3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575270695722091756711672291098169091528017350671274858322287183520935396572512108357915136988209144421006751033467110314126711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535893226185489632132933089857064204675259070915481416549859461637180270981994309924488957571282890592323326097299712084433573265489382391193259746366730583604142813883032038249037589852437441702913276561809377344403070746921120191302033038019762110110044929321516084244485963766983895228684783123552658213144957685726243344189303968642624341077322697802807318915441101044682325271620105265227211166039666557309254711055785376346682065310989652691862056476931257058635662018558100729360659876486117910453348850346113657686753249441668039626579787718556084552965412665408530614344431858676975145661406800700237877659134401712749470420562230538994561314071127000407854733269939081454664645880797270826683063432858785698305235808933065757406795457163775254202114955761581400250126228594130216471550979259230990796547376125517656751357517829666454779174501129961489030463994713296210734043751895735961458901938971311179042978285647503203198691514028708085990480109412147221317947647772622414254854540332157185306142288137585043063321751829798662237172159160771669254748738986654949450114654062843366393790039769265672146385306736096571209180763832716641627488880078692560290228472104031721186082041900042296617119637792133757511495950156604963186294726547364252308177036751590673502350728354056704038674351362222477158915049530984448933309634087807693259939780541934144737744184263129860809988868741326047215695162396586457302163159819319516735381297416772947867242292465436680098067692823828068996400482435403701416314965897940924323789690706977942236250822168895738379862300159377647165122893578601588161755782973523344604281512627203734314653197777416031990665541876397929334419521541341899485444734567383162499341913181480927777103863877343177207545654532207770921201905166096280490926360197598828161332316663652861932668633606273567630354477628035045077723554710585954870279081435624014517180624643626794561275318134078330336254232783944975382437205835311477119926063813346776879695970309833913077109870408591337464144282277263465947047458784778720192771528073176790770715721344473060570073349243693113835049316312840425121925651798069411352801314701304781643788518529092854520116583934196562134914341595625865865570552690496520985803385072242648293972858478316305777756068887644624824685792603953527734803048029005876075825104747091643961362676044925627420420832085661190625454337213153595845068772460290161876679524061634252257719542916299193064553779914037340432875262888963995879475729174642635745525407909145135711136941091193932519107602082520261879853188770584297259167781314969900901921169717372784768472686084900337702424291651300500516832336435038951702989392233451722013812806965011784408745196012122859937162313017114448464090389064495444006198690754851602632750529834918740786680881833851022833450850486082503930213321971551843063545500766828294930413776552793975175461395398468339363830474611996653858153842056853386218672523340283087112328278921250771262946322956398989893582116745627010218356462201349671518819097303811980049734072396103685406643193950979019069963955245300545058068550195673022921913933918568034490398205955100226353536192041994745538593810234395544959778377902374216172711172364343543947822181852862408514006660443325888569867054315470696574745855033232334210730154594051655379068662733379958511562578432298827372319898757141595781119635833005940873068121602876496286744604774649159950549737425626901049037781986835938146574126804925648798556145372347867330390468838343634655379498641927056387293174872332083760112302991136793862708943879936201629515413371424892830722012690147546684765357616477379467520049075715552781965362132392640616013635815590742202020318727760527721900556148425551879253034351398442532234157623361064250639049750086562710953591946589751413103482276930624743536325691607815478181152843667957061108615331504452127473924544945423682886061340841486377670096120715124914043027253860764823634143346235189757664521641376796903149501910857598442391986291642193994907236234646844117394032659184044378051333894525742399508296591228508555821572503107125701266830240292952522011872676756220415420516184163484756516999811614101002996078386909291603028840026910414079288621507842451670908700069928212066041837180653556725253256753286129104248776182582976515795984703562226293486003415872298053498965022629174878820273420922224533985626476691490556284250391275771028402799806636582548892648802545661017296702664076559042909945681506526530537182941270336931378517860904070866711496558343434769338578171138645587367812301458768712660348913909562009939361031029161615288138437909904231747336394804575931493140529763475748119356709110137751721008031559024853090669203767192203322909433467685142214477379393751703443661991040337511173547191855046449026365512816228824462575916333039107225383742182140883508657391771509682887478265699599574490661758344137522397096834080053559849175417381883999446974867626551658276584835884531427756879002909517028352971634456212964043523117600665101241200659755851276178583829204197484423608007193045761893234922927965019875187212726750798125547095890455635792122103334669749923563025494780249011419521238281530911407907386025152274299581807247162591668545133312394804947079119153267343028244186041426363954800044800267049624820179289647669758318327131425170296923488962766844032326092752496035799646925650493681836090032380929345958897069536534940603402166544375589004563288225054525564056448246515187547119621844396582533754388569094113031509526179378002974120766514793942590298969594699556576121865619673378623625612521632086286922210327488921865436480229678070576561514463204692790682120738837781423356282360896320806822246801224826117718589638140918390367367222088832151375560037279839400415297002878307667094447456013455641725437090697939612257142989467154357846878861444581231459357198492252847160504922124247014121478057345510500801908699603302763478708108175450119307141223390866393833952942578690507643100638351983438934159613185434754649556978103829309716465143840700707360411237359984345225161050702705623526601276484830840761183013052793205427462865403603674532865105706587488225698157936789766974220575059683440869735020141020672358502007245225632651341055924019027421624843914035998953539459094407046912091409387001264560016237428802109276457931065792295524988727584610126483699989225695968815920560010165525637567856672279661988578279484885583439751874454551296563443480396642055798293680435220277098429423253302257634180703947699415979159453006975214829336655566156787364005366656416547321704390352132954352916941459904160875320186837937023488868947915107163785290234529244077365949563051007421087142613497459561513849871375704710178795731042296906667021449863746459528082436944578977233004876476524133907592043401963403911473202338071509522201068256342747164602433544005152126693249341967397704159568375355516673027390074972973635496453328886984406119649616277344951827369558822075735517665158985519098666539354948106887320685990754079234240230092590070173196036225475647894064754834664776041146323390565134330684495397907090302346046147096169688688501408347040546074295869913829668246818571031887906528703665083243197440477185567893482308943106828702722809736248093996270607472645539925399442808113736943388729406307926159599546262462970706259484556903471197299640908941805953439325123623550813494900436427852713831591256898929519642728757394691427253436694153236100453730488198551706594121735246258954873016760029886592578662856124966552353382942878542534048308330701653722856355915253478445981831341129001999205981352205117336585640782648494276441137639386692480311836445369858917544264739988228462184490087776977631279572267265556259628254276531830013407092233436577916012809317940171859859993384923549564005709955856113498025249906698423301735035804408116855265311709957089942732870925848789443646005041089226691783525870785951298344172953519537885534573742608590290817651557803905946408735061232261120093731080485485263572282576820341605048466277504500312620080079980492548534694146977516493270950493463938243222718851597405470214828971117779237612257887347718819682546298126868581705074027255026332904497627789442362167411918626943965067151577958675648239939176042601763387045499017614364120469218237076488783419689686118155815873606293860381017121585527266830082383404656475880405138080163363887421637140643549556186896411228214075330265510042410489678352858829024367090488711819090949453314421828766181031007354770549815968077200947469613436092861484941785017180779306810854690009445899527942439813921350558642219648349151263901280383200109773868066287792397180146134324457264009737425700735921003154150893679300816998053652027600727749674584002836240534603726341655425902760183484030681138185510597970566400750942608788573579603732451414678670368809880609716425849759513806930944940151542222194329130217391253835591503100333032511174915696917450271494331515588540392216409722910112903552181576282328318234254832611191280092825256190205263016391147724733148573910777587442538761174657867116941477642144111126358355387136101102326798775641024682403226483464176636980663785768134920453022408197278564719839630878154322116691224641591177673225326433568614618654522268126887268445968442416107854016768142080885028005414361314623082102594173756238994207571362751674573189189456283525704413354375857534269869947254703165661399199968262824727064133622217892390317608542894373393561889165125042440400895271983787386480584726895462438823437517885201439560057104811949884239060613695734231559079670346149143447886360410318235073650277859089757827273130504889398900992391350337325085598265586708924261242947367019390772713070686917092646254842324074855036608013604668951184009366860954632500214585293095000090715105823626729326453738210493872499669933942468551648326113414611068026744663733437534076429402668297386522093570162638464852851490362932019919968828517183953669134522244470804592396602817156551565666111359823112250628905854914509715755390024393153519090210711945730024388017661503527086260253788179751947806101371500448991721002220133501310601639154158957803711779277522597874289191791552241718958536168059474123419339842021874564925644346239253195313510331147639491199507285843065836193536932969928983791494193940608572486396883690326556436421664425760791471086998431573374964883529276932822076294728238153740996154559879825989109371712621828302584811238901196822142945766758071865380650648702613389282299497257453033283896381843944770779402284359883410035838542389735424395647555684095224844554139239410001620769363684677641301781965937997155746854194633489374843912974239143365936041003523437770658886778113949861647874714079326385873862473288964564359877466763847946650407411182565837887845485814896296127399841344272608606187245545236064315371011274680977870446409475828034876975894832824123929296058294861919667091895808983320121031843034012849511620353428014412761728583024355983003204202451207287253558119584014918096925339507577840006746552603144616705082768277222353419110263416315714740612385042584598841990761128725805911393568960143166828317632356732541707342081733223046298799280490851409479036887868789493054695570307261900950207643349335910602454508645362893545686295853131533718386826561786227363716975774183023986006591481616404944965011732131389574706208847480236537103115089842799275442685327797431139514357417221975979935968525228574526379628961269157235798662057340837576687388426640599099350500081337543245463596750484423528487470144354541957625847356421619813407346854111766883118654489377697956651727966232671481033864391375186594673002443450054499539974237232871249483470604406347160632583064982979551010954183623503030945309733583446283947630477564501500850757894954893139394489921612552559770143685894358587752637962559708167764380012543650237141278346792610199558522471722017772370041780841942394872540680155603599839054898572354674564239058585021671903139526294455439131663134530893906204678438778505423939052473136201294769187497519101147231528932677253391814660730008902776896311481090220972452075916729700785058071718638105496797310016787085069420709223290807038326345345203802786099055690013413718236837099194951648960075504934126787643674638490206396401976668559233565463913836318574569814719621084108096188460545603903845534372914144651347494078488442377217515433426030669883176833100113310869042193903108014378433415137092435301367763108491351615642269847507430329716746964066653152703532546711266752246055119958183196376370761799191920357958200759560530234626775794393630746305690108011494271410093913691381072581378135789400559950018354251184172136055727522103526803735726527922417373605751127887218190844900617801388971077082293100279766593583875890939568814856026322439372656247277603789081445883785501970284377936240782505270487581647032458129087839523245323789602984166922548964971560698119218658492677040395648127810217991321741630581055459880130048456299765112124153637451500563507012781592671424134210330156616535602473380784302865525722275304999883701534879300806260180962381516136690334111138653851091936739383522934588832255088706450753947395204396807906708680644509698654880168287434378612645381583428075306184548590379821799459968115441974253634439960290251001588827216474500682070419376158454712318346007262933955054823955713725684023226821301247679452264482091023564775272308208106351889915269288910845557112660396503439789627825001611015323516051965590421184494990778999200732947690586857787872098290135295661397888486050978608595701773129815531495168146717695976099421003618355913877781769845875810446628399880600616229848616935337386578773598336161338413385368421197893890018529569196780455448285848370117096721253533875862158231013310387766827211572694951817958975469399264219791552338576623167627547570354699414892904130186386119439196283887054367774322427680913236544948536676800000106526248547305586159899914017076983854831887501429389089950685453076511680333732226517566220752695179144225280816517166776672793035485154204023817460892328391703275425750867655117859395002793389592057668278967764453184040418554010435134838953120132637836928358082719378312654961745997056745071833206503455664403449045362756001125018433560736122276594927839370647842645676338818807565612168960504161139039063960162022153684941092605387688714837989559999112099164646441191856827700457424343402167227644558933012778158686952506949936461017568506016714535431581480105458860564550133203758645485840324029871709348091055621167154684847780394475697980426318099175642280987399876697323769573701580806822904599212366168902596273043067931653114940176473769387351409336183321614280214976339918983548487562529875242387307755955595546519639440182184099841248982623673771467226061633643296406335728107078875816404381485018841143188598827694490119321296827158884133869434682859006664080631407775772570563072940049294030242049841656547973670548558044586572022763784046682337985282710578431975354179501134727362577408021347682604502285157979579764746702284099956160156910890384582450267926594205550395879229818526480070683765041836562094555434613513415257006597488191634135955671964965403218727160264859304903978748958906612725079482827693895352175362185079629778514618843271922322381015874445052866523802253284389137527384589238442253547265309817157844783421582232702069028723233005386216347988509469547200479523112015043293226628272763217790884008786148022147537657810581970222630971749507212724847947816957296142365859578209083073323356034846531873029302665964501371837542889755797144992465403868179921389346924474198509733462679332107268687076806263991936196504409954216762784091466985692571507431574079380532392523947755744159184582156251819215523370960748332923492103451462643744980559610330799414534778457469999212859999939961228161521931488876938802228108300198601654941654261696858678837260958774567618250727599295089318052187292461086763995891614585505839727420980909781729323930106766386824040111304024700735085782872462713494636853181546969046696869392547251941399291465242385776255004748529547681479546700705034799958886769501612497228204030399546327883069597624936151010243655535223069061294938859901573466102371223547891129254769617600504797492806072126803922691102777226102544149221576504508120677173571202718024296810620377657883716690910941807448781404907551782038565390991047759414132154328440625030180275716965082096427348414695726397884256008453121406593580904127113592004197598513625479616063228873618136737324450607924411763997597461938358457491598809766744709300654634242346063423747466608043170126005205592849369594143408146852981505394717890045183575515412522359059068726487863575254191128887737176637486027660634960353679470269232297186832771739323619200777452212624751869833495151019864269887847171939664976907082521742336566272592844062043021411371992278526998469884770232382384005565551788908766136013047709843861168705231055314916251728373272867600724817298763756981633541507460883866364069347043720668865127568826614973078865701568501691864748854167915459650723428773069985371390430026653078398776385032381821553559732353068604301067576083890862704984188859513809103042359578249514398859011318583584066747237029714978508414585308578133915627076035639076394731145549583226694570249413983163433237897595568085683629725386791327505554252449194358912840504522695381217913191451350099384631177401797151228378546011603595540286440590249646693070776905548102885020808580087811577381719174177601733073855475800605601433774329901272867725304318251975791679296996504146070664571258883469797964293162296552016879730003564630457930884032748077181155533090988702550520768046303460865816539487695196004408482065967379473168086415645650530049881616490578831154345485052660069823093157776500378070466126470602145750579327096204782561524714591896522360839664562410519551052235723973951288181640597859142791481654263289200428160913693777372229998332708208296995573772737566761552711392258805520189887620114168005468736558063347160373429170390798639652296131280178267971728982293607028806908776866059325274637840539769184808204102194471971386925608416245112398062011318454124478205011079876071715568315407886543904121087303240201068534194723047666672174986986854707678120512473679247919315085644477537985379973223445612278584329684664751333657369238720146472367942787004250325558992688434959287612400755875694641370562514001179713316620715371543600687647731867558714878398908107429530941060596944315847753970094398839491443235366853920994687964506653398573888786614762944341401049888993160051207678103588611660202961193639682134960750111649832785635316145168457695687109002999769841263266502347716728657378579085746646077228341540311441529418804782543876177079043000156698677679576090996693607559496515273634981189641304331166277471233881740603731743970540670310967676574869535878967003192586625941051053358438465602339179674926784476370847497833365557900738419147319886271352595462518160434225372996286326749682405806029642114638643686422472488728343417044157348248183330164056695966886676956349141632842641497453334999948000266998758881593507357815195889900539512085351035726137364034367534714104836017546488300407846416745216737190483109676711344349481926268111073994825060739495073503169019731852119552635632584339099822498624067031076831844660729124874754031617969941139738776589986855417031884778867592902607004321266617919223520938227878880988633599116081923535557046463491132085918979613279131975649097600013996234445535014346426860464495862476909434704829329414041114654092398834443515913320107739441118407410768498106634724104823935827401944935665161088463125678529776973468430306146241803585293315973458303845541033701091676776374276210213701354854450926307190114731848574923318167207213727935567952844392548156091372812840633303937356242001604566455741458816605216660873874804724339121295587776390696903707882852775389405246075849623157436917113176134783882719416860662572103685132156647800147675231039357860689611125996028183930954870905907386135191459181951029732787557104972901148717189718004696169777001791391961379141716270701895846921434369676292745910994006008498356842520191559370370101104974733949387788598941743303178534870760322198297057975119144051099423588303454635349234982688362404332726741554030161950568065418093940998202060999414021689090070821330723089662119775530665918814119157783627292746156185710372172471009521423696483086410259288745799932237495519122195190342445230753513380685680735446499512720317448719540397610730806026990625807602029273145525207807991418429063884437349968145827337207266391767020118300464819000241308350884658415214899127610651374153943565721139032857491876909441370209051703148777346165287984823533829726013611098451484182380812054099612527458088109948697221612852489742555551607637167505489617301680961380381191436114399210638005083214098760459930932485102516829446726066613815174571255975495358023998314698220361338082849935670557552471290274539776214049318201465800802156653606776550878380430413431059180460680083459113664083488740800574127258670479225831912741573908091438313845642415094084913391809684025116399193685322555733896695374902662092326131885589158083245557194845387562878612885900410600607374650140262782402734696252821717494158233174923968353013617865367376064216677813773995100658952887742766263684183068019080460984980946976366733566228291513235278880615776827815958866918023894033307644191240341202231636857786035727694154177882643523813190502808701857504704631293335375728538660588890458311145077394293520199432197117164223500564404297989208159430716701985746927384865383343614579463417592257389858800169801475742054299580124295810545651083104629728293758416116253256251657249807849209989799062003593650993472158296517413579849104711166079158743698654122234834188772292944633517865385673196255985202607294767407261676714557364981210567771689348491766077170527718760119990814411305864557791052568430481144026193840232247093924980293355073184589035539713308844617410795916251171486487446861124760542867343670904667846867027409188101424971114965781772427934707021668829561087779440504843752844337510882826477197854000650970403302186255614733211777117441335028160884035178145254196432030957601869464908868154528562134698835544456024955666843660292219512483091060537720198021831010327041783866544718126039719068846237085751808003532704718565949947612424811099928867915896904956394762460842406593094862150769031498702067353384834955083636601784877106080980426924713241000946401437360326564518456679245666955100150229833079849607994988249706172367449361226222961790814311414660941234159359309585407913908720832273354957208075716517187659944985693795623875551617575438091780528029464200447215396280746360211329425591600257073562812638733106005891065245708024474937543184149401482119996276453106800663118382376163966318093144467129861552759820145141027560068929750246304017351489194576360789352855505317331416457050499644389093630843874484783961684051845273288403234520247056851646571647713932377551729479512613239822960239454857975458651745878771331813875295980941217422730035229650808917770506825924882232215493804837145478164721397682096332050830564792048208592047549985732038887639160199524091893894557676874973085695595801065952650303626615975066222508406742889826590751063756356996821151094966974458054728869363102036782325018232370845979011154847208761821247781326633041207621658731297081123075815982124863980721240786887811450165582513617890307086087019897588980745664395515741536319319198107057533663373803827215279884935039748001589051942087971130805123393322190346624991716915094854140187106035460379464337900589095772118080446574396280618671786101715674096766208029576657705129120990794430463289294730615951043090222143937184956063405618934251305726829146578329334052463502892917547087256484260034962961165413823007731332729830500160256724014185152041890701154288579920812198449315699905918201181973350012618772803681248199587707020753240636125931343859554254778196114293516356122349666152261473539967405158499860355295332924575238881013620234762466905581643896786309762736550472434864307121849437348530060638764456627218666170123812771562137974614986132874411771455244470899714452288566294244023018479120547849857452163469644897389206240194351831008828348024924908540307786387516591130287395878709810077271827187452901397283661484214287170553179654307650453432460053636147261818096997693348626407743519992868632383508875668359509726557481543194019557685043724800102041374983187225967738715495839971844490727914196584593008394263702087563539821696205532480321226749891140267852859967340524203109179789990571882194939132075343170798002373659098537552023891164346718558290685371189795262623449248339249634244971465684659124891855662958932990903523923333364743520370770101084388003290759834217018554228386161721041760301164591878053936744747205998502358289183369292233732399948043710841965947316265482574809948250999183300697656936715968936449334886474421350084070066088359723503953234017958255703601693699098867113210979889707051728075585519126993067309925070407024556850778679069476612629808225163313639952117098452809263037592242674257559989289278370474445218936320348941552104459726188380030067761793138139916205806270165102445886924764924689192461212531027573139084047000714356136231699237169484813255420091453041037135453296620639210547982439212517254013231490274058589206321758949434548906846399313757091034633271415316223280552297297953801880162859073572955416278867649827418616421878988574107164906919185116281528548679417363890665388576422915834250067361245384916067413734017357277995634104332688356950781493137800736235418007061918026732855119194267609122103598746924117283749312616339500123959924050845437569850795704622266461900010350049018303415354584283376437811198855631877779253720116671853954183598443830520376281944076159410682071697030228515225057312609304689842343315273213136121658280807521263154773060442377475350595228717440266638914881717308643611138906942027908814311944879941715404210341219084709408025402393294294549387864023051292711909751353600092197110541209668311151632870542302847007312065803262641711616595761327235156666253667271899853419989523688483099930275741991646384142707798870887422927705389122717248632202889842512528721782603050099451082478357290569198855546788607946280537122704246654319214528176074148240382783582971930101788834567416781139895475044833931468963076339665722672704339321674542182455706252479721997866854279897799233957905758189062252547358220523642485078340711014498047872669199018643882293230538231855973286978092225352959101734140733488476100556401824239219269506208318381454698392366461363989101210217709597670490830508185470419466437131229969235889538493013635657618610606222870559942337163102127845744646398973818856674626087948201864748767272722206267646533809980196688368099415907577685263986514625333631245053640261056960551318381317426118442018908885319635698696279503673842431301133175330532980201668881748134298868158557781034323175306478498321062971842518438553442762012823457071698853051832617964117857960888815032960229070561447622091509473903594664691623539680920139457817589108893199211226007392814916948161527384273626429809823406320024402449589445612916704950823581248739179964864113348032475777521970893277226234948601504665268143987705161531702669692970492831628550421289814670619533197026950721437823047687528028735412616639170824592517001071418085480063692325946201900227808740985977192180515853214739265325155903541020928466592529991435379182531454529059841581763705892790690989691116438118780943537152133226144362531449012745477269573939348154691631162492887357471882407150399500944673195431619385548520766573882513963916357672315100555603726339486720820780865373494244011579966750736071115935133195919712094896471755302453136477094209463569698222667377520994516845064362382421185353488798939567318780660610788544000550827657030558744854180577889171920788142335113866292966717964346876007704799953788338787034871802184243734211227394025571769081960309201824018842705704609262256417837526526335832424066125331152942345796556950250681001831090041124537901533296615697052237921032570693705109083078947999900499939532215362274847660361367769797856738658467093667958858378879562594646489137665219958828693380183601193236857855855819555604215625088365020332202451376215820461810670519533065306060650105488716724537794283133887163139559690583208341689847606560711834713621812324622725884199028614208728495687963932546428534307530110528571382964370999035694888528519040295604734613113826387889755178856042499874831638280404684861893818959054203988987265069762020199554841265000539442820393012748163815853039643992547020167275932857436666164411096256633730540921951967514832873480895747777527834422109107311135182804603634719818565557295714474768255285786334934285842311874944000322969069775831590385803935352135886007960034209754739229673331064939560181223781285458431760556173386112673478074585067606304822940965304111830667108189303110887172816751957967534718853722930961614320400638132246584111115775835858113501856904781536893813771847281475199835050478129771859908470762197460588742325699582889253504193795826061621184236876851141831606831586799460165205774052942305360178031335726326705479033840125730591233960188013782542192709476733719198728738524805742124892118347087662966720727232565056512933312605950577772754247124164831283298207236175057467387012820957554430596839555568686118839713552208445285264008125202766555767749596962661260456524568408613923826576858338469849977872670655519185446869846947849573462260629421962455708537127277652309895545019303773216664918257815467729200521266714346320963789185232321501897612603437368406719419303774688099929687758244104787812326625318184596045385354383911449677531286426092521153767325886672260404252349108702695809964759580579466397341906401003636190404203311357933654242630356145700901124480089002080147805660371015412232889146572239314507607167064355682743774396578906797268743847307634645167756210309860409271709095128086309029738504452718289274968921210667008164858339553773591913695015316201890888748421079870689911480466927065094076204650277252865072890532854856143316081269300569378541786109696920253886503457718317668688592368148847527649846882194973972970773718718840041432312763650481453112285099002074240925585925292610302106736815434701525234878635164397623586041919412969769040526483234700991115424260127343802208933109668636789869497799400126016422760926082349304118064382913834735467972539926233879158299848645927173405922562074910530853153718291168163721939518870095778818158685046450769934394098743351443162633031724774748689791820923948083314397084067308407958935810896656477585990556376952523265361442478023082681183103773588708924061303133647737101162821461466167940409051861526036009252194721889091810733587196414214447865489952858234394705007983038853886083103571930600277119455802191194289992272235345870756624692617766317885514435021828702668561066500353105021631820601760921798468493686316129372795187307897263735371715025637873357977180818487845886650433582437700414771041493492743845758710715973155943942641257027096512510811554824793940359768118811728247215825010949609662539339538092219559191818855267806214992317276316321833989693807561685591175299845013206712939240414459386239880938124045219148483164621014738918251010909677386906640415897361047643650006807710565671848628149637111883219244566394581449148616550049567698269030891118568798692947051352481609174324301538368470729289898284602223730145265567989862776796809146979837826876431159883210904371561129976652153963546442086919756737000573876497843768628768179249746943842746525631632300555130417422734164645512781278457777245752038654375428282567141288583454443513256205446424101103795546419058116862305964476958705407214198521210673433241075676757581845699069304604752277016700568454396923404171108988899341635058515788735343081552081177207188037910404698306957868547393765643363197978680367187307969392423632144845035477631567025539006542311792015346497792906624150832885839529054263768766896880503331722780018588506973623240389470047189761934734430843744375992503417880797223585913424581314404984770173236169471976571535319775499716278566311904691260918259124989036765417697990362375528652637573376352696934435440047306719886890196814742876779086697968852250163694985673021752313252926537589641517147955953878427849986645630287883196209983049451987439636907068276265748581043911223261879405994155406327013198989570376110532360629867480377915376751158304320849872092028092975264981256916342500052290887264692528466610466539217148208013050229805263783642695973370705392278915351056888393811324975707133102950443034671598944878684711643832805069250776627450012200352620370946602341464899839025258883014867816219677519458316771876275720050543979441245990077115205154619930509838698254284640725554092740313257163264079293418334214709041254253352324802193227707535554679587163835875018159338717423606155117101312352563348582036514614187004920570437201826173319471570086757853933607862273955818579758725874410254207710547536129404746010009409544495966288148691590389907186598056361713769222729076419775517772010427649694961105622059250242021770426962215495872645398922769766031052498085575947163107587013320886146326641259114863388122028444069416948826152957762532501987035987067438046982194205638125583343642194923227593722128905642094308235254408411086454536940496927149400331978286131818618881111840825786592875742638445005994422956858646048103301538891149948693543603022181094346676400002236255057363129462629609619876056425996394613869233083719626595473923462413459779574852464783798079569319865081597767535055391899115133525229873611277918274854200868953965835942196333150286956119201229888988700607999279541118826902307891310760361763477948943203210277335941690865007193280401716384064498787175375678118532132840821657110754952829497493621460821558320568723218557406516109627487437509809223021160998263303391546949464449100451528092508974507489676032409076898365294065792019831526541065813682379198409064571246894847020935776119313998024681340520039478194986620262400890215016616381353838151503773502296607462795291038406868556907015751662419298724448271942933100485482445458071889763300323252582158128032746796200281476243182862217105435289834820827345168018613171959332471107466222850871066611770346535283957762599774467218571581612641114327179434788599089280848669491413909771673690027775850268664654056595039486784111079011610400857274456293842549416759460548711723594642910585090995021495879311219613590831588262068233215615308683373083817327932819698387508708348388046388478441884003184712697454370937329836240287519792080232187874488287284372737801782700805878241074935751488997891173974612932035108143270325140903048746226294234432757126008664250833318768865075642927160552528954492153765175149219636718104943531785838345386525565664065725136357506435323650893679043170259787817719031486796384082881020946149007971513771709906195496964007086766710233004867263147551053723175711432231741141168062286420638890621019235522354671166213749969326932173704310598722503945657492461697826097025335947502091383667377289443869640002811034402608471289900074680776484408871134135250336787731679770937277868216611786534423173226463784769787514433209534000165069213054647689098505020301504488083426184520873053097318949291642532293361243151430657826407028389840984160295030924189712097160164926561341343342229882790992178604267981245728534580133826099587717811310216734025656274400729683406619848067661580502169183372368039902793160642043681207990031626444914619021945822969099212278855394878353830564686488165556229431567312827439082645061162894280350166133669782405177015521962652272545585073864058529983037918035043287670380925216790757120406123759632768567484507915114731344000183257034492090971243580944790046249431345502890068064870429353403743603262582053579011839564908935434510134296961754524957396062149028872893279252069653538639644322538832752249960598697475988232991626354597332444516375533437749292899058117578635555562693742691094711700216541171821975051983178713710605106379555858890556885288798908475091576463907469361988150781468526213325247383765119299015610918977792200870579339646382749068069876916819749236562422608715417610043060890437797667851966189140414492527048088197149880154205778700652159400928977760133075684796699295543365613984773806039436889588764605498387147896848280538470173087111776115966350503997934386933911978988710915654170913308260764740630571141109883938809548143782847452883836807941888434266622207043872288741394780101772139228191199236540551639589347426395382482960903690028835932774585506080131798840716244656399794827578365019551422155133928197822698427863839167971509126241054872570092407004548848569295044811073808799654748156891393538094347455697212891982717702076661360248958146811913361412125878389557735719498631721084439890142394849665925173138817160266326193106536653504147307080441493916936326237376777709585031325599009576273195730864804246770121232702053374266705314244820816813030639737873664248367253983748769098060218278578621651273856351329014890350988327061725893257536399397905572917516009761545904477169226580631511102803843601737474215247608515209901615858231257159073342173657626714239047827958728150509563309280266845893764964977023297364131906098274063353108979246424213458374090116939196425045912881340349881063540088759682005440836438651661788055760895689672753153808194207733259791727843762566118431989102500749182908647514979400316070384554946538594602745244746681231468794344161099333890899263841184742525704457251745932573898956518571657596148126602031079762825416559050604247911401695790033835657486925280074302562341949828646791447632277400552946090394017753633565547193100017543004750471914489984104001586794617924161001645471655133707407395026044276953855383439755054887109978520540117516974758134492607943368954378322117245068734423198987884412854206474280973562580706698310697993526069339213568588139121480735472846322778490808700246777630360555123238665629517885371967303463470122293958160679250915321748903084088651606111901149844341235012464692802880599613428351188471544977127847336176628506216977871774382436256571177945006447771837022199910669502165675764404499794076503799995484500271066598781360380231412683690578319046079276529727769404361302305178708054651154246939526512710105292707030667302444712597393995051462840476743136373997825918454117641332790646063658415292701903027601733947486696034869497654175242930604072700505903950314852292139257559484507886797792525393176515641619716844352436979444735596426063339105512682606159572621703669850647328126672452198906054988028078288142979633669674412480598219214633956574572210229867759974673812606936706913408155941201611596019023775352555630060624798326124988128819293734347686268921923977783391073310658825681377717232831532908252509273304785072497713944833389255208117560845296659055394096556854170600117985729381399825831929367910039184409928657560599359891000296986446097471471847010153128376263114677420914557404181590880006494323785583930853082830547607679952435739163122188605754967383224319565065546085288120190236364471270374863442172725787950342848631294491631847534753143504139209610879605773098720135248407505763719925365047090858251393686346386336804289176710760211115982887553994012007601394703366179371539630613986365549221374159790511908358829009765664730073387931467891318146510931676157582135142486044229244530411316065270097433008849903467540551864067734260358340960860553374736276093565885310976099423834738222208729246449768456057956251676557408841032173134562773585605235823638953203853402484227337163912397321599544082842166663602329654569470357718487344203422770665383738750616921276801576618109542009770836360436111059240911788954033802142652394892968643980892611463541457153519434285072135345301831587562827573389826889852355779929572764522939156747756667605108788764845349363606827805056462281359888587925994094644604170520447004631513797543173718775603981596264750141090665886616218003826698996196558058720863972117699521946678985701179833244060181157565807428418291061519391763005919431443460515404771057005433900018245311773371895585760360718286050635647997900413976180895536366960316219311325022385179167205518065926351803625121457592623836934822266589557699466049193811248660909979812857182349400661555219611220720309227764620099931524427358948871057662389469388944649509396033045434084210246240104872332875008174917987554387938738143989423801176270083719605309438394006375611645856094312951759771393539607432279248922126704580818331376416581826956210587289244774003594700926866265965142205063007859200248829186083974373235384908396432614700053242354064704208949921025040472678105908364400746638002087012666420945718170294675227854007450855237772089058168391844659282941701828823301497155423523591177481862859296760504820386434310877956289292540563894662194826871104282816389397571175778691543016505860296521745958198887868040811032843273986719862130620555985526603640504628215230615459447448990883908199973874745296981077620148713400012253552224669540931521311533791579802697955571050850747387475075806876537644578252443263804614304288923593485296105826938210349800040524840708440356116781717051281337880570564345061611933042444079826037795119854869455915205196009304127100727784930155503889536033826192934379708187432094991415959339636811062755729527800425486306005452383915106899891357882001941178653568214911852820785213012551851849371150342215954224451190020739353962740020811046553020793286725474054365271759589350071633607632161472581540764205302004534018357233829266191530835409512022632916505442612361919705161383935732669376015691442994494374485680977569630312958871916112929468188493633864739274760122696415884890096571708616059814720446742866420876533479985822209061980217321161423041947775499073873856794118982466091309169177227420723336763503267834058630193019324299639720444517928812285447821195353089891012534297552472763573022628138209180743974867145359077863353016082155991131414420509144729353502223081719366350934686585865631485557586244781862010871188976065296989926932817870557643514338206014107732926106343152533718224338526352021773544071528189813769875515757454693972715048846979361950047772097056179391382898984532742622728864710888327017372325881824465843624958059256033810521560620615571329915608489206434030339526226345145428367869828807425142256745180618414956468611163540497189768215422772247947403357152743681940989205011365340012384671429655186734415374161504256325671343024765512521921803578016924032669954174608759240920700466934039651017813485783569444076047023254075555776472845075182689041829396611331016013111907739863246277821902365066037404160672496249013743321724645409741299557052914243820807609836482346597388669134991978401310801558134397919485283043673901248208244481412809544377389832005986490915950532285791457688496257866588599917986752055455809900455646117875524937012455321717019428288461740273664997847550829422802023290122163010230977215156944642790980219082668986883426307160920791408519769523555348865774342527753119724743087304361951139611908003025587838764420608504473063129927788894272918972716989057592524467966018970748296094919064876469370275077386643239191904225429023531892337729316673608699622803255718530891928440380507103006477684786324319100022392978525537237556621364474009676053943983823576460699246526008909062410590421545392790441152958034533450025624410100635953003959886446616959562635187806068851372346270799732723313469397145628554261546765063246567662027924520858134771760852169134094652030767339184114750414016892412131982688156866456148538028753933116023229255561894104299533564009578649534093511526645402441877594931693056044868642086275720117231952640502309977456764783848897346431721598062678767183800524769688408498918508614900343240347674268624595239589035858213500645099817824463608731775437885967767291952611121385919472545140030118050343787527766440276261894101757687268042817662386068047788524288743025914524707395054652513533945959878961977891104189029294381856720507096460626354173294464957661265195349570186001541262396228641389779673332907056737696215649818450684226369036784955597002607986799626101903933126376855696876702929537116252800554310078640872893922571451248113577862766490242516199027747109033593330930494838059785662884478744146984149906712376478958226329490467981208998485716357108783119184863025450162092980582920833481363840542172005612198935366937133673339246441612522319694347120641737549121635700857369439730597970971972666664226743111776217640306868131035189911227133972403688700099686292254646500638528862039380050477827691283560337254825579391298525150682996910775425764748832534141213280062671709400909822352965795799780301828242849022147074811112401860761341515038756983091865278065889668236252393784527263453042041880250844236319038331838455052236799235775292910692504326144695010986108889991465855188187358252816430252093928525807796973762084563748211443398816271003170315133440230952635192958868069082135585368016100021374085115448491268584126869589917414913382057849280069825519574020181810564129725083607035685105533178784082900004155251186577945396331753853209214972052660783126028196116485809868458752512999740409279768317663991465538610893758795221497173172813151793290443112181587102351874075722210012376872194474720934931232410706508061856237252673254073332487575448296757345001932190219911996079798937338367324257610393898534927877747398050808001554476406105352220232540944356771879456543040673589649101761077594836454082348613025471847648518957583667439979150851285802060782055446299172320202822291488695939972997429747115537185892423849385585859540743810488262464878805330427146301194158989632879267832732245610385219701113046658710050008328517731177648973523092666123458887310288351562644602367199664455472760831011878838915114934093934475007302585581475619088139875235781233134227986650352272536717123075686104500454897036007956982762639234410714658489578024140815840522953693749971066559489445924628661996355635065262340533943914211127181069105229002465742360413009369188925586578466846121567955425660541600507127664176605687427420032957716064344860620123982169827172319782681662824993871499544913730205184366907672357740005393266262276032365975171892590180110429038427418550789488743883270306328327996300720069801224436511639408692222074532024462412115580435454206421512158505689615735641431306888344318528085397592773443365538418834030351782294625370201578215737326552318576355409895403323638231921989217117744946940367829618592080340386757583411151882417743914507736638407188048935825686854201164503135763335550944031923672034865101056104987272647213198654343545040913185951314518127643731043897250700498198705217627249406521461995923214231443977654670835171474936798618655279171582408065106379950018429593879915835017158075988378496225739851212981032637937621832245659423668537679911314010804313973233544909082491049914332584329882103398469814171575601082970658306521134707680368069532297199059990445120908727577622535104090239288877942463048328031913271049547859918019696783532146444118926063152661816744319355081708187547705080265402529410921826485821385752668815558411319856002213515888721036569608751506318753300294211868222189377554602722729129050429225978771066787384000061677215463844129237119352182849982435092089180168557279815642185819119749098573057033266764646072875743056537260276898237325974508447964954564803077159815395582777913937360171742299602735310276871944944491793978514463159731443535185049141394155732938204854212350817391254974981930871439661513294204591938010623142177419918406018034794988769105155790555480695387854006645337598186284641990522045280330626369562649091082762711590385699505124652999606285544383833032763859980079292284665950355121124528408751622906026201185777531374794936205549640107300134885315073548735390560290893352640071327473262196031177343394367338575912450814933573691166454128178817145402305475066713651825828489809951213919399563324133655677709800308191027204099714868741813466700609405102146269028044915964654533010775469541308871416531254481306119240782118869005602778182423502269618934435254763357353648561936325441775661398170393063287216690572225974520919291726219984440964615826945638023950283712168644656178523556516412771282691868861557271620147493405227694659571219831494338162211400693630743044417328478610177774383797703723179525543410722344551255558999864618387676490397246116795901810003509892864120419516355110876320426761297982652942588295114127584126273279079880755975185157684126474220947972184330935297266521001566251455299474512763155091763673025946213293019040283795424632325855030109670692272022707486341900543830265068121414213505715417505750863990767394633514620908288893493837643939925690060406731142209331219593620298297235116325938677224147791162957278075239505625158160313335938231150051862689053065836812998810866326327198061127154885879809348791291370749823057592909186293919501472119758606727009254771802575033773079939713453953264619526999659638565491759045833358579910201271320458390320085387888163363768518208372788513117522776960978796214237216254521459128183179821604411131167140691482717098101545778193920231156387195080502467972579249760577262591332855972637121120190572077140914864507409492671803581515757151405039761096384675556929897038354731410022380258346876735012977541327953206097115450648421218593649099791776687477448188287063231551586503289816422828823274686610659273219790716238464215348985247621678905026099804526648392954235728734397768049577409144953839157556548545905897649519851380100795801078375994577529919670054760225255203445398871253878017196071816407812484784725791240782454436168234523957068951427226975043187363326301110305342333582160933319121880660826834142891041517324721605335584999322454873077882290525232423486153152097693846104258284971496347534183756200301491570327968530186863157248840152663983568956363465743532178349319982554211730846774529708583950761645822963032442432823773745051702856069806788952176819815671078163340526675953942492628075696832610749532339053622309080708145591983735537774874202903901814293731152933464446815121294509759653430628421531944572711861490001765055817709530246887526325011970520947615941676872778447200019278913725184162285778379228443908430118112149636642465903363419454065718354477191244662125939265662030688852005559912123536371822692253178145879259375044144893398160865790087616502463519704582889548179375668104647461410514249887025213993687050937230544773411264135489280684105910771667782123833281026218558775131272117934444820144042574508306394473836379390628300897330624138061458941422769474793166571762318247216835067807648757342049155762821758397297513447899069658953254894033561561316740327647246921250575911625152965456854463349811431767025729566184477548746937846423373723898192066204851189437886822480727935202250179654534375727416391079197295295081294292220534771730418447791567399173841831171036252439571615271466900581470000263301045264354786590329073320546833887207873544476264792529769017091200787418373673508771337697768349634425241994995138831507487753743384945825976556099655595431804092017849718468549737069621208852437701385375768141663272241263442398215294164537800049250726276515078908507126599703670872669276430837722968598516912230503746274431085293430527307886528397733524601746352770320593817912539691562106363762588293757137384075440646896478310070458061344673127159119460843593582598778283526653115106504162329532904777217408355934972375855213804830509000964667608830154061282430874064559443185341375522016630581211103345312074508682433943215904359443031243122747138584203039010607094031523555617276799416002039397509989762933532585557562480899669182986422267750236019325797472674257821111973470940235745722227121252685238429587427350156366009318804549333898974157149054418255973808087156528143010267046028431681923039253529779576586241439270154974087927313105163611913757700892956482332364829826302460797587576774537716010249080462430185652416175665560016085912153455626760219268998285537787258314514408265458348440947846317877737479465358016996077940556870119232860804113090462935087182712593466871276669487389982459852778649956916546402945893506496433580982476596516514209098675520380830920323048734270346828875160407154665383461961122301375945157925269674364253192739003603860823645076269882749761872357547676288995075211480485252795084503395857083813047693788132112367428131948795022806632017002246033198967197064916374117585485187848401205484467258885140156272501982171906696081262778548596481836962141072171421498636191877475450965030895709947093433785698167446582826791194061195603784539785583924076127634410576675102430755981455278616781594965706255975507430652108530159790807334373607943286675789053348366955548680391343372015649883422089339997164147974693869690548008919306713805717150585730714881564992071408675825960287605645978242377024246980532805663278704192676846711626687946348695046450742021937394525926266861355294062478136120620263649819999949840514386828525895634226432870766329930489172340072547176418868535137233266787792173834754148002280339299735793615241275582956927683723123479898944627433045456679006203242051639628258844308543830720149567210646053323853720314324211260742448584509458049408182092763914000854042202355626021856434899414543995041098059181794888262805206644108631900168856815516922948620301073889718100770929059048074909242714101893354281842999598816966099383696164438152887721408526808875748829325873580990567075581701794916190611400190855374488272620093668560447559655747648567400817738170330738030547697360978654385938218722058390234444350886749986650604064587434600533182743629617786251808189314436325120510709469081358644051922951293245007883339878842933934243512634336520438581291283434529730865290978330067126179813031679438553572629699874035957045845223085639009891317947594875212639707837594486113945196028675121056163897600888009274611586080020780334159145179707303683519697776607637378533301202412011204698860920933908536577322239241244905153278095095586645947763448226998607481329730263097502881210351772312446509534965369309001863776409409434983731325132186208021480992268550294845466181471555744470966953017769043427203189277060471778452793916047228153437980353967986142437095668322149146543801459382927739339603275404800955223181666738035718393275707714204672383862461780397629237713120958078936384144792980258806552212926209362393063731349664018661951081158347117331202580586672763999276357907806381881306915636627412543125958993611964762610140556350339952314032311381965623632719896183725484533370206256346422395276694356837676136871196292181875457608161705303159072882870071231366630872275491866139577373054606599743781098764980241401124214277366808275139095931340415582626678951084677611866595766016599817808941498575497628438785610026379654317831363402513581416115190209649913354873313111502270068193013592959597164019719605362503355847998096348871803911161281359596856547886832585643789617315976200241962155289629790481982219946226948713746244472909345647002853769495885959160678928249105441251599630078136836749020937491573289627002865682934443134234735123929825916673950342599586897069726733258273590312128874666045146148785034614282776599160809039865257571726308183349444182019353338507129234577437557934406217871133006310600332405399169368260374617663856575887758020122936635327026710068126182517291460820254189288593524449107013820621155382779356529691457650204864328286555793470720963480737269214118689546732276775133569019015372366903686538916129168888787640752549349424973342718117889275993159671935475898809792452526236365903632007085444078454479734829180208204492667063442043755532505052752283377888704080403353192340768563010934777212563908864041310107381785333831603813528082811904083256440184205374679299262203769871801806112262449090924264198582086175117711378905160914038157500336642415609521632819712233502316742260056794128140621721964184270578432895980288233505982820819666624903585778994033315227481777695284368163008853176969478369058067106482808359804669884109813515865490693331952239436328792399053481098783027450017206543369906611778455436468772363184446476806914282800455107468664539280539940910875493916609573161971503316696830992946634914279878084225722069714887558063748030886299511847318712477729191007022758889348693945628951580296537215040960310776128983126358996489341024703603664505868728758905140684123812424738638542790828273382797332688550493587430316027474906312957234974261122151741715313361862241091386950068883589896234927631731647834007746088665559873338211382992877691149549218419208777160606847287467368188616750722101726110383067178785669481294878504894306308616994879870316051588410828235127415353851336589533294862949449506186851477910580469603906937266267038651290520113781085861618888694795760741358553458515176805197333443349523012039577073962377131603024288720053732099825300897761897312981788194467173116064723147624845755192873278282512718244680782421521646956781929409823892628494376024885227900362021938669648221562809360537317804086372726842669642192994681921490870170753336109479138180406328738759384826953558307739576144799727000347288018278528138950321798634521611106660883931405322694490545552786789441757920244002145078019209980446138254780585804844241640477503153605490659143007815837243012313751156228401583864427089071828481675752712384678245953433444962201009607105137060846180118754312072549133499424761711563332140893460915656155060031738421870157022610310191660388706466143889773631878094071152752817468957640158104701696524755774089164456867771715850058326994340167720215676772406812836656526412298243946513319735919970940327593850266955747023181320324371642058614103360652453693916005064495306016126782264894243739716671766123104897503188573216555498834212180284691252908610148552781527762562375045637576949773433684601560772703550962904939248708840628106794362241870474700836884267102255830240359984164595112248527263363264511401739524808619463584078375355688562231711552094722306543709260679735100056554938122457548372854571179739361575616764169289580525729752233855861138832217110736226581621884244317885748879810902665379342666421699091405653643224930133486798815488662866505234699723557473842483059042367714327879231642240387776433019260019228477831383763253612102533693581262408686669973827597736568222790721583247888864236934639616436330873013981421143030600873066616480367898409133592629340230432497492688783164360268101130957071614191283068657732353263965367739031766136131596555358499939860056515592193675997771793301974468814837110320650369319289452140265091546518430993655349333718342529843367991593941746622390038952767381333061774762957494386871697845376721949350659087571191772087547710718993796089477451265475750187119487073873678589020061737332107569330221632062843206567119209695058576117396163232621770894542621460985841023781321581772760222273813349541048100307327510779994899197796388353073444345753297591426376840544226478421606312276964696715647399904371590332390656072664411643860540483884716191210900870101913072607104411414324197679682854788552477947648180295973604943970047959604029274629920357209976195014034831538094771460105633344699882082212058728151072918297121191787642488035467231691654185225672923442918712816323259696541354858957713320833991128877591722611527337901034136208561457799239877832508355073019981845902595835598926055329967377049172245493532968330000223018151722657578752405883224908582128008974790932610076257877042865600699617621217684547899644070506624171021332748679623743022915535820078014116534806564748823061500339206898379476625503654982280532966286211793062843017049240230198571997894883689718304380518217441914766042975243725168343541121703863137941142209529588579806015293875275379903093887168357209576071522190027937929278630363726876582268124199338480816602160372215471014300737753779269906958712128928801905203160128586182549441335382078488346531163265040764242839087012101519423196165226842200371123046430067344206474771802135307012409886035339915266792387110170622186588357378121093517977560442563469499978725112544085452227481091487430725986960204027594117894258128188215995235965897918114407765335432175759525553615812800116384672031934650729680799079396371496177431211940202129757312516525376801735910155733815377200195244454362007184847566341540744232862106099761324348754884743453966598133871746609302053507027195298394327142537115576660002578442303107342955153394506048622276496668762407932435319299263925373107689213535257232108088981933916866827894828117047262450194840970097576092098372409007471797334078814182519584259809624174761013825264395513525931188504563626418830033853965243599741693132289471987830842760040136807470390409723847394583489618653979059411859931035616843686921948538205578039577388136067954990008512325944252972448666676683464140218991594456530942344065066785194841776677947047204195882204329538032631053749488312218039127967844610013972675389219511911783658766252808369005324900459741094706877291232821430463533728351995364827432583311914445901780960778288358373011185754365995898272453192531058811502630754257149394302445393187017992360816661130542625399583389794297160207033876781503301028012009599725222228080142357109476035192554443492998676781789104555906301595380976187592035893734197896235893112598390259831026719330418921510968915622506965911982832345550305908173073519550372166587028805399213857603703537710517802128012956684198414036287272562321442875430221090947272107347413497551419073704331827662617727599688882602722524713368335345281669277959132886138176634985772893690096574956228710302436259077241221909430087175569262575806570991201665962243608024287002454736203639484125595488172727247365346778364720191830399871762703751572464992228946793232269361917764161461879561395669956778306829031658969943076733350823499079062410020250613405734430069574547468217569044165154063658468046369262127421107539904218871612761778701425886482577522388918459952337629237791558574454947736129552595222657863646211837759847370034797140820699414558071908021359073226923310083175951065901912129479540860364075735875020589020870457967000705526250581142066390745921527330940682364944159089100922029668052332526619891131184201629163107689408472356436680818216865721968826835840278550078280404345371018365109695178233574303050485265373807353107418591770561039739506264035544227515610110726177937063472380499066692216197119425912044508464174638358993823994651739550900085947999013602667426149429006646711506717542217703877450767356374215478290591101261915755587023895700140511782264698994491790830179547587676016809410013583761357859135692445564776446417866711539195135769610486492249008344671548638305447791433009768048687834818467273375843689272431044740680768527862558516509208826381323362314873333671476452045087662761495038994950480956046098960432912335834885999029452640028499428087862403981181488476730121675416110662999555366819312328742570206373835202008686369131173346973174121915363324674532563087134730279217495622701468732586789173455837996435135880095935087755635624881049385299900767513551352779241242927748856588856651324730251471021057535251651181485090275047684551825209633189906852761443513821366215236889057878669943228881602837748203550601602989400911971385017987168363374413927597364401700701476370665570350433812111357641501845182141361982349515960106475271257593518530433287553778305750956742544268471221961870917856078393614451138333564910325640573389866717812397223751931643061701385953947436784339267098671245221118969084023632741149660124348309892994173803058841716661307304006758838043211155537944060549772170594282151488616567277124090338772774562909711013488518437411869565544974573684521806698291104505800429988795389902780438359628240942186055628778842880212755388480372864001944161425749990427200959520465417059810498996750451193647117277222043610261407975080968697517660023718774834801612031023468056711264476612374762785219024120256994353471622666089367521983311181351114650385489502512065577263614547360442685949807439693233129712737715734709971395229118265348515558713733662912024271430250376326950135091161295299378586468130722648600827088133353819370368259886789332123832705329762585738279009782646054559855513183668884462826513379849166783940976135376625179825824966345877195012438404035914084920973375464247448817618407002356958017741017769692507781489338667255789856458985105689196092439884156928069698335224022563457049731224526935419383700484318335719651662672157552419340193309901831930919658292096965624766768365964701959575473934551433741370876151732367720422738567427917069820454995309591887243493952409444167899884631984550485239366297207977745281439941825678945779571255242682608994086331737153889626288962940211210888442737656862452761213037101730078513571540453304150795944777614359743780374243664697324713841049212431413890357909241603640631403814983148190525172093710396402680899483257229795456404270175772290417323479607361878788991331830584306939482596131871381642346721873084513387721908697510494284376932502498165667381626061594176825250999374167288395174406693254965340310145222531618900923537648637848288134420987004809622717122640748957193900291857330746010436072919094576799461492929042798168772942648772995285843464777538690695014898413392454039414468026362540211861431703125111757764282991464453340892097696169909837265236176874560589470496817013697490952307208268288789073019001825342580534342170592871393173799314241085264739094828459641809361413847583113613057610846236683723769591349261582451622155213487924414504175684806412063652017038633012953277769902311864802006755690568229501635493199230591424639621702532974757311409422018019936803502649563695586642590676268568737211033915679383989576556519317788300024161353956243777784080174881937309502069990089089932808839743036773659552489130015663329407790713961546453408879151030065132193448667324827590794680787981942501958262232039513125201410996053126069655540424867054998678692302174698900954785072567297879476988883109348746442640071818316033165551153427615562240547447337804924621495213325852769884733626918264917433898782478927846891882805466998230368993978341374758702580571634941356843392939606819206177333179173820856243643363535986349449689078106401967407443658366707158692452118299789380407713750129085864657890577142683358276897855471768718442772612050926648610205153564284063236848180728794071712796682006072755955590404023317874944734645476062818954151213916291844429765106694796935401686601005519607768733539651161493093757096855455938151378956903925101495326562814701199832699220006639287537471313523642158926512620407288771657835840521964605410543544364216656224456504299901025658692727914275293117208279393775132610605288123537345106837293989358087124386938593438917571337630072031976081660446468393772580690923729752348670291691042636926209019960520412102407764819031601408586355842760953708655816427399534934654631450404019952853725200495780525465625115410925243799132626271360909940290226206283675213230506518393405745011209934146491843332364656937172591448932415900624202061288573292613359680872650004562828455757459659212053034131011182750130696150983551563200431078460190656549380654252522916199181995960275232770224985573882489988270746593635576858256051806896428537685077201222034792099393617926820659014216561592530673794456894907085326356819683186177226824991147261573203580764629811624401331673789278868922903259334986179702199498192573961767307583441709855922217017182571277753449150820527843090461946083521740200583867284970941102326695392144546106621500641067474020700918991195137646690448126725369153716229079138540393756007783515337416774794210038400230895185099454877903934612222086506016050035177626483161115332558770507354127924990985937347378708119425305512143697974991495186053592040383023571635272763087469321962219006426088618367610334600225547747781364101269190656968649501268837629690723396127628722304114181361006026404403003599698891994582739762411461374480405969706257676472376606554161857469052722923822827518679915698339074767114610302277660602006124687647772881909679161335401988140275799217416767879923160396356949285151363364721954061117176738737255572852294005436178517650230754469386930787349911035218253292972604455321079788771144989887091151123725060423875373484125708606406905205845212275453384800820530245045651766951857691320004281675805492481178051983264603244579282973012910531838563682120621553128866856495651261389226136706409395333457052698695969235035309422454386527867767302754040270224638448355323991475136344104405009233036127149608135549053153902100229959575658370538126196568314428605795669662215472169562087001372776853696084070483332513279311223250714863020695124539500373572334680709465648308920980153487870563349109236605755405086411152144148143463043727327104502776866195310785832333485784029716092521532609255893265560067212435946425506599677177038844539618163287961446081778927217183690888012677820743010642252463480745430047649288555340906218515365435547412547615276977266776977277705831580141218568801170502836527554321480348800444297999806215790456416195721278450892848980642649742709057912906921780729876947797511244730599140605062994689428093103421641662993561482813099887074529271604843363081840412646963792584309418544221635908457614607855856247381493142707826621518554160387020687698046174740080832434366538235455510944949843109349475994467267366535251766270677219418319197719637801570216993367508376005716345464367177672338758864340564487156696432104128259564534984138841289042068204700761559691684303899934836679354254921032811336318472259230555438305820694167562999201337317548912203723034907268106853445403599356182357631283776764063101312533521214199461186935083317658785204711236433122676512996417132521751355326186768194233879036546890800182713528358488844411176123410117991870923650718485785622102110400977699445312179502247957806950653296594038398736990724079767904082679400761872954783596349279390457697366164340535979221928587057495748169669406233427261973351813662606373598257555249650980726012366828360592834185584802695841377255897088378994291054980033111388460340193916612218669605849157148573356828614950001909759112521880039641976216355937574371801148055944229873041819680808564726571354761283162920044988031540210553059707666636274932830891688093235929008178741198573831719261672883491840242972129043496552694272640255964146352591434840067586769035038232057293413298159353304444649682944136732344215838076169483121933311981906109614295220153617029857510559432646146850545268497576480780800922133581137819774927176854507553832876887447459159373116247060109124460982942484128752022446259447763874949199784044682925736096853454984326653686284448936570411181779380644161653122360021491876876946739840751717630751684985635920148689294310594020245796962292456664488196757629434953532638217161339575779076637076456957025973880043841580589433613710655185998760075492418721171488929522173772114608115434498266547987258005667472405112200738345927157572771521858994694811794064446639943237004429114074721818022482583773601734668530074498556471542003612359339731291445859152288740871950870863221883728826282288463184371726190330577714765156414382230679184738603914768310814135827575585364359772165002827780371342286968878734979509603110889919614338666406845069742078770028050936720338723262963785603865321643234881555755701846908907464787912243637555666867806761054495501726079114293083128576125448194444947324481909379536900820638463167822506480953181040657025432760438570350592281891987806586541218429921727372095510324225107971807783304260908679427342895573555925272380551144043800123904168771644518022649168164192740110645162243110170005669112173318942340054795968466980429801736257040673328212996215368488140410219446342464622074557564396045298531307140908460849965376780379320189914086581466217531933766597011433060862500982956691763884605676297293146491149370462446935198403953444913514119366793330193661766365255514917498230798707228086085962611266050428929696653565251668888557211227680277274370891738963977225756489053340103885593112567999151658902501648696142720700591605616615970245198905183296927893555030393468121976158218398048396056252309146263844738629603984892438618729850777592879272206855480721049781765328621018747676689724884113956034948037672703631692100735083407386526168450748249644859742813493648037242611670426687083192504099761531907685577032742178501000644198412420739640013960360158381056592841368457411910273642027416372348821452410134771652960312840865841978795111651152982781462037913985500639996032659124852530849369031313010079997719136223086601109992914287124938854161203802041134018888721969347790449752745428807280350930582875442075513481666092787935356652125562013998824962847872621443236285367650259145046837763528258765213915648097214192967554938437558260025316853635673137926247587804944594418342917275698837622626184636545274349766241113845130548144983631178978448973207671950878415861887969295581973325069995140260151167552975057543781024223895792578656212843273120220071673057406928686936393018676595825132649914595026091706934751940897535746401683081179884645247361895605647942635807056256328118926966302647953595109712765913623318086692153578860781275991053717140220450618607537486630635059148391646765672320571451688617079098469593223672494673758309960704258922048155079913275208858378111768521426933478692189524062265792104362034885292626798401395321645879115157905046057971083898337186403802441751134722647254701079479399695355466961972676325522991465493349966323418595145036098034409221220671256769872342794070885707047429317332918852389672197135392449242617864118863779096281448691786946817759171715066911148002075943201206196963779510322708902956608556222545260261046073613136886900928172106819861855378098201847115416363032626569928342415502360097804641710852553761272890533504550613568414377585442967797701466029438768722511536380119175815402812081825560648541078793359892106442724489861896162941341800129513068363860929410008313667337215300835269623573717533073865333820484219030818644918409372394403340524490955455801640646076158101030176748847501766190869294609876920169120218168829104087070956095147041692114702741339005225334083481287035303102391969997859741390859360543359969707560446013424245368249609877258131102473279856207212657249900346829388687230489556225320446360263985422525841646432427161141981780248259556354490721922658386366266375083594431487763515614571074552801615967704844271419443518327569840755267792641126176525061596523545718795667317091331935876162825592078308018520689015150471334038610031005591481785211038475454293338918844412051794396997019411269511952656491959418997541839323464742429070271887522353439367363366320030723274703740712398256202466265197409019976245205619855762576000870817308328834438183107005451449354588542267857855191537229237955549433341017442016960009069641561273229777022121795186837635908225512881647002199234886404395915301846400471432118636062252701154112228380277853891109849020134274101412155976996543887719748537643115822983853312307175113296190455900793806427669581901484262799122179294798734890186847167650382732855205908298452980625925035212845192592798659350613296194679625237397256558415785374456755899803240549218696288849033256085145534439166022625777551291620077279685262938793753045418108072928589198971538179734349618723292761474785019261145041327487324297058340847111233374627461727462658241532427105932250625530231473875925172478732288149145591560503633457542423377916037495250249302235148196138116256391141561032684495807250827343176594405409826976526934457986347970974312449827193311386387315963636121862349726140955607992062831699942007205481152535339394607685001990988655386143349578165008996164907967814290114838764568217491407562376761845377514403147541120676016072646055685925779932207033733339891636950434669069482843662998003741452762771654762382554617088318981086880684785370553648046935095881802536052974079353867651119507937328208314626896007107517552061443378411454995013643244632819334638905093654571450690086448344018042836339051357815727397333453728426337217406577577107983051755572103679597690188995849413019599957301790124019390868135658553966194137179448763207986880037160730322054742357226689680188212342439188598416897227765219403249322731479366923400484897605903795809469604175427961378255378122394764614783292697654516229028170110043784603875654415173943396004891531881757665050095169740241564477129365661425394936888423051740012992055685428985389794266995677702708914651373689220610441548166215680421983847673087178759027920917590069527345668202651337311151800018143412096260165862982107666352336177400783778342370915264406305407180784335806107296110555002041513169637304684921335683726540030750982908936461204789111475303704989395283345782408281738644132271000296831194020332345642082647327623383029463937899837583655455991934086623509096796113400486702712317652666371077872511186035403755448741869351973365662177235922939677646325156202348757011379571209623772343137021203100496515211197601317641940820343734851285260291333491512508311980285017785571072537314913921570910513096505988599993156086365547740355189816673353588004821466509974143376118277772335191074121757284159258087259131507460602563490377726337391446137703802131834744730111303267029691733504770163210661622783002726928336558401179141944780874825336071440329625228577500980859960904093631263562132816207145340610422411208301000858726425211226248014264751942618432585338675387405474349107271004975428115946601713612259044015899160022982780179603519408004651353475269877760952783998436808690898919783969353217998013913544255271791022539701081063214304851137829149851138196914304349750018998068164441212327332830719282436240673319655469267785119315277511344646890550424811336143498460484905125834568326644152848971397237604032821266025351669391408204994732048602162775979177123475109750240307893575993771509502175169355582707253391189233407022383207758580213717477837877839101523413209848942345961369234049799827930414446316270721479611745697571968123929191374098292580556195520743424329598289898052923336641541925636738068949420147124134052507220406179435525255522500874879008656831454283516775054229480327478304405643858159195266675828292970522612762871104013480178722480178968405240792436058274246744307672164527031345135416764966890127478680101029513386269864974821211862904033769156857624069929637249309720162870720018983542369036414927023696193854737248032985504511208919287982987446786412915941753167560253343531062674525450711418148323988060729714023472552071349079839898235526872395090936566787899238371257897624875599044322889538837731734894112275707141095979004791930104674075041143538178246463079598955563899188477378134134707024674736211204898622699188851745625173251934135203811586335012391305444191007362844756751416105041097350585276204448919097890198431548528053398577784431393388399431044446566924455088594631408175122033139068159659251054685801313383815217641821043342978882611963044311138879625874609022613090084997543039577124323061690626291940392143974027089477766370248815549932245882597902063125743691094639325280624164247686849545532493801763937161563684785982371590238542126584061536722860713170267474013114526106376538339031592194346981760535838031061288785205154693363924108846763200956708971836749057816308515813816196688222204757043759061433804072585386208356517699842677452319582418268369827016023741493836349662935157685406139734274647089968561817016055110488097155485911861718966802597354170542398513556001872033507906094642127114399319604652742405088222535977348151913543857125325854049394601086579379805862014336607882521971780902581737087091646045272797715350991034073642502038638671822052287969445838765294795104866071739022932745542678566977686593992341683412227466301506215532050265534146099524935605085492175654913483095890653617569381763747364418337897422970070354520666317092960759198962773242309025239744386101426309868773391388251868431650102796491149773758288891345034114886594867021549210108432808078342808941729800898329753694064496990312539986391958160146899522088066228540841486427478628197554662927881462160717138188018084057208471586890683691939338186427845453795671927239797236465166759201105799566396259853551276355876814021340982901629687342985079247184605687482833138125916196247615690287590107273310329914062386460833337863825792630239159000355760903247728133888733917809696660146961503175422675112599331552967421333630022296490648093458200818106180210022766458040027821333675857301901137175467276305904435313131903609248909724642792845554991349000518029570708291905255678188991389962513866231938005361134622429461024895407240485712325662888893172211643294781619055486805494344103409068071608802822795968695013364381426825217047287086301013730115523686141690837567574763723976318575703810944339056456446852418302814810799837691851212720193504404180460472162693944578837709010597469321972055811407877598977207200968938224930323683051586265728111463799698313751793762321511125234973430524062210524423435373290565516340666950616589287821870775679417608071297378133518711793165003315552382248773065344417945341539520242444970341012087407218810938826816751204229940494817944947273289477011157413944122845552182842492224065875268917227278060711675404697300803703961878779669488255561467438439257011582954666135867867189766129731126720007297155361302750355616781776544228744211472988161480270524380681765357327557860250584708401320883793281600876908130049249147368251703538221961903901499952349538710599735114347829233949918793660869230137559636853237380670359114424326856151210940425958263930167801712866923928323105765885171402021119695706479981403150563304514156441462316376380990440281625691757648914256971416359843931743327023781233693804301289262637538266779503416933432360750024817574180875038847509493945489620974048544263563716499594992098088429479036366629752600324385635294584472894454716620929749549661687741412088213047702281611645604400723635158114972973921896673738264720472264222124201656015028497130633279581430251601369482556701478093579088965713492615816134690180696508955631012121849180584792272069187169631633004485802010286065785859126997463766174146393415956953955420331462802651895116793807457331575984608617370268786760294367778050024467339133243166988035407323238828184750105164133118953703648842269027047805274249060349208295475505400345716018407257453693814553117535421072655783561549987444748042732345788006187314934156604635297977945507535930479568720931672453654720838168585560604380197703076424608348987610134570939487700294617579206195254925575710903852517148852526567104534981341980339064152987634369542025608027761442191431892139390883454313176968510184010384447234894886952098194353190650655535461733581404554483788475252625394966586999205841765278012534103389646981864243003414679138061902805960785488801078970551694621522877309010446746249797999262712095168477956848258334140226647721084336243759374161053673404195473896419789542533503630186140095153476696147625565187382329246854735693580289601153679178730355315937836308224861517777054157757656175935851201669294311113886358215966761883032610416465171484697938542262168716140012237821377977413126897726671299202592201740877007695628347393220108815935628628192856357189338495885060385315817976067947984087836097596014973342057270460352179060564760328556927627349518220323614411258418242624771201203577638889597431823282787131460805353357449429762179678903456816988955351850447832561638070947695169908624710001974880920500952194363237871976487033922381154036347548862684595615975519376541011501406700122692747439388858994385973024541480106123590803627458528849356325158538438324249325266608758890831870070910023737710657698505643392885433765834259675065371500533351448990829388773735205145933304962653141514138612443793588507094468804548697535817021290849078734780681436632332281941582734567135644317153796781805819585246484008403290998194378171817730231700398973305049538735611626102399943325978012689343260558471027876490107092344388463401173555686590358524491937018104162620850429925869743581709813389404593447193749387762423240985283276226660494238512970945324558625210360082928664972417491914198896612955807677097959479530601311915901177394310420904907942444886851308684449370590902600612064942574471035354765785924270813041061854621988183009063458818703875585627491158737542106466795134648758677154383801852134828191581246259933516019893559516796893285220582479942103451271587716334522299541883968044883552975336128683722593539007920166694133909116875880398882886921600237325736158820716351627133281051818760210485218067552664867390890090719513805862673512431221569163790227732870541084203784152568328871804698795251307326634027851905941733892035854039567703561132935448258562828761061069822972142096199350933131217118789107876687204454887608941017479864713788246215395593333327556200943958043453791978228059039595992743691379377866494096404877784174833643268402628293240626008190808180439091455635193685606304508914228964521998779884934747772913279726602765840166789013649050874114212686196986204412696528298108704547986155954533802120115564697997678573892018624359932677768945406050821883822790983362716712449002676117849826437703300208184459000971723520433199470824209877151444975101705564302954282181967000920251561584417420593365814813490269311151709387226002645863056132560579256092733226557934628080568344392137368840565043430739657406101777937014142461549307074136080544210029560009566358897789926763051771878194370676149821756418659011616086540863539151303920131680576903417259645369235080641744656235152392905040947995318407486215121056183385456617665260639371365880252166622357613220194170137266496607325201077194793126528276330241380516490717456596485374835466919452358031530196916048099460681490403781982973236093008713576079862142542209641900436790547904993007837242158195453541837112936865843055384271762803527912882112930835157565659994474178843838156514843422985870424559243469329523282180350833372628379183021659183618155421715744846577842013432998259456688455826617197901218084948033244878725818377480552226815101137174536841787028027445244290547451823467491956418855124442133778352142386597992598820328708510933838682990657199461490629025742768603885051103263854454041918495886653854504057132362968106914681484786965916686184275679846004186876229805556296304595322792305161672159196867584952363529893578850774608153732145464298479231051167635774949462295256949766035947396243099534331040499420967788382700271447849406903707324910644415169605325656058677875741747211082743577431519406075798356362914332639781221894628744779811980722564671466405485013100965678631488009030374933887536418316513498254669467331611812336485439764932502617954935720430540218297487125110740401161140589991109306249231281311634054926257135672181862893278613883371802853505650359195274140086951092616754147679266803210923746708721360627833292238641361959412133927803611827632410600474097111104814000362334271451448333464167546635469973149475664342365949349684588455152415075637660508663282742479413606287604129064491382851945640264315322585862404314183866959063324506300039221319264762596269151090445769530144405461803785750303668621246227863975274666787012100339298487337501447560032210062235802934377495503203701273846816306102657030087227546296679688089058712767636106622572235222973920644309352432722810085997309513252863060110549791564479184500461804676240892892568091293059296064235702106152464620502324896659398732493396737695202399176089847457184353193664652912584806448019652016283879518949933675924148562613699594530728725453246329152911012876377060557060953137752775186792329213495524513308986796916512907384130216757323863757582008036357572800275449032795307990079944254110872569318801466793559583467643286887696661009739574996783659339784634695994895061049038364740950469522606385804675807306991229047408987916687211714752764471160440195271816950828973353714853092893704638442089329977112585684084660833993404568902678751600877546126798801546585652206121095349079670736553970257619943137663996060606110640695933082817187642604357342536175694378484849525010826648839515970049059838081210522111109194332395113605144645983421079905808209371646452312770402316007213854372346126726099787038565709199850759563461324846018840985019428768790226873455650051912154654406382925385127631766392205093834520430077301702994036261543400132276391091298832786392041230044555168405488980908077917463609243933491264116424009388074635660726233669584276458369826873481588196105857183576746200965052606592926354829149904576830721089324585707370166071739819448502884260396366074603118478622583105658087087030556759586134170074540296568763477417643105175103673286924555858208237203860178173940517513043799486882232004437804310317092103426167499800007301609481458637448877852227307633049538394434538277060876076354209844500830624763025357278103278346176697054428715531534001649707665719598504174819908720149087568603778359199471934335277294728553792578768483230110185936580071729118696761765505377503029303383070644891281141202550615089641100762382457448865518258105814034532012475472326908754750707857765973254284445935304499207001453874894822655644222369636554419422544133821222547749753549462482768053333698328415613869236344335855386847111143049824839899180316545863828935379913053522283343013795337295401625762322808113849949187614414132293376710656349252881452823950620902235787668465011666009738275366040544694165342223905210831458584703552935221992827276057482126606529138553034554974455147034493948686342945965843102419078592368022456076393678416627051855517870290407355730462063969245330779578224594971042018804300018388142900817303945050734278701312446686009277858181104091151172937487362788787490746528556543474888683106411005102302087510776891878152562273525155037953244485778727761700196485370355516765520911933934376286628461984402629525218367852236747510880978150709897841308624588152266096355140187449583692691779904712072649490573726428600521140358123107600669951853612486274675637589622529911649606687650826173417848478933729505673900787861792535144062104536625064046372881569823231750059626108092195521115085930295565496753886261297233991462835847604862762702730973920200143224870758233735491524608560821032888297418390647886992327369136004883743661522351705843770554521081551336126214291181561530175888257359489250710887926212864139244330938379733386780613179523731526677382085802470143352700924380326695174211950767088432634644274912755890774686358216216604274131517021245858605623363149316464691394656249747174195835421860774871105733845843368993964591374060338215935224359475162623918868530782282176398323730618020424656047752794310479618972429953302979249748168405289379104494700459086499187272734541350810198388186467360939257193051196864560185578245021823106588943798652243205067737996619695547244058592241795300682045179537004347245176289356677050849021310773662575169733552746230294303120359626095342357439724965921101065781782610874531887480318743082357369919515634095716270099244492974910548985151965866474014822510633536794973714251022934188258511737199449911509758374613010550506419772153192935487537119163026203032858865852848019350922587577559742527658401172134232364808402714335636754204637518255252494432965704386138786590196573880286840189408767281671413703366173265012057865391578070308871426151907500149257611292767519309672845397116021360630309054224396632067432358279788933232440577919927848463333977773765590187057480682867834796562414610289950848739969297075043275302997287229732793444298864641272534816060377970729829917302929630869580199631241330493935049332541235507105446118259114111645453471032988104784406778013807713146540009938630648126661433085820681139583831916954555825942689576984142889374346708410794631893253910696395578070602124597489829356461356078898347241997947856436204209461341238761319886535235831299686226894860840845665560687695450127448663140505473535174687300980632278046891224682146080672762770840240226615548502400895289165711761743902033758487784291128962324705919187469104200584832614067733375102719565399469716251724831223063391932870798380074848572651612343493327335666447335855643023528088392434827876088616494328939916639921048830784777704804572849145630335326507002958890626591549850940797276756712979501009822947622896189159144152003228387877348513097908101912926722710377889805396415636236416915498576840839846886168437540706512103906250612810766379904790887967477806973847317047525344215639038720123880632368803701794930895490077633152306354837425681665336160664198003018828712376748189833024683637148830925928337590227894258806008728603885916884973069394802051122176635913825152427867009440694235512020156837777885182467002565170850924962374772681369428435006293881442998790530105621737545918267997321773502936892806521002539626880749809264345801165571588670044350397650532347828732736884086354000274067678382196352222653929093980736739136408289872201777674716811819585613372158311905468293608323697611345028175783020293484598292500089568263027126329586629214765314223335179309338795135709534637718368409244442209631933129562030557551734006797374061416210792363342380564685009203716715264255637185388957141641977238742261059666739699717316816941543509528319355641770566862221521799115135563970714331289365755384464832620120642433801695586269856102246064606933079384785881436740700059976970364901927332882613532936311240365069865216063898725026723808740339674439783025829689425689674186433613497947524552629142652284241924308338810358005378702399954217211368655027534136221169314069466951318692810257479598560514500502171591331775160995786555198188619321128211070944228724044248115340605589595835581523201218460582056359269930347885113206862662758877144603599665610843072569650056306448918759946659677284717153957361210818084154727314266174893313417463266235422207260014601270120693463952056444554329166298666078308906811879009081529506362678207561438881578135113469536630387841209234694286873083932043233387277549680521030282154432472338884521534372725012858974769146080831440412586818154004918777228786980185345453700652665564917091542952275670922221747411206272065662298980603289167206874365494824610869736722554740481288924247185432360575341167285075755205713115669795458488739874222813588798584078313506054829055148278529489112190538319562422871948475940785939804790109419407067176443903273071213588738504999363883820550168340277749607027684488028191222063688863681104356952930065219552826152699127163727738841899328713056346468822739828876319864570983630891778648708667618548568004767255267541474285102814580740315299219781455775684368111018531749816701642664788409026268282444825802753209454991510451851771654631180490456798571325752811791365627815811128881656228587603087597496384943527567661216895926148503078536204527450775295063101248034180458405943292607985443562009370809182152392037179067812199228049606973823874331262673030679594396095495718957721791559730058869364684557667609245090608820221223571925453671519183487258742391941089044411595993276004450655620646116465566548759424736925233695599303035509581762617623184956190649483967300203776387436934399982943020914707361894793269276244518656023955905370512897816345542332011497599489627842432748378803270141867695262118097500640514975588965029300486760520801049153788541390942453169171998762894127722112946456829486028149318156024967788794981377721622935943781100444806079767242927624951078415344642915084276452000204276947069804177583220909702029165734725158290463091035903784297757265172087724474095226716630600546971638794317119687348468873818665675127929857501636341131462753049901913564682380432997069577015078933772865803571279091376742080565549362464641260024379684543777339026472512819416320076848736251764065967540693621758879307855916478777274739272002910342949562447661308200729250734529170764226621047673037863169954237455117456522022783324096803524667663190861011206745856287317413511162292078865132941244815471628182079877168346341322362234117788231027659825109358892359162055108763298087993165172528938001237817434896832151590562493347370206832232100118637395770567473867102173212375224325241626358034376253606808669163571594551527817803921774322823436633772811186390511893075901666650742952758384008544635419317190531363659724905158409106582201814734799022359067138146905116051922301269482316113417439944714833040862484269139502336713412425123864026657258130943967621939655407386524229897879782198637918299709557924747320303239116410445906907977862315518349593035305923789817515891457650408025109479123421758482841881950138546165680301755035580054944894884871351605375593402345748979516602442338321406030095937105588457052515704266284600354402823678768550982678161765520375795655481677896038927498355608791541177749423573400764161093294003899982199267257086957326068774974224802023307525187650255968420760693229988587579898896460744381788170081548895226516722834045277219106991415764639485231126794730865803195076455197675628957428881796812090026387145257858315277615109088631740243695680567873015235427804793414266495223833707117511265375503942372098784668049139473446530714079622597287130503077258714875570502582573466866613802351426056116197405543436548698005444879295970287590352258409782683598666446586045694241390729095266249932902973440568160683805726626057277088407073471496060064561454070734432782514087474275506722304845357006092214390002992981608211717047917614505191008132670375214930740567853311106058352912781007391749949197845112915913681107394055175208019630539350740248509553772500367054665162330430425087442324262404632115078997336929985407041656261041976700202415094892411856092409637604429612002364590706449770627207919019235964807048923636979860198283087284228564752353162882791324295524814447505521909672046080689545181712204930321853740627247421519740305769043602686360780792004776232429551829473522027244376339027721392087767065716241639751785859254426923428535274328856336850789651962072519416556061870370550218462845434257850383000095374518292958440464918838685793483961151297160581665745096703677495836666693121881763679644943617130416037243050658485131749264055855194018005180908475211868224616976149243238319486434415908558011073070311201502243416073157929528752936835820397003389112114170685219366589789459503154389589015303827143001929589074149943592894083097077078362875914484037045038618966975811201852319231868659968038583812370329156207578835948780941688205531605128190152647592807574958154564221341459378167056992868299895611982353837157880480478704584175394665497690173220310890070303362911767308448450372145669644401469545173857434157810158618783839278552609399130570255575559060947051498093487773320072797573038245989466809680822221348485873822999281794090825665209581655472475244566743697594474686376332428904269776106791933910983300422310293728298798903209391092682836306173610173878123679898645149311702437128285882630486298884492207415640607147059137405524665756971870217355287245439427714809179364437650637861861324348635797411258520863459927803688792498354363298457687650165065115345008695721239507544785683173631557153527046524235259737513408825461609661440746675514226836031959801072152463551069171871335731685485631280857834435623670959650949946968820661185118086034202821331801249410991502601435450017432730793625113070298250499417994284451146479329154599555909587807621636668591791065435966065253525320273650725989121255686842802077246487722010996631829559552903393312284364864475973560859840760947298389542433932623153239918981852264180831296333546356874828863465618504810632288805596737844562000941465603499280879405115310057587129552571964111506850340773710604380371259575596985949362058477512026354947347534748189262254190352671614429284899857536740692165271630086060654373736823556588626486343689153218095572204456777137368310458075584529612832832606319629728527966674362974800821318627921869044284342630735760703999669430789508147269730253817375694922751795354326156912040594832860949992366412287881226419148504856328072066418557059520375030322916894489427578306090910852410601400683274205583969773823150734996108758763704255564964086855071942256344966732430656259250474581762733281816017019698166542426378763601453035946538450325476674999737340835665138186025156520283637389171016545414882674448009105704186162626837971120886141357279611099088292970229692128180978798951391504270936786444983196420134566833908775943006442485623012124614511697921939634409508083229281294270436599146482749984375942113020418297308417178813090379558545603247170819195302771465794555475544754284434408139388908609776017857389307518661906505018077165001840744325854024184360501118242990702323417243674525365349594799063334540754371812699399833719218485418735979845348934592268515068182662490078029335012658824974226241885352526636702827662499349829488748331061764208429016923052899608978604130065109028179805040587107671179041130217482796682353001960220253185576789843317586806378359968791601538922220236575765581586611409199394861599209159917553341783033347643131635012705390697079326567812415906434284721360235218236741214733124499944334155915274315931687477882533155092770336202901222597794809855392200064527162280855398278906584233447552821276517650572663267691141075034845871896996434875775138479148183635100621466818585096348887081456976722020167991199462417776688907917136865945960726468538810778783002161368276697026223459418737476733537998884403427046803042551694127158739320398444374604547816113056625176412759821181939661101850562880555942566060032312116180994622129301002470913347150682268430458680300904242861682025562140946087900065191099495570815816505828983340739466084457565780636690272843462018587328252924796505286681408503538519837523637451925622795490290557907030283950104854835929834542814487304358047053315081510503001521428117175393649133166172621235405527863308002083177055630294963594201654333094094177196326234119387105161570101798053551679370860291366756986097124120368583812957695307798141365700174761356966986146068491439699573837631695824602513342108072621713601943018087209888551415024163818325975259593165531865833117126857941527206612218422661411825154657484878312610347834546749258308729985447421206445095233245050877431496166555251797168020991720026409374921907569936896330281391647208963581771735555848592706524504862516419540550801343510323389813378302497701822754906381499964723334079613041469739476372650869273347108415685608430921316240434629863920841660055904598506491243505264766067600344441618186403670083774114101094320588955598658670077863671896944089622321374034113597199133135946553685446692367652589012108413777432482191812747847892287264892970032371873456157981599834839100412601050746964599430331978810634913923812490503061433407918328004063907098672596197098311265960147473725330526853717742146554005873924623727617364905198713368067723952570781360686683261395014329509474851594724667527201684316586608807512768584755541184381169011622005552113484488960668259227431319007963011587084670117654935393046563356225311244727796669005831190616101972663073970542531439818457379449486780134618217875939076999602029083965677287846905736401564015047696448993947541474608339918696889271156942345492651246645507792554028105037622035967530558601856492056062879090769453339208808849477828894851122154743230191383245562993881020614490266876010207753210915684977830740859649857967152617010039475494539917698791323546550106407355816999409756248149967443278429202762644189793918158394562708173301582160225519659898769376164019861207466755048861110855726764507052622446130222335852072273620485057289238815884938754535229186399714380884061757286220950122506515863104258884134355431973729856217753072022629475552483044445340434888878581170341345342522354319407877972846760181583227097745180929342193189815812482832658950040704855206099893783900341914163044639163880549658786501375046341695655156618298878630705842306967660254053024811471007899784211830489010464056896539702885595530925558636052158957375114089564905844156774937105859648014315874614491250549253191164653821585197370093280194530320572628452658046046337816631429933076646646530760590548962888724189716060225882617577539922055131509377200624863085562820493575752724995567089221634233983602565328731029194007041176919220850015116735670101958971001797019578120892910969417754369904368202563024054822625401905696507710581574240721496339560365270283334407305750073674562260584649886115101689612181119058471714461068719761017456587373796740697137423238753839030317200200207205928488785123911746471673743737923283881966201687622191346233893762599527025672138622112458980212130501407288904300322535504095866818724139369938193069148744717186646183111942603161664070377316487001864799600243044003242241809402278533309011509880870678268835317200767522553138008818780431690190072804831799287414125476123089606833095828377667688287578688683092976001011974533898331952588619630132917094385816615374171794496319177154312506959853481285684619377669894277459170918802520012749905559407289696594793331672243621567896776966708035229039018485730806275670867658627104769409203565593025352743418965927002227049233186829991560936413757004988537304596396152734629396974951748062696451793018719986788537581415975799314806608557232568374305282764175670050288040489429899580948103534833934144927885925262192415547231997143385086637320926632728243514933640704589683852345624744361175256766987767597223439206357507471552918102762614012992480422883990297879925418517499129630283990729635588579890593317795908769073905646025623533567221552259468838298452882922966275137162422172954678670715840924184084147557582539385240963302051349704740695399567897981727860920462286839735779815111868152659884606949758965481314651150392626377749513761557248195116119877250344564710738513435927355538712462375598193813214238441581929070046389771683887207916361741432497079109658162746429717072871725142745898356897095534626820169085356108944898407100581920302176945120771774588795519510473384184739980796306767885845167575729904306971542642383498009870869933670912108394453506245922432312348278549660374657188014892937945147870540607924575900601219622123928720017215588666345734971409533721151655985757941724419889026167016101611557834315025460328781198424027484608510722406676778760855247617773833089502610064388350550205456324346167859451941795669874968515244883847513618180667108316165564209369270520611898517292617141714434655508706306063551012949400309759167799158426049197120954322702678432654296572403272088714321999645313202587109677165128549669962552698607311763718207498827399770601991362093083230736838206455732563765982912578131492224220427971241441629951265945639792759380383804782623160424325399132851123032247037561942321733047854078576244013291717992979240783390715757981426816864655382946847399205888631655934919867896962840447344968024077092831376408103352255242717404107673565424441004483347440101726441052954787296345898640501203608024451190350994974493973617181575277093780209236668135841636268319263406714182797421342546220705415600050959674045616840451771747952790353254932589120483385746590096781730416000521088934610768754004241977803082885181200173369559127137714195011361304409753279190504891583246399143483531648681548579178632935123925552510211182788573696060276931301469661433449642302114382483705633532793858895267672076688971274435815632088106650149568143558796576909857765902768707453659276364975553449617308078160987103248013795136170367763457594975686208013996374551762425147780628722265971455482906769295713643572152674468987889418820751292225756509143552828874614195097862427527881571566400763721037803194043095844272549269987169234331890022141503113998765260688761566740210197201719602390861082974927639569541153032275460173870795625993579785302443476716399591462317931239989986928437975702492369551587297683854005227651495614447105971962889888157109415171701518114743513643854005116246202131174800791983749700100471363432523281578911355450453371905275068229156185003328469567926226208190442473340362503892792071585960039363153368842724375366799698647934741133198328619441460653922784099903143840354565047056789552024827176011874335643690243503085631309559055250390492731613311734922584644609024535079190184411299321699770451832853586480428556822208737213616490586303256368913084103760215679927020005322355439804653119339775459044045078568021398465009693429547310269249947586466058091669984160684646087293943808274308285817479694172872990311013192675573897984091364253479694943480377703364634958476862982590103470727861218623001986607987782684245933835638919570206853521603211635230064988744600200170413056985365154668752023859375183280372851143274811699683692849220447380570633496618711240947835915869626858643589141359854253577688774932743634514754488640868818030369652431755688300205860773256959716086485415834468432489963077011371344675156930244885482077124133557732306949458067267845235943631507872728157901573070033178796854436279525719023623274614262868732738009497741122856237663214904653294072026197539071740422259539242888164559796570030957141389106936845036268231053986743753240052701534745893325679514941854537808827063457295962169085383535370381418115573816378209032561519869745357646412125498076005156141707298046994813593483150568116642793219335279822714715767340186088721518799669350252700757556099719882863064285448128275139280694702750148163289727314347348528529504604883271673978981563678804780443602109007320727369749344630499731442571560433133690387618100948873120713482710815889857483265854207510077953118326861708037070935927614936782530858340482351003632166378957426202550350116861543407379504516482896755698358935522020173679548075781909502697981271148703431190363112246128295303820512870430929471974594690821025634788995431771524379696211281224503426066399268852133079196370277780448857920573046990800923440186638113252097123096476059989947925759851008173039606822219975327301606582628527582576695078547260349382981335825281786706085126560022688717811253597829337347791412736284188656175920832879447410969703879854736984025458063294835022359393543587480223989760916296250110473931169449100666907230634693130169711820632535269244043840093724284428209709364856909468920087371753252557030543539828727812301139808093867015474885803445631871319602678548793893316205007675264112044390237583342724298699654786368534102848857370254725502365663418680919038388670787907208403619402164670121534837978151832826472578628815207101081499558980338118961569441756761340717046538512170902123777884333649651872119905407581877394397528364143953044245913903178813004188791887114553148267469987055587931040240388884083850687341625071657274185134952084963670955542450439483948045979156228282483787934152720362263369561805556371076814888893619275742659935823559431530887933052767558747512365065843969475604297192002319868024351719937868100361102312568364256079597410574153628297180046497748573718378639037039015397374911654685499716453941611216417610717145401765190565052520662277883129045719693205990241375395983861982603205495839501675552509644137118222561496014003023035407899209698677507867200038074267970530307167932296015648622808518403352350170608589512912223246117830253163628943946073652771336511631646446199099021224922412315168992767855863736315526002503488487813233001910189399616702731416999626511945742636761965002434737172729028462209798394871065982270009954918877696188505432653211802219444282228425152556141187434018041946141394514712872527592391255964437356833972896331267678234910356332961294719101515714311579549093390326141191865475237624721531102079369115848742205822747343201735585077122437969857965491580627950274097716886114807616315161855306856692457171769220443668433127398933794111629722451699985468562215702417594711769952916550211685500108985761934639455908826270775311465775223884634351937653973498480245497607602440308084489010683878697261237097835782451668011714859836794055290461982621656691720274262854823933960018254599409254308169691032978411234022885600190549342750223185294712829609693976813734197704278121300147328677605719405969979275512461718434956985641712872481183465420642318714551824152867630567513116267717735061751124546338799426529127010578995671805721436557918350691777930704075732904397494995822410623810514917650238504182730096620171750940590805408957283755406355152219965820757351315707592361539863945921115586400098809755261053838256899272158478504174606516151133788336097601211484870055601658124924706825684427204547289630942030665044529864622359422600855499158914995360649842803457949275700949795945060237877501947062463239495495782308228306684081880252107663907423097372091628533717680621644693543231791785530583317142084798863034084657264269395570026857605753934788858709460058272323051910811751423491268733658596079989173292891589600181509181633740080603547520005151175102901229924870961545928026206076169827218102916731554892942374085196743307916607849905578210193571366243599088361385980851615641747694605478554008195353067080308969763045294686823321053287823743894411568517627171163630940147990964945635459295013073900362682100732637008235615069126964318335171625439030469898931426154426359511363466057378654951244574752621678954703628904830484996804037722513431937373441236618586944588064018584073147633792940386340435919419872355263015654608051868676068043160845128459160424413269879125385602991599672787661951950531764883134693257366894644382558139108486209663742674579831301222343872583124422033094571457541470479293875858238997738515213523723895596643122356432626286011474890868171592810668727084008203377186921535235269263472268090825989889840026208152178282611229313118208660070996860365409818326807558247767069504109975861436243552161945353029200254667367996485043373133495208210751199258926638995647569858707901856123791578864374469037871509500112550210038845311923652965599461900474846620642347942329670060529003709175578188708193522146871427235277632559898086948721113845980014123842163827824412736542446748833381679716201128861914154019367129094789902646664431560983729615019686242282506723061667209435465714251493086424887785986827595887490650772602509518295367651811823686169447243607837642947624692263194989219646440683169287661615060508138463194151162025779078630718012311594586038965625265542233462344545073947886902681594975131168851436945210216883190446168629763325229863851818850049286935727647668238555646365544964006317648285575785866610228551564859908820958689444362546986795238226861159699100563660829267915337538160661122478695313261585318717638859893779291889029987938798100036973078489592706254104848593158543233956831042390299070263443797875691855434089764407601308444819786265079476440830134942435834281885915259293471436317533749589701072873501270788980481635045676667693207553051840432446100740321676471836083708475065126930707660849825299000317850305853682139512735038638246056425103377755809864643398017186208142663074172592226000511091342681074670129014301654101064933212283790827515001003530015654597508323772965439697382047741626571065740821649960626227496187953347907065988974871779564334064841745645747906925170149499810095353413548908754836327579522407206986291024671703579251441766703886609906985726260581240825336225218992000418975745765315123000064445715931701771688635483333051921582055946117357716321132233931965320386199005116178171334001070576652689919708169202219464704323795356411866063920558609034457064151797782145054722278852987210197858846070047420028468873795844228949974333656271877991721137916164492541329715652879529532639759538535920950138633380507561369530899547584883024261962758985941513780515805025767540401785795852448831172105089277089227273431973823884687307168230248788688585510108073522781405371406520758107270848167263977098731455162646911423286103036932984330300323676162714264067587806731883971515002798163374779078775038307986759404591073921034587404219617034925808189907205961291586420202885734009114955238865107911371495334639763988183948804530075074740372280936820535430494951948332833470075161979008687285439962981575605891637624723069162871111137676086480323752459664930411753946136464337804671165055504670671836221285795048067165630427626711429999113487698447050370637900181096888629721757951732433802780617470496302042492916619171886243355599282093243919445711886321556320161654247055375938696624656334121541014032286990930159132885808831241242882876373872742838038590710292748633351503090445328052597795658920554562434297982794134891756382400771612173324736428540160610044337641457220785921715591401037832020132133833096380778904095723810558829392796374381660686835195059277019515361601722158904287856784820682919441698718192862730827044416303962547130532843883379133747687358261221162583602728961624559041896770247453827583966522993712351630489833012421417455788591594256059792427721819908556279848605617453684478923796907975594555154646853163024462325674034895845462256744858202042457391994253094264224504202689038150152683602412559807597523648162809304891274615119623154611400822056396780658535407668688227542650381225999162076017089556747446524234452017661650325945665912966786324621379919222961458671422482492880647680321086477994100410060033906792752373625460277429600734788038356687522003482457694908456862696057715701919174892260635208129738797443835483286136939562450392976805783223402171676555917766840375723484409461762931288492689936871389838822271060279037990019045583360079739277410926655739233147025909233890654388422351324115388018559234956139930223919645050450369352927011566305153351918641864823442499919272027295345959906304872360804159576002966812111683172366038110542803591445720248256456105714055462420821343520948108417158289572445072063546816002305120140848054358742526171017681853883557558717415424775449772221419261315525269109175563331932322243218525422182729149159810583689702503522813002141192486014248068079753699647771939490680468355280834732761030604940973309169031678309793463661183278453186871646268073883365670456601042376850580139507443647963922284112697945134773004924987864965636794909929132712528977651918175427962806084932375520815361113240339713165504391887960198382138585000773242461778849187581459642642337889793330819488160040113126525635693244659398400636890315254722923991414474377069633893576192603918924793631780083102611419548543605157787160049557886565797066588551042882466363057207778902266777042512681571979533225107638903681976284402861025880539233932947467202408854127649238644760216116262082421299166036229918492378223630098347811952291382184732634228575912097980547828525059183798336801787411242644746002256241498069140074097972102327853957561512834580616541111792671042799057939449713494632895045651286884784187175802050458328387485313736911351025506201027753458094391050010218339732456504728894768792989259450198750767122363791875864720121496606115128048709648863056228440839369443872169212084920085155838125107074195518720809374694245973117281172105192890389637039423577686212766821093182763664984042124938144097959863114225436483965499983479084307021764385554351257436828228153032222380834767951113557014806318200453220723794891863572149106242526993994671015366846234105153338142684770627585203524099207972086991453730109551641503317628200196916411546026820723669255275141842996992053985343307306805737238050416719722112737405078927266340638850686734458560773266648384578027718911475801323105519878413365218519071460681389868867103147598264611293795439526672867275994833590259744587868768496462683484434414135917714587766088077845357183932937193739323640835633757668846821111799350554102085561884901020160050563954168745108220603555410817666460524124966224422804545243216032036019464135609792001959024049792923673298924553990101980112140290868699920575891777188074146122205024728585715367530747814389730571787268366360157613610077228631963885264623512553807731945956356796538236249992655180433079635962110674552852142902629498265675533527310046878865731047246649332656792733134512295505918623293739332608607745135077530901574443829487339779605322849358301361837958626480321297368474817516476913662110360369509106666505171711508278200932788358722598394046306837631811808904423626219988123682680785795262197216687201745517472627818032683058548803970977047934831035439855907843552776676033139884605271503138856332467688927104595851932895139167823857735772658100479825639355193520055204080028705967824973937478860528356493591497838037796496000521244583477900175604246586665199807702883943851638095504304921960324436090340085174660429627430976838715194598264473594023424821104475729111777958773134155360952759570898612586771456252399450075938020609355024892008476733229308574222255020645569023912654366357852427242905605320575403082101451238209021746697579765347517250146583747884808053773515042222404295760361375432486199655891939220504699982106293160967565179075132296077785755331026585842576086686764535520927748275567545177169950878941180593630524994496701237598006553499873966639539441701705969810151271933311840767923271853953980976404852784674387231643291002906549530861283330266400758012961849920702200255597215695758837616878436434679275586357397225356488413306011928957464280935785808113233143311528748217976603971257952890036407198923328131611640416937736628013259738222237426818917648959642270338039059295964969648213311447316676504197678110849096646942571706945700787126401448652242846948897617256746535220506162107300101926248314682120355169950152200731638400413203033324231216708268546893175843663043078435078592810447849266395265239871864417338008568169232134742975458326940216125333283790096064862778549412667951367404587741694559614076265662502990069226726787603658713793279604184883939339346926354341548095183623323317522937035210291464133127520371171667548720634738923293785107290295144629274154676194794274716691603049782928896147458702649979707920638724082502300642554499590401197410853516784440901880646293748354439614400353523310304041178457228902958180581032123743825898702747370401068377771592512645357065083009214792583498924751274536220061058545759973693135297078143742841340551954446721489415057452839171603715453082525558343202512542416624457524562964457910769717152147095185055003550543906316882581057850746356562047914667680556984384552027709969719889807233714869563567031776877637897432734928293439051455670607446079704769316462781214171381827437856146219708808702106421105737785147135883737738824076528045191427137488110559744718310093937519765980210024101251123081368260338474491087716132285766026393884928495989823656572720426357202637482564949491262914191713064628059566982549360326132019252804346170439028926027993140436137026582012131285148815857311178210413103357288871817295262711200081475064026830464189887697478791731737038139991888242416994212152776045185956711909418073734793310997092831554681656395271010461137625406644958618385463898220899677832955011143149959368039822230371363295742321735744647342109741491743641994731958840052638726959231836423254918455955045343778467094704509594201202114220864191279049359945213739248711074323149511380429379365543637217263481907571135312709307952729522112479531498969908089466574769556512436056114200866399056099000380302506124236077503293413472890501316772809713162683495963409292243031195084878867103533520023712730202916592975252657039210421496349523857085605723434621576956985134068304548331545907536471146996824209102321431171769227738534770417794076441001301048596092707211320523185382227444870243327103987811479127546080836115687792151311310450083663631007517511025900280864277150209627136623974010752884454683316182115027892643072976355761055112462033248005310599511150543148482955343295983057427245173788652719300073232173623758732731489091094553740270481185557199051683938745352067970859211896407854895041094056996598871598863362077955045219321563361246853031747054439402941829263552401554523160986825531389701880153970459625016917966481250155593231148267300563383579726032860177847414960045697257834956205873287301245145557634523029864814954410090788352980120701265410952518460666201767420452573679946907719084537874820608029048251670176619820730618331239219353569004070521549893903446593880904750772416954365185807506649045944318886297872357160302248135220460109063521450828063974927551284769435499620339916448879197437902095718886320024750207910237907307296374632633667459427556378453569136734552401489712590948036856628232100500394007310663207525728314711519263328928520696723934717509829526021254947643301953574383509258283111339115390633766173730772363027988986998579945016592376906754883798892940060516282614004815046948281403308391643424865093963545890913280595111633455036563482451915058317949808318272813479505077271733594966337188214919283787116463903566925779942457394355473044935559396848032790208614196815082606481092468854338332986639074547805263629161562798803187828270745163032786390756653362197506322424864576945975359667320060389826293000076125149479800895671245256955982758548576901246368659494224227727177151849641751071598416357207241224371968067203927064789427894217128426413342711831847944133460647243141150155098551171241466824331235206284065722692606904747919644729752832274956981963277872816259540120205380732958250049744593080978240952991296542331849879880077168163198608651208831586725650659441406184468374963189291374599342160348482288315828973094216147368925585169927155311558888760072170341024458744020844342827300467309795555666811501300338889583802314643138290026007632285034758307808788951803139810207627889851743534782251208467594974300244378958428956807526632036276962994601808349419949127065591308400058626563996391104068510412820071532462564263714563557576945284927112635577196325065896545536482125459263355257292595281499341587877651569223119151023373440716991656476398200089698462984399775938539811213321810328198969945792617649358297483733877523528594640351382382306269453634581003193672502069828073843334117528315731434263989641634712705303477569915580031181591809113788026883854757697292339888286032302997704306662886955301210272705763395989768941024996847949816842011992561348075644040655946238370872368881254894914879487348086141681055211400184551700844448429484755073273664282722206336582401745498808291301883914015680905000084954657373000327477972099175074617859515799532022372852359204007425152256386166756203188398117618611960221628474319079702503674592828046781785366473935600354038278281845766947823374571138221219326167295010427069409520265028052289859093500239449087456262053452217311940957783019536051850385496140621825306182036518273370621119893902448897538635818099449181578487833652886543654224830202789241704968965110417275947501781226785814391748649424357300909171264877160595920974458114629554223100220085120522589764778114827039426776664278274625939511743807198618722265586504030028469146927864680031836034638172640570270742262034297187555809938687124046562233389146465830554301315509528510972630050805188265272685335372937338569182693717167730316118647494810424215127915910146065697953331337740959367493264414637024275245393350301309928336485407069840343991212452492755802997988240920664464042585966200888741916498773027540372920421581093781471313622628866669454742124495528490914921933719362340294337125575569988652966236450353519202677763794248208286056893623152152317885014521313214914698685483594470686585010981314205892676416115162109405356780736810089734245872932705210853572676380564228840929665884477795279546710735193295474713015079220840328232204428944678218396547110902117340725139724757357008555312743219996751259582568063235880883884366203262266191414934740436498000247398332092411838667429609269460701418388178110714282439657796388439864782313715424989472583041145149526872423618996763058816820846327437441210390552765218710735564525713360114558045585684558650432859917676519619327114349866540777451450047307271171479571222757201812886446440777517460328242317338533765298981044232240467724632047951798097157602580088576897513405948054826877288477629384645496040270370508539419092769937066804551719416040376351180185513657545109524703460226002074174282384948178225490636599208474903758320574467795910675566064077500934712981700581876940802799269046059498721176341519148822518670439557310017937100046657292180372848797971569227888839704198254565706428908985827958625659901375968750078569853420944399597152366767355991155709006141301885395600693305082611578831597901882912877765396964067539208084858229047556190518637549059417647208090848523929966365377746870985680142361370763704674236180292186795924769777652926292904179839275053432943384476533398501228283627985150263745427966717714841975733906572871543054321575235449320534653754238204844850884634590853386677292538520444984413136863751894117684862613603681937363513393254080685226921474307329134467625293226408453308449386471515618139413634350364817794755097633925598827869036963238633034257944529229237752032874489020040532668139354752855017464531717214599508145561364692526650227115337381817597855795041988075485811336289154900903908060775415757361373755988018757307536248737001291223826113438103923437231353689889153374949378632498494176428141704528408296939917243232867725641504837657731144933521553852300178110827616363037090205259503779092534110470570046565251977925679331410886632640592623178893126031528575871642421190333798725775874290129037593626972723431489357257241883794186276864566775868692027601439805016387143520477673880900578928363381779738845734410014996643323582225792535171105948560789182401521998285226946509587631492471279520164467647402704689545435103069826179991402234072854891546806842095743207506621154487626644675798636443880232586360886918759442271521429650664161384963815027972173071265920578266002784718140034209265693070309044570245964675764901852781393148131509203641049845969060225314474822945707025270436304061114455142227669366501254252372074394018277525089414329152151705997454593125946821214351062276330331850433948895127672063729151249368193570319104693572905276288768782500485054800597323075326522779255241991315961791152206941968547918734156699781096702562993993208164507174173490564339865219986639055709352119852439067986150214486239284387398201876022854712303949459661572587509650320071247665759381372124801134153550616754720369579105597461067112541711745369543014719141993731972279716902116135726252431164722893666441426212438549813623694963571282116036854416071082317751078012983042538141908922492085953646108213956481132053160737077720760559934981503424064077512331512158999246297497845474385785595227089267102479199199645043040166005621762962340149282181611520504643814051201017632797902693271222701259270816304579408695938850308858577776769880577120277461858372818585997017721116037109827393241471979376638648431600084157927253061164085015150016520300200142743376390418788622635274702258984849469077694747613276391052599405660382382371636943555470658174827307182474182726362724046239944028444473642458644475104690299765267497344356985708539057819159958599609675061283091019474886565075126139713632927641583491304208300950851100414074557443784927898576072610576974181963369679075518838322017344376439805368296268732851893953081597213840998753657746635493253113936255978954300091191426740753859254969015797341918371040169991790094567835962857322447147907320456964719786315490862841233325174812784828809848761022100974278347516462790553938519668895696510876062872957459088920170238672074010602453894151954739328142466223126892362650272056402643021776903189555520611271146314671703891577339006545286923272080811157875737499103532444669361653517522124688660805939738054689486755602588706871030811898922024217495293458219535300991561355360731590956734699069924874268001953821752462105349862701061321590757260240804300827868356293198384271052198354727511764233027995892687273053118355805687527612409197424447633568095687484441045467028352365141527656270080436309747745376780982087349803849825992488106702977549495352282995165465598506874283176285208571961393797828505779014996232139220462341524168238038894466242673730018965433764765036341251828509512088864856294714398779566559280749164896256218592671541469217676839605450082164216260561064231444357982306919657804705747148460072968182372287977560496089158178686729363237902415792047283646970210313975180097841598550007055364938753212574961674875872583259925957615074339186228437988301346044540880817809685491194541193470268965059919860410997653211196581062966550051161836517062029288087760914984616731644268641970892306484630567545738872024760165257760852937721093358445387107402729259191524626762353817978693064215340131633701135735635111098141821129662210736726269615672674830775248874448416766573702400485083937025583859101226694835806839154547916601645691486305239359779324467255886717416048550387114903176075537321944728305822191558078807524536969327446017473605242058646968697577061218677619720587491045165142715495423853920232526975123495465463090613294600566507283098728033873735155375223563183570253700649409263808031737463485403611466000484687624231089472379165007451797052486284672766337551730368736838564403704980661790920083171078821049818331552614850537354075035108223939247445630109692042278844737169688950911185736926890336659718522537770329622016708106551812675800940852515068477579219138932138092869611953122090503801810765874883683178827814252786261879667606821977039093260067296151275571252786437069898354444096139173790354548518040397333137480523587910955583040481534804539187854038243236907304310274062641777762657301034703384021129669084818046162496487394734584412155302581522214994582224994194195472564103175021144228086523028022134240931939327276781959906081125986239673394589896190716797777802595116314775762640285882625148158216439944135061960811758904619511585390826133549603880323713522245169681180597512189590028591797390866524495280407827130270045377437267855532504850397463757394646098408565893018482234161498658315034660821862236058019481145549035154742662660612950268784097547798140726823956931472487609828034508118938340409615343148630112486764653154787584549465222275318773560890835043837081120882441759938586466309397048117253004020305813409044745051156377054103501416686191248525269493348297851018111472329874045396127540222219095844050872306623268888497042234567000119497518597964940991489713853622794588740760990432854228127730581830402494510870633698694686740089481097539710090849476830410711529550638887652490545659994260773886347394552511448972036104793757254472396602354774812749416069835101314764023641949146105980556375704465155667123652568282701574452847602207817539723371640969862649205576687615644577446446649254773467297255570538828590789231759706768639824966294555601938731527103627201242931201764252246448031819544683337639946131383614457041608883422253715587835807016115602717754142472333152781356694009898004445823899842006407489589238923892752289147329455312404247755208380523795101239384358587754549990012720682866599985790984293038460073296238426290797218233372747669464015269204881430422739438838386988072365034008809524512726001361525704157749789546427459286696216415427519072078965765676204708762910259298887712834058061317182068879509627355230802280366588530930270461940061446449186278566424494208162102038327611169622442138639731157130118991853169915158165025834281284874149275360507355014927516496556894986881445782807241540090116176936589862811374592790322578489093397688160867085700299534572157942098099722053214575142715411220939886987456280116533207925455196985191038428157268351201092367995242906867995456830838859301366721852113536417244228370492060364815444971779988618739061970126506684370640425124459951909006226082179845415139874086156189246593084402747014710167254716016686017397691997662011119989301553540628177813282386798739883185480936514175269040502739923269532293931036045698425205947108776022321016774679279356253076833772206929809952133275493410764068293696256538097982992215020076190656713323330719175311095376967431445827047452191856565617305618532166042594645538561688375993453276738278878122231537281113417355451707355320827604407745254423078545374811259665463557459604327036854215738696224447960925936750083098914000685383635881778748642710688257878740799283418251977140842230489497915517987678274684754084928993864763498391753924459329312913808073876500505220066666272734384454049896801183432553499976250119217678755809806723324167826178257089116301798088195583791075401180509621601093080422570180549297646784115387691430708824753121723137940372365928771043455446962665999926233933298641137100126804081160276969402287136507298106445252016551733860468650406212924578927147227426763861426823676408516411947662651437101393855680642700778296596804860775179492212156291738671635464988985383575153249743158354139913221365051551384109030902755433236441202253007704282111471419181475709618331378229434207254341031555828186693283866836607269163836967793201021420290468133704915343805924654711497083540122724100650394974216418866922744736899506252894502777189894691329634675858792642352116335464746864260548561315778403611431490269544275056480384788879432956556048443391840602027045146827824231514065070221048519592072312004933717673835237093088565264344841946773453824132968854306302477825543502819595717543326873583172827933774101026347172525800055108998087920427447783853642749720654309224796057214003306615979398156970613660983964055202876699917225472402063960609642994542705915460007353673154988077390830015813351603573011111410928015412280666670587855509270333850098311567628516164924255092928303908770988934946072349028658560205422067037156804635003826052763710823986597931848309367641656360790706605233434111377931216120205880951461437739476835388395047212945283498654808648378850194676769456232670199871331845545348373608451276718005678754235887195105895652797804537834484650468146951677538136951845103083239037496571621433079638601544816144955239351112121894430238269540578601164673736647956520658725081592753057131343835699200489996180432549502052195550206179277993056424583665872167535192817503344992391833256236162650208149035578612440518344040381599135827173843373404529744999640599186566641535612424308001626179337509214296580882832219570578431716979462845513309683824600036989961805929879506603760712432725597536508820386360958809040038001760475078669744332587723215438325998399864395011449541507700972822653695839438085091284110416290966370127424988176163441016674234005068361676482327103889422394820253086967222925243407506026512988576358781375008510056886874328274718732324289847733542581504162589550238544890684967676489282970728115843511676077617260489135585109814789508429849836055936593710532020599790443697353401662876453206371886938218978015732190762998103612568387648387269853601294481607317618658066805968373389411982650087326242669600240908832076226117839991574402105842789845063036014199339283624554027683509989720421859620902016210156519223584211948820209123783927557185605541656205455347196978661235058348962821286082084034973119988107725904545863376610850509582385030751284259642859749471596754259240349558609796434019664667217572372370707851846466383706717029954169832988691247281876802738125496293898760722340846570950989432016548760479339467946851343732630392230933179068730316994180074048000687251365978579585994780199496523427286889887178135161715505778391587138640405789565918232137081400587138088365230471671271822006018608811257260339862403542067521276908921081552260329300444101890637236591957119530302882485868478256488300525181260810354213518122471584004627510592444870583709540835318975215236103420408450764137674234730058822034323160474633043506281423210829487240902594764411891032233740497947408578277622048261821951428217981124372676625846895195106998673740227323002602615059706421527460232699949700615823592828222978328684019972903653781681600288411730673324496628384032435365041397536205509105219749095799860595726941384024267555967486377429308583140664803184453153290815321549434582880442937355680052766701800094788733588609136494945838526892791365594342881741864555941029617929958126080970645474650902342618403450108124033539000610734694120978386716277216137083614515110500772011704214057510295511491370255453350206814116524476917845869435403411879135071947286833389662476101183017004972618956118398981605390920089117277245282732995868083801073781314001876067250126926454645097673374700236767820135235673242624788804823436290099963301097657305710745086213218779682807434398964835524271448757305830321802494521092319912041786298321106456189823450495054397161803039568512653801492251694878479554724186382786275823278212993978207428675547109249821824468614795808140835500466875596261579061717590219271869723784547241129855757317937479535182955842991336928140588480421571538074685311302335494627214184400563239744587537727518071466016570650353750000780005476100367863699111323985862132218224624643435010363223985967017289928425234113154343262930390735953429144139338742821872148418613127907162685826684720595466403565113327927292836704215333378156489787872434723165771081189058811592205341344776752129774635506551109801811454708921701244106349239492424226738349439407865465836386859700260199154168385586155789670127220023220031686195419702892475742166676680152480824022111156190982909528829342278406490395339672008649956965447075211846134340977857777364263165869169876274954188683133247514531590023354409517149140813592731911461920067757921585633107612547070933961164415088007272939456368492532718589155168814720960114154056640038921028118648545950411900558007928394716199676003018770007299166134878103899189799277933082603333383340579193386012599266354350647100912606346252385743463526847492979065780017287665968256219468541077987421844550471048251138993654279944593202443898985134425672669327861329504851702042670416810423988787766282835019312545495101087037669638120603127617996218893187778305204501948120474270520457321254873390393028668085392898551453951830701677372533915679276903907336248590343351476117870517797664710107502450768161655725395482009480911058631732989175311841603640219503463573219594755860083208292675123788495516672506492207206097412031293135743537452185545498302580415651798622780164689374817239713381123695363735811057393910536917973929343197751880325243525860808275537409997210154008004697992794342234544768970758031314906549976457271996996280332692090891558381760321398926448802376910082742090668080043739925045412236849719409774670467316737887852049416564473707132543728313954096231813376473848894121827756876058275472115348406411192866091980614228229552490758852587114072134140163523811998912747789131397574682809342472823110218984300702443999642906444508447880276686539463578359786330143574307385522480118057855163003059480351702305291761937668044897455190062298141740225468793859809142285837449414294668405678447862996873037366863397510139100798455883197189398404205851783126255609907516425666609144857660683679374480652972403709933396292834348332661041368713447259629441715366168325692987460751934900436754871245012517388228959426432206171837705951665664903889623415903428365924676238921543162109473965009869257089507504114157819718945799485168292399767685260590940847692555560320947301798892618229473834688688478774214747821124629005048761624209757229517860733959886964186053995691274261105379964864827288214729865447937270511431036415399504302492489038987190473804812173705725663713465147154131222056319569952971074484542325785409319607037480624328873057403741431323821583556267142756875575513618201917633010862837972585511567417230504719060873616277083262964429580482797563630823764361615455540616980045819644670667810243347845988069248477274895298262045169437003711201912953531129197138017595577974532179706899810786979967116140647258355731385280378144794618645821634745203985589751231713640797468385145592041450052177212291446699278647652010036539788997094195677954229000414384548714348852855651763080299251676444247682186490621512191723425686851600605859780896623668832012839653122703074654818211999482253881430040168114450362116720244462048282967776160165637897576349795548725510809105781339420347277448474876989841921828085630416492602991762303626322504418296296521543856287607037421868140047386309450159109132542103032561351107575582873478656260809325645074346337233422408558581633853715306945878269202052395067272475369001398011496431659458297164868632204841795219642449832794880631346462010891393287053134556150378876921145927268505146771355995890632238650764778282690168036013061708569828863363533982166411661335548040370382100344583808150558303401797120822493909503856609585571395374634762832404217519342656686392559177433783255482070386105633012623762876981734728224250946153189070215082050421810397748940765721499083247852854595100246795973930841106272522541569649389236827358143460772759803346264312598278889441818491738026870449603886707186477083156478758911780354308201318656582034354073422928347455769651498683915039761412613360789480997559164824906255168553679482474050984649608568188917203699873757964398001165295270277237226019357555720232631014768692847626362851893048492690926409854724936481814128316893832831257956621359883554452066740895840923148625755911051962200050308020425737002899660124136355648802803399956946560958857632199260300046853975598028765558317107063997506660476148677763563226116127152242671096736184025291082552446153885776660277960808983028370687781398492381254517178987577906769165132460310875518147960012167620168554361388753511114464644596594898628685003842938167759796191272999045913439604283622782145743849108066267372039815968331145831327755737193964762139470369487134483796533672088650760949443106748938628101668608093548762040629531426836790162232434421625009619198865282501847807500930929896168789351440485278448521019497293149122933664283836109583591179266973210503286586371961913064985733208661524319891775175613307253369060628944014036246735791686124190767973072153896099260914778003921829096605678051574245394812705158278656086176628088767548528264353457929751091037432431480490509972013400938712099679922667327456972199757397498352955663444532434557032626027829313689388962967691490051117916415739641516223459624143879984997239721062591045242665562829601459679012861764153524786433047855814962571113956032515036318374506194258790732974799065403378129323435496477095994159702169181036814733833330641513877132215173398409381746568333237521245212042635149480179573706485748255881296241114146469266177478173860156155696776808063542808133926222268057358604395739162738771435084847701866265316974888647386824309419601892875891202138727709615384880950656532073442058984978568214481099344327143794129234072975479326476182962040361443641127465240436917542835856614059594332610091323144864164204976494795520171710865170698122416084821707217101649482479807749180166663180760457163952518386095827183272086570529825589266492312740506731234877203497799829560941063603051658168190384801114703042390182045758372731652085922539947510938900121122194266654459086779269137115495078966657667654609628827777519957055450729792366620852350781689434003204754374040076217990918813510949939669431342798599215806292704213826756214353405924672023502064258541096859551282959888016794748534882762322608988214260279669494883399735380911531026157275260615166467574723112673113045630210164427562827821914879246698975320978326529216825843304790854783365426975843307795571952000101207872401988134949844384367638270411742100369511690111801683269994661201008605320941579019288976139784035165111599346420444148276820545506341848306161979946027048964895243897025843417177319031533093214798054202089619512507592936490162781474077322477257322019135045680559997856927754305465787984285946840858678413411453824124072065675598264826257619030338341742518485385403847037100690876508085350864021762101015672829143567367711035116439783634404283023478073545669143817704745089458721178783915416653092472697951952686392823300371685067876207877548178391081973218290478799329139607887417683308186531819994065979267822132271345963247140952946307619739674998463493636097580672536615518078598145349535821601480260233176252015063663993913514287751153532124112251505706572311520853765028432210158406189825700470439171864907241208917145612024917300437993499942065866379857873460604806192281194643315629256867108796971234962364061937388112180207379159818010975908011327225784300250111378803495792043918992883005162429217600337641079337196813319206758299182607848524757117752420168349348194140053916463935218273710489150036580479259761583436513553494384319150921462930819950183591670942530265403298032496761584396347114353247143703922148617843828261138668855215984613445058033026369143941743559917537871666881400452968934351987652723008458465501565659895211301104852881693941568670635178319221855955305000298648325444774777199550165082658896713964088988056795806691606580609404851392801022276976156138260831907603324548465286614649429483966773300807073200675104262514142962447145368750970687850660059394026518778610327654702806325729906196897591887386672305110123794932925976495748262551959273944717640092556185211857724430888945893130457097527258670714556514236034181989031519545721886211491710345305965784508261868074364977358317577008647587996432274454895007809667119616215136769508530892336123866628348110293980460743553427272442810490328075676700337727112094912843448745081356882215603305043883517541081483037534434208412208168360581326234576775427931619860454305044485105558004116794337671320558147058727208825360473106496793184796373527884478852058731828660065633493256023590888983537772507970200505414402105594610720764924409136337227897399466397512341178836631250900614162322765702854104850679744981271814676430841410300237525653730495276727548454599978716332533105061902402151814681001465126285103975983941288236986211318315247764967957774419133239479855287165302319986980239839847319817881713331034433989083795800005131965345233833901090970444714347942650262857403151815203546507282311838519865802936213522437975431938019834329143125027577667543168698886028656770135003725896964458686834176473878390665444218192358577310787002319174454287141600302682837240494643603478769035733261881143101081321885527985897303450534403303722769151404531823618783217199889890550829089662419765855980578341428737306480985290782145941126494992196511361256777307699460580206407239180866900201756956417595527211359337589791160475982315587253564456825714374658566889820373705497045290715846973763555870609280120176978053293579678380795022792200105201676898873254108389319250907174288810810708623207551018480041769696826290392399839381162366384787130819320185559267865898070985022953739494217542469625354704395473241339247648521037611777311231385001618713047106477839324875850063619911967787753268071392468984403882659360510854652369222619272403499121038316226297241144083556868049980746048371359252075390170144693739164092864863919053757393294556536775435632948953085479197356181168943469443443643030871444254910609829482881581159563562993377947392209785110406721664480320531067091303759488434578734398473707653747404793080903438244339705830532695856299847938304808177975089019323978819644747281348548648563997367907690393025212859195095945330313797518529818662620117612609532139263391827182563275830591189372106915776438388722784228529009122612514080523150812027262477370667161537297962365171711830918171522805265375933737558128234864296932266784713386959887691580950811504993633735690590084289200705482525461768954164710778011758607143286624044830552364259377579855244869608072673059076502488514081476189179998962929079540606916509862750703309100886611993183653478110689500553232123231040994315669757128432110589272907562665298306834612688174350276344573487313081278785396682594804502445089945385062622281565720665625908071060090719474158064342896173131515706055811399896076568427723954812062465492792246644108673930170526784065224750410536043235086881525438218840578152295198789560649956069827453289227327038537584520927092429466734689593377789658067695128590449057399130794876253979899894685344867084276328476440980465348855120943606428893738371053515595879507510368199958600924794052205154880777749983061313790264128273715757106128173624978364745020722775619521267432735816854961196988825831126166950522240218811466930625749538470869958657459988789278684738719864383790480463746222816126871276345113094783166175997075950853325746028493740010436450345565804494429503453183381290785088833385837869771084982066510206279570766983344517793452718037691141020755747743154293290326295321149788262035159874125464228843952777954992895647543471058985851590055084900569690369399463805412744078272079588120610950182666750528291004286440115969091560260245872117456045510940768469797368274814597904045521904841801154566347833534380881534140372398178819077576306472338368480766171878875254440731865830501186475632030171398339007898754244110262777492594557872631516087487025048062038162606284156754299711008457236079436838831775697116071774760197736299860847092256124190334430386806075160778365027891666283609317675969553014936812797935466652393898654922082126132776378982029467995816243987059362391705117507050493924429371228752072100479003695203530541747026881003131427531174456246407354520013033515441611612845306363822062031827141203471057333057060956104199977441294378972333619529368071162946497417467460616194428419577150642124491154067073122138420641412696715456643891594717779694935195834684336783221413037431073429174373437635441590737738077683355454522041607558324500141271289974101494705488647243415899129609228298624074551605891496310210005958713471920979723983683128011017526431868611183517017358675406492657915137405821629724201883751029772027692280780173235365852486610373552463605197417587182349087381977451996041351604688086082725590610482822257576746358191662903439070547597034809044004304333317413461423454127456779872589232409091510873059202427900149673701513477215142571480238781897278909931923211885180400304976289387311988687633977056903190741451762975055829507905515712897726034354672225187519472277750347806298881580276408830585887321140899356256544526325626293042854399332825503295028936990777054902947079622008390293221444112657382089568543447852253558437312693375479376599430699100569908215603145081988649438948867959773652023776380526949555871454270658517474445964682352694105685193373700491448623760659795743742949313762849542374769629842362040406990322328625482822335420165228291288443421575127060202153831784521856484115066939436436446339032946286921500120033173722315945993702440466546440107095463778627366769045642599775860341423376275925853631264370897307579552699685031320690918306791326542030640031482455986239265759757317759128625308946541251662284071633701497902673843253016190101372978864695403425694557263052203876294232648064996238163085500312651680544788556819973108967957554426839220485130919026882403377120177863986046398002560372060692953460153673513009351664904759969041534844228406494643578396273959796970119995996897055007139802671431539123914611613581834068087605346672553050422397928096566221091111847789650335190031281930814047064787403671555521140340703039890722323391594235126529717112144915912874696964544557092280434733841013858874280507251493201836765498654426190687675030397956939024213437475259202844493707032198240950852874392941278159586475430366953365464650438122955385696018708146303600068102231935356775884221706627177875228953937497394498460688195899260579042663242818188329768257087830890164354054641753677975214014916981613499304491042042741729907318379698513124559586063991996596689961080050494007296397098959517574634950113152395405436384247715767305796899780935112310127000606831560134705616884208186210590658438546853522653099408095506864518196431045500569852864036972272644964072209107280506565175900536331942571882619016852091109444623049387276226013009665098018150216116189314991755448664845101939640892424535185862966853588072370252086290396375135442408416767961062540774535439718720220389829258815048817462632144019324591263846776453878214900321873605288401615814676934097243424966959679745512952152475413003838241759677554225154868903498467584610663159419881211797133452509275307014085614263503015271473708797902296635683001787990288084193893922491884489117670080380387588878016977011134533491153480210658508757002551736325688200975955274871225357182551697875315095569086898546483794843035187061492313573402963136527912761526230610431409239565352297493261018023574144940020107575292488958929324580351889348336232266211070472227951789643113533222151331112813026996570565423666607124273606758337678351910125109944370304629076346614964495599673032125852284006812886320601384391535239320911579060473413936297323492759180894233656526093948313364810290643586311830825965878597847150234490787476787995667424852051040103999757103940220630691734742020896991756005288898736759396629367401720982195418337128233932862477317196438625665314551269922236776677708198643496799841526045194640459016395789604927913929104349027568381726840470522981408906713149152625044175452710112357868012989368284933913963833660781422917945543449168097066491318845378120257962155232128839888294830960254154515830155645623132845031741857697997991078955656799608252916553758612233838070069219579639419837426117676769100507357501471041273917783596347944115924160740964918923864162314431509843379999957412386084556879065017966046590401190093106491459764550874416917093615978054671746589930170413753904682544419849306977396303361433004032263704413884245648531960009102403591486043419567188919858561565546577508901443177712861645686219001284594607421607429571045831400462012463901102101932368874623187463906390518460908247466122225868317169890636064025404893508750600193538323584777977777184156692711224004455167705419310730388369438797889046242175900466660910401636227006450671672563298135619169577585613333903982775996522509904038709327898622159549437997063064807096494177080058122705593309162118440046358937856324358641910615400682047879016214044578771739810295260717300099121797113754243334882266618671805934535003597940626101694558948798528738239461925927383005865786236901271929638265926393781959687776344919278138391527346851031712835011677541289696340176336880334761324250065479448355160024231256646080107867025860376099390800451756260090655554130984042735743005006687743313528206170729903389370532225467004205889640465239361428307918540416966678324070955958770942320094156109555343344349138543884086108248624289859619741256571704240067876712368593537227109156704060621943472602040994139547201317552449158345944274919192913502355834404187206974345886053833701858976572062254668638991474061713844091114054244489241812528058737844437599033702714432320785204641931475594758314291941697190629769790449882130801925875904858757010280498900927646674318174193127387987919086670564601741410451836547363921120183127264213529907507531674186041139085079174044172658009288966400350856182993724721368434131495692957040198130016060875412795746641903179733259392402107416767024235351742211828571516183297681422260730902963694871330880778555666323972833422527065650730725189030903950229751455450814134444281654143644104921750622706436286101757171120483665814970582463578007550456264537446280525932841567885798506901058045279756262857220830478354366813133031723323813526470752577952330152891663952865431899957317457801678267281460222640381899566937994842421098248974200882331114001341044095160930831309054655031595551547397748022146240676110527161375799862835439696657835524567007936049751876795850043478594444834874734552599963239258820104452878957672333911085208137994842347153189526128187510890512135465496924606655767345185717740511398090050749322800709405692065544287992897680913853288239231274264963790719799785249090304609585020328130118819189798753861277050983112679686721178100609428860334160740802044853244141445794547210546989291664998194159975081170839975855253125347930707237719482373833676065541850211333735753571160498408863069626498901511556298277922304333498449367839151985626850432520084479855462969126299788313029363064633704503315526375204047392241570728577799880296353289006984007678189697563540217661942944247537256498457226550678735909340572389793781914608031982711392480497941100492298143175949919931032808979574725337681460617454331326448924803701346264266926317342443574270517747565067556341333600591783137637375920389020426517169186542244841360946598636267754333221729097280677212181229450177664232716733109192752337724245059080858927565564344115484438889532132702856054060064352403401177439426383149269420366767731249233446046152792228711747373206820737950407753807024875139736974872208079418362724579267158605875684373825696601528845015936360579976487955466689796317276414458267140983930260584443731183219527357824299238053046097925321759529437646696717859956554797526010481116090019255987703160369289053546421969361790098547207855125725975325768780341842823941930116764712780200132449054170687194060874864250992490041243777990256723623875213448754686801805700267716590457174167509358537466327846614717022291277538164893581403754204131631796620462601683005835840278084250847061028563214676349216441559656539951244111527225209885576318078808628374443953733638662891394399045918693562979931691320743108491238782696708173798380276007328352371305703835388120192178074557053921312504821976693406394280234533509698054521919641649696642051922322293325224980990680943829860823933868677395445267363219444015986590406652867020651004940978671302450896050636311474978975431863273763793202279530010877176844026182180038590906077029345978640932969511233853261494565585967711754424619462086741789881434778027023789183865475073672507012316459542104230368253015499272923049706500688744552908893664655148193848056374554470319717186422720965870630049834366571830309458525285629892546132607901723746233601382089476404721767102107836353063283918528942630970835241842688066639724543519498745949527236882351106475938370531361494523326299006061354420207900800784435918514238109540624635928800749174723260142829150664735646949149075313040411948746127584251725422993376561913228344136159688451230509792290809347780610001202430793367546069567188678475890291671628151047910984819968795053757476103438392892981834755913533728342888492285393965950164594229684902163576984603656667706884979061493789586623897851395030195525207115947916243038057133910441235127977174258949971813208993972409457630504381765420237749372929236666408582635630470188942847136621796280779475814106472039686900573358837832383938515643676929109532126309530237234188776377595132558571988684156351143465444921346183625820017739111963565973620917480289510711911931216161504935661400198915406771914740604502008489007852104489840715587249131814241237453147390958592854919261955127528154045555489486053043951830551638652963511435855426789578843322470303223984629694037003638667059755189622821668494721551679940102372605276192061750456049663717076263845953005334443878994432854366301464142075150267652998714841483859242046843515052858926483541295999641906383622255006162029851790807999551716142892743322162806963512162902965050345455980024292038066113122499875748777814543334957813655800830045879054556552375964308994728294156584689806294311272597554693021887912731035300216864227633661031890511086335963986070974737419552934178507801365337868776791151473833252513002371910235875886798039385529704998321830389985333735331510345804434025730422758682609723983422315017640803327317622631967565989772971839422971652277619673408573444137475914779317933398924359940581396032281346592478558756550575159428611613176739552834815080851852071547951439266728751057441386769718902087776119592459359290863839696200576865099629303818145491280734180972040320363366766499443919936264145227145073503705907609385752440000947482297136237721592630836022139158855909461407406976301297086569690667624421861836355204727903533175309360779778798470802390218595874487896074523749056283747418931026806280481743381300198221277706092184700815252327145986723437854310497839043649305860764535756025983828162540984963998318112971881438639542654408280086193057291799568887988182572440923086077708626351313609463097677409970284727668296668542908454052022919003034322471898204993824806075163872794566894084973666516228133694882858339531350502170536111817502101016960937372882174683892618068718872117122032067336498312812545726927631056482587901068575208080633928751364817583758109695596993384841991062692241136561171129547967778123862393493414008547053784583782851512327987308840937357211004586036545449453018681073293761108679782828034366133339780538614863594371635008771193119559848021828992677797694091393084926892397161087516259813646427951911630339179612919001760953221655734911037471209457900418602899221551175915683036249471608650518632279742956136519830351897142876022375071605999046852270284824202570096299382791478180154066416917925969650230616749677247841947414200924297729713888325116655222730338964447305270490241477275647154092376806641652822611221660551903510495321695382999570174114651029984898251643905699093945986820498552583128764456838984342109365894310511407555838492789369974095013891988212479916209888392435587365554523753623890641072663136573386887150143766765743928298320734613140394952617095308448965800565584630952329631871245183661663042774985273620234906785915576936220534724261112532638914302528937667373926286064609916642583999874647434141639526777322469333134089892282135236716095628251349234859268040735518153607196567395027069135357634343767443117249084553776703266698841449114808884801324930258438177011878566635729353987811406465883694172838736570843375751044799123597365972434455742718384733620516409860393102195921211225720343651001396389064945296714205608908617698288316388283825229707658189611895457298258107339454017277497834540687764110778004407429296639807958026689312946890891500618618418921853041643322169492782133921182771902167520208059672627494630028053887779459621856830743842989256463024089063366760647389704968736267734714319346437826952783760286146583892789336232361603686965888599440717090143857650085623703570747288123004277647474703779463200055437274736584724026183902508185020399413109503970812481221077612832459563995640730378422829494179041799135365337060929535804128449019567717436326558733430284401481499075465103281813878210907214339837454150957218087233216393141184885404882476133156499354030311313197143885666833802176668360829503236040595136775927155165679680295859733803613440693078137573011613002657970242655917863431943626466230186872587963057556366078289969536349814522388660073014771879198641606614390805777255192448707082910976735549911200612317536184781317654395572950385452923653669413348562178789261547404561504523088531184389783350748069944802081583047802929139502742186788691980176555468181445443074191102292721931864440749790317259939771362180997111761468900013772407009234849963308320304297321967582789400084665235071155111834810320144835294744885188632413303960676395857662392727435386476553325926113916010589720694912160419438436276922502040836018348118271585534392555374582362825523726253314359699646366678255933821009175987444402718522512906425157453594796130527189599488847824353172256275413109599850442774753526388871189264977071705502201056823253071154389564758303122551162876396883514326272862981524075588799596209804394659688932951904490105741914199814985879000053348961206916311175468253485829007683953766264145205273936078651380572241506897185582776538952151358565897640730148811113373869245888909822760229733951244135075100387258948206647854453929055116049254655683017922363526377554626840904947800372684716102649508826206935748463164396897896270083376303743017561945738907884810424309285523631029835517451745446606529767081994743205995165291596008715652115461296735413957327751678443484864598339137584856250554601750792209883587719338601394896751483376380213903415290428362645376374580878281537904708544575967614210377236123296196402292022895146968811447058289309803570015041036948417054728692275197044694697292034951969766217664143620321098749717299081440003715739281891528408319742294373367747782587092187172252984069305556935225836786253877699037108329877979505169169629957607026624877256111532102452287179703093738005633540592931089018740049575133056457554686458819253443722717048411076045834505257242917684423561001394566824566042880004740729261916575440953365000544583331333348665819727492760012423238225171846893069408572324615542392813887422027661693797935663441045037115598236757714312491279623141150164528880440942390051734645637803629395327787801636044104275918642025167711823591081249478448954880725855125745496079956918012971317205403842490960873636213513109752862098622426241874243578376772912641791880137675200320563326189241018616513034810244006856808606110481129427409009375274857858586840922973157793668860861996442907361574905330345107467921392139357341469378267840533131992354433034607195155205700661001169301061146455648916805009145005561378494045436931348591061841933018954548638521986008082004028633222685779286594749900693607510578023474201503531773730083649498916728935090935421209752074727250436661880061334959093061140711046459924475971754240199654073065408416973523925041563550039026440029227515519108629413672360002694120712781130876365316152244335162266919012310171362950133169807700976703122592334099542352764898442089109243902756481617004072173927256602429583715571067168541418713003571310230544725937706454206437302838147841910218688218466567138326128263780697530988608290663303966984683962467476885114506491315186155246294792481115987311090797711529805880920928581622770652756777195393112035731943345934347337295189941572147227619036780043087959047999266424281962016300988837148845043980122446245560266040861613319972328497876159317126814004045056189668690984708239413708551813261996376889702124152313781873313001560112199565703541410653535638452439655642672721743450531708970862034765475867412814640719792280574469540684927959945904582090187317658661625178733129693572624876301827480530656002946241810151431318690240874938411242158215083730741283373100322266839576907350698817682754848177304995391310318465327838386562671747600180627887580492540088784039279856464964515527892734502001541003131905096271080962889523768982872651391408194511671959166631818853373127982279478096384186330812324934368273270884716848408230651068049840198996614184868219292371243226293284424830236101798391004269904077447991908376102111123960672507192997931365177067316450479862322551979702992566531510159660459669015088706888298252728640598951425047655646438613971390930202571945855825271392719811327758886955446292060520268767522136796682746877587452876077863449138269956348008254414413182534720494801421265432982967846686054377906133891020607653897467837990904198226428291713569800434724666969930157511495371520437403191810795486894324062290945862326245220966757449528566016465787368842465402656045769732900129583787420171151005742659749253328682586625702458378115218220127757607872278753625441767851681849197994949764910003693490955081945020556381122496479676624965078580232712368944622866979631971539024990109911767205329659201024327415836646285103519400541457190714863882469446903822456883885007824410392501635971537484905694524560531254037917603310165347750019986495805835536614207169974117331055254042055211077318581045894610462735580709471466835287835222442439519510959648019339972822544123729119753352333978820050032094830778066283364606324667100180087066628897715761318039445308517785997967916175623642457991318747995295187367560206724336078627831644655047133342557745622032970583706520846148146180327955657231128913791506107878236724170631574279086027582680483282048253059594486535530533557360894366837877887790883577331658156656404633363117896557755386745135965474379288244327761776652997753788443212262675878961266383306843849005800577613730946043245733141597876165553722630161642335345100237463536829894247824255806480766433618052377415631403789337126999008115460840814240586928446408742389124577519366466994637359158441193177950085848065280520451386178972329910964611770976297169880547414864040358883927950040568096688268252678332587535835160050579458531484837770296761832636064913660564711850804916359111816805735686256767574836279625954231444084268694441780846545900109830083247012732767325186296528101198756674251237185471917419644610996381436922527648768652429643328488026710488044888015591064476982918336443256383798347892249924247347347492558557293151861103453413733567227462578276718755128522961571935018632517217599994227794412512769491665964117645331130767839435875570151126833978807782308932767292196739065650167909884959899971836201837724669791646815888400401508326413390170244028639070088310664906834976762880088097131577264334164705251536471773066139272240563257100139729989909559374773055963634856006159849612535183107450428280599101135615276461371873230740548644387095103762391293174413926799644747323618213633118585804069936583777606558414953328326602877854696894300229268531019343019873705871735821809800669389125076625708474659506289918468346949911962050562881006235243400502407512125659762183568345522576684049165251570758414614413289520970093068729022716370563859061059216969457351312296992925835675318834452109537570173563261816644245918307191732592805373518481830987229456262172540444189864039750384513606111006210718088689290538855653803212319776645007978808922913907197183215533766071468815888614665937080218118486409491244157801586964737239095958580311735493963934232398121883858322269062273043691547964773290362031023158462282118660828589608169094090006189644213461734468252143386306086410764913030963038606156122694775672705661641983226612829559405418526700993894418145266998151219653967190513843135365503213138068242451734889475925031241924841752557403818235113902616355370936864688471015259866820062966604332671588470284672528273675136369158934985721514957696957393793129333387868587015586438472121908813119471337087338232750005623992374477172103479216899958700150469805895623651885426829398566671272305833174739467989387917984475726396699725651509335049449623932989411838095115220273859361991620893155937352131938012702984818829682456924664015891024522408334073529472376766018719083566257343946835470483622445461993712921994552160770522653798347510666769463255511566494911680705230528173086908826823801294125418146730584593435812734334074634710981016973378451137000361466614777973756676762211878253942360370654923722566475192700250824888860406223409811545113334223901773684113599153372373184676634050715689668193810358548079907399613453888826857567243504591899740069104470411162878652679201061613247199984482371523349978363752301431351328269553952901086494205818604396159053058259754001573475299749827230953870577210005396418869704874528973591568792707994416581049442687939022278200261738842463895922113926387495411419594330027084671423706812813778229848743892258019606732295576646222560726500832043734636892069742573101488777832814597005506211252970943955134820697067809204578900900556359931930300746710425701791847467995201645098538151015396961735455277804306267757948771097991362593662234937064837059816841914409008692838417581369607702626526373984217927518655855340018024947388424795076359369625165815980054901107970726953244886137434993884408366146859209020138746292972909384539568930915524703254564948483425584353927500268398089195124385714727889228818004727979105941649371664175676509443374654097289014406328130189143863392806334434942400260228810471699972553393957076410706789505905241632902212917615707202813379630649859882322426710298264264548227932715480458764992124132126818276723090347559579303115848248948301417317193431046635619982934226608452419772743000894757519064436425070401157381317794809599533926915579884005478289536523956367416572964880463463057367371172158099902098944537332554066492445556570479772079145812304506188806693477316115492135285980811109640356420103206503138783298144430856387206579389407056232795868744608528406980628390128319940403175369817291011930274216487446018619632159446845380755709872212964758426105804371014414489107488133766721383545414247871366665387182071284847617070028023077139862001523285284674980517160094177008483060781630740674129158570458579809143541609290613494597096889257105679100556752900747504379946338211192119990091221539655631726332987359358386665001897021037681056553912581127425650365892142910191935677400796661271382307140818828418649325456700504789023579983462966520539034526722973679711222964757638427953370703079415632893117466348996286910518604722726888778758797953654811330971852577488362549950780896238311682394650511685470862613640217820445276226218509468771458466676588999479371028457027858288649455781921024708840980548840494289202758632513512032768369165509333757568774231103616106683832158080256433346454271722024956218060593586057783683982546182236449833541991908181754923962168710528049514224637589120113615979984380345538987436863794164300305130378895831279248454986839906586006407899335281278519409840167197297270699322133907184209551782475206802684636165397716512345743403044324661478177119961085537282430917112635195011915381033226170096078197922946035526018787669236212486362488512903544283973792325138955506401423913076654675381145244024706837652806414248720891345137963859994493516086771074601432747723851028474946663633461941723016077362976288977251283002580846877265301516820292508730013462199231565387199041060550741930363390184442397874423384998260696760570205353684564642727270348943923664845900245979494739486041667113357170281209226805278156883353132643317590299465385748521847109720477182480567215619231319966276378282067062797786438225580872740355388755763722582999050673591541471494743726498397870576633115053342116121745340896541521554977462478886291183035260403687328220250708935308435234580815071956958892412605287571839649630550766286009111672617530072817388845881237359853726929926264266600217297690409322916645780080286157310501383405996052151802023374674932941095769139999676638521753746488507214642276836486091831973323639215924903900069678881210112974635837340525868785445702221462087368587279664145301762633541558879405907321222539467073782654675608107464960418043395795387211330646467992861229485713933856329761617850891155827661197902337999866357704749637968223993509579545082055051118930347793570244303528304428347024105904612246808113753997074287434351207241798271000829331913714192887714098986370546271136142170603160388771587341075626603462603469320575746363265306120596147410967864366328128489246217276990604400356483137270171843261107628690706296287678248337252181678495208701873888835266818806885615538210291793846881259759223871757568737766365217279182935988891248129048499965476445965554595153192301986734214396269052453374634498603717927205427968168892955587945755341314658812833102455747928050200866695716939577801534143906770746884443719972294731420962430984645053185396521906026711006056621714505652396167629158214100393073338929186256703337144724170924079448220819579349698115524925573254088088316481951994849251885979718179165071886497535369431957636602624261722924254800560595721748153559340925382832433344777942345089465946829548015616400884023550373234965498786621710766801062510274472340547773872282337063244223465713099833535636179045129664535920772793879392700954660146105091802732697555135713654909405170986914333834373538622395662531670508132212346736878144276185478830585005810785155567880769397324212208730661826200908305041506079878672078008638748314710467962218043947575563099086244244382809070751636039213609739671934940819820051893084634184185137758694213859700251923572103523597814756562837006498935806194277478376736716568604401242535394254608374734622249608298272472402187537341510443884271408930329039663170598527274357572249198043964068936908330704606903363403761135669272008017206016525870166209246565318321783590348318466849633623177354463039337934892379583823380148352466207076888417756468257271713619148355289440361157962468253470999577854148164846673573561133803192065822135496782962945837948992590906571508585899240368777247095602252060304105945472235734307619920200387034244022234909496718095119479811812317662161328126574188879267178040238578005598529232561568824676516359048340588004483845823024199841762420397502821442033237813646956129181609088070522692744785023579437156142854961033099970139477214606174500788247541700679178188133730735538786796010124219243417398732897632280986762293745343728998117259300822232462437598540018372660873832647120725544913064336449951001947825445255425611985444689633861923341088611902366362520061671773407268444876708707863399288518785748868906955952057560806553597236255486657680659973002696144997913863949137643343951178186561697245750119555271398766633102419936496159367342333676593518995108210508545586590240452439501495865709751688017729800819922259725289161528326432871330191207202622505599302105520059364272067206743658081959198389468624150753802751656622826042558448723696342315273704964736012472937470582351894637772876085862713952359990692232587035991070927536077178731275481509403512701381707948704002794636433688427716924012826404447538300216806055597399111532756743042507916896649365346106649030339264547982624507527529703551170293895493926050261167328050806361911350415038722553548052495030725922083212991676993938578960521919040226593296893201528053855848832676736575685837994286855431488484598780431993710784840893374197790800338636966596327000480075341073313028695828601359287661350885694130726895270622119444657090135000285078170081732969360699447808011650899774698383275335446223117890041424456125659236190671377822188309901262050387138637461107547138243333426066111911249960431197487300355784675385580931940536564143872408715930702800223362024034209266924841036541392460325281513910602580690086792469478464151377425304908113337485925659032521084378705836901803059338532970010969600087425044814184589259856965345569808272371276255400483792707641017020870006758524443257752645790361826803605262387899668756268684575871134948261702787264207740532779178396605930246805376125287836224216318147642047643334565869242915619461741479293032672745331987962759051058255643906412796059960516294105583577003536563242856713972433093599861784854409718181725544777914093209591840501649984386128073788718816754788756505663196319767304705864894624045949269766453285109198744337351215664488814513250978299799856828301830292718126587579974915259421426066384493476182366943613010007783474504544383940594638253164174696216796375403949152116008355340458730070341674476885386353724175911919125730296287576998669830602845055125425577813049196573537081097538898051449828195851720963288792497596687858557626872836385771428233523466567958926948548919544874241952228540275810132725725884846046549518516222527214858969727263289515266100741919597178328836594559768570577262847855954488372407579162883631484906477914553487265755850111942264869962439109009594842195050118285457021898741034571838981790486364649082967773150836776997335515074170081220258053885245195363983453187617781231829233845161492018946787202174802452815919012422558651698747259021550762497491226737659456330761660211943484032397991440702488173434330292725710928657389894240649561810909797654985118424771133900728809299016301869411421261170343722496674766825988818337774891530013580023146024260472055275799319899409643161144298528316114869897317486423082626493416316845278016222869452176524878906995560991510960158794169103884595635966852936125991245729283769357494996000637454051029331252353719421156501331547537362809071428157731851185927633100144847811577305157277411636321762995559710643742787164040829830710463054191559937148153916125547811264374389039745212073575767777507421150508298100857375238351838357539933202975989157824880504120705904644073227688483087435345122645470626940975444513697572570891505730232425735672721085168470673901113721018280580460322479166007383269145415931982924325433746486049633965342248172938325475111403759384377805581002679023593384798958654860787419414168840730434173496904240691742895829113388157394322771015619624776355190240217127468627824721979967626629009191769556438105385692640185914761669543194077693489655590603130341579094455197560296624875454879091117532699370937126380672256751463060740233445983148205780778552538169343648053568079452045386888722145805202281371652698201162506165729737974807500297233921909750122049474941700659392967296028738767195222550630864385036022864184376624009174719032833908399536747468613101093275450853701032488164563575489558603679918936112978761908356737312274823781827018531064263096134724871436054931890377026133291202074118570203965492336859086327290034787222376598941863189523397575264482623228467814741678394175878779284134112230198805548371919662085993112969783033886516758544622791340538447608394235553449033163300012475799652761685263194532930959627313146726192661819832194566480048912724042165730413638330422266489785155626456553219711447297326058213214861528010097276801510402989652020638606860045981614285237499912085209347292307977350301533905977647834289074748778151734815736268828728847309608641886645303294760075330935853802770492600732884329411952086482971131759375253443889588142555483851732952836011377915329011335759811747590808295590475065765845686049895198699305066250601709707832987606304681600952109729778751360186320545895578180059587571719117232350915787137515399125515052606959476059331576350909179773320833613680719455156407495330357188422563693171183439732516057365037747321453500563595638262474936382247058368475214260727919955251074551304244338336405493970033337134880029978594657544942765183034121119702102998733619911776479300476493264915219099177723625580527127257799284186221272202594729578364241569518389042618629319498502398088279018227708670870719353980183576382804721762702614902491846340252361295645126001797544961312208728483738833193857402018908281767850298505262156335275083393941014555472125637636854640790946476538165508050017967373743140990894748416914300650811821039900941917142905544287434869177808284127163283349333738760189805192382363730219765007029919984095395364081929393544844337867252570777295959613871007157921472183707580415005441349860049290749969893790348810208279250693005742360174677126398250444798794775513836887538882077572120635319586500300839106544714907549279711557218460901553945733251863898128582468776959800827417655549925565263787184749887063291494390803074172603675896802548718373999961968293266122412170677133971378809252017026230147178208006391621359820529738550555820959403332647089156195552235663806264125747913463825374925991288014312614436201171810061047225858418500286341562115688441856620282727660065536243416531861727054704601829523329536489605733307453064730077394581740556221801029658695455429623213626808519358450025873573058666519561744637181113447756361029316422929997712848473992479149975246975746167652401333988711899350291995072594035417767887842758631733862021231433122324549995210226464191705902063721563648704410426983363333138216958848319812093693683591904114931623478727636627592154568410702417405297925694298191498174063952714478690511842343371955926123191937579062117858090932058847948363057956121560105651820752164895293647504997836425968788047609259997018653611113136048448104343137267327149325176406779591282704180928409930214809574578663493779227121375537125494983646132191054790119508054816377823175531880540483447456823482955282130638303595464797553133860371316576407833408859359457376719674086252518097818178803698601166138834712999153771123834154528740489956469028260300688542763451896235735546181582222140719678668431026826557381151949371316182349253043654779188727730395772916676035989068298497927532644579302056250041982158178336797583245820167033440163751943613079360668770605961550745818730074058855418570777129376539546111235520177374526753650277123601026263711408502493754519972388118497200485295407605375755048633498517603934340365895296086073448055312295533568821456711805760475884194205834963384542165377020226288732032814262719241911346980715350623640604880106101761396430655066646671459774792751275013133465967646396069944057031186056087812280632896781657653727506296728357626397482838464729501891798560482491985007991609232399766719647678330126384650808804283111098502554661296861855650350012361068529743566446561984920921101266375831195462401126619489300838284386599999928333379487659821355883933309759653943516874770254203805203373382317893878282543047736859273772357478886566858736092568691056377446851131559478673651648492178603892046920573921373965976293426617993875988610557138473901586953800144003377394259635248692636896090870539526251096127290887376798222410747678488299026259214172065135443271991645998333033382050970236703791891297771139000217964645568170138089418258462959876893635924393798037012604370001954537532094758565668626186913776932365553855337366401811426040117126345320537251244688083925045538064254766280934506039108615119488314246477393594536113462632539790305310615515404757043183580698889116850882783575406260470081334894277564198811046150339108196697436038560732670871560877665885891060896072087471582697016905626687199268158483351741024109506049761333221030468320093162948196664178664108925963354038629241301524764041519532761824707235278977276957745431491457204054179953185788374981085050571576711105815852167055220110024031214717157984645854332489073410987610992956496761565447188062442849337194222747404498379859647558413348941074260833361521207750192980151294656720842115507638816459889661764643697603289243245105302982505122426807037312128083935122022554084151320294799980575137686493365567616784994713349269562577390784837182482831556792981972877868629036310560685800990722240215387661471364480196561481124538862716542334288756197979204855730192999750041758818622035508435269374224183477542357560534672554956154189883817856029267690850613136595288039173555602456879717723106032174576049759502322562941963790630937955810449095876213591677865829539303065765309230704398675706257606714270638526055475959525321304780063261071076808321621001457946409776926800691390719372725319228526274289573895041376854774592960335922726252666683521707031894962827245652845824142546063037280407774797988541294635397999246474691335524337231830453538489080808931525181357684852728589173285917464503656120068829470503204716904153768678001929305063669577855088550542369890122298087791267061052356297358060222018294315807355521909375865774736264736992888812797829333934998697735232413759931554636311929820706537274786072589973120693062721040157239438426087560393263870639290221903085890987772201985593853726881479322882922369825904643093397881652299859711143887919168112556374983131611093190611563255289261205865159851493976127055624087676714060590627593678972863204655894075319271591295117018443755758535236978206034603081114085616222042904289052870934871938753668199421196787160344751165632170440416053513413901731366894638873855531386368243369975985970616457062670413045912643728498914835689045560909348101158092318073018459984087990904615749310986143133159197840606356831884195057075962103268508407539511046071367743150631865568117504568429109859360948634686959367227758077306072883798814246810034268587441953320342225922259113156871855129884383997718184817757527652868727478679975609559814433269798023224692517480084804373540267386844464825094568371986966198330889858783525793232810047849800001659240729031466028150564724110345203157652765771714505108046030512975963903369048782270839013310400538514937353749729516134897226397902119889634448662018819029576929504346472305784526520058067990645390049554274873960333111513343423239392815392857552418925427533689936707673603270769534071539778317693299858002902473809122227024700301497321483099349332418808211182569586232946518575636897541635746895986602665172871063731782115440732830840958229371768628036856451591525703290275690368571298831278118747345960741731009788473156283864948619310435016618122663037695937267645885383809430494530230302680142109755025038907214842460093398754399153838421377545972464098687379266027941662047086632843876627366087827215003598927765170744547706538396196028343102852384091338723785639795368257883705830489472663481348213171908883396336724123153639729520379956140542026523557331822605360301516107672701613667753472021089952406019019073107167115721315313139910873460499485588793055573290748667569249917791477776275257215331530591915437576402085562431149445372545956809702564757642444230904740701449387200931485566126738641899425494931363104759618933034909499307284324090098660429647764160636212894769517265674169221041267919762026291755853059616058835981509438139888155464739539002210859787185924059647802767889239242804773232416801150880994290751300672861497273785041600155380972786910116538163760299560019987567710528743417964863494875902284345081024845232428506194564649282883380246745314360076653939325316906934715341110259091559509809996077710819240434008174019090499522416945936708415512633504468374235408291264653803549416953846871915947864482169071971882790453741758978656539635436417496421138332391272660853829567746264220437486137508696560381441154467817463182415780125489762580240567221816519025525646655104178403139931552734970128274640783796773431039575001167643501232392187217369395615725612096294658612581792259971229360156048325293246605900074675382891135887696605023043275464415772720413553534310692302099040958828028424925456609225504736786633535977670114754779378951221639503917488370060692083214313105651140321659149716054503315260875624430397512016270444756654974450829108449142753286512578843201433719161950742434585426712768110260079969773273109108740407138883985930205685477056812837003241060994880891203723375156916771294476770105736285175269226738673324904110576188363433437399317405736193536907770580699187001103875506825865123396341929847330966787573203290483700569033536216837286915868224849316458641309955612807613543158394797965036457984422529399803252134609728622695362672470762899717796327633461411207041541483053044019675458162359860634665727330574033424675682539988557003842039565097719954100268376282975119707156928778058823190261710147580089737378346499210043057076158595322507336108729570271507431229792031372110315120578694581824201741832056515117533812845799817329613000972285911308282090905331476011967818503836753034704700057874836099759090912963034418276550511984294261174212501745310883761527721032091623308833571020857721625950992529864364182068943965690856477512431829030183533951091146751371853424630585177074434321613169130454456207295577914988904854785029494251869923015642048236729967820854327708171399372971364728551623691028094394904980957111479873532633610861544909213621071957862718265898464545958700906924924882052343511286873862691252933569556562440153334475671624094781182657115595475669936842356249997922772333285678478624526949813038295767158836825390348461671496801413859919405559791791785828197578481237247802296273427132738070171213159345402254416861464162064185495562201758027171741932960403072428557591403748752412558364868478265305790211293015046009300979113289391102092842221262887439723987929998722171268024426957043640826917512394728858097663173521903477402078301082500823068674816599291621420437855969070083963431749157040070491113309702304687661585748313508014447599285202072786040624690986245818371056631825492066663392868941642231681397853741745589835502398141347627568661622118636756113454018506123014505064146476620025479372737016911509105700588058385528775155356834613555088814313744985636377736943347307792236920232819512601988334853193084139129692103451156646155817184516091865304897119538011024852574989315864723399926745372521914878779978880756267375063872378056469764352686130677476116156403088981072299006136202913855386468368424583544342072490652694313192636306455791910328174622465230508681145392237903469993576181922838411783111273426609317171605472302748587000104786605983536876204234909356314679354437007086760444160809343038896416912293846293502166110021076164054661453282613302509899295539192759629946278263263211656587431955173359427872479954828722781079314977711035342554381663505021820047559845719470764296782715877268483623611180659244515952829152301818089716722717634965228375068073131741445335093301055862157197336759105167204885674541572816321725939792701826776592787907269759586524444798627848766953949146101776057760360711075086603455755571296234540663775844877314065805021814441457012161388944294254301272614399603975154880968417538877870997710531568960577955363596700780699856501195536169958191091853337403661999066186774586536593782895158619216835838537205517181966990029062252442971964776076579212083499798148310842533800664605646546284410595975870105383783766951341441171157658015291972393283182374190724182705562114292481259500862193482545185655397012584064777459094161077898448667987879836035943067050826469850650965071424287984166501330336475959713294583569058759697058365984023752645595142841527430934760028480597374451154823040085774538194414235491878380929229783184414022384436112322168850562433541858843251154472064328496208456328119410827058831893542884543650548453563300884266856935636428902027669230848663361182991429872638798806829980861239497632951046359133826912525187946694508941539649332734549729944898362994739917547441647197173177987268394360240105216610149815265541625403854517795215840024958798797410495248004753558164544116079649674374767184221183581573767370489681657618646684473995745738638952849566518957447866597778195075225888298702478900964065318520474237695238933550121847859966007408965038385951470180407234577687838560758095616453392168848975425983059917537610132320635432534424048860000309082261900373063418486886143876373649417887401204826095051275986339050977024247252980175882639229387079367325221116705792644140908543740148530459025037169637477458607191405425694381561170144378884418883091592292719203584129871622866850532460389435650023073416708375186459536802527582405209237446765733512706016011703490806822232723412140846959667332516156575806659024310130320641153751168740775678740603592587886171973634936771114265430484708113330323186633985509494314397480484078764776783277053488015967141016984435669780845487805182319957564073978831770271135643924204452033300760976436796999004095854955620131358480587537494725693403309091728323941836921932491518687235477393921275611794664018511800138075010277721713064204253265553611432390788203509453770750843488923010206936485172849761293833257931632804024023662247707358488505586196021481895075688961464986471085846445373294965523337264188383262127117827240693226571570786417557289614533829164489186520495527295263300281049823109857339430816022566981711150564218030749436110781361389682204877365185667020919787109427227650347063385085500842117094040508256992457562828262781375133270805294552322160845405765437854007179908127688366953749752286406714615345649011269387426711403621513820477587549428565722785336658487290869174951010237587497660723016951857365090579491818691542049514818950633136723233600179192443975940164167719835945106934272172934837133152708252285878147644954066168266066328173859064681708480980195630954019100230303837721074832278139011682082582389277936139561206216213391578640790409627777430623945887116813593241244337109448308742299489657270496966891909767872956785683749182662280759470730876390942917918464672898935038166571603238341300482214907355731011475604391076423070499714171792722498893625118537718445653611243536680334158347109999781275045931072949201640040438736891084890000220658968949509883554543303448063469068362642692622526048050382229656658564454638172578720242239306031674501605397755165542460307432569145384140667700093348172625337857836954968801819714207583047902504544932943440806547069667092081966871809574518223790333116866601065885464616222513680755807281783990499382032540352222147912787357337924050581704793436111604657520350964992030094306338515155701039654361560042502091754083680251075696272405400706130739148399782154975269620067771746125375177474080770421469498072465669210313803655901391446319337852495607651289588470395683600524056037732266484889767598647222236870457260025131465330278949073668317542852793043641684491309014822977944414539776700050476454539441997442534009022064970795065778667625625790416787951719322821604842790422281457455555258501105051118532051282481704493408500651110585967966113480543157990100271163704146255884514695315016137653098634679351398306442172125391421048484018069955555893386469844709722072920441600174464574485789885219133254971330254820980219920946867055130885041123215989403060607764070886215302252839630610614984492974704512812064392509526839331630165354068929280565187157265787411940217478091727995418741181137373534823204924028544437285424144786673531720397284099921075338521376852189920275476375155088032382034514104490336878610551139745556445344133528058933149507241545365042536863587651146455776385286184222500373544338608419457202578083624670516135441219360521249265478557979011265815919933225542147336102522035640035827908575507305278835431594674179374264974074094794894477957316609623021732397288402601621550899074510246296718368591603789059816357439266727829502991817957028068636510124544515441318142965418452451978873052020028802043389552095212624250682073625164648296888315050959701000226437213534878582602533578984284992642598493826986555915745522772230447836700451292620325907284470070718264639429939710579650492402721513090902016322578929364662069079114189091709554858581709996939845824188862304346386468537094692019086644250014237049070605479440163636224484204946141454073340772056136753779947174346418696144163556429471591970959124572988939233815001041229439585288124290316381893911829364047567480132005483777642241308322733790168055134561187865263787390846029832484496777676526714460909842724092219442087290507772474227128491998627528840954536122442608122367302636241666463676956582340509347865011435452230172110431829674611812712477267475584183473918296468924243908358983041077861222164667413927458084410934467091407688908115480426990464476617903706913186431644872934811624753142709479512183711895430801606136867423308652068568392614804784456647494574832329837112783484945756818482357381296729860250944563100213870768049043011088410435606595632913551363659537905774508634658418379378550213855073066062032361892026534379655424091388667805176486602355686801024443819982174081868308063265793445013660695883116352765901963710912216830217994317817811597562569334811817590163704539548800254386919502939484296333878802324540268683115920771472660964081472974256413523770713265586567292609352131356326973863345139232379491272741604407165332837276663606992078289885158189007406817883560033839550249105442191369494384025928975768041647987388754419071010073882502600250529371571205988217997519052515481351289265070350312953887973951968071463129797393988552240677107478132966112514244409425462058656056386484117697376509322232005813738988859893022336308095219342652281506753067731168349920030749784495333173923562877249889011049829135380994323467387064792939183829847365091741599344224180136090702185376839482371972551488138816352825082378087561773037185933102376901551814895668026451066955667635627033163755042821846935526079312867717163008152297052501399440411109952375878216898707228324155404378594936488165971060194170111775308197796006102061075809541843822637717441589308934402454807763589859838646004481913063291821212522007280634089056273136156282514259729116909696211674082471631451891747360069596699142308087833837868659015986702232142869157014142480704589721910542004790420726183894565916757662433748165233431013197777875062648144789623796854491833393254452263282389839955214350864723998824618234678333412034969696346523102970980070312729811300298748758845155628443101315609908946158784058400383614543062750283843451683679399431155194067233688033261838130190651593168620191839636438811828697041164945876942211365769814951731860439447681922394006701455127928254056530324642352419083789115209165207534501147751337617613160303463500158304324119830345045973111548023529147267556528539615498251732218702811891475582192510975188147499627018320123866466554470962703221196735206682568834873759645072512079691451687396399872950892928615057450939183524898641711515633710772070437194298978525854106512202087219851152011968200668515495090775699216193168057612255084107995644735723621151384426059118785236111157667462461676058949088473218825118818916537294130184756365083622904096877270759063075951737344653812358167205699861544933744135511580828599979725070005425695844829042157032963296954183720611253277818507824353239187267379753901060421898213335680014917629276358973974915103361029448548755412659458830826273087297415813599878505897081564293241595652057224388601584207810475042628112904425526350548296613431983475578851932222671869303645667271026495994005116630866373172740445456949737487485211033177549364625380611334474310806832630846622039370773105244279995137450193526614235225514186805510400502143876778592990110859251867499131314500087258371166936982497699408416160624284063083328979971618705057651962404924316599951518966497547503900114739890318968783264557847453725180452235972687766876242850753816616792488000823409032034807146522890222308061496574270447722125026619237142356260929122601825058373181197103907517533857713780776213177245287947915831714843227314735068371778815798520230352800599998697766693700822670880420433042717610360443602119574053183239775082537624353359925874480669523131409508267297420082719591871616960153406545781475710124329470340498901172403145627070070858913555130659474830501092675331050476766851006872795324432368964938724349140188685802176697065515885025617415207031509272651458735885771669074118956676294168134057842406773388665298433582820992092796000256053731611957486517297171140435836830233310269244755634963018267857351110563974947335708175806329870766803421309668272612847950604361526544217036355406583290195474112632161794143686238782446810885100608798206571969473153168872765582925484100600262887084707264146369814546760230690648480001950891529208834752002948330118357071474860460032318036646630113783461481020801040824162464398628580275352540541481178772578449824401215358088326311157679388344399416742552671812706870485790500170018827661154025989664563822695284086125700000312015134146214627435881881137521596235509096186934825303819680850849675713080265221001754452150438824469635391354522294838227521939781610063081571394734757164331002885720115617471919226677195436928312826604396069925463721960291425377797398316744381208097218818831236226603387075326789425385591691829772833273126155084174849512359891579860193104630204088365812328283393282877527485978705364732951561411429853246103430255531301949643011670379286563766956985479637443740469514404752486274767380255896740849630272538858173832095777727044265967645023462419588725735933861552680812047751364027860596714899368123712011862123490548171292454815430238041036501487535674543111800604500426130787682215885144267302962084048226136949742620817609999350033446197688418790304159595153926411196546477482084960353618894576122048571862646143232749719188085841721650249255612284867044407945280918253914446987618136633194396064637822450816138177872928278397648591104634556227172221781769229741153867862146057242015889821754945547494863631767227436470898021546200732501302370572121626662522005303961351678831013008568016798771386008087441449608596103041041197485369831113671070824797474197170808243016916661770771312763331363815453158913375254168398408478643177506675039488466367772146792112185361223631672188803806610698593702379096318692240259119146345846149741712192550199254747960048460063345981864608011593744703731663195351890879205648107281187772402039744024602129739110134992696648989782233646553651294973293415434068946943373818266377860503474934332702908375618011054934690179339428739905663796976347810695528961987646189850722086345874757753558684468723357249179047654807751039237363961854667533349597089174705010313969438090236340457990307072485296328514308887866880742498163585636339314194762523066152520565896307037142091574467866737683351558224442263717555290549395328823666896153326331493583928128224584932540555941071950713799703563742340097316130986462139379530870947165361256508033157850445730000941413946001474525441403816920993360411596583800506303682545663080628250094880200341800214558417554634801876535677644115164771043843669008537061169050325303146835437133581809292400768050958188888031319229966049866511923553334427159951307690820852662967740310259473022591776820132591077731585784477312075886450933987756187266253938362357576251588056203092312138665780721626116181270037560534462263494983862525666524229234436513969720823782599576261080998493754227356751224109232447930724282802917623537533863708763873518155274821112448002459124640511151114996644626198433900579254635394962288892436232521864025248104905959554083650286893574890542000912533867434313407342265195998144887626448318552732774941228785613062258218781200116285735213380860436525201235079083015059632454682818922475989132871694359851422675732581509249821248990518465907278237639649232119042056438491725564318734416229620060447190161161278608069159705072338317990240010621164747758439023757467891316957011822646217702894571191364126858718686358249327174656270672807513674315975075657747583764063380449448206683521783321333278967763836574467462017288395723672110981540162132700681687402313661948332501044648564646036412531741333323796075672937330521229745793335256616855892004375962513420306383429430609715847409538019741154953001028216505595925945919485334822732715544487352136534472942394955964530478805317945586293418901077793490276022180849918514125716531651374508750314014667742519764762046166931133260453878964516572908438615194431140161514230702247163939901004379068641034162367907418506463768256603895503347734896731133431362942854314887603124731335419670980008452642740142097631369587622585910093111299737936001355335292074829853672042761269847640066766986610534552072872187381806791058162907487010767369652166873448787438277199732718649255424806684238330274106960918550071153548924174440794337042318254560683867024205233933058031730647788593322929965546621687057128180663158107596988037954190286710515896821839986172264565237272159212726998561668843085968396028717153852669414793173289354584495315021859300866891179713664949241053953017401360785889154713408500397680364538111157208612956394709645574270823873126874988730970590053373183461689693417093000008616802780058956741522844366300229652650701385626568435888629758589271228973122504501939753988019599295859466744488527923464103724733413533839025948077395517640674147646580145330375512587839152060027305459805828008341586750878202182980291241797731523538577064067711668452133686650109064439918466472914384152284355957780524178692213439026209703590303502527032839798676548711129716415065768915393509094042163002921262342347128521083954216649117518876848901601635079499087251459442840907695196996180377128279292330631394632150965793664885286718536589854282324046387338281784815302092030883156972673439255833643216320660898884580711362776399966495706481333243008044307069228179629683286131639498341581788714262196654990514044999490513227583290203973389028542575136640742837719838951375846035685933196763654229787959796756828399831018152542366659857278588886806485189459707162034673703516804567897410832102068776915310505668766877329334920023893505744369544516023429794578060306718931576795190895808112827048686785651794949425317989898545584635110166292415067016117622197572925577322229957957026951427313412587036021325937476429476772338553939496080349432963081459079933815943114610237436482609052748926091149978175992425233969728695252416687315009238204121285426136163532491366251378662874417287369277732668533899905091442880593169617682577285592777855488912248808866962902222009071053198672733203501256083276186546860690046121765511410345328312712044352295100167947903133505342535567838691922343124905213327943612569046803304540642593143348598935298788225495318574248810376413754148449982952274890279695089814986469076164438957523435665064979825941525032426325529441165969405598958665076121533992974864105280830988791971237287616972907302953015863380954319401820266910469313930352663628358321962934195022055821562811510082783702191422318615775289443074012512069822362570413511621279344747937375070858534490402518946776914742064913902473152404739223757035683312553974447363697759131016724855642522704985587132991847584382118515249153210866087093894774655589097681500909155245318437110167970439422720060659347278649237655946958471716429025786327183436043870606152679931992517807196060181997889618914413296815327355365655317827878987704548492565683154048433686635893482791153784996014629433017853591892226871356021156380668887360245242861517707711106712851439717394625668407770725858919518657200283026878274880646248625804514333344541330861637868233257296257953800673509106053396523255759682415048279519619749459051008217962365670147705645902747898018100630951888962137903769365337298726812820884788701063082554158504213341014958285427718069494633813881682451903444805049224355100033141429208942257683134801951041953956483428383168994699706893612395299336477360596737956301617803184226182619920816348676196602758664471180876032530070874535085357549089483316670801325348249711806765228158023607082333904142811702294135253600330633026112455168649227533897653332750883730873546591411189798341977081211090804713744235632419974361958142327674056004446749156949455787149355479222541764298223075736651596039395678729520830762129957290564633327979056087360196683806841521600534098228717682054303049482964071437795896778917852651344209014796569969586033217610283983223252420909187497569528250236244494235687350103470187419905300293809698609087614945672871126806871959924240064653277115700461234695506725963015667229090544556889669490363819793746846586653406795597194462977563164582434386240379348980473005757098395158216139214440418894226816655348954143282061553926819933381323414313987908720655644117610051979103079211594464124822986954039586697896296360224807663263111856093817090755322596581714925458095004864281930723758653310934741026846088351017655232979279258864296905772257139082911909071964170853845945443359918962961825813795766195253377709395930937558695979150585469590600816003435570792205728418485855996164771561906337685043293655454747429793082284034010421477940049481806545729224483426104801520489332597893682357594775848939079653986132009777388783890023066496506731865265056828395821962580338070209708988714146215856544262375254313938425321275734074533191162955171187913699270353917235081499866237794428418843345714929271033322663099327159181177798427378975014789433268497205154307237560639987729616687253234709907174640540240739876530764999282725555733397102244685228197440635674154423398952240404254833976955371473159903911519958160949598512103745365994424396455866218951207314020177355678185319574500159138619106408997869328313648390096137571062723478005228242118426427552831612858697601566046431833533610397233746019991538893157302858826916092049488454130092262588377714048796551601554359374511078984718088470096060778907622069368407378496336096342509584708257256336812670064291029822279991576193941230501066561932438529131227088307156747196820218627201948474469147750995873774866029631262112393626268432315339171935691378989196606671277097343228082519847506195406203449333070378426798379941771882384778573049239862558566116335286152795713435314524810391638351705507787722297623979208407088711586623991923319336495574109949375410066796880142650207310666332190372968824698040807054186317885193804782714122565417999942520847288328203476858489725525747181941141110041741566799999641975328403240933119063192104713467023378515181682298661343846179559222892272724792951269711902324963913804404399574050092712081861325429437494680803495274028786638624393417108857657456509859476694892184500640546563007857601863379039611427130965704638609176346038756811696167424770017570120962241599529760603853488570014814031370011280296945431637235112508802119138585426221056899489951830180914171906159263693473649530715417590666788072282014882919882051557077635832956721911220357704249516850618829530889889133774280092605574823119088319103131939299334559231342822908244952580052392312035468409591811803767004110412429520600416749760555822753840278557228994429097079220373479880867350017022354028870748724156877915062146524891733255247701844863336042379174274985534336281951376593862764032817426362481472009657057617273393219713701624994376072232561327874249377778589269330335964016213344136498402711391338427470757769543778601175664910861942707182917441242654445981363785943440204322865897546386434827291483675790906124620843234390391923443343496772773556111421320014394443227320381369085729795736326744778943865774890385918099259886296977925891374705285779546130320543303677522033550855052641852468351949293468352432860294168994575328382103070059714264453901409018029918233366474407788470720216230623856055975822134483772962995988321194341336945834461478359693702832682714104848145288290526166403281494081840243768279808314945204633401314793187522373778064144956575621060530337373631466749971428199074239705585981535036662090465058448358290370627882179517010954976396032910465540606926458630212687402703333762870900863607757172312759161950765391337763291958221560239574342934468871298084612180268971042434170908330991098588888835254085942276917768288120756179439690119075663452417006163200810141847533290811300309310975867707303631842545293345309766615291752366323656474216904228061697515605333059925079176825022364645999570337747610841475018859988302655204068322532391058724489413214920420150763661972890004060592720424962760719992999765156898504788208519098035733115741544655500524131490124398995076737791147971421276661555365700029980643522358559463340291519655744773725774525517368467724114822876372680019635844862426037986498657582130805125486775367180449618700159104473879342430418785461787045785436649442843850304116481926667184975252670736583993025400618865946300442593498642188736746677914010289921935190341984732576022585319484839338206114648070364899786708653140531734815143246518534005640853019289907636016009140767076874864987866144724164384262549228598167910812920521882291519447434704103619261982249688650183287881228655261494487243355986406705534886676421607699601535508232824182707156181963143431092962804052569380172100643874560935856366533754096152099368441090064234555949678992586527173749829803717638644155408339933247328130954900909116944267647099606051366703401744118303662250489910202822410449800530639392246517643281963200444786431071064518182924901554707466301366585027750507967666944709231116950742845792691986465479689769857442471202502619936276904918689385379697748241302056076304338922473675747538314713417546782974962447706654093819818294053395278667728983884828299114239277363245716014373375263048026324942165455657671976751934720546499442516009891508526537508002510756054326553772723422307196967945272246615973866021741689039122722547133825915532284525152266946972817303175525367108519113588765425443579041298241035431744232764343271370654209963215706364060968713845246245663352691301220789207803854120376020634119553945346946694930916207958199116593075741982692987786665036590825853102107170150184413675291384847390819223564708665621950319865198555690374767109471408761353154871815930278188382078139400086999967045174005890292947204951246680739095172243055169301048038278147544641937702694249327243368125202460157153486104406075905633203741788371475352143957277788274638618416087213432549823690048373821826384009251021559976282492414832391100246927892536253848077699875241682775157981445345592180912352016230923561872620356180637137437050124625681248863511622694756689681361908739138611682781042246641848813774916377582353071751093363651592078320285074878177329456795722880270292533039303562960965509081112345990450064098314626001133976600372981338813161449862460738400410387389523346770156047656476774375309135303602773064948548181815798555845871362783153768046482215248418050024360485920424819532883678403638789956319332163183177839752991937552421965960896506553739404460898228965083088605090890249651264721191096922940386605909137826663597944840783267636254438297382631612385127135883189511072580994198572394263896590594982782417809235047599580728228798338367066100204159537645690875936082090530464645605498351090377847790876519746000574937826856962268923656473689664002376142139140408853022853014229240229342391847460728918244015840316196570370051165037483283612130517927679202949584496107578731219312362792490708774704940277207668639512899595810379182555275737019903563985512824029479351343047014985331634148827241470870511372210732637816770795704244352542402658784910323099442185047657104762926221526379911773502945540414719797361893916413646795825081052536221009567308707059953511023282255406880818424246132905503411246368206259564429291757401920097057467517837870949738346200035152023509658220513234951881288097417013828007277492706073842957867654565122328069601873592793842250298239452654566153768909500376120416256518301073537003907029150204753714277894368805917320302711857789917666634257164269537166959331831417686469920393292873147806545499610556358587858035598893825325627842779752774869590582901784353170386419677914076504812980943838768811633599534749783496325840425665564883523023097152638961085263284139935517370055701579243314557133926350649126910328745743368016847088321019831805725899635641749947999141176464087830985873887601262243929152513512743163114240916595798544231194074263914199573700819368632439542888918921590733557117772516588695449446490515695732422360494291061139881878797814569230082568163508933768853608784915097614076727220176526327006304042988298532360410002404018299071505820953486678658549147523103917653043924444519665134251485886593572530618789331732908416340355221647410415435261375821818187912790652821080566445817008188462120953276418823619373937158454165450046137634755726916725247610255780211198221219161676924799468148510221108354686977604706507970232697917944664058254587841235137839159878685765801747173575840055450021699156624893432775705316234398574651211255669761595794165500430927839580643678562017610936953432274420323727782921264107279273315388054265718719523146147608512412071162145370705234609873528525352639855517375988621522832527062331717710576468344207112184896971626329212490614166624188760417868396533520813403993199974584851636867649088685910452680787306216050214958591937822714926533322860968536505039861403799578393235926809107789054855586108859242822422592774477365117818270019813885316073056803365796762717845777429169997919369629629072997268103049709697061750361784872804915714553234024897008651825057184139097089981443210863274307629534648301060291760317398316298855807697144339567729015294792494892573053103628809298857109774203433903894241774960849678531158757524460721062635221799957944832824964981796880877703560490697406097558151120951620501327709107803913461147510049698677195780467282368221758850855512187378823843550239713535647675312848875111455843944130756166908021940470540250925616388730579959357100709542152424023897386614498430269643615697593835035800086525206634482325093428912815946824688131107670648072715392133808549088932174463059788581127442534488131962175507453904692292260778682863658751566809447504786267227357076953714897264860136280801508442263265972211471187217154458187742615869707938869559231035534774484427102772791812654193912554760484431809343679664633404282833273374185062986549946001209056686091094950352084418389916340306963343519971372234045101839365628394905715741199173881420686449188564896816333551950660009288433325248067355841713374961715055093426371894023253035425993843941877187420881455435435616430348910314815205765886944478270644910995335212843251910491246905432173805106794185988054401289425123258990996231232405387739821014464058496559741586595232058144988525103769306549748931350603293607448181499898201118274927781520113240464303834000930223108054725959755121674670665922944438571075829356865159801179019948045358247172345030176398914902214494890216019868415175873791916826610983857384537652804189009337550323487675887576583508168084898048899461346384675835827589450046648026022470795960731123470870190122939638421992508876853711199854331293724294847578836115174083358437533109066594270132580329543981526920681054804215521024796511454543319711530574099549378383693200170656410239939685203415131733092513860829839610344837564348547094563741106045616668328026369760559410786005301485403212528253223272517323249355788226593959508373340095059845300844861549376083077293236978053902069489843652286792858078158108085806495326331730564681609178514712540008807225793713598591960203211769851661813820572666448797145605056476417427368418914506734245675641604829030981897917595674479970441848154395604702337843568126761771579873748731652445882100164106192876715295197730961257950401327995125123044607173765330443488975837750220067414677801697322800545673449942537241384582367759639957228554593078385191403950474413617589100741462268192976969498861286529855178802499331966356382483829419247431923558426763507319858030301534307486182437832522793357993835685378113275565386473002476743067237584455570664332239670583789750194011098458453031203974160814952863365122483951151426513952136199492804776145672284844312856596154497313827859533076736960149415863707036217565867010430358696114579171483445820548229597116654702113627728249354079462907060140372016903577892399326303272607254506004036460502838092961007600067621093582161548809682798180459087699075582797111496748587103659798177900559920461992108621883339386436767545357823633698908816193564218210955951100939837537477554658607786559433062248491278978754508135580009553618632247789455782167285821565583485741692055782234361503253551913069451960052894986940468655864528839323919612404399594779057554351905822581270246825732160269935312376217316256389732475711628596069997082939495981464546812429119289449321675789363587752365870831262612976895221403712133337137363657009749611146795473894021625486684146352498148656843712993256610369032098432452443637457892832745325401013787354608708578491533913301848796502158881092990371435011496211919724372703633189011799293100919897206605891949918385269867800580939230917378195429850851684668129923342594667076177767558862080126141261464088615606370386756461288814378861816884069210573731007147127556028255238461049428731994983801419274943751006947906095976275704074256052792040373513225643720532009690271261787884195824392343316525246682094254662729793482420950273277702953598156498247338180616393871547749197535049321791743206684340920620175808477830518875496124423952011896490704766018606357333213987937346739149080881235134551377407155868222354558845754468634333775403138713026260714622401171706024010652254911986468430964157219449244602828173252536670353723004242498660648053112750195435652322568738263515606179781774903631475049573203258272282087901580037039472207847114408535302162674050665051256166950057399083273250689952126975261606027252472836652446769954693569475947257566855811894258537772576809839768588064964418575387172908716236658429546000645728360531387581386362944104313462995374182776271853061591934261217713201031002114525657669028709745553310907385811128955140392716687522479984987499178502589268902148245957825905186445482530867096054152463916486748199695691963759719630398096105803354613278943598184350869745259200054859003037296168307195762268543536417311817450957993316477690774640274025905255388091862936860458673952113310468554748440381710725066369101455731473828250535705756613939175526069518689649250344686647491465261560855050379139420298199422219947354382317832230368471373302474855942982638040651298489197127731269793994244683681397971930894515313010228207176024113229639122806181570953761845202287863361784261035310734175920397829165437023953430922591085010805655918772527775548002700192946141441537672275682553321417372014074713478844343631675916143872255943304949771961233842226616048964396242053267797041430802411640119680891010920634290380279255156967953244161928348664108382860544153699643659319691377778700593603048202291302651459229613455802971827243841968767243708449263675507056334050268371994493547326526563206627438083699582633516760708235495298561583433119524392297003987910675268314944224875870597119750135716880807708801638578432778181513027786831168589194611430108958921839289713359413928885648854509163725939835974207671570746071497524605986398966957462315777686048797201480357679564845898219702887616123194701320955924214488355505762723234434842642601175322306182230356585080470110118991932525717205499629266412977350428504370262289723585281626756378963020389847435594806121738739066853543845303929312988193883304118342377836147805975750584066225413362933578093194781966392974235039084805932006978991767883396869131974825886474708627997131325613717273081653340613946256855059072754586450686465652776825553429721408833837278820102890293240313242102002610635664244369661208304176869322010489934515597321174663009086712008355724205292251062850302940669270580504400681819227351425634658435481109593207340127496949000254472079736037916466970319503383284835516767605831036545270857655498002823947822313718870396521642078414038632005016875592892442489164321079620031371107462606935918955818239988365915310970042358174294600735961247432905721092909762924104106566209235037924431392689030306220340787058475213684434981400664399682817772883283068082967474851072684228563950311923967939970227828083290403918794270125640317319867054809038172901093826770327618187333823329928735425179121467416968444384160995792173492547541151695503632929460672187983817798488683627829099798430217204175362522299672743257163080332626794270088346679931237227789280490726906343593863344827373494687180880694508882406899726165871343751874071244353589993574950576391055026023488483193010977628751845555614279728428487603938721304909025418488426977514011626937613955045856899047300398762225695695285227027007070022363127827564720918907236614533831506450866015716672503044253134573076142482529934735508200948111074026427032879613545589972387692438810975970444457279722559558214831857922116838192022376660147053550332990566389961139502003559003953143148531999733956110064596295558214961621580455163249615249846254913386661556613057471073066064947612592513473986724042947052713945870057114461774359248919999779853985891554580117570754584198570746444171573528708831815566490671161372052484212406756883333463263093946744059153928124346865274150763671083329467993079601213226236297192288906112943956865890674688582258888398916501883553307523319815790355358685515578206546821833215907429103474695675663392485415223645371500388621789026343137853026622744881799998738533234152500505075994452916010384924296473792314485199676400312042619311018390010745597693245743996519682211157017225000078018520076909279952748195722352249009245510210083294350604709038217623401235278483873772731431981235331216735074162478419546325344615208289122378046922908509386280752677373364891675275108867186907485731511798719112758973717212220069790268627015397703337623539168573023532778080515008525981753295550807877886672815650966691615839112721698699388759112688648485453452898384500172007531788096127347744030045241675032393038367061707101305504380587173067566833533745378303685599937759086951306218465528579235933917419171205417969987256132453266577397569709321705621938004614828574998937523164351347470736588209810605778865416514732489817870094630138507925592226072971522620388194374843914310594095992584334465657681739689326110459870100372754352511637744161227299994101861956605142159694120635513144859719545286080974868254874524459036260473138064839379734468186624970072155471060193500238648389343756227635012792584941732643662372023278553594194930450011152493701147634634157542640955747394306944563542362081212241176373576970867776359301935638364440288936305078333228036674743943248657079895085250872741832683527199515779265271987637499790762084389463472126203607830817381428047878554978289786227472441770030163255013397053724176828153235161769069219970255699962054642437265357754725102403129943553864594831470194940156026684943031837836936554661866566254708258607489483972825155891603855349506451384744221188275629862063313569213435053541753254622942738570185142216047979181239135818570233638135445357112771171943216604661431015474198215549290475621090189572080606234908802904067854566746372417724868119007420655784822192950106596683535208679087585534490092713251073537813112328600410529188355048282568212439318097857966641441641974384650359754316704183852145907794335773149648457421486085488674529131457458931518483420505854272116027520701053028812182044257185040797177351938264441514303400003896508354760695211261435151449409699151517833258517247989474052420610045984073638435113829829335370285516415328184689878043592175819760111037188260115715212198992803575460838874094737522040639123362898280661873195323552920401422000951548088070610074538656397258970803032798551240570967529948775250348381191484476396069023998008588751011612900600807691194381030260949480659847619690480593217852139982865901636139729473334245297578429975902328892122887617453643431583753143784957460887473734258795875821990193538981422942391794151561315397930251464137986089598876754136943230404870285554197809229580446989901929045589068465978383379944925127160494133779070648657858949675759940506175576329347568082892202911154918648820159214617765449921182725498867656896225170636148321951406030844868842947490817141227669895297665284671870107291933779292824435324313828520635706158076925928260322211940276877904292408365323232151023540753423210947605321017167804788960416851071973969399186187946346189679713546786722440290516444396478293266946358491866150401165503213795823884640354533706750014682450893963508407963388339316440021557629487655451496229849457357045563984582865390103120311995586329789859964274241654564022155269311761821934040528049770013958185699504506269083218442209858065603603966505204050926529449163112247412243985455233459397360215848895956457603560112394722600290911023235818327077603181928957893191200422829722719276801057856446673340203186065797599897673630045155344121222746492117841921042993023304754593408148695733885585311878925724359962470195810494083427130065971636437516574637102498705362916929006099797979820814714713112899508518492003986404614653025099491414340358369556884216151820006672539858532035670787534474101821344997039591787397534962114723677715107506443419320670978481013906119468142996565946949980301501505043949916581936434061754712006023253305100568566199539885210969917968103065156627611400123939441274050406560022170985477796442468587486319694618955103513339164119590397189387610544264230246441278596632014847955273227434092863462009840598245338576386151933644320983391819574962950525271704159411032941605520070797004452742655032910680168291821505488657297908306573320056671104039316642894607397427613272069913773588877646840767260164503796909067376249123181569461325842146511243018088628385018727320829304932053488349080225799962089315382043458746206252362968122407755716676147083325307435180280156466152412335772666545968950153512096407409879933525112423683932555080407795389065135984869314857268748994901408530010625403698440243398573821267762945491927728192707271007595054194545037909180516361580836288870015386724394500702749898432185567647403247143923664843411160620931019601825031780683539857258391335713344930361449170866597972333881453092174031811747752032581674338945826496752752520361126273672109764543134023806587201125134514611723801638359472687522817638356655896188613216729989394014941251035646583363688776090658837696741829191920311945646978094249838609041603309637645292794234193002301740054343225854625094743545517096835436975603565019923851473718492670597233277579791173815247435316334241172984589412910750455504288587776273734066330416039180826874172606596159893360778633070199222318466648889304527152405511746120223016036619219393661579378673696158162597300582128112825576467959494028146674576045577470673902200197698318259700293819541492759081133733236058858777871610067258359623260496001605899148893422047361613271007545230048439431098999163722188623262572247230711979182304944435140335744766397083610698607144570069276396639734920292183462976443818601893766880534512777038481569085406140328036150280386094903353489323035792511739353041584113326547129056739888443593082228303303222116592985419196559797184885423887158089140369301617172570015570614836906812742295502793463522645006869343077482074666368747614762002275018155179697826673741459504387058872387338963291213957303994663054340289132774681687546695021614124655037009126591798302903887348417613972343394556935660083801609435561378553746892071454423377646719631384646526315701017132358397487466544236302779285419045015666457881859979478971251481140502377690261728979301308065657163121212079142907054215088898379545365916435512334174598794809276941751149031174605522455785458135586702153090077031955655899599746805741613338361641691140099233415564386836225866442807940336267010522666936192467472371364090542898520518835100369268187997465647052545068268393626406994422311791299733364106678173591597162898327417728872302052609804248757771006988196240372912716284558358478403404924364878183372432037161878814931836632132424242420147187986601290829544902098739959542872139066776982756308916794217401688235876539750420302448986418896369096316270120557681969929154992775142543788129467665083250351267168466448444547240410124528064217832732227760436916102880783588718437100518084017958014108352816351636038053463076389194761501869867367060501475565451912556348547440616202739383503562785615295889468170169994014332311095287212448270472060546025850066704075791114136827906978686587117792043561148929968719888032590349546258685078645156073721715399533910705457420844700489981128289942160212220926244947274540561035820926425126780398190545265944373751942813217137033612591057551698992847294695342429807232562902588836268426784470298363132949660544162538614748828347981673228810978487694132343671883348297513277555209811183566129984856870217344971594558142051676013631681044749870916364943156667001634124731526314664694470222860280711813992815888751637214266832121415092317205731891117328825980525201560900415547775952404089135009403651970848700749678332743233588694631268790098502313172066141132108607604861957063566245230487204929701679457814582009036192806782139458937433777693126987686811712481640849105253884239333690894635409235802310817255763499799694364597544489485664773280449886762357891730215026987964549842771233602523960136788902639127631673348690099465888102863102237495535995017161877940595427203256807509917230406040592447593475587819231150708603864364001669769358844410773687028457703794092834941402822129586407527063935399304447238508439688527577798355208317581070948268654551492346771164511885672238076006299878184487827005272031293884799820971943202275713635203988800756097935496850722217381909642757568466440784384976235954164378986071667348604995364292157690926961517095282542108602668881287621322828870123941112135608499848560226167435034883052115199522213094722311882454739260808544121534421043454311042835336107232244610950475490308238497623378772397985764670714850727011550335079176889428553256555785689141110539376812300764172733233555555695819795161678765161127158802381737058125843376445496393209033630888423831346474132541575834085328701621478467527366035329814219899900103996516639857816270835896248137581128520502746831434621865421002873579845306419721733111903252007346192981287229517898245111770328323475986403956270619085455073580791658971007776402290351977055165146315695428841424375579757096894223288731250154465913235682234856323088186214869175254442042503115517112520932667209352445385328575930785720519631126771596563353595646066381215699176134271050357968934692560977592291135575500449546809395941988076919375288865024897112468591619511911805736623365074921836732839574906693966899486388125465885588838303308642792235459716140863913280169686706096747793497025136967094921185182680683710393297681827934909048809926852979497855733371545681229119082889999649617367275829677225427182642232866400132724327309242950923056622134697756027497131137749640216045186933589599433451701314743167166992535535262519182296068551102552106617693913058993047044013055539478586631684376918286472343532485938877973370002374344405223057833850423369748670050160028663716354807214257274236347165982592000599527350286342941390667926697237987304373539379577587467043870950735671245544966030978961181945541702455921930096405938055229427692173509881950338542439019622355656650959811895084955834758326794413719433477706441743068760728732386031909376467452918921839273405652449125058695651761156206981250039315388458184406490819305513822068081023933630856535953832850815185286024907380888193971974192664563416144842651154131695628352519591124428382628810103084755454897369025403588236483142440595060433363721723113697973766253778983291481467685475411897102364658779329452455366084629871709766714521539359362956508416867938874745177684647019705601206291119659392716942878200104738422691208420374736338838627479266343817074600861816517701247380026891028324861454672894643770339434204648424196702561879164897251838674622230416516000185643129965411759820850056332395241632046675535001335372968491746764631941349922374424722463302202185954740646378821188234593940899689958667766370114295285312707935566323783256196678213665709220602831025653913540119066214292393816411208069617216043809938799300327913519396160545906725965724244388667309883949480405001995869954087761066913890684279935646950245990878656104815262619488029162203772854404310761915233096761345657898664927602310346708078390992627547645000231115988151525016675637395740190577034126134204163590448083907653748582777525966628543162988331420747782612095040776043338836635802430892448403488354102870614733963283464657835796697459258740113463457623216081042397622251689597347681742851273772134888431264298689167069631623873420014694898521423020835510710710502557188462778564403760534154873713405703530471604771067752932007990830085796335058913648697747150937612256284483514279338752636745707222002567691274834223794366061319862676094406210515237198485974737929740617724333077735380254302218943957667695095667279812485008486264258848457967719356146646462601496495146347149006188672601302167481074660541119266891840637883531105630441708083578019992232956434743032959791358894379380097270442582150692797998883144672532976896720924331096787787043725470404969378268535332779967817629151867127754136572668369349108729256606562281591526335044669497567922949764583960403124782609680807632457291796313570638055301817950615589346192005525020421276892047265235195908441637059762275805273353990572737729245898431134662089469356846280770879593423614342618357397284121665260195438481774502442968737870447818458084566985918167574593630071250992994559021579797126797928681418361794529381147438345911304949490625457775739657448250418936610501567223911406337904426932767178357282347840242922904037674700397134683438554640642707102611753009130847612735756388934449578014367197801389826534243776067204873056592069332816973770772050673214000573675534498089554053868887867159112407602402876493610914648563243513922828961692053847422089604660805903823099659189334258907900622370408006699792029798194409277173502701273368468208673831027079479355302208227752154460927356207151719553874896681908468028606626805266261730739559289324327665608205589264922811457207893258778236808279305050030741774353514258764320918185432669406906760079190821342039636895309452563340221307302098645862976896554724865262428461104736657509041771732052323741407565848993239270868216794264326875694735191217476911115775407999719992668288850793903934061031042132964682504077064770521769095572432685966471769863829141153779769760002581927239446920104966004285085470014809180810817266504567967186688064620584788093007116714190784971339391499399525524545209494650784349719810361428778184033220570694639515476946972767747706424864607939235195654366350830702520798246537427425699694577564626119873862943453280541508276209906622774358444862703767092488431396731265635680597853428581984460900825022815051063672691418876039788319773186265729314218073290550935385624444888087051585120556194413737032854054757221463407137369326552108693222709423907542994089944254445906867574114322524261672343521912782585438845595167978299328323642737457452544546052939896806263513733587214850808820205518659958034081488329701253781235056793050818818568505731233257555542419605427358319447976432499228822660435558523349606680905502905216337784746351934749713022329493965510415987839740167516618593605179338950392466205245511268837311120785257244245799623294450168341713595140252095179264681156829820313618827396426623321676441524695487558164084358212585044247670699693803758573003905790110515414779557179169312729095998221364115981595201458613678920666663532183944579112942949372746424648239215477975615733670895761840575322098504748583570891766352727809495354274482525113739382912378335184147182784881809377625946725543342069023837559765846744498857297100153365702593838609837888370559661656612261881245463878074036437755829259340136451738584462455407649029616220229244791778901424327249245624610572832994427679678314481934670551757083502942567326335264906514141210237861093296718863103717170461762893116167259029067712239858836596414924553081207285708410066076168543516663530341382801133819677912289974126655244951348338934636181282256499053411503179141167093830767768774232569803429140799802919107611396530776180407622194451519402604063470356799353883274378588152011080406490885175270082056238020512864218424823002632432055997998346926232665644701956357300679539057244150398164239082136235132717714586191210328112357269933087662553440894151205179902731473868182626644475280406727464085723801550389418912595893739926501687752743769741533748172422037707128664490771162603154417119414108348606899529507444772203362744266818471196563615713772424615456070479650878312900133434911136292975583609060175949453796861506817908507607566212738100117918293076118629911635574502602021275654360951138569094815424476722607340061037334261273608044855312147578890237559057711317455009411859748652962705885639173897159515988987014175869648654185324863779433780506989345553880505233124949841887573046444733144459850552473986539970734623381939800857730435695476169828265893810030602411218665685980207253371656135335099218859560107881521955992984830737114161764839950330037898824790345410532502054955693588016154598918936886572124748963613671862818854644786179243581710112551851317871774504307353645029761507292301108330802551534951869294849716900991730394769733378956502295614877878048366582834827540230192303690385819788534303828558273006721561304247679650997367389863963084595330994467366005278953510077510623540518095062072959121477879266263385428792589775958630580646504484526239133538342627050430867009467036220406339767252991365187842306583966702262580562122210733541161850293635641616655779237766395860494693244550805903617986442755741294983021046969861644931370103702775084860153961665864512853545304815598296382985981545562592486591863288176301101499737206920153869877418621655782087885028970856782970192695827695239408257958934666666883918358815549069436830703532763207934945109365399450972042836730670351441963155288753214822189325967173707812714051334747386080963694563512019018439160557338408051663829148862479351379403713197966875856259482942074632416148196268288849800968875641317790265769105550802543228031258589984582872083257358894763134926062496271832200731813542439536437705648192953995700144554383910878449144193680471065163474031170374482458505185788180686628844170793566042698003163236349120302919753700996010666193896217318762267071826314852284417279433406818103101838417534997349697901352604608389864938417085293469279158345594247787414758186260672246624811772249856862298974404384392184024560360919123698959782488064463195555559308328167346023120406670072487747599806326845273202557015621687662840583268894930505193900504950495870154003485427760246248588466667342385974454567161141984303835706397426666703855560964523903570201073652328352769206772213666358574608076159948257589026155644286649673725692080468511746267024678766860322879651197857616442650025536622079972039998656146915511996591892609987569195721982755095064759786156264742355786450113897041993509976406676557120850295842115591494729075235534992741008512949193855962594032638202524988224921444475588270029003679518705235762764423558418333071204601246299399154841958135512551467709344714433092476373215011861279838185602557163141744264421039231841248615613047098148024733881256960519677269438321490104652409981501183394145060084222913194160995009964496196330766171680279966145964908485717408237805713129439661036877272697904349031896749323216657233190372154146103647188424635680197125709771242045599277189401630807555791531803886385226329349122868944587124407187398513109807299600005402969139086326671417923649756297192502128839909708484680439071763198298386258976031273818102754934261012824458351039724617260027124726441028393060367775439840384623746557117766042747940447110253227526070881915259623881035944912100259215675509990359849028736639465333622278560198785244807812000092267255630431187021878325473868804409188331048255150339506237035345911575694871584408122253546614612133683291417713871207911325632996961058630638814550382930706507642500409597837720091354284328731106694070419993253056831695331854406218096083461319779933817165917065487955211443993463691039132585349777380538014249409345036276165813689500309512610570841234456296013280703948714675890101664115170393932146989030266726605846735059647527480561780786795393551032684912986766565426312732988529192700824708774002213743115658696907606589908547798087756486559413089027045689772974195596550109221935693238497816225875176465524209255740925717695468860519010003160801289728987052861085422973909396815077500965971737146008611522092622608527082988364373624387798127745117082236808061077077413663347955743533547250663440979289899184082181502006262900581367815452848577595273359535974840872450053882741039998701952126233169862828034388497269141695862950362027229748868984900397414716167457511413346027344974235505878072186655258735064125308324573880356085157662659100847907204770453688975071997435665063066316758761134751644189050994953044117199851499167397662294269445166214080877491355367345306518299977582014657530815794081675035725631308268975276869491317516603141962741227162095782997451259507368949976478651309830445539167618793163664040969778731171580041226555288637091406258178846923903643987679438994419596332277331510624171111117589582042138226824715855862315936615312894321916548928211959762276658143596743190469318970709546254984802349550186923112936640292909966700863878400428904420862483661779064302063305933920322434365160794325702465868466897715343280772170987980118148551579281644492135430015252996137723601077292108595131459952461659422716415747632365702571880611706348762926273236008312525699654343218937450779674452915427894712722894704464813147441242211665900810057217233044387008737360533164683029287005557200190699431998706454465506242821727117124592068124294810550504047059241052883574006564845472456074875624763472596201955416308086991308656786967875539700812791176866919496838135150988085209582767929487854818158433903895764802898509257246086253006148886286503065719865793656157955982572991894328947716189620569354672805441856350184626344267485715560888443376776775181119587963168418536391233749766123771258705575367714255354528010236191288246608468567360849341333119579933540423335773588963780531839093444280492270352162230871494436067300423117979682863905171951575052097655902730996709989020051300226332647381845202399769112952460615572933669965418267875614644743693887290887894259922714756326206666732908094698629295343111076243281643273608630864133864864668368334034117417243361379086047880568004597543289332721406080344475032843441146117190967017625398428226686468388170610025364990074317384700086148176164319642146091993738188776548270699793984153938974909461030806089521056237233733955299064854565477711132351150583518723974869707635229334354972561003011215891267832849264645292657116115146530034496144130407078693714179233116662476964087635487399017477537102018211428142144824621320489013665523144244134042877529811835667348556593691796255853153675107980671452796637458994210311881547454807524651853170218249967058200928170347143305649061103029660077886218643958620309126219537459319155011169133155954733941172086135358840520458592736046321982702240715420614033109614862990759081033133065914757495394365387018430653038342790401430598298810968662879396068421340105866813687700862550410669655362243076097486920666744068427555947082594037595454393281264615197860109409221003946623938100024885780821530539641236263035680445023302479433432134418808431469281618392368201869189398393330782579391518765988615852658830313054820647419923861166216919045975656253336318446768950752992586777308978113220554526893234119637741580704297917296184933765166937562151464881384172662171532362271080278418137745960978655724521653492678760880091880707514451795591893207464840761990517355858488913303280635078797052313167676931577373187959490721237263799259715349422416504918609591639298051537541530560108354141244266350884117088954264409770274228232128737818584813773935509749335551140624466436894204535523793022955699025688892472476482856987927771770439584369247240062220941325554943292326806265100656067112487799788039988221458634529591716662481653228741155327526411248966562365362717905170820153100267353958824702235281639972401534641220320257977808273135512050193684281552081855499751491511016991412711608445400907620830051416461882552963462036087371679019058251894683895404682662971748668008393029512607766929924069435225777438631812759679506943700156062505627855914341512413394030327712953253107118617480257722349489292521980974308952122314619576662075923556359726690767986661233291059527961018343106907702032228716252083611956494811752997132749730597835528521285785478442861816852571073997916448507379463019479486010937938364054003035089249948913801089313227030643660409213615225175033647591255299336234508746206252211615213453346405907315273240795593956003274879097386942606636143145093479579364252820760576736682245561277978857985090507465575999523325768019785164732223573444661249477999064293351032029241706181476957105077280191727166542272028024548065568292656244457107484434380924735583240595727928137009317949584280200678166703023483010740547421926860540197880276706177331169854901005325265807003919332218325517622195004956023295431880724870989224933073759045534887851895773428251250967651971856799652910171995101746478143027813335716956422319340757137678346086967122438121730798969383121704204911241451586221205738198926028132533616506332709612681127354457645034386271837391993894379695856116712668383393759855826461542797813317912057829123789989227627725615951258427540001446320445791065468667324140533658619184280422625821688273710321538212290016053895557458048149707951428828742756657075814826054824202210612037688341073437044616953135658473158464995233288974086138926037436545571031357309787030515797674186488333083334683061776199649533323434059168678388645247041275531439579402788421613759684918282328600669289116050761181598098057229676116423560905478275530999022836011825568757238788125858293421121206435351362342333545480003763735392284413374664475464899727153248706234324739394940743678490417272542657426758951827960203343622606184340654829291096947327758106315005802505689492133983705710619553810369925100616045006231958956852776338414533870921568787580321274603112849248871469759238966121654100784516651875999266072990204583456279634204397156524456500393326975841615274186890528103396227728680145702700318962787707751372895137492853891601345118147909121245542835114507476620614502078740552719831064913195084319393794051393560862448712063282330972563106568067159358712039921409666332251191044508321653543621993777585843281227230971764972700282533520236033469451608228728472752281846877737507229883391318768369026382449348885643460614702141015933553708337592611935438143753258368050686926516021319638590042494502607779328982929749310257474851915475821236842755637397781015150277718846739673439741825642715865300921367338800791231126616041891722846890638267871722469773414700303377094862942467836229172179125739785889572304938003585912363996896312161385831046483707963766267992976156682119846593415593391674446886200355689651840618965020995787949475034213451064682941891357624099495577188337647484493614890337338736408448766512857990600569180355802175743282237209829640541398491768614254113578019232843223566220125337569971038210371450536113521580875443258875177314981234159790077484154852468747186982843716427756796612188225898363586461233727087316163958782993815527341580288062228960322744791973151341958948838419529290567529135828470288997290468242178115881254450027577348975661069369938306002844248830408556897564911615693828782862045901715920661835559705573502183092691196050687113637921989163882647003032398559982585297372067596850212232594796092137013315436900473475800526697316366280876754686843154412005445181096396331779963270733270078424261594328719836710018530522110004993585898093472727826132452225547446633652346902607995201882984865792935643341058619206357658021349497123815423332633081824963302038636180607430078936284804945727476555968976904796307725843589609723556268852771769509575485467415631893654443452682522268733165858336717410453518601689739003705114038721607492565728669414463434281934220107879944479315289080704416783720859140380787192020468714895404296577827423277263006754826839257204742895691916760052052321538211408873240679725588369972297703978174778655445133936952804673097919875464405405015355984214901764939708993368236817978618263713774776189924213964754681521802356570084650624621258009338239375893985352553247370307268761318693261257733337290274919695015084048179987728373665255064027193614777325988089081494639422730754621137974252544785730656206162327584566336871604105456555821963228444258001613092292561169521705856174292971169937298798552686573679816223076859491733218637615077351715337805336399472531737904670385755272237382781358856453237660838981202294975179584990141689663452187860835838411893138472832576864873474621953538997800875424150586749780156015931136540552070950803525500481212312377181521072980032310175918378625405659625399485447107620238523408341501421890183896302766908646062889973158305000605416610521126183324563088749423761321117383235991026715443333980903010767519215606860915099297579489847091340484776037253316486633273997745741707870588584989036478250500607565276677666730181427983462997863115472471904638130827026950271552434583777132888840113322856123276424758054914145334004307351368200167103048967407913220417329365588638081990240250424758979906199739449424061393859002043745081712616036278391241147268209085690526837422506891099193767722077768737126770152907129682261584375714966534629615403528980698498199023815881324900728284203166454586451867787181771772779283212526968322976641245496739715278796804347658957612653385245739151343813784500518738591532963414053689484439722550801196079269028116229367043437115837195386577860034194671309665344253552356135039263743335590248778009316758556650202614245175520231051803797924160186816532721349074474187926304637935701957254656870769649025628311394908306598139258771657534329051829883074422093153945626718913650932778527585614188691505843112818062116453383461456499861027990887831599923320834970349900964482897361997260841303050161383437573503350269679199100394576485031398899804053476207979951035562800942711980771413862537468942006711292903794021105099312881767863557121288220584525902329882784488972855767643376551320983720845365197273566294540752078683774825993769508547458537785440151866870321270325108378857553525327422467456165530175294697049286034935237663193775815312691121571250545649366284046131575493234361611438689415519179552116040327941387040597365968287723555493695367249260335274498928882204488684436527515895468955885890718317292891292345774428441927250527684755038702706328297997585388259938790678996367663472636799709113700050045191515070502085744705320311342837530396450683734947465152543161640695883965696047762481007698125762324027656324714558678116653563357384133203756328577111457947736117758910978449597487134549945405008974943123702669160022779621516016443144632155674657986969134302091737537932953736310293482594184851531345770064943739097642085895731774231457672882967906750299223152573286983302634123352631634902064904297082100632648815676763242544468703921333767894896001251362652354725651702225595569986284251088668968471078726001673324221562512429272130805593262213072140936864354996898787430352676884922123183449241907637471574744625215974576466357242752795222891504064277678656611519193319181783056716465304813810106667342459156864174457688390624192018654102252669706153890999072549984285484195668192454519747093061422753151298445309182757715136118167303580932146032258472352811825504706062154262243245514468964572693823166555250959895041093425374308599979713700425885834030449726710962996976323360777674373479878835673010286471384545928791637490145406647519394899352212362474366131747830486884631516036592243576762762344666539589796468790552923902702010757218919138214831626852490495848675432931241826413466272282093653277283976675572672897319381293419430572396207232920071863867466703063646013311111642546802512289430533112509853860120123607044969978521095859875329303277162267982305510767692680002207418849030165005038534475971018301673782681943612416569639252294741035743185176583656034123276433900956511863260791733899126277207213516175222255241829612433962825182328696862544411862381233064034533155601640695747232038365145663557498734411685994161655182496042597983926781613148318090253450716466644267026276118597649132476829527278057032238343515063672177066376374024903046590962859602719797255378001418201998101813981259504234866248344043921136487236662920206393962884531448374890102608403614840731200674156229159669636694083603264334149637120985454752501773669601971461784645155559941672637397085864959877953242158328218410939164052835679070686421078034660757197989148155400542005107300962796234727249970112217781656798449194332226334150338567530824467734104550327428561157455387421400071928430177447314230098365760751551277796281014722053066817420350596794105098046656313637782517247091409925552471036812670513824675211720052849429521974886284898527787835621060048781271144063499088164592445189801044293570832904722016072696604619842607722478310717143909349289737950750564710538029161874918869946353013572935018732066873115017315310912967948625497958151216822075712318919091383383534471023659794480804712338827444035053467999529133546094139272844651391190836076226579839815642463829159990441628452768189353279135674740322735150689098775472181557499848834669462227119434351395727560933187767215742857830330183042225170496329716122968367527489832947231506974978874140021926700672065677292131084935729407635928956182812900110978472432830384651974375857368591230981783603031405282300813026631330413992533992179415764798534708178636113772001408570838639437703529183497403741835116223700401731882693932630875054875664529093265665030243944536227279170800381578513252902365105680962589179424001638714961212169469925442398674726206005713115387838833883078016537883877521159311944935956949179394057884886062395944418497289287230849557926072113297712137238869698636023682916222546471088062109447913239901540667816028934694282155062721260541798291781738248919973382953016826679061778013533650471886339784273533585623279185357977922662703802445696829686254911874868530549785796598918486218623748556393532156304899283486556154154064951221046610376548180602506765491340332738629416911776263813834785118364105699966094920204489502629446168466855106066242088314537401268779478139859577769903987707399417032565319355613000528143599456061261608322358990324895659567527576985324574403560761288607968185761977178876556198523752744722359927202060238916718790814708867068302793989768378023337579683748471679204205611884614435084238369737859482588497825952141431676898495921319389412875069596149193271147035874533660814943754697142919529031019389435637183593749148307423044934029596281116652389958110600093862221622655252976610650745271358949733447407281673926348622262971347155532936244457994650823197908769074458525370345709007744081534167863870148099674124003837808523427397788174691080535330509119443313873040838043067506030686269532124522901667503856318585859317437769494157410810572749444384001399152295292401680667458424696605569107697596987310950784518251857689800093942863712191016698078851710571144669507031273706962004730035675368235205815249186823908397408809264852704581680063915340134937352547150923527044161926572110042345848085322398093081970121586417329130532589871715885516842060650340556996859371591562193954595558557009347711681179835995842798195564356365309389050941964641889243417661217711754573714429402729377177659183107443058151531596094826350633655723861413920813075414610740512741348138890687520896517547286443489020150187201836613841728079882729582018977486126338360371109414086804414638189975514419051152014024187628978688233866528874956474011072459905537992175155647819809184955876752778280803822629818043941563979561725694090929518577447883651594478720682678596369454763706238206696202396620665921081278183219127468081453031421779867353368489380826681896912999835199422321272638771597576428521321515883717146485428812423122468402839056157796819989785562510271070628379399431907357979753622873719947845210383168668521420822019266723155810117372442375609151489386343666526579426037168289281580693159057152379480256619126870887647506950850111370257880233381801903021002975975592681821635953507064188571900594974446797417420252130947246191950277213237247025702961631681464762184643644651799535877759048091724695567396794553734971032219369455962778937791938340697253788415502062958387483096195420461546990222684347461767711319737486600087935443607302433663280865368473350668707408900184703067698214753133731542862215155131814095414979724670676343697696458309286795212019941406654043266683440819686918622917654410364920807857292423388755061809836591222653797288411120130691018576030498329532694214188425942866214695276880632082571964867134224698526419419022236241186339130284171844724822755723379969707482002437580371792180734202080536935740618765664169607739120909813494702120725197213699642344209305478465069237446490420888732630226156357919606309236991602782364930003449747123779455951240858239709946570275366759813304777505050536634574715516558372773100785781787153031613276848925357607846211478860351804029765696058486717567636659308748016099927950787178913104203849478943286084797051504283326524571886423198399932856342268607883443745309272893146092544299060787111736766959849633062177514884899337787867859785265280570548661217379213552124702395325608190678852803832422968075544717437748950143023150146961225494895338362756944869304674198022922555065087429772758076095106879827109193837142290968268728596321942836727242477443909060036804852784543854819955828743344189095523099265929588482897771967505439205771668938552397736092582090693430578986742357295312051485090384652493140068996173731735816222294455416149357871477506270376192498036384400160913611713729557661808926386467940279365670385305779912988573944783757639092679443336505496770742285963808721870399582714758000440222404214003303590360960548004718847304678286807740989832225262453168032034084435109374319499380299081241792110895423927096542582195848586679924115788447815219557498322258335674226798960098032009354865108549467676713405310343499864349758000215286835835721365978208435732604661260570464409200520643748808684041999585408697477316017505390253064903620449458476440882040053860571525182217793518019414711660086532948281060021915944692783460379829268818677784883782713148160668128480874790430234200377130896464781785599461837510620688441358628450630346441913942893762354742777586769014678228907006092683252250324639953337566728997660254246597951963260902742615157481865278192977983681101331339651625793318419407026964988951386923961261275369592060229690087420834720840833188415826838019383358973224335136412244321174979404766824167809635203566415433254150964501977910541460943749815990445792838028880133562481814072611423275972894824141887025957454934254722746989976877162316099322885042028070838100814091887352633318358420740748446573397838429805347106002374219987211762683334909209073865337959074928089283030107207550472450851183334676304759820661789998004462744803370196555021320441396423674506953708781697379969379061637848201169796270721270358480479488580658308963231288673402963848241128765952185362411256969749199057478280326299861231724793050323637705845698785774531610386670675558440682408910511818429025803298514096157331538756311438547792152983663838215871358824082012778384097362326475844352630281664756079993221483927156321249990837098930946329559859928728433521252427433494379023824949445785164936127032642339094544808620028353526261752981835525297880465028135399112847161281153414460389703165467739525876538384445746110351561641809273346254142217903310714720310599294953895958436885773489495225982103831596420623273071483716691798967444541841890372511272835300592982739374737571099277652356370360647348724784839684203742309758998874387876542841593565973588345060936129924492587467691542804598132815825872999110300780631592481722052213206010771492336601003182710066727266488949550942336897935481055796423771544954137177407995177501466695465574100801557934179598301318715461713838220333287263136997808093756281698575352925390236568114358655398284283241700051641990051764383512005756933430421802931523685411424059868057389737717209032816486238395498050084360235358582554618855942442612928921434147898267094176760452225134929872997435333820627622406331004883774527381188722581819982219428293676666000040379914870018568674554412319573518712379305995148215954867701054047820258539083335640618262225208028648666809763156107137641890902360603954124553570380667535676524726680367517673845564696693596022634258001555720896238403647713214296692193472420798729629861675796746082959712748570679034670391578658581112738257432519039782995445767430575299283028634186242545022496241979163982734904359411395898404348957578332464822165249725331811930555856140503105076548589915525542652886287528895545773678742029770378468475636642494767084854307354132840361634913471074468329858980951110201242544884643071227174886586964367223751257407663807577968593851823215803790138851324567042252785387661013519568286523394604020035673386025205513475307900746894526143616381246602094339688182998572534654355285404636104131214993769216302614831518234694209627911549417194660720665528440044356575326641438934277220905575184236912080347379886707969228398693750888161460738382464200081539367400188625730736953499730836725281014943043645634975213545319519500350764823703618453849756361633974429430988638719898808188086747495831760222984672501959183717870015464719437744024587964419343305273778617450245249707149907000518726929283458717863091748438785506397547781397976147102974805258930692216662225235373449011353986266028141926476293709768013187204140666876255459542229249384946271177550175862021378876760029805157411237809551927818159082066363654035686833244556620095160463375225688255854582920019306381533873656517945743702588756264732107732276466231522699379582538162507411935992575434703207518963927929216230912990259044551217209318966179934694954150218683377015220759113008886890238579915282639867824654608874627852622681424733188588572416651261959000329224404728408961960264923773072793032869835071995091733622206904266211379357378789633982192711117924375186838175762134729227304841109052893127397566546440159910892056359539550622684903481778340163888074775859106047358664560729940094200063120435623081164981455149655513005854611735524052167155666041333475875987920445592175677563283767227690115416492112246422360395403368455011342654247448989545996792036442429665248273506879964950157404621482511116740163812882370549267667972800574632906194561799730944487237467063062834619376926372843710250629430239838747180411277944515182108640001558475791284640128739950977629770826226345882505207818345760505308157127681646160126745615131039107176973845578732241330030005534719511669012581135208015630373046908093097927353658564913574711350904412759076490299193882008262173939592861233365729706646410270587838551318934657962685933047956026011545035967710140057993336889004022075384825139930863716343366007923712406457617650036410612205435688688177406253057006023018982911091534071177517124423703643637158902201162317102635650130243991215404270127303916604348528921717678005443537960268144769874794055715993778356399662100669274192714681089620407361116347202589862464744081961204033687520897010880633542844369252180174251211967856991105833494499916830944946984707806367546667767825383723040528489291173054802989310613282285243013974421278401082297992256374991861619095395092292352403872656334962447446903480575135659465046250309625011185996363024036541878244570740245894880605074168390715058032424183755862679604489403118420715618426638993005968351960880991550054081911609426156177996494555738936233509560216938453029407415354220170088505934108021537744168969765523900070011310946928000344435606360766131030272873892742266524989909815901237651570432773192185028448811193320110357105719444387121835232255486772644086673404544135367403990104641792881141327732957052332339987800916026700289290467003455063211355182259645456365580270462153147060321476780387345442039887757315364197294374658678276336231119864674608317162495938051631791016021743160036372135135506555681162767164832287962390037143316348095868924384711690483078965100591104965015992831438312018932525166768955897310518020709156128212794785768231503099654870137801420342350862188944511309174155201212503779765726305117588445579181661243191479349987937188974667677782724332922702482645480284999856755494526946870327503783940036651442685682081309020949057899622100814077366965566279789587599381603739294081898326023119790605145978038449412185507347234440464136333171482978197669866965514005181845419763310556350448849713422360339130058979717346782373472329230517388505004636025681998062728258112455591586015018439090409864180971710075461884773934911273571127107533095079036197946170873344664805241788806067731106455884142874312055368645075413123789205016418245598529170285529823491756815198174953565040453735880040973693100210161974099408857233681398906852305802152257830798584444988490026722154928888612925028852813527173780318207628086658198702133918612113360246187362649128598385704246054788599442082401809197362711751540474656341180486288643987511052601860076320866403208005880981246682872769158288851453555992972145134318817716645564502666336275157142261212702829023587031467862427302335998951338331069080367912289759223209005353398361052808487974347050510512429799469695877329008120707972879653583923242657673392144380470361706529595672993234416869309201866257158203504592227460113349178476867831063630236724355370932562694982307261863131091050164320612674246086791670377930940669607135447772041240171387152541478713374566022914274536828100929205588900795084837232678718659556212837654930431227464459773811156396674092749919903096783157044379273964166675109789264093117468241878846539287943914280719137228194506211199604942014167567514155226569328596939900541011164776752925649440428795835710036845090703458019087499993092734233237906647410746289811710104027788338214509831606137185058427903895394961345986945534332173388380442292218684824710117148515834710609975786976196816012437330230684469271055789326166001295993498597491718450334461056240840010952490311291513102073536606699142509744167108918044279263850255766220625664347056888812091343129654781619845396751548210810244160624449318587351214286010858155871519419397655261062478092540814247596466270191943785507186983496876926575171350176402003599383530178302781767102202449288655654620105595674157711590472858301654225614200548268513719162768982527266000770336835926768927117466145886443256295441705121686083735716597610278238848606701446329636821363730331746487176320142788006742493485684457268867825525550925006154697582885492108122224766822902775116822369502543987324561861209996738050145752145346770108025915298160421223116328760264578489208814442541782351787729463684916863787103355988029352879751316600965034502135008786148165275693425491575825447858789779004210159280113548097158154932538649021151389857756639270582004783308103193586172095928503098371977956384664987334554901336566062958993312667035425517958589534255685222167057206373166820932241554656528706208202685332600866580058396609069504970302254534936941843479918148540317521615318893601698982971238272732961881513540418704927348526265666408136486378871680299743419921840452670036155802038750040963721886553766105646252585967623112091455580614923744622486559052594146783412301336488120864513178145054641794164567238577509045217705499758332360916182468663731199597425637392431936836066334687888366489399770870992397517694293270431571634050583519899477212598612465956758031364020077933287978651130119476790122849334559372745446777306994245626020238875493090223357398303966428565992346239434307543557661485851861284466173143979975977684470929792773827647093562794945093757497580940229719554370143859221216058081004239743853304543467119143871226627091401261538446277366108865182715566402048997387185384279740871780398587857487216892636293407937055160183714050877149628160787383362335559788371360809666315218932287510522740371018412548297128568954164194927943850639454838617154528632987007434474646146503414460256193649389255719342320962385728409362207205517646982530400643228756038069773146999660101861018409083474528089280983391290914925830365117302996765473925151845027724484495376804763886401906348729677479902124856127316639984427361862308855173182399678817158183206309699648514729573723694647944254825014483727864303542669964431539815277168679844685777773176724214993063597651813595392768068710323045802519156036464184552722886148251459740929971994529105998334724104185420272085136054307357487622738407920016763466151090614719108133008769243989050542838285871745960020088457644825190313755480860179403410944189883726523194071831370537998352344375954898132153424084287482442809898880471971054529233998476551717751441096350331443841574283608079013413016396157944559087366278909144275984522976305439340866678264314016375717056188134506536372888736845773001897543538641536393817376290182296333049441891940659730575385121339862756462498470327918415111491211352501046851190089611707902188891880624882538422836411906558748088381207312323141344233353144433609656271921082476403927206088886262852588519928301333058905765272829571426194979164995894363177324749580959841491639960872405594058974095185184537010842391107823544795389772207975226175997379931801766025841678345852154531357858420969913069952099187860988612444010607411986374471530993510334286163756809485035927570474426589679566193382876884746673876270357798755596549401466289989209986971648540723033988839367611013303784045113078379970433116053326219954425770307103968439752796919730812802511262236007775400051308597498304645404951309704803426138354091344540564134101462193716056552804448400880453039649492973826865022745282299484577467343378675502800997560510091528866646587902625776895712418793158394872973887714835384248129311916831606013543029978483686352773120290302971077830277473895813465194275616066742843607020400238768610459207769656762678781970656061203397304722965481373446191321988589232186743912322415257741929078225709141401815695728457383362291885079486832949330533593193572091676364595581367992386963556749298651132482713946073162855012413231173726487739829651492342674132247288632846021041366966644267728104149594302767238763428606644807904842677191598564512608618704025727442774514307901736151561773151575005988399640141880497306997550669101292407530374958155784627683114837351610082642105686878635684085892011926825243703903525176669009238408264675261709260269710407047148153102057397997681579182981289235304146491987593615632212451682746172277968157330253255735223022968339827799416034826498569382639736059056232139294855074276485329426710589699458926421441196000845353331145040686537313195714843485415041517234706871596658893468794776160506525205325518877942762000677929174286295148036393715562492149219289945067840972054346001956298474409674862465363711302087381417548333816616561518511191134684732365538248531987858181814501053869413158042894105310850262582815712311114555123885490445347986700257077621741380291892762345238939140280529309686455602087074750296305685666872397749985911356208348594264702238540331396655512294052067722982107716988749068312321865667889253484373928939824303927063104601678559287530601787022213306811299142564872664971680328549439089540115982149377017032767620929876361529476102296386400390994665174286052716065117214013250959270559294839736129981798102567138533177106675033131782787325121501327837748650207033135506227558130481080029460517179886418646938301427222915794350397991778016490528277130295624570910278494445900502500126475623251401612039820325502752696951967074235168421191098209014734553452473851605450203448865261194845794673910324946017546065949133473564878481268188018707352591838083903679072721987136512691128737953771599527413426674052986058267277760841997469706419659029959562956055600022176378828180964658424294431160434101540324161837112411833413369086040738182186785929660060152609792043026905143222568143657469655420071610492607105516213629879300555912132665254334472375154831796125640786777424307070087662202918140655021360191663843859998861232751529035298703495321075289690611404016598021882803768053487149020830871917804775313608584141065967519604324017985891535324434233629910033903677261899140466810276148578721543032757524359320503117165170343024273760823271009896214950638496910029025774167136585044898207551353446944194185199121456681506843573075876541271316654235668122273722233387587767393622874603410636815651866493228134230424204001730539139580450340596804482575134055549046416335784381605886860227991791515677699184838574581978981362012970538786726606889518850722007442610297073712835694266977933820878091270526740228190344887810682804959591079430888100469561835872093432323304409697612377196896298211991687870983396113452620176959400345867383397823414732191382499749914065896773447434028358031537479848996761924969985182240176819305210022455108578603846905687663641289089751554366506561650619221818558606395256352043478945916167981232360574968374823438905559643350429275477260719321983082538071553885217730924299413144190263558021105357988665362641510146460711985598292895490755148136944093607176494262910340381718216143960417698528173282088210369061259770468314059876589814268531700310662742574082809102331168159759586548561781614606434476519302871734300921800100587395483454403762764601382427634053294655808884773746683625616908343097270069974817824245741942626077709798914229003500843321192397735909559457468156646947811010103696356946867890309337571102762086607087821065555377926088164133752939155961539106238153813148131766276032319888049792167796110491023883227506396471007696524744146098226259447672975844810138808410145215932988735385180730698100946012616786893086024378498607208280266924451098153916959736018213287944079223067584129848490365630343690870142583141989910541398522693075466950199902772011993438099809657194828591987672414559171595955750006024391473464999909496228073208901853177416621570733389283886391644137593974177979961906452774096579769282536534878288646972253655754525228031688471039269429944017744150565410839248185380972246265514689030002078212754945052791543698175496661875134783191865741255835539740773733416015611445281501716175117999639940611911008630470479571340953158279114969755061425259661879019404745287573343889299080029769877893086987339902732472293618765193297280946392158801058120917330356069608825523217970057600041590448817939229844535803797460712947076082006515168336564512412811294002079114608274243109520336002850578510317812969011196732086099490036742606578833236759989031746784188273762112822615043735782612823923583260235062150253881205038087610757792341102006638835964616931815750428606621212402530812757970025787253844905787402407677517611828280220570076803317314373322249720895322231769914830922918525246749051877165871928339145127222439107688038146764776825605199162428994666415868570033589710058172746117001313172720152645395750670172388733144385271949699753724585045185112124532376009243047239954398933276325847419966021261252980566184976823050412057268302788959012984790370101236347773267203908107116393032892689698589802760428530981257919573240805314535999506802816476376786162049908722050571792632644701380210327447578509598153769279437353995599069201108684572761587374741497813219922100979463616836883769800680193267246356331393619802284466029082574970887611612619391798898914147203605599369088389305805359369339114503166658376790682533810154946336850527021605286589896942257096353454924087953244983450152302310368334930834082351682915189641667157504762901953467655050454331891572657051498776384149079126728380317905379403906551343242579313304132494807608810469731249545345457856264329245753975443631106604365289403443842934131029921856386196903953622936190101639935285350105729932771839446878649027719241196947766796743216916617401837190656046390007652119611483507207555929101785378770569542074600725347546329875918008302027150297749789152839894533255407195166657532309264951394211425540451153778645696623468005001055766568622256559753200069485364386223037984856936822387490319549004916657833974366986091833919987237194725884528872540128464505663054723627109926427857024582922373042200103989251437607418119767998004961158488903136574404814727769349793351969079124128680495050177445358305674042673285789757264025168112914401728938893906007862203398066619650785808534824907943715105931869232064049673865635312813040791072222135766548218780519858530019883207194602635121427993700694070856559587246813655434167121600702677482923620401452985056021224418548337825955416419100110698441606111936134157284385573768224370273680210549049859651658297294455519182415160406551183970720272020846402043930729863001390554348608057272087118125877938449849043705292103749701001663998151949476294999864284937367525363175218833130871088807978839241770462788936077376914701380205788950494781158875639904502685755056174160558994625034600921021093521309476759343508224228736527388837423211347106010920493956173174885378022731466288416038867881534237539156003774078668328693984834808067071923600158571920292311134173510221745594119959835444561375619179631107040180474480380943839754826744551977505936659329500786951398347929873388781017794560817544738135591808299812498231500373506626543377645218316617295923566550503629887119356012041679383725200771593141903519272458016944939389396886129000119117055885151579807832197586364396223411559124784518708290402202070552688856767767572084330196215790085294712798233970767046678343101904313793909567418493179487559919905514096196893922557331938718224016540438942429761659128259606455657678962695006754576610574970349472098549641722192264151810279891105903306539154665967022021495454292522568011997322331862993012889772600548883051801907365617848724489615573216482574547538161434670840182571136375339420168400511442960030308232427627244024934395610559393307378279093954401080585108538114412665516154280952868117050960782891078997195299893421677946200201699898496514405533694909314415663747898278927807417117097798317152252276910176290637536782986869272805898815004823069790734921618995536707907033479375433604945307207964877016335038661247716798894046172089012433709581716007094122493621549649575492391338905213792848132560065407087219295204117451146578362108110624285418078166194941845801094848226063578640095318038055317525908824674419440837169751263837722218999035166081850378401036964191489110716279202497884078503577014056163478742264000063558174689957745981617176542473582133634390557463367004182631314361141816033296676296760016799420553340364035181666054990897216378910193314935297881620939541968206581906428364266241323705903925680464546366588202705763264918291587136360468736384505449748883936255634469025847997339724378268667920048942544022238694891720046655825732880233249943539810894646629386210678261585278995737113648254919496669990046514833047867362138961073979915734993372656791738205067948903357851703480156848711905733150307323648157543719277078267888498830184864653982118322884774599068233974621561258538266237228319698602520433786277355751555072010160597871217465069736999774885058236861823974059628238990617184581682396699394042340380271521493416458066506094255166330604931071671973308360331180912226728261653649177815454713336139513693578970790381291008172086749705669639627505283727439791628764864557681076979043877788536898437300360143129486649262310772749037059562142587514293266878284788078762847818624595678168662583026820364459788509829508925259441721135355859411423995153512414886100581148133714476205748937224169221906391313782811620178787608643888605065870832408698639465194511688837952774635359778005996422511881275601601791590224752139769106798632092833840600861021846713981186612051037717967858647158891191978082065110498720927329367444664555227833315561279846519883483619760801583131790674551241002086775238220655461455939748978692163232155531192906025885276633670028108500403677602024625577852652669770340069592157761564764259634743356471602185512767526489221675998015472591183530177901102148470226732507958525275484231626158929674912801498005754149289437240746443811161096891279255334866504394777647016689704662497021733473368079477321086193443422642160858013035024637111089416681026503673752140328243429336919373726378916898338751375557910265452952313728785719567272503523272501149088524011122123152239535668141756360827968894201993232452749115000568066190671007305621131256401829504993342817836112004413870830454117779908282985239103165217553221739083863377240702608516018650975472284511975391203976275960199053838294949822684160694237074685285118596668768797229864602757184502991246920648994694897748305050135197459222778942804945888936266175575585016684911380345406553384045092547795648368531413220672805295322177576799732975000077209030258510443246399340674510943312435873235986285879361322862400827815076560815539481580746263592719106228645291219548991273889934768984063069350153058083956513944024323250666224298765923968269410311308341511967555361378398542211792194114495619165388491859795707643267369745935938106687751104593905615875963496617956775816312907314395200211716241602363878096329901332470378593865529140518948540202174774349411807469378036532613139946208945557490603976970949550080264968790833922207730630331527199447948997819818289566397872623599650538450840226160712887069191795534834127291556345078392909554962176378094144760392676202991209797852610126161587127075355867886070133229374148009805349019787651172350139260320282831938137530461743861854870731522878960438016260215193217278125010153660955395939482662978500964721476963041420928560836755369714576744658251377926893003498187673095366561540940181812138145157189348521141376323974759124935970455118111351262638521822684142229057616723362217416385969594285558415266032581735696873478715282538546866170831715678979869207966857938520386732793631311097017509091536397157747854669238984188000859849849311591372836081341437393598408772681388157631645299040033170061435515871321048490860408630995545829324985126941508965889662019644103033569857578797191371874747941989023985576445427531759127821820679194009597944889802165519947491076702194965961007134306836058843980625029333392918050437874958457839559752191849939915665684207644401577026373497360798043894373233710357794629495956975286424169076671625974311702801304335272139209895910162931503144061676033044871310888930329252095324604243871580713741133334967521894678420435201200510171558881014072790337090139060829623257365434902251585715973438396432549682824253927771242235747636514746268630421600367373905728097415180263325364778806297783650316962478876630494658904139814536834964837676379724030131546539880841739693614258671793819140481431262211849010477107002065136340198655824595491518936088602077543374425879392350378338502501167727052720609919380261179501593818710043945478642611784251461725602723804763286997966113116147174598788554203789603048511936947192108774950855386289958503777799044798797681917449414290009803597502443144572163879873259333474843304573940812551247937720838298860465524871445206812031443287202182491713332412389413032203595572780514404956058136514098616007905100746445574326539394539164730244554090449359189950093007018061723337167982022317326195486552606537659624069393912796408926084161148803306464994054074645973148240396568634321593129943937077821600270955871259263938062653090637227159030214454082789035367016709815238983270423840016348101274986996593833187719507936973083569436728856506110250945352047041905954246820198982796106997322621366281673631229890562473777629237557610116540065593852372739150669064576794639205897165228649774345022841403508880830934461816836667371572514163826056268400920108841378388920760123000864027233105874037792368077723633760999633454914229514026340740695000357192016355410390524035290727326982389146458549806071219716833951774684572732705783001650434385226732890660418884113825083413613799619810169705273677247197959326117762234453981953204724407339455212937548499646212828779894759263556471124809844788635485768440400796454086534311784469866699631550715355346753318278942174905295408470023651559371913007076532061016462428460575445913627408024944264302474203872311368140350116491673880339796281288237086263147773710950925211669667728400056696523553312357273447122505849334210006543804671533515249182317846165102580881801644604999405884890852354086151838940436071934067129236726069448064599978077724922090290386244074458697014205902219888068460965151709482306000964657014364407668066372796875694071351567827990649079063277209044524503248575792807082252032623968335485158606931459783852836169456336186314956895751252054275834084337654387735755811332332244587416913044623332885304034168185327650796295332567196803046626222693929242338176147406217694381301816446836250602887868826388486228440768649870505438229258065848704040355625732567495201114319375477540770919620795371814882506166306925483188887162368525155484810807574535347566506910899890257900674711653610446354848625845329601116605524812366581334844340230338387669473085311468229529009285203397072972478459503263973047096928772755667410787921270676969147191629646778484264375541857569851081658718271514749550361565003713207380545212738607371349328329950679483810466721696131667455649838641066553851957114779798978040531315313046953559560125012230730135122823590308974131531872460657676506927312075405356228053969566709404554331001699200934016030151096700708703308962865869548111711644722242956459262470228438373631682761826381454527381901157150895220166955589525546220679207427677769230811522647511068244339134165002524040693302585989456339270364194407539781200821821358504554735215748043870509653774461478113468716565558883519727921318504550683553943076050369009362962387836408667012944398938544441878508815883750876290001144469012888129558556775237521659868493432422064333126591574887295399533862251753806821534505112447440946911045116323995851505755123125829401236747715157902678546634378329976843751816713246639546430207887683845141331311200438362720947289667797439488890340393339347714916556098784406261235812235129549256259585831916362448449112395365765871050788073967088109766912105133672021088490924983481410808514719793119832560149134071181692653771766948863256773850811309929392427973112696774583490608959014679711219754532868794910038496940607005645672377105349189064450652802955744757018578593533302534373141442053035818947250256597419922390085503338479296623707672334636290375995008754307502579639741502039884959037585768291001734410030163901748485633064220117520177885798427457959125026072781470357311880310825407223370561840398146430866701326413991073500244188772556351318020125185808148975409736973081487305408871737347442840919291643424402102449642639287357398240381058420037345869531070327979850229309466268069017927241787098062523829754926742717401093133908440060317715039883971756517156642506614086351975457345974732854603525770816379080538731580692280533069866107176170472318941722385413267567686410850693619772850880899912059322947870172365995791125474049023042173561164395489353844038661966783227383630991110052858370782496250614551882569385163576399303075590707409177917689600909421662686399459309871665187527628061216776559917910290609779887602911312938589553501801828282284251271767414232794377249083446842157094679010491342939738156593513336070619125183966348987890494708726441344580810241396525389714439089177752252411780220168874982430162373290165423895888029875750062831044553948727701249308315249497974712676481104179236903256497908621475914072338569985684899320722812683150370989919313076022276809177596019419663136065337542651454170789726564216949912776720193565187129742389742007742270600818331468689266029409808583955345298132643374294839713715782663489388817585285996432152468492022170504236438629715317037861202578285472396855010947264868652733936132705317091849608428679730630043616542134626766101017003598757979069986223205488026418532486292510961687965980769538976545361454574455400165223914248148929729381427906255885970122387283489024057385524642344391199345027206577171521049912790899211699242640970409416207231803949694168898542656153032807224682554245811114270095732327190155988537895755711619245963123390013892387272152786124203816814896467821416667587669182854585244394137306771464037343309404136447692935783257567547224604923772545306631226140550175638115999431970278836561469974535618662519921774758789668022046667762597743833899566039040362829861482702138619053606636684579151451491296624149189690080815398786558385378115703426603443048225501319786604767627111519141329606396129679567514855605359664271764873387754842166807326793446827374535661080150860574339919862152957878761118559244723527131690090072760229277857204073949284081028003889856654021555633375622291458982640581718488090352195923229845591916946392957967530091549871090141039887383479249362893105797115046206176901054689301366912564960764551910533627317915600645964827476548057231889471398410986013028648665616266629576250098178394457435203937949163186162324508410436164555398170233396828075408160676789235051027647052040995697148193078321599322556225791336901779370937542504178257657070596223970542412067164187424641557566178175183211009184626487177650911903345723077873178804849377654425394524714942409147933707351348787631457698510024967498296725718389578378464947863985440231214546407023160932103605559461954760831841078154975855244947322143893205233734975829477293697854244733192165853383175552249465848759397461203136817692491287900551784037075161061508632843344567384956658915034942405200789741383221214924671798085284634286820447027578369882865730447370179875498833918216443632043836027526113090044610037477990279490761245993811240516191996059651390077909634293583119034305624356715734095056163628748278205876154899881362284006319511195201780809674906704976589428203193245913242559617114164316694416180155240661886331173995068796437781553809722292974598686743643437724460225008217013149369918140245420915767683955013168181074034283041126865254986803264579323184502950977452013898055358194141019131984833867985554819940171661584883611814850491864675639177286330583746651251909951762786218221778373921604284381236585503598776831679887691766786403769600339672806404573452597520193285403903843278475185561475310226363733593846397999451197734568566544674283895819110350875024475420750117547265579343040641644816400018548961723573698765002091463124400680506656182113202933685956754722666466024686854200803926074056629829966228278866733064506550328841629388295625887554096946807070658121980508578924056678207301913200670603642168364916525631353776254830895948420536098722955582752459315009433419009078154671122572710798521222737556158326103023920531679278861411832982264597557653404542346104902957223958753311957961950228946050308356974031984824793750389739827953899206897189129627097026816017999488236851544102490634503793304638505980500689368850921596092493454617018696647022532619388193016821226484368777952396181368777350178398760142879720848366410773287642886925358714697839726188810338450333711815171148471575357282911137713631319778212024568460969777492196379684737496910945644214623527467527261285301800789573543032753550589002760724171082427797722732735900626663866696013522302560850972996315375782433792507162172074406333137963875171443926623811455393900438867851842471758753790306636660932688831931210323207235140907033605416575082209060337201668113885031468464451916950436558866152125950693828434458152870871228293140727555933699681210990351591016421256071107576563443063511705673167435289581947549521611425193110025890413452890075077583181812267074861693705113747405144794546197953017476006106793453483773940552135929988183465458679825875860431734040554601182336493553306359083224391666806121029285929309962757245031274894390964296332087307746715007773300833934315885963701244337695776945482607716097670861548166679423891035060904614604413039687136894886799835087804068064381621772406347917811916200629577770139937093439443217249722182319521253794132602753367456855860884410590851123027060655379689486119033343118293391087619618565414570968938743695706123428019773355738962407681631584433584877073360720706401263672416841255098300951381957688615124648660191044190004053873335671201528782626114531444001949050115641718014623553003346080217675891561479950371467332745815027281127211826466922555444131883985950933419623985945561184947674786532207149201414043587348389120710525816364490692039881387927289928539884606794699973386287843222510037432806665926419930608469361675677484717995553822497857465567250556748949309600038811165025990005993740173866604706262123885284817010946710138768352200253700490944667104755790008627486998607580100559897397752748532074183466193993789997610753993025114426156892048551972307840758227848383123586478168286347239705070337701551080372168639415071758912025235200309364453816100089088130502039169341159108232754929969978413544833229671875424182246552003796227904310697702416765482939497616404950028309838939426022430461690484355804747722403871786693491539288578630229892431436841730470301570109023060675037024472003326413487285601003219723656520159094929341482621229998231733207306487960120379727647315563630376092938373423468209183320342088037583199689240992749363529073564984723927517964835646038113180744527184622345859794497228431805274062500057844200483005238238751084855426648661840587880464120681035919898396098727131150641081845490455579927609435421840067176453548615105282475682962685981806029377282987924425294387085412073102529404983278917912774900315217552148825260347141601819538454176711806252183687581941540703676815615766181720477998692331464033613803346520401842615803902641825361857224684486061288736869992720274162680637666211206929034619695458113643447415987140189211660466226582661590542069763943593123662045528756034216500347360119434225614914032015794171185171542756396517256864538467095452483713059489858255974527756437837209390373760644875780538089666661399183963055434635153154818588677926291272536342628898525685446469814497461892414958636636719814006506858886086022426733798812768796940649702991545245272132575428195324917311506620858665207749095296510075340404922735654828295702569062935888169041465106971777242095544613025854381786304850806058990637380905430695026138424222705375354598590993266967332165151948172534532747333602744725852724539478578704905484758633115718366332359132347588259340641521039072871936326796375928473313161233978154985650774595742630192501361344218177865732684594980392574196969999876459824956709409559549064514319299753296990292901811334684918939731673374047376102153497902801317223379127998639147101057364580882496403779366914426022522432918220359694796522963241504625930376366432840865616023121610990271779794048244237437724217545327436903074926261725888065223326141060338165320932320266991087084758681985639904985750117619963690596992541043687532918190720041575982623454667270157369711333570414032093793451266060707990655868796161579984934109540903212436544310873161586375727374817450178665573793984866922911759920434224760064859760054978280629418739147496645660197689263616598289656557445804099142689094724970673522047011619153600945273632530666440201002320187322781976148686634898913273470144482032429311784100915283333037691119705125251189029708294297488398137149977805278164934370560432600535269810691898658868981610889926992043454781553574046529382255475792396512578169849867342182185312407343115296082141120919999406160101582191273730165017695811861903668977927569046785710181059393731438811929147494435652218962602863258663651901745365921218638768107774209158364690909165182739807531030664998062448492774756188452973294727139148997268407785897786865604872330575242285717247344366674181812327084159179147861681978003287524219464801193159379351523941740904190984125780990903889407794204672704915345000248604274553073068364722207589308219944523472145218428256209291437681438780213969363997860221263221098220773571441294126406537652642854348297069365511680672830614815535006779927342874671740836666020537292204848408702523012585717914569665795239635968627064590372072680587943981340066767014117658125223348104838686771740587973689615599621784654973073934095466043145860154049561577645616734472126427468746140830206387935980428496622472232550466095231768172458636261128483387407650758288956774589588736109519742072321262333556151933824717602181868389530067975021207690438838128356258145012500711902715651443462706481495059019699613904056079067372607241129244719947702838483531863329817619994731283314491596877750429032797703476193806295512384013842291003576769296985959054439828926666087801034405967055905207668370210159521951394544773118741072352794560844354946676079288268193567646665891613621404247856427926815625448506316685268327524656002747765241279427053419348280546267028159924539124873937558094012591977834653365573562593766808769975257460270216696492529983775381969384625470851886151047522647513648918833573818916971219583268100419576537702119211827256650889668246750486669965988504204119161533208988567238092601814281176234479558294288085813698860737275497491213068743742194301486676625969169519536885691174938231969755955794021793887372251515997140544728970839551036548666281965036848684661039274556841436359017774403875651208077145636487772844383315635724968367563148103943896809211928233741450761863056577773779414533302578207887933713552328193066778103474487881453302276711598246301467739131806469901714532318195729640171382993445866528104239029204404205030108503722889707226673204164075838352116255472935420977067186526207629467204363364327350566320411252128722589414997628046891485550759736146505117641257930283697453203604650615692381197213251056180613452134381768173276284141810216441341702491755843656811454797775195828066284424975037917477236204204245057363060911154840242699564336003530143666597511828032803953421054049191030567314210754130235793487723423907395938930043689132814854688219705348268064061334476035746590906564609800971717699575204375563545216850442243908278083480721568003121380513744755738663358066128982569525355723266307395195406369794691392739195092970992913488014867607271497851682702690507107678965765304404633626268887226274293120287517384975542143150499890745646121569554253570152014746265873588291544869367168210972638770366929876270333269267640511235659178773632477046116118752837864088038280136349041450851318295587380336571592375540437403660094312662493744735018369408835012318057025510894184693666883038062360436168998681815046281454399370843946723795281953032886060996315478054110539798317391048191798793376309918240071636953592567835866999085256828346179992044849215828682554266066694806590558837547674778900630307639773201191626441931231373328223641811934383050586585544982998689911466813117119421891601793736025759632185321048687499204734702994267871276133342376683428225657565015748972028034318032062448495723097390057150931453891843449438283973734515799805156259164322627014186206236944759302141050850281203604910993905368478056021662704636855257274132906042289956351025228475190703082532738499555533044957803309025927531635221809889882629115980337112570172176766904545680649223051574746891557171017567240354189350611288873024043144319869586521866760733038549036027746096354501952529653407030159703240985115025293058865671901125083284714968064894381300783718623924468179021621735691228872394802164846473775176818942122207103565559650797948449900827193552814791434040371387172081760903198856458746108109910593691774379471287936895032477418648580648196799561464367082487089936839513150720305653030078868598203607206699167376164147566542877193535910445211691676928163963645629783407370647882740618340543570774121613832028737879037858589327455361495644612550505547826687454455090886889469271859889494234495074838218501843413032362004668070019175045926284083850536431267686980340268115807098103458986041308417355099569441517991754323348063307326133913997978800038210913276601454961115704285802816067516233813538630524295638330950320192878164132492230047611795358249560591453000424644788062130246897865596926292576357402879940135692116755390400269966455602568297236950495909960271709738166616867800483272929905942810296816157469630606061010622671702125396674795138938137485389535175783294513642600693613777744000566993017402011366773178770446945060129226074969110615762076378933450413733651195600329078352359646532657474974352867211162980756758510838501606998969358671522596463057009139087628741649254170816909684730954886023329828880010165296280897698772319690742102700934888093445551218818833651978431853559606747635072216117872873563946565543427614068559412425912141707811630308010192587621993809895894305093968251827713033033492664885329561879526644631906349389649279747796305818237760658035402279669108180932267251426142876850855023403639597056214125151376204672244428979978554541319013720560029456706340382429917807512572448446357715258934722336845268000504905794076592611834046276469983532198933127117327105112938774627200813172632086712472478310369532505711668466933919993838341653013309247729429358470743882634240070132171320972827494796116356678261507156628250212520627638975156658513406045529010926112638166224236689927106490418862700144211287359239399825005658006432506075094589358500721807293223082461082581858746713340673344326805154756527611229009421546556183103412687017228654162269075744666374025785058198390337266853912834251138897761037015547059697842843812110416674964236193689840635613876227959545215146892881328239439636612945013878167659092925089753247166912368348275154607827280445182434537596550492568064853230999281451475345509275552779627941424557440525521882532395562508572117996353019567581177443676255097319751155651484513728542407490483808199558809151611793921910426190928485781613905148231474455310151615917841459994712239051659694410397272957411583397459390620500775807095967658989249614373434878156377442083749991461834513411785721356576510028821653437883890697229988629462268685195628832320570537894217895936784489997283808225129585737429565314870430403219543301647220458139790574528802074728588103114085879874721186328648984473405311460440048001118964742165719993115889037205900314664181261792091194088785006677801099918546190934892669185091189985328175801561496344252727420213230832626253782975374780849648620574737729805950490214555010896934806451097433300599798555320331318269175191591950065584884365516563352350794974414869955459346826667617498419319232391985849314290703397249074104335315507161857712844527045561514872082178790107580994599078190340768484559080348525612112446388323887760077256405950585761450617292910176342106201632276313357086984161133384335191595521993423910456556597310082316994799784563195983411430563705888413585723243945999371608451544322473332574743269029321113405536052609072416883753354361412870234237825270895382357658516596417328110042367022479426589489542002462779779309893450760213624171370310651327597596134899242700470471725333264227742623475663202251798424952498212765595113945681412700766231548515825735963353826717922669936333918066855094802896639701633580306357779206151292995868181602332782682875613869534898338580784048677565029162328102232126286237036471167259091116220744994447033715467171935579603406495721839913243157175868905635782011935622777763421623672475667687617220610152133894288442755463803914298293409706376846651169968454977492484216234549879019005901223071102488058804992082026734152133452619482271804045246592288442955419081544921458089045704939272983216883413429953682586746410836728468331328743219812300745130314440076835740244627809770130021421871235118844390781428645714867130316274381405338857603885294690507769112439640284427539211601124684855885908711120433136983355129831770447543952735118094562627365072134238675487816235096639875898907810584333722039754420498618992145343945700107669930233340450706235582283219793912107163390447845740649596837368359996102705598109343275457182265819162737640832649194463392541412570472789300121814099502881776632184985453085666790070376265770583827317495612091752324760127284885442229898679988266283950867894577143881580967550580114816329510134178454949532484743502461668260490860543498626070769522068457693088810199363886020569081016645051872181500574347274692400456628013524424290432379684768326499597859954187679609888240649742665229584406972977619146264897831510287400669792362033206040445354794419819989475253195717052085531617779164107727646139215711774029913555501516709796619652406222291416099722702986540871469079193291110174604012065208119033479335074093396733543810667764425162109106409782774039347240922697139986419324018336762578795166166921148570844034731109857718604143806570305811408965227990337070679277771732401960636690599023966006174759660274364772334171321125640695730430073871896976082625377840761689045650369641210172605511050631805878307177104571678917209315551005131262488507497125708827760818462973515666064138131857756923219422161698198183386159109111212964068347645414987489259676939155208899974348348251097717173347748490424157044765736574577528870313708739190721825057729931772042125966177890946278107374893967275333669497759775761401339096400599495991247742405822602276743479140436597750071174906872762693456375287627915386103348098692957428984900870413755216037594678764398436269591372899723772007314533667335269968366292608565705839038823593831189614763613317043665297644360749401649697173956600232484753127826135116274516934985914972842578011566354011257488383449578205475651348675253533930949298777856682473832247136341278156638245905023073398325360830038730248396399541840286629808766899600543606746374781759738593200109703840094329084825214860785580072030283926248148421073567689436508478291723943135377307833828620452560793714347989024775448000157389116577894911436600367935436393206776263021105215210135921546945449970588876283657933406061323911023381234789116513396064823273430276115853432570782259674566926399445065492819990540278815070629903621350504523173250136706243941061807667613786614145637857660442074924229269770349845012651492167176963310516767267848837295490056786572397844276311347324977198906007618759140896073066582151384491345615555711510845132159738291100111428738959946162393850583603232344208288145043391507378081863193720783803113641758373487519765079335205354261064839646800228318032347662678243897034382828567674099388012245584182825061658871841917739713484249557535536154283510624483282114107566096796995104825227942158706931518686822890659905445428976768340784284686635169507359290059446525171865184120454432711637452459124940510317749743271643304786104252035794032712103848084464363330137152901498842752377949834574799875281511965159434402988721491706555591849396373620235346368882181314372081349365898041885261814616685646389742839150595583703947123832173452734821361569612832630851650382152956508420824710834855636841528927797777756366598286215650221250746116759032116542096541470122942838545756721417389929799800524641816847334818021732521988211950351846705828084292711592599970153750974790079509303318805655801013980812298456546816187153857992812861037660068440830849839727976370041660306524614826604283117793289355874205593451881326476050299179833827163739598602358878513460926732319515887297292466770976350989467701402822922459093649319251931742859694152366564659951119254685886480010377793163073879444378711516343580868385509803616734117746795525054156963255517565930011098710343833359200752031771871321169429737366650481616228139743691943602197933189113714775792846048510574542832874817932872278710961589682604151910321603588677947479259298850999499049216484971385441255339167379832698374244874127454709620633713904740483607941575293633639044817954141117349362026048512012305360554368887938629144807879100525559893282527733543592470673999726922739927756533972566967152409677307351761299221420255506531429549087426170533585033317774602589152893788654307666139718694743502046969668750567663782500133665443412014978039533409484305880408087138695315898917544323055761484459929712872562076470023808833082557863754480673545385987638085847636506952673628098611990040267981130204610101944598035927435305744929624227377339552016915800533206697551301973113370391256119133054329794169919294829390557267957952817726968793291142577732050021476019969815220206152451794238984581852682797897974405416564805621008330286054730103160503201457405188876198453502969999264657956500190448278241738609540179103702546381436244525088702922663923366404351967800356654544364250362507952964892139065648414018273697145021452643164662100373809950418558874896308246574073342630025309949781559142128751970527100115710171637749883378795656865393442661195440774144399248742320604226615977147800654896433496235839622113531257289820135598481565702045748210917373786628025393070446554368897474906584779494095981224478743221866015300973454802469617267129477879519441513440173011883236744872044780623663700352425861765683808485736885690237092290882122272083417008979129256543541940782689930557315191699011807050189588596474048139046260970734195449422706775403353710296483606203275561731021591434684415539095659097465499279153763329473599602008980264079468292536127789832058536058561861189451406113222427128611166867250257033634886315857173971160328821238663749187456626042953189852087917692798532059687082732060772049087562497623985063918737880636107372115907573362989705665746883773515985230620783485667267399450197245706160417028656143126685079755716895080673861961335761307793385665294261178995576128220396278616303669765729274631760052262488130026201593446959933230130444390851414406961294909514351132404372818037803052701614745966697318233961655755091009447720112313016992708211043728483536465802279843531764876043952080736225958640787345819153105945582524031075377215743214571344778184309844749991891988572348815392190452015661719255542998753345400238110974852027005371147123897974701015854753862680281323170286201290386585144236448649286552358171372029388017529410102252028569118718607964501087652984253297163117441865075201876929274642106131317620308506790665882560616162451232983338560212251996132072858164070209062312718344848223007894040924391632745240874566781367355700397551427807392003435331321282287328689542061881883291418904239295829349293059481391941921015430324356744769924306848954952023954564550306504709712589530864100115696873272805753462888209289499803769427671523724690745276874941173761124890701919879296423247494837186391329220403340476272852904805702005887722635976788174715798214217641766434900548515322233513050200474266084260275811143081158773578536814136568366713391740316070565037908528432267821646435930151920709912343384447619748970136375189516849863063347124393571993453325119243402486722685096712244422809548620967064207146038923593401068440047536963864975135973583310937832600190925157443192037612293770890557454362847738453351375649811641233689229522888668519991591629961786720819183717347307006822812701860650275302983390146699957479446107026716111602787170650023445485265531804615279803013588943109664382224754397716230467646353180281996449375662371151160519787587083429214674980001529714109167257057969361548756157178235831117710135901253539556871274579972017592606546190059379608978461902722181450723587954842714991331503962030512411091650441966975582513218186178356942755406145597270535238267357110231808197208539486018220548268986636028695668183486685245446144084069521826332804876044469190082669676296454907545722369233274416649131955648643994588993387758700988054331863998554049323067761591828592874389605780464098420897405506832961139723922222697903646977678755173039666447415747265846547806596395648953581955700357971668912269469927151284486477227398117418148866331928994659470600892113189894296771965704861852768613423688150000417238002829767005277922765540848554333486168898497387186788618987323238004240096386406798435171625112697259246586787211070538015319495771649485062981579894694171428204216416558665990728619849384917548026958461964229477931498122383641538557038089789007613901032349717969632547196564912274558263541323414243643574594749297927856960776359148472801212182057123722912544332455660534074849518144676905895980695200349230012498661937621085005123644254782643573382132966096697316535354256247308090288177611337397206298364305054086194062218385024498547566872126006763397437315325783835487482440978097393361487310202390453380947415977664560313768110629892140901661232700390050502294761351885912410647065603129801460888994927862354781233707563735243212718006105308551717034053603307376301871136693532176984282601761121860063584896534143606709141997792464097211427449546989146355548286434011040147223008474005897193942555677557844039936570126377009233040177201570971402261897254902499639625668908485897750415713042927159289338014627628178042451243346115672917087218116986695871312610665581097155155569633481984422493772789984900169133406501392255837452536445871131537749642845154005364042185976909329790072008362962024673223965883741317529058662626944673521044260379193152110356061561327177958332423894101137830862454629514095817189416538188260985813625507028147207441010322838569770121266793214647280115968243771101640588292038122298228255056488502000903159908409669801425015995974256102202631836172557111491392144361101853384556828607031576644860576825091946215850695082849408530180664499120714286759898668841279064653948357153197916296821916428762691256721694722877436722690746310853419544061133608487163008322078153715481543546458370259485036167470707302758499672313280960162936123357408505167586704703228598724739808647326794039491393791308497363241413902943928457663835198421867634664301808689606921433831960422100947209843976665228225443683042220547014325651194268703971992934248063911831147159679288276590160658481161372294419943326376901682224343559260799088203400234350990585913929771576049472707702830957584270709136977043713575902026722712135534497330430506741037054407734595843092276937484039563820488592647043863621119935422550000256114497085052705009162892960498473983059770893141204198377018700063858078442617736127875809955159503846662074848157250182123540825433798202752568074574177955302589468194577646065374993269932888205395151847408514744363568210924250171052586349534579159028715221299536595915807697373406864938135614834686259397425293493723922991126095352789014741520946191693752339607918005888183785066885788221740893022376707892649055901783573302904986104756624088404630174420916460792765924033500521369750536665803340501312807124279897000627372915259070166674643724566787432560019555424209445336334393919567680459087133098344796212966325811637654664808900711247402815156434346310814453273397154323345449268619307448373532903424290227063234450908155379512377571610492712179818535358509941553871821944942708611496926208222831105450526017646944214984796916249383350864389979794372572585034947332112364201564544595832321025867338212082720110236171813291628134769361336231630005551854169945123703087471769347530638094914882823181146014847359176501968305714704713971680541712076085415277906148408154352770547111386619355191825554967376875375655901891589207674352614885293763210787312387572064840823737530328846402348829287586745751741196425955473254712998878441337697174478289514806062975015981041096517924873725424158606070926343451122180515157680503952320798390703844559080248976751242811186831122353594495362332805156428450911638253284682769037798940560973049659821677479429060522906427115409075963049075004578669480644240791416042498973639622383553426568824892490309401353227598292267618021399446801899603206758034293979479500581123563398697279023670197762898407331986142970899455340903726057682234474886920102976488719461875862934213170932727776916518710024989966658550838113356789617481139240080692044146256653829452233915516045948248702775240265603080241608406335831049915931308539474269073234720884119182024847075732911507212454468985268553115998511179393810802097734738174933999888973856536994038759525336217482394715478348005894603936659188928996217521047163046603844441237345091038293248389456001298364934173204224321656427582862696462987054943708647463427711852938248043935821601986070062171196591832591807574493655660319057421033069753707322301404429391360729974231482186205712797240843229742225306478470222877289889172044541364168301862059266947810650015772730346839982955110599642751983442090994298239413615583265388406852983750196100267432796083226766089824373992304583819359944552036471095908251899166291593196398638609984425245591944423740980765055611750578961464359199255642675963119627783751287465379652386652568169570032696428785072018471660573792272520952321099076112702419491396280748169651494320431930648996967523523778013360171535579415272267440438354774783461541713610807197104730886023745031213890081325624317204976886802282925502433493959917827467695941155443098503616431316394425732596746141758066342449250604023220280294698737518293127065541377829886195848109350266364520750931961525082015023951281069618830208378779175314247378006661366107125561380956875490976302248182547336957774425013633346505272962419515030700162982343399091000615550249467371288432197235339945293806722341962170161634329247937574459146657715626682851107920980138236027790852490861406132382047029603361421239678916949923423217152888329799391129466525384726864053187319793226777027601787151571127131902216836416945329045195204615033553473446978714152244708770708456141208314980110666716520746555367187872873746904987162762468053085758352280419199560732766591756957730028792070628730635622829071093172254124410289965621943930339359793127298249018850599820753028058182687345362620769884288389289635517726997755270892807119838327126416498135850566092974668194143322037636016031702386454010380419337568874559351238398276056529937969463111573623676580351575643680207979098069735892895033363102750947847813570006470316765317984374893859319928446797050501465842227782696067591977743142284898346229638095752245329234359223513044120345909610127448589140505827476775911036197187481126259602724586676557147275493941205551336228916904263820835739952061572394645174449899129702110657095944985564756710539101364046559061659117790624364595739346071857771170611184517001545450809988500405931558750951206165545631462007387394433274391565408222265516671149813613507373995489339174808637419664809327817100263955025914047775193472052693611721552919289489112851231256310527709723493867708930988562479735893275980846342321851624985305036273164555086002448011287948708902187528734539294131614662088148268086141620159155491220419860259848860991001008935521986004274340573101214273402947594356726977628542777276759795406783215499987080260583813286902818386210006100337642379198001944237044206333199893214651697433457699128223182611409070898614415408199147374743368164498243252660816669669733619695332127776912977263579843015097108158562779524101403121972539950098548370069915726381749334231984170867848596330912936697738356288707840800239223578231036122923133431387087137560726479553068785676787614086797853884183975085046835092841447196834356692453914539697267038657031729624183897923545368707062910535840958625288172928169247104639591376543397751033038618690541627854067967188564523146253468346430020306636243007728041839150504839977463906523527004766822033701569158523770139905412638347648466384117910763416394509626576134524834091389875379348887108440822515024794471987688839920035737926073657685493015534302684384838893140272196682038727684904065078641498395483862399144327100354841428571466367581410868575684974964249205885698437459468657448018493422802795823563775643882682326241877622162260709045198459326773477350182854360693935241658960117450737611406406895988292994464538186860664747288899190982296017892978047357912479632186915368703655952944433499542516058090830492735940881012512804591065050476649626758222413393315802709420923435482413754573059087156567567670109209505467111783773210475976697943635702499917247764099099618422342259389668469915441887720946530070344371831157287057320673987595782140794073633423608496383233359179022771268263032769487753200468018475770539434300795119666775243961591663082780839590538322951127233820755074415307889777628677166251881091187535197330098637717478618815476411602223903031955967898153733333258298360045188973413138579600929777458806142401045915014782067973943636291993558227602367510347827556486627121882555285317825358601035108225814502611204747092401718602564690068461731767990573490110072728768926194527588335875822194738432083457863305280755745493828952390059845682729141346432348817148584606783059482601453596876215967081249553230576378156493445652578255229382496265751170749498866876544103827053374089892104036867736560454285845169503140223236337570264179657785208175448924655709924081323665578698526453538880111889193286251925922213556676815576092763061557593066264739260898327834768021460555713159391575134197362381437944978888581196334372829232196632033578012611307701085721598982028012452701419440551082110912628261670708062742710620807375623747391179018806303915191898251718666137575727597103898114628132094118243212011578288178755591908312841658981012959939724582828850347090530282922251789724313294878973743215073413895319923645094033008944417799497855061146956152948565531122294623526306051560149924641646941653581717906597534647747475189449033886376945491013384753795701243435328321449298275732064946005703587974137284730855685002414057806994944420965645454206704067126917703420558935459214751399465865637953244989394807296345359598977325035224253669755202625966190223911374464701515637749468173440379453288595394926777638755908647972478088680068172355853131435632975431766043925383854057568997429850951712778248854066092032655982812701957135642813925406613098387251913882874323038507006601992157068887156531369864586671792836573552565862718814401443171436793748105969137093212168062424716237296617153934399533680541456986793897178488910159860309541293529874616910919252380974294455148855831849949859479590242636642554865556331493468935615034148837488463129465300565980746769773601945598152863062761262676635577359767581138421612373314597087298604713841740124888891879713327363626251131133467653762929984089037789520000853939976358474428197985767807210489634599077801542669717456754261723840220327733647639755175491665338447273368535249669156297692483436265047461988233594559385423887390136417704694539579811875271215977684425117995807169454668617498200389141367574252951992353630286409958477380806675941697155808335426239966791371918119745650950142157414450246559428230866854834547550417532809049243969757733834069200365962698238063210584211683115360806396000302983486986250141895196159770985309893415906918264474621242983607543464462434641837589126993823538014384957364332358908803400365035629450989571731821193875360604033750257331182525704669344702757566572460202434358051761798043050015766122068591071191644783678775528755576514955386462900314778433524201822322818628898360499556710094713073625117504656828874933451108004370570085720732275083196736841092108726460308626987012176044090402806979491118396436605218431492307351631588904445480567978322555962857732503063907386237033313393794864907355954685179650429666182553105264598245173537563250283739435510180592720530901051429092433527312786900151513055874053955359526490302813127589266878502683802775398087841969542444707598265277147636801344512270464696586160140500059813554266004555304125645385648993160312805596469709727717647751362379318695356428514304456301276104282649403679748029330190134439986092840586881002688832877860690700575222916378845954295112712364162904172492592870335181217772457206347444140710457987011683486538940860879346428858140532372205220333882782491606550751428498895026730473386894146657715191706700715462849334130545953261782576247455778605289070556812093921363602079484001904534822717501991998503517218198291555373940524474881608401142868298542198154173994615194467566539911086257026617289157211616708612807864422596878065405524084076980926229798908974388648718812412152858621071441713146827394151245402315271846416021045875096948375943180736202192937400119027475027176567343594247367066180398677673056064018589905357512300230660837087116869147579133638408623253843492671860661390466843378796516790070950960770044545355631362405135816161738439970087207800572797374766973300019518157166514482156340621818656955569523059973209613527960436084916464544009853402960861674533438096899823943693824949550947169541670641283942451714126019162473827086697693118069609710155725814785319462574614535039762605546512543502145241434329824924138121771320340323718671520627359281633744103154710463963111770834535015448259457608665977571739145766095877536672498405172457008259582124548521961643789313109882481700384223320632885004325420849215944237347069301246933339188876395624142540683244296139656862403164128403058782564652342818336566518958550369909432595309425060808246841425531437037390665109896765398087358749937703345895301949519517021752264520732036027546394131137116116222899004570802847540361406381477089041361896398146793609058294820541858067653745684521520114145135847400424917141834979108526755786923646084051029640568547162911479605166051298601164218923584706774478369791634369220302198889638490152417264835108736731345839534421502246261553366336148347864323356138053007496676208428757530744847676122129520464026842561574021989849634090361092184760431288829692663808182477416243214918051745760516527671485956723605854481485440213290753231193378970542137669259894146244375806251615321799734696371796455473353549249001405607436631064741766799857256986302528399444346379930518242598412579835864959062789069536518549591816028252311296488624546624741498780234896199049347281966658307147577253201586835547077836728257562399243554639377454477973382960292239539101363924842457990895204656398045121789111868368461117367495659523732158831922247696642959496940073685050284037768906265808500246717295897639915288552871279469207921220672013205280939645226322708682212314758006603178586184106934504552579097773956618012334187417941362215786050078339034591252524540485754363277089363734813762506583880204845701532917287753658510284304303738094645827944631703476961344868288054938747420783607209181966956077978078659557407096044302978609309079720730749607010815586850159480975343530527293411617148317473396610051752170023014799010869034522977048775984057286298941810215296900745556597243348361850377715055086033011150531761641696187723661381272278710986517345203857378730216612722258062394563423895118271063899938281939468089089171426867874887032369742369825435588883246084582028402348362623588364349326648017559046034282151721956396349530430084841662178271514494595409011794488525950494726556911945792036793654037611386749376191352883897654886121318115303047160619686704364428843498822552331296875029163545865426866088946046929370596495128448974048567800358527040399356260489828221525557199699352579454526174074327085989113001429067140022594327469021898299517955344274871811164211742934346618581259577501754135341180155914001252399483939017661752161192300632039269350307440800556485321736481168158330203170589764678232920238182476764490923997157484669006626848707926979745436105026659791718725654581872259956718471895396896356398273911694540082867722083973564852019605960672645551934292523068186375946771657471639851037580102664513149058946532011702593902980926721553261881121687059584164729322719691537323315514987881303473988948962542717046310852002030893497607474809695231438144859523362875963931570347642900052519090875253165740792449294631761411281605006043323678149217024471810409000252357290745094008754190944850132342773779028203768777598838891022428946586307188578363258401140040295820151572777505522049767174180652296812814453596307746839919743615077556084901483048815266226168875496803462833040684967248845831448961089841116418534724679049542984233687929502850535622738086930362906434961063890273423981644437129896752462213499807179098325385375182451431822981701498047147440520820677173482930757424460717784725245946185748904930509650979539054225306921236070170383791085714698302257724852517384591456079105588537047066293052686115149625701677756605098715221893119931908608040958932727146520031599118043637406495544985222116311079240253084120858743275083025736046735590502428762009605821782540707253588194242748229061261156506709906900009646228666919350261335698044849903060697708791796420344947066473435831304985932397059589076521205938976976179995460990255750129252950517564633281937784817982728921626883979150390284154892848405010183293430169393085976918820760983272888921135516982344564447333253072962398579235645767684446557407881847532800320620409124850379079033696967998575698548117548118386688492826248933731346365620962364360176047562884825574687983523166892032758120831192672738707762830879194416406020746280318221576402945658339747608798691752555031704962919619171215072124527733136375472863049900375024593485960032115144992840662158257436742274475501063912224218890391206885714990281250332229301019625987938312748207951457466369086901110213105305738750610287625824804729782975970378866527021744112460837370072764091503713333614971740090516021354287018659906055371259092989698875726878000679158690910845740780273990101872583402502706752349279084556458472338387936948393212193705663102735811096309442346293573358743954610171509748417603259483536217516712490048287878693443178634077789561343147653044727101587308359186544227533506094500454270943829595234500617950815499122260677053695403470872316703773580038588820185360607740785920309100130736686153320514309483297128610836602524555926973266001032976141119174374276782789747510302954650308104060484212662927492258713195804378325583814279728206104671644545396678275066337611956154718081141066372890445086071121650660339892385555376753205387993468505034921858653621561162560773785078336813948450925056970346054311689014345656230772431780451284414990211879930904828898966619644774295261486897574573204681701313930905117056129681336246565767032752997884256367261046845139557876174554261407949927885159419323455730645855363767666277904565194687523590507070290264235937689217411258335714398554727179693347166990452457385765734636323402095801122354476444172330199688759484111588591938802652082412625415775923953557139009940619257885762438343967082535985086771745203064771259716871629271981108722640716731620311995057495353350785579058055228056768709400358862145084193945110212966418030102507190041435180262583918416963342871083924470112172842730327747013437984117330124469137759748817280837808632835848060410924220865767728752209963240080429944929304986884989845824998371385891669131411594805379770420015970689347111831573389010474647987808156521926441124175366266821681770769432381466336419486790863825847134143907867852662542025507987500598344208643353203403385407169700485895423819416463202364499218696935197625148758953644751634449406416198941671134104435014824843798746391600097858007148865413513572346046623479297272831424155920800251034678954542752194241325704026306976946540161354854687985714429486803039101844108638904144811237544371285330823993732836681962313029569185695856627411377033885853664622747193167250336110407331565700765207124240797569995015171682190064511788702874635229298088187710072903397299225664211305601375775977190139941236326728084538940031909615421499319261336411225553601183662732783852674019875478187635393573394928471029582528710380997565439732567129487558224783626807452739034903745390658115194195726455858788269618859947491839526549635447571365041228605931178327747043171702175554273381131644612205777914607365779146307623015698777942799470800066693339080866312852037258042871394552756934418643828321630754249357674340668984292481754076245634843585997894799507358408972112726010980185913187269858204360215449353734228209983215127996754771510867255688821989769067943231991850034564659754689420908586518688541565005301770434777447943867270393095250807174811438806676944040880337002762289229403949546456869467365627651215744427275561854727297092316077100833032761204644001950108825543666118384017506433079878960184957256409227026453638384878282644377846764678894521861373535543656377606476678170898450543551146912314274141648367976459749610075175159580739164799319511126936601648584829390733187973916908788195618674358831373515539061314098627551521295444877104580897721910582763398947484910278339169952254377681439407418668237567124423323514823465867649964519452476330870536440687141456832606639769454801930943710086795751239891190608598079561897702861704671402026390040755211696790396797200717133559771467791845713611149407966712462922999331477634216541227783574825862753499006792111978060307885749546973284196464487248154923884504168748844032656277470952960677481195278592514810702849070915018652287534294183631406112370858732629402433909819838680897918601274620818939502098874883195920209202041991431102432886184043867214698447218058827477611885531433454775949915708112154724304881109826753085018792712236067265424722554951167783499513760704930313675989221645767417615608894882995093114276568187950445739072603866015581213816955577135842043549347895364202338974649549276685353620131752865705505880944097716682618778503565693248837006191686881325769898892153770164294154770352800561194842247298518748777495354659986473128376681023168478386420803571506610437608027590099241762684102073191041168647523492506036456386777296180495366105618145387474536473562955760076828385002653903382204235925539829328419394494205000899887248918062112870490391300294855651474954344575244822871583406545423074678494274930963470015143263124161298211097657797808646208963643472088059155364232264831264515021605196502658472066706130120493386969922060721205507484698313250445679036197937511451056109940597227061024553164341842315931353905307277364315636726458013226763772668618633479296099412432700177449539823043204002544985446412582181492056014921887888485004281841829538377471703679191289376308701042720721052793407615909556056902878841543593704129448706773764271263821528379114630861459968813851549589693494777530091090895645062887987494998791897733005539554996967223113032996223735743856778002884728964213358326697472583460615280371262743221724325293392575924924474115450585976031425395401902732717953482453447118183267533772568831319357002083161783185793469555062509874148085073837262014483584640035336912705562119589062989355562779178399088576495624037971430883909711102642258974629317668967223404012789249994400301464679220203830421619880771734664735164681098205658445677184987499742916295695277744170956312845961026901454223339536443247908988275294511632099275307499379381898314756794441245959637262578848779824592170128005575802716147579216877302876772414278390459073912739294267884385771923968052299403405334707357333451836725155426582639619999309836730795037244868646114937304957612941570707066203289181107238915527538336663817080430330556707275261677419463060608701555657445230874655839612405030148057910614581630901314898861882107938274751304764124868278016019084967844218901110183925596780158884405085393976838736014191230960600868884840958759093979887545712509890277211540144019262217279654656498959921437569114290202041111579248731265080755959728472786996827891626827869491152476745851922811086526770098192794353379135535005146898579382371388273535727171789383014221648571714102900699728235323288484621928112894081707974024421905443693038017492997032084340110873321114536842359999320908951566908596491522776672296396942242423418831803521099116402806434847354437983200003628081909768558492561175239297741658204184481090895126836470846247411739612714881019329455867381943250861265358837368559920259078153960821287907306065333544905988347470101680869637317737325829139402014992329209692706783167596814766966752080774826807111167849293584619841862617211092532216068525388159185598806277687216438183516049553852793642109031310360781624389147125433165370049295435731311918042841965032161578090425201331248560532036085914481767170549766907392764895140552152060925413291657024918171664437203666136857876733251108285903819215447665286225246359219175013034284393319549122972792697639531748622320787892026844508352041249612609478597647640505134461645779957974192093941387311276724057940541046207559701574182718191565611832096658777408146769169774837664183860817525478596851524694807752817906293992706525231293089486645014790454710761515539979963895457354995616420964604747459853772405194520424469515511057601494221445985078562898005200150144217236030394428342444870888738111756954845868810158847305082029360514301370104506990268158198945951504537485723487980716132368998892862049934134778445964826238868934495641306886939680162402256960972590583690359144783046409691845826547581534945007765160758195664124007433611728666605780640979068506843839086550136603417156612177413653524666292403852731631584292475107182073761997425700526636287342485276970912414632604391164682571938447497652741279128833276475340045879787567219728508025158776549056558922047149620525210401201669876445381749387615396217620998186695643493775204078670455027574954208283438265272799066404046308555601579354158018388708877140523005777747910133607583463708160374140335816621710523779547780310828789311389894479586116939228137724820976622315374165551870724300378446838734446101858764966248302353552906856208893670501291450337471297708298592055240518783105621652132246122880034754732559325711750916176594166482394972913352370543886272408483705528170029629809058650804794954624582240135714158490067330844573881811967445142911521434279392699655622571986439196067753038374686672221703556890842503483294766784150367836819897475626360760561739594959045378728870880119654187892476530782025541234215275554653752784851164219300210400696015444285500717437035400703359356505398651785707006582099804195744951235876447812486104147556590450055377874542573276631373882502017264896961612910104812793263745673134738711663877099845420670270029601117226376272726745210181186559105258614533881970128991196384735029017400070680631462301308053975457760287247409909750691788261928319716472128495873791803549559085450061798813211982114298258375305635097899123594054486017902486260767194835184423490587190753372944339592409185352802957201038394209623342775620874772317011752756872410122453028153879584509634857983910451921318634956903039125641139059641254019436292949491921353071715344840968420710642282289811864026763507160796935047021002318781098561356791065930660078977625531978982500663151562983354439164449258057007801061628032102201957047579865658116809332423000560664896736948762426172410119907596206943468594040616410905711553454537680923271287235399907443591953983973721101334949165692714299302802031477456050544661845753230590170786156443038197017914956765394045943560606605070173938931321346258503810731950386744835560194918228051677305768502688432549589089560814199507525651893554022636610084816146203865446477107121879516306983362021407461243273856073300741729085341371467646620823326530075778457801275507872627830161825087008428187745332078797789429648585975819284204996482962042735407338531005469939541254619473472170399527022703577938585129683664406788983746565636135444780666838466976517661499961854398962350237176711027408909193995831451468723612871384972420690809504422367855102876286804251881635840261629851807211528332237580970905745356917840193816002439654325782504544519694034884092434085789998277191512303094738055403082315560818607161583433955617281063733110606015264964148156840431946235604363017431750920771304908868560472738551730953808475014486517604975677360783315447229253433596384563021521710498738592531020397895814333663841559299255089446027807017962274521055506711913163262652799366963598923830060969816001670881344300203911771916307016377800383003711264182414601498704171480566260338497751756038495491915791417929536849597062863297174522149452643640004011685127587387943486668837572288996134299386640236405894482452912428201658004781669418478063660478483817618565155840174603728978215856590831489306511779198572317164764724189304315319990881549971377420721011833196861968494405184713480510376244887581817277233442721570874000852493919493398103083199952288542626308518145514104967489642576817203145774197605540116651437193376372188186506524854450399937660922677770747939980142258086621498719124701387469895676580981634240795135703733486839946074001483818809109122785049874225639471028589036178924869455199904917116231709297408195172163625062371420825261190713179187638003738209989415516736290310549402905372537989577370008817865887049043920910261127811112935519422778192147007436373735190083294733687322396549476329928275318351812624007118920345658855468095030263042519219879777374432637260928911109005219868755372281053055764147614824639858637189772797761937308767042649704411511412890062126113885306037367229595816117021395030074141766112848332886016736716732035880470158024784864639807999576764707923310644566260337307361589922617875267426013536007295278511447312992791452450623340290963971759232197958011191466992839606609054620079823745212245036016910411563221953297269544555151828409453955078674040937185323660387796280514312676627403643982398318817605978528134663946956055581184589398070501135751682068069489438552913508828544734828151760971542385952213273086132204129233077656558692790957004784303955681994015964223359594550228105654377995470862448559080037069501560801930721464897267316393892553815995861702205913973027090063858841495346162764260442837389125191847819850025498263035851006341034437633407334699031270355830801124354815866116467990470409954792381287897186780109815204978806050476668203662967250936939607313669337472036724300318966620499750652520175471357865734643836467637926850195846151069676536390244748995432199723190611693296228778946122656683064351895616389957450772210945127991885324449376487789040544224233470979587265217693777637079604073278970245582953869616412632465754921044812238089336380764949967196348615540609091415949767808774619122770828684460532572718019232463199946676789260303597957811827900047139409217193998740760009997069581634479233605106166460077875593954578581356191179734847242756439544469001853703038899472199830805883405836720473010593371645853777333738261881997860740674509062922554889908344358447071868346283907929470801169686394851185081164381346028123477126650093708643498081061192511699839069112411278849225010740467001002498755498035240563673715644048348352246102196750403342268090196091918367697539184488898103076931360368464907518519208998079674849520642528150398821992945016312244419290790582175500212464156438780114736353486032318176976992568862342243651161413783584860345729184564597310145801442339103436619091211751414322400433814714649570280368174781573399255278767581363359753605595393840176867674304746201122791642138790162717829363320257354064982943159500554714114406637280225906499077297215318483539621059207509481870223099482546729701848378246112123226391943500731777620066954059960374037654410628719241786662420882146482782794381136197446758843595640054338403532921278595748814000737497083250483278575562787738665283977888843093724219594555535436816532937198863634368179075180196127350934580410944655172588496802612101534669727381161498560713593318421251782086976441366280313195926629980080049993801799153449183914186001491765200955505742943903063235405129132722852895331838612800900242018592068301245576885159986036670882144036179949757693010158168404896369505707194161819229869985461811066431624215434388574483433888071994766742309255414252204646132633302192541233265542251790039623700118772248801218997398674540232783101115581388876253275234665649792845609117583939724769569229581647917057753460630170075274314017131409347082620758055636513836577977785668667231433899715854051283817539517288672679243351932427944640427484557220427137038338428243358563142551037569101814745835641467895345086856290184867609167706199880065923053443639571728250888425996639289712477574013093554392473324079182045553817663723533222093512540132481590298902642974259278789454750065499469212124666206626082143493200208055224057223984383044936328281922845488932895874022579320820777499212636085911890296466098389588810029238820492462297133229297037751993136100980352670524486853226374478046384325646301000814486291219945715644790099446084293682847965274461276533324488110332420251747386222344906972367553788033995966640307214375360233103696573323152377229874426905668961779628232189871890962510009667381607994856169911256164664511017559716379949948745173586586770840471684474770849909769979447071072216462801394627545923362533618584457602386869037340402342997958662188971415880457537565078504261021206974369709692144094113468994263087437856931812699404387145948959983500248233904352960214104347987103068353429770829833207751807152848088283370145995157366923408952207467531109020004087766773452083041072554159390052576034609120814028417742037713070084243715867293605934806649256089060062140073524622034669434043776297371417295657738443594005475357783364787173858831995725380639809960264540532720562873151122978157160862957374684566542360082900430576533154127168989746228513385107670664275111061263511316160924243466569700709329952178094757112910514811469846816362099491211915737590934654666176085925249964296490499530084958760781963600471026739400740732084362442003461449470324239517678532424534809937752802805259240486576284671412186729974077030839307426174014500322104972620715170167184912813438981955969766521920190813700036727820825480844407705488949773529007409396411521592813098524327606824759522533080282483140911455034964805588336314363788086926850984022754356109530387770701212000289803251790104923250778850259083263414354851687722009982947719960230524388558044873833160358617226920300671018787426069417860407069990250750049323362692993214094658099646531428589402950507599383742467138926990433088969689317122152250932961528322314040152247200696225193121876948328674200291736644356806635821053328041767261515623021242888554325019347747162804383419392847933486122205735240128775008941153319230976508281811189635502495846710684529264484555742771213474285886128655316929049767845662596418247266927783440026607279474144408370664575851237670920004831219403483729208560022902779773086485414746185881115702402873149042337471022051225421059966070353839506482334592609712442501847780809771726739247319401655039607867012304739576533280658508348412526008894658467311915729174574224177949335497989190078206213086108038655162237581246483554065072432929291154509266713185929676930903243805005047057980295747163465461868596663348164737563758253029528629237343678949466010883529136131466638328071198371749145500064298208172745061751153316431785068605599580414470505145134434661354349132377733690004775758504046993549528650821231068855209618997124393434111680987953962481708529338557609002702279497412417974047571783589151301019483114208868324943314817802337650953324299552859443683435519727318517804946558350991943093702256819318024684488318677087309347278038059155250231204064223609470988530160758370543677837414644116053421760045932648901251010943688839493750108078235517849509082358995407264746204374288810508396455884266548692765048403283121820919225254911472664063622030793455066039883857248600510852807898750922954152053685929261987791689221592205220551985320147926147108591884318686574115963789931121609989761109796335654449027343590983289478678839749661090310579656789884814633779378097206339058401025151480018804012308861312975542072153696492705801455275021614678086913660749812251621634354851006334434910353420533934694524974769550862656936276212610915726891851277303763839795715936693067949298648386633844544863127608551005181894581104146470845401536291458227457290153410579881693540552831867360382508835230473920214607034933191067272651277179914138372267050300428895154913480292363239288242207957730865773544300787149940796063032576958992623920596601385554180341966989324367028510494283621790242444777381925654599726442141645880183324265738561878678959852363478423536809059927119995597854014483596606215632951638907300427568254001923588832030019113497523286130065109787692945531139668955583476437080703315692464770566831708735818394804538875307517147833711950768797640772884648664979182318450231538105517587340718962538798537621437172436820710468814205249239365508704489135541655626666713154192176366666445461341970658844048039586284011613603368548134550509359031416572525760552586987870305119319075536363454402515452339582336587160381608528218500714103549936084662784075061236838764462145891921779142593006497312418546365599567512958502030822784103261371511351983906124159646333982390087897387993371672887203567894869612784691802988400077024046141684357096461162379484580024369153446231929702763704581054668618648920064818578844704613762942820614210703480363084411167800614815023913690139665758030939659044159125120969529735812730979032583292747939969282438314920625902933092860103323917403838342745711351398457747832024488386021968076716331653498673034745401399921598221116711151254425853760916734327699904005844974347590556420630769469347283565064991077767958926507983234810840182244891170749665104061875918474857697210367432681514842019569722074734482208792869960836293587631653890478390048742747935151528419727078614321965828417069390496815772568280501220207510923634655176931515723238105018022585517518247822341364317881652068506613942262653446972893597805755792607832166738898066125192388000169534325226200528899561086132879950759573554749552474243083287019180305647708273670143445393759376315501750935185158798505069463905231958292523097514074052545956314007436631365318598857577378878419026141186895445650421603370647862526272470854341759779500692649026951120275026309543674058016472131592679453794369497526101844660858000783127191316021235091382970425870233641604644846128470918634315198653654660902676182247471801225355996813235223866795597369258068959753037126480244820458137018203432869086371659833775710858330103687434657741106218143176556339621006385831674674809188717077376535589866220294998738274442554792411634654679406036502474602456189525909349966735951227127320524011111391852302706761427723092229472881013319296333997818550318293443263220646980101295170455704300632501562504315083657628326741230020495063971736784188910051425253052496886256738738477796628662164973624028836930961735437337313667758358357017944714574708124906980229776815688257225708949890899120660554025206080132245048251208137567437661986796426412986059431128300054088818812331334729747312126744443118675943209106681841781026557335326213877374737553457827904151159313218518285887774417722966204691386602093496942560536450662133317325961987682588594298794267093801141054153993918960836361924874187916930646357844807215658399312037940118324480201556714142859863727859846970740475543618234815879601141366235245480672034561475693978012289565852162256169671298369008539004383451036299591188765554858501038242000728257383191539907527071272412720139581995535663735512890906976251070304892027945259155650048553046678249437412341710845111272716022109419314554015799975257597062357119650920779653514558284969464124712726275202638568898807683516345882147443822121862964661262708267422635057195047392386350754121166483026200971276710048982671613245191035278362070128544446701113052325226930150870306338451974189270634069245458809137680372957533468067793504686478745877073762192530528748136198511385757845429291076654292834071343502250882818892915244527783987472190081314380720430207245467931758778466626656846528861507688403122321218733296072442684943391394823440048794731810015672345261770257670886790779488435759761351817722330324699911665759663561548880404973201297560095265988234960223329496042355117872785529240802858776678063370228800022181033547073381937382622675719292593356370954061572778057244148311164042802001173781045377356971226702822063493126905454981671849950281156890107968802900112565891790555923454722921378528723282181212503451820595480967722776607131017786034388295733182064235872369934100981061723496382468683009133256534492346840680693901747353201504440611383475519042887754060775819161781154130039925740378644359130190784611315598122874333833098537839728020727286892320298943973394819817757139247491694646666789612342910937033879325123377397138802549835070664655016435659685314582650756107057247029983740904860172437641981422704314803738452936874360053639126726507615680781314200412241195949403929770163428124078720808521666306459230567032070981617225290269602306308129260227978177435716138102919298062250972902342140272119169380327132983200837285066796162815923582866865760999044159915872039418368224730903669496907177457012177714467268351119457992357643789469356535420860629730104673071982276607743930230946886154828109515202159705255023615647835579419688175556091385778521922259647769941023057003836674762355069788231896556982414650286786318921131224060618093860488326451730840169501420821573260642922288691115250254993602180051041932609690738474883239140241558533260115285070430660932244424825241441746074448844534185528241403762246430116084929486645829985520542671517405454420206280703433294106933727264297066891081535848401490945693824621684799297070687378774062892832545134226040883718721990383555267472209412312676596338155725024484611269592746975238144932164044468989516224006928370958627380688833629163724004187595864552046374627569583050798453815347152306641100725692362934927639367109131351270403054576969966845535847145591819283771246258352141244581202749660784771810569945704336050816850958945374630795183950034717251948443599494854468526812973590190690653598903356956031006447968263120457319101154449655511226841732515227738630308135975821722905976613762764176616347690912507016199955375964321155753439662168827108403675119299960008862463219998754180943600530874133962692998207629668015488090523558718680761698556060434175392524049679996465176000269269165516987526525067739508513040805388445060926010964368810894202685615907389985099082501549463918220970064845536636689968589228638215971107671797678975011542808723039128878869961867893071982867549919743262709341000268510325929632688185241489579124432764872180145298218574977142929436668937836438222965859111417940518494207357064528325988459122593949274445571466776515114569290313952537580463375857964158116362187227661518982412205351322422488256167742459676541254033178449883841113760735007720085697277626487365278338916361424964210630883493089033208487794286440497222682861859946689343794851334855905828206964612394649757412236283139773381908745580331675172722386647360336322942216531277635847730631534297372774923149739427339168139875171650178103261317455063776577097886959767574221493716352884568741975606953600393373320206516493697081492295834331163103727409098662574705051470227230962962287676893693773871239020465167295592539637570422968270137215978496180362348043379063970358558242210882352987239496885357705045182895099193763474732035193828111442092546739336782292584965322008001526318029140864688824845131277306267980815595476482850417271139264031553850405835488218720632498225683083781144749672788833320028717670034369690112633377140681492485609922237095518547384457179054176873927917178516593198682887564181867768768410191491807939961128907075158854552469947650821767567721164663642768199852241009652130504650834072757448496619761614608405906074102214449762236679944848377775461200772349048346804799553637492002228711271851356066168229123239218005582781418581599044062405262546367710924438317339847632851470653500079783184915824011759565900535027064038408707123341254904300589255268336910947101885680630974863894076607300957659146215650501976073448899217067459599010087108436183443327787653682587723082233443454329275264503508275103688527876967792475290543516348471778306004342306802510416927098404294232615492831376121879256159805549617993488223404322283765653188612575026407804515295419719419547797740615546242676714336470510868155403216644525162310712260123089371047550682508603240463908671443690773244134398492841467882847147933299621527265676834010400353802720252754184352253722834489706581156085710599336667745198566047220084160190860000788059526818266913138417341819905590105823592902013540514610372925984089244405799629261209829819631751214535332103905565185435755015506330230393983217424163887658141828375495738248135795353764156486001991020976353392075484934838869281611240904286051688972415625937579583189895007292459604679885544190931123329852718446233567773599333480407470372053280347069763700271572820230730576961414871966420425572750491950366323004651395418140725108930709443978312110733276687592803776507172513608755719376485636744855888825788766133918449302119188229270901950014684234363699275319954611567138685704507441432163390407802999234905814465652044962335154357201055418206044026298913181811835652148013865548465039391744227689983209599473453261485153380908818440673726935784293194085081800541112501203457445303331397380446948852770989980569600051914114142279477629690392241524461598136812557513984940301589089128390396906823715967622826543755905616030020457274561527945965191825007133487156545101752772344850870016671622088134714559577331251876805648529105407392802221120032862781056402439800380701905697739652978779098800316200668984037215519624334297992810095608616020149108819115097937929003694499120621765377482371955324580636150130098086504424252934783569851494288463384019650862826192681818133145352271022161786885639796180425572709401969041952782218972371157604600163990908887257182510468842834618913181202969641334893176005480461049509279897517631114740226421967576451984887245324003253302518248307749123252566884756169542393488977846191575794422770855820578541006163487982613985550919249337634419693864702415434328232827684568414269943837235402540939373073804634343828207196553140326715847016941483313914996741090812530998431631207310850501690632931910182110539558556703982419629169520765719992723071763730813642389401482326265470550903841961663957458368747626735252558119907191836237358436871834305909221799544996922233003428708226933056544676836776755877960837571832810682555956854316804574768968447920124443974874700573757245740874921782756424733258593382718360118550637271168238142462458904590760296921428081805778560188655269099927922154712708959240179476507844514414645517172724548476941607662478326065735413894461988583756749847678053698392957632660226472399204136521623736361466640323155185415154811185810844339855150436734807098016306252475101971504669545974914141011308661681636860421033880745651994932458611604871116486279983802481253941899013637727311133834266778532592324533344853759664716208338537412263555308937443901951541575679942453238033408307216841994789968124268884616597060833397337177144364986798767187972512615063197288554063191512610386496203137400515441345721044904467051945156922739366732497685739160310543114816892225159257668780953462048818191351201284162581472102780965979991944160344384182326231448081673218912379946597469447371994734475461447290698588542010162523064196805972372284233732451140654028375526303970784269804597321019493457002525055959469814542210702836906765111338008271970430451924780925117856272910352627916974258068402627307584190214628440917898442561629867390910053700297885506985823190928855440993457717507878492547917137854322631465566615358702116916043172098426523231396606548893085383019683401924136867142069727633671975814778723614330172612555205583002475666557171155769559720731113661647649212410007432536721117181902698647349658130101367113732229307682146982330958626017552721672584247759443215834483251667717953813744964440656738138326645751744905748004650568402111858982706460025498422293207274982206974769806226082660110961848556935211806622929940380157261010384282960889874606563046798502292990209291932461771606160384801422508869123734248586441731267184746634512149080855321275811894748251785940175844722914259381996647903390875103666661541646865470072022022545975348098423501364848574947885547459213375096376782165427914135474670062812767442222991188279981357269073785469091101556810429717305778842476385374026797415237094624639434605121639245148210507976032685986609400873234156423535667666375312276348010107704548905103240579565966741308311579279748096695434726072474106920153392090933458277744733961650093575247112417075063503208867717412193495146667638712637372846116040877063015837600111533649212190203318068500324666379221737979268046636376195583620471957455881725511200080419911461363395552011300394239159753566741136702232551901934176455731469482202225229548333297745560513730774251770977444659807607594546606593103127348715553264389083383702773822074314568944586437175412106604933774542490470014903959465745943771237897280058429396210552675039566321492376729814066350061202360793595072500261188229881702440932306066540097229824335376524377994159185149339041722501469974253353780504362141093577235490088186907390269514016697214836261672332385111763897273755722811689919980399572937460322172819284534093325844116963040623830035426887429021182429856451245795207347984627346195104552425613736299433014983937291110870529969519183533650534844242848046310476522083420859365173096584496130285833654819543598186756220294161384321163257685982562967201828906781124186868784597313387140418729700711919867701293106293096949899354813921875928804839845138740758643027656157147335183544073506255312343664960053109148813032384462652043513629026265933306812051158885104358569945649938869570706111923572757110294196928994187655436884256928063861435130310638444334313396196979733561523242666417066390240362365593574944251038356824938543066369565628381349757831909024277049909445141111241230206043422328892597491438231575907984423517784541128724259493533330985710978755386839817548252121751810308218176505155563452429948453904577562674465785517591489162251178070532881170459740597598645830080056103223325384300750981134310120450833190422865468587799440122965616563890815959223940343922260010197221765736217116359902575752900033866022749259421935596129475518513699393249692786635065238826768941167638908982314619095968338612311858671495757270575686399745427113036591818384717808180841752010065566213047632675249466820599746393688064999076413425808930820409023632383517830632217617206433632011040344099409158405146878326260477568040712615484260346833880268094044793089193734239036386440254924481157390763168026646799679017556718706413633240288705087457165871395916429253614402597840290871343774441758956655811307376296889347527173711313779000310082729387122487986914124280084502725122546352721992018762423508027844796784337023680736143992859048111112541931101350959312727661124888954689194535563621879329974884586783481448626980470399009162895288368911374616731561702410045157757001603778370339572539261354053250114657419224801218243169853035363945988575041132622240054109705194916292574379281916876204926756847774860345138396946799094353055861500427944483112063090593443247000937536710056044926556034727477807907836395045187624483926979873135352843484638881332304397927748022015296192355486000473427309507867806253076736433322824196132427056557794522660656950161892625626948238005695033649150471162428579689682908969058363758278283892895520363223930960420462287810637658111782742762532340505564585343287393682881055582302015544340256660561199160833124527637674938321952334956317862584221341665748262887744717933870329083625039959451591113255050506004055193310678540221401392893077471031783341055948291837130769245697952206414022795846705868857757846872528947007508518500453068757078397466638450736019535737073785356700362585582066737243338623835066357323527255029874737157104957827619393563501675928367423085383857351276128826173200948780873129781099401372087532187962176750723431042040983005430754543089347560999967053006260089395875398030047816817127195093934191068331792429451595438511210909172267321832118162279570595447822536126829509548622172312363166507257218634531741072397650382647261206586272339002819509088574096005768787459135373146151589768102894467346086010997367803156129155718923796941378351231627407516945694908680544178759792003655469263444618177373227167003444266776046094924812058797064658497352880792415315639324344125789177935725901786375825693806342504430545882795813741075602287584447810965427651767062223706972419791802152291454833956256228460783866292668106052637667735843824873378258642885012123329247207096075960682756058028935698068009042477941448052246140801929827445359142613006731539974220398080445375011953972619448484495199114028190660032628026970954487165779231879915526503112323553639686684530243015961973492262352274323053604223375606417777316238560718050405591823508941421612604389373200349753263396931768396397408340876148966053467650020180180950179015247573815905144668404233204625195859647960289531559077547204187516804221048827397952482737496742588221229084184267327354050629747395625186097845807013227661151733251592801250066103078456552279339066119554676984670693114454341653858729999117725534075836267307205981923186415819683344077561735876011585410628859025148597066302566272781881934320443544059426417472874446384970887538924365482695425677051955005030485739671925936918313224995238290395190787500747741928834128339315143605456554992740034000514752860117649136881975405835181301064281918542772397988891155654420613295214834039746559537469317679712605932622735788936943952814037155498125622918360289709884483519995909272476142927384761134273942707646596586099675123050324376092528374535447598558719279745135456040928446312383889192976387224509486946643316458586117087884072595663446488772838981448069759334634892092084747933664114769169483043759599830298448510466971167611803157567043074868319135015108662681481108066267644488187637341191046301486433951333169438648671912530511977122226051292720662888283651460221944708196954631978248180623064295919343803191070756728911303416669390683766514373340098291769177833502351137723780700801344937512480505007321973812385162506320810496669536517392868858139774907719078245297941956168869722316752104506671379192086538936749986314866410170044457629958945321955986639580917941851056008686137283520554464203327542845960428433290425439861323590988961610491104037053812955077468163875576813162991902508157027190764907757843602169772279041728321524831115467377986753486330097098407188529177293638378968670454493802201715742430599092277663302429744170450074589944751500765742782902593896377634935315947832002254243267251842300506882020825497212921405633725581581127104741570185389317829398787712798274886567150463224664385555348488786876641355612761048582420589186519723435336395723609948081681739740311903093045100043961806912344770855514924729667850895219861090165524898357700496192037386165583736313265234598245319951059160583790003979969517770697952469522983676074314990085485641433272200349890338404285312421123402100498162429185892422243495753608082603067624015469578806472961926684527511160095905378548316367124548486778820172520546398558650035823500202150851642366350078776071519856145256264951591055507477278537981540632716819511175410228892983782225453367566519025121682301691819839425989997594117695875215092794637661963360871925094446859022136218571040722049966386358712990530555270284104677262021274466745452154577237082364445335706452251497567870517194800500802567824607818185487583892258881641762049036112904312816748320766934852285776067934846458657669095206610087879064301681675339162115205681084467894159123374146368211388337577326140274624666451509892104406381808305608040137010089074171937662958444216912279089328319826772333212792007680916610268387238432454420686797560394826736582067345155042676308818158558039319161732754429557643651620151664466855759372594097115187836921732999384157882766022670925291474618234186636721931122698423608685452041883128019978033487875658827105870237096130274799132348225813769612170462274224961016733754788010634085514866228699569152716263350178980339827364487742823153814829001343256788832287607165110115958718714501057834762975288743392745818276860004527757177247880209896564385294238817387999187471297587411654133239155651089087752576862866168071921090343265030146354274920447493124652014732319757703612045011747939862821525354972026717908950519508590979562153891218056487899678573068849963903277813229401520730505202096076546883252517526410135506514502980213435336587555916168367494289441214804865998225611198797208669302128499501664795238170649564273515525846846289200141881385743510670806803934006493980278204084501559743111297779680235822043997189182740819520245230161759947970828058600328892886741062471328690946946684390420120577410669946215723851109156923759278558684493977360688001922934914717580163165254747272854041117825003154049416495321147450754966548023101855184474204933682149867867387892495751470690246623904739663020066157810935792046362771350394697843435917414264377803119021954752269208954796887825485645707135566698502327546123988230278689013175732191716784930163650138955291315901174224896073749460202948512798559245077379356908133386974703741573965582588573741349035827814340746255423551643968904607795838664996649445074756579699351493513597320013303372081166289167650986948072944032991761290723011140465891138242727263296851760942841879398026052395654066459330078965741576697086719209294525393155274373528280048234575091448533542404918205830211736693760497384227215913483552040425761699280642854714019368556141102765828085704034232587586569465009202308498308267843272774869277955040661110043597647686786538495502722558854224986136573631739614809989360847409717649547154334062370732658697527645921337429714124207051122564494990791441924448328393791380420636238002970028206239318075619226485397394933083251970873138458119857017100249136525227198684083184047846936429025111292751766993988620343878917517267572217442145385761100283487432190524333293992809488390615294064110187937539411343031719168526355316735298536398677616350661196822472348640340968103858504606729601476131074024007426534024368037921068446153419708080881220768071106438905886342157852825822877436754701408310031138429853493528249358504036234592392668831144807754671059106940654723734658778941924873236437024020240175175970468295402550796773098444317986354134645953902276574320351884311155975463523304523550552928506363115240811767846454714132798134065927467320835452822766343059530547343093817503778723176464890964910442558796940411705277662970232569524636717758458788220284605305305466181722096550981839675444011935670278272108335560644665752280980586287033307578738210821129210210389616523122848792032803766538720195820518561825014424096283660984633225284110157417361488234146028737749849149845904629889032849256083957399140591024120684557624803459047235953688392746190063530060252868443454660057857456872500288797407812699501435969649476414931850496255521694445285574529480723243302773655574561042966088356974253073611130310823800031585387362868849210917491803390548285054627864100013169471998948894209530864465026796100715048439262063311711860861208187157327345513700141867686921967048859010362423315167760172717422330504953061585247919628896759444213462356519312219428440714309789550559858862442017362826073505116384635711187846834715883490623342588343614274793829548341263417416882602888735547816653238321540768359096812054884548171892692062036709653605640898759284508157427478621941367169943229458693304953537229679978004871910203478247394917971719767262538849528173051360089227052430855648745041216033551514931039641863808926595190343501979503662299371070610980328347286934541513596718150629766374430994932369570495349591419352727151418737658694512236367107938011524216624494119800446557212597535804639991023932797708387184753479985436030661774685481674302535091141422536356338388354354468600110863848021479276315847935107106227221232890003040085551034607680665195521686567189181334850680693770039068701376254055246684976710144599349618422468980417018602351019649901337786508323436869443782163920218850859965813111265889482917734897361101747392459963978823770846435932564640554466354564506278165078910000603578958471411788114001470455657924684793389859044356095193955983048411907085968390826969646301033129195405483566334707548255971622409572456078995227513743172920432944214571757021119664927329504589243511542249892841829309680162790999014391000651606646547657233038464624395113830677701241619910309399289403981160616742076033829175930656604400871622422948641209276800548402635460460212864312968617604867685458733245904904458154468976001291767593717828778157463447497443174722457141782495933265895990123263165431809785578257753550495717798199024612577728494463535252170334339313436451383042589815147736236791994181688328599187157217228765199470314248248787596411631008191276660288566473109611646667671189367634721290963008692396234207088629338631255612873406534679097419938288166385060278732800485054491820199337871130829493390254440845445283110790671755781580093867536003860355768063981064235751099733184028068507709966620139938302157057490439491154383090561583001130141099139583290325869583767619707448919113263121640981843472560087662111596951333890462589050402103971688752976341156530163761401724174127541567757338515633409689244301406179749753717442566473493454579246967993011026194337636448667537561087691613043613748330479441225952612415148981699807681018481895780038325763387804353118569719951740840404292157320717893877089593155702274272826581614974080133206343384008689023889391833314200451596140089861121562924364169472543135617018117920055959285439183334369451919451431715413500742006390506071676581905824216202897696844090552454470012818868581435495454205566898387862448320752121741094873647410915786040991025855586394013091551756002797658653840756823639735834723364825533520524772296088193054082105328131130488092625504406239557590391944317141526527540808952986572630716340732243950379987148815126244606312813852410741435979408576657852516943899274655621805886920662325044937029212885127459270213767483429277774127189221554062683300828600901792187538294862915016245407247778866998890070980505692506985818373901350763943654187232930311836581686333644779329007078574510611399148091109971279294384939136701584241896910938623802725764521667814022361322904680977248778268641881228779934329767071638705695119901896323092458999902179757131345174259360325136902088395860854675047773229290628464817203195072814911800959505125813447571570554678484436237769148191799840529066771547929117426693348858567088139473448486214381111595475449852804057422506951464720084246244722993215792264672178814520648208302769361192173852367856740962791085234229560906326667104802881922637139090737684448093184449896992931060368700953087272410262136788706972698569734002280363504755236880049558697359039020691931283070710617913556767421587725759822191294318645745477205132894587827375775210307119425545175288583633445935800552400893120991882570655486639231448086237441459530559003065809529244042617675254206771033553684955246546435770101789796416313038674952396108289032577244899186229965198423278274995958934083103129326766102724108073795462818807634269861761703310093468008306518347713287054254996232603250116192827302129934934139799634261512648506347348327591363178682472894449321466061847965057304067187482841519147416841690897229561606700728197766108311410618692743573355356462725414379409813463832286243364133478978890912641531873040605317247738103537082669410654440622661293766233632590613838197631940130398985582094820953918602481990989664862713566498757014979534006764478586820491076270969775705491508796197691944139015941256832679426395790182782545568969968032231781589778225657613871677013214802115527276731117341653118922038451473699023164776475938806016075537483382328545825950629102393600165447353942982876682073712192752999073697440811342372020131423404505259316972775590585657003132022465479086657583451266545682630554619314754718739127923972118469217783762006326246681456322496877656028010455006968281528657542598234834009264710128328430643025697652644694135027062145831911049179319414349301770348702633346016871029183608374125327587763154022303956288776844723280302142987294946474939503146491804133514202393881524875937371592838326600354064289535416985061992235303829218610486918255269025574988931977847206199198050179722622476371814459796413713846207982090839588211870480155631852081343051685237415842174781458011563058311767877089770942569153607878091136284354824022828394565804195220130311977227965959838840936358355901185742704482665056343842162536049834085438904028543049268993066135302956244002028267343672871926207940297350617969254101291753762660825396822180621641812462173118967334743094220887670606305467169963141821559029243513784364350632262093120680143169163849781012271071502167924720562634687067390887567539442448270838250878826535655819744166357784924176318814836216441222232363549938942990784092165099611235325120110314233835506549388909275961105369398083023861037130475667626055583092784943578519785639053474326745056049094077085918865106554530081982644525281740877465478991615116348753930674193023342758365049641568635388344929702698830212838507501173072253194741218860306066086656547714244902618109150955830742760829485811035201107033030587092579512353389221572474247856716767883589737676177211751305869343355367649036743738817044405436987385939266494471535038152596325055300204906764624458522605213931219629970578255032704577980448589560702099021534466953706842845217821445238667104694081075061673174785697189794278788716052834504290221224398343390694767646413145818070481842165818603669376409894336493814267999197179815233510841570647616502760453863299952244303389384486986948796492541509969476646546897692164861423923568275318509654088133533236031501845430918115897953009608823801822954836466507308346158753739094675311255426108040965927527145627225527350121765782432201282217368454018834091125636960586741735441883030291042295409312139163251665271628121402003934852462926770253355678013212110007468751049272921506773328246340543305146411016945801523928106487165119374849628471452059228602216430922707329113148505514626087654910369689708578112513994774893832884265980561212183161153030419155186977220696407051706558307454295568020558606479198561137208320213973371589718010093419529924086318041862299694415900148445348986206796450530773611839913611440073059304205749678639537317291277835848215629148003084298917636403425821977585909988615422915064881854893919464924424427073460653662824110438068746346424452489217270080026988968400977049906879061899434905998791232993931686542977873405363741086041168212232803214430184507966819142023711524639482201770931427298845543362729864739836067619735520646544148606206582731163150571772420887655624872226829266602037148511214624414964999515202973569634689579349118486138732356737272362867229569307022272826189362420914468343426468002660771995022165093651912429912989094967348869160997557084153856326697999287231066968120038735043570013902925124556125259003322197307426285577090519268291420781601592068468518949602680324164502321797845493500368685311200743998786753531880447347851395431773960600553611144063536421618126021263865730946905932559063972194920380562876788287430919096154068691521231893627892498701245388290743083816074862738967877453782363709467889116034175404550891697540592273940492666239120406468558191112089876130221444569725686254529501304112171998091066911541574687485849599866199083983781712633106815336413320408361685895059251501682768475240163473441553578291894992138591091122483181871721948688386571304048294777424440601099690156383523782761290959674815107225829181329982874270549873596774842208562067520671599421809118851021464388153607962345415092134034300612997868682579602938497659187127068051527071418619605739031888512824338726837664102076717571266109274582233522905129948528281613592546990669160185027594016816244982303860880138242498830699639176230939613485459945178006710782255193242050873901267954978440156989887507912316527747212894791531731284579690612883700197518951091669085067985676051658730747998414456849249212797902881242410088408847783731591936132045482630356747492775654138559987303215905407629514363788522298669818514967083486052744652644981763753211029230625903686358567994891492488089604126511073389096634435933844124958326982682427601020989659454604773652398711801751865136733933944944267677542321191082309423728968680220347439593248623769437410866602820174765563194951087225889202215249803245839271724279586677378380658016613729297771184466502501152581240730709630180406940749655684993087263042183001570412013792245678731940258213109454610936997492226185837465197323220368127821679785482540385357995868520967119563235803556744705872326862792820603648717936660559441175390180898377902808434422479687088565952716127883634043276080005804509481613762417573420339477986303223673828425719406058354743783890446415406579099993185608124308463533967991722881263788799160033833788588455471982316793889336283777320641146617025954208508851805129008431630715043310753954554199079646509023164428834474068719718935466735649456812354304961298884537609297708931994214630482207660235398243215761625487612842541210616113313364882245413244897545356626534914240822491340206617500721126943061249663413321878554680294591249172174641038186713621514571649507321984896957276872688364311053604427157154289136681571274428332133397633430005081273956718748263504621039314324319975491958090961365625700243201665807095188730589919787067936829524404853420238652758845077629278714634221930150056380457251317594012285611355436854201081823715869013394106131783292979204109913274541054713071745330047233839565461871634457034018556047181381578089815947036849425786821926363634477428221860596424745794721701500258173333022732047386573215346948938772327005556946006475062041487331611568622852690741688093499017469127606927198938505564840024337032655975293686023874269601591645095650888549020898484988762500950696676359381231697790345117805540667349228798064769733991389207356808640524705632218673824785071644611430980954948809247373180071966058926964767438019702682241032886561113658492748669631268073768413367434448435491569475817285335944010063322752305783993875303255072167800795954106798161051287012353251890481593561721703239862529923914117857155601316674495414313623225134309093811713897244019512308210327892658362850240295904940492941532776864235979783872458059395139056795560489022429600734317792826184751933955564593715046875619975797431690153572144066875808686554524850048273571308531731244135792320993581940084780355302666178999034001645004709491013833401772294629926564233454788104605647714030170786181447811161624796255323924406800969011790922851352731479550364501613013003828067884533563391135173141024267843977071244855993926430774456327190903208839351852366033052369976131317334834526825772849605743916715539515852956333008194184226563499761732066839099307221655802854054586971189012219660240669460829422781432154324365761017502059129601843671261833291453458847496239270976581693940402863874677684859859221382070348649830522504843916857753454819551137494718952124618141523990215336585113352535414111656440333991014817160305596064373428680323910031407094111326232632399839699537619227136973500148398583884971448168151714974590795901774492774451113062728420131635843764179209332924316744005546123114291616263976070663560386006560837140438303004134347463989548459451126970333775832905533641222535927524973455348333723258625709633843342035966408972856443178958761351810094275452037400888010727884818895951672312621189125001920873733861336501373434886404252252001770462072668820070446561847389682355647147107826826300452149043241055363554525591842135419686511373978866630975008142564319847403775914587895906098457426078857863202314402576460524637248392024315470427111900318904204033381700098642286434180747777779834425559893089229069745701872020468182941675249134855996061980098948447489166287604198006025970012736569393629754093208594546675623408046150135458215508632072266038934013767305762534065551698152777855992998824194642665167687761191736222702092278336052507704807075907180343633570756382836596813995390760727068181365657591986683751054611521808378119196475540967095824956017828245672736856312185020980470362464176198682717748478222463490327810885463141517371814329792883256249937115629715737390115836310870448602510300496946914258386937065120377046630824216489443358000596868730214852492879538242286100073642036496791486942425477306447281042550872919341960667052564506409608790024404064247311413566099006514678880932791384938464806546101789056276456355644526787973176600856459859045759450452936327322914034062409343851631402526002102085325002803141809837523389639583076237367334254811893427718926930339828412036495177176010034675192081583382936321282066313108914560201482252304552882944291740051438913118279809819848432290298386962825148739445820391094065328018875407720949074786117915770017190387912806376236617440144045207022924523204540576280696579308502039812183784020672025012026675295531308349435347193634177273406360262579603136511978554856693728464042046848927715778043458677610085289607369314413346487377352501592452119765975459087695020605617578193591077403625835765360080893765328137084369439022722986532221828843740013882581116297155345756740321498609755428688657987436900949705097986093770278357223388331453980493989210171433582618967400312252799730336457106160728496826402668234770455830154585574827171372435847099486137265871302549402449573855889966053537090338925114540555812456929413788827165199000437610796725728059987482047989567855938858499483469651949308978149972776347330585707179027093568227576306393049702296633955287633799130785859314207811335111432012102601987304216706260143575841179770790458083808849808816662618535883559242006305302464346289923082030708064941073041567597710077523985586867594573174476709455684268903853112849498801814477456650509614898991517629924164287800047413850804520329530539184097689946319969559127867694931959273366205430918120556692462152740786651432352659207070867879558641686045277535750207487671433377060119129403158574310767777795213590261308082898324883948320949988456830767241759299430340209439932270827548357388507419917136940049879858619423446279608414447356652037928295317016335118153029312723025435629105545863957777802211658866611269335740729443614557490563720071282544811355783402901604851760524329698135502747147052635429352648136623886958489819516790476124747446800847725887139455273671088784750842568825983963683066764766451330823429953840637149396551260259641269166395532942221627797607874955291748568842182486374632474778324492983235440257156760792867425952849433898967643436575482307575478403350369653768736549802239878011920354404912882683594195397184364725540905314210556663207320463884838276837926105500380573953794021513641366249674935373241044043486238233624920495354428579053065452772650722034659290443202201716324235831378351252109576415274124465776261675436094709743356400769041436221806829935515109138556573734119489032184562204438771527004821101276120814078245264988636103832650848085252951495226355426460671844543042653382666861006655771695171442956555905423681933938717532038641155224288474087963872655996503545316017872842995906248975694314657253297995656442753810259566672558761130308635459508684842081702309037760107313710623429337807454750823785605494798769021390566558589286009199045602603206378272907615539703831101800844901121481192777967483910272882057559782053508834615002190348376576463110568401425042106378331650979093472594994266170452072326910171868068931598950080623997586948389705241612230171728940390466998494272133929568126161004650902845621267573941439279503195865023504811047168563578354042648572127540263881287194620920381325464811617031358676710643658766055165513311331702271823215687736219584821685646528460697066190543954014065106309733365138119633316594903039216427085354228049798026714911895636425174891344121426361554780892145283670822169402598711263211438852993916963048048178929629882011238074901305294249294801611435330239008067065721378167971985686130290301299399445124984690100198919360598279169730514759434649602883328969660815056345056609378129236133490585780550945642103530907360195844637121650731982015642422013268456687741832331024731921868515643412032717030573066078517538509706917170791725285511743627871301600952208920242405030575640215372736959266799747810707279372391235577709346828475601076301279131199539176281861594303820778398243261731966313336206379349676875089524023642469231904541673862358360482837439278866547759485902892040201939593770656732119490991043352855179871403502030760557820191483882880946496482084241766992456758312262478070390557653141263260242922436203719532918554718091596443185685205788235010309107612806044570442514799758960888028125997862387743549659904929673220844972443458243503689780365184909951214229401566917453416838309035284779643067608611599763678720495505795636516693834521021205712467189023635837908339119080206899596896990188122321855252869348573651888630160452941028179736080689549524036066488944683485357371170607994305471921648759431314126975952516610252290957537550950933718544900072907676126346765291664645580371533060205534741620555668380872331011456706082197136019911669601177265351241440510936203601001758405334468987565349002447580184990285112905603628154372796762883123816577437517662456404578370496485690904281846741434107660754984114657421533437962825237739351775877039942552131816901739901861642141354392779733470876597369481710103318186376892728376366023019205919792959179148224416394031804147790028285712517764484105931564467536330924157970212626481304280838933770672398228654341731736481424562966180793136953250911287546949801550317994516691228413844646308741027987820955877346176667793320063616141299836112387852698449676224949460162224198481882844175972508965043238838826776211538694490722314080038640966747955659603365865500834501574668100371549812154559177082855269058782746268018954840985480647767322593083364643266678951981323034384780554257118933244880337102766080664261976800040145768192614123421421090837882603488039871589674691868127595035419040689672781395132198842118325610948747352764866436713359368373719071671361534428920725273057077805616065916154423589107846465547369563439707372217818591230109443692313952203010113674073457059526133029367437932120406159970890681203507862354127805416826582353742593856966435762710973540865230333395749249771995346662569428121211926674888665256315169706607240021939626684282515447561496357933365845237724099687357953227591900979741551721334845333578681422873993851902093678274021559991420456446438381600099906505371881484938160865503572270641774386629751678966655499987889572179026230908454480646518569309255696453172241089451645426796761819728832958413935133844596041672854573991415080495944661353439845014276180542209659848671099440825081513239252136069510626733736792233221425995230222936409047664596154505594842048813114413172046469267049759749059935116920439027605157446677396870803247804063437778416725021988849435409828211600072772915050759869365684722016941046189444582618551160041549451062815887248514034519005556346661524473749607661135778748374003886293884886101950281280781792745034958405752928452983890915764913247310105633314781346402650462629156753779092137247828970031963259689125133021524656120543583762268609282030777416870045904352635817494636724551789784931750675390464041603363847240546498075003930024576610714660605719495109140248232735266912214960160708972207220546288100387307622968906215262971114289273463392143785758381679957096512975121288247076229375657213489062361860141899595000293934330117463300332972907834026382527837960530000473559275468487189299720656136533751537477921962495517969220085573147944574288225924228767773212885980653704654024619938729649935943563230213110848242495018006757189398611897262182430778317833445857036118160941397634465162725658288616878213013425589073818405734222752790944015079633506963068315858425959758344133931666799730480514710420516213562175409048777330227396980656495900945695698536584320835620615934529254241892916173052220979352465712270664005413539212620953741607025988131267956667461709323717405236296319608936529844425074302280497664164038282925713716360306176259672499571761536958524866449317201096085345723423625450385444144127163847672628333308189585593647600616352498590632887445032551137768181305334664669950154774932420985686593504901062114129914177309980459978865399855599720886527297388216508774800198668603163056123011444933193578407633418331385977273234527021265265772962648846204405032377509270264409159921265248626771659965913245715413925400153811699661401449792205985286546311988145874191873375518550958118710196924176642924238937549451631594772453110198414508008761556264407882172093511259342618446830352107379400041838289360585440706517264491688578728545265072810491172241294152234684844898973496533155693932685540211665594490751531039708324623445957019685643267568038544519358687335149681959769600820125379900840010546335233641891279605446876357037106514135683715512448361849192509499414144624632178459676671911648776744489599464431583958487181884662742027844189992880327512449666964867934589413298602330348292887626063713644580737134010172699240031409996289875932823997324878713822652547419034882217749819545570796378004278014587919441189077071435801103026624542936251505434616515198607934238562390664551545908689970098727578338564769103346863889942896361916953313831063514443194692997895215042734302745054891282240465675168373840917374148437318197118822641196702951400104844973686883604892628854074537124601578468879477813170839202770185008395994013507875106453561461548450353467874901534027514090183464567541976045483308692169390248980675092299229407155069237778782666991230158990938081337285055529905993471678423507867390580365538952018111477155275161383726656687055032514568315829590653570060806572699022721433791492375242219582555155273904766415152423084130932793556194050053244414539506109491632703871530370152810088754080933294790986591783965408974119198714373411365127164382405244158428876975714977114147142795082958870299279246833213370515267564394231135026287768903446466363218444592171575879241131996329875413120183252226786967899641329341131763665388968320511916362239963736400650624218691982230644198135153219731985910156362569862181748547088883782202161710149124324921653238655769085274725478596829812494806860664444935191830374836655081755422573352685140389878650300704028993343819723019614734086482834761260730198222686144117989843675583891590084699913140541383193918165643088434978829915171742974864909638389673430651712173602754537578343113521721501826959291493227874737425724572136025662638413895262627930213000996619630032325220131382188448222153852531276767630485518700683146840399268185487653840563848319210024722319166100913439507678555138370482142849151016989753390789756323399217789038804763368137484651689226357162307184064156632492410866923967601216010814456092321337429145784488061247863773882641020861802495130573388369415850878231970981515867117095173880286795801510678804493390248068909905291953284466968288254552920787080905016614853675330813369070048013388285854616540641332025069383559631742436588406472615757600993478411408406299823664823574855435335905053612627428200187848052953044769863226366278296327416370115311182340817867398766107281273257785139211380768154189444041763294630490061864780759891264283257299873528716127741833680517563794195244023212888549117741506531116818362269895319004959229250837626080500331743338563784867495822310586318894073980761449692017917513933532988588534336449979130016571286809999515576368835796903449984723426041943185991220465827495644137636777021611431270014347716120164648321329271182571328791058413578619311893745953236310239127088901391290916652719237745868641703648012032953287516120129170609592709077735616740193911744124471246014178496797282493661458990725500824349970890968096364168915696208984519256267193430471714563044323998155688693543372623026149800352837166513591216931783823097964852220628541884734869393594384325299875376511924923350991966689310683934309929177429112608797283043316638758402370220112172394561144733654127633402705845417785774852486316499991704854769484320531209292739986610752631319764337653802952214163742360237221850677911388725805767775543742535744238997963358197140322779356139744707119461141651761515123882362790564886358947268605733447972830925709439137795165630585389041681689876925808365068825009361192610789112427098812226934685319851706637174204680963766557289364171324938644334052887352790255086899509376151204649845093084820946460641779407759272735187506149345281817675171084502365204423677681513267431932510951920058767491849302776955965409812253963577116946711260602360694394572136480764649901663784374841097357300987497338721557269597603311371288315838030624903238330486195211498262358667333635943608153309620435231806990586725316679671989775739671985056332039162769296127845043250930278493655757046636650050423538070002104337905436545267691563211623070815386679328752803991810222879667549274141381460065654850877794899447855050889491480528826587688444566272939081961440068398308052403725695064114389933181166377016307519304450021566160912397787650073874339861213776763163799499160358002942539415093611828779256489019970636115118334377322878051378170068546189397707800275450470574657440961151865016887216781580801618548641080898632223340991247492258081118532699879573620303636012024863397052946712401923986888626998354310920045622791699844169883212018095594550534885326175425495363851506311896253092176652916582431590045834969397068765865424328194564764785373552515306898910979666887810025698390687113192142541988664192866687545377244317614463541566576287140553536428785180176621964712668996243194827310093974171042590552437496873330365968721460188999669280258230500025049474319578873617743981181941294800460295054273686692310079383355277975003835915620816472862995161814151182430486495587047642038715770645275872367708081805904084235237757757540088468775611166581392511935673190940209614289011096489957150397207159050424785782964191398186464569806900388364679836798101237694632288836091585443010494261487603503799034417768599956759933050225323476525468899552580628931781172182316379508778459343728786415144638730344373009824804924955400332234343780588846442656516711172540890242516568074345760295714812822409478460558543210753456382184804837562589157517060137146819642168971776054953019924695302390199614826260170628481879635799123969700159444146867753185645831272547174394450082162982830493756959752133974391203106521261696229281178721499149753725472129306870385087565061502752264203373041216162349639788099435270804166933227218359322427911165736309254664967124992961439907500009763571020509135217210267487838180045968331069999559077825546489128367433945158247815280574610341511343563810566377035487980940326526654845824868458290675564358632459180753460775801695839975806488137704343413010596884392991793174174742867125143313255177595667391206113546736483115197935420861547222832758560401773389173211141862365202764491763082599430939167130160355550663966400637699177448238398404527277641720112291229061185595127506650649835460296102965747543759069555507510185935075883789469234080884424210404435178451018449469776602243257275763372138266732831848510419137225727990030230195198814570212171657227651891902737558032398085602854179108696330380502830582541552079221546755099881660712637966690626696222880410521943755535993478632239333088074294403163633929743184574294796453048481266724296055477893724165925475425727294818303585240798970601383390192188164731155785052643281067107830425382786255073575144178094379451520876964418039294505337106958002880600959261554240429538493922366928251865457871541550543768172161949416243980236697017645851682241848234949856122612205259406946868433558288000423604267164920519830030400639082160494841822317937800187897147326541391659694146628544607201166338527550831900032819349165007915757425415726422107319213142403345326076600054088324224303953642851701019071959689962221685724205827008044884586616008524685471176644033745417169725731664357129934938871819929175946631813286486618479719449399756737688968894218741250518128652265436890284789523945318907597818378429373869271123324522402704855011368071301499127539063765677619504082472945779516147251783340582936314389374727744967896513648114070023132746198982924674668855898433555455760427757376276091205804848027199984955395267234262697175122246216969012780081098444425535915175083609503915428095603229402450125344480013590713294374264407657156719414139579192271365410090161702991031998657052584092579984341415907909404761270738304781789551094730906625750499363514227862650746766596040918727372254779472975212156735685726097885664645754101381930184782123365156997722636151699971162308147353868744559534540138665599995625362468346296316834097975504564050102772610837878518203493705332792138943408370417286053516274318097196418515813346386178640580852899326162674792028229007798061487378774117335830276131207960256078488189046862289627843902049983703685368810277112776491648078939944439040925075904833289087283241424493352364630816798184071019847693663055389540287367449033739847490758595035606072003587845043016881102144264988472971774495941058452003823012531660787088599066303712804121528907855153422131215471139478438631378025693727576221585767928915212630006697169938472634430828463068278319532124797579764030143681437346152646919895021034218176259365978453266760250667448846712460966866173009706625245017692278852056906735900843160412459284748056689469781827677947558847010378813457163188174944289989298716727868572546655367737283112444617673040875235065054391728319619830505638090014071189077122132920908376622049304967945786678841810035863738342709135352809394255181980793497854644802496427368668433552167080896583682049543336741086899344362297041444343961098861270196212361682942389358044719702097389199208230232314642350567106499113603577319563884719181976988071005806703870572501530190615358555901464126696691923629059503854868733761219137217442714461555526745228257400058034707483503081485510715399389168383731109275020581701951231311776778518448777687268042139392860342132389958185132776669365598180645571558540380121592971267768643842853718880917909957308068010225411651642985479859780120053032532257524997410354310883801984322002357567408273306083966425559365951758305161534971344382636799028771794289082660425974949114770714229702525112586060390052960240254582624832575575756121613127958128121568538408559162780570929372466124367205888681576790769303505178957563934003111259297972535777544200569966402202138347356603769169544131890619160614468251813160176609861677232066349745604650972882659512753972733368694175508487217889388640618398460037168689685091852298344657755164156298149054346762684211445248399413123038525805184868019570889226188325223553643687364583479146903567872259825575975596021681452229949197379268978806572774996020618312361912598422999744591793191907004469955405843606932673167089261261701339842671888934212498755699024305950595367665402753307550309490689335933765557321753833566489041072878037317426730961814074515620721259831472457483012110660947978796294904381332427061165526973317981222046734271212266413819291473278943660918278788827641461469764222050291144484184413818492376352771491469069743360808145042927657615875421705249394092838637329473577842342407795488209531262353402755035057102890394313368148199515356610924477427046999116723789895516390463749839660324274199311394429039057605907415555332506554821517929225476425450871896221311351669933045431200007471829800650638738989262564890543973968667943212705493923274442799571733635910633348441851469534298128089686874083237540802626059432986205629181754412222900184021005925843557050011626334138911164722410329354306799246863155390027951392329972227662129951309940979505302073905595811915124333040407885249710925372417474301388303179701844108570451357681512915362442949250375261611011837321004651896146782697244426178043464984407081819464885701556647291249400183231574748921227215054856761733105517328675555551372752572280701584444306909116842079448527192751675238846945201405843654124419006882995745900543574308056155946524228819312720329234092490339765471465181113145925190572580493515112436689165402260062755458017611743528143148949991614671893523814433684640427672953871675260813395098759620778572778924985598283482328917720811777733834663342418849227919805296830926375673184709704872233707624758369814717742114804321363094148725478149263087466784789524555610053498907888898459211841022359782737316521280197485413419869770543953887497390145741221190480539008552547517769182706070979677126597248844196823381058259943529823826723631734242671557829646010506831004613792748906560307636325981027936611235706225460930384592230956994474648995943528035957281220735900214846748760962849701879898071617087186011317039698435437109684351766492479554420274224706377160003575229427613743288102773742437633846548182324254585865229937019088847477674002680010096731972668495586454467670798787717513539808839832073277017804624993278618880767133092543389284289547339980467826791459819674690198306839892263439290357185733095966285388450311226586325701495178443681391853583920429643375838949238481221756550210355406710582772688757513784359797904449145269179059270350881467187781681401490099155462169014256978035035958724739149761619033480456499169804389482848716057330970807205046654803487557123331222248624733016399867137951278867986438102554256042535792751624131624549552973102364591993011349614295221853169829571040685148038221398883769639075814255195711993591711187550877596254773775135923387032299401391763658037067844008595624687639951401471457224685434012807858564304393947069971219759406459214429010712931914057426533471341641286645107585645881239511401177955080732163678101603734337601573155634925565939373671656193550045881073223355930244825696996555838830534131866761689980856668282771323568706812262548462982103131760771801239058725534724204741520016176660218058824619496648746064563878996315071244291538840423245075603214047762425803652609205191482910102715774592414262871044559729269995650112860668854627487571876650669697796028230413811084693087871684835790925462780349442642545861204599719960800316630347958992894563255312542534431739985369459805836028674518508105331304764752853762874570977776754130771424300232534740409303069421829116816439039165574700321658811000624207185247579746980527651709727451530250946186599372850401168149577814259636124014780968378688851125147127622317915331487044871205793776550304016642970150767388550477383288817873121246007452761235417666576881701011494289925734910123564667639625806511271339649842282450273056693708923735816460953561164343750565029963151679745340938235328999702562718021656243625511798697216249832309565871968296025466806500004671622240239665382418550573065814460635905595549641982011396965284439301573931052062830891492180634287155353700590035047086460963541097884106096566034365354449061700707899583180561453390650477052743156641760972151791948928336481286604608353071881948053442177304236040841191576164461309136759315286399233963870540720547988479579886169962180644201535353179004476525582272767064593635057287804275734855898768296689233572428808680624632489791895841694457900295928632288829382800916032460635320238223124737736787406179409010413815330576102830088488649415922557543809460630258626769891731846156393679957705382514934153048349312243480633331688402699767024473274906189736334543327828082077440266709778178207831208572634456094708554852142658489101849573503186642174822985673406328525642088746642534053395045023102754493429019160008441503984952021532560016392766936647780958412656042906452568061709558520418712814813474344515393746475496344220538926109954944289146367538957876055842484190258311817288502158858378806898930594521539281374654088777536100423510149310846076543290946086796910018840384162250090888837411244830646123775233176545420148684333531525807526673468582177646255479877158003780737152412484086925690704928900666781140279791636537433395145161411107226456176282259912478849099284872988870529808306524599355173740824113367757972723356826803378116357549983476669908238378145543916215512856385576818804480343213210293942162408135480262308822241912311925661205255016134989977537211303331839809636216624718633004541360033833053057938607902112932032887174995145272045062395800542689317348183540808487347093887388619010213621756502595911351442127021011648093093037494167291593624568786003466022400339535225142449151606042997647942423498377961134986659102717829299312465284256303982440607897986973420603951700753187578630616126471450010032081159416960435788247184765644413513385091862089785746218053947270574914758885846342665182414683879858080482488208055020192887763490205355158562400189346433242686366341174030312234237172519433745140146909287147290589015061523895622846152031461702617566758586209515477682835625450643162643745807607141785780027587608048332596758878853180959596581481600806521298179195843985925295184458469272466477076091516851746385647187622149193215623010127131052844507481070026502446417858724356779922130399652183827914184826528162510461472116304790782242023484217623506439141529823005543625701476369958878450144051305748180118673087237596524652046435093431303966655856293925156810381694666620313639439917344896713982981562741198826272351095251221821704750686253399267537797846680999542042149911343540701022056926819994042516658933928498565667347332579493437311852048961480398907491103503139468334077786693687354754911077611269470298782112564765681491566691909552936732055957727929512982090715157730091788477963374300214580360314477890620077155490476480542427051316776689353266943735909722400831594023758388314763542140440860421299577016536729659902048363057779854577067028190587186483061382527527860075879070243587438121184097439290836223989125389316731842659559659548495881455735273119107469179828345743767858841443980936994532326065725996975882421929358791454369349104390422637817675573224987314756957013416041498872979606838574148390973894482340813010956583016594628071917844798263328455536359745121872603325357817924068700106861650620278236810634292874145081373060954890892474450662277330838526810902090813243131511849533596968989039103170864371432842682490648126662406926704213367160470574265531382424342208560979350065014126838867933302418654622307472025320717893805031719917873491122677621899708478236081116007980195606821356266409245951405941919888659605278045961898798897812460445075204391195108742576253503374285344359966802548772112938561910122074296511208884295468554439251909040934596997623225136684493959391431058220054977616511932363355784477387007275167088770183360897310533306167400940748760848572870502540396522062498438780791421232920380618831048172321093001720191485125537211230915157190161271374065368354640345909017516919077376312212625722658664549644959123749618371939551519665045731490348698140453817457369758982275113774563078672356216976682523924529815904675621852858455891453014822265840535952639098539371766197101587838732782383755847244288253637262108186657407440201307721398294034324598455034889846916089350460604602972075243052225050884840981344559999075868131547522204656145766233140452632696535279292379792937392919037486967196463071806072478474739655051709747509660626023429037646844450582247222021323863885571451323474982034996604066211777772978606443414673662111064805331614307054651648294660337643562092912703240902104351027595403970654729979272108961839673150847030362204984020805668699225246595358373749601331417900353700524645605869477674688973094413691010744202027223857514205225470819089634991421944317404112374851728895430801845740910319994611280556433442262289579340517365029531336028314329702493656220118807383796596866938563040365542449375719742102493740570193694513848256986001953215162568971401835116525496006360110312028199534967046160974620829177365729978564571306965165001622777885273834072598355967397082404631525917673804229743178528315649444954503695640110936985581798511502721191591763800482965813078985947039731206537802032276034416297329698012059066824690143029493995250158989047710508025383515715842805178152642640065745840279170365562834115519991778849951688578980881405096867648256081575871689213785261434824019867008595949183437996872749380392439900124089292676454523422192207578413785334248788335354749324685978019743073891678142961050444496628579719868493170449749155067552127911161583805706968196572594815298667213335258086767899959649515960610988893062288696613263121755757586483262796857114153350264721407950235985958527648203136398655628137447612938148477402022504450859121825095624779073889654945265020370785100531156965622029849937475086136190439762995990313119008043197524580940000914558217454526625805274039981316932570018276842172231805140682005023092966177270185446003704330143234525164686645610521720692906036720273335396157708284888237288135889404534490226994538768784657248578192875582017026334879541782535545557549068250069979739505950461342053430926981905725531230338713302912850319228135696396012838534552115943569140977460158198777412381988958667271114272958310827089863920462180345379455624339718562497127140957925961923078188404535552979777422106889367338855485881072236768784859382251540354409948225290592834847801360135009151581145329214423539629875548306801558853165966563394478186222393658069731261285120024220474114337596177699106333914637580520358154703062295277217035148212385304932657058446113196562254523852860644493309181674712723697272029500262669493867606739072357441326860714781306327962522521358345146175319707352809011354314677739453471024006089517815558307572118215079950055883774454731926129253830499817430402307022389098160761531109928886528725602179498866339642061820921316043176801177815429663673507872419183405805978019413641380162857929818320868424446974760959467546593513927192027086066670096446912642578969760050375281909661537566185545806264352294921657908349843792574319715877064686820018182320486899825645633405013849665576402970834480618786696893121635133966878313623511774979419930548228986619040064715435959579227544277779439667263372974662779775357319608434724918119021011929439259038026026484174844478200516856843034661441250061225441185536036696829948065721395351334078869245327059129149828017411210718841342687878882980021071193184154769063232133035664704280199834162572610516704131168493867700277509498844108513693169564448607593170835467673690177738942973154551145922770111036084305577182412122340329282298744398644640191956092300014394993453060442579969384917723978161494511312042048686379167525306349006652395804402898435392555784845807220033202925034659744813261401733733484152208726498583672364880564331283046930530487353905968489776941066248996816465510182556276908923306543747477325157482346420761826937202001112884908374084156663787904917715791626174472533569211027963136363961933383031690960585634786515836410409521854218925393845365190009456821882351219678534912907472733457619087952770071453429642885777891979700517737331894256474677870595141670950151254363254585850590927777223574413690610705925417965794073644894013368462125974037769436292671078648069165694144947649627554797526997506112392906590555602998061827757923211986904515905942490767601449443302144753811078861683941736268247379536204857866736619434018375399507887357076956973633489060966234152033032736644168409155972675060681869195428972955496780074208880873199984229331801642263918301140795970491267195672661938762353423067783745037399215560497316196545379184136237601366609873437405615646163459852384782852331973079137019825090585326929428640128896615562366533668086796762690219338587009470620408502701789450516817868277031934278430701645193131391148579096169684416066209283732083338786764148839135298925848184530866997588412889658670242875568773123590034961649957608292377522689365557076354134082655772488902435754853975257909113420179830261153474517489394228238827710449742344359228203662147297399136740367101215970943082487534476980106697699031419407850208010006384516220354274895328569552580166987140127909455465844685317297663885922327228023922957255162170439537798680918870851195550148345006535420589588172819071594632777061363476090473165184177320017762749668619298300484784222251662526812410603171436519456728348892810958904469510765410361898853483266943402184793134763806133555152023602176365618271131545325315248318501600255035300235099811874568401397841324504129248995106356188398860593998518606626698374306821560893536408037221056922170621065402903346895715239006679969843981971994494884736379926562713791440855451262773768033692487909647451106309430481047440825975290276493019099618286720668008381247708280425348545154944826733517709915865139720744453559629062029789651482279964382284624100494925380966317158494746496877324294171486011775792546480922293925634847344849734476876789725518676844578041930104358838478744984719157546612527742106519834036887682177098564798974966417963758532760889483399378980386935905003885915004182247692621391632221151170732974075729995059216141953417954539564825806957558191410105474085836697638897485443567038088777622534237252366858625286860701112073766444177034759239022054029211833635920768287468191635734436212258468551849117378281498933173294328687866734127709419506140678430955963466118300937723559315500840818820429901112536254951586587987779332016060230253996395820888578524640683893060314881551188185106339280138068829477553386857687006287381871755096202301678908295772993703948123553225117730651413774797053438937964519477623368044456610377282423774640653174719122855087525701248555303495842547755111923104174126089604176453047384486184959876882445549497422370796274252261378595615081527071735522514060924714662877076575923280000636236617818518201466129968973204506701938791223390280196792848576421517536050324280495374126017027574030305342271641863949578600006459952392766917288951034783250731781367442373727643857425217753618604996157784516405621251200757112686925439127054804174130629085265480196487981111437341575547549991708223661965071527972205089698520513649053554727844829720710781457451456846086111572956596317579388647484246331637656494481161619216046287370290404097536728861306625138090935098491430915201368594034990362979313644033125901186964880120878666141208928978105070175592631593289475933353555853961535737486473277884692900514837562696456927138301087192984228256114413262879693085543514821959294806708059222682459066959870498056520226321886000458133848213383801071401193705031999865589124946066131408979946504502916697723288306019518497855653243552234794761767925765445820526605167994476072270550260402538069305498861065092174655658888730178883841289599959659159322793045738084143789823577978122166391540010741213360957168963667005748458952054792616196173666179668924730031816330776842912398177400293806904648200505930567210970470723585762765597152866857405809911535605869057244722420834985942707651457804339879341679576813796362083390395083293449558059536376048546223113625167923643813542477484194804358933214598819421360579294167412261599983610855016724402649352902692947624134258256387230319743507861606461769510121854106322030817166112414886764403388729757658443952202219610073743454148508916871337442678359527056131521252620738693321830593565893062103049292095355381454951160121464198439793903718964398693487841589092209093907042757821905935709430767237024389005345312096700350896192224298816087686432982939714882496041244651328082112489224188331444749268803634239182966671662822415678183967524379665967458116991492813690145022797801359769313865394554720684577771745913853617847926695371036950896377227906128123654791570888690766768908193749340610368410673860054110026278700874705947106586451439196980559706950556505015123393666589057173313364476421307065675731991903938811893825307521088285951614750680946883924574001113547027478698216862127432149766518830031960333456223553442141736811700595766349367622329069184880323734519243491246566532971823841739691986587133313412071051707368341724123447237186724941510842704961554950379550152873822486053846067672039287586862626169843822805601587578668309251223040159989753848922836009598075215949025807471715773537480669005001534985359036976722971043715921098469391204905426246339608550824918232865843934026293826856371525962389474471783369996618020115478824991332365221595665340485701123258277081886215013071577934600274395168927524355182396240839150123473924668651002227673515415339817443806293681884318702195394674578806838733045026699348204740930850952940088706951818632548354824966260706650249956468194106470407122731100421544185549123163407340196180907498723670338997499343924399165880651283667905641695736521605028224488521757361133174294735635774830847833098492957430573060450412840297114897365523337025293332859341544883137400581072624246477515535611897734274294259684019406813333814161074909164044307805277729770093827687366826928083628346772591003284128128935787611886533037994391571099173130876841482981473167438924150708123330466386665268851715228773495808650709021102713080114880705251086164181615255674817104786219400105612800134647100048960081618136339861314375953783573446347009738022397066733317884712174216623797833950508494584056480430059112018417300502241962981137643255508625993667297921212396833626254330792019745755537985778603339936113973147973585880467482663190555031714751074082657545538452600524391171639479854543854640477445274442320820115805894011041094538330920475598313012780340587673381134517847042396208849358293399476294892749263076151959475808635230500390635269755089737196321432027975808869585297731621983594425668946663498655664182852784053071039460383705531953070578143320616548372087637305421510498196398231622394615554016244819227488988991548181616101412911142233274248071051202784972384904402642968076980344031601013659880856422960754069569557133508005356595188841456265319836545998149354703533396578804947612732090048553113590869747145353689015718969841577548117779410760419019145652728884040518827950849008264536013242915228888937975199955998596828893608911271091030997306757062186597296734639843061928429550429210546691609154182803517832368415521818655679634071112430643855154156248975176397718812620984087360982992383637303027505941877062626357378481368868368293339698892774446869696629499689660276916003698605968904718417160001971841236265199793012787419139272279869802272459522940152432208404817539812400825763713606703033447765411404274369962054125145048270021051517411890882549260977472146205536677900755200879989232346535925261273772769545671215444999501484526854325974087574445023559503175888094678670624279504968122317381953193469955615100420921536083260321530691857272259929860039539254734318064647706444154409630859833209894281173897950682749552487066282732805364792474107235461194594426537978749869795964322144950143520616632736083387789574626900889609416213734426382002676575339103418924761056359888170083539644955852192240769813052521731950132374196453428976165813540733130263030285478022485192552078323237454832679632890712562747524612292929641409424850290594741557599275124250850699663473537642940738391820741909162541609728445916256144727217059082938576767130454384335990826160862846719632875160286080403534720853621937494941366551991508536892373512748507429481445196541693822917931530918037820472872238945587726485845658358368883541761056472125564386401518568769577988275174222434711115526234369721170763345046653272476633423782119587911761578339722874708451279886599245183279164144598280214437270189462668035792333375174806410499318521884550682118360856897563251181387504609424195574432639719843107892775247235667228839552735523606622598788598539632877284454683694923676064844122735368292191324554704074421666820674612656707964301200553515990474170854616373362027038659522738064231262187406268909039981671086150219582650064497781735731850521577151608476313142971006824824913916249289255612638476738621823334522830285701381554374765057846569058839482531341998139629573625019198571058084667923649110592908805506833821771837094406269993826919706824470532005794540835186100366116156094508242398650419987316238383574666454521887359026121934531604858339212666377250620851905462362373373281142581664384249889798596679541759200369130045370371962753606871830137648121274105614824487959863510850054873490298447752975753493966553071505515441039093865374166652159183354997382566893264526862082359621402396340971224268268700253395582693224380599832426908453047814199149893110710157169474955576352194587457686296301838990582420127878675579693472318503074461060348391459879497794871139135462902548628222497438944743868266164360683181248859872326879107661623053800860292158338144328453224074623554187998881747238128535968382895006202252464635731610826636036431485635531605049915414413088721541443317452537321065139611973306948781391309687331861366696193940257200499308099995348219427655878113235218778124571834239764680697306979340608138301890778537922762154846640882312642981642123941745697135666153982555543529498172239014522235919257419431464218266477688866772502171232941522897844616291056628542007145388341678148913456674450692912906319135618469153315855813507648754132185945574577015648665261674662085801070023556816875810595967699890198547270641753128848749413907086642080806276944501319670197033551810041719242513644274485219781537035777096179780365547150100641818050275407358363121007584869042036045306374303438876152382898355737285260279010965811358399008202510641500684886037785145170399362693832261888230189959127100087907541662874832239445228502391848679138156920568635432170416335863703532435303860313824517889442520080485301480423264006520996296009664177693761308208068702013088347209999166455805747029726506424859031007184698953106901743228378475715367509849704348348205993122322475198548535455451980842281450746416932517417116603293266776227819083489722751003080897525205030246649351264612784890874118303858779985696639063450520022123934526686579920442386148475724289010511432888381458370014867822833301640727611403694136211573716998560584173544560803368889069252435338105397159315045259209401288682676195785113132383976361566212857648264097235668922065045948831798586410105643818698894289927631481613114119783948514389640201616144702822217564827342006461530161701567304518618437705212706257342258715062895985488617620522961688656521583778424714947986648770706732481799084249744141303077278122172757039389853107662656948276197633287446596045593501802123231361682946910516536799613149656188142307979002819702075307204137744966745306251107845657924638003827385686022458954061439361499404848428696980648326210846438074333655839868808998847151429570101451205496684289667486610186687651297313962832144102683416586035991143893180762564434460927475028253732472243963582314418661898353373236916808695029220481436237204812347239217482268429106661178494353167259238504105377931104908157295800821890410996537405229404620198482059471956546843007682203732839906146792078803130621080742887826745652227951039753018549245010806671435652203409852097171275158839048613112946667339640992434926471623122346056816004405457214628656625616892869974683821633904331762863708095828508190969741762120740550851100181533020817181367176854348727208917260674318103868754990964287428041065285744478313994874978924434353732018837509779534604400528119785269275442489632574162987942882550607639516510838711766467376638752697508837939890328835740211229563543208743741416249491051576822711741771193223294539197409213659086000047620243281888116116364492871555990829981454358403717095653052756790061038582200502577422429256977373229660938546733692944968154326056858234085073909150459231508132267678106363250595862745514892282856540694522210563558028622416764055769526032218335623963739880801424611875505460955509412272002001667329078978000709638482831244629559654502212074332643657186971345144689688892295108020016256807995121841316098330970217827686024487144336131445923206014734974814869132077424597364339492007308857482067224118479268240533045986927545897072131545841540477232222083920803632412721763116289188164339403686931713558268000635173209745052437830526334298205158572929372906514408225209314003833442860094371776965082929411189712087370784093552754759466760770073958299632583886106737450792618043306725140535211613376789603653857985032218450837234572589397448244920328733860279920420127995062845861769293493474864504649196863533839144956932935349913992245366418810063103071095056877344542309645895436141863087624149444741986669834771340530095779787207929146238962639088463929969063931016383363832131953937930428049848759627949597793364835848003784161018633174149813364342738798030257797021830886503641810622157102928202158718144562664355191289239074644949104273596927665231146956658445818114476377375235012859312659257607505565019843356775432091750690113587867161954936552029139094377173320155808072273331910017793165196815422808837057650759883759702175411773808713798533896289683026298162805530110755775897853482385481298281050149628858871823221804888260182746164487902917284184000293674697066526008628284388308813356335802435105776352859335154443801010244994217478189655318847087378155223644071454282954832131189537540818216074865979777622791023082336484361723366029171933992616788286898005789119115696128611373040422299624444564522881179747153663579146150494381217969991171955339291546798588856908281911031471838112996786565145305967981319080042218270900569304480748300834564251502360936375255638319351742703436292684023477641389903904336235185135026393009596644489877604174378603817234206079071437119444753952284355167788857090934059098426280075550024872583065055751125935389631517182606584600128932682974216179130811687821272103921757969833700705560047926599743236495254475598623484474040961714756628827532509173759154603250809601144327041198731596968007968936040759775018037409417146998188504662898263050340628173028231979912553091836280779925113306555777258958054972193754768545034660721841155705309674742472328699207294954176864890518966875077362184297915115758515906698154334699735695187655323006157281995740879843326878654838770370483886796963447104488103666255295862834343848046267812214764251660197642270203629450879879092306899776262202336341177118201539905017307149399611554840371522826857799838510938400452826367576126056398439135294087394557427764849924141468582429138579177562329540201682478667600210215138266641101300421780062344321791952368617769613880500659250907025290015574994875260137231942696283769173901232800260299278068310630273490101100314067077900457927698279313684945163089509182904830296500190892833649883721439618079320874232876806864909920444950735986052895721169951904040833898408356330664385412889007147543866567070850184695379003257164362715713573472251059295865110984068456897156582545572563335559457657774761802015683785236403149785380983156625318580942578510581390461546524807271983290957729580553008835764393546571457913592767466432544838454558273091398616717779959434994550317477143659796683456454234578234953022033793923089622734428667174667986556825373251453774300922372120275316938566597761078235980188630750756040836771274187145896698345702753848703603042584280212778831071351132772777499204648303734048642790225836760077390083656159122196628426903636660298543235363179945147033963949613868716717763056546091885655184434451689033462458468291241431753586574989124759556089604029215539397744642887727951622306124647793088265423574801071780915277401654871046826553570309898131083104309486675394151163167665828140370086686554764383397704275712504474922142296908062278760854440485881399571274756130190263751507387831188514410053710314183163474336751174923205317682583915034235450586022630586870277924322969161754595344045744739971171211920778991581218062470944155069472735140123455020462906778337817621419189014690880707981810067348593967972669348769652383220191082087313696579981377606214334560839130799199491618842615176620115163301336524026865060392172540343455286751808258010462905820836468110735183372975196145612252537135677118878425199402354396224247751737334535338915072628823213219610084406315154799859952158888471159978375100106259724395444290564783724282711276886130872971766745038778447060504981792632630112179328577963021341729058450693842312785744709828199036893333232252456587848649909717503202216728521499882775465830655901595843516185552054897826736135796279574933052201119161084208023699613890043993283506634518164076838998792241323064158867250047986219148727609138365553456717578454745567604129133224460955148312535361128714521074304363554789821369772009279301372617048908280393909998355740828980056130326328048784070258801908538773031881871273074613664205091087496124190176913449970774575283633978323156110356482124709035953681610393841375688337715782793829413546239162705760560227177983532110818251344199026772861049687035060733720893553086400814265991650872235972694624860483666589113039585075104744947269939264526460552266518924976453080721310935209623157608488311382603647916682468008414223588777410461155693227078879326874361283795757685381840746778209846776273672446911189165465543048479710421523977928920676389663589638356641805894421474539622623175326557972526814663117697801299371109824534052292709330039962951371443831951350573178805666396104212257787252801325283848330829972881825074988518314717684205642585248475129554534338676312935464407773405000721996838014052269594709199118955188405370077231658195210530473114914491375858791465623887194647984526528480268964713172715150104012602307121222879224688811363287433466723782055811179420272164792256537042244877632969701292769131500425202259810800999798855902356890432902314785387387240209474483853941778367943233256130938177205017343097962453249510339055541937311556781096005736046904087935062129874882405284974393964694658467774362370280141430030440166179011657976026979051136930909194130040439925056649562424683802034050894802900026376220057864055215622740155388028003468955917543127621861314760525568998950949893238347287908253998423463975791200470117076564797800856626474611921493201815268567633485843782147331176775382064248945809658200413472695716237038372077935659762005227802251822529632003253692765319844596583810375507928342527858259174564350062608434416311297019553754748518566666109082130176889791760811867452945298815710766128602140319019653862395629151313915405878496630720194218580207054805464477547695567872089601597179073617241406114197727650252901385992813531379709256036120684983888215192251813217998093335978213175107048380602194223577108994591747051824708603819575788002816155616116658533162847263728589024423372208724629332702835317492841004434726304179900869416928737222783808028826637801392053292867729280423656591256451489454928932008400609684183178390593490237620500022433912426191828329180108477069574155867364119280128349645820683311575462623391664181390619885224573436830677398361010464231646413313553235227375266445338203004095510321928897610402878825716543401817838874101554129489492109750777460955977152478691288112448292842571974688204885654909561576851286105935267802656143938335859217886735660059653009853654620642543463791062988857389831835436967921926477578037976099151997763156973019113881696777038313617431644537854570073193605219700151735410076686960130543727588160704998778936501742224661743819326919286242930106198425416346048533061312244441005381190421705295021020394928499328022918752088000318240833795363864223783182669354546763785703606403992213306997783815919525955558887819155273311550013170879490166772728426303449497471356587672814394265492052630061908000591094495621854521757908484182984669384194955881207470010603768356344103320545001615165724072012529860495889470797218342597016438475984865828098086905490367726146202153986362941637717930476272183136596809685002918031141079704311381186418491415869758498660224546492765131028727586293867040021300059517816358644077874811780652256850653071350734245894460268346208345803133921453542233875444863038607087278502777777508677629920222402710743245913400402892872090265865447356210842527192228663131418011220286876581195927271283513242150881645019120899669021973736772018155467098939927354219911627316526245069499200284852366347161921013531794460181932739607212488739815750393461817020822302795639335431676555278850293516327345947265795104011499734482377420658757303463602505161561392726898206604832108554232208407202400309137515825417460421057455961533919845890027397157437538022426415567778759307934804245360144550080463441240544089726593996633007997972592129223109419470783842041830759662553943244560963589541422566136737969285423713764749526337556977162602199226734913942723609178467619658720575970336763996591575636399342505878894376683014289164175738503388810078600218625038800881754282047678427259567196048406057121007965616492691699693920855774499424977562114141333324323795150936409664134080844752861415797124250850592580508106462051245722168848201979344115322991552482048598975130100755988479695867649524880279423231241980738873590666649649151139629244887105704564341997817437109316921664762069094056656347912220876673531620143957944457621663868466016550053394793158087747107647644547839610999272348900285145797974434466044051117604558617700843387605314800885367357021156503610454879928403753217591482018829939970865269064553815917395418408308262969421422960361926568803854599914531553195305193918345501858845493495578823746509856082129842400795180417637267312953711599532987137948096818664554688514436258350366624408525585930624414700201882122046421925917234593398961925790163177529238655519765624923716284656853893447270690882441102813258419107757550548159667543119569943978415163324068894070439266081121561861902530322071390646769773268368150661123769280024896835575713723112884258276892878231095678118996696977409489348724146614973972794941266107636940295823628303482422371763319971843239990398128493939858682724464605407169925940845181835718891094351264176846914779092252837837532395601947453490905510164233807811599663448262071415872381354203240493175757533707935096946134828527465137714683420562623632197172961999170866638304381504998872606717267657248389966739493478186405997311990052966003532994139326485263280930082210836770501971287076699002478130085130527296684406061016437823071913630704942204938341960095350999398713515879252197394280615135656431340816156888490174782485783660680040392675996290863093790311150672767194187688246283075188795068973905489798893999883626631762238054216550097343843607589214242046806810224873073877809478772352739016455743067898417558609780598011596558666081808783531930027125973791335895789733400876344311886148697683788112151087712667757231018332511139198516665079680964485325566384175831166949388592161416674567555538237860442445571263339667721462244674158690129562054565276810473636826097898649630056827907376919863156012916142569306478100698919702022653867416260304963399712736676795742895556631401488118461544582007593167883566826708991945569858024090677654274445079856845354905475878108274277202197966003820209978659519699449293354316949164917055441294482092967609251479903225889004953954995722993018062179262112407110162209578552704888605381928423608529570140657674221348313326026342177054373095357010890780730221354982636285288782655869156856346625947313258519565913846892446244583440227704967066534993872354752090977064881709000110639125571874068247047136722570921712228672111917253220469145969221561229752437455506882056173695494066627332526041370446290865446151044256007632917948614510692258879443748157789125088591113417223303156749738192086397220651352015828008698246876537375323344666978377328101114526195995886665010821688159759495666029035275833214937286435874599676476525820860555244733912117129797672981403798909728650697649203220992792404020662929795608333348370973437110383136407411648476005069852015674472277835899960842557884272473530611705160202186456818014842377128587661659119901186881409516094024580682619905112961121275457411927534638229399475349910748595614107959401047161296588915916567992554444225077969298705769705847914304011825454535611172427337139999943267212771932319339130006890262678523004204477598136728474379012867170965176478255946009076012677038666595545097404684858912713323990972933798358653508097267094853161645453079087157352995507516924250275201254820633988339034478284894862532638437039404450543436312024049568194850386290285693371915547792962898845325057659768207643446294689814524433420558044994658582375053659570536224403818429935935441506813507092057744497999051667690538020962176636560683578158732037923102676052862595077654529057952721042041385246156860576562821874755389025205785080074069337294298773746305792569937750402685661586616804076154221619388979463853633831125958244187970971954952240747959539519422976858251390076954836547899338635688061829056793407651975802467421791025033221696437760044128207799049032330812317611237997257214692833121847175212958011916642273935144376698375199845306457873664077738069965291870312319459500416451412022582697246981461488184628904987272836192381272041977916155713134479968757570339354019325461289360256544031228921782203409543443883693546040895445802479018084762970341979623021602945161124769165018600598116417274382667307289529784092440165695776572555572957613024253354790950676198191970142415166593574460395967361853255106100792443466532944181807012147646030124862963997533347247459834339008685160467240225216136263343752004066323425499308421418588260982094361574324084564710825443101883090772625857025112104655164462007203915374647393215292063379797098517074773038060536283898151196954606442017113929566885311883280626433431701717020517026485281318412516343924730717133554950605158671361101058050469783588061150722926127576939521408030298283970431417265709132950829112534317694308075468655132922242764990417404748134107636819495739774643796865183044465668398318484194824417605986382138378235313730452285949831010176224943940539018649427132324272489432022720850526670401611065492980272688629950320140783550068178326612442947337934708704036933947444883640146301430766548886919995190654063116647678194049730100375198570541672527647023085919922739984234149334998390978640343907692242729337668926604934944169471569715547059904217421925882575342592999565986426768451410612384687880654457917717504027762823606330079437584074366948131901830157091267666207989331700172020539549068640945149774097741094373452109428596847172702340645067100714287458635586867823699633907994488074376088353368203121137324451571040418642925879449637775145772351175866088174938782675387764130377951906050406476302680647426906879414474482693519539380970178496731946452891438922238632801012183431411809807504797024389919357272570527060547047281474647446208222454074714169406520696951676001055917701364897132278420170033566432055511462217933132322217119327373477715778865837696990791171131728353740193571986318244470476154481845770252344124845509681281166649709060432274718336680981167836515700468018768170956889324184407362310602566274757479697637472090635484029491734727487308120195052709637583607462545479352954234171272681981339902641902576337361165697385508744130241104699836432221001267728682180949890762368689263384417518856262832129659941213751796989052092475199878946684512057837358450431489084456881613840158803969872920098540862969471322598632313171273219428914135494323359122937242309660154616499698557962763275554577984454403223040904934659346663308857369596023285750180268502120007127142076555657726407983020729194806512936021776113609391135939353081217736284318944173962135545360500246138787960676040805316930025093441825713421613614440119152289530653007779053972003396628941794659641777983559253422287774656400034393526477351783515933055719947159812125038017559547577745951520713908433610011537904901507890705670881844574114508830512299700209969611309712189372853308359428809904927007467960128096971829283941281989605213233610705214431760149950199589535897183369078283138634236857956796563419293049769815209974528878312145973684607567476636060039687917435421385034895326295820544748769241330366118328689112778317546029127912955676007418733225542908244759673043008045896634533781987536994863350537722445159010541656658870698989013753888024327585151411858454353652987491572718865356408268327225110147009098986271677224152877689862267703698396995978281655794088825371837645374022181884118744813382879471964454937570020723469625336015922182028081797260491282924207267129800242376002246485008798898857231588422146946147491027891554652123059424861027260471269813241493814990176735748960941182680504771730131645894682345409075051861661015410701795541759759828042293862715551077779967459122466163847477146011178964858677219186104417530731906039973098127182191067244244194814711527834303920653681221424655022693020656758812764754343855734742632815492770562660066546711848765207267335654731669662177069833645835826830207766337778647489587312552194785990526293246984363824685738723284277789839925737597904038285297787397684663809624175477591483096429915528145165803728244231957520927726582693230597524612450564355755914053401429767508244334746624398583437614879389964144402514113002468869371952157830448693443840734559086690946448138235353204219253479168899801439178623237601755214594654274459179747606361665240186206188847558648738058308937960029471475549016794959042815618428725158529398298363206691979956738947880019958798034828312599253297599105020735073626602542431051328629403495541763991094763294485429044481026891525958952145732012266399103321680006863504862007357034858961061790277660718167706817936631804538237919125956198438857609518028943215796521205657611093989915496884031377549393540856953449908009012703840172626180182046673795994682954369719423257922064747097589525107002037741719426389346496757154272504046938718835727756344487694459508498638877616835505884970028685726928054212917958581319142283803871372827552868306454333148688092151697237876013755279811045966988291777962410970709137037883930450645012459886785895788637091048216529811520583322780817799156082638433465541976031504888419198608484062649003995878169329427061962297453127136532694441514636256973427524160873440269797879002146362696262012037753388367754969157208241546392424135057574943231795379554632385241993089406051134109851878055884092735591167161670187118155350582366098569193922700064682288358994486575226714800463165675219420196618307034521639282318251127783428328954142472172600810147875803021229475153440371272332167086572434181080477957841442651899778860114020271232948237623382689209641111630110322175485080943353504340776283415930030005339134180446423526240038073951095137011158509534732482237438035089352893521658778097600325712128354195312255082041269876035418900771365110860471819410808843111074253639171389881359753193233465157986477504684575869893919631188241144154303570400082640126777953841106665096407904987522171722641564904349596267065632899045783760113685132624683460213484557564626077735218836021662216832732675246600907786809348433879198156466120824848678050644296958460210293045372463348760259962242700993707358710745996846332376105029378740807906736268831432224002634254183494649749433787642510786294049435597088950968013376240248190955811349132979136137997670206146980435014907067331506378762402066239070271832790480285148295606115474069599725619492966830210211930502506226826388089654062984556197933891284197588113582007257435616857677236659365775185363740768701008248672732582705594735875949915271835476599156303913785716729854404027517173882658738499177463098812776933411133364070227666786105071688504509241776817981250769109509091441158337030312240850672305458124543727125939201379371298950497688964104658348507481945401185770235917246901296651148215007434229928281222799787375669920071296284554728348592496576820307884679506470219473098014949774430994977910414662850090667009042196029866331103011001113278230180588984555896639346087537285190743600228423038962151716195641806562700099995601348969285573932626572516364002040799847141233603888674683408729576146976265971507573970514521674038808385420153198494093562083494180844821651843907186454857935411988652622403271917749385275782250382269359705400549454563248668816693702136705498488652755267963759254295311527394338996216801552906883513703290248458258150712763600548356859654294106517041963038966990987130227585345904165117509748613302711360435317037171841680987314181958503156487077214947885462800392627751845665043091260341422184230421013314028569150289035417750909654228140833298247325956328247018868131890697734122400982457204778102124425786794196217970824549471516573880791213055942557982936591018592952145889198973641057489089488774613063868425977564232526863463439677983839121192848155904632572684429806903801848937387866267760146675569302143175290992680576999578973176289166009235193383288594182243444483733745857062267504976827361392921256590388559093917896293628679219569856722077114516768711517036384009901803018928779566852973917705416096145306993759159622783391711279810129843002774890935874894539811735338157684613950841856380458329867284936286928780127547239866389241352820450578035388536484709732754492568009427559651602910345775124513594193215268950901454459524169611369806470811023153333882766622987028410072488660528760375404302185784296422316353133503406804027844414752008268900378635478415653636895673116883950433545631780101661551036438448861498271395607957291390579008646612982441522813477864422645334901586371744886261087774283733758627720819683069638318058811078938957283767783011869997008943365606245718983815017674655124808934944770008373453061948200224387252360495475711739466291361825244605762600948866902565813293113506744377932320250380205435018529949807781052599853044887550724931255065100388571908248547838993266028603373935687364455746756966011919160143880775298766439451357947607144709888932776605307411631153013911049232821931105880973670474323440589088285640026797594353464274210784149061540929624083387910815657899094988157126902366200432802152895896157752220606214579882840491823383657351254312693680379872686847552369200777721381179649240036159023457700349411534068335573824873913135391914758158527625413375899842036188795513807317346224477123585367279053008355143691747085161009147544822406092245575761039860966356788289455003336043337208465567251648946232727869309895094558630983011437878258832122990671329181939765220257245584008140241309321334209506896941907787020261535758021821051232908135283195091572599255500671987968751463023457131529536331288669612988751046150859356338391507026224045056795116886946051109466276723760723750528845553323504747748998015828804575300504609169021596452383038262921063032258517321567528089135848835485487124126532742471657522015793560433819846488377660552702655267847083560102435686088326611788097703136061377909360911308723407720961810239015785329203547127196910567479470441464331213143956096751662611289444050366388193402864204850380728609879198298048731334990048455219406573465415553780146623057839211851143279665124261860447837066569424651096974621110662557267176417196320000606794615444473830095878493631232523528518998571980916000681419191861683890151812480464347190128400070704117380054024841599367102849240755930396348724030137535199115751180444162615222008808978968333324522000440429731261225161765569424603020753595893240208528924924352707396565138857291831649476344881044603214390876483265516729876219997368370945854939343383325884620594015729844642978627786282332906904492327659329244991240461338339690152475856010196827612372034305510897923175286777387820132668450988071802682039220280484921574342425680467306971771218734560857152035670621700838936982753619171973710794073999060368395206127922854971386002256544673985627696756447769925630094957092701311919298249557757637508594236914490683476345460439443713186795630258838268179289757907386757743819735208131268068528419443653155109713356812574828346979017890143182775261808833136399736028295990100005197243770152558648191061236176764114583236934795506473752503406099278972307195082778497001196031316247555100872885217381291856087677478561960638935124092507858062866821553712362464896932592034892191306713471710997703373628959597835095325235982712896491987110448156130108291858127392922110179269486428196832862469292108464389599692881655076958228987337238615783294284880756219323095740630838089146283641381169292290832336756904067876535761639617542666459380243601974719954034836508568871288552924293518679946556844513208663020748995316987888798390898954565467592320605819226177883766122253354733863709677295930239911805566228092649500449877527733462521733263893894949146540382124321807361584536114046021555259753667202239198810502846810737704377232931215975362275051572387645294363483879135289887879058215501111042335845183102276113343358047897141497715251577898482989361644918289793177903264672287494186754532691836408798282666191059531425286630926707017324059507062273866705792873388271849518797606853228061480881864659328799427797461245295409526712496904410461310739091921123969406835184469699304716866174240505192229767529852966848673483681162576635255457522440318439224623325561652251410423592327320188833636089013605047263374962058237061848468952998652674663630219587161369367867248353561099403738139969890044051538895903910328279457281511397587762747445318429305366136379516981727460520885464692320417591143500135039507534848961569249509002075560557543841702901460781818699249239391194382411002570518213882300980354585878116400455303112771792666147437748373662374602020735384034823096876778936230561678938067317856631371635387047158740172890527249125208271689304373982296588377632265870582768134735329947863858277438165477936098561315677934180002014758042455937737830360395631349135763401350303484073992757865953439127551602075308652365385274503788859712486671650039877419265374145011160495071001864930153582757306955302684228758483403210477930534852209549079257356397702757373204550799101581843679809773130351644989780684770092412465890171794998639015234524231446407331462397045474526050430187421299438212570644915073546929709320638029037759118818739015791038279468492628606493557705792753569998447487845448455800506346031019432771827220312508097750299519197688024658963981141533713506843610011310996298251092340076886268173814285820414110607895701149506894308627965260288795353976116845807304352996562712209219685525228849169734490752782340903793436643175688240831929497835431473144939914844944463428965717965533285040094675939963594990733864266562187481072632478724304062904946792025384859153980266086302820683710681925863675616167488300314934301281052995998880618862997236896416520456806077951010091774657308145469192581327312967302559205871656588042033913153974415917287194875701426222147192789110660275076128944273224291366994665927065725104193631023859817549079869943892438890089393463412138281362194718079811145030002043390157920439312553995192226090889997125630923302714291250144039818705004202596087808708135868664901772444736952194467034906502238409693051825939968039421038583216016400769477891924212148954359374400999379643728561303628943116743708946744737971676182086415931683561842400484542707621856066439597880214216431665190096072817460641376846555288918618196034882585207484555661908969318905511599162690872569882176388463745955064737773914158066740766500977834149348421618440383883109376015393889363106315487134597252904837036883415016860751585799025411531953560707703814971227446960968940953052600980817492700921933267421388744897485958260981627811239347933827705619740666378971366211011150620641783273090943864210443410015684879462446967599935247049308499270573111248239759233598986452827704154827762908516503796081505783509823027587421577959779004592060888004354874347352982814703676657845392604783416704594176917489468082537728362160668568691135194523833890891891110912798514587414076502852590672091111527992591421284355439757589985220717590994624144692846326862634021582660249829211586948010765766605491619087786452758667194236834434314341938123350021289777131425000529224971673107771001716851188822998892084729467521062242455347160799120832204726268215968866450816735096164393399244775114623696703082302094264625367491347034074245876652408826191033625198046411371161227393497964475670145458128842701067719626329369178482286279120561849828090900732388615464457885782858409709604774411265916188951776629166252716872171876251651363170897961764648430969865502038327499036901395661677245334777359428410507910768933523879355498187846781230812595819765132635425639402346170289036070816642417750144015178987133940719540680368401437775382302327416865127331446717927706754152593737093421319759704093148149199488987228678226746965193156630529145957136183974955247480194339279493656351149799084354265713102019714434595201177875945803750787462518049950522139898147845950331786257848999775100918367587992192282605503802850781001785441580731247007138124481319901891828791517297480631535418402724973198667605030469892140012207784918654167062889461437398736216971466574033954035465704207132586866333627928321215614881054507326446439898380024170684921991297480094285081669435649295783434412365261698482303194094863341021660698828462310983387014189280782073748320543074954164289632481395094558993370449182618664265415081900582707235884189828099801915103517706388164396642793470437736480269578536810367986653193903768776582660850368718103572836664336505771722786667287930908099722192218881367130934805010525726415738134064117816210480678714302389166811566310728760536945753778478065058502995269117032333037167196011235234440747526812892835586828684026325716056974500194444951701806618108190644105455246621997460551083766582885812981445152674903802269567811500703052376160976160751647435839334104077980557722934775991343313672159786610550734227837116776183199485930275857261397058658470986866795339609462918867805571711368786100785500743881857106412692050966991492894227497425451085029268848939544748228630674993942734032486837449145564735830378788605984756918370045423301286627585792709510678969053335973429361420032882467148804583531441386307976265974048930871107688512323078607934245122017154558018416921640760895771328756451994313802327207500512875563762033975330060539152081158801054294431785558933982463564583104692415828661178849010046341407609499821446541460392837510247350589440734919649540370272245345722012446368700313848339842309183240249015795186593378599282947015985795919685983868598194490544129809748419955368963699635471720618181358552592623299539916937591709242861366421855846766772062305444148858262537053208245437448229030278027065751038001710881783281865145986558325871955464585253419757769782177292361207133364124028163497001437315008855271291758919608289738898020217608210487754500133361319171319762085641491481379640663040654035429084875144609304542879788815724796980056566079959438836482028316033894667904451136553073142332760578710820792676043953535466422536781850268292288474386393039583740097385870142651086344620470517584760549904572725750315085058585681974684292904170671661413318850438469807973560177710481176836641077939679436202684819117731482408997692555128826314527801264381391375696394891108464799849976779062995454495157317870080407124802833371117026427230154423913602066185340630711308281520749753719314684009710622503719592163865824282289408364927262824559605155252350591207841467076056758736733618941117427616791555301719943675684792853267322657804559329786442566694443389254568991712253772984042896325472825553367989035077223103164222255936866224029328970790077496213095713496292896492938787597564476663310010012085380491365778048694771004653842197087555332495654302279840491862319679062531769931473584528027778205886769223247796532393559859917992633825686079312971530659553948783277738880713698149746405066251751431410646697548078882506210803693030149523602476687170177830459449398213546668120189155589510932377910663974321717152861012900733351801133111413566846800791039962245315059620716207040285515702614335810300780277816502377517200967856240169078815127492674101606302319578673330966741953326317915486900877212517307235789809252253022563226541902339914103803099343538458027068033444271651927725823425369059249275644499599318933730202415613392172868821116886256585270998729060165657108807389487583616952170620956326824609039961837889787201822687023785356834418100121493461723067675286359901128088910089647377924597956882500739850238077509591298155530669248953573727641323856684678177814057638772348760403251294676471359436659413455310631406958562634633689731065163807435534312610069096745376501440519811834923531887194079939990955389289577987504772778032708466093615488559657996970259562328028461747441648263204872412829894947810298822837746185618582323346671858688349581842191943883222041292566218213616277944900410223801402421658236604363913231229544346569498272220679082328807024151373524162312274775730325612470426854433853224701279777859978351819954302148759477816076188527083820208483499747127552820257969469966553819395937982896137784430079530185400369661661157628681207957971615356066202735762672471209934826291145872585661003020261654600684814387146083727979259614599323921101703973376987349543904745166541954737744116188091670072852497347235348009245947369144102322834363438410372077100134620579466406707530982408555035768869970078481436755104015453365221491888383202132791737495225085910409412646261587266461619176963173314166337444938488514859513586790187007958173647585040709656344453006310865134015456864546098577937682284642303310173279927121446955531396650548172764019726579062195388132535096325094744598989108785901696922581986048732516163148722533208681152503877839030921096397314087014632627748736199925160369035164018132286384101577891383454820869539491141654192122441037258823537352832966225404053959955125418804695534701692796581808422169114677949577090318147199522420048905885593746441615349093468210952738190692493401258540162129838882360671129904727853825109322126760086356788729911106064744385406313070269157932911471683574893086073417620348424225579743251001003864368816055246682773280148166978734963320996341723779237883035166054871671792874001119144726245671247002497622458224027397707027023503237712416913149130844802726400994497259572092359302306992730005224907365141977781182720305259060505366479310184870828397624359765410245471902129646244072187868542913071991156022134359810926127809924492988353214211516880443052422313351720366875910920612181715721501323049150385243127601602678071027790598783630284909951332333256554242832331269708260482841091164629355307970134715999285642688988970076744233464896500451148248944884381190520316202395612515508011429345593840225890445235491606770575264177519736090440204483367881891568970277893660449983167550333460997434539066796812379833136398445862204918269859801850628083650581758563282867239702164703792611575436878345664046590607888585936157260733764794736283941894928357605048336449401134986549120821004813255068375628197025686969954918762197639720450279004466756395119376131560064544864855250749799420850028954444995335745046836622766872082483164135994803070601611822309156175259528490028995293428737617351026742418815937159948909697922257721440139091272246178883874360805196751530314791141433573207365859049304277337984471291954446454304400959751830974182337618633781152912801517866360090164769745449589573231467955499389337513949564362601454959264673734721602188531326544686008853720772213452751031059526253071110235537885691649959116922083888770780517354383985678670150963780886864757576698253235404424542840088268747777032853826199762542581992934205912179778082778705118584523089729856387686511275072763410035994146601222794895749559203609946037804848385525959910817123628274420401784980211031762787788750303630226361609766675801060395554799787456998157973342339974244475884531393345366459175525813475504634426716109489081799689592267046440216917680510059071844735263123541644248647774387877651738534789750140252040693299113532556148136043532968312928991295356152904027591317677341277704636530852213257548630793354788299638340699937151542249438088240647332631233504613882159479516917592545098480979110892331137789539664074608345730097651170607524143628834660918003849063569268532964005516535997857913060664047455719084866250414627633572044250876603320764120027683714720258395775725483081763522817065775941532708326625539109689730585045622593689849897562270215826526528062002518441648981919690955821207898972671764613380083956648772201932046367188172395470493020927986610411846957048684700496386412595306737666603894217618938754237522401874581597228442522907977372292551018088673990839885492144913863562538863789161591888424051299819365171369259169577919988494941497711519431575582630705994857586353474963975685597038626780540072008974502527051939796981252968831191645904520975630528337309486023832962721322569007376753391116829471981277057426243752213758250320087363753204645000573891793465923557708362204145285013907946406724667360182753798544781407692125608569448105416619567526475074523902545170531094066263668247457573460704065275753577743201023913341138135775033225611439009760994695213981770284146108841360856591839329939313580819527070692709276077217177790987638546344602405169049949774757748287300933978940641473694571985048299051348428670709915093304457966391953558914780109443450982701736772409790494805928838465752690821406840936752248884246612560526950978010126057728228735993798499770457317611758694198467474290486401231996744622268636332600764110702934889723601262149845968416031874245315843520548918590453569419644606333798849315311695475836111574976677407031544805789781705045731922588154943114390257934504998955003727042361826456804158997001369770936461843182966606907313547636451203468088044854463947988105468098496701317954942866813882765844465058517977123681426745854755713822907266346031643813750146542919453599343608206282790725318865751797342457466122502744301909224296277693665315871680944424278624984074946655635268045027684357821136273406943561642515379232246664582371079321459044461110922107039760456510101286976059355657979972303939386839617991898691799159386947086324241601016103098873785439567731482972348965947671427213412840043762106602005505662023339519575586451283024177142823715776932876797845227571042372817246844546162244727036661864054672492501446712045654783572692144705387980542744365066549190036978523007037200614183725711309111681021722867212589594857460043532950331146957965649006244622695391251125286803782637520834620109193920529940673531650175837826327641004899446489071950821478410208366699644155548997311854445953123278819884351936466907561917443638748986263627650302720686092518809723608847938016252950392255210283185911952095216030879709223063182430490513612517852667830989648407626187112119385645233258801563584566325681536597414006351665385278330279933276181873164292843436635161566325528087740547669670001881483129926494975606174499455604840565169206606294419074711647405755619551834538740640464663446523332035103778447675885666660901728752098224471156450455672431109195734666267791950351111912484914064555435257725496566392678522191762385475381971083198322848394692229495373749317257755425809647949858910268635945357613551466037513914968451229674554784247177930607499992487150391737113310598418240045774257591786671219505174289611967389888904579312607783631612978256941136845078884344497866404495895781779775376331750386865692143284565907638770350854549228817745921346447903640967193788480015659908526276175097739401643740642321537883413005026201713197591248645879230068500253381354891513199847109339798843654460482728915497107603731744512609717170621549152309355807845628392179950936649904409609156994214938711242914663120546913223860633526874046418697649751346003184289825747512025844598310398201406094846870769161838308623878910614682419728320052615038511068199058351769563236569694142362610152155381725036939198820292713685444010629436726451203334424480829528507786502235886684798729233633452675826546136476448809927763316550213007449452989543396175266117490169121300581095542449122673852851223438369598397804839752464510120588267428306399960890765573443634480149048829835718981640964510119289853987608822969226435420824456841236875233258977838524384542275920567609260795846727938663976401333752981741038008397136698750179251888900509616272530290638512244815629473486671807921675743950233541879714637034135950706887960310150164644742239232867292371725653842901470659068867294069484254271590520534093390143210813138545825970434858093148550633941870543754820191702268823175109013294136171877005809113345796164220301259802204310738296686490703750445386844284408790945807138389620954492075996155366557130684404695271299487830971345078827572484489989734970396224651104987770041793712631986655042482645042713229161230932461641353303916768945148358569270216603190656899930352729669425409329858504714285408386710889273443108736345700269111924324963772982294009440207520246620664473839172044257548340145394080354627340999096406907207562290737468413119858657879885591425214708035178496735893693353500754467232461312525826870463756343964639059479070392896125976486670569071815846029936042856641652378271137607745621090317980865717319993431281796912942962045569520124331544608359576565078324467211258500776099689071429906214637225018370319985169220050813910205378983915622992500646873567979540662782950224745926656176868862932116256560500845429455903291737200982085881735374687831820644702268612764976090634339415664902642621944959997262787988742068653774840012402712025274733443616681302272047545870270464098643467573641494455604018046902564908532516727167095127900523934217027430328861413233096169647556020183862159978723609621227570421099687370007122579942951869630041295418877962872409327846179804864790769989057773388605583824911422831637486928785381481431462242839849623378557735086051101050926129323099492474189267513161881862075325740386848069649046982799912216113866566382032601913596840251564924790644398333003180789523696165184056141033843479937617818210047435190907065480640320569117166432209921547124046169424710431522220510488536638270472083522207228179230772437862146298606683003944318403189711959387588071981150483977508624928452053766099357035113846959784295954406485751505062084971228123360639541480452318303759039230419312935804702532239639115127937593601514087053514606298995194074575535488686198226932469553821021947202124884904426365539530539435330040506133599683201666987947720795258669143318990921186522605849608814962683654672349840481438109431985740368377466370936580637339294587946644516826114833345980894813230142344973630008177003029015416740179574436162018422076053577654231628456427644093755689715537872869598722457407255862889162754227400139392489093720555456160784241539561883999055824797402970741478814357270791492210435577454609349005737681596828196801977159064579660575494254181445329924798199665711964551885655656812151334909804658037684761826601373717568372741306170464438082924391653713296382616530723106068233388999951025530732744120942699413792011010466320874971541058744582611599590687724094286978759462694298805477860776458005229407570308406385160436059312555658553312311655463865541030072699344773118169078662801195532248099561712788155639351901256077112884694732263635778302596564232697384744696747938171918349844120102842351921959479411888645207796023134306321717435406924886237588135079501301954212568538960669312542793294445046041439975110593068307589866631208970917867381443106267328572913524733573733413996498162256056419741787984415602133012302960042148911478485752643862518142961913689838222749415586395787408237809038341408792976445118888023372009886401223617417643050637038107692783411890172940132946238563930853153224422276881857172889388516865007590484415709736636539394113814143300708417983117234397432128982693088281790845460835227616883923670670181937790638751868898267898592612248770725537077468090917381219556815424678175824986359084577528221087337094710053447043162645326509875418704826040850494328944967115115564045037599221831531506218941768079740040267805916373594923058021891056162459013019130734230922011877489054176347523478720509575083012458009760894490201422832151708178638297151787541023277937785407268363951803722727399072461328116672620238536295804476874489455893556129416678771151444595215072801124528978389889243980579261133951171633727247632203561341376655493609107607754288639415375091128355095389101756992734810580205244749886065694140688059815714553496102116404129920711915738223964968790061577179595751167559084819296904355934449028936964861900866118483640844547092298808201869643501024165892806728934618921288399805886754723382266287467489827600721396917908199418072364514382989430173553032251147891184679935694376925654535114088246264417878175405852046275209119455171507153223229003178378639299726457950413622430738874742958842038653796300887828497491015367140448727060522398327465443452935652807696047722150302406032996082014428740664630902436955822017514819021276959194854806500251596627667211562658270387072145811474469794369850676576882350350632790855260275245784521393118971219595602227780105217056312396344461127002125867235737090090246740694925766696530479737142762657053595744879087619929979754915470956745686626669331781602694992456378613345040128648268256454678144257343138486006682679767270827808689640327625941678840571459411480462916488128520010261056198452785431676734301941800287392809461519481854686631099079515044881336501254612214135427912283913036947262589780027331680030312219807922272339302333969902493238136301781213601131368310388677339001225252410376288392001146874739783019681516234484584417084711540563067122150252400600956684502099654423577855478800658445306335458651974851727110468692370821037423834451621446359164268326469767485119161178393419514216263434572806939369671644034523111798133136747255810302330033564709193131184154932715418721453955008962151995577648095322472817056846283525646275430576200001721499028964513843833117116585841776451061858250821047245469890855260571543347364077660598021844622302303576492869835354772286691167255092926423495359112977808670676400914176047251101842295428946972427193139578251117713736466128861099385961544636685556640632424096551152712448740813863395840329068301663750515937889447003244679444205006232380567807586140516179491567587848547537980361332045886720131374684222777393383010159278738266403520793857372733187872211600697886849105688767373546820717934420516918691207339060230403595314402484827552498849668639056151812913549133306891980509583195474524347688558773831041434453993397826437905600793257790326877238933597040892906379862359132688276912048235322685331113094927661454578911147071816782987954873977966493933404999580445111442637878055006181201942856580115116049659751470936084824478407151016568819151547630853708991777495003154677919940554302384555684329587122807033930365508052035902690222574326941773378330207785088164599774998435514703041899310927886362855595498666452151460832243270293986535471171461120978644646443256180023520004864169280901251955587967777071201415854032429272796513998214262542785238361824897440083764657199183395660336509497078523288974588149334773099486397383182019324468791919227598192870591900590754067357185234811868346434778505415782822449079858408700586120528447163358777233043808270913739688950568455535232618221110237312713688142058398385474704900053609386576177773048783078559721753881861727200525683687300867217691544126287754950323922211648722178615226209112425923774670550161255823546154420874458421496477602559572740291847164531588852588278842868558894965084270394298993544274755784884092534243675964612654381092025562998205154148019374700480357966774587410088413181187258238578544848881668277133032050914804990270633866946909935124879227100509277461414952914626105176485990692992381759902441618794970235657180951442585499576517929621056744600221413367375480798603596959468569833797726728528759250604441846435778240362377667029872832370604527442555068151809555888683589147533045701169217308190413682196197924446042649934384845273237461911371108244643350169480155025328418462873349226613456894413900247066335547078814160548567966865643266981303178362164646588208300503644548129228849644616410125023757682821894551184580595732090939462064867750938024379128960180082794047481742206332791471284209513701056194327176292868579090949321805556897906628628915473754867319869373846641958561889977082799001692464942519034737770398863014920111835283723279199650777155816340617619698407222318678270123540349943842916855650515174383773539203225611599297568796557485637139984984188981872386344774773551501353507919108180826989536012524782547043214097784693232943801472551258437608609981460219969863154847357629208099670223123077999976689261493709481313117612672502902025112501769538583175793324823747587160195989309689954294571523802778922356850487641824139102326914916557444484512460830514578741750738717674417355110130764553789788752222185205861330107591272012841581609901291829118566671573929980929179914916100046603332922577608675656663596534181854225605988431844272181094231810906310605967733278403950596066977210277736141182720643429853844246587728471851788363375281932542583005499614614837350414191861619862910670638791195176205055641054814853078236437201653999652095042389041167497643602902434195676224468514208945656803232777781828040235317172716161384745264342561703004038807168888842147579572813241630693977190486932101774849343952208897797746064132160659123542873066349856495138429915119375415682688046403440740031916487524228128990849604910887524818976629544394637536219830608530266297677622972823708841064030679839570455079864255624132956970690312606937272270497385849063548119466535336602643153554561276200224543650140928707010384502494229968246989481931106380584896383496684231546895857394178100478027431024343617063937322667141404764505532068525452777271337995989719129335109533521837623781448282123898331839226954036294419444779393386294782085653916027686547422160219745416250347948657330874869636214605079665721155856826471256401983236872218016273702740854612331531487465319393626134387278498409826789986196912202669754590120334748717152720342378485320199773941089399183239935343608383194483504071701605001971940795569291694412482684602905546024805566374925676902358565496305630549909473833868200225327275101476538201571896891764386176038466914712705020901016679314353889817992613894958205684315254271733398458496778421955422849693775382141987539836280415138532709515070677831761849268674924518788782565238807875593398741899239410646608428415951768002918996744604562347684174628436149052409961460913299078250776717299487379930049706095219029159187881565502948692499482638863968238495608685005799920812591698095762500632522742977572235324464631299191602952782838780863743794848781600798669184494495203389091181996840014360193709330547221904717861619952110929112791700197667202021639669184222413495352640541503434784937300948107500099230370915388201550820033012007604036740047502823812172353310546983710100965755488116614281741971422411114653964940881068713531679967489742793722635135810389988254516055367251021364169290032107312234300723995569142252464301262735666817822859016903399525588647085175428439793423274925339989258403923207983599325215743584252303743666138993863200080064574750880709379984627470966570809436929936107002734538156848014398180022649796165498392424721495385516649061338869947944876407062566016055171789113105157898124840674415404386343218080496035776369336965075024967546596535171500859975076400045595426370119626833504239694093247325407321746536577121897863354556824170391037818242656724415781843849453825620349781174947104658950823214082047820539992217083096379247191435705268927378829630172045984163967659793992468451202167315575940610850110840150149395848132431432648317063835229338983573286296250064539653232340901663455349761453977754354551018002272987816661057242312430623503991266927255939838704468224405690217527208905973140317194993937576065170443081784358468902322640906702558256315652710399198787449960056696531169420178903331930791287640450024529260777573554483085149912160462604079663570042929414152107851793951248929311310872340368754933321199716941558224225323452699165148427080749649824320910870913027192207360528239889033377648244024821643674489283893271787246301295213777584065676650342254844795273438929626352170692482957223372372605212148675590124375106886361686206848107532525519080870082393756679930005256400410568687321345774201100430212747964046267720796028868075453328446116396367029616763610612095640915903922675977256127708233691017979324027600947790504939059499035509762328552456920149233803895551145369453798964243907753154386610796172549357971644803446126662353804145557367642625144590571925802222930640330494317739911077459948051848434169030124710528400114530117015926417603100466879843400676366135754159381073949023384595997856649006331001925807617965927489021730881865451249156100845649219173398418493640078924253400528851274097826072818449936233443967778341643032861707465557447095887106612285979843832898882778608994982593444570625520846669336207364561329951753464990966070993431256359749029656718468035188787644371927343228496757534874380605868393873208710712341196033089306023521935023796475301514159372862118229525906701857585590486981033613106195370441077208602330006694355982298997200389420507124130963301247398988986501613446041636976412991855139856413348024401090382042098050981881637076560253542288520642504748958680899179466861171932503324823024105980558476638045521378932305723502009715574760259377207677608746814821345225316302087888239853556684084620188776333889382394005969382347555811966044053660170851554314092863357092159448116017532965834133347177302711059709051781158901708660299016051247945070243012323067026217970114151068200226813999750725832130356166794912610054201286453229800672689000948209707585410219884885295459601974730636132842969855385226523816130889665914509124886813125953536296057660319750429504118843939724705360578947986283171400396848076421190941427568120273245423319593111952395056290622611009964398948381646448745866830754857785328740819937572748521974137180942967777411722239364135603321190933440755678783811304519984514862898000608483869420621852719280187780424866808029951289703473294463170946003859512545338683557968905846517230067044888968406108630406121351552038742139284496202225754658582086698640604986554258859081455309948434938427338421786450513985427397429095857008561462561834952700228141732536765397946912752974701317006383541596544634244968352635059485344744721078056107810829649426478810025979318775639239043291785327634203752297565752743408295084547947015245260899313885783123911751269225566757288513340439769625403931174933713994495293568010603796944595685975249877267348079073267618245233552121621496802344929254288655145733756557659455570923953342814246290317278154039983415564198377180189821124760855955518999506207300714034520815503329814975070244267726436033873753973148431374070926654492295204231990073459463931199653505680733298148658411091994439462723284536771128484736224606331360285910596352371938716345986963644390685405322319315241354693248757673046338170302944798352260205181494445850496120326909233752716235513352623432072194300935881503393598974493352695787457278314039670396910017073414932531022063263016925237018012024422688492909819555117195612083815501448583657166510269086648717323819014860992469913154608200199270504730568876141893298108310235264828108102485450220875722128344134379484999727920258354341720442598469327409141782143949280179974565987369828742826826748442121371546823275112853416523703165307043258283372112371376096959399375495362232222197465961933252907404248760251381952426973910175637197534300447961782504311533150675825627353434762525391425152757047878437678852418719663462419927008025761083927497622636549001865320645499515580290839851327262732196728478302538522190479278689389538780368699318846603104363352437327154699898811186443670114028426202615047388235899747281493343257065474637022451887289061255030273791902640396577417606898976983456646470520471635921448307099584306471727507633718020714597445652514188505037163773818902969685284409258193174410055576089850292327101600898257223817394543698529654769490187384046465643730713195901140761317428220388331360297085261451234907307147624534050245423763666685575740120604059886955630114415443141696986074032207886003132790553917869674163555240250767653085632242737847149746037784064609346812991871902892759763070159840887781745192690147691030030234979458511000180886606216286801110915116104098327308808995433755118718317378655877648735885449036687907416918253831330636233820582015488544982788382174243758054923815972964061963105821516709190326318730933813850113091332770930342511221097215505610491387050426219805260247611607505971037943664771529353491718612506611636738330499564878779365697911293195878277774060107533372432790009732407256070388800871137309659634457096041175089444791191621745516970964844762046174128154536128422601551301589525862806957063924443547802390516861338549861926656762276035823498556919224890690116459866096156795541549215758128354092025393170807378146507883203526651345707065536856992811242656708448017786461497404549211843122762184522441088471507570190883495022437569885049454241057266246094583209596257287203099477654010739855806996619801953450050651450105492401886108913417306075923843946124656986160560909454177290736400939132195676836433329961999796542434802656940683698670617587413167650506027135882574433707216458819522613397054520523441280923173065051989954502858538352287378728698291727580782420982610606090150925211090898996438929786294301411140067628774992078172379474620916899838961894863077306027491026703883943352474243421236712177024610116024061118571687050824404916238943435047025081364915515510432725074794102473747819226520593355136255301812196424992488212992601774080103719884212547447216029695002774268507752175866917993801362584224173985607669916543275706123045286728070763189470589544061884213157138003398487408680941446184585423034495144852105399124893245548665930533558457827714423774338533920824127763216596753832665064306388069556915620262225946941429007998769834420914699989795683266709041413980686333251565256968787899225743279613964370265431446393337990008198575307978817613374360948392830223380327973203865364624249805511402246922647893159294491804038298364903488863869756441485560856053717722873714822823686427811365720394749690693723991561003682807514117847378256221277599591677581403853298688851365523231393843174225853562807019154400776301634764778126132438024842186566985527400764105119010954528983825634840704558080905221476972204287382202064451116558020215813722046634766333517561799050089778088560093208145417644390323524193973154721892092020247427040585791354379260097680763629875661478264433892612121345659445680104222761652418376401867345339148807900136360352843217478040168314672618806793649304686587364631148328269804920227876255454017850917749772829467569293545166609864194814583644478909603830458285369895608066566619036031004530472002422639388157206867469006192987308224849001681634892125543375444758038873615865885924859755874278385999295417099172251153402542222969223436617778192965331349674775722097843019381844505985075080564948318967922058343414789051025761749099758200123472441028507941231843760147142137829511021873589939170816868055988133546991379453783137711413549197124346581093112783326621759222758936993477049843525192107351757370200545734513058731322143846208760277518405348937132376629071120552694905300388822804204808210851928761076772814548927944032272362841247943192644192430796813703829482005869742015013235319872051992035387731421588221148597431823879098919932539341503787689959695804327251777689866125889395442013917130641886295106652689606241452084480340347411331488004313864731715844681575483653167051260174664076072809596721327294224536104266792809469773583638349822811476691695969557327702827912099792608638170176542101511158110926832874859506462623629925924969437818222916923432548536160415251420636925214774598094198892681477644390537611191746302607417041449224194980017062386681694660798924751697185000942874444662410058638035586306506360957270979734930709648890760630190792334617019745665624871288498673826785462689451209462290548275423302517321328278531651758693405411184571510483463283200810115252541311936795456126121610319742783210387954825391743140987706525700603767196838304786929100326748344206684066735150885860916629765722779969260038682733496418758332118080916861851713459115685089314940448199610725023378967798991887258268670537757435124650813798628134835066431324662709245236546983517407042651369882414330883552631945475425324845884093993784631867338133661031005811464551518773050141308156660180611322683529639711462401049831484646043952006163735425846982605212545385915053646201416593061524137743303724644103975985001568921027909378678603185176724046959915723405290038167607242477016978152148615194746270546142211256912722538159050203958305146858500360242005490945502682618509587542621097399132209502954895828917423298134315406925757058801573654535178927415271289413143182694769025888547865991968988359990438854227484694731187519748877121501915919088858132637699812159080896918233505907971487461333680397063500369555394225907345369332638969616238425410479462948379374638132461240825306902691465021517196552425678847127229752667920280384129661575021846811088693939925268794395032672870087581886104930085975019692809520482375713894543884424162175662637351803364327740173412594274558202675440278812140928688041203000227063180825931867664814904472579944670459423828111487861177124712994023435319347638977894844625604174547802052955308150254298015709039238214721457480550269684443809603801644372619530044039908184265874879532636017477343963474133302927558182000846488609818329170786212437034594042815016041477058185644132223188779392163988961273699240022516053512829372365573731931938983417538439708309035853330857183693113650370081905654504329842209938149004544540044861822140550605287168313414262789644169533398029687951753666784755096725673907734718169339975900118989111396246520616071885649119266426940160695906161044378014986669982843324652576088257101089919591111808350303650797428123070939519840254801694462620592363635107199014815677440001231307254102560560159316840532816997339070715372088090132654154084084869464851337622748284991612747470532225505791833719782998021737591424344714866343808459910139255494465966742373011912156910484733069805081712972731380662922967849316570700310830556788979123298130375103174678340112081353091466073367511876218722324789683703827950123954449539675885373844664134720247001588520176131215481437213347926567224469179562586330030699458362891038126489523388807638438188092118073979276831412308688094691717655267197134112902715814675294427625213295015430115336903892213841013378832753935920209051942093938979412893807659530870273550773042219114300432566846240722890340217115127316890533946785187382278485158224704841277392682805651726037644584400682846673735448259249691621423903388931811701138913150192228541073818145229259218514857525247618384807758382986666755676288831008601526358935863571274217772895154458312934709800847178289672734129037076071597089783899342792625573818895631940507275208732599945654560858685535826313370849340641393491374917907721822853116009498270366792789235878843160849183895336236157657683342228959270239391538681195815299606645208188618438969720018935678548949422165123610171847376046060382961644273311730402586998521537216477536320660720612329293239624078004742806780812454299279509350514397602119291130378021703950829509906994439391195500340721574148017759229971932827163039713393800349267913341650891139464247966132094725089819572375049113312916698427371148958662864933613397030362471630128321007084152026276899630681896952666694405167511329378690500341200428417394295414458444754124677185087103019497637306464566186349406566159555902220388135713617682347784631098854748031416075183130544034281127035071959901420305881492321488412935694452964317031319035779377391901656912577178069851218011520363784718232894953444655146267846820263039666301990692261062324086257493667440265813971924801331606041280430940301178183953384569734777875549650522671989203980646508809876595990402683545829084048874359012102485707190569558518229964816324570157037483350716256177878402602480795436431427740975204629600770595232159378392656058476318316453946086912913902970752932457528311220631653077945599709358801910179547846822202981379496733900870993483523659252153174780914929635957680364164531574198408294970424039023534026592213525985308033243178585774060569003951749662478311461547074710152410927099019069460555923968305614807726537399849961888020452613695722308907368225836972534673293043490796231583862612634442408631410349974036550869216050046280979394259573707752242127755962792858417731369309036459436384493982339291854895536764735608789899719778070386620927463185198508519268526245382587024957380501099381632387082022856447402189035037020515868245711255202315308780901619437053871768164482939449118658976812285822828630588986102960528325443860452415988790437047737737136850213539382265394902342171088978371005174981759702068682570272597123999047773133208906742112120082183986777870565629424693820042378134913066630287587520925647732731674636966474625706120034671564090347896314818682134598061272968256545576749859197286737975381067421738580194869393292329785455610079000547253305167081854955082957331645303896672805738782805825883386743956721320161223642719023999031850697809484729803770517200091305626967205284316649649046311031340090378152174924340671446624526247884447970326708092047966021525362297779841303529182491667754733386109757717520892570062709539841927672468102127146446516361829038678557363550700118367241542895404774834328434837475643045274450680844294328800326353481326604760172142269400349628563970257256283718828008954760238666306549747045349843766403859894645814480531950919925945149823361365390441231674071296632618704241988407865603468894409807356511171908841621313370383284752715801402333740874605509019733708360472009020165095766376037863721883200386390086318700252115943278393284792647056206906139403648830945520239437276001155644876784475408356160399848851377292303432353009793967833698300912777997949717046285314100435349333822674849658177523531271960159061728284621371401030533439202703451301949107034461745657717921913241437364969396904896573282575669132764531083445687159449900509202240475799421485141392454572532607827164713056995813723489622724101513581463393598573917624057344627157841431895806876744880080349010473159581907241464172911598289697025937777675006732038336759992089814111989857577054569008806673510534703721329348905545549720535301055732469661053806609950070275475226267638316527252791548331453619391671955103025151941717812391244827611145322188667771767341740645237899301503710421102322388477693731425534798388888374132460169484945229905107108955879321620563220851565300740795055924944597435103491904411337915663666177246177234250577135160442663034312685087965410397347392745290514055124103029836258933623583426786553204778075390909094601404380676438291147830296465182153861892014007114945518626929913247375729922061152524782916654575695663832511478672525609757827406443804607071542461773873376807193067971913031072597471709514887374746950349152024257187438661942079828728831057102815793640271463453279847349413902420822973866014373548560908029571346922653311826406796525443498999697808629347038553615700103796998646180680289328572972529014282901970405011170939604017994007727907300595740645359239166638811445976418742692009378297052256405569829948514511625396658674223630839350814877821146971451562642183972324519725639392618648161829774385324106434925254168626435227043137238046625985568603693929750779400699210927268702532645880616669225572963522442048586718120450934271666318905192624501490846006880522350944434658274022582905129503049799614016607725564487461462709786889732567210192923009824547654380086437400109757236660924137231868007744762686294526391724897026767456792734869542632962933077993830606951742589565375330331982513746697462587161719676711578595912938946419005195942311625542655890360404261172499890930640509531999646107199705169382815884249161492363960011138453259171654027649547661729565903127916495173602942136281872645926776782768960296649722476337423458853255432357319176321653972435014685762391656504338768002101569443582360863484573501025317463807091205815681879683858394510423679587670566860802659482952325594202921026887529115436922289471789836330628408977303931369921911471481628943832342429101443255465123776429921208276392973771594064139740520923053096407841631655435542402370608217818229921582821565401767669766120899144806005952990654376236361202630598895100772357556516592197145167836743551290845111362955595308758670837780019199618165568310045570228278919161302403618351641223162709045429397967412823508433094522021606266842689197180814965483076922146809272437721832739709295506752479298131156698823159331096989939122543447935774560661126904642965640740541928822647854797979744559229982135300293155312717617221863197089822353116106940684881575528948162082091816672481312890810462376990701322935328445008140894151893110987965407214618275748055858024353816151391877200444585065798479202545694411477966399229790532027713023499786440344218249616320189181180432647831115159468111481647264547761763497871308668875695297626030316668412146343026244079468697828598741839503171394290013559087722557705373858205488953169601806863232587915107058893271685942207156076389078597607765508430373190771766931455239135186223631142711608544580408475000247998758230058708826549146220787267268063637453759806741647944848149738923875472845934387527928676644327256479556156983137246251045428885007334895130250436750092419290343543601085669208294261850388397292138035920978526334813384995927253013258210860871562799411912242653301351854683014758836172716488218149835028778855753965978890610683222861861952982764025772256605724744655934032528658160143865185373616114163075572970379994466511411405407942714753778111142551339728349611528753303886443281608116519009719605585040319934565279822223428072991817130543227748759230282529480265505717408619925237062968149812420426377685988195395996847506801203170391350760070019492084836887963851424058353860689680377544207064271651941908844817749095380525810448247391349962282964378356130937457114761509358959457926535184445824407348448910093955756022910560624484561256004382122790034279070393187107523808563892113640393583540105820737115659807256303077282358517313619370779490857099847401336685002084129819112235959696822259645458832143393571194834778926834588974007603069394540213572747663428486665759667909377976467681630158488167706460389706583275923630814092995503945837813851437720113532362892642037783484121359508214072712089533733168788100003420840576180389037755660267923579426458250463428582640582466470413641994747054661183354387910763314524200053780899955034741739824797089632306577880661508788209327159575654484261688320589402879672117198053728362406561189079991380288320943433112469126814143218206702353906652549656361761513240156795689103548807955825825328000037407243165059153059069416552440264422265534657082709714384284185626503226274931962958902475416534576128240935354062701440070911482095483336493865766285662502730215442597984538294819130149993816839032640802982348877414716824958784818180055520669101561370253273682398464025891880120337650092064772911586849770591281425393646332561493813809881934729589219122373029584341575051021773876002742570067130721327155850271832631656732297416556993878969323828886666047534639873633285056162548773854356883005726249740754685155054477920664951596322925802293266172296221390772547495226462179754608682099390454206571222320193765629382978088618030619528493132084967387233260394748697307938567850075940939478674254988202420415470667198240680737708036607512546417371045935695061956103385552732209810939122754665443071528565396608248218609920130748257076988534894691543197165697224766161617667065198873444896624586286251522253842901560874089954342176951754103353363403734750381964569616208605048641414584922244531855693921046091709499351230970681243367449929819627438739313209704016695375731733639240662067336606643546095104780339053198170587577123827378025247349903133500461177887772747607203425731481597071163454090918423175198274427763779402582949213724616142441229924935894614340088093891446700320346521898372728974239743797153198307296124285026965615884663944840556777668605819505314833709768685171863066764959789067888706831505251088021562700170042329256525775535714748807170330384064659421313222560288183751881800277819930167409986441062719982527455695968061642301490583712942032835260868134658206866112088199942560871923959865755990688479447989572847189711576011266352332118719974665840035802181340436535578951022409632306446703623964969102740141538402618604002521040701078265991504497189394637653897423395944478094125964467938810595401770617103493179060102858481794286927768025160634698186487615862337015251602363718178799903437959551150865145402587972642320057250444419433171201374682541907085310721520851269398466280177111026424456380791588249566743492875534221533673980070184145968906406936381641534693733580413486216823628124855196282073725171164471004843392677129047095449821771245997353794989592501819266700991923198151396872039240781317332882274061834899368915962588277943418125978223746823356556966161707037739424555386021304334936400753195339849108699633356133084982004622052379421261127386469773435298406141202933574769854283798507314230296086006458390203266832971066474859280280706222894119846852371184628817825233780181757362738656338576525114589769142517386579768133455331259610892167967599216200477777366017396981570051893055632093476805752082392470930750564865354014709692586332447535240023579514208088609935236904979271649529733073121762702277582805843309927781993804392172681117659365167746348586811523913603817239938043619137087041783245836870732687927591512421327930692493680672567164093795811543741008447431807984798184562295337831592094370585987930674314958421280917714693715998839338365967633328550845214487173498729828022872245972111003370678851957086364693267471590612320181128619220703781668982540615318307653843983956690719804851395299403331186528088123217077735132700970934377286450690552483201886405445912131117904412799490178046065119346213835182007919417118694779020864787750881187224477634397287600533491197235765406868201936808677188641543680800990685123604632696099408509903969483621715707186981568085994319275507836176310635228624435829757772397161712443900078527257874425455388265166580154504944151640169244989042683457345626173402057140117938253155396691786508532861602277977618284482128672946293714911091163510449320107800723707449634925691218904931357361767273707579489881987081480329456080270142457402799289156950749771877632590121855832116833245638324635426413663047442069533906874618048742695730825289285497755704465530725372653544909165505854490500908073608133007772880591762113407812702207157721799184691999647647655001009776601727964696655224452669933769931290031683521179052832728749544751298134025062913810954966857283877952905044288966151554228237601744913735138627397538983742878364570857778791777228294183786250926281394514140283818107124993708570349600679768563369686476720810794013433268992292032107971528543223093687838982497846997755897775841621288966611830971893956180558988873478822385862983606148281970638853766387023699719056887914200150058932781576679554126561532407775118370166626802333634507878413669795089586402858492504048493379617118032804557079693217083088711762591995943564413971495282622098711793930564122549381874381430808472755308389172693462948996786375493611546243336309926769946870192230881483903481460666095445247038837612083165142010076318337589349399962008248009986046283062432490492757335719180582605324935512741107358603022530576982049946002145986397578505832139101615820893810253664043283856221560504818745659654507487713704550258145886878709415841423636958253905004410260672794345106150247722806223509663315736125142667943414074665206353454658392226114632355783939937097026201916221347388562453983020165547146208476297265257464268723386362315313553556816636051903571895244664237586619804114480252199013025958934999070183464431270680599004325613871121045068905575067907676256305038426262251372906522565494265482732134998484160539500471824985656018473144907426919645745265811357026510716238773346883372589977864367259174115570165529248420631521873791595246448319525159806339460374218673502419803903429172882058569352678665815820119587606982523964929234891467944308478657497450836696232960790189307962445874843725174922985957167812557484233167303580613732387207900933633692574245789195386758667611341258247160307089431687496491257167276344430305543587943967279839160550213514833324054482959124012187831340304592944162129275049984501670946484953440915247183778255760029397942501489342146338675883458963870261127297794818453034442314713124407849821484673586273265362862550103973603017946321255354342329834650428782992697952507621176604162749698363594996032434957912103000462192014621172228858441330174290915199745617412214254815101274882630094697483512300721702238025163626542457316682915474442181002777612760729789236825861162066670221065842569816638217984120387841026448773556619962919187799243489762359181312079342126285808524547143180977676372136458404335992767255515876687292681898646645773718156713727127327069174460768370230278792424382140383043987812547006213796556007441290647108353130420289291215214634522567535668396813627818999544967628545917295133246231268627120730703168674086601595709916631586465223887456234496451599074979209945903431392149406798483027225457243051435304549078550468575655985031418630848348650105751244928756718289912764572460725925529643384645472945207641184438179028342584640929845681217561693893596597574042929557152915076829707802023978916969252199569167435795107281101358448780347612045865179866632782748015063649022752319205745215355728802481958656569366630546997062951144220612555045686914803274486028172682810274248864026160189341813654088170275190363279822038270382089835124557790353616534469844285133454838643525481083128499832894181729161208390713906848687892138101036796504435251204222146561436472201498942002143834420124097014662363438582726929610862525525118921290714836045667955951686533053105451019783216574176268285593469187149247242547912327152909308767435328387505631625953639199685925802257094130454164678572397376266871116228209347413738395309745385622839540124847808174876622182715157013569546601451452768614882194513411059801959086376897851029047454766574382151811345102502465128213078825731151825135732082734220695504162056314244492977578541810479961944429363946697398135936691118451577779926435064354447789078668856676365556751013302039206410994467486972380018901857712373933385189115176152917903357035783597959554448978594989542466471543277067082726518943783794806403342214337724047867869406306620720565027737002585237439345579494371757594822239484821309090539231169866409648373506830772494450468792906337053879637101170440903752038526402962570300441750898478007785474006909831594109288735871895339473582884735120247775144152864143330152376020257165466393135151695802886647315383404234437057963764866980429174989729433098371512156861929654197679087543590065885191194910142607559694653688445618809901450714928355936533286587807344656348810329886796716467813573843886039356754812673163834632608152226774336103425627990445807102437290860556394198440975135534819368989443858562953654998625886048571349208874795326091097703034650129404022860283613342235054786831175310480437887068288281500040827046669007244607660813283486164716381696784460515517616537118876351523592785897555315812735391683028019688722025518660905434784145591634664587131734675240423205137846651454848521082743372800134867245068256794125326197616598876523966888739252407998493528141270966542050697694791090919691843101757313225070643390879078608673290030639835351651598000740530826896024170370232670697644702976026046981576139529220964311841219908124432974534969714035525042861389842059873557626554353472123109964180755739430498475835897786753408277752559453469072029492901386136911719381317360164647662549743551192372319033756640399554244778394429835182877424641232791662248726116615311955651531837930374483071056491908637692464303925333281823210265162984382479889408161531526098178358205420475757423919079066108906172633363527535883672852532356699956862701830812167405280180002553689929336938678811674407772991654278804467841356200936297554569151807671331296375531481657990907293104137962847599417790724890998839946581298870509883672688417262456006546811448063717429508458798293125338228957064263555895195747921004748780099067471349081771165970278740048485584618443621880455975536139781877110016001209738065852060227467398432198019506909533162304589829176162586011360218289353059467362871285557042048740358073801752241601053644920727003135873627446547077793526648446408067183202372794201434472347416804982143532190661854299254690278390239469367565855047152011417500088637443752809863355356663053144742780108559946161239902956286531638308517479794311770261662110750667259113679565731261079068742527132102089342043068644265621908898010268788167758633391987936068177968001520738645811186433222300276066097923728491881652219262768209018854780389443560320424330725687346061737023245268043661758961997444611691103048605905531997056360086339357467682549327302610292972652219997013784745668336927819603268412053872503967733874100943023310659498597575628944088749450232447104514115759283854319043656099794417786945650590867372794050181035891330078022518367047129478583932589452033737115409652517261432458213651094928649637279067566775702907881082452198737279403819995024928527363407436172234914601313374188261577753944998175824449373817062049505167229424285374716677617880644347567422409659208038034162784725694268290229252125238485853373479136715924694997360835010090841599916137804841580776617930919159471885690996102325600636796509775882954357381862985180328592847704137243664895146145050192069446910055451753162806533052264007677708933108986747592363114249211964737983859542557785447923057506806386126902090132506307939519222133860918595065125949662111567524770317261323632703634237172046692361752729643717179484510462385604258222738205746694163997921781159413559646469298483067092014257797423800935295307642131187963032500338498464286036340724983128555939809627486824431957818590388875500902591367550437589147202605836213776664200909010705930533871909593483383302999128166144933023488324286278094503744594199622771925912129739618715920208473155346980822917945574110692956227707464682922506407698844047590191734774146649892635236134717021650665605904732803649682439836851481673729696986157231072880503086554205465345998321799681376938521879386471374152993484829918808957757606697549607425734899720499944592474776550655881309885779153221253482542661842900833581533004255332405321421248360436128192217295783844480015460029895050118238964630978560709107880102649379376565094718793225833884460889554615294626640019608389113091285689074952441099295591850870862987749246293509843054163189206518901022108368738507686044955836700884497199414711807644132023195029043987298197405881795755592494324694154799405009578634649107893595827727866007415601127758927156974669185672088046158595689739292346460865182597348098762780327357831228242397149180793499521896489149874891195446601846485979393343279816952173481047300746483125306807551970638079106679558987664530004506852433458445014194380760573215972428933294095357769028928132730950373344137444842404965267264912307457602800339029746726007190696517893056846085704862419219218955295012064993829790452218907115449969937914434089777511702614082584014441535739125752687821120477956764332887539697262447318790329525014752686425937456143548799640235550255624128656418887114956390547794276858725041127991197852527863555532605490775416372818787942166756748578561416230433638240765037880156019880957723804879880877686818853155071552135675458248621074536528904229917221564124329654859604047603401089607930001970188160340187066876734930116806762537583410194493959959751799294529013819672487642943530349403840454890206908114517035801938191590053992538549904281164432095981042972560098939829781428018158679033616012883408918242656076965727547631996722453307756635651498892403328017852909671591215592207966059200516647151130840157471985733155950814931327443860967772896845628669479813650313566094452938685876216472384194726675264827978036461664616546009384320096386651058793835840874963614197063437324407440617596395040543023084204531168926186905477455123081429286713145478724936722627140194805807208956072954026603573000165918462286944297073535927977913514154572363668056135103373594160579869350944593076459253643501294918340746568221068024329544721198860420889704487725978522293551441435958666171084057619129648024968957296336190810647342929158012492334159507279086087473472977792831022117036007855457695093136478690591301928975081368206937476624409797390608581957036947956217339092242356878719544888707655404175386489494700125053265954906591158579312704816593456876477106138345165728635656730814481072241362520297715123011521636643617555415377731353126073673845116106084151358374964999144671831238478172661278322910119023056934267889747688453059278879053490310507761425542996293875484175196399791206714877105669967322253891393223401564458501503835897166317796965033760872633416256651521685707737530402247944039875456930997611847595036302112888839234495926700379042225710280651298054546955321149537582766497186706631970791692260507908921887407617766347269293430000285444517296016471890156412069943099861693668518983340105486629594899465690353605541570293708695036832258132391740011335789122838643818662142763911201676285091701580132394079716586787519933592260677409731015117422689023963220013016501117008964085660915964199602020603998595167599336164608725161053738306083013854701146917863353802341074177249771296949823893347460978146663308890623941931970797684886220394489665218553085537196766750963598805177974726179303269128318267486205780926525652903428019088270590140546637470013833025889361601715015488868935910569440449721720211392456484749888583660011930309334050424819094808467898760038276692181719086769660182978203559920718977804292361836630667945726051889605382347287593282301195158655518017828313356583098613731652593503080582396255908286572921386547219577931224335914732375240378690825360216462948132048845739870513672463824650599873114603762253497782210301014542987511382244821367352673721070466677797424225083858464887294909600521861477477151996602465522606962127062085416878723951599782686120792232886495599471294392000996760846261445296688181911180944889919558814713799314815293295825160760107116624951556593720289303451396577612021582500179271658211474939898252164131398331629215911678786311490350370804672911346756645736776031670447118722869777749372049841155253422836893646994865992816389029333329596705023331063186454715946198921174696044074793011211416649749227696638793413605543628013565218859169191601265017034734921985779121559965545078845902800241979283614688616696872940673265794485514121029331647678050432030238929162094969940946268112688477619419298887283020453254835559564561049750752610524425580938627342063589277682844228129581464734736707362255972829437263774877683992863763234539366344505846403222027497341502487576599102151954483914148945282238326814839805199707655926889831544715769511831555106187300676856804057123078324335686278130316986843408552081541485255677208828951940358785837202454478168634608411970360599469204205022389505099905474622524732812866755075605926657023819679854436973843036347551353010142231318596659835501729091226635606839627244308404652362865284232381423499086766091580811529985673188270001310938215761913296593145799781199823426305914119833894125626021521474556185978394081691455551300017513102083825563173616215459035129106180015379921299481140928264215227003187999595833637241432647124378051975244525862986609139765363120503485519687014261642737394425538704104093401178690284831732444669643839274132175880980004949886150245568393213699722603951315999095278370145480127595279256570668760339430121291197850593657439413065417846820219003381050360714952969682719340824995408242161639655390093100714463887620313491340775627556205877748079843945811949518820071320525940334421340012436887461101510266689010672516105842324526485513982392400435721956683073657863463628471394771876051423987077753537119885446765729346358469884781033914667847854708731515042908742459239461326108929195037101182549231842072104379420062672244936264350959550337583817195105443116873279605675329829161312575435682524564650081228052263681461159753211991706603643597448082885621932267393686560625429382249006199560775333065246484430727348720887976729269681479748532637460821151712272174344612137262433632401184329188986371123475830738974105916818188166895595371823995831091589558651551079391105153715928239197272385189345950241777905515151572649757087242876794409731453020409590769173875009613264837074559534153513313449000387528031013378564419114742350224523620088655342053548595620977763485917378780621225544022592527384830776517999637382300909619759380174752578307961563233626646373083895738467111670927506441574763282421096818667021420776326837552607761110898894496467327753439014910896163618414435140276458122289605060381554653157323103591573592275891134925690093560714797768870073195410228342717487574907091871630476238872340969630253407824746509725002722414526033508279170509524408937573333123198203021541635078677826550932171378171231371611421231812440806330981536074376395026542557472387777479516037076025486348948281530335202194134646696375143271528080291002816293441826410827591952495181736937113651514537697574630355039688155770393898348715498840132387691533308860839615203879265983426272431774927686269635413106846562448434931165089668748446934710340534822954844042494454802901500871209116791765860652787248125797753474788031668900351087458568174549707049735995711339834554368894821610053715261453005639912424453996258031328022857815556753370517961433593548312607199002585111086675429079991703537006064368388657603432842134674936328479813459950952445941366688588636535801656439672455889752138057636159021484215833508687176912138457600443756081874548473053787916068543093840810194972061059938135377308743093608025437461836043691487411272220989011476728779478953951733778941126562046748007712938053458407655616163671403281364506738962178520907892224643916798604380401984876059535757297848080536465417964743416320801881522629972791753618419010572539102352610066612857938612848287211511443312174816440400561836018672863279325396928232426014000725989950970512646811985138070288116929747036513882781618018114314687279332331454315102504802737697359069296971888893454531535369515189875968892467578877943475069709594838918709199985678213907843263703165798784080761347005954231533063135629197234763111237012637437169883645699391802040236017065484741044827168499151197376191570800687543188967229491535191956193124787701048836490034307122021693271644873789074869716889055669789349557482685994538815934237990106692455380866035693093474851627199700083726662594609163691191866834087603981605345718730448837878445994564106619464928279029871448513829662277069771018679726274836234505524986843346217582535199489358389264000821604257858150101486886919441391356686968831445986211992334972258493374105532462372231784115404225791978377626057249768611808885686579798004500743655996168491050849723073534559981156167551316684195733447513292296442913651579966325538347945076610328968486987628172465341810383001694345217588085496074784900756730397047497994124351261842137150277561668273690261688150889213493507321826932280660518231576305416072303671389874837793340501584198071058315310913451714395671880125030598869506311654406196180647080736123767536839502282439875286051051135181419197379569469363868127453165281063503834682835738440551422934800799366821080449360686216460067663448303192249589315595404581694972413680574963656793307919636715256980718618747311974596214344478745387556767923021361485972863033894182374504989176974007142884239766806283172901190857403250338545222354033759894400897932960374120546035438418200763258809362869789359558085094975650679953503345837068005723967268132946214075401312828636882307453773754966448767066237058674528560526287684371031208597830707742988942333196659933706724709689525249854458209814394921207939343655680256945592260893704379680883059217354990280818723942350083166725862989891886521707048580918439451741645600902259738411457762210305768869092600196199756364983572315537116480078041903407349958308441455122942817760215210493581318239662767871573714998284140803688197142273883020874501573985852397251066895699623496283549272734508268912027147525704270506111845946471828532054542723345159408698624119906327074618266795601170127525835086473884920460278571285023478467533903131878629664955207064550768958438391867679066785694775621300377608024518082734525214320551606331504036994154860613067595336597168002359216089478140468185331471060954683369162184806558707134105519361745103710159921613619950970865013778053389759398836693787395482278968333613816287002510939802307692164016669599177393122483908264479128099857806405324340913718621885323049102890113716108308680874867238115859742181565370929674465518492928750040651580719202828052992244416273543223825649525174246715774826896121618525639989365694450558351032818566413199762669743911116778094871793696573690376143192238347665546373088851777088449683238058186610490890214787876907311571261412345364963900842699447080255146246808750232039897736546071330432841705373441390389323484250318168830269138738845884794203557989165117728792068933863168270043214700842467578529416604696403753841191237643274386841834063376908656334246919941284466004865121778043276898551840227751809879011069676458190953231321128789090149768694698126335988541954556717571267667883715576312670276152597776992561643721030108499313035437189899247009395752824298729692241071111800967264157307261862392713715782806114143002017111426482584889272072257212203277130099829499920651648922455188366142159595891282375248360621720444959024857568099691558623443816516714631633100487392293226221943195365465767781209844862542039608301127767452831340676229436884135422093949607182598326001355753099690969163734966559745037380554178792938203007569843076695439031187270674422084002598679309241436629052273054873320374993181703899256416167449649356926652153481507710571777303188284522175363855090902876005207644455852172346692659704934706045532756296067906066323102672442059559496173835522058814667667226152539099092237347001406561397500633569448750968771520848323518979421232259292010069507200894275409808572680945059064154821843092352059880849315619983713486308631608177530993431356826119391131319755311787891831559922775024846159670664664052848809211928532569954957327013366289102018529597151020987318184639442800526951909043300223556760197787053090664264844723116541768542221191674862350821405552416336285619372915602656303748519633798312493712512584668544944179398939503613056358538146534974294520242828047303931963919665686795097812119450371518494839553461857076075329697620604212644505057272373623975657440000518850643825547281839696475595398026300097329759096766811250192035086291396430856380268780542422691206708466695667793808428879759066333385191831658073331288641077969980277388121632164618197229799382327922503439232071557065563693152921882935546190236507169076916658534114162027868814520633343518244458692779598046627970127434881999983671416159300403854909347712321623085392496688136772265723665048007428664506672319728135654420431444220544279556928924816510679063605431422762298205106039468390735987427441902527429805800573784246772140507586893275782389649330295393167543655826368293342278667996908620188089559616889819483366568308504888361764603121668763086594919836752609718937985086429615427801315738842262690972075493012383476933259946850644885035844843865983493006017943549795468471188058153183483885467009000362390165675090985197438260891762970517516264463210468224004535486063995436349987617932954392450932753221167185125536171072025658333543526968008511489632677184139489710157968223712323777998170453134977953440975537822404146878310311873204302877139841266742843083009963756515199425640823532499590528093660801770815480297746804698730184428172248913336690764257349831495301549179718603868488641641366820315278415073016038287609047855070467970510297237624004973267965404437574346149263092329939531021385733403946546431380393284754601668289457039852028989705619905005856633168102542479612249799416192380808171869561768335559308203432917111861194066142459302341685892832540228112237514487838380437533386005245983771521980857484740911596560510126102135739087758744852230707278675102693405952584004438769166088899837692971157675464446866868225821631593841533402184543020044556787861653538779006847964816115461477425676643466678616571432139560580510685249293020348631118769790675737306130865804980539962498308851629744832342091870932486556631685998882180763426336180380330937080685655211630835704265987849396277425742722126865260875537703432427972131624718656218150212721001533814352764044674384081792139852471765606453271666305344360658788502002162008322243397547438846569080848229761095989093615129181432469419017754297201682602926069362867759394413039980700485624722707461638170802726093244910407161694311272169324596134669925072649358332736922363720775270567953185986989393297451923406580320289778734716023174722746080557162944886163769004988028768178344620062203271019135123357703649008084555442557682671091481559673655385825943822195135801563771197167936702062224568634854690598778034658974565844785240881926883092277705460494635561584140974535542394776734275305008393605426533858342924088679140936814423285879009223052915279991590500906519247441417091004770849988903033856339419441048643921902022566287739846266971296286873757221618817127821235633490471549947075886804059463249806132450533895452386272552456440081303686346872684137921937957850774989027824315838273235033109670899330157066419524016404802598619582946661146570878969931266619486819119516889978571382608897201650221151500004591675918314137952842924016263075906928102591504769068722721155458369984724422211012783008421494898542759892875796268140828424620273448115637761588585666606287075979845389858885397359150678466677440735588962117649026388773046312288150082414864035251260700750590426855154587308199448361425175009691988121471776942905584636475578159388806623954201893749084032275102063489232830934102823789408898953172570727814669839254676150509011338562734748228265353590100895281786892385130548337080121637570618687637859548021488100672071140270517244681807607601299422257578378515262372980443754897446037591002939914877675347724241123099838146911879572544474496042009487586321049675622617109806570375457977845287555067068133301194037028368463183005066807530624706475224361857438269778398335421299357934225135203492355031032263242244961884867197753558031652147106199584104062211908359669078979633808121363989284373107431582309352969442335189333013437082432643853278990826149765002466223360134797174646420807983695465133294537755766227252446205078516996720198999934010133350720758077104038265583648170001882520487386269472797768681984124497130143674446177383603784505886773104155213802955114829413819681116530162355989101477594807594117715701165086921854114710049853076615445032636243434205052785612868371178869862422845371122780475373192140489569910861835758095498384445660130847465276512015225164046008638825408921010246158353618988556156795455594341539377450291006612155870640166529816814549150487091045363602336962679007420452451078747671110858160388335049073019845459657543115162722501328826413273272004586475040035975388411508587123667673305367165176672359234741082205566207389714589673612442860131844809900996619418551265914031244826821505050968211722386212311526523007131658654273609247852137350152630873645042097086869752775065195387346837523167170317938647078333812547030567421606759571812448172415490067795539503394974344065110140266883233981384072995257794268605098038571003884722484823787587024923392172716067232378375966828065587790533662110909733434199797844334852653243507225336039871946098706430167889540908433831832738009554905680850927913218961619966362620096226963711045923058598579332139457181218497046923974684711940903162865482672781602334664124586755315372206986570758884561592003927637676159553914381141064107128036641827384857021316647667552407500949113768318919687594594576779755050543591395884768627920441607389943866059704875573603207618939929078473257012189386351243450402561115311061598160410629347212590338103396221076910135920641844272757256362449921884192969284504886557168081476678966093634642719375556300958026571667406069670450700559764523975309356692672134756563223105217097972678820117567338442025858585630995827722376701242619501402141241517017062574823919937573153980565184474781497885071568714142353624433273021226810854708277975682257009325701405883696366404360280186573558394491847903362635015543240087944455288584149451156409427092240658840581570274699062826291235403802457997574932701823914476262867197280067415106461578426087089210088433757773968560088108136928575650801843593099633922487482273469794807840647767757743508106481311385412026681801462169606348638693518228333021346613369327916859503079924691147833251308207669101517857971695866018579272996719400552366904988057652288340540382957232949566661061816310978922639940730115700245762837477357630818379816163811907973603158721219831381962034497698162064239850752283277337325833243728821605978861098735519137785588140372986508381751163266745475940834529696709262816998084488901044363992941713355049172185304441361275537274043801966167062333829738024049062982586095139350274958987505280720673183786473024891305790548156273669342031533659348035452212375932319892888437480373241078620860562246217556691406649656032562701524693947009851471160099408912835194756827483296722721766829934944453406790736552541717488658390103931928741333687055929138002772731477548697755411984013889604528855416461552959673062532883041185550118882984158691157708185373637750607133505432687135382591328509795856142302743603957649606785980108937955654308759455387321323500760300773010791789640837991887086196320867905115889137412620483854115784882203959235943327045245914114735078054550403358190338470648101424868919725638116863193321649762981484953964608387484954396945851525795180911626654523673351745016360833352973965589221092115691197831672918442579257575500403074904666422709066432242851324544080760503099725830217902579218216908237794388348086565451658032249266413962473396051152475958393563660744382993667731189712438143450714426349066833674626796514487576042164900465780456681089762373524663044865139464823196604072671263927405371480600202881411947914174210964506313055942410056398778030768315454955071573005820147925159590460246611517839367856016125324062752420437119250613796485089198190958777058099249084208560010388602394315570640926229658546194059909869647650740890903710204107377322833000194344131318989829114607687934794756379260766087148325864793093194260650376503122078960597372119426458074333932294645621715299286987757237442174524351059370152244869761304829777561255990175145475954309572978672740072177410442876241952705751308188966699039025134180461879139639175199961068803957945781408699435579293988614007114172498946051202315286273269232409802703440393572135190345840288779882338142266098933184966747889266988742745147726958495465807735894966320431968422729390540234206993659346551759464401935696808875736513565527378275584560031781257854725797390168904462967021262486121787662647754837065335028591870593939017780464717594243236240820479795837934985204559679902540515940494547744176083957797368673769058556479182794887136785629764703619719277273687581742206193421215839221471693970525072478316583686909212066060297781442291451540611950586526514128818711064918796979431604799651288474036540839996708323631467927213244936269857074070471305843482632931884544051058661940375587325025731566527539290215236220741530144657593072275088832670637058214884319615653104189017912554845787463405381875056140442314611978451309705654536912682557944487804258829500769682321898626238111107236874499214246915040404003133218668230591543595496718901355903146969137362240776144310312264860376479193926771749354075341625710255887112283009804553940333704873282358839765090952167265647472580205480906398927909594975654229061846067947625812914780970375574292480898165417448550967270889203351426936069221576656346844171425141884130073463421177091338849728156826975564830840913326336717247725008190383325739818737436603642934168154160852874645872556535076211507308850688034569682329153540606927242413612638349624302522273482207667432824462519534381686632983333512318926415375390268980209230690246918808661653425971370319964656365517841852252077400377550133609358614163704490921998912980817235962029538477316594515932545751276218265882696502308327487795212641617601548390384586984583193711720936819908328893259160168315237898417509554214565735424477030798689073885423655119403552999768615121850369118581180619655257629645824743954946388495230522939043192083470040859590624775869267390038385675195963571883814773408191367110130507853555897601972413186887351769388896092097081199608639323761143676107035675675195450985667726092830783033338494789630261029049827785167734965663017924045814188890168611037149218707553685442128423002943618462997844709902389209087028258677599793290024068740412895878180015512623850669835207610152581029222069185058987978076103175274405860231492711148538125250221206590865901782025878010422474264403050814934008893553699421554124279402428833016355600845480611425197360007946836767439289136803754522585250356433749230406118813478986495017912039521392725893518850322747972830455537783064856392215254818172332080667252766596431620541805944807093733762738519177931869947302459081165317084647784897935244335720380614698700923270065387351237811893555880738276143138710477321330658524292176952009865221558322707624047867472018538357834377022350425081424571284375657147968931036341808937329972201918567752838733601339441772638156220284901596044742284106914681577796601935784853607566769164334614029548215017627807940265327540169883435434195316982597257270323767232710438850214575511607810784903672734137568505475128333182816818068792348394235790283046532570909969893392931956859422151042753161377858913302623839957249246256520923809821631002200993851783878629128475464749973808460988491571783874044619813744839068734059128423831399226835506173095377600773344155197113447780113636712930495399900198370576056147210774583344123575225879819732015437084932129176882040450744949109305178697056711770114196561695487469569955457946649024598805818205226782805544006305517162010917064549665772809123128273037117934488881927575250994256805720457156003088351254835453182167003120209888175665602481564333985612103352180312220387245461764927719760756163989992555884482471253975444199575287553381607523828907495794340847840981905049954722349176780899897355542816911986602910505481900466341371555736993081687879278573666964628266282678449837678112704991616800588086998350764297274029251889063949221831873692325603991587304511774483342679125168538532935334055740695466163939922312566237332891308244660515960756818641377290495515788532889906154123437813616994804639083110947354161918944252795610239155036306202464858209675195205668630960889827424160266486843101853579201093414899591329401297008097920933872852450683677063522719375612107055299577005685216547395630934014599507090684943999526109950370114911485835658403569443924401813758729506682050712955420991850876507111812723830525509427097018083673324604796439163711962481671287816880866722863275435721997602795855021249960429342072378556610335213428835403247208840753622747707672265703221614598530848070143271133232795589627033533113301913893098742633572074810144260604122194998739520982043140940011739601500116374649373933374250093596798354959808168174942641161758900297445379024645100115732568115366055049218229071820849066730683734741354087686468803628105346366063639637050840060322594442368068407010904147914080743724325375420452945492320548854094472777330867728957284483519930624062333601489465701029537276931923980079137424612898806209404251071821687003541827178246935885289693683871233950818071126520323160694213943504416422118045865972847019874705877049174523614062166471826842276504309872213025329208062441013565190192429768319418422479532304887222761999981305934343540963408734149400983611379929010404902165198001696534510509320118652889500134985548157976486919975355400199623921830371557049566111407490698906146880316274565043092929685649204939142663256004909546724624506038670277906597782558864298724579515518278895492937913618643354949560747960629939433289895607101850074129740279027598329853445366547373825443050649218755849054725366313745370776589299887545318170758033901446976126120801219236484960131914537587384208870327736310454441031752042168170202492424685433938481832397201173367271437591403573249742190766283951872620948773642289035555070995680644813853912139494407699817657122176758776977413747693008038530924147025926730972434251473897943330822070919844429634936827345559992756543084921450058959498583889721949080480021103101077469457503027986720456029668290243300490195865656152338506601086085247051259251072368903914426044804191068856917115605546765577541313378467343572819135579215212524416342672879351457987262360684768794244924543295937593225680382412430804044151703233035468059302554598084018141938839130991313780395165866885640534425045976863068464703852930422812537128881240638371919682513155064045865821220270334452515002455569718520449427126617557097790765220163140992434562496582346327419996696591909630315077216229597379413304490691235466289997678706396442754397053072010156786676514625620966498520697707102833199253552221017907154255491066890989015714352252320882493548326405825443322899338818143324607762021192763535560554018124664011806449074865679249304575303054063589985810364305066917883604463376007252105930721019229224189532238291589093412822875051098014631623957367143457654118054222740156504411131105058633768086937833038419596945386133732892471602532229369731322493799729280059926755672479757909534963414170020386634196145344182859054952805340999776308793433997597891056860413390126065078612560823204380454544863133251066372391013324302318546652650929391180543257416902759540719084176288677352999864254605851448070324558508800237492198538899825763569046940203693882744668184013998417739780380225429149259195749277317837957450107291618969993288313754198076726491800130643899054963744840691458284642612420496167874919002870799697918853412624810879505542074352644179471940403447965109102724481791903205559775877384272738131058143603281196234824968770668087190298872341728952793641870640694846398010895643153523342290031479810166843136947919614720609730858013615070551665133391443324485869469012049247732557182305818857471699146360318779330138475975986112096170716267577315729761334685704814097969154860012512420602987885535337647846511231292899852004061054006583425034516346856303094050978983625277393412354469101293626170198997139567103939774531009630549010544836570216719918722034635756363824411161709378889385493935561250090479363717154224080610343811886033057556124867332684560694175279344094970259977435014670199502710791447832109784571556218883274107109765306341681297933459346742756707244134694314516216704733767358268531719605428171285887083015931604884149219032436305805033072196601828090094043271791799057699323544388105032406749186069157840628987344737670923422578224494543482808126567717321258040238692893611255653082045065306634056149010369686585620638108841621125072437468721892420926302653347648510064882401875311077523879905191475130170115551259365095027766386560475993267772695534780632704930394893489795980911778925653744326543937422785062716532617100491301276476585887813004808407118441426902906254200678976496169966203724074999018383924962308016797133423606997570874906266593733463493311747238915673444128676776285007328674289347429843541691406948981446418541344524728510222660007961380960752701040772759689266151674443660665791711951892709120693115700607846131048600959027972951465467723383197530039299820230677508614793783103409232516679305885809444971780201240607532058426904533209973279358065620778914455124440482552693035330351335901481444516470171740967805413422095299180906029126071568339276616892674456115532092800093355234193476248116875078333750521448641230046935912724551684094934356435920208400866397288745264476416812224319790057403767520411314593569082948636502886651386671870984019126520871938214610496291771605611241326229847291819735019232646934760673591792047346019502146850204222725499060500390527173983088239346961329546058235596168859614438551773255682572004086406671572614287421586562936534666765030539943726433777117552486333465468661747102947425707471145240840693574593305810664791058725770870394121595834972080143473202166732002959217783114654794156763235809015934498393436031139470196023680643647101552654833033229032494848874017487162555417843234598358313173685674119482164882832198303929378208900666864165635632999002589124253674659874275784244531350568116333665037981361610334287691399779093956537587469917820529512660654358748024953105462079082869238253173487093488509220298997492167707593046651158113338304783246584537799959642245110552052822598551357995433140780468738288309181716886504746473420060161594458175927648783175100615405715334080277700173393486915972544835849957031169089050234790041826961127743891011136824983651124352217329412770603813026341816523575148350077986826106893578108357868111581663802542863945488244743152171446531882122656033716864388552794908372296727150585998390200737043520451962130066826186389711245753979831674835802866090243753365970379553017428601709822852543466282260502978228192296797495070684694701411147182712377179454395424754558231763707200209395248030550248615291942583807464456124756630329362111940643853512617336383757851990930337789563507099848726475632881577185877829735370548456218406166516380521163355359561571365548830402308390484990534640227536350532213126285798474887120879742391971298065157156225145357376229649699578516189472586019304801887884140770642778982111550389340417299078428877913960319090947564277462823464504961855895718672708930505099175082590601623035608541002615065995829409418822317117668561034310940901519556035941976295271519144654657011462735647603416640733553010784066121706880487767658296034459262386475855747734122855909945512619726150335698046742946544652410747998946799784648927454814462927046102427724945172854272025170751372587973508902883565123730751402162131170264048251331975042822098951384552813626884177326700882525431724357988989275269871603988463330764027410207254286075391463205633419005178016954816417949317348878122444725186119410088351313755549049418167286424417218802638816562753985733360041105959943360044510938252578802766481442579095548425763256667686186591270514838980441597550202022308442316481714578201023087613689400621715918636966475668011505893950691794861793881106913573911192911947645716384243985067676092701560138762547387755513082161491786331107567699693263983636019984305639886793035036311014621259261823243292023050487397355510388061839630338392022445021877806341801390292508001654765599060390880691771852440750963515195819308548534943637526931428347260128632155695589347590375217333956986053558181334040468345871203940744923635469708013539670296892056415327057617850743694104216200281385974099445803948437171223780859161062547291289418501433733201139419237769927284987921679570485720848262117895374509959016057319145103301592195047799861639973513634301812707663619625642182961355714741419682519778451292399518094802761577905150529962456467685941080031965524777784431018487536837769304812085949347514957536351908366451038348117838304020087249543294359801839909611614425208081024615483437721590074746546970789568255917810215356444060139689315984451593321201982737877807460527984806318853393592553264056804758713927361712743904944420640017604659600972674199501118019442199470307638680820189152106960803373114792754504691807086633068304717712769938884349752036150838640309236770796659624074665303205885579543535898594777542084658544662131174173213638193761117452671984537710736595659498165968875953527256553052258677787436196995545270088885043127590941433023642951983092817046363671057700408235562634578787478523448239984694378073980038821035519714677936743948439795042261555530639372957759761213908282947761609069866159952443474072082548727474163790541203204376326497675788394491159485261755081482364352014490068449037552549504528711277590244026828966023991381226668728716943914242335690716721974852985490650286693853139002780062228105465949194965767734087173852622258531958476574101365001688354835623699235440122359693600605122970484808670655982833625461624988840580805683874768059241672148992546676970704279759470744399240192171358768929455771482444048370028276093844436672655795920533328636382118343620277464608717645601823692049975214261411194950914136593993959888496873253905456168986309629627745569315962711129138906875337142858168326558229153167341288902773433554934478868355341061282300218466236526025203082990557359962941212840361584876982844767216650605084309332357791634125986725241074116285556088741764834982071420906963904058285391826216228998268695975949380590488575368152351745149646614269658795620199766438100506150418006870765847045347714700596330723357790794376706421196119205824254444186413088962966896033391500132432796099227783533958918466257599319452669024214636598684615865059340714840086040303385526382246381589158118363359664373818562104058201328165698540316735563816301968056458734803967516057164490401683827820160310032606803266839604685589812913403117536801291255768900097036049925914526513977577298346853058553693635182475723337804400750475514350907561272195228462960672210621607461237715153711868850400371478628178842646139058053647502894690723928909472263625662125720569197736932903139341358756978228791242833507250272859563234780250407896120197892164132387436929916913977434727149780099649672978953914872704895812275014589904462389058696429492723035412933532387618921156458876442971363897816413221384394558034626557913144029141250116885199892287079988203332745885087873962019584284916999880962566639784614021609505972997287096124330457625312926815643291803738394819151464952919885361976689649877753470040989333379727159490519391803031244093812163606427205974993743009579616220470674611740857341097442874902407222407192008491185818151812427633852311408809193386990524737551796979153348369860778847341792375900020696454778980465442096165582454565757260109829279462120160358645909800121461108129748652676649377548555016380093639144038747044068074173071114912039559556476378636872521258664199651815527268261024910471618972792199637288140577295437189483001292061255825008809586482343503115842725044714417992408858316044363542631311998838150344747327397732657258291837424868253221336201914847369762675550760047847475071302633152791442464845831054261792732559597899502163649805680167217023986364221513849136789469665189599636981895289292091091581455804158302963877917869354121830040998688888707650560675784523488371448929958031397226925002634423933729377836121998946004608051929181573650714060521324366571174865186510958665531766993318173830344832523723928096067690523685146455827238435892090666957383546278011242910414205647458071394447904816658809815878347299839103102752287469474046967738211615109724712756091818216032132711544828799022091580995446717910239857757760075937066236993152851061780016222800130689503482824380598897428078097863373237536738751563996250020268891715608720568198038132159271334649860797832469882632505217246773232158505276772769080739518020633239202228935130743426597860593702510692638789504893955632192116661135515559813269057575409440166368942600926755204065333655395145959443033647298697252246130287398349730483019618694555657529791067787277547211347230810666512202661837023659008353118127529782410474176812005473285408824483885466837414233650591259942286879229483507726271457547046200616509400348912926039955431957832683200403542687182806825496525383158353257730798874142984638739305884324111675854532875489997195502300338352132642356527110701750793748806830785603325414601943320967706374935741539533003747883990990070253146296598041526455897799394876475410724850931927603294897917174136213784198103506849616403938713561098187853350649482250675345626451525297740329892753756169181748537555073371637048051131082092768493599453069558121008228531454181705533962376276768523646265893677373342803558785781280821115743061979155371243564354768881163180868339377582789315224641995493001697844790900079766476198783361464566192197575452830238998411280198621038498830157743708738410828080144737287666819032370967428941970934024336445816131807477228213377537599246894948856887259048714181460237646959950801386604347059435174986009052318312201394591848890753040173686996125439466721399672314030349362286270110183021106675111156974413093694485088430863920946963800556700634047876561037082409804867884265850559964776275293345172179481954550738493811330423859464446390168372344019907188086077474584650233245520572489711651503735461248395335503707166335469558335922089003314811093105035625241575155460739324444620243895162945071839767616987097469732773185008363285906286338132577347176797086008286365784771014243655708737137294057536068519961990142326153519121878183240382660104099322768038702518282689905013928749433754762826805592644380644635852915698379751024085994057155596201690611806063853047946278101163688371115018556420832409881625698054524196110805010759134257423116274388612649920868926439355212150847906167359649534179203357299319229870094573119991169784226885366510539372307341483362776594610820275072013548479905377197752110208021488139107284434838958337452396079131264461657388531821170465993665343126495903472419700891057207310514031003142001607836834277549263847812555726811479079790178690706587063474951441625253213465913541611593773542711274878442640103209138695354514175104568359401016226775468370908677917638329951341468046889569352868045362009755798588010754417592852429641027544394174983197584543691671545375831879858306467153427646260166170736520150241250941328917174724357727936423052842049153843136718688623786700688669902695498242234826535568866776437975758217353681724178526139621292352814651019033040202959808631994332812220298985891741331294125482553096868723311629218467821310026202656856968633389860311490682515184065358262028492036911080130045106582899768893986223020029873020266682395983433721483435941141868009441024239480597129516215285958031825836245884073891924717130756271362697428833359520054337402297168977565143850023979631220832296886854415180768757504850991986416003851929064901878184328260738036579415375088922473330912890232978391570165470989902590963377562583277115219769901272065427673634314435963386698378990691427314298771210280981354038990518196590257528717110177255359810918897180596906653462252559961087106029038506826103736595190365980945903875680234895812098378184566328475101226255811761539113972787869656636476038783309584586952129741360212303926230727583162017153270980917602947021388975447440476453541813844023239519271050083654112614498747762957664613152927304082624646701708792176731621559023521033971585954705802422838270279714940186022288724774495150192048406390897784706393683763842470276918437140113263995349055391609284364993786270814923084851585691045365720342141118382724192599609844030715132883908461395367071412105272205061025340510194029407497595745271749295390793858606386322716975883091315775480834273084500345820943756785117623829181332285007239565267328818090238219283414941449565542842602213790588610200418833919731786325472260696786349814689795481129245649195627574858991085116766023520108670357206241041911139896508056310177625446789940282116489206299309939504162691936328525056590712236826429134597500011438126624463961940292261249313966460082178386024222634029098826070714131013402251822925181145074532496117982780980909040598668887394654345337415292835273206845203742286706180187577441930845756845900830486689521818505462058364007276520648231602447922945765035027161024023604827609189292591418654431079730615857216897581301459977941667168583567014562797481377628779120199707733760091548850548543734919107244488782685079767274247498877503716950996456850662105235981331559735770965590640499957013762197929214384231902193401513373371463885699756025752609691992041679698230878351338934097212741361796713331802161065533514784012271805000560589962544108742917710596386148887121653420274202194001089823491632143341096645523645641574425476162806149948622628197947120995332656928835757076874231482565476213966576158701886088308735206342138180550809538710626433109792183401239101558732344978992864043400856643324403552063429457083508674597822201907204349182098165274154755619205328716377066988391265389325883009078593309732527980300713903254611166790612622091484958642463137460474292851212258409058847153194384311331074768044632952910144117885336084147241830788228795538892654286664484346740126017527830053237795047173946198949841265861788389973276677309259772363725112409369357153099344533436315957211000477806131956256649419026610029205275667024981564837479664097209386142874282180671772944466864229698980601045005527182047419353303659476484286197418817359912109181105178317173557233620487679773497979516425829722861089343501579983963113356714420777512245221594458881235393183178984277679077619574751252027257634592410599926915418595094605377094715366442336816034537749447820380314799452485419024158225473078010510922138304388873009741595897624392851682724173540249533525649788361744765198146214873797373350201389963174984048031417473311253576810877282054402753015794992122482281883158599032176421808576117958983050763104579394151675401359916459608896611203563607240992607138768703535308360231371618275879494370788026235451349994710057516165840831401814160964148485556955730484032393220524854208409177214991579667050539409497091309426035844241073566596751505941297650572681495317756547067231503130463608454835845721446246720883776265194604923072910857551718087040119262985996743739966703984299785629244915783679456050193823228919978420229143846192877103398117953279196400870648499992736416101929828283644198702283182353696013372952696400314320550427157165630034780171924642065185460756811038794804264588691923654859303362606440276948220974068354234243978019485317192026063360302189849987739570514319242794157428371466917177565362215383803955612588336253255619898881383941315190594078361441569787973390220266643667605661260341772385273381717007465432876226735779917344206401459575985605811985204360990748786201063309505039894971353174758183494361183335852575639212464655851461773314300998747082934936630501465316745749214912742258220888494609209423211433462825171607831824274822368063119758762681072277963874119144812076079613539844998783245877808558470791403580403227933215701389593658177353967847577538591986059077025714985199792918862071755406650441436740619597569024610752451363496607249358249381528623686592641392363275844595423516530266033702306645558408623065624456971108791978300610297648846110574242652954741764866252078704004909017904671035984964700603486476171102949367265149700987270328479905999347892818513060236900749309573793718138695168213954681295914649862341491832620755026387682489509567486763202646934551755102928182498391196467909182393524187155525228632683189420876997759678736117498348588993008982463118544784224101131019114582133065280581124123005358964903636926524369193640694048651607563283689485719246133771989589253365265257048202672064769802209837141510874808272712145526565400494632261371175565225578557854386204843972745128112469893039538513275572087385861363328451549809991216221760819422983295375288430849748152659895095960317076754986645374137630467832607288385165158982819059836624424098412397675433819956413887733902556191040434070925405873312271951500439073325700740229108927106398570264233945072301662562178032650525080887920390398302390563040930830181301726145707308395001842861952901257381244218064366115969970222769336793770489676516002294892551841716903012990721201296501333506270071422766354974111199921981966469870956664006653242100394714517812910000178032454064536894501473949749005669062242571460680569254946226479467048866362893504625320978470128681090305962783791319601090907816037257598889091566804943193195890596973623783181042943725339610072872574632977674802262448251157855302750058601415419087537221131528876724434954889393712681182357650797573755918622609547587939006855053792263520713017519988485814137391208239095529104948088632077345265344956069737731565388547835754306823098580903306345184634352421193590099177251932732912298929823998480331430713420889867686491831766482764551648509783183127571966685940965467399168666738031142877256054767215666764458975682178499580369793880035091827535854837351023803509660322552556599141555444173691944962156924331126508124794987752339716009896404320451632415661243250145503431660567536064435401981471072977478011550232305077658642923557297979550551397602321950701458779264414739212118715575931178810856734946743677579086970048686007610485539674009396682669252994853769134670998340658310623221364207499710367664880906366581828908867836544765605239961168746643503885454965793933667829994221239057546757896113200214638887514277042848516141037908536267285432992826190091240042693001842308974194723371882770765364599634437675073059724489094684373350253686017508317203951523600178790732272888524363703330044440927812905934536866314147010465934188347468928262998823630130601376692698821779885172124541457337848823038246719166595110517463243127903156087414886070815548311021325401335686854055883431018870889387613937325023408807965938201480483031644811231762015402434502589721776700525987685752911079948876170334681232019932311321928743418466125998701817465611791461186892683702520165299119898887494882924206169649654308944234634175306462620663204127052479046522225947485262988218016651037739152095692571767605139151290790833063089131384670767807136082989918994490539984327494024388971060176275164865432435041746821740477205357907297881903006476217956560515937853174699754367850429962280685938360583506521637181437581203594638980135385789008753863779994425275139716428576455853881509599865425996111121263525218353737540893838299407147671947955656533381033560920916513587960431756452149002108737452194070166079074211714638920928718476016090249231911042267151029060178956746423834095198359114240864264571107074853007624980220673638377984459884147751507162293219203102605005515090769789431943783482112231317197696873083287468383293986801931916537026638200348246498888280099530802191763804197594627304342370504981686266314633138199244995135040933685213264862216626143045638015541670299756701810799145983714301340032034976529521643857783420248049746048135655627876700141167645327657091594698785747109517077561758971954701469140528987623863446660752169184051529203706434167143445810148812459041088366769369630161221404303079623341879278070741455430961219509880330732327122514307467437929490847000111815787217604725628436874440299990349072352336477956148260727543047507338357941695208541185814142116336633188436139304608640443812030500873747407430351981258795565121015437961854018176835163955314297889210979335064421892206382792601708085966151340923101445509598050049709333418260346282226613652457862436893382874818080831166321408860189627933379691796702389260039510884923222262487914699524694482213222071622818763375411744071764408256359777491004984411315866456552169347946993853458952764802986158402264099994210004334206449394164465158608227497279056804659105802319981404181666468971070381589917825990524437941647676653136370381649556880784171970666908881871118929635540970894493508380867208740873858916782805784646387301335632900560817556570518689835182885385581894187618464318855418835322055865514919608401350510913042964386737267017692094625684048216955942243816283631760549072993983829018770713786482195962795827372843849302107651701114120971271895136778113363452251194325640609290920398920303114286931102996162897157416513531226509765663872541502188189457696063382654025201746274843313786593668353589272889441372227122323730318997627121875635903055240593344068040671658854991089223395103185228040031630777931393887881242637399457661735057804548647097133656122691054526803233517094657822351326347119775415664800121647618915383944543827074135711098802738252435819294527063872430289838878623739726994810190995647633987267797438188240786469637206134575020404386514048145408486372294808918749533368453833291856926116001360905269807485077880809719922079054938464491299811604451051248201576813423036975845979313525076499172671897835920462441355835396802043901129880820848792705993984520815145552771604555450916639108614659810109436485529958341589405011322175918918227407885854505737075417198079357657134764225664007855202712359649841814780918524754051782985983587194509009264562032214567936003200980365891403659248029705970423893401417849408983405889420828137541084532719476594015784918087988412786712883469730444534633001134078424469746761005216325231469607461797235227518889113661084728250447333876988089978824961745714326538959319891938094537356200697795660073292073759878773953340122426282463811760466552954932776015165444339879779657596421303648495380297336297340540953656602715666209562420401897254100269030887306885967583236348486080031367493378804698810817924348705558586126044335111341550683472102803886307988424864795993442691070980705308289506513928987245609474089911504991593266076126398135041864212683987924382810639019024427167350764624024576817524129773437704721153408616804178294996765068580625127475299506559532498818661118722169921472095560654755219761455049109990697568423675215339297355971225275715087665659664502719171782052938851093694472103279129972997894959537217965414822046848471079713315292422565810659649076885751212831515757008915688390775159233949705557155439612034287580617518867039830867833408101348168394370339219341974243163346877167554010287905951855469702441074836909988531592235768360501858756785573637458577148410634013348975908777490583345539770579535213590168266477382725085565578135488763598832002785770631642240468395161657169656331177116454122497180862165255308450802635618913260435962920096403238435463721295159475370293413557820560910346503148279361410656603454420828537160023113668131909196410287304920850041743703833744628104646209427769637855809342757875987841833340399660193542026714882612819488625539504381515336088819835281749473542529613052058898947452978981927653623021464927164086320292356592994191752454776144084306022379318567606483039434162187536270414749761396384298639152870831145938517668485369224524791339701856796618981007020472212331804541923079943922150899183397221294664854266918247805798787826538813387791747999298627164543339304246091128474141007611054200897125853667283631486089863434645693410241748675676488649993201676076913951174561630327374498044609078090640304676349444315588698973721502306022408768962808996777200829540097286219693697999085628637818920687343124342519125716658608488533132234261843260558367351735755946247449424091891352020742489171844022318266702073646768610186247364849275801473588812961571164530777730991879061029888628714930204679227525167103708071639439123743167928668219344462247657260407054599859682878959481812296099664498418954355051269746222228405582160178156384893241562942941023547244744065298275956508523080398810417675310953945082956686670098059680397238783071088873099167083990986667030216146571722478408522623333842572081681007339653460321498432069726639309186514925480137010383870547849580569239080907147014680319441188291677410010867607146367034609701658774793861986557251491603212619971997380349016484226754491259673931239799007483105538506866183048290644335568139253044901755675497722458655370131148854521455752765003400128947427422375583403216774265860294150285405959573417873490709801590858265302204657806921368634418238335855058044069078904876946952301682422689530301950384904574094772378584130809424481263867625452617907185667849491594475752589043298597155625391687066405003386911470252752877463230763947736622050212431711197669755407073331126759558114307664350837766138393741882119872814024301959257723399249774565359917373704823455256901746838618160590685025236871722925582045471781431991858074949168211910106141017546675307620289154632134291872260156914532339244678353609292392595631799247736426558854142993028945714297643673232226292360240155503056432028370518644027032070094133089307407897145934113546630626365872857188977005569179639209408954049496757766916683128261519805386857951638874569339612697366987222044985742652078573393450055218249597364838727810394612054451563797961203029165947657469934154327101407474577289265442299660080219143075163201211471223362886891100314198269762081161023720046209913211643260706919886802864097226678090238074035935421449915746197968355714813677142010284368270041034431879942143613811977053870570251577675008745353928774720196545049062159447237705651061967599990856948777593914911594201505099136774196405319122353927497551027522621259329031592920206322743156316398835598947694912780282598450835836799862035335202068546055921678655283576498156695323158588572387298888221915594480378709089164856729907213738605360437121439616910385695176160284757070741220885574454803861554929996011109008952930561509283466502880398315529188908659028176649338550360211301004261404612185620272908635851705705207750060330829518090619335033657336926887231145986400466223734847362980287798810214710192458549374877745311596289792540550178074749196477840674655279039319556581389669254392861168127028607801649247175794769004071383841871022921733518989407640808971431883089221639365968753798701420400378491301275010036189355286464804238014072668778949947024252513956832936672012672774688760322848694287301349973554634498410829039902461431124852884825552468148762739942714989089896406588465382777488201549894005594865085108465819786193302486083380072550353705752672616262712089574838570781071679039632140611479857589273165206651387414183990141524080694271641531248414657507367162101437285661506728048482094590121411539705704846221539045505320545140864908348169336750662852070850447616870476424706292519842182340567119317597738507121384356616120054129148709109996813318550345675525027394805609455333324261650049742736992368959557120323458164445061839809446368120108418926213314665672159947081981768665914883268231854601655417288345341670449309166374846568976763423120189832643839103418758413624196745799464920222197983459305656369275684935977767109310304141130731253956424863850145550075794360426654494747022596898510266337438301815326070463610412035069829100774024752336575842434925980678196106766125498936694745793203834801189180462399344020486054740053972919887064890835327384625425978152377016539340906639616141813699362622724220637338198430677526480387417719061345607086951288294213418894326141155983741984309650618079924824859955747397586597917835001625124791176820566112456878979546722894411612072462218215036111871960386759404634081534052093195489945280136392392045582070502328159177110790863859943266252683370835162218627906963513461000189272878972239673342112248855253794962334805017456457141696886360100538717492882149746928962534740324906591107947746995501662902714298465088391795743901191544231663338727905054893157337140084303338771179398455028810515225387855858852767867246546822526013941421263800251511052536202028508833681167117913145351827458269079362143382873636714785502540618315074263817135131076739357650065187225796621355848452519981400465049664429369446264325353422704810873584386515316574783693494381756184393891019209933920793591730235133613433361740937889433243636766210205752064049860033947626117730659790071733843508611904667283091919140548761824903540960361117175873842829531071297887413006781572900718720285253473736830526838820885190065288899206711414175614821804859030161269936302200424573036545063083444521271814048110646265502183349180872813431700059389454647778071780075541159447956636875231302809685638497664674164239794038097802400682239304397514877618551014680749244431304936842402797966380697010721859444694667569526315883828526261340027805651395416472679784720187392873431743195634271468612868703186802680513077833113336497051424345861943399376038313489195361652219857173400602626816423331526275325615269986604467428210001630787133567564176057061036539724403434996407552391445970004248827807009018247852047697306068182728689501112304020259654646391688265344062451389438008685826309926370738304783630389808601099489941257512561401534463844237087490956244130195998756389104652096675458776600865903952152693072494759346376552499957398136870468238357822213502275156277174392239955413454901430780658888714513281337076148502576852323638293314742805966880964620998422476207439426900279429172375897478932798562424729659085321594720533236949043402796626630740273131643223047124289657816081090460225680448819724706799349489374391507550517355788273674663011336512806280676387389443510734047785428449458103240215302688926709289273432162228866530807917255253664825319222486046719040118814979669189723839048992144990637834224725829744875713871639376603835319582212583899500531756700955293648507888404290003623246079851080944704118776696569852700224236542148408230742496591289909650888536308725432732151415989181628756781130705162568510558151267135934483217802678350896047258005426171033289518836389103244737167483205917873365096282974559694346240925565281665664281336902593075874044002346731373767779248672610262584036880816938609418304354216051232899431137753391065117317425791903877442755577466603040662009904063042605149202987043184601327389509099815270306433694469041004457120223545117101132875640395937024233171029839349008207273903649597967324607011744165743432549961178069176467596474687979151557278151624730605833452636485128981677846980881899113210039395551118696836023267657819460839277758877356094075598291775428086114543301395004552465512429100491137288596606867189535571189037333006490897568335165004948243750201336851572849963696746425914953603739411549609823443143510932022180970935978032954975959889508110435013606216420030405425352518200915587623321754421758808594192994016616000363439101534009403986138161418529659189582746862217600400754022405234914487411541445060350425636232969603659720823649255942147652077137457479512200232533075772735440666725460638556600200246857044600372754039232960874325328139244892759626369997460819803076121586944368125434647600582345170986588687578964346022705480070837900413305141721926594157615687911501913402974858505171486081731560973989818711788963997543859385148127122856592027869352860760961001450046862821433081002880034237990803160388504060829762941823082783808603522724981023677059060464634773095240249025118717986424339190253045895732039085850787195225501777037652162664218528198174050734002666372515280934052081167101126969867793722598569334951943269320125902423076518277713527188447253277802055114483586444782301154711844183522932511493257269886174912260328402072777884330020182435128895262643485040180117669218940030138462303925595731289815372438169530773158947855646025489012335984452603058421107836641770498438042272775618146361497082205297894046841964210519595297634427944938008762375274587365404368603239256812039681539780620318441175173406354964644946886431290056599239710398026055271913444121764931576701250232821586829133991709434721860199061499472704193722324481136577736478433420225999696279855298823483581345198218142567592434988631331576435549852201618747009448486245729014154559189488870773043749586720792483838574340109825006289616607997109441836998747844395676792923888624160244369027154652760022493934903690547167448296577083073924210015283272337960935692399033882446560129800791917643031420219423739939643744425088139872031104733044683994406298819697937197577353254193649997033298030950573019449051768134116524453593299051529119861470957035374526557874245185688896013513044654670270758809946090330183569536601327917187944495410156034369228648022224704476758696090322096842256361340563483682971743439491345035015456271211307069128196826386733221318404444149770373845094446175483054536899360682058038898772474119523892924216374678456249854279850314493299533158554300276671540262962651669580914607881017471430699174419986584732904016553566585762630805024149558847753348985236467223893416365653247943645100590252258632136464125849984679616184355234035232472111052122663609157360271302132944820897661410378070919365580262218178495712207585119042287800087459286773627633230096904378031370895252076667175727182998614393655511837166922372541946679808216666811103956604393375037280755451484806816604367467894326404537115665863750531512081271327549205306822200052569298501430885879183833858882722616677568345546004203873216650375630854083599997383442031879253515109883833853900329096587405487398852972968379972293660129231230716020550973393093605034590395514435053077998616792471614432707476245085130197897386992709933257895246455475067636682646452715255225433388053548362739162623925296676645875489467344757727335601383827372900539389665659223059857104848277439804972058382111553820098920966136946893177199111474717037337482698105962706129131399606088218772148525578898249605715119740995507139928669201545658383431014260308085868849327192298415895092643571831409247104705184512875869988410928735902874312039343762798516411032441226292631100110969149554450309453357692140980331567654806421257727767562525366210180850636818295792871608398234021472035362598206364552008523128058003267168668344815110463737048499734839907210272119035800884324222116433444508002259779528179717226997323743864517946984457648063948949183343852518042878693263275290244789047593794042859845274992227797210002389112154893838239138287298993173119476173906115044782792876911023764755025225717321948181473706301308841788981959816299954108339024441069270673759595699711953593093849611028657407650636769449089301855864987037289727234334572249278915326092232477022877262964249176980803027823621723937988540050362571554887536100890114568649828243767815051248282055049206761472527146521896630049688579599767752259397406030511028985803962621881971282170519263223089517468158647724940066347625239985417319602616103692419571597760197169490239932872743974658804365659364968801685286397751552247599976494185950268040500640969843511307379711044119791800574646549307802152125298100873140604694735659064689241814839126360000736247105564819825893808874576453627742993768135876541917973572296127000892968471369649368367896352518230389131039926337585965257961649644990890955243550865890255302785990775532590127306002355311241372288339546404865777833161576829861517865092413747423720887013088054395225927885302394309216595649098407706095942612962824796778811133533262952874797540987883556678790042919545157674414867840448236392233509566007275479391401697107231858244127989233882002377940639757536572516250133516367264435915977475061192571301623009093734510047452761801638070967737009437680596671422941358960082475538324597480393206079604490501769207058512367261984589568309379680625434025095746216595188797550577965491955049492867123325133755673871605735638002894299024885121880124056867923618924755604824874955328263873146464164205988538514774334331725912973171197400042649872224381061421103274992413637133754743240629667251815657913864370256202430396479048900504429852624465756623621882085409494236850573272737762283655293864213194617852606260499906254796884745853044130593739472779307753507819355762734410692155894072757362859694496638890921585132706101710614979762053857085281209575276329498576677719475935215242167687786817343705567423740243650963517997153302057143111464013586402829024515173261076716920225250063376243107416178747624311018029013318097223112382400446652702557913433386482338478240836415091426303214665547366175962561696659433120665985127670461450435565056763231927238034514025354212809618536406586065956865009005429840500460935485306206267704765845643230355579621397040128414507155132958915455166928658278389403391529922388233290253888572605849243307420504807749658189661060918105854541979324802037965568280399926145969205463805877136490314877440480911274281654824191745721110244974231615616924754790847307516632660981952379567646387678825343150882208179566747714706801635105964756831889832497120460920855699713375741446504693478302243271003842147687932214248571356564628340103242412826327654208160894480701691549541907889908583899738707067015416665338419583507169714519341920374457438205104077772973273608393241637456285892241337653863674955049543056637708434508365177004646646381532867444822629049601846860503688344077608448239700256776213235721377269139239309592523794220566769837043926078903482673734754528332857659917761012569555350192620551799398021571031241431145302306985898701030358942128852315150644414206528495349362202442156032850944544546287414074018450857333734350776305942612250192525532512991863421476582140383079795273873761052730263924182242641542150906460098831844152564307260014686146011619491302403669382475017141894225920208067077454915759538454237813886087021786642478602868245538257060700785282733222651056334456649087436158229522645069096083169561726052652534915020704138021903400570178831183123741998178687238825101059747512023490654168401573350143178373352481938619828717997108611704819560792586428195619770249670042110009538004738803920047245467873090629279686005426820228388866840290831335207688650527791865629012892131240315114784046500075712617797115876960036259178899584553203528776418478397863166507073750966908836131673914766831068048300176113605941255839026184975476669621728534035859219034523767151164313372600671055941435933213580593431965154632317833809081857823319571680232256364543546573965389158512696172683566529545299336653616507398029873401838864612441636517466666989389248273782645426314272038650117553097076155873345431026760891681516242126487058077506359278820073571778056908881607984334565970610092424036098417826254172021527883071915797667428851450587738133761448400083912643956891713569322761335281604797325611648002436478133941949391998144463450338977304830790172218978761141526758491378276713640481452224170097638024592754166726985901420341115880451518379364707694489921651958233263828168333632551302342635169444008445773426489193207412771550956432261038689103857009585219216284841848988273268655470423667527507529843122908730541983950440894202141667808219680982797670774928984971242388093354144951082942562973278266923004101161806478685421633930127455892232424786749160761576954116883021345421715965846090848019719649487228542292491332269577189910652192682352097342852936279886092116791707629485847496149978359834308720070047710218568974412617231091035586226249946839024978024823106107738908043031729059847704522430321003304957569659557590980897187735513274829633988645718778469106403556448961252735144868231053002778188431067681436348836868815197935919480586451837858659731027120780587817682834764220458041748546527255792593212754220935506709152174607418634501047954448472804322875904278532798925864532242985233863325720785494344100713049181600750957198178380956000287475827557145959121423798241034420119904298000834846679847791736676339167559812330736044998178330002714620794715396260742401905177826968287930733427372635545596820513214757796885165521578563821506100375744210687869817590879723105471878597945093416353173097134275573684804654936846085893279519387805483535183845795512788897107538526481259181979522714467314889783066814412948090438764754172032883679315394873192784282061408378211112385518592573720264234464661698520633845340600855266871699988254685318368450116433542242467663197456134600849630856057453735903033205858460474211719831580072893001356115756207174231489330479644746806496381293164292352358113902966994946800145068838572950498800317429475562367674376499424361295901887816363422319493407258497317389718473874274935509850647269696844126520678050219420428761073628889385885038732456855643881657884628098866182032035782303338009930591300723334132345096025973746052004357099860029814550957846283200151357359254602735159675644163653011226471278640324482400773799691764665060238733966563567934039835656807221965404885119322488205427980912971100770045002277546120661716691559139809765659822716963173713238023308189464381281348664524959954457359960273403749531981034137354585996149549836091761262853953078738457075946329303714882251930381717511543835002670899582654526381103725254887743926013540602522145491981699579873716453513255099052087967799440782253080775816995602711127758544868440276052939451428880029095380284854110122615778414915814077499984149629224019889130831785966691538822900994694745024784490257136735697263979283040328606345468198590148086774140892108904010576575031104192216149418743145878476136714773918305353143832266954538329922394045613360601782141188650929220792949664091216003590511538805649216270544641912365189082065327758919973892229390120026823222236977367233003938217236746530526507439140683094747321260320884009899014802678019948268585535148065705391400576934547136732038757724513069759606056795390037265846113845113230645833725058053167934472599430552175008531778636339819472177438498394166462144855051887706616890278874741977750727859461678481964887923839242970123021952643848769171169294191367645398975302213189442746898644511952336113580869952565738499513227234485893231138679783119517843877135064823078704829980344715507014188205310414266822948160081609502468235978893323946769501559475750223592602042472263849410031136704409745365861030801205930892752761072852639425752928436218637764253542781899306480066569636727516169718199072260193757116892594797447612487628882179865013674750750063832347988396497740048841235756668657161421583110847360913934500027320051307981281570222561690655268330308366563814134700708194221664848221041593434919082040564085952240388003780734926165030023171799931482592911800377474465950156593998138623869286906265238206123362367459640720983507701108299079028069034109175096357314561823190444770495486618716069228030350137359522412331696418348799080748080408689982217275513161958780967752165398983096203489409368385653942119612308102110347105174241643465517192077927713852950602675186424396926553672334478410068145595114903678283881757053538003894600276907056312702323014141306631680174679733509725414626095995788159410727806596654228530160830980948279808777995415133063418519778723030126639225399955941394962110041954607825206744250803288180503393892187565244451699554137647784167163730755847972338659392635224018226080316927670846826907128840619197491176562869996908497073082337564779768748466753052691929850792803668182143767960730508738080830144642975982541700786439730496108341861969661959632201840359163563411843581859820514136319153091251744066240493909245135885190762706889366270990559464689376680069204682836304625016402102743791785448024851286182161251211457000357346740692536790368909502592398915481716225418252452080600390600406155405892907732068730958006174997192036471209788419244666709204449749874824088659052669358894877525751640135436742379201453072202353576834544681206865951393272635592769965995737774411037909107156835865846562208586210713954935453912256732806295275190075494090489639438880642545570726221159363124394916459725649101842575408220047228888466345128030448319017840074011676477395615436471395235581999769359010841775219733620308326257616596841193661458533114207532119529276697170420670518598424997628346041231639081227908900560239147276254723044656137389193482911984549306094462945096159115367552528626105912712122041446841774978186305011129740039411193508189083573332905511440743044446758533039081986774585870646675310587332044486643819547370848098401901457110801511114446629507460652330517345945257725758930786370071957679284954220239137265682599318384963573717455405038735780540832235428668250983407424619172124106592840528111662009232829603017213638492851047735852983920870989263169843588574220637445799561054144370524882233580267567460992544022776840093593181777507857673345320731185308379736957382024604745009604524055600641568355404686418106415591598692574489030347146086368684207141529519539968886399441629850126219826547899506312921479605647184999313392444952972883378335522530665608113911155759997907138289241837357409051932411808327532105758344340786287664294881133595300781151425957827964092837812763167468852532329802856792473204532093854210158071474018094794611604862776786734377575114375923330492549945720627684233643946932701733610844401875653569316078803127015677432921109546037466986463058964329961957990839163885107358365539735868580394756294040228635209634721703945047038525710853133624475454200105259671217835787463335941659232356257039331280188197993487698085088538737901567888592495993380410450709566819780689097913047531270144691199081713805793823536727157978743995647891549064076938192367836672321819058213639903497314398119674217404866069196506586883151348340187681346790426439557385900654837580715281812895107414409604501704396548535905382780434813583077244516003786097373743147217940264953077294295524732164285858641931339046225557314287679022533447878688563797709322070475438244713707210817280726216192203451676638569854214600293710661317844674349494603427459097077940257119887375313991238132600095632063682362858307898741532274462127591793546312149215856310068890958077806059372828374066045173381475694066896879074464372890324045717468931622799152607670087495794636552981080060563205359323461491322115081869171155006556665547745497875592906074227619249013128677758013421084016288308729212261577650952210150804466374403297822650479584839492908809137834911052701891586665978153952243363020381943077972210074929529190141757752516992977147935001371899644889115206473629667612182183930848992602460041899154669973852196756729309643421698898063419295331116601520268906755263925108101725929474115970572467020836237914457657307631055046947966134150629498747616641845707823855574370474740572018709533927231232500033657654418215016266023517184726721533121075096401585101898137749142654529986669208708890369491023049304630341750898351467990256972876511504451026758356083496277333454143953879619686112286271837770262649999543789756618638452242447394924921505485101221670755524051021038733002845936131845844278673382314261769735636427084212028318843673819283471319508717312219101203167211411093958999228846748017416567609937878196877076344759701878701153635070426806203432221962481896791090562799268720631573443595078978529230696719511043330556678384953840961252779583891054879684848620867971749300845214435942534620011241084266566758689780827762768401346982941929580203305740047491397897105912264221040732557891314047746709521633731095467107147882434746973225362089718434140168951520932937289579617990097453132280763181828994331896956895304723703995389058396574835501508194701003364946075415680939094827544998118100311514311243716206028508211677160529015030383998177874986196350048908052208969068279491550381572239746651144204071213280056065362446019685738573258138094507943474066036054359116810385474554139010052108568269641743645926975730111231427615691640643829304144191258097001501476260450843029947397770443406025584831551837098621043718244490932449990941239696807273557499097475439290255798479709348219032808505910233185056595885693410369752178796616771042304942352351086300728128713214793278040206646142623007856140840325983489255712085118985382238513620972879195187746506418610105011000152392140198811550103331906715391496612736381353490620189880118606264888141694352927513020120744485069394971565696370052810443645796540085580441624842571854483720866433386657525228581094828921725783915819147691364603268447620225583378843070662682013656256706042916609673993739633372559817540236901883535300799015939672492877457231001781338885062942677684523610642620854720708060536737626847668768462104365662552545771558209684895512560427094838699004537060236388671367910424911491996301475646726002794069393629208526804159391655694283101370172150024613412555388032120174802466199405716025981142053849733099095858647713112190057785168213546567692543695868395539592269791198151056786242787386355969635159652578010088777516139485947653028933659176240229706578369853607110049534756757228407933874696396982052754885413863809128046556795786738024779624558074935723887491817201030089198899323795339275624929514306391754175652362056553753374784035475143499180169624212773057517531727140899284179971054379976646930483998576569703889161802688948286649839647382240305236838578791765498736162847160152275110555356422709303412906341214050374706538761104405763127767768795582839693606879749299247305575701450712864877603721671366639964795168121815089563593221450808534862645244138042319376365335527483533321558341288886647780139622494602435843022305917574155275447784716651515806015968314346993860224116703396103314344414215237812127052900415296832835814274572054807634173997685403211427870270994658214566961420493586005178320307495998499945367759639015443329837295987702158798404530424172368853956543113249128001668861432133590181459881534511564969308722687998154401637903625847449402767622314058383024632327835558970491228763755160993522863875948264709234548966040439552829693496327329619453926341254044358306491272796994144257715378660212159628384800807764860068442119512842811118606563381627587966850467909393030243819414713450444610996238141708045889385979634382447612009431475013914511029035345846423398665337750340328875117844562170190700826875371234894254845267952905967289911416216871720725278954130366253131216168718400290849140108824741929033100395853328090305689816195958414640350088183835447766161764083433565762829160365278550533429201734442399991298215606563923309683123260611349847459047534817572479352289989350094349507539637348289115471101729844079071163848822988417921854283174985756016443562226461225946402830864776638735945988424504709908678771675009139300382117519811184256499449961925019393804725337399459333773125252463064043429925100636277264404252212933536398388871255865028214839351953782912192325132955047942707747981757306909813981758364267491567563803402416350300899745884664455951052637730388753348734402177258548165703260033562049041773557909734759843947599584542976546367412107535150701385121261710170943881638681800325344560780113893154572325876316875914141839336568222962466009146205514597833791156464792666354362782330254858219782070997473109160351106470097487400073152228766473962912778621844683555002020430719142007284627901831863978702570277226878239103697244548641105888916691110592202944493294362703541330988052688008793461709563048460288276601190708940730028200664359866943099128838669523792986662817889842726970488860447376760942026153771779179096775127871974710440809155990679190772341720808085990428600454545675142277138473782341100531182443063238871528440862687566050697234784773621962023765844110337215904381189469829313069286115985645313989313994899983340440092422837912517555217462189128760513946898847267718746650478527066436257483191690849153712588054145403632674786953964910372400574613022029319950310198775060288023797500255215749964464245334988591590936954395808452804500493663983056378225410562624168321730113237466365081832155139049801939199625148203485233603520297989224377311115009165857010326003536444475177424698915893573470565875149762563268039695816969490397599461063976343230542272130876246685734670460622349378419919838013099392802365227419198605426424971179228205037053758742713666727148553094608077962908093583854654683498403635552168457034303500634102350285348776635304712506884408723266759056557933478459113321260789019286980993596367757831289572697042883799355130392695124058919984490604631927762990564603947687565277618898780750820211548536425379197075472907112634428136059928119173570992152555519802760560371809051890207185773505552327139139625015942725393023718644501766178359500536742452835334629660040084680727285331808352724863433160206496873873921616095592777074720918638361912857557193948445722793390984130659405999651263847999733328982724471352363001173194587972985469557496641486067831936412121572645340765807066896025318540147824874797280631201916673807223776392087232475421013217402193170524688311956613036567070305219123786177939256907627223847705052392706222283749423814306103440377982382108877414396313901510708203127545660795464337135345992806287196946972555924876234056085997602542338053560291986990956076137368277070442866704641224740569967492098598383612829365067744980245221678095700993792811010739323086789354647755651487750747946650087569269504913255612642806005988394995155162576408277981605727557443961201814749780045132178212978637437510997476733763131344406693221698979064814152245960579603637492938539058045809826035568195289395221669574156422043036643722991469676043864419421301367590016932422693491304924670270778248184552311346110345348927331506000123028538334230363824715502555136874563216693665604441464245556981823192741194508279688704694176702966019507450249851652980618680546381347525143843327899199609271085812200893576622256979935986992214992546471768210127651995959782470050142217475458619429603923945909288284181468774841913614189873828126483553432410169649346552629534556346170833510950168069402286750567763445714741321777516730620778218770649224444752082800098342557045778491919168841767717868863033212689549197645739407537009883714004870254292603296387792875437706956043733999010029485263815003262899728551130103698581932674488505222842191805455408227747527607465389890506437479816983471777490761037600628289061945763967812992880200275967294498615477065204732195418902967085837806056950268859915202286168317793181381113370084664828231642940194035016674892993924087057564794251319995861278330973526538433593841675247530968424697781918624343771115599252828273132951369787821407425451631268645232757808217439154214688943590977318156580220579640441942122537014799189278853790337774328734095511741378352019197915279650013938688485569374748216129271672957278563847386324693858405292467490402241343895188323801079314601834291621633196573700159794273900450006384165131451765590859700264700322130221985224974139157795298792909634972898511760181137446922094253103131383449613559931817883544164714503878554716659769824672479744031166060619891225041569090447646624571283638206166742756470277596897462784181051476701358042590385753062036572937840164916694827135928569273543067691788670004922027323162640407025502795620934962162273386194868110608449358956017870858831338441728876389093153740724000728025325627642840264865650196869797443042592258495804741792279253400552524744950234083926561723909309423006093663032348020210867886808965918168479273683301432714695684457049365421273852364197627489417603760297520161535938944876220235739135468342725946282950905765143194209595516072612741353598331918412357841964213428872566873897084383114104658560037688220324630865651541079929646904657770652379505345960246149402061560544843064378729945258226263609197006342345695812108101880429485136828673985213253451985198680652792016175389656184118252242529689346349832387862657383224882146718221239216145216332527567001704289399052465482587785124125185612578868945553166549754643047535031903559023214381285817927533984012460823890717054605835960586771990218346528305718682775107625066537094529888302119627302931858892708475701485689985296650573384710386205996389432094133595779644769922141537865511246485379439254073621927524684823828499731257186457655515086958241513497981570174378273366379934306509060649809298386303335394250218225663812732097435466224458876434994073553886358770672063368111132294229836540526882156127024596288572354826421831454614331912545833118125597914736484012914686221986737581897719518823278520809332782805285034388138019528455465051393246902691156026768435854439350762856672612665083945358983093208037001078932436582915508013223812988714648091356440292471252441002452525445080232461578220635868716711055693285438016246834619674923755227751310510012677605764387991571994859706517602138914640631735022338464345839483543502798190272879730320285084688401987594987037814617966864628754667039989630424833422549049244670132939247258323623153119971239894462176588427193382546662161038214006990230277426443857141757458794397897959481580497290597777262187482791915421390156710404249879603838398730807155042530393201138172623366914341884766267550325863449267294163554406164160581260068978504890246540953673844850804419948123152264377783589280107705287235798131917642254407902629775223299431624405682282404897958586204209590301675307700984125504143951737057720575555081755126017901812007351334177237247622081200086044079512395142659896434037642450608295996661560889038571068464029141271737657151348879446426891076941089531011909992999563093090503522277723326291470140178644514635311873837849554388250085692730878394745287492017688644731178310411019916006314988189299906101527781687084216213818395570791840511980675977695998753137757726887891088645916544689831334742354792980519109215146830716323855351038727187544676708295297490534595376525931925165945147933685063816797347866368832707895439596677298327096680062790539599982945777316823832607388018065410251461721628867883587066190936772979664222559336908245867103212145301576140656384883204620465511573100331062717763663272535510511401137294797424234179965953734894214214002365844081133883197617525505890092454531377560588422476286523876062724699030212670470780945124147162949557027040189986666320179842300550700844075332796256999177187654265257033125495139708649447191452729448830509460184152955625147404095257980099014633837977690212939408531024885615673506063386349236844895075282334010075202582830620711371905942678155214109218605705420961030713293725553682257947355874625677765164533109298228760283792259302513185165813377060520921086575617430123342890846992234973515116314217452542671397892480500251722320908212457411077611635359168604652376411852083104556005139095894987309707087231114254702312167332038108548092017873914879344888372685456892148778303900165477417622812605807283554153313690079313963000637697020076253505072612334415101114280709368194022369899913082474246540127019401132229999320483328746713553834945796358368992886232904397225844938171077259058039497162595066369160424288128254838697159665305547425435455973433201650174716942614086413803804665953223880609959689304939813989144177810804401776804126311873070380328407813651523786595055100874035838497378172321001662305272199478799074360574231409928334586615303026591088028489438826271928605926885462526118115065543143918604738638320149520141992401651017397674092260432548429456592585817768997716520267498641989074933642588243030082299140884230370334920003210947642357493708251538835961285540285715119996841213095132976010606223844678533043036052833245947715175211091321846929689013599203990675174666377175408931626352691592231667585283815133095733518294423401948575999288757158961137352500733529944686451772778107293555066200111662786406845834742122015354618427456277813956310035038009018522203997262759054682726991437536006586551263453165342239940332569876199032700182932290453802164698053155309882953376189673095344571303771285992545818022726137465569058225957869209898046116740093917323357544514241815594279041648405012175275111622248413764879395289487689110620834678757632368819950650817234936818500492013953969311504508406318331697956500115163300837827110749772860464151933114977718620058172118357176588916463557018448873306567412167110459918528506122196801107322548295187740766699796023038472007253327600594678695267905143195257354771411115730628379487172387990101107371970337951113879024422857661195134709382405516867298698709458855280989655509050058394797768163621359958964546693677411679523655933019625431714598281637637734830415853528871062820092867345131786705790558624228776977038033586718966440076045210507780109026374014363278004628628932431216984895696926812699655700961162978104880833322640115844498657886919891551164987759500820116547107949547616272535974431406989501434791552148701805244068880531824450548615105575082458334830601530515271410340134615871762049327376822811793638223772636769508996060057645760743490838086724953303401193647364221640318773501742628383091816033713053081947005481456663342292943943791296136117974299795978982220183820433937515139008187956757808498819671169957798148004686111102029985597696284193886876123274515246277330804465733695463654938404008197776097066391323765425391868682035668542766193268439028859199678814724835023195058877475641591064189912406912530941631256195410954353088146423434083316097049504493098116735398312937355393411873200886708671067629280266231313666098383643075615682433710032476128660874213918935675213059506263362049826465500820665018774633318404810965372693993549925084609322236389181879005872492386107832157797902600355622266439172544446062893294594542958310015673005507543724742621184651637120770245996827747589021270774608232810877746564376220508922117628625949233373223067991761502464359913563816206074085843974251331593898633831027241143850753208053897338011591250879562340729139453038627070681780146819477240289396172216441758486302045164887958376109298506760537167764010412278781795500182331972605746176118837794684547320398918381170197786622080801810164834714314032925450314249522008211143307446640136242253192598750915751217391324329653494012095392865347084631588215049551680144287064948483156384372726304816947957920355668445778638297228895353441185206100695450417704454744925970866988636099344700619938864727344992791272223165852836232925364825934210735524995285484423127322046747107806424366995842385286374322732442018283439734000322418590192380305900587222928961055149938830614135006493691047390212915439774945360510806487208013119049022311070723077062428339195289372209114877839087904495963152229896827082205304896560163959455860755352222215957383495960928649204136611204987681652094163269125894048452822290360702772755091042347607151026084703720499533073566165201608031588356387962243120890070941921734504778787740940714687067922594259052275181809492822953318214890404208439333772858902536650842632772581439486019593764875492447115208596616658830859553361607170585204247977505790595212049489913462737333935179735374909554018050208624252947155610087991541470696535457299922407093258038425538974677635148089518769883646358942549428422073120364510050271607803983361317000227633573220580504720999012877768935337598574166458520076392168780485736753929495033840982293979706583142555539282959192296980687772279663972939077790821785173247610873556418967084941823230292691324944913403757697788000085212068994885195011870424308197047767765647705166600738206498848571710483227234571192591806527116704896922909858075153627517095505284290392243650048248807448131857436465669844521805366646754837987356791642201329619035170864147973371577541061516174240444957995803155611157910308731347209903530189499946582192992196477105688228298614101420194639054232858443817124083633226562432512383859477635673012067644108501475398144634285931049496869363826400464162596469514903196111048544775919170658439270676024003114521271764708333200941756887387594777063240998092068463053477433241945220021763000466228202380827780419779493389391889852244085506866690987261509993432755942195136148946032754854002824746381855743038672248481457120412894022001415268847709624612221149992288764391919108994000764500426736360335956446442708189785274177077451339584095760446211432765598925712124640704976060688947521778888467536577313088848317041308470830281177925946670120877184128659419901877875096320028110237551436356123048655461532988282999046174517748581477601231334341731387710905577093670657365502031757900430672293031445024199197742809676221242519928632740258370400752972817435480410639345063732675068434688183887483323541121663418804241233034034909675779416537790841258687982886103235278857332155338151988305880458531534690431308980963694066418137041548593149666711598130899440825457153552300652508228496172872396746508251900453245582357486877200667479497121636028208523543027838653611711245321486487942413213317008523154337277460768066376699618895122880491089111765955157364984738860695247166847523751446415213365489246727612258539361484165143858186917384167543482781317663142911693785564618171660966340291272053653025444763830653355045114641522470865121213129009990019681516959215243039102294969643906355219906513943216303653453974715157350144591560970031479537382507222864326791180222854544505100668683826497290748132584808710208874950514269642937392581367718416906545215610876157378020535279580044684913613691746825371728035367843503618901245777758338646770048718755154181150371412945491142726968772088619529031100065214806047938943042612112504746362225675393476819222219200635168766825821506827988016073570611080555786168670494748640420270006144009779441876147854976458239562498054449551257091064027083239081446009251177787652063803937135711764476329221621412656483739471074513229050737205542332620863523012111923009932821647536436923790632503356825313554330347896291533044923115380919957555329449870528019033511674075276366559814722061218043857300307297879217356850001256233180674259887240109968969813852397306191955928336948611903239492535944158365958161383912185411951519926550704372224511063367126689625672758667738823879079133645093865117220139628594478654429621832667845170020278188419240093649036627235744372874485633108728789584584823525082015627422079239220339204508281946226152918446070619758228521338779696323678640133130410995564537477406457775768490351379167325321826500440150064624163640463117827796605357566760371613744202669161721891429916392304849738254289422199854547868948256705457712083060696640151754701139843828993193363522888572981154828691359603242851163621922207667981900638840484271526086590715537049718593352260571181041504579347353963276399887232560636896084103154413642148782611928541838499574304427686838514591491891874240066190283144798592264459633479953102863027801831150089300076576280887077688855667113610618616899624996387993702911361950062155095910026639429805842317789649650662756529783441514973388255236336446520362201321628032135004936195975070269172783237013837157643230288810132963328739382457387462450968950822383308441761924084760510272468601914474303915108037774819238710529112795905517498822939075512744080364169328292125537800884919287028546754254666973573970536536245400722239895620130676048113391563497277605671449640906404511480948248685117962164044280689719576297535622361816888500272856943365288001318441212141123898385195278511948146790166528406883821869586830661295903977459905614870361228980984113820061585914247128622986004171890645301008203279408858038576089051226987600864246064826948504861862965172218487518355652881466312752376870674667526917244167297354569567331667718492843943138599577385048506109731380578292094499444632394306068759581190038602619049210983987196993364746331140662945111471520556948040279873582430918597382639771340411416016623775269357722361477563479055527521664824146099814862813287663118752410741743298743627538504577774254205757662739315698404385677291438378359018235173687708804803437428632366590745228853952283577868134721953766050084686198962633005033093604099782229148151475257718379528138489156804919218123836041227135829611649724710802612545920595248651142278339115649754666274486718521875618162947119647138066877715360854178694183861466074853653955258090169662377800006558368188471976982444587322984453088699029933788779526571972808991597939419343675227186634378290793682444032062463960186699049723190315024362504081305535338306531610923789527333914369792593690728697404262340424758703379170022149258343524101571864539834784545175892241236136735291362601712155441084930332164423007596971105885469586957117263203798513719294014487119501537158791633212538307938969441274689227398610118372085142869319715028646909873284817207387381520159116379451230101019666620364454129562919035548105191253438713160015241247855045224548041708580097441643608403759638018838607489535266269503532816480968167944880176159399293563064314571114835166747565462775942167253782296133795200482904228816599956705076073487042908590849968490952949104632685176365224631701348799893768877984209294851296278523015988301533612683429917766146392549477051930205003105560549367763391632839538955788699776971431354461013249618901917057012018206670211657766541460513685343451173302843741097526751835575924718515188909168989486576041645332124170280811484675907730132725479460941550972867896718796180122044335029687962196440483278863799604098388253629382303958396983739496101712358218421774397427036469112581075159452663554646751436788687978229022955994771576430671265259718556151103574766104209641784124768301584033979360112118781120082317450371407570040927108374354010891993459498375670612740971769921395411095210125083981365495620451502436684311339897385873611306512474524232154257150917098311414008602648905393707127744124406690768316708542405730036117869052432320544268235686500327030306501507748047387002402672924144800205153067732701911145489873963492924892062897129047830449268538002831487535810599705614838069273730096866109888637890295573247377321839296823726596409999947667955760530718216186939459927781644525369696581224500935645899443219172791686763985578925399696609882487227058690249200178490271214863539553280594682884699335785668968529914380341052833693838980810654163125074949460944740888646908365216571068529029379011400101710418758204392619824337261561113568584173076286520631003127497144699781910388199260901664617975406910297256584746904507192524494658335276417463995178861690567326593163341245854517825808244900718850178514288717667208311599555929267262117825611904459506934896175722832507114752044127677657505086893670980336668678679866809585451635645045670009828213046712442375802553358494967834550276310756161856761102420062290862217868011243459156477566136273107961732523468140907001105009794586345724419026620057736717904612327442085379760972626868770094642272586850071636459572360638163384749434997520654319048826875825350515691074271345868417945695582717709802752816862020313195443597491646865492287630804666214313185341739865035226451902580545172423793197133547989443130184302401189808568284287635611511359254505175900660902931753419723703731662676310455267705728410826619539539676802350046763923223819889539040992691678591566892197646205371386957697999908884131768915113743462702375576135602359532129295133933068804106622580955975301522759071143072612099804061120495954470252902245829810326046036661079078461456247718072122094537822437960892084783698815339985784383584762331111455294499316358956545170743494100864563756823652452255289027971719998672996381621378347132538829807661287146255347835297146301393797884322985295845439519676803864770811999621581708094439895803825070711358270798334780985661030080924836334010664378517170500867285605725665824900630381665925027603594014207243253350329071534064372099104955441721929617285189318787667540913587710997530683942283296170848065834349711181400922782530261593481394755173603558408942664474933095846199862068129248429990069049530956019916735927003422770580777725794298919248350750002625357538268748323634227672480871144139303257644516263630141577372991358552647618310615475055054350039788791534532770215960445663570306770661001920179321401714796971673846973333970705605859892283092531295264942795361836760792879940177086017608475303934791124788612396945329823362750327417646243217820505863121003280810253530905228112133576906734827893771929083668640350282799470624862476886704402085953853472413704692825937227528959641559749916775787268700961437933909121938699113630197318971094560373016111097666244244001817806505557246233985925686553861168261270433407009518008868971398949213194807654561609544651226431496693496974361698396168741124092692508791649510122518675248363561605712348638468927964566676498484647671650465612669908654854037052810502823254158231964824582861497900418034575969586571657893599120269240475446862562656707144162771143207057262320457058642548648538642871832592358827210050178192591032186210252542906106419649321973848229246721450880276773631002510614658987528184567259205007900609926331793502930263391497547899805591598387407228201211160318474460731309264223605720140683187407414368473566930281385968449636781635546690457525318548265991161791886475069922132683880788802178150798752627095916528280767673143687407626055402771583328466679056225244150316045686489418112599997950353070728399541880040621837690405286046378220683553744365548569477836150626359899363478702790903099746277218424110017648215901270567118208766878227576467699428541130542428469796771293655637190811243475249918894104423899887655814909816313382834439867883056142206994865643705634568169510209714342381265370529023114891741626975984689067549381513688231255317855349374611505045803566781944318476851348291726795304651549598075641168998237936862654522544768231938216555988168975654498984722336080402362152126378985700273204797098350733847558808852656004601113636641069535797344908686214328577769297713883866875491736835535914853057824571910998302983139513757052525620958095401789769541394615172026176496607952106330548645811890332327753556080420928807954813104430831425411756469379644937008805178843906465059869952993456228849781367900568424690668982348037672283914141463938344197050525552745661524307031168939958640952184680068901136191300908934268278288375705639519533012518018235004929310697272580570319664319775643414186491957095194411520225796015794217433299871249539848164321588401682318015676822058890334434057690623837262060541947083026988680883194001517792506775717517459372238471772205082093070415931173622020003881306078884009111773966418883673332044652964644593441976859642812624451256257788632315383190956542867923083451240276168883596525102882925470174588508778546743233541314358139890052342270388006077143178342526680299665251595805267396825662975785411273245999963482719371057021772767908830058490736336401316479936837878094275476160827790635398026354770894899217773445189729100846164905691264458400492070830852606455660554188794101768916027728337257152926339124809056000282337920177526406893511804497791997323780203805484515346421441121574092611717531775253425231265652789565479949524999661341866856113717265753576161246756393636346585290219883593583139219249139341864245413593442816603840579430340585830595161258412086641797040450055709015103142797901457995856719745613645353724475732597176241622166560981547765107924332845973035022141801910437784872406174681283719961462839166425348030966724024117848379051186988338391790267930764956491327966578197716956457475933313313426260774897136719700587905164110575608680390392686582634870634540551576313986167638107741445122594128550754494215952948573989863056847155351487711933227943103860066287606970726922388392110104220541823141878387002847488883890566750633122209205148078706136108428374406008904461466797371582627202911168422932474824789178968587778059776094181864431634002885026453644551355067121340118869078555749941020501202058436935943833843142118798496695796671231829694191171815804943525795240601837585099793437113088026402154288164434430672028630306124498537156718090967836741275202011134541349983917111725353851702142430673210003144137288710554407895824702376490475232030970596062076120274233173017656903200367749269422733032275776275170079415069130235233822952293804237429919553110013757008735740489604930149100131051482856386998429294173647557855294153337949392024402317194271602902312715943693646130477801570469751026061543356023532272713255237816494055253651889464983903451788574439635435801343497602714738438551198478108928668229457725753597842954543499095269077618698050126097324257566739651664186094335038414961838737035093807038010169536630461609240729436221133735537225631799245208681827167064196100450690001783517268153921786584748124069882994394469284753921204769670400891751698004473501340113780055210563049882543493206799641734183811320822606619087198336021714825656239371072770800442603025786437546914140646737998813330627498043404884443393728585142092907140693132785150534696812734523204636356663009170263359763238861424438018824049100851015825229325655672793009966171516757110370227909005772432264519348539581533676201804307906634693859522827634852807373926695415340681286594346995691180472437660893831562192438656410313134058911508072193286739168832381494477607199208103547538842345389673265484968440806351067157523712030750328876853691661238860177353540400910880395892751210025497166937079787186642922014014558824562342414467031323035012810324420163216305765377138709905272596849408782981186152588849252721860328952218240262829832327008176345561299714577465837854724296746182466438490297865300776315937919644254783948828268065501763316234010146327094725972018823335388133530254565390463483105173008497042615373676406203301379064787387371214645255533658355828253129869085396002636689072550568271410004173522898482171759994026807464914188870306381471153296467895593180865122302663699720471131747863490527766941427342272327958087000259828052580137853878320031180872150984623227074316277615294128040427317387669976955481915380842773570932813737605617669370728806121195580689008159939826487645120033217856486984320906376025629999288897307612477412283832696161107516489152282506445462683064172271803383431737658197124639514478783200093513333186552223389556602516470810190022446747793987501087746162698894095028131074856975128637090065771914143770296754856231438325159503852517313664426550285981057641837070482406073207871177055295453096981835197292941154182519583530833634749559978987631994251041743808773856423077173325405197636112390635219894917439052550024775592393944610777614131867655092406892223028644317156237562055325359475888341884110318326056616085707801241213297274916600004899274741402158343701248157419129887709471169331110411304646457319878710695701135487660168472395555808872908971746912203692511897246805917112574573943911456518061060805637865308957847735391188780952243969780018458236443954482446565562789229023722984608325547054940682218788034731789918341605402685996748721800813207788553382430527889525289709770802608507881752684419747475030089442427002773032472938196957991276667626902535976229524623326878831389484003936817044687218510139571324767540822323043782281750498121221849238110607200441017372402920022571947628031499451547833447030334645316373131527491626927728719658075797656249029624121342739474949499605804582887192221824373601628086164468294217844866433081941654909805035061939353734418444988481855950496502632226450862252087098394179516137292615631666411637908625996619584832695382064061026825170404948988385791924216865098291704758395293260119443105729997009488200064628250641429808857846119843850931743499331587540568461844308724816903828496944549149121128389917442698035544256672059237594015085287584120562381867054311890166818097178919022122935188742790921955155180888689031344770845777714549283578452961724874657333204316660641302224078094099240861486196616461791573178124113520858151699182455410544125676216433441070173512032368369224702394752231986468094665767008441477627112781820370673947730272527129920311438451352019946347089810581466817328707877561024420480747530842041044301634872633267883450445024484231091775516736707605284105175214522934932480284264838848469002099445286264641842034722165709568643477981110366220426052840320341215341862403961367926539763057239176780823941973879373969931185790454468787315002799164768258851740784400056127034280313124159400625600806031689679607752678055851584447737573204098686615089568326179598719347191082425622188268900233410539718917603630564713421885935991661004043119568998668547095296307607868634751808876682139900467692737094847486632625785263229965264902904755726556426281710673612277932681885116213824241463851419800618482560202162079647746012249996696722868524506028513800617648263418596708376361601771787875847872113524257127483452764923176264625743670922662113077335552056833860543070541587402449290035756111655557169985793131000681933285380018287774723250914115819850576954509512870720057652266342717714995753519942375852010832755725591013419830661178092084032701596302419735914966068109019295387886496291209154791318409276234623131144410252780158536443513026311959243846145507833436871321090511487271230958757797122207183607136023614162793363027620066151301431755842436447252712844828608334767494112067999001847319319046961301417860432255267100830950296615161233914007232481274069433748481319458570184419485195460907139625406959265565362319238294985722128612645094639194954110726922190617568177212932823950981632942369731247240843462067641516583724295223693017432684138741020941322315904311230900855917808980986398114724234312597727307258749654507988460850364940355636064213602463672502975825882142397090696389475158521960100567087576174342220068818401867828964079713421198798942420054262322639109160808328221720623832181566009563766131150703525394313704384764067125707365986370470574729955770563329249287066767157842639748416481898746442062732629180918634569514082111262111830778423188055048390230182385596198689725866375383685485188089002756723914879675747587144770449639059666476388405551398320851105180869467334421469643889365198742929450079635793367763065835479134409437498487491781105259529349460886960396179237563635270568286632335693875478284960491495594355811233762962794911089627284563066959031292373894987390646454823452653011245970936916636819842940197570396110501809396370767769574613416736594918684071597994097749212951447536435570510404907182268047753468921921922396655988926401383385425649428775082404565581803397987528075009321325165955626489684326472095084572694267619620324652425361138081285541080986138899323175276100059368274818919305726879270527066816509473844112413522522462164058966977377662669472230604792593765890405451089087271966929602615646056922347083077659724942225173449004958810325871173498512933407482889628228684514065870595822088546356622237969268457727080062428624708391000127132274669329107759578411605552325394275509600607608370533448080696135747986610034569429050487428865415852057182474934302926645020129015228508576137455210972739110882540490195467902253732559437010933022233435336792479155486508905610315092010532977003311490993319144158254039376710385615125897084131515152832179811625094407838446359926982485147799826238367154228185069666716266201761609705670948611250935942092576725027370408358338931609750567830354428400003970020286423333532380030836727576947167063207271563288145135402665452805370561633756575655615604568397358211272334930266571373761578088814841695460695189245089776145827730564471156036723401373751239113342221350995201035617764307709080447304826899917797646876003448036444148641346346899950784555102030298886333848328181072699200088982857193684138915398111676352370135996047767943273521946249418339830341772752871973216535239747836661598830001870135480072549967794815641222507319820777374949369340515926151214725240913312432853522660950991788624206214707618144436516820590669370269728484430350602521914049775512614504465725697123159579764295821796831320720497667628657047131171465971689941414194155855279213291655341080358645394236043976346169533528984633901443709771031718852633529786009866930866984352639341843697031885743906286547106851908002382479226597066957969129228277977600811198961917051876577047154804076234201469014747012300723672006374794146524884880021869725445463705686004723267422019698082214227784721393055099639306665883512057342095362327068335190537432350964241692802434924637529131968240070383892099468207970820508553026506084172906467894329248904226662371493914871852045333605092819272200266783545090067219293448357187400486452584361950094552025533853015019360827545508148367762943173466687018398966327368706671738897838170585143556166265753058934928379956883715661905117469340198535875250672746157717542792976654112430661688579214663048265376236291786363447873206048116856445133196337759745210891420642621077337168716290579109047378376399934031761013295865660178686150841320259943918468802660091941207015673670527521044602542464766222553796856221129982222136619496927805123461358938800937870064458889553009309678080220567122291173244962194666336085015095949168091194431883188755727288072604920484225726950234777273625668174264307924072732430554923883140548639459295216734612059347331081226707443585443063905135486124584692352772955595950816339124034488084615574831651102805659691260473822009624298786189595228730193832928596279934984472850958341618215438661086913654406425908911589698129897442714708606373440889508112079256324343912160486709803726929822324855824995708943110863765484037375213836977540372535093086840240831865921894754342546568199331920286973641687638078055942726490940543186086883587062399303809324893776063958808816927882172328401008007787446855284930095356168133698782188131987960915707800606587512041368105515013899140721605454073209842445711240786902752955637176499692273209734533903274938422469717756042912196379400439291393993696383431238105727123160165462381860803416937792323608064841668516700884580070799053990191389869288678868501254679168252957297950907781400775837291959525923077898529009537496931446488560420183072483668164534888900616418487213140176197920673842538852829602398428554013089339238141175701208083015541888719101171220354396041258813688804892939409662947667940562265648193922536371686301060079822869890537184707195524863614424529839860549722667381399271232326979135267819475081542475158259570718215174779333083805385422525935868790011201769715069484687232397756960219053027729134417989533284571722569595139398450080818550502846173120934633238976743966867841162982536644122223505420632363899786130116046064276425247211995387977652547098991387573337095875444606881810333079159233516940026805099690092016813695028758939377149493311215724159021236225154972698785804236244127487899865593145938269756931430554981795065314418668327328819513027519956721753823705715225229178899738983906301739917299478596473288245148057315766239727468127206928354685997204915820065493214263737853653777657763105425649156377280018981099444126794727692115095607280236282848806019820301770557360355034313476907412760284240702785624501867604936809217966663050628579192569032160921550382981573843650495683338819914203756320762894376846024766103943520229448101014041168409635222224465266984042964025300170064070372331719352207617831350035742568452310201544861847411294624049632889836405515453802300065762431476684153339805267798198723759552846345594350875975308122540783115285645913826698540619890759859202685372792300841475303461621845748488155548751802807500870114860205663005110795262621816509997046246093820030562461035531104034228743366878696989658957146052636013394740295502774288600482358997616032607498570471221845586671322714100697884695817126271499385898285859214625368691960786535613356845007576646743331086324711580071025086357042200427551027969222298288679505160390327842273887381118303297732968241604268323692533434394805615130277475655642243538631283413939265597296620263849694533758729394690259628738874014880709463380659799698316511192908802511925602858173049910841216417996843252364020412026660339061356441401313893221202873062944532613198313335654125205821195292932149405364882300337137813069933752626752573427205471825985193439712284754974232282540407662617308559179774871262988700226674104747061146869802870273514819887933069078040518521698287223191317558377555383293064193433276705871185727668714564964750046792370667719907069138700087116303944297482298951815094107419158382849830008905156337499709234458126841189055720390138093744926726325991473345522166651405838474159317937747013883109292072972574807268927486362545010226180365457994969418363051852033485830613886089153747576814506890483050474323104175672544456786775405653532462442638450112540158811337628792279144576999324549020710057193890243323158180677444472667231766456076823483862792139092387243041511088833740482602075644767577685231345785784346498458293362407464801415979464521435092855444146566236726007057107442947148089930546252461505395466729457454775223098859383492273211814012181993728972747836391302422295422832265812729939788697581742933644005462333979847923661918522402262545620101262962274256238175300517763286375539542768604195767584878682935658016484751646810850672530738693501865443186067821174807067102386061328973257124478239794432392685146855870717593267869335876854716034489616776117163412996673364505897921107546018301236333606911449641883879341218421949353787499665237975153917630591596461034715212146564274723918539650213163259112308165283502948681956571358874767723962901916931991677686458730587552887475970901591888584134023149445351637158204611939295386500630901968781148725200246325005859550973265669759408809248852766267444246672639849454940963335885449443855070827786604326376695588990942339213345324374586923695535840844157854104867882308876591499258587761349378939338172395661267326458605886099833130238817706692933483404804894481441182843465637528081665602947298876984895191128972799505976303277305177693767829975992595734475281486283944418936299209900241358060024233268552032534364649358977527069034359880903887764835281141728985220615766577189745996931269049942745958577489007150177102800505102185087463337480281826723866376110593672121511789100664460382809245724443141738580831441736587686372497575017241805055648156458882694424136256973792922559459020506132103923172279468628689561996741923400739013168793818041821283172850993591980470599890853152550606111290296074552765416055543234626101670881285152031851635233054684501630978768688625160955392182019384304322085788084740784823651151685245792053763628583004724889499062322027715010389354247920672721803903231808545493523002157032240483035751683461419504518377046131294502206404923254337208233095668957898208001861335005068753785517389822960864579261346012293364278941293472373772411834710567199474988132556630241748551125446135307313825080177595900205755256882935354103329405824763345954891191480026305941122856290209919829708922675202451182220011255715792407336505746127588382381239480241104044907188979390179213491779857502875171121244970710366288905267450506250939260199653995467076685614565930046721731049675699045562486633893772473508896872455308678381939797414983908087007124844406148488248961310269733073859124987903741870626001051421583904088761237036537135202929487876505488851828534282484100383985536623133764576709237044770544344802824908862322096586644985919433631192058316205453101445784822337399509556817273414508503565028059306482927185297472128532388175324000776256548899011148468346232180460707175823781636211573793933365635143612655788243001838705978682745348622410331270982486944422546320518242977330631937828805247362772790102365751583877704457363802324310105913302522397460325442284253047639249936874122594125253442745719143579042619855980323554107555171796022257310079403792963224177855361778050880494963158738321286755542970688659515555216828508491818467151197608790723569786036462041091972064930041231501888377704583113976291870092380526818209787516650895211993782704945513992044479894337884842312224876272598929978954825746643485755792646037586224230854016062202312395837939679061860820207384862333850063860371679539464128279817191131196147821670008308089507854458132669548181663862569509252316482191782213462414175913354379790283414237783538889205956684619798105231928257665293832880911966876104818588964544244022054274896911206933353455235173072013952795452161236905634557270256085826606485383918088179160707606613864195339075346310423163143461455149546839215254571765230176279071346702989641193481046862487310912905882869305615485501098657169943179483204002046150289224283253987204035091938364542056806579819349237779739923616433923284412229124161310236812384123094008595559439212389026101480024118436732572185669286852117117438957735567136944036553418826630321967371220477846139672424239343820655757101465210839041105802549905743092709365971812132537294532761292557160338115993272951200795600781120533146361127222089311501471925179535242820970463835362813237330503957992142571430996020339068800578351873981889314118130306073718915536987311697604985511407637751095130499113983932418267750678612930933434194460047109297871418984838011031102741884378329204828390622011459245419765221268914531787212145133126779878455604456159595249754529857535222154681714898414511138425081410550130854896234243628497910419440009535419847829409880436504183375719505308169336254654866850676594860210844032088836979178574562358881459948339271283258175664781489307630183188450317518770254338151217217473808647418369178051185427139283059255152036961544265579274334095174087902928468948476751281828993693696380052096625809630952244784114162334706388675154201504131753538500081328771628081047001883468965555544325765680376567350202672652996826688446781066574956350999859617889432443075158310549771763453238063905820477318116208907400124014920080192386954492021367930242580246465176983105671485019785695873997555678750296617328670794908275661321638302579365272711723576493719772988183876501600469601980762607172973387195864987099099687247174947611141014782590188011824536102152204220498197618163530033988599978726056037579759868030733147522475640075715187922016448589055409022006921571006776359249857239955276320144412168491543577800552659548499985124797809019990908814255453142011174116939154833148205738280414543627180464686626291373582349664828752208969958362900365962129406854850887900797060971536150493030709714479356640149031120553080824095024438419875824164708605864899073940687544131101744503519464872331767462602490066115788861097162688503239042564216657930197142330777144535538786284325143360212501899094526144540052685213771778766749432239192593559065144012279953236573878596336671886798210051122484817540292475013669500504759670844180126373458801066225304001850669818109719049088130229187287636601125981634073025813256626207879429393773088340581698229404803439324680675520008530432140538370368119674497364266432990337815352550225246825427764482726049064908269772138869837559244207237728578067019484075482502459031366717778767945828097120074709141033453979230407021247047895972416306316793904262463653315382468027846299984929558297067770367361780912744865109613194783755421473472609778522142206977441733393023758891545174462184146588817406332192510663998626369368800156129053977489178692275227186600000648688606943843341695689761910479315504073790699480541423931403427721205641761019184651983162275524847093788750088883031786357307282918767303563271353874927186278478368802704578485708707347281843655076523511706256755940456147510817462888651388948901961691873586644017891139650331248286282127732341495662570381436670394964964220174269652541250313866715492577924258247183930406221193155293952472956596108834910773118465066108537822372276507233007298643368167640663482712659661133551940546215024279598826033934377785136896658920777477038091230619879767544853888493488615179022989513355151317816944793898448055101604475387293460208105642399995653132943818118179491682066434229861417488886246889109104015783835789046470338506242254509152617858172096015495904190198081724986333236532399620352998335812881844400312316684412820921571036500317793276716554859267887642911944388521823389650944951082992926077565435181399883335003165944187490157382515153491173025292109119075949224257483071597071033946394772901771111795483875324543082191957109711631365585111336167799267450022545674617270261926582280969301676526353679785621815044068552425020632774312078924592807308316095449322819905787604227141254698992203722558094193132907397952984690749668849730282861276834244509402541973342783863713321629827188680287704885903981654266513122174665068839034388054066287613241514736498011322568352453964459177880877465457020953889057559869620433725788582887664304014860288134785667775223167700852815670313517086993687228395979776142704304433875367404610340962659814007959537338037660820668071019298809834646112535217262647461480906245084356091832662332861476571788736707043264496423755831118108613532063045273135501338932584698039650758945995278709868677366166565272940966270953618992380834352325064535406536366700812380843142129160848939260647575042436077337007697801048622686697327206131308771242883807951368232596049354626987547850697608709062139444670987050435399717068285577732455618338596725841529584388095410036379769074832639223226967631086303998106796892341608259466054119657825083379100517643071960066914226778080310863589495491266601968216898487279809973651882678777310532850591912303608390383406391113657529384738732739647586951190390961292144657800965627823085485257649831923721384198581880491491408122029836664762563895359153095424421023811400942201054358733602176560751537841989836183058408095095792328872313144825688115900293087041948841952225155771425360196960007116347447439350056845634437690033574176028255491088852153239250608784485978816727896690263172001067206472074045942489005080762823397203513834604101168558951501894545922832586999099358318483888333349590571254321971399928556698368262705426927598788149893889555327752195716198846758409266923712272429452524398252383641763866889502393648767029318151507672585976784849233745844943089231935310651250470844594598229323390449455206919519475305035974627883356984613202221299389749069342840233552962635602769933229272508943020206397278510558905844300789720504880441292348947467288678389150262288852912874295275043556502096294224736793464035255126954479331493143201237484386524665786633810460290770251674067522547035447178168614852922458798618961723244658952819715140614101219273275694847104783728576946092451816916879953558040498412411049197574392925110095931428097659219158870146386551402977596012953584700768611682922644374888309035896186112660684982818072956009457321865073950634395701253548259150353689577146691650957644504336265125119916820408853488218399214903746883206389219583967718072126073278856195131355765752434134536657084865934159844354645376945359090314079655081066049468224721451838346650131789067411039280361890014419260045177269902946519122625302754503806032488518836047936463224990548258049577601974085448238309028870415973120470316393483654892654723025152908040772707730361851825196120166242493551339087586691042329502521962227426242566715929828930404311900679570412010084094782659788365032760310302848431325642110534772075835031460386175329382737617103295213812756699397374441853371632506355839050047644050431846555050730408990389269936288620469402695844315063108897864338252987917006595528198783375541777917628876197775025249067296380621847945014014371102715759436540408833825817964419430833308599847759889176852252902745784216896900368437138924036903256321745803965288188275818677750903504077856772821528037441782855392463930301793557599469619528141809981603585622724554127597453696375361955709805352345132665746446826235548397593427568458345430580915983825089473892876921029768874299871189541517320435806519158561327173516811149098354192211828347036572886744881559980262163347287343430001461760387865900136880255812776602634600144920817095907337266610360736242308598843852524693473596609937969756917834925603693389615646024653120908008670272784774156103600087897533676639449245622950923406638335836132514639323912202114104758373638153882739120159065947488481804948983636563622348542146894400775250800230777863764248086281910281820347118317437303493344261779754369537719481282156429854650561096435593803114776643035513388882948516981378638751307499107404631767287595323655332912659476404873562844117507971390474005513323938961955512856978598020477697600525206068054835205471581242947362801219088311512081693681709227961780504089455783599130934763228080151499698891356968813611105140234198784170595077656404824631188859014808337761115523768193830635714319409642574226714354981847395407794813508778895488544130013317461251000430733254010753142425362432677798010605783400730462256735948868856191266923560123298435577265000064743197514702226705282803889500570021520539080570268516881790966535977581263688859147694197974829700113258576587857266967996800320896771899522050292034907180214016910200562865477296008692638027291114694014711955067728439687724873271581274804285978103024505132899744107575415357075206103691029094313706923000275848953212511978468846423010680449037328919226058377388613091210711770587752870318746530455255581540388785652417324957369774887607670119504928941832459182180707700622495028789984059966097284353140332007498193707480320834245563618631659974150015818925437235841475658435711934943348597563546491917525117456083081918043863357646830719241410750040948868501060599618501420458616536896955114758739606606076195171626252502367814350592999274323654217871595338031759236278898782949132690189601796158873699583536315303050304832586192093522214594208207413039779873837909064062124779703439511416304880082178681941363928392496378920442456710399995289756704861790288062734238454739784472819355128116073381263279174219928320972189396961112814976972284264370275407503476407901345333133132456496302881157135538112815499523882630906800982570403252224821418954573119471050493392745559351320420656215368929493664686409056310958536598612765502965285049085025477459821566929512737113321745590753157180290994325883405386994816409967232531224608321089931752489923443811948206643167694320572801425335205262187828721489083506561087419272164437457408832701675994309456501459953883255648240406611283333229346944738229814758202131797535505554577624296325512225636139644685499789403443974936816101659194123565017327701212257496652664631173071157348366699751314182591158461432810857875813421737613298382076751955597554195717239664222676454746520021198627822878202403645259902635461770596464704118323000965795490248713711791563189956210816754283526888091179891832700151008943093350226550988041726814890881229128708295210976641544476183309811369127897747712298020213321274658985263467192662455538831927714499914083410105952487256903065476732185557814100283844205889041468210966905433755520653291342320411149444100772459855641528901216225842635255114707859555321360988093289506964483761877632525942710870131467907675027632598732576679119043428262705147524536494231169042157035922697585321023117194458974786817232156114440928449874481225597231616794441503445868448206178121426891723482568747787662783616836774324940877324494898869106311260038047886581813424621072084554473642151847287687459371382984280350920827521176899384594910962462437545367749182746541846734745927049744842547339625754198994080811398880961788701145201432449909586952926214021933973003160651735918939332358754137954654082138809127473065435451735664490932758490061726388976458421845913459045197700840345225999096188791933984028895432356279060824936894154632361167752940382683462355519428633099565126369680011564888048929462661936465231843409883458602730585413338744627054535383502039757154252212852521282183013029933266179041222692387061468284264574806844585557582486688721350254173093712604179691242764813199746114026534138005020247181395569397702665136484009479262014589759138181669048177231659380550527069076839774618455309912602312300839997984107604782938514159887872479842239091437645430731876545189095326502310947742636863639679565102799543304550196299510289841429099115580018885576177703373467445467848761475525096699445065903373930150031316083832059972984457035801649539935756873406560221992121815670455920865803054460810365368880519721305776033697791282130976053685806300795151760564762996410624739834969589994916851870974989444093459835935232634681288025988542531965131635958944314542006815724356053980185968094371494286556694414900349111556979734615304236866068945047000453891921643594562912220420454155483397818361155128983312621025076967436929855168320378541867742237633716951455530847260914293919256400680948773987875363904313284521095778702457216803676542536975566933769168937215968264275753744949741800541699442708567746862794334574127819345975089292370144992534455143533966206168461628694631883411638168732635660966844266181685087835830220172682727951594919629889465471415030066994178790856944502732408037778427150341385373556050507742961538376582005594222095940727751019318804644245589129485936453837844050159592091691809920932208512267292474920514401517221610979212210269157230236569349855124309230660305936577985029687173529133449972416296473482567376407878330294277507365219596517539511732842538480999346666970118541311640518949526554950081439314826648814446464020940783235393423612349538986248150164626287251406844154032324103038129212028434275834077158714583810420168862545619529592250289375037943829260402097400297659130668606595275532751069879445414339965551619498692094065915238201172767866616283443831248166625203883657625412669984546456630562695630052414535081644907959147990964778200244813028767072494468710070397159911375934701497108624407665152147198933063018602130504808607034518380062795641871228536242328066541232425929709109770029297212199474442622854330868412733791162698475208548230041569057210122026554698035671548157735251904691404309378893340797835766389240794583105380933986171461332131500267957972581896229057661511991624099919326321505998246815961203508619616218514095538350773709738165512965135202631895293924356239514539031754422363313065739019184123145894299056068429253759897791824573698694733042393692337352111541335847620381814269245862206816051705773722333299611929888870521300396966800044633671809692370885305036087584320402755756772967005007093445629219875590098517416117101049895879708446952195784811694719989150710844962635254670316057917742116938220772209323526005718234236239343941116792458409152606168641300255914305681111177970827773615183230788938566750909280970836933132742700410401902946144372591081348354917074104732302975622169328016927704919328931914111490886972438904204922187582597997067564392655969402138114267128981672957428040764685833698703542339906412061908925873490116640570308240076491226128501018729351002460461822256831532382619806998211838401071948228998960737201090757034014732667850030562583899804980719849773423190191747246598372272074210855769543250590340703340504822422614308762808883420167299418449561628869589213472341857679721081980546181583973331783147978139288506482582508818965761697179187141501706091545003996639897044841309212546912320047584424537510041844647710493477384411257984961966549943416890264371295126805623028208527087804399988117787752643841823140576165246619311886069040513242323953173313951449370956869460930746931416427616166093185970588956635259602377530748304313165254572812065791236728498218575347455538754768260270022662474815467105317825391142737172074582716509627640099158475043363431826546354402640405973284371165072254032651366553949818905099347937981985806978218655021813270393153600498153697632986505536587743634152179587756124518580348309948337088602548909152582823779836683487395570987066276329805725192187914536028557177376713782996157796051868521774624727977445894561254974374283190481535080953603345176201862224601260462488022681448903020869954053406814154385184939659903845911174586904095735814668336030323456446280634305244412220994971113470241456023969311815207755289287487893639618928372948700793311171332579697602283983177455775458612993110518107239694876579428203755884462077707173234133890415195554046475576327027653380107926590450199139991114863195571322212459932729859118497350132241737752767249833216157371180056909299700801812447186896657877268005455511536819797198826848078945227542433487036723188421035203504853087241154459384754965862009222207569799320338036937197011862068678541949525556332466091158655042170617676506664877202306733521287122957286462859329268677061307692555141372493400192765224853943270059561964109070391620844032832798986619398759246467689391149503182808347939986046658372506950213256921756490238876561524018521701221162127468589481789850286474477872880522352356822852035937224412799366379674282448396437806808494923017209468877774251866079593245371729080261399410969767654663409431271434368806589206992388966339923778147478935028094373660275900364624161300918734985959634280478473695673504965124278435885422229450338001132620039715846114551960415420912023544705338201478038741000722524862318388819378019216582103744167097585735374113408393955228578747068218429437450448918247514388781233455586345077626270217716576308624209174705004017086640127559230703925990257096154954742574332757651801896883382854955713228848591640290722819747439084329162549923360313093772591162447164874142268157619944324616057295606007775572712147755502821957088598761030861652699743456773684934533075310785509520368342153820268676367990480875512997682554833269000521950313002848256936888101150090070833401009054160543970501044880124123142517279266978094246624616089531136154168053097688007906225531274958649556987999188853625530061132458335482857506369488225573730403719252797800932401965754539426019497499777946963916736741873698798782505943711750613684512558358007146559799183227867154283537193419549062224893595622487235001596551595820360278287417452051357454840974327538257555219568073477789127242952528547537741631054371227392203054066316539460792954280119497228598688626209597057713657674576946422985856740408549931614689233548567863314418192212213688629970654031711152797921389343628299637884132778293950989205495568478674730118373845505613147815705416301181460518125831815266099326685656447494864272361110063990201531934128825983210736949495291608627029779390422363625159140824703432470368192463982751895269102279503149337308998377992792454394116047159119733154123209971781337228886015363032800532128349392282194279859554554166792585108532064032098488506278156616214881284667672704162016898436880694859910074525753019823764538420560472267979845632601505549341618925533263566771752943034111901878705682235547120159829502893609563368361185608376927023150693340265942304195620459672440770113647316949691061304972832176408469533539206481500583501825585103085490348803833748183194421881309584774220376952264714441724599395934119070544163630797214176855938286411209471656201941013076569395469755996400829760053541886617882311102017271557302255059529033501374025869285427719746698446360302981411834518321932934662119104972061197368362956703341942779167623834154639216655897206710021103908596866839052817371965278139213450154756878629131833284334547580722012475467487682898189234688032497121578622185846523818179160338762205445026105352773016917736647808824173908844525891385240418917053930136056205025322890909131465997522304654649626487270505042798563552499956894354846562905335283890524074768282346944251242205243214604969115159950274511921156829136198777574429975081994571497877404754366466712183671863998593864775848049737957431031355610692264889332379418862103430300996712957562506033035903221766749415535633723911688903236692739237960555947822231835025757695690484995783553419927080045371029096730804871931921873490509578327909293340979011230509535517787879742573025912661514733097195021283664439457963959427214348479182656385965253201950438972415926946839252424218603807287126616642373835217683934465689422500055758131518403085059725619469623569650725848509348137829283722170682289794264165425784454200928474864542851382837277838133513581940827953579228398897399113773593148731564341268557738938282797440373940385808905475853764692026568181661000376224592307825369028319760597426613455826289520007471751986613934845228586067098922913986007376721642745021841899068751282105164071420660638958780283243197758108844372613835546296124606128103381311012814748306492500156551239064926376056315572415059444644757897193493099102668095708148423810488418579255005136768429135114112517579390222625874008845364163387127757530258196237227159074255547573401193630835292546627694571481133866548463902123036916905804954067841731055946591859830350306583139906831697648387610119951936625361388897622661650846673375947846630420393844658903846488347282284523795317069941161364108194469699672444074692839236413056793392301529191083607535780895440722657842315084058834195478235687997366218421868049687643075313951636703662637544391351854293973863930350473224166952865438439549227104700120921738010383576095311569449746487595685772393959461254950830179421864512497606909585532848141303982833219574415699412308393266379517589770912549177973118459399261534522139961410983491061840577367414824444133572465291503100508044625750253745275459855153929486042330214582807131173753191394089351712155180430170462205544797376696674789317309627148178043205241537398501695409051168830681253148680904395232324376023162252504388366898685706616530661819045685274746655871617726585165073415506594517561366784259071595185264923266119894199276978330288377794111175014474104229080890236608339194065211139323726761359788538923428288900897730547336312680332517109129839261484970005426861602994296096384886444060049102945503966529170234236346606504222296021098785880069442156985770536698448410868673105069630296090619342316066387489900188289495125615591102404462820531593770968426564803460337817314814053845044990759203550906445909909091445259725671495302827264521527396612218260413461475010286492244572657657545290324054714370601234431217752065777645527190011539533425054180753912191505983798526157337051622954411970307888743173998914579482534998715896943787734373767516156639546476243520818653159751036668970777583283865057523580501714023236204182085387774679830295084423383311037458065364190794474970628477065476794829621886692590682176006731391606658160785832842513862468330626033667954679124922303238892956877289476121515363960309406276531197669010911380487405493778751586082757323635456685806749062716597215990299218670861389689513737068317315680091955482779204650557777506688852118669297652110390778631844336959067235202839999643239638768673203613791646686795031121791267912049422686319695226494152603183846016537045092592578800424405944349467622855508545255660206942268773218946333902767153582022254703312234798566827028252459880123468395377635517468912253678812381891995463784412703324187373763325613042233271184445074974242237826619704610401112265327588955723849850576364804940924804011116277087155527988407903612572788359124144608103336856769783495825697333839956169239890008502935353429996574069637795021408519030064495477747354841168405510287761108641985672662267872287859393358397028788359545126358807626541463405148082978002699115811418605476295128819943083866532048426740555551025332274613422199310361947772049524338821178503225046229221424569555500331377584285710265052016884487127931856374126072774114178698939715422672763228658486169677581873952946709294345253733506500569601346073180257767909915513450348415839846752650573742397471474812540093578195354597345847076500744709732549393103595244087802427666984630842644463867363801628651193925985133419563039265595711671123044979923211736068489759175582631622390226224898462286579357279624910376403823104080481974942859270246321273900690507498877317321885468936424389420964928566442461752642327072727933081557155886648416319531614117369090813201902738952842515499672243034890237632805437291613982272529908369088924973885229959237754501267808873261195461636209004901045657272381218607340291854477995352899592119455188052138295626177408041273303794209036780753112567600804260495074061905648780805023437355891615538992746563307620080099691290761006320537323126937279620073905433437462210258995721397889190970317550197355937869240463611160272063383384090322398941891672249406584603868835991272521420089279274309866163507957283790514385513872952711298366789616191813948640736857942261667117859905140382347291400900979224913024997870400380541456406429066379039225230449217160958905202817816159901170435828913409135889439304950965996051133242944825098365107498514890151282305847215258025185011999672909230195341591046634975148097657585419544419386603010239328940819094792784807830452404529657217508603472258594175772471071244270779869072099558068222519789986479329847328307793432374088524818024125993607628074995522310463219910682998081182041577020240378672352363041586909642813303646625339494940242686862576591833522241354102004887850569974716852406728657519434257062573473667547365031255720837472170777317324261128030775906546923950229067582820612767349847106351976446644271672093846156072556820379137520949039538816862720308421927493301196890650218554242991742579222620450885193664289287722877551300947736463000642410992990004593246677353137444054866848758777157886475428825132571024995835523050990406816463413145731448493938698331347774273521501166697679503234920870266706333426771215264880879536592993735189924206722511948073132659233435772079645297777548674384247689261606817339169281246359135494609645011156588572925382446911719755728510786552984542787165830234121111553000746635255504824523454104857318779100347623305884072578334984425498805845876271348453269204022568383164232223709764547140509123641344063619592205000038714900195783359807810085988860559728484791165320708745934356308021871621114895896268008973308214206067063769193099058122371610501633813599391835931871303044926180189710892820426100316149965985859667959009433747212333443895178821392131689613734560088472118340553704173908865502215538977424805978954172343536586149015842836947490060430889525606111387554385849627269150910862397554805901362380403582626005307357451248710774142634775125097739773093907252823363210026480288229727064109520105288380786769462037156395760476611450058080477176427287800131312774132443027234088512989685603831524657474367982370460127907578060892422712832226440307990061532314102079712380053382053051219117387093019838536790817347001559734751328332160254612250272486712583495315739005620693532954023597171539469246442743880275961486494129247527733741349507148780335377866363118562306153486757767063254901868295800382587884851764556308708777219208318388986225367791551404036491281933272346464104104208811093126098396184018558463702354359467248574915309080485941831260967299406674844194400842598321754803345986174002004313785082861832997568177657103119631581865995049067237979178736721907515640653437764476306217057669856708749227075028087672462042253538944741424134363110166436639699880878573350453467245406692181042688115669543845133919605697691307452133941219295087691112175255550250227078914717380068542365030323737486778702558389059893630502100871664697857118051661731567029479585884426271984103550946215100054672653266686174429351162104756739024197730966147242208704524111707433388517866626228389759505203128872018952354482173947821942443997589998350060780412387921930656793257248728701976858924652325066961147397300880047710443386543722688439568250088571648130946844612709565431395575475805079351426756313819362170242297318784812277683189574070484623353836216595868433085796285376160313676474784725658660926676629257608745273124622235504415865970636998927681704349941168127979282129692269276650708667244800880233097892820355930828885978535341197850211821400468425054674025497714173333668952304916831444376297734827205059961842796013824382640900540500505438995622032576940311410729669385541238618453416513571633768620415488226311960375395351579651156157916875200816745362241270843860822715495044441606876735071527867361649906840791020504384460123082621949618692440030831429304478409256311863207775126430594199594917717064130890686777463854391779381975761644681110663893235836184091595321163597880906332951732610281710148666948643961131017175536540332278904447010019763121234107646363624583097732689325932774191957149924498559646976173046729152699247405557698159349663077375470407104034797497551771084931213539242932997367572202934597575880257640391775690512155280231452102931304996533393730232009205054096856615040586803416379342521973861293658971856933125374145784827827008605989216540395608173187429758719191069327571217995208732082698186359846006727643387648206815611367912284097379440355613871405973903686799304742369235031065342146664191636140197023934232575269429902746933964408159301579187951544290533462614104915531568845012558555000913322061112701018443500695217461730659598641688109381630424976087706154578395449379187191797782140502257904967221220778160238014923812940085463237140405297277693352142122684618597821174435852420591097028941984624689995232422398165559046677132287636196018384874319465372981229633527406286439610417591624718206354197435685713007167543681062853835858736114148832792331046006134451413086470002471956472167985528236769001963621404356498533319768880648886200204617790255802270949683423461083492572475354452133926887369393128985048595882232814751038118880946045143978036923529233651090034139345846785041229174135049437061960586661948266564318216656629645606373347509328955343251749727379136224270823935645582443273066007731554713017808401693196075223441839922700118976889848446350552660726916423783790080479416176843343832284585376841381182511677563838892583940201206135674469196707575278047069344581827691577956860232495884116028959837840511525597978388184102901478476234508967028966728888964765797782306997988192708835134933044589817086468179711128381820020441974991177215410342051654270270319998466349146952076159865068488522031632873225903815064835501000845177843754507436145059221942402418726282490356341265264311926550304063202575366053150918626942304009333102482986091924700441157769350573870042859048669736423070558612735640205404826776438809032580278850876909948092573290173311716530546783923878398599208449494428235455111107556714179415670619711986419956408981974696503835985600015377631978659426847065320729130183465878244925078198783011235042612991308041293778671171441743649417041309599842774961523852311952163541571620418554261725773289754274896425245583690080520697198978340532795249628326415693415613998572867309874226214028851812860019084603231750133307807483123616417826138051177933714470414812118995919098022374678777281289045303579959340056720430564404493547802696346463971915660009263686421734741176193906414540231793906317382851890365239862900709983098625224892343712260609858103040957638851092438950976336494774858416747664414121044269967768519849816506753795395453287080549905298268091627341027240261084195694627375916305703069360493049551760291677145256732350336713095707817696108902556901313383745115817342608720809197689623761582472327996967626594917696890350001810871147385743498364099092793369454718156290345287008933177864626001848458350275093946565743519796624693962789671332753001033621670580280602032717455317735493275712812897223016943175659529582131377364076503258241209583942276617489875728184847630287518607461981595309145177675376142287815383246915820396855647131870682486414694355434186424089865340226529793504253105307455647445859877651882708589209421996518670330660554024323585305741249889718839646582694981414032729680400985674094472202944414410268192913411094218741513282873310798232925145066107827921012180103111970427769076943035449752830570950893363533333185109690238906980629357163430388150748514989827901710659364412707476112985186817773137047234454037456002862191679132213657827070240795099679141803348219625586266951974361124884659465827287656449897715944442118234927551749896827448384642155445225433577710157111531264690883868010392137927188857961098424544017603589273600925798619743410246093628989695597260191902173807009755802375380835506211199233147409088468143519903350329776225541026224766502446985717135357265288218568611239302212235302190516277356974128634983540839032773548105080711638965572944766845792174112094484019965561435530689830861208494869864517106673707691815725446046682028205264852335869924999080595519278288145869413682298976929469666575230382603431048858076055117083009197101198492536480728361569767818774221507110373995369276615245244965350910034528895977702974277885415339785881066071568949262130827794926549436210734569678785506873855611333520651100095167223844443533158667179835359535764511966809574527400042434015440049062666137962957470652740757837146094002332655677207837079450102526980479349759953631214724888120659995044732454052956949161135437651275923571260142803889143997132062841954681968858841752929226688644262143406338432354490358718369905053470947584495815394054529883914651863181509397362332140545096908945353116235023162645424287888032188619172536257980921796925106976631553486672128902553534276632117995418894408023111712410789106391179138011169084156147104326412032435201946687819777327163070488510951900436345084713867267715378928165562125093199330846173552270091856241962610481528464045526818176983236033294487179905087448562440525846670570782029673843869936935465436456444723004453622737526653145299219622309881176456806767139785437916584732095046944304384883707718650184325692701151713494961736980782426940804064500922506823933795683717612153905708238585482910045715628540523094477092336799211584887188615244229459047803961052354775294518432918217764704012674190255625784771039687550336529962214488179352640586781333262159209134904418941231255215399597795265706825746240764954866113924814670065722771960249573450805840870221307879945435072556036021889510992483703313007661853085253912740769203896980996769175607014847575779142527138022094159387748849404964683120257215335558064888819994902449124874438702696481904561785671518215321421458688965726342557795756265270062929784596450617489642530002109224798180888946251675732735002967714705032799875798996291279287466075781964794847523920352226455940631262832484175397548174570106570926022593172320874093274914009797818697026014374214786317938531308155711671801618419885007706082881144649675351462171955213852392511041984108164140482204424941782795380173574309636944364950635187482039605091070892098443141678406446191093677136150577214300475164292784627606125879326495558644718659029848182201602100499771983618037782118959565168922539341826350103713632115778121460237093669106321911883916952705363199942535844908602398083142987243632625841069153661791501171003458273988450230019002557747743121433421560910214256300472929521680512822156479879131483612303346110277520338297969847648751075308620962846476786353120230686050987180875128226550528198916999445054582528742745970634022960335685388694979938282801471099860087059568484121519647334347663376274351356005241363537190114791202992225315331886602515377068331015488909995369901717369429844706667704827932244823418206567425879146781115189747749072558489155466470043329222039895064945277075532932299426267433298828142825568965733266786575619337195939080664291914750311132844675148739635772879342989756413360426581430509213481367985288829257251595246368667052647189839619635984921134156953198638045581484790717809078695292727918404522943010294283671108395063484250638208555865392327654528622726648834185074874139385493074176302795550310290813677069430289701202531770184941820914979238296316560222983619803482040579523193813266546097213588393044852166287214352575113723684505929298249561147422682921830579426533469225932522637203170191999844767571541048969160820055609293880438561539393886108000388931415514251988072813467570939331543005256903783714451599730234429145056998641467595030318127152727894250238346672633173337455880994354439500367756703109190940716114115405573408848342833535993192144371060068593660264699346572009360316234442638215142442839171596146581317424731705156325348237931474944920069795480164682189884332759152807095398821268398936423181065489044804892768489218547106769788613503335244981138616373957310268025164231339411549810626704975020136128532716794506413100084685100521121363995839031402261910807289909816307020635413111542266607869548717738202141054740140240326319645639300962185517129143265244274594414418275602144551534404540028743249577705844940809840330272581809631796524917350701494846684157254659289949476236370059804890396576313824027694236662622690151478947116904980254949025258782220685372604573303597309077583539317030888708542349531223031802292879599064050177373344213062743143128615220905180899239090902879120512231186846024133278609750024675079171260577404575292564364823259159993166445098901914614802860025482343871969033739870536003763110023850308855156273942623157390714593247386985029721347782260711680996006044074990934185340057217199340913082088234123050761235269621245455084222401498616621573160299790401496699491727462378267301789409424959606884377389474315405894732714701696198582509128215714053085784661918613228061036503420039013081403792861284302253788112844894688305371033031235700434623165907687630898083954159168520545880947623711927889907467857536699281423524704411716652528910036053775597355884354254237465176941851447073145254768769289970059546134968039738232936238998019862056505624606681310225203680548324843349695689653100385237546675878567994009464253726661505467570912987623619267008359876267855503028630668799392265099377398846083906682082066230124612997303780115748296449826052470590020138856244146334105814533631328256053205200592926480830313212035078776629584645441891695373424281390351629291422504839036261444255735810748683489251853965653149819630557124199950351323821951186967238151458339349082859755991966972170453430432731619357189676268639789788684438861190418094418582586957960263456303755247758311154311476203593869850737767074276510824819289768101338596997861434244300067684394207595549574076093250167823992960045740357758333106586041155550814690850848399595861676625129053153032243940117244488740345224071805352218797147385313216889626028531253487585855672513707818686352116963311057203172237060467811950861142666656026580629084848817231556597264624249137466762446143719528456935221561844002089813015954860029902518858507357307152932312318131849917893637341453991341102203556541051010772435986055631748277847240137983474630972453826070078510252638166027436710934976867796097426453923241963379897682484422098019133054859645286814246290873537053411643476969647296675258300786930930798498427116879044083381863267759733803252682422433296807395064180671565602714268211230312342948551653653215269457610646824700707679329111011960165468779920874150621869243525586056608143500705463657282512899089865298827626568230074377036105806222664547996570037627144257157725812686825466294687239956406509728324077614389187704249767623422145130917936877460629168518390246803136439897416961358829185973655389064577513081193455198291814912845765152299640726298338964187393802463224707363927685951291328962522675690312898982088924713495701429446868226555957527745822828429972809777383212732530514169924655225066614655913575986554748942601571238087794284727911437223671115303827477533414242407179488602028340577593858604743995094332651136487754324221472663136485905777194353727858104371833790095179817963113508959960557056842175321440798955923184808524878083675500683459483934247832856563524764189493364922492977088581624231502049139804359044981004314932330105944902474718476398931631684443474047505681172374643921613431838126854709402109279571879936931386000038468514368458211668002182820129991748092639890989566539405829588860028274480269991698010642404924265810759212724690630992456074216611694183897204028455317073315231511142056785094965756120390076831567476272107045735661718784029626248721159176926327063591387678465536199985983182304514554009697426850377501200832133206958860197305121870854184388061088381433471343256668979262770244341992180768631001648573384040824075853991365579081178390854206293306812294729335597163936794620335391527090637206946734233815138342694714102439822438830866768989624415715064474790566932331808524642956292310160051118640956880068052259396549137978135636662786584825404606873151675168565871305305211587055927383753478689080814844722468403352770000119125467123303888615629669601587218133024728247879162197849116433286067222446352883105320858360458051478498520944223549847131411318817352440769169838170078031706833636151053133551533095846623655392600802125833620966795554446296223486922443190847463919351749601595928620445379912792443954761912799230415844328912730521691240813192340886616809185433824240294544610170882751608810427472192492094539469702686028526307940310706909913092204311596450429819108579944260900152451424283341581548822767582003641525105027903580048053428092302369982089414594633169359389907001555983506446908224449861971704430762869320144595156484877701259485011514053979796339301004384053190679074364712995847183321388711090998235667221263805486838741894010107540013788101839315914880874786587879500151553964407616257750818635821793101172614404666888481821945604405137924883197154571243841934389672475514442366589364718518226071883638750704592945198112364117809723074340955219414052446422009022216668654835608101851443171555087452030706681358203884352154987944960394947296065470806398245627394706397440640513789295335728586689990085990869067039434348708008176071405043256903200881536947167076099967808378752608107329924794981733321395318387783282359167370125831242890647354742150887825514984141423501301672675082179111002557972517427600739373192142103926032970810769819058988038916181382579914443432210529156905787884745821110382660549894669376430572820094574075292533611636575093600636734985028438872658171072599410784930308130117586486115832906605732742706030699969482400586086403325051074570771362035206886494623441190563168069892406954125655639819424718889220352243226097231754888531728266773910375723710106739337663808981515842676046852036203672407891490187927355618076617558781815383071457220388177297187593895662961497505678534508134597659282837182367192431400974105437297844510162575439587624579038208902934931501481048364513538889280304386036901642658923162207218966651935591627497955048009255515951904618606791880818722697029796220208880024877871779125810211789425072761319795431096246640197720972322610026863745530018619088598256565626527936608540782281152515511826170482175695615416278513963778247995239435931246975243690592186779426383330733739209231890347396557573966490982052618777270846169558736145592952198126893316443382397314238472615945308852540887188657764022385105108797310172252284529976947617375824995263247141181730160201833111918112228135088569821004818161146167604851873699956114717104896951452849696758125834536129780347732313296535965223906335742142020499047977949714036872153280706435798771212837235867186123284810142893866885703762072348447967592914421953864220121082077988765511025031152937169329199651538878042516256025746324085042288449977623894692696315286572937413430169360076035329369706417827787737793065010569739456116219240336676403090783541455138316434889449979237557815875014455206486934713086498330073898088056894346065207348759524887381452856331188696637177260653929012996245121362161821249758551092460860670329278198602652523263228264835722732391838349258202127593894057153041127362818836102715025364815499370099624982612448826291798672824976494874375237721882327023286078786741446467607560018209489067346574075767645525563642243021209167963726132117855243254451672661784549610873790374606632941769264634585023927554463003063866779511564310976617009500805367466292149031922893154613447952205175673050782240665412164309774725130449522884992542381654379640699109303726768644369877159674558387881782369993907291362951135658592126247060512379920709844530680675102192359762580382091795994036229322416000214494830694988847984025711575886642601488261724776092275527824931800612454680443270369494280519969324740567656213986896794541045778067938189867874389603154930808754485087084139693776973877043177428658169640187113187555513983743414948043673850691099689283408455486588315078298044442921781351968165206545962885924899472173332920607370072548385216598658988907709883546595044585146811251957872729831356143487873935778901650631075864406944483973846508885441240799357171892723876043392675414211824046241390905429387061282390467449182904617638581776736597386933106850735700688392261440049675224410943938679474310473017573522143068707911389927519833743170803283017996889374427312521582135631706351219458024320861852112521563609484108627492827688256250168628994059815893041995881642867887107620110956075974128723052213171260507160053682802813777234299991773005009432736417487408931931722894048033459985522641089298221544911814713634885180832952437115609605107576510978703876312812439595878309461734903983475833694660579154522058959144056918656096427650852458957058774828812041326123928589487352356033810431400035728912378562743250250463650074389009557274063694944618836528666054372615245417220582983085096593648284195869616911572593241982735832458538314401670681614873475086126487519897807761879174968270011712481891846613898797807611495726137823984153462245734739133766906177880605463474924802150100016241121217139454356212000027292737880906863891198335160811628709104432373070159783768052842819095215390089954681456048093477272389992107712708831199940831181902204147888292396454286509798811164285982169556628812903107065000093202373656256754844374179931102181762310080201404616668489913449894241224497019175557649285423992397248206504152537039228810588634119197203443941487016575998455338478687656777347709176671468038236731340163982840788020534954683295900144178046155394012922359304469985445894149744390975240122334235496542515475897214184893791435027789414016885281649814395529829554011283072905955477612250008820025122725613693737437692659490087374604434475687479171702479007356271678183376663649010405890049089190374645620178677383153699102840008228759819748535247250201437242104792848796759970557786331111404474698078827521309539908080311709187392213784736322633200766495163505108258978872205344514715051636392345586235874774466224273621281109257958287611916625415368465731854067726266281807464561236527057026139992916165305519804652650305545484991794037554110839891390539496691499562413086576574402038396516635578730617890614207972461756714788535806936170019844579843509116551020022736519845348479824964461874462583047674648261736123338632176788831250491277920092668848423818185480897273944618069227465490467321094749474591173096314265599310511814464984916465734889299095623605691807453782343016627431623595003450763718679986930718629506983311087556768767520957403143485900228811237823624226101946741693084249295818822909711597530124904150583934405280223506510308621844597274035293927698964695385469623728428517188700622734337169764549988286823553023276435037635204423303121918594735894560426683544961268990924013089983378701351245239487953845969039342470609246933983359445142833816687683906014541970792247310862821685927654723364212180787384299729325758725227419692110088899483495642276964023114275391244744324195895104686825138415711722663081780340834694446916054767932938894204339662086472722713405850346947698378481116592561577153522840427648249729162557314786408820040147197345096547770301284755681410163286181373244098590685626637160588907071996765696936955777186970008347826798465723983128062485664119583559466864633682410147066349690545555892651629622100768416618973454423248558753157654115752350824419774405089409900945155868296661067096709024218856726351302207694616474196101248350048832439909968585541868766773096136362855749905316728342790555208749417006678209583055699624947773343363507138316650091609944586030701991206362094726162816281543050557973001978755133788352283359301917015024377492382939563793589629549538010617350700506211537941161369245401779331106731368079062915857711534352906341740273374652512188369391593552057152548039141014116076073493255128653224200668287083493294702711238230448191080636701705555168166051617085257753897094270729668693022600648965741466207261504708613737237246453254378255759009256753842261930842019301417055445797375197530047041686118589733242245538937939958889725739655857866212042113770585010041536324733806348493087817055660615334112886073767434320714040687517684530102491894478822892467092476454535781147272683411981251579374793859013653631922285377259074594948916500890635310373293460482081275476655448033468975099417337722730080088351386612163960876950803327744632752021123833663890757017365868834071432495737637613189023179572011933183468407571300355600358910191442671794848640975070348915715578801216721948131742438746984840193683550642575388859536354064578459525802634894053684852456612071352028218360912107282448603570984859862149911072056038245919485982982354366474772443187443625938524431934988597695084769983030114427791664023536244069488936433666519120633002270696431428914178156515762413660679408644277393150876453278200005143114416938450213602453859527358241280822840514800724995059504215819802203211911703806022726228531527782250798281601848480446388454238187782171045347616593762607297088842176998044060036095071630593792353372760325679084296637714903184469807592422930615928875788093754556644160988810322733243261160955215205586557288084122820000875492308382839802493037018529206223877098770427810125622682864582582074893745065734680589573571270244699330407523545448638482611794977490652298806639691549161945675734171741466566677615589130228517249374989142315440420360083760231932689109975546265851442441306916999881628089074859690483068772415009109248226072211953662783562688880666917145514720406546986724461341839275466663949242227578726053861942662037939092649269513080814316765928250487647210486358393805609309137306920848388137756273064149155109110844125268842822447799765828045167088789610015596232545784169460313922987805452872155596749804085046227082625986099215606656776059196478661965350118610338730120681862698898317555385634933349620362545889058353970499641814143440022080602998861413468584239139340153564232472142530142859120565763856935627762470877172637820785953181433146684288614405778794843941854414553901189633756637537059024278787829869814914979048998218102052906879742490994284322732392927379229358949375634604471174134618118763775567553171353328694467886633685252997791338884062520535576727452268759094250269880262302902959198007187271543905075709204894742788081121617537057081777860657232739443689675971961324093497733807177485067680661100024970948317758504896131681710471576013281159979796697117964893749365801828293146885326670686356473845919381630061412473853884559004582927311830453194923750739495359713935327341573558516210856392947218980959393414820835849569334691831189479801443321814633528391077662888449608686963782651073755036361644921669180879049103339948482442207474508737919354745696156441020723233200904265039496704594794672172322314104619778179232279689115160333870859699947512842805010007507936666864488336267250377590252110262588133484892873136664049593470280206296700557077340622029755773349891842778084850329492415000656210226872992169408430237869071121487459408905047676091555973770140654311513641993910153221693197750605362646324562937860104085102597225325173092650965923479694992248331176811659480608800082618923704059498077040017396745821892429548950716877133100103978515335345314710685957094450605373359195365861719631497006018216015116781644587779937232745484370216719698324035215895168535513924782055912827961534916630151458051788841148097186706984272264732539627856885621860135755148025841191257861698154027609127050741951140396563792898288285227408601450395352112653895388386779399517295862927094784127391152433112925946400072613464924997268181094515144033606300528712881176345574744004968524233433988590299130642366501730923117254932235693646270826473653961470193614656488082366385687127431181462802429670841610218758998609649692350312982446820228624101581183380869587321577601822378961801576779989263352748408957310408461068537718696398441318584611504148287305023118066959863417933895317469817706686635251177878445758531114952252892091504281574922455591384711330427158913553411142349566732404385307357246228684692228408379373448470602916936013993040950654596190030818380252728256308220937269752752989520766338895811003934670501955027215254070784222031586900159951308263848419748777684991692392219653723166544757440764101009965061712627959017809881925888477927081016545937332535284128020075751048259116525137578340100895184768524910186221173555348636969841574019955602865124223618740583409084476878971542125953035591327072076061508973819799481185638356745062572946951343691678918263066507952431155826364371997603774446201879101613542447700627364765654919626761644468077219092292908086622811295988492478114867153425715536760311952454756156523696770385370476886604698021385248030561176382068757506758136412862878013776514061907267002330978458776691822833391651290787076086693751711689174162769080955175727969805201682102716262136069706041609156178870530540720979768493026637638968662736050113988988367335913513960315474288974713854169693929318308680021232896329599381271653722118529514501671084320746942049020976670074228274667222156833863413023286091104602401561230498455914095239210460975654364834446150855037499705955336660221346260483996012273273641910694943992246524570005239136227333383284972755739335649594315523090123323056343415235105696282286778821093084612156866114443870760958284067151875349808971433102743967023207286830105305585474061120710903593522245318973774892872122393887443165480209039008108108852669227724619314382529097258631124615779550275982207061668708048769500542419875562046699274663988639348486840142233528728214440395478422891745476582719454397372171674600060853686206659734305152428332728939125107799228171714059172236020738527892642080373792927864355780211583575735835906020737813547108144950490459183211755301545019836835859869923267993632243604356246020284705006583453866926334314789829914678538149164332937337706472856119777547178021057206562416780620492496050681014505544400083691585386399196405583027286332121027159254780491989067089066871512194349441699015818121629691645296566728882261734646998743806066636501254919352995156342670614836862978791948285828518127841377026940221675580682835676215271251002722532175501175391676185708244100056978635520154571775096098390350012825128730291388517597460971546374785158162912190028421493728409410165155706168620646222073668955493931454351822662501773714797996892061206532527541841391447611392215213461406928641935582165447967025369448854441712394333499860298027098502714181595416780254324505451516922268832227680705841685710882489400810805982436388069304940140036054058825147274558825823285297655543660060976141881745439506835189943064407677097341582749754334607411032688819736325102959868912713918327323940654677652057012685602158373854658756251286737197305200835452057115115637967152422854375612319367176856700900637354250309455101918511962299514032597437920935437420911843155116834985132549158654381928399557383125945367248250671147389629672990878885848882599701074227252504035481804962852257052082363485122693831562806728367147435055983927973260668429507263513827510419746889767672591369017306512365731719532431012869561072580528336315890095826698417353963848720165200490649064035498544923722942741837841103308077738694039345046633322001742224053633940752750598293574910869881854105227312991022233397661253324690730080270049025891197866095461412213341213891962638826661786556146344210813263307717607866380636342431909183254194322747324115237704877561380927960483576499695368748511308807062476127325750376659107831658785768550661988397945830269086027019641122022573660586407392914387722598907407359876447331552706846619167081990942108608514033280601787851430149967994736342366222291820690324453015250155785760152288473671518234944926548288571797699263163527538455765576440677544890668248996613455952180097814220867268863056429154013829653468573489967197242017176041456299913025141444752488487885952192226843723645329643388078851106993397696127782691625463097323535451462264137652139297506809924776597347261269093978722139280745585647099981589429668515562704033660587623053403109834593229001269832269205022015814343028080002236580154632882552904706825073630063078118956871980940767158512610334401938296271880860086116970723967039431812613097424711171790198574301239907540354716506288051264920095605513453336202926306649809154087581763402129960016194911103493751576558875248272142376797264256426977368198890882172269926555304987247904798100065046843426551930595486463515965834193256019953942725424637317151517635243951403807424423857724765659615245674669931628602826485504068591224634076966397694270136693882918560767582008669438337563145932941714551996669772822181470620906203497631712086466030605675614933109167359686926299803365159852130088802404618168331860877929665002779221347601161748135200060259895150218963264153851311775210714641070725779349718225272679005993370186596157932780066176911183167614715796464874106952245376114568879231150886303623840717691959989003565807547270107199166447759227730658896111939427586024665729164647782959517792521728407860744329511315658116636186290447363155515655823373410205410970553981055118587774847255317701694561977327400076274662916015578149893849915480067001588028727139647788555334050152578884671964802052467242449395518643725584409996006306300289818578112735319400344482753400429606559508922535186015542228917642946353097283905715525192200671822520448345695728302485815877783543719512685965426708169607982346616792592607356189398955902895422982006901135011999278337057617540712583480582780681238942856193111114132504933164260528023303981416900679889803737603209951643848905869936960683071012317961526692453046492374632284627990824233479833037403445017864480398812755922590204653660846910213794842368881452629696866213566476702014267253205644350313117144413771351467367169726545226546510614403820274351610225460111162195775537690901298148136883286248160366899277390833940514714338487476920116426194819239644946320044638474688479111517044843919386765303110082423870498152452040557396205818316248694503295350919858056458989087442568312292543450747373415195274236476418028199548731737721290125242144675404294585540242390647170225700446424875936387663670677479620244276809437785482576651284377690093142098666071018702933859331043773285303437168895184802547799127333139633667250697624004443999842871548273540021362280036387835780861930328130999490596589188937507538344269255703320890375832462846794994772016161849244806707260664239432321923207176003725231360026007938117888524025045773149253502497399425440513990997242778918511892389555672490883322532107988627081564000322527803151097668662283346777383494174612258945420980000290932969074377260138690910279140625985152505977668184401078167066934000751493482854055561430475539110533143757464229486209744679084475876468363178927730859885111355095794744954218629866774966961594744440927311320066978611380859054531762649459016781969714986139949226972233845270514380938951350464437551225486111708913966808936677797309943848808619331909104357860720849673073825937923963599328475100407272793862627167044754075719202503934191972545189483117279024614049668955179079986910253764890964845981670901713935120678283957996122631197331491337781834338419318523675386629019004633433285328343418249210719160927673080132353694726484892764429798706811256546280611726046073321917630474121506403020178932057956876051027752505304361222709604675845312738661652142419408683408375891400951141339295457700947317481168853640941835286109971034167235581786028234982020314998679401740417191402839362105194806048190182451800817013710421974592127984040242689630053355368549416400863921774567695344586508832862982165846016450780000359898521290123959007042026607449887850627176077622255060639074531947718892509905810093672989195409957663353865837809804479353779918771214297746197640947272121402353265517772361634196607437639153866019450177691400624068412731629586080635067629377512529343675960734271996751352015800873739548389734399012382565682907859114425882852136616920140299004131462136806323526508654112180847499875844111836290979089198341187537664960480936264893291043905977256329558138877674469546181579787041915975583350003772867246073518535088549546420293097158563694978576404837415055580991884020934333351281955145551857333488816491676944277824055543369773119201437225415419274505976013798414437359942028760525557189378041148926125798303618380107711005004239239264415692277900570279474013649422918479336925354324840487802317774451841779583558257547618425495753958785494583430848044173708798492674195289323031489589916006854228795789294815900068735373333333863813908420994872551172617108729440888684478508116345585269214154029967209886937158862322203314855817426826359506893623448134224737869394609232566007547212567414103421849013118963967654732916742471899342433028029092698507522949079709443009238672877439362551113136287615919738324134916722682612282631277938117508074089589439719002542641266494798017644201645415881317601897265962461441391319206785035246383065776401652297320470892011469171337228786303703845313419426441424966498447440486177385135293731080998594728151117365071913988126930748269061403928642276627849432955882859383721484750707783551198962249119558823704506458200561017020532484449021502294561765561859214574399009554822941375154413613291504304691417994122460933816513626279028278842138122077589424038840622943317279892594183668293679259604224184594177065301954864394817033552410287470447311715070347750834323733311632587672763683468584448656253918723946082732471350044895708680315032503867640173531507940034557285503700184560276996150615682914161170610461617408248462670335189152551882482127260072595765678899125678702014978667908471066310748764673098909147197987925985906257336497349823503126098309873468616273935805790735490824683049728409773238116708249151637346808705105219191762054169882625476054458177111799377677869654216992578557720426344244304207449548970339043450720611900769736351740195265632213928258312052824003746695459092804525968798460814087071953425476138836335351191121441431485055201235813806264923135383387675809188923797585515732036588317624241169167523814588592075164035236684372679175906370539219798112659770811394735167196299997052090170907589856916389066427042357007445027751201049039481483294574438097462603510578981954076398706078758177407249118450697884299413834206081242839014881487259985418148029294922787832435610554915641091748877067067820119859109589098386883951171838013491482549927491426985525951776536126242157266244889609614829797030842021051602796714785615940646136382477589020110251992342153210060175230257421223754210749591872867518955215532994532268942518840942282675774422227552820761560727710394718256680247106606773831206303146628474433862047432595685056892871626532908327878439965071672422061382945329166004638087256305952415328812093700992298960069813962796862795676351987418240185629319849226233364318993090170488199525882733880795326588514493938124115432732058916457864229452684117518808184050956904691381344307784890211487971211628397734430548461498079356243549671412947333266642248305004364454547027491723207839956508680187617327033190656579547539520692925201530706435047130688128903205385455639879921010956672982873047946610054316358462344874415554071338143234413117884241960190370286869624227624650240042081371350464015993472053275567950353390671272161779060302162399780418576334810054483887031730716255256479959999869353196813010156297097871167306964940274916657267494343208132314613886925533494929411831638778899032594010934111572742980133181457828168791351424395578734205915614587736898808079170711455115476266168208177757472484278797129815482385203689591652405437305246672873130301925829524987639320985731209161056135722017639271699598686108867606133843649616951865484860461684848240743838118074173422244839478939982780147342223057865410217729264820914094850350132241515599990163071478148527051614432258254780143440109533660239362642493138522940547536416836467041574300558372984704018145571002969623469850599778855736998021822303549238318797629894156977212363844088917892752775284714477621892057425453151037479977706862362421899063030962822117732197082303477454550602385859114038989691666220778768326012396174199976236550636326601699066116890886877413337809195161497705492141711819110149543478693820620980827878957313278990600208633911278471536843043814981509703047708868816359741925341341221913962874578109934248327141091782763176542096312507136692636588213575119987540115790280285078066983338418338266739455368319656571703194629336410927266727424499274732291380098357445091340799308568360484677866535421058668005211542648674972395379364215665358720818554125981945474275161184169366255632419359158569508890535314121833662399878022115042456600150236469108159974192025443787361022671294122829888805336794395032940480496167711072878810316146773037150218352890241464817543095490594488754104250168040699998196719379820827733464855815859107761788284975054685679139904011384562436040357440246191237694402200760421433573387260392537246640896649147146547300721952927374176796135652330678042682000242307412186674866946280587887873829952327805010706610138540288011913855730911380572755893681940309380718863793758215444351626559912030878482052393749351895597158155182804814807831310535096823567161235509631615286658578590195287177546425064129849451057303533243348909799720945729170095878408322140440501474114381709565771252671577981709767638478642064876136793945784423858603564966446314013104866705613462769017492832290043271120819229564158948152826558422192618902530513815911803423108851491226653917944817433904322700506874288819967061960688500673328353614680498596081402879119631127482546640437038478288400798157913445232101668673741121294496813451012237984294021947946916648150312431873969119602156712114227943068201040876756809373898205468421478560142776882018807171741412749367467817513227710904673001530946777306922329095349569449160116904681818272347781619751257278515355698616292202918847453026983015663874917702194760509417486684119727660444085483297504989078258061539020030103521802717920995081783912123397007002783290619371336821833696154082652039271615180227915286407683150329974060928048310506255157226287131327681824780116915493786248322401723837072716088641929421181718564674811856940087052996113141059458293870330528629791882649324742017955124423294762903488349527229283080401222637227611027520380012093752088562406453112503726401539964371233707903743951203202853502547482779809303020219663250932909448819057451029852172830699622421954710165193932976937065457633343243325643313639122108352913555770081265053979316468149451341207512188350547396859555387809194737465662790318681617136416152155407745354380414798454584063447474508568028086232412696939931122964056032731092793849169187933359614853517001814969826164800344027822813985879014862852128674617538485034806838652016807476744021147665569643873967579664429588640957755915419261507196653734108170649748222041913503522393203692779239073695588057799755260190308143550849247598185779798029812641251926980831075657465946935112856279759057800341932347600136961144729013113729326518877314672141074127522101051515586571349391276885573006456556663593525354509457378968835800277072108075468519790215677663559608589952449272204977529981545862535929556885865521908620348857429443548834017661683055326602458359944543309529736205642829474539664101759387807875790401431956726445025653896405200714870685370656271174667615719181064228046438268678064178170171014557998785949298102867487747167901743550399316968352859211648148786128628911637599276847108874366161776239309829498234064137828071121741237834222414406998486328823924065637743898084631704339814190170417704585646785993494113767101851048288345847591129859911326180631166520977109326025457776640478113979812027396279052178079656593348303196386372636054817261754402626843572645147411143619747488532813525432313210406553747535609140513357644845126503159949939847591233867625899886282674242141065631702826842027427753547852784980625547796730956213501075135701081437671209736106569338981128770064395086822635241957989987524453151326843577125269551165684260624979530056413423679403268694320221277155284522945590601316630023329786184272936970542564089572247314796084227996064312115572289888413406901570607916985539706270694986922613155059545816240665427626536098988246922842402217051092088452264193800405064723514106544629397362950062687069185743503468907870252668899031059030733202099770701955626708007842141750040248776436938270496675406914489563400092985235499129699604654028321299512881718293173380258934336088863956188145305493633210224670237123490797406812568724883352801820879686837674893286595156350015843734542714861534249712522615178086471835019904993217819915535387378562345508714313905038432869651387690329053401523842824396391325686729272248708477969680927365604215169040230075017366194993585447144041522141064749724216152303724661255301796533454354088980086901630718915880845552219843115742231294519670375862605877626333668485075275284790344250165376491633179283207357204363149629332621719841204149693900215789875840550688363131897828032706818206201147097078246477602762963513245135225192242786044766017845546358689564183440825955325433408871016151070367468245292204678084853185295603026039336998791252960230732785846937162703749144838891633750052621697332332152400708758098485646289779180984825342721202481272565551505030570041811989518609216787809270937241480471120320927521638219693005366775084683589386544528152235347557559076380237852151946018272456823639549056812593274728954569893447114180981315364959748515410685460978633032486429877701863553136745081107676386047334640295768821152889813566449309493104358903645141317552414780992535059148130953147122623413540646090598039300729540969213694564498578781314849834710618588580258335380086634822074587547577692067410067571778702148024906809935403404978086974752318213687886719206942034418621529900468668535749778710147528458215215350982709863527703575629384931393160423887168990739823956189887221884206119027709429903227573668718607977070772155923264181360169717277740702884134571773206253029881617264064980178019269641550387293286248745115669440090146910371466589528076907506309916580190402824912396345679839269565571594761366943873933300683738308181230942044159295951718719249267979297129502949158118526944654488816064489091085747384972252662561359833739178319495991506543998379398350900517433878817182955161844732570694229375365255153471178576184977477973316771607149942145263817047522727295570500173374401356029781216871886130729572008682704728150994493655761353006838203007248723891860455582340567631876262362589043407960239552914408186887350391637299347162815765862853465444767189779664009434202490164341084863053640849409128877119965069804578807137977951591204253802570919860455967388601901634414829009972971392282778638712630801766921370493497690438081956561880129790914650754406845318051694049624845495251863363242222261458699500929790456268865970393098396956023564388968632992332376590811424860358035451697820676948892486638330687917659426382009263778903165827050291137857297509740049386753580516323216984736338584197352048763394553946427392885249745167489904651459473884977874365758947077177943562707432572285536101492929675650265851006003218146153612928591069343214878686374342977020598254510958054174455625081164881956344323355550915407022873450617663489800492811148486033667358805224298027624506580641661646093309658322774120168700461864708735460759460023553734363668584630008298911593217465432173511755315755510186309658856027447328817436176453655926246176438777403799768860801841457644764303571298399555691565594231174530659483625020603643822173544096553539509045743693865104312934271665810521464773628560410427152372939781248710605985932017807577384367065631135068593058886083620234778064987975853178401672905978765702813875802603233337988320303896853999145202912912522642348966197633971826810602370959759662980918534819012504031589962520471707676639986835315319660868752912542311537503475500515367406868469956767733057751079235049034577877826339647387642905640164433316822456509039570066856800982518273305819042432261128948518491882214253968613100337137224301868395596441734670841783204007571512416808375541314824792400452430812536772968970444067964317974268159359203135821514639678923853314691684801923785613665706360942213296256718222140853765807068346168583496375655648152132788002082516961807984840474867542864812471892324572784880995178492002381321495055976860978043922721365667914325583872939628855575318985133904712378084559407184483283611533615780257058364385933712923478051058091607157923717358832712616456065679450348099079972050842273054741907781106494021601666662950945932469680827885873826896084877445611837984486573045432053689268403491423450881535101678575706668749563760666307293636497984091052840084546233261781814979761412181872861268653460711665095513547783230627411811482071716466526542709914847880777689282345795486110671504947364739973648066529953736779993402353274964801034460008563976973633732229471469730277640940775396288390125824662939693898770158620893799185516933084638159965395913392629245005644067609742316903078027155970074441832783863920059150419266647287527897954927703415082639154789692688330816604795642091123793125124523826289132391142592592488723531353414037167337993061711996480374076644403610827781509371989266789958837505255476092942001843074443896493496814253542442287548263467259939978795979725472244117287600771260884093950481192159674887395558626710654903021324022477079265249776944955205108056410482206802172927635615223773851063602097203137894838908760877304444339107037138713316374909282154921296609435599576542505065970239239800133971925439883533581932604235533464070907285804865214153390352229706047122013049412345535778954712486300047055628894550446086222664852384731073317223038564186531180217935120788367893163243192580644850051145282276974702881297556723041938969669115168403425219126668605613003845205389336911210081205025241087952203462366013906294095868063810486156703491895288995944342180753633129570224126076566283785776310584133249700802109639513491608642051940551379803738265147259899902124751359728276487048030240957692462436925511139223531786948292842185557243747361826577956003518901587687598144266576265825837773537988011685811161188545871990328237725765974792555501517035225204329594566895045977985931335460305804628712105099200265391999022032802985513499055895296203508118519116239331768415451061065516247882198069414695314021638542948465099305759018425477258768576414740917080050765864163376935814660781872244505837942437576287085454033501105370926710216016889742519017266477109118773401965876131923824401677866944731603643323591053046392692548647340576221166484269938330305048174397311935005367616450508447630473256376421666139818172167153111289102455851620731970070031125405052082382908931287575642187541678615691797009700938050142984666852120015915113272059232133736245100927185727349413528948123231159923461589690978967445413062762687256330468233531371596513000406153320056264213843223148270354735863509198844653383568400484168465383514752987266852104759009105167315924626485357070819430352359875504929773330753172203557347023651707931593278744454981644593247393837794365278003109277535437349297011203088850811385110362985620594883469615636232082831084250287376136412846726450367957498216344694599244023203866360957965273125048912012359996284808751700271355908821282445921236597263623626193171749930602780067270385204438694420239626594307173387544843964935739401654469425438918315939596750099329847553183201970958681114740341146430774907873234732383184316977580069510475962534780392905312278972028317103077044152040962027536066168775095387491356486548993528510813754662302301044164406078743379938865943431973972762809887255359642183688625252868429209407669353101746760614361504022410610065751838578184594309738166652742282235952326563156004363460606617992954342681278246980231107831922175488282484434894215590509624968095516816141784081058068173009002631527217960747234579744753439008266238408070488767662012566975422632476841443602996127063203642476725566239584136334669634201833963782542254474306328053514644920802840116935071719251343449175916344648154738160058964567608405798016590255748976711877225395270001783834618076833574250619637793972907186641657756554922398951160504436181020594168505418765847159029625940307677186938605462437938952917738297414846392692211185354790599095097299760747387296264727605210459511282743563127096059502375573180619545259876531988819158370780609460730104615314079672252575778609273091902469192988451739871631507685766351864937976297380660316503198618172065118786733591976523956744318887953365229088652008014049981149565766450135714869973922194603166589011920226137063954921500008096808049365156179044413993654732119422707627168066232679931722181257457609152455167050976549279875792849661673761936853435468604260079278210505029351060269911077292583322331389423980871654050463146586178672199499749697290597915791846480370351873886438202706098049340045567860930765382619265263181120218638592516569258659483274483164346145940369617235805971795888290583815236978853316823013314522929991540592302274058550374062853590459765785964573806521600263159177428881248018307666463770771998546947143246041543087106778821876907079694131367846057701838283928309479160915776228351293308159945269760684026594233928858711054408683063663858102047363209449653498877627578626990535391553279118811926335106919312733976667409148613974561452545275688380518228526608713496328388418368484801362645828954007306507915607410288908345465962538086962552626371159235948263845456087258368603761981706726337448128763726829988777229445404077067899401643812500275542016983023069545116299831343107188990986254101600293552441548625913761597478709185153402568888130198921884456611164910632688832423448309628880496579742710340822373667382825577250767715305186061648306335598019340710989716309884087467259104459888759596053032924889936385211939490968283710864571352345601580438642971035384668305968987968083587349785762678556588838364951627235452070877953346765867204916172087981314914169891375664645456974216663388028870931159655290890968583246620942368725955209587658676396452581062760953955291491765181737672918987667798425119216807552581600469267289283769650286492087987822244210714046467307485197437139760530743223451552532121235870851616285214538008368612462951548039453329683773642486296457024358189231686226499499218634983246812149467375119948195045074496597043271760401338355222360815340004795981936852230925881457545979566969475623894957247325248486607065428825628767359288397614196190591329083994691638410053218891869432565720667765232382473164380797696044457296944650283430616652216987080261757570512416411109207357726203970411688859403761058433130293144482906595568429648729637716132195073219971641441702565468946101270308245972384182836040311660348915371607623286396661656185600094671554915197467308423255867674109733402984616967564210763223153678979988580683198922830859763375092946490387910743707740084634936236240083008495007355816496691675977786580811182304770742469643604732793518203847198896117035900830045568512528050955106676996023738782353766372782267740520510615320189983806114919859528750026629455422735260581489488099794079523817886224433013323645543257410388370423239809214161496327553956636176867524381765566251013374304648082075528515649116718283454130472387959848889991562759190821521959453589439873919878854478785588393019531703471240250072072868196663188915409237562982477373635896293037302748649251369197889067635824615369075723811889000386834089303979375199306538172287366775385114171618214640630053993407936721095094123328350571426528319496746948502122505862740454811093958740537288809665227994913135041148573758189949152273413520402201771742697561032405390025938558957849154940687591085109004456698779029635899957858043995947222843355440391384551575459051012236770949004290725163272506438911414940314392933816049214114829869615126075681193004885160428925653343730686239962181200837591143173089441989980293377230506522502709849720595963536060693015540542358093562221999017615513369475682897390100935189886891023056203345606747815955637373724315051310463884368461660222105807660550163384439513392753905047198111267789378425274293071714287376055437904153578146194855984706040401016336531189306836965939759500845851332728473088004848774039317183964923212125759155986396831005033440560527898876611472430892073906771713344899959049955652866870431389745563864195065256263382007256053250254497912589372866069366527475695458554937936549466905956264822166011090722271664336271478599464599992674904954961512642308529764040436950307838875676652232278535937556772170054417615227578900688492224647258100685483167616870537047140293293794295759712945613452455275456568249439714331385804950973720607539412574156291011023260518521610876296113466237967436112342517799340059601494432947964164600310883776688705920048862018019633769761450582921768913766854755419381160747064364618355095042783676384472746207161381971191770444487975137788922899588473820082965070462231272806210512699103944589360789044290661289121648867329327712450595576499953164568888853937404965765716880913039242348569376445019991202878400273546363108028048839039864462866315940784010291779687774189828622227028532919145503554952435667446119533668970392803076336134227848130080590245232298645365347593792470097712372514855978962233505503714082373885598999635725768152824985732302910209663365529809751869164292807619274983229652194481696043715488475908552723586440480201758142575400529343879461964319673490293470269618697328305602126628583594142914176432704388399714037984862965074407226526416346342898291915406945822384005322871978130120342846511500021415969387560598958467433788321510445817334910293140849261962544301069475586326736133960131549360027028822653755016913194817216772727748879790713086459125176896227023434826717374447625403604436123834266368529097934730262217743440936100473438325947055617962424701479577599383961282821867040465947367134674003802886890673435056065419629154398232331916634157727577726255667127287567764740358782518632401429351230992652418610536526239068980576795900937826721251220551113158347823925141718932666848696741049338628805893314125836487308559685236487095735227355156417316000570435683375128586486798777626878911970174198926297503739016966811455310563963891334919478491126002887272022436295541133021032888312521790386091534116785776233880138563643471230253133127583492149626816843461805655064376864844321691600993297935886971326345948047658016730287623626375404641773711712333755529076168457609841203148149067126544788130874966926524950728376339582483127955424169984449141560908212342014466356115143987869283676440381999960736130356587640683341102908782368523045177162181480494326246784203403756912181002048571334683860316409189049331870282565113342259651395183628517923265340031625303117768583043905855303143470009499540428993106200690938429859849462576424364274755020092959821997053713856754024239958224936146881835783905292562766257814762825490521531188451672679258510629964112189047429032689829030019539195564907348181246684338993876522912442311981457466200937808079651108208092025003722176564662265462851678069756165122984690402876381965360231356361364976638902219792361723388549181980957352297014232045491394760020309831182651347083195790827421779732291100149811042092919972707939131054168843056476680682881432639312292484752803515563282795273265608341088161697961023963066523100437026823091533999011018517840853479666457696399564386232590725663075603947055135897585127025937635325234545460711578765677751713231407198493087072741725990383479908377522266238501618900013696653310225295738651936909936258963337910411775860518781920708777656099941098051551760524338381498578844158021483003773807294222057611422187341912017380974191603908969457081286919618687718234413339778059759399170408525740245952795358955168367104612241414848823507042098949464053346102981481814983849628748546950040743248430100423702377026935949778090939009555164281254168379512226340810340240060173185622836711787912863505765122105234648754708922865475797991986634913433674573178080001015922803245804156062040588149733690546883830568311188564269274466682562826056931827114971107908022216742737252056085239809705192876172818294917079681084956342092215680052226576590502708101059646896004191594139713443207974875200619703621436531076819492314665746833301942561772580296562871057463566793619642933509041759154760564372284823152054488326426763087111474606360347328343230094190420867481232196335598089298139013743217231902944033802138350378466582478492823716028457090185093998630876897463612139222874464372822230689814427108087673984745198685973565683247585023790229043874338656501635430920494975139465171204239963804851524043827140049987366092215951679436655209716246719028784972343068794146220933065403515146533353438176212140974995290813343668874219608546300562941871857198979654903892260994006458134576989890293752526031594793520517287383716670072154796195637574070128559260756333580436117856957032715108609733266002110088271231991637593409971230320261381098899642220973175527414255363413061597294843720485673053633453566183219602569723677437664041985539084586654773133442430617212600862976052967207859322562292355846262846333189292831983610002592187113703997150557749320487597831976713628632018442823365393471636379457127715884098417687777055114469465240422088538202824989296395084670465701934759746010821090022379813893938891736619958702353222196294149913960484299279341165867048778571113372653492856653689288750896260840586049730811807796500601006810979623045595480118976856619676242389312756524165598319456614716758220572051507331874386499592077292171541152707025157374293274060303889970181763924928444961449892119960087414559201197110619178135600831179394370021856788080126118115799464147173035479067670391626448036915230016380975095498647857715301933207587076728073824162729979856572198166844451931151214721539462606241547478844925314745222342898144439356689652081728352018491044685012363534665944391017712860590789232036981778144140657657953141693427566274427564792495722561771122441508205905726084814714045923953079597060427172459275216550600513715396777242631825934316495999408488134896294439801928050446990307433295869642023477994406085552980260168762745948165247001320475095699315825105659565545112468121674104418920149712917059113204648692995218936078725719895433268702764211207971112580634371790702853656868188130649315290358649123136625719028116080449925331730933188619738913721183963488792038092148177397515121555060714212378478249514649493285850008995173231334179449195719549373810225162043355850964044299950654948218174918298209802850161357646979930679132224784985129587419897623402048264287062020511304845432074564363054682985899790358840556461006745899723002864895895241453303792218607675721960300019984053461042369673948465981989033226447136417782885831861564108998106333256695880149087548911855294447548777707033254281654048701145290259162535198012387414010436036309205281399608185782175059199204440716799015338445864015420542276603949509852531714647656658866814588422462768154717748977060201619396947738552977951792063934259381963552380388424839581039275670564005177458415453647792017073426820789537842419318718112513400191354907522301885366424561518864030265041520622587526974644830596060008664808467397587469403100443050711008032857561852600337068332178341006973073703640321298250395459156645162518016358548892501886490417671308623474164512000978052671659140945866695297194326626136275546662763974798831324207660024708256555168634654157322730379846334974354176053391180554958485171003065047146570917400082202203334208427162102550699829516696232279205206790124999105979017238642175853690642136187723710913388149956001852273629653609206373168397847371498411623140479545716310285083096492946561428907773603095689141375737242200843195367673720751672340211743272646707775707205664465381708610430491301993304747985963516488796461944929528905825730979040950627720666835694427988054961983751273274650760182121520533492208085191762661708361357233342510069683104178207971860650279732577611571650724027365119908613767038988665032755774389422758156617307697218364368019421958476811417575765780225941229369376285483761501137120944477726788390726376506189327449474109264058693198959058559969600972046356710955864259422250713422810831610787854562083865526862249687755895674284009651707897439983645219402878969929676885522509924548113167981196095844999451283017439565864554253492467331927699292211498644288427428218962343777071491438577608058084856427303717135376424530679378694579057523350764388152181065660792707515725288399185157105260056188339108536221275688426153686799818073601708756736421701333242635306193463545436017260388552556774580621314638205488997794379948659252807324771277015335667243051287455111305227076922621510652614798139613012054825955398498290382216585400027871828179452759345759816062682566935359109197025317587895850786425123816902286844088555046233861768093743871255003062767791144604271750236904826053496822003468062797939752823723519731070856662324732554815669120184661565393448604754035740573532649735659449189907361608117631335249185747240294914221910553466942302866373906308379579526522916582302609976507409187334001330523431010303777850787520635165834627784483536836655902705583494796129835056123943390247573969305052295130811046709132498820483153789422613223556634309811418309866847681028257155028682748383397571925873474011536646716826293701552682244212771105239091796931923912773797717688015422468834962014009973227575932939177240864634892836464443538761811383414398882353435306237178360377270922206790149131574946123524864980368060944848857198938411919684715248368996081472224187543173353337423694900817626436893163678853454542857139636032750992289571258032414630563428729318699711759456583631036168351573519241152917458568654839747092069981588999971336036705125178322165870469415652062712941883036728616973277595474898327009337617091038055159386077975183164791131510918328012752515936515048860793988485860993081193493801277896709108478408470943154894557705504550361821811546026502333598662621190754572843333406546559236526779679009724022559037666277015717874530106783684597462424119414609270255181653574496408037076359218204807031707800495030515279198046841480292623759144109388211758454223002587105098974340538019608096706001729446131594353931902155249863917703060325109395966038206235644413794178842765240643899787215289854873908254194811268497400341380587702933160023497523314378325068346832390294862961289177107044987706230858455583007253858193699956274947316552089561794462764776882775111576147049901948228432386802734707467386281475267533372012101071646686196160063377135213782113885721215547739721693304401947166534830268285098055310036760417985335910839912135600946042118254828382608059451163333745999330985400909567553128225040676460073412663544062482616605635769125279981301615925942686486995004724775332770649993846444113929558969146522042990812243906286000465035738126952170225639216821773367320209158675045004788981687036460961518460048557414398817260973844721274644195450198335593231768829557830645802089829527631549073550054654111113719476304362617329785902846513191614666551676635064119334575866713781810984156465929623657690836271607223381478850855063886317749078723491919876798967463625454712604409541681977992207104276402515484331964773905581049610001647059895157852943991917985197806089395678647197363890098524223400054422376311640315186427938021795265684299781428838321389598243939588770155799078394489206709170655203496769986054155902105765147715787378675137125473044660334994239637877962711768362368962445967764401996978693027895704351674431509802289865012877454039340739724267160500255878549888894099384209100168173874898358456289352751707911705490005436219621706429404327806279873786676730222852018370415921352422427596283750372997349591431251129239685319012975356116296723084861743231763892988175402470391522806254684791030979628293430421339402288412931047594043460835668343232495613647542579862544554498896351671364445937935735007027731767348845174887099668250810438991556770998488740178829907494844233167883018060597371518899642950324199139880647782140200104111777478968839555108074211164804227507987793103151151108433831772887252558536680132319275233969078693015925808524191590883768045362608975083421104441911728556321464612372029116740614660357396431901332673511383180868544275306115682200642050776276243163090763395746802731529177990810125354943612591471988752386663993748525397978887930776928132087457027296121993908125462554625410900834305204038710838385722642176756302904930176929511528857908547895413427296790845515266249771074342215376569954921693119003567558879719695936089444056027985322829745923005729290225019186904996051519634665873845766286165583709262295490525587150988780191535985441716721357307006356974623664506999438595865304581695576681415188637516729582855194702568148675216121345853932624252174469525507007692700832805350536951638370248262056345211908643609455087863745556884165147477744660686802732090527456817539515713203754621706982626148475907106925055688718403630005305138681095753887480633463299948769553743481082454131098108373690707510452638146157137362035056374120611543698395643113673185097174963434058322907235834016182906087165871016013042159191713902364589705902734815681072289867195302579683764563989718769225175933155867973340773733043216755653910755754238916160702122717375920700563071368437478212135288989798668217762832572533345183230392747618654039192087965652589286081930704035739642080989321089432200851994167611717527353978882026618744562282022053152831427848303386860279965175179755819883331025625438230416018942339170386337835792103203778668218061890863264867419662008345377267213803004835349669601066224138642725292530005372917737061162348654387360333573151227139300475257703092179902691056833698681470070046680713190090063876906894203541867651074973393824758598638628919011849851605676272063568183641257922449828028996536186177766867781410290398847347627179023486383536719884181537764284357906836358790567005858121342784860173429927311498525829426381306584979321719602718883988881367210302529373730687284284252676818495032793295747070453752303208640889188204692025781143747067742104393146452786589638070408530744824078053943147968235436205409865242544613096095689729925320004693722765192645252347104386806162844150263272906125719272577676314022420185623514890590306131224408194389634712598106722230807362487403882344642804839175997118906930494868693118815733589463337313783064630758220603607272216512039408317360771272291089455309972771304131061415677302487550303033119745936782356969206929008684065517843550699097961301208591342082523653831972164002578438653155268518045595065276218297807292700162623807539845317874932145717674428422404980630487336345595571419216555990693160116854568047578569445825814652541056909421304151860787424364050507570011697845159928514363633141919856220392836363769807369642480231750529550137335897960359874442590363690717246275208403121238030892613188023207103014046119559039673478322147276210394285191545150346992392868606087894827204013155178548892421185875032601207662275879486610780619943166946023124667003664069456988033789419169279093056380077125569611138551110682307186263508781301659159665719956166392695240132819371226867383997102313023718606144240281675000278523701329742800573141233771076730526300291885432184952037726251725196654898586302752019858055528655670174124247813984411479456140361337235929100240288001695428252763700172605581740844534308051145690107092006853751074980056229956793937036094216558524012682608620139896639979818266838146426887629454986869869560183587213324687051751956171604085036070219265934907270251099475725221910842445595207830851434274897958314090611381368732186562478051997330989401100475707181898522937844381414345412750827098497919645792920802355036436353509601251717716805655499827883668720305795332335489227358143909560512229294254511059615665989980158806400542294318769492707622211102847618082615964466027043097290549291809577577590269624782434271968425210667370895391287926957103913170155241989566593796288840942869051952349190754939683374338510867886831129748407742561428880242025456470750857403395398767464470647241224405084157459877316927428065793845108082933471369745731717078012150465560773087987578705024420182513066251328457937966934267465917675447321287297992553229395654158286835862563929622701616958143610479646337016816903837002557364944013958190229025904302917933014131985196006053939593015118034855063021486381739005927865937796283974600501660024561924250559351652393899385785832922591711647601833158673958922691798677199264267707228044516574554501282171307485007367793445470248714883718847668824378185985568323003918292507222124723395438145081249592057273858216386717412145544407200077462566779999303388581438395224684186060994650551174949312624747545411490089929888024475117143941471715620484316616148349019046001190929625568516287760436851209221765372520306632610279260457121123463843089769100576076038205062694894518313368129757008494650362783044503424298855803363561984544505418523948398908251480866797159530872371873295246175261964989059205469690840452251974665477634065536705083961295269437798297198225507400872467579607375592988511922700401408992230997692507290824372529302536554584962933437019516944831600998169538217539750893931830881834902561945268977264011060413490804531314501071393769710546347665429387332788496507788911570443389987596862067766941170235325721969700633559801276796321735405701737387345600278846155575539188888190157937805544173152124711048525279597666087261897929914561575520979704048086756054469428312274540256332191157104455429631522523043608263630844221033568337100347482864619734312032202472443932293380297883927316609665734196648139711732905763186077594191418982874783291136684330253529252496479211019646490652178242802165844480119414837560870626468221705278855586660939730849211724889880705529500413886690763683994300818877934803775541180454695193374369307401500438691562902746936145881457045663729762794944061609311993111741804520449283545614699712876823501751445373892838376800720416806963953649250578693080932586432379583979185083667852687093943396098783481513142366452625415249275587799065325616332081271863536440504910181314864879728064836084966650248920735697536217190475720554079269663844354262130994352432518830971353082340787314154948096657487919620704298132176243781081796600003627805961686458583311024834331251029352663857765397147351005221181616567263513538413677555892138833561375461669015061175377649637297641275729796185460065305881543374664637502467661873682860135938997966104887037321299898807718930345582842479863258650832971647881368783693404315869944158405607310517008074090624232298342148364593754066689887990245296775038063088642462354000679205016940257668422673337762347007385086104194711069943580453445570489168572684254649000937125624761059366963889973127846586244379914413995156946681083926325223181911728640074558763410456288575125505680815252293927925978148617475452694776380447699595505060703040572307480234705742344672410312296534950506517011654313242852197592232503963491802465431634661291802225697714089021233932878860417394101352631152036911145392003875410900121740080037076406806582462780508755720410542581570457315479309584722082919046179453753955470558955349046238100816637319455023584810199222719291201617752024446686059009664014265572476843653318670352206558014589136521421488427956558662705933887491878639391231094985612126299412921957055098215904145913861125266562187945691785864140841846629181231277170185607642984140347592485979536413929570029539960004476524174118063609089107032993576012356745028948966724368311323482735638137007848180922045444878697136394407140683810853750237906792549199074354539111875441697879774458807061279467910261059726785068754968619102664289872660415540003559370620961468777480211955901297443475619036901503229876507442116594074948464211635836077421426796439831027568155546121057167915310722177793025457322874537292989194954644443021474349443399152619976461756050044687614144519713784817621178977241435546735467024250734783642218978843024064895284631438816343507529653333478207439874478442439483437862158000529594120169584499759566219531459463851706574494064454137708838532274753954622674721781641078597150626394829117437331691230877947558401624524346731607652792303833610840339322785923043706961423361851512020163003710647339236015940934876141393157801473755209993057143969093614178086869200812729995012689406338154594261804252487070552936951201209338500618267008961125574026292842893977981995365853346768901352513316544784862113897579395337638477043789600054374631526792261265540350013294479593320389950440369123410089565126418333271896351165130651176712022579372906101484235246743785474046961258221106399832604515812547546779293221601003968918351668673368303931362985329988728773133651400992007718115949585299647818660678895687304129796819333868640365429982502489760838987278799683224799486129062153811952781175065350076812703463806998532134523960704085038220311383731246735440854003549805598897628482182550298417519242138199529518355344031257843107666981982362890498595699397614720195040741534182884971636795557299811576928990294536517544152653286097253112470609774310064281021572319914392872471828409399674138326975913701920603934524244628182094162053668835891745861519946102892975861163326253936348579165089549747556108870430826578335339548720604361931381687421184175298180045024624013213889215413540631633023821615654645339912191886658802828303673099471289780816548788972062587681901474865764326474554358647966050544193140078330581576657539339176601496901725110135193032764125437908172466899998107870743298828606321054287292306846189654216257857556016125523403005801973294312555344214886520699809700430142983450790538092344582436794387491628148340152942878299190846211322390876235024637891877012267547630879194532414911410912534877347045290222856769737570216702723515203683228144986530301933624735824640022653017817862306131826734757455627191831385937038694232240607834158561737501481032037951001913262226859162075839999284142583607550237036751437347250061084565212317820690269323271707170180717500766710702438300882134956211420966662792576294753536561223119630348729799239612956100144117684309914435980655668473318377111148982516686052882431582966815773674293017505309619663515876755386412883686464016803290102098364145390136182012310600000775796607677144532374490366645381903303565964053774848637705689195214360679643287026511419820587140996218849541275905528966271743716378701546311823499580805167263878986901169705743325252330668811410230906371609653933829175424740572281318248528656220140842948358903054331768669388627252990137430129882853320414925964724870842887086812156215565905552011876699209953492885869512934925620588529975945981473505525503315145734981302496356660057156212941288201622999848145291580272745294336713461339895499251972614295467134110655087486873567899050526184186494670036261545565178590074743468302203353062126331982820548103883294377278480154352985423406909915122071140819165328421628682826366356108343235666218458349658424351140825271341844670438854605640891533111831123911860539878116762767613703658428481807313920056249047162328232991080660606647062640354285919007969734730188705856542992129141065083105024921181152561006374229243293904732428585904369109978087368701612715657608625272563041379461868532715908948468280276438781968830346901398630993534890439939614131385964628843854485451786146989483635930250233388861386605788253493820429754205348196605394372643477979135529870904409751671425654917341865740283310563786899303765618156623518204755499419434971521548912142520647079290437621284540363565400426443885879915446526504588441502208348189980825237626378349391929908774186331195023335535079509550198504429464600379207703264723165383716779763225510461508344705727864984310406919552119029089819095506643754003665989157129669037382605868862209431585676214169462770034461465588370961454183836781653264671798870475162420027698410568104993479741747427555662383448218723949255987248081790288697917808211307826673882271756995368158100683494417701411035314110709827967960457421557346773729313183574290098817251070700102705681610590925619773872526295496706438269748763152709963323153897802141958462837023585522802977580214061912503939000954972068969229351548709957962168186517294143002365100714102755589431262349994526217425183407314951822665413670711205435950477052984055164144082316040094148593227671833561041031952334848460795236466106998696317658850281933170909277543809750296912928290287182718686765605656010388362597476899331918150868463510202044431914159077236468302553916808891377426723321399471288497759795397734792296789362193099251120066301156617390657573683767636593718921142236849912021475571972230557410057254525724538555650568646053711226822679501929631039458441745580652122388934673777811748771108535856365104804007023513841408394344914958733631703374524744207690310465894028070652040490102610180630714409508901183652829100104263112612172301607303914278299826054825937487197078945590863342170565376911559913371696415252912586550719274834593711307562682233144193075059940067353636503729355007679804215121435197253256056226439454141131674729877836871409967589656307019969560824628014504911991240712185748053706939640389212346469787122550669606965161506813006062941074008047075701309161735077334755648772547369122521509813503319299338334382107885543833236187356907160805455809843670057435085075319940976596533687210434933222806188349920048278738112527503049208888174846428319016539600630466502915620890532294731999667891042999177453412876891030909976718814803093271626981236572060433159649649342053593097499554635341599843823862049425069393201426663783689481202199761417986083058983829390067395145517573549997170753892480315294109011851492614087594473721159393289263705069583299181008620840410286489923463260345642370424824257063909129380801704659653630724144928183755330479486233506336636375886561058906603353162911176597900236530121728575366201890101649815977724729054022670786268338777301117009431851403577621945481676206437531968784148518425893448140529583996384970253959762126359785945669110637060133227953341910530379540425978304137667516749768787465299649178342336427000745475481949471359866806915666645853291490308232059890281205878126815767430930721017613582263189992887973230932010149232126373267151796495548968924776611843154567161757493938401616522907844089423150876687054665275793238805549126661693777598953925561080406938118224800051350809372046686020039055009141165394481995941732187190340971882559072629584283719770085817941850701023924759988289613573778756435885496342561146780783340518710951312575999931805190921902266561569503928261947901601702312243305754431260654464625008686622748043866744194420153942603811557827540000404020712181901315746401093427335748336101469403685451256443203470752844838931754561764631572209287810279912029021892238282470350546338309419447797469130882924572050292206249855523551056541643045762988641768062017411348089234227288347454320119807266068956925882293270245447753472176552839080617430025428281598287674713598313924867754531846844608380481508156635419462565813296359550594829076330106815644966517880328377723442649573476209397575955793063867100477743934006498340550723621811989484482127172777851389956849044762700861312697815775722954647603359273556343018515256595829201382091502262008800317497285389982150390653559331282828353022910424849910104096008081292273713451581458295962514381717546634167630658001246761930273939749682827160964943723113557562907810196124240298111767982618671404839546685238558072759405609329731240555537304479929325649327981148318332021373111562324040925444193621712935732155195558269307036208693910309562625792884944657181752916336105084401385563679207115718885798851349629804275613855008281669530390869896208029030355380062556321403668177908180211648438779482785129378171151953129206025349939787617546408001885491126509477377940338081385165821773654742122319328208269808040149053483955039643892782029247237348271696437467813541562307929349307240336751699252188922405669614699681473878851860314289763537976243242698191015966561818629392204880958915352336772256873643846681697674177357449240277324427185217245824903794440288306738445640018536560746541756053710825468179256936469644180207220767950152974675083841352311356162549952917635141688384581887938427692077003633081667441340571715043076445505570862019621875090213884932155884931463611851668192193333106871041572192225845136232219900267083802223487321575797119113968268038488404028145926959232839596418866267961493051598203711862831094501976913355793881589511415327250422495358886450529525188569766476775406419896461256327822597017023337558520886222182600285359281446308610907067417161261230022530622943269439780326835730088162486844963806183381290631720666982539273397400494758569587351393454769511348187322641752631190577688592198023732093522988172495982321802051416465423317460267710479573856951746726028070968152504373358982055047400803013301755815227169530967519720161200920566230877542871069645863471374280667516783193735132565221483833173672308119816534223980262474376558947675692163436877669156494799894490895333548260863798232539491667268994167499834770469902146408996837582495058290814533142200622637026588908567589263050621772504590274990999327919762378666652919186395587687935663877764742766951607896083931623525292783250364155846780246181598805142926914406989652471948193396323136854634186509092841382717252169538362006323009210996206249425060811181486751298160865486378491683891420244074612537349911807444468004565780723476210113068446077979422132044175184816160101908431185778373692302853393992756111160625500938380159311511135907852162560485386914323812245904299772946964322273715189525802973366045356007075343804126696705867914369328092183041139251793786077259043301053693860564531228257539431737223358522116815430443635849742772083634227879617830153625028018585784844259719867132834248512769481082148289899874543172209779240360832619873253615859560141938413651762588232316649713661871498820913042815510162243911604524963384256540786205403968475984137295093158148777371240187179778380478989949436542977673257015705381263785222746972467874241300793642328497818478384187095000920272327654649817697185631159468301209971547273531735570252640974294862538148140078594209375626383946867371632446500669475670531599472687811256170460064074445580742901999701262105369442807140922166151821307934869897283700119529308107366672854879857871482235316879674787357526619385423624000713911305675550338852901423771854164892294155671638458861411106333383120411085276458284026102555584547225937596187234636430993963801234448925565298982720299003678439151041868749582442954626212615552519867450944465290221964963295540000703852105632196765824842265073312536205462602686845226609688804383804743726232331616660159127936881995940502571999932917673393102710012595360946943796638596808326643193164965849633977291944145183731667573688536451820230238148263770653011391128913691346249132791260325353459199163234527758142476660279547954070433050957305857105121982912094431653359432408468138074887538729708537544168280660988493506669963728979443165679268763670660592266495503521043083435714033518387756174209630866622504815251137848588257002504051583861836164507635919756645647121506198985206274610720778853409008974133378884529056064324678372378442381162453960789731143333706096052597301996509374395456246686628124327527788178576450978686549138923396145393872016099547277316887599733216771184419958948486142610389151875753635313900844721671593136105659055230688227016390060464654237193404309850825077350154851993174718357373044915069497572480079084269359829143830931389855487549423227449491627921911744168176225851532923090627028862627327172713736747288536386212322152156598140143461744208641223824870184217621137984800128918461150291340723510400996828163551558849625934702284245296564463145812208779641481397405213189828785428426965782243489218621245340214229187382487983128365520838811022350458713289651197529723939560011425296402196067696795758147935979993141849812041111542822165132392559070987481632337101916113979198131133436287560851913682356263775811195201592830109802456170110222573672111807537839399705619783478589980103958642732946843133101094687964634297877722682194448056999245536854601675335399408618117622592942776471534124000027690102741176192399224871721293219882821321458155833081032767665682157622328610235788886649557570655197671423095042057620106160092703642002340450972083564857718166824151192694485068151862935190561171280365926782136985075087749822073193348619790072589775826641428063197595598631453709706547766476800725878500630994010878945547097206380389483693036970026974582925418893568276976759232867767101698035097327693602728831210398704047295073357317572232713912886823089697758812579145493793429853594473006165593150559024506929018029493965319372764130759794350301861951828494006827945565927733810621490164498834284750153040835721432245892652000275214846886135202683202012356504519019118723235591670372329790345978755069469277215711471823799668074639072294512299085346532617467973382168394091646111762121075682647338261461487802212088546109416072495014616471801755745231575725649165520169646279706183473704619611947071931661127537770751989446486891611246406779934062221965068659137053103623391875928196574161078398298795138647707406451422449302925240762368664335949866113933096820043150156117174402845705892934250488997230280359024388557971513154588328461904663148881300544616501061916339253963249956689188558120768329613750231954026330963046940512479868495658727645287697099156573617747339190531248684494625872269120955020707217071621879679187760705580481015192295074326337820027918311553682643767887579911981167968873963177814529954425665773092756714329124847023022786475224533540251407909491825462535291014393522896664824298455993425575591777585758242352338973747484463340047259313572926244839848777017654813188066970615022889309610656882030057928247768456505759164018129455869688032645811705112881260506082220110294813788676234788832482528250394668865604791472434959362408575339314941285595065802576280008906356881492320951921640031880972999198025467032863218567448770476679740080524449412301925770616860793333772616679523723102256030456073494572063560313170703759627214649019425087954259668365673496784779640178627750094170839259651792113718885026960580859287154656418538911511244828095751369332743829787840259129242527015238018394282776423077865998007149900112718626725697797493558585882762078441921011501227555741779763862705852706545988937833296495187701152644142164487520863294241085419318611140968276285129014378480234391248047246668281527727431154896462556708029122941047036654412796194587245160059110000895993476482685734682460496951136801911314321302307246634163734250901921361990587934861030116849136703125159321122314328916323155148639038920490730467537906033384814622379047633637202231768335411432973333114189394247379319875513336595192369206055641815362927457172495382044574747097433811199825206939055925739070777436069154483495464543945550651751304659388351630848247463410990519949623679710358992713562010978505616249952318905021558146844677246361554697831683248275696313571755831470789709172877833718048519895459843828596699776869250594382809953116380964438179977603501130870739448519285162549058903110872332963148825592074274014344023881471254559590700119366547096738912587270273568527307775193968862038706430537341996367859408521578977244356095538320973712223499363623409298990125319603399472142957874751476855432173216712746227680332330005638232707227545294942172575194125105391672186433585944534926876922082387331430039261354663005729636733155649097959804899247266938645643746202249683380000505578982685667696711428018767262177865576649157700352461100932794682563677161539624379277129483813797234472909685220531233182015789584479574840496654262502039567468235473353258966746482118862207730244164139640057439589934451240708100231076667283429860057554936374749864908555630488045734980897457849263197751447359585777356307725467852982333254687020095719748961900232497446877253504533172730924230889057883062072728554985674679048486118049266536573811130031825472998778742263224505235417218301325634179543964983867938294564119675227721807970795055644450838043578920044101599100871056208654575358619881337544255212730289424165307580303308079636039796066642428157932448605287249560748740903618136406243020176522623955868368289209627492460911889429190221269876819746106434478899463354904936758430485143499806460954496732887730015221544029568123453448946932592349798557860792193479042487386442067922841925132730049639053883815793747911629959337347104425865737219183591342311892468121510056417553783567312752772033942084577330932293933774147462912041433642375845322780010418199175484164690798896663803490314042085797512767023436973090178204120231201633237068160980961937623835316642814678085660722089493781405850826582561206415669080391330145037873747008619163420786896584131327336331436338237259869247856701081988720614943101160093264302053451943668673098889365873618527462830468486508658931662844174281581343991205834318479331438251361257686530937757477371966080824138797890956863192427878213653414535171512012415632145577261257171154237575230435611185589196631444230869366705119913815340322621062159439742712076546523176519896642447526204715190969891744551184374331256041120600048106283417744951899906102213412644534006534857615800633640466882739220226192144757111594145475705652435388670821749955628890890167708239731020519483887183549834328808886071103617690332310781379630557273898112912770386827993216590405314689632598639194291520764412183740533566895819942652091520607223478701115078494599263794258273810045609373403738470052604324004765151033974426291589785942161902765461243710073141533133956067012099235705589355558643733246623936827338137666098856138608175608552575188182298236562059303984802684689256483157272038196342750244905381387122728365381381741189038186293706687965527401835160110677721544274876318669385166526891909669324124145765251754771386167907074687690502863083641493189655956235427862455158759933740486888805936350947640464042266902373943469381319809455398305963795278500402818801715189687315831068254147354750483209376687988786820162497720796546229659986970928634442711878404326348465824167244160379004862906335227396263264368969521863745855477379277081083209980065603785497861792816823801844373777396596758291322060125539286970613118307574973649821014731399951378011958363046578458621881944149784937009840275600685498026335735027690350133491599941063406154707873329060370723116124034187055078837900089817694702597408126366340233205234759494628647720279625211368644837784212775470890607510255301454648072545962761137431679308322714444951825155320253068899305853194831806190976281801667723036121660678136951717648759790641767207827490044745667114390302618481170988221888916649639386851319346911259894986247734192221039293185653734628244718989578758679611281511099659370100378346036699083660549953931420999423492601951720056003498594040963539910547277394697990413578702263206920254549841657267742794639612974391368521794850340618077285098742812276901141368164028467528875427664834717285451238985915716062110621038611504145324978791301213806889378088785741135694023601086117274749076863458679625973610019911702986963967536056330358598505902404485705231443082279855858042106676069784668585613992053252487035554585370101077350088649519635411914539954755706552627758435765745846125841563107474953677019045088460451789610356300964498325679803052637110090348336832738009258557839639769788757455040977616660990279542918858930891795098681231156305389211681423379581310829419130185387664983843266604890968801860786989969463951952355412235444495109149042793265931689165384524647612102977323804949102697206319731445768722301888645472310352033608803273451892514604283782723573738137990445139646145877241578009918294527691148925644955445782081125854974629912272326464903975079642306002619452609812386038941728525697644742742928937816441022597827808080938118848982866564507504699035503682364045702878619264007846083106256689672105151078759980626053310210012235808990878645255277392745448389494246097730976810328818104837755849053575436985478248720979623960285646337036722444725602653139281324322602774944601780118006435380465617724182884415379327973303165642625496445752478522515140333292180299436366892004502808793014583626559274530369320858199236858240582449286797047004892934103674324968078716780528715571526979538731761613935613259300309851874585260746042807145302953344424836352786309151458111677033843498109034713808687989512890927047103603336771077814083484462468606147254988365476714350789716501445276993860022792288731246161188868651454875712458758319486681960713512978097342890093482996091613721718408056889128483203073780439902980119776744595260872450178788482758220314160796646845338401373003633935223913261746422839714692012729341080322401486297890741356362043551958301512406087823579905459937055983399639642725428884443219350837396044412680349885498678014241201398479946947426725134575043284161152831893433625782555576248604469892081082951581213080747248488317379714406575523709296204687229229750573904325529358481198026632909340398949735809290273565026520968628278766926541661877936514649996335189185919828112371770580851290889147989502296980227753697818326436580306594608092400801768907232584144129719282424720380048659076248329843266612530268510334990265765785799633057285781580448150653414729103401186510752757591462138595755579846533174652421247970356296576484971699687784598414328136415062658803237353726720510020391872086548894049163339238448057175638872509301231379069730344640283694891453218747968903689080091910769648752267931968839730831363285516442848545438955119235162670552416610116191939562321215404474588449317760332645864833269999532761311560819867303179877709688547320697361110696873523008666132573282355451328892707358403815808959340954004776686337388220989994775888725251392894710257611581130581373079256950891110603633747143004818074544707123585696701876163044024859281029412448165330430019767812518488732429146546537476530840785629909045373784763916341069713494831641494317725925735989877414104258525650646992257533386670229379992990248338449796361658260177037602404285435251468929382667737884010050407781498010651565529747650230253048184829022351663490708944987681119612151065080708845289402983031913436947886071972309108790654545592904426962102412650896208002377548637921900582213754179945136773755029344213947834384540882496830055969807227427147523461863844963300372011058488444262822847183566951057836418070908711811976341346792304827999192942334443433745265711851958275817242955697536554765355857153715878867315582373179120358194336859024611689549358454843810218209805645667115227811115286631487979122410467150345412263591740231050726757815651690794975354569546610234350635178926282007387671578418448532331264748169641045009329526393910725514026380972345074214526634679124879921950424950639835057563167002422209788884501423549332644770854207329564200647999045672828827308973634240163559815127165585708760263193476035747971136732284425449546141241031441121365329590731844662678111062740199008005740851336021711329191019148172385811035976323362159445906860688581745827210663607832472110553988228531116230830772249320718760314283554972399990954386747911904120640958163503069215365395255939829108364440577894768655906426959078555889278014811531296052829739637830522396568797932913415829562315501056197500574788258435068389480272013168005449241765541341553672296781867226297521935729676215974572929982784576999581857012470410652755234709316760210887462018949830999056268035473239191743880352852394519685590226299123405562366816842026140659460166142689816364896322670567145452761552084031997755218112222830694640282754583090788009525538267001174808944008582442234484090144393099507604587499296092919448678728424465529426035504015366304857278457506789033420637548565180260586465453504923154636606721495597923199612838925660686245382196621379095614180948196268023483737048644539098579604117131070124331472277069438162426160779174735893060403221611731902362901081241463468239091014747845348126473693937803450866902011785409226918907211390842736264008402256095279536622268780363107499295189633493724780784246207738545646297469856781877946413327755959495919858741916684478301866887582598506335809530473059262795878826628135669574185663518366296779633536616256900065883452847893261230794253332120934313098617001394022451593986301533002758857448261555201163216558305401109024799131744318609478889442471917656585739383361529389164631578777520692609899223778427210762267547136296772652833826045803154881842918345790562055852313846748688098747574182995143608952757114896969846591330551571824901726406346947383162248457029568821347832186005021975794932795753714019469198710339192150346011748954935005764831184800383210704551000319729946062669081703284652326380242248581740354229851081369311162482037815682402670540265060927629574130039459067445279197996647299332750032387853445521820309695277254118331319492983745429967434508349456920794558330895721941669742554468253386465610665141619474027323306891805548871442397014824881413024333221160282289288031591327546040639314475650451024707847827003100830623983379035059208538782367438487469071591071661383527097558515843491321035012225586592857429605107691468925290223593827912711007177987873789790206010405379271265542602785723538506654446667038666314508709916557153712069207844262872580323455856531437854325903901816838600532754965792572606903799575988813473068888074744754711193224014850571325800645281485106494506217879717366536758124185561781818650925659150896785883853734600693514976694020085414241195861577381990261801995755581062254836164041062076309017585607457388473264507133385756546041732533711302801378940793857936433995336278092312108397002330283646942338620299103313769745072519281930448106053614889812723727553453645151798438699737572972344796175412263854325015231780839725572687850225687121681353425390283478101919154203432425934609133113642510731939943370384323886137588056827156164854936538023785090393483362248227318207409968453296642006626803726878202648670578298511928450302215815053035641756893775421063138794300816908619258742869875467550923494473961567075925019168369112930377480495519909703982336382636489135058430399648195723621157407725768233699070237446393542927020534604480383102314448114591379538474923915729431278074120440608030975872966973107181984410669334082604969841515771659295519486558164867577942339368988277590035789421276160470473421167218792048876942331963840544994751115932547961762393849853824019647708185209486485592422877324966873003010246261044667690852545609760525276754260972217580423153215767353290753481536411137564033449376447731570107441776235823186517003547205375940431782459913359833918178190963298981513912575431913898337254405281508154570310228968029957722750833121165977042219982689658324694122451128329498987297002528869278200885612715994977513562152414462120118572601525246972290915140464075319219928173428032761859964570258021156017462090635890751861757530000424919672009214856764015969761597040573694259035682705762172698082612584580596167061886633284026338564828642610385930749007326146476834590415787979304998205059043213002388639330297873873619627553321859580126622163258466407754647657936338085449649570965549194681612051155694391080796813539384605975006717950631025612247952719960465708625384312721919452003105093191236947954585612237929584674483220803838519266315323828450706222355416355752016048458595787727964356640792897731517789254324601637419516533248548662125998117972463576280561784916758392325772236684392313904636250636402302831723001378553839784405960356833268427992665461606721109596063883424295043002336365108733945914246608246878679142241097259955121353439193233952088570015903804469826631106954585363846429954740680406796096334008965964761233501181547182215652025938005625906215027290122242604041472615840342781626054598733857245637147779216047482744334411129673123767611986297866986308024179500473099054868078683929009975257836056842325273451249388464642611743784590176544695409651594708729976507112762666117578696019032897428626383480646025835183651959147287102541609034171076266775815046516946254495799382899617866660985727357260685506695869037572305499557209062621713947039685039523631294487087415247642250606521669707955283041281086860497392295365924315417259939327074860795667414593870684123275004166908602576148758879876235936734754629304596834705781824339237473999249931821377630383752990385151049213862685594862282898029098604098401166507322289995322405622348477842690882777333300252095707163878913757283611131615082824058677480612837809976588122450097507098479143992524014162240532859851784060267753381922826784952788667245689333759451607319568621685606351203502463099283741850780760420477384305325483876359241255753163645229316351178652228232896444831910269247416363399928053530936659261798644249549488461748132899568137313948309594995811247355548837387112521903370051546804023677832615442406566906224043635791995891916187319853048280061974222320988366936470840181232141747627673223947330600405172628593548541188246139912254599360462896971413416520309350257355936126114513964764664902106275445737497714471550805888268603135966157597888808251340841751240842314218875957026396166667684217885015116650295955978618415960547920178554811646541858311314120912782845969044480818199806314389038052207497099964459268042684734454155781033449320595015632019630539762141807399086270848064303217800247609014397715642312007226354349327379915731551859110065247277485199710198477976655689449196716486168670790375717066483562808032596486767340458420568650181937024269525364816955814590909365907807686812438639934256553533046505678506554865557128211838173965998363357678030887104057297206384819470482333079352209060843986280183867089529794945590339803975056823449353678374441469885388804528100813606255832951931121193475177628452066519222252738669692630025665605713798746774722632191103954463938461218455857756926921127446965654071571414181979492296144640390215239365217131970168237910162539056307962867690370366999872010105519727588390490266619397164834811497423911738704227142950498039184409203535350564648264709088316271727043914121423842292160092712912360067010295249048268895285813608494320353804135696451593092433827730106982907400363781910721422010919069241872160277555804593264901521505941423353135286277882691268505700877094417670821111780339161323107788454769589235628606267690636811548086194488650598563498242078522482102735571711682860437427930019053242147326980760359336634855924681912023947148092123328418605006258537910855539500693514325721418217342416965828916871047738311059705099813494096939955335172453464547253019452500219704236725633941992595913903004372603897653397233310189273199803667869665461398075380015007499405896396569604444634104888910187725401758136482992701898931874351475719511901643262456514200623107476545219553062209409076226563967703182232859593609028162523062797685291067138807712746419025705602446123783078902648548600649008785877722458281102434493870661477445356793732071453340808324961036860031648711604557638529640009288990565903880787201538168686057845360262395376158436587641315689542018451668042531125090612805758605185126126126372701960423621901669912907552891484255000203166394336803204057114116042375798035856595631247499469569849513586761717161486134211876492199857402360452581553140087609299196474462881338290732168822691315735551490184217278167785213038366037635612900768544531563881090587180694081778190789574514335959383903513995923221581547874786726203342273037795254810134334887011269882527069457297044292547385863958940316252418176801033883738925978285637951334907225664398213604080607695122990547942207745586977993303444390441999735760797502802035252928636562271663753010434815414543327065339165099594673587113493338216698948567055738078220021731209391530078265261286845142429072659990570958254860430354523299996515557814617689528577805366548948592631729117062620382979801608412159318818869629028287157978717936884904025766919694789119701664230794471163004796916602963366541165671412926658386416765584258346626506690416995107981990415638970961657836067803458038588754904398366811079462592280948439890034735745765722127802050766361242474530272832779197536870946026921102641285052046477151131959097597847520095406773721741184399590135072729305996362535527518365125842604722808130501701636458298879529638747352394422898404127423076692657538919129379270227358715890678007404859216483963090839234039884009512873222983061853071494441245528974454318958561187400018095275209628513711725684572621954387878592562737224001189285921097359177445309099137601857105133655268996097982796691301664713645669707323708148465349387888981009948329822204546100201720436127512031538116582991015118694304911447593744151199214827769884667239091980921508515824456105200887185460698730137255363463299564455463872644523269557824381689553110896531340698420412186385006905379902901129655602973049646054821960184977149958716016018632187928577655514826098688914664178674355486398857672164079809930784644700415892529812120080775469404448690228534770939508682132340733873815211764044476048345552930529995893020716502131845576085163782416290715979408661795263226509087062500009785294598803412110825577607201418877274907101283893632437344755327661099462982029247845727959599586690604600010182553848674565658275750715858729686771675111487265212206589305147029816991145935759706240523820427201676090897193644031047142701890112291972783281602113559756325548699992243388504519858282629103818226122655992591597082919786233193166881062975254106841171086259870307144086083889081617340183945217867616910217840007057215115331818346398109048550598419080653798403931967652618254901449628263813136868301905372776290221408228253205031575814491105214969340080059171842886747423281889208221098707510096094222717960611868752310865130548794073032475585515857271295685166711502658575372152497020735665542874804818838168943809294719392497078342691198162104713083095702791440448875294465222880916426932212089143735326343470189414186549875808544389783754276111604821944985733991946416345105882759641507497086868706533308767468551708636722004133550690898227033638087248324773623842767127299827900047237503365691359648505894871179717735895375235172704532988089768706037171689381311492611799076386817572277825030379948105309971413321067911176939082497857595017347343274863356684315499742555434287981387288858840828665550630311692303426240065192461820851294051384109438338309943373235611840834156109525474454266787441539452743808547815748171805542923017257708254215514552311689815984157630331041024867859344513956337205688588906905711908399969799521334483952287592283977865693169705450275524986037593813800658952570565487153992594249997173171679762518307807180065173051529563382632793212718062695948063416496910211160236464323589047724347766517250437018826211584376442266662047512782523518870217898027267280277118227731521030358726420824528988433168315791666499256821611449903424669515324639135704780768526898998489320525337210124674485594511686982516508631506559023350608946133259647585740474307164510219889646668576509308330045681872757241680767059216043554681009292559395648953329502797156721892027325708150627709071738710313238424960099196766657262124887134992056972358693324073811177055732346090215798472234521382771579580347220540258966441539053412137447005089033871538349390783651145807920272101479062979899235730340324996976240607889732184310882449308266190802622049990112859749295562772174646114689939294010594942097338175943828780250444099687534019038860177170124591227676884675715236965521220057724245036539737696902851785827201084335983398454456817840625749043191708774382410403186714142041720368114298950367725654607105012860183188433059026704135914468999688471783347040829146812415474309300998153842585056327604739087689049279322492409534991903416211544608213898364543627345255421371578915213206037656434612877334642326527949078838192386444755770595009119444142257604748727334642460795924629817046415346065133084095714764871552128608657847073529551768127582320953381637314429047417984026893595113836233619036522193686948953929298610560654350579702715511242608643085927282057320382452863375360040537159776632209913491222622982155246441341529456551577015191898692407298625805270698483128954807962543531974171285842576611402820095349691802167787509064096388938910484504664086575037294052210411280009547319660046500439442168485942209014452429272225584905936638244027733283626450303053353993096987770343090712332576249414960161079242873166852638845275126706030057076410952614298966488181203960638734084985550094173219877966753274996201186977256904144690206247765655350656642375914691733307274891543405830080707221480983167748193021736845370021228649151994480864391860713650673852662802901568680073865848269567625421052986411659338692482538337878752134922296988954977033420478617409807162101844151617722148191100437333711693674308773266973085990103719739779496102842916186841275756991398649211424787814353108830701287103774766452424063043283708377315256119447305575523791098461773531290644241044708945166904880695091460731826894492787888493093950009950702290353435392133255894765250328071052854241242946878306631082799514039926485381943346180295601431124328564846965317170173912538789746660971453942277274101144239387958959878910545664104268147891162685728035996783039870978666344440474495023780537494089169791738537209747073452739794605724927590824927825833506825690837808354569363668173955915005489117122945893425019397020896398720423360813109299527818850402771287385744354705819714490571304159192507557151185687124513861708461376219948138815550829388483756914525902356397006311126012211800437038477707067215788291447250470385711950858809347550637483829353177753808855894117419263293749543000850722248392228754394422626269598191189695630525279099346294615360936163549447879175037771374159070623175967245583685325998421558810316256244427655499025327501763136294312779601191643050971695953211299204527177449654633602651536565828841936387933775355221000752330624993891708860305513498245420332860149882251892444978971365438878760732583968694123983880820433462661172204379981330742351367849908458648166662862011101678772854932272589731796290083893809378368862243092816036269180732135646537153505048869164778779185842773790818861314754357370438396416108668454477860518569883643545539414674488362256907582297656680517777748487429731521740717222408996252027134463802893843314525169836380731179921467836533342174788805977284261602035843082892445143907954874192059946703109376776927346001157263547865330378705088255862616916954752736042627652426280382477111290356531092061375501041535163500294773602803042651560687044503456586532737488831388713636012808339131268504056973058262367506066185397615704174217427594094047776629585609930464445369693571312353313901844731016702853668941803502361632619326787257731214972498245087303034204762585225658713844171927986481349699003368236635925882060107514213059935405118239822139359584242128868015569496013163426588392290351702963854931431202685751720924341677167595367385459589156304151543408885004160670533466540828130700832897761488249696289240160421141615103617977793210297134762657997940215469978038778479401598816085214213535304149794348531891952830115750065558526423618771644236083078973458250523293243640264375924591800563290872305076297036484355086967621331082877017716349377640015740770619290997731183271570537209205365402970776786726653277933085996580010922173623890413584279519335088822145436519113434014342809428932147888483073872577049742533246466094835351665781767074465378364802847096926101318645029312296165994373555820292882023445072827713813735310873868156668468058416553952406315115736792154911263247750126529807086865320787180461286792428807755570652927825941943007588427801209591016637750414014314456516093920421399550727498787244571094135555045015722897094705928715478578423754955553068827716278606818246476471999729800367332877207475226535910397549640886425476524143137886190662271392033748303555382843444764459824363406532781363195780834389918402072956331227424040632911369762268565400010623898604781668629777784031279489991707396723067522162950965287896315037828467679161096745584887359347549108669196172246037943326536717532667964275759439960499766806612040016533028504949972860704275425093720773858637004154410260595244937075850036378413818607795676066806461723429500752397765145943294896719001839450853507115250826284545345273757796912248333719234276158203080146280176756282502407146025097160563093176724593076048688248790053847158052075074482030526496689819994025157949423211590278410432542583533717778889923951746366574326137285181100529275734664184818518156994434040881803768753519740663630478337284405581819299431249282069957456142382665305098134466430096988357988999333648249647226676786609483821820069176447799515410064831495092340231329855502076012976597654825143221427726580666575578245211435118357337237730492437142595702958551587115638880779956709924041678394507854184745979089815804130829675468152034660396987843938308183923747716278977138284443405134095116842773409217690725247631089224446647891168794325132220073651534562311855013874215233544503089388539861014611069074891095663596629481504685467562292894151089237294319319561491823182561129060258364287817219492917534538823527993628588963636795180669943553947379606788386394329921827855684125586779954979546133028786214646515713991659140284587348702705261069817062568063586601281644979724666816416196987988677368474709635196349675767724117193889891161841016757249065281230163968169315003082520148974579738890015268240237779830972400463108506499741059120950157077584141489180528324673061835140951749137078851259753482476926500423685462358436015970729618280443091680263700578592151137220121658572233654137444476594139549643955313251616096580180992087790835257903757726750622322518588306075693231895633747331807153668699884986386914370393791379690217509625869284257169129054200208155469777726908846915524811744999365707260485043950809189432853044749398963006031851877274582105246557741081225485874613984102455231546972860561599004919730133874530431602324644992651250170425989598182556523887587795429109096721908835535777249868613661528049587621544173261930411792496997142364803945636309930720835169224953962020083881511918372444522752636688920992957667709566738351889661959616053753500860232336482872126727945718259271787177324843095828273573981941079466564284153735209789228890021037317202758664290118383502401038262269418554517462360055390533684447990378023149350091043351555983611865012604956960259134576936587622265577063207518025910297097449295178885420211929716912663104142091401078642523861320813476345472977531744085673221032254607393016774189560202729920316247975376862780784597105213268572645373624225531925095186171876013451124337629905355546195917525480430389044173761791316962743448785311550195253699780779344712638424889934358191719567296122165205346223085534104546175351602853035317060140881213637333458637474490071286834136213074664314991962645876623832479456855495264936646501737302526991190873488938380822049031399905056275443988904463472232565858598791188668874080697010320268203991645965393982763139767575867563066119124852892485699495545274758259583805926698056690931527911877302059789706313787089338832207095089767335300855561529457849364066391245229601266959600962624923623543500671735657509324621100978763878594000378111225548186286591913026546612160749803532560234435636763124118158964697385615082951931800657154126306228994298631809447088299969778236008373193275931245373029308031970839167921123822037759386912820570401257724448615797828970323720982431419952191356933990701376486572379409018973102677314647704915431246335314923116498284611912232044329798798865455048855028172241271964129621425524408143383318483554853164891565559472845494159518329931788517978572333349821971674522093982279470389483093870068880950095001760186510756826190182122598791106735765741023718866272469935107575855314875850606889265301101838718983521117215435351275938264329690222339493804597637855809073171634956875032708986570450916388205248079423522275356870825602603182812925772700379918530126352379901061942595703521979786946037934090907681690393742403294222448564906242924069041355557978176280993978467808750873788927217350541572168610625243531297175287017002171389265268626196686871238222001808199810556711287217886692866514086857307314203026029417580061475433969961445419578017347130745325184665024873918663122659126015660236378626652016174160913156721283704302383185801183603595637611440219634198851777358715380279808392396230695928944502881270771132659792205383647524900638650538467352654712796013927057425335723992843925668211900759207612282727238608562138276534993392172288313289294444554185591185233251318300351279137925207603882293290768317757284347671056843279974476200796878545960902303706015474437242611467397637614102508918193427878230418831155679580454124311921034413514902690955017999960420723226099427493619621259445847015799426738408269168070342003733428173588242204803457761918055384418670610927864754468711090427656490961336789669320618650990481167965986055034049205961741584031837366244498788910350470616500092549942339456621656246048636275236757195846212709710103586783737628594551903569480784184420461164274326860787480844054251871227322220026214347989542952826749324038150098184804657007841619183863492574776926460569176755318367548227892033180272665310931271164367933819622800959541330478706842758615783981596678635312212649107416283403637584898673238782661376903593013623242961560311663457950334806960414680959998514167331564166366106381359333702910558095186100259659693358538133702667209303857425742167864290636425462777371245161425008963865385952758013222891865379060793284411531239571944333059711167462664902389432667179611307945823104411919007978388171522300067009440024006387592269436228510839890825228755833967504535432742412656453948010664801879337026477967864356301541959285025624393698024440700414898101285038476125576653219679989499751165166552568035436426047314998069415767114957179087061914479972522714795293279630735358761120758290680564592707528771761173126629456760366335713353483622574923160908849973395000823908022708340184421860239715622689469759011211164176352819617880020135508986069980355503955076960175235571734913676580503663480989176623747277794438892098679516938936159532508157610426498077187885831916660258754558558020712496020356901436024116067650944175116399552511760463554583545586837333273783538558665765175565323846658898639838629579349798658078391202883732216541805510150451839104689209505644292618713072718897597198522462131429519367378454725128419139172808431950208148721448681809122621419507962485836787251200849590524925366352557539713012825226663193126747271170874016874019818205300956901210799493693240463863410052260628335978477750993619741102160991533412417456322272914289845315460446793246316585082059900844430445292356835613059585727698497651003576373809488904378981497133894411215534047828538341025158627345220929813789580151252679590501688381107977937378523140754536423832677537259113972316858792687904119567525558325589432624746316959593237932807739721523413165102332695551004256713478165687894432590102030761299318706117131114724468473809876166132982158952373367323567167154561417555162388079712000152345311199454178338724608675919653156964945975434352624147173770273516235218690845881694332649543609630690327863678272173433787234212201277914530736152844291764593757545276655117361662493776258341232669470386618010995264161414469436866655412146535572510882313260444302059478295706469642084050663972063931736507351317300388044526225960365484863659694269514837219194053748866482246955138001416617534413109439766963048925949723208317530996261430784529933180165084520803236358264421016274310136612985587054229184691858535800025965709361068886707408368708490761257994716413099638885977280605725438367777594594948790395926558763192110322765058387304399870435415407721708153371228169725347084804606784815303398274253546067361331062553648078235171937319763829231976068793186399739397093292358465259252548784756066958736726025074964686593205347603330267022587893997155938467073463822210871654311598711083236359015069170462543351422056150023399316362122693161416451634672248700890857559784286720908705035059539110285561256499135175964493878468536271880164502150234656608575440062129328084245635478066713704565685192593359224746434449681389396409572880300774156674090238261424501639714899267150588062140473638877177652091612577430113475195452203749089616312210490435346518019000909935215196404714588647735602146512247941780590042351820766796507858002638510826166678848558950749158645126619309838305834826296907131706731071719728080776848480579658754441379929449107047471829728017872590170340333000923039253806104167548466988957313506803868617426399244369000507783234698240692427033122344253381686955456854241317436885767212185233924551451954366292887749040043945594665507408427025138815422580127799362494827612553010957594107015575245701740197885097699952595617208689434091597258963492835929491764187707351188755733523909753386139046117441975491085823789453594881734097886394506170092273558356900405856227237806491162179925752635876771733782545081928110810215902388311849529597030289045463552392776037669718046455009366389395271293756618364987721355743227583521179617697402893745677711710209601970860998889197482278183406451496324019134198595466675186304382178229805364768085964134878488276513359060703161660080738564502367408632651047956555552390569324136590617673191577439406138380081622869421478366058122796601378688103642239344928990155827756047672145288752696518498409757253114126969799968358313111636230166796763740682084735220764819875198822986305280182288737400846335839839835119179770057824481995867123744072885425542588206733038659351234884997970262313428093258461206187314490573933429526185556831586472346508233563111689903929807462373018589617512746201102413502530165047359873912996687731657887933146811462093006882223088720615833096858364793811717587232211880440756360456266510160834436772313414846187126693943558094472992220580954003417477116924948572249761131666871509490601304242787861170021809547239131794441841677024576301402297501831938044884481604777014040813741893954547596552735396146035191133930122313329913329256507989652308090598585740695106919203279334733972661495541705616616081542952178792420850189261589084277089990815410205163517964598157545596880694260180013035578554702715987600680733145181619407836722122385173317731783658569999622159384875883922489929110687127774169313747256956513343006306522737924551056266921880807811832586731369601120907714665794436628833001440815863098631726419063330440445080582281128154889161983229327318187999588512737838729385096990500690958150559968623777129423176197294040813941813602724051482082073795136314843354227939334277653686103525407725839996548618746068110854415993782634421838393844858485290353045697151099125044231382524925295400896002776538738663574156388274314110235995339222746614280895030235763018473899695696878579647614813385274626000172840076610353359970011074295886179093448568823861402212026281009878419477855669576706020829729728493217283594788507478562688354139604520503273390011597689975923488237896003704743509440126218101094815715133050052696734750515957930241419246771883779907897096741985620620603365776260662003934751458951212313889676805215858321485875621004939827433779291000856345960847872744334605561848216303387229105564330934672192647866563146898144200381872110934389738986303817212957909299112743076719777291578376748546289285218082039671437850793363736950077276642667558541999588569725888941718854732457041265453872792938355542304128413701321311631686167649503182078123352807867036057531692611111413192742877904464559074531083030459561199477889297649507064639716814514629453124294363555488686361248826561240064409327046272099193802499353896059744335128490659363042830104058174606123204394459678619943758818210788705529097240315088518044697672070493219326427327474947465735270631400846002270606955967696876993581612208087614289082438282250827162654510150765071122548776783127104898581258903148080115323482235485756250163613432445755489708401852562487855841161559062915706400186193826787191671454229784270131855635300759233917437150422523687143080286973897230659408747261558320028856056430543675473012697599239121409307820516347305683944357660805054953912914586456418951984212667557032614040165264647181916825561780500043662639868126326051567703737576322825572372240337326563439926101072777491347627176169780024202417454219633542368342108998205098399693090096683351729155605180032912375027974138336346557054527834853747615770729786028264231698956616215364150611916911869585076300887739841331443323522161086480753762756279535732619276807505917919753822080505536085921437064255882040794994568053209984521619529034874717291587880433789802719917575528412495164553897366903667977458510604923731647493348513891310767047816893150928005652508074003360262558797465873389588650455491059441871151078989476427723914132008590273134823051471147108625684424430556126457313179759466908304134034969841895264128081303923795354233955145164368583297176727033879966070502753808844666613249520847059562360351328876356928310404235142307368983022576189398221045147116497508649579313310230516400702740418722925525312555050751962630901419042881583786080187226885330334260324188741994743094870980900779689622152127820403638718498691155689285267885143692081119896699199175939442227659858529607316110272771930392287503735276746031364987286014859087801089027696481017841925051376836394432779858978349967075106459160807997814986746212959429929495103455612395285189966483893151341663425625387229042078570031005057667238782499422930433187629331075992163341034881853078945786213043844699022597151095378424839640451956139526499409105419348027833381410505497503863252134416652532578346241054313724205134365610070975026474975060187932989700495263510803848800122170811344231159233018250655232900080532960950529674761782776499033804649275642460784400622477510229840904464576088284008438396537572516330908693659501131668059031760653994130467831860450062980954641179322276064394545097464031190004046101363637566525147633922056408539488115656651564144995469997989615517085192389641735048616440196028228370231053195494455715777919567588597530366609882202496886496240237376974149089622782626717164709054545896434251358107215509931278700181094793378001942881169713845597813034375911744983050397272005088385100204864527669175972913171516690414586990948299639788578847124158215181915131193646592655022469952252065861237108617077752972480096285573811172643504397723991591353337279437121493974863979262479245746309268806016126833281080137307606789638853035247624795772962330363206079753131170032156315773961141417267096845791988967823317498025009040927698398894869465840619708837118717162678950598037992818687908359676744386739411089537196986182976738458954392441121744326072814344156833377839658009332416265311975886386314575969916282260607790333739537806861549954334396662534041372393360583761357136631484960228465675347318833395976940602425850333822826967160251488264837670313936615030465569440359099795880865306477527207618121415394106818553151735880056317978950810699820712326357146714531162758252500806200983530299859876534561587726559057767770523506800734721160449806488391234431496994566296883810992317937596151519832650120598781441617932890058633209563904496732740967756156579216951256957573430650111772794467699754846396367647409519787469857405002566630430496930378286467308890740676217208162910009270841088021980366469032006604898295265441973616508087089991399726806525622796418049464541564487670128005839444300387771355707804656432991321870606322081514275062240463573963323033417129205307955186159422189134174393464269860039630400508002042870415729593735309957716677615251624524092900687648409445244870829637234794663408346767889242904515984050860716953416892727685702610071896175287752516051145757923487582896882725005829643483257250194887049167329327414414693861611008212073014894509422091561135319660150600951530042151879680050092567027746169752691736633588478953104875162792541522915736474184880129370760082642006574185024170407054317172875849453496755969256058106800091735532339246553976580561150626685714588862313687782502707507793892985221289837675733944406123896019462548014968669537166756920279450041465728456706853099431195910398723702492709010435325525980501157121226328470745074590340596438552820872919118498395516680440487215475323391256199459302810597525033416854656765184945399888524327757835037208347774127463818740545863929254471150555432279981820868187969864701046561341186800539651313467232381249441404741459647131100723335520281233852214050723861536931660894605930756758626679075053701611040703409092628267488775028597523751023854526779620553060275277743678194057795338407659371912339041612299389658775405042093316578069596534125892927690021058353472340561065145554293200917074504394701995669836627702247022883042665069045512194383705684670838235730118163228543400184304949798582621768415619917919935124153094915801007937477404039276368882693841499375805717517134475581593103274577418757637118775713224689227224249337777113957558484346931432056193522817599764563384463523667932694166365293829299473155416026227810434045971282582242670197609692542335680025383489465631124951701468994004640091188074087077329964303094404358183408414175801847899502624738956907547819266522199349674054172881911050332527900215854594317573458873276958639774133830265422515748812728581889273284977696911085259385652172391840425825823144703106476046481450202221028653330865637440225958804713218694501443668175385307315892005190657548015823449154844317770817671252046119649394501886256763741453768645600601421512612924246459673064284648851049761119188467204986645475999926801775664337900340056847037544756287824934898408714007702362965041707501045403006968311235317293403026317221317086176202960434454820954348676369524939415384766753809577355121463749908050382956467090205230467398556435582380712001340517953581775926611792974601486921320263060039317995648494444473161193725369420623475637450478267593973212703372805781343126621117387222492806333639834519303680389259309688995209252035278571980992380576236122849606523276970970764790391394231402133368690394808687684743308012268869946203470823716309724704725028106033141647014474120542138240308128347191009308620269749091536072252751286597749519507014468359570342661460253028153384827277644979007768898074458301080580762580282652539846712184990443942589188021880629759956314281638485112094713499524227290966256213105720027860252130271652435730201321995053171120419333856243218115968535314364280988660109585436852601085293446378411885371826272165074541415429092412576342816834642480358183339986607357730940949860657066158440701673506468455108344830410340714330688613506481612313350084423362414174425220384716206858157780034407442240899773795250772272242522163252707982864834239360319936007701578145485499732791495715242047771832598625574711721760004759186861346576680074791388238882526059503696145637555094836455249433184937579583447082565112029771305489059858893604904198436615568028063910169315079412398442614146314527207490634216746665622082073387405441027555277326425726662603254341416451806464620135910746369048140913948817349150190905887865886575608054633191153957951992269151017526113553536548044915380523524309209568391339236641860218486574056531386585891803888290100495441053950428190852170956897098522266049149770344256341520113354359560162080483345705678582847518288694326457284709415507066390042021847428414815072932114255525384876823984059640369467558558706507780528881184370543707668539402043667908794727576997674271743908241142251517023195532601492920532485233164430336141058134808121187844540168004984186371953775079122509816883959439843743490500927690743049721973216682690786818942988655432603934799602791528666316742452049935768321975982961409060960027750075411611823413659519543647682659743538725034335575607603094264593717684435256584561894133043626585493339644881366781418994035378125186361809861431093804686084238941765717091983753027352946053182177484980676410072780689353948778562080766076462886434975781384916754969480133361645855359234218744439048728220232748279000438097437222409055665798279254079201827191764073156868788990869823443332429846171348077941579260789437869378793218192762383208856219825626205370615705336509986660437335278004302978538582577725820814349306895099746902842123214805436252144109926584513208698356950379341219278770154837668462588485148035328210057622595312384395499845597718366177469694877133736029490243201400893695435246428467039062829612925333175609054580152415336269704633415609477147038783311408045532720266985169165505458088526234722700918568381152913251607557514732983104817451169011854473890500270796628135737332891521947351317150714211819622395064036066250793766101141090975719875195062790767199208415618383126232787053677949587209348085310337003707967698144333986531947300553955036137371690354044122744184825089725543411329141409921010502794060781343452745457489103978703959255767719730326629205850021841243056110147117266588588758581109801362242719178360150563008450612609580351146221868970392656006767752271278115086918240931263983238895143307309208061818367053327222199671221382439249413384503085537429139510060612140640152772992047216247469060199687536161293095944353196702138702622427471342529519834641150215258521719073343528760508969489859661873724647148445754004263211169130661080007590199276852772312294338453753734455619270731842077003525188819851000091058869702463614133946373640362916764850243139592226108914312458431080249185337663654737954281019800639467549165673882209372067955022453974952793604321876041673712529418689041678756050715819184628397499517761898470120141728492253165997642491396155346304559673700366982713924474617224053775638845250605738311722063309952246138275154384262484183054546161423976795807575792892955358231583791059988100013635583580253819304960874848406232442130196731285727975696380891589114151062682936713253390443220443935122562713425835719375807555547099528058650927489148560615014905867221863018145395527154337744115748430146045421047237106590937458945560185074706555125049620797634952629628585741910611986843374359599027675135124284216278738270407361790182264211619056545235598213465009844346847498934255194190612568539471215509383577839973398535979920804409140140130196920588481624165779207438506165929884295428759267653257646127865813653869302306432495148722915683419489339773257723831101860728599213827439955316707179778694631024120965629925156369070709797657462230224811183699337954003728904003552813838791669645146305017446678302677339156584851313373322134555912016942819944635586911990104670257248863039143131892690272342788076559567143550810085233287367618883314330625840285446138179091649151138986886102042441096949303994618815643469225923822715423732556186576373191113839350829844737578763090888190669748750346261607736201056147649195858889526175730298660002844920883309869356389666935736583154321980511463029180303532823912512265145796045112913620481416074263483689048725347741460497928968665471804311096370206936618003815649264601763228235467525772510063481083324604963974581894856250715927985140068823456587664328616964994470287617278607401627879376003134030536537200163361067311973540216574274552661377246414679701634232210948392735205399216184668443165780514857874873899561173561574229271079978937830411746342331723123687062988799395637969323438140930773031667385587583365894879219229299170292532195313106313751699564895556279207732633443995606991340123455661866002723864409129577681745674556204269696639791492485463176155558347884911203132980810938202001667082142619538393913519494332455874157725836948116349214048473354670485252762669909591444857090831604238663433552347995241933217431270826427571501537381144704648961477923432391883659760417327606918396476067866322674929193323161131877673919132713156449130569370585515339505822922629793669280098890127374401107299130758483919483725163875251526812093561550689661281565278504377438567370659686571290407450402139678640980501628716324266422673376138215295623652204021188430916924496201670398377240229007751911990173388725654945167024884231446673301697956493138953858612398111668308257202233372469857377872517673016746885270115642775820059393570981225869012588927727534775124596954525038982611668021287757380563685631564442199458187402810656801753185564565295582288616955286274200281964030614391059003215379795396930218519423268807946852791407258771948469041176416915227472110682439096583493681740724391256726014139205537504438778509718690612830895421445090454534852381522612136091363279625618713641431649422139355442206005338273451530798672306688013562930131650176555377047163009150624792123739193705754138726037784409421730259112504923861549381900703973226982708445933093837163148061128341179486313084619959430789684964111687084337933440570079526478025532429988270212239589071572621544918831198911796492255687257951873764372652104196188623597080763708251916019748223448209944333236500401510330803345098734208212792141200420480180501079798561723216473504401369811485541058811972608739539425490862873783903746809883208172214796830743130269381543636845378457615575201994791177412336708593571769209592840288800006291720871627379774153512958050297099442419138076287230850635785570220029013432709277729873751576166247484047392851550863164215302820835265015575631195908368230734030439271518105002752650033708689498428813235684965007249398847401056947343380563733840238243607253887330911137388407645000377344784709100186480455411711002561405408783699288695274139261937908513852292978958106283980590449924138727376398571948291284483476597401404143259818850245391067059176832462269483973611571814898528770650237921321789269536116379304464677102539916568443144432020298116859366166592552065597956848269167629977734031737378030874820811784876725458683733424633452419941410780153692124159877833997466997395429518681820090649697610367821528098952987606995710356909602837100859978989894633487209570802179233665748707146777367360972463992215753219402369880425601500007584041175731957498416740333035260394809737885653902886659099013584031964803732938986045942039868966162227548943655076000234581410708961509394692645277394235114694011127719149136925437858539483527264857552160208720481249169101852717995183756073284426677184767954071116218015353987918247749816185835646452280308632399771384992835920927055530786651556452768959162186920347015645557340287669263841325770360160596459690403225512310202955997098916418090712914574898624430297707113894146283648484871576785677948781431251243293550247687268468946933878930968619372172452421687392718595032641171831981357089270756010792991851456275028662192436979841781141404540319609164247843921439027833868372641711554943963041940588806752381877429108551788002078811767914778773113638802772856696940118272755475020009359274049483769196417417474376430993588281149024158567172118654518195403274463085084900186721365271788742362751336854382584357260976576339859353648790620203688881027015850058083028005290525005920409954009559933828156055157808056927750376405932422853821694589247308372693348034515544089081803000097135903138760369506462952558119323319104201739769685110785451020588411747429566742640862762260667721607633383260924431171632661044281459586062506998686074775429041244464632860784627920804163161718877365407205146931212143251692342945354332472824172960433247902906354057442643551016576188688757552892490583073226688579406361072634713145128039096794093684979336814875713298697813211924730599496014027781864831950609839994902924848226451969076694936680918529246540254800772199089177291960931566054867802714844783766043906003147146452296723373821018725039173155245869955423886136497929893405730911868982296875692219878352678884816562012179932355718119339478997294113162503823771607476012250789091391360073698161644961550771156247518486718642741875222098369926251107945876744271026054910183771414939538460173089933449360476973301928779138027031350707321098188209904217747958244675990200835711681784488304787391475344935193814011752088137059843984654955705501018947463317851354478060500245322289869595610981274453720034050684331619519836303181703747898626632707244065379439277750611738437739100370156045085424417182946223230987415992613792310306397975196290621495493675149348295534255732673405736625456387820877247801701251910806138076329419104837686206155039901710577549379437198149860227457432768735866547211937247364836888473863695504723045861687577899262417991924288808684663276562154894537758464269366017054904106967913965856504723142697926688920856929628784233165154008797079484044606266020591420715726414911842725772544518517922522992289989255241793132955616293338761041608491996663174423087794058873508394787307283099169773983497943684774634480157906910420838749535492617591718541229359751899008922262172191445930678861976035622188127806388132245635556068069415255297897496905210255587116668803946253165815590264701717990003990248334019184741861117791425087957832200374313389994388787901749321783285709136225934523987992119413582964860423871824067417098622812190185733368156857032359430919908413100327424163085607040183967645421975659821525834228867964906175332880383375925188021355788935119163336359125653076196344688595555679031931342675338330663164340607697250337461204565785754274944560577318094734904463642115299853304353698384660984613766934308461700054908361012391654874021552018074383204637467839049999351856781079228972587469036774957913385350351336075507321325600291910315513107283177116250772551531257304962327220860225214648402202842798593292836688799077140819239883785035622052945336156802820375313954033176431589405632531123586823947289210428147770904529570491287593524120513586876032845142582734694488545643193344560610392771958212921941310874666676659245749138539157944635523988690676799695355659403400839266309489156370515518332939400050322641708848899460174496659076686847228668101834234733580748167860825699263614579414341577379697276195362514816047504644571393528525921757839527856441202769631859515199253706473854375073484198045852310995245664026394525671148305359686783111380040816192340692340326098970410456803793483601054492920692731323910928948941612252877254172588071576980029023276929926539672222312595423789781879617297369231269862904132940693047792690340796085936969553082870633498853589806317037906551023455503598110472263078432437887502680866528666197012358431075487193446996135110246538230763263859894685743530656058275300173591298306951563954194337812121118044070153615314384579873166672036184046659229140007286157047092318388883712590113775110154672815683126173135845444955569340401606251591221445202630400731678624212347398415663606157002295757951259606789094918071487219920115133860334201249033432690190315247111117705376749037925070477108000780724379721999748678051270543865809773836608455714159223131125076994385057495720844706161764642897016734248531307265311314113296922449973258986937933620538231043046881167270296781793531514792526227715087317841347201175082919918140024385165187293321922367139330218393718018284319234620686122487712481614464372623846672273871692704343226676282133595720865759252993357046930167137706293723161840281281466540339392997647994508355635293134044814997460821573143678277060209036200023656147948179616695338982033036431519760589388240313104586462453903945756376887059279419144635131656563853034138055116073830115234965016026289833117526654089514276454873943642900031046497563418646706338393702640432719993444501765362119418398091405435431204661107102294914795728223004888150989288005202982221956031371555319180723675808735157394941586386346592426492982712468742873788710721177960934285282218507517612031632878650509567859784696943970668574363944173341905638350440729438621752610060673994465714452565082185110811234734977092353306073156034383366681280289728355294978346861207930653666229848868445897302368695057318071709271048802093698860052594234685582421466323714836033470887905083467514163185997873182137711360933796792267130480840063571274044761901699021280503624955146493756285725553472201552916273600484207174507880795076184591360695778824861874794960279482146832553636964805579475195804226596181757545537257578006385007882894288015404514728664507693636429261656146409237609919442302530717760664764609748901300712832067009583444148679596428844265653348062698500890014358597934320495470073979019762402183186450225187355768195384669571307006288829263756160327876421596559312529249242216132957450406538220167262398618661648581434298883151920315905796007336630592644780176824280579377519254991161387408165551961800806191448772948511662569977245150821371463281903651808773347375322139017956945546985589460995099448197662316058273897392430853104944407870847269906403178359352904613848224060814013067392119403592658922911969016830434362279715304844598073159037135399085230555413585030330599426307530084474973121329228139004149372925731581039036715734392981372366096770703723997564711313836503606104054887160986190396184993610539032305603590895271652168824412076000293777205420054934505995932847657914451389480417920358508525299387445006490770503204262460392913479186052964181514073543083458770362016261363564753671667605974780085903142936133379293319175008485509604389718110409887752004921222370695585812496257133144760665069336788276888731032445424398289077351072677332667843932332201926219365644663220548552196362859886982124590594841453898355243171934249129900618146395923563828594061690297564763112622914667465366265823575832972216617099689212152632249540972530092760909689092981539854778104754603970480564097019438611243783216133017217352016953866778938051847299996113301753095363920200797294384334427132419629801071959511894080207607854224753470765972679570860437380133715614849302325710198132874943896149485487837329709427816336254436333082693990557968810494892037587507854537640505365757571955571940241392108268760908876905226368654030187082270188354758472399922894034079079513679637963507263442245541912809577059031587725558922077896911118686536928072383024038923627104980728883128755350717511334248096928769720158667518914217143425576390489594698580750060927981004390924945240817662509527417274156016145431594518522171855749552684752772716738913902901472023505989549615741731698904285539944028302783837762365010859093691920154027694868144088268392159342531859686296886770735568178360341970518419116791939661833729700019382298015027248308350801097177309111058708948946723054289271511824641544091066453295323935450519305278990931728114996492725306034702159871961345650020631071336136517861654416497035736820976258374943863039224877343571755966711011669312791920462088982875388710715363136881554667959015531454623653372771094192927484041691314541970017754019166194192795232601888253730337752336012196171161255538897835617670837738785260756313420586568197019298042050503450950135837302702058324470696463969223690638593311081122013967710006747724553614517398246578733436414551852124685804072880187810597648717763079789332546458009321561354841948421779175593309357859671946991950561912931679934411945972942434600010285797589940496943656661909757932956680542467013837449990948865697217529786249994440386325648873316760040767769071769110217133246166713693357767751796687482379811974164138932966510983219131889123061288321306175347306459432631236902194248765044265680064037237356520012431948237319111641586119940162345610705558803666260316221668784713489649977257144363570318750075329860063330828997051279145819777920607806942050549492682044404634256297157534094927435579725160157207979726607019969187009861222418896922478331223069883519302680013335158234809746911378369744867632078154664881263924082841865160249149549798644272098660518203571764568949935602043071048929581586506395191730563855938221751430131434807598669332650487479903805646835095656163984160231551047965988593168474522978453271156302256796382458057087383359848615942699923530317472056202203726152708976066846026088744711951867528525005617829728887196752466048954131079105130025731039262690888474237156518309916354673745723994383500092516539191810184237064182784463199649055288856993932528265626282428690760469591229338888263678905258896297992600436583512928591660168162711585038595099200450238288052578716079991485779511741071458789278928594455422975748926639149060612255901846742420489830696032609924160537319803993095803184587418756119655169410302588427461326771528604167562599716689009197446205707887606193824714430682007869995158218691523480946205994733672841618743801837624468431146227199718354041990857212670067522055708177908020764223877008302314596324376972484302281374748014994596782976524511116475628449488239112658022320723393967248735348379683470903721727807182199304579617087484668322607548311946463631629550461428918187034402551606610996043968227976008510510903936291091994211938826655136431104593773982337547022348970989382383349606222414458818157174486985800768017680983135448890807309801045982988406710128613818555977913112658579462797634402093254046425652321448785499837045212678648629596772359938670287589062826992794921488808890259752971774789067202993671236787634519865957080118747717986484510898251955339140452640402757528622015609839097436788392343368690293794902388062976992556920231250427705108943509783202370260907877221028883869173065202970742687059235430376889847491331150845727240892727685293202568303822902698549830926642798169621548264378964612836838042073209244634810624823762867848195810854733788917216503370931716230082783544609535500015708732585371829606975508170435834992204347823973727085823269636237017609767484500304109060401168774813123641572249254136735065969999743514683113000479043763389468381150750447983622497756891870633121598257365693430609810105810751283202846444444669225835877645410765424544616023777827884230143241483760775272286664586317686875728436203463872646470337810455803840869900184700132949067201629106732086656015272003570377008772363933708461915283204882311403505825354128671849769189874018370111971124740816615401897014577602302374503811231109971026466141404185726108956369605831244662510334421769869553123069183533005618851848711467565374712842537837536027002540478152676963868002814906708268471436627044938342088682979560559153091431959230537938970909123501683175231569389220817236677947717971362719241455588880860190380407494601510951815732199263163081536727786395339826503769350931962174930710360546827463851923840108589380482153796057037554136341945317910214402772440022859505105250788530056362548796203963051416750538902815483989382605618460596925430923050118448202444057353339948646232469861642715255204141839454588339064507002112028162690376437236786327092384808357049285566542256570041716643467942705669316946590355900250098110204615997069222696043039313415011238520208433078349276852128023229115251973791375174328405671719578654820096834839493549870633410451091155802399789655537286716719980635621882290898597135945659956583900719908411352900703212798486817378763769197501596503476210492679280029798828161442624704549931873587379611446122075041773768038423308899512489273821719117059951771345342994572972521521403834304607340293212929718359902336716755190204836798893485785428130740917112127491351889665038805950364886600193051774797377200603859479443146650104107719235172244725816987613573155394736063610226081719549477487334657530769762382929970665938113035566698283830832766954761096688653181122041132550888898206279798064803011217227923341819607984129997207200884183938722113903472473108515327748366983782486796544853960546733245178282183737129068488432260975031906355301794126482389535114738786399505486022460003357691360318382569522393043941627677865022636715905426082179416260627865341378178728420381565930074463640673989667549268764939571849031321211365620239026152298406287309564812816930350186968503713109547232937674722247857296417081985894052169659810525337889233503198725849488937286407683296645338400341397336846566429981296207453255651661075482537381673969227716956365366825813785392959280486393462406800456128973677765649926444527556162223994317489110997868141300340878616096406890919344660106857817399649669192940715197977061967355632780830374867624281895329937993501743770330412678463941074239000407519860591815646594775860969999412559689622869881578902426577897779204528945726859788015120391878644971604999362226461249586877214347718177827215403315790874383331809450293538191572814541832682112481972325972143223494026289546957476210108078742584765714780160883340496255465063241474442371159678992370589827766568589771945792599269290408338932723324793025420327412082794436936354791397957972039636639578210495841631440396542409386047528332592434350078130659491794990770388167056714485647590147081936288460634387083087301399925372529836689104103313594394347713254525111255211109279872778595138270891636659095207417092752512990262045541030803481032270004620819931349774103396993570520081349069420803787220379046438289024990240122138046339798024218210683934685088493016791828966213042549333879965487438610932085149105332758773226902672412929662567364590687559148963120501742439452638939790244232370326490359685257821378096515045449893186606855909756632394422618222951965642157254180903209980449661381395312098534796711469934269493824514966747515985290047518052766122600719775722496708151505803914346182401252180929356344269769077593665452090820250602780467149336326778720581681597025048184007645428436549500337194233565531706110028442303004205305295293308676376028645654611038275374154748491009312872595644205697610999302088104035318669489262396099535657223357475743158786184590483196642956322272610527164819839854633794370836572964093948882039748696069433331514579163972074807234334427069762865685088947309498159719068311061200102867523095201110639978597041881942784387319179548374603671903556930383994015483738186262489261815817546723094662836205565121691747032788728457031534544485852236960697986889224934532820969343567616792601084723826258975990526379232591641503276362559460774627417043325449345744488947721687627182772707294796799294070372568210612950899937024621719988989446787668627345794135226403349817753083399390670296652133803469837272890532476006619392545820659289701415261295072742629227932465791704383716269320753650111960155752594694061918181848737771342683444424052930660057334458886905888039317748451177410239735877528228438595867202823987437435295921155624322438928963002729105687288726816161177303569527231697743695929142484462118989457501169031295742514828451744198713371748657674635397474576159541608781521949380382190631719785463648068772488618103918944897507305385580490920796321483089352318480379090666813452717823353224661252194992676529142759089092262117510817467050005956809313519528400804390075726178665775125745288433053553174841429175337424877509489933543735835955457882706037397391292269370301243965689712377394516731859670419317393074231020539449279372556695143497880554570330590834011304552420883774530182347148368540570383980300834901466615756278297245438449473653894739985342875432822747853813731163246992938367029583215296762931690157701637645970731154556827663490194825042032716235543761606289610103177892081300713313496833865486540725269994243818874654827286727227810546989992436385383891710091592717082304906672765961623781686404410858757454793666754385969867095547499965912023647186302513423428660312308328872542614846504913339140845571348974212133262795637514158859383437023288367636142721091091632643811993071180581370532052181871689034040842283314956139714100091017150993735501625049869802128077552418620045870896844438306344598949555144009876519220044348268870127019830394069224285391443443769252569060378563316363591695975636285511685563162452502775453761962942890436619458968023918515806791438606554576306665385508979167196722773975207635829190576647967180388564538818866035064543168335512453205238283278277210925962979474365082733419069484117477135866941623551515418976650273652437782927375010905109308258678984624186849472218794509286730565647293726572105569324973753017203003429846293990357604055326948019752126003066980384350399536224586496757173536448662296086766502211476197190668367000787861952572772496077495301582704019156303489627631553591293521702092981509995711897771246908544676144850835054133339784826134395314953719150241321492525701145762701032683591978855164103614737647596250976223028811188954047134804246179115385416323284005437108464269095036218683372877564455558445132126070936508889689962610406609727149015825926516847763506236573352767195383297892000906729856532354522274816541019480074074983918823027932639144942369573528899527704109953394755282701081943357336971843195081657518177313617892037222004623202250257101959975795240224447773214620837600834855387730627390209188683525101963976707841850327839303456164014187654569380004166672187859830183324978043066841370878997780609708751312245373317921047765321963226929206244411860240382393958269384876943864799215827507678016075065363560192478163288489506739317047508196646271951189687925950485598142253735349188202252232254527064031100450586493401962683243996750270941977257999962112631549818066293540715583610274971906518427406565937254512574742135652740612551420873683195358915340183005643761475560005901887559432489987342354418536298897724641429112985184953106090530703685290951747470466217592782127028442720276324221886500362829327344812778190824737197178733122826245293390331056612313694376721597019056278625102314965083850517849547462579286335484676475056193895604871272476315354271306025732461970730588914499576286610805194016087738399359475968793420630616497610162893847437876270839809365286890936241353974223097404401233773452835062258300768194953505737271247291463024293420118205594285875409672998247743329952532893889102882623850029186860662230600769541453440141543780274354652779811248059501088156886539095810551792517892616859476198901851288548533001971913658050934308651373391567144253106933455853593690680573111213522090148984322616396432630776114024959572757551801795894194013197745734228922330997391962454237815316373992053247664553480610143673068325795760516674364736620234621205488325796206777946589615346666284962251255998837366356154573809942398223413977857318118526694509219333400278395660522190434390795218769528629536258345114288337418801389766833483451992354372759509972488475499853482128754160212142000716742527322818658471302437403801247212757715517354380686932178170984693047721386934362393518517720943809190247679191235016341974983001943492514392273283998952752845430980061397557007914170816782579339825803450530350435599716301845528168292642279637951739982625697213931034888695236503388767235345917921388311578797662440444585686266118761866077854423457825562175139151512175069970282671214823537616753390299724794386940098439803372392608257591497122524969990916251682241883027706483153811223687127561226085840232521772823899197546169668710046806668395139405468301470663243728097173085261750040540584635799643871306025046653245098513711350478406669674081206228084952470827367784896750668680665695204615935906403278260228102365520837977749099988133930572493066866543878693836289431253517516138530476569608483426892163795317644541891627305175221678972080411022372283886209656630432693750538126058074357155644252030153606598273724463194200272636840007290391352321609780682089800250397115413563807418433383843775594568899343275732876358995393433301321522590012083860051252010931866882673567260499879953512265864607687845448841833834136625422196971463251892117282500974121983889437996477424611182875649274008010958068107163190905554406637684199248303038244538612047639180787774784095532936773126665062304634915420945503013186992838587040497769498762308681601198225060378407782933137148693195576904124809600289428590147156300359952118751134960928464643882776366816444290872354236562624184913110970711588110759956848824186276594293115532643553365781078624936606809735256728328243880471495336516304463220419935623776365923546949824861222404369330506445470866983819456132717316706287211292233088278228768566112936704043109736681582156652530953192735760657553663381308114126150418274259197915846860975661711155359265047245289013979730748365684566763766075030008038868274480925601952501822877867751168351851390092399073510597032706696191540732872891168466075052090920060714564638393565915655426687110625860799966340457758882769823034744991771278741658923779796117044330665499088194970371992812185309204245501010187280970744329043394827028863200729296823007160613009672672956269791838625419239274660390007121099734961053233558472567594158335365038969578883612227716102099081807849942356230921096520200749681909702336820464796210938523210558762150886567676848354321163469821573876550837832037338143199007420263497842810116848957540102189754507098326654276214693339080399046753111520241502483200566561580635979236181932300762882729466887837907885397404896953393147003113132449309322770532613002885054342907789006340319100228559937419959054534198294838865764191083821664299146114191054104072171837577155061513515392771400877552001228409781872581662708931273964546477259808894904638744412033834039847054748264843421660150604097870387197604533296815945603974179277038661169175403060560427594749273731758060875311296607988071723021883091816310355469967899967681411322384058487215045110977754130927334808561399431389195645917913746129612274326490289450582869601839766326676818486367297844296108245753273532378558101279916957607536616328445715479677570022259203947901245647188595273323538013204986707161550915878288956727461343961549590248105267578991639561562922800247341472909294565424144238427975134894573060583395554662066270210014102767079458435211648908816862436979656823419770822333130158028218768411671028519113734962555044156500322013218780720836321567275832894119429300942017627734310749322216301696903711021196817814596112985080356782471755722595233764640402399244994117133227064814092208903934067741659079335822479617612719575790623216075333480442592524721663765328124917378791355454531828388653870756476397340816244449879336143123185696534013864422093057439128727633815813871255067371224288300998581863210156353494022783105631170331076712499040051320012934897027213099521549239150785904214026893130046098656152361405253039272543131409786703723671598135087041444155684740934242858068266918870587013314646320508191505624847600443520708075408782114949462115092792335641676736833501642284278652933928327928453321515289204094301200081708618584107504415762168102606083356828369738431971365108293621246800257976799115539990764840380499281718037565345951838459509934009339260311050879753764133549052939570876599134289972977018161429476080132837284371590590628796866400470614917846595143380897979017472288822130531415145267504796951734362334726153303000930497426565394579474740788563667819470875812034604862122119732683985031983988067512355607212314224839768206933579702545411426785688286857621814616682467550295237752661408949262179410234215163541177570269072944307695709089606441496588167174212166831811496370914477913934086779172036360471833759073820099690945012308440297824319898307429912474750965950540243211346298334415639386846663845113041716880468008283501799096954455742858132774403014003363683787123611627532239185200931510869547854040603851429675337051449228581682317546757859933248970433194748116313656876224420921196163984780749399063255065861047264994627857091184829307640052302395716940453022977484337534496934791042788046497550916892848110273355938094404693489578483196619161915687678664744209176769614601596143007118763711598184357094876341973991380856286178181951683356605131978094532258542655251653405256418983604191809877564754700933354564638637458818370719308992777474777651940071210016021292429042884377518855696937984137461959487866404952885179702994403417092257126983643477923420004450897240195642776843574000469180688578829638255568576955243348105923536963237766541213613659416589648936012690830391218907966934638782699462568989432384269479001954491764907992596728333201502040550563958228832298654215201273903857125511583389460147882679613070593684462714073176635850748773515360878547105994508157375037687217575866897476371420450858593475520371592894144903845551888247782248886056768179484488505424827117656020412756251081698730294789916929041778073208202945391238728850578047115027943406781972067987066773468991759685701709642214988438621317233301403648409062296336613973120512678548019751401068761497867822382951553014477543880094209195811190845593172841912844754245930240434415604684960365223220703918197954739023747928894306287558798955043463327292294265819818993849643390390174859190074549851943243774688971516350617840447658172638369808979750933160686709027362906796736528277031546320116423755537799298474640332327398535516109777781075212622968949860513517165602410287103772412940827807555891992535075849715477021490914683365543223108654748777138622887576081007927178589790259875918863519630604566663336319217407944530334592773012404904323289169886310725490859039501306666592730117026037662981068329188801540077400682229302138595764542356841724364975303391034247595466797769708002737594358006471524868350668199462078500178103542812825835286534039521232796603536324082231808982544771052047503704252264797228699159145224300070833200074295977322725795037652993767687202659189314667887983961876650840897212071621470805053296553068382337586478099701736217752518266225944889755547910790029432807377769541203788819385753362453555755538621513721579048564519552478272383904392255558608545983783242042248996058662215842368888782818875032877205784097787089910123979622359281304154281462067094690729430442763735707951946382406385353975389325145532040398658131876665067180128552920929028138846494499131489621511096573538273671105194612560704832112062881259687496905332546516609855153284705020721844897915130385996182707552535083094178815330737133334832472877747905181060994006506218469579141609025863337653702695033632515901240061077265518504085743720504028696419034506015434148258748213594896680516971622041292189090136519426616334910151777093541878234115944342573018458460479674977341123967367460769375849063542999397454530071743091496740145218588375807908410093952825123993941887800098000852983250117971552469662980523935942605334256683484171065964689960240675931818730076077165696460027491847845392837597739561010543622972283307967124275958191338179078340962140827730260945983024116813392425402102479082958427192272091231049877774360082282040479398238357631732443171948315697133001082852534017809175846522941747359197349372218733486503775663769454517348058412741929648062378847469600323632964560718750085619940062901963618143276961079101024847744994817747303697518992281355769357501446845470381796435604192748202966411484264755388461609284317366732609511714145514664208775937211606640057131871831940378249303566026421145554655096381561717598832630660635415029101213817574070546034758943777657343347443313614570695499585520681596871920795526467023503228932588692655211583740457176792697869830936584416052175398397969141646921305288712473482152684048633544160366671645452057287892065390396896570098833039278228312463988322593681848897300762029501913922174696391900812982244757810301784071241371181333474206915380637319634203722700135312823156128209273078733360657318822433035267753616851440128481421604692792800626149042372647529552898067238689801124635261708922360941951429831850549387764220559839784235496068384308044463091873898281103232617494249024592968705429095989327718867278818149022051859424964978643722019150845872524151377330865901634373899036909618394184660480476412857748573396024328884856159481653913099507843261527612427437304198132191310971382332353652196256565684132100997793465867125309809163123694545655240867099025795737378690735707957623330415204577601513883455847419623747926673163943170811046161492806358838918930129277650436642892222952486596196474250156393651304555422184136981155056022645692242688442709219082491387974604688426215352222321596952972046003562844801805143092351464906483155814707337390990940330635162847636452430703990228906910322690633577603648605519409027826803159378088265928386788589283339814431210743242105744407797255304875807543827180897381605829460510483029383863211204406323798531018120096800478401312104193172311588019894128999509449051823520285501747845472762059863697070096215053673678007104018661808141385962780769153033085973597922274297796806443236893084382221616134450290924444241342868204598923914410058649485559820602849227162477870269955897422814270143672583620201910469241114324811365678238853166167823059101302957723739494218220628532292532966281056278942937466150517532071023254039560695420249982143153977132554329758685525272480132525920496236391864282402295056529171734982073877274864534744992666383346808047284310211378092719503669398370888980792873532815339847426064500740808443294502104866023527925853133129653132245368773308954167066148363110682779419010528654438552547588213894308783875546974389267645496621380722884257239345052083454215664457739359032723197581717659160914992230053647772838127334166622533841472242629942411924622400978544729798291278440392639981696982498319988102820240201894960606712636566100746939708920646894033570492380927010705105350938561179427302169798825354162801527272038979683516042369023818835988721040292019071056087510016790371111051793917137546623683832541447178593865302970564626260948159605973111282072557182811133246076104217747759645483911179713618873474878682539845866897492106177035032173667065708216985559866053152727023642929621060332762951293492175214297488361749897305387297952317713765169565607600941025720965264136722804718901948453657730523247184576856434531334180912602575401390394116388610927763073561477104298203714855880998828077011820768860435818055569742895134939208502703609985291365667242000409340681562664800047750369267010067187565498302678403949779028498408041128649042737318787323574923351577792665464058755270197331741525534369343335878177439476676986534109034241828856004682442717355891956299625079790827374560677653849024226242434139444105147668328626098116986962995732918948031309383657877203054406356888087392173364316856301974958824077856564691100584485063221748560278698708254492343500946242878114247925570928758816037133370498944479355413578617677742593003501994878818935464570699898023884285943402352939573590363877995548580184443559823169084248835355006567840024862288539779059190210100832664391404237858347141539211252119664412719679850014037773781611395469455626393439637229169839703443161802263801853507727479038358387760381375783864701213631520655028504382092685471604804944672487705111529563991984619660704801990922543875919360489941776424323787824512750976245752855490091949663430056325042158247850394386565734703026506980027224965381622755412581238300224668505592701928095276632080553239136074885985495257698995079276140766434576464290971818152704084341168648751952915242506986869720912197272764166399894803529381557206103652854299804227933990984630926287867918884474582281838491541379025757617305573721909891733580870609521181391392283701733047688180850991710905044401302490736272237452998124794221658811858963808812967892860271735024790613642266669709655633060101790505226554257504425919798843096292810306578173471637056821333169546753852570412755704075586258683249666663999607717507142454243476380734993509255726525019287640864927618497173045897625148716488591598951255375228222955357809275515771773494254494064636532864388734334217530702797210788843935784080519477756982541739321292803528190432830422660811527761503372809322221614627280225517275940258914049567804027668536835600648375121195655603792908901749705688289249537680005511704451470904027647709526612617891164352708494766333633037504762668181349383168469838603671786180757090384099944166818885088571567337508594523816058288505949719141157735194691638266329100093631969376262656339971438859083062405002210685624839375451664538977952645501454384899174219683121931401372995118410097509794199237468840954250132123647670753289568716490593510289684443170331513881484844754291156551495493239860473470143099453095929657329964069617905657189155713959225222377996616334929240926900212172351354308093758013216123137754512348729033561460914816427581049952002360871359854964801275969333726114878220482714165428610972873853149810697327536968559132688931246588639737786052796473145774438703755129143836310148088010255497501850563438374232649428840380798143255578001639249929690852845898363913292517937062540150226681735964657598594163322441515757367266219230425695566601862213826190880192581203723881546007760038590449038861766421200157127662440876305292839786002937708353109004391865881200087431950741028998065659379888701230973100697017955799260447386963611607865159837648650167943285933431962812865551608452919059142677920493990411896788778786674303929975761676465546813424735632581831341226626900374833698503187200117460321357251155487510227692201433444170414759365038920954549976990021428049303569545892006008908812289808480549761464239812417065357454304376304063168249955435897677978729067940476948112679095135574378201752416467534613297580009812957790997270711903936380944971395629625872682383589471854165638473292427586950984276737772192332175276539686606177282371596570821130355810363815182791325694461193091588133531942734066542884074159970819492402918388497625748315339375254667365082843965540113896630167639046301783547536947865239365547983209434681476337898406578472456142075994498977412875174494581453465738378997960255958626928073950269927756990776084920221558974346739263779175303666438705307148525194702209570892828636950493585584893209095586866702334575543192545144251812880078499151418500330138018283582919167951015135063258915735687948767419183823306159137685922349833225083199955278486255059084867455046951602420521525235667638266643206244011346246184835538231919030789790489156492881675694951297606022618515957509091442772246331356835722350994112552809162282424069411322325689953200039030202196968217386130987969800721311638620390327297191995557705918946517770931086733435970190867546375077749418164213662458712283625713096904252214240927414444286294676411115733390260689928399591420734459182101298789382713047503738331667957872739006283488172123432793167900780179277820576279424741963951177750945739527443895863353347367966070550527012142544299479080491346447357381092368930786035662366461150744159419230799122635805375263596249358838854994535786088823490647901666245572094788231038700999172108651627001741277647893143063607031726839611668179673599740524372180120623481940467735151101150135753039355361350398387654046363031729240400443934542228866504375595216796385599047414810736635762226932664330642246622513619647559947939447516742830393884953878608666313656608760867401686825424385950930983900950824741461151827971514792538782363231160391015979083705326761335653050108925597369478256693522289815420801446620485501976532321021816166219530346571841288016502644831777530378575721075721672703735192224031414870533281255602523790965285517106044744791180673197071002068603349095233692899435173460169991071845070490952869577741317941205305663931582598080094541594568474016733761993444644185952484585780679184671826721457933027162864842332549702086814740691585705248301426251349130131793189738382452549317175403435106305944151858517993322891846398568766128678082982141129066850039256207747696005665324348516251485428270485614233397106339613269314052482118402280208764932824600707929518671187707464164573645634222261847181242843835488266056541755904987953693629595664972541183719335697984699399826697082328312099109341255994808198732203868645749761500731501308035940504067340560123257097874696291882994649670095532299328883162376227702344608416178629584181003305951772290600660895813030583131395588588048276225962517551839426498063120045127181001922219497057669748844596592692997691620797266423414339698096085014545299116867845278772258015085742859764318050407162254946512152689507976140983569243094174676545181719566747204449842860326968037184108259382733558497438685580513595228455287596361386027589819453100170760894427332474687242958911647821885362098458294683030407511008305466766121316949446563866233697314905363048789078832874042072673383396925834828135333246261196639727672957698744403654713600165916747714238618199164530627228981557735662292266108971779771500834627946440936058431573206378347619517000016581060210092878404435682065201945270285682643221760713581601752221973467223327780274398943597115597803812762780652604670385750855602556081051666778183826369162112027595476357509273561033756517976994657794959611449116213116791600460723425681348221091747041610254084248399240423509621969126368120916434903792669349222546351017403410154654375283162070610539082122669353971414467016387133919572456201351392040509186147323218293619518912364549208823904972248828791425729913397782224781865210133914143716010778081000716129662093680467263377030194059184785859655730889364507857936000878628686633807976368902807806198570100232244772514039330322119572056967186423880232186334776112599435486499244747516611783603166952637541604360063566323871059279357921756871199982281111089142464610154655356596212704209994403197587351534398333195609894173093865474546514099938939769355392245864303588762315761562586158746287281878133711235134587883785580421697764398525992789049962429065388962158212221897887811625838296590736324849697798761200713068188337251900370377403487225042973496099347660728486400016319929606695437071427118319214099244239469582566542054191451204553614236488414816026053774866149864110283759516290999622091232981921678339239642561390727753657077363937251198229736967869246891513716526486975965134435767122826858375314401262804184046228693588973582463737878484474816412107338167587759228223079154982210804795904348319338763433073399499251942433721363211915365810872552754939034970117953105652743688889440854746664727270780909808046997309405202816129582446065629165507696802356145139785999535614491856857949608990228154099318962273521074758244856724526195100482672561527017230093439430290688053019264553530429770999782891887127297756731225080121569089892104620610303265419535588308434633118423243266793502469894057473910493235573872862497868075144049873814343511838525582585965084861976534830516557746535484925184706235846361128961231063475613487829196208080290215418895671695470578412636065128050970044865339456921267610746489021826015136002176404207593430425154960471216560638269072668810603281420474122008886673494151799724644431487852302819566773009243452527803547237133249811211144752719605172852639093240007410085041013534953404377507086826929095896450567776975505181699765477424907498713768970805422231030736998621442134449704808333886290361924620994170065952755234994560840888352771199512564117887487755426906953789016658371705059760688177908491161857021874607039200411210127386634258458451236459384881049049889171246857392696221806481134103477999102853345043363529355994699910797483860730938322241856554365049764945838570957547589241810795493776431689626073436458913015274465652114578614155770992104933437132765485502078197577561301902631627312439722426741466016940435362112664762066895571814714997912220390593604531712953095554012285510811212102657296975654697231782827535893252633833111069657658155611735948679547594241902955820124457509075373370460353622615497103954431129334077832390857018090461357962884855271634026996506312919099426969596622558949797562872128775719854241967347530158746347073305073784579614535454252064423087824084140807846279673687388788958520447092790810107121198779872783592423393355755619371324997959387609841477989821381826503432240130638574544885493589707048625142787242965210065664978707015683883864539959036508017111436410426627869672414199832654733411128487933093439580866789075434070202679378477434553526566512929013433723462897801078201155221887239373120160937097040686325536770926191900398941884114592615370116668658956367315052216330410779848867721149416004662110658605248504107954794838142514049963682497073968941442466671748736746316851704563577542423105150580986476464173910628745990473792488810727430814262952489093198549576289832417190896199838410018154664437808237533284022544160414895993190873008472472855748818376975818953479390880198458062894211236113335463254004046653571731667323865207845030801661957708090271324118916546201980708955460918723854372611387496629976665825231471481880032379500380667011859894219599482184048922604588548768880233759401421579154295287123568227193941659500062439118359342678164048354162384967924208087709963757338733972713857005101721639010281400619964029555551092051482372788893958622506358200576235586046067003335451488830880320699079612318449237973339003311505882948380206876710240916485958888394432465634466757463358495322414165188032825488208991824102940683182206511712210563581095080526760824300375506483382815036583507743940163080243748097984829566487277021341700558911396621800935230435395488825590266709000657118853359523301307008761904282865576790762169073394085607061588936193013487802595249967031591436244219977851983004379844414548655165908282041411393767318104087719596578936089006009298571878482454316218024538611683785858623451078284918216914586433097247677113149590308273461852478922159576361761941580341303131918416077594410121574394177453130001079505644225251093067375232236885432427912135305575926210031122118620382975027538178425417311733755171196816524092843676630140284331236103292345231891837022303444549741418863973986508372860686169436251316559806429404159609558281527947448940796006704015606635423305660888224109246225581873588042827934696642062741124597521522027613182620967360927370341863068042962094801519011215646323354619949604974083444354531421150067268251668779506672541821696486833308233724458549241292167319098180229151717027639539076596084501594587459760737822363718204911724903037217284752147681893828285852418664014070914099177883713956921617076979010060192305266297842195100992184012322062914006048217819490156194790264663131287502908324448371554662484940386152485353273663548381024000726950375367248133315649581319529832958248945699470154098386358837510527445038754237416350534548439059129801016033702406509141965440640893099287456350361224915848602375132873373130617776438334911416797427956353582643265650934389743876971254048909954397610309447012230170495967791613454602409207214946497104487480382550964755792337840850157046965409260993752929750657563244547864017818208689976035501204605289875237228409656415401043048746627607199592900351813908226465627800691749938188975755041245526281187695373575052501272801592229277826773719461371921651640018071110326066546576457256839904111265510326989847762004945257320763366118794668546807565557788161683365059804799752893885934462182727482769757353481167038511000881206002684512193161349872922797354351452516206626446755043513009958875998659114434873302760578327386061081960325678335362521398537214632713714373366852594289784092798477878664746644957883589668082045147767271907031262880771077178087594465928794910582812751317845119390219204362173999271041748174735530055149680713746137668261024582297889026864070620871691840805906684021071179755073163609712321042997983319216599464118767390473835823972710206691386867582223407683714025128786024336013754569561210121118668569527576098387624201318060097300151094877041864750146034719095600164459132581601108870034240951086006596682466186137003404540305650156032108961119564327940113323206244129685271897339002930438752682641325237281181873418377266831707982236681984925517311140484292263600497298366464717470320358925111903145526378203697482737644474657963470343627745210955607492099970685966310831881197052675407608418520990745264126830901434767342985506555550495836710687190384924438850171624189592415970643895517919761248010511832662108395180919193168647150076228549154633210029492313843480405709777013982744519348392219713060823701654633725680139350348101212266051149768782946285862320643474121126266335278215774732452483124135428660441401919056371445619336167340996637827149600978057687541695344544059947939618148914947728839344493862378544571071502666829049614037984996997990417731453498520525154680296797462648196687022861642312147762924124296583127636615013215995687556303213834957850419502366939282044083814911150686568428096030448529697382538002417267698709458055882387667508804699912381136464981780323271388627539998143064746124047754171778696333861396561788596483175635190236538942860987981324310596410750202204906039359870915954779421380986417913250939151430229182359194529115029434493134123621519818215831203202948600394027669012663220706625706516546005274752240101992387346902997506116316619281850976779226093100513544564936116459656602849112845526224785726874706115946260327304926038731909842727022302279363717567119268583647185781515513352034020094255732570241356749792983260661689237477237909231564483699398221906223959835129277487404921884865148618006764683647476634904354685227044181503294734668805980259970451471908672697542090927146372479398724290800146596030612664416602228604050721331815082946098885070980566227981549989279243140532399034861738080214933410263315505110372233887514816204398816296144993711841473065439725635803732060537419376715721551625202628791243475176956627450405183387160885984370464672049769257186263068174611117896507127338941343126400421900228426884632219249602699285376809615893194890230425833901286085290213585525352287293692772573112483980587096220893068466462636341647431789867000474061566857637857107584274947429648579667625487697959410694492681165765692579106373912809174332934276600823474451226468172447913454112832897445755146507869565899052824665349909387151111696795153643282615119827898668897109310169591041784502488287352319238448624226362973497576843928226311202000471321872017017837109757566855371393824758533811898056805524561758925329012410446061386262529720144955188459248610761575320195237921069318224655177285864226604778693839844215191391884947712040124803222614617113859479756568591174574724441827556436675503186173710531284061591548821249719371730212674392008204111754985468363984135677460883816733867417100470330451223726996329675335035568374255932788505284843970995341517659032938402850692199642609108990684290371284529345494907934984037039501594365634463139951298245813335313896483039546853777423867582387995950731279166633912135762293008238137499508804241436770634118679457902022252519770235995448842923046328754923496722087300742261853262394415846865082615318656057785769972925335180744046382897304361213124874166495577320583031985264922840033821229619829400035721889609222760768921737321375612817140127894768086018461734761335830477995555701108465899184652647160290624326823097213791999950260020076779284281280102189046550368644940685163746947400979670522871746653346534766832852993058391752919256842294613330335029926614749035530997059294430175663343834322304415434370347646640492739502658109126488241517806384955847321292598486391433780405356376028060686127816888921524835645436191658459051120653701944847924254620558790155833335432558659101839153275563432530479137407024665888585517326415578510827116214091911502018761617581702513117007944140863486314831905529615541131867774760309553999986080793843749762273037037169749162292002183000135339181299918296040235929481622403757349964789815652622682469224661822660033465631554440691909194461335922947647617530984014456964949854178741721231360779557004623157574070164761282734096389797697740198761601941576015291091092531227618383478679518524193706079791655907057515180512954283101853591731863652920291308420578073926757411563134564106004814859065977727755892339730476017611861094666839383170513676765980608645465327538441719332482103500346143870064257499982174252182121892042469834596946017145410809671735478479028964900570936956585073602799626696168464311182371981949954017555507937248780196933765045134741237023278581717052728754067680867786573319191806541465070234693041076026043807649839841877624335388381358183139633229783045192735420001244347701439141020280583513761524868346540092241485555890737202921946094967830938047252254271539715644613932071756205105747947382556303404499840905518931225258151706446913599454941078976605283937995021912602612047720514588368772774203939349274661742316966127244888142028639142022781241935332974216945094679545206739569773828062800915341955720929620870217816235957315398580494059913096459784367461688033276247131332187163639467180936674734403357555262197725484420249996339317486166811685800241610193571815876391393715915310763425043384067749110062398885979546113555397558396530539242511338515197295715072567194931591445438867480941270092974257722117019767807775541153146444158888135464046100343675463395438136573794175520229837046337812404527631159587874291541420416206624891261623850077703928634847262333435064417462265548889643289608471692123310844633335053371471733303319017211530774818159753187403206520654666303834024724044364192958515662077201957319351948859162981533005510527995254001092334656798597064540514291065710504302628479375935938805412008468120716572595896827794362993111922904628749893381516161241807541838876597271700031938896653365652735965704729837055565100268027923851679503365206653091784354680053222118117845683243680044326659025462859459910385475796520912343895032510595830284514501945309892327719848928078784554674964362756461696626183648666203671557849813839868252876195638573608520419332025764108658530820783460937354267441745879179816509776067480342358794378816611199895956667944648382154771584452235751309630861325983230445664681920972502934490357865898888405205528878640659389827094109866215273716175244926912647222856267443179067066051325033145720678344046379514260173334959206264618127328737794001301535715736623761268528321103911201661948115587795504039408651223604194975793571897974081155637346720742742415773774044410912384855584519673648350488868309931389823442124854956202339198190060354898518044067135803314087241326581558085633552923565055624340622173863587100591091666902011060085192106206152172988987083613379458825841989297281359378463864081462097321574887645854545290564856934762540928991066919225602464254529100149820094514753886905850782157499016423832582661233303084236017133133019740264365928105169746006112974134995436114150778901552316163627582116073452193855111272300896003399371087363400847445858281169291728401471592927127197382253553963987645924738369326112803742994013875808176175069360473808825916076549966028549415839794291304417893741349812851299433175675824407673417695102424433117320805419812250315547648257870165086576670230978527121343260960828280847222735516127980217943248638989060292519154480885294492491323857532148964128445650583365153439839435370632236908681847489163408293026856719785796604160121522883409864495030061363798475278879019534177434844467274800436348276180823399161008740511223516596774451783081921670275125143549469966872668737082784919199168202590371147765982606846429716828871519648270565793794566304849953425828271002028745751425313487886988808012391825275474862935920257975002818219751009946291783785110346671609157650768942405764348823245410625517145576852355740815455232660177674320947901564520546687532565105251479763201112266026752483321395508993126832634930136851924284030942602387905323204787679384881578179912075883998951182420162549243993752925029268338089129651247232814990269823023788861443531898799215072001787269476593216105185240507686364891235175167193707377421624358856294062359477043120052660625697625096842178121148882988002661604405922232933162417612290874337902228780456170135772375061952160342686280629053786496887139338571256241696407932447583136988591827299927578294929575130482504366602853237140205496447338073824577555825709270075915358213622487873951980644753650922833873219737894509894881222431666501069873961667298992096442059681756961923183986619179340847425786815461594145893864060229613295003812003838976745020863385578266798810656903699908156782778516378293459936194336698065297922152215366628883994026803862183878413895499792007228937116950775706172400234487289868380888946932582186337823435691207402895687188566870960612738621934987326322409606596069917602005453603816589660214387177128755309837099020713308471230391797557448381005068328095118932927219123165494090664021456835987446321626557573979283730870286061293977236838581491993925841574254914633515482041412850525611641438473862157948502590959169401670192222715205159244638478673684403410197602254850585962037452021034019586721608171270192646070460795992871312107480351188250682335304496981265520956708088454194102253519913136835291159722281977965191751091412574906675271987992843990372741064588671698118350910120568349817677310095484699100664217037510129640279526680792620134649082657083731273088770349853816883018041591073508780278978144452516540770812748847379655033182989360261051517090092011022207100166947994860649884160992557782103329254222023824316169379455244507711661278195720289949059237178763071379162077328051900435950630278372052428607168631975683199449535965461758237933195492218355714063821726217011899062436301646834987994306732489748402990062675636866393449866870295746329559276358227417390476736646832709872540082565827407937301342125015787224693593360232027880213344754711692547244278823478857202047848109668249573259465069381839328994408562932954845234695473247072095768155000313628681830587359766552445629233370980039202446539708198088097516775900082945233933825387379751663668484819906191718923053029327528205228873899777985775746443306673842846683423819777822394151522436389874249517010656678530267666437085462406145075109823826508232921923116946593605521624370127430023949246000846441913713453739088171054329719962592178595836890022753546934419927056354499446464846356921147395454234209303509561912596294276033231402838156419581239921684357059261155218643672939081140498842995401350304582616685615119192470424806777874883871318987189673826192473974908922169656489981576717042890174496662059680086819909195664839871279960006066009833665085013172670506678073810536253324043615610980110847675549487749423658516371946527932849799057701845104909170153356861363244389487965903436759034956002166426558152444392827872271735945948307893872024847342032229005213360684605312929409749759889320134905015546639978806999170087371588917595677689472706181150301964728913257678481619091938845977305288817391379634191013912282881868957666915817506640190664257591185763887548293436299211719127105497738537301557783810188444186065783059241045272431966922764394688190230293660368939291435279006783454920522889611788605187540831049180891775926096257118288327086436346727818162747255714850253575093560194453370570429727931651832436970736387485609272821695707559352179828293176304039885438950572501794655341196643840611832817122580580931386536690163234155042355394880397710071250704105678774162025859908400717682098941448674622992276289202550858081621731508389755388405349427919056734487660483097079108665922529310175974785382557147194645296290878451956517409594789439633768568878413363340735390727437663722052802244591605345737540661837169580524217180032186022858375322597888350188042317887568940231975197437444613352597457897400554662442432497593440495376268236401505734726953980110100256582513119575389158493821251296799677253621276460763910672269184411105916667182317481206619477228053502579386189871073293114319621955835900757325454926544053448587623799704869639821290623046526023715456974639821850402406160647212247386285369145422758281589303257867192003815231307030123145001620383558559708463628872856866182958803815141259792427122280065807217537599560975302816813243190882675811213978645897799156707712334130061405072073787477542271334777231879138778060411602833892807322946298610943899480426877630904138282008249327643784456946668559691350972809296560296837842483190637664897589402297476523373707075902957322967641074447790285422057108331864160628348328403937671338148094153081003836346209867409231416257725926016424131076838385360967743938964538812198718470878357602846575850066264301318356377598343942325631956738892178647425115391464830610561761852266148498621173529930039419626797835115432471979210099902359950101850452263362136629541758790411552911630059509298870937205111995320951919761191111785656856314582374252733634874426217894373425559443882721099552583440480781533630123181725047611209858621391195038127685768422270602288085792280227899270135450268982898128670846948085869077368731048824135209253377992815178280722473043295605706622345618996569294079904301031800558838515495600371015362883393296308388611837572513442929623743625690286239908180896674784072154164821536466985251118356093769538838247792682054035562293103398234617217749928761143107112618698176716510102132817484322686049289996213744264891787470800521778991459793683257690825447049955736546073833295445503760545561693846299352695559825481436952274513515963501284438165762387821902834477841943484916754332208988657251072163801257455920500626138323533310017463563269678829979522312213359229559877714784256215281966009582480397960741880686481462221846735023846499620948290023721674715130176161834866485690095804452712924136107744855016454016588210094695318516709496532028368556343942755258676230939902626468802521002348398810810313959156722167521036403116827698020447084682751021600765291285961812328923919989837615465401528847640238956400800911170777168663258471518886521341810096309789246814277767444249098481946207209911860617837882725606027748920250775654960922415372184898191399949304356168693621596429177109525695097069900632310061085648555448231768169491892033538259383979779552017806002615045384660223480584280668080054097272424887098899181403017210837408519716844655506868668259576213176185347414437764098116897462020371211318615031805348163709928051005793939581839605381572799053173564620472564675646573375232496044286662754228334119477101158614822513290574723369645459350778630281397035026933558672025420653201911364568427852227113049930847401550832055345022071115182925037824584151595423857290920559093155527093715730436507139197066270720836605065359257807538799662427829626027190863678584203426179427292783872074227039258647899698885201728543732963891417985649549871231317421078111745847834714810113022006691881171390633223774639144278713501339101361465475823547313216387797859422925909287326603980617051451051893526138463564900758234863291520258655103110341381404910157351617886075764396461883410175654441487477439695871259318206839292181168088355971272265371195267463913547288909010252777742990668168005319870623247556963164794199431877289989589073717447913822106916830314430210883271873693722363715982485112777376585439522066498763027698123461345369762104739754844398066496855150018242872413962930020784239040770171753087400621103886981275161331107671042265609534206562796480309195917122225686050866069749195871952851172018630145722311125595805803005959045178016209156003392715813561939615245058294094238306752231048760275683319313953706159405690082546716340768851873806202839376494141695224789764482741592439389073858703368311064748295916563631940759787977389368568253656567981194055582946890756209748639705158628061604955380199298790107269885264068694896100332327284203406188454212897943218868970727382736277850137270114963870884664078607942655552555485664825367262388553019570089909441814119681927822521474367302375772647906302136270092943519353752024482465044502817747353031305587840428905295653616695575746030446840020130258347285787860347964296622856338390938504059599633820520131345977594954959152824913675826557737086309853431031656991864774935235587698561676402569436794965082659516493618563906776134086344949610923085281595759473244692997843787506957796523406627034893439922003933142022159640475307987724854719289903190331136067538740992626587614582952454629627447825306071370861009325656109106290159370323457846510942541565848633675971714103682469068213645950225938235868980342052145842415621097712594198860517418460981052180233091349159305532364021180135399382739076096018812708570022161499420235228530119785151482540926695185656765341040444548548817766062915333423935588304097708038262943189443850770239040847501710409323686830979044978493238921559850021435870077134287158470069302471676631228530283911202961584833228762187312702544027509886977752418671972580398456783452867233726268194259137689223732798696369957194750828057492990801609296385648875774366813059933003010651656716864331160038178433180947698249242660826392564722108563028212285843591291142036032720601825232379462931092541025124541700516649174969785017658680012863254457378725293267127745162433436012734039785930222159961775173614866679396765633221951493429837679037493082517016185284933834424250418323030264100557818831854428936408740320396600889234387100234092685238849673228445668736570423431566989381131170854980556334241109039029402069878836686500964163691705281565858356477475504883191164843064598996632703398001097062714315487174370481121700620918608416245963219627581891687594715082363689276171748516314584518070543563797072327895745053875844710075645587473724567162607587558263162416383017589481237273465832842643349842119906790332769950618788667306344903282783764859091686806539844039317138256966595923657348223568760950460020695736736953943537344892878945414299449242296541992068707171799082027511232288302063740933243082840768023659962230745072395482913251001462315228385669963646481619930610803501193409855128773081595450154979098326100700084351632209140971316683905093077706782579384891592132099286598075166477627404210228706958031691019769066584929411630144904175524152840798558419204594222472240857954524899661499631295674599317874497834135019747600248558309355697881536973136321445251140829284181280450249199295984561729788649836529671737406535027575784653418707842130980573575850987089232183386027668096878674458767393704250610529455934480000337948441186910343848981992721780045698408825618002774024697155696345353705817713249665431707954879525776642112068569434074073694165211045301707775144950296642015085673418561330879369079908598888195417742618803144141748693529301286286876979634971644124217738001969097486279960894609364253067910417459357128319040298311315505930386112061927540034742996012976984567285680075747868256852655888055044650282472340621226723098765095246795551167576075518973671081866487339135554730387177148259924982090655636246368887442816354759738020092703372797235756205852019488731175736415208568879983962553950672045765637086678684961673992899051663954734806468841632161269623214043004303497879376589552559126127334944313749318755851522035048877154206128323215542501036958420117770605811310857406721768844739241215189067429767995284346046208510422989295590153886171777859625965902453747996448057375425903395571736901793975160019987583699094035346020060061145708129727286492441555885975024274901019975278569583453344943250025780204344440868289075077439617367055383761578786385387000953573335902594668119751237389838726653687955430018415044807205276494457025799468680349949294168674710474523631365047115269827810552059962650022454407342871399194980253833385058853936499417336369643189980369532114631746171702038807086634906478634042245846913559042424514028142597209433680394042646957622035197605253746691968646840574852273222141126346820073268099128359680433712489865124847133386599958155703624128431192371380520698554630522396286001693260924761875232125700995941645450175979130483158522690092440553118658153197845931405135496797501971591305636407967874274388697431812159633202424536950908108540107486745322336694887417447584560189776395844902174934597104770315419794721755903104895515071303375092264289474366150114617112854048983628782321775540335581513089008600231119089283171979461527339639814755795610481654721822820928241262244086617316118295314627011962136619959410879358356432093296418935628950752183416094956286605476082023394390369382944107069073784215937110084355080993495125848055614260279488811735778231410921563097755633435689280906240147043040680967454142850010531291101440719318106005561952937599440981612645437443677397892845582361680657305686818893290555248377738869788338482126900338552557729632948503625724161794560688062505674398343584068858652798471320568203326801584011861225371072994592972198314039824954643013641412093794464784632967308041240315791671468107172154657975950843790654639268944164367020267173333214286872793000675256808959472460540077392143662377470366937064798928068343630666235735491883630674089690534541962549218595948296352991442506812421957849397624936269976684320117178309478976453428215921105441925395673890680258742952347024625362720586244529916142578749920154783492516043423853492438434103038072737707765701474373435807984511214989021387726113074931251848497128991745909500393219062568077239325454554691767350021142782515915371392247521510261957518125558991922377560556251862577787152040242356430080154406473786864717745485337568513303957730505542984102745208488245638018117432441150886669417202922513871405259332921890393023484952178373235334465326269377747325041092055082762701360107626880573492834106150143211791258410932812267491152949691944140579833540382007949205272620731238583327858875647790567211041654416614707612883610006243841305310501400810107987555773152250424635872420813465170781968132664730526526687009753901023548400543191030305850507328485666218923073610160979873010960457878627259697182149777459319121724208552038322309774373362726009107917085415906540069540475769464526935273895890894656609355321694271294261140189336817558212336609288093686836108412959313689766825463416180797337993114349199450619767414038367395910433250837896097654632163442968447504718087753879660115946910584698569346315467151967310540189434725327351012330555664924462530897985525988963444453829414488382570967123605338919829313649034991332122842196608736575713694328636338387496569415447710706138034367393954329945548894604432862117042281029757649010846130362580988520444565288925386561835543746690507579482110698111609436227278171946884422390136435558225224330140937115484011366213884108247980900542972492869087707863943383569758089134485548375376777196589593658751543275029493401163628628419330604817109392399879190088420348729434372149461239701703430337079169831624576605061362459054918358805245203073129842425880187096078491816358337632141776552648466086267449477751311633746098532615677168216013147819044560577089203080185215408812688822461085420684333127975848092195444438896671131444617893147412936651281987902593291945652736873448363988933899843612116806898657975674885165488863376900353752919877576930810573551739514437952727038004470490072857309252626316730990740006849045997587871320935334814799807297803068592527492154032508062062967936802909636571196554547498326575576094672472292408920613710562170097933992793206656709458921208390498460475864801144552327813602814534457954387336599185402955060100187896258232064467145096398089199675661465982370141287366468803859403266522240875088605288410671979991408544870072930220172202603047863807108861726314153139237489947781917810407754525553693605459036378161928639420022669648039758682263453758128535507962060646362022763410015625391199463257867883608702524372526283033010210448943262262753220736676529109162819988871916167866976986172106895009023640592917572185945847630689212470436502753632835065004334618318970305082839153585060525172234422933189629437257761631522268739500581359156379950090704572007260968988373875369824262186314951213988357167356388063005629032547514519966181726778207896272799165637748029910225094724409419801468690188625285100423366590664307650167100236787351898041750864760380556088271198478863911696605712575811161433220316239861953996081064489115129903832189244967115181985798502770446978518416280732953187522170737542780783674506060843688776930498302304143646891398370082693964060694562881641695291665443739084757281969614641195715806636881312484878296005192365381669691441316437821280803774582231914250665372731866015855576310005458819146086341512013406605686183053991092842220972227727666420070998758231590762943912951563496720838098972472304203873278350860147411604828520420074395960779396766574545741573438143762929561095311584820920001996834922274622233203492297879772093259373458931853036322002185233292266043263277738699295254400374606548044762949827240422914656005290459866149053053303411842327747134752876324177468600510351968025950489335416177387650238931910840665213804667466529643577196052289272879058233362671718010478707415097865327441555228155097901531432569914109132995250276991641218479890353417341802888078594370474700374687166980729136987810519134823174319971817569732471693411240421932383237581583407505032512102423272159997622559536081716396595545921520062634938327793871745098766955342878789774664436385517065026504485771475878951663905261261876717387540459387759244936972468702219846805151918260343414635153375173543983465840366500780082513376195811125396059589417188047217874636046685077559560876646149799759072572546693095018122660597563383204512084638644649947755674711048825818624518114821602417311351155337639418016198608293258482850297215641249354354937014722183714909313527465161404229884034725873584804710030497103678619969039664003189027014102187471439739304796671271469674524858219615904435885750474711610835582761860115988679925232776700779134880627067843058230376844322408372855777585082162732677755215753854931391889443311370971879765493099063043708381210797273160414688741044273294030727774363782884423977594872346291732896432364895042303033952547723285292251820978632941279227761069976483964461549803039103687476367007442072013486804209783446567078085008512489260912708157237896817953897147166531635417927413249374555104906770883053829104660986180133549273647157882317517022952925574767294380718432352827893878730585071721698784087093608489127582967318450352330091008245008946000168372896985534781567708986066370243799181871271374835942442963643209472757271104180443346013051070221778247291988409544429155924729679314766416864679909456377046036998870079612857346705087176357992672641907758648297958015096149717986439323118705902309745168343571252335874425716502513078384396781248954102878996867215558351818219767292372675088271913259289045705392169962315734135981016260634384197411159559871219485570791540409912608431534494729361825971466635209403043017943612630797077809538770794982864536667632635334220689453430306269748572960188084656490209749955256673401338028230788629806818705205412520401199904304289199124015463064896075523480019294548752880557065055452354879178955987440250913007416419180939972946822103570189811867672154904495028446259968376782516887270792953349935513985117238049116955666124418804935182119542314545793295497329011549763279700425725292885167605567069578881891666892649627826606842817888551356822010598648644268973104042064203886202141593133433565060797764837286117478541013181953882096326373978186750156702010351613827622355499078167081762580063265190907230973113261264539480612746157639746972903819915758063074587538517334833468607608896462270121404016579559790815513643179269714327811600039509295305301566405385440144681956741689143950050601298995325206242564025699973540563356851170626312937882096557630557832675616162922170394518589959392779546333735205016889846436488820731461399285601576461906088270052183882944905283501856406504336417535013934985705100635004423277553280516632501555360016855860632161801678822889859277739807082344301218764982988219507648793745273249775716467943768259786538077709093158268698932185675410221811370662891505071916924055717515372979854679547716944046087285834020071682558785035025806898027943094618467258018625571769991436669256776624788825636710239050892975798248952227094184674434146644119119762486308867522691737956084643416367635588308512954865371125074490373228827199257271519966000216669389560503827951906623371071029645261125354820180816234059316123833832787215450909054427198032006442253236001249893448436367593719142322778515962657684525307584855373583084165152477784998355609967914529055371289933804173580332233138043482601916191028053475986623854151203895606113270055649668928131675551297996763366535540470907939888668953068578101733026605688536895602118077216225892191992431173048925224971255312282117588225282650923582291225204138370082863879599408753314229202553788319259017888175978943077271131604891567850867837388122362887558552661186573367446022611736332880225562068614958467226605377935752555836093409891638296365998007307845001369945882120519742716629518893636617887245193879883914985074636701161462355909180891464878247698323775978709634559315457068005528207062946431076384817183641242844883222416345306417776492806003167897001913734414599529081813008273571202445417814606123726714401875382252745351515524245007907975368799187115671028453031873265631128191873581420504230774629722540369635233574830656204856108640934273833183346343273512715926423939004912797302888378346374423604644196581584384053191082903232393915006370525377701065942921907663931808108787655759690707840731732397323550634413585567460029281228194482626386918581367216041395463318790725616930815409969437600214768482366689595833864458433913973419577395445894737996499396501973180187582154388185804924401538657071887678789060589434397057243968067662330777502154247770823779044126904120760661717514583290656812401908880652059214459722368760226173024555463740562074808139937746700941252221532734488417063681524435825611869662613638340292866449700660379967501793763167639180694376784338621490896235618201056406140123778850988356670847311437168889139426847948538764665098411719543370289215848350725860197651524604154356067627464117810379580551105852750942447296557129458895445020468225672010620986206771821667486885596778133367304894138883039656612191893305871404778455132876728030143220992705290210617713921277375905261246803578323361223167245131430183282789876952990465506988485033434839833599227416481068335963179705040480171635758116961108988752650503945545081890457820333988805527336174058906607625678876023448996558182195071306798279843747014713056703678040027908882626096875179843306216168364975773394896181344188241688650228996780816279756256922749808740208876881035943692992039572656130506812883876144119591862400223644524800394799942440582531726824651352094895966587269366348840150992837598464647534240305615590651054491691242186078781176800389930760906904835067279512140300340459488292084535672716329501200711214683765449414070692596214332856787457468380185393045462431369855987326420707337362095268253300224659565421102188316355553221022325835419869926664913531929631878234901491587001477499219108946501280172618658424119957747844638088817923589672365496158227535354996984130293949320567962137577698966542096156183935754851061018736631402673250619956581438409588435459271042752474485532015362900288790273637151170976115751044744485750023258581485607889851283509556122124413532387816233318165611929257620999185168792428624230801705860076558534645099212221386291932006291667104053444132530994050314842016003289992319103284017248036032641173958773736439315805475634461166744219590534169466563680049974608917632616393699726800567119190081116460002960099906297666495080108508005158670385819718130552317324630173528769303497898533046076126706915198052104187921693861999113136828410258438748308631022755665240828141236888951950624472937522403669031592181864323402691929323768871517708076749523898992149245741762991858043348629606089363110625810014138063060123149436279306873326876877147445496118241966037173011732267211548894144715807643463644764575907033408588793793885511751946742353404539412252406457071214465904665673480924261538841750263649967640397964039506453603305846710659160869493642767063841875250763968961560317311929268633832386744633518113308307439130354337227907141030795282271658841103444348578821809080282082955442812200380195266021863595246105666063149576127025158230333522494707890466105078851861326007087053125210092418814033311098034325447218753564339432204046595402692850448855646142510526547958472166305729945635788271560772802148217504478700112477936570705673098921138721930592905808649783986319434663257922428340202752079620107667460469407170560953513333993760749271301176506022224078447808214938396398812005477893800566578035990431148710163727703521449472844806598021024629628637432933375005342109840248586097715946034626507089275768480320183619054988522892809537682131515043558251720372860169596095876425139501382209840496122262422817340434028089399726225773933036610298681992213377579163735603453780755018132559615693550103283299423849974751524338100115195012131780501387964656284915433248919433718326947019268167675960615918788976365260320865126585226424524119959018981878845082876944376766318492238487992413740076722940680731052803953540236603520998420550430592120388275565593048083911659730624501772525278790798854685084258555173838383385199434428891591225364411866964417124240013588796072191061349423083302978966344308827110746700052362997432610231802714226622261875057254396907738147426352215524483240080437569669907102947264051780301516189102680092635876981841801303452664710551995073160643267550404874531772816479749849316816351888113254614996403183140120849999754505654405665114835838717438107104444681995736346286893002713717643069604147832273275678903050809576914347830867035401616202818491144123200843999282131818484332288134255124888668654485270842304284009883138554901003794026484476236363753646511055008102940660991524814792631730877440642070953919991675563931676247589083224270729482954432815122952903164750609810715170949321661681302220084899907335192848409001433236988693791759977923872805644858636356047169644366020445259704868221514419781591232274757877216398657527609840899889373777508937404065845611540453448898263567944962864224707161326587499595583440080244940052564753112758294582455523833993886160216709540903950962298436975360579443816778281566351717190156086785010229710669378772149098891936845438672597300797493811034294535811892130291048572049967356221167333663500764326274058829544861575696143204789633059172525002965595468048765362628154975767658027787559023678734816250424531570274183539064997237143086239536428333798525880936563580878758721141673582000237858579171465416121120260342725573842215518015874630577677939529367891253297770050822625008193741645114168473736572522677789087457996823734527732736062994642924169967155086229280608031678771501902041616630204935075883776906618674616296470167705634418308967626618874403297051778814524340125122267941041217761721828885081597216420838479333398295669940349593790728203397800879604970137807029401457061832275296034853028371922261005939564499124150927787546136682314612894699816725882471189854476146641359747240400116726464033832999040150263527121857991381875183821542253047992153889028461653792947236379633347931270846642722737043541076853791213190343311924506345207673334380916812903926710929875717714802822273307085859022591392905258974002437571021699553265761333518518766386027619970039805239305274289337090169102367520745177016964047237538638287654319043029035798193044682863204543018914216075051699668512336445188313943158140465206850355976752840620968648400146329880263832549562721325827573448535583000222551331859622886497724944819666415281904070287971095056777558383647075089292801299214655089846527007269657168897401324328795719821723119028109909224942106911519427044773587520266021778729973938043291783216346721288728433697903169348592455772175986332169229101312996493456569456831267284809584292509355156153586820337367220136128517195799179067888794897787415579507858280400519879514379310240973513754244522910665873007865462514188208080730719268983913504925377543744202657016514854903903784915335783523919509184229410079581794626130462168818441217468062207228710462514938764917833389258535941543991358005859024298540855725044894291031130668410610525215294364058942822561951509029885349670118520896464332041879321533366847500909379474586244050094419795259305808470573044171422807785657037127947580934562908770479883469716932355169605915512903946546491946976956580104477212211529717885424206301449359990364704881686963945459873956649568446800827974064859397628886154206344959520477876479602222481404518711220576212828951209642426243976910777918759891509169674884969014041781462488218992047215397897010041004451916374635484937776724048963056176085749019066419920856498824416659259136411497972110570920048346356219112592053159495207728572853502277178691134317095074741774046112597710544066392888757183933236000244502603875999517421359497976494040004144093986809319328642332313807310726052347022269955029753364133333637683830769912223911477705585997784287425696452597304589798916184400911875473810469804380559517006296303294337501124376916592072295301512543213940544337789162781914062155168208847363453419799988795161172610284106323369853456622714089825020691286704441169025820479657650680608338935449086211438738256599464349788032327217582926945169986312673587510954845587846314075971720196243370852199677928830820417083628218867104294024260058440043773587533107041888142219209246071491335029636905846644883203194741017346112878673517942209414546604185340301551815562321431657473326661079898031090681700826887321019364595617858517345054728589800787287211541725674024419790288432253154101921401350912386711103232137314594051156147067212895932638196758037690723130321615824730407013885893346366335976771547070197732495488145171495615889159727040316443495121859747041467171509731132947384808502107073004895212374842154038998185951322490144185729193570943752415921554569296311501449384703394893076243553834235439507857917705875887328687263613772313179576318811917493997364582955995596168471447844151898543077414559430091627277706400678452622218860633810672484726902440264267413390721935300584244062259464253948368565478450534349052967430589748649564389293525069687282557307388653479795697379637394163125122113572366124201402646831987523491375325919651580619387266619391605104935926527132169220962246396992453394941681487697594502275693160173729782522593211392279726446990787079721129270100728931641413289755405112986071300454244972199825592301733559399196662588628489028016102977414728147217996074304686368394358376209663705921780035815169912947673154832624347225298003800959587555545136352485292336603666133452157849202685061519492034529021461785142032423310422848635208968797421845400387349417283201176273782264796397846777136587351119302070722256003750749407810394633895199845441663143229731608084404982813543030383363163531454052991483164256012510682085656900160302972916584678918322105869948910040780107692477825728067218658664493575923770660199972606595255433273364250389479833660143199307308480934516150880480764636667529086671693620624928739814887990436533387163969116727369702731265374284086097348697293255278854199301904168428232139585796602487375406543926084953186341346946867892358336068033944557618564870113259642775582026319256809971589448934540735451669323844921499118554933828244577076688230525469796128224404159966892371592950939237321195478945074080677444890038062443457522461155572389422683859305152775497654543180834902387291984674869316260887179215124829247615893514149141589042351050735349679694874918633443047936252036510556721569888239520349805230153122385212513261664494737046124818609901439565463727101755621611221104722479265060881879218785645647702019187081740982742638851785178231952934190481931571564040017826008047464154536425857968822131471202195068707370393121533322394296471014338817639918115074215554226048219902450082052031551588031076765688121985750384512044736027969238848943985040776693919191780385131179046372645787280056649950159576253027673424749035577873032069466976206793710953140878746609071909005478715022757386156228403119997936014817401814072685593464247081865137267612797342776412408940702412250575912833204487675083824823354900622431962572928264805660096775092853257303888341824250441019443837490829289077044151815134327901263186270934410280583331971839380845112478775779052879961424809685375809766676370156948434874317475748991463889163350433836273988511029559099726899559047151129179455591269835942930673857430486989898559443261989642534349217117176194986881381153736011925283763481221877710943925932205737095626981646452645930525413081768047684917996709459097562709945746416687312998517771315588620765543315102630236084922353201840024644269498222009388561981417423529421101204488878651762047723100723557737117569645402677378698782932384884658685482430725132245997181951763782065167701734963907291197323152110450838896369003436345649771388418056802984140532309783687878873323574584371677859623193118212996544264227460331165621899580738570914074817090777072060125825537255988182554000170967909097413385517915050346241362796294337527980392121612449422857348055409299617422186755267066387154019716495925804198284572723394358727384912980625052299082304144179642018632393359756408562647211409871027568423284710544204769273722795869343255162372870613062489483176830059503162735392722215559603719126092705632090016884464223997459907628360386145156011467908671952274422534153735630436368076582092944816815756244075835420944504148183694007247871993716080747143704805272412272057620014826556738425852761520422575616775663448908355159040347559705527811498513025087412165561605854272923028993316547354990791561217866471781343392824994159050140923632016984086805996772364631180032309172314490659601839443357324679947213636671430933226872592276995978663421984860476403833121515982463348157538913621374705062677609493915654344496650307157560190525614934341239865008633497687725820142616035876421886575309174051824174917841215303222383004188066393854558891787620068788140487669276059762638850841876717239068821513753446907420527968759386296574986544177629425187030091149613528443892051450071551108730946649594990708997930523401295734938668817859272442308152159066064996075502723760812723870585121372745528886177354454495938515895687751951802687798564825202662409444861882867270542074750435367998458468021181612451191791640838822097788641827568105850767756572864848283603702493287158198060435558799803757574763317200005449598498725166885657063033528760680930815901814105937213785607881031512925317504110509609751654253710308551748548992807927921650826702477524637499837850472341148722403887877968562165891841573565939687030319350750298138289529968303573043060712075466299805847951077322904191430681628702950900718814134214582841561163276458979779431852446703335722015183008067730098434281459855594365738971990326286100716746911509026594642792375562493742351217445080312134998741021050402625411576311412306403373840230248447393613277714317783264872278720000313243799115845410732008325471765533577884197388111987830811612825334350013791097326458045675356269284834551025317569761378314436825247785430693706314325509640762249427096972762106167981630745864773136210291691319019350539173633877209593077288021138495225308523356420091475821132150814163455937327663816462099641504181427926147848561122509697441807399401218649576170877429853908394199011888587733637311313017101357779033475620443952626076779765685385041517800286220260173983153578949045444271657055964920522231883544742831119346960371194121860939647436968352163008411309212213761236193155509118775346445604293737921516689620242547168037781827463859079682073564093429943342717920802887522112543317901141491160047963896033187722047145519259305894869335049922335765207063933665786108085920057759573577060563469345760388491080506695516093810694366212875882733161322864831431471767211570461923561465003774053872176274111366017823585584517310029820778999364681776875980577196904429326564149288895061617432739545348233166639979174849840274783540535912002226094399053120707660196672743214667313250599196153749191206109264878195377790614253518922346613960953196062526178425715869924378266091617174649716347204773896131486719429482490291989419167583088892339731174155541726809475331027377979970981756504505473602276786210697540450592614388377815161792537901060640229167380269625734343046453004211042527662303055207247573930679272639371318872288012695855490424866322830702277401555280342205573172609159292751328720443377723638154660224262722795524264047906912853466474395670390153666448251186234027804025378088666113535664410691376972388236540537057203264851330711800188621777680597953218065436753210222504280004399406185181288953614073372395066311517070005713863153021329368553801848986969630285108930120217950647072487750320999483675687172470029055814569840514467469450718871737636802873473556196853175307566120156930570344309876149723068952866444156407483458808986525661664379720289586844220392181943171512756411177614756371405936864000103588026389125969238170622763716762874806283816022759410511462692288809129433027766495947249738447309337632746003710843590785997667180055868702873018322966729256651195926100594158100365089290626039997891076469310195227174464519944361699915556415641215108714382080886807522978508148022862341353184392056663971152460890481318445192314929106328154027922489378228251545768271624596117639566886461742395371586574462664399615547890516373252182578333253564458989290595192605865979867134482744782626667898419196273605935202214966815704365569041670825752744588175728116095614818572243695464750508302844307531707792355713293487611783908130291059918355226223746867115757059377490937975793819524733163226623598269569980473433440261687965475130429346162426613460747325269570311488146969164293369071948154548179082929107206942973187597197310154261993356461532836182287015155903310706146530421700668825337970132344950607141683526860988131227220540903094664606618585799991415397814484774156408225890354064490646351061543371940040138616035071455973601427862345148657347962179784675702189899513333644381929190530085773995045234934957189684612711376889575979332349533208953814539846770285124109139999624094286153561549520156418899621259300512644209686597252899418435036681880480752910597233600836548235701919868550926035004876573788295162923741832713236768658494640005967095067783453610036744259491885819559592690251239311072595121211563382415896067374800718324687784130780969382414829151895604275501754206517442088134014543607071355602676349959757596004103616096121377362182022356398010145592493601568971489793336585499186349730410349500790550971037329489219764058869953201896649335082043100488523059429848680178555656453897152963868713982393892788628313053889870441633874853236655056254302382861317683147439934461560931076538494758464893162151583588989339195673294433479039090964500201525452974223609334873774857090601864807051699125755933251820304412057338911692494979374444181721018004869527481582486075771221724138298525297670352688504213303463703205901112769270842312247374039903446761895700102591785896614704561188690554318000135741145453848091623845601939821457698015403674473093324214164727555219087739691741737350641459518460785124018137745458837629851790660942517996950365872351329115406941185580040575610780435791910515438952930178607056885781172174213915509532072119708984152215425316479193046160498117600999404341319099118921551365122611550181311073519406748964186094028486928305502211992434386630966122998376165898127473066900407133131532581930320281496745570289271198050230834294907246105491095799550789366026346984656628188055490104387898957440931415296414337769026050643640983268217633628709882627239743023005506385167528922648375095088613721983335346069848906855685902444678886336439604378182364931607506979525366177704480786285210468209326826682897220715910980081977801926495253830472463607958939173700369328966358022050659802853387029968092228675427129133869994026633577360863754047202114992733399559638671394141599506355503816227131799287614329892459586632102280507272017663282902813951362463925987940841197742421478497488792853481329226175804296953605684964163335883612464776047176630339853772671737323232435192979733423764606700725905697847782259010224718618495510870041401552763492243058506497917469994122470166700310104432762653099301528420684246859523591053096968105843118551037608085368103331709534908134883131172235937743874146218392650171560903279402818993561269449639671433207829047319166667808518255197717288006277354539915927890340107862889636611570807579263712515753212564345879767582279860562178539046344387826022476983164473091167731376986543944139748134480038182981037549505885398354291463227532912260623917829319962139869188177111184244196277187899230573504472457753831194338517932212857660352121687790114047765897677843569635136532915149309638039104754501169967587802799979553895585500590455332979356370264077033348112055967910966088046544581991175696733538179402029774208446714055476253800166579619571991262008078166820288591586248572361559940162554777079141116006764078260807710789473437289911567613068507322496315912316341975884627647288192023676271637519476695332542049089161024916483733496591727080014711527101290890296121104047246206562282096328362667088897284648491945054852414755813392377362692127662809010703960329946262725094714117691214291335397513015143177467168584029059686222170801110366607146302062064220739673674027544451115318680357371197061263214355234685554438245653255194962230924422262761618107635327121848671103874863324167078904688522332921111501979009872376674015547916753447485891162812686867360422299435607682697833173517639411375681873118531093914733161347146429574802588661209843333626447892327799217189381104902575089833295752311385116384118101924499132930087784725362736588016792732391195667737734602923116714725275438773239540964407417449308810335690168994473265062935681240746859168925465092110914231643396643496535539990522603047114871175019510860362143788792840744982527033242516917795343239338053753415428633449200572757968191874218427218858846662660281339159122650870329556297431210060847646238240612020974088585109713450244534562696748452174937951998366013595995980442105533930579946354121565926037395454813070900268161647358075309070057946985951218576692820433593133365802104393580161079082794266448782035280157498477771875366638868714692849223359797020185921637526370647072392328071177497552365362417062631546327005902663040247398045335302040939313049739713079171815148863238516035140918715172725963206039775181898773794298335489621492988306516879726173233429518602919791235420914661761858081206578509755405181262454785358714234987228245076280218555416439373557287341317707953318264106958023181267827292621724790478673313230260287901476485433580999324437234918849958599486258306760001220473363446686800302177442830895673212065731090929852126853082935352033162609612387192704749103169411516483884747974567712343355744298126844614327533710603770238115873068862889693941323630060605042899652004510603748676961364917251172141710453972369837657482509286253199176103796050507004745275198706924383079720813365107458086253398704529503657739479437519432553660014210556464148224360616467707917165851176561085923563460948549764477962116551131870096990291407315148390390899181591857833265027795395784182519705615246751810745633045708295944288915066671592976041280335474515510043994933991135740036810821452010037166333769521213375323959064451506523337907475042857815969527569618178470423817842031599241711215728175313825528990831722270803193340184997462466150686413717867935948059327285196433573688027414315869007652087234546637363983186912020965620754134887411550435179457052021920866286215704650129595131279374407246762041922665567445333444729681714873544938733848016654282642378338483175654383336174408732187921997143097193907561528997991933481684566486989431576014380286263353313618572379316723660636754943800525296713997403509940712193373758571204555949602844456404613060336222636216293412245761511654193879168481328096246952444569546212508791189353983221963789994987057551748771886105104525870912001550271811121400833033945999772865870452341916673040685570047172861172633588496827107174500353890336310666580911221611227953520597356315423878627922117400279299276602723091008788964486719775106448528542367606806783287027160214912208907383598679167790798465468476544328863327545926899764713611821919363719709430918976095893307419509153578998159456268174031091186213611238703266328745925123801722185923759642039717801197330135454863031156287645397333010353519936890891716582118447202539404709317833060123964167270931216369379193323918425977305276147922930212301316365295613762333052845463774496678385572416305553286105327552078438940442472330870014940075648539493897085636662472351155496842637074224198534072188433171180862478510999981762322580581202049072702367515599603855846672839734732595961271044969489969280704087235561355018834860982733449421192795115963891421701337136254059591584006576371033621859435409072149507971926424741687886613509620131303193981656443184231910367414205125568633280985520770932399557422045837289243830948110842330087641536630847241689763751941939984808639276953179016437278029776888061624908419337641036450961260406512736947334321364751668674541875423533249045251400126199102550494220608990865348912185197785208035382979351647361636394852849756284971488562703642543761525303485679142181383415467656303629359432715688885113964534175501135552342266095177381781803893864430908305399273865319883923708251443497669579512540664055821324953476082446423795952046740371691040228650601644011882128168872783923427369292606206409640919596145904314517234161617915107061776717415112970097436263571691798097913107607554440072748231658536391707691259190055511285073280816770513474907414501195024810842767773577308103608450037555650268658270894906640961146299690429226983808434968138914924798862248716712812408926279700650937412914280120188192206542159389736338193225912707130384894216293191100490714922536282186203561764468544699594307641907271338781826338479026905141348852408834159704093166717645848516539046001096347293231702452686080786491800770245426053385920091663315079277873248325901604421715668749405791518967711591318927501780445182499374387432993291435543746809468340260834642526817073513602678441171175476803025782843274127129555092671085740230474696002644571189301805811218925757250024179106647302011294693754953338392710767838158558088756706132999649915893949904087497782355039210513630164671634086226936539403456769518652775268560312868088156891699160460136793560002887848650173870361186136616823370063762490171870354839165300888065752373767990681554788889386462338043367881447386263697514446353315136450336525098779541309399414676011222285012782734557551595619844872672888621691139127864441826501071593433318160552880980931375760219544842366891814048761296983574036801175518913300572269947591922872439694710724497704047329675133848537289891985144879126933995627276286301571782705735523845019366528869425030157128864909899305589774514806497400710813760206766061002833539832072435945672059494512168440253056141611504723767968712526931563193098160823297950425898166748008781526486773641449356958428795387951111209004138824350699988820915655540328925022880514169678792992662686222467052549066749536250132697003182451011407351929815270911682876316152545336231324226804522288961497091739711353525544012360861881545414708532046722994693907148818860332682826172282696478516984097556132809109049299420589020997586802701182971438113061665016560694050941744708413659317294603683231488678378340158466652627793811034718565273429011264696899513522043813883592540845087574293404830480525702636746819999711139249943082380948147319257601152853824735720831491052716081699222814186753299117955244774879202469824783577017905817684337666777689021776490621936995896546765996942872180109781369213674462209747830040927181905137635612325486127214522261680518029325681831093141396659245310344236884339706735287266383000454195146442303262301907189759856124702358650054207598252489819907503165380324950260169372305831481731475243043594249891487918906280263409122726735334485377798532768897047616726158528835140603525270885199292171330705785763874939374555940096761537521778280116269037726528989620344126159881063216825320644381640612917117212009556747383916722296235557461243901559905448832262644162568712687048500344921141575761431548788382262449382571907205282243565403066864339495278663919782619662128890293170809150693354760936306950387796483806500970877125842074421149971698556158998974787651375057853627245365217806628977750732715703498547747167890295666395835111199772543088210830083871970300163603754823203181103451963419971957080162637542560696966183436297269070662230614313186361811611331684184951612964799463540815516628864531220105617962381014438462014132524685102641379341166216666044355543396726083900293342498560592304772543016048596898781615324252348894799274995680405750878596158465639968827705058248080375262444099228426558107196531396214742222341535077003136186652290242424273397522322011973008959689104985405447427697563805962622690878847643676551937568195199630442280902471965977981411229976113099668948406547030430616154284052898460555610527743167094547976542569994432561515127041177684024726299051846873938440317490922778671374650487756540035261823361358220969159516531003029947026121379832699551547943004528250404116178992299479111764121739926937741658202028350242611557953577101928695026460543592411800668078233417498334223525119403957869035786809979573555664634818410923535663805321625058733961273016517920915269630774160353934361487650865695894416687593102819722708421300606989032768124813643408829145069353500784269002833896928900367663065196212569113708251495264130730020572342600614347947841846620763374247401965234906393029662233773082064022870408809540394489260237559302757838186727111955590362643818036944102698956099702240268518929057056341157634566345353091783644912706551465214527451609570926960198193514825042308309332402085693823257373246556197838050798236783914896441321211903253837193051261214351205434672138024917208445724067560783891183614420617219609324188787153906531193456242314305059597581389680014593272680369903153148589817842184140862703541323405714063724233441623052011460053724335454408580478491527383560537008329841944194087857728942894298905564111848901279881742427130941732502246499897761849958444824319633387713606417005057588112062601890354612585934515456181756840973147338420149518937581589960120875257562760332950030118318809564291086792993649140874263226672138684915224129903291462932026823734909566257903206428045338516755725663359643282983690679715448949144144284457366131214716525772928322838722519122781850333184575375231181388910468730112025332934330332281767444790920665632501883887499178312452779568780325185708787710821321817542299137029990346340824319822001818143016950158675647723184551735160193539741180681625549863346929742793638368312286209015008476329602715420554092347219774875557737277125358437929973367550413539009626075460177047832009209000043703047720623969311236199692306945192122807512806261090339608085511993936257664560584547489298456610516437763230204762933488331366455334573480473571567444997734717821981573926294356614853325635257380075373424585696273226443292539121854835008471872615376119359921175544946875172209534021714967332300854303127734300844217039223565805237469978119523847444933383738577485114274622522039346757212327850661052691327977306346288737262224195846716672022151680829100052670223641512652274077600461979496685044241492903303752615324755653009315314557741560785488843720415714060087651280761331140002151760928982489862945062647986397278120873344792984785453151232933405140684725574692848626315035477092571914420142218588780257279128331177982212336807793116875865477713999462395439860017821714044511587793376458252175919910881923830051663310282837236134127214072246237953912933883641879315532993289487987486153861391523074689174100662618607772267913487136322147516568508441991780694861954601934089370819232141926382775337591945703264502363043475687173452958399553670973947311374513943328197791122226939725459124938379823126607096382225967019008381453286290461060658685632097801508542233484811059061738522986205281789604950073257042722202039361363824795831035432598550726214034098596277860172168955987503032882817680409468520938864033636523649442857653338109795334202587523066099473777917483409964056208373304316767108759298266668435467009599704858953748415115221450224994544152838657802928530176585629101388144172669383790207050034191012138679134635465228748140715338202901919235146721268382751000173948051792235759103106294117826715838186378195464884312297363020759072949613132264235510849102649984741887018127403987203067935831231548287878038686720763454984951991134450991244247310505227252766832066034853805673485126369319466529925162902626465894163413960915097218723640275500269701088386832494142125712048869645658296361609865368598837883902802070607029639962089291692420117564629212717841443866094448415307132753827418051247560470084561419607860495448592558130716152717681871096104170286462445106386992799031329802393832292307860024611121256253749299206962360554973977933709055091506159958074626476930706146547336572953880108465930773709264393270961733589798755133298517353358057619820375607173964951210260568242153539432206578780654333681668379183925431029629978625583138150842902346041464285063318207802667408575042965493539544948651852756470881435132319597349789917141516937325688338933162833896451848870322639893055689451839191243082932515654023675385004309455227522986219363499930799560689684466187459894748823413664085188532193673114375894635657021422230371741481201272628291057331857839227334795260680041312240444469069570034326579109561734228465513830287770817092800437032752644557620090294898701726471822893276178823467995953896680114028668705263367060063042612994608494995638275599060264777652197025375830641181461287543876098578289963422105950225341504398260961876098352165231654331697721441251770038039021598137974891320292927755438711703391163224807524657249729623124765093517943567483811431528641333029089123777146612469044864551164926799346341556211882281756423024051694895444281683141404904380578860590107370067182984993650407494702785573862720327108426027326956900641201555809469137101298425529054495764506457560037403149458790821054735591136399067278064814591917064338706971477366524778443386302556983881025898793095019713128407089187196967493940026571940572215929586883457866981031818359493810271931161525153017409040319451723832245963305267862642100074573633679726461435297149888460552919078229572134569264638347921759405780513036734887954494733446456067966769127826799049420036288069900260352216652526648809722467212129461678228224742717834105358584909381808438207696712262215564925244641011600663839118183087308563542267215017218891349111443407423167201858015440968394172184552924703066633174396992032099913723079392087063326814950270241836323739355756594835586434275852715303647534674601181623121808611137993248354514822898630625369332793747372640469312673756534019973009076142621228650115856894482080371428361204858316174750390771287604650336123613522431214204911409620458582922554357490090271711431005620277966427328203684088351421899736766128515417417015505596692954335533849886870232490206106445807169228633433918553944346597418310331545329102591303606462266687977945573490454674882327531737599593723227310371044521133115338289304247739724195727440116541848431556489404892135805570855762755849553488919138564379163834240893960220978801958750476141645787338434431980873515751667496820037915379610297349443210947607327004636334366125907117926038296577650489833996820052846423420685449469930387124964664248581160442000466693398574168555172983698292635849104471793384468325043384471758725269936686233757079858637995117647437877422102959326217388171799211256496076654905036475301128460597199864223972784339196777403895823191755732599419379008549282598066076789498548433335533052044297814686422621546390705667804793891317765192204993576166388219632235722413875804881872875547783430553371416242915918144072491018337360725861313058583937963691373160504638653787616199765683527896039165412211971231637064638435087505880465755319672008048106320831182153795613800983535595260936370006453170806442028883772669082680094247506157736530695369994647344426417990880723658569162389963651757807623731861366280300067759525456983035935020931034010665488238760590630966715258031902701805651077417965996417788950664060278847170680779275557035102223714730679500650960753805342639820261540712721378560322743288616802417338945979050503213797484661490309530174023009549575261795889698360970314291408480458384201770593330872789882921065398608549784177022680019943172312560727966935093784616738081453471081329376345219647441631933117869064998248237276162056150244439447232337910696083968856032674365944761324366862391058343526372587026552727235468109736136753799885434022478297321958647384707984985141728538675277923065840917432060501099102238929818938645721604168949234020855940480597988871990753899448362457591817958726478548243687178428051181657010359994896167564581441177435999415574156405419809407770607818178732780883923516652729811729470451824894886940253978497040401257850170852522948003264485539829339541025049341054446143561304537123696168220242708754680322577722467645386906917358463290996597892708572413606852947228418998881119769492577756734731492045418824993538607544853832734931602494458301840052011005971211224881899260140903390584301410505598071884441547633560933892955827033563839189207244115662413634679375541673890893091868608031263789230912916607550098980840430877173868768493062385333509150410600038306016394885368792106123894105743940346062401637185484252177167545163976002550502264396115259942943086934986907462978375997016129503084380366066005892265852930563788669584667848757260025329183930718547261012014353181230082628245390756526384816628430671241409153532301737357772231705454533185733039863611629092807965140007625802958683252113035625213499854006783290579810026266376780517206247540163537025216821873552872040199635961887360693473067284096081288649892281654521852408328279128184938636352722030085982754459989899958351115743687878881270485571738148574030780362942048594206443341579016938395968153358527750878157439719243227798831706054634005330969611599543732039412995517719740924937281938691042471916807457558054131728168336553796527595104025829376600693794847630502436866930874986129115155790299089147511471436165509778108916891593890432286116309808961601543654239707131733987625561383933492789060574714538169156926488201510262147218325034091656245429353117328396837417555069788772460439855626108533737402877099728804761149157785765104752908911381780654692220721713254159467978055595740544953255877928432324750482025729610721193054272034454311190184326515998329511924254995688662924512061554435485187784337602284573185525530203857806799642333473943283255079768143174935290365355235708336227295402976036224596787022467961087290065369158110329772411271968718463171201531087202282912167851368328682889984100630830596997329512401834379280807586687788984960437727540275895229293668539226751399282371615964473732982701750908375680274466691591111497799446671135691088924379199309424721308073081984262593144347965790856700825628858836114463307069019106360685995185387041710623856804324112299406997697652171894899349718804503864321759828643313402327317350344875527937834864131041994965955257706690456718435502156201896727939734268216256860859224881131666473414298910138757127570483051459436636099246610627201124409872399971042075654391506863102013575984601467302651199034298650639676000696687958282892433978259058748567826269263303468372332124066157760295156537226106822903836613368341504999895934280932018654247036073590765608162195997593438201724618076958178347221271503991239373308059816434946231367174959999463042117638181478301910213344735692656258805710164468798455661720375874281490998433930465239312200035644248650280200221038723815085543608061085953817427853246549792311015101812667413846629462674003407290924306775649178579342775165295098460009862821986519350148631413113382340818641810195988872295935856034372242367239601514627896565485335331740074198424260136066735529840754402573177714954021927548762566366320979513483892323984730934282729939095492262868525828037625710408140414070921533779824712193346482520718387853744500723852593605676595762204021945192479291241307585464859181278455595125339485377327439546532520168622505372850013045372400046474447907459782510294447904759726899493753746928089331155435505142051612363683441007349842994707086534872826168261194995444598888503596079143671119639139320911200954133512885508992493392853794766561641592545275885347906803485930421014317785771172451137418462432155337224056541214942322346734100328640923722757147317038093058466611410528665349292157043843719387582548918498944658974892112398043559253649190865890669173908088675009132330542665482077157364025208162483016589873036086598083796157673641177362734669761566653921348293456423991292807859979878815204292215190914169078549736187251693099991322700067499723351557657951436647470237487661496440492613486082997609783626049278231738894979224685209775995080498826972392495765987223064695118767799160549567269969085152582265295227385885439302173427475574391874411376633994128594831234384848812794576013671006676165974395896325545306708168429451211409122120091086669899891500102055692484852372255421310716613919828276574298188291751833720841752386967682805910231519925312801445377221647436825950860888636443467208040799574561042901019656088083930982871606160491216360458690862228973756455741357430715910893672423316644773328296824188314921716494972514011949369056709529615270432919617564101018514059608395422101125300432032447729045095686728686928379789944533473254078320054283548804513088741363193695581682874607904656694590040744288418738123256769967164692679986955886052080637298383211238624681202881704348155814062949883062634593344998884038652605737422307385786640002377415312885909455125753539336940869444293940752218284710010776658095127567020147754082982594365539007779061803003710403019109218529328478241165518909228702901240416004521493170935775360816342085655233201443845388958342206841713882399532270635638724261133021723608875319692482011790652227508481546536063468432083525195108332160684317334365846805913015740878701822959876582283002042528355669320450198198817145826117159840001172323248462236802337849839057195842083394188330250004100260037883422114836730547496096779242970449998379947904405434971089626589676691300284990960386063046240093337979092035755162551666400571121877172390300150396095405184581699938643044980401039916128659347449558276066834824890933733862926698964697053174156089229666242891438192737235672603030501103415970150390759411599156179251165622892441767557720263927108978526059947131533570045904830124535860224570771605821233218529587582203051937289020017734320619428734214752378860830070299796531556810301128799258939183387796470067520270368877240584066436919090287438763388209714580101749510134645840281278011316813989780650900740767464220963899804533262076514960825977452275842390413450268461861681457953371759462268303063666145365992028030084325285149817881771272573867535502851338367923056743243686962027275690495694721422424679884360411922631691556788276484222391196274036714598974144543180061688629337635623975254816109201806289442065086508865174388445174402936157089106653051819134408352417385390895294733126909002288147617359240547275574100872211860248070655273478546467081003325288049487281884647664513871948464700273983663967869110872249068944525449930136135982302100966496626582497907417933026044796164678961217630473547094105905476778743627698111464819594676539533132602160451880568520123818538359935250905586730481695893931266888871072451637580786918529804644375984939014986408867291215615146935054468003927753771628002844461708872834613320160278469351417103718981359285654440473889353364342252995356306714864357582266150708472242121395749058812364726080795665391821078069759191962729961376825052719016801350182593650390431489237422218299729435910504766510198435496771583639035605090274409454737620008662551895379897398695524944209452836893729162255864458818572322005097340211242024270133813809750638707368786224134616266076141865890367575672804946851392949246947497670448286278503799394283278791220332971397543843644722779419524830053313308326594126816548143183672418519071645371183945618853767186114634510098763556103968824034693227431638685638936692078262878666463162305865623208034467033224148965844290862011917977518360789811784708762629615319400347815464050634565985845395933678392047177816196115197815991533483239756111621222104528968308713835459988065857801354859374904263956020172957868115494079887899895278594495312912475824817137108859096914070619330361800303323891913216840242371178559414793817512261537355292820484620119087835578241076795898728264838018836306051625874581323807170212707031160159931956653211055908684463723011219393528829932843569560659719893014841894192469651419504713100362091384684087143678688323812487187380582217796916687267705286949172329692975741293715765031048614982649963942542515355227892655817659328122813519904998628338917695098649870938852865224641624149800913360480941616720693342425001725333590241224520696627428380607915709746101932343274422842790300921971678197965979059549127210553864472407600831000588081819072447870343657454279475046660211686153282079367042283157677410978706565288995809215120790091062488938646517486033663048808838585836547541959063529016960795986671979195154726753999884776218884785107366055679223745515800961273463703729547099641448954403570700509795971249707914989405750420165030739210083757394132816578085719802851130424796134514504277763666054870573901649799638800674927633569990174214247086042763368701538895425544860519661560114570743110126783606189763376540859558441673969989899171468666484090241900149311117346206295823077870579486764638556758721099513646830997771609454655720168122853937767374099428303951557494531692065820371452045827753578337982711615753554754759598809028882500151326903062183753558815228008049946219926313951475900767150444120102864042232346757214652225543337464540769554429637336518329440811481655311231788856853449362565109233822325088751970064021785626240504392039311551274241981278661180457520379031352263821500210772130502406624183002862477655911114130894749764170442763287774736669514152962797298473622901963622315436319141841799696896280359277506155139875578536726635378140081715318318793314798031663073541838249854774614347582122035033039491346267250843739731331346134971878652215484795211328065589745100203248729792239256892753749027042598668561490405375284504662614426425991229576994984595616886612934274152168604536950858277105538068424706396860778132899310628551128799543943367009919152088861445556457442279253309475103278639998286086647782469776693646959682093306304832523027286162884091854021075857505952335491745175635055894316749129117086207384696004878978263910905625739599487492495979011090191614659080207484962639358279265058364767670838301196885550505186157980972185298078202754679077735284594885548642095718480957735502641837966220105606201767241016475961823177144419881009610279477760819625624682085457499375939175577255504390164427090909940333682021018189188094314468725119448839760726106428947637705083816809284728704530854716107278666310122036688758290646249653294421504042608960795596028483768115833106563981887154102229185636375546808614676806062617591254751326265896334165706265117268170549301094065863026692204229894830237644323671421946364900320018910295105537319742039399303809428707866552914769288138564587814966477980823314826640216655484671340624018597141217542440978712771828778534134383738258099537774555668639030970006149284077302470091720199524620624539198585923713450742399985171822495428895132343503182334483788319295955334879010992117189922536529429365336258259539094655296358137449729369974651187533853748709421770808174570174225160409043884612157412445285020237983903699911389696734778804970420888639312843891579868614995357206376948214920930628125131228080499666262553224283839917352025667452522990840994632586468341113042084589880324142878241486082621057749475330037706021516825542168588825520528913719387724986908202539336294047304750500997044070946935891969900533478304463581196491048316381606807432397475188737745048539320801189209217620032541285900192128507800878010809612186997215672787878360378342850502233591047386100379003368195821534795312420332192379118697973810932850103678278806081274528288310391831570441480372715269111958913827350206266167881367389300589434987192627542175867837758616929115641969549780500502717441482142253177166456489762559437582676430949126055292857753556527311492956087911082159619401757024920446262077946805377695544163790238444286270760013358829372290589561353109924487923773970012638010390621036297100540090233266205286855129238893654007663966398392572450824496898926245992439438450876557890902818985683433451099619638409116437670596054841952535056878723052067916205797398008695875004656119615450401629767770096547018528433497764467949602803722422923120925815523806451507317582639784897165956107629449587379456851984590609369134973227024282382935848347620097279573203973908244049026524593739625729544911772960859885910979831916191923715574314777305613275865030186712879223339994092210626790946258508116928279669238172379855127629935238608831771468972857155910479691135290085367737548995512471868903957446600048479540144780288223208242567018451147545838594639977604121232182945120720779081768233151618455421959874974455890151199270623605189634073539348756409531560340706935958257608166769558749209824048066652756245519232200325145294175539646827190235219576379637897594175052158675420192853655966620145045633855278357125671205128227519609295390924578418855401271282860622031840304162523045733499198620336839418549191744312814170274683480533123636546408009522798679980816786143876702299176420421935770303028892406338233711883166689234725665314715426197369248818567744423683067628580803557766708524939432726759182713058028204744986831092388451839656929128269141358022850879202638155759445885778391763041538247774502736300479676856895905742907753282403183887419532847250575823699898418557360973793479262107564800127606600568485628952962703650334072849924570768216606004308519214499399461592740186790670249250918808425497538250005736411527656278820683168374561361164661059452960987647876178106573256994413006960404412757484805908154315252191475930781041409918043677066395667263443535624561935640751356546727167909411879488480868092309383287382250042851308615564673823134489119765303305903494885070904364085511708968159681885355596836776708287592695900122268130634079052180831417534288387501316529218766333357431437101016347796658883618869883499832898116400702596550204761199068845930641188013743352809379510983052205865755190255331324739355184215726088231016831817640972417966428217055392357331823599721055914675809909601571254536259146573583451080849769670807172669437183081249664139285293242058148352262744693758585695716870345022377577778359815858095456674554627297947307975693205085626405035283025567228667754448284086209981389793037092532642596403853499617054638608372303148948100137199901319701262801084969868327908059952507493775423599997878374465778371237535757852677710638143561367890794737247924261815992801915542363584092241092695194986758370140080691259459445559254670473203928004701116001559541702028795035929201770396860113456304449233397743545571654572714951735345290462215877669321039725654053386823913058096600212123248311387049072616349881777525063398803735283044137885040535291419573448626221480332949544888908545079248054268374194066918855516757216622110920899731852667678293526613290427617120717343300234525891953735574750926874315293634284496407717856739958438148942104628518103849643427735519244385401105600364091860906598300233736845914995840144499012936937258939528898348115564558106103079454580475664650489357678527521118340799459874420567550698461628297481692743403195744811212692198913243550319837054664442496096363374848655871436934240008426830694664726867821605430760555551571130105499636942141201452860567154928145035636088579354204498831255719599558707858336533055121083928499841126847905712972202465501387082052447492723419195036030393946034767708515347254338076913543021032331182709941052543731637179189960813384440367350920911106317337658740160001869730425298420244888527033172514692497475393198235035252261761609438480970535124570875131868926737005074427741207097904073463122620529000639189290990331964353335337782773033800956435520237281189341422221316384124662187626562926213165374744095230545401691905912102983325487384431499690081791766624445625710550014060366800133249580906410283487716419356471430409550576380385738522098716167959104852220807083954438166529535008774606811360273082488566261392866772837170303237832334671640641865105991624817670706345653146764074492658990400249294338203476654827303415226579042351013109297567830484813632976397632274673272990989392744963857214412908487064480704661630671832626973018955052261750367044376560638608975474809199526394403536046543998237735619024650269312958914022210598873408816322256258686174453244115894930355509977482474151507373411947573337355652762741851916424514620104987826294536895088446232117635800351184183592675986429712813985384144690969171907995167404678189358750274435035511807996777624987062847592913272616884488849391411287453205724835916236067416163446388013123511612633214157350735873789089864603319101047904951088053276243634380195320531364134355459364704198439973273192818302576008576753025832169671464683435884003914203707242670826017616253390298986715267562219813060352959484464640403968856006481766109033056079065038768968446731694854343891836893537933416898764610405060241093598555326643129997593902636796969251376936926159102285117216541488921572622359773667701463984585521047074763889722549022179557834738536300819334378988748156802769759994951212544157027137649027751507877994910956148957426227398794033221282575324578456195527149717737489231107175800448526108753397144093342364167000739474760533876638025429586355293691303476986899061333624590847353805299916952374065057657039349015473906556528925808194469628401221392455111987603807405660994105231164360192568472205328510725875883708878783540746177976015317304950058293812475052503021700236109573670907840223511622259723813014440798479181330321054432443110271979100591373809348377586361399771943672006559245699381470276191846661211804296171866528310695776609243771615983151245936172801039016365520466193709252512536313965592011778214276801942804765865348581587470311992677097913350491107205165243246231253831574487512954156035527502636796145461093444168535781027313899699954686734351810344325525951693002330050592572799781590482022358905260479203482507504217173455466425312528525947844068421333789797245599838145290249134127724342450971795118644615062815283928650237212926436840813268942316931518881895385268180047631030778038992441215187198582722254498999677875145879160239707666604413330594001772519682882761813890254014214115403222188075221493138730394389483863488048858725731296054402267540119444344271239556902379071500713861064198583888795688054863351728084446447248132772385956105213013091015106264293276316247222859852571026371594629994013226550518804465739898003775442184629979193304006051761618798602655576076891495679624033020920353382300641985751212805490876812649998662968202160083935774256923900145096765518968300114985803950066246338616802255066870759127483197530001455406015411980784113494829465680601707418219448269420291459193117972944253523513933101121868831678002326637691951938989304956559636443049982636233222213173795863375272901598026762438208490894364283124967962162500163529966893044625845804167249071090414279544743227764055860644979937748159790612922202930619833526180042611796654967580548290181068947372216120265716263043635302282129337245083943534370967854324380583128895052786635657171288036985284548714950798562466555779317050790289986859714364593077973507014015227544766934198239263898929453534319021801693875850287786879702046168231973519928076697586512760646823839169601486711150096038459388200510615266462562727086373994715025771810723089620436264155255715212790458354295905910120518508605199833582952027644524251235773515361451329122133578341196718707585660635000297664587218996568468098354225556797699786152958316206574320737210996844061946085275213997207746028379618294067782659809969835866089743865103656242556250842354354563015121971111673283365507058324791727356514276941098498635706661880252843453611977423490001604109135980658253251047772348737585884666978580299992241973665041155119628160047321576507005166289845399637919414471961275368496384841840783539219495160760752984767084138274604403017707579996667675686125361051400391716817256780501389783718658379689761501720984806022721512087636711163552935619613040209273964185286936047265139668755630400875358568683131412868609228255512422695956799303502490113667709364034990374845874198910890189457051985781247844035757867139319708554989380999706541057916902095988974987384472726137243518065616499316389735111970331039397804092809479973433772650212249714340982378236519658928862792232779903941820506856983767116623772151441202276633794917374373422831797279401193745390490579714461718360256732214055219462186285914543896562340248945379811955964968707073021860780513193094678528484442021284324993071541356442307938627252658520849226948439939485305352727068233586394860817057740751697385212021062895941771607925413069913460814382463286693523126590734303668095385956084501673932290965428288540978637787221825907274341956466116595934087134481202995796040005764146848563841920840258326855212379549624891158626009400987654135858706192511365371948148608571077083760209723746595531144030733949423484486152523722666253172090816226940002112275918342552982816899719687610143851919012898807424280528355553325232571548587561447752011946801115509440542965731019362159591875821948220747561530783348030085499433087398213402707000311285887927967396273660920712697115138195377155464106337455584919631691755255599189224089797833124273545384179602784595898647060095284180866467711094641598431500095974947022075958749369609348923513155308795226753192288751932690569926959011242800843780897580223727211128142771580921578619031438232822215843119736386797272276849581363281470182765236169987038316548057146175201779780107490052009862225386713437898798488104450302717738606821067182348566610328159840918571490847707412577372152962362895142819394934492310024755294687688142282688263381992107050031482296907812706850236096795245615631762537844390868388545471766250548688614538858940190650918410158852088336961298773167275269197562386427609513694583842618521833895705186413263202522931391348380821287964338813629845539042373128573855900623287197915909121817103349208828736572596006751034516917303484066477312472853649869703225505802851210314581397165500540219991258467124752296233047947620417483573396512933884625986054669020687274310798920093600862996258526495569263422443490758898712075405572391778889837474006283110359893639753683143163791553508445994998151790357191664595797264053563579622852232320999562529072956596862566647611821743688936552658420973588048382356327038462917410427463403276404424721791963389233300452352920028757301356303821117289713316943637220617508581520290849724636905566762892184262651781976519538524643036425620321295916089585335981540706502452521657088226438896955320033071238601771994269799874271196603530485283581844146085491345064443171308666656732474479432280547339137606275818904283656586598954664885617098590233571893647110221915544801416081086328652657202503734779658698028969756875969566551715729978174149125519450833779497446698060268643181523422924316776326510155053746777092041564764624751249672301142884839539706060560724653142273218895838355013985022479806163823494536612899404093559178092658682360641984947863949273925514675962185564843402871639984241656407922432049921519352709427492550972098376405547995076369623700896158531420828549780644065756946107401242830116770917540880488062665750487449700100644817281703371857168769905205043126912675894235464242632192681612607135255937799846876848766637463737084830913023031875975519252439917826264027996616367094369112530086284350297886671483877355700954085095109254267237087162850872049910014666606934352543968132422775052041208431177836208642591374140370189390584913088530767180337775977981545040600450842816926539549424241734396825797942963322331213218107801293219793602750388852631045872578879049933017249371699290336354529074965146405609127548752881574874850466564788157133643242701577120650882647257091154529355415106455103509471072017880017924641359721384299487104597755279842745069774265641488340683008092305464626038948326722396040624646594574202522108428812826688967527898024346826557896265626637974536891092934689209248410970235713162753302389020769867314325842760948183881245857587340140970686718956181311222947002197844824158154450981988915294242890693466056260795656643943393427998358823571167575116329255621499470951835223312458109131586557735917584703694148488150386326409866052441608994421423724467318576854052616459608035904616045947747232056287891088699234201957552645554915186288103709855628981849208453628176074175578224666387907260467755483451744348189049688056376503250353592627137451498862405482956247369333449623309027391137081058407123726554039444066616546669812794016117438031442545836113138700180051064222504742126749539970759097152710314165536334773200549635491466719499256643771113519647122484421338334482991474019169297097827330482096570236574416621640413859757199401107550548138356750975367702086214802247690575931284579612052010606527221595997455895639292741610135447771486602722228078789190310493304860642348889412653650919804680472667929079707702290502025767138443684581563482900222665872245389242075867812648074259843103723144835073934916328568708798935308983035538438395007970780150899316677212153557850476824480668120600816092524900550656068820053943975294042977799777390954812182338828159978628439344893791861555638458479425929894905438450373697647333225685242402160195904472401639944492589154522209473819728573560814162944201208296923421367519056921053373592377816006656687636414636657904357378244366516685104935195776579079193354900542453748362582641051684378644502959183589839644056859368882636863710502768783853127777056659956030015723582371471547219056714260143368796646843649143949995727221505804289921810098950799344944214199021446892553928676917510398246758246373438052397350830280687187344606418762993203121704070483046129164263198208628507869517290189970014342896826244178078191626441719504450757666856324245674581755185913604359995857459882503553846674132820452537010805090235114840481953058880641604082355235129412814048454488103708569426260002716392301008603721424248429126495719569873219052427563394901622464546259347456703005672837508467249825279836734956177089836516547827889426186105183276920850360362178003391524933714844455014157911625050689091071382758022446505098609868832767797118325793918716216767883562241988675386839315756589776865201639452827388674406517875660068949821735574807444325577590692736378481805133570962701897152058909708119862005227679349913304058284567203585664724105889455308752236461838439640259601125485287660886628483076360128700666722802670003614942302612541655045829616993163843705829675070532292691091611967493612737291631205863688479052509527351543806222193273002895992407939074438573669093529492586894401073422178024370771528161242531908822717327154338237401474543621843332568029599407713014983323704510969965453202745335070217703707061138191051635880307474770819808265319510552403434618908040877285588710261912991092295950882251819205851887441986348625188245665450780329536348102634843303083724181136556278301939101618351740322384509791468752162387714423922323245576364107974700125539832471226019053048866664933322848632905380868351709643540440256866791168844434216940251772691672005423658795245864872919319419639837059108346595565457374554274722525638720491964846804561216346755578001839114580507202910409177461978829650486123555287269755200042382038183207642553640963208933924544967598152309215189473050197853510015299573530542811283648423659474359596095956980162027530239594199533446282082649792360794218868041106024158741508575194580615688808343018541253781954596974142367787418706672158427522319352770701887762803032337402862660420730505237852035421042577244255914042700874907643524826938681071637669307303727237417175424585224773575827029599664985410231151013874323704799159178790299448550168255865451538812548574254146042912012322855614889532717717240122627994410826869139972987438255681581112623873262610426424919146730313932407899673786143290414208441146741535167426897337032190690287477060200884221903212516552891171738567477731136615373439175196270795492161709378005434045787378968957940658402609222670666397470647461914851144652443807415205521286862020067172326368471796723154915335949245342892887485931766426993620967340749774505307056843141013326328777592130576231470087437384507626030587577497873242071406651361799495694560108192843193736732841798935189595423519702289347297697710497535864995673185046950987396628013953152473360674595746536734225096595010987669623734140606839350348198382718211868440601761576560254701139537357267834526945596079177094497172723469473343678038722377574791686895552041362153801428254867377695283703841427934004400130568978355622798607136070596604468533433322470819960517276152201080667106523795019070974937418216335299386518917007788988347636092361880526906006408280797134349789427595928872026107851555411239737304609759231788346880725383510590800218660449028979118967259367552139647290685797350736757182169740366706989613457874506109712035014795653751641661531216473254416789277507245943628192382562336298103756532891328239232227250679417094691318566996226763008474933294923772482025168055066631619903457800502962160950971278313497549748497080750146928617797205392087735573542634465404691750787836297830371222126344995376045870682546656732927753972286036781924732607587537503639605557551524704479046892790074174408099162153535237955159316825039170841157338947214833770587893695415348273160717030232024929094546655312055250126322531741427372940893582323130414035967091049257183835201953577511103030189373873667295688347590028046690150280415692206279410789768280962696610121374881195563119677798046812493064783740531627476062834586847164594382436775342760826955765323442760533997129870805208989856144206593472215753513573135315096432568632699760118167688723309047847387826108830027187650260826292523319447690994041670026400655559713699181466979113567780657451057296471196382643806989602338811353072149858536870862858717892687962978016089416393630120941635523027773429963015263435775125041351983411873620583345473118538074572684337206905220856255010506100937942856140474184559211793392727085972511528800569402805361411449240209246208794874183622485445370167347935902015006990894711195009547716996064515693409809576087230611679859305447424945855927637542655079098507826227452414280564196195794701618141018859396702928840881750713269491264514792458713883472209570125453762871154613584471013113232014954909446401476000302376328571713953654714900135558696330692581126404792005317280921179128700967881389373295949068769162309178222864353334059339679160242893274844466315594574856113204517830646491662241813246295767509185902988333230655145023629404347405492556117642216093884711734189574071998503527366986933866985170257393806602302791062808535254935316619458529388540134761981829790192702699755397627097213320775214288831363827940377954810436396846216952494822984432296896920853355530853174095397100274487325283527573624794580127804455036106064558578035736262525563606477349056863832460058826457299672867064706881971880489959182095387698672412610581231337188328153873053240635171604883731863483194487855245340213105960543269787362789902736235815268667728648413763217540668998973488261186018002936002236261588495903893818383478150216473108913836953738086831643699087980859301283735287622060053622758728767946579168057635814324092530550238865482949257251276097710430841424132714922301455502491538011651570107259919660889103344587780201842019868725579834858927941157916548984180796559816529244002860008928330899598461251541347364124755370565807249607337289686395655103449758583001718801392934081593465774074916873140199038284277122623332446058875673983859350076951311855631684573838655512292940803068422036256724591811386063504801552261670635649642867323459656693799243587293291166884983936420697970390191593194559703612592627063708371713607972229244838973659949263221859430952934455170540094592748703284351993881402670859152894963595076363807323470534623093244150957569185048089195717391916531000241571429356686909706755384850261080407434064574263428325221102071034503745383407217192728609307970908786402740375603419620326095180233319446604704393480054063586910294183143819807662636922920151962674547889054873008533422088159740328925356782478045723448555663884299365178593815428714734705407762504079807108683257127209659524702809312984905979030619675080599444217988506983161096380431857573493208970279214433939134282900983890292760099810349716753400553502665754851358206981718943173652187372727038665243420592696839958587716580753629304917458210275330126702362227330521370927475754927540322486653632392842887880718119434477544394315746337377421905144626384014838452230601326365027884514717047905831805834894085694942499441515548386334237720406996019335803137534497602844499515410901138156066413232943105354035663349825009005341362149597475298028239846197283670062105846139778158274676579826017847296576463958941877424963316958842283911915905656402281934968017581638401394292081420882045469029946376520599881978317544801271199655622131732442716080219316644607184506702451604612011797638272392113483394387989629058401796863609432553006506288897323925136163270239075239598265348939946806580594876864627514109406499311534198732172991431259100977718868694557124444935828613812597646375511342798457376202343562568983122530420590214907099967416032154670753881650296586399155315134290551333165324830885034701954905567448410103218765899567583945582382868831081418628354731947552527471157540254348046617748038786859837871569491342785308294728873541204319023209059529543286106613269760762669266113521146625276984127734085241913826858280955075837578751829441953816699647593380581097441970408876883252573743856182591108975019643147937257207080940589605539709828580044556307859986110829784519803998823094162509868026351628228075608165070483489644168361836594632976919733266450443327026529644073326083594871297205636803629992269220555502193613130943929256168982589380953115434813289518491654287254628635197810302373003490379917930768861220453265131810138168987919567846678661443310580143812599127914158876671702906759990712229281727452785443191763775186488544690552141829475460755373456060855634642039617667095752874549490120466035196463687357729297428234750549678654459273606276089892469782418907136691030092667819130305591951169569317831975407962403384211046644652404581868639326096463530334711292131543695714422067237270190321612831636606835353591402798852609531474419767057640109075306047213865706766549972656139956259081850853030455592840761412465221809965435307163185074886478933137159804019105801024255417135661896120601106976120338712176953627748147024046287959447965689291666561516291177369461849461776831663594528511716414008796109655867194211638165457893559437474165960191040265069965376089108849054090880766242236244525313285217856872117107507287258024370274958356646245635139772059647787347672137096977874372222228544415051625814759001600103498734216428737941520917280874385287068745299675850634623615656838065684685866591288392993987491928045097599357621915303453396402416281637564573379859690128292741879627625038064030579982239393509589219952785102916463804783293620919278040771504187300689178573817825379312653226956429848057505704338593699343393456044962325937243304357667147711664262056671619377737577018204936159782065517759604455742714015958506242086143202210279470032864409749853119493397220525601724380678398080630198033038714010823737020217802399919659484742081004162463139998938726781296983713965334369780639466764286002415282487378563941292793538360770760830075008546883668496834473813800019480999463927939725480926175571232307228799147294996278293181211799953119139336829142170800391710839203996253246571242671148076218732388866302732632605102274855876858248299627378563037502052629488316960894901291631372634885804981924875455352488732623943936750450165476893402068214585655661710507751194373805894134256960413139475819197066823026324234090244505409588341087688988058360019058008561994910332388450133139604194546882835906148062791702742550569836303868190408076986074650884423677617054622608454397222194035542026520331044552690070468827745821456966366744699942884173471148070234795179430778361527574001167542381049782265169967932701790991325359692564131021203176759602636795510869259891936051529316116399937906052216218262573447363342026307505726425225525500696250372133805324484465377149717057771217385550214036410911783897214179763547317648609973237020876571662328627364066666525224448442370474312602701940529325392038812456116783922607147800119571847504556116152503844822082691866745295001945479554742670311953388463367504753411924305172890558306396064273009317899033971343931584059161008586393822138202271708192475778210015039163848666017090813909135953340619014626904240956805262401070564777661840736519965983120159148619124791045328208490037696235790452049281474814484658172687429160111256780098117726912220907023785148661124371445919846685763094737512094243352004465053297391251670830182554297130226067466098005260391962755798389509069243190047375640183607454934859101794475577162863150554887610286729181867586476644478659627827294039993209905335496913847574304220358026682005018352485651517034209943110726037475082164349588541432104573557419801182940065163845907783130947300992993954182718180599773199552253765623522616879880482847203149589062569689442427840761719747852121117086752944603670533555703336195269940643523308190957437080465607841235006193415649510049733173836204004227344378915789653495861159191813589724449560707032232278280157914855808866326700924042342031392716468963013705622185503990346229467917697832970152412757358458013089759525863985502154636770509007033290797558326525697330992519942335234267432452628783434878039320990147869741317281125496445904277797369126687707533793810529597921956009451964724521456644781129408884259739950228931567320489003595653148818181335248844869869480061253647427755000504204046210344255558808662144252379324645861308670915261439688781633677349695124090077391672641409412421645618536462085838052194808988737746342851400043979235067024246706670697307923553229765566845704762902563225978319618333972491546952552514351434797307250589853935034414301037276933082870107555261221323794891532424850154784570097745683673957064624532316783427160599513253350384476461804529889100892576142364568920937121623357779190101698527465074331339403860558383560512529911464752510497400839238188040952466569782190675007745127340413746948598903243038421773757608092588363984942852491661239742134030663996839945731531459218956185429736941639291274586602149193256062908354788945387058909910287768426344909242758195382277154455075508282078488360093885750407133806431446435106635772542001072151282148738012783255219477266669643519639951388097664532433272355768426415313809782298046321315377462523540429060358017056192744688484775984917808674554983296585195346162001081254224267667244659198500373724670009453141832851380224433867264250159567592114147496245184912047206467560940593359887917979059001367488538645068696206561499083496822578568113455648395727288903768564734858702787470924437841701540033745698274823246922177670738059985075586166871378718683096809676558370216611140772207852210640268269888730728960516843783520367402250033012942208799728073355203320849825187947636617429055283759128564164974137281936511433254132159665447975088966378440583413844824557338593122367508775691745807770666376143138370336043345867465015719999493570926314983135394760109974600000537658144945733267458610633049321502973839393544273709938641506048173133810760582530943941987857532365723323047959249575058023465548576017407830040764894676825864095103880437439926955341506926095520996684963621960975419902566892730018303988411552635487584101918625856519589499175436701377526296212355626089075981447245106345316843742039269634125122549425532446603922385414921802547488287657536406695665685449904948149152805038253528556467200442522894314635745970560541321113477618345914350068040975165789396711785485165229206778357107525513953145282312224607743264857802147106967125824905495325200298011874329803856098208474987810516242573853621749468345607944013868042725973721779959761348492683692590494544728545348555476728550926269663335154395319199262090222901179165035405320535415573239628658778850100121050944836436935545656529870251042733731127036864327018539304622986390184984977908527046638100741060641993467683487921490182379262315357767600452539830948834995312973156738110357671380950602689881032606604431764355029953307435121783536374226307308941189098334119638605515220249684439394253053142728238451977244601660403995835472791372579948769056309963892047062937605056521820542134579977355489353836803365282076081251489436246900174250148369489103249786394191146005402306216185569908610246731548646098802027810734737377704918834398152960696061717154770915580453914721379448863070275106259100795373999513948617449030229789218152339558821015764964020945919409001606116587411111980734335103381902040120299293240314432987716472194187589256763459232199092290155723933728886071369406177616450934567152280499827475092783026359931981639916855626044956799351948320384470396500989985380112658613333794775521303288916197879337327684474132831621538213505022329824795198558425306440627327567040485421579537173343830136579227169765815254227253190269172158356347906550143393222118454577433731865452718559410210622948825204347308783812222983168723577837337344515599482329233926957892944799824200949392664270739432327471320097160347570744107285030796303907572702838050209591617550700050166277924293181245052386723996858519317795903884046755651332557582149431535179594987901759399540186995861620669715389333257560018092077957850127158525013243702679838153216831510588027374558939822516507965568067405529335804164586928523165289250624410345072547517466969576647599120655684798317788386244416469541919134116638313595094269840789705549465807294598318386546217752106311455104336335366177573050374063429208912775022362094183093820379420494301832564881514621747314953122724966519403326669465481748253417252291247497051146161600542818805403541989472345725590790141985182981481459902714051432660710262296349194812593421453378987245830976048618886695851303907291733920772256896098365209127931148217974750644655976134038757592240223960347357084918337811214989258295323354443785318333610174372171270755616191438053272660244948668475034380752518392245923957178302347141902235035038079411272774872895040023080474072245560012476207315992125045788619133864990339126851472433091060855943660562484867647533010336365985774896315464134652817637412615811007817367012495447965411601224900939460349933099940239274943813504008029448991687939366761086755035469238657089414703946164778455893070118950360169684300781588665329135620556891697251578127543955416215195210530013133622187193814571974435467846367988318741333305512922100157473047822274735436233806082009833664536855868925633157469202431516831234067297731417050798536830021146553627357812063386973246879064859587581672286764887437654650449048380565180229732111795405654379446150420215634066456080621749083449296578888295379303504726086216823201549849336065885036959606666076136341254667714265766966938253333538296866778018554763758741375614974085168362938644445437282528212759657334188069780403863756243213593533382769143640318722051944488269989986780437905031726519533324288476168006516298029907502324788344342406567828812886076963740649602563071565676750520370530839136166283921641845098284467430512284442398334641301530273921750420119266145727508281390376733635763925446052971601765375773898946913977067171842123029668128720497136453255289930864012330523226054081611387889253194878617232763152748020476997010841422239979291101028956919632942803327708353525389035143185882863193742926542221292762852600422545397998100595536678399989239291809150387773614009281530819407860664748423822595763528517849241474448436843425206682156596691976972880573667036215635512499443612266893305803948045462775097887356727161237582571383913941087243195519516053376515555892535518269797147560668931735310531915212298359173023026758392741649314224393897443100874491196222448073715852494755275828413716873388568451397193571743513766510489523902901706309271226468406692783483998862859594239679364564173558718401990187572546346067620706262789623220348053718363517946910877638519911078379366902264789614265281989949894409583646926514431656582124717920789203351405936678284940177989652979815054754358031775856225586906101230234010936129553535763584329974630792884081670233667889701281459588474281994287498661437711859701046078611831222856749469131900448256430282620072487875253943979012522035179906701088644441733329427038504777629594843814990998912625348880022470112685386605943766222703650826722123222351572550376503854095253101757586873383531199693602416600396509280727438071375470484844568868489196872123109819909873074795320541401039597361969675230524421640561900526742759939791372686862785354305517912575047157660184923718223934849391969295394499883801965726625036517574940331196959794117212576237138316511479626055791784402781881225538340896398270497890725743044303341179108109059950541712207737379747750303681258203099584411948679998579401117139332423952627036199270637724170339781113332382715682773420147905472616543401932267144218019610533705026333742731904551879487134852498626682222111113189144557622104228983473903499812597781108090131864256708891036742980304913636514213249820339892382623311457754007631638251268666848503158411111411558864267907213460409221705074598247207024552431403520119565313924583310091425363495878979074393713659709552725556666007024202839100745946246631307454467511305993777512041192805564972915123491505532781022986430608405376440989174443107699871727600381516344286065218306921009179927941709319362942477458068173353359701759893286031485320156876979156521241896700403095917277570816030186945971407998244363332875431922140735996952626830385659584520895655497781013274539434086438652695414066042052501513083780866457299749256903761709300281616225031870030327371448605125164072390070088238239068114739958043555903512412218232982743667778903853858623918147815883532581378931913051647239015905150073292582746204289143926675349521549429240927856129414258693729514689314270544422700093241610933444781762618884916441692560813590775794473862060159240401206337499895425291163409524485314231824745868679213510269662875170521064607847049746661545188141510351673498157830888050629025247278491328835858571968770316330097553904904884566448974688882484225042274107690691547824158619851842195790945913926945539349707417082601299136137293319908996124476112702770438892717017234886176319636850246720826698760848197526515117846839743308317260487854030332942786443609114897628797413020336753926893185945801618329179440100958324980587506458366412769529285982657703330062345826549555323166532305637373512195284921489639294238105955982270927599730329947375056874498728129347026066244776158346661704916269757179758724292911418797507487821715334199745268055732256003141704634220318975782077302373862469785041650979758445271645852204355139759287529508954652280662696943449901488020041811864203977422040427026695544603299092549594352025279648873458005434584684945297535391583792911305703761773663375795239771087393379547332118548790619268542240083953610368778991522104521065020038005180834770931615105441297268508996642282464489776423231947675602438097694631001688776057256798936928008650248744676082454595750132838100012297473056539991376611276067858345129580303840502530416631173982221137922074743939663003407049607643288219873398773338028597936098215354655910072431709715706097105968688690664790679515081011519705136357516361120759637386375738584999837864530579030443943012950410974378372747321582107022267675703966141860877443969096247776142982681257255182073821062914291792898257797002330749298885823539931935639425268061948642067083324510468170670405542134187651641921977618868029589218724367391297929670217002604707954075998806965382947068262947500799209178054501087213183671030214034123993988674101404729131764442090801109198035244321133365358285271828432623672503700241162594822559744880831760673701548562891186654465504563052137790450573281851201979665409430270049744632546121224141128329366437940321984479276656109271707635594012205535902446730707378406810891604840226316131653788226130623476493228155229195223409251839601714955706253393019190674597189900776543585394537305708587673393775225561887590862665572607148136026843048094633781089487053325334693152865228184850150399380033663878973389341128843457735233219997625754387619478290608410492317086979272668565017717845357601444068717168690095280680343189335630427097277870650886333372970310015932022324797004101814946764613369688447909453611490174462989749323003758025319176955052416250065528426114373076226542082682213459467537033662184218165664434775720963001368851514596794720360121393994632611454144468275264866158675668160232392170474512570134865906164308600588556879208478336062463041958464174708303366065330053420620428368631888832426681603517521400746402690075876108947946351508449596170005018277089668242632747552939134464826875600962762224250729627218837874695585396808698731268923748126981350128702594852987093853722712995055630159371662858218865916052074038057260330451319721679291477186756305293557276882390292266219730580487311401175308133892170118618011733725143663530875657342089417048072193359887479736426861987941028542129529410436548061666466560953506812679860837723426852206158774774504544085972412357281362939502487721322918144746035282409050040101773662698641702181670351818974670512042796054366627945217494148564864034233759590549060136096930916841062916367946892321891209127401951706180387212284307087960773113725441306054172989950548378827727046663864191137798869740632776799960810327556562870906770161485811851671525572067310925943266024855593887184124304225616774615108389728834242258914850508472905176061899777583007065652520847408208842173373910767398114880773332201658891141005158542238840636728656725089712885038452940316291883714453787866130540009170501111547185436355831033207211981334858631153423601920293718304352616908440195500481450658937687152384712418582070564413530487420515614512086668096886553647307014517115558399645835678003490949039327445144117799163796310338254450612672966298207689283473834827563761713839607939250893828751938890837424828395334225664013005888776657917835977404067075017710871939114578468254250012110401156781381295662572551091764603659677805799613086282001150125167924849476048498842037333939543468668590235457523095407381530411675919196403395008232212122031948582192443475529337530173935181814669205300676835498326089762673603011784585548752703073220035324122391029670664816719559254532213478249740250027027480599816837621411818338760834879258098138151661604146420807520205374549580130513552975387831795560660953452750289995284305259958631497799031259959268523867599757644136022576047065119871932352626491081301935915996762477542005468332913608093323184530910326642695702736368861586841986355898696621612636942346269870652951646036590889776309436953289214971802597126310791986342343368337985427815924375361059523136767058842514726866925962255623338825444915338951480780353160096236272362629321093838121344292596168977607129610965328581263856352840691870726909508719908487588059768061543438498330786223732995053859544652872580091738482163952476186691942844092020325285863597342736521084177924065337699487091904006536284002657991027808588169428112419867803212676611908212068769439025689831855029507358136283325881329349787561199657064770323354601359330157371869985275952788401552313044666467007044570167374730294477842583797133957981023419274301141663356310472002062303466720043473633620918607406379387410837798372659102262266281668368174614508881058679402091696237070267227078556702466966215235923248906556541142321653001230668315813709501175164974741770771047867114423127030825964970280652309726522595350260937603204641810401282570297152909966301797287496716078187386434604365603126009130801990559134496982430598104481214223239198832330517487617761060380242248693360782698348799053187120193656571881137988285470003661803376461641808005621106566571354457380355721627020669870665961163026692813351285972342273474043550450301843661570597586025918972971762937820758515214366300584413754353015287363863937559202494019912296147831205339020402152495716237517713920740481216320695616878374406751427661181935704092622544281257244674793566990224000161627935699977379362229328899510966718814725472447442332450832816113588506261778134752263774166893067961890698173854262071168345202086617225540215131520301426153635292417624887240193843284703145335685532116346032411910969004980661636537048300440101181291865610897469806955769191358515559383379158906798187857369687334916653170293483274482623496789367134407267722684084039078504473370916901619483417492844768576605582389499762665707260959172810261123708822042404896741798176105971216524341898769732540518357639068967524643049459814039960198336818628217058607337201469935697285000231851541357699941300289798454638720609259916567500425745577213855821606623818818432608559086488423057729024583754833271946592218906082255771930310244284508802380411824587454595405991187938986652434677760671624111861001010409073491303067136969073215943484812974545321465061611701587079237826776752243663566391919604273126428902144018734759285470742567034499691767523359847813886556570589998331860123461503647593817115860385697047892499359044412797604188982091303483302149530678261969030240608250991840949624111714750193668254719668444733985153038785005110697902006497353545593857570788333676889246110793462714441980272903059667094654269466800036557248250538537265700346455298437548560576643654846895919870325550908590937420980486241309926743237286356117618097163687365885258754292899868407066740913105233311691390175906117790840555041040973012675087716768600432640471731730874894457953682806516682884188097638768775167722540150700393369379883713582313675501585287524033755398687094783975615794630852599146212072385609522922010241942264365500964372816212365929564921203419310855804805792520705609707331100361087257336551244363974172687751532206542256393391424987919220299243040151353261830425163982175998799403271770630652960196594660331660919322521397851742027560453282255800911070557016085197780657101431630121188091255806498603094804914667610772074550263450695615815328307044196446264440197895304167380833292384654515372513331684033152563896589471100879881182953236468004613394537670149121770428219428285050662218846305088040978357011532665491625524952638509627579674947577160349234735962801761556267439062330347004453811940952869755093858067970266114568484484630899149431515248817802441697409989060390843944185025304735724693730561618537934068829460142540221142337313972408574494586237761932255185568911036463768407051600360614064357081184779777040599564120010460141300089078808937759529574504765503905318359914685455407570254194453588172823021718408734015606594770669821729663865913212771651925166629124216002608240455641818282420715559304141284792123814859514483996567150576460271361040734548881707227180083296814012039662237524091762593050119645743753899286461890218741075016941551730748796555794341221340186194571111414514347679110508738584379543228146239251032152517806102200298506117151152292468440623367092708922645324107817862349300203648615299307013684697050663695876213038719184967362628612877313530772131662208880690117845223199493653227244317747904408052101242682827577605768520721103235336355173322284658538557907259299765849786886901193452927464227525558504878241741596277439272695086300373919723243280964233209858067469745511572367038795593244575845312260023956451863424137001098615026519509650127633382819673659764355940000898370507219226837562534245796421520814153814035283423274574528218865399845402774412225452294226541450102462883885257064639199041273858637472377197018166150155930655258040244909298244953501327780953256426342626343279899516866922969197876946230763821342879185340166382658613898105566506740106342082853947818002045364226967901634799177968142697019624314183701793323920820696391145686534357517893702466426959525960065432609160427090327733412487937622089785456943184741943451062039746655514720561706101946122268668159690483839429043099283167735414442937221925763921777923422377339714848818191016998201827862113181284536326398438621565509677653198854178318558674158239004305345117073737286728018823354578530695996778806741796430097938413254054481238083190305865408515322785423135428374235375872168823632205507065270649525135696367521210463206418432239356377952099896545472001696835107430770193988419787070947694987486420085547074572670602171274095669266543143833776902401314278999775677872417957135722306063230523856351476313255726446759773377698628417509403393812169214267356386462354340206694306350751394027442889765823700307564930106573451869821269475788504119196136104609343164407415337439577243588525650231378094754319577305451878520720986386116227304334532958754748551273383279722191850350478718978842492871068961821089941715867761208380151618886514540012858597164630136449651605514938227928344490837674328198921142910431061110868692165527920798201649329374581342150765511878489276738254879351178323516112085517841083762117528150078518547781860767942864148432332331910972668500329341289140458582044315576107787857625774238384899315723739598381106078124677863585568996527368845240942528704596435920760579346684324145325596356248748821179120818397034784641754929142248619881698358368191292319024071712957000768746334505854605361897413652911487487882667012766317504121007203157810889243766403677309117553090409281711961362105392341387334225937678768526257135122434134824492437863318852768275374310490354455242143571369313856402904000656993625368177991878558718447307705825297435057486641270846544260384727445331835298489368389889780828901862307448404708449085284940303943429554638527408547590152688160003747725228117811611574237139819507406741753431841463505443424383574519248611580880039606683439401908987378192440400219832284520765154792113692550747874165836602422185462194643077515218613558151988754046355176140959054373857005250135809390485967216202160698441615690787716840681274143766140911181396310855991516614810795445153249599213668254996327123735625684147454143123120604881956549350282357979943767775718356659006902041799336909172824104906231327124424941601428516096280779063603833584141992709154227684258177499221993057258032595123771201299442484070122796867944473418067925826579349589147678883789154409326316567006088947310932561056198803086054865208774564545247485353154050111681242847495790437215941553943670290712577865368975422894964011618502443713140843463035435806477212711435043136254843866092436155003196510855005090715833704150255688910245840041819335202521244984571676792556822180232663962315709645890796869949413734326211814954738978562488217201055827898453333313654848945088878567519040445959265319521581192448981135290221345503835659827193694931765657818676004700773169181645503419476677438018159033309930256659566680601025092653011515016062246861638971930902143214170400219145772685840786520972216809806340340974308690729882230975195198310029861267048908177882768775796117833022329018460019071608747684231522405077436077933069971420826618840794046925806327424727504156574254671472330996260395728653859055288800591122257746897621928238904065552137197494522321276833845155145768466112776688207883475885860064886573576316527556999411910834661445618670681274946339286427366151155891224086859707892700750339421987583653597343004106955922676103553305993105917631279351162971407960650125329361940136650630794157005021118804358149453379132085873254843046365963575445347023689576407547704415571493176867930227775311988218483730191178628930694011158935995127482991205306812955192982493827214779554101294437734517564251171652621616699918583564687464935792409772455133280236293667570990769785251422664119119358543450137409607937600508655283422806572647802204206130795169963953324761662289154668469409691451525256341542697672709654289236696840319253509490673845090202972431809123127018255195138346002937882176207767661470179105698709532770660030841618105920658748656005148395218482499254325485613250858519743641707255380319640692807156322132217334545187661557552639031833939656842002946070111912900374032234397670106259189549411081661777562192162312113709031397199510930006010300715333345290159788935879859588478418005253796008798347110926578754895419075386106622018995978954059343787394706384236767750218336928872866052783454452202405805711362960075974665197771111263096946950342384651053143366709511076068629058782907882208713346420036439036633298098850085133781496316618857710806631255804432420769864751221658236162083468148414083152527539605062706669652630190259384874403412660635747377192472521516522939406695524534224812999183265659442375912055988200472864204206707422287275907409713982157237963214549916729673080286486448406832219033684902698992971020092041186578702517859183575055270334768877563858546273960750997614740057219289818296672620120311458260815855382692225101382561102542944306796243640089978100544006780213427670764254992593671010228467486622594117529405166755581862694175059399711537675399665098330161573697092270055730969595564927238518257578755341788875263978855596462447492326407482162854233803633594937489952680601675414219788350902373105768750328191825905212533184931830610070220267858052785156302432419555393856571133062252246234147971144793257899373626522022284579923034601177104157440941246819729500291141398676155035259981948073523915452858111822298181564944792756355332235062904962376021888577294081893514505639433389353397765545634086655528265813600081646333452544948450595556670516310770887250520662602256057362921445167472113886016916293005420512420641555527240194558735950975262553372909389990752880852423425526878962326127453557578081715309102459635355394814762771969164198426111827588625890580436615487562068163743408004760016441984380293734146828677717616041428541260642564158093743961591292427136313673177612445899338591777306113329884665524574828349252311945870699891238106008382022702659856257633391903367294000126429069966838423817943612746986659318961904532222329360316632960149436871828093274304915238932256255191114730075314812880720642684222698113618552015447980876010728760945026924945406148795259778098636006966910137781412349002068691983892641537672255176874951520401488303120411302022780645964589480587137799676887349391870379821439167206459086965189722569169850999031020309665736330187721579107878142644572561741158418587769963563529157661151716117556191214637721380113652263627127850352145333065842404271934657080561805642862699883193272737246850808063725345867743143564713432991361084587114567017680602415639874524038583363793983563393494459503071442769421392165933515161002806826001862171080275899091634546246022698586717454231097729730601950455750212178667292686336651258071050500174721336920726980719277906330129190334291822013011713020686124637361536176394805561122679035959983458207368030321560508366401669154640260872605066519849075749621296331192046086424701059966275204067990852111188739395262221717183945674358436625025940756778745520688317702101822639289293331994618955621433939875377741823349077638559935400871935321557810634349264692166801973069587793471722254480791181111963926392764800123517725719274788305783971136690606455254331919032228919360954971843249100904540662729238502740563383854859018826814943584364584398026261111617176584281609795765250678761179511632399263517003261953415092975005534048866409658351916597949193508634882192615981448436924375455651122041948055268230753324769740884727787435452359272108804052625835368689199319844609897160844674263673591680055284786340626912717217317175606167717146347556161980788439031135847771642605104747457663614383208549936721974573997978665227750353980618914088883859093213743752720336230257877956104729285638608513091577846496000873633392031048977816919904548372115769326147221016937339567708656913761110869153278354055689486050710822954248091805580809585284066735287814803865380214664675714389654758086043451295539355130958693211086299311106058399394249657601065749524026449463655244424073059903652849089666480404679455176056890276317171918768727725748903365671778563823216530569212911505032641281573270750113835519789309408910748803426109088274141371194091230943716786961363607247765710462348615040606854704645771878916603821401434750973053691031108440796955045623775381198275521595213650187756339707354395801204719660195128825105450331730516216341090518192260525546312264355322592957475728820016262708082360424445903581361990459604491675403755372720618198899951477716149327607979993540532317930374352758499542681718721374730002593356153619211112926163891621846956695620335649705965093323716885518784203330418075030665055606251741605052623316640919252238258870955218902881295750521711655979171308253404608433079774654768816669196814476897328483917921776776427103215174524479507358807632890541673160318119261024170038177565961182565415251809679876026163430172783703279617329250813470476548576560590107276735213854598276892987332975832994468536565991927202723128419689666325935947726672235001137195026467308449262860959852620522409521822359200314706982697792667225042365592919249205435035444239094088057620105046530926977313494108572799763801130492797398655841989887658332015933439610468750796352017847298731730440842726696584060961805465465631930250501495988840192508559631880923328014730387912919579582510129204377653347410891807580724712724027616662968626222223166070448752292147150714615960773351238272166915455272913078876136704003344771052077005942899727117736591924299132120809706489631255884391194426424834555020727461522672099256445652834679899490660341741368476155773134407346980037980421412267132037246532107321735737604919320627556467665490391302868997801527791202724751053292459552739864206624529571800868091573355539701965129310048323147041350494293596511826572404982044313975670314705370985061314615599154596790803820633271127053976438946130683352466915676444805847905318562649578393545468362970975088640725578236692990650812706432076742539043688571381094074585565967418113481026729780128765977058162672845756159328126606457532869835675416943733517186915449429803953280956253296717647427841921710549638534142832198621486189526791483040045423024372446249427695881885130478794805150924022184727268743260289620485985683180743752148629099213391399218069538074436347110623021020239908016642831219790393108898902868127744913987781601236963493538379048337388616497398864240856403886001217356037125663028241932844139371526035502553650068469137995125330157088169317619805957660961132814536248638143747081376099733927934071387102183560443794655957632108597263805611317386277996186628281065800063606056696516050027546320006428383399004706861062158978013591870802388375768955791117132702187191386124460922850946621788009123566467142528458131688323343861702634545310635732686171417326825210992719583249078323219289804851229823033793785926972269319589503335412606776368451920279901129435132900852589604906134817684612448185863452673249441239503370242895528566745576377654831303915449072417446990333489630103269608512640536887822212146215219423825090781889402643536751568910448856832921283602581574800998458320548765308408242561350893597229603185883885803835818566441215386708767601248310104630844744321880144790933674746884478564148174459091245398103230088592063710156358756516430959611273964015861769781314087950737142883177604366898196264134750069719405651950455051677423979401968998625278900852374458073288670697417739635725450609854234567898520425073228607094202639484182866925660616654440720457756839393231226540781247831666880180301842250452005355186868485055845308525384975426120579430535330807477508264960885294455727850034413955893793350511840302252987061629150596422599960058564895723365317986913669699442786657891252568462604147981108656855717390721330789331085259033331137185877287034926279027156732916866271667490819931825831668328285001575707801611931692219315147549377551598046540928399910949374201037170856086058817854490057041041360404351376424689981526806092554011234653295043491805374773561666671046929830956789203164820639317392212484055120347806321113168133732240632164554155882378460919427380885028383123622665497443005580998982995742584323537642986314656350552835604770907574732826367704396309792346562979493445664139608514643713039321367742124709044527215406879215426306425972602920189946552981151426126049007638671417302357272768390415597234506666938664605882920124711441788317822348215338918760583632761818194332276955531125819048475174629056200134689964407161982320543471846110205113155509302268251074919901496081785626051088590365847451503763849151340003295163991062192405572830081035217619796168322139816924083576395562116571261121929050871632552585586496166382541935914821818761959232920569955063764581826855752211527870118029943354674153627620774978540541333031363354236824101084647637490638852798414900764646976485400947963589549754614481376369705916356998368119875250547930693532075707667801484477014247162419081668224900742071118648815477289171865359677653957993350334272821460541696496009847069795855926430428703636647130713147823306115764199132224206460998988307626858360555274099047846761076042417842150628517557352999647862552954283674298706645794337580101407402116186144843297657442634285287047785563083096314352787830419450197029465757777328167468580874539316039372533158992805794346314087358608617788263349277461511849116551306818467136773488233410851364039479392088768863363394613823583447940815696109142938773471389342377361910964605642444747790820760496602713561689541064448321365980829389097296189121183429149061638963861069375208953468839833444671898212434780723874074576975545074368467471350248588183996655681963445288119418331726368250506118649003941255205745712036035578025141904352671837219213848299058032246958424323158984432510396544353505354322921674704077861468485976255744615351188003143056995492784716745449726976128393325183819722232836070752278129281301065694126294873063426883733818174217060864754827639424239140275321804295190341163517046980742335155605785756245099925320178749963664047347703898558730650760387099773184312810989789882085435595509432539023718952168202334424557257530787926339855090164559423733966252233516487505895569421729724489599882508923211203479589415465460303787861759157166139886932687374968473054965329378214756481057938082853005324470805065692942234001095934829461453907889066162640215013073533003319207456372637707709993999228862122432488020626348508885303601072343689013606427581425283987859491799796112196379757651924521867096088092137111977500087815930430729344883930957574159241375285977797291893453850508038319867745900251865791723708085741642971538078840607130686803619824197157747638950725346840456919275953193722370222901558006560760473854735990447799674874996976942713766869553319512533776409858709668386326392616494560868414037456842071940595070174303546918215090046649399855174138938519757312156826162286223188109672974760601302833119371611408747270676255856777511995666748615196491297019331808499410961813929649278936090212535443327375064260624299412032736255824417498345094730945343661590728416319368307571979806823153573715557181612215678793642501388711702327555577930226678580319993081083057630765233205074001393909580790163771762925928376487479017727412567819055556218050487674699114083997791937654232062337471732470336976335792589151526031561403332127284919441843715069655208754245059895678796130331164628399634646042209010610577945815130927562832084531584652001027797235612923012605863536011649209902587455521403969791153402241589813245057229232332131045392469983661127509161341877972271870257744736124388514083465932031248728192989830756892399493819598321885103228754680176531265348959379946441039256716271373765670976190037824177952641403477592636637423901248853818378590472910469319889215610792471433275600029017186285425139634004575898174665552114607079932283996193649114731212691945301467755623261882254742174925939881766761512788887829790775534351121708399018834522332196903474657945509447689207579306911954669008259571716759263187037589166388932888941845380700295318809848102997242480925591550439382798086201698320576363102564886837333675568675751472233937863999270437059938350588590556051836547971443132215953828793278294890967017460767160108037280410348481522656564863648428245411048994130152708936078824806301180992691498515905410255747870215367884778425517346863577233343834064175890144702018804220184060001250792873534368375279693390587583068899000986676275660627135899542946930880709000058236957793021108867524302635878255120563115819373842312741680228519325223995892981844804455795800753843563554453054923787125405638142343649250391762278734712421891968913826306731028522009679086457117716531202213996237431344790855045029007333499184252611096876138081628885801127188341154174941363451388680889567822705813438505214804376938599252578850067847093399732629602951076683755523081557048444813758213270991881704028121932722609107605374893567056325226489607815143554977384885571753483164646216519304208951078062789549490832143789737583340053558953425457371180856230185443410941852895513095759677695824021819543455445476524714266831898042366841672405864288065331048692161272550541092444862842360466663966876147105844227261274811965288811515010480668263347806452906218068056551796298381892871506926703423108833602202568832303517003217643956163405051042571225816099315475191043626338758855092048451506724838755449447928555786325977466367276246557645720319428334042103036158833933844201467867233277984922209152052247727510877973604183486583336431402763969391070723796763877080890754603191915200788416149577637354864681844110384241658239699368228164036303887816483214327153419525007551571752929863369367387669458325165191195465783936460223407898671238770886661104613626409576399196556202962257718226596229118176771739432738524884463626361256484220692998405099676566648012269769258631488877954900601384942462986568705249080143013828833620818097308846341463202287814457468375675939892992920904464825996561395926284077104199213925418262167430242564805735355031812607552950681624626571955565519346874759336717787958808496385713012993667026002902050282544011011431866847185798966085185495002791174005549660444491775609721231613832797595286816514606061650704910013295507759074803446445817922573888494673311069873740862773007551043643143223828402864289328146284941294516466682725709916396716860304098896168069906151005010157355140939459901853359350306116480868589949545536606822008646665467731919478415409872106957103210711443502372237590898186666870002784068161374415068300474704099988121015108507287685914153301632210585397382620030377981993254477255381930506775275294360694554874566703892928357599870603110753542296686789766352654948475149787023745325355515173837887571126709044885899490953019297247245015141602225347270911954692283452897738670849450731650048552463079998593758709276604725212645303134109242273645706176663764018635010131098558835785722345662789021745479660642561550687104323243317465089827413759393279514596662462631060695623382417335314957896678394140232357276877148742499852158783565171772625661272236516285216287859651365442974751712256087432584779557584810016953652394345942507621428498531844629621706395990477654710754714511824504465055839588367152006868604747683409009363862744133893515465048157994441498003952636712805496773779901381076747632564945824463028590739407007186227896154902883272081773653153812106351373863454338856975538711323607892409952743598767851293074233631417475457610754371017370518718029117596564006858306889791904400320542338097796934370412775504842123495715391056192839838075047507552554858915512975463425428051095809803904104562357300278373896590245082101715834045199062439300561020243183301065722461358859726421462332629935897949997998495497456330726186027040255198976954328697568114102694346410103040569145649549302325195907391424103852774180281241157484916825961480110088633340600972125340137378807147108482643552978717524130359717451374126395244665242250182381153256186443503028193687010515709590163506258885608650419110926648805283600197148485235034894368224801635175602794139878180975894463004014506535380369455779263708249993054025452210069419526613918364306194048777119275938581850798470680776630099907568296889455463304582170040817840947808940834029721137139622882961616518961851649416136812717359499449290179615187331515292647675294606074097945941738119841721595103442863695869237796757507184025299910766398837664823207338998624373533147175425516695999357842946222267548956769987388220242216321467884439617525111080710777248806218867936510606900027175998874184650753130175036043120382780790880828116951856129138528441792145628605961431353725785397142326297509841625285671159802649215352667458803873918522600841027544562170980641615814433117525769185303106714094377655211810055973596666208753308872247916949865246485523551219596632236549209533208057033511662731410248240307470712760066379169780275237448478923007439482047204360195822769007904309654658811948643937207699778546846542645047253566591660361688710908417973658791335665229114280432442681375020653571221973637796122865657686886710735514325729122697598417745955219980002460011047067788729849107363465360707033770156698594353310579828190379562164226428784659171455865359157196016347543981343776443753318165489698397800119782763230773284443241450932082125217156412560540057366149951624320346826076787219396436171374198224725794421479759128386518786054802194677264926078141701617648704799472184964104895684069512896288654567042232789397033309317982483926570753537607649085267763734377127179813927869671132570696222468195339362590127422453053814413659304024468942940082227463307395618481273362849103278568503529113857682364025710722088804476696300283570300099249317638529503040891974222916479855621675706765271566277929393073197164350161379526078950593975829357323522152170001083511847520516552612252398681713741624750663669906448392181270675003916197799863182111995102271529717880534254402403218681445841237518569837216991371313447737389099288241195380017062698568341250488659304320900394089434524322030583580470529996559043916429736426987214042931290490155232759585079026924576650964150077746848788861704548692155283160495584075280709206351516163215005936551763960499003647964612208651030928404157585499795513711879933862378464486513829252783422659330777777409901951620925693199486239082620378177076270395519382517805871177373807442427394332659212813639453830045530241794156313993461019136366510171401971559957080242384213032622150843776061149268857000457471976624789196003033337255286599430941995045068628529491066948331721842211575503911838996558840478611988559209112272014410152048492217905716718051413712068841204639329611254851079119766890098819283794481546699603552349238862598453622964567159401034525960659822860818423458561047179308549724754067842845888437046397390657732628674036839411395958626334584670452887386396995747536153069294478508831484490122250033867761215228669276036667648605685294178850907963593635505155859145033715607740384501724299099092154097167385540493793038354751997544384834825057178808193400935603524433271696972718392493528236756415718768617525956448315004015529638599980258865198301267524468688563375029696607064225895322834517272933868628163262676806383774736275175945942721663947030039766401894372109747299818511869073562403623746104619580853778966448425396131213846404254640404416565511248793453873036647247463303329726226590097489850168092654525366625714882203428213949135500286910918194285977284724352637273678166297843380428320952792145735723800117071875934898789361081781082105501271225088779286866007489915022862970270618390063038326733133856955457044835905535006073970508371569906758475542021749950886834266477115690008778536015924828721502800970107035830540448559738822768090651693050500780275232162529352912474752407741910301893630337123412118508395086588464645022854127341171453462900907441530050258548275864455299612783377820262398171179081529830770958125345331789775507333982392025633707423610130906791210259990301090292558485974424059497659496303278991596353095688328944778855521806091650109117826832206745246332162598470111109814165930627549779817339407057306426374732149242150864233364072067230489746425045554412735626905903460673935454809255664445463499394773610936258326309101234672694973922162878639365351127970726437728394526594432783474785793394022415137354830317649723053268105568879122938858791786460947031726915556038022807738689010299192733597570237819253912636590167062708605978846650859979733593489264703828656508617669537410436868066083254932046531767873309803196105124027993095308647018668860334715583241589604167053544755260907027876866091375958715446316303454377260619509032650010283020457613004682936480599776195003461676389707506268823560672529489122021972920151602586839393067798383190120463208858447772167892726691340172422803485589473613412235435785298350778500581227341470057291249348474541893757692640197410481880106686381540631825223057821533843977228642331814586417022770180270656758967571195543994596082426547035760996582665469639557450244464034970404943399246680686030156441368014468922052006551537323935498526613377532417793277910899993124246662631797973886882496904246847319303479303613333057903892161675242105383096782123705745996510809114238941942835122074455289227775861366334964628724906110523919228399476700843091331288543189531744973406314656907912895779859753148636835924751814786469670860712552141101647167743224216370170738164145678731601302082130024035242168838866431337306896776441963480090421996827895553824745576848506936825381244907519972537983081528825164674561198808675221898432543513800691967163871429874620095727206770266541314332855902759660517280741213240680505662991244534392205991120376566614179819580142872032388291436823122242179930580066781978716466051064896231168829573829757174745883437316140661310661562989854302814804592529775979267025607324988158770817834894144661704795514098345447440219945655914181995137859862215627791347462188309949064037585705987059851635405322730900762454175627511180991504690368571677330192270436393864836392794587336632247968642510546741422361870958732997013231989208097034536332864790074516010864163909061983845715537196178811262001317865681152124660042745415077684840612227934399275950383384014606927593065019144274897846996990027805466881637628234475639270096296349610666796377423297289126734219893814436609558891554592133295518557513383114221330719992675676569204177086297646875509260100263459421217046383837104220406656165492776667448336812883122917922995076806476025186263854246578491902321309398033352504291129781105388216065344595258270184649702060322815186762980475922946452387025705736079467289559859250989994587049862048258770166735788949028933017111394529706449161259606830064521139028466966397548174082155063774185535531035946598144059441287574633857873546721529785119841140288464952314211169225528032493792158274744375689277910798590824171380051421707955504031689778008682141831828203151550105581128891847599555566509841834835835226553309602229831546634878571085969832499288584879533947940232465870232451152746308576613237310945875440271205371986634496285314422745863797345861726295824819713451316896663758546762469995628520022544899353113183700404626296472969277275589313524934187029517411456786388044176408194619877961093164602818149119755379328084307384636377212199678120608756829950037768353239031163667899416356520569987581084303452434886310603301245329249692525326357058844863137793522396668514161566180888227170765336276758760512319597384699373032226553550204399123180689404582700299830573784058823374958420950176926334499691632741402541907638501064325254668832517899071873471958604821874378368342879006557719639457727047104722500493577163190407727868876276980188712551264270443156890707366069219609019969747552629803960983165898378922248536387758194159731806857325329250404402203436958195255984435397199285102655562383535078466639371097712807442535049804570252137869210024421906798291142267720949351282707837587202989007747192470418589828002476266576592610723484405629126966477256224463823124263432945940518832379016652361877805835103722403593880237798635017450784389661937843712377512134437630891826046180853826316524945579600377890938315275606351373826946579851855582227082419557765618601066521618000936612921040838391380894779490365988921185163511825834168990767062183698522655321927594200760157952962982932969866826916333700645629010683010339776220481223983806658978787307073748912376466979148883892406243348374797083693480196316149424609199035418080809844076492451563318134879482224021950473159936631599648829726164554070240362275462816330123302289859221830504049652006508779753525534509935645463076830044196004868499061833883641465734644676805947286339198696294769952224527296021653312118403543664758270058498711984141934909616341449430710732743149287178508554296015855355077949175363671629912432716370466491458338515539003303527433063289058639902531570976795307459977366485243453062933103932703915456057281693337251044713033853527074313225296036408756169744405456625200784215318802447158257671794444367223753577401623489472674009435098253067856321275609574196136543383872014652461468129843773498065867578796512330904080136301555308230248027931289591430430922777834473548152770971305835154473677120161192471696127809488511158602722648831297588738794177877924955687036461840173227611252601841145318185966215523443251806829302752253779144710090663034934540008137405368565409185768693607060773238811316741482014741034739077501785716359913012120738945366626193077228429294733441503594299015508122521888713945211947135995824936285013846534029190449588498685858028611045426887489260831909084390097603187395356053436027816831907656532798265894054352763021472794153930625893891607737489303184176926965632105185056688883037210197442561862339380455355904366473767712688932348057510204088622462151919692642348300547945701769453382424835020200226613589543881374506553933591322527185242640599351354813554689023800967994305748637026118049119837088883914827043623845823060657379535353910377338476972734006285156617536525371210399768433116290910059871971103025737319922307166815615723121147447923486050071999756704710496711437236158370175559821799530202388599860982509522294248367605256432760058787859353816309239737103541557078653345118066145870344649559161097303152504497895399984274830795906818826468047392875647788447061216445185180801691762247294330407259394253118979076922324427222949501281612758575988902723981820144796798385380437090931902891324494165572341988130576703758641613899443424224264877186367014317916369893573091349057673956733004520583936873057111366349826274397571395861466797138842049294995397897376193681744559272493976827535354797512182452925732421748277136518854807902338328808232916881708836732386671438828566289438857481295461702302880729999182094607745714896762466932494004492282151151518682905057420082102743609547819595108571470386562400591566709322350305889255209318786528083271709442372499917681379798289688126565037777362206224758568689109175947628654344603579137233545291658529270398311638983639230492055376322299664349274922629687399983442769336339582436344429736195035295669721798652087376173073092627289413855769581948055220598159027387493217120507387548879424079507150538587422763794716008794386922506136955056996829395855657831574582102200957984252870859817709918178651670972656719630409069311599512906462085542013765257872177953142808888328632624301972998545180561805845169788781595470329752739627292335223419242778056537016277281612121799781199577889454892644239046762394058108773947403031409654311227761095303849883042525521281829794765437951876900780586935016500583211507587639270393059453751138495194208116300820913369348061702025525756622974208136310409439567027642093133197101662736131616985546989553603828904952500825686988929060551027889485860876495069443683122089935294956757519765888173857109910788934352309818132724170904905781065417998428398772658024424873108121837959363271161996186527914945081055173621499774083701085666951345165077157885953809728566352157330358140637258504402699398579048079816014033374714627431167128705986400159324370721623817656046802601351509323325236021322277033660992284441277243533665992684896584936317302066274513169449964052766606666943454842231448121466228599436571584217476215335595882168791599126155228836357216673879779361707418545862548096035838844454635153788219846869552151111521708681359241122887416506060853382881131530858453812043306790789117519700466707651200284231314358559895875119918171279882051211596721401410771575775308036882422893400965517697439246008514917471688836705998719789164725451275108713122420100053506168725387718958627727765584316990896936349615590067745440758260161723788594586989339237695216214128523116086891744231497774816405552723319823457120639346736618729238488351079513814927695809122790328318737633691528256830868790178191479488906017791880596388088162091224742316596139081848455427267965907699014762341443128259070578598506122334054909018915004067266090813761435318607263184915173052065150803692715285315138907694600923724529188772724564401249923490922693966521872025235939583746178792684963972492872572564267278327486989882374297714253425413542346022102160319700742340293826008618935566573590972263958362079249034452659533423355923559999539512820322804564557617566121781948898829681434712928319133792865711552163826025516809048850014020215505047701798712862721848083976634119573580142343979595637004282589044254336178377526527418820221060132291386365058199526099629760013173133217556313223921480920726614137384964442594402902213691132054431740592192507481699975948527988798017757138377744044895492788306747687528821517117486168099208220322848904529371279041929109400489148675171610342681441000975601293512358085532565185642520745776658114101167645364940167938799340112840486517547402478796431629087834813793705739942327554087122968721122928991364354127997921261440862831654873840860335736704648629100656936525045380946205149035826753556821245889631607404636203262746135181523331191785708475816497769058746369180682858050841140068366679130627765229011978331217321386522565500410662350658073685810392833017400658796268320733457039769812645454919314526207494620980018428053091983664262073217177854144409829229369102811575198444608690050417525548336307667015929739560209334978479673112433540791640492766403315359020874460768426690703079181220486526160791971612994550824837877392796477282686265809288844482278937515134736620403392721960895814863162814180176953292049292587133057162678029814668101814699794466109569438359959799761003428890218850979846953149743955023988556675887522317208575985848466534079268357516523763130387622402497177891167497302544236998154074973462447493933606008475004761886043353183416927678421310097938129933312771875697814578829702158416621300048810196099837187650559414836449137519305393657026428052685360549753653029833627231897063639805603542171775345299402573092997057418579977702272830636415457502108386936267639091494150896453423370514649686778038016564478359407789116607589268563719989851078229016656121638329043277306644652907484779409251877096761792582464727062583115199247718068930934267082190061636572975989030274357119061299368220860502190924762615170222525421594431015343242284316500505359242094855756251036476895296248344779230505813010848214700899275682606965513633422285541088150587837206137634841383988534033071789719484150769577481661916670270387233731690564715440497169655174136676226619576715866497902038824410618283958710882426537304133441415740775473148068773847898970843631231795987898286228867657317755309642192129469728383372811129269767647646182309180791707825702068005001998640485822847862274274706528887935080677833719219381777012913048577781632572554148661994628447898723528201299467529255574390105600560803802265806126552995362274865847396998527225205154317473817386547241859529813529535655059399945168239419565359937043128652962913068506126146643616770435520842714291360702898299431418579724307879226417851651874988508572843848460604859096187728842608519457759000360610313835459508733409722603660756205178348473953965186686028700035831794189680814313811043178181284358940736247735171333473743170325427874289581730210662480147221249960473997951800351210068680496664055771278372022285574557893194452054904615967220160217931822618141630334272658445800140924337659314093787531568026246732542212100875713816808717985098313078796550982731552259279809527277328682306404592000859661992499475524986554323478430959785859896046554032990118992470385879168118400998738819438651648715425371098580475583922941422448476166246894896155209136202897523632750743783530373862752708627411252684407330537088451495912747464177678639776366950634354526073969113984741589264808160474888829218063358015525802267628350989930692132692962909360283259390913764659520340749948353089062528897101824283272399954209818606405203498494388071970225178795773161718658512537230476229372131928019574292794809411159191665296218604836972734781990485667484262454979044399685702795241417891301176350986658970246543844749738481145709307687075860164340112169026740155105640187968401803775402535873379573291248534899748648737130156157936970374912688629903815650626875543371097258737923885733657119881464882196052805100642796439332022479389420943424710047938504295048376579386809332819034813221299899232436857082571371159929381214527404030479645753659895375376534709146781124711955475292451229999348494316109855915335226523562508154166050579172366021630730864826421654863698565872609880902075223622428521300197539667002251378930483103766823120423746365044372047519695663524493827242915547082614653042084308585548263589025193248328995390635508314785330500805697783754856526167597414353527775718493684759257771454443243658094773173344152871900599389503293224939289868807188992453596334923183394883168463372162561248692988547323304872861941987376653608802651278307677318110393484576653896070125089889500801809343497091445670901372337495567033123496808479456805012954592977864819035697465641541972145985367811213837859705314916403102437742139984340051720082628686956774450553290322959296059965984555245347554631476516619714934983068785513618260371663646821842101149222719697066439432427610432714701324970381010818520283068775070823702882953863677442379769805958848320526129446965988947602706022957624666726264324334638638042636912552457227236944903261041435529562691217892358013700407847973781925922006930385070279013974107801421342720442777935720631761652808900321066789515443384789371269546280308647521997251450403464344298970892119990277432222612715474234944473714284553098187416541189421704252304671196178208328862466908855558347938671498425667866268406759304211617347127445136897120965950787955484251364882850847324518224499481791889014890643141250658800338551720042459873754033628848301027515076377214335953391046892248047412085170920939248281612140114883932084998465946524873357615781977518952967920856906697711228540958310945645688094464522191429549361355222768565116530291166234191314842386535610643598551531483300846357400433311914930788457793594522189117038023271457020971327116620015214843716195892767180601879956128827367769183049593978608290557335904023875122048545493959274602553247429589670890650503824643496111324858246306646651800600924325034306283692203352872825191027830011149146718415886253468345921869385928224035653178925733755006881107136177272104275048092888606650080357390422945008233846942227801977399485664453582000916408849073749294816352387912310199927693003160022139087146827003540257081459199111792791800129353513780343011581797776782660522582577316552917601981099238441967664682368145726177362784627572192315970521777160703619237590129803224074187431121387673993967380280780212799124656767789100567221586411628548809316169021626310072458007276358171048402571057283321611950601043568094250370703106216398699487649683104051473562242292612395872859322546169281216581833373789115355781701281398703819476488951914039285785666762823459021961134753631777640218345944471621382391383955134755441614802021793953896658050706716060762642015777033387792765121735296098765083096757731553589894309021893038175958448802302209932721614205810180446843969722796999515224155836178448231912510196505039146446769319709692839030392217162365422772493105391941596442627288787402568835178024090780027058544445108345178156067688299995350356556714713276370643871671474011089051150526248802818527508128858134772351421590324290723012285459639107444301386857093846552793566265150399318136715460939891279888211361528458353326632194661350013740790772226406725454338131491405602429628530773178300776625519000189067475461530885467773378605415014857990091651161627591608329908392450909497961962106890930444662414683710121313496290646628272498104358840317337458597299553992955127203209319666711788060306920526039056713689004764395557985662036321773629557698583925172274396554520685508003817698313259928231102848226299337681939504248194031225407583158758423102735622714023680870291241887312951304159995067568782756555490185431286875744796578651788433463550160989443307083156532092140342956336996778557356110027872222317184690572255757165182250539067268636062062638519753594623800568067069261526893838836002650849697795802220258546020996144118328328933766678750964116241998561914387109518032044716730076206054699577892480989537959616637598039882287292965818157555057915428077295208631081749262143358653556001713982649583243783067073747839201990101090984896290758735414478504100533569166897120082727897282805339366492643026103079414859677692044816738092327294630679755006096918509268661595182846497511177420967827913216151976844148705793487227979968400858443294040800326396888953121309128825468140775437358185981848944505073073147778773396073361523709409140711035990965329922245926320952469919563277271843476782459236652004403480155763490296037585837866088478277517737269286424926955215437205817578651621784692506949279525697098403614126647718910688059451333227734085252575526045570370858577107363512648664541328861459168472191386193904526556354427306787387010527362989915934609767156934646548582020616630460967683470103849366599699650318037305911022203130715659307529828443730602193239536980623381114817614229651841991838101913351337097091933985786580130075468907817930546167798250313859070366951906610527068852636679641828445780765730189437161628098433696277516962513573017523208556260391169571440897434903865014383554082638803931855029028944902875554441419167599477103844997500977588067277803148715272200384298639347782060738162428633812461518053599448337315037479234388425403650531920650406619440716557802103201078188353997812515052308646019615861050441563843822156361391479216004172128574236051064315474968766427829912042587413293666591167296493338225989314584696302427648159461776350204313298936091111511885949169892251062648502404453773523358434554238770633868960206989432507310421942144798561855426817054114067651400864884521633857363452404344113557361378697539738182235776357329901757836907199911394849118532698023673860718992017011336214212652618728515288247663623957904827233494583937877150378927128229074470990963264042248597084794923820146875211002911506719784237809877131367574032694361820955897756792973545855700029281734940036871114791074856791075113845903341889713141934353700204923707084052737923910001748467636032923976425409953092252498412107670028710333937809852548442119891241712600399259806142120153755862708052477476955411752069073042914795239322774189986074342913356454191557025947872927044496353602380128408542686427545843416686220130409341009590221300922449128734524497345407877740406003900731232396098341036482454507506396956324005182103029469178200935397819443324785480942857797900247193533436609938317666258988722796017532153780643669635939729511254813247605983941405084452602396778769025668305800747468116271682317943570487266134927997268688773851880936436254655119577335569364702941660868101884969768206783264588643953649340263407028031230790914466057787584364161537950756567802406041274700392010648431482162071371793563362213749746929504668811554641465305096607910734145870610242313252554637010565477773011031850500866145983906862901347759391925791226790755001003954284926602572714309720941485165915552803701788751367449277691667457368013102043913632244918375917683414323612772067505595197201565667951228997365768949034373830783818150707034487777316751746188597767611349016083794109764436436218280305376953192274785565562060887133149812147643239667694809215387314794408040097743049555435542913952120799307140972287669249736096785168672128447188283451368352362264521898623275081839110462572342038754477168487608287821580082491818190404237718940639543007118198538654478263696317425635210966590404522352759613907705733059109868018470061507798409221544074928314094669401515192030302653455830712026683705072652614298223103580480008512649502473077119855815974693975203460682418184662574064482560305141678869345110618634926532256718986050633544312002956531554697614213183641424944926829575737169077844447552747420055974326034666976317574959221467233054834275333420902169192002808671338181517651346727246785601808728069857930625163918159007340191781263377206294372175843484347385673764543549367644520210551964132041909034751090895590107339268507689928187673365901832859960770042196116153198923086688415649287322393919336877586319575388282868802432229285749062834698800318009782112783464473699430685892744593514603315540521613239180496028511094200920068108609671137169901631124957773356288814757767513379750010214828424349713144822155569448244251296517310052829330007596880320269714714305579972727024023845566932003093361534001346388226512858496049433741365136201759095500768872572379083996778771043278323618218079288644512985704722945918876390177410162154925294434044663345537960358152590844827165047142106494943390564029671203957889365208587356863848564038234012473264701575682856267631489490964863708780377365370562286324227491995329680995376011765735607066889623340654736346287530174001382893356965641419762442738806532005593571952599294161918250088559429804935625623475763876753250261768105102943789482800381819094016333853621848244778575211141902001157221548910141265746234094097604780590246929152237692070215043086599849769077258465120054623089267304423083990985283617980874882165175013947688392195961973835219025378292184274002679949868355047798670887434934877884263491135774173793789638032664121660878640151026693538539291175867539820704545400991554809940555947716302278268228819966911992077727685690042564453424661594551912469849409179713127670812163558797375505469539602019928916868690131678225326998283118811765205171314240303103619077034486006857690712568299122922890416514184354122151892709261911827890720386472989028312449637167226226079470589077301515792370665053773557367854297496141283239810725678054477845503338025822999006143290065674581131383706209334513827288509510058942843640093475258261534815493433343923202784019063406103988220724008595714547856363144277093578186468700313831150603202390138193673836582311063194235113752201259302216465067723953674010834607247360600187323359572596742577925778753474648474385583366726330579751806279481741545535766324556219906771543654287627692118653976305541667727371184712556819537429878906123197797682381322310360998711074411637782453415559306946528706451437145182554817093867458862259971932002201256794770803457553406855939564711660394975509368907409141140819867403429730897759319547758494032028359252836868265601285379341592958176034283466192813273600986109862053251020303654389147669581456125870528514765790448331263261261275475967370613929464344655023985634990690441716812977931560454244781181516843239973310249040861202320352625994551380919943942422644207306699422302078757372113453978409189295271883651511577284335650728339632667272773655271277835109606488349161116597296477072833978817620710642369653585760001786133457424747164675479560557604315992115996171053100007893120312916592118145597736321281310088459968596515479915967334820692572586944651048409016072543037947937439924948170354084929482716739353879309189149105940273882575634426740292043612971969003553202780746012997015167764566166086620650983149065183990813403657892330777427579288817853974784253456215948516899256315416653804608619375766101159282719162654984599284413809179093450289446222698746062369124910222676356984624729875553051228077306038272314767273339236971473182746508235706493645857416506527528033657588500186798302233361530748567770189621522377728078662970997138460124564113933535231144394136311364125063031705754638671649219177818188727804998651429623692032897521320441645948231116515680709360182325747196151283981182450028573594113668993630028651970864349680158377378960707340501711029221909942356787598529910642197942528880715982685438973651019956985537134356344844499948066238711559832680009139129230521345318710933406054852880528023480091981952064083701465298058753408827757824197190966845092572735422915973394209667721622675032838016836701268327087718197447113416474042333643324178455751429177479553973263018478223787511033467842821574771997718724907884569287855914978807215276216777487839372594667697466283646364324636870088891169603064008013321225544033259905510759601301217827216735090870830367828069535618798243249758543158370245511038222955269283087687897247615175634507109322670487519583543893267268520625106523486429896817851280346257186736577340840303172544172060562613289306744282270727818969513042713693386732530835043523622680664723620365359551522004610868541956015009851807742491375204290318837390768814511063319459431968016034238314294701177907339951880518632249363303737428987666395573004912311542547445635751228217960314931921755362155975173541771496270578666609166040129420641332056019879886479191028082572373344097806550004676084659077213277620485344288730641075216358008586042833817269955428440736006869980254634660144658650587017966628011375048195127464755134410941297544400517363615053233195614027633605043714849935500979339657556934728358078932701517616687071678505215157824221181977230596102718022113760557756508224510733940623404403522459232467132972924729590596607658491677679758175455500629289709458071169846248333631850495054136032446037122523002840366443270502682929121298013258704855451849166937175611706931575295002611807299804573870328033446422407624565753091061177342684363974742384207824933961324358878511433221439680160135550669500491595007129524097148418320524054713082666000289406977374674792357783279567686618221831164536152981043236739652109901286166797655130483366709558198145730160957319527868897617949738664731125813687331982562667229155559341762250892788702151915522317201257618794622116819631251126015128786659330839972870209589444425483857813403467475295709847983486791009529393177067779595282935586933838928401788831265834018207413113059012317875493132600386474392184202431142502717934449849109538269804121337806395730645594985291207547945343378821860367816869162464018601760989508005757040007613617583726869278889401279370879168731321041767492748146988683866933742989452900095322620623439557090365005347022096836720699559919206962310396834888855246790686617100250522735631931622916480153383634406669330611916306523322209677175050766526506928945267104663596291397570417951995407638592691435297273926525858349226001281210594341546090490896668448353479476740184091693440821121437575991844978935887981199988378104395450582209265478153024192434287549661529872752062512421645652414433769982120575773976979255452979275548311022227497804116723290650593640701326838116937117861709365336114661791958895816380085858227273146398812507431885930628540477252197325520103315021122179520602902261508148427987160887715683048894626628110875165719315803483791380475609981192779258193816013463820567615791947688858111977946573731371412896940425858642608461356780363809590304941436012976511086995327556982120044158668042851351485946280094502680282789078366103133193981570053235773709828419626117546312776400179255663368868410146625787264487540176093362492442105565222772843270865638145258939894095286299449126389851502639968925280789714373052711703482878632549311351468566743745502638079331233890987581997446383546982888408867958361478572004108178195267273630793701973161108035513307543426319758326623125873440471849275378555505659744347641467171749341623139966841084072883691239929036817624897833842304924086916049333585720849523415746389995902555929846484168530920932239450099842609353650712961038293914178384059673601317690142192294468824770343309980382663330910761357953567031620320156529942633836389917031552967101157171386605381110987649809142253221211885497858375452673543597066911907582773427165708311055881578202657719055716555229917225925199417118207127471635220224166932627204294585007602675155722364500253579838951440306567087689640251984362047673669476247213222076489353185298134830566157261004674616090217820368092789803584434628331615296800144294383434813251494447836469971094300627871751901583054975268249706681967084240041532931426707243910919269016602701227549972625900669589063641020196803150521418400014612813151431704629289361260451399255636599087035111822170092048786834138155836860001022139317162938175161481422045439766128328489548792451489203915346873564127793802822945618826470036726138100729222789243834143289121957615846825889532244491262372104309959217485693600393072875597764359278257219585173289203289373649695654810015209406770758433196108019191526970359449728205424099217747948855101892579673832190733955438482190213913546103957287564147009796204801679031823271129616918837055865294232028211967775211030427824285323075765857525501803872772311951540730843007100420922318378952510609510146744802307784143329653969117485526374925018136516701659813169341969516820963864880921930027649289087855906578223221964400442443845503444471502714727566153260498437996491046373298777309466552416081745527731188401660816921694723561545945639842474351310735621151612254696731133754720321066639057395945458357889811186178324261238258387629483664197843693455941473887456954555106879533894113498798990599543328825651993184489233911989102422072732503304780443482482631679538318812345364320343976941067634205074027762099250441628598738008542063309404490840874629501180438768199563680977412512147825641458109605463945483538312120741133967096575761170921701569194046703005278833850119606881285436914259105126429379763596380442614466936903741447024098707900609286591456627747370705418470014126066636777256970661853998281839518386935147370302170829143866834918955739571146882248943834768015147317842088430908014658858769187712165641204838346950799106078824258535962968911647995139741902725378504631972160757532992476702013619487991073630985615243470277483287408707462139789750922989475628757311491231819192777775556843021379643624950093850855751306244946161283158063084985942058804578704078785515289719360456282644804687204566172880931465167028752283204657047496845802111981776297074091159420791493023781858413123207558236599809265253524234756986784289710312193378059604896982190750251304431226998315156450957979143815249557321035853507966260643344733981207748446986453521343942991395784011881459016726094688838855923487055032101404672953629067700802205950873829180852655117756318673595463745915845363391393801788926019126055103459350757967533983990829864822423213165178011470479533400954086803420795695416413113135505666117924350822638514865192802958371094626166967342952888209695927144313382761321007621497855663453697598846376520810640392838659143588297104990724241461189967117103467866306169690503731543153385041441444438577519281212082102519526090256985712782919381403014206202610683350398499458356221159155783560795763515299610604051548273336617677383406496856449252423327982642009814218943291734435747866810316302538442076556722190100592807309090078580449191845003829560291915383448907964461571120018222173427521505846427751374514677885234986818302513692382696295177021772692528700944035940577934112915061449475258823639041486185734141833290220129687836159176523990639890991571159559355676459033076816414419845129941860910715526173219470295359256820831108954817488732891594760874594817098888310190065088204222186688229106327370360854471074710804892547330897052307538333384151108973076302032735905789880482107806930863805361885579645761057623018844633724469611597969699932476635084046605920344321714425712773923034115042505708630495725119876770193866370920645610897938154224397738336028622288236479758761741488277700962489510182397714125693022200631359251922488938193736190554035615770084653297526555503049938525731285403824614959879327056558531969324783521876282827748273693948065961564891925347719840553874804427669092596855956020727898300261155209277910428226631010454188865270353166747292907085642544172223309105163560882086109904820627869701036948655891645399219118345402280331042182748410590567150586091536669232563402988633518464432952007768643087419675280937643264326672223112216556883679826461784773799624030049157803060204202615615506942744707751415699612697991889112020018520257531724731667342763016248578103288925588957286530967032275530583655334625146189699577629252114532121101739056503886949727673609383610760161600140322746096019444999594979560584505532465867268155161409925883559627385207077637152976810910648347980716144087277808789726535124904062481660472197728303827874893466324517286119254819946483638414932048962869598306068733566963690589365710036075371832280900465003332549451895453049904322120188516364217673353380493698898351079242738823401116782204369273267897176289052900722793913491300733621360460004716889166283482916451595575378539270614526965115028268661827758959898122661607881751724267012794003829724580908863980581200684691912473047962433350282049942906298689379734617033549819695545939434973471194757379757075609834103180496921651060009701890479059375973618113106497769154523557929449927850465326579260730807671345765865029635193009323862107225338768892375712210477835546187503180074726798105326172855576086282078706151858108607723302186836796716173007939855760038996928378655583021998119832697537073423903902551709537909981777451373543552410778301137715106908354935724496520163885696393828331150882836185011203512192635905462087400913420032908867884573358610322762654808555613827089977500553907338886543813407467982328583622007743023980791242463509493662347447637899454502049465865105148224418487140692473393504624165585734481743992819138230905721084882235926205995688996691483769193218487552882331045688426971807906897206412011258948396415953155910514040006134863689803300410077913718736229031809775080956859244043436542169929572517284190594443274133733954296303223783073191515300708542264445331886577340752773309300815301756510387598561132664967427779404125526454470266616909283631440646666445902424986897093042461375318074737655449457221896255431147366833366548611261949045173029357556767198284129574480585791471023826373544252707415472746759206753801335471842434058662892762390587031503691069578792215619529661735942596696087819400570044851976149808011313579686529299257307266080513163138433750866201826705026616170517489695807454139305366056428978373583107420825718157625642257394885586541942455333270836021679960477083195772348994613032988672401373815618146417419933582888125851851003573452380690084108851670384822597573358453759824332273371242637479071738265872435383217590548414039161349076412225854213741249284502344357782756293092404829217883259182158683915637578199336078132879823246441195326615476687337967421828214959111641482203206918073268749665647622017097835879227910058900894528715294738250934507139575906656369185873619981668003303308835942704547691295638675516641353685466468387281941524493238032135422770561273637768633001546553312177703061099449178162875941496620821749616891458140940100518841373683179775869161117376998183347548193343643897230466831619894091319344376712833005846268148660546073888294840353873975531902316135889033380330667378964181470192799027197674610146874678869227203102321637603678745198691400258791080025354503894916511851771879389960831446516405330895280875936215283363953482102878891934889816847121236441834836446929587826327112171675866817153075038601574967774510518809579132627923144462344961654210483434273916666511035444005134621391553046515006260739649020444665202414534646435187022672381915311989880688501310767966553500410383254183728688876509101986164700418730683014524064726127579026058693559451741036556030457056138221153316701990330358072390729231061218346168799095108155640903626023777930601251270365781828636981457266704987548870075077545896346760198384475584940469478412057822410457990133039112200637541437280099548379449079438695655528395435630072145167325684883669565640421615071142293602449007836280825724600793049452868598881978278076451731617513416052208717279647128293473188181485575352150425326558054469241310282081249746390190130106208424047402697337939310848383378581825080267219049125423944940865558698557089928353255747252044089318335726941045794638663495824240152999669616295760947058092692691833853641895791798437251934688851501035193131233006973567883201641609609375599781905134278846895044381392358949001307570675107382178849969474636104245658180542313581365134325040581167835026770301018417413988676146347671414178542565749132051248201226906896357960270163212891659104007383230877986462249902610391651924041798479296129014418848985782125235002195382505140434477396055467593383174140940994102654097605237006698261434020749502113687327164411246734564863786437193093229333928546973857484350573781499362266905313731758394375432403764197910050284485247747586528521594286946386079297224622805428644210294825978155123651488392854201050433849070133767904495820654612373141701726919984050286910053277743495746375278631317740030946526196169365526691378634132857811686346986445968824637437536206203243297676495139497815447749011706860734137987524744966582977900728098950003532950081035461558161613653054067782629403695568104819395225624204232904313035343812731884229211218497338488080293489185929606219918089852558758895045564074917504054481701335071389702036643511703034177845566286171572618308757598640529788258389693746161834363756511220684927438610688544093117677876604395786884846480346071543195389209187630145428628519212293199392095296030135583554952919585652426092253008596756367177901700844571391144313843100591576816750945810971046966000926250269900150969918699594665902472841035483788233222167208179380742011904339404774259207419318773749680461933090555489289297708222957632005400372717388364947431208985433923502109279158029573701222607082746086411747813641207884302948260065528145650326770273572224742108321901408449937697167398966420857148455973993020255201375227919616847688187287458154432379061124298220048334159679612584812052493812019234890009912129201683308959841087188558486771164536532182453655469963180200326776799924683682771542964390450933301733302016217819286366157171159940567089513898345339961863939706385945282106949066340750610427091309861673000159096157673025016682884261527323750266320844863921490521780705427626415987513939402330880934131950442690653526130339849628439841428332796169141335502767220160899263902674258756209539193601205046492861721777760655962753742168222146790958800567414347251586012178567866128396878666544409837388466154594613138961394355448455434038873399298528783634274810253752492061152645830623541728855023202862278248207258484440550875513270616752701509826185636600132325348177165802903681818009995109008071915302638510584809258324694548989723996546412321640092142681919007093962221186460332412149119166836259444076962355884143927805753643920530705846574316291035178552825881779642021477748156838234255650019990707530429547653902111560969392280410162474907353317099459163742920415458888251533395394580610474393326620155783207376805627912451239039872550793706766315108318053071957479392370250025465363971094169792129443088852320426421051707588022327005911736986490814799936134747277603590522697704012168576618749998022067609317483057344841308601388447314869705006468091940256971076836315553242551683545280065448929387357356764948601682859754109565227203848735121244503115316277121710583696565009618729318033699170200103526468534925074328475974536720474205703594513375110438395920981904270213077713064487687895444301430706672015821907028003495863515099282457670410349559746569594337109460411680740298361030358924023753533279060843264313868059430291605488748157620322862700927676884957363875443384608736909628371011476528369696788361064971755249923205409809829954674257917733373833220867748679553702694504219511559724435074234080913377388065913375258354580037835633561429589962220863886895030063237994659182869451775275505241411493026449779251463171195132901694667886857387143076151150602315586419168995764298117279059642720729449815024751872583786121090151874340198810069918189948238336383776797392393717580273020353143438103277004474158532202747765909392836254198835531207176054842343533926360074774221110614475622658163890580306151229457902057812554820173207166266360568660822238516258135048370947211753163437023975765980890608303129697375996347105457778690916754269596346251155276745388431146688588730504007344460432648005002950514940864498283129277439915995400687823606950298240128128370750736792238928359533944834579758059774284422128596547610785733229557244099430835367494392338288486622031542655344494560424009573700531938111555830277175332842579744532426053472232405170976539884733578557062420200754294099663874703860543903858148458714878046060838650894533222890305056772975829537361751079657918812441832907927327851648596678416724764654826337618933882305002968560631721506435206713106793181166632163062717813478069720504062961732869950063558339136829102057847035735318240847536820564494865299717341050353557346193503592503733059467040929468846882937002726873898885009395028665534661061177258150720426958319827024129511765297983874266253555728527755480232186391198490384410451544041866277274377878264838529439145709103322523294658802677119283397716793881967231212781151737920783684901152002823737595936561735058953249679113881621427595821021903091093491655510145277498967175841641679321215975084986915885489220856161178322865957559064625464738164997665219395039295062768766413519690371461988991168765310468034382466046307939019705681879984938153064842513583138859358923208965942008365924230846275860152729796894547596007010193605191387369670586590173801080905543716750636595435174653552300835695358480623583137862509900733983295462395847353305303445541899353841802943973303492046651424351948598641348934361020809102972088818887769727728928404317433831821761566841549933663312644049024041015297187265301253525147804975446472659113944230912532892079097213583098177798281781494412256886982041667646139534129765264026296721225391800301662812422951980500647501614628512495439657051177899486279613944840933617545715818997556037030802785379430325050136395047331973736629411215648170075085604448063151370635525842917661867122293019906463030530604614870045053589268623825031704972989879577293342354619880496333913777270181455009149670336230841243854099838437058124810202575655064799835513041239879654896918885092161603176649276021408037550570763898946059239330234075655057130529136705772531668751249089206273884384575781350275478911356707143515272896217240232369110756599544180271884369807386498513015479548147269348827267501891510823586373981701327990929181795064546989251525643677204864417693538207044072161853368710929570192136982065517692056799030216271620519365280393875939251741015433650983032552460301277808718825568316113321180096712950950406093249625527610069241754897401277327025221713905391595015566103649787776968101057764559521700428283695602959350067044565051583193307301765656968529995261016603910686549989271297329940236564775733036006308147991374574073992411323591712313625731473211574161098199324679811756500515982740435462996086677391717707348221041435134620234549567225931909178679115387006904030756850629350570878229471670915620090830970455568886240475047996516810904222308238889320914674912863834605940828033378659131908394010682979486147590988016553652029872509824040719673766566234906676812466894779463711296757551923210664343740870001036994854598528103521547204603684422910519967014787867830926713914252234816196229038326683928660582251217374803113786973560447404407025952819839523203798329004466598041393841254742880521114270387139156391989841177160830933829527297587622241447688852098866461237350010842119852686288634305000614163334600712982720474326125347195211911812612593026218709925441222727081812946060687888787732861961753370662788037087022258166533099328016114767048013006569852771958729457270684774805530381810347054250330021015755132978864811191129616907252415500287732148904812945086865530478656758783990938090833160588000405847229856266302058853903119377734348131304924636646815975583608696350253786073078028308002782218058118889701978152687291729997324563566964723387989642643189062366467398778349328248713761253106111330630099794270442219666112410377729946358810406976595426015206337374199510555803939999401356327638893669116205795131452572711266243633422990100254689093765047839042295505094259871500757969095390508672551726184863664277155360481255744431419815457700758535241515326488880461400690381868707207587684824285940202492564149546868065463029815711285285334295236312337279148583675819981074608558780374987922462487551687448706772959662670988740424556482972939687135845612312791647132078806287708566941946513019120533056032078877789644151577442395379793283783939873701586104359816211423182073703190901617186109849767131833784373920628896342308709302298126462262719632795907822563976147309615741997631773509210512696145704989958377921807099865872882483398480964740455613796745741176360055310437363491560101350353710990685916765719113963493888277751466045375479403691770206414271535614373705500837731487210798980810767460010489608707693572219010973989790363481512113745640877762799639338243824341729237189919732164926465522279293574481247460590826621566691837670053266721713211669955826578590027553343316214098789524492406720380830403406828331548958264190712142713578726502354033952141149439711816034018866732483155516786735328237599838219957252064370391890178535765835047645029612349277391651789475440109749633046492293808309889727325518467230846021752929288377880776937390669448882953273823048019182423611740854253311914793154896959236116217361348960977554625760217144505228388471996009160306371032111236802838366872629113322911670070783031956048871543720057429449277558680493212331937094998298897967023215299343769827963777310681527991973818973983562070559732648872236103301140201288772875533441597404185493239638862809433105492815579051948959762149843580817277596006895739106353111256954744058326527829477709233979987193382946270553844854186033446238309364171997968554455820067469377535066160790818621740598475045537183358054434508956716723248000628147154299445900441165727130404278064792478772781947607588496543145867522472081515179144973393508238099549433463492646007221919896295845079651072010060263553395549612945389411337618870150523818062491494470727319484493808608886128129291413951837603697870801652609945177507899632438196753316882138895035649930891943139982264799380536287135140262656034716687814132735591482076491922673439201445883964520432952901601920121452951335556607827437237971148167418205941149705828071622991509778704249068113867585250876838587541179338707699635673986605812311562286106560204579956818767472078783844483669997786346113806849495841377776446615156752697508865490808781478146820937648056386988152069345339413610203699879825554605364406795432814863098764826267694201170655399641915237334512532182177217137834163487847308426830639041446037703079011027961974513549197031668165314632703936318645170197458653621390018103047789786464537680221952989743619035144676324011891343827640678528636817235160160484519284576305353418504181736940841885594285409436406948747289349949838700846339983883965482871495944060391978846870452443872908511373294892843233642223283138299750352425427147819429839120789501091164690923915996260293673761088631952547790206839419192582059361204284605602119512016893158452935776704796209523358198271706562371908533537283484753452579839854730346083744753079629602477773234022697606853882176841708016830379463051683223445156755222917051534514342681911002632835319373757588685557992478246232574811249440199991274027442925761475189681462264265988099509879193445099492237249293378661465514460617395027143227993297848758448331929364469587216728253723788684457153966056641531071195164209217134169315941572378623056294751276376723081971525605760234826784384015616424998783640321271664533020578669919142300859187932376402887286465609714611289457963485586031379451401811457405325648535055952501432737967904178816969481391164347890901567416078746244476772496416340746414401633245848036321138786737137471537935896200126880796394249321062817958812119647124724078644617803634039459335493798242792899211439704026421305024684803201924459882005081877516490264509270033346483832381749284439073814534862181040585843707742263867178660080559479739111328870917748663453677485609577160350923237540303068467881798210421474314372511312927444174097683377437359308171078766153199399065236108424897895407331675187722962743084300059981493269447195666565614969536461584348612429408721646277040452236270589135747119365288500480817210936528915503298279867451230179520174720591497470516380196608992905342127926073548265179662157441444494072389171759628019672343522840149668084655870264452541233165274578458854590145281970372118502801008971257552891686705923394324713681302052580037300445189215455439697986772602606366581717934223301432979483975106974243260817477929329239455466140030707808797042411612311092813010001474609529107204114705889357090265528373157285669995111976940298606264052736062217256010598583566711503325057594906777562682784074292552313555533064352578146630069757121552768755175569499907292154673803690809635614655486922008748465972738437557911364554099439253483189612290525987790216667302638075101008893085207841432903515928160694433853608222730660830890113169859030280654023162886232073291753284194532187594205909719247461807460846351580553921777778685817713180900685271758181757142619546740194582209533319358093647411126599534127271946852678165294610212478562386274484447379338519377448966253009976233752231592025486556060593710347438541781239582287104600220695332429244482499544563498700286302459796880221433603346745304384539351417240895181150894694201619725075170990768106139513669241211329748599592346266288571878689751873150382777861952146269318284324312122230587016804426951011273229863810958138692242811752727395246272776775502180882021602751999659238136593493758839485024655406579617654249724570013399229197112273820085920845945195048513885571515191494549351769632530192856944472219388750872583693912914675809575807948536273617337134439084669214886493982674775995260088258821664194262619301691062823437368473906700909181276543919702706386863506340771091777216945708715199149573680921962652024317406744739831782148894735493124509300136919145032681042026521092767945254661413097940916453815417366479861336663334118090776675208938849478955849721878934221443937471629579921624809730561602603136085661044003359123038478580230741280199657487528041842940804214671428049246486471615534734480073984988177181094347383701227222552909126126591232187710210935886136960371047141018117389970845883826472016047475769243033882288004013455840428317756452761524099746936969152354534678950389853525036319120098069603354267511273039559276311565221081223762500178741045406832021137668267472038841852986803553109878783897562720067642395417637648097092288312907719475718671413646598652824130461261483406182276000835070501715578265660752331222890514252224069589857094078730972653643793193594607607644834461736641910401115956854757901755784765940276183863145589646608901681420812247265113423925585736543927826097356536922420129440266182188695417224700695935045490970942051866900676168946533708136822316677836807377873275676668075315835911196418537531734418070060550680199649197319099828618224839488590349172345080528799981704137031400123844033496910522611555342743208101358743829168093106061059588161797729074795656471736366154357046992313131956326419097134300593404733115190424818895784177094814433312924282325872555783973268512526626365950188507431682437732163097915953712374211251951463783130399122116398464789766993004536603554381415286507593066485804864123277408394140241530282842631498219655395586802776878246625296789588752024658439309958178182893651022233992055827013593368020611139172256812090940839439018291718864252208537288902534587984370643374398714998623940855239841755430722958212250983060263444905477443214846747126751348939588454455063646289295654563467254595774993462964166224601084767557580496486063866689473455746069336831560328584611198027225581890951099253035562042574740676224381272044012941347230349847000761470100072992271364361007821814937460740116269325419029717801598448714483195193041664719244015280904631025375310675896593891220782018065538359031070418738563998267374399328933597905761630324356147740399926034896137978956329753516249656427646373944540621923760807859136632883820029293822100822179561607772367087211562877966016751562931714759559285391553976857916094413898512417683395515720224925168127519884740939870441386167954886122424460328735453262455044546797757621800616930522188764810137964000175908312452973044557066388946490906765307135848030806347248223959872687459229142740496037228172454030647994290032199388850948376362208230751120289942376059851574583118428317651234768761198275769324160803852917336395930221924517215687445544974491036192639516963747164017346118551266121695791513923120153163803092774895576531749664404767892752160481733963310085239025163966337662607934291192041122506537261778755964790013745977986232335396887794576871779979602180955291581233188538399831361406465334609535689488244814833769870785377182447866619805009085093790502186353282074876580876663407038002677001395876355661758588746095615150787864437489425955564534874904997528831858905803155265961539875598519945074213669718231982227990703837165644907526537767841613020446976753181025729049635981024296343340758693053532503882829700806448263077860150670426402101179283980237279169153858599333994609020569094291330978981580399673169137471191708544415020621161284579285972471535127354908388018086019371763187374720982788683559611262321758751407360371158761338943742390747060631020607395545992532308224043850645093736642168740471190722349628125891457626931417858308534578680935825759677515811020142556710191650134286606889146178986591338191689625487610052717553792469779495983001515882095606435944795687265247147830002105080076591905069136871066027573936819623874636960365356180448792336711963610964435903677803869756987000661286009089727637841706810110238783275095560498634378250407293987110124190626811847588717782195756687163910962856131148513102629880184454839835633463698589616016388324516438337739925175615382141925383092847275741793531579740607724898543424384382453558773880643684364349620462208568177084296982344020471191361813682215677312033531619454105452989155496844754005958920530570270812362643770963471195042811363387804742941401066271871766461434009954206703556133362732534488319425223526646097517871676225283332817134241991129225961654139185467587469789606291045609607608698578516400507883618933128926303596731357988113228154701349703213729105691188635274337987464000987190849198108177584248963771314900610871025507363644799082308632208516929107811058224580700980093793034594248034906955497399937641471432924851815748529385711422921498090317786280905847193805156438967231509137891530348471925999580280050799979897682631641806709990832996209575799355791674069664451150549259994834149897951354376443615073878495970237311993240526764724517398259336487915521616198665538804116505671637373740872470375437939036617695192957295460613177618460647502931801875655555033904882550146711297524929604250044693657854970788048904377347860999426121212246912003465728337060868407699173246106978949106646543195068889585206971914268441467130256796909917908161843343953821576359323173590060476018374028271387912311930665217356382552974441855461583761873215681575535943102566846559238320247588359255951566301448338733468028772541151723651806439184542603290062282780037938508686861884600590837105869164944434545650668683317144654694489423491958520481878178581864186652628245115786007000346777967811528108873473070340738091621206231037907068582652638805098960059457151190977987815461985683940224542743719769048248289768868040262432578504078460446484041845351005170187869236198444496122152062906692049137516087297732254199910428180972262403198572191473967501393802967133905374141891311826148783437969387834707191356691280563360167565306831716340211946181202188998478234958154166682407577319765731900329568741580149128223293609928807855328924205287605062011826251197066362795080659757421326269879340926926428884695565957505962325130984536031532306445792555666055739549734918975207884764401952215093377418261105878027766306575323339240415793901200053330746689770490718955358184510673399867614686421760473134074559626643769676892192679088676378709757458562077951038556837810737304860143483249014829257669750989327827179755087313598536537306866016968165132389832157282266174767709782269046759050494659137413863367386395493417601910809384333524884677096548681040709864057500834779190326711629914415764558863978276000403848287428424438614935465158867157312719217620481738577578321941015646812333082742889505193499577296569017803125827128598708198180200186426405294086375940413881854720874887907438357580102215705375121078705356029312117031516024309631319026540753547826878251230520973920926587461039092753300386855055820939189946694708727128946595370113772878351554308450766041871254355100678627041374829158339574500601953400360215643624388818318923400263909244859268150550334726194238998749766926960001209655375782390621057005919784207705057310478568380069315479085201755944173155973470918365810434270916340942240606825712555855011729631042009856670150738541387628608348441090397994900631076865259626287746969497707163288826878287650057276006039939527486837006811516841954237948114406304811626746914327413021918202763722488888668107509182776598933938856876638249141831178001954440842196270702506708338523563651420162928555559700486728259023209876665133554382247699378109797376722404539201626500625597190560021991174937026626367175777192266507145965072522863464184343231710755108558046662172009308028251594362753183029353462788441331527523515948765598879950461703388560950548843052867372861737699961975296634764437923340661402740837229969515103126211310889489954605889054597640607449202764244493424176663134597059558483552492214452671779097213676107943780163081806791999511214238423048865784593722745067786924205554609583938551288172762367611597782177221967898750013013587573508739287901398940274989813430720684379807545845116924599699523722331916193710450582438331040590249500109041803401970778845921387334693937040882422673534240840300240670329462269939954730268339740474361541809274952840091143636789094535270421186875169039736353679517354805524154348042084408537214783558442547830136586110624022181461429241785740767995081970706117957561276067887544131610270263438217200097407301583442169789981382939494169673169341228114321636030496792746132475579155579694021374014121014941669639824526596040634928206453504647636752650014126074889187717428147440309912327048053987892043958763581439558165031706258549070785585852476596980944377729430859086793424810835008669903592920983951145721635325977770360111295714112364880167865862596993460543949803340337085715063709721466063603537922418283198257700460923594800076036476209820480170159679881611749306859917101713685832571420639446628811469461234880220282746655244079793620852325581796660182270165549299191417764516474311294484426024877814784096721509108082398571495452558797572746625102777292551904872907517964705249288180336154540526443809432452388250910224093705695156079544652302386742972727211115233776276444407765625444383312501724145785367188586573996312241813276515146767014068507873329258839979072162336953819428321660420301041799946194040259638819256850653598158525182098325029375468855650555339775626524451478472986955707968676055847263878358824468944726006357427797115023184059490597476310077984304595065717526652102412465782688800099437473114128758546504202362794634858293380495477584702333377875030430490929594516445813997128603233413485815261617895030310176485129031827815510720446160089346731009662536582376733680008163365158131687808191169852996413071522980899268514118818784018357754317103704974876077615875614193200776874514068560093480238983908948456609469155729635313084418737547160664006964332103271708352761448030539134972222035194768854347094040970503766337657635495016150922424298577016178951188277243707539790203100313994363178250130091787384236722207235930360785780969007683399598038166933500074819860014129088506928896966351496709122105552840139298845183377472444428045501306850783358421322409090231831129373098932632245099680849036009242879291730843696884086669078188408125090514019741240258436058125375194927987105325169813406417713806613801171934944786112330799372058399951998692382644779528438465981904242719186609814084264991577460582052634846586474461815942453066079114049085966008721605074428258654273115405978677059649905951593129490837609202476781508088791473023641872289221966440433903953959993814896426690223940885982870359710427761530652001864578890458500678491727923885421530289247456968934574042028303292655217760376095226527543486863387172616154212754801841630722279688659702990636357929947788739781976343958374253950205885453044987562887325238154337154332833725790018947208285198206973461454885411186221901120698984995859290712190593874991500662280270813947905380923280399576835856803482898537026288825489985435884695146880531881754409850775628092438211817913627205506094274194043565317087856195471110064890929050504425768613177030675539253323220543388595333620803008062111340845665073695096736477105263081490375688360235557078255101242470586184876719373043024640345099949633737055076217632539481809257045994633793233796373670363930302646190362194861655429502154514273690063029083601646899185842643119364587436381639479062712253075006093187706947299485265027784884678703323007391094821094194482195637064668183397548401371774884845845090246519594583077521084424583277104393853452900273266695568173992041476986801460281653072109922852490355782375033607576981203011736320242897652283292591115556754977411537987521393250477530870077474243872472102164278506283871638032619432376135609869369692374500510805359133077598331477230187517529340755822158265974708890698395848159652117567892458165035666883354503797884062369772680407201121554158196784175005919074693464854596578209480437045758290069096262426304130282074048392244642285052545831563484870407320159499382410502440041096775706839892289125674956900330247610998805847536660567459041717374159725065692011958233214891558409082330616548237934359020327289346596128786845529691741134063226614073812165860233723459173905915701580730071742002311432489745020104318611728654669557683489034331318478627329298031603224073095561132904767460096717781987313166004799195610118432893486935514843449665095873708517947001944570396567160733717524805926067264481610018727551807113125752732704785480353771980712392263203229692000912354735315447339338378052994844776008582475886406543548842527449103741086770249024323776155948000975692165809016863653835092609288682352591275053427456244942157292507295391494678908879641723769718361755615564541453819318783879959296775411046020348017240331405876412258087222204360631404906157988327619114728980025663352650333917461223684312993018290374547961613523204081461763624108624690549949923890336160314577127804758707249981409466634061981230863966024505540568331105279194911722772126061364416969195564379212364118307886798665875625074452658685568184146990184516138488949677403302955077407052620795725202052212425070316615295607435635314327500294186785467827200935167432204894016513687830382205351689595374975869330807072718923564435675833170046110783818195225581437021210675246336878320767451119633747955191289391386259776451649186247337169777209410851521399533625675605603678868825865495861220932682913931506170241954108587744639060796669488597004203457405461194209707854074227828435579539056659294200808078210818153497478844179496583861850499500952296799504041918881098676445225041294017461033355498590769241759257015066870627704090147518341518545827824421683838318252508697343988548835031994059550705434759964122728435446401258494679434586955694594709868219217651163487824578137224224009201934427034798212504814928585269223467143732007966707615229738445206621605783257264786614292417445616670573314507005034065017383042471053580279329844018203549946334240854457327026499247086354802167024352334905305271930360619959959577846629291641727607135950382439145278512184571311600734072991612874386730261447954909791016138922450919074804996927685912002283443125336485401006343497304722572083627537595438111123705719686133851153338398682553506997578200427149492935948179956622254062690042329471388694712435161821021233241312175324769955172281103517897914013775353872927136861756383904970704540031221188046089652664788254916547992239216280590815315434711303750019830615506118039221856111264089351563472858890709228829401965202816446938956039641301910180863710033748824148646803294287687199142774070687477771578048176483529100515731810567892413144189438923226870676065147762069304311477230585595833906011398960534134638293025735832426558550244487652621226022939806525617779015915319880522269284602641457917879166247341657781602893004480838478661998425364434996381239301510586814186476557294835273736739024582043993407411953749481776570798567247857780306764917364134232251095500942703279053088817682691756430588162793746392179174044405413620861870268084594549848708337214862378121458549307257974154998462056417806792044907873099138117705588011913968782988659360702702369540819707150391514498554129139876995668178565653356269775207581581915957594630377347682658907313370161613190786710975725736105318096342886946338802837717248173530548252334139735963409674628602247488439177192984491380750359881395212572264970194847696023273524686439310186333881511393424738342634852603580672702296266435067170602680439132157139295382045310997757200088105934361560411595244992647865696702821632287125563534227319915050469885110105646644135058737390967245651031846285840394481901190154803444128591023778749921744969801462586895202813244634959338549767227392999829783075972482124443051880383191320263440926230520998975595068097138712490657730862921976625526732118282575933988010177866059011780597703052691886243323476234643963842478995779284764297580504566491690499419133605759235967803795624402158630522493298365271663880977286603738615950822241989763323176370731466519631335067079963027725798772253912421386245786787491654752658168161509129210223185717753164760720227976301815449738418361600735519759653870859597539590324629060290937754117655106334683075736506519078052511695382735583096803570748391089547813437905924143976521768111551100397795879671961319947277641521300356248243923892783765968718454846023218647150446999501753576752314906605306682110776357840535191789673317798563145213083633024620616225569604185070793256045965318415217468542640773974771820409952007614523003226089817648345367734021886739800837187063779300267505872399812156438378599494809482230564845221567052450763368956507224041384633230185776861420411556192394692248506925669903645011509767867339478893260665981565549422588593647563374780209553811731798916880473537822637346881236592720415758104413653798731384414075493605731045076505545228165165982564417121112247780084067304828816684387561665085826330172049791776229417835827552020592092937516710946235627131246220389989622932783108773372057205150306860187125571549727918786119067043356905074515462361659999562764826311876699131931112937822089575664055375371491843353565604779696007537561501011430354654476211431354725399153085049185088354217992109892346710107755459069156821692199579116398965135514853248833397502949714249832981642297974253309867278233985057070758277982677551738563143426783240267161105188948183850479437307268848802619378130740620844978452864135585840822679853485364731467927780384483162714594966648772462781803260738128086485392528572458915596811799992021401404806534279637744518720564336933263318818037365471145628325645065165631004619032934683177059245167642418636918184002812889932253404589106906625601045273698654464728254540193510233325684437033179785560193790614518470881373028138778121537980258934511739125492565343190433077425510129672823507193474837243080326866635855402888379535412359263333476896265974817935655420599962184903106756740308416726633462472740594281121206777219769316301378752459376607344204172908334121908798727256630634286858056935904792790376402796627442671248282056581024160868135549421640662351163846046622098173009213501362255251587918230562104541860996727484765445606502552317744258013786108298813279690500054858930190265429265485530813503536842527647951957856974949470510097160909266088264378507055073138222227186202488136108001182207374190121475591202426558065800022649306896139575034856622456345535408525481248447025626234817909735144052817544928668356365776918512647344172368247637070389739122484199771269733429266119537109588449991637898331251775986874272908150093361669624155350761829392917338072044522241864942284616781777404614208068859723926347221833376822462834604028634437112321798021770416358201167961521780436740911891062798154038452740975948872605787896115074630255240414813665013783330027942409972524008009302531018027863190105582816615741112171835699318671448447953622512704805234125459039991730123399929226739649895524772163846220617387644131984159953289044040516401998378978632395769945639259570842479740336030688858518156618607940756214332002372243954586021020178886162541342837073610809493330524284225998038151921469998403034757589022148112433377773461758492754308368104834972583640976744421773102853247683909562945053205194186136989035212501636503389264285242693116202992910360286494131506085658384759581779783237523287406455554374786868363961650079322158066792734274024741515600558381541358232215469184449737940564500947914881100557502030550412272448071151222955950652506078275887230268021205141800667074318165559735842043613422585492800940300440941657580398194328888161750761664263588292490067567004346674018005185183588127437866968943698654366884340235884494313891188048259623134591586754860004620433234247487444744940147826903902126838762649638679047471277539553546992377398867171948424635863575200940534238133999061197160622045129033547966300315945425136980881108910940111346738243809894095215366069635786103631632133762017381708480037324650323700508465850556005966930999989485233917617456472810062374682911002147070625324454703378241619126339419601160043019251072609226446747909443800901991671735348479286068490645672600475377508901255124698458573073301845723300128958259870731979210216087469105448430417136011151113563182814146668906831280445530915469000672904210020707015831025511965229325730141008203589279147285553245541393465882941768130796573587952317369148028627683665756559049049463000059344824015415234927119647369381683565972558141889527327889539234321168642997959216959651307428176473473623547721511885471866997853577071143190518860792684809998777639508857400899068570649641462285875235872799744938756645456716002690539470863161551392428857578129367993983517483552610339059454312539035128957421538677744496384640067040841529088634544750981207150645725811710354230516535384505045183860148772247628499682862252940282770912459500906128938367773252337567393259452790113502871085104777534101102622578236726148521106175979056145566825872871021414973236220883709109761908832942956750012227659111951478475721319487291624250784235063328516760451795880187866489161852693450684594320954111747233260378418193582039241850370516498781324103930748840392422270224833843718536343605333377302294567504120936770679778989345442734982132144998838365667370951218813229130476438898067050173843081135776086253905255576035062070413158890778200113668449992234800704830703339565569717046694424878863246840912760181702061379521512584566411795933435440631033518591344957232593675645476840300714001385620816607916300400762561566873278181776517843293744336453170007604109549184567870059438455534881681768443311722305380909163757069628941979675143272287642633189155086042382175430288078836558708506545096869251910573579145636850385464602653415750777910189855526129162002531819519558494153251318497839498599899353900826758060663563313813240107345169652648325344364938100372080416617691687161644427574611473721492185546034313181845172411684832118663196242332865521588854433738923662477952951954479722935581921953312276511394576486396052227643040357277872885967173633992006226466927357692142395337291738437392416135049722535810659417919219178933355408370488499559098712269405718269576586023617298835042104827768954758687773536153469049197589860760647025654750486053521005491391048898256618090737798373372495115186270737361366899832328574874082090015219455333341110844273888324745245681805411809927958124161900537888092260411849247635599536385240200709108449054042466228704893533266826994629121496487801087914834072966530132236533030119006235946230823036327819497664234058983174022543096573117018054711157021356282528933011205903078185483351353579031824090318750519605356009473188500660691743786067046561470340347951827380052827589655042002764021673419205195765671231173664197531700027767110124953667321671431897461554841932301683839611598577347562613365095567836553573911207785574568304200979668620025894286822500459154182423589315414368502170939418031329070889956853180687745302127235756439293535360457844580239810105352813115483718946019153689748865497852871615218536371009648939022320644379628557456554962087298418321713442038307528406420050943777461291252508960643092598128602464898842249233486074759964372574100658323492315768431807852460225433349505474827734726335586739702587675093497672156162663144043759540733564870377134649628334193071294742692945383854659700216362950748001651389397980272694558685391149561478620788125937698599807573371735000298548152802560203318793353541305873897441228911521177264244200194223831660594538322276030362496160466625995761964734091988920580895902745846199852192093261106784301053054532011914647542762084401764438553654798137252511658644618977634519684082237389889044306119665670394357476807646859753058952225408303315532471029490876864615504825031101522836100743581691440146424964728068820495240149456181420848563176255121038753142009491246930442734303948807307229109397091194007509349601896288504761424574550509813806565246530143991023081531366548469473347263876516006113865444671570750750198776244375454013268994111119003355713387869487132265436589127989730346008317954096599495952377652886869725474604847954048326832680762908991302250828067732582719795769910062578543682447891660063452395365797476712156016183318713501338700399471821648939272893675695883750754969420390225037991573757906975723271072899914403164051798426068537942992925680607768996410142791296479975002381720466248710175833688892946227917342792841874429382506708662901371774955754908044591047985340695518122105515118159930970277298259864542762212555158756211815553698925477407891703215158956513062366238793368519249140682326223002075691012783680085740121009921897833572455780786197097471756122087858094238478242725487668865243513358597428552656914861919603823728873711780043113006058635398858340759679837769853218271937789424944230079226565591316817169367780309789778493097353890443622255666651111935039289738748557939046953742910407659773955426854263241117116055707650405831492727093401780786732697487224684906306225753489081976321310171043271069964418901295833823904500671319990294531057920468624600042190533954240268284069132041432062865764069803300595547590260053309826427006802327887525577436346315124692247223834159601015300834002214453661973435888019584219644415954603201398344188020539941416842731601187180635249134474341225965203045319889171623247512540219956482614363497312683934452049856751419230205114353978499166475430921600481590520793866795357885785196655555178257836263449775361078785449062457161017997104955107952596185229181461896142235901219726259634759833851236384806443157522133798549150262109129173844052081154768403405301692538592835863686521190375113657977956362218266751213141735591822388807301039211673698888172161113641049006158052725149655483209766152564555689271681834214289096383672917758115208305270974720904432126072200085398053204797699256460833859262306084576997329838724821430458488831216490717985973407413135087279229125316695796653375852745273633559533996948019502878141003354291160479572398587939033988333706687843304278413787009503429482674239849030163945923193484729079144079082048410260508099691700690564903115315183723194645662831639309453967062269777469938942692752397682124337256452625520389119603966544030234444338458037679045379992816689991309030298240573176125602827563253916751885981807458344832424642698473975533296481798102304596893591368915319483486976515979707832258443998340513239167932517809960839553849838505993462075559091663823141609185300089090702948333985274499144974602763811941625690346947023007630130844396156500416749233349709248249196531304853987222302866352464873973324250305237065323807672575999186952198092849300971307485944205540088544826657411662853385515227267592560270195609851614500671832000358196191062349628364312715025406101556538466374721473716742268292408836572322468367039654470059367020817857273953044153275847448909522398851496584108016703785714358329522946081732528382490796238449113976651965075502205640540794506986874867931405446300909243683382931536938907521478108110475289641607915133170864295972009565443194347299667131517225323974395430361983351258751309121410384557616873627301433138957532371791714302670426020044546653375617192957239906163480422020218527238704395629184156758239930497503947240136911517480642941648901881196914864691096251014226302075988325897331399824353674861993592180407127754962499894220661263082961286064685733823917972493248134179160876827194095563999514790828318948522937154255609001784369109954501465406336868623951997056516845192324188606128532668934752154032605462551326220395969232216585478387930824515219681881506473159330078423358309602734142468594741088869137209085518098248340042051248801826111845526248559565927432213457171067725770635559702324041091342065176422575691462706129691930351456943972643878161938881184711606466982799656086980162947583865107027931544760147804245158912325307887291504641587327521023091986248153528599014916180637588873437369584127780738104950991935137568005864184619951835406298458306129652984965952795355481727699725931949699396069829506627369687764188065994590530316580292904135804112903676935766362467899970613379713245757859335963404137909390888178336680969502455889501038139571465855359340653450278980552824362055227647540308578901977654914701637993956757679563875294519163701876016423776556900786466964202749764623821901754713553243982004570497689596062151557728504156957257837971178845064309325215157061984811353382152205115331723276191198643895652023063404734883222840220868619523676037436065834351215011838544398711563758953671014411460871398785572384739365710026932283972675322348308955195987766895690410259687336571891442779738553725380838902727615738585031502869606700378593723306142212947914948908928409634272352299535110905787213892350983938098408609928505876716315329457022663284750863299097919473124720502013216278396715409976134964101394283177438084559681604451156891513916236232836937740926630204367047162301804355757466457103106277100725700483872159000215555696565132540558211223380777394928469566859532517425946831791752636908892966355847630585074861993882678207389773959267642292387562942687732270566672591527113317390478875058147307720184417889623179257272982848506818006012163424706334560551500428273133486858190131169234070546061605372807490114722238902623836879909167668792931703323625773272354921456093930552056659290786290185897925212669555969073458642517432460304121538376308039861457777135753880511802118433979380338303897482312733260584287424018389386200482042581772128532709393766364822600963677807180492901956724479205191200157767288377976298328837590377765612158793698108964426496642742956449444424437318668073086169166572408368569628124230295045135476971925988733250635604268934284105592686219286517913415853547975140113910454930691794912261136697196288158070475430033976161355522205894517346948953523173291494108905960033629475442845881359479134241719274098372701815585115651057219309434917756681010988334073499054635222005162554761785258448559938916620556276758248415593032663811226945287873997844826705842772307087083409740119950138067872376814275836124221057825554079037634313712003690367812134045731627738650734848428060349247146728329384528536263482982448091335418609590343809282418962632968925556729359140882845846795865921104573133763566044294990268099043409538493305691851123345065920192196818565468360243016393171623701091610501127548381053040082205793177066064022445106067925876751078209822826462977467825171732380495539910754943941597631214204382284864528819188457174453602486842895688833777450011323927190850053065432740917128086981380030173023266553322037207069507936505258926350318572702581723310456191025656280491868097710006894171127688939974058984092570211687135814945626263789824985209661327978391196531832048441535301608337064995931183344072671903512344298475109264921074490746830497148566750472575037859782182680788712731425385622908571276306465644530733294303935873363769654054225169297208129718344184880198945872212835296504296027466871564631372364742512649236779631431994145827983999443378350696501507755354709452081493436717703224113226461402018429889395331149912334193662379020322647862640756062216817289912997398297073887574255719997083932308575787031464934733603375123385816101978346216298086529623712676987489490898173234200336137929486647251847885704638864463065707428393804192645479177960974929186331038786226817663790791244250898907025441492737246986362784840881046223220895267317559916472568378944302547461614947586921367763516401739713761544886713823265700752642791611859117891515598137020584447571060466297886108664532370840320852970544040931170706478053907040033430996561148623906950986443300830309398092366662510361263377617770553644586125191136968087935594643136189132097460664557354624495154461199627357636141663083751498965046860596210791474151377762433736938467610682882561718494062377420884453511039345186440563381145980544389098882730236057582587526810954554022740271786734073951532110726545325286695715309376570548884489540012507075355169202268037891338227559186049625015968745046922388164226758238199150716707933202557453329709100112646345215980918427443086236276795013569188238584321328494659250409049603203537897122666395443390287899823255960484693289642286268554458617382057900171152816292464779439611307755831585512272594298411425721639307185741934899302535050665564131532299438205704523599770080982965961756639912826446818922136116786472674730121151973848034667218551400222673351454244731282647140364127942985462550751264370710834440366887490129169586983678673323750602157191233275728315977372599450919499091353989119981846130220152245460399013472809031593029067079242545393470259511030893934888914861257342968929352764911879096133490149584345017369077474279785514022720592739446483283043301289538750580939726250457292166965908273659679263650123715093211034305038484321111741340330685128753966028799671875167589747968607114323715949176382027505353487947809809595465229786720134820926145430927940895065928922423913570777042334600940446989945605532795246990123331165548479184850718957882142430904414147707636175063517982786476484844063990912102279749936424149016727820134811561792922568053808342448248593401110076917417543760239544056278077310502362111747216912387547161813099783513701463792306504930402528116701287227089338041645594001194593859414542874671139351738948843845559443245702960862532463269841287945310817035724725353504973464966202505450587126408920791156351533691632890924524446999459290423921742341639832349855717325035468589989735368354673586241351668452909236047710316502924594117949090902988646972561980937337672792648508868481744513213171378627122806219348059967684541656987148919379873867866607808181672247149109856048054371312777433368154384338297712009001312647725584012876633558067748345768810872935035921968212006976331979536243508901188769794202492173271961405338038004084858271910447875357270403745207075094276509956071237096472375062966313402930027715511481175493445048820698778644102776953982080477744995224483435321769795263064973385778333674034127318816947050285716949737410767777509439777859056401253187360058192544913614439779844246627064295749295833720989203077565678526860537478987882380254838456905920560864889244545999409813289109880923585602156622417377941048951509233700155446149212217949295706795439880862314399844962864841680058820244754255330859616638695754246924665668446935341032513144983221961510403037972122768577698065466106585403781197847278102566762071611536749463762704507040511706994320351889415532687438039318271282752335367912427712466332035535962372425487649340777885201909645741528261030067834946063654206413645248147103915839616993692455121455273641761508290268123731628998756290537195992437919347690214183219546776036245757210228358495298448024244638440071675316002352057333125169803940472322398823072457259578619254652751772592073272181755914688555936560083314877331607144430434875813118955173412422416995216760934089448153155605323136554407176663299690251669175010921827434883670812469993230779028605323678828735037789410483543854387902050632111874923062069520738868084294719939430272246307668346852483461754474533920484880481820888606883968935512395664159354392414725603140669195728642524704143808215698484074606262122178174048975514934849388024267870598008091546326046700134696841032823182449160930385709446031532167343856655091997393275256557331661296708349475169378174963531855055018161477897748667974112538496897483598051590890866138925005084672614873889919573890626317047370476209862604899920363902208634414011833773231398008051024110620197823842221653413294744495358046385130953270748921950708134131193905556362766406031527821171991249228651191925609435668272859163936096960701968963468696170527997135088516218460995793734778749603647904131378954973747119951810743984612899500120650348067330579895239527371663111173640048370192522791943152999196686552569019728568666112715072418180834818778556393349068888895745416674245032309759590847754843918119080949390200362681004205303891234436953950405792348400663128295228663860905869734844590917924116627730159410489821147056701065023574673426780148268883811919809638600386998335889596024926707620885142371840374777386559506331748847145257772073476445864737897195816827264095255133159659246845445801097930126414395676032762936312601698376045706027828139752660797623375303640346239906017919585632671958032424261005169473354029425051981489100593502184603081212278874202951827561828778036638962642004195982127404280416279722823286531612716764473708806377159518150846956152258703584196945501195023499667402770810027124057472948681220280126083429477503765580557807837555701611149473616759206134223757433697199575798810429283853378741905713286108357702643756829305748162633889969023351137871929261637950117232660444383317822546233371202391232055488993881247533701332862114672294207729329323830576445577530636970098234629231997005108864755707017175590992697449358277744923985062822509163695662012081445574216165447784077647507215861139522786174074846685500048491183095332236183514585538744644305576461285228690020625520855516885215413226281833643901136834907350346256321834315142150109054674031977356430634321824519726894097949625787151236524228970744345717533945075786104726389673051967766265906354928929365943847821888168136863016246692340172166661618732069016150381196599364717894138225625445736050485786950453256964908737819761671038928011411655268273608402758747391874975906003455368967169107023174682350173089635298686946319826953365612936821558043520411263534705397533676188442752197027727673154475008726192242315923955863834032381082304435149206642941982961446624108993858742443077443208223958380492852026508215598752872371657051097921098867914571821338333584679052932446919964404538011861418407664423881133929611923953274196328608267238487830290791763654357503723401965213298894873037364239757338754668260353231035813673361323888751753170650998611072661968845780926334312196574235115952811082902792453590309016244184966400748253413288334577202457787580678519210094075172814044242122341941901514115922979920083221764545596080969682952768345766386735760741270405782607954705869742063707587039720723103497441683903113467514469969161006605953456117906193203147464740897886878302934292506021465982568854963537607357105173632037176664576414338591026534494437601613720574177980885696455404038877222799434218036520188893744073314476573450932453901834400144480389525925392618618481464157774195005957848566932596113880476541667436901608551837429068981208761122941275893593211633899444629367194883430155364025837851474514294594806672151280575235576269918621184696727000127721132105499578090655576310056121401566005447093528734042723289361435054574282696609407234476825928834638000750511202245933885230046626753646960890129571584927793113124875817345176883183909359251004672612517059600958339761928777921284405568995784341829850791510478138967565494202133885912857544741863841094508394635970231935642536427462361903374076115298682589977995057614951071626470754115073605021068787510110924315229761177581785957660225026405537841640261357158000103823740319082490662550530521205734784460041910908133158382165114465961166716196325814706118276218787945439257031051445129791298293102118471967751262819372132662528241299680001230684244152793171435859889174143969724728506330396857464786636725991813912574601682235484131079072063181438820607730854321587372468670415372304352342184871333426264623285838842914910945372810929802550747724131360902381226486410551513709162143890939844923172893238197365434439772676899218514550973829332267882956480698504362470319196483755833914453686385342553017640653862820676772168538556265083615590273725751417710255991182198784480167990745683079096851038057985082251994010616164175417538998913469209184679190928059817646234812445550680489944940134515186944672194912398364575302157959007806876689034366817627941874857280021834498569873133544254293377642090600065336600517219960033894757919930484531635814104864189226934325903666972646410427230103882999765634667379805455747223839321398889623223319815589112452537941099975192317535098418570969788026415335211670582505887171241196516081601907337925608276674626887061323182554937510544162622476963506747274300177942122398421210770350278396203036430372113278943591141024880091996592500760965533699735345712420481148581670254163927080443230211012368616034967285002892386147998214860681020946698016737229587083956186070302831500689949767683040668704575065293856564826562129412231861037201683773607119471394636513870690517591983876860934840227114213347700378782925320093588126380212087713696606565524523346639220593299377100399565453676530649072456539323712823590065116166827762268826164790215707809419981899191041272323364610474234572071149545921414722175121818936704126048811514272236327430643629342606828928920251720306733123017632108723037776532644050635350237366609809597645925787485849504223607890894057442331548961784429593388138848633698600724277552855265942576240993309261629265329484620859542325814931361405131637903179959675168496453008203589541335684402322377273187614600330387973951534125819443334720105962975046393959413463228367693679603514084056972720708411221298452339029297857708388235996518814959773704431529262421605813960114170605468457752110165033898461047023274954009638277518259081064340240174641580171833063991221309281520378058906870119750291242053501923819828375722519986638273554885528541092957843426734845356387395190931003694331900560759337542632599334737631609941264115586694111196759873099060972024755971819308243348219870667317545022216346615225386739446789688590309022082714211489745235774715545290523493190282178868219240761759499761131246659708022371836204354321557914964127786630978800803837138894209130719168444394252939207115285358054305076081924445257769893815477337186533691891140055950526461164127523568320326028238299213832903275787807811154210826344336342941254695488831436994261830531497741160168081944212222015699619208342286471177300468644051402717552724640446568267671729349422325290693444737258830373554456546957629606758397595409824786761994480933417057844124912064220893830747408885990667421330435168078099640027714908899192683002790565219265311083116106695163712013628794650320151480277968507337353162737468774169343008438910652109949081900554669544000199098918955667979760290404469716686812566929203148000329732865798653588976243396052719517567861982302843444815115085977981001428138242229832962255206952448941751814472024665147061801970516553173443124564324206999865464291823590140804636949067663452689945320618663487557511517014970976564571283736813195299622506181990259498776315013794184612401351330093362387053965653535479893198123321411982161549791261969187883391566951064638150365647937915888638264648502310118446073879199642971683002324635700562235499030151784748570824578233432149993333578173522088753855765388806034944646022413198353420272425810978037270601693126644612228382980158542316860383409414721191944066400620261529963698102373569865421979819453962713429151668366631478176916440979157736189936732084127701424844518721288226802065071786137297767049917704161670334228925768536130099874493513675949011369756162992944305780746531739679021919603472620193690851460733289950446797755916772545224683309418971583790681803972695974872104844155971359024602179515083934062401359457672560917471712010467739530075913659973536994141061917213126947773809109216880328882701049374868530280210363563159197990461385540422162753248452397878644057807116294496712708691054505914068932329854691691290471796011687543635825721147970056428988781773400342073849531462571788788080085836323568737603972941336591357180330637540168015375439411151945039474025062365476641661657903689786479286355291796052203106065811045046992410573907893430672989738531551305400054280850683585998598680808515397270518279766043375804691638495689554212839432531338072261818584614685316615413439220358101885858332283668865954038370046067294963198085372041109694174004482059771538001434970092475005920047941764990257279605782169644690809298703768186647442914593632961425420122241558528176841790627781703375876389494452121064828851510403656618445753695388719183993600110698702738613112536834417650437417935370003917046708865000858156845394789767894525528462269887210321667943144877599678574364631999991905007904466971280532223748470195839035098822049479463819140999969432703020600958072478670619668070693104064030645176462099596943946305242073777986342437751691091401565088431980980698110700851320455086246395957581740102095241884495797736997032158719436844272051127903981551433370973822918960710094493529209826188419750225818256889164409216185927077578397093704713636746065233409007740397034740698910081519755465832654916619541885676749504303887503132725640168187272198880128463845835282224992783784683653494254789010724707319297710453922235071915141924121130716868836434188577717889216143425502386624889856943094494232355267644517133158340993249379030859777726044372464096509180804172067951608181178885043731365712809986349194047277284822054200817211038393377273444625325418180780732625006908787657389874281666909415291329162325219353681589675446283717695080756852172903630146572635391854989917040946958091096525285271303514467277171062438212145321661690773660281055756602436061565209253171682471353684078120004340875642005916183222474434704825900895013252946068470593899392774378731913219704493064999365759787248112573940185833765328329336869869465460707820949036934842104661019852508435301256691975650847957040527541829421337437460657759563023862964984864061537038334354873277221205290601932187825936392179582557332671340825858009317701096504492396840529204230276654886186977950732622895522686559513751296467836456268163919690871748525058156475707832371814862741167378399975649094277827797725661883051620270686153151392692503823083561542222028961713790920620869245537890752788071699779617578037373226514514148386362413356977276015369288753705718223999756436465467838127514772668381655971661888008046876549117520064839117226208562722157581781384906628093517358218584097498803200479063958513269144187898895775429780226839673974782220150071793447510455198229757570639287176031428527746066876919759147497890436986357572924726203422512356685042712317811765866004017829986736365652448932293221489324560827412323686884532981649822601018984115535207782088141849003914532683018786919475850477818466259852238219443187160232185968022896375637728786584403972428978433864414464738758473465425833325831923504952543822911540647047515244365643882104218794268222660452928792728047549789482823000174761944457535051150800705957135970535123304405733709577642458818077679174692382058930824815641534928873144557550970755121978150175832649590237344092847872373652700064850704015969115731046394470104057822799031679838276533440777606765349506626939526630743111721791799309957184593793304528989679436012767541843570592613179896374433065500669820214155480508203934392226093596079565717745976166622466824201521168660398697914784891632193306919898685760777301876184891696509383662229661771768832462063906452888506165989375554517906162045705940354231462082872716823474162961885609422893764832967920351419460777728275686696890166161552198675650164809301350509768799567849120584286934104268146266118169196312192260773695533455735656557662685018600784322333752629259095712716213408793808571472874157647214392656366580077222496070781560667780207352717045016279775271206310258602126773159018728581448207617090730772315983272364698411364925329048588241787922365109878104218686212449633860836584188014185114588648402763330011586915227636661487900053435927708039262321544499292687753145412195749162785234578137987284767858479429735287117292468763647401492302087373045324850906622816706109087950300101727998084786147968741221686183674823363250273284275717884488522542316644818713318019790758979167570412586263988325077227430246950865413295592893380033862162488691416451157370884821832246426144844581143464740017060078983900992206426869991660893737055334766898788727930333114690475998571572953357646603540201559660686866961427060772670189470946912387133421166405866129345109397267472193914365865099243892140541305484670475839283914341638005939753099627833333836713518827409186051143375029081515267530653717184904062206377660339971453317343175744075793222287930233658583596388198251944327957124933734275285333563511696418197538273358721278998447590791139692965922516412945444920335087669192617793934709464579231569363142171478374305697707204662943194622050193137448308467113270666772921174603516320631906475190653497256714174357346023937938447983998915092402803048663812005298340991184904192230628254206902866414036770450322377131890375411752523539994246625563318656324843212023978407362647132422481438485654919106636040278397671136534397767327465993022433651856186364922133214259621123917768061412617543336223657525038240248790001170522298791079198403064287800994939994455294184751587312419070525806007063669394988606628272410138615534525861211600049697448251612995631068697764668492275140836134162973695387932044617636583073096796666606964117497695239771648695835449124116435295054730515377777115106457138908751053628780515067054030910931434748983314004631423994849764221389801457991095399470339468653282367951147012087259207105232093056609069596433321256111080982238419634174939043974027376789048147886509549026748342562707643102692794116681660467902717486163835392703699516947106745446544623211294570472881157715453721838617323675231473945100468202060801459272225584948795651466667633153997279944158624558456310634023834325999831023178268011840099564133220666377797906553796960488110691971887613794154382431521380589931300510216407225370358824723748792099648959705582242626444117612510549148219684869324749621292136358699159105676898806487204287544415049758459884214454736725156862910812869712723439973260272868183623458363129283903744815355973640681255815034364659834802769347103175671475988076683349678976222541258770138737144400422518409600699741585504983699213959432926613343799976759243868935836026374721155789769933007548047711869275420627592195301590709275903981638679448476493852272976018742577512513871889059481032099882135820816750401096609670903398212090804989646481643264930345144220100171089551812647257644334814451922937132030786520941883492609252027962657365702379971271658498395386284890982014651634039851475488513817382111389591247455265470576965786483374231769282232214215797988359857779783156701429212992283073506656062161265342427416596771378277747631499009849255409904492072472722970448938160125726434444976372173393323704617252659454345417082381782182896745522732049224481287316390393203682826168797936193990551963834547860197722252057057694203107494418561877563194278658881993843706755630919008511267200008962423522057482701152939845732039149088495457230208941621473578743651738728622601455837224102863802832374567614222451647089221624237660953225833709587834917497248869467311401231441853753268504982032461218380928675266286983542976594189989787303823900225363868259298632998828599251424820432263843778151861153229403374717064627923355283767600299973897971034579324486291767623812530960122224662468179833878622311303026811895269360316385427801142153588374677160279727785347895605944364287234334639695537367504570693088028993732538583841043816963388573081370521647539331420243884369471642043512842808411417933452057877908382719443606288049383176061329488405557985263626341299664982243528326045280518784357435305920661233361024958330561897693184255581465469049315301881763016432290541436786179288759817112318007431793897366190098281387986373913357573159283022479030577713986420891294838498442234528067347013652613288604128518860636888402072158805189811298988172130696556773535337869549493436482037561326555156009168006278381710683746868130654981148380126205637127592091721790823010465197362985514337773652433794840714095210046546746819908732448254133045369773560003549772198395677419520526215544930055931666645670059679375591318461409879044997262434396560548289620240292253557743681224836673125931932362757785519062829209187532527365677029792871452000296751965787979234241126185981056307889692145533712817831744438482938308872735983651679360727956791959871192455806017356875989712335502079588981431855113678418189515346304374084160197870535568424968657971113562682271307504446983504737448695295323369357237208058928078700239850822569457536683644002331179791847934923634920163643445551778011213945768541310763082571876023954955989252438894812708255368651332894203934267133121703227954958393841045794637854843170397025037233979777067599972812388647944617971470703148263075342019020083400692204557057967314516252343665399876647254460842892664226018551786150099018932473405504710635668457118579611199403260201885840876046262154779745465664569858225017624832708675211254128350702479517121000793395438800188758143572656684499958346940532114881283762316979276825438488581349337751356200695531070260426632313002938500155864172249719925639998573799493937498968811753353657889085913807068515075519810397674693434326864328859768130756175340966325553276726887111712532493202428123975748854095596250720507346595876517620575951464902183107333628321243400439903824530732065696524660090293962236811136599717552051456317698448408693659956732630336866236616613397232176656783712498567968698267821249667847745375060635657039033621289106330486526421206603919618961142038221972944372626618334945229522757679061714747032712903856906532551447488348146461076515968643109828903344372479712693725568813584041597085245387748299540700501649427928366069004431024436544407854548314368979082464065339328031537234757219213649494330128912631314700594948789614664893647198615050083740958181883426788002161033447116057525590572262286737216239445020487636980417780416347933767955082875655071681838131148015146978475205769894233644091196029173738978846784263708481642421932883504963299974417503760576043826893821068907278766738151204535810300383380530178592159621194721727436379000326289232289694737659457741079263444834265696709833686253393927917746815461934782216883558105101822598433059309370808080159250595808915728534365981980295885339640128273778964333186291398369200395989469992012912402384615376357276421161103889001708477269694585426373479413835099806709698720617120984844801295541349522810771222886472736864512858542196415443969269484866065116274088872728730931979126735085099812806700308648945100550602678985578244902104621057826184995279660435186030319598462508074622984781667417542119642994688983291072623747679411159366816736288432029462487961283349052866981356295248861155351909838673562181745936295322120872378206125042856183473214315410002994613900282193854940005767542202875030822132934854149476976650786047450004223170224741941219267483533238672288724740982931147696391227782288671572911947994235995199298833361933464902471124014668054181468727050365840808586413358866592685710480863100894295759044995728232920005530952080546352969594240858994789323811512171334252261118875921047013754081787926726274192928790974770284786993316327987609728570169479250892306074898016317807250836797938391537727942351454295608841057131697598158149777910189524731404827332545354517162780204238104235431228600118446139946980656755511604466958865716277111481939440230611290700997677563424596014544226208594974572937909444310019785938111360362575267143782153912246888624716728784619741325322973754295262780038830929240200573953917340977418587971789021334593819280093318515575972126525523686571661910931835791209948094257836523562116442469649064567619565850058761818485218348989373070525457709038878335836979496453435071016342250058237282318515516068809521451163728844345582194591380985339450220902211741201005175695110745171076910113608777935733128835523705759761744142075409315594799906633634896922659243539123114373290877581168261537621217089086789384027768584981043764636915274476679119586186728031444517610702615154002970448177190450261499520472235183873777685689033038969803349582149759065659588036245337496645675873245990200157923923760087553428901845745681339691239527713053010083274063307446070742224685930661761229947104162206239258439882148108195895849159067122131994077968464911477675015558529902305831414657541809637138328646448978049343987456828181194848842232906209745250490054898580627412060076974126504194412945205245851930051883955441860398702655158251737205452513693157134207615270642573282564981554241006017920578959952881347135991584345879730116099507607074496768735820717881434914528406321400684399407145349049926352572351363400079978643874009751045233222746294206610031373035614072215741300719808133839133902707656434365416747267256131564337329684199569180939735108473008783284038293001699781892687778114642923913093850880879205275851001984863410022651857416516145328372928467864338126081845447690245791453859437358504737882785329741785142051219080017495055596709184193924106576337226230328142830478659199083675341740842357045133302909890805801440678984409461220771611879132857823223445965173626414724977519276617041315447300118073854619801542201046877949235174664724894240491492293995514276002668443025491914970377506057565863117629221715652657381210615827369744019617747949818111317420098934972582823478910698252640446718620583370522900118466559965010126687481607246624483290221393775423512461216298812525431031696556012951495964396678939767791231900316180328724466132091093092820531971247470103026779102437194816887548430100334327392686693719402155497830228375413712688114123086097041106915904408206743652743193141879617836074047192782744479774981681339352782881648668548961180017720604014051485926600892453891203563580838222662654126769564918686960996767623418856458245042225584301668839846448756252569528339404373154296623073976349616798741675124148069883819322631039790184108859561612013407291658212367390137376369408354819335911427575625656130706256635577473792043674677232098431995593996469333954455925349468050425587331508321137934885471900150069508117850486772872937746927547845298969762155262744325933574137910900173377515149487145509448149618156357466408614582214002917714481336552338226597470500672382802199745214360666317046301674393048577392016223725147497304850761944058231375931877793339846416042504016257726661152998152215900085296248573793933458792919022916842323713469251102370935595402517424997033606891155045177202512023928482016912487694342561869369281908273455349229722334258687322852775774525195165465237355351434958881372691484239811412188164603192824295361254054397375180993200851046451515946342267018988806404827019276757781234599180965939052284046536756823149085679398622537081405351511570488090754834732613216699321367410369834272517748361423899042239929785235620398098899360413696242548928042103480814800411716967412313724288085755709160928926003064527907307989403877032180200147539187900862402549623194828865923280390791315379261302720575499615150234740753602471466085321468757991324383485732027795730831011831266075447195774979838460312388899796069784623039139802618480579920197313639207245947808093448656764259486546322730780785920620304478081540212943506618341672381646501539015395641930880994478097749439974365787567157765918599060458426826866856435818621007818318594223586984189296711074365660926136526914586981261588831348909435032428417528618127060065014243420047352991338219437740670726391771057158482883334796396052874130049098728544065047345110772820113424711385843493874278109771809152090284204395157703112835554993555486261258762373841251644121269849557132043871040370587754890308992835591120633069360365022032195783243574262710105816188997431117922529660806683293749780721923113745661648339242760496611381290434066257068298720562180810295859833902010400924351622346762576541520266189134776680050533740232665204803104185685685378247794722888320291363778990295576192209371767917639438522160940136981231966145570508807955047014015903770556677356800652026238485598637675937597188832904783479676989977268246478945717982494983396669074365275954185908525069521933811226091175555255522387617067412526978288368887754774807586593770625373113031203283002133636164030162976118153063015153177666045655903689869210583409195285523286133413532888223717466371883632296230981964361661707496788666208431257368173127328801646730976372123724356552978536219368311496742530530734680817620249424171551299285581955414820627494228565207601119015577872907311074929758983710617067070473893610704774183715627452057536217394153087738159446436976707369411434718837938709959701672890639076162714354069635515656908176054089913934154727490575059255684683459003667734036486116297300061109377762490610649801171254138049573491550464808411456248822581137908861303711551126544698104587986799019717403343176500797093834400984963904931154294795425305533503446426218036632885002250513416689509991277612453780822362828932273475408599036880048383611587284561336661615825371246814543387858723047390157907514963164098204859655911728526719707626246213764464332404728838855753452634565449797011825727359202844975293563251208510126061700444012020215385053850584516562890494772220182417069122413080851429147987928248480927812595732692807878179183997436299946140486731605488466790068865330146567998661708220056800010544921103890377831253674663164612924619173510967493158742807049606015200447119372359068261115043387564259030177467913920997464922973321408271030068758715919168374692922961675617399879936483511221166309310006731609422989089484949081811907939367907613334931787627877125124997313762457588568634937095603126830333767885267014148444525662539976069941904378641572978275271875041331436555997608337482045642199423046997630234779601577101998747369482671686111232707205272055880526295876149629086939255629267415046973221504488624436000271640267553623452614829411728682320101752361772469091155170325040190888226760984837279876080307102683447679799512845295897694290944130778187649647159415644763771529512665905295245386917677045553716122689703529007260280535346512362936337733834858680578127099883807825752128196009294267381324799738560175665834814540448639224578250000300838183500602929502949057904038087271070317061683495969852132590990867424038017131693562481251013175479236963471895741990125065383842151629777300300044776109535988508722977268409326212475244093801323774818757995515122255219049149375411810954325930411075546047774708196110365680878966695174787110138403672219938908626123306519255078024962725120424862367086335577968713393906212649863307349666650541662218553151352451533730761780916053915188048628421544993197804278452160336012076779670571519979345069461164538978596122134763535117416081505717970610464026406795512793439559195969205878566187404508477997109779881700518712224401856899170118992157746986316872709344905186832264140145933409574561145280674398776019687405271306090685859906298779818221800781448224056322463782462456355658852132274772568310714623728852201302127097069491956769787285403739172053263023608007318179372835724406630199803098753229857770090342711930487308562643693091724750110030884101909932018516238142756840959695529562603926010781188530199070254920799925574350605499319346394775588986743810314610342145758767905920325427320513323762096547975452949940666432277430875039725979100930909125406153845396548154180727559040728947060567322221359528995348916225213479600300345341191409446799712335027828430810684059269027673576449185401569811480356621006696775062107321557314848844944172521122797076970310539511483611671064489751305094618259845719164525531662609381590438362515602998770375181898980978631641373676625427507433454648688588714993351072311896487510963094890195619271883367231558327823936650581801088442396032965267674918384087500762026459655866726275770965220690470045225480594228206841651711214797544752211258119930200367767982135842826676785449979332118832261714287867656127667266884209088474363260627594762359528239391093634592855902550606082499931128499555557970868619470915492071937804414874699811820862229210588658192837564751363450500967108302776519081965107522992651085894558343145676920118255624951668233142184625078815531763135921760161744184331582920718062065909528698210692646891917069067700637888525504304846914387513999035659090292201182226852785891671842742185203963941924919871354701332561317931778346577906545181755006745681339064182694462294403153502662074652047177271235461185231094096854427238341610903247486918882068369438904918616851806323473687768766702625413229285577016987985847665513220136436103449985282913914068753067964838336956493239906370624424199273256629293457796930776042528662287454933624218795615859941117825310978502776537343978781793825409180820372453356522051584482477138797436812782548698286356817725987070942010352826301815315403687328042532951240932744537654156198382106971170849207925971209063701767084068143961659786177389010474832488164831304862112527325046778583501517393194722001999693127101864156095058795975437844794458096292070981858405755607785043400930889540261933855435630639436727527666702930379900508627094644116680940278600609394396058143043487479290258363080949972832191261341475268747427217219010477993518905388086381809506951421004613706674799919213942241349173773417856315042825830396395148652943430047962898841585842887196977035235945105835063761151418901239589776941555720206834902881326302422549833914316415645751747509245513636428454265278441313104552960256249851954604527031351451353972542148171314790899295237417091651628863243017198900373680267707980494451875555548748312979514915202362107830343216509140732551915507456372014954587143074400116360841149663906234580038885520891208767506517405773311913372117070225456388831173909653395767685950753489659557235940492520504105757074662656892592512400926256174959899745515148625249947541378170518160474697965334139129417122856024784686769394902161425683121250982541046819606418792621938034243129985534976927139416821021963857567947136122949869347113633420010459306984268814809227248912872386169761736297477419813586778052518018628098205747388657458451175595087705197526548596250803270125865478928725555655446692959614274177617017619740296453928508496038126661812505779843066329906604346048758285282164051694679155898481928493306303487856886440025448466422217251499218260351727180097048051239352372135693012599273861963394376957595850269057282975883929482099026207867547312302362743542594106921938856264822437875827019532211602437993665894346774746026442885547464770815554853106702455628198215048428953349307529913617250295542871647714185741141751347731533398128387556812799386780596502037163120782201608027721266190978683826330132137721476632928435912028020394590843572067459139344682480995499474299180695303656894728401419261618228328657716074537527413433008051795658119769613479079637419120050649606696462557905868405800012732043517865286253981494901033115124328318661799156898804760850919479155409084335619585333176392548561450955797715236698545493460286376119254389480109795410818964807550513250401345885433770071590151749415932495304558904244672628745004055325742710029463234336378435965384673088834319825365080315213368368782897977755682656476885502586410302168387558835733148789492392545233927782833070177981389615196302531086160276812079093943074039991544616109692549511136063285761108895940200992586769051262016001392186086519663071505852979663077794421599380819462119847909959301185167774901946436787749892019656235956721284698667584615592412314969975655745285206374429753700033134867525106172809635044661233917421689460790862035791767665431484463586182367447851803685693021201109693898452594558332461326639044216477454399872990537332439828870431988597911967349148559773977490511921696688536539572406399560657170539305293156744164078106179189000926613314085891084206605523242584322751723625299232220412767884434272668290763959982948886999402214490072426500919113267876868941086237736179726612655321107119223534686870222314886743719705567909895793330649727054861789444019072947434983344895581690728397073947893086527151109067978216142874581241826285896383992512805437054182553704776655991536708537995355010910737402719150704798086303723577839759475955055407528641314642819284902671760342727181552815846188815806265693697294791818761506940260292918542005844340416104898248993676978357564432316754823339687142741601379182234530126730596080643562458014525034279518081949622264616630024851771380743617141445055899904229034274344606886031686747182958999005116617103996718680915622355361144391773939186906950255231304390724359851762567636432215412885185589490983210588934995137010562767500384766852473503203351672316438309610953701566752815577389249277992012681740775379008716225790774821019051126267126767881233486684293608882558282736161613033894574962936454591330502271903174055156359406794094633333386260721006684146971348257978520434157777859406881567445707018053119118473608097381557755775001569568523183939423447586430283117293467132091761673757514655474753197085894493826778830808070073881754117820084608326590991949325188495413389818361032713500332681873104638640933892293376138055364610649589779979943893009574307223611004413588731498659972707865897075742529479141827511859562834519333127843799709606067026048977881066076951974091386028860077988995846923062298959231218558040737052538173148554655654020096572523593162637058144612741522433140249787736425565052311711573477622564504053830683813117067818449360967641972075915168585809601803200123798860395784159316561818282836292722987252927839284293001120168467427302824116466869361052044639882320760408507796310117641598953599551481605288675479506968279917234448221915360211464856923814874753555882189646017719217943759571229723641536950928136394747497031421872783749454095315851896510808361774845335167725557623274729065848207881571667300981525195801703597033940051089592024944649179974038964726752892940931087156771497782656385580232962522431318292134064984266472295796421596622908272000444371606753134461715287652396265353457938029773373563250757720189889718633419961430796432663125660266890734428821800286073725897755096472690905378127507765048140473129006137599959267316263293355621203849981416438322122193118474693654324269408476013463649534072334080110365183182428908815711478389816805488417751499334044572496961003289604734182132815841652775972045183981914602239864505356709356613465129491545823319756179475862639824755598467290292071883909523593133527913462735879157133003327019793024894505670911965470286547700487227406886970096378842690695725709404634427273165391020537778702065465434425211161693985932078997912480102356799209531931196027425759331158295524372651725230777828707952304851198006529345313339630995580311237670129394306938085198957931181373791603725915607015187660188421459845439869088443169611311940111635310854018325704903547168016756854382914935332342508967022085383042189349547089808944824564965225673030383063525716589320780435767072165125563208518294112276602609171693880706756255600844134581073139531690185109110374495795259807390956192591993685141558730445876918208436636368281770588257191740979695822606022391801425238183995874348622311665769987549490828130266911270068501427907662527547723761040686725997363906224273587647247785398458846694975735287639633815194704113817045604450817563727069717123161676245512618501940097133057140212886685408365730536113794139753853974116640261636270830388595306931250047984884257911828193768631488648466683481249630030865384136308545606332831232049910048355930174284206951516034734239278590103452498223334582741942228263730133802885034411222042305932785631479402899356755661411848027599503754159927647824244166216034799692971667750848783749658110284142314466497195312332028411175208018321246037984713346810914700281627355957201926271110318405647415152012607788065828807364833700173930874767677705127386842871566397326837663846274140294201221379796393672192134997069858793188200831176082620818556104350233484416789137238260700531086361843549173190164236010687792782320084297855615614419962845925343604806635838245370590769256880020115801685466802991960915951443193919524138262855533621674333259322770432312012386186849395294140424727608976556337862681005260896353982936212658220369250668415427522308648509294399281819318480320633104533113985609207697511706167825493617577002592545343932136665142574129014918175262603796667501495426595437425497900048387795582840766505835534207689006360236055234854579435421610650470608429433001076307674010542035286733307925839138958024802412777710424151094465573989442704194993864885852139414430587001939258141198945992211445971714826362891815470500901525858057086765552274588272380578467572762429550540037361881551826030365268138424350721533474606611856427259699879701819551029393851130754619408954987736835566347047172314797934113119446724140559198745962092813180454424090890637195079261324229021163069090882596017289827583424817476279448352544469289720791180807595293810921275022430159359147753268687437921505866551532647113730594258480203976322994350937469450590346724994366877168150523649019070662033538693718407287975600603939001970899695400390159199487233318179060086553483772260125868526718945247186354272017648464056303913392875733329887378100761080790764299591671514908073136747987370196087379514138682745129354167570128872183095135840057252251412949279554729227540788994411536810179364501775815394730933046303807294688704428368311871924168920018833467530213694422030584216911870075820774087111885749461581299403673955301897758801825927272291718788769954908855742551097723145521760146517054269555831146358256814262863951488130074792069822268092269691089469701865684490277048312993918954564987819444928533764466049909884480772319842772794084097493048073657757883435652983675712844768744354409400642785267356111054980473601816271319929822508142785704234579807756914765012844632023955300988294699463054881292057791939922088724826598914102904562402456911251248137484178566555204328005073695621031892012739415706782329198437736474606802980749150750226938532442291933896864310146644303758985478213636144284846886692213752356690855092520049860919999669625192055357456114255592650628254964996403158023067895254539157471824493964460256279429406388802386986293531926861753077880058292709045096717562410120063261918322176918512510615424238683844712541667956637417437355923142162538725376248635842521976504289309938191312458364849600880777733144859391314699288099502597887837660226106237120651109436758445761972880376479100104447673261015740617128547624825396095087796201265680395660108687830516790508695899592578569814036998878651306866685594971190993299775193264261379992487086442584415568065666122863769258378714304846349504179527995128491771923861807028047450525955842120451376843584385926461005889172409780114054978843142865569175289319844710762301342299695112060106076769917506216106240400178671700009507478727448659605557945584619545175811499130650488461106755521206987897137860139053873879137657848154552436773263776395009079610197149561555143800736563527576783285549268154304229849516385502001789484592278412061354586630790723104129729522457082177199639970924726896334133344630539724509247869781670854138268345919934395639131776393985750004131568157233569464254560041461724540165129823174269292769564245680396859032841190516658307268492295673572348025202619471154511308807506215915992233874864740346014031685402936639156007748671845394392991486782124859183177919745149419761921062291995786609990816078062360887989123249255434685851888267729546459248861649562804461899922203392833333182475951061723568870831817952315483535677717801435006310852407716821783609751944870620901032213977603207632071730401069473019318746771120486872165636631603812847284227897676633667332617517662007331472777806150896827098435352283123932749740169167905799018239444414308238304725097164318575308424550354827278558111634249228714335105193181541130015463900371730034874428849432704390358585271371624440744027977856947416236616395816146542644745210617356141885070188083963599116906588032666469748706961625879083165739355452537405265411924997654796982770257783420890711317175762054160081036837209396353662382856117576657532701966244427354981833975178743729071686868174725937737092154530369971501271618804303525564919334504387665184692040713326690800725039646339937959661320336822380379379482457257356491607985354796832876789135611271422107189268570045358107625205467959691068565288327163411729159139657389839123734278826449239634473308602800898394709658859865262353571326806566541058726638391429982485564272705787896935213230993809528875709860599889011666809477959409588687052645462107879758391482081568050191763637449261869331652599754673004695930453624269408402150539467714838640220148864666944988988809800546382831196342391575988941145134228518958929640282276795903137692732430293535673256429355519548824436663971637768018301089936214795678881701769838324316661433906634050363297893792487612664973365650926680631304069410839036913591252935730957697054710791682439541088732402843451622127284594376490606848538874789926650105674892215520530151674173175504492040693413741840279064574456089806577266074273790200740912567504108737444718802693449632518602215254257312040266582524190988898258477272152403341186468089012149936708843495508104386929110444589631121121423368622269270663904658741912492158473550046950968755248301480047601110416314269008386586230781033960924067980860464234674577602011678777848822934742927526989972032204740618276136823572828431960345808265277963110975840055860434820921587650726722816525594110407793627098482724102066531299798859492012217893594631394865242802675360711649091451217285937247761114187595742012806116203846143348020448325672417034341797026582801594779182720556799838334497670513839776059612093709003432201278059587131194058033456896420278738869873150553794514459426184962873741860046641099227906293258157867071533508591753001953398711153265800429363511433730018576814971738652959734418099524203940456606419657613371384255511496398353998148677657700824373986319832877914063809335023097943915161146030130118955858971794606281753520352748393448303931182585381999680030587339281095738620888772023178435347463616852596303064884320251922143587289524254580096819384243338724518025193452535488772803005997046212419619618470096175770454392620334735890006997337648533848362902251926119959411654700818304633126584968087049051180404168717202731733200267131401459839586682023008031030664397401623118193843035317398326063185036244876937866933010904319469887583901209803153952344415405104493307994082308480361127028034033012381376233348051423043376976088039494506465531724115277831046260697666868000441345089581340444030105830498814169143931549820246384864259541250697853874227503193068002381007047216787601666416175167614304377196881898326182399888628961037288260247593452266860720154095929598105777829143145458973944675507148277395288837739052675872927206854838676731077380837974043452321270633557801093265237759983743920817789474094508634587377907762690621253033018471659943671397109753634193560839316955831885241641530605664298971720432485909296891168512647523547451236503602196115343079756035144780424289045276310064825051136075161157632217655947015313077312663097352643396799044907060866686939546743018105433523529718905529331084611934690542045288993327873942758030131139599481853994150150773346544318204883625098145197609443432669016883136555112478585293153007123931670939890117869001584738587367381700930709003262083702613153527349743277353426001788956527897126831249855141213885250692694331181773632874171816851768598741140939526771237852596994680029344302644382960545599985315950032612203077421077492802422308323313336891787642011181198129749298856029233009679882137319159007159710642163476480783494106907508818629578465390714862236506849034511482382236217897640643126920600866514110928290677952130080586392880854339856994422989721298373703372664044098759187298470029488498038468350292838500323293605304599877488193371687813474892900087399839707662356652596456239263173858761046505827550280682785044914410868346037356888055502193330879293458150935598987408982162204300967724505319329456203917408601276495076452116545057317176619459050941680224544719673922659429517810243184528203169499820648309394672403513801630708799554180772129171551756952409719197068866046201236591088245299265320315104922449497459492042081604903182645908081477268305570265310954583147443951258580855214903895379463647026686074086055288664181427681974135788206887932437303884651834547566564803527538729838811414483084748403077792660320027802883964568990801406255839258963562267340738625981089880778642793927635260239321600268397585443329625129255586296608526858341367202564944528122892110679232029874590318092523312097192397463223122980926456553827466881462403889415471397944477286416279747492219806384872509817339275312305630057322078185090875724557590061076161901562185638824633602279325784168451086359777253212226868593555951089943375986626240071490966972519360294371013999249522919188689134011339848619592983162291736960611697848752615483783936829712645405746060948822948194910309088259839699221643722894174374873806607355871696820724997624039632939479060514786917117654518503106457479026611882906793919558274058746292220749519754037558343727509839431581177527746305912946512776754249896817710555475914133963059903868042154494581015995987833478179234256695623608448350834175397718892825002531673434776779112474734608890651347964803867290391185060466723732756889368580005251222039644104611727674424616205683045687518730166724888454708628038437656757791756290655190850194742439034604855554232135082489844873629181038108251738526624868099171603554480339333051846137371672735620869865316250612425415393158975345848334143190447101559556215069889741650837331745082768873428398424283894544982067578463986150298479902465228329302277259650211222505060539936499973564107101243525624631304811837958737397157241135447963530112357484188198466226739825801010730215469703656343413743043852056314654659345878340981488244262607251037527348072359317130300418526482429062699509277243285455533263942425983636016440722685853031011244122078326042905530762318431810393617705567827238094898215438615078679113006318889835470461051995356648972271103988721071793319150262032046427589810248006548234773559719420802263645809727793391195688305398110189906361127715266804646058668632094433770453378787813124615866267421966688119091592384999088022308119698858127794343308655198628735264506727176769148440564169526593984122277834360798982748861452849724200437192225727082468640254081951316560385060298927431906757506626785541140937891760038452716707257244337111219568421395159242932076536252408460825763054467950874703606424415828658911613346456737296237933216777183593639828223738443985021414122918183545700717439139730863657563772194872471314618617366524357944806340021790349509267574468223964871864629560768266039043762284982153955034499999280394785380727555372424914389553929625521023773861855751652030596027122081231423982896636076808907894496723182665138036555839799553402264630688410709224938780964001699325701901250413535814769667522620865151948741182336268442767904260768206132843346753042138354098440213259173966137810356405536604168157616908891286126868852302314496002932287385088771151527579197618428667578793676579186876287924157509352702098049354611160560986748477120638582192504689235430611420082981908439945906168958926750179019899868204027274458154233272190507822397659252472818407746368600534739322926746509632306465972384760020189948062814492077777679664166963527921273377913642312589914141508492561040597192860584176768650306738085486758882222515763539943691184100716542489209287677712393310928858880828385622199509613320749940802378041252251231408793285814804799769744478850275460418634897920412249090160089674002478902924704896726101063709135284966476050941613225121659329233555265186604070297938032176250075632083815476841324227138749982775031861791816799242528698336732570459573348242808848795093670967389039046011708506813918769216198053987909155060345407305679968972260170688327657921701172831108436157253268610588550035141677339373058315807481400914125225792991072304464992569177498866422322528975603724873070871510469102004438736801742924932532686234259369714867531290974333117592947436977709975777059768883308291104977204267674847039413257763620670795237007321439507021847587842009696161889983829693891494442615519089287654108986866411674498670194704908545460661942101313438780131381449582701117899813220506859166971743501751707567524568774823374689468209756652075960166510081603570638323684062995974474481788960328193599648635185575833214818834427914080993901086354098925266283057525847640140653274526526645694519799847480874838350388499654958903732373053057422607243576367115566674706195092579361089369773589691941765546168061502695575929807030343287717408390037546381135762719167347648335411447300439031309665042601894734220351875445977517231923032109294752969520532972591727524114752628751809793470065556246665738486003093449814130398278909304041214188703844801328885015679955053409653161379626157009241265651276705858681702781171238882485532476197606629430809155873619487804263775254167779215956782858153807706839695308438795565516019941202376615653179274517720585639310360406170029950780649844819291343129616484356272817432090850906819939248142739532589895939167640613202969852061308696052949254644744309811089491163105341939410401339303395972600927804794783578801586109126821488146927325200625005102405930949463354051079353830051194116474249747229702374577803149984372093088272259943080975588101888121249030229569214319823524700407861956181090799480630446880466430507851519577181146931780673168578259090039883934393155706373229612059635770253044490531043902853314635742440336984327158906460878404638696083141422753990754749296462145975319845068416213983725227016598300130685163398798885018105329120523524639924750194330354671402045251510265569514597024369087789914974154691865749181557421157475563325073677630838013746417635998012004983915053677724905421730122939059478918878311294639523357174421212081455960320058527531646155895969966686772794556073356422744281829303441441405750514191659791544522323569033533633811754398934152344503953175775833825221876999691396261970610350660572982958447632250622319165371933809037226279961001840318658495972979317875962142003970307689850279930425951986408380226278577309308208673729945078929710403831749134935708733890339926699524323103626213033478853372540635730049441548908615485595065348163044455409206998294276989006064262475122191010571350877527485952620091300014945519181699260842523942575625740291427781566065967276618812280183207131646156660591008059711317836247652215697596884116229484685007040863990216249089211142357975449368064682411887250556303888211065457264777980414995982234038288243421506889335739742662443041532689147232035421857226914897690678852331940356727933243750159304090345716793631341944886155304164483512683341475948385438354396094014511344122714131648499932919999134457412755351700525217216042917496287843501560110696470186944818521117926959888905159733870393225153126323022522546319269723122343559341686950055977415042952633957658542861501233433029854137546942393058120138385956824888237538447761998394490010846527954564760773948405470656199191527050304012300138718585305597316326036998038479635160033838241229638832617566988182569202240124346114122752387523500526166929771166720733755837038824715981796369347575617165671270751354179314344696751248667769992123884997100617521798485216539922746213731730590515458348926805851034453647888652420971606668908893608204359351266284931548191442429098543758159747469922019943557722226468531412260436121498517097987140504134209445223659869466566971066141689850410527974306495737992259228383137989681760782709591402881269879380730487180918022628895412341763765703050140678157609781116680445730767137300722998878782838144091998942864309121562672117158750942958031239010961347874417905664637532648167693134197302639382363040199329600994104275312096052421024291456542604783224271681110209454167714706432864812480059582491693219217537861599331867302091212206399617812504776055749060530784116884629728319222866220469737615723762717167922983603802926953625142426545557144759899666544220527915429378185324547866916316169912362706726494512167531068830131304251232145912540943984157955119117398617937630231214382709245340442817321697109521393274050445970736284420810585978591077117528266049205190177257471746159288929240707301065912909674828927078787276876293475593657883734064725680740719960532393540749736742425971657746694111988752912070418856279250494915212715711868845144733113602876996192246718763491271750210824606887654972706544123009627512581313871470461121794493808919555132248020032915299161390040256516278445986803232170196332082816751484244179225812353732670611855594293533692353612262470380444985273792546414611333659665961825908213530616654746104531095781626324491189484052027646258745133348356776557707285451575882273790912270447300335470090059744271958784654448928585291711898800251571032228072299565450345630382376388366062659938594990202352265643954503439676024265114050871870743691502123950672832414335643262855446148317364133208508038400469468676190195137852554420637720268272827545874963777832052937939171336885960724115192690096385331512298722441275916081415575409261057110808485148428294591554087782017151541587329421027792281584847276211281700721519688963678721928298391393799970678786728522126965700463755578820211544403176122658626773424354088386879732037865776531494229446991985036602468904554427371843249638582774712612609688082098796221387231596135417986878376826034699826957895693418364711695051837764245076272376598189060592277500165294095582129278402249791191000267594378078807999147255552010593187991423203018343968542247214862490604132971982263600477783857589042756799436814436804895612141828718694917603674795822012614665682282187222445815146197977333347701234632325885305139318857688542620529028095198118377467920447082048936247460039159829855523588875565366638200597139580534849112254508674801026640230100781828919080737314346650096723324928484015210998863190607640659770390092331119861307737815931306618686076534506835017181128392216662653641925760974205149442342804634933785190690094483256662295745517213838042570308340923493994274376401929604889910980520402443328730947449786434034989767689518365061650199101339451737903065880038552343001673465156535085302715349667842254603176061864038355370391553137585514863807706891584910628293318952915015790755942576688270941277251550486236500781302739711823405293294160941814642432796191429256354433073812389126237535649358868773557473162244091438191064036410097205673533958631613263527267915222481970288151828601474807955314488606105507843254514908567829871334045176477671034888634886808426207376413027081097844540698761014282144600382984008179385602176031825997319734171441495351892681310297227746523755301388516964290682730204302611678178143887114382131044506614477067839313659983186548933967537446288004870514521471549116268006883102330573612331041991367092907982653068644649794065055802196653176971943811263038136588009563527052879015497567993323664545080391524767598345531023526059738200526782086774206894585013515900742448724890150569833804324544862058288345525196288462037686263307753316090589657710994948671540172959649603419008917253340530394453853259097354074998554063207030469796750072146749667938373660769421462586459415096274756057736737670009711769887012145178902797897957691472192575517012380996780346062607599619391712410489068620239709414360387531739799883185239835639754347539004094203409180618709690004048528124332184277077710022620196801163685925035993617713398335576695268762863886877738012669790542188764448502526083018121018257791573465553383616907085859134814753810617737901744601369367976880667826205099376258750787125410243341157896709049548503283148726551059792163497903715777325136992490013983461267177855653125770772528712089030119671227700961873741072453614395683073205840776189690457652794113313197946579259779532693669509010600301594769035116396269885338668721028316958706327584873016596465807036913729839296393910977273740192999964863472112227259963880097686747530993132628051648558579702029056778255253648262719008763183443263936396105814048748073248987080652979210778844299043317210896244710358338779515211816982432903633226653281060208785330959375494286331540031618842492764849607951607737073578787248934038854774338788988567652296271875498753605368600874546443461315264267687809831548968544915988705241148845548169889641537408620273969151335484336162930917353911076623626829091798926406661855424619966744700526171972246929972807178672185009569363502759541747219330511265643373958604765709420264469483643602311600403862033207708715552520658394853563869458666453997852379646762484866497528561840523744148199927505104568239795257761428947633152198012953807319817237695720431830651983757004701227675342054169347005515409234239116259353918003129019247070400696244767634366427797597916450217311792873902483381727677665550033018780307553994855286636947921548081263391761484558148047658946030105615216447093891834098739909838534861923892482813797911947155755577293208335455227577402156046925269938050165435244638489355574544913929682656171324529446378718863786625006109553936647731670867773128060431839290195211590038400172006436095725901073824946135324197031420860823112447152103850445990585962383992586913373745239362534355678557273453909775062580802763223732803767843760848513794393925013661638658930858261985460920670927316527089044552124488499408277197786799758218121744325559277617890055048595386054986540380192645556004865931111352186176073768408573374298952644731245194595600488134119929837065001883055442014151236905496333701761309802903944630900308126766143790722239918227817571175675529730689592526585223135997472715513991387956094764102647321183532831214570196109880110540122287539494776364859888753245054690378068840515230158401444336226657175854465907360011570093632191025887952655950978552656107863937681656585680702250977016791018026793828710867335979323089705935129421284020545948465660463478900426107042837705649157661777868688867600367501801718581381401116996579206228847234858142950296931441935107245710932081716904087431524151288779772207943969437146335100113398681279079047942318184538750060041856436311090976195278925224119249463713407801364009948811250119525459453546071966533403059279775590289772497254123645116096901085907047453924116905886146771422950233519609521243114349970965298495638285527541437437728341261026193264629860548392708270821076523666026524528412987817869011123185412186563030394147359042309082900849192198185153562860154721738926058322726660796822952927119077056302142495826137982427735157923503799075290182866718571614166476611534818047442884938520908917730510623949975011524777499541693467044974366449849759903113587425843548717000394600121442060607316712691522607881065541638388125566944233676618129932246387977835445982599340636291610827725897053503536790868543776847303406467084217796227742690568284744031452394283978616447651889991312252319111924211771997476105532402873358362831218106540339212119987047954117230156031158259392100137572272056916529440852979370522692955832280174029763687909750297928700920091416567086525777004702469113156558178700123516730181700222009578509786605509290472644786035725873804474501168601861503973253294164749926584788084177735094863574303922288003281410651547494336087942905480274056597175578679810497834976607352878123892902199114795223632215892927470589303646136173470150654573788948451458034205166163566880861163206735061431613681290223807541933487254540319404823507769268498049565723107193215721077145431441672878137672267729267132159804704749838080680627611309392809004597767972855123638946401332684964843866732336429894140058208773893805503807500776903207766157834490486032687264194557607716165612751100114224906973708373246941411116097484215850569907434206197159165447191800040559612481402906429966228492887510565179322582148739346374356561845285783215343021559425197957903512029291753391887561519864134025465604417152400288393720142573940724121038544231937675503609843995563487676912277381520450626340205680630482159902696402601303812247311147387523780779403547284775205780141185818760765669301387713120484512650475252889091856818549199281643071697194903139324735803067996781013086062523825375450733191200351725515014062272802131057907737683612755155939166209968531845410887963653583212319594302490119771417624486633737511499705097276000792512387981777304001821703276045629944010390174792679966724014069908304765349265527118215585127760727589801743301266190690182105669264670470917333452215015593603615051611500478834363526828884066443509979510802083442208602578284370817616931018481715660357868792958138607469680393398731545856959398051052801258419275668024496018406496656112635150911126908772658737593605675618689554326792880583568097170484745410849775800789092835072408625112804001243866302609294617062066963658231200919119237051223292894503473956645680669602106732589281084084547484458316993687942628530947751615114867589760386639906033398247203228114700539024257857350384023616282658513378773451242367912744622954679810474653538474501164653889686494059635099443839991209328256029256987296665448570948582904515268339375266763629121590695561672860234386509777391167153832201552178567467609724719992265876868118614593603837037948942400792753805299698147238023488167797998318549746963563432364962854550301324401043476404172676609416907376231543241483921678694209109044644946586658844858766781618865594871389561861467925456547873069944534059702439520819491881410264897320190217478810709950736372540439181843675265471722620734245567731568753090595600023826777308952318876022137592749866453475442965577447941514303197754263284993843092538485756059714656909919584320218510279571059284084411213157080579737717087706002092983590632915049044566413613639540794042833519033001616776922708604188574403730073780469113225542266132316414805625234830408471829763842345092496753160350130787905872186421699704073657516776259539764882409204471178065488625359506762621694186655188928800818280644622650617042705643707877823425393848754809149737849419654945230536468488429257523506141085586087643257737275957095545675555362234620907935244217222413368672137310542319555552318223180983585845574246527187140010018840162083876983599592786035629199316877654930436165715907121175039148158865117322988618146033127926813224079700313408388942281100334000769653744654902291669962248941496036669250450400832525203107459540912932613495700025841893978296701643899857954439908285716375710758036360126985915142038038874139039830551115028684600443181669397160798631730306195504443186870719247257563159174322699210235062684465523760074515448287847916639684402548213133856696669078618655011822434856001817718931639603010116734891289250712822283689580330171386610533080457933775080185083471214296848978125335446262151961417790148238066506738656776121378985303768881000986421196999762048641209886034238946609165204146912653135830007779551171341805557662784338844444258398982203623542412720754155122664878293083462312293311920382886824465352665570423162721953282842923436608370006125131740081557691962672637131367291723826980321449995647323498937408106918389385620446798564117487670797197676697588823289457169647485441803506317273025415104647752236735436941702550187233777213753802762747563974840348502533584552222528472723854577729481584263152797869673775430071088198049933322804587862954119990857757396619966736646794808392458440401920787532628030473352867985577798912614262577098489820875538869848228167908910984170415982049422785686754029672855890217047058152934370520703090053756153212430164158867004239566923541776014626494527380566808999563185670903704920684511879945007031962727424326167718028892343115791520610048024396774827350561758878707314645656213976856861618749542497993065309431817327016449780743099532120761665138759350923283133482884129299894677178577676594237545354025455725003100813978183909052507597551800841349843669439075834134882451755984841500583382120238222609903562379955088756170099007812541270168372086152674185930951390673859521067034589115569568377249581909035692019413197432352086203890614949596252719810710785786102779937229138566043440153939732530248844059291404963612096313928918101540235965861830669631003899257556812501103488120462412175248966952512725939037115377716298956161413137245081931224943587620863738868460639843070024444438653104043855555760817351078421503944783562471597252984672985159426380643476503157064360912018672048221947206997899190771392415809154772833930309032693149744426261377489762333064314122538769513725349787318867433599177657300694404637043584174104040642230131589935427124309260089860255259779371631499890012903678300059799698846942558470859697242814259218155828620443997216418374984988789616362083665910592386710415857541227997101559897051295309479012002071676399107702651498651406658086025699872514438450841629402648070306080513952893275264205607399956022835801465104274865963042633022668305469876980623401762956266433022547114905074311440357271166938881431175490226398595458747840828001796620472762105255486504180722816709214482432968951437118205208080665519203315104913074717028383096070637802455895895361928473754237462305898684233463513792551736289970956305908968395586656275506969149368094342831135564733338685428875999920777167390652389479118676967971656643449052404710042429087048033518361108371320279325049384755106925186454004525498226387889774168398957434262842411224959818091543908143725762886143449408328283236335333239040122401034314514466422592623350600636053408590206242765703251125785599129513057257787118460632589887351698024474329541658474464692440891596256562131174668180051168965922196097929528082007541593242242449726236804578725469283672381465201132826457793371654814100668448601486760284664633640606976779199898660597384704301351245208896428802649788841592964342621159263180653908309730445854240834911379389295375845422098244066699409416521259119744286948386399216601966628097600514430547879303844410292216862597959692925305141488925560994266916499579147865182716254393864909306330785845253670080056602278985683224381376904787028897488805381479710649667287408174452185561108234232121660116766817702244889565881027419279514920407136808382895639205808871148770647693126569490884162347708525867072163081152179973933133912019643450413848929650219805846195034464066927594573718749163152754051874550559899690083598259113221536518871098125279127036521084742098013464612969773847378052092334289272273510067930381719217605875959268320740488240614590823891381254897164790377548438060282704456355412202521473719168984672307419246104685333631069912781850795212693905259508252793574647368742992034388462486667915242187693870496780662348342080419682659843183957027823886614298198314636100913090316176734229988391047956795774106489746319620421866242113348619571858687229843663942805059467961977633871089544582949398350764829883307801078791518390947593838570357259063302562061871946408236125119594750504420610865283139912980327613199255780867770758418832525460768616440310836116460654332086865256872079008947180943561124714803326479683334770924513434018502250888604843691793525397039533683382657421862449131314634096327719274788407295763315195845035543468112904617696494535968857837171300906028970724982845351220091840852850030260141254141857569731740636185012567063871261339073662776917863683840585331390992268171594831737761310452966454917290909105075971740601645160329892640592336769569263161243956923903670624909427594987100410846744536057716071304226617752609443802370486024475034712047482392370559144072373040672882951378156918866031687790756938433017225236054633529125018462021204395330701300108215926127084324099614954018646167218872397996888954365580955063598689961121537322766025132571538457106611685966007828015542788019906876938680209800193976164437422357377267054677282737530079223182619331428457496304014764001557426650225044878909797968400034205756561675603290064811804247237887515243228706786089086227404204834484182464103594673674971499469500655077261245721827690739320525403447990422750121557570703802545554418726180389975843035048850492621022945582610518356316736986595370052922074944756148685795187624126174555233796027560076261917007326122526192295637722642284966771794441620889954047558570961604165466677227869727806059121630202202340872685642746455191928720867952593768995373630368253209090105476627783790107262275879940674959665172317307820885623158498832158759515422882175831240011568353698635127159726283672294195419719454174178365509763811573413963704123947716097446424891239733823233214853261835471268673381744176776719814602368958666483219596528986457882020151564690970135909182750695159847033628874589190586613237849790881631004009486377429375429913553753937252392860927508654709758364415153110224251622331461195067688449674846040434288294530556863055705141272073441421187144519180865228685751335524551090708557631672754274618333390460484800922130315902061314868233155198202074707365939871754583130116264551632940590730621181412871970737053520933877226537208377084406759915958091846012855912356408741737762440287791733507769331930400204207684059752995896063256639627938522485833238855650429155750290658415829056529348306949988238697984362158345617504298241722153855827576253614585402766476707751956289814682965822886191221529079785990976852144046003338267715102881547743773932564184854538944665000083249748365554500594436338988819081701468147687077434943742534862532464038144174174180921572045473596377405015623674302558606391443390932990188264671194199309152991314144928874135691744133163938300204892793321128505853909402266234021212484675646720882442216285659768020865048537417231963784881852025308914285216059821279854128800979769727367426154939783822363041467312485999041454020572391857866363564325340067995875490204892700857198759531451436700528516385849604979807735493075811926093890688717157945130717877332987203893606871318688532083156922591300412854986390882233983749136302431993963432462363387070602877006024971448964529680737069246623519131599230968875987815663918578780685801821021571282558729309703125236986582518664004570444336169614093212094538079624253604266480681349406592631375936368824292522281007028730146630307189583135037291582097444591548201096280964707293272580225697052852453768630979155797494257541498512752247321691464640228877762792822976189201335788729866894715943126788407072094582224991457408305337875457051628794149428399267626806682940820227979240748136490013374629103025098486898729786075000772089389142940003538520036184345772598537550709216066699616893433643634113421601148484583041452671180594720289845402587336747138407810684237589124965337532514214797354122187754656935238397981560857536278877248632780792881840399504653501189479531804283703956367733821365604955166358745436536938682228989853232517557626681881914173097861106616714855026847337092939659822132828508966934060823968773731731875621903720497049817440583341791008608297011262096852345617619248300088446985611056159846217579920308926346648015068994920656176862659615478480520257018442847127675868848074201484593426750814767949655206321689870139269369733154674779780066437500608723983869105368789337152900215365331095700825485310918339576401461442498876501771624750839058925362541094210018438415308488695831224936083503862427985896246493606019837501131916021780893517988807135472047988446516649517922481315005298828817894755545458929942539629982574486226061466962557551481305188279973350672672020197736530919449013602469852583617891749095797199203270459218033152716920922118541102403648273239562960249269973864795772026062764266598345759609990168096536195264175099889844109066961179284207047666393760302401244317281599616099015526572089998098654355872601879769264616137767363717631104336065869371540759723414941756494378702845749353241375739875991849261081512705190900339712597430514305702975239517760995837082087161988510994474453061426563956379618285342148886781919316487150973207785905090988249197279459885206221265438274048970294660547375503662367625082432778102757754688285307860888431132760394996423452244175060293063264099968199116557028041423077841322381269531988508839498768347347182981345538169015660802571915304322928917112911899349864954295077427557375274438309659837326049585685621722780135782612356376155309522746201938208219386199745389314076570038728412684194111034567365234495799101745912102551570706275158412690181454186591933320801375192214943913113903221643078103983454909840977899126710273057495833588841104607624740286628136717063085918955119453864349899430657296067274468875245520197593106600425717954112247350302357869294719113616414087694746528466904133519737144682863718762041360707878091496778540382223790313259337074167133766703000741742978898109420779176037052394322107462505365612108939120637480037778529828103999619823667448886548589621758551033796026890382904436201179306626141039685738577573294661879204167173987103262478755432267470797660986613288299076811593565639646332732047417397842653691991906467127781946911429769601185114712399162464385817469616201653203806904185166228343516485328000875272891254656856297012014904239184312884883896632260332664905046254245142153475841160819809444383734888361869658817061695764094272544281389269423477705157476222853860002129478588720979641628487848234029786236451576589539189449502412919513796279320330372322421763261558414849545169041504815948845326453265536532815848523614991170174914525650206738814655674183677660136228841813985445758381751492167987536236302249866504298809391026997188488025970217044859030202552813761433672730002393148762994332942087539346375104795216637593694859285452966923882061196092401089219405937035039008894895675543620436512238135046122323723828668560770121470819934006325005040159444761373302931130726487374288653430191356626356098555176481574205853240609158894553688338012597063829271785958791348728751465702781750624114462327616535564288076138555466953496487670492598263900479023985157001129735104227349803979305948932177313778358946427421490828189607575316635304741329167667260958198813667519385608007083445979694485411874596378795705186883884100245753006979020674702218952467330629653303426474252506437703665357961799272351401680882572309331949322358776974720808316323550323053728765675197449912433107347871022832515434686531448915700185727147135713952818705744039990354952928219841943121751076012396068516715598009592481132330960972775272904089193230451381921405954869095986361563949787005209994004537373431567354908127037045102005813944075001957983981534123792549544126830335101009832940686931676314865221842126297503546963188038372296932731963697435520649355414328396057577614968768432550718202598966900121473966341211901611451592088727225082305079329494940799830351174391399835614995283176987410530091916463711576080335115178235447528909516696686772056010749497280038598968896901759596516320835992496579187153166517655496123305313223004903798028925815658853469055920473202204485821573914942454425600768748759631963833719548921803484257821514674327983246267139011509554735038451227067441681587953146836799009688503526722891303705034803725516475105139501120694303261888448360129314145132674227744902058435661357202297602569243708324414736426416862463644112821486682308327881884947625752314759759146019118302647032653643510486287233085030137298713130546568167197168909055879919792392367836076610691397291501702853670705691743297916734970062823912095821419327332733613270463849789711694368636317428759894417959700051502659484028115533678448928909871112742700145569771860376836625789101295632494217393242321683565994137149706344639312103084265173478194607634807686670878022560608339981968527039139188862490396768846201364756184245301094117954282789506609627867159841603338355605171066368563999545159202948979090020163703619391336687201158872273536017006569606514644711203400943095519387793689285716579799457026617598067506585843120070978588043952208993156107255821903738904382521208558934052962687060394630838629643570482247315119888232649651233926001874505872215584200628956419557236346323317361335396359888281541632458208682820517718126742300099671455569399632110097920892793912061989252278725177062635673906769150750362790495906170190263988538482422797935956600844666462081178596529200239700172573212953812229585724754802996228045248031514736444760700584014701116157583301587986025670532869602503766858946889550232573960631133507900623268146589600610591834449817626946843606208746372600234287310487775097199737297612220484488361532968141040841915273153029098481060659105241279472067216778576385034133353529537686163476493939822061133511670180859337489200985626021637536457637808730798794416303132933168954360854818827182791080276498243091700518992563777206719012825956443968145497211987753624624285873483667277413885470742789881139310367100740260458095093740089319145503715964300220798709902030657779480633150782789403884960276878675011503526599959653911903850995754136186460776382761000013046744203755848419410754743136283217474996914017256274580190983073081459895642637107074492931859335994967784546397529866823300662605197052958396554934787934076892729823865099728336887309425144775293325530109293889095059621663500645851682645654478451804215271026641454725572435764674125915003509734420041401377964253027655958003277921091723389069380230835700074572020775070513207685367672726692982572788065580773918193865262987951271748487023113390788148797075662977397668867455950268211387248506732653087696260326379778838170391692259670702892861072346955013708922273724157473521463118606168332964280894271093256452178577572704174104633709214904775509892915836562366963587170022547406720670931929112985049840901187497082556550513631276761951182373931017889405195526807383157327019984731408230101259867986402493126529986983706751746197612905864197151016919038113053899625915440589779831881118486367335180610964252293342023799507987471411797241331949703521203902276907616939986615392473230877439331993847393465549602467485145956108938321434638044376429674478060445428611772356228812354554938549367470318309386300599480810077755226640985806909788713789989537772680559310626158376832702273569525481628683977540598313218810720959573489257273336071001773737322215725062455540763681258182099456433315664416882111240820296324249271540402575584385620799724813725431479791645093458917528230377941633662345954082703595667410342058300651259660676105712370019688828833357826525654085800608124761783461213434704265990764718852917881655987603366605957229720604676414593840560509850038662572024999916283453476012140957575613113772014222253799922581926309476473808249210536672702337569527475124675745856564754371873702932038081647161848817574928456398070360592998581417207052391455581633123983860416483722081550813408384898901083665842259270273186495887301491547504577986560157949609869258574072809161237457612028080378289697303684705540680696231495085765857801794576930954674892891072417269970878287107906702212140537533489916127094892472675723442101929957163172516772026816451195411663791387290202669894522022670168784743420653592953716554768714697522073086541753076955028774799656944228462074380055259354262344681187296618354475217325954724035991154990338109892925383323011081260111945829132478918261456590057091914804988981064109265319864154915439063711532261680139136920779031134411790449333305328602224881140111831216907985555527652770129689707994152934407577444812152158339148073265885490277392918946944302230603364361243527017659886978040729972951305026433629229976859788278807273842386643410555618673233405243304421265422580922026128079377868316809369096503930718518869575540535519244740101889434185130363771023719165424738556977234345441642929428184121355056160303404151973051705672004152548414304800326713649329155100475272886357431562722121248280803948049233994148331688168488561142463985627721248998010469252465098429768002819887389179671615997562994908103180945776549930033533727660289860413051372088167496557989385646493125493052617941543579324399672646382231279930438250274570461566122280211602252971111914726047906791143346105329162911399418142705859569412093487053298595773324501523567449733143059780347075981181049962648346584989429083137028824246407670486581945540112226166400672097493477354322366078909827936291801786597529669160491331805864544186490197005312721109486728921611045049992850339238238734277274981710686396625516505450077772976335228391909363416626867302838597762854881190637657141567485229002764130072284646247766040719996946130087123096981696117764024588024040122774187119038281453640878770214050634920456880386635063758276521482872528409166759588368951256147440112438105841481692969689423082697724588266279687970065412237491137136835182738167865499499087896670694422370878594470372287431615091095966314464662011640709456097479849023363689980064399177284580701668068550509013628723686923113752175319591326036854910792708522832260794133428448438696455382340435073675175527928457599938970840653424134033300596542258451977435493156525253949040769054975535759742832707392614050290255313570590327766024728733093759232781801218057548701548456323215488188217482201759332595484512386428545698524379400556433592407757392438540423436702536630969342978657425267029908573234521675617101232614490595100892202344011910176219338255348554145176949234041678504948130811080374215250832981663150344058782068405081079763511477872031404917793340569962455700051006930361755386798621059221137496017416478595814599384727211793391023362889874671002884360210521700308921463828346420172493377514594618451718646938424487510770480331058573627422255689810783595056813440781257672764677591126616171714054786826922213350711592775711180936216356400703198861527915497158153186202558161036022088331406223343754021279442398911151482617614567598284941291843503814374404066721320273696559094656887718675576468959379984034284392436428313849993610645589957308217524095751980407563224817278371939120319335200957967988540866288584171586540247531946198478449156362379422780084825190003421829725003680779732829653827382682709645778830629073257696965925850224788347990008927737533233797391994849800794562016268343529307082611391508154015738635874791087686819330622340339836184097128959818775626023205090090830232761260784238560476239941161143199182328557230350256329962309879869813721987383953495088005110565025519830766310016192697934113779965087169984295060734385992874266928213258062265610427092985553235331904842970575979180286859112426781332789200013066373308501637457899639268418432448791750405966056813434730021152127364903814601466017528049512323565233230088229315623189074724905181203171677340213142478203861067475491845681301759363368232595629415108506637332413458652626330442778920329963011664784310557886749655601936345406661079804344331017604053696587878207011778353664595797706500911051346718061964562680458928553139279886544887182923617478955381354822432278861324388745375730639255350561080220355606180165801131104666555168336250153969732794833392031991223422733181619136173947909717352097254441873976161679954491574066642263883621082586548246670000466030450317690803460968038937494212897244625073723788011856450495437177479305901054133091546327622820601761777268357199499472100085888677752948514618328300221605316074502862271394062257522715361531179483253952955527424432220185384121307060883994372900303241696223646500626792069980117450741513885691722498812286945218867003655461487840180919059684641517409973838644035723069764165258889246501333280105957708743781305626269174338976633746852875990251822716980066713666467083616352726762816491254005447324342360032669309108993937683131442421973822993229788995092621454276031423962542712300927051312568496344648699864913368849436390897231264269856627625111959533090158560243389824306062209421268989550333474686793068196755961498527973316889311238639281597048721463117848989411167729941121535565955646022549236360297674973582068682453205195825077303793632075825348542447969436843239583002296648031945160688614692469830684283731363764352576359573501486860219543654140642015581688844968265881123465786302515920844396872909373011230188320082410855069462747558507218819881766416253532852199367845091841824286558030815143191247170651521537685607542529637607767667903553404206819509714369610937178250010403468338900472368357971887181718669016014165499731815939027534042970294782468857158030807082715952731988395708272443207294195414773761604963690540790662485698192149417427233367086119226243962865004547421003774815474836807016621297096925069030039434013953143884372851361467948942022024409904564684901280849422300596321001799673114692045032579221535625483719536455713051997700329849639310224310211805119791764121101706761203731788701899833656348870192888875302157278756468365042021144865653200418273581010524831790313233309994803493059499809103590873306834262083753305080515347315710483655411018580289387147646397286797086481755119674442027062310288533446028400980642736313901151882573545087044012788032030880458999401392857831370320146311690082754084163161370113782281758948307572743187126630136955406497051240145147938561616072695875516188977592200937254943422630266669802190564249413297136490584514460709354577053364619270263510917344418741659960580507217623223706705276940645988282696517385967443185049350887097788445389555097464299149414157410633088020914602707199218169818218483276781405657980319178606106154690147507391813277374022575846501933629271786844135976209467944134056097983525253247495474885376196455212872021449339518571677971832401361516808339481203386477683281153540367618804871195257675141844988171432995289518963021219244046783780574139721646761503521835817541959880155878183898779764752675857488183312641675017498108151439567778004303916562414212621830124978139899612697493113663124534543165412313702465446789221386332616722109570959567758747813602743932825258678809431901878317868851628155066665934899011194842040086549543060038039178327962106972022619173101394711841352382624398082038044725604293968888608047661814854427924355022617604338303799875324936338443379639305106457290147033504844251508294100298857176022094360304026895452539022641565547229674440698160995704897061857594830661245396861533548551445973314158488230645087290627474616916126938112272403245599778850235676564210425635282243293782278413374539063268417248112947477730303743302845461431272614632310540053534268742950745160711682113258945047377998525906280889706008419943257243535659915956718441953266723635695426037513401604302917390596881641390046488744619877047138953501720887829300569345883294351862364410505204728507958090822774526283793096212452475950455166123614389213213036327245839947785520103581781175469105111085624843978132712264257381830658248814921133451601187586782182236898768715108552343084383567291462242105743861733256661741960999369518703480299056647746589471083782738489439311337575309274218922336238702412781374746994393067173792589616662082326818485942993720067220424966657283017661172517704742438388735609530630771992302807016573157109237226340202533645661421172102504983400822458632583416950677974907621573373220845747715167283702165152572726906324207310811266755111169475431139342496252258865632055943336433200425193801686622369612079720805807408423669323592226845180555327820709234989761967121716779791624257801814465205156233999357071380001865432511399524061571396278600427487610222747036056300866489818556368512883809784031645130156569345453938673434284770685138722357292881400581667792774383039499142457190528757357218154481546820977692300397019315888533448318345887097841660833222948177642962698624400189562630801058556951873430032304591293135903898244892788175807765259826617204314842674062284220693580529569020966338370166053163585148248029248083532133338663365526558462065426472081380042288661164155538597994344077718568151087555231264485459645256821081013635433817960457186863962819124972811141554662949543549349146804957448302719698789083693224957924798264490284687299072837075201278284177012960380080437313604235014475434908232554601707572472905331760260071685785349044769308844556024080018247553816329309990470595795770193501515774660330797257003737623255902906413393825012755626491005106166026735822600167579268042277125630420889630823949587033258818159011483577588531312006759748973214848738013554733368222895843771697332435968670614741742148241984917153144445686441030737778278896336591757347859858308960489237888649957448584332371907905638718101778970489414130439795396193047551369668909173816337402028418059189263626349323589579612334833976128357533021693110539509637294959579632379062570244037917542955152334626081147354516172831915170000144748991952187764769177966195256872119500722879969530304853696757636373990794430681248544119434687697648840583466166322142543924677832952529126299078762642276063301771694989190158335451909319697105551425438046345447883372958507952481690982086688729490013762749360276100459035680660458689090584312586923638973815078784839132447306209821876006989319766481933313800529812135884704613563894279277509754442713615574142412671213436144314576935943185075397401556345043007214773380360159156442315152666808163256500726544917370907422360997885017528604830879069776433780244014383691757658234996002332839980242614323030516471150524613386922955961983590185269892372061627667222391829686622299690128368372107045799738232595533919942730152015863290310866236089028743115114518893644416727505857823639204785073069149080150774213832613456097683504703206480869006992666168587556865572971308548868485030559274222664564895521752342533944115055347251126468743011225069205029365883934693777427357488189305476305456854544185087783344027164952967643576545542376086831385501284617934105641325153600110116231324866989037832276705254406296896643901644662426976873712779025948486723050418835127387714999583229272010569081764772036574538306263212128782344682857126774021613199423767459690263443802758189654733342160761958999107135933046080063601143407859022230138144316756189416100838666846130672978799816026991984501609036445035430068857491807891174988691858559120889273428562407505986374642067182688584104389915699600486001678029227155404334781281683206974252590081899938524312948654909701470903489016580485705910238098402302920954845802703135799755060827800614928703420610189705928555625036906666035191351050612737683153603915982965440961198482603792153692821523175373304500745945602650416490638745217128821649779663089653203577927705597573878904708976072822728615561333655417465417333253195046144715961256134472838760794979203472778902606455940368389398305128043106897883209225526740309907276663255630982914337733624876390098037467995836331670749095601577678062528418158560882812510373045665167838123292026443334289247998953763700284708820573178148028615669470671760883017976295743657038637665430467430018221775217079790113781320209171012259445939476032633522100344096072888911805823029880001392105769902061041194222590144126763937547565855233263646136919096305590052387849058085854721893143295125655098911185457909047430986724519821564840929112356704704471581654122420948489526023954425149689699864689278653372050381525835533952595949779245037350723360292925681664403175447209335023469935734280416280575853123102104034707410553947946623422472197654186066330756093839284302455618763215229369530949672614539115504277974291394623481163890994557198798058910809405220856634773640251853315792894222261295196710148786895339904116562623610993078627744312609857915198651082193763442397509244443188883272167231447313989275653938746908483785999839030192847559908448031397572262577995802383718211826107782546328050166275692933481710199921368849125797417834412463621480799326303178963007731622874110014147446829587109640943601651146437040440424102802237154864341631268697102967457237993037870911926602268854349339288469778331833772755360023604526975533312074052194438418713170650040623031425789639624625508053462319515772721606824679713239823507112146679033342531661050092682826978320517079706064770947533221911300316343274666492125853348698262849933364907497576271776242384245752937603637369306656985808132424571842319165984435248363839147236770911254287974928409167148410560617349525553038080254890897989983399744196881644358115996354194454682443001877393448515678629937141246420255427628034645281943196998515677594280158901172429911474923244963629665361122564620817780841937367174174869303198653923145104203420878749446383420074236946741673791377185417293021106725290049850589395001576446525784267850500412815051411016761090241799811636736511733436305204217188346973344096075506189228320800206823218825520931668268224055250678533267273935446279535445034693467088689978296597666801558685554392805496916001538246441547296342643462474423380956166974864326785105374048715307832852486092147929389040061919407758541257721829740311111668457519433771546660593149632260576395795066723792480455662674495901609904457170074768530182583591118470271817383992206591146973869040710668891914404781839401525549843098417404296297100375889026679800375423520077891886893206588256735921633748993219074333077632368063067660313305809936503927849966330583441058395584235470613925830296256059372949699177865370073582595672916556375753338237946506670281331633677877857765403844507622370281560026646876008330083477694106522423132196281717170517457473158031468377944229920625843914516306421928076234721173733905412416898122211627447460479742515349515614487846451905980558527492770651104696899879122692095436329187565984975816004981782653422680617557997788709829039794776921498971388294412989921906111009727334464422545870811256275160768956041869526381765629725352532046547322321411273494490007070709995343823704310299549318990729038940393600846457924780974770689377792360934824065290804468238738675355043214380336072212290228590015216874744186876802189742358281150586845563682198271868382822712022953559526409811922062625661817453862043789764774736740130114106191782005477288908821348907136348279155939588984311141468449293179595876873104619946621724299405533634560437264288314927165898433580145809725762776274800868304148766120407151948274950978760628543052606091740304158561947710424021563176127625037890826423309483212927690310813309633553644609981134686582629193850306336466883852804520439120650966599343761209721035661834491420632975093591105533838199628637611122145983100288638777522538898710716930772948289682838818008789055758962870282203495555921919642820702660166974704507588241236492467930828360440477992025567808100970827073963925898237239903150169736878073855053728066007033935902989405855071015558203951929452755763416105602426845117319470938660056472209964497000579711628683878848068645754521298876212011332307835994455796242751619061661208659222884439993713691613377477647967546404475222365198791890666869461536340304978504270563269736889717678169635891214794508856032492035910500052702912506617445710902488231852308738473375760962962300323163193177051241885518874008914452275838720303933463413703988374750037000413030323746168105282278963024065719542847439561363059606636727661637076243861517931768563782181670726366526372749429668826496421566909876575563953898151737153919037387366178108511437354917182691516646587954314366916574559914509134698300554346973946815184912852674368216332335002400415347563366555436747853435663843492308266410118637946368242741476321330855586089115991598069299333358737999211709877610100086351226966108582377960077298252991642245245377579078637677001762042169801201206477788168122853229701582651537591047279820858102544716438909214598859930587389980618144437124679609278960169959305673114778765164546041828068081373056411394770033955105929671179213573561422133497701035557890393120367950779726785520691309610133057995736556598984214080110895777496352490305867214403321226633945777603366707398986637565550566837590195411170400240417317419194394595874100949127918935832205096075154456583107646322020741556730073492983922375886024363302193587602702353834850809030972404723067483383427565419390175663305343590572925362906666292442988491888974930180463368274060418797264455287909103745901527962998641911206412766341665467260103101439464825427319408260519252525514707780650538193970341483331883886244544685875028351367931069259265542345543140287727009644625932593620484150997618613559311505374332059576171817539372376834948965880556197103384605676517806077143781175119854958150265954047897160571142748167043354307983627680857375203598045470718987444627551568650652899034427052422663290067377061407384533145546369620398514634845405036245205155448090190444992779197019463405204021649225879685477096465918960525508020437435632499552788756401854856880904661726647219303539802576895540756070945089216392751733624848727460634457746061430015047148066380230750784671866268665480628749533438126508529861793606273054116087751320650670760095159696922847060025105918981686056367472284834036623131284002783496502642074294648098719581798919823422678010991367265869779572715637083820603846750851250378536868905000292924591381449676103680156504940064501720281008440749824884336338377389451464234998074348754194957065340487599306296865740177229892207041712379380368689301950471408053163679244276114987282434977973451896553103515163001928410739851952468072113643847868746468783890546685870146820040424766266911978505277023299502552375920218239761314030131820781109424341894035028781848335699875419549142490764928185012769692584507982309924563974007490022041400408149827161772232785971823207444360963872983969617695232630442266714035644801369501115127361959523389542466979960902971117729497985260181209594985534793603995870226035386844460060036455878372081734484817289849623343316168523289628174768656694777447841176667785550405402032877231291296120071756182185749660721286011550094324832066067170837338439244717497650650653958694806527498510964350441313666311716149092748008947971551280380890602661233877021024608712602369236278204272063214885695583869244556192954397982824586312915597016112139337667041604781465453739848204793206230545889183023663591107086132361362025300605816801169567677917218658389861106410284466693539512890787367358837880907293933556892422980921899937585652519996830353957204303815423832321558948134879730334986225669486094404523710963112042947370999832775237590287943510148079602410853182822727206520917140527163995570068548889930713270444263811713616137842164926708454473601533715351403225226693993156469392548886092771946950951027205658982085161141693758918584977673395810739552055411361167474588940005579265012516802256429132904645122461016116377589586003551963308462636809484298685578212459237860644910862614952838673857484606243294769755650601734470232245169325819594204801744386182779009979102699794363773861023435990197290266572176934905312421082014790107623442211764049817109404564671479648318500364607065243737991495754907464379355660866873504706880288802273716915066796162272636779142044531138129657889219079893067928079519634385544299305266711818831693181515330008198341370336333781165136447844956432026304478905688325391327568550064988743645297240190393219423619468581860924819914471822312563503610709908143816820094888145747918340074208805492824346482202018090066089312184871142202389059614812957078986870673096328350772800358466472526333260925467988315628147216653104290355106381867239459262249189718574662275644819232079120334629404623716455086820747807921200224810448240894376772964570375052148843238334778442365762659625774764216633838696810515560040511665892942265564305067431960663214938326852324112410309829261839656672653757096227270816376522222612795703789130273622424542802357769496697979160378060206119982965376686414860573724378570868569536717430528588672794150486971707923068099196355970906670860867044395694929890349846096408355212432082158722098569426394420680861525393226385146418582255088724356407610075557986030430061902939977503652924496276806301619395868967484282296966828716007054121885360112526214726199193457011249413604007313710356012354491414456113262081479722024456292008554596767107745262944640369871156673705233042276920606892199721228765159234917270882505266047849195844456959149545052034397221960570224287059634771994874534230358497345554348357522590050013267928952996834528300292496787153256950895599473560087716147867358907024223034525677092641861306526224026655930237961089086540285236354325701095038570359225167241337030774595282986819959453161810997086177904319521494540869980019284417834044175757475498417234322439525421877214719142877946227042455110384041022996321821486724478514170043239076582050744174333913902549372260051917805528866835927835968613048448054765207011038705456790506671332686146917932097415430437005900575140245303811350859762320498835003752190107317242391320612084534163642542090199083978951697491908019825707546953871760435550310293545603188254241234153802602357998486127102726194594617302501506272017827183475079537546142823224020480035347713087358554386583808986557902901720899215236260285441345666442100755713174115361881364359683391783668530395519789793183344026657639581776384415020474638391694349403754718896359566538837878175800852943310515647806316755976396846284548685176130784923521928758438571742115372742662475494600749829464689113132026049824266660617823621675211624467655718520142770726517054576989526891586548638365326577466124782875861639551056907937579047468002414808461730023500651159437599504722627953558309565685290552412433260659123965566162975159924678569767286095783870829726888186247764282460889091310277168092334173218186389413029912801785768100411845331705487807299353922416470846592767695960086133846725891792224684019652360040451922668805022913825254274427296686686844346999364644953850302964431418168330679566065919224226864233725897029749867798223798697035091567288250118972850543669699911822927643201346614262096674034698918812334912849878609458508308541160267918749563839972658793854049375889376265175214313400915629767663484039340597113895896111779237271973120087119028387238504209951365020895996502386923874311230076493895458704537403913276742754658569143249223442487954978543194217729551032904366695097122905794105422297138498333184568167800471652743034462150937374568908834277265499795897400277158697281756716217747160623935625132132183377063081236199066762068912611033583997668527940228006933262304276436320080460279454398218569268957608829810520347041628906151426955663260241235845684774022161533175079490450618994277541648766812830608767680342801370615151759365420040664344334264969630135976957110953844130547513738065151146567042728087879211161883867025832614835203359524897998800598432685214221661012138642344447403554153618125451232725417903752432846526134001564034078029508317387068633858218904309437268251977835434140441463122505028998509562964721998989599570276017161080026390045428066701936887008687376096355170539610915864885224752259827608509868639319086571570514647943064980794740035993567831575316978640164121027673592744840821479316168720146307368326807553235550723378451966583395961990088575605320464904398718780003877653449848279127297597926785893238835197843597745199337906050047835747413011343857767012774677655849643653499207291127505244780679900247638081336083769159343073447099908724612469511584999056938945819299683152569343465601650490736543456168992441785418309627877468642564733090801771234738274986537042768589418353870662496945358975129763649216620225195597820488201122024520631801743185314053571493988583535207253360592816564736622280375125433181190686358045011060008848948725199038611570686001291733949132919990989699652040286479747867114112641497352355060282805638673189135206201822654474237530759147972778345485196580957117670372489113221874184884205375456643048605484171435420981220790343901468246430804763093999998809436403623790495669083066589344116671233071908768869022289082455094393576537008813954468575958221592423771337592890494566991341957756948720993455234879742554959734725668245703275248563420580300519066333222614729844663566441394741536163903196368909701892934218412965470642120441579830928211275512323094119704687036675585862914686658160114690758181453238862599468813061100858655243133038885236178754162451931854885430520476587697178187186060324509226705023562330752865400634453747477398103301753010639285876706600683662423915934474792389358684474668813439768412895220852628080152478115809087282720910682707148879262220018872071335834731160493875032024713505110973415142718851074543943863599825168938672783207606565843299641926687729117880553063987707589284665465017568713885097853054377475608159818905381285975975872902764191458768046930395798940250280628449443997726788334603498714471591118640875088480118250466062694928132550585446066807219280767226318541970608997272793288356308679665821656376621268700062086139857953368721832976694352586585218102197112799988523286014542438864921063962550811291452452556165662517453982107916583229482739198907226638085938777066692017984543733382575833561654414822741349366889946275662300582348641637489129257434542653687209861633471954725605376490261109861602206371517203173107223352777902356230116122158872190683184769671215454477771891976364767563598836504853738681471118971719168094424532016562646584241532046095219750813874943627273911539703898102205020721137964289816784565719998320957828675482461992552416895064756244587568047657982710420649182800496114178996326534938369709961865633562525191279527466116452893243942502605394991297678948685545138364629861387059300848639514482754280925425826592818116234558573696435121661127570786587873891004750949502074143285562475323406880694603658663822415920594770116272455350770188320341275061651643409892427663619490660405147590189818284704145406798633774958971593303210863967948024522360219047075408495243809362207420421644466590941861151612542143978530353147142204276050991099958425827065342806551699533764135405683985905403911441118107931792354792978041774003118902834014205913178601761814010139067839451607973409333145292883356826676108730896556866634147469799092012916395177656476041001359230846407781118577017147547093052279610780512922592213796676795242302547778686909869863959328301752671349257394247665703796719965490579103464517210563161116284757616050280274147344205937987385709393659976458406436347102341051386856098154364194620709348749556571515258764739863874662911205252188619786447193534012187708564430494976466327211173129663074014742885338807139554839666151164358327963270714970366472045548239075241704873711090203568887842627143284596829485901099120563280067781728195594808359588637380060203312581204047411619510055707663751391852063501937756689087912226255291511541716115943112322974848079460008427361783694526536568638908922379219148889415134127643812867253543943836658764989351173459546582210462070156946249629829686586946032971642961058302736294664078669548047160687674012930983882701126941745767284965389499677700135497071758739769885357016099688719243980125753778863004529960603894245253298127688379753282943478474717273694838978443031544557233271925819567795752017684059491039451024870405297775461324139574737024958069521906119355246561300760608170366063986369091968779673269874206984102154041358774349944248453987366289979370493199201243310871771588908331459369497513444150308969888483367048895335173438366613750498866788501897876248896041891956562134925599579469582151271873602229443457603123411616222118783062630160025615130600896179588091337785993827573891166174922000480194665397167253199996787824646520704202552895806129348792215707032350510788733810356132469058912542801673145222610510975268844581739585286749700873281737026503911418808636257860068677095357094541862720371829592329394290073204568908538467692807676706078362731454661357464511861419269968400363552457866825286055236087839263372094955686573058885355242731718303555576619560181320696970523147285916036574152819379480390780570177662496776770830545339964410411490744480918935442371587513163712069092849718818652651795696250608768086379929927514381917551314128569838049905838324664071843533573031977719234021733551252475402895946451934978941878211165244207196479633540280842768258745505143075409128869703382757982917252701250517485725186567605296857571710439851775863465492736334978374578557751759823118887963560642928826106915221138773046907291178439687957179969190876747446268939010438389308935906815055062518042834249848285474537390911965500578748523619442673653389203529338179687943458851309654480825952165334885331425859066052701002099813049869066106986772341451502161803321817251780261638035508006115148516501870348138649662322983550474748140322134137111339042015650468629586325733803273188936337821297631232408165946581252935606983259454820972718723855864012085426527936578437086121319008494446316692276804749918097816344705150811603055468454777271216035378405507104475174017789158501440333997119754393337190219371611995932172165043485986068599075814866338515935225398283863657870494267924624822064659076371160799116669227004834577383495050767456171329677415741936054230465108639047074309668302135313137383915401860054831581999478536840792438863038942448666729162465474925205755454998328995505246549396464110672470246181615198685295740835066271448492976276103276615079546740980485564804519926700067541051461682403713366468707391805762245964512112517214928446078387295065526556240782332021634284227449734066706057854813128416170006827941652408616053049764141535310762475851611431896326641215417647883980573951816708275462640191334272469434064546092333107500561374885845601058707642805510491568322992177718771114228821399142351389997804809074196675042934268844058769309739698849212657406507384241325904995133280748918486312513660051689098675766189306418601450768899664364598478242476379218946820529332861816072858625490193606396597217345974246685348919077150969594715984149588357499407943076371650758713084303506596563276142496891702704725118289315301163513640123233194847773556432256180885507268633615667027747665131684473045892330468450358273413921552056559555054402700770957118912353700328939384719071301230061494850009773304190162974081294121310074365216967694737119446504302675287456526427117576772985100227318153147912186678231763814300133213572333164083676304828635024622929510394464197290117772306739817085494282131685487863584423157565151264246197138635698642648625570072883284977465256569893588812206561543274352350542264304763070175962039989445693754077604277206428566156427496406231822580913760461333554092581093486568339592595977232926299283940707102662050696026191475071454672953791936057733951421585773670258125547777805618183848629235782904863041169675947595731092163648745128732060989775157444360628320107517560505898637739464267237256633132915147636294596529573750455603308507170218653864979703998269119572356546639664878836705324991760547624637368838647432393680307112408140098413134187190232461398167284743485685843324906763226807882989699853205500159545642584642953957832967136840868605551376134831638199710691041124877229308565596116289251943272895673579308548825346218805978303619673143472244736074019048825436693838594986438967158443464978194846087046684244058850581329094867528103508941891768736013456703984025409539983912926163964011975850402830598747519890383637633604795218009056399940711149016348811608797558286887112371978411312774047497747160299039098629320119434195326130687558687004791150584278118927360189884553794280093835596003055564249057493383113158126893580917182167939384608913110009137821696025696194391563857097721085294853408402225263153807576481435211101786060796620215364574519804287924921559609178514675534716283451480976984781066794695258043862789330728544307551867467403178992059623253069684985062225645379801933240714701053883124572159752937376641446000243334746342161564710908006844857331009969795675086132295621539489661290707608705945773211096139595720683769817333217722722945230201171495827462461423008792456391539977587988893436051928092805342757289772298270410825265060322474743465539712444582110094180852882766428721553037320730305369998331909546446013490580027726873360909675283536989869152991883777944708673208051172958828522346346613521178777082202451523309869472048802369839037472245069452923338166809156021611945380712720856939944271125470567703391660685041883392112071020579718959740295371913788508239541844729720512583014502236399845888188480795321109613607068185762270372222467367863298882619535077488482192580101028167734878013651737085975159686350692761148681867915433063310728405287263296042746501674512098057246159835312497965083360962898465179248508654985017657926748368303140237251160519048200492375688697048132356701387122140348525975716982314939210350445381249343854754042877162926078715965971000324253508180067985047846704341071380230002355842292762441880983121027849845688281905621486116883829213807695590238595988882718427141298315357465948383508863675568725072370057882080806516430851305753907148081251981972754406042860721307233112513435473512282372636902059233468408952903944181747222180808802420374542922819505156020903257066566675135522211083893234433013109226745609089648928471600900168434256860302406518387125364447910844822863457234286300447771535676792005126801583206845145484620537724083170230751185826958827819683280629318141579629230291459009238921910502400330171598536021068981657309597054708754304915350757283471021367365907829889889859188258506383870582323610401342736802145772797812650351447130076685198898899488125113240712311225423655374109305713776764663088980819746673440194853967427464648583663038582926833163247475856073411295604423504815136650364369824130652116487321361727815379001118438764792147306024859969662645976895999616672114157678742716314574342191966125438248680637950656707837930566454874971508171264992274587707051401784032520258374306723979387519407383478213542492644804594169360123778415575683802193224515671981468313193517176876767542936808742932303253319005776115303778488076717915873718241896292349633577308871330142065824064720184368666477110195082256544185041410485950923315164175668353359035680597774882628603921630511428440147711227677359780055699685645156981544404973095656182081410723455507709488931646638715879782699096720104770048662041577436418510088977512294013386215725597966730300333356089650457129948604508801030069957081183274122014028846731876121147215076082864500804933506058341244005349924100791897897156942929060194596166639535739005740828189795865610630214250940578026003878066747025727850423102679255268664164783757239192657408335310109199460586891262969289722799695616183796586253951457765651389915605969119257014267769719536221269214924793301322253417967338045456906900224486314543699280508959028798536399116496104569341635237381672700798248649593725432944147501742253488007460536685274107358142140481381926095774857539832396432202767689829529932229910059111394809030625786719468522075436723314415632747458413678296951820909075753738081522550681581634512968584305547003405730937195651153334118822579118429127897624427424866882894608417337727628589144343810796632418581374338465591336125065621440863118565507482036595406311994514473552366495307424361262208221587779918117318239987916772686246981001330899344134103255651244750981673830578388002793178236626680057338662830452691501217498811101066266316999074089546788872498376069642675607327655020295306432024565848803574340919018457969670918958359215806431892115502078222540589621238504836333668640526509539885396018687480254395990775708635647118107817320835882410789339848496095045157862369069379091029833658612505780061282042832989870130361742550814179298851020439277603910088639919708838942244343747624450649943253350075532150135691645447402450634142172092637049441628544935517496673951868233770388227017428395306486621402208480235694617451935044520055084298960638549788480292304687650931824304560690662412014323288603587029046926956993772836995725611799981416803288920099720767647275016278368676505409280614368255993407537108512495335052183812219579418437687503437478613569746659621989929833979417746291399911050338566080297250556471584663407144188104066816046594308008476074233269689870583340799591401173561401519392927093827126873574129118647878817379335307972392211331923087224051198776757392537261658645494269708352486288423730510869231211870617197851882091508255323763828745420058366872399087894313476817121025215776821785403498261233445733212541743174510218535496555794341519240414293857507345018732263112696526148087256926960357068121518907376585098910753621028837150272211457153420899618755816531597537322869658706613441043924561443118789525746217250888142210732883214864383691577885022055530437938704387517855349000333364632825063606684345881652288584391434107449088740095011349925750083793557515655530087911804733639802807273511498996544983963827932308692981654726199994170358824640368229603474754109759259242750221302723318111936925255836794834445355812231850163728754602455914289361798984100341014967367348692796553529916764681396203188564826286366520511948155198319369243601872033962586434774202443854834329270704086360237177118957877448782109083103386033757165356383769148111551775783186058652713314834704707101474914407295267173437318892380411957913758311717249547015105322902122778856375914412683590991477357721896785668394789665546193776843719924854092034774794359735964590751000134136846327053994236633182757326027905931328900717524232979988202872981545698068575260272085345081518955899801537985910833026265950340924822081696983094509905172222977479309296013722311620706318059098098652204984126751609689936908715312615410639114099719516652752102655137462106723975453675152772266427332500755330381155779249017108197999874003433206894954302021233491655975534138475433458908459721056512617527790387371558021681020134897623004393933012361956067405655072576447626418641038275225027502488152042120144894873427315767243977751651960487715913993375733052156316005828183275242512498428929504569726627231794999822413892045811392228819709672866813419965854508925414788186612143164646115500308942954164150080443512671000771719106608163491160104940952885915071027319245300921033761574785281901117852531960939737707588345355016210512061861846016959484792422655828320538917434141914253387349283626252747562106500268920930549803819135050751583315362729526902335454906730690707946290270980430696775777232406825890828825087192289923845356124960533609093119877149768534918771058781525115763217826880038364325320845549496605992316134490296229826383665569562390291636399240531845738319733605689630290156720278747647422923743120838753647797980211706640414003623960342990547821460015964384903914086217248900119363936205294911649019017893767741770081841573646424822803477659833995594199947423513808772027356499653746518050592837624590615012486354904059035044355177396875212569939225314054666167532600959644015081447134085005994133586824015679689391652329956902561795703187363460025492750797585724069987753769610695549112455929371681615609269974014748594909719575283932785029551163731283631609414002641277143134385809364107291831885578184391193113021591853505785782678137409515139882872093298720891708796558403379958180364109130176058364283768346750269744791732736392549826609286541266862508695840576838267736355761018840756880462931100001763138204199133842294642175476228763268895103256501257806609110154182617597117863011849312041707888481703544459114209246267425738549267599297215826630124896079160280796283008237698498425662446273054786522712475385565870151842593678666072623746429361493122303169711499382137162377734101893468412498583333897120574609876533495437095445810473411945604716676371488771940018585038016653918844353076806785521002842208061018153259866723259360862911942795285067162032159562926234421085030375100458021678205859431213178498651650183889714292810204672766483396583361220050412269954094524631090541486701656213111418814642514000685943421416229501372411950289404024171529620214821316942687345506174832577489901727067868022135805201631717965970625499148910104082259013880692712259987661906499755397253792420978780527903122745353722125723678198168627754360065993160516085471941176933600655304932700154996409412462940276077861462842633799787082124130967482772952565904033339871301663605205152943872270926530023128571127739343919972429465616031492288646383048211826400634632244523276912492796370919004482438615272117389775305377841510827018790264189759855383778596264182906820696661453745000181300442328911888657694866027583877335959042462731512065310700129563866719458370838733374116746601091992771387395185045908801258933212300076873773015549656487600196170335613768537917224988696987551958651151518899233964377404026446439924470398896605742004804032721015036241892940336411139263377145508918119581383383687253947293240389677349417727572432633495376177691729001835002883246883886987950819533655684936889420316172257096089983877696604114346887380713635732886694565731398195876502610707205753435936987091432710787911626182254976907553732968384623719803777236231809736891476363156320680379009736280281088287585053991412971815296291417653414365299145634557530013044221657691659172587425095745793957653893753036421680578375343302855098662064054075452435691746262813876434684593501717415278680223023776571521803977490184575810753124548274669322014100272939300572929117621035214880684096544784225532687071607050590899006280944494041544125979903224124825012035527108482428327287589558282346012480790359453607551452455778970686125615560661857519956055930629398815717579935142218644071941736490719241613388621126971319696470919362692259276948298545364491495700074237612921292323603059666213592836282030699078808805121999668602774249656057464090508451435391049329139042533888425127709057601151184202035456414506444449010782789988848064713687008437520793992285780285701935342047444621277648009115981826616958788590973656478940478393707173135728739982258573969020772103809942881150464298883094494924044454786736122123022757039653886908685660888787876553698707415515085755293984122031653671140160654242065181334701429717868628670228011430701444166916167408653114353654457479799883948581817609375813386343333766617590533780736693573536015267528790695641189650202033357210733808899466309610824372068623219302146718458363890870185241132918134328309751658628358280202853556305480095571599558325799607323989738578565005477674779670391511090498756921023825514333579995503673019820745821900048749242699574152979899086871730421524738275240605907082474257011227827457923509399633736718748180532743112051847120267847752090083386487213036785571691640260973226149453488810879080462204228447443664633582506205040162132348507672215523386627142706739184529675331976786346613712332199826656324363253366584763432108359049298720949239937137608280943995034189114830381557471417815582502354265757912628486784371343155896204842120816185495628236737048853740157449627008784538419610019322843303524871055429251799693607056020190735343294620200760125597130168609441851620616476085551846144876972496857133764564642265819585524867635352967726260535000581788607462909068917526820412288909095288680657992594083431707378728903935760603340051018821569837572695459982616629797985048729238902148392184686728837823176595598630167461057061452447871707592731394688115384327328803663579557186911467421331077290560641179468704062823097815597991610013305617535996145778201905108781691083955185858115063483858963419324922410193373533868258017796347254924333494395334730820885110761001964768083535296972651752073636555109093550722826878055582945243735371092001721142032119241345654770286804415288981070394585867219999501557324809985828194705024327685371858222513954169772255381863207594062400601675013526763846181889905087656080770760648280117905622650257124989422317711154451793301415613391928780461260065836748114701492495860181866301348152830500412365295448474450072925152423376273106209782725047566006236392151527866635763789648977520106418632857680755744966281155830213771430835212585038748739304921858587305438535772577496164601249484410256647519947148391522286781639346730050524089814533604148559961349394499994770839944506945155445022492199442021619793842267373753937949623226722285386802475335992517555079881065308514115936620972306881304320027523510115839808536726783823064467514773273496439737139179620642893007605272972440367388052216300601254688013262847559657881408164795058289966536403626387157525524279608560275538334078225985537964819592395081870746511589622793041374272458137109722467964276377544135618759237937290070250924878261605946271580880382698518389682685235056342451863346113220824571685956629036159071770888237758178297442853120871778920873080686496575250826823948868355830601480948120322550726054447216280485949320085336900741567702025639774804003670719931277967574979857043224013030351234337938411197029821661280096114167486792059034433006092038120712326962151602480745000482531612025714165395295967942096933352257598429892410112481128165009278907356034810567795424425760213014727289280406159580145217603954999382053439349706018116900562565772658749355825510453805442073938723186726924108085068952040829136324210989199215280714404684523438266010285541069807184064568925394578331055032312455345826601252528421034592986401363407261523462532886236137271284150829779267026196621568475477119241247250177529789667783797125311377925725327149623459551606709309460248921895919703902748401517771378917485996929435032616528499739142563969974472209628175982733865805411431972011695205571358490259003358825035396693880684900126935043592850977290715042157460821239398530558487914547802322044624087886664370552290220175139973223288678688038347042997299571673161783609680959438033046472501079062140132769707243973779291518019335822269299611160683719509832155263506426881587033357810251024412791004360908528232436526111062921624705504001152899061130002871383312993450073891829456956505464863326564296251020119435375386901276687756161310361050108737970839911128062631653520533326067434790820360718112784142958983784217821426834929419438602025449855900611137561912900764830788609371274075536297148248568635049773042127667648264649560178876056031757502121612496803302035444245441511533298508888192240343398638539813298479095892099340934085215655450208601070983897606342985245190555125570882866159831629215231031981629653153317872470778701507131165744503140874924406026251013909933974649070791255336216402755828694414459466036476442893242431384106299071599920110555737871414553955684307954164748918409887970947592268171447927698488463099706599751824296972680418944417287114578579024252843158405926878607314748342291176568696779061878189963891431780290095995944376135533285079635969139689524594947120983849474935097727485840661592858281893412623595037678890957507500480316979192927775562355179533285337824270619789568214036878822256701559783990423076903428696451205760620783029133928731582049336046882471967250005131875296952360507990072268215013972431745278383931053698839404064304466033582206341013697808660383921758509491453718196397670500624601091814374473901128622026150385171539507502465700305427489989986632106446923470524485266358419869215485060736373635970103700820045499135530234227683615660923718376237661323071794294035051620589837880575761639563189651328333799108098628743715032183337937481271006919655660981024550343720431975792380163893383788497280096200674952639522924552530003915132865200430494808400441676166357256110336090890357870266660457411866011239153570922307993506275634358669412124140690200098429728859971055262046007359616597124624587280019214922823745704770055555223507901007425779641745666421813760767728021416763431176633476092805124487517986175014697651109231401998502475210555143218320324683862236386980214973252917268081826916022640145198571598986306364769384673462437353362122945267400297366321892755776313361433052212983732893624168380976631121784390646592131852765757542452149706408572612694855555151694419169634563494851895549099861854707492170919397215014181583554915177803493082841627853032003711388766971247016453052962514625354808846593732198132460404700507874553157774453012722167870969923965194481002766772452209826138895761193998258213505953906108253438307384613766434248142635030356353280882554565828695145688348344389864084706996158155355657093597852981815412281024931162677166475542324543736455209716055534344760049579913059586066547480919699758523696391054306053299698617774555702748403160511015000927509830541778820701652887805648588835393009663784141645146430654160945346492749719443088430190083243450010711224850958462363311559565403500102538107765487088903824482105960217567469170761266444651549744820261769359921590010846789424863080931109744521680530599687470719493341482127894602404789986782270860395217898191152575910924409490610821941572188245138787525105378779992750563508926517782275699283904072625943009940683658411506015542740854969171093225533351399055771430122456225359209089289954878901688738794414981766740919472190858532075881342435241468440946942873442303467981486932066690547644081879075643327809690737431561065400350336256344104554056116584256661946413156995920281660954660404043307842960942336428006764252024688437903702664327383752673444566774360447591172345544312137512998716053494178990624074624805917515454214501015259350185794979677091494277629876776187535917697665693353620075264400558272233782574612419177510398969828500878046291161247029359770415712278682084150599899003507649056813531544960105058378252154072295847814120922607738836858332569915595827625743699100895388635258579158154629740992889295565810872246879891444339328678006124344797049409511498725372216207121828147224720560791632035468453582705399969956173342655643802139344413441781432747347458571334336964504566883634524530004149418719459219484336580518388472852895732812318742723572081746464906156807088101174985927243048800304705360659826362448722181336220584427696347899255367395689161759560083127512536373114862891828853199647740513065287390111602795147240376520467967527572094612954884943477068473583886574086298796841386854129038445673491791947243547373577962973109501363685634098652485123074424925486001220483463776965774869823809907533872473810161633104522018148205171024549027040321103931752914123585900613219958071152352465327308245187455190176321232392660919553605337933941481022223920430585099111278122083417299854285324888997493781377149242350646220604970162272257555927202823045246168144832779459577268405740735243872632512177386078725223739508292068258624582958286602422370091641145322515623508672835702592065793793580717231657825310264002591649486575851561663240059633743322405836357689136380996606783331520553819429817545186286239527622246426426761932200572609407080074537976602069321506604806547092367002545547809374312963446995119364570227770428949198747314651599917434466366431152703209631814474396846660701703865683892904137261451792052830377980015967332211262139211109269437324265147451532902567797789786279168007426457001776585877276441102488175387095502866366285702631304326182167559973407551630874118481015994778546171992758064208007645039393096765010791279645756176777172313252870877118564365479815572132267131671034283337502648092327092794693618754237171323743211882013104013257754206155347774738095493302956052863142992396761724259517652596037853677004865430205037905560798497617984976754852229656890866878862727228816635729965074212178167101318446489839792745841046091740195535945218077264960164856589633127651777256587055663862467702202973067161904964760175553191743069427296380243999015786258795403804292501039962284236096579961742566414610828782467130865386722519747486475160037191223164329373613721418190451445398538129030657845525777681906421502086639354601117976077314460169807722149462018215475418346815698669749522143748395574360990937730628569538919333632277884147783147016358795275705807090366941321434646721421620873597452407196344419139871572266495623520912489482903291737923475390647902064059689445858181883163725056971508249547210011430612911212796492461448149452673204611809483177953710626138560659281107487802047445339466878405823283084368252349828787878723104380127584326528875932890559713908709489343291878936358752309503197241494331147802681514328645709073399000646460304594591932175490547053317780363061108023837904132610217065423977768286739489552343409114590980321800742174826630803310943203510224497654058743052687218717511941262182496407053305819760578030758724139895291925934464883286421322089511972857058085172912608097008970995887380884261281947562746814442658908170193970695114201158900969329212635055878691414422507111789576412606821203649731588155850616088636087609145410649358397382046054976991260664869741727460455620073077997025851000427207211190438322659934125585254218741031547322259605089037109905124346378284634845172903396094077545966357132459100961756763029023480504605636796417009621159392723484723154635934305942047878391654455907223041721402185485729296347299206902594182993433563283374619158931099366651490270631455346378192132910495364916167968633686620280920590928177169636016432038717636110189152647442437196853402434141040966015175233063101005427660172999592407986052657981817035438372244189708677491155714139590504587071241318866159966720310611786784238817542900081730679000770076910331594768471274805145745012416960942122068563871719203334477014312778358428303612558669722799227600553023795754766876108169953269680779921056242198713776427483934593400770564856824734564374292896286732430071327569721178286342863180307846080543896703122565204815726550590173590318065618665763697901334100388048100426918537388288393764140930372369738882559938015301602765093895222562548658203110829663871847889791925727351648652994821211128582237785207552579470411165167098301067388636802065032351221422566629020838518497397969219459740399672259293570084223216544494338101694044001464217270436903725308849772967616083826795289327244373323332460130592584153258528018542292697550504851231651320117445020063422897574979074186647609056661313606066440044968969697212349015160103161691153912636141154812019175440384297310648061380667240679453841987763090520418186455398856001605808208530346674199922554838143891426886039051307311340207810322056539906675658811834697124731849574210492598204123300698106660267266711696986925236996725712083960758106599060488550652559453746533370816312519731527315099997994543164744803653052545522585838843703653135848914496887615578098654561687941532633343292732632005480732988292692523956547035274150938764856434363473639056006758434295779253318528562866308026045643506051869466396882768368303391132105827131669010536965894843353034394424917499437032897561269118496786675396745756918673960184265955632586698247362632808326013041622007837763962863535663722658247741018746398460913781797021993624669433787561051423091603496737482753218542447344046986722814462197334456906559322604513631677572276976175152951313685227957989500063086648583338358879170854878326140081434318685536432540900592565775696365794515185243227890604661143245633459438333635555708743837768195479358597783206072790896851046376629561175361129876481100581050628573833021491418969175732364079223940038761018773068820804520987063069665011545608978239558975650821895298053734294241239025161320915068352562360643229146350152926876256308839547958673606574040467597603190075156026286994491769911033254919036462191565489658363878526176254475910304043111983313367489637354305033470837868025988572971423570280320308651757777636626671414358456262372031729291827115658477385191493002681144009361798336375981553692131194616541151993329792365836354700798531153404437551172697653606369634960745709208910153884541024742189227367753929015254514876178265326992234093458834443606532356957483067475863959823738062392209697911303750092472776748120961480014836982845866882539992254174831248779909843213888058066575280496316938509281661241484204855904365375260557067208866019837147246948855906002346295668074869276448530988945777025255927655136843481797837680312522006201165499621938376824638114283942757573358775707616656887162930170018370150183710395854417950429051793028426298424052204885287687017992868810223410809450030874343238609852022593583939779916995141480658359577079153360421522477570541381583059805172426820302391389961878553314937010018173759943534051799482846602724271389232420663582213735640255563916124604359314445647716177866866219075699419354521024055957858709626247578237422408723073946637423015115630807962125507698184341575221302013166985311539109517086258592117075346833924898471142457857970929970095577749053693445893021962862232942707370913938488090580763601623358850707116507059220903422702768367440471779518562158464237853809484391702154030916967118014483350415350152398578786248240022863505124509787530133362927489565881013559983576664132584186768819941826558770925409282025365756890916920648701645652031351912023088447792142018232383481258192523062906405913889072670048017050238028310754987743595158610958478458204717232047821419359564352300682408293316769495863783243373629213297448576488445727694223181462916904038740784342539986547618600703163787244496872408393259030407246300688392527437834320999780031007394854325596199591305431833800668084217007647172117108083147313042201017879602727695518486931563000038647395859647512708180620202911281013372150482991415981465296592513913475870637105740984625317445175515929826926313019563163278023172545116337528049349478213609651767830549119371709810834938941184111728452961564504339530580776362310393940021474620213824867065613243912892408055084364894505142562230869827011391775839520659478505746967206455657639948900823506165158225565200555796691516136075405962475926530219315383957703770918635363344128644336041922563641143092881385230927858644517927850386204597542368888150965913430139335350472349651327867496158750834395837196203126669839787897116632211286759597529257421038357996509963160278725067226121470749202825494016182727916804905828715215622649998606310950999171987955150379163544412158335771216658935147063557670774177455965046723469454445248778458271464984039905889737207190336078242914235439200614369604317659974379932847178302267780133277821692301466942679873820594282661912935915550241534659859716266438807886448062050279682904455324822018847278226014288024076614485697222371000494062350674316122741711142021592211570174269652208795884730735033377786843630900466032245551832580310406736353432215313256371953335646315412864393601892189735346291253323333891122035793313455212024376390413029200165188889232334403531933367434152687761776111174702266205540216938347703591864563743276148501609736069422327089308607225875039556213370209528527353177977315724476882687105018858384863039847390144310214636164483879364810692156136003580721472419463903076299621691210963202978789883584021172152815430062371612253285159802246433991570443722024644840539304518739429753938795881825815778171893391203385805833591447523824338459959936562998642178735541514331313377733241353439458095459787784886429886558690531155543771295866335954955920668668577694628692434141974371848682290803852501750620796430006123119146765019569729553334365643626938747146871714052440922880724819709970010298537210906476202665190151089449192159380568240426536818619821561269994572756486799464215799287829129083245770290909394312383347883415365341888408352149658397378248332578501210947675253707258092841993390656771104604298884468811126935015712428077052996412608756182246277559805968030382519629276633870099886530770620542965884164696345591633462835642275673914571781582360311976130648510010157504833030154770302491248535410412867236140306031098349430425067285756089151409672762435903364564307491542474254059150845773248437634216808202852072595557958941675923129498538571039827315751469592829773366492648873982104721127762546030868318566297528787714424385018991417928230916621968644740854954015857375029628552674287372648052720244116343425544291700571631803924242276210931840189579542060483531936162253735381429531430785253308147812045578155571523993259521478795622178433397101762017345750034375046620133042414462151114869950426685552171910185262342140921878596694363227555129650993284624716694708031896836340029746673701764473427552726213171859683344751368681813276114950659644366300319556094875629789553225745714956690143728768706478163327939054276144749325362371974192670057766902686266425626088989982012057934926592812602550854364029026921121509072591968524973435083718315581034376731936819376536706717274969210859183308824058934625476797100626860295158177455830115793702824731391147386204076255741738014903506856061259796793063294355409429380041815640007076130075926793311261104284337747706669506693717831315567755353616145177698071436066282269672035887426142945405175390023029469569998326300451242047045045527328386198331781520003824904847794211792678398582650955002373020763311245160099150755007601964345824837757030436165153733364345907750639479875369456718733037166639725355008343159151892198479029219700501294339949570671150484079399450120256568179765596114481120929933105911225034785992142835622524850388002898353419049400711771931121130717962409362878013075878453668699614135486271003600750793954306732703736174672646717212329456789507275669597745628085120230477070505117208513422935342795649753485784433574206002892952641607319014347585114120356910175199319424272210273389129535795331724390419592833741522546851074427748314878926369160857807930305359014060162192682530265309807459500678630325596620504874093175348477543016697409925823301806975932328567426213596776085475257805605396880003244309000425155019060379449983293845229926936289598267835862428095229881133017270023200724208815113725732110353685582212702478465355993074747067827654259179918439115411502208293307749258950294842996022677709323981603331918211680594978658091077234268648570726238517624869166305687440613510670928647331627464422512380368768470351891205132023999158743610439622712383225781529440390203536020933739191149988188052506873337210927007623310735888527641448900288612476854229864742077875874539558424177101421271522039801426990158806628570988057170669390661906903839737440153107932039771274766966005235054333738192298976714214491917439716489263052927490811588855806958731606178494591691335020180992855067928872598465889679953606692207619854107456862896676884377735027571541775693759308175237274795315394112679619035049651624575897223932625391686215610458922611228999449544553186315026497329888967944207682156105940728402460139245550763109634853444541619512655555400156267289301341725474261091261081520946866256290361685737304611262080764959322815470544830377503511347698848019025948303315818620060887078018481708426164768340482473633512851170910962210573190950226868606609098318347407350429928393742861568633323604382087094260763964893300283409105366920213102221196968365867274560153129776517151183649532304670225441932352928673901643587304707448124431252703415797224272067089797211746325634858996907176554986493461326903812010512798654252214573097813228208365707607380050367561315036555164267868437241690655562517279834906175869631762303229669645966076985711179553344107082615503943408270743961988793513627237439087907454814083186216651674174971766864210875274837423023477127202867189691470943067636953255285550797981563279957363872370541335219111881881915997814561230853704836058489914723122040539677271963041708808021723976125906337394764734226207643086750556046072053889046910366775709707908970521372322113646476134023183061260694039120279897948400098116406928795025114744201715500978925343001603389974140059260682072620973881060936296099225855166066184587101173050040982911351844536392604813813715340011572727658830498040391504087812182836779274443908740579091424309049869725489556999997685507352784286592955514937906074037563049095191410462279513883576477403636200554970290375821104406427100628690218584250834731140095073133517443229570708229140961225824352884680794167664374900949458402528654264995475064667640705423991351515763519164491832958715725742961113935304572970690064957736803201865756169123508829609324078992648763326933398452313827809515419818884812817812769800119885474225627951799264719498940838620269735522855900812216819507947001795903182303581131249192467513045138450693245275941257007577552171451485933803958451293973232424551802100530793930763083998392820178674982785068950203266195676769500779384775965703924828360713261571106503833306005323026595298124413242506694663413487940194706217040719279473403434273841495003519732752537421076728289327851838324052520194678361955375725340872783918003665228848815705159181907633594202112305890828972073649519071962567085941148216750097042339022053206793440915575334308141290468561623591722913257660037333932938359319174500047887388160711155511768400904292133740181138339902483727227642211555644048315196414145164945394267001792130786890395462459624347210633413834898355230683742111302110613713319104428516809395680363250711801912877643304921639820889856125213676243198409043794080140231662231519663325253678500339080592121728688442712452260036211086903065933084044669202741471547990398338408669480638943853330399196845282552015387985185362001805785817912788288849159605926426985895403398924055242096594304622207690681586048525395674325452567215745891739703895861513595631415528593359011295369399389790211247060577990053030786153643063858287045195581991491302540836331315922277874452870479872706854600402690758258359419858425114751102469755114751007026709772806380223167498867056327398845374941200988482645607721637433072298252394181880971884703831130820692253425116060945431924127151876036263826822198412445823118397506500062983127036488112388809896167873025398330684133314990086539924601304280591880801090027701242360017617236538541063336817683048710763762827850153935247139447715908542757419881155228134030846946711104382711454886911980629107370639527903874124421992618869091781113272707226803963690552781945592606425103189497960982406969118071394794941134340452728781721862161136431228178171146410379803360720672872600758349868920915798822892822003980061851300391813097438523128871705155509070155355758024252982672121232946464635444723031758464252660977434331482134868381914113894841408442214050709517290652128725280114870243171831378136855890491225531180544881187948874007008108290933298879686131982009074716356982926060903225091652610508630008723158807754338242205943930741000872074024429251645446706498160814958170418064718601396504088229227114133210486811274287680719140167212758527410090431072291990255822137306705212869155010148432476979496405746184737937712517731212218787401773979631020754895691209977470121282453609842930997794022826552086370592157153448765452782624148778796051114177064220781428558458464655696331401231798503468112303175590392432175482302565023045367559275320455591565463158747938385487460642216409946847170264563279556260628602122189029090273325340317485876850803098841808548093180592355545668304233540732125473786639481686758072475941575687679923528559710962477537357849783538134085224397004260758556857724843365191950314601437403654106320675575516470758666509394697333026083845242426205822475100345561748435724874299880636778110417982526631726505240766047199076217610421454592783013137194502490810591813772080860161705126985472490919624104497092565255178667366010168459456644520590945511792418327798728465063955748706527330271932035053890630475436178643888399292288951799398287265904543114162598102420146945351095376834473261798227280095009319674553513233733489327627974148244982863341190707413963390423005671308333749697557071143666865719625874012326066745579480936353638117922719429093691563002189727650918131649701437726486167812283243402811500533011117363138558587853726858470403109541065655671627229831612976207390061174488794828848508819250540308970034252896989794496359325537499258012545406794794432767026729021210995484376979282988943419335638287757654843980687240452126629610145834819242306633978347375167749124970271284412223697215420765350329993723651688208768570495830020040078027780470198451021545434072723166632890148036109007430460441969049845946286063042054043027029587430056338587861144009560885490208404589944479465660088682474537889275803493244320399687527891582416297999508771988596874938451642474621101018502226055851297300696757048186584806213429843446126862587437452066307416033736176973387110524983369643752338311191996872235864004532457017605793763709586062420787447011285647229621344820367242568295214684474933692842779558312821140140965976740408329011594383148856003817287700420426477318906855451188464218688587507272749291046317895582647698355921572246204081731226529063943821168523984165394843477806188343489490417368227436175430863113384961650559734754967273269286191363080868765480609984344816044081544560175875844131447750120510294171739123990386883846848368046472718065040482824286801223707619928114883843183960998563845795169379991454244659869266145827726413717119013757137058920199292878434501623199281425659325716979090636697597966558779656168398364092169644777333556554137878119377366462283419683900145533720784832111647307259681355469545598857718771167550303660015435442954833082595527710780001836579809635519244721262231910923485152343000149979966300844990495875817791533065001975429902188302531513650169336412250990504789857241767283826564101664654363717456900802911656933655343353536331319737602927157109340387061212459862239334721953502132192282843750092139327170230770287180974605013722113428610455852489292307571980254760587883351326010926967816948856214521130341907195612371181145196333402987185666068413011754675441978975731936428470296485148959512121234523159927518926822806122989438149838225514964023054335991619388992446515917946364746664312528767868845671707554146809900229810237557877939289928199851466577549275100631633085151658061114591148678183708661023126516386893235224586058523491542716705285184494502827231329415312107550240546386389931834531469011019968160416345586517693599930960358661239364186519333717639774007543890389081993818201869813642207687772150623194864969994318202187657352593676355374241229631364293835173516012481942663464157324346990724120020432912216913851700848127458469582930470762568673447419506305493791688725407597341981784194032555545929880413363697013859406887231592157133354650219601099200395865010724195341114426917019249020111880380563580792104114169595271322498474760345777726200372737243359469865707949800571361228210780043765899393850404040245744164261822054512747829650325470674521904528599536721351878860269766281909010309558268149404865612559838699375141066137462816116828302347100199658425552133180925686413747073417656199966198252066469987417198857746622701572750666444025336152661497806839619314276878822711500023652709499483747381260663771844964512812409717924907275942976523499185990005697482389749236739307519650476312597191816754089009490138854598257212681957295991553662980556374075974886570254677192841111153968354660431869980161169624930202423122614236877682679812800598649925975586077077757787212611940887545490833558439287358635855840513777500973662955201294634459170384264151388108615939254984758336314814384534030389691443090482410622676221854997158793062096946841549572500349828369742882210514575245690693700336208949015886288151412249686980747233699752150244125238037623600956420776895939598986004596988827788806233627927282532287911676885684015829317510522935988488284549546475039960510369195762021477918905573328191389366416654019029165695298302668171261084922378048033298760659465425991588971004563195708049578286275776786287182188719307165751437749616768798675846583088074625748062150964197040504560851950017530035762348399923044488870590272859086211919219768531618912090261125706608615405838493919107264898386631145539935530542040855664276598787994567838584271827648309361354544284434318149236120067938705110653561396756557129259065059845953117424982249337536520119619695001452561524904612810588230497676398195185338526763018404928537314358537025730124284141296816701921601824490013685331055697781478457037572310015273523892628913501718518926894130064183771199109749792736108875298908800718688787499678668907337610038728507007517746750510422725798958818380218230249596770548394604899681027579473991162000906097718369735716406946336123267002096896612448551592985329599858268086980240090420719155194208897415653507738799860222439342862000772465869100833221179773589082420191938957614229062961517711077466225621369657237802634024112456439116101461289472027307354609509730930798166698688958078911602394685029529050439200705806695648995130503239061543911994937391626841247148370804305281468805345636343588300854657262196407286754663473966361293659129509555684095186253322438510110252973183577266975218565867491715272473263741045027915494050380923575490234436224772115058172688835028122032952156135537787368037255688016571423675645021768779562740780879741907040196509416028151293377013107100779371798932851603634860040286798928665310639023514798587626340676464117315914869295030296937307019395460368821692149395195904442977188856833585673317430558117306728680766284346319902971685058555462389360058776158343335462151667277801884557952694389152798785967645281468613864009048258127691936371579013413389412715760108659920630847896404256988187919972795018343070811245252744558751124858295733339547650818468855040403044391140246874723240949027845436026211121191911027924813357288652879754142497882883277154440517434113131906673709300334861724858393753892418109912472340634803627485638545286644643145329358835682497483339006421468511015043509659476921100452765337037798648189275232732844958254910124287045448716925552944675045540961767873614807878333558734325463562611724617084951692095284416985237984647314798185797223090164673949457573077878966096895256430166825505166645453597190367973278635417700691016854077477638014553111728093466402558725864702450574993201893905630142625216405286174380723991216522768198019663457770728382762257960069697161884041079117074241498142541797441710392624558308868766210822988272880764557045242462917731028385190815384457460439195824175472755918343520785661859142848026976228709471273184351700982008506196040935842756127102446890441322420220104110388916050994211282543295414466455231960769350655985158485165421195386222517153243069326191484769770505779272239681773234777086842338365493480393037331852808840781452396550410241161751001861038271179517803431432182242593341136683073872938660035236821005405114302437094613066448779073568995790349755251335498580100358872696592987544634560654452242172278199167571526796286692235574420653683447512031225488830631042812147430256650615249592409706476862373642426565221638838223448518736512428490126088774688557077853928737079199553248646983389754313371127782976109325905980500280511271539863014495634891555947105275334756981385620774546814079228098215927100137005763930236851199545976226636411534086693273188639251770818426577121688203006466180313548791300628204731158885917009749775092878363402256747742064330354315011233028393100013646748718143839885619493215197645193159285685954920676629997435229784902020334280721560295945404340895987634268579544319882262807446663073458592155897869217853596816826282821540128732423894844962752230032811919421125983131686987314574325819679067710124822494419852954148072592902778410426731902501764509555029257219244091407566221700565129934098284905454918001755311804671956347649276653965974562202823046413049915765478738008724722988838549182111687103119764402643761854666166303568378869066218958822690674437323897929554667155526133430113993557477167481960778620771344821762904999815015957175378035085067898047290691898515372123285101182797341979949433972998564193405051501387537422957808263223229744109214532184839136624017240590235774716009730367536036646848730511454149251034039904463212660315886011735320464248192120905974299918820466157752460503670523815733921142452927835755572404099030834159134891433532883412300227939546729231365851812985502626557995456656626219184308888645965197360020333762939844107365193292526520801755749358629490615533061340749627066541950164633049879169161872377321159416021839409523260632122393052725259434933104166757156031967593387740552175174442131097756581590140655782801584935146909261798344458367919616206345219232222154572158919557220935234951505255828198826617124705738909823855349681446425733795343230100273800826064088941990451674790128335339995571439413583794170477041337913391748802728065258128332359861123410553836563550649075855379798695718830402632459490078962185212428611239599987277790455019640508379872594334601746493915963159993175611368454858351156215414570956701263543288664603290079947261320531092404881343737123362415009132661033848091698777786244306190419500358367271629047280387856035488473817197477286537436263273528756013676712737670900978674552232702147687998704320610375007559474797301113390180827749217263941736572127855753800581077217408109698092369333589055052687295095277501103938145810352531914783653642939769501581008835222600726037665519708473349716284015393316181595497134027297950719495819855779334216726590153786552420297007706226192426900255829472222060242314705526811606536044549319462323112831458574023788642042156931629449930681526323363924966111734497122231831496662323100857362202238442279734598220174079271933724748501637414672285677345963259429380936606573750979973120808163815429958097022293279771846224521361492303184442701641744200864035977487180509533603184486240853997182228359539413901698203502922636155576050721935092035065147044443621377768606842401306937776833463578265848010908109910291038777876352619443827840788839910272100586714367852711227490072844628374306578530664725934864087349077320171291926040637617574385603953673488735306423163910854642514799030492288532221867088024157825523609098119207433578745383793464319911213194722358798025249434528506745013232345785330753764484123297797700607285537443860425452948141747190706994635863793452686481207973850067932342266537536614482736710685118275487175012912818241126224457362281186187011175029425924963683356112180076643330873668960908787899957569218756765986035780917239401991029149771362137262718356607037724661470344699643635475515448016714050796279460488284679125950016531699480018435726420440118908372263253917918436900347032240079016216672160202176152990299021920877461404296397109826785278808860379902907708071524823357065595659181272432068026349420796622073616497866114084098209266313015003723926382492183194367623235863210586104307545067104057835174621103486839424496011118629418901548026401600685702091598062451491591904108997277297160787324350695379141620334674460289474317964920244308684274252555292234329580680879514867230425401247824173468461379380990730678505832990838987787410677755309866568670181566182018914936224456283836797219074760617598785028242964040385522108678802529122092685784638410548890059662086430296193406565116126340260708532418873694301068579642530810436196191410418998507034780160953248210184253596793286950546838566321962472334664930803160463600985699170822463492590698012907284627279625019309624940480431185568025988629273993577502830996221846121532955108364269913042226670481441392980492687734601468391561455472278200092738891346872757271469427490406552625666179912980909635079992121349902232122538806554229593869633981895754640067219719864358523438613052517442881590821614223160031116432351040584660106587056792840674940453155408248381208454577417387596088320607177807261035060535876475837763482056898724765615344658921290807786992399748968757679053628031442934867931372529969650010806737518381341808733747454658282256015935000835142187562937714448594081409807134283138089476625194066278343141546092904262234315126840529361764753539791756326459095262407724927129429505738036587961436071472416729459837967288011176148775522101121844780947623979926620158071404672081628508236650178768702055365348403455885442450567447825556289511870935826451090047556471535317320304655071465682647447139118143303046998920019294199018485669171225580446392675415816869749483942447287367681004441148892922211775366495230851702225354787516834986151614611754854678004852088423198613248127909362633816038093812130941361673498694162848952803744199833250893280329663078268378479440113361736641119853207258935671636287484583024066553748866300058146939060614334696556286648448001522652616640595848944839228166298674381199969860208460707310705625427382864368105930044945169328556228831582293542934506549595155626272702773249979031718456456227719896069329225534902455737305271544499832670674501187966107514143925727789904978542268924559432418127809791158933353332673182346128518458630423923855310580419093301687251510502925465790193621132388272934371949077939343731598602864922520616663694529793822696788262330093279186389196353797274717534406444791813418205200519813838897631138888349293288645090156499607726753137813583936824606897418699355378680743300352837112476540814224466339529512462243852315724026900748802270539732900627573956553662651539941706148609705972400369647435813492531564391649576548190806118142556749060960039152487404308301805689878450467185846104190056272120344194439844478446019217072217880458821266455320000706273825873588848691471125394102864141527055900714606934690086450966535722677156126969971737745163127543938764531055269931825668861237011624834126223646905643763764649611308585941347301627184196049200239155832873368258767744093359597116969388688449900483677327561010859739647481064767071311220477531398118700074795894569897106661066304628317276531697690661332008363480602762005060524829302699418947488458957655040469817236104959436383886602965387888163256499873356150161019825882845456790972141338288970689888621706801136575920434669098557117219394059825059447689950178399926378990532664856458016388251191774792469933802349094548869601441909205645041902685182793927516423323769404774793233959433873153813698616609721653160778558773479909850797744763998432600789991990385709743161922757540636020543821165260717190969240615039792631519627450427161494891219990200111197278296078443636023044560653274420263355612790785645014925453344107400376438269613286703695146683640639960603135000583391898181014373431465585878069820179928441846700243176214432402784733327467750552104661324818804413386520353167371484401853020228387119355564219620974539108533928287703287827406891339027128686299921896339074390967219539823245796245943777344896754084508992493048683359506628601537829700445343301745818271817144944993108420340464336513364097930778095696078463471262368404844203340748700797318240855042351517201255085995896876330451778387229267302536494072167626031415994877776787732496989229417419019305037384049268019991177138249464756364417868166408288810420652030825527261455851713231349872460896849273108101831945274277311072359242910223862886900367092082239440458814304388484373118991691975170151175622264558438225138710301564252881546116451332488874296598108615156901970104495039760369460908061367087346641113372005004995213651470062057499434720715508750614038928712755369436405939421382234006092003047988333997814471220359459448143732840559471648387521739892509654450229736080717408193417879613511117821579824297145121641437975530494060698200535830364078484879509125039686920849221305598168938286521700261071133778698460878352456355835784061581979387158942418282743186585655891722599439412235309989679878259171461422929767654926165818557384230805978396431912053732627963132611858815083042846748370731554010547368113668604456569775179195591943715026889722461875283109885010535469314741479177083787814969382973715533383425194408009370717727933613369249311387737778782825558129259674560504935382885885347665378202163882867585560478641943175796520778438415139245717113068814684572041637454197031419011240068750913561465164491006465464776308006061478096313220402040793094680297458021651889906138043884854965522648202588245537897237691175385511184512079830503991735636787414664620095975058944174673648331845946653220330086952550078397572667024547409294689995253498997106327948492995970688168096012640338885908601888153501444577416358848233718232927723665702358395723078191282659687546480266250716169392808811553972469889217387161154792630683834529596315243775470547036047869332387735115426292306618733480514306208576085652529071529300678588501650726291145449377489687133593277692960282531251710614145019365146512581460535543244715927807831903673930659448202860112546792577810207415545107404341942875349357133454301619843368858620248517917808956522337148348152285843407842920462785113548400281552060892069921208910450276041441943402460787964956638904742557046678013729620736177446068774881337692777635770943178225216508225609015662254160919278497199885180548636900818061706108260452140370233507188522759327567935906007958558123820614998970932176885553556211114806599162428877248465714918058421204677883078687708993955208379956153609329706728316471576594375735242889250252791776966416921152247669808916847387795477064790783100172400326457722607144874725415932850667527005249742497721257594840066181707182178678758665379846717233932323634579422517317872693239126737469745757376405273639805843606839114587774732997489992325401348656409690079043740106341951060866901353813305049176352472014677475888228351643123485278986862896328896405323846659190699659645778638508257960550663006283866308348026904498821546272844121089001659394631256098868113161664244047072112594561158387599815433548399685558951666208189454348093970667204950629536148447693371809429599909120628931089623257560564407455070617934782845215024876823927028696033555916531504300860754967284331131777731426368225176325627879404286008760467750978291010525684621873851419726923792900743971335499017703285671945285180379033529197777414186966601269267386824255050297640965672574425470865258868629139455661437246379859258722092118614938644165718301024586701795185321801389937120037862422413935140198209821188228879536531289420139838180749079054817674916578522783030839969709665736008621218477069460985271999072332011014721596259398874451748193788593686802210311505564634639648829929115275205112003956026291170927782609064706864779219414575830642612260943987080190913497400880097271131478409200285092823579056039902771210718442261779800026204708526993187340678406051113187237468370980543434995801743652371293874857279989047844131453528690900335953532326539343646189252978767400672150923226239805480889768814975547239333705957003410057743184019079575432643981401930692502685201834001039292540333791048012696456434958997132753546654302422123843107170778975629489113300884957857840176917489677430490757726418398562084312410677188673096109322886711621147794660721047464917085292437197833573597369985778340382114102833311259006482020337561533020806675454396461710608332443442421300780168338113344873329838791588117100930259338288197097236237805141607724147411697042491219569478873058196793399415623587588866019744825594562512603988866200125734341215806131944962325550849965597569196261705030902173327350094820219017628949236816936568835594205681312775393631774479002000398586270614906260718267451651879271670558437740007911930538587498298537717643896030777211433347476411929621129397678289080230443271245899374215897135730651322650912754818092628405668055269484945660813778849831177341704676378681282475237937482314290171087085032361103275190517016479028602026220203813399171270394808804515509693931452414785687225637607636797656650356574753911725319444657594338497653853554857742277612337661348533270999506201776497609164790710299200444444044788388580810499658011497941420335106906463982277642117919876372956624966402635941595320497360171495718576968415820905206482304892318436454433212717751533499238135246317498227286074715484226309236540503925171578443622662623467967246539635148073950275690496365308561694048855455084900042575211830697684105661871566079201865839848052110179489304161528971681775867499805570405111998417369401780967744918427964971557129237593639105778309231577821814727029829794851946583163123839701039857865600457129967576856381404539441447039018042096807454739239182804066634075451249894497343177602401694500220896223132742719227858752077177626370116817683875321991012306861957996425130382208801290905897905103465236025274668813758664883539503600084342609382482067316140749190905802540577113742470147261082429598461711317476967156948091591678961008327110050457023462097213259712295213630545100958403141880150451138936471831079189123679420365190868561410756182253703887880962834560351676580632840317762080831348810308796165533229915120367196675948319516425522073675911779997618491433336201232251184820518016214162554625959212049280380924642847363061942919621590922979555791221389169270553804556640926853892699568644682854681906632459830973466597620807835083131173895599997290455863914238795219617362871170410977842712503667156583711997681438755077059927986388255657234909913437963860916281897689042193865149156436715237614467955720212894541716665767937037696186885956344503357141517298285966662735416120223502944430216757107555979321461274945055867238975568687999065986799348580659053647915342174130132966161117184794654042552657151135836574681857198427044364586356832376724639673244782271147519089217369144785415791200307293437243565123431350607119443393887489991170757102291725100167217213737031101930425505189636313398265494150732014644892655618576412320531424852427795340908050032781316421299499453588934178509899721017346534058836992895588657144143654836564275321610752981109855469388057353257093927229475174525650389496927917422089676884324180838226255531634446493661637329520380888891294406522425906290789928061523077174926903611325788296723919302602003642292805285207201390080277647219325767129610149483996503621950261487992635479628876065330067999352041575446040723345628212943382666040183684331274646774545885389524289778973169541617678804225730256748358907859703820456003736142665913431216054941264054640827516815080868735352543328005058489612593609778839536262721038218169112426996984563649433295336338348616573521997940181787820550247850249382105243298688543927554366956987412125494704605354915997857561241122775687243370618889057030214701587138345505039114404114379228971312098997797638795986525813277767074501859873887678424174700567970250439253579088496534034858332077702618132851562804018456063534227076879265178650498310158965251482133902843710869050843937655311200427932204918510470747217979010188655824392951211163339045418150649615165633131434934820413035197004106535628303340583739221919787176446947285198634334005154739552192975507771272380393233828024458823090317262487150051545742664436981615408414595549073075285604590037029454586086253851293598021957152369515303710092432060719343782344298668337178137302630595649998238644704045971516052270441757361143251443663267704331776392642389619019558207390681043841403089455275101204915628467467091132655131704840638235333675961676590995384580866567443336045441074292859872432696931505738359487241944285466943165809427694988591713234265973744324425161276207268053657299130970842466751201121077055123539219483158798244822254227385993706832712418496474411658384760020031283158840801340380832973760058871436947963952794624032346437087213253110581413711279280396297310650417676795395001193885483475618475814294433837220071832808366537483482965487063850470331217074419923974526805661593649168499944865138529738606972660537455279474329841708780828417735968586933380840428178454769197446359441939512815886273196443098490891906009028265815564603895792322389746991416973931186314183810347849750418842887383018212129492789544190824765916504462025068826643223314033488577285566034939170634311521844585634058634014774074762021138425310852817844510588011967503511599329513924554428319823079491317449132668435960490458622358954987282655418954079799702904217260237148642139079166628181055946272402941799554667256634468063744927328579226928377633469892257786452364383660283349800039138972224296666629606871804540407033571927197106938463415819523302270925752603523218905749718074034586335788680462994341952001771181280368106012237728731605187845657107090742610787487901417670940658182337680614045609836668800226257641107991712682717032457241362306204365733902632980711166126206676163597717888114917826027288982321231004349985135435085253938840459134292633185235311222491065155231153580880701792350798740677677777607495494180331435495073461563037109183150159548656547848984715522311942333367469704480266675043623458979112264636312467621911590169794282817552376315015516476227242183709182662777279651447813024029529870473597330699109928008748077079913830255314311437997717616716164687770942708140146542378048755570022774608634599169780961707906477907716040263708338325013833795429031673379385607668476251992389223141984923386394353096369692814879841674623454315610414397333347176373032920063272132940072651397329466801014953179871634182345361437022132475042279442386829083030871105194044514119008304463728392351434411442381567174608715352660212558640807279805611933890665348428254027677989412646081036242885659333380525174034519800859297153039553799781036778995491298825240716937355762987055030916135966221170328221494085983518157573958420644178334528646802975564113838489331293660128555926095621695213634176609938160022719526537163958475344128173443090518476322532673877892610796445423952396360179211103115354644586033484857438259274718746574815901001849690442154592592628647927781883067732140210426528621719135928724432168712518707013984428686357337383395950853016742169100693187857721659499799650001080175391416970841959243022704375945806888504993322313046072735297414342216686679212228191985085164012507841142689889225704917294011595706908619005473505001730656533284048385114278071943675150318626623066935275794402084474656870757615051109230151549417151326961809746489557071879739323355744573924363337211608839537156786811386956522568737479480517262056222408780218631305907292390491797576370549426369785973376080037593900289693258213920406419896770592273451696366772429687033143154874366714153264083376998167386678704484414984176157266531029373604332473619387096132785634281668386982285618843964764504410522457950788761332486772431131511343409248192935391838244205382936688074062799782610547599713556793305941297156693981492525086206524003943715016854657885027236841603499158635222643677186516886071535025951084182672985160545927219151371868414771455360151763566805684029843597853104555184761852904063678562968071603777742485696556999478323241150714270884837299526556315684333674425133867985297736433420287326092941785838280994051591320793497084484094992427134171638220897100165608851748173159542382291648100642421057238055932271239742612013508156477014318772912330689251660580158868271901975541539346631136148953000877306253128002529388080939088493277091927857088982218125285969007437867669924039576719878262576286495958107859762110053778114967276371207129372367528162705868869275397964041650983959398304572811915803408423444536061677194886478990333072227031549771388636293789521793254402384658021747293043222499797811556825647504256511574399105272580960216688621221326088470203689769403870369361992514771351687847220881296543309141852768788932886018573698475521423896046302590216758401568800562087337922855242082127450646450447726482523693383697651616866390212062687614019549490375594429070586402424235730638124346865800095372979379480999456435993404070836788862037238281976794327603092986241911323925277889224028720694323427404057561774335866062839039280071414887115399422912140127664903288884477941315165218228164769922154874302685024349637905161439795765653359890086525947883180033407651754042816432775005019090598090003657510382545576040846641328014490304538705141991309219082878796761051770973224588677239641166453446506894102314116456147163323139536403763188700968641228126272486400797496205613541790605530146809179279309219819293542822238779940842551167922333575269366389613723527639893858827096178892506711014623299278058153660121035463507658001793987421783693868232534861642006490329229456535931835698050898278757540800927474254404382754064136549720869828707995163579465154562376303871032477420373081131478770265430739359662645042260190491902527893847125038552641971617315674337969187947282302863983093854075676194232545746632803745506047888807367797434638866029188121860609693274233814493798212811925216287626870591890704514846603553427891028116559381284512099124525075271774761142457030123110422178662850261512291074872456906790854174425925553698141351011144936801929168926708598962002841734295125986803229304770414222926751281710311269147927573683743768618040395046400794922400032653133040676688090305489881890079642039502799741818886745561944004976873971188934099125481607006538312788806150452519267365806344637999892444090786292860345649172321843080925655584674371544926354401408614145029205834403372452089129452559969357751777208154115267316475469399495250498217387846123638275461222292554701023711066600595636583524463037204171311939692965406468265920586272019133169626786040832691604079208415075946039385511413376335181247494107707955109344966581035061178912195887867850142417300392935502742160985283450370818705639464802605660290950736152322443299407112042406189935148805518135607374376781144006229753317241253533288479577304201015440217012918667874564905955197029928375561020774811760309254988999438174384741642666189116890626162656959132052540774439307956261451318221162241579616579144527245904717508820247659305142834676881146863475847964339274526858263062286153993330588176535762719396495750520322014276341206692316181192270963664006756525006646043955016631480982121311596746124227098971456108867806040032255608864471805689954732581806798778434693082345955083479494832229243839722759192699749145312963922095863206312870409127262671497439716301399974470560269080845957741068923535931504113716893121388439925023752795478336623747894748412845231888917962394241402642646276506024834261168787708240866798556809056010890698481951207411255502015294897764432490930679084300597338403235575909428044311667852708135302362346700017556299104549684072884528548320322287991200321396795413314842796273038873776364368806066802541568869650946900632290323818467433952815642558548236294719622771638441867253272439633242749068640038424429795121623141824555747464019268791637731497436034126495303722346095947208755711174564646166507355795031988875562695369495849285019206071959465525129548381821643330611749003827205577893212652287822407769692285848248852910753201655788166770391971861607279339827762958308413062898232070247311583412435439213545589752306022581241025052820877514764824050673657220549361214143828551789401918380883649269067033187277455134503734787470174926788188689287333575015913534779563112222307425638688028199827123991602828173785091331295544729617381900517950119556888239207587485904401790348110983789003543167433526464930607604724791737954244157965967854731578964197137539559305952029929661133317873572948825073978242679073965666328961167401065962488751286518293205199754742689481539221685787907538139717262008323340986469852894199800705588680739933278897310226665836945696683342260508756318147214044682426981251575096736249458448434462883981134485867845055142331844494360577129356999958682103478960075883114807340498113300944918080172945033844006099304605678048692136691821312556970442319735734060867458338232700433898296864089752554952236270579190428497377240362897831051044240988932601861041217920418751493978999314546135895416404940731507458386845961084152488299692167395571581450668231419750667488592811012928530654875408106856273158588921161706431719451378765065902015564807227268569433276498559222516708641474944961854852161014039552997648310934219995185354703014296688371317077664179163133631469731789702877183443775025191747804708611725105926877206927940633467372539350544568626920470598108140809171528931095129928057399756086700325574522963484732351749501946146569239242836151908637968007895066903794829038042583229315982290580350362662819758439231784405267944511797272745175577792092463939348379639505835470040950141219219623326892188347565238693148047087782412212253351192162539152486234706177840186304161339055220576752841728607151657681580875951333448472597675667642805478891151912318225631125790781928175489491508596043327284642437234875175783608635149095542373816897771944174860832962174031364326072340879832446492543974157646107605081064704360442878712892960359248798807189653843014085243754177726077979966888587762554762203297733910288280687385557781652497615677283686490096302291430753741833447310429241826844884609839674120752652244977674155271380577692937441971109163455868354770772450697068212965433343656939612375625699736047591873870581340010003819426556881794102015028287647110039554070730638031868918985950911009920447544917895574533763686286980724707530870041476800247384302176856302059915814957907617893931945448883608487579263926961547374513219764993170271505961619828901155883687152989416629259550847545112910520042644956870602693234754565437463330359214068645158404944756587324798251255052114932202021531860530510733235692051449201839659546839987290386605826317761985208253534738455483049370860650677200745928418279158285853660824174761227804953369454675938349876945619727732727223650315037381286468997802767205555241776834457918323757703898936410378555144548534953288610478055131635249049543358789835863755743721822220810380455418950726477913597186447752838195042838346449198020275176761042580037053169202239594495616362479794587243080542152433556256674345156831319687267861065419751387107184375980639123137049127376579025812944754285723656284936601073427480232712504306803845577491911074701033096554017762128654954392360456769809455636525150643123629839338151215237554117053941443229281253319160223851209450755353214186482967443654411151540596356378510697739923266691871804642394309440278034050027108101204225319013850022187844028650201793079660492805782562002662311428500179054822220497475491648442197879999765626271532996283683295855621271085112330597696025897251293141369754876480979768305210819516461203635906024054253325927403845671618486861086021787645878242208268786917150037650210372132293428729069331957350809939708772692644830010890327822820630428617683351489938321449237269446719365384227817755935502879739271275860224516133892752679863279939606047475384739892952808447086153929134487373440819867838728853220757691381945878526809738431036330880558471056401507951433741828982979714072554236134173540052269891836642892189927063129909721741573432933608764772488177864022395315474075405691872673869890515480899092630262178984657115871195395741923892613891766650385205279211278953075938735248770427011907070265278740500725112106861200959596158699782535958453342782922079791529619166279270074247010078942272565945994958454905187882966321299934145115011027709763868033490157568576787075523323972080854672129657156220510965846432214904453804900474372651712484296088906524834189988226046129361238583890219534857306791137837246559711324072551280818047899109220164661233253348024800841330779122475036318260349769357766076503639668044017023343296848839782774048194773082647664734600248332095730863740315170274016532091118457655492927891934410755676897776621474014108112020534438293623542185736443269883948879531898194586506764414768804895656208576803875682212562931592383899274488424833740996697153962103071635860263235964540326763447906840960698352003609058728758054046369419714746201281218664057490329671310732266451809419284458149381827436320071570165669283935299600852175367767505167960118283704141071842796523898018550856584327709477756702380866968257739397364825110745089197114789049016108973935570907010886876841549926315730404977869844575121429836643228774668208554360553155650150033982833309504002794625406685515855598066356576421738732097957940457141867819935656940161521859554984847030580775808297652143755749305435033739340719027107829302734352855474995006034420800212103624215447827002317360600823907426267116132150609965746654240149847165624639786228914608532834620625555336046607389504163407054214592336538140127586088262378688059255281764064136859127947071666889194541053002431184721815385338064294194804844397267483951849907050562565251770285042845785226693836807052885775654974876486598619334807072528275354601012755973204432879919966341475860519643714784658343658951539578085058332280226481049770237262356474031776772856792247858811859382845876956525706226566309888856066744405977478906144149198889142141690621034977735029789306932342805913342206002057970537903801196965682942063560527214285101187878820090467786499718905893069180251540761198689521013082621569001543593789083610287755363349465810036608465418826322135246274434168492688282635182953653126466090336344203553077825638900407816472386791758924996170850116486433222971265352172476646729369507712637824107560720758125672544972994793328547973674095152690275131746580663264473672659351364981793877221708401527470617390873608939171734070796674077131799505165212336884372628572036758766219333211036731508932548628262008855255603668891596580530249051659167650785967076537323918352554915259633118734403614491562728889272979137519886725771433348893132039570056488317751877788912294897217969898651090106453783573711686159235668407609728925845954852866567708972836086328416111282386584877371067153277541408530664466279588972094871979771630637649240879210350240407003575866682187906881230256485865634239082040740266857462047155900377059856579227308475218365819558552467064016929838468068376991778717948763210089957846452106604555910197693861684522800068596471902836367823270125091054061773725695956903532467328521322425729895175930855787739574935194036758316029185207129836170854874107003424039816201094508707244229995271917224891743572475209794214041998846860596200063378955605880771044521392293173193287990106145025194774491462360654862827826300627397100184442699950880079385733723162357383639386271551091176133917166186310069380095860802918972294061920520760287676962215324657244719974551838702771638640180981819847987279633970288060903095128499286089297582727942696114399555378887522862149136658647117911221376352802322595208300708506483978762658629514736395301254290361003309172471839002691484720580677516355256525718312222852886639793743971982103231491242806246773566556098189804359786238119111374407924049188209947327736780837470813403001205580835285048530906366394289486132464307065899759832672799091616057168221336444340532748781411581602670565710497438124714921585365904129000648957786810863767263985876493164809939352561382937748111402675679179482666535095751581957433376517882124105294582603356874641934985536742457408586709970026442439376823166557453936417617360885361104183721699708816063960008313096819413716764049817486596080938897109057977559705314816533585193084551352965081190483241893141418344935534463863404603224500513220121266574335020926662113209714602173548383330131124458490822699764041098042384043952177625615125754094788419626944423960447488038848815100685155775398694901474753477430976706525199992116622584354454668424795214152674231709577027033670464672603935118073387464591042559733013266155372629861673666422172772575830846426500688188784428017730160736103147097045520257828801716187219810858444648066021545672668485422726328044352549682300516865405925545350365905549101897760788929900085900706261295970516538292005806183776797292357540959803753123148727412753384907639695967185406115742672061462485137129788986887475901932505432823491472580276476670694234467033904398580847987834657081380808254882762081987592556477983768546947030232628244311590870501372964166445580451527982962865286742826249360872372636021646451227358988989244478925093814259417034575932953124445835817308141745287823737473683686833968979906505337658683652320316088747819171425542042849029156588695128739909774760050926572032958889632260803119340032401417565932318806756834493734235603931635303423550909965864307177222998715254698929471011194605597995509541270368804217572633582249621085712815474958425506336161591375333015235409213178765433665403013060850426334090926907011102744403006018830369125260399365285512982627038032577274147166519440084659867122064966414850337001929400954155377823338651983901365807912434908452458795598336127608861302257488538574980068550750242978949336950815862126229258134163643212473678792586329715210427768057195329210657200965787094561194278394118865204775140918764000270662577402676251800853876038085229589063889296606434511518200491029858139178932201913930891647807019258538940670574127422932163433995193161903392442890067389045564816906542255962712272486304951956599190376718654891755122249924569370982365522918266003945918162315985930518238078450012219949427982620664197302217589470255948318300291190788558320345486139235106638476293872653318981033248875170842355801439465317022040218662233486707423489880763602726090133770698322506871501679419308069328769060110871283006735385783682963108848527449789480544917781730515386148336425569698505693547831919835054468324383925618517827581524704820561163402620949229716670445015330797065566675718076802802919610629777124286034412708981319147200862389998899276783086977186667487601213139784708746553701239405543447812408322685311968581780133865172515988578464222603451540409311584590899768956723661569019876209287665011122104358389005795130918216805045753018785752017845820731113899866119936217309467484686735262729752182863976019166225799490647689932318606340051240401880668550698893828471534886148639408199837393597136076649714507065128983955238423788980728003425281220311449866170614255157046595234975670875470183492339458729153882181290964437664952492704070162522629981258230261552153859158556376965536993925026256832708799990897716292382588596071038353461879989697045287227044380462706633865290846562775461478447906478045742913065745729731944345399543618355810391215549958734867883967308103303687005351174429705448480025581348705947480093486242150388489404457625979742258470268858541825023124937629084798261975996209006215026395519650522732977018887277369777891096700002405018392934959284315043798194710149058111014421304342230737675568351947792895041871249981413202498484208238257857888717347904385348733136179264431490523244375389469597307771900752012210971784809370842608190687094276977199466977383080566980220969982683849558631509095463975668788448367168276827609578215960608131249996552244534587001032732118955643909058458390877097383882832004245058325285001997228264773187021828904498087104861663866017492466316668234890780713808311662103932476597250368129061824257751284298323180247630804923437667965185137048079326315308884825627830174213300385840904035848760809163099788016427216165046843713567588692647245005888263278559180841992586630515149057450407400340395352230955856981232215403045333769214268516114273538693324877920490244685411822500795319690530543251594793887673311159854948703058831457945856656566334164423537906872845008234376174900373597494004939092738390330583603299148057321913450187626964952183531345908653082013920053125144957182587423071503707499150571034488047928119697184390092964702740588925546976613765843860876273651049702938877873144260568486206518248813308352993665922051762273317243782751139474169859627543672662953734271707020256737093521019303447291257646330175952106577282682145850114347354400707450024615172294949841342930904724640207729176111271516911405440806230087424707002052330485332849115486909081325955696576068724403472459067542351553838103971468885996779887846560233401215245706630275074342810593762834596937500858930103253502697981173285411047042665094327676600716037777892972767502362886526923425014315711378901889652580238305381451665837042141263068109301915530491796740776674631529609230564464811798486504516996150312000649315061156375768784637267374414301822016039458303284651254316748244656914412517224965465078082203244771051402698181374749609895745475059493560000302969709783833852607333500084516397400402993155262498652096064014041850890983742171389647786159556640038291131987005521938715258969487233760030526887055333052216955380486688301879757636762744180482898439230846488851910970140091429999259961739309689825963090410275407657323844504747500314558521996622462552374318312264080405731278494947653917159260287799884328368627738736358262625870513409620252000863000083384293997320694917783137638107195172711324375489390391829261994858606802281125309093583534915444172387414290765319965825887641288152565568257944637651404212725679516601910277885997198341722805573843062947945938020166749145358766270671083640457325590495781811210845134413927327392052303638641474591622857286480564562462015273533792638345851241397168677874686710013699075589123142638422472875958663065322203767004882839100775396001595018682935644261497505407297796579626247015020919418167453876159827631527928058492314270742376889476681390944978055333208425492535784430942535280193818542286308120758555507840039639161878936340596969830247022093863675759213743336164581157151783432908624070347425085374663439000399430304378631330502492749385599157679058350415291652518414051980153648731305198018778668330408981183733458971600796199419200672236672446227088456947191266729883218097345290466568775321890979438661589601762819619116442991368957886658352396596651277470991167150741195804511321397782066188766577408596851652895113122531991762399895622887559543643883756931055680141855995021628477498370158749352136421750811050303033262700266001354191957304861164283108023787482134910125300028230241939568139093112889295901000967692546885390109331442889820680770917366239969585440049738583119181470722754721682056332630471692816483492228772779162091722150672747374158336125613851183563730343672368969816816788338705695694790020390336702965651493966613346166102177693484182562183954862413209143243567329543789784444402899212172526505488757208619694659734120271830282108217150144323595507442627504624823012073241238346894456769524941861898211062182620989316449391745909999513313037945425850951480845634370739020302736599306111076097231726082988456783679633599864121028790478348896593295453379419946023102511852246745982239174946257310656751009988513093817352309164030139849172299596368244840771232548530521784190001721331652959247479056093472090142167883822667681034021863192698365168780054950928877576975568356972712304598379419625941762793943986763904895534635462625581346944289986007629800536683459065232262878673945729311893121218390042107850469543840893761304043319396787570819736232553475026664916954835683559598287736433710784330369395164567705505105816790450043733910624001989917718953806961019070542757314041472935804403558958815854152799237168925245853780632737764188122567407700455106647252547622629412271098257210109173733493416401760679890644718681753183215399546215136010548394594413162994262841204072651673250005381268790532554780375450366433096743572151777450637347869911099335456770723120260748400180153504775159699400331096877348227957047098036915687514748073866389004556935741184718511263087029100299883356900324152245539515111492642039051442230894882332156274223939686326719228001855339194931193763114862027099155653271102451872308580178214890917618312785067055679526651234933174750058592379707266499359969739270335550475652075599755818816450883030164414312901470583683065583214408655959391889449544314850383704130673600882795215230338602485798781428426426385990271278699245555771795216498663421050214214582044677988493148338416460193177083462920725689592236529241672162253457467966772664995480743958393766614565130409677432761707168113070972414060851389330530806929895925547953195790210663925519874545059032352020851499318965806307754464296930203821473111606175789361189858700138198237590049038675290604029680504605540969596247427802888013896519836184301219053477088668608473304069747649154265877829334802293008839542482580567055935841873317093167205935845389882078019749377414558162087636249381007324142446515870222464018827216923274977008172158558260987509983496504622157252825209181931838004031016280733752210041952311591013879048638309613310310660806227098183175555209346737367782776053565354079174746271193922061539866328737204488670178680167367670667089976490322504845219613085215790005886981226210156538307525986660520333557947981569940951727877002229117514325593376637383036386066847137205255410766970202869956221368108960466547814636334762050925769560583546868025848749579604146434343877976843817973061799285798650186752695020887428975310455911414909585342958744360517274512826387553362771141332840242441312250274972830079527131307267555189497709932476410173992061765906996188060060365437915447913185891119092686063946503278020651897732938072779634489584521001736075195922307394386933478303225153125795532472210802569957110866901873298964703104385370318681167060294131885524835815382913916563417941656472927062452774013395967976845292311129479049603578523190609921955881715627872752600488423861839738469238687206553146480435301794148721289729504526434722587834777687387559516770017244243814981549410768628303190109915533557755091592503844006060790530238457754536934838573819575331750260235321313769564814447134680692145549944363126074162588230139242277640951581468280847172906563148959261889229911041648788195789851290317738929695515557569908988468506357270966422592843678922021083726284730665943871193072936031590447846552956201893104133498064140120373025845266853253479009612771764399700935739107117213650051736387834853110349187551328683711505158276088992938077491787349692514701971086015632296899213162016772967785057270057517926450639756343789825938029900703764426494456693720461987933482094779831379744896820679111614212210926203404421071061376189706417689666210970741033530287159839774769228839187754251675406421684230294065505898148129252382840397436766255991622408016779301704915727755605486874360614380153358395103098773572649981264249080799019463622685681344417325732311801749894132291244800986005655311405049818352973195704994754818112629798643153957652745964937580774475610441431541888284933173286820623394105925181089580844263073084164605055216562429372322421462147864739314242764294539406796980401878067926724446182975254851636866461710188652815070833335167285035326590070393523001853061859641700108464643667159072543277227184942607695539064233862162506028383246893776410665118636180286316275075304469887336486432169660066459873593093261111126824381654614936674324303049258951238073482109979456800372472508772281090360714832735969281785436909753769595857830686301458607808079459224610890356991867607870080162324092796572338580867657217600369171326692971760286251688648520464344314302196944098149072664591421954958850358783655526158480220174285167540676478009408510395325876741063467648708629814731891383586624087753623784755926343438422725083879256909208981692050355439817192015942528759366656891215626086190419684645146588853725015315248719040151086173231843570946411950232524617928658825558031544035987247147289014905644028687915415666242875572913276181993236435901178278658999316819212512845999343383218055082648329851394761054393548743878431151750387474635844032466904357140622714956133356464169048436303544507695662342881060781925079917378679280655199050401430922612688674823134949985132228315826777477480800263765831166660382951018639935741810776153876387634067228500788443905041764784522009549779201705879491174175187657788858078145493377341594894061253055130364832802908480652723863049166386279092820203308678050461143435598422669539386318372272100955659046921407450421648033790923928056152683758002867892715868508618416627965395052533188540442027826967531679038573835641939923961980439087436577734896139290010648862696820273783451635192544295012949264954851991022744443414020569598036342023604621042011232181972026736073998212442187510930194561833261260188474778671827603721417803930772115436519750679177670395232933682611618720376198611085417917776843352207654692114158754331786506426007820305710654705479827395494217107283320892323011174915177998539136209454840672281998395072580880072164854672947402079200672413152900125835299896277085975602457261104770743416791467840151941452434428829046270438026099600463502597553623692071117603428889420017209692698466910977379667220824142944360005689665581315268707122302224488201575958060981626176984299882725428373186895913054709197884103637344797527394215632212498000415180863114293975885911931174159759037519150686678886097905531023271789560097277945231294446061851200527884923122303955502095210626645713184582498496981623417089753251857168813181502520158749816176220817981847494650760808359093389450679077410950684513128117192481918421960265489663087603245918872454975125642981582286252894172048604722893499258958414842829114277570248879757391478365590125453837541215121669261459303318714702987477830141469075368059613545794425897675459551238761470656774294817234346874862989197869903054546886506205571084677213711731563241583890764889958625554566860309094613421435187815125778976960777832436103063256093430071062881933010523168555236679194739705193471012602393776008193500668748983905538766295516056848003479090335424216373172257390162667752577863642151079834795634069637093009350174940996012097705328046394818310929163306329294756558539311206050498714492396025303460966674656676370945123983630899971997618569469144869792462261915848016995988985250713133563187780382168545150804193604689945465359827353040286058733328196648216999406265034788912599032871410742033343367828909848825614005588003388694707055480064090012882619396399119994539578874874860720772968587695579800469430971035106792662532037825222628409016984583262504911593424076679413544658224361019864840916868031629253631541839680817403166987242898678270516782031893230837094975719330572794322277977169525996847261062654818453987600598691059302671365884248423240434573140739516773972185326255882566339301430909640777640447653923174738670102608820642514826419210132744227190416855787021182699431096095216615468531060958955429765757225355385427507097678721382098617235079720999092714031000498075439008528233678795406338716712488436719273884571467477173672028597020463245063237233651844640013092133626952446236244989193473112482834846099695925944325460382353694695286480854995335950700556725014785482101450092347712889016871450821458582767151558421261235071335031856990883629073071494625130140679406844739184056270827244738047635562111541531274844948392103692055465501008667883222647616108991784860140808464463185498681157144287424325147264636530792011439414937255819075523273923758269926689227525903181143690330258958028587072890269438867215496697058948731613594868522997160182845931930256556660318916742348108580141592483997869316738502241970789364684119999148630409253332805757043113449258729343286044212547875551111461986096249878611879771736355172435181952960029052519387812951515648006046276470601252619062208409586434692043078379303524915234713883196823136308592545804599144565264599144583308855208068279174435599085374545047546809389839236576633006315724548484331060459030172553605093618957252929155776859847231924289268677325327162841671620525512154699736896486693028779156885699037031539427980012492908301720967070358282686315353752450539834971477554289400453880748667585231542527075737554648576462680015940284650179557866712282337815488080635809972994681512481869289189149356111784027956298034595763954304777526982036749445104186945464780677695758429451692651434704324201354790263030127096204561203757241681322147531212838717226950683613803770716972021690142725507511779509728519028979293517680675175170727742066158745032548071228757630826002849400846010606401857243425738678371050603587951509700831742587247737453596243698577170583957599419386219734809301881158022364283576512478408135697000837342012545567590378159665823679283838120150473462764774540512095199118606494336525819761507798840786250494977839843608364869488920374440113598582208376889217692949592857357820355711950404789187977464938180131277454241874425462577415563865547184893109536350000290756427663737110273955821930417257450501050400238853860622118940267032536723079797736855434051211085213945045936707192514538613844172914006394188096431155929600927559741198414581102631854578400828744455647598352313800900985010306859700472185371201643181818527982818705389831053593144265678734499046645625854571554906239226419431540368527648232620779299898780620190494340764957501029240444842884066573362475176904174687572268057124011729002797085991342086914822586567726516807440443313373480431759225664381524645600387956455555443558118081042231443609465617776273394680245996202835625443590447241715804872188937839698211626014531804328460658418816833724005368885952793487511212334386870273021705241716650044891722302092499163523459119627892629265674839793608134095791301376642343338311438931075370351284696566021234234104615081448710731504299989347351022309841385321190094069139413559670849018756599425158538797102638021948103082380137506752626103988923015286433360194883426917214961569915421436265806676638064229745083599567925696523123890823652440300497738042378949009622134996775605408355122570747616087152365032443582943842843780650616169530094653870567657179335213706114945770284345838380274122889677067062093318796567935081097728239030351009732928581719427684192865985998505302820097232844000895047096712396079210946965738828505878054302639831164450914214002179002901811941058704856842266522480156683190887942405028290117511561975920878025722103685608699647084836275678007262992287900965339394630282730994499001812459756570678343500812944199384550481546660556876843316446218321199582215141406992175403126032638047484358399541706332267026842802864338736552678232961478941711827776522578006668269868299420224899817335605909156203049163868075320885440643776085965567870188843300921686803391721303349414154393334646626689601068507267029794370205908156036332868014855816123021368414511560678513944216081618457883300332644089751685948956779639092122178514674948968672353357101778868753807795421153614761225588851677236098050713659882528931352715995323857736121617828773496853082174735810260977644289207457623421681356243471770691398624792000311167284982490554082924091184246130770758601101570092967859605391072614193266931001373956494937260691286402151362850383563335465044349328217151229153045420744184677475520968103045655329122222362884535278212253047589908059416662942481531242481905527629531133132445690938544188467088514834020824497626537303341426775469877380112566270176192574225840599307094609559227110867404628106933320346232040948748259027073253663783576586296309856991338013432121348554018165704089753977199165487036720235264651734751816622880955408317895976515213619091144794455747106141725737017066401926063834432275445466186569492407689196265137830970567870715874658698159950529958493540039976408117913397645896030456742471700425645993375755946112529798516907893356963415795340094972287980760877096202686162643344929093762273144937207286490406000505783203315955824671733299857651485707639126693531077936639901294928566312306271094581890916730827382393093549297585964982628576431569466652161359025550962495799377269975011465627523471472575208651081920264463350394076125601337260814560955849693746734212237272157940614834247805166759759176796337335180071153779922036247229620274947805823599690150638957122100883228677163350473571087955872984696886268690238397559542398334562008941741188091048880466555794661318021251077741735489926900689019239142802574240868467022907085991124848830089895413113695329733713708490275428612232145322589641284729816386483565940775698703139071717117943280450475689251460002550128025565662415855573328731309277252676822947096778719954618535568837029872732077077640458490666608930582978987403776228049698054102399001969125442983132958235618503754446644285058264643540587051491380923041825784411594526766293539781095024368075125260626048859978085292322849335646506691902243199423890562961214346687665705276013596980755295722857329913985460860892469064738792496680345932917081885695007242138278953210159354862529491796408112931388855455692219081827159027280749385357884008411659513952137919960481520701230255365044488032241428494817843338763289706660822546934336995955695354110402352433300455814222759472224656117032053810462162881577940274993310206623774121799432036482465977944827047788798974107322648481041031890001866482886920555250453989480740305149918939916264543296643384460883082666961186814900629203820603497153545323354347638347047611662261620698743297523401185868660478100741686586865661069289569708464591912842688040792069441376987110416970084548229082350444534682985869761403922113668887313514279946781473078353200134971958551030552942924900338417402485817972033308161544054549440755975531245440676360538684028887070603396705361618635711901941100663300227327433066008692380145580864189642215957867607753622228686346000893911510796088461328437055722774020018634343355060519134159760002472024798581766693325066797405041443024616428377389381012607063966760519957216590809493337711083873474999423634546818119579853747287240579065760092069849264733936799380476613000932341749709614032562714096637214269870591942937696845692043400237062785799207300743649078343785206981465972591474431791927694301964374173744591527952007447657221251631922059174459742533628718714848784030760880877930219049014027382970518183802042523798075935075340697323167395897007054295801039700523563995882630993037077637079152411041951083725370437339335242428718344771859816946241516908673946073702798105449397813101361324614061564164415032938455910012852062799961379327235342450698523528646572668440334337480024360996778880577053040051356925058323473616434774312635300415058410446800517545525550099217033772158929489078373860589691781701218513315384142516118073349809999584675248666109076792946019397124313343825678162673223083269501975922442435489973399047459676959013650497635983041659741976759729357756980224604650546516789271320661618476771559047182452858577446926255301937686452280998598339890914531857652499795344200593871526052149221777033118789640242489144544202439504366429647330106700873397084673113507101754080141402716899333489656523897789808709566045564901842493077057385549416073204851765228167334696949484082605917916363536239957056910535973072705647258397454868647444474241886990681224869988092590384082671343355720659683644886752361468281252128941486985188834714878889321657686156412523858239637258579605972358167061827302258606977206349736006263378026752949761294359933441700779989778877173325322075798066921184728189760990877431441383913061599554110243972856723513099010260450920637408858329534162361225107101028911151516671066147936177702938851855603462169423844785252106326055006861439190851109730078915289546035329459999701575058036003631841842284936664432198589744832412622210182751557908195385299980172461487718846900170199939673429532145427767113864183293762588850970497787564584442329149413631685685389725056109055066426813107919100690297322594747647540091625107252281776422471243108127569736882933954824573794382348685100893771016424698479086606118168065460827226554077366994536093000427005757590830645574809095857632118018482604940036211601407222672784281767136481841984923938739246590593617631310323832604782107386118917055566878505426446159079663039111496488296068995876306475126843188382123358863325358484144610805211318569300474273804767787532835759228873218299122254915856326796360928100244311491170084367864349169949213359866909468079257763056362534829362250929078272317676449777216568375040915531809543336191264970235625504162808508695895880466803113354881820177393962107010508006647183443809466251290884193825250615127018200269825423598846359603210158038385537905241113754240306612559250607518796172934947132571880696104293960932842145259761462534082057887729135624266122292100774397760438362665671937566802219885045643915576983216347433509658080649146186521775971827237733244717967683634051257471097911468839408977871193106947105517580365906757104282952090850541302933965159059819761036695190923434478925507730027388593795260827116853736512647255007912908288891427121404546724385611471160112519015012880548996215950699165145037823237806949250870142889532110659588879639962557455066992508326190954486246464140340662131259082740207259352115942606158745447750394248440906798827391256702105023555403733268450727105176554582455080702855937334501151562275018312478924471731656116348164537964765889522058233672775597973306111928958774924997120561538117654880045964153051631010586797057959549343564920090040417764016720623555630675042973483595802214801087701364579489925682947453676590865683566793435252613652011672339414643922649114516250495392561479297423316082035374653112900688843734913212186287544211559269588468200257147748228236681496395411068484048515155196727587776644972318601844565898248483407821970600219514807927036955943167746296201739387788331822769536064888693083184652317825918807564352640405558810023400780832734277383853228787393236133115536560133512531169066013104845861508776610723529626721714647602191416016278176026886236982983417055634828936648394797563630254071818609207083119185479508924121638826702073059730814795687867805609724822591466895392091553384151784466371865687166090610955291641612883126515744999301296347030836129743185306064638382566948549973234383184686439769788600213845332702974210848047242234308873493951468617374266275203568797176210697507232275230669817133223445277608950167691717625918915164100707158884063007894729522969539667848199205329846998670721847567461933848017108832681172245500988094437717500408037031086081143282692018730065040808950307450470559913953851181148448151230203507314540565363608801596128064921746478953855327509865888970609724752555790274009185712834699855614139540064783438396705893492601701258687955811952310941017379719582628889484649823074531840444432542083687228239544285695150784286506869073665946379270183623628708900541322217965179631365574130223893382016065615545553417028004520462293631060853120085291991800605410084414637797998071749690388469129531336479961378858231173015287508238181509057677150474239371834455646472107238327301209909854010026061864896927326232014827012026463223965328054948022024809819798738065667268650616915878556746353823148888109415365404383762496967000847337192575659849820780808338539046612044308132913608759479364543403888288369602280758311740035697829172759068129944028926706948844743365137794403956223903857272397153135461603497592393656081226800600833152648420485932266862665106040256716189261842398428710199211006003398305495777538120255979313864476477119553272085923498531993070712496799247686121537942758105443253226710492111512703707033288270945073379453371919833524667640251795167151042388991474289369200579166416406956982167094107380809491177257647161140797058289481495206823417682545769887084604957759997049017196403867641938523516732054474554210986975902634520797945784493697109466925663268107367201090632871155911970821253370248865957959171921840352044766565419569302775196777215580517627330302254327661379286917311133812617644844997052060573326071172388837818772654150187152482766538466452556243567774738964246292072645120782695659005006080182527470259402778620879086557715964286598781701676851103846201081404235840208853682907141611924826767662036198912367921754521664119192275975764667747700556846774098888971992678426391277644785896001739426452730715847498347244416037046032389845683013033223978539556404524896918265638949595068744645963801512676241099247825175051829061722994539979864838878187266187442058655023128593309769734369559987586094094424926157681601625000420757773747367950093529619634733140101387729922953608014728984998601817667214476262594205111115428265126211383258188237644694619494093908828903456617045141239690537655313797922522650489902641821424097597426399396443321882444381583499893723984258159847648499780547809825879491226403501544792308777327828355661814157910241300056524978580050756715264734832676219902250323294587254712195211433953680288649578008513211981911412215975018271242215444186940257441826482425738981131966267712518075332535412610382794626449157176872996599599143257558518081475242964459072317980953972162295208723512067520539349225144189040457275962831683664085697278210732734339028570993676600695554410335528403173501473628376658916914716596258720335152502413823837859528649923086259632426395320881572188423096414469215539717733666031629067366470709545442543745692089194157547800673294816601958424611607782325360933393780303937017463091766640990371285774369525401464043692521164599398399153275163366283822652161936765817062893464806678958787810316844315147295588652072915196326957533420045673271518858835358948814111408895890253473111244529216070336994685791729449528096703062695707096600586169721421770487404258736207492304427758936971846233843441041151578150441668812476462824713968983626432750675685689619631549546768102529094129981176135730734614577561464606470019996992310712278164828011602127235838498453714159391708082047326309357757161486249034077315962294842516107126378780058342791211775702612426390207144332180420459827428055479551869659189579906478644140649862301809452184956901999344825401613262201045529961487146073217825242700336295504215085435072550130316694786205842593196796304580552787907903225041198047743907478220082157200404056269876024469706576490923792028793968474142219780327067487112683163973040493717330151173311397194034263424120239254007836673449834587577561683650958505706073875457789059763460275851923494623269560286332453230861585376313100141175157324050019870796913010258486741737616383908951305528478481293734473943961590370552566924126693555744574413559147108259157588386379343711174819828871942179027576457968997581906065244762240490561301324216046432184031251867155488787279472161470357575113220484623376674638588635093968500665664666410582631759276513273835663032414798098714737436330602974037491153565774657427845680923498651329042986729034089517568027626162846856528879636228629928070347878914589021936292039980123927476036811050808324282152978870296771557551574912781066072335836230382670917940139740365107217165873273360664137506269133147927562757773877882183906713768878585752399363145820824588710098199284986742197620935628860275602702052627241441017943626280106999924526815748776866399199085105570296987881525660602915149125422261857889494119321537590167987559462726347571845124019523769520470869347952927535191916315344038227416291692511774232002925928138855912932294350315393576417607605638253125085480300448351023570487075721301993490218411803292624715851182454793203266032627354476361441631080094956548414051604666494525367203110744888958210892989261477538010814690905360392998619327466761591359767617834085105314208561509879005084916861372294406571259995885726868289252638488625622786233774697101009092631430951744067789683326479115364774254329642039128484702107972352053210484977198754125633492553843700054351559881174814410324050537075147780302471618738054767237398258729996139332572264529402048133201596116372762327562704424486097286352297628655343999257852819004043022140758694792310231845243192192419812503645878707022367716306298076607211862719869740062297415555741274923347019181378836052038389641433409236834471833564657947795153620028887834526149054198181182967710732631283095987997180445253818737171092355711109290075253768580059262164253251242389182003290949948273434323616625230760392082694247552568673193820998143369395885976127101755638821842968669877771094469438907836743674315705070590193454137101360613132642705739806825350889886527907544870408761645079017665906099483246292786657890071541546873067932520450263799199824972401801294508591441278255950023608869036764870245394239783819037326879511585158958598918403036947131188016871361695090628234805078860902275270786125754717833599020894754033574249958401566776551053567964828916955633289414724732784372345899222096917691283836344425963170114089219029333458066704828897284512856970530366782601914316388876576375195193155688335816517369405642078404296468509606676623777356832665536985501677188816310020170122746713416695611959832646676401591530093674509369615399379055348739727414124143500811460242126571151139577406534984746990633568990656660294951077376295951831625077719899422238952483112984975553401822128865200358669329781562531413239885278095181079932147523899089511508155843553074569335370261791611940691779491607248063869017163412783714399076579121661722539489258305012381242053291059777909616157223470578653583855947899448582802213383102004500499242941126521625548726593268978968316639044535029279243726682880050706860513088245310694871554523642659364189388260936971889719704426548480594660344477004645315087815814315543783295297333709313985634218672984466462337699084915383574396571158598343625148505991610994813484374469817764610023892655062809175552654434250557394107665491277360025092721569430150308198932709038280298946124448403599538970136617892860750595387108256221253845738489188465320892195866104215835786331794114438187694260352707884683685608306843450941876417671183693288109668028733861672488623121644695293365487303126790111685924233133956946079497765485030306593339375033914581294284212355763875323949553318404991320700477997592140690482660250379381894373857124016499627499023073138591362017167778783940216993746388912217358806393797699477161936253543537790379447298833546919904012350880687099748669643005272434866153169376293089570103419090956002750446715084101646432328377311037224943233427662318703571049728001531907202077731510754159710441856616679658425901993046859182500855640829680201880960572418679957713447326221581854841049533628408731847181604240967268493174608477747066275292044345184693277487141949840392591869048839613220749970865577444061218832941182152244344634731044804774309932826220218806268239035074678251487127433276643194513852794274960859740902643367480265299710643099922724043536863826847455717767589911005064946796342621492943357567736401888979973553768666953986492063309418981576236146769311312028957778230391369842275628660406234080574692702658511987864983708490842884142219042498126231533938153942907300639565870699208746150916347468901632715512110117273150309748719271383394174722013818324845913169069493236711600039486954192053525679077937105456849136035937181399490461290040275808697563678309618904071626997450473373462249567156151635939677972270206418692114983837727724809533594567279000653431709311829104631088232187741159486947585582893420612898007573465894185315420176369971019799208349538013299655292157020546910821567985276459967356370057911067744921383319655154818130755532319915300713703856989462812989634008222710303847075633931168478513569668750997831407270689401003136415681245134947711308106726930957463246271723968989156670462388628504100149392562947277911347005995135571505661799099523213913302821958570419569315216828726654017305007217613256457197670985446741192456532531341376487742798624605448261235026698179490138814549906533659828752638212114882851712042991391568046177743048532613763644803399454422616188722767120385717855970984313631348335683791498507003108021219922355979739598848657287458626808855753332970795515471777945492035743087214802751266093311347414706261439696159459280848286200515512969704028934930808804886182228166063688891478125600076782447609223263290069739039975143825843313965108190632187693917770035503059949273796409380437367685143818557988161860494697999241142594237669028794954413049984920262036031415741457243663094381075871777217892499817951841804246100825849878618065285907254953057918864028330981137706452693164099876629712801790401115284335459728102783670272318221748904587577168262472921329386652039417169533578107491374985503083483412799958672663967830936923778059501595018419934020487559417039640691670369372209529035944745034981810169789482945555968577963926739802999664100321832576553677441255888664204886990529350906826841210754144095110814735223422896774097028950222992106541404001534390746406720265030973856805946749731894994832682853315310774649063806239297874533585563112528802966346881550138073603863782167131468093581124368944979109060035130743599690512377992622638597059117131317050120501672456385756440124002828320840804803830587043565591694055298299613710285021433636136340713409489877297113487128085866281022813218266229806861252287392366411064349897178396241195444495536350970806932696260200787518803347760128449545082039401794855701948050308532936358928223326355567990364181596367964281719007376978772438794723956286986830634864525992039911376256093845261183271521762734018075695279622123056660397767922333336605404210172614199674403280090907900861957156798963578069200146170971560798602754835681312374170868753206964301461942695542245901529660866325450864681011799827650507638979573723861078438014977994316321321575293760193519985896104273087479651523802205696112547283652168045274001021654226955583061076234115786084312262075244542637092601274934911410853566087750121073151937717513695080728545541442657440866477746371881112887576635923416353700486825202566216587835399252276508834705978844349692508939251619761528138422262598695471277389491096443440643792519119312372611855186476045552679663600901520740845987329157696405738751009037895290125951815136135134186317672973890513763630039339619781280228399580095191997757755738376868596288762253058396784001647317060371055458005931206360059632580058449210970971458495254446533311954128735180831861486532903780643558088202104682639004565739363102842474186062636331900272570894908474282873517502262865600010984021104645263466497013722737935471329501259258123267593553547634735397429056413587118922497319155455011349434732130776956848747168555875754612771616441741634162352236691374266841671519367496718189596776347423976561732839402707108776412516799133866651293673173262684265471617194552857807537624713395747081527451253562627084363939403788858287548584442641679038836159657998183149838628214098040548981635562901759525737257167985443099596088909434592481387501265063874155990462646328930700665538326447198881904390500586475510748557919004403824965046338790125911245364905670286541440365815243050801082134696596475105041802097536887366502239230886360386047709099691698576949702310675300030664741137275965199970370234646872073249076930192676012488667131225488212635572581524307655573392648460547329101126731432567051363839105816908094914357336585087410497398651567128777915452895457228134494482153405878507967596365574396320726326645558741806162815278149473634497370899908862417230458032131553370518650179976201015573727625443771554138234299059114227890584254464977350633446598015949793045073142801340955336758557680349612183385304785449341916381697803035957400143408360180459275128445139866481454541006731883657330998103752245432032539885994795781384263449966173860502878486166658511978262195323081649774128701060259156466640202655586281769520248259762418356140236518070614547365068893414287018599086542140221609627342507824299489079416519225482358641197996142961294874026402454623683755259567242366945612690335399454599869546177349392172027476651236161452423476754118700282715567686593692424583877115019374111347316667806072517898184352656519522636945391981077161872117026176436986104617709786731797255071520669189282429345133453363039838466827320996504659230680296733212455710759981257023641161270232241009530928767593316184232665244756033990946868199215440411394735275446185311290469156214793807381229310989037544471977157276928591238981792845578459297306343940683707032872356924770452354455141718748336278940698332014404226977733631910813465134279155714878588892562028500807649750210605879705249043554159079712534446539977271089746175281534582910434429015361579496712153566067384883419535411453414776715277870890641996833843958647035280413494302428728298260399107392690304835044190741136553870743917363162824245332735667746657488620191516003575724529925041115136481130665116836579507576959972228563382611184712113377119285926895197933127400932650099304559491777473100550105925416425112023602056674205146165726440152445427506469100740188103502074167595154183691590724805147546944219698601203944620405734867180721503035632560519481152575688307096970354756410287757826466588708006222028511951953446798702036908432851220159085057693256538504309986420836735123398276489398543611745230685391360742645837475233228770771893163840712285067129336444095486274228491500552675463455498532822141175390524427890947174473029626034238300096552629391955086887126571958775677915137134075524955431203357610714107388090129166158761631736272344298511693621862796966457631663582139796585291112979531029702853089311517763932169587402567695103127024634038592300166974992178484100624011338017451819031568950983362365326134426089610207462787902028817716047655961770827399277894075030997318273614259085711036014379589240251671651604149295077796458463986060124096851340524788351779446333178202751706015067682787019446963390095171239901844954251196580075345891732029797066117686813103982154136495521461383147964066755833438698562830477197668439495980468525966650289202644192246362976941120750928935648030880245799648612406849747316805424508196747125121874846277594187107178729209721536130105628249481542945311734639315225711197162810271737756778101008639787530748469762384195077667820820054121540304776914849715212536473515480642846611668853235591583953507883986358837086727767857873383618042999734639886790370889867679222573695517035786738375250838807587160132501259641335119976979694710536654845070585054612057146201805998123909018473616749274687552634369496251729025618092506737255534415938845633151354874822601319319095189222894971377954623483119617566128005806618241280075836544202362613229888685469791757130977906530325231264019660164432294854713288427681629404568568177802941909129836846876679691588065813827748965899842659456161909721801413661672940517817918523062690950656152180934244737419796529641415411850087920440769740352924637200140753137212819327978521507947240565615442788753991109551499239930529473022473946138210213781475578992588441679416774647668329838170068842219548619723529323053315592529422871125038453741374890455066041658195073294314616766411203404592991981799292148728899302124931068839737948847431408983229401214912249033086844738709210410398631634176895784903228349278494759232429833587308780341261778061798759073329651505436913891957945571142807453300591735329036221500126976865113647998032127320381964682244722623144596596748467034231166175477302959318123403318022131039351467738203960982757011685421536568651046583016661565634928149980151302673359506309477813385178370892339361405526637241324386575278138755437016040453473288774947478111905494664384865267238211043805422573850419068122263251064430326755593840007425031651965584543847916802428906823616545509055660792442918614235076619792396925428883345817705583455552267336064272450748892260277449757758643930637898286831422477567160559164869407881879371342356579015392190444253915737952400564473936498693576024956171570764204385463970506340885283391479450151893404318932837473414326154901684423855929344288286679126194014148779274448574188164901773423711503143679406366605344161706452297314366641823597816676609893928509000738560619264020318025697832989171268658319796852401450462313711387395931624298110245854320629183434494313716542623562802427388125335752836016087723483547205081631524728090726295510301924577948445525858670809818352595927422025383086334772507921401508172517717533445574972622139619158498113501016884647348309604451045998077421992558472519665710989587798078959828538859797783568822251004475099808228510329200780671994001120361410367522656431867840666451140680709724540888755201907346993379051252018484090789892085272245002924690179126427054753771856193368297829170273790321907133752486416022235516768947185856102302915668582939657183344120466153841348745690815454459474717024954839199601845346639013411241393593677812077073595184106798822976603906991813528564101302224629275828064859045760618425270733215195854115811005445260759309829792581585912325786050408157640892515714546585062431748005283886927221078408409463856345691494439978818450601277381141223670775930126764234730580581588931802485785147411380604847513555623095852907389533956559939029781537660521719330159361829162792696066784035345838090638107704837421800665148898908283660673885909359908609327220676507059118970774777590738327822768835775752405138417256765231150396549574456742035463955197969867615252342353622216889631741244857893147601643566741320726549117819526321519742517640333898491844801895307935147186714142018692582769985668005688018467297711488649429406263459683520632066715789654917259515267821652392566462900028254665047193102996935219448286531198487034881212610100820919201118465555742405335572548761771968682050250501098117059900632648939298688287369391160421390153174941880129386649163774637342837063754981981074728691696360509894776185947437190221650136083177589964797352187330682740131117543034211083152969480145587670028936019785650826014004826481328902722443956520379332470056090550518286512673536972731541950391590428136000423197844756838385903953809098717390688746651152588074879750312260176999268853073294229049353739635601989804779021008901025275615408196220313111667971344466698850678454084810890374775746040339202155101364231090654476459891272436597976383211743847219160808245545997286088182906629168669363323310115324834533890340878433388489029778973406638379938300992407402116623781790733181727419334698692049255160205943754903947028617293957525869356419677533061341751030843423638263783140137021359560587210804359882338076691170283017082447923029542101856256967569343032701300176253567277426869645413236681252507412960627454609916262006132973431778150987372188085514836608523043864545466938249704116896503881545954560824311822073563395754277268964643817930304505378039873463592558495863816101915450713862867693469906563574142842969905442423506715535543769566910246051871801039882656599625944890193491916143461756049212603630134615057274784265117913222785618346186170251458492376517937411249948562175433281110168006201802811563598200851083245031546981312639014810211568730166813366564936938426446557520695719521083461750036988208192868615811764290734378656126081886504654578577190246325378965630192982041829402914541825081242909692523490549419298856975284669743466163284631650283367769444920251511656111999949990025025678075045335949795899968441083027292296025357002726650601351008202646847392998684698451788977094783944270285040991546694382860794592063568242512986424495624457880267090405462498360334906735290586998704110867481143734844328995616976625878537956059334668639757846617424703064415165539635713342900412454347856646434452505412294740799170186474845372079637371812420557560489826935922716198664819760860121892697004551562882617155314573784049161626060964775243847243947677117210837112452062176399590178976851109586616407830013318171062961992968847299714539228964228484902071159187595601784408130726494899139019183021159951968595669644019070800451678024790742785808072656497098302112433864035928646492308460474993349363133247111989611612713645717118945203820171313216532948425998977880702377751787658595293864042774068566204570328310562680353382597781910814666107777588063728182215469645442069166277003169826705314915358865682569712910117329971773811820069859365513542795753477278683813321285318764666602084583030033139251173617796339708293262818248697480192949651869048758604996351853864741156612988294355454902745765898938741215421365775412462092196820860011662232552069291965908966502530909465917485923041186032934381429977794171523858946718046975911004337721513201913758569237394825231701390754823512184920401319787825434869683415890566713926278239729151838372615251344213392910420070294394235471509117344083562009255310561878850350888631032460610224271824221166961877533930938003315115848624021930889927356300489258834970764753212307249885305924819984192190950202762812059821605394391659176296010298779057887462947572060411477689059233297223004546797859189806433567466824293932575323471597951541292971259441388005876521329204853326791132649810135713084863614996507257499014530505430200185998717184855476643425701608789514823021670263208232641119467798325676089131537707991080817721805345197011314595410890388732931744222817545313123060682089824981073464854425447088196411402680397615916842549442133140428919589578116942042270861570837008805567961404482869811899282497087723562471037911359993004307016329734656422256053067986329837450520927115372645757484317700292817985932889149791561939715690485099018313326311863692830838194175829347580071759063578438468832293668142563546045703796078436855543684565493394441598653924137389107870025195535382845826083523164406502468111781096864972783085944578444304666998496498805302839663714612393771588959911032428826646576364338823390607290479594875976086407100277463448761545795693215627269320809258895087300373875003186358537245117630365153857132578124830823731096918515501166530531431566359962835087879849855041477492866248913805559734209008611817108080148928794442607210255254840059021538628559881843582364420997333861082330912681834273402766265441448445712135209940685145814666657955229854173846588046320361770401147917156010825858401148100942778983479176731260873254338002891091982276792853854931583415378849468204368886145544139438061430642202427094271211614064247535358775710940184141666042998316104368409641717015100891722695436718562020287468191964156305455133880137436170426175164578573095272635093663957930560924338824711011568069368987840707244229301367633253026599053657411375017289036167625185084003019580802409761216311579738855632231123085298521972977847553987289899750937650812986731797848025472672421786681398672954336376173278047932139237516721027056060769188021338015880847559775287964176587675992200004884274179678870769478132720389653057160743303341382212537601107556516275159084039564728074305266332636230906814849480327907047476796781670157549603874114590364012001708947937570165267454403147234639301615081650630992295505764461105094643123029879712638133667256637047712812266580127567109260252457381231118935620467302116363511408338807754841676537834726551278945289922668999315022527369594760644545401732536971588471034548060964434163049040506799089558672584768540636169749279580545240262882069591065631778342805957744322642793433056519387823405678703784926711235501485238443283923364474406039064177390255991379809837340690667129119931816508747213554137537029813976596476864543785320483691475334184506098800311668901246817786435051915055995667768950821726285715328535468784238739749954382447555015361826131760958479477590680165681039949299870609050299117706308613696554279634208576006309671647790062636291180018155973428924307480512217453616136503050557762468288358516232855189961471062144717103857463664396045579679014662067935536904237241769814629297674119557497170987863986165843123080060513990414384208115605477106365854619318253677473128489911950107391494774346024310621530310561885189919613323385718879492588087321953580640266278228268727997097911958754632667038087055377019791784042524276485817229448398562054019664212210526602717271074685199316835321118696542479582613305242876127303288008935956088169943581319220384506943619996370225172715694222553741438935317394132984575322433426515127133449847407867239056955291021337990030547576335688510810657352189040807321936852121486518592578326121872847864752569272338877853943228889656369329275166771878894991806443440539253175689293858145310309372088749840197889025137108575104009111737540560540895532539746760469104632460955129789819776107092466014161776062504986061925953724814215748761830766624375985652486993658475017773508677707345473136258813203914100351372047355737669894497389885447863641305473703533530351457018304649218209259048698370823299446954971568218277464551479447673953194622316680585187865162931741009114379815923326818666978026998520928845405466900202526902606549306813826553792695011690848389788031655649261774091138250007723049641312855229916383560547566101186842553930313815548154959941669971781042408830620759115417516468216267733107598681603340104791913590548131616564426832460185531933189865115687142152100535263773732354228933590416175342922999608613856913849890737292753608679280100525381399905483178227199431627946970451038062287300584610669541762835862899776627419977630915280156514769960032749714615429766938480557036619416710145818376941663057059853074529978176383615918101056492036273744530822397448657234836011095278474342829833788244457335440420437741842468061611621875705390694676813741285569041334354675710950976259709522106249344848380136585240541478457171004233839632740280763714323557110854367768812845919462450898336627160839763697270808186075692853389376750574824072458308143854462946432588605002751608856710057411326323402921630102350724872027266394319351714574149974059605789238524715553888084078671702039314503526386319545141422480039194549604932320310152620078768304136060629487419446541346300642071251197194863830323937669362099271166786933560514036169715894540376695652360191691675599998220203669799336192829001539726419033601995554341256208994104317701308448669727748491071240629608493405767158054154557500231297738616624887541573611713619504325512078664432513885383976475167105868824055719844372157230898464521712999123404299361343961216735770682349753486592231898763458254076326100198979901914551649782394767591864873759687285113861398474211556099573606125979644637685513979841533086469734659017407309896893924141783634514777404366714627546301335508210216325768284898823315359611453012532910490676483006190567291982463318320924978256336419136249116915476861373276482592907551777412715213502669922536622434443677666475623350662268488171777003138807387919748586637232340756569356017838276346240685582550845359535764186501072169409475169670419684595646625710252136173216121843703286490702332298998921602222037891810292602605523291365695324288797261188321642477963936633866631004912122195569357716049361400781713913133306265693005120899022481816145019838738381008092702693113821697498570672889015406220306611178105147663744446809034169580027280575842634229833347955314306604560987895211651288848216330066607237529174393843731735354011226353465422692749541886219331982985818845381086343442506735711202911581719733849904549985598851676051345736731133030252790367858636154497098676593523593436259504763388031003245339501724643409626309899944367082578361422493312808197790110613362187666639770033961064654758290505204821641947250011011569915758697514065740117773181157997655797988634043668174068271218178102227943161289565847982581049597159487032002786553636547176406503779766575972196704042028724498438503022294074945447333733390672120456555470845409965729018175803766287588863630383670848182409582312742210679172863135655721144758713930918487593310195007237910387004562996943432084681432165326227405778546676380907122241170927619553185628815677519392666142210948387394025937002634175383707796448301836675675165518007792851944553213620225082690616637829446490299695998001055503363327079976483820284744654324770064619725807670559556360750241773978955915488604472928734733954063256520940565741513876955616914353979257040538315551057552486297926510446936437454637182710973727441333486781325082539685652114067423927961748682312822837490085441884782025909575125270255101366389392632762693438479480964788165239153974200811096338249418430003434601509486109550681144042028945618821406589151612185661013081959364536795466956778474264264020788047550259966528662926963500144853594225488113638453157187677517610278948947251213392144603608472508373752872111269325087416266238639215736014211616047202301595829437752311810098252810653766309616163327996417331557339285365357324452465233080387763816985426150496624679435341226395449845607952709615485438494579285110606056600772998251438620684441205761398144290518557927129879523262717946840490699738727345977362631560003120907173776758157936546227630327182679066604454042053279928708447765169304610609323235021124279560087703116878286556632914644274094748818205863026901541697492402672390044961083079246942886922637979142096186770488763128956323079373469727223555596746970171626316290547089449009481011216524792295543744774951089945655311365194171523909476977365250507606867406633885771231346262624719339265361267280921490612419662525640507071487764550009983591995978546708278014791621350866546450174389035477110876816005600726353578574641771754793192202480845070245114633706102055894905710506859328166694350380529838635796297465875711136012223272772295857911110605373283603229931044416166559227666045919552939273776621065537227769635503974247304421576988498787210134635839539521139451701239709548892392261897924468991014250953853817131694929112194900796479496241054472633026957150227705156765697829737412455022589975306312287211158275282955325994886251348159037978696715204047691522149509320019451653754970167189332527442173597961410577611506240100079419660886051058394026700147266040216794954269142346120509616104277578416184046167625396383542078732473303683740485948595578124499197603332181990281589679022095316376540075366490110489819978019199816758544828280622370246347743697921292541050909071848099502606936781941023041993503607527757860483012146231160057870487240954108346305432856119497991975760784276739215699483465125691033215353118388495101877968577095387596741277418531649078006948341391961028481494057229016192849745330936707880225198679393142632043628756675557562029459902226950267369625522226462162575883718091870186517828722799445691772351523543572807348802878094797767312574852687027255263442689231398874464231934406845481754172385218196703585865704730593359624393358768507292230385744748109341033630399775636106155068808170955518824513835349200074229977846895787945930273084344186226702410099436903473567278675212311246688136502557496574655014921543384711413126961085719715289822001321191905504987691097989318554686377421273210215105491280933189340247288584943964470183499057932716600981712106995900350295469865834057701836667110643786592788916137941800375589593526077826344117663824408108992026611366359563701001417647793494252728191154554380920323719368893144471547350394600635992841429208967939337926104164800262367606006954090469717725524240874543638222561079941908816566531348184880030073897909985330317018859019764437061019668950358780791980505743858817395590968542061642293610089989540157212072004497114966869748398304519890777787694699937887218655059726464688875442924674268646617470753280446183860977727745184042771542856115402497863032911530718579393436106392777455236079207123221281041593451069160494163574437069194858933520446267971342483284016269788831996469576507800758513858946160715206950886347494012141137168559793743987189852796219949231124239304104970154552363928124138120156533719983681669353942119646651059732915228064717593620139327052860434804018216404593343291503328549340379145232485597625746558844288453743498459484265036391002217145954292039978624575660783002795943407920265430752957734454647617241761195936096712517337412893937504209434891056903781632508100654744477120674360321747343728394493776912443629410405523660935745799506342930353646247181241576998073362943951747868829338002095338111995756440961317030432864041686657395606442242543592770137166594369032411590362316820174839598579549114572663524354886019706693847601188443116332316433655708315398091699086019704615069080583027963633605663428638075347702802806917385464520384406973307414651813524019130288097306282465811073751146832444649236943642971870710525802287267262343519729114796903409994223306877853754066336098148334740468650079249387850056643329109407340842860688771149820339704801449362945586241949105428462446120388489270539224778142874572052501816437263318622202526314092337102271661854654064503079630459409327870021465784432524995905173266076968719015178044340283156021879055144026680002086592048013529693376793264923709001096819691263631161024743869573977256490963210157237497035786901344224648141654736619309044681817852039723256020384546080871494619938173821663967695101510568856315658415719073407463015615943432454327521777282554617169998571802095931646357338548024115215768059942256393070442340980000736546161291205785120932241860748143467158448845471157653007260243555637644959063175768589825902715298865237563935809269146239760321426106355402062470609277054284360234888507555426138498626329285589651387841772795353486066145354392487124567717665706591365870626557948909779720340816494489797680239781476938944743614870227907909596109875472779126383821855821656317630018630532876824507052685108066613498689835877048510410596979272878908330516727599966770259854120857275105307250593903543432079427265284424624988105763585768066632159100221046508230315072837910935201793491199303034954273737779976449364857184705189766111964756911954721476898967283119221492976900129632037725543677593416241731405747773132125802931067069048495425182045090860090001693701570596608016227824503790433564537126956911591770813134234087443802593879140580524947066855967113153330371582548122443574123169048143204205406665836807315932962488032084751653271641711604683880703112777411351240956177265285212224631196837703623175431335780921956877899477254157199929999627669332679718443602891298853106486240440785429867217437778353365741865352709862317637265696978146652957473571265321354543400604578663289540595046109057009926802375998325116904036401461243632387925048144006492647117366590599706873673029530122107258273165354661574585131041508108307456237001999915384688312567860635421793641123516272788497592545956078727304561243256273530036479812228434541373743649333290640620409925914416893878712724982844550242233952643189369729008361719987345918315518604025397550184748255121157096748287577091008027447970487299563141446836926691356747155457149396882621402386584906131244234036114522052502709662854949280994585663598421377967702470963994756297476777864972365041918062219431449465012390719724826122222955524590806012726420441626763577382901083056263395528466670039862101252202952571914468051034173210131784409484903938259766273322810408200116368052307261430433378773999621874480417628637442954896017964929630283313467762864675332415445087623440251916899871888288520355132152522369466233481724679647423808290697472510088320478858212926949889039740584799751490285577181562767815095651859332288685492449855396427764223504913186381107569819839676064949277242341661474126957004508948829018572451030222481439955350804981205208561953081920623046345648841447538266375340825980451024845570666920982013873051655052884146399029905355066938661282588312596367921286084420191847022172524295417799650650985654795211867209756713082894826676752230650347593861687652075486208915085601737623510105711557320805694807518367745800249779448065234636501796692954423838153671715163651666685774034276762111341526797562115705652828182701688824449227035157805548688001169043400422280441720670181374415584692562677287452824909125391522114316892410065622850105691087029955603796140393199834727341125510199187572245943713470002755101341991242535834909941290760272524539975765601859129298335098762188748982964351274791707594565844387856151571533758798905194342932115612991307284038167457528459891954444696300243399774391183044829730519061087154035449100346776160269693769180158965465817339817121947451005381710821920445648494933222137532802542515797668131592283770308124617825236411432030489734965392073618561164093870435278265867397898420193718312266403006605738776489749279874540037877516373428221134657104427948634441636166823052151177538902501481756673856665429006169628456220664626184627397360251041282295064310536681635128921097293517719055027396713388042919048638538161193241010581644940662368625605653448765166759224600807995260890616899520849611851415236603729342127247774509640547550183308406741204637109505526291210560278647587036769740188589205957244407328080082225059367036000784996150848928033576037655581586233445303727926940678073048308848266804812564411153304318877683036326099564154162780940815723438529077247915489016751784985148338146200500844850973318212885656027229472421842049200143381524889374964354233078039064390805317649070030142305796702821346151080004331704838763224882991185981075182772008986689047934185959569775348593482908269232631660084450960352930352767623775583290128767407799765040877493175891747680670172271869656755531502493650807019001240626734863438738876655116997282357664540972959116059445155993813715379112795277674058970451495964503998940968314663950309790304037963740217821327095619324633236781914287420143040619710812430328619252751917221478566287582538348299163806006154067203418532901881120495145828037104012861213805549632706630268442748986486109804589458938912881203383895938527703575131962663994379189365063793353106118188290709438193305196878322730857891246453155916595091098510265473783936453086236207387735051443003201106530764469847398891830237102939440749990655339824805515167028782406637671084663179464657926549453457729990877443807283255991258981780746767328967315379496200229212320334252677057587538607450911410845758096318689566480528691409240658624108513442175444997088725237301205042962948680168192323399025527536289508655543489529844719762317245296775258216859730902496275277239260946789649937770444288632795183931615169176116700119378403507102961055233216951230111531091409258917955876894970487067485657495589470293348908715735360709164425176795429332412087671218925575279852318673150943095642489139083213123549486277000918963061549723587830727838254503014179047042672268539323847048064351597480062828262342750002502943087209354673045454160536205830769587278494802307586346473461630825338332605863415563240244757799187673255448310514971627608357764319956184210416618335347621901829746460192612268626506830183239691097338775762555971753408811685892229763095644934687546757062640644826247051812764401357337266837470155961567798071074743661424195960153909114856679416823831701587175952322468081407889376973452471044613502201506906749435761347925935187169027026562413564192708252490771671303229296557695630321873131619657701086942150204880412991087396373478489445560951007848737203430947639716046221494230097817943391742261422932435772224339873478022398867778754634006083245051390773436915952377426165072330496315091171966378331381496127378805439940932243682843065812305465340864811307301931656003252364868989747924057184968617537385893988762974113507337018797206157241316926818588609290472968809056872909512668206445118163579624390384861166619551871199596240775654517202264166735379443403531750510204633661552084290254428184107726750665578485824588749474535165994457959440851384864617651774891720240444255461552626139190068344596842800606133887723371077757766638818309686518621257549409546267050923301664435969028314935517338272291027965981737216795951291837374996243617181684175605172537719223930617526771573832289654655829613957411129254182447280344093932697365203066598116879614951406132269726768197228016429960578132048344157660750777005819459485848561126051271457273864226862321084959181673825234726142293968183555771656150708597874237015361057399920039161591223734384994099920500039663266230725514186436643184392154638056647867510360826462790739143576795195651747082958190406842904831503119271173188972544003895483694189710581250251474461253170381294995601227939497850801357446191274844936584893735139914261514574512744458239041509328832465037545875619845820700521450866637623054277080355113802212775672935900209215945552898823374800005281116830714366948236970696839317364567145827458843901336453128599471799169953112184622764224303970144342647801934767325608067810539740430660795046039208793290743900328508201648464183643383786731003838824888766604415034184089663213031289755346605516152689621639790098017495214164174516703823564826501746988637931842163201311039943650692014326905376470313001121291114134337713510688328839178900593074523114421319150153393921242814896884118367050218766170820262487070850102891232701427815143758215036487676252854651759274886088704595981064479115038761605705741229132691803542651322382273651928616368116633318902010201684556237525108375540915524200573111329005618184831331579245448498098206892333045653367440728317189946886566784077241368229712320726103152495444192433131850484983510930223823768000572536763289854967762230195266965747049182249623879705549558165776000572154755979378275809055247460656175868493834603752180301723231768295559605276864900199695499627819383135664188567820675345770068894815985660938777651155511156382958687394916015846316338166273158878120922878684950254664823080233418782367012199953807396570676611721778056054500921929002135959683502372558856236604053793250939191653932193880853715300241500743556604111350173286887594241171720251304336646753351390682683782670806754548454590521969087821109275425552355050940360579870558066222587544128132125989081365168890769804358980963764669343518963376257455436012876485807220524281700836631073289417797253615085262606881282459220592104349395922973721825823485552303866224167453318956705968867845725268545432559201150587964463203688629017104606467906673681595974244441249505672328879253769452383796377232039915439982829194741752199379619323859992317722518605855811045963846052387225734917620264692348275913116537787657659687806335427153915842606380846546483377559373321689460563208287836758803561808639140990091440401033652415498501248727958699404201548057844782389571236903110719107313186545459737581015992487955194588598943591932619653808858045593580777511133823872529085901688476049048521480108683885695421495158543137291826495570310248111330347987612172934041398965580538088876470613178270404216779132713266187978697550769233261403967427611188957902347414342992509291502372568445650534253790127575309941210272820206789682778581793596859815581864678489313555076776817537538694580762250244409728955157129381330289772892470477197023846630112765183719824284676429112725353830224358840274488085554297049644464584208338768889252306729270608974219839076023416744361182471316237498950595944648519741547965367740555111399340394473005178531724682080304952241042025489328774098503667096215171282868631240513301948837929407815310374007826036448783863586817025481734492215789984337882789014125386915166776972569861323628531775229882408339953897932923485147488630519973256215142763856912164946098713906585963881765959588958030405316019940571775907746358420773092036591418935329330396379227202726363271805535849741172017714275866559065655940211176280275341285547265895263581092694554814375886723197039927737350154651326323572585677812289913721503626685131251975095344649646814215446415675683304662596200922056090050918726851609947661498140269258559418796528018772346003598275404955437789875108018565309363644871681693770318569097519609232188154501567307857527511169481701995941689066976701742517363996842709492170169724105283908963122493971461977828624967264848511222045446543178004848245453408111894151610958601033144560369341568888559900081525707005969478215851819047502000448939160140279963571814421478661361550460289040028340990824077127771174738991915732399870412301001858939216645302176518884612894064972760001512369150337150144967492115944551673233226676135313710985196374841989590801221082640206840497019736048617170144887189073127477443916933141742169257444157968843429819945817914629907797765653159553467374496423755670218339698198827816577100585802068218893056097096959571082704534615951707085811427783076514657918912696697462203073482956272240257263470313872145051570024734421349151473405228591366598067142930123098285145298594999209038353622700324882548281103967466118502969148022206682192777624868551436071600240689654102278855436551038358004147514164578257887667190309112930708520034733597828643434964596141171649223461015569879576734648927572601186310176640613544108511668111938298286542597098819586576093837037522242422248178681585775054109149312257826689542360460866950818386756938295937774154945828481772331415723484590055068706554483420531689023073770479560623538824289096971811638481179086975435054688782246610995702330467035439748861554249959265680271859824156370868687259416891469136071004339428961092876329223669633479770896852772627615453656185157277055217197240445283654674634149727158653918805349385204798255193594086337896274910680791972085528113202505894953757776317286154466772737027162818318592610642778874387630049339891947575832148201894215471955331985771921609343992088721353383525872518643987852052135202024926648331478229257660460904494539912176975288423731546117271983530929893010627226440428308481167376063487397507461787806073095084033874187359814571770442317327895735807934749414089489704082671528535704403696758596638310034204237585268099372656782550641700288980868412860889006668244359713305387076770695508991428764635674899776777877488157816586131530762780045583257703327111808058555255107310340892698157957322666959060071035669487617411261938926644564541409820862406208779259140247521752358856021622000555786237767595257059968080991532474833951213339987158791113606266976410247524693085069546232213400435986176596230074205029981515143712973794970792299481663249517791402107006780554249263878410950056283270688186001367556099146107291634293265987651029363190387106902154329687201696889297938960853119232636184402420205778343902351714177794617885210758329050498362187787099965422021624957086750998756674791417232448734525155227248672492244805628977469719183784734865529626208632341014270040150422351741920633762686069388022006030211796711279581181011975705131141775980358129594870552749327636723954909339013286627890614578945176634371932449002367355382301964319281649990717566828217841421331765145474054520521608909878877292761400523046527901524542732880408570774714423147995177477513338217066589166491895677250979580157474880632214022709492662153054526043397023613093424296080384926358173136459983754729129079425686669885922637931132522382176421424139120083506384215146929141571464688929021851245994758652115118147225504060631649994621343317908161691119022584033030019303111797550526498524455558419314199541827013320746257079231559607519808151962827724871696568419739091185069965346557894497146281540495930888111971930216233328931951650267548937336657425926281727166377708443108179521312925390567733968885139350064072051986906807707548347009077135768850426330398087847486874132827395855752916628067491356089857941782851001682950272083328351631316732007725539184971874655152826615104123222158678515033027726133555102013539373831766222043997119648909948290836912152876995084830038627216619176012636995469549797219413032222930214659471856205700661114319210618616065185628887134573983159160337347372579703944160683345429677581590120332165905280056645214665552736596525937557729807223726618679388893782102168790063883958615516282359475597869083848800710682745827171711139369100291341833966941539269050194599464353184685336643879949975427023727561212961917019365261241077732391146668639475759253835530646997218377908292637775231627730477727492710457150076124687806774968917652290677839703458572720615252961455116186683059472478216317978673770653162269941968122135370420555579281126365539320846961270873597275966510145901606149664035849681532424169481773470011562085111339499806279756230654620918376862697578461558329149413812786151874840934287567011560698348016951403184777602913185118816643442970649934317158150062661335412741780643248613484464283461174666554270268372428380699600104093463525939542241912539907648677878602789171409477806040013425731364734851019457497216692590046204593337472731012855907678289025404946212360367704124402685610164982570470961438116540762967000254583166215955908948504026486070252698598626784294688869754839897628212939709390901783308707984037922852673772242261775484451963326015132211059946252213784520941722318161339329792284700838253852850876805186459952158150943826965084528195655398993900638116693870699356254100297524742230929012016147286045681289082094333574031665122338006385979825465308282080236721332286779832273078958276560519748332538888852738152971478628488635849487442944755933793459747029221239017736298629453602243895941650251447295503309266448825229240394059170959906747560165804700185608788841247704408270089321867118853025995457735751873948170644458047287446550332612725036773829232145347001110613391626089830944584000608404046302559728185890107298468913055914437216070398017332760543597631789272888717157380656813164829853415239917146792393655594782383365894656044149382706600935577596169366189338492016674560349365265685467167420761535974391968037677669541815938994762738782320696245300829859142025377249677735039281586608940781784098975348831946840362002191849652948936375174878594812030089866662338530463851690558536350825156836189832031709254515133884441359297440178482215555300128093559830583612104250372582244898428051134680745479770904312537593627732344859787818790838194713621178251041012044435002740812574997499585785337944726032045637178270830721228524893689106367072565786328625404086488746751388337437245483657646879983033689555202771150894575867250711722701006044672330116087523499643204458297688966743078426852339490002387223161280286173309561749030085948040874214867249618754490418439415680676297134432592776815669648123103685774928851799642953122700859410721975877485297109804092641738699078435419057791720971193726997366581420326846609512284504234917311668532724265129079167471520560769482393137567706059097897270682379163434790239049951040866434097202675851261218300921604396697996257592905201212889496820439832909770055060322863710438447646393499528991737104564733606110596327296523168709019709929898835700940514777655191642415840783797538440400710293848291839948291727238077815712517729614528472762285612262399701591586063112907184992157722903220362790283646355051097045974919800615937564142428481586508926384154040454055054654718366350204047123632507566628850055669800439500631995452231256353115502369544783652483080635489654092767161654922051097500980021500298612459875135324642555623882350631176545938794163527197442104402930155011333810042821691217714155737784274483638346866118425377331410315796384124841736541920501839612426799410059671331208001949984375203423735376692838763688477244717903188499815749866118758447367539405360205627805989306764861029394028108565733872578025781067025607842672973831698276456024322669665469445504258257068763177860377365421592945146179224320775883367227298705147481267203047587902382163520094726025938131096277617819932439068923914919586112165120195315571787411978331247845486675951149917856370533113325641602572370571804751581934239912542966321242953952964159433661546751129883282158364034013858851884615112754915889305192878272613895643849635565264910286074360547659821014758814253291171087436957330156729080337373792265009132977356784071085648535471511953127426845290473342149912646105341345252854069623676775402024992299052552783572255467478141471456281060442589150219602981391462331612810389575620402673540495191089552590935530151907348395973145562497749508148581697519267570452492096401653892331125376094584750736804284366624943659297086044452910246222338009423947815949571195179399199078160571524648323282235753054937693974138480744419568817793365681425166904812549375185427839843282852047055946097718496190695032141521221042651681573817404472818672602698939525132992181628576105533406980719012024743007809676722595184384796870282811096068060993916572003828879944994309706440393349432374650418962179024084837729447775734596287655626010655398587910922449259758378182174047685640455485602289702021548286773412755125515793971142751209215716132268817953520332950706862596540203465896350621571006853815570881856522123163323983965002097258629043583730848044444691111786512294181190414947397170382553338369548648138447127372461142426844151666194431306818698018307150933642235699557855331007262629594676979797068583438887735938293650227623914119987940535757901511891252593865544311541156329109026425951249913631175707509768919325650337963822451859866243646774635847964494909544984248383967612855750476837261634047324448626125641055711930447141611585400803278621360497200323060960762169526329558958870908389425706129409097044714863494569780336993699778884651867077936109366235329605585746473002707209131951977287249304771467218391985326733066863326817062173742407567767883502077607868303203037175849352029273994044915113024211875905979323852680404265657678496608324495537353787385447690571595980517204850704645415531760474097716318789573949595280759963617515456952821248504928747384397211921595409531383213132210563973299354609052098789882345891060866071775841339076287688398129514106429027497528842766557683580216210915639464649685871915111774404171873438411088643638631588269038143840797117713394929106274428564792847643449607810537255935126804184466576691419625422749587768616628861433383597486248632558108979286962255244064403860388410141233682869324285067495610300359887730113438701547843195897818423302679172841211848088514635484071109071046896415715889256767015718179889206602539911022273136260579750476195473147788360806398412260254716266903154108331967952478256155321247639312031394144749309519101092669203022202617238938941343037087496870120248957968742759074787598432664736374133815973110240246261433059065592593830450493195431825323969631467184288656210817586890886437319229063572051672440498907359094161973444835596747473888446088880737435622617713863908449315930718750553395251686246151237735730784097102707149052315595059440146092707590735680089019276705353892673511427410854242196917920599270288611381170275985634423278262060856452766265229339881060494400562122123179551170375791177185168842193764484305314067331076370412126611498275724502769683031902382247522381786192241897044432718981185510248567743373494918064267899989590740545420086857197619918878170792717436459539523078629751411221471965920224813827440803741216330727424601330932858858672788675984916877424709956437413945772367501732544156872742814879887254842172865021058487132748099493745701196530329264850447934210986075340804903120587913677901446451056637485308104577783173730320626356895421288549180149280801458193898104159933888286937514812025985052982682495682269886178849042565039393771622924484038912055098196015715114501238888077433869682793387905054564188065378472047364130697329571682293917739608010277582414665318463767722536439765107358234243719092005615935462507008687900688296178797259716321064350687052612427155365587131316427313785442986530599811070958703927278124385382119197562024402950313972758504093140756157429625396873753643444742516876110280549682031124775037201362856666641793698250942005337277644144462785990211503325003119831875853960152576080599062681005627591075305576796656670526644004528477671859438585736055425960805344615876871903944400350545852748397166289751044402636154959481914768864652405476777677123071611145974260530515127381620718060295313251601605719411119742191241757445628037716900567042820007932195018875272629473189238356673357095459184053045766928549466272369675149695072943574999334208076226492583130510269158777525320897444064665648405001085876979001835889885517111531480894960253727506072364742253900484328989251093527336946503852235281305360148236210907420065949040456659893707053146193211854290407667577193339755084873584954138561886598196175291478387552775215215847014790614676085606826014729994312742156968714979185095564919223889875912058230892864786477350534991468340570980974495261826684123170546289384636622658485257239867634584795638770986826968461274383451321343235779095433620575146476330822269016946282228527358125266283526078256783380453426174613017739078400448303226104125515905235394380968068817451043868368694164999500143467711100064434605720950858044811501857702240607146304728620114545900293312767827888677437005606315419427923553319139036885250360440437959908974254874360530086292427095261553712315674834720165443305740607999881221719719636272923332432966270771038150943635799716422191260492837950547502495068854577447054912707168754507299827893639113229095140415062966117139713332861154589997269742360904081449335304492367854093441316640715988659395835586427802091438666825217207126473452426087225665861527391473145183396719582602748302251928989874723563219153918215944180196755439574242883091599452232655421187537153090273693488935816749088876027564343186244196092775729741450525966149987229319822907513618274196794849529763953339476648574311380587880276869974762430328867196248611499149987086311425631708196431822572739490600758115164461972683383908264430842994225183876776139956179776947813353912692361477215606998970646192461700253350439898516880700853156597715412096604659705373841896510705535312754985008097426895099085844101079849153706537719735992017843406603595240952195738971580080312653436379138786869087368436683496556526865906624440168912099198144632916150939344260113212200770146350328051850280137146994630081767031934954023168945544514614709918393627367027480841776016530226129262957888050008701293335074227200752500893281704662302632896042285405263558229731274070022415512729767131882375358821552940856367762578969795584199437049235431952544828270836542561152997367890396738684707533380917516758065329984978908537336796264766727689129556609760407153866122014517795463533365942264916714312579551270378648739182691035039618307806074666476915287318987596198528554984004601285405595136205136323500678245675168849827683425980618397166658684986798929508950465387087321888209322289973417804567791280558745206549364961773389043830393797750151470289270172286387196509332412641788980645279385841579277219308825520011492919610535377168324806565766379085694459442984817622960188288635069979236032281611945688569895531513001407321361855565551714448043372515201538782206660255500880863813487179360522464436517094938402922592647706123470910529931647351784475441101055310031584154196673328554500563219120564426134874784230571506591857714712441619573856717124038739748929722725307095821677455039476409509204318134156025330020784491766752875448903555350612201112738285878920359142209572947906392568439285027813044934485622764093649465338908910717214356615679949150724768100311508309024419678815092631334640166331356920966776643051062399319413037581590116281396395034544402911789586327178793226919757197636470599154286060498516526546579724081449465523643484464915690482522826369663608766125992397313378676570175138342457820285752092500915775351090168498183123666260510861276453559067074771257084961491877769416121649955115521261200841473307387034217850675976456614467811498054861583171712339597822994478725925829483058312739334324296674194732808893647081209432628745418484201231966149585101563183449605786928380398166802572291961543060489792907208139335862212022772072975029116286845142854767656624629986277774744530935060654380902484848501919809995229320191507255700083333571390928345885784715673978936088505095649193845750637108757525288979279846555676613760169202856281212333682996997988729338419152807348079984492772741242548457060674643525665932687197438840717920618120975868311898078832190220661185698234738053682953144760882002540289576147432359592832889349923095671972896926795581660372244853677058578828047381916535006661026305057937756011982799930224422482918703340882554966281854508240723198004714239335155051519901878283274458421935981483165234869446512114867418665332901721497003586793978389472396869480088213571591505283692901573348430721398041415895316841880619048966517925919184372673365331577529713683760109472350977660033128710946868425222934771100118522164973522334482720984781275469567086022377941712718438887559526136679423006225027116421300680027111657118821335996358851137677444174567162901241733324909523765689948910566134511421160642311569121958595950658147312174267111137915128454398672553875029298221848972978783915293884228124249373829003115648241084429105324140477930953688872244847747578320617981654031098418686883257980470635345370581152492767361389620182559379784955532455157187727453157045759085853419199266019910084578456471142481416463643787499289460607131948866776805150460510786766796849052552658009455849263400026346559054777527298481695146395116822734406660729922876901063489344785551974859352694276067976455148256424830228506285228517264022866558195701133793428751472753209522817919138561326319596632972402259150829485694244214124727369958890383842078972736411949027373733118623674091662299430515864001750521394473290597762144853002218406281332103705330512731560710799972723385432689731070408218616589611797278782615787764530225267188713367421564988638691545528989572991170862557067503713950227435626923445088620333213300718579565122680585169631107666669447321281580347750442953896800975516134208145087045037103309207806033663279771778249352782282073815714032660731343352580969816314512285392766941334958692393971217108865821915135344356617734740364008330044404582516822361476879614300924640415539184462632103582178061751460588324827622968563284815878004682542835936628674860329805492205553636563021971586373221495782542647258030128580088383681526404847523270997644507742598749375969475026512673609105981691271372237428597903977809894707572950027424002422339141159562933490984134356650505200171167083080536373704242634888709373704286181748184712255962769443633818558713176075628003969196078711225024550431572300424678516073223556445452582320626836251437733640530421429702555708188650876657766064805593577921989208230575243981121737308076418019524578328415844042780463839166707441689892273124938732916772778521299699798711805928953820656632321982358542554729345021243486807916196325209930748992060203870662943387568656083555777365446292655431719502957389812195430536481953161626851499895046242992370408488547398435379975647628336098414451139891417804661714436449631305352345119221964238134435899346284189797648196414340140237034117902807628828811625407214411027416085913406963402437079949684840418744629228470839248325223999637802786865802155630150080582044050311207858659153083728885911760336516904017210810284911461454091279131418137119549111008404607922396219377050563481259264126244946963091456472877755356467749460933482957809065808066235252180810410576148554353708550719938463133560125584014803286205847988037366521039889771775781288720254875869199868398771300810251612900111371838868755078140340904369543896738722189726217347162887402615636210604997753077008107565492141216926990525201179414642784395119852523621156894675591701719927098926497816795997904850011333557793223657442661869466956161150038285056468234184939830813101682673505085508625898948782185570842485306055794928324334427667920183061291914371992254907064766460829121004762116491078365059776857458449254068471734536734363646794423858411542120048327241753419498497464260539741236227086447204081129568591259120713496628476444608518225059802441576443050097563680128324461117460237554863324254367934726562009019320567094986099305231402297966453187926882342176462957044233093005091632314527192629602186599643956066572597637611583682820175599833835530326811002811254302271801086001939805461033113718225790608287306501813296029266847165206618848686362844169426192301841405928812950182503060543251943195136711045420017112592517941676251369899585350352783929771913571235634855169824691084816605085849360894882805478337948264962731137251507035845931092361867228229406717495289737941094660387481765870808462251287612184224463925391862499967076492192055372605882435016475342639287520429293225218884736550594662006529197374743680781274608348534646221408316713034109450043542087273957351738133982621450268168923519133964354333164348262165636705106030633541972735257316586784814243024618119947870985590852999471246298834681147760065762138521623492675112384395503402556636874394671206007412135276965589445260802145349227555690390642815336409062718797726536879006119493479501111624968322658021946228798215451843558922746091998696484779216220441586630430673729534960379439486298121359080082355074925690704225040114938703244474554779789947678400152984862385079740264639183464457070579283438183997388346214763484397637082901730745001343662631295935440751719402064260241083952381075465082899849381876785533356384847803979632049786172872467711457676376946899784882513725786986725632523103494870611153272528127562364427292749908559440449460355335538582450859787413304367588886237113828615169686923176266523689623552271183374271077403907347533545743703716640399979007333005239515305021543090532784514942483670406311873699599755022450422640350849969472542429909904674522446065103157947260816597001971084842933050284031796750452990630069133036231625618318141894315621254787800226938614364111876306628042624045702433726423036720151963116562268692874190384216955734901225801436426172405822130538452629548656932415745599572765532160581977259702585178510912471245267941558235747067582903056917895789911786603460058545196026180545332089031907809601075571608986929740399655659548447635309868375607708152361008370379862657066657078985065710541072856677971450721741813523166751004307052154415284918663853012557278990409668800215348068129703497305376121258801944995824905905675375305189115002507283036894646956953459606293770688303661923516415508237730846175777152115587134177637427461885483296583371219005044146310691054330919464444466321998879070375660847191364365051711680423820471073246774386772520822536679516957382290825160613604443580211793603963367328025163482529039771291982353373583646229129215788769505040721780369699618305169532252691952271619043895305731790733621413630683743652459172767202310628623593809084942799010539377950277044627834137687796967003503680947215753354359297677078350787315254679392820294028357508348054988462165322194628037353608664765964602236868982444305293020315841381912947851344791076230754547083857933169961485239492054175458494289863868121584689299658623154527604228126621764725957799190834826282704418719718411833197044978767765635244123554832973720890283167547848681364913382596411033189407735285957596360903251456770204928706205123627331815417981286633512600770531743154074503592363851876548327469522759975801807622662266504946838675832078385902993390515468297062353073128402759942979143502206960589892188881550500243590628437741962909972546029205150189755434834673676467362154599716953715546995354634505839742857745742237006617872238154726544989501459970552931993350349016229326565686659992416402808014260283060760174488748788946319216440444773826532772490012425986091769124419509648678764908681838097338325006747766333113245707828695048790710545604233574963126396470670214820405595959620140157093820331101076232619781904292169866314981121622768774028186299930601355545241190193221498458433010968635061218093864243567581899008451147705123619304003960180922828505979885241479679745262763998118197756101159135093078084460330691212286220719027702045931653509917734448571294985981312423267151775253852090730177425776477694584075491351422901480883368159824655014447026494905373236711323348871075774854312504147199579446808690666290751189176779781150058282437238823065815703467844731853568280573951818986661187850414704705888492934785403070665288626399321916118302723448129939936047114047090174349393602696046207920960476856771751109812346720650299924426473812995596224732223134154778082069134905153227866018096281969491536792549636947593243089717986951077955384098558839739959465877633655656416589515908046374654701695814598625511262435436813058014885873782502306823821933198632163136491184459666271504028164627238435240457657719097991417776673265046352782135572266218334686644043859078614656467946724292945690669007024634879171889960358254102648690882625406765423828980644160167624864333950868270970255268925843724334348363878711339847505943468617457568138016566693417690444164162359359541638824593842608896732373692457210708844197631744695818466523244547741616029771800608384085813036046269948977131821949384911271721101910309907903082073798684916654940128704876297156500375003282913066237204269126816836454496668882159620855786245030055814480849438100939911860719120441233768695072961280708316352945117360012724390991446726192012855653841979311135572466666227376640336137378362310906472439949267203395460099655420133007374753936023613152991318026046733476406098345528290369415380137348718438155167367673030651041807316463826641722962573838915677230493144545307042412808087796402280800700530249793926961946421950572256752030496598173141602448616887723961056060389463301554347191524171443317230703152571450568529078958321195464316264795081923041923172139653488863560765562699596236810534518910741276297561838336577150573151665289655478228547847973918112664927058496787960289852164501284033573552781260836593113932082856827196331781718915076360705532089446917465970868219271752016574067676735221054954548696585596270970037746850728011089409204634027831505886295533256251208589526137834841555194779689524354159949624362792569045456860321868130605850090586899292358153689394439114270681380767752084830084030226749338769964873894863381927185479548614036135156743792414144180723091756634130608339064644677310453717722446040463177615880187545647326434508226724448095032236414074932614158230325334605612328514221630945848919550396583258524374367352028417004107611979585328274770025973411157190844688932102102569607039652942207145911960261871958753233198523678164098757098963648207780325808759136130649061854999624024365780703978521772494897273187014722421739537762303948241587884051227122006868779583165688013183110767029127373314224360882335229499676932904689768634695029856332512751351489596327287434672763626229122619134259708972402279477043077924498748128865885052203972587381736793306340100597997905884407048616537635573455029500264176645479768413173368953846100894223542675857049777469000292277361983721489072948678199462975176026532058080646686208040252247545655063316948689216996920194851103198735508339213995908399149191497967508011490214241935968466468236592637400855763468079307118870860752766746714666656537936261799087140775329865860645954615580867105809288815594004167963912450216709846480744112826155661516948196736486065463578008236678571456477336454072661548874589176705573371548602847503288318320137713310362534648322979057215541435291449331809446683374882184676702297756121271714377677296388744664843268534525003619942088232347798389239681744439282265831533850460574681933965951394941220794715963546189982486619324872971897377650645367182078493032605151121310299313219847014494705883276989253587156426731546473276343158242854293476183402999872006968183297957013622141523103658285932039300907954965169915169435789419600978375987357107072150080677761483317496200399625957380449062553036643534463753874047414180594466125828344278191585973706612576106428815417229517901581910468811817687396736292802026564745077389393288963466752825049624853719210261230061443925490261777284836084387150771317632267018263509364392653211043262461738829523223645172357694884813311629447597476310362676452126740629519737831011257513565812306545796630463707078643808129411622890758604261833929656066567814585149459019520999794688276940807340720109189136293599177808789577189827546683305273380574111643793479269660569701793961245520218766070044070871776245395933538851365245754254998022015756728190798919739431950164759892981146484369876469306873280815930947510531322621557401710254540172541071498451078403248450184078775678623098205074079604831006009911214991715384565156839369262948617482515618095846206380243254063944834732484037446466757270805945005996890164861180400297895174308401280415381589791268419869493694076285704600493881723961915142910152080558501034125290068719486440773699881827420366211684599237944868694345959283291022163340146327572990466878059205408129321499837317500292296100284703896730260291699161247878530199584408414708201344975316440700284499140237862713816609706489148191363432068317843256675199366275527900973923612241748599727241680471239926651588175934648471178309533634861825441237118655443117152599831992846796132557461037410882977668725177306116669828335472670214232066458789821324476392412793287491249072592245789916409614625633047042676550913711685479931925563424791677333699974585576997315164153554589970851953712763625040400332570405458222711621706002345388951655805098814627603525585184850824395886825973310112458476399752218973687552955670502440780415182211288252021280407352736318848237567258755997726797431890654765384640449155146096273131309514630077589257052099238357185422944580775332928443738234130075675224353292618843193599795825982514015315956304491399991677490047884221179861290155177081171033734007644092918310945117922729955392153514928984116200089854774634148857978423441697067758272588053008636377120702729320365052646342791826099160856254155223054987450965307539563350646136810198220347496222928500886169777279796254965813523972972403673589541031476413724401609656056425709303460799049739572334592562895746492788990901212893027592646234780959956060442676039078058526497035308302656692073027517368388208951737650786376298996798524994509858472257699557102813742124764484623977132621921050294666258099604293107127085605538068444954808949664972042320678518187103786385839641896419952235722171807157322968292530135635195039796706263930868236623481465374362820553025883984712607383465611429321470276031314892271256160647220242261336057388170932761964851925012508252679230530642522187064954526899350460309033510518854384375904145282810795475314373691497526405557078989262162871826267589126593019339550721247467563405708092955978083153811443756444151832198360230840969076952678450123275707548320878492099161341595286246574521958936903725759490123504699105474195734425479651530342362342617007032963846457830712765829597542290305172766302429227617606224105961479390967536766064966535250100687485874844107965659521452287994004931962942886695375208154409276419461719770313984058604242106027624715912653209543697875456324521579365049288611048694007997054028999670686433668808788040507550766649476146261842173870672917734871173423654520762809480348688883198232862862490342484943692527885191010532123424433754071281567347664631103587143142802183718619549780611005114806759185240929675195756604963822132370885031914592932219609010188401330073384355182468993111760771017612308529377981784531535769793519579533421677672733161115737058568365211592485800961822863964605214845159757262482422647857520922147332885384875312597152151717805107617690517340188191535929715383788086848795945531247591700080801642282713728778161196858708982081615959861372779655617876359294205840473215204695973815014481772141950828780239611417754091085792730084904128209113043449272666980436517557159218010896916903055708947057349149559578488266438891032297484069555664133479539721031857916126616926923153654899881099475806575426440349585317843405614744715926685216851846522011037528624521559595387339886351080924540657196897121088462146365215784915779323611864343727667696293505519986971286046091922323996584000033876582244977463945012951504469215417503155664110839172224396769462077228801255830037097849082394930367627661421532570562120974882057098102222425016668065770026575321519880542936121807085041432497971294299968966767351429655529022201034323026775031941539256686123009346817314163735246509686761727522000528248197864829777135008001662819619894980776891543378659174853723641811602022262597783961420924831863128409562671782640999004727637205642387535422834803267207567545284884584160612895659269741384313906120639876949134300188358673792406312729455527291742752264582868252505111321040516701666037580559774606716085022890720116420474627808999920302684703602409588033880838275713624079769432898755959595933703770241476718299932845096094842473537733003031701896895785571878378221694810930457756836483252150668780928072741643590558506012630661883941896561306369659862406282421445738980735965220275122848256968108129316660885682881979717879713135438125170469573827701790559653348183986230891573923533184990135289372830616437866719029357342609233640398777135004804694844085379667108285986159151792966488542720215759081787573161176124826430729858160476513790355071100802377606259559493631283289809048714185106059717208311211990513353797537168586097634849145782953883551127776065963480540226073321074145705147375482843699435909695358611040388144714449632066363959420038913924092501511088334025168051640424219879624184726700377587931586925539398825361421101828290437819148712912783093569739331524438397607999675299478884134179147274320155940820175038605360347035894484465146672789000547671302653923096143670397855550909827598727812365863444605771275580171549938841264404762175703391796482552458253127169819358523782219228546692205686971720940926608151654836610093538098287476623604782086721902722411271171253503406502544966050973522147250152108070380724618447879877929578376513423096088481370532196974768766881669979962952650369747949046982917435440760116038213789986250017994803572395640456715625357128596186185670609871535094681176990858949218657071476137179824674207563114940799598510375112479719252973663037103044495686965734445175754007286941389455496778856087293061865360579294291186074644848707169630598738455072172400116791706681885773062052232089374227515817591083001232094354189734286790893102320754993113945182185892268082565846185966500188517367216195970611133454635483883524918354873532173454223011708871366092592156015220519801572160630578404173861888834035528881772136989420967866284691628403471987064609786441240044989507496476312974882767666295303516846149946898512793920516380733204140079143538245950672868527218187950147468307582167470726435124646993664428230337893440491414422321175777861193712255620476319161103568768789079520869395089205635087936877404673797282445860169461591761572930790247699323561937239225814438462353362443200896062016972573322972391784971387414540858473797103098573108207191685685937147099358468444919930842227692912073297162808571369666582376990373222224806905034876159249457333010891869342173578909319087177973690506952278087761461343275443304732750338748673556316128830336241575463034993997640295651337188845575385261172696331065770614253280385648980266182497284797931423286910397162634289499890395833209152380657921382094136203720547857392105230674582908434466873514724999877550056733707347520829748515473196144333440248437196960383071875881660042962074135392361040663442862077897452872141255457874979960856441207950686194047499005412418846298502952624857862925714006366681582598640924088280060511999039526247725457108281287911601229334167936834775405614758247902097061917333500418753676044099706194128571703573750058405144599845311447761229202831108187194926781563214535774439349839135214112921998158789430129395343337975968454776477085435951025428361698282707671956598275386599873086777529515122701555890553150376925245737910741422688476498224333922399787982280174271370612386225255961585039219461872859034901301993634798781455938201705414201726788640731338734893706949839595946177360308466105458417169340060104586066025613304007042117141707904959210389384720402115461361631072871986771500871524900593038827192400573155056960818332001920301829001402360524669230696877369266689112527303171969798873626621442084389349192798164066737142175282835110798891501392305880552089315684418082179487967228238414117129601624007295166276474423010052107683727126095314353576925540207823697043855780249567886805394138798704584329708338173750863728646942999738378215217710986946493160577627322669608732673402395837051976681822468914423297420668877827801300128524185163252750788786297837651410503990796117875153150165250000124838126708470236263867887716945024127433168469425145088474912884079307942621793063596336938568761514903357322503896837340419100940825615895022997878450848133883759517676972682218397005082489160166920138794358090455193436661984839708396092951809893399258508213720919120768345621771365173622379807266313911123619236692127972533272786979185583582423500820919587366680310919579833293125370767672127091858478670104164558268103997078710738026163636707745263739909915260426150993187782800481103451813797603530897546186425404237411090571638663639528306970965495043886394890922653309836683902217122861703187041501704085813271508300215301387820219477251113882834330257904036433653894243400940365567989326081873545417796163386415725707736754284890649721985928333280165260070549372928538352260128793809911092110163332328144216751295694673281276653198103517207262424268701146978783273936433927564564775325515807513146125478611520689135218372030274362170685681456945821537528668917982040223453246411254732973251711168320486870866935895750981032824651138165061088709588705219626918073970395290456157135850994472318475843741595376342093680098307522363973286375887527135459754477242602318879628776382306542133808637962256316030460542336725886870726842763880498983185518908306724125062831741511158254262347331465916046023989926975996426569207802499656766712145107089305255158851242712823521878398930475233167657331541783424686634937213180171235312199011409126378649202986248538898488447902880038770554593310473209919074907876269457954961962866291012533424458968426554482912371391742877351827094267733515881838223985942406221981101921465509611553228565859596420746159541840803487416242296567349200968729816067275465169815264722405800236525511414972934312788931145404139326190665234841076426854547894602841282955778406198384205318123350466619551849441717744345615220501611119674666027240845199395676351909211233829705683215678536267742133881414853587520833420844444924990752654743611189123484138745724210203164261754108238423387986118243653658632211919720804022602296797023295646323919414062400989432491593462807641804027346941021210021000388535850704255580114781450042327473129965630839405318624157459735502367246266096076036219283397995326284151275852659960706700869979671457708141549097075454936355472516504191919817556451031353208700663448802297451786124378012646252502697037174948839429979240824228288842195714723841997593060193567440200493292492273906016295903906273504193622893869855873964384748041405013292742108787583723710178623450901433621539212851892786002479069041672325506795400953341134323551092610858226973662367747137734751862657432843607545567129868813511319504191471790355633677926994381940438671804268102505748841189019229088915791852942356539406743996426670186766251701487831270261186672837002819777502158585071874039893457001393404579141130388947244336278268220860319516586445134791542972210747015736995557423813765059942868914174129283050740068165756054882688607854102529843872745721413812000137154480510637623345753969604812360018211793615864433801292592660590919459222097162764483768116942538094232951802961472048623430428124885579211287653326618615755886237589149766359762626713179992879855782279533707767446713890897888541267116101124779569550018935716445118400445778051082342180499339007425344027718120056996243015216556676050253382359148564905694481117634176906139420790982484724079732528490054793024771226943871625305747207398431569454538285162315560513612479302544942532866607462754578894483198722757005652487879055821447918669664517614435141209604938562985412641023078521611572892021492107085007947549080029511660445888058962796856710324842456675715095087383520335256602177804959484039155553025465146548660913087052388596315762609351585826068481733846480243660251019479784597200625525948005437850338786400759834559683860844813979238774980376247419589265425807368962100970558129780710893790024825338618940173577478378690262335277055201159568005626623070310419720297473159147412639493956884029821764002155111077079333580307434333209719565476212738062612195566506978002713091337776234533250924068255505990664907787517538662285038398501265932087235270591409154104409250826158783217658710852348574796708716097266578558180420831841775948267896246952461057895777769165773518240885406669215677836887336677654643791115280956882215597947269807669693264194908868163559889248536629465297775782177872591122809993476143303682840096060594855843831815856284580189608111149015655167291141907531153700555065683798975943508872708245314337040092282183492042853763974561149114361886050572257998088639667730082590046399171755564349649244995532565343504272931928474025616036186141187864372287721815670986470664142762904247873817283810106065366278235936287324015637148524877171657250304835878509508672595878486177597710076438291347644869602742696829570237925646328424092565139226279215194268869786622297767232782862323428440454242948464020533917662417742104623862435253571245582799484088213514922196277675138983992345525096308332967972571007464745615777115619513838554683801716739295903482685648588555503017003456131273811445516204814299295780305372205867186303226478634631272462331227983296290806951712247601845004082131754733316806733220040447755236990560284581889084772786354378748266644300997067351571384046246104740201463528863636645435056087178499053276371925746067244235174350281721473457982406840818506894915325533203176165792349390050851012548646202078889869962302881305424242304579427263012745544916290992056770081704067790377922577493458190581488626888837215139570547109000288391600408733111746987667343469015742288398700577657187466199976304028681718204344145430860636714283377177178612143652795645126629205278750356927887347709160319600160894581495080764434683268176115563877170170696117357794012729233997383775066735015664957445576025465621356072739569456736821962538700476726904074811927765342847763157964868825083158619614918056948183487586649243262768332557666146874490540248661821773597289801933913104862934445734619022547372116508776914060833787205664333541076773673862694358752477926319991034293166399020607977883216435398376536422259735104761266550577551966151338147227856835610204718969829412953677764828234330582574658201114034741394763833382881399134014757908983504201254478528982927629653604008048330623257795541159986812906349030502026957358138964604378387653085549778822993404274009772586303519965267887179106148820293060297048736145095776568855770172058170991168924200404139566568466960731678855637296345289863936137515308101260661069215420404823553306717175247590074994620697135019871171822837764806641839628760318962075506163641132819009790004179737704671691479120965093375344515613624555128538169471588602899253969540906738282059944070964066230070132585215287361659702270936802367611255405941895999707017653079830397621370860168776035296707146119884876915342590383515430159683892229293255582822321406263667332407987992786018115304402941143215803354584003978471131015652257399832071174278350959996046589794718820934545324803572859561928181625321738215571345030875166525896744903277454487061921095657774306818645209147397918555043729929283412811618902157171023558073810186438305426498069300379579795651392879257160060088982438742900900759779120493270756544737899881706492099745906860554101160949763061684915868830773020518377644321111225077225096208168767864780069218312496076631113740378697668831242328928006244191764530109692585015637001935001609692575254098146585034452216304537574457775078223368192847784891389330279580163466295944292291147692294771761367662793630898106016204472698960719594149894615221928758588171362724383730495447738759433174828769620050245450730255780800938739768010584624279759233361163314839824082255539410993331794343866384193072825100899574282024506740247271496283129259458238752938221610325805171860026119648629989494718324414527548893404712593033188748832289471698433594643688102609382099315974236265986983997008158734796917613435793790947658045866677570212254525709901879945031976781187442296803127240011666176378469533554320283643860289746442020710915523402478816412596672134818518341752578751962320757673386167921919400370600215690093188711298555396914717063425540082407612725242630056119699720743195258356995584513207381788158904296557760841438240940161197723664561650476039683969867422344855115567220265835145850359200385535412995078603726142304856578621031822510193219334612232119464136120028812159773633256279227002080006624932893476904231421385788666031606211765437585371346946933020945368144704415938689812201126430075569420617740274559495957333201094947413844295966096112244192453467080885465577644061762745457191409906515250396000601118737304121842893316170309025015558254251189963885255125949216723300112229691336914449767033221831135498319638998446725794514055066077351730612890195089434934506226642977232228192784815012826178904448012243204578173954750419463225492900614157567588290296456810411668284580092981902854972305226812738420528050806003378441921234824806599619836002532060720206352220207458883794320578606225962945844436961400871333455401762077701893635340996732445626077479834739528109467401152688303619651970665112763150462248752296030064829904279591357854982468389928803273675671917698760725654138663788914289629183490890056102047254028998968417409420783400589635669223666144936468389712946796537214590933120566232001681679677522344492440410774745065117564653828188360962979838149180368926968195356366955656759341350078006209370616438219828492918605090901053491752101374761720258561993376242055543650765653765409808656270283434978476820021113553725354241271531216548123261693630804008911135207296141493397381796512252322128707916956051910636540126987674149580894009379696039637155690572394078004987036323157569280964564641114192885472977064751322904183532448498659877783387570466015427967455187279558178974673282314302259279359619749645586802008870182348554558962664410787142084276781358486231936745737628700254992927196693485722547267649372095699059593002322058365027302414833614184496472076869108267698013172731177268295469838223370591022133584965128047518452382115281614136076035660666631196854644003879088936252153929899796602207003629810172601435506040668294141001098471172736029369473598419453601444152106535944785028978966157497502900982989189806750039061835005304695900350012049745864292183817821660552628290534696778128539333729333533562796691652002030338556654104103255934499742501034651514931787523022179958842097994746257355940469159079162935620277887405366065557206656287430165344056695894233966220986186362151818366266207384995764893929169972256061546841945800867922019878325436472439899932649232061501785373476111151492920106749299117134046477968051746985002767614684449155062490987819358767459005152302989721711376056495566432499000787123190076162594934153043831321318890243368898476677333244963222021025784884228953308210748119098739323803775160860459965685116807314237730983177143263691075229024752484980662217064152248738252619589179739174118289950895036569634882160843328990123512125467173385847253472524443496537661224677402172926345622692639121863322427756506077234500753551429935530677645391136959253099128863339086151350903108960993995687995183547544177519527622938720730856647006124236563649877026368118556865507683534242424290875734365429268086205002037131107915766019720946706074360031637187925091182473716115288520972517708308566275887772814691994941056833011254379600982330667419795412005531863591373938858104550490546489356131434691797997195908463259066377658557900034022787699438092127082801926325566435488087166705819652925551033209613107011008330379150684297149074545851670812030529722604800831294697550647980353447200708005536474068146740200521592344732821790224130879644569490464622186214095078515173735921607848806601029433402100646880249189315740032915273857542786697393608817078504773829169797658147915720502622146984786653120759306601353142771561924944125272233859737798476593192010288063681615429970660654673787511928737485799177171252584416607292129370717956907786490484192367256420254816506097986933944658238128632731470774219132985005343982366082145383868503027835512042844393192987275083327038763405666715402399538941985869606893342865519352588113424111458599602190320050769616007782599633365581871490968655483513494630038688139943037802414422058988678146492384170128428736139098203357206568057501260018894769880718647971359334746283739882410993948759330289815876972746341469174628133650425700298187764067408589210228516337616958503563044191978385566475205111978033797576914317890315052588470656702639144450138416749246825967180697610347479107246668872403168018580965171744039000971799697778104083349462021173551475569790927010224038957074428635959423510759040888285107386482164319858079495141050224862283841393688370744584795518815539795346860631568903360317935757995258399174217690513437630784915950283246433514109176407272556146702371495092101584892565647990527307607587308232410446043238807619603368229806741681556542472062790231651119867358380913148561824902844475879677772704924636434659545674164314720400925557649972001159797133724120155123650948201016074385172974440990858919311842036404703921769344677226254053771104512146322123374776290902273729408589454079771630885787536701599324711807818159669423306572544544586813540168227152162196728530843041352591505106301174181712511917279506892318499229312715605745300871503521156313738322629773180848175329839748402861869076531188107816874209233063348558868443043641428765070536430645072894704851826618608370878662171156278102264324284653908986485559001402426778025056128642357392220194474966969631607457360806363767952786533858897865462042278462455718561880830651839189670637015949879345602360581943605254704802872559808272652227787000219719696035909986596497841770812127341463557688360085894401902502793332698383192931730575865294454212494471159356606799837759257438088868397528932929618985965348977387754180445629978086982819917509637949679399283575856066240975048959751541534650419239260641451073950155568810807505511389575488597915018598376119471679086464218700156882997462168840723586092314154418712000235307132104804941612969671806406534569262488318121289486414623835237263714163905438437795622729569619465518505676250474592135024637390711317364944814028702743812838801434959321569989442202356240107813472944880780926283573914716650507620953154244249370676993966393958140038356968746289722104539153635871465598859290932477996008810287757589829615045606168441814186445979869306587687748288674074216086008883427670396775265843933546698458723530635453526252305870185787909861094493838181002960982744431069721174140235672364952651954454462759169997787332024695894757226019296541482637652010170260110777927465533898395248682278166786482030272992607891607283706367225391172430382409538972221092080231274299866783837891943863047647854299835914323078705288799820144572547030342022206059054289507787219816751837709459927404897538681310435518908037597343384806485717119114054478626660349085716872882606256248466705407364021071512439671971138468554137576880992902898887506571583554486393023364108528154081687243708723496892951587550929581633576439422093662415564660661233250255266809185696742947451115636597676146144084663536365521707077353807223305999465475308329952657647405830291884380210786882081676274879636031442623040964378712506608046717057284683139283064568380267364382858110051208243752683727565482603942207978438064310507688098066139907378702198845720041373231318123580812284488796174936830604752436694333560703340437021689456215327692265642141337924193939685931899862160063929882187290107579985040960630828731591546929364157717236511817911099565168849942668500836196599010115886726754496802230386768611630762384232304396873310601726195264167343021374402435338473848234184122876254840383600422046043663010396693426363453335931103648563632571773781258074722765115851596550815971653489793491862588328415461863207745348124492643304446594733732249502243143961233438505154080006745129571188929009303230285954083751575065208307112457821522610853950893389764964234567128278293253006708080395196803763798807734005253357056341659568697864598511633404097529402674081546104118206539153234229490470669841251858360645030903477786741428618638166662353463401272070041420132737661790508227440840076284986518585186456202641481064258416272962732066138739855611611733101052097800742069586666342112949058527216198489999305571619102708254761706783154497160651232777247384106882188616239792997772252865933559445636691199191713135940453270285344376468109261681354047990087841787530272919118193007899033022626306246513884020010329895637478588222296897446676261964416397372057235988573760419526143235845542605714076748104291191813058524425946045776063728157341485487715247741007330184117628178831407551231310509753703820815713451487337944635449886600613156555933251768620143063771919290804442260537537562508324791812072410634288709870444666104320091855465455112431399084257721976064306474260962572367950547187344740818985633199309289486748004976809314164130817613647638662035527809790246930174781241260080910342808929783526495050147181689824164408302697926171343533172914107222322548518146465731212494381529975925117180120425864820643966972475836981915466640376990288658372165612138933978178633613909527072319360457953093858465818902303887197664824693330465190345302954250631011191095404663931061394503230906021984273163974022220245113347559542194335805925533968052917118119063961438265986448343577898370978814281316590749542239998140930795109953757918271919161714627538203813617893847909043225855552725666733452181459106971099070157136723366038675255506282715190532826245509499373612592022984634908314872119933694994108492530274846471716678246143766171499432116259344782503266914617176671984093614647060835288347825482348909322418076755475155501210975497020935432219472739538195388602772511727139532924830503697414219306745331995669724270557705947652044820885444564287592740909692989666580263507688049237418162344125209874492006397872881798905564462824098112185996330786927815087876231110919011931736690244096389040306328931287294915418136821992164600706351814030873560923513430459770206822378918968077196860161413742797823620409392408498689355791182795575161771418004980635895576226384815113933856541275229311396169034114823385261229113039864311980381169286367655314661824115406364930352205727672220178787707092795900153042176147200295377585866758865357646809504936267207172325337622063161741819062930106522029861538324511289450334806753098511973310735521532157769243474775501882340973014530728921529813645427199985900370480781548516051084831457753662321879864513179429040319341125584609020688762017033389711530708132728138616179073409226446443259584213401013081856095028990240728657327509804576201503525323980957329008782910238085969250352947838676987979342664039080880658340343346263586029854136334265725052791075107323133810671291618223022033745479144041615831603945656325628748507091571346065319052111970799104754140111541082996647854852901137707777216418907235455801677579706380025983026122487455741593936021696850385580616059065014853828239351321785552864037105541434010410327328147357951271945189322294816907040708131464401815210166175807951977104443098460126801497488322897460319558220847050211169717137964309667376449311013992010646146219319860257511718902724494064758835247675205560952063494051732527266260292314237002070520703272734602329654336338589814109728168473775527587615844198161862262514159310826346043156411156250846966691961677162015233014940467355388626111255850646885894269678170123941040863474123151478021972282168089222298937308074168567731396798800452045563885662699488462075115791112880847342819195236146694487076546188155697240599421573778388868520436783524895861211503165301139309308946636115881570782780169670656510450238772125182295659514980293585257683255749945413916989381991651377981616424611634643043017841013535708404345850744012388007941787612072597755632384658070007174244720197408431363501496803818548078774682276410774691665213514511669894092254555725163815805454407943770799924628378346001053621407739272387177568831644886172076861824493405707524616741409040776958146512452703259809819297414798545472238593990158397924195171209424403734799244796339234890533739667700491851538129733255143812224593160291419902866173496435439292778861330247860161916172326659772013411775966410308090591702824453308248140758232888141005389570537478011140257190908818562593810851267015218472074456515847174735165490542537147259510094694947511823951134313060065662597940813936980809065824101152775395466634755708457566258789649560812931484052176637560426638881831184014148182263133312354460049537204056639838160733322957004230514457860183128690926529676938061315193205980314920139309456993156085283269505268882798555026164631022649121812093415660423318418122927753678881050877423532522551249592100637837771075230923805245375605513882662261646011738111877990938625653868760938608513038781286267892945562209973676551975876565764336551829716649359637567214476044911134930980810316872054729234454684998918919651159637657662434185849837314945829073552362683003905450789109864531576128217556653664171945766309754056633786536958653114905842430798262139182449449689318085835846229952765912274509912633440355587891607916745887175875342951008779033129702947237755547217420722027905841881380622930923341189551703487361552571130234287560942228646233014874742165914414393471517571414651177211517253346558771486785844310114720285278746469408395857204616039518943183021452786039015734359285968508506026795458183721493426138847083019096513244345478708759951540671476483828639196354127839036489459790734366541983242984850446644904985191981702525041496201272396139986920613481396860782044583589681355355923416820462840670360015359683549579786465703856943134963340082922017830211714657178203434651435377135696578358525500791505358327219633980501826127819161157938339696846137733981237025498772710440070416712524199288098181352342684998075764080113203559668985547294321307241401823164078214558734929830872763727953297475249859328373236103761137839458174460863868211418076945520498505840717552376271303121233005602619219661088335134450172590232447037310784931063661624305614177235608919075775962414460858826934563244532066812551934956923729948008528786250881174870968437449942253088362812622361498363257786573530914660039936911693443132848036746965286429075005513148447625496238303159969782189069935919675325804759796406396575717653114888085349240942794608367860540291227478274501448372841523661083178109619766189240292975579085810905581770050754194908177874320945987945362058511429891424790011611120470624323885919649593717133987620472592365923643008829511525450206918055446082702292776965913599879804341519462994333045520867775571283983907912518310111088360744191996328250802011681708031283082641515638300208917045272375956661785301812602020400793292190759062475412417330476764972336969814590995049365339721834161738146760003286586043473905065149533075629371936886859582797564294240260452775622665476550272302212281549460463202437829094681922599082040785293466043760702203962742780879372743429205306565333422348056356912911152305396790551243165863658227925173786938700354062711310633982565006248314400268237509509955251944986588246555408356418884829725881126238105449401901221011293560669116057494622731092119136905653284541287621160135340397831352437183925861436429980512368421582515270186441008754484889820880548405493951090921811405095899894818896529333925423576963115191017513000521222727464782175211305349141263091415481062938757076567372897247468313321850649869362652765826373123960229707594879302822280769647712486184280605076780035570895916198041784347186253142986052207654480261954205167143955962435916946031030188252614681712871922817151698476209982250392498125372116295124684405275033775757162599544707056288068570547708424720662689657867701946164445254379189209778944000633632974034229498059214365185523167830554490434635837445299804901379085409388291832009213588885440657090835595647053476427101064473890730911090337128133567183794808517131930613671125475311186760804805419727159286597928465148800498102298261104278077874100039001536306127867185064593407335576219695740174363895318444094104637979910568040734742213650819456582638471702967448926318244348320848361946655413765253816409948917261929451465492883057604164672331085507267588432514081443833695933668848133389250775822206486950220386277357372271696767968180899313366648775664042738072995079134665196038607149877996353598164835466638714465383541274436613755166930264389632785285748960243711718271830926969613362289231382005131112423231905428654081706467242922987899817033188859851315872969714408519760842522837442621391230704737249490914196860543155000271034055564264806009919359585878278260919290026993915455552179880772875628041188187828747110413378339666175059240245932956226324886206880576661759597630201942207946660405844810429819926475478582327954544245159174006433876608930231957726062961837798498587271559040784241324139200519730307429991546764582355638380410139452815177823438655839570372319298828846201688700444172924570084450991321986881948881079106439645054193634794106609805671055621570408146231562932784417539439164207321951005250625828608165685310186994814358312403955911005374764114111486836637842436468015182121770015292632041629983229229050537282405615290885096566439553253916411813490755110718326611153534066871200634511884149040946480613450730557450221504085146672302551687511402417519361553161566770808069304424822525428431367554837782381866890133177443875775568326171185433615889807241636918893591395011809286640856368447518927119602117326757563473790641848188535220733897948307003878133056515328664841877369638729176030815689075897609991501521611385406820869067452344252319154951131209842432913734806557690218177793184365557334164148450884014165169896300659891564660662947443347903713337996555882885625423845945227111084705747678099169210213402527678437440093026378855751501979534201425569229530228143323085587786673918434760876530612762486975586160531181926168442789338060554751532848394320375091404817496529347447588830572875798056739411009374944946501934088458137138379720018191515280934357082085350696477584928513263232856818191670338046865030260453404882790708226677055956587285615989703003859286663738292924787412578496206170861151284706051271231382215519535402117573946872590506768764240929579871627300739957495269777332858355044988917419865709837159794706282047925318908866804380746566348548118085793045975688383760760345557771265820309495984000637232007988133958614347841561478811040581477128961836945767010471606665503455407434680575535872779683094733363043865208467296650431715064667330723047932135980445076493799452422399633469053791592935451584013506732255591874333710104937574985497149779829645131586899045579278194429627047165221755861500520033073739611653434851630666435153950400618018026583182760755014620791063741382890751808192065437770924462827162808639610329932435176594936748582831324731567156948223663370522288303481305229524079949517151466042018547955649083117632357777564224819318326046963523619321741217679541792082580004409661205558899284446275987422787719049018728920476941379526892921295132283588880913284867187502794259733541903816276833085681535580700873228699314290717438353241749775484012833567088647875134503557818579713561839547570470821706236889699378195021955165917761551636177014329285196973969146867189179848417931339610649783108310381466954034642038393614182508712797272868006307931695257692213437752809745386217197297437465620186527769977490658547214952271822778337355972989605828725265000562852039574108609396119549268017478730490078252518745698534757293237060447609426378523568108169908523326646342408248325298586661830934969298254072299024791750806006575363827826786839345341240386940548688593785428829112308981693139210720284584844155796366340131660509629689439425141083341388415567340060203477024694813264378786980293787231129304882829725150723831813124819497570975196299757379461239196757525199166496919512933350685972710003188203798829964014786687784363223297126240423963610880705763813064840189948118065020655336337946496107310034089780194718108644860928874990244113073030980785243135704573921482276328093802434409963598372656183377741474363311567337102773583420419034884601728423292788683918809281184767929224542576834131501346600745854470544968616938502007527022797019211597127580889004082187110633710618823109327170543060268933680267130724867627798626224617825357474388732860796302229250979394667143008857419038218435261080651265239515750727004453854400012801494855626604255051795464671826223969034498791540923829808595897157009788652013105548294777704056865614085468896193630414629398029632813636865984679392061028661360530947798597845281920734919561734302124077139372020774304402303223795920191094090610392569447544018132082768800991806682454335356691645852258572875274049779340117498901402242665589849738366321213286158116937317908292876062187737993042183906892365958803191104913503808177020158250083379442447668804622025589725938480594552976756870746569787507378874568593327849617289480609246298705543364284889313039316680185976167426392753887978790084885554745082346436417659485862608279474048350199798741023816857396445073778814336631999737216117843779814866709224041926135182569124997843078338433360367812775383758404624573543592800571213936007673913689477603604689213826165071063437166760421729839428625814732620102413718678112882294395586321303838802142174025650256912730872614371508246710530573259515047050479420064443565044903337264417048706536115638102822743389783213617108735266683108444408936975074357913972143590223783041066070453526991094267456040394704681794814799314759298909646604175229783657445776233666241965074497222419720169526132141249677551599101010930841686535288784771848250891846964155408037161221031048104575985968634231730445733617783816603895450329900255121768962413516257614287787457744308610346887459695655559791177798171125409209987538729666681506080066635137915026412194797648652016547162571852473108036525497777162118248168680886079808695042102019560900110335919194018935980313186658028574259726972954958545849573279866571243099064219308154484798416025574889928161598930392160319492139852924331831807198441803683012974948500776702647657302716289770471816560429662055127390915852543543935768906215082096524164411295752759625278811218220760573098674287192877831201381437798538466831536544699255284347528976218634009537799075760698538451618390541582736807678003631858116177735253959834920567196795891070097250002721007124645015686797932997692823421480424369253071079552263913860056121430426911976329495701090735979815509658671487514166391612157689765997301493805528038546028996296767480138890210668408658562670902373047009138861247106142794867220184466330524653962554133913672141059215290215907288434081163587601142828593989932729054023057529561612281640400342017179688938770328168896116613133485686122137097617356685528737950490782691189726896405335042803240752766837281402914700153102490789554528024206331859201289476368425335108518559504576232865706436596212221543681673406612096948091994543674185856451549288962228862342562099460929866957751037647337895437277499771098541554358144047126614305708609919016145387667636004325598073034039776013052535375531914879338346788937379861711904349684379251566407186986979237090067675037734895103928021465994155910460471823368660049993235324705948057679976287234179411110970488897596937110694409439134200729296390927976930009664107719358821935830182629066290809084758873599452576997089243143729888204915909850265430941501876479485991417457639877003217983078984187613220720541219778197941459853093267687013842080475147892161914339753589854435586625621792561375375950753231973134122217847914059514232707900609698012208451214128734360734295674845812575648701118626118867478324092064954994535119780733709833672754216911528421603122365371310141811968613911376308296465232452082016561257503419162834578299453642591314188733740255938010278478251220229477221649622744657446014867864136079394477883464906255324392528407149674307051920366110841759455249564676376346567919794657870500596061421100504443053327846076792422388442552388550095198318736139311913230221524643054144800819755782100856207074800354932907975006281617493574831724015382824008182936758792024710586504288559528053446484496504749554014058492836333610205794637905049155387718312055029688840477526733236300937453684710148447956142633916490906708524851165384607208900023606344158515843810967631210640176533449519934846665995373655634431371810631883986737309227748523425356043653637769576586445401313295643055762343087629097931382949811348071859880560950066557609577588225089666040561254371995825381992817271580093389601980474650442027439631005334043585399388746907547369337050329141551474217630080863050224809637946915880804871538506494188427162403848644596499610260566180821915654522298953412264410225208339051210096678868491986556926470231271103849453265175915462247090425423348234781536274823441325116207365614878677645549856867011703141892016328130315782470300719227390174412185024959100920327069844161668824453126263923907706091864660497334612000145688108962368712979747043116346166871772083211043344480378410946719270039256429571316406427811496394037742884330545656250862429179307566908063126847263889263196645908788065374685382536818464691818874922401201865390693169335083356317413322138819860711154033872537714779992861469036229490051120156390306347817746442452786544558685068276678974908727179035014309262077393821203219559007877172606303268625869183383825612523509893850340596257887624975217800283419963930652602120228383531791660882817344380313531182346015257283020194904144656713893486988311929292450412654266332872282729434695433410061668885390360799607828282326394531018532551567092785051615793564613260842146608507222333428427509161769120380288155056261404310874763059291520385121411595363640089733769617375521719813705741959525115403910113632153029025326810687487470469055017675938143314735248855523328444576292092734546213444228237263425733703077263447930850741867375612169133622589685415543874528672501210398610751499807392001303241500846683810158897231217196907808135170241526112353510199074163636932809780208930650030724506906281989207352463347415455976977556153468405530149782209387050136163214463506244633941567729411517305524405983105453015438590009201801000969919243987250657018412953056928532540504427390481555096727530945982647599190305322245158088792567066807555744163980844954785452804726675726001331098737831136313058048558388413429755264500353660696627583226066397568809132209043010056826685486966497864430092914198749301734661070488077370783615215442454833414866671324911512135715180526794308106611146815545078748813219198110804914007144203582425301062683913816090446130333957429245929667527753440324421477779212740686818015797876513084618216619234731007962412381305822477439323701061401074029375397631372192983732739973124106345216462420537632100349139903391099115555367662675587915441048480209924696823919055551645911766619682614836461023841932856911150341819784996748359924795588337192756711485308686620433186223453208268952529597451281084908052402578098145297108667022058105726998801130571883901503623299611746246778926796919045071352416329610410032692473804997109456903040481549037048176849984768976878833539621093319114868067246927279509014389462142951055679729437792447820808655733255430046281137794148076308795024428214588686151369437912745225886186106165591400854410767860711814762201119584185086614161968280422500081607299958384624406051034359146307297254814914336004579411874526397197108227863224563119808924728583780214545771898655519194751948676041939715822013611772649752302934326195278327977027822940840616957723627847858488676007331748266404246175833290916856367219731091530011969529855118464174446631537550488272985692006772001510241922993628441630737344696583439801776132966146764145801322203393410039503879900964508682395664793061036502620466065862293626654922436446601190868345238918721109649957256456430221204417437942552584465955640987420403849236861028095428912640667166241202863338081879702531556009577558590890090590759583813827872621037888118266388867649707447076711594786507325084034068354900166588251796408018109544589346100062346971503244368154755056235270030673821441434229767807852038074796441095667291144702034354321591344274619431690935995065739921703778892507963778890722428412194254674573152097136328982051916385748632650178868161531583150481889876789355468535919064692462454990038261222351894239755935126948581813690814878676169345592071574025082744722919016232015316965925964375975264386225681169486649070455103736131612024771127524285174200875487490127959564767322268499643172635974952631161164135491679461630219914050709647436502830843725380000399076933776486959396311686558646357635940277856913226849513448726522218097823434680963330322648195460890091398677364626520117469019994649748166866298629286980525811044761373413445452164532061915200728872476253907338289970558444956694197516750097715126303808798446624666986420463600283708796813603369733482124336947504162822767612802533064719318808977672577110461948603265818828725062101893822062851319155672594306057251647363597167596545784581967915766494193960341355380669570181656539774391675582675723875888098446686637372496572738942116315988248675264705342591453342349797717030010656955723970907144836074546662614197277287666791292457960835088053032301177818649270171114633433904337818010529040193231121779319589232425126148547743466181792599722339560087996549496273484955479950175364021388591018690770019729249166995545259640505918532265028025740090992171264418903542377458615287853080103153995682839943068032632475283657373683529166127214698682889047176801040011515229896104037351332374511596828435679052916010436357551716267148660909414060068575386769712609349020718833483814311091457887021153500226383444282702684740002344777034181272687118225786430965007751806768314196014801248618395131629348565454669820075540031033037786603468909934356702321077887259841627762254471226527425427781663680312920045431626595274684958852160664242477514296044621366504975890687961967116967416335929851286833989958546246256171136481800126463530762811119677796896825660586752579594008188422952394852312568323570795079525339853461762600854158416351462816169623632378869328071312899603567021293330026020395399578850400701543976938757656322774679321851846607947079470339271631529682145628932406799171513811070349562584790137738899891688396136493104072673258958365156078285340161203007234121963697403333523673612119580665586103864638509992894398157409759971253123669631042323829342474061407219393180789737061614024109346968925205325062959152507006057138993016014160619116463902979754757279395102963369403865186084957988613637999459660437560514552604404386272000601693499569752119760456517809813533962644005523528287787529391044667862766351841653470004527426436719292624153914783294124003604727946670402150429948054463412673738797618628865378176992845295755057971111489762650882765392996673796622903161964355747294290286633985927374384876271952446706745816989237319960527222598229158561116262260124487382807051031268205526608136237324799714683685779986632738275861283247985956408432810073048246786745421064280100510516572112666701824969076382100667359761150166744198893398715750416727397956093925693999670082547800163099494639125074354003940863370981513584406725749639529114823918029194586801462935880865624117189402234051424869056379491090401676530088813394816617704767211102650337731794971898060266741420491517547840549069171569765923145580742228357176699317682666488282508089676139672962624789725592833774833391882249642160534573090701924628489951350280933325447827663741528945712908940564898509330506752491872440492147901375628014070454798596121563753658453708755973309500887831105137646099832530755661944676937202806721389487002852119453346336567520234226088620526470563704450155596974502239255950269342848580205220049829520102400733370796302381541140681307399248197640479462615023572159444034198424589221531374465031177719131841044824927077214680126300898405608007395562450858460125034027658885072068284699704086102317498428000553530304606310233637660376605408045815262934220835634713096511519565070324919720126997008211775412749958792381680773284443044240501832210804009076680122688282718253514179643379527740445632501434118238218304233828127467665249077131792907724614365478770646116108480595010790688797932778402789418156754011955699942394004390817694239924922083247477615954891430957624985310515964428754438878573785446806228854065515941802105546524778896644115827333646878522284357820332029795026178794977987872210938425859706275573831617658368501124014760508457834907349775833781935921200532939819361805232670391845096200310001589013896954493294418902939228355526686277555348131737768192631657956978082896748258021362573215021130399165745132014454849595019997691523217446655979633388048872057723479102110927391042968533745443526336472267414545883526514769587503856529012306049017991176918354169851005325031665474459163093906691613066930949216133592976063693351880617551197829914955262404607288855376811239479452628819960557782157683737748580882786062283003500290826724430308055185149246252696068647749183631247389554753171764393899007630415873706265202481793603601908442745804710080278566151277626452841279675683829474380654559875603905476889855109354718519828203054167200743370492574238651501306420422920309355190247972690203310025732114617157566470791436508623531142302794551475821237240600213796775337275649210262206942791871324767093409787858206898986678201671136031979971401163819621755916530813492286526917656840582207795469425645524450479005820691372099648731888346169371006787201948259305556083685061388884389030727854075603988240289880833772556627420149221366824005446608959389878196480405224303997288145061014051641106273689203421644828519880802384542361830973551922989519217773569515979784578285614618903013077007478637583863132850976946473168783892460233151457183465856336367763463948828105926045895180965611622972920936984886457169841613353387284051322169087598645276622779044890463110210359546751933446871826367611781879535800722710559617466061639945284571343193854922653776175082045238292342523711782575173771363540383281099554271387286634517513339516689497293782415603373897291154737285035884509249123780962304183946103042067610095618839160114577326255235527661322866787228484946134172086609473005234639441068961376037782335223754715441926354929480275588065857330324398064923100360904510559387887717572693668933652811945735426880884055000671847150407373095768297105370395787713221327962726362262192094768057794794301876488783086179545267998202946213503850137993552485383553281668177676933009838751411162174544578854846885105708552973794548841030094600674841948831443525451481269097290337144174119916665944555248310828159771686724911610913274736949857625758322787747456278637791812727096663392355639677612772112303358386262858660294410319041265468932918605719216731691865623544106431943966805391169121078919283893548845555739237349929936769822262009036264856076680308600314702960807946482878914508106516839325448572249366146981589472410948716151242724418222420270200646609898632588179270135120296470563742504940475908065273950956473906022595446292568587710035708483046167402831022596002753301213908789622342731570670312557227314869511270168222387006657385849551110500085593030172105420530145604754977368436139100405902766062266496003493209795921911859167779671796232217909156320784585845010465252244346986882961439343185109413281906120999560151328658969789508923340499431746265400033547532892826689768860122748671611984304245000830816433393737100939108940321761933419255584401160389625510624870620933716469887218929144926652937320110724023230537921597577735297179012246461015289067763317584277403602015483864008372092036683113407449717095022860588943215754703721414747330761380518541248964854839944322085221982975433059038755250175504100275950989554220660587164843271390748691739183058509355345051351681167132243707427035147200877953594377785460575011325995770854999900827464448230505663659971485375968822166025244695835769751065205163184215908256014125273058189296177995815963899575118203890699605303902540208224216098277107695798999993416043791931237564371371661460947959526163439923133866163614357436355964139279359176978287801105894068344638124296132359670491835771063739651280082108273749250844342118238489193775615296004362861354767345038881387937612495074580273542607604303200108106316847718138916251855385603844282439476775971301862840611639246310790331383664998122459194247197013833799345189313794984584919331280484568894099833767135979732015220503281622375132401406082459001025945582522149739725323990283514025021651831346564996120454161491734738555122324793665190473287164874551526726654809694360260663937008030495748079910887650220934704019010992900564729739044468809091683511449170152348798064246314496364931739268959339800716791937776570211080248358351163674299848140381887675344130054921474222866031216601393399142621844954208441146830865409999074702482737641149750770808743076230767619120283618507254246530091749672040362539114528694627626781541311901693669713145192241899154764961610091107435802682685486649836349761322028560331497929557317175123324141543876366388844734957300316344769050451349617360166564956697851347928891223276132683466199182855063175715561990649516122918073256223064514199884470996239228557933728599894142843760426512046627980209753379739661788612309548681848677278790367810659990882812164773359896967875878964901729443484214079439097617786914566259044915924641840188104711891940150114744988324345151810936301593398751430535559115485213753142474725465293083820735202625056955804821814750779939112759178200116263840629646417064688227808321794156837314862933892843005123604999172225581915109999207422418305257430347417587926192790775367725283218413249587206235569543246712084778756889070651650482646091952186486089855710850101540182875142121379517633061403367896832748520010781099730087750840535181778499287435736218878580610279129746576793324580777389724601569440209645094998085534436602909645864182314090534858551876468073673991736707315229778095264460808272598655595500603869569613973914203880559396064717699420119264864750192629213284959784964822565454726785873496762789210593295620493667713558353046131630914445135682018697687663845113108013328882415166224892071594118552247112847582525042840926423311923434670450636935592063463772454568353645115742561304072437835961365968964177539915110705148283924279317368320046205528820906167485690057365223666289540239832687184703064484342563901473141774981500450871141308689864686362913102700378759433108174156080772983785337550340436586046489429769010369830425504511766933605724090651993020708324237640815827404137363721093856537099718825304755645108019727108084518496474200699243290500627731736066297362123784562179436137986902690909280691510650376501667699302225748492450417548104769459259430389258435896613918178157011553874418001016715709712740307201772364451508364908861204297030072230625047891755943492392059747669661917409394008528141595762458590115783818798913710747875403399929818915259438896377084221417840249852092206312372091245640675126725357795673975259762528619650066488912545289667290522239512565433972987415508009116372871746980666943083066695433060990117331114466586096472936840095216474846337938716225790676146805013603287283105362661387469426354349689878499363176857236893724370874261322057844426981366111743441779737268381310269371334257982857164161006976244432364660858302053605552010966939192332835455532876726475659023021241860994991832434685661400605213482526956255922747938945624648841040640857963568089010144049026682446281859799105573649097427786801596141040315225544626428925772983194939821602094107510631299429572961206702521378217304932264821956425176784691511483662980046198736496267426511538986716517144607349033082024664392860914411959083426523440713048832129126860218257555740310921383193176116268091605361990905079721549316531012000671198582976537126115061908703814431163035728088093860650931637309288427902707018081331855001200482017611921994587293288073191792844839565119826964298514312628535560125840921342882802780715590402079827990567454915301222487432435875756479648295005701007116511700165895297804245084207085828347166384421750867476631439362049912473901839044951153133435555299419236220745130000291562964014234403529474423714709567387788775297364932898701391627525564506241803904140434920089760328867439073937395259645703194371756538836492397826691629408296903342266770876431770645667529698542435126043752024009534307993319221653646453735376225405457730603966412584532939449277955856301837514927338867828352835506649202372431036713767927017781617911901043992286174720711321420792262612593707010729337715926846279916035252595947466589879878416773030920622958575539012839282255277438918162233840444762367956476471670688437286157273429484909011525732655385241314553571374185042296156914285935262863092648529843557490498248318500102396652019962917368315961193589090829325060373209769102339381335087754007569386714574333996906747657041902760135629143034999668235904038615772462817817656321732655714768634329387107698965955411020955871331738947857009721298078738358034177716867267133678826705341514011298858596489245573630460822218869657878238621500180474828768277893592955514395238095034610800697136386307301969353921955967201251006490915933713308736951001170947280486788398184978932215960521741144341591080587302999473649938966632179894716998884438573094468404648916704287450693833145321351714906339873094217079237994377931121967261164291258869416895303020868030935513768125868128057295756305715252377697243686733604294663791939923307296225729765723475700122788295805901555360753801940019386274172015555507265949561755605410181432308955836830942941662449938844949263311838426725598121340572962710298765554208752456112822135406278832476272016920832234862856089282759901837197976820609512262760321709730410690443948577189732061064068855471659882277286779299555396533064157145243252004111350841777030621449164211941676094355340672520577679977779146589591646759394119124091308016066555687397026037049065571127403436903849085950027941316533902189329705132837167382054025317091103927384108872248962084528223184807991391401270083979301795763292076964561389794002451713006532803697572139731843747504776370327206773421165106504646078398998572905843036203703220311598767650707046831077730146628418533910018254117957291273198232024582493393972250756754713313168466368226928708023332931816081948080229131417685138561110684011446806711056072517730551217591995882633693406383592858986277196966602681347893852097472978193459909817600590417811008475264812286861827129624581039844646720847071559168068797384907891141685754849283211317167167000264955500064283596483405599723907079969565967206223996973679356523406189581334424250161901664689083313063132665764810142441713687103285383378485429930381456442114168301023594357637163816841506312260125384049714775938759315445679312169486423354819940026825376435143090727802176602008010251304295381491274746348768547521163254985128271114706842999201137800355825954797231925984065169770728337536421892585576518123527197273365028713063854795247124827893346473096448920620308415538022375906468730785193208886007264021127435272015099402534683845660904516459265956109912667509556547940954805798979844055647623398016032637676807703150751577414717088821858231171297777338765200555722155275262568129699275377669034960238875302768037490585839635852803592151530522716425732756658748904195921139989132432579032713494035034197575113454587792303978633364874397560066465186103165508391989839232758098330421835558616700936142472576429321978207415209978436284890528530663980609044655599382610396681175254947666493998865530257467151934280203879060487179423616149282749233178103090058038672634181631714829296371503945991919519687523783527095299102989706045407646982864497133809698209276090396450388237851594708197594202894660705853896991705403259097564136589042509792133363741837708920732060904218279491255058677779959830708645719377047713344144781596725240552305598784612898787837711918796467332589750740891560699535815791026078039553606737748699260979737458939139155638181831548121800251370183133981290453081138221447318322419740475851657159572919891724018214831840102621884759422703587087393316878998332218832807659961356290289782045895483849472559825065818918968322461409668830021071220224533550635723036511313917802449283131076688132001673239531840594523323855231221836950849876430714554097285624683253433183030627621356444106336584083493730349287861966314958371418861483977590209768869282704798447920356599266363740997194363678140232416189165306189197352224492943578446458465127244812476894073028534107816610709987414144577951658831815759658537901954045687106035367846137661419608111973463757716197907556434187998577820355554194089526884476858595777223842604540874264736698403775029235000506491862585856332504122933059449366922805914811797897400928975575267258608143774046882465906528445420122218939088204203596540272537747823470684637264169085692099157557453560600782566563415301829965749770923032311460003253765515298577930102639197673157600516734732000203789771675813227379204081439514976194151533870519922637325052956371923961987563583237480284649904400045513035984946779121644586992191184630055751368589579383459697446876340230150894405914984633678475505816063852189355398542434603529191569771054125065896509942902098263119591315457812563056036859533789772200592742256797958472597698949711214680210518866563078854858584387310720442002676578139169364351130042898529987868022264311224182148482181427414585274107137625574238896792792707136133943629236803203927443714318906731561050630806213180576625082757323645314324176400913899798498145383468457612337266190271174347519010058914306550150747746498451388643274557846302925755100787661042087096968175169884566670268699066082926083060916907572528485028704879430737233912045216445973503362706224094226385541523147085349462822023216374501296520823652107508646866820957450904529351906399927821694713042779071561706146470853184554109625314091372050133357415500343553244697369936751091085920438657154644359603777739626740532834614263302488451134394569511784998700605940128150583686423573305432622102267599593343317286951065019905518542827478425775777000170041176122346315200201465254925613793455043577522525924153634867392548427193419658315795007166711335188634660321164656041813709818221647617431275273784804808843993292119400067652791843525999316399277912075624045719679651393771773282628906880669785215051839061695450432141904991128630337564605776464996985746322402159256962055993989279395429340572227640030217827122396360174034874642716029299099764656713410895391892472850006495806808061390442771921017873214952713319143341795701687436251904322089471214848072621450313460419243241698814921370856033147758102191395260015641560069799289441504698665650800732132276803639129458071632067599441617833637325774878927512918757357625670183262430475556951948952230148631324482959331849924181597516052825684494610359114821167035381240051604647710508456609650343848615353787433863785744140905043867711196976975021483253555805445367513752296248203623486275849947043273781458030118463581894144559399840789697941248451832323233095936026221346917189708081156409426794379380741869244176515531297582745791218650376018649770531492871832908985300466276423537585138620882946443394863008754668920486694512076888037768611458112237568432771052213965283233041251681795562278001521397605783630122694559280150049103360554539407203144085737106821863439087354069162665962433149768044558829034735259758723337168977017321300429424115018440482701196770127626998351208141163571596039959697698992247408714384201414303233439663815793294346504006513291783614281590895455287917436714647734103329549611158548384634682173252581181410326971429456388495425916279966888225087247047780037499165375025970997194933888980705737486425776333793778890359860561374533154994128606986902368551804589489862388002629996691531966256304155544405375449648273995992768282186020642884824485954730853491394259423351704445748983019860386407470376608188967110487159544121706955073203545470002953715135227484508553391491299754049143823897108007714480890310939978127229533689280616652302776693625424978721511005998791479675050064769677266779863118717812028213305866327841932398413095515923706808980854376763172771080397189595906675722537009398722586777354596402111542837316205424591270053551881411986859174792368667060266081350276075043598679963191191868401897400325712019037805227216924713222670941125306332086164702938262839942933394263329407619892818166577633593499669588234062191149573591340247781366375922122641794101268264887623690928567205194970877255314241720993042518805530335618928267117233985596522794084092490753691725056566710588284372425082659146648671026839023022165606931142011980841557786890869202062885831659065443076584654417515628745397741206451685631666083160013370323430778803927394772156078388540165539811205093367557846784148136252383190193424533860976858019459402548132252796267505698431862402887532270574598616511232460388262716477712823321382549337276238268983775996617055577303744044727164404698458388165923142290117438361450954575781216744631693715970915050807882246467033952659292157103395825096432825109603002147056238688571407505915496933287597568582413705901243575419542845621593871754375964695627683611178818124431321880498887248464380365137905020028823898961445890369527849336763652121173489762416930067899346609873625697119039946559688148881571976961351791059311424339281865649699711877076809457657521051697379580605045458218923402242902568717502729787283772560095339199105656144927812891331844300061051994805529802410681455793233968875108970730710555363951357609346307586131683206002167657469925967404148720762882947754282426865955160956170530669196283646990739060418665000093373229542917035265374845467906476335029897009195243451376114298804583817484120953582836486569557845960489845282611863335932600720258750037449344626602428947301333171701958043192209855890518250858239232871062148280498169382884555782475752087750532004744155511484334990373715566897979018408688114335124807175088347897622330828977999737899478283988003871128461075459597346561246713404298201456943831806140056969194233875260906990729411355231688625930449904356296052773013431932765918738210997474252756036242716822787385617759996319906876388841749185301675455425035790440155680053540035143722135755232777676528075608414783738951438670981725030416776224590711138807956006247282739747111172287457718065836735664139570060591367912718373482515950829417929199527155408594170037247242347665014260771887119524342115419323196267784018507471775494291794208080897853197262516047477867675392461331428849628821951292468515900523682797374862444174695498673114630861624671570381846209100344365884612713362894814494534901632231851022058188517967042269271800677308502969095357934910588882194648863489067603577816631108610450008872606092366007497342309412872557703185692239965688979258089589969713518866607371099724461315137658186906155672258031806894130292554385568659274595795152423953373114279095693551930399960619249952383695160812490533007913212839247612673013502846075860191008849120607172535795849231604916181382380644233858647915800400296572299906463188602755695789886029114266122121335316902801632195570825524667186177288411623720858203949944796961473056938573874026790720786673718610522230688226891267585151041171017171637020492122894679270366694385055266456745884772822568706895506057428128149706981991506320060571917829017645870029712959556627688680348894690207524832071472003684325310145619510421158924520470751687934791013573974654067687498356984715749904374091339436896176536669571719571905736418013749363664239839321531420895111053125945281429994009128575429605769501527223260368402053074798235244921218826727389024126603683743593529141399927650948652389771356052480135653888712923794250979752156421339843200744548601475759005122514604620733041861899905063075499603487063318997329013773608317872957905155518547597993432763046140360397721788790936720929546161894543455488077295780219828311883483548225958134987175368617096495221040748015766378148707963874729539435113033129651567985389339848553435570481281013893168155727321337867799757526194075532796876561950837164466442832874490505995644258306142394476466103674887246661879766073466531605211399419510290034513547278106834781335630214343918747232702419308119788933344939594916949045948313579956680756955891704115334556895703939370391167283781613920222978199743124481788200809573642199078764072642209420363159948204205421732828179928258562489125818312219141964016084197909518657600894983288706503671297945733185203472101057031691629050630807107790947353089699895674795660050076404379556210074887698640958924028618152859468553105420597231693812006172801708855033788355648303852646340503229114618781939962181608965429780390022600548706767154653959293382158601364220289231942084795134193506112876221859162866250865348824949164782387659773854737706352352917001202760097498437403614888649601877279213287473739338013291841815124240830459683223481917597756754448266414611695536438629869249995556788817817885904975189352824950730404085141680085474701721553639851636827305943333347784842127828700458348744601905972631591360396643312319079680841781565405997857062953420185449600894588254805446685041937096668809528566662290725540135864342039050291028220818245902708828039366485583551958741685089093396223340295670259388100333957389173467672645650389483521027414287750282255757430996515483145935998687460065565050749991623222945317987623446654428967111469380546474777398699083692540445191028840301562876011456366337420446944959756320977144191102009220540007296833524730682440923019853234396928824583872358621993550517756450617215127264851822930658600852413319263641653124522293207242861634652712829318181013577903454529330943515167724031895825818251649658937657930665546326044392927151001862324153628558363969527702064426287130692072120685710488892374942586195835407192195103669338686826722727541948543631328871170716203424085714375563747738012555074888930347171537852825935161543175125783046924746570242321011381270615283208350098425841082045277595206049228650601375698704577130891405585544883484910498130736473440763480000999956936137033022448121564431887659629158076018825318660040638898515668785662318028938180848316901838526374866003876565588208111746878689832877537384131698027258980421577089191720340447723742666336462326341731079663486386250427599534560174319441843450684123895646946463562685002075699473708921452588029800896569225384040254930757318495171062462742726676559679201030348785597298113237924377185287906686003502657581411030391984957179276249991368393504037524887891433301088312297777305954153658467314650759918016261971831711542478041650884427186598846967275052642395932513230444663169031809112596563312474555967626039076731637647695546380316756403534672506406476848020931030386256060047990628964582285082855090650252634028128348686482564519069099291292464756867173257628151219356275567608322377831535424540864976863439647976363469757550866348796516647686002663677332803593925266908016927775412895773739660848565853729575438762205338180138040195087553447101954072133094711491821098725756629462238947148249753486229542457843949272770940012427663912809864648264681101134772215097351109771706996052799962258050362250299463579593851427908120148405616894961473332650328208387440687923169346461390665221207231990714755182589011644189737789737126591617532715363674633819713404146261922349552903990462581305009197146979567363963294366648242359367475206799053616900645301407443667044018170054142747702327804718647688946423271415926337190288262263825555892598773715473349581258790276850296524965889166111476193185814994245714072421003697979064729390197346873153602364627915134896669545931533734526171150032153907760392508364295017190818415613351086852689755524726639994149193399698219853335196672340614143929145516678382673142380481679991026775093767540692923904670480684639305059595429426606497877683993761049329319472043453689212255174118827283603370263033062415138046654246142083134628502360682932609015882233659698616278282992759597441740636447112692966185545223344066863757708160098040108675090431760449483867349769290565716739126328541304567481493855732685188816071757625549051300590413349861905812020352454664174173176597608609367939796860129494950803552101200151769555723644720213414369730469100349219423613899992135222345538476131364448890590420314423669116129820063911198650953963493173524231248288219221583593045228246928299465870120651243287461061672539391482085614025086266486997490997552144575705418515391095137405307506874339634747549690671260933067165157801849807328950584618293283390084680725957121112565093277164885566266818163915166635411251361698054002579553978867786021443819731142967255144941528822291274250404173377164427590800834276067689197099853628278630887339955691394675801030062346266752716327570582212129303757996458835144027384132350732382453492077057950282022810718236859528858279715756070829149214269071464142544991445745091233566900675268615351406844155301420343009137295679336146137016365423950753726103565147837748466034855950636361203731582270396028124342323498453199423178017574457851092922334409531820117945389906297111970479315851301192204519873888210873903308684375674844404322782477329164345754845789844738529603492238561966685682921421161148785408290050903441667328328610544807558875200290470515135433118840642497270776241006027832916450716247126942635086849439027699216777676748306052728827802315743285331547768628561993889234819004212183683685590320542150315008544256375845127864860379013625905666020872843293282138898650030145976893888868463256072946888967173536921048444706880380045189908721123307247041724529496499294380398056308586561400218967974660410630881151951585737926372327877579405952327935435589467001441153207433490787437811030823876904819192920361958889365493677327164704310266032375027268700877389174408284362598267185675984422344077954690893596888697087669974684963271650171897132683499399241844559756034096229021713732367003588195612513261593229215957235727557764321587944265873097632832265284686439359714685124419096869263850512468385903625876655889825523724584700270982769146290749663282860017756386677717979357283829206000483516956281176265404377769167829308312625449383769076358638283021726780083601025501782351314831251021089172807894583226099216774495697813017768846287722646929293460418796491952688589550189452319808568595931129365371749675939257062187985340664259661330549452440637163392598064075038995954859423807234478774110603857271378764133423014045010274039688733118221074849955212749579329238591603277498097922490457758771316129753694194058999708305419684662810136497288164046570078884687670873136991776052667127993762048804222468902229800273174100180327549036021993590317429206075128375709815639366117213411869678214384361930000392715396301521036254849820335774333694420357283929899264227718762713716207579647578981927514251437898387912564296235252557578160189788728520053414822435580843762614074442969961877442326903084894626939833819211253548500883796402016248807078958105456391323313557940447873586793400328402995100222931461250131315897659436488766393558620073668776744172956968630116154773547833715486676792651796128559382971835134945932848961771972150394032175420524056104654800600557467390783664889815068617895731657409944038590109504651548569693249470727854185888008712508154383235221460590271916014946812210229712357640906109515900683449582734622367725546450683028294974805124079183467132081489518219218103712576945325979958074761207852949309638738803479199293930912360845442899392865636268363088591527960141940841001488124545609415778093940056150605786667532914282599248360561069665798000554482263859333829779608324511821963711870374149941360898424538451325427922383934649481345726786489972657489497993617178915701478870813611769312056919834758249855155388329366103876011389073050105421222056514107854736675514254726243825697061739714362525773554367287123475331510802853859668085163363844753857609129743604605775386386831690899937349968147265876729618535258227276257751609793320744722949640375233341091138527090124746867500331722873770535691952559422251104321869703295392508936647141552900014601497212216864271679423544577343329736444890690709168590213558539114753151385318581298252614035620379451763920751431862299181996686534811709446063160707235283855661185484791086145373522477750933883357760923970286447575649538761523899477163032494280364247948400886336968300872413537539674510770189392641317608141932715239984273386342741815151353832939813614858398780080383674269320247723764313937058027589539108791351745609365883944499710805996247607160169235777674441053320769563383670675912410648503550643000602374718676010189903412271487422490816341740253046864982010491381951411521468867368800727033339832462135929500388059846790122288469314752376301708517785731081733610362210676403353145987448907075516405386720622296175081982211897843832868843770192718310235205214072669676080711698539295785465421121366764052259622348828208119421364114176714753184524265254425153200115941080588613274226836692286219493683267537010608442914038448423127054478407741214463787531400981272155802408742867127830259762461393732764605854505143625751349208175861719469304837438996177820356312167841090631056231399071586430760267996813855429921285264165648924446517509607108682899245550960629621868075459424458255139936811676058977602566697801872052328333755539998193329630326587690461018903976676855782533287949137916397080025280400499161939350603222898649690428771850457846887028465655897556788355519897743958748820658936305527693233896305203782418223104601282602696192356618421323164734519378758565383656167360338457488782631653757062848685221158657519030142241180444886078077302131670161381906954642738350984821432322894789488930272390792615261223190440033935417142485922733222024631545116805601266690302336779969175247391601847324227367317291951866887342445245554258492965363469454884479616875554085755985007723145102767890940655156477013925696674045237321608169187193245521847810530414603426501371391684433223140086711402174359509606045251720918686954025581696303263793142101899206838309686933943811988616290108875418470766184218643102680311242296631399747084959229430137531525797183525757988422141793400625502911603948587316686904867982685636632891907995257186893081746745152148451711452296597571160739867422888459760096384203715393094883972243488102777533811612346977266783472555940903457776607086515476840770916202794290410532398211932856572298181816313287774904840970963513602874327624548879835966424161258068208234298491250219654789529996678840672361313707000868557507146557298381864048558316810405786785509059460613453311225813566566147894135070265867484703099473274497666815821988773025866450872370989985239609307808811211481521175948160816675087442680891715188825640331601449193274718489627988311203519563614282668135084267162090966457732728371533131677930958263296089646769631562349174906961053921883735626397886846804588501896228140989326957947849238879490647121998191265057823774850839758771779416162091725927631170823916258826176106893886467303664233225289905963581823977504356427493853650897196991309971872504489598183501812445169844648357964089470838155314637861948854278198323947666484690383569231644852890309127156133866577780278666711494744015268249723953961202254275946429892714094931271003926969172360491660550046134920601927392945914719374725459821646185889915235768029898998279839892189925273486053528099349101667852632464310128734462578324346342892716901384290449670830023226560187891414605863584672456236844617753891099914413917159043214669387939675006334403546747274544526143540911560500969923740209343936274823513755633392558821848356985699935836555260256310860420503583227535891598263260183707595501967841331814583689952852181576555020241337548712147691636372960357848804311448298563606805940834015350180185156466921556339317852260437841549994341033237676588466268470428491326222529745206818440979093619842308120228738345257420203825202331913631820671290572572623740332803599916573451960758130134875020077796438184235698879251326477844912513387381327198050458648544089635654624599558099970799613413269704300505562190864973025435379818751635164764269244933212643345739345276102382727615859651750406958097128990383564806369433101777607132061325499062454790756556574718497787528326893200886164086231519869847062154390172256891740833804537451410151181410378257293029728754292833436674500762984150000230147578754035717914734835025497532676463272733994948779683496654906440302125684540313117419234931217171222252534067904917559361062001980677030408375938695794119214916719262400867922796639783740273072840134443920062055657241523259769896834029632998760624656865671519378753756719044493010428113673248320323481883930078233958835978078760201821570371233534052474256396458937184548791179973338264254441945351131049990564828650453427758293464293387094146308079292803297574759569275574943902787604644389970068223625465604187449738823255677064826532016092637715853935755783060088533058811454746285297334018037835578013503710349003546123527941112988536299930314671145703966311649925802432851819037117290476250704404272983622423247014681647026601156353510725783422668835359441857611223469281139646616867815369655820819571785276562388016280767563683393422236074354565512714779683762276490072229415482109148629557539723763844421944407892638956768881351440623618220290212616570568588483592415582352389676846205805989752187961642530425640952166254008676041630208696304561001029154814436103096503583802256629952699509188415563964301660471794446700699058137500293757360128213152980398261936278498454620795576632629063174159624243308330663952763551882740462094834585946331571373455422689759772496715162794005653753504868013433251752212228804631864331738619043488897864372419631311380290153629690054485502682940906515670096205947131662070448236954388993659304221416321568794559710895720800790067767861395679887333634126133726350493676319544259483374202411812806128940239301658987480104609478473520292931207428811150686157256513783815208908004411934818920158553546496192867442195990309844318889737867643456559514729703484612834891624205705281692327356124982074615422006498884595484620142184639569455152465712378186114360636312015652489220272964030209209296042260726933326403201598504770092750282321360661128235693646835705231044097827052382362736086839535176995905119444155901615154537147012420907519407880102729497767734369002840812247815603227939237151128971087916700610380579524462364364319652554363928733020249395267903408881928035859597199453265085156970144553306481248952744108962951714276509511136735347147834099082279463348359910823730980207958992836288376905338469486744109904902243929130209090468582251048584849789253848820742794104612124568455456282299002694841622393071707984073679277359347800371282416083019767644458887452273351286651166291898903367627923944264877036471758707631118268082322528074232106108303493213747300925480055572613644074408959169584346278057277294389737117249408632651841495847226085758092763133262482626449108744000057152463791377020054820589652316857946053821364157940779058443419917759293572664727706958931238722423144096683062930286625839745249077043427504030720066161616459608991156442375623407851492899280732951917444260650135600104038838294967371974738252694628176742690322001570447632796261821581998577386410119171129073929753559051065353983539143283487963773932847281444770656732016392335057403752217368135787971056052702312098710707857545625700534429756071878757143002743517790832231604042954438486967497739171443557252568612477174195236578332902472803521433298631084997014456402144880954366526631935505218604405421521017256075160489221257691785296475113848932856418256859533209004700157332466884883626921764209084783401642664082951446224564820407060277035442312631711609267427724840568826405330997710104304331246253040794678986902877845498288473174071157203331179733499710272750671539596838958883477799079128319097839782978133315801946986403915821858963047998302053861683160715175460724024433504476842043627714713882368861324136491561768017402663074524370459130614105242802300740476724756006711933158213525624275293211982304277666998608300593335360387266223831613528211876421192340903412695058150847521447302899105329851707249468713898921764663590183544393073415948694561628886935556937488195764952477386460696017202712505202376556368407284533349628399569587665350816471998013607992801665213636158201782769333614139067701703382822221060126314136528853862465918184763226601045812495779841545157735113160048384621753474465241162484104539925292940405707597937130941686342792150548561109571922683715871175803591551851524773793474088459202757794362672709288107774679814635853352329076325533030445432923441879050372370543695759574755641778560467638474445443941527467392929996118928913524471802740698411353254145937079674989588311521192288737021078498539973160722562420416048139290636858097203603683178632553897219910320741119773023207784728746057531453612900332180277092726924542445461776208019097249250742140169323962364665740686024280267631880695455950816985514105896339212779098245742798395431304044270234508555913744943715670427355919689143258727853586503277752204528054964102711505271525098737281632492074556689405327824068464289068251693471652157138262818183091986616986411261248587180894334599514940261982856769714846715927395462847840572803699431212769253533525125596420396492968351022093587485193242484297211695935887697021064060428920314298361924013393119860603465395769117367554168270959907977588016796073946932994226920452783681607222877105956869858288557968412888242435966772603308987325764147012615940878392817898803023486374890330898605682126178127777357883128068322777081629654054658595757247100708409436565707960004775714054590890025750113410132095203050777279183946821240414432331002653830541710294405495628849511662805080282442447113795966602601427311542713880924716385650813614153513496815922257603258747440872272415863404190937791520404381911759960028474434921337369831641793042606802669509249392301988938858211257183326730162974479542140521065899034281558553691167272464757281064383422885436837236363133406690292717036282460127354284860103611996973372265676874402979798794651648850188205043291977488194884251890724987133093623673968559617162268693317236307593861069806855655262499517096410955918902884283816886636866125293151456174670878892887456071566756350961041492977203301775177691659934607964937542655405876864729169401888509630469254115967122389585522332083607681270634329237900237297508985349664554470430655498794246548847691924782439382639596424262646214980874985633124275005013758947590435118678350127583501199129487036050538205810573287774053863578946166889462723712827729839741722448418594057652992972406109081892353751223155877053561763181474001103002892870762626330927565812654814496148406893735556943510119002555826539405781555741755142391023346715855004407246623795365347410525131077518578048925039622696493973366519453130958658780381275746292981573836589681206539606419204048737439162605583711110301590915242519539659110872018160186485347012922133890604686621660686255025632111205524239924297426087369784207421806710694312349695484511651395548574670675079765918582149549963759435426913717657572124155786937559692819015732101641396054781663831582581127427109662744206348130493726598721695211643309484370716805000255185310270727991550888591205780538290296867836134794468839013227735338592872763739806489119847525329116106835815260125648037337390518901687827950098791891791443819929116641124327600877203476671991747747496382404503744972168995436956828543078265082206280310589994830634518810797753038069022384455079651904014236609371797122049893897286687443900950377353042250380603929296738431069278841162327007407310428571126971661307366656918904358135081148389751783093894946367515244714184398149891958101430513783423852387726005976498676279397553611303116765612614776937605296916598102558860931178065128421747068759567461959806762550279482635107467621815642117424174396612879177205732548796802285123727936334190153512853082976270099161279433361257706862825317299738511140950245767023872686907803429400048908497172970522721761596147970413197190238763076072246173471676080176131970064611274324420535021772305340483992019572666686555192649149160521706072018956123548964369885246797235105585247402584337176871372606277613569650497349581123906641454690534450656228985932869216957237216530146504986467959055199024405440673992404653942822219115260869884110702216145470135803171503972075930411235796901609319302121225415301542929581732099171783455836182805257085611505902525040441563955846688057531960028445536205210577307221321764723215256792454576821990295998771852204591704107941169583760712670160087353916285596515525919253680862059910662399509273006322511704138733383340131327591453176377413177319104489864959509882017599026839280389559537956720429798727929354961213426862872910229158102409954284125025700376199683936901626063688578156755053965389024783670716489919774379940526334298129015488901498093020657920111449659297913965551368380929965041126976379042388121627224163931052828499844925548760087343816171027503506727121481863047493913349402499900328217236813447714795726976080269825398354982059684375704101952343930399121283453900470964969601707966793441210745294479682120949210910370479055023156051839307310935130652278869236032772807186368513213038950096402039465811176220929222247092999812612916776880601367234121364932883617024741042139132488016694105489367258201275630725217930810368675380040166227999074223464982245014305888171503145651983359640148074351068152300865202966592933288721274350859997228797670605999353191931993640604558822706811059733542355662012606229314208083049745918374057413849218194356050222557500053860568911162214061259526457748538769008266096041793890760210119869209394565709978351808107880161707583371706607184208417362889518026079053123416791363524786278055552380289284009351495721629260423979025385973053313691856042281128781806635293360267352948511239869185208822201904037465311039420604288370176827357979064443945761983773282670419529905184259895453286038224620735705045728045366270045820773366580952280682801174082625551116412685273149840864298617144378271874925415799930984554983298681750911457286871854147360401498894617466219953883582375396349171234852444829597008495348217983309669845459092741637027127750995168813632244760720681333756415016074869369368913632799779865109511800423503747535772441556526311151398351473361277676549684370822752954947318177897272115981612677174529323377922358871766974297273384507911306181798455522108693757341303862120285666013082115638560335518336261678656417080757998617342958487642016638480655732346145289936806240176044057668115873902485448163824288566160537846277830213576302879682415046554645260135331897580414017723083444009525084836970041626759416506947166721108207201543433252955337795583479137004253853634814592407667955953857655227175481268101515935685542597370627329884658189600996401267701522487663170546234465839404093389723213903570433291551241455564845602712770201328725530647460602667556381237231441746111805978386135084380239708461732131694036927781400969717752438026302062036651659692776444975920847099096008595006553994874741430934286896115275594046634154632875346519630231640284444986587728118375618604567610387529549430780518217958079371938908408111219095347620403755572794599554974335402362692580690964185216966298689133541409966015764925293151808814511331887470288716110426388030602059379037604262710432762247083669707857708398654455072842014617547903013704998259214038930332740537353544009728553380254083425459764959488112987093972800241762498997899272263379761267575709569720151013601098471098767639080217199741233505134108214932597833769505861108681996566920820962439266879792274480124288315258719172012266305883357565999008169726424521544773314600651690038446480267592184308710530065211417315263303998572087445778515519582074672381414024660972765913587198354980048417932203074553305758618402238445531697965004191171799183529654028072234113587528366767489164936539585068570744537424630877448666559681965336053782455320735535309709196917525618521924718512748781378497969091510749221462677937108783166453175772569433027725280614689887690608625999873082005659122544789863626818592519394091891418858337354295825144920968481473777229902886653840608094003239309604560488362964343583368965040167258400209646339590133509626523979448901957772299823298794196579398126291530002452052667675964272267870085005226578264964215971904093560404595282355668613772448675625396455112520208120260807755080884075538053566244861899293429072893678638267706776139793796100747387021823972409417959826365969190006019351800191274533152244800423264280292358946908499076443519350114577775601789708970188553376419006373119782495080751842067289866196061331046755944291996684567353040575794931511903461339078213402252969687739926362693644750403785650587799742083137334527535297748516660738073451547194691679502060015684485963417966003544368411872231855267913564341966529661563817753217424457529735114409727351948258975637177948169078698538821098294368523200831515109125565669095232118042638865414747409706168804073688242115293136920771603050857772621472402366947369900286860908961615260731383099234368120797917239406782541475523455230637545152324469302913960268493564053963806111229134877927674423410184900261325348122771061206639256289299634274107126588287357737421496261315256565756686564529705782863908267089409296840978453023550909690535579865802524055294175500017291202235896510643409793525962418111133022308572952828633145589344370756613609279127208435034514878655602429216890504185102476925433412697836979115858506252681226438021549218082231821527328394526180638401291490590390727956034947391365668609248402496187917825972665790939559987157152535464321524671191777290584693898936156610469801933555242811320412803019813908717443225285273709120960386788583801682111996215855418462985080469669055497470567642773611981253496077022310421415514811746606770419098220213380775627198825415516561664678174557112911407096863748387473784962090855410033452656768053907865902075395881213670603339528583298814077886057237264854454494130796678379524427242429380693421696427956530605688063824272354623097250970287741240049387748160659376785119609963540082708060421158446613130905240863558458826456593048982179554294251544671426691472799972583536340421427770256328086608078772407871026522873935119207682138360935165300001131386479994920978161353952767416752169277309272412138164251379446923174377122907283307347000959624386773953956652295995977643185199882269022678193345885957121634891337156373185713490968525116580189762460036326978476177877725019810649393319880526018549032846155897722337532779974454783047373175568548959664015477981094090517626857408795476132804748693311499773281598770616501587641102997466071953625698131152788157981822006614368040353950984465842057942583658293179967101432254999087368204034733281320672629827471689179371319005590304193111159273592469017889627711454001513611063290045511603438123905993308598585109616500073504468933934797464018678820969364478684108302284494543146065064787314012189796635313972660332748172930320059540853819441286752944401665492436255155637541551913354342798556462537521845085590154278301782286975999683641079309732058628675723633385665299513581158541428929315415568353530665672107200179836581189012259500183700151718547902747011743409689955737228281403177071851056720601323689022964759530699899875343996617228543077867655938640214888501369177256711013238354582486928434343666995001025117239130736498413568051478828115291287622888146561063137871428522998966713958537916920800192369163840325487405410823703913379558138118680542006361848578161411346648243687613056728280067460171266101380956912871288865328970785553169542923111173410820686612286993610856205805869896218171268986143211633668907471419989852843871807821202230033212297082825296907589424804696839865333224695378531032172008534415935312433397563243479376515626596673741853161951335882145056101440828282782771483408734044752044321117279104903735979982716937701908950616810442220301749221675823441265829840853272909762560613189417805216427532474771274797115216421701270550333924207913344413379793898591140419907269483115558738094084151858170433520885393963973156297359858505613308793057949744701922314000893818066913679742432753863526572267003223758365758836240512607268361459952542962883643780088271203392720185611402399012775059993411300289709335809381646591062781127119819490221734752569444143166559390470459792279759072713542783936459055552348466877097508225456034932442403362336988915333163680425169221011892093857919213250050876727513008067065180101078023239624150090179218840788819542927468878209953386851013897369862936330423921993540380376630418261261291422814572488311049111682350245821580320581216890791359919386845301254714076044258312938344282450255871880633934062790554396265943023854544214495670564487260434043583429080044582204365637538789469200108651851095570867026636610194199645961966471954270370470878173766526293627475789744935032352256782073747927021124869276495503409990922034402423632072738296978769373296455535010634796060778606731081524897067494628949044296576290938428921940093610396576520580821129801203839255801173612113741570194737231874207120488028067110954381100407452233390729970067484450265021140604658575340828019424594959440271769897923650554169264596166370785315944939917304624986401102849790562337048059151600503013773180928982423189041959490210830306001620571165866831062143966169739827675238126027508695285493930951666674588676067616964726449587896147189350340546240033574983053349019514526326507103322701555818570472384826818418571486540979811334061605278868539633847557879468117913735871261449579741471194045832328077203807683547301606851960466572647638462645075797333774919563249788471765331043084907266068077220498124104974597903901566049527529627319483473917836232026667904540647045708419964911701671279550153497656327270627567049105735472954380088465562738214422463100884504412910613091156362820807161043086733127534249530460183479302980561451318401866746054997101832855629034076923313799004655179551972143756095902461239593576550631651686456277443561681719937572324762663485920147052323819424697808542483680310115485666035739867763009584426095427665288410194759514245273234666947410337520719531341593235325664342959614521784821547404414422514148821534904202572061764215256261071001193594153632098411182948929412501270483125466192964357999838230324517593285103682917798347652365104327909937810328744203096154910939673611581200965863597751235344171068550175954537882142079661106248225497660126908108259146700573707865957515945890566585435630195355222831872627171962804293689916524579770726753987010866603000076825805429171386173036455445395251909218580424255279784487975258457455042125449282579539858984933305790418094803166093097556044267410724403055533148012345174040743087280427623544856122313623590918992415849598245095244566077654054137655013121053606967536355311573515043256117917711873794162515527134947731945251836708331203825108825603695808107151392647217552817527713348119317683786379188323429141033412536788156070920300611533010249182089789251557314856978068619209848688590010772567293660669982215835569170216269978206221718632748569918159034664946176101067616338635298400850171971810787632880983035193616876040337606051670512687884169806293947203735591312881317223606863348189722920992666293204961221799404833281049471009765388610812712596699473461979113383876456876600291955831007795565545604221863799771336064292255424574600944174018540520605962694449378557197402525687530820789138590082034340281721808098478669550892531176434809565570559120396729168273515985043754621492238474502082242976133643190919304245261788384079892872437914059241273499509039872034539601931588695648226789145184809883569758011715421251520009721506291531232290960781015626375165601072274082469867799927729333457692185215491053396196874237931004377612221676640876585285629610214501089401629459623062092471293002211268581503449487951850731846900951919042338067243839228124990662544042523789612381580398630599008840325229958017244623031973798727296142257561984340570303924924171708529566146591767799298064922052187558281911051210052561971189809443982362234239040544956930226467615621648195119939797076974645890274355842795231964593345779996509146931904143677568120078851390300697592294628573323558495747172046326109893741777556609828027285863420706837393359492984056395777349054881110495765281160209120981541521294571474401959367761958173655544315175379857876649584766198723920516049915801132916439172515988225298844998065298611741853925036437189510239603987124095999610125035866654747719016260087553887019572062792979314721651209577756468129465842388271891995514655755572378529717454597795772107726404618028527965238926958564088837512401102301436708682780106796859388851985171432058818038613186777838425253029691273666081515414563695002625921242462651653060049082417169335313102532210355189972704654094177068189417085001416882381491918971940214459683687613138718731225011157497708334916046729770085335325166264716770046887909311798796468414356150423590847626227862602093481280798321295420747036277714346195150410347097190651873864425286351964597615051869022607699215308225428929173287637654897509604587264478605334477435502787156056629230579817389383391808764611837542107976688824510289845199369769985458323408962277428586747442564100013493904999590580594053587141760970486855490576893348158063565304410560105272785938920733234347321550600809933708075211643165589817389655933318249092094978157494952655244473314654786346123904034339393156246262713375910997299462974771811343532731054774533077933982788443064653385484742631177809016857304665277697097196823202808540322889898307008304146763826078503878487660265509363279192419388639985409141542007159571576255623334037907108400645761785521389578323007031061329832089709402634183428872651378225609048178421094060129760007126806188714479610451523934661656025501958929692822448123598372159195832966339913998635554740099908765963883827882569684665141037091668007362371781997504350071737485953786197620639882918325770755492808351587262968976182632583465943915584154656148546758200170183234961745991345467318532621109894936919427914142843528348605260098029262169373042054314169845453943338939121208205477533280762034336319442464682570410915218683200859576215869142884815752036481735575366874396382492272053337150197075415874788736464016545050820930729083057295459256496501969930648624878582931699595910539847745462945671961192208138764958154690180761029180589502469928843325498847466950228824997723338387013613653795992377399199675260664299729253975984768301973408667500689931464279410680339373920257160088300840708271870023726046740775187799569425315423904090330982613168033543742985353048560255615331261694506853735232468593155762803438547483394365692355719988742339344575560290507712879625080430271826784868661020237384630096461186280463094990375797250230706412845022851714784383964587086008263986077891663250075490144698716229540425781174522548798319479232957741838702176320495961886907875212066021387716400007890210940474081648086140288536055663443170016775157914177038373235120356774293832301830340563847484857231102836315517646363933859845195631225744592093119305755186608366187366095312353574985721682905223707671675373378795819759996116911389337864294160037875866927210124454830856703571515288535476748772285135024456742862097299939424361355657676093163707958937429922172048914723734263211113336259034406363132533847070601933121477818439567903015290079416378716956257276647507850572024611705901705436760447151032783338859212465203361400985338023257501572604401456625464704430328837988104252034538571906599324216186344257323566375303414303633597984252616863182539729942177495314800377881186411409744346139838403059593686930370818549620049963273454974448311673182683549930816030486571825244591566610907320047487565878684545072973557167712847078274982534187704254232174903730711870059127116777305028358493777433678367390407009310732527546767695942504064452005690567507190326265575600239334945547166247111326857338176289697568712292271979255266757581217940464789435431202837597775118586424986854753111061520695473531472190687259375791138235537165419692617202124902517268644291197483936142859167558448310538400185342425606308344563799565435651776456276423522279536315455968130107521742292945570546659172664096839998305126797633151321797859299141860157580746430240550031290388282141327742186676899206356752020992949652098611614516267896282079950947549376575838066055670554135008373893848990691545464032437781317189214145646063102565126524371573536405551524185024041418141723340406885119742997791226829353384097072894020788540657624095329723662074634471291697995044259732586149292281461542925926498553424743770322733082465756966010129046440059570995202129011931985518413206438882393101019360484110707304976818139140658209466880417988047703732434838490577255450332102920223407254951567433328153612985247296833444157120202362805779249909040668784088517029723713314196740825727899937943195449653921161692866912901329086425480183185144220904048089854425997971459629674099488096211568141941984618743903424451817517085638627322090487466168948095169155495610656836403214798265812741392707478470766577310148743193768926593362597495069955165919828606001833782895724086594402608432453528438871394898542809533855888661944641332839445349883224822826996985134080958769629309447301891067786272865360953503389623320694496643352874760374819303920721679553775896178757126222704410345597351407864145503745978445721066552509127344303865276832148313474569218178814748190703042373350767564897973029998908210684017771866834605943882697468607499620348684669334913552744226589190404807616616506108924016791940475511342406990881715319183560602225087535610077289771473298908810052412039941589110773091201975755785998784548564658832442010228775353571213135123878884729630924281338470366532228846697219119516378843730254222125918794845190882363810678524802060559960439789752360474068326360168903766136692582841654734377099660979789147379637441361373503135015249909080054538998012133566146084629417176799117439094236663248014496019368682577288957235631488448797802457578382499199445270294292146941035102278280096381337970197156162962756964951386431185172164751294596545133346844115322134952727238478594048970123652867278893089990843543507261812289420078388677052146536217097153126827069795602127636111473044184618027654012035575852554455195872467670122331764024308766263327756582203921908041519563265476283971852223344696280340881941060029518158834568248372344469045376842170950585416455563893357521827978689094677270961567703160363561757576611151109825304022442537454651024985803248668577863168162054943125973929342162065228034890659150623143513190088571502393150382163400312154707064382062874845164456262129440343024175810917500563624466448689487910772038948176124413330365529163656223874505519344170123997088486139708768182256625905847045802773554385608308799918245983219464932267608055661050545681283118906956298863315552060060303852864430578147529884300241853550476850610580752056508758363784578296805785679635813622503976797491381833790731824137151661520831634381466987619713092778993713035175617598325225366844307736065863546458076510414092875283079673182738673465284911940254871928719440497238997288719894131076487089978367788512562441821757863093377836250489738183652623396062933532101068322177324072232170521767265991626838059036644043621633685091074830646142709158255014744076870569836305675499128283137937652441802356144598984866850823753009701576710810755998821225007413574673831645580405671489751738548093115181533694190872957405145613038244024218874840583902024819182347588200359924714558260870626820195336294712989713782874314826495275493033057653503532462456365476958685214749563895239703931439002200233015554536901854556155829599311327648675877889452163724140991267206412628450362395141436121963020660629346961764582572752282676092420400171397271713261815103271936559355419240856741287096311050111428296858950724033275748783577181952359613497741373085845917456955080156503782872744031079553181798131820692150204908953575441610471857857691622518045017327834366332288035344054900938554970094588242086030065430601111564575539772534206996290786191261001457228994810806704869727349929615474162872519209999015304768302659733044669701530211947925927996587774899303990435170860737865238248582631592320868918624582993517870949412172769522143346162963893030529702690419496264386513725966810686529319158307567776690927532228885283517232703702074261225617914191610785635991369284076561024478027585981460878663935675423062634202893344322744808135456039021347181031267811516887101284516166951897851027965161536009305379938098995402205459719151126832781261820423113811386147740175139727654451800189604767460206459733513292393166429091929756633682182683886945877414230951574006266220325794216616725681311703809669225009185685272192425722164326808870595016123420199798189646632816683198353375699843078469777456461092884458804202849985424404303421988412517585792940654401176186348204924998186021719494971603845325162171844503434700618955393082288653884397411732090639701915710937028698666867730595953319254928368090465438604755253032859369302384983641373011226988279292028592573770720833329955609683853426634448915209982466590308421482849336653409444778032245907984828974420276388578859908477426881078957848457696405304109455985947409647909804533111316422361774895708611563332500518100971722217401823975318212258047515451800692274812445765071366705297449914061024529481190712669656937782953971017225365400443932928175685367680577328636358035383209960639932705452098788331834353749998865601663482686409004979330474963737660993472318302221752743936251966725104890329897781869133786281900314587225456022146683134723573572271091836086236272682406301564703736941353542094803168193670134985201255413208337146223498823265325545760016489791074420357399460109008107995370435418003841296226556451083310266257160544489548392418127475122150112981398156258309080205286377398184093358687421486759127970387463223050725122010144817216524127574980055381435680885381713462732141660104875140352452583392308176191777104256720239694745196474583874663759903813520070962410158081173190413913068501033439659225758224066437635018505859253018105617148326472697122676393472590115838698418194708734426229420211964817192007326325855220036944791649835515526047233595889313622913142064621494891776007512373126852533308880032753207188304170925416795374647814877336406323803648119898384426574210248865165495264783466910385114290902948418378943978215944573998056961269034262787528412859890257741754195439106530557206119267303961121072555387930507203921250894301475794061853980036818383711391497455446333574858977957496733209951942618317947380159065807027718315599689432102511921796649784390894146005246516065960023044855323342187006568100098587576516987186064807043416639335098745297425686095866665929914257108934534682464035156707078384724085420789174501105698147242439555144648778060930884207167696573057973147760316396709715871218411115857872429427231853841119275692388150261653218685774863931967808862048923216695342151156314713840656353119370429454032020124142969160732725816747823331278925972753055561351115375801105956751558122816558222346416127744558382976861445480818092371314259244518628497969307820393797782729530391199314109632093764673009245073633605810885670267463355274197409317111261638583761341536420710425507095805785084299330713852171911411828878966333872928472357066473397080358812450848117988928797417551364178172510911181709314194802624233389975743858592356910342816847204155102323971716917786483682751886875604351390094223124877048279014764032069888010176054792874954022233018565624421108453556169779517712976810450742036258096907696218080016680876091158016729159631748671749778274857930154367727730618880773443714074487737720323231568524093334700627369562999268748831597329342013263476479121588488626520802716258965081000981327943145689665693993601378125231473097404901010357392951602742946406999536923335433293116678299106577555392450996175172094467493740324398725986317928328758818805526051710593572076696825641657850092964482166703685343011968489639016240695044818201450914228466415661581874406951812182778419500218038005152742222546249979180348957046858602721756855132093049909136568860888814970313951036579673572339887756044293362434406037036043495093338281559081298782553238735885481420950946433236912739674506249957162209274156061918156916372244711131851802899985715705063437344672669641926190559777576960632069884661949060954006314736068951411232827581821911081815618736691728506367129357264089317842501394239362009645925180543265678161349921169099650060440697838160279296153917330917613215717646752371308067612097645967524901925578222446506220015559764248756052694874938503790071175907846930725472242619645309612520062155223637785889036618592241107466392496888601677049950757512872228014428970756642715734379315757820323012182896883177277249525743537390108141074591422256466559807283157557842644807112245420707714474432241219348914840780852493457237582202860869308891104386605482195900950852158215214882196952279728240369334844636478593242929231190732356035887910618032893505799219964300517300878033349766839572804352988827792898742934745741989761397151358427410447633628502051914225152013211791766617839763056984381547886286532973419510444408379521947541352915679255778846526736946140171835623825011985052619430265305135676941195141726652285513603288174424709942136480431652517861780145559952580780975442289351079117640807025756470305512626302569218017053836992313811934067425551460487644295816981478614202940205462024790951929017786288058555750924075365692211789527077132433159593453374348371923817553912291006109507143767639666430870146137694067497131820884153258480464982435188093541859998598306817193697342051639360982343004161599773836252492904088376212961856233567022742717151602158355238619782354882350374921297544217105825909273186342563811411106337015947872936495004049671124794715117319607737991914462295244352059501681421377953741913103002874631882396013932831499363381666226547121326694685979002409476680921654331073672943413705549625192457128920316054931370187773943521841206005310826138254824386126703705127180147953784400806064324196064107590077022630860741640711735463745275403861268650418729075341794190198931773706194924764062914888325197650783623807223951814431445547650957925253218654028131581803020951363547798878076137078863992004404688366173579505897286799561264720505289094096252745524768989926264694474365358793130294660529351775127533746274803804509970538849514340109534934339080089948757259785079230222677950508206558605759174510263746586108037218061087800664127963674045493583223424778263085544852498511256735531496031165868260986806064708316387893805150210361580132569655365104488014259457326999993160144681796025254412124680919570057631989803073333706938928428247902602083249065417995839423883309122289164620783511716792988609666296474830828213604848607908030654685063303164898958521532406363723631635091870144517423043223420108343784747479634341321536821125905984725175163816215868709165013322925557131242031831548752518933652551535984551411146628636234637535701149855387138618167121920749965899821493891403841703972042974135683215032037609373316436217358117491962468688344217932027349173921319898328187225866165486384169759808705160878149700420411165969793857061299998630422811232103336065219823247619994914027814089097800021026849407464331123898735540514751584854434530772688745522581518366341216250371821372972150667781511896861501337153263983454693979668257676360051592180182844016485882825538880603893202790250170344527694425055533592995287946608410058536464630137102826829186774295556278765401926671432033822534762603899970024390641936330668995791594986962094358549582670784689694534155849162996997523046431553000706405278449278828663321144768856229523378873534563457730152711004927737679797515231867012573446455621291874618767773242805275035566640860981563274435922575580251755426500281192541409847498657270084236922319271822043478463709943450538307959042994533790403451360457517556969503666820595709755519379471124365587506754152027626492745358091413512313988011913587779996228338950982254784831949071541593209402000156844160500600470600403799562227918382838582193375850444897170699323137894950490902645486102912942734868379103205330512007599134220183397362267190008530802970035291714074621837830877600729850737848531294789087885519554241691160765510617665806328961086044407457551870573175158822950999598119174960315591928008830936841957870754072926193679744532543498758432364193947905983215987480725505554891440470093457383170357248833442806471760596688561054138103390809595652375613603149344367608562015574222734773011041042181764196611062143812691784399909162907599831339306126617310757390432627926140237056560802017782590562334205435279768942610944587420848234439591327202137408096333710231748926279838061331123739995028204499081650738814010782457104514368911364418344604858349594436118872967066634171444673731759872376899534701381246655499332181289828676014671589532183203839473908220532329663932105564590673768466368979806576930541516390226961461901122588878615962825758010395048418310919518689633595328730559966704194595079025057642310912485900687854811496158850109949591395561729736419733332194074810357183199691434852522843388986181380769767006274235422602077764756179849392131417677410089831857243279753473459577526889660048472152764207078144464901215352320638152831715186079066410624626724410190710165757651777703983956263461285585414420460320302913621317786587140107119126155801160848143681514848321366314195380804498471445600171232383239359287367545279447924360253711834929233947099284184759987136907763725915251072857090318285426807125573260410060128559433613990809580743672484669508515587492914978499964001681155233050498278044558682636375629000330779627421767142234116723997726785952322228488289005853431188353805362153160337805732296816940952640576273986489806734635077241952592410397024831802638057550383518832218151779969858174571686823671592480339735317231068545212145502739646100263587447106245099589107592818279796151145208934241506958547808031093196349490491454569370485573298097438042093345572184620884996773785764132649841484904271547293507828460349724385519817799654248690605755267086354245545778984354757701713372837148386895500406299735408389255696003826085093116576098805900428637938275326520589084354019096140234365717876780438537080112198433941146418798262776042461218117576724098805973354124617786439364746264262932645047946955296293540443974121410083563898047686137817222994470497105993789934217935449440804837393719928127012144303620653985145892273253777793755175705671114719498440088349768806096087773734751755761832055983539668943816029995402050510810389946985847655086436949899319237840188923528507395207280548613246639431247082524647371285291423687750645627034261735544152831925047419277059618251437369027472012384052462684261817084263394628647316102250304055428219513315767728611214963970824868503409277989714838978168399235617280098507130952827836049943593939260472643837457880078484803923446004673944410934805440104255278264677808560051118423768821058135729463193685314614078660535290925939352947194306245441260911862494435291138411954544039273351865918037223884150256751825993617391049373879645581455278394321255065224176634014738718413763690545532885635518859362383947456059887818851251794167844934829053434352004254416760730562602460094532237635594014308036247129796347882951586523617204113498655647396317625951980590212128683914623565232782621171057249151052321880561036853269990901932520019571449963027810182562066773592357028930998356793565723698262242293024084385336156140761512433411996665957915070483130265020594689871491858657474883034553163640284851144599886037739707973454172200217055391527693450225999237453935838302140850986473784328407351881843622017158805461024552147265168092752724986287476492741296624702095062680665457786890395209132608495785562378961823437139188484130352837274770409666319113140860508743574618005974719122233147864222620454700159681007389551808369810245005087656774877969555589996686633722717270133548805960459076329425248196882887160233140470888643448659846999705351306095450579057200573735913643095610991542343109524798980910104377127007781131966496283748301580545621629328279022470202416454747079485013074014258226210529148241626261747250230206201207014398269449163901663799570638522201761630983028428821088329884122526136619751284027964941268838436097442522825112935878239724712612073695653038957202353368175536864462424348506149384561432275500419500909489279914564048302415993629508588908496633188208007782564078778703781763767085107378783814440990795934847202261873529648025636458015330238641667422243023233744560921553413943841751071640144091392212114581727602552145092236143399936054489172787302088015242598012539977829192789793712741470164279226076275121321410673862103253365822293428264920371065083536325318292778694729216644404641516619655931894689073658485794728298893843914506201415917130751653786697813504545608892813029867094908217952880680487243119902317953533854051649138046933651185627765596209096641183700960094588890228697918367350632879541405592568334515231314885881233285042241558055617729945430825917396083984875521432124776610202720583806701307505979703901775737632503476066634779180891564960273163712034889891380641860502734500525874573911621730589974594003514845001729693569550200360458115575564803289915093181499867287252447928277851113790607323285370143506510519113677670818051244946017851072043863698797704363822540624773315692436243321847915824047189898626412156179123891246406837586126562799364286756350913897184968157809707684664253358385702752842850607839669367765035972986687619626621161746959007405849569906649372238787995010438627197114523672779491534296885393054488201109338852713555303775596607127593362621800269342429499320720119990306961902746169927165580476841554662163022308419853286015080839383130759475142293580284674257733174027327499360743349728865769946679018477458501005162110632677800613748917142320500536077484995477518499036923050185872822632337701323792237244557141846831017874357551534077902434829658523016156727211976654055367614124322950856021421605687472534570751092789260325316506827764713145265697798766027802698154144166637261854970642849656104044114953961863440439353131678610801684978778691379716392605062541594466626848311106862445717189368804463730662164383288764487584406876389592121024481481839113089234688259294838973998800540314864772384144360249238028137083835615615758009980085886627409892991301638057454852600715641326407171666770744921329874887985098675545681071759451592750022550247838963772500425720898441967727933448353019427049052318136808385225821467283894544123523485589316912021059853644711331856964246295178227118994031810816653331881425220986400987643015142877981887559735038630816546141559779822655984578809851304799693494521136226125244031734003258924717551660989992237788669891033437210637027781718153787304932760981899755014445512424226019970929770379747593054405826264942610740199532441433205784416113405707313806767553359482080212854428630117524591138364134580426866225102803942468983702019360143707327859017201131860613657425773809860290500693975407382435586251640184497389667197109494103878384805542845829939693372869375795107268152093706765614283889175964657639861045029388906342744339263451747759881518366780114218188266241563052590023506125212586192270596402643494338203597922064968158299824468280898955059875993016559126703045479229798312906440832749563855562282378483094172271758311385343495840194242043014496158940942071120650675724961529471248666626633304923867512347451790479684919663741567679571583008457916695076220432687636348492678877135755300658384229655763098470892578917612405136830237237000194735709107520496548426894489871200244169150663385379822636737197570107017812216279882438354027442308249658394058123638172847155620561383144642886155766721792341354932115786594797761591441712209341095738145847081148901298015659351736865983967990332415171594091300581993543659406419716321798910509682885333725549677929930471899227809825931737582953771372576504669155579154904976555402170878384568619157210699975813542203199935227667004488862943863748329142505406972819912215859419066232351915427437852402515519785148501301271923349107593407476399905134998806563935175978146092009891467777518572048504636151530525854592374990543670659621238407398112994604717743570147633849407310887769764782931824479249400895600536695307938108134967740885314055511680528175397692635795109416744089053554904007452699233774966244255913126012763413795382360318284914203380203503486564640534924660201175134102768648667173458616698169536570789953434209213150156517244862142236731345576578359838287694686194767872722628707425139232939264581170892040913930126508471616998456256984450514392687174527908454589169484626372531633918151104223158606239675989834653802435942641867046079262579101992228983490273680397546432625323516517139121465034987756729815383113201999047013012826984908788226171433622451007122224366327830828621318696967752899659913606612414735021191763587304709788176430773809398438017828539013767089280977574276420750810938637490430681263697934232687813381676760466211938244210083881422138917264114739053246970584403393891518166298137036958639831379175800284335162172751349791557932603142259744262675358366199502858275888215370328905375912795360674060893068233161667368349066978383297916126493058942345226431971038375433100503296988566200897284229057702899109077492362440802555547808824560295445771095809195406562672013081365859299743584700867647032736049006650272705930201964051722395326538528290964970072293374661919104761101543275093964639265857193992479596356544285789215194431154222583085618966756702826914047739604857995981725047840911506201224481610187670904863555724149203950515760334293715716035096288656988226012038685605628981513168184749915802319561728093429342072120699745289689015346588568294842451061169986814945344341725441965010071845965125098996105779297495178298233743840494585331687722833347211489265156426834894625410260789592523533347508920053412277520532846524061100690014660515892097485868722286026124399908830616697606970496639996456523467738707155300698716101109887610847847968433953294890793509855264183160218621426487743311759262739187137750322104564826891708313222100842443652497689767774965986842499017619617247163602578362207944277115841344161700286775167540171553680231539579271612113638607837391339376523265300266942849246438665167640209028809089309624761338128431006116035498415558631078944669532273488058396723142606547341589538947437510690495309837972590004358898335566129787997161851546777338856638426237964994632374379020583904175117052464912455584578172296634661086341890269776663474655516822388927658779408084403783370887634267338047804141130417923289623441917734569206095819760562365713471997053987308938649512479864951075160471147405013342382150482556464102524809941394757097042484739366374515628368749689662483834574651579785928219518037295793501333781138023829461166629502784189895500422050607835615947220353317264461136782515330005892229486652695272693611288824021694710442958825686620049224409074082516408626154929491438608245645808831803883100890953487875777262755817720476670100181882870243343806087005436924940173666282271286537149236946849757214968883666545671034531228421789824876423769098857546174648890688469850194735674847962331888854123963095249651563821173644739333684251101882934166177724083878778218884585424927859082053568738723946630134741331172102617836792492435263230261056486145369408362803134896154171114998883198639490171939372485254157282420175127859394127620672369901252106450083550904275354064786513220399440447013132936511099700901146791283759293722837977568362449911236318080640298650420654009112488327728797412685448154963559978303961926706417205184897722926869124776574179366377170633419995880877553197322318834736525461544003567576838271264332120976956595540841738062856958584339038353102110147086808220745735925092715910073187876974143948147753359140823981796691414260816701303103679445411905724170431459620742615608866873429026053442210021068114541835934327743435776013929791619972574500598032461692742671220491907305882442175388325408387672832604745241761570482429739556129490496873767183566886126069786371068445823063925071810402970307343387062011023404531518478775723568553231082012976025577832161493133303371278053821312654995634290078921813997604948863906460561332265810744503171261664544881234296664104783176712107923480811019999304485978396410988024816531597720983097959707852351642562017698406166766744412468496434291757595714704665174985850652214834078761556186386078286583574837802579730356344775600168852334995135777799196276657936775788764544923896741102277954647408129859714757915837756976451119046821627493976166154591841827689618028185074758387758815769350214450848326692404564305790402707392631101342722241239853120533038901723346424464236071558928451349654071903884848291581021790859022712424418770648184086370554975920247848993023377075949812870025315921103834277712294400517867863890939024859248622684506501663686960110716834088760388119995639039687525837148401708742889271877869382648861021736794857229979925968628738485899877892157227960993875677082989337042645000282274468938923473495763795758911474237548257997569047456729194929290965753170472908199855645482970497308210990388218724479955962603210289592319488879839938772572620473902204732705636834300008483214999822045756598127678752571770874600133911062958659137122650182129704248338039167633602331473257310341941804360346071185655166819517075056548918698572298134943169106528514925051894179553136161916121027566918743623895820441108755251237891960412671973391531088152322297078808800666700549972128602771938071648944795312097509852926506656733698449607329032759927968196466817829716043259950378839782903059950844585077842733552744385435014535847559288402361317392231713631711444658367856821555716427547514540924539039521159419416355390081213541376589400155222279264235782256291787585398337250487949570562284550473281609921090228882120867123999805999283697032062834829608015579417157498938656000114306720827205122639125758077266285143905673685266971204440112969379334976789073100663339301529731417094938352425186523340500770978751025654925465618599279773317996590575211327587373088965106875529011710839675497078784380432459022260009741341019431733964990195404686528561755436200386067253542395618667450697298109406264232646818410793927721397346474649444691602976632284884905381044506342003744145957752386380021674999107967853559300136823536277684298577946624489031961672328560413553959308193646668220539368694686080366160055771470617479486996758324456663286825781169353502397792983919203706018942939613077987328801513673634553784406375156188108992536091587542286461404861953578573170640890666481664163506322626677472414526567822749005857759325986027660137908634423549148668443029652362044541555783230497240936202054391675751588683070418853201384907159002841032465887775245547197619997650490912779818406937862613992037803857426531671237208882849919298799341405880707373220222757811404597273932230132373583095576982483957088960471639642379292073456346433105875861005115127796149538913061085102993538004723994966897538085142890683122438496321319867937569323020598851740643043546447095940008229576203499772748015702088643251254439741259938119111481882184099289895033362207585919420764525101988528467212484809218057445337201748883783380049931461707573412655901055978880956115336660685417602657424182307006382991613805051808177051985908158240453248546987289721383818482786721255000618579273499061202487196281635471923321075465137869504069361910613884947454129832673118655027995633785475993105477446701778258860527056228183594632623937776593293140672398842260623578605846220433007352944123730132855009540281079520183644212233255474791774200486130898692957696521425793144925827490374370368121085352998009223400928349206821440785090449227604964764089406556772657077204852085580249616043080234652894093978415233455356083672844497215429589672923571294129190422912786595643136342094398185003231494443767966463815965948983216256768042419328930423907485822926916802103019401347077722022597522155379490155837477228183401868960795710217448983157867724805335490140180491532911083898586259381909304780976092115411536251923414820437958346641577370418147513811966422605847293018526583235604263061225886218757653797072733028029963182160683737077813845186571768313143192703794555098741521776325948157810791604164768454484296689867792008829442636315446102009742854327593146103955399245828460118978785393561168237850108949676655745254599084251670705790979528146570127666407471935046095596065876207099737655221124143470465052761354730600626722019761329449771463593215267065470798848862212528287277919963339416143700682231170612953738212316372551249920830739587630116521215135088526068136270012813632987630670291703528387731426335510680027174109669124323095944815652003917082267540882083699549120735001677799760626432067353280056442071413790502017365481520162640721955613829285347378112653804589101205143762840074567078989329519090781767392758779867680743150941928249516733231321920870070916300384891351035720266322284863316476234216967317100954366386739882111334411907964652848932507831615021574931173717385063319154130551904058645303413506478204900445636288275949454202116456574989828457841520613197302165934553094091431813646542711006161564077356545348806355512199443149126786694161420828650811864998217520698087998978071536040793919941864332174745408671926969538344802695144822514871351568658335511018199851360759135509734437835761570316571870660034602415986878254773465839758486366829397491534376346441607960310362387969469367692492438501137477035486895960933324509051449732881172885953525430967523271650338433602974911724801316539544446598069727666894671022019363026479512915108306241884624039223952138635265976058178673137376478777187063799982388430931826198397864002783941647378826789741578123702916120930347018514030572751246253890362279714508016774830642631509233291505358583203879836455806005240558003366027538446930209692774693791458304515171238207455175302870947807129828361591292415643557893120316837251868253611122181916398478706550677849320979824751790543082369203397937399844577460095437989938931592475505155228533148676684589198941044379946613546357461474964275891212498628394245968407811816302285053947835309741081530298543082813920146820341094263797669884730033235568846149286909154969428247312200967078864832133359503068933753277352194578031878306825523971634696663082560452580657677437325812444944552745033121283598884082839017502166942836965008698347041427765019478833017456731520839075858418810627803174443576795781739882569963127396230693053646889987476883251846489335318991185389655726289643484017464044974488043322089032226867592125626870860798999330134272252793621468664872675984964568978357885364871744314421217875013160952175473991467447274125177739083374405497385520190933566263065120671445629803441466153197646777985662018225023154781806555038047888435649651267965685079878183657795927209930971769538571515163470437321502991768569768937172453554421726716771868226181095913518878887684706748914315199821989660422022630952314982290480034810317343298316066034335611872726048282349270337127776368567157782315122367770032912594827582121891390352588483630730491694631257314352267814458404815675916397074200619144902826381422790591399460155784257220355741808083880701906999206533339141864041444341299014949006968300747387976394651733024044482220619707774917379527760673015209197601000762311773909288735707403285306096805723032415077455850431496028421636098075345826748204650071705745688545618735223968612895728811298902963056797431963398482413122250777183495197999736364575973352696912673023920141131151889204635754362130730838438458367831793636081897110106802853270249352807554035200893234270496200661208447058132532793428876657010526316781719662023501513467632418845603353842796726077928707641530104435458424069533633408410124151106747950489801182569708770825735353828797174778895993248479057598224130350496108140176338492023097724520311227932237077500957575377846961909837574474326314455721757275782268577142145170066093494445212341405808339548689285058828932603622704944866409564967833146538415742700525995412426597861588035550513192505768677516872468599907398663464141555518741741484434932519238087440824918969196256527507365998029521869367642595550224550173237375672270115508339410666363855742428126380775659207372209718367058231753321790172064983012778172503492837200490722473728880476244805897006879345694591278719194533544929075237785147771635859420024631337584181354428843182810535760823984737614887160422707322447119943634165598776813926409103579076031346536203632071353311644437202153144906322889823115402471531359222495138072558982024738128035308214408350321848510587546749414067663363909905352481942133190469217333475022818623824216086127117647048511780875643067893341158800699563754394176179748171100506042835886983097795177358312147000443540795476491794024175242739894149491595062981068234428677132488480299163869313842897591632220472339001790853579997765034417988094865182843032416242624255441854998835804546684051475154407267821246379002930081732058412963997169689784387307420725164651897000920707343851181899796194540024951989395920476822234218271473299489498936417411237813918201849224295344474741229726352379624202676382049366140897033430158972264332452714010076233827478963043688243014556139809556349427659698202395358060146555568158576658047061309130546535444463931567800682195775284246856395350005987008538181266667442425969956882331913813843262199487656355826650282337358744111763284214542749251037456497778240541893308829119101764248006220817953805325659558860083822439214622775271705616486186214301918417439917452006531912604634927822651374210378027477918424776516752126833116137901601201834535700304597165113280581825148059253171008481965267638622036097416502133953075056723298679575064206258837531383658508683974443370476033762132008310944427697470434268403675764347132981648586253885122348822818694704183531557681586335872310531417111261713206483837108500493473481539843512261839013575291962656800572268165518372611299005736759000282207714469611367410371806433474186772131013081910938219263348938073660021633971325826588231197594883228401223073125001665188221944701930987232024461376836681562332983621267880388005287235284658172777242762368405160665335870603135986939905729469461714301412290832555927735219633256751958951469540405853694926445200915944547997092875782883145859100762866311796200375383255841128583531026237549409239818305472059471936318853151441273588793607253117103467522873394204104183092437746863792838069725293594728176123833110577645088498194279349762288755422716192046947388833948349335235637986963225368833664437545539577048312984827493284284965746862776007391016484498835769090766945457765955905105906300847722202286916808200368713568051717502929933779569273026658098504185689920358230173978159603538308401397581726252478012902901315228114983748196911507042836061119402248673926020054034847337161657951163627138301557436444910668733416852373370421748512928864199705747795531369544066610306846160391135776537961342535533487333884212244367085823892272312214200045560007369741301832549448185949240179967688397361098812050955097643287236151057568948677648220145778604998321863088377846903063948152858040600539404565274436458710946161680363551478235230610524232129335345233559099004124561311687690488770915684688769611743196583310839166436691191783105487696755133066406248600310001389475792659492517326395664162380417409599838410215004234960482511484968105884947127079954435859443327801036065577473983182854054166828930332459302441243525997317736331936359114109453986979174263845741058770003961719970787802110909592249116545573869181070548088593481233478802919019123851302772591687024933668891360863987631690032747946799718246235694854320007891866561250895346760420402860570009602108740899127326744681954285909446109325095089064469308589226197240162360279764600454498886784337339772576128431594746333651987474523900082160046384719350660902696308996421907088513222096809681833709027691016133910254125747477313729041052027075949934731640268673751333745521995505501374571527413020027105147580260484331959446413430189335080005753551470786684541293254586723296802087861651846931691882920162100205409911530192428740463980690781433749443293103748402261598823432676586379506365600053958172319214223925771969910611901814807421271828153375454776592389230413317664792204947750178744738569661392630426994839907826966682371449053100047167048626863583690429383011313487669092036096492967302628739205852454319540455136385064564517742965294065827745016568399508391759601478883964584362254496371966949179160578008843178213482234855451243041843413426943014386164815240170423617059310565298258377322195974665147256294673119601724369322751641175748055792519803374994170016403737762219195622207153054535042322453268831139942317701076599895731910619741334847167281264847660392804705111061101359515922690105565274818915915641844241942831660267040741656059237096686848971548794703137410432667035565171849358355786659433253947271919502312748773827209644859365321842382761549870997780451762357911418668928011371184297552928778666084110724095746535648842542565297562467212140819229517224685415105522794750678519508557014445159999594482390630027978442128236831296188837142293526672535075542996266499026205449518235878857286732580058360724663707616627035526613344469939485265601031662507195983044807828663783004562140296186317692347803811421226411894627920365707902463717888967240093056405345175373885020366354411987874363247780571989262471323698724106763754934457066852943290726123454134362017705363653800762000388793056024020360773605254578377440439885525999874243205650185434878936504363242257112808935162720249815932059621631128522298962990460481798927857718806042450330520547819209228218939090798969963966262625596420827039378309811382638956046576510331101418903985340119377497841619592385064030600281039566055408182243059292157592895716239375844960352167325916217304381591102267539733884480155729493625207319632363043815604556085062683296125168453750999345831939833678965750497865047761114108313172658845543580671507921748427946153918576743914656871820595750128517218114828207160067494590924245971356194373592882831334808904987555929386525497930206134479669687633203628383835221196550935284840608555977260307191569753635687171663624919696494513171261941242430543748725812737064537451880846789532633857963727048087385835045237330186383505183508557209029206807767298072450759516440105007703437877813993357137758437329963152557302903703133797420852855242193476918462644545843061018557971537251806547150108731295040211063658792996796268932932035735182287178272998050485234581137438620764719199602890484586746790407727610697952439309530403823061746269939618861054718828188953047476795543463399472585599209272403023665849961347890580200774668969869978799212231094977828989088375670330006043829806230402125234430816167648725551205002670053287657850592449027213795781681643619985788775559041425117221143184309354777380102896115465288490300362993809554553390160884513076598754328609068101706009110124521384812498606366066078021592701569636403034676361200582132151549142981666194227790714898788776751811200518513372705035160829553014862017047029285225773877228841729711932555080192021059897653182987690900217519910443599377018714330807339252415576048039542616199960585080997834685265963020238315880127692709098724348736989833709990956697827335261322207005583179092251488917225565181492057322061984903370915476271288761575989443310360621471244749201939029262734263025485917867272648591223985016660886370377393306930086453210779500565391774919443046366296488855138998647720511372906935224200484397323018648089409733248149526371287940815475297214881719549046388132948067660507935314292607120402095410032939755870150357579336839887903800057657242000095216482324786967090329368082836725138877359787324495984873998412585770606063198260924114295415607361653536086019614296972183565460509495369610919646493568444233751766099669015608282904744791135522624021295017040950144634544410435666000209310796755414531719380336605225356584382381811729712857035112420563153704161165467233725279131447084239724912163811069407869321365854834838643742028239235451934561280830070157105011334821629319529209648784736948637563779207061220453716494123418270094741405340081725933040610413468527853410055534748424545483183372267754234300081933370658256528768132825345123155284102623666275163120232153456811997343021724987223019954704038463656154197397704912959150790525499388150565562303127576823436236857066961735070334531040320635970953969846259147541599329047191761053980756421773550906547753529832116340359206664551209866480302569559876590369057669082668741717941832900057757962352280157303530402819337597379969013283912009153527719381067498705284998135701506651962935252149679328453394980530612668226082708132526692701402355565404266243102411226213826138953574884597362016766482283494042008278222588657653531228768251518693191284816837925143258106082528403137845904030976206632070008732392022961769628294104839180080641263445960067547282117710410030913046346205746769257154359255079914272701019814065110980005894915470982930270551502338438147786932693434191830784407476131236663562579308298684649290051410483714711426736150762498783465012295705008981575503190870692363618182666525885011701502511805379523769340572437920975502315168589866085965207500581645437226504806589138384294021315258584091126640104237059694905296557713573525334243380928390293106706157073935445161011592307466486096846410267527738629875516844249242705349330115728782201330909611183627991378733314136103031810336860969461897650137154567292316623282971848623545556946499654426531474105873957529426492553394033985793448532962657165145474175903442624999990653792603364209456638062470928851495493586233112850461703178084164423372120605484981947889801042555115712677794750910503694100261103223944934756474910910259840119020282341289037417082564975912567535387230218950755773519435828449250088476095370683126648823994006036011838101885670728774734166722760274073718308783968573845111834460523662056088731928036541682558203151254426757408895086866965351412654671453212042685346162428617599059946481580678523830669146626390505655612938924556359884849008703288437144264379852258047624342607766602306840227143181005742837582013899065278878726475395804564347666961249695426202011599408572130116366732859815767273284488968892093226505035509166689186406173349493589207709227066420117670450947216330374702621603394973102216038783298849262538351095936856848304815076707582456266211139782659568665944875575408668035718703608500116515815866798278843730425798387620559057038074744082740919864898266686765354493950301339282294876294109252694551204596486262472008814250877924320752628542206430332782945161651446489191702721507012318330011195902101088584201257635829082565678949466300158874871598610076931288651902275410920584539632839385766209375631120232172146392033233952859030748587120385098289878551185200867033694027681950845149494711167278050557603839268590366026914238499894456693328889854132207723503564022465738692710260990531353933398630398826975580842087122717085540171910107981096155027547956470352183886663897947060811108216832227266255088715885332911357951121944343211799252031673594788688265539200030167527848992652487907179424919864945797931728374377582930257074185838674166824348244860083769833311786940646704189545101137141124406825258242969304734768074530486152177455229080977970049634585150627515373659137556786342124092992573752157062640211064332578032958784301352556115029139427148951218584662018693325217073216642728808163116087306889785706222096843895014902671736594865064275688143516268018075146337863351987077565265714379112685286901142254230832415906784556830127537223218092482698283106560855330535123016525305645535131339627619003699933615639734490285053996302406234603290975438675695811594455172427727163151283857987575802669075350200853777859621909186226692400558661007921604446911262716247860332756618680476890390701267014905320976146665045921272615910346168912579038293853300236053719782863960350960248467613926147704396013528164164049095992484480240507032176278475453612289861285592198026548128859242694821874229757641839032966958840166903878362224117596226129733436721949699535607310457037301638636582801256222844362072181420368075024802473517327837680841240201409329926074042449309826855138104303193183294082782393056989110262169922658561062159086149626830623441742526097167260755270901388816920081481741431586435210236104795328314743502273820855936224521555377057000182463952758348949699391251890567431987913356298614943677025193970187287651344725508664199707537920932984815928333453387178899259819431513157314622809741061010485563909233324492951446958676393621084368096757772416886383880507480711529579458200295650336606389979450928339454872699591332832355257665210645458567187039904634473832379109274313754447675688276488936925804975077388811932210865347214772918706870577567634801097672091385488086338610740409394561892651206463566811149148609393142908882109395066985909764455695904910979330783045591104243713388249172111302012651142203631792259882052976063763780959248411189912292034019611488386360915265276733173211665951546614089592203118843927131533876807166193060135944322640468637094929966440127236079378826262657190548551783322162013252747052231694328804663018430578162600964839886226771083978924295624633817043923377760198527207764846226253323337343078302885196860583432530325827463680905393280330695177905066582057217628775374671043551865467174340148828828020525776585175252564123198097917797465183975299242058388225771423154047439163672622379525907033234536649429287442132225782179152950129722682062721846841389464180917814944983906734758829638915063467343417896107550269706657375281739820955967179347443748868071029707816040726728679485095312305504690957414680863357238784504674228087300293682473109657138946744243757183865281481171196261293525042189436539740220322748556470034749379161056763122336335095733673805149108227191402801910949557389422083145766815489885636767654103642822440719951854338500966778296827295809231192781364598400291077596559120433539095205777503509453859067051195893729843290677971375953494186024143598351498801290133066921482306015353377015532604288931332825762630170143610122523858042997002894089412609472770366794792438599886312617151522743113228796202792160821972588029270309951912378731547142107179082840593674872623845052052125829818504696762427782896351810132568898777064087949384328498261575656767601950234422382802844080669252038477428164688291352446616354577053786115880762331570026164594921879670928946701399776368668852514939718731546196056068610273989284264742677243354907208864811354782085533755317464550922198144859955836831420950118610475019385242108511052109894602556475383319484650969395703730993072793974343794298203544204111338879873213247794802916735657051093448208728108593474731117429091638552316437637240993753804993858453481741394100264736854547165064087377689367647764476379369339280138549209035775481616266403509285794719442775846898637580193679267708833312461560877555410061859640462686634997485267844170689056401532282408687873089345429069717769208743376456642327212081631924113818861326159890294262215859652063028856171418753957457484314837202970999871469847565489938050032615358213069859586496238782779240174668704884434413138260226344623918449671816148791971303326106843617258541763387513299898845755082379200205347311734933178845429573446425183054378842807159389355121150679161108640758002652419728880287802456086924652885285506819850691270754013334554480853372675752212785923463125971204428835348423485328077594892923844204181528710294420519661822217119177392730737152755611186890744780699284070928687532256825201152213171374632613165824310858274443974140303367716439994687413182594209032272263538288625487996137194120299955537631129109345615538104414757668050631872235496443793271969134838036251669432615499106831818029661346891067019718571985783431015248872195655100071876513842517126929648349573872946541559110857428870636838992625351769119865638669982979453462691529157261962208596194155491096385439404565050016520668020747216648074080221789928420884244980976283880779932928376830768015015203039442614332728774267317780318415641316196051636347088122870168860262468577387347561223893843858375568401051173202835029693333153227869563134861841151291884963578950149798550956314667362689430042520693833769173796135054133203736042658971324311042335872892334600219374283808984890138735465068851108393856571266417221545546626095694091896208361284601967798322208732496349540590381063105853884924491171152225254468931532855718462212523849152816387140413907994368618948025998659206274367701428916067807754905625907143213865660484100731759853032480959674479488856096965914302006148498632187241157177688153614710092265992726075411215739600416758168183633855635779386652390723646920922085754666216121653874476780333411030698198662047089262738796152932211919458487286191997830264628178164716304559179136073822246237278281269207624309423826870607509612480764049428354331943252284412244436683810390454592113000526757962257992363949704508861527312137444823693961835343373367635086429093879908600455722371463884105884331924841061723395715698522449032805700522585454925464030798946658522485962774073673956442956886682016305155624950564528333846078251237221261719037993717965619151989527339708567568738304025451539831479011186636028286011975676841090175469867181496033698766942087765402055307966563057135069299563081450750959748532354967094265415072247007462004616097545205263520596586681002652800346980649073480004087267886562792600020297582547694298097114553290518916942897215634764051291044429396927615024323349188642700037906575636803329253419904796370898572937423449283247858246899157360099148567229097473200044314865011564962375660585390914975252650478238020973347051390032176444480367253332681205784595635954512946095911428898788421596663673570629465633396341351989976594898301150873860374471275124631745401654123509638563161259352751966283940987547985867819874953675750894251521280838946979856291794469814623055360213696140339468425692320858567290197878243452904666879886228987828436287775632708742523536582943639897718854123632539407859058823283465275359266134151335571652619918494364315225878529382987209772033347701678623555256436526655889784358668130226511684597418511207017140634693905053888005747083625965966583369286906183930977003756254472459002032736690817511525291951388124115104186267240757625508688713058384935955598761082686152830445700434629159925179870524624731213222816141475672491886530843499724747469373354628797461201801575666652923784381160200248505380263330380439091572670184481251747669158708624095577906634492626460178217708867950721778204987519697557963333670100910463190517571306984293834434063554263014506905438530729241587293408877983028902425292030987848039912382349690662285112454392977727887042262073449779227494688463398083743079911133482171069290897686458304287221997083516593365379375517266981405019404961005728940242317853642041096337724229636887211446640786699348070488885086081887884153003710410932009177901080924295471760175864583866456591063894655989064377475578059696578100044370531599021895945144104892005395767155793239820255440237116851483025389541651820644304267900978430884104823498767053765451869048459487641229105213263417174035440773014109105784076952147149634085333835068085428343638590991522953416962005912126831248979863472195548273737653689889378927733776796404193591809473782951397347166042249889011868607605428311298347624315827122871255618891256050168366091019568003022185745599239309421900439861325072580365486771799973536389655301468271933949976361413292594728734226072941035660247457358136174558982085801161688368881183646545779410144264699195696348288064477823656325800070486896576179859533326429335881613153504333562872182773093153694638134546867694189147298885325871522877983073140920058508505538212660794421723977674191588583061427322242609909044178189341642399485265935262637143283940521326332649778235848467938897601783451752853422488739306707208737963948740066001322413870377929403108214645279232578363153117187638660320018476102982251064785010536763200006250344067377956675427572153373742793470483381623943654198419905163461415311390777932877311807488127809497703217991505641975741636447915060620282481735402229677664197579416840619321138023497260031803928664497897443271432940504815340809579309660288526368011661065803977522762595604887590851821489354633096517122289842092278556406917124423457847800481127003200332993989119978440169662622304084682925305507605919297296873286371112596640911542318793059977777687274094553649424290465082997816273737384073323310389177496425364751308170867259997955167913789170679272100777050073049934291877198510496455442590064343210647170081766001269124281933019343854964180443110230064332118600449289690749546741091721099146935930702791199050088809107897216958115612984941907042205995131205250058952585371047147580531596908213825397053486199341018851237445600877000337314121473454282953245316147903210984607627964557006107576144369418650400283623580691497840046594462187936605050704096482758407953024675969735923541568102593331766312289306983738103054136861214099913891163211673840292147069842130395535798202482771612467422072452970350961606336573649530684052987695951652625134946830402883610633213836634470496346265886083760113302822186863760923487907212716251543261573153181523741138729392258967399863497374622572239760367154374197349174645047917786121102036080358675567626798296756782850557446208215373995211320883497683687301310092473026571318778443011553589176740155287732082584163032571505997319317480576035287138583302190522789012770638178938001214259123312853862497657812985149764125431329443032289418334436532944135666914397046248753073560052673851730732036447988008240744936150063059637881547195904669303912195159808558467643112915019962948844555090334825332053082283024206158286671494290165829266318357290881697546214100623405798642970366844341272125496321252399591166993344775301817668441247854185646757570046269852525862389949959543028224150022906080885983573563044018270555074208100985597605682782961554950077695539976276608625677601567952847136817806177350176751215040416349085100541914480224756103922608788688385056031129818655179677665294374917747046524898277190179030939688105734397343582989724300506714637598234007428827814525579381930613726641629629189578436350568543776731736883374969909389703865800992736881459610974886820340251091620780811484136952175286486249170848809075989111055058877852139726687180839943647980836864263114576994628967780161937829877580544925204466231536412339624706034795883732172186443256046059879984117729995597834344430707707042488205945048288772043410112306597949702066769484189559697092676285219448837706496986467603568761234868136275316747169188842521250491471322770669043686418097049015499721194410138627847933531765465266784376095319296240818562613737455163769636311512200578624110468873405578995962942979536798601930046059188681916759626467611177886321156161344602136127770771502067320049277370642617093665871222043435726935557831064344709040553504666126918851727348640346709176806957755937527529381281432143980249757755245269352527108779687832770426619185504511847923699909561746174427767825008375938806391331694502007180061208185515876331623855451282217641327795487470208653044891795353539711793021444184210452468650535059275217885857114340408743990879070431543134425429529978232021246572343744759735587814293322346346148441894095773792161408016792606146530604687599175671436745274306869073389840740797031522985597123698640861766961458824518344465295686597564851597384445709975503218933965434579996695051803908625442233029996568053811265373544999065067130159108629918787212194475689104520991169208090817065296688105391141985717010254399007688953968929747845680813327194450071249891249936118677927021637823182078137494332135636035553989723537840213055785807867037495900698729454162501776091278194429252238695515588913123104641001492642947452301716455284190502328356407923088329779112508752229186236986747097513857801317895235863304360269976048862991854811981122174414073073263697262771857001460783415487982768874483304278353810618237836304355358588042360947511127377953137777488810972509110991449798733860245567184837607516175581693439331987579393266654919822688490998924726772503033871869338418873784125152569151201185329847172743175897377913783210743818910971015350475159285692197189343127025134626650666170456941684084626330706293480765363167311950834004888745676946720866765755115407707499170957792328089399802262221075952861698309690062217110849434335881969184956148278645071780299322711154535707653824926775561384484638581345394784679752565302297694414694909500536566975194429776110494768500410983019227196880437780918254322856053274155597851981695776558797593506921299494747301588359292709579256876452617382925686945310239112138173089865594652871980208574457785167078486666015473018253497951530212574134270522034773321341669405665504965523850558965345767488263653289728331453184242644051061542928864723345945961988640421728633639863469542327332450766839140579270788889288391450472927074445376283399646932594461383206011527175770319941455622237184996688653240308837457284079212228785121983857199185828934365254876610167987732295359609509813993223872262150097742930093725823994695955548533837738378211041453004756744908721457867119127194871674773923477872284099578211057000651503230635885221244416105132507990100859718439950728585950451653073115948839758195003487066310282412398312277474483051995791383813984177317167163352293206078867112484816204734084551472479023442232881405284562345829194803191153589245605175793036697120079074785175514543711950143989110919685335883447110419450346079109898357351419256732952582096169805479468966501923377387560036745936639290425234874099712396371293425639145864168988070216269973570719893910033081762701963125881759978302829393652136366260399984180116997429416058871530230083864279024544271468610722570056772967172628417846139027470514094282415067197920976369951084465700739427343076267398114758784239900081941817741566196177909794017450417475558632519466450381094782557198508164394394119884645979993967382889703792270172967860310610741322511579139158108840310525893809469106839223673041607131996222987955169340720057807516169892116876033004858375570244777559445904958247962734449014545357052614634700864790378953577323477706922069221192909142766915512755344679492320602185206717377498562604103627319458968422030005697106044713943695176488570415663168278742682798987290319556531666113302121497487090551370598450041420066248820538203289670007292921096953571362838325583683281119080875897155480415675906931001731973575498918072796415671142941914051780798702963939829993848689681907863942573652644861112834397295813350205356225544058264076567954901455612532774246860394778971779310158104152400487670094474444974142951874462441956169093667774874030155810835461514194573707933958152146944447505813441604082429053584086900443817863312630335051848730835933047002702075731156046928460037144921150674152647320978310727102339229729784518992259193294137032720874955165072767979612376487589504562097257947774708865382791967928042385654317904001660815149918289019996532230501419603928303322069356261076549879582775741924827856716834920535003947622450405823124400600487240353467109484214009589983671715335169038460759062476726286882657003794226432572977766349177344227444673899145010392468584474765275055873059117242026642001027991303604765715247913313568243814180669380158029155031273735465510569709084276282634373742307848403417528446964781847141725119604843632784188371479408492751307456013520383154516234607568616937962627894043896146838831861762886711790482382318173089293271217339159854126624999679970322512928359364671896757232959666707886043419367532523347371172624537644547278693741273844619286486584037836813181336766314662291688023853760415657708716180575806431283802594261253377443878020263314160563270899552806397113465161214196882473556230863640674847144315562776699111248311087880587088270290668078088828579994325415862772664493899808567387498842989197707544812079432413103384217991425062441272357392904679816019195572486805841628912396671445853100305209562173525220599077724604369226400987769042765290188961319847173186646111772392554865429923121928842853615931543121608874014173299965151314647436479526669512772308118081930010248444172955807796340030828322925767594674761316455495200743053609209708333594139490331080587278690415410388914865729346163930477026500288250227947363323176183602143077600632787944144786778308281798110764536159987603650643053299912893326613555500871146757885171242428189030950580663572772935229800450576355252022042599155805910473389756960172466314188053565861814682910603252384694954248249722198861208560630348166512964852930925643643710408156726032238136683302174020634568723709217458002884131140335919191606591995909048092232714383850525122775535734830857388616262587827921478354627932065163057205192967404891027304431472663566681154691315079658902294996386775964685500839396851408128293888041171345381444152656979419963730198592755533747652068192684704790043316534180074845808598025569148150215509687572804563306236202852109432396107723530994544914196182847676463142968350572764875689383098978505029358557186241167739888223730070374938065913449442670185581137209141638809463257214429524081966173101887451026805729023317069023401522640868700852273998953278752572512053907738332187441989522086800832670350798629501100533779416623310485901155699563295362865479373483414072283361142642791840306459504440007789283004179897359723474630587477017639408962494405176897948163537294548660753022699570774247850610784036729681203539480603437444421207778613226184171948735402076489770419669490442252398989203050301179472356648534912143894683199310958560341471462774713675190814338041573290917490783563878132072929940420454831326062183895978793787305723418899067184009034817917247583236334412076565238395669721950669554973512289908409524732103416028645435366863999542126541698803459442804011716205609847937735388519951265156104934099374501836106878174153929178882027230511765194272143004764252940618420835699937712851495082430008332806023118790709144278383365447660824104739665015120662599781549579195601467000118865160870401459395669330446887486702455385681525433509517542202807017713886203098675690995255951226757022712031367681888505481373113629553379654187867586739386128245873387852174066511531328887120848727797131025035805578775938042521627102343103984024531270260765293110897928303600081479170855457539722066529209261365089539378038947227049496847967634942689306941956369288147931111530323603108955835077123507894542283712323527887834055938205482450395869515810086164353340253044581446864917256838364269662604222714102749302249761795872211343202063087379616750652644211588664395537051963889144973110269594992729388806996546658267423990970859618059444420495367947100467423530841992952062068905417432810452269510412419429294645130196754189403765724447098503734283190250877093148213630114085004467664672019580807225465446087658378169686028785219155883708464618608831378133821940107514449242709844161351784923496303579952194152428895139053970141865470944467852548007561893112861506071780848785150080384122573760521541043149972590732291690924930228198534147213125684189639295535984182950597203994913821359793170215783801881212608779276436638222481243797566227759908762343920924037962275371753965418838046850841071434123282146704941771761810439002950258915144434914287363840594667900065667542124362606305904938430368820801558377323658289208541680834170295438746247890457291423811989796906931389409172594587157511443840716966911593967870564014271604397214545099756662506004717104073672582003172064142442700914754011572814980542383939910403670022259248499013789795428672971387153724581719611171363158611435984506140489263300645647095408341952524421146349787060519639647646471772785886951058525952850381229641481231143642372488286662427086342837131764861826229826290240693003398833281557794968053115624831272273488612730242318141235889923659047843272034439046966372192121383668660395540444429260425495687189708083965046851027195846757714179697653487387399484858956571641058239461384863974949816454143455166851231249548714100728960311963625327229268831975963403611972429080627329409481052512954922094142658479716945225867645490627729960094345614104379275480443687145570147194739843096063062566675264151434936483471865050145339013791878520405001812401952737146689689848996741695788745273102503741555611641755311119360014118917292666116183424759112051034092022685866947052478760303792722241905761173444416150632279077598601836054694835999040512283096951235285999369053717277134689465930552146194190725224831261292133457185427154796510876623650784996004770356401832620982876360169052212623885521669344150246848605220612939596421271553133786830544100014154299832028797282796926695976585698224321952385910723671178581225032891671668592659899158758504787052653286940550860074253679153928320138517555791104241782429068513966783543859831845290017440932203658423823314467973246832747896125244266785549482774605754624285743143484469072297429721090500282316768528100883765950106231769626957456217371885405422321916691428247802457912119111176785332172463650498542406798687658880638810516078771365317056113903584825207663251046531048040853624737039307803068646968219074431749664543945998755044116190595451927703516203818443427501729261747244186300161742915840702720505542248555756938163151812543662769188116183019774956650194148260601468721184143495145976882295415977788165316341527149960315979955977612929958255809747196175958467462956264590306279372658029451830105963277440832479817362119198293858751679664428478893614673433285525471034990936093344925212957853916483663051193257059367592816469795139640546925299223018687912185660895837592205630331592307739900785403829445072026380901738525244927244949595413256214952763623826236825606827677154884580621002115586769740449903847798532137209091684163749026684733763320365714330093247637282525895838143350997020464991578764863286689509876045344595348670774708006388720994406661248459581183168487865092789053424593827643188015701050198219273396460487843729608146126626907560851796502584968227066889333759357347433152015603710335795157982687000225678967212261969237173869605454027199383525908436484716601555430362499355057295928818235440479301238803694560012249464378307003393654467593273595604455322177673892242424803629211028557936095174191213210588311431382948216764362952324204586956530948271547087645695542765414564061669566974257719873499126567004057058566860990919661211748092344703295670646385414908145546657874227357623385664628126376102463388519855947162171200769016678189061028255045378308352349536619656649651443519716432674596276510152586880017816449838235716772079031429448467492292331326691495584640573339568166314141546454358949474471345066927203917832444669424927456577029189696459758816296286726974583691677662501184266843275371493750112860867083414606292571579409179980300237573863799786078705100588931346631134368553055407892425419408502818177990506050450356085935575322214888972288473746287977732841232151798094368711228970340635053617626902083070653453873461688649827715635267979181182302902968276768043566318294297211694764461750793172083736192880032513571878629875947688188165134029729036980824644151356316991531412515900958229632101399776732331146612779421118607626713669239653391189333610905867346787031492582344604770277492336398786391724147825649622073999307632046214874394057970861044188580816056270462844993637323187864882118174094726804403818743528312838937056536547562982403107801589206209310100501497894303981704523381554927416777536270752842585792734053309266398260150388109914722190863624010706891582365805136766065506007027370129704125413168361638375116919160133177521739282450608134078776189659903287957987859852259573493820592261434140218904128248191180770564951990798593695110636467081547410743249636101715836376206450524950726500391887743141286223707020802874570485219567931479469714340000051131416934832652397201375770093327498260386370189448925796257278954800602386466348417563506336447590755727584734565465092207722063151132444733687570923538552115436062053662494566971949137157053122682831338857457330326062093536903612245893239692943009486350231193641837211387977224415194866591642268676450669958662806097207793966789480167778291525458480329861562603105284260002792569752762972775856575366305824823175831141394127670637845448930853141486785894743331632697072447100541044219500074610635287890180734851231262047962825722802367680245251449412397929205781195737713624014790712541186093879049857427291667205644966884225638105371387141398081509924535137790879602817226132993712498369682688318693697318449520416716396161710056682789942882018918043235862828212882707463105855802333303747429441645643316178154556550819486105003618615487729322318309818271898456586411468624991950945346742807058914583227882052407693598036230232220614707504813528283355115037858092745845484740371239834398538587335702954552734912403414014244760488454636779607325459544112353783735801301564871770796992653586591313134680348483527780670199085041918524255265561470931668743856190894442851357704630856875794183278597594693679578723109957386588345424525625187029557462586471906604023909170687032350658424438887711935117312843620877489036899801632509791921098542210251814031278023140830380978403571575037673358440019348486846210006764428921641460785639563521530697754685497698920860147918995952079159273318700635320953953035654027768349038006818496546502741664666481990999352741923518493428242209504260937818387897033350718054326819592906576354646706867139109029051309507446384464513162884338650337903490886458161923362891766462726775461943515466725859690418848325477758265402701719332210380036899731634015626174433076506158631100914865090608023442523768765666066183414036863710228578912640993304443871792778346657082053654404185944494668203121846013841777413591126048418720338294092977251966330922570310854463766082011825515041137972489098044805186432878536970945710497005692335478544376568227763372664130832723383398425466615619344009155724424983025872984113235401101151259945757916357184616296802832643402687531124677926494990337472835676560446044771814999659973421468569340543850132651966734542731938571170593336025446423752550830382729760277661512410259231426629406126975047071555335122089312016860719044761765613532836273405252194822362653570937991080485336862259975657201112743545776897652361416842673113974656383361057825715405129696773338435138241699857078902485467824545813562566249477146232723794517691846463920562581448092871353273482925121694521975763439322975154640683506980916957435057394605536325740315230131906156558210384629339959424566448563246403866621673923853346164077048879393898963863526122710490964406185380268342340885415288227137454371458533199277180963060010455759466317036880686590159310953636513663342489585154302548728987564203346027362209303848780499579271554907973506170722388550784700523044558831301086104292728086315239038013431171158256061944929372245775784175677121523618005716242239261312607423053061613072601932820897267824083839185058653670756574172862980815398236010687985118994332705714564377168101573942093294361013846796453117194132179767557231395546509675510128681876191266748545187386839327058906561238642920309203645274715468863419234797157173815748968524376079213177910070960449756317656651753143642416207371662186122154369308027468478211268800511269418457450704809754609313195226077490962962645100062812501640641792099768494461095611528684978068089674316137773620974335145369183822466710732668580365959214789405542955557989240679768277812984278070642181723631654370167610712587616282977619609603608786409667007575569911644514280493529840648920261813771930350226711850477685840767303894717011067126964655298487461649150265966913981215823003147595811840920041405818855653712484678569355322812255893504387336010443855228609257090027496718184724407256382216076750925168769855616568239255327823415670031005526139493574865966157974846769073534868114015260456148978065039522462169146705885939088873886775082212432592465935385982512276540787331498512905189885988630213235487044218386746340412124528285964781647750041438962614682616994135754980246992903607395080491178292252541976615454112214955409431184017864737746302222399485910314648843386999470861649919878104604090490642947211729599296927759310438597274412186940487288621255126276294397102939389770618396918162885160402027025983430419912793881450712826289470054498813371997559749617046148962363168762664154407667409134731503854071967117493367945387220998022549451701814221075419797168220132751362724972828608630791418126011767767567896960883552307305722489743949195127127639201849238891435679000957161388959310343326919543348580985265970561684172841247152430509273527232823787069913761274830413928916383191547062385080116016237396162228222558629418438050458300064827906127746769792346248094317338682370334896655636627141028775274415264385162559734034472071813992813548737578633997247924182056613417933194373641246509643489180051690285945593263773993076404209101569769719477758552520355095103607665393992738209744241225423726830832959807237183389104767133966381711108507809741596451233059643437737291820009526361017009278077585593371580314989398638945974049609733774402047238594664223763981754049951938184259589640106340101012433663888363878972661204487914677575459454576754474125462146256112692353494153191755212873625928441426416786799258170590178574277229679001686344872637487664231012704993659623593828037020114193545433642847936272862107981596924273845601967226341409343837693178649987868711677205254579513542002998537163890426391103754674209309502129957795925905833180607195989519859903015297880501161742424785508534728495483609136318343843566126705200563790372924765163740870489287029735374314924500029424847771142760695776022648037942673892105225198679398514192856975742000368326393819912285700677317312877402121980631741544661857891294348629055122562600193047435467147192335961123979807946068475409474531177487368390451085668492595663005072930595999944429993623120750461149304562364745081633315097580563420976311774823771418984517640960193596319563592667416286505858058390007911231141658696000733516306936540375941952032769521339835513466845889619613097103905672574683609010228095435925887329121224398745469756805347734170627432186949665868955360820337670766005220734225696159975350266953509870048022982929432232455926380797999937788907569256848240090828829879160567587149272888141615163531219190362385224909297054257727128221666739657355463700516375200164629782660928269506574042260976034672182535553820558881128094655810146185042169517073432271731605026720621515220383761551061097354655570657182929320687042116643471764906380702720727162036949003060359278772243903349126303020859641072602032060076251079267033076891459128272337429427727146212857057419565426636011746761143806100066367152544523763013270910501471362070242788292633305143461336248234046809874108329181932030870230036118521054944334974578448209122744976632177554605566743530607631239546730989366422111809604938592129537989785173827685760161581737521387106073819959304808317391794761281038133041841159009204049933151083957248221190818187454046296538500308944583518179515756322924614265048889571226700482027902207678212953340547987219445122429186061115135727987182241198810453679610238070036858921672124265867759451485769985608103165118569478847998200532321187174301674110258903151964420874876595296923586138882255099383271315947669341229488486389402734995136159020870542315260210742635903729452443389644778824646243049811386866786252192733152787349322560419195552330143581730884311424325624096725869621559718470447416098070958302276073268755494359336717828187716294504494898232005749236771414491873639292245739417768282478844799366063668799545928870771936523911637805459452673221623620873541605652779999523075901484927963630488976390391739516710739980376922417568769889315154183722852489395868960509235409176095585875601003018862809013512027861159997634412147540331954332175312121998375251031998276034424943768351427648825541167896137884596796227874350136719546214803774366120712286228069017375590469041629281424245814305880409269912277003573538012185972650950194933842338376297387708112437900266428277133475320484810921289241663638721406452619762292721731659036033498561062363258842491310789834666809865958488683578702019682781505088019423874552611670600411075554512902684441451747884031503399877331848723636070811891625334025584527217113757629758270238113039718782735116142256472134847220194177536663134669241078507650840027274015030173098231791798143053790773452553243691531430702054537004934471199826541320169275024322541098774012973923905995750994439232684056245139961559845171596363515327363310835355010071991314295321801537385026210740661564210996355491720862242994951601596844368564935191935431914594878464580790721399620076702131393305209659748708814304254646709730365343394546065097500754844492152755293021159744266765060374740192757684993143860628290633156633263459280232348471626463263969086947963053977295016630065573149634402647217123156604896843027597790636990950348955984371831086201155907259654131527048340385990094148181549627640780383631493893079585197526280041153275334516811576551123629441324485764363039058963190067342219004737933993856590273961525988294379583493289749356253775250667288405664089440169771981657822935147742670811741133781567691502169228585986910143541374578743112801305835836482841557101206919268456569185817393193503135722147491704545148275926993207941705292084001384265006733575372097674425104842027872745143645749873557007501870915585489515999781969154363069020551139208192864973139783481509976227725539614197271821603650259494743152832051959974340950362576348091108791362161968267244401883740467268496548838237862344896072147060650425788453289722473185521259839761157215758141297959295754087763789271452389847229305429278768956650667415454954001282943424845027625436342625711191069917553255690722583241329714026330799605450308577430411568012412596612714956872125520591880490210261118695320412297260400661242994846501668058480664341415312830915565486024549876708571170380357954668311879143548240352180364258693420153723955874215850587960597223512097540762113491964109212857590078600717778679119438934562658263289116870900711695314068739010613163423253125052153025318092371760074607680616982176930264065635532534831104323308802688050276844443023582660787648672330755844879096259890839748282791141060392540535999583304223597464214908843021168865833158595044601081154568128157667000569293569671858960386729556436597151499881466821623410215467801753304215414870104712833649477618977008561107872999003454404614063423324588907689945484817282966644901075245349248904734621228341436964119331566967257779669250765961091643837476961615104849910496499462890181142392908837650267635087106452541306004019396801704186401245866566115309060474061876229441312194296383591744405290062389613764513002596514730570384793817098826799806723500508753470480911304951593257493300195947152297600102453228942091952705948732424547013840540422657368405271380781504392974797144901583794310678407294894925176876255487922809768291875748310799308084454190556635089847106253820307249009268484059018151845353061450037505903385757218294411429842052074263519853454777975586230536069508656525294975808078784288397414035548412766737635812346018484967994211658319976853571633063510327143301699168858129181218436862964477707665474640274638293982321203477533733013054353967399911769744997827935360569436551439370206430511779195297639502188470422499390805274171077678773067776573369798685718640377953395049319145159120672984091317452695049044127334684786198079691914979100303683919114177578837679710662759932365028624409288181307808992686489905214952259776351709411214762244232355320502174296089312645085972474657568763029133106156333705142618167178930722984028507306608849969955129361024561282062107476154728989201419061873990131284361903777172764632291361147609740812996405180381749834735046216929876151389137406446509978519751124157131845685093661657423242159392407149394845318990514646915713289260544958542126252478479370767197084316094579581948825604919027223068038570233388150776608154414422259266410763588152811399453592877777153275139126469291593764323636069996685748206005881920157313250498971727168701549327694216042403792519383700843917364781860429722227671000810500002197743546070412440256489276196324324699012693085223852811971378916828416269527883083063093092373984083773148518010369839900244651678363943680751176661529637465795771799431168749650773126383953675600590326156070118550739849963818126741526667303681959592825405405310133411375727545437529900703239029063239557305064474948576351632766738262487353850609805905172010721823193660920089599129054282866259013272222106600671042493681934726172848993034814642449765869550085209390502480318033795437181144050152108008067068960925064673320464683642763064393717719517959472794419300312877011717078237090766463656263444978260480681570390323584704717192974045193868831176564883963847010336820715610562903569384509157463051246570341367481730781006943633525789525302745516232139478563958084167844613631870593874799986327120770201347604684177651430849644195409162305975664988022273280824178968983210444561923691504651056688742474292601857381506047699933807729385248420277356159702007345429173735356635984923327360907890597742059841610713931478514205199749223248157267838195927536356820140908400783566507358973146976829832001999979545181384341583912115097258122279212951895352934168263232367832743404701053204051596461901110820005090324054008990473644308588698721874451403685648773260525180707598313498841365112399071762600632811787936487968529681590491445450519046639950640584675448352182128085714665453518369024210369789223219131134506399699308305003344393602979652816554377808786710183531557369037390556990086124347820881658038478692407199359563964640999775954663474310697203478909927691285974253329677044568054306745648700054365232625776269833764469799068852977873536086089507872629483192280284489265493083095969322242673999743575110505839885113395580729756064424321438127712942851188028506351577994175467578407647329350128253540024854448165186489529450920500208900621317630296030251515361385485349955674780452752460885907366593709543563982308428353169367209787803519417213427542442173815375959691623290731818640149125409650252136912518728024845426950073644822965857816854569956491411714521519766094719965329127556836415096975865871787953136845343332611134596102573967280983333230411523939991028893079114907780219537168751698869689124719411289960218672081207711538448226670200466135986304225060939016625789398921931790140703368170697948538373186314630568239552815985880189963439001721888850849763127814729223016670379292802265779529219131731497424216860273778178125388697219563807738372429596824429825745932926155233786909965927770274963354356366062253278932272556838981028710812660041818251940496470865730917051192431856144045277965180963737487826664793474314000766773686156165526219768443049141307496344820996043136764079851050067159765593351501366541483080145557764653819491538498725215539555069799702622766930966673996416854659382644783939545828729376848858783218473556179492950258676015470809831834420683763536132095894925485313694220643516230910084044045522947306794884895559159707061069356915607854958543449765064303976545064135401630921788341076157898842029134877434766803937683427959591469891866274711933490999057186734867864086824899569824961966413421231869311168884411234934419810018788304440538800560818933299045505688504051555135441073314544799230941048594945417808170785874046331677974131553145499082758198528373011767443837893475491238523904517520543663887937477353896916463250440970424000825792358665165399617494628933891683547697168433320854612645478850760926623918909673062500949266404340900582428565391936013930675106589294421575556037626843546735354767174053277288610188428987479278802634314279883474807245581938896335503799108842322004280337456493317732546574068587696933630190298573482789400562581401237092493337500835192300253680196453535971901156957654161053501189239661138763303073239469589590353776028524379087572686940091075920722004471138628059895837806064103462692924772766337493118196522820753112729368588140610515441431256007286030016526828313868425652776653812002980321175305419256753461568719168259300414286052678912308178048811923758851382573607492629109370720053037983540358567467386176902244897005246006557000556557851301350491023221340042913069044121338352892913715651509430865780278241574632378191724693666831002443052405031483839733891601167409491255440801530104398868086202775269643066460835478506743714368408494613000068934186405970103525666461476451906525163949327102614592462010193016791092554018943645133640774912361591483606883925421933622119050851765785744896142143853296994699481661332190142117414268443992022397370156326767855645341051101093151410058267060749660369101038078015545483945191362360490410900402298484517769873577844949583140979639913285885278600447113915939278151617491061837574690499060524513835425176578397999135140169504365836194013746858274984873726905607458185225249485785427820669170250208283080626123045907014681023219495698745697368937599398473971376375512158043063074671193084135429992152263731085125144195799715026852681264911768354596565808942828225096447439690770868364813632750941981474217138564101454854256742639885123542998287701758676628872230981828154393533815415165232856293487924921419275836589395196460151096829826838678534814595833948458465236727263571023907090939655443607431076191158878811482700905778163885257198293969090169471156497411211651250492653327192803772124115191648778344329492803274379788201047052675015591242855507177406441963455613244426806774845389693361139431235490744348955393644313832508445449719502567227490309520126258031394033681165052879105124244061373475788100864419267437893982874974594376888548038605775461022660244787448983137263675258448661557860600790360363978050213015565251228941286063507581512509310424558587544783965761206154259202599922801614675949634330589762989652447607087828592420897083400230222801905072713105765915666805079628671384567411220464444629488545517117668703979776179260053619373270085252046769273707781281168373048072631156538276780753748860553208044575955595062262494925716861855267869255116522174629558989559640976858937993562688145511552946904246092732329506900414585943542867234324816849477645993883626845884622696734854733483157752697996072551300444851545385758107375404196543847170848149708712914833818838923269627604491585368151060274968714486495468220845928982861464663180716414016882905009326922010717705877625466318283827702491317819987063047025394731618773119516006819212924819527514268051845428657764684149030895234524157594993659615814333569138735323300223578304429321841535784102555616021272646358429778219246139780525902332735499266692315439116480398208548990037501862236489099498853797811945854349607247685358356887079360263710709512017901666963781504320576862528994947357026899692398987955206441919854778414164706306805374742843257990810597447209901310030533158059077565394399887426940201551550329625455652069905549348354811774475544653840076154932967233768526491316482329835988736717388177332941796953870739371737306930090575036318544955673264845889320609797982372945556158381235237214249007905197602895442129211573342483439105295213293892936962708027015606486458674193531135044771647787854763998653797259885669405655433972171693642484243841340783204270235481851736388328232449666930691204860695308407579935450648735262492120187689414695939712873000466536451658811110503327115750350052645538059162083946606488062552142145305375757649543047213159252715758969908127750309712525802217680828392000051899961337375543683275556837591671400327792513087473826397272471992157573634400307951910389276437434640429631210809531131335266684538784331154680845390074886839099292762604686170725995214245065655389020731188664835864376419276837278038340673415328525670993452855327784925620117759556026278343044675599304247743773556090116464242598263199178678340224740329949850107591605201453255416435464962622146160537098284796292082132745694538459367151397372206886798964285105476011538464572875383684638165448140746461841027331726733968070174814541059415841080478783640813174188152157245550405377211834777742753961856689081465109047211220910718701452179993470625636367262916987458912328482890245196669636086113612808347120604706082824150697223641306584718307595260678375509163791368786563092052849277519994387995966808827622582840125113699579317264608655614175993335332864178264240411585747785641717971492747866020442799484170508957811141030283923071905554967906252239695751232082159786742036842058654738933319194051204417799825453703393836374317621521390080154742304873811178293287663032697107710116513627091110241499872384336742844600940034635521328198463316257672682799558316995139254114453459071328768525818241423575851932773114091089395562671436797960140280525023031035124155427977408627943675299823980003095190997969048414623795183781105663053837144886359385214946227660394955804466371101281428041664997435163808494382079773484601118670142105857641501723463107598377799655113900319357230064926304861965491272698617042911022468693617941439369420809992801752053135384130934330904233926053028121032097360671534997039366256440132767163644580384340917888392124775047616024024469917784312116977355303553260232925077969530656045095852489149017011644853120183070336808894156476547445983687006021773015927771827151658025176248695011602377413584815491554420922222761972694123851491301906627616668287445493017611083087756529662651772856870057794020793374853582555293547683233547265595386274432922317779673143862465831176485639309698073189994111808747647284457694329084752864963463319228939100984505906320185054421867255902158213310231590282700407716362403180647378087852963683354807256142640224345452946293130881212433614301733289810461774000029776094151535632614059175864259890707110384020800955273660554066063956247601520043738794386243113895854422040321034675842872407562769841645592309206923671389801845185471492910039533965337173012518696230536680484044595523196014210203469332924780574349662570008947877288833064912659858710447182051864723086150529511083971353745252816597560883240257322119958804131531634354034089542754601416249039288480699004676557194377455511770708768178125216192230013999625680889112692814078610196870683090249182505668926870193052797652571545877454636229911190755149278999473316983304397540831291280601236756247162129162300256955058420205431557323060720360457607943619931973053157930586289169970182463139939134008890403754899785543730769487348733809645510798596997504001127050091621159476846249535839818886764657508908108153879409963656502115884676948148379382095208607512765761108195591141968911098920865185521742027584750078329223145339407144934372933160619258391298383018999152160834307763115489501553383845841595769622186366763925821394044335047304604386698716631561289811935912714986708883899074660889121331682170288181814525384520512821955281359603946186450031642793395559804393681497949395934181103165846879754198106772759613487466191352117959788672883688023533042072064887135733332242951338781535407810832881578887819169592263441957515469323420078135376184670667740804348023223855945745711226730870254199926206363090818973711266317414192517305522311129831035323871775751506489436741591551552151765562490277584798878845964305837403719258896849872495231269001958974781305670660529407020616722052848389836703621193663704990489338029061549767453517414937034524815095477014473919266619022806233567898940292154118381592553286753394693555554045304591545740975082986135162096087140228259210242042336701851484103808784466582280295501881660664156416262427391898055262442515993258980836872532983984166416007024902755759844598665381154345808659115352145298045152721712430683925770382669956288490385922511609339816485264080589581162873451781761184154532533945546737951564434632430508404942278788531601096187704971790366548425050853156055796317670967622013488127846289540777491411695507855008953736355495863185206541099630440965536094173537854720541384802896696856379509757375746881826367286447090238101659785189333949041999131201330000110674154079280048176645116427549185154697768655937148990929357851468672714493531415107526714357085338953034894800031993610203649350191036036236386559399322787734904623640151659432897753704429950760999867118490642370041973651154705637597140735841391680372466511238168861392554000356571405275162831286546892195394808991978146738974530772571071497814905561405926667973614195995220413358411633066251723937712902618730086152542088058798179710977584282068512298194592938789552939590458346242060453723155240388672190780006445455940474435463270042574913697603724923667194633007522247430617448714567277834079109396682417097025998624872402921931564139733607308914541309930739654751585988881460601741818184762847325822663419453142716045348669833941052749447835067102470313557888244127217896143386737906416877279413283661363891398825748591305378757641311108003742471472378581606001107490981204990013571547841603508769933960605961799589976837362024366593849437687755582081853539656426665278300665804772898418015607639660919256736649760820426997606225717996947919358205737286037927964664946123586176660744407905523649179235343759858647638448202460820246603333975438600173290767703057576306283453807122490640664439153816609200358585839114924011051706295402334469654834713707450754662366432854812534632410482573699611722519386851486626066491994065605472822798084743438393482767637227088250490799861948303386060082920750418554866296467781015291293559409233246959700812794115342107976883154572459484688151143511349377600766855898409556422308874021841865105265342249485175069985409706696423852575932181570868911829336520748634349322338424929385943546533142265579849478781232062569452978238552731024306194085107876251849394282189321258315729270015441169899054572796181335119854086098398537867600722552581000230137628987331753803486444591918955792662083392677675871138608028338597241895200059196391525012787164548056868738332205964901239171602557248232827781658414888336567915283833303014840655711641429332001008328194214996141197798385920170639177956314113531978201260028653862768733693135541795924284431204067144143180962126279270481370361125472343027907898047233631766504599630479154334367966588095446090897044487890855480076916300139588381758545370278263980290875059413532684809262436928125567281479453619161654037420360449833751171684736604892343452639867896663987306340673348584212192343318667199012369814362097047247444633865928182653077214123947858855209969462055940745820685247105775594927527785582584502988395406011647717931115666174604010786150262976914040496782957549217284558234213631307558897826011958733416200097962442470969805763731707217309893042361007787060674208390132068555340873904862379529082493740525701784806221131518149713330452324859705343207548452152845517447452202734929851689901436731617745509802366130055920459170010144469251136676060644639469392464118101843965896892882337114239527069959284582728035662773657589677178571223858015009825860223191599442435432333915804928832805641339309116132292945636011783113603994070688604431788331176780587212877696504563132666409213455973604129177808945204462288123512844125869312115968234849415430947296396702860318962599220183252729319193489310014596199164340854208771855605483756762403897587961112421918589157810219269649203428793702416332560527471190986520356491763106104644499486781347967097584301984118564547209941135443431397321833542733442928481919534108985874946348355328707309233689845357871054555116238230401882269019938525897255966756834350366824269277342967611275849257227890451448253077434038034428657361919996839244773960079435377871338554562558818368833476851798417113822130179287913285715423557538044663675356264893940637283796898801280464205362458386164874828503025149068087970286265456032681559412837559109357319146758673785157783542602316383343324689429120596958298936301250241521627866072264867964295057050442553149920645170237172874980416143840173759803369984877560315503779761787889410858297041342049872737471303554614242805587524378471584301780287171949396004374721306272826281164556695345655521609274526973592763090576482026585849844043502454416434494621216103451494330203825720873864964555778021207559673745310037125850955170085765583460097623653904165106190591231204156360541205971668309580467416371621039717544072550886185604666690334744129246836207261927655901171482335425714955051120370554622074627868010628067465431366807418319208528734890765534445674423948056676747413088172430731449735213095553208297096523105146170447683692254798624076924572288079112604003955212710984953076696814431297484606953897745876598213650921571935534252848961141296175437192845336071925294163687906226308646992070217682575480117069997455208949387772318176060938313770167106091579677723550636178604958729549684073408880110173624063077688491878290357237821191445369066494664537184505993975051237420717714655543020133572109917890049575065938879712386469124139270725341922378152643685101015143913405548589665138490943485490372629709791995739881486753801224130403651451406052324158782952121212214529956554208757298787850202654816768408250658598469178641884544995589241613846313950337784912189671708255524892702632905593507081229978322990794693245992961889454215658506746031277655589055381598570173271688596055933880729554678400627987103059871873680331920075969705266424457951182040374536662281963682989389977406843883903536721838378580606072514980322397233911056074709716900853947560461335565941284077014167069854715217637678314578871772759986295104202579039664143814189538259790149292604729562407656491573814457376358749337505129897938313809097628090331455225988072838985867389868415224494447499416262098152857728301901096458850650728256315417400894646345316039609103766810957201846534664496672204851456769081590742426213518025960667910065872296312094397366013885789109339243759278144871665867726189253842678597152496100587821805903039215088061000120355348815560944990359482346579018618774836635867118703779841861757280119568273902633162246752110327855985723246704755591819096641084253830321400447559510169526197425522620946579950717880749183718437311507900972516587280413163029942626726224027159015336162614551990217822716578511789810042081596197465038045999400930262462014903065241332865769023932373325468639843829565374965870222391444545553757892817553018008885427624357128745839086553438198727409098952332925387957777736183105376892753320338525729259342805829670538923588836038935135667676968516984566598870999897893516182522794707635144019738301055205970413495399178609788405328556337033018572550093940450184142324876754502230232736875080332621739202283643193660749554975301057724917926868098844707852582094829530680533398197913197135766828463286090293405439038519937358733814592917814930891079323794354460590463713708049853419337308119087463913112174496698264426536881909688332218916186685249630601308814313585792645087835634394497799788473788321344541063480692782795382100081116970475615331560021800281141031457661949328822932925556008377353943254479040670715531027023533126834649100868208442859242749892823941709498706633168780642641792771996087320333843771544009033231631775475772276437823906342429810738428498928542343176580767975398637251179039686007592373821533305790195525337569480231133753504263074772962202219159397772163688107072503458497743646551366040616866324689680686954495301837008120127007949077049925138491813724698319819302319249025690065695842811700540131918837723276031056066940552351832118716799100237691529889471645418257450984559345397599352494265648672994048860612969866821378313272517018425553727199730440552264207663379700487090041693579594007528696101112078042206093471800272603159673793593631193362705303146338185485618299943320847649334166281309065307363100671462288246863490740238539752365419320378749706636853049213423432517803803927393429655077908841025291753728600593844984281110997399686666211102005809268886689194311299266560892710972258852242037259115949585064647167096648010458381439278314298440502548444275276781730215743187276154803074818125674948834872111545155184313290245976785271229109914883569307440591706284694284533484290023546990654175086608283480534118537921473348645293788701640413565868213737768225449391658671775957380011687333894253591832069817371237971101445869350202387156561777467732514930215230264197894198641373094183059466578075217540790569777169827995059037533391839047942868949839697833388698967042964263801026373156197816870214404905832123336216958228700462043727930746455442404957538443608870075477341148659711035300752652129556748237420213810312901304676980887188121892286427402677066420025719873138344901262488709876832695428030285560538728697695160794431590878379022474356687869661760593015745354389223481219767014296075856158629299327008547678784241121258567579968408262535653209343388335473100156440762991521962645719106290325082227735368001302224149311112601053364982617398575367229059437820267496572646803470531988567768058284963708296540638767012372918643862549949437995800259856909451912860148301602951496645249846823004315771651820581680704646569735280469140757917615574942973222229804469868281108486902886508762344856320802787971882104099861256325755204930277873820529580375126788357539919135525785183036679586432792674576927139642033592058152421376215071698931340065944687000497349270311303328921917717336626816193964914882073257210864915918873306983960953488506566197360608264245099701679866272727415978302640195992867475345335698039500567655147384450777872979121784707690944762454645137373954530579094390343486267563889834650131921830477499593479704240175684394935223587753622718232997059986206456425628942902953644296345007202727588402702965620309897872140003842860707133374334062476016987704978868313201966238224316487325661254231003104385252875143135292701454197116594283406472060082427603989274624237380375898225500423520788384580584539874899999571683315332276702308565932894639765164344726314146537516763353972629719426827210778316812251006246650770586351080965114688975989864855514512865098100132560409462090389226761937486301837320276823597692101549933023247082429808377858479325122329134645859202225857437828652069531842191916746119726847538897713983905168586900595932747185808582953191889007581391072187615853876738276116366198100819611834380027225565832657477071996805621684933573655268177133842785645806651254423292673125195898836357454161343602084831630177820373226849236731481697817373864394200850538435358470665019842863368948526249843112745535820231079638602943182989061972294015233086198253815754506366471638703933851577619910072270881167342056398187661786579604961431709890950307878007494009758707906045852219344791931668911298591237734330072241519705472314436365171931560070553112574842097390679175209625410178373724470749931578154343135460373647908497691497391657705382865297296104265139429243594645420437610515351840037944998722654377338704884767933232756440453460739208247578023380851068563123976779207690835981381734060995171347489836953576161083250619999251453692208812425284618755986372902473465127854221277135818686914107687274493146789370076162224923773586469928637454162434314167901937718637677890413327067629002270403029919194021461159168639789233079076066299257964651115290337955080109542420785306877229759567684005312515990274709404262247739967234905658022946919332056900784250462573298680492159951900547857818990185103957629389805279351218914050810806098878627738908584923536263291298846860097966921611967370215456886317795498039249753737795131515097259701283927276658303954972829471637246262005111583829738046358168266192415120019777145737075094004160096170422109871327975993685858643476010270734233221512629338539943526750240931648525891208854237662617952657779085964008646001185720367276418115080947090196135877506513966873254503560694218756221606323328985885104913492241566654019449247865924029010948126476097825148812830905498194732699941110835167571101941330161641826554697154403640929299397693826508241355329830567695554843791362278738720177892637526068453923025274385615714408142920880490533497300377186165198492988425211274334089795775601186927722713652654425921200904540224463048401352172803617935255566191201927344847552170787094442022759106331572878693216105588506139235463827579526156513691986751961840788933506600915043548686146130197119666997265388173313873189688064650821945371056931327297491836131426424900957734477682095925819320689554913764276778440288841031847623984994689254359245026641275676514868726394338719794188530158061532783792667981702985124623275389030708049786907670413256564011620013006280754029994873262208965542412845458340174565981615125218377959721304571053645331217059004270036493017750983539991235367432746249122911806445197237075488353357349941873984102800972300894565398731693681311332280872054858739032093835330779500528486034169174590238770102309320387037264746844405182782189112471048838004777021492361653357714321867138787481745216956605590437357864522567054653881910536380126877700797058838073074558689927647592430774600714121495129457889554524556410497279501510644945042593051051600741495638676899161945277557117802610177065265339103450369312847751799950153025740231676698704677483804988976234868832737747602677980221763698460866992320699733800052385812222787908898631732809155104704957449197551831651011037655106431909181083986700766234562044110151282228713836137029972935211663384184797260302006560046968261419226426380461940191363495820780546815606886407158711753066099834435250456024130993247282870819493557325618926655373922957548580407931591322530074061364672113186863843118364969526322236151808740006734465505983629566650055703400948771099887610585159786189242784628342484939788711873220412289959449005378909553931741601786067301643716390816721270972980132850240706574994827055142922440523954694764541029412997082031310604151640451480760623409318421084177142199280658899581602976584409278474691772437581751419706490362007511012588415492178568076406119816670470770819497463234533834366116120272833568155259443690861255892670647536516181113394961791040065449100970456074779261179318578289308645126577392359002208469546117790052116665657822160017683469767352560033587264090818527208852841461725475547903549571894842873411781039851476147757116824437047980409863582394096680403633631364822386996182685448180541318566760135102363640502384416623647514666535132627508586330833380639865181905219504310335873365443625827782664503247412477164990600426023168660558522854550033630345151638484114169052502641302884815363145921285619750388013551714657233635194568788369683002059258809799977110235940297345646082858179695966642668175290790977110858386704744579674741604984173647584103768411560215522839115031648964664949519780876939929211501608322954289862107606992505006258031680986166925322318171468904509827343027770719688150663856494694858084941963970134783677079129129380838072048349194523528206594116419791473975422165998236642391710710620868670839032258433454985693042870658137149286514177060288580177560790263449902138129288388682446620353629097055248411554796997145456842628691496108384200792244149329253663382687602474724042092406408823024807199884681377774496059719283653975428202355393442268954810498077035808627829705249790089588755378498356960321763618849046618674266807973798791627472913960401383852253470439647384966764516602185787780123410996541171803782123398523339902942834990251337056609974411495478685481348359413055671316691307947557906187498720783156532379928631541521219662117696147373043132974319313365813848530634005325761760881339488614471724739802767152860012553408072150012603066316658816872770802710268108012323946612596332978724925130477783957332634703275107627493395430385285249247669990437532556682986542704221592931785287003744327308406952434297349292085675929355552402317594594145691929630876388806448826621506461624890205666512118942361474835753932269810666235114932562379688086094032203426650881657110207651682328888617302577899794740896111257090500688527969723602965117772115284311840141235664231556715383468159654677873719208531528235796978426317007020411787671127689247245663181456543747806762676771745468458759987306905610238919191156706825051090644581569772722541120059480388403246622078430586272789078570576088582397723880345805782455666611291382404016766995484876926486724159500649483286705881468931534347267039430597375780016505091226138125626879236006878354703644894037731777851968584604336639567875096002290711507584211829739766709226320684328170600111925279159752815124865957148029427711551409581297508654190270062876824929314917489185821717184443642691753891970543890109197074036524194881433601290066276129730138549092563855939298391963776637596455263514085530538905113494138363275544547815746494005300511026311647819532074290303438400630843257985859878149230504938952586696174084855135160091872514925710766677188612350841589722395199707420835376831500764971140120503088533008470208774356234130508039811480235452719456713537089674080267516354293580876101967975601918081332025722446445663027900396408333552532282662092231102270948764676106318443545507649083877836417003337461184993590425894883151916636345298302194604065496106588461788981245371272836298027361591987885660161228037382376220140163695734950921940118419138925057769215526766811087070590304344445954063510790093771536533341693440793610364965854989191875953931955348510172788099343667897083759290801969700851386053039515433075144372751301089819353790017566682857413727809387857188402486129210147596640319896602788373101426777605561726806131184057752643236059716777860721497797823581141107327101262367247182294652022683197010408958780048142010785771194580131938470001493369296355350412003310524962519311741426695406895901483300930439706049323323319770042228396021716730180082397279188024138847123852947279258170841321224992036434999892370190661085688374819053111311954263867538412345850625905664495679012222717490820190445203328212821322104039955038584882484919829949224662523884974600996378035412687061673457217924344047668668701257499494584816251226579790990771211123586364440700015471352959954511187332782408936827795587992655897788434170825838301886589367167452035787371376268422081151919467782441405846270720248219850331889162379577057669621129843412561022993271412320240911169493637123102062442015437471495368819439711762735919130996024440682931651768011196713488822680464330967926715361936355096475999615197102510423953404652517868882234336371966571762464514030827124567838265338240646171804191506283604878396549887584834644851783644367555329950834319796725760375487433175803935864611798906339662667285433394240729937137638548480353463044584394085066791466667792965312806902360700814150964138785790383929725963149201940332402762055851451667697576759830849938996017213378260799967716308152894794796115764575478127577926868924597776649031130837389931318317592512335586948372968649833381659365603196570023177458220902491884869047044083226891351507301362317314669877501637144517549297873224094850569770981618735164786718783831856155490375610050882588189951599163376971794943589615432855862395550758500737201325790447383883117527227928098008554805645308112626491228575393464063369859609928787811810239084333014851748036267013430665839144680801442849303835881740686333722507655004278443463649004222316847210799273023015667470104429562811639585782727607484754667831578275510323694603084883213833704877982544895943387874671016707878764416356405843128827732893280786778310094315702732977223146681415093058882096332150133138618519326757123454474805493416185230529321872857202072053128680231454438810416966337722627629364962797782206324276598540506091044108980572752522010045579910630846830956552298800053425192638956744527400729581012597780212895167147709665502780534769071233892411090741633940658274715859478370100986615756782305618609029068321837998244410342264024498850009146877597821351887539301800602966996764459962045967239327147240397643905733858307123997203706839922058102038727558834054683211780220277945300997772849974571803811125946406393309761131111427847667177768097110708058996930676233768562353079343648944556242007650749032878147763902159920898563221227627542732517624934538491679593243807862553034883425700289016105148466519879440629442654408382840183486730682051498375567297171512284471184726775337127076691381402489019436789488955191058830689511948501246847492350964586922495507397299398465262136777089671128130978787718696046068655514965328999741753175506759680187687710837220517883788066783165672673865551496371077719809117444685389676836092225408749516154714721426428841446549433813998781793356367713148404084470720998768271830468889698568873319853811774425443286946972833326361174869861663416415863933128233774733003573067179779847526006615792196461440057116303972443653361803174559387461355135517430965760753640288029966404187381579139134822784536404773877052887554589060532143917878381277071283246603102053678106642491715689933045000664326723254118797618020955494255022165115217953889464637803465177104473734606700199148140998284962354227627194332514034390808649594431895885659781590012534832677254780072916154743368584442099947674448377035730501367292277526228841796238005842536985965644315562458704191938204686659900768416300443572297769862047403001978973674299863263478146138516604920458241238287916953808158595813635672920802105898937163257743172871157341033179454909577947052474964242930092791413049730428595270254032185341960399521434517905121128670512154412044021993158857798592701963946033170009373438327821311798058309526313496415638754690994673637262692155099514199740596512839500913857638568933387258155813732417001604413313410395516622003978636671873894864247061051661703915237091398900106487119203201443843437307178451805625128042636578179652159303620963061934952958098212969440668065700462320674338179892708496223245799638105998863186101352287834052251007837268006144498407191476303536598364534865952183630162913300518308341991707924503713787439751214772030244593810073542376169679860794202018628929863217286487566846638668171294652657393094771254248048113284145626812582313944577599949272607894806078948524564990412494192704066716553396084860029439277631053220186585308608779144867359464080467609544962691209169046349497599527414796449877061914860436783753398557231470155172038360283466789726456742705457633620915126729640531478251579893518888308606000532851671740299094966903508771415454809271936600022492856297533321187592325622165421863479815264536401244007865717527899153090228123937845233305488262005274148937423756211295366379958976681740372295503534298142556172467681300739008520103449960855085485704054213459626665674345891247047615614451488027255127485116561066834244105767660208682383775729938540023716846603243415416425314248453294156442279765942208216205319145738267815425069257257758983866277381291287666377178081265052231028564902810128451418367746280691636107975932288042384490510053680994363623762879765432713184472425515230875018512631301967136851431945800317238585625264078093290109074425521023542504840059638545667992189984898351634856258667468778426507049953290103046451929295681549607535129718309970500737052132824807240351203202103415876284119063801436154543638233385388162180915770945750682284002232475988465297123088481575794513508534197665468665825967820830139734149060278543765472700445864729043366112341878709392263349309147983696566945860092743838901653400286085059555323302184589557513229971714540365254937908679471531046029674540124649555630818906590495393990298154682655050506806224089582836868644448304455030504033140854546460096512414014992388809955106412611538555165427584268330927628656245887171385444714614006053244811721357117624147618662085272759191561245669860200971922990755586183074118605519008959480680467972804416341943961817019958908392136209556812966792250504671329264110995997143472532136852753188776391764500181342562425385962525899663585032018232053391240903697483759500813526019277167336779930286115910056395985959641499399135586765053873355636493953056183635427923476029606208871917720529173850588377550632026274024224081765599716912665250236471038048685171090526020642690337949945912164681657891551518243461898521407226340409605244046615583406527900854575077874922653042843472000628521494110016378023186900324968816734627985755190933204731149854702659740558280530160625240584944235891707570538140734027578565289480465633955356974364546273719774477419573588035812766436879064858703125390624810529279179426875421333033766238280476627441388609218058987777998809973107490588460733002413591002453037596056696933188750482375345575501345869980968911692206433851165885260513462612098634744949127827261545147744762507299449664122986398742394599579210658357617024652807186593448760952628407920374610848479909378633261079633536664913658452523089001422231530544981227158460676889271127711509887112499956373644266241687633439363392262028439277547857157997628287547930142642719818723251105712624799859512064468984608155409385338869619656149084414737219609012966575284645493340313928237125158217836617657193058560483820595276213692566539936195206120569620633654272457737814290015097166151568330919491692755879438676474616105955989725418079555124084246825885287842129286346558745531042252797042387772183174430961061662534403369666157475337783340756539353704185812348742016063569494367888801210987340535399795501058970585195323108377192492114355882888562967866823098511058955569258494818660625144691980483074059173554933925553134179982323065915714184304666470958952389971432104050282488192414675953747595263750058439816070735318600800737453926022879267765900239768147218963905832094945034606989144373051038742313467417707927183112223628524438457913814088892775093869161925208423211677850741700050001424142763305086440589521292462231636879063041516987611508563932275361034094648911124240744585357584589239237138221810186790206323679766999731368584069423747550431660917042371833948143516200841344531864528026470467499961101698873958748541683539020887179172486177547670667754191862616591000470033799167057686674386696070528562963726310681028824829773405224855962520145063278800908802125204281860508361117810945593677913226882682383202545700415074325726075338910590790290622953125122644750566763126891187743835206392510443518683725649531420141108689990004428815179286692707792199087068933293315522168433361199685224671219257634288608180821500293934533886895605125136904998368370054565306141151576523164983800849741723401840295389117325585236519400933208401200173619426994151918208511374817961837991233743190341705755658752419650608383623736116179521163082507325461619636446639421944519640041487256251613205541402023208506186986494832855893167739229962950368003377406876665626819015912952078791569623341114777525633203371234861359622866524639914189866214454994078406769383705279296205278999584363556140347680583142054188369021713848328909378484460777305822235870590068214125794091747344906242319024398043692575104268140932318234281848926577229022701147526215751044239163220919468276994911626396212499113477439923659457948110285492906514619403209562890738419084956470377436072710401452363578470919596304724424503417449794325684927059630569998152213405150381866557384303010198578917828626183629543775068228859621522258690224276653625122532153919793345690085028386265771312526100726742634157933090934961736341039978150030563705302370480102525440919773900931379956653942090134755135528549784964828550496262532546329879408412516413257899478063543008676853042271738501835409268104479215980206182385053050309053710232921890256861486681756392896314368540771546281932414987080953152743898968252048927101970475843135733810057447678538901193272777078248695709850517175481806501949026878078524479201429570893873003842001825817935065020536738800093034489193955840679706198623039302019416289372694415872101581712903757610281499068150631907091728225564831858192329148040142693056234209149698364488996049681241335762708251261564392496181459742562551980565886017413195498929992131394907673305765097331137427006237880417665599077422311796651762091704173716814909197140775239558424317414364068331295786289443732637055435386221631772052621026640654286324447848089396656273040657143397425587683291777727978063437900801895566357927526969309776963460900196963145415575286142458219055080598423572525027198685954869483533261986573591326416433360893955758259210311275276001686229936344117525718152893855888404807520328235535287924597138650972317378013416291962987691302901442371008297552715355229004043569663745380899989009363518938348585910856371841353090097945069729369111528060607097995183565330940317475174934165708073605256554547546353703848703382702728527634166365083303318606560595122636718875050490147465541668272942028312157019880664722134726652639148185724611675311680779236747429694541175322106812209074657683861775442636196270607260936080622125674202731027537387248367045900747365708981697928162073451677980798359957549952293884686128293446133453982203408058449493321251355485561968405023656321823509206876978267600781280775663990523438005235076356533838556336419695472701035107599272466068642743096509456119744427299606417376470516834302740126272755403299778625000891872338391353611031170931276599519659670059995524994680303403948217253857754469587029827804350287154561025368193199585413597758181883726310730235268775869153632132142944176785038969217215766454688889514399027980435436648150380891625912551776997909488496845822854290479383806320901393803667398525098466087188284619523424555435734875302437429402619761518570847166647115324764597389463779460792109451882897404370184506145934096003395296373470804740502022673359598962434320353543410167670464769587194524190995959598923094966975569057690046013298139996901101017889790665928244338934858946100103334293046971490131430895518764631492532633003783470245713932004057415255075296427021420859721408239432102287684243422540345984683625023637886626211421402602163422894459277040316530671499010672735502515433903465687310274318180144950398536559017079446874333180825020386242912523397871696959620501610210392845882825803911447734846169137385301002470361036115208281466205829674973231060128814226120199382101374198278129311952910851506069186857879078661119228156064212434331775694794907596228792191997887270319017372647630245819570249923680472524223541240376859270130812480873695412900272216187487794791292706639289918868722701374027498338781235767266149708987069885615934628914215809333393014634219430168992274322031768109633832976460429447424013644185658762505469470580949746689333548025153956804626295105698730536165688125827768103589605107105730638468486214784930402582184769121213816412996352045747029750953594050966804678782755099548352221010349266052868875517608878108599137823790420623038906864789799356912974910552594729364081021826135082240847363783635428025469707429912394984902424175017206230496405736647937249176693339799110698643659795859007344031643484156819925961972863913529788980570676687770447509143877129362705948585406150905862564572949785272593613370273224505661072429852780110275946644040479367468092203010223691341353891422028825688156566330006679469548377992950767262449367122046333725055725101837990712007946801518922187248892528284176603213113015797717473366711835410739095502687077007071226080484538485381931143431359974069933226798639950496493005931886294319308383723711820980952366492680797619405052282395266166129472234878176200739704824007855106641247238936966231148448457776739912024790338499065375528517879624884424569377082538599193745044510378900609469679214313674732937598036569191442563779446938494332734689766742365967553288970182967687416227316517970621648901369736800488374565963582872958943314965156655748617167829908813013408700920228060722241512269425417496266460511383333198070269082309454205447872315715643633770366442923659925239046715181546987104661375348710484416783018864802944823090403676785025453134162545128712812727504630565820944112045565033428183798544672537876687057117003208693615256633911679130266334723703717911362791286600828651441236399830071385758401324357317776172791790166598528516936636929303368856394564619273216078406591613028695964869924383338681202462487259432351724748515943997255440021778542616944561930736713553361491420651879196641622668400880116096432294720341913203655317936335605517575345256105436707249957548161917686733399428114344255644065301106739032495455999731119471346278011185355452843524164064997806380527794768264085959899276140699448732025674524425911063854259920522317129817157751295373004608463582732540390740788467216960620279155881445581178646664957846647101853737481841001099662174117815866986303381084567146652200594358416250621831254337824835706576491031211417444148093541636821914929834490601656919688556727270465351786202030691018474347311913689112622876592990451848711597780517833855656585356984929659833025991708503056129774280195021411828163173048495091312148892136865344247529284919369772270002569121239219903107879934082955578409674725996082981810818916164674314541160533488224917178671454313978010486232492101361763829987785310804900783816903440114649721550336655944392888306173467704663961861583328565953972081581674205305111665566511304834183303455305269621552838421132350670046141530524363408430651451439219402794986660381147813154530506209834302487996031615903278851787161174863874206707696916166987810073825220106058797701025770218125592141842859962200170704110235262472515396645896092074496069221489837179811735563431274300870460459188654184283552857580272672888203820307425645512155740872584144597961964876398400086337195677805810023791698841901742179319096209300190543713995223910141438230581390798928437066691192815050805538443370203079949591058375418476341424545722795298596656734874632739592597534906926573573537470098393119979690254291381734627123524726697665879443981963845035994884209234902474677859216325172710690136795798819722224766108200382799983338718484691648461571093847237335147851832968305335902887848964730000878709667397898041061109907081270637533497952257059625205007679081355848072161756877266207555778850148390346942662063311026243737111709147838471982374341587955933349495727373839971475052196958092952539590908062681936321780960983857643610644074617580197822923581768438857054553338115693780959458314977589861846272860796470721433552053775123798454966942408002662173137300031497426519939188411561200965303118394789638656356542819839161140224219584072329074112929656641790634561324622475896410515348782844298486924406611967477410092012480106477491511954001997337917182359012239971209283100801218559519263821068487497935900062557471708321852980492971619973918211461616747162333207897273010040899221935736910463740415875760741173155409914221982038178061847796911612912729972416155084621090757222548522467694959677561712015061262731297909053755044424918119431878848736930635769734626803390216545766566217209209815082346720392556513103955805942545004639853610006327843972429873571110628206975116796926017902906670528656040507136874617276154128847757611734487324738236816823713472654029099151221997889171774182050799733147859447793696389968129775363747072456936057313256813417637537251515566839118560435589243780379060948067654653729176690229745391635727464916041178659233425987035276626327469723964773281761050142098958406202296184053754556313813302109130360478048242658484985563927150807471240341717379364259856241142136648496388799450972075533215396968364344065905045636642877978441232778654190471469257006753165928049209239873991209188554539246462825748218001511064055547987308483224711787140888713222342219469098458634784489239585316078136786123111861312239071863800353603590976206054173116864942538818678452443711012885098064054009488015453243159828764581060637989623355462216983820473748814017465295990528993125717072207676443518057468476334834808927123748535936351659398584383281838449746826091084078956975574330485995531088061936814579206840411418592300229495935031251191318717986480444780901969584805303914463919566738909407647275793467032982956752213747026814250547620655627247339713985091971339329332494364657379857495783036520740987926103871296192095105153389055724398577058945494168183022654385314034902690393950273412869345777386423153458702942608002321020203310481501024231242789667194960716457953549696257597921124961107699521429810479338179359748751255386058369914870188279746231363524467561009315955998508312402589470596279499401494775038067730743069476977694269739165568706084526063022974227615868449595901569149551656148596447530223787171646016659630960746880219874453648915209708906889001843810757632943692647011662541289634123724367581741825560951065323959721897764429445108913448091126000857732165522835801180610352840099339242540944097400667646531397938805541310859696403810802096852952179325440802869503229643923191578039397099790729565677883278936834190889535816126908065260170729052360657696681262163571606783205386754516126090297841114898392793736796172901426977091437277136052919785702585331973985885846423045855075839960514250764775752681727074693874955104247621812104394300354189023469459818095488209583059848917049997346518092955608312170961968280456467146610033509967206709759151660289656426661480409206512009358456018114512493073482040014158338982349582333075615371719506414615295200255739188920500953855557637135624613243209286637276991306194453492361343527362373287890186489417136871372812760624012021169728137116450152976821838201904065555203350442816943747155836426381805724874857858139633947169767201999735788882226702917632822016560780658924835460787071304426690592255547261569195411492575353275343956468873105233627886451353355845085554878483763117545793245651234338151226390492504469993509493785403948499283001833165024762519767294198472861595475709428579515521656096882021547152369299384429292813950955204906752688988515657102864567901537430920706584024376915280452727169725049523291948157469032429198279355201672226863089595240873851495092492831563921198624907345329168799707126063929315491844670231016282205219185002178127797148264015366828047384607263424730749089959044099804460639131295197515839846112253471496130766009154675227936037661233380572399973131975065493654563667550120350536110104976802639309679432076190178673093772218508477306262398131111779787722661200546582724450794853781077014891539254735455979419202646804646069381850023074186699427863030368525617416629912236838318439665753316433550552597916669087991380078696185501955622606517812713075132383145024976345901189119199288655690151532972767399839336743583271070754277559499596202554428857742823458607692999048667822856641237209187669337155953051253705878464032958710257943175627115195476131101811501761427350315854197935244896095504683436909153397696246574589813212174133997645621562381844272836764779713523879107131521258507931163451795981457568976991879578652674133948279337168471874383109174608412611466646545516072256105403541845859837402575294759140588691126935187695574668941853270589004895435896260492033786684604134032266085633448995303862174430110516866676152907762574358336917967135191958843068673693147269656629017516418421970268348392798228987827438652500588921970366805137230318169781311353871603977336968234063997830711247660893909944709839493805916694404068678154348974796821835424939104791091797742901013876420454358663469445868820519849137945891503967587319789704291586636317579033208664863996072457808701610394428125160197076923557096980669883751113763894286656927260211892376717688806241222307751547414127732447041083607089541762917600673658745370268454805872045588584401104700013967774303490556942275667773896147893377816699999185184556094060149963914388313216758163689047440389699555700331560822967607045542690696447801375565673304657622921233799652876939668895179060403087680387576342806762602507650974521110939498817010538964834670296353426538065575339705996942830252686888336103880776843351858414001429822861454045672259312720076855125710847857463904857257754326320988926359687844414308141356966504240241282082795108669142922459787163168410558317893285556050133624859269796281004742470574431209312895185802685755647852198224772505039733498858051596914811736137339474720174365958056454285482334801136134313378032783194776964603404926743471920382345041753732912538728889127062000627484116315919546463038157131897424481353604102023745172388338829829173288917624043713868486957590674025611680091824665646381255189763216656100647952266881765621684505490994114036591804009130688858238108055236235583879633861820880443949737320684990861470024760989524727333082370294168668924487505676926858560705687606220170301691948249233246719829085608947585809763279601056707655012600289152061135676072682801421930646125970086812294771275415962684883047949126993897160586520754558909591564544913846595978696909930223062845701148995888809674631045569787047730478768731150657865875027394716432681898401989927968181760575646309452529547910187228986237012907068698268780874749343699571517202939321559112657050580844898466160628311257835041964175352500724695480087908929181678628071216712158862499013832369605881619132308256267414583594112235490493815037160622808462949701468125146379952862299262808901881826247017621867844395619410360678600408044390047518419852094783996941779191641137814871462240213399108291633105989627567278036318210156197218372618618419336629554294082997847788978918064149827462653527539232547847311397315998894017571948703843069269301388044282521290701291923118930802666806486698699184931926426139487374966422153474541222438257782589343715286422874966436669911312730757188639317051901363874806278031538304362349888091146424576634259762813700988728238473397274302025103114296643876618437336330351924375055098778833221004895279937262245889172376576239669921168374007756131154887058940195321615068469241977667903694263808643186114462982814281680657154877922972240103464815312210427170884892821972137239954120885318100303423351718452134576270175688212497198963201121848455900128266864731117988049927894757842383705717385123054677697765440390659919114391468432675026678790645706282781173009317644741373945502811103939521374615614525244968755491428009102259673280472613164293403113614571518694083125751540238528674308438103715429738072566024497105934098698746812099074301880504751653063152803566451236525738955199452193184239411964869023175381837611315007742252723286295180272538870829169222063886645004561011238156417605272542714450093184605067915085668026525241216647167107248067986795955785842304819546977727003246000361982295642259642731958778469418450692530608675980255288356249750565302503615766997898081755734440543448922077410231856883059836697808978685392503181696689720438895892211615024215843107881126701645165245609950802961681378123713996359000361195473327859007366144179973297697690142791852091656118139724903078096017838458270415497920978581372420346779817944314027364073040468838884617861262719816117367316977212062210097715501329932918712977515865288403441882079158145298668029452075816645292510406593739087476490178297212541360755399046515329278874472517958000082941987412475015686690200176963874752486175744400162312052840141855407504325631678199308364091299955711943111683500434626822768975609667874040686807595178887024301312197691297774416592309108964734030535365578999222654584496484236668733222794300708552871866584254801079569699349279417501233253781751964577929479323736250497767018261168133747767034023208341194048745560665849181993167055907222908405651722369085496955771869849429254887774566385044313765173936311121470197541440932279131541544044254794996029349571079561664440286195454421388657781902704140339471037183448764583270367269987926324261615908696513236122783747601025354842943556602474803851571399110787647114373122865235024626150082784839176285769662380410731834088518222294298076936602015498053910891787874107954281195040737652614696600476695366359291864564611498754520903976894880683981538322206672404127804372879157787780492572247703124653689477505383387222137615803415546384285347552629614555399886913814109999620419260237236739975135910602664687332049526498020634839712185031634357288771245311140044698971924844365752726853386536173704519326961578365844131906325633532386080565950122524111246329518185841742240637369277859878726737126900140698919740010691467431409447308641873312576112307656617440582089611336772309107368395700281827294715033163453611497841208943504895821928170054440150147186843691069448953420553915940880683997106388288678377693653406605841072846977076686680720984191073183333215476848276919628555221761189235408133267315917411862032928384628064172108062005736399530355619952531331748238740501075567898962208239185324628600954368585596920949917622955596822590728519304275099817755916818026422992506415513064915878698062548410406075796238999287534315933677143747842344251130296892511806697371893579330399215941416628579248060020089218888789052658042688713234986221532053124358445789496423174140880161120677798780862158315208901572764656326226449376267609976382678451545422380751312441635507071907986162753694998824305732638773370112793850644304240611727224139754182211363845116014588661695995606098205174747906312268016190314629438506814123746260455085176866637489223065875127697098577101884313356726680203938937097182254751661330701055906958537697453392427179075813892986194640033104708909057635118237509731583620326086601125832587774130952359228310026785157382410342980603730029319476588933480313668336788340794152273583964038333084384958032007972221608943181735820728222865982987104876666377596826307778088575637902203939204568479571357058049965515926617999549991612383678252435561196635308400684571863616051856593939284490835234602214682054393317202281131130961314108138748795991893332112431733158276496294235157230594396210488583347923386390458796875072596933816246759642894360961754852892929589769880968606901249471152674312307616072877207136639426595364846718307083263574116221915572152296673520712132254063730015678466904619538338317173153786769178016365150600456437785407523667593366757308737563424389110868783185295400911081703080701890804722100369320395834044342162131886055370127820774999959424139492224534374396587589970216008402497407235490340869639584551938467920804328543812384805357305088951426976372470981000974301307047381139421481258976972073692615050745537369351168354194550111842112932673530395039536570029696789525764050203488074558389464249774099584124383964604716275690652313064545167433092710138765801110866587363184267216183157421269304144296900461352447502076211524662597048664205981852117400551269595809267189528302055884346357434935625921052330459874942337757972311379613064457584792077802295408826859472982287377927136725752267361529134831120986828362678946917797727154725482803375635116237595156816078820295985301433706600553701241103940330269713452773822786597510911032180097485482328213886541455675641026281378340602408270155267683817792002292443686526982657083974766633163076613781151264688291181513117891425892102955361452502234299005463687707333623656893419046956635335151806646402010498737670086037191231001372592091013999837847217162193323076771509126791263073680388306065654469927146910415139165833955286979406682121223987038198227272904531569087118494808701533285436603422340993541719599165740943899971359387122423940551633546615004528254023234735514293153320049461313937601361659234664020303094390340233502593232913188635534668127824782041314756246677984317129337260206150873953138708412127939569722235781994153691825642062607435553950083924230739522614584893009495069799719311055706452152522644658885748080799889045455236188340219175451801569162718915807701684984535717028704867994985789324304011406876159848237597207882323838803074408381948167601664314676981568971305629418610608493392953194102842553732155999405841115954163195789053405377517618909970356827834430863951664592160687314143877520864025617561897877350740988609506039483525685810268269020567283969771261308727312121366580775211933053887859642783782033493715735509242958775188269697824627970711217248791653333926018402356780389563638077404242254085650370646778535731245720900060414792762144757794023529242645954363401496491456002466971005962925961781889438545086240623456390691413529127935801655919719748766376492440292735820134060155693732231406623861658308931411742987232421570733428661795456189635242420049791666917989306457348338648215272754498674051643663264882592549044614931226597017729743910503489267900659436463090834663787811523267208546518658009127056524392174649653663516767441938560094494413808879154226616062104472149221080465175891342602577683821181134384605784903002030490831120514011055861994427359976424018397202333239988917328736676938630760583880220988628788628706159703085413289816111691547305127392518733595741643089030543959014079561017921791008532983352751997907786415822767660228122673223095569598657998224352084403712397642463020332039597877306872857642144517353116638361909338724116749624336841918654487439586897706701419882693664616561315985485529451026747855641671158603261783105175169841028383933487265661786853127273895187837238651643663986089938004955821283489490793417443578966284754666825897839571086145947053419178719822158529672671038256305185499771641180951500236422482609114558463309826606480668269846448186251844160232090583734617784711910600997548381639972971037113733856823209458164521996178440497203369266955954391592514824881165520147979836933772996701318028402164313097937213315562241197232654578332127021418705983676320400003717701558366949164781930784056396099985820996853703832248439884687926745988633152771888426546076473290055535156822040925518786750479221993100643929313142227209591510256904503948381469280737005859818787243450672330167326699781109806492220375631094823636048942975337017747667685322284772513016515049771921475188933189255859391662059905426900972479364300328276981493336146941155106989646224248136704347004278344367461193275248604087283494227930083884676625795547778484876206073716724559484046898498382023042679430962804012787659037479404855993576838241819093159455115700508141030037946042302627408727294419982002571283571888927097107419444271834911142918722297435219207131340680451522046170656076597516103790714278823432182651109057129969649904707440865332137912884159484987048925437310260972262234057103987070639288504363171764644462456409246816166687600485507082728447957622073151987288212334779016739220242126812968853866613096749378122029275946311370941602027190998991187378979057837680347195685819038201377930245219209060307469178640056540740467166066427106297827788403480640267579435854432090264294085583742313933557012836109005965672506518912172503121757538762683039107699914888699621392750232565892640492755321118156322962394116117337088916561205205421254007664081279937535240693504743320974898048033441939425413821740009947948981087067505135016624830075215086482444926036232329139510475495303234647554307220399129066574480096066100118266610812058933788821349258938878623719775257989749763525934545622000623988894744313392188966033362436559877255282541786809328949086743116393171552410804322688010606482989279544934230002681812127006152252584754021674653643642587646559584213495377776450335896141702702961629671158175804633365381783136069776449723866057781222863394221696845113196325610261668065750483811229063194593812746503132984771301514414382545305093154230683773275843340198841735068214482740196811204538764735670038036421904102598564705521339676027337473542870877527637252938115820435827401968739725123472033479250365095402842552154484334374434115266192840266441360058143611889658295027239696069344436204062905043593831660893596681472040969876257302938443256842766576037917310057287593567506027748787082853366004900643285142341215532133605666262094037950451495543031229484079654121688619497590614480123171943721070219089512790773113295469485236612712486318969554213528070509486047153783020565749672443278122263636825186199202587946100010718453464203339216604074261975187444675185215443009737443754720950505480730648587872617356186081033695273785573951942309202036655303888418812860487238836486121860239189286120599676045190493159471084093051711107375087638534684383942461540071913437011224753520894489208155649064175278720766936081040810161558989543791373290032518763230457785741477016980415528387877779375002729608403742625446735811825550813949246290046624239856855925363818426146123303232073603528990485896799354642933107310884392439108893651672744859562554239675349661494475059114733604544887937015343471943479663756081397595797999526896289142600308272739838955967717804591933152450062126165178064184074505502973440384858343788135259459116313033566419639280177995107434551507064474304820340426039031612279719578684155255934148033175128056981511115866882420013028142068533689794619666546623775666224563590617900524178526607770165189323691627650880335134836040953244591997662043214239910910698508933341063991565707013430555985407035676467465647434248247417446118293012743229586072634975510642883464232222746779437007305865222229237030147632768473640465637589574987682794891317116969722866053699035041939612245056249568335524123840194169929755780158575016131915264844866793484710394357721438918229412656482913964752929979937690463124550540998705402634734305959498788825599522495750102464936114432817862896472276327503247329506929285895674951770844264779280946678763426574210825103850870314167351039530868516984945047379178144010378433331696721416291568723593681993034985440184583107499347309449975922920305953556242520318678806370096156306777922198938199674732508777853024678527742971222608430316827105996973292065391222222806355826191111541411488254157541570928298132997209121003960444192212004233940925626113600137048939623068770189544560786548926999557214578511150330149781108248274201350737407823326433043551541894301650003174736293900355744461958731814522194089620895732166600385084611881494757310201664311808977049939302114984293199394900159899031837560124492507702901079694821792087147507035144408187464199946963495450414432238958413312166528561381305433721256871686522131268904133898118982236841602477304576205868846354307622934700183480267176794507924671025814672779686922485381723400783792984364537297953436868240301445763487715016134638005632479287565890963660965896300487855301953958366248711550332360247588954944372494203655904637407053977667480905104603772921274898704702991434535605370101411969584060190854677149823882288549854389568936997311015202081831869045961052434598217741611429638794807260374498207534043584578423757291158460662662503951458118031510131385135954952053847694077823460814505605816088710411625537282793529670126318647702236705690812966788235395162544356502877097452499510765897190758446452594600152371321945013650596302539061273470565234920155460630283803885554306646438806729500167958611748862391557972010057197767367244264789812057726985967283042580885724059094746222284048083448227275270876915901706238663295730363317197490843631218328035710379425180868555230389890762201584682760242678291740116680501729510240597065433250429393345861601354329674822906622712491285548250888251912450415283201958943974035047141629004079795713784003315615205030620689349593704017103729721900665641669594471628219640715620210545807202695287820457786632851101396314513531513299061905571148037460999499442507722480093692952935511365908289198233469126120334475823818710477491952312230586280590031534481178395488359841466454470334819219603432933084262297679919447017481613426559156036509903709352544646138473241177324948914669840188383201674967362607210806301763801672681573529379884774699836954100317440948975082822239159758170724293559438824407658746516705426275104145532386061665039718356134629266254091451040757749788343003650895217166911843010923287019081188669527067327134666769757359192362603344536516057377599331430210417222599088132930935422028601953198079239158139796449071269439293708697439410989897428100402036513712620486756091574467406602767238111441758055723408432015972990744571474363400195181415709608851592362674163473561858143554504659106206133659466090866985325336977437894566272482542667170127388265375320001165083850029954629718416916332513581852215768371672300656160133943884682376384867864020477066813202271654861474093056188037804165445519212065830997925283202951195493981430644676611700437920011647219966319617227828617951756137523545210820675246878030962902782969991857776763174860704078846047546893652893472252387371639594161219173685961497854921266580023661250391019166294481368726651710620911153445911603942555129895792248931138646248879540352599329638819963439638820549673961358015068851295537010930376049339112394167882592322505129449381766386828163491154301339851870887744390476281064325964233173578118944747481031554391033569755252058544434826211956663917944257465345035899723754340505228745715572370353858915526871065011003737586595558354184602430130530476513433445221187471790660088748796898985575674975255450417265652452340727399976766922369299798051850938538761268299951261153607475990684978207458020535100105078966832233846226942249892546573931101501466034269864080756330829153641550329115758445709090893290908257372151301907203668079935043404550118001580383796278681114124155093625854840149659133557993115654136572450274400288263519882790637669161952211899108968873576103436330254094931859525359897770029659955719021271826171338512571366925503958430628787645490642505522001128505628817308173133397297667568744534551143968691667506038050572281626179162005906251145411405562856372672343014215606639981367596537039847240060408247148849443251259761702971389523336816079990406423891100227141825254942963771808903863775732923321715174328292708058768155407572624843106406531672899536921391353413979170872183686769614276990737230980447024483776922648739368437286358439300045062243958768368251118332776677668445399825173273328667800846415285064559570785926566162107065857629622603418753730792437980598774950550580012809374109160125367718657079095054372086192515645806953569730491448427076953355199575517067881805301318781951750419286096706268270057735693003837804572616043371479346688492903100951429690372441631582192986710407621871388855723764022917938650572643667746181294575871298842332222306854362416822667736972651190677407215004107763531428493083270856555569053972905681827975952004623349510924941979732498815860603229630368098766807877529101863491694890247014471614958198750043649455313317010872025241695044632622356716712222480783251892688475561097177084171934277474230227502264590199736721392280252657547798720142720326798710504251381844233772590352696991996622406695210149445916678593388665196902677790404141252974422644907453137245124603175344009497575255676039264318595339362424636077529140776878867834694770440941551410665172361350962419183764350715247093960107871711594946133863687997064584637898645692047333243007520515871430457509378262727288814269981532532224035104921922037522997089973761293753312687911340228035230441472246344809480834648676148590451818275977936755866889022571234684246277374317842047770769364278479311830903095367874955487235893537503027355817237217704656206504772010116183289153720606354687433525909955868612647894441498463004895288805496431826720330166566202640515490504057784604636857968011413478362378519358959867573502874160203654855289311563406428190961747176544505049805493940263569365742426542300293112784240302992276273420507221856237366748720099557386820165967441076312168133583645603754807241252905685559370437144310975593394301980386466712568166524258496238073977918111360279653444730062852433338533396853607119458900066754048288705161784666619146174719286749386983992501008144249040374640382259443997543060653531206727771617142181860511767896459849480343329543126127573109287693740119476788513428163642082104898564509945376064064435026865873892988081391526619558684218110017135045381166642732794526208394964631934468872159982504530681506779834178958148182673080122546440216612537387543735604272805550375805793144355167533753584978614318889363539453579258025479500575010213194332352700154848361481190619114641133922542797278144366728364711054119635257074950417718151022475655294969763962143444215011303432192786120119921673790513102277952791278493770371889124902155169784643939432097080533204292509967540687111605376660346934787504730186660487136732894989474998435494736718271520925928880440649886960087938323954253588483531480932556949091275328420751669287759828168622674082375647283229658116334217393643769954943088910508417448841971228664426915339886931351540763592551687236954505929060142309985321934010960873178189489605223566124303910447917323344315136758625895692192672452894622760954400920748318327446508159155206435520274141445989570513988573087756885802186800840035202814968748149807427401761739126630949497216887733240932541500640997011173106241658617503186919943580691726567962871497102003358006031599322746334598294035145931032013741785732918025332022090957403447327566142170267540078869686603746290565385470205345272246011521348031203544508320577480512294547265209323659792313369920774075666751653167920939000626792175821867831693850095822661917872169945284330346356317532642567063720153856802151644263239791287500056420153069603757631448521494935726511926694599098297063064222066127406945397203214828474324562813263031462727191352043543206699894829873872435001795005304005636849027042594181357098655929533551783082954426854595373044440946233825658472505839432829403571725833509123633242648253314666419176857955420435526969928229306550533975682050056042347441594198651315056965724476192912039310424550698199540491827379418035241963976681980945032287052939837597179085849801506183446872268602929136538439157144356819319608156617764444321265638837434607945631290025740299064168887881571442704746809222202960238782188565111227472203669684962978036787794811210852515025853263077929984410787487195117758316540835477628898279770637583227047985751024346133827256533986891217068325156846373045436641389829664994736429420867860509421278297644788017093122875075233222417072099015531021345791576898834108147089570925248832315270036243149000477256331223665234384118688097036937483639676936107682342344979434234482082623593180126453488964785165657753481448616102890589957528909225384864840494878442808038011639541214706593832890222180571259414909469211542683098064864588585671777747235251307620694738669266456103119939947488365579484963610880782378948370473587227183537381073752364389367983288091204046227367530934332851082803701552501298416224330531127276109526263357042721066392604111254110648964452251457000850919950050662730684154485932890236867235413908943562595712543518820201907705838608514672590579039540626630066705948179692584371551900357406741861586997473561841479736020662091324905939150439273674912321470304433593577054920794408225960274630128822473857876996041996180399146659720067361718954179692956538022591808337043536734730462763267510368562442424474585295942151947278943498143668900688768440217629854457696764330640439240536825311734112705789184778282212753827921283050481050750925029303912585340492096661035904947375612042656397510664382145706531384948442243388620191176750194647364126180761165528504111861882469509050934307937437411151887851435552543678053723435352751917225856891312572638173522529582673191332439473045738021994244365931180445916983376234019463204526846539890376775925311094314543270011058678219946144433549366185990517912510679149475928010604688221552490476255362504665757418857600062366805763931246966325259017123078418630169603932200090281780181103805653149059521735062025720827016825351414769927448249334704243895149356113742516708258421899880946240496923478547948733061716713954730522918909621944150238129642570618492582114983646316244129849838987122331815793265449083878237857466730978884081833588006884800404808317220383176695718177242993501213669853434121611328860248560282777760246500340038698383333230842151050494164588487072323179701097934501767713755431272354409507105490008899655651580487761630822015121311221239363345741695823954075496346843293389765295720062887857629765364646991030208544544501063956245594460138605188702507264700591797326690788891951353708997127323194178354806307060285822835004338848763383508703018526866306970921595841890449079887761366431826700523884747212695763825222185250473857529735070873259378331742748108103245750064840907670502266738816529483797341534730756774993170425917308925902923607545245684528833600616911430622218763482073754438358134753498522523430538668477198616503280825608529094266465620216305324213755215408843883031200648716050102112346106501150737034214473214295774952765101974943415066439207710724349237184475304160060275333402479569538357934481078068378046833880428087871779627425947735332279071505656076376867963345382419788029468792109856700099524012730080180517305025372484611538986742273975296155333207942016109242118085339973121579343956284185801747088154948004772943337269997361067395902467147413258818707054594469432063981499052413800014836143803349306935255522790916112792213464160129224703779846328213676420624524099911220977090081236471179073488897967743015155803250633112981264115048881466116182838250473327343078218766864569702631079362399776131790718571069862881826382983186019672492962356536207583105585935517384170820503917911605631992561808007929416858364616134609250094167312737981825789904250320851974097758453315130198218673720686130935197616237678540888523114730950592249045887447072506403910729420324813291892044615917298835025313441870032167723405394008915342950156722130376547980074356679922285768030516068438483412110154614567641728992898006955772584198237460237622883368922595633476599851499743752546357741890591854477780983412295335320407208173025210666051327595185995330465351240759492861872504154152648319674334993787667526478751298892993672310829892480316613294925056542810115978166872493261944496664661788828913280375481023681263950957233102019419380055130089891311335526264238416609054775860592463985453137184369432538921110663076533837484517735421558726740236935778630007767098619169491695093864401071070620264717059012888658512386134288091633812713230271727918217354886988334104532821538150809977793768391786087009332240981678255403166242336280150002565506661287866418693257731833690284478977477593964777090557607042327414006369940272134578198298766910483309387765464867746356248628247977515993662256176316170014722863559910838346670987990633519593047154990369089193517355743620032611464696880970144941236703557729382248415682206337734562446590238548250997091591591316996770838355327985562356438782957904531893835320862429897311633172654844991071414287680238154636906882941289035624743275925574041495631418720185876387114968735045175009502536462237073494700069155317044389974071537140497035016419662707799293562403688754536828469440755427481746183378700420891162659989237815604607520731352204484745783461195641404372786593530526935954046173773560264610145749930825728418785257279330735268891282678392310126727297977714851022422908695329357711331053129553103316638791108423010541922756977464190258967805249776814687567144989508331302206775633631960866598487543832966408400992720719821615590735920881386501559326032743336966631053466992444143948627040687753610213511576508184873112471796773367512690089771984483019228264081242834818756297303426217072604171227971958972261697898523359654908509453948624694398096150115101620044327599582351763086328181282464976464720959978893024234556027552274648848324696035619543538809255200650466285026634563152541858799100083621558804362210457287821203856884499430152631530408595602007877584156108378215999306076295096159151217035058064900719232288137553116937052365438325297851538962966135473087020677475405812726136733585679664582824164398499111301707694659753721775683867870518315934753529986471785861260323028134593482611729465939298438005141608679374041480381620432037103537302505141674378746178761428022266773693095264451880214245773516319072302541741631429983522934935880924082833649315736488463431603834822693882096294439747153349316765061498205483894141994294969424907142364922809794330526651330794007595436763739284517136244810989654237973702841929921475527728321222506556097632760351977151867270729495633730053707188792132124305044259252441147707165817158294527402668653212680324121214585587671181451998593998025971448108825087252661592002571683442882200176442051634073309563309053751585491638090941913313849848282890613255430231222671907477284580766483202231232869322490044686142616770395633751032555693650858951662149580893456487026818547250415966018465004575295880920862217398690889153148165609959007086249055388855687316632904174278116969372441295595464140604616056299091994016674220564196282929533321821840682987650534448339278302228780564555714439488276845996284277381910671301927109785676657140227467349250637546188059869596891047377151033925460521597775237342187276009694703684527363641540222864689376588252328977434428181482281590454946574763664704841272567655234441379465074741142605112101945158633146620474170486867173237966263789072712094760057044075401790539725828401046975366093808036419777485170285317353754976503622052383970776572260069402036270360505962296245529510844440003893786503081380101445618124358513273056195601543311456717046173754928994491369617333736620825519445371179692409170371849837957579207729989517986085860058422712862349622013529171996705581851076523259845845143216124472614450157144469060971577198819870943652768574007677081410045384558893363437298249286237840657866838788729546124368958366360581932452680926341215632160624327025127970437491353453230848821749085313956471156019482505240773364043611337383707222472659143970087152830326240708958363631714436555233201491228896573708586957424661541309678100712010024661242794641985978938454907036232562377196959706560906795807380983373344740682417802947512836126806931438464139783796760399157871288230380459725473570248869217808514212825304298020820902932470767453743032441396676303065268806101541259411160167792424293082285124281587265567280130171333831750533355246697547694856118026112968781665046846525640454579622026535269251323369647476061923536995299990676136271011966745869967472871595187557208985194695063294168834046659582740790229314934114061259260776663765917428295934339842459901683005554236732160764020223404146103643774121412344156525507337891865665315721546298113464921798908074930872766048739972927261573109158678541138212835387817451310355249518750439563414824108667197159976618935093779485297899639191494409279711521807601883349112004250727971252128501107132082185322529689442603346312932992348393589783795566720093222834410103015254145288898999501299307719252518321859885359128286948297575281006204240747710791494204729977547623949929959560100079055784264424030846439918930302818232589950890993739367263550348289768289821178363046570159965675150095487275621683926842153725848285817031041839737397763497061851077591453465984535590810318835194385753613236724127538125809981873587307447703614399007802848233837464077750828126051397111080161675058792799278241827255563878915264958927898064152122763822108548526726349459094178145411090248817425053361506949418712784664790836121606371277879479230740686623214310455536165976251342048752590654845981338878151240552001277329585301775989355611551442148018769094821614214021749424233269609790857418588929929429517253483406041629477975701403940618592267841921305592823249107248651822386010944770681001754892431077874502060557156408008017205212534738345077129389362325822207344355906462669632087617014438182226940244625522224736870055175420194867109405251531358966791350018818870524038353677647196474922563620291487761632399378946838237755539744478633509057248667101578225311361943543701193892046575929260050423636625176434496343065514149213437554203544452880083773701717967822146803412414231252590986357601128605279481504854518579367761274404586892120113665918523055109845992630653807001468455935665627110422998205578499369994452114987918030167369954643655335580516043633554151540098381936920565600761063994963460580382961369643044069318698308129858214477671415738639252890445172638352304340311791900865891118150038088574646801096658919086624398620197856054335863039839498384223957903500296118228576386884206558828252840040315378060006525617044664300992225532283020450040929085079364019505365384461092417853184439506564066342898785081935314063356721613504829971824772738849231710140406951819592790782793794129424218087658100057418246347537490805498456624935353087216927748598094623072505374114414846137468568933318135872186263385433156344537781900404176881925295963507572158001113271649975311964211820527548989730027955513415575597319767345336451875011671003253739717286579519277155229918225888060488523471420694266639310759688705900982773152334560796205229644934627085906318240112352248895559598197951013157040874505848576292037018818879334217640686592439592711885786998646576869253991050091104932617298663665073783841961629648089206507809952849412930203900111134536266673507625584939032121331895686474026636839623366743136425244297147539835995198081197094763241358894164682690419416589139875015314421803961070445421330848000848804022080018132634534890377064246578049314040362955423711785771277052282496986665483753457484227520301447295156391416628389504049766936679183486366459764900237040631091306001508161651267719129473401631541000624265862990012149345611813518516792032881726297765774516256929097253611761281005016598684700931420961187077040337977031109623817605928264480676035068462806575040005227904195179323365903552638751102728270038436100420075221926333880750625028151084676951206702262412316035316705755106481673637739826103422866267410470455241216788084140755050524410498135798125600598346140185860839843067312395845575535734681980012893083373064467730899801824889622150095538772694664710342594769692139236886270885256347807834771852315817371646062092122664304670870911626449827040612985657920762765774182028006681720514234823917057765029257215610344134693445967724182347971958896463625076687422403739376590562370354578838201387682360777185539676917163320616691979351751356743981852543698905772710181186735649537799854567001576409598178337275132518454430143346290676067957794546406753529101111643173719874986863988350540833541300741601031431579398110151405952943088234998494562516496470315254218047627217795317203364527383277867047022017304574055793297631073327471179970754268053702481828580233267341234916657076493407413720714183388911157213097166506070541529071767362781030942158445921858354494004311290135677215895245800998610991679612961104689501913499651077890425827622159738000234393569853489251822704002546832597596758844276543367356292510078092324105258738049004733289425354802568832493789774762845841629497740854257133965280993492758468647320417992850816404644611997915133984265858538389816291987652945859915403134316368546374339537528263592485833839621911325400168630961020391985775538493079057192342500386848103574966649324352524762958751230073303919742686792010279845740044804391377703874135071785704139113952209333009792295431380941245799826374274718933454203960573401149403751498279421742927875035146508855742856570166804540185433091432387667241550459407942142587072560927398567157191350924569729613144231599909820395116265314683936396145730187121785899647130814833406059226011241085170934867168132204737270064062764725289965777595424169342023026561555194542009625314715056343910266326128797960758373369833130590253772435735367084745840905794266671436588094273555101287153502445099375229028027667632355178659985033417631477167198934630521970718790238335194561010438109516891805138695885320304265283658905577717373626458976970335958363894770546850370743754815585078113073002569362780137800351854063131983543205742829390559402045699516133307812849900293320547311004950341065358124041340525921088859720749281254255101759169588401068723208052232612656251909777063821982496396557112373810277998437999219418239543398722663830729461538937693623808955532814149885419628436275980031215397733160295861010614818605053174178272167953095047699581809806754265108834924874583802309937095265545324054855576258017573450317543781087697872682669618821756153535822465476003158650475189874142419551557047772455858990010673549365363298355858786391298473491020683842152962012591109478644151980706912905640714978953578396682114639163301354198438120337816233003929204301417950353612312895377899310422315608287932290278635796088648364715649559290116593113785009804566150056207828032434190781081643097647471528200631013748548581869082805288614263905140618297994422215621155041323505635080004456840199242833129055217209676118084437321031659746855724746589281209908676724167780375706490067414947624519946279258864831549016450485611078308262611316772429059684068388508782351335237153216210133676473549822557704851820409957694810547478616985138595205278649086511878518298170127855277803426798248299818565138210216309212467816998940235232308731745335942780386634976750996811226695760490088487247513281824154127549402592428444440745734222563474841885086393364435987506966286343874469818534431083506747921830620418507004909004839972176439603380777861858574085552523996090567122261661599587901270307193459352877632923640134488658216014902963792904850424810813631766228194807715975776944700368095677782316654971577821952860090440745477257673510472427300625721855458022902219539157923207839468861393018887262916403548511563480097527164202343755904338410969105454388818744731058621329205452735598572936597588868022043438145663999683846823893911186803555560026019844030218575797041740871117137471880487484655802209410180993769757251617494023023280960430242594763753238355442004838037410798544045605051890919894876211259255659413162177261950802548998479789875533485134817529605729041473387758732225945655913441924301401816945353019711370888153777239356921768681959572834400309058238303724298780807223319492101615274756667402089900449066259941520670897329809445863680043069778413645529792011676965512957949927894344785177319226014533395849093849084269627205857104925518772772438033359951377628394922837501347643096186227167175691532533483800102710670018956525100154543795034003394862869248296885414631014665320971622945963838577677752260811541069284663581419846863768828199451316503800113312304304984960522316079325087059712824528249300091664597245331195076576357281798699174651907245510562860402429561878121360801702548455733851616784674667096339195910113303738427419291231465188470192115581412292990372776781936220124923621618414467248670903021617280208319636677352734377692049748205267925984806017842070585203175612391339298831092976923529907687816043403059852835096643700126309751150691061408499885260628777836498163293534801080963363216732469220564643813451630311333384042092836596385624977973182100646682048563199347962642917032993123307021770691498441422509098864306356190561319874731997022599944954147833760201683898558317254437143529401866608830218802441281060798209581533833617427592669878769289169074292162435859189447051769846375635891830879569001477233456221651059615181799284362614888212747853576051044668246900979552897234910744990460992382404666849425258297938269796316490348004941858275993791994596400915417028663125002900023292492277078961658227562567147669289137053647161870559013653999529264978990414141066554850502291348350814949799190167199597267949135285968441839649771594471839272580514743744146174906248545536950925886646338120571786834356775842689831506940586474117494280391322126245533671527750950262932347191156928952488241088519382881561417526405874915320236859224901235267632130066456125403780409604327535624129366607333609095548449122625904066475450720696595267367250974867705515421770941973128157960068031549370275588085637934287278997676104632182078712893019416389971908522822843773976761752044231714509320832335162346361817418451840364557028029484756826869972039356711132980239073304878491889089083329331991432141459389676837114232046793042929875773677461349790758839639350158848581917354193625217298054188944906181388967607297125452380984837980087977313101130577771321346237142561438613294477152468256840075635430262307110922661294764040846850673769444261050329812323560638690429181079724976769444099131301246024253813091207339291141708696828490420951470528142342021759080746212769618421285778278450640077880188395437510012803288694266333177605185306695647778683897969177186177245415476953484832056274565903739330801172731438892993910141955472376789553611792612240827935982508301162530410841405073474858091321493769565001056640002272703436564898896820817844686852830635790143519542952324559585068164733909325454419126148349342144264455939120690737341021329390786850595722237892866367186739298694256187135556142559566125260299764668833058292280501682180195768715870824804420771246943075108572298941518560877325727159330918028173799024340203744740964547377281338539915626001276154516562712007539029317671915277382969221139360319179583693494963115459248305062932200458173995163690562759781623763808745627371036150824034214738056023471365797248269025146001853297530782674877064425533835302587561988104831969917805052290473070009853914954464208819118655215534347168584220928401258897962145997016066176629573476800772652893365318612798474091868165579502038445838500785332881714999594462586626278586823928424248370955317302121940727274155493172709319662295330465387310112692319399239617582249421289992929467600566400977546306810153675333384810350581570039784903071392963867168425037018681322987388109273601733955860561381335783924660320785906863534026559846388984210546057572572191045314053618370562953948337093426905480776886652272581121272360864668664309993094019157773823796660761271465379669514426027031859448990721986265598376118199920711007376515027217018545840921560783621483522183419717644236406320648856928092520996511882344144347470452287450742443782470764224692369784534551651423413812276844962973991586064137263022596611205729994228405171108563280038088397258581886103789315141998200301820286062866035643106389928837857357620258636183384437361365713841434321757469182560702532453390398025796931194395946404200452526646202157108615808759943168240667366933226583397860290698279800943695564381305849993853577353783956647080932092139835513677875767207257650855475495959517077837808699357587660347431435345131796026209950113338695419232260747276748378244627483577982449917610854962987785079604243163880678173583963995761964342899965193221356967447185396273888437564910453035148067063516342138560044196190949056804241776634901809778791289780867164310209949311759571890288011553774157467994020678067889664641048853464185210836125300819893819607138299816091426765330846150510499153901556256501047386014933953929952583342803180056840803153166665513623368235930531062072699673584565061379451335515067552062883459487565137443510484176580849902956418811026626942357540037670366551652762002189537568870307722194697206250990838936110033289548619651140875090668465699170369783270537677520805045741297814397261410671704318558246084313224226158211634074378546373794412116478280981743895998398383556263555293147993710051997670831020269736878554073510344944061492946566588431673941154597204439437357884060865676159873691904224782610213010249647360365776960741687092208233478592833398576463141914738443625293705298093272455671617575432083568923809460439639388831114037541274275022850549895548878139885481202127486980857368711237699544381657768956755058716487997970117384594426085346145278619010248169331071264695332662266888765838282481071256089207951816946883836391594196546822660902815581780338966569973118886300890015385098852984410671405207661739635391316886728622549353420532384767801605256616222572199326564118128228089186553068126525546929085040305410417534316766115372067464015287389068976246952847633862199030379713330925208442780851591924872828575502506553531884047720788092341636066582999719573634534487924982064944429956948241136191712212418976595525657474684286434696126834592333136758949659881052730036180045604493574573754180930005056046727746555305227564632165722428194739464650377330021756532053476152614155577515319619379209057827395969175025195764322193506966326252538516694822553768115605301753561097344622233378719199057569421198637076758832661808744283761901519063033780218806149237592229878110680475102001260456212754201525498143906985356620175155378766187848167941497457521683691003085216260182533923543142667566734333138094349527754517724330827906366423153767413532907598310888668476338076283325614246098576363272839497010234458323836615374718187264260028135794805934563818929745191014739903449825105364354437776079496278689932882802551493474861542139021121253152386475702690861801343970479571156311061764873989777625392054031368452888171444600235684060970802096562129084111348616656370068910039065004789873621139579332463708505707427517434786918222554382071263490959289074438752614028673482589622337759400392452368031250993076422861107272656724534116222723671954087201207393077792998408243239773996720561081225480728933080398137155235725003672805616822196053336058911746655819265145824371817287048920231272030475648932416457412129672955175567678258488370311183992746726965611260329309822330269267589405671052166540308738119801993173848142299599719391858397367699784337184499727828476392287161322325114032275635399294767536208010452773214003059342989540250551169934679254343837199688448982875226593064482709801219722536500073947940118220369422844776407943890908345746154321483232162622830229329312078866580238991247159868604982175227604224048042390907684589301998993124676519851422373684204464109842577721872028902389939003884344714545177334388435732088137549347764224709044578196299714492906932958634342693450110582612429442887099439413920463912937437361358016933133202954517116956113215803108546625949047266748244845329790517205614825883589065493965557500159859921136194372211519096050274855519457424135616808026904544760422757308237452565533604641805074201147786354056492225258307580083448160944127035659102605406619015998537618044076621719488870145998207521028291226646499120189693303495608216706086203371856113034679274204679543166956453633861923070186959305672652032598071917704357261001938887800975309100411604066116708132196191197897910708068867173569790587017249113868638948025728971700638409522435420442149042485986447217060507129860220842374829063952943895328033511080161276720796870378330076917363554922156553592194162855112545955346368266490982674452471780527432834247258745020012138601437719129668113765711181762186797845988440027350619752386209343745191619595763519610340496608616792287573214708269120266221858623527254413752412895201558059654594133264349267596548186312853704276928487351517042355131421753230908356346466376580910522446162666622964683613794859364775691030077713431273491934319447256159201699134410975267050588566159908246880883973588041134357835976005440060571036505885553825190914435893617758840588292359847874566765142433158695425339590297255396879607322752354622123441759891968655842578875081909164303832175395669372065956332379690681139884499125153807558149419484668612845370802777837475084943333035831466898952121280168939526425440458160453436679053686169049153887855969115976677949275614400575140096828364559175753467282327765033967334807994671221564034038718264854722718591426295801602683304303045187070838489317420214641323985175843254402763057072324558459461439910825463226349254089624481077903752663258009883626204867372804881020596388431000506386297225529330235555589856800822303662774567615304646537865601292735616965652973024583632232748037593796512350156926091911112287086920251983245652112711493966374554998770206381623226660461424361946065193532641726146628146209956993742585538872679282570069963607005435647978016479508924691635593980135550840088835001631925768083615414771418461237391960248818966448626968293809095452615414827427877642677042919433730249525858390217212596186378246765760550211191135896121811564438497390029262825425079944684033157107249040322349894517313877790973130920812036650210739747757461386817887895196796797304599841939922972266578421158072749369794981259441999627169566504511364036689049520665885386812002488643295301536278315618715971525396101683761522937261127070276970488960433200242323263838947982926083217675956929642884232473377113364608402049060498102814297556948672096749932182918284254170807999274138313686572257971302069084038444948663807128619669021704191931399486170596917979442302297862831893429365863329074235188300673869838690549101738411111648986846744023093833235780143647462433726471756519776607897517300290532272089445722209679985595917411387601182821179133409840887783919515695056191603797139305622324686569514190559555204159419511866732478458061603569029915601324876292041045979957329109054986123053334031674167262535452368322312969739821000116844755708384386834465910067717850663609754674229275796903713282196498778789189914275710546219553316167651369013240780833075048439661440988318680012051336612917219276233311010874790559254521732561069487709509168497774239898644744578218894723729159577529503335737274694793174753942744073392998789580541235455111176563260496495003475062864198750517076580594495125540182096770467160577166716999854365042712502195269007149331065916634524582605879428287147024630491298016221572191366061431544910170191230252723997713059173348151700234145108979084548069857376885335902467213384524599387122282275964402208199888773449778758009684807225959994307105156991036786676365650692597944464329477917210774349734263779110346692261221174246948249719876748965753677419559598348826736678549692818235433758657109637462101622749514402519715218908166008319358487963925598572992043102285356633658435567007355926661955965455603034431138398055775346207604125373201725630751491584080619567967445268093027447857136129940046470355108995872608255370459144874852338582122678623323336232630734660516347656466295789252057685644775629938582302718227438656691880651125562159530813957592739226594996806785963125535649361029967391331955938575964778533537805556834574323808435236133901966795439350785092330832987775740290154456513725989538460954522658508797734956413530848159244674780034618172912981137580284519917858694811154058602526554579825814465964349446224556698962518772609216088193227643739818887655483229067892798877808078653784153810970939959891479294517167166484385638245619205475596224410325536931298797699947378594159960454067854043011744176619379957454525896128639699205610722394806744464873277422716088531131779387829812887214581551044382537823798274403850069260198943945203707922779282153056390197249545582725042994361699141173204972587806274701171618689252682139657619528732289407229456531980484930990982100984850806170708270723794744312526826498275997182164111447103420286200023046765860921450614633391010450385654144465676109706053692280739500062622952398985504071503999968163709985176561166669840488249379189090082185533644877471052372034278316551757650672547518062410348773044634943421929185292923606777838307747666912569727285734871536172655242450439669854725098977107416771403706970193632737572194300333036429427231084714799310886605960630052955951884500481049346028003281907740524055453065466789508616399539880164312803499689138305905192728550477565240422503377434844967756426582694137508509366113316600891831256435237281625278480174528086136544492467835119815439066592372358013869824211063922146768426416679732519010468963586624218596065845063864576617877099819905241160866608318071875462867762568698952317503123508597732418984864667378313904218755107507919244220681811079459473633754184810265714952384396593559818353980264271964411023146906268967741155273723368591473447362714144688081335806437258182062471963537644818096578453390271254277856971927927999528299871600051985797723710488536711037580829505598045004768056464436332336824531039429454996759301831430902291682463448196827253517493385692901000055045985983062261907292961919848068039648017152892283789053755672447033641766101670012433251084346539240471284160211401940447279792908190843349841462168552635094673018494210383058639211517530877191748341676689863375196938144136653029103843247532431159365284742643937068087500465634757576941980875964286763352520929107916263073234933389945937232473944545975384933712975552594590905828695304017631364075738958483938404205169255921933362028010200247137616921000378999312352546641090419896515937407166262806352152002491885113804939332026935954120441194570078924095568749805610230596032328708423873568007642057335530936874352685071018506571776970737985184840624771751471596253530212173426571824589722612620925157013235602175132075739868150725091856838644194937337398399831739684261084325032129936520719775554540773560164696350167204523349979375286512402952589904818692079860341808938952788370992123371340687374510856392700060145978074827442045301145239963158138214281637673233656885453256582779365208885251882465819969551960892731814583803654433512881829439150734271377459680597893541634623101043162743633048392921020985193193808696638971252880045654992606838480783438613339556091014696453511049309402954780623071377064639776905403192741690211409704819226970439600380191806650485884510699555759542787724422050829046099098518443747613370521096643608714362320035906004074680065013111051045509386956666688247343855989081297977345026741777823810947923719443072156684918879624196089082332821513733727764932996011429764534650875116225165363966207445614053245973466566748950167902909747780694676807106570215393346613468253384256407161392035853150844222003564500894211232791794183779197076396377225337586810810976018729873134969612125665635013254235297033193050153580484510986858898646994578316835360816327852432128265048851524289235829115806199044473800998794601085885325493748499947807052819037890985555762578334275307297668555024915866338081114820110930088408370605066163344028466604196570560701692226794456066758487848154373490582424996538950451837291189206467547371642270588647532878080359884381892034989058501938395375272877416269150832982425196646086497991927366464250947786372549159892759287540934105235653640962170004175321638041378201101967177364721756414012163776033945400538746636770115908161248507850765662532317230184976527863618771638766220792746926129343472220519850609785684609381837713913328299940487413991753685334959866647988933544319789407716883665728111417276796584199515216407856649420487919004056117457252108231638924981935839470394617188358781332851858097321485683753597774783716950837603950534426870836367928306650891107403078904895335965215203474441089556402147333238367924837103764315624146511166070947862854868415093970675617208758379026755755285638639328248063793980159440827244689841280351002173682629503560463318444080108550407368630771849065457471048301939236993677021275919402775632116463580468421852131766203906689494208523114477717289368862231639983960630823710833526431685272186540196479380113943054775607259573068503904211923748186343037703873357766938412823448715255701307873365299593945750430173323233225511106086031077149339784610858851457682263596088827267871761357011859639607328577800826553539775079300580823912841045249232500457308960045883954853357304263458895856455126200541575062514989008007667021186148376357669958763896812963854170020900597186867468409696670373337924131504390019125197678985569600717552225157451535364298635519809395052269121703018625039547222623846861240508492118586270906713826827408140492480932984347795431706016044044359904516959066184259091868377437299472765480912473588377674492534046015759276297612930054367737074246038336537789781394487582315075391118763256720691988809851389232902216976665283642576878153375978337214257739085113918819984577969584951346264669754039052927655647583056113859889031644096187534337529430455277094541548801500290062344674655281568499385070490606655938431345289349087634863384655892820796148646916080453517922457802932282442542581725363970426357438632950188815136437953094187238870384636857138586967882004856460973535564003295396419793131942783455061370455064477569948976145167414477471882989946073369773107059486496137438307652188644694317508559907232045078503019820201121622731081934671406799046567065973540211791905228292798639536758643167620009880401733414516994618474943162586614953474901935936252863702740480613740683556923656900044382395306100152759503705065236550974222351996158225313039847447022165303269285203993654604339965385908340021400203890526309625109456957692964046037949361879973730382086997419858724096786831254260875150615921739088190667826575557451583047058152787596917613092917871120768030999839438011582966804213915017213235793595619958556055559090290535413669574619103478923550278409442371491842289370696173674348825422417984404669997937928321645911778104237771173146525047628265989136173175053212632098446365531407201676949270615732186978865047687420624695004381123672860066158691455323703714085634721263727921066239303819190576158042551133196354590306608943309397332242165672086848837890432845168873535278145283014759783335236422224649142427764389412255584663235409285360507412915360164672271156085363125877970620766711442898720414522983583211325873563125336153585683116008908489141147442812450919545174672115997093308153657643779159041005921704014801803633290324539670529248393075219244184410955581220984931942280136858940332958213761161670144641415353089826922296011538150858841211417914974714407429784484288630332397543119193858739389995304454929918439109632402704720870491449442085805361392151593522193564160797701806342239166559794307173862759967149451982129584572996194823884351303534382558794370493860226593613472802823901183545243128806630830968919977627943239857704197453721730636307081458373632427487910434237346373377731571254584849855682338469650064806636007995077012967370709425919666288910843770987113598398272323176646708324371011340935426966248995903929615008736421978455926644174816123012941443373336177449961876948808454450317598751720151386855119154721192885836896548734044633905646310679325214025635505496091871509877900640761552974165575465689997819253510071969943952859923341999993421298737639478583499025461104114333732630304601093172516138089685109000734937070293491877087069028082550111966830208514845341695198063258242734090977848976972480035682851448864338613072886692971854823463817554103828569307474677201643019018538902824823523482810341966930286961645626265807807879220911997584812580094971368568963994718233346816202185108610804195017033256269700226820930304277132679186800806515525811729780760513982745344708428488026481542723239041456516297792644157145653415512064164950527239747052811458704407227391082391938868929540975128725568177269147856698073008902369810375161546555210844950234511560605394575017963818052353022883993782894060468169597554727023387404764226351983317927617553436211827696653022864813306578716371647969052085047518127635320726063022351953012440283552380827827111130923605579097363530989232824535769511329984199004183843145950794787412012914095221569164547945504848148441058766407658423349658057979028838671256966600181518256717890168513643495189518673241000250827887621872633723143818892508852304911000423289101373044903408428983181886684090586899182837312527824552314195254821995789759033342843728280632237135536051868867036960003256553085884049230364734256657650857953788301065814073614847759640759285596007126211323711100315948931639749521112319638759661221940812317259353499923628051044003983869990007952220004100587557492729564792561794218575857785536003099421897514093660718354262523292959533015927991422510015731453179483293797518807798430045641061909863458769770108465876808639767179783484774361523298092159988500880977926111716162704271466606633214130356388867464185837959539529594564189503204581791577176895684075339711051624701142133673373886943989158648409692759653462396847274791291619821235280895083827278880546685340847291617382901321844461075459433231674554898053122025375634619824573538958845107874450840688829851988062224612591209979534375654757048245457262809173985364705456645322604745321994377177302215607257454402818295289580471460872884267877595726559555869759407836775587401572101296339298339544531088706008115612222682128505031705706499714926170060750369497028953678747115967007244840869012932883368638368268418025521276542677492183415882776321755256834062903159027080652039527570594603585247795937204479752333618870509955276586509000858203951126127737075961788733020139593787604669860363654745274570590552858902521623132176611577953212415296017753639258651801806830194478684071562488539128275233962821020964206980236220307540864286355664467088081039614960396448727883953819552020848191171908116653633608468803233224858673451936446137488591259802772020671298766747809619699508017876599485964270262157047687058074381182693838755146484142678609782872386816140488278077479273457028761302975997046135730283752965409087135916134422018245576369334382526487659336881423771509440490324222665961208094651542746044532889813745973446112096698182903091930059795996644250546761860129344016184843108500875556132861541320407303738899518574046095187494161280831707786214785776365446076292221006527635658856962025331988853472409613593282852455426154613994062659708851937922341517927625673339908394875798450236198539637165387417947228698374572355957900480235585766400207060966411231495356413054003182843371589007553145304009341042360302544665678602222951930662565457255642520173564596304367267765650708228444304623104695931011489213833845428649098068941606977167859832525547789147271915859258536998750989010960262828059437239841946932351244436276671674976082171928157857291277276017013107066269771425254365465095640649791123978863675115694414559452169731726334992304726702754626865563955956445825970502593387291552445737905745183097974574964555115455484437868808225116557680166051089432269105863356250228634364216516710569008483429752952556141842892003929488896729711521229219974091044753451468130669721559801655265082404402690844261196968120502600610145863784080776423897269191888838895228247055758054301852587684972016762135392443898251983691842251310340446199340897552760663931796125353717998375827768954829437350789690866732373594085536847187461707970915842692440056380968861806243354407263615596023677190575623069410766356981972044378398972704203139144471492486526853593516456933721313781433242597774594632121822447166044840290390265491525403703045145935117649754660794022789021431081185037364120298886478600833474562870539019422979700809285775736098291019039387953822946900847922343945970983538191765301679313354357151143677442828368885740456188635414632580136764697951083352674505732656358625605409928434905494490009744630193195342789633345677565533871655093380174769831581294848638669701320671371019609228471519927797927088827839938754631874263800863519414864797013405698950040835346625308036189955461817233734547405025226300754101566569626606205733811097061606253219231013837480480863124106804619438592463013236506090952527277817372577660274459403708745230036857617460260142084432805486157089572350949981748199822906904497880547766574236895800958708237241135446964895775926381624913289342709022187829061006889743577137699965547372295957068287252014615499008921951182182750877415783193923032203888375039682924226747715067823731276042449861965325695567800769645555605289738880283216651481063456580354987860714190137259706440181072160962472260642790324886744115847245263614953932190255860436905030013896068422612468212733370887868647753263685149858487467915082781459100554065115132235807249196876101349878472906240786652981283785881861941177829648633793623772880941232609152938251307185631058680543170900513407472507395736698949833007993304241498692982200478608416338924645621950499806278246470338861033508898866444970765786580897686524257383942166440784077733753848161399069578255325652776275473646018835090968456232982750915937561844747915924776674785476081376682389943114536680133801618022305898720293922979770217786271936913128522138010725937699263238542893714299950058667171572072574619887219083408255231614066478446042553905176980510735184740740928552335062858235995524097553671252819820968204757167621081087722045586160421535913093701678902403465257628172196191290488089662609559549934424624597341197135714127964523005936365222939783561216769242909904227343301821269640715232523975665119053632235143593969083213246895532644272764624054658468821047632668363540995028353767653097038545442657796825611094336478841962941768202308227709001245187716672416092458497964585144975098504783024938108140422181682087562877978374841772234193409585758721015259000809044849858871314676000563217827365590795320925310561908731171281698782115332000759328647274527881520996854472547375756520807700426163692201839265602721224198276894380604033880009753444364237460056712270760237302132233028271305009099127483909769556559762170793581027867055629797326498584270229846752110476443863859209343338776544616232544488096639974924444643262712776361969275148346156912068691828274838352157640109428379165071768830582085682915462674230771569811700799175578721513784835894770734350045823570193057070298454442046167451323471491192563679302629877906317624507236377461804238979928891623696589804100168051850179104566130735287160692379770765559781773573314617243314083075696955449122990583614299286048449478189669217528796674179447455445337497669748624792215317212966244052544149628804844643963473663032758802643706021670057492182068097106640746651148322492061477085763442915372846869680794844491936853733834496843218541910338416119736269298948150696449680455570739461798986038556423302453155528597949145457619988719037730633592845921254603546020562177642024452736831059374378425732834510354754493825963329278429414219567171761588267418197672430709563605064026127365439238899841200179817891027149165001812678930534627916538468100019606987068272048773159396729451402267484428442548186218934742883484758743399346271448908368107154175356473186001482753982031226780699040760660411543360376660551071796393599033851314195964406388359507870090010784856725671396069066908394276464530160273761120788895325008871841739567273757161870013056802626824989504055026116347599421518437427454043974244499284557157187599267297878646540021009605058074744893878723848438131494174588904043684229905097487111797547047504191066506034030563768639057787208227681760906086095871130710531239420342556445964451201800516021925203514084535901914349468769095046816783510949475050238816144985847202895337136985298519727171401257221790590250173828514431047612198470637690587260531747533131165247198735324845482983622049387492794157636925033149491581541905338304385429561326999421101212562027429952713404907596846613250169655829636352612614563639837880730677354241958129120537910900909766732737734627502333073597718887795905083088711706932369834951875888634825839240885832134654815423249754814650534960443311600286227404357185153202032198132465595018819301908002513364833606618497237536967673913628188809719975254259115266532393409576405523900065384169689076015836635862459721988894589654123069724352702372587500176706628859181002134117162541052277316650041929868241693387511914011457421264716929837159387363072023308872839804565277248666202898531530777592730380831267042880362411119808805298671708212010161903376121868582124547946897496955991067894623203411618359333760910672105313090152664306533662616603989960691536449880302178978432284638696675445495774046986755355881366116194535666167973065350851877496803240724444449555905821683225214706432651854493907676639531729360896217915875650110737736269121175642538338517451361492532135867612975344932032531978513343027179882909032641709839864122236685871317465044149331805821443966352230098912509390301209410054101540943442242423601940905641248177665586377886180470887519922804330793465320503791034524489170275662964060579041149421728384443548111017548698756307480084618288885704361052680621290917138339844019409863849096594517780814146012965008982510118314809459639111793632139583885036358499040500626523144420559914318515792938846992735574783983271277159462962241749484546894478113383638990269561603287133207095250050362956274536376220754175662476654062644950343509561644423581273606101316436359489929590120425031559048942019086685786612223845430827153728902792045645011422055027207808004295008762412762681244461647922189135474052011243032661595958395489696185804179146481855691829494780964726163691841685570236256416054254645173581730640544047526863905892240641150453826292674799218867263111633634461551254008067176907589774838399523205915776582348209267993761726873175464195133512402648463742289041376907706734632487100209926537218075810622133861233980578323106353435976048087900953545114045018742914190038346304926261641284842093761711471140276341935514568936735279781079806661975521440537281878566046949767067602010517134926106842382451162249320204310156478712318542812866330682302054403155844543768794438396639973844155463183703528684211710070284412050770428026638182008533064496683552609209667185603863864990336731478114387403537882024505888317475507139242416202079091336406253300633578578800934449279322056992342637197594306259072171092189632922403029174212293761080934351907641988613538069989779519606942208893687340500556125007780659241852826043411710877123182422798618436282470425285124427229581554109834312381067526983493053339632022553305190137185790712108380031223990781469875602595731202716220131205682812684953338398855047616199212531294022716815425476282644677319350501213284430828311148874098577762628490682474991567947143077803035764342368347547091853470013423561384835590672288131852072808393864737711516150480803351440660307947331119384401633723401795328302813846335499677294456838359195567423529780031093132074084020561015571494961815760793476398179703187448322378644809119937584803074966302377659491349223123357002839556073064525360206371440933940338801942081722350450016173964731677935297065091231538486821266335691788513700693718804813615865830214959772455831672202717942196649720456301210464652336051234398446053452155640884837774183596933725576036988374520723973028036677588627440318673199081197733013247381273033140832491389784187132678627350242957444942508376499270699625220519168440973358088527026046714435691524120229644942109069301724423040224584482654415936851183451008669990791595369183204310378816396306883515986009292923492687175562905921375552220638210592979651188274177313960479647649379277297058147890559288977424887610880447304222859237911760206402784750079830289337815674585676060381463620181797987808754386268360185393466456258145412759141257252878058650520999326189440860093108195581200025911166741242578609995601234104873583210951898009026956825021058254438074707848405931496491819764955286599046582019387472864119950874005613574734953474760143473587283442547650520899088423663662003010171240106847558067972349425369291653751452848995817728151465050023381264866709531630020733854560394979654012433017339458842421886295761136061179181259231529099109941536463982685001704917226332071801428571182425123886599007623338405445055439601894503097727341435088682230737449879471530321933370148671308114156809523057893331282461671612988961881492733675897419742157379670620726269235861100792678467078880122122487749313115915628114068618795334453634072330632809957144637143096251898476202632594101009783018558065428997313907251395596787716287341590769152703797587267616964052610642055259717632356324029783112295971509387264652762448665541842157491892772603218938294457680302649738580412541137035130131734995366991730550391192631842475566706811850235798938605602390640405107930828537898822117762170060971478208375824585239526207331833604641809854319828484338314391173666723590868299940448096941224633107646692304313269678540172808739706631713363715130373017026526298597455563445700059044533385015730972454207857429759247384908358255852992299670783770904907463752956696447102974730324475046590412770082531537470731151605975984194306366522623788095921330924962842776559292267413685855194652047241808112986891793134009280228258018328618241484587513729633348739950946926334430538094630641994622788630843233280853990186387546182204427821310450924330857301646735997517410197231596347711509537453379360265859518906905196760411055243898841212559198498436302073015740496400725120209241859945498180444747533652181809613574934847554293888160277673939862131321079980255232108722587836212508259694052219544667114342328419275887038412614158108037681154353826252195411542831898610196513380342819022664262963441118322681857994628170617374306743098193967987106757225828521495554635874380027952996408294016180433317448372616030178942315616342124906346923049918442797311824193993776680505571527117552015134758397018369210179910067297178140320471781719177636200746374951582168908966205017507169500505094585844785984648031745038314396373237937135558863447424533389145945411655020296912792532609918631732561970334518690493050094041716883592374137184417356794587359730413073616232949519358089274394437915815969949174642348126296878408986063227290622574219267330285563158979186276009114145623966476160536223902746709054349201669355468753361832427998622641459566862989041373075393731117560142516251726419914710198023876924982392983084675422668168120995336247256892543776623395354171694745123197275316879369545634000338441431537988862650725774536382218393200759560546084748904720975707842078189019421187963999406771730221253141954266558246210302275987046104957953485646335598759146288183995470440285248648492608272656690384191713262166643676582401711882006656916563063934129426817158558787128238837010327126656178555588783040544277971648991220231373154524634175083728851351468038187873568040980907380427083350659535081459631880072890060704291852781233820106061296576021348214012408494523678702322641312767499853899706767439659699678817255505179472691763670383684503354001212367323457060302186671382541117845412045953385510394796690074344153901743602955298273338811615988617374397799714461483479591777801571771811016955158270868345470197429376145803042035344281310307367682369288071596002574508786448713584376966367253887316322905471855998959904248590954578708861333902031085776627048434726796406512238082969193765806521116275924567493860888535289781928973504683892792463352007461355514096584399449291099568099743830364352380402430545210740943082330399761012723124764660202383752597477442016023381243771208073119744467245650620570849610880006875463719020035809696169407753193569338569611504820757979303438123730861146306049224404193159604170825159533850784421687361260216833215235751494473965217185638160725456573838178299409255983037407743588111763169882941439462276082223671352526401301180684570187207034748639679962081515698503203187888658992942739409335631803482599391991245903972524390769089277356763130990587155002894845815078547382418015102698943077949399726207349676224769148376234654467708305494886159287222355227502672289393153043885884799482252747838654025741754090333712848917674845269248881873283462758496801144245867488346610431993770574638574370996114175343139407810293128665931984978650517169400404426580829758123923016613038712867514406706251671560671199439546727620416432394053910594674894866090990408028633172732897612733352037135402801805193192417620235228677326379784864910284414622948195422194236021314221116651375159141548840825470014894532143805690346732637659336636933157778767037694026942643918365998677122653250006180455015367428721366374938055618396204075369269898631790460967841799928489956175024999535192120540767384134250858401517451793218662602326172901989197600993679997367295256163233056652927033841196948997819249002344046874481388460372811533423163580593743331188127279054339657330252587752805574707210483192296201791138937736458568204189546361792156599326733402584611500230797599737462310953773598416484726779301811867860297901011502339737836340799283636152516610667003132900134560893534895437526534989635385033338345361511472086391172437711077149552353049099376701686782783444546408870354033565086492904150805147094881314298002704941326971755379700058300487626325230969483372581750049686158636305171607610168407845509266891376431592837020961532016827033807358852263990155611366748617351058000000592775877714161245754099525603494040679115151061706083557590915167532019394581864314990078405169008432087561431622244572089330704768648898116609477677120682209206889790310930482285847876580271837193399756198209655273025737696888211643786367412126863839084047139903659851751580819282310233897918796887110165693231770726393122624870593957504260715780274387886640854193212092837124879380206529274916205444559806561034330705077779485655154144954734925057105149503537021939192772944481047118581457848803623844098221906145682628050969669984549773665649083014853107613458766837978423560150396244506055406657121612613793927660915292746681092274894436625186480891261959936214852267922525238909980399200996645521030944204458999918739645283650656712556378099130770904106210463124047340485428526156184810318633812830760817373201484094112444019862627203606485905036222573704137896396590195015313731389886275355388265989309979859616314743687936430413504291899586167766119557228337516323425131490222537494462590037473261591836188838694610773249459039987533246803835972549291280027138394097672950089866985209240464821628948804088121805616583438178396272610578902563584825928479281112656501817303423837646687615182635907961686323864335445820054860988012016931398171040392681412747357025915960010801415422601442014350128571876712967932524475049390049020621748086267809844061752356188018604359516349499326879476381000136040772159663964198530803415395550823675289455787369187386733417366682859461882776286813257707513737673980891938599801152353305422368501953203277230965695087195680750591749120979444169111554775567539747854041216888798535385663790060414960821717825348677503579096301661823129104363692372025212138089019891037904999072601670398595664903462245804995438193502779331477352531464273595507808002716247139588984086921510259417985154180379431960646846249099673240605565861849827228209486169711885217400228086611699077629949027056508967911513438047491528004404929073997417561562201374619231193712540244909732008207525500830390742724386531830978019553131869770153525390098928356890739099127737849270595174366945213919485105401955606935350462432253989963833316484062432303260347637750014474969391644354343707770014021585585679237199355204824422489037570311942315176502481438493595988594046069391943972166082650268772780302367103824274839402924937652126185640968448360735215628375720685957014270795554200476030300762749045849606095625348532751752239566347109590771666230770832647882525272413972134499324850228582185005686784384436532172791952259375843637570234320631037045213717997993226962624107890087176973549902281811204411986792212226260171901222348204236888690325037104380138262692510612022088712979060526195701993552951519671008962939810847839918461756261282355373237643047669569069792862831333052369616090881911508943856896693096839034716803300580602884251952872390206092546711363084682508833875612721033312435865433524249918799745151563895067870004451438934308553802619173527445757129047709691136938125787302164165405142184092183151401533631683710186584024838289177885762333893298791808082819058128744114225847804686509414219604999036894930861235249791150670291351529129488199237639083526999594632512659962022201037216748371200002577251137110552012083365878174626308391426208327053611087522963647495838083393952854349248477285823509515728262984198648485467332995533843202234642406026800216341303187491455956130135605123993934171097982571874372258315085216722581304479180055026999698327656402974002219948771296310997317457456964953355917738786203861003658934197538358591612954624657262727521288174847331157400457147216561261587906129207524746461492724286436825504810803680552024685056077151930891366212231714206970393881123588539912327274414827818509994438111759166934908042072129278000035351405026498276488076590774903995002042108829597984419559420151257883425228971856970488080384713488248270246824618489639096624255711926814066254427239594089264385636396539412166661636967453356438843622810837779624994332209436981670800125422493768342200507372475175409173740396880640255164736292823107408845490184141517806704526071212167526320476526808098344101304712042834153668708036150561680039795071429153246252321826342119508568479250037065119118412978144666230880084803724149432593436837669807465728228380274483357117714117623935939797692712837101899075147747432284661828052426984064794398735544213049389412653562962790937780318567535584092110434664870157575454797863232650612616244681133917306110222478498308605013498942032723269108712643778347449187746001792901782554983856861896221164956864261771294678520379893487179976252782994252084144067575730085697242668843640320282856300780977681327632525495277468317726709660386938611771071279363306008410194669696113568926421821145119694727362923688547528522371455315604328081174113254415849242453607488284789181448076833682464950963536080520130623949871865252772663852259972129377803173770411901313279702799777766211810930117192191070134833924880759049690418808858399086597714161508486174917722777805641542494761889137083396599264168564666390336223014766172113243244087170686957715418149490392375946425543661461113663617525138606350376864903230853528366625589551164535657070570406042611923692047417050780180955803921828391895773290038088536440519051747513664741690039117594541760474742512103151378475337322549157668954813752729861345274946973246333102028689266564184584132875908617342074831823371304052518266557155254440435873930014348503921375779383449145731706164627584097836548104952011378894622502639787289659102196184926343974760272719393812723665919563086626750893754821009964803735632512699735257273539609996409608466196588515031767354744917353082638302943870716738435368767288568811154008874207559206746175359928100701620237873698101271126193237205823096622905641934337545593211800144950520669854798688971772509368044625045139302927525292220179776004144328276315928084059387904578578571926135902039551346510051727238642607813933938188862078563796652686129254760193598580922159116846252299649988919214743422625152763164501024939035713405704381176095930259221963249056750495894714050476426397107044992846977859780760325654228348676126449557074646554038963489890455448046806340007060116207144242826495761514111132891897833707528071262503395790549337510436979181495887323186585389003109010531936440875571735194573187273163736781250499328963748376575772162147265345231770618203174485033727830365909870253550768458880386681092624211451267939709886652197376655130344497200076438454595064851929668892014401138732189160138772532282920170491168896894150559490337997289318544695811891299718850252824073660442375853712245429127717602054051085605737630523729134884443101180077766910413374268025730279711701303328958839236821289234850067397956166122614350312960366089242492881265759969389422426388548889431581167798882874557192092002576721976180339238843106555699885484791319350048382384417907417198873219826090704243729404415885178060862697297333397767778610957594596266552139999706487407541348668633662054916410364094852485883061150515130665958277387025117942716462833897625830061205267515150463975945598401575557297490081774685880708562856451344861904207964352002616299991753727699239565460450408600346701948391491555490344306665629420236145905159289080998415124669675655809264692609385388870530823431352685512738640133783933542354854202104666145692865742296959914045649572169739890916784544310056505807551465537637891389129918503290740463204420014324440714841600401180761832348450479112736186706647402725179681013735939706284983868842314735072109159135571325054819679921305253175427944916968162181404760787153476607990464617123917922255026755004391192068805570041324288614205486658301127740827406611484500897783398874715468734083600037131191562015781255313629109337914677187738621215582367177980847392840787398906544517457425612569467322273674819395557994701360057121571258402376009978979106749990299690970563447811120541323588941291240652037872954956836826422715504537724981810636141344460914416498415461549331575385407291745889125078628989221617611607162660599725167520268404666955373113792578958547978919307230019176121591091513315085518840702676019991630527714045061243216476094832517255736240541692154099991088350001940508409065795228282932684116169269723015815196508546436704081124791410968189133512200280173711383932150235952959917876687839857341769468316554886246061127618164669014727838435595400112476923834782224156780579254705269047454252910497231620638068103642503620193990842622680835662788167437507616435730400729445944700851918694434893557211800710810560867242650382975893908702432850620278838765635801233411587306296727591500074625487257339720327228866480188673682666913518999713608003671045807641302895227973086244291320158005068297472342177890376614580872277557177776919846276316038613278663455514648460786861280364800169349687210654260813938205071104731775131665292252879088281489476952340729328912892973555961118282091881792559383857286759873391186738684115444429021024287139665529390470010337494474194460825072779299664388376961424069560093449640747733363806449246967286755640688259047783797993863212254758869307355862592538497667566764290967010450915674432885938703363797220069460362411651948819407483086750602956060944971786399764084604324430555337201821919046703577851378936440307630062787703454392198982049145182909001638439273035920467522595544167093509167103836261843105265390770536626076682348083630269859787613934134071490770571340624681513617083690582980894409526170876484315419131858665928746265844353431187035059900300644289462801330459266099839385297188754916172196205953737717969859488401931806209641126540311057254088862472109629403978141268722114288822252461191206869774361308046576602256212297165377482066972339419483863809299949798575737143424672731947606412709203772383542765086042713344791511475785773733863985244300757297320634863674140237492887878724952239723257918565694923766960321362714355411000645731645779703271024035648105696410732368235115747973592290290666283233563526049523582803883247014076470033980679358006715736980734108795149904556595630523261900325170491572232656987104679867592040866510394118371972089470003668472513240396239063477322965782583694951571932194526049767845229792633490830714451317847428727363722430523288417591491346574224486459812477520050729509079349894705567599536973507464455266884379630207981062942505856035179566280753486358063341417809472614798099291315560314891762978022837889083904493834984357813903060219755080903083106800440233707366767322330621573042251611887124543936893974166531053520544531291073541595330893561076259184192574367795194743608857831807784963481716566758181908277895647294750723629754690842401820815618095843072216529073008614852329319745349333795604449424982918247114282392162261236701357550485080674167154242367503529651787371281045422705743486909930113174689842409765314715179993356397717875187840950099787549541813870527708200029606412099784652124554940097933422720078902842756881245597990772591483484127847636733727473414360540879565996666367538351341667990298587849836080337787210841500065200084072021875093567125553284694284582011110636909310047176264150264578989592026515251684103150518229697144700799697358877827633583765639342661099888360172156168962026689878449222067403106619714375575431119119055598316199373307619481476534512587916768871667126910795652009859488848711544523397409228208105113427223019164384830381503089781303278033498194363689693494580900834224170407663278163659838308257758230491316259831198978904168659487880537924927417449885476813101729522907887132235783467938420403150159258151295755489488345556883720224310178841196592941178168886009931429220027404503293368983414785112774542553696401477616472709678763924048383317500362650967018176878881571469969928851018419872968046201270460654614997234245075503002466980698621562233549293148013789002790122822404691383511412446288534072777249538449669967700605522823173534889569043579725607045149294836074985765562785750130564042354771471147833430562807255031881496925819521337465276771852039885159915976840978884028579787766133290236015148208573798954894632561004890726462339728233944405189608954843538821690557971212737011568495130977828711283256842898574771182863395150281300675112973990202363301285951570088270240529778635912087752176607851103982843393521223476108369188327715386551192447801825723400542375916298027262321472240961751395958980740611186320790963462536411374705150532819588054917662398864339632234314061931743673521143634971731958530998949458204401423983463266210541968002582973530410979811330580128413100826473357723777516039854988430711629739956083581727709077230792061933717505700231466602425836593627094495509206486280120608237908877997324854076805737762742448396062232152784071177835247753953062144593484716158997482249534517849592270216335732898850211626699712537543717618066270347920950357173296283404331415746294836662779415396372168638787692050626484459443967827130137236504948815398260698523126998035654790483077131143313845999213338231113095311865671633731132897837292991963937140216228431997044802307590380337934433497106036227095099726991579846124026790755792100139201963546650907743987965061097013867678503373081225721493406348553956083427087635446873248357462866190139611261352202579958506279016539837216414783401483332932601379992629596561510994370138751739287492017362925339268349056538320658091508833849740625307988928159785478476313869463148979789361260774730158939394144634301978591659291983043054971392690742407897379088971303018977287887537998062256926303756570352248984359031551544789839914813927031202677579500360924098424448987443483941170503824978336634917282609225549028085918085149326531267738008472159526889377561422639336557132745240620466204116235218004853352375615473614651079228210175212600790632097917006969820227472832957984935302989167021334565849203483522287196747015701814760782756544494793312831687644543129090476069613797845121679825978003960213411101432935156778891686120693424695033257401432419652489261270258175189724619267099989736123990800555994333496875411261783378970311392686212773353308102043637204693063051148383149761322586562900615941319547214875790994308112526515136945490391335300447665048737442283135562842272563539127640446312767213795309995316083373041608403606696573460155408228856085899576206151831518310923378240775450432758282671678418403474239213444589557520888652770747424106329624420878507498207534963504487888055258060494194528316841850861327841038605926811351294622407120916912362264390088298984519755695230744363845827897941279923515872788727285800780763824949120164793957547647360361732088789475180565117223442699741415319072863769518724256762119695216565941880112115462222723011256594120880732913637768821481030114699720777433167452769431613920640375136843764209271829111122998193969735339532764017959357353878042476640355302808137423217095011117136611113286263898771183178690345988486409871898004371091654274788899744189208969911716302869194127062704695067435821936607064128868426544372492733707327592947080321784515727825453852150043928659328553714027586937587660808064588390296451582652759571556207648887732768797346831389326849123111390329560993305644685978697077154558045831390578204932557153240210748834309973315945112940509593484382290801050440918939890380143934591067474394795906994630769910893720974200427763467529239546439124884542306322738510569770838669780673048086201433179607625694857437208434872663795550316010007388181044280960891465733153132658383728261586708365962001035252800417874124650944930830897237004685976383222094346350163686276593197636638246052415330406639186116804531019903784098010894763285592767165141166748737450808775252390623323681823933325945807580177239359354968908778484736006713658427067620823327344052918741825505650429395084852601169469589080531772049882247266937349030385444340847025625555032873707786953616987409063566130276970616149064983812775984983948742683582043360050471724265651159748550941626392478194048451345923208172476440638129202656473701838904496313406882091998288053142998433832148139646666476533777984162491217333044364000751071020081582881240733131858836023853098373137335798016709209415082722654344663068276801489220151122992788934058376604640145735064530124617804103893969195257167588236431081079819248523564865328801718731829649595731818617411983094827212442000169588632772605637921898854966077807454354374949950885801270128919715653147177284015053740433148175576777224465238980109655509092484405499450210412613354797114423562193154010413000902961057403569574028915614982277586728018192906268958654704185304401290661633331030417870772256158094065833415524323863976257501389818825156209280541423214464254383028711692986311963705119738029630132229168423563386444602126745177661803221881900404032214227016429614178974791147760041585164014211483667169107150330215262397661024487949708574352622122998689581098665836199943465596379827419961080768762371531806673424981038792107240527716809079820454124611881626429367236643284752183032086806710207165317242539619159784307889641422142988554362598045965041839717373856956698513299591130039165212006984999211737652703173139917358484146353164706998502168455692893742544638854665930429709911345259556567035900763229745964990842752163736406017602901988969947403853013975531943271928636752467049479897939888499922743499786666671291347263203904717335245016403605906218908169784657185837838599126351124222750311196445593221753828452077550886299317142658352991739505765470488071249814253162492339564246831146503148715597591609969164409303727378099641170442450130359235107074187790519387260027128510663278521641085425921175802424759791630289489223428419655673293354767936452660943146892793311635630505350153446742951699536454603134888336830172413471518691056327683105610013207690391311914279764645735064989835365694399231823458239035512936626264067917810371017826935683476903728254571422692727808661682449446750695774538813696736997339998515903948896274474428843623060789623951525606065564693796157891521585418889810790924795969897957254358684882615056312315253311729010949288793482020566306697389492602384972290309633753279308103452035055957335028689073837994576026530378214131346308448695727615792709789465049960191428357918432977026244925367471955555834008465081389746483079952324057171142818432385016853665604342304094949046373890666034607073259088306437517911098094447817156261446008694465540058807208550757003812593261473047021513818694498231627728941908345169150319473375666813684651202402305904881761267154530180222080419944496322972294432389644638085779137589205684904761195893043955030470427197963147093931830911130575370378250580093430899907487661933295328481280023517505429025724882067452756220936118003780105583180617780849701079152482776192902354411583915805025031257692072910216544112034644300831967623132832379816539424853020735058422040419813736372825081925394388322384826896972199499316249053735800826547759494911690582251818711301033998237812431303460147838069725097874437093368920427468129946383490075164731149162231325992454247971461756281259753997181053605299185818935012879163361995420077932622531227253949343958605862570266859546674575731930737560236468187942322872521985963520720219376033177346032709488256206735134056593041504044820318586023983127040524168612195116475552509589811518163025371927431117879771153787042344514289854227165628061732142260001151326881606971886114004683804862948425256058830514499297630195916507319798953610828275990096956161102040516997266531446961663326025291521005062898981496025044101392323533992428296294488688260787244934831946662746169519909887198805673765889222319711792654722310390001908309685412115323110680077942920856781667318265904020775760729666897863392751720013345446187130567884580369301950615495790186841210370289281400237798970524674378075524524738175682812061848462268829392040743461949043054810572153488623768803849134441934225757178330395950053270221949268491342729666211944250690998285366281752160977877137715343175447011025026246078772003440872079124287403569188568027367213489092912563673800641354266148048627145612595477237675942545193687503771883648419415417524583252490483939800527755715564172881974909653263605996430294293147364762591140495411937209075772620640142945487289139178434215149579877728607995807274657004338146962911139695475302595754152683703023550762042246434081462188718773661134123723491123281848173575428197874129279669398585627902539566718110935684189396507629456060127914168153209296570238209251774978507161222299593490528180064128474939351045978402493347783940903187802978807920551777061078536696399069387881855250677879331545507886759592080626832927605289266639281822281618099563149557924007312850181765887984880813990407469099084598609017720898752380634983017254408120415678329295039673583372707053324243768157252254104149875977241501719904945606177931565485850110689942269157461483049359256048995465099953792551330147400664091133102940987595142474536449727198204935735111450238887777169176064878744369395068074411358822471982650486139183097118450007918157773769785513155635841854758314176365693343230468202651447389999161104872546084311587749954333076412157363661224643228781081814087389277308777636861872477264733652546515477451569505278548197006348492262690638816962770534327250127055883979191236863199390427891853650103177628454883444551925723704049197554254838767730337390431212077776762038802819814628950752758087305090287458978538967772366560793937669728665397790851937799835877977551223001991123151125335899478225088369058295738275072135770496148002942897358326133845300921860326594862668010328434927917703428520108781825087172107546383984125475878140009507118523066034347782406027378605527988985821135162403367458222648102090485982114800578140070621331309893835930553753683280127026604055981946828219940615279147995926436234331227410558101911283580176125133549413921995488013984861627891622063399637942290452470585916305865648499614899604642593868836127615701063343535465174801537276157269438429911288400926157206191781174424625221378580787240445153494370834850934881399707813309074300897017938294816337934846372952731845741746379933670230380852671617482581570989322786355033838935194142930593106924622198081080442474892609655958625789461035761503716685519293200776943060086327318658979105223700139882428079367212885629114820935255363663921557444671643855527599364229873414812465173583741147472589463239803019675544914707151481470858910278655489422333966421188565454274366518627428731051210841869728599940176983967271392882572003896648490415741754653887570560864607680490280208473308926164755412939121490913531623385206218609215129897561782638874842483603013396420350552860989012190500161351407636297912445242629452079377292355424888131049728830971399999993176688420006457748673139206157949752787765430979279360723745435466389738142076371404884304630634150424721244582042431795870497901938583334306254196041525101728442234082286800114676155629573788281564952280840082989532667482732186681312331867460915196572095908213037185742060383245758766234854374638030068296196870368428944605755093058688430693501457600659666131091763909962488005593171492912972456629993606189642177849958414630783131819261013086122280561837411302275916906405509682538988508275767152519333419860352442809562459552258492373408426124415610341321472565128936905524451431199126517386138702698091580050658189316207623958332030476536231551283591947077445508811697966237618902121043727017723351125934591833530183304973601522528402946798399891057106405086137244609623542331424439647887642347204315223201185588691376323896007710797346398928751264979800635371860918069347575395878267555901349180284089124228579845630398685033655038173102198706075361041447233173002763743827616505585452560959308123652215900158400345026886081666556793950762633820683060559046083905554651019835600563778045601217590688697267785534445042267381536997049673140757337805770990129890109627601290993908367956672320067949927166551304159486359097145072672466677828735781892996896408992789932633302423305827622164944726902484670546865442934723662787494600818937134304993972797392162867280932404465529229721209476929889129235319438608177425330227594360481051499943955895827057833651913774070957558949740958644490084407081078794043106762634939189780491692553832336285921632758070595606482632116014473901217594896905374654056939022650043687951911634864868056538996281004216929193344798966698778301335496941690078875227165291534035018074101751262192647190697756994600136344829932669992625345220420637360698501321587045152042874576582270492955596348936479912566176616877482988340946651598642491663343369599661321331160633896687730097491688216529420074426147763875089982945857749551496047437642889133337736695385962935636876298942975183427726187954213722467751780191611240977018473206268661364286662367440737908274404968121296915837182788420576634203315330079761784299567742023336918232521520181923384249379078560051016372292432450075307804626139764184911836939956725515549053281998614108826660709064284108284356080698331757231454329960958632967998888579494862733001155749691062862702616408929005061567793297225968093474949532530556300087834756430424437362286917613372724362512651923046286044177782036793463910325984147243500677142367249109100127342262740661032938642105436326725965897428015474437515317145561230688023363506128460959525791059497029906406966572165808281872007034905682539988877425402163049153036786393244467800646228311777358026613509025715124975957220951520559110328184949663307729872978211958116257391460932277181810093852206573402049381773798717071350208880829722817841119331788971361608250999453158790428698205777711145067768617750814144486684886682616626314571413512109667507913502852612382946702756673204188636316253513440173964723267249778335965796205640479165475662133388437376737752282310823934002137250214320428776053285642609081221819731708985640302662380017542208015104311037084302568797069846499019284963623665805170082146641532389346475473159162182946176900337841207993802555347597160623083257672866270389423771457429286285568914809432522863920115739772889229542637375500406402584205609017883797247436301814911089664636406226764556727095957490998413124378232534815147393315682688619844017909056500355280956924114742983982749033689040443743776742447121147069614507156611117780719426347216989627034331927206955877649124408546257349482825208577745688984610025423049775546339169188090229211587794984927811028396455773529451723107831251601597641135898993016651398732430682293420270384869409002741597648124472969724879015743025148150463458760460316234267040535721267661476603680802591526229421076291719813535106759218991588265112431717869508236709043374591606188697224462082561110748301471863856850514043550811588032151693795670238760615572590473711319404684074485699887786541934342557687411622652287623300077458339211844354586444516908670191135642180265261541474238262898161035512378291229045010873027580317098175346586053469782378809035387278522149165273058547193697511474020204201864068867649011950858139164892538488800606583299556335369739958012268152798254492755916394923155520148407497025299887730453035886862238109886994411317132776039502916166700855594332191755865015173133328753119460655675483241044204436722509058751158847324373833462399673838619310641956953195246691623273567571357783238836808418710108363589722011797582007732213916456711934557955480473307615676143151120578708295133029704021436402944161578151832850276254270102934079435963846987568359062631475839641061244169663449004177089324625230530017902557341646699577891241704516129480279427011640647567257869477350487139870925291634635297519871575937620407645729118225964905369029241490063192483769330802239089764986463136787459453113825829307372234278073352783123053208854935274997144140672833574439526073705110944270581853549251351536063204852245916475651335595718166505436869348769497358528202429621097690149345328939650779652717415574498654751312187123819442821687814229966315780739716999047732673085293116766255313688726266722219741598220038619746854299233034331205088586461168290927767615350053131628820606598906064732676104026884647083971686909493204342547246215904053110368352147923218967205583370296411374243785983244068783397977786030159331189639957647154527551597708341973169486906249616069418981004403535128713333642991869201329997291761793018324022528441875999521705936223129826010094347436991813123779099298699092083967979924314808990080184116663597922296810352159106730444942733449166647675612860612199726250255779121267044339265068286876460664688610147886213840089981530261974201449567760411280245900709284305778650490893450901220318496294543643069725703488942622634251447273847522765317755889759850873283044921096330168837713044725657190829833738478968460781875602991902798394053551416423942576200775696321643202279842831215670941036008470631552898667323032110533619410395265982994912467881383674815744041602399833666140630557263953044728890809635925861772241551153395744898343122485020501889790977824384277822293985126746360396379671908002824277929920352607375101316650356254987976036443856734319849950917216394431798705462490997975852271994447870900539664789257759194412388380478543917324395502827974375157460482042860939001061497237652081471339089354943597754970012466397340733505106922090626931721491011152927162958962561394776324130932241504790003140036868744946766682320195944331123582363138747064765661041001759347292725947310840586201560976606442752678732799321101065324165229455562223183679941728449110540303303007472264177793065648027242502085780076664241593696016454650332050562791770800913795677559854069868920395093436340771932882871369265283114506722905410162241950449727258243783258643608134140162984100122351454133989841552980016995125502854680904842655277348822537742752470937988474506319983265906955774145538162882556866848440560473368107602567701034908204249495437364483293758323427860997571835550815620861416684221982647123916508614587179929132821339403791252131901575829699407648818640507680355534344332056620228039876205195586898433703009197660451636259895762353156564399318439266069254698653678914635289229676107186141101874674838662889779526036243120448778379821071015226818988876202913931878116943717392297381306658936974594602890435520791168579870638349575709535182119788510782681946142293218182537254753014713573539355225837926031477450360413238760447419211922824150743915691825726905795457984789033536429830922342976017604505626839141470245619269995308461490300160615597059807655819857864495326731632880866320638718869463356525603964317295194128315958578456206367718814151497517253190077849618829426736311216278287130959709845276440917822472781391349415128991000949512994908453013166739451774922917133204010939658972795660524943548596783116703770721012375400576442624463927037449183871534911805889075214596354756702562230300146799943913125844319486271702933877520078271709770520935811879575837984651726329786446560810718650332019801663235107321930936688606300528180280550295948711868424512049162425366586488279446266673513669679100263312422027511397545764987605367128538957583268770325288158278351181895936477745996191237454977492864018133027148759495688894229489560527634474474728790030127970927000577694120481886564013116589040330318391795159046482238141015609406075704489827285075668835855479705626536455097200220378155186918293689301832187487883506959149521927037287177505374350139183597640175833716963982494139952685427291897425297177223411946497744316149214148209463984393147483886645667140690538792027627791215517220816565477634383789457884354964981302334012281779330246114876283196103068680162689390440726809143711510135521876998395952242132520854272882049136449162860246636950163038102827485685470764890549103649697114895926119822743391573838586691100307024740127950823322385933431293353145083134302322148697646594676640186926563903319155658878722489833130613574200194166251216363279359507281400733378789281274628715819789629157566368683586374227154387993341655748704576289586459135261996336966360158879768974952548130767690613888596993893603208100754592309262744909377097943522253196357206244392487011721353311137734886276559045776484205331012914770629230800601510670312034786007310701979263750026271290945503614939206813528168565874012956711112923521357769709650859227065436132492441021615816405331014385079242925593212727806046967415375531536662221861287366128803821250100928421146275449532289742487680324415615279758306956594762689345024422506953550988231948253820260637860611814477638149538292667775167629639891588673014817073328720758971337020185666204247307212183361573539765123972478231866444244439920350855562531169398997313826028517491598474229896430927100282837316378806309609860927478810319254565883687741591057578330203889012289498579210930708652843966674782953630756280592761039597669306034986807013064708013130297868000274847369246799033789344233438938291375483942462688284578627681114255271019692110597512621780407615525154039994243501455162667318659112562473758429669320431373213560342276300970468680402894800904253576222701524549917385006528762820828449472328977462214065684862977291345480663160344698259473577756305161556149487821328470322429489287948669443396329446179766828458291011810070347351794878011792239881491443978751347416248757390956131537204137004552168039868837140816023357994441560694108878726382130203389710037999510163359707666133943786454999202489751232498511053555325536972603768068404310303698476241032751446805984827498335181644093644074261063834308132868218387069016702453706462158212408012050542809081168213175594139955295404633785059615268116660070670751168099931032327219170522352786865272531237445653984237148071312699080214981427109079845649623947931036325039327156902144853639395355709963926134137063552836940798556916758619267618610222069108820950031759062555587990441481343936167786985275424290842639523993715657554517489627852006225600156678952659120906383183733624238599883438538246942596642958332419075293422749951260343242336744188339430673028766543573852695414513693331050265357683228467660965203688702797397783703507037179625457424457540511632177245547980810670980551758509522198876192028130775171159275150821763117287682859364356657612568114511941704004074901284138983731425343967182668121874023334103122532790642753458607039927708231669897546550786465553586415952874112679449804750801075495712707214699352833759540606895772497915775300689129623093200957614869223108910285486100544728091014653095029765001088973805056241113002771627497879606680109858536225503750364595856078819153056824082321057347619774473755435743631182770478556782075473579174512845281289292330196036200219684407510774099106725298902052208674761419865040231024915288288794909975168437028398845368847825205588960859789486199122722724421002654252422736191705601121984818772651668509852998652084745317353755918235912710577773662055074094820648594081815936947902641524291841224215788912081919299618827756099858603566363590692524699141846785263887774414791654570233714794731702674994601342164258606675957781997187177174419900380894934635513319337614471585726030768965059911911364174122848293608350106957990590010556078315437482328687309730501118996444126520849077460221767898821084675909397343078595196830860621613386885708807781679573376041055744483288222323664778071123967732784712236445013837985497918474878178884631611702428454869727327382990395156330036892851021022584031510497637309377918591242367458023873834151501747850993165223310783761589787603541568465511243286662779528617187021986687227292836154676908686544165933530621703037910486983730769675638935152947050213275444699160318570518566410715048741039655311800328610587807806408242273214247480622931327200997910193924550821938190185273983662182931963025171334533608122144253415905128152062178405556212515988393457992369179425616070271275653058030120653918615115696718118602248279774570491534667497769198703178848682987753200799929361656227696389600568825302177499805100071096252396645456284883279675289376827252898476956376827667969895885428443925877318142324051542226246334483164878846892170739569974966504614876708037908112728395306257010464131810491183848284720003953442943691874184469272476571611895157372963212056186980344094804523229301513786612274046148381082759235117435509823076142384448924662560807448715479943329247330348274229419282399076979847113081473396574225950314861834684159353973649163583813129702451147347425643288085430116281607121217011953438401679412678241519177063448303448386748339869895538833786237358868375355810214007324525261399769740302002017735937234533933924296046376740229999171732956414513584961154858727151106799797569572119179673125888012335949214521267307685077846602102572631180678071239941658504144443519162182068327074764744354752436350217713872916824981415374479921303526320566427402584542446478297252983763980370733139337346854719076214676155475869445899194079404772861131259244703581045846657378328562479190131465025218732081185977272136012498056435456272517447720722904223688503062130908410866299244818755487873723144649774978537547386867082092651469601810020953918994090584635929271095288791827205531350231211272389589101235291500237356245898696063962235818582350555781393630406754328986046474480819713219966887577253260073690758010257109321518867142884969667449892108788158254419622850310213702196194318775797121574020768184811043889444983310275935126631974084473788503195422516386562241316970493699475148974262050588623493599682356671879651710526696360811316229607292935723686697747970439141781048599125817227778631440794599453740573693242540048907387847615048986584750036471730781444404273566948132501019117173216987848763284388579271801945262005928601325652587666963010898070065878428936802553951360485023110673142238807882932955684324872467769270854229478469054890630746439373153140944713418714095204673390871066270070295902951993344591891719147730199629645260648267080892477493955472406855811308946725453656302387478684836005389863988744348687907509404521742211755251387904885139206014658844562166231178715472302482980364785136265962855026292120961088863369754768763062562805763249936035338848829865312368389688546235160776943548093371491745512650364919063542832942084055532083853782050100287182249502591763499572217198518163368051251627189918839233419768244956936345701972092309191811281161577772280377119709748691374225925389406236727492227497008101954596576286080797737262563926840434732833847856169852567095892447252782138377387126306527077795013428447523942955383870620717760573019501040037180338731347962215258374823287391488340199511705928223539352260599769318038756314601236075503606883413663576974012305195315690250236225617932175789709107987116150563807638109663325801269362009415012637739935450624084013940768970550105056373068818579016040375040309093830918235449260133552510080994727946904973729379443993850702723063402602692830977505720150053421231816825093285516342734507629594628627553707806052881272833781335572463503248244587713285475820509374660248720062424752904089154136161242074059561401750627474427845125871860921667604915782720059496292554291425365060479536020572305552911941436117013403815523460060321861542737030807728486538776331026648050287864379708795998368832093637996884514205817541576752315668410900995685252566564161048426631079484400005849411493174853393480378708263377528062961472404350493616047874332799352269446584878302046868827541541222441115695692301955319190402761634194654865722368824529702872069965095339954869961176318195042866841131991738440235456298287391811340692790177693711518817189894376290332650095896507748750861095129901660379063936089036621437400138360263418081310852518047028151749041329199916927650831297834523592162566119113976950374095555803147803474014668913249719251157360966696428342183739268268187065079357451282741215093009789193780506013041526445859288635166058354557339126807223094789956706041739282404902895157344899148934059576315179056517975276631199490539889020482869302949787152366555271709580420606308989222235960557438048862707071840512634765662670307902578425546537305026233131844993807878703201086707608440811021399393535669559080372042417935411874005687464397961590281894765411388840650875459989200321864790896939656686965208200577146578548385305293822613131457347094055159234843661872644018654185488262378490106362431288132705684347646799209752245316303380196408456452880680452452445145150238963931302458439285669570402444844588915936113114217360569509438951026638353925707465909619688626941148908562395262015989882083532082605264381177500307938083282822764734068761743837853200625251046348850827297665945864201279730993089597605368951573097771157589406441316545853419134141255684261457740416512881203765727715247198018052902756746788717299947103687669533572662681214869197529574422592670403499532519709014824593961691254189922250817831275567718909737893555593722785080952886751076647766812813543536322825696769663461510875615486869761708711913967955072165680829165103010977753833195805942744705748045750432195644167491478952103390626219177270008587008492646046593842701730357311729181364161626340827407903397373271537074630517477437574397114153622017193674349952262249839186267297442415328598062875687379355644451537012759914797653609607598773967428335661934269923337673554239472867029720432215633297168057599170375952788623260927573584819596066820209557773807085731671729220551341086832958744497521293413025743289221069673854657375818462805653411333788042612947884801002979613978816928891652353381461889649527193860868166509958604764693662490041275959402723531684712860589083897662122037397530507157800899951457435213662306124128722162502250667967716753783304972015063271340658579754677862711445143023663742041595369126726499313581047437910491709371854863917464404060878887303627778217029359136100755363382574205300295804892892015108984582910122171306239159986752090173782619952995672916994470362958190897330679742876324315633139834418363321098780545227964170784759678388180239049487212868971191248953049654224855653848021463857314408192951566628609720035463051381392364344324128609539893370547009071958515626614247686814365227189647765628501145031337708233207449357034676881647033235882348938177239901810236198402232981414244653056736815667838873042378866280130598348755648236350016632900543906310144033957594450459688817053509864248692157072569123634758738744621758498767940783614364087499504406030945978189473964713920733569611686509704677482024338359509224340296548644669246614001437823385035374004333915511462364752072528663758886048573170976201424085920765011001338718942496944058473841535488494576841797686283370520881106280502867741691504019196435651165373651593921985721204844575756594063722523386639277985446488697683872199029157233248724622230858202227563630412083854545419417669594620140616172959434111842098443527149848395876156028206908467717329469155527242330008284163826711007822727196474171411150279752371816867904442561499874340503870161039497365292877379924580970322216286340038497347820310456729346784178886235501403365299396608019871881040812137855437570580081750459630781975301575437917919393349325031010481192947254464002733952123642040454345030121523155651860735560819131166600432676799012936960096180783090458779758950255380267779119007489501740740780724147454487500865636526591548541749548725779204806248548382375082737175380166331003030572695770173559758370419906607262006379069733838527093020058735255986768108658294464753040575058379469351723072175276864936808815513238075319112887169740486274585272608069253382955928531541478257802509134014216277236748538575598170543719650161999223886850390410572428624303362330608338602701847260112999042482814377826803366362730055239362252560440718655906226651427797157057976695757750275495976871578122728538884787878101440949901818029758062329115548472055090742538326009837344259715832689620521467924123147296857441065508374556810652011929471266493616016246855682503597797229722637631639024255242383794814480940290465861357447725395371680421660678237781460328739790859752645102260200371651067877333459730999325072330318620486557291907194877109607184987623848153631778709467167601186370939137024311929462713085465248699723483020952967184396970874624491702250396095481915992606031937367920577313944346766671373768391056560688886345235557700009199951983353156087691025259092691089330061948066162574167138884664940823935033360705350488708757879731203340228482716595021382888377345544364451936480216723292175804235454855604640709699603781137180524749954812783621635651005466198476080538733218772833902001787181283713485099101193992890757328196441665283593463078984029136004535317842211604103740426400076582655078490748137212997973920887552921674181991976758147977130123235175245883348056937154222167124849806485072240685900667597511277380058323213537008022196993793188274184997605201138453874897977558702004327674936604832805229293159775105838927083129112860129429538315880521677872165057403037781594625585396660805319035537756525200911537686701208162243724158308588849342887922559197011521077333490655250916884295435733364307502901490921573391197275920586847928399726526448580105920958041543627698694994700284143766779707614490509764407170685248296695132127163698576287301191535761916670238370042948073058291195989918110696546500878299379613622895692380898071267588169943915027534866079127242351234006053833387913123614592604690151933233052323514919185187177110469998102229664554708541634092935551146508035836503547762119632949199941458772662600835413643758919644507202711441728925262052090328259312606910090024486023231592478279051187435038355359745129098514572106052087694900483611269101232461998898599781057908670098317725297509549268966154958048539596221471404460221622174064699884478709716597850017489891693613971125105075641785038270652704979770830074592925228032486980885471917408475999475937829690880560086005297590548973652550284631209207302899945307524939325387579380555993720463654492118375759259285771950607818682986046855679833198378630402658539506105953122235032225612863929864055106532946248142766516540509107622304423132338608462119002421315571370783635275177637722469102939545499341934273034734002658987481855007243264170072472896663181392497974368413293492073248649875345808791715832310099446505269225943396537757314289009811552426297708303967527872534760734457211799319563394323513731373770138479093674533673460515426846563521806621169572707210593683648562351512930382944412353133600942098347814142972374365787119118874293665161309920690894485298923256694661430201216193852579951913380384118619389236779986849324697884365462269971561102701997426361659295005674940653398737403388147358242532247588926743853780989861781580624998576996188959842158594482403127951197983350675578966074513766089331775025950633016657035097213435222523769481316683082929206391231137507920401887113895984242762810487479944576336815527736723734053995508859132241569452093639461192774609816629071955633330318964102729304482767637745475383940050775630105121375747589465748631705282692920447978930053699441549462911636979987422492703036780074995244600192527942904514054340496225220706772417414459012775849304384419169471824463589453593939083078952337880389543389035922298899744450629858915449681343902883083036091668384000369513293418160373080423757387071732456232293042410972018986045300317389962055357812854441828235506179232044089987741290618997312871542163821646827798635420026912281461597428051200519291779221033655399002489156374867036994361212019933170581508488045808028330564633328855952579588523340476137457945343567682090928879394222868047782548540434679046450577120349850427778626677068882104274754870852584183136555944412062419547780690567308818788094917703897813991066241291085460711296497496153293428818024111921482687989241787135358182176206406195177133405387049401681725712098604187636798291552622105328200847751673639162249420636920161016181878790171633393490222203157046495892915660111820780330597206469937095868562677292011043899000595745476574496285533084757766241675081822590306828727506987848825721700842158530486925831755822546831090486918277974113104892913716636781297555208343192149972077464494451139109535345138892669390354333726791851497108660607134923291714295782078096333111287299809422043134285312220555323047463532150324722039448068214184338026557787770430331339161242766255908014112672276397388071350929480165724265737803671936579619809240561779486152286221760799742806107862460685336064007083970711459274233437403727374852715884964504424203882700398592687187852482128673983534052892896389464893913128980111952245710916440143930474257190335079824129951176476948514131815082633586738869611425332384486413591845479351274064862733801762071501040633426243838619595191775834034308744212950952117519032259537189931950085566945149777061647752985379631778891628098182218479349358008726791798662095282388987638060902226721285348319317045372543422203574608825006836342018290002438468262630397781184871919736891571620781247225680258617614464823051172199573937198922224913041130838543246836293647746548096269491164956078096858308067229759168342890235158799056981740382471217480288150528150397764681006610862782811944654397622813320444772383226041640248238079647539645234625830725711759598848750796298979125520953369584198936877186947126604497187997327373491893245015932454186219729259564329455131350200955933765328647961863866281243009219557257762179639452769432817806571834202994652057017940680873886674438425503608032048606912448291709248147871986757574183815474446428294900234455804196458392947387640106311165582157683137313616226299832871546025519709507682873277232202944388929510321863133652639124594630414634894189731759013884725807128078097605150396040438837482610857549018164123605387489307603403229036959369649294694514257814291520595362718560672586504305103697587264140892791251250124632319375128949864169520197579746546343305725667121795171573631230824010692740119579021377145447117765294956028831540629720568988985876668611843835192607978937730977209706337209396934119442547029441483290598332895331873776755945766108995194504218768229605485089899089345368546035256900847967231897238969758673145644525198692540725327642641175380155641631001265923456419031861689199827378706297400815135014671146021231597482856224308710885989919055173857907826645815080230822120619972302491057809957896245297610422626848085371677637152355186958833733482602206856530204771860522523250165381506144416476815013957511012869624651214126280894145157569047479175182531915536425104817394584964358913800961834858608864398844212985777268710547912355123750283373020162473095947612271389882054366161295662458325342675520655118332156465963273125982331622965896095534354956141718624126781871894688666519268360515436722888070314889636835645390280620132789955595931232734809909849512032725806140560574435631010200473400823323345313206255739646087515472452885399417192316954006643478902839731229608214486523986267637178428140354859462054305122891398770515106964824290505167086688126723120149692447099193452230520327443007676497315894771714368966384622628668978716909261187812553861271252123088640758669843061533370817548460101541493356623977493620521811176341758421690263254811682023109616919219202286968245072150597182115028834103131575642194014578878727971764110656283779608671347117780322440251253735987500965135217548470611148517998024718823732173032798625560841813447558810835371750906208384956755303849939389235710199636513419249256875462707073406590960574554641251446206542917207318641479494627005420571420246216311504229196471301880607050652699144511601429363159652782454334709454185941611144118579099688672078549979474686778714088366683040431470694803964226218711236110921749284785436034805594327579516473619058262806661886719108024163651804902451788960132554938649289030243202812567099164367382512988234865150269257448093686855504681983217536990204726999829785045007841001173738549486770025206884212953225981655245375140364250030177638168811985544862498383682810301740112048851299177471854619174979370637733425893120298959218457070497398730814851415100426903508492066736877991443254620974439962238587272173859021748093817449429311903298996733204995012076088462959915772853232042176846338563113164478755605505381440490233796049294967369807711838316497303944722725636665753994229170307133260072920720131067078570215314886181824658576453935514087246458126880542460403341383381714520227684422747494782820981139839933978232051280997699499414147039227887346295900565425739046000573445552868823251626884483017084084141703800569198012653021969251563956835481180370248600160332416531355644702166965153761053036823532159916011980536156243744308048915490876145930632807054397737580173517852984050026391851658883457796096215577053517442885279755739267142679886594528783974422559679523314850167493992082457278902018489897335568632517494207046137257246355116863924102654476207075220512235305569238425422624690828200752025938301926178159943902391321567369881273725912131260531307760620221294498293618775697846324170866259834476470680425146012568687944244551577910882167023846785616126726429984072494384601025198671891738508891137853986847619575119874056033680193415877052764968095215865014384514298766607234765848651512911032427948808166871017285736003529700770099266867338305120173374983162463189339020271127804589754245018149049002845063442425037860695339693977206978606737037290567436210685843432814648400011204149556683635468312838837668593168411671683947909993172185682718573847286539575445674413952990383223613992898530886185388351326456719293286601527819908125367719850125932989944617794141102567294787965690363235396360176317717043773507766879411929585867771049681115422163202234770556017412046843879933592670338923451782769178962785076545158483566701678572708095623942517978018102880056073443364205111448249566286118795044027232047894869579167017112948945893404607746719909160553338456175776562448181039818443220489696783070500044947023950014271488780257274319534994070014655798486696694058999476765396450372101369772051372485000935180102865799393917599308077239783570331207435008190024293497340652905541009708540375695115084685918031570315568149727088626291228253739031079218123478547246625904527114303408313456113671970897712919480965424086797448704828737752564432332112912549926739244767566661254078915486077795101461185142458943589592884712126063677478829250546728811959990331597058962217104303932335382127275525648133029274163512805432250868766744852351803831775650910663330618800284465427671284802543478046300617094578127247319971235166711955229491650333983086906532798472546444796043349133509129826470120065283143571696125905173620333386754874512516058214867513018196725553741763379266784031929722157990077960283055264034242078431815897194961972482396640874990674738616671975492710796600128245770023998114418830666508099393199907535195716458813853713939200483651929762430263315328198224182677334844135103647952522124560374147701001271830038251557348407138321287944435395010589780557081173146777336708543139508100471988599432245686887729981540008497194863452129812529330760628745251310555541972011015004595012762012754476893619843184442077123308122584356711675318081989944139703069067339844917874558092541926972821608812983234938472791270257854649116768746028280794588812649606973400832682439188937429126836807580850356581087986663300705021761582182525155795974766146578843688827148986802546533684287168758459842588442757468978609901185018282639745288735277908617543426159677595054771047043239206687343396235768832216513018385393923393478806820246945485800936144031343944789992606120228583519707536664831159620224857470864960926977975035476214569970580538315984882441577585811642204978049738623363050713060135098470494506707968965950076949616467109245614162728245733413700143436377278573362254578245737244380575723012736210647128261416799186757648911265776373443950617695208857076894486148922080642026680646610144526604524754823648544536288449824771509370055246723161804296596281783818743464903694255654507227550962801673025684203144315894340246549100313078907290217587743387822991662905807832240766944483447147689221159997355950858704157498330199462855466366137854658691985491791689801671055071418082695421881274656212020219713764955230819259347793607813230198578629279334834753722104911740986769263917210518024088821037062707035406249875616764695831751185041718239826463647582855791314837289678733190549390190342590825829957465520349671638585386910067755583099607372656526296852719171793589007684200755519488021033992456426893605243224011337995167987429374759850338207877708645388272432693196392466990124548351993268771390529366242991613629237090500063004670371021299371752986085917851644811661351893689575139669232419715002586020240423466977877327772781747404359811610107063426347512229896998743271886195350677878263719641309033530698191797440121508985668022740587144595910565735602996036812128281298537831717594799296895754926734501533024793568237743138506587078073274285703930806834655014559296129413409563904081921338396991542331442921143135572890015473264109510316617082890052373830507990550749129713392253143376195123037265514032295476323900329043462473451369442742425790246731767480196104375530582184800308886709755803002039447985922595121101429004500748202393051418707158205817043156434616133952086218423856570150207608879829661377788296110455381099038892957487196052161648636719586961957006838353380434181642509472180085996176829531976863158823244729869246000629863506492386739257825380279003443657924762723248835847274668935271673044703313958408461557156328534228619458535622344035359028086922201969969006843220032771519713916275284197508236651534896955979362751357418779258553235166156383822224812645003639651842582732452546432542981635927092759379391768727398417626061363403825947730802176367390332316925076208146502230478486331093682100744751802524451776219830289912743195549258674716898213132458546322202270379370131490407074603433326585528059478666762245654476022525669294729699336957147570426621182719124194522517564151947705286898179509259984240573774213864623344167265802555532369432283368963055713782563573971086472690760723867414248742251585580345328305550532513123284815611400340209908692984107496221811565189706847830847342794760083998624491374057644770509069509877482595285442455039728349455401332353929014849402500071893156266190083772197084881091590335906294829891722285221943444227272212366597485387667200714673106236869985960083283102939687841878369043614701257673836738196395164335731057355456852657166823492893402182113462217271097701495252447573398854626931644714363842966256002029838487422171247426927604462673677056207514692252449154297345393188811408608896250688869670287585405021173385749708879896916090256771870158528758603444842459813903353315306860286169348634493501419312276497754814769101897355159080600261070803140209015461958675485906762243887798245564940705000930480675393838626930040530219529665008898856551022360994196587330887364764763279405368774482970941135817071754470233371606634586397223965902505875436620060810013665566343874858765014695519175786712338510023011975274004259083747993947832914253600365340724695227011342792442426526228446917338968434297314241913770803637907823264031022637321208398663162814425755789106869200042651741705094586288545256619888646008669243050446748169514403670617444977951089949369158457085747085769929994114986044191500543289113230110979533482996982065216218490606145588915075233695979363076917239844999310225364781543425860718095952830033480748178653330191882445458856747808392875639488468288070214239773585105995276636740905808436003621909470111816728184928797055514275142448037547754368397357758389939813950718954059201718834729804845943767497393606651842589206686621245280162708307499443916236527681743193120251210563212424879764808225990973875919319098203001261088984918116198880025916398962304544099615391703641426328319273165065246761488018762158824164546833703436055685900655980460130019623244778748602915257648196050128527735992356101421176428271270359976731947223811658354288678718817252503929616744010133410218083573758597806854893080073591204632677169085263414132866510006236481032203515505080711309141204623548019444278988370281522125353284540368536408036445065149268303862295307277969095368947592130440485568190592451155821553431125782230500117212040295528523951933655451311919690867866838740173431390992777841476837291382315035043043828342807626547967970992210113759681829463065376932187339997321930856150041264268406529970954108482226556548387118999583170934698751935855261223222354003066499439021616869369595383418691039673811303948895818169643047723871369558395630339603544735495941031694377103187729628622749310437078351883230069946680674267233291211400954290336100091267465728953841956930220413625656313400510077076838889317092760892174527085599883003039246263574198833817324423141598664264226902449448069871620505992547127643243051361325707810913116271337857219773188114652432240494586252768928533757693724693116219382334579254075284969434912615853406002476136153441226958756531240859443452313333763717045786205232336688485350297682083768755459495474218853722547369956714624695178325315301978642548939448678203229125270979508831508424309211802393577220959879332999456520425795369210913569935802684906716009869203291296721224310128285617727859639757522742494986835432044138792555735848766465277667146892941114873085271275204538428658652624163489997911790262858706965535769176932934797679981744403577746736013280649121524331959570818946428059699402200974164615525977924282078324062475598029222476722680004947306321595148458490630605444935544115114472195082650723085059796647172215106266561511155169074114126868092935138769951760838898466255946739943608730235043980687467621257670753814070096909341199165590554415707662177732620366849796682638131292521524188350295583998232312590268135852603392303843688426674960087344553172815010315335289365950935902039669327720540737957676900768914295199501658964379645704773802853383483390731170925649217206243207197737344299122875972848206421355183102748047280742845308179471591575535198264672712029603441330242859708048765974997762449681659831996380623555643794342298351926670196851833326525282701151569709925076343541959433163955895428239803764272781657393060192076372157903012611504244518067662627538281198886216260105817943102604039090923757437030747936687384344057442350135821244222507490648809598421988116476714624094455982549434628045543563454041858132362740470861931057413953356028941497993846880288677377621897100306671629388539433431274343692069753031776717262656309121904823166252867895189929821433010735352081814698940916048469871727854736787518592094053934971510849756149051333193483574365231411098732233092087216050133372567273848657515733479143157288371910302860772839813390663560864137495583831089806238110647096902692568621943832243306494994541509052813931202755806514782865644439059105486179364406080673674440273432425531906945380359231729947146990883042314242342652858823757106542202862276486578816449326077811724600150379128507627917333679343761063617834227399341075234308431223807874043535997696253862862434774784053468994805925115130266042997577347449557987755719132347267207246148206359094809886555772027364610056130365025602038144652946921003161559870864823042426327272839740904404613739384045730797708133163318310315243118421859439610947166126667049599482079210267242770659136200389185286868364595339447292005725906184343588077896801463617182588717219775882889965779588132160040685341296346332794209056726921078853139427390938217618075843215741527762544993276054081343860109996511502720084119091004240710716188070082101630305982514109028617710608055479719920905147198659761168527162708602195268244153944820723858212950176228298729751635667022463650463805628385326232392563827948830069139518994736685026695916976785138214285171147574822908649293963687146853349281310353211011497655229170582333363544239548322361020657053113984954611399848275817782767122213350028511746514315986822220909394738974507204026950783201626373221697596038104724703650309340916550448256090918369408929897680976246817530226754267904915452672314345138171285119093842689789681416565399541636657557679393937540923027697084447340523562213534604831780451337452217562323389646722762350768826110050450967504421446732780430905615948110069201442710081307385130756046586475512559286247777729766806920609232935402538947000793744018846875911165290913568487504962236658470431536880554970398831781101794990374280977620302245652162983269852500668969877653315615842889325187726038120688386803773393883850302901465252987991931803284406733482118306259937910850577126506480306663281893045161684144418154958379729188152124401057917750226477618712888302078646583978768235407366170646073817260102453718054185896130773713157629142386479856404237028392114127361384878317991077829902920888144694421932620955782009923724965327670160177742990058094046757618187626311130817526420411429658743216875530183388203335848971776875305337151368577882780899909186324015550524612019735378135573410389297965863889871383548973807139321909395278162739904669446408074441536671016752979457240673603469361931054895264869513288600648418326656442149666048847345058856623774709433001336099533051757951665426768330356912093475990475258292202665454472343347471469220086841861722646261339082046510161618894163638443888752685797991240347729867390851080285948830484778121069605835940831265872703507452351793614670362447597907100440094638441966256197988494782164807995425845611328273095276487824528880313646712961479967313169037708937284186762987074699131537716269022423936445996821981605802192944407623083846716913412864266485162135871325271244157721865271476769622170113251539699917944149743660184935364792197408331185010258159922998818600973757387235670229341307853897196114332373639031162737303495070421964452568969264522938470842811799251076216865273910246191382286938804119382546404554232131329587463765536676959953697282075614878708426420860140455375314094755308111779118208428668651797515148757111444179877406823411350556541259489343653731667525521158112927115756733660328849826198347752578863938764409472347298419677332326149816623982106172160999348315376942730460674688549146102398548535107851560037726982235054696673400793853840717128393626280868333831656433208136242361993726282501665963586014090745622579092390550119676198431052654496513911977912897878499182667887126207881363286060414738311798432280157776044416536985298309943565332454304217593308111153919217097005538800660581737196846478236567984470636149318269940548019581638626884953424616783509399184362420298317772751242134246280692400734021523399839327784115478653726842500269779240387944425831863855819798629317730093271623408767046200407114581858002551413446016032000929810960092941713396043822132206392622516196634648770559356152001173593989912836427795321194545180124520756256309168684462913187545506949168782391696239662400849483002657525922856646878362823518373238971914577167429955774032851695242526840313615749004685244163506250470051140603537323627869889483290834250042640129007310714215255147972107605809824295942644626962607654871049166840877120035427404021585787616466728815180209003797788141902390593613712731436736831326269620063402971487097410994695168768600341164916867021671208238572557319835147689020303495864877210466037785608165082548390341869396553309316576542755480965929006321676931376056773022736320760492433354666303377214964428778964425341676234253969836437291561358887791802187025519199030870511466517098817444589555606786928243062210939165120577140314651920026645044168641621982402942716724437163393758238483229477891610310144393931162761190487658352866616643595656067549706838698831402573547344728583402672329665817583164821711091740632181102610029716796773403139323721411663943727353211827655671978135529470352369442672236067681595555321010844162953630446834897038079028153850229955183009290909619804551121562061021766046293384108150703674504009965665664378489010651532730058736579153033937999805010107035116995551831495247496026295542102865399588771069517096269552177903610658961626399275737760223573102368573309514450400457492559051774711419545074305458704128765626281658327134606226696132902163520683774387043901024048034755973544333888758167685174318360480890828015816788468179663965601115279557427979489383238994883555443757443405258825771188188455316682155628884878283069947648217580063551396234999186754914284811869275121282642930001541375638231421478428047131908673198502632191165366333686396944600732280965579135896030976574095467432507579728669773135612685655759499717559788497190440922248269092353527714333293518753923264048921569659027358176556239093322985566825852790866413888898115560896579516023416397493409263102941769282581110134566281112815438504941573949782092146054495444177248962636060576300817938478692639365255127708181383308047711657967001724476861599643695560298001593216260212577296984385928261292538395009199725001857339447643346584538069345734761634721404633731184935601284787823996532583682191241782790321150604313628149983244094589555354356436199113311061198349356043874920913997780800686561801927781538001985311944528824093326039184035145934548741503694492956901801504330466201752058984393940272282497511968661264252088248055815961510387862042122173292367017790849762912780543341054136903438906109438389133784356638873085500861509864766773958164192635881567553878581868856513821457976060352664790669652543787704128350769290572216078560985390939692278501146950503747518481142881465411505926035943977284039079563448563410491768821655368331017299191494067607841838989589697379239212107169795330449826271408500561075409543792854763556183881299372636604106810694173875687840201050093147072288669110992521298429682992398296117553246705683791185065387817563046107046784770705779559704047185251061512133361625172235219659932689722024887275706814753284982127367592191437643678905335647701671994766108221925210896771382326503939058643585583142109785619637381988008213226254882134548657016565641388376636439531585155142932810540174451973044657007621843213939821358413658147653965004298190319004194037456954250981204010678170953961111402088299152425326651867052284999691092255805581655721085485977837086400262469225376671113301252958619587027950355964754588528486474109120040181945422820847436048733785157225588901617809637046269031791705393936880262154855686932291494530515590241416307102090547732731675031408886703396751372834405861824103983673278276955256968089293886239575746031417117642804203191282548865770754402870474034629277192117049468540347525309584768210610181293375348230302737552779751469174965942925472624737190534191078927132129859916890843229979776956159030425726032596176817630139993737353402304435004844419789073824428378707752970584553813281456699126544131928367590114215248114502819912409040237523648997302663956719874149600251827410831975700335095160001461810337414973007024853757048193160119206058896318904759717886390379073994934208023179598395165335209959727864298075205579398761209568305790924653616199561564579599239931158527916804979755940638340914707944754602993392250946348608177253478350787899404796508594695590395831644612353947280189485884466485059700983820061903621663187874021976696377929615857148867061846687228583471972308928828145575613189487868305801115969348371351569948023673495204801959112288066835345627723813779937321891056268250600570318182189796762598497449955327349343474047864156939855176973638674711191438987056812492078916249666716390836333466978712828809410133960004897033482553547816696425667473685287610276595418756740458616927309012540240994038041274159507983390341134887556386893332284262016488172742455930048568093755170459816727531526686015125310869634793710992403963246803836728995681807937283684869510177578137899663638314216107270712905506800449099438828656341361225950320874106623994488095729369094230050001479563388703024684271731132117304953502872329147389534525571921209966199571076386765625473587388132641557480733775944946903764080081543181936186644590519005175244022668140579803871004056055768738222375318001445403994135243964581880522660630137870182599019732286790025670795635100714457035137719988584354479105569297223674206416234677225708693904047184110576246368350859398990034822724564121198576826475592446572702885838047701738306286202258626179451258017672953253229644571917590130505293233943148107265500485231571582878251733970563730299240900513181221470692006387736133305690796303015633371188306969390815827596570807925555813113889024475145404664228073133346557129960190585847847476246899741206583730730661485250210169266350838117978150614810796155433511136479125031618356073380759962161968029574795553384734123981287495159842607328677322588878920590078347207163192680435228336418247030462180316642195978631310684648690405998422383308134733972661206916901250444092037552778016272431141610452182072452067402808300724334291109091875151728638853217777416469001160691179456426473828298172845271379301473690692747986640589349300183767303345448908736774801278642737494399073596029791065650733092117253849444758953977952557056603678655856370413109569369159624412194379455878646159507158297991957178579628113729838296575515680606920456077030852951119771493743837734214291375698394461778907568048992042608588679719641891711969958690696231612647329918532618028521980764105878977514318527868544809125756011477855809044752213005763894737296578989499969900670074815373223146605232620113487063638744322182384800517198471696963933794336608903233457241557797084655339632452431282661420915033870780138733630462749886668120601217486604516596992380038231498362088766569834928136344025046179778055719982737811795869587026093600982216263152306622267760762692763074471792932302565215678005282014199613423938753103357199948509282205453073006431794383901076813304305241519206196819304697008895768432734069453235387528317027606304811997816925928124943946649730263821367310997214245157823617085837108322638465235701215316174466025570993778617639727335951997462038764846083099810865495081960397285297739046756585259566514612975148160421970106958913971946008511936548713688464846678059276845347609094146875309532070680268389951109579843486150005290519372410549219269589173164075795755844345703750518251405702811888970046259357102877487588622062400355853312118904208591461556210931459430804263009665622040749865560479289775091400693686009587411726129868719993410725624736804854276439238171886528547575500381944853872654720404096939406476916154138569342579513514628543212758167573494216457427075905793700785828013930356600449969352395344750127951295431887193526589543589708588483636165315244257884665013693965581316487827547645868049118131751604159932080970835151367833255687106387323435993592853865751489018627088624998012808584261929017515144861857993507296368939907822298320651173378478653849014655184211165673948367158179053058306671437104360382583887222270011141618046321022526575927348503600435921404240189475646454450266812407610190819903432567193229218317751432830053496529351108687365959459366856039412954362320444188517346984702660264196412257870566040265475793425194718508244049511667562006576933152936596501381916468134664538739100373017360087883306090672010322780191751504034756782130797174634969151110215957167782355075054501908562377322550801219456667066555606495354616957446685787737286765624727319931136996598714376785201924815688413940000119239721980890573609931513167728647723868999048256491177806136465836324836095602383772730784493149366079892466327409545296325170526227357523228274384831433635063593718046825306903047966341694320058469246845138128944042899595558189304195084409869756508447979529421199955157685360122995888858340259398202568066941542858874608427502646227323103567437705893344782136540207749730277316554467010165488548432868011406354621801809412622980774936680230448291330787662656283931845554680683150084056205498702767197709624639985935942597912563676551924527616300884242338823045798183767836296043852390117586303719792597360082975122395422103029941302487853097843567820775585263878095228467096889327418453309189393549033107655975780012982000549362620908805821571561723920080689569449583674619166261753220975857118184999793729548630609018410586941064418611758453848374306361378287073017398747000242232565493051105334693845966326326879436884357242408570116599489794989797416466532308313433168244523417009374289869078755908149230343717316337106806827903408641668999019796729011198480008406451586835292795806104073863253311210323938586191322578967217356112365390422037342932685821537085558572754641263354691096661598967813901640945974805246237872430580977112521806068141615817419444074908647603484428422139986099420856507236726788685361570732918880363883382205248091879138099477624625880127886825592701666095809336450815067265218944204908614901901488226835126494214905812001682427549180855677031477353120199687259291942467258352535571044985804983861941419097706891143900023116437003572197534128938011540986914717237160939432091577987395843663205298274383602024332033874433897350372652130469895770947517081289090656259446013047659218186823513816051014747394744068013186129173653955240971071390254938866548517274874484731321498846673279671968105611835244373972329712720016381738254101392160926877839873532755202624629922103435189961227230775835770387928042752469609552928827083525397447572125777889296009565379010694721798112789719655884689888608650549278912239338976499788468546254052075567992509247025310880898186799808018114598910281522293643929915248116215948359869945923191066561979595085693930504522606148066401131908091516745336092142914370998061368944873971742109608959159690692461000568712243537216703923838917109514818175809283265245465981181257364333046796856467417310369596921849218158933800124636354609031505729503833266524006056838246221416725673674427796512051593100089727632914229839237033842141998954905785591661453206890205948138408044249258032219280418988530041278732533496083839453859043490395833369200343801093984451693001818366310996969779667674265464351309407804963087461230345620101348764762673659787357767634752513201669665733503418551643674286063373917280804333837387729141475784653273679346864840157590712746669644313417744227302823255935291909010296531733813163386084728417637603876352299898799399803667095607864722647528230315117880279073456120606048309199924082241184358726289581947544330662144837011013318424844928707321807129702774826233392996706469961235449248868486107753517701470388286422091861455756286182171439487579443168463084524122935917975979060881318642893665318866706649668272498664001830998600136435211542202206472545872747745518086051227093714121247078386286528494762590917178141211298190847090144345726000101696611992474721231175187612696043088582543669676561125842539743414846182818149755184470690232003451071945148062998514732772714331524426015466397538367275319575252173057517869217087562217015777345598686397900052932045059271975363070495520416335098666201774881451948063035045849752932254972674595161689655056787632137729473562865080904061725464831245627682012565072207008056375657270553877870242114610662025923031695432988405568312235052063755550157754763820333442322762795471259797506574552344182896623842781320066282077617490498843282917888234238709675095075936245495649068046459818252544460349097875256805446168030424613947849091884637185065509925091494390516415298343230800132455274168857139647446137535787700620842865449871588425320201090518231634941647678063796561292307349922289188474114600354320474594473377795476444201895269278019141472123266752653120720198816533664381611643827844459909834351320725761844512618783694929055489923645061400289321517933190444377201752710350788052297628434635299886578755963444910330696695053339024177406244584955143437110164291609719786554281396539823105413374160822359066428070264950831655626480451416738023341208889804839677685377500914439375264149954720192872176656180858649613405754346969350738043167708127923566850445096758027593848328652882459926678381164302461184974682912387688738018405823543527869404335268136782638052735956730101857930890333197806873372960690690930008598083182925709406032384438554898301595607964684628770058905400853085276378261027065411397472638670628468126744444531820439179688714524251658858858498268224048422472551773872946779386241332221327687403537719466470612878909340150846208777802086443386259371692178391449173552359702324918877655234523005531690103878908388115135393481599407953365650847851223447959074884707538883911436068581603290977174070850449271506893093842002710353149895211189740117907861396897721132337400689719326076501170784292322815612738409975802908794031910608428766711211358770324635148551232202734222144197632742142912676882431710826652944900937737534870846209408635002614324798134188188133794096214140298926112699434945705836367448723605492930828192804763322739523971761650832273764661761845221766320462742518314923235385266316997798183457318447325100083652271703707143909781403594606995118064701449600645469726172447923481636177389021036676137263438536720987070137300668139960953846217880032016277438514288566142875378842247460282147497638693275496795271980102110158744869041774274602051472594091659406684864408737318325090951705935444210141252082500069260654196962675901818782483047720296703446108176568403426530546914599901756426347626387092263884588303529779647537491850804837873320363068978503347371377135132707023806174424328419173588271286804716525684894774032090021962227098636035833927818321712432310854700213952685453500312344689115057341291219384485693877704802239287047914540613703254033240160571045757770390198540353543826048936657000334102620058541531469343457249060587976520645012791042875132108695577900498457589794379910514592676690339574586646676588326393035883438602703647446373094736021190642680115500843621897120259994712719855382030731940307399364372434796114181175884166461815794402904044289428725989872842591268738697869112252618066309567151238059012060677126098517989430980548139213713024980871066778868831021641406384797020688273417566460219560807825798376952570246578689408804993697769524254592635848782636829268828338853358958507213766734146226675165904778613697614466560899011167504345761844045551184741277650640728328804374469161280950124586556351387805242712116718890720455798505084520728180927688919753137999525349003438626635480122836523257246841810904512892999088970719876504293691295603900151069371670307652780197641280213813508658812183047331444247599188630836272785792766590008529134184256357920118766826857583046523186953128801646611050826848265445761722448550826352233976797569230455684828457033038284427472723462048891588192248188788710166817564634610360131486436851139161838543316254307835200240208629385672231839366981047717533197425960905227932365300000658042027012255394510822418795136526201616119615137475518143360866343946617053804620075832339642933668856854195709249349923352828436194105222166768167907665275234079921696833932691100955448301187534372781090652607965669359990495386591936002585754813140663999718451106193896309018593992329243662021828872204366717173161474203996642339507147269179780762714493766113149868504713830274555800823081180118715977182670310392050833205347697527390895041848171171179735388248438455538592566328426917120744996369479291069808131001607854031299723790867370126564969810588550865481485597432397194274483951709474701583310960370206756925023309847902978980384297033885884500910299401858955615673253587468420854860950661042142744434129055648261594186214267965265285446383917036154883082461025047245909164166098512397813649933039920414173478422000378735454688474788310678471606457609507876824024175870867703849200848745939350056696642833197786895734804179824890755926410061935273212928541625391082665243081390777758737067810206111954847393550717110943257389135914466451601789893436402620326862542462786814147727190686252931918129058706534064763480033268672163014328843181488926153948967564435556664117816635804225584484362263955455388219595978600538013689204063509041105931951625346222907464733457391871469107196721643155961910091499703404070477480811192236614149275542122463391232345278531519924107187334283477205964525409065102959978137111191712342114375673287601115530250055625089626723789468390928387570927871266510036914874132464682811151059921617733961727499131052409901732060278170313969138261029560623470619364997421563195083972632753079759267264110214636614839972268419040793189913141741021839450418443657126691296646547382048153786906941985846644623469126659730609794825160753553551033952913614521146956388925754224273683067297579065164999057895033188250002078734998185923946521757599189102766034189860470052422638255110431889239493265245743355923408026467939916844304187289411502067487308915559359541756138622324977637430225568270171256494823878892590008714571460545869586927680940399453504280708993932037665142965684974972498310046343172140905902282800283735318650146757550572470097663454356817429984463366984446941223480157391177810669439313976755112021095318880713605982442398026045260562876506668367002554299837633497146961199322223541262426146865667589275420570794545224117798370197868387031211850684499886193396549577912662065793480422808350654323360701393144632395156584249755907526574834403122482810661110323759090996847218017602743832818698737404366402149611419767947323643597393147257645543266166022016879609887756606166959833605970827847885453882328309665606336948687708438181312401871357731044457194941433865148818312968106205729608136139226056743227886408867518453983867635649384120699633077121261199813807837469474994735852401116075548795670117020209570420271409030504795999807715605684684040069278779199545359688509134350237536986918488315294183770141818339746966598207853684047528969687473911428863026973801972561551998593543756176333875968295342311829457963181740376443022143309834059180281864303729191389333172827160960250090188841780728999890414231562303290573299056748234736732130157566050733103816143153339304793644993709954998500459228378963021772768723977493761801243364667032573057677237741797709868897278454900971256551556044616352357010114496867141260217087908335683746460970542833140971075187946172375837056795138316197358342561410328289930935264129908453012134022833673717775316094795012301629099663384461216146069783396378900387134152348224565707073096316046513925670377454304726094096722048115774146454315222305162106703859007112017362124998155692783457913072699968573990203175174914282627972770973354707173926673848452962605424597178252430122513359808856028243446715443439405407316665638546658412715632668702034547486950939890935129083621418924879127893085460547200280434569411899903523276435402795877180030558596055615849706026096993936732959029131156995142273828696804054728778046123786300815547451540684175372544895439915264965409714738237166429851498423164999874958608069050564633839122773287706970004800995166064262713384624369385399588052717476140351385702683519215616521195057726047147594468020650611175172867634903443559757302636058871258968131506379961620055919638673519477766334120124110313244408936595542946673701148809797054588742293096485021727042627610962941291155364390742654929548482325978890954701018058371003522205177121211719678820111866852303917478548804286258689939744175174082029624975580782651311581897549420918486791001123347492371040412518677383014796591088115922498769551253712874564360949771102066866001443721318440348864813861825944553011193226080844739211735061543956191670831037337380226647085295270691085479388193142399896555793466108479147759532013394601831894002165814819379584099851603919353228466564289556745733368854534135591569720145592195405615048930183403932189141137243368196307392591762471378879885716083076189826366448816069268182265081970205432004466689877069705091435617821393754943855060889948551163630289773008604492710904522718298038325560434072201340527657549728964611890840101386228696023597896307706269226440922220408351071445810569853965292767655239533422083743794354357594010761731041168188484683704863636988500929193671655002484822342428716457927920148552616884679650232416571987288205887040762308568569816849916575890005697502273258326356131248068637518283166720956903498023145592175103602261750859280263419761620733122468617215205677904828383053579244675123840281475895832326623925641083212983349635555985467986231413579843405994590875574578722810504031868638338629850189704068134602777076859574574794282455652470843883420221539421577115652543468533862176941140490434833327624521556275008569046201421094842762655632409416978103243258670436081527899668507744604436782271555629554931202155722991684571136273207841516133568699092447374670940856676606099833395750046041290194593763538798677693372977918509678870276948182150238641114963668883025755881934773824115872003379461721198379160877870618204842518326894396635724691353599572696532131100924414043551376009076762472319863635453787195567069776302707416705327773700434560546579449697474647009874725324240464519849110581585368749121450394855631708123225442455172183326264598267242058439716129956182289525465863618140492114597872470748059296483272740352551005174465883349054642605372442348601411976770670643764272181532938560868052371957860028850596061931065738972056419600011950948543523271138921789505626786908399973835298993288370508750101221649997308924434173739732454051384536944083250256293223327969334426743717195442747447935953127704453404955050608192269099768426767462378425315173670415993267932752692446319803483036728079757760529320879448485626728864125520245989368533473603886951753240515937331367950424842799825328940515194568690832385889507373595310842870093247495231586565719698124616083866109931826486927096528868086715818830069448183095743503183928324184208371865360097859716740456776459179297420979623129500017081828902368015193970109844056364843916818888250110239639929015087344199510971425489774581827988654904594261078686439004018007835758108655282901347934366184968362773870418904650530696594452867137273698985995217615046289324792828476401236640151869810075760176753242905735021200277193520643229467889718366128379297196824901741039225453047173035996176619734110621137089322231174592117901394448704713986926617105069882229784048889929207454253380133866378704437207987202602478421345130915227578376594006955448778516832206827654372506221655327663145206823256956137757987779649108163150986160287526183482104932465207573425598269180937608671271013837601341931348687090249240160930445270705753386718144099930414188324204610967065971164682050501491091324766176743200566211270206178935605371571893748529492389498205020823689764185526084361754049945345963317412412518064398494808475863735210257456978509539782732514230187079071785232135933423995881980019429452419392799756180659083091927011759772755391409172063040992886903914188217043552490096222393464954872709191688624281974865121127722824679239964304003276992551132830883538688765868294809819338101511253789756825331701520629560551557339304489668312676957597038126896702448732034055365316453370877710993478806160026059274575859594600244886795044015031207816174829876488061902216993892508386027858778117317335416810885721668746436696345133567831474908389749011737808362145273156921657389387175956554124164178598760063700552049617550222464332631708232096762807655996017086066498299652439883571721640594981785095963541661407585760002916827352858626972886063996660704921256569513243470785843684434474428950594493414347139036372822274747452533191838069744479158531729406826420098417541846974038559407740234500417704573948476855831553194161538874405672136240413257380906813962040641144474389828746696766923255121126578691739364994633223121863986818885501500908390534934261388348945338091853200169204583641024519194676861141164296864186414807472940946705745584798732012988411333614091410310639819248005198652825797585700915763445123571291176867715590119808843733521420051208903239574200516478643365807146624766172568256058542193960501432863197959006058928179513832431194804330189305556033174864374391036856090074056641090063750035751066512915344322359012089041532026097440391533010776232115713836287723036928064701197708829424613076360352647629127365927038155213856577094898430496651291783324525923807382709431882954711981262600735279282171326379041032909035310465307272339839268532547106264465191168054626804300132404273490761485200687524399328384957345202909029686886834715930057098259396640871569706133092457275540001227514500548256358904388245190854094151249033584247529541202847195475048472390501909512982845400058977080462832276894517839263536884482533944173086898946249184422800435107913945354088496594240423221196123546784382150420442396814582997001728596357502216841535184356787532882372968083894141076472751081724884897068550637251432947642543166702566524681301180747622764699459419370798603053287440598329098102609371917510038149676734358879906357222411402598512929147957175981777263342081330744223520618668667985320866415882791529547407792171070487751544367411936690699891265538840775439830539217022706456014012555198672114746304732743439328905070290193540167334110565197305643188417818291375739810242257546859123266984478632314383634038896104523368321978267556304076703715772963906116497987162391276623826730488128864495670736690123304208856516863444391610840255966066104133522137002235383171496322148998718369172189339028923232756838021168789226374508319394667993073975641983253306472644131006543874562393917970860874817797310192975373761336380529321722495414622383244165371994702574798350682501400144341472996762920556816372170120878089441753645785113572654313504702902111769175594588508608424432191573994192984726225879626697742916749285012883975201108416725252122401615794730170020552182494040546360012074300161805327977676464730954947057012572055232920692602258061671798916097444676964835832244207068612431952698446557239131331643162011836666296243929790196829136773774129778878050280171248185825834582726176939454277973128017935460254405104452470214239100083032579322464474229134900733727054653275323936678947971349340160888686161355647860491885682051907213463419723623731670412685348631744286138704871015223230298448490973784644405510435201611130964023364705211290929316812930146226899879190774593434748754660616490713659293272077905045543863938468725659340044584817582934371658875739356299053410439488973663718359724555311730387695124080159584377120566004172203481047537279109850195174931021870512667034331007017866617638863377943577987932663136933990032781733699394623025550310916352661593319633370419584745732570735396588755660367960188228393036903736525380646368943302805782254940273167586959448019267242948814080456313268562982782206351382790177227371964742494249315347947679744196746497776948044237205758390215759123972461260820872364763765577789902138410560089360409740368052431686702905194712674349445808234441709926723840257439740621088275509390346202013538109099934715778013771876790710102534549070186654679996674608445226854419384120653731052116664978246869571025687945524917257854864791233179052981635566083501856815370955705986360672384065306201945454837313535138079610224558088322959153226240506479094570368904974937770972308190539509235048411227315334654855808826071345237258254657022310133800763418031676591848382113802625036233518123470663813342274129107562432622974640924183905999981032491371309103835344577111753216177883530863157687172579939516886152222227589435338647495119557852436119454244408863252246810554061455408245928609629883280779913806998804913378962376915033673184898076196245214798102786247233432932272635489598382828531711035408785393465077772126040151495656662289405562492272959887190432751082136881976635518262335716222542147301922538231459953120989346787425140251278243631298544027808836290691309051214711391357371041576241296827491499770664503334241719914011620374429855344176204834304983176540390470447566551068590295892898140093007239424417807414149313956449941263737080181224584684513538338282434137435750891265054174885316676685358565223226181195441449717070768428039897291838968640773517269995606522166399920168563474508683008436040543776246064430641569295594021399190510449317735531552042504803027868548308819771462845181111941477383930442609070406147662240292438830195337500056561392004772873396715369762965253607892425720023842420057736397431360327395659886124942231087350485057706139401721886423419590906027083428099887878417370917039099605084847242498239096429965430995835798641768434442804554604799913080970187890435853280031909267362837727711000621629711378610009081362578475169455596492964873283499644644727125589405350495013787080036076600023252160868248697375739025516908263133296711529101577073789358858357655107825741908164396237693067216243850958964694783393546009744205799167688839227081336810746926377944934621183360996694867442167803759393561275803765821787736092043127829617458211208512009843995663761256604964118687981040627534454145455004105529919970010600433054988997372098991809491592926792161811584885994843206582967633791495791451947667913513656969922993400095433790285014614163546294447155129372732009834259811288228392644412520618578455252301637854714326425680695660248871245332277654971407487339445315864704044495300629705317673296694520782816676512367821094690559951913825860345691525465324731356181386222085546865197366416126768123008807190240975399992973281747056161463099076616942862969718297078110199259535529376147833461609641643701897039273943019866638946701381688299028815185440410383977567063835329530377324896023100150257327994936273936132551973417434144146201431212184376537721930549712733925155020768558050577898820267775269899763473342333707923183983649410796576584468124097319368634996617010346534405101311900135062669795787848335077543724588129533736737617063363427845220693513366625027314311917394670491039072196057470889291544029249154248435485522340505706490349685823293144299135349788786498692681701160928329077122057829831394335874942380909610767341524049135242873529837020136596840365433178738535787610531676284423977944144808137280991235414754173467349688657025073758416294030488315848925585421916860383878564936556217669976106495471175440991169886779861342104147593441982856424416036684832604104408871206092172852011342306819214356594050665925262505460910546490245611052313243410630444893076197049447361292423589064697290344469428364996453286096040424338539407499956166537947986370600195472148233415936468972492881585728545247358059978310460232504346332973944962253612993458330136976986124964171267795711909276833089200387517775208862836240144173059944029571117501999266757159365663744818284802840822134452767639792959626882828708484032102638461579443423081038330732618372897699395700595119058707942848858433788374972540095094103471249731201050266872786643728084303311570060352035925092744133011753548792648369932448512549872625564879391180910856856490673335138022630480201891758640980105431972583465514448782409864555398847768818816458057502756812821961643061476438317534366828379203618877742792048122528179855611102601842489009383155682956586546892616533159243093120905541519782338748399009697293859104773185002553858122133071486005796162201908277224732618418696174729343810297604956673236129917070974860562148082828223559487649297478680491420445467001219473198969851525044554119763148630927829796887563578343431129624469783285028228517244740010498407151149892886299082782614881286717183630801246854960786373351611898352489989682927041549510342538476588111014826498785429406997565258420685489689113802362773486606643147637177920903932821195552168252260515227379874607905631390876978942139980395688349499469753649133474873525563946290542439025386692565877479839477210646627523900633685904408463723144863173306908344347393110781417270076636066723626360524974832660064806359423232950135876579093400866625033335398108276321667656557646718316059738547427966103340793692270857624132523462997287238629343935902684261040527486793829606828685633610476188912281843740570277245605666183387145575595625505723495930851559849514861265068469286491241456764562534997559305804162658619700408076640564482316458778405383142937335602245237538646184402930932556527429579460342493364841633178439484576779238816303315477757120937169838250598514477696027227011755091784082203058661269963512486121815159898726604769051197384989941390327108069324530993649651722287591118784478024438443165510403854095365636474308416392704184150115962013622176222165854493198634529666529040661828049997108595752272529412987204361571042685435156629175661321878406100425491274053028523071798020151698247464361269502067803150640749824689473412057265410756835148762015977340359214503799576227779651276538488726316379656829179464867533202305497008288958658215142651807462775189559587230395615747045434126848277484339619044015868863127570490549180713158468926333096518630140949598648052521695871789949417234097668206252664332293894541519835405232536755673278842369773915890042387682009771951451274180903454610074689676917089601563327165928709423730838909575733847495801746703630479761631758461870789249560484343189295339623588752335345488347440445503370706904704062643635710507474798261976072207673487437006654772317407425244431500271200954251234267354890231889684827848509313681788401916251794377402247052835398673831108089842254115816746273468932726212808703971792093061009903381242139762110967777221928498519121325632340941189685791582993216525000705704529911042716832963610268065153607018191297812221146417333135705055844286877736956911237432508419355870006893140767459635906951898933941715759068534382867563214171151003447837618436775871728508701869294209081775873068574280273756601021260145773578483520852495079980432156460805380031340524961451874839033801294021322397054809837187286318503552088303467643590835675267209833177325809609033918544372497973578764715677252715715205489698523938207591597404080701636785982350618123454798081343385148750663918709661492310367401985346062829718606083929457777425013388969639115742731546737857034468208112840864869975767070524669457028539087326142070230414684768314181794083476235126274173417130769206233718546914261699864969656543989026328436748681539193929336564584669036161311529840820857092117128493566022706044297710127259779980180976974765597982956672474812454377317281156719876931863486419522188686133570508150486531927001624515390778270740873162458432298299049875459558025642558601058262207521782536886889561118800525307634795953529582546566018554036145935284462845530755663292929918106091771001014346087891439133507914275664635045195724451257980287436772712609870968399362991741379014055044807196809969992255619007395956672708577459873062929954739013554158426102143886062362929368894470127409005232370534748135196582076497084184162327509144269099262200684480336753804815368520282367229206940517791673411210232119531771448459523519422925104453067032958515635639073485444246485770082503177077075612178431407550629464202884937318260478333235855961927506763089819451284019016136026471979110017711662268844933884545789362123576701294869847283126487313162978430630208897702749294779380758229060181431002880048502766707118342942082066775446512862677701431810892671319712647325257692756497490442564058111759441624302194122158127798528429895834315253994627259628586132093914513827582884105647243250039282179523160506672090135768095626222007383308826481370091688359824018277034879896245741736082626729604558379659690233159361039136922554304152675003985935986781892523747904547408267926336170508793027397691474653334808140450281889446313467183897855255847114296968339714601557420470292887190357355586685700002406079169571329781908121919092205021083202861290055980958270489942972986660192916026056330567071998516819305946019793352269283607339967778190105336930909023780756407461595569995911201958420636615074452034233113101237950449353717245989960917462956386436000129601926087718983056751653917407540699433508196147749243481871223566681844818514155665030860668916496212575347856569938492323722080302624618834456319456229983755390025629299012731680872684839825241533158988987064667944707560435889261161513634345668964301783386498312978745810284601488816803995753935881578934410077023440781352342468511066179980052184983029161440843690369927343653904886789605817327924290597337161802306365475585068322531928427562568876821243651701705321575234113149981223325573146341209547541047991846853927226144554069135684128282335780555067821810544849702184827641442448409463980146791250481002145454489485752542900612275660853111439967962548501370909989132094908818667437076247772913304846614918669527176814310566317200074090637978702614901574902015533696910499901994864606754259599140859616257582511739742668878904120230451202187042377174603076181076015283467114617601490346451771035599823993261755310526640534215960968031170527883841504387858023079721889592632583773477884002507593241985459647451464554596742373435574545391322993036960809040466875554041670982950822533254092748101983042382203222702075972724128186180088884825278356213927950094256813208284853731585093814716298063387367530309701607409472031357843923586885071522179708832711368364763536412650272105412258049451295065917598977349848280437315315630753135358033133007444572318428080211512362797565782231825476414993158209542702525622978996894620328616598862492047692020684516183170764480180517082257117087131605359039344327178034743448539785776693511668585627011421784088518519830372617350744514704606095174669269212705470297363901472974247745468002029386373918694592644017360132217207231137279025262775956786225565056147387336501135356176000158713936967665910228047851729026911695207330179925622191276119564378750692643177114979999746070922415542939149130203106909071591662282397698069324715269133801616379678501622243398854383255160652642863495321607878906113334512289233555023564136302070001988869620552126560771069174820354025520943706119535820871565775098206643381427516068465977244512435181834969580858152491990217242084032234043041705164298620589812505032633800422941631196663701267080708728544879564045579993649718573797875217460499668728314673836597312695616367457975016574866756827313885960482964302627135038594056097830470936460889735267944770640761751909834641895793926515323058959974605499285751945540102519279059547083001810919103553017880338031231610349810050607727740613427991776729152415493944059272851990173279318522212750010629958639430432154391726973508865144157835335150125336086092847959822626034593293822055318010445730182040547209304597938728997307196829200044515572884215910014150471256757873504672679442551890989289249326035260916022990321582116313064303195370433428935784008168699111239544986061664520239997244667068492020459104514801494708368553329257339271364569959361235760660851100603201780416131347502114681018940065358124398077743172118714213963012026703912536278590651267713380786628107119408156867120224068483768564571794814327538988029477535221002735983841891395802286597211657090587446342347177607121875181363752132585428040680095720486747053105538788465493085013357461768482512416776507463199667579740224513975957422322581558444279061086946726845990397321192556726142536521077672826548540289967072951222790708828213261221872861379005634532563990519018167680732514805801612316226537532534307184268253708207428291151640741585283548051372694615463503788912927492435926199176528944540593385024882499852573728471248516020940500513090135890946425893352158850427254785377981366035741101810977506016801909509966084573294137248645716688422940840326189905072748843164414542125495086657074419578600784564217066152668692862735706418999936092909923491979245748499008836901942065461862701118375746554873273023717363752996413582823407614781222789127656312168981885387296622311940247446053947241252738541280621538435830092234310442770674879916184961054873217652622918621329008724431952107393891057541008762655718597522856435116582430669460869571694885365749033213915211438516528583920143342102908692761000655934631896837466934371093242517940756362317364090823502454553415293857003289184022343540712366934162816365668215390579479321354452984792471259912676815293884494667641170188896489905242455667576831098349048635410060714279548920485850831372024499018915791305833031483396734020294647976074108290116215465953025419271184931006247207571643007332201728532684526440095723539457145993197972456404632007876550234029331680605865235527439861416876919407397203567832534179883352239031255300401980856607733195425617389653106338568434090371751439950465290378454914070898387850125724801473577703856095030764949168280588610929249750626453511446875503439772884329687921867890927195825149998454971623696150205491831421697996318761422474240193740318768741754626949711122300040871093010197152923981188179760100272402140681993615665140157960768657661677246031715388517464554430316629173510751257025051643626350584423238156216937123494329839442084622983338132504954240805455645788638991389152397137971175151122954876297055664535989648372035052538096692164817133237180208818502068503985712087149728292124691548324824869069164242461148897264061031688023936357026865617187418334453055289144280576977788862500373513197794417725680929142940853747689065323766749512367510706721543593102507957734539439579049584551626801070324123682774755214417267508054444957647468985492657107753248431565988397012382809810485891602464696644608235311947551377556784227071178012307132648466308526584161185890038782668364919341754544275363072816696762329901245757345353886070842457987376503421068282381197045474458872486162918485567042798399221566319785400069763092996294956128059957048260550834518436429220870911267773140614665325748201399431628178947332446765783514896262351349932147819247171879317139180502622182003791233768645479503256034687158241595770060379908200013465406045970752805687341370195291896006293327772885083305488439465563458259710530482054806927559789603291679475181584394254966767124810280334002742059474681947477627044164380068517358143547832754099039242610862545159286684680141724436489802196477577149992355900254767307574406686277594835892168332033761695902269337934032930772146848786838565223109465320214796371957626274994208181804304994953932822029898007731510524404333587923814560825196069763900324376253876418421538515223948802294233091290730889599384826782722116364259677037080890097529583219509110358641991992397957067984166335513347011760416860767468863146114563576177571305149019681515816848068347582357007329318481443534469221518746873481206024655571311149503355439972643893505691740126186027307261754834289373627540712729771803007742523869123584850695871590378226423773268427831909550446665848966948585979506101812321766327050887850181296270249402580542230217068579886070251197425535906860412771599608448075985543585578864492366754625566393734114152975983057771677781214470139922485477094212080594367701338623131377091150243845124726127806306738198423286167367520562724757926877601616534138857279609143527490756445646064751009400873443980590587552243886657484599292922457971676523755406170118006924289493483548811691141116937231383102666294989520599303318410672225709252755085136077367113610812641782038911388558641491044904096346813796406683330820490499414480322790931914348492080590677412725618552904323095830977180005956305206889624916610404750690301935649066746320666009892181917227747374531293258979572578632189206598814890519296792040028417057690886230245680386713505593555902363093802993242262659426621610045449035423657716068387114562422553889842441507001273463176410938641688592695636476886326899103595591732838497653530563354872472851622470307561272404060513273547754848095846374105044804651485338675304777291940280338371770575473801600446136236041565081441059349215496718692860900277999477047091496829705893262751687904949233757177821954990224243254621266622924560136413158783324830123626064059965213752316718790938876839053571221097389463872052613697376818010457479483540477763962857877810446962899033336881222253599596916367771895568908826657378576189100033353540017588964712823132823851393630872429450691827086034347962215665168837847172635173684449815600307091934552710785752627926941280459704339389333856575663913812644697994257513202050062968223982285160146678046023462795803371399627639743995520527565273714973076551802878861271368758668986732569718470065225136239831308888031705810998990747391493143617920514744675305505025360683390611663486350158101880988972049769527346863694883403428992044258373563338261841313172406031892841548848512369890848432790667400044543380810520926172845144163367701586082227308863498063831050100995080484851954224926058794995172580958761763442254117080303822640347685198338761678124051221514751646110302956380626637142764285985711952414754527715041669565435891965522651718426530539432345924331900109442814804420027417672168297616976323368658118872053841320611147120522036490483906222181274712416367315210356957680312348994555746005502545123496852184028235317836799184567971119742805038187636531234835471448032826986727917894136340927413088552313275681524923829760362506582979900813607088220470863980869462651483908716338156583606670393263109891960670615188759671215169148288828247779607015774179771239768989253119060528384766157768796292933573258242142837395917161280569787439978298140564282390339132408254619439981391784036475350422920228202937562213193578661796549983089161394800242383183269004906035215691746525152779959026911962230030001080184140356194876853297482729011819612629135478824179867130188457877248335303713097215853170173977317084459983950407995910952729446760591929222370160139981481436168467981323637749712384731902228775939296958536811412721852945988929445943767168341287132838070493327896083200803734405497613288387092863498640264005563780491309097035594189814646998058555579038662123670615272453012651422866139150866557681793600388901629413196471511290918498617962264156747766305327147163810195424662449034478573741009785978407599056521312190263942776055039954099030314824201421341132963245113169959988624090430505397678892854478277618121972007281328876365719571734823991876005127005156530377427216919848487548886472890886504996743194248579311956817426033845002166891576440486146159194776690156134384385903622913721981761712315858971462517912544418903871535826332436939640699344852871215524308017746714367586796967826682248122005155443507101480409925954386423044362633758027214739677490853412838248542762731398660443547703582942627764494092745516353651127715581992320911235810581072282043090426649138781859791193154652999856368672614876799137997015225883640968470122015939538073521402060707755768509880096503146958398229958895946129844449691286573274923453668823159118918522940046124575115377369649037089727054941732710023350635810376193886298316477841803531727069633830987544212232332708596391245065042554636260944459902691324220875031198387960914774266588579643775067409430396242470087912587853036022825707513411050150892911621085049017977295848244897162945319295581954770367484023311508102550009393012311909295411285306246998580560678080388549653244795076326326000781613904539539410416039931491176575975728323484006319453163837541296411464295585982909677594855399975400473328494610579588112963866479383230422577830574103147385188567484841057840580503622409816186705961581529259083685232314780617207569670500713805812378538454879052369774918322328884321021845217174634079854866134018829157907051102298952192408992323516704753848127965087528531895344694654510500649924883273631718221419390930733984787089613435141897440711154578548159842477575252703349044376594765093019770986680655311616508792836281004974094166267299363443995220398083275953576618525966700298609755450273163947874824406572011248914050718128138147441769108555360621136317204441758889700957010181011146883545028311528071442182628487579555616496708527428816424874396778492444052907603460141096644787873894393803557170667651588572455405910800664200163229610348015323328135341244184559130582915811121497537714597595224218138135511380259703705301555033686723859637397386433715227001662690112374592070036174234063517087715586662172094079659410011379000072632264604147219527078091277368828710915604414454547752741158586609984186422754698962613509718735444601739481868290442318760193650900961870100731725493214038182162845134621867798688523723125666358886944571886201891046361727886217808166556800210188783828832127569195159227496666441003058309531097540003296241245720939403114331914897762045622223071321805290587944329658238537465613489239392213641886124399760919802738768926737890542513851426357944780067491866820842600109487124686269093658095418800274612991970589632439844197300679488184368768882111349606323625005492306421241806956447467256052495389854505395826455024440694146995997169963918811907878203518421876585540633276185436002896062089628231329115048375085612448299460521741225986830599700336619348473175734211808875324170372157063648890806797865944634317204816932497525936677206885043682655912111781659128304351892318654134635340445286231339940752801204053250406527679220033547314453900643114228967412146304623356745603777247112230862591884028803661724742237190487538529940086118486767869733472338235272248780814775081768735170017143810504820350727708403950255600594257336227141700547970659703656458521851947157759202939053230156181381771954838869185923976234633203832448228898376080126040247100011193349643523874963215484690057441291863422157074365941612286394682556595654252541938948773738991486567368706189423002095592329277858409923429110470687082769454174242318279026772552966524193049108226438161197052677574299145017579884487015308339070765510479557528764081081491475856309782375870523894659444064283750668192068053161945799246779021967714211563090169914520958720303260187431383666630158859482432888862875634692974768706389778307735244567564587456211122163392640805777962558654025045549233923902958332124063708472176623211874186176537058595817009538123443126959247649925408913471551262292758957467486321958347457111877093472514167824545588149476856640246630570405485870332097774271693533552244627838993843945786572773284921079491974453307600132986090232766759790511965193420776598550258977539119196126480577217825048773793744917309903433434353657052303092421091355229459915455445563488417943123466599766557824986101848169758451766920029423825734619053340852512209706611916280197998815732018793248835797343849317757347126190115041007381026302925182738500229964872358174943826098910980605314318166081190872933984664430314773604306103384528471810766584288084404072290432551267661789471753722819480094692183194141535433427225203584195682895291150874837859917038878093861112818382226285849850911978621888736320558720516298130225688707767618221715322096271596645848125492305972622407123898547286396238937542149106137600562656733186594143237537921373744090481068000517180840621988067602846797453867351756327863338270451133401699301349215619593557518288125888966726221150542829495485580564088746426639994966257849053253134617253238977733411707619956793883295942822483964234594767610196458721117386033744882683667723383443358683025406751629166950594252291330068813927715629096885133620272653503759554762369529617908817367011552262122362683849042803439007982666661295756548555968670871292945472431715203293679205847321719350610121927093973295563269904584229066844028859551596980494175381269470298987218537053935465156928667928919987308382919376622972889945037855399414096431774234671114363116277821917003643192051687260917492918772977919466093169044738205980432656601222948680197825029473599847947646188782588431955971206749677418783704858863143916352368746173569033706693051228406113480164389880005270114147959855558670852347123160288609043743928695044533905929069712113075352182662704042434722086672464262360190581571987980781546645338005908099921442041867568287553900044948652662782808667294086761980136130605779976480446675511692046724539050420838399123721999693283840217815544329416484495964558014494022049200453284243548120421811693215791143101899719124262196538849812661483361342792400867372332532677147051077974899170192611646041758589273725729219113670716799569304694789047787367918309511450534737029706212359700323629225046518901130632485943293991325334667498902346917670442484478793279524409381823429840044653993529451490600479780100524087732407093964173212007526760302762392801006742815695347367779988989937763484271042806460752578661826981006816672655927200917234559766772010303412549100896645965259207151151103421747118433486578802133426356404755152078763334421892907254660986078976919951958127626337475542923566297116512457021300501876519592288452630291270920977423844967492039294404789333525375214982803417831495776980235632531616293443099316190083640359438539847513392409778997388400218279786417788656351296184140020683246981802805134167265480249337963336636821106703509616874774107936012908604664555465249144361035413733325840431321409012011000130248596311672032612405558896256433301294869553075877965703427368941368428088241817068042689900932187532685454192417722102313271390014336583359202119237643038520532186693469445751988833160728242824032035168092750234022620539493259073795858029552139309191195686403385157096001639973082961309866886471462775804108455160050008115581079773524769622525786960365016026327114132953039113612458717573634225221760730764126206656782935731187488833550607012053836831517455978045296779345846622862902473887860413111153927562049095206164787263231244235149627518130364377800589939047508979249337975822166820330690379488545535012141162423560145235620966287227610647013802585478657790948257518820898463988716832074525533159305479875100964337225145010088863130059962977505847758503554037112029147765657086697681710568935707127446197640825500322727174272127973912391485382771956461394010223688392022829543698920883335450321556765762610970772597552825321818017380563416117942544011279913545200528281040138769088168489651722071888209295423823948983477448777925801057570280988755535512227157935664193321233952278159261193973162224638790751747813647891795822420486458153802672781391204945750721129385984934110947256603270100510315892113752286542395623783321918680067613596774979282347880925543597373803671331699582481746592663244399847709173715315101489659009577152983110585062241077224042716086329896380415998368526710566964411651026910412699680079913421341625846579693927548421768388157275614692828478106891307107186831378574492332975256695082722182396099002088087618878823709035088804892105135412063475037073302865782271172650066386551164238223424214202737674086962364813229888784843544167849669048183585972773183704400357556810201364660908764243455286711472319057714970616129110122508897730871735007066518809570181141915399484835379168337465638461720812443968482072793628134416848208374014645805541866341836956579099401640702743793779379254693708946288506465566879753452002150929356067293474760913361349100769970641481653024187188733753526768671353956619668601390844905821737450217518918006216809757301839654515919443652305815834138641234301098985692083889791941705507080724078020816379521182537584262770848345741537747420848188386871333687896308523500975845777220164869926846459459284842702777439448158663691168306735944928123886840909123906385315047901744628641004764856224024692655560651573475976894071413312205955610746702081572806626157493845175337610105653598369625510122789778906926046009733257318803683055578215865056989202185062516296309152470635749679669413944724253966616593496090705641820149186027356312826848709161232120035204679068054752600422673203450095564797709609943040391967013496164334422851531073581076952657795544431380743685225249769489892026114771723147544521085454354770039721453994982814202812827935533196253177265731158708279951317609041851407652383433380235706363054627157229748928887898352327392849089105998307302553782667282298250011580834538976838903342953017377200834247856442105737650013711692821220220991322430468224732747516535623473686328640036851896095397891943006701081533707862058665363959801727664609121701234045903501666509086329853892646212017380858276052071900222884581769137407884985889987554345995342003315476580263859199629820894505564651143750392879254918739430333678989288700804018561273912128999512658832918791340755320562517330155176481961713557725648587783273760646900551648894867229421541817359015255478874808379259683970117736159107901618524369098734004488547480849551978984736584048675261068942174307419129199037034141624179630613881277252531344796180713865414422004915993376259852265866217574170970868775485831244926586908672003809534092476114270165386685443776228067106575032382048774263295630602888360792324532242314349773985635508624304904423141304323949914179051513355620001897276961010798815324839918311607440980015058725511306514131371449557639011319403617506910475982750636780301848191761370636072376679109982497862436560635003340041131942522960032349821222329207095212161487810695593176112049368374819007928808365483107665453399619835439953498167880879053238563438977315210953010157833860316767758634827955723577617233393336914481868421511333185805253587863726923500319642456138390093419024552459405353871964593401062991795562776219730087191836713639716089782167369035958708514364207049641031188257450953919869017790720623877480361403377257089078781655371470770038748852847200753145739581178705033458993888611360892126061561667568072134993038956024685045922423774698521225820149061100627891291312209599713528341631169828157160219031415258688891101199778412257596514905362842451606472636806506065786364467640901618838198545748451614237560530885183527975122167273807365467049574775901380788504454451258592059709748706927416443605789633602983588306814903239978903599767765792927067178772098313496339286994741609548723100313358499107491378796819549399100369289845575521909435363221808012136851753065943742592498627285119270983136826597860734728329314154486303506650766600137981251106189757945840407967732441985306210413088466947707091968951520071346815720714349616621848817106041881277776989137837282915726292302417620489392596211313420636313915436916341299931632224735799211659957115024805709600933225792109368571644018292712889796531411409121171324294773943037667293897040905339508798339764799872518537421825012345570182662819992765441951041208199694401486849732904003808696781231564956055388352295646068888947636291176260451822351021115604076845550226075636311662047649429961139159648438315200248396682111490166065347562256822071465289346069448337917510162022098714738422023967149948998983386613136994571773028333853964518476074275217966507424783408015734430179321364011410657114800599674306647017599513238472444580686468511546436210198499023706198833497085884644158489877235695859952158053647582241726829215865049647987877631877893750053842454063667537148707830172301972096008511908505312671474944705742121296098975955167130210532783557138711529105925390520767215328670854770009967006493983020050413016319576247915342532254802836698463155727464282333766098825940832744195704501816194483349973850030658288605555786359576695430365501708336352045747944544158695475611924804231354408291150195382906674328880860280581128014337102140168757806236324590113347498156391187667091541245575562999567766953049470892466111575845702705964461302931219187696891428591743638392575532927760931124466262487544093290770470056743118963009842533642088013321046819797850267165652956264754634953239157702927456924792099015495786391947649292443358433183467380756542922192699418184836937487543238512704496462114203674623360556711840119564244958116413013858411178371136064046310802187070819985402746925092328317735091940116701366210719189421748755952951185476438883551383547983161604425757510836874899492111482539054885857726914710760844069735237526779783507070210552312195663803734886638684396577379378931056746107089300966840953472122555547609981893792519490379096843473693456037072411227895744208521267337686428780783126659809690274913079794473653710303598000881230603751719607518214042432102088760930039737106205240406578561278067120410844330368213820981271570324935119324063907227100208094449615739155562876315344946137090146081009100316860459583219770130750090126561412628599116075135993634039199891184820548839892100188455903726250637536471352892435282483321132053301972370670421146471211319773348096819133264309669938827302570299887437704069351715775914753748554493675558019277521513412968726799050474332802948403291962476334204934987664447838158583631664719319824544554086356689553908513513288765417524939841472365551917882163456724269512113513337106660685621868866366508803255318873652889724175657041876652272125600831566535526478488035360117637135167140851362685528662630014243040503819800293140565548077103953384762259993260221743227519479892904715952404873351183663563954868744115520849658305429305921626566117960340876037761720715506625586581439953761631675007241107670328844321898158721874802300318212473050933680095496868805040278536737034122066341106384437365304747294957502777969565475001036369428584295651523794848218109497286560003388763261936440079768295740273511723747724418894271288025086095744905464836079832211008460422968611267079088770936098010947743368299241180845749437813347967222750495942959241441511113001488970909717491041140950242474848769552877354351875556643822661396882870260079245202955888624509716128614490316478274088364201330880294790789436400955656788509527193853452206696949430035714965689428412858252661383928053932672536204322718048461095817165626363482301152987597393891877621371356185051317019171727608801396583896272299839423779506175766168486178467177363918227101834849475810837018409915315923338908352347055290405904370941199453704466114835973842811514137413950952171355587271842669867463394007276306476230371500161360976472963061471276441438812934039148776195057779495860116051503449393674790108078424276854046852984217261527937511200243850753691929441913238511415767844315876828670302430739918330715034117504597877354057007068874331311807416896613457549845440046348362378610249041010110127261351824117839668494501326894432616275808025690836726592869250062688309095286204956086403543575072088581273809287782972887466365570091306053388127377050914260137313157778063472393951018759171370960354637411750638922929098691765404559514411353241721587531389250461625727095599294259590119171031772085671021784739569851378876102249353301884920986935915317294296512054641649980432761306109335085260500144507121518316209766647254152453668283513272911788010783622600177936237334114393633728054574983982484520527001637995663289884928634218282305299376246678574450154646235813584547756266754403410680496912363393722275823827335283524991040789964453886408545012767714106603782460188211686793237037557936339558424488887642786909426365091345704305916517734627415083678854513099761874164135106632607754829040881598838353398440444388838928970468734236524966482736216048132204963876872346620129822289905766783765931114754013105196095301192974508105552681377944004088956529559050054110833518320395691459080103948325930119669471083357080667263805336803154159101689451553739518640777789585390975287382602333849264918533672484632122240467164543628733769593132235980967534879516067234450977973446540976031704729298598571277075847028765760635572673573934040768684978518643530723632843018420134094685296802350823846936616827531275716913964179540085020682466688276567793908372380023352502551493087893353482983347981099813578533189939703710380091670438216101699089770920517312209778816843179710641472361071820054490594686821547951521278505198267396861327707455470216049343629131937823516823646222264103568194010310435492528802969604104073774894837451133313380486735311295822887760489086626881917267174046198886484105412152093607331118618578177812708748201778124223812553104832081627718814660813423070348079870352158221244141138353186057986834234214058529169749388456196027339509127443667182002051178553795847052782325007574802661865059695954157289751487425692844791350305432019681536199012932766429459463239630125461686591558844416534785298743362239978990679817986356152070062155992876636084648136797565806466592959491473661001607209957846399036738638146093343421724271520661187447985180491510137974811302833007806806050642553129440984806470721277257290555473424509538783396333893439180004814521469566365527494982810140675120959092817791271642939528296824067990312188210762782807712307784149163258031538402335527097341089134266599452855774612401101940801956432140530168422529337699399518908753238068008458604022225029239526789853315960195451017177233910162195063025851055467777639469364126118900399173228300740289849701996172350195851302125940462571711554805605455831390473331911489533078352033590499259444682580355949605216956625298953366087656653543796202206523175249934464576313427203202974503273658627403400045039264251571770763217659390576303870498833360467370137646823225555412286106619379044323060023451623739450857433713616502002281001991553452126753050161409232236171829342929642544888307008257481763237424176976809843887348623998934738138169039219745426244055446541545492871842913881226935678918233133511486470127054428143250202060725597351107011247799247440207056857314759682780066073018811431330492135072097247542695449083921071971340824537910048428104385022559677723739439691148039550242704332509730134035469530713634167695466213781893943553764186184467678036392408085683802934328502884390439929956342331799487622263868717856896700893468725716307477791004347877889195516884065143271128621149943965823114187576032559125960984546032187302184554351414136449962730326337221462987900561331123121805375779634727322040979944276883328440034338774407404204031589404964271705548810997218084286869739076660803010869416747481452200091719129415246130475313512637251616331652602598568260799615224609845497357288434506307332301447940033511771936218489614870951947842347307671563605896312221586848142952152582003567287964368570767927253478058894005283994565828767988447154815032357964032330489444660248266532500258670661427484935867368406027367611998099685435642430359055687088278797060306912357088257208825200000422019753902549082132531760928707692838417970442558752506494317042002504743706328652930122103761281292389952693741468755317722693340262051436245947128321140712096468993417710195868202755950847035869245454060918314043252448176213303344690545288964701666808887411327729672916692474897342645248559715042579111004603451985908156250091148693942736284495476981979222919353273739243896745087933454334528897252731868805246540617667433706369160408610030108024948342272870217626486730169672548967268270766922690266677861568167642966005489990615581258655710393502340501929192180096496000972515301070469001962361684026392103407548601860215921678173555397589995280601378013549942911771951285383042790634690936467587052009805211276406916204269346376296863974315894309038752737639538554006527570821745220331763906532879139867208165612471013922890859016313239653878326814575759044664139806675964261490083338681529727269565092555095384804880830398126651188272291655591438149506968256452102398397368389675681534690233636588096504270468634899252700356342405946737515286225428626299959134383901531611291470172036783683828465194398496655285627903848911197841190803490757783670364646304222797120044567560289547363491587995655130729868343898443811051835931539994856741203485445528191747945943768924253168629254938022256621653469466384874810521578813192435621922921448323987483333108004701505417860214865425888216155605230547142996878286879751503972666149742650066196118708454903395631112528635333423864151609730554272818215914721929091253113532012236066388437324460309123971524002378383047291687409258353676580109411378994195214847800271096026557761280419188357202525637729409969536937505990393046972537004141348928315974794916265341766604426314206575130421883392616843074535285606635313241933857195972204427082182936549939347657996213073690321923094012413912701813011994765037975698636095667468138815134062829379709124701650733820500049868277391947802497369119534228864321564196079538166071988703912356037304470833545016216436375575925994810737974392223319336935371175966484634277942603246586078292233306557180314670861359139050040906388487929751844791473361250556072522407866816067400007630550848390221312705445868217987783263554971557210750183989719793167793256867129178949078153690278433324824899318733907938059425647033196317721813233157474965697817072978777014848715192721503233501637589498573347917745045476128237246266727252655225499568052215065015446331501373314515514981618184453128033115413547323278805664137731293401085028344620498569436625911620875011553447742974588383573192465418658738879393014711300367518556353921453962472081809399642442976718102617968683877919001794935413839218932060432087403590166629906085731764933709431272430504036437434879300223245762823158871143422876820129862394378067689187285291911608408610556087783327803514968305651600163498133159543101881163212278532652032994596881560437571859657103577932821715750110405721237504504735756995813962844045941083604638678253618692334442560877834823453013745240429263793485698991544826318407805874151037859665217047870631282402675575033541443080742251492445567288130820685806445096187814676310697720435206860220030086333930678460952915737528002193349431680806664547260567969521974106051935728111077190207986286383417790414689521199581599718334770111569096346749476107444533476695274750093080990953259144674591277430317218272825058808135452843884536989816880304184973878549751859921083753586469754574457806838014055634005874635472855018219097732630164827560410987412976124272119992625959988656857411532828614672978011006818650259889073486731365748500934155878849561708551073374680599126956423054265529108623526558074001096072252381836486349080592799188406930113629570329395443624962285051890764054080327155470616385756835604474887590849545575037107895094410824757027340111999348019580926394638219570211309003202753382722427863641342223482817249099360868553181725612323072278301265638129206633246379466910093425995523055097304208480168858781258887661604428416858539531116380398710653803536100357906057311953078332194093205691669394100940389471190499582398732818656798629532063298824121908999331438847303343513590335974803879463354137729999301997987696903468044069815289207736700311798344354741934277296512971220376732999418630174347007606098058046304318706872593575944587310227657755239044225082818091870111105182784165371271460124261639593453720316188030537279843029167275139752020316952878268657835999955581312725252923739690609487289173357180463287733480678226661743340027622688457401492992456446744664546955708420517638298827120957019524513302627536911551627111825721280628712731785944495348834786403088304066505454210493193296351175782153830478353785007505528500556707202505289600274128858907173367142938718699532277316262690515159821555532097513030803320397860444792057233144184073803586091686068826432567018502630536870440024272887933547272226395098940150971997311864374644137697442787228710763284087383956479659921870398481895828273082879889751079703379172250120705693975001319817825477504541812943389937083444512728772502682176477426755119319393447116996252644635863296912140153275100058449938948155775003867813519152858884739860651923975881372857787790763599947399723084703772244643108133720423636365076999084160699352616327799041717499451495190545224334293448097924732780805642223651153109400416593403480757275067120442458468001368414384380151564718758336763442615714186252417912020384234798016242711550557913646436445305202661774916921425416119399588463855015585114613138847312588836087217954053968793860043027129571139025637978314935320455463419793231413492713012208621163707613560260951821797562365290740256708239174958981288287871086854544532540209697084791868842052292001705072972967932658463068562833147042334538695572625766051042724373114325266198975030256805540836952393034984949986186101863548178496989647464654054533455224782232570519452084033813008323241495092628449991373598119185135455949778131853669837284570956491319112710511762335104524937646612828754929785503570898291835506559099940645129134424297625106875750141222666727820990532920640329394677161574371892037516463974807411927032461468405352164597848596950169557363817251928304149447007216807199153178892731694153798382602763522845321274320961526897919637530818073455503823451324567226375799306360624684198339046351275512463995911227060869207723911630509999543713417027236841114621396567191184691387084972968691246674552241638084178017972198928100786754359856425423531798447159283299523221424673437210888007313212052824367911871699020275408746229526719625693091211379152065577003007139459731877788183004368294293826784038446732083740946165303211947753515977276501000496030095271339087420022270783413892730119908963302533138402252429502759955753930704498915485529663547271352016719608790229812002592642917721367296466842995340328864450160845220622752780710166295344609093440516096610964733422590564818090006423609764993540420647962466952017425811734555545428018573245004966342366895617972281895367986821197049490516267301320464817404274680522363999699975031263043580856913855945411810199905352153980503074181665827236126395726814009781823760129907469028532969192123397209243944432302866049012206502385494231423794991209412593284162584844845852837905796233813729524655023598948004906157721703928716886163519856261407826385323050136297324487498993154023937429769026833397322153192975025994345917156770541415894535292880031835036500892821275532997717377081187575559295669339224591851300746694770160710002481788310100837315602899783810922951754329636118176429337157624873181475593432875218936543906028014758427229981307989530295196315340211643238479065990327656478076199715127587748253998520694903013977581273478921347880101819942629165714600012025737110311267009013255317445178535649611148687269544806994771503581519053029187646391750256633370044964743848761795128950343426437521040926737252705603484551340490118192964649233393082929351351981383938586950868951952249492490636077368055062425404651878344360247149375580726130569743795530451090937109961535188564045368507647709614005652229655383445122437768087299078121610177161592548065516432893118861766315943408491668956802842459905129067546557135568153302939489956588200533779217351618430748642880856904281679625423312477710106625662722276781819300352018505158930726173141719443975668527106987687419728233164156082905058852075204410788245904324878555449250562214365244858189517589450735558652133352018412518772322635431652846678466833867441370421184064270282860245164902974322130777077572078834869304346327575987400471995511553150056302285204940577370720023968331276509540247364712825501886063820005474317897553335592511137710269907056318988809596858742902619750602153900075689201998808662144297220703194824160560390489099665621260821066773806603230735034691160751748887785963735808110628576477428694524565066294576380450871434030527045154581914531965140465132091458834528553405523903999039928116346056643979416510489961074209416634928240166224554495032910418342848788886452083947763661306382272116715660994169092878429923436161612469962483647976764048627063753219322296892696660143883238535523258274063120114524897296923956887343350245191195730284670892611506648650060739817975903610217744783249173027774628608917635228074609735212238170095685471312645355739997758791484040081448728084958416300660030583304512659654291868749588803185839149270705125979716939488141899343956724403607883931297567237576204454530936898982359521402676956829972481902658120334346350005435589196211707580014021808115138782466382933366272037518349937214079365300339365056101170016715169568865228197507551423361351377326593694435470645114447567178277785109708059416786452103805885857572926263677345066397774124755525993081128912124314122467603911203920332192225940754017866760068536697086046478639339839157716658318660682574440640805623849068098120834656263118480992369810729964463233826720364093242097705778971141013457796412039792017003365179043268935882406522479830742092600437689453583686409637807887487364275873223229424121140710595126575784176979693660463065802638125355467413642784161285086328573228120621673078952601517218329333428205637782480910734132459187275695105884120173568416073092356796115837204487479896650078354541527639675252957687531912589914664678263831523308617702281185662487751756374297129717268716430754826741898731702776193391842587270000991972812592573573987986784535063536209097881504442460467489380383146753777104386953683776112171195232136335184601818915461287141790353352302460563132330388934955260175937259264283398800733298750167138462546932978164837190092862452624019925988905931154175404789570226471933089876863087151379057029462639226885475541148960946173947913004167650252850399401258625729147883843323267952384405299112268844281934236124890913749609744124707241445113438474639356985998236560556964817261162824113886489539264169040092479762559380566717000538364297558108974704388505979410977385039209523054402048310046866613473381083443033726682553562544792331257852504543549694070041966014154553570284399520715005356335153779165000637950601989758521326956299390368466976085308639556824300302172194498818589399208508746696162697178267273506891965659738492696624040540681245457212193504439594114887872779410201196571346434119471025846286399448965962207828891908458931378402572078059036769566594378801470942356018688987926879396094714711735260313680024773152114734169643751483528047995813510777772539836589349083246691885217805197849240891941410476294027252381830294909569144717993754950500134971978268002930167552295302149408500411127694965703099512908701453400216295615761363737676139365882445803998835330167623269076046383969055299646672788670850594676011495075028933635875406137392586058815927084435893142498878204640063428605466116741289724119666336845101890244971060074292213016376392612492890430302748431042638539584788565852473215998535672237450989491232623025362439613781151319137999285890991809844876287360602477370126415763500935583053177016271723883595316125467137830079070540597163878726303914387010438732932096797332918220495230762931108733609207725277077237463889387257668116356274977663099981454562183185087283234336065377846204883832301333641592011640141301706890366252892222975731863308583649800986429278141772790761608573556616897227545111082076138726711253024919780317913635039512597164080540080867490782233386482987519078212150479773578943307525973129489798839543335848987026338475972596039557374930995042720074029654351137666025767133518721910807231805906117407804673242255985747464837941436347171623414398078081836071469681656865997808738213462511305732434262038497043800321547898630324853136836599931501961409344344640255984949662416500428435521506302714326967558409643466452977839293505943657684494836412718117742602646422636544048368890129432253308939758869189989739684328120401890055719029941449000982095699506835904133507490725984895081442619307470736395901161388543474397773732200919463502642895422375807421892163584749773169884877371723191532443596408773532940249350864199110364605698366798128792782259797621306668768255916296379874392307453119556460909806717435360801283532139791198042725712086962688878065038234384623486353079997101698301996480360074187021612619957892444299589217885429733331100886707221516688335762492009010311009976090980665252668644423844360766963859177478915545584020795317750908514445278513237216299637448382505029630324993722882359346853526869221215924140393019846369925873307535506494682874918013752324158150202284358292260562114956355740887409290482741136799606171559584443709517708054625392815143824636203641529410366271073815980696675658313583032652658739527754745790680171073964223619528219979212385657098226537186641759297390629654435176514504565353111705519177722369059995120928954593693850437718900834054363213265027908701367001379794982502057317471104708098823530499333411898329235009802171281335767104036084431574097816306427965841667293690009929422965138702872189338084467755796890823170600202864134377699075226340671460422578952389677522431678513326889238576959670241669212420022578393573470736366482825227099837666175984970002623227468688216258119039037963712945401580531406944255953065976849899964913396347508750217990752924295541599899679803868466705374377913723200473404817238770096324302886360014751236874004498028123795612129544277796105019660397461778634887499992144962629115763623238424843777423331459534771898106417010542040220391261249780662796313495958573547982328417498954639860740520634576080763310409979746055514195914416563057491581314334624760782361342028512139741510397180229607199742924459745037678328447749251155304717728643815765164169783327653518890053244992338835877985857857995116542110277284129018050511380765150271914325750079858381436490039760175339866028796888994149158660712652043709694103827197185072465024873956949740289574803033073682364427614953139550406427639603333045379376661782878444627063610636345407588956952969146515499788368050918330989011221474293308842669164466179420942463909208323584613768117018668795213029637636429517928024542588065978114290682189972140457993540694393527865658756432218693267693012919168055367231795284820663394731209018236843167241090901832094869172057132933471848837981991521575222239998508289371140694011649466658665742927133805712488654011128432154440161576383674745261983262130604819234158908857806045635431491962058948200394065778976689134850164428349163281999815712371932373346672681734426422954007615465149009353809728144865860291449450344093643122852422827153207154893325614258033659762226030624006821465358728189125524124287498341808466581246902058569410028267428452371066795051354444505084757042033251061890655301854506485423486347658416804050424971726725869385101619870575929868770174349552422754288996460514621749517543601041631064816207798309469140676925086699248196557000970169871329927404354006933071976536079512352712198551975975925868322195979998420433777943907967189820997163699713600595545700704825639253220242022537032779484258071109461603033026409986487380797075265813329926849131537317595713197726276367011263199574776555374419892799159812224037018671805632804514556443795734150647331224403544796440983894677195645151408348112080109619363531169317664769833513212583070189743658356284197558011272386623245369822698894508324317472722824686381117283860034087563573382658960539107960105174715953538172311819680357205265989863638087598575536686733813640607034129558670060139576130929133185196219248459503746591410954475826645784029908210648018810786299696292120306968136424915717348926279632422465994816747551895422149530768635249456012670707651966124339330725793985574628438296482012723831200904546233739549124106172888630088756745713694423504734319814863412671484674413683339530041330104052983303560956261970466587295974569723539530043450206162163711146627750615544628523802454235225846574601383523407139413021613734622784528332518954106766383360628156226578124923259517305153779034131611503542487646499814019894592137028883025794515045933983815086775818350868859536803159783221300522480895284950409958548812286458192452145373071696324666326252563581922497801619951473415966531702520716692879018689447101279131886208631370532253001876748872146713752365105267141697396238484664984139646956013001043791276742498955968523903862978823389588127456449780207903306489892555660521395815509843992520444200555995379939472810240088247352800097506672407893099004754725451970962832135222354409637301177683207547449216755805725588035273783836407915000642036009076543738351550922178966797829725584237939961671636210304609466493292392071965501050291023381282443522440611763691947026941952055221066638362906815955567486310264513271818526027993559097529896773943477576277915976494964329257049532083835697332233628716075631510685659322414209543055239977572796789620422580643245717627138569443426813412997637950922307869896560368765192199498024164979564330580136286683030221922590430310885335186669988689746597131401918601598365034704520113841313140844415646393450436144006036481079631053335820480042523681416092582274948242801323380143661596640501167291146470503247466780588952253014303798164859850996203002395604202450076790661613125577136893994610032472771620911023459889882593457919639939927839630658758002198774245852872648615911912539368816560589715027449149632965826714506366210536884545556340517637629056982158511395456761559777343564082326683353623759687188851457860727710263835278003330085624783542753315117978208899534266862268688886263736495325307385228889844776120404248485795153153772165350546512587309944624443766474252334611123620392750959709392235043709916302557319435521280884123658665580498392666754680368649044725881820175870458116848592682087714278889629048418977199238231780814306902625444113516270848679540737231180041515780524286965516826639696951011554111379710960195726319553339014756230277032819619616739598055696949719743247364517332169993780410004697259092055425006164279267481603886204094498736429710994573697202889986473498470729568552927423432459532920873597125689334069346944646528760937059546220465538196407547253990270399059331064177924530346894001269880658057337605368115157869662084470602207086629463239482803955931297890212128838917118049384796551483153448579906845993557600567600059387170108026463896487010901439736334455355502057091600581658358898721822401649351985318233973547161745635846411284499594944325312813964414542050838599157270865023502821312406843666468869330822931979297217098841001708256805267871718534881407790970016053823081185046133859275888373737768254717133397344967289571011592512418342144228555855240008561764447237148313336736124180405523982516815456463817376998549505603277877026926946570941728995398092935965786923393054528432430652832085060835874849434673914327272539672192724437023711345077507684562797400481534200658174148215219911630156027715529562401152646270643985320882475426045813408791918493968968133929101658926924034456060840977704345113294585477367011647797965298142303042765043324663874481902699114374123353229750578907746062443084345209128133078144970081700404838944210929935109846762481049587363002158243047652840790672106063248660616872596146470307950911427294824069959783240264066471572539035219323302575670144078821134820500394028633617957921331498404348004722420253895397792777043757610413580129539377089303048684679723283510913029037050685130393462774364267409728717526582583759439421494122420615768640982475431284162969640178661730852682555404297796734317446858146538276463035168609572052671007625113094409423223741552689925852804120521132150553439055144495407649738541466780136399830050098266715740453186288435953080125973024985192779752569495432393595393258587235367601096814123511403656440502037745483326978423675634948324516101576975175934965318164917195872594182485019826976657996508877028868584122022193994739662682348999591244119451983426808651354864539172096848529223826573633274899092673419408197068196342040300693179496756714032347291719068721279253069939962781242682760502085146310573243863254662787271307025245976501139958031275323814332947048997802687259554406464487765841060729503512981744935490255187441358690444710528827989728240620895130446374591055008736422475309825556697932268930127615804099906940246160936266305723213154895292401944446467039926913133684220807214954727292895582203537622435118874181262406246155707973055562723115024788276057101354713325638964118191813556232397546587259511370331596450892405328550963496338730686571247706417983579313270353081389299488868920067133309927423863771100403755143053830836863793006757603329719203023990281261576815433800373203459314545696890785766893508557576647501856653724370080954020641847572904978364006788708311389148886932641592121851721463867041588565610820315916453296809078343604350770126013712935581200500161522831649557894273731623083777580395267278946455425298790863327835463908163854898436501827411419181669353324684858054586031219415225018388910885858273370031543978358488247970298635798132962537728841757228069166778790028597498377490206051831823713016333454411959340377323750266199070578531414077788017259056455591375850340397816948761767993917160428408694006576639780804535250349589134413229776342541893783123423854767687643731459769587833348596936912023547757281273053256343086168616744611989150558285399312460928270397335281893733597067212456822383289559723910485536652897573993122180733017728153130157546842105629150197309179417745503327391776540853359751695939659852281874088719339000570731792622594419902051556019308192544228287759785102394078346390425096892042208425650955061211051822456355176775791262547126915640016913330215809979587281570101984530916775572416236060109821010300273941917378600914669585714659190513318666636214608939836775003157204264302891805860761018282017891365529110573900161099615740678214967506848605810950103932527047498474562589348951916720448262209787621496186565507347778348777245278873978491472126029161694317697150551050491919455981063931508035600753736584182420721114797128218001900346348344023939268955874689236880089123770520718409592583660835920559538956476722313713534009226410353317026860467712212841920014498541409570663102407189356080303115911611605084535722431724545178478679346181229321201923124751185608375788946854501955234729967879028748922407313185945837101878015439081185771875259967525363588788544889430082596599907593518572238525036169746840295491186498650261573341080085621548420840780312996932020212250619096081831360346165173073940477390906452841229274626845913699420727875490256643737119312667076849362378463810157844172758778412243607182766725105924528599558065889826882125390299649916766964956977994506562594746895273228922021437901358957097990376810596631864246097216349116158794051245173839049729442477651226337094604853604866535207902889531131122455426744665158434759313768897133386762642366573669797657336359688570007296194358434936837889184599290751415317976949580494697564736327998660262570914383517423201623422944706728647655711221548608147201952637372891710884420496942290477555559018969496850949980916935997764789604506996537337597407311938552795329969618930010758835334760200314110562262628157920965556321989635256514923468323750744765550544809589075458530956553446205441683717542220287986003761580958237845395940428247506557245006694362123461416235731469303670887587958875837406075120582553425944785580797818069104612841905112236276602140228990343919784153044132971690534735418773667884013932398721779961916869645910145985955465539150112726556753302539404795084807192999560827512041802136925022437416911878246776406492213562451011579003562017495204793834798372793081899551823228136133315966860823825736466901668794276708698016187647915621441511794177752503676702559554051620709498021323464648213413706500261120449993210714106167091276840981268676710075441637367343853127277565859618291277966809554285020663614811753359323868574908739868915779054766257987190384076143799858125430315562877378641092008299691451612478588629676703978456527162943027940854046200037348768753973979052142164109710928324069064518210303249643238001081572620755246374885779097742547335913379335328120991078258024076502512494267012561546712726755215043682674162356361828598796281150782216200721683910021961766381377432479337621046305280762808772973883110231408239019284931213034843947514971584267752800873213355449945154823377373608465292149530744368027901303024841087187322658932387881664336874044405270458761321449829549959726942500358494917016297805570225616749090934923319790038121194241402331582468111991505833708495771204132014706829087083801101590876366050021953681685309692339412353670666906220759826609590021700853079804265833278014142755278599156992517012049128553861666199248072048190985765805617004654917248569523707983816284801985460788105661967436921977464961979380539696345965887301987727349889569937267379477435081242392569239408213412701092023546929064312500648221994550006756631887050708072501933826760744941822225176833170748179897171069954456450723294741900471969959117757653110292478258540048283945450630052395171766098804442295770853868322357959642406075477748269244357821540690035329045823686402544703988394295413001855732215977638440904030308570900456372121063067007081615817989138852158799802580781408279645000620039353485662660467865190967459592498548358808844568563609073175197658760501385203721564456684381460512184142319785529395494811894434667441237305396481665962299807814968580917629551204356807728694623618297310802986365403240812457564745101429796302023020311825338361193429584363772087838203953247856451803666333243333826959374050072203154183092584141859362138473083698289810879273824824459670531093480177048859131097874753455381709082143374170498642601135023843486843872105359841873507807067680415815642944171981214009223478743950581031848988706168172767116946863328795087374076787633819191673875694293934638383121430534268382134409140062053455543421961011422859429678688417059270583605540532941111655479558520979865548720699012146304961731903088084720272956452257255689762473387326292727232301155867387445776940297182470306416038372839499742585900356679589293386178716133729481143673913934434014238498348294773709144030833420609747896242073415460245891398533490416049670728053732654709534055134824701054572334423602490658850103689007435190220631073951748236828149434616934394064527426779601203417836990109828559630572690383401580754997616397518038874042987485204629351682405615486326313496853574060590003654021542213195107269296418947985417604588840040232440573405386669278020095219691009098941458725213150384072764988224217162271991966669052794158793767557147206232531904164664255105403129120898407816595945330343837098528539935754641046873344107243415430168529730782840814404868706189473158609610223985525129129438428217510467766178167209692652351240806595574130164063434668746337511516060585105089494201531548192610949223659801941625499035173063955175655055707026962068641996946428800438094250835763988740899792951162978221827648090751930545648503062327328680921068990486834335651172278357775343107884321483365038319202371993473220399988811516889150208030124763628439834207167958634076255765265151755356401233510127326167284598605736232594981273303380861509311203986129065374844607501190491381158474418529194381625128069850613953552772870364171490257369999032545058527167846964719200673759755528646752202939525138355782832563192924116987682988542004854186257340670458001865670967023143659871428085118011768211031915210590213259826497720854330439919739220156212929814420692029524135398676419473314101682901592594345417205865095566664858557631189985415523519370569595484696709750686415880248795091764785699679232958533617500971543698305927579522631737061480824862757467749803618739261607375372154529719060613609210143771464599902312022011838915115548500964684563408817159359054044411857182842894475934098689786800078096643336554954335143315174921085234360326134559340205311476628092289416330973757682439036047139523970756148902515334035693355624004224803128554315932704871284315497927777921164615403381220700091070935024038499140954271923501722558115922896303483276405752278548659840982906182361583522118289737543668275679100962584180567286109412183302385811928785590250173843283176940731070644858744760947498521396957763193215543042848370299067158854546357414405381241751769191244983441374806733556658134793650912298873604108393188635776808653553615447842447866291169846790592056310869493287751852391188770873357707788758346140521168817796689110605722455005730648852845791118440679892469116646685357393485475798520842711253914889364797463137954136447662665220160340134952040214492622504410775727164415400821975552073584185709502584365140648849658632944233786731241182488226839475766558569968287854182662428808468673616813582343736201952978505016202170872986700025407693285497993349585187755123960482841195004902467064050990214727388240341910905202511400267779933453923530742901760852742368221906446187428375923828629679596904800495613387610168312456445678090864779245992921725106367103121781862315540856632662816280608169828466116596907978880120363983204989953938237825932082998790842773721705896199423751701048065336324704700181554788961949005682323492343680498124595686974891832720129578863716392863674212969228922621097257857170038795704818407977997481285685405555224613532903382874847979433889730084801848536751929094985862931870078349920554332312873302811923817545636241946426159536420553188722067269744054461771197930440030160234617193899866193658480957955377294192159083244435710028487455594548465262664640341296253998647343732450203818791820720220434974660765599489746780746125298109168401397903563927442833828056620017380363037609072003290134292867435057613732452233987166865019708572614371241676233256100947495974122486239678253427585186117548303484096520059956741926486000597897519349606612016485496697318887980791036342076045637463266276118182116731871585586842802428666370208119629464110748987675511026685619729297838327589622699283633961823503953049277054584509354791494195654368812800021039067221100676069517046265802240252751496369898620068634948909529702555857450075347414502662519933750149665317181324068601330695299990256048762363761862276885576549050565782565362802042148594551767711798370523999029570499837227512388749849003436655980958511304083031273787112876922265221016715710127395553582313522435916309360072335695720410449839588370196173757083992005852855091999512876993984323716378520901964810853288867605059869418263575934894444271568434078477594147596609595807080896591670094586888298261060217051582250967438030372414902215211336708852327860627473590532359011464636821576966611925113044918741552422520546850343533499725343463713765619756115654517827039178608674974339236575855448257491650422185608198970345940307566099236281287529080609130759711909091977161327995958459430401520537469926968295362429511638432854980590629704397524145239750717241085032588784087605331645731223622289779185940301210556585842632092374271207443657665395234186322135034063133884069328314600058949422212512020121849941664096889723269582605111774430009404199777928152637136737107263306049469738579962437098834994099333435651870730080118425822352711006061299565818796254919816244788738964841749010677835481492536127698288405486755634604292013919351773781730452110771884612901445224520683844511684830340426687930099935745921176446958789609323866218741109398939092007497892770620609355119460492944144309736836704788992989864825196185875238070221169660889570419841464668647150839340402564735616001063144618262100584227489339484378215064080471414149877478590244573525358543946931072543791004526732974897430589852138204046400794268540863933249042569561618325973521337411277246538339775242730987189685621815021003986703641804424934585846243252164970932436260154842504786966605124227241413227839589204640825134307177109326437937552591035179429394320912028664071695956056692213959409317969131931119791880717595971783746170837845822667186417574727395058776076511705641920358557307899512997726917861531795103676915860102166873065645694180095711026989571433229955753302160036636283250819108414240310514927659684287840629226897023445565664453870343903526968694714829285918972300167532966853276468876489450064033742035448966670291118039244115303352062666262061525711782554663731044275271760616841863559308758113353437580489286834579140901994366837452386828736313709825356614825878348744409415244588263062059647236803081509407560397722838695833440376708051134042062902772710294205836838725924513574112441180879119699234023195517140205664837854531291041876898174522736654367849652654306706256829443036876017514104027384058492421308464312186816701780768331150466891149942239778918294089336184575411101729003005754244984088546265211028591552451144277610883413691474650216251964843628293215390087893564309564624963946443711087887286908920683859218325942278500991146717598088389485374134456384046473081749378763438699735235732057559740773317031566582162856010018382658950841366829791243319821116208490098685328386695959092063132058493593789568602695858371323964964634616820227645181134074366983078547846457282799328530027662033594611731644340011065863604097901750248605781731100463851456912587703475702730619143194339929273183336503565154953958512320660371140579054222429386740711945529862360972486703438717477104622590159015300874528392620242077577335074610999563942460042679466517109923739470978957979599814594052607832641284174214869886978530018351557055599416048159522649073174074335894693798947456373230742450553232034772663195473459781990179019402318831813715805074959326968918704805398746771214837385990300366539278413181543394296652706276718161664917872830549088034708369734425093011335631569955848675745471324084369507035633150667240675773555281091874273216407111949037305304237481202370500097687975526883668414580721077178983117139072444611164369966557089760036125912649457817284222558582443759776480164435506228483879607469195157520572472574421233146258282375307067351841201107763838428771955429426752372801118374715790641714798134935845561968053237282362785843734338708780389953039749028519211526749587177053698089115441262182065378024239704489361438992534658266900678669225105357118469937279154703136260287962520129938800873248792087492866650642651272734863798861617392438249148603456694163489733018787702588663703322849354011575880941014695907279185151529472275209698063401439124383969771616957622632777031006427004932443455406469152829020705103759407153832434650514223583554991541719858158970450118225274063078321988231267134005760893634229664927217962703403145383351915274237861446767768555208548061913955081459835450768482911124156085034580631857359240748222326206938134783987840919751829423050439333253958433403052472643939178093907043843513893452135001769678124537668529805252761787334948142451111895831245230685461932154763988394981429292435288098281883666142687318918020508663284800148488101692484113049369475249144331917995609574619885321979258747048248915560158338110892408463820654036366293461414613417307084451661503891666802218390128791378716566068095433424577628799916407794422150597378360903893750815790161861136097487708110494442304790140385442729659371407271886134832287193418987834362495236160531686724012505160020885451075356188241720137918501094840598021286596343877539322200288615431797797723051512545314088496690987781073920066701389373490046812813954658098283807596884140544047071635643099986159576371967927335384663982397738197561424019511206540533545284765295947824535266113045021982683975503600142221245231291461320031761085881453436423653357564623694974356194600415192250157198404788101524622708148247958737970771919611320130891246471436863277103892913668111087569445328434725348430226337553457469468112086407355812128571263947603779088815990774796346050526983570906514273116298686308830188168490181065723830179778019389394513171862653656387188393820110560161983917230390196475455870169700172942177843569243596206376355473717597807762671068286955972271033135953213478606656577282591571904001781519042369854669703684443900336886557599781304564072329362887923973596871724685813210492069010552499639026019445602128415309548808520079992591351157170600116412394917008532810333923248308429152626689009021382629213866440652136905165038322656305594366082625771002825804114555143722234752695628355722740343383598798001132038887133696681391147299070631780572763218463862760226246248236188401680966302314876935446681641902266655441248457395712677555037272714313586545193639162705660041630352416141149062376677369596988492163369305269653637835551887476640541489481921553391295478787819235208474721341419744480809304636776478252155811503202409713760126346450728824515101655644068531375252611967346751567797796819411101353925401054348586858401263703669717207465829517974222122353985513160148471394093735595418406248781620597032785460559428315902792857879343727773957902740944561308326037259728612421626043004832536873496550937344260305571945607059124751497522192757415883584153474646806508652269130493311185423458367919776831399707704431461676468024741216372551529667827526638694811603246991023558458091937892622263054606803821093615757251752970485698713199075411666019294096949005466764313223298895476220140334668199520813544229502853059037819679179517075614281961568899878670621551919980109974195097275334693138552304220026283000688558199088198332996234081550236874709691567604860589343147614628884045387750331801256187105998426321230498061230753477610211700500343072997619554654387189536481637277381712004449055243886941030975157255358700388811383124134205577834844176748684664059805394681291933250758742586157437826086232213898874046958636939355918235055825715616283616722094460560252881925247595184407491948879943533040189693547416756735633529919836265173407356587160325780542080186756362484013354119183641523239688597357440997192709979350634778645112333463182290375216822048741142707915440017567992657182847118037788105112100251207854270290319762140599555448741073089754562381751732818963181051869964259599914589699811434177104300647963724517764367926816470825822578249554258088046415786315343070791710100442600111773022941099504143264456211155675366037781499704810188410666969023490623401321548581045958201722055105280955497651828193943133180804956350965495426243674794571271985415218044676578143387636178724525288152882633864218269499479625650524467663441202784533944828447254366989223819846805033260087759543825649764650062456741751417592035292308909804533253621806145164052245028278331347403969348465482903631865335216472680459836892535423200366075788112756277124061191523857917881106639901134181284507838398418128233671183764708000157242691679055208832051033940379134781911362471293855376889241568092702476861977063644907665640174742272716969233673358702647084148484903935397657202297746684264070282191908479822412479453166143100549800590523928876670583368851248220614953471098408104418628255480553223469347481495961334270680411691210533606302779218424982164203310654361015178532844715384590272471662895118619930404232345972643990902135311541523254608329912242042477752194781622690374240477489344398106303577128380095491530808408708036638373509972067054544412130295919177426299395149953072372701704153641965289272037283368603290614815277428962361910483283504140624204070002499392257450246171793294082079283531936652694072559445990998069688288270508443992466325749946007920429864494653239738612041795052124273217380630600117853767871690995689966747341307526431677601722337977244988154341024114137565109817995605466773246614749217310370303939838772270261165548783462578741333545690827385304805327381455856313999012947990806051240096850286470677304592093852239392125935558028050420317822161808740658069730589583588998934463507612474166174975562415579901041030856355634394540462651808981519987249969607807018299918085627715482759321826665405971152225274306977589201565352480641613494845071130273754064195830231773206458223223620853240066718642598656259790392387998018943333654872833174577448069368385731267768440595744709696386596516757494819256737925970097104393452223961584944125667615750177592337084182732297736148715913662958905855903764111538825344391673731985982194663706780179518514116029041960764455470034525143230264792914949486714927007714171177974324896072504843263512081573503575823559391894560611472942827396896938048783016110990218940902027408851588085536576456795140751876863213115009985389056127901440785141837883969799525899524657046806407839328150557151722333976935965845275062384841492677767870398260459268691266896358224532947039146622568228028515614781934535819489451037674620279837317420710085587725985978634035344660416210235720186014310372753074468413012629933508685097091927266734836791840414625178258520417704476129024053361235846599390815227700436562256900427095161805552571921484337895074558983692855087588330341713376251146142907521790170964780818001936818079111426299247288212427320298839301844769076139335259040773283998124400806893900303051795208450494217073756743383108221111105798772971078172509390762116919928587844757451314437465702932713500775691594495595619249896155774434352980642102738555454228973550160042230199079059834770260312326743054435128975807847935694771711712099933678295626026670901461301468153899786834554952224077877567437994233136610052847502811624563293509946084212401695871899861793363457417338654616595676528250272556068729106828998874866533358714347907215554260024009634183502707281918158909406842080934128035109653790142151455912960306023624426067981290176758826998967089472406902109780447381983925751068605694954266468567390799062964527790529898994068972785530461507394895685379582431192073588366251916032517109159237880369200880308711452904348799994816038757056861460508893593631957700469187435558165055256567576960758152571455617427042933864392412845527625283522937410224083086925277261582163552843318812457170535563348195387039344813398865378439114825329456246208404919559703732584302023763275056042105532959397113296352734062815851476328611810541050806641717720894702618401160241604644168955755026295170989584093460438010741648497794547576830255008566249740912220904091272744365982663056479916582656086657826935847565880365205027113951023945009044169044921452981721312759950146895168832485878826626466625727383809995909013382167690879045502215140429850901770394073896628872803234961445274047509385375284900517625529048770748613439087070426923773444136336408014307049899147909822412680098799347563799952814493598024339295285920502595216137212334981113321685049523840848654904540227629044002331195365320970490311108838252614826661229259460812612786311212066740138468073747385942644839578919526646790622030864277330423204355035247178336246350884078753316915656038432373384339124348491882711655958898062113609478038350105173132503835152381757442849359940804918154498708977966652044956769020263469747167784445952471085204961141666990280936381160093690702884275175672550179162666630613015153214506717600325882151824590253417114229755754182949010938030766207971073346439456404248165265901578529081034058686940050247611312229304847150088743938402446680940138322917778751385613070512325734857189851674583822835593806557717929565223444330439896883333264153411574447990080213927599005188660717665167330588760386702357537008109611396841111867676552704300353827753029948522102931363848369908894274631642533087752872614110911908338302678696061835834304738196623213267356175998351813753026203786794179701281387673024921475248757626418700145341476634226101897310657776173089499699088320514839714492551256083472041322731937943764837165615394155959092012941491686144806310708740402385988034973067873134040563961752863935218724297427246023641126996521768978574040847458816526711953473379492717079903080539035238782526108167857841167296506619886237810999388630959492105611275536481936688457969615646771298602214771720791797341781092165286527497275916937072234235160282265783892383337550225425409707981844708857895521315009096802056465389513969139508657595621907109459064207461541338450484837633831729032552788806468316582564823905206771819026022300832112046908234303167348657043031074814546936712614022978913084700345349618129327221473659630733815288335598959818632269483194201444985968686842250037916208152966777616340177891067586099813622257999843933732890363830694739653996882250096917038403914227115819918160808899568056062674929155882566746659901093272022813463335699944133483094651460860657719581486605377431595567472594957897048465655237392419086964156190715920754765808285688810902093158471847095039776170891545453835136896041638117123779830898884549181879958053283126899609075151619571611382711413310339017481105416766362341746296205723980765564299619819417344578728953393240620209408593693984599159719224217709675141407296769430422145076865686780277545734289197991884946081164360584461923156794888627149414154262837492784947779961026504073919496557412987534374219475414863024474551459665274992057295883521561596431189541681492595699032944841410727963613986421310637639812590490324094980384223808051051305655596548685487810851892940992814419469970695872339226984996192986380998978964659730501380948918228816446640090485283158684371975289775032661532538534922103781643182247915658448700447505524058054039355083871911335326127695823634431217049535459830009163831635571779231386371574091386043516451464680949659239750073351617713585500344538480778693416171910626113678467931955565311895657368954371285866034746818190694315514652608172623130314242990020650976763475086515045352104672094337048116316436693622412454527902938479799335646769016226778029492342741018794162948901937259969411745001846109078529424253979850638357454607016052686043297780435816793661782621102252736140442899555102537334477901069875549471245004396173535140038096370023321268199972940029316075375138180652057695604498354158484858060623103319027205406798067634493169574817505098332517833715228487146419452112256224282045915442413531882490331280858017585439769686318277649424235062223377916384988505626360681105237093220880287861833912312436185082221963245220953471161338275056582792548717048003453834074103740000648403139662266781048026318700486610951637952039605576961772228522387163270888991259699482764249430844810281012985407286010769889233194315193635427908658424859255789860195309629233840821010250400665054854194593019769503699102554123252672507979902753816457650962747392543291700977634195342572404665417094153193610311066691360074753291201235886897175974505658077457385911477112446378099811248634933261056646411158782190940696875451098440801371441905507663060267691194317546832689977117015666147285464153345621555343225014884651423977159161753063706426493592325850186431363810520212064656767676222556142507404495323218500966064080406573588030783039614442244782665001410643934488582775365713536838158567552951657896730870596754071439874248981463765967726925425278613311895263001407323521619391128601672078136651285930209512437250688985402083991602670070529631904389664399868561990967245608199043175785266946738413781911925274110609796604169388491558905717133574916918530794179817659547167104235506749346035575679261546980194211627129322512131860668139640419054814735856351708273531991197979046460452706631989074522137420364828053744958686283371483541771332674101946959601335948560994379510253138773920502993139220082739025758139144454648179722269089089903461086197883088451891718920350009262013278202583266794186019096732053551727113956436606071711386227354156983555862687167875077968444707469662440340224829946283210349232997527973806853049798357661302427003304872469157477058031755088783527829658779401347069782910653622174793741254849352935665762767209530156982562841213944347044152776401659848324506717070926928575794511461995424954047204142815474600066249143517249544334352870804543756381816097269543766917767385598203450523212716126297894826079346583005479098893631784055718886301881618599758487628046580334399594582017239151592838838794269244672055696851409267003983064213866355837875523315917916613075319188632450573731406559894541617181246703084518985110142258763149952308549828786925608933007695716702026534319776408194360332937225160789741998509542622005438312622100554949635171970934449361986305698362532584500907342945858114003945155576071086091704857740856183534621087703392521233434370133424119552066402407925354823715679218353537115220107588411672620106691972303488400254482165291177508116265046296819988326661346850153044385132055787844478370178546147040546904301889058912760256919505561258278875186847250097623548708481074396039321983834524196428408409317393080276797841773030175962798291761601954465669650850386612359772189807228882405916184848418300710380467486809598296355648357799427179512691983597842176480543811772186783801176233654133188656064713109793938075148838721809910098426230726582014931176652512571004218346400449599050851204240990011874417213655229792888434338842084307723707010716280617749546157624728717174038162500053504060090681053087986634618278179457362934451223939192817004288285758485732239832977352296841651662403883931023670978745376540104355075816513421207952282536560381234188861021702211074713442639967236348671463649589653421137077843669491999624764863608214444549077949720318264902062278980941713150458794817075804141683959031582907299314216270417504145006073517307881190054121794837941052700839465792082480629789226354782831680894955591095895452841537518793536779217212644205484439632350085336096960616984279645619096027894957762232438202885459373855204179161451244877079221705053447742685474896476104516745010784063080915681212832032703001578148986910682910185045747350271343877548578304782891626052503554376781358066306614074952192943429702520915240503117955763244944115411163891626885071185213408018133521057911914527804166878949324517483935719738518100188096238475924888832326892627849767166375539836561387163864762964461200153308154260864927001108405070476942415424163738849073811804357534975064622601237770440238022441318985855325323523163605956260141181746688874144666351225163365868939007846719185982013720688940050560910259614001752418207786856857919623460744379616199718119747235688441584126476907407003101125837270777811924744524155986651343801015606584942821629974269384543004322136336545965641225894899228909234649794470382417756079662127129255424687364167371924226330700144509734915906721721849831738879260727592752357328604716093572902230017379032138145558223229394055775449753064550562008300264895543239861882517255547936306603108772707676456721816425712207659386426228914042973574911732873025849326050598093142262097125968943380457914871038062407672328312729159423949614366927674782845922407114866903841764238273968702917235214914423403377561853214816900512035950919554875852580908211012109720773989747212199047879679487800082431869095350323364908278969116223932190633318546070347267079116016771071503520040262380136305691651916962110405743316887789310776895391289783161431613964459459069379398044471294735029571958429549299355270960498773980241780481208557089258390099780736920334031145972238320480555564543909199498480627054493553336621219300804451558072272871573697138912292574414787384953822172617265870882214720182006364087307744500492619492409374899121109468242759852677804023056243113613374002423200106783941232089798241997573170556522466481180768813199626736986166640179432359990419931087787422371726815206726903940850174752375603972553058042449903739074598344692231049861772313941838071345413834954565141599606384217557088785210286478161642433846160410200960596868239894173678946834663598605481593469605137418127748981342292848861684617762063980801245034867753205176627038977985925361151461531065783400876721911696944717368642304477762786993555871018459991246807084975036419115578803053888305457670043667663896105117368025916175694536925608056872979851182874322448894548488357464949879521241026608735139601910944526608657792944043233843931690164812950340534836518038148893217679040774780501928099076045462134835567435886749654182722385367160942991728884954928023284122519638324625946381966678754508661127998473856334826763292782711848520940215806128620181591688788229281903118074193013014411550285495796673218031847418565586721830235619431111775813031652891245205143259669238998989024515499362873699916980651636677588764784517911408363540638474574700597361051746834990777952823194150597664456017756098786918099784073512258319575735826761013279373657788410931176243551066842316348591797447318063900749528674490361022530250831139954730878938395096743416537123270393631516676299122503141401200344133225808767407707244692768065926996813679119734232816430180819735014986605408323278715176411518169157787986071076380829249827461890173943477087283331058065808772556493098815321274974351613885467361657868308597800917559678536042850719825074349779503964215759714551968349792966070595508255405461573343440602999370075167127816769091891978509381366879470505071202361085075922450452397584111259368218121433681961318429149298550483027376760725609469889857627668430692589088196351042620911343465267785373887585660665082929096018728836579090378161810104558099245480321535156648408584254675071298969027208538069945831144203284481581587650466323456769499897271244782750130404746706898105937445878592578390145510043364815875678095947622932830344892339723780858797690957344258583709558459572962838812826056253381164226339029876492853528481496855161323867166524769017729460805266616282729206838136989463911372428942540622059867003385998666738626863633909202440429188701178154331636163842572341784608658033729390914286340560725756197166598833395223545372595563633317341148603866976403037342664954703021200350551703927809096395664698297330786346982950668027952196287325450817644426913146329721287497723915063538721122825973964145076190104354467239619889713830705200847920590569024911534951448255264417783595409144548559899070474586136965792850160374562910462361165730667645704402507704107518552161556770709757534908652864969846557514612634516323236973346504333950175695849402231155456066434205853594798491416963875499055496154940618780259581412776705208730502094728206182713443717692414207980035844954135585546442053369771664575135960789937677177473237811891131097065685080401438959952495410576618763548653834057900551597280079189193325452467377375053087283502153575403393312591929589980964564521182085263443993079558731116961472125971757369402636882202330489826385972273912946832354966096220302777880065645585239901441163911579883631214857654696052536923698022937446836610834692897594874148695854935444417246117924558326446273989713155323206573043113816301133416635838078057593434654674456257016027731350614975389755247131138283910383874702218992981438148341515022767383555727497470344757652589500125261076819729473375181023215072056221927898765813301903418485784277186904558146668137454023694855542138097843505763769165885803626181884017255742287358835032178983704493888225007059635552831603681210632625727401698312360451739864721168397068247633544923602794095546791791588933549157427898599445115131790447117073726940097243555812616068217842444606364080025190893503756777279881078194480979437165864494502971921465877873998400288412032809498270830877721519658596439257937316301591418530834376368964707494112918995546566225475882062269531148816039043165658330987569879152555206320385010987680340463346303043971617651018689409452255828636511894223387900876197069449296956752471318697108850614323622395223267186217160469230320759901655387196882646909466671885742408008745291630579529843281419507443528426014041749619852549395459178630640849443438582825733623273230900333965592938073393266538168633511142544628900955052785803147506858652579061386672231872897900283363817047566971107883296670004897096992678760726286550906517292637999592915579539474633270567650836831570094166973583449282143790964763775641168426941130000374503654377072277123398378086712471421597310234583706521890871848007244531072040165693883464963841355914015715059382958877910486871847630091206383525918733925904922997033280603131695965955673626111361817197870724349476551520932277350825152327176145087204021366172432781917530513621732149777782953911261537426292208533203004178834426226094554058522246603587753273566536939941749349846421906279883076262193342346392673373147172714045364012969102188511316027366671718993602851935797591421817086905618918303603583124624999768650023678426762744811243060052932442858531680477103389951109524829811925617676497405156058672288182942649346969274593299044858253518196833025294480999913900597101231347365126812176994553361055637433946336317143240369966584146477366219502904285806585217418628259993015214608438911077300176784248202636512711294541121304430630407069971898721822256980641787837311408184831643478658347008951061583259845539820600181117113764965075796186092346705398057616688982933138225220352736067966394851087688547952163070948803425987137934215837914740125023389891079526234062363320654712778194427940283668286931268460933385994238612556852295287868017376818583093826449679463016737099679895931875931068605686054000142432574357925054151002866334690669147299277201245226964133353861652701772161247924461030338037524272989015312339303974582300434698687538905240028874874122459648114285402904373231703651751616045912844351783219107723014707436233107159195945958058540408842579311887857406410320993807578625667451643778271785907700433351454399197615426796349215323033050625324406817401322645238684374632804190798235693546987390928250470029697345537177608587258156201189895663814205137603141111527174726392047938905088142420336536036432543595159585724988777738302548029937565088448601257191466545562581012876758406660185719096472693396310823414492109695752317901907102938642127061730650127057656724242078445013961198126201997182917135517502562562594908465422828448353277689900790396764240173054429583579611053642375268152091229818445667740819425966405962173142957249612224644717942081061465440484576410854945815630756697504129599403465000629850674134979208723295842590684877199781916824279668505339431390935615909963822090008622434576179659099985620968177532390528604320064010287613473438284894718266165288670734083637177724978743270185791564316817883041024046917491123383112656912765306945488256958952481881318860272242278993444227130943268190586300278400487413569260337227408893602565229410113825374695957278284971432465568368457628921346749529901233191125126771075827460865945331854688847467669646876293875232425009519273894957947506771638960421301112377399604191257858916079099761658691494395178374254712774133392412094768301708640210405835964088971836438520002752375789143261898849410030841556995198081256093498620227228534064353756756907231363121212088409451044123378144684328525173664291566974665227409592166327501905116433306844637324783151758358659907518872419917841307625369411375091366138201581210291150214365216116260895989048964130389144305466478387591364035821472186434649178558941642069941566059505606739120917026890055616938925455912341291004371981786287099158299471930856616477731632141849899013971648878669092700916097812825406778952992946641178902382561720502527893780297350239015867242607071938480065123832641044919931320766731592228378110536495679367839786483508916191694540519050350271674220149666122226539520150559331409981198288445203899249184521735611999352810644158655860733475375567468343160010432046022452065712898943153178345606878888191093282890396167436811815317809103102255422303175535141326782640824400942630480980232734635437901246388076538108043305143016581298047644828069894447121690270671980971836656219679429777860339943720159200836515447415950096278910846167763203691173610901599705692068267468915339092653974859254580447089516741914090761019847012565139697482914755238336025477113514827086517452193103400681624463974688410932435768030404625136436288299599402305957422200448956847075148897368275534229962597473449590717962628174624206058868443854768466457151989967303974168036453934957670897169531092348681621708078804747475868799276593521745893171581834878999066792475706665317308122340426863912238699807336870838906264005341566904106183020374941550168990446377356371293992335370576860290831232461173470045209128875527359040964860841349100186198599724454376435803976740052139585207040476175107323131031201295067848861533325038625620303862085612569104719598633147612483428611064065984355909698279493617126552250626304546516736933946757245300044308084314745395517508169972963322657801428610564210392915989736284862035786993101970141815667642396105658160518466414201909325683433213359816864378980172363697214938990823956460697982850074006485780044896630306926898559320818784257847166196096764604664358604987197232350925353263870472089229920078000487552527802254968944256092206259635245248299278578496628633345149561300578795162149284794479422878926826675507951169577235231466813583197348014179482090251129574305156126520702927243972151050836341006468508273507170011838610993118976214573111170983297054706145746965394927650280637720244980800340847670034137001442671147740746832119934318882187988594164734938232474073131229487788552256915092957280541877992715003221889586090758586074252792022569760325710329453193094060914868153937049838291959217349422542752901831092354984833928483169835716967578538156265659100339246768537448014575928008700855603558812779271853946952643671631985987322763397606695817620374997182119437915564325714125918277952369635666136571748328030898694825503025274033890031018080072593036570290346238378123792704049190373760634676481541772569316024289110174045031808353913453413209880921037342704300923690464988304960666932784835889161500513370991556495754197421723800345307528319825315052029622973346152601664516320355742236173083278031533251557966788089245078463883046976751436639707383918942564209846167836486902033305465988738002137912164453019097060444775964406855319811107760135314992802046896094961512133817856905686622980127671525992393297433401586800384311097249479104498278529856937808095336753535822180457064514797410588420119003231726904456942216232608860486518290179750966172739244672585624409428408963188070858807720402141900930106575661788781758263081452086397475777812347134361844239310627641422946602148562434501319358497350724624426675203987959917785475288556922080615847521118596623312118679093196348159577638668245060772268559865932947224947090319547759391161283860597883730100092832523990829240705229525133313197582597889610585627574505288625927126574008035182093977332194013383043878101054100130063857059073842061422507762531729725673737178307086384805375089618315911474383017441106447744282158176525278776059391631106615448395555592919264955422589032882447360123627721872587400242070600882973683294846055328837062379894462600321074390036528675954061905906070365444646416019384050832316140842032847844379263697787413859179467517115160214491841953126024526792592450093236688559544298432042036210194955658859072844272550719142964748417059143920521564739761034749130427551510068962678521324825216760744986033554290164583918151556854810432488826540955520353693262312004990982101753973445017910958130146878155982163346503101660240258638841327173807784591801488960607032610317418932140858334487979725677503706542499175915743726395448843731425548084559012214332195460981988339794134668726597779440857471202980732982546709403075548279765578249930451460918350901419372463733213665629021972212642264797020783106117438295416257140816082013919170484278800526774530779333688876442713441166852271447340735610310795727954935432325105512261531790359301045345471237243164293767004022534403929986654053037286438553180740931469511514009999477980240026215843792032162978113824817483304786591517793532178505772777674570863104412785773215125555489867123494972863343716626636797252396809426061687182013768419767747989382201299201008238734370299311126880392784781019495017155061297607463772587450540314503300049682903385583708458584291280191081817145994609035589521118722385963096549029516840763958366684215076074516830774074152091637628778205938934609692167428724710338703651328925667966345217325407557440717076556158286921043409968809122774437737719504641020375083866204544891541291590571010816942596001129413553993553071760883742420594843842259156429157621311817622188423613496240531712898102487702614783842556874299519993732739297273799562476505618607860508685828586679481966167552201977795187233778434073008636881430984303706568930462639044081479776187728304589359137317267182187196205500282416487105719010771364346649781407506435796913764364422201015755784587286805884182775425087146053622029173410291661862226670172036403015640376613817575713470840030149678761260871669033825029844339842052403572369912256284145720011258216670357473674407629231845999255315602281072892805929578394310000469030402377842771673662575247131401978431383815348919898214443899611961801786086339770898165789410080782871413585923122535470683377098696704365183708428805204391083693821746313198242877984201437196721331588095295515258890547482681257941259872896029631696217569374152319717041386917111193116277339536225613804891571020748728296149845757923152371071457673264761288808862620670942772520015078789662407674333782725015209353887443294401556552599627070774844983675060361435359859801040078159399997457426590721664391358648831240596432447543349139617133385021381755818440922356660520759097405430839999537598039780141638131060658012215909321193736126445030178748246446123983216579696644400737938662050371648175445293356469130422539751029837420419453378130004885984551635738091690011159691048635574069818583732729877925987650273021138574483186854747596891235744236575820389078216570541717184035300204621749100899005805995029244834075446426306030792093271632774951732902767784464607234675238436955618849437869680285803394997194123279371131807725414792324494288461997350388113199254254841616342159533056714071725696377620278654174208447508690784161076304493710126823085569176191330695401942545556892485068851630616615352594729831676735958833567833941666669635041906544266303975762945115968225328490732726355958897903699281333072589116424163172476980308904637262708235722627282918410523108888166618787374877295432236615174859163236459594595584916392378269507812531260013191584237817030877874323187908592164817964313639922482314117037023599102997715762116867446580752887252469358684254572426687947372091682785577202040274826777334242216194090529903056147254990678340354907380390911634019837334561054188974466294705583894731052784286980806490269641423706461119618624849934608521067302831252702680532944886061640230175394086190655591251236608099393123246635195109708884373099453467899045917965323704719824858228996599066971198420753174820370664618031208972160307917512954145856757803885885672655008012939822146026846809211475719390484223533826485742932291055152181323140086734039615637026519043446149901508149133301303609367558609916875905673881055515488822070681890415107340231980835324730641023014975172736481005655862735637825250087175552215440668109444797766815227102627547039429935865510629426627000895160338438409386830969136862513621957749005928809429737152660139355249594691330832713703101807787385962742634413808751837537409707886698013844306861450500655500168287124118510586424639257096032012713633076219297658796823738392963342542675902077681425671453361557072077938668075821695682861302381579894057166848090864649343980801435775878339643126857236868990525504635020709613404433758462075207146447245285650459343852399469276535503187152732664077304944085591722825872713213952920169596948408927479096026447881214210528910449375948286287558090098909104208359896072700909237312046924873117524669597110848374135411676937319928546048202045333587003180744884684095923264812087238016881239451119884482829557246430900396944584192711381349353502316871920553686668433863077559731697104377913089886990950326488942682311955751088365388709915006829292299586358455812729592514980560020920916291008018647040791617393906103253049829514167136584651038110581751841788701863859768547523329120867653056236913222834646056663440422159022723345457377656887029921229305325397089012741159786475274360849470192699252789958678464622807728719960180441227095567673509976546545334328639881026136439340762644101383044385614568988516470218622888117892256956035957580002999286624298674621088928401879148161341585486691023317406502605159724762327205354569663877306603291604339087341729146366779107833946329160250672916775832840521982108912707682086585876434681500749225191450089488840046900791426702594599094159856250396167728279713482991739960990884565078713244492610754616013418520534358748726616277556904105595526879407013922247575940635807981868303367698879150273156911036892998406487350102559238160913381577482259355969264629066452455878136930122341102556455411717980426181995365847463466476970411587791868622097141078263698862702925686668348110364807908902088283312318751985365507377698722457915639830441958324832398192823110200887796642255363869797187866744841753456639104373741630427787162858621528421572064652606478955583687256400535516953508574023118502566927869178966906738021390834815582474914979410606210580764193749237004271310782301191695883349905173015751975353732945434641319714604888108020193369821360086825889695700387505431646652356169363156398284604434710047587069280695430657970564769952170353353821651582087684869551954991250996762060079543935873474641739219377713029770449577958277960287400782922920305528694533465940100917490929777376715927515669118368254655135858084345129378992129519445397208176656707297570191516390075381521804338049901054846257344310968479864812729387828799664722091982419124805149481698614245886667745547312652139502973221067565519885079809186839925999533605784896842558429167708480993929703524002006993272615427016460417119775276306432511674910259738388109776821913300393172313434572117904843484447989883130802896601669710329398931831343789146360577010656683929369835796472785038602435884241514014358952954350291584572143682032128178573750038070385146284991729283743842324381989906648385607078924503781840812777307865179741440698155321473763601867846020525872308738598963520314762753451911693078713640708034949390917609698693522176794455314632371203646274101238936180029883407823536104487928535815243638084477908599143472943012250541984907903289974881415212232869520237804013635234554384647449000675116597635036285006956480501748844025607018554473903056631950202720190691018516125139807962135149167328768219847795042472019379484926814473796598432308531317606141580382048566768238456446879019367588214775729650583894180597011286883241611059511195161009694188907118154692167138259691752785138561641835848097844262867916708491159922056590811941351804138410331001741536852360406213686267927496310894147783650125346368214943878122003638091469446976215851285892695493927429283514522149294470118376904994187334867060211225161293513590740294210433028874240723145483735242500857851065780354216782841654774139332769481286589641561133385093646112977830937142737613910647152233370812019516006945554514780056520035351576272823767171348479055329542561767426711258003271351883897870162733424182143316113747580456559410833409470287574102983572089196440934007244881280753981211347760095738890813766215014468544424237684663559469191243583293070969730434458703776646751418161944726642656215671861161538608980942412666500171961812964658746950513787930649857785496152387018985471934733281848024520918953909885991388099727154861481147732669186421789761509441372170199102368935423555034419596893210633283123428611650673733788748408020574485897669862268312406167579178681366223290851427814126930086709288549999077366160467558880925411396887638299263479863427065733965321567483276397760516027501358003668426991585909631393993698622763545727913830421147330512994332855571941592177668491908444809567577808212738724104209463208427293225476289557579303186480636282798001916624301505164836492435944157020482370253453894165155812608196207500957596062427483486705402583710122424311475772064099508490430235056123641716176023450594128960326987429429881826961361219718141339111892077276330943347645418256504788481193272600810060303864775738621784307461520653400690334251507660489080805529375599338974948564694766747783365448724498117127969183691367062647275013647027107347694462437693758245995486313430949524247708598610178968717976586602883626647183737285203596362198141449597422839595773152927056367153586789631817045225695510749082357568626376132980643220099293233929159644044189610772188164502096447146491719433800858274145999767496719086238348573501749755801758117382129537131163469487279626734681881909574821480765723798179886830513689277971586161972984431381016494297026387083409094246187885354637430802966032574618405872560710826972504206478367118803737936617823389016847738719249119534244510056760360655857575230315967490345572678690222427589618061537015202983068795547231779245187463092772096726313537170116336921204955042721584334607023260078746057229055778047152528716069158536361323371141304996180959873007534069370517968852006744009721020945093482056481226966458485068556706199458399900000295902221433032352181714057755517964659823083382359526829803446920337912627333995935654193658904867949226839038337070732095514731277632365571567571036238855003594058039339433098168098901902061839047863125919742060553039425017147294871132809631230302218743711195571189615674528734244491496872785262489984542948755658884670641064014340893465643367462033273383797677100378655902885778906401338648109657136583185923040431468760342344836487688908809069747861366085997295926438233776792645942289801085427122238373841027785502669860175089763403984838024024962504985667019092598590207890117845327113774952881749513648361153194454633553156795215061339009475258891824493822185960025379893649519903635355660615435641023476716514384292165783435592533578498766756603963422079058780945711931112306487159771871523319266950762773993780847269744626310014811704247127561875372587639389947583062018931856266693329546015523290318320521388169002223965145774769216538650502590034319214766473021380300724610469862177592041227694321461638306326557376845852446778427785811026089762871143207984463377281525270414363543548853787443359516946984195836000665950211909195133225896638825937096785289074396008077463950131519709406845265237126161832357310428578906670980572233783001608227074931945928378627150690214038470618201454705598428312024002805960482514009752381172937694047265490243164341234759599141413736268970591718927272790307420214118365933821861839660733426113160833279876165616822585756931008433896615329807940396114020287169077058602105556152368001781440889556650846427151725860380144224109806263521813734909618626323679934722087199758046409673171356485997705678840060598745119943695776015135439557656501201596577947818942050441403309071454937026667249165006700153737391142780550313333907137835088196623639827724588088060407511301060433490435611814096008890166577789241378522942412461156952757754721320474665106011809212901316232976030510401798527741164272431669861252316624834454291989833086429080970498968502855294811910360692895901086296221516251600033863600794255082009998902262082165974088680849726201263637558624281742957879185070131360610331700123538061925042127930079906840157300823734646398977354138357117859636644703711572998422965213137683169196065607273217825306926433596069380929606041965730438200410734033370399851932294994221860158660603439537843831521288740472880295517489198276299571987220613915298972504544375656441703853933047591164873656986741807735653482115906205620591731600375675769791779139161464026587974368815217899047827025727072892976868566262537891820106569026932403117312521818656520450458540943802467213152099041859181292133606634263684721584961679338411929846138718317210992737068037978207540211933160990463910894770760466331077445456840965733785186430790922373136296265024776575325623368759276045772539787301088470254556912631651400745733336495560866950360302961572781015371753127413778505483551036936800521398820807350546986609833643159395538882357581167721343089635244999290367323427849387970495593165056053394037246770363348401237529133313877350094566850620377973006113139269318222614340917404881602226966046217210159302582498345976390260159658681362841387281209248256891911083443952134978583891423275997167844216530177778105442280930214516783614821708316311186013078146558518105271582598325376632246524863414781730893247474744749447765726601663987651421331167722658452679502717036292286961399205868248605760699864929827838754057048139655838406568170651623930334668569018977005780553595958923822343887432529050918558439708758624329851200478061588972224915766964585589840387709510555916047621638678553905606458734356774312616792478737933651428573187967017304355278937816761846329848721426799043355515200131521232810305848923327389683288075559493426215759988923567023534462849367136331030762065879239536323426541971037983812010910537743645385618505647776431807769624154014915434045180989233289187214715547406539780606590419084681294647963892460326444260039131498076905441331580771689756366809756098020960101986230107340217133669548388280445940781218592982431713689313624409107801805225708826696215421250664212920406160527302828266178905688753325647852630720017234150161467447792728336417097399819876018213971553686328269152583295998370343539800913524188713546615814991232940460965540554079931076824475822995348029434761046199488305588523534173906070786560731669828535563560135300330320134145313666177841619686994215794739250689574655686341890888739323031919192356168719819102091661150843812844530596209266422807617624007750363050266958227066486126059439991456366170272878713168275921786037000395388159070040736818681962857937250656190524458097387357783539417477962864000714722008740580972152012178057257971319834206980270037937439372527184974852742706862151530786353472823519119818079901099367368405333961902804699151231747564395792615944044561083079144863138913090400874184243113321252744929177230079903739477387115435854108622504249772458467184111679839087219073751191650021612629514614987485589713945512788497934789462449403441316949119499593039072975023103641314895176435972040376397414842093321021098863426359819154868442484340622615972338171425717260148386925021328959983092837136874907946331560931586093133408219390906082077177398771307367880021636823848061394868745465758561738341809044199591584679611352763370128523804246943076576905537683676837907305051135874834537081552854050151821438122185838651616121676930587962686423312012562241383556777415986492252310743490612412703058090060049541228755629157765672211081611838859648845624406388809232794763060119962972805117027460365842844701826501731514167211901685269879860120293243335313701948630456005265574892777833870018811600168135521651015160675009381566338525066231355955667955760033779366400483365157302200645436822593989004450338766890986145825631813405415911343214559330024287956896991598789704428820482722336554765222105992788506699120967635321323143390163322682414852939650523039015700045337118829387093884746096553277106205033858707342686358905089084102472286409264315204824936183234239576205569400202573156917434215352096786478746872339933175270430594172917219325960537897442475770196554729687972443916867200210503336041447607085005077476619510005115112699343350531594520267052631090539055308842545015206561062655940654865086744386672451754874127502720771204461117142443572350477253171640182663156902356218574577447348788690723559863120336577380026492293145596454353171300637921908371441787744344906407230090887617768204659139172010350786134836713202259288119279179922656308439411861658698679932808322779781327986405650007094184408432641105505130995861307531442587499566768540978617768434793765710035200521552301866515145304946506114376592735985763312018595804437310455065465402284253631338854578914194711822188993798708971841742560491892688159375352102721391998956669653300703606091818483219473151928797854800244358815034832116016185339365647939509538384332519604670718474351803863659947775480591521340285603497617421008050126620917076190191927608158581798608212940236144942223645890059871137434337485790057655617118315413380961212379939388402497651780779292122879383793588151557420762589293761135322432835084989576119139593515632812937397446179935946835973855459994946524941616190176435256648190671827897544291626615561271372248592753521098186839045616792052212678752385927794873844468582550741146971791870484885578169503767439113663446480342695339740409166871360963932877974105245112501779778189563025357363362371445001826760901588083635636528807776232522852819565209714749329761234801493467946777860562173347414238520769930305901768533310302261427361788410477949817190328751753020733899675291279262222393995850816675892593828992328134312611134624086704808416954137124403155201033927290359540904448430807185160213170460718932735617273966906515273393917233352611365407469726126525627657455782466578719116060805570371030857898082962879784207701770591705948793668877267826861137704208897381837081346603397392426525817160023424579513885088194663251456636034164473791110123267475040575172002805211576562580245928684942287098899578856471023999470489424986182293092259980920299536585827163845864150005896662763893613463497157725169988298557013790562335928473464521445263535513425215077406498245091385388779646976201270640659703117575969626867485634264225242735066534611967778077861266712269765584033665232781730604309829306218419162855397452335790278169141420111626482241336458048062141605681892443816526979401446698300156501369211604995654991104987936530853531333941051596738019112885075386748117531170631763597278273966759782289745290929836667344283565299487240515384489239125875911717067547345985960595170469838549897754466421627636826037175526826217987441415874174726634310513958760222901836073040878763311886731991666292119676487093402142840333804181366316828260072378739097930301245285381662356415886995855371185021219211186053190141758122541491680916689126806831123666118383823938478838952988462978226401763317509267097172348654431762050930814279943452268453000081791145813329126628697794209839930222498931025871411672270177897645860379032312756624092224675753428856533510026118874998975935840629019541162729672526434947661276506381802396375380029320646745395130442240955738207533242731077671189645850977567240702631400484705120798580213079700220167305530965813744674063311147078824040935713640192484396144992336156257316791801862519516783407065198192381611579533909383951039457822828150127146448484249194797964708781416778080293883061277618340418321611460996082677339803037544611313071816625742991800103119934389966138333564554508118313099462912766950203737639143705808734486287945074165843956109874192416920858057206163707062357870735546624174289242240141584317654618901629972412845685301972946754433431613679021894090209794852417631993614393774555518554741106400787152805457231257119809538526292357864967980599837459646758845503383962559201142363740684063493746084864395244334342157155102255006985717040131843575216536445998270299879223351599292612063195427311773101531154023769338600035111488291189430623364515352364147856530283657341806636435874672067458757391977753432845441290529504661762320862577511155069140034076443792165131913137162464010087950219214407854730171315295630077671189792893041830719924876571337632289497886545255586330707330373070584352101298608902442784805623915949687311468723707586531775145485541861404290241346149453767803650823169521650360535239749489200133210656051666597268587465662196405124101526940030532197500516211201670338671950271625900292541900876789817926459776942498321822875928922931496324446464276658563470765544347114017384689732685027775472499553479183056072972236643358331272204136322887821461755638916862070579136417989523249472062256202403298503786879252035757845185291308322346432383723676453913825188522020842526541139028074843105919565255399498334885265295968580861010021318283582495692627719428548638557726977063050322606667565378309169367862103968932730778899026062410759906025961030467304640169815405535362906894680680728652001486761210295178369530282700420802347291485713481111337103502617097437878567144280150293363716307167697349202477189899756053544597584530799711628528447755986608291232852910059560749677912565563936722498318753236359165408554224314481279208023056333574921899694436346913193823613944532501213042977700318766645843403164295964766106850804930458959230321984080827815720272956525123000300667687811664965058632956940842594458516285737392335651925850357235238448826435553596074300045646515842353836068106514467414410018896689589625223573001183170066194168556046760505006068577713665034540769695767462530997128498403018746857930227053366059934469527075560280304319429805231064942356752705980818695692085008073959469024649272077186412319040857902755610448135404817372025332931025309075445911816626015521365761928038934315405658647190726138468676529602195783053484673511934770660240062076006544192848056139507901633352596522929210239665447776601990325534997530657535878595369048515438239295907267922835215460559669340630334227066091317618548630029147548617498066801552105210731203826655306078844198933288877997222031341489865172143802455359161464112014952168697910023507004131262638340927714090972304785839625081760765694040139558355153881365152148433878193466231511946329939204838110065954794115032943309269456260256623449122134247394951812737018470123089237714644409232043790250664727021389722820277612389208781236052428750168400456718639493441009788002412486802235233713696220484390437831000616930782548879023218151594259204873156986198836461927671524680869760879816228727289314807130677813117524421181922540990736236123721029438760479238762263940701307006179953496145943120530223567230685973295898142895043212371815983523669064458894273429155469393501222224399082393164248655706784213150228657739202336052836928805829021453697644109665205066934685919773491664728422716719500286825029335715031183616495798610357806556648430281622777682882284680501843548370786203408230900697442113302625009315799778268259870606060218416527394756309496944233397358793800198415225275303549704290726418275067925021312295468789364039582979442469559118988918125269205092265698383341210925031616446154468669210648482403466670226461366577228827994929800613947898598055670121052397376021791499007134795808596546605642535224020606785407484367571924951230954599640725877240307476089128899445483377266453521413288093156552913436664244052317239038591018812858480896642265710574595182164012019268020109027092477298921289773049396949697367383905325368114250617191197695793120294497462614227667411799681469869406980791482957092101546122177443624442456152904828198824549397338356586794058589100628521652419946665163546662174501092499764514963329476313920579591854827728043346728150678672385016990739679113679154345218308798185861512706604268062724305371589353399979131339232660657030887103987259936500567763646649113835907357825136325176154426361339740401708568397614729319637708206795327643503526183568051092231950104424490423594491934028376126371139340027225432910806124527314994590883705138034107028836092005568766224474012453991826977986230064573766526362038367198488069427947042059960487551731232734415400773401451321227529370322854751009095609255116311257604284784905358087471184777105176392954427119880244945196867991224572486469512819139615336747104693630567362614144628766782796691114524566581298969310035812537024387684954338529893643163061076832051821755656829799430956770944026411822503541302887567811654286928412054786004337355537329386775480336655657895697087107002482129634207270067768254450795402200136524740147124583810829572756168331003727018732593866727881850150827691497021954024079714575359772111618215447827810191466173887023749338233496429364873382365990772070645271533937906777008547511243911651178165949561881281021278533973410829630507277597256650736179848752944047552202379980245057958516459549183477097850455323366141197758369648555006778226234164678941140645897666668234245882782935547359757905979669684607985938285790383540885468916385163472552018217944331436277831768260945725674065268062621365863039849419383024265077803591610621584279559171284608127742464782763121347060592207421014549235180440742466178039806135778901343964853588085265032979461067396601084782105003950341039506119015555223184169703609118664470850004137175580225968102920050154745690781837241807947614168280842623773653337652472595103860776788826534253587135608058267188662306219871560311359956928122212278630113588498188952854706116224086351437234719198450649163672586083436119107741454684952082727025773141612214381927518172953340707714804369556196436176680997680899978580890647775349871656750249962590106524506519035723505783095455393314378289539313307008321958128840653129627284177378994850168344957656098949343137034072052366457710599842533626540847858653685665438961262491466387696597457588543457007031932034047623286858976385613684096415100052307633335299111334375124289385984651776370025414575226701910350341907016180272083757669749705897177289624531673930146837924336680094390530026469644515049646248367224499324860045687546157117862030313706715219013747986169002980859613801594789597675908609399013878128076077111627784155083528216684141439060334319004331980466692479771582491239159390797094739773126591609566254714950684824931818194369830400921665806516702348733353444312515486334070814552793913139469029990937842258241724397942747489510079431632716739222052818041828429052834663645268035320210643510959839867209378572417409346441612716420139061577090494974515149871189077714633321215757957869062519802368663727354587527713311893165893164446827507584480091826873677758191771356765615439067974275032070607431213595321096273239319282449329441362510022309049991227623044269836638398827989922805706989226605356815737736337669907361307776197064441134358312732095814042039195809599537089151957970464518895056232919755962068570175508737193087013991864591704841874149792092577099446774097790633366000949706614820702209700074809285386326862092617461217448315918130719007078437524019155872605213180465804067471026101919047711467695259839202527889398525963298377990047199751285543168357478637720823618114830770749260437314499860937971015832810089112296855310246944833501028904283854379092073072161769584471166291644025181687866363507804971188381569101317134936521742887325471404703280452864216948008401788191567383385724417251186616195533804148934206160532374943606692288629724153268976210042545990226989698957036555588393317290544978573694451114617121397781671286759487356024705209964885129835896699812879426852938579713322261494251718112266653732085420470671949303434130154923647184182100104891404525140964665945407890588353728160660062692465618498539068084854830446520828432596369906780097379211425591015381305357980337912216006224789283514302945669742263386592925785747971544628864352865738006362505194105272017531823348096242455242941161443745746251611459387640358749326715205067984539199128382613536634304402441674085091576939151256833032167187671081593843443998603489319748669874437002897432085615684168167506072663050969557615802806105822442733303669981797029468054422193975415678161780567593106259365763784129157895097664919593241491619537107943001142387109000522018116235711275251098203091396397140209082376655793875863268570578208335620462025429981177990746548109633945695011820247493463921107937402938717274353407209239776125667880936476762508939498371704840769266225571414136495196274954223250557807682759890294518893154375079236156125048089605508051655194801944689652439531347296060183418739765353329390998567182393775192982976419165333302725780765649445178818611294122777225936950070626106556846094050386591190281092498019508347184263396144296192147452694588103029749590855143984829465214691691289409435781236171003032428124972864597613635785310264037589497097626621228241484529506663891012779086677429445350968926597697412867626570972659759599578922628472999187346779061156718028790230810302022317777334758808796938631351134175980711205728916864753603038883044219775675172772296798372567769157886708049207580564676137044866613258177087010834843190022883447515948540249317820564140031008280911605217292638742083710819407356180179298915386117487423908515982298079864157274349814194266418104606607982606327767588319039359474428661780462727841355256026334399163898724161151521154086263278566787213286402191537547244066769503219659221684673525268890727579315421230685456236457699599579352420864081965736538936820638552953788388299723386306391954514198746496303596899976563393935298217813309677645503640132746392149871789350081390182995413187090365944175140124269718807566660917082575841374998000263569556841725505080913146247842769129593375042214304541812696786329919063547713416003391398803401610537060967832629618210873657344242154886415408138698450025045480485535066863606598140713138972779264710517956479969574961899049738203687693692601963884656995067811477533711508725882876431667900274352147584391170285933133370480436524120614038056901418487127095823429032137637612793980764755447267542657653503093352092735249341705053556190858416958808675333083743615524986683296998462991731221733644339465339302519044560909533362042748634482733979454274027298579061353933006334894636722248350649414143683144261574123132394470668085215968002999173414924166971674312390085936720261039190672560730454895924052629907422676681297632839907251124761424153262437455905416375476039670007660138553799113803664358589743094800772465866595731713653555409871938613634390373369834700624025550670058397082304841135713898843405016603030154663961072709397076029769454524118525089234592325311192900630124627277856013378715312483986752944943485008396705036125396288637441760653566979827505959915652036183468415439425992555992475106535735739646453149401228240471339762472506508308035830041806737182096700540200578621783264457319047003300818494087591738233951176576955342332443066867692551186862238441091101703606250406548347345927878296827412822514673692311779946542482163881812850204534048879290411124487692534510453402459955827392357040249419067034178130784701220141385621779156102588388659410449262014329959009659422519695360438228054148476254243010615661459214456417942766374114686662375593811308812987658618155226807134848192432846175250197078705933990481451355847257370606528499547956240015651948839166383112085459392519859324336561479215085515617612083802948427404179116043179236494965684832940771065830722120983674396607152950745639625597754279092277006091742467351575028531616276235239256054843594869861959424851686125036936764519317166856498545217518391248155364035223954233292649467335315794562416779608438773922194930167598662761944040465083777473076512395679222293072577538529242207710425437163069122590319814395704094275063529617620583457733210344580832481957376415732041564145484793156491636598157662399666915280923960307630786605112309074398150497900124717874652511492718292098256447216377811304945825123044221465655775344925067274743829459688560993982463053741261658117630667354154079997183685764895836574137122351948693149631709007661977224874079218345091700898501036925035241885757138489900575498558899718945806256323885414338945977999426256258687649688837985152101434159783056602555535982225088631700073184977500566316564575564410103799479429373959154594764447097514806762233849807469974977854052275685157571895060821029769547117403528192224745174193616940315494621209745949585613214670176071921797016927263309813144887606994503465262052734181710696454141888596833764480437138106698242020734132298075073844391526846234076139363568622073551570860885096456490221845847970074786936065369664231199903984580386452978465142265561155891235194925212428585383579209896993111152438502407696832554399819965919445017049242797118635181034507996761632979477060471565330122418354248810922291352720210119353135031899072752267861435480767348385199928813734510280255636404997597108022519302213694326111747566703194314320910627816064069178252234404664359399348723411664468316785554726289274078597213988560848211815248400771118297764202748207168604338600673757472946816951017261063808475791489031684966333858020394321515636965470150532871836878854496162219449602730679699558375737842669756759492204168932935012548413146427346547394123986031124754420184677773277115141634825524037048619361099122662328653908043673745874977491412161592218916197980511574422151730806578423135212138345606318828125084579666994735705397959622937981517464090715863136690627543049034287603813282858414342206947162490574006132060381714783057261751129051656302711083269924773187887075454766339466299139964574077538761839956276691398617485752948163941820337092218607282178323093642130511248434364171873415067106984583537138755000493539435483109920809356166949439735388468452981655481172630059832183900983777372687737203798799988861116594995784688634784025128964204982993433717325252828241240392028869681545854726259853669802768344245068736968800909601141431620456691817116238575809743707234902073155509757070536056685307916472412650725481765389846591314154009837043232650492142895729999640025794908328480593774368329348050064365075843348505543889775108866402352038691143591595648554979237139712368738075917310983365983398187780053011000942841687001289568298298451035995731622108010097782732461627803187396054540906913979469990797319486155117768237939508920914677045468447855572086897662268657201945783496199190230935187744840921693617922960598022075820618779652401411968866589334256919765285906979728908441154131939457443195376731093604329976418435657520666959296510257736793261286016077229746671058317564573601315333979571308929509565541945548230369192999235168201619474588629005464138847270278244519790348229304124693054285597026552302641193268185662166922073160955636854032654830072062308278374627858738156117473578849190587191612412726617998539786349549167918386695601723370717568271519538797229694640330108073759481039845441014273432804353884052574417485756674671809650655171693113758641899938516054718558617030160311496771127941886204336095759411832528795861943440296074737642049078787663209859416511074702575122315556577060959975218017489656692851131488787823855284315204102171717838719069821380394263659518374951627833770395541955723273746182926876878348823582513792637641200651691829899737760223807477567405781758897572068402758238079975959746305620974968255875429258637545243824701570920789544137963280688255565545033979287050840918293585058705565394331059532114974600654359005780343258655773890121364373438803618956819773375247469979569555145364497838602040298653689363783537806126130722724348324932365347234841767386852445407402713420068053877529995238843104859761470473527518265689505023333951615065410987171507503143369755195009982111021649429663433832001834584536074163078189429034821467802220260641454679175894378230178979644323899780710518427195071419515573162957955719785686415814644376947331877542603210649944699821127958729755498406088042269898714949942871510450537242156569240189654609633117429986992541477594125238722861974738364816775928265667197267937910558279294291061607721097902185894151474077390416033724586793605371870104047205180284074662030919321040086441209302635862139936496915422346654228356278791332668645750283057475042139324365471671310478159419653498167141031666603998498576766422268406858831413868765425777727342629539870092521131620288666543532317832139100278633402588675821595338767675817869662651597762777581740185656059730895041110527648982537203002944856907849057956312565814781925956071815290990996377668731628985065576874775660355956031121660922776786007725431791733034343650497731651683694532615351964777863635110195309390854032020640245059830147365427318736350108894077694123764559615097983651155876807621761253400940146675648440984889371058717085084619667992625113858670659802710579841891058981435055441592479794679644038091198018002127713224439846733581973388437448916777277253221422063713206041103011289753248116876320627917618564524097494284159338841449908555631852733620628722492242251271226589963201834227490009291994226774982759016145623833843457025812398474774862907162322780563021369412799395744639494317958639135916618191712246886588935063596193009135936021324626796541349839602124769039508013164055767053784942614707833674069615378499326696049322025871676892888107111087696342521598832335567065992207721453041708807723327393363305639287576710162394711555472186701400394874665286821866944078819523281508728512608894061495867142163050984113624846555859983097493774670522420081833233804941108600348541513474511331806960793774213471658424970819254507549917183735435240930171668201286686066619982997410111795945916808675360236859597226729163116342955886057740404899434761540419629828401696380294841376377953844750838193029276556945440462260510785886195502988952450654035627284968134368975607246549534579828451649819108246640152164714405933866469660803281056919420802794299400215695386841483175378922957509124246668565938591927751087409511201506518009587320765830406384422539454365446189616171458741031458902887799673354246520173325973774474023098604270338270261588392949554189355706642109531441765841299854430877999015174258305108596444013786504340166079492079634239626949809409064060915422690625751338513351679061183831768219840879001953556948407768712834839651968427433369175345616157016940305891005795199513338136022406961478372244150747443730992020925446774937524159519335203365629714474144719696360681659804155385975948390542467247421014061804809799119108051301544942858426021551211086935100211133517878085206385936600182563052147278979096024266926598129865754900291549098722974902730331739483213456236735629091923795554203592065154970295396731324186547668702144292781204996509197630527448393095077573645380884738951681469347417301387073999176846527377931803580908667740878118067121342619353732703629631199743260175146588094443006315230124188763360923743106885487439592452619168954136730722777888419275272174205200520940264305569729946524072454150090466591540842928612818933973653206485578478732900000725310304967559985157073594449422875502250003329350038977190258581076089795709840818847962833414931136502887460199109773510483859421586659110821245375685177071956007773186184214047438573977313218104423015854445075327467046247730556582207058057033901257484943956983708318640454834799035659271686062615608905969965228372813623091659011946638957051795109161080771191832169480245060988906703885035143643983154129357806116479729067889969270858967935773144175257027747881005443672272425019593388108743553325517267662566813878491912805703153601493626958536403438283443287487203022329665133970937514870599738351642337469700990122675434415994507886086677953715739963779303296496112053737323484051323830247956180410592568640477276402817449688972308832564430543697865078707161863104293492051483379906182105640947452079867983933673826406008392496618070816934967462576138216574480562001273446840532882409958918154020522999067683524158135923930438945112707927928731541510540519091326151975781069524727215064263302821837451344557439634481562571091947239274946896516984119116845839510008874207996866156088388078885436092330873689291440384949967769804521881287506062398137017261252169419115810894429840530477497238391545488170429646443433235757151687454361543268886589360631797929438282022617264984659608774214339216642472557597355319349446435224094706865549059766313064901333828759417255852592219608921811761522264849292881580618384298835656093969480074501761122990342337611376513876242359077032875691603256164851131385802303090375719536663558287393162216613808644739051237222980297963738437800623014155533147283270378443773617386008998462040262390260051509232816945244723136701968109913266900673573077864054754714628416410814887549579304065002574897958631312752941332224740533527252416322717101959749375195646147640503454587687156616399598842157824945178962851814081919251319309531190716259450593755138749533554043252450849093059821521548685302726783823504023230074103504977155220047622344004976796126622611370628252982514239291287054954507016171846895005147462293692987153475011527728713176767399037079736823980761343813419137156680276796837396983034024576668100194655257710678492197634229030841933903374529096090098283134302273003959720509861684971413359579489133557352667901724881311611036139784229579591634031071133034720757449411076603290357073382823262667284350704783703183120991425958221920197519117481985345997012635925227305720004400805544344910981950603825719431612982265235033650128340674967637769123418468760988248203642880110959114217553836901155078553353423012179097553438440615345077012216580642841524633987118071641397773080904649993483091667737560626652657595133473824480216704921151929510712965081787137077042469602660609884593794452121176165299480180121823010719576313513101565441610743614266612401404295756070512887263646510081568564884896789390066258906107488013947487157042738004424455049624935129394273386166804868932285597326051381678385274411717408896614992670277243358401999489971647110582034378634511031137134322268915603068565169306733314377877525674349671103690638675262682851154948154129039364462233889023009195459253257132454025029574902827484273197187251118515470058851841927330943857723874228514328949985148591485094142347057958363110519736571767515552981269186264034492920217245204503141865112837172013915372308792250803003080318968720198592478234076129222746858882513643595220309774104002757733348395573707828940790839292779796466742363052898092443359925514124040252877838716280266382538949949902350513632482919520862390965172531435974560552255153852557045464064544199923659746773253512629186426937857584353121104210372993485687385399944532428023806501574419517105325655854950483883541058772955178791806976533640547989506577046027101837587399521707109989735082558417362343720953528834734691466640352802371474628428042792722924845634976839868217080300056671916222950028647099063604104399194052325854230639737466333374676725195405246094654979049114573453557698626869593724361488952655784511017427388953650558860778547914546444683899263803597775792357868767715903677659573837287229241188281068104211511179891595052776135126384895072807951373383703991979804675818014940356530604365374971057107353973430220768307364048182022768161656862281779290298659759910303897240960562120834175825335331613351273559726504292198648147955414253307013799675359576480302125440812676406780413827612196942504510164277244924434085297674171901606817088293389636289100662893440089766639379549450233612234332534596917105449844201140628199926803703085860364588078936417992459945005686784414380971994910120390253662674470840220532733373080598522631138541036957206855344618623013222519868543383022257803036893614948376183084519583300581919657613884706355204953212089769506852278220189630312748304751482073787006319576543785969555888937330582397422051623241616091798349680912026495431909673786608100673829100194510728125603327434898929091731615206874633767681514384728528247297769837052913716620793004841791576603519366048571492413589964207351992852670099155432490017304927507445261790422491923573083423146742116896512068090253921867257008659512224998678701908012248236630076981480932853686974152252034319298562477921046406655170584626453697450450326492569677606853314689757027492947030214301514506367823512150435131561443218191407790592892039018945674361203349556651881290090823351357554954402149955893987036087872382267160941324615055361428143336997319437146949717225320276146608375460475196826958966816021060640737941547548424973787520914835390257609799652198323892051940372088561957012528027375944515631888104489782150705039503700766421848347584251504960595156106416943943080350821515555527964689596568716990734413394323324712381111719426171085185063537940565388478135343184614328913754726921395257297186305955088686431369913215361284294410634055789691965192578506599072833609606436438891837576060669199294111602626725506364590500483533192660812231596236600909355423118403578140096538456430643033735515761473126762279351978775254489709184222069842350721993916586011942152955304274939265482686262505865477108500752549856105923665650677321813156372802955901773763388493610593509654555702340375931786176929568196719198928185267321004533114032419089576537996886016310389747956657795195346752562322151164018887568610660251638816886676137477729274906352007675189978972041473450695728064292601017951787765326697649325578120205798000043929971509082389972566386193520081095198882895971858147576720464949957344122981347756007450510999826484522113241669921415070656052698051282362262376942296553557987787667759639468722683930550020499755770611804678188555391378447281131066671075552677461015733901984044007175658367497688510276641272474477016274991676830900838362709334928754840908004166474114486700582328196278724141874929764959428671563314690648240078673318314862849005482098334413867617983386673185773418481785407797234324007915185670230413153697941862799501592738952997427822558837250064918633957141882535311486942489842791768061186280090697801653358925160782402814394274727886270429144105203020975265332054305568395517813012990460659406577089154561728430251634590195527302578015054212474133451309995799459254411728729626556559328646540589467554654795288819846978586869999286104661550499781042057532443472936773281374346432640465507741400735978242795147119977044792897925942062855566364973003337675840920313465590715550062761657014197808773180007374664670134110495134682788925928197700641749931112028928089450836760646260844777752006946749024574928741396110538444227820566846177546646065126138482378290670504770994809798160807917182275343368869415971446758582307527745227424993360348662925901898068701177396046147302297506976535643083302723237784992129942748038194629220553490551844091256069851799459218129300739619446438427145260066413903470212849900652134507948838028815465632238816627454086903704144089151434537028787474645949264397067874577114186507302441834665952567262138946699339686608012888391011926492552785014493176054225954470096227652135762921208073786224855597659312104309995437695852583470532407998353033589639351938703746390593125562242657432534304179299785203208818790540374500299929608445071003243795735264159797428054958470365316342204853874628339026737451490038901355577210904546381269439361260999911151717590717825369001722964830735990014782905458119519436589597347963629279196648979047560232717100088457869237708197968626174850594504159224639423648631662906700026712199161254212464006523152778807371486173430861483739309080970117883781059829818890632889920061343103291389669189676504187912648939542782129850532660322411943113948384003441677863368893779740325518108194118031780638331676754080114286228511322511301925518454640648197263576558802216006210930475283482365710600567780230850460645076902590492536583626489982652476590292223468620269162852765362504277535551497359554914212445008366765914420657903157315358138365108059991782124067366362302679080728080297374870720374185433670481210936171383255623769858325698430211067564902798638323462156022398892717827319867447988908510159110704277056093472704170296044384473816343908894845099092382809924516100145912918131508718918833824589453565986596545208488323465088343699821438559758472776924514013730666449018321182864552984641671452778971997436774234741545579427415883958380417958636704295920072058489995152875038060250033111127760098137315029909808261525959556019086537604720147225572680449978212955808626171962944626152102020998256057370573772549092104580336076900143824417253806264803223117927788653272479887825430193729091707012548980549894911648375964260713285304567362574940772476278944131074424081630681167741611730273361943774348203889367577944775650177429076780431733404068567393759470256562383046201290347294443310915214300017883081476724414299767050796598225199104770065877676764784437293267361902997679582631765076224881898450404589837577624378853824490624490836831835686494951765130603765096345716652039410850777202346081985362408812326316305125108798974459035590615063377795081903554819539332899910655787094667541296788134008932741122591565148373816760355652685824985901446048899448164539587940248890529572571497481556459500411636432248876935023537200792930713879939546051813695815021074200366376042359948428960259067928301607147855907454065428702372251248589002595072102580366366808412558543378059993689258453488654269859865935254912206763713724087395538748904405761228149290048828554936491249492439757145404321677565979666517885361103277997978150604847387537588787909613974161569562546420156474063606597582906139522632581393607912426527937312532933414213842929804773460519110698691695963743254336956881840336147832753900496018429844806147488760139518082391724557136508078479470802289384463192218925708102368051111784011931927221941030562498582526636580062484298520092629101870520927628971621205779000013229026901750628643401689438630916189851379067588868095347408459700023743470076953662876150260165246817153479087304648508255273309781001716536427580385380154235719454962329953943858215832502469412989613547187623163217432634184578597698395080971507901443217056228826930219811895097321437671726757533916182581305507540512122236938000379423210633054371335181715699654810548082963723603180455090011398582867299481575125971416195826285447724824367557881149470075372143949059331230639998981954403022608078790206234076002243184488999054186867484853082402536232479562407933979762660362971180342680896418449325463304917969110613763594422303665739075670709306588491446501101414886205958134879066644711977950729210993494804149262651364002820810839982262027638056744107302780146385991434449949862745995311456033373630280991171732762706722641591914913635265438405719467667366749583602104244951464866826052185751895076722909243710214818883994697680252870132538798159720597874056172703310330663188216385289542431398849884219224268823941537136569251815519535011165666118807926284046466487787689266766710229206031242470449444819826818546530688105331324068012372323110847246798117748571925592106622215837292449172367902042223431790041810128981016020270580221589647928000739239700640067958480559057419673302259986052649438851103804100859677976177716269897894774304168232482149343481199237565157758185521046654188841812646711312318267842886922883973450586457605900815437218669999870609785550584038808657079656676271923372872155767986979154854717842164904431783302673627810136052739214585226321562523721460572783300009705309314123874112699476911730904106334576728017516184556062044975715537269161229826118935075940455226377209333956073606246881882200664298331010880287494704277952043473259127914304707723672215928803277824072295322441497585522442930608930682398486649264438911114663132620380779329431885753471536405942754856205818744766426735376562641431513231288803840299611026215585891409241918923119360217765949822397036965003741196622481093203950911828372968295190372665621491038432236373047508942005354811744398778800017117557249866382539768829091974386879827577269311769602527343337443077990739488106494161202047823395578525786948259483984205454227478994381155324159800893815581004951458378633918652322671707967010093491258548397235979362797681264070195860521413277462362358314654106986566798433315233830447218820522763351304995821648707234599835254115664542921964916191542900669965886672047895955697554300769589360388400675387010152848614014939672512410846836266343122043262655206993398159590063826064616693445406351388467734058255519952121802978557157752991373267215201215851314345239362970136317415612733761392267281822798074464165283686265464923334149141840545054634555081267199104428277227575192028709356418897033452421261028241273202276786860322305423139553962179716343467616131745503826039831281119492434306216284572475496576891115201842133635355715547243795116352021725173249584996208708731651769121421619653027649424975681440709438033841665721153580486582426319936501757333760676142401159507715912926766387196827158122518092128490081733499922795254010420151349577358021053002775986920431185501790314544334886462736336990424474450048019401238438457502355233285083330776332962315633247798733088263657325194704274504471366555985374502488669419094249571679906807660538289386236972001259703186311181323412156728467443147319062428433759574290321304538046296018975646768910955453397242053408962985039391173688310996821036496599183296239027517311186110326638057140876648625475532725295828048602921973275364490557567983372878179761584131647257950935598837219061082339524442719542423494085131224880529134929600752647680581191263577225681517584633809329134045114407063233088925488811184983890281313874572487668679515723526894126295814493773572183154622329989037401961273877161474622857590694650654409456453029665409184466277567013898563051794368979776220881938298616095554900122267811327853578004152262352455496707813893552763432841029187253320593030326599762914753673591034441509507162269745450679231295686921965703301151094523727004765844406146353444062032949412580749291503038114369350081744708277227525374897437940222471051471523047504066866444131316034181572889905954712610450723322763227461901480909608522566571461440511776821263022068772085338277206869346161336431612825656944556110395781807329846468119791024492179150668449782783121550935522946930736130562487686064533435847764240887391975958861307810884545231167661231971772447458757466382562784672936132175531332669123037057255126905062364095907945810467031954362754364810488527824060205671247617270453183047139658572301891508491381167006168667235029626900983122548835473332171552444184889316715072263786838842299662146201539915156985205166620507018024099543291240563130499356499769672154641185490098068987079638518744612039520189089456624130526725938061514554470714390274742451485298951834468777980718576747056043945485274796074319580253621205064534234329545521611147822294491079401474504503688216580920931022915060864745842746726905647737172621145664385934457631483461394268184378683989262608864359957956862304982960517567219409743699432358568712608865357253005948069655014003341428267766578345773616861920929519998996301740073887974969172868812283814922541859661088098808071127716019361077933348161188026609935598130139647687698981300733075181257745199670830412243261767911675240813112012423844846367789169259495567189356452567014255287066068015375733356752268338517629666931242990766339870435227539540360704172994604535187488359345964408568864262953552664042648693980771622521566234456013187571267801814922526915434351388550494401338252313419510829494274396813976389868046059347172207104756740739172532465405407537858250938302317814475161192019648934401816659536372862177588766334469956393524497076413430110165084307255149278116129418185385784609424719000997683792886429294022559817539860621806772885267160729123602033882505482703733281773475896095962693070629637065835695967253469081518838234456279620337512333181598880732570097347345915672226544416800347006615272419739741753053872650386573381235648109619525143422590106177882993142813321022872573148938091217127268494498832137031350639104757066361189504386454965820580839714630523337756264202547363996980694945972764218052269511428814028840150698953376580733143686604910365454536319820283378367036476875148326741217117465917395940606538018798173561745145261927217065947814910616078854488427088457673122291181675769061546845928489389872211507108177313167970523605712852648901702779882656036036425946100654312515284318121069148124514848319984745688200124725257712909389527432874308306226549228088186224009796397389890817162174687081964220899919329516341692665094836861893743911571380315558426515795243388380664875445509788424351665771616343682605144443309398192494166703495522879935934587134996964886146836811790956119481408503459292925286547810684815783328358183615613081083914297207408323243453943183602941742830762500421539366458222635109368920549264409242536259304391529761921742593696600279911879143155023175407878364963349828732337301345092071396635851347236636050080690548703517397770662565002788040473081342587384336644094690700805580771337938573095428710602428662306875592703292094844585787908833103013981331304435265055423268087818943843457575740910258466063589841060047604402396670777900307600260753579355757057246273620805486391761245322609932532808830285051570747459045338311612312440829280071049227775204595879379716801168819506978225860464265452862565106896527952168512486083347947285256902221637767180365258967057383781326645311614634579633785474257288680072050497017421784982547653092309689569662550516285085377084098442083087733517480602221085547872613937262799107642657774785862278554973921139810935556347573844161491909322928322501243240224186092885232664340935040365824911830560734819023094777384958252932213234633187014459180572769232800843789166694457484229111829852695932256541822900036084344162810462153415173262827991783980169473213575302789632128738466265084554867177255451651239640388901976723883410750438568876302849358934119451761564187458033136481191604874045551995226862272825779478775097090507658437949188152426554893812003762264125743903463710491950386003124602727777822934795951357133196486605612273685194289369894749269974900548593074059807385368414953846047524483889524201788069593500715919884502676421128851655558802479396302674247430522017087002430398361080861306845472505213978274405844418781925669501713798883535235885297460717107779632674477507292772871491501065639470917804609540245431875143584507828202251472858208202516860629237004869524057327816547933967706749645200660505948833753334183363842839676714963098190610807787927331832704641092950891557361955919296815876941623470610769781208417319041527070885528480333751947413302427900597328390483012000871617832633273461520982242681528230245974965698252612842000136675436715040216127184462120244731827248302679852989751053483888077887633865705148419866420832431115740834328293726761364493396239722772356323278889009738210120443555015028313261048405384155500329715811298256028681109182746942521996165988861795439307102305886365683232017974065560885838876664206840628269180946433885927722126895863216095678023763459984026004001798416861730768096334821199531688402626870031817969852531346565075840197434740515400370198785106060874599446695014540352570031546334318165231198110270083200993819460961574081191216738076898150599105241067191474683756662712600729692728226865653652469976172860252877262716403441255773935062735223747722500142877658972179880933192459074402279805690214264394254810861687068347816252173850576491072683937870148769982155509314165618595245007102575672628259517792840562882970001154641986559535254499683454399197727536757760021108301508818198541473769434593865610693207367970764712984935516945466522670904729429550836157240280482005825739183752952526736506496453282054508276576046788697632970374445563775637856108467271770758082551496450136921661778576543284150281183503159112404446180336619908005213608803573851284065478827690583266818358816070013629466953507103165585697041927786005935078551589529123382046304921814494052053499713106494761578604400320885602889206961534486023315509426904702898097779353788579649550020317650462765174057154061706055681051340563916042876559449260638733228999714108391371215034361336451422599864248292083056485897581603256383128161380960007908935734957310889631462409528014068190931239998988177176389855562184467803016934635309030592796234240210644929483102085064586855943331253951395248386888980623466794868906509031378554522507286622626838707500113526602918189552099262967569204845943262476938529731267105064168639505273790101943292694527648904787890761012637013679436971621346688814189199336395860180035075231188037272525728966660716621714244080198347884701214534472859915555775120658327914005317578153885684712868027732638578574413283920427295279265048801374017845219289956861868293572213395104484648828217358995766512964725636335975712145877833349572515461398601647453999648539769311673287373055190258883523831135787991680190332652271481642173250670434213860993555309319409956026275913686974152616693518007330100733477127701419825930187464356309659056834563404752933237481009237396165750138276831763589624328152472882977893610469543915503502826559157739847632643090291687434328015923617294153673617133002901737131844312704968867561129896932652965944654996674715357686966605582963109951061757927175781615731258562858971282764267791716893165800057218282357750004059567044091096667357796596052506050666833639190204975710634487234498634867141466782297145707033092691512367974306738758196812129864272354164269806988797909317845180591599019302432089041555304936486548987145776522186898948054391763084645259007275238629236074720701585470755405210996509698566409643722870152885339235626392731204655926286478840283872058924989136201414011643870195436413490863379281281647994637946275888890886464709669938499374917198826039317269292039427776819836833133837995837427681836216679871214211905011989208781938393776488628449485561805006089077650751586292770195925993244261927326972728234959117015309804367641385626255733217480963802868685043139379161688576349517317348592234705604430301728840258007539089113641477260277487459941925097705086980709364105512043219349034955789940741852713087627118882430783202381903007690742208332797779618137066337304327129753891935005178916196813537340426556311896025864006701483176035411542972237819921995560238580245036614678386057990569868635554064795489547204056394333390506496791267481311140510732501540805616465900806315159221174402378865157839218982942917550827670932689429031549380699843793333386911052776198592452564778958784820521885214140903230518169012145740000099664426598768135952384377278958695281000857112561862573652015981825620202163573083792092430786700079613736910219151054757357051501146433896128387242546730050517703234423841235718696974108059335058377127071986943599507963047145774505823365079640447859176071659888868082652969638378097061133137177503642780131010795150616285422063203446284663263327454831544403946672431331160325082494490505332384103249346392202187072759334929126725862933480993253182374723925416821134058199995413275170163206362782222713866913833489953367121360911500151731329617074020848244162645495904984441129545512925447785182211991094032878118886905714686177128860539799698185577922155392567178734816316092248277631266068474583536603515977990989676959585573203612922844329258536479796094120541589326429490701411589291115174751467582819878926070506220940777452074663217064155852661707885427500925795160755955935869473424959095581322204412566794346775350447653265019712373731757138332992708974075559788512835130459845528488372550534896382399352221692988302198016585965493124806837226355932679288517854502844022774385421022824903257802006948502771621276658064074604429517541349195216416007268506509260553378969477239657905046156503155459208379994119840476532811317656807672295290445459270405464030152877727758048106763492931713408510492076753599728629661461574202205665376469826431705138047340697798725308838911494385723374011860751602326020277648969076985433651473082274338827386951010998336700241287274135655037274059472365654477713997966851359316212343375448519031485673455418147535135182424172091180146858472080007308621447476065238130235257835874553018252817171711710157188625667126334237252205700504060984678544837881763581089485331159715402070423036145258205903852945330542155252975305584538191675321875285985162149013277190243163816948610681737721890294290125725579859906840196863164102122468319858531123235674819459361027965505189393145024875180749481773011093419470168270823899002614707023616438777660809420410490544686354854931223059337810243308951270822735314405716559471103230057059511695880954772339318403390277679879115924803956898502261152754441583206187651402222240295020545592180949270457669334725968576237879245297815607873432119742939583967519538975938148769882506253853587776627245075469024658101554299890480700892583117131706379504452688406127388759015841426541704756075230303751432087335620825928501782643087751609267898200013906135058713765924623321904044400554109423982679058978851396895472549226221373349911785642804983756096681418400488487301230012967107477843606612372854182038664763498274477151988143054919116695856174102334354330615424962011709544756197361924031036675834434946443789413681064445016877645049456346504212728487310476953087098836886462498095544942602418712265798457857393089753922307392261439439636121271469414102294397633115598610765038233708498560867410130447340182701469963205324803216226121987227610630829673595235441052783788921299761775191177644658816080006533711913612967243442822691252663909254124474502109260655137241734198917675571505885963575987934901975387835636583676972678635685225828331630974741234812530740737330736099981942622874044345496507472949046334179656468706173839840912938593528182259758821437180529132954476578458605735390777052557939379718904462533204896389601877384690720118531325030770410692441865580931304645448265760356208974908724847423742284482135479488346527934005403544959325684721777409799057363958669752860814798102541407774982438217671567747866141164839811237947910156643580485727836710916008624198857550801322817538435956841117037265611471412396518788996972551637227932924602844057676992513618158795799644275532373023942043837804372339589586546249995751967425755211975818729509354106755159398293735216111543330131012183976061973936394762521920334177903990060331973682839582532446271685916873550226125859685599729332863486247873641500241311183832452022318901297556449547327952276210212396122134639031589156594645651700289311511158389958408912067964728530331889813763885875551077868861333633107547070227414185003621313103618404069531688051788954727849200942304204927128671316446697008507271020184636168748565889704106595554146269828792641780835933427257026520321809507075467449845944701356078654784516045953910697487692989741555231339644226455013663821665177872426309741786419945152246172097570808250051080585444704689829955293249443550705417285826429140409671456562212437090040957921667065111650087606460712737624337342121490825824689860380996441761846186895725645027354022383309554251042631333567523240193575126951277902990185958162552060525214117013524291933540468592101294144282545168976912095144362806394571488339827088168429555823523997311391793200953249517894566551088423977993182410869900116841785646686517217466507628435676337421560961642202612016123946825964045066217456434945832737806666105197524818716940624666096953095998069552673001167659976884037286730877401446617892763822466663334643900955097472523039426505404253089322801467753464312036105577943955244802514122318482159882620282596442599676198673965706586759181830773365592664915160667787910518987061588763190190720079994200112106072735266358175971412418240623669253765558684412026756805598176572566653320702020646865755110215742537550222470215179259933433025413456054894268263333145490244879715067277202822172558677156578785820508202525169401143595156374516526085749945950254343895277680035202647174090868924235145190894005309718516472345231735069261726688782671710636881738815788977960606314521838587786937087345400949666930033601358690265404270972706236004922922960813108638206236323715774677794157974024845327980824506390531347424450067984508355944807447699454159064394994757758726516717935427424970063196369643002922921052006715676139666118666282972937070798756068033654490554561740688043289759474433421552786985629732675766550537150291851371028463577069808273292325315020069118524273928744434946479382134963980061297808877562450499884553724038777023483099986083669998597567371069588862719146919419127320725707237735409093396664698829670378624623737274209732267387420595759808038762884316026975687714125814041835504974905949157995458652389391947426393251510918585569028943934695055730662596922656891607158185372366504716729409615730253521266005391217014513006220147025234934752604767416395906592571439761965447529932137296948672195202149642097569036851637393453051817834665738670953487951817295144912534840810740265698499394368008221259955976542132573523210384548695784363121125946193267220530900461494570508252763889698135101866611653971424046471743586551962913593583097910766792045933654106085382238026484135718729933802334298566515085026493403528071971559107947453900655170462817624670445583225627175218522559573545994977831407876771537925365661054789768534627439961306114151121325484661226606187887357160281232267471819215288885232636692103465648731619654229853621820457262354214774989786121339790253374734461400680639725892397879440850999372207440009087448070638659710241462276305122906200854961907135837995614829456903510351983422873157559342624846616151894549455820226796244350437122986679009431815690041692088397260312689396895661931218331978278421422590552214017516803769564907433894187159321756849292623543937385981853380713205168163095141994590096949793635458948083285476601328829414442251144496819927301537505466458433635982893646600365783191724328503900181821484876169414576289615383821887018908634120938564274859368741494468758271034517414920043195672986784139788847866490459915696128819136181074809499104157089774012628151012428614528658029810660904552504993859879190419761208419786987603925277597827074501134830610350182787929659913628517527234790320197344731472927096222159394243478143522627476273076771046968400171002240388529506724100516676352123764817200521106794465995622334918739874839548348234989688052309347075874773852328779247981278969176313445179337299712744562486095766732938255681864466364069969891268981260058690700832097601651670268196378878976048909972305571713383754649996240687238556948750689382957632589380245411532991570397964223023995456095444641113913610068815867318468782651016965700492283458251394046551531701970764562386182388079371316652090786253108115336266894270612201072180413764483243032874773141202406831292014523261195403727015190784869701521814381043544416171734139163184856547376681110702204510818209221280723044332929124638244336301743384828584233796212323477117793895616687237809242519081296027936424193628184978940990208983798935830032421390456267126734572816186366589306248014609505597734735455475013960217321654009672066629058398180613168867003818705937810638577436786333720595575184276947583277737591946313984272439363341883763108346449957563529327167504171689698821650648076245182062500282624495681042643032003879171181952919853127293670417047963158380327936547393985720855719203508665755140200421477023483038942690321243250025885991088394181164977213846164129418551761714491426912930035970798317276148586325016182854608620417914485392820640005454345597304158211690285985682984105046028612965083285080329967865104009564866486715903371933467719435089106573149067803956388885663612016005080592174513792463278386657344728628630300772975950475166045455024070288306280403513821685257306341494387068515956395936526814496968956145643864880494504349902255671166299639240221440997689487087567143239035514135952103724444184630798541682190450433896572464021425704495356264549536622565006669676084609370648251274348110134672734254564797558057397505931248354876371580056028471346601081062546627223334637334300500962105194636726949047877374912405420699887579742215888796838517732140620987118277431576241817184786926790041558750712143360108540013604361432328953020957235932067141561107143192719926785585741575942577061464945560999552401001930588972927266859001528748754661687092245613133185130601755513126079433440230922953790737663312258599042090094672267025987079927761599000093177665316152880441622694279216897629844246270863622109109337598489471706839509563496973385583582608131695676215749333254707734883220480079033943623108085790529491724423069011301113657174136729203130587855510503963109453503095221831273860990957941887643454221717416334189863639996611498715778121954640797755758884640393707719346908708896553691240003065009689491981091005297743884906312509027378560467762377215785558704459976121164161457160770936075465174259953259347107577544350275053673134131142151523230609938392536913858845846558330032898178374008181875071523080620031300454021126086877452821080171408020902501930290419083589932918659384528904001849643714227675921289134926886256681137754936731032226742009339229503286051501899317271026717013773777478068198009204028077860055452148757552940990287324819401361081942819047068911402214252697418104653514550508388226513919453075548978080755424456969321967110057185216386481598098726793316643902652257138191309347363125697892011053960924282364559170477285341811402639321945703406017953885618436295894606499456445688453426027860512631252170082588193829703044573855441338836030806528570328465127168521244423818341420177836794370139479093114348142548590855307278829484508694993548598541270444596159546603704388620071446618750901304265565906955857280800743670206816972183517827428721289020080906963400377708914519012839377467133973961926386530477067933956051927051067233103095457799612520590960694524297506304559113186669483136425894524432357549796774123976479466881595764173556869836143273170029032516182522700301594928061770511192589115371291244823755245716964726765394474861099524151956147059698872141015158023390123976108308821991174043223560089117920848630590733880298527747675353225516124283673769791800544347117232334520091246908002164559179524174267829385153189306909293266152425660581889441967434345602270972736034266266329333246014706048098467787081593935428210034280781254081067559310696473929482628470575181243028841326539597258741196455016333253050253835029146861461617478562135574543855998553680934633421813599249185751302585476037030128817609364336840782904664397907426065788987507023293640931022141217467165138024069970543498582023490259398886424818555265539252371956812717507018421247914249290170321470072433570159701211974487005523405020773257002803879932970475431199312365706828079352381774539205343288988952572992427613045454271943173332990649970258987641848916768285408306110462093412217198671315768641615499427653840991595606909531383155030909201694561334541757847585206333120435801758720939485541655086915180687797962382252155342503221388405441873046959976877030507895243773194169115998882052250499782940659475345765115910078716398541561345674308091611313796333698178855867174134141356243360054479387451164962843139861949809060093983230900905816829472262572150135372388793937812208630799023509730205123922445632890228249256304137496585581848651373084934149243570868485513515979990250324610602027229093888538026136311393995424616487801827937536625047070069147397331706904684960315105523973517573203926741539102731896767712009063887288853686993320520755687583756360334750874156441760108166730291986084000880336302870869009968174858489321846010870585866824863718443892276655245767941640438831832423498299037654083476895377032201866803971010714390473868140216052675692484727846834316099842965527207485798372176959787756696581676226551426313885150002946377810099539994842875854419469434726493416512779383086266490588500813227680500758654917845129274926312820890220215326064985899909536153454281456664988465333547576205127922400784030658817931734969138541903079287141161890473576602465080183933538917106311012728666716349829624232894114833103132790658173291967664948500767681292699353879927682147460592952748874993037262597929616656587786392486389524151174329486217752054176175690931085588896847349420932366556977131768140125012422684648222875042923183691357959693299791724995186218684412960786469602898212005892930988387738155201175651141999527970941143788174944968213742860156220391799236686004854434589078533611910302737808989335252475535230843824586775662195604492847962994679277213543589298818802176678337477151236574265094427787880433505747474062378022590084941118842138292445821448733465919015912051790547767703712304249172116265913399037622083284442738767047837414547232187942331243607588488882771504586154351093900264360168299280319750680936647066620320555241631028984503825462115957876475673027526869291596696185496190444040446621995372898241096177079883660888876546481266345383532784505254198618337678646150550393790260681921141972384146128642458433235290322236090527775500471229851229503446288390556997598172060389161123806013131810512249432835957733063863092598511034722394645740862665314900012903665041569681910232979697698472908632298673625985784801676225265108112016335490215471442937431141975634586560157182991448118612687718340062387854843797865178568291243295398814162375448566863077376610374632358682132756653148544645068201254845359273609361862647661962319918335391473171858222985701711167198114321090854434250995031766794195448597299778958568412400787726618629144166398690080112196831336509690388607660128461596797832925880349042063398827207906992806790336473776817406000584415438581555772772295649752568643868949261549289242281103450161202814786213506165074631824647369975188202096435878027594649183662978213194771411452163821127477858521073676592391306086899850625921114152889719327870137825427134275634294807801331659762642872460027307094590110964339848745855569740924598089885435454313053664774919881506892897687779052390542681934357738634441513341862757636310330922195956203215290961611153685739850246058647010516677093232103064901091218555140080216601473625469990757789341667924480798967324179992503579728065637862421429843419725017884357176949576992398474525137124601847069314815508299698961172058217191105416766532433095673499951532031878452325761328623158175219882963020982287494311476536039937261066354950778158188580305550542662451793842510847262774840941625543412354383260941951590947168093052618580653810494509778588082214107635639475580905772471530722819487355835346543575188735512400918724641670434708737158493158821548434544930428082014655351469522808478305357196952737532379168519497296531354042949046604782885591851482763239489953795565249201148969394451505727001755906804999040650039473642420505467130050192262591364234739587949647039384936419098098530512191621558370045577310419662662507783512441077625625285738988589660214128348956074093254651181353243587604095375521215643364986047106280265202770977319515535396436757051151166928929792201097165623859632518175615932409773122534533106080717911505072302717148271801468963237829891120610276527178988163345417514441473064365430351731621308486764036914376844320016555987766873301871634534011417135689071831702710641445210584948829911531164976126784909397348106854900394978740356320605030736273570324159687089620643717065436397290469122216716427888535343372115831471982402305671616657769170178204752905773443970412847349545208960185542153136280719740786321231653978301297526012731126414407421906106695505259866813551495083840347231036870312555137259384585149927005013275934627774401011186284255256816329808614988780665529754260860424160682983073381812311614969179314060777202474205425282522310772705986412611941417314411684087279215303951794379325038950350379516997925183962279012532046316109716981397061452327226279366007086271394457758796426229914497922545209960976664477076992153613686025238118919227869145484714553128960400300537363318196033294140686543742207734030046033858962622624914352407456457049225044993493360293930875293349273129600917095224860995537482710547859161005138392047644788797683638846571330509329165820640169469425752029600556619578019276742934566777291559536990206106989865429553785598799106190704558262023852154327303194037729871845191269514943207628695325951711510077776832820274969017179256898545675956507417512128762396724736951674199195036110049467991355288402269400931838195646088131692112649656237413831682406239087055671539739714323181967293239689263514314925312245436289062441606585396768823576764744363980140572614259822342561074243161625488636718123532868778190505930069407512921348443987792577627269635445371307224686145131563149621020138838593714401889477921529277658454377345516343893371988738468811105486723356932794005440921219609343490675983897554524805054520800498152749200747877396284199965065331282696188677043348063691780799646256857245519628823197948748965577021479642894521512883360158751915953810370850639797299735689690584007788429708992608484570355183157900890348637184875416685383234608639198278087861239701947102652931885737214809046707762474014321682502610112667613742170898136751231083191764166934869984892029180277851355815010066744310597343833944735567725117836458046464615451179110351240934984918551593866892665938136961130354024067298961219762427109325385869446359423002541753321565657250243603303884613932993937865959279678964044588046078153059477510151153662454418898329892357775660931477161612821804669206134459799293679366502420179666922897975373073644818898314668245552307321257581535039488127264115042317215482443561244182528835003580332786706813879504627906870490116712376071643339855591302403429998614177471692672868803266255752108847842167745295910245506769303041791375245768802523589809748645024641887666375395553662635915381640596219825235870966413773128739336765790120030073059184096338208230332082989535349363242614029014846162918618765224111053776952694561212046187074312341950219314483236383088200275662986843078418065621236090959500784650336417548080985021354733949247758495304548113702074026329982580740968256127916348588516591447588799029213724484727064461190992366647575211498364865867032110956454715787915092174702627243733696974862807417258185141822083551705270634850960040443068436635163061826437466064575132657060745205037211201515169934911278392933911922239625437654470861056645742725569231465185535254260011608321678794429779424962733813576864466943336000352414466490076798700131560263492047563503495247919804282222185278059569305249902499544309392692436127643824686114268197818083502056125433725145086928036505350298432622855506042603199315127938741173186218796986997634477503886909806836040445743722862880570942919176933948988765809838737972692322359662338596934965123374347476991436318677827011482214016647547365610392372750417481769037539367334032467534153627730115501020934272183689094155910864400019096530153954101206901250603932269901811547829502282032233294005183868364508051319548143727208064375319322296989123492481038512843617560207402226558285085119469948842512588869691454581592065654877912337542707098451747937039956902676262014075064802750327238065670591321708276986091864294475068937683826645445595483089486043222574579380028503186276579406961473162813569174441598027998154355924068114906680946709929845745987015484908759246053742290640373604467742854060157617053258755713356838165740712642593248051691370447735683718307120813930352821429444752842340289752259179215160740108042365426285710974864466763571440820724008145338160923262035279814699967495723236578267332151091118022636939916018147122972023804757483953564553196945408002264803425552680905758206112444701757716058269257018514413944688490536072043610096757212802724052092407023610606881871382476516361742619133977634561383181365012560911047663183377228720637361595456472374147479748983593518162651437669712003413553498946837084893797073850247600099115866174299161707233784893531177170771523957767403083393142305027292630631081042705651302864846625392029885328796316776230382299372472723880411875447697652523507829505615255394759405824782421806718582457046994077394984720663856205573233445674345660458467837742136922589073101855995841068834622503523537285349633195283706250942507435769974970270940557470466452197625361417966624442726676941893039066763428592300481524452242616811331737586327837868816210475915372589759668696449761422483711943749040865602550072198935026501581634673688465128770645542516610782885603189699988712664514684102144023197710582414979704392461266044192411406014683381161227422683156905412471528979914645095229662708568750127019267255965001945006916129066968028104475181942920255115474942487044026311887545744761001847912781865817399769271808100072896030848986046186828198563094241216763161362377677140562319461133832807424184950534616861101946043825319309771091525917360055343997313331358495010172895471849523179065662509850461746655778631488754586238720261021948232428776529863852290042526197180670425411725622360716426397078220485985941679523608528176873427739588308286910563310694866236095435055657512165149437263006997225056783022119128655012714654870841402252231531492234972279913537730659669599987503999378094473319066011037812350903890182325624306344965758147445278618545597362470063194037452134728981215269724781091285565225379634737388716712603299306854888601973640271698272591095319240765555888445081578552458411120444902903906954239128488425190422455883711708881627507461479762461892356065008179349477174290701238979878078260513526899268946984190538146261633059002447047158765503659501789390765814137676873725130567749814493853929421667828202557790417326560583229354948341906586009289610296466835781552964213921040593275954060609438266703172696383204133354946796977004183978543420467663215551948448288322549765308078591060301208650554060421133904013268842948309089884588743023082279930235928547835225057184910638128647645484551718099077317901470588004829206201504420678453977177419080201536681607525503143738279526708376124320491056234625768962891943526661089801395624502095181504319982340874321131710690616824017871112267136596663979201019817042745866640368977328273278348243542726509771604318041922523094412988844697310834738963673810901908995267189971939214510581108127185468163701550958255167071240642993414766701611503554414411940419582917734851071121256629790986199999965408495170439003689220010422670786945797231969235850631157086938459696184203014505515025901205108263937039974365498806197037417392191444694165141066360794569748449348475390392813867458211830106675154318404846896924682619593998615716284301396442310954826869903223716447471572749363231844074298195398577995614759229840174404851530417667978490063699426936600028449797977855540260511213052349557370626758257997143959917885449883310665516236658561233592532718396466182376448297318893329842358259577932171301412178759194159744020763972957153189236882308193647620671477909567490701549850037513461911430984927707707981388188799594802241648658027025107467940943520449531038567766495879317023982510390660214711086158311621260718659900819113993815981019206980002411273504746288966719037907485633214283427400921682054938056270712180828730922649830665752191185346475018501353206064176412271284605585447617394530565607463566864424544627416483755690514120673514060963051264516674894066382992943836543607465061439507049680718268491637095455764248483869268184119121109249066102068846897150766603274505777733430416276371060975197903306329568178425974642628789408783851684559644100851195309785896447266906999984406321867620553034180518629391744063653329261892208563143197809996806570676230534075916158082008243620739323011422382563007167365827710939915226247993252800114545633126956913246900328738993911339924973244800458765877136821489766160972699382570765115866631072108284970496493655241292240445831917028488982071788848543898145129166758790783849620960486036929632914755949803703181397867975528937361373546962761577662962207719051228291742970947233870176534430995784310634795423534880588812316576787070585082465000483245110672533899162314319013052215436791261286621262025252852179121713496924066920955811300699979492303746012845277113877006297076997114380374551150579841110044342089224440516377145076186250542235670399962251975592367737898746431995701613605322911640936095313734900499690129956689795553327110013858417530334611340210845826547510128600048876096829552192847488707229262829045733119856043999005104847076631027859118911246462559319098421987892697851843786795044064658475722817231567695629917575761160720338046529948758793306544871291643075241965092757934624424196266506897994861032792737656200523057566207929201678804962838715115100336495927191879559258750407447539071968649793881976218451758262547895343851334819898095132507765160321893676439357898742571823839567418184453569954531500825421333065170103087325356116106932679093092028699223727854685217016280674759949139149937049278885671675062376624149147062796470717735208527810171673359988482813717960977779529417224263323185183553171673320299763032418776446235417596885902514478222072582219340072183477776081196406213804149820080825012550009417665392880086179177814495916154345772474065195421337087636366824239736563281895322108316245859751661490301895918231994263299559631856193115598539627605496399777597174460475175516976074835627598193572000822977574282776198024974038782608577171258560492946006406109367312789994926913103457645884486149904402084263027036695793074385884431406090143617060154103775886738569297937766457558612399789354000109285744495802229354674987543783097095141012618348548384804302413813376370004543922258537140377144794573585293884581428937200197988013084547818926281222201912046283535069380148197439555846775645883344962791726360825927611248659200599898321840601093554023766309078224916292138475910242411413828352516026253532644356005700708404511931066526906879899667718932492694696883452642730907498638387724052833667812313704553369799919578292321346821376963128635436582250692439130895686867697434334084447519086688325727861767116122078472182469489325323395666988570670246917586069890569450603565549529539705190994928858489455846540610827437356060941258137122948492044740058051873023008837408669294614984427486763031677724627524020154028009234152768917062357140253785087903729355600728645954284973277697539820879610767311348006981447942548620881704667439654872143854519042795790681360431663486317456943277348528810159851090450527895314691234755087156271039172395787928759766722151676242629010745403312129091011224083265176932049796032344774162521682220974991594892033713766094508300343348209442502510800042088057546922120493249141274034291491245380214834116836753841941601953889277033257466327493397056873725448755062214127375046406492136721653694311147483322249806215483161594654439089898309641533069584862785815147703515225514610156485568015514515791718182069357699171875608792646865555988016633582618690698354908083529839286119312665391402712382355315960381577860986824167842882888906935426095107932400386980631122798817199112860052377045295945646679433112929911631026904499920806724716918121994414672327761362922962894963354828582248486035627995208422410591444838335198652172331478016424432466805977368595377413430066551651461749035324251190070249576024735054695376433532523849388045847442279832393927585805953902396893823771283293385537873048442390783705836674196657066165500536645168202374503910749117674459632075945204954674341646346117978453363714430103902256508271911023615932369578312408093209988951551222044702519521768909200457761299388993167263916545073537102374111797467742589229534419022297588846887428396795284431983203184707111946846841412444186749705085618158902163171987758989525771349462047318983190684935059056748665606636149416187281484976653042222244137565176277436844536195895000602498130043450987713762463275355622902259700447693569386717575223737336763902387807508478999304666167525689085346755244694032897011670909700195343921033297006319642674010577008035148829771798020899951155435069771918312921014295000412547369839690092625757617418217285451418090261417937586289984055781829869216488669866311027767601314870574595534063602210493845371086798753552300415084475554328382345340505167636737734435740356769360532775639779430015655396644317292414282220372659382814494564574118958257396763607403875678468919134116457365526844823195071686209998991854740816747696526459352447205019157770113454318960866629832780076951704649374183976247833709791438522418547490359977792730018563503069417517669898828337921384251067140264505840795093431796344345213812045700863478946499632502695806810343693987940006364358499908160484536383345938466846043068215257288582616984964194825384992520628935004069880794079831963839236443883299605818255130768306655909310376848767243320389451282346340701247214637967674435270796736390517498369552055472923054379993992466802982060562655867718365656458262401341613122993110075317943005543075673479011030813373018187461428282709488283728721491596665338305498156675523181861159980493764704670352243891506789090516032939152322736117095440753371603747714232688110538263838872461673616621815178052763810667586619862675771321663375058691996181808885809030453416942522607205174284438592720627563137514729685950742803095197971417263317393680104061066136833861297158511652364564978097390482367021566542483079034459666444977332720654019922894976588505651500314521119049014317705778615282616345558170992060355620562170336671680274327398863218900503710414661592939203416916939732069928176641726073514819548151202908054146724975545371815424014803824880408642797743589891612170354505181704336790744931901216388147668829549428288766084405196380615447100601816760416605967848831453287181420187890959751576296604537901756653150243739237873375877180871097275368939187382870095733925493173497022366675478129783386866172310589523041094067484693935491640219722475147358393798945005430783049328297619362432803192064663919348595931187492120232849767501704144656272937695334614928564790566159838544254520906216522064242643169929850788049603562205892264441183814540887940456152604642646081518100790786253808888459164460749290792014776061791654775036456543063719126897051107129955175798864503225396039477573596160651333709828760989674961481092550416348907172083484913039395856156153788511253058456413850893912516842332977169998426559734568861671652681581744202400647635087836128182161462457641325948035674231361399643436393913410657749005471861745992859391203002466203085594304274032156961815081290853233267827251854624651877808066156335394236175098685775305577260345500424287628816005466348435835950600399040483742325491792279165005443845073652265177248905509237211882508520359061511601291080058326348787823915519188553688458109520277816821133577153943866050679060657587334366500667763995212155672480632609841461142493709846584692378680473652301703196317530467860944697406701975450030747586671247149330060722978454298265922326509871354876302974332536514304271108149700160998187087193133814629764484545952202409628845071163482774899350680761521647309162659576733434014974508877788663280912709006884916752205621356451448350554199154306444803541042761871423250277765444311899113675814256648224546762357352610651197919381145853116206701867530637021097360878225320120185544646738782583791212967315057226991898272029246060901000445464923922695823807702261434629979440345501362860138448170567978194078867018752402454298938292784803208503008468921776878082862044177766867301770171858710422446710121241586685243731768336375743574922209717353839850496265914139177476853263434542002271379751534515291235804892956215632268222240045550198283993360031757198544695120178194983129576144008630412328156550541801608079631629481404942889792516842151297648241816041732667771491529188321821595862113772571777526038535830259431341104031281840309708735307744033193170234083162390284816668614438282059884693113666082217582778330477618575558743387072767926492966776452756343709727152451400396951464729480894427190494422165878796289923198080578982950849044849702744472815094507452714636045491812704068971130947259826384699166909858284463485159645719574745789444078030569803419742265147581880599782099727709997065988629466708851071806388515362808704646023304407120251598840781471319249746053671937097947084746809249429675999239747777201274248256224834207424205379522783077591711853020470906159109668076709677560768368666486313302405564400786020583051395920013363422305560406259550977865826117875070024034614149367203036528048459467371603346158077668739478840905319311591307243303519238826829211733360476563764554735708637300904704840919990453105078103080979122610735496844118065728267630502945319617542780473412220721813553388758185695327243589416277726644519150561198823919773017584364638864658378871929159351096829409773997029127474772683172038758984845969164620740498549151108600918849091590639766055353337304249451463974913939406967815962331132313900119095789784705620482550134281175557040319455983679651476063971480414260589730191943638978862757551897515425366279836398645904175237303638915674362383824400576023669321878385256897351215801981834444124818684527273892114974665005830424684202625064864025418782191399647787844769164152061376928396815195566074409531701703994748672736601894695988293828632300474370013845796836422762887202510115586290890656691360663069899485101816380520896900571336339970135427187849723967099548709141264336984718651136987737348811512512412583717999584834852494121672340104873304918215109222609938976122320524936161608505389819426343103514536904444996358869294552888075162052055478949444034720622572990304307297951148304344028898949576356355002448587462283582061144774727653380499362329080612415452406386788488066034190642382510392065802435391681445326133690309558269124625547377092193942419997367237427964870665573467507064006070702431362344374577410535083062205937499206939694968229570830059215398620203416599376959055913328879786256920925673660924927775094370519399625770714869098747312889527659466767235124208758141018939572185813380477329991292659403760495554824830207878012863593305259979657034333232007305519107967323645177791154535038150642449857830819137960436085325658310504907898016519681113598867584484209456644032472334822748354941456194544641598625123501474492022668858016247484276017798094418670448700246812333177774369756596789072654792944394046910761910347011886314350557388989453763899855589010759476583690185474808022375062452550576359470476174391616344837883575336852910325698715642394667429201428282747163676676396083403322727388870888451103923746783680369230512303497807584975251183105572774486705376659473404247917253573675581937572559628844908011066444167543854722892303330367245085576029869857601107914854416734966385833310448435101802565021023352945476315173229225137998040680350124017179778045795935289355746298891801117923156335080513558896958851594669256881504863637328047836680876883571335909082487423589569225121853432135749969499674489836421458127316999050262158939736992904023185380762305205410977177204729664512654057590236729896110236961465974989670909548921062506495528265961274385259110241012307803149791757107269526728131987179854553178239940885772161453941523730526577673920866810912462629410636258348318586059461246737991187692515733723949855492734735701873595725512682224542016976958607207287746093418219090093926465385638647752874146177299611493925900637453562530308317498843293581281780510432229971122444151120826976816742625912678645277273777527399854556103047251453546760224077180816094532262316977299962731440506393549361430032900037022216250885221870794350300748079667245111706194231601304267219633741434784999771550990774233422365508714741255647628863843831659151499036237458668967214844731356687079939016423811183996217479683216082443595649516901458024925520775767313601173851325863232419886342247342649198000048119723475032561582830809134331665055224443523871600822803540940386921426648110216927954111388181273220199913764643952008020356106747475896884625547624736347420507112698570308417824681153051680155165491291863961412924182699224706991571658001340717513650333188771429214055748695041211592792339261683797587686838947302747896147486167629768582995622801017465451017011215612549413019015860351723464733667168301349924801742251392905122942094455992033492760340894608464033876095367596380190919417586559312873960279125105965404496212151770209578971066552592369719338228226749132290717447358925650461663735632368710651914572979096121731251179784667266882733039105348653073890174282734376189978918962353107670158514245328542510122766969494658077278228726883325844979697522136067768155812497028926894639500869608868383195494444678298739189774437161194666183679609247268190121965220096651025696755742165555970946361738595190190780366799858872628182170016246946517485876367768426787503524781571937121998966093053080712624219283222354740773267012393086411795817216863095007225001190893693402228719767289947999397353924531647369453567492861982424989270153304903134271021709276342769738739232113925619339669052452659504415113860465325500782351435702991116985334758033629877175140771177174788851944534664411224006192657502353519223458839466468109256684514287178930788911276453961615331952857295348172253891310882109529678527558323239774908784784302992996076399516563753250241527677440255373701616484645640922822964031088593240803001299779172288856378191832402936448555886388807617894527205183221848743249559404116098796597795500780653436781789307254435833363761375133944439475567360500726539673839557057289869108471464854866449308394515826876336561904874406604031669596375504753011271929014395905653703653877605734078657708886157043182746844626716483139892178503651685339066600986357363076888441688382954775443114599898586212919408556210033922156850150541167542827227565260203421241131680461090777717851488281624568661561392822567611667606657927573849877797170082637914568844029734731978989499546443502014849629871355330568760015523911554888785372663733050895201435049665495955748951905446427561639047535294440677331928469447188699019290574542106856480378056446100835203211185078631427569981793523481772606139999021956187768844511731979847131276939239648326965924196206881197369127746647911964934760101180206233049519037035353392737948490365478085644168644230019242406321036582454440936315447255172958868388931227514953461465334618042072120853953682070269531936513596057095297338188280092680125227257624289531853466083188936333993767649011922905067931950849304179211758476681451514865141363595918810685432844103958229785922361285721743582920949734668329871415991508134317307965682121316862982332938245065032803655360412466052028972299398709825982858036728071312258147234680247306097281215846146660956820488813351973315256327888635041224551344354837571124705017498444427657589756589702106961979065433567088833126334969088181044138017038741617624335006686777719208811783058754834728087488397619758889549958393803252316480374294734527251955330906735572641064353573141904101732394122602066217118086161065778948110544338033081074045907219638486821219653428577837991739116003949126619890043170728920037083493383835578109373426529524796097333847508909143009254404216281070113180882401725397574402061789438452926697187077704389065194369331293757783854252465942651880892674896891025358275235800553839126907729055413116121229501252999451259646419241014689023227772985986263014193934631621257147533752190691511830923734610748114805655778944123163037387390875423563911111776431126895875770954510938142673900184200904521591909764904380173156131943191595886794040287082309787736953488049298879239133813222290923627522234441059784324590766981744594164806051913976439688665808658539598008559274259299173856296773482587763693105451342802158728863270580279421102762077939889079375802930563468779671016626504118358359376158329190796747362511816249869961349115397467540404644959304089851144361279238038268877470899550411512981824081606641113410159655566144116673716169822124615742410432289792308738159931620145561589067216333971958324683991840699337545287390463048673590901007698707928675506966167208015449592027740821959003184330805012589188260078556504532840850250284143494705947141727129693150317463049520307842524225708254050014470973783926734250909368426165720447203191683342456249720060107222794653505861580725983486880193227569188717646138338416055950729399015889337928300705349806799896860593837736839565628782189039244625160836465318654764207776588475033933473396925669868605266010189593365354387070647939074942249753814593388806830974847564438983739648363220714744962910175865307085561754219820938525728822923380199817050121614427400818455586035476323076760085677793568464582566383813203277408572938779281784535134816354565286074903343950223458450932327521449282462324179241509770536313482147715980518291753301933763538710641626205873693513163979710398168299861029562912060052307017427027795814764884882377774440320808981607659878991720118656161019890384421001503680059860508106021547213020394236570117491222393680726717757578004699710385197085469347063189415301464426684471348862506405352510219080033591874947168162357748419330996435200047848230783473882685236748696252975825110320706680577236910117080857785140778456693119275639848375645278132755586666358708611345655157833345639312797587562982981426966722773369391339574679196052631935355027713130616026332336415585164514419584897276430005244178374539936901267749984216912356368217199687524551848324788192084399576500057383590231827575966262159871928588533859763760064912405656377936972969152229783091314623522569556605256703780411573094910919652955502027983200151342676157856803814744789238182563061032766305989399351347474254797971437687407943084215471919662311648488233100844919477161620651608789852237835871053940263504073552425539291095928708177431821292411181700182931557985979221163102545053795774195773848372466299755202444114787456311823240449794687169767646222116506666383679406180361782991858027578817287425397245845475948745423255066870634633448368787730302039397337592796473744874717793795252150858647717060826349637311348694669638269274314009701370813809445339658963093049965269344711703642866569144221948073657898573692710403942021836153022015616334835827451715233399459913944066791559329326988225049764415702819204968544528143276785532526094212831852508323985687214555393932274489183502962698164468334406986877528990083247335098549799892570549754580202753220077258672011354866819200596655991176992857124020698715715184097546535283188331753634685343807464658341216113705126261134683262188362821761225498597062213078467047950848307834932277156598628900357954505472353094631670176663717739669758173921481944714138493324071173263175025326174718581415388016817070253084181707932944444752734507287833866933254707405198295955365941484160537126646769558307150726732997452353916023191708440345203347067429400226304083066107100599835534874935014753590841199844742372714244693389183732844891542735292006572628123437486304525376356434502333965883804137424923661912170158526057590000894110975648508856591000269030863994330134392091024752120366009078358161342675756571051974806258787167591785557435588655108560098627838114078153333934173232324909025524723995874202502670647590082075316807695633208003021464871944044939691382489320949875208671681540892555523095551660779084444181731584730111625052052683739358837920608385559715768206225160949681073153271520489049310566103556620448141024544171426186396879770598996577663676416173635221152610323411355405905960755082975330403209902591422143927030098523019273600073126754528186227700461991899353127877471309201300276684809811109491340166767683434619325386385132685934119214365488824757439657894443449541137940447894534588870725550449062818238221210442935546087570173022026349153138014763727854061612645202589794394898687787638722529007287753466534645726639212548122886802537202331348883819589673030333427940559097901602157903526567572575783202198746874854187300705349842711857023919150851323222801059337848693537179223273968851228300146458756001297610426247124109839932591023788636600713479921016682649482990816705314951607338183411970709772022840270190202751066639907545975273521764606309829519136844078362682560492505418454025138744623619300947640153080687641425775291865688880396447228734545352744712272409058543434475326359786601857983426357624359213762891069793531106022372926967749306119475782968320227845574783410206896992134944549411081215431922796592193637638378184637321920116451318009792143579583664623313510745911499506918289126615713477894687458312962520312769469336009709935907388654051199172880372965041562266947673771542932628827395413000106365994890720514734462817649094256480888312241074712976691705482444993233329259415899086455428431129036764998345489488614869678957828128221943777778906261515311878383399553139248847232249241683891522705916933207637770663079532416112030392272450978212048439102969725099695028474206693142518250827605148015912357793123182176512525325837809077332207877266911443714937656460705799764922567676797572508654085513993720334244047744050633231157669119534582324670224475666793675686023914217922849134428874586754039532363178985105338901774813969226694752112688985539066176608192738866159028144040367786229529974900650525465316717652656419483236602665592204090667699027061465316054247262786550960227392719618719874175127285199149097908506158046076364432723137789766244643419782890018554877298129715989742625454462707774060277973108505749700972508895478072493102275934059459415251105264807487154859050390435579888016097673583772950076625367789884216774768609669480283740792085277460817412702588036792853085520819355331261111745865168345509435450987849690552661221365387985025206451632265765370688142695289663969272762482498219970494853196116542577250337539697124422582905077641259308175826785013208302091262782038201504674202114308507753287530493502714758104545350670381068128475724416277457479360226745640929607839154136466005590655919269955512109847661802349433914664124185419124302669736032708688607328406137913277870339494350675735177842285395337257229378026729530503018135941358594252433138383404381303721777377549863822394958883781863656342259874040167285820821044431761883881947759326082188164479316330711470955212983307418709348121816002310561685650748569977180621155362001346298211041521328077811107727809615479504898006049371353235561434941582996900836612060955368979684258741431273265544773615027146728063229871320990283670023729254124475226118795609212792207328127394438401024065210615432484663153803847758723954375758361871897198118336281953477356829586797141600558052647757175004586744293306254197238851969945238688215382030796354303958838088038890622126812364371454904955794919013792500448813162169860959558985200489659006873126173227096438333813595302691468914378766420985179473822860122567684529986687945336805524485117486017885988427824317898311404524294186773592470640895053223231842391812406643217850421684350072902989218246622493020760653791666680746764743734114703123846741295932675567176903253774459673490426317021889291302628733939299855410711437197454593149142949392860061983473209483449093795935532002591567750706147194738389982298713203141129618800773927261779281355637834015021882224319257448786371297071330401555962534474764063198355950672598189426645351278982199353247496838057424447891145426792139102803371557360412891140151702118505434331229829453370202511582772398356073901230001955751211345449647197730035103351023968321855819649609153473619277741741067873658384959562358859220832787921960030440978457377470377098225301365422077294225021991103935781408580912809231162227949580152688522171521934953490792035958734037601904809734433820112012107597903656680409577063883691449380638840133873658626186250748601462661486318314831344264986853494837388179208968179084186410310418962328522541797171759786431609023852217766225007982883962586940234105377452672562728549342139199786034895918753897775027249121885023742005910523662725696921462579385105052633123060935894578012470187661188319547797676806278131779457727045548581478426782647782677584165121469376871507099197716245101733247148416211995911887871410521682881383325449933051448635388145575145647542040230702692053804474198539427232875245794527236746068072498795465364718943039153616658596217106918866600409382401920321872415624101169256495419705101757289926220419417210226764361262514403171152626369694853627009090634160033226550099829738966028857481902950236723772347970636798034039631848146679628568248357188668893490731360565968924730389754824972418354633576741268533712794220192508246066802481711417332223717731986099614372851796674988758041714229452283911109556217696400681030516847348377971471713169656855127915691727067750963554467530437912272770636484623251856351456976153348803846546863822928930049752197474191230550754964587412747272031997839525204603696215888110769801501179153864582624935921351252889884829222900611866513366584420235324998485733466800992587380056860793616203240734565876745945221019886268558390265872169690792247058946281694350126824652423193969790762753023500818501348778480159939456420635155249565110285800630202469962974324376251207814369672392650703284328855063717870644709443132196026351194763749267514462787707613503405114624063551236453677481146363840178009748206943668458954264736776445990892322496069140138292968832186826418387270573397377294995200755489036225774768547458188516856094344220801717839611863398766222412447956534918671761140237948442830559632706683800691977680493407200640741963040806609545331350171607886719472939558177879083265603286093883338305732256791338625738009635763149429456227043049186755288168631591897726549309759759561652458250471099192155971570062393989321999813884084703547499359380650665374090446108893257840669402315652564273100452521238929267743818933338579221859464739442747305080601172672898093094350858737048573964357123200891685023032750214117920747124617795322374666950432273379965865048525126754135534568005917015975062332642515981106433067420215710977121977646598651662879459456321858520624465077752290335668725662954752471822901093834356617556397359712107992697144222792275665580673547309784203726309770933313605043440229097571791308706647863025906126976459311823278414236831393445169056076676621356633904165915345361618447293613180634470573413982208508278395425804934102076170106190633734149627791966657827111339979641255141537286112671291319464695330790109442587367418213464342823932348968999831092266736378062682343098544383766301941153157086487111880544379329738505793235573920533900458268895821414343746570570084494429547588355808176220757742548494547806937467533434235752016918621484511095358093340513890328160250148936742264863638042748287321529274086121438625607520289959482669115590132213452818614579380899352739081568205865787346493454048675656529695933364218638090834424356182640860106430825249607403152490194042257487364638608284850258776166272844976166652147442863504057204340779925882706101742923192635115566113842395061763422026466654349047799910090057187194544024638139449708299047611554680806348872153635314546207850217328416735390843527902974445613030958393683789490622932354766064367884518043607670989344571209031654085915973531041313406098885527708503407018376396789168298298020200831697564057824156360121175354385111376124215544206687565277160522082323129959063522836807683688722292121916698801493499292421337407026540952358094111052469906663720205126634542494926893041687572932594235307189990338558955966382168530973560849614859132103415496000699485551971796771466946535851692721138660967894361845822401368480037342767402172223660803339637368229622773271203789255903227249265615622383724141923121236575140519815466711939983074763485879148444321701696253387825485995767272295522768099434140078709180773345421367557659951219299858288909724910954892307157473698572348222998934335625317107911479693195923845592988517093938726314227194854328269686495501374257099174724650102695089499971874910725406650784875809525486736652933086898623508931875782958386925753680378947479650792456098507436599646277699048741797157388687432071635640568352551284421083672313758007566104858735113586510408071550006683569072406294771890422351832923315075862964828646572685444088450565521739636469227742172420418783435714815629163938499760682879285692102022612440866163010514965282030870696609987315582044713733129641775287516118713664076104353171719232887244749550058161205130750827967839273196080320807668405011682324663739348381336383671753174456592096285333967523063754551099798911585674742141488705108367368897802799150693197365389945026930910798875171741446641114681154583836889498942093228782658387964398290873189273628793160327324286674943897070677665508140837133351478131032477229082274871624538119140917104266815494295878554231447822350326054164706087713807830558540803090135966810802311212186829044835395532688479086562627427658769497514400060378208357566289822532887767999779368672813482976619906804477627965036017924601130762693970540803217389982482484176649145109178250204763076879824604504421672048195498432778365912939746461017711669542490659334280385262953393309849474107193921623584177490299166214079786834907662551455249741540679564999769875852618300875551225930804233052784613706684540748902875744037745158278850256921294424347683560247305692194875585691161697135361222278006057183281979147778579261257293101180660087432023414095079475308387070527963152503019369568187814245886045881259255979300156658915332151644320828650521662614608669286012157396160200373922142958789795576114502909942981187790272087922175126866783567630473359553386188059572081127768696059345055114429979013856667652476684443121603853771957691874617684405775679909476497968274364758731933057872306617128253087749837024391883447629661409758539754419782659803526626366267014812575773535896910909350520489184215717356611047924428359259527690614612055315176561949177894359826473610943673194551967950119138114539237678574337072925226342324875216698326506413531011649674900288967726117433149708738358658760591553994027107416087441741475421520250689771500557791225390546062118270648886489318292887798344966744261884209124797346954502457467813455358010567954104533005640291327750152080656148977389491893689285069748578840574213171425774710316242513591918546454783168370304889710136610821953446447909788144766219568504947844410449501754213112968785578645927853470828407479880311761165219974571857417234073486750646285880994812614392132357793726507679705093629991623820240309052222317236037981298046396306212728657049902649806012097894839721542425792524872526851298154695333780176847590534184815030682060637570251967971516452620274155161313913554887052155528073737769258007188455434242709471585478760227744276547490293038942245310741886607501785675535713919231708420510549896012583289020226844100309865230862405302155538126165838611776777337174784826002242866488734950342072733366389832424885074065797856494919030926088719248014476254972189318134288720688251457090774906032320581998534659453279877774246864116917284617068866612457122012810859629581035455925673138968892223128982010195762979562436500581805777970929973409114607354787276984866357849461633514412233984234416810769598622630126595636628165218969544367513264742769539475337970874963281532480844446780821739802948358567119744600090764075321667644855300917731052761836914216614889781460234288700707718484834666572271695281596473488558598131318673884892995934721778984746671767203897019045026951562491551410130621308563001958385107364668811452631449465507706889906611868467832931133219187383625913365216494222241062446139211020463290278678032753899845421578263401391374241900007743505841654573992295090630565161874738402173225934743349363930928935375732483889648096532784870877316021306670380253741634060761885045744437379341609270011536266961676328040342602067622460751238733220672158677979153463855366096905948380234025086289554977469866372710187658525700549816339401092581540486916390998709794031022136616940150473883379324687334196337334798706661649796149729922276712749158246351016428383816318903144632080705718341916909629217897098463407487435642439422854522461528152867243902753911536623188823245065263921034820348087079141972690001608512417599905577456088654626615363379133865446762111074154703720001598851914665300229347633095820323313872188077525536193907933937157970848604717233705679732421975014978433962232627920932450535988313384957848812896890284774305685267358456259100865485434949833896438679448011179505379653021064867087971069407205412275890185670912014960062159512187395801106832123391007462271940521346945822682832940117102272241860689855801104502185284869690683065053758427612058174873803187418387012463426160691395978339467563973505159563571633409795141484871576825774801114465789904620698351593008382247485321660020816640577310041809281948924654286960805775753840209675477874077117199018416356700399923788900254236622995922431122123825858481314101317058283925747704416013704509422844975564715869839417864451460419021758697207441259608984124520322905411370268714457148990624251826496282196536976757744389009997919911145977600052138880688038131713571435191819806930653237164590958484594499332383640003682171760808425992997180963010730433559276639684334497289161234232128175063944963782899394417846640382211338203643112671146710265854727964804129351750174847774804625747406909398162986672966434313189193936349812046122308091451251888840016743535806646954865345236113574118648872335250834846978146541348540007198293027393378252409243553201671139049018397105006766533641213570496126225104110843713975265657872596977108008301201140797976315655987646385016810644118211094627754693840774649376246450784156451657767358816765595192101966727411974403142341525417664807221910727811229901967817441063441104422616360642798378903618827117649870517462260567039732455489782047030969100626845172614397677121942674387133797369321151613400677728757899960198634215899044681841408752354308786435839429028460913063862758498704411047948108090457533825535504993746805085684976917341259414241628952281176942257035215627659383222804237457873886488659220814469875936585682481680449808722536572310541122034201413866171819144022926312844961344640523613516809661063142416177471438649929040697730422291997113119956883817373953642809290461932316038985709652074055520329258163231177862239966401563800360015306497637873751317805817227132301404127705401658222818292774466785700716040464726958176372379392119296889701022835151469648512515504049432154625919131580813103036859711680724939116370555952897437426694759251524545410348048231423109833443640063924964693890259605514014908286097064893245307963397541017725620119925934776501668748052986908859722625300533610998246778362693061971733139716699966277285560416814065806904733239427079928968348159712039349564994048223490501999560477760923200465452921690235179709951483146133067841974511516136679171834999968462710358892230023667431139900845505027115144680364143343007527310151835893027420716229744748924242826458726060086170208390740206391390132706649891104177321464468614176693729552726713493412722117094373889720215606546140662995689584021771560980336716974276150498208450542158286683905148282795013270469174488676306375815790503799259996535885427702233875254570168151889723396630192396383893583247448547018809145181159437269540794421577184990527316271192287023621181938996136330681101907429683662158469751017261712526124807073397851269362174148791471913498235266644084082014457478616307104756508570561299647665765625179352422148535086398162939229941645372582776024940289748623942184254813776930175991952063019068752934624110630648051523031982036375314746328187882878654427828160485959287795256203460314326464045031591098659695874571798097547455366822773631539116077490839183239324793631111048224982585265473415021232322086058571374482477364067411129650313602696920253688276637485117339372460215031383381347170758528684677764096821355653985646339229324391642925892065668999588057140778794426924866792846931761072723247911152550614481096027024869580358680766102088307366464882627155035980926490356479744089708904631607225412991285734596557653400253672478978177512612888554413416661160447362287694388750086676768777242181569477546837855100518457244169054720626350713495297010693905825304728183046645018518654030984283796583148003716019007338106912020123262621473142275456088456847334880447676191875756571661088857559080976141240931275792467887751627977875945429305158532515510430562164684147237805329491468558469670957722673318340296847198160570033229272561636554718975400161883053282108228559301350629965340681012667718273293674281951649560474775878897202816396627215756481440886934843504339828388278639568192119055084549947592902343865776439778893509596784079424781242759045477181864760410779388661908649528473659407609908759839576503624320019820808188741793762479797952961586751682777539360430635168755944281864892163355432361728550432953889751351951593526295276846483926365602450596136081866577782981918166964722182039093286442059744145071818533545673483320102425496880264548864900077735865830206035798597558502254943004726579742234395454072397689884447149276198421009023065253142705702518633747055055812904188294882724964086908055765024555213222052220403782335412057683229043815956273119497870534124085354841968512239521072209198138591761648653596762328295425411278727308909138262462175855315049372794639019005891194047722876434000979646276910837067507519460159622002733592591703326551108412545486299964084911469197433141547900022274070898973434921303617031790769969291642588442899566677867513595090656425880547319308911876740702890155599668899311041703836817984655897474065600603031651174441469508175058418372860581903751823366310156840555426364971071009684824105431979276867589069954963381856034678209270017155563665410706153349690984623964994799555599510876218111226909859004822516587501937089134234484319285695758506429381447709142118408172111633453712386093971214193383260890960241974912862241661527300228202942408767503606735320614905017417447051905192420489753571681085983591180926212408526891521145581014777053043849573388471058653992259506368284051757236665667151290626069618724951635389717623151817776558035127365653722680752851273610540081044071050219258652419175759279643228721905003976553381689759463651732400579427615641755208595750817896170779776316069188643358025327752522827291891955283608485969211848085108086255604341152432703550263542557415252536074480179011851769418544366932431541059672895086959209619712391334735161320662578693087035073917606569925654831717541879625624456381382324646451414243093819907762470112957315065755505096750144667918867386890183410847698266445915644034372330568489082264455267633299351573984019209730207751516512674450720917878451544667915514430034029294073112037706175343521989336006344620356130044956571406050846328067331106048747523417065877791699563328997955134306534775126286890338153275352143795930169639049788254292526936498610639292704992539847467055409037409913372123508580505556912179864780912658119271591167315532581488331712953466903082038498885926196674038985531482781688848173843949417413444074418541057465309410898939705619542116094197767644511422445041206455757538709916463618018881096904724581086036177406837139247821586645572442420316028915041291661303573991527329927665632220926539699392585597768187191945341830118415973961578270058757380352455151159116059237701109441560835595431055685319732573367091625501464444743729865158810037998734804372437824173607175652196451356926937624009121494242825016209583908322595909474511869692562785831970363525110543130697600050574961798125349561987190797311553569784180590600586795664234819971202252663104187771787496794899557842670599681080893592024787033111974150331540925493956036195972321557625618768009503265147453343015327648663703515394861429404104624950823417802303652191040891815812299185708203646647484247593267195286329542122989023663380685914160939756805353489024458203113297752349072364743845123349775045702165889130220028985515930347732177097370475839883797657499893630916162110110180100999032037960036632322420246228004129674864734645019243774807507081620632760943126924590516598340804800259003977649112712808388445295620846687831714982754247666149415469555873486177778762295331028859496928993251395306725383142278045324358016681345922137887615355979311772414047607004342395411549733228445548517013188195141550487304535764626767040295484185997672034601132855124072567269992107646331429053997729643352950182266407896130424701704701356068307370092411301797845154080101651951204372090213631727190669533870658830105691267807585902149483756619662295125245452950365664716239305986100429350057541908507682457084742957639519969126449094018483214631862388095055968072925990906661079021003076314693061083576909354141672467022588652023613486905278432154291976098461693232014912730117266223985486242405909757338715882040837609825864057494362164981812631006924827779989674296453148472021498027031884812414938548938371035486891935388007854619340100389627668334946890682305456986644726199416312376551881064639076516679893138102795214493173852690285837674493021534569792670714233417106149428908422531062846714348730300084570337971740315678804275537844534074383048623980174871089241374852457824470087385462255772024308521698720685638530302015288264992212083073682768269440119374482063115383010803105921073460187520724930439433544879272898409242818803051349338053536988196438970108593292422792604046505028023881012591088869777715955186336222252489378613481225571243603338745533545868651123592526070457784041976315127462826276701561286855972688030922098494595598091244937064415391970912650884770610677819592817982969716605056268798189963492446853729535110629906149035131917229517412454812411094395625211076937513487268007201551043762366514271871825683652106048390665692378441217538014472067344769835057955073794557332736381830984554604891132665753008029761892221907123905534699447891188718369269440328816907526566318933864416215343193372768630548525527551222117777943200989756478951377400549843888737824237573685454806124157780669433490981587780862043676973120216193466472706161016101864687274609828138822303802088164754040214865362590668232821433036145623427588915628149052583115301318386260162733441010803553866764755856471785080115397638165022566461977916623626596083913229758360621110586474909983942862465616300756798498210555342574192795446729173124145991488102246336806991367028107615419082953798527366457561095396657656101116778555588932923443695721227756098212070766606484637379253942060542498382246266162791853101923249587100764484223285836554557052009718788965785976298545884383883545452379899070539652996768444907686135739726912135553177263886633606876053649213986003965365139635785612350643318921159932567178091123830234616629295975833353289809307998490314964228837488348692348557460857897377907151800804073227635504502929921989099267889059330731162923438165123542942780896300791274702237603150921068429626217889299354471414183319559520636047470652686896053892182307902275275826966111119423708333179281030519908895156961084389458891549651143101548953019819233634493770112327327257571272302674530841231531974394014259860639738991325843284486124881158906958837083275228896334960212354011083255914286773909007650348243925170748878197623300925446565757516480000119575486937497721146037675380415821286273655252479997448130793968210627133972589456580339569122292209093613006862257150099701228665929703419696023105757951389475034617536656029466984865477258095200090449950455205456792621323889231222932816235588673320654759032441403990345526496649964084507410949821541002210125623958510441030619472662610034044727125184806470412448589211620048852473068553646322212229641449159554784198822204647655713095770706211919509097009259078138330870571628522148794559890638836552723225517401365068144611348939572335209596453899127550489852653883549337462263708939608988828573141314204120988937205023338402269632117288557528546220406329697041487193623853174289327373126224661997063843115790074156018332492090883272876253297715576873465569710527451148499332802966924893621707000463180543266418633397347902774592905059012024715933646891731201134276461062381105628023789606872926551265087134166529113195171153154299240116301655263726787389261948909061183430369267234361661761193081292416830557503240213672629773109324190537046120776229222096243745900187477709616491337763632952949483333638370978093843282353713028974411200565935673423262113087716336973400419212754878844566246996150064653016581840484492168664860969313178497751234111548490563448343546017741077738606448541488163625467990388433815620436147024679452729183136460597801576003892435536645649325297366671251233578590899348817217580436637245120275989542738955499433603744917622290656166206187656630879616464285016020707537876111600480096750033543150585739667624333632027108539336965772711403778248423820367949411283697163166851078227846272900717457043555244839792554600677858425608589185570952261084927280428679063987864975806186149025270756680565364314749997938763783125866377584843858908926144557710657103555597109779380207981624466915936435707255315635567513494937732098463232590035630854441970487037245390320347861840413087921123631879504254573469661379099643766488614820943589148585896744491562609654151174033649304512342920253498418776497072686620225335908002255543716267963673844739047489413943260107697807081322196625205119409540313395412103176956950545312480678054015692311684195038561274100472846727363420707225251716038533998484441512509602232798871260059918249709606102177776284154334134440781229720071003484587978344958776494540346379530726225889027849957878189753348165792384717642459849692954214964075139801831218298859754431163803709359961722492619124834351452068884053835274901383005147532128231896863631829016465018432376661979924895604529584866502552320188751706711792845482365027344241771563944384630731934679531465530244719686437319684170620044327618166921399436009760633627525219920106822717735141754816355697117619561640932596657436962947270717110522259939974920586233108103329056414366408173492473133952491503390142412283260235448478151621545359474056596864003165918528819107288753547690952200728896095795217748917737356089388918575671085613616453896012114921925813079504908439932305535039669874418532116519957386754371165405549214462190156375437709580284624182784094110672185137080133673889911584846978483932661707499963930499657657102764982965153172364948310607228902188638100688134518275682596676217291983438897640610107180284962258973746739341473652361040270676867192988918899466325688249582177763132663801608503719253884505672783499564553239731180381778829288816421832634769172028496048589112637390339156952865249818699575227611947840732115915255374801873905354613497096904246741811450338224403996498155569573181364357042119041123863006766789125744148588432129960566940825344061472367944786951899372056554550567829543276694478607858495030811820364366705010110055899094278690019206733082701593070854213257322864850471445934853616021626079488948726358245586164582646985478457596972391333521794297305096521550488902045853730049849243626528749188450566390139005671275389824350875329046733545895180752570442808669099759634575367156018190122093691824156297939175940094850518682864482461351867717646328351436887371543099933062099596867252045906733278014063665113628713744817231791974114295039232779768848462515492844201379983672865975753705688593038764572824756247033386210430286503520810374441574341792940300485468042697593970375771063529221892976208114141826848264130294197974643727744820004178148103355088309167688304218592083425383068559750188292101950328003154858550555609858108226065305202403421575306217927011706062463930173815309370856128747454029099435336331275037749438022528166040977839270527967653734305050287719261376012113105007312210371487803250681889059355169891779884924067328349236134160266969516454496789026547569065462285816206434305937809630251564553997128704853067283731397825555011838525773089882161213991438564608889931917456392152429494827071248418932747528302504683823630085642672038704587354988503125275952796799804494683273318107740081554849502397362658536993595441543633277126694719690721380491760333917390100107170449212242789095000319939137562736567542862404288040941266202024452091416916143349377145174204704705911755215539526438328581614708886077753840895677596620658076293524861426460411504802759104411742808862292531180321862030888564111468272280927558298697528127774957670769640866505032002730257156895011557311159308542702704454281458233113821832233384380986193228228055788331186290842257026504057731456443365965300275922481644656525173259057724331786387976579152922834866577797476912299642772035373576909602385361176686202509304959978083820141950366779514641764644644110630603064608512423405460508898905194651089129995674981068668576387196426877481796490739842393458483735972327982545279523912185759023085989367825423116811761742132446140818192169365823132701982512046899829056699131644678326525090741778217689038602573409167302645020010769268787857192176548240113188043660447015595190032866557912217162754461098898575745019516781374930570810056656808369453531382812585289625700459742769545130862339059952150249047967116480290482421613749656757121160755908320076110469227525866652747897190458467646013354271487330124821524683667589513030555466792563466981366721767175147694967877610626415224146692581659637067552437421885353489200719123107778216960052510091635588206173083320674738917841976786170644750439185929446638662931974854263523868422729947242247914229474830974267669124536547548467353981876208934497613099653310344306064918097263811431562942425604749304692598866951971085270225283897511527672454467195282817507785265513769907520055470205446751067362352513638640924034603350375966021185202945540312175684587724929496487370825655188166088625302272232357195081146981592000013982696504297949718417703129243901487319803698826306179951865964080131771474170747197949779733337854092316089188036958261185824782326329157076548135150287796023910325785729000725331048853479287048866780404807749551634630944870577739202635910577394335911977471366053674874825659800295238500653384305933034127367104459353162719490518189963555564281829084456792489243412080206196287157879219685711538788929861102476633662109078062369666035645238191602144090612521816460897347417021863160064417806821384020729768140671219363992524227591108731460016724242391047760256296601279213535667892999970266716899634516527553406467147785353433279047193528542590955237427488977166388668107863486324578848801571249790055248461169391644130933865871464681170586861874624292828741634198005896915047021001980923701785136110540819165664481125688831245364563916162696692518267847340661893226522863021719864775645183325292592132184894870717342481652918444446060301165892644219152507791810056193501777142768076666554249463646340599127974633106972003546075011142625556837734723453658285267223997891040900479122137346198818966141645845733459386755682138166299344870195481906770997796684085966810359655518970560266035391201416980153018676748351585069676856461030266365200398128082698755347122828640044492904508090610878343353061037449849238222522057607965967307961687471377300980428471506398832770137881500774537801057306431082425789258943608246815857350557501561466360282132967080880543567236813938210780794206152685554071357277409236803915083703840721065357697588368878725204350503246849022557628919607475744069430283991886182764891148289543611311106813742686864322797769690805661710581341035135158400997416859207757049703911859005714563708391583304269534791531066008311528799676517725716859912744776569650231383659612149215699584255602007714263244207347477849113129673500337919193992822966780030211421917012923233993413635838100793477404071954062613369124568060291070275900527135181145899255183356666228785234925154431686820284653641175502148024617416156470379431712988857663245877172897811632436691738186822325587305227454029075167790431391078902461200237966385729051801097765167361219806366687987083594814104309542396618691677687333896997806591651453871218549971762901979898101654291907399319578269850426601857725060733097893470052836726918072687652056143568337418183128412011250928514965857467921879634361520590654981279107059066887422241459622985536227218152650994616425801013830588415091952713694409916179229779181565134601489706284057048846915434799179858279774448084956478081639242824521838305777324142037483153092124014139662945801801658948059764223648106346803945502019678181462043168537386912186963454170972392226101882302377545999330848706798280084427117942671041375449157945637205953341612404341557007683748758922103879744035305851611244773736314415418722588508329144272462670367466063210486796980042521640904744898504810102861029040187560125078637599934138011087673203649013063314372350853958461259724050989196118505482676811187899958242080016024853053232604000403447972869771912596090986728439701530600895080137285857648976932668071311822263554031401274189543554849279896599977385736177224909989684138728733341139781320557971271336919771002129592074789327400732130903765632596793967053283544095414250857722400686275293770928106631587910607167258926464917919719807253911567045967729410799966124151150495469246259103478825289627750544460838536528522030403035486635740498575543647954540313144914244718839464061554206643976658544895029857778840007416151178365697119562945143960605675822775309154425774093076346885065091312284083287601841987861287161521150951796618789463257834698872569410960771308466058892305129335154645088593422261204942705746047181428289334528565078713791538159153998303322364624154196585820144959984391651594183862564823311716230087644277123473929529100531627382391571095745837210945345594047308268195825706688346554290068268429207461636275738913770916954746697816812628582913652345337066730757129849258157651946433823012610367224266818217672757559531969171160903509766858282027746254199640152476848922440822196829996171249982385935312788095243010694995514212846235983978173857727059813738103791787842429506966487763252120064741414574283119467731429036037799619116003196557960033703038481352616118808866436428251308166873049682861848166983866760950243459641250326378202873545514817400047520785763777536949470619383627442063169019629157025349634343652395542399855106702829866239895975293886497412540775807609705619839727224937100119341752691009613500360459658998448606536772497822390021722979856737011593635779401761093142625130783637433557823924307339753217146814712234766668587723555484671290414062937699310579378548094757585530909742413787088006127616284031812678768148603229243460004256692679840913943974136903241786267935681802440120920396553394426962635990507881807228298604052573587828156455874370902416392852823590460502012081589074751109852000462963504111086986146271048966621857493281723980711516597298070182203122338627834111009608826395896171402880650996430484326928379204652599632370916835068055986255491393630349075975801075502517924562332985479099877233747329305497324178450063271248109501968013789634654252635718517968097343384811547463560735146890759280132001510678435395862564223214955464140504258707292766314329512625510827913976919208291257402752432091201265717999584479027683692499840170318527429806482116749622365161804972592597979104587121363629312874048354417071490228671178937261312868210776997448907881910128478355947397179848960339954748725788388887748926362824599556174332588160082858676368395049551635860360464903315269883370010188764586785214826145553573909349749430409868515864410148048793429551401417019516357035698645946751335622664782114649195332350934899135202032388076230119465265101543225435530060033285880663393824237207284537196969562828593466077356641345291546136748144286074382877352295870191330338878193952174336887415531246544794417549192300956079633622519171266975514151716994394832721815664927457960247753808089447557875760938143832378546318490605382914564068063053136646301870742164724912882402199812338296959730180046213832723369136345268250573390715124354018102030281989726088876095496806223162190751571652031648435358878794906331053472293181115490552252163038508088910979906727910856611243111133400076870825474348070738885038206200010056473569208070901135764306021704418770539055721883323026952778346692991921556497947430241410650520838302155018009161660586102465049239431076390133627121746092204161107834748276627421887483981803246302465621832297920563666099885117999166006346008056739074594726236460136804424255155640866251785614821268895688421552170081998259689459685225248197252096278964069587666467704431659588726435072427937939603573211586442725239383626289079394769724168835851387589419080230190392306627540444373019946959276759678776156824682480673695109757375976742978168596659353814661918261104838193685401169209317253540155538691869117193592988299393115449551449827753615894280311808594252706390280840928004982736999817664677978265824420413350402379851470675938200193512404488010842817434514960426695642125936974640877081862655111497580279351159539616426346587320691075332180994058658213431656508891474338152307439094656121808325365806419395652467340431434629195523545195333134384359342463096534989806714271437344892758586247308588817443755525769253913684720950720226663796528478625220972700906679103347971355460151745456507181501641143350786501824685142902317662367383765458377750726350498783702461583229770244446961135482414830509517310039290159927829354235647589999610398166920640814525661940123154940620197228075434844956775342027689159425105126692303485581409919399096111670373981139009746002892452923684300912915129176388433854203128298170537526050986095189777197126697081775415113947318485991453889410291644655121741944085836778979044938265512852785521788000349369724132559480562565989378988161952617825750748072974370203293728993393882169580918777517329803506617849544599187947399401223697704091403243271744269145320675636386350353801577395842590001234120290618676313480742277956075324361667612285995470183218516193936996839663743164672353093338286886801699877672513383839041060124984243766216489680986987976780157917718716511216965308396494232088193610922680982870465879283353582285499121898815025691411907246441764849900079830563096452794840838934058103135672474397963637736556557504440161517786487291521278015868777869739656539207370393256612356547206625422210336358757627613247034553707873910338904154055900606525795169331939639102376479104056278846004750987798247752383940380367115398746565537382690488184186906830131280662794807576581405545979262950499049881097665655908105579184446060898934805342104142939860873390429807241377762895216847809334940587363485070954585284689503390724311474741928228683965745504774378114513522060849700476314315594460863902608690012553259582780408763186915901359062505626110410664644765276097408577095346217827444356250322646630641023640873288257491737537782669233901357927242160227330506282755081059751675425860528041793477490924813389944153230477628757782082711767305402279207824488186149463542071526573046908033743934318145911877987976427189251721617475750973833817076481162877232862146409908920290480083339592881112930395455793227488127714034968056655703236194706942801512189829808255937055314550865451928671426297492944171735122191159123047757789427411185151802329748123148105887813656953431176426581691950116272589490316038662904762877602385262836154274713669928088300881287990058713376396216496265072022256158509765664246599397048671047784768527483892132993640788106992680099971566898368136202688884582597255176678132289605091948732906435335297394043810494965679476905237767379903783176589434388347737810915667588203781439472928821607116534141118740853008864144245388251847167872422420840502007310924755982269884515944922693321448213960012064502739109195836563216361074444663151046057744828462163445117703848519044186547052767198050116666988972569843796587723888574405795683703085742880052360777683347726629618244237873659732013875602246549864562152118057315839767069843719279217253071312866438728856908993723055867050125153378969970212688533489796855896535732466950124357800161267780842690505225456751804102569174749300057016653705838627410562627960131059620188011052375567665900511922443659993116395880927523306249467071806535068545468640462401194636528480845087632706135601288769307763700663053303966349664506591602729545859010572762291630973816106422656363285582715726613445775723277926784722005139540474788155645908190764845098568760906350855893982214729455156331733148266326865464511496785499398145781414512971701476354983354932343004907227925426923688348133283633927953050117907310475439647219115851818152372945561764845006465144250797760042600819237643942609600174500273320621150119417208944743981836597552833270823329825498695354849446563536822138325393089224254924331407801888958791857969122972730227507225894699058966695337656064645323043383192845159385573456622201401448560448494845483104606704195364715392483633854189892111747731335372050996340699172122921131160151441267793766775327232673126366873269853044712830606546745021459085855299737417087869569157868244611020506302120542395649281104239063551758923535130256646032821958076756663125043908678734521705921893445823110788408308006206698497972559806953334846478004554562484423569117006534500617316185971615534709677575541062120779935664666394577362002009466910532932731730903549522917613440479516500800549948173778914162264128266561609558297423759981629059945693534684762691177017981137782490306129093796921568411494326795999034872539303187907870778694111467891162833980991623712266936517544089750809240440059738092580797670324460792960499511651601150975157055773837777972446569961999190049397219626177306650264299238043713507037856295668672868230804020642018992502310365650585147144317305715276079288790115646310944244395110149793447920425930862886948518945658625154871205643873079924653931288817734847034925784747760264013041332663105836692910135014840995504452243038701107509161530785645862081660842437809612055223439423635614196045017793363349503088225887292192737758196183523580414719301288968749420139052088921774379616017334506772609307754362960656631728848761189541149537486229516880448109699672347185642616798811784913164276290571218427186932558961104602127086408618815638952520630825731704656493327027957912589161816310819820831251699442966679190517425349443047307020004581605410987294055028859967107316900981044438790658433512448953078081012451312242554733006320899423092443178804021305319528002585543840151609814730763745230883697524119054579952271973602089747168792383840732740311563388798083355976381523597993772475597870787631654449184595932025992674653491225138734359941976481689332126234146920073174014070262962955448505211665691877154113397620710579180595454862818096461141779214190268432087466403834926314162366385300874825106540094307936267526813797339580717310128802700248725020967007772559795245759616509230473609701661307580426403554778327508343630149688703287735045893487129159121821915537563905045926823251717999156456837499154477634067715725306669138517995866124082093701755770946863710213605393053272864473688802951799300112165307724914544901039941930140662917600328632808256715196875408887992928907984765491004240156193451975008072377337093956315702339734947025851000172885711770962627838125064099521423486261054165997882175488003897497131280358194946436982027609159975177065626437132730033549268353060023220848693903316075473187636172059350752270872345501706157919749393477245205812818061169893669817018709933001669153403608034166314284594926068102067056027255988260504012883080899319482835084440128234586732781640927165587298234087140066772661684317429377842225380505012880016272326236845438139698211226708669373440961523591442243428136590245800993898812629821586129040475754079199245875164954417225321113014593023906673635718472484771106087258129117204862152797607286363526670641499869040936585796763570836620403510233726753436927364527501421342945994792209262695753395011628969082500699267170517345697847228915819355798817679199756381484137058242853825476630009831001140367506952566469292540252473429977007207982402412945999007411278563469204635445608687909334307101734441926107958947501029536361508067764091355971672456157341766504623671628272813569478354071815007011844085257289607574759299734312567269741015368309429364443937935603052016318373432672150476774176785825373262465515830029048090699566572905015214110195303926431262673024072735552498588271298712594536904887932076919156210714192299119484078476566768554542336024325651430675324222928161803414098291191323588889776696362089516069877557016761627891910135460155136072234297808664281455955362421956585300311259364292479905774338606889455331232882126859536285410510748251194377402826685665564038371631561152123548726109348029160947003022858179031683274535950724301229818851056509167189753703483668614467973882228057261248986865750817168530508906132528082307987164532128365182973820432954791372616580321934622576861298010687893779724272632388283736048799532172662603440775042638159412831771695238103418634530816460091704822681661113009478721070894340660691163977980687736838324927079118191847773593362771026858586444292962939298639677354139322270688326618926529951822538379436455053810665971356888579833904351024121317176018500758229371496164926145760954331435116910026231284808632315277726133748572012727641814763049625856988694094744340775896293190092595292821689749610758562396316773332456426010125444234665686868236569201582913403817345891486157980932197995157538869878603479130491016602391485875535981753070485757032901634733660685988840813734131651306170172628387441176748674648610923226134342634026945527433150669647962947577340148859950314534011728486990055263326626501426040795036942805614853343649472117966638423670076710277377161738020705622314124647930683839385854908021031047811064198070386252594789187439265985100557423320482329889630329435251127276228326000094432332765885573286252047221761844703014393129768015593384852189692837053595421116685655432906988877703273520768831031709536954767256183660227611658770703324369008761065214418355529640437332638005869598989208312609430500765466702759715283185011022044746321331038116449020566654652622707590273302463068251670697817202053578930451825703576396795194848754192535023022811237477345993406929876693038597748511297136550358047074536734009844174723235252776022267528652312410500254259146215293980552146967285659888303465742787525375342358079352964366688518045326257591222725414058576793517613982289204718172994570211883011513380956712956725569067091691197203029988384137321097186336359349946173440583146851553839621694015075200014249176211607038160890094573598377242923608291634342943884524793926960476568504024807526226880801785386772183476192510695693141525778592346364193558166575324495225913182011141504599684814872093848162050544728049011998952239775490934417252266639230217294787626346882022913289704311902178342358745788499143993490713306596798916608926756336667413884787566999661270989216075381614192136567901942332448500385243495947036827567926138786007525267328548025872215059541179203551885442196338061616846037958836283875032006277119996682354141660649602289986931828242202310213329932722954567917521240687274285675934943265583401776152155426573351610305024226266924546429684478158255020275761945387582983170756079789902042012889186763315655871915820065505803565835548275922896995291244050655672303888254520036215735723404856688679834066959278139044474066925212637140812292399810587270402757077718615476380412889621249680657282726243902476515563308414129674487664509396911175739760497045036098194258848083134036355494056894417994573692752888945326495044727498351817508450020647555544734355425309914886091364197922786876853102119938579532869934661811311045606699423257398048857189379466696780356323541505025767148304015109571638946688894123253500773663972104672163491221684482127216863091012741399107239542647645527850557103901501621466818629659124875176709279626800364434210337382780264539998182288780277423233781308947091532782752044044121424482359047836590764608852342776179021321864865205514318378976574169719263110855450632358489747196793280502759970421776981515243479447816299262382585230529840914687167844976578388520119808455766192996006490017471429670745088391849893345046846076559784992440807772483294824509973582608865253607059781663344771093793281761149171776968375431371752825065314979627008804205071641962261390505921021844341124557922519319796812818323373719338472411363503925301134838662092890762841145729411272664220222631657273839228043106187498337233907922575695770862877117488311807525986677304483432235562330489671391128271176170316483476305707940339313495633189525738859698547756333424594597172216867036222637834572010721856335644743924014350313293679561538075060069429652087126153036899248510749280965427449853248935318796123196058794284232598046107132661266305860466854807636259392899204769939864879467843690308958754454775203560742000661773002778407178382779595450083345821708769766751060481966343999617871403089274896278351622835424970986536788671405282206996957211105107860961065140637701423747629356385657895638800188689526981644636119727073139718059549736607497195955297916530896582833191567480562789974167477429915799129913346873458560252877005393533926887233192574001280197992519143021972258964550612979488752768036244697604515624156403042012118202119772754155640945392369083751802581659477980659269107825308939514626238149297197309456381561552285272565841632623016134621320674206599750810816418042814752504405611743164153185040743323641175201359995062762497511536449370353579625176034843904171434899373175456312617949116904299457260538561730169152317803987738942023677192593023620305764067776551097140012139390765613321329417305653214863934236779289984568563716518565368483820530569219908368206392060610635216635624790123878744676225665165498986503012149672637418212495477645600307585125415448775967241586088452617643407375109561347434557159923168620604039358509877319617933227903815593203879184093753251665848511593909721906432084056445218211577579913945448724103066106890066037429529766083219329034303927725315780306949851216623329824830877267256405149137385219885361955431435306799538006205498149304449834546698663965840805091688944649646733771972035347587393535379179514554816117871210671209833458665443319286548543721024090402120768426361507027686962054405469714156585758444989867346676442174382528830484196902294241098176598646587548831057104022600280598793818372384793456585126894702919372625926176716123225532339515319874134145197927086285022980713320238379300025901566990161072917501874793956521842558501872679142827631519797950045464967166452631699846015181247255399305201099203917395921587034475110563455427015450317879868260785883970632246203285181277173898182529533893766305810023936717016998347320310085095108699157446922037569168361172594242289844634792299240123662884497224285948353930634532482553081185016057914100724334430415051956813513678569696853342095350649784099205847103753697814648539876921611593748598810142570944332072021006359106701789712916006530516377873254739947783807893350106150454383795371368610504626318220175131774513728087928755211280672820337707852635376670548019241366137545645865300312527751644340921535777332058726097268536152650316335663107116893012456734031490487604687731515453479358896801198458186137174018275113522415319475845414978717252645823564550229745006115456387532384229943469821179936291925023961323047097964666033179605497674201811861240403234617955891624032445937662628420708614455531418886984769581112708048747047286663658501796375426728492555952971289172135029218646156447365539767145280223919974468906375442900497554974126340248071366028956797019172284851272215917997062548189062106724613704624713021706209069695412735725768431470941199802912293347718411293651550607493214030548376307255448809042256771464687527614474593257781690173372493341784756068483391450957117069950276398030726304670424564763622980260616616323803526538399707504623809481905792945790447163297011241808878345203104918661938941061161645865993975143569078110678312953829659174481237878653296252746741461077719134017309800815519864942741699352462970024497961030527106332994350115621988622780054602252459388025197297385918917985267963361840303907172649273893418358783659269276222512481089556388375050284328387060649612628543793859574928017428219860578340226743315963638033755232914366379225379381471661153018135735461173060189079214632102188864349324722840924667541589754530753209838594391093122071193283410159817701196522963438060745320098637610126674344956907601490096614348244437954192550084748071194655589218438819451586190901385948370430295453830826042731180122978325229122304450480326702671150377568019079292803825051916951205056274667565573885826217741601117994997909412498350687109555382666469905434735991683491354826917924578101968781924699598533996204861933880234610856994072786114485033199544749826233101964790050975630412990695429872280789974750906049467680475022620183849457566316850459873052536775892031876697368895284419976713611515534583006278918144012363218394434464696431663859967807056640486573390702567606198683251804560973935921675954228236535165972451805075889249563820437683276370488477130409052787190320158589615345770511611315589559324909625626448377263401543849726313710332980321963172102012588197216106285682915308869100178005184211162947953612436115432621963587271217211926508134390641055788025174422223703808755012484409925515507669267195831588506609967665776690049254232666752278345984647800694170461095331354283891712094919857453674016178546484925505985465113488205904576921605247199731922206282713056073774364614070874619142733967961110062295922324785519430468945506836169193552652680785599841984230446075507314233879555100502553256331909721071639268938464448473753382041769209235823872107553198541333308160163859257740207229180982882117455807614361749716408114788411332751843133087470596586730692917307458064494243048015771169994394424943163787477234950996825214744796363066851914254444916971899680707765901337601173501329231440608307676634840059433370864875836716402171769129726788257270712352630968984233612152931493618544920419725707551267379808451423434549360199758257678738744582805728269540450460618732340295283692633267882974502311793758804183411060817408103127839286636019086045229445716559309752622280692736130885088830049452099309407767959139848695077010037002984192403337080949979657289556625994195444033749932853738799866674311639415906273756611338926330622372981745823886030085741981269028833421056817357838091565255161393973947852464494710799538701354814378291876002902186537668269620595849446669863502239622271491323279530353296089629398638557740127866558499403561361550765261985231722709939449897171478895143982072352023448418782266531754548796294324151550266390230727034347157169665608288507210913944742520694312366825510030568103059379014027040420053009146848957505851732904976491809596919300175791384501707519442681795512717556282970717301219863313140422197870405581589287213327596623791079380912636461153656285927801394090322608254421120389770700774340048985353895933357877136359326021570017825553007806145764460134944110816041523881944815951987568989383827700157277268192397097461165958708486677642579638631756841867013281748566037624295442192999378820357506848112400725046663974328557229007269628285418397097223348573067382072556908299256168385559331065423685581436098475842036291554179699208593957360276422275794273942147791607331046900821508203015539204929336577135713668476426157289784523624476596360839018135194918588886568711227241753760458717560810597435988487934087566977449903948852418470189627851193699955687038085037410080684152618527756310073222656485072721874436748130009478197895344088347205938082107788970859494575446152168765912492136748075572706407871119783024441284441895260919189248572567557637329415910069774574985596223125764853512294856566753167243249352590894580321993812859880331823897570948507599889571689991401370727326651449611566743971343406897637854257016098738217429302767011652700377166082431988875139084646505246513684829959702494170335986228120500980702877790723572020097931353980863309358629773857286803345401980114625624389850229564067413308699669707149359813733761191044266397507620447180300483254097983184436400717492765180273579387645068746679307257529412162952854669599104337920056401934954569636577603493106791565239644830484718859204944818792643923917505508292563352514365962220042822338488079475744756096555738068277417084623923037972970192509211341771019838301452109141157854211693929903329292188342155638913309620658156657576104273148926958252939183957412719394559704719293471958430539395545031527641839711156181628200402025327682752872434434110098022454134545632924212632383760284834915744397374352774257595268797889268789380256025602309306519544864404969077758730886564614156026624618139872750706364168344360268469725555568964141143079145131261441651325491405818385028860004834627537178064132692605003586340591506930843838358341632305128200426234496111256586086420310968040747685042253495894277863711369079015078906854730999765554605559138436044731963414087102888845796960066906065467537583387596956504361208683999908981849153730839478441313069827949432194315768179675904465701249300659265742474259309449643968465654317676244780543716785661909443494995724474701650917677349054772076381070156278217247083855090334049100720077270254259446847145183963611457178737978331614523045063484496939148811356848134068667124027499963359968100204246165183596025564830687979668802765383642241881909075896860367968125532922213908845882375825359083655403678500152677949967778608086337022786424891300101924002909652838835968150455844976475348813067369887617592900405704190129876703032396231514929913413077705404802829867613096113292176270784743603890055589944481752151331873631848348158799546604236020330448690588504397637460459209553942065723958411738695246236151001334759613631432329808449834781111229606743223968395589402808856131080331920559517556827937231405462386708469134583202625462632195352393138600204716229456452764838428560078343336073322118230270586001179626001667638383852922936057742744896668114293491573696424310574387913188152634937185385794449876183188037415343266215856781902478030540035433318435508778088377846354761456586799519871638086078581545331532435170981796594912580809916215126571427323408569976367352649943015892580249411579148645947316614062371514637668636890425628388773112290163994749581730981381891475807222117134048942032260119565250115842470646751166269057640417701561438919438326376692718329931890197888387612021624730055362354106475042166640129149432971425296527590379343269383363399988744423922983240720169271700725870096979555797751229885238444139871319517142654253432560234285914606009823682946286256387561381374723500321082676532161091628074847303719807524681334749695171043140447845264687840087217790265180427305257505818185809178108876108020620234939781467575976486687056907833358684109364551028189397171617194247875387958309530265900513401102335328354553800430025500378336912328224249287877634798811608991273565472513374840959167502960444655933184141073719774362092632919516536966902179412342912380755753636195915341828750542763608135227681950041820963059229357157625376753229948078488118894221124380555890063527906162923055202565014483247247226639966013392977916443008483519562354885557179391328877617121110253272918671344806493489990111830715299176465743016960039077501421797669740176923433893614069268836282484601474332395271252597948787901912565141355136633132291814280614814772575874933511622588548934186304600856664647281038412567144090215910712414691936653768025332106068081017541001276704127643565034467187632025931985914176288654444943375627470179377718879075450693462226284381489058949033985026059026390264313696935259966084163042385633115692069176911360053010132181201403132894538736944448127821580918237398685356741306313367497156430511433906070294481933561532746796733593355719284624287784818976894401561660931902683917507264165680737250158588669120226273799389736917372978173318941883587856095436420351044158185642865168757954976385865838573939100879895518006178504929126722736451351276258541255220342386469498647541955330489075774587324444883528078081041774825151813790639537122627440385944371493717613469402241698435877148943666794056570985577226984660038203606660735119967472400158139767577501681886432746655373077078914090040810692786353981130479294892740847773784890485366770684915996355563872233841998287591463294622044527010210654006585234503978084459383697852002408984037619111976342981615621476351156399132540995907880115602170715115214689758808376093038903570934821892543660979741152678766879645185356761406167693531363141228979479372121082394459898948693807035241972586964961748039616862195733845410177267558073771145309394120284312788816986824364487800630217909442681188532327780036707179220064889964479990091794542815634717640639425397112946824745080516218542255463431565902831467426042656970622817911964537037633802228630247217235269249481073834232188479884412841017597746963655575834214046434786548641672149940643119234105625046474958620371824877953299580180420929025880609431558365406321752194850364401967387400701410829098977989644555939033908269321254990918866574789808613830299774904852994350040107878436521721221944268502992869328480249390673900780275930805611233265146343339670349775564589049301613201615751275343872598501429783457868601781535009189724973795393071898615917056120510879743490898024823250275681602378943637068337982992005455638791439040286438690619401118068970875432901783785294097928989464586795078698387347827050972234257911454769018218079372043979638671413937603198327176052147605547340922927964978987354643132364619653637177149816636683474316979709640228568699346079535396381350278545987934356282346037159825334466912007009331352480591996041807303187625334454004929273460486492047418249818938186182624032317545561853811588910832087733265596459200034221550778901722350467134832635829494534814966102250376920986341553491875264693628645400370212894439533925531502707111043829181387732978669421285970786300628669778280389472916992722028958857419573280856920092897515231101718142905581200253280204862206484215195383730858453117085067180988657822181593115777535712385424453762263716075987815194413516972516135900188110677019879424127279660259887914194743982572754381065330697598384553900980908396788525930027807161443696249810770533146836175694874199886241941028554936798788545247747984482042348158626062926516427447165133719526087025695947749428190956797188920376330490239798090422247499445464933268844503182089526835510589405402582816922248440283924909218849446605015467320104901142231158484730338071750090429731710093913404615115543834927078668918679274162810700411300193429173478244691661474137364115002021711850255191767814797355889111670788304209804224051061939484971352562511064445645212381828887028884605304567899773542736189487442056823038120900891874897676056850421651806142940499056812848440950022065571629116739073585731286274543486497594404549266255344733823704193890757020819073905421099873842135066603693383096907790105411518759701164524106720258019549901189156765659841595887797363825348382698603100606894932606501598046896290504436378526413350672574132700362288685097360534137796084331933155473630082099597622538237255612937913546209399138431120909507753528442374229330288765180146627622453086974279174371345913995891340539487699483130529821983650989667295166882747994742565309930009645569855589385470457004038525251153162468424258272297685019042124334233728571340387469068444201099423100210585441364604620820742435163015955765713257710624746324619580802197833869286319132875502079120822296150705012096116708803143019543004015752640398022695905340141515478574367897656648865297126757109927561495150259713465976521321381733489995890952712243140303157635369094167822795538429858054467699310879927771814599751693579778323349055943465801074433401642290980138845756134770718183734926879127702885535352195160830920795489706845956228370770021899620638823535397496182392687542058015204420596422491754273690045787542454402574455319128913494070121831753017780572004047645166598754202017231120829957096725193142422421522929368153233136190376070077110695393505819009858114725649122764643516836229145385013717187593832795131630114643673869766914216164216065603805575051307891893548873966889686343842769499376030345398020182046754718898425064876581885126609190664648448745676937034368232913954890557172371830186460871537391959353939558599281870263274426370072085890362148467143856948538884784168679170300881641726236127241554787174948438116749470830176927498708083528843131677187740342371485214571014811979833283101098092142607343548895820471283204900160284460045318749690149607128861418244148571463740645861611877493938526147174171606597109263862094216463517146662869390332563012985916174413191608356021962141056316736739318466053484143691921219336551388237038785585212256079259307233535930412306974452280367209648380830128118050134581136738429996557420186370068144084636939259437596197859081685072151611599440508967947454532529083799883869019418440232021380195473847454832812854980959485347788201275145797931820067480299072872411080378721873032010608228285003834859711577985087238380394612306176010830945616040861829446144036051855655298642430649384157004555569414436857257594973384730585967304409969345899451079321245859103386136758451337754377422399977159863532648098353547013019768945109081647832672351012452639200625704615941047091373712437041499277800850297265488923573008730987965860348816793595892455116025795054479056848852516898401016045572859435702415572277849872290613980414445144204279448491124545265215256978374220792023617265864627237391018271465408898084664983462459312763318376309113837050850081463489008952721611626895452814859467954975576441454773894250246948264734393755771389178485209047535870973540014550816986607025410224876421339964795944126352914930831713541128228514634907348184809840190342504961796258582086334466130023435108140347802615851435992612370667439809730091059173803865648553609355097709295249628552242577655518963400926010685928935386406778697361517387863022999973525040687195629087203967076344990083431871834753434227194262848749612179112997003202697366947475238619840474428829537559198246477897448695344739248765443436050453635850322161849204307332003215685573916694266705461270125651708986191927571999868839739398937221772277363121205150504413452460363079258112258763571283680236620088147958151669024367632941396117382978415474506494522473352561670235520810571814249886497413232686497161549023306601418387207069360133869764754942697548219239218772679546280806166226662393986276014075632669485524257220891753307353032077451499811491418742055722726202273281585921033501487690732933814088504811292660943510964357484342864781421024891285160268140569088025231484086615533971651126913740795856730887484248516423495494553500275233204716041863200857585654138644389315460822341155450160588577154313477146811444327476961210086872299143495180203769747341673931885529243361274985499775242894663437934042545412068604165825805282624867392299398701391932879702245389105480150012123290674046911576017168423836618355418576328286301200863329848058702918475631073108567440903852176888966553855787500806050305517856289852119237487192711400659638859816002924098619802326887948659842515153112326705379780625258495319616653226923539429038438748360985442142150017825562232250328716247465455821463100193280239256414061129746346883971701701100205442869762324953214869213294438896770995858520041714889262499018477283474621666698421926522338487799885273819881063620517043843925384054570480986694444105553000766038393012348625110606055460764429196803247457225662231577999587775663541342412980637547404718627826615824413960612742780439170827713863551793821081181301836856507081509133779567249614212157628857310822933647772555782688218519021028934129627707467300868618111492632730884938288467061513719207628336870795374274344619522272757170216504274815883005952386922409629321384588294013949186353843014775231976099203424404608147686879258067448659872146075068911934596760288662216766021170673160180126901246509703552885104754286271567044413678243360503518155680033471043563642013237525710025667403348243627318730417329439390488243975120888022209450889253483440156368153188310961416700393985240562065896422116040777561964818234807175876071694854658451235274834040964086570404656150229104172542428960819708239242105780285693866383469049246287920614175150014437661747321895168786155968574444236578504267512959049910868791239365195419480917836676045034847995336228421385732669777591394693691754076189163620962656700779838592537796294951962169700476989866970399634621755847341967264833047730593177996431793304051696405669783466845547100717662737553157243067030220965825047841584885565164148552687433163460621803243913250971223304179592882108496138246340056763910932770284565622132048711335748327847756941045084667057667059479664589794574507417829066161447934340421628233134226532894410733747825253989119845506477790017328674292902798216554240314933096374112462536136752054097778268248191198218541688375984374469699565334554943784112776574572278042883472308121750769926116236663487925630291361135563777964705298654592778964844904920672872279461310530572087888242163398918155645440999488254459270637531231713608481850441431915853921535116949083501834163227712102167192731895355266596414548712181555719749134439120576156966168121862330752285941684288401627942694674717899461451845714913667499542749794769693950700815814607670570271883413527650690580115711529926614993194782533799164325120920817062389607900926162093891774715110957207308387648065948090921286664292193093696747609633744561563336751560697907065157542927556487779406061485599592719086626458423121805866068122431229662004268358637237238883082818512534652802217206449765244543458244314616530266331053351752440668603781177271111975149789189754103252753351147843198134103976461037935096354010663275337142443751461961248561830126386437280451242280021971435945090564899746800051328145459262785032909175365587336078116124077247813904580517401238254284824402157714429329898304435018276152633069590771080637155102553573606834831593694795361232996168183491544335874719933840539017087248186948285530834215796974946401307578894460906108927556451557123600226368586669913773367123946435283991761151656358761097823767448827839619396703054257704395109630174788590250390045625372063357733727076791079171505095005855475088850565566936781834453720916668188295585151184164111140643556726169444673347756484147548845101085781174037728412348818320521180368953186761732872749893270254242142185522630219732195016852523515489974814129203051681022529479558373349522022025725324298439080525354888939609463310948327703964010052913978478193231950371884314580017457135449352017015617371418448663444502729018532855257798858200532170605651330509237034544193330327865223025876954554495795462301895065407737110136183701321123670765028223355542391601744861324525855569299164225559729935538568481507718853912674636419176599601983399963638950882483574780514888398691828016293402035109621432267236065934584816144439152443215407567730188090821248214727865627675738946980442617511742673037354547344817595831979547441411682154371815958209456069525372801007483827697390833007370327954515491528814552959836316417692826579723556582131555306333407418379985232461189550534611749681576253105383924242900938055178451356143922487108238429186868194877018660869051125348911381756085027128647046653441903229591572410132057355770848578316447854578405347242725550398388755604748740656254983007554600973003354055636186310257846943906190514230594759889040398866216519186721085379631213260302974278686461696974304299340486983526038074735641576724093272571845697699678469066287283554573767711512215377716909742334472957856222335815189342293209875643866388431158773582144787520926243236484432590757137700520264021862654106710334684941099126664819802481563814764042063641646638191650820513899275378041193058747531557669881471612099101268334393375455310168472146625038455096451321707700333577020877870826828087739892280677710755192234220504722567680547844879504271168842947767757732791560182377294572107954194431122608050622964491236402681000907448344158534243875640187624470466096680820079600222340767694517144726960878723514885921994867215630716657070956896208359681949147494770593502774900571815386879003468366539524428710841491918789432602274533763827972819405229678221002883173927727270199499796011809489278824681494141136514433063781489200971603590798399615056388969236235961362169501326842052722502170618352255127770168201301172283136237260710053780466072739816786029348117472729899054855583057545429906628308321658400069769530906924184240848796978400871977867095756459366391638677338629472361302509638667956311611204084529536691422894592874982969870547287208949182305995725802320645208176709135184959582822382958073138366094433429208410735744428545977005476638090135976077488809075675934667443716254749934486190559626436179053204045871914444630935377448387674961892476640062794510369671735158280461052600365625687579024681312596872352220820416924200293106951247125043526992139039131071316854779555682413086143402337330035632311174610665322867211455593576954280781308782743268828021760392279436329586921966659933123840925099582704682119192648092249332841654005426804392635568630890358218237546192826733256062106867103910663346203666345974716823483649097345921396743050120017609327270041061245224339167625287189667405913479171847323423793943798642254384614873261321552765989011330487776257503680780470807462544887463205976878669276720348731549942072729878357491811653464953522039951089273840500368735009475615554391223069717512288150565026007395589525998437825663434649071920847779503203303418785574494610350103944223402864428828460329671872845004825310692177327160360575649699757189655573681727954831277851761500208326903120551287576236900004381708137136101792884223621159281154186655359954163481168871712610767509453297372256643032548596434359162940170776823802154195430333169794156589740397117622626746483599681871207551342317404283778120519111053944428692786255444215467311964377224842425328671563179641966779303303799943792836084186703066686791598865117520749127666686413920917898368162859359289251799548114366630828417558074781429311733151681115476016838618380712862663449608775134345913476759516409799884974937577862869000729960130503828341361412456893289666542597317952536691312521438591692699414050944280281505286791607380547323653042456801251438057389066438267515749865250231069953283357691977552722340359711711754483537531126101945929599464136545774510341351296833991774313523891489740080602137690171552349984351406185648396820317260358515802771584826194496567497602333178256266278124251861768863601412882106169993185940607545628121942782613598526261851181467844710640537592987712784966835055993849705120826484730730001391004997182277697453792003838016578050859261114030752876610255929290635988058352530669468765387930198767069363920570311453288772281123700430589436789152403284124864712999938582707295141584666599249002673044757967515564774178417867338847425992639298509990756572675529852956073708542382484743221130839292250694468143990145799462783383597213317687448551724662010012535763665654818790562076716058588826954325406940188877647996563854246125844675257672221830735874785950703464301995701721724486738387087115349066316779732142098720587860436282155222641405458833531443634229458652076689325677929701636424095204037467502002865025745802117043975353897702870519718901759811846304640611772306501446364633395067353182188472626919803551093059703036869628281413168818484050253453907157584898956522628189008423170678629856250038123286023269676783005536791578109443976868921845121835738738538054462199572326793809449665187098486127172979546992132686843552325308802135246069284295008464197341601829955281163112320667339952632152933096113085244366319249521435310714895364997442990918761020696465311546552078885789465336928425698628789720485963292130134959376601372268625847632749664695851412039468344059030996486201613411164822771831541886363393276064992071764781325913114914508094734066210192946078226153487587040140814189333272267521680298428395445708276587780938277725761127883107371766656694781751855485464748042646496222979054933821387216112528487400753261449062272425290202088316366090970936370269105646511971263959375646915096889582888261886434154944860741010807695775659195958652872015181170981092557209902111306857088185168771691303723645616809737993606170927189395962615707864936852698480774550481087354116377892781456689138821895494442877689861684833688939780688642896533107260216071263459430190426862855503943155302456756107328894478180093003419794943818243055949847494686341643998509101945409638196828896213307413320941815237151088370476828757016761180047378281740952444954835593006287086558099874329573506888022408548599189654138124379806099715725612957961027221238287405671670219031467158593173243028050176820559933327278430827341868272899365421252258102763310359914845588367224586313758391752393608933373566215850297743761625832949660221761216439559346044070648702483807411473662184718632972358145432959016902327215003414142146791375948860585549183272050189922792701126284261859845511133017386428710648514198196058101918654451508896882670492816736361379110839487456479411572205378975096999551644870502430911271153986181279655849258231594506701171288362380066720793894028215572696219944659163065428816147825517602755239533895107824608036331953978212363733853387183768853898934831825484582741212047298236881406047459904661281033020172018182760122556400065085520462486623064145824353581596456936114583361572408099460520520004159391336988227995467427737551741751814680157572366674545942436721613321154510537998959695098743710224915255898963180389889824237938238661899643309765353318526931273221982163101310864512988912145799760518331231836635181069106009054396543048036929222869463509996260012211520082413307575960511060054118242623558897007050897401278765282821889402020011972232596787357639695519388169995349139056941070598676351466074631450769970160653667257288868060285533857621333140418111564012850491086990660292953722793328495521101970979114489014245006517517442923871711486464439250772013183462793066797973323122963342861400325880150822751951323439733261509891581007130636443396465026241359217836563471684237980863964862374792259138477076244726953551506660588147580785278560571788510385671321902860723599540310926308872463027398777530084900361566470196166388155372789606363553596504687538332638841004401592328852536944893990736395055035258646917840859304325158733210958215214250252520128962347768072044852325169216235723455358062478037762486483212182291048393369357565399819839884783975786432581234653197231732683279054372684749929534042185486988480057438128317199802523519090901407917656086436451020938712727592664136049988607647896130051757014808831180440961322078181611504850244465124357446873123081568489426420869026723429592581634215419586401774928659470157080705642701471759052338050765617431180438292100027971078045686022473958850298463156208167065800470448441312746140014295765029555580973859936168084659763015831411787584123135835786969309831874896734764303319854984675980881963663900315583230322405360460020391890191534912440365722319859038088444614031322991137958461837492371610786084230596856691936305899735137857024902335277267406286355025085069292248741399821856705167568978201378015189443675374474484979859716750020187028981421753122300924422393575695834778799187764107372211046666069348593618072087031372665227497999739109862291071137441091759647417100695456415364244903431506325921331307256563360774217829818023486413401764960645359631049858851100008474406207423593100749355944424225538030135679324617393093295160238043788765893067663883734174715062932736853901254121752203779512009108181798440591911073487650727359037960594803010799854726565571033364675567592310141809568727374517979320620360609836116197997416413414077718149557831311971975326292265729502738910583723500230298184469629068472565729444303054182478885546453023823582982450361213096345378336411016749605863382708215029299095300436877959135183865952236959038851740294577482575440262737966426152321576435697251549928335827784773519049005853363196694596140589571007403426933649697244269212679395905022010797731922743127420948779223042624162587137589837231969281052945712584102164935692890526221666668610402297503880310221572039298629491401843931164024945810789755908269933039752982658807148316881340173038432676024484495645131256677214685774956400718819206396701427784074484001735073295311993890657354567485621378598173686389534520490881420332886619376041049209963048325410367104116734795942143194334358570985184732496296928577386064977616296566187504392938751324131197348993984070813568139678535890252617157628103364386700970979170859583315389010564599281108805597361247638002181252699756247559394998600400687969443159799712622951808072026588734091456737111238407687893695008108726768420647415066293635847349932546668666926258757426344413790417501314314963780994064464754206592159628006271416864898512376956391401614249167322702829636182475545937982624114156854284227588889716865710475882896202746470671506398051264683313439713748148500079184115227580993352763663933267567709687842144311827871307132735997459656276845081746484838618643574737677426310075289298116209749763525493599778924951927443628798159163242559765090736014448233947750456609685516041773811914385754162501268984332387903327345907557497428162446186288166654510613608125624090659906717159010722770612804550214526659354874970551478400444133359903968579565419899886057248451869866847845276241857440244340928028906188106704810274700144968157688702962305275643329103681523760840533658666831699204278378349098854543117562494704364680878662800311880300358524382829675185761143482345394703896880026074579745203149064458463185642533187325144844601651129673240080083174893723097909680987473449051830277152340608177990264334672979985725200880715990522312375690767501317364133608224445343153540188841954360460031079534550556747644580423983579412571822965549795250430222372408180825152937898657972491717528725018640061895053821783041196182667978245608047853845257995937379853648557028447527439978782428405785957911961466315603267863250574997108999039456622683683333576376100780086999090541342534124226853286895718847265087829997064304124143593967533309579345435010531785718368558632765042755286811639369724095171240734149421336395009518404670879655370743784871029537857108979616082984284301345874759793303431456404182768938620997654136604321726514752383706698156393235235479281536632233762392167892957413117118811036707792336481360304124834311442914151858591628763926535753696778234398297059467697584003530987934306726181141584554434103096992049462824306781396492296270972480775709308264236762996479666948314853903654647566430952067730039300005382590604990886400955918800420944652462357503848991634110157411866780265312542005925022761071570583136872070281187728432952799826237190299948124017232564013257429566883431234042381637358443025408970913597624030287782675799516941931779568258409178899210819280527665844730115275012038360488440623849224907366052860881322299490615704526572077212743904636456239342175419481539171006004853824743915872536852849388423363810313427183997944399342726724351436737591723698941386691701811343464666973027924536268100129906172990914230596616549042024702309151047075691502032235036097855652905024101516546412944628671464392810695374576116515251742379439928928309887539564484772322621590656419782586915173131480815212917584344216814245153720340828240119381150569889919564429637388311234508139204136266284937028440237659687328581528323412108431603238988491491430616388964614383840450290248518468326781391310877829084952613946560996075196906183314682219637536171957413118278279171401641276125435005201491041279474752598687492747171030330762710133970057095036739323933592427362647422194581984134485510808259749472532916513488668063723028066475987654874894958591239425497587591935145081777414742959635248769359673575052294404980539282641568291359230991543056987190273721252398801454545704070245404378491901485215060634342749214020256271565576933361112426751656834831316836144357896016974625674739827958286989168499902012604332432635228951257277652804100042968752018697227736489186021286256011109559649793247833473824663003924077936192870015002839319380292651236137109885009105379190332345163604904177805470544911038594255648653329811401843059285754415129202257258689833340692513568106892753996332788399310341745071753626780496458424242752156681130975930056815737389279644352378787816203682129029452664887928343960090626610978982753702233199184190979190999674499155784921031925289207753671588546083805602457444628915479730921454992356276373984095149102047553249394520283368624217348103635904207570180224455513955985764044567890813362563940944338750907080998935450495134124910879208192304355545593946245420529529669424801787556862798280360080989859981257615415530663703849815515356889331259804105328728209152680419188426516713753306966914364481095768720493796452294717574838003060745583411507741102438952370510674483036642835859144891455422981191362400527677132134313218266689506834068328318901302279067989323183593147889521964397858409527362365224114937167385150417942718089496181517919604029827901503112101185785066070567906192443472711305252151483297259383915066344870033019402338580510726988149887308622764471289088445597893943294198380873308910564408630282831300195251487737749117240290057724861054521740676353236182605401951636785664917505259713277112978671013664904067994479170659944888842733441507503984216236024033076825826560098429973389734396492579936282526594333790823001630453674904813765853269139303561761987882122902541156064344442671874173186345606287769584692094471549050334922235636180121254177890413704398838722336956170419276798579130173611648389051676413560131904863089712881323654067506285367869440453624667668001527639103618892722155400510641777099989834625076333321406843113097120693630687266627549926956583836058402655860712044415368187787253097469024747759516728243539201428189778673213910074876490915206398699838967826592536942042505009448900162036649100023096481657186293999031925428690634612236512801236265550518956637655716210032186592742596556961323421795036420158478956174779477973363304947577368110332819860674736922439493781028053594610198994555136266487892816485432371871231562372136855343368316741190498796098329720104501347412173857638268591832527821441499916978930291980423754270950914312183695162374476593469180200800308540804207760546654060263593860509400027105758005156574648415299989569648099640657013438097388660599112546228467860887367212997651771379985350245894997254039607918422152196482605517426181751182069096125157943416185302918912113312607945527432280206253754881659307888485443151322458693195920102375890306993559726297639877611600626448974507628183334065320273197416361410408814088901103653911421389512485458368175026963486118083285492178153543523187566012545167372242709644097079666874713968186283614775427131496392032626601160018555892071312019940003178578698601608889218728653876183088883116031187792564800339888821668061770709318700416389349674902749195483761590815970026395089349161027521883649015103159260383877931402083365739865814563818262758188714933840726904038191054145530492896235125470962816300121630906695160563459485696949770004064900442333916083710624992032545066856228892444747436369603825226580279548372608611334083700105256209086728979505407816871483713949202414173723504188874479863734587471805183358582377123889075746992573608083190629493075520164941433345849618969721946919742600149541067552437720733862865655704729674607404652254150025383148432681869670720906834471787529520562225709153792646653580541595335126579918132856227929640149664895834613537245985764496285686403171800754521429863265045425629830352249400805628018093039365309508880002323790924599698477705746638646954434156647985816735543263146213411386033973501040616961249673098729517719861674486468522821361936908591172423269126615313394759597146980873693900811225483045275202418278261177412026490136366764048602658784505314227443752637675754801680511181268395317576771131834411309521499072655600885062670810612041551623180266157951984800716589785971359492002358576850435930760126661735340557147652652487384533510716396055997739517549448379107257438749402252261915827983741276632773862441891683768449276012554777873239416978747193975672460407456305270796258260091618047101997308537567932446665329827434619824196782281718216601386044614755003541270432166944881405512134888125210374580381822457988976981278586355852249418375270389550004518928587083849056298146161662679647217867903799732800367527782904593196838462806886405965404875279030154601611521334673696191364096758062436684146138885658632077503236643123791571192011207819192658136426509903158174520917159802037770642190270961494260381451892549023891453290299257384892931648814524558809790207147295657338454377506055845574621254451037666382631054618652075814658308323295894856648181312298964725188741674929896564982728521563897501054114220982741984603618951621536850410490908239300595702873288063775827438264178149957302642537918585975065060949833453839467365057906935299474578314804352448369189717747049400553243860511125490709849571022212262260631203346457121523621379765886411178999664982312996555569337899894263932091083887925832930316464365513792029317306820249729580247931340105984502465150500868423336503875392349728557963805493019492954697128074838039467795709411575894537490596682504756584127228356322251609710861000666705461998266903335561810369799167148710633527889667303309991340946592527970021937894897063452806226056911679288481495147371212691696437049971903856663569918140952529503066964973256572621219538626059317369005896133606100379043995668505339643683385366370250810588822231798438351303567425780931594990780470756001476087080789689367224671455984978411290942122363870516455110230408887807190294971205197751057500322932123021704735256178618454189663797875043961630707322815189902615643102543890998022096151029083805975555510044156134175813409467515268056446036343908855534829614391337123692479671592887099907123260514286318794302693535387387472912786202712859668590469663257808502386035828518351969087138553939470737120650969857622938275043958167080068238912542627806670130654251883878506465916822140407571289338740909055141885119762141267025427317634534742047564358326874133512708862485604398925954409937085632354656723973882154515455455401222142174737439876973247790591499724389739495312120302477962428068829277410357322314226953035137667139906942754798385035880370447908232309045579634565498481582990168335674717728260832830853676413309258448405526180634300291710729114807075179443665885283653432984247124613650331052367802336234143566359414848768330606440415507659190656166880818006221956725139627852725390013799986686987664860685911614758362422185719314795699002497835131849206470006672984745430379639998399298370435357287568095567989406606139796007937410669996092317506671465062199332602840477387853714210716620062273259650441769010481118571936278546492446453100489532328694382420381316963194443095239630096368635938291327224636709418573050807085680806098572275757590779872411799430731982639705158144933839264130435901950223435579953123739692201291550608623100026161642442543495564452859998894544963333841575074705165705912976892294990133384191736878976249463618851128607296822938605370230274452354769232330416606479027294764769926965989216676210815869534663662663507198474270773052207568382257663672105571852146547654116825718652747526932586131234656984273859378893015539359074231262753214654767012054107023220769045821676402803281401817022523301476493669952036281037573077375318348330570610332630000804537933446882618991350002772469030853277451327939854832251907549287267901436900079560841038295385901778497109964498677426632325711224772731757139703287150975067269049361407716078046582158786143353305708888504937980641246789944589766172177039062713091599007620563663261666884231299390922774387770928543124970809968089097991481450079138213041957551226714865014839504578421434124924867916209144574026637354554275530659226648171275506553297971481165232079283393347970276977957258175125555966818024068940574047881739970898989135658109403760114413256384164986735481860608396551789691253229650494088416374257183387478724298494365469043824010924665927788100306538157540635725191907694275981454527018251840879769889088122974816617002548914251671994283994863945350627037459132332741527153949514268104852720284247657006389134815162424427547503870606673663048693370765170505292510420053054070533042227000857474103617208091021014580484729360674885160164599250577932831559274165519147820374808699087694223598744445933314458337402703536593562846731857579220130304654051374103071479952044535585028352513665379050196754074218193905841915033588444617207314272240212990625544339265754354181563483981757229112672721567136866793644963487647367865128280238854060999937168939916932588074509353638279714008455537609480513742760592708735794902083616601722475143195266496789684702160104111351090691174928261120734797226045634611483074434297778836759123899323554051065326575300119057660244751578199698469393877375675491932464050279295614479111312900879580539601422832930537009773758255779917642885662449330749457121054883497706183346935244517153861387209420401739333217546363284027562497588268134505515441620604831779602880805078652556354869757281280700936513920117935423937582506047223884732134031605569508982113118761588897392091993671264589631426692366295121750948124073060792962714666771040666138601753450554693378541857057637661381089257879820072364243885440781437002202928130862440322294660676772046735364330640451201625092083477574286574346960625026512354841040720834584504607840692400726277295250486342301414908166926020570639125939926392503497504643849346592701834078586304412236960046415088603594078213389418899473062878452712687345597050151264629921725540581957273562987367893371401990850983783688278492212488089865717321621729917379918017727475097671705522973188691401189685779298141557801618853111174212880772161668659713704514588422398590686113920200944547919448409572161639724422525688575562189214558745926822520639475803753523171340075281504000494464695564247520719065248896235175972100403533269469981443801002092929884563589352064769437500565599388854433650831920616855455615601565307173312760866859240561382448327440039232323821060000918926774850773099394834348007143196631046783194683900983351356163236925647536692951514597485409890584908243567135239442219366732357088193438741580320355924039602423672947951334117113997174066685238505111195182816277940594184249595196666217038045751497784567013392161433493096498526684126189231835301116712219725322532280611451312942319840094575089773601090281535811120129579741844657650203923787050638527695031861354430227840645276026982017321923095918108063578619854726650815052558840659237956968209506692632032458773020101996604215034592603656399692553506466929558223395143864074248646815912241862338764032250142114364123713121197307549404892929424676134692148568773074709216753060043144278066257190090333763510937186228019354851043116594301075737190199545809041953995379329513340085043618037130674783410863670454227204909277771431406262029241637929890800124482911223332419470046336364790163733637022451672475079064699289603317916388765537522296227589966574045166088432761829680489470127036908821931280156128015025167749307522496297887949016510566539334999491818859285603804570440567804670497417294562794049290134563592335783391206247726148145610956116203914675864802931664009784723661945392387590756020445772935921380468573538270631181917814018361042684596277163210305592175477492568003455953033800668934481464627741536766253048812636580228425404979663538363800504039577844257582933024786880231868056184602511416647690955767283598110408607961907504384175163596883695288069605694913633765704167393100202999338622903699160409403787460123738254430995410756684518156922535386008646858050452207380004705374072642255094550419018060009890509113852018855464141874095333784031404678202122237946951752586355838437225909960407458665014023742982017336153195096078926427172167801828558026252069641267067509549732497295375618429591631171510303392223150248939037639091164789226455328112538625378891768815047864148685304187763617372487520126390581985534852915689478950435183791150366010408668215757314452789041527236337455801274710590458914382129416951297011943523333764580799275503267304241506879532319123597296098125068146661920860857078880859419701507995615089389037262846079857655105423985096759306089069057818648471975555341148277689021349386083570908079717546137820158708850866937108512959574861882581932130849872898052937333818233625325256507738334632944779098133085522299225065058808258429780074738225001961853351441789558000406795087890069508319587560845866333988393154198993502894113844152778816343486563527830937896278814279910032513343315132341199244675236677623894908789419792097086905726759363224191375910031782438870381128218300412187897130859220588323180447309776239779258294758668000679727260516297876743992312752751090848692120175908820245308013018799467500451429331517439697542440676803548304113229342896657387736621750391248216902245218940524094811758650983786413270770279439798333838799677564630915636038231625915164298220489850096053547342221041047333162246271216012156763611938529683874206778261049381578676082939847556958636308802111533488512467999377090252182397452395934733512644406271452965725062389667232751064794170458128262273517360388736088536468578101299043567542071774684347507583703594799937343323937675147137996634047730800594028276958235121733517711754143843034600440203270082331414369131864833783502599748745635292528080623534123443854167187662027038407211284709817577781265125830002418310418150324119320133425377591213524073738535861728153570963528001569626731163054232961555927358743036229333425390188279212942068083150717776297632146500215048832953858938871291593925030775794005818700344587456397712427535486949091291416963076481156748764091206575384510750126792424517843479640670127330962339137310451089456869653996461092713334272777940123393739631706688720670999233674723984836240060843497392223694878305546673035446974215483948313624169423917062753260472021750794193288401988130142120461474472599208393418544186210302097089193718579334779594583560375781023373939444069761315556702198227471530023400629795572605789528355893420570174794229044379509554554183945838441922405317699438489429058148376770105316159415815442180326663716719373134554275092715931198440517529517322346569574340138828625294148379432201417915702301449997978489277303592834596928566806112023535600740021091025089165102756099690080105302194410460628143979860398470649571282803536035972272201810026393530439154601131454959194060336583447847039349127903943867238204153675268740753214710707202471507795971203448334547407688630220006740867802837092583560819753713848460442216755806916197181238565621696472931742734755892472141098283985462638205125024524816606230445085558689746857701534041297901286992009411617993246887594037848830801500899739682991709827327958616570043327476665406440001395526575998551346750691395014697134430753627708550813324438125232285541849739391170716989898739650557195670817415949842628336125897291283647023877310408461954978989168897307260925709134544090519603425439405971472887609698827816362791674455386400123553750229427065977716498410235410169825033593528604615956759590145554294562134243529114819520554035737851011140499478385902359175801162390989258029703313474758005630802676037452060102333573640202196975340358377078598951523681181471570132029709595287416871368308662630012101628381965929045094482600940447203340811439378128393908413399764686463166866898293407167697884960658362895148755544436409079027208518467928241656582058846054710780343942539184702120865402015326755509322417673000559857534595927224942010065668071509916967519659468834893659837099861867311480546786892025391948710841633013570771779976398512672943350276261898306624842694992314283536272192561433757247844929974644091187014744281416763811905964797094210975242745706284891669856769853438466253121888807670212393877279658988925073028752196240676884086861842463867467433850691344895138801816685525016669604908175479332093383829227241494880101011836008712441907861295520421983933975309783742705394459817826345644476073087634541510420756876649341415565105430076208618565883210508256280916043360410073995722283819662395188840564275771145458116431993238778652622210308969212367510590167480419926897307157066483509262166086186311667850987438972695680107300343373679488878996274434443819238545734377587319246273967651561222212775140614626901555054504463504133807493546634035916076587830507617747263835298183851732477313522365454097914127805622213598416114733430319322796886336266775565556061567363165441807130385517404846195984274259167602153739625056023105313450491521463601837643720101871275384608609201884042012747461644357732957254422688242600400079321689830454268733726010877729070055001103783713673771930876629749968941830717915787398699879659619255395940956799881936591868795022458815182515171265879234069454237014307384649090335620941188114584671948413140241258134835947436614411579487660165883946742219472280951054722612377033393363437146805444863018699344886737148792692374219466388121475639279406870959264684608151264256726500474898879269518062033627898271666588560273304612063881201911069277917234857442294379414920297172847893624033709013887917010527883177065414670110729797254642464407068164143253229299897675599043907775941811083185820853736281905205652807496664834842206091470486389116755684604464392883236107421697767343958270199265551149120011552411682187315155634018991156294465916995082033379653280643628151154448172600708929096640879933785379629861440578846406210579206958777137916598515238461346116997800919925191718052722572446565616409947197616878789076347453442568776632028872249270473548025667654041480250098141681427486374687721419902122148128668640749573955674087274592567936526394443937591428908792805207092602988014269964425171181968036703373425809551647538500102812894778648982780229749626590472186327683380708973389683950749549311617618189194725746189593190706651326268986554180186648336398815689824984934883231992905797483038575841901928691915183447092373394588160532766496046300716510329107057923724024262700541665529265714065178283471199846802950121061214577536466604468631269920316535446383615759003820244161705695321431149848918044215144392880780633159649808336419202609429204791008326269649618171942813052206677158289730412300983002396354600785397229356957156407069348560133171526251891312818606064832044456707637682154157477324810468334646693253626005286759104642921620352713981816420673286352251692635338390864960374180056109141306137140949687430939036236258912770667724705980150759204212343172162313167809926353359381561769763015087568488256861242824808103224560269578931920021632684328305350970493716299859792886483668818853363343548974515581236061730575117020807158795553977952417631604281867684942888578219669307246224947863524494012239651046862326802974722161633476125957193994564687921050139967348786597379725519534447024712184636216331585316975398354383568197897253236315824381926096127769293455850250770096837716104110963601237337988289634009666011326033707959409985808708536004302797340447597089475993022738076766755670471094498222491559088622125342042349853375533412262359829820175026193539680338227067821870065969029705210510414897435276261340948828149385473913936604106472991721232964976787740011246870762109801169372190343646982526502483958854121561939276922787249330439852137116434462409574845711369225654918844039271560355159902864552120842035344934249333062782384743537241170021993994821870883872219483629371951109542429851448411197819693126254628248255750599745111609734892340007207154330935652962271272368527701682103495604271766875642562724591149712474662514485534304101887097903749021460603235773096884961028752211271574729805732487910736619829283479128166374674155646798823954197845153544376454648019438039499998921738397282367031577411678623910921684192601204557432897857387407420034425737553391568443665210830161979803014553321665237212432722895938222368019108097547286052791725122267735393443075926694324101125319818004279537000117908690923599796843628090027372725425258718621396501763877912419382603672786171410052842964518259391370945026667100052962977198114122007914339482185821422213000285101598021035407615840443305392864112724571231620122307905982511592647104692117319473925425204492598576243434028164104237511190335327203130183056129207124116867799951495478877105584274886781579160908644630099196257541102016585565276670553895823351153121573121977973546903924742455770523206314900001712640331460913685592519637704621828720343039083683476599268282441892153320256334459291982672821529263810622145166932054797757546596240484349331556932791468121132583428066837495609828663413356530736518877760169456115184223418504928783620921926509193289410174419750213265550713595763491654314805287567040845515417027745273602092381231460900895210391173327448427349912219888293909024223672613257105217622637040047727683922966087570480965537007177608031409642067462261362309662739096628128589521512189133620523851668848207603874783579414384765051985589831322201249586133485916103687992831515685703341394083291156606864146044051492721720902841909930410499829702180196149690187954326280232653167290928393425603894995539878582200593474746523861482413580778850840951749974072897447110411756926515989203590633722686820585119782924816434128169892729145845296225095541660158511337969256153722799541400308997717545033103727207517795583246863352456480849214939593857882232346399941059459352034459607980802538157737057256514996741953822057029418739496785039192783518365080601199172003541617900672691333475178551400955905367856440435279644602845745920469910462313516780387846132642500644590605252317096610941421749497672883612927865057612580561282621869112980529427942567150828941554699902023345856473176610974371169798904516617032739652082627924190330032275752110499837833975286629390564462806659108195809620351373975507634406664736401232239815829063063102939521937731167181366265604254671391344456710470769414449415051016038928700494551986656302901070378749326913253535133108258222452853023097581382023670383582857678757695432917455255329675628961928321007564667241135107497401366959805686842109271472856333176593847517438252866606518673559757931288172753187779378287156063415607323318845296590509152439543435446410298269448772743800300963860409071101672175857242975404947427331061557343530722926584968192247462620875080140370301309863213344502417298838024690619169354019468605285393839700651548363421429084663067144013231283539732614015307687504491336627074340494337306118868920901903249866440372185516036237773605519913529677787811789690535611232366240629853425060373347869173833941889342056591459557980321747389940688851110615777218806415220736298603138039493528259118800968594497341390035909317865239521247589036341073744848484268927957725319270448454065731121117439940312766995983283518066647708605651557989103489345565118911254853082857830057070475909388257812045655863269826750963456346340485454245934841003494585231772919988938921435843968755580029126537627902427409885765283795699749711233542412933079255031145326346552169848146492266014137591331324123017494234943692058074727425185955228234104884590468561555437357904850622530120541805132702755903916353291258324250170664159258412177878213403735270738734876464006045482011785285076573193480088074265709769547794324045031016747731531631901672507761689526222195399906308608625694202318642833767411609001593457185534216377637031907104637356555228873019095962962273415963820219935721207590296606739250236074328933239922585828266487278601572753176094213121781592132067451178644674573861289395395653241288373844597855709763484725787442900941574374787691514860255123669882658864941881316963221868748603784876913185002163203218634270352805885622548137802944043741467833759939385892557570086231521130553822146761320336923347770404693963452937398755614694002618749078779223846233021776835210881540479443350382698773946062080812348826745787295723461680135202913069621195383954283567203727507055491981570628640645928488387050075714513504099341572736958583497659374769202926739324142271074707936323307328718281901522524791129388711945888884024472535267351918116100141703929021919941458950143435504923527405262778093445188204611040564981139609283464135726592493909207385426350611356389315908361097404637363609466753726584431216136726188766505796787833362828348234077403533707725490993821047722957929447222508364015228820958905076785892257342741752913527388099089133739012462917946652157542971041078324101639367499742367332952416421127118432286173191659849884395897083834792443676787163399397037474134486599474358075879493248284463954979996266873950212737367936366854664113687267721971503780314488118444955942903186976949395180597070344296359374999793925474713547810681746464021704691380211641081182719028203163080000867787850759841715676587802109869829723801857259749526592526749758070150302378676718256152290142887974598771096677580996306984847241461714385797199625011699649859095387853342535845003561277715117078870439827503991541267408713387442064437012593367503974310778888933645125447897198302709698815621285123819052701465334661281955061948998105459556348661541657257012978906069659069160031822819060029895039150557257263009718839357447255453773994776552147567996191852059182618356539001857801367486963844038011538821302617072888105697014296264305487506993392618896837959072195473179514006879339900448359146674367579179360698011715313332881925609361088866745046369831435433356008082114189225115657166741523607937172046118522441836263820405698246483714494004788863964770760100838022716358337502792276340124667526362741048648762292888360776638733007097295159740980921399768378026050391180319804217693955324782403584881586938645190643136653605914823670456394997183457172889906084427322747894268717548549275493589789710543647277262011099673350227054214703963834609354210336557318215879489971545158978595890083440302925994432338543839065656325256962696532233093154495609505985538277495807194171319141481535727559862012488500952707700556172897074106633581938952498509683379626942126893080230267397654197069422704010795733152646190496490239201447435073699235251141127933234651475161894587010824312283989856254433393236009396844713479151105194506784699805142104445666233048033864615040216451059648492214686916894622350882876781241772554106001754879653748518358484944025880094811425080829897775050607227843722846678081896172353560324172063424981306004878945447508425279602157740949092852890454677209281196283953549126377950188400192718575307048961448009377081049969237606079733259398833087722676748911191458320693147517211134961474409247240299412428186419840014478234337764622538581990838652827472276633714308472047835319694463535097332036218945229138781084984228131402376540137399940637489348035073555393681423798300158808408264297300805186215983118788138054668851084781850514926134101038891689356415163592331972469451790546599771176336319285635494463083902759371779965604739275363656777890675847082766278139743181830623943453034449967417014319909640466980779445947777404724713901226528887819896368961101941004929154553544807405790497138681934569926239095802318763355464256432064880172858696605484012417344890103809928250345092151278057264367282657517350787978839791633995496107318357524520807936330765520228818659824942760921151938843549498414407938332221049826908355673780447130839621284782796780699554589300055815389626207452107293955279239141136461929816378852516841617725112648432594551397219496333114038293853682610187513291956586927924328714164727149997523381422073248987542130434834498437203028107186297663858985512833153205815303270082331839124321155717728534974484560448006843010453351766729436987854619629634095258045537747980670068235139722776612436433502159642575364785391836703971212938566601238955562418377665991755331558628652773002738070428713324198821233872082638025500917006148379710239614748039684395192475905388383443837450579321942523120438360217983706871189320525074894944123408819417572061192008201697223692127720505573727633066558481907225394530688632073852131028822857966838426640838096096290793211380624146771263697608749931644526945412701054551669258244236496316429962215840183620600506888591371668487776174870948427255019749813437494458601601092619528282560540679237352961248132409655525678464968586353294535578478086721269732131405340978000996828372693933970786323110444240507628009408222124848845698750276951154539894340693796206895056877340098450240417436361919551284963457720429687535634033441185615629872910639291877806907056926452039113377747663921437887944012192247423959167719934504985274019581608487957611699380046564056919855441277393268463592068222786212018801774387490046820663919928024342074041391195242320218849762785651835609376618310206489493193349951260983846954078577116856402573692089938957517562800151870991212175798775015326087183021276543898241327636762562675504869692793485470518868940118145347942631447180163524823112974829488406165868200005491305144206577389148792547881621819696025162077407563250084282752633838480509488509675844884691737312565666643838904985139640342377468604138072192979105105801968602216374414745527124601811577449677546661169486201743784784008783861819708716663433715049950787441367674089374857284145960737158989372640540235929737261977933814441288878451447493705930713975254520156923411081755398805224929380793509808272417274327439487039591155434224922907623312154473842237379752838055070023866417368313952075541058057503995448679201873310786468038551872364670921416001620194875759921028821660476679770808879858538446146739442089967132573343919247329584942527390697728004619978222911807947207252324363482309977647444860518206511490243570747769642776687491263816451846963536862863331360881476923490613572637775986678261322950906109026872450684651464919985142302179453044043733407866569518868592236071928358057675575114612668160560463030876486204170144030347949701569764298268378380258828792819703648415160554458227193853050742959421319619264766077921603462095839441097224681858361979717337126568154255626606248379849241725215049224226005459575839709029084723049072868445760404113671020409645012800464761167081415879476407233681249439145578826788124635137867969933281917823334352812108109016358505675986848411154303348329465840140577892429711198032524139949602486479730420672181809941537737848787233143165848257843427078606183456013280501943460829006565858297505991506726331801768646530401487872303508951777207214165959849819048522443285943026077211011792905131489631821367491776387768495419272792341611398389422318184485282787290729243476304547677813556673685498758843994317865583357156095589849569966571030636188238200290151840504509396120601594786905891402170920053657990106865716856384319907611720384582988598159213106273832479974743586433034791517070432653471832404733027262817422397965687081923298719497534546476667781949661198736446868587905735079099109655112466103611865648833613062716439807569121593870256148464852604736002937835655102015874456244052603940952718738893811202789721788600886939817019235417792103210189521788070628209191861959372610320365399386742478674508993587416197365062339080989275441217385164581284586012403816055408678720679884743142020262714084258682107731673922737481920906573441320468551955459417684101752649582745124079641657318155557064327991407610365597151955029863358154780153002329219288497245287545031011164472905588996348497761867764766329460563546095128044656430318505923559403548397941007975309990527905800810286703389563623160628766041896348180587356217059975823917791982282926278820237576648510774727079961444330179898609564513217990901163653884644684888294722812111265994570093752602158296482391058577352181083320349850643404261359910058184760004220141646292905236373401394845265690775407240810507134794493262013087424181363621789979698697182372145973806646864906121823588272071411761881176349694123858388403025403562671932069713954270799941431026474999129277142996055983287105942334198318616348639054822388630440199862089612779095065381000218599225992808530427574825325486939578397838127229525475613108094094509921452745269493656584342245085325416064532665596711480007990736863868284684634179077176972156473753967393087841536428920713228796350118378222029146672672242243420502422002791509661636095727016537033137347780668776095204513263123705592138203670364852645674283416756585751173692156521545234034668044769248082146068164116245741938703964027186588643280697421589993257278545853505254426450733270795811787646853415451234757113720741479718221036044455108320386574177287385705121112369547965961185741239685600808958395347875948711391415660300101656932441718477824000843913867946271453161603468529530886863408731715201731067510294833111484385248677579825938071419391168690486780587035927890511789599027479072753474038712315643625119409058518060100913411370322161553704582715828625606431642826077476281947205820745759629656357597154180104489224491564345029590945539926562656619394559963712855647954560913353216596735490770421265275922809991632964641199168462063277868363788405651634358435023478013800319594028881691127622543257111300738206988771359642374454508900875189489627636791954189397528019489046739477242912644815816057750767243153106525758681862246403125837955041864801336308449756307913372429236245337807706795195140026300272380107418391762990666802646781566128086791572243135027549617616191873580375687828016687358285462579955908786509915367551536673886206383120707799263762218018406199842760036659761989016583356563831588019068527089233806164738909301986591412247731367335179343962192142155903976276399689316952521142428260496892712652166811976014807537625767351924132671565016413151173246360779402247675946946202734352988946461008672845900222367041541739503275513652170571438608821991811092691441895781307772473613705211021551330632575944044166152283423088679780665207938262200018124908088843982328968105672937099885009949105516381024659235170025567088577268227701805799155622232385206273049937105684291472241980021252202431781628047779068440487059320274405354651543273091589021909586242799409059698974662103463851366227805584945698425861089132273611959658474598656105313005285871364472577891367558647878814695895644590883110812229465229102906111746535542986999416389423003981514982820967032772558715623109627196626995345189115035397736927348188731478187474050747267065708589415839258793766939416026652304614949458180290784532297992790252493143008778474612365763492714455481821196748502661495544446885796173275718568271311371797540990669171701881902275307820623266662872923932100062194133860858516070882934226006365442364371591301727543659275487099449766459297496438928255053852861374932177819516391363095341282947642396370530328422741606438252469025853427455624611951442846133861666901496232036537029362706814583177183217538932861364926235718085461518112454397338194372419852799733607904627265279768452272735029397830240346497180624534049698982595513076815039329011056807579621029207484485117319662589192629677370144690125404084191532388008503928087081013914066037345341499334209211096128338607225578004327902695617065368629043630040143031822152891372278516881589161210477590957345969425940726634349923378120563307700079304292703484081142631614626009498412624048542361664940117285507077339301858238308118169758507123845369734800847024764022978378169650890366397103602663278524459048832439416409386328792111573638596601382294463415955370579058940732499722408470202209611757389672741579371945469509159167528900266619901535815058715640819236203748347983127685478918407041052270369390463529598876069988365991933721147857203574569343826522661540714526903436929721335190474937456869184047577677219333687309710712020223045925328505239343956674389379930386098626079341266395859677592850566088225485031870312399287163319592312137647125617755596301172826714015007409231920688960557968562494309028623476724379161498020839480992349388378955950014719110667323190725328234260997076665103159793932885620812257372092263887519858704186634817916651227105269990276901210712726618605950095553603540789839784241511631189555534344073614756683939094093485201204904203751242662758972220228112805833331872059416916449670737859004267642539255571007496194148536081503591806560413777618357584544265622508447189417964435798147833110544876165402307533568813759565243402152254883227160164637184866030079305423841833522008489139407475059412610601158525851709655246605671325891885742619177441649276742593785664783196484545124174258340494285496724459554355948913777049410314183197648576474178214522938198579442698519755202366480718907408060371375217893288580860927855634189730525824803572389267108756917205280084327070306566292962763387990278312900906607159600158453319472684867172962048235232611470737129427390490928248754960053198756618424292306662893632581750388391476176985719100600927240571841305090833454184532654965779088319154769576082611477311409414412232329617576591338239662787544897814885743708118009107505407613993635456047755749431986954485044289797238175558553430379707247869258296483442874325792422452093118095499480703660165771441209470087999421524708150496809735983482898764465644576182295982750121921088300434323237011963470992704292218795725477887747948642399350347053969058373913183105412132846502901964849912692047826244112499634610776295552720626054808830715587913651412096514894624426574939841312660036722236519583393449153126026555795413743448686892340785236446745840329044451257600497429217421526082979512744977388939160644933591062873994255815993443181976614034231259856608419562647463921849790562178360644604794768210548876321119420615105877256147179832754729137738877440078052724597586321930351143080209402174451776314896620726246320505743718445641393989255030434956069259627041746933648470821234787241821799278637681549332062619648573145009697968661491940787845384748507026732961424626240209647977221910015422673062185502982779793159129226269817022206633643821975337618056846640472626231492202307444417094879709638062152470357517965697199165513681580514006621455651030389902737665573408062018046062676200357776430278381703781738665057711212563071328162475393708524057035998711392755534010215195504525918165034533414085119099313395610420196910882290192321460518978878992317205538022569403730208515969738053536671877197410574274001518590433583872397917015691434506071033209715589860516412964742148313584258346677446653237844468657037520005835480382080119336240401523574016178658075359196071834581362251391547590260473665274404248182781181159449648468258886178933027423919615009936747728317208593874066798251351234703407514982534145706344591662483753900346592331339178469583476427412647576421985799838757744862663513889576502900169511442718419570761949236269461678868150866404455288771764009638803425598464963766953308294068954146385111257468917411951404374929465601355134424089067801798870668344626081890632166213451569535894557959524979540428803308490168020531621337915550813538301131014801762189009604350272302165520195696685073095100725046849877744232758644688103837033791283102471444748937402769947301060176975011656775075825219358020808237578146338525693639705264913027831639391121170958487439911332557334340103455507655785286641770306437546870137893099005210688670138285614966420572770209052047657646385165540821204443730448175925590167832813208006871068947959655629805219264954093174159919417772635759990804749139064177738460460270895389291588644024547034912197523579737838207212537205493429417863341414660851607302715003201766259364101917338158370122864334665277154330325225710323726051873279918847450086774229255600433367404405706137465729405872963373035995051392828165083112026518057194330729215772135729746434020208134195677995206306941307194094148550011904954797945691062923895335861100591760237723130510969748342615753254780827887266088278192124832891210924252459954579563300217678147016014796323089009784941748741304934640708006538945409387608270451130994187072549769410893969845124920986829233095932228544940885871719956134765741907999784387193574054656435279007902976434007005023391567324050963082233953615014005133902474665267183764136292622849733297173497278420256997790181412292971395103911538805148415427528544238052149818255912245170789123614448509782980681399148105325482207619262719392618497408599534112470615670434723282495121111903222836136262285523057547727663331323662353552673081608688254862333078117027095641015894855772387251149960268315877870012007492443605004807793893627345840257784808808187959707400870823245754517493283530674912485742880089941029748450872091124147126574639009998145061968465912305199847695601154041774154888879166890651503391762035645680820487152368509010818628908517109770028152786910442049882863435552531897349171482437445411413044078761494318476863542160715926083586679668293321216689540442087059262229848125847087311012530036818606364257065047361210110183045526742776561476541376546995109796857225430857728672498633785119290791629041617241230820393402072132410729554276378153192780473913225422702105654735373960177369073237976356576509707008569905931196381357120624618404560454157885726752266736365630708108189100496286820488220027097268713034031354945782766139474636216319139461396287724053441354813280255051105689125427893890399961113382879195118066265511624261436984440098297817674416742860980551711940544977535971894360719024826143171006411470144114850229479369751315783800461479775070106782223819874139724277541635870230502671059117578197019777831984359552339857529818858755619306422215804665657172278739646975732076964496361155577394177554249892321205355960710793715357864994340749052866738091190726609817478445520645622485428424137279861235354654832262582200781718087938831430102083429545846432694444722545887119686251644817120991006915139041353395221242610074230734635844364881664023104343157212302623074572813639617141305434318483044533187984964049688255778608494580332565877058694315126289957773361789184760432478098416517024869585042881981596638864036379664414941349026860707326037318085215156995751864875633283153436588649070608281203758861377899775058330410063796566399002381787094886192561335903596701287101504819264959080354550599581995945373130646366337913543235460059698159630299117493297518392809486948429191278611431236564126399547162494192055897354156304491262509851420938109258256935867652912673103583032724825045424827683304931985466934207748773313835827851502303126173674804602241490784150731216986137952191178201609560352417592976138346536906339154478961191635598919431109486800904233101336861620252298721202665453084010446354847798469418979569497990226434386969373682600336170351673453432466603412028723804089167857596262561624604300129023228877531465975309437830819877339499195272317338911081840180953727628096295804754266362226276824318712728049412754720782116702777695554953232149386974742711438232907914808217918114541679994904041691956727867472377436053850217281176556234955868527940967953034151198680965131459825025591188901780959981252967495191859147484839182482748991503013708616642675843656629370082186697864102709718397622061475911500378997753142560475903745718147002502146654711274050335195492955039279981727623172201919892552175654197254043009305020690707374470023836803288358381433054846931447336964655360879318941847923319529883228710376283670927831273192101832805011192950756359501841111138125077670719793281437685065234356691209100974948583867761932591600105543226328351247775733151700145706795693254816933640408401586174246151256350870962117726874084280798756389875109793006944457565777085730290908140349051535683262817150974832194549316277860069272820610774615643147722242720701245003118902668331222271717174077733493885458691474760667246475105404814571333683213209256369465652419555003811640048960924723035359315781572113860141353454676179095470552487675220808990081386818686921782460024254823352817279233752639447817450210539296698157086039236070465963915054427510327329152429861288737623353843605011815479417062291565461569079276061086183649625473326700949600333217061959341965953269668432009156360917487884222470132050475096231043997657180598478362318052313848488057244022884156353889834789626902456874028268637192324925512752444602244792359668001967969729825279949644069565057912263989257927387090718806139833117248433529022710504176722475387427133234323593206795949767692199917576868049527307351007076563991637571679990432403568774180648367917163150095455476245790742119173817065939883820272808824003167858909515853101965555754718815946700146819590307394100523195764535294507568035340977631610018865529085926278413244726394961894565161254319078762379167346458940545748389175892575459226256671125085775164806497262368208157077879128103290405464945623046690662358846495417464803356774782532144458949229510602509328742611854193321835178792239968220235679385092651903453288952876875816769492250555963428953795345293556732240853305688945723286158144638497293012889427854930897619592906949329066873688108062318278513012297942804761879256708364730109773927711380516300826605579378870350819227207237949052083641781039817195942430897983483362512067892662572764121944514249019224013188590872764333246801530481511041971222873390068359655668050427695669222036416290079552707879204591548595285256615788687501938368812020749362602120758838086325640295556028320096234869012400801943323798561346459806457627991491436123691690906613004778569234422431658676462568907613644424427143321473242068823143033506287316928572640257379702765792664152995165280693819593995704781649822618380228509025239761063477444405456219947236639284223151279522266447427288043679328062778615734937858324675952674758422087455083521300980066686899487238028712128960364932403013918043804183353884831435316597860177651099805857932532614654860645383312446896996029773618701216483670733285086873495297902797829980587183034225219516877835749739194665606659654170605800681868975124354342571164214776816605070703411528895039156296677858392383787377876533398544484183725756046457727789295186604118513391312726518676763268748769270811348634627066764067321987556384954243145491784067650547845381067560494236494584779455600344359126199781590847010387689348640976817216362302141663830914647807446538867077724042908435987608526460230351437995677833288513865115637426177230076161631705400180695454276136822821836702443414353977310921086650523847871848796125870273072455665133508035486601488873474579150326414006170939952177839732064810293477867529018883198727335424464139921622827942288502073408873644229737625762249257629178939421985692507753496047122288904979316770770148469343069588846670924090953903275608648991022740240315753560595997070293816837423268191038586176638206146857936542511343339070605251255015215300294282534189985714961044279328156364225333806409245953769023627834790984559729495297872302764503106950622052211622759080743676316515662026810940962083393633801446391915134143529041686744963832145702443401370923146729482563289746485722434212243222092327357728238558817167682227577648522449241708357843970636020851893373859126234024658477230135450133538672323307230164838108430282907759390153661670379984368086257288734175709009575539486779105643384527331086457918000005011083182298956563444807838752702916878979938631181433613228845979681014528825917097765232322980464774087237275610280506814790937303768186170828698349584900955675745751669512557280676546451875930360884554830819249555729532465870675098734342392629129703939724146849823774369560573544893520969380017804448034827584338582830596710402940750554237605809826135380109851971759148778329611004952218210929961397036086744085729334439463090229834933497760939931684518955585954101391316322999109140198556112849898229503421534757095799899892950340376962904338566032713700892802257334093716423283911324341622148092299708525748392300481633808782818776408177240125694068978669474220570308071866306264426076490690359317470005184261598557875307633115041919254085283537665908179965309040402774924231655431615326912913489686639812822417449578029181643462423333826391545222943077618192048756001377640574777414194098969876536107534587836011322622554157752245595685716628249901405591914854041158256720190330316572222950405078247725276295657131181100271984044745035875783566620281980512676089505953537161262236090401339967036919111326308583059680797348885317772018112924454884167858653595418233516521569528007459170584360358682166086227130094688626330806083117492727406334957880409957597591368135916183006039823431232906757760871299212678040056069057201868135279270438938116727618899431965528678483706515639567470861594907371557058528434168620089788382224920953272756260768868548106928345028653967480215662370014226637605103563489282226457783604681892739648985665108565532480707453256193239657517216714966548402947849624119467494024572147247153696074717981472562733431267484984948362578735392384786141328164002476297610955519256688745635057605255478048675763720849331245150941591558220956768945074815084249054527177062338413410061003996288914186433747271752374447228106345359380506573576886648501473474771551220700016906558553543406412284841048057110858294756672014966288433399632509821472745856757626110772121864117137875465178636830337163719731302830423294887066004161902992744051172026298328076722078897282461503757648708687934315625793986203197205348783544729772815641116004214517162693821220167214372336367803385854041338915505901391339321272039887337374958715020606992047139148629602854109845459442410546124914314047388683996061893522577207071541623603413765148695916311814756688402661646066255103277804918975357852488567167657236825500569318904462549602826866215331910039419972605990680957407700843849202119422615352027246859706349611502835551596952623618812740001023748074519828906507653448597012931688875916618501316802442225558249294097461343753313448689419340375168424781997882244911396773378308334365804564920489268371856190289210971014786964283415486872101168131883508841999405047657361118459086521540195072165025821754406265268759410474099831128537184128211845566056242273187600914192931488003552365125129158097100777696045839170972969720222912928458137764147944661537386883978396590793302114286013089087967815959461434651659207731133321868620352315334777896465687355209636851688542457133039855796701833457846104830901752460285600108524037044161471422637762347046328605060586414111589975817948605093573295329030388515295533323595555166522273907663888306352090092383123564468533836012463577972440356214511140108031244861388522098248750456124841102822273860551888527597932390775426352838773824499444720098034594163390322501147135746566568626775793266056639693021461710450828885774134317250383227301591885002293890910270578096746332962841141166481429189313573433109042046241090547008139023708441879616545457121414771410339445704107245854404377784003159225456611919776796600184525682446721432365170667576323024238065507523553565239260651295716790700076271173329994049389736018427599814155071717091217119453654709181490630981087833831269546558291957141836046161256031002223806193780691795954822602636764246045848044814054623984580216904162537298208254689471523043732205045352517442115768499039876204165465791966043016137487993008038463470647623932093941198631069240483551673422359137183013312792877984584725958922419281125881153452232517923349923529285038888494895464280732993270046655100229601061319005442863902815468226368913924052177258580051295739856371376820268181672347576377548151966980710327594406170682110681668352486748804672093404507208556147458625588606552412637866462837486105330045965087034482203829938382622363654535243607003338938029122578793150922051719042796597410729443980724258877064651410007993475611190256614926118384433458368750366794920917014768595408570570543843999802227989893473294256316669533807475805755730372730575994947665031620522630971887903053973634593976125689931452006015056159139990666846188032059062741968945802548287042854210344321633923188610063656030347126679147836223203161497610061409017474409175420409184735944853635892831708998019549471834592752666336476715653015471265614266624252855002286147976022239318830258456783445010661363864685511313821157503166588058163264478646649335405915368473448188827457766909881368426224842860601940245195156349789079766149546474173481817625835972187165872746970443369567990175023067091397076424753461430299244200634555406706079633461459212781489132673667518218779321872309963381821453207214385061273807081659299825315921044745339052089666945596535851532224214993312433328717430513005190434948588252143983431161391154030965710214154618878619087933705326901247987621762592681706147728678434001428115476142153365037042507264605407502308045829819116263668880733098265466702533283687401569225222700676068674906459205318881989318572972271642009292287687419260136842724394908875847128580458644239544443319029430312311390554035057614567383580890127287754532226431936325898426056112294271446528339227446894685461398499763867363590646604009063143619439448318774599651651644456917222629141428676323969908530812034937859058097686121376630194874729581749877809380061182591834284241810202830365734402349274775302908057998184585408360320429641882841755146840291132011793618330910902089314572486129965147070370025068344359747331083910117391247019818307086537599234630405456438106855925628206140244012333282718120731642729843205910433609576887285415994099236393330715108429661196430403283659843576136655241991978656571198579928404881328475657802274578429724742087982465447160902133034548023017954964405486700658027370656589347739892817856498075620361685360258747724178604775200728335007042031654665793232702261989269450501275647592668326412405501243862145713355782174082814046201298187412021622491846119401160304827444892150642958209942812702247070438234597968142283266067389559960029250821020017736837832244575823081609017980967698688710821533789558747951162628706267771648712389402730500941038271240227658247530130127461602110858952915027159044044222652259802097188212751175087175277624082213436586319198254640213625328494748931771490919805553334298791628279078755139363801752214048608219048080936159536122264095788948453613296390669705622161984717241599363659256574486167918329325383529842908445642289817454278781395121598697772658014120576129578328099994232861054263284971018725382575166832186718244751481653858656740930870411610733287142663904128606320881102079281502469256135948400417735226427654763182856167185643335505036135879479784768907877321527402192089910382849408994428723549390726553592165871395179094869691794251450268042439749032338678554561975975733779505594929316789187980754571167602487341992026319657731448305683892604449110245445217434837339097317888773082524900172648357237523797412993676636199576755024780288879033679279133616657906877366113377825843320801368624682225016059215672938793014958093135244096007033549781877409574143624668878200410512842286114020854180333067385979349623992048220291886913069043736311524961199408632586797427568790103798806767251696370345267173061171265412140616177879518664420201336833961936891370005377330025576243970574300014185613482255586980299930508447383675314101116361578430789962206991027157159769893004735527049781955565761781712425169888050192122847429688583242269992678958426070007230898743731665449681096739462616290645388506590491701645000206170750350465016386379247736265097528640066594447688581183491617590133973195468711828774797327188524166016740888240718926108628745351889726758255000906727844972455575677195553242168484862502878590277606751770978740343934610026388336743701428292715492206535735624774723584166629665278318260084888466928929430484332255762774118093126275953878149170968978619206889354606758200475919940770976257062797720013576688013191928955662473686297894412270401617168789638890357615221750419178620768760509671709858774089207975866239727681403217599341447149428545978060885557223666718516701683544344477039619874694776994731029729103693372877350286867770801322139047554768760983873132745685909963698613816154690108890420572662673311377713278324250575907784318617323017468670375717436040851983630718331605212101652531621313453138852326660922856072478451961340787972158503570256920531271983506972733091613507041730819863955221500806037852559851166322056659101181356665585564246049323422643821880416687803153333729303086575848621244001483987056111407227102153011457248836974623354375206510386675641281117634677610616966377757651991744228127581436506821219449722693056211949412694370704093427004726283163474533764592084037881759335385396412224092608898088825630991488031509264233710748958747192336938226861106228000303335470762092894362247143726626136564560173686304715241729693175155095747987713078296829394575113842563947228341089719583748514196652549543090535819132747383183019625842026956595280538463316837935946284307586986524209070730840526819564550997806469837089918354582983542689903448904421307048339714783047577398778501835901995509284324646567425391062551943915678153544320764245976664742055813446074973745844409508213893002235553941528469603130918537318690814687819836889689102531416490527114352467934900089976248328719540879695242086507818492691512217880447411822726476845583206027273509069735751947779108844388534639597573041084545262029977247282283733479313926419700728085896051516574509575644557853289287533326464461593622406603991054698219983794492688606577694874666732487227345256342348142281094266509265078485247450658060946074332147234161273096132750163279984156222050782118463480814932645021515709101471981991222296146796043291365178037519315276544290138298731001543787960204409657154483139862554035213194418983465957291531649309590582043313234225909663207040410778449593974024116766356860965163257250062816490697867706280461380879470076804943420111639956350865860662134034112043466124097040121130372103317504747435363712582550371261654351458415498508834818724533611888480396657537785584371133098897151202625179441347159678445177048817537655861924126058908938425281251026934130419553101574105189609604598691321961113896673494469237717071812722994122279200410468012767189223998834312671621094311661940702125163387959707318132561496664203165758719623062960506712681822107544541737750635508042941839351997854767519828757782661023416299096253480286294847048528006982636351185629618284505257638194051602335384751396734795165968276094144984757621946602005296987312670982588847265863878056336326031268680918834002107647907235183246834053480017330658447084626172731730711995893806907900667089646633837837012589039494052838735864157757402962178487992432449769419847305153891826400558916142753203259455705812121166598402855928097307354789414281482463718354440227823083353879731372841891373385920080576893869444190345860366259563529238101451999153089018683419938270609874990246744445365287431335767177906211974622514177058844159268206521358482638052052984131960375662386397797488267169416596999375698161049727977825233745548985058115424402032565282091898553764412355478996827027795460783799173740989837301865326499091188029583930024134229904768024199363580062783723130906648905463232423934055716501515044364852567326594740123411719020114710536766429960420374422192788679255527893481970520424654809166027951546122366573682685751738799826308183637098102175209153283640121980890640639729458844137913790084849795662635928431375670665641595229595458785420671556904908108920172684316995436452413761764876556661573991436079194175468950574386078996606137039627598655010067900243054969066410852985539943017828850964487303257645375943469445445017885065665532753165828453716952359549524065772314660731615611023510268799201238245304734184643495558668207503550298376491693482699462069991170343643889887656620356010232770092175492364946021963896252824823836246322341072354224221877868754377903226694378560050401513742824343953427572392208756070344316794666070648929944480151777763064127777173995894387461798477264627020259759027487315285369173666579956695381295817084840417700507267086970481166726174915373764638432822380666827880347462994204901392947137816451577812085699998991521350099822332407783324010519656761216930356077598017812427276974040911543944029790780823356122730122070337155243599560428846295785226117257840112789352765565788182504437733119351682414538589916191074520127994322867518634048682703717763694537483609696672619463751308957221193376205700814552088421281229427762567001496969086494259121309529168889218555741142294962271937118009309026788840972822091038874052166852788685642658475125894462817774793584357872750858949973356329493388964556233041988362239996979155429809964235786445020034758937818721963532166439015242651055254976536038313421152479323132238527867567799892080544071305823305085623156439588641935759042691589545924487749944391322270193456284523489820699540826985553064435290756196151245129516901917000331773819809202461910793880089498993238320225204799256883825549863076408774570308520728679745323667414455703496034627047502986460097308620931240519393501947869344310271712460670333530609026297788438307288101393358134429155492520455732310832497223061343990794682058226895969424659078737621696622932492114651371955918051984799378143318617069446104386636007529185222672095401436769113645659750296303290195716055746019490868373234277563778621440777834896876248642683666011340533836125879314311463020332150101755020784903392838984494070149971921962042075754611935951957347856761570353729671258292819293212538024168383636269583584197040633782662160611567321976106348922534697170010467583835844995271838374311393858912319953110568627781465400631798646704333990123879117687367446307410756317812056435150204729233779452870400868612742006776060722614923126635374242105428070028821070025691095506679100867493495423165012210869506382508287553357803002874383696550488156887424217984461093126905561181491535959771880790404625080368405008326293752848023751876839007537399882999100311220064391199748891394016385408465895419787959343442254261393133375121101366173975251491722377032618945452361487120250418691369662225675560790889099569720201817695800340889948939766775273939267461667516421139933120463868015509766224870253694358206311605408767540977823573594653890902919800472902516767056622449595869481143518098064013763354767060316359483971244160057592895807311282518102975746232968763724409127952051428016780864991621550882367423369816609822954948132311964409273655946314319952294823437499410599568838564562831836431938128231992244766915275514204150130382803973747281851430813020083145287206867958559425978024476609420262700995485405127774295303722601593841003735676594582084657438537984163422293395998137434282764256247717269018106772197070040450623261382808198895447126981770199527534491103293412258035422941118746952005029776750098879384982150709855106465668429525220821697766819261500993609628864355465562661434494572089189088043586545061216931242630881000211125471146940809556677044602799755083687743569291278894357863044126601351908966444956135362737373715496732089372358921779586347411554225821172073246423967797310217173595796720900428892569560282540022458388510414173336868792787359014233784086856810004353755340251449555649357985598717517008523880229297749852941732430740769059617952023549482370893492670051301253616339108436841821016986996572213961744104231920785663721447459372805015030574508143937019781362862473689079327252443817336145352963325882845959497662279322834098896429332972129630355494148835708084959187401448810253112856683715199678516418392195221540590419762956918093531284330343231657146553454814683296187853664397445456061322332383365166325093949496414465876282375658144677920249349665258908762637758402337217163913334709413563343192676051805639598059860966392667440694192873304262543975684908256667005922646432198757271473019185326422956021028041737969495086703627766582318946087730294935885475064789392705450568728705864536765795791176756481259193422075932820850906521756953839722951164813108648924254220207121369622181166952259134200099275167792309966636895320226152812062599423583475308860721122683093961710268131038321074277297345635275522834695053507799611434005147339547493906641228715310249339810074145909623462375644806772994841483204626237655746735077692769380570113873200266217536431304319316752523369442607013933917831417233016393580038947545890571476957210905437196579485251278884643418497219662812579295543681678347639646595348611746981894633922787954440850230859725244987993661076511297769904344663570645289284434972333685804603179962221599241048748400065506984244530792968602100234272396051217646673613611622386440996703036350816789019415235401713479421558484308566142500928989676602260038751944569873714618951336076684781070211445800183310774469252984240376766146428301488217233581008295178620092507963709344357232401534091621290224823497797832168279655870902605685507767034932452181376059781769388198702003673387228639532062893224271646093030335532530974951559598367681367824182116349151848635078483877303371057053616341372338946492963449025830083360351761682297117253922168973097449750394792818549893662780017336908216056854166034521315353845472890058988345640426358595469096652803238859341419697262807082817631456121510923944001842328827278467677210968614893577998187081311762467586823729256800237430854325851958580401777321454815979764204716275442295697336397733409379475468410221568416797441894852780154442483761995550525547323705049770071692475340391455229608442450789408746156221849070375116208604459623450693578668432939544874624291984671557928403929696661488513170006002809296253247883296595878213769148900760303362914922594772397277446336907909484934389621860885289975469195814132109539045788650395142670275026748343084883414779356226104092865089243566962959700741278662342089527427205187362265697350626730394278701598331817313224621617725648803424165123713140347568629738018879571592830102770458770296585830596068313686530610221463014666549955519063104118326920581914273568913972338186715248622930561667660597726501795349498543326736451902657157329040664557798994541593630298930823331967501227426357590923417568632382008004953142440894568457724750509521220158183910312377775778910959162661150730917149795201704358547716814766899757685106234254724015020062218830779962844384623978025076212724861607611317191383829293049914823149924048331642115140914781773629758688271609242732427605636528204925994240254095540942141657615722963041864472423560764866014218501123902547504174554829153383440165395941362055871244490070808975134159564507835630265273707016871511868881820281959448202592689384938609865842453228631277233899574900377196272002018389170903438160618419876308395998209893680143398123650471774802040439013235897138968392478235524678760211706417791671076239982265022148273027781884730409516793405245828038838863405084957606533397668821748827407728150097091307092846156664149448112392267431990591529737418368932002999841766449770979978255643390337701444886460377088012541441601635735336294065790569979251523918085125692875868642789193005212530844011222865083831134749336811728726041020864612616235798890710209828388520709534394381172802380788821201784554066427457785873113485611314375254206570316927358784975650777412477586692517567172460256997590039438302296364276134447782756756803264271797098829047595093056347608037345077335307876584252364041639106185420547355975490876098278158048526485508589220035472085178903208243790742374714021758611650892008503259691231923889097335462875659597307843807421736613752167860461706404385654522828623004747962377888146592393771029627495983328289830461740425581268817083932801953678639385969193619233349386452939576939626203882470073328525071270719491564700722777472476748163684484454543331468908659554598282147124203896242708974301072329488714980414296540408021767981312957351190282422938543404461215123746531870573860119365642196258389584699837380926885660715695601367204210649358256040577360401730923844080541350005462655477494575339781770193962894076900706886196842238978924627628058463770568361991453694291593190221224928534156256016805467652294166947555260962084570677841524101867848645340635397432958316826402907579408289523763240507779677818333273171403965658073742840402989901852850939760446268982423750882085698302125730683535055087028966755920533571596663884431923035290017726922641998673526874158568563002575700327641402544437513187592029353277026795305403998799804055449391457562745253484378510095428332613448457835115430507874256992495857065510043137487714057849488869331948461421600855894539943350909477564421106100613990806288383633545867198006741815889484877258684807532091771922132796338915695688094135541436746141703056090981561882992529247602664290649748966571782671070758059957977545058196748626884449986184488409183081992163794292039569461890783508479124822816278166691361368987268803630203703366301197610889332644404194247316630041909366201555296070839135771293251745309405621205131553959577156646315415009487006910553416116021984618116832757181871468950459863068565725887561886035383151642855386887418976145585130824484865101147071824863169340427470192334144602762127810429311431061131525387892168792621060300409964199444878461104437571441596020825114912774003455730612767782224422569544966929096250827565968768356971418734684955163894409651886698461218147193012534404502877165754427627587294460028427612452222269859093380620539203989401054705230211122445484233557997960883395877318607134687694478195783417902086621265885254870519505848905837495684236795973435866202793870639726666693733227726449001031240769128582890627476542244010369802422950047942588462246034739491346793564943438882574120085416257544292113275379405864389619092001038328168905675043985527508960308644732855453765149326637856595401007035378516158308118032934626460454399662541226589967764050551822790675762107955083561839378783933021371368144329813701587440964965486310549722831621374130727468917042816098163901855328787383408142485130454167279645137007816085875993562302920501419814929114086643805415416656412483132554063592754925404609316285506537586652363594931915991541783546167576046937463784012455622115381766987505924218851642752476761280726585525323289553260884251935214518838489973787144538779186935541190792802943444225747302884802630452872051909102483232406612085896929595828612867770403457248124936460550955745798812284856010220111069147729729757751383918786817943714609062352995203543392368317604354706342821839375262075313685678249043861361356656707302880136993653604462738564122999557600930617271343463839863902308917805444394728185173944151592152172378212961804638796437769437990002255746438431990491287436540010197825877061797999009621256453861827547548194470606723635580433541804039668728987523260760281624855622941272054191241467435963547788309258014087974346592934854513423521020234428205095064061841820438721994223891963296753153764873763740469162779013760263967250744071634718979071832798348516683499674973682002517348641052216456819870273377511281884476377478262058855626291471689500570182921295199652348187637223055197757762667519195648765746393250984203485480309745656621446069288777445545647574744880229887017683984033471218285416551045121841114164979127057793563778974784123876981736947665439707432788749508097050839125629953114417873744613785303520396891905057444077337460611527517755043164967991353290215089783408871112236393046362800535203427442330368897522726700390640623449291224350826582621896670978649551336081161728025037770195915259915966401013092177819654356154088591981335651720995083568622257573325950585914758276074068486440346762057728465575194638645554282661698351674425125672366511788505850390340176869891154839396063334017243977253767886288232613970830587900239637886417041095886842517948478742504548593475423139013837031729949497713988465612729128951778827899865066334755689810032711772775226875341732024157869818897988347018014837468108635867070336519080569182774819300744341208595103812168876136786852020653186678057487890390636191248704173406655849118313824482705794265729147660738759726209755821285778426503386171242111892762435078473022237052738550763721804225072950562105583089331794785133442654158292446253444458648292139865522737848978051249707926389430514777525436483542356341749644867443296087417102769079968048358681024997672046027292870396191304449336476672865145870856350375676598738476664472937548062932963407919259560222972964217719243372101526110112426403618220052392655651189003931839515124408705918816663113719264323492820272827103166888609540759479659962058230195995734439380172172896391644416148194460018522188626881460977636449647101843481744117118715805228113955158582976920854021375933783436032794782771681236406739959358595804524710245772163034187013626511643297679305574683767096062535996641823468322820614355074749410746962556838635103754503850234050015325330470379487240881681009368502001523677409678498542625309353453548250747996030728509530900955803235020675100076689780654654310623893095410632282731542451930228954226419685014104002062075223695897420458730414725423471963784842001013464186301590160523238299423145219262574879749010767346645496744658238195596794978319697210590879227965820019354953244772616252414299695675462618495674658713476697995030304380126720697054465342971084780170017882787567114327650901187876497487672648241396009382641215337524693757110887774382287231821621281657115579055083042547902798394448535640538037940669456311769736454309640534350580051439752654021529824326372028264878556988698809239485068735295423688129914510513903656280246189782623128107129625259458860113969177603315055651153069971556081767903383321936918324591720391789633618520600603226351798465289125810845389036726393250235375197026156890451867407815408030478357542131171591410476031059255296266562546765058264059532642039732810337699779660446934851612446084190315476876721963164835458985411897501004979270272366671140768987324765049797622419287147084728852846509388289269814688540765259673484710291716424349382512120581622387553165304678926938164890825719314158798368956632955448882440569163589519351693950490775277987818639177067763848676628093171084974437530728267325595392684504917163375512860285819089353891572794262687261761409444509262744586621510033799087469407334178604835243801577992777984292054856618714105883534566394515066674129655690321208343654768653313528073730390414484086826974677270672628419545816961574963682926742249952332849181587115814981884747999457040299300811217467991292072293924133871464382433388118765082860448291557572528746216423977115871649168031586134730120904252846265897207412790025104562390019167606293934859002010039344979877023200235188684603392922919164798947263400031867855684665272888389013588569319845903308221006901291400849273724081273233343263260912714753846463610645810722556763087486215315275251066679308638994182681735072120431413641516193698474583752501737325883796587975532338060438634868690019392470513979842953927598055887351753707296209697224575678387730109467181339874147195650754716135374443606828211603697454325264138268743621661176678994210366141211874725728913253719988057692527156136864812532953660381986211028168902031759871406434142305751374593502748189265395814269529286622956166910559962139397575216952189400009307047643097972908763480867855794967601639710690368324526893579953548321625492705645308018296665471289927385731433274698392902401906723576906520725920231320837729116617901783798589280726618135571057846745022147985250951368988175619464765610477454051337139337947195170915444547914066559132300779404337921392105846516912547571070062776866666537770475648612746769079059592741815260627457916189569121327599358979579585005913936083229308990455277907583220901742371183671316110079698089056344592230767765282279307521739259314012540067548347497764251184740470819648653623481402930405182402745699918947124556708798325514114888985844359904878455250687176247528970448254311451850515081253130765519059441460600043285074815025676315850472982465470013454858200481650744535026746648587683112075845056371442266842563173247307817444945908374299104982586410560997306001352110194276191302326260476550319119075888218814845712344769574347077233719969905342573798366505305906309137740859389148971423863549930095652014230839210240096618891708381980443328790852057149172607591539963812381358555014039330820884924979831229017485103813232230590874036225145330637734265048578327426146358333851789617835106540768186882804747262082632625180600635559589255216129111361967921680848233207046419783243828630342788282177960561518506066461678185412890526548075286512827389167011037400165406902152363566962610525381048106173348473388536547876694683398167521227743828692927303430531689171689723296018411334583352061423456407385423719627189924281954396616080653490843368148856264092451777934974791850328376834618864384815431408942233522425596688338201626423461312532305202536422162161446884801059467260516451535548302301021132591710697849543997845738315627041068572001752389793159088979039114581745350349948126994507400592123950438358527691700159630642345974096071711572499150500361157801918966205923960865452569249260314939074992682049929336462237001636042120495124838855391545024985114813634649172592549415390882124667298312735064951510201846092380924400609927862981690326981453322159088550236213614879304854677592371440067359570949943210821202069964919290811711690649746950103673449023449476531300795786857954069194843527058600049648163706094280319110590563194535700350958302024512209208894989021862479284679891585628461411688579411111806659549899425063992853305469490147344141329808868436027775144587164346781006308616566707653262962863421286297767683577853196377727869499449204641490569795276410044655455238059672909915643042146100359095852792426699426648996785242800217048492518947011749274287119115464039991158140348539122336700108599561097434870778111250107454571658688174461254016980723532843432499641913760159698636708200107511562143597084415651391682767517908812240585421580847375837045405021823098177722178745530527103622909584560195783374024848056920835278681948332797412659054245712715824761053889054151577802763543625133369240062815611288005152930592523831596932943983088217194082920184506607538170278941617330315007373205848383643350827430962193590240093339693878572696439725477874784681008918734228345460289238478407805538654106374935622456479525246193568468867794890771015744118372477999437699067824808107468234315749303560046628741910355165186911785437821268605887960742680061554935444656920804783348177028858901352338510292509444318205496574616595640007035205488416614104819407496835254598848228746414417606394122742350697948220966702376174310425194226550261974791857112371157206322261073670837868247558157142090878574030363049875101355301495896915647557676814305085572578322115517955209769839962822722799262612627948166082010520676935561332408867969787581761413587376120481301565669304310742652479048139282272729042125261320979267936320534231476746254137739111656023549865645734836516545693326433289505520672915237902460173534921553938795213292268066591720007362797210976955864356707542669073557152225277041791248664043258467719724361812421455358215631698344255820982171461300907755085187802039626899429238059179016423692290401967073759843044336581224859379784504221175964324275920243646742957584023886953530645407993681740019421105190271318424226597695092326642516740879261990830846143812498219622093768347537249571684181307152841772620429256505862592449121886658496220406970833256395695820109813306182612111575296509769772806107765396574177710265443856063096814905174267267165705676098075884508021175091933064686926385363587346294356190396571611529788306012899092302802213772343539508599916691924957590723408796042036440117709890362065002207921590133326237904804591620740113508655921705774477620692981343576981113207138682027814137114480096318893511214594435758920767470719486625081201432042855125035983514879024783167324404118925326785352862422705245298604246119230877382213653025556434999134917058363638441067304313207514089868942787598527666111763829418806460463727012472309004999857713253711550564894248605130219684031216472031568387137651731381915630766746382940263550545265078534858139077284891932098285506635245301852410194175583341889258468257188245001992154673296581985793874351224375270327600606005202417805309247518676824051739112645963958668529605736096300087444283034082327514860836777792134058705353286427990355377688624606670007846097994948159655196994334246175546977800128568781916590941629851216190971113834538025176180650195003496695983817744068074632476104712696710042733927961335521847055234466255734656318562785884067445258877831397968247825449677362177429094000127124649880442749667448631685985715243575006364504246765603168297761639420498867080263544857181184645542155954349916658160129915796168012674626049607726200262380520758197748608232267390588697455003934010357055691425650629690290478241152570769677695081546966003233487750166463817220859545392183098288645818829844714875431942288749362999690877380252814970987482047362925794145712165959535012594300666126440212390940221297441073778329767839104169311722149426574083303615426203685416921074933938598828394718539440448576025513932303421277134738988507602462700192112543261333762116852022063153690436480195907859037146634619351531954385350150978768142386993167551696907867450687749167166720089513943461115489474569847944808833102957148089320470044930050784703108441330287548464983979762957006635926106172707153319695468218370927230213046809701826633062184391434528339234998809054120781775552984854512341285755821016276526217947582815597257472762199271491002592030120294543595708373637528680180809565921586765109942195188469878082529198646196372611660265316182407181489290251670836504832676156898724802704860029383528421221327861742472385828705747309502468848330047946436021740782908258243792807799529184400279658521580806145208688012376038245916747573668802835772733176901923343822955574946165798514022870811324047918153227582151953438656874964083502783488055131175714923143865360842714765433673110286591612990669495900006955348706995667606656943812416641212370633244279625657471684807906727760147665302703885895341198596795509128221013389393512463056197952321398965267919439519791655233180343989112884498894762886497620518381070586495210501495653179665833240301452830937455479663125365666026630942665942927452226970317566192827702361352083322910079321837381160389201073393755505004973379236177157267470231612379233914053783952091531103804181709560477211403610250007638822273829072464889192430446561223088211118839572217993255100118944449093572834769204711804770992177106395549121261110307387052815263950587133871576728283274083169460286951600306266103221202264911930398264775782050304739153535413240560620468139750341066126063217788377955552229693667430081911490117720616466611542119070488335918555254926211856245513883585248144078676282729749571742479132244883453774638279862910362591931605397209263777843201277711239710851705783062466817894658119403745068885739883704266312387576758643800313803232497618956892057763881098130030702807506578411708159073907190053273201840165927764424713646280250626530735606791779135681702692442093623583915833489488026464330264381046396204951355035099234224925132191823961718139257584302944639034230694747030302979706048306015844711345179140249082554884158793636464516358115316984228043510928954151106356011719658489333053871309164255153843641972786034157287955559346553802439256068597210360230554139730824444354988029971380510405636738661289409068962866774308594471512100677285388245115310064795352852369427756338248440543326033760482155338826864000913823345541989550813039247313053917095716460019020223776649578587312498411994321059213420098984382918159361664873342514350710167506255126277609994000585437667155298276193719942811757586731234069974994624489848385852757400610252883734588974958848583632956377926108225539490303494662023182254196101977885270790048825183024362706728903296756522684368458192580540875704659570159434047304159658115697067346231879607342763928720559043080113704762502039503500314739552126103892427441870830358929240274632525477278425080493397705201308066080800853604387755978545504048680138141196106218833377933238082422175297712837033065177825973383259415686208673053207558525283223184655058593058223863400627678792983935924362902019701903447145169492817969987501224239456442019292849941902033122879100395142893418688762387829459350101457202906699204234965328266670674173050593353136155453638036441732394375816016555882160552828780221341858237752520120810006964339788764202036672113184525068743344543175132107959359128278691510090277832982644046887751565764765913104831496960172104369045254390931927220299648760285662552411591678572753501418030180253533921275278576650685861188875386389727481829209449395495859727389688585438312247730740556478438585813918322121923533505966998018646587229702854279016397745114739865445181357855939661968041356898683143241012722747677265618673909914506834250023792986663342518338088649142880870584110907203122334054547458574417596373152323125577249305363952018348369050874928060529064059165401851020183248727735111380254463704828279195272714649562695162135108385740811533397780312204393992180803147726441927763656490077366522848450633161630133210709914443299820634693201233110032887863072539598914156567651378010320284137273009639809262103613354699481091651797576497277469215835762399693546955109865165362624326911064181504439939058903917373454083473864710333801671751962358816816288560901955829209167154463851673974419187418671045158224362216553404047013172566301422228118837913266377689872825004981379417614380458982576898435479683354887979971101941060621293468866909143425560882866406828863207478960950574424304316827219605188072552723597632557339202868488038488280072394784162497536544520885165808768613128943133102541811197417275352637607926699268493439479246284756178248111770802630053890867019644773067990444348717429765366803680123043006234033219236440609929294279618534525810265771333640885817032412092729829852973699949582200016697765269972856597690425856499585534748849480085145384334842659232814190385727047675404679794149227602356424933763005131644022567501035914116165541482022669087120759602898593009743236005358443142175521345587915158438653684546708946460999066324400120773847465907546364509974422179904449785611439515845974569275749642372281209927253898889003864863770122576415895551678161974903582476107548051122501520263423189059997221170282279291368601254126165285612316068729694804719374756474259971694249855853462488301755659201960741093149341952265779630080429496619562807901693536326120410059190354502794497045693346763225849049314145112254069419267649601734960086577882629815508082841445144517470416097409769705460448160718048472171927536981930489039095356916896457636083837773526354267263646134718693985156466622178088421719891242444413220762526834753316137967459642519364619482329269445261768286358522047207998398826874150749134217504597236582349559046262329045733918406249703412525801814396247788956760031731052670170801098599674519962040728130317013346524507592413703223662696244876939724719026444728671638996203048838701359802261439203720998552890372636039021215236406753481352042832917175418389183691562134263110076213617254058293746871586393514402534565734557607674275638708719058774596768655463271295929829531439788832001885506324666323739813243656181821718223914697813069707162504196972864700582001714976852780206334638183280875093907856722942659931871665515638857112174158564034681092270793745865922396986526438979602614148359047800257724245326267835316077931972976028691628858481035454923047011699076036286152228561731974318424028463082848712541726905330617248461398339238443818964362633616175070135223889286330309951492184877803646440796675797233339261615101643414153648702222755725766205970766517082461634894004382526878613738839378850597819499566813015754857055914370375774023238800075957405865395490755600112350513977651665839638170706978057528066516701960058476890308869402315859694393611268594620176375124907253185664583677888354859388222520788579213865833055427690597388513712183542055106382482340243621642823849384601013922376811603615765592204482508653007462040783414852384382278446066403229304777507930480931811446520299747299130393152245152859691278781856546559567116668195311345661511332102000649371323200050796677956282117647904794829716904536132182051212614421065317540975905674622689314350724386883270175377772320646753436113634207333722545821889673732489953994950498300530927216717392893503119864859884324169266523584022924295247089663622899482357746685246887998956337644045721545387561926272199713836349104267682758367402857392855619175067188306432477408075901649728533614010508347242949653866937968218474445541845500093384381948862536074813046230927735008902514046907712719660343604028460810646162492970590783941272744285928002648240621501636815209968425744993873760137381159916894344025792828885000389671200180662006220570644566833855005228337315170212223369025524154041048754849360492587407241822198030979128263313295980714580214741000408591451859326510122998323641360479628132526305419833016090078896221531174864421758289519860665439321520786047954169773423369853830966756583791514048486937529950052109874012210272567168755922281010408670835506227225397760488776166721616398673076480607117408537004798594233507943535920022947024715075001546495719759736530212852583133043186244990080318179241983841187401189380644280242611889989773787800736978389797203286234570877807816823839377640166048371931988382189231370338423497704423040776386124228549755600105117505818287549472084843445593370492614463233744394712970010115169161305168716093046242641588271488557477542450679032054159018064328164274189960957416631656373957509690044036676763037368249447857777636885752960813970230436842399624006364249078944620396981955424381186350932487945718833361068969810278613698393004841432893165484687980921471587604530700513502666149016515878306411353536974044440680671023444154411414740324296616886482379379967311750287682662439541105411601056903900132643838989674251625967911156060006675330271713847734616666353888996547400759308406067586094753318080770630343726988218261796763957712945492686908049664820332354233188997462235342208245723996007071371612635829152714912709898623827914316219791597788639835122783313798378293660856286582742317041548063148885904775140901079035937420364041363635952626947019097506073722620008223588981824903037848081459714626620688672190556064030265603446517677973225131366455474652518341541019263663581981717899403860009255619711972820253953484203284625822290052551000532685693976768279807148822231680111151140672532054777716584459397803706652773314085769106371111929220157039177401217664419136239030004398456227765833749450162673480032573726827778874578617915349679233301356073906915597567802973639147176947980600995987066373432200272696870235853736350600977624276591212261622908919108336512676924980184981587853291904901551758655372258642893391090348691650175939722352515865459557562932474409556819947356455544667762683805812344245901745639700721145542229286067477165633829004272751189935241752031152695912483062563213485992921863539701788532682951190591521690305048298700778968756858044720495264884946131443282110685824652779935496477000634780110933560559659195963104851051116828214730350616433205871500490058479844025313138725838767427331701039748287759782014998394690799027921019469221644171350536887004469364142186352596777019031590382056496997903254535326427738275527749537315801893749251540664066469740005598738669721009014787566676782122685000517345565050180229443467400209035410313965344154616656825546857068944925630478339353733583559725526508973552289753842116843958141189872071440111718292580525696034029656705787461466178774224547081149740739593010909581747998846869968924620570513457820952282645530314266343220395375106298364698933406801291487498544165183306832939870590014903430112567110050864550368959442395210220584123409432632911031419667088154801852333714590430472103767867931679679172360134869864699951000790906527069848801728689973038168211661135074559593016858738022348904458390096594215062503354399563299622702384338824434166054667125827746492877349260828511287964097980013425476791086122341877482789793521946677971149948313562745667667887223368196673407085744178650336866331999336135766663879258152665491952681057597248179070411269090538074878133236778394311960473496919555670141768105774995043091009517013305977201187632987969871755342719663217954539461264245735216335514103273832690571239631096111954689534915782222803387556471265934852059222899479884805017764284848886473490116949754175527763451235810179942993015300630700310039824634990327105276052623975104940067735511536444038800432779290358227804108987895496675039307933796544406243142085675736805302448283224679622376368536708427325936219067458918993760050752861196766997497438772114652643103797446361140063751027084490105964619770298592078513059061349979097064496525185684289342081179357796470535830012314536813245750179697741831295642650482455802253716746590856086198982274749657233615820992586296364914391769259445721660410785829387039804830734571960148681702056300188398027544432346068098002018848138490288936548948455940680412726579229661512199443665303553069123692967597009325052151131132309831841286926416485940943361390935148043931336225173837132656856562677541486893574052967475516699182643006560362323145391864312431908886641217352112481647012647698520194275015778297392979938226659958058137315553274979311839728902839960929403378328924795351317100768857080444726871713872060026423096245463046088767343794673900903391281049392851298492174024982292087130058514933988412115596754480034449996878171182316429410977566747557302248777033169141624402373141798947209235450750750692348458800909690789969788815948291581034793181426973699081164810925645406248717355116482014711462652838191609871111057380332851711204515892515596554693530708798224822739186993637418510882780738475720699387281077926893358447247969051584598380486953346636225470559052166912280330574698582061791200971432197793276832397435276247878095102758694800529212963871491902183185989900015065828260786370716001005349623986684019113537185414237956153746650422453062210703169503108639593448366887876118012357640337833136704839272825511653343882748660633970722290758116467592058733648426273489845112146076888359448108466474770392949538859844425361165606468298762246008985198049130771822641916182260378032607946629452140556660132206854483068946728328211605063724072858676642627644782903248757484598762915316602915739620793456630270569697244326744464420907370339367625759211654020213877687757574183124155244678186258149443755119933746472170959832162370082218210770673949585796492481735063826161602400225642221430341315621349280791108653151059011740086141930180213016152620346325639173964257120984225820758298789718405439699468582371297794793086607655393457653172442941577654563721376171648360574550833558072406203664082266921248027641456302812391134202091056655287602818930512573977928382310556222962648162471319705461349574624105685560932418195569855386626111847024877589745222054264912127979943500117850072043468945934248329595917224445057869778277564297219564837820600548328348617554178840640642910125459870075038678651125804061682174567378414322821025067843176391111418283071399776368319842498943580722028513940147255598131093181292961052069764624486545195863990326933706309852292321651509239284541337807563796298379520399051633695358993465176347746664096972608649857812122558821438173164027541972279066538649521343463394501905470637465359542450619381670104272931330512952851732818446770583096653831415078298080569189187440255587844519983816186484393687577244408428501660474959078065715040643968098226339698677490640631999397290184242587205104575145228628053717550220783251185498614015472815335195072526182221989528537773833937442859954002320947538237987464955826062856208203306092984035259574740704026719135128378970293514683522784305638021481075702623561916754688280949604666905310909264505398518251253130285467650069909754148113432370225065507780346624501086635208591167410788191504036278015070843813449404993357861137558873775290251760071358501762347724112669986015908008650995804928843391655607713391241253793997643209052574479286673567430664720474432011473208503290612556182589579228413436816240373585214453665430780840953605254370940599886415964765393551517324822444284144810206808330154488013454837213817253655792626041325325448637567930471041265969713977030988186540978234649171210043221948355393080145679680732519779050826096678036348782242741124492095065847431894452875103316884624274129161398468082344216467129417713526479297376222359608718512551137064164770057177825046403377299987653951606803470930790064647102211863548084994393149131671935841291302764843784500399553333783545070916124661730122742391275476997084209935142461400189187805412231130018294519795356162415901492464612848584064597115467065423882025753720042956391566824700300012156392736476014115921408956439671998834170556643110269542852648159773520710492072751375471956656231409546173323793958854720627894273335568352438378448853280903377735262533241218574483376738541155765706755460494996885047814813003088233974649295170368586968892334771294954010285254144131749072337296928363101795959371417837288290792598109663310337590060203272229143068837165940503699279477175505174286656934340951502795482053341356826534840062438832053704829848970168258724181470669644629009551702969817390172967749041214208444754000272869800855604719912666007257873880730259937969100558381090505189591998015762166770390653188483042285325488671227604023178778153214298002261601386324012854529249077573917135208803012727183836183944683697633285379353925577881389347202285101078011904609669668675925359264517795907146949770586426443283293148927701775519333235835714426980945865268599298134335883911030811173538663424172726664717365356953289742673280275756109750984364587185065793665885912618258307237021222353720047244365319125493873022251758944362045699156641177699659813697845811164292418741373154861355251147886410351823001138725611935127872929395672104976030142415427970398901816781549875523411000481477254857812817347689047656439684097498495341980065069618552648765957151229435032880805164091166694010530704420059634228784377514726895405198777592389404872685460994412731502129875080950730284514088264524109561395068619833761451792736099674873643885526207427973029717219220368886917596063792855075676210690145224241588189482154914992247869226155600979028920177539187676318775783141584118414075966268942414557584888828543258135595249829009997312069107065834953196203555685159399514050047993382457831542862347670925271500788395386309437843982789558989809638932239777736707604910498817184467243381969426757947795030557963812963831789923665115964875139468568746147600877811032546681102371255525960743764601602984397468831253776516984306174840564385045636927935557343268044315632675730181499569988090226331102413092026910133272606144923912025198243547547340126210233558695873734134309819361285250609779085826452844699942642014317755396526722919679183861165472399794967319244638553349064639293497350813746999988572160469963271659004006113540306424787044497743829000419404484918537868880821080319454673542245737083856023024490642789574871545886976924688703651564822909735160367683572886323878271245853113740080037184287541025495387515515490486257509413942376868720735195632908186663968499051804850194975472779699192736332568749049850176823209372559015269802424149972376794230783335696836910334605747609518514341090486930772420727943819176950142666469475767962142444678297610985879001360037337560231670787540239898927763998850186948015393926851133074838285856317253740336306600938977111292372927864425421025021255119445696598859656745355359602353845182772799910779453584362987978286771798078654742954592877294269174200735480962408559547225726791314373821829453516013175451869614790679878382777553255478964807906855479360402189645487682569256383300732121804929247871881050073988260481400628551123629895808367425498301748036127053860974796700334489324805955231325528815784447481575637628539443348193515804455162552782292060114440681823881732278214330093838377506649962112129524269075763114267565568373758388199887512812854249751385128638037187135575074638985021408410278997712466468259247527962703953513383814756281510725883287808977605194463786856368580661301817682814012117051198079054692165086204131814247726317521527909021808492972914938473014573908074545310539142605240822029476920618127087047842514235284475399251934695591983332300169100015755812193128207876475914285365488773354598170244943313527411041823105610078544006565086553537958650956794555221883985472024301753245446154778887986243563077123176712461727772285525962702481031926332241989242690160149210658032363144789480181166367009919221392598032899604302718910496447985388591652305879705366950468261319827404489005002452322125441368800577006552122464185004584131617951050327409750047762270189416140305020961298105081057616498300795423477216762883888874959035128636713395414603580807536656016279377411187527436416597738979121599981194272353336116048330825746080617309902227007317291313138354041455008873909577389853698409084889383653824968336061771474974133274301749278676343597363082611573150062239093835125173600303421623042305220925691346823814801285251525516898435339676123312900730502945660269772782194518863186285655627933083102119249698058321813882760855019695712280020619617259265713855219192628059815222601510094411602837082203994430102654322536517886137239420556524221721997954197258837504422205629168706301274741007679066402505061048168275813355104576048166826896747614398984887383722773684502479625622744257435105693596745662466333290915696380251732489176989255785130595607925789126263370194787162690817067229359201444746862928704269661486385186818543208673783802665822766798922668644510153939273335668936021907941989384830404933357183963922198156454155185652123486741822432243582511412090207985161752822285405047497179336646005989997452734577994508734227218690744211966578942471851095687487646335086568819688666313277913566275418980869015864752732030354955183581782890087250619462913520327565270373292261066252285797238935597438165746437256090896139285843750597592175697745627125415925446160879352216074852324602742182464461349786761880944049332270011340553053786867247051383963457484950462101286020668827089864731219140012732591933321215505342758591102390979898220079287502239272091740995070764931864294864597098585924067441445728782593654823680722297419198506732596415721162401358274724401732858871568340001647929093288208869387464623550699184528336320422207086380652813120583863254875564648473761217170714745704383267027870948134864144319661277174944422767832773807193881078210659145097009419067681636523672296218446863701346576241540804814874119932466339189042111326419998244292242278882261750346526710593804006010733534834136386119901071124075321275317885249421457295684231966437841191696348108488099003368936011917518296968698780589147008050413065608750833894553140101155038333587482226224764395250585989840283891621864647787552934309246330615855644199073433566055262955955589153507601268786272555285524769207715233068386195071860512561909118959270802570437204206548232629912515295609961745850654130632389948556102272330114473792143429349952384553756264581447544017723453994651511441653124556718093712092025827292848583434655223049953747403888105396366723842315101414599351511524201632699718731897700762538641799645904447030334452652781349550555477765657601305948337067483556256307852824925236009522800070694910008057613661197582808018919385498834634728011194808354253291327611781227948803415750701328880840830807959480019891729483381147411836232334307843448072570562566960247818800166174199261247462338952965148584445433136813945357460772193327621234444939667209517414262054931295636032741081221926479545323265925491026961528599946452318984066230689503455421346185094089388431564573648319919317526866028720383113537970091533165193308251818725914642642441632282877893462947272096121789665290114761577116813647990114841551834642764783261242275963036553830820405517937383951414171342797490625798029697939697415675273325356313337996426345690681910325442558293611002839120275120739626494873275101028043769502434646231740535179202670639794552145260584767836382401825086880099461493054354546073519524061406011816959276486898909978297611621909347510342841449120621063389525029194544455742389409125965835644017140943835239769066030791716329179252027726134267056978864425580427844840688233279964272206525093098007858568633241765815139670184089416059573149684768269436607474818174784434055664175391694667669108733416068912798938980189637226838747369191360850238910634913730827859547327709272788738325142627745197336545364722347170482014124461779120504049571307076908761743306147301598995356520919039104955962793491416903458667125029631606168017593635154098872719210777091510834820076871683201171204020724613112887261513141264639633664602792230415491245195850732280511597009118943102449211679155149300635200843543293210340772831868835702212677551689228245542850000663576153364361728575532214688396980414559459608853038674215062809452469637281387688366459581225880658738768015659268519148002402916343379324179965389570044876307047013841039091648638181167561772973217577425498632646465183963111904875700352071699819383812601016164464621201189313913395957117314884913479354336939571834993488195539362233968733317826300539233931608360558232542732561426621016068417197494006578513795887172175223174179254697412384219035042823571091119406284558261472811179951436264745903731192944681425059890493513927324313441135517460980248752227064058755227570727997533814794602657037150082368072271125784203583177523038300364577612242941484854279399715594924237464924536566981430260469395397145805219611436280167568188055289876188295844483926594409136000710884462248968607336961831887348409740019762689535413124709604819858956717952388332217277720426641063755029198492344629660235368337674439131592061516921110062295061565041963021529950560596212979445406119137587293588405387813024925597157883562962044846610103023795100788873735028630972600842262406426886191016336240384330050897224725037892044185623650514534292740846964266143829753836669446378787407029379759427019915731586114209301114253449621472096760676132574228605353459067519426679428124233988217026294126575612180322491607995264649383281676990374658741234827589643442205656696051132042269804770858694745263508226787148621018860022367098407007460213791156248568374471869722752149536124440161570359344117093634856913248803486605283897087991831878065023044903294037738940217524281742388861245768367189094511252200684078073757349560357998844989763290394624133809511002959101494777408417149869351697743959134982036913624020396246752337317946916225694616044462371866329588468329638396370374988057806970225189016624566889082668905275712078929292274829703837983078277572043836035134022932307527596048510251491325859379189525599373030739601700149065009934468665707409856990592035490900359580011193223698056621144135003346013333108405099437642567386653887719356545095041290071273606212189800491156387935421985191849032725510781431695110521104876018550904086053111774675448307643398225113117012302041072156316740066342753664291821701483195073723745364334555655143730509725652681890880089008736212456597099046551625560779148021456852402795873822743250885717851771531130152547485424518575823193071902984425345454010782924666966372257543918952782087316043688934512392969674804930745065258247727536801671448900471093612373654536583802280340798702940529933412509291721767375152503579684370807662774937250709690386458166673602710424591580679211245889417961374118202684584896087471900457723658553828382304279665957620906908868538069318715467964065403319293899758942056968776560312427981736702226804471097574990055327530649944812983666478675253033906802802848288681877894363386876592339384023290898678872897028461845483938338589245674031301811459637931628270950166444636504762488593208177566009410343638108004243375939301694140107971840070464774875518649545490253800671220335880665014410638453383944832797610137659825819972488111855030535176685621187159464829333056980920236353537077289827425369389872334911370566270113137447559176417264365379654588929323707097937610047573280907364405169910682636323084897335072934942548428146425637587998513590928012471743847577421392591867979835846726378597473979651296111141498515821469846408251698302718849197971643734782432205623182841989905177109028532170471047915196542058632262990193316322709306602305847350630750729496324753214890461546980083764775561002822843850742456709367367622635190679711268006700317151055147286161354621022083718445320535216981882110653496196367816312164490893151079292504076739836439706935935508971344691418323084508432065395021795241903259832772610938096746040494500754348426980354949108368741423088773669521790417393500503214653402290685192678581694882851048775642054738283094569498585932068354296460504757848611623195115648877033703378582211482408658994927653014256184580027031075026499703955207477418693566867801656449661884755756901483145073778220351646494627606582650357048798751521062035923990207079171811564233820627906268468789516455039688018244531062533110306738534534660006874051104052163757802504061772659070359271681575166036012410748665372021064263213547929994166879118872078022481450910034115280260487512480781243853922779456760271439718117311372577846670744876308199154856715644444978178045469151638482862530892057575437822388929277815474225178080114582241035494536614751647389474762259662967687402124523087850918367495928128962827678541629127935485596060366359659231662258952614388738809272615354607167537710479648097054314672643272627048387632299430630519124122860508447763408759265843469000352386422164070881479218580781507500476335697979545683161690522122810471131405043041043568626563254178061875388063228011041636661695075436845100406122349156011219883890787360831603710906199162737354052640561694853140804817758657633840214219177093836993156558786852278027512010892835141683812207577718509326641691988581748025375829995222659051742111194526065327544323870734319571586895250438406847293395111479434333110093649115609883755943594675430792465054584582515916718492551650155645748439377536610800236374216785985779978268927515701581774431269406701041438385516846423163545396504376037601626614058883394474196234554034363183812827982013799455701964090329975397254830553146598167239220481970253655836323910693867034542661527610058489920707555278683491404256197474388128979308871718105368730486088196419940610705216559246033441141178995962870783191587421931823589903404751503652803821545365475733684318418260505904434465392948947817548914846298832512234062469770513893989589793941345444004707381647768459951737874942223548495665190722267765203113104673992349786556463986063822214655729793085082665310222944473322687989172419666536979916803009315461188224007790472244013496517426112972708139004479091022402410709046748873027996022533844332216255102228644747779787755861592873357159769906044714671400901467333181481746621958674528830798336470683690784742060213152004779070934325873046822106708744145099124555981110163021847615856925300957823185160593506385244803888386040005476556597116119166841153960285136634157695690211148565814332027946830034609304973577872364140247265704403184939347729650805530644056952765030445841976962325268483159171727967001082517022135371830849083401162167555006801512876226500063068168764095956090721874486732654641756009416742136902899870207658610744835316651179367117606627372670770378877354821581238214451810719097504532545169512977804680820909511034668515850396115173986318706696372373359688959375075417592761196049764875920905124364784908549295609820430176337482534522067975258328892620694473467660614482278444768230720606474013619919915984961344082611987515355576759485166307873401297463139059302411686761585216956680564794878951386851246036046718096493081584810251789763687240129519617140917471476489697420912776133803187877665922588329822259483258287369021380209309400289051655634222807075248986779161261130500454800494059967590312768342309839993547237109196896872539269174510386373331038874618304674048688964965949042729171125409697979610760683145345518900084421211358379893750043467226199643238590618879631397104402143923985050958741681643477677760171853251174340777822411477164142496453230275118799330561187151011609519098067694517572485136887287948943401975236284894781279493523708951388407290114601399071428914187253552518046501688761573084940417358902325276202253920608364757776586283979544062282113172270989933844925986482898303343795890745819567304527523139773854501345634310414887836114041507511724510705883648125174478328413176842174160972243798514624915971332810784021172782796411172479602372269927338611126805258036019263478077452880794622079829326279867092914060130520606740718854666987215219202881617278666393883878092294145328675113479093601130277185930129763182259950894083054614364854348891416289114997084253694999685800368888218105757010476718744953162212957118156376492547965601108019612265548430864122355467292264227679594234527020545979773555164286948040123395680470960546017447186179612726548030453448001484092440923658355937565826180582706676931506782930012286962191994751109016608561207455244603196600495996527271275644563581461444583954120846707968673037798723706753871611417163697672080598690485365340946763609926023941325815819489675755881555307172342474474745816270306067103547957986680559804978131483228461178270872397494841197654629729689375426985038187459015018736527061591925262678713606635615924515190924517812655697970321797712168806199028535859481553174611680988292233779195723188623339269289786585287512746994494269033741702996327012603385473661325526793941996276499609240179385785389555034080975036092051954476019926776755420775965905548328209638528490395837047994677076570849539154732654026253563774834149040318360841154477841894077721449825510498222378494536901911280489503554803673145717691346948700172783069545152764524369863120721998696097101392364554110280561079155251842819599156116590904470522658144801426938672353536451877502055103272203820010625231891468332957910191553244180604622158182125063477138030931336338641557705280238676160130229273981343810557237622064171961784232845309143505707655972430449960925667704739729663925989985692411127679546955536370368439622069934725287436110548406649176005595227468729401387287918358649270325922430833180084433020249612152008265624867323299000344769137464954989070660922861606656953827292134268165164081075960076386713643168691791811547457741422676558204196959636889310902004789637658701155350963644686375996354664890256432193490814270667042119480645403202405244560302775821349589342164858563945172148639465302744399366348364595910703537986330690824388539424688987911427431423902005424864054674001845156480749155200821684601467632662277923794633432481283848564951076459953081365885765217621228908084669661803440470614836214915715833326976376089187357524169244121525193158591954879693684666246059177491261931711986696123528524190286735920738301731259533015757072817872254931472477425179365119920537278938599849926156301806273302151083888487127845353028285911587883981881338328026974617370734977746615463059504051635225637571023512568020813005955781474349651551058528901445025929711121251892471803421921818412044450719247505753539052110467662568761655834199720321933737615538780559203643472485298147541764493057207785740853737968077312368119640220509137587261006574978934238722659468930252601247166022704656788937233239341822312507298979611523929215340960199136765462131716789870349112261853118957350223456257132667585785093774098097360413201869939514229102440605545408447578671004739157070356709043568276645486971604039350319050780232527315477609675648839434497926254344891913230483509820345921242834373887135128327307646296533106686016968529255211549881192315472998560250427244303284638331323266310513454672427142843502158841523890364748447209982099573659966867358801455705378265174185447327594934960199367472673585255411367172097586570806068026999214806379279414078309321672449460495986307962472324143393967747718458430917375196994492203112293168369038275493673369964804989204273959645664845991808571449601428595261259618859069969488535002091392299480553649338600897424708790111083692073633558104451660131909136052761692275533243955420253920515238223344363741440197300558631293982826912773336301688690189099453118187324882148760653029752304532807217206092064782193218296116835229736841894805194892304938063808977399443764361797896098447385568464619586549200044891855792874740105715615087997133269815437885958665401210998240352719818737760595068774838315163730744935354696932248034588714110869379219766275621279520520331632742405297728511375929591597775572553206656704217798924720017653735046293174276462582433863602324056007543342741265720160928885144432651270236457372897722122097897250811389937044196761349755877654486833080839629867801418351626799806965242150310350417281714302673339070828757473355082177950850461525726003569142630498100522033080287102224496554433214742163464040344782288052016411985870415946556176626482215602271605272816597175484859118972591310229860095169088754015396140501615613656318642674287212663576050153809121863494498591388745054304307749455425719191364510118287758523013605529337560770609105235706629724593542256003238186135489271569364023257956209204085589536773232635557746570473717224469228556663582932508339717756377988778239124395682787183087429886417971831775649130143615137278590974098236517950583551817752273088188685498917424746432876081724945750969952408535344216323964199965416886133724901264177837600263334242177907265567656736000857392896974932863297033210836095127730815012100013882203948425610496531220517510805828289279899225781957599080440552047359767253717288873330811798356874800650453809330017375356862799438553099001165583626871114338454128365470452779820471610752900796033321106592633675971162593592032317214560674093016661282904330150245341037986528413180382829329463743912567350781334793751325948799032103906058360884646921901459480289964715634360605832070264596062345790828820156475259779408490810707390139751606113734984477538673864375350918168346408514191272810671535527421786539553622621786643382639268745889404292511897788771756485234504840394355221784010386838640024865661232765059911969693448759823373452667713749680802603565469573616482029529313317269641439931272669942618770878734308635726207511707125664538549269761211905805423712830238699114057243209445573364342128688723020231915029890723558395939317153755153691256270527783665266664038505290312915561852154046435305884772378991937785013580954476625449717729723582204259271943049157892862052250307904853382552328218004257591386607161543251250441027825244260889306219020366066061201879342917107642146615897977736857433891233118880808100814062474008562852198956569415044452677833917079375693593389040999058747365278459717107697914419054788505789626418353386818462606230438823799664788552712916833498273038576682510360313888054820940794300047675367829454423195303093869609445210253454700821085795444405830043076306655234985525213017063331069436965989510030344041764876825948463343843143709012411401311851345538384991937142920787183151322596770097989133815216517490373492183585603791631475824110105959710314288133926984326081751948183348374964381149244223302595927836849607931014370354507826652082378563229152331003861522906850298363012348493214943495524348234547300793019516285478563750453331200961333953725653915471664263131478510891220863064134123048942146111821555020812369280505177999291986123737619069626914566095172153085599427333460028781666234417292826796991502232191219548447805190474982178955694363828087714766160619867807507176633281776316033985796103522319399659657372162264742729590686163194685628377896437524519349311844493423898795542860706189020050718391316152113636376865378601062331228819770233552061290959693108253095181338868979849587235584273091048586943335754256406841176335275593330944908766399313844523616606400197493042769582401227859812634284985620794859806391768184028318265638951031385720002191542733985656136362449891305888401372777401929410745290116046581389019326706013494614700555918455163478916584229355444804175563637373894378420079855784473592426064222191741792852668981797214440571651353502153107697275219975865597336136135756484973297430079625353178754676481650323981897552762577440975561922424970657952523197312503551791723290101094049577447249900986396725095958873325730552856575154472185813515682196371039081501205733589602943795659907759889876786569436220734965332417339277837070449700599669988957038084521555264782829190150561957555196682439150226700128529070634662778131733865107149939588089830766577740608641452394795353357364350372647148923146710148001765843385029792745159768123639436019963849035859147598326148241138687550688199168047842956480551923582130664880116945481232395816503687656291770029405040509147127408571428527348633283948778572749475576001303314479537032922686348720392260916804882614573423988707998012210803842903069420922283718761657207143037172440681746296459551872371783791286868193766416514522293701900485439209678726924209817355782118501182188097139909657215291298054865515704699717009743379967204690955880711789743498992297844707699866068472673003233584134916480643105318230453571310043309843617028667102469936482977234823435701693364861783973477270516934984905081677871215451156346456992621903163201046566375451872320755013843786319704408947170995884471643325602733543906042211351795397343681647319797365596770945373567131593987967404639771662614752317280023612108857291075242303870329225393553938063721083872945971828135147856346542412061804783189647036614994838352347771157622748334721110302593867271727175548495208726239722421488574584036462468027358168288477823957171345494952035455765611801862021180672197277029350280620687468913078493940454563271010489276422981933803055814140422487871339301375844040925700360602118984219102911567486235692641181503163424745852846178565067325046500195523548368331002286581484007034715019461135093995215293801686704041195719032635692176391137361346358097438000408060836469307313893159018047189473576173387701835932415431328632099300629653483484307074351386776211400791176716441861587900163399731445769109269622493611275648564075297648685289553773577336619364612842038289951670023613945066694579688382549056048556146340507132093163917273286049658418043144768703848885821241602581098400949836266009963493378592260290910650996204262029622632031156208728349599995553057928241830931084379568107500178976528559191596890183025868772008665956969885965846221327205284270446619070839708414334794407768693824783847563440561656736450661171235578724727734111068999570451999047812914519056242527872682451284942034479257238913948390810508457957418628664062316668619103008954767286445021280258432403296854226011423156370984474001275502559343803226662072669529027521034055424668670493148883222013006678026570777488293401985724593852386253819240823905897080054869797246362319936639820998083005782166127367239184025766599306376358095601074475461301118886277826410676488605098425125513790399978698986701798252223432265551742741302503583585861923565321080641707022688557944225527442790449918554906094000081584352052434821218980855978897864839446638532842027493191344474673302568135699406842766608922113242042866390122715331932144100934979115037954335476082783337139595526583021642723965554777193575014809725602131258933583078807723789878085868198504570388396657770504593263281479215868083351339878700428418217228571847058897837887544616198882956374929780288955188965098836486781902326064991502916893935459104684320284219212336615062208934998864855673586574570847413684250287122060129987308041514778267329621857321501603504753933978967983584707354012688709699081691083076409039981202018885100806348108489497368773375254373495694865110588900658090532540532660228327283265554239232118970402583992556190699555230605217490451710397299333942485690215180528035375083318645020384308936318093546421061102365061182901029459042135162443752519225955510059563699761927456087532371358913900608276014219725504965375817340874126346045769683309109316357480012261233051457594063972623049427115435137908112970452751924081248766652434668522536135897521352841678161763645184055938463894218186308499821056945473375114899514350930941411811578236479576135737205707282852882505243262505492171555076369137621768216071416485443211832561674175197263683735883564653148466707044638654129525841272752307176862388200801650266422384211439600389319114674330229968004614555962850270425577819841365996751287293490272886268335367671891215491780791361081380293142415784882052038285420752917438929132759243355637682144190622268804657847120215719670401787535005298877220678573424652056478973903011726859450113941785973675297557142753172593218588222718732210096602102714000799013009747695010831908748162967910386211034279067169907817747295616919410605474174370110753063943325146726179052907121988430794799886583577498946150137433202190578144949238922338275430209960028534484180859494546753655719530661096635503470917798615701089058263956402704080098451254249586368572176248698459331922992433611655528288659163195602348619198092157578693711005729071808393532952910938862166931250819167619685248092000758366822696170633249953925441542755888616999899057466222065545518952311226103928693439790306742351244484351124711832175731544772902657664375742474032283634460264953674467221030557846319332042710220281302432198779882712325356945943708457092784759211157364390476692388794227474192976473260509184156278597072693353980552899654256376409515961204407957473857587194080864863606058575263753338958673849992043428486417819993340196090737882329078584597956394624144635607042346316544744059964657769357310472748269712032204326990116371200358257263861883826689130067738206258832257815608205319551725220325711697099179678439017597162202433530940222028769797382379879424496278994603210435143373710716639656739250460707948820569945319166962654003702946890690221180404009489231640357776573515452082322987192552957710487948281669018888554863041835482366487664197816757423293506646268675055624824527278582807348114147981861967721076094617419591778050259527357374363442118187729222264312349408177845455286097473597730012687343021743196366645022092053133598031023744512194864722654403617829051943513076286875383029589853322786181817904595829736791663989143632036163551377865451781021369604457854596552205264958064363472044332404946705720975907775925058496140950905566227344699340137219585023507726474688525555260720220241162345826479625720537566605290334049767072352570447028054968675575977649442603364954056565872021794805426436275038912090056618847726199180932353188928881587624344291763823589456797938669638806875866068020165878892296812830850350352160565382397323084008740208590432617233482199215349342643080363319673343961799801843771636190595883694039555985922679653838305876026963043995550999484154737557329209980862711596313867282483077049506611654587351164457903580186405959703303509800864408185420554779463532532234414427299753757609193897931688054888310907437205340203884500370875597948059261673650138288233576658617580150162982185124659401494594129289618481264071167789736663737476242261319067021734948339405573172502081370461224297388356489621298641816999349204379933517795065891664696426722372159545152260857946821390594376772978917434263826896028339256222412799924589727174286629633407310836543971610418746873397355917160805114328986557532918102787051930548718343269764969494101432445720776554079139784244279976780298791741835577629017398207570853778796523516188310099883154359484188188733570334337129624313086387273063770816020455956994743777786783505760370882888383116578182995463069995269074160570188359503699700023844758526448557816898638491077745588972922588258706726777246455569439856604184727559469730241119829058300701903537184961043276512463724353783028089069075637638951732873844963453409950094235474507304182973972356283742408785948434558543771046829867498965932645143633985865109385592762009883853343025652984349360396872316279148469094400199185814225054076178152469587484290691051012056725507379813056353382815261046829623807417944694511182599150266722051832017839573133563594106519316091319246503752478234467468376277449203930047949648786799523989831616683224322296208006376624435459080310934272054077303636675663276320840467889420111063331914542297005067458533366254059342478986965440803315220164069869731996225378752723895448541331318397732258515960670059266408508660733617220829169567452270646884853536959600716634057158020881050065439445464329876157186995572107513118300872454197058843772003964693911358964307907830179277469008976799816318857572911549326052563930355403884565554646247737326859320475087889673573678543089698076625468929213561688004483137500350108301373199954844805495172883836581751821280379845314211329070022160941698007733593137528706110527517686676518094227458931851351344411972487635126106084072175499413785288101525790326811851223175515710526880798288719620042681439787124207284438459677296478677808234442741136583733099252371532321303358550718469842864817641214402199870239637568920122897642941730298100306656064324816150210650112049720951597701949418462906290935722171982417556784683093047467382555246358881379822233185831799398020894564492684230001123025198269397706535062365376193181127308375563689894290182678752523073199143210648335205474915173123961142439771996650171008098979270169208658559869904537889362621962307507488048073072666310877843367138912564623975478534767633130496359231291663926425950658736083785929237813085001164257932856722822621008949209273013741591188710769949390643308610364132289512732492246700808801247309732848648041298374203375513304351021471458996171026331514919837186563044617084407802845990388706919438387756571837400900631193727595690462622334175784443555381435326804889182861419598955729242987069301177016138633189234594109694838640665559681134028111440494528547002101062534258544374177234486867796733476325694193917612447663343802489595702726475940582987389519714641208598799383531730244086095187183549119708827307046302273112869824017724571447086321741845211751563662287448101519325572573761549430857797343048370476005578753598411490447485570007545184505661477912193440968909207910924337152705092811937154116780207591202964106990318180966000965762106815365905017802917130179090236727157338644549880248678560201933647797188249864537702698728662837274312775436257196463072248574052551728905887285717744389487510300971343636429424826606017765466159156194888753644416748095034846659573719689454305921467844680485622256461734362260449898281707367214260240016324077634753326346334468202609028379394720566274101060560238272190334314367564457846344396128981642440819542710996742400656560270948307633503258177141177284183985601819284078957864141140818563148573198943748892829718955669658161969896072899855280318012424786236713545446298665203295905538823902076700396345293942012916263836580804793488532781709522025622691760785819525709152142109158808426282783329848887775673093131148884293411366481069225598169054228902679290270391638909448107253828385389591916824240470750146988221298631803391486678855867650335395669827988096784684800231241151802573937249058612458141461533933633764168882465671421717951017543625989291475575007073780043382667036734662165259163083816486991933923969904650901744321700099193923450899710378597358843670338598659402623501351772151977485508427726391408875063902437186744742455052792539851253348868566908255236160237943002002839959539199958585463586225466252302519916172781493847254373110533327248761400227500762614339269616707314584368848418533471152792330279444087763532192613024288533240914075612141418960837096180627191081546133692078924971941595993319555715851258439286860562299740106616760221905491937968765209861045147195399609883389972960430710993704712214384021350980549416452486654410408600635201860307582375810495149863908888260557510596110898494188154844689083834205479199796538408224283383850310736571638250391531309003458892012755057525256965733306919441123711219357628900566208729352618223611776340642083250315136634738772707650199742589959687286312185404583495067453481463428533768736796957808412514152869309702724973223958767026129503601807038873810807759358838815693336726929860568560296404549520245054074398158187225752154976506378184828750098129394109971129844475282961124519301219173899031453864846230417461986053914877978792247702536616082342375259806221348648903683237600265772813601315573838546194027080973840108015677864525241722619953577892409878618939470771711432298097648602501623258715389725693373186816537976640018318315905343971810084188153331404613050352671117728618493436184081620006071258499019156004579370388166699035997266187966921944115642473806555409385285901429932595713379018036675102763393161888650144042282425309357750253206849041539901503168650252426370498570051243838264383103994666751618796800143980097548093023619521707051746491038437851281113007329308038900568543129721590163375334776951793846487788431357380326099195699523654394937056983938064361940082420578180447571864507527102463035854171805007206615909787911968341187491795379004549038322621383894357320482808310788024730756337625259054773701835883260768733862509939221191400592392790155882636947696173168813853195697902423203593083372285986660318573770008056826775903625605380538896995129123011986480107053360238711635297995008625048288438664113938909206411805449911560687993879405495514738334540620252556956932289370503476188092251048491847403046450775482853725708915636821674402945424749855298413343860695213318521863412722724472077509922196294248728668492352312679014213734381831197844836030235737269641549421481033664804730079228225390731533024634759696076476613043918824565108659236309241236219035309224281676861866465535659500640604478963397965476412059860221170906706231596506609326294819398901733630447924772350427304657757666001207030826029789867768366178688420737775698434038547817815362122178827808697663218281584397613165200468312148959880880477341603710113070636591100130579500976747144984841353805094954681391994276031655961117182734863023270893362166028866849384296013393741194072246772462205249403665772882127701556208823854089906036151833424627788761512810971475371364818657362227819460397156394828761962921068562186776413353209967415326871466267287529586799933822650585904540958616154604915127191086214460757811468759698699951517477929049108659686022047766142074933070084118029418588406959655809144148187095035142598375053288105075737533230950892016044523132169089461873139031619081451324904846140596484463913542050318315997129525777216389273849173863146814155983913779801451505580223051497265127005763225485104367438726492089868794713829687613110772349431926565124223788534144190160501835054831340116675515083317350344302470360944257201111324687135060491748674064800037211633959388263866422248874868958104113780990135191814618397212108779335136750681430957574006756315041007261754491035728057080351790235741613290628000393349945809235203865609328146551175215111692310963992014751250755858349997495824133971413176810863650723654652886343877776564415005785079091264490170574183674463204658226721520435785362033821249505211369413845780871888869852412738484348050860240327126098769275392466772605064204549533567569647736323766907763903033765462187800520887005456904298679138254402416144969678126072207809995898849140206581774054055056948094972483750207094529256562016668873253843047932693660740111982976248542815556304394014389719346946235469832887196243286808682268669308177879443412476855742613670165293974683026769185684068948691255994811608556813578873128159064917940497442920395850532166170210473343012781818423264821522365130092194416369006058316554622581336396336661822751819481369735742111812755667487897441672480309249221504867974112599319539352663964166871980692261197663843834162686201345488345973520836193201694245373219618644145475425888856878948708965991838599544087692462352136154859994379992290353976112773497448293425480977185337601340127904325905227261403918842422618762115847316613037855627650705095552212215847805144419624433898633897648467522748190282228445030346301696864869752746346919606738388636003646974727698902020910375843877567783366772623595036368287342767740837899884380307423126265307850475592163543910009305890751325396981479543671163559433412063145751055581877148294053154530553592863234740070096064901360007610002577593278412302720239679842025554755412992580308491808177847099224145254764833586230830997687047784317365157508972293411649378679944917972989258104576230355588056424662138199392400669566888786463218497036051902822190749991441814951104935547143951132736366546801767725346489179521269758841629129905446329179749438920297550899367632146246017935335659396935024744956780573874174971128104054181458851370478218324246099685436044908031950402230348690128898044027393767204671548373932364800427120246644260564562723412590371099135341802013857302266016861509541040086234623432449447831309747301154096608754195387325573651625634496726054696001850092057937191153375372363533153072623931022270004889315353024892085963555478766134965996528799626184372000849640675504267681204937179472333382224877706380265497826510380082123269232901304419047881613805878323905715185913033811059846081115988659442663890466795310745363271281101718258386090874017487848088468629841685229920679832398084169272862820528351493229212942066022528181717809514609404631073680802664117057645578628296112173896564019680057584820913862688197982795751269535116042888463688606761917502068130037309533902329570179649596711047480061619863687627818600308655682466823689918430656199410859442900339784082786784815386565659362096964952303796376897460446962895585839894638125497483257070956854476363605508360919369967667263599160694501136360881186516824056527632466609603198331017904774391733737680864185785611966397234746442278682623660712596798878489533220967617406792668424153910592639745157612948130529315775697571353963974580881612003820424292379746913973999291571534544605080044162155410646540774725537262373802838719589670644793325266387320740712486437766900877491329453145203517407608657663012346730606361726191474298673352610391050394899897821372513314376561130015399003142791421215445305852466894204385232649091802056221460675266303068826341536122162776169681413838876958221973635666115256149230628179869012211444338054170124397777356423792373019606747681645573226218640111373410804518473889306286302585324527625780744616939917210875161646546988805361812789950893735224386534259740235715343424128128239941932851613908567652281781879230224082668285239842933756471247723281763841391946051519874962498538776628521470490072272272466440781657615540318839300964208923034994544182815912184817543338514357622686764884349360946251953393558111476317243901487573249810587974172786953976535413327780635346089148618999323394760834914283043637954056945938527051079738956962878283478822838281888475230674134294627636555847750668783542074433839592390681801776492183669298779541632904075322677145225007946485935565163032826034984332636138722417586107601134152020582151778154307289946884986297204546622256148666427946596610686506413546043633564960044467271328599063579686916978873125679597927081725792183631573864076335743873835450309766670757538764883994097139505493472334990500374888831422746999959806333840603387512559440096853256563613592479481031400394824370681583592860407884736350643864394845250022688699260012678914473912733382270994674512116239783181177893564106936614906942211070349060111901361043072762613977337796634036058181500391717633805216126790248634982214628843849464339000157490832169942799342643766493689203840821733963314732744847568049682659697668098542887969937956354682819526259731413547226354863683127942834947090458353210790325256320464802683700339736761054534807968534901881822415305173439361063549816396657772804555468766579848726950256324195140854806469943699831032476209394305377309309225007573347855424809405626309473160665416309682971405633131978199500254221679850878760736905450571806359607486569210667909668589586832628465967818088269516000651762077947589483819141455088989976553150984329180415694210342434832237319838711944258696676830730542566467128106904300279542096363867124550712051882321742588235150162460938213606863999961848715675295147902054455625893623738851362497616875261726246905970939056244395431106368282029017193476530231828587954401777493520703325304675762735143728807079298276103856637608400638488321787032359683210036713013184246117528363718603017027936509256467841613604229318406191880823740043087607955196544129842853900180508697115812763271432911484430942262261304420346247515061438005461195056235831733230940387105387417689272022475104760409823334559757671373665822138740871881490784704812293070146218796536376686660731387732728238778091643439746339707945505123413115234153564344315380134782773057460489585175994755373722378467388693729426473095339397494094774829096525878957691788254818887215194141531341395118676304422624217313563782296966028854557818824285211618431066628242943856221294475232971911295744580581916348559697929389083783106983894970781058443928556365078128822263925986571497866600718911069381231080001793004756090156954356185363971496875973738406703434518191550148242018491958662476069461605981251834310484923703277218704060803718195668760053018976187283873116726763843701928061530235959244133178396242500398583595798870108073469068287036702510826452556391450818087531704536303403191556174258161606797974781290052405401225349553175118447659620725881220493059613266129106832075844820635092624221136286248969240942627115201998952522531660274584530855729830336305400684498096480810618753376825131641646732310965936447057599017781175436365169928994826566801579350998870758754182986665760069190514012367890483830512579233211592062295785119670086549689539885030690695764759616342476688591870843443254897532035544738204186588413729053574295376826535608610858559646732486744771325828499839478825165322979249654257283819357045427770485637272304007335278439591451020547756596028722339171000906258727223843792879479129723784677881886367742932001917448756982318827230382487696923584717718653988021016425473620417861578037881394837214843381677091890220418075453539737089264484715655498350063847568652015784109866974828025666583306759034251000311422707451394624072052991030006454068596832803004866952168082660730303206147825063451538595805360526393584521913549647677710708264134558373622429429400644831768220232662369521256675817639143303635220258956271645788203421249440607364767481464299826240331260508578508322169790054951010304878659422723578658680645235175377486936090820313139179705078889801190716308675697040420311796642498300155882479097599628989855456666524891446837497510671640917751104894604121198085550729070943510218604013186293832136073101884392425614308505082455290449645180270833157154710231936889925357552062589916269187308795425287243706040906018857639604206994177761807152957269796369596639829276784954284588503924330958001959686550657217958878179665560587692785894942842029885994259803960861228718831983258032248012561343616980798790970202827869758896419157219998687639449185141123467784109369189506219676037616209315632087006214020889418615711984292519410416416808359048612362020738506538645741659491762932629424561630740080926300798656002932362449360979590502972127493380464769640422150127169822520223771345714444724023414599721496009023862054963219409874065228872345507606092794072223236219731817545092310190426444857002970945750241412571600192784019512872396809839680536912632673919390649898110008853317207325998619502979361447419125459357989715114456276935094301626969992795882901813319281555170157606251863117014912403201632945510637224035393999847920197280036252073205351957803428601702724166739972847225213895503906164614703071243714542345291262791565113542915561690765807673856149727097328187700907116988410010178184126929558639837817131529140466308804488744579791955730873529701417920211896673026938464144037842472482780807087695620387347730400377312341506334073219135588716499176511622955772383385283904037184639042696107415219543701215477814906555425773216407497403688955150911436454697279295855542674805342862711042535377805529027955944294662825395092224143228400550591545861275534722452754267369396584541697517507007554945244513188061125064397569702900111619511837572476602400960922959458672568621383128216435955432466074372398300563948710860138264671112117601107745835574704533212988255385227130846570971386190008750345899692933259773328810126455976139309211988348455942153279726947033968831780601890688738921584742222952157098302187368026842784363414155009062832646879281758811201632825317210933366970056356674911516690211984002637715521208463174878836990386002996128354666901438949795100397164995624432987663035788361227330591619924075114273163310918521209457337915667928512530325937679011577876813685144685397084662175407445981061451274177873744690486240660163506788161853266290842562520268054473185259156472459550971675142965063385226399436497428278813217264448478436396376063856283434679555047076259166527750222774840586793867120721974124600399592422137804528783879921669037942631405143025725330732577638189095552078633469332788149072414766896599533051855641056637448256187849895260525780773077703033318518615915606400058956550685640180103441032244993675497189257218286521671889285836166614585806283383886184601778953028655541836174404884620607739478450383715521137710928201233780009281056659518054224196279835331277520225274068363384102577798652759626159510172943551892876174443754274032901417487310634365589648500078910333931501178342837022328467081189958687994437147780724412562797115740705497559300847947704388599270117257840128709836972104697138614991421732790493864468255770854784088114890775494496803932568576036299711370129868827282259174971295455378145509932163095898922197545212461613927925357590614537700575556238858161268578928649046361535276067145976112145207615083251329384932814752848436473551213501942807964475821903896260295962784012198571992298973497024800794839492702539986077961618397154529438285520531261457951483444346835453565693772402752201231650391456233318401870446592866163495860154228198896170904181503103989579641096457525489060442164912125280327433832622898019713882960633141329700507853603568310181314741987622989299352907295577360917110740644466673931535370069854450959589624368599067969310983951580638589751246756928397227008707557816082637135710141620527187025581843139113217265840790175705587944476979055815716928685966865641038970804849938576475906515526969260373008701250026915803498505012963943264342465432627070746095126858814712801304944984291587509620372728984859396498329280968670665920307199459506755503076323211568755442053552875743149173159184184722949561044254023177345205057815063382905998133985407178537397015569061156513367692588566672762525357298269904876679690210038474359003030387652269867935010317223025994297602823416183230918890861199115056415942829662793240267134552050296770372047882252617911649377179193101540800247589482472784740462793755129106097452266118461653696785781568739854443524271200060279726903441964388691418496839785176830282412871964841507993872932338781143204497894655662149680747468678646378382111885431773973151124922389120161588941913872007212377850352317853167080760529697875158911580895167176776942115691386094156088169356373995579388759459621717398587873621848386328922228708781636584092371117702125907883463881007010301571811570385955840365491261117203092852516483684389698971031223192981906452881602302303842117115550743423345802015518173774248839450819815917175753551555053195602234475561302541820402305310517878939727832670553737803705989307328292780072481251525272338222994469670481435784123176294511079020307636037855264832985079383986616595544130368727373984321670049900187416421970779115492698234576710327935886683083025650937275704963735027440056444778004497542663949781248961216209086279080343416439554663181097991303031285116830639351299926041586431253762039061572191800300087461316150191024145729414231346234129343068515852148275392645048145428091140476352597128035277200693112301716345954410784163919608929529541320537099930538894775193639307061358616187912782035772260319387420289749581982310988616048004531770501680236511922925972522652494155771694011161104359582490199968367885457079116149153065649727087036550218258301979165436400772788932156082749725121560430011048731947622520375183829883385329607315402477798263866944795710090444205423803109554698667190724342699536956612645234047398988059150878591522692565700767968838254191235627877546299106754538509571019671432438572720659372279892567906903347155977391675457142212386464653921093445728748318513879860491601233079846207231059566871054439025624720663995178720667371293221027819769451981245904058485956372862295967753127609973294525674162614052299211963501161318817977465573690649378514902131613048007690101761960587487972202232410075056475207353303909646751636060363642746252659941844872419386007771707084579020736294269328430841992637622780231512739360353594287963809595364803678958408481139317648215856755366359181411486526157724500281443409486732013046968590629800384427387309476049176311790250053660755537982542061288585348355044735940962437825871192369225899549218165570140204396634990511103295803794700317535508548201668928792588934686066976824061214146946192819298849066365313836539442493793315623531985492047932105598764001527415066219819270051475461477373266233306359969976936434064934264774001280147380478202525611119452392763079608132126452464206806058631063227229152267030494554105935377548650235417055902335218185470435129712282238477902682044101882894020262615222575883026733239268387226456228325614695481141994204344181752708088542538854011144497657976266313934045736576199360200378265527929166358793860146017211438549832614581137260458884105940178569814038083394984193122046402771063918004282419281818981996291864731689079275386184492445963790592471944866940151386294247438012159908720628837243869549753564103542836376808385821551505462501055460322443614125403734640602596128663300100378013009623113523184461385053541927063770162775930143886989869747668914717176599003900634161999241721251116178353986622385854011116158335840166901902638772021208932015751402067273117551010472696275235591376751590588628378427492453496974377355262257006961809208098048321693919060546032105227681264370643343684933878596548356562293299113160371730240333123194353455262905014231321249051654224060315375146465162771367683652458902151479904996565951830050514177459282116119349977208016971907884261745153512953909439437438449163400558311886799970021247808846507776620871181771120762375482266357390450723183985859592928911975541284776451213927054418497862298163880628580881338024256331031401601923163239275848383410778053036534844516484725432572095809805919701699992149049422810371493450141260213692607926235879129340975454090609379553445765954490398100575601283080565110434519234656616662790399469234661492660499416226681514367639279733790908222162095750455868673671639160033896285969488200128219021010398641332062082804110824102565908729968134074107950265032151571112775726324023645201140659486178119421259091654105829182836796290062363039593562074452217581072909107177567747406960721044621870971461291305154806197909180070442460710449472815921288527353412057881044510929858795348280347732460307281913687803382682946417089927481484848565167898784247164652740058277920614602852759744084823806311737014089381341791788043633748251169082160598246807403341818298264488307246926286201359957668992058500358258170083049420037052727420432297778261865862847219023989946163625814146897669863100923543579901907223473906181349893424525851549866253525976651290969787843018778516278363539254197740598522776484909895759151077330789089468650652788320704889140933020527664420535579102144398644635016542915996539378933630954387449396516880708664884953632044026598961095219854033077188199855040339621817088659295000190546534056130659357976859384577626572916389503385555843488014583401158448762081271211255412829674125907234694330263045785821090436081887739595220814823956248045625804974887461678795284352789669175351435797276926882593675046382605618240428971004461979944270051342586658239053288803087568504123238949175799820958017039912363603519538723140524702321013048386223707353695810896946919168566793790844672042719036442775660767905050191097935038339404073519768380794185014045109294321196819264029567261321995073595715871698184336867768789964785330753662930642869898727001993194236959734185807843157345795199329700359018629893714584102311519147878849038243543154413399447633529364933380620630604398076085242976349789144162704304081247737529416790337353899094313813945442565186615364854927319832971224020052143519147485279078600331450360703831668134244521002732028113083308873917622029800140883561896733849819319045844361171688894222063806433188378016943853142929308256022398034032695153579582402099941019280394779519076159960710809030328335255540327452627474534175135528783734182121823355148075524311754155899364800071640074132234858009428799819530818862264090034887362446299961519154609053257692068481832735413284351724552556973846135355352858627605539817502493689973841852013413823105002231036466657281844122852065504764549398561120327784093425021953701078503010196176951065298746307020742443333188662922082548482352448817754124699792865271034215667406020842949604350774579659469267249092811313609762177896633681833790632520606262266958535479684694499875577597806215361679874973910347157299485824320374286285796990091571485300639564069643380478132244609151833462847615374945437251469425631728516052884948036357476995166645918804467335526742148260630389112115543415820703978166199119548629050346275202991406662801644217066456533796992721581108580504159529873315379869403143444427331718155702316835926227819820850635996336819573705868231042390166672317960949729116291814406817125824569658370295015330507398618351606004726627281882259834750769906273767590474500172309334005550599667751807706555396294132098798256563375578773444278220435619520855423909288721193308199505101314224924035767594680785377720048293426737010474763554583994588795773014354366918804168090529024980434221696763594835876245740382244077491136597493272751097036271455606240791909689128884889353190796609985647240182003655420378524656804341420482949131997563181794137730955096264798713664518444351908741574586806036128015156814641165138204272411149339398529204672012366906555987806099450184031993062664457129984186107396354481256021962112005906637727586913128501689729453865242623203476827109363633311184748450045068667307148286619992224211701958408763249295272140907653998217416417556397830570893486611321843005793387024718680624207299710201721858339620990377673368612831675502769644586589026242048124589427100429898795723332901729718751963227038981339073093516114408651058938727120343357349343875396020406014911853707210299442681776153419571185358744008853118512568689139837282007867835753821697131792327063251789016748780476661525186728529801011178792162671659980574606602157175225415281328166409554446961980973601413502210527437808620691375515160661699486462139720312232409235155353941305034223051041998449040552211702326491210388113552148027421238584572766800877398953050113413343308413973970718854863038733667567105777859241601665567531943223000650843880889544870105769530358873884381727215340459987605823367596888373317044914628034799742648194094178095939842325878550056837754300003553000572223246515484353188621043231179055021679733021520187044091538543587619476636562801706113946942067645459002439195361629982384502558281199660511621651321224286935696198600305230026221842541266376867984074682802706320184469895922141523254872932371891324621233796910514765720894685925586145101873071586678251062190070439522635531727930816724860719493759517776514840493884624804376222801799326621849807782770476972223423786741475248720709494401349608825501582588645814436923950138389512580230086135328054727585254662927392888086402069089672659316005001753137255991668738246136265950124371923790027161078223737055228313364613440183954736732582606573988375382544073651783217457411722214072107483278949904523587972195459855059236531739734207973923201673661508920124576412130412000260985191416728083878036212752281961525895502612817401936889817841855193116665341270611806088741786626558891415990502781315474707912913353125378679758161948981678757845248056878369726771745142638172829230058708936831707750175404336945151631820925140160554645725704362421821999743407090780080799426740004365559842516693898127751841577361668701591257957797681315436578978758685783777944344991817656042163684765683892231435153281880397989123148913099463552596405985366048135786086161913132527852646304634238896657140316490116879751683221652997068229600101735736518966994546833383902212451514589327514849207581684950394107539831211845578451880912000286928086833390753301001563369835185066731620228201201513532879517927343741992637413436710320565429296208870504098058857696845740015960915859453693253172609693300853420700085156881909899990300761433829357029555778867507174387485080623005102120983107095516087547417571139293976795958764059708909940146304636400799779991780066688128609454287309919335477878034126560073378204502992688277476611371274970779560609313746280279384243034321849134576905796647322414924314968528823392897693324775979611274414501400913550837297247018132947642352628219880481435339481677704157042651002706241725457295060462509048263451431964006402117149558658532803864645504494872471804165580631149549949877883297358423732261026776201445713118797167118664053230350986664660919454082189556469839408870234394391805191417730078846414785345672178061891182978807361491828374705099584399427589032425121357253338587307232592074860618110930553281215146427511312447586703856206416061622504460124877279640423362932272095184018029573468799377209417287889834460266166603289637872321045762319705792909759347254660315557731369407869778542957417824489613313794232161428466151042714722309906905197873631900620776642653683932226178545006681287945851434471904922793968009667067350779522631226589265389732806346758721073840397057658719345527067554855011540238134628540589960974452465759617435767441547341111812452400918731212422345370815022253429520149725861732195237897625564098076091247093509507133339633857696538537742837236493923185979521105724860464061173053317829150252242189533067665975392366590482348491198160895420323331156619653223232165514205805827817063967574381177553481746391328255723959356953809502599148505591048561829469716728585610127118203490611969328277691337802406498225788816364595555950903983179473034151452313124073013611161393089531610517127430584487720121786605589265080641686232586327496954841007660771167679916669103531299342453181449874305680213095459707460916019743266566000122017488371015166718302102680101909242764815227069999511645393478562361262390866854869621913087436329238221058224140219391134214413443235902912712000064254014715036376217577490393220458825476251960058846742857536920385638687138938873505754185939220034988740849465381079691251047179387398786665635841139544785520678683073205155548255500434668804172896937580225105430821932628771005364142673416260864106403970965865474766791736917045170776247671564510384081285202056197973835528476043099410336975480972704968119676042180814067482499843965549031540360790162423063907407169371658179473871256936781860635690903722236560106698667896295161779019714721675636546964556583595517307284880156870529986232718898876482448296074849257245203652578421084180417418104169451742009115495724502462559606804164540422275706017275568166017790468719072814552432199348271986555499239409519677794657455615499582572107807646732127915437623612644678022892485159770519366791453716248640458379356609605316592598564749150402949662501605628433042199065030486138033067393614101543624521771484432976868426339008725239253842910326985285788900023879754359884987902663193271273644527964482835623703789282543983951520259714768330415519876312334694981625956043130211395066474797838829379234858829670209457159086005025490800897557893222271387507194441908977537620257528441871687048813284430854133959097691075867101964977996020010648743024044614498601771766405602082046049246915826362065478104181021142437733372134597440728389592040923232001139830074671019072790633024821516557201327224591164871977356361550220443773938334551917843037684762002493576522512700311918312960733189116311508749167151439421188251951295607672963885978760712758622130470047220557656879021935226861879733650525828256161766320331500948583673471907838233626863807915377281802461907527306781990714186338451514456108373234029836609761450236971688396174464732041936040562154171320529618343443767940543840088790994761359233931455494296910684015566736493515628959666699307210507472785045974281484024738009401057473290533522147693260959502821829277098525313732901036720561817643567248241852754155556862408058928478788408450774773884882690601454534074923502835285728872510285016306493157203524778593477071670655346582299733691381557667655410246613745891814196876872686941045716034235533502632435072095390928066134706308602354749605807653489469384798743971740083965179596882636202458419527984842390292647504098250034803152212897847948923026007583755713716693918974377538751045214111198707766862925331482447029545377785010130353712086792628474729371391823956844483674532741541873148471590906937982596012845719713206107085520570622827664484484583571636492674641683173142449566043344366391398030140320771234904930516808061771128795185453993790547037634770964831611494386713495947234236465735094357363668246576562235901702647541867008758693091130537772217136361980535743914793112279559102567494110890909131862940787395418552569399131030505504814208760314847683184666861935699260919405803375701046392500837153977039905223763916969898667026325540021579290520813505175587359425809255683551239267356426736045710438132389150652276323026386609967404814584237259802123022400631446506810861026053401580218749791796922767854799319758515091407942195331444017608837977817554606937567154627817913669926490593013404380398041376399928700378831361302293818237927924675289146011841249736102849540765783142913463197267484267800112730647728916337204883223300894621620164095644008671280732239264206699757213972431367321730914310593019750324685239710776566059983858643986800016255119219514183663741971912620698060196068926542918336898939676472411161808735892452577185259968394032722879148977384451749077868670378703534042863125769949987492623886071262859525741910879717476710421733043751987341924936802412740702494175613683510330220517191063247576087839580274513628253871841149796364807518863439804876225474172264605030482412519136593550765710532742487088846962726735584037868633430095108647596064870967521368490881289640066699463761681987218455034617849101738957401290822825108552897212333562969700759906326483695231854264441137873234110163644524123836956814967743875495951941019389601807296237572963007063630285448697923222418686620183817833003307649855049898060380942132730451351382874820128524576456197166387335237642769519417338969586256785318324980628286348821278062413004157742863197791407076903210061222103916176052215888843818394768432532073069318117749847648905661167696682171575395773511986166554768875660642250414685521103703128970426113723149082535423842599820719207943320526503423057718795797481180908131943508580053116482141880810627754630855897540130322078229100918287966603631779291019564729010020296868188284016125060800647379651779457749994955267661400233850489241425479677276782249640039944820013159206565609215735279427499708560669549232223843813706652289233846870107137751464159441060418001644265651030924220253785471297857314815051262442607726433188933792550288737884692899538813291716960827022244337281908827069419479339914497138587715527938194187626728828609693937732190328576410729050388892720958053208347153519180588620794941225107542385328191202589921788736911887451666443234800867422692586353824722599948116189694849754474859105650991766597814464347190222912762422345849953724343802501294198881724328388156443496224817437612125807820171377177594052015422709542404913570046160022064583388647318980562210803129846457762411257209451685355500174024658506252462524654886618540275864115862854058484108215051766599937717058271583985579370362757031136476303801603394662150259830383267457227869091407793033709425779010605544174764583410311401976091238862512851110580899391830812263597887805394611813860222386738241125888199077874393579102502803781243954979785816774087668515075793607205615245921049892043503847330306718779996274692868745663575767447112407509207093073786386123173023366807141393139536104611922086502477017924523124036851275462587545468715293008294781797460708865952057959608828667868496219944102771605809162979250698973435110402904776729912292468765838563556981234544410668439555428070542914442275361781721582211853524679403431778232841481544497406723796344971377664772176818356432792259431334416541954698064204004645927368377957815310174575561134260901395519888543535140299200424922663757195607739088939425465341319070247772529790586342918171022353960880824753627727758422731292423909957719032518406058147863333898055559368402118045030457508374388430737834962866412387283070632634340901022679858160861129047175157385870326784231924026426064680758193815083508165805046131756630956037676786176977905302568959841187586594298741989168055226107495716858393424900968994610556718325683046769929476114646503766810926689032428663588419906377443934431972075756960070776365138084048766533186803569173998772059554947471467416357064706066173775091180063754119961841307960582055704104200343066088763735311405245591111767259401576187834668141617814882282353990046129512282369266398021366274772581658537678436791713092623531179404697181701716280331918252535314719589187608981706538861316049623516031449489670538267408292713519036106136603249720077133739530382007562299518637829870028758576030357570424242480980151779304902138366476946549737885074488194228941449887333805094012467791127170680490032991404086087112243681331807609182993764300483935079275461532004620163097234005653561434742584621868328855182841553662487568397161003314481547738381544283463943478240637332840663292965255572409659340121873845258228058465891177603689089361614593193828475642492240538708427702170885497405605696361929523990092725535136340648943426850960331838572698354986883924472859443071572476232349911671598816232031800224009097433874858630879150089678188506249030335007679870142527586426325178703219833499494878600918584558223612051954508401552713389301522359725467588579786427992954121510631484889817354920807115870067300168899390609318344117739611531436088166433179957940240769916040519922043109009534207499393767387886525976713244512058991489023707173508020861013593537103428249139268369722504952499875528139717136773007289040595544887426781829374487636317773523934509699046026921819438834721249093936022654505983013651743527813873267976377667320528439369947007538123420912353678626622704282872438549743217939725072503395762879873470166708220222494313879646399381407091448585155311730566161247163531956906158418404443357657217311522743614176263025265017967806060356536733040934440724193531287797485671885318006002337842977245162943153073004438352921249427297567331068808964725111198371528608986481219330094333197656111841904139827666315642874200068090168620113501168782157856831715143277584080995282657113805464920041554803244547118094881873652658466685811953927079463639020995441383261586722276460870411900368916763320282990375135173014504998381431832999307948155986712570097679331211791248425795837076936690479940784046875879726554154095747978552544239838220996217269292054476834470819437493706719453297546098775670461080854614987642776202404345430266383637877552786335955796208433710290830221889302620450284406669750667941669500960172256767635023565248174728511974507700266181018387340143388538497196621272825810951036949198916121554179228282569989654092935194623464486834273011021979653218105169545795399481335893612382629042160994557713583258143053333702264301252737179131121069507215430905882473884985672527083637913999861810217221532197756352271994511347334089116316550753993131146889302264017067113790255025993346031002679763455542075875044756985998502498625104950344641268333967563592903002370528348593677174046087473065150231233601918499715505458083009048245206848471669344435454647096904272738074833594978980865862864462447965198609818540334565924175187200426610677124540596876679211674112156068455497142357500074562250819435888751472687208249777831900915274779395297005141536245517431618864181994173144835227560204937924915925267853261638560941058043251812097187654451792598884859152817956520263831363512752314633551365144569482590242272184122621857649076598611242169854755115670173322493626240077581614003716380507172537099927457907922744004242300238250941890096296341096604669748106194211680996591867185878874840508811869449208531441701755438092319141287013236239131062805197472799142912283260089109110972286976063497892525094686477915305153600484276829693039556162842376101107677503569496595490518655333846790846592539142854745415541744513827556716589740594362095820093552445825874779866728914570393276056463369556341087603091766043465851490793152793752253922450782625249256832300696884064414914272168023432269016554467453979969939711823667857388947882420888257704583857804418903977923821175406252774478325479511210381279561553256074906873031124642407419785029582952436279124000580733448222040725711373828147764575594744911252662476555923447059958723528965663030118481242174163051346540282903819410489414743433725382829711007307589596498836447112745624932223639201949766973213404742297432086144875845952570529410603693406162189824625710755503378897907115978370226269870643323276898349563680846442608610623079264501120922250489429910599890512870053972123900035613001640067817243793777426342719453424706790572350558865628115452579401550435290676463317108891589830763465747760750222206093771463822851930125827058575067147745693869731259601052163001411397577295771144409513409262209556970531797669427459009680092398799102812204264592796935878014052044881715296480011599019940284481170816111963013706823244535349278660600264214398492185095423316932814899377088862355730990508162233021552153955441708149881369666054711019118626497512140501150327297111994856591801982577199139005237817187845197697889293942634322061255992023274804754991738823375315068523149320880311199040312672375583868685503103708476465883854930065450244891611668593592109689706433219556155706340190807299502245532296425036088838450311586792817747443025326927217071839047420678832927544266669140999850645025325710168459960236859985075311261277813121356706069590521452972256308662567816697521903227252028453747066227218182730797281826697206638583900132801347050440264082150505056964573379663745294620061542784056904028343136124040521475907683523164317480599500910836632397623878419238150078614524106014556802779424902707933724021043977777134983678858736838426535808719398713343235741997144636196288996567678163610782446466921714937586307060858116036773398629768752431158784325991730828774535569327104347648877205982984797680711565631948047491509999022123383413716465323322998124722799095772002272854420701439411880101953228187336004589622399919562641462195545789954126907714046018861697841861686445857592158347613581095750246502585359521435371040193101368805573722692426061853436372269510931540822009972591082236260355302566823096083200612671754590004056785362742541413935522197263649433071759953030234163984986626925724889848087048590096841495242362690450591418551583719857336149886351629491417267546947460571048612646404591921602359961989153464650266974381988610099181078017671849254097931727283242865680387742924477973169492181846119333050470391619973723469367176973801814771478720281428423050921884633965096437205827187690712460668166093058089368805281990889770856225664581066819907875263091509998382353174806325715643370084253595486862061992982658070810922346066763252355736155192304779114568516958590894287238621612854796837142533599168768064499143940739538945747385332279193290219043557307879238728843657291297871299274001379580130882278849109288414440894195384195757172019673588113427882350674247258116128775382943450370284849757624423270410941240310888077773850139726752680983989189612033138018482445175188567714599538766548221869607574038962742318651249361315418970298051458583267438418724450758477124401636886794675994434913737480726000731509291212482453334720264930362362737108545548467779533267527694899638307763655455093896910833972881714885742444193253250126724561524445626062687784695487401309555363107885009550910144570641075087571239780319482435106444745452203246225422577986631258945555098714030653800505153344659101232868761000193473310258767865036947247843203941733343522647754840714721863829578470468651283936906397106975704970149172841773180688900968497904569041022935906305009820394090527052271951409255473413351600435108741204781490326760233747913111613896938536520875657071448342465636579037681193527753101138145017064535913297673852481236741867546787472314941646846344857507915088850401951605830090484633646879027867129832424402919298063387853938020850507460021440237607443114988694904088039692206320925812933598170005190370506001067401698774045087077259968730280473787947808195223438331001462652511907592625481677792993592890048930353491096335105465315703742709818408678617571899054415335608422786012517646899658864858435095435587027183963133285017867928611912021759489141429570659066057708398347039484916625567029357302701901917841876490872352355013970690743763707027232572596438920023481353061052791055961380157426701308406516460407302189118026875666232799766337912661814665771534598501668610578886237619943752156233690432813665719110933148843912427930400924350149668218668843924677074377672852743384296216482621661405678979992557805274365995383281981869343081733664423064308814978316353191024583311302357468822441118681898873114092313921523717218948967722846993981279832924009057484228120781740682473823200574976656419280496574966746863286705345793455225935471957213991384319526561444715594196534023765883335545917150555131368815000277402029672370911125045194588973212947161561262884360575685780834341977715887136210926379051007987153140062635264003133424978924018513388130282601180457543438419745614471299725700479366426276043673890035550909952102168974562316428503791622878958955407416276196661768036490097907393174849027276954089349750704140444931376164441498875303255283567229705772352349150873365195635631033882320912296621103660706801870996231552157620177394440730119037124680951424237247429585374885585896856818810923963322290319063360635220672804086158176002207532000809976045490443254376498526026412656029868348677114591947307044706463239587953343679099099642314295419184180365953879109293270827841366698804827336626567613598386911506725900893630121383711060112384113865161955442218678469036392216377003039536561513934129757465584642256878878300460544810609235191308558831690843460680804403403660629762554246601458932966145585044400553934656516372200596217709570247186369595054460218860961681860656225765226825682215297849810779093751654496474044139283881037662194649499566001122809174963582864755223065687424576628863176558388303841153737398148142855826123756747883058295900131269686359541686493794769878064675467377977548617720976270334525296957750754636749319809692294555735827734484712541188260537597648213942282962030277554686149984566110546654937131053755974960296432652837289181113614747623860253587195675101409149370931230744265400430858457132327359963889273264547702964120258492081796862315538324962331286871311906825544976031679942943940555859706018931252904261706851382323931676007534720468484323875792743154388792874694815758738617946340120774890761457487203791722857931994309129807562294387602585183958432618412076986789254038513689271701405367593597810424773304854312923155751562967355777962044479902435589108633094140183374410711824766983330243256728624752497267581699130333526333424669049947709101872908137865484442190197364981342492840956394075952895865581507395851896535215924745088937898325873867805128179515643378884983931552354026809754521883644714010808947249744253756265756058207424429711937122651304387336902947524312335458511593629053926220724085795186844422473119372279293112456797711665775203249713624695354896490254043143602402558917067432615163168784885858946965639089826944893968484453073029948594166465819680943921668201215996111129654708170469709468624385137390168699557951985036591697662307840186071666305419986900441224357417867234082416850599572456098404148760659772561948979692073210154559509173844284107720363103490428298756079717321921690000915764869281156796190041556693062064953883512182877843974910631436160291243817642767299181187889103190893211284364544086317702869954306891720946981413880382838945344404281775894562797479964124659142956344728381217825842148745580085675138723057346640170816103869108570392464724584565890513771552912053702111174006982370540334593254139978076644419075238445128146073650597483890280921840868423014500983306928747967830004870918270403770079593594817874142237678977281723466434430810108473863717234535942789238288172952869820427806333202219023852646116866331145075040417147665521774833049146651189941057312761489617194433144909822685096607668662650828693999862430132566621938074740603119242830739023853953604667381285034373778614911935619593239996958055830399457598348202700485742101612253153663641369446360654051592589224995075670211123830235033819449145045746581464951325286077688953231033947347737083018673840022768007539242511189625110957264830634473479956810363187400073944014593665326405323533841114217772139217702451444744559353099410453326217562522548310535141154568444822696201060210456648607700488506696088591498141758314574483573574058679503598798243666347001912878608723808601206463509010242139809772227438945220878136140979615890362322830908359748048366021523832183779091137835251534961726539980636733168574821850545039387268128436262806568065526781755279019621102009928391466683849639223807673883090733055609136775019487172493173327856762217744123321878655672672124106688888676382152534249155053707139559969971630186400534021855336030993441103192435893164552374403742942227913236495786863269270420683249691459670224756402909139299684726240241804079679319194279439575624694364697989170474490249458216078432359499128558356831156376018125567407011062390259474703856151685892811997089960334822560353209971915504290816586464780809115611996351111667481742357559117927426908850472954236749278649124788141606514546671455710118844665908618798859664097275831382323034680809335779439946424962413209769118016647354878642891092458853916298881396494575955762451845306513375771278164857079067781235798100208454469604348145171288341559088324683550623732791209372121213518366583184065608064779223404783987801376127715418583365502787892185982495492669673493715076665949654145693317399521719148701797789670145500893404357713994201932650687536211986745003461923226868019600161555331506102788282832859849819499984577681345407846530542372556237255112320268744386233713695457296397153228327339134918764872042582872886426198633705833281183008362002152960650631490236376249392037371093659742524275801072658983561448751597618451741890339434364103778151821789567517725693856746350535492537462341485675732564160608057408228347675813695380348911954941706367387823618614603007176290007629197978348654576221764829735097057768119267317823991786373291080429672825621936480028336881990759398864857775441320827625894210798148255817590432988193891614708172157628581755476955157131700136116464954594521759421154609835952225378604905905606098760720305546530789831327191158381830717656693172695809001970783137997325959031456053236046057486061389994591874247113045505470660172491047513077988566023767546377493165714374061401721803438701445683562698834020674328977439997912171017520669214064775390645371290900593137034905429435382408561928488122312737015035152735500054313359287659238671192124949608464638965152920897743814875028644109975211330904978141345916147285764417334929407325246814222952726255291772897493589517564685481387441910846398528359869406989889739830412463006561784520204301202159276271392618057042164947763153981190838424392442185290465017994340299222164996696493879770270561738777910106719498043959278119053148462007415596747399650846382100846411034887573946716378824582984803908437589424058007715228959240791170464865449056307145972837872237169287689100845065688507606969130292135456954595299652050064887421060984210596328728711050575020382211687382912268433693180538791707276858298764181417238386632154936117176253449580231015201337739900387817418066553824780286513777989399447690580778242578153967891142682675417133475008447618427000833688710203459203679890582197780287055867623795574906587405770162944735845245746866953205818009026409968900019523773389950065065226398214151665385308361147341530294604052544245878233892096606418908903648537082256932003208422397035742828368504667198256268477228774373986114010982799476728247669909928987679495475563029507017639741556139233945710934316782725117122057867308283468811410932674492644973878020541877689864984247807714458205267311955694635664557534913407264855740778237548425963572672619868295232107303131625687665378909684594978245910252327929170844971593442421580346112826761893897705344839540009617397591274862743703497622024920697137972050757121405828553846157234751377481128943398043821326471658220405315243184380514205855237774121245964864548998064735084244644588942097980287227727433864544331269168344561162653782291448725416968774439080879587357021828262154436757221175185477013244835071273413409726624180026650293406111808204251984028154735903429987919762500584210252982664563731400859258546995128963198517532349183983133379381037299623303423264383314891360786555402407957925642095530375268021192579999765714621658703268580251932105418719383198390289285264453339530429141523274056851354993803501866248156591086966231752447769090807776750034260965866470804509492394960145031718837916776596538176438739152104049867941259947153517917256310132311285409547988355435979663938808442659980658295680736168080677571703028915800471109869777724060987764831870663164966199750479888284003867899873703735095167495764987250350412496436019880314173598633283581055471895435650665360665341626666110034044303313116636459152438121335778293735077343056952365317427946209911942666191432143551455028238711725564096677281158936695533142369250681885343673543730635675617678601055941305755880663974450413052109315386531337342205136874726987904948034746392732888958766645295114250845562599483331704129840572346961430889146464181201536467470275108852387707556892642821382431764144382906088643809546216001334359769992147229673713208386144190555915771129494810667875629853149473632435710050705886742714268575247565506019684803668929410218221965225500166846669558828397905638852821112442936264195058976340873428599756966019453156491786827137257858561361376805860837268572247251396874663332415189071689269512824109382072246628610068578400860268236496022229069793861167853089169461061052506274547175267924720976493604570583967461429060294784290842411410850978890801061923852936544375375758301258964939820474527000939371513774909948418819185810966344304390795053171526639361559073043415046811069012394285872701011912911204830233104447948871984103486955763890914806202717031106565351363262778239470471958936941387607543310397426154357610391773124973040284396855178504177489060799974810120808078761709292369834475589144597157295630544980503371365863126566644639273867248865887529327526453029301498034375452878724604556877961734518507909431657640297175118041088119680501855625738763375771742297122252608135236972838127253296209096915371772246001011639336556923756002254039307028590512836006065991050975227017306481070725764677337258224085478336694419278427617445007463542211817735950321904294057868301920728710298060895870462075891510535890539470637957482996193845527346719266296002061531108151638834813719184926118105254612807962871033040272095964910467732863266507127654338130901743140735598745312774767895291243786058461980965799841774252751047210576446327589836654737898081641600785366071000840856644458947621145771273163454981211824701334182662270100732682634610188319371405087714060769780727428338916712844609527105290540379777930810729200582940425372784252112198188805835778306205473172919587643371081425282411645032996211255619355324657070797485953981874476881530951099302280071233190439640062285910747739927175896042191999802239795037000224312654984400764948723251992202730423551179349185406870721894374571360866817312133444454373242643897383451927800583022717531437973487227290286442427934235699724284984797761656014332403886172255490722618605365995266977341981350966836968594002664209832583219727996940996801510842945229002970507820360101122998866530255523311011012692423782415883591639588397016356454539403614749687040272616816433747959374501275106565011482272343563870152314835165605435510478090509375797934244364840408133078276110177437414618066052516273690063977386962948795243998668500517833129064043734334327945902834844676774097980591320620804530414665838535091851328055527599470152108770174616988193854416052346338721929369188006100344661805531366730974235056793916447168408879246596916629003425492430745857077712893450996238962563583581789655146816895563463005281573217132299283090698587946382406052849166744996541652413048242118846312569610930883036489914828033044710109933951892509013874894434573331310393951198076873567309891123094559838004861778378442028681867416267811661180564218672875251349354971599627592882100465288821256805097854499138969110221037840916429044262984554723088039835063121776844183132954860506820374879097115215758554925560808811883507605614294876079608168807764161971199937252779824432169377976538781484645864907112503541413433522963519052845685922384039138151083226061946447553764362064005056985410040568914255183446915147943422320892805609488908492319534989805798831131687700033141156591566925102618827666876864399999024235383803456026620957631995233168409941127144723339742989994396790422721805496219554949449269305310473325624439028271052818264108349124530139453855259424047541740013320865936076240500255367661036756353327553687009310139046698375723347255390847143998396491783424180907071342453105788562316656349491694655777816992703740740688355374631960134031912541107423183907266649329116451396463624996335651006207927765009081968576165448002054482656572306714757720669796290706110206832208876115012321474326400433418290171910948497159597926101528828670203456083569311717868913666804063036641370156884545383635466243251022933427505296407466551074741731413773834389559977480579419517644338242901366558159060182730817800582470962404282147461610258219521451154871100868565773989959400550002146076902750257669589117018364507842383858879852473299400361139325616705010407779304665170316351905519536692507432076244908201948785527283571279390094427485791610191335590564507164571062794987341990955615793827896996321235315150881270210356750338831662576764841791128226825639590014200366643002017714555411617157625167779738834027924189962646652525083906001047929234585320929506937753661633643716469424799783123799514604069437966864483882787792918724911330481424871517843762122809386515392353561225313564083126372761795549233687135402650856544724053790891908860694433242150823637793910337622527735475278466582776774835679426332086012349247510906540730511422645008132387444241553451492239901523074925913579610297934860755400117759656235599685575465182218890681809156483661849500204485382152593973478372490778844310204467580926184772182713851460497957086694776189576481521247599158836472438531126089977341961615554805368293783174695855691507943111836750296869977022129281154548079769933153795183300173227151566624931638643388310649935064671808327578487904091086974401034740853241092534673388044521765996965471946202963320305066375524252046476632353790682217991643952559435887050226115382084975054940005353107329197433496287254427116156405462477245577670407493074994106635877126927222370450685334814918469304447237696095436003092916223615572449661234879464146363504765656289720045041143344437863594390518894780655452294238789852127153385500792666974256593915845389684031297917315224181261187940130554345469638648486370836848747751516863393945806498547646583182272034954840837989350031469512112899839924599753225767888538988426497596518678883401514704505160815205405158621162638158587839483248636736125157894997551156542389618993699923354786707856413075285646001508707002653843948375981303838642603903577749851705397315499243975953099869093843093438954800041126111351694541771119729095816210488230292680648765015399219532991648834902694097971829009983696668071187057069551372517537249772579249468634634415816384994341271794512860418143324304552581183910670008296979219549389051403237603962062103331472437265069628607326263919677204017368973490882546592417699669385913290020368089818457789670419174971492710704182904000096982042175653443634006316075756580056890529265670863587106845028735374027771967736981929757094073536367624722645569883936013603513790848767170435256021793434339141557845415735829328884652629841935769229218244099820798768196382338042566329852598513250650810441565339408412152759350535482807786854822934695157506302502172267120236579500681165454594882866428784768985830688562938681570763933631188503257854449649347855430727121890956787838833055542501663995194084699039155505224544549345705453652386279791185227445603172901105857169197816957808695087565195590939434118178553351871412093897992963734063368692681138955118249743399612407525857874760176612867900854257703624010403615401936932140762749444373648415496029729542608017678565804100553205798282686278291040325433019442247660231941267254939352342745690689725171856538847562117519745292231968667732090099303394505615712618567167129047381245193413166776787279862480471897772076480419452977549718165889559087733401630138987114650950695540326481695236323361549561833956059469593330062828756226357768381005126514744216110240825493785054965118357208092265041006497460425202418689031602736316509795443652710517565744341124128372434953102385940379407741991012524758896121766970287438842225488587703602013358668983154594634418405202890815596184816307395210957942502260477514384906634163785654545569361851079715483983687274056232330182902144922096609853599000080001301414704827523489052959739356802455542179634770444487276451516359996137566345148339552755975954093585217790086286829219599113618923758337051776171573971519147969781743807493019884581843132880386294923758478351031733700003642966833620800338298272397195809841536416249731059601132804659344091651886222322444208048604250794218200697243642471520681644652273795507772308042578561415565007399082202701528381403862781603849470916258041148083040672031740392476364506054346562406589655836905072334443607181015988804252213470534229893549320578373409393452357046137284811679129656321629340941417113562083570149575009879264941426314815121372368627137800117886782634222042180572273216891528851549415773184842781128814421305892286653059707054637420360924386175791231973167144708774000517806256739223965139328443901092862264759003071331923635464561934663365460690460215981302617033010605904887420061957843859586888765812137524996594132188925659021595644514528539795615955490280718942114395160460445777022061701323505701618234706868175622716174087160557359079857837224019319466231492553708671196921259369297617402103491433431317348063086360869883024629413155915666683606107409303781300336978896720229263490457215590753976023025540167056193437278938850412497765263079132456845580574290134615088102301177428685427086065581442235938666744600028492681195029553183303040631273250832622556778883219260680739040881330081441437221901534527625693434132855502084241267156624057586303803716598217991413988326236033907859593502441464975938511750386263942912193014690878953013873297361185208306573377927416338090679291043398853281303389193399959305772622283957575512404859423325228962385094491883848429327434162571451165957094626055637533687896845239030195813654239058987555551535726285177837817782118249725099424618640632470651761313384207394322848312631442585460345565676356807784125338774849422473379457109016746755202921221711914047350301010105713203906002123200478399197140143049866466122309269780985160178990315955438928287925434799390940682508176933231569221523073031241807653897938019275962585285234466501218098335216260246104115665150546271261173529483145925573206251916874926393742223059924517925506380930486597495614039765868491212148988434160069374308118866648365131672293638971133181923173226091889632362339978612114271564958070692552240588618508307894342183961522276551622661905457828769151817671425657338537660269016055059608420539268149267783251587324184262450821448533851612220164929486115282853439448651086477571955388321825060121840966340958702420325518061473136690332564137282005680107362891205300229019897031311105858859209637518572800744439197807233710388564399640522538819965770808527852478000632799045543967055107183602075514995206085377850813074187303084597608482639104849672209980496223741858061748775344139535075867134775570060957991053294995657638697211640040661276703375288745743467066569063947759603068310857082532248080564229555924795406623790243463228473779827219700733190580583170734453178096502424311104961125675922901515661043915805510807924524316671791953648020028730244903205010410267510125948270925055165305259374699871188559764147130097944972454634325201189085595341506373608481948211092669623299260258900809401789406675810356916670698789489910684040957465248378102668443856913883434072925549498756715847790786673510910012878096198435010415136908639689994833896512282384191426639145323484967279758237402370712105471417259024506594658383627068018147385105209897555127956014789064234753833680460812777377136182461609777381870772841959801893342987730766586973549866659627599440186479323018226763824724577425565137095680305116532254632381320335841403766309972314868223622640418958517806740129125999479083148741195913044540573782000300445613065285450199874972547088222477692022826088396862243553292315258325435012756986875414666129412071702056771967706418497959397907305077794813012166597772640348384809393822762422308126856355707408597144237260233050453324828910343568106035817994775675807784025171899605602082142313020034282040219168641765247743481890567182149397369643556527751180527372436727097083235057775675157711519143386840046768164355482370299956296663730542115496633313523180267711785587664082620054122656919239041538227893699788067339838375834324798662646207787111885382521641677599380182202322293053463972930247832481968042441125222947842412672010522705420125002416520810544621925366614321943232954128807631495524591590880230773688345843977888966560639732343227018975452055573105517983062503401054074551959388407117868460914942821942538028804727934228869124430420780155980304344001744435237457129428823503397651353976715278202370815361260980871540882608964111140865902588632909321379705992927090555961807648586921431210644460428248437671731054523673238321164632414902855074750166121642378120669538544778494629560128901770940898108428228861989244463472679334942285382438401101128422766576900176038225144044722795683968185622667799873365875589534091837831070353119354058100268103238635377947128843741563986795006677183799641144416696759259236682544560482419577633657271339175986636953507599500145546821423682883955777866515158982420111190928879121528584683938459131584478316829596322627895566929972101464511941219469022408754818285835959183283156040226559759002484304104685291305096741410988924945754632402284212963024947425057003888442208696104958674344156163902117840246696946873238769016338405409851940947748880234399721336599859896147446357136668762444940659629110093852410327305029713149697120847364955773924601375645775161629213732922008813918256824678296042286006033389862473616673030622993454342431712175150330725479304450744780504555471324650891076649185792532475435716920132062403514729147337397592061359625116010445666966299891648057454085078874534369471459474545790693596589353281430128549765090443829841459335667409165548788194690313834977813439930002299287752361118660789391820653944953994010528181257485568842989666687488333436435815749211685071609767694930739612148690967717733577380265552681949530966671639368928725020038971710777536175110827722225624874559107142508080443592472941209736501657624911983578718055496192843448040280696857289544768778648239296352526697688746449003436750088883336704258569079290862192295391799433101043241906773280979035581810186790203483444047320250909171636422901452864885977262559301490281383628540436827575921638709598774857733676960070772794992164050927721988739721120557996656476826726105136878591841291559644196963344809638946107873847181305391553426601721484726840111064759279086808693377784006342331143050391185309730112084618454081737115264321247273734962479328476328216633278889088606990757015317002623667025970223686353789458974808921180642112319823858371103387516458029393077932081866411613053370912402333096102990474540271169685797208352101634368073329737197499619878187884655219603374191996361988212658235093931064804767099834648768578453853106679894235155622860215624044238292934978738769666805168776473557786406959309656056862524075174686429221647564046331423451647276904103479751921954568023174946878418857450847409831391101566418890578054099123278837732728124639905832971805464045855453822026042556435344573871378775185272148653093826488334593213256194881373633192085292914774581303410517342320825151318396798818694356310930465843559505452070937205124319882140007252777345353249324347223387590763193887354016568225235504789319825332301153338486575074830595718795382051335493120958086058719542922283576088074566031746748186473714443314943786456278737501346799353284263489015376321786192749283278104834131533542544649155575959233857032931852628666511791667988748915036978852544206412056316471102034484082860609925558852286668148900543202134592325533031152734366714528502929690940109039966754588640551038487795529693593444034453797594713568716862081164394012422375163817177384274351287579395761573606082784952009557050667794050947522260449599940075642972144103480462048458859252935657178817777397216637329140358727284874614661335332740906635076532241921644335999761261465346358918424416148814859680013417431614456510414025807900125369811044962354980833406339789134590788812820369007385891928105824118461143090522098382104243283881565522598366055337179595369096879000081578807701002904769144160507890538938809293601296318906411525273449209005062081138904926916741657362557922551328585222142215487279744940841780750594779297473510346615436497710575609862409415509892412588066611730052194755621834094743466371812272658791370178000686024270468595299264884631067669677543468253262917361433986852410316490506571651912708616111876326953800196484835043400443806523957964740483834020235444881009418169459678489606527739242396630267742731060752450439750653207646883080814997158055365667758100635123910883701227347095725879186358086211702489419635636614080108718209410552068934777857954848935842620330901884401269744320705200300125196047808420747465575256883267291851486411452669335883829706344042839859666719642125251928333750370891079433324688602263024333652263898286560521995944992156102598852802955939640713400266158345839463972761607998523260979342150161835363755421243812678961085207299487539333055749741506808234795518334133228726825223385132419427073097592640724940827358840913167942847431304851654477751960679602147973854433705570595347130354825151425866066873120330909495112281076514675025212646194136003837132339952767890807840657800877102860455851720657208571941261856163560428236685498411072145802610715321630709726759304128866872104380451871640776903886115417467388078962858762572452815490365482634675216396911555714003125644939703654473493820339673050319267939514643507059689131300932382680888450941060682323714819937905613707212768856482948495198110073187840166605656605544577671900385734863835447466985338825251905538693009749705726953078134049995907750379468957782690044226510572766379741545209485086603895976854382647964018501895784154000697118593246998004058714499342131399665494398905585795110849962661605335771847971796822031899846843427879045639194017241270220588879006325430207895259213828823674829624242135111007621918725860360718834066435034917295869309746631058472018397189272575006114368538028589714726732340896728007338801170798112670234912580935399199623071174214611027534381732304306022213637139510986282279901035076449342598237109430233596856784217142145427267546241166408646169520749157208378915727552455596936731460691126070603837263877735676713130249645171169164894964753710117008386327997359470716599632684631796818868132326581381226228814861924945561632221119287384878624668220051865949910654421749756680736880647427299085891922740193139742310215552974602278653489832450713852866825942355508585802362418297863967183140669366276872340528128033357575860358876830163778521715971468406770923864438754831468516635084109918283446749890272772555084191587235651632961215298356217255150622157941103597008937897056033993503974708198411145912370426887095286933577183052034838410949357057599996015869539836652007755037365304138353696427767716580030808507701442953484136668521606219844053834914320966180110290997153160555519249733743122461164414794450560826799378098356803409191286656345829613362109666723439918427135408692443452924413571785445422124033814377053139679541907825050956024919627460864743984415045140182590390051653539227446215439301557188373476545439602883808806561831922800667844073503249528282380299519718190546656734367500532076525413327405183659317736758230745973517428672006972554917184051252404577974198177166258209793210261947842149665886170378109187050121825615889065126347377310931650880224827690434503853910775419849862018807777318662967195339560175536413931626133395490699494309908182978993532518830384013543308609756129771564448495549520387380648359880644366946640366861753610031825422425609078179064849054290319227936594541714473594204773507203660004082824216076247320443060139762539330554210613270323421530574230286574046770454139763196367041725857596948661595635574002567679265788988913602228883690514886404198184093268429732610653171651646017395283691093189496522654348793280704789457427195663866558049294249717594243789785497347403367019571793323117571807181262182510412301286939688958406574298818827042768946769928010862923751339539094915336496539293911822858409373462935202434633267800469483811292229654733386069979098620326828582981389652930129257884335721743175484138232294772468181320564120634546692117555933534761448314751319596920812139367855093985029044926691413844084610378290033866342207006139242743325670753308969470257501230332941846653897893200164572033831761984309687938515257442018760204505334739027250653472159003629567292209388740287066460642461311908246626002074122569201243856471004382660887843717550103462993166876685471611573516020825418957546735212084774862197337200455120460162702036031427059137134346756830788167488491260438908793938000510496642855754452730736195022859825339502255200691209891989003273482450964768578366218552647685002444726094590016943977685070547513180485848352077689218898972810049611115268675098525952417400470508060488807048848327832483109766313282540135017359831161196516114268245334943446085826126093288243445978239331200605091419157408764817756740120110165774016521906913859845477993979022927785233248712529518265623829851575699470542415857676068412076925042576854999492071475833541303859759906554710015764711746518995801115485551416473674624699738915007093551680890362967656322108963028111001740335069789216063600311007291186990038375781642505799183430145015248141573568180012422047388643583937235342812795464675520808562059693629841681679148115185722882134017039097515627883677899388326386446528278416636443984083516864643800488634327487972598034982410362389073806301059112723754200466225574798070950538282610687295429768011431854716183102884646103457439142660904351656897036662667959069606512857261265619354326095826908074866892578499528694481558837667272598003906662355124263705715529145499015981077813030073832703581950981728110187324156548336896124078017423266355852935230962825159672963650667913001672688935302598024345605249466256006739965597759641858022353190279514427621232003626701895923996035693371114703004239771365186718603193553222181286495635047965826923906139208501845720488849654459832554608989409308936437198726524920748115229276052940054162940876252922666426301782467733661410977803982222366079381908558012622639171343796629867610031313773443192032559297034941423189862627874026852845488833749824749810143912153169186362847895411949528477208560878378461336139475584688359353864155194689429325058704831341288002425058347179473976594244965941372816328065492967800024091739450000957717721601162704707041838715757855948564760289546991668386473646770219520322938777955262776622744967863893830767574168056240724720600622965366538903812485788920979066966552232828596420537198390483012768976624884329570640525753701619495788674419826080410891312372511774498975711904584774026551259701387803070349147937363623198507532004516193362494424624208150945037273306386271941955836652373557811163598618209485782528412141533828360483192261857796359604574869775392829950879548281347531665756303876472448950444231886499333623477096959086548436950963701511740454611721941536729557086179718924302766275026479789981709996677412769080303947881163538457027020084704556044362125797160696724403357128325544712914222719576647431902889190623949030541667788287003928122059110993576772562557604633472260275198248399285537510959892176577619264005105537371385345209319867648041543903822333782691305880616637176030888992055078214409808055716526711492146784492032816690247815007102599679109444211561645238920706294255145573285952235594303045672995866978188940142289184404619774402579150909468321022077140354058904100847263950789314293477671802765500097245904287791779352110171638313380922225122839569183428895703383977402026681692412076746302770511283984322704074633363913241500949863040970800949487454920757696884055115256521407362061662973187691801627947700398807243717700827126878969016894727437788205785723813086114718542941320741301038350302768279780610335257389280174214793004850389216884430199074606901698761126231411702900410884531307919875866841507926112026902549444800735303382745847402799839277565615844208250550923795673423219740756987210952298179140879201723380068377193085653785962340269141395545065115034656208216890274392878078315346131821948199598014765822498509461644647444574156006126848623804721655267324234659894814202317361480903951922967860433611697024537771840701972311580471862027739151984675079558028974133894536141587438514868823489807142500281312354523959865056941892853542601572614560650320007702910678411680009990221220271743677788698326567538518497642240803413653624251317776623548487385174460128645556645561710550012867699720541784762667765238932649428435397367055976828368754039529589851077827985826945865633446785478612013618487469899055806386433226591078192988517050186954009100577590503005066461596624345948070450389876673837982156016691692675356080027820521079623138051211887784730071680278282832550785564230064446597680785476305039739544505243407389639455232723023666741071383323934664896557685537660709141681437151736825085625729314534888684301641892498315860384904083967582035816210364429470800507528201894527860029001614983373149693344155656862425644897147683887712404497551089262517397838375225123016537555113008994567690898112342778013467571327836259073395703545031246819322721711649168005486962720989755030785966043113001722553255018013154405799988553148688771771205523561144207051671423628300887788799693867685342298369197442809856112233518089020788756184482941388396965253526587090053071857283848850188040746609277887880294982880831748468832778941567806338639048788720737886524144414501329713621587642461410994460277511918875960814163819597348621725262188178481744358304258025936552208835847473817411265494983277639118453855877047683090813739270475941830637616192800903713562505022832620599413494280140802373161426015075188166463838828507049771680221078756356817023898471969316394001771758702335586325026687207744078399627197639777446812123834787122110729673623342784945889260442295610438980997305894115211618891323551583374654148127476890418127185554612525445791550752381624157167617319804105821595414206633297170677146899478562238863649531053670105109744701314622598436574372802780641383841898463885464794800340976175462142412046297122753592343240690199818894774202632899651499880685892466579131934345058503782146633059230725057448349852360410890360078920652523897795664793639123429326761328768913580918854824813763376063412805794518135916990332927962119439040864981059435723114912414653891536156252633848021752885900127185565596254614049650891883018463895484182153340957132546605181051763534528703989621350957960894084530456565650146554295125015576308948516779772469355457539493404552570171427154440070648671159703615129987954434862921347256305155878678381943248035691975186867065581795238298622611663572347966479984717346374030650460588406305942360097847908667710050466538313368742898208319352866147334682576689506987662200152547722050072326584099672323264852523209338624063907017112738222574412273603035042961472998820126252417265113151056356334395610304543266934995752256166065259710286220209129821589450853126676369351599244335179801012510530223884751373374548376092424160524201776548101335983005255193403683908216213472669734145626678975308035082534933347609108883449236701088011192505009327065382425428809478567091069828105448475369134499673851654349655969197110906891427772515672694339254397612541927247328784165718288494180400178155351314609533761147590300765707338097478729514049330352168059498725203150687197982714211763914188369504313147243310998830995901253507100016900129634688103764165200223509999033104781185606504211871464453413234177085013521649414657953748819733351377667194856800867388393775618612078584588502887231935411594664685162573356461911796139674720723462555844589354810307977679511589189144269870260161923145508374498210126786138122154274977151081605122690724286245956028681331840166954980822467808580637838755743937814885380916276701841557990051218786322444572662966640555146985422284791631339048561774485076375587204225081096866000724221255194139023529768171687581465686688359280043800999892132569736398108502203009336227430968470395783959357829634029574841018669389295403763308404588628319439345028590767915787337196808473201319579027985514181944137992720165807970516783762401650880531932265863379295622737649024337631406886149129248545990936301420152169192465889234526808752431985009487713335646171589638581634458679400931097394135667358724469430743755815522491822663511879991324608792797662298269097775195754920207156011908846806071879009754974783322316979293492875821824659121627348168344914815770298740580634848668022023789454181902919120109845684235813771121681064252011125713609233333119157781527864981292245939353889513997554024114299350190967904524944155523419264700068134934558527589993108109576021026345461443149730945493106443505416324600980470888164351897627186582844452042940768530454730559385126072963441355006025775071490605581408121202872416383257296441533441784658297058663556674030627080300705367230590649836952645150312864082886544053082435576028931880898005265914425232987171041767677558458988136107166775211140549703371119028725727278847868400695531351276376814286646831585152755073007953797499959586230807987633660781187436096447382181122731067453783071100512685852512089532879755492097123387924147162241863290966304419815469857902894407426909427453653103344637701706768606355959648059401558459677582277153582715950584632049196805244972781255391721677518387198014850901099292162031560306106660380531069256846953749906944181149959805966100453954785894619361331549989627329859274928778252123484479362644408757429568584467841502396106750287862112162172448833510832155650725921236192451371723156957908386624813206273303803981867426186013883306149045822397276594981787312085537761603314654564151779287868595905507092695845288039973929082135110497924703614944430939227739785181929728192503029936389558215945749043269934100429766363970465599158095520699720593386160866642849585922672739623070667528456238290845515054383851002014209379205206390449053228223397856915758668573750979474429065530785009555813096942505778720531044371827844232780180599445032002185808938544929170202610483108371313844293044583409963485517714110719470109023067443200575285536193217940065116788446931828636794443145080658050186065447073362759624528356902207859413334936418081832636585235496971578514910809866779949630516257473094761041182138965093741920499919830180830654970782988683480002982397071384863061981277563833585502630258113651347324660414063821496941308310080641629822123368943573376155661021797936165736092170352955265637767703428638982609027479668159354994357733523838618745540975360902368096685289717492155860576260948625411417771972438318766432958383191851365570073232141659213259333834565795132740190645612248364085118249099270149322381773970447941711105710697703389415274812689630484822690266667591611188821097819129961432622754076509669719374315927126359953166933430343877107425761623110925757975032022982949359106393515741441086894731918298407955641087753397301302794166716736943437279335322040000264369366149058801260737861715235319296088094892987992662601293907041196436148689960577771802267234624716197530560941695962279215901879873970116410730859465395543646424110109676106573191644418007273858828606773386575695058254237879773827804983561514304167617265914499335093320578661999171709026122017250860559397578488716273628323927055650599203164413883011430679495881682859450229662190697971861070536251052919547499650873467087904635013238774517775389407185723709373285549954574518500572628689795290712514429714679256744594306543042213128197574188480274457397427698129250571593689924425407133398984928113927647143283399741634143792662300788237913404882774660117563255052393369971038187092080577077000473535052647122775539001156746005742617309510271550287298961169140340737266130712932316873922999134371472422824112643705496220725780943461497902645828593783300457633776407271150610706769294862554316667322999085148084960500668984803486800929155664114007007875240949038762003263938202097397642065361905213675580373817670400869094700369282180623215854441334881657061797883304210533281510009798631755922405053877670694963335550576108719501883858971413284569116443252282812668909023287172778273429164958418968219352934553975637793311158259862415470700697008851141444067544590277500410872887469178710035777777038467764012830457783192752629664963010775416636520374108558031774707798825212622628482155999060884877133559411428471349378526056185684591811515472608785503266817414946398399174285118282528090398212807108069010488432181959038130053275590123572426799153386225388045276688822028618146151727145813286253662183896472613903917321538394391878126472980468173129835125598185992562438967839584524992933390772816757241429748840498221337208928267762287810435964777418503536196102391116506095209078899919824274089019060069785044860010570300580706919362965246985341318325488982735257429508119597468725884378716744493314116893763648523068649352382968334545477946391512860216877288895310749139964342666644764911715149140687522087393153416514700777346133602049813870858500916356503615895829778003904797029551816591290527443979440909958093070749653929653808814863424462976433731914625473870706126652136770768636895869375490669377981302576941997073519553475994188111946761571184161597661222196773707833152842631396210715236620470069312991211573116058873365980507809473384170145148167672356307663348304268010326030185330584186017748360774931052805602093670241039371313550831062251572669414366057811332791210799242337450195886639194459447010622110992640664197403499354731338047090782039887620798409993433304727992233995768624010107557309556895820037318010985369703098672722727109597305278938118854132655231456034242642741271406461212074299567708833378307012930345657360854200320996871057065111168811859116744138181412876848340580551983042197649687327760881669416878136724101883877658037512282467194292765256617545976001417170144071651020733092377284412432597441714404457051440573584814622642961569682386687301760747350076321085646393719292922528774428413167056520545331584567664248469450905644935279308383569053092466939640225076345039981829446315084425685499514002786322725352638604017912543920773594001479453674827922379859535400068487952550884586034188338058152220638765913828578747865824631623928784108350156867602443236927575807929755074927861299927167765367552140435971778993179010567166505168319761508494985133164170689303624236053407239297874157955807794038865583447854286825405247751170610416088046879299093584299321679014012835933004348203083162546636610759332742820289925300614844590863053173815176589596859419303935801948998940914815143718296000034779039356827414249525702920761466405496012598776178253269597476425515077846479805784785298952255908701167786075589300907631819135894520664659891664495354522114792511772381978379694281467770787952052112801418106320769724955644018175023672791811629969989295180776162287848350300399106999503242812838815251952830386259731726366524240037296515289695051625187857259050192368149477042212684963830051910279166074039702354439385985491074611558392826715641803807242527234504402977746682748975232445766930309555892897577237472015182381369730636416502968135209936959712917148844670799159180274787910525748214457394247634004413297628894305750528152235221537280997665857504872644709474884092259496570156133377818191686560669932003003301241041413104933305334593818660207451427947304088210822587998352068583119254091004580076351898913040897843958559241560118198372253361860927672765958399214824292870053113953488254683015509943210546570068643847216588831812959104521442375857999964398935200680664182082363105698199637182154738459602044049028195231297785266308058676947540112937796862112929555986504453571459650572253783525738033449488704139575292875496084808349983373874271103680912821613834710798822650067281385698725130306808819331667038411112784589253350176050693529187990441900803597288682233636271996366661708882670243477895718509302694237123481704432226685875302800207110655431634879570671889284476476436819645653438856987682319437269035153421555832375007622990301954599296076731220435622594560281242577695303230116088003136063225239634001033250663230287509006829919013203646899883974900110400293560735677387238460230472664962789080202290047042117356572832438472761642038846477199201884496758197866890315718118680745149947946043111978416315248629056423283107632400192985185456855311441536937520608136817420330646454604445432963439275461545119242737630583525257857885694127226991414534248419781422729082324086732939617111961457047066418216916226624084019773987632702911550209450601573525672539868177999788787344190608829676638752972705271518678411577991327352704275026739263940983416455549015188186912354532081344145448908271059922070515746638664444271634397843616987851897174479086278164117692806623058578232459678256204269980782389910537097005563998722588474515802698137907085297389303495249118026935490672904150830451595463360682734202264104521348426859279849507089329395945317770256668934881336597331063849394644174784177376062855805542115848469088051244300549262801085429812605202381456122101579909948527067950606705045301644393437776154579058863972501988207855738040677692458619007767071664220390102749217099993601892901340155803208337502088142867800463600095970552107708704458498472432751151033501209709960384026629686968552505331328791233666783958876273326158712280942963684339459807800804479996561755341659287264173515907203783679787013253571869601772368455017055935359850436701051348088392859601285520473455104634499583523701970338438558723891544758988697727429016669533867731123376003061005627309271657157647073898944295521232023115474004018219544957571911340714233942694917054245683909577978026883239112245986455459555684232090656803617134481954271899209320940655363051655769210841576549117740026285557670937195589213685831234465028123539946767138922653033431535003304347076873088842242375401406801692961037149988590817183514310393145546457045053615176694416523969223549564140254221344961897081056700912257551593073025569060596412646244132469914855029134226423502404550777479280145179826270740386644654173772228173004164939523979124703378901351361670928161445031103239862211877916028348007483434213068271853147535544224312700303260914948475346059863548704798266785392849745901737781857483681941094647960827213134470861154637802064355272382682243203571028938689851543462604726354703085466759779063331830238069424698046361211026520656534085141098604683808908700270452876419567764502558017464572837591766604133199758628573491254245463800607312719662888098980102114250149794427497456033980166170624270971795241014627713334470197612910669647468723222066446044594227739930297662399709332394708392646712821767322849777979527149222880904052182848565163493190200364335795219002627391892554945266077221623949824715850559219771349409642427717733621832044499252480642208954370436787595736755536883746514085241961619044564776571070730149816160322300161106014484184703040309465852505331539569411894027213176507331789361357461709818509954689104139701343302664068846451089568313752779809209669694263607820845342613187139863873328052018108052740887716716446980261175066763502745601827204452721759226363675621701852297535920285610236147313032515418309545679243002458175862063204290907670912068586173078096485808510807200443209035006595564382286842055923529704152125252875785959329366057777609732980438546826391525636338735216928607391292831322681776709713518295134611530772828781379067336733593360670709816948791647947736765392328610014421826536409306609704960288913120553592761503737811112895395874745400483118736147044415808248307575035896055679016121884831317774023216954725538956186733023474623055120818815353950486381556154456814600633090059902760716950901886181394123743894984823338623354503918312396602298148500005119976547762661170218403262893364500512954764600913667909173341243838100747690590606842635130721453442989660573906440506318292521692510408940513223399597415946597492105877500403686174062366850644137567349584111777966753529187945126244134983355540700507453015520576051498186417570113962056568860035617369626515932626326786681383878246293888414710326766984440498475732877214551368474286131379168206041976060214997726315009486381309506067380400258651314705092372770923898107323988539798637785463181979598355941111944551609712518733662585873489751738188306311660188337082888316800699382072330590696208758591055562652271742698649458987703003390378347426550448953232135870686112562116602518876872439395441224632737558939358932280713672728297569997080795646721581272937836022710261802991400992126095329368675667969255874071412939372229172838973875957627887576434976204167985647819312154387720698722363758214858529393089150175068510370415371768862476489576519063757221002865605707734025931845728235678875659628176418209677402905936255854568729021583126205346476401650874710764105223029275403471771774250677384845493000554712774096191383834243872698431840017936010576041756768645095803427220963994823543358598396188231826149066084832378320526153113411179807193761168504788403732709916138790259996334181350964743255858599536514595730794860858358060175177406473246797236669719351707015390946067629723827945073853532236142557799557776000040013124535039023988286749865953039095263662426962860445869564450955080638559287978248109879144384188156563818439510190097415301764506469112578221956018563517447456509711834085133305741260610456320256276704784854711392856227512007770167298723512074670918620391060410886606915040996771515628615349015654274500218542300786350719898286555948031014226171724069644216382650454890072934838495318822104361800415998141203477372280403528875555261501016718999974565981964971898378548053428540932878239876826281166229209947798819879441383161284684520243072515352364851553244752922605501685851629231066275840160995155839822463222275544203069734559093407767168625471023598056305690900221456960477416666334263970168808833282094013139562080848810486841392821341368970226651555062473462186265890342501774419507936975101974998369185698358824434733324484794726783691052195377150845485709628895571893541756655197262139775278726873839595389199335513795441118673716618134463928783112929606147195390359223911144114023563953487689099931586700617521283518249974708768196975621405027576338019495142729352673214809384095170462076019543217061541592402197838223892047663367995174623585534542134234235474699058765840221998063433342994095651113403790811470897410037222588802425242570156708622282870451651536789927962725929466990941455775148883488170229828402019008832623983834359119007934559212156391814221976534182391334588508528539124936366424953743758305757811594303060340099240251906294143884434678227408830136606446208378223580709031428879648992939403604117370216541332392161978446817970633188814679738390075410317904471195151603831862453283951072715466089527099287439935921182069135892346293336987739237634691150925960927726591635206467082955283700659744712481386798106177108330157095011700139392489513903127737878897041300733844663890283345763088579087642943748178056372567737887657287423586023293895671153781460613926908769210572346753810469934772961464573655763392462797854120215043810100728639996874702168813647194919189390226369715760167115726095790080458544467813297984273535049453329529635562953900529729129287876585269051034860083552608045851604266894726575227951016706363339146313135002654386807148057264437431115510027788141374017924397169142911230528400493727305196617811230166815173391158222341395162803804390717508945392451156480728555070780823224190030094820557944121369255568621354786731535290843080369422043567249076335573878819540584453121556058916484897756550114297211251140182284303468974728872522572180570509568558793605926584250323849024428480760441961449268924875946664509841427020002395647835312737399715426636686449006421795709320404354741761424067208095568481044920607760734962562553041914748175602511548898547486772754984214089939607287788366477405137840020343435048652096113277848343978909389696436734024215300296073475629031831692218151345333231324256054592335172198411322874590619972518222566851421564347387029543055682029642928902909594124157497664698710949886887431040101725170596565434158794524726577984010144674527548171242073561289320282021166157578137512317083484253024907967055512074452706590278218275752226275011439540615852954737972273019194914984892109201416184682911927826601838378628006829551945962307363937099393362401170573128526306532591858084145928795117470601895295321457619778884307773649193727065938502355519072018847883156003028273046066789747006410256254443246131764316721019789797202100034910879993253835329690437262155920637579571041989102915020746958082288389693233518225180781959344404140420912943821093168068791667046279612612709823890429725695438872571224574707068148366170812929151766100035633944713557675326553617920299553378123826414209540194599559518670617021574105698183298072269735239559102117003639509557177467448031240843060909368828910070977584438069066619848854780952371865041647257939042485525867713098076435669904626603330567608152287932600296696312079280432104358963399943208403895248765133931314196981539212311778231257597328636525361923357193075525149031544707202935764828558458614609364623870247352703882038239995954453869264027335671916499202253844458891315910350045914560753296334856253174010069843139525604326207764220248853739198337613094388971306937406160874830549350610800023434164538856454015845296749374034861587784208439374611205033968837609219726414236225094071282136480231676585465267986226995117890688648132002295097787063489426644264945322868773034968844255890133700748746278932408829059150151775919497630084696086882020901606851904758635889268887185972915967790143811848033627106533492429484086014523801012571536153651435244779824915056071635572903313444501274299652232579022019549598348962773429881472108061975942438045539960971588980347588540977716806494536448513125233395662759495725649706479613565991609516153026157979772806055387056109790911390400966900766083409589337779924992056134243502683205973030078640866710950520953745112676447799520350523417397203517545245026722857985520623779413486434171565675055293902782197373457191200289822820705200358912565948496493538094742870517789117301770519954036767978519691860818069250625431354680409580149155107790916592913676311357100210253767378309893892628034103083405471658619365933978079278294296030503283982868440714611109375416497032955002351629589952509030517544256942506180314192259807492666904584274927303077728621686050951929506274064157653618477043615881733449874264493807862020352229329636734442501778076491352025281787276904396198349158017872165075729799544039272327762417066923227940663266948970084867210240081090868385892816811695474164940494528461912553568730541672319240843751017950380341185696438285746505907379890966719236499619440696341470341287749864412795709824930276707417963063717385185845765342021610152473535343814512289147936674566034073356764216891925240186031042088181681608176349411384556204801783321799047649640998312145886608959902363860630517603608011854324758404031608704501313972603561382812152068642660350278277523318083048695665375552079638286706601046679980538174344927939269058340532819273383927233331656452740813153556829100963247639961626137969704733428318721921506777704755763899678899650620341327828901493443855004340863789808289521247626992011751194244562758077511476138028571226983941863628690951602692444143204585044915457470205953856212868135736411480414977796953562676872287098650143570354288126696781621571924681773764165058492966226966736467333701296957144191011230416223389224924432933881887468984418463123659321997701546170818519121410710340754613347170028404826752263302192394548807324655690245460716732156587563385447168946599540903935261795658131577295121941269577104351519007300620788732089038793610984178762329611607616727684878568651778720804656735135356157265776189658966776629882314058868722834171974145235682577609472241238892038298076421333694501103067223446611723340976424618290347261936409897961765999711637509153264518137145077874374958669216503509161163630823932824041181886994531866226846171368410311681931003136060922077546844124391775847456754797255210295969517083730606614080004504751859220061956381415414806430223173492624807939169178803780083403474348662003492184949084696899798762694341238569491975074518645672286954388385286613494905627451893101015771976662386130679957557982660748886441320087751655776609145003180961756622185953897765622414649719928426829275954802973450592172124315708242170161012177750763916240189920737189405401702734019851604455199209079936892939937464951337878562273416925131426707573155230657412840398853033309502942232612027085110411206866669784368596002536954426648694812631066895075557116414931780138697563022812140079775431664747247483958464434258151585803879435339597913974645643138676621480516363270859940279940787638958739906399056562280060720965276516885284222403581670153160114142733486270079190133229004224237359115417385255872817104896102478888375097546961038511501468348846110381000677304727141175577002736427609939079994085370513724791407365492750702969425812675975650744552560264266109825857115519614711261346396064746134909382296049947214635570373548085217390013650160265860694599362856540336394349693175104087694568978317816150760236236712997134602680482767195715404236737828101018961149673434220458230839482967294164593728070927870115115227226695039646109983966883185969214792891875512981253584493807961851533517978233547602463399454444770113778883603169091043623745002028189031800306968832912856109102084002235145597165619138571335299960929764535369998670338280043863916226926809936301660652969284854150236007874992359341562745936454545937635727278097417581941254897059207443448463675470969296231988811230273528644694652384129678749632216803655801329869336199532730973794931263072719749646100313614893190604223459052281620380146024053638540439071390009975442430374675547371275750009722421147832569991230910242914992135870714876620273579420472507505721440853941733909941503238054486448791888281841934080951015131257640705793931954843783747335948179331888580958704197414047985928252055384971720995214548767102343082126244964278990579458605792865228398463514710457966161478871122721860518259431196885303286395710087410282472934396386135570824095243982777101183850540846996555166765721490294169106403914344136005024578750233044907368586518344973619047849456105688030447877963711177508417979304453808293785606222684655620430678622242809571558466074469786207470244679446886990616435905671310836232722801755555441015680043548496141413461208956673144706510717642019570062787944416255113069891017954609271696546023486075543899069808122656771333322219246247132234527003805594358947660070333291642218887699130006249656294984474994946386895936350174058007176805722215118605537824251117711104639278606139534151865894499876663869080884232228454867139533347100402019005244106024231357329571140448056309226997716194057493076716713780778948022016142413664802664270411618961911285557005088346951693983218638737027482074782832965417031274943703573761152320676421157748844928149034973110190576384630233149389588352697704056650562806765880474429789388996075031997259545942190422131755700691107243365238172777814593944877795059674106577743306389387831575662526909705871817561869910035249148773230381571023276071002373341109399643581279678694522145074585755191223049134497587821292401635857283695270610970456983704582577111271193691478803900613477699521202413605643205584658671122996583811322937791586755530115449882489256864803591454877721697968215917230775909201891148974781742766155898500011755480201440625066639021022371476580859088067661432631451396872178577608307011253367263462777830000008220892496347964278813505819935477807527653715952364794571530441543194162176046916526534973093524460275078970082133250943885410229863937670595340263999903105496239190533133807817750280157103671371359715880054671603400694541235066510603259920575170877995154504010098577037177318161898094215768828996606393202469219523551191253915797664947385043191084809483755591291036304281640158950959648370332057683516990038905498909580495536154813924826664536167195155453111746989510627514066508903415293700326497564972608302414701339863137465575799590150595901744145237853134842999913659951550597715213145764913043271181675249024138418364775865601775607577128208612798482914234451100999310465695165591198613403411925691997284695632498218677747502458124249560704108293881431488733753346380646564103825193373998294443774610803377213448130734674531232969427527720916115315159830635918092293858927554103832422302220256896177950097867329066924836277533304219793006259885284135976318731260329865447642398593619805543714267115322700873743108339593706171554537763014839149209356340207341450653302378887877707512084546766114518868338150564814404522597589890800005052270596170615707991168458286480051092099405007347743408733370290295003434253078340940940870320678528288352312211170808203448619301632992848067649566620739359890105902448633890401471216187365134179897060009312144438174186424276994353961270898229003880301282138388265662322400186874720005252215513811743311246081545417426651746689574243398697138852311297501497807356796369405285821308772541824331019601220040796068092390525711171205387468949519539190364146480660268135652826781981121130798307623018249243435851936494372674888541748674427469963040557034533822871261995440199121812624740592471090398574620750474621067971768023088368611470541891833523481260505174800053445697563263878890071162580878814155899105750028154713889753072885052759238977580491111366961873729108258392202485543746039443637136384376260350046730142951853398498871352658432415131846772396375561472788449030416102712345324383991317561107359012803845526321357840150306491365980343496370969459866957784591087694920764745309594389836571198440603825975150743221290852196207973535027749946206277807384211633617092986959691798225792960188029854654247936378836294429710161149041925552334900819740826180339552190759739837986819412454319950030006402440818192787257258583587706799384398253056874815105735342847728312615458266080137291849596637381903281477597221079666147593151103111088583738429440791126120103381342513048007110829848052377613336741135304684115566655814172067979250850467370587129733260572829956855876656289110820439496432557802072421783039653630539336559110972884008747534485278272488318419675860969634656020583012783537171489487866291947015540311611856272558169602987123043417058732273311467110330798378233671705726274568808081257819821113100754287507916754050089026644429174246396418663999467775199083101506947085783972946853132736696490462686425278575068551838008258148179110953650055493178436316158851851060872904523017550397900021700937829736779622129943949753848135251582253222583761897070611400142573778985847344926584351885694033460150814612792989473205929401209796408966304409515567991541881991533129403024949772714145203034479404742287964432306066000934658823047617908674921307306692770450170238377074858716371350437420718141873734099251760501988136578484937066021498626638400780935727433261913365764643053551345396090341211871322333786482712143407361391699941578369582274462379108021145168887845314442972222755396415975471751753275329175086564136108500014315880159291372825354142946634837188165201205739293747868285304824083603498316413783550661616145288498087466336332804008275689642285825124803245853945890756838562962123677109022700933915172288250604089525463637910946936437505997088985087614142410852741204102448427027092446916833550628719827003836268601258214366623320115486783303134668074947509092703659682108279655338703284092244510593346482872509145891665993083688231754885260550719955622030694355883970418454841056499835127818132591798662055811843753270592362348593736179157718592504903197268770817203150220946489664166621538203575007520193300341801948722912396129312799435132242259639183787509410367179862566150157716540641085109678857083582056606840257176401302303853906049292920989009908548299578571033753564387199756681694835674398296495086438998217869036692025705875975920645131941559186195327270353800403942343072754891585899965821297642311087005481867341678902170666580650881056825502282340019554299882679032556646584123390726468185501479244807134256071966626529054578503615665637217770263828577432186969290186532943467798951622146131882423445175790269774116334984531914041841302702902049268447973145640064202493861551845993141360610964330092388166783840956055835976873048920578073067324995247974255365015682929550808669440625201350943911664464138589239400753599140431738255148656423090955857218928170512449882868063194008695207302021864908724567519061727475410656761622956534451324181305447983202065234797888164465151717125273284708275738928074845686839030885826159811521175291869752321285195709708498544087269251583431945384660300054943143392212945027068325400271940679361975819451458496735677723251735570736987373708159451856219385274778404620379234723702057583530068514795535377594030068335287645060942164848477701504983851214998677764237511505529988919391125233233468885503689972719826619388829181926159791719533436443915118698320355244482289851273353544434563192600396876727664323475871708129627971792230534386965135995253690383826270539936911838698397842450983913965552717918900761901354928388753291761550210860278220703323368019017914227700666272507580200090940094768310245196820017430773137170338731047347051474368394753231501207869106597192523023210704498984765566807649275737538516943947614209201064057405833324586339770043058799362751430616659039633540754682006442920163468943735446046489933615274116577550966452787512544290962194851087665094485459462597594377677512933829531566840299928035246208675964882237395643825512107256398113485076885721423417738814320793078493674746218755259001611507844093995980904438356885464270138137817855437646037491874000580438533770027565092133025047176397619825744429000434254748405694875065380008910921606205704843918152881950027418131665765395748540934993359790859991088016922527156220643017787350315599538877635980412814039561539520215321057650337899788619408667981484826557713912861265802570795192706670601890724759089097411248205543416163174991211666691697314913090438906783995613334030389062289324166230047468919349312065390114447469007359192349358076323087218756826702808525411118462257597981187534143582470530227884818701731237779187135176956633501197984160354606406045613651546077969566589703748965269891720640545190243439845939777524804402094514747657885186664970891303110979772480922618594314866655596752467319479249220546623505554138821025009470220065501194545028247520523353457111762705441399371309401102749030784868355110701203451790723253835658746251850071368213251644172013611081299143162251041998400679742891622722700554592542884831774097274643838691260512307744259511876849350492889789242509360375546979284161217211299781257170846888710856698166840215132743268441623242196176513655440486153355583775361576491582895956321760846487969136600446602712489637178115347264518238200565448649230253148453570882499247165927821727842662825529240995853168442073648382233030050498467200963612941634153063995812152320031964165999678650465956033205349012708702405676391566882431452287000097847544252391390525957817912296266893609758259233409319438664981643976383491351708684192484246169998275938229879357724140199837059473872222688933585203630784028004650052761262072185666410223116982574553648545885629093367654846766567340868971494708658683385513031981498819813875780566923972869275036763497374924720448484553895282346291668158752654340014603222491066004548379696363156376337565730548061620588281134269684944105418646218822903744612979791125146645976848863712111836126556377031961068882301730875919897000974720043379990472995250955465085768728964622904875999415851724748143793001373679608537619179628419809276207702666798473856175462359580411264484240413915557857072237181626487961628038068869134254771814419546183161973131978872764995433075372899684344384933239204061952975619379173948085224864188061446487148158976923838020960488410364149930949252614987605718858645597148612034410529700957761481534018042725318310266865275015918772467323083060700974839037161911631914829300524852779844927588930116568098724729928591638115693630761377876332285744965512835156254373403643097042471778218199609743069558503156522997345643959211141469462432731657025711501932962405723744603119083996919998923976392240140439638841680060575336327738679088563414091679950283113991973833702080282612028580732692313890767003605617921290420246424100732179363737670986821273303897282766916654307081033709431389898849996972658614002050609517857792672248235310817420523148556694610407261334192712407054208563194562997908434856112167405664168297605333437054457943321717467310922649814780078838508424168206222600280219980454081025611354547465030859457261091112619052164343856304186050609323961355460472199688790004863869614518439150969255034725761284494125993760450074600200745115065177693884018345376235145189718100378762384968380523747720201468574083020886392342948523391560423941664498198717029833312307112590473636977277619061192760530361075148195523188514382450547015033831098417997283063532660334033730138209781442104916734831907317457079941373317769874001687611124932926543453330244353070310106123431624879405254125881432870562708401307734985516279231999567746854417019352641521125789229577782475287653756844075517048965953427316966075529971338088657525702565763849482581600362068398745724918778900721765467974621187186924692518386941962354133113741158157974344900112744085947536122322896680391304962540199186229676899151571136469571962672360214883566742889276983193181662038158309420239057765705810536322462168297371695390397828296278103587294543744122738436289473355761520694057432968108972809586030274372246094341106339247197809977495146625574935629367545703711776845247786489477787449745566188050435714978269847506983776443837536270024819005458756420635523424907481520254017689753875125852009040519711241938046311949137481175443727278924357877121076342306691992463520015802559134106443576304300041521292491618117932361700358584830181083923032626166813228417270410203361148100771272325624048979020154002718192818532808204125203051382970130554673196037941175240433783815630301211685909352877386456941098121091998251835152239999521291389584509771468991617415067766363609370165651665986320377034369429335250553490153322201717442862483618989642478414476266102606821122344032832029376805359155103327004917868571251896172431872652179054222460063406267136147550183094687230721594487596400013576317661230261212693654683865075758877750193236169902759635258832137739282971019137292470617716608073992299237251804525318102677909862453609341701386226253963205131984456845823146594953127208403001568394885302092712074524939634891048541425584143942133266621515481229798845529432223584093273977716582652774518160948961794445260255303848710891217889937550003787413838426920616696126144184935562741839695900047961915788002346220133331977694340014522754697751120479280043811910606430579328321618581398776953487967298674648809940809102623022480680444977881601313943980545878568309351905398021337304861137973339199575758093073280122178188596705530901598613065164563424651454562014577457429773298755250815829112340949789721975562726304985699287234568791560409919531123005397175231238203419999777722195570482813961615649604692124845118639760279651127551616828005242743570071898883438939803803945054552249214994277859258704357438134451874160025995508767810556397709073989431702329916800475648105317680260605763837391611300267525938890834630075153985535762540378993037121773016334126708595572705117908253049207765283315768229236391288949601674727513879725237344645338223305589056597815960781570359954394428335987361729275993200905360482715768871459540661941775935140337397937953191685690332680476970843233637036273091805129858713170451646350266964528548672012843566053482278185940946606777315532136286615005792861214701041350680265476063599424245137153790403694546713822984650814184358329649281960958453960798397075111784240738458266713140425519746845790751806486120862269699444448834914373199342928721686553203688711126787855106559396153122790685104363248166443735269832795151173374406556606326503575803760306975175421295072792003198098117111077006662595771628636083821937558969668617965042155329735651570016147214201276154007928804294306568433002342947415172194836748308936702180633061599501371002118405954999708737273623631126122086288099697030856771768555536696954982183018746039744704010593505017266367329472141629050075424604387033704642048644694175420617476013415771059353018537035402719124060231678438086965404486434635339411410678890424960275521809529684578671040822041305286395075383898087707861375891016515295413982781940941981511343087911046946162209352367708625875904506379122167143045353224665274489395417583371671920718841536088167471440942796880144682667659952590773877731394845355812060817858823497512931888902780306551035466937193425542666226304732025623376276314799952787523825668724795299081112781731283318155824950331553621562227299197565424625047183755878373703884659731260610264462919716146619147736956012236994462100065297707157672923630217219496418865228517520357540282243467399380690497101983616846470733636361707198291796940410936771239681914585844062136030896066431561650593399698845214585217965183706120953377076550684317323207646110840483870329647705915096730617648304036038564337234301141580963413778002620477511878995082658795246404098961419805705649381137796088871659410059491134511517199015300249168225552581484991499221041580825803971851433658929270837504332913303545776347839696536826664008092316388896345673532571851738985899642711523176434925228144464118842596717625819489491641483375306088434888154350239314141418344165102772025206446729849092029031570578505355748352269056596401799924011379348704924146975986554573669518614912439567950663753475031922607902209491513916102919233988189453500632200523326942171270408926640582514320427202780363155145042776344681738602451557231806519086987717781487157334674131842898405505607407152839014675000919517298650646557761144758115699764062347651179675605411485422843803013390751366235948243604216437699727004684146974384047065135300507650493371064109629496771909317961784241878519938622790249862963123719045989327224942843860919511227356620037419400757402646287435178597536319202662124001778990134951879665310483584177373717621770810161636193521344925259468244652701811887865845895282748774290526778809851432957321932778618480746161458075368926872024120389651385415794165913611445071262407887549755082653314380670583520700365722232771874873727528764942029230358603825084515522871955562906928202966662420994862619412933839236624964031817437814936565939212770630382787224613724400779675075645834589677350512062576999560531293731191974494979883216296065119297119611313343727090496084277157112968778033352834526815472180423423029252540136457117422532453570424392687796638474980221401261719235394225330621372986406239960682629770157764415808327666265030649096335350387545178839385296837326109661305029513530540759068273808784034267648734487517184361377013473006837016383259609974229816367025511685557337607033785984583245512866168185790510596760270994022805844079842495371144252212503408326281289678869942910826207469235807047138190875638325923818536485489965667269053728757120108690565070110853092657537253037350959731641701075822508836961581179118659605338338420142020887260979253301768164018810553950839204447704830123339349396166332896712110517891591825595965747273130040003604179071309171270619203513711248496152779983825226762231953386875194668849237235348334786361380068016596864314584099979506486974785552946486650490252053903908035148004911343149714312800807734184647798513947190204579291961136708558332978060223865715556213842196545421367159701719462628635268497316187616357449170725067469424979420480375596533684587090950083197359963370560140774938709802980191745448092949766796556929427545523966161238375146946303188149056343039306828944938770639659760699414267685699465735150415383050960276650747109681593051382987689058744818499106809195294394703470628657775156564635847407836277427692844425520603089962067112408348096747667041781548227215696996856502349322672647175634184621223996535405496410319913444030713138305301701168663256561383367785752345154124960763244877048172604087228016689219887596449368202442007764178096546472626454905595249128709112635251038841778830635503454619522408322972707947257253135139515564106920184668008232021462129983837535148870829724866664598035921530212041358683948668236311211224237853779159720806975083011677164711314806585474757040548034660651837847464875303851912096207495285940114097562784726316892848529630289315974853343005535708627203881674450531699980296737118866512976117480479819443394970617020593994464152648560749282515373529985549501986769717235132579954589240763973420629294899571282963475457671050033780313430919004104450955265207991518038670455716733367082066531332518945469016091686330223797682279533339325350744402342200707842788094480719701581063547599362465799672319176522861769934553600205069749251445345841029612094817320139302173862634226309335543450896870060288064238060845582157567632984871794010716568840298987034129436278020249459590934703647069938571077145673831496195643517829303762952261478272138105004107407760187106574366589553146685976201208476820384572214879583284866238216639394347258009940206406955495834169422791091373286304989070049818353025524771127425756398110069997299606508447388541387419168682897751750927835619795131913481817175293822426166675522152196151884423485645252079102491321191660630104059730630426912291152957064709917831822257614267884441002833051358005505664033376406654749769936426300560254483709587978603839888812428909736462110783549578572515730318302040894292639907526955773804787236377456071076626979249527384074736420935790014812684286660891670961503435842509215376142589266127325612466824629302283525656560950922787035243907038844247088905208959744370300016650420065763835942037717060643079024302741142615312936185077936221751084902423979821947963333246507527072035769868172656747154338804245488701531966105242121451956323651830443543452685930037215884086576295967064507310345842113139530682352243406071454622622196298067045106245932206712175326155431487281257996722920603117773812238600438581193203552291417611383777311772581269249274973736055399343954541278280195976168001237455417364251274848359949750469520767542864336894077144248185543415481989414471498540815789707326425627635179503261479296184585189951614501551837347415237691177490450424028015275531284645385432072348988509055147571513499028421923260211685158457179623885070922443097657801214776756297493798610610027058959580156924796141346400845291120354737054850213366050206598049050870468637423495586888159702753602665071688404532243655966312725733658292409015282216720185727274014018172293287621113982106239433195267184446601827166716210312560659122994262555590130434830983089965264466522705032448320383636945901270935147357587434966622289565669376616108794670827398552537985442795629638173862369923777806441892516815837697671668360155517996625099922512866485724132807137169414224755667814001070845573150224485946643620031233348412095724349034411040554883197303499399026283611035327546448682099067021505639135977531901112827474250846344814067535904488523696165781179791446825939466368893484342084625623441075468430312084575218877276454974954887805157694332763446464511433846953085992172582317455910115648328821225951633883689810316251971124405438595678624862424823549811021291266260528421486497508372320578698575788883186437210689645912625128638116455424713325845708607240727593627136501575378704510973941354627236517365544038232671106230934411631559714356857621570008777179214565289828698162308015422155240219965193339887729094209919903959793414461599255408516930065500040577149648528989086636878685756387242135437126318410350695062996145631632100738766180673639769720165853311623160516741959746341242972947954384552065023184547775686594534146902242697135443748719358796643454601355270027727250865724127882785542940320460185492080430697360164966985584140284249779700136054882500392535720431579031222768562885806511595406646855968147051038712622652889855133504868830580181530248606194163080313160439163396710018141442327108601969328859000488274774971810426159416205420326033628955163069283744247774425248152521674427495633417880976682762825328369574231984918222975369423686668164035616704140844425412518578598283482184886369157577545773159036733371973797697918513589990881363910897360602036955170079440040664359009366836890234400399789550610702039603350653973864415753855574801894079191876056541986153244047595754875598780070926498239778550531859564861567090381608281757428088993125490718092514129777929947243829792293530472053072535592705048603971737004591989336445022139464439797779150521654380077789993153602416412475634687917996447792466482838263280486082705968268479093393042247470132488522423417173409266047188911612618085021957933593302378084631798785613093209339321109792552787592585552632317039112000937825202433446169874221980553862249467459562509694696714608464129004059991715280805432646781023222066832093775326279741632220158391948709272048621792529867264681118756607142767589141937067473923233343592077110447742894502433760243467756504033624463721292472783563028477334814167271498235543668049998859566239352349229458147602934752306481312358150039350839601316275866339851579382544187316986903353678797135089959939608865506804206677108303003457629465310613578721485960018596505033856172080414114117199274698354077001599113958074183850879282964847574642421594738732310670255607168894852838644146291820063633177977255719843481390160820845190537035187645568725936128122251339170515428966627854443978687070827528995227954748724390863048691189091854147198678094445009727671218939825007670194727725587326711756521003792770817464624096406975942117937649459204577906596794844666700223866625395698785724682578739805247812527084166430014205548065414750852989542287699868188988806688237151093339047689783801959329958123107011262832780084805659469474504523298621893617269430364093922187185534203398221225709158808153475324649480174462104742751887962579139453857094318834118579484312031431361390749002739448820346099303889660567112003792135724812412130454027649648826439448969226591147771120273319693797582644939060834995931459332893712433915801486185719958905026801355714697218905496643285530672189193439636533579374477441780441625067051360897254648977269947305182373423268342818309749374628911437224360191995807514808511882788456896685710415226446102533830402118653443902875818125704310989361271422633624826320968995561232228428909753599337482060425185078045192175112042230440064181041296139770572529975892967880774362542634739792108475296889488225246867805222957866808580646003493486254079135413253982504876082825003785443049228446702782538363117213079074633372216701315351798019194086449791386284176800321553948190472720961773427233548421169175953233198549216513886879431986134134882732042333323553395363820960934738942665399034051623903606720278326732367628417754297007022607437972021686813866813326465239373899950032959884161566733282238464996859404137224139313684566159657836313269664405817471125088231913258640082646317884916379533510783169039706384403664300104001613583583714649278439478394546170881306684648115750917837894937024079281622158091319860067360198355516463503791385008556667995872103139967462505004586775750400248920206040145891072243808426932799357760066955226968385844823440786261517728480395460087629892773866597044667819741105931618600067794398383617251033204995916331565941626883857719363018233997965730121580613338278063049798769548926200815560413061233035235998314098956312580951189558404448504123171621526416560197413460800605206211793200680278940904937025972028581653238138261049292913763579497306032543403515706244300159716407781657771897225479448622495813854399972832025153143444497356348246147196442730548031440287253876975752816206588026526288405372011858974014144420449756320975987662028530311911188076832632893381806084976993674976360114110302072045627497347168020766984441465539612377339159589890736337511201968191101362902549072077291881567103483248874181106366316729758447627807326061131934789125900040948038311102157893522925158878573437659454507185828128187087613607842097508104613685823913273302354719985734684865907519295760150766783388990812823204458516836146663408248121046060556038298819283547935735828783583623424099117472863896992943984851376750677012151589330490478249074852910443186503464932834804482936998946109651780101744463422182307026341407820023641159500281515976618985248971195574165158425625411672618504208837146696083419989382363812678356617714386362306982082043716733253420120024865688659437958647138940694178270556657338916440580123022713547426933600813802909499505900812416848800197215412024141772745497689420261284532216987639802421467851240216319310315823593554484638423895929590540388999414790086157179575329667226295338906727050507178298405211093640009755716423787081540112647243041518591180081149282099572511339477718226792980072201965807165145858077714096921586002537362313416166806677429265047150965591179985523623817599426841093739435843878649075931961129421885709917019903426942783174128069638160719861685996461188458477648755317711257534305081292728639420280520515665116110972978462508721369256132684552826848955556376398407158749212906299554685806931978962338531043085673099824056132216901143238010455783525287842092530883092720706374497368116819697479268469025954201727339259559581093033651538153556221144037954280751696065320556168655899012729341445284313540097415408104046128190721576036986473427932795135524458331228846316206402322222712993630658535980526671077166840530223517699042060452359625968797333820704729905926495464934730040558792613216899496987372078829683258806361660369031023214617304669578241311453487138956880539978944034071143321186123124861170006320196799450126801594133288540790577269239718562567204208650301999519388940671189656623388906401695128657037082238618099735254184043951614199941150076002469506238688786394555687237800285503768017389880664027390422179343085514963506390382427281480280127835326842849428556740693645325454255308665495357548919811018090170500641714278316845480532652959713173536994781242946622795174357649714447639650976914788004391217056621023496934662189619804439535381550062430012460613565536818835158532216208844953767665259837509167439771444615745890301379642274547275949689513167876823685457706480137493366845884839886472550955089879450678857216854177992802250845596439902169153309598059867096014001112505902439978096654475256137594559068573386804504091041102577621930139218057469135372949327609001550206588800752999402981175420715536591803360693205554572472109079817293010258373213424731139663216515906806021386384657422683609044318462453306889050396564875277192207419318454617793619622260530482544972223821850502288930916505362770475330728888850366621198125129490780666883804043619293865385775652504742081948412072186296725512487422302434152289490560529495158384787811153943129919486275546015226150802133774091723361784243054642488829426442522657696297384505402697151446198178680936411998812378980372339461720399148173912774067836268319298099941430001202945885178165189586192725740632908910914159090347072108379737388034148942142574975035945132042655309663934454227917865026865612671437117268186199672640585655134987906205914834566195330974205972057402719171244824121895600799819034918575782485162784327986391191888078102963720536213382022402443188097149426921119516358062144830490557082317838866845568546099223954246221764161264824018757609187353166493165560945591304973861699118524293236610482256573592023469181354342721756716287501531066305834834035078345226163199106480071553809494846620824056811795779564340026846724943387385602583230091233925817459357736559880576288276032469082738817888900285426774879028804098604916385129216370247693047353390614065658046333782046544506323137537262183492807556107908842579299933248193508080635664208010606141287152367464821284263674095612799094950410785422414921544908721204933091024042502798588161395091622504497782560962994295096839698731706896738845079208711723806361483521460557519956391028283861296891209235538449693144275727033021623030246248457758708890896336579861804794222928375246664972817822219965475627837142987051107258998909167299324039450318274443838196594807406696260355157396824072740180368838447934220989925124662556411504153068472172767449797568133376390521187620204840834522599281228578635476358708155852586469149282466370382041950199346349973108035037783030651124900498654046440606617845710094513403802918335657647971053829139288088506672047005343554394816278235252294473890774832933125325916994711899895445943103376864368916223044952844340279374676636438655074516058657057540823872560587350156247774291772592849091191908132000880521208941893496313280317001683730996394930038910533348278978514714873626883101372883603285689950894788384762026945360692323521264434547083803673631167610974530079241072584912017066010315561090053456512330325059864453742023462586764881367598622428323742480475414272392255271382923032157417495792011226201722895921752378397315619538392758449133281375059629344741525466987886919005388648525141419303507824553407950900960472611473849746363729782923193510368494396190008125970102003020091355835434415681495673773292559094152391073907452064555432737858387704715864578493978356678941253175904807006608178748404468669292070714745170950939528408822988531460216787597312145075044093742338740879265485785016067349198213818649487798335790781352456842586176251647155123894047787969717440304663839202108136260761081638762467390256695820064294295415597342219666352014756644996344273855751060056593803956182019275719787395149374948347574181051321198676025579919931903523633102911044238994596130504920358651770968124959892205891110498399914813445984758033723910976240984617943171888368262458921251122920701825757770038510067537069384415871065493749434169698972029842945060135985923352948963894079420080120770548671067906692267651793183250074689047451515007510483800050685601234049585338160608033775830598234333578275750996197727502287909185256521498898393387958207416564009981098826662502026796607069537686299601523248960844269388596930021496988222894608568875788602570292511861338076717868596500277890488691172445180316831393714803229355579144971769185971968649316726763670525870632914236296902438513213973723210633584670660683026028901583632852133089086268898808680863800624152087370185131542164256544491642809026839144552446649335338668054368094741067633140562202402761571728751818249246945012594508835906198212043566866725219156880735031421444929615661216965140734849737895788007578532656613805670085228548853943259274284187337878117590403162073487354996309236915517851944057371874918931856997306988659970462813914439049323833412832487035199986110178101197474050885332906062373093504458148443943433219143223681678347617685448679579653462069318093253564527287804726751741605228047875301934319298753164313944967263172365614946849940449994901489079561288298693963062368632453616463487769664328765333053932522581756053293659338374808724161143225590228845801313261601792239034635282637911619691572550729772833234630993012655558870871046457043543173809919966137313651716896120624614571388966527157737368615222995065324713578246735802888919111471112875693762044441697950831512472899622736958247109282479566635775939340173260336818600854104155595401074147877208655847937799557852062738435465590031810118432175870506154291543591350883070000565249225301342494132920995852561273569308173083628987678552161461688338489809877885786222015656564802307975860534086717564062777842633303557634830546876381435661265514640644886315184597041429967663049636333840856409862528364879703303019591119826549642656775521297997137785750777142674428463676889469358448732964851718461817776382398621738019751720651730307224586671340045191464760412680954157277750478053492295225829747767258687568969311313345333155988924103500008513867228475201425016005755319308730329336468673388459840805844717830224331167842468283296174368002126145738028083637611838235194511463224165177400035185829481582626622395284787002561677509883997927910718660162416592636923131933573713697813914000922733579601652311080590125582318357363956108117882688136641350759688932873969540500389878860571910710624328475382137320436136325275266454465105347783649174651737495215943987057140305678614611901896604132785031095048977555976947739428844653899468355431681170036173071992664690314965866291277701186667636639712952694069569863690352107175006728020234931689082233093017715851766989578772274604936043760374763935351141169375685352080306316208623251339971400561492339654017618931091820560715563412565186009453700157156895795157478786510967178239889844134871457467970168653648277495041990741613928514308652824250818837147262882687219443344584669885039552429039284949600039929482816542150885997470294079678793442979035948272116378097494723761514575699701029150347464927549224636671374006420201634055529015050937172370374442308631908069541049418989739050699875354750783584069519765698198066340058495055341257743411948680537238340564447018631393088336995490271041038498995296206599097558451252514253879492973715015675268474047865015607877099001196818408083616497146565318075774738057709135260738789718081667681417924655201105782183535462139526820214228282518581217568927923510513188467053294767225731602295465478895777340062978965997656844682383000559615499912206734774349645695133093955651908403175708862091419832486461469974781707241052928414877931024224491722404440524596471195111861507943093651451614503439998607560231043331366590844748297093899331241709328314417573308449616839430559656236390732153034548362254881962867626245121844396214278271179528850620149438469303657818295368472566021901320659673099941705090717254021614777296931248226615831471263580815796758433452250624385456278731009645699184312424534713275876342272577870322999427814012747256303041837645952775268088328113142659067941018261720743398998523258275214208384136010901561158766646769377885491523393622791839411710520371147210221513721440548507743743841417163381667948473122428263767532994624543574547713532520005590384205647284082742608970250216537099778542528959321518012110357614597782087504709700575932069662370233372824553538482744084267992961386598457374560311718637290305705896592680390265331844625471695672456178262029854631205215197692009967862996669012435434903133164656569667946440561971264459411906434662175369095421319213642674301460269222570861853414125485700108968707545567478676157062727241708686296013418365266628698327104810758968662807425598184278608123471245598769153718509182561159074969124028047691584105601578367050324192340953853030177397143384819324371592921539893321612627962681519969631556818093660740237583080693325035825979244403564409443260609253892156277865796207651219783728778318786504149264204255744693824524283069318193371995449636061873517567195672368110833340924924552754944464456893770735957555853416664844205573896162439606296487267643210641509178488009171143717649321434156267923807497364671823121262179749596006533567055483364985446613385591315320515091706828341347917154312926351395850825110191705440101954089717543154102047260871499435464550294136660202008871775513491656190513949109185193529960906547902806451743567210039730528193758053480076353508061948416734762426192755509109612702178905854547014079735278517406721214526363764087859750321574804292209469451165679937540105790868796005146967135584728224666451718492124193927936977798349800920680366032596130983853953206604759351709630828031377189856796761881656471701728299555943865777500922464344490239028337117474481200562982415494947362922337155628909681163135729386787594374887168068431279362052586579597963063336617674385089994040745825895949729747136598183124410814149791970245207203647432255118965709372395954205378211000014402078611815895560026388032575082338030129027081352946931705173265742238109107706018783572303579374545310658655001008059937292090242776434909810562040143507419937798746443683764062118438843483326232457697625222287089349729637945453442492218407176461976380497214168131538315283363243966100545902941034351364845284593870456339197842463887130259242214561360471805708974921275329216774095874134737529686580480404912367614942930716579974417275791857557502041522148541811531288686373378834937541404092725291925468414853820301965096174864393378394241082653894566419786324547068747598021249818323641280480274966906766880768485984499938374585536510292839510200848610967469610980183356857141102155753559032899312331254659784737974101473540753130421935879584089518676342721065025425888656601546479405450212424826416894295407186427845647191269339789543173629171508062443937236661437158578925832426757656788777597725455101894004487663677979988591598665621398526297076237188541985364466003079443150177435990595756585742077825247841168227001663957335428070712891116771443716363822302382511035251585324505085353389165729512874702324531365772637044666540507293041643391685001347786428243313261773507534500976708417013857743533656862159875269275446249552071986923985291862775822237368818183664443226267262812315630185157655064230071017239840227410723361472049064205487543039956378397314431685078353400138548975017366590000314317441818669446097778379775230902126354804005777571421740316741065923241999020370370729043785982994274527189411815944849466614724924100187328976775473979506260902712272903034056165473439567898796186425300169046687142311796152755545198797945152281867876848169492557377008848853264405725039689099179675959053728411880947107884113965992259745878052619123085670791353519392700169363115668828629660231180142560047359257680264533452700126412988003712613335397790181266631703264741143521407342419747508697728957204298059944672443845296986635875578717692889435882219571551805646782843219233391865313158619861982957022256725349559810820413933477369928592555730079321578636257217147874728993966388706035731140089128084850862669399660671259809810526502303025702096667466410712940556162024455502621441463658725556597799493882588750989801206827546055796334751563216936496674143854117464732082163478200633354603791023469233069140004476464083382097782130977497418141051378913424699100766592653973322539261239138099514011585532083275488724352370968087150073790051898040031822792929365084035096578251072406999337278942343686650430172511044753173938405772564495472140633423036015980904542357834520581686909110977848353370861045691303114559895773475710043244759347579556976068003120656274899698435352162444806694757796684640130297350124359181976495567283012830039821253626015018071341601165772222054265684569967400838132477878197329550106908545260164140457128809768353430623710786919795794634254456508642230031668849363466212341668009911408932097122118104454997366401469111965385357270655280430040176445000990148734582678677272157818679644005361443357912707436788456754230064015307390879794876096866278557908983656476579938883366483062695699756691102587362915967049183938015558640708917618954545821786168038672975285933955291233524645726330661039986080231015392641363114589106573698303657839320114935357578984679958377042249026650285435532329277056255075750711637274373793470937903840184692126416592647275921504327540413454759711483701374469059889961490253205389113013478135280647771895259093633620949463597353368501383609068722615994781385689644404261758049762958448964345967742767608799449099903347981093514532294563125616208272655622434068371348996792653098481532966661455307681637496519007334794606698561103345168575859664926478161424598356667299213590433566751569458199372221327962556177165270490987107705068920131147034083601402469418221092123147034255563378662527358667470165066734189034565270919813875840053205028314847830391845689157921844527813899245674054542032998066055087303842835366579867463783451330543314083087054402830493670119521307433639268470398194145287247250349323252545673986573568252526864210948445750767695448095373676475160735175424771541668615978156001201803284427975896885971470800637769613656921079779613117339570624895566323840670820335345164017978916276288248119256134784928662721121658516914978836085152077624688177057558759692882081618749608344181268097619524966089527292501776439047617709448291746453297077586292820716367002359775096693122584078117881467251163565710879663444759130300860691021970069929437676497873629450864049657831891237412755564693274646180558112048074037322850615199179670851141539501491197089472251738351253878614197137916766970068285509333512022952429266464813703160198975055069885672478893442134029463627547914327412938689177754886333075126210927222089088760762930616444867057130695677752905885611781450977434443064331781345158471026645379864957893133423651636431405518324879298397130213726644615131223300205425865409341333647905471223071916711532290725101485021157706949170443966793774262896108349529877850443134486656251725217125481703233672999660185200320535699411106668555717282108306735234838169319662332951890974573932215027280014089314015726779157183927993692081390476791451415941953438879166020787932269445438027736582302387163479760560373306562461929302649213219872968735872492565807703210170254489006864582357810378945458942968429380699716192639042587069282876253018611172693482366589389203308231938688262013503480075150526964196197962930961026842962627694123637012949687110163685227866811507023509537839276809687809481633463598403377125292931790337138425788113423470858446278295980917047543358754680178169565245608982220071144937221013908350768502702548737121470812483461820851838975418140801692037179043293049643941141015359692891106283788501402809287810802960815159820157663103774354791132866611350210409994591730992106875915134985118230783599439307281817655542436139507944416675082286034257180808421611453988733469541996386891406549484276694719795128094426354287810475079804537858185493140261686854792403773374055571896333241368199144738998619550296037169679523183987825615459099058088810775922776971894992068993503926502552631681573639189645973291297388500306538164753728070367434831927613398461809706588483642576712617107748714213910810521713915682074146158658505426606864168816520567858096604084301078670363328298876571561148032843904511808399252429798718990196662969842088383328815503692113842155547734103769120258082535340555876747950454219751127828216661322403379598829719572540343398599929097385050591188026483597723722768975768867730431244851161864687423418502369086880291542171672118207595575654607630707841770133704189841851856004052054976676364258536990885497582892852233208648004670135230618853604226640088805369552807127530059904401734749263153432271602921801360459614876362813854464783531342171534445739537894891658487404331340293934299479712403564832132714473759641690262694958572822003945844386549209280484756009174369484379977896413580736674508265451271070387103076585393492392355278163074107955136197283279851511022098957827503070100815544950274952701271153738866286224655040687251608086997110353478436807000792592028269395577253741572644228358658484554598882956459921252371351038605885748696332611209068493291279619106641132906038369455464110668937158973507615606556689345926529054215831139672774743003179594813665050067731262416127516666076004420493154685468854500567009911963727001668858965321740259390222792630908698368591804316954128420668067283345137766896887512408031075717352068173765725576431569795724548033027154840590782084720721729438994648805452747503018691845222020984504128200008053694290280719241195925238358946120370503326338158268274270109257296665803966262630404860317187942585987766107872100779541358437261712496474149031273372211061384710982143082235161999780395224339306978807846108039245654394630491566916887451152528688119367089246251779396637138715962911726863410222835130669316285116550970044702774508485901986034366242096470648199060316632320275417529682152589505821199636844631185261645455689933151878220219098707617693515782458808623084532554366625079649027279379014741644534967547473141740281275676163956371015572745599011190410416054212196696464829909676351574227864645351414983879219165522621236710798336751855095339008748685985456562516531082711968538768673721891187127338630947092235316162664627926917113943232681920969603158161481972990950106383233549426434987307820311068473325804807763622147198667612399578965655060140450544174310518180756520809803330150836904786659916507618625568577092812398007340879699159071009275722869433200079478336000301076478923666999788568111302723876480685034593852743775213136375863316886847178769005480438479508596301111682334502962111188916111778294390122306151873383288610061497989297889630201046811772152352927436072933773503840652480273297651862746300994681212569622276016808389195041436823128195416205508893736458680837982302358090440543055232034235802528599556654691126771387309494160055279624715379121719808763095941246314455329302630314922747188532130735746276727032655394308557646323569898630185754162061605473911233321463458097918363066646208202427570550961481579288540883229003353230396107050279318288952666698883837903976957501511674467368471330690991726520916643866016508845076344555099351215763173638377638384671141524836923730089420364716438366115331993390234044748790157229667813755863963557954398762958100074681938087926251816953804436273337543706116233844261430639846154736451519609309930009215132403083537412883044971441934166637821532468469796949706028062347882512418251668250865507220717796889102818487449477282643513909455140177723066322590085021397713104961511648711826140433455739913634938805742082959691249251764336152488154693494268907850779045109744752024565865034637099299883397261408273601451522254405630803207945991715339176342287217045087829479419034331969101702357021871038347971793295499115792092339515320469478294720920693690154406848230580917488911385886487500749131218870763271690977708083525257944435448601775191536597053523062734596805023235721898558905341039560089534098751018144337464185533845816255708876495855516923354730205910233632438005458586289506182752500904533960703127050019456975564538408178667116033439661987244396483768977367159770003163035617018806995740368362813134362719360281940192487470354960218536424043702202111733117737412123321554678247826599839854126309097754959678930503338498475495947787505307478566421355283869877606205561383579305695966254265928676638164920523930445725732028149708802095853438573135433757008651575697103031822569687589559648766550563740614950371022389445402609633480631034661417275174429449180331913638693984994799444635303292262133979499167433481139707401751939165720414590363962807386167829495062447066469164079713764974241802541012608438656652487074907968039025239279268702183883524147602018758540173804505268961169612392714160575510678355172477957327213175381107108112323355355183348308700994785876707625655157282987047979351264633607826813013889350033951487541483900811966209775894095654637171771835115026086251375951327777778780346589486734341674504792071865836498367786286337992822107822739213043743144269778834583390422173052320102656338359710969073025413574640956403102571986142501568011456512175589300191849136955791471201810760178694335284021599236337165333217960289999860117224787006233808766271451438247134223750655115791664479265839146209622177965829874026217972131421418525226083544081898614642901868370401925704521246807438267177620551280410845340573563724293596542021809771651354502274024125305001912812999643969629606219657740335131373687275025096386221250940246878002927646127382165123401131950207111940425625172223975041113462417334319054198557392978512455618930443332405302166956955330475091613010641894212302332270721762777725204461098059619983758326549817154252645932728828580879330620263987574080096055997950096378994780452423326567877708902064090998381684961840636253163449423880957778512714399786057424531381985409147358817486905884688586242978228795829383817186353638814560546049622600602654118536028272081223107677862837765190479199295821766977751704864897017367992037157113787512237385722670632560979410476339676354878952219409448559504392970044787537250956570378955824312810241041149427694491835685881511527037845348996889213456663654209836823168626930101285289877051600635229881421103784304323610034877513154817037864836156910507530174071717688156102648574508346279527862920126346381424559340400456833978186788812460590288974072719977102881083073616805263840682573227838411157102358682894697800615422959121499150002264933281698832993509203513694149258795008406307301794059119086581128295287563418647056344026772908962159349829487250636673901619687152093286546337581720620914669865051052199924556944177584115987685511386438744988789550674578372522052250408900185870820908747369072029266445241182769833412329435513871330857748053720265958613534511527359850998294992778332668978670898885078483147122490963795643945895677461884326038745834787167048573096770273265900824209884057766706109628941146825861957510029039870689495952089037464424441397167813760121465667653544993700378968736294721282684471834444770165894372526678212682314969660633485103385585614861044743231720246384263741317363418960934990731441713004641659134073497385360084344408220213195794671351322959787266861223497384426288271405505214957963065006891351963140727464497530209919704854154215382978435399357634182106490233215922221070380693346143476473762448463402641552437630955123072414338446742383831031986703466748922979860475660380925464269955349482090211285112106144641967095769436232651034613672590573837826474937836885301373700997625205226162575508560878626246305861834138849968221138429903638972958090724256798599185089913265873877382716754669115742162189008470136215786117507213907020098505124393605942375311994627678691310576532240423285747894578469142771467232074572970062947218956663202239035438146241787451861356093787650812550239238002445831365125958294607531043198697165609044298263296639254861391723684522835239890028694275503195947908495172565630097971212118137923112429765832187364898655962083790355806012026246696619199943725575646839402746230071288422071746941316695648786671855652002837507450227382912899207878167379965951217493703684090204171809297792690330077263092946854362025278292073074230372155472471450230839226256389624723941953426349815841456242156617993585328373385037234368078519774080681814006967710030398291325686566897825319441231702901572776574202444404193621640038818584217369307097344261123645290934012222365445548032625052808854612139755547255918876060256306147940870820246200639316806929425418183561743086479473818179646353662905853814120929287955884987102119692374183321566966776527577457538825244187689584716426678099955690052210867085713044113992938144194589614055700228055627800383343587676743399424621770248113654423313187306961701075866944988616348052996091492745879134738357746443061592430822428894590581357744977472522813325278674123411115949404713448567161332679931224507226884025140430061450623693305348119149881133008900360477064903008940410850952413392083886916509974335646935507254785556684125135522580390380506388003824223673453415250993854780096814600705579252628117609299761065939543566444972207901834961376981430930317983005690612735320954502219552371071450743182838829247561579358916201817524586194994010514123620749830358915730367879907752279856340272443358772321312586478115940203109777824015947779684947823037363862771265731125975567309637615313168964087822678053039614109907442060780848435030291293713676696289706237620395661695044295623396543120306109740780609669080169811156312182513086865960170214204628451507342978278738720790736103262072909985598287755457490589533451491369696331794895481485393390241737606007976879072303463132349921891566574489839607760301333177444159163871351192354311592013756350285272728539269343253527499835243637463010683143307971808938881896572951927406636255112795643045034891267933305697132147232672980173457687616327631671767865004664169779469119943276285017103650844869561881320295288549836367425464093250415731458726027175486244684754233549925592332325626760512372703771456873546835026722833351772912258222033005282557003411690502086870568457399716799279784463092897062481541539437191615032791353414215693444729940919460210079538858876812842757761404346152567384068362456614856935253522151100310383392382868894582696961160325264098197650059640465472429321270916179177392383557436732771786751818299894014435732132250589173499342705400068360227175365792753443363029395379104164754911948349460486666677649999194447304493045859577152033057434355950683260239456717477234766245569365521735025034936715365027631193556694670670644382753450048406333024252467596898544286556708538427723151919010945947111292574133069119420383093622609854209576113878236641051122358839381805939751701461097527015830075592834432919206770411845540535972580205474835200198994496379381890546952039251878875638444794738927169155408240176574053995521579498424652520054975099307563955374411541187108510417199084568550649159049651253323402172120530626732929911285965455741990818388900615974672232107604828578938975109463192013732871811268156346830489743650622239055607762115822244131880767444215189757284852429642498971369460142728926540150649581259157394406410035839892764755060749000975590649940077992024019081320508721254365205410886942473669506470566071269644374297729932041868447528693231967057177185988969717803736061963671018613924966587623077226454383082728063431564373404029607788229823736466199402740253143880444764905214862580531388476861287817510052052330226152316217349769552928308114510347649820656451047431030874703803966110485046022634159796473608039751349361716066786239155963365048535697264630007585299011252420267534164817041814350713503459508040370434748201674137179583225331710220725840062525912009030656531900860679572155263950352794009551014911629463072122849708981096189124486625991753519103023222233604439824593775561813200085302974370034387779463045353960153763787266185301270822952378674949362004789313197364156980617120916427058275157264308041208815447593824026438593985746009163298391980606123428346312089526815142302677018435196130193292371743590280579490555199204057817901879365828286015095739933336626543573773037107715276382789514403504590889609977659217125660184752056226987945926570585095081450056509358186778904706291496406808937655848688615409785610092217446222035659419580329441992450656010067031986584028059189714674143904929406457910748537619902485086714778640353319404200950192332741394209067630900315621937841460987929973850115624100171642314752116540237569087088598040868560813529490658837824253520829107034989020496058681014025990764301529001310476147795362958247873054175060233708350419640635932031305289991225382839689238286278026862296695832407839471956429658281018505313482987399152881458238491692013943153408017488621263832110346595690193461943938843965829076692264439739587992839946762172717658250186738083187421231293241593254102139058386660505173970222434739924116561884946033333477032612779949137019240543628190398177405911189073856375998398673804099918083982389414969961870567394013601646421125224874888653784067421582790965532645504278556111915006624079259158911227494471070620583001530129719844473896740284869469795544887428681836137816332073844881150205449319156174821795227806025979096655311495503229335341877067447720329056246436116909469567404095094479550552109237088931963840122758924156126878484494692283547260271050487551321580982984807327933604615824250780099704973978853966910512528478938755364520206565653202203976104226468569426746441829912986496419128692323245029899070081432075036972749940296109012482076011751967334155708101386598974477590448330857427506234149812319271959492284449252232157156904886228732062199352109427731582338067852465016350391512754565461768848317155665343989621314602153102444110795748245718281207174042526220068823175481879517186591606441465047238737402835507073380952788001141518601692105706658148111505275678164771596083925571759377505189555274100397444083458715770534281691467089978965936855239652335640792546541941650706134541113837405702433359305629676461534319720952366994100298849495696569310183334321070280390643720931963944683935972990685542682381816609797668855831780101363890679091664614623606312858458742485529421711689851343899633040789101931820534145248500071013364648462293758067505829626508382274417788605550966853628620057955743918525574309004841495337321325274609497437387439483118660867558737629774188901018523346567867184091762782529459705918986091327306106171445611419625940018506311588447143553335657364932195502869095381820106998432972405005798899005473673894021507362425353616163180917480980252094950861387058796472960040556402748990554370737913649434391471214252810364060283653700776392920461692772314108548267946677897406170317336884507357525794906473490546284777644178569005748689939656103626774425457810021483616977375379755282736878341258374585445824466412918665076653686659839673540922706749307394865499859721265656829937018818732831440333106234113645581927908937039603086263634365831114894982264341660540639372306861716368243685328320649695264827363750984799474689369490658972072540593314949030740952985514304096380510895384793620293759524757303242254856132644214873208619674524595971211178206882281810689038379767036301809564450849594219360465585440938796664929482001100341511788516305673384898351855073583206282893882980486122672921981407603322602665631478947746549984468161393062642467583325252770015329295212349164192166198949719673314513779567712238432099495486979020753112863797392420575765872673063622393886229831428066992840879822298278147535040784263993477704330850412879858611423677601827244370558908206462744515605517589469551797729387393532738874748126106281189181669080027976385634810127871152191982078490234376972176340914212846057174485555964756248720089027526905587994031324996768231326506150020021652810978510846519501349823867790794829901497968390267056073063708494700157473404390064891142737641515255616318384644762229981073554014018225554171543221547040306196852417882104814535081156771434060052303254789265107709173598205295376990379775429181489822300116356395553246650145630552591776772666731016480885410747443225316457833576006172121569522079087666090869189947659387106298326665857262167538913071192770569429921603209999446204555843429557819380707754846957011819368639264634602990426580523170273109605267638190158173081134598904134124137623467061352584059265233194168331772285442245827808603144999589097811671498089062681936753664318151509370949366895445727620745240953117078428479797831082634335354766505231509494742420929881174586404115677668611215837572390402975651139768122183064361830327739821778766692844679540916059240862631394223015451520695211240721107060839283466273742436256439718535784793109572782232482786254743131020757266552209866885952888123362514938620725032797955091000723121684985805160464590416135517477872707284623095682998585004738080812428918128561336951779797563920079071355834348497538989543319462592136117060529833026051860169561740616720742936449229565461372762930728999167932236622256898315240403390739659410721556917012400104782055787792413780165637745861424586616680457222643601758105102130799195038576147262537254220914164717825866689318219564461111176121045410426296317880689039801912964081824878326493930881033898433825787034407024075803327773800987835063340966517847763185534320710747588803076044206723593663189723074275076358032527344448422052448090870334728670789781288789424720265035134924740951276003474559855053452461997382150143786953918417911160184871465488727748341420657905856982513723957821158963870166089814498195817442780069081453048490753260046023523550176720378741399902717035425972937953818030730397943947665835004037349841023828333347112901089333070230468809434525153785427891433793757799618906007355612902339490202711791382970299220183830460309293190146230047719096521870223156656910003933120057159708230165577654904785889933338352716360328405228708600123357247159149718779977406403250464489606466004456314784697859315995551965581813778355585686471450692923355647015013371414525153088211331097612930510011499213811963990381860688243736951426277202309865743332227098612888893803340878451857612933189202421412588762722053919528369718829216757662379244501158420202998838157098763571361188566422596621277780821705094430082639039389382675695652702542463115393231207142996274557224635991653834159307509000928199966091752243996567790030916179562669738274072436392135871122484479722528915871705209246911759611486626666333985004281194916305907558668474283289889873862140727447571764352773901232083618955087294158727629085019733755562410377440342808799826848946085316890081702746254172935470466125277752887578562851888189463839604592717896412239891061820373186955199620810989801262129430889332584446343920369124839111446913304111942886663084576758108845388575809116043651495442387069325109635879773733266870170796688187722010375560323792451321528809687734447938049785653489697561914825986771963379454267070458434225887718506410150441539106620660345105257978589221516743279961189148064869926200032336181483466267582957759871405372695114843623344643021409018116285423329312586437585075020454474363185176014389458649108241382037419525783416193779034592800267001955617017878832891411403165412680605012240598551175376336763791021518712535321680595713605769208046831483617919869667170750206670433354116633258531332871729505845708875320817137051601756768557505787839807764367119160624810590982908473223546118962346287509686290248438982024040803379295510796851501010095961120777630942182703473814051868589437549848680827700062326532685283659463365296633334154206603823466849802532015083700300040961976550328813277812430031256707127421803181064803488253050428417256728202761910236326396633268472859728620227115666270280971765246529533370164349431094728771091749157344465735063646151175420010035878502585430109177805851485375914111065026862759008838154306398509363118977699572853869876670198816228892458009173612730193837264355015271666446978222021417882874550574616265729918193168057007435784773432496240205098045224303542431722813286753235654327209315067799058874212231592075203979275829420428801629414543073811430368837771727568862420801267555272757709292180913551568271416942806525241719387826281497069523903124460114983642702000812119424697750653081558072024918421208368300282458054112024158360139717301061009310433302725233106027988532309424161658683232647344768761203662482571907812551023366216143874791256101223344109601522814382858245820243163208631610474990564352195602827719462321391229635508699758937420150159507500248429065293990941289417385898819032541915630732854142077793407560293071739477005358026747881203749574875728548148891423763443557849613254266766552370884090904144858326286518135441443269426408305385496832632335707195932996979275175137909967632386918788570739757194339549802563794788162462517904760020946858229507282966451091268912744287284845157531889010327014376196902250234440292765298568289203321713734303521369201478699233747415239584127147335896790835173981582526880293017189406207587156992575913001524311564513616648468170061809554791197170731484479135738370581676279024563054020101653074567181364132495275797984426597849546739868457097390902949192102171958160280712265587241498022593381040416773034519978423603935111948482538117199640389824671718319772155254329801351351436589358851027927452012868564369736153872423250974977873391075145921524977912388830541603608695211501458497076310113779598404926940276881330802266706784106685586133353299666219473637651974231198443682002881978180169259575221054561044008488232656295465381406698050582952006648081000002747991761659158818297649602748016891888839661909521976672000780214732902318544194334671358188543015376746531957584215566176488369329222376898544834031154482146935135685089410163378284336668716340556204726331160019287179505937260058455651291449025731157604721024028845853953814216338007980838638734320983960328743494143505220952233531845362131884662528390488593980039477684741129279997554643654024355238207358282136643769358455345041755712533833215909095345620657578726242373160757399889849048843776360098959470661728814579444360276254366031866893751029766919244106569403643369252197444351025500641502831403949741272019825695031893143986192087495275245777302921976307189252205496934515058025014840904380438067698029012473774550938682233218579758341157855875824781102119352634390972520004436633303238385675838257821789344318395599421923614245243881233462994487926425712274491626206716951510804206064475760873684237741258153972548109226881859079510928321669243720836743184648002597325605107791188599292046745659387452024027578267278781342392856658892171022659944429166997958793664096158182585557221004858226708841925038174865635695412000207934331345631385191707071762059961810299279999168614085686538514074347407987196279327630788752480554440127224687508837337152004739201386005891396643836009211592761179217929233819711172090530527275683510080417771468802260796461260256013274901275909922718632120518456087782053137297648652243716629697243926452755001916497477066406178067912443631216219724935792586524314589429651553339803016169913928849383010428079207226140067274425510644573183851296875505901467660621101848774077177067697960009292834523376431958158521235289600061782607564307190590292571043440108870308491814028050931838844294841898189658355386613548878529015216366850931888793593544973500299805498925178714990422228684922073142807891294661002988855096883468440848585938366307231456191660884300749234667147843114321661190782917604432815334209821011675662277352410165418322210223480878243336955896250640611026954711518135423991733483629280412220610627824783901886192997499121361631441907669386481061754674116016242820645072877822430979307170396155026137805483337577348872669795987115109668011255450266598691554393911082119919351681164376344487984826249148841412891140752517805473902161504200953084615457392546921423949434982362587475780676270310639144680732954681140162497044154482223120671807284016357782981078910967135393360718362838784225600822010091506940856276835020323298063552671301745214066532815968039395460508537934480913263306279256026466395793576464907334306303330717140841856226114912935891753915870217961536685706592786605989578347631573588820632062891969367000404392675724722245529274031879361606140803407695570151027997437545517337748300934242353482084869822744155385501990720326577558946582256654053054582428974225328888106118584683929707538507434650057526207295476884648806477410432254458518309114461115714653388468870405506007067259036734304814213193122261960476647806586459377597164405939916347605930974414530843434420258295981805003771673020729043306752184257213593163047389038672458621572779385914517448171000084645768371265796859601348600231161914174633425942850024849637074947587639039758945741859503299368176727318139657206620347363589709823704066683799646144574653008769178700344857333225342203892355743557072858300889256639830447054741568608645495195997657893211584098442551409499698573396467341939316341360022709057930543940116791032065622000359153803950212000633306141533030602081437434496873400784759927727884619072870662698659466918012825313723160846294182457746252273820303768368760474734285766188514786267061491795723110089924013161437732361792834935915026655966911184072762606293808058189370402202144114020627616569884619186604858126287270483859016205737918287410744595165397353725522486434123808959147264700938391709023753226880842524806082184109744991111393958909792828619531590592991870699483591479922550342370817462962412952246333540860613148004365886317045370279128539484924848700809384035095974899848635388812390085256228716080737640571510569468290978358000797613196745031312229381465830550439723050261801595993640139149584661824596318382686570569397664537263789399503926735826989702398453829237907987048465751661914310120031370320763479825790607795532479825036143754327941772587600227147339619950609819417407051515626552128612633486934680962744446833766573869370824720146441952998963988801976536570662952258524647510318268793085793507196394590534627282908975479212027923826220847889791768900437895746414392579957950203921226364415836205553104547544024716366180271565117527098723972609372069400482430845813057962043594941505680969490247205817580478362410754271507412324259655989399032946244731581464376337660185474844619126296341782891453142470656738376893173939639581608140186035519030220699099667449570172534350754136896120471582109782010978827789206415291601017275287448794555845965163013712071626075181592913457308526912038429260833187475261621827882211359302431843168078074941612796339682267235142663036575377706589409224471564315311957956170315793009312977570096046622004044945260921918383671913009086739642796140669641448984061378111761629958844919608987050968161599515175516652177074322814117994209967147886299009309433132069796914660208603732305282877391367576764885278628563298733813196078357547031799884592802744187272319705470980660770806494691640863520512642307474206378950329355463680104895865678847598051520202133187352259703687529285912715334891196754149497309105980805051862574284805843692840665524625517001987972234991515782188812451985773024400488634657425709580451586333020281894307200688417661100351054364117598878626536557881284586702952009773781118322832501714187914817316365408490556355443981498091823128796361688263809645622186162120868038061302719299062497163732314962938711511373961732781535235404877781501199007252695243984936785645640744697495501749661246187422164842778468430228231898351205259471319279446450846118658654557717177261335928815903906922895110390084627421191622445375915194644690108479950040835068913216675542416651830335552319430371706799200216547748115718451001015609015937373229488319045359636065541492822324431132899389352775240077414317077568765829329306740972481850817723038965475396414262864253091925599525603821179532411214964271164019447777106820692361388401138815382806430364287096296811272458610396228126091668006214143362266371824865215860103736099849422812885631549163823602585804363142717002051592227290475774548553442851011650476500545886496347705315933676122024611170072726591825364739832725443420760668453117809559651878151594134787882134987318458539075586992903931127852887951902649254149256481898867152060665282434315770126603860433841193895811371004453095576764609001364086388194898962911183014702511541454865154345260551658026189736647702729958880091386707772316458483617668490100417284102325599889431850076821659961889303912885134123762928344168940748569666949424394373759019699014412944054726494255133694915982976462784276054270794711394425474020115943031722033296351540289817308410016715649341499894422998206743816245753201696900736561120505727796908478791956501242314421055831480047271028707734391502969267952949285106972630320735046215831111335144182513605175449797186447882448540643029782878912568012701089469794215224188097455948435670772702173733955019696772711214834139477575415377274433136565578284683894119167889776772357785899190156433041613792900405482134022006469984185881366966561598981101384918741742117300560022459993601225630356492454514839031564026101238705571644452514399618394022684197211150261166013503481083064787540929441693045834784155738192824802820967989506293523691397491445764952933964944707192870176150925378256298276228182157871469162771219148890959862945823859913191553629830601775815014912012581260407192051880274926479597362048484436489901118153216148966280599430424584633809659601338088836831720351552953606201047568428075691486880945375439242652237832375507340266474749631680335448037081636400499976687333799121590131983520771005604122788349773119181819354027037813294033567618052809587733113869396968234506569420348977993477515557890936416610505136577685529599065020204025754971193875106557238794839880827565121666432093927198187681603885440415882640989578043755239276507485828787306526663218215902844087245003602938605746538576885862633990289011955268873004896469925168419837606402440470522860167044564899023947614485503438717478287934049733015089460011086668774501262808386655580288825879777683073917407264951753115666084312501296437579181161896936497931627168757502540037943657520662599082129705119513789678212875937084796034434155953557801504099137505516536167496168132792082148924300585275016439126833318533635273184215339297779532318580846957461102015097710871943076734345864249411492685484621732095439133948835715043533802133720718608462214397578104874093574953116121681691146977020451886460941946937093225183184761339718893569045515133635273016931546552322740583352918891884514662560313489062959374364010422212146384878977244072070755297078130156990819511119705356221272073450302073440575758472231207788437558944179699521983807039689529121950109876463396569242089231722449648825989866591717649095344916182284583390205947410639824003541311607675513247054852277364028591366787923434422938845690887483680519721461224276724779788061548310190493889273871334305985846268654896677972684838980957398538033804052582129055085159467179118577210771685102790425950438053973997057687125640349354241875218868863754323007694003644419856791657430097114493561135004108242335739196595886230949735975626986668729946800247835440020294046242561777813492444993227120430299554841014856888319342344989078280211057370058579126396539154628200432399529420059669462165512803272288997637888830083693863488263824784939157890405268865004422901478500091839515734775170463817285848033515505991385468308907424739667414715132020454860572373822322995050512831235152709785033777876369324237785893677681238159003734843089269308203427106251294079632973630201454548538791224509977561019900425670695368861548169949525605122033137024424784822733138084179108374831407869059814871794149013575783167664552805598994961865262047329515641483355949057044087490834608783632430061916035578462559575637508274434229464801150821432762741003142485122833846909222503495364565084167825569996572838490459762409850433189344994556737729742821696170808118650187925020632813836570256565778612393358541263809177871054556033333078291993188787161331541563333938378832504035349904863623070910457060719983653660703849300758465460693832581564002362619109503343559638158928510693539614167503977916319628876409243923503170433263554813902803176918257389726771810398195274996061602567060023856227457648412001359899372526989271325515812663002489851355206008309943181086828161201964438946216050007433325357574558302812328544823416479182083743778588011898620543852268911038234622711823248205775289741519041266332110976209203730773518268940830293899492454057948829035867540709384726497353475036909768186351536468201385256144314337724547176483631308847309402026058781880845004012670375694350674727139065530786570664018835086488062527325447825288765615398157440448441068514165510805580199765104480094453471442173311357116513419649089406923558824299263083771696440092035413685437928084420142969504461764752590399886345344424696925195412707300705144990249767656348868043966851963914139974487568434347136834676844051916283024004113004444635439041050505510885029827163085769809910212400511925052454005339968529214770116454886971704584898157289422313238090452412718283097031464399474096108860600464683716586007272235805456936804620574533644773097430170124146808997957386846927287223622259068626339883533362027522068814992612062300651712785953466294558259466437724816267553729242003179829486391872102475648798536940050104963216074652924836773322749608074811497389986871400530682225384941913936309214071417048557483659634303788128488549391609827907308734756351595963482816652177833842592297034258538056695427640973043552986870607447878725392814833309881562997232554758428313327586252480978301260127370011490345603858089190632180191165987217371403695083897073053402945120948861596505449659844213406249175143183564091150896330302839637629459504365855990554060934916627752537104516849725739070078603851725980874661265852194203748856330341725047855407478392554706098690884638252336910387972543713660952941573123981923628128871677629644892742231652195578266169885604119131575024210589637570779428216812084564224917010541203952957120195204321577912713964732337477777194568853725026845133408658362420072196879656645740762346388181483689218336723042186225847400388238129393906646321650327371607702547123190585232336833008300872371494795849051126477544251350772023720673832075963020247265998516742658677049842751862633308772020411931784831828432189447035934214479550387033141349613085162883583707743281052648872826234913493661834786585508900304036804863513677306279007717432024087739566821556383169010092954027606402474071439198732914043647161383551833645316119718126960533689073401603838944899473372068908494063306786301696626351098357307183749867588470716141876867617424277220353258026807488049625956064828461933524739242343320221459006746842946377469537895571555357271889083284593207426913285919229184986022981282280281156125065914095225763894205410569422758638265758500240734417103239316490890621423045319016769234987343720666309023286305016424464316764332849117137181149326945439605933232361316223858849988461618632042813841425101086069733490471207050366504931088204149899678978751518389407152971614017417997731332676393001100640420891220962391917227627520138974926434854429285113270763157825723815339590988450302696099317997512290815250185563348225630575107788165965407417829269308836987827369738612443563041686352848692960710748714765571145832192703981384257715459104798159178278627023236189151826364315955165858082818959884762713723084788688445830449062741368633119116440987637951499897759893754437570162469996232669380930597198344725493867048231663117049306461858653568153500820833158291926166996717829044492367864589104727103958716262228204584470907663591432061787345373693637447585771926607027713589046554641700813214948938239802853535043605247646503699175144376927330291077020381199304367391254678236557103419947164750260241312442466382546174668919002427155169190389030251064138243689042134402510207732876670229338196510484351272417915592419578456187715609204454884910507588159106011663688008826123004031950975316576830317296644538155245649134762516417086546353979028669028724262034018627284244156223701579695257599768371169943007175831904625589526197547234489179735027678284778950064327684563407258278715901124542990381081841607726080914153250114680355732997764801867079244174925539111424933583935717190413239535226097388796647524465638013693516248007165614132755989598436369226312218880977050209452303342776383571743178876358856280574461644789719660930395749789940602067527165092637595924369968997394143805255305966330819398533135249313495701321570011638451394360950658763157712679251548413891665300268517867117810876594826745052624508626888668716371632395951830775165356966127987703390005816791949373061403059163612878161309007032070015069989298854391351184872398488974547195423672600777311867655838495852864840838703347827215317214379815151412811373898189433284968713261604371317855294065515979218437806837307359176150972500586016688152807294404115869412173914701795411179810082403591658570819122306151291713171875485760470758088924422109831047398486944406985532032524841226670779203257859527679272244307330539449104546123641131083255548946989291292016138775200856027969407087650407813092933451429705801701321346583102003574348970753666245145445099410127986914967513249032109586326971966316054499758023144597757840320102447438992590483029407613057796136623155639214373999250572324248771962766763943179782314679576584719215993659634875485458829002085919164371541873768755270903963175115491318988682481354229389270220438365075798985035215894218471315931648490357483872961319714829021370678053769753929776424768632245920430914726841562448405216727484929437991437653677063082321936229281381832367826007867768586187632072047493795363151325162782689036128806973034551817150180130346638545669084334272535674529766613178636872712354560313648707780199910122138571036209429616112968235917219429998336227545085728288553298854742480318980603804007777508120244894972677220498379647563978743828802582908688529746606885789899001482470297080755602995059748254761264424455754395964497777486523272067141230888038951838259746028533879681323102269784683561939739348140346379590851897984096098408429715762968685673410174612047175219369189883859160598412051385938893162459905826979458353058871358346903567230621840421622925851522061161435422462580661596094447114667264312535985642513149768375806956574430278108313261794417401536711078983677424467733468586621440570720612363660077953373418049240720333751893697599244548152333181521477947930064190855450975143567687887067922564664754655076338186262091355602891820914462643896686339368931063573627014726983875278717609676334117969625027740552577953170230365704337311632655501035500673465946594218051234948202786286044587687054343741295213329061456511221702600021607082272943712151094223292951149825278032032531326216004573758007339076120569549882516964992427919885626890078175248991286011858690334807491832837533141651246167256335844677888694619978139909931780980453884383347244741149618615175767653425535212420443314306478758626133406585874673090155480956849148272684328270764119844536893718915059925046567496219293725529860313697507220503230399170315214589192376662016529959840408216074771634145412820404394434121116388730667687800461995384255915032137740016467159867416733549871750609664918535066031648270959290305318161399461412788626320715060147365596296107247519848562336531385342302462703391772981919769520230728462296561721021798602907223776131075992652643013597570633221960014468857278508784904691496142403665110004799805113772125683982499592285663571022460802993687355343008651039717555424036441723990813242728849140193894549337490278481223816268053211408005271764503032268352927760679475367153498594422757764560995043393276006019960205579910510861668942829176412066596042734768462071626155999856418946766148563377630758678278712220658123755988227390796635491556489329619622162402731098683064404601307368701352687249846020179910405881051225575753256758356449236957748930098045906576560148628017044559495967651038669342039817187964557077559436501961817857561370982728163928247575197524855404950587486077426524685741853543686715274619453295965248570780074049682185033016993755288796659247322387455074829411266813513286232388869265929544957081790845812997208742320214253084017665324035708809992977278318772619329050145314236796427073119615503664873029534359238259898092488451215893291915131340528608263479897018468375567719475450120620702800191580467940095521663575769186087797782588367867876593117811543683748170704068419665476293298959391477099418267486986955642602555039582988634562870260348188090862166075536866096139990435875782595324954156901490356511601738598558136635924204718179238883568268168098512619402379097172549099755482010783211091530910356427824227758372138514847765583356939198025617866005035296123569299395357909511453717697197771520170647080502494300959375381571651531831363954064544629999399294748580103575533746994874032537017093990693404501818502132010343875345570571101629778606042890899871477382300521622170902404333476422134175883517846689066276154040179380274043664000917378952724076656046677917820408124305570151748319694890278493964588243015662037682440660440299195345523020849091973936365902525904154421987852278030284501992310947753956086578601074529301560862149355873431254112817729038680092064396161767148490172619013919326572945709577174485269774966589638386116400651262331773846038326400187658139132582490241107324373961367886656713017983976752165567371504883298672937592905982120241073636570300019055762642018920605348471903161717433985061218231315935021605547106350285808593063922330609885971457453318128238710047474188550701501971447365152141611053324826450437082453323605957299413455833217088618793749948210463427997798451729718806646169364672301226498241875747092338207598127269606739146634504033735103757699060359731058928560603616499839325814574173789561008567797255751134258437745246237053654374468046567068347693475362727944250342464547871132301356681830777382823693067581214112757844255495139515381321140196855134621775700773492801010090489757572343961736062565273666494809407574478500916555436664613106959209041786474018501374224357607242589027995738993432792968863958679859614934919158057788077150594066197411205565035533268164206417653761936046093873460120134195412767832214715439509349390487484654111683652498395371362520481284488016078655673942892206338547693868731836242863036016849762407564740225845673970270848508563908018378063462887936419886412225574140164787374786582695561421590049144963261947942961119935125531473075459322503521696266316872928965081981302258448130820854128578691536951518424613175329303785036088946480140072043158052408248020913868483552126357914217690178524915721975244365055629884464336908063470219316775031614959371985378997849368017913429812795483131265637783912284158246148132795347180328075468005491655986186986838480972762110528404437961702691289420401983493207934262350863779800149656696179817678862008083832922305893565120132348010286033326883800991131569697687266369027965274097182311526673071209740965875803628865242879575135569300465228046019939510385919970240962391610025270701831214521424556478426533207912987667573401229348681626360718909364311076643017443350212195262844693125487193854102279425525426720320028791899319793916623949187864926881506785421087029685090672968850373659869357971393521479895589011754518783844406617802864301024893125376128978792477833032926698380775334758183726911698982642863190314346156140633816143934005314005391063491500811617242163487903413118890863026092198158580902144326106511812002718644156805079282943376407757419362969733776305212234026870437162700272881575502630362804090346387789968687529737506070457514038642269661629073866762934479306187157942049235878351405364446310462491428586351519117629105878199638752910631145161636911963979411405354262481672934595676167203610354670533367293366900246610553611181847989445017668931022523060592245040348828799934189118579290850035019023878214373974297412832749273268754330230495962696294382999550624583335791471548079328115538064655244871707414664741692154211786141256025623771504759020463305487974140079963887927247256461396343624048028796814425469498566635183776491158978739878743841195626859093893495006184226348779343291998543766571416274226841775665303151598280220902274027409933265368017768433900833179305990307907779767027682369547684172590287609333753652201914047276646229244399512457124981218589764083817796414624101221069689161067981634784565220708558225573239429947142533146881319235764244637531206063946719512445722293777389130191373722353561278945479673823575762767618178974556119267380631224650617489137787946718736556237121329858317922732109563009348626548786904481766066305590031819045482805372793464244522102737518621508109708098784943858188027065014329313587190440114877978818755630580207167292370743250667624511102952243822140998407460781573519076761280428429443735746045427751147421395297753707280346965868842339182757336132434838728672333601896663741229669737327664597036705106768786685623405963593560017298438467733786169073038002778121632353460919397323580909379242746573044791270237280751644136164733052523807285393895505133501015309454495529515312041861027081144336393800888065679953710652811300160911423107702859010008277521135195142799388758820000166514253271907963787215223550145198489941851881672027197760234139890677687973820518977366272342192271117594384394264860253299246028936881102845824878941326960992868726501354874608658650618372512030789840018015845193496438803817510859264725994459776819985220452783678958662713213933220344785274314343167168140650621220479009216272536062027979859107980552496020523882657006239754509003972227570496045978527095711448908991988625307547608444359589950268879968119766263483463559410519007349784396959556764088183774753527606884491416302990347571119248895316180900732266559489925980655688594368560711635299107012015088271549349094666267928147989511361401665945414872362037233707493360030454533834809116542846786231074954643705182172561647605014770904492464016628836267016126942360352604344024186981110762254172483354332103186984065755036571698933077835603358054447441467543553280937324676270921648664975386223648138492289672247085914151406346654932728681239642085420969311164081409797686754935516787164991288363577040505861426620135840102530930559427724392293712801220697309458084283084545212215892863949298865616658059824045360672887016085174390691074193859852654783450495045557825810112469150553093201461969996130623442700178382288888849689771905809240327941307390661982273025528640298367981185234035284460757506416060418936806446076040298147962252555119750984867837955696441930021065004304287227376292558635487942391688017135749826200055954541758062197529438197328373279105301776081843136855788217284337448012066489223020807525311076082769852863465031587048459205165740744698464682601212720547566189172175596680990327226043124707787030898467332924430476909747578120911871478369771246126669184966112891853836892952178024749876350284929971698344762094304720788071538043905267519199953210031734974101910903371975988601190927172131447034888199512151188164741029460640780639416406012501004672387397654225888513324582795117751788698034901144633075600164092651327792664252992641497341560332771687453786924053838668532122808854957747656504627855232945101807363189674679769848369819010026494927915041779882580570094642585746960738399213558151894056743013763451242801057858991813173239275124452596444233187400897771564447324563954417496958269837047619211866172979288710346359721605311391175844232986769186899620995474799827013676760900232970595838345602351090435898072554952297477326712200225609856628008833490481667107232655362180340134528436390846768323004359012907234574815294455719490172604567739382153972835567411237861558561019057130129213481193309254196917596488856901720919492101190129532793313027909880346932903518371165215579952643847657983563197288847603731138713383535899554573398197491671018085532379584482423023846511930838668436538706288967571422427647559175070437893319424988675252488693503507087661393473360245801748182324407760940871865810658008993608158135815274626968072139811946762202012782987517671499609284389645356404265582563263833178798469598221326673322194419957905518211417334964289618650404787381051024648180698385024429223008223946205230227723088066181227906494913588284728861576670666990977128026065724817257211938630597801860928585796258637864380349144213985541645382773616424342290324039138723452645379236012709630611724000778838043845038755890372311883255244577853032103488975413185914476477358616712323624252768133732727488821638770917259355081741590086961080917263151042927778010436960415857308364519966365283312462231690183640524050633022859191609710135837643912556212430131154494586934619607397005823927855498232534151433027877100989904561409075515901129178485091853510863609006857540135083491433041933424461401105582672899831317924670185694270853922044423926464167672267432134963064452235387882180264183366675224623560749591266188719298284295517581297446226085310755244940396021691416129091204059228264322552455432912104255897626534411814185335278733269636210386175074672978709392547207944514179493221868265134876777284326429708194895728388120419171627240778051440142991668373277735127979073398438999672906349021632699028766435224246291410897023772084753934543897539545557124447233542409942466831964493100970043827418010254183032069446797711831952615096607223523195288988607489792462774941254036245748009030173526573333080360432842009595808392790681741719531175743081051389749941921909749356607154313931119280567585540672303399036006445774249755711470189753936182494740278679310235471323974402031931385248866220377980627933373072608906568909004787554892291889631615725550573190185697605278969151288134655685365454249025096358108155366011464545120324348838038920939065446034160060200873738501853386963341034417401645089993439146442576724903096988341910525361328464492623150713131442589491965265552259154723655267067964127285714687293951550382343910833382776248826862939393701481701369957185822782258437674372350402323595714028946604749443301579629665595297895655719787918795513101711507614746163367317457750869223998695639131028751734837734584448257430979827313026553439172182731293878953242279124329151714426691938322929512150210858649757564353845532292214800524027308135048896189933943239192602147360098478385690578450921681394279577205732927440290237725852113890538924197120987522109070823887783796467699599946011658676670308200663387352540374893986696500366138015007731247487942837261497129171973498012726108274450814581705868561634287072080852460274302421409491577959023352032114850959835324776350757358585448766927427534879744156242689138098857755373854652856951344713853263758992703471322574342760848459907757013387785943871081514856764923372960358109730092233226381411378693338850900496070446593165886264317225140994802752561119151915066732810261882653606097872283306568650318430302617787995230929456511239506084492749840022646722806189198003100548932288106377947830457255080402999285024514000967599766664468603950283337228741156295245479894396737589498810520338525961054900597920074679129300018110926334925000327537670111791322644706047925088987418579974191457911432511703796319195577995108080726523290913504014576267921933002274269028412863505460823284296962533173732894136374393135642869961047183532397030892716624946390486665040149343123405533358864499884011768652272507660666377261989598714765357905635930012303059258473123548673705465071813083257644900847203420260966288455500063169242771367561530247955704489679706611987354989675726368012102970844910896892506451621503740144032913860693685136462501789305309300247795106854126727948776866931217978400342280144281829012339502531084629470739057244305900847977605289832794993516168397001940195031994926173601010425818972539158957059600378930549489101575658474393440665345753448099433788189550884675053658174473186721285877609355025332507938742965232993796518569753681753409380560720087191547332663808681842853545665291358243731577916211126542673032359141900105088396064678359085142165790229037051688053796302757335676430204432330851427100097988649265906509571126998813110387385862713454605031307664991897786874440554465404681310720114521298246301214907378041245831513493680556441393130142540690606807281784085812969203753243321141629919613262533761343726065757902373782751319189468804636208772253741390613107549579769385783159305697124876632970081147530032570862621745663818307059335833474197989029250756148714540136869746453954494348678738492322190356989228420840090661791692193900487951915534678691617441166043925379284631911683636872398825274263788100460713323814975839238398895302599184672012734802313798818225742778042591602384814671448359331389373623432231091535314089695591641767391919135931771494685313190430218727444754505450927210896490189052094348933318021279901999796164741817578305650782726284675149936333577724288458247179298044422264562856449830146617572897733567820881147581954980104047002359853299703114254286518514919288567432439055921916270652584713998069571815666913670922433090566266146184338853922422377378700601014882802230046581657064516275371329156063556047028866283625952110905401936462058484716155413623948225339963135493274634495967354591627252843701570067362666172010101316318132000345334046962942585615542382866162762534161190605073617034034570689038207794059520227642912690781476327806994899109507921095730600801853910327570538271558731041298538860584278686126911655157016728004557176474646906803207450750386261273405692507787482499489269752404487264200970260450996802121297127755756634141583762808088003475251598060026503625957178726476371244717142030482409702660242153309227884476296687548761096921867417732771251015647152445531717832592054030734060255763760409240462427508484122200853098091888834406203927796227252543166546859598517010641439012699668796094851451523567406844759165424420204768364655212588263601013540852565045930079877319812162644682449984340795943574877177633987334470817573318533339704034783024302872997684749021117517822997548118583547254005777712753447209252723186529663286959641119022509661875063473755718620523202892750758791128172841874218958901286073769093574183580439175821207825041145229275375561219949775851639686812991126849666400122846615113623673662500106994480100483501486682111687838049105543188511700780653445595971203736833152005483076711870208547797412772543645769020781445782158437188977219956818960095819005726018084202731233892904144154599264105417221036645345676841420465562174810369984609478805444488834344383050069678355618687466518626644267528676633746639890932213624504168765494473329476118430718266328447238007848639406927074529522475706748039667427152783732967828011769379429078644335133355092496660145296290908729317977078190167656321179134245228689854954559853250466344007750236381585426475673902035017939794695135086786040750956659626123113213723654978375375909326265534234250415956382021153492718478923614298404291944204181734864976674613658323611038272238189528558240193901145899958011598275478576821924067167528225600273540788252407677654560000846601982007998681406339805336664879355327647084256888197644948522659257448428272970653890370679733044820935828626434088780289652986865224969090631207967811965761090770555043311827840555990421499497236754255876766959560425431867687824176399048436819024926770228209803839600875202754665261527105959975634394990429730236734603967744878114710742962901238543983267209802809139638217833283303138447019419028128208957711330160371485382305355574919830853216131389444751624025385242324178837427334037608636168512037254994930977300030198388153972839982670932593369871431004793687603002658690237606408794709307972739119496560425564492863765902886728062554489080590934639267705334351132187248291033837075125857235443228749036099673237880495840412279034116545295797860799929258395068612382025339368506204865507660424248377607495044557558533514061827982654890350794639392545982050907980832440486997315463863598472983144580231311719579592813976302467471769036109581444011295081897427866946261894827985379984765135428037151136747781457682896744121937309350952170639338269002630767502249547167881878693530476149771967980065546067100210557468299792237929501657812629602584081422613160476253651232737192971058191158062553572179376872626768955348279785555981807299690548411329824111656076125731073872265396293827863773365516706504209465670115719354443995402991655393083136039824395567723563456332690804106895185173160912766362266559886576109248234627003563430328393740405877421866326887097246552239061148637408258354366894072219867528532972908530707980904345212368929466288739293049166215201407254654638746045816334394888336572112403702300907419289940572587871510066595735325388510162985469697127114840849003708149415035908758530538013072024399489119800284378879386795711873122275193270716853220724673038910394209620305284252109645718636454110746881864320946103022693583658824755966617948831547092324630717940589214878035519825725294406783016299453555183415257725532325679645645937818953519365035226533290244345227063098410167198291150903312621618196971886124890456409174499901190547403608118139149741370345098754918216068481497568108476508307709509890021432189932868324709352803840356921057230228143982642077056947643078661926286891087318740264558970896684489751514595864195175740345503631497113416310660861417043106081196468733944427287210554634757172425095436519960215707841210217731168954069871274153132416360685490511805425116638266409140293773516644452119948948752044776656315820074326646400145285927416751507938618179902868401219691671808917073504430670763204712112449534819259875517441307570306992057376957187590329389913717803193148207142915899703720319634097555602472331900849821121861015926446738482726628256077145848204974571022027287599811472177471491223201499787855865534273840629009281395933727157283820224025681800584568878193292806857853663073730387647356732473235605126303615956548501942007414266751670344552812356908231367962045685997358124563898542892973908022060725464357066321308454079485108786252394310319586739426343884787439749953813026923270016628902446942373581788657271118753862272091858245341486277663463173552777722972356253379927120653940333781418740097628130409986034234344783180287814563015129429936712425664396742492381214797397674863777620891367043077971721279615785510577504915564364197107497631437695321794706392756860799417920257784971866942374450378589007052905844048112696769878851718014345631293022076528787942477981552860562023805635142147168805422067266745708393950220760452443308946012064772579115412233093138304760403860380876028860822276271385764064548398418739261009005178199413773103281836523536691145287692361173994764703666529124776488160168398143433100398154581945565125390955470289891349194347835271122417904157395210370057974281976008538699854879093140454025287815186752138913530264335027066590259060261144132604686285227868925022713956571596592848547788586103040745780995677337815281831891033705688879854546628331126177010639242773143220121239774440938531587839949115017919745360624361129332768483502229480852484614912052732159133208811659326257109816386366127601558467665180953496316273813921153988820866473636104004358280040309886527998745794389003405340799128325369384726181037778450011290225962489626086905224935299566498154035691094308614100027970758010668597651334019844987655358587339037532582374745872144450289467921741918618304985411913092291451231905038393388091631733951907678803926804462597334659799381315148827371108875663842878378902183610586225285314665669895231974002091654039504358950934954779587274236427483350207140416787130372529967201757397637132043474957302878563918744450442639963236674566823848176489587436360782023197100306065738196750074990441529752602584605858178506058242529779983434942991880373747072841950487564726996328242939210172464119011128775909991416581816651911734402286866575716950913751471065814154716771127756078529695951684490894864101386776961939149373975422289354794282693052523635161575248643715513814402650452010164784891929177163950320133799759418560482275847995162440131009863348775662840389019025351452665482452306140987735683607631534719024487654216860062338807031295182861897737447584536920338937125419074325342439414113618055805287882768843773769198517475124206968179534006550067694757472081589395805684880421372925424908798430691249689652922539776784934237069151021920719737685287702132195706988586130637293379767898494677048371150957354882774808217223082102587745112653426501119124527030271081895424287351170278478250936119230087694083908873103055643213384110843343684318762993863946296713777784337649386597906484943326456805068633088673870008359663851671996468277196736189855924473055704825006829839420477293791968955603022562034206974837159582074157947894922197118668043482183284239386822835160218021249688353358614834244772406560124237877376086662867465414055842674095891970063202142058862737083513345892221047058077439148316885703765532679582180653383858911762112704329088164678324175655627838778433348880652258654981982680137074238208229109953430327287455779147056330812879516281626637199752128582046263709513145541177345682094125898637604882345263935324245722225976044737694487316697036949671015112630126739063462197406186145643517088263770009648165518069428065210941495561849061272792359277267910640829814395844950663042944452859743215862289934850926289885811954750659719193837840540516701439835550951298348827873846187292136776780242049198584613205735007331103589070112753928098702693526835515412362066364475194769869431401429362601906736775783111128303941268951283661195115651004555919031476899782677481274365544334220702451524652041285932760403803710152854742591520989420407190192407265944706732078790083391953529322986943391794491137853615476548500391412720229165810906905785968574245582811965426578337533861058442086189685406757658973713559882365666776684818235683705273004798719933843378557324430678206955327071847767621367034092172645137228055349120765106533283060613562693392686705118004971148818916221034337120545700773650251798168388262054364854252551799180881105129947933314349061011631673077948452871173972317869947987529578286362370592616279470559957773993383766375891156520498569340329248912460940204015577297358681728438826400747442170272636716087547708921765567557011391857937111755137836222470187055735085767845069444031765907513951978255160607040093082105290670357664331428231734079303860587039020386386957925247523326709890685193853943611850531466112865997347677518011355982094323131365672798765990644381693810749591472569967468933172357864975631070979677101110218495825757287714592588851259060199601722946845495630065912074085078847198571971448435582479890899391334069086786154988250897281642074230641867207814059741677394753652579870923821049801087223316813328278449209485046241636652340632203487556626367344609008438782554989191862078939254189417453455706650820125172424436926580010410067254845662522715286240456176056384585655361772935681125093389898546295254834875460031764823454980933821069545788118189708450788145654353409996606793063106616290190937721952615960112169047374226451821987424724260696927787789206756862870334438194642768519527258767820489407634285142475680154021810837505224236869766115459715155145197879389727337740739960419649420189842920208733108286386358634786117301007338052102604545196639840827770938164580664579082662390668922128854405259527373173378529179773227408577831461388161879626841952495475052723449511247338387121238673548860846129936712109664414354818738575992770934464652124469727356929044635370156877491827357532724319091302188858144431939806351178366596823933638866947995798445628994475529273970598001966997197166712208372020577764239810106493860800546957269001182913030003026942521227386773570592791501227287243284058547820963480570439398504980947963013223758284834385407365113088938722087506661302212189799601899339299733201817011853716922744574831382346372365576592138772458911886251917664696832875229169233681517678820229950104030660973418451314984853435811504229836836472392487571555797570112348849761870767298073149718835316387478499833759581849315703856965207412348132798795635175636611097926868324151152705652022032340493220394882170496391217124898492172570972887764841208557756333130985872257143187706872456757725991615279817998402230784286601336169086449510047002533945477297554091858818843003697931224197706761721998705019750531758719873636067067130879116428975010490959005340093700421751248215324378108414959043952319911228095507217241083613279890882560058289487988723267283893260534049610722713702476511491423634618422255752874067083794029027948573677575550980609932024734386862945974882782753779962747974477897812235189981054603998403359053786712627485969051384892967114007559112027188480801002157025041098391676446510046462671328123202289602526917447666433516724241156017805576156848741174122835430810283384663324775957981710442931572651356292004048873139697144914807399734528121679102507125351136466215425589952902191416059641310369569276843585943202182911878134951154722329863250609909362555987621958315200408442137211684639659545365975848635401549617573698855168351771729618726735788206941474382271096068401394736415758977627429485195399549265816148148509601719294877015037974107015028115839613622926734199837192945247499337401209376459647183777285064056422889261675065722978451161793486779829496971047673547593059585389078112262039543354916788103974391011883797379726660781105409946815567749575377125204610008694115929722724998667824398166036758377538169059904638210048770614526225577117817554829541370475216913823148722786626097263735692308344667849740235358616012546984853064172986146399634205558616737980165690093444993516212992341231448155759079963089239424820055995954076159790389408940284621059048451554300631747424183706405809378039214930234965781511863627457567844100225361202229802490827340904431536437923351506470492759555785543003943564595609043576513405370397737415774084754204987570096507140002142408299672624412672629983197255034698342953829411442866371582259858106376407386621866308065526842781177966785121810576960931760354812861499721875679233312999089285719502754693711997100938406434933107566385246734243041271998029075200001141875971333390983130026469676735546032242076405857739391317030294017594130080761393054730264532615519370858513469118679821480172770177652602770785550656517723001200554251248508927341412213457521657173485375779981430905067901777394603601439504544606762456576217534920407717567861915257593772286757753049424045233228687284391642701381068662634401357343289389080762838358537961389974096702005560858997154410029910276813287340739636450908500454881163995556162660930543891862241443590009596792657944115731933792346121800196076455273391612822909212845350545711145704324569577293718823260117951049405596989864579703075449102262164893993976431229869593322822046987283883454783551939727753419038522689872841423840658042176661736968897522458937720063417242319418325584706401087562102291747560618095759526763845800111426686227211557883910370592515371941622449762170982011531309939974323769534435067995973461432410039797002968364845205603918845019755205750527273081914857036453616962470096472841257064847209673850551199684200687324545191349538171477018948027925771101191728938864532196205662264022151760547166269336848392631798249594792801036262096674251242942913630548884908041976607160662814404996874712385205991624033383118750240497511805945941112394183366162312562868491562450816089329861068660728109192732300985211155554708422772013321565367673817215837855637609026776354012722906804694995727921960160361864478970389346873227498923596876142616112745006229262067341182628655944261364602459614841495672013640576913384256050543353499097035715815260405901756815375636649928606049844176910618170414455353789581471847807017807401188494818886688086224390233260358654933693242877702223750882211731819684123950434861715503296344980620972076137452045571113618676467935768652876184155347169284936681989427011309888017853627427668569032863678150338182321248549618680759716893569015025008403486941093666833088038271769122604963444554697371246732373811820298049447994682311239136048411997773268605756205086754181568312313857685348050135295836228397405593036417604091018159428954003688736508306676630541532629212291536230047865411526941456396075986413652881610398669554238235770784386732473723570946829366068887962476897299683461682022043463782427280007206379421165058772051676723584983806105440306076170793742537964572045737250882775589619353375561298807423339860303672841039408712884805967528524562199337223778294533401466947943932868497748014707531776047090122509354558387137995975414028649672264538412154939067575590340152437642418301330890015450976765392325649453462511140706556779056138768902636421052934836350726163217900153426134080138200251511176170504934998325913291193780422726279041211711335175015415613875032224407487956385494433890263849658218941720959703856993358610468517703790085292154653828373086063595843669035121315276546015296763579698659970231645793987644037942741021739764588050558564825366317239688189591366236319780295397822369764873281147215641323990568708035749981007839795014902965479527793193423796364086298321483287061807282328355020147804718196920959049260128459492614966104058317908449112789720029435460781009513912609593992672524562489448312956911531848097392456661004254406567040216851190565456320152164891341529792455838357200734873819043082144027324850848760745755736536411866750695567447058584520543135123275708561726209757227989632140235187956414573257786801468280009539123183246429374782025529529796412001163225313677302685364219502652901486185793070873316499479397615671972707813835904691852066916054311644910056413507290785057414909484206458592332327928328132228202541434041648522287498597151309151950191843042337969425920978317222983216448699027796120034260298536163231316752670319562195688650227444966670545493633975311059540568496326417396737893463651088562323023623417240377216658033526785740680753972416032596678913408773833065897936159744581074415695794997290774335360944197494548296206382739381100872524703074687814246349077451495224422683178652716478976011784315066438579935406677523084168481321008801242043357000803407681525214987393231999143616182212454982487725347873831205171533321316251466016146395066880801162209666448428675940253478810285317000460507288488660162248052746464415435133365798401652756951898674751317671054009674033616202948022071245287623999682244359795434141612591040442151490603015062501728782975537102392556630064560178893577926454585336929404606014844014534520423153770952738826861792516763654118246309564258532756977833245149644186036479578388061076665547341887386522186153847498252593709209265589739683640673369786286150983820657696020620857975684905150715271760912626791468981279989798790496095377950384276448031146926241730684530784113985692829894408536075295769350229292247344538612604199534275345216532687888131389218147477019049757336008701301758138243797252255933155346017431156963720516201624312499447400117183946073678901739566654089836078061247388460726406259879332032578543191564622998337443653085561715436482034820133599121716427704668743234943492065884700163202272410802584626056738011687062190744719892497371666706346029430191899011314556394583304041999217213003521036182673789983054527438923791080663475049336649599059138360569456407129323250752558917050159765008250802860763438614160622952183219062654628158967934429903360028373174768734293758799318028774475559732559739070426428169501491337798153124425775972111334066895954735081714615647392234406923230635227008194316675803149694756865419757715999194305529893934794762016953304929753651635374724201448565846279528036936811230979345822126094690473485786214340477777560833251304815005913082121014272292821322603750055913404648943888530866337565676976846265027187795181199814229468154740543070848521075821209668440484994146784510219924258780276393122608389873576409917577030720419791951770443823211370022334672437689306433730469765422516471795633508495865829402231151411543664880990225032517252922905295406796950930724919359325192351901574881927706551798078500281922353289110104778566985528143329710072943243607087904530417632040704207095475630067261720203570640690556892313153836114038392629585122546136206612958974858858072992806975733369732510448538218860157119352080248102707507851020064013080607552946322064040639477468470760465620298948940459633243968411921787149658016968599102493279128546218159476410296963274489914138679268726315419372997602279489824656901235989006397709522481448867214777799020024651000868710852841396743338244047741033138742319512576636682729014279498829588364167673817509696142458082829121593193365393549887795345987290943731494603219307546576446645148273524648213725001843176780423380120435453815576748505074606239293981947146135877255950266494853422835806569237943324548008242625374379894861411367816390694268378563222770143341734675279115031477604133263770564707978564779120426709874844300201742131057178246201302427002260145311440220118197801411261034348306946931051585706143298788958904307304744750217183600416462195779083600363447599117587933549417854759222437055879475944931200765064433570165529525388148741545951684201188591775031745228860912550243984257002603019362177036379194665248318375016866816421938509510225627307243770089805248829877124422584089376561838166033481387312866013219511931915128997231420411817169440554399794531594793659257625233668985390941953904295018473400188576053414104602354540893028024829663644764942874311762594023414203713387564843456840045681282197640064696664223999378439716790472971567468254559591264246663710895410698264095353244353551250348839600362942992762498685619993338940816508207735531839934527885405556266833888780813324747937772847936867324689575439300412771576153327840143829678977774370100066666828356936198452047262935051952888436212432486301765059240172829316069564810492811124040184841772121690903386524544251372281128499866837418224575845315729401504277510894900296424143506410409204518874047733860877274772637737009273350031975381274139735114721956099535210107773023799925274236541869387320007183071658615876028692431222962175221825106010319344998676477432982954562495252049750593860390436946290229014398330911113060355615911419538689567681088076221498900440723639388730038465406783896482028598674883509481071798370181871379755536727087927578698490847775456126265271012770035853346128941443180395950692440316472558605264191413292603783800995108209861707414175842350882029775870087480677689646472678935833131418615798560848413006072630562140258201563784389693308436797531343750944010605867966760034529380563799023046986483558725590461750496188515759773906750771303121752320656282318958314622492633588931980423251909308434531290189649461668917404298692944099576494142015134286497531341865502255252229543648396546931734298327325910203393796855674895277689165217999353576812118141170236324930047982482375140403560804255067310380775323305776456283653273557678353292233674851288900436008068719815912118840623741886287822123086994995686058459852425715864630034844699671800586665487221656302764368353778457642518409857276584646694525868238093233883984545506841386791341441119279494402259517067514587284489355781046030592778834174476336240741703706404166919004354312892677081112063010843204056981394512542124861233799061162452854505481703675792984600161037062430398701467628592501735333660779586241898764441165730104148246816809886573588504127747692873416191236267562991477891465770174904212965484212831455942544177531754925589549041800886809337301379250388464179622482897946909896257310642281319874510939824864405617271832550575562066584744372736502177169272164222785310430664167068242740204230671145886236906920039842977990849256458919231274633705795494050714646843796955076345078289198253875561076357666434645665492914642534654877403782559797876904359479054515417894580640308299315824724088722004790002638827051721410876521399384320318412764222120805969313974710515553816071125204687938505721658076929327866641398854882098556971230002771804663154196509475400841176050070303456260682400348878929467140608275626573187566222347806858902963909142705180323261168243157379346555793749314104572808636154502142448931391169823915913203120199545568138997163901532442657363164543746923069341318933970085193223739154608921192784255691863366175171728900850753256791410155589555881968281567602290234402736253530951144535179889059119914624016911166250894320733747781314851173758656994435137966068233734067995704875661586832917555610310096861668954952499338164138947689909251470434270065070052225859254986556751760382148907467517700025553324237816794963412644506960980515594270800220198785289747876913257528902366396479802890271294676693270420721531630569506747872137207416862214171346320691074925841696765992011581334185413477405943989617412629302566988212888998300440830283503331890650676054549195384283610126674967843634912613069075901520269474384113112217397152834976538574465108118690810120350565943093104172024609390132333174049234673007081238360873416166483038093597732649803350617018622903339030768154110402660261675197286635906994316585235502384576430997091079536537416787181006521079017754996622938632378025204120587683863794125844304292435696233631538724477760913099216135938828252141189226631556277302792365777295421344563197723791143887169329159750341945786904679248100613063988318925990077664897595867700214135807499182549568122278835714220544994574987130141909076191234443531079034915119945414331608540103649077411979442961230111103073718884111675177095111008147710538439796837863683337746820681169837580888903574135008723286204913064586130657933266085868527928178851106787853116653161700517743907691406716458296335825733957001666184770248302323416055962793443942141979553472685078622014832446902601432800860134390262100303020974672936063209617048787929739715779174119357341908854961850075828879277878046109493595085162597585438325074178262022387091667965611603310877810138709816207591945212538665820257026727262825991129027868929206158893053764708903692476680518538435352093802352774854515829564390808216187451684494076222274746880026838900998859653878533962895869231801709864463882994445421670618629253540226921659822139730003210312475985847338940921216930186707205619540161247567388172136537283726740000230930846188110334734247348792023859343289988704706027607823529365654295463160384991734493870779853493619554055369068342623734739821421682169206378464328346243750348697650552577989168591099783569724164532941742138023434490925263562759875447932601505275081139021618594525354536144236020919782871410931881776595038762051706238384180776717088027153501984838646210713625733159970964031888625309086466652990593657555488340510307400208981347640551938548651846375415203192919300236333784725071914842978404760003733100413716994365127776017422145968518250204768977887679642076168379047229205577029721281666219376669887137167805335527975004423985513783195308054688705046023722493022418720850503242935902252028534977184018328622849485009048327554338063669155650518122979041859099811513561957386848803279515346588702964331551030119629520117805627368675145733012248682262429175853750703984844695796595129834148290568369039021625898640913035635218368282411984674680563168774085833135263860333214792460956488926360812864576625202804451242467139740145961522111928195793071310647225135525408571246125397953069110929098937267084179870783355949433834399614281163497824563683708825596532038476764928674979688122235067441302350228474990936498233601950395797861142130660598445489482029767559949008001803071746899051698975835789502032507033309205772977716052868396340334349664840316941925544257936035770263444660308213976751571536858900399197525823461674369713051990372108879650361357995274855358184852177580743433913287780239007110689146958346967389165298314976493555421911063424182581768633648810928540672855060256236352907366095620690980833266150216814094545378357264904155656347327327427806664543941969525362357867941221255903804247275102878192694086066957956749658020361532676966884346744913707944778066742935007734087092174147138844177061588970932652371476695842042479118491168601846468136289716858750011553695564497076729905630544532545687435447765135599571766523165335875051160151881181213393171984725309018256967298204161116805956486842499040231402012163449563624744148274039897831863142423913860849024089968313054269337678925222200787192247863520574413781759612875779129951861165027312377426782588924739552836375414281243586379470184154716874563343736683494058621818302914987132166342165218074418190702308554988939057831412097659155059400374586390987658065293452603693004109252158649010738485861378074957313927283117119408631052318857033074119432102025760800355606924571301006914607920551930284262152424722090012748602713429858230844981190273154379732768200413633632468419627488604321617018816511531887143344936677075769011956014414690276893846006326697887026501621327308171034239418927040140396456252370779483666448300438115147971600335165528135473838876909020039237781676444733246608985866701557608975326269509667037233122205384837801556247880502648012553775109517009543047583085526419786609607983573963363590443189697322652898870344452534518893366368988623485620752652033484100863982057296190255052219110988173173250375127150294941402972115225306055323445818591578355925677108868381570751731599311425446996641153693575021586256232307826603036368968400957256839412731596050244375426010659253516058883193239637456610935257310158466742558807864390059236138979593845714243707818506856840533904556651152935890897510752087767491917396224831020379978291417668828304153070477651623866476271058969116568839449176008395092053433257607454105931248824664497969499040818674543245840076930560649277372263720267436473810636540233420539379689067348443808715298481286661222090296583538291816271358022499102609507366553279508523258004574414911240372850927363538183236395367582673991307632497564041356280331281361369556564721925040974547248599965517844617295169679598077453724244740268354581140471269397332299571399865763725317632096936406806024775274822893269469704184378639570763099701313803387692768080094483480384252212449807374999610764560222424053650939065782247921919169374674166258415267671384137105961538481307069193609452991723652203289015870483521170277289306734649753700690576922851938909676712741057630101431750652409011436685422025646696764151338312364720417786933752885204264885199625699894971423004910379344041800821949525413687021263412047949083162267280468826760697097079470191580197713308813824093224897526300647055820089135808670265974246356986802379229589873545017016536561817866442012014400943421603563852289814709273504826499617863620291186952495435899295742867946750076586908424260723331950730946011732546048120279472363380504665809596363584047598582877404537387505571821499491486442442748238268220078857340994763376512933316061171366378043239374178453667673946024647821982150795342700608852168054215911199695902876114349554723537088779124903365299490768902815895300221388370607980837828674211891765115806248885584861405236402173651149425743566496037584425822861599854972431463468955540921908812802638308018659080423196351801234440787155535699171632918548073992367557555952486550620529817673177024766863210762215595472070663893638438922864772339559106491296680393692489191650737584873845821912180648764301766382861595515121468121980794105631334853004278740188487784793492182163392941219236002039464271585330463900749154723272194240621719657551746643292619546666858841784157600876912594114754897168611080368072821787142360997604953027575424662327719020259281782823775313773723374112513258413562866985491829420768603626601326912293793391227435083444052095327794028155439097091129121683563136084568390015408017894235867808783846876934825486882813340051704864221287273729386276006116645368959768228875970776278591415330282476287033173513326102848705280013013200257221967507765613342873054206599526995226326496370758192601614996608296581902506547071188684850024858870834049053087862975975612453261134448490944839867166783946657245517692281927569779314059056824576383444247055097174997657434995683307846080784688138521713507854796190393748857531505166856134336136255606250925005966168575527620277034822213707237908453222742783560159926540163574735010844216947632840769788362407089745142848780968411960207026961208601038314701651709046214219485118555211092141887851142351243034870145755119659730949361202534328367625038903720399801987282880491686778506811967640075764759628994632231182414983814584443251188884206075317193843726254733629719656993499430768029099312067367920736287793182436262697261957173488556754618587004952781118445066199509249993117255695350891672884555746959892761933840845466139919813729872407994810615181990404256347251916197657940756584964792863723215466864926129834420909121869274725555319107304724694840978521529498739018968490823954900347872433086119150878885132066090755873424042425581909495778101831036789271869908435721894659684082595107569202346228756698544656920543043495047539891770366630159827159090994970827304340643313801397804159409740351319010453539977758707053422012246334133112939857854471662570515076353217906270542375882441825262001464039583233497474694699600440672668027438706744659394155914273806731567074972816099108282262893617617823176592071323891206417938775236135409702919903148628213989592146836663578160124185510226420818888458619229396733470210368167652949621641967131109855472195751930373871242023745642434808253553682396651090475866962874606766793493750944694569051399920168867370926297807040196278190393630686179703030418430385633247135446545257979503961217715434287603862030572538937105731818436710532446037789739722043930941118458989120844718058131305924200151073288640800595930836159569068733225376613401117528444495827299919943039986669529684802944170794060735258232884206792973384161798907822401973859956897351895665168778826469564203174976679723605180786400576067701386863665726827340564372553018280329472380309891050904835064653713796052180739834967116209171543136077314769895059692220381308522514069985542190334375100116999186334779832796374808392624347585186237054640036634618306927194789865035877934883812289590240867419063676553913595841222364628842303020545064374397647077276732757044385745892274724318042594574279833240768919298651352370466461316968680113111041554186475058551777839398638563560710142963611225781401916998287079319490248721411692793601268485061939404920290596335933756562123456349187310069129063591548598124735177255199382273614411520672560875466605018375209779351256030434677128635787718263444815369647744452937297158943976337172371266654209540592581045886403845007736338561659377873956598478691655771815565729407802025005727343893764389747156400204650286265725711978406914758956297296081291558469394823275179755384454558912894140703095884509635684755049378507130786335303553188576009507996196988528039519642191983411749766896002960948230567667528051803388637846979082660230363844486880014160700936557877797408560932411755898833655082655267469076031686557422556328757901328674704418921102038759829230349762601501742260765225996153492100571621841232638633243539553520697471931931263614551621691340299688450984808353345788644631178468694998810122697174222880560488104871624437229270357668490006595361944738333298490568894682324017046729229615481133012425575541378921766907118246136558966217297561969074713303661708954445721654807296185169621426379825746052528901407121593900834701740298445928341815295128311614762403243403549135642989798293292900334976870120290757250794542372929655648377474154962841756707786045826164145623594446235548259035461826666839615743827693647191488298177362366165523351915008626761666435053275034339692626852503609090561629925523607954541129723050990480717222523968121291245428360496655805711477803340186993426541886844452138697493448147665171603848228720344143720998542421797483575176570530807880981548480487619095261252454695945724824432164343685774404656071510519989638288254376826990670585574745598491191334217782994233543433526699515872064870851412229483563186229877573295785416574564813925657537330171500118814740904714711136827899161013968788220124936212136589480398588644492569434192899541297986411311909425595776870849773944243671747194081695006964611456875460224880378005481219614991406344055996283085901673560579317378419181023261852132750489841462017180237559540874904382072575758212375473907828953518558422122805069630657708347354378678239196008208028306970626374630423575617903187714192573841286040253335149810359486982571753779217991210950990652938553345173745540042368623241596261603734321810892806310388609975002592998373010213621924155114004506898207799262835085426192124307905273698359910955254409586513052613442349811411168217710546024125320463201865814548530915996582056552077805206660516399649678067977764309149242411400337429072067496157475575545579869143507114152798869961080896449345972563779014839028026392490438846559103824997106155548529305805742445192926425883202624976884131348481175778551795211541212687566433702760349603035502442983916396417180501314897316727426133077687941406411965779180736689579629811604301476910254309823430008195762845273356000612211648786670874080577247757307171862735409679709191271624065607112898129064216869562859049114104337606858108530263113140737203100323160348636461949540545847332984129024976701918526736569207831380746303525627048500918386583941829299899557799823621427797939223128310530703011582725817580756115892452073614821204880813528969089244227598231172026641251851922582583918069591041326280170510989065676276815424006680591506211860806977180625403885835803900259144749167790470378465443348650786059624491011246431735901207704481615948924224545546713235981600737873001373011516141333491277569329761161254209699932119241596752456656625035181392654756429636587637897471710782293109836773322456763635564024057905038592016163881775724712139808819583771596263988190067939444578823227528035823995285510381370649925225092655229959701814844938803247851893013518506836450808566076295686338931761429496449601585791685133979266733255076191600384920834935980874874091940942804659179656557006705731232135919389592663061639351891291578992689021780657634243828141255062478677342043196365453948570914741550139648175937852945558337059293365149313118687811667917183191443336372684676437638034127266666820466903506328400141120473459412308513425833660973003590350368194661987619326844910300317599687905075280778975849632661995592028792424637735044549364942501087549724023258120576049940899477431793753904385309412594143551617964867673942829837219764748674971927004174001283637403033755963438033402866695613884843008599823357769232087450055595423665246294106268055533773368615102454201573504746508314990671902610293580846678817510560556690917763108537151329136286461521752964072661071881593690149505332111842135833005594176907111026436919311390262662730566571154264414932987813765107503930274354447859610329333559533897442450494728553454732327392828145704987604191741967858771122211378440554938506033472328264411783313997636709267142471319577382025746325500469385952962087691099807504600220646722021486424188980613260002205564733679720975220079833562610367984133622387354609426798953292983101882177480572867622130721924917263031613271019497066955655098187576079606239296674590196231733940597846955533435986311373304919698312614391869877537110892577976732424304805608885962080832008304678266816751089493381740726971355983925334256402067622193291876176352210725525328714350878885003397970507556937623664959886029575745011298953805660212218402476841433363589023786869755966077645553248922114919853402343362895791033022935291210229931096029334678758185827614104677721079587281544808943107880748036126760641961833663976861907591887065369128513423653323169594009422611544141898772275891331569149755705432549758839312924729248313360780721862425943429676767577874550231215499393171726496904807135792086994604046446366172747263536997090428471041919829252595059497191343133252906621270620109441729055536378550032553314232404065416001275690942234460799974565896716695732363872812137328070890746280505429769820141977310646387522796299044651048005136889153977565012105308818167480756386907805268592800279280767112873673202225253678536287077131591829758679662538119293927716992469674866248773450999173717787793166835862880111565677484197735804952750661881190101955613433169444721170609878836158608193646602938002064689296588245631314861582208221133197289464737006834556652919976224047338179291561417248867025645502566871703223606038321508194403007265353779471029440634503133534922970516130138194170258697278712776616291810284890737207674554702258621157101036824764461550753902240844336457651733059813102959693559947236317838138192358983658169960569596761400053136257698894096389026058333598747533519702036475972597855773952677230616233637292864310278801291370684085403716218929737882951615462132790646330697055711216404738218727292319663034790949786761508692547599680975685111937790156513507941224091122712599080545425672677087052283890863814112068453322669531113678408951717884841756493301406106619239326255355599110439751030331748635521072127895043808699177736078772272603302653212055460274730523088096840702742080519857353118282700229487757734719844486718507510649629969777343754000488634281020003917098978415030637219408344428162157844486832196297116976478547237003880501249890009386071689209941124876529842244649438029250146625244098625968630252952728868305607967420641727133226884778098588997255643356354505973201163009401371602014516157828472156942669793400851273371905892090273331650257373072096436331297484726610326728531496208084906872812423234722084122695968817072158725782308870373126130344364207545894098938415985303155062725233660592867758274619627569066739202146732932347676408629145392368167763529344271237011354189738337395469623180828017084868597190471160098885144198340919325156278801539709838062236292603036247785379379737383574428473564790249069113590096076513398837362785857329449095253090216089319414120813562841792582570237712368019647426841704471505943594292438312992806879197879235133331331208448366806379472578675095633417106207186846509995951587596459319018063235204798473526980792616561792513037462145861808824284612416762627297943782308450938255416231279716321782471261238566889119422818874363865500747472275543990776344754350679873025699436846432608129197973037677081656646077393187947371687710763150122863404245315317841638137493729014632594979282006911788637979005641549345012374579075890416453892815978743056201663394708589819366219994211077985005025436374526157981045845144577469668691748881798768360581697028500061759465860667606611646127423473541184921768294969008011590985202236524953756091554968775106965279559313536634221866983223095318984755747659638605274932609472275651070500816691665753705237815775223759335805023898135687763637392630192131576344816840978026912591978906847817658216450744108601391597218924891077224463279748503576395062047226496133941996441428390346772888540950686696117668125137373666620756318395370009143631671427579556185997446065205108838669320047460485568750310739216139505412353194370460932504306793742428620600133648114162603480378503302478931175656647927138041669762601176210376393929065461862201673674537728975474218959104602822273664164818608269116230563661712310172268353326999519940208138825778532391675392624086044300599128592908962820514154993629509680531158699486735614662167463135756596440283695316124230526487822713821045417483561959301271821860330382644363857785906587195631561586529780025179461733853356626683374436196038088950164057554768632997864872382359247388835665501360767484073527273470660481440377328135377563956709820960841120608295185782281751299780424313168513909783128481079954986996551420925126451579636717497259217307532429406556856947460971077463433652994391309937826948199582307532934569899423865648140238595539224992884499160084326663840003259565252556828407565186864639118765900659648559734839548580749805390930199981219986626951872073716149853980491839220174914673931431547756754508955712108319309310354106163474310741653886402235929289043410629831281280471884015448027209228646761662822518523795538969765365613612631955911983215327670249758924785121544443074228041113718404345468048006652386313492140790749605948870443787088428188263573057804448591256251169856120476219265168099510005423799592408117125843354408631386216578493760873406291603888515843360558756009186062816280300747349027084412557133879907857278470135364048853202979905972662333074804957323698068308460335374289375917727907713097369044673833023007070005612355211351943581983842327660157787059210731939534633265150427816568200109712158012596368235140403645124527455258922814262773170747600887765922688333943966218929136058391247638334031584263899228206032723649490015390486918729214881006507075383247496875855709896017365190558953023956199573115652650732756166553423273409876995556100863907384679485120377129174232437597315150345664588309054469664160364706284358228520154579321928733586039270330445205865315534196628894137892196727076027424168270474177614256594401552364844547712461564206352178463687330940919314393217802034546239916892870978522524788618188262907549429110533355689276592920000552762842518399008847631453501847394672734873480455635987636855232501379467722475330354433389679538328806148822173175802533208879551824711913074700571617237539470394535021978412755021140193927342781794479871515489142896955035725250337713947238523601398776204343123402093456604650238331044796986553861704535724834548315971923572196151152068956321695977459197200538608361011816559496848663975589330193071592041037780669280920661641364822163187372521689395005637340357314450727602675995948176027983996512297934483891798272807816619623178170136494229641575367253080743007321495799533255229417661144160573734885521017142171430317644547741182557062702090825409256230174623338846384734690228180535673447791464152431248588531817974771148775351649854109053221635305028968267343337873898307863155137552824756429059416088794479100338425016092728107792029288464475398393465375838259764424224630885464511353857628258029815446869937284336327721772156328947778828157300374130681078286547967413814088401495648409714739287190584905015406884217854401211066131484329943539288821875523247435963547581821268453497665270633955274355532881715329061610250448216234588146547304961854918334313115887676887410754488171833260642733630095811621482227444400082147986547294137517460005784601881412596080737451013175168958104936681917739983657904563685943137809525141724355367084844037982602548544496656203467161045073297031741978731548718899255240739001956304104888098702532364314524112512963522730219273845933901409916095111660538083739550067822549119614840739870152567330943370152486879255477481930409134134791791817058525587447605374025208329008310683024236901972489708847868214844326806922077490205782862763576319117708006689779736732180131128098277899574912935662265606795128893865149910963780148224238047384752690704067894134760470192589022951543985242586950924904131946770327547807830003211233426657828171649459363426414379357405028572331588474603661030577975638000500476562444402285123839003062461404180039700181278384908458293215179647758344039945785622604201834771400926599833750528858029027627534847731133561845494285999615531973976038710400686383277090595948197674428516177866033541095170606385553579255469011735603664417692946732067616804591407745762946696107620864954338180863900854729329650179733441464029808621549369249195529741187415029703547160176237971769277642363265716092768558596569959337313324730242241161171110629825558371267457829982457102964408585773490042525840052769354972400339399008391369895860009832187367072368007905248563126177668624619403216090777486384461312737530681387003034722722630596254990444034194857585408350405330269068771197043174242984411806783627977048267007193117499789932449145093659937585188689586741588886132091148419068517971487145655112157374927042229593436999855462750751201291521611414346863048069737740605623554200213479121785053086022145135939548535124283205785319323601597235385014168755109724391679210664821741962531076079740916502990575139360350911576693263310218665687992879708913886393422961554112099034487633864794500064255455694517545717942001396458093985161909362703806399505331288788515150431690117146381667553326419865337711735356669077346695623368177855422552467194172748459188425671045668394135182627877659595021615948310838582782123788982640693753475913940749507607150773972473566373645098809325547348794621894679354368125605086514534642699444276658568976488509662071693930329981115569994192107029169690851023650164767286080676849283941528151393370527394008689941874274726285182342147162071337988736182944920652356536964731015884316292268644933304023136760954804754872654990418716677576405104217864950836160347547240741997770584115454620093117543452639881060727119854069792570239293594907846302729870350862524151838476127395887695946634603720901849644871959397187637798899284297316298412338462369010103472664662653312458178048709992167942077921606958250156592179142324640702766994302237229652629784725385455064766087209931386917592583612869805279117851101860960292501547730357380976602212470491674478683849460345876167389995183651400163683400801615609561352975547075650540337069149417070991183499499151886608387705824253403218954538472810079136378623891788765199851279890292427517302223725418617905710963012017622716934151118296002190905645357554755323399999710340387666714300943790755256588620164525481814631930552233612314691306060729382250214497152545201729424589788008562542172832698900418996411270811285647517484073053654586937278498554428264833699718757378951436455622288056279666923007976458334721043092505561017589623988020373720193577823350317842053192362607081197299351927853239425815560449939811826829799522475163376800277946446053050274910568412456525338839767304004286042710516408263653824220619549770853168156079924887033797717590664711940467941551401708538197352530284820279577085919312128204023092721734575901319156006703620662001919992566296752655623809334390089651792580136557293265199174626184555320286880416991203405071140531749655713982972702294808757838539909345375608723229101218797392593129021757164399758500141081051590309409865978710265871253095016624826813676153280615796011281421364360654556679677124548640415013945162574248869008562783948602452526231707131734015741983726785390763227266678749942204299377149441811787432011724883048087573525510605557308362822913959347539815847962380658131224310088556150698711761255295567532860632229046714420999258129135143523174511050495172866955903059379289230475505784114473687386724613368157003889509314915616831200619797278388120523378526485668890174941798169573411826731806364719042088402553658226414955573926640760636837617399391550516863180883574538603367803732639485735881336897169788193083792499464274966771826976882398847787131164583341038652317563135555597330181903794011179295587629704747548093970263624716031741587534365320623419004635758511691990588569997985354409438140225997663765712286406902670227873207763803232649401118290094741854429709394323100070403048538251268240362354904468114294186410241634557967237024448396009782337692856886284961778667970558770480317578256766733200857248536039751116791582689090358668237719408843158187596496187252238134093327919736244554344134028516698580455330156385571532569689960986098513070376453118644027597107436145909991131215357432635560087742721150317454667368354998936950222427742181699688185521867931840327409299309905169478696017105079489581347180895533983026047067167846520861113520301101931271811629610156475157875477028802767013884950065670574266720780875284367414831400808928930859194072775456469092671410665767854822985974169672120810854187021099728596976294866259439485891605598281121928471288463153070921916445993178087494651611115535767566716660270005641233158463049819746412959910705973809287726183564950397667121679096675132511957046610532855386641914726398861196742355728580862544953972272684357415363365634761930779103206341312306800068548697790499904311650559454770591748155137701751249131791378129385624736082329759897771709218745243209277551148098635300198398299138531187627779241739117644074873428899879743806101022259545805153698296561094420667058152647762191400036351753790841410567867781576056259604495986695209667081838984490892886339117224739677529144196155531843308038720035371013753254258061885780003872827975203328924848521579765570789658769979599295126115471554954366543886977425900037984608018028366768537749808593480702455855788684917950430364941908242232685705724639888857215947149169287401297605145903225022379457786218395122343664861452442362176186401335802164499323506372261305050193139773258877828934252372931298482486675747145359533060715243382508619680783824984084196096926426504091209019158469368835231124969258511838799484962072378548954956661894622230537820225624111986996895544048545395331940650497945095072224160854950741293363837732256190009657445633923911065518204803831013598191247581760461758763665186141988431711010763757540953684378338294647824538973801959868085352746784413806010000837706226772598059524067173821798351093691831449041833723349597913433897172720721010363835062734418405452258386697352956228707176440151587499026580473826977671840829591721193238121120977790001109256179406723747862338419219909269114400807283235944465284853032074369960983488050146619756225337739093633379214236663158328302453452673819007989586633092221351149339933007347094418963378940089132755887750457839944607089630380032653922293789442907368265874118904929939833769621300217552008694147578499170078153141026312203956823925271049087311474868508906352510705921653832988370845341555784350400242716362256222772779958413342347332478482116107884837293680053940635501588657280447409080872886938073710619603541621213200336237791105993341765354478795594431338333297907233609899860135341331805265713681903558144267006870446218145750156212898802464052377154460839905026375064181852533542502078240020315876676425113510121738141740313641465340534537109092260533375615409410385904601132021336898769008449229166610943204659439563840107594067394343853171843839775771370721003098526838951700974760651705566497108159125585994147235858978652686413333195820002910123883629845116086096621911397947067552336643160121123775184556250650390008091390946551350877636404471230052010693277346483061706049883334168967865358633469036467198882499285835281494346675288517911197777450426627700209219520799980112336428715097754281141637018296671420465596197554055734195948464220573863005961164922763144432292676046709348746046321370233408320979672971686348466025338773642853166016310330724597966868382079806885653255824626355317821116504956821364200955777496879424327062491996647927364880710384095825134546369482208979657709145100249188584225666440799751780149983814472684931538342079156093355273223529865150525453318264835813777307869770108592296691694081685718709058560776197954161159290284510025304455757987975528207649086315805489366283446632811344634062663681545723239876081694840652896825200864537332289080294168478037535233340079315994890456841931907984657702196550219885193174905358053975888704384604214376678668161052587972130998258731714043234640822104098992154753231024697997130895458182573822947076612620643757325743708554452476685132428458440270181755328024450759769399346245924909142277797916915961620680751671182208717409837274673701528724104075963718303803548471999378896363795622937135570373146824889254102467586137851006056700203566748264458183419382088000417984290670679227380778519174705023264872741314448967822457845624351588079422057556986954659886404893359415143934944637448271417582461363995836459288602476641201795620622192391555369918858607697751938100306449190265847405535933951847514041685310447671365707534557047530701516449495572633561528294373060212747340251458912179314023260686497252414637277294814890052936744468212755091502960474646747586201292225834580081537282096826805037849164993626069819578801716671177570870903949501295076190285253848798796703300747509142969719047955707237014373585930514422387783223491305900024856199623755370201748625043077638311781704399026617108641229526023503935467580566698039298751819518784013564814973777160064702094780149191226469884414383047647249063876361406188400111220491004537312713794874693427521907188688842350884445277992602976519231964801393064929756095172035945769959533423005955455997253453776882181669139258115951762557082788042528155117724701738047002481199298323885998638910483651423395041519256748798870587626758691396737217857370388889190306090487569148335870678271494719992676507887246619938574429875778197248519227796559985319355325581864095371715540655999182076697847434246831839584729765864044210141506768995003769333287661703402658588411073245156425983517915888697630996116835393103859501181247914562862738124866269537299240765924840306030748667006799534122001976436402931738993263705155583041129725689310014956635870028126256075951181520038031182288816258142423984781086263768910712381968035787316995630399371436978642965581833387867122690008517660728466896607371581318291101551544396481476739888145127330238545957680934827427285808889480789834793450359888578313347515233788552134442691518960293778261092681888462213924455333863746718145435049317614282752716111888375509351171708987291411311409336632571032330646198474876764721993234128188275723864317220298633323148739641820496358013280927503518339232318671084121911001589205253619577142783870201657679764226266488935969819277892558488267754829736759290412142766031267528357454450489671775826197577894371418873095713199958624503126452878005547871352683367945043199856250541166473656784712849113890402465042827635493518282770307009685471778220741376344072913778356568169034377595651281064996193086194887070983617788856424762025743646718300463314909994423326421092325726004680612454912242526234188640718370960400360274764669974817760668013099878598480078488328973160685074671737665643896125171193554593682112753988146620433443598896408249213238329689964080022164077600752946094843561124252141715321654129525653650477860221581455894436847685122563939690555211757269327867028767279449927164692760876053328354375162967674725403819977365340047026012726206556599871056743937039390471114051684737809517264030163917564089322791066719565355761061310639595401435983924070774825026338682640573030353947146100680661843991885877847034881470969432658454301383348197850854842995386929853933854798541890297266272345856367726637507500838069820433650647937926355675608782826817989500509568851079045452976703778251403945332250156885625752901448079423182143971773415481838029468742967013502846352145323720894311217815710644936944767233792599714407224565808145932033420339484446331669068553510769023840096526634780377355290839116281251667721018668509886537719310270977402840879387306205072541884664215326872780372870827767384349233968029626078753055225833469301685301242564488687897293106473658087334925431801546187402303156304119799954825353683967915980918116004518979633535445216827345958384618825402450295218809652848484423583956812372774593935300673651155437556493109825448033605592205036541235167862459597745125435179932659498546586193073482650089157180549535030214133206984321225052320385398592889411203342399228539748815170453247573640503888054793016907532218599357333529856393717961120722293442791217046846894302209053302313140334313151708988692053209720698664949697096349649868086606810845735528193606655096600965015657190685698338040741177099719505022322764789266464270247046220297819894341065814426931207481301879011597070410784268187792819118509360932902797203323937873595374739562761369824057911634175742635564647829047905826882331534957049650111098612837964762405585329947435222800912305488655167643787996250473023875933988703547494723625403553348150481169709291840105465180500357645845305188163706665659556647731989164739105541538512246248459852216453295635882528585778994421452950087752417418163895645331591143006453154537004054935344171278634348977237426318715858637833723666064207325908249506968321150466640072822181230715896523893326168408095244838841865646436642766624833558071176787702989487882249439117540476533886925795477121696346382073627284497675743891825534882634302606557153733232823746997547963892840306941900879547401849394565756273739404871054042755556627646081222684691121614287988102260905016095760534042986465836677412920505634021475515003488051454185104360689557773448241897288761431281301279182600002203269562355040795404910224200725648513091555806615563867548323541891662047568741107789044042384787793162221619916068931617422337471102008393010085244693362198423026616102117370469085124115885144665350591763249756491269035349165558525115428154270882560159403441376132176288865272906262027468344653267272483379846793011562213252636247981446281158997307748329652680629440710404985652520140301355322863813773365243687604030245550553393904789972758471963476906726715691534464591131276972964837754615202792437900203173584596835117665995387214739051891688882795215930699810384842084742736389655672003917269242448759886076103627041634619184130391121128479051653577739637643058637120747446361209055978237687724343398575534208920056623351054038971623785268576556278551327681838951803630854035928727095975035954677646558623790802477820416284886165191517860198473977609276414977474236877569783151772897564970858752383179673714040525134650401522538089252189372348197276660913273655330375652446988701785841710337963872872589335400727935985405066506743351751837189269951608926894920908901456066175649816883998555456155849115375075596122271832152929031746032926466614551493592090977694898175886593560749899887667214307343730519380184570223982755483636898228277021291391364889440466529507435716244591633903506326863944198887616193890220059440259559761736088308685534261566158184774054878397499961740721311591725011204811841248737849091037437251573428792152311667876081134965575944448199996493460446301806755903533936224832337490738367576136045772125271558580725938333729529964432925215618752609657607286996313384427936710503556692792941289318495800243047074970412324272210553737578931851886168664035231029411491971947121506321363893885721581544778873954084966935957957916453746114204975329172121003056203428515607421828741662062075007822063827465257353652984453319735505300703343484428116943816300893245143163258594351571710537705257523583443066257138427363326157316502423777459727758940020241723918001209814576961853028880280817410299465716918169803569559256800346421252057574696423597958508868730035004579725677813969596410152781026073873119582815023674762802796049140514871409315234834845996853103477090174063906214688520479839457928373591799390262059601657586775482592033686930447667059700215408441841813519702057078074629269794455635203957361138696127251987521351124069633003937588371606975194248552027731465220840487349272466340039322055874281056324433865187640242485107814584144884105599011636635201465221322833309797545511030937334561845027591333912239358448874001244293773324282773875765626698887618912772789866630573062380099405096427906004379319525451542448543443744884483915612686858443857095160648562080954372694347485106020325388088294000183269076597361525573817492696676786068292502611578212923685322877277453177961544861004754822341500880153592005010575078436491499845106368988586095566379280615068204943816088629436893712021479026182778920807129433656373603805146216094075500148969294403451110029767681376905353391252246373303327828810392911791024022860482318716846801861860682104871269154588559893582963440287277488722890018605540932333053371649311812856991538479838676299024819741061613607268118783308931994076456031587886464769689947482673050552734319405198546807211433436945596916052198465885009865537959845620049166567794810900571440763523972415784166041711846425219657712890078034966039406731015070527922667803178594436603812015246158138501596035228155192455282840370776150319695941241506193782157720462243965019024793559059642580168508177337094216213736293629364994361501561800899354602307098949557634053679312748406129093909304900583238797014056746638255590713834385796383123072117851070899091887786897394960515655440118786290695680668933754107827592043147037486520156307944786964003935073051547288803607512122812958925967021414371133015072969483900713512518721247425417600600447397679073379637364015858813396850864834471845847406026106940589825004744911272454548732988731779456572221335099380117221726409364920970694674491447869595964476574735489183809138969591645386715003030923830153344379851469669479978132606954178145465175150056581960667384073627310954131496298584373737498019964366902187588833182648841729466770014841553541370025026577519221166811441958968233371819874378999591533210885662535534590280231576546755076477796987993614898669879068303378055214342302635676382103773385558537054941356974020730304413371618733321810740840026615915273716525495801769638626221124574682847310250525176062719402434050488119689774584001115749512185021737073935306595051046027319745022843737496251922013154451208073557970732429202912070090709555032069778340639245313663774326667475312727176637673574868459649374836033893828513131139210888385441983590767625372103232256877550979611664551151628027090618576011842287206868611310752314509236655993489317789460269190510009834197571855175982390280868800893161894990925467988659551407462694822055007707109509715549947525491184976464766078492154995537919392545574968047095347318457256824210973812486554470919953366121104837376977491378852323720815346960273779486569313216819290333427733116447769935366220501980398542784569773549767188702496646009522278681840234935341693502098152438305576904715695212488973685102654357741689420482552810178543807552137114354170254287338706451897154610977797053938030470297448842433788135012052369699600833392374433436981056286680946432868308167774882545887561789043496297623364865398398076169023823083594623745502176869051493294781929507062426046025034638494868889088902198188898002458434600136143624279517378744737726113169642132591249862167077775281681158995312688071110635464119106770203397948066173247240531275163363772810362875604027797349920636219934069378950357923749770929212269215830957693898765035447692142204735234457987977315165731474670592657897303510404471698598992377783634069964496926793177641354089946213450990504342674638209606614320709813279717144728973827573905819269515390127625839751261259132256039948201528754884759027553427631502752830713018487040701523301454344676527197797273583704215279040570917769047864762310031635210884047578559111151155706911975315110684651296199306932623943948533289187799875380217159110056140365601869423881638364772057471267712003582708858395672504505808792209489338348097361282031561424100252901898375253853427558943652486546170504226810773819824755954628278064896389719863754963112858827876472760527321397087749753428020807568315739864392617689028276163822045864609231664512183090955832462759387154999064040806464183501695232547198087600875602789975960393299167338315787387896068743189880754127923977732740151153024201960303507424472621808198298254186868329822789367960750804940414400166194163714546274325115671221941291765832229180006868200023164011312407709392702762554406216398221468982184161976237913328036748310008313310501574003452758310494549719345059466153935011866693691114758503743573582436469138742482681255221171708823837461788563238217682680158718131446782606569389197435787646068498457698502503613457343490670545419761476326010634767698520411970943625852961633694092035403772732729318553944910999852707820498149681398943453804534530215510423992328459791188724345800789974414420627639123388392839582939721703247029548158271628331104856060057896318227984111817910739630979610659471370532390721307829064869299991961468339289668957887002198771248398097842560822626216273393400141665804408530065776768278683879946331743311856310973816859863783417906194627523715276286410137828749915006315140165971008321133065676732713876757799853886792849841697264943978109854520482038315927310402495071324097904364863656191707328702355147101877004987841724434429362779147751076775583420639815618016958575667735922378924530398610830676839343551067943258722222038807655007944175282887763490069292211893770343004027147650671626480260759976701799120351288038317367970424808368559823714330440503687457400084148349038621298381116401701507981370305923388853984176039848508108956901978099489521653106118147786365763032346445505707301514976159759359717751539993711001742976672076898184954818402256099548756778566853437509884720203227970272057684023727315954516591904987092869217645254151762050935597369359039603677685170051905292427448965097518365080348899348020839963450943211641644799999093681865063833777594108615496275436341486830343498626719824584347773622283772813436656860405867920218097208882817867246102915694371969047141893324968583205056268824681339018713053409501332316599037658208670012922556896261167127033643202406866957325154296131163770129018033807580595685049747736536257439376909594338023039314007354948417956281513654047200590068597554529554581213345880336207517897096468507993501758624553566423966225999831255683270567416537562111164145602864146671349281943148288041551731231967812547911389153212450202598113553090306974161569037351002069213609804866685421253728944902540119835454921505512243246974622763973917858101897714152466383508614132602297628841018908852996122541261661626462195613112540883374696376993618832698549503045544396573931053995837278178705265970403745788674921819177742919159562353179662799366838495671043976011820047336822523432168508096706597181259326978082187765108530385684873537481012187424504722243975958711379116809607895173077958905379132085803467674056842185260467504010111147313722469402174740032713071211666041571054312245872426869338166482814103022077223813527658290749115037885669435092320176418206423824619024622650699821629912887561140008606422471685892160397715174730571114788248640260714274684024733380301694522401749830415381345137542052127525858095928934897514215736199897792102357351239598580393547302936047479494496504803406681829981069737918122504258121917254036824430290878711032345007603143434129379644782119045939649352534759769806706900610864941121469301112991918274414823315137869329005968869181414732319903548208770787849476320566207646467918837293327395177518890758463519627890988917958752156892833399995662871971146404694067267086425220600145876588091868977549833763585127854616278933032085862034558931287026506790565608333138673762011007978906899293350376749325983270417541200368289570401651926304793321609950632314533383966827234882380125518553027748406939000332059072306190636052898854497431043610621680840621842766155160754999080907480614984447583163854094879855071317557485106474503245654282513744254598118075961379723076501308020524578167902131729757509415427832013726233122908066154890492217278532945270146449004237860570579506520454769247275599208198566738240001791308067523974532431898213662499782034912483424833536844106495754001871069427434068006598689495889287196009997804383703425389917330685760188604960115276157786069173414687443121769992995679733946142117122684916706398815138603817934636554295683260974046034910634016019238674237078073615431098090180987479481388337794084149274562556658858890882512541509692532811938453739602483864882977999408554637658987154291567019203582925169917007811476218026865540993534714278761651444805118396844467759092486076038515771602272845562211180309228129339492806098730235311546626461868538942607065893400793466686913418833602420544892362089168133480612842782974057088750148610106651049897212014009295732018992153755162381387661284401193198603962082092871788731923365694927494702212613454267283652583535891367766900765434277374651478251799542020206620780784114726679946880616987277770083783449956351890831938385767428627192967731306434437457903958092250749309239364782054346498145821553928521527688500795182155521031018788711369967139942626264795290583486504584955719335005134511965461564235166430106638585889189052533644995707466690560093400926133006334312826751084256321683334256150777604932741164239906488983554057113886118543711241559655685129718365357891028116962346608653299009713504414104253242752105443813122810237159147313631917221184773308131572627015456482199012154836665964247985891883313417195006078683015023864363349615817733734172290364711383650904987135379361884463136275433729952273888936676963073249119563890902401942290701019885653806989727423631067030533427336319591026879870674179991462399818344412161891992806441647242822377940938393269541969768589082700375258276894016276504034271633757186969088014948812382186041976353614872263767321965845830107588306550950081900333219949734497774431871608995930244844533035147728804341179244338877336806106671324204489368852999801591277611259129332011664487679784683180652114247380140686834390464718033605143550546012970862496579013436515658014580823986238064143899881418491079519671129503462057177127043527435154761906727968205098859064841151087392230233738505584432952047423765765093553350861976155385781202981421514951271192828849888419567042140631693331546692357285936631912996290825080074875206652949234238388374994551668750904040341325332362879761472736519522631520087114195806672863375577959497086244109483126978428224912335706018136855571014930252642942494883328033130746269305300942424604862293710511056767980848268835637791230599199185337685323083143172810118507367873724809806330735449312814561744855623455468335710915128442502172330347632956719994333611795430272112690280528344093216351445313170601454208770752056790219688644149955680945949380707468803127755473553467779641090626651842912311581679301930002186240011063605909045086549102786712172076409430693933861455387215331107255920910570025018144365017028213295012348369216783221360600400581319157066136663067152985998048215735502642979603770464384259907229139439734676660691235272257691633010977115456701802053787772652672443069766088911767849434425342349577186629451448764832653213133448879797983597445774803526335300687933609212886471431468712063093358572887370253528570253710658617537721534388972732635917673719555403119365241432073527218891859814688229808464218102611898496085246936026843804599836257513122180990623438873229147566246306543021558773792351599166809354456122499467740962383391992334677017980486969868779757927612682197694570214266432126356239260386327299131679661129020024705451999766872610140907172199969973942602802313727983552251064499396209218080280504562315168513397035600361851130945916868605142598399026120084595652068536635558502857283892953924339785420180013872425164556803155555263183130872268106053718735787101942202245328219506803320316535569833957581496373787705839164508048930695616490467440091813473213177278636602442146672946317847661283030827577981472753736554021187046505264043811053229845626739489806410461249565923136851126653866276899969776408851819267620359911844783747291374098776715445939493553382093502321119403673081473395525382790357077706863661641720200468804002502774287195714091958416115756672840249935479037143653705557324667827451137091806446178509534829053400443359452539627597677057883111897624340962872052742034588302943051944240317833147691357007515038792354962243728382218906050302730036582549448848200852702801367559143826420878313990340541136562958758477684127900123524389309577103238493555958233702311914912194212564904076642070970956353732592020169673770851005237369009974632724426393445742087518894948508957422755297945955887549511427169372886865011356791495957218772026297220799784284414490937754055308169631171034763831414137944144943173413678981727437897629163975119492106551914525271982430623155041794863339880657156220980519748764186455956053340056375044809951577511252244494111302430530490299878764695972820991559924813021879012434152663247497319235620942757929021590567319071315512003076904414513498668861437937051931104477465026351438855192206383380436926825182067436341105956846959254687638829996008518948874015739936274061649093271928221260407707577964246286087941210131650328055206641207662070512882856869607627739275504546483292247604461508514270465698823483162254282516047714034737240154330403949033396751890371966225987330819511778945685045120549575715350481951807393416282978986255626260641968026846841831280369122767531524461115757421616481070666132749972656886313689886806254905130363377837767944730377152007697050293156053891581127572067147797128729081077126436852623690468022501663159847192752834854906631623863240028278796545229670356691291663616214316715560316835459828236726793932309227071085088680248855185909156503112247503040171132615161672709343666165004090101540544923499168608906801870307925310225956979237687804563697537837349519234602884417372047445854371761856124419655968297168235470440114053702744308904677348877971861382911811687150085719792564811743845814663187352095110888992567371820857031025032930273561741180001956157705372513219663315466827204209621473063466495818567118266424488896026116794173648523549496332654079608454348461339866095260830425895918785337998565645919339660715982677053866680435567946370836359929233962762330101244631560141259132793017860666685188246673004351163766822511086923230102440675368604118914696768024466741601029145861336420848339474014683458589291307136270305541188559470431879125414775719291438570909523963912877871193823374894998693959413757862387322272857565513261779507998909676367595090938377467429671405108466585860804836302334323241741522810966828810299304868372758359911790650726327900997323925791158814352449416594071356054253488894690882053666422420153247715633104080986653485679579558153927526127111684029273471316654706285529213132561398580425592403991995443895529516598469971504996224446551140804450677075145445298712203282826717951575016664997732242937877921896308391822413238372379927331572913559572134867185755232393532723696477545182794358340467190406618700484149495299633957028354350967381639844109155072495325113998396669316756002695051203577013131446188619076840697565996459478294908861507842676848457968743514495643770425643943397534446207497444445005326912660728595893920078664556315926808187086713449000069452098584615681744123451263872726166525966426068478203491826063256868140154247680145069519473345923307656535825586469230925844146814072940812109917119836814542730740388376799237587052874054617338846314231759105824463673070619646327430303821295985353925775281892652602941426375453270709355264017059815611284010851454302900663497069375134236387265269827448155590655668677943611507603562538697788175150480099636363263768238974611915956659943807814028006179147673004954576054376595760973721904340217480756949998051985517198597594014325457309006513107140178321384843632255805933107153834128414747656583387013354379817005254552885468199814841205185931659992495050489930461799398190449414151317882774515826950497742141234254962250035787740294507956847111763627144785356012405421937369200101574581157443617673866744422242987334294698527823602362729550893452877661985308452399864906147533873396626378218570307070440416552084809558445507217004576395201211880756624687528490786390009022954167924059201426754185233483138668266543696787586144305427450862044016493098352715949234859301231259296866606273138786876517142915410205118980330842609450071408954408090063871765885165297591459646092572909103508988014533143970344528075820152684341202550747367747553888850237773731352026524783163277218975426756827136223035931976401570123066180285578723407152387935214409274014919787873187097796357627063211955572756762280205514692957879406928481285768431913151782665817112843899296696014502766774147715123547606606846408582093868156928889471086433201942804241878336315430075731468854945617497076434803965309635831877588231826958083207438713728468022353055102253666141074944565021849483725701270107943346641989990530113538819004613837438363776638718563889685141419472820842762111484011004687762645922328934365281660546872029363403175670004257033696544764750363208641083925357734897322100442366660978629048195361146342805236689838187981172401367967402231817946660112629602725830253178225953722820823705484875844846199149348342324173365303195957463929462695872597143128487132110852513057194220249743529277861896681772711264522765644524676618728042053762374992016706957250320876953052383201215502607904910674664125469860789889096648494605151380238495139628219721429655297459273441418238121228221426143782512391602974879915529579777941681522807554803254261203380170937466863973676241487651413002953766611778117727943326368780295080648974147824228123351843293571089736884153482599963181543854905561252794217060111519014635555788603418809035157183383435058448752975406123170944397849684147982284901399062913215178814216274869359344058557687982367502803141613564042998911154267012368226759338081786473945663070013666960555411473505241545433957944096325471572721466104231832547993185099586360374221571003061184322402967747620513490573366532004839817485087409054414828596653484288453125641644934254498066292929031095147580740801016397292564455959995650435292630799607998185271382769490782024501326243974987531375093814096574148859242864055840041669071412415295960431218413147268488134721384697845499490157548494687360382592679034131220547594126956238707304902924404884598300749891908337134872160028339839965418400992536895860298410390732719626598644139308965362413575081529189187568188976839587464268915697680419363038177083614133265909959677247497564349322332236303695753296765722606188680667955474969902692960230358229160589555944655073782254937503130387944793214752310813958710755934689247498667443804813653810997520367719446981532271609595291483461718972876892589179586371974865044546249628882740986921019565441432024966628973505934918327170516680709499768581166415245049875899300752251378393388713312148869331541996060076495163326420875720523955297123176290943163528682047527718109156047791310412072656253171811651347813238251950728565014668763587184249307254524612700681808452077034441836682209218728443836131834058828445136047358595613833490123556777752993781974682841313961108561611886946645406001293720724144575263168111699507579899203827028460644795966705466684938667596867795346202157421248176398267455913251243814950823005145721903642961928048547867645021627188493582537334132002017279718830291410624389573317716586692105509363614302037209080344917125581196454287001960121236349337518198228739047423846114240954205771517553208104018752273228530331731625038325773736647956056479933418728204491508523517400787495709231839265529589294115806191856167043637058896483666344030033440534249397192346533712183750155751895717280582798991887700155525493925224664984611525359031555342793499595616211887251736923746898209144822399535133130842350020917548140604788958490412497362221773742260858425136800792805084716103208379441347016784048086464730207779300803408838537335485118553301361863769116396401212617593058713746166398103296986001702738980734904734819981388101105364838738180964131130864049917892657978251286475935508404766898258791116052923847878389134944484785784384163569213119320132730491786122165727917395769602755516489268082012455902809593194522599850603663994094493747884802389325505712817663164034905497935430363959955381363961899209232230530709326387611461300342716912387232330946520865388885123138639374617751842501397964119427134437524032199182244781508920158136098099041359257646383653064938754777703841491598217540606063553685018422340633529973502454063908695251021768381715452668516700465572482235788253465358592440272953795474658073245683956979232516837364110851946178260081340295761003906656827613906533916667211315777171770159539558552073398531048400472869926656574049611636553797331962540533236469790803166758974643049629561796350027500592260041340134978418686137177262547409942872169735432002175146894330323023852991386008187691209018208191284961917987224791661814808186132631478049786595130921395399978523820139888409044302866090488547122671068100852278789246658238547113759355067188586962382627324252143617317172029135071457019806173511278453168971814075198098191380891535278373268414193141997916506048329280963717354697050467336236518276660218050600968202384140311077757522696392616413194840877075388977751415856848569501917828742094270318271876510883250683520004641251648077491702551402254222723846574149631414966210841537828391051646989677993623676695174633749743683713787401560404316939866699419048183817887464507302507897387874271138005823329311835767741864581471130484858464835471958200235291423542141741347983639280460377855411672980672877156893868086771986416643242592314883570136241531040109036031161540479832522322253066201043584039448170156669547578516650364278408817668552704006180271265005205731840958334561241091065215678850501082322596706132807093403654990978811310462562629118895224965429979110181138159016050763189246292843427847898060058545588264912997665005261917419522510051449932864202811166579645485735739402230487497339668089409481396009721537522610874290409806386082814954830679503744228149567817107686080760399040644950851607142676402957306702270502225866570381012561634184097864680520350154662345485733706091409141721776434820572253468892334202433220198056695611070175903039724816052769638258025362857477051821413721405167602111862477059688702642893076136699177367866733098876438535011423908612567815546749455636302243385862053571592787658687711104582394589340857491171412180152656003373232577580670978077823407202210855043927986212044682041738391730061556748584891770590943223679763115120492006600879464140016945601351784760177524206610374838035802875339886894016788850337419283463420129466177614930530953231454141371651563564215207125219117743585956630909873020940857629164202167642623394075249694218578512275636368207631648340651088794007188170000712522593009907429807072812883294415551507915577761440141406041525867491469828610917300429778601412088377079651173915876575661439423804596084705338800154932619479208483193430787366168489378015149751183494744588622523753429459382130580053622253031155288715466868405833933202409838967316056910632153721608054830532860720678938194433902579844022738020668224805420065608716258248020528624786455838400632303509580778346691339765773158585431787556640610105178888799813189020274345942990368911640285278527117246146803617108411914747300715975825040696992942787749045171004084172562958837154311787388369054644368774066287126821743045968707313103098196858459591819741680437966492407979952963025757179251416407853921778558636204106182026313114035728775715962338493765982529787163534111868597881406776306782418614166891707448901820267187738054233936519497137623711703449809824233277914663492817577270372037432424038749504917950931945023320246368268837767445848951327428190578096085264295672694971249511686387385983477469764948526443138266997480374077117897591972247166887185633583516017023978326899245174539138319107177277596718214548646074595356305114723322234702575435197439018109865496368757917847875277925395242271462318080349053858503109831614608673287994695217685016782232027706247992294367090658661779442071376032333849078232195436323105595137631907167476663434768898383542769820968538313330106967770442785442866753953024132555391452406987799907943477321743316244671297498042332108844988263520910824402168148773953262978876042408949243120970003479446768080267103394190887767241722404114346127496219805415251838058176994939939057774766378124395957518236933775676371481513446813945345525927536417180239494877567173067069292539574091767810161842843994237925213719976009919623005142819448564949554545835375401853075718536834854410246305788156369944684369264226889294803525908441729802457233282824686823709437407826360492250847572204787559995684557604259853928652958622200358827666646341200466056032883630381767221192410173070451883645504218724176473103017080280090630043018459588355420391553453444724868546733449865145203182678623816512130109766925363700761425006898295519644298460297203944286916317584598351179272729928039319117115427426391674211383991465366053000559272483476769630700445114200621587943272235487688685585785663671845326608259551339631759192542553105909336657139801854758647104586454403726544337492014212467193508296138627336168638528587279204939320953734801539521903949533624951341836133571603263016877710868332343053092413564531368000124456738469634263043747581329607815435730794166983244004916955881323385180731767996161794871600385090316415167116830276707490062616285857006502604209467125491384201021055294425093788091335962745397771410683897703587874960307176460899882210469773302913505417761626788562554465183558998395630038089633053157226125302999399419551492740685321775694227234962434827925917439926448238965769886583651482288290638740968578532137461551888570954698919980895489389258163994183565307062159088407319255436567301729566444435856905691868473217297957198011603377816128502239757746835660284013376681615648514934903861996872255970234560056324861476088299133444684138013059141671751588015384916730927268547333957810479589021966310353747107482752769104662356749917700034338875043024564062697825407647600119732507960781113478327519729610578085784801438372624695087373824626159773425659394496441537546921235937596588768306242897379479909983497621042743772164560042286953147124843760723104230279753074667180000615499544122761950980697191675646666151890136881021244474811824212506015644210960264402567174664854782468849763877278270104483581064307956869427340258492294184165739261403158012282492398788599520393131306685374724091639040880173336564447932111530967344927025413934338390156995463404554355519632403620902821415193446608185628185747177496303565910483118521177185294320594093271409468241452047456031746648852048368472538061149599576060008793850946071974730870152592212105078400336650810959871202545651846942648461583748980202782224440377880777797248159562374075240473166515815533791852561160367686964651948187879673764945028563137045628884429145923356080583273268131962136256504304515971447776788561514357808372380985446108033949383377540811850723358058776138612029308846798655556947671676112139857753589134285019944979031988452362549407222811787344249500712227070962882417146635182628826460077661032962367941503483242761229744130504820587805638678519905038180835777039575779869245348866391028627568412249745940352904612156161909284978617703238788507928010651168885955567207819994978732814867444035163337707800876491283448681054725281057717965454446466940157450891562445557341909025639309489253697342137378406962924452200438364594319477657010413400240643652302910301955276018506282116956791351647586299279418819221834452890207842835889300792151423311180711410356394686712373876487725833335007679893439897180067849391136025391865308460578979195598496824087343809825025045246443193686328415077263794426884579047123845855800137718820726122752535641141422984371413578752012684325852199680013523056016425399372144533009502592014685952690703543365678190387535080064260106358576260394148246582970092405884169479142256882159699259462313916041471823767315295851154529159779104470319662376451155636559531185140206762760088938026749296864715595725663608528307481384260211399991032491603431855804243473101329905207993164423277180119420762366726899270003764345731307705234610777411504199752504063008688122112669478142948606006967028035645538106036688677569034195895498110690592575116164952875049525250098946549061395390933930434616493965214150051645215745157424396725644759852347423533947964757586204716978496716118796987622641412995886217241582533340970685893831353049378655031828029264419302622044955689596201268516447575124978260323021790474336510874709562755888990168018170052562301261566859713463490833879136305731325614431470249479405166371912080552033011373295488555600758589434775328386871433872367480176608694748081287806949481258260875251417869539755851884294988381074201966989706818589309370655076329156854258235372630775955131614162914242943038816842470219890648695320473366562184305772977129223302993726831236238269649864893637951024966122513724894764718344108816326338998470534203270425529993231790144313408570038966480421059267897391788140668417234025297044891533869892148123110125369360235510165889699245482001702216300460183246654893500788164331483087943339873583661166679347689754159354329737857283610367542912760161939123756643995001263443733219486906443249750992819467704273653583943221620230873536887817418854568364820144915481321663446790859067658008026522229117865675093361099842731791055905880863289347498465056743660936532012214178526888793078806860356136643849999232355807738011541013237945945558740710748233016482581895016051031697868684014051056256273172649346636933808633304396465935712522150618583698142791782593765429511217357633982913239753885222280743541572426620965055003864154320035261438571875394735674257192169288461942889477936804597285952185517213843237771445001770548124664871176468964280417196002702068594428583287465932809862480987174192919870425045466479977662447110103078259844958703991292535648511707195630401294155263129492133478109059770388914410198693740609540064888949769836514901156132180138722707945172672269129527119311924517221970444612886337799471957753169040218122719267709101420631889258465936644183803913152873467961248914198564364379809041282551694455521266146505835389591430654337277775803646357458536256216715283627476744980978268795322964516620241988477017080960348224180297358063656796404806688587275467573091604157592061584957928082008751673324651470408345287908256370098631896109010391979196946253834928401716846091477484833627897495539986365937835763712541815613325434352271943042837100536541432441684202631696359694533676513687350795152295161090266562820716680078080493878816380009153454280222802028403543504191083069237834688604646477247850028544040303806533810174592586537144954152625365173431629798480874050458952990631099767406734403226148222686166837572947093579504777634411034579126359429531307128929189017255246705582952320436867109848307564391751519242890414869147554358643333174094771283408203395797205713853202452090070374124390813605241230434891900271804094972446976069638508710184961453440493490926465787302946281474137791779598705692666700455004586055492074174909529413066162300369491818332529197701097689909661952615269587988064746397633049754660750921862211627754761364624270328676562877522250863132948526482169987235946875119708820258586433580446522559299036081330228498778639766279975408234371190024341160085156408506003715160567934533839389392931334491269734970413773326930463847461920484479243582911962608395547128548411542087324826262618466536357105188679500344324881991174285828184205689844782366380746042953336617343231396042516733232578475991702430522770656288042278168475684506535458918604071042552319075904710152819379542024429070033377308584715944417525499981215487250667818946483091963412794834368469821394352856213930579193310022439718434709948433394386076707327868187624517193755998491966223310726193226731472263560683885121800607234693947353375593633014911746512699314623424170211111972172558811095983767981717464743790470350788206057704089677783268598014986239887391209957640797517085692822298690479395861525552131380155567838971228664106663089645128961958328471774885777915843871181685441237055024133119053298256690116633381162530575431548697446111229640336514025153722795704444561260068039828053517456794590371315488234171587030750002049051331203682110167287109898068070282424295728113868199312824517766445652961333921844451054704264715704188569436515717407816167241886898428347385789692483409789114169139658530491219565825400541469216428360983598583841337059026070958879872887444179256123665929667833147672189685125112338149296025781799070830737516189345980658342804070717141242761286930942941571165333047907584871793921023044508609446497314148015942893448411154404168063309459366722084484799036978207343240743670317934084608233973868186603072677496624604478538621149960021030077356065822086067174037048297660714077772389053303424946002000481728452982853401532767550069319596956391270905231094903873490842471618781505215568466917956922863193177883941876154346663931307455903227883863698785302434085304227331748324725223456182077854169946952189826194815848459000733601589692619327634993213971738872395719533573551004008320611603041407067499434058930438556154275009745741142206007022544862958852558824535778268775654514431103448734693771673888823320746223986520865904380090577570518836315724422579286536117823180652416477379518900925145323340112648741916872925175585026365846449988002244220781524702592875790690307190888356474068602937680038076813397955969939110022319718066116470576446366115762585311414978775258994845444920446585123845266233273820125737850521778178644481162637287345626460327170578562497492283100914726982255879281082638444831583164941343599418134609984598216793049619278874666730479129847449568730993729478993742527264466621742170001780121756859531341690574657469546666271017151937637541956160339293932064173908952951523823057013101229469750042449300058842725776738980093991696411749268410618488595662337687793898269939339490368409040677054988519725658101320814613375323831230864627944539140070734687535820857575236564513429965487280070433433973221670451334490503273327746573154263318373926256394240266962465654914472755382194010427697658069166500866135610211799729118618462917366170688403078333581839827767517540404116011003737865871939137742788723689982457277378314779894658486555813610791748826871681332308840573064013890383713453230701201495288827531105733195020738824481896061394985535832689237957612582182655251744759968124238171231474247737051850639955259723620459910552486065763700852595707843962299037157996637156636072499908472478060914496994638228433749563717512821044310322743166492317618587336163918204720512778597437075999770481372083225228473522468872123690441881765805668759543586516224012755109100097424950161288892135710300422930521589877836109079691704656833401686075096663846320837319830702651832909905858235043742143865242596442773134250244205073415244289333094458920381502068920682206198200311139210143792952322244184255397407630637137438032109817088106574751073019844504659931391186391218169570435026469823938626315564577672852482586244055111320923127239623217261461599266072500378745981275280332655751568374142613457723726941894555448800580039919437284512429839202429844092290473374301712079879845845987552789406593338844504468065243785525631764810722782000521232073822222211405275017223194771158140437000961796577982895767867397722820084425397905112514629498852765693180957935445051861796899728151461214789381398069694920019376879369908799075586922945921586155881971439912363907324336166746533601489195193334752829480512152911006114908086717576017568611338763083352156292106294164084148546774735209225594962937916107768839551817981127190483718989664662747852524608095085437704150251137460759000775197305339858635628382326435049675973453743039040090668985297329959109797391391212225805257560049971911858278726066230274186212952160899801278344714215558436190394950024120171577802294832040433105651328370249391190558446244812298000180578255819898285352248478642156622808631042380525294849392103035625698974473248459352729269764975845338659747985528522959182220295823904247102118801671319873524936657730395852477498354061937585367009248198033348084042686569296224337764962136551547403966227345072795106700916782979428304332246657505232446780217431013100815811003129563399270398063467441018375045555529560343883535727834300012367329097562492633070034294409268621054290558743460253125007623282330152899374055398816322770975187852962475934285487180967079654821915608688064615899790272892083499005965424951206538421908472942584614104973051038358521403190486268808441069499441207168202494821226968980892700265008095380284946837982187129264249000418116821927156659832155434337379649180915620662578983340967068821075373829755617001463531465433045821493070387089248434321335246185105029975270812635814847102097203593906014716813592721339658610242665550635752038743165309430815853467892800641599903548734842178073954565317623516622521820118888015535012296641412266821339493635366750443881122615682172669716516806790703226356587025037152814933614680755933610934225484636793551776001356499718077940351321501277148656018598196151447172817225086032753207102900657502903129086158178778757859835883501970636349168270119997817818917267774218828168663598569162895700829767487547784855654571109703426846135102492751406350480784023763762883251376273011724767977744224462629918858732500990527626306705132951135030515568392166814761821711529759345210261678566582924385725154358859916895708876073799847368327223994695671960302430411983578923644354961121960022520561400933779304217722442858941601096459377765862087106237143630989045451411071814835935623516309396047238407001746229461678974013839006250442295066517830676395541411494424594089560914584636581582274406728204841886014415608064395186207624888041835542242107733662531062319401852371732246931177823598394596189273263340042385420048966249936223264171489886257381063319643154599473270107234891636426323879683662584223719273633768206099933460890607159992406175798406897701616776862942637768748278861181577536401025013229464668585849220182668175638728665050700809431572583008472682734782640584226265486585681473952380891668604372346391044669551709980127562101440862830752998063672660213871197933856916841236912171988945455494524237841942526162431367983000916933813959753937370310633861323898377809311705989565086251382244622575037085434825484621978252887010549813732764375289483575039330359210330558325954495920809768609911192912351624340328629338527777258655521327397449734811550041342199102805634627517656868771858840414302101000280314517171322726109173580695243740460990714728935686209153920000479139883515766536793848230996328859789151125943054213329369025684001336606208540322757873613175853391845970234587191743603113665230243861155245191191770823204009374424203113777655854195627121823478301141895005824873780297629721252629890894229357862305263257507368589845144969952296787399259983660295621522466986716521828077041455732913486330811205060004075469493982371488221933576594678927411915372149081803195778693960500845175132043141612164507313850395095519114873852734158703888010800213367530681861697016599198079097038411029502160134609289148069105532210384017605114973031789909437358964861333142654708421977432504116172724980560415873882989126247154324021644386456481138870936703053465118434189962811876390395549168948392657621293728709015575160584401475761672419523580515505194173972860108386848095804321088594651868866584569887537345270276342724880372004006312819176259235927873795645711024501317237660197206109962541307630018665638356321656940464000638316732108018784453877390459762375285452273841376508903753451541738504721126621535523174232324234554809548602063211457885269840254775052814836889338463340274090392794950734293898728213263190826790648953522618755433708415851065463129346771715146424451115160593374082909549412890328753982287360855732307148528677943869029114135487519824983253098818849284600601906439131304786624353590079425082290894656018097275014463288026652057221031261925046366304870064619985091525274047781263472195497663493407312179524695488446516400257614435485426977019805630840954577731461990111977797438350990321832895771121341557276961455058902466891505201786467873019389562557277429365661872398493903383253815324512582452429058752106790679373472500475785051373413027096991626486032392375978166551892786084643052583769734939908119844266402383245492946424426295699898859256271802809060072475152549368284079678906278007897235466878558316743242971449188697205932936805949666806622517201919924291110965835024943534580368229332462504743203465494289232594592785088351504099302090928103825895493198176149801899271904562217347585462224389979365007498219655325279202439132505149038558223860369164318154385093990677463062795680047282711156079348527801983296623883332695916762032376872862293724340651336937727325899277286458725068054297247953795650255732058660147361368335499394470939205512365795839280619525110047398999681188807616414175006516984438005558825387986077362489509302385810638847953658726419637095421432348959828081630692030077797494827431002474579584646277454966654933172276198705030332481661355575588863083215153525415418036605696444647430531358098703264545677611530332353290826791281836272437062313883889638203298027046144178458344299930274284162623941611837504404434729077493957785003104269055557807276845595824222568908145949700158614749632299769999895124537497663336576178757955754078110724415785199615762355887691161202843214701403589447244818948823376109451925989319996987478748395621985705589090633322087264142475913143212895636919446121243316127804937726468544091439053829764046247647433637895216100970967636071690446664746410560355272775194796023298178310465219369118412510719321101381807828093972028058037886089375933369490232791130703643683863676981181432774873933370356058927062642114868635322974533805257119900117319370275628603609448708445679154631845266038014056635774163867916419789439964207204925397671186470021526421794241940961990908672520630697590968097410248339972677903143158481785036189309446025423622444502276379972661337969935163097413997456674837060316461755842477592285759000375986936497075128798489527730318419279170717996192178212797274573010303533017187991114929221184991222553639378063186800885837861151560303962433846637163871930175715172138652117804792744478444837928433804417472597702282128403951529471238571731400930585808836225085033435722978465144382303015738431916055347466554083596356144608306216108281154081483515625910182826972660320730620458605780305539744500570826215873781945094590637954710271634706200032989019390375922239524345442192441339796562299264214983342558864482262882126322186863176504694026567534885426046655833464251640164468939746589622911603248191432117830743922586863786595807743541647457893384952118255669792631331228579964746756494466914389576696475451493955665635051081245743843817725186516913917622462997887396874036219095106849411378681804013667084392800934284033704843635739341350242425232028091623426126737560915861648882755885259268621037401104509543050555846218785819010519892715322970635603359678645099639005418625898182113884354137992501324881888046164757695772202461421503018115905768842169214047183370179249883017081802538753022587898318922983504295083770777847683114265075358911257365658034018310252374564218427975305189605881641020363265231400401125981000586877050474103231780451065350647672987266198599792985979254496796589586875730274949141890053893068415220900745515648521187750321114415924299062819053227070023137150264043787159117487467619714318555887268866158705426926591253849262193553089468813422592763054735234853230085042697880757434764709353643233193254212615081900229512267426806227304438785702112339192361130503922751671898758673330654841845255476643716462889345082482026269925738486218408899846189019957735531419430155122919771577298913223705685945686953163881166790501387963046212306828130899942007115627048008771044218162465620069190930690716305423326340229972752099577289254566179783201655924886305982687395578166689641770605230761459338766141446573923029910473766689745970021495103738973292364407268673006405013438338090022325281811017664259324696710482075478375582787685310071630072909715000715284811973106253537800152166359906126333768883251132465517561557398812866370825943367269377395494869294442575654932617498949309826009750232498728947995263885143980960210019594952460622227541643162298544438459842018307309118665811622191365885703739477049937553194187429050454285847192910511954484026401744313503169560951363677403542244714117090133939157593909547718964891596240039749327850211330146166695175972379500909869306937844553201954695520283005862881286445220327249713687452800328422420082224874727960614194828270704603532313009616287391877608381494575858024040857831896854783819552641316011149611230085846459282086460406983267055495846576857859048434600412339244999258200430430843354574036478038371055546067788595506010276106138929416512722381838740395578409432982533124439246054405311360816948292396515225449814141213673729499295115494108180326621673994168341516607148705330768671219335679595277226202276782201874436647529118682221380009211942801816665577510371328023264870815265362355245809237746639678644502865901393426638159340457655709680982271916674463940426244620097716673094855334818723141212416344300698446195210695798254700398939220123180414084531757445240677797910380368866731370098781041129688039950464069203012311675424875808737770884647411861088329054719418480496671729596560628754352931838590280509986641488943052264972336089720805872736374554914120555323319350650183862193084289668703949757972457391849214722660714433085261275801829227503885435692140977282749272449049524948900195572302089491602159869742378741335283420813585730540641087183235826535763551677574557658000196409575843266366045226431737614596161138173134549948341532707702545381273677965102972601734517939756971832940229809210425098065945369675239439429008569802867345821706130564711796499379448760841293330975061203845250540652982585537357557241862867898610308529572333691851788480115482304469029690930109841288470149442993718678550329848561376552056935118488179746415255331324469588847021046211567961273283843383910158454527932546225548926620828310061400890292945374049542409653911008077038014209596597941292092985186271607663006326834463813062256320253740525293242357431673380436041506678954059015770764447326676560916991346483781570556245750954314068505427000986155606514538163317547026734256971074404399154952449584171961931384548285779943447436208551007731617076887209889033914253084413524556173437964862570853125722756625000010966648017728167731348927329482140358772189464794000717535727610796791389874450367888293374735742360080272326158028299604331914609253977715953873508613380753745927691561253833039411180307070447462672444041331391624227585868876380544144622037071866364094645017606965455195875953081894800507551225200829431423421994816746759326471969350407834284780142795813427721536394254017471525745324349208670233175076661144242322193354095173318371119905009450550694990194094593200091687707243537280439179884832150769629991838078571715009351374276129007601711239312390452618723954963848909025751734401869011965576708662307613632868876595821434634469424374243404285894954165019319668865960850696739178198904015420915734337985727343114581011274800639725622939632483576052333555539625712262140747893131598104341272942575140240796071912633175028569625295123395772767349522227588122837762109142036629276969621921116953768803006115158194451143947080160390533931198830935140276702436398437471211787848253798620920057550891119424374415027381707746264091423008122786078754094764032039861155853269400928271005049903017430553074742302321700971014801865053402953116080062358933253555545786430366352076515284924290222639084301970859663105561285569804839210239615615989930577667232498226374112283441068337192289750321607592499843050270745875971287686929965631313812756369139212193670486430057218390553665911623871810489745423083042859408291421229114245790390632286176139869114404851259115703912921277225269548724845515999763348368653836366266845163605663200445818205825319081350498202788959034340026744859072699930120367141676035938205895641616792120917181037423609992587821992686502673410676684558831302339209369398219709455010875876578827641619378123648650111000178293996608607866231930955692737585641798529023524133319509163668391306607334899846859669958512621012906481774071546383547287720189966961631025796279593476919157865714473300395837537682095524615940577604829767292031491105193989671715639365045595122585594169774881538334060038052840942414717880030896647211930466378427822899775220884120624354842545427098095333631968325036281273842686945645472557983708376548107916163164289052496149032074543911906512068083363701338557160609933358104145966836862059406099204297352393633342549112348313375424914525525324438337366603808481771841671123180385522379284341124298170434583509974774501614602099400851761935319403477173999490342030936954766739420792687767490443140127042609146627055462335865980402783041053573383861779318056803998821241652290237057411821334584920832415264518452421543750833945858624221461392330499776093477708256653269020536851601292526539916570132771353754519183049555962443916238876352922852112924550749511708222235779997091517320584894081180997868701117097660682376262375063616342324293271868726307291076404105643476431899958712646600828007626156201165762715311414020646229350377972796558106678137792115077061850829666507508619931081382706763841332127983327048513158148035985270221427908409028397553778817805109220882778272992444611391394598188566392473780889839834736279039174510954303229115422823777237249958332310993705309112927314908636585875797043152048772319400334316187707534639798145633019056151801384028145716486562582959277121567269009560580056291352683222913296642252074742044514950169966246720468797576269378898092278436658561510727650553612555647695091093110840634409190088198059023183043078806892384809041079335186611073259206855623808955498905967411551834212745015597726870908059242887218574397851752676412857227359976401167370649074967565380107898621764386438367366573171294595951193542544934194621588661748723097940356819583807443995407442700387409128981731674403545755835052863743814726642950754699545250536601471081891766676733296565519402549318656973613760007590037747483129611826907615689030608073499557097983934810456396242795675215756973006851683984417630356026768300941563021424894229131448010090801473605341882152113887994892691360453146889854794622155626410527155266761577592294513316873937884504613735465813641257300683293609155269966637622612927208338748461469905266316976760783000303704741250728828070443007673717568525943585169940594315677776896367516661201050528740682086949049910143858651406830509328861606150833392734548421442960236846019695131830941054185812787989469746647649913992615878798854681379631109062340836260121121755782833331848640802362683461187525201973525770919095549532822502468700385546630862061708032595666292763425371521590396288152502497043352536196171929348474107406451792247218898313104803144760712343519077466490112075231095037506567922030127819664064764607389382186306994063390584794673164926943705331456235701700437379323546824006873119485321009593404113457145722905827333465416426855138865756562023440948477013412505203237922114459250636440677932476305110835974439057078488258670352725534449714780660188768387392344955375613911243489494079793330911559645223773347875101161187445475061080594970153144693519192172315415174670097517283388730238972616756587404340526718098975255050647075951142547141339597155036278542840177983580569823571897449624890575952704557307933702854942694853179100338073022001639195335613844138750801018374869566721349339915916550155053322990722432215239202988602775477069688730742865495369183313993456984124246524478487227793883779809746490325729099693348817543100978294252774314626121493822919402633786597256843463029601164891638888829653761223212055059551361187778417645984553412389611080969291831443733163669595806568553173637316417567105385941732715396866432053508495015283022846189882410802453603517821182834614491034536170859582235088761802226570662545985016266866486924159255536984537691334110130734239647491312435164244725700825651655778936535867248098796931870143238454970165473839110282082407312257760177356958074098782777560465373860878693930844899587780330108261646649512941443526901472871546612340327369204126625019719307734868992030547943775514441295396085586603567398122894020183159298610698005358196625079105363892326208118941399852560846819552541253734332369783136231086861917493552910057150865502199771581436708227783809550527751455755109900635553046760440239682063131574332840998720988302896222515347887836944876925197073694307711490605352839461164339814694130868452726266620820035222179215681874369306637303935676285893061489670351356559480944890473998567626384104656501613009764105562256308289349828345259544077231616670199936084113196777362763869327681519302454188845005941201500541827245267374091078645047499602417688535361463518351204056436489804071400818054510744353090545937152235159212157972036718461821403464412066182411838661552630883429196407212923960703170558558197247226424259377909319838717977035655769115012397368599432307913884218592469158149366754552764419267098176346148317309890408865961600687953719854031749680469142586910769316880700319648431994364412242868979284852284304213162513335096231569668684407714827422640265876404224209880212760876890828636209756211143235400980124425142582320640861412367892079754437306968085326201089348900496270246970639864939244989847188913082953079444811965852355002540234400397695501177372831637460933558655560387092377480260021600873258890925611020504303964946583791102555233487319338970399076839640758791856903079086000867798417575054703946842997695104524253303640204743518648265577516771650778462429221123903445324416965632587234728689805609773587185051042187288086178116517751172656698139941449006948626799670897825793339763630652633673407938737942288666371474957634224602015966177110946560201094326129447536474599621907534550030539230774316256989087062429466099586214834315431361004622446842579253030914672503077993475055098531938767571466468435764640757763118540355279197930318760566656813189301673538574842311062274871933867314865649883341684089864954168875182122696596484868837962713902639166538330098070427445984328175568253763449822711735216508129221092183533221227229022060119587198189484044312579034495437768408226229376723351933971674028047043451053118497426898632272294927057638803370731359393025558556208271653203562659978149021483444518251703281926717211027974941436836609168386852021446868276909319990267792588066183716241615353934980804758745116698201252301824038499329952238335578832809558620327470220567289890669734892396647796291956986884328838100002849668825953686382819400771879376601692256746291938406725340821426044272248913145743609956057440725044083866481286122749093746386035115864585837055407269992487165503918357315757985215810648070690761456834671492213420565293159380971672312516195968316582347587325936233043450946249173625552077717090270449258096740292939788886786150233727362359418998697656051200580240048666246780354272596071324917490045287107157527796941219577026297161744216867496079296820991299008251701352441674973594173677755691108578514341163679004062921640412308682625696219927712859526135901835027577175028280225649103026982000261148700696209551985482921888104164331715497682585724162832886182149169192790143881333206941829136460108603732172833596930495052115972167009008220737656410584018078789176046471892091109520348905300878866174383163960060593518084602942386696443901309000942924790112728896737930283128436806193652219843078370078624070278903074455020504965385131492644749551998434418898158012258077402850627773921945757085081845114981741276859757732269008859599773116134954896141095230749928763184638512039121695967019566914596762037372742109632042638650393099972729732822036335463686452095173067979329264729354422915392399114987397879443171851472826112168774207212499941116547431212053584305678645998053937598300904293807924946078681946504318698988364561451367475855800825805120243992582792704963845606336252682178038073759281944605325284382431408961086281251209232774972068960249906066386678778950540791832832007790060399917868659360432311934577947945929925987978298941610528644089077714109235107055688758899450371415476700975791488809729326215896567983473154178217307606821195174684189400318131434367271823803865958252409648728727012132520186816975368206920627558257944951967891083079129324071663632655068987551812003656731962294263284876207965055380616042573747296153727512032158963907201225399359512676914802901528318694619758737531722308801170124680688814083113229563034882317761273372523780317282790833289283456024646128387396089789570536277858431106448232426007712022301943445910320650327738009405032913378586668926201162891919365690285406484965080095693977349999986327219843384092011292604126184576786492925691345366858383327067440613948322060684085939084642815086989008512096155918260996709329728181329892525755583213060308788829712801562199101848827292845784109131710700116959225869501412633434712070328949251073340249806794876410376273106070757753730728422771476578632728682096754440819671314044786934681358780236105117614218425924179270874119135520051759818081166574788513070599299672303844151727587274712618913446652497325492563571993730783035244329083259318914967710301470022333606597848260116292049506994327888958343702785914002008509973098189209361385037698716810943895646386020731057208766102052152604590296364535960242416420792815712635968127063912256798363029751508941171505880044776979145039789337727573717723251006785100757338339151668535111520450528113172597217260325107454844261443237284321628837453276017827194854625423536873805144112421896825051121219815895176100927653650935884456219548347194299359282043716537919700320689014441903255724310521020078981524295297498492266513152078765437285933165186978619859414883777299234214549669109862378037772294254193335667657903813723041571674369427831484948589915622605000190136371713658936350967132163376110298974803374635670429172642642159538176149425063743839320922151072670250588275348217484070135464993231667507143087422032758046028527494879565243907241413790135412734772646967628309732122584491111690346195627958074322347182747251864759900141063877568936744660672811849461676049187728895832412602841768709192251775093710176354884276183763463823179896255022259913870378574156530821799314901984581380662698297675837704327218064833228535437793745723706910360412228209429790412477743663146550876523060407775428940629897873633889798821391225711965840582485581578743620463618761346060281994441949237369062285352648320868561016648567387274549700125290516488150875258894638636302347194517232536097832228916420359202699271921679869548357651031237576730518748203913954837031776158997935232635943368728021162210413665297315309536355714558034262859882921091930870764807665018181885246595321046719102062324804985570675644389888645214769731932783182601581607985277053163633267654679491745980073680333047009810058619821899815721687057218804021259680777636702363285713931166370698516438897080196804211855848202278201011383792525602626967497376798357462968553632510876741658857068182558195879219501296645794650393351170768560912632537895002977516823905071198057515165894567914536065097170563050681641781086830235520248794928200475468300017324400758630011508773231875086040396279291886569826863157851825295145202360922291149961467807672203660798917306076290373294251866394468659993540339943199350696864748514940331647505185793660348933958151611344138569947487790894832172681473514875020594131285834583104889953208247651386014596037961878681009038759016179435305719654190543885661199273127466990788719304446228374796985268417091967496725673885846583278232439347077348012446948322580837080086385270864082467116924585136672367288417189102617592074065863327357738784104736614414490296280489159060230024098051980600498191714728938811990657563734413817154956934072267411451371812403790376899262814918814269638936311218837725483793305041990098258603123098655689629072507902880951786249874700637248830094951124324430554768933367175384035142723753187812962465126846732668792933801350785875936457203282203296208130177704666678646531192964556126859329560927443584938847359053784194977047332229051995437280341858710755153624868179392997454712806614607204762815220387330702141217528015805996792575129615655252094392040152974171450958133748087414784762335552792680259116581961854541081417828551748434779877182531900682827331668925022320509171376294626627879856367372583459036959885590618101879629447035010885027117657184319068352545778280471401424178107518844183121853586121850152151430769606482464514119292755413282940913846229445173515366278710146716642478672430569367624429908868219262109899947622063258869186030956213167755772322545869894494628990670878232647152532239780620981670601666867155148194068881968986263984073971682737141555446717238107431289835995165015618450586345133584983125932680640789248097337848901719189254839410327940432773080524597090910468617081562421392591076508035091973846794738871988411042452017007490547220411244025618440900963032501586258679782083168106408686725748578731279564226617004925362254478045653993421763804385976510685970766842219134764458834959423159041817057699258426550426442601075022969964643842092155667242090885481743048326931451651546760627793102526476956405202304586712241459439060078453956503536605106450934841400024864449114503736195589636852534791905894444891901278932679435112176934708278304880005672258139258398855198312514132185064691720434516823649264194407262663708718956103505902244042645795977813010133526626035411539941631920964590953842271449767823344857993207366386374617835550733892591725554430121570822204821876225606749533938617680709562357623126212248795033440228613588130754511758421915379857927760805781558118367092899765574395299622361351665733473475499508143340771029226345229448259749627365011352218897023482109156215344573019692790963235805861001549678932626240763627263767502088627128911104455881309845740832184607404855301710869654463132562655789838416084980401767134108340059865360769806861942920068275803806610603893822683663597037328317238072287981736300147129838763964197046164390239125597168992584300384814249645195011352994488199654896477583853130193487870579224959602718760526419527643389236168083443067744424146236417573280629803332105658803075798583292081562288384821769461438793207553512812979253598255560536145266159453683238520598029179502088885316954775912516134412145153487097173545029793600226691555220607814765666721513259077100379621705511230194598155227989482877735678275483620777074258341179612967459578115078734279060071574175880009175389261502523378263206258733816347144400345977897338128499424151208466417733219608222905941976040236576652370607990369523831914943819629396929041168782179340916609682946894398036870996983625169958206042525476918224518647874325204007934949975970546140186589320546740998679717035146521015448738562132155220834555784972252008898777288224117606756274731095189101419508717113354674529553596457251910563570962946976652017418406537494424603762980006538415720670118030107228941131023408497683828492389063165851017532176113994542788248822849856989892847198066422007774883924162940341578106518473096928422274413696977418082019442614074874533535701408719197253809540409592046839777847706168098489101063571489616238470624074796139982784526321796768056843555010739030559519525028701001402545132212524805872947482932959445566385358936626490683721355645652560991457560299695462342260754577381184571139079363620754159186111611026553185778486162325216670448914405411066796344669744624449495087097244653699373860983804674546706636800760011405733716423203002749660811362878474875975527645480758941863251462395654897985721334510308431873477637150866579503840930873163936364894835552470050060393774706750828647811698748129452534165758009787034265612879499204677380673081701185680251423862551599760172188120582124402573851344291267270679847247069632349084795893979373506278874397500650134125744659300079287572090944145452882837180654793243839656269937652602426355273239584140627605437208694484157070877878065207373424072118714019229554858082718139314621597117521634586130039408895260291039637610563595359786851186876875176223322126228380516485275069469774402532686309643981044962961663902997122902806818426046532469505503934954348634123950630605979451493740651701674971652612177308271829048501135927382813333855184543962090176630852189562614285022128023601412155156129132877662127391680897705391532989598525230492627898251762228896967163658388139529394134076920263105337502193217283121489926799717185482314278505652075517166944874775063376873847104914853411821141585011812266505347996898020906341447794839602941170633061559709042631356846914567165599370087559862177695517394947945004290171578810671663013763091729779411163111175846543486226202110612232968918357922919512858362282723986699519654186788549887899313241490229989345663040936981765539162044513387170513228176834959443449842352560976926112963320223093310681045806743292736652809477431339585128031844378694646629558621108946795973214483360779952693703323634506821621673051887015294569630947037237090904831588486711614067469047383809784279412065837496352066289663710752540648503276432268638600733524465432067355414259204105719200110245474765303261671341237568006662493037200202916471158971002058037304021020465682809795758839101250523039760685530973822929771221037124005662525596947679344737386180454925267269553907322552707807951638730904360321793068620072915849959312657830101076008148123392806993393565035245588748130821380637193642615568816111057357397199134426636039773821542997957753650377279626161970029073514794970356391605072832220397630866960374621218256558746627164759205514606667823124354194114610411578408735430464451553203682619326366987936762301342621389794910763424834974055543978911423134250162095023940817511598427907614282020260255947024896259336627620375658716587504934932477587351236786740658737092007642369660438557112725991281953423031517406085929459474189754011535332642455172922277702808356935160276850524657454183673828031166113227901370960593717033748894976953126125097461782345889126889613175325415604002665642272145571672318026493621031694667540133630262223424065785098276138364703639665115592114183770637136757968968259448359623513323751262265574286227751033762762913751160045789626165388718553892130333948291253873568194513241515545851254824705719096089572694585710618697873795183605190210900685766620376755324322147323910492957738185138085296054535996153741411837045213470683303153939071101093964131241840575419886882977454534962087203419868222657600892229273876118189093172891829870462874293578589188300074412047724610628614400355673760386083131276905563900764677265753467980541875401897515673967629455200567191286580522329562033196033500456289247057291407758797922430991751275268301916546801110577124312063934278648543669200612724495941779622322983545965921332206338168874650008784321041625022145965571466191501862585768450456769662204034148998892645659740855510269318004519167090942003029353650986788118673630866231816270358726564436626746436501143792925184763712208472938733613846574174839797258356840771827308396714202283027666701280333442084857429323890498068016206039690095050094774412759594008707819426800215260470869529441224430788522462640131973350907992515644550126025621987553522844076185124568983574051439514507931010276580702463656303572155710257036447241195978802571270746218632215232420339079185147748989301050382362092999721628374908363537685597916907835032591007169038906664901046450025248076525829524189134137811317176130329834159055368230633824959139646848829952951008658950278520405037253977079712950533807086059857841066110408708284288287134980249995305842699011256701845109811643645467986253195184497352983449104382970976486613515733700956075564551146449532449285780915478763007125930519288588093753523362548995452874563863431596056995121301016204141074014159045727818299044595678588396096664142604938076558912359289000403181581828986943168536118968283675839208658629218682042995727139620832751657517922570725388370546386806940439833484370776940311883583050376298792034069023599473821301421709233799660982796146057488014585657714004903641482960794511834592871563072460707024187007092427799860298317494302049886536794086647987958460366223918580972203724581011115828140160891095161853148160461538913589962760046319661056675805890795018242561933972298195813758684696197208704045774327584368025279220013744927941922977948166265517174803627146536730117485962675818320758533686238690423935174485383930723641659016827902648949032081187774897238468231609218679336047877492937543098933360700501583883527794741038919539190152362278412413699620709876172299570073328582420661702255001539037290344575618236457400277080618964091166132266047109469566081524601858801904599130231721426295409242543619920186726134118272202000353746599299927730616990493681178597266920771125617394282648342014842941753780341519755613563897498883689822542026189007281180769456424093806219605841210726282034756308798736874168798828545909995581471885508694418173902660242088675916493394537038065028145674167190028427375123628677262258896246913698522803181817335562679174347981617042494871206691177299142882396784067147711146946170007703818712635905939990570126620373393534101360791544789200220929612860739565006585480347694449762734717554658390220184875173673784171156689926054099224237662903333778479375013697616096610393512516969613849308467553131229075748956005658665562388698440203314010049355207618535287914094764816124444429621132133530786010484902662702293020182649247685662594468387354580198249303069535868456079108872320468926515442319584782088001332065873999819587872315337391428726649485101206565109166334108992015722687772100860147065802191854186039287863779941529925097637083853991993073804732067145437955407379539106953367637358777169170486322962991575752488425524563153655438632018547180070732506655121413952646342943931238857630158996673916651479794624434889575358252416573022957323875481179673952323983002844056177570680330865724906756804921873039556565122395841829194486718499252998667406035952793512513423842926327460019413539482352740763478180922036491298542253449536418135536952258635937034433041866311741840221855699927073334034650430278990019682544018915430048332575807904940668826138955457269244934000245237262423299176686005820647277913112739646918248091748185156298484291967603697643248773707736645550835925474440704269738653775368549565506154245647933619150811817341481670024094440378636484618598293082253939421031727597357335210132676184160985144726753810212500183039693032522727830945044695900474537141781631463004545227823042155129848602334012343918473622277708248969941020011823793350888298458737029506903285269695258456907676712603587100260677228760550398168472597182317082419528691197011119890664308079158802221805820958080137936832961576561928941876824166717820440412951736793020268048146389681784737093583153444665947972704812668559830260377900162103914629964063587875642383534221859829431966963920718231516177638644458813766839210323760316648423086136748145714678417084231108850131978085573809946544234865805512651544494079568925755111721371409032544467899399977723380776473275444154815458025305277046552066323671035581990420636671532075141363624496821935175437224452404465627124394445440291242288660424999751428553669529811722369738461118550465082626260860128945929558647983450312723041678984019546455198081217038609328025294741856571574961147267715275948744692810442272759801559895595048619812208997326335418618490505554737682687303587244364693566635950494989796643998979259004581080096344278467585207173434400027932171178443110355276789990836265058861465272508168335700723715074304481413499444407633992610191524529381424793872847053344037862633079874724284897894940132408650084045283572779811099041243943370515724364333433716381721657695875439108771421199527352266092001648759886131031078951078061321334737394780738879014533172616731189113895659462313681243103091859305556040570685177406463022242941160562765732633887364374317639144750844454697579279089112785369425387601005167430100943463715829948901012960422293201026334903028122785220579868308773181615852752809197251217792731113358525050210086251422460928578321383788494789720004037061669018639344094741446081604724374142588231469248726419867291572526346147834385355159271729758151970522510379328865512755570760495415549662257606608351349239008896972952979547544314609252138919347361649278197885002458508127304930269206847789366551259050929928820651237457080274496079563654782812118289013331141073754697831404076630015915062710864748954205111289979712495982770711352037020156020065703376049778708976685957328041790303167103780763401347878485040450605717255744173202678262814037966657293295182666914456814079965199106271937220867647441861553443672480523765956674292268685275696444165035111800272019496862222703658192093659695226950242086919564230908323194989918863016089063278905012651585925264617320783419862553767563710936392657656998106352957503982790289076364244806875597365144882085026414182437786180901422258309888738770453238456030218819406271515085990687475391331108779329329285677235846802028959719183343509580319658885965622480562056001217360352731291525025547647137994395561849381210373731103405016551171373665080489488514301583205334541901851399793772461218876895543088761513943707092455130733789820891678238446860636927940316891228745045302312203838087986716686700137222717845206179256548508170465402882051896350032607311426163650772614320892044489730682182863299283380938537444441797379901121594612314248958996947115910125121366930966847848267834019094916092711489297475794180724846131764655831671622996722755909222791632728191883358118826370279141766492642014418662460554835296993277702465273123385933292792383051114924822025272734916515552792879292385099353864112902185119229962497889046913069124826643643642032240213221554525428252793546233003549729330435489799765448643253932303717447593024286275172139824406503423554139090764282885206509790935093632860058680337186601348704852034708705072456786354578692490701475063784418311241199026827679586321553090048280381149380901040966793347967621915962180400527987914633329938275781441872196899277166498908656907726590024783347540539245428271641190236201173719471353472147058326595355177609389092807146494642565852278606959388753381074570815206594937761339308716380758710951834359451215689918235652124670177083442321207366096703366335883443014063402408582269686362046394981261719655560903691115169648682094116708677503735589358691140325994611387315355061944318476438914770612168523156502666472116189581502642693471187544249954427125411685609385985931858890702971933971981193308197890688520068639406557347741993407215704033180682976308397505527407299342291399112400374461832984053199283257867053379189818453528021869515841535276596570492256362859218167939042944641940810975454337351201633623034804074252814009880126588684597422678520005868463252752736570150025340587288415609050352639825441664588241279460642924123011687982529593079658101424537722248639651321388626393853796416166829868659006350789337888940741003234280687076455846382799994950162948029536515939637840538194771889576618445978293149807438210463471221511975417935679988117620686685549868976300597983900892443025322681586635745222129553918962116274921527056325559675309429207748145970482208312795105207696234574148222621441313075846442843514565253766194857627476103853486011243655777776349480764026068060177820027931939593072143225041892577805771304961641982048054120991249978180219841618749684378991624029004165299576558690207886220362752173609727472308506050541973702942670542283714134799367270396270421369241774672180221553759813876680695422617825360864104497132654685647642850869092055068835988642443336901038945668036606260713336360465391702276344281193956141753484587932534083897795276469958239945722434025656779045192872590211123240497611561098893394569978006951765800804046225879823743199665466487314449409865605288346459219458659571986327527487265697201584575930629409648367443744336732865045937455530542207581938451576282526392093339618886019245157821577079898424978422238643423691284789319606353639389294085369304492189490053172819620826325507867582632383553654964306602728321036037088186558165077790691552128368510066916216970728496273491791643908860647635514440534932209355958904982741761617794032170424370809309568906246672911534024388536537372134104147374889750221466848380030958206620799782420594969714640130242864171983869143047049529910053012709221754464017711935015275119777829355693825054968137009072729471784216099764151968930712369565884454806124224215155770064324786867894749287265560142201982413537984956082044502135401389909883738537698780776902183069042678649125422861162041320120314181510701338768882501062248687211673021083427943547461874583779339787449529779032973468531213513177671938253410825747048701483830841139749357270821549320029879342541970979711572547971424644430764555154238865176807841284836533299146168000112212094133619472903790437698983706172644204965804823662392376857778645305920555542131304974193026466907800166151433830020760021115183858508046936286881839104884122366398026360258009075955330659969941230207533850496982845262947180009178426480856382136083528496605570808407758196523920798150553037893960696867816151208393073095344826116092067097571541940779658505712647080549086712229594485833590798771881630449815109352773481039760007491603662840621155003991735323835967718283509938464741750386239412145138335203959036129984468359620570615982229741256250327031842004822042206081285594128991027170244920371732468453373408690771722831196056223979622704421720889549903293925748584840039807370760421403727921540749326087337044418311064240546573202359497324195384676161202912558035842794103619011000660192153604532160762466394108119510510056592307178826162071467080414248730596486448485101657765730471663457445544455122384592792305456049218184138543812926306449336688891992460336896282917052494268206013689996014233687701542170388770113915068762363588988357392052664571629757027355679401328626370972963462655768521699570154536454482377171927513428453737330035837118855379540331193741677744980884812309920933499456655983198602835311651261239680394801162404128942698832813000227438662576603048751261281646576832310627739318260161413796879392322769072811294335164254986696623592777561370439987469307240520468885085796997334124053885237058353697612878606822355986392460955294573376652818051306299805691952890929460690085389557219511299191700873659100969904777041674723148816359151563595198595422449224440959084831003322203377491433065010663283408793483383820613387404437780277035329365551573030294322307530048737702207419442754564466553921750123005059690438513961874894405016053637020132936458419376484672588166658838480904369287027540975610222759739000115061949401095247062795383954893445573095669843022945169943808840876337301771199763338348032423403337381439276314241831612978739324479849834961031400273963941862262349213940068870133003885736989763968385672241157247520720344774472437097647429712752607066551157791947713866740836354746764938778880004946159569760878977966383663973876933492291303516077349501552688791734663836082294672477381699119927737002306307929162650734995770039210950510015242416193299836216413513805449445043868829668525982179455510052891707066310072132532065196751720344212932257588230048329846942677455835723593561421585888516608925426363649113341247283540115034732114503596190173666514230226246983322149653572785360292776060204384840090061045239098748616054088003445819451190049359228770835371002379657786526521570839785746481940071679396770001748166399929335346319369415216875982076378557546451231188596081496558310710214621438479372670773855727478413073070212046098160743790103771793462088746127068603850583844254530608863946713991377515502114986586612774721055785953399098704074413015643050404717906286954145900101624494385241822181993091907038265233996087746717883360358676901294088294682704246578488040447198360853571249340717187554701494042540622719887049223205595538952015083609296007088668412282743172789680598101730329344087266761340391920547421414180540786756654417838918990357516543650511277992557196494951767488720488458628100775003622433958785773539610321388041933678212544851689685629804501012100966586890883127299713754356390198633347514795935081665281338697345992646533230281996868106425024643396783140005507924319909387482777657033162746987168747818661867835955849371195766582978022368357911616080207543269830055557189391262608149811678276907088442392843004023606603370774165936802140734740813449318908670878754131421922819008318700541957297119765034168054618662977184007559633689562143772836427341384988894608357478526724898844594007450124542681133151352197848666264043953177393280038907318849943515922571068080113017365542363922548503531322033623673710174654346505907732139717433902079842295593723999008390973313003108290643389698478927713114238259641452215319580229864917650026956925706756981875211541045430028175465956067343624415606418407202796708982426681804586945771593026445302747020881341199225998428948266836721851259100852584123266325819440802845280852818815102038331150206515518375566775885023620584939996331518355806878320380381474921218210278702953141318311561309235626793723106107084177079623966726639461031960095599515434789915221511464116930041419912302592372902105842428817608717241698192101004252642657104938022048386351512566313930723626404685333576883895377680453497557838619795252002787593310476865155179528111854100056823141730918500401370406365458479031432804051602202920822573504597862786415028843839868811946066904931081590819038544738628377344317062717075298875789171508935923141253349664813838810725174608047728038806031969455271366519333536569528382634137616270164646435075922247533144141349984823693806100784535864655209620392991760079980973748364552191638084789627378280201627518494517118333889846631986046222521373447734407941116312598313456859424427402860052679109677636203294010636130240633366151822173856470845972935889936220437091769122924783270465007901699048019617187780450222455906668289202551059589340058510449600463618101004480430534009208226697632010194566086763930096818791535962455941144094434434951506630175487114173252373175216523188310564310309503886222892578465688461368765880094618940182580979211490926193540340731368111112438404136412493524991930710801381938743808963649720901503195143930070979701040720854470269502158901646474296304786310868770818791040385072646046931509935151471710987535873853818859846519803654680936083371518788340900537937260546233128112141812345736027180434504893256949448289657826979199273334676745389685367070977716982264732569645391543988183174456728882493673040692640129197196230005490601048998463762886085356782163417100492444105297669742720063754051103246268758564335651740605224943403726475346570703780424322186950254327182718459286880967684008373806526978021898951590478961160330433320173551800929467069748656642485813462744786628116734134707681849932849178070882587533788026065652533132161347773665200560849314476216075665409683071374154103895708054207476740293172488232092776169363426273178322811987755745747953896335606348264864895167135277918462906530239589169221181001472185980179279123992378559748297328486014242174466640445227393807018376196596221416095346728740959454215919896428158783255330065122683849391034093047481630870707074195135364453366785237379116763770707925515250839226529595719383899706156604685948799540450412787006036827862151978628998001703436143712668217759649380972391497994567480813947670651073203842541236666328911354433170773318692866995942948392238853730901648474145595869369580143390874853205985805620659295098539778626520152330939940215540103305472861077140780139019513623115751142118667965560347108363271170783001510006296317642975767174689368331666335158550540397450266762653889110699206120141146382283473696630720225745959215609870587150477054719578839506669397913789506631407655768667538347398410764963937559265622343800750460548308731801644535153558017869566917245795520147243727305126193374068837630553734363117529594207431170647254247872369380321842060427200461682690270918005719184664895325214713163151870038011397250049052541364502900465491828875464595042130384864215288372283462279012062413251057264436462747431137781658335933185984875816876196849880831143130178340503225313735251575347398072514499518917244194536569029615057901997852165557263401560146924074664969627205787955946401965885916203169922345069253198362002691272153263663419267339699473089731432371396279605533087692442156117696917843097561289255348925084158146049553278795523455773721067114353969745278904038556731226575688916805714971311746625565053636734149978571740798407735749171589740048864309852938329620979117726438612194720466279002216273805996834685380572411994116111479066585113766874635904460570998100955035561882488307313342973435128971142517329416046012761827433522729171890568224538083988433975743149972401901854684951805930166421998172996435860127136066593005537314391796740556385000650931393906069142279069255903413394889784372534896322609289883005002975438774515336184517984613174854839748932056119245024696659896416171945611856816085838058239809811648837863548515238693719193459705745295131444401052651135565640106721006677156338502287737558742900142737929326178518992323732682245112687682626830331674047377508060943843435726226850068231865760742214940964698110575272530842602706259094081287883476633516052816277382415865207616487314527014058272309709729252723071554480313205176274906557521157398034299426882186713784367438527759913286596680516918001433854987555333582592572015383040855339832539575656171714667304787814867891762087712906630984913311926606247445855156931912870958525515138706835450054863231295534811714484485623913410792152650423319948155698963086795318308097027884262596633912431608329926348745156479877754913443737355777646515732884706599085146177612834616280212660478642549023638772093464289575151634063184343242819354792438722121925454904324276532048987733961611696128832535725748875406530169072634961179690689303091290932294220628569938479100440266480119383379551347751885504008011980173264785338428162419363363961757057296634737674802577214731413768355392548873324141216548517131679574367153583015676096823637656696830206366479930595740324416103876251465305901275611181806013593663938834403550925454650466454228965597701519422484100869382411754087482243015257544474880456787463318591504481607885173985898805019361601291483271170168333922188362608240364550202305463132969138574763137059099208748602567454782041741448781046195305753708152387787836649827260075050143498078094122406797585801435257469563563390969385952568513128338933378677827958667812752588446000378842143634083145529291446826142573370866918115162923644435490601046902776162901274389511801161238383731675787674768516173389451974536145907366100571268940420040078199567285564170985521070606308642724037492433884110376150403393154349603893306184855629248286449961704643109222572345221810273472623542886446310933922172825210068440380998323057461199163962904879252169447668213487973515384524362527118233771039583835618911626175036524659378595360037114673942237462790302869176784309028936426963044883866532684348926287878001520145563151904606409074611095107194358555422584969509909511089468044335246964656669017547708636188088945470019396562363977912177044247643507430920502139143404419948352125530633793269355356157586140559168834526877946927154942487032576005781223873030630714549377370913857059420168788772576428782699557253572549045984987329468844102497788803433723459285117483051963057728007139979428207964478816479280173065210684974028079630649634859380001148620716905495209354198157743962890198685865994478642819542170940776982713327647071372593386806031185113717357649720478978602651171602296249395574106293077968527330627384863056603692444937872133460796167665072667263695007164611351068917352804501314335211129691746731193105988752280416968045021005747892378110563032734466663751010176543209010227154637068316040882099380648228809177328450893646798743024555040486179884665284649859030176857883006713804407096985556973475757595136831154563693097071678278916805439007963732759217292973887532934876866204788557453652298819070280097981613322661232681494843392032492059134032834775460833204659260588622069548154401023773128889063255380099809775580935653150490883337224606438727630194488306000136676855283722702585629805096572348623692960918860329667821224255478282576177506338315696670253234882022561483003619104527549984065298038800860486838924173118778377361771668475887375127337206852782334350712921882043684987472016146181004795070084589592599677553791277613644856612590574485854178066357372545697957494904125751601562369071043052411085427644993756438706792072282412265767870261893469102855949536989140060456851839134805476279345314066893828218929169209918078250369691143674457878095852494984562256561183244229081336979301082191808295742873839916507467976515719982283204591727826732478101610685660545618025090118394734062258249532965234878617519267988923698115956075100997955720689925233699513960752885478225666462491963960927346917132665554407744793161185139133414287314072409658030015328969701648415672143385940504161962569583049774731863351848823280649340183715770887421705826963415248397911961341087858494619735993334963736354793389897899440150828468522024148758401656289535783533407277457831397905851602906805663300105680954325209013409545733598472115339579197459056066269925477628983147848981445298947695178643770432164344174224911736340036018450168204208522502579286538453874078518462352328916197587582444082163739941256583926576990423005612957403509015268773002935646969604430615629146446240944744868949522649419026826556614469294051753210543225269492753546692616463142952825809009263093647873620282483676659404394225321037566853311723298235870287705023375264729012594190957357351360499655755656538094292826997596896434620664915243604183106065484477163500949241315119904260377958481602953671299068710227227793521386704099043826062866131633170631521172806645584449570346223425032681678150433581183648870750169430026819886692516153940494505039499847919657487307925819161192008563789146811456028050060648362913449142869710023611805012683257072880965647510815452338328897517645252048936888842905084975091300569755140255552073666817519942959509611711573956096622128729920569962426932797547112035211026513543826553066976277495999140887507262998416148372434807543124956455863822726118411648267703970977023969412679103491118956815754542567834215684108118834693420446179179405685032503275073516115230460538103655330097920774604672277145900583140464435360537427046420182479536285345485993026435257735492555420944974750980364993680751176334301796399419164271929759478358218198867992340815709414727668160336966727898261045201777184755540209096448150578215757500829586694687909227246080999616981043942813687138040247480446098207975191153687425497197768884642235342403083170191991312661312113982391157403986588106924055288043459665256402260849931145196897701900969645114102598001677695363052519038452395748534876855113909236943239089526306145909336455062386856075770443231265463521883866327333983833456937976787531287897129449589677474627732766761094406870090713110042097414566845565304444079617350806096645093141555664930710239005479536154397119141753644926030140568549208420365717209749127578645220166922034113592764100987800819599871148990871095278823101145415467928836246353399143474794821273731954748178750886742160719626205230163901714072495498614026563581486714189853575993736222766614403299959580292142955846235975471848907326372552044665990465942208298127798498929626914851047459598649168774764268488742067600795714458678202401142567192993381892585909084624618857063911720579471311509589257633542341175090949205830293262582154520646056430665707034051288280019370344970092387566986631467553900668291945928178155228424446435741276873637968145182956965629658190027086855813436348110359286733974867029279998917468530925360268560772058137862125737356637471493218322176723764741903725375838696789445508918925781668184446540501879901398597664044729256450124841256451622411619277756498938247963224455591297099580560457860038310875628019766421747939813446976359066584789583330734839951148691227817447324411830963685060688939948733357641904783194444078361813702451786618406261341002046653321920221044411766181494495116541962346875120137309367883046087195417512631200828393836559722650198291529505614875590781790129282553019137040249430092975025575761352666614713801902007109429582119887990274498049564878929488584419103077990266386385471070554225304691476323293755450317468664301594775350949813703863466755164245447970224074608821880504914001852053542272443826881851264068038234514371479051862019587093481910073705323803586813994702947314789985788960525294078503635584957785567021524182786294944125711730967854605425533833205407111155230881868898673922233415746101442843769964052509795366005829183904574375687671652310048032217382689649643625069927100499025718068131588343086378694312600024610770228883614562092094258910646012293977845624532293404610208173227501169998217831296510818872610378365700424519908975848478083073155251147393342918381115621234391728044684902806315804578538300210385485130556048157242737122395806690948465639293141713229707118923751700370477538650903013640614464201802501544141886931951274880178549540595027745370949850810074350089211942648836011491507532430344880272389455984189909371998551474072323093909848614574785059758024690531218002122311685216447971825171613541440370989402454867457547697572143129215205010032246241560690818084990850996656261642128251409940424024464929017032515898133948768761089842286917801793736733975452194633038836864292614635334953979075573906202891293475796730007935155371021814686129048526522038990379199012691640154736109033459688949332489275685114974128343526588195663039184891635940852729207445104921772070124244483866556416620542304057178712373996598461456008188191712256953862303332609945331734298105500851815640382994489547853510714669985841652457896809114412547297105319095244728818861324948624308895591723848953322609694286811061205115106174961760174112899262303051719629694864733543758836323633606579306856195941407427947476357623322133309921733411720841458943680022875998470410190472291879880047364746392615429965358914951198598901455442417099297500681712648740748619386080031443958428367447657334918226162007170000579995330268768198539506511318555208946795822472359597809016919772371416416630439018044595233382913389263844649312873166727888943120181654729089191681014825412073576991926489439034155166458858348089272758096279033991567575130249472565779837663302656515092812775536972086040688199297749557372492096493416226661000584106027449576985202057185946999831931410667673299768068810132433877917334756183722731318254246963735798776197617604199236506539322621879155621273571801619198940284644123575658700663860536004118589188229995310484883887514710343248191055431710999013137472153503219163583670473831200404462304902442647245999554964823818320038358194958427485362897597245847428799698359334167832159118507616955378524402050029682468665621957246762341617603012836580084338998225992298755531707540424775240397711059574603608171725301964632003024898808595116998388955317315230835128054824832043824924471545693259077110413322807927449261005531374579754039571418758440762267159294155936521951440637157799666290951602023383218781438086190320691187939003154333377692143761728568928506685396679573200082600955428693112106113085879335435876030129494763754534284372101962905702168738284374359271543568537379033405885015557611405811057272389366551493871833222956335368526190304747136852662582045140953081846800702072562396700068322148795395140596192469378501860406466182179790025108818567475407103902032189722940916685331973122542870983617657940815502820532908170453238676234320720091809066512620266321000530196118117432084245659549558673759320233166120293421579264459324307581259543526289814567520143634256467796185882396476731417418039804721902481963202753639729635572231286451719154505704537350957576781194629487177985582420315697570148748534553787289564706677863614058136866049330821445224546646698919239690289001849132180636740867742093711959947523494087679818185996148873748656519648190953870948872659340449684769871104223125122143160820117150951278684512273176956960361561091699544622748993558504607713669389587639664167618674943195012274140444949955094816714728571287656254905234857247467092503603638553323403776623793067024130603091472681459429683461719731836327185145683040471223167795409443037116286063291493563286901012922386344667002340539331541087551275023201488076210669704263912227929164002912222335770646236512158116865243756826222184599701715388428285768868744795648792855726599483738251938111320310018364458828518876857224276910213766867897679400834690915379497587088643928963083665988094973087980246581311586814445703905260040066057665210490435181745070210408329887985684216086348000393160734744853775307256497910562422141843801468178221640191917178977263173916578221701215622300858966693360022294543811486322703493353771351113044917937295258969783464236913129808493305139485512223787042645717635140238861637591626400997494014066684440506885322429091699389951984022029305587015089677900539746522693879047310288687227327707819487515222924808185847329663951092209650255650408301666806948346788912059803636128839152845867144282644726030756932514450878506900240051265469587006666354010968602649049177045303051637304234701346044825761997240060289365109474105933969596794615590328213867053308809581786201170310243268739865259840555122129434675475948304678393728439401092935078493532162316057012008915259615018318178725689244713702227748227442939397431166985435531653058870274168044816625147388868208833721901392668834114348344871701748241598166082135477806282872657047635650716851534098960546230173641342388546614492212995696573524669998938138944620070856457250744077431818347495499183422677712272614288245633968768392632760430866522707903818554951355048797307454987958692670507216825031123801756932808672542780660334732506687910616001358673859159731889304942216676363917109005283246647556626949979848302600752906371642294449531338422941424866760687114707026341500503876513186038128877142538716405802323456150925428098601492896134317010216396218057605860339808073344045552076367455262249495079481707518211976320567230088549448637397739465144065759612489146310248981950117078951817030843322389777236462007301397700493903052423903489296150243573145996792255775740785316959757721700253913029154775008246967650655063789529167902840981580097971738111820540170474566669742232960071626125660215871762381402130426581513598443005853732609065112104807956841788649529183806610191259698059910347088511077789730634042618202741792466357155267056264410376158873639334233254623598500404821034319543253221817068202555737831778459771092309480397822318111348790252858212621796825716083982502441389764391469865188374912645299116668906024423476497338873106164983069952801845818377761363024832384616825939314509051676088384101542250989341941709670348200098441331045071736749925449022087269459849405413078973162088343141869900452005582260225756391714178792233786011341019842442722510170129832553882183011132004842252029802309512868326069381761609949075413779574558937011108701250013869551921694787903067939365398235457474974639718016681600137440765099598118956116406589651198857490451458085946550394170501519795100110095675156352882018751895714021317168649860653094138765720548552826226540172007361320984822284483021083828600045864738916402384370200048445996408792838042167401190496710268211965034773281839445584100050993498047164054547918383388086812217598776304694203996389928920594802514106394026056027772734869405354195280572574619674126671363364466611580805406164249020675960040277249715173978052594216466069971936596587700319196811326287998734979397550555890603637718837421658073662448536377037948656199628357155884198084350938952498628728520304337881647378725740180829606994209698207677750163518203265335109121006892665313731914163971712548938403051748098068231431472637447977848757098364341071811308584588088261902808823377305157357345970084514515388549868963549519514225215895031262799583166630010341505722687519056498586315670975147742689911115842594593297727353631489162996026715172808420641002421695333349756652768971933215769796863849766639727833063770803658977028203403607599600244797382242167709420915928642727709450169617154688813342233811217828052917085113477249405516591309819934836931099223394079387788773050610096570526948959001043734027620653515004353584690663229853543526030192188476032327915446023352396576914337198098052988873909036194792222647097936523657397743170534470780026234775227825657080907176457155386159254058580981260795042102854441035028265261581889411206622234524220726370436038925124261962813720746130978973332005357709812769836332202493971385173064178035616418153147522366674612628451768484998375182550513450982309147626989508548793602446625516592414924519845172701301452082079573826149349779069165100689730507252602416246931732039932549548999142466440619233738220400930040818080416814958541432126903195935190178203850323905129610417009969911857020789169442975442349246437471311234919894494576871923258103073391723025066240703845519259779895512427443642510288392008174490151633506141579243949445624416671827999542836750525592182182434729016482332809853103938658328347582304094729425105158688209696670498502696937713628590185975273991379908985770320703947748325815295918649840762498442721542663183701841935882346466753696821538359183093194642077899012307030880634182682656044098107245523300570081206279498349841473970325256481175073262325715995971307656754774253051583911130412022621768324841351850163422914222318396344101456808504664666806909798425267876909710271775546215225226631666630621886506248917664333246939712774329258278500316692979780116617624262253636088236494571517246615072425145323316231940000456237781332306355140731063143043444329094574337690233850232233953212659741825094868686483739721265328206607972718197226947662400419522836752611047133993182362549548469127338455576383595653059736334590505288555610966249826335791688504512222379485164832081421136937198505239071485060144846259312727641410627443343839329637772084648358090467366552850999956988226072345324745366661532957344127428076743412796632911152213875352116399360429237498390211667100305993615215266214100854586313715981700276630098933124750929967121230209593353389249033192959614485104656564696033123300844274960200250787122357093890193850209039744172343407742551996755168891433274467224480284255472863018260775686236156087402105297771024400611060471862331938305190637920223985801619389823249439733937921270476325783776834702349719490905226430007018795626469703893476563787009929191955301213775537643698792541683579053736803205085214162925206704524461562246564184477701317275435416480839583031113723843227624848408726571406409958741572703876399994610029015290055029331596297703706351727997476118321954598543396395530133277774629471968958438588769015538564963891700053136963338810271274777256652946970752293350054812761796585981516280193062461854896399633351523082749102674087272660560421502516309098232904785225532307734912255422386775525991221229000872171063455022147151672034758958858107366013154351539746182952487818716973964583085811240198312476754878785978326112994743644751802339617556353382691701815157943271497872014345400186566798529067373549453153351375254654929654866127654333037245840651935091071238797980061838971394605421326231817040531784656835764435601937132516692950588977871963382150314638423096184329107975046645902941297736672010885396592862374922793283977823632154463130815258812481519425138024373955508900681739349687078241014807265353117977448614578968514562493059803000810348446299926067930134468898116852299490106093365491608655610266160611594050698074171089491213505441337798366804076687485708950540589856013859972678848820768317478485315707883441484407999040041263926181639026570215603225713940208017317549532033868233242228848415571773210821637856567695366350961056806992428775905937395511182918800995642361837930386752317351382080605085920495526810796600482730078667897048409903965458036079556112517265807160227973701472514614820933925613775292916955471990331898984272929938375862904604724562355560247929257253927646602555452511848159098195059617358592605608024303817850159345838918948409545390418486104979661087909164971106333841303925416629412366196549730629374471639447924428291729571150285859664893251481615398343300625538862275553109761542299543150300431521832684377578676621917022728622028754508629622688760032210022686597868971583939214904054090122850370523200479449671212965926053619516647917934643250431304938181870679586850158753269834952268790402624359888962304341259441650068772622669077355247346563073575545498127298891487853146183831287946889181185085100937629707683544651482241645231637261552316957817273246234788639180024631566311817789561652222126233591217262415035559606023358773054862969965680308230142335280385886114192855123633994626372994148536277803808517839422868487542242841584752520476034440555143102101268641595754892836748188078083167178489920955281649456249188971487228421624440984389181560144954094275957234530719309619112262247671339008349058376234818832924720796108282966802369982737329891007443971269892839215043964320858317604095055596910363712967935588772823525585732479618189107140674665914054270232537532220378147033862432505152569928314326318964995770340802025270136396548716403500820208484901129967245971628978579633753416290900848796025062255732291925654521840821939625191096750583059684629439624081729777661037888639558571023304601053143377802138232298483714837463122945782637953743802299024604333063350170508078356540062081770798615666019911775410974040138382992298155965392168864952619918228733866613840752245134284966240849781881732306466504757754177425255016935059973805977791093521083556218204726687403575922172414773324117508106831043929517850627475207709762180899580961518809159575005414467096918510195098919999098790992638150066983515755781280105984699252166266087996717997891163073044212752336278671163030943992252224062476630209736325908164175788239787426486367080810018941608918237181706118943339310183237254424602659536235753103894840415006386757665430168024743703602035017282305215182559862769353746351486765036713857934313430818488999409859635528737068743518283598280103176473571647118718536951437647049345656350603530842572852651187095443492212935695272494793035489604453077843828674190409162239749092103624765207497252565652236239503125649651291840852314565720104395296343445249226980796752015559424228696814856531407729428372078928925984112237955768429867172922469180047078915951733612905384279905936800874280631107329665701889984870508483618323024800101496240654254149865689000171773908142166215946766586324510199464757662921941330619471772744442356232523367196255296340679342017975341484471238086847780492132484990682353958925491161186698836046450016903388053808430481497202727009242061284411719573412067614269018511266504050836426354089885794699407341710225011217526210640970570780966086905650446147150808054025839702848767211496631446916584621794318353241374172582483068197975083397156632034098018909764293848490323056394587038685038101092386307138778848281302283723925085257925500328382507782094597129268524266274066950925469023913361448037098088117926478058203723034807093755462477587547092535083913789126513639019415368816391149217381549829952876121125602097435261288774110716955148583075835034312421879189822044031482634211752613038768344293059107239792523860564645443362308075026415764090696361453296235915850623497910958409418789185684024770006218747178871938407223241076776367069398296485655665065242039049384256880324105323500851488768189066188125495106973424209953825178813111191047820665087598137043609309518996665475214345907247507327071468113906220596615309471266242866337241986115159904086973012025243315809449130852618954615388143762856707710546518693111842917927773192829368644205920347376683435274116343795156136170288357732920066586935037123912690197139614921308182123116798016869894637696002820991419476338438596482244627705431007221604013946339905394415924268838018056980113124509655998948275943428921737432574347784586226364077894912268796197323754964854983110370700780379871839951644706951904177540581405328552766505618875545502513278866208714432145556589138152823974784589464918165743004829902748436262593751005255525062426932712146663206619638238969289489996043914539867390631009648606371165825380609159110279902564700072111475210624504150088730858901423685140495691883216192023050248350215545813232657659659602825647609432268218356712039873544667916906206026409617736035114751217671888415545790083251939267369541397793439377878042135159082404742312591741985392447787673973530735500918269128837673354337513887954702524333901005383842329774557562640416262560697968892704140797823011302613387087112359813988897967515264675594792246659834471781592910585751576850603484017059880312307297913473662662465511504036158926532587999066204650219392551779766285450108800207175822990316235969682207078498359421927498166727125415813265062574746904251546603255708720144982332998505872678132373341903113607316399728478432397219462366876961312660030687067679023879800150233759533401489547024575826870929663877187902858628767274090690079639050038975055560516544960043483290870561398356438955335191582671465559351715718666266222708095522969331193947072898674761428813812925086508769526779770458136148558113390326388268627601603060382595448526250872806422554562902359857673735378709479494057625625715407069686910097474624027996689559082772440004883617566091963913276175047901943338418171354686657953873301849995493330365117266767712041531387514715789502557229252221438124887321740306944429038187701853999947055095812834915730815444838817501504600733955469460101060065869479529230430309047876219577603307809797562181150593545185896011935175838795846107714210052757809807986159331961530851382778047592438524658763291026695643413845604826248976853556060512182169429468187504031323576335792417703614865879938175386218284869846901229719027941188608461390159040297731458906531053390068826792733009244846487766506616919262486665600084464268812999269879186391884144341047860652995722670349673422886360626774300991002038383976691078707081739634375751982375528872294925720531314665767844294835772598231524855358705173258476058599073534594992311548514021350663830056076723427022105582344107634928902432948164488082697273378327699011718071950178114070901550710539948853667172533803142006593954819267551633881777932328904550976040524983799886578019361108748310628215227769551334162374937705837963145740274453426477088386075817300230319390852486309186953692425413918832764450415090707922123588606942277966188307229557245802497430091639208997586258703396106208736297941499853018865660397610866354357649476102327346831721579971098760478036234294732630619267416723001433692801754294672549001738858563966386979078254442416012336123966287833331455896263990473306249931996044852178290599170022951610306025187866264455568450653792214858752296005486944217153793485870525179933404523718225257946953104187892872431208219057173407983587805293512567615047401964338505281468299075880183254570701797865609764559154932403820455133198061193737920902779232919097279362512883493902590163797695204040413044569090477278282213131617986958214183764506723538370057074419840992511545505273506899454691466340649588111033747010265702748848346880156802668057483763929404689753921830096762890492299121149862566060893991988343603008069422369972057898212424478920295628438585999417744717920518340326326497756657167031113424521763299421589722691897314366809149016128715435773942895766290790031122529369565213773685244606496001355844972777196287479078768097799514806235186518892876768307546438423613772134383672018813610815235694152754654384320882352278248006840579239659154956780324921695076822507722661555034579450175336984343198764223066195805511310093103154253898764464427735393340161326425394277599778855424894649551785037963287227783170833009662887819408249468244930026758811379329676286673052850902422386362741270218909963359080354151854829665800018124178459679626374144014946910318780561555070387197240925853987567855341213140335909490488648950526856515472803128267111109472188048153365819997045375324860175597052031073080659417053556216848891129870567110558548826379057057846569874500834020471258197579656116224994051680360038683072720801170012658704239564355040486196584308286522226657475312721117980107481659813045564571959511781580250486810339648984196913171584142688247551071602377481506793568197283586102817698971916922751182767795918839850917539319328047993474144455730871571872806918494886347627977266403997093894826425264490530697811061499485052060057335490122065720740835943775829280377975424879946164836671556474604279835594957572112669399031531059351131320072209902965934084816075345317924201597723252148825406382769031214201542972178734660323202579499303882089109147669506472404514301055407332337497879143863577064689032754366784487765862453603977367611939423766594964477393465049338960997705095507020599783939525635843177699810627593151210541628933430397425990871636492305577527521808924662331545255611716408288536083577840794617483958940908973089938167030892069818063818772781501718765310681656743507075169002193096416557847180544441225092781471227749278160359428506876054238517463504475851599106077468454384218832759910163616566924779462245228416925925526347059808127840352222489615420778009624848742385441109996671295829693682855394700191540036437751188613251767728808729560616742369171565515425115421201326044973944987941289485363431417348081022273519079837010280862162104551757564318997369413988870772309793112686660783069547991615117036536864853894689398057351337772556322605168283049468111428542178648315736314389338535707942499155395799718908144904159943498111189637315968789495485591204999212012382481363111186317287055316426549811047865434337354406545059667440828890585754220773026989505175818734435689461808131077386020661438781403795420243616682383566427342571644464552617770699546336048243057813039833795225460954829477072112394804479102792423300063622054553450087252886617415381285752614925722273402967281514431306439763740962237193085715680834294733692342113282925893769694153543459152932453874992979210492711463389859073200432016667625257490626539614611955750959176283874281334724039221026098906029656594513092554969779698964134677285928633446501683941646212724152434812975552414102478303493727948835794571601464402869125283634967405217221232806880793269850132407227566003315276279738294214317135604039469656788904156068739860803561060811184672284043719806723552685481480145207557443124455841633909822979468605900115988010652926696512250213260356179969962282585686028756953838697929156976329232803298708049568609892567914256586867119811118013008617299109550265710372302780468313311648187102563502916424536259081815682870927813184730950355844767878594939742459877069273463699829462179527393066392427987539974149120119265762253949595381475952620907866922935459936829638549758205721666734066498867405860615857635084171486776102444666373255024277502217122609560857051255300788764890287808827647325269068588403061708374703741561686818509879345051415420915922515889895850558940423254443621416252694542898383402071223334969473553050460663668328469001161299072197006102059616790687532522925139355364274350135419443385008909606824001424295903985332516714639528853808258008397867133826078987394433943940263990069806926325988297459841594515198793492956394732745952322916366112245324678663331591113287080452041297371476563008130502640002782635058726612456606708230040165283193818948827534757873336214149904165524302349235437266031697138220448991418854806663637435483667134136674823140967210754055109507055956863955389298520220360274767167252478917230528621767744656466896705903925532953516064271178342685998483214912316113046843627704878544411908597927466673108596251922427967150529076923198068837417064467220809610895702277146274642865042760461713823401152146863931026850010420709231923038226994951928865974100058982839548644763319087885371937567809670073363862680515650207278514567832992860330587836683250194734805654516749157881194370758022653781449290034460061483021225702398233929616811738538155039670704727753708528425832849753413101485185915198283011801874840930090728792867751184485936481535494337796711638276288838598415860583168703285269383324951410149634991543063931308288326596942241582601355198544908810608679615261518670317102415577703743306327280617725502928564592893293493298955056308425734695316014578350323477597099011019070063455824149705547425208955935143524934628783684129903010961159215908082429665050501054567338395868256804346685235024599823572279410456180125084184895059521919306762438145845990166604113744389340050387462984832919549199217301927572690907236716575878305129967827516048199292367144877921184767958317824403384610729753084059088848757149953113550346379266050619387411151140012008749942035788600590943799707402865819761413830900428409757641223900203612128146317095771229936020905097523904752850824582872669647873715389294330394578910857629625051111797035054342385114760925759011730363881700890969392998774388921183514618140774381398294879627169779357855224036434979851548605217296408104576360604869827943174655716091446040623269175336080200294391331023600222210021197673352790907861966149300064771390891589114401817372016801209935266939272372302143238593898138496082970215926347231000753454765302330269335005277518266780584266924203208079352862145385555890793524788844257986020060605943470161006976119172515706656539813499854272781492896207100149981240841167727286830160642982080348908582022428960889907505144440665320104897264447025788019022849910741696264300915666973585203106782633512390472288875804165730870039302544403625395206256482331691722260311567607865361218372652685526846589162863093583992342923719483559368984180546927714508598822800679932714298187807407663327211810627504239417419801531825371938266254356986522403916685928428328057073619907343979830846517762288467651270008134969505876341340552435639178357777398857324988732380766181703371759470899223882901595395756863566537341241288055289822501847646477984757180607807647932700048024841530261918039281577103960490799390288580871454396368806473333378882777012262831470346103192060117084601587753556713576646312409875641103086254736387672366083421748185921326929252091086377827284096458661191016360138199325351730437937617468918466704009015048053814951097010902536520191832062584174842900373251357222340507259581509129696224143772744069477173059364273772800532146255840493902846432498710414593181173895715387870560500902804970051121149877160559727402972329412296266128837538540391676877842969431685992376342526334387187225034696691569379805522791629735912689850967390326402333013371000358523704027684081315643362304746765087666545829094366405204906896548651190550051745907322349619023211953315785088814878588253697452538762876475093379869704075461859918783536459117235427298909316085226631274144871094855786784631580220740751107420598914240484614209951057796444324125746914893225890003733228155885129989217079516767115865877310078419253232851478551060013956233882724632557491058094445338663696116924966495126427902634686413545614954723637760986236119291781247270120339316216378362085280801699256043629322787852460433000646421944366824152097373450678425423927193649364868928546326753380133925659811760092136666854592993869227259342761047886158865848712323899921362326570951955228257979412163826138416162068153661917534002990293618709756605023768960201881063813640434500337989168986150244239627525515400757437160020967397857268174717125212609588227796547496189420418336709574059391126922416454666726287902409140312207460668176452679647404371573691123471162859123928648295099643446712880717289969522003720517996204395868651713325781516930224941129658555466774781598888259690361196002031007624357491983033609932869805826530285822441728897916297783941828863732367296375026161115392985992833788975770647253123870004487894010923261324339523430099110558635383836789018909933321854094671980623825251710657421873410478151695819208685046353320992743362360092842562099825247034713137581664940917000000204804082567697391193212464074663308058188426243851373850950155549543286024905318650039171764906531338058875413988817955204471329242264486653673424275262149373731880692889687795294665433149585542433895823807062042949794900662740215631882441636918336638534292541901463592138599422402666239382360781669420832914396310004185843258196945998087331749776553906411101434356185944551529847807397423431602797289960682721187816248829532373015935036541058408785249098788143760906697914479127835030538191209984686168389123811312093914912480623168723922466131752252908766892271435644154013188351790524759778842030926661992755051611774500919658125586225080618880925265962830949736104861507847894783449877508183906046069268309091297492227379135984921766490666672586449204968937938799089832426699905730772804628505748379836097592167696230165401232718977347690717453324399642291998692961234553574293768447011133041710127939352846601887395824612398859226180002387792439387535671346936668253688080394050762825917484487588376392384454025523984553928787828657119039250680896231491751139794606316918311634232777327555819314338400889895618906244625074389737801313788575668591562377791033696847131036648405101584553692670207816980120660272606332980081335161646192202036356843808495362732126136372089632556242924771706673775142139050251677172164127240181177489879876176529973643112992747550504599516557642619836958358217389790249573567328421967731126787104565153404820462033566531807836328511224476027269637768294791614637374428009041941007791070313973755146049908287169192389356437801605758673194105813866113698000466839137996571910021058126469585861370885636377443753536493986287732609915051504407337268655771409291675233969914889426847312214508151108166363057729147855761035770047491677824671825373303948503632336837352490757624173159322821978897678526948024128504336653925679690266135352914961963804958935326938879834282179740342266508302104084783223699993500771285555028011618460804478089071645470833879457907916935203388038404833959175303829824520138096686836398379309297395662724514389489901643600756808694692972717459354027587162626016200293783895941918757250115117343826336027171730039643499947763863925461041938639330210406949703598711266241358235413179723516460120874919402302547269345236992461219846678611521943212648104179087737896077545867089957368538381920569176132139820997921551677576276361593478484653761118125447252368625707193885472025198203632002010956780515634846319913543793356480141517404872047243507500332110162290027679053638461864849446118016702168954199148541938138342768025392768094483982063883197206582935167623033066855305625023213693279666670010719638359681579129788490759248771704134328301151547236111594472253767348186945207256743719235868135371093971909538117887481413290875257744016857351530295869503208858272627415109023838525349580462831161840313949733910857580221836900939069247949664228448480392128689459210885506663403235151671033215843854187353636237968491764567521543971712066155418629205252588479438017463826060882884620672229942621470938137800542430287379566176475507544963740755124667540470936181417910622834663012338519374515853850403799135798627197738959485745232744672143448579521182945386604696912939871467989475208896843330044050621313282322050974279589338742170239766648395799313486563339000531647492188435225715689398329145701494078096665553248798300547553192755237053466836931982987328816082515158777258780244399586643199628691839136313896030721838640961699935138136037798365965193501849462658877480825366668859270839159934675084446904348054429772245855689262171375154037889171768068878201652388301146542956278833945707284727304705104016093958141555413510855900355710115457540572896161346107072545273449723296195871703233685837468010060120954574851727788898132648882461998306949448874011112652322403160933530951480240828157688286098237678643286367739850513029322476351236633516171454511617138260428913973321835098103604617666601778262303075089981081798778404263836376724617809145106918230967681028470743098900268206126143564350780922845456853254047519635394664998100713469287722271945104799693793552640629670342782710696028518868161390193461404421738154106125429411972171928927586566241565578976069645383219716250904751024924835397548559495471303542728979782206979876084543000868986247410593621217197083806642993197808183602924787826161980908205840933836469626101375501476142910248459608899304359609815626981525388108066836184844478682432363691148592274765213271963523441301495250854380160948750085079001558634480250185918062101296713404268916457207924567255180731715105859540864772230552730562176894277012797219074223027322636448812268255129894254240626864932170289957482502606293416168102878229849366668478269171851331367109092028256485450674961051159816117178463747880609730865568164339484837641030643204048439667785109404650110881929474334776524471274064566896991268170449113628913176883927736923682976932715055410617885363135737234656407119848395373378653668909425274598520335372301052424341845517932704303115830713315259313559667143879912495480882497831595728880086034843923642509937036915538856299441190586616168267290353863019791744311214194132926932242630496794372325016451158212887141202970154898288078390404650627298298451797176858244155975860850488131908206798114018039172335672563654849116724997999998749411501681926764084150763508498337192827512256998599540047241515295695440695028915053732692087641929809758616095382084283660497663763672230974103489244874169912828282512828880245813863230864189732762280500926926581515645073311171979871071305961540384914328586855324083204089416484281497542016865686458311876791683566943058856673567776612659750223644998616659755084303752546556740802788483234626337642885335059343464628689442423649004016977217513169983735782670019966198364958641906880742937619164449491241609126583352942981354409177720034293394617285854948181421295395856540551303358109073049601233529653591017458487006327542812626951375836797638658085956902984305898957184470648161506044332789650376819309936461585849917654130113847399034421380274463427205475444993298545169389378315304982518400413020130813763731185784076940020286063844874419631587009874790521473282769826653510311115893915333232515500821097896161452975392048590244749120484904796013799837587214769259284485673692260767361162148728717595871164358191184102586532779178628104990468827125863311104045440710160649141804644717413391095397283521583006078397982621121275473404183123845444721738605977374883061404012874060409759142084609225753898517407222506475617823435173523791203032780677529848189610268651867301472911099333648115611353709986047059176093355657992671920726056577537586327390428935211592580770086420821101393664498588490030905639337959683974496838437671331347772817563122944167272971670419128303116951897885362684241776582907730157039518269367302683438362211658731019630610915445016092683780660084983188148030428217462557897283790899574484456424501513565419501004524583947324213238531106565461176569294965897089474262385424856084083367734185059176139997144519286230794442030126441325693409833754849292140111502679892445027714761708235481248487472764852552174359377227514251804146091277958797804556102280187485637764332318072593052952086958894815867849070907870605787591979812183276157065921376664325045597151534409525865832725123845762942074939926157929336510215728242075475294232783665407232906146509699798459484647030126604406612099639006943219270391342475740552316758858599485838565126472430995279138892741000330128274760735066656589733850672124520979741784084966581605049241807005419472616468727895208278053575343190835604152525149836234469234735240325130592667947068625610044198698240787100437802120860853446418951974036645194171870670075057315863039778120893787862571841160890630448186138954276668397315317067959930186069463302488263429364515404826807036232887435414825517099159522796853180984074366556653744408877885185376158917112942624982470676470738215474869612528748525214208374129201960127704980771840377150588245294956953891217618118059476602186153299920860650080158737003991776919127146627712556463985298777042414378694876417650083315461104391462117174799916398194111661374298323382716537342950554209404176610223181997909282143211839063809744878481330371833738993853804622623282377908684892028058630659001503049743404365236952498980293263339240120075739262622337520133855276909655150098202442750757597542987896525068091443814279875163941437257895667884879211425641807334723152090128605186094243732111061981907723035922865749534841998555016909111744562889688520111966617198877916481849381619137370855663785984913104959932574995632948027499260378467351121655990816836162512748668993952124455030195467885400789147662916063871187874554512997224988078455911847458972512365435896731163123717907947364587771317458161854062011621874676106425675705172508974045873449457447881091212011082881006093937473777637551706473298536672289048414300666623610666238418512284451498482847600186562594402709424971466962151527233197742909847773585828853809423594262938830526259945122392005436399658724868978030789140044477219087429470087777261378194197726905979410681563325181113253490833988281912836200385730829131244124349922779848874329923291651932046502146407904777170617087051551699945839610679546546298932816198053507783869071317328589408936420314028624453024361112575196871970665464499521139046873958210430394760903992721315466696937042749108446497001187441942827745758842324980561561280933696588208319655575232291652741395709312406318615606299774803621250622699221227379127412557326909583843568834956879049530104081467871060875607120053980494692996166349645582733997649584777066723674239393362106931745310270246476595943165393242242374042389428192200338776692572350809241153606365438975100408425952883507333744023058343994900609923416113232164003987976317133429539104269716260384198076227715799833418183899383110767497594597371325819731699359908311432205009407104188525220198554003609501948284349006916273769025736387643612121775849768752528711703024672367857563878546341894362645725976062055527666282391302889377425321467533084517363465872403850591708528877710415819788607364162986124591689568926592038387985017620758050321881307058050243082181412504263355947637885944748339566347212050570506682615742154649738189183027477114066013773881730405133447500338589552977290177949418331934722719176664948573577173861017605049495765120875958421621448955237189945757714007720543554190499342043693186048356322270385595855857784682793055660639963868504473294257509068898575453421776170876166232404427970031319273888057453012280573839292070033878295031009997112564503036988776301226259956409799211754987452932318235549156377461318205422870641485984848097230630281183147684188279617686395894347175213107430956547421010375875653512960849624396593645799012645916736899030095797155438084446125553219686825198523667068441389265124346286078671165681036811979250233668644375098553578591942470373820218500908179286766827511701443443046055000716069682429003246601146500057483643117599516111086790013968563478082228408411043826498317565680195524822327821225816813535957721140263372494712883214706108075073870433326906818295702667381543895032441785126733739209479376473045093256564654320391183805556617786202700367705817747380263048225972586184960268779376869139063160346613369690185747732017229191065621660915834916454596363461995714649016136468043078300296764560012794807094239543315210717603909063692225758925643730467249889825542331773085278465048513980727935724738945366840755606964337627739412833461662742808304562863813075327004460060390582555645635249179464123887311767448827899731236277634827272615619650043665733102305774588639574572775797316063195499795565427047353948045046936460849916528126758825947758453751084043337508586722362008144061374414525918072012248146287853685889593809346670835663437602064281542890313067147841672347432745276422512882358499976100255132274478794213753657361024783927624189057750421265347714303939844365795741564217704975026849813521288692725775527690530234755532070595861553567001560513890541184297233577437970977968285879951114595499409603021760896160645209459891279096486276577657281068505177387785655515693071237859709438961676783981752291546130747402946867178600615637701190080802282083758688328131174554392309201162967042947169824896804959615111689020633716336695955143178951713461449512375617755790898869804354652795681488162318006525712271421455074379547637988144419961107967455380937209956657083429837379904083063382409170313008454492910503812276467844325809854255375597731261884735875707434826280169951352807278546791424848347164787419450200632049475719871865649504993365148317294763469683067952694913634735523455160611030565853443219064235131382434257447879807243035481392731087839431581897129610205016177066683714644590919859575558246902315387752615252671152307595846391069389871046721597457778838871934726773189758729830228200735596059289012203152166299086803109778472021442500821452891787715106744319327524810608359556353950403302919922475988481670755516453810137080861942046909887448739854262169096792596899736991734182760493223439731075675898007876846286289020923879838824846502885237247485455980225607440026434271326182577079749923798582365565996141675099104322999842965554773201155247207350139224709060493967977945955575881228073698450817615084188871960645338911059369898767675692628836757777024421093420977797170483962688682346027466816474423001269324830294288506832291269412169570516219873199435978849490482065828116454774152876842882634382847812168557802494659180636319048312464966535178968018301823013742517336116228077325565135262231175929679150004118746165666429057479918022632271045356921126251565236630766027948619292350275503670296811519821181489507394734828897355708222582249632795974080569929254082181555011093344573628872227726711214752780255892908906095653182472077894140183178557671886170467238010034458313265596287704666760728693417549884929950800416950883484098794892583058953793981268131833886924323198306211919848519847281322890325104756315271167470587029179557263435276453063802373397638253851873706214734785295813518839559464892421994611619702218501945748635164060622989263672084860047081536778305959408072803386536209051992564261488152664370097957727466018552456762264645905179538020962528329810465309101166339309078687669266289176707121299589178911791610004807749520530550123430129615711792221928914264412234323674214252462960791079182213272097563498811368443918286702576175187936082649299532803106177297731054999977643719329135566063674016895271680311173896720511352666645664558981043486874224839683326210610554348952125700875999978844970400260239553069094276828171760696899314321724121593936580205731971762076924866587977947285329982138554125538872265181389113054832750130071052797989382065386380128308007071089753163579498573441618796476941911708376193158523686915971522450059338226580264488791667567728011346466005964029253246215783417182800388551968182330778443300361572283868476530979911310268608952296230747958424228367586729498468571705410855941154441600261943610919172183541271361589598156328821052933510309107220774850440276571191566584764890308709417257241672304859560633893891884421356977219642788353927993089901984616907893472887523626218143331140908993646385369386603901447282221932898341312462303696181487852421415147536665697318298773272739890529092540126606785046659085194627164521206507424612126191204298666908366555101119396719501735752452307591882473213954671056957184917030358039750716618538941378275154600825569291638073241129007390858044489028864131466511613903948897419378431447003737337748115388262191734551841685960759257182408006666097784796191729125863779954821550473036358805990725578372658240274099148519940602254207642996227527459663544247467480068848768649671054203825484139414085535053973677535335416074505410975414403705127577114611666492744397047817039212938595698556034811278892390581678554790115431123383845491347472187278045450624689107869145311918727204028507950203333609041695915775829772065376492384958000655735390797482541176096193014966275436266132527114585630025768994387213926971752890562327350759707574292037794474817802523801171781336826606693071190799172267622796933019675160928111816569752302274994883759487789304707388522318420451671859840076340589601136582659116187234659459188844577626488750912400011717544752385730214709822993492325741273229533485412611598505303645482208155925860023162576867265997499623514155498399767972001071238016248692682598859045867974554980130861936561724875869975249293304598806705347443774040574478683528004720107921697804824736132832629855871567590180438948292015053714198477743378383272462080689070520884367544779811041698766467278856600598475235900875615868631563583904835863505645769386420966778051551545395119826659478140589333321947737750868780075599318726939284914577129623927281332185512621624614739324520190243418091585129993777379936549514121230750801209805862251867794143179321002990382669199313150996107823317697928314783412155666714058935898687349016980455964982414330397173279646249447431062947412885381773577666973792477855717990640630195603989642028159251985673446425610793789851590510224265406495944861317004783259559514815154673745969557216710605696621308046791020616596194900642018694073476872811618143075594407411348927781024555543196673230564611474443301849543398277326845423771098973446753535272476992329389422135786932430184846029285432267958109483466243536627355761386465704857838317735367239564685927134833991748820190468622551104301959047485092214242246470422552638055231517428078665580183501973316460859735985858007069335608416003985566535986885935471836782045138340654287552748914611231246881822747656971558580853772370989722238675347023837926188238442110443647132771429224407948219178199535989105195064111195617401904620334035452768188979965444234260473596442691094622308283178806639223684524565619249154621312201933397758196486463169252967327962887470485136360275715835123986580921855964892675285223917192240491211393135395638928291954482635028027339667202171749002324384392518487388534933530030977457438830803942015895775961657936870926668404150809637019783642790914491818059182342264801038882106042958851977956799705590654354844036184092397666912270396201691431422719866959313565736633311088761008763612495219131295283051632915943135168778239550042441021395801806814236584651406672348104185772889068077242130415155871371602164992432773043894707819063647577493809915400482782781547471254534018515780630667304753273872322646343589285794165709516864938994129256500793510351411539136974382459389949633369862395429696963545864037654166272397995915249082900967785200262429036559245477323704044456839240577463021449434350202698730404966566208279179482206932099718448390616445787653527153511058994865506918216976052238529420213443320856770398779555338201281025276904286666599869302222906368082195758873512408738800995706247644316926661273775820230467885034706464613591851515216053742133781285751909085781045560781088861429062601662363643153081898602663082480678527931867996947527078166987953701423153674868671295624240536805254951285424335479807948348629856096763584883736422547136015042814258549922909207757121828585555543844484390675800182113936497155466308853273129159553847114165415974320322217413175346977614941782596906565222808352287753224203832259959441009586031101191558807575602140731250148962188425204952601683562239743952547015434607773379706304382677007005963376225649606566565123027723908028174855430337886620078079980906906277446205794412725899019377053983914918357486259093637501612590093293401335052096998232729036723282547966863238236921447991590652710322297727199806067380977840948297184511869875109576536974837341206835140511743996828038128658622615833726278156060741849448905687755412841608345296798046387181699492391301379757562844350440969752742355767853766959389411439428492957961427032049939432361894349685946023571503578719228854375259443801140686236763516998046898895293448796690579715745787499867374924458020184902564484624502771094136055622665292366164968307607309842209738700080914845742092607297575017106406957048561294352617081537598126996884267581855634121567000046047994464760217675622153535601036320537401458618420864441423324607046433988063394380157974082116494442510964256813087050877866053276604852712270268268988597391104502460274157132234176771889317746017006911013314903866745206774845039045648180892594200395978045961310701305996859488630808336297943623447717010906233543107125059114754120881638181919706662869199810352104062353593813826514369483920186977469707872082740145069004673784945373790876955065484020981344079944001465544364039580011679674056810760315794781301016667813873039038478092639389401160726851006469360620845478423386041026582521426085264937536922418852791424656054739615250180387372102343949217049973592069079951424792690653729121301832083166223854356680899239540558042373607217763849607621824467941880431784247014943828499305311831902268145330681639288575698693305675719683573195699329992542897365147230126429325544377567988569220271015891639533546300842306079136879838675206130243353277533458832432158344632132727152405709949090546671439197667210440380718132349152250938932022158463154328822044012637282778093711869372285664621429771938279464256325556136543225978242342180529436945825612292083787687999482132109817149041956877862740852081077731228626405640144464835726055718882687207775483903607146741732547508204288927644819302188429954309662118451873324773711708615165688515865150993729887122895539571790423601943678863168153548159613918430368447471527280113663604083131793567685646899616417204928132780500373835554314909530684586348901771376329380999790469366397450821072586981141156903967662955484197801106687753480970305373380967007142953991998645624630893580963740075366984623061681108399591331571040096045663162131091830466249495463602538299351079742842562183911323859160976749236329961045319300591387195252511927241219804125702995764734735079629291261503320122393907591335758961097420158694571418778771563033610199292229738448119318687979410941551236739028234260643117784348181827303046490009651147034323404806747355379404698783547467501626718034451883946084183627469523718735859910919706861354632251370888591758754827731263016752877971758115839329950903267801846201916759252835094427750569845709112921026585909304262928286411324904870809898566109194903672457704060786086995184100482224462933222489397204712010625606926274408420359436993885572686032229482669158899781817222244563835965882708969325819216949045328021992357043400517918381996866041683157157086357716400618437044998852275428962415118802398631922013463856741857827538613642089056396436007766674849500517777485121407626976796215014306695653108548945953925934411260373695157576375758645633162786522350308353887643167585362787601744214108973881523560663750237148446290921083940047663375306202287744161354869467109427308051171559531478602510993392600612349665872607753092136718895248381909584461710540420048666652223187260047295695467335916768020100845143297631666372766041343807383046350647103862049742146036050318118949242410506264806465198189672366836351272222304029224836320909430130338179727556319035476352699990909888221650844717830172899038393758157548546303762520668963951323412123132940089597450096894508128193804337496418754591875700012968350811500504251042443055731271470946760609134126127206761100680721550864724387092532861482716683762276073614273798005750635130589077240536576994043017771340355377441454565075859750698126280141790699974929641661304243769098129011848196869162321528942655227365442239018058858967243044361920976703454435686985747829905035501570603061589147549393518980761972252585646869185966014128493222698108427778870977533410638259684531901601479245768343682031864099089777937867547325872274996050807317669811982449984783308106917889094971137331860587612427785491604159582220323009502960529616319295257242380047728174915035356371569024766505395500582744337987041792169151690962433874546835300887477153716926091729352928825543788405798380360457335312038181038226955039442819539036828477113393228494907813830827809340107407057306836696872779210077678751174467874659757014643716894757440232941476156522477517278815073553810251604955365835163135794025567794769532401121831832367943197786618186819020750362374232870962333299446856208447403760663794972260665243181211377012571592394615808039834122833243839599022301800821314764692314339622565932452880470623578081796359981001151847543093067374730053699322449224847192062887318540160156324928325820606121341761599233888268621283468773664550380985005669719781869188852298189889581967509552952900135189147136893804216882042704656401591558248374123484571078304907518550162869940492961758115116723914088127824353944376402573751878802779616284558996300272279357831744838533648126844459936442328243227786241048750804855764478551766542572638281653738879877450604258153574531178355364829022784820197006221694555923791160726424348683692061047173546025221893674389185570284563927046238042649698713580737538163630399810878377502944009658936663060886428649646642516837139769917308909939830182077920863511496768520719042017818010207753617363685341902987824875843133917691638377980311035990493160744007453111827996794965187359925328263490482580781307449123346335973849711118108831740503324973267193839083055053308502840487762740528374300000315542607372280174538600534669493881885733912880773488659917794675720700045225492507154555116059717791972760737583372371456893626429328528852776321323493292997678184764470242454297309967468840905418001176767858672848647562304222702218643131533634890467327224651653072903236119224061633086020389867078067452855612721269624521735114790012559375346929263080661806167070920560838636654925747181395779180897172694563304990182845878265956551184169618708003696832812612258410272134396085019730390267134784505804012606474558224142843846112965324518245487161582600257837238658677303449629107941708161337640845947658184869468113562568914965390118433189043437526627522283536901297942928256631718510272650478446007666180944966614248026639013714850606688525303476842824841851144612192089346881185922586354380078398989019423078968509460921948843190458768021713555383618720145368447396996787187596614826435781855981784510604088939561704874070072274417281617437798062289132476192998360401579780400322347374927003440828720545010024716384340001890432477334094946889843173254618011228984084253796130455881689516055115045765252215727828478581095622648078380315871752954214943710545814523163458928747030393661169505772848960111383813507693379609460741213308195403874895636483863870885100494487958895220317879404406203167103139436251531263819399461748253253742642424125588914268900833322499026435321254514866287997005137839341584322305741782341552182332459662894776665916630147437377637567036633628465176595023707339432382380876896319601656095546185961113738946126030734198282144800033401434750089544733522206329009682433209254537895058544294933269551750883801114422371023908795041157282217990560715332889841056659414257146125535142725027555126501414160585609436976666703193132289363828533201202561915914918245863127618427261140372277785417568086874771021555194982216976691559298241242133519948639236732264466852214606150864377545115110347488944503119271516926685108952325132943450546510516071455126677077577186995273269790746983411827115938083489014641730755012231115851114436816349118376063264462284887239551128210377737161693515512319063521159766621871192377257163814848975041065827733115123577909465225092926480081510601688861242619918180801495829258710076476812519890026080418165235257759179180134206558937531854913953966588134594008657523356157269542093758349576166374242308614348370160983517873612476307700354250053878254020766433706028065665215877142268668736418719439769646864689060233312166222670424370223203704385066581679212961533123116111562700758013324633061168746497319126026806588396249059599546873362032674120557369416905840687621183090618847145588114189227381075048878880463109649106629638388216838073297391226640469954808003983417918770842421797574362162192053829584177952602410029869708684171444341947170267988283729537136202007321974876978647723502135833995466718360399589022032485477567631501089880999014338780925465964615862049834238675683931609478909642641811563263676358039350026730087390996898442307782674856590135708428556767511074693800149326046575644123784889026801366309483881142316751425085014292763554780945081954854902109661782133462423391477535436611884646631643024998195162911344662174660865189996220883445889952842311632580594411581621338290287325799717327157522469419532219469141252803003466003090248056214866015021987623114636214925023919205929349946034038281379644070297608870153418576594445678589780395767115731373152937953249622286682134721692946161699897161485626428448523511250020805270571044009111513648659235976057514214780487716624673795411002291063793519779960955771282581403476974412666648212934408375106320955671816410482382229054425607288654474530344704403513674896222624883561078592623653997966316232387099082107568056335065308534536451895836298361056552640167790721508582776395175910027024673272177733285994495694237325748878752966377211239506044635262368998040304115040888856056305354075388579553868674527402781398367045103342911195647589753733681024317977260515521854016375908367668471190593702407202924449686666879874733601588968969373117063894876819065441532937045395010080410138353315731315903047437742026639311747186418479639793983106644743390765708323213114266091192503790855645483362004513366779092311746743633872028871904828116441469614416152595787219762335630202820402056299859195463218377454701794976521550897557391517470443200856761446115472967046056991670843060097748441005337276743017135702895527669883081711204142823568784523591645702013345967283424193639163096239260827780950423546352725931517062688548563447825927433713553490903179534834880341048234533870557170713890067575655435165522954687776075831477518421509858430146187923223368414298841133240716673053578928000242662906576071585713624409092359445305766267470043646181272015169412393529934858469143446244861183221185280035434602971612359623737684928122020122424935009951356955142916423272138832628219219574604539674756707303131185837416229121637713765985367985504747708692865586842258622255205624918757510732312107560341305505282024701932517131130267544273234834710655089207377773794704619496102977515093872314472135185715622444832492658535049805687592166837438013303243710588981162483018890433863415811395615562227724350857991333247624394123991573851265431879682937452244056021949044614317753055541881979965844425590813689498767521073319272889207410146119504672444919228130944927605131817017927850307491324655298696416312253996177615128855682301493032213752772249321672343644309308988222609483547073626284597762254318502205490900823121248500809946443426106979205466073063559529638457049979023126997384782538168619765359993012048552302845757477412269617557684053961315093371432490620573068621307844981415109612322063157286017864500357548333256375458320362486818556544667167659272958266113621719755116552551932710388509715488251460383785538593971004848952749735680845726292786368170981412942245375919442713331093096268504873159118940061370595746009638438824918418156367510796290463700829580556327912264809574083237062919629451822429244861033475616840268275458303326263640017520242956162999338515959266733419916634944288380990145668222889276191853137495859158499654904408906994725666204186908695232936338239409027353698485133808124430188001563010181717325708302617461133444327662217159169688113670070584413027537707968983238042532719485354793489892039150643419028961533491763273694774729373475097182759959170000616974592425876504445544872520095553151898889250770599530270856952461038804227554826588774285497481582862218231998652231620724343984502658998669729867217415390822822870059011922628461015939158161247041461140958877163874132706587032690235351322889546963800121662396414116464679009523910022472511707938198567432933990482138673411252625662030025342044060822967858373512203697070957123247097135643998187864074396608142227963086014959179387827774294279364596089240474081070367963238220399016269519191619669477223555300088851104417126056494673002303794159986109024265791183425055084349517693349390962441142282295422530322767714396620444733193782097288724266239167261551855264532947738532322795544374837771906311149640192529003360134518066247871983442231706912355715648803076960417167001442826272258101816842035529700560201151665725940242583173039071713426508777793696122607203902592014838325136555371884069441337155370935469276765432976148950911312719920292409815344814829729326057304808942437329719811372775100218089885125349899289216607639206413708856549836868147843907106638933823813338239461086164269237245900336189982429480123210800618342195225842226759504604760498269129013109617329192487267125974700141954219429601281853394303593816680218244585333454060165895627760622121352115450572193603789258743138006736638318448601132732374760039970746390001013601297172743729932454985254657223503078599689605927006426455457315554000980384856438266927402712088869193721105261253240608108926028807631806186210316673018677564243304243685668746024123192130649851779513140113926140483418123434564961523705363283668482253540259142472490252982143858846729842531524064561799362951360789267030925610989282067303815857440738432886005827185716138843207976080343097715366809270944867969154565717594474676738825647549349963470757671656147766345082769270887008029088819401987646156385822579355057138447209237902085852763056389332734652508858778605777665910715012840021095223951555774063421847538569811356438669032547721574253615897883126609529402661108267791239324289194724933223264078259150193905896436052663321330123372572393072184670144639666131650588058557550141418270604383527321321986050177905517916848096022205542564352644888998908864295868006377702317182084520418130122888554158259746925894435780352817033656157327641753268807940774389363679593224083837984155982221457130886631826637374980322935163995703646458073675337743468585829689376255078789917241652080022955051380661330171913724500684117884215037292809606942621658044843294607613532540734720358555801697283016438292123065304415311434073881717855152290260035033442958503645614188306092330739683969887111706338248664208586225719363823273524127221286524151060632080947832272667530050045630770615716648921948760151358491127782618739301761895568674858093799216006649521174186061392991935871507507143755356207663165999112158306883214767486148183883203833546251299975312013414297926255992509864782345455696470174835104377850860670778057962993578282676600311012292450229573313113691675611743296216079860871785801250772547570470632251135096322426065587470113344307778313206911404138959429151549651395563605684380403488193436861804854131079531556883573485216646772495429836555887685146329705269541400710555450621395598482956008532165723586478666054628493209574659742557042054478721605686286371698352886262355685285642723572488348049476010991626854007398421962363613084263372882406526314367058378698433582686663726805007064437223930625513136084134247041641825810847599381447158795383729229719064910465095550094825990618579224982269118039899734336526138958516592226768354649531875647833727374238233500838885576656228957732353183664964426940354721588217188788300541803271838179414407323210399526399666285608112912939000862591100635475373669174842667734589577243344020642600918142469926625791475522390365467309969199923669660662150688696163458635762424437001846354601795900770950258405369682594751114246644654346416255831111112150939385366638745863252116292858812976327993649728835310080540185516018097802925238451183698851660134271094141418447173170825733030593606574993023146740694831309246780573954814583123581107996537807670885238139372694146989509633401433228450045474949273136943599947886414001544457516775969433917978116472796805970264101892471387713026564860621178730274910135582013859488018172921805693154562966752126467829828443990903995307493621734759899514322123062148358570220044336189831778289618625252323188423240137445907712632121107895447706651138274857956039072450986624532995735006676010675840414807313846765246347910706325002809331477351344401574510691285220122591976711293455604413822004704750989895034327855565492587570260054046239403882222003729355727267459380127172453084330254392570766062641701664732426589981286600766703595351475103507774610109125189470139302752466855778577095720139942643969171351824614018208949077085200018328804554594396631592401351006739486741509174518135805181602382662720641184618227771691009554171283310307573679163249150885255397666403073097630827429257003117127508930728589316127615126850791841323964967022287764266481454126069776474528379913209964154878535256934617997200810623105288600570828882497918687569745236103565189551069292855840795839026247277780856560575794110960327324246615980471575081168634004949498664572152352100456373844498524490562469870537827067185426345556280895372953340821156570231683470824769307209140914828873205091687784891357027531024534527869392320231484834439887985077294711308947546286556575143352050275302902000628783057210397740984484533511710928253186786956226703657656490604583680221894671709840099576554464963151325672169810346507082257793961674771359328739701805259851252164976353154111155847639281367491537560436009328309984377391962192799929050826957490400310288155567955641060898135018290455308534150204318058421751214179452029827062367848716891097736097084768237670015724636255978656611855605296680644347874368625941487824021717415106938672869931775487529244511223910192209986629142831936861658174692418602394256319296255481870458380050691722785250535482231438814195652625281392774138318398615829864375258885576596406553869326628616055315027683181448940638118300232015564129644126722869105979366772039862370737639987705149160741208729901399540007965442923433107997782541738168007435544835078703584859649738024157093883819171439545951072281157620344262325689298554311378981224995696818971919054262935957897640216841078190581289149303377500554876754840722217359359652452642588913536620658470005800090269177372692327605157848540739724397819463919423592159774604381582817135195148065304849440346376577239696041940250295603365257909694617194393021603879893701830429482828787115097769913876009523436750476391966634804422344732661864098668115462736912737866929010145902008642743709083137788175641336892168382654253055181419667673879094649029394226920912532047857552128275510170348867180178168096851426442464845928695422536791046623842701739069943071752544708918287230522128109762084690196371057607105120240327254872895402431515876058576398862851436244114141818537177603674007517116704334151608941474103095694996617163205551290570738165438903284221384335741436510200070634483638428738279718530140160672760158322071821696165811725610737324991092180428991712346035838001852730681835978057926197130369700462639408178449517832500473611369608179367999658598860608504558154194179503009623011848111167640777518697190313500114359718026859658263917449446824845799252169975364357994892892671245239723480268326156181071748012831515754045440166350633209988710228108377527489447629836085467038084902788392955493824733560427151704110517347406826230623526239788784544910320730346136463541612495434800815163123779340798752451568561497712393759585299147423572069747399275702069451859714145806936580071121828709385054011869214215514300799293831820330606594787960043834061838774259089136735317814550774682844830861966913832843433094126271841217145011473520216883647454822100673561614001501331439849013549979133083014129434576791688186240482630552608520508518023825474489911890976884018229801205776655208172672611305299511269320757381817692880044028072163164135260124029881184674704850329229542016377214481176786923146047511838845184431003614969486168119878878019771502033592613564110997778954018669529949838126007074388028835177395516403285321053032571559671296505159975818949364541060058981055500155806814860254829794383690289599389057894329300840515190449297062450407624407530749057126165165292205169175714478418774923535580215871317301555726915745037045492788347313660076871323022025853227450461405964481284723735314425104643501513103766039684161299111984522647912612616679311432829796367111646160590580504003282600030975701298020571528201649333705780530017773193446138589031385484740185945861373697814248501710180890467150736149667278858292835573463680151814558924733664153548346547363487013538905020225149709697633101477352612888616873373581419006673512693803271892899660619158414638651568970488938175871404469374342644615583013709856729941957109902617282230259206045867955104102450809741494798593969235698174488417874644863708332100146720729304241761242693965848567951915551242564019967752773990360355332787897069083260399760759620558358362540363486578750280229157628354141961487162966379179825577141169928234667341901802139079119567863169643170453215635371832181798720791203627488694247855127960352103428147491052640899652163829284172678860093095997479981087308217524745539097523778819196603616650753980038305659691069491187088561496492788940031253368968616568278090836572406237552931496608157746197214828331648272586013274705185830221413342284262051976334737569134792387790607143061339836075898447257343350256530277797824006267376022851076114720233109910568586048546209727497213783235770150089512501995389168023074203167054371292852440646888718087357878463530253529444385015769110929420434823720252817443737857088990875541064043590644122110695332839308297961565707672401631556159121342150241042419718863435045059765197384799226272746918419547785695812082118788940264287564447761171590348804902855296953798948755352526882541341289410491326620628528375991381794057066940842870072417822173373825330771129619847477017708042864802309678691691983300503900995713989939602461589308585502452861348490848278199471427515482711082172242008927465209125504557277785659866841869599404783985773742524850486266694074510446625930594310564535209337727490622047042938528220780743134372329837520913206176404222609302002885479501882467702429238464454575616422743979037829402181806016232534877249713915316197690449999117046776621543468688185009216188877269688528367263309597075737809111691238361957824186397673332105608854515337171316135353849670426456615377356167664990770176691727377207353295754992512202738012471384253870044804636052219723643182923808700835362561266009897373311282883434209345749490513430041005363208978727507304919692918462132594567549232282191551090266023136020479676065918184504411821469225709632417418242048183953256778656015199678313105230268452232861721191212150789197556887603542078075021165357923470423693856243338496696000256357791966298532201264558250782199368184304339151370458612297791936614187911862601766018557922009914173235230278546289442195841185486653802457372614893477735293057350758865466511771045612033016028050901602389228417387984865332610666883095553253848330997986181068681394260619612652675724901275708201408827431304343907044243008145161626542014264341916299572215694768828487508697418700122171066557481264027616213513758964423354251234647367398562587874846939435105394975739084045930948985407280853741476883664834901686565707343802168549453865482824973851240721798388228966760928755777073202699267200113255943927809277893019330072653972483293484157921364283262040471808069037801823260072182889386067970457322824524509590096765558542911864562537914819870946823322545056967835373863429684690535359412314230320437506840338146794952163438904509456344961193429775703101727796794580703784892415784719378823744911150889886171713937965713754186172657991021644102365209855133554289795664448161001357957927540546953853824523241539845167658588591265812279289707999559811913115913491451236286861964768757828583100537092176257210802256189957151142517670491862772132726448388317283007828485867654523257451583398045509857692522767826347398671908097051098717186060554837907110623442625202220207475232534047258774235778722912634263546317525408277520522799594543807694451164571169573619963213302454427726315462699108608112572796108379640491274061952662398240439034584492223436150704643939018119429920914503707404533223207487179187611534752284911703009117425139515172017384642092354977511128847627322252636740381167745853112100821951379538929241386300214285511486029292911994605221435465984348962781061744082522005630557115290767643137090383814449468211034373831279813974290433765734489585166217556994883313903395263938967444198768097532797193763119816549149966051333032599054003364073699520641218903401742965480212402637279887099433025215188448703125746768647303468694031814786569295756997030306498933693561411577615084811986241993246159520161267314393937219326851308801035404202200332464051062776304416467791201815726746092862580082914864735796704454109444859294041971735363220604836877345634617456816324991256513180927583616184960525249572967402628675861526869916544403346844870509664267691480505926797570785520199344079434780001677133579223867218509067918217527126726715677738771894607758117993614187957487670279334379378490175558935030144102991290520272352146990941261202334334636194543656800121356301357019776529527621987874728368208151122812772492923189287071147895898138839287718126295016242879781462595933935691369288797365851315093644096576578629741024207283004151566522078329744599016423573736097380619050333240711497235265651135658097458030034667021278893492331383679113572516929758118238721684755350486815713577683481370706780278154813304808185460897359612126589852870823661975726402795738343976578663200043748178736217284465371867501395143732629711875049434382379338989937084913520472290111797529688385040642750482130371535975049846336033983722589858986893479217584790281973501499644106350255538038888641025221976178326090327737018800382387249163894639539945246764499666215374377653743457077731580717694903244132444146799506866677485795432085562152325591809665538436459477403780337425923996817103112653683836241285843544380513156449340697990545224898778325571133155961024635049947138903374682991106820396668621198077152338232525732790257165912088958758292063826167454036778487995285142325767086318839540371572559222960977523828170773402090057186142300497877495965674462331198998875407711651059202125023885064835202951682458599594884100300951373081838089680275822352980296920139514738990890510242465841359741589041509859051319762478256075652233652415174182640935346102121761465289310898313847465789905989830087370444775193216586240686907553390233432888345416025563762093228322219075578140776503183276457391977875984980224710783790005918608639697812974947234418321864716946922150474925785672786749757722539842878388403387748499748607031366922782397782361188837610934824581132356318252864743635610638638696887541317970190340674972406497304601772454386797904340829042981408718072895379780910101353114685976800492467604042457140219900218036355462246483440635327977695679230752920746910930221950372181508387420582992129833940425782115525811326951998224028598201636637009968581883400878943264458868499360003166210218176796982423594163035301561019418247225260105061733157585749523006549485460751259500299579725451594806848919937850380129751178375564915801674996874171763653259605846591207302101708769272947383057727449599167227062735076203848579923218689420289458366328791483020794049827698320999152558823204197607383213761193465569316976575538893117970537806435246756121294003243980563253137451667394859717287631035543564294508103570533628045105149077143059372224467368460360882716565354363750756734343146960438368229517142284091201197988682231052966374315235482299115114842156930374998619504364680134525870352114191461931806895911139188384026699898491887879235343874847784365333331009473299295660186374463295472808914454100982946892428292920962082937880956712506934456490344683132258006870542385110116024892087494461283667125816717928995683939956379040836353477954561106073470249403793525202553997223266862998162428385272198025231820951925732335163116701495843751673465631904127621504653099092434116722506948329817143916748093286786500062352589654935795194332001406365368970833305514862197224344459155245881466743703703191030202861745256544108587658036961442079182655904572770516094872742060718234987507162573689229117581273174364331113268092692210300428270972465912536990421821004014759198026960926657972625307988338587509939962493132693119402064733928297621296829326122733532450777643489678435091884672529101489702839995897903863493446243546147479329012892943668474767817128415592034055324101109033214388323192800508074978651833982118711284824544689469486500454830067192597277791488400930686027911857198709141276907355674346782285206869608201042547538802807819789030682666346508265572013975074512784297781143764145229979616322417856513554086288115790674619055177866769187649408425911831858223919015545359371189499439438559167481354608779898339322998484637680049954920729410242608373289221001803765051021049433489180932021163509078597854895137799891971696028846906092643339558715444565032540176537993611247372979902781655982959477338690732346414998440014660312006075209919494828048459562784323986745727996984087137769044911645334614909604863487879671750285537288623859123934213750494827700291185316240376353425557562950221403129752706939498635472795563134299811465929944310754654920849612256465813267307584797583172339352042602020805739853284791859826585999650020906064619033178973527106228170605953937787922879630027848806848484904389914257757876870311690794049930513954151308014522026680005347785567968457079802622186949367612887183678905118026173859890108357078864809009179186258924779529408821340367542473769751492305908000805165324112674759501976317126918425172102854763170375598768112152490621632940798103868601635509118134194651602165864346916924099045094805658966254932928116296038984757282302118600201577686791892460525209193134872230844751707119873781345532171972175123748300822777831847970512136021690573501487497739555599921294974108831343732230133338528635777750936424976611896157158539686941015192522308178604432489319079199040007313148885664992027131953473027638914733685009280846575686995810423849660802246063373291471517702592120567857084106045984280959678262123362138491531200840299463635848536409324983408715988148922955361890474993960013469221010265354535376430365644289418283075433953663180171873821826244638876012476259800523535036966539806256760669871001400771892780989831209453406121951539244028990714551845278216259086390686889315915029130547850954916068793648681664812764676204301384571045466691418327803161324468231671095227310176528997743667478212792114797911891119781382486877486008352499600916043677000831481179723013900330536924622916537583734791535070727552893467582780822344998561128419730936960504895386859790581104566654449919983089307798779817374406537644298917425362439306752093933165737452017345392179272786683630802878891810590110751711981461974520527064026190763578959917892418420443581051625889129553905347305127757103888257700664713917721832319521965539924357646423934219367400011342923756472131570357750474882099867866475158860534142136697446012791530781145971763202024836891379941768818462889851283903422321775712313804531094384024025015333533273957364566114376367484049501689761276240058139435155983555415216546961714898601740676493675536715348543367192651026877916042389071018852431917159532039882632446896181986060069988227071793794134144370207167143730801823688279828664427805169561487711681529978468683170154413646475161394178046118866244678763558865118630932203165888481839885721940938278146859829965869742726056778506987566311306467116355946542394003542048321155366720768683602956105673267099521754349990232978169379007213970670527979719760375599143962915429174307939099097917646312606720406245401685292715859483892592017497936446041746994130910943336848438871875358657296193671279280790474954415044671543668657672444646171722119071357232281623109002393193112359718304910189195635096345336263248552875357950532420226619450072265784881053866754184192274257565503137049134838135848558828589657411576409396774823910036235797368943880677593494488779390574827373799978373584010123348278295027102339261354757537480336193705296633560222441723409335583348369696013544698370093897418940916347456070128647606131553058216576328896126837838408185256815368203430024795720278223137584850644540284824977755409295564533231716876975861427865459791373165415310088581487265253572297699552397925728009414598306818462678118332052587861956173658230872077479540975049158226991772308799239850505468886850263781265649108552447950100163812669660874895469081174856255793662637889646774214246663205993729390155955598105095590477748272207961052535895486726680364199000099229133946098907282166974838749103595556357695933696428162691147498833631588096714628188623063900042577687888873941178808346213878810919682112299376096868896965150741331245075532309828129767961227592999994184008906165364293735119132454451363787706381582812305833140060791236814773777780301785340482153007707297823551708664568689099864600711017307922391828536445666862788280966927853614607014474066787325275070157678684890873076294221418307458071256432717951419784150265607135542488070121085262267423406566094385753188204234026560208883675840923449040269253923634400358781184728819056241001955539634354669936790400683760112123342027159473070522280947355185331133698352968737373743169817719951645735297117570998118481269480182373588610866453408829738146812788973643645483942119871811559426507503436951299888839841256587091889575497060646686543168442005786497682449571645016099323856919731864292331738791808705304537551688870392703345620306471955486637063783196245657244496835126565062029229742537227665335387556626260774159972423089807541974864204600851207198918234889424115877162433022190323872746399581456501495029171760535125446184791421143021228338725248255862184746420843680593546274904742536042638781752344824784196552533033336846986301749849521608469878478477293984491290510041776190755658878751758649735410513960185361668454560021340666461884343338691589612918011806996162355863408544154895556919775469459795401946501981553997981618187601002338875640494767704280814397101659348245780874847036820343235250510889324346040239361325397897773607253933486069854925925115423544656995782152651090201656369625965253394204135017924955174383655760299097449913416636464693446723120333984441279119924979157810537428420569620751583499479423164683910954997557635598316238558941340509329573074773185458684711010841002261846559608347315252136753053173335427398203737427981696244466867407223917524915099233771838960493600167294227428742859619716256877338754614436643545168544842524381052551526910661368924893106238560778842210875185393526903913485242109503580459917121259262424509005763321074748774949855787948578991992708506687583308569391769190968762783787500713672561011259980416886068767386247402842102581432960411937218267379005670584044148137746562732596078910694005902617361573731171675266260385553513257291784529376456151246016180247650137227582073647972431627148977415064224282415653939956870191288304977672143809810453818797434734883733255053142617049609509542644184491551194561084176457117275893269470406821659246981541105894120062359516737746876772095577453941864982850246623523074260699142667610315344501643194937705405991996824906350119931997065093435509249521369924654067329547854540182475392788777050447113592413199258812853409996301787281305070833537866009534993557835007981913052796693828854376462426486951967735509462246312001944800332796873603287097483070719677838598733807431367551109936476576076293286796758169208529690462845728248006734050132704002824694663026568438518669986256928434629446395805169005375166429563192761302512590990039867867077856312873447266105150593498929780449034603575749662895921306740430080220633520188750901496712785710648436529907992489420771817058295243185798702481167490238972978076599679532405986854245220304331063482471359690941248269618541170326135377803716804010522942933789380160289992958991689778672359098478753046879876561238507508013968483106946152457463185585147354877452631371045873793667007163824909276683175624036334014023067181009474672753258242693269906635200619308724205301317640474692236771355490479825775583146784419645501942627331288773411310239830263415567972366024987836693416652732846510019544832590657266364908395817571357744637129049223027921065296318600584783047785291763349849525526921954879475913028606139529635585932883567422487229384279213873387997324412106908175136489917246132422734906957430122542662917149068586854898294841901850459849942390157197623432972246669566198219565600473527607402331156303675110122637273754771060058932812672586897847227637815572606624027563890846552352375949502425956888038543039791296325642556895561004039133521405753595546848803444427977610932925306990569731110850337085853034861188674003871945306854964268493281847145220891922520499200984927868653526492842094784481884788120244579187628457557628205124550210525167702733979199162103505691835432018037688115903332712822610878213192977661319398924979304300343096036209745995025160911267379251720421941147013003405926607472620858031712661653681499086843162658049419449170281751959678294850025967782714347955097886189030078551054575481102959049805880262776189442175023309655844016256792702563726009821022155963514141801294770762524838883256906315040394416401369856133785411080536260668088635493610502739748127434335779913342718730317078465703918640511758300789911968191921581747496547539296838870394269192288113139698252217657977622156407270146422621477839955426920383536518787252874228994717831163490202402884107486604617899346035655684369009917530081251592085759526133550983340807239696416632737349560464726949828087279351351063380988219884889667827733225837220774079282901298589025102821326155797545887235783498438450791960564363721653034834594690413295678503674113956745889659825091810704428913752047707000571145682898528868924883722025812814363971980270545147854137490008385669594555363347468147142338248876188447082333464569323461243257905835349773028861802105368416280662748127883731778753399489957330010714079621522324114645697673022777599447162468326281107288734830991903459651793821362513039047166030687809314276601666535366304654225786890131162468100614526631956469809269863713739706531404704198078356898093870648648064248124397606928045402282909654821437504443522113861283094505412393922955656870355100866863712211453799131139130426475752134750389624617237790107436281737208132414706654402616271452352854946678248041534195395440777504500835721230796174619270672149384118112119703991526257703552422799943271745372167635752873119455725462419650257772922952919266101247488770874169160962555826936706686277354919067652480126536824211220509135648375318709100492735175719906624450750437439358457756442603672855851173013082000848164539028930469638322955980955214294799290117951939486058250322986579831885259055358320644265124057428678510150972381621003061919119735682258936677852090097207816992649859025804561456482150667376000252025175266462478481989951509887236316766259389524181016763543284268268261398927623044669405041958394547457180230752943616991375114870692121494403114070486918740590145462516452735233361626627053329548178425239262623803806050363018029133910652344183514897768438140736749015641995899560271500712898525913001886462142176303863626082966102280881385503912338007994860049120221076827018256707965805991591075956377858090190266588706026980210692497978899428816365377028839290854349951143066069917652571835402929484179975851165401217121472943636923830687810977859290508525570832990896017297391114489899407376357745384495987202956166538416918680285968124820079574129077259449545220192722139436567264742117842447959720613325525721781720014577307209612426215965354210865987627250579085645516959836111864477028579492181396761205308440660596994141356124577916935503061667050391312159631943508344045006039484840480276633843567488196654373065804118949636570931308966166135991025575049023167360931139885148212927043694386251071878038724935645754016385264965279499892959948671847459235473283472269057063486437096476854046836972740483843742731287192282842531031132774991518752101102674999058766081921701092535248601674923223232089679177260632491726033954249314818169782816499920768817501169045200797182252829581469134361434492676836588121116592326675957560170212561574492356195500865268728666029510195329058513813131468133626358706195142657515503113760548154926860570921227791918354318340762391163761553057128259828709390176725203656418244171821205934075970551545697357163035912524476830134795343745745063302225132892035806399901811306786245767042600232449685222306957993293024156431351464787816453223059259192543552856906854503833736090929478332187430625527431974671394052168581083094746851621017299604679186232698688067420209435897158058460443114350513617272235988462003371140965569181493167679306195886082581871992263416312624176924691092321806288889931076468193764727259441830342636965943787137074200117717819406542446017300382588852530447339858693161427519272324913368522341395735444866080487510560958054717980051275714339721147442020821804827154061324972572202086657257638540065559351747348837928744795862221599687801773261569275614977298564736729200828989745639778673003449884524045168872780252317609805280360103868202713755507212089617097903555313280256241351315237315342637947606364333063800324054056706964347634780642567101804099131502305900833615335068516917643983061210268910720868712471057250253265245377674967154095850471767240686418067886907601065063102135327214175685927859133724274914806160548977539223100289466226296185858448832568571274059808096704192852349500812801253918039609538735193714606301512393101047461514575539512614310452038414333704936790780668414085709925846484775490817174232983837332639145900817011688921523868881073343403772485119898745213933162335831949974849649587367535921487981497137861959645556234064206452551389725597645058392112603974379362038474392777419120227053144537241844148096904084653625426767723058531010946815417398664504810824199917117956885351650393682760799962345951046151949494441568226097068697071423286246167507436845458493404135788707710014266317582286884785141422131919489424883358938135728041191554205381202612068328449625603361605210005934896498488339435782511631749496219870558544271480737001211212207322477687708211573742253912279163352277420997702242557763780315210721251100546820908968003723370395868364318606920916365838294533462007347215252824996672393535049633204238919886670271358905346460768831627790989037814079258936067862731619319629220861977688788665785940118765200211077615579529826883788477635678051871693260324633791661527629968971758896831123656333091304702537435500342011003090325501099074110220009667362643183896847442845321536428549520080524199076607636951399684410624096031671684414644619929131168392747653697715136666530521023954302757695729766740261746414043281759408540530795251736517116624831253076832190643408961638590916507796817231605756853261775043549675921980206479804675926551013252571769104654201260826099501318160397560977663718496016189631223270295343831688133392295950526551802409698074182308420974736881798577248157781461770502254809580158579849810740486590097026808139565805372480180899048016587450300395780597254579417818592814093892093908081910875706707213083367901697501926986831511400181998636471798325553934288654584246695857797037365444167744102411291360426181105904873397534568594356567083322265110381409427466793488767477763878846684596752514432155841612003115286350368565896637616123517524352169012744672605504439019103384753210828449534444696815899851834142971959530724644549441046254104003051287683626512715283522277429217339706267751513489973861942910772563361280050420894075092516869313427080426430467509899539712832117197472389586619670403899790644022599207484581905823895172451651488293587923235893231560260722130627500806797488209516685633407122014140667761721079403272792716314504230462310334954177996354843282449491165986998135299264038614663733134259353992934853552473327253371852423570730183814999448964056906389946710581943018314495200993443719772829987083585505753450769890340147796517759520287375554828857698684782546599828449814180437547168407803040103193825964349772433139184244614751678701481204011317865924256164420938829012395298176379838858764840371771584493664277548478273638057579500587355074945553354302331661196349013322877365396184487275333562318221852724006628048452746332191388297770398287369699557612776334711625173281705415335002985764319104050449856108680692324065857605961982885402275416504170773425721325905038397620388448128661877467810358535112227882038395973362069855692509282700602613976744820540564881782980350586210552074704218847769064342229416095443815109700266682338997950860915889875185023433121213799934160953022836325954226687646710858328192677478825015155490912724768224009347324324793549665082334040178134095479752374715086568889791806917322626235028914338856528510486296496925866223602180916485023929864338486275535885699899823216700304065077298954926591007680256207792007027370222047373217353689306365489793980085362532346171263916753601360878489457573596695474263835567840696590202206978947816135352803100505503018280733372568650732983237026837992647253055235481105163867002261961447116047773140996803239664776947596526496069161871895829004836568504694297758962941290391586332829958278167742002675350650767672811376670243824270529127557202617194256889641356131322044248703507048890118763715453937688292556148405056944706312715325439112266637300916285019974493236673089361233769177438696847665284400238372787581354472523818783865072591337488930217092564930510651709834635086971148136575552154735312796214138622740176469888732343292108226855950711153182735983276394198152006163734255613776506402446623846102396500425421729588088975356819898394917964922545304462148503505869177240647824133882872235973723054328089431426396031204110635859749942694810708230381517023964432379629639996771099733625145579715012023655373343075460708452161800559056745509364463892573252114146757564813202184382942338517561373310915855932126498831414091437471545912263073639146783290093003244505855731324869844261563783617689003311980016659729460371382067275532098379507037657247458808048459578281411671724801870919680786699994375164717491230425633988144176766826935588094564263085148994172940085032438810557073527360818374217603781531437237598072806155508921575205915841270421037022425480645970993511618362151815900746894540639746180338686522399688805660521468773410714471583532657691462578526117663042623954579010176003211487673999728767543249197445109554135901959380928262104922728945132791298574314950151687766311893468595260031108787483662416418805623013314458138976595671197632665864815528913247453578762433842528708866693493519335168225692876220350035691855533378507401037456977137947560271082884462633866882458281131876366030825578461048346007112608582842829276771109788616103978777287792044120143468659250787200471484969539108529739988287257978007462838040611873892234567239210809559363826196145870804362860128704529456674691974154094040451296386398715623139505696458449450344156223360351073307370440104007244916655812639368955366952630134409344232516056573334955616651862340344487724588503797260380552657571250424200115954964548670255701415170529455772936624513733211953676444218606015467112527682396458883767969305476808094990159755265171434700695638955091365902665131544880195909320162956149269322022181408956629767005932317611143184054062230943915992276624362601152622486959999872340330964923873633030327913381640014903403885306913848347045868783752188163700932932196257308094051444545463352143271746034409481495322505851537281967607005345117699018283056837092576732624829122471299378209954689458969155297062067917655789234633012992438543816147719860192652582059112420985254683724704913941505105317876549906652435769085488412348294257983088825144952595399968139219064326298115355046466967201937758394369190339614523773011925643691733573438234647145810184671571889733686305900832231294214441157461652602989072927095449205516594367579690843967797415617311511328385276792382473878265640299151072923015568166120002756784075961151326534734593231808143267878748961807472654320695631771818158201547374843789740644664228604695117622104469663449633287500359754711067669678215459647704894653575480677256877034771720590865502684292726893815608903688176686040635161515773720048113841643453273284665875654285152358524009050666077599109182166454892552972487613009325232060185828583074388941246456113647834713775779336528225988120566484278400733892360279998580519647306593604753598974953915519448080692930355160284920816647855076479740332451819727816812080603344972251380698841749174505781526354058297339666304417653728213602497818093478042919083451863425620565867104360746646433906586959744056319684135705782706847463280176042658702305216119957123160403434884542739903626699549573938708408671486392646039543700189563321811987124172443018552772646308300892522675402939594525178813733403922224317614216820234322879000636056160898795459414393950359086444662310432294752468478767289346681303357646261950056442125826553194708915003387514860704256965715306242849184251160740335354831230102729304230530437174987679117321344034598605249863841223200463134274704740590735147406098543045595409251044616337958956912809309582366233787138062932482217915210609992684131024332610527912065637955879038204420110179115780200779346509920867821375815623159275629727164135784513594318790448566344829016688103391931016269254714610502614262688779085008546391082338753442986003052041742080493415073261620134605585252892829167280430441978317688050411663246967411140974624974609952931332780101395030206106961545956586638769409236793194439529961452232238412655443508922595284844734947239821345981204184287178705072414315067562769753776115007753855537963761014771941743267225045156017608683265115371282824962614581796276181871990651629238266124524802835052872460234936487487191421475286892964684033454728338306949834285196418229883484679398318172844887928947460838051548520478573932830507616618881692832743613521875538505744754931232827744713661492828848187730297000775293223976802696881144254014866493285346470976901327894867096923395955804484196678792159411178415971698043549249127377434131724895406015498425003832940942910302773558586644357267094553015821195992933600243549917548144589246546424705157793694630415443800686451846669484356171393352204384693398644439645219015914992323762412499761884578172065148867661027777352837139380633698679338165182215462444793716169952845370566135455875545706603763970580203510110177951193739492344150858349805734456223091917527803913553721210086134853815798806815426819231196871230791888379888562329403678758150224110667584787607171822780925030390660808663273109368911423515443291324843029140010856270534202386870759658219198510524759484196277303221822133110468820516582483042156871117424927457047856011608660517981949157169608091307677178919133415952861005695592513722482463408441731997451483251419463379380654023962850835859170790392275524868155238756168209166727892328025518593268042954496834160996919019916410774514945810724490778308321514711419105059710523448795142195502105466347524265325501681822576207404998829903042570462367276170149217449957943866408442698845876515381119976606746521879516113022514990036651666265633918140687342099311386224783082910880634747768090014050518101684787032917557080332180400956075894232181911170936260233142236456292962041914591067437474829752938827972579061414518445270826312832323718006483478759652407282152833752669178883712504761381575906226122563467487151924681803027974168926208095857853236871828441489330869080862609808602797025597988408376641642102281177711282576976818095329120087823529786451698570245835359034934756185224884371029523368533192001433295819096708263274549763274410215616645267371111067564776247903494683978937099371587406295849557126818899028924911047864608495047757391160798909346839132115067246592429937630918107466757036222516227198348566234931722031027939527732373674537406208200319279266322463570320473960872313489129657574650772361775117601476857065406638339071689396052571208092449633782906360078330311095329778027101886203748232574558785414521013031071875174956343269482328883732111885646865994494163869991397965880473233365700964386434575961673531018850239816715468655430436009250567973052241897224325018390443763716932624691938238596923538012938907275814191307987755916245667492121937517650518154378343432071302581922490720656663179033205881926401360755801011716089800003973776448229851181703477907647753053219155511316253659404167933312632071250994419561958470380793947300459690865556320283847938732238763807748668717565570063907798821392156091837079198164144078619016330997798989184934847727093538685211785098297649488665810065960857543668716299950352609556800242963580923144199770677395218470262763589894040189752272022315101312359117029009257567891284215158801560116391430089940960991427813888110585398536901784421406262251058042345778484293851585267306047470097136864272176576047507177210291287940733542244698868118760526185909241673972570891350052840545601468366023979260875479831051847807070251801922526956393472230296827761365130066146187507976532246255195708914094031531166803474421272494947206416578954802590007472835458216536160360786660417043844915065133889573127114208541260448755224084657064090170644326002593844501437726642156655254790411055274734703474376136034802010453599298283923075355836390710398659464531012408913163678560150112130455806295712400764587639119922154682245422990506154508440677817178433872620731687679060518635699058316102842445037254349717391315858418887658290179263436064323264425467574893275611478038105164197384406557950599020711866872562108812801175075670670464708933131250757107813578358487746948509696680588178312218575712988469507396758172986248578701274491163003763692981526439323090920688676651202790064787734427081702352570754334248769921924450532071529333957962860682329868493207770672831381993857690544143006414167335028345167693025465076553140078668642441363273662629614123574767751839040716217290962268747005369577207733268424180887447608179182803843999973383616627856770281302992829130126179890169889319227328378936882348558803638604467208902577487090228840387053910960798171134448141509951567727302249679916750932134620650996314383196418098806210750151258698211474223982243966294041789847656855246585308761247051575484953154020080542269424603765271500024200960745144280593218613175178514741836376817385601066723986554312712862345366129695319606782397885735247356873013813858284177191247901727019751301013071476271302146214094936766540194638630473887824638091234730959428501245463490020147754607716461243219340427684756178778997610000138103569152199983657497401317373564099463270298177471641039656828743197008172037016497292207729790573634478211721271064049447357245702150530873085337184509119351891599426055189565119418918859160370835594525875043401767445908622686535144924097382023627570958741364840591521155360065832831475968726149352185780626265562211564356915984924763423643671287321714487536472721196245769962184332415478852873564943284856310435839211039442773137557182558420181682307162519881711044709738159262723197941699649179753528069060275103113224005770288336227230484891708249822151529101143820509708560615414467756480910255714612592346826377460712409835228605123399166335799595295094368522605265783946707290104146630856857535093493958886755841599624890254553869558764513479905888158657574999249821218148683735395898281564234807608561569397782012172726980374688389888563696613362897624376600096870492765675381275413653035968073134053982417455857891815629911577908018094311756933199098188599716140597223178477430100428604364323558195525559035419863009706790778615726940141609148883079835062956513903570999107677110583146090139267942358457447344139752264625710678409101173431471019052659787723679655703014005393537391035825231197047322229252155675649954062071605156534201545312681993917219742237517726245673165764725432990842776821260611591156247442372903648127652281018486894816324303031805634895195040282347716571296893720282527533944275863934775611845680725149652432208916444717825481892692218478230095588909302901410295558112202130498419120294127409196708451741227907535479022185857159949983767718672002522426638873459770264176424482186747832755206997659035255074522757523194276997981780245256051071492263685176823523059219197861678854595397266741914708039288430698817793493378725779212572671704945509657576051272033696098261699118592917101143688893793609738937623413104712861358507547369959312126452388256627784763318428980485285005803327131053090804819493562565385634188088094160057941020803364567896608490755942415251774182330913763672568172769957580781691985660227739825708812813380448957674971589641165182977294960653841172153168184429677023554541178186817822142195897957142309552633949341968227724970015239412343321156691859146504060145223812557900145304883357425837282453406264529697295445794096863887756037464219536575964100480070971682010777166953167802351380481026247247006282175940434250463531425613139421676314979184600646769396827268576061932960037788965585925650051830660829232155573367869299034135771674559640159303628035401276357851592661843003660636367527737604331254552312852953586775187713963164231891014266467318292854530398324191451265207714282251034557280065453442359287569293871716389326305644163597584451303340591208727633934231894429944473849384203506882789869158104788038034540352845985958663276846537381707466365083996460654995012437301259251652899575541549777296847941439792497342480727214477565740998852803115798621492355096878044858409490254321255519163778839508922896620137119628004263424649798180862384938967518755232183899403435633633989031783878424046555976802181585891005854910192489009021742889327304831747555702013970337169923829661123162423448423757620651949318889290513295867005987219509867182623314500949156975929782985324912873646200446216342369445992811740897889212060738196511722958125881148317347112567723990082618680102841773642401209961992363364635704881771669237625579181675134981913875703932297584636442516175219811132150112551481408682136954943457316256067480532885022255819575017700002726719607918794345606372064173058564031063647312826488806385123454840197168193835165066109665724510988107092892275951744682998562579398712297670936664873831561425526228355344890053995582131403851884681063069716539160297758023117329086913848330262025014049992521846211524346061479039366547013202712339938482139714537535610830722973461539211918315786496735302026896004315779738533978106296309992070714671387322491220556713024686471957185336002507535075900756207693476806281823044585686557698491864347384179634276157179515532947915361195141314388330724471112685215093341999488123983759325824410552523210231561089951355718155389791044029801347625885453598592058309525973602260447444383664567069347790452116970956820145244989724378952202943963420622389447524721454641445883399944722012132131408086572097316915110704052000596127953834610287886679590066453453218933771354151642103353842062651904435383119399508628735381731570456058042704187243402545118599976456397109169114972860564993322444647219867145295981600338561460964956520724961216440420007452930852392222872306980040055856263705796664416366765943664321996705416347872839221110016260884688093029377682834761820511836386659946496122315642575396014072669703036359545299990948531637070621242365287941877654278643645853417861879460957518650586232209006483093103047910190245691770576876664679821480540402879466712310998141773337096085707932347037885159878960966793857351375199516299607860654244429930664961095751840965451289604901333572196371213667631887238277429488115109696569169777967542373057144795861703909974948913735200498116940870314354179131336648337369643074051198452728818116183648877830130764382040786381621673321152076466618730292116166497752771043257943350285219189228662617127224676309968227843418640280435754946481838659588920959984539938989630900739422672665500184065789583827129104919035045811124679191965916856871445270502040019916610742407271706319404977689599222685301690760673930539297773752934269081268101063048115672989818854896420249829856849446341757515704262058244400370893631933657159562136745206136907256460458046171898659404884454726153868730700607382422071227137532022501659166938200606737342074476324626035368467685179230831604382964763397051934483384877441030775724007087919258770428578844283532933429276417591326442349359606333365329041054042192223706799943477162079962234280696618707039628032218560133344131795422003736848415166552684270014792277920925425614782309884608244978989627487893315797836368511617915501453725894928466262927194740756772531583806038673718013246490408785668184272481071368513671148658231185861686228243676435649881866351832180092790503562726957705183747180922489745504276480589447138483831061573732431171615364642203439547966385480847361123131348421905837939324896349063158749424740800128281730892356230265302253374100883733701314366161838466650786809596262958104536591453291067835205875114712781229196319454680218096677869426112796043044362576238757475280602356422458811728357627958742201716251569168539581855509709530711653219121487741144485329786223497883691581073245567472588872903859730349692704202640118969853170076256912615634086293065136409992399086669896324703096061596116694935484153747913573815921115542084796232423409454605580267730114869368826677413864631459922338973380161016410416258330447576639479403132074347167911469134390854265229371219819898928729153531806197356910893485748284893255614027666059239320462912953556168942922290172429047180316306285025624794485597886809813225104064559067797628700275050333177430235322814145185779356717050367105985775846732605788753267429339591387226940450858267067595416217983165845066813411057626479302550540598999365481455416536896150464637224148408266059579566849542557739355052976482768933083719898301009241104719813524255039052496673716872019401354503597482152768046521282145392700619801392748829143947420194571187973794807699581800038263414992212641846755308156678270460713051822576248904137587559433243534175460320366206073196093389166628677185845863062197921265842472416964897341559371522878205073544109517702863454226905373396647091353821673933850250339106365057784333102135778895235354906864080253965685070525512352833254295072573400581364693201368079774845712164219395883772043622985103789040699148770055911634212034757544593921171701639194671758953495355484119284278477377316159025325468513908773471558675965997716039241595339824112205840149484703124757865807551847597331902275803719946696269403537932295456732276692006586429147786503427870068300329103336725725643785891895718427773339239263392720579541609390629579611379804026851483126553460986995531060957214095793118125201079942284677177327627173201951175195125459940302465651297646602502445926508110284556201563518182409234864569579276471317515619937631324089445420309356281193555848656178039797491794956350139517936133471344123818155685872265114800466023463044544597762191190589691037545531733616331330906465258319902462412592153387485721275518893585420624846830824774328214648015948658476549747907160479872877500612628937207378899013864689416724899076735642198823745523247242091830529681181853030771447465583779523992502743397837522683148527370014580953756751628482308169044632281859414841310774357397937352284424600029289470523934990492087255501322423592644145361811690000621615217272130183368044014833009338902854180866703897431040683651068266012824514821506388055936245370259017911650113568074616278148915047909568096379909428387823065830192071270575184693612072112396776639708015409325756080661312896049621202992415617828303989576249966299216134818687593457198536700939649045400058152410737735230638911204686027071648449479529567101911863282989549197365640526607779425133707748186452264863504400442262886193282979352342389775064217120297881094428851806377620895649850470398067646042353607971625511836600230934677457531679573926723892660619402518492249845607846348454249969290362283919754621307762331661433870313140400837617362157483006802091420349618642044082448197801748318514186529891698964098491876908074880011996730716789359906620749412815750844376717822510556645781567142086463701884831628401622541799528553733476424235698143399350402995978049944354622126980379746115444907881481545407376154537643021690723686387931917641086380165064658583769763754294342694727332072241998985229119220254799687466578140186331725016833087995778762734824715402700201428658981746359178194959293204085027481375859625793063390876557487276578178408427455225140361080914157993413822267246957655353190183773171503087600168865077487691559088101497674923317936576648340125978220250275260694827226878197833598854840397193551144571641626765247947870477706216645391565323127433601587140049005788324626822821493602912701817770385534997602307231230755992181894508157934693576205077862403239827396644617478610499711522779567064243498701419405272217262843286822184075146470400325814984985109570037671268607419017720764610930913379675190823488975424751393844524581739253693919664164606058816425440990592977864443306104993626371436865633040125212780808836122876317040605615095829350176456495783561263026969399360538407361729564541130849412252784851503392579862997587295495950535029299255543434854959577111921814125177874792193651933111375569329771507676117144725158123328135330013573859758431302053507156990508462687450081259703794391093966715889211193282889175132082261834833261920550093157893794644664638954713902903636541138605828651272013356497276384305725634374605707301634469010365564901758846964653312713202431576767449093937756384658202679211538515631565943985939416355173017764012517712217935895123572488351217251277865252972030937682774165040235562852978361589213204330392205581005107127326653997246370593908478814249129495840926509211594335043358614533793856948748770182384489272768789112030453474171744087131226736187681302282777288618446109687150416448226180859423794989252282316314885532516421707093916931530630191211368032754820641660642033715960805804872222916113580018372857879614074947144577313463855945720178760935701145550610668346641314804148349240096188435248624472033453763822524321326908038039329190462328074463309386420199618100377971806838654241193430987189249806077632846938421367853523189205672672615541130292182927462497704390626973607153498482500713213364074117359247820165295572634268242498735161847201093915570175018679980360896909880050319020094156375713120414272588998711670394214032220531149774106815256075001542796906017362065471393404647134263560112630090711518588350328975377675705633005519242963029670469363802328645195185167840468901004053978554794851374094553583386382201407207002598871261805444811298692574566645941384983703195705653267297366755583690343705527774218415798682370792734307529963131842306674455602429697616196948466268067330039512079346018301662225393492030123261486623255622304795491920774750063763180614212503452379219238032248258144732325976401277197389174478271445389880975325651597475156266017347511743714978490818092232978306193946216632586381902325360972262838564564339595231096081149230583925464957948454247723271675737373516538054318239717164316248210174135433294516595067137057695724350978522971375936923944392633928899915633305928113271284297514267511573251559188581049495455645485036096754555945592477292938574889496073853563210165052055394734018873468547063626101264246387171037084040176107222572001104740414283636347617422751697380075474531699094344413887148857712683123511673158486099788748691704414724721640778913631139221955647404671567959624955225630851634888303085619625217647492280921368705612640687070210704981268346858674977216240756348908918660679229447487491324307275006536344302133432950367346574576586602026849829424255542174295030919639984378600542454501610595752669088265964920440123245727528508240923909469752858437561124925333899936306975801348471420966834548843585166147874162926805394925947057116466078141228268692523968423502407146604675137973037380123885007690954453413867400025461923425289818614464184600064686617550584661675709038418721992297550864883317386135042977101190321059945164827384469330622217784754009619932370712478402971287581249436010213193482213148155634329704606486849369794696766130657279827473839338597871561335145004443163070257205895480193659448649520608497162986591263340873630106399194929348649587936025852816218843213019818537039456835462003375263288114474336841460923296790720728650480398342144511260206402035661880890779785294237977409524022982515240138066789683198743138748758532986423147382321434425675809254200476918988429280254758303080256552981768337959434709144647532819235332375367324663362089219837606700027512461552288480781665974587836497804045685219913957101470395430559263117675005808393841243971981301007593339817980188509146495947106266507259381162080458680675407498967028503054221286402774122395232971310875207720496780832494569031663013653282351138027396950642343760116125987289485446759391450174435953963858846694799780870155233165527955001353345842380495294473773793535733059234867499904399826505111311932632825853232096413997106426461376674939016534151349949207510178013331946210768023077969339463149261103138501407634976988175037393276515312688248706517616112190984029469154160321166639217338424936959851756550778073988542445281784708333002882778239590780656535835559090836956060001341243949910211128007509000942867547256000277513081416130849862106473086178316821886390592785543588362826535034702959899108439155568085278344371762351959490394959846370191745432835946902462375458207653394493689180965487255295525633642371837588940016068276451122227013096579525743489012775593509786492082369277346113324835632652566777216456812802523061706824393632659272701118877543536184594778998850251584428153766435987618627588707728397117070201682860496591883143768950892088966820886224334882447037701253051374268505136853541530990154558111135751233468446602484344389270492077538888407369962649561742805789550074502750769159180258047046335104773936255625424644431138397947906008681647871645896631625048609789431612989195524690093543959311454221579489641694032341175140093159372401767895608567245160539818601012447441264940559898361660253769471884199364740213937764475612878918004160952821886646509499380627310088273779818093386186014942730564482574184459880952878774918432573031712744453637505040340122383672744065239190730061386021723181830306610564727361760062963925224475239516084649439586882167190630743486913597929713959528287269321716930899819167472794542442361353114070232078047258644785997131241116663320584600401209549659156019796147243907051646690384651581365040178196820786731177571767378124988134560732122608949093146563467607850507780238661028471399561890900788429750350383303770911616506607778848399713454569714715325464139288009487465024441802936368271620275598243535084547970130068696464124910282503128686736564998405053912705568488618613967678963589065436928924490201323166150119506156456349923275450850107948945806924462023037907539589042409482450298993939563886674134060878660306721846368842754175218575704814778186520153082072760889708597536022535226871290872445487454748085388359527878016853379943299497851510949503523351819202749013276692256195394565693930964474729172492899598328009643577388716700270796742564978126989896485110575817549726341037340282942578306160123809538602264767863410264188419976938481629056136171763853368277606053367253545753829402757027424445977190350700408770213936704928261602093483569672986839276822032118156889829025415830636037800760275595856388056916623790753901847172764649733176938850435990734529335534607221718172002931056613882606453928665064935224405667712618291194956463360070178235897174483104333926643001212407262323211099754625599166768284416910806457526608217470976928844756041651881461984764393809898167745380852082001389463038823583022251183652760726469012101281099930221143736276059810713622605453184566360240030866654043719525754582761628408263225671145323415487052724912749023356601361661160991317148379665392694861270434916112514834200516589987047865265269938930075067033674783769521278682158557620847658016316972269018183045364389791834282934189651372651164754443213221980882028759591716985422943086798167327285833374277657483922487344310094785404585143113456996739127603005541955134612872725225491439779614606367653128435955343348121227575977712398324598499889286402078265905739503261981294264040052854864808484959724527225371690287774570481840354820231397421566101084433621059799459290521004817666678869467955961927656189789209814220964421338027633547849979652337911449170765637858718975792153420288918802765675044885958733521223565482472087684944922236416939444291795900942822003435944776365564029125929549952964003948616517348183687984738973802008864524305067110987817467576442935234763690207258413376649487161954848710033114461393846781494215951282587341933901459039129739222602829789946015775560508976682038570970240380414510978679314936110164547033924917964585372726325256190099274463900485929787078935229090305691055371243685982150843985601817462775545599456950323799203411572500301466476901802130972407072694580569379972355989692309025927575629069465488454288147179858324448838469358626210797598891262843567603543893500945231641184244385311756417895895959642994479213339179989938459770633479729131872996883999628843251906007428046665886718599427138507769487186619530990884581065983620832811184512682136080757843549179171278358876959126446657700552447378767709460171763499433602631966678653573598517354029348058655339440318772121066759556913625518425781578713365096829299433742393793752980163603706390503111417021558748104450948252769188379201402999527528641838531108574145369261151140706148066866246665703371529452545929436310502994655938266188390351136026821655070769345367372029029759380185295603848264865328269814129540667839539489405215786106163060650030121298486474502474574582722705253538426354117922690751851991338241997625128089956948225676447941555931572353871625354181728179032317206554582402209207916684131366906455605280139247224151699264672894090683316335279921336112144352612902875382540016816679454954176255258350484251302030967546819871200001606807207737144353176563995723202048742942484958134222306852947853071968477262286599008045092610447232056747903217816170740383378564200118749868123856438334234018957612725333760500500262441811272351005061304550275087532349752249530799524845520489301545859663927702372139094681347130868776679650294464172431124439613684968285148360726703478327069923584159501409275617228264937470105646146021036766328626506442079596232780661042336198049354920344733838837555303473682105738023281102459524564074468634140245165096733071437139175123313077991223452803254836160311187497832064702664844302360237283800666206481412933479885368256573612865588786517860257127724446985025243743190220917449329077063357333572443373357203216179692377005625300429807270448479793494318758661326828372683728724457779428331736693866315469494342477404454275663396845220752534906649032456275642784081113207522535105463861019120629395649674523758579534826867487627164359703532910242506599017140147739644790182247826709548671384971167751708457940143796226579922732595856180877746769292978377314434155451252404131714728279355485327255789003882135509153605927426370291552483110188790792157781347392136407241403451461957889383068296249262706543574083546896799652915010827424126453519243637614235841186400237135366131301081219587928848412764837292279831014623315247160380597591902675586495383056364749838215795705372841433939286650337478333068277490934045137019396752583452099448538106325833821116226841220514280646303709410546094149502060508569729190585898876734599562767723522055111997576042165251597709217540676738460614986474305799729342972524903488666536561366714538904147494882509885014539334313523793557383561555738026868625739507323518328989337816101379032708863910325944176416182308649839228450520535861763603201364837212285993819995785459776044653584060772647692535737002196663230185915058524837307401439957674278714740956738650617656151460257341369950098965424852321956696275864519623525077946933112881948440644988724765793281452640503753679075895248111462610906917762819183764115048095850369358919296221173200550367821034548264650062798362850974290247876669724466322530388338225844419882097803669767739689699082675458213757205414136225028085428612056155580726932776888602564834007673435893205003452831740965574867886181207162008990894017499474740335869400518795305441029638031288341924519770042721616417474998808295357581899905207199243410567114104199003780650202091278462133377022947476867829059347874833863544069303347757103690545135709704581058312278308460035584587740106802246967532607080572132517228021231970189119600891152354745932763012920899064190862696523148613849146876800219435400578300359820655225532268673413797956626672344060863646875990673972761144508062139997354537718201747806250522712250568919144509345949075451727108120330041820442388178726902079917238901994947418440303954891968436457592975475157759840710670782368151545438254518518592733874081412250904166799629451374023790447932273280193548818851142092849746441723585297337161454018855207171800447263427350563792302276144490014482092596044176827150213644491002927011106631472164094135777422212646917859863676466988633636662169715518765723900808265048936742689570738717957161240041313550803976597294155619913452725312254655634532998942994882839195321632366001354896115985430545417452976191133227159637805038658080375959757632403361112673309012477123467677758744351840907667437627830271009122627107805278936316305922724626004553544050912819284489267522387934398407697696894075434629500521703046861859795620278270473677666951787814709174955527781565211908644489974370402421512321826682036434783032230668155317215949154675654272937385020922977499395895018915135952088543970771621589597185123901136898653006143676523718575731861618897680456794431643733284319447273004404888024427641946061049407761706862529079068208691364340808246081436397836593337864128839719161261316773915742214771486639804206138829981893264637824119005506406304645426186411170894894184660495559441321001701257571916032514906895816955258409645421723280848620831761883312665979124007903911896795860573362053971608737706321254312782901327915799171266014707356765502308286003276110725943273064667641592636255859141653577870091725250787332369739183063626059019616620945916000908008972385928737325521913582536821144175715932683895570760546213045459911572981753255666490979250368907922392919015295447385835047617596023985979099250579518202960298174840346831725256296101122973894699327562173736221560113167789620074259971949874283662834040154768790711597059580193572493337932090732242744261899954769526072546609689693386588057876387161210511049541800218587704876579908983429840861234073333929604556362693270998163708760920989675966265169206537976905553795526141191718371109693637267062440241095269382078486687440874844539120684414521523165230123013360394469687849387649624784892187428279535913727976799450061961093323667643363009666208722017189874563861166277500638057566900520318483059648131833611517664294829977348718039231841768109394129150620167820163121469344400043745916690493803997796576730494403507844524726360249986959330581285392236360867928552265453931065321197399447023835001674472792621139809914681543387875801923986116545857548629939437994845557412886167882211216892776539168585961414154396137779186718500663440485228655499231825920464054388124096524885342625854166971953075650979021138791818736460097225698818136441803265714414568007301241886240567152960949994494442234674297063380306099374283445607598147350505271128408553217280921530226361076439194172271913054109815127116927419204040752047782100582293210806316080439002097010963571386119091325890422411511506843767708656774441017426358361643413354129375684518281125933854294370853438673331555421407218825817222100690862783367561803042362147561922854113418458857257819972588133348086297662594127475142862178762830255851677664228390202766012037721882544761155113631760822486864786765157071187311684861749078734145540281225978634505248487048074206788309033266069456492180293976773554638309426908395748342124954863476011432160734386898918440386544952337023316776619643469968833572381044351191187030174775573397588790963245075346751384088127651224623528194863607491064436938081728624080754370550453297670913698282590770671397270042543121374586989121345351850415849564998063812970551838736362534336443743790076723764979776518732798658288789876153162585484158957427469613971882939325944472487370642778283169477699199737560642106766886786948552657556245616983974846346743179630030007380841860195929629480962661021692934198170599623862860944602690226680691429056538783392569398294185790838453060799587919424676924047838576119937057734548576235721657410562106306975347705647884771196373089343716743874454458918601239393933301539224621272230751964098250554357338935853177000458886774938345185148414005448729573414600095314499831917262262198339374750215217320603495595358621310968719946141894284768800035623847105244479534184425313309948289835721251392545742354346928312867633581320413044272083636265376910322336878663064868833011706427097943040924852950461798522089432032632559815673622883066366158941688726658366274881200521047873412475359330445570279556581196642391258405395861789711133792790292410937616373142129882796935348337128903636409499438328329891989675529327050941362549598928123857154056125653820647127191066877044368355972188437564492194277254918760999478237388165620006113140304661650034881861945812205520832964756468113999709774344410595504465664815039726600693797851326845895808474460040310562298844054551630192112415883687192739034708072725617963276088583907663649038649215366021648622143778818042521312840520693014325478776642706252771431902082391540601232347017259398645863543820368783950892003875477630379861516862781263467239642260479214145002185013311439390679067277373458534906417741397447907274674314893669096722816922989513500494065566246281416212906202253944667570886101090717548451738101606974466221485536098094561372703806565031704159062276813855320880935606371331623457366879360240251430925309953725601269703647885215946110585948762200013668653196446263654930238851853234458339581017996397823437988434442560698511024983586584466100881338251408200898442618474291499873022167362109556277785260261482483760404831092100362097135690346380847601159131979153950144745908588063732930138441885753747910518801856484593530138007584413311287188627498126472570711625023575537940814958092071457011728114155791905039798752436605406108544857917375074205212504622502743807015844889617181582129976225542802191738331045526144720424565146853472065673019423785141170766855761176822223179406037943135098789677599074900080405449658821152076941303401814898988998372545246398669216294552004261953663705279187650566230271711647204115758797263317416757496581749215667869463540769097647471320778225797213014416115316409025845279144939205864799144078260237171817298356550663728348513791444437858767993424135612847155803195891380742347767839207324262641898992097410504007441741809356398880336873340558066709158120137333068918866155195051394092080223836562140605603692386188052022137592125201732583271143100943862110158971461834116286476587710245160739863190575645526084100249932551771116152622684685619366663517751862190737247665292426606706060216076463947868804596171861229944512788308506851590993461746713443512713421444727252305905764585300187134234341517091147085383399590206617014452656745595614402834396102232400437872378920138137785668916391219446028397168050100005740087463494592937624747983494473080721116265298979425394888617877631780983812959482567705042673918798482732918323026090946645011831148433056110139524206508041659636243793248615692257398747044348352913383882457580060106063528326830983801489068207182138372413736728266866193727038537915279038037455127342821501592831536165905107620088653373134180125967553958686531177854089277708466355695215793656597004478745397762685354648813378192950364603512755150013390622921958468438970186076028178148173896339129445195259451774615491727687547244706600677892781259332646320288195274008889842518804489950129833033769292774240964782925883768192409119177114279791676754705746316064221953413131339622216692192567374159002352362190947371432069128563666330057492028278136431836769129540981124204462228775053799015547924244024674150531869835155097053270175097802060972531493471339787511367531098466172506755624515878790142015246720980956292266074473576647923000308440895363028747182279541480973150456515941302557392745550553895700503495908452474158436195906672354692226330351215912656123510895919755147805380885509038417142241407498336345085063484632832272925548071375242824214284841089700607139791571038097159560981447068792320380540680609568406148825820602393095040604470650834452529052899443636343965545031042225194785718509499571046886329208153783721153979623074660691424932119617141812825566614341444317149041373539347399121564831508137102608544880215702831296437481567752988473151097048439533928313331410598422156511648445672963422392227809297999191987227280458726918814140158771571952391716482885211168136902745716102904982979774758976525429381788929320524179168872432338315298890559651985314779593989977589505928824867274043979641278000064717516717885703411114093922525366827746167347403234206827889513889125899934366057288426547960431917532402076648057351603423535599809106403815252521115913744481274071588463804842764971823807245806716766238605577371239748458426271934180988016505576070236194753121400657672612078840069798032078950504611641153514495005103132732108364906454046526372501276809307931342941604172880536041019791446840705858042754507838498872556842284121306157219195435114809780963129580409083901091557385786549844334726035764232810289538131412824055797098216998940743523000808149494368884571641243875278059150005948465696519349318002975581921329912050938660802094057578484635049171700469902395312865788552829204299411182846009375848547822571660525101085661050405183478693869912207926373820037075790745058660303257610401231441895456415306209363115146432560061664909291210536255545502076086886134096132671861268471292140392028289497843128193191423110644288047727357831124816229685729812207865921575466911534286286549132212154798395838825017634465521600640442935144182015059450004453918810938098587196220363481200247713328727788476117363011919083255418836371195401735963947130268808455782989609126547490236468956412999158430959420419690081789714466944589712373991544107706425737692808187051891656861512162635118653934371078415689701024819641584150956347578478013534659620983553959153808896841364798828964018837702880290076371798827639266307547904031950164124146220514438472677383414161023755174198814267729482660751727575914298789785106544520582726050819722369586454471741533306561166335791478865830059250175039754001573288153864739442959865528609491239657751736790894894470833641598911387336398927755101498442757980950673718242438700420038482712532646282472796249549796560942112062011179110815263412196107297060518492085951304615739163779588180970021225030516156373995457613637024774839808908929076790407874336457321484521158993982119594108342545795111686267807218174733318283304548293492797774093177183709979357000899107189232440508687856133100597235399466663704945860459658280955831109775955594559076184787969028343124058843170006311950305644363781391938363559061199134607962609854400891449400930252647264673065937181422386584225124120831629853456349864833505568963042873310158540209422146463203558065666263246165323837825557798032623620023756299351397376617003092791822558361886190241988945369135622168215002831946771905891163365330239954659186559485094789908873045451128226397415846306513708801096107653116979430915907785947282587857084856819056033387420908557416993969385732825213799076492261784350781868067139254190126064446424240654638851890382186999235924255569378747043787139014994211942925939719992312544437175454195631561991344300715028372458633695992603303838218037122929103537280058176360364711738316281532207635009765637745968476212715675605433385199308196735690635803898851020624773302359298913156817458441502355448264106041736897249120595152038239964875204706382175702753994187237949037093266986968918386249922849382178500014345655049764608050916629394524986513642277755552349823300334224996083853616981783156410549400503317751740304679346776566965628088683401989226463496890186030553858217568965025105068503146046852641750631049697602565893985585980980283523966147681041023380578047109610866868924988390461077356344432249621089476227527026631416649457083518740771662173683033490073172723284654020810852238270963801810719262386905820666674117418200970257084756845875860814646656588042591764696703318999985875073151341097403495271981677379630840638561056627444627293754898864576545648324930024192529189587994070102273080638170478646754571954892202453982727448220610303318747054172339328433158587846556067706631149489187714296807166112801863962629496593460394796950153607352815365027158661391622605006680480992925878456258093220329632096717427757075243384479793630091162573318379079085356152088537629878798869375741650720418145252565110104868075003165954165015799298231654982870530237519364326892696490025145342358446418238033586979824653148264425270569856702771147667785846452876590192640724944727195876240704491788216479900546977782181483881116272166702744664222138869719100904231100582358097027477566483712924212406758501399494494930947760329931800558598356031152742283247723979851594984952384635555061739332301515101822495235736881695154671069318248445836761100673088195250616430376401599615465104430487975845908574228836780558094360569511917630224724574658328107144511709663918033831317924618592984393791960841371279844835938508730171062761465748003133955448687254780379532877304963790908838838814911068969994593935842061202040268341486244632342179936254774863107884302818656889925921621569025484440538745578285082568322893502711782862167002672548785017142738368498842646328229590138853999380012643565333770984380510215669989232907195028173973637464573738935882938135725538105687253330167811348252709665361352084525115930136394548801148385967037346460341241117490657602603318693906584916727750675077840278345392494005589054330197908919695866399605213489396866165112925596045930564035820816354817059348138720330010340053884967540594791998929981538894458497438538695442633305594491926546297891187342788216102618392506454198413826323037468888265006128746918065756808158424195969133672403981237726183694537634582827803043454119633152384671426041407988245574359338039534466024511570625942016963625694396108318222249538261587335517672878810746121391063522245709504217466580017608279744352383114985539821389140915643949118876577851779076440062320078770195499621023599816170677736481421103351485352930931079704364427112743358473978563143721775897875451990517719418606163702423019829638695980156469865915215201225594620403121313750368420627927552909201368187554264593934184948369189917182634623735502688054636668556218312816609868089923887175428620664382470262206003179399223548855538530019545481765896740418237680591477300516636896874617511288824188312366832326362653571216496426370807131797828953195429983073302190863850067768079950672211315318929538257067942554217968731419568007184316997901375812686667232832529324925980570918487596678548160168511954721765140862809318836766642738319143120676017336142683820847391044615027764421896123652344256288079926652504572262374889342706284441097046256515984480804385364014951335134626769979561580410160004453192310941727083389366851112374539943801915937605061027268895510764195505899379309397749993427879935807187330062000265254455381765030538472242062732468611765183301885321915485696261936867836508483083669045706711361830974381210346184070591099822310227793660203034434352839042327159633277796447334321040716700431130127911542850932598358678362411215479250537421635163994592346682468816130509305349878310010946522338401594154704114616646219645501352249157850654819799236626680091493909630381805419685381004588177624238265496351905338003651251663094520715353254014795822309094435442533309147129592868986537050455433109713546004665803937944198767066913651347428547588400882725008790367688452283711191459039003915563338807408993206129502847123302389187255070158464222255460363760699085917859806173239776809325962649644046024772960677041825859315358974072222399276505922092597976161196567380007677970498944508677806229106256314206769912444616775730717777113349621237344722447351265614641887308653795314076492800197869406619557447428930633628334541030617935856235271375894682170927297530561687688225555880967439893985039515089353514732768442771533071797268133475347371611130626320626448445251793662412860088988381420617595250337597139447106805132178272766973457880836002529778227620158393024791786025238270439715132422719779954607784407967472875817180893484929347439795080544846627412554777569394460071736216878596405664867377518038661090405631486199445801089773861586773065448630537204283118287599962956007418348601112668206630789696341630224739046740767706895626817297479047048936136916939238058620293865681636782716641415259470740836814611751277192489585988669097818526933905448410791728695597077264798295336600786152256185420363493166244553848240222298327704261206621847931151738726177996393621671743826837071015558422727067052852476853425778552078336443784068381338447947056956448152099115578104185622840568454669144384189656653768202150996099755906794458147484907340948087573615564465053009281532804206418400423058792212041578443747798125418752747348292543393914608752493839894823652136272456661787007016324807748215222485560001018802687626312877608417990644671288899696079278630066858630528256166844257091678279662257528817557057967905117009705229284087839668885707737997641076763855127764191804854244635158045524966858918397434062567029732820632896391672443547259239132071364895911721436744228938352704829086070105405901052053318211455962238891166930253232933426056109049978301104217748135055006961930436369272671988100660636400485726283169868949741219962870194373752087530892303855375468896560201058785428187169813112998129711074601315158182013097079794189015981656556447625808071312602059045327651452054472967639455867373359000368415367915507996282880362742629238468966989951931448122973369240384697224552700268960979247175881896456993962478459839060099111785855955262619482397296606078379862075303009406711454734538250825008539484262371227230547159864328234594412139263746618261252410960733261243828478160204613882863408060780661247414187737219732140633957251757976910265840057277994061372378593193414789385652868743132819708813235563847486590101478087155301538902896733806210621987286039232293473219331475827818502523223545007714259697722525590200010547886728706194099610469193691962137416394744335441083523548990672042601706447953022766192657850976365009324662810198945591450116664474923172660447276057311544659700894473720805315868664975547867093529695633486706638691665264853019482434316180485953388721231880440365216463795316646387561183952557291737956927286319898385311090374414608235432073321313203126081393248200249486267365449336022691146336851889559140522290898684518201499507479312385499540835980020757322859565304164398209671648036702270771108441077715645554111326315107545978259213003066702186643027362799335157564281494726977921897086911412974349626903881554141768193043938579317766997553264645740604831495072248211336888033743660792986612024566529384442604402963570338876489702338263412835819358957762833071808256306114986920013646750044083370115999089801486443915971382747929367610176133213951792842373077682196471681779472106332167913586551079392846443682622183447076195080132818932893243052480879335183917447904083248769019432336462367353390342440950189531129062738337178640347920086876346553972896831495380476302228043065766544819231063259252369582199836692429813461987204833405167341300719063033421939094234912680228529440474525182326064928975114444160141432665372898368796034260284380021186637692129444276335875802668494767890491049690520824331066206459313621439139004271897510438862951446653528082838134907634845959371033950415105510368458630645087378924814842449043521288770971943514165394421026041280109296681772962988419589233506019648929159331359137620698402324148182924592391602570999655784639367080143188986551086846681507296706206651896375035647837773104993030396970690988568709924213493951714234867450586254336505561071566246656343922432285123723112197146035016761914296610193649426115216154744671920227187391783629167694806820302976914225735436881533475066558197514487003357915730481683416578759520651867557011595196236661249334792208974092657969451340891308410394954743987819665849730581554987954067547942499897612849348425551891152029424437826383409255636235769353982910498296931333732952448278831930528894995895126020195263714858935887537487539464689466667005717120786004804223629080408693388233177611203317749973294907481776032612526786307510997178840158210918038260191141907571255193261812554359304878778761862034676626229964589438914929838917224826794190450211589982720028016885369027514606425598236496106648650158145916156677831168578025250168022560121336706277039135450303354404359628866399709135424252283558977412186091062737300241238564128225240818965964987400412956334945677435148159220686285703505004879469076849520056960615261389648935737646886892437072525428945620261139571489334560754713011682254969475369061602312802048495364180644210485424107363170241164166874787431901258686007331991463344913361675110126621411741675240148126843171208358011647190303747797494132923470593112903076465168097031675797831497092629528630176150660286373226490707409697003111346910928052380329290509645892575971842622775394946990172019032829196426594936014287350206539809624783354576706404690581781862369950214276411342074429862457972740148284222484535400299315377947234099772318696046080179427658079356661083319231914818100605417674172959626020059613185101865656477629359552438121942141570127410332816280429883728834352125741880441594517281743881709554766607161554817173161348203947533728652498851599061498427568923323358060349688563723688136399949577923154725219736469730909570603993850105348743475422334930513811915084872361443593194418791916360528960218521246745232629552998813806360313541671646308517461844203173120806802295100794960185249116225064764168989538433081084566712650184156069939576471893340500295770665501460228231905637330438067727841163237280199713462696460855106612151432944146472185619947672386541429028102855008534230654553445026381211359153329254443703297827774434322062383761938177829975327057178100653839845709357130176325912472632295708258154528213580165858324211259431766113889454078383060664610340788160379996091459663048626057697802574366273749376931229167351012253707966355887573986370908128484250495491526926270232996304995206686016017877716237740122005566518615485073189714284089727301757519481022880572369703655894938041322881468899591599916395783955188025598645860370284662198976621725673115447819462600092374502365106931018521190022340739101671163386915943945397922124430922474079218297728362395924332247159202222701059615023094890852109506912837797580204740417673504838321172470548221374807483804549490549739744531960116056863123438951626198519583925564082121278669528583877647691872090104126300019825986800343396618955845033157371208061840001955993597850336137896242507171344294107841859132239690926288630087161167856910481204966705389102354365944743061781494562551708384690000383205121148527915008643938119742892882544413782581567296794634888422815487255173310099130873374041007269023991687105742994041814625684582861470749341760318637595988223984394304528689453922122387909580869420410876894529794109210554937697000377586777330380288437241031236846333968231119205464301302395514300153015197937615380363712153134668375479746686802716971103976616797010995995672208732299345323447876368597510535569767012136146043936047673801878075193260717161117225079694613340915661309418664310789974809084837337891428708284606209838734552009726879219196845150857866854391776552128102595556967099816077798038917292480872965037283007040716562534313428388344238678977515230104631199485029110475207519829102805920956693937812928359420598355531484931636971332102038330350736503556188820256888482420659228066352971297688316711656736352859038809024284445444090241676151526642931831863008555161247705970526051846251020527682737491684482953066092563466044267573273903375157337056742051426789716207536271485666105385271232035793906707202691325773200386145829193375517379945519364165308174992362387241802566803414817445091897252635689006867736412025788360941355159510569306203642500756506798031931247411155135047935914143609427593858996401448794741851425550495074753683274736354385211768092807155257175209175227011147311571617841851221250163780746395279130411155493439903347613035472143072760510124405877708639867674751149855886816661417797014569312124745092148195497538014195834105498356459319223020461113667738981168146759488892206204363932851515142845825489643855840572091676871567395940051439469672374752318317363102500075973326012002547350281376261738445388120755053785703371698598361833123246607255584772691994208946849618987579608349362062945090644324044998977100459875316838558268669303522608309553232625850740579786236875093171175969720645011189799174897969791276669243504801806600504944960171886269438658315398899644082937261595798430154151213608049409353643137882624423378277698950194413262177835732337544018398497981920869127642915849018047605439189052934235870438498024599141593073645358654096157380543193308230744342164136995771213611296227825959957116391872398453464213447755415639487397747281653388095223795876185737339525899575833329387201740067557522525075810853088276167963157588628010112726772042640090086438384456093423186133409942121112355001644318135730242660326250492534385575483774453992012619543226887453219564177740064792695436455681921739606729594332271979036677529148499675184729908576648944952970067043564213212689362218945642172964400353472963363593080085457722683070537629817628848234738821316688749299162377329507330407200554582997998899403475631743460726938724439187754379881046249053636112357976366248600827170442409010839214821536264607071183905456158352181201265136183397620004106750419919916961636374335748165046365857024680675808479199060473133894775581650947650062283650528104303902272968417434177954077921075958337686108934316062384604952671410822491012206485372649668993380401451505572050575686135763715517820818939242464695928245295924103143070517861311505117154240088964329864239237419240729913216530860728677247271690371240842793157837170120630777262254021983303426486551655903083239739608728274772788263471539126430643580097998261298900116150746969584269692117615776720429002110703919609795016560378256520983598894554271147655931511114600510274732843442354961850476713170039309907299458043996422802539893985044914811982532933945519857355624857903415598003432697842822197965509653644173084276540719136390087786103447134076551548249749524463544813319449154326159746879855411797978857578882725702231646105300369390564003541878512268085996700641347188832724310676218690456105766328191346500503769901553115529071149024418680427218715751470921522826881862632467696059357898598727486634113070860704670877215583254451926129305019561797704798534592406208615183637012668348724778587557729174805560398823426904057810692655526558606631352819232859610833473281029709301476397129297184452395552038245935319958574717646580921389995523057544664197014366079406619572672474556548286651729199754344986154812802626286954890519003658815409839345048979103582104283115132541896653154679277632120477010700554090388612840407810707144776483425101186469102086483297508763906266804685844906903664696186780025340211974635664846577165048990978863890590985862209823936370755009049969875272884865808583592699132013149814418978796818891683751998478551962278289533193536420099547704127956117876695047006573852448847915289853129138626669760236885135654252814722741998439177652617848009043919086055318225333443759145137470952126557800857077381449995959997583885299246112938748856645106623275949257154259698511478593191351558362931508703599692619571537104409558541604126344343941018328584028223513549509733951139790526000757348223039618641777823405592892100935949388841937813805170753168725944304532038420675940301135680101525314321180359432698898910512081678652924658459976999100795777725628715168495846552984596205311949461239010993212262270988415230002901614120439374456491801646588184555519251831920959778038548443592144167451422596318357771791221172309024544059591498277465628721311759768757071917674921193570746210355804102928735153513717646929012583915881995726254408134269428468345137975049110371940816653981716460889970925388044860337158741219997329606350512301606342294217443802557264333538882569599487331349632008053447295643009382986128042931087036099448431675028449844904023600879781905680441740476437383612118632217662664953011718457340106387429227043666048877204988483514520657012879868296836032121334041683341873865229823353864433883545921378360759567147710775862159688438674414829481049880832697521592163151168481633708569865107288924043331847349832365837980673176822638688711666958245270524554078964939666399080465607227740605059877262077432198808709271788101575751636210678110234483040879214539769766659892597527677588090693919862419093885435604353937140097929587128673668935647823219738688683861026550231423826618493350125263283174998550592812845917201356252759145983864167639760966671172276056656651273130930809980212597411051389431389743713086128676553042870977830302756612611171831124190593489340292464503440415808516776494902186097712495541339358385459991777893194300547644848030043184108103069622095210738456796831907983172371867559832601260697472507016475726500645963026376874834780891904589828879297843276096315596271577321005326271023212530224992766969685259807193311214242771584663916147150610020256487522787204587274250676821907741555540319605705062171081130424062817198001705677354510632720308856413896046287795034286911767156722531094354568223935996209011470411992045504292302904472247429545444218274820279640830338772114392201408625554164430083818343119035646014415467747864891332408960330041571251394092680626214701341822864602700335641062002582978070046048844132352159577226037010412173839257995222610101781575722556379676239653706044341277698195693058259988039290251100521806465823737554453616149487706481974711852977397770314295021201309289208259524171289500900084279723131665688348063433945510685124615615078364981635883150651597813849910063259244867888946303825582982301310045681750441181091942824998708891534157601014258761868805554191312377684633540323749662838084795116370412246765969200361099773089080703116719819822443917425482650378102658239056753031393120990457811069927586529994010839646024851579333829326892436565949140582786221868927932545343010809322559997885107561885670584148299903312502641514219555091574344115733618010062169902730058287312418713583666366498839995365669441994071610306233983969977633353160319399016619562731388754560926554078091891266117013049507345552164104742847426371322333078716495205367918938409666380957764082099166880112066263177933963017603628627139829771548788002188647555500236954739253643688945211475732176411680080679800734996175835045406929581968240085171204639680675595043446776761571737860631227255225744371370266090227139676536470858193856327442739011952644896918574237322995244203224718477872083582824323163283918382774085971829373294168448926621227110975467589556345765734966036807205587284989558009010701000021480607360244258071531116718443714275950087429116528879100582689639595393143295802134328293102124691110321143309760367211474696343022438850868201262785690253080803320998021653485459425267706823560121348582209299463267508922155556434823931199477522694955451544685865566646785901284784506971390909997601758325857794565400515672857289174164534629293648965465868354210794854270958313330124576126807566227702899972360333140891239375342684738124283578840511601201556494885598597212512191839788747284489925323157112518441860380197081802742315798516147694808197991233727413378886122589322546607912038474000517204534993116519436379180458687197652662414085597732980172843249092007189799439246212812587608569509692444987189294358500457888091510782397731894014148039346898492423833446435509819895953379488559869112825049989621860747227177118112795475579350015622497649807378810967060646655191096436237792984032855365295228358314593553434329176964894779939761518174965631645897933087499589386476765435651403686174982699244368640586751546371292439422513531730845389778845928081886907166237904440742638552758756288626252425199905768884469485825406582007551029708555101692114401277315092505188701227701329630962548731531400331825815999362623007880569572127357294004091822454728111887512362175035709871659300863421392068242797739579580827781372971972539635764780242356317676158095630583507769132781381206509022840100430729003426146856649613195609124711165476846132086326387348907081829895424718101643105378095570691884950468746551510568233367377009483494593986293609723575874667404866861368587705676288171955012539915254951662730902711420433955462753317284009641985788194611300997402667632732144196203819621348854298408006152813294249088721958530897606273139767462425143138080296495518384508862874368375032247211098157831165718308783265629918377363081126617496983408267503918282899368980498134164882934554231553974697698015713963843934296571659165108950434183628708711238725473857265641125450031554302948154471835841037863852186872871270442226559783041618698046849092915766395678222376554221023635105092808965172085255512726068479261695185585946702536161005478068066308367771063403714918520889587119307103697167568326786116514388335999843957052628727255991116628766142628044848852388996925595811773138138086985546982661208418962936847529395264626613074925578940431459448954566882658299374837698162027451940206974220547721947751957141726709387124315099113397523252390881931703214179227821736671087675759959593442104715956188408387599868292217906021087071656149195278875326516795936700734667429646507197081556441446619004629991250002422162190530621469089878731748747366854446998735089370206864046419427582862612138885573617417919279050336871849257852021671181874607930752886681818925944115180524173247476579834118104882583715311784976464594052208399968713729734365393881123463437467560083530949037293817837020513458350748051655979871313088551987495450102026108134941868191435284925304552792487312855410139609822162551566467371281080480453383056510267350731370560924798687850626961884720594653982997470718932694489174335467303177830246610000696549323676998417572389463051448232874955875462192722000445193242930489979694164415757654863395810811151113300224651566081603281589892384978939426551444003132863328898456373372452781366518731536164177513293863284496554536883043333929885514816429919054836990883557915430237134428249539081340154957707270829027890299369774789801604058618606234867693755756223065306112376699166067625814624766904553324494405193348862390766662941418421453091191940830749552488908536018223572644354297805764968097497204969435239547818426414276413218691391672847590438231957413160597199117430914496946540390116622040217002333001397684765745813928494618191875513614001598675056214477664421903433198983251633020182070478502483537671743321067714160373344040199561930993425883700144408304350462799432590013792420662003847092209673282011183601341435794203275741472598178703977198290924842393096582158533174776214020038522188487954297002106093516332960200955417939341749271115293289847008198496516296013340540649245005717731429194886613164072652695369695492685271979805425970817132076448951119401896716265232924907802334384159366516778414060715951160534435743479349324863049609375866322864813276163545830374974822479765771156310465597498191987027367272103811482401110502121917189060605815529771099196079268570551241753405094886868398927124543497775419713859686511793341108941487513577130433409676430711250128013152707423566228213376104824600965368110889455786999258732801468676051906736211127140836534535088417444256785705099482612736388622263918524152087430465305037031173276064793760645681524384387073494442451701278057888342813793432473520164346167090531608355978936367477570722380607184450015892396891283628734440127043983144628476676075637134218853001684726265596374736355899766034927674065865498201570270701227567275328613826859950008216464240075733257552765268418280100898288452906347854462681289312097652557092610085658648601932246754598033980869828711238308289396855996281459464649144399199786480044830351576061239901474879287438395886547730670357163444675960680583174285988156711150189791521071504263487350410856993873852620375329540352334600964833929150148008778358547286673887846431664683764346672526841629240603855440667257883734155635882006161175344540407564583670320045483422817670143566177761056831290685552314038267044410858157212436249586763101214047961439502641515924714071059931835782252533629964691613207711763867504892865092097484424546937457000903970914069496536938201312553851990837422504851266658889543218433444194938967541721958946842752834444726247874133300302602832284669921359332744585031181792803240521472173217809010970850318523352082639501788699127298920516876951947894906583146196130383502480892914520942719564511444574162835470659836584315497135805172402753407787219093071591802507904814929469381933140083006873558697970341917971696130039858839611015018967436013093802623549939286191966136972631102697264556739553229425893518936720544315916059261210980671297121433648405281728171816563375484169884825201937889223240295059328577155700762821404082661768452806497269180717828076270474326736719096508807755766996170208547954274961946158610373817619487217563633495791081188672958174745264067985319372024292599871462641799734232275487317169899219432329621257168960457058835630475577985600623784854785954639930429613249550255367458639128651534394240246348605120203761661353049079761538710261343760190444547852424785390180905147268283923984475221721649258590533416640358081132921758155530394395864191357619236759403818814117705392488993454681396967655105000290046724236052703947684664504311224011727376700329735489631360470137492632490129246611004948595036758887311227820450510075593101002763325742345220853619486629603742163923678871985233840886236898774581074358691415063602663800960680905129655254357072648972315407701678800322421696030391201031330358655940034931863228933642420823018176820884282059626209236989580933487531240957035117404163466747662769746558201557764393699443712480287917225853895951347207529441962694519495877144313753443438372375084595904033703812230376278671307807398630977124061779918749686660166331271545644746948946229428403713410375938069313471184741446682056266952116398044208107077703588896790803053372443863058246254147678282517770288159478168237273818478580477280639983006940029785513142570866400126608989328398809829952567240316443506263676982990428095481331582440821563755293802997081010438901349336037845082417028295802684300540569210151366759115451199617735754447201734304913497133284070145201946917998777804274539280543151216810134195063623440241756775101719364543439290056642203508318282605509151037766491791531013857736979847207092233637522885953639128083009920909701817813138419638970409653706587510015852462939743141496335173112493020504969614563025738086816654464588556754050929404350831535738967393148098491835717589839481449645638874608024492046074428760924914545419182353686455138745253444181463991121995620034432202124781487233048455967731016797955195901438514217738602911534202932538056149790243480567882469942555827836449999104268937273360479970424061135273392135108384517075463803219266629905654459475427636968787163728991410925151745173872342088100556812737903293547970524031042355284853946085854157611903937489336460556490949052845903881014928903572839567448228350752606959963815727150866991411030241664513535898882436001175723217624985722416831149512965656329085099034719499618418563211016903206255149711881515614829792513535994230945433765426475394038830522805301055618157949790796980793852801761843010769706874466403963313808060073605990693552997315985550584683684723592410809654375455414889624645760101381154670406779636819668518805568018390296622344289829313892823164905757988325046376115633076789937418591281449371238979463912671999907863379233122253071291681579775074364286521579856297552736952379897197458422144121934071562769835946657804611519105854838302742894241526938187150256020317131191167969540475921413033795497274862114330259108934088802986070504594941185939917094798500011311151042619619080682948727114704063886246776751103085936197975775806445845704945474523147153992735004557120739112168371152269574802810671547208438839022479265933359094812189384617499496644109208053652326258099497677254394787471449497939247267777689324563686588422525448184336747257945854964665341239586396921322773713780359636630646613262963605856922249397180049587586859916149240039777806801741412311137193265127891412939869061480651025118577218864578357032762460194678356978155798794514901057593210209681876543210686531113629281188370857007962254195580744173717417822713991087348743317605356730020319210671662331196669953297203508734727254770621588193668251960254508108583542776578708169606048531568880309762535713668829613339953636161564089514918288408240482781961304060682007857670305956607932720775526857867238251763828710580816471813822850942005156517096921121265870363110661027872149211736135354771082921573444350952710507802545938551599857701150091180043774622347038208017864936989689403592478386038389589158994095442364205860162930974667100903331782043163375705633371341068553054787812546093453672811990117502909420250424385987713861075492354515118783749889012879673255071915269348854936572363397639277420487747049080258898504788922893836662463440027405540354146891014153596982829986681798390134583259255963066848103173014414127610788617745320247312136474060499388597099428560387517537114344742264833415565657545108128516217850005014626045541793406327418710082334560036575633727052344504159774964927875772862135898592742115463710744849963340968190223669149732962646304040757323286069175777414385069749116189055748608282842731095379018416436004524154379940731537292952654882654450329861783396894336962831275633057661579139873092832930170238283091468295120069297497524364300611941676916603294878418979373981011520205375089064184829800003792324706110394184399675095800325336878086415894257501026222115494314100251586645626230983468780804543804330162769207433321709258187481654523909378484900977719682316905602190786633007701671922210277385741473153654709486546916278501167195208098123822568321722634043711858050471997535083229266748602080384349182309138866215156682060059651333050572221460270051981379183345230998088996022894762827498292795186253721422838489490546743610287130127491745335190513441225931622381108688181803501956744255671113748622030429963958121488771010538487934385337083658433631997288948901558627463548846607074866193622063084143103561552542673905598530429588651034583728851257109232813555498352822951653952226211728465568142851446225945714130512453052025692776314901034601889873812872723473577801684675411654584000575479063005073905273075480656288683733321743218304283200252654001869613639140635449955644704515801284394460998968741616338697070078235257500682725081686932282026580674449537793252034353441994010351468925368459264470940226146813623117740336464369588718028970372679586865514075375733492485299670840920318261123941693479944578801713087940734548118749464692339587920301587750917670016285721779556994225732292405837012736909454629931241043508959854719608507753118679297853577925674342082295316980979823297564678704231740621300325294556429031732262802080081103119751251678434388334933825869060026698678863097129204302612520687228552646996960676862542050756704642280044683930675149060184682206810191897209245789999636188930130957304685718047114002132839458111633089010771390699059858182078357148166522555040497713438742775959933000142247177244017936364992965209205671321577486827349091373142566215002209228087409136440579580510341568283617987561262174858282797704360402000535895481383295313333863511861345434218826275563681871912399099602543666253405638162270149146467000332882278151591653434684087664663006601287668936624832729493593208961439021851564472257879370554488103154618405209117101976859720644854703753101563442853360446664383332634508110490941343650271653651689559348720099620730253958008003137436408713535338157345106057351677165192742971389995414448898433139320407130573111452273368111411652525622598296622601314309723277546827383969790210278383314969219460487908104497903870380377596655935467391472876713409890756156993269955210454482841523734157722371239763350692411015693613562481458858403619780629561314994635001637781010473194095901908005932758896926023213834143417108375220423039840326796124498366628952995105502805781890984337301649423706372869620856382373542023680286997516192626562108005633524356683884509261874012310832964843161370569094791682386789758413964176753604918418801574791184122311934065422471537412768579480172892791836407857576737289406323722106521266862520315659785444021189111929468478775127421966933957079478212518720416624042205775054797417608073439218301855226383725053942690317340052720075963392661651130998010493903543645518133441430768692615387864874211550500957470748393272508024067725681368873415011218567113335099736806457466247684314554878840117148725704648567461357506793952224635556291138131868442642628697918007188232980399957552706308880351896290981880881999502282089399063796125524571799845596995924337266209394543583952186776012112088053442393558471487678622100133373202218128985360789824720411151631115274425933169482117289275886876488562345614128730143130498361042859210231085499715609237602697099263478602025833968123574301135949779064087452563561086708465616785076606464049572085310836390132386302233033256547825177118733729589030022513387989338112444013750769509324377634294266507146941500673521900860088820318186338296902527142467018083841739856993766925763475670918223545783999811247922600113477566269235337184613642031777035957314459614976630065446376149785504638723561192871785652674128095718483417517414432860720350646626624676766498999344528657759165800429128449141626725630319278218063942143992925138850727074330602655393952767807348602015310386261920749211648614319865724348333319380733534093988882165699895052798132299820169391149964645296639466164221784880231053950259734300376753106332858082330130878914061463681612290876068258653048595750906978461539680347298412679967153381990212112052461114469896931154597304777691190139746154554113089925439473060084666808537145122242673870804041047243754111060023767562339477668820065831835200835737060332309111526042126377193807837103748878390559368295937073363378091122530791953336428511552676003010772144832996146824034961540280688777214724648938502835565203307693267438680368968476721674576849239970380743106384977551583271932224121591073153637652972458524517082157263660964256645181895699685543613881235376068800711740068155545619856483635087173425421437619651176357670470633991624748051882162963829836144112429458524109285008917968717748139631615663986279277932912941251147383070172864619102547102690594358044105924049670104409242498738586675636666242957040417812081199594276217398830132609845546213431107530369506985461710828578394555852043999471117305894693508946202337355336222577560689382135913881440601007222083053053300113328089540336532452415157070607750036568440795476994969713881095025906403474428119786439959332005344133631434106517606569283887984484966726343784527800305830476571241844636338295025591071976453380095447320084778111963123533494440398750764589199139617762073114882521138061643261709223040231054030270719717832838442866760627419195374408784871103710341061117966181888093079932505111632540177466930239776631745212219922636594154608324190652220329525940001848086454453370479639926551826923058605526198034941954370319574044461735001751847527744514847720800902649558638594743307206185841773940014130387423076392706948579140073630658465693038127790144083731164912993916348959749461542476768139441973729389370319202016491585087505026568142619933754423317490944047894716919684181139820417184353519486285815472586908082125597707772808948095847999004984765828436787018120720244456484891954407459610478307458100372224132772387659552366658460832733451216825622739475361675632469212970392551801184310970583477831223737858922657823430521595651707507342062756007175052771543237091856970099817518182337865558381448982103484153862569280293602145650546428745012156415618691732914495778386959748978269219428194008390529176855233991424109881231876379906410912279384023265094989138845733446182480864254371968761955210495064908272929499228810874825831918093912957100394528934037549249418643258173452819687558775891109620829120525259201415781703255026462781238667875036881344249534243265914537914533544294734792817615504808388620060320981701217094885424594231889841789928343172799054027224454357002307029832039350321434704522066505496495269109919111959920011305512415502791141693182880242283093560512463666988819277057761470426108775232511454475367213729772023542086909109393827366577902554509751899777947283489183272385900192046782192551455391134957749325386656658817467707864173803380152322079795936009888115989974649494270832229492964955870406317440720679034217995386949232489420388272452689260921414608961624849501897813246561422926687379853665698851788400894602241246075899326326719385201608837836162283717015790982532827495900284480428630844805151640927593662950190704003560949748072392664837249062316341798598418439408901042242527499928584333338485192289012500753568969552346052115358144379965597642164838886578689379265315359361726743116304879321257249303888042894246047407291144780994896262629870900515103848530480088320473904461416661925139357829652305779623135157955267432645883910266971391778783092368080465496265293061018267665810029972271537800568464858445234479359106950322363154364807371796746333826544313768881173463482385516737896983992271665536910932279411231313617876712109212570486280547090397826127016295373534253865858849588948334355052729439096424828984384015243188929957414978173750433581416182728376701262998682324911130589370209322713464725268480048768743618283956782269555656068849825265506284700212094136952190144951436397704143510355650886703236418372443111449058271350333628798605580036191270778173689083733781878871010551587956179282151980881519359131224505320528826564380676313102073431374151480547143037471245600598757202121753766997238646963723650945600431239490860301217874588378809271991574087892213652151955350660806708078554638797829316933349875232069664663281726886734979929211964938336328055386924194133128093650355914270782989133733711172197895782498078005415295683279845092968912102525007338822979313867717617317290888726957846034102038155027418319227202372436587326400268046374146282489525108809844373804277248211634330344050966447868543027574350369143928857068070407290355771638537876334425858660398440061813102083200183515447107360232770415450393824965296819931911833088015123626905738761269961073646459716883982289607632227203769126640581549645193740893549249514368853413976945974152450751376069003595714926354292033717104746250438998491864142055218989091837130772955313019159729106888337607363896854024745549000230813002594621496082312655536457843043987209569722909560705455494315748933712159074687198769260034324595468972655375170015405112368139335797712084039416403093045117139839878577307521670294702583709166850268221737264797098118858174349412219057058154190737443480641183164966028098786034820413329215579646156280733516847780366901950030882112359554136105831290217700828743535685764893991066875466890809819638148295455185549640980400802684506081825454008484437105149994823545705986935985975677944666951229584223964761044595403628904167951343166238583581491958457103899636898226655386435026772203662193563880658205009766545903821981546470918616367482623301623155747719538923506066008388674290609875288024571627760787500008792777549820796330353500310523320167839028898522837634553700012263838897735932753409855339635348307559846658364257405882565593286981992688457732586702009644558455768671642050043563095558028624816784200049450367750916501558043697030140656726348739182689213293495804578131163747111413522316759646390344950127604731923381769641936718287545137885681672085973181197196383861847427455575154401152195136083829382140047993445258724606892574846280441194945981095465575646632580379836555693906249237091920242471680426142150719312480884956530302866436805368038157619677799413023653143106249099839090967377884118896983147114640889012727197257595084858425009343687541825861540275147933972315403811262066500956413237652266476997400802250042783513641678345586717760192617098984392734059799174315700419633070757491003002043287334118326969696616252191002688124421479852199893774702941202312810207731353617551327264114207948572906751382222894989414927262402841054435496901387235536716174613017951742482933038457064274376776306658889378227128773434682653003786428115307288245025738839136224892902140995477429088089049122053940146569718903053489060582324068000762814997826851616006334538497461505441848896955092774707542524065998663651050395478548366504420106547195620303428553573993103465583461350256181673811318002808752366097811733422657289469550584301552352630082535968259247612017465897182227361141971211372763614457814745247405491598526034401114126741158123837960810647294421890835443109115535080375306857361962928105160384453178081435445070776752368707391271845008242194190832559549476683828627556111883381429728601978897961797015007550425320080403603435043351365821111647237295154225013946312720476765841080886411344323025962266261032648441653316264353103891744958428667468805247176053723618350842972319702949414661459234942459351528398011174073041462592432338339888650243604483276756307829817359956583164110951581460930565155031155761363678107427681106130988876659069351031920668843005109342573360141049477090217786470833180846697957632491131997386418488339111498798256393812894780977099013658581379220002692121519647458482684926967536478970753397853537654861185108055891039196880424891193942954826319397985157703385568796344459151834283174261610100775683658831317834551256882049714876528157308216477593601717008563394109387419269633444540240533036031002902715233677110893428990003462034117487181329281341727984204332201054381673020811431996943339995828173888869536950315614472265760302320038082146005559547816999467688235380824568868179568269581158759786074241261488942294148144696577476345109428602566773475610632853524348235748771583226822967073166435421755355595995889332704218835923686778320153161105124742141333725543587334833605226515557299158243999133069567881783154856268138210414215539313652408779759231551318321865782968164710794248115213685288561067236156552000361679617532760984569433065841061524392128439535296194777467118069175211839225087430385673512006618147745648916381392898451047211926459251241687403156689145637124548876525982070301364596535638873166939071786174439378280442001047927864729134798720751292990447927389756950107603227703329541845478231270362644535095734186295728009051220879149539778183272237313089091451220599513817303553563809545727652636128478232599332710963826616293103049938210854737112943517429843057835209535520194462037004351444775839373858430025352662398427165528427137759448220683061238333988791379844787554837686284264706022361163746795926633299723248346413931234342070455489934178684073562518998936599016717615328569598815530731954730962114295531988478491252921037451162072041520637192139622808782938339704606732773290986371254379989762677244124615679186478489497561372782888172434334679567939979463699716253638971011281236596767883586023447132711525317136077166265747744667418189816429793180686533665780561079095037883706798552802292354006614453791129892670247413080083950972688095937546489614273977944354625713049009980265505271822229288922112063765359795934868549390034169455359522483947840857269014423575304905529468106206100480115496679571379589762274632567760847324367111580928465037415386118983001407672539127838122817188117123224359112691859710877787746426537633606126387825717353974436199398748388574485999132397593683533213001395457037358983217457999458376667980650508341978593020367631376531095750528703451310030484487041333373068409138993593985589532401962991569881423125225879857421463871377262409736833460563269876419121555593813985452181570253088185746868172436426134530653453357939704358193024967374461697257621126446970658194453894220285430470218862043130337637529181399593149149529382901397354607926515555483446759632010416872755801525257391093408339837391980379158374700940074205522433349224808793739262034932509536963384891849514238861507781522632945888928272525720079476961884274967587907158281651907308561490887129597689664736935140463419537478591188577917450431822652620202395045263775365623303444439634010384134801934052758768759132556106254478920950833273360530935726949748234164224868014671112704883990099776116714029497226616978820885682072618002373985627349854598105328747698450202852814948435721199770429208064925571519528892407681396604687698879564877774729067297456380411212897049489607683976517353500747636153653526042794936225055282594201658019770471786592227716851975950029002204563613692498004947618641501128396371361776116610006565941845445894239919411869514623178741022184284239817094083285974408062176726572449323099648226283369953713705859599192311636127080718202216153236680348209402552836830972628362268109979660462086054151816075950083498207678356254349730298303166275929244856958619948055635301316468012481406039399824675269082345051069495905660288764736616180221867393570272740833428151447251441083346451296225156514992951219990977408279877710174005273759090833529073894165349466399068928098204309916215240717834213477072114508574310209293952154225303879960971312992263558750262026781046771906257857728307877344761361126793859247933095872734002145914599677261350908050562324053656556029535236229042980681621073489101252310089671776792467379874376248401840707628751462435553529961208628379046056295707530537935034280928568824095765507424535699041185851749754558199495728116430609945498661072059575480962761001708242282995434444169179817254631022056593977924102535369694410138873603281538651056292127949723758345429137416752280071690546535679769855876041036347177007127021322455067063336503637145829533765077709525447579025647097775384221037278340972539279341624118338011533837459141129933496176797236504041283757397655915341800148661095555061331357033422478603757899722999974735509663085394646726727628800287224844398968566263708890666735622166841391755430799812853718120667384877622617788582677032188491410758915757936576337330578178236803713523561877617322198341674228265029175568067952177297313529261493908864292205672972648767219081935833300057144101109535840087506589013556956935449245715744483693886624933940963448257987423608211345724786955330202972425586845242141256462875763627721288045329261874833326901296755507624064122206446331789735670957675094645004915990844173337012746319049955670119881788877782404636425168460658186556393403965412329719538403495880090734942398358525893431762423903706729260455921850110809281666290583980649233768173869793082483448337487673947455063256660997349852514548103642829030536731215726639764394551386869345223875238988502711352102139602756072873434680497000961023208898667355677176139586141487909129198385989297540217480079985704574192716313910891430935531828750569874245659041983037024398381260482097364603014858864462407541246944717591539257710934096643333611148034601597889311125489328759311766986405797191838543052952728343790453957799187138409139167175652005038776021635131472304083887159283877198508523275715134862698031987922731821370525746088203457774181607236308753275477153007884204486264489281070842818101023165510805540016840506893074498087015379705075212485308707391995070682646395262450773364698078727580644882327465964292517781247525022260552917754422579109400721730604875508284409525517881366704511607181920130738942991572653810961156835972982564088519192763172311459549657728898626830652988339999660648301986651576437956346268380781673761839158087626699004929533014066979046744155625070084582008467870120611202825973372198204956597604923410650108556584366315809222132384410752317589902451390437016359452890838609845207318423940134449186269578493283062575381150033268708596014708412397856052411529462149603759984790599642299031646062337820858137413194462496256793934943640111777119390914237970872264628337950350303369231703011205740925979733479554599166735333817266937705679238031027517209253027571856566736063670339496255650800706405198524714282597932929890201603639988289298934470528621902403791315604846969999903256734787337039230045207041509097128764369303204396587866286241870337865505070564612698362651426369503349185091540556057927059363460372734632267186481575077828710432801831207018775762174689631186761796217888629012301336914080684153881565155046136345041523800242372749312313948559587640936935960934945923708613600037104550401916858551500052659493285079009270374591327167114714845431685879469698696302677493784324609643271685997396967885091751481552330590150130245817891220063170597981662604512203294808532578300042872752599958074789635314274377244587883968930317168057418258809042358174404310144328710261909200648831953141124527790204516418765855187105177271117475977712574237207985308167847197901120051673975544400584462429107114392845551225765903106094719935744237902598552614477979330845796639198311668534244393770188273231031180514370006248021897350807152028250939586153802268237354629980797041788565797276908123062389160684648439340413901388539555685426702567313012204333855281117810447258056713938272193198607151853256895068241375797214547467081305969618206691544403901704809239287006049963870433605686196361911182204214641595174558735079405500688149200115692817502513503933506751345887860920829197416823318359598534753110051076626634398423410796161618020549512297017942824806603652883538071575136777641597156016246209391962154988119703367120153775710646741034583912483893985493973745222357034334509416453298212501260962536465425860836952084498604090185436205394474842973573941613275035341381044867192538002616525528313858443661743885522644878798304288072936183441023005655411326127591296878948534486136677506141748175927978983411589926205795990791434594305908995932797606391752959106234696821555142331807678899575083441289380424811537295092866672821997092133752976283491546577106832381235591501780084581039194561505465789636004868507936663430913724812813284989602384107582279881261714230466077631223121926154219717816152371337232090778977558983991099966497107185587837384588214497079011301947096962732402570459397813071491439142773623001215934300505288493229693452986536490825484788506372344046820614631748349716020727711240279283168334950999402363194999744489532142440330115206185528610715016416164018972603089414033400853595230446433456873143819017097940755918933657570086766524928553348804548050497377806277690942950595526091481688551229939998245954323526830810328590439348286395464131553809167934128208295976670973765650182982342716023898508528994522316512615127799339648335408386583390806838937674661406322136567612765897344661882755032455778311270585415308549371484464838590603607365718648344840379085620610457686587998116483429989058948805104360841832407357072785562833153937001747804171533602120211679911867751235898150310260407051548153679513983979414669864203808171008846218018247234680477522943129450320590221462189872095258880416340269069718781461302013105433661707405091613567132247341053086397135390172600183343972737227202246630294404334982182440111922318788086365111738192838382284257903200203252126147579083055579220713156206189895277662096625069232765846091803829061600260322727727496997105849128133358019509808515710438278723836296538499761633294777570799015797620456076189558258519804917999120991898964765762484813339046359917307365188315165434438435184581405993398055998379662903153501288229881572331492049652845156338432266034607136369385296238967648517969318435984494193571301698329692476125537329357977188391584416920438089110906141168638012712392200104050018311536931844789956187551245885513570058127857841739278004807483567291630837580816938623845393284110135023249282393664166428331438240954086592445635814510275473166976681703280304614659400462688691768130015308943495046357203692377972549717848965034836232627734518185961984078519444892473030886518534492803761992040537539020174811268354389889265338881235372038407866151361902591654852569267736598121605367126063711214766235303416644592776917949665437402922969675972189151643542888221314205093741216446811264022973784594771094378084043337488850376730108305848298238588477633439793645670165826097179937831741235917928140088438360615600820346529069268746755501459793100648701983609829390839942295263024716370869448589031930807694502376431105738109912236782027760048802479937486544142021487033683098645295929840779378125498562054078281776251944024073812981817003617977261330087763134920010573158530019530530794991409701520564070921657249139743532636852188023022125980491258701660410815138258354543205923552489836066920004776884670045044279213928002866370253942250530998453051838861695286644565830671909461786089654343656910792054556994857937510919620917858985658011287230274121971729152453542236098412496466859127069305813516989112989703560769161889735333013921538376293482782285950128010891854113282828050740723682972100600272948898275711389814751272774981216422286314289649529334610285174682503310897621275551908577416826658559356940659563727873366323104878649920355162758768097373903487668031181584035962764569946694747537550565730070975153616020716839130581822756376711398691403957000292866142896162213514872496892752788928595290237874654377980488172314061948751356281121027781203982964030012878522132732509819456595602424010153003411045798383425917759038376276067906738764555455500475930975318935881713467222818120730450447443876637389805361204159236939318901551167831141767662852623021652412609238447585396516100432029190013655126664584724981252465149216921243869846659557788174075977873537193804415698983409725121767464725484915164945987221183756078055929164285909648678695348521009280519262096337191251345634643038198658234795725607595728474243169169241336532454928839411583868424319629457547287903870575077177091346296474041529530248784208322941500825666494556331625007646972768411461285207393261012154712926857086584386614226903216141298443864089860408106813482088785961951132810286710727242334518142234752453445943904275109564485728644681329861102904942033626765068814155831264091165229401919048341691544553239882080949106706664484709630405436724502799389446148927909759570081041003264979764189641778127268533049262116000771719209813784779864112664771465513995411823215323500194706552301189930168422144178558437265220217548800181507882460063218669256668971798138160077303039810394013209061939865992481033099423706138089044249336161892126379510937209625180479932675030099601592724093215221748775159836008621463053853299532067784297734907855626520144666934679125172692962893014881427704901333967546833297899998410122227742512825116660119319124385899112981844674746737559223190969769120426656874165565213191842825451814627231766838753678917732570276047229774700578831636909998238756435724238771505656911674282556099535657595846686884329865757744173164220088709850732324300638249782135023272395975332303304034342078362762292436908945640408537698493227697779329240388182732051243155732063761997121014413469522330143850075720176502163806663782944626455770607392452341637750743883505061104450946011407227062485474810127743239481844300189857399780758233284548212612078560773184023094292436368396482843188816071582659264423106126151131464333797150083123437089927229982552962505618638054400248997338890834138027926410627257015313366681987032021432800660652510596736585843598581686689401704662523928850562137566252846051156148666864993127668375431929473378941568567050170229096838821203544880754451621027228031986215826938637009235302321942314149871737172534988465138026276075550331003401785598180174929034927115045472037975635454939478155543689580464491801293543629668323336247946570410120727424343466941346255906908028685921202674076413501692612005277046706133700207905524489771036970501741818896232774058199622391142795239317827658559474227740260983270489591187596126558179197952835539007153063899686614318063798035657697009985970416992138184401260178558157605504263282650085669562379709257471661230223835641381903567552063913161243782911586025613748903811741312495732330331466118893512789560560633226002374194724558041935095181283961876953649548567116927153898499831120442661404001020234655516286152939667987049138137252564821768057380155706930501769760252324171286352585453407596219895328496256821101413896345297958992836203803112090564853232840739805322837885879556039420364578858674339443347281805989478361496217593975120545616668749616599352548950259504921322913820138090430077157649782217909649874085050550508713117619048467745534390241790580606817605253109913239791037752345534791097470178723690791210611071504097479905096766041413961850327175459992061718642412771397709536737656454783916420325251694518932617785815758981192675162152321604642272724856008766356853825331524553159857386206834360389774005986687646883774076224754995813394978928401579658369258028119459700054972947159058131576125969984174249477655536250517261884634190652865816236426108521802889199974056337858995393530962019723066069061915673649486156150267006228912219033150803054009905228516432733341394032733615045912669322242097401040708900844115672658990199658036524962068986247491990436200493807847011772762947296947453444608363356499755938689024131165878290605799003404408327022282927769083773659743227740777230581993475192925043475817255795415864947119173733413294903671547766761527273183933005307067939264723338606156541897629196668768290731989394535039245698351723482529571610738862660075690903850629935672473135232484874372971084995558703225216811717356553295581068210382749925522530272363635614324465933666717715021842229959919161852641123665334706222890111638746431970585316877036089967968881992554209809642743184644848267570877464916945013164419780425419847523687253573516461946034636848936997739134783618676111387525890345299140284359645447877691486372158096036804813208237931637005733883216041119666807122853896504016216930532256104975752591889285724437876478924796008324133770724810784772420375463544413352928710459488009323256114736910535966762148211751337731875440602222436441982227698279308367787580930244425507831237903249152508517492948126787929414616125474943990035150770272261614343432691957656059014745738887172436050501236996820252869633886978408037045676402254777942237209391422087789937132794387840891201057325777486247037980538035242746675664237349016733307844290046977065675609770232687253993936151896359900657142406850412067378834871251389770870517468873629725473311961289312376457203282239254512365021377220005833521885316176565940924070345401177440247113293600036977196641941229918056058506169246665685662951971835418411722810797580535857681514847718550559424187381094497156286484901978264945921282386399431541553018815794420157796775967556788337964222311695059678857751535030878809005574472346348673446499591296297530023272977004328831479541318575645326173241436308551122296836333703861382781983595083360862892241223767470820367633245267837442707713700236947113976830601499784784187757699927359049954531233570686211754376453412048368017207779297467169800220081697079454379954206261502771094179615036287566578974569285016587096893944522868034502497688976282820212656229406554510413309386822340883994649490590707654802274257689263035586596243505240506470990356792521223622871539736278031034640265771939099978602425305326223508761688887633531829235344494018799924713378700608785079904227950584715529363313549846255474579297538885115777636065691163083554487944977694667681734725785396166852806980310034180101484768801614276192674298130151373397608086561173875679707129796872918930996248968563572097225558171788437322800877174585051124478052449664819946860229978232730019180862456237990739789485068120354097641562395886503311107262197627808171544768429855722512915635548041421699002961958283846018705995700998013279578201206764146756768041976968206360799916793005790922446259382786498663562916731881172378021754827053002801531600107118975425964426861366632416459642994234781240530415014275528081102431845784156451026709686135655022624875132291366604597403020337777193369083062822220486152327865386757243931195923917648226803200045406514887151642610927088097171626584278261166668695371497223666729557967698444864976696187229046937283825972882474572076451820754124492948844772016255603331567156061107480731706518865589903801496120343569707718753835215952434210570721798885765474004282230327708312997303989107434105252590492638980212872398407345164945275305216515240973800215660645430922228181032579971181601409710488195641493366600705584735692348388703324231147486439396190736886390503167763808468721631475670578583624910204272435808466044493115902183673220601770607638043229361481218689751624726830112237150788222335176872205716714787506390108424809905718284112697421660892591865142969678110476958574939831449768145885843966265403685430158579048966053873267408247121453154965356923177210496007469635174108323947183746237534635928654730096050130149883848489732714092933369010525908672699628407475671331290757951232078817636511734637507072543126320955228622371350084670682795115673852192988291352535020937469168922367390553747223617071977577571989081816638937122993796215519902994204866191721886564548456796961270747084504061003663806861599223861558234527080806960370307528380493652121589587256739997328996410140538758833202489541106315846974864366713752305889947781824633519941616986261184135052474926839808199314451831853862367420894711020466149880906815798807842909699435468565750135329490887235544221943294025936088606460725181779161179491641006048181049248267513144527452271620226200093668526124662755828266328972055551281854624010777823198013809404436778236972143724231895397453624978026110462850285232828049439092902962613870164832321994472808035022970382786074954182888476133043724184094730635714760091953015181696076637912443754527817413231976904598429800471215636101694359624181052800314487088475147807024880372749762084597740401539233391324143447814675561984051471432087260159711889051690167734273278285639464089253867802879100689919377633738567973744345908789995535620684112106877539761236816356153777622779487732538663472520308298197514000027582204537822210711212793598592879108869561101135619920387561333458750513493403458426007272323197470134442715562309442767924779524009233808505350256052374703059916463722961790114104333042170295621475601643411771791699147619676246946796627350140365309759559827225803778560974026296565652839377630163791772429072124429153981395225752535229180829008539859545447553641155770502925731262888308458165215417429822504575896111061638484281960112662052394529042608249035940731377357893362402278199240214545106004032799748575942044102979748230368278203838408575406684141089068009151859845297093912083643685504660700654641970941350739507233072645211869054736560902411186461171676803983987928477489783559344883368757484979409173698219101761517010073933067749612769477903095954065186067572293577996353201375453889882554758631849858603185500477374244682526854077841918090908490327694809346411399555373095376488900094337836099513939919529062291406101121182561580871506554032656265164904798269460595945697923300173570100601544413925254899190648863504060664608235338980441618671622488594632342803497074925483320847606494176997430787646993222129969739805362113910940251938372234762890212795703317500536996722734037990364088794555979730292200587926810322715070511281025417877787777273488125836888155364003843374190950829119038072334250137279750288324314771524125469715278197099439038601473407386975495179231862250485356719381249517534212406092204434651763773144710186304237983006074195507300276058904997986114659573754383059312019499034741345966305062869254025675632518924924096706835005771068962801140013769827498674346982997572638456423774195338222058305819999140652951422902138221564308002035864408887709865115068626460721307289969693994290634330801887444705198059103721775347383140140401481917422331582840887715283877397901363825402109608965953321271092670468135434865547678147763687939556681503357675084699713863747235594525775527817265345802722022861266038198330814267759580144260067305347732076250624549442116509354435456410520395066681488372904731596779380392169710547427687210296226696461804930410320869833638888708973102644374005866150569042226136905820016075289120731399235783709537817650467233006254527828363558137628857673396502358157193492683982858635092488622411011874004577245886958962063455195188464996076087850136678206885229281978660588437246698332323685856628238619909798075874036663047634895529825145251889260414339059372746886249974111027293078374207723317568438225119425264515511126419710956957731696449256458567582279646051454136208794445449235725737629220555838207189056655753923180723534024188980914525362612354343392436279043108900034990453115948262083190920648527874858923912051825741181332670375585747786741766576547267641897748781750185867402834190338960762164573690968678934875419420620015404378393027955701159790487682413432479096279963481424450368103619699339980869757982650898011642621577350522463937643321737867898383894192225755432357960515305821549540238462139538303766103078889345786805697449743301135343396872823868290131277651290949641754212534727714141166340896425162810681007940140553078882007210842266490900148636205205099065087747047811344797533649154585358089032958000800419185563226781937903700312598280665581438475932993016761886184854908639006666492209916042085845316292985451656733465093847121573754084464749575345959602291202228429083850933972637046730554811033714196773715951509621668816214832212346031516183992029279909109234222134336298582588682995077507640825254636501020745813591599565510578466115792987872162552734950037101504781047494362654302820110987681320559318852539468844616023248863385241504151208074276302908027409953661559752261043824097359508112590639242744860430165141639887646627832566925559707254486948550385405097883846406864622309788761171385188169006382312458965069287524484627635674161261992898426951534491373063565900806890138530204685862575660108216254896571169281979893567075176482291023311202185833287345755357776891877247017884514624969806373739047135549697332049317274119818790604346480497473793906281272541663074072298889758697020562792329364678485252184608692801335698045340184673981174398047278588586795800834033463112103905347990639238000713481932097131939934093404136017554160537653990543968045860851148675348195362486289151494856420607357071313405522721580274594354604699324993604269901185487530542702289879084354004911882835350598422997664472615777254115666092532313249239737730190227322268273416947237461309560624233363032436151476110390268163600752683166644961434977116263365823123849642011213250931534378535133431362630550058954106131798160209420316271428146066696381879668525256461285028414120306269587810761532341896153033472951771098386552219942749203093772717410111911774033218015187660921032217408188278476412310940553252397740869689217681540699763126414429293687199311171437126922384603606924216534996103521059621407636443894092451562873312757818734897580768880503080754219695292466926361024983520360070352477677093724820035738740673787502393982087431335109695132826399482194500836198005545347932800266338854761545474424446036399483836580332769322450611631231193263940521881362755870437735952356158868955376649562713603706565580186896086239700569078300421761921640876266606806797471264983648716765912380357846218215697418234401376413420644518184538681115365887919746366242577791395381024268376852015979804579743837003953871329770102191954439270291529265188925343142503115412239040249544186638114700234266362722517665731910926889807385070091886100113344963789659330837905615235097128227618252120683188151914178787217979077669329357832887270809932107818514991925627102233913353688365450807503924231398021647398735597535433334098171275877062487509607284821649366663176489103485831221766617356352535274478337634089786115170432200514908746522060785876981600395795536564921687666599975575765574817746640788512914068722072182038537354480565878077122315079981838168413608871759707179211211699320703208828455879344198189991177262317343767240637150826540465626829710699088193073908512084791040931911955095617806340496383664397598810246372881222335162766555223787784493749349526860765314849646986840942740947482938981889840533076873611419791943905455028212141663472485058882770111712975728249936458237360104414225207330187798303891806163029265014582518512509940241983530493287812331261179046275885995959538632294392273474333342884276423813626361819582730586135422345159873875502076461245452857937541405133399952869810164426934342150727333443923581647295830291591760900047488637432106741821433603334976175529418941307804876948062808275576959612625526174653200530501705653913825622776752566861968817044188145652063824249951918305969548240271548875036025665888111670330857135318256770784392955651976271820569251228361111675103005011079211398712764449526789795924435113367057119847703192136514743436750892098085215531713515061347195238553829722321334365359115413160151606771353364842332522286397662327122094172331993646333381373517947248692242433844628066987820810624470316806712256431699467917128201230607318138489239856227855207822301672225358148886466908964691191443933833758129513240583898029708745827068873884692758960963530403999043867457648970019063511318857803740339781504827131928968409406512389555624664111072186611074216199288681187017822057052109483809699278970886576990628571127035265646309627231443815537861944951914165393041608255376424585491752350717856497419867910778578098196563453466878274850693991553726436442779468151257283387143441688297789812492288192334124614367255531842277916705418273001531539411688329196405738256305828146977131962791660518939991468787668716494739150831401924161558630907543987482467076424019062407900246723155866526778867978718193478430767908467802812629404703305692745503780131415539499572342514848361457794022659922425065757871321203945606633351833189637244005221242638314464362721633284598108623968662533667296001480589936152831080623705072338818515553146147944143893235756135221325480947395911284193741160131495985466053565728218059798235169860743750090921040498653961122545825287170086970625703593688871855786418084523176016119989429163053860191261432685320279257199201677355157721268511544350249983929555659740621363589129576945668173100163424369199143044317930212484052300211912290535593007575244673681482353786341856136948825825112817738134704488098785675862402296675225999012728256267431749478185544500010168828285905935083090232391405891467870921157453177469337780874585355296255129841754544610167470798513929118195183910835204470945570949472264122984506888973597045304102566520704218670472143431290688856158086656161261078980230571440437261458289085464794888569558242926393330201082754075790117040571420953647807535173300573306580692311532236886265384852751978148629519706674498927487088117799337849377274219880377137802691974179112422562184579232711999707288875844773171568019856340939335134222262590735569950817380248218277985336016091061683718465248809051832603389883672925163938801518165132171672167466066659484175794469321230630230699837253416063724645605713293543295399817569152922086045682761874152526838314785881239653205819894305059727140526266087414725539498294985197983075912611398996737929871052791810429529621991432501045226150787772491998356212097582662344095541844333598345424148584192471930174926614742900222600352800883696764506854117797456324772733586381124561407092896558928757869323975094525551850103399631983197508333110157589309247084470869959823116868783535324764006074569965391441714454005900917803115596203816881055259508312011410150746037335460432407507979862173730396119814404898337341218602273532583363927719375939811387522561837654911197080183716759023152366166370648810783308732993700623716637933597961633658577395952168209307388345636899769648151697913065234318154191079284106504519402553293583781320601263481704087858605256747955333094485812019148616298106105298052941761301090123951197373754662457529225526790569328257351070141387005687125691812051854033635836694103540108189773893938848531310239217576011497535668131872398460372642606807838698352628890923745180975959588312490075847135223847263982062146229930984676941518998087595028171503889431833772636643550207158216523847924610757980784203235014917181036798082571623538999948753925258049480101795317063364993472931792965883709177860050655799937113693306633556987049634064606053114777590553225682239677888017317932873481088934348070423654210839421636899929879875122675442222076388475730926468472335460543419724532771511639929065333283882810549466557683281372866790109240872336235953175340484031973928584990662377864195224253362054364266398660510361967790955556369750554597414166822929611363723122997814186796016327498095336741840291239968764256140419742492254938084479828077409955318343468448974958292878452636849911511282400301774529431958982068063679989101751973645878023040749146766215624688288722038035323750101735371180517088473900376298050267932607397706457031570725556370144383293894068897324629124627930417096534363103540502361745021665242391137950824197334556402037629622774636479876938971557253358130245324341487645380474842080196295822970049000525288077478463230731323846044116616744031446412218260931645646201139104404446422590587614452352283979345254630946450135384632833115136977658341934263600333614831888904040957427271006755604541101966704992785536112065600993864655241246664859127285074668989444926426828283485752300499550806015873767920388054291118365657751220769373731752644633817911446969909289379158080386617190603051743214327752154922995436429397753676822543605574794565748974029386165592772942669692009579479133839190259138901825389237307852353646368477287739015257491666932575014555598387104020374024393826141642830291135933085640194952325258699023574199467595535293310277577477914891543657490178840377088605212079655025171120459342609940086406470093295579222832854631563053868729510457908843336171318399568872120169098606854507796066553566628107648650788588493404173311880445411383318743831841838130235979715544568417085859305178402307019055069438942575884312634087441070313448149997445415523137937203977245925308038935047230468431373235190204236687211922899174417283808150610761352601883550930155876872728511289993015502061587421443592836493589033139592405902828411433024290676758225115601206801636396860754372042664049047964946765902975196568025237867415132901323767609259802326308537621422840295829016148913409641508618335871715624909554057707335978594063253825879920737433990336068970350628953043640073069858449420690583554470114008623197288889343752317540454554284542554934547151570346923534783668489293774892066488236779477546856196277067474439894797646981127810965364661628993520962593454379984260096089108508320072768497283510589903221405267049312242885154595522153733243655862894789090076836364298619651290705840213168888015442881466420405912306490170904285172200164667530602896231234505129088812541321266135731837292348475745662247653539228881498984430579584727003991015918636560924313397879706525887742461075861944367732831831571623145528478220784957608499390356154850953731651810648683788370727158545371965700680595459317090101150840455632985385627934429594185537639612712419947461103733266387825107100332035556180259942899926468413653834905234980188118713473353851893892987790130132061337216061806335116640162359154675881386131152652625257661395713807950490784570821184210391379039204689588685798495576749732737249842443969427801741223170168199925068024865235634130944447167762447292087397726748499568614261689785022245173644938075307648179535898988850451847076547128816612213665464440238687719418499902528958961299846759523116555882490706292628793857922679734242877645899312227857145343257706064383148801166828675275440151678735627544328887537261899336599044893104670853564870464076697031196089452259004086606616984679161469192300323532686015797292205658153028543879021514193967491708706985706669992386273547927479742906626610975291747399056708488252347441330756265223485482599507294914037797295017774090450672838890223523817921331244185565500298696291545467845791763671188759341199995938989506205988744070493806962021175291672656088244047660535834691251005606207764961016310735074747487346525015542909271167391834726596465638739589125824550965727233505587270431604725369241468134317376162234608313889612014434496435633196481492039937850666229414129262848670090666423597430983946467061057188071465181085453279502017480712309632485039315677358262974311834462460778555771517997198525577712212322448144539524182889448416721917015002848493156140003152163873953032831246423085464487132456337562447288001636862348883787551327731741591104632422940945405885649865314979955931223738764655390139843291058787216893768411494384606120407909822229027286705678049473388145952220889699038786972812535669749272128751267246882000519572237301216898313776497661069288502598478439323248156971142892601489318011304073408016713829714520718805977818235001292586823207132394523934164392083326869363023995017932113698119415681409533910195843467878461783750381406852228395412318723391217083780156800377243336768810612208464251705474589368103804919545969557918104697087813610364474622507157392094061059275099784297995220453389504736253634006987846027865812946927955354313674319269813904545304920870469639346545697370124009151376437777949759063497262166119840278479996130240294114804876163808269528772965058260900039366251652457930770049657423126267839393734852748064587532766043081509605431261134070006095347289921574454936401771366056019489989010056917559145658259742740234017043181189171716642342157579182197842810980000719384135738937167822945803353539122633016860267639342623255656683374296845432970110949272955053487110470486945869478703627715343555586666578281653290674141427817535103852106509368450095436657166207339706968428467230196910212612436368304760056798013893724274073962160753349620594752200064106157271775673445208458544395767101910290856302101683627056643892164649166226462103234410709024307319739161289389943083861145822810977005892751239558924759960026261939025719067305119946047859578523730724262542928126956934537803984906226585523585492027142594758493272769642639341053454939736710404958056159243251809607247410511794158578589948529731288978198564360643498215019678785257289943359496777526265576339106870720513111987673115622107372039002742693545512801030310744914872679924607415398510261433750483310865029592878036937505495864432089707042941541040558455025963860538295902923532659804669678687637215748489132102530042296108330469715577152707635247039140933434688272810447534973379557119724297135180791793976864789203375871407090421547740206181294771984726357346953184445301467584829617924919228533733045245265375283416699163097618790774366074130859013800505583038227468996363819083734755434575943451415525710047559954778322185397160843563050876533233496706885231767404048594841652615176686859800711383746735131005389007959469138726024941239106067449024469974927481569887802087772969964117922348094989897295188878012617132213028832377614831794660019745177884700287864050250906262823053919098467665086965843199913064831069840331440307081598469000984756748643955319204425356546433128974964441995245347388348683633457027405170478526476577207239258508728928531928967183767961792963811549373054332106868109854076169794146378572387072256865289655166542593144816033448321107085517198975646927481813742748025569685357943321927882366152936575887536257987825230811011910671266170748950951372994502017338554355187200723798839889813580342558510083414177947523492453798192370665122781219574815614193781010459155184287828591931454455074525324312827516285049499732264480351144538281899488538362689693162402085601507705122362437786809138090291593894210931116352405923086460696717107584154100827734030038022926748267608687164568415431622133132782964671567316534303627612593034578993935906647047238652300733863460661621594045502398197728493098312630384084444652177570179323078282318097407339414701230839197176870022340166738083978122962058567583662503958380613971108780664570361712595867875846995077050789388082346596794765054074708509864061437063572156252750871329392752772821014687949231086043185483854818025674412898258613067958984946857944551563961654132197183806864344372766952186194752137756456534101357337923485921308858010040569621248836952066044866802920237874862778831768816691622805846755830220370755505893166239284330323695255473881956543061397496806528708946569610453664070508733271190560784039276306978169040933455694903035521380640944638192142330208771012926238963365760285634231314927720913993991350192631085273077701832116072027644326108498628707029285217081937884864759299703094723074036382468774286208973637729682930822625977955133024304854809139332220948612303471086645981343049490817217205652434060274184711020065647523075645525684709980841890161412209910863066083061304235102144989325651173145656778833369322098002552838225364857182510962364236416310687456927194938736124624711470344301958749146375697524003976327512745198567045303018960790183727744819942061296192982682630804749878170730374042036945241623822452106745071531806836173793088377734011248263441336550496047053696947525889729442489468844813851492331045978016918392364834019423894354937924744861375484012355526119559119663665293845535719902098612748042802346281072457757298150146510661932007778630900659448472854882983229048620123002375917333084501208935109725449967592486145481717724964483258563046367815245172193128225391361344644550504849524489208075890171476322792988439209225861674466921538878768093381990107911184982700078051740754952126150489950636222989455603467387558959378770800259841400117132238456408171846752413726932260860550949767276512447446356665671869485024342932499055886829036217799852139013830676932841417576582234100066836904385597389268152676384359261007622161161605680986316872391173130884059719840498301236789803805912384327229368883440336543564391943190310297463375000508305141484939969649232421480722765825732185127658928076529864173069254205588088145233657172241705867616539894870984810303739364264950657402671076108128024776412241936780763936525002923475361071480028341075466998610647184799272934089097042453274811918798761353517239511916196850357875528521587140375152642187854441952189008211632757508536879893879733531773694553978606505737259947052477566802591651236393730604569801072533954653048633255045914633883118295788449980948848256234931334573485783651667465764938910488854753004290373006150219082480593660626159816187102598637140477091723853381389134825604379474310463514865795724733286554970796354540469381020826917179445885827483746750869665833273039078271798949385403370337583744738558934986434394544311143608190096244807745722386792661782510885554123011761623572070359034655877819442535705937151531790233848315175130570881721276379366273288776709528445071514111208600733865294421307541527419229923239718818614033710183993311990970124861584483462475813712389755200889363604524215488274704761830641431806994564643644159065130384736448196652963965609995856308915562687146402834496298953185013080616797843667947159630573363741971493627458713353015968307886314195455820192396604519902099668086856028854805887651424674946873350854637737898544194622088629426013857748808527432604126984931330400764492507968172371716098770100078381083096090741164781455846218893264728656840699514581441090837032861318276859946849227690173308630601687263470132156911073715183977349242737511701127693462406425037998513612075067774769998368433875319626014661320399657529928979280634679805646693105294917708921591588933145152926494424616377138056136992139729410300916972665262528178771118170239878946030013521963820278828251932997684305935786596066444168007734624854615009317964163578854897140724459784588316849150927858223345158466857357028601987000479399236521921401155972836150420827747649517483958198753635443476874024450900473042331098268433620561139268438845255181889340690489900569843725363150307305651498013619110950898935570864293950316411886823183243654864865439402906743466999337024202099620291631057971296436063076736363343443418090998853119454411682186738329128750527214053206118673112752469505084596311938570889245920431489930384530588555586929104390610623884312514593682004856180430254033566263818526552659070222745775566564386394951632774665763292987169777920953119439955726913114209550144495154152770513110837618180868761101446700104119258244645411540231873789097852967681610753053661181920163677861829546485705334603727912836685139231844415445170016716971594849810270477515874987099181685482994156306049477089991276113148946127982469974046380993297973965686061323301788311533787252507451563702339191475535143508920313826655412359830101082680616906809524334501609755248284661085399990649164966983309764787669179152036465323646597098615762642905766898737793223105071442519488684981711823350967501572621297859791000288174222443923138674964034342514467099622035336775863228998283947695153020230706133793315568527475359526573650238448304199021642730593521318545750416887049030826478576723645667176840281822918907071064007398548606851173433567097263677442007855435638370730868813963296554784005934617243042414851766683007239576012050897748336447257394049031949487026822936411253634489546098109063388215589538541494323872138113405041196751359806069805804339732629786263066958512692351571082751631155150356096053098699616839006995868017108134801349017885005349971006291391796992229189068576414810158031937708040036176968653620276856208124461988175150714955771562900951934580030715672787287613845457155525713470617924829899021067324661268790542398191775223748710774896481623548700404789450952839874885817474929496428337025343745773365001533648598990293710831014321161683802342465016295679249093706419192917146175202138913747393606487320479098012818462019837808552999012641619284155869986658775621718434976679092583489767874426228155234111941356923909227443540596054714622787873500774710517804993150062103226870026207719219086562959072130555860057347253933244862061902194752324299903617994221426147024646829331424067197658910335655499324487577858500160459928049049292970406716054803529990482939982278481531376660515926430721179770047477084162503073548055980640818952378058987419590711762218038321434558994154627253535884787989464598069458198033873479817145291306709211904859094156609790945803812488041423457486078083162404956413588877139731992411812673786711915441219283544520532542992673547487482566857426432040615499167322169796141428717203799713808261609319273079647177549466094191083883822918204028617443639767897017687540448935936255193873492165697341650080044419092625153734033287821275594450621708853760027795091431315844337985207511297117184077171003624799200608498546234665901269511533117095107514499351978634398613433398487513768586324342548930849758666434692339499669800302204074248131785819265197739496914495473640393606619934729966977862414147099243414252010989392332280995458199461360767598989482586740656165062902071463988840197829364683202059001830742651240265184077585938202092396558672368160673687627959533299616661113013557744001953009048394150251109377536451512023395785778604345567313541962094426984465506686639564030727856756013513552918086167473715648591110071766031640840711619181525446825306002572724841975429615751213677840860111829829109993384482678469345083360220916087129430322234140064717351189891710276269051217175309072634056049984128208380826921304540621727131069353872597707028892837300618204579770879624724676254043599420783743676615512650704744288489975826584443896448168082310954177238337394586560236861835434301296927020807883597086014856490572251944586771192654034589128235975578725977539341251442617373929851062047202122236281760588975405680653708482830887563482351960312391593171558386663907258557882603001166905596307669923018904402796194810342457108298853286951972290416992471108058678932049729802813345775383992726637593106712416277340547131496645526234486807076084571147098408732925662836668287780677660624148231554924052329074502840454393518215353697027241676403450869612371068676456115876399877854432775979341903874377170014200386000992379302813163680059897704440889639731025441214261183586386271607262403866947176666432846922617330746781855855852947448932995309617571657749684189395959154865828531162662216331452470442664177627674083005214440044502010371964331190380209503745557833696581958596308425976513078409891882767528662532517367783803383350211093748622025974933013582994702136247181191904206733200212291800382328910940006937759660659002394676403230068579107416871592237488200256759552875815509791732303636726112221745349307549692417140687239817974646092867795182025273551880098176344736685023908924949563389888625414690391595024352844531623391319265582688965426357531383942939327760306043894438737615709454599499103385980199311743131827820614097380865243975061881519052726543776555760176628003678491012545235624470697928935877540835802515036597228555204417862023428382022024999230160737692467146027441095921305743334874537922483640944723986802893914054812171072973687107072901172130317996180779352085865908543132732473899897310484770221563991881682010814450667176710489612812414592359768607289758834358030553059273502711323008730499762004385510084708000626727589571077621554857166989592827317530520185940579312248027378499276831899880090702426478278087025439613182012291852112256051574939574177694408022769589677252111855199684467048988947117389189354362802766589098351525397466893082138423917833362741562507479067767195026016928502159743279110217922558520210842643478387575855718846526869873820395777741888188085345977905347270591685723400447376871657483088977675390553016680513310445877010168759595282091997398776202093306373004014970342446575076685967900714806557575747902384297869231192159378906136167647365549912123621980433310479341462183638181619751435333659235882451650441147916626685748289501065538812074143131161563801504479949060194648799767768421872047668285311593625472846527648603985729265353276011994321352000042759105348094078875277053515213396264533103369936038040667535242562581501434522688265153638267214033158510919977281512532144311792600344487671748142911793917583886430834093384397987822483445870486821171568489905092056335833716422884233163128310667386598369000785410309794822344010340387355779210542871819951500029164788921774267630572906932914281523885264643729986480118075338877626868347872846703640699243580536018508363880696929025692322027544206894419996289433920204169385886169611219283505122803122803279551756051069671652994918104645470513860392197769911627956319197360414804156000263469695299376123996420727706873105487769319948017798684407305914091067684080273916690648300445747155333407710367127685577603020894104818221664550306538969002293661467499507812913425739376007956940497250899727411493344206569490341209666411435329905326791304993595312226636780077493677539841919309891009135385858207186750876297211243819864948760575949204539483566981618997422850127683444353691700040454985684856205556170039238067856175604144715129770902864754030959657930224921625965155430383616195136254110061772776107369437232027569882871298020619564646912723826682728305252296149322751728640892170464246600668019339883526635324414381929978284789778317007607785187009439557062756163876672196625851307364352366437769531156110454469922311498949991226295735741716120220219679195972186305338598067057121327190204642228319847066178726492592645370717387597783267380717387538575453881923257028726538950117614133839652209014722389233618026198368605695301153193940186737176916163527679049879769146094159120766470355095990583398173761664511107344998822604365226695421446736614236181318632165228676150201335130519586583875313992070230521503748598375391269609601803970359770670217294266856954834001903573456688598794051588944780080670862472030606337442114899840184406538274242895240328535177576416688919917081981826634697005855847784481338912379605087900132597904798959775939852194168060521407235344660904773650345919507667322245173698415261694328358780046068688120132503674649785019803397433771340440179272714824866596803433605436447763068418518729072179762164053623627025674402191051413647099690399789377698001639793602532723389297687960343214880473600292551101438245718808540118540677439836142295016554859599394982408633423666927400080818429854884750544381128855651038310496054065667139871211972135903923083948819900672925617807634912670143316450988420983950286514273574012972374682377097965564148692649285936805849451789202010391822875262958305253431601737060260225187351667904598793326499406396883164818699853925460072823031669190766985526176169096135773988590693747145844451117423377757504283917793189816000774255823568257278315999052043578970439479028040590948309191165315741717811157235695095181359963492574409665040210105205879572227974030740923338987712866687737727381829308039340885404553440134021820241801511873208616263547361222752568332783629232590924700618440913551067642788146553549664002526782971094365354856437631075965879782177424191906018079044128184639880883077948040816958681290416139862035608972758159065314918603157056107927103606746583553198497607505515655887395376569606832725882448231478565783767466150827986748879559928900505822894353211873884267957438935604115218269357070286803775986132541157828451853664236416443506932743254405855390539956612338801461128338096775556877573409760844590296762060750998186252082837616295028782461247837244850798570050680925850338062328682412696453751617084027748082952600991510542192447015606677077379481414933051958156971802774271632022250743323267674373959874407601303473084872774363895196002122806201629577035191519469179622239624010986402313374408953226180543855237063324575145136709899343912641811287127398640430613563721920991609842533435812300591570026317563396376047941386114796216678782423533802065182873216950402081840161298415552644746806920145552460885196392465802244088127526179712414412435006482229625163976932527695688262603248465293840018949517455589735574549166294123625221156854285585194347025425210532904746434814993347645006353650162508969391326414634094979885604598381683834973224338281025455019682967921705821019226686106592738864611517350018785089842813446996240166146888981267864592435491513165968374262508087078963572324009563240173688759798263444108965497055229287571379748100252678174928014818565971324657393815076700823288138965630707817582567961765090163478186886661385223239808075808656367984279885519598321126894520390045068411267811634716231630322537015720986356966336603841765026870696524933648011797504720537832410116963798981872105890635270738230877770644902025564371789696714726140517605590699239160848799326786441245697753703961089371813081749032533854451688755549099470763900976508304518485125166574968260102462532293343444705395152124714845400844093881018071671981201956871021986244333789884908289988558657795977168805954705096077603812855297703466591609477633255434100922779261574387216678418026125666877266504570757079371790363175256817541482541746353228266710411192785468871164898461437907836085665593976040189950051459595424443495808236053352506217532932452732510690698749720026236059462393307675542024308799493903234347395578829319375896085896131754310981740219838086946430999244797999329865380718435779961098228002878132994769589798165681828300817288333671077601991784218586631824851043390493677169676131967766601836563422141117618209312951405936287912666553831663858039773747285902585053759603348949457990747549074817205327835455206050559255556591693104442758692906742531293015341648844550252921300730304140196576399386816090529719197995414946936714454151921503202127703274349148248623526592857710974420686201828934465381213807330444579012915037840399182428648341405455082521843489400032673411418824699905945490981300309312457440444204273110396197317659309454563886069863401749279915722483374360074471357133668192908928153523444177899780993860520861191178983233444829363172592770767009842948782844081885357109269489859907319080140816510368800096107326977178803610320931542357066124572646450066475825265853526149539103172453965246620053158746307949526643048220167592895469169837481009911788276243309635115749650089975166402588308497171368050750463839022011704609075679040296772009452203612145167364048491350205586622572250378802572912478536708272554073373356620058793113708189784362667288834188556821736869336519595193061369196827061526167165516113868919709853566421931067647676921588576250598299198092312794909295568281776690084762669160965861300960644572392684279533631890273703270860398916463082598315858382620855549819572655282160191503313297598516113377812223450709848188597229575289159164744222562295549774124416041390491442909422664943507910254338175164884006376035226171397615717206268720707800406821418345144915572687533367134743802024083049487844809429811892577463710155210693138905551134946873114130973309979578310422879523129992690884612332348506979673083743370090719640735035812058407105611008369604202064010813987446362496945164921510703036102160248096510609735519079235881456802928065540132254026571504228757148445263468930335280269334786584184232666852064327368732839334593369308851544400232205324862276894660092762351649188624655938949138070526048659904211453113697909536511431465048041020913371809737683998258625918230819399890563244581598876460882131580595586707012654418481095794551965794716125983694738929664644917264231484575022458079511538306624989555457254787887459351188990737977065564161481696375133757012785143046148044890033435839000347141268083167692842381926716361604456710440613590974917852811855265483831358367235635465389411596890162107962566959100990535105882039604992049317668699061099006381191043012115673945209871953149723240781933833766407929582977689822195737692525093088977048623131753469559088203016285657029045544100849702193027558944746955904783479678001944452547751697943476207754296961319409549819625950080045547132992672711778060707504188233002631846527981934834275674979540409648237830615682871531014333724127178702620608699778366951157756045481373626591908746540562318903128878341652917773507843806293686749140268263584584622278537775599583939003023758608655777052499536690230398018836063639257367688610126062683440112801603338595122771846574180457714041238721197327335116692764779557699274612670486579213023229226096374723471512124388540606729801531423172375253504824164117036885964401375976210585818656009319387675675297743028625853395826191539312640877021034389733728631446627185110166505893173630655514988739098033244815315717693946786929863934570572074555483521485631904970949227160912984653502718700391402870909825187073137830496901987390482385737070104338764513335082697250861206292323339962001592434538644953310363641329098367249426339497295476715389692510629120326089427707447764047007841001402966332681386995827519270226513309063495548502561926416044202911232723785929656662831913171348925706050852946097824481324579283943436257226828819851957023314003757054803233007646240436524322905617998213852360981308484350627653588940058371507466699677410689609015698457652863453001178276145771656278267859539019927803524968520819666197608544776990489632454031682714004954917075942712997571969177309295119977767553353543198339384615106199386591191991905081983018786739907753579253319411316455875628699656240084708017950439114972880081774392260369279271702895887126602610093862862843771775844732931537934852537888704506996367789467290224582618731101157061137412364122997508478001492972970386799511407775099121090674068932883530239538551729601319072463241221612701282458178293701542039082817424885503157258676649867484717049115367080788715411740504642273462424846364711654989868119609286733732055650991610578247332425181972283788005110610119714087949500752794244888185909083924786553680098993898801345563725923984345930556589557768078937259044854391013140800472194387952754359086314176504383718968633075064983541197723547313815907377768929954908207941136862100104843653506435034339382371646789040770190542319600116852207858324396776433822882534372368328460876021718864055380975632669532224143764946964207113225590169980849483548502472369746200406628177991899043262692728538605756840141932134378207698337107573199933055473254963096110999612195154854296179416487314550731639223408693957565600024497421733707755563308298318091968850137313849545149613072939771231833093918137469687242252758526513881704632066736940073584793160934722710914534132768444170538053424526937484707776251747357097131946656646700702349838436910600068869788711744923714049926132281180075959473478552230328369094857585607474967447212113227485066048438156060837875087714622342891459739889942089450966338329495337022673423843211323325226860539499326928794463460395202307937143148703103482004395415446265144951381993033495189779318363125560204648749478106602335271371662458438904254444315853476670055750598307290163272811540395185234520504255202774567233419053866009611535721897669974240278702688783474289912511897574275933124779740516193147008980621028801889712962901922346524894582765578643476545922884824399911757396458342920131460982645790233540026884650943446293715305427157107665131913568252264137707822162746708808330959327680794653214720429350549201616348045309396879733385672460165565176705827835835667105473160449161912541776574386358689908635288530583283119930838913652837315550596705544332651798994388154740466900756269351729672453891678000233516269696837928705962130535366372753413965016257889363388208890088560741666768564368260130557941125686142913284592292897658541079140442271393557111679089227637889226181824201064837879021933118335022554229431520217193671708329261955302611625363617960270469012084315762328874517880467031454329707515666821251090130851932617192197474634600838263546271781809280343697586824113139348160362053510929124613816856410581457422283287695195790614889497121020080643009958873414847487960689412156917985746839889769264653440096782110237017781345118581212762572155822750976893123475074177833495092983052175826823799468950905137982140703072950556431081176737147913023012210602854142293075399562282352996709575188111329573623640007102555193051931911335504512528007979888786152563842200446299172229605020821450427192115733476348128702132685938009309130368033934575825144327283226287735500902602233161672332852534703673647291022030317348609107152444655888685196078563639716020247083298376908037330550921475148628949279673182166783614751692908900490169298201765686255068622138953919820015960958693797923341014579627480614770651565290753148720293178792525445174766976197482234018241022242300480702951905512766110256935253629032256665187404478956253808256860604948820901884094236794329626967958597339199226660003188358091647983305531935690327589251394128486678838990133236093613245223376219844250194722588651246672916796719697701385892546956353561497666593148035131984765962147803994201766482770003249914336305795027779977519037234921316470362777820919698810568511350345661045196610660755776872654764675449202186926894832739072116908679096898510821803953357192611950952313685607226743674080211985868742098546694637273051999818463735966864764542937627948345586652013149589655004846741715355944407313211759030159877573975705983504773374295853259369130366041025510548443980483791874590270883581408557567256398130786146494858724902320976744616117060752408521945370989928226373937873994082339348136754170929707510330636595692134709316534762109844720719461931573377630150682806688112909205864716198617356345312477193262116436612021541634095636871613034345496024956878760172426334962540653969997304529590248716556821507198476923780961899001747473422867415703344071934609148640590428660063334174863738877627283198828302211969108629191309153697959836931739003153420067320274480491391345337184543632909578396511579347344051638992237500311653046131352225066339818510166745083255087234368992860040346487139552746077368537599751817007028397547331383279714513063027596055146506567256163150369691236803106461814481454937846179030654580295402259028240825978144798160748161314803907258429711588128181730891199321814220010457564106404928646882953959524385964492848690226233706391037959416650694089299703855574869143962987556963413371730083040404262547524513279413505391698937615645744821763623785404237261265665686301669688669124548979828310391613087253321699463831497222340866276028385895726070649115231012088917132745214272846698280670988108199208895886693503127842462571992304324386339789071671291037941903628000266828129785453096858609924210242041149162034314294008426858171049137696603994368686595313703105013106492259570860322823840355467262246445725889316143127880571110231140742446819563764021956155887152841931356782090672782805237182885486572802529676973390521006154520126371637178100765122545649989917359325901013199352676572531357313943446341410985039699596189136380196150830411354758007640075397398795580440402046474465742101449299266658147465308416462405458933456259091331494040212654814190448112535378178708418549856047057249776675984271860719949716541861180045926152681920045796998682799558144047890192291925617364556132189228527517577507188477857068350091252837053554771984809642630492982184144569833395480883025709427539757864236089454688740129739420059922598596587801737073504189165555855167958336091182836422456716649492036206452961331346153296111669942727004029813668471449803805274154980899066389438692112700662067359925592600716041834846921856734622235316822433403752281864385815908519841829589257674196194044748895124787265580869983593168946288597097146903592975445456462984063229631249404014564967314687190911919393766467900457947668752044889545559488412869315825878641469309788534615640798539154950305665165038634515301206676128871297521459140716240459695902576257670702418282380975362265092869883634855717037991762826436593141206283477683841040537791745250585391196383546310376443640549131612316020924335244563836143556396861242880109009774060706719357604872619470816510461203055068520608364921595041781651331434861098688032710314104700690034029229154215463863383352045159879018625905621285765060342269810423566267419179385357979698466566279222623671152610298993539970388426781067305319992410712387757741188271279326647764748689609138165508150024727871258119065492114967396306609361180205092574946832771895807687981726903857996305336300924135757426848931631208553177744561664324624511621468495870664182013123315668783749896876653232365352060116469665184264854247381211400070987122016137028567366879740395986964313955944878219788034008910037653626001801611048044457578783714126457724169909487845798615926813497363122857261347694743356231555668323775103276393350879304274275364862233696091999383433080694387181416323741222294551553899254094411856782748351424798359738316158954524044149562573601189397497863154342751015530355800335123024985723311624295610354251432471473780871731307756116629657886114219106071118340871230080625682840308402799865652719204958963122869282923356760360227666416469057218861860831372892566932276809420080468743132534061032172560299219260723706846530800294120236596619981575208947130922944415570884128831607683561006258829158898644365765649197362802488369001405173962787828597996915220196248948818483777886808797344879237251046826911226533517580291333147594939275552510429415696759269332384696686996341248114955065210303938921817250099578586922704372334717250512392173613283439639428045746645360356800465358574682789292313983314588383719397168170289944103007971648986697820149897178744169060185554605069685490506316269133499720116493720657201591409089466126073021678105164283630220706324540731772392879248762648982215954093975987150658295017260464633146819820205785107033620866763878196297568620268671733007540288161928041276216126441448695201046787415211997025087518219223537888904490975976798598501325108773122668073368142227240741689143918447227022134791098450870545041593460330917415178327401894233598382844809619388037725908821220469596845104872295119409681908240058114074340226232873466415073137351953675365291554226460099107659705762390913786484062924395450041797700990179555389381802106796110890411652857301070634081525799107046074384447261720588874396727251269452256617994322297819464906705164067909195213640405158801169360782654506164350697346579041547700297644929210562168678266535945200783873974198771027640976802197717169322455395394151214671010991792950728819227880377784102218455371749541008299908869887531746817604269654682428930991847954865742502745687907511336200960936607538561302595103600102973598621098961529351366542245487125400899398901266735384574924988251957241759479872738528001929287279401320449849655497847868033364260837683401150214957395017813068571713100631182681084485613179798206933789419039600001522877535834350920067753734287558065558174416315970408540382768582497193896104248276080958635706712075243091833162517539003903105677009182482275187696495446779357205030324719368862224953063176824640708804423036676031178955034067846268680603990045638998747871875741561097366805408517177559867394553898556725189755624656514240224300555345062832615148556143302163084144277652225635308179856939494009410848742112896794788787583183347723557019976362737916142044681715548129801768861285191046381984300005410029943409168027866449674165294316169401879887863749196636926984462809273028440714687172944089792876044893948903652421627908771401416239092258737470811942518440914214448193130486569830418153764905702565489516779288661084827311329207704966916325475378054914805381075629718121335067346337914443734294909125922912966831965547184291880850851470843882876347773986264693463884487026920552945223140694415602860870518204849299029878182200290538100533438505184813341328680553396750139526623299685315966261274148766043164709478528077517085252563428624523151310974995382660456027090520126320508561938668339488463256276091140949595812190691749401600096533404605186688795137126500515143465404633427419833421508144402324750213801370843562257881774124856817930996656131003045366994717656869124352418481394326599919191707640449873156998759049456506199454041181558477441189397752810352299569518061751913138832620670363184455064956445041268076142165252055449750465052268408161529447069442447250622689641511942481612751259292999418110577519958995646833971627652216648124957933692781534746411841424665638121005444377391893504331998882244517570284165764046369712429365984245162266056307990718862376088551321802253626471217722965161628923926165229559333150258182747506471800084753238768321684665634659960405201214081706289271551171280086105679157764361956602329101139842533089933214130300405497631860971024442535407701184620328820259894269594350926386054149102433822927528867859351886161136416983296596167816108034644458867666176343901818659070850331284414625247774503947969537987543127642496792144852819690815628199834300264389256754810507861250709858320433055312447089296357424898810438619497334153923395419181482954580789239833376802080335014946500421483573844701559253046877579085763333087132079257316381832411576857814104960036924673309511009395820349335442056620563050001908763264457793512298047082090767712910230563970825411067040056613041639566415557962439949039203221690627281057845715621062808532078581321152656774275620065747078428604737888652658328116560630014139853715550747802520198652752292029427350673214353563708886051753050638202459856077190335798318166204453853208947610027589709474762002921679668065335547922059278827565827839938399490173476012971914188442284851514754482619187331668844612344610749648555145967206019073757144254859747811769590909975385848860719146197801087147709746804582523763157632254085972179059170487039746706969870475286457520668517482602905799669860717568378074682993629395767172491553355450066773470913074877862710191926924131742113284354313417282080335956533715654162687366929508157782364335324986596941460564651078312803512303270385607098455892415131999610108767084932003346085775476337954654745932622689928076272244569960466044725496890898018675722300404718776710706873803405092378217318373616805783048362941859183300906182850785755763740793772523147348502328627781520727678654178542867943335307759667900737350008208099739123750866063524515766477812433807500507343271460295239409681884451422653462035451221804968881690895824580004396681829637667991378071370889440186576791568206088450953845055776585995988311093938121771930866462284377407195566501433619311254290030415511308754420111525223382198148941052840759455659892777088917616507101537712938255656070767560300594673310280216043912928599627481080486981192210159429486535932648942163779317527111418918567367400586828747179334647869112400596649509600875414725335045633880404709447790800659825701509977270316603026196032608819956823519302019463641837530160228832852353812236080482377349422046892467114009433280750544822333964910083284656281016416096010265283314815657340634039245143334241969894248210261115431324066029835594455687306094941929596961140059463489210475520742877337171562729151892227531736110976004874721692022066306331728764263587292084180141224683207471939291659484663751736860660866769000904193649463845389163986212365755924857638948835836937264538252082907272615491857031777351476266480876097560066170792591220987989507371182929120853682546261035902412736848841923618084158166806557172992784047579512565787614534230889820911126208492180626674133461872437047633723489038579417444010303172387669898558159469107452183749286020095269558183555548879341413459968058150390722381917567035823742083803872461437569139714587613228774800104840771148776160982035352044501578736729040922160210165273633253465126099360373646886297866783778967911647813094392518383794162391472895414482071736178715283080838644366933891320834521550959398285926403943923513579091607366767136128770970787623533823201467315217781964296422989038213723134822194398086282495565052443894056655223714780396947541325544158371054802791531879964694825413383851822167849247129549075706379050412148907160850643786815080462663038343055777596426962586161275513292807859937652139867064431848152511613025810873096023674696391057767420048009925016758927792699458377693513322767720055109456512683941054244078968423168207721639116404818911361732896494689212399820515289993221928373556225939649093188868709122334507539164327746748184206759550610123960662716711938362973970689739366389943422569996090556859324800984911610526918098988605578757839701879628654772732613592214869364616726557001708343441563277529816138437172284946777756739739393109653934566012334774792533923879481842122662776902882021916293389813767708596243206577547186003108224572065914165735029237945083397523115979467041125007442436108597391127986079387740880191400585393902375140541989945768922832860931317555860911492665086045419336334195511786809436791666559157543776579260076509624211138362453380903001975141335686236698005051597918195326869939250416996764757509885555123220184999695864192438220438954093583113502551669893290115412874518255652420828026413360435867664578609964441423116123950528700296290384927381393051182383266786304739932613381063761303164741194376601328270284623202753703399854443706164618229529340522288684449519106889529844418370219371246467657352680674371669448572473858910711547639614490095799599934874141116601902330217505233993798989636258334551918349712056340403161740129589251568383920330642673232159273499532566913281297376723290234425570123039409472169982084066744644028419846721537330950873858183972315234550094399640289725843460775104178743830543813320244582175687176767739945972195048031734259718015612480834027655509402952868092278297859443681490987537023179675513729751272324116303554004053156958876593584813831297995014618772764335160031293428553075275028392871388276244526666753084266708392764948876504736890011060745691888412111474092819353641614278155887437526357071228515087638507964826193821427891592375067909750472918117126703445046139535032281150927625230262608310674043420741586428134572073427603287911925404913777250160652791560791911839965241584778660959791440614103195109839506201996254766831395644157115134364739503275650544168106030753019875928822722066052682809659011811659851190849490648880125283431044229571936141443040364965471129289673892003739647230185158468486254533954837915166189482829418237424545198240179210874198712211455222016483152885974392752841699780597872040295164496934553458238812192124102002685911612068981959993778655930888081093820993204550725890833782054554667987732343754129374547474492796513530951536902596129880599266257311405194510105218198115250732927171353157128562336061895768696179090375820741643075127060381170838009904175921273767384096385550691037887281383283629082276775321845436090510150374810627421135098401550535038395317020010939694911448691720431414901871074046321478535060621091470226405394346190689256328242613165601936301411567302098002394349480957317460482939077785688842893424659385066526152166611212946295488804660227737429881515531806193955201262330279255565756390454132113156294165150501541640753220187674843843162642982785973308033887145188275615577991296935511769870494160238967534285100341923999069708255467810201936454884552847532191089618755490134578592289646919816857456964776163021391011000788728445258888732896634032410176187752703971938584716097842512100123586531643071864456039281552320683412388636814808429528601925869780922915603181969190724083384214142987409955735238776222237719225478977698157369268779956569155638416988920281368461911314086861397146527415942518777755152988877084960252709049236995491814942040627529211518693330932225535778067654710941236724224275079273337028700123396894216421178583502467570488968333601293843416886585703412254817714534575275966892796832364175656049723390628361346785974099579771418457857671384419743387107537639879209840684187545343728393088738837188987467827489876014563412735007602068336894079430663295348768407862145193389218601627436345711575460345752128943783506039361967582163799552610960051710564729215804874261888119275402477854183033072507389807004846684469068207429321159156015093240278087372650045441630270954396358402436819656442419195540322115632376470494851404243182341547933393260583448188826755649879461273625054884465325007232796990072526242776399494169871708843345943088386782115438634155718855093229273576007454733434781810369082269804836309645631069820834876977930431070762899409541984727258530636199256342007583031123298364618133722290696406192627430628255027265125674010894241789072918074942739914374483201722528805192599456620517042198898943733232275666090116413370742804131864723112210090216711222875139951056815025402957793134347880901761324438045427072974918268886787228088896048849231871407200637341479538254126191942895090387155314620662560329520356883131923681307241498672136684379622659087506414905303677812104229303786258311704443438947664335490040866615384913037940792966454141702916843731521959768025108498361117843483591638110442777407329140648888686012035308119588639360284743681747290493507344324953482849130843214434154912052726152462630737817665711704201512721093254166609641436982176091813307122461897791032938682637191613639080284431772802813049788373608494686008777891686001380304896667552902590621772455262455354119397555143697081584334820404598965445274581198794924467786076799304459091939375255821888735681056841084900848839914637943580376237421516648635443800455471732465915072398634578108876518678792205733653291823380991366461834349268506210208693696966580791080294885499682432793359311955193946750602413741629254985566725667540586444363647618539513886597491166000176117538133060388946856248836881309792686059457517623200553218863809452483879644120669975773811165517067425361959397184564285916360547712282150788728143893226704081996546324015114135517298488121813304668541332128216203837370439926322916212511401900153561950754382396891693498176476459274175598687004902790438251343002718918805920521356302346613324302210604999580317395948831309731207071550270144750493879055029949458410732295246967980782547552977603009176076512850470058130956651206226036857717091503569514702598340380299174097184692882827512029094664168773469311761529521070489006454772814948544235197294444166324378293653628077324407148858798375271280205745693326786250387423250118482216664051414622527424875066089314464078851925606500694645035165085890433772922138183763285333133770328485688042872165170794695457972223986246902411924004541682546562284577309386853065569889222433738714036099466602019682860160117391712176325652705460488676116844024934129867354457233575660149597222499588344499722668851436040820410664331622340297834355594971756630608353833974345699903293814416392064706427949948903017057575394716632628438070388405411939636865240115780586403679792484486154804901530253886149162069006541935150322481057502335995975184341990800784213271911224217848000953116095594860294665204152750550418765874954471896249443613383990978040092070710203572803993712777932986987515770645448156925667226103442833202120257008640285895033638475753738453622894807968248650045424119145065156194872060844513198237907095882199677906987299087504609134663902253402290944078392919435890568442762827260655333711005580240948734225469887082831823438602663800213611630981391188132416726892315831147468518215699307255825499373046174410075300393812045658439971596609042320439633893429885944990970412701175540826735567371169455219986826296123957469716937612217606026004943896668779086394570101348863461374002466715303247274981594563697588038694605564586191152355988858293140079873623268387220809783672544425107390638845248011849128854730554325213514378397558106924379229836056006412073136071219969765985072899716211987301650595975590070539721495917216908046589047829876386801870584515787944699237125242328925735244038539926895295139503649135759286606061859673590934455571405200551516816786604227776464555446253750288730209063883501700313183048145789680935597946928675109336423066981375452330051606123308860805368767212131245997537312373719417510248723992388644718628590926578184190017522010197208150326232503256967647386191178891395484761918916044045207675110514110561884760067415623135557150147455734043212843418385623850913425415952072123884681776363181965005460885919884620719207964336684456657705587776009145752166918780095900200561619620961936103077188056549450112236583576132657341760776231537009270711197234044133354692468999602320050714371197547537406461275290010827824240353449669916415414007876956038093529813006637682200514608362241722260541463574200339837255958931032922443997760668552938783756256566136288723546977101306487797085754003775647629805216529588346927923495527380931416672080591665825793157525559615803703767817606289470329750620630652041506441145663499877978843655830872741645653274311828292387222490190545604467732846080299452351482409730594903628615853096914890287277302013721450697431339803251042703548521496242360995304887902676477884656737798242829864742567649490593894579329880408500909893996874812582367526151144077940374440424246589574057975095716201994180776738368055796448420845721339527599683522716703506314481350684744658296992177867986371016728841279769849997824620876986501241316690193967206560671256198481836744803811125600534418299882521977906096969795796090711229192712710230854697974606239972277874937820159697411453709281334853034147552968654169790426660576366633929088341162162577149273930845303717782680310963323397053027668603253416857665960093712980793423440044373350534328967040726355753615627964016505237386979854514029754968683113520943114974076092054709809568043385987001970012961152081701396824393347634661185303525147691638580880684461496508248570262326380073689495369174766070450217141536739177261188513010031494159767333136383888119223985156152046798075535018114476557442006162473464737449082023167432293000218945455636668757504012719771677310739342209288435845018811357779452177391053850057971213332618522130865778675777938660318220398645113879974213916595704752857748895811645664760094553542883443214374691891295148370445932440106527559975033666210054257892092802682820273489986282045944781244230022231218342094372389694010986860375408487308734189118493819380349884548163084659994274233427411591603274108631502506805630473836836632737846402824874439397073411663724369624340562434795730885108530949029690114054185842193793598846268307813884922903096597881248607276885204740668127473091245889253764170829350979814549076422190037236267891489707683211350978493416421464908307048893568924566186420570738629341914084236541810996841219113819277675907014156628603436914816149112017056152714374787391073148914539939513098728206319208101344720333460021659312349644333172592713339001704750546622655885812673773951636453006011292105719256220531651597747309204607958244179847194139144633155365442162355017136729294816169649326699328538367825887244238469971548553071464377421316006857634011520577095876891011976956312350432330419982313889681037848971796941650659443944447260387196255238757393461734690412995858066095272968917059781112282301092977508173332542681899287736177817130646769132576665029307900680761369013462446932756470417639299742899998048197196288093235691885083239339487011116823977786886147067260805607670265799740312307592845198168378308420943612362110823513647807486641305013408454015072268711643995747669964298318369483677975005358938694935770069271764228382148112446880898227125437741407273578676958494355556046839675237919604735652481850825391359371211311941924241390578897347048908159044836195697462400558304603054076998795740079147292631208588156710616553117457626441117476184914702912420175775176069292527174560216062042924324463364603570029534394427849878429395876297822049107068791641987001615118001271030333274124233403803548006740797736586658451787021747472514384981173636084254335023882536263161451810228606725312479473286875898107115858960806777785921256065958828292315919123692301370540156097821195840056726497160136551712591100077686679207979040931672424265041013007246442275235736208970432077213168382210232186664985917000177405907213068257773742326668623738827127780510039394320003346777271264469589813880872336663641398896060578000268630653996239253190931293328634203351356681971449289421521983509171770125793436973702748541906882751800011520404785160133897129461927782139256200762725459449223488077324745697870432879611940804511785494633689741620836606931112833677680433009150916850784053858451539082519799579341334194928215156583774582862021600747660436635057031983096328635665764625114021921611290260431858442371067588989911563980214370824829842006304118497448290293200962441486970911323395825504720744913131347446653853829350129913526252306636851650186569563275308887713095953886263788176372710154485471936772593113598185702082453520928711792682947292184412049590408588676721337680220854629336858441145329768120768586242054640748001109593251205180256369217153566993032106476628257575314466724497993395791387110509717978313618673663105250302850680111477373605135319899801665586594464487730134518001680548708731561625286086925040321366523984717850504196077784907342975509437996217696779996289004906539748361375863669927631501469045130424569081956284177040155935977950141758512152902343660905329755792991046173115375508207912694855745785998197322611144377530803929299416306541805887159586556853348900302618329230873258553508704591636527231560107908493219386636484586088670133879709378762521664683677218049959750884736113306543175213920511384194463853077276011898223242638442279234849589271198292903808623926682488202288778534692992713059438351394410926668262660328434313663116631868053930465566116088504953224958337047548515747719222192244461447243754110199618827755982220952110420130073551543078132367748414925164283717399103443681303790470172149409675411571166717910800630326944711289798855829649895446316756359080077462627204481041629857753082601860361541519564381868242375785163660184610968663355654109053463460761575935738845614912625941431228903375642426735696468060799186803403164174665634214945214658225098394443495931816525399308270211676570210381318207077276029736944235612395565055368309566958954752832400070914385721578326968762385020970758832814187301406680053498310672786042047564166400284591895658704482679300550919188947143659765937010791892172446716503421438420070867585566418801533614586536351187265082504691866425236414297790543632222501382806034207195570428801289375699108842961710299114863509889378521655992883051980732186149390115942412431207599219135623594505272753666130937434625330130464226210036428262167166886723457668058796423339077194760783490785535505086376911834471235548834023305281249729829389788722593224094120588600339627362205060024892704497756812725241364881611489930885330612757524653940717825213583036940463182128159163595959048757113658866838808646553283421233937348456325305456292681507914032500838319023819083264554419364386353024812582783893860857128951930482596926620440616654312977048522300398092158529232898286410287842383557939734522488803394429721066443292258972429099010489088780583112663748892922084323372611125133699375469571289935436403142815103453393233457374874778294945670595256171751786862339687733186346901921178596891462660526133533513639700735295135089836718824931383745584215643485101578159491720031725865511020939360933071348273773730662533510869172790716200277010248424620185226197990871052084239660040984192439456916223601526534583912483844606506428586720477100624315933197606034893114583118064881542681179223327321326468856946705713127714155193665865104773040889507937905554269678404208890943631931009647256908366092050347188352448221545543213235327193314505403106707868208334080584048163183151877431539868778493524830673281096748257848444701364050002668450728832417234481224032899678775000219723895811540361005614767018714575849101756775790772900497461957100499467462906931544170898583632881971587461933119497121980180301149194823840588511084384910123358053933944338504156541631735025818623960643529418443683753216255073370547804580110696946839105011621308531699766496787738489845827348890873274539634542874601448997843062597278264075712230329774996608004510448344924455540003254544768518921616291731928227067000376182488199757447070041280338006205420634412928822439083137539590569344934224018528648913845392179683118459870543793514486623530323925480718137400797614342965358933099385428120646310845039860874645037225891248848178392803331410047577948640592775043521548348504944273731087773656022337116031142316980473863409636838131025939721926081154955049598144223177693096775034963124156038298856043805345638727852699335011949009192828167565635923994978988273422570736420016174501404700600044186598234812862785111072388872606240089592603164215763275291867893729848965839225914145495930039143138901285831027846853659799099318151671763158982844777205773904971867699969058125251244361413639801404137098972393315439504187034387182312926222973096085072141435613413114726016461540450269817937789476558180097555099483932528756143912697907882564905569988227707131712347320508011307858270802125586427340452051481671657899853422608840204059591040664893889138825724052185032056432346141173371815894310596666555563174342719543290477226548403000264846112912018247894526950607741966271225190273385603902973961801676317947152533463481315516964678812910825426832084585461448046343888233060423340206597423344142478397533187695476803570815705118411760081867051428309201388054449229575950325978505402210241728721682786118939763801314628821305069894994161292373910809171807371162536125495149118006093536027226173178753499004391462359286520200360950321947752221271454277068097857449810591673368090444518983186915013862843285934619405202054901009877712998212109672799832705962435392189726373226236112529085516876018208204839788220475008225751914672784942324475468738900485480191102678442587909637411122240086082522166173552558366115324341065716426441105723351641953085597559472472974902512664610505863533872019684214019670093128616389302235527178837193320419443569914315134208352558460214793577799267455162387540652343929105833758195681310509083889992934617221597523789032289371224656157474805120836004859423793382465490644958557678209633974578057827336563649015036311900035816348341741533758255976833696189164692306796972320318351703453807993092988449459422852637290534120851261629888494957428300881615476770459954163311412678247897531383568298712413042847472311240369306976970527832028376390195392970183574994313146149437744199196371314519274450561419316391122195354056449120217833776203351834214189614736062958540280585427355914478001229965830781171127639466229441076100190994405814799235667196085452484176578904660706561926327433517121856763567360841143202258534710282503277259131012486304266132092112890556883184101954486317364062207733840283320626674261131248252969133110974002478323750084540741049437991041909930774942977314463514435419898309886340042991588624902051155231817273055645707909513268414879142069356651950347421886979141291775018680458312651377535609883158594976349830575729688606109011361637249653803712050130076699181265223604303475735743251134238460763847886298501945394500689081040031636274063350835006385379312365287407099378140737548859113260080441070609045724417046258767737196880903552646901212032546609540447966416227892296623796564602316688199870302044679711184406130306605560824564419181788163781490257507212590489179559221202851474337584746411006043497049229206142418603422126291050390227288637976595138564788839706983784704678895517516294753133509996814462420024127568699503626804646373097682133310161013217703168135207579259469637074751129567716761981142623134350798664814453194992069827890800268519954640525078901767326099305162986434493719873485212789308665891896489927828583765794501284022582886735767523508799817359452608146465205922170672596939458804392365079279016877105193841714975794416398352313134213338194431639062429147079171578957931336370712731433289639989667188392828636455286119239507363425465756615952347741076526910328573166740988576422044947055727439043626183556325257809219863021074311145754864563438484319520995063706930261501380426416605528835436122515645511304769815949064944834383863901560094022896785474629642622171522412818508922268352899352131663265042523672198211532528958340369723735576473571429599168797414448067044475585719480894258678149804975024817142357748306392239857357540229004750277597818970903764500129873306546254318791763637689902851296478561615710309047556983140384540215172763677828951796699354402069437683715874646310678296912599690895759484492700637466057260156024482114711719666705040456099347306718781039286033575101535396573911984448158624207858054171004932676367938962030907765088693953815308530636511999262990708335200033199405190909942167681839292595393220139029463798078551128816923636294525450860740204960609209915689422124482141872600920188625288935055679077817101326648660265213980196117261455881299467677789574339370649859023241486401725659765868622990657474611831553965372234949716976129986643584305212326430278756875359820064638358858866478866613708256368572903267463315820431424259666801336756318472125527041053947335747382453174635956471912845352642711298404582377275733316377430928574464923509789089104048730235659822681056800867771823601166170413568432864579535307612339488381986128921341362262844454632462995622423202641655066287237968588679164020940956901717595270992071195493465139626824533881151382278663715708837948134837965653060797213177090683696196591289181077104374169239317421123318430039001138339900083478482806290373414841574084276808194333495578007531780012096820706490958850120019549827031514532962185767244026128089874597284684380424255178470304104675194609041313289823004817373359447204195637019239799470631824736620753496081128694918604177306327707117040672007708559542054728775507553989269059369309909811698997836086951393419864400087292583273992808960314568745763386667294846125961566379175072034198102853844288591795469923867599275949243012168421790347559303280098910845708935281061996680685394313817977719810957975757027869708685791102404920596608239864724192672590386550745880789203869007667140065537753196812930593205245783779202644153545285414734338314592686264517330318075809427268210549526260976843124779973843499287931023095929690608720866406876115291506657687121928479243377504989240573074750744359000832185138708039987926143155444172221902240851565343041445633507745019006524027570207004659063758570475646662441472292464277088389615883109386982762106333857205524104073769224990150831413243235157900390313308890678360049097366312307647765882211625038613435149027048730503921257809014211001008971679014155332459677004162429254173461167452515769140941699329052548606855751003700000284214200872678518102606027530246468112937668884188113740661696922741051214839314101346269269366539692779457509005278530654948610303309645200834603728657949953351248984821227489471518301538693347768046433342908354656305538939652962311727097442917125688441679232670904355157861347443421654158581943518891647501922147691873053500336532474809155384666957650982788399408465750414406476096503289440154509842650970789259452269838927324897075295519203900760590848096807776360840310675594586905253321562072621320918751003293033110452861911843380970389767099499403636932537394580755921776741098399723140384223664463471152823569783694251409686973207289103220605897887997204893598559704759773710890499355833883351269040003817269127657496255343244999847582265717967265649012084406094189154546097312257931077522458833570491794713557182665321093202787335620415967728928279772363002694358398717736008391644479907444401129232649551631251705019706092027634469893405980202757252196829171567610433595140720356481337872749030718618153005148122631795744223908479615317798956234483941953281474033972607582322754190912616599011880075988635601850430317025192805560393707300319414246112588982957631585924846638484615113534639560594292967421467248579112291751406160539120747181693476831840958277116200831398883683077804536649237066888070773199824235904067294698151484094998341514103698961967336846054949298338185941665980889423657849320924893079040241936759018851167739117816501551675992716689612547906846749508076037285855214753989393967817053954557667744393796753145991682529845507473733167343729011779324841173926426763538470786866781828584854920357787141050177350633993042305972756281203438672493545688481772924273314492400304849412753960707473617787958418093421218323728191059988163192584331177200705383444120498572336514281375378749523604588859813712464169653895499796134583357371661495941336362500402022602263765706369164750365430794536197300469989653489213873093350836139738877540663056295755568959007395837062868039954423677570438043035005447561821833247942249847053194577305916165597495603282375435725704222724256164903469268683934069705464359259914024892213385513050121510681220178559568474641734388834738748527477467686493686048326024359437965340377683877328209256400231736963540169283132402841675064528365884047464562562593833563588177349364601753893764755097186937207521970590747208094173470298869608358954596834707753160967414778950811918705689991886386416914193009654574085590510298135658748065164105656290836652317373830908486895256690110404073501749849136725902485624581881898240097430899672701710299144830611822389724694800184878786856533837319458959488876830192772892499048560406685211727498163670576467994435577023499643291965992970767502796761560258658920267126925290948243621443350860626941536202332694123376308263865207557457693301594249612824101104956720581451457567045760165296235825291810302504854376151105296161927365572629681154080219318341174892517928783012194472270196900031939754526594553223560818843874244360210815084957689373835788899342995069662959540652211884170912671983818561618357995818464395609094663775295001477680760336452524481483593789007743748040209514421292167487101266218817328947564147489454844774748726731723738879332205883216507343318188088810284143916103653690742527224647339239148445208004019214779269855119756831264253863474277144323166927063213797320240795534050741939042141098498016947038569204117831127927504254082297739324443195908030530877449615735740986053065390128533423983820216787177532160882663240449305876580475386869055716685697650656692276281873010205425881236490226047221313065153495096936048300150193585595567067785373942735590651635488553405402689704226523585587208471798292533693046319559978113421220081925492920756720525591386891260383758042092314265220260457049154950265219471563000419924547458213438172968532447034014005443405945532380407507134746349827449255942068058336887370767987782049357070521386873951611343397238970805385989278086945948883350338171229387619158835957341943447907394497905980406315108600503847756854080412797680219136236721812895877711915504808471017528466004942819268998578553236620211830890300827936078635193787432043104488047249550143573839898480727696416122380235937915193700672240103117002840271269011377600545848423275444681745576351665023695415846237187583138823823367214704533290871884657602966025800188360721701720430706982024971400882088639793106051144005515593688763967340390506002340469166904907263903726886510867318677026231648169270899003936028151252472104074399811695839166221743143015183718476743882150899202915710847645810501767963312795980210613133329375830399640431274894300160269337271934796350534417620314487456128226448646106222334708955733310594622344672879869789226173655093561605307138321351558535384322151835636908229576027009136625202914107554178071132077796990109872365123264456732744350108500380250690999239146602287547590967500378777224419425038521282151417485599970642701868511682172774376087785017743302299711678174920488788302095181010726716131587770769458800915260955807361677820291587911729326485440686475734701840790584719619746813957781585893408562651853219329966715041434247534153016746445114263712233707110626811973697776960979369768113092142505046133411867106815699398754802385138989950029125214793195906185903178231210376105238318014033791395362561915183130106282792617514982011072454351347880197465886975323748061407822633590787262611324564145711877513994363455153588168041176842711884451606521657492671409714761280704197689259913893060664691463859802887717597558967344331372000757313844794477841282360820070477534610443046756840968665678590312126211917795647135119843072388075228635948632404102371458775353650988805702806057765356862139187384722910054408720178047342863809423739652090868433334857338128760938554434520563660573754005981080645915258436196177264259359790210760417178004602006865245645206779789472962339710804202098543121302355014253007524676152318037957911719956210597074315786854321178268247626564618795120520998199729830867623824649322717937938543804534270492410887261185640268884005749277630521129029799677648509702375100979968029398610173760659466244006626501583966251307124235763198337643279462731457735299989141261846344946867681258345459203900105325694708909624773421492788441938414303723840840534566733365620646736120955663738456733516798676224340029673311075916306626578943485779826368404723304887389259559265222898856425123607134860706438788283862933359731315369275751464600205605429304027008589157922534260659706105296967898751467978826775047879400192097284603656349305716379536336460030335612993159997194187782104172631094236599296910675400170195959580425876536394138212340582486504246895903989486730306574960776231142456021757205477380314988032750479751370703339324263215371801607821210058441644345439313486290315560385281954599966773824683343617656159878988786693822469781499769220876902509009572732118823466926373794200676594549995849459140696911097947278451491235584734136048237979119537896999873938257971151864803240028552605992216851207353889946928650420114683528194423901384737266119120882700163009565346423061757844207735997189401221529085046717294847205292915546101245652392228640309728439952589657682247025355096923978054369033814408102266684071914794075906472439203707964292932286415143003901469352425490580325285995468699541293622075707874166978639804690091533259146293666010771984139877596877119160650827812222459338137158548253674147654517873445484251627958048223837955245462970185887150160928210109587629776656882728611880261500494659530723371134082111072324647394867152423266084130813844762198316530735644503381321177616126894211870565884311762956464610077881956000947104476770702168277466946206641074644487078774750066960679889413391864145208376631790499155634118819578855112091583669547987980491619182373544757524826250842499394397554287064708796478264930488277308546417923665461096078616887812319950752635397597461185240614735488226738894787483227513555269591783153396059629206401875022684909018134493454899195848825590326224514159301364551174376505563116988547500530740736677139881926697999123758121371558737541263497350745964950647708366345933478565906837250487603399116944050903034991260914921286695986488126226726839388395044890030150139526435759167607932207609963636057986599591394921855707534338742574207221170863973322363450718630454918215498028545253208753995517169754109577840584378324624317848700283922039794233934952532601503722017035884930376506493869018767571430712626512089187337091161232587287429429740099600957704307868190404987853768596996017621360117146382156232423344838950766087687106831025253368430902618275868094909162734105333040631490395934133226784593188301808088862768876919163160202388201838969186055527148672885941309461860995053266758080385039136907743398271493871152955521709681767202826340632875679030422077517101528637413632899402350018280410188331656821792489605464320623213148436154201208513897355268320370171206670898030752749425240952230101878745780676745266048908569408063129402940578079757136052285367052902357112528232028485621682567742658889912975214837147494238502161950679736960116728861017625047867169087743739320689883981499083996371562028200176920260902603583566997025264863381639164428723534951625731083336248068437622228701208105252687749954563278433285683004589864573236316006225835371446819223264409904019220332940284297365434504971696142727940972050473271488151535065814951123116339161113356552718470355271349422894694966916447815785205766855147836028876459771940794776559839102479692737609495656320133977075240376378831913044687184424962056298294773277995831586666271886244272349107957493349393116531948058538799030440618518791806801909903847516488378927458977829165102813920244927588768951674658351554028062578832023128595478908026486086264365758389779584255922234518102895945615991870968461013001419408105866391500214614813891678556667559868257303182845106948256876963022719422557940663466377440819670733078112737372827283104307692587502047984809220689771786473344175890469513824812905307168352915571474880648792611638744895317669399072991743172854122892076173919877420019707331622032262905999650952428849432231851239977298400390503105309873071036408813356372334692532673781284474779778239101551424973397584023817106640102410789586905019810936448874669992210564504754310913928572790696187106575266819826951762737488062482140527399795787399481967412197574720890716335475555294160807318583277411609866108199939886466649515768800377766015570162077271272523262806357408395890545914658617581762641654060100486910653270081688134700287796777147916126071994729816554918948280257232600601855764763820948836511968408315128551195184883333244857625919067384864123304077789482409118387379128873423756629791660088913189721537203640350557132848854755852098378674386000524423482421278466617044565914663204965683168235176497204236677825054624312170829058233784339416086133010049018349022404805145061851850867206057974662704369033932244817868774467053581202359707324443555325558661648399255223645263145142848330826142820051717187152486241192766676448198471073183463516279442787837869491858625528023060117240491903456473214037335289887205733252340524869954373899392856400691739622441351599878119976774300751671681052111099498108917800140589264625642960472815275273996786389562674792059659823646665097292002148734864489166186598542913172424377744099704150154344271756663540742397636828363174347799596483479239914597491685184548595906594564163882176382460717229434508438346046494028602975308125059318493337620222649176114882937511796371971834733685770261655352697538367672065427118109171804067432331901938982830849364010462173725424935783724528597063929811920572045567150444088807199470641840769521649097270069389290485714503023641628516360891910810133135479152993667877018146375701328636776166285975557726491874401144589688004945284047010690230209133465319367259395062513973068404355115061125634710689963055057403385368501187178378571699404697216995116268974986242189515968958968959503054873223549844836889564994870968512569319307166710924977324381299799464744627730491417220149770490701318708011081569320491782365838445365152665255240188521933972408850063805385633849852349122621502004569703060917773925377440239546576883682213258863984501592622224028738106110832470456908588124836095526260465284778089598506542349548207254980569024656595101151446368752432581528636852622136934244834664065161176295960210973589899210472019425813149464881948148546218337942584131889851965543310667226480038612686342764198624192173228127823193093727271532998554041762063840206872553466423526610658352191379612594526628676934885616468988063423361426476151065194303939400743030472155460852316995316028154148890302408801023852531332234716010891548262704136378320972004673506880686521724240516621902948786446820882984039567081419663952930144464693505863292462471616818139562153320497932923428441846863387656151863975324730210326860877409901244465661307917416032983307290792277262539444832834482703165626040404030123427922293450174272036037229763897927429670557441440213808113797864663171693279159481809881329150589123224572296995197459873338279406049884078877956137804762346594596601221863196944337401091760581705000487080410764483252648158797211095200872402023703135309438646014127001892115841439569140672976294370777244098250216439005129004956917042181875602402239002595385834974076355783338652517306546720509010865873088198722570857973091132327949186048815582768457039545182779277148490309643993050702298057369766590403077999942912912354714368536706158537379525164817820798260264559994877092884965322989018523945196097304060244531040897589958908787346422795660118916321957580900393232815825065727873009174609170157631240291650925345151873426718457920137529706483628622368903840051328834094878035580251795262316634119356112354757773434074168102947796630623271319273321403236457800085062445637135458338177401738086153233245000661181819849359578103401720238333655799930672229823260613221659375245134237228040363686811435559366243919608350656613159377371758490862969319558483449636529979281432942534068727467302931777328518034495696724761997045980047117857913237740466134805247100562282369123174645380284198127753961072716730232858022429890750272461264805483825735094134031682497612283286164322246093391880130843132020589454308615249412459730958006325759504013538214606698628595817224741831517414656828685176662194798315040176362480066937369604023389868918374425829601992376442573615451097216050314530537041210301987127296619601258894242981743526628052095561228706854922572231579826805082145302132523062215060584440928831468422641140404423853937714579721395928958197526968331557529823498088115929764790397362666711987111256543405966325187455238065115699989172403982817702628816055507312734157463996973883637419207440766562169459440846850902703050437615870087565736014154464907003515364597326445929883058278099241127853774741682393182683547574654248905654639078313751673362213867305721738198839538048495811717315028090728698593586018553424465464182880167467459177121909238269940274687558285910715778674167632100656278906645992955710214747647785826707665569250942212056264261480071834764068918599901063303677973964830118572444995916083117892987447649654847481631487797338879083687438887242974957382620214835613333389856667086678249940970432501334148287679259658296088954107261455889053032108703232480425004999225823896946510292962735876860109794384266446867806495245637131314211310676595234969909581870311269733071946777434182284426485035341958988712911615235767704532976432206162956182406446009123248677872077222672095438807318923711343881546290333958032039477996079375805340737351332267820771846487979711323661007329998825297046455259284724113355731678079200323679391722125483905193906528731871899058335871680375501943371331035992968716205145683487598182666229064236620859859705389611722702137710166294246607896612309181257643033717072719440542143376287859193339737906548940270222122896937262883466546814909450700338153198772307380218479552731928686231209447269225088787923426617711117029936724633647222395365262049796426664802087110185617766787266660305420569695046607230204050765165134158914908697814806518612715850618037362905912016889868073386779106821983938095213698398519653161942769960594257482242184534717896014710609545979880401083264840625900999435907549260303431810640368253838297235850769922894021358899077173208282413754986024539254494834850825052243989635519908059539286458889361603651507512700162053229292502576729375015196665110673005281296116511690414191845977400527245853937853827741444032862798155854950802425812616924715454344546249683081015426586311836706018678198803834205298866226613261409468200110635409786097265239542250190052688567915289106578548205886592355676941140071905863585696886897815830313850742821140484128069948098867715669092889556086581711842374151987979777838249969381938951141998682875650346517820596899748117848822895301027180654336722563425940545209145006550894498713594574845369535881126338305921854710747335207124478395385602641290753315178962060776000634431045500018709904173700048702247182429543475141427503054711576607303795264991190573388865952982283076805039285078466804950152826488272931020584165526018091867563621255238958792376861632102273173343717775881474134073904830861299486906492530929622274433330524228722907040971607674650185236649061719663136924920372280755628480794805191271854312308873953184977908345316947157131997303731182856994027323092891908726699730774233201474938346391174148475202687110728020365085256021729423656614197993073560555427513969277144465611532463414129750177052282247603807902227489602797074204066170893304168880840230828410006290049621194588953389801299185934069190251069705863150183802351460145026321557010370696805785704297722936488570431456734772981146663053981855129735286314222959871501799574699966957015425013068940165529329408606867985462277777024723825888112200583896370465605242647500886774724125242506426567636133568643060552552658392416120266785143249075371765538075772684206275206945714484337292510381697066276656879616501960450704292284205255672600348403193137838670014786463553721353658746393634352253588861355750075920622935297094693918917863604701950682737080213145698930814565038601086856908419650090461989660603557205127130864985635544047130005796081178259339060931441735605006515021180280772770941400112850188978953791584706402820057217016764899247827505049062798479445297920624349961207634189635790557838804938667876770204239240376487136351708327848923458876989617053961600798214219419872146543625966911849384468727060127179290347192273427620627263692427236637553445789669523809789142701154111343944953777693141261429265738822782948724260694968009382697770655651437009472639002034639015313342126538715342877027799759168987337947520233615164754031789486724184134458775489445093441213685847712679173225807140027456623305822007414037777081299802151594783909957973532221028041406056767377502531475424826572844860245709990505423714104348974759104083243865833442400134241819876699864070680606036832690003276731071448493664889459123809421856986212969767558715433621954663397765830016999373624888315686468139007714670143072345343353729394181758383202722144941864964351168203147144761336253854189269891803262041368947195224615890673260287172825365581014937044691761777240309837500035843673801373085839367564697730480955574043725585254245794507193385830592610874870487873747548431654048871093460290073981702722694986180041632421986198261844365559507341955627373866725002572622059533874587846939828505861988648830332284640993510884345498108036328909466481387210352076472576124013217301176003831026325539762403841889628501963076713344294531561929924214998895423486098886658027025089042844303242086463862427003673667728440513501499345238892984061971308418336338444346698205149321135298974145142986516196140898340941167599914753610505353300128690689544619968535522258897506095182085096943403029961683325604219979421977596408811574699818888213089338020179819403393337712740529305516180464558660373393658063896867158463749152492205637951111812765341916674254266991294846790439687229559586989094044249827531845617105385570641405101817519001518097602339380073404830101118683947188750058043207954397951611409125472471097340291836452540297376462134583753950490556759024966154314023089542238284738311874007447946775036701753935331446708767578201679312257937683381966656471307225151977605128346211022266436012405707537325628900739078035384736884152235145103930800588951952252770967231893702629680539273386091182004625696213054420868638187466954639920829778295909983269678480408817446298470221734066998368297398263470219256246858030125253777646218303665690989141017455786072357246898325145989747307207674060580455518861556869193333670728794108407251619222252705075725007591586514453651349273261227054162957883589266701211315089160751067201193716594410748410890852367708443417508561101141130221081982350628640801652278847761107276529458787757525534657643047749972235661707087767791111564089728080811409659732556896144947563290750835708155923912088947218639138102920990224807507985348085624655348429375930116149266206635925097336990325903009263592574462306617329600582398877925786159936205259070165740635612961467080025784817284554813261339027710070171896513752668296302459613461180782386009730382448527923607356742279557723390622069322610190759261876181622951815467200179999994422269579046498205093393080395232340080884185454659681507085533616026390150860967020849806464746396481265749733245064846804828878988648185257569352360103288509867170821510790977617593723723406718938558623769709160055388274542047354240718780163275745390683836563130797806418499493223199261299354199879830105407750133470380791453217450924585373517938957187086890045386480702349129475466444031563069346514673366766497946283357319672489974971359871042504557882242692064362662183676133642627449704214829948891967794045454497921690959588175933302419389294541184892613772754730882960755876186203019488109545950597908572808970149516513230736745383097927974510485782016461717428211465663499231528816257803140099089904827699577956993671502885411430650442956199786467847502686428033093003102299588645528661836427554313024832526298995154538100178486336612358157524750002545936889753291520213456455608160482718425976665113915600490807323326914117902772046084679963018445796213960060649357793551865492063377352041767283671866536388341747303702130281642541936974438523585715118947703481106074460904405735277294148206994576401468347739481196445205280847058910431682642299856322424224491949099252211947045415409324211299488076127809659125134278136040071445611971339644648536190842042258857241109834865847538575367554513461728888213857612609426972233950486722387431116764979448311996440372180291660557335759503743032946944372960975777266963069824853766379829168575253228056209714810921680460640840283507890136257057538582819845591971245074446662338739600893319081518891938741535434783076064251553450599418686830919043058003033711229990142782188778593742911368081227912168513740422570539168449499724744630195877454822836939927739889884712120279138319026117353182481632279360869619032851767917345002646128386421864763269539195130533415930797002757203532016968435083278779435876386240372474197607263825940290053684146613965464802178707137296205854291578322130389994437708769380132482322534875779082191785814412262236816940358105260932811340059569398365246886178414689644088348364776476753773771221461226138069772649053501916775978939240807586155540683719760070622098117358671031770405501618038361601013662021544473592472728169116376428412971392056609067169150631125230007374833738389103349271681823646979964325994715611365528471722566740782764817498005056409536280023875012612582176134475234535574056650955137085384026919705986352738642999818146145966281402139759433316237092607837413706688767347355671803341855151277500515903087419166066317224717746701488326077202199554185089976097141678647216306354453941198076851139219752594894645361892780211771271419095801859392601816740070540658534634944508700455346107819655097392213175245020441646512023315417242664323527875709887995516800314176414305091629621638589901609120771421423478185571431342438831061489742249984631152390041616644658161970075186870801341761570260653671465018080858264643625290393590070526404240283610756098149749067613479342870329759179381701474785184896586764851551893229773174561161722309276319949461690242105799745716595554878904243506132315925159374727353926694113394864935943324735233331443007203521148038626868191595958030102555204234821187863926696395502948825903945797994616111102403114238433915751251432105005363878878318095361483651510438526517822542906868679155802778804162713004168698464998359705313805946396323018515175851752822617865495056489323059554356399997968953973975341746579731988749617633689232170227454438902037360557138752669986387191528841449871548187443880676275194273707401053883232917701460455921786992750734952615375201846673106107056856533244897169409978571418500933353833452003382322521450047182230102786913425647544508207319527348221108297499130340956073931199488419413241194816780123746513959977962212901501767154882060095370165908142008019383455613395436068225659459458888484938197512618654023751585376821761013455587522143087770132425120310998313520258650229594240919105642873731728607388648868164081521261307919886588522384079001616626064784387715043475612868918950186819106565339811305588011403801111202646925699343111162057379105605685289537456917143386930767054562595542567000758022294875209283782372335368346663562723497267642777000996482577380795583809187308702819872031481359496721857011803210945006249718576018075036644137246518617758822432431381216249835489045584956050748459771929257102685808587509356193787549557281636672739410577161808985451660720056245412533196646435437435813463298835260455542081801341078499996530768678960973137851950434481753461091118432998370021833082590733414558603141411042009074621326094073729155982459540435766856670365816048409685436668386167604314332733082828438696649391333799855968406963376622532001416248019510202173731205753872065118934835242716181931544687593029512199963193180009281469295697655795334168537083598545397655455781749718119331244351905565811097519938866725570662989027597344126297900425189031404416226307798658154853727841261517720545206823528873170604931238306717331477904411543084939483360913846516617570090713055245769000903043395231889199972544223550484685461800672964491297946576374048224819660054350599164147284205058328306121441110807404233194803529958859899971121805923588290664090173637299763557152980673443675029234563348896429073479302776151970518563778022512062024346197539684367219542220517130595895940108540558392730778621655541183496367793621251742231622579450936652583401650001235487857444857206125084395094982055908163016672772806232392178727781902876168752012721754265914085011888181656001439877682136123312225525570800804731764141437750537033870870112510499142708272261310622767622575358333189581304830924022441859943452978079597357739894661108488415050470951461935955323264846888765312404601324949570067244754065065366819318700960891987296836161910406643388572118944304415193736375926652676565737573914502087060266873794202499027426102016667962042780358324852368212632127998163748630974790244963666965128117612216790387088504772297774577026864718802932359534327554488339997980879293259288057487884597075445842915817908352744030117668267106835351388474634934300565493645134209281336198367420564173494130080371236958736436853943784259364039671629979247972374861759474839042210106815078433246045664407175167477588263999071268946967916568807474203852751029100995785550997870689285470855086563437973636657966157769978259944465155952176006792177271742360632474485645573803001473459417986947594082372697560522727861691215818988726040919443644408936879125966308404384399584485175663802146479435067435711249785678560118597141438439363306631291690371166226100894684481334665023033160101824714468269164597322010805901783661883980628126150820678355437673143122364386619739117036023201584308337694465043807675719089388341378822571145430597806002902325935488534301216158629861662154445125475534124509855513281648162056811187719737992929662191102801142205877374475355199662202612780303423111849485418682298910866843875931730389572795091609242881577649480739489125796674057100057440045091355258058938649054862843091614811686537624399427912849129236132783859470790394126946530630811934866041470500448662605691658760784056580088266856911766392996246526884890623321601460193360552317687817830202037136547720050332001584235085134680420447590104240220581323107072597958892629633800800451328263363697541139011280705176778817073222432982242549066423186327052807297331851653590755083726271836327447271272506334723981279741921510912504867236036941954867943116960640952674269935869580333762047071448311895597948965529227151706972587241123168500764377936749698623954690122761752740904650418917635780591082373966501497622418665556289214837132621104393350179118239019631043360855406923406345115871584696169018185935463546611641748387946138669990329235480601299442362345843503108024563657105128042174810668622922725006627042439508996632849027986146510874357888695639667426846475903551379460103158859804574103657933086357425818109914461986017405607305186723550440729968073674358772252340550092464718166283117354463093208593549730295870933424662846248793996113956478957407503862396187428228267512413340105872035030747417592734712225597417847972855868653049617721073287807958035010146609045628200451453010018910934336493283877210317743590562835252954593968429264614349793154513489499857042423104294499780267668947619335316347285784886047670508278539901721621757362203157616272923561523525932987996696866512863105021242272728540469451272071189523378252832616557926948155066908997278457789837143037592510525957024500163438226237424237348467018551035824691735186484443569051712211292758381263959687416409392796016881067895304110177855171335655505645043981653463600766283550597798475308617086218732590447311889116153378542032682428246798903102697750206030543318222739764964255024172071297605433135408525060029840471803656284641586606593506453354624390430574290442053511814249265375960498223505081879736671164791999988937658528309271482877192665789589409321803952743057343308074817920201472472138931698995511256159517260155384390938836146226052716049384600110207976582927805936160193267576567840685680876332431739758740058596961218646344799455177100492779634040843952040762600145297277349664900721428611458516805588560868834352061588094542495703528730348432901871753677012959574051279213472450460683600260067359791361081430278433162694515788594332314299671196642025328467894151590165803380795733233150438490131756872083680935790593771886502658842447859807385563226611013464766361409439204923443695062605114575445812620262691453593766240479017674258984341979011609865155452263053797596907819118315506458189776020184189193112225754011116234481213701708489798033528337982066137063355067313241313736610905462402556532614033959593228010418502562950258037826463797842597835590264052453281337238688318401469892360894409170687179294751239077590396243052293099758438466709349398433908194218583213206305073022723735448166263871381465489463453078603180480766343894269072541313271919121485380943226897076905644784424138931595703582487681756513940102912471426195782000455096658567346355807370257176804017361977155818928697894973538231312401432193518416509125344583255826891678797567909574288215419367539004117236230764623344249037048895879748930691200807511503096519829655686285566117757845767591861481695882340068387715677588129662718998827918227384175217100835588535431930511753565192469131636195605575094377323836701063821232831926556079108160513906083735894385060780776492400401854082074536669103013699027586480652987566449696851588227538257341661044620202915358955535982240985076016519959378440354073817086195173355132606820342959665125716686823870452030168242360143821399806099340068743726977733398004932179569764542258663645667533634759831176015255566962719805553164372796500494066118512229990597377800758143202428261277976863518126213472754410830957358170888078752574980468734971970327676220809516256506653049964333045658146681955914578998230642592841279979914039511701561412049586861476153587934006927399109080233154603049438588868588334197387309017798783266392319450074001813956367919064411859932702028248963610717635084525844120537278585320031726032001380509498220210784509560986457815110591084149918546056013381688735329025086669238206140440632894308931179511505471931624900825681607264443077145388516806902952945556559555722871236851676783720032457227465937335272891861052379147372995137070638842090079899471401777738056830859876917152789130819594567910357720004935380580600560630748104151405251633356391003955457024397574353225044093543688617244430331085333853397783335088051458254937605058472586566698255432601039867336299724326242540148654957636506913146932275344264226558366692228827485006978608581021670329340746329153158635839907746503822792814163868137151443321999841579702517378451675940960208038097354685802406649706251298408984268722620996393985910570104312557785631168608008665592260396330126616080411148390872544901096603349717179259144436533321161354903629745354002907549009161026259972904387107989868027797657155687162385785447480634839156983628984345224260411877719066682161917371189254730409639036764147090114319146110464694158528054428537422817771532915834045093616445305249414637556747729208361763871491087219526948905019395915051831633289753461564516740993272508944127897028192470561387893078358355178396145460834099652111008423562299333058447282033927907312666421508106899914673369026342294356404772107223047136527649169818762681598717150435470082415132390198645779787409210589746986369171278884206261568671488352907034199260377515372590737966145787963129730234147392765266434033931696283045247816318195546372762336548770743527183474407724377283338255528267370247463935323132488351221516476580486405003123398682429004758815519235507245699275492620903981013557860422863083707244361602305625029198896047032314263375064727300988531562305448555566364725058337574529551617118712424969726245531091119103993185837251475660149071782625430005952098178032436397126343235532204180287838901844600677481453307215839106020169949940430191884177592885834281659920133539996610660919670880131594152411352669564655881741820556866941907079892210858777056659809894871806431987093655848554866639581502354899375303890746887572948909504208472109721399829030392073437668640115644536071264845596558002746460750252759424351725037140661650953708789383843769480540254331774137563869445551083093503220118954038635956418221113098555358715747089435896032083743901959388890206710731225112804996911031790014772234395494121752824380266086561483351357146147140925341589489544537311517476941340935442585009796024779883094382998607883178056971166785227342200478299274517629574785843962358412277156504229365377604577487783444750157682696096753335396896540588204365181921409442470995507437419420311621078276465263772404939377294425492198589348764290143207069052645171108952844914401553912633012675011950763504961526703167971411703255028775266107010554397249930788805488295392262062708442764568666663562789932608734181003419347676743045232015572729583910120553203298950193356805248977747750469514320018998703631232295240773185826560560090979170413503417040085315581447455505765527708863332709385335136816828705269296346725070608270637931310521629186086713152244186680453356854248165962438635667465132210130807096710554101199668045186076461275868260800649567548603664820335534596284995517707093676722393477746854083743697580600663682242460384561473125271268806601482013288899514050014523524038993947227094853777204935722095364996859032548691169402519413598900959350959307400225934730802358144312853117195089038172712795470972587799969789788651659244093240381466569142679087013609258197740426811873469381078241567989305769293282854544838797028095361579366873653488082049870548166563183428076787939706271386256927706089356612727512523316541878207568242245888962075094245564106570583098235521032627884508227081384503805461137011692347536805312667620287034877377317627689291935023906237569522762170042249963954213093989160882650146101146710776478082077996336569819887345906333627416043596172865335173435204011289216223103476213533934281537164675510518000147479622817292177518814503600013689541139212409533713187628756428823521782440086550434062521322169398582963420263186728780545819993365273844932592298949794604845266707335898176485567862527661021151475796025504809841478033786379577146769504178718395210912917396143699103869355623051608340469388860582769235135150812298091801475615946452166763299398683215715000563565845604244600914178328235837217074024155544119982188722151543029033743589934135439573965098685110258406105164868942179719345687640777121568849046192274809694397158621108095632548971654502966295906551333609925121843846710878995434561663024705144302286574254634013139330315660206332592009364499396185891828047594973405608268469076823631193316599928076327229104904823439621180703454637960472847822976348759942082511222326368607423121074004920154466564662052082810089932064024931083495881187219518590214306398785702362470600312000704154969713980410250513811704383105024124403065964965062936084066856369512113756868047454774109074294306113714612847594900487327709098546472568108941379925577900684154589491519161434794326936870219546250264222206171591670474259112265520001814523132567780097390715515782933002740489341055797008289243196297107366001160399558787702514990055567391412418090349989569773912500923731585832103056391288137052079723368841367304725299392737432026240605476704697191588826663276290903064130323523377013904939888006446444296418162110592026720738037395194260750206050068747022910915521442684038036560820127073589538821241360449061997151152524237788338713392600354305507484183407678980293448473728958844737100897019331186778482047495014592518036017109749184677159984830525377531948137294808115717398286778578945255792284539695973282829932753786884561245797527237152819100957616019716480632985639124898568647647260132903226117679530349269165944496279847482109396313560458973136788404027344575525508441242756974548444013292653520934003849597030412076079281024447162668451871127082797330121826313484449176810150046138925359161537095372243577068973931471639391000467875557269749902949362332985626882196664158097945184246932342102945359379901750569514774856641496808857929319832122506271987082188683942366343439562306845354926496313718353220322030445745311772349233450793839309360520652416271309826405073134077825545247149971010096024776420845610284584805574768314577449746895858309429977008166041812421412709211908195011478018300359682775032352735341130184738999124164579165727501111227196625221122300158586819509743598613678263371206523029719078219745416301110515833240141291819263202772564081952940205898691315417632794098981575698477003316761461094691118420000917394140319744806680678295726095949332904800563866629841294339943998364028314239425382159410025657459221379923108702876600084871718134135391773547675237616629790321215041176673435016304129387814841687251739254683303955975257231798012992579411998793675311082930023784865651111906660697807806997441026469106730583696718242901545977299697960275236949210420756178056231283148968734572095071876258585016788153303013236075762132812067441299021208556892433292794187063902764933866292299672654953021834983169086858210386799834151337800547911521762119079365991817042445439001950022484635708260843861428285025281513537986055252969013976245857024117130793656783501522561175988699068196713751506887194069841712668932351139355900955135728289333937472524764529385697078926097379249011287762399652303663430805296508476652185673581143941348627379156291126589084076463065785609621046065080738845110252262539506657671583930488877865689556396390227946447967850222146438989889383669175866635762723035058016522500550875545697157426228415061716236568940012875524768513301594109351074995560794913453129160498638128126176485554469177755266425122205466769617563212816096165579551805831726503407692437836229777285487059336234402486560202996241943892418783150519267716618479156463742142380510661547755531604820579129353904375711254806828606463028334400721193301428620670879399422449345242969288542094743899862770303302780156467929792947669872279639967244550740316109581730607578811259323819140312141537884636927516912170492371751056092351007398262792056703300875271330396742117261917441884090832468861109396917401700461003987057073256879772395549447401210327631833908508340311903076829495550462996508948269239332232005823476662074076299172373758708703807175722502430111931207176875403022513816401777975753256877387565982829616530437487649452234041058198608388675048735574750884595370409824443642143682534547915651838345628937543196855021184145269141461905031775937067283499443150253094112522640741220227782474990010654896768755258789802373079440727276341303717308314859606466389469618776143218339937322921930774540747371982361929967452092588830669321162391381995434066151868412630887434807187695782532947716125983030473378832318205720430805889788974826333625092487968254109106953231141263013195943341295029001077259832729392777112658617046250481002788625768436711060444082080088250159030795046578690614231956760118480815767700867357200486291283895771511644422571701155376652415633123662603320867999459512619559025829157964584175465084850313260911119042262505614354720816090578128529508228971739850261216875666324295744976768473061657748213365011442691734772175303378295153496258268787046021891112547418813162486220146617992658400837590215243862325575564515008846136205873799527198946664409114579322080167532694685864220510863079497239532472627214706588280971879555388637571778792906053447761776943951612902759268899993864329329478237379738606777824341487607443940152001301549254627651933171815359038872757282659429180737350186354728845757468779515191673080912785438850747583168116310493333220524505907282927028422648846917358589906348374725306950149807668540985288221790326247133307854726308321942237949246313548857620706981203313134537657754862146119247115364710360844052519761473037937344977605530197469902804947253766676599621507806028467979297269588786734097618312885490441184670364415684527309717882264665270203014309942171525175456789847708172498681022417108611385576537445962376210320138391401618277470417280516928081261891781454220039231230260139051801584545568514140262574103497241333210900690912174830544502847479810790436927849641647770572698923033726830942863796662510528956155298754743369593033187338283309361425522007467701776102093307984400587571560874618457559944150438425387359605535091598007106729526255569657292108807182868360509831232205994624305976428692601082794625843428984233277799486824254911304901064456930003157532616220302539262486955998107670971417810789844168945236541027177909191491534922934844745136316475483287722149307074778449380757541764883591330834213330735662617978195265459260322291974958436382444412773914852443048527839472875053304011699875369174293244002145769508542286553849800296907153564928087010468230906862554618304711768469709391104839149393612964861353085293574540890270957290026467255976631198017651212348847913991877240974369875672996623995751116037473577061790984166935797526174705931545391280929511310126556820617653476378089416920510120607507696336380204956521984081469675390251085625881100626759213367755991040724731402133504380843631200465108682171048602596326645277663340031390120294425627138039278493600807970600797306606251322639381618850729574595793004773943224959091638916361677934261509444507898957200806848583627597897321169498663638574654987099400300723936313093943846395070434529498306568815812803893676502314894441387289132570539496657697450194682599688615280854729562265540299690370777664709138038600808361671310614196535812422693261356314031390510247555778702471098629731631534998821673244302471494542100123178046354858925139567815863503219660350300971057183606388206209257430681505059423933345646394344765631731546432405602366025358640770667772865206016427102376687206998945342383013375677736219139082962013007845047555718867393684800827838961335027881644880083680861902860274103813974787282068687258535179601209674763433358256732846755771985086506979073455524511413794533094144957603177003245668580871212033540540302510683016828272826756986808737991326007563982092881692554839817596173681378155409115015550437900380167236211671070417931850563114575423567566694975325940420702938507380346166949250492130812680342943846368433353529661092554251600925793215594148498896952392675759943575397529142714961723543737274929571774438132742601876728853480833008128274841208416915855248715924739402545823854416431201405426633065653178565469792751586999156505362168047217915258384617978385067123984543943159963192300988252574804508403358499438897523648826981278441507114372685801311786741371322006530260617571581636941925198634362707041317316516924797091343616062080746284752830527263744512283671324236915758882210705504978878014765211200675106965566180709653509099841543369308668655612989521756509827392989397279179292592996679744559894074339752476335165131333706956784499527615858311006357333271815003257240179646879219074631494975411449602085863788430384280357479708520385390136587035176235194797818307581023507448918102769392841450300544387788775969753596007237568992108702720073845220124467303085343494101389122871877844458360921322682582809011248484249429591725216793586138758140393597912850233881481040298295988806796782999432180082776288448616533602171191211198047236087696494279609451719779756772676569194525718689806226894552873021619677679937344724330457248477214993011369437079961853403655998176903469632062004808030024905004769043481094105563775413293146429043424236534320370299107015456139695011304728879693762883829904085946218440371294220486316918919582096810327172601767496970886126350286243446528028387447434698325131877197335318786180547081587823860692139967598560913303992884711841124123385360823200525716436357033443133958926663756973632155990358374096598123712978422717405429993556477675819763793365520517304384883227556220433094572146714551063877682225902515778903441019336896260844433085666408450182764760739721379360188260043087151538535022017080348863513127706285357474934660787025520356061928394422019924309607590830679569362766522192325454205808450718351002381868284686886571853785432145284559823739659228579007376504864922331771137788153303948282496742435085724030919519691751939469116806646419013260748462203477319272469016009337244818637587670955124854115578973012794636720667506308961777575277044885738164367921048856439552573663018581968661623457887340908020649458252563335890694394502125727105097836880072878613215248950537388576986609726946266785105889115415703562695051912050491632208379152938131152049290673840366394812128966061007472139329679628959507769334829790128729319544908168269565745258618368562519935038797526063379796992937159838195088476694837792671761891297895015543781357268916779754691398208761536879566366199275305435662675886848145758144742365833920391291905291663795782525574676412255128872742485055485331575215479120267591846291570785046470875126114811047107789106908238883961473513482757846449813985190307124273411608921294070402407418413511317722460201008313744240563356324400161850712242542203287045296763398375262595038966390726034278713896347811248964532507866302696012897147857904883382508011764448598618123922300917678331555906104283667671191807156395502064479308001042693167405291070701656078402404996973538874414792854452590716588079559368194945840428308176605174191014257437132763416898199573399078311991741502982252531524977494872982430329265071482173236364161502278908791241571270355351823442661910643105790845625020862585913693716913062702732862084619312143869397092860335164501845649853348680299337062063109967664497544126091302054305244636525775364360472462798791987893180518946098306318855002160217605189750863778140286256626779768693572016485731394914707100119792415139133098124969606317230497069907194151009289759344974754870348137725765649993271031659034046980588057552614948078662715039276482869000550656860828640397965489184215004233344050116817361493665974776483365803521010986283678535164465644215386584178447408107609760389562408990026110413586885038307121782297002271318786102921974002546338345943599358898512830228842244560990776196502205455452321080910411311698686618557324053034832777697605378229842337116953389069460959091782627582862723533348968048576827573784180334500907544265481366796139549201474960535524104671557430471498596067601505018690487814924065507424800568388975786336011393423919778879220300993578067199106898398314896372475798637742014737900604583211894023085231477950211825412289558981492564839565583774399826595929353923174300683676134990441748553656129589624492798589523042343694016134907344849273027929782578978846378739922420383827507701727246470549194764176655230599714569291088571302565577509090079692918733565366995900478264914298315970477916579166037218829281046706963435162348575979307044411941310450769507404039983757333303983202280619774960593477407416467001624126897702894059255793063656284032419795291815702651221464237174398083792948501984774707912274469870617301078270336521072068799094212946544195311297333483209326435452644144525920623365947881823479618208232996859670851727325164303294958720346284319549086713966131969023655103156174406654555668863667474634616516855400482200443158254353843014215531646640247649842279842910855847001931179842001836640288970847621351268626932190074823515724851176748251043253929405423922982675764526984047399825193886192836721476616179345435711917496031930916692045363760734160993661318928342680320876180211887677275905441632353935988924866080262524323525973240204399897855004698513033487529293224195629110196861149044805103043270727100903908372366707524595215894352939323473871436940740394389549628298077502290377675667960421479747565197203280455111904812633784613477746289863941142388917527987265193122410676206694596135834116823111815015778701645324746305596410799031152854466533753994819841493272152809291112029427664252527877863459810388096241400358712393698344145296060268840835472763618150002948039983117241422040815020937618035361128790681232559211304391023656345827387370340101873813639235352275614187120217334833604439138753923200226990093545117553874502835139879902285063213176196823065097205177380939715843959201111143392820620754771754637466809514498927222049158686416448869593511879149775210622343102143971082496100430963616512423990780215154029545660190696564757220382052826587033417185949288142148681610916625389498050816920646169397182655332964474517862711810458570501976780375158195412157674016272839062145275795399460516816334299694425661212624229563507127004710603559724157668319829473471324795711103335903706130036888441692468115007920927360590847111218162224097529753413562244015637933852836329796682083214313661286704390996469091315223929959990878395700939388696942730232572115118597015467672505110828501868454039175369166624644900593542619022280041838033674262051269092844479802699328730714215498939225231328144748077075726139976029284482597473213779597622231076183139801472535688705182953346128331587643515674827996124621961306849190186393316981544141336697648695105453277248694523093627034001304595926224540663169859130294251271536059989797476890925107436150857371706524571690902328254581045763833606578006654825669308183475122443596539987345759898332743342221923252652346570261279797651014712975993886019884673181205442927923052169153994434139098390872320942745056668440610849587545125002198790267598526880995655322947352044385569025157426458741923483955118393715056304247950624343282040079667373002177350500316842930284053083741514269629864388128248468282203355552950760336035369798126665029539937571559741956612130825912367086741820184178891332999323169524378157992407128117774451977379387190284416664099675591862111106254983841337116208117440596603431502804514293496657840152682986536837755786913353363686516920183262793340828885849569204900071572902617911186981567411669485206735462290923566396436035617966960521873083131607132193673222373485994565055486972615155435064007620813344766050294972077700456258579452125976563981477071183413539468918797817017159123210887268521425265357890747950270046993472664370215580830815676808844266432834603721558708500895114644654431787337855911118787141088837667727534584774301947574490071099751588559389426005869904875860531935246277438547644191880804580558594718506401447902721841882277877091629022884368743321506218781224791153237801689218151254503351847633031824882385285991509002729012652949813778776736870720210361614298061111367458962565112690135896368589426255252346268974730635057820904038468225246752237531516037607482605520090026898885497348806150464652039489536132514885322893957497974943997942770062828217101766061464980405621000543893910401350534841168960532989415672053380613572201453126932360840331986750006253940877917746198524410879802113468480704386262796963406536224088328892362228941892181594678073580707658810867638783481474047805266618697780270540476269128533676125883247858192492854146302486886087475537500423499300065024469790039353754011316955972804811611193620140123465803062262677390016349205470543332800709948319500466422991449969043676022256261666621286061498869794937689987038807787591456600381285201102570470379983322410238400629095130544970549362114898905433721132253759664410762909034310166634304926500252434068385510513312416892307571695274422855041968818563513158626182696418859715564378662646646189013305156090615313333729362148521118571011937579618812169397904507944273707509777876821936054477509069674482920240069410444146281837438020544733762192540164047885081026572804205650699856304865245213668498113469252983152415146311231178039264811755721253933230648318852920741534782628788943046387337900588720901315552713004282755222994483458253594918087106547833468897195067444128799135817409704811876231472783686256756448698481777538353692895237542977974165671556368490894748554633147038319538428176605520113322794318098581729274796384048006056490330580017805082217531833048081885295852672912996694536019484816861667465054381914221786129452966091818234553330057074530851008948691560292490079427151494389823871426479918802223148071959990772507758906509862608567661757240171943779256813235428935511215006244017061655223123113907726668939560227060784599531235950850716392165246235171056266749617890888671521543414948628086300301331788080597538126764831281781104319507923321353290939156197870037158106724325364533591585977273219897652055714265208875131000910371992489294988480886176702642100355515038746091932498957917092114458058666348567470235502944600570252141428485445961341182055468597322900147963808013814821133505836764213991349182834169982779611205960399767009031856749373775601261219076635853355853231306546367548061528011232353411440078278456184582869043316068158526529294513313563881683611206618001733721566165090992071962376570498218419656099617559901067173750101179288598195688287161756134295872098273187371430142099296089652283374777844538987797230265733813723370920857547195943804238749389559408474575392691336725912528594953341883171169126557137047311385654294184850408177102376396563409044612928576398372473106726114182007217450057897894516973338229596792011784289624359227857744158958563716675871506627927657739676635127556160466022325789522766186057068091805233079679129126377333933368593428958744525650612535005628699542340633147674779783894010280874028430555127310202284077924643385441168915709510536030392350620109882141470011279979932683818720447362551156974833696136514206780872620961107255764863877495359686278359140898797868784976151836207085029634500059887122955524832131859876747600101795041812878577421742761169426898454754209714404905538406673161551131660921689026351638719118139421999439272540893997196897084698531012086050690952038239577374068001141759182038000028535028725753761314119825202426300903797905524682322788523102932073368955385520373617222124846893905645398658550025175717451671504280987610563476367192687483928865365606444048142897682186451593144247454290018653493779394292705374734412125804170283372814864834069745156372857075988358114867492427736968513461561313656498868691085148008026396913890313554844333600101267444894868813037791632691998615733315104747073208148049002808283592749160251710117768025009067972923749630259145709866653853553203593367105006306188498081879107620972299984842774407722199996648211851496466467576809388209379844319175440640933640288158291590488785779418298469465778584366381055195246858542264741571767114572751452966438466352362569299666829922558041391338703584068608785957262977157914092875038021776573181523964527208624536882433063103404738040687989887615307510741241258524719931532236395059434398268176569110363092858191626207260639624952714305539348965712466432127493228787758944629215481226606459450389898501701423449955329491934855322104119121699204283003925426696103328054704511874372160105741015109744899200449069690548653832648287327242864408760015159846693274190935567950055189823512453056137612402219259953495900564320227631800216527740991801974010125110178398291125616818561973439875233579589081396796560147021147528701851566525170153439058097755041823283006021008217010238884629671822103768997760304946183606458343615599422619595899682283734762569270637993178571668811474622818772850902621067298551313250324699367837296754508135405534994799532318062619347236580457228997729519657112983406523052036129492592728111462482562227533627671002224326702280103067560959233671584107453000595515810126489019566575223846666959959067706837571719854938507449232996480316054049221450971345800675748875253433628670999386442036362991034739528508391610641754106434604925757358429224638681955714298875629967364217945462756653593142222218881874356347202884329805746796362702978021353842633636532721277241517728050777189223581584561462469817495835492151212888628866178857610360988480502815885183660105001379597934201865954262536509080238678234441478363664628312516418703762049950337639756606821408201669271744654143733490764635368553067215257491848661919535001762917047802185337202799165201086666065180255865284733698186501325856462795850520917516989379120780942198485563599921413558253686304490023138223984549897608895074690869812199555110344728595139974684901819681659050526987800367587536392471885857766864928548165520237885624620026389901198594967547050425442285964981387874925886185250759225358643932554722092409259755738235196039603758851942261593396288627949694159335231103028527481194920538878032740238491825882108049850124176525130186563607719266564373978636243555000594260306052153938996768111909563962983581498066726990738037359162947535397675071972063940855100904001165611865285688630772793937538698212464821217954774655417253838116731574372286357559666325465104437866539948008889142485005461131780488030639141881643517861627515020242192138853172051086645929119763829587014807770255593029248863166659600218419860149951814477770832002815075814980793910359435145847252091574008068852742031356788496524035611650069846274090914707289824883874472999399544717616584458007726230184287577498946115210815723739808176737674941942771567634576273889571216515912823209917745485473759266289365145966925341856762271411084086533587480708815098046471623274789321415109944983252862592569284470037620087060709198342892479504633590514377131182731343228263207295231699278082878933865853541259196563225794281854999553386826990113641008253742400349701028884347017363103182959825736970166701810862633452687925852321141490561568456862443269129742600114512798890493054875495025345203796216480082629034022669773300168391866598209653108779138636443011635832119696225954240762475628278021040701825845632824992099467304702628384073014378936674865270668543397028564844760987681083347585792922487899085734681965796771937626205062374640859095789424084777483865953867306006872582648918021000646291554172613559634306822573812576047994382452764678273664817179241711043073569771035845036725625808221083855371414099547263836119590593815399267934331767840212094439210922794770874375549474631847178206638146953340269514327169252783806022189931098995282131689972621138644534014446872934598855602119726506246740589890712325487486270739884489226441396088653488325050431847365300389430217900005117698477287684777341483585031047792374748857566837630698506184622219768649746083813780686133190128252239141186361489716911656688864418913220147390347391340004343092511185183224947885733150523976694409857714734571021177455753327998473177304906411201504546658971823735156308030516814181846792125563161919166870189386597855872251957125456533770137633907522567670887397619337957704447535430284581009733166793889991406357860698680519721868247968419790946228369076600488301770334343720646461472812754868346849884031873766244608692588665859192105494122745850972264071247357242683094490623992205095898915475268266290795429726040341969302841276170925821951329361663112276548288301349766936011129685957792823510387204127191866852051243232597665883807015416063038278561310437088204473881514270907189556910647711500934224082032748979582305636709325765130035571440444943203731630992730270683628152633111381116837979410028716785521493195742666898186820617799595262135817376081410522920465282050989265839783747732026911220192534260792354086056471390755658455821238279865224226309465493838546533896086026847434472857215080102621358354124112971868588151582511792015365848616878345222003398059156774647396245479063065802168800545151073083803143859462206939125428566315497759062826871427106356372417546207456115185027149448737254419753613202132494345764083706683384586567646484717099470186891370033002032078199257116337212473826484467803844464162091315342568351582767205613191353732480081242912821603250656637944534716565168714316918237205985223940904539023945994897080907894547919935158328735367458208996042626352237014485697475339362202409341023240733509688080526256228300774469901907100835354726680342678512871050054339072664323776236949553235599700205561876362872694994373216784662134712615214616364007348266684737223648639663853462203513602403819498846186078117650528253294276483101513118475675965792550280180010738786337895462086739329217039263500415430507768346192585130959642097346923690784512780598549864459102536450465963031223158014448689006445351515784082248668792087518664682151393845780105349328031647766266904699815000392408154867078959577212327130262640163275791526226105290501560310715591459307744393213414776392219930204976726249212885521963274910831913640684492412291067153865803403472791099102360006072589335110844351467996846535902009341753739592181147033525733815207236839177075344162157344144841566588902532400363323610837082092587271327557415683343614978461935115698405975683253647824265193154480355023581032176477248778404564211869953361068269440872837984432916970389861214634402302871353218176463592664148646388332927829152600903361651274649209042540496497147445409849289385752794647589673773366617700628374950007655719274453730101961605802363500150674296428475550511458896653037197684101698038858061544121415517061440970772521065317927857763522335390116427041477224645338980261684807417844727719177546885817363226317290799616021034521931304660038245626685322180405144128664869802735391283433666047069180805585433145839466762455104872222806502779786837588367914296590557202579428052601598575279805609568737945752575289314457530282484348056338035300698806962239574171116240365465713720294872959636979670304902631572142252194458544099980993614608411746675972202334219875933815514350353184454400716431120369766154473804106061178933315091303764731201273421756328994663495177940919656306752512642658392194128295328883993775251494753879467877430381063708410749667294069874121009503139177692082182318090525356963876307914912612088572623851804671648906802093195256015121694698645620074588491684126307916459403923320521944423364379557823712607456836893821399865316663880405799202604024782035311041709601716471022723494487876629577426411566324307954507614050502572133704588822182392921970145347323863600350070469690715173824129214184841947876810325175318828062893371425952205352874910957484878740614269314145360052849275066973078708442991052486721829129434935669474818807569597168961102635834975853046439903694758265073396225686225686052733353102949484579646327699989193658581781222495503905116805755204151992265571295798687583195877222104983884317847858084276243876409089299728446237049807386422603031935691975123791512644152834898579826628436445330094941345605489243530721428476484760574390795120527533925027599041403542069950656771118924083633347942204158346375538369818661301874817747779268657760236970663384327365041826311410247192931812322243470139932980247838911064779047309393342191254714731020275393366080940244553723127025590284029097881101127235934677385819790852084314003523020586904501342877675208020252005696726187930506672851613076046452797485547130325854282626916603813765840645714034868267885103650669434830487263828711793967401615429392638956855060687367956386575893687685293432156741531257093721957724557723055574889607531538761770575686715233391649392907234545374583404400662225934376063020496239736655868697759482521700184682510128292105032063430754168807951349400634702032880128732307769994168810928856787162053349513227566181630941397142633652153418775064376689367912249903253593001669514778576935610228172052819288762558379510606709874605378015434667836013592853644491580884887615724285182163937260087671126397867912051303198203053988166198296797001932318484391962959876178474027837339039935810017695695593548672096802595257475890857485053249319150829664782512833750676923059892843330408316315035864809551436483221026505157504393048049168882839924374054991437783584417668747813249102109056286108982124869271677252066140325428035223554295772889390790394299825670626280237025416884977889137721594138248046195497541909932633005977757927412584121821813270762374971676176607095443713701951607516135959833090063433720496479701268313849656826546973615648323931422687349271512923206065891876974812562158417536327652306799660712329837016816965156405690351593422807684441338242907016883492209746340354319435702852287435148619028342966334968086007453566308989676569535583474474723368907625335388003691116670335553423802959892261784851543042368334624477388408016550884490967489205010148409004549395953308115148047996471526060943563830803496213693808537195077605355978425582499961663770373110151747471236166831435350080063937106079639957021259629988076138625950407757386681433006937144376421904147529369365816529216441141155709863700074398918230883486772247232829990807174229552603258222386176026642989160711674129589541616568770246560895059103378310157082087085571207894190937947616082267378990134081500059713918741895235817840517765134762093658766368643615176403311799029743247913873481022649874151232426536780363762463669938699842160628928320013441027333960497543988919281921777343443661588827615753905900264681411274584337691412869404858815907728558854799757415306210070504530840871576990813038017248330373625461178300565286274135295072608414876741936856321087327501681050901536858373194469107419277021118153145769955594243376263890168278290890786183547067188760375027903288781175741950109184936443054268198086630141975267599601165692692731033204135355268375490006156273425946107609193841795150582571570877240852431610252572573335119092993439975158052493025275363553073696379901584905630127337907543890821150165941504749774970258317717268475516057493525453080551179593261315378265479483889663524597329001051551646894706457019738420372295897134834139755237428827583473868132826450992920129927794261750480074367262989599259342859662428764227473178939656522791692291936007582335070737022593232928127964013040626274178936103559384912027981615998431260039797176273213717791069136957726917776419955075552689287081853815196105286671319521413679636409174477103797392856545477006394106988207693381916154660882147435217712114786645576776654133896323485088906970254855889090634582033182200804698290937345194440856969956243294439366685523567018629727044791516920173092223090227582376745702824030423688183409868471447851315727484687614794724606453901462933797590769133666198993238812968415816620609360347014007141972123991756112544925818513223029234259255410539682877030198571491047148290614091679921629261334317059158117100255575062247964480878490702672977234580037515734497009359242285731617930745740808169420941802766427269917730075304574948032487165851251965763209717660828949107458773097529238606472889734318439836590227797566103631966082764241081361299076731753026651776513920045805263693708140462594403429157076024630476086180362754709903508231617655763934657750786554896803473638126945790207063186251964301363174950705580195062215798881895693294296775038352633908623817016123328023689182429440527253829189128507995158037564453334381395078516275585674021711471918671199462452941587054686778100518922520167117938646509869771577653895619644594737063295641761409205824520517247837007982310556267060328733699112462325208796726719829350856496273710766785567378065965194742401464063430710978988663265620146649475846765953686151458205716610686654515094251408204806082718028746777802164715417781949173170841695560051723418937978798271632134094323233818249830648598268618197061927025700471163847868867048171759722908027068086741502239089910282179011248775167937668504617576461744666626022841649378451009169304784867178252847676448376442087423268143527046457084006058516905369900622214644602995145523862591949853232987170920950213457600178807817880501121046900934704444612820268543833051733971737820064208395716335983361863086517979823201727348178970058075934441025313680318244586133823290516865156155925393397487707923619648779626556978568413849106511489709431056827198057982482947712433344421687508341006783938729278546551127592723143573572362518722865932865504681127780150595654962699028613946620324319244565627844000022013995553565461047779442941505647425025135747527942228036961526587286053175264557058179456176488035516698024119119000455404873344416935826012017747741923930882823492043418030216822773123129772417846976828285168170300367148603479114500917024170219419389167947433331343658255906615424507788075613868302876281706822915276601708314556967320617644961102520679337769397332979403876471128810150442808401073540763682618551232541285397710192568950139251166575887656777699477396828168343890082236417638612109252539615077174412705713472301090087601851662609903380183001990519024464709885616551491469215567325086313053410598617348094303465685782628995234332359380396980015925550739551568456759504997607647639696109030565031538097888936882579033984985152726823626470204597554581189082713694869408470929346316745133980968040244637741784110779297611388853257176794677546976698867354335651270020962390981674993422135001013007650884061457114215647534991651007644505778450894481944055164778004902403435613284731268337148102451448802336035814592329292783889067525727204659286527776238756180701205467212931600416274596535323464981816849248670376188309164275677270142438795048600108381106481703528490688803571277971551905236790707995663348707587816632949366974361102519510621547397322155688088653150897336369202843484970891895675474453787808541081556695754498445505197129397371623235364032870404615315781356258698050888349143732159651879588634687340208350158535111500008452673602473319671466351467460940472459512875044509985165271224403639798914672594674867914513025227727174752742391569031335868274977274026029757817034618557745491127221845476445773128319669093764079734031095805001359643191301620260798582769748673638157121510099485715906575128677841164883203205189078014021692464091139156880455842880420543264850720092607726937283890058123020633825511479237729350790670706762035316579756991668553911308614126217032514600941726434195868318006707152795308089759730015232997672329280674834131198878056956794680276790982029811840023480645552818610514772788203837532481088809696623125282426133156655328272136554334655543548376514140042918998563895279989576861449870452425028358971898047304755747105705399546889086317100200821484526957445366765912573321256313924383841620861230601368852893836424935933541643799645367280510416852397351493024241854165085533582907065493877289125295643790454726305265451844790945850832751053058836033984050789687275052212862983971544558223161488936756911457264540284792985874761982090666833929859829102341795584194442483985842449859212404152306947748908982162176976853883777824902008283726883650088681429555148356102204967785787466193032923980735344635769272017051534028477111155448835651585579579818749538998937452589289697938047241435305007097547358453730455566951297978289066570078384511015620456148091521091985033712613339613812730388523295673646105853286586519229927045980392803565571571699836108917245609930141384169225799373890499905458614275850925352757033998854699627350872146590900478703856521642853585181017152790114043522899724799237855863754237931245853554522636770884489181813976234501554936909545316829243666177772500763194201308510379328905571108760905594388537433444364776110573088125573216696635369220119324143479130019770696097924863837276356699798770100186139603292711766577313042023468781355810840641871198595237713900351051005068524479477135973682646015153533238864502960760139046904211334102961169872058043927636248888552187188701950683871753920015049711804451044900224887876479306300862007512757989421659566866793477576105073536040502044605847094138252991813213590196501079091927535920797092957781492630518948906971933668507751439802186110084380331954595662561414478055669844463344007967363755464262859707296938277856129272235094208829175969354134030991453102671702667998114895867471680179612103845955614480776824756351570249111088913665463300062422281612709984605351017716879901666197021326514607191018354311772907992455287021323749197986177453082361601466067993039177172825416820310282581019130854403735599147608432411542752374948626547093060620624444273443239535124823143381491827361476055917208019072672297813268458277279660783405726602568088830845933668801067580604923938331208800705865592019632554585165054385439265527519847069271956413795212836853007716789099491322944939684301888078802747503459141080589197708919845791299099598316904397945868030680655108741993000566728982177336496490842140273685022523844037444446248203274369381175879063299521445152000719592588417609409286529713002304219993221156795159739383676934683877568470231574524427469871228608085439571473140475685531203015231568131553046829481887179223875948169691823498112386177110330967595114828362819088450718145481750994487335075107874852127972305185491165683232715624013557846595376290510780700507004875104094763706516013315254265843312252441395749089204662044993571869035413585294887869383183783832359760710111348102787482506489848180852438643703678175631988421694259580821727653895948111352049920896466108153025533212719306642933865586446739367221339415139513610129276695080500686394842310785390532873110945312982173602537727628279258638370660665101973717972633313036860915862929036426021017112197827031646124150390446745126005509525347910919938657116128688292488408416910314699185455517222877623810658248442348616803765389269588568500027301963325967383377584781090510813149330371620425040356784958572321562496123644092894885932952681551562279770520176943897708569622465452987487097657274632837306809098412855412698819586011018291043621231793169597592896018445824277917815084338391135536831532648846376760092513524546490745183307157659288256195912558158004724063432128308690688582405025676724909043073817440006109501513615218855498118111640654040218349376321825488268958272135735910946540591495945973580824179407329381161877858389793536793609498278691220958220260854165705545234754495662775722296109042463019652902693570933019160088335083307847686659281126738850841378976704036590501099286215465042191380168607342318336657376084907033989110754508488535008427841883218761385826430629815766873585984742467128619223046001897140590887167787173066672557018095685741206082431041611227949166266515545432713998586727284095944904349220501754444933175780529659522651292470552453568406364874467289134658089573795804788488295166434147176352366134595196475954308767092468199966537645015398534271187095459448968378530434503755482511467144263251007410123705699575940795305291133328976263523099629757438382387373725725615577858094669486722126758859171906434281394051390285509870963556291215689268188097077538088712903818345725571280621633556737834462951104324407020341239262923400158730785082419453175184606669575554715336188163902928325270083945924852617371824057135950743212332549691897516942496694985158364129263067479300008125092767629569693243913728735691403557998001745805275456179454208048177993768446459293861298471157842401666073477288134534639499247073540037650754167094953004089721497716381798248220669429430916008464943404110962667480981770576343581892241687294182338728261188340860617006827387515066437955393721665337501525220474691000361426181588195584471296773995933822099490172296856091428318963650187364895694845644174885835476785671642099926659365006404804670754267638428600344134072735812958763891998910620193499656903766656945965261968361266865560414576132552680320819337080616793692837105029796938936992262707821929541005603249910984609627430909268312543050039651197237306609260797792892443405976946243904640000146468118806636897500461130363679779985887949472128578886544822881133776800089150187808969275811006402852746332024060792433034216901274467942256063073843746619551147758073551607728326352035624766020041972611425171878656487817263835785941229447915807916199082965438850207863998516111044954178370286628420717447555160694594617308660608453104542640709920592780439195503129856150127693687928362351996779570679566692565656570163742230896520797768689191474400896440893432005051418640733422916376211722655957137430092091474185440782061618660988366681114864541728589030584843441504293783659606589486932247677945971682560720585353467592637794724085115013040125277966272465157604308850442693371289134379957406070690536295772298721523775557244033088684024849027022845540083128263123885658821628533953560471948512302123759531871290849926460137381473759635898531632614261076843031440733202361236768686546642426682928933898197016254584082153407009131287285458497438302045171509232489270711903570711312790003928830255572019253471837862025940211245020933377679154385433202070125707982864877645463561821643846432721480059868671553590039516776770532043013933285658854999998032739247512862364071493111038285917157734577247793319871404369182862615472204628425852411065364346948928116118521722067522883293182614963787410619885952278536313621236177361340897522397846330975477964327550895108299853723731056957015104071362029888406874509953828052021266971407181330762545750514578396906892700933436994992918457010641084743418302784292463786606627902559586199371037381672445972650228370751960019515102787291849654457892802580194188357197875732612434361612711129166356687458670389587608684784841784332501933242236604367188969795128499470654350322400787934293186800337118433218077563384117243255750522242525637483231117959850369530044269706418119777484529989788685116236412398762835322773040526654099846244322669249042267346980248036586187240826813898230261188234465758115795671344717644991112016779404317073301745069771285752676304096655180525449285734150159291374950199985374483362805988447653367204717735133318605512032983063577210482209085367735195634579008110126117902205206349905691417909714675631468362063291597426604071250120804812483658698587571276756353813654553965050447706898193138598662561842121215754202880635641650886883743932911373696800056984726825091109814183804829682368195820830640617563158163890527914251818903050143784589637426382110757155871358480182845254753334004728487693756151547605991833918162329009458304982064808448381645673424281855024628959518634070522415837215722311702167714013142442218724006310905357550701776153228994110105919617478982418462782704684859200868580232380390614943608031893678839847934540957625902536708192216815072950574624085414486604803748520467354346797717000777139402237948820141408712891263569994958758276442886993771746662801851827230843628152164618199713743423195314178437147111400008751452935276747448472562523392348552501513752583896925748158109546193886490217069126832098579884706162636807759313214022378448920616326844438938000423741775753536277525519799110232374112168770161983575714955905571665129128533707182825675681328873013011280581777960021213683619495072539606332374714039074213491300988326874541298831781328386245867433888192219526480865650089885595481182024141253671753997313860907540742313500145661201278482325721853066503498088758498606622558803563948019484348379196029281146275963581908939245034744846947199104896150813448341847119103631122094253649169809471207239112160012438505199852808627921980509257726032997051085271637464878768734259617476978808394787616112756404498929707283861306888550859242823948815355526483987242150088131007172776227427461797805432309448469879863390239852867262909755356377791968583642100069906260315033920175792627473815754424131656128332132627004692516419835133615537843846327120375197515251101516861897309064336924656151689912459498693405744719897118270661067986808842452715761577806794581663705579354892981982314440455419439793181890413303236824742193694842415423589792647738001507526262027399511832573070032011155039446898542695095990138481073361526092389089372062290522283265987104090989417381177967016455958675951275833272361650320559799818286251856258826779241047154857002469997339022662016883634848570058139667525938933462128267691223478925074151023447399837614308247267236674796218116498212914980032794361961770846954484356664743614818401026831480436499915743344253974818928468807091280922443296702792091053187196095414845128390801838708915074980216500374542478409665846163554172054442626821162905626782278897872623559897061531393750852226131455340185369539705183203089771046097525451349165661451141721500371814315044495782499524914452020303218890031059397006898871011097336587520865815624650332954912680138942600725873638719947838010187762377470082550610905991653000425468910958538122317611605952439572458247526377018671691608302853247243357427692182231826390236490935032161276179899060519487154643011760590559420761084567785469442823720851894031977921455106111593166673587026780741656752498000618175471837751641662308002775373288625236006723512161095090037872283265298259843176433094631718967330809875245607486419814919279658612220949933857549590416893499225956051088473769209025630604989102533917738423552088490345729730001108643552920519095562889638010872751214025993864100995638817267842139531762531486053897420934779327461907647739940857864616399924836900823862769921748914200299753997863954977383693380020445115043160954549218460148882555858130715529256114183837258553192790988838892995865019371916634476033372562271613691323600438900977148681973501757046128919129302941934499010284954681718479641862192771467421398850219871109717579380473194190606442630898256646287139618655867791233896115426989385768167445680342447915494983159148278637040172041737599119487402723160016002008241455368651519825834310307101444417856576153131495918303464912119718254657632029398159307260141199198881513344421294163967419929232680808881209616740125925615470485199307919503040062522706285998383257511954166980768602415337747442467646043394446204063561459492505829051077880201872915678801308417796177841722689583031215762908366104456511780857209072746905531361064885523518781156815139766324994513917423091430877879078000824537607979520423261172045635509473520396582263638740563743583155970561482771603408486029719533714282537723601828699866350198727237447293971011521746442134112980263797584029860913046711053004589071204789217039471389891364572105323619051593733347121664326803261905767037552231832983841219825921462247785742892058943990547341044971504978603850157942078119409512085979558398011692147422793713266496432662970129551091619041376659477926994968399730265121717693317754524694100390745398558097089481996851170589778112896349922914861251974229486631122829475072701639885898034100512614797979517148046929911966698130953166875954772157985309626567214069211538833104501902342581291578092956531384396451155965552860488515033999608322219567279030825210788530844895098028974101786226281039650091649308803870797861267109388089440595466623090180075327072659316032897464683820669512152723292710037144998781017812396209117848912618147995486256530206832068819310914707772532414364402791981790292038316566488116696553875498327770454777623141323566965422003767712274291370621628881549798070635968707162412477496222979878267023859288959160278302972839559727958890053821338086819877208018910423306183728696040317260036461300789520645262754350914537814140109481124311518078654917924322332730102930824784459006466059950855368186304598350586344647156463815539807209056858102995466935277220424835273337886212195331674586360030764929854397288353704919441303698433258874741309699310527249275791639940337671295443129199799497089029720058954130678604719945395289887510166331041638342848858800404776050069775647152679906930920797737596763466079989025655158026143133902843704356657055642499865981261629155539822134681014217223855984589525809541495677682965207558409704618167272454298551021974408331743659366496954265922622325686090109350310627598362167561633709643961244086283542306309457747507021943996944847162000752779370474642391901921350438144646499417985186431143286098675238437921295356532155155059654680884100412459458676809714017839212439515574039900824867443281259748906800578831791007642633473964594480740666496585020061735511106153909615249067218579716497430844884410279101545230244130787110735276511136579222708588683352368193262636497155150317048529347948324736095825409528271894056690423708539438189311333739082158177863632210251416006183840651059885830223321861578555639063207240230245091249795743511372644352002045545220975744495245124742847962999742001622404498339757534866729051672438375143802034249214336011404247686311902874374821553580057177053477907708832445986140571998957793547033023092540321641435481258248937861578091116827153859123240487380412686824200923125260203394283589523192193451097595658267597293418179844544407826967373594762526918025433029114675269695827212726827956147717815613056990978095808714494063903704622427480778886983329596109092238087027868962987384998704538035113539988299249778985124676885833868104798324641292933631401379734534684724590164430384459915216847527473223542388623206254707669771280678630219410517435693100482609852276097143929201559616726957501418633998122634488336840896331638806567367273467121100967411230058968822007709573981679560651633433575955919040006628131128006701641944659670666936772121537418760185131202643847671572032753387187585514576776439241245035712100627646055401157973708308137538181986822444428015831513792411768291638374528247918313627278178714014894701420575645456733435200792797475860064560575258384928481121160174719180560141204348512536181169947579343495289448076169936163353481511346546889622656534185530151834724507782039072421951801185380160851416704991951148721081190114523640171908191255950268268687385032335293824679134655403656532738014455131309964479290425760468343027284591784347716244752695434051001853043222718375957163454234531754062734507483625301229765491652486852071656636687473246854096720896845837279462278712007280274268965150583614348305719794428908900794242370850653062684502999781956979671900868458114944627233673492334746066097809514900397776802074129792196308927259791506093027121376238516778818392717187967264146140508141553454063543675510093023525187720887365469045719048033942960661873546157607959451383704128108183852999263524403242640940927228278426686924113048832832906379628906251635557637065348895259283026064151828433733283635815411653833152985518746093735918012513972508505073589024221399642763268262412907188629835470869645666151387625561112354809726398594897967988652878722216208402059903653151420134536139076148491403907064019189138997372818193663469279209704077873277710422978252651594379765455995456814477435412598684000592300026991628313109146523679661282423921337193796689882768046392558079346535884956333937473790306505158609559385571957544392951123361450411640342930697189174268921894042140344879306733016553775614945001782132002254588619477079600805999108578281837524135095967309550927597906069540712719819463110415868527412274518567805892139306539258952944645096897768749368138692213963997088978126963861748093150777575581160809758565802663337103257716912064696105230174324311114216054644672117253396372467389598323526974716059587333357328590180800463200208341974338952940341647595131732027952088699805031394977091655655980074744230899090308407590904459771565289269171075418191546292644911507938293015883713162015070196857798758875888979568679198083090974831981086090353998576046575887307340155371552894163640319001180005350771014263627976382584307315955734838418715109376393123473875767951232551562768513067176532169377660427445683237451457834693951877448040907323841657285421163071110875177473800226413312632909141848031216678147548972824656657966989508254222530167030872161379174556482316581791441177992979937785286143259130677331482530283958374028860463189070125198020265269569224185735860734253875861478360514180851458928964971148744308148801910420192499436063718080515157212895635256957970263784626221619115764999329827750310433038639964131211372569527852038654625664462351299395205618217361632402608060368015733633787854229811036158144195530927906851030887777230201593491471734674074327118400194011571699751036323485518349589689068159143660996035390553238262853901176978573263021877863970289456641740658668680215586314458895814918320049730307644983050691078177441148559655982273636396711219746642986796044524423520109907334087190390409968177312439487864263298136671191454043808736441730867436783260901413067442738988833273829574449035696821541942134427823533241283941954066352324760793519211409065511375794219591681026043508153546323568084043468896817861139565888412898040203101469860085696419009198277332853919800463303086222992684181781372381524157922700757594260030703419842137008673233165107062118634342349311529325961512777326616703738967047475200528637492702096219787907549856921082006456190556386870998453365604166980049631660883011947390589722348010272682250855671623546590695150806074356466406549934224866096496557945339871342346593528950708293750750868359342478514677801705648412413740992964068224033732710192261902089082829725923594657353140965316408118013165554626509540831692337404916090475738592097027008484279965577778217188061133906361742610425523636373511734507005908113917304195174056994822871784231542575359479301200562084280061219482736420256571448145116248640817180512854575133816195800506593602615241699757928827759161836955107880151774816379476908011552433508292002993573279815302013165459482364877030925747596562069959989406558107253116079087848274452564849094957654563259928458224577167981996397066331296676160981729352597159611416482647388494851699969425622524775888392031815622129112279340172871279330925964509130060075480920881588578787134300880941655056788862862539352774891833228819112402174654061840887554922422293743770489192546175299371134040742560622038996342766410662971490502123844140477748500831949759438363511698401262078922425986728162395014782934171478563646279788364022352140521247106288195120240833383564601377185794213880788732791758509286715809958574865010808172661443941733997053058565643872905235236176840846571139894625597767088979784123151617814554348924642328700208193097542603975254577434867351899289154431445010277369437746879133790611883551925476093857756878191202397654386175524852089012199399866860019778931896755008080785649194534036639535345468524590283826589187518530196036821282149613762596266323274421331191391574200744746216426197810525581786236244434287369813083879226497823135878334164483274095308291633045165727185929077677069295076579160138092586456650326542545806967478298377195322008167014077763613341950226293638941455886653226518737734370205577714740937180498183205926665941863198237278246639966289955158779900628535814303798417594873719700167323217046355354536409324562513794930343015256578878010547571900654879730898378278244250765182924451198048861477308785407230486075170819712404754463443647849857343474556216574575681199028658468333156049647120629363833295380835251252420348419747587833075705580583963058073439357165814950001359811326241094417543261371606022463140518717083913724179161173585867774297400466891337713678497312808315626832382688529280221585228373442922359758896112196666213667033428101017282670685511642814701926308715333156807682345203167386808970910757531192034499048620136805934139720503945607984148131980733439533197427860373181585751085953280450422398349098288311586278732759984922211425610531229707804691339169966361786728007967775782984036779892573997597391081160894516810118441086006799730465016978785007663051080714966736917776870265367418288239425002840716323698197719931871632688550757812781494590204582624071393079720408736316448341846211466471315498648215619691518640495178064536408462536410746294083031914053471308858027497610078582372013877529252503607277559393708433841429411373833743472611302499021785883688220909751408515460820646897400475950127302850375169121817565121008079777963340774373524585781113784663738459532936307137205917348238163474939423354091547266440309332378507587152915120553821037036748879920057601676508592117238958077641050985992742352889681174554379729622697435044319830903774086593066496464752874229508003885390470100511109395473764568846035031268490752085832249327735168105516984555766785611416925229022966493789964998461085821998126169562345352164936180599304262283761845853421546162703779590279338578615731772067829163820312251690410592330018915544687789044363919257693952175802684211033932306736089738418276339559010762024814307519695953002960210438400739881405474315928988256451156367596744063973836494955036361868503265390940145029421603911964702257337960484112947511966110464826647449472469565693901692844452031259308978502091565825186625826636540620778713983698121646981233703347149718758620396139496755320312088802769411952014538507159958678875208149016989432054009199300501566110772863681487972588554090740326696189067708743614622617936235090374971462760578688236376882038382294550685670607422486553130756276029158922248047709235232820156775161016832892285464315476278277663344389602339899521988297040645143878934971064684042564769203269715832966742678391280361140018833502620132922814226484321573690662718757906703483725630001086947206420051559125403727384152772262640607849086347439753813288213043955297126810577532163934796208258865532734169051285432755692428423385645275438942933869918723584729266314914134595091542181261247942988927165988475400054180063217709370317277193658030862182160854583253175519532591448330067307369000659576789256617094051341879355676780655765388132882235581082097856763987183257431025341225149190196401159630406962353380890054462419402432976504010802932171459962516564346536754890583221721756311410146685142515829438282353470501116328415863332092476307929811454195883129369931764246634362131704029221307425375171024517243142615992310095209505587082727149323165197287940538609454670461536304238531196436746688294119844749466931797962397906192716568795432067976329534514355098597369149730852138426416471626867408541272544676376778826749593393917589126467296973293734325857825106328472049308311661780856583074818662443230932392761740295070687372813322465586203195990276577441162954812645292111485175587952979294296929798644995745536123979693140218030117043708867030266741505936415424408198136872315228108709328191182415723267958715934358211060734118084815875012614804306814410002589030917877606077014417979077158342277916988235370759856265232463213722524871350245270197808218349503473285881005706854556144782584127620703029125867778314064381506850842835290156866810710300692961219769877136035006418375139097953070453059591095284936062250118233644919995481609769901390108811328728940794022061160333362689514103313994661222964157579263844745553523741238188121193819774213831894135725710711513055953908572169984782142345333568882260391572919321704897104615228889581694607486536479285904483549490644615039695530468482401768110367307213499931832743003566488231364785234289989446302297542029261572707070110913190526297908351540679095450923310613869663575904522432721751192157585987727207556218401441857297986665009118452194600783334531853606310763276512583928847312949100719736590789717475181164024895759564719208468603406165763263830054822429900859050723931117781155821545317423885312044017278941864460118339533446631996865306678414319326380867367637965694589656760895033383649297452366793551471526503110272632657598313259704800339585507708167757323930841699730506107490237934512014109921932066019284802235708317607308808175134479356473835327144793205507931664072766243863094216961018657225943565042812680850163152044278938059896328471279820783364562674894298974520549898540652862857919717815334977273989593852072363194283771675492094704469932754433578017061653718814268366056068283637867038647515595659992623806060742363715664591699144756030902837490877749032781412087833306918449977586753121831244155444239035491186938516187079634571963665091880767235828955171234368278705056852371620894169700103903729243682571525675194876922082666605564103041523831468325597935626599620371308017366256983583915964999140272553026304653730967901498809298286985076549785799669549994521633861060595410475006985788791253415249298925333184549329718262338885255927959387567890967365185320449653656121304618002313562945713798306426302533121750187654362440342869132410790191743516758353707711369495603260215330889179895449688620490417542981887693701385078112111574029183261749411780276626500058727157671696918135474585736342472038966076114660692908838261690300436709596330545869715290068205451546479871749103201195594132115134337709854138145321998699589314666561723046027227847566991050328969895961268202781608755622188914324247187005915641298251403506692639391446259702494846857980944078954483053741101281991264095665166739205801550639555285214162161597327915860834544858708072261524921534479690475064190844380974856404439836283171708334575834754668935179481411688485304537533106798811652166084596620453714024322521694803607107598253775341169307232768761166219856759627050860442330556899640398319832087028812882373139112167426840485838203715786678256598159770831810202821773631642907025127836722712596763816394772774984239019512983584352193486263226246040338925527054785672774367405974158692915408789099996512670042613546951426438065966308769272886989146814612743120787859847389190445709818689823861994960081328587958643771998466376919967374803356949359310019929550146976043658936547604213826994322765387910487085750116463225271365033342901817176230377910836723928297286186262770473554358916857605549402972879863960862867120651484705030257257965235815283386479721101061331031440313638382824659608986047331916254179310060696505288675693717301393291077521560550079269961657220040579734505871227064561032561517679041455770269077621479712324641452112678948267359794244870863983855027982164671099594769064162786477510915493072423897251291676997346903464670949853479812173647873928569687894959397465140765108328118152534719655438494173478466815446338895061721414926208857125280183961787300640853571204576723691578734137603754896275923592550846355153049804066574916795822396586132432694991554854788380188228804305071013154102540479276849754344432388192810609022606965229566694898027752276010666557796835547552691557610309823038976894399773296411612384391440457342495423708325898692046872682527422333320206692136997371578361125945275219358469034510073361516747462823781330200390165934842983384879785285589653050438703597340578427429229221892418017908343293888511604793827712185302613834864840922208415194869441927994109365500228762534169281089683222277701029169745422591102770497137981233091981805953512089211121826330247269159733580057117995825611565795253175394424384553193150883369286193869269689532752133591021766967765982541685679753685202604030620354387863597941441193648374925509461541607358281662007016669659949353578011203673247465247893518423766562667412702261145620369487473237660685595092889832001968639835498113354120876774931647486083445968360951520784839783402517982617359731415303189781094375475927796817269311758498430847791168647123233443822348099904878751389171820526816478222844729761184198863039892915060180973116944290083544301885111026946015704780656404819797942156312557464116720572832364656333080514331675064221318386540143745488338859319809753104283669835015959212610407386233719928450620598281840801303131331072969245523976226577554306316993743776198962930715851201301089370801013562208036811909056697369757488236303646538360658550708380647433398014504252334150358073905527720437346728735954336771106960870564353721489371018996633365608355429861996376069934336820374354358906334748051870676113575567169445670908491198266829785109953284371493009703625886796295390822279278750478053393847724901989221708335682638479142977744770022380472404158400827341334708817997532354692454892377150518382469161907145017633594920160838144905281035849454196582774613584412422195092388278443515338782375714543124413543974758940435364443860685271566997912582487159108036508736381452849816954779579375045054903439648904506626232787801623395012370898404180411416565247546020376219697733091836925327507408699059054227255079931246299306114750091403114367165059648575480173764564683312656317242378258439862979301712264808361538993135435894120687523654981784050217347017685724749194734325135777179793329419873755837263242875143341480655686878987064699776836262854770013275840098959102305388191296769178943859449961276640888710947296032362406989791583639877862642284405410129536495042511279249106477775172066349590573384358279561996480659976383202813822519845930983758408061289391809345222907749727988357194585388792409250390876674555171444925243689851650695569024059199415377659544194945511829413803778301615857972951630748700463965612871250376189844967388943341480184903509503933887470391426452886027763236517434090977570674841573162106403531984792120991195670177565410878829190601137944817182001072465106357768459168809322071911558447826931272352428673855055711383584492578923155327001861082717135655579675089012090150186212250137595188223982128620316602527930611849376290441266557379284400390529382654624092074325432561053445386427847787857671025064702618931510225653535184215690134542742595944183981290343375481310149604919618050196111118317728081728888895596289710985095118872226903747408359935282256590106808357792311050868615248156452457413192887449701321361366797578060841171712714771175187736490908454805681609414462263527237541805139353947929746065424352816131496215712983509952194307978235461786136438780016127836566517528762651651051791804512522752280474961107502566286960716371614486615468941897568324134241644635787265817737916428551028761159826327917910051117802151319249022706944137460868613496103333342409464533273792583914810715100009870309351438992715929590071564451527363994567096418823980056450670132622829625530555245169130048591721729603781299041928098848172163836660296517217274237622361562090691734071376020933524462622058094243217585255053642961773903119031192355111675743552571250191680005523919124764708817563357767462380416561467937429691373424764769449864387960999753463385695740027227177779915335855887054107670528860000084847691319148361080228957302594832036760583457770063564243486946731623465610859357423872966519993586530200059470922383791181284497837302565046324688947412876205058891117623442199843461566201195357319237945676701636164347046764651940247271511229351275917477129732713970078452332844365350782893848721610797149387839798223411853642935860128741200764468266654475464002694163758773563942922654425533093335631213523331096287005634785163427006826095727384127766752670854890352069114204315887704616739778265640774573116750118817238807384572887183691158272933027656077395173360300038561790028428514975412973358761858187899923267640886570136700534694262067453243067647640558854696027190267693619190946499871944039242866240176622299627965768484023405210713956852594106916317539281169303122366510559842270960155227113450820428394839178601718628677309807752171445626542275196149443133547697408486034073160124687636357038243180174211238105661918466021370998873759128838027302018048148220891547959587093759008988036666885424063083581068491176754589745992503512437393198956793447138977154892299236877220744061483250945030609308003090175450831378292455700881751918896268154364152326910867439104422118610090446096205153127559063949919600256635856451633350797576742258978341424503101818935662921867726723866499561016388027027508138600800705788761086920566228778223216479793815983414517449383203173238611132417669603992288121537549909205454586335481135453948584184071821867598593722714657546326706416635785131539571529617997813802548719747097052386390821404867178050536652691273976137626467439341962920501203970978485822067169291277423804318211956009790691766476609799501568133999322864175152681346044933463343043151198532818151127473855813639309465224412199511853365973058972778287661397491755900163292492940668221476170105794505267449938297412674886847176731186880622523192483545474645773709187858574557054147971701147789087735087752014385929150401731255400145071379976457168996586586163651779007936389934975381973256002449399223336955088543552276969134204168559102981512350806063283619014540727433449805413181684631444453762366433943649612435068070152679643539888562378746805094018022097269906998661349558489788960170349305184903910893988492771823882616295142575257635019080332604599587242571994592358940680284861477036556090670262220255202482920514279289987117386592329136337880636341857488529067483406006563707572365274114989437941662093233179898183194861452727238314323195606219769471651600062264945009769578153257503959812341000142522808698999610429429370314420431172703521136552533965682262911965665495269992181084903596379137917400116604262751450351192505096141686803656946306300327477710606422180862692060645458111346968487225362213709153732011249528554213294046423901426487667449260350829461826957432123484005637840300816934240951997270588042653159114552943935206488528915420265310830178332116872831601909707350892023733884030517666510703543861235108609624274078067035020451508334519394041414512120871556446392961572412626273211423635703558164269821330475460732745851708970337034985431266577445867747013870829937016849730829480970574769859404298004738343378060037103421571945909209676839224319124884018986060061915395363566271427209910559050527565916282488314661902589817170550868566919759868868307317965103476128238894007200218839441839399870366736351265712101850772256330997236869647657809237111801806347965712033449721092281878293335809648800117591390468085078516706321810620544485762548799488777352852427186247784816327115755171979471785120051086381177233444902980394854822674695725900818168416654141129044844492702180336987829983936023496764326372150302603815907173233869618184990152973160727499205675870561702316389901821519616246108626503949725709519631573941479904736741557376455028834545384331826146035276447702820919139761642500720739802441560608597536811099589146344419389068483458974798956896282584572544420638958215328785750802810488457332881897301734958301659312615058450637988030240692549145258361312639131112357563926763255583234962951763000574261919496462530021754931856156041919899017338775825320172946504821797750546132505441356335641310847582181716094200995430556506091310794293206804031888324536773827444887415764723090609934147359279041083931469882007717386652579112393516739949684266165044876750621383798898116143543153077607976492004909338682904526336401693685477098603358751136128035300080114117237790431898138527460055778194386708220745522034595146079024855724146903747702788926754959017432041997340911190764218548547880111392593397560458102576642606470974853552055012460566291122758016337644258479199879959124162981778566909425926170395931116595250717358401149624437085200137418456471013579947966517729067961887125848466676145177497181008263259841343332256075528891272220541778664093988625272499797350896497715307843481871257112262906049299446698161091253043951054290876154616113460360091847064402154516856236639741830113892063662004752629217094152444188560333687003451192902612925796984220659130475223191843408031044505841148826207536215192236285711805949928565993600089448055411285765621375937890532063445203541495978854043054860304724231485121300122308918935597406989230636629885938869516753408183623773713903408999868186267098354224312287894668990041826286301926114915193592040001544170872660592968588376056263032415024754902158357972350802999541473745971928198452891954402399823247306393405849465278701019956002623060750173428970587757769273147544249243066296190503463376742381603435151745032522222058491784323853813465824089302986898230087069676053367019960165499623618297850876941739965029142254891486377539469366958100985572138905044339627236590902264276401360516149866271691793952292108589558300129038288938044351925153991608463304312338117844540135275556132420074994854027314682453172841747392425584861867845793784668819770104304801436494680031616069470138027474690723229892929791936291671583458276143439165357618617647108264652514606102623383842866070252992654466358153166504250658319697342199882659915653980043775826377548011812898080030776162150414433538234889165210853021434416914607487751442375801462315595056913386810917428998474158568009698809432799295411591063616639997570798124455071556712989052523359212977905921777382467848027092137227786512978606013880544397653747592032197755901852105244089294028437271910855984131612452307174833631308616365669547563834389702726521996346473735934100943095088781278104707119670206609068345060905118322062725761379901207186062312330582698746539436227577962552765303467638894809771568168295862403223743516687222821399511031525557977064305302379843029159463255864192084975027646437839266835578083976696977581411092684444269660373146113176112944606101126443397648758611193874506765755889286547110788307655952593545894705059534101316074110811724898199994074584471851561369255333728263086672275362083386790739183837442217802340157127824182219833839307019075441952049166289172703576738342664943668798889541403285417328330544219396044381659817925870239429240026564853012106835103781080725525386422739907167149134632676285903931941526646540457471219266308011486683396660020932571289077942930954414528007407953158998272846304206619091886296801508331731598888361189047682375518736310131176871517653663564528289011661967329257256929365838590824735024828160876740952264173586190611089264023114360926213212082450646601034169018401251449881117967096228043084907326341597287258583479882233496754281678126938047725793322336356049265910563507728813345994127261843926853363559052292374850833198296953284181935470212007290267161843958295532168365112032637328666072295606240196999836540328673863166236943527302765730663593823127766619311068827857855987145781507224746625523286058566050244525434820369877127560106661997246169838148689810760254781517644586087094887274430671845992938286731501740759086362338183029902848709018951428511473921728543078063463814608557894290990969023457963869121690522414887835749543347525618355791253499402989011392538370935004816104426877643874032904535497306445655551948466203327384855593123860615063589658857727561919326162971648127290714417964297983338196539309156577239484507215130811946344201941405632035058299957366660697083406333120477278557356504982038672316488126544836781617133961439090167860045869278891267657538971158193139919278850516170150385983712102269189001111667075084887475592491077872332812541934614473577191796463515501522616530527274603360766401639321119984331963929732925525254248018838876126897447081616982983373431768970663314876894759011380315463535212797882656378122285914841948824139725448233215566340946872961604688964141628083263631511623072902348590307796004270254761385524755934671634030210169933441605519492292933626679269888922072518871304471815410397511129471104517217025575321392537808673031525860407583714410462182859011288033760154208621241680308801988709649057068957485661657010729349701040529243031951952362892094032846993205356298639326394711758871445860495548963082099567618576847900160423643857579876561438331482119840550273225338590657505467877041396590470297737859331976620805777711476552357634013203390309159553203811365296520815292572468289394418839742321308671200456500876850726321494628996863691585451548141701946649781581127122728935316157443384185476337267468465941024563493120420074327483369776536174674585390346007350178790224013144157545005264832510318731079109209783706213710351035487016216828789092014850282586978125000250939220007573700741364977155827319776771031023174312976681107197666408712350049851078887432840479791128904415441757040281265683175981789978986132530345954472484190620524066937373274128903350349964189959154140369719273899197287802039417739920628325865582711672507835912884263472641828027994701666607098766226933111019257608714448241773902392530085814223824615760908294390243092136403766394265248737119415062627473448241527536580415439422871481010093555067844969441951532329717366877700628116750883480776384455529104290931327225593765323506117166929993582853247070362866419368867039163356820189300854551597205241622534100832923770146090248983038808500214910598088007679436539203892139590547373706451916773418749635543429129888184769473142348191901396922845620646343005862818192631481790170925440171657887509543953939796097780979820888701057131451143597044502774526356855981226453468740241249165504842514853035283194284798280413412121474037314561650087111904851389694899216494096289475380287664762564231578924699878591593463909920914459601292501956735547767153533692017561695848217856240213607057054090505231464659179139941349491313568787520880638006759667987342779796205656849310889459074837354663358177724133224214022532179391406050442013457830246586491941914619524876343255257736913387078831493997492971935240213783014796645799688612668961051880797949187340146389451302144217394459181891031061103396014286114769361065684353102161326894162782386980251680956969300189562480223525102136968912751373242600775846461212017974849171397180106054972764766281679987926694043554073810124182327339469393572281539090773563340886584730039869199102482104530690855266224257940080188459735288972655942588464140867290043329980653693439713915492047446935679729110098294803167375866110833763121584228190382470082926670759951718692606768722372793622353275619756071386015232254547402250884399904183223545404951122712048669995663145038995248781031349855943233366121344282762098821713616819021596242802294969268984030379004910744832306727024773163820764217443962828622690110680451545990531836482949386879292533056547568159603811889674959061401858843652622665741999867073458331033698648355572698543282482578825644514032230861181078466059772015264953212669665096174973635789839990027241803821309536238054601521469383119190855640523824609834853484991059664572903600640552074324348383194971756366646534013575569080316214662471953280840935147910363471931366551220527614058490708750453703831876202570542437583930009171425050727515946866587409547865484787213828049431272979336609514946757915779340607240898107227457258821081730034436107421485182157975931731825936300607513724302828738581027524612206654178361777700247845227204779556592742709242357236784835890079115104985427474728201176466352032125038446183216002294952899550327717422485737169599736953732840661644872370267940233836330151780342585566773416687884860589900454265173004904887447259869866071022386558792461753485368564239045247978929089927575736879096142510864194859151985935945838881374004665457264739753346083274404665359323289303970707129844379023306455778461689559047667388014470775152720150117275694654109140044761770965617043678699088508271813584938327536795337947464481400192780661275639656840868409390076984865892109167300549379703299374148996041734711752248692096168975055866420588484268846375958439668952009993184657836394913584285570414281144476935093645342646811686925363830203763367681159278877814672301897332301720660957593114290223522882761479171276408337009659038563254587437675418737768667178614001439699983446963519653383381065551389525024988545733831705842370064758631284761327706586705620248691754137567911984140839445355310547701167601833480032330022415428222759613274650058970130016282898790662375869871918955088264013536258857490356633454246923049541842385888481366738831487195982160293085357791892077244733723351354191972604439311985426066330333218796256142049754795299050256254942623150842934539157634690444511795417116496230961021537629288844840072616689013230296992578430008645135276581084450020291538530326562483960417691551279998290127459046133490882158442530352563614469342473071775187277493250753983387421467382866665270563040842187878232167160860157288842818880387762816367294687432562702041101897262222795357959329943567375344563309955005819986801755234990061814123189047882657504879278597849677824185289656339469675979873372117546246955288448818937607628662456372054342517916053464934502573291325294151871486192127529559280505826213392743434495201239641847317077786390160798142803539192153800530537464941866702785650454324334839719618170560669834962832551579281345638302264206827938075639371599169527001385870202818917020794873671274372990107087980086455188391076580408766388056578543063989842831855955037150336694147141248627102947563047229832651644839941358783817892557971182900486316034064203354179462605257285035886122532706397993050004565093511835044116111152874711043101264265099534393138220802333066506651737740373647323205719065554485429513082752383647911064762872220285013885759105584455104789921018371063351579712058103967636963938572484717903935049020128494741124307539258701488551400380137594096335654613835010622401462649892921301417965431570807118092462886127678871248130195620329747738362066404014177082661876590918967608011311306698576126713398160368600458191264636870423220297973339316365681335355513111420543017538052410503272741797461275737502910058403042059540391759654653986495316664027241069309000639094427125671474768266234351002278393867646019201196762214008725111915757055425177183055275267383065987916986126583244933195971227624841604111537191537808409092183897632111784808646389305490227228962643787067404217844817456665367747536677992016370867226604598329851753026436039465302459004131091380221539698533002470063685360846502212335068287333863514344955280352372810972265298520810853926301832676389658487298539720370803148727639145928448103725431773452743770198146028074029893815373602017947954338374804235254005312014027803849902845341764612661137332900298221773188415600809055151377560762710879085423495602585717180997788750910891980620542092415790223183706643746519026637561017258871968542324576393867069361629284964853066910558650093324010154882399398530675913745955798144772851105945082893512058368756554833980569558842110260510482516063391699195731784665539269954311874369378488407558445947586356306821007668005895452100378366139587479203899744965801725672546935006520118133210859536831994187135107703949816116447204567591360968123046089240320875880756413497971242669863945691376243480709775323160045933735323186468693877394299670958581173597948290128543164227154439997352158675700478813687210574532711508221658822720498954270234208501181643312524736349240993371488189990102046608350884601374322318610642128041779272209851310978431453343981213385136261795737571733565705716155489017420947094133851952456848968797289779463633758797032150504490503622585087426796652136134993171552346289540954558278130556656711844691356518775329235839852850293478830679505261262599140376394895614890068138807031615655973999619061306021103004268178612424317765973279020287026269398663744212086649945149153052521503869479911574962443921946532492939978643833203607986756559869834806871059493021348332906744239605394162759377276843187576982033706375062594908191927045935964325834732588004428195751345520100742503643601470486298764863495283830234734300805599638099951319827380311167990198037754598424296701296018634941008938060378991224016443668859619283864008744294725828106161002769823884940924543713795624592295078084224932671298374261856133986660094709493262176528529715771089179493317822954852507091857037870214596629341235065915756620288251710292120863999789196718878541534775587469948599624784428768474873800475707932301064223929082408584355406843433445598435953322548000865859297760432907906167254733794689297990519620917675491693868821713111003020892261302739843122007749331198225098106198464325038496764773466482664110452804966928055364293967116892151528209612674075564251164528362460012713810077304341414162339699145661378529095171103887802531274428524282662975838309915911723646253581951421371797149281073872095156523877156010917652944422663038192808973079591687516910230530011214139121139232084528297689954182132379585263946664694317997963009689592491895293259651255540092653825196804211496398513745742668096286060132636226605605651392080436336737301022181015391521245943401271529559777703303885439531985864509191521343614735834087670394565096299265886888477583336975542303674510430950622476410118672104705076884840633636418031084633755222967812972225251554607390349539747287387647495141674963292042683089321397801212492365861024715073558546819077532111106213620280078003355963468452041906202935435440969719486847100351051650627049981225711091086839755029226858771501584962472230633295177940605401434565628407530020497583544257393946556445311207024032358127902849372805982958197468962634100628270195614848629431561831064850451745777574806939610924527169424605035104641762173714928507541476352611161803370751921223099255447553150087098379672804672216479311708836580103767951107918909179850420388005406402980713564265833808241264112203897707374232580667808537585595210225048500656313051132080659374170329080271881584808996007413281393621835321467999287977044629486427061898241598828699085029212807785612442843190100530939904862872197728553844594523004909243178258251621440050093570268476963252104151901798430025211164728640386414822531766482993008872860903286830201185418125631014496234297853477773403387525446912318806197814236102263276969862845154455153207704379660381160236213101391391823275418217549596976268895073964546382046764602489930367737406539128386069932999419442092614529835934592604523151098857785753408387683271851659673158129798724414523477085878593938889063319442810373098579810318943821653000631176883155361618865306627430692198198279079070226272927975103324989370206720234170353403975690108191208830937649985534063240288810313833037129260643634288244757946350486005759260515824634692381355799667671862090210248514352110004720684409237117490066839528945499127055927119239279504511184831565735808598012659095632928402866635761046084507467636737245565372957176208053637036213036075443845680572318220712705890586314848637429901858171539812289246220710841047743549006753066429984879793246035655852987411841002282333731631717293088899067042118697739360091101609727400699031984766937670478972421457011338115169314152158119462528803728528990373370488393147501503996661153154227944995601102355197752705793580486998126816592092042556164756818117249771829946866899133211741070578690386756798740617167104533574453999039592282980907952366042109489495267642687415143999220431074954374394896146494767860562560253392294485944085334250463519760186719718625807399033919493157630470829503497641147479228928725290134064104694072150724096669211368945286104092614353802958371836562421634568838718858268127825117669653881710493312668900612819893827704968270797264958799834578313125970233540441758826761604891743804355177671341380367768735089728557475988144004628925118970426505682571389184570261614897771922520664519449457328106894820949005840462168416655601412576958800216353069681581930172055768280936730608800914760468911599803757749378821175105050545509637792254151864249269999523964177463605644637022677618497438484666580205878439531167311010450777083273453110057730586859855579803663710127855413079123883022846676414291681564231304956185423513710137197428959775801463981756615032749820298668545441303944869945276981619555072044080597346961173803877246546984833585712939125398419629491009202910802327740547940251691231281790697669063853006152775124890701066810761710915409466577397054753448688617043601667739258371308637497487265473043312352919679118018203949239464422050012793079198156154592801612853984094272424283553696369688224656819972710884802710793690250499084128152920240803359679455169365744838232054135419696288757470897774658215636501692847715849227343159242331272979081977404488090600597794542367761839351540311692938795119452397357321639716588780093082075090355924618121337874195466170836169974668904952217944618571125550507559361869238518592510897391218636171905195642293879742567193457646194379430487867983044339498971462997100136152902501349305081321226771234347897823723192948759156456768584179652089204127906760254187092146317879120114141121801340036913128190608459379283870127220307679458220278863018199903496426202569441226537792254151823196819573372530755141005191945479899648334127157284622971223053782506201772965454124880585493923685637256174209806534055421518487062576516702631841974007601954024681465914200898727403053963216496157168706607616693340594461782943696516492766774701381977382249411126384430355441498052746617975146808050950507112518511053618011037576286445734066060548281288222860919098561706525308459667980777146702726796037402903558092203969241174732674707986995922579427639596614677961871640473891592993676063137697153591361950830337349462160921894636222840676307302627538657511463813493499138839150667813575025322762901823376973214310607944200141415035088428150764559610425369605039472297289771159283773333286162458722003565290773927712629004582842126178218029797745405976135075627416847471802505321584278334709415133634078666691758965478035137599795474325411597897320335352695757859286869101555661626649641128899201092059055107808359151337669769476993223804729461340249998920631332124527298510860789367152155514456297091206462230081709788923264243798867500006723164795811175005385402831406821385593190499485001860816033808783189408943706497944468735777019328068260868082050577264583314857252980070925556211843077647243174530083346307403671749796626259762605808344542412522024885308554223399811539337782408298666472309424774146438976800211330415613995788841834647043868717201273159938785275597932305046922569999985840691030164603330983788189180537828530446481101247071241173420198286236886968513044372743823543586451568143404939433551466319740158524664890708627219969207705315304102808920851222798500385096875197686978120092511089376312199202500031852162621402878347037887611131472619529626673221186758753565973270245670699374741975486849969338717955659966719368411225069868586220390271346584071858006498552932804255230057689730792662816340670050481748866675881061469219080157667725656132023350329312093855105347642280196378592996196198681088584092213769937570882428357561123318912867180648886593655470455670173533104492955785252913928147975803641678968424072424181647539961738517471181139076450852297939345551221847238404828321311129784700937995370611410665531767731846924206525156033818806457529940301815783181151398086195711430273972000426455077402926569348197209681889746215450749757806890139525077929807723341304486130604077813683213236185508827903943433220723035790504853412740470092944329903384768611249092199650922400687952456802451519082148912624958344991068119439499589318053744032905814206433173492764802829088591230988837089165120148726561294433361726368292506218574733226572810632245501563709005871080917522247644951685093609661380430061898214792749085590873473552632633181391057707820397877421038434579612369687903792165398966127058906932545382630780264577343382408278601847557002706322687793195496410938931902705737377535498593482237742493737934046482171749425607175388007871396143372934635624768193747257423840326808573671109993793593851068713050170920452460401702370758885777006933985376095513456737646291662302976072018743771979116525280529086023011782825893240337589390835384720492190571267381665409495318509126216228137421711887072532582376572021522816330465472650596549347591808520546440796149544766681399721156494775585745113942851196445162635215219180426094593199665484651119418128613431097447697048826739450279711558846766959878312241077495619907218493422465975508121815769307674881133364359926874098503038472793520988800212971889165456280523838050466667462102177339823340051405747363967539787566072582564992087806856893475327808839316870336862449046748640964593775232069520227531392386407990426545601937792950515050230583793338717320249114186192657280484175239428086375363659840347182997316737330358049094237405463836506219310745407680130310076063212407825638858371049092993900272761035657266274177015335580862129908827358206261557122201988699822626848217896161704683585680363773259249824200594665312401657767333488117706839979635335323125490332238822534852963471353403450276945472212291571303229410335417511682724802595138294548923117005117390497108482919289949226631011754948381103338188837815031746899190122141318392945547953559707830947336156875011773905760410971337373713677241718551921543531702055671766448588761069195043396713222420695350862533976303098004128418284974817709947449180232259391366943113150605461986276244486479941861845693001020225606008611987114462554516218397414792916401777209766564606132896949279355472247908225443541868730060645142411400490008036769085239121207565138870761900435559839718375465716568216229265941608596911847907197760284333808962476509425593257412778171537281556956229435902010566238687694174157569993254903298089702022682389189382190851499014418117632397858196869562576661255232713666084395577446519786637865831546893695038547769660274615896713933637005208196459409254831220664274905520097647740883976617199357486234104270485241905049175992826073497571479666271474127376142512207883309430313375536098547123793064633498407530193503615479783388914637654101893025950618354032897126259198571341517390792934163760145464919048029438635449375266406850862971568530971230522051558453876299755710637580102194190274023075487349705481422931509071310584950057712739430604182295001876565305786730074574161094422469114153033998580663953496823732258115696495105849531965963129109335936673925649402044916091851197348563528335611147073089548450139419661090590861277843248256800064313562247049682477330004675764576818265879416117365849450734410375880669274625560618547733826629743709529806368062730545889103572773890919220513411406148685804970342244307693392944800151938206373632878771726689422249605590813601663045461812569394484514486772272083173814458180649960679539095588374492471720285107496028092666765861171020482591897152582456044576969875464131990133255094704030810934216063760704882081599613697936230401730901348523682686997426679464812946179604981484378300922813507092555271752550995530129802194040012796042728316134245632023628324388545474723366247844742685992628139632959780689877508501964456059316530694621675554779719265352148535782237732262223843354592979744396207212507909012437344960911228354908986069858726131927045473436142263727951008201507126677919530138166509592035989318499060316755434423628526765418077077956959316948559030285737107515086033556369299512172391504412003354067964497822642235106076104416704277041161504534766155416790633761224525278469520305574469574988898744281023685119913719577534895385091001946799511254537491713114101781396113570052544510554225225222176503116076543021206702916241910921785464267189664329060882498047453499874537131882563766808289778121556678851501020526024585085162211200409563016382975022820098545258614356988192857915332899284649431037407573511050463712803923934414955044429400608528027231328404800261972693809798058885712537929109817887897136688348414930828103454202870357557218346680013177730443148364139278316608057950752308261415084091417021162384946744415347427674996704693092580879385903799926933612579852535606206933790254679452753640424161574832843244799431587128827940474063363582543858597894062725218753715074023131510067847759150638980515675329172007228303586783222034126964092017217850325145774556148675081264664965154447298227096005583366811073996182250323599209959621373066450600384172101335059009279366524069834494103855380179287250941491100867529128274760612473072089386173560949106716238810159825117240956445831783524948691578039512947417894815880520079995343498900082166689250467191992910339223468054323543766948734056844548324911917214699838199316089522109682855855294268015228283551350031820392355294240291488934391275305624609831473348657967450176487008498583647239143855738499812471129414268167767763632427111698083010866006655889486194042370740440216153842227009157252705440486913016888405493858208459226688437844546728427268239844429922677458465542240380783243132758801756222821473003897634548404720934574248452892680344416207797574169510878648729261543777068714861792982443621832338235770898169108206804712372342431920706900789524669578867161581943555938619856778628839771687477253890902223808343716182411732355234922690803004655317591591369798114678647646316940506632367101012719063159752015257254057068774321191264025910843247191145247451071546680696259513558937684753578715935566696998834873327728039204473874922591170016745712412930998348595574770140468671931275925359290745638052350083948881152159750400826093605069385518934739724693430817311142675764948283810466054699928856281923582596938342170001957477573680615397669024436606229601268764792349728609956614825507098360396951407497226232106554529392038470740186448120968319850760900476872721298368922667763418411468979739780547985401181926278360871057713671780280623229606337324339549919392491787341079771940249934362514266191652464130852623907210120786404691014152843788474966306648106519992963536840600325571527471950134545335256247248900471221042363450811984514229240487888798759225045117235661030942072918975191451918792698855477054506981735497688469102256507728028012029471741747173400289250176308567952239694777215823526865563296060962094923243172670028332929632996349877609743184308242098272729362354142325358456403095443410617571452992060541988370898619339029503922262632076385071631911508900917534786583052866621753422691137347492607128841045705741184075207989876713940270029261862995784643648198282440752786635196477772297747548184866127778100920024041930767988550731666071479751463448118400921268753053295790836181780541331036198632668749102022018443062350665650767647580813207102215678104265554369303231112401316780518197292671861013084755730085842598683681482793213427277192204918197364775714658432884204757826060185953175687396330202402593918126565178819003269243680580690759323221545318448721165578629782381799624955387066571579749735870399943900471370823226665019343152353965889737174538455445198510398709429963094637641751376812832281830333092463654496857743152770815454520928036392576739878569140339712431112121744157678549132630155012998901046719737760196465342065737136472575822415509608541112690043135812339777896775882711214218348405817205842580105825775500061767813113504204762134756544821266637899019962214314539781675524397822195663066693017824521697072649201205264954052364865864240324049678121988189246606631190152544397119514016311672282802360964282569943154649055314744729971741851052191499119516566629421080344291835677448441108369719927495707686487589269977441900735569214561361909137518273567171790179913570958034292798087601737262097643285727352713676372348044346858974428672307475150991304898479752266954687764422437927304369694723679297701496602374211716105236845322924715132217986319584473430235873715941745375706358311666821391907212774297321707323988524376795345966634921742317599402527939611008248878534274016391733972431026218893912436085444949602420169202526864211031517361162575705645357607683946515754451903087616006745389397285000818166577333533869723397363432621485074566386029425574144388878940591983369488672363172976333759876812559412125163390047136722500881186003391858869143648876715022847782733868395351609878069449962332346377299375537387293923570674702579682943989425088989751794306173852765661409064466436997869073126662699512442970761370433681681912231003576133050014728150021201939208227443302140661012747224272610456669514980089621917552503630127198414187312787762896050519210980780021402469268684982197499008821525108422500584231447751485140453025164034353340216351305413991630251184742372801556369205849521920254216524950067466892285330930444342246707434088853113481779078762151293787492604384132430565546706237811570545252793345179785661984436059505917847815748735390906872281858030026898467357434709237809569648851751855871700690750751138545532379731937148587183538839357534190718853023613063317937262796794185293024200287440533046115686463035680764572330148428263595909393024541903854928208649789733338176197590392447251673468260799670338705214139098423684762821092039582037889489747038208877160838487560682968982858959493948203582987177717152570995974351053665176876920683037388344496442519691031330060095357386824665795010401163621925251726283051744886679889864252291264704172412933544795948407395151496507728203711041492066881007436805485610487752791406258210543311067936158233026375918353598726849439300930029068525000027058733658395771211454504730072375446352417351195055016565186240657992685757186724592343980405004185086032115234565603184459582639136987786371133632355854230122864667283242117308067675477977152838411586837300756780358753872762643935500003173949530211127244828759623144396249548170224344172978047805067319310083842016284589567110209866384450558410141772375299746748544106913555016916375241489391817118071553002157715078058034387442623381123106302571551600543917036279714272667787826450567851650091460247068748190602327676273811208488767983832780206411713043036590647642742385838852209297661597908081790586653893344620755545507134382941472013799101897466084310436751854293189732340368402331521412486733887637257603594504573907147647403518316293987880224083772144844917280841548089735337015168804553248315251376564516980141159614424580356410989542785515464675367614810581560971145923122393137800113527935860051994523417919362969260664000914074541893767012374164083758549633848057027700727527948824879480621857386609890021271496169154517868660015388242907697670965297271936438268962865356798796762435772014852924851587243114907860602727328229183311912325298538821248934525475284883441184859551616645778597993042594467621774599386622445449384639294015471678202348280238791941748001553176640941359948611578934708084983023728544179571943017973212486255901961293391467052894265365724982178486958962222665812410561061074501028261778935253683711504745782331877592426493899497413746468225805875477507612994721379332545335361485818416322957532656822517314230559698666398820694042541305907993075213510418871955253032476712468746180367436633227647011701747902549613543826788172716551865001040076855794541729078744133212899788326730696042876952631971927659446822850685318365971973213383594561779530229077505401059776626232953052212055069759939831701009238725923021133604258972435730595159985177433576967873631600702767421731173280851655268472842578403874078627518436235077735963463776805464958838857844282286286311017989787829633601193250850348421960832086215359873567147438412373062817163666550865860259072635434340710026614270496295611787354151404017966527997903279226831487484450253042542968445064211292674672790267021849222789669980376156938092393947071924897310892735389818550866676543607321673405630267121110637585248759199567547493367168828760491661118947994321214184853260893279458234772209831479869552976614128730477075960227276209534277159477101181148007954099113024637581856969956055073379179413848645958966514011638956771307158355410074709983841757983563715942219044915154388758551862250005806666060929478652406441838731034328105698337033706247295635915164205881984026913587473975164734956259823656136825951978023801092084888936359475704250349894728176169579580032574908738211272927999267473609224948959987393042406292089049863216819329220447850810501330071524991525069730974347330561390076489948968679569868443501298527564127051371231176142220972397761936749728517919774011795524101698278259943452367830149761381467932144935697295003441967877102764656804572688113362946852950618285956288879268855574894843910239714071220937750591215290523744221168306785354821420440719564992874852754760203604058301370873888532235594679663083215751266509230882151915733719607903457519821003234558222764744190885623982471422595979191431703853901788252096933019627046437394641624597579149849823764145577352697932714592004533319867385967015563575157879911470984754758920978831271998156651646494229669028754978299554226171133228721525516624465964046437349869909705406242496276266911532784918625927426516589788585770306172445894418461207851532778452584420607737125770712561731819599614762329229412590396425962458984611966958985896673597554274773599475637734665455955586229275873105427573710079623645864488944514126676681710208022486325937935219289253019060020693245250157818513795866935874340664271238558097413535916438322737894252862203466485126312585247225882497577810367897301412065025728028576109274610561620541296725366052265404371474167995685290678390565794565114534412938771245831043943697067915599905112417275440585959131220343231047685287674647018321948487009196729811525240034062925081534523795370136970642349252356125067712702300648838695268058038917796235813987827841193056286924088156387686572379569438946035969194142586323915611530301124078572445392194423853432283088767243356232748575849729263505253104694817712752269134938077618278004094990448901938627836713067069575083754569948968513273549123168870872586291710263474543271633019119608225050375934193791073164035765718458538260018722402201562564166204071729085814980995627045395670984904562785128246961320582762963716920758756169687358817753438560325829399818209115140143408833180832997563187972245640243264709623626536912380825160947613864619634434759603989530115831804150321881930064052368316980503102390172386104245289797811540639528789994051802667099915452721180220169136343203436698183988009758186659826945983607331676296657538517010098595135030001041534056525762493576195053382021568812330419305649232390544434985432865794696785660424223041186865208183833833413330158695792035282514404694483357836229539609412132842482614155796147915748152243256183677590757996898569648448201263561081144446868192616012871294484328728842267302473774928569900918966761390681593573675702148161641305995055994818831222630056821827182784705741977695543535866024858163800471939273441049285057415649330881121605341137129340501787262670705809806066059806163492341040029671215306985652086677255050116393989330724999257334562218335826802371676217677186131225260950497447171629367266825377805355318119673546768613638124585211720053643450926289193655159449270560508820063610238689929077450197097118819217879112111315157607326889296051997793921187933961205761497959608987022966022222628725112310793546018305714181837660170137609517510256928133978733112454859714698819220440969071236923975771350270626871491195224077900699945750667238312106372857844465338515121407469711990561808956795152048342111504027037900049267520248064176001706789020926231735473712844619958939317369241715421853827573479484308742605582292802351487579947355080399055811745914674081939652483962584067006957318907872579187895383475401304128295948626742691239138227657837051003947132153553017932478478426393501811249969591580939378216255953304177620455972239905672012224321615290878225253567219987945814020892486375000780550300412193563445331651731989088742934355071014193816030204217176683472549943731092787869619426706236261850514712073589841435433391358833182895337232309169559985284294730360085086193892736276840985932681999013850412933919719475224110090896378700763708518245285690556679501056234356042496334087146145690340651008674855031610734251799139384979361092893150235162164267598732571393166567366800778142627832288811231973433233147260894726917972717393326976171363225433683799555807662860009224002879323110297210904257568198812607183910729647163256304638009265808734087396514296334484498248389120162003731797182722156216939242019262306703687465616757247476435033972749246324093516911439299562294140427102217203571575558089525165328165048953360175361666905729382923880221523388785016686146748454291545047431782507705088701608209821415140201737245879177954213376494625961859708191257518308494960247103414853735640936459691914175669111528364673991882545581989423967933639968644487107245669327148678961212851030884590887523211577727532786570206273821579197306619710105984824826317481849208644564167264910033139025834673186935683462837489759401813015701836720402928734064707530162369329257805907570343707143840490451159009011520420556478891672878131909780141859493706861210089600738329924662753601625315013068189370869965471802736619376242383294758451627716077451460065011664369946416491503721067560890543118109287357704866738120453639334347186015637773018391657910104219147447218036591650384068908539466879941283695939245631225498088736656730349004310795888171083770715065104487815490481430336095251681767575052540969449738546504549969041641573963983032270046788950937608422451932806786148306422011046712628216060989870802374099531771349467790341294172573819708617763141388909959107132598349681460261849328035784395964704612586145469474192864556604305847099717137214317642923642852204755973927172130500532248370289648302452610965402702040100219345067218494953954338184276541599235318241843167801076725718463111151895697947204582163613980280327486031439471459177055214702464793185292158001527014334206861713457366131671025909177764875873293151521693807913485171933408052290822799302357089457084147390057305549118146351259984801346451107228636535805906182641358662923009196738422134041007359556847049692945288096537802095947361334080768072224588681280821564738114347315588379782504719513384089588828956561154980421974866475398649064505564417793514257947614686396678133044778214314450686008127783865413837459913242889168796207209775341281558621095999000393256199816524528156887887793217222256901587599664445192487888588758774251783529787982474301493500985630117654803886182543590187535806503151676973013849226720538154059725659296885010280185795213711396905101703788097432947571209604082120541378075102268904621871706180424688627289313740237044069973769610104743874938762496476742459308711039617609822843268073501442754881859657307210926346717720056918202209454301904446429571287473214225957767817240189027119902573931322911026499120376370740746651381952019275938426398351355531856776108334957373570139664485190801787054329688899278392255009953832088752289573216589638797368139521727786298204979190378818223903899493756347798500573680809870330285755863731595459803782312124058030792693992911787277250651537005032619416270199129855483902964178813527960492723874830469004567270158495439943079820334586920393202061736180460278213461604261378157063618445030049681449025072674434504309875936580759219220056112098248926631610742087391677260142330667036128648488540353575672638000578744701021304804436461100969309330079639260075916883561819683248510168859890600472716482145885516437243148648484956162645176399538288654529474807971546803145918619703186219212699452010178253268924492738350727666678115277398305804629901581982390549883920398272864862878605333463131520999379228142280836846389490985116403445954546487648533529209750204477553267695210056479747435733180197197862235600577782922631784060065438593097007008454259817975716581536966702139808339085944625311492928032433477725100172806433110470464040294642478119375726414178886353212124775425188211075075641129761694942588708415222402002520530850976638662352225082768020488786803372045815426286077184329701446189451825189922421421882869825891039393186378918671226769192824207718181707694186770073263780510401687321903420277529373834881572840281888971351526928326173014427672973658794231655522613719650315200480305026879880792764130864626495510602809925251327662677746411049004995832338808937236960125469748421616128770099772072838787556233248508154499485230659905740958492864255842156794239741543175017217396459312717490913737454845068989365154643722230971632543086361316745222219705574285901907453412992317715644136273025198219561084880083177530943224594967666713570800756480703517406276510629531586423799605093090414018713753706948203067982640025948634152593786650411689650597103217134786294359936193299464335242562198335207430835338506946580272300102383059862614024283144365328701014108763487459161484872623135200583698102748530145143334461108782443242894370524988568483011528908055512033568155637205602185486853437741231797534924842956335506485625991721201411356805331380528242598514133389886537326691205435516536447722652289457660572993602912500822041792454890495047439514527936472552339689098105720965974935371587135436362033173134370738877129625489609236174451496805050247063467058578519402296332829305432554256748919264124138526503812108341964082087766484407325691702343168681040960867774645269534448139384621238707659232422899705639696393920338739773197445322006199493655183383564536159940881249903126940191104301626880366246637148581881891056174978640896574133173577878727551640842017014326166556634027204727264856069756077856799566949185773022455482957828943710320749272374168409772137311520128835564788864158337941565632412758175131822338441139452589186649245706123221000564713380327833452864209109884137713878969781355973400784590596507957247958649497670169667475173971321100171279065511113792246222081316885338027920846097964571540380844699434870947306053127157333256499945182171532241372979172414917138391944035457574616478089884744916924395442818113953394655690222148833581683865020498209470156812930187286715741592657271114054195491618566357607238421144491746330707692506138421415019479731811977561955445062904960513470648116876053682495959575046739950750829477876317926734638800824755756568902044718960648720835675480334641622815973275258215456614071408839611869850069585695719636109666430148884112073572661024231637415304194083086166523374425639510478473510385877931216212664023644453095893075065068843787711049783526255293777894954878827432371328594102778676543168605036385349961950529493470819307466271618839405501209365921032021355982361900431941665786520359436224603795546752613278644868191330883431183599459836973643767965611319334139443775679464525758220287698493087269692675379886681313661196513459897654452428816087361793597413911214562666770287863812393452167129801701087603947192775257258474324070140177396476566737651987940598219964005169295806682967362749399253502259328811879247693329893041877515993438487852812746509774097207272509964307777919368992341996766679876514956611604105206814197047932185287304799180081277133259283701446733067979831178800121842345277953782263429587358072740900594366675898846519942006289751650940248959023447623387700459196090203346713191477413268332799652013378708800875347560576833889184717667899406719114607665872973516940971466019705822610490292145866711188252206288607372074679360341409966419402090377343722215191633478345065509198469184423620983957809528974705091569810879019077802294011308251567800748376182790615449851794523205345251203174451231103233687875139936604406748249961678504086766007250933421843974779161108237698406120497128598065978283111771461014404252518137522164690670627673011486257477206081286302734762966308858195757716746838659467452514661714460682577646738481315869444984061663898893306058220193515381745131530752726037866778916841010007239572198851817998008069765233494579722417982393139561671739792424917726224829888088892180276572785664717762785397579530171827587418310379212098999902808924026500576935408470951427937552504840038725744297529777359889584787124121545953171481868109185242863688807997149484000806851974493283338190357703159084206182882854596558957287582225838715193139829650498895846896128926072187688707371905122792189188378087335424941923736365680377188745351186302605227806656316687343266117066645521369317872005676753506040775467456620375134538758693879002442244861639090075852905762243831980115394169969164708327399798576704566988887462085023212075386109514949022655070049015572174833979176716183335126722012239462854304843320805669561175499655785408919829449274754180157100624763505067784860390348398845888149144956783358349069818095125558363346668773238530744382962747034605098759851922650708426842733800719412345919014315155472865762854193575528485970860897273988709978019178185560534681129517764468026874053064959978154898472932418161916826132709217221760862885148954707021833961920049628126957030541251092615629146570178820780828772834750952290834015623470110288281140289352086789919378320389196082371230911533928483165374396062679820802290912370453171134442592864660673707856607366713405230442536682632524729231126546832466145012507674751722853916657563038249510126209435566803022380805183418927631596969733001217282433298308600471364666263561203532891939064585151552414598770523995536656702950594964262176307544381465096490918914159456499090421897672762535620366735142722521596364335190021813347883292258673314136456428515920645490106407262783557159271422374736975061466676089638085630459599317979938195560891445632238049857328255204396965702089202672058540546791984513306402002418245558202667254070101047010332115786010919732723048257537485933366794802916798478862213224786708311236763512558901244765931787908984231234631306847398491274799271880948863243495827321958301325878503007227957954285749093120694425059610011214077678951625077425446746006250845703639047725529356500664461824394264367783451845047592168427012213819567388057789194837659050213844764727739509026570502275752088784003754054922712022152095601882948711310304958035907876848234579616075131054189008089304224596164896344429614157252126971757111121497436800741262406763047791075020474932629645230396017784830269457672583778523831939780543327715533780781170164648719126181927706390427823444375918903332317395217778071248136643477903728621508158387914702673585024764627723446938523209333701795182618713827048512913590858181882076189539916205334176590628365586538189082578719966304415838211277201799264170371604079304786367358802487295632681796439687432645202917689861342552358729253874984749847584581068849374005379160981430799685400175103919909492571636096712144419312370689924272370070193192265525610789703812060759136109692492510561302953258694766272973562867161032267679265105465172798252032697877839777278935399062328090955191883593231771768160886871221155995901924733316040689863950219853550523286050566270585210001977132977399825713525989978442576856109738742615274401831388115277582237045691392434381574280830520198515422534904029273325273432854992640654388925781203473068994908943963434900350762370554217693548392697474921337175409286924743135755301444683862396104895796826721774333466474000383227425085769537063638159856907663407902785831533695853248449263681617173540292802220873506966224941596706240196685549852219849140889554867094848084745344134807808847262334866557671003226583015683752610869323880529048170652099708708798440240847701486575722467762431761372511232017727233475567027658126606870059460931007228616247629744555821218353939217841715502565257490062482279565504321026118593708020265546551562273505899040883549417591574698827866761068556977917402938339493442807671378549150347943791881689091039266928399171685197854753227073108043224253854927192437968741254536089871999957055339719504493490181354253437614537493211679018691578061436123104998973585098151625684221654956093639501250334871078288456271560263543121257014161774347094386585144780244129871038831146596629533818336750054845323893733119703406460997001247853858666472847646474494440615173953243437135856282837014055803664350977423234679320177822735948932538761490216059986587068592361801963084942790141894722478230823636711911168818312073858904121424252054086001757508246097431654747456679591509568696528237167092053930275957595848014104242806973683014084225805755624738195613751958765296866574331715350942406872266914869313895186962738114735530926428695760396129426754012945713693251673835615731924631235593820947314113137860711312787140012160961677567053776958838478029763065548987076995727563022278672454424669228855513396971629548324910446194397166136832305570627073037943613372567134199168023494373672222301829560365190299519010335903246339030534423070055812655510683388916734458626734385574511002545931169777965992184672723706665804042027085258662439941700510684055664335396273736793753584836825032796217522802598816532812432342674516158587409665828783563151410656270791147798915354786054533062922992711655830241164710693892838726743730349826754018383250541374486913851521752818969408503519261696056668589758399674337180657857310392451224766559094856530135868218800589504938871355943902338265272580230643470986949891433226532658684715615704095854851254014381411206111250496682148037100767927708657401868686654229892341991619452852115872444000870562775130668481030035942355428362114446242304084897679330291255034802816800136534528066490591076456177122840708479687012148780867129578891443514709950727957230214190663978834316311627013924890561834143975592097612169641098483682482804425702786693660614310856258050440555416783375693588006913484683017930398081880225613986426036679732377888409476978710281600442824139860226248609785108901280612543808475238006394649190421667900059634053789385791490973750708481356854000610027940319501996298174001668618684452658779634238484437946030242679508085059902105356173960417228657305955942974592223618538298830420337194271571258061685756693005226729985975006281579308874039157219400782503402640078986357531815153721890683320218807300367745175147328148308652259395139015688779954861141748886856794530382535861189126569445753550795238473827115630729201925556332876217527529135332472902390144423704809194491755934133597757202635222691863528769204248297095455509880600895145955462854886619153429429487311627397356858846213490557057151554975551512621693279878761079114433380892368958349228048226615668880743862899358200699411115031248253583063502910247426957339255635619442150521850597768930121752980926762050109067041479074297808449595890226093660983258527129953147431802039747474740051136111286861592766104989155854257446539536376702226835803362225280345569410730521130015545555732896408435890548747591641041891452183792835022658457623084957684961271443282887749841762323692323112140529913083226855275180281800624705265730783994324444428362766780202054646934092676627101945344492310223743251195336381244337321073129040759777552540518924583261223067213427261735058234801113956165028231981599219672441588768988483832186465510616462892232629106415262755451375252171486353878478134829834105596912052158942971203045444304304578778079864685934496070069784448188579018514291570152510867243668771869147437264851420996487794137855445274102762778481595957627206597274810371232164962236052950305179402571110898433616373982183087414954722448920205687012379023341612994630420390204104923177770232974613439443707150162170738115565222289989438622471373664012073808734382923404462094172843581372608060386726468083656436107808488457502371462357894267998458150667432226860545229542622334606868802910682451871990011837932504005002348988442021254343419121666860025489242499534298534557440943980461515742320182097153538663721760007273955402921345159418062814113935862663307739135920949979129693159989241984003742967986749906013763126102883881877740766441701695927978361263635667216733183530996653524080246238255147781375396770399513968145287102605294137936756934012373176697083118576783242000146832746177854843853461877457372369577033807681876616244077104711981126832809018395269136514347000192479220022650138421519413533542829257392905245056425433816677159246997840066568110775068727227787456873806857475026858895304588443169168685890817709338263730335264789033920398116522668515350985304448742639566558014790857813738789996648543885155550348646418965074968867095115227833695143170605207957907181161359346356907299204432240858200009886494614971860407995306292456846097653351297113614389888888773255446772304602485951859329095384536385957457967723489870006850367979516210294884318867952789576714882991811567676800855028948488376605663587702366634748855216535048562884003088048949710683197550757273326488508947359621815393500549509896798196150943665208389456887848948278948627854494089384320632372660202488433218140161632757234967923529510276365421578698335773233679328294789267827846785414329898337732205475714428884732963258124734640349520824633301455549047341282452603511385998802862933221946820495593913106385992676572643423328744534772094661727465523426964803425086182233588001518095396345782560823352022214216609312562617655303871619912172880282018836865569843410186912893217588903304434724748843288877755609578385745660819880248339445828287716943784985908304450330996002508688947487745882850266752940839935599645137489618582503848175991221333316911609694394220188950811014931104067878538263273371502052087837689077331742312517717231021439200014078595541811379519828057228392382653143508616576666243198093254692969823521366484655952681011420478098239350865773491961382270617174827410455168141952434500704592295134841081760252813748687284231678085952409037917939271117701307086734078385572534138765393876575531536157791799427321566442632778200961153162482091088090586909321036803568251216190184539255176675697502260568832453858084264275969051604123977755075424183792182758695067434180207596092260596003929305300448567152743368693636667594477530696834800304823837201702840653044911563267409175085733427120624650051445137321193692707863704140976095953290600799336001149396865840373651314381208441084908711285867412548100262716291452685761226367722053307870999312889024744884716572550532112751916673200402859512175862258700966416449722767941864474696933858324677647842792013333675064531377752291630646424394435073729241314850380877096202405402318615096846585109697459499084565856587488142051021917226375781727511141266217491615383789281418650273640447908033965885292539140333724499228848480605771941163111000802719767272802722907002701378246773631585225042997148325747584208192085498689433107422954091899023147188215672798721162026571771302441639856138150275834191561674162748457403073414675573132390098884837818896022050097298471526001089350474653764639300734409871654292598052827638149527984728598634743268416356075557028096300403291911074656737475876932432033659056715580901657384492822848218250280755118601052454369191483369053440039789307465167250678053630650633567180491786874029916121085848154013356597935442356776493160559654877740419275708544361829850603728971504880449952167117283533302971139284889297739610854888332264443116546575236599400722676474907146342683097685681946492602104742632070365242083689499889501539253837374083273665030879603926380411107811379352451036136209717911088771500403866415210608186965190269883893146943015875815870490868541750065504420476803624014653244410179166049497012130813570537626594305345385438935734610930273668224027060814479711424688518220587713421932506303244011760607825600946100571943366198686638756768084956295424971026327822182243524737557079902070293444831977836678271350659923072750885393246904832910437796631843886188623001488543654517013524617309054031443457776331021414701977648691540448620598694209157268187354624124680629404456196152846354489986832063756799971631148098610647791960717363156092755504360880646193568616728867540147836886508975808840051323307512141189965379322443154311024721644596568516947555875281099578189947179002762085983778068958020449199220417149651577222703155372875904058052315611236530249454172793023808052003573452180918953182237439823319504553825090406487215050491801351513318347351077890982644028880581760378937814439652726380864202359259099424762735279252767095528994720226153508759475821516985619234407782318394027841211014392403829680414684803500179630474400925120144743658046921401388024763094497444847083254257490019306833205497175343520618265513566887021772244489452754028707967400824763891511681902643920648634462388230732916807546220383304970449201063925355395763454126863156614335649162756091155952533379143116038071240868373098740491275641973097722032022607271369355576340174675290051075186807646479499780079758868674179438668441655458769220341341401045352144636895737406536846567626071406100665809785095838818033621979448650824109652815135085425054633482639475499414357872211643203135034911256937959403763815271820329788650091177327785121588240876638783535186417313182887458266750146130822659625095398655002604781462311018022503544110991460997435342005075216484749131663620213091848839274300018612669036878947793539692414232388498819553274347989144321265585198990095535199219487273887371541970490904962109334185057203888063652948153728317409726247621192240323493929763901205766498516677708157198159745355903403889855423913407515851216233478736245680936912920003433709518329855394191000630402078803690783506313778110703410518541528679465756217494074686671772862610981293856976817723700000560417711284614493822512756722108693864847671076955666959987877800526853294797989717638474165544409043364161189992946065767880204485523241486601082626535465754952386677785730771102516124069976518958263824175727131866050701231785732214927563882031974669810446412355276575114238982268333002524104022693133838598748421276269994768156167815289950464269839015079831945965898790474538825308233440509275090582543754493393809337746674550531478632651152420098832030159899500060959482454959322739473751619859454684728260093006188516880998626517802689100281629673098038275475658922900614686055598758714085800645323056328439245478526699830461841691113323885363316300425872300463221823550686315268620731403590721604905373972605018452203426813796094085472793518509863020192956348716749727510826757158520298383728014999658817344916944640385658111020887759129741519971025968574561290426108158787512630100802632886719566206002468023731314400324035676623094292145867120220623721151801629342979734019288784918473662233569613767764620413908191300638797096293202512850081946254152729696272431549774471587841226074924880598292951495685096241998148973826759716064453084486261107700558027645316759054750829756173774210133104265967785546704077299503918087799269138769832044729444723880581340044662860445548632369005711172067867754169135401356138199268302635399549454593201000174710932649643083150135021746795868379105530157925898907966962391481735150843448826545317693897666207799062020445386756383581222883145867715690472556709282382978334541415575868265807498284191776826040236827061476075541997404824912149595607465991591908399008532604464429950401334102225436162252301737361282994138551059619814963326539638866408598778142725288056047994553301739340020718273551933608571651259060728813626334902406545725947470186944634949562625019581742925375659962642723760529313479026625596650258944023155406093842431858143784853774995837018161346917575197255101065380902835913192324228115038933259866403250087367766842053841791733080551575854998150805413049364639387448814659023985056952624834522128258830392388613087198844960347258598665941559820171129773697248314287839703502318439487246255198665518862894301204810312806764177096982682467193818675626473318885834969389529760340028207324821124903572700785646909916337960602625729000036359917913428514322176320745137106092342683269036974653276401525354209363157163460528580750369368624532798611928892777285762990430506400762704940555941694374405373461195482284755261605989151515277920304514568535049868617255728737493774493055422444938214471906953994674265599221185708970797856892046755993038409475860069552606054605526966587958910096229270601714319335817214030143924183353747683681675553643376772210865294322627697060976347199570211956491925939601595140710575716210793401333520878166947569227217574729725214776934177574621936584371607221312337248512231423885944469217707220980467330858548892042573042006788600807514966024323841010388089139954263762316461470576907055751444538868196308342207543337570644031717322541486284981536027160656991097847679938674093896213098202091322257807978341780615353705545307888389047631033842945445290407520183189456335426835968341497478289734134788151608347381371091143826656034421447597714081936678642140094507381658428250597344184510768555425992958082600635598251510835313194990702098551345598286059705532211306870173528858435711377421329329059257448515950734117439409432636727588069041503479528037548839811095702208675066082777089518731902170455338850681948750943479197607826971054840890615408485532534706842196948098649981419197452559451279436539653844022566879269420652571488511755434534431475860871802482657282204092310642950239553310579216800364629148584310442589635424341346022982574532318371553632529951209670240110548488425228170571091308131196530530146258098923657557597433527566941415026001938496667524066007808572613012332632500009371666209953296161654037368702841132062621487169799636647400789174232744848959352586409903027065743600639110976107670780384101752866822402177137872493813336786671234493708445582492425222980501437980383085163219029439049388411293731439176348829097434895159731002135688634290132195505293386246871104371236550283103375602851783980154899980389351866348410781028731636935020604746850932501242405787758650708432972053173711237541080412822759732690148505413694309468669629869919420272575183170445166261104172924377554228327976582053559286040892885436966764456618067394032014010150941694215816151191326720578581972295821379532877174338242646208052917261850619322401967619962709715175687429393028008415911868034903522080802846436150933812869659707964910391476436569820490220045236667199786189770013534997082015440471612889367836110520138115962043494248908016828929361274842711196821011964406863007115917761645201976833820604862349106255712556023720073453020011717594306396514272780316011390570292467308504344053731852202459250691686533467203025129885134907499616371537960933713694801138345787032674555949046077386996887107186641239580741405986425066549395071337342498178988062941767519243827425036610443950529739366802504051001686579612522009040217533992785394103426724594339190768666603324437456745822556485515437644534463030399617036056514329151948314188747367575951126359319724221500402135696047850028847238460780913335622137526531714684437807135686255738511286078121755336207511267339625848896408183672838930400335900629231978730508527025791549102425894262723883350313888857325764941113797599853365980562437449626728039885448530549049411382687142248477975267742868636717217823072841461655716936716850672424878643519162470412909731393117776372758802924423895235098917913578099775894136616682996494330848478586893472838039684992788719989056484235936630315544172442023461718993487583723230678377839355734416504262791129799211761964015942054145675115945107241170712541386408980950728592711559570986529979548407999170155160079305336659077973252962481192964565644403262161794498766737240460174623220575094672251460748374942707529914582726646103211143444163927420996342819444085661830174756299063825403056216655736414688989457358592390559792492793119283039972081801590763141370158828468700384536600308437537229346006415299589689769989401940567572459393760405979428632526082763857576218510192077913285662567839419582464928288369344787920677881012154728865447029864900301722155929010618767138565458123751036985016563210078151721711726900624631274189694671669738753714205047171814244966713694625258554110601844250409697002981571711041550605682231920887759432313439030855059627266721101327445898960114559886086003739444955797930767550669843345253271749072641242631372214695008854600985940283238806563092898956462134994540651531030646662765189872707455438232115755023154419620585142745338220959472471201680662033420403372933791703055855856142388431403613609958933015465342827990426424232426366414698387209939267810229038484134866496506890538288629705639817237662013426569113988436942736565097357204903260861582908548912218707799052610792316705214987202468282046327034635616827391890386935664755084615613333891401975921992728049812835345919688502473560460976010857392851744041191659965178818102548970532866488224509625911104601274296638788935773125546178694807824164867719320748989043513769354332503992906145425567117445402960940502515208198502304370917061600397937808309813311438791947600102354621974398738681453290857374399111079592405191137623488816185881514407951968002232959730521777161859085819547634852038143619651262167977345505381822949031333069987993547342023886690961746707103029925457016499879637738206365128444317974408046047617920783594932716279827628001264374433078718399511644662374296088024592880233620142267377832700530606008369129691932719145068824122602698788012432849153876571527159957763746587510350644583366158591042396546547905139306524276491543499862258792484586755487394099282644861070652302991325617390746769549815249862564808801481833975818964557575467449397624724278929362876187214303598351819101267841167300837778196145267823132962028494218523298765503835269826246069291707851523432992131356102032848278979707476817121868662507406908050894931080430623123434449123053367566749840526238563778496415330042839024752140338609597594227877459585124275833346310931072813814024643169338593876177468260229070920256246579679282268795455374753900798172752928359049031023782341711747483343563112036367646111662206125212182792758692595967748428189730874260499514123684654764307277099633205595336435157711773250582302504687131279975228890638998593884955666679598019917117700724039388002867632793140103570708619283907578045450730949243985285855207557200443659891976666909750430966559622037046339977870150240764464012995584248517706251267961272478906207014152696853958494976398477651173505215962550820267219190624432381432995674759693504073574220886427833469866407830016264443645091806298869907995745672338481114520960915350188117375224074210490943289858145340854248614809027554296627711833767013202436828203721143665860861356581923626897904802628005031804341856493874934956500141947813310661926907031999376188740115429609477615150151561740865229226535774847891788173532674391106466864876659584092340299436977947320986443969024738916521413604510585831475447258775631282020208158051289106402808502363782721767379839561605982415738730336196845417983971960215106327243511980453948611631086404596919950048572767053753751496959763725681041992575273683052837365448245156532456389684001374448767294478943817143095244671988644180289518992721989259818112736533430573264170309218432967000634456631297116236251390384570459323403007667857691018177293424462001634119799679377837898679531033098747796684462958917264337528370646335846312879134681749283353570103974292552705791840560852804512135861307765389153446262177720771392790915251253590938413272010461647988994901366344374618330130697885760712396856697945268908239002400629048414118519928334237021605422101534038936906452293101778498771331786249683848143005857759374288480903094485607198613359457854898446493100814922194852564726020859700400327478732428128905942823420958045383225993266754394061330660104280561081995524844172096038976505476028521888410453802736295941974582597598066863138123407989324832667477831538940097915551115457288972432382381582889202316293534019407602862682668325432118701848729255089006057047419576303620264514871300653200625299971307403230744032275676542825405904064966414308901316686051358231750896261509719311979348321497797117782674542138330050339279844839683506155661401253754817675098014899472627202016511828763381469058331895028113118733431671561018288908454836136223059607547790527128890629330396688981804800281362733584355751864522206805326138559086414383896672274085043401991705743066635867304502603942714458540150346048697505369646942442847782807373844689220606363673797271016294461167715112953286248316130611819174379818381776900411088884752381126738572234535102631588135517865250484682001486874797044826739407138665257894753147161414965065535916755031205920420604784432292320999202690011332031761507091110466963989248331837934879759935520818451475474028199488873499777210760196706050397225861773301445916729520418746620993173628045944681765215750934006215057976543802212360411304119226164337979692121233271712838658930199304731650545136008423408409890526207444086904990570622619986625512342350955165721290427701749978095794965552477258399926728389721919310896803962897971417259135077366121359513079394654466247258786040219799443519686927472718857617629662248357148204508297466487594961370834291819523021137798552856008961952362614864397698517375913735004575957507904029185393165864352226487489866060716790400873604238960048932140780883846793033638880448288205284690712418236436235136431859095758971645426720379915576172301225808070740292318455760187846360023549882034123137090977732822339616484454226807936143373463295544479459791334578209264040480326845050293493908056919497847990067840226380463281988231910180073246190119093267559916972108970879373811265188953438554796334456736291330467107613178949529777596847884666294872979167364869015769291022656235056511407503511555290008459955289915278210686392640386634776875082030300024273436193255950543302089615421516467807071756953727390342919291679247646544850290086599091177131865227055062502308383731551325860164002664543722658264454474194798251086843246102286082112557835685324054033657836678559243223667469713257341725210722101920228729136759751279988770235653423185448200526092952001062033023703390350146534897732653402698147956149147101286491131804362879624241725789679384440150877053479806384262044917355380370274511496018485524085985925318639403263636535897371987679760014252581408669872826809427152035013498833140220192431075603071211190948395775522204439217760661210890495008640658190691014174642611879583377319249550009173130710331182902323657820514519597967931688962823540171206579979411100777597616306419668949887307367149660339374122896609994420739764578794107487134076227558478456509909584544011272175398327388033398001110756728171465368388500909595531855251986222314791996327746886712216159603382416347304069578861308671433258373671433774759024338182580110525499271342893285605599277970261778313797078239665102088850570840242369115763241392145701820976284607274230258528913635232385186566695676641366049937133389989828344383121431348399737607652122282970042121376016544122026180265933364812687495549717504358040432147125903734028278956693882947366513024558396501818067557032910999092078280169106607454607754655355697937877250501301174084942661802353180391539466099156187082149911222506747089867983607342867211460016486948710153690724540447234188720867040645861988191296212475719997762709106005582144439888519010070439338181676613575286108428026227279421378304941462197690909077520461988246978981194079504838949441629262816462322629923217336212457287134874650166545061656918952000180232835986543595913793130744887375755784679162757484700264692704114350034269538050069902517342934941302349997434886566133242189760764350150164684829732571767803853187509089529711626146618083797497781807055449126979864379512367884429210011033120273935442308346733308863422225645433520051666204700483144125892691033219618962159492064041601266354359022093082853840949587184134431996088271224675308495609745681813347923805103632446515090107524996240165788086172636950304576969894114901826612524622503430476645359057682143269964304343276522150807678260423691947470192059425611636303365086901783042009314484912455825540237577097998284040683304069531988672137233611898856855718080318853948583119795823176935471828289002805237013676702466640548946635403229317825118881580246414319686106543097753619808408604553919443413016466978555000528521855694271159224694741238520756249773473914332083538941330296068343503700669779724981525411746001951681544475487489175705679754797479135335341487115515603010072706093436376383140333535614655598713553008555179040841033615108874322941465897571063807447556831500485812674082964079049724214844045943261540039219578563579484383722354869366169766035890850732988647264613625037264040953826430505336749386338050316391591443562461113967207486115924677678098305885345500053378926878457887723645947472828234593394126819090609874473211081976517720577192463586051219324301385991368853081847813421608032085436675634711572024690905931337148090016704187897532598287904046036307599072432213390385828476725167964727226209406096369358934816716193004343680888000673046351818176258253212499429839395737396626170875942826511016943527081987965112549605863326042337245462709650503511051681185648379707802365163033367330458648546287592096575131641502077616370186001841921405913881717292178828419717571465663038898162614189865351129547397404726287857095322103314164025323565944927940332080658388014121741074895265318608337295255932912052254161128397751931825172008651005724348639165751796422757018507991217626972965413040886201229411981212569138634702768315308956818670066238597395047699343251214085186002229286131625997300182892268256026308602333061206196245246552295872661978599499300661928282180478495517246250578725042460292312332465661004570737463030598114525970705211508230962631431738548046799656309510408006592475158512595091370052228071501773492356937856872028283017014764137542814965573647911850736939505626573543697370033073090808792239857449218387273668076092997780211210107503140440137677427386015923032047862244867361303387103940391182815555207117537979746984852888229226313818109081445931399590943305781230696044290351264111469256632661112292128924614228692767862555787166048568041586515153635053719335594707653320322366003384589955219509499708254528360330170522029696202952819019874363273463826642317517597078300315823125803527322335922936346036988518501519033085901538688528200133339189954415129014082592853818958182967506843089109221893118967155005598542915241652876552703055857998792482562694760419767997289307043383248057789699817755537863973908412373408314450411689670571130167696696681797175462515967929634467056106204919108001359066773555583246022700074566523683007233241673043118822200397928345617826350720714693184378598594066047497367141223589160727150484653921856358479153139383403099275888095146100703432960791877825621828488248385558726901310659491645184960029616267219565244946948000082283706797406907714082671333352837226886071852180385620129969552195049417577314603330983604022975425204136093387253859591004031260849024575848585039011941863820404008832233015994548823528836846446171354077473137563023792462183792998718456367078237993266547656562499214011124795609597546511375347438375063006086395639917472565027516290536011626592456150890758910821220149234614460165849538228568976647208974840809022289343887266790786317228786622993754010680494948546184154998117388555370581389786330753175377317702904554638772764593447997530937506726545758646757485286687967994665219278069102639767942302775008623728773738930306823749351275793373723296730471574618471364974323642713764970331307928093074345264427842575471298782332186616225387281016496356193201157541523381513598691741750411576149644007124617225646262710687843189855524109897360597626236099607234131961209801152767058624269304104456944894417672464777682148529645960561203229856742220387458078863614934592524157843397037901413442929393623383136637863997422996773607091183528636484042845381664432703335808638119596909255321878777049067313307628544015423721979127796755735870363268866793450192255965086725465143863467803702384914956540162469977955111563812194515054529434761516898270807266466958787880250803462725594831433169652147376074795849406968401693285948790079157104626868462906188786697759800835485969090471055312835298701482055253491591649478518273579465272154286043345397415675938587138853797655204993300594434396177014582371838458396006571006874919594248139734295943438346207096722405357950261193452076264732766778707702955527783654206017445411898504954614307614132428683932200110028118364597531217151399776384990473092885858499761985309667870742664882660741209811796130887372408719441903019115143139847347802185645657836499986903033185847219357579908204579475232609156888954719486678867572501746878466045076409463843383161753214312262418912487170730218460870680485670029133156745970266659785583213509990980077735608717789911452460316042606413194509603269608114731254769414942556756291361690133889910007044746978391183531395282218279222567439713692875085914581537481878606474989772031422862568923436114604692104406267567528515704245882056598283207000204086457059692720016332305920744756745926527683868308459527497353475740636346148047934161437945736310824948612964901458885967423659038237940806929567467405564516919795577832527343887192995872893666010495888719380371630122925759936311766378901296477427283562703016850420405627088427902109519922720386961070907846837623926246680340571918588256164000725483128570404532980185024980530382583949111733795371305252551398020215730250931372556709213533919950765868407025215838660341237263203605188955351245746673726504178861142069391546844583509129993513076413281829959783508451456455398242145147635147089771865995863269220067033272714147448158880237211428054254383230404783631511086341906045864981531441658351468045951560796787629094973553420073687045442246520288151687598943222150485044395827674182655964073446187883278773866893632987406980815092256431566636691183765212075056281435863892826779523206448941907000754537167665048227322614510056693282402829115333765366095348100555855617696329262600546261578096124434482473045651402672559576231620485894687878722769771671624094330346420308358084772098532776474989141929890493506445629392610223229638956677807199858052268526862862649904828542479751185947081427308361421397777298498446237007596968631204576012064253059631369202090983821408978691109043807447419813095583869380711128977013702829335685039431176825320438139854245953798690429429691621110163288711393500343944224088466059820538519203636404933534683294183134186537302158151208429536802965949983000148251090874275587690933613107828869512219428967669114988601156730858385879840944293102896116662747027383662408611817989128415682437325382324081783942894317148551448963304597163680210613940239723197126724488015670593514845662518153511358328584943890384287827566196675584495336304961396811571792571488203045764395070744739522499997392081771317517605289589605509804741762096939123431504927107693519821422624503024770769593548928674986866450252076638327118212395137809049257684311301731481489328146714307019364057969725643100705774229045876138843960874737482358628577705456889200257575781553986007494631616679951461211963300519213136702015650532235836878014474325051937785052978252856287093877892622441465881840618070119656445051319534658044752438614462648968405850699778288717385561403807549140403024696781703616073419067809933900617211091329487844051916386740811481241982727201285589027496979719043945387440313233527409226907137297112439136332682352754144393851545415150787830863527292205604873215555873690571005465873681360231502554746260456299753927303441215479391805088674736339836863140495565097823282292314693338052360751069256037683252418716879773325947890547641983646192654496042916416484424048666829368503150381401398257563074115140948889161747457136493698903056084605785481050003974818328132337954851315233116957671622121742641623347884281905850246661111536309311115086668738035537440428919717384942451512883921122787570004772759836027991344627081780081431275536174503401041998546302393520011819175521499300832957647518352913569885986914659337167909534573993406261550899927601461963425445413185476669142860315068612754572942169715182397663776213138084464345972509783037636665988315782137758975802128974126987005671845101594216280868487083460198454986995453207996396016587234211834764018736265781993413774059805320586071207060032757124739969121941189768663835391014070063856426871561717119480250674210564665095627687418143727026273133254394552803651552407897867134970756789935872276953306793090744383457941853263885465259828357943020646009354658479294715583757775245684486910002569958766129354222299902298244952304518853804585053934171635346122075084663492758955348155865015194526577340313362805724948021863347187246731907634672264552455390652676249022527863440705922603221391576436779408524739012112292570817034264688653587563974643377017696823898806343355529404254297508640434965074205586467780170615639400481322588033378554749415849522366795556462413843115672181114067914480816710531432062912898399014349393805171827587223107430046060094293191162403351673688415394716316682466415782841335301150564144618419591169083517672058242395049598895687776410029987072545136569910200802415022916398621837789876263952987351012042975759549385483023350885687671429963473189910789601303659785036585273605620008560238457719680144229740850948977342883954781619092952573429101492448260039756492168030617539575786923898418233375588023945000578646974988048482349781379219095273244656942430044431097979123981863544953397017573947763508625384823600782406388132901139275040513369615370997299206578935200480490974279510602884126202678807960263623234524704843620786775267560626004808026769533873293402539839091368643914742458128757165332214555024893436171388444440514364683779120271527605331041329718442391739830459964951852659034631345114380542807347028060329976175990917752486030513970618762656033149097046052915227453948420916501599073192279858467530398899524874241844488369475620044052170444188143827550556719196529784908370350677878592731492754383030915482771997925909363564609113242586585912703350417620909997152690153837635156823403955824652881344318794009748262322992772675688375655284632012167090183854531291401481987125832369766388694445314168363888375410190622598416105056694119459008352424577171592517248021167355314532174704589760779337531584676484690021878228860398237597008203251662303562806784113353156419906183154446156303506979014523456974751888036552906663467650979359128215393271881873638801499761762533456008573086346013469882792936531605788090449167791342043572829784038132735578301603567788028396020009968366146233796844767627583265361110380899717862762391430685503004800586929007710959479187172319056067701931177478064761295734699152632250205497450529279409356027548984972670613597468916754707215932553770404969204439415942151474372580651636043465058302033891752118232683308542658695643469027281172528366513944040289718092681486131003243680773541278067069897324991216636879277335397992580598590415127888303632884414920007944031381486775647361539563612308386492280803277424753026985229041562737990427077933015134897249040454242686014909034316453865728425329558954338555980472658556835493430870629461824064070772534533271876805439718328591977727793422914031173479974357967588296653316050095573004976539000314896609464797442098692404880673656428329106286768675128389731793142847624558059257430062864827378107277327246634853471470031790758879820522877046625806018246869023494762975441993215201577339307946402286899745970432828713908457630749945158669419282051394457308829619913414511403548962444215510442067342197740159434655876250725579961843295098947333191780609686469994590209566420198875192606602937849639613979446442047563354665378808106173928371677540011384185048073867783701255560948528696735570962244504552314695302939553975111095089095074022341490737191519745001355168665334475489227491869951552001344773668952431066342614402425660575959697287098488000708811051371350517398575841002581683556525272091386744520098136692891027135210043184909769999379822320791271507694927911093281633565644961397076558300772938227267232966423627255614905220025718919986893132792586293875581523206592075048140107096562908089203316675571431510589268070166954012865567210865255532509838797010268789835202003135452954461547990800398421007276510650186896958505181175175200615546313250308731936685728046524669961459798359162328764286766198380840254018547270251085708929794528929316178656190402491753750231161354786386881695897192260681774734483997068454433494301308538461937795672200440252802575300287379092409571159838327547772440848200242522075656423405842476279533687705271438035363355464077404996250863890549988668467822068970428023232236483074687912419702403883456958928879001905484869108453865222450526250041701540004183206962415278777869787374111230697963463644973309017850129340393515900967075086183969238721288604291582879027666895073303530495891208278150392639853976985667434723171255952100887546000478395868623870652171552635455709167183219365324856127303472358074186544187180683470367966613647106012184423010018974678909097728058145286816469359599564131451525426996943575911535705103319330173570510932493864942151771401391117177476670510954179210474151857972845510577941525250683260767113391150834194095938553124326933626220621394830377763836590795382450635392086378100642554066141539125948341853872456984214180549673458705888764588075616481736489254479172904846071830387993827248925028438827476801794493967851074891634925716545957096601862173983033837632958386399578619675881962927282315189852472037228541631436430150216461604534690779725420769938156555090975875987778530903710045727813942846888965491913207960529921167886960725597492737384608683996457651218309060192195843460401328644683324555446915734234175541211400208332385871743438199103037304795899178083509096900591338811407988666291508266099504800057337961890225949934775855205103175457109176722797035583034435075743548042320382350597854803833213564304510751549027197034061612254790081252266895173289991199744510331501020578682220096545835691922983946786481944069265667110918358206974368191411116242972365958203004981141843618747244461700322042995651981541795121507644164685093523571509537678892230135370376611895504478485469968305240637797917643871379620583707276294072246231816587051510145347145436113620672044328024714218030101138578876181668997714325688103114114617536295319048917335370869462577280766575758039469881501994089100810674600090283392715281494256603673089359822083120610015950915279769588322956428175850182601891528961294630417935182016349715778908411250586729304518974375585886270139239890641809205471140740308078252528639893573310585936832570116895346156601588413580089400369089212773443376331123918457869878072684168866833862999814913311512577225514920414492640955625033850490967406429348768653745392385759696570917648314056825018493601113162649737258009500962761133944776480113314280297977548852121698943032373261257781297299797058905783335529927956789608500447412578434478972631087973844536449389841566895005811499747668379324560364921033076252954209569539803628117275865161381381918249423826812762549267216374356169417314064448335249669071924033413106958398048174353950112878493271606761122218613960653022689435336337029505427763141608512614607782700338648862986778697875705208842276421372230700630797935786306091042730146426346494850906228861548090344876520122465075565795766505252007711173282700548153068741022834706114694769210466401184793808784685068739346403836551088116338456616127643076297722765136502216117823898098665708912319624174003983258755390721404782312442904981516562143844330516678745041782563747000700321829619061198565671210168443984864275095173230269914400694506757362713347708738586006202806417493440864119217757588814619012496305004586373223384083394055524573645666573759457461194623167631162723317753679802557557236558994026834681605814778610523160915342772209046095232257198984206226553163347540279173657325103542133486628549758863967483947582419600318451516191810547522244396483289414524616475953664310553181997181973577339952112334022110618521295205917398602733435588575974644872423294309069666277829523348467438441986228106626027410901477072887433763021370047626662720800959428307055125254905351914252614819909615804604849409162123787326719899025858583820316992476428632138077783396434636306056229570343896941748412202172099921267639813620720706880910890362494101970357154570421899400202956024732773107450447235759147020056546553651999196773644148170140197666068214685725068217252053347589729345810080472727266281402799372874489011735261535508514685126441826922813215160195950900670778049665586490074574941794944277845760029472881866203714406336009189604861969589893470124318921487163559618740247444292791819372806128652852128099126400996602102826432013199340514116599585067210579759857228963164296256861318245714011631869406594374216326972451798547279353330104683958222678099094736995034344979895276087977923114274487125454618575648464275867947170730541356244706653708835152727506712220692704674547119311296443616845088337638412051251206630853921522498419836163657218023657730991280106434813475886436332813102489770028709607102869454296013996017686656742362345729478391014607869043195956258649238319050444886642777192733709454878592066184348488605502847676278841518958331401224198817773381751030797104697695568885246418968723166483866890404993232712233086738285832086752954713228939874340782325564052139028311565322621669657283864281474721508953717673536778090504261882337539918750816094270603092002932206839462545090275409392176633249223012275608007348894530337338213478110956036304062211721385320675397343448247395293264782286847259521427442016557369398993159945827892247137515402099068301275511589437468794336646067743300604369130419486485632731000731373557987002884610285385460490542982390302543920721149341685664984156086797901769800841389462763160707156904642131009053222501652301876683607706684415385186616193129138287132172467188442707977759977343870242994623643746474167227755758818258861922175219535010597717406548311576497586973959521132530647619593710250467773883275640691672614801204785467272169362989956969387223327783663543623032674063986685210224647945755560091144922196073626253726403779610736334564170326417290252283565282572588380111261627694445640758288705510363714327341514427293110761129202873301932098910034674694511196682477944829779792188021538867142554913468424407337295943969787436564699720101420065684191062239883832387428883014685668561716850180436932645788456510360099575724894970407471036075711627137701880243846773022642880000615790906547803570643282678896475809935546008173063034356166456404827331078269573919338831087572679894302634586148125862756554637929597383113088756414008756032240346050335065440867919478726922684879832532675795391291620519236179601184034833679833486911233215360362238571071114519014047008579626684296423477376077893231236732533459644590767868322803215737929835035742544505544845591959840954499065141139526379138654667890950643563614171962515941514966838696521513152939397289318928227790799670541029014027044002265377153830982139850781370133775179278843623367387374456039819775237018704393037208718607258092914495150013659700796280365617610231212624613470045335403100349969095819834938699526235805467797734239403718575884440764384183630159339821820600502489693424749755380040873425084970331957114732891613315291251397464865378733299462991757894515675234530347769023715520340611665929948618149708375908535365439734037289794797806958886227608533147696699601505172257771620997550588662340038570775317177379048193174236588599425514388749270628175826673359790888772233279842693514631873071400454704877778755577197955459394808502218118765564822494938929539183341745048699022259516698593332365666158703389563520110569240308442496810484037496980284205489005076945735642527851346073245648869164821211232057971622590437801641686984306190270950939707215434070074127727885431364379505343917287224697749702636567953585197302525391177363558952127620009027575342929726034672434380864490465892654656895883796097339449974048550361788189059798584435111458774583402149229013815667136183641118125724342317593467237252655031393557638185862640340129755021876892478501588428347065628291653173262546584094301379078638750984752537160542185007962736354420419145817984588125358262019598484860414448814422597726674982338414833525827823798916279623106203058673741648983354317048498379579766955422474517963196873684714318299171236729264653468810696643195154825487239396494306991439650951775730005303838722925715903895558172946981896117885668298517300630090268630856815267777934530718610792867508809053100962913768065155990773786220310233210439599351548430521932846064346388472610870339773554995008978124093145454265314937227645830720655243369675291353404820729152872028581727389935700236522939572085861882682402750544136889497845805008148520774538064074699660276188804793203079866825107528408334589674130513586446737833024207804925302633441364132226772469064202780222298696606087450031795948910887715123997110049836968186246264748048757330669765638711389732047548818430838432626212748808235379811086387802624484226730012477846233496063755019113618822631429975592839974922902182161143750403257222458432698618400309114482152156541357229855131175792197256428028165022093006205431423724943054525528474405577125836160826739987242290024463882431301421045725431488851033793928276388100677870451656344524219235971846070605578521410196847620160477426095130281251055191064354893579850048482199132768581887759572699854339829208532157414222198854604225969136970194042408022304874214617664998064261547380890147104325383048124990212973666486288966372112613882035832447837996717765649291801482737932830866110765296340886588858760207463137721865254785894991058884048596708114400527104620155618553635774496139893225342351328284125122055022325432997007205867329740642305559096263036907128843462931811996443077496350307506411602786615350798354079009954658691818366086875442853544350932710165869785299729200287639993299722599323745806972381882764886242142731829020680985090267722297560553147823734687759412485714177397846401173221833756441141559612572069788910092953794748385918826410699848625959386789807838074170928865715062457748942092688429902493282677063851550242689499597305647764073419385621204355401595736125455045114896394268265735525801196819812691393816505708377727413149967560996925585836080359836129139433226181637044184857412975162252988214102649735898731993286394406165629634089464550298883179437917867567882911540395316469666974104972746295222954498954827292820306658188365907179923152572243640763331176117859994837892092990975901438184076275913947461657214040346087728911155619118194269153470368537100794432698942516319386276745909646621311802123541418487025844904932970440713331523240987180391749205900709159391234153129199652617036780752661027631899873128685658085341733886347889262784912326613788498686257702517857282363446207997462670490781112868897276214520942376825832515790031091718349217252443101500337896594663581439003582646573063501193110242980778954566183280361426823438213710720459744336983218516275687047463264079830451739279049618647187370378787331910601413445737812972177291395092244996979817631168157321307166114835692405202209008747279912889165848804300317164948394748784935242633550008686673756195938284862942202709586267861381119184445043000680391811078836262881073024743219831302209972459305086782061819674601602437774188301348242855355570573633467319919909931515166233364829563662295089898760533875972506229907829782343630927390324116965338020658640153573765403948253635577766240339516845276270057212176299380900761088348468404739892151270191082004014901041630314783745918175923455460433806761919750934449405687356429208991597985188994755950026003604866811304422343988049599082514873724544769079972397530287296406238074799610492218363106406815643245770561515176789267832261114847017196342603581949276668582455750717997292929103909939878902404842692986403611633163781473116300733118117829164667163937863823640267524304719818991418100067925858971151285607226534645641915231446578718906962413409148638032268584260867139647475340337485578999999812823472205943978857246858815213013049305081618260303643312372107797164422086682518607963206506149506267635293221598646339008913367405426304504422547271335689289775425094529418637277337659921474178559961322330298021649569775656263828031649249462087918485847120705821021999608269050338663140127572188695323432281938710247770198092868655600402921950409838176462169253096482025522585787515618545985526291638462030283163511990964273137863418170948310070088698913202956266814993240464446224490773014346656673578915144649142131573230233377266194391469938961062355393734575449127131169567926836288538441893959948329745344543432917353816862371583693358421342204949843234125278959219825129745303839696712502123213283476906443991780737767934986407886109127012810215158758341951223299410433678653999336995029750650653401589223685867519350780154104435747754212375113239277342129397272860674640299986466344825300339726398937929559952954987846831973788346945188454315707166573206277314962496159636951358766179181267197355003921562152302843624639583057486805707400294202720308726119104220488874881589099473509739899240618919675797808803256292552609909519457924131280765415347384014085642296778040118842699839611740685165250597732515207147569125070449146108513530989504779270127760681956699279888651922083629155547032483272998239685489248647245232746888076880552148370732149423855594763589034351248151690659587092873044985019018331221541022280293648856817818391228542801852497304042925964056542387869064788578577846905472981246768179603793809025478138637424031901635470158058571968388830906571088933607427107003063266536079172936570070824442366005605357679853318053414380996896088638656005368622120691682000165651661503339164972414319932273072925414619469175337321668340383712989895550039401810720581386086232595724812373006670054477533471282801744844420853088299471612014853981769471529429273429943581097576461296204309587120994104367625622779277349660686441259233728314824426262075789804665291699235419217941419394214787525083115838218720421464717623920191761559530629285155142386707979925522707325770418026760464202193312451680464889688113095840158277456842581310226555932659145364689663130893599708432092297152829678528232117110777148162092420936367325779708162230620436533583672796391926058274936408088521907114271641358206996960370644380520893324573608902081836556220808314995163422536618829927141067646818878910683723623849436045814596470879937806540874718034209746026353921081707165903887230504461809895729641738185364299945975504187509712208519051049740966949820921267543254103062754051438913609011528994214874012862675506542830703164319942695203984673558885002874856870228018171691740217828964456175219033356962201248055865288841133900653116830389621038421170867095090236990157976441102647627641262460293564814187245074584644631873066833555201031595085553885241824756288847601761720224487455684136506398790733537732755969486718103147585855505355879246127514841808806311708751760519970768069740352016218212619301164544353665694702283667022952790699403171745303238820101725864431263579924742417904800068974311146868802389873722263301803328833894887188739966149291739936985964489224997677618000972451345799608671742168887775364391299829416385130854827676707410815266186249872062652530289033268335141076090493024259012485755347749145168303554239530961353924046366061320433563533317560096124827202413865304788938433244742074597428705483202851261115035790316575313800990065098308227912880034001254298784874040915802307164414619484071981239403425388529951796165987243991397581018884710495799782852997517066974010649371244356883050717969692770524915894685468253081208633750042414342176833654718774188740073206479865381475453788952407332601277888452279973250063127535635849254765108017586362063099824006495691442658497056480897976358428944043616888493796841681987373709658108859566780942025414152348867001675592134152576646563927898892660796249189068502588687118013833941219940320435618256776032393905363594091757050419600456216819207387518377072562809860534591297103618793314263343351353898536461672122472139013715404136645065603358192788409405548114223122311963295387319498876184481798138920466053248862130276279787518698289926981904649991767710274515973410581272595757836759483113534411931380728532376255950290684703608232839099401395861750327262085574703170592855104590785290411147658297757776519095308054909132738957315683851149660075864466350791377583999777522995149513040385947900438309925329840504502526492089632522361519511440252480864425394274555947813024960620222172554702194213789658117351459505166619087166769262961658731925286323250594918248627519131333548645091050539301516632677045758682854845731325480732127149011042520722171363165960412747864691443631315291891137810717689032426399097580334039522079879904578236506809985691573238794784568171157249723338663587404242350821188383584679800441385286886499774529425978705042277829570631962833260095025571713210859285245812665966439924050715161050480157710776928494082436703419859530550055750956227566697676552197786836354239353410701056997281076330302666773379262197250240974290515735568584452958846137938664941735908649116478400623622038866356478922565640524576501789038162532994017022252945649659298898986759513506785151067111103621566392345966086825211973900875954239959947943381955765086147725495146916570375477304198940286023211971385602238866143786349525275498463455621810717860418685834164006619432093861940966700714454433395898337300523024063637646734424302531512039406342817202156992892419255899269509903485629204620885029831189307530165759709392948735802866863988330574234774303226397326139228810755045276815403376005635678512655880610998225306337565884133531395078930592327392823932331159767651738580063288834489392083010506410982630703454777894890976939136990346541012621574918925280406854125887984158302777268450824691101338672343200843120701413583753600580516497959744744059877087300374027994931251557181283778604271301461335876493611025153855605533502681288507352030956613066821984276360456495010740478127361038934108104660914180613926999747362844086793048236336405516731369725157814836365625950815763917894433534625887575892635218417293551293120593719411429591979223661102418307545558752703380096297518539414777523886216608863768159531498365734096617598344344370547396055656202402250028328976767794731606266083475774488748877673139676601155287648990895588381293124001854124965435536435588333475995378675682132136907582553032058056370789937974546551612271261277948851652012305511770692408131386988135234024046955340952483293748538236699055662138636714195667229111649455530228966332343120273720413569385194756043996005391329826046949850180170875646939883714246557854511307275393276446303772916741473390221319109379142673374792491261471871498002126547166262868507881248039264109881138719432974915394961893514464274100186553183036255731566048285995167938202037504916757553612526901685100869009245233517707322877102145360480925813206875326251013165458430217415851959810565797948578568047288172345074502994634796665874432361101033409114885440202798784437191323031669157938208946167749615622454484206886663778443660689951890120307605902996380186418185907543923856957387873529814036750167793907110412148492802476310150694288054732703839278835021120545758778146174957711146376788672829628866014605795914538920906212212812965850998178696301608192053538895270563319445373511892877512085328277889596986925446583453709011033580258277044550194927722345423310922121658422040288368987129296342775399256475018537694871336457910435662573269285775312323979726190122691018683487704508285526764432643963551718913084767983057469333264235616885023582046583468802558154942869878091448099494654389730639075047034323461881958326347538646150273273865623715737641586524247540607274008336424971460409490037681129759204916163506882620027383220947305396162190127906355385739341314992583582272764834066056936376403120383479982991913399502261041940904270410121991420543164691430428881602788026416704127068864778415148035478650711987376666805709093319679325339263978114923779446159448316731238214648328860364890819384483610178316730073624457109380515535877411366621876789403522490970702170510174033750358970468066140966601132114461749988025721278392816578746493348969240211584857790374609119128943646730577251230850050344452045401261229560419465805034511260304326948272538380777219159344834652664236750496210698817123238574696562935173382906387657408051039332380531725666221795837908824600271180367746555445893677119798705996112489620551637043574144855241841600160876574972271684426204989385685548837796392230263792132124129931639509915164033686157093739251143318594288290873629602473593868622573048745074197210852232611847955131685957079333077281850532040391539654071721187675870115786290756290370848961818365744970118195214231202506794449253716798439725760405592127737425991278503247478996495278191252417330324585179043105411145624385153701142211903113263999173725132864903997852835225591381904330229803004851689217391226043660227851538559380054312556883984812145771990737274745643168259926189511943573892224689850297034864867937729643402102691208562391571627494783446486121195936481002853115706934806812885789973409745914658274744263771543812432702935753250501925462108088786987850013041982884600238266232117223608861958962720408772696362808308631261205525921868020385757537494947507327352414954740870095184803510265769355765735781542313300691788675672575481283269810179747790295050731134665946144980158324525755255721693088702989051467331825367639585102890661005171400187882776354111673246114452174072616864821209476412584068938316023993278112858553702868755711247767341850282109976909409358429777610140964797728677605427046340501724020567946138999612700981798326617522890721556040320994607108506468932767110304410520327875202501602613695653579270802485130630905255945086804967472431336870074119838306942215010590280901170339422087742321985852728726667581650430506152234765238076061171334835491248642225999944806098059493850975104361885472253123917821366620700114422959360289711192914076426877853785054652767142350912129575865415491036607909525188537504845104935685637032539465377209338144973460390386339197354451927286791998165035008289166155545020768037211937356162585765472331862128740163654915894273569245213028290812028318634157082080443853646094572660974508949621748550054638494236425054216132193509730548551312546192063352227089277123707213186389753777801347776192151818187042817326498241977714022736698046107680550985122686950501528337473199167214163622917289520705456497693092239215159040161419912244890729449202851775855892569547869292785464985116105416225942845362659738072404628800976691123908980907503755888731767518490640466880721547700169521526391835392069539270784007154276278173585288268889247841096008308239211383614210554219228988324896498039929704333922771922655164314023466107043491989461165358679425473708537853303516883007654457801007895234321757610246709952224829433287799203480330266481936551130906578576604981431050586006454108166687737812435069332243991573796800044794707819008252255678354227038398724955920386271447568827376540107088639644473561866732357329901094297573641074531791454974484063329443627891341238026032717276970466036246445681250794375824832724583343841824184926100719336298707676195589962169337463834062332296909032104478360687808567037511740177350310036409414216636351083771634715032557232282855867155697165775460248168265843481704633545811969519513031903917537083483312554937880570406104942324252755684993393000223565207398005213684767209348341090557074448358607109879439903144104180726404067247518026613008542886971576710353788234137291261967208483604173997517371048208449444977931076342000180562819832403942159951398563787061448428955239941051857195946080345319618629103208171828843707923733481561828234348442700521295251814574995202049403975431037624207530660663612994029993288700209935405716396533165913563524906212033051673286231173366053416625731343892516520239779293203453326737851102734992020351536593418968552022189676165967378564388577793908571442292761369318600186145362790444264586348406788618456938305982541906353351159544379595204115169232296662445073068840411658715031747903249847587604467947274002493172532530246906584651706844534256220837944212765390802408924584892377130099223986646159422846827294212718558858711940237096044507768358746390779290157687725825681507710304689310149161505648133391472532208997554242145364181885781902927698051614897726810373566110082801932119815729971296535629095280820756383262221543361114313801281993098437098589599221713192019314835167471142063406848312146941661450253361296662219186105023762442027645369181342147777056401510692741458788207175838777757661099882907007715252829687209730551942630601030609491630364823376371251887784033882087271268889402825599874206674643974151940289784267211882683070667924106513036441486224476170082851616661278522675164076947429441849504321117028269012460141511168952356973482441182083594264570516792370990536421096373251922383192357048459074417316333932314166741344417765969061171872646167083522408305822655236298767763537630210499493546095050653799845290854808963852343302019232985137012263081616169263293458478423134150940001941694206489299652883145655063609591962748237135973817869550093863154927688662167413938805181812269010234442694367401974931701763148888346405739807403627650122184570052258646603951043832980922573457292173519963269615110757394533809208510662064984772397664729979788633883410181345296864259938123418634161965734804782014052640403923973353974998098029586474676396148297243372651307932367398252202656152263646152680888009295153247068417406549004481620394658603022427405678860743654806454798969966188772411822364948687492026118220397597059555627804760354911355632570478005801491302425207019437574520705693038339564705074171029349705555809188090400320760527522488747100781681378813297663930211292346696355614485780089305765444390861091167020189513886643519521008639870934386946356854949388491384656504064879758099807746257195482166618253751648910034210886925856795828922646066223460988570156433379984022688091572494846586046745255160069129375494120525187653984685776898396101238457376245584371546173872135086546535836294929281677542382671682559772474261241693218510948527355540739712972282847058892508933361157053102671536272083713643114775627101091810934972840587501837031059954157830659730102861136004608353141693935842363238310704537841205621080823035803532627507612786286167031423841338129821843944041968620749476690540011870480322001352705963868546682911843269194676948506100548994010619007281060549716059705225594896382642761754043310668141951434535561181488585216638055871999652296318124820557795378239350093948629248794065220818835658483851956211130012814501646348020552937787878557942568163642011229355374524358185074043348286656061262777379310962373995922063562981745152719047733827807492256532119319565891820435957739276068241924218368707370724299501233072950270236684697536295141646207318887740866395287305498528468797698596405360450261813049628636980739822926051357394183074794054898625791410880828474604118927121289590087405586234280639938172497478040104360029373638947348609957697998397668528162136020456251128106998054497551345715609313040070150484408701076972836051770081414714508778188224233603032120900965180682559642654231957512990970444966466373790051594010653621641563846239477182180188219263614191874089068184414790799880246450437903009852715778248320247372674571730457567683684640017128187273899725303972393956304245075525045784678011375059596813790339058627561336226418455652659144667399714927386346456028857402878262780822332813319759503399454766319859898765603698888210340245625843138877139845394701177331212712553710347116856701841054035377210651193872404666579410374098082786878385451552394030032952959264224055986907540793906202369486874220858834048109863718345130077735157609426343089351184486823963163308998013248932728527309475016273822883727513320699556999581882540395089296655258584662652389648607891097309677152845052066860163036339124506465890389387915383405396313406102884038293206600850390694127282113068724944533613088511416232838033696732602632269806850612520061269874118257656323105145951303433795549552220285712114378456145795701640810820751631338919127669012349917467451498227055145538551177796212955404557174533435437789324780135436781055821563110351302518220121842308681716593469586724109269230496225780514031593705547855843363351371032190311057533821857038130230297551161140053033973840809451438505705718926393017644222684728152266615272229644502475702455582423767747680318605492368179783664266576860152560614978309910808197479849909739434028302278435475168205285950551055148714135657759362563637220823640724191062428740804840558509920479897076453850875032937350842739220926131746128451918118269509913018750604683125655061201619840630427116935413521395730897681654259430693007619263770851714687198942811755264692343947791280364478977543333384661862753236200797735396740551616824672357659611631147278201424472954888310140402273818602403409546857296802753116775256975742420773293041515307972091416304353317875457544813595955709142649334304630004164038949477389693725722616335353063067347896852984593348002008713841912989492747350796627169101673981123429420490574545499494001603124434811983684434106204361179483329772351178491183140089566434206305127806623984700658659926352743586574608915416586242031491492093071753702239742154649700256103538499865597194555868863966523987765085457556658508207474735516744964780557252411738376738752429747309491857099604341483176317899100474435878792302167737535162482778283974042444381273067486345887655708308081398297021859274588291770322063321311517463894376286731654441691749708340059083856883910521088247777732780352315440227537089448736201284842208233899016839105340604539627247052980378721965955568221943575274825709092114642594652866553579149281890741384221896520304295554393133505562190518915157402805612466190691734079510605928282537026430198830344151337285910735024772302023897043433330300541746783726242110166876545090096119100094314979096718421939950855625856526041748171977249780015557413405798067088744132870066217073300535546095830477919399587101474063632568752104020274289831387346974992545787665873424086075177629093105080669344930241675599813221178918588835728261484280314697200140489279485574713595181543781077793594574935879791732996524938250842041370551124765248632957196363270091642151755566541765342310225910714285254180020159201491413734902012577662272354978878452630984208417870293147543815967373832088117841434824829670515313912915431871633347809695214735236824611595982232285442724713215158440754917484264078941362857769326598835977510369745465405153488517033162097155893294446433036265737734949948509338123017603060061042814328654073200573399610099782714040660531456753456277824883750390283062111854076883037002119151143366189411548145972063892605054927191879153181114961390165425953075411765225675798405557414453389296956900029775465801607585753008641231732623275336357962203757258221004850666093332880644311312983815822919326520921630515448094560727334145195056762411491322735901166457294435891288857991658612001420409846201051294859157144584892976487763281248858212987059354562394392017711415376573901739910198877915229235072474109959177301416459758932553035349904669493731526982481769937628228967153289798058581689108193806506519086556000702948311778085054382554503996624161661153678669541476467214825596460188994004859736266879423494153027493658886199302863569728156214692265886752107099991800419173619410829917635270866120853213178197654960470343209640617452545611719385501672742092587848940526913089150537390441501694546400422011723302673316021407697738869020318503140979590878217079195313390716505304753965467800721893525945452342810339676226197347101534958313373770485190678727386620714972848496376063389899047695025756134137285558324666824804350291628327116710124135036552072853561474714301994577644042918939484184945672207722765505098747740243070168698876095078467234160871581604238399883979191812777436331833449616971031320659249212812013358998435501371411795600808095447296123688401826758791287847662764120432364971715376370449484960746678421940688565486589397368455734249356310691263448043782062878105944178101196773365385020205180238765805300341328583616774657920486062634245612457473224929831923179580661886077359970216886984451195942348330401031599951691324284492057082864004746830372894460085901586991978901091930003054410305200659855147736155669387042173581247512561081335041339634855656759987862427441268227442482579047475145755658892727844967949833195160051921513866320713481786375413549132760852577270442907478544428030838621718970391438526694198237556162178445612771254639791598412074279839826621000243610749339819631216644528939390745046108967816968031921270430704259518731764006381701896955944217197077163317728004498648032990578122088323159490586760262872436597487768623838888776939101445317108291110292829785140531701997501259138926740657015230186003299476424821053438944134799340061735576432226753684978339785064376887096033568124876520938143152926679754480904892730789818264605667016625488779251520906924916184897170348430623545075508004839612943112917229111759562066192488872595967429878590073155092040041206368921674809116272851580773052712719901488435254134852627597987177249732944041960214572121462998742684337194889941311719755060045362546418313002466654592927125945236923689613817798769006329747314985873254805522291408599944145112289626584469401037544973915609057369379871915466067960698217312952077530109089316246410074707518291586923419982121045614254228369944346128367535340631246675143671959082632861153882326480601509536162725997377651013659208091151908377186991849436744620041587362760171359352735419216526098156716512449400217730741154816840760181896923997778254415123307628083571534953757772840563409155565250436321547309774992013938461976568568654669369845507513792161433809237293955024643122055810060266962358661074181361796563180458202862047376411363229482315457383895137724420202957904372296023011546833190462523040508647013188871322926024955497944961097788012162671075701405769194330531903473471771721147098631108643427534141444672618890656677674779451987481891114738935815242268488055834423292426872932274093632803728490623023217606460509572786444063747360061197454543035760721978435329246123159930919154206912797640104892784814776164041350470237746788744104243551248080685108073335704596309034457156854800137109437367579243193278841693951153252198439026068504447725568644112592365643068077387006303842103429013480749015511365274172104619126035073334036406026671144161555126373814872535934244157473167131516588332897335393637136385448248664887965964250739767117576592268339887566435631752392506071875928797655271661635977467715328821404353616977839118160237253070458262502163993256076325815900658687299676670789694693737495310710748475132516928087197931035154536365161212083181766983936438020819050907285757479781202513216218634213125767841149587822436977393332818938302160524456497210260848793266274168180575367224402268159434976827277670074307139660618922737396994345977109550317232370994012078660070713896742890030858909973964184016886199563445583122482304483421897680530073633435498569315299845035011832584009375546602659444494465027528210345146325860682093082844365387073445137980956870580065779222334450678148534596184791759786230203329564632126626489033912804554842480435569348710508161234376412087000296739715551331805817499807504359155993062838804952439767112561750782980681865101961598315484110447937896721884555617060423830119146960803033524895570151048596059411763348822630053043801135945617179526301561838420366923326603192933888693790201706828745998380271956745100883019939220323349347630716127381324818345124958428195947854470885292659012478544443638180196808558760937087000221989184647675115280069456351898419413673477569936467621567088466745171351028337148389938161149888962212058930496899239211936474462136213735262731675253340941511056268854348712909263078098038153578450956873964348742004237827297191350097293260092975162919245684425685400219817265839662758642670141369709459930091279488225023901052001402037209967150141878911761858906660282967257337740010609224998298165435288993574899113742206611702257562047588803909220786857533449605595265956735181279724925960029837299897240022595237453741787751875586157162807025432052260867975909086803290367347802896943246835428676662771196383461588838192555707617134349216775927926386034523296698193994861040221968691267759074353577321395916887890742270022147696706849141390897849399851839240211526146133475261212589190580192453289466834826282726132318454117972194046138137535075593196914642656785823768535854742735549340359843750073843751094150373634471113860646947881208085128088506533127886453705148907177875340253758019565676590609823617374298978274002482416617704043349698458876012359383743385333584324893511947287621363423978566530655071873633741677277130662969560595666374413967312282039993282690744093808938023438782252469094268833592000613224282475592541038869254375594135097241747654974184142118542855366663596457116707168639790666920821324326940170817230805831389173735894340860913063670133742759489105112324762494576497173025402945889712627857674980401155055975943260869767614201117750237366360354402314577775856034370075741947065474889073083390789641532409518002783964600877746488000428282706730181353899557487823132253867961182773252114623263935713983189844287404525526776752272543105912914484718336061766060617798784325652342996835268168962036719789965617456312912950077905520534022261847928730921382953964878766133017078410915667306817408919808947181949372076580603662818758525481348714989704046766045748692339803889779060001023660058251765406903921868901269712354374036601395089726782093100404021050185991922485510309582863835616044007759538430258089945213658058342322465171893718640893436742273787812378235198897767403989375888333371209811973439645837990250848783240343701691801628552954155780058215019446666977044972343498784979697685853067678078186197073181523262651734095829451924907192593824988268254960108911384186865069687652598601542664257501202919267935177844265377202092127094202889930264892056755748543005321959480797200430749940182577856823312220134936182274150689546786263237579521755662867901859094620004101939404767345549096271630660804653733442133008378296838317190537324655122727226330575513633314147240110343067150119719181679913981940801784027251611351009470335932989791333005376571602692710770482681009648613826067771003157599982728169411396106212586318819649361371982793921279765724919163438568553020808642536908462296833615416661577827408649432068796134941930696929609353928853695094836647803680761009455767648995076392722051006002915592906619060317106165401357559037602887263170996829241092552400775165268023785993107986007716398958677706964909216308764671492475597264807918827170963129324067377445840199410067935432215011598736527982586372416450622386047602084746993530316591276740238100561124659959452061491098578848790924243760118124878769016424124675340603281981955013873746179698727601361950614749661130786238462894359955203328781844691040303931606286789555365746413052350238129949782478291817328936588799566871803407069471873556211372327682147978181311150318588388039331030431618760115763492855636406872519644632423287264767464925511304936254507011697647552495202478584824131021847338018924606190645901459858342687914240989578808448145512091290442155911896653383994379400726709149070846081081129923487727846515557696990416773950595753846255197872046587230355163639449837113440386618796357545108332712508379763463743908758267155716490110617032506618559744731307757932247270767847926597524696900560175179275905438738296852643263203947563794379804766733465298739706214718737131092400368490908729533028298781433920186483731878761651533547424952857928236523191236385818949733089555231716673446432691096265340967195798536540791028498271212424488805993195944127262253516866993549037504727488052036639899652452084550900408754888220550524392633425918050284604551531368376237187928063037622436791335000155276197547150553186266480782980093513106552864738936640563307947361058564492994746271920868991717926511983546136385644507267325212627188560762809331256425586989349001677599972396480257901939922123047013057610459242607988700515412197047444008896601388138648674931972075833130844637568854360981263669687168919775337970706916217835830048362055813536065843709991392020409986570269950865156506037568707231532352015275123144833922779996526368552599544326576507046543559069223383561084276904033315347844153888378229798717263621285077783143222898513468039156556601503764010515829746874417322557005657023137127523548363380828755898602014329427069742963568777432876637464161192025727266508523101918036170791346506744777234177411727813865502003092539618907060622096534014665802219988893970445502183322771393263247366375354316164720886667833260396338773032271507858197087068890121330589236928465841056171136153543707425210818183038793781641992342258642998643904889070200646064686697405584202448124711533920685098519305898803076245603823290005023802531907264995831276731021365058996726260224524522192224806288093487342461984267779011940426355028378924774941672221937479209828608225077913514494025470036362165788559854820505961028588037250630517202633982416277452757376838933559447778806397031885117952592478528359438586849108479788431792013327800758775809740547666430165049684028548775978483033539736288275971570007660880964694994765419941599807409096937865990927512172744362175660545633232553218124942305200806344188355551809066360547262227511734926042514080951820392876661608406044778447707453376766163098575620581234099606647715769852713375919864603717945462504241727833888423754610098164994662418457236735477198743933688509617582575811329470531237916529460375173621118755552090291027129469229353466223993266862412762720140416310147104833538259897679918685707898074412451694733328759285232617117741663159636825751344419539368580664996848210718413880562515855748553097223942464006383356983071467019899657507067057703046741548145945544427242690432307006415724876133408335293937611509420938155565238941441234585886739066385379045585684222797999075355706486327306719772748922996406734229477451933567297315728675061246888499825058172695542672749638247023177895368291648038010966607314555664692383992891472553124745462125025180038548777732950281291279669662368380144908398723580622732896370305544088131174351971650785599844920390887246407614125101085837903338567249751648920989133670183458146520943212790221190307598267624048485885972107496013901933994008836598301376470730201047825924305371996498925922523431305423007705269591855334054796807429699941355196209814044373857046452818836935432477850724808762923149496687296859449232142774191289243230381048567619820654433104961109800117381729618364994154461133168796110681729897578691192241776523720229991593061385868699502941475208010019904304209826097750179596922000749292053557870041090496439402042658168108892485561380344957780654859859223052118833870475290047137035507890251483436445078606148788176826050342028512155384612841970548737085138099142411943667885939201825726735430246622321423458237145356819641869575677055256218906000687123868809499835837892712493106181571543623599110378950721880747460301628932640540819357879419315589850621060664727344310411769900903435819362589301847759098832128715473823436295178866547150461604229847020512818959866514299028304297134150808044275793468145590680252451555502200898101970626781272755551221005688980919412639560756736315861172812690670928622922315076079044836115262867677018161614078423275867383951517220224126272332784416813875944208300696615788698364038546059538575623778906388345256159756595870685688539908287414845909530404372807904615909890973388518965352648135986989047532395544595487173137892344623400401197197609855801978567884869058044153901055913707157480434919905210519950153099746896644196501416767030815247145635159840397709121844900096692490154079276764972178302609465100478384164208606100142141186547656777651118194430104302524888429850156582592174593846052757763576605913134973135345431102750962187787355839057241728028193809269723068080737339999663235918741522135709113770782385281224673802697487128230241893469696528340832430907266467057939217280360950413934737333744498971150279852483567455049374011889222526320165649416098134901228504560527161647851374492358980498677244839964515512580795772148225061988881687547187786855482811844168925667943158528374832598619574146543970538198672010892409301585919140668024402245035444823049557067345704409531105043486647207877661162169972865337187843572260215771304469093783902695989467770664858023461744165186129596027394023847923707343967180828687653165891633711048843082021830710919071300373849936360814032649587710707046226309070547868921808657995931616459548905804275832283804668848641324611819694280380311354296787703574228315348374976410062440829724348783218097470373632038884561064703378765293086030896388957446054372530196016617577594283359877677529670343711672214155548684162735752076348382506114446076773842106698621318786705413968284412577544654760289639350531522607285873786104454709168032689020795300483860580662095275624449008150390869799045688931584966490046723837738864594308360433009138264078089874786430336917760200414766643721408213773625534411675582458761573808114964831676312312363254034624598169833568447440311411834549368699241113619929178164416913313659482250113861524626570509922160319135458644203128950682286299966189016141335759741915399367975478416694281579568092020441492152650003845159382394749967110124497365796145904733399774262326263351280103184423306421816462799607828900421852487388181811265641575996253168653108503661725023497213141784717532676360030826591111971348279024252329644839161266404640676907644447604461798921056188848952726376258857767957102417092860770860207522774945098802740859093470101978139060870650283283254923849802585190288186557730814261538690017235515976863605567166945094848662758806739769089705078623915224523316230889704551016580050818434484519421581166509948843680429944238735205050893260028534503953036643519190807486564004473877027145773654093133415736367686581838343590408394192998953635469604207126087974125648950812236889517994722216621512366623816113256828992619880607257442768980594968320706215189685957239327724558834704187397428069374140642708046236209264901016284043227824355505224662297124236870755243044609841452908856980113330316047041542869103674360669019472292722335364213415561648456831874300335910756430847209230141373981635529832145068257148889610468427811068386515717022442342329015294927531725709630668753970790853491128868489163495180150295826726671498936855698154518080579508685795313361276958765725760748231446522378154029706087473262259256691459178642356631950856068536483988466613215182797584933681615857833650472640740617159516512371332170960063420288816443582300928966656130837734695693243540378426833218181048792080586853578903870016984263914850458010681332118002408754735073861076955516123497004033743854704545406049869768750531509481534792302210407332362531623147404518658659020759184400726906005767999253092220261394796916445722769612173233328330328289136865445211451462320919924337310615457945615195335840625782255747355690207566149196493641074641324250571023743126383282414151803519193160941978638553610395875750473967283153854006782757855026671224936344681497449104536010487628586353042273280073106266146308120588753182934019210919815185794903847577594370127796869974601601325261495364556300191727630314497991609369743732874187209861249979272522269071221460428017449159658723167963863689354969849801029633098189148897521577225059729651660803344910287968001779855272953904269612060875161766976360726469196471487075382258501325914395693955832857374265026350527155702129307498065505488502048370847401400982743195770041053067339214829410672544815756699280189288680915879320106262936670736094287686591486215627488851964349310660359104751039396457222253275501417113553993015867557592561506056822931735235936244397887665941597833122863938277655787789654272491659622636720361390952901768202521341997179541039708505603861438366749594032624503933120554262723242813914731472229712479512568106187207356216318372974340530114738353720542519088426454311267436298258903870665849147632050562889705888569046211910948715238605158107776384525001695254379036974733100694440788373880876306273489340213125248675749537793711186780910755535940729763717902638006105034065975890299630554967114108882257268772550636409356884128712794831305531779174640960640250504884121003099396715416571406357810016491423850602402115472961393938409504138030829310606333498601102407079448700090257684490164224861444713031815582504530610123655424551225699123269506417687397015630134668085983647734158498739500198426208007763717116751142737580114382547240720656875990864259876922461333595401027547583141232944011711405656531140772881553823313768329902632289135262104153733201492367904385266019647912693045190690502409463860464278085624867507165479801023240356588665092532085975741984709892880583613980912752163100941206062101423652307035479274219157536668141703633706340217862525181115024960840135342359613943618758445197672640686673591524649907860295582460299423762117468172099050627620043752546542906736361670548153955473190839312638367594451043022957790362768273895847878793811467101300758711156871669167253983019666343361233090574872036715639517361633322444546059507436952082931591043722174273838059584000726174899641818058425546231285076047627424723674199250063890361309991583080419844978592074908900426276858979240559013946615645389546096334923546719404021446298071004924881859306519705176732989733082479840504968692905232368622952678162404257572038954223456873535254563092562665669413807411416571734345507066523621434934277006951527829835211326994217518128125000624336059646924131774325560821760115473816525636380145890749717487690225015009243131146749749454380500420667198606470733947807480119756105167018348989083944992785309069334734668655586384979624931778656768046916623778103011878064804146770959546060621205729409582783124800792264203476155141254402419231214693594866684828826142207097296371215569476943249854313915738155743676332320780363667749490336115190442509743032944725215780911185206047972285136645160775989268353818055173254040394119244619881745409412584225914896895629142526991231559076598598064270548017095103750140344332805019606526556059624407175718804422461233229275117540841850712205100944670856563498055514335908522473208007899237278608799464148088116664914336708089467073810922297927840160061573797267439560613475188942378765507605794184115373364179624486814125148956594327974233865449719163702502457106954156137064849178562305041945722165358945297256450577851165908241964481399250292048647065945205121741766103490972955299408989398993599131373509476379124991269717161827765193144729738177622609820623691063215185995057904449616857569037449386444381701124983421713432553443586981696574239015713191771150206021584889823448729933052180569313069768370976676246626723257938742761605698712676942319892622189923310692602604823427299136964773104585350373002694231086624655812599458168536113614280114946717870506675613764519162848199716992744533197980969571887131214337507410281121834819839513330786553608215333490083422159998070237614221566668468877424260621222187873713033703880138755007717741574780181246513960154768778022377196518198087434562823385891524709671815342605612039596121120233286767124402878567399634286204973373185156433440891312501174899131657443393919260072016101466168564769002709512235939603749123637857316479785741596695549287584500490409522539172040345394895094063856246980655663082950040429089989547844168232973867335435806090000276350842947826034794619297973174310201410274468317348202784816273019190904819475244285687524730120667923358555664130858038758220616782021833686768751351827131661752407151426144527216039052996845861794262685636002911280937963321260880215665470827679645209751367381468942267920581468206516788632044392396743595004423495373371978380291811902139486383050064916129620688985341620908585178328684554607409983806373685020186819166273311083709316513121399208512494282669165389987410905965885286973529519644537859279107330274789252973334873672488725976175798555918346038135303588309361702620602634900628278131268855793879235537613375150921207750027359256213058374850616341033987825509045996681481582517679031084699710535592293795190836709785722057587901721340413909666084833762721924973124476376863558413366258261627960854409099998920001537324443871447129316373278867285425502146479476301832508237522624389773804158633608222398949449473214541747422685926006608610262155869399793000741461166151640794152190079544624063429624937822589641846925611153964522326479032929463989635153264494750404241225925330922053290220106535619238533277716125071954576238232686440901701622576556810613401339949491811149264543564465227858891219297561193561761433618769242554493085380517934142331247511993587278041993039842663757527453613363248627353867071751089688374175586982282810083239159299016842052662748716288467792952120293604213884013688383035064956898148771898861730687999606654915835709892374438495339909063500233693483436943258796426908936275689480854756698891814709326358297125887626806814980458138757417464240420839772706978223537878809347026776905532351124388384847231586725284186503648226230730411380090499255168737366429107422793150841813653115946561621652809724036022298606085393080860379534296074991080820050311806715850546814161662033614756222530390062346926737696476897360987338218257059209748531653036670276316223279331554092877277950781987588262201397827456687941055441978516181927517492688156643240651839974826905243582004309564164124297401222187622300224966192614891610296044278844461239500800085824873049978176996403840596238188626274381977895614090008975048121369475961673219435429550884038599235692235910494322304028277293462634237822106771780548614610347810386767462504552078287361918212602675888786568631790191463843365411553135699039418543248938456899629397961183563624427788065013886896680550775683264128568222582664392572643015757672074622097581929822801399745240650265996531937960077901291775181711064871154784344224788904814938291219540808850200130660319843535710331698830234196396132490464931651907186591866305958392536971857453493206144085896406350173639488596444061760819546592910615255966110200914742617233386178330713161418646992398270884971934756819189708441181261915069031301902709316045797745919651736209580478453430253232481176348485578190875307575977637924870819241940359810883946102264019986251747144640867771912117297237753539155388933810132267200575225364918366405362714600258791785217370826996171397702055710579272182578057793654741979149372829000032184837048877707702463412211204752947372260886300486106365788628037668715763293755760142866236872267839654809610305047501130249015203057118287601141597320545867164548155932589033782314349085195550935920651747697181348254590934359909352387765328052841070854280336535275525755031022841635940533514492906325914384572918278732478973491162009874558636567670954313432784946208971824574870187560287195467204109169913649675355299555283212405757074233935115615870083966363205844244927598005850500224249638717171255784594838948292630072329210736188403958234399255276883247171425593736773016554376468977248759329084260316410660190150697739607766788802491316832589364426917245592247526019171124734707113861438528658467175597018604417090372994359629421450156958713892897134283556049941305073086751848283093726603200677435074533782363632155663768587397828651887741037533010202843301794993200837336060636271009927192630829692980227951251298162374509990659392591924189040954830911621931267759541587482435883296736998816292419727995701428094636766788789138082921121343053908583506941627410583709236050316183504488552024503063012426162155916790773181246004811728047709492034579940430275160681262352462648455540336143361254485555001097130461165126689833063628650245038776551541736378619998456723426649120305270534293708596544699230172263804693712044519801958570337801554153692754945685753835010656764923220207944610328259396209146180598656048985031848590581785733465249895412251649086455802991405160395799408562506889581809220815490928849018119708249895572834885231420934178800008020527492686767041081705165093748163327368588614568471626369421371506858265077327096166865436920211041175420181127584314184170790006901146614689255641806981304516425671317186761949494290179657856798837435491044068431639531811570641508289431545135908539985799634635089725359899879849521293485249136201711033955497445377469019124533474108019523576763414899202476769387439475850275332746941860515135030490941106447426787791707503655774722439838247544544365603145690068226009783016066717171779729015586192807038832484710757334875351350941089941059889806960124256960068453424394622372336019993461284673113261774403985838957145855745132580214744917417992568437999093164763061328063528580824860412488403169728906501972878362588210792361162638376970200413416213796978244372023030548538546719404043662330937384472858950973812237853483322926469777108264277780755004990774332970980451849895325820782840142631611665205887974911369144683565930395711121549339904556509649381380636959982852962683406526072875333347177098354150306453832410428409278637255487505018651651504085597471095773263354469365615947366404931108185414890418006352250091586090231518527468272031381054760526628956253921653545285740108309718205222669797302853344321849639372332413945065488114544605051492831196462720981885018016463012460672576317614863415330156726562110245926281817776003533721839417882409270716262084807143794699756208345871425299814106218498851656277335607917210904176842001315334714369506557872287203977788149794035300078058521392143581774967511295120795787625489468739669147097579736102935952147224455572671923934232844217364713761352365713714427720218100429270258551376555703055865246218640223733635465192237427764900901198333757543385012016438594971188027768541101346262524935102079513814289842495726763099690103703476307162899080816902467714167191126110021254701469228238595198493308584179608771184473163556200004762333198166824787690582706016779697089070012291513050767967071413689751407538639998537635472366329146016409311610381862204027415996493467033769765331550190199492053972068548712879872000854271454617163424726592660909265350280273285422239464620852239516045298794989584693906933829006839045771436677271864410580426961612174780375210778040886458829162702140355676876031403144066061683444814917143762324540304649751805330581943018710274400586597146961125941420671581514054924840161111325216753656367305898138624247925810555891761281251886995859494094632233009346705099754237514238610468671167590018595847078134448853882298012170834145269797909276459748273708329055740370945495726329494440869177108976729643044935522746069522725966322781864989176158325070801204253171728902355431818921932806101265313398559470827527860082313838979571674630652306498071809687764949477548695663697543782312185407231475502028755524281695220772929293690119079034842354639076093909293734266541871121838550445845569130570495650349053811062283695833769003983080152835060421198855749646267004016479123369288343324429885168374513582464378574077019264977249677716422840103585000168395653642088752796917086336071210202619740261747649004907457166272027961154481091484758951879464896100894068845719430367995215516371212832279040950791084157339568282399203390560669851212553833786963379127987358777841692648891289698498143317842635312716358284318390017773820530766652899094752161751765563772181917079430918181963521180183654926848062424191946030497189543270875459535779262112297845604007231234522593024487781944627171940286217706888421333248722022290068193483131852950595724217112945244596547335097070915665233832193295672961618171740772579209866102670706802652930982741643158437330495958662767201457139776471161701902160721284400382162017192926358987718973235502734531772970551972615828563008967432625187180121237974199351609071362393505586753707902752798982674122427102308639178164643887584007118801642617930057896200051978911989638435700595225899923879054527857707990333942120286169081563943859642636701735002406734430237753185033075850097613291476356898526761605088983352720663522626428933835310540557365555423253948239732861555852461984768538365518596718806843120006297690822776335868284422353423368305223584501897841364228671874189543255381086962900147765101207655389897566688683976493554500239315230521038589914283135098158426832200164062321758908753372903610889334364447886975858202666452002081465585889450001729433389129649385727649675597478285158977264682951429381227479336302109364931873672112314687320713753104041732065296837788098566164716841641954959723341434737613456697990490971149743858776365825367566851526736595625967334167108233079596946159114377721091178452832875957504477033596435172305283226650647249025163887514094627751876589547223101246896348978361932883138844802702905527925442941141138465698469623134905665972255956966964528092212583135925566952603686471981121605948771354828973812193977743088452301175568297908475004674336024597272616771547800710972957029395842969122343025195458689251297553796672730624105416995236373476556636429356727248256722259230306277202630149001056344566109714438597899098250149026249210055701898152560284811688582481979141384629986321775987648705372521460419139981011839654608106515139790502409368674986462024485409448951416554116828336083248635540393716002344478560058518119867154395242330295887808365259070829813697761986839601157678538716978003227316886649382813419894789076809563902126562632039444065207924621178508984488782313766324117453071450065354054360335452097277074598590560920724425172179535215184555415943602897209299193556386852795311434425616354114640889552078325191934130171267695265777733620790798119238987134010785650824468289879478895343898837785834647049816671851672455023528526850526398275723880692072648851466306804413282445603375881943230504075904252852295304080032082944889346701888978654629016541534587706619973644207671875054850985467302407248631000620458182112282264792280123928833513176544719647850013318681305227544666848352883079363085977439475288238504675732216103029547817025393685065201657987708192877286573291335438151364483736539118018240419779254724150426638573487385136983186973276171403751282128371981894247105489376505077509061169979698336304033870826857108549455095585310298158701417461320886960937086446054127417134899205291662603651210448716651032223378908651004134347237875659371859652738367144943819638115238981310948766581615526700634290874422600513300104220782706211487719568088446591085139654141902004820078234374420268501562040871033942561745625435342395229553013957547118425102401136026888207899624159996263455623353351832088792505477383942374511951156291830532384642646725059501468140806673375257612717067607287228967074039693983952833618391460873114628921116494194398456939905364186590583697406338842815608693557144128323934006355308682896483350610599641025926577371814731238229551273758087750022525650718373587651454808571778784583531065383380151898302337245624468435445280522719551314801194471091836563503942555703821866742541892493888699000741043068060373097342379594599386994117327129100166559472128082195318476454236092110006960565275396875878999147262519828071233928968070061239582940184709198038653051189919190709834087155444894265871624424279840088356958348378412084349483755871360835765968636033347300584293896462090295438312205215115126086311765463773780058617338949393523181324558184430996887760050085640718710638377178982966580974502959961128799226070227069459389085306176793291846041300730742082406133093347183078097437587467138175354100348380766585046459633462245638831694712489951975573884041236170197413840520757307234528659214483387590583170717652153185841277908309044470089533225756563609726107429426687706786389127987669283993348691899259783541376156391548322176862999664390357344751634594709689755350249148259721157594924303857132350727838219119047846879176847340297147504069620259723932324434031774672701917525765531099035307907242740380471841371350861941336938862113365706436445420545716808742286843449568205874708500120551708150440409278855620288110991647621593791820253381981896953645645910942917229502405289161333197385915361552981379923081130213501642073496425681484138904086142008409010719860200918096227532173637605996614963905122035402202148341219657086234463018227457386678772792320111276741967561289383991864716010604360985665904823760655835701293607514919962403688532913075284406874262825495187068186507379681492928894370677211088512857607649784732657920758319581460280643328846997606417875583633973975034919252307680970418075871028371307218143731320198801020465415618677233462293629054768848223680771126461624832205572029594741497335371553302527349863862888945710335393915797787824821435224284204744941652041551145620794745876084418450529579117391188138207890986200457268869873110267951796500013092735602264877379370990530249385453831021988244033346646098120434436363578077140565461102437085760802513542951777145256879197427079872343238255107876793877770548487506821695745079284250319455965166450259394065159984322080055888712451645486278982279077298556930361057345118703670679566005309464713531907820602844337866548342317572915696803968718064315004735073707935318648019912164639655998899233558096887890870456624799866781598627697013753207313606832121931368844847992360939601678546638338990850654179536494021397387177775017158402477927799411268611280987309389920250723679473852975389661837068258342292063280443843488722633298895449704532138879440843492605191654760124399617967022225983455423384699828083468361696276737894302610865347992445910213101891566288380970011454820096791514018601623381036341109575536458071976474880295288184948925388254852796034836455127597966685177790054768501206636076466637685315412181787471514394222954203403468508730822772766070106134960148502665641881691290299620737097457511169302539293771911727287090190171674953038242395782345385052438872202388700204991457756222274813520071970977218535247531004470526631551176331120494501290571478893822248755710275720651581053047170267286758384978845538668031779006836665634488056015748359318525620477469512436932832178773195287598386160518422642402561530973992809932319534707198876797009496545997131904173423290324249920171594185043309541505916884779390617967482697415367647192238230661076916751370407849054393664827798515693272451215931439348119329602728549686516953205603425986038553436922884172277759492257147536210119868811738196752199640889752889439538363944598673908752513850395971168774324015027853787073499659280630883214321297938416391840066929262589881266692817335403056017470074439970125071094348208959634813545155275520034591300758149008285062906413780184110543660425637239886904163144025335257398811956301139312609987709038043136302986857455492243110277095102744301193867953426843095665157541527779856902939955730817173437624863383928817545421672224958980154351053851421575288889435062290746663141251493484692924461873194272519387024333533938971900642173280462403562260574856761805150892203660254081415245931551842858562610666808240144453917798642197466243259562649918459325069422654582336069333931549544136318839206133005955131104072092799472174135829415131959732286276132115936012211859279429552755075110256285859479978941004130015193087156231895246028183907331804588899056278495971800805897834318069143308080775744253532580426353126162112291294710063580010087080839927823316853655016382419148586079400226824654136116486871674488132108310963169358272172288503261700743221487085191581969094976952420034650699490495639103346054196015837986121368928660282407283620401189935662422506648270621589018347508119372016209811681122321367946622399266842771304802013480059571789730938890897187283723066772289303684769527406722439210436419233254887193401702965027934260107029857272215906908155873911278013487961413207844943959726687686509553813187126606471820051733737454755629802568363108647181363822526064149106893099248231118101140484192029698759577035945571205674014226214023691508684406845694155933786179360723487768063627825932993003590517804125309621462607934274146289202183622309571533198422355285418026781928957512833816370436958215462860976086850796687695703914393416308506147663097015623759506211875561350854460479939639424925512500853637496484835467269794556176230493210107556150276751958854838726978000122104614661493648470463986078831693380519794375783819857697349878524429976574453886648501046476538469704943631409267289122191843822235188561659339746379830855924413996339102615821853841669780359497173760070199819553409779434952805122697651974143865692548592537223527866107831685165434393043580462259698763745768235298126554519668969599551111725849196548186143874926832641708817684761993018674988510758865401514965264949119819106703609739279818376730255572217516467981092820129784161369219882758675932303663680605334286457878380675344177138731624572504229039232982599353813727841945168340450555211201209921821442884597148337440019790375530996728611955651572695303963777235989407789024753476279627832173733330302086690069253087724917616454086780107707395123202846580757636628611340792176625086580623664594805301686285367817907546952244131013458373282380805639067437339525259269145034127615491056328655416350003339585023287908401284382501260696949444018955867893931429881099518058899278777300166024126904381910003795138476173450283363018657081652297395065394306112847745169004655263916406498048237917456327858710751357884745456054052390718736497191846229114768661006987088359840330981082503453717554540370807962475060114006454822958030194692181369449056933829859183016406662520018448500373187462325057220307122289158343708374693554827194466536857021909498273357278349341675421321619477663257393221008854978924792196997348734808081817467991978345158320888451827804333863547589296480769283206292284446931022100303285383384886898419148389783417111522723767585946929079076947931008189252763908372987717113030877984921236086062832325096810021563345649386739785011863804557431246901603617609036375082347849401707215018262511406676060024398784611287836937771323659424358558682461596646722148036014077927613981225669495280122058666016211186575939066315212985321656488213275029552800399617708015122033723851199041863999936193661054309851955442707933238515817441730965990146952299397605362754162395787156190840448222217982414710470511502498941473748007233833931596542402050697816697498092831837594817997611111665325836248739154430301653746558451735653554005109106015733924083076450164065136344582419792208837126381713253721280342987012491341449431529775779817392493225509059827583966091709583190540124171078788322945983166444758916889904052709949738712192916763357953643402717411392919971542167899842525530127759862199164777421371604407753490393006453992096961627997936165590046462294435537529516302811990848295294158980135363826271118657226050148263842317037671922746524022789533632557402307940277668575899346629041776147033273418017745644423108444204770657583585347384134970919122354628044874778607240503915506752886920416305602055655641167317656987179673441352708115323604648158540794179988978105670216243467203198531047928827321368753224949938812069580358890988586512896169842266747069460335562733234757863397118326529253622719838449258714768255475063584397577361582353478524851041175739375465968564004888039157784178763586329595906808734278700567324824652033932515030189831978616943179229886188195155732728282231009629239951290137866074829053391911359213295641967446185140599571265849876928382279881225365330459179515566397538022356663282869310647422838226529116845183701505149498919242234342945480209721862031773722888269043949490066891668162994405095372543085753132225048017046280995482949473757775347417155520208352191848893768914289280842023476539882455709633331228170393588246813105226419424927171164293329191524305262604083247763422297123714377881907258397973849840875706968163645416074021803825701052932541300698497959287406383618974830297469495469444626209793828925165028500617312403771246033621061372850431343070098789944946174570846129994066208581936801342102222974275908479507909202917443101528395121765720100754469827368017557755699601209647118969063454019144717041647268402063557608211075443552013779749037745674209458391867588503840114012824388048569939232956723844185535871966324608230299479758560487475923067622835760195939758481686066936844918330446453011420304276232681315191088854161898748364022780966757452285446581172004430354130754479525347925119199689380724961819842216881562006776473229012140577048627246553645224485926160340793038864182663281840734460352214178062233787213725843704175016288669075001019476218755735931048360412954322590746649808179266867096084729264338830864287215581856009940287776785626034779768715897717127232729725479181455145272432118697430876995822212238001375311546930168542291794861251877563212356473223372024456324555276929476040134304239462868078132669405513688074011895371508641768282886028289957295349688620329495449699240606399255326582731910568142796914017135544306782283527556295153382918358802411866763738714349355696557885524718718071610828757460732379505289779150296177152580189648093166526870490488494941170709171621145292583293313425213177401572308084490019244337589158804405543521330004642395485884805953345334577571439946105315194146099804383560962607375134324209061595831382619959335340128309240657772448434804679344432758883144469282510740847602060651724429323221284436516814498132456348016430999523643832882825918124659256201453385697322348969661484741175654920950258036518466336243789364209744493619488970842311518547744170155752109696591740706580584438382089827983967220005269982186366564005108061132983598483069990032056475640415201828724765168558340798040530980774208651146548678774737830568588898940496003680933430270798655705665530254633750473472754918728274527173423098873785027568305317040572477310449459131718035771579235840257430586324246738008415055211384763468242676824314569551317218208366309134084629881096459643182418507883419335099695125252303881269934998043302487477389718105244857862604411875240299316161883392952917790159206011552424068320818149370401048998406279489576243537460323615926914519104461119367870801321270338411952469902070143137341192255147465952341948361713650184446382693723502669639156850264057130136094011215104727602750343484586167559226219784103515246929889712366617026317064565483110024180211159806829062189505414122734708044524464667819095697885203540346133474966440210334871336723200369920207004186503921815135295208825651332325792689148326844784091026644226760881751351826113901946482738348208532754823579073578462213350755476317841429022908886050011481145829390199362364238953225202902149064024368715805093003751422576744307432899697606089939465264464000829572601081318534013395840720662735456576252183274581609096853615443286644853395912380723137517409125049938776536808033562214398046238300472493831197914404706814747255301574113774222164783037038642514035091244481885032130494867969725519773606025320213254771048714185848677393988518149734448184688674146352288189618767459671214533479124407703979880532985795315250644751951819860556613422748590742441249488188870365842599959328957910198497590648715444469811446860696311186695156705680895831221238139202789963821264136180852445464718167768924840739081608840198385624567541694645864178424458999930265622430114495689492209937713741270925495291991024467475785532431436448197309564453684110117963100383866648242594659933334740960522045193096110255180102740410425477906784211798165289775995701973506192673573736281231681678225606300910357392548136837635666176112214927610077133968584543420320554342666716413486879565498006350973557425990675271234522590243890770568376581336409806498766921324008736591052510618608105947532627819234769327002725889059772066527070995574403972678792788171808272589501186484677235093413450566499209131999622366847929672298990569691400374989490544754556646351124946664398962817361891309436581226227478310602536117799769793168599256718704493408348576204490742904443572030312552477552936823773733457973572641475890834989841920530609545657042828835738430703091894227352961372090853147549009589836337466863854383312965269197263844493237151444242278449182527496964496785243462956196182491895053706038503787283474690422423597081954857615564857005199727085147786349126042305033308213255444622995899948434428006847886085514756120406014070144488439092214513443623179000234913401427927007073172671038299192817975633643605513689915197381609232413689640859892173683033385988280342705193567337850235677811670847197377886480197470572330611866743500270771572477156015927927545218760170766667651129923816610920950517930080925865453208505229121895714424207944460160008498735265083029160979147365746037225369023298651272992231780177176137202918972497275081665719584363049375357647247835167196224938836438426070542592035018505027407391007882975967698609543818502308162342717441280456247667078093555067567540678541497824986837351541343406113306432694656138835238009187774601971516609728569658047856266297334045749829923770563903690506801201907602395803606478067696038698103468961879161325359106614197092266099359923720241996367217015492717510817513246913186153034154870583158271623997849377292065731814639386720129485987772757034669104004749017624749787837399607762139516544420827061763330732710513839902629730918337982432826572355826010051664525143219325585701219908567765751636316446702160795390367281808196375624865425516137032864273744725659574537815552023530109280020374357209598365005314465368553437862402207293030164331982384856784319195026409267292379203215355305381269301100958268636132051006355117756975585466353692258854639101573561739673393643562384140205799670660355785706792572380580724061639850367443506937222318613841332721208621121907928360181898104188571508576192406084398292819965499073981935416253010457530961401138284869353959601021696781223384562793201568459608859796774492769351511307988593573889701366359404315161815114747904474052682430701448678236571797574597719024255458206729082774434985319665300729006090894478073071208773456224723648548007127789252339598857613081035738332922862159042277142247848681672293537977666589796778017654502428584000808607068545681111615739233661857494404207888881556832478251279401292781627630149081693994670171802343592216612871568564372147325766731969642614168343982138365224153850080828297342147131567205004796044277482581750634389579540444481613613798833787585604961085845000530558333728826647483333620383339139314158590645931338696949525956074797615977797465595062523570541314182494748328915394485613204036451783868523959832222816888755188673720527480882861928538172003783710894196876713992369326837864808980325964030402325737114584310934725597232980992375999722835284206253227308870700590063954302340012190383290332036402227233951725090275499352697613663079636778662534280667226679516322168102800193555386728802592981517890850893917189724232526862670405962789096105132066232738715518548869613799484900809336136767189881503583733115308165198105221543588835082565780510255719938056338668823619841002486811510592190553145123253009917443705900092550697410629666289494917975130117925353299975628658404462343200841065912111642850843255080817816198656738888013749626817816358945238348810697445349586194670986837209222793416207244903231814567948862491499962927463350572530370508336142450844957484340212815679140602557177899506353706917529871585904994266562260042259007648844020082268709138631627053064469173315128146827213014475651111639793560867731629256488170351279338504686418136140682469986639582868030023967956720818517905480637342994399002139273364933714566102308736118485187385388904197250368589070470370285766489587421213004669384280017026275817516935302311232051959837047660804253165026066245136355335500333255240799679209287270021477289144595600149399184474280564516892994083653636341142361053797655451193022581901246031622616413113304946697515704377375063634898273413801340433077367732936962127192766665995258064603553387902623548460281672819325664599819444474731588737100351727971598848784237856227304183147386316905460308678713634949080494859524950157718433939760644291035869542885456523996738011342485844661868479592286938471594091515225531039536725318932134009913670146775058119407654208304110946879774960041372365516539407580869553706651726705909860590036572285116485306621009318828560989355249598213297550533964162432689282302101132228026503465618438849334998116988065606636687789744750260953705711909897863658470609120206337755183610791231377721336031964107191141065126005375242304116481177784369459817884831345706068873786813988416852993800649325716357744325913210219301880707429953426257444943653918243523835027926718501684617364421140816301648591657928235919335564101765974978601744384034359262104091091867711938027206943303310209688785894063626242137934752820735090052265876982882663637140143853035496480318084236609024304729250184702441970401553391500738516215125163829690297353114370775875646354666905530672159908005248054122540694592165643655808533267265154825564073045540181756703180998220701805380425926576454723767630012617728322212214545375994538568032390047650016172797469793815382284850119990497835196339826137816720339529314756471273638187096078785596963655185022766096971898603684360256437461947196231413399686129404037072131927041125940671154800628534452617977102423012967133800980037545385396000948751290751426518882812260390143016678882111881520408557601249880500407628463957375329413465578280330047118963433676312101955612456149383389288398178039461201172556403190889123855022363253365780173256783879684865992760355693760739061518985763892933167441363435653595938667763055098513555306456254329912120929364553073428869271827387070108492444092765174114756598210118859742747537904451720828353968415591642961081325192409326085584190671244807835794138305900557673853443623560732119134645603066142965063952384142738074900272665311334598720406789528761365795370606649457599287562625831631751806627071064326472783537468716529549815693131400064072696345277040457064281743796317625680113114907727165973378861629420706539853447368150784160340490974223806902137101850233476178373341853982108249434412802973895156131254710687202622478372196586864932786272758340909786178972433536803009355715196229041701913989995120534787544142272115739082632366283206806464679604148674837839350300053242647897884576996422909548773791648203414461287883291610575336612556936441061067919842212449589610261217717715284277351223311341981646768029336097166061138019012425620807218629946002012728458011493590634795186138517609532060108892365847410905593124083624243409791185174681313151797866410908239188681886021808399255816727408603897384483593850196756566840284484628872425401373406990525190867328463391965858385442411201419812144805194173014241006145115477685040255383509063384848190995356604560482468534322705139706119071718189760785927521550234683533080841614591202725891095993705959368474541417746469523676248050075018863069285909420674177220949396355969677639610654362414252009001023087601150457393404349215403429099423062318391488944501662886620541893338692504321640273729497847947433982524786845066091703151523128788111207791104780839726051601785600068509333037427824462005140076153364619588786064624563751212864631095363427132329732370165335044114431645233299489680546169485307076340089107802696190349551083967336623423900413913029098020924307507000150505841650163001350036250899025505276175457176107737157751380048469445880059265082167200224406367033076744713109754352027627255802277792320714018633141910880887019894139924141311640970952398427921484631333889810628963669609580361240401497159830532507840547655403031957912451383701306666184520668157655709790733582648424670299183411850241843636495835399857948532138060342579730362579744655876150411294611159460489352289637513965965067220500574422199612704708274733154586207569587949000001558831563800560220560008731260780962326742184592403388263955414654915753319817481517452703714931018618305677925600991813962337711546889488408261828735828897587943486876071387657845242099526711703192595691484405561417002496356306445671052798740888424902427101085043462609538534592455745088269173605330567275658574465822731185223245442584908755791068523290417303814417687352810573190477371251003650869090618635284975897587811289303015595106369623302651170016868098743260921048490912310826479156748555211196371349258046279286660349776198791266821895044947003262316245131062970983188381354088091660040621058247435515880853414882879521903414370251447202004372837482744803465841472518056431463255352169085917800414408666817573006841123581276029528995961068021925655282551838302694640629545502450842684648239658549375981214986168156736581712206250916364465419052327611773433808017980805320155053324188840331017305683182532796647151044613040330105552366448428608328160425342624453041230638355238820039661325767013140177431606646316267370104521516362440249447504241433205072704939996020785980387449505400090077076998633972311646672388193245373132443981283589432270691810757539545924411187883952583051832611960113496375764584368560612063905190979156079696298061587606289618202613100855689087783455024026872846604713930659734842653253076667200253565287002367292191878036368288630729861638695963533307453697126934101025654035870261136129143920881602579385172874238659339305841747701766886135045140727762919526413073082216219829498623706717381915337225629000567967163268229587463175830634617735296511154078960266808510972083312379974006567560709154689967376840597013763122631242004994308801120743101233209346749578793678321802729505706174750655104014577576083412903132743454247689227185375018574063619717504041630363346695909082192154016293618708111915917554859266358335551140127585620566059057551842386022211585556324301995626279756789231796725475575803021518397821377426720692775689912629148429909606438960914402028611737075418504707571475733837194651955717716326812435559427006527201092608563104199701929435452012229538091336187387510849989562287096847423324576615331083878275165690043580004185944417597590270181122826531193017956883639488067091848626400100119332080675131310059626072617026578619405447455663106956329740159948775090694626668991689570019518965461384658511778738192358701950346145222385052349723690792630309505786898727126580309932007480472070895859356966836966494313985779931364109015167638146722515041980242338248501881244824498534082505952088432588760517367516734049204723602363490723019916531035653941824533939356967012081767175972996386038864324034470887260336931636118020412648542447192564315738593434684060076426866894482319931596347750050883225068936631082992635135453151581254238461440930694392152115278861180411259913159943891969637368371120884267304853415059619368013012086756909598960185262244859914944253647374149591967192370472937994136854392501165266168537574589679628056680710616627722820567616988764073172970429660843610323862810973109594859998872531726265406568037065640383374069098594411905894730245887705263088821359912856062841364141232718352336123247639550077311368128321525836568710223322738287095090693300135107635460862981159986828490574840929087585087848661755035771494533764815912540306085788173477831414043770787092934505190304524498287632127380170066415889347219755153896407268030687289347971577717793503246592656653156466825321638670695471424651671401635672130131258184786509000153545974833359773773730081231413879166011497145983185513317462075435589632841565375745841138582789653049842968033853855413500680341546009361093739510343624187193012796259045353145247955385743203254180210488726115955548298715186546288574296173433377391991480728348823259562437234987645896473808542935698263781142459916797827243057253328638641365154044599745837066081981098480679880648523291546041750737169109344578715185779740908221308551218324466004795748035397038689414725714563706265128637375868672077574342891758298982858196098759977663930441600124101013485567997140959466201685420472960830244656728610665788205786841419850288742615428729321222574164812144357717010019454932769591139471372485182647132452237610198613473847540177618565214575648314207569299626345888595623449440548978804666266063977027425673792177251111897973200460388887463517684127484073907841832851689676861260482994236359996947513486167577850354355264053252975667499120309086077971984527457212785119623513975162304269245220347176208531127666608662179979952366757705204256897051119510168976933431918057916888458105696758535020245695016005636509543660464272137070758563271316793776640095837421764811863756852168472071946240999544163246242082307270387029498970362835399785359746791737859969816981293328581904054197740637115978385078855982007235824991485475591787865060421897578900858284834551954455816657793875823834843132449329075589904228036186443446614681563575035708686483464849418965026585326278847092480877573524350860871922650922727071572875317352559658115586070625862328169206311326107077767038056092183953329804647286154650973535778291797955216614929221641501089970961204051466529290426460584928088131926617622043145328085263912207976076627819716174162635757936410655145210395519406495893482657733602205472272936192481118588063086966430255441305283381062285566949719765742829674229195911612558669902083606050327913150569091782822921058466122766109451603482941547373050502183487845416880636922718880276277884400290945393777704438734173460471380537203185011120999754414471178595791783048741915517399627672714533112303268452760198629911765084831962297829597143038497608260454625186237629797873615061628640375599345729178935392651952723359763785384604158782968230739263093218527568940396370058565936648388335338650825055455127669153400808271571679495391996722242603354394363474386287803638053078481827454935357583379948094630763729878997356230547158231070094629636205791720601344602767747831863360299775186363491990620771934035596885802281517150452207075815571999120622946848256887519066732435756845862072411609902423301182412594627851679570548469266415778904384484332559458266941936140973331882369428306789273260483055924774432133913957256810988847895673400807432791665715995612410520410769600457569762590043996757657013445798741877980889136976324357613100163082491287916248325210933231181914274669724857338645076735668681053372910358798908302842145208358244961193112326852826046337024271178785964160301901130768667249948512193968020363114382174785514520040210846565086961463710705083107476742947853495598020509304208832442432460279097158856987636775114700567384803678614511692670736163561342490167683206474920214464478804331510835251617333413373763475053378263746668643715689111587924348837552007951472384647784623129136506372325899778709056626501887682768478293150661178466768981277585173090551554823943337520604048724098254288289244045140607517183823007445786883329715979232208126156557845911473831066819541323625734051298685181421131106400904320270530257173801729559212389514422950969374005854060920234726655218259965267539050196771109305946873625953367466825755335926887960062755773216136607411267683147951089967498611471556179752314529471188843032542722695180003685257969053133586345731689156227635864063271818400488246787343642319153224291820533227948737342613063802037286894051829807397084118089965568066355115838880123907243037856590719948690785087685726250446219646778771158253580837962029754318215628197896008323324560251123291276671327352408962173898589628925768190946425208726163963420432446197995836255086491399627732690974296801295748001075198321245656000863030172171297752408577825876078950689856662256477871038999315127813500999550766369906985526138131728510082822748439406675265317213837069722417183054623408394560772818098023087984096054265857962656216963573201011592258392491049327593269788510774964350264221035655009937053138268814531228159285126693644763817234910496482008515399400498637400182359099574274635199182026133104480963186120489507807077643074236993927143914133142165250038678940178295350738241167507108716977819151380497674387284812816056206225306766002177968645104271414756708100989507462375395191395246994800969998513066056609207271500394057763534448130891166741636304817691160698989885372148759306165558431102050539627093488419337880780871730273731941545558009948159389377998618740841030651802185378560839562115084933602807773332102210592276025124715399794928300766423299543818224673014401361203328127293704317814379166033411313618157116386648481810371999956318011293682074476277892185852569777289463469195624428539786196255378987588198781908016483384789834435442547761812537477427338921662213290362342860639578440286486040543493942313701821214468121232947787178299914132955910827098021392166349756685147170649044546450421774176008965571344020298409963690066947323958519848425592057607410947516111033008080464848272540685091794722949977695908964701325068552305337813482278056453627894136980882625430816954402607627774233867840627722660760755572018395518629675356432878626878398856664289771476667558529461866482102443455096639778439014114526101945317447614546060591568055592835059729121140085857134971487448623721001830510344695686622595511821439946602391065037037371272317348484298795095424892938957049802994646545328060318216476668321361096948495429921732518202052274346372030391635777791514112124305534325270640180223795104681785924124962233991795408097011222302382225505480269462163910455581039239684859279691786904415443412283048657140668010174709072674956856880472194216206882457315712221792512569774618226691959668309238094316580594599427335576858541690884369995039452662124427810870647411759129828782234001879775053057605516105307671980300899000880269713596925499767247312425349704614879463725025596526832496493854818879377195001803527935505459123507241717854984283260536434561566165797526036805914169701301075564826889069327601364538305651587626459786212596655160257519087875065031222721212002865513046459161331901188875779195106744817375782589546340496301153898211971576147483009539537466967418419030340231991166825922092573713312702557769112405489729787520536085095749150893533274223510057919665962698136999235264021913715687910156315928139295356179082325401890337614768846015746358719451600849837009758648813105035959540507351226709399634061914664219159675742210891513315746064594817406926343081359704223112374135291877917049295311079107332636763899169336580862775728871470916733526545583178255177482546541036506967601877796529078512687178883648505713053809659182355120443755341761118704863636417524439788935414513701281860855577404299209944066301315861579659475953116653412379237334703875468704360487635033163651956504763199722435527922244224239161211678909166710396444768004982518682146621570891771042134402789953206520948593173246923108099696315269147482952829813380944135095595977896771823184676032496335618048983925589990771837348953817426257699747471334469133413537848635477026837009848581525765473348940771434107104618228112617487084850806711781189547164865403186936592977897170646946966293874579337055759521062317026754382094862216359832236003030181014093628115994926353256389722922269992374608983104840511458990996799105249556616023951542870169206986143578228377447783331541719286007392079773300982921228898701745521825293280543035526454438330645114259923795498641173789722239680627205159243627797849189080337216815300649400838752216893891560959078255384998846309287265295564199002098475897666550074840573001269384090626439321211488888865552744527217289498015672878502881550518074757151196401214121553978639263033908097903928127034690671155653455096319064803927949420772208820582695162210154608761384587707014642316282040602849272417622773238277395999286245915694994568656679155059451171022294161004668515008017987334965831484050614183503991120782603232580763260160761094353820706039217600130924495428069689427502276594451145884273820823087476543612295085737560589555099495527258494168274554508942621655060219231574865188220507144346604258874673195283948675092294636224347615280927744351659695625857396870896552103862856602991767655825391240673268969543575442911860912184471082432685004198447964976303990753889670243596154707257314691361018660469469323909528317732148777817168909103630958351955920615689090703518702168329899287340151595742272469712763765262572668651932372765288113706406660160873822053125417139781093470962455321031675625933591671280628909356708126154965285087584257387537866900575858536330514179605133278829258031368874921444273908474370960107568193934692537823482289002291729735619146434352863204923519669944911057307772457207511344392459073607985738852971659999987683616335031127888225178345774608420018565599944380751961990809855753734641703461751880286077654545149434145583995723458185216376793580217137536746254758905679345649200418579272746156029828566093227275147097114300098433428614441936150636445021546911323834286811655334091980224225136846537242171118147256769928648465511873746355621350892417934825587101005946782768186443309799818400084058042778802081821124572214497581653290431699465779870205012866416083283838228937246273812636751573154525960841434533851286374193575245920216129782784202623253980941082315912929023601107848219760093919277243308294174704117039907129759211763057768051940287525988446984941113407151976205495473484617676337448628717071189877531829858535727335721910923461313076866369266403214692987727420029070332688748581050130637552834443341077984628888107868771463180015196395201517720239153971901227439791454312211108543946312148709110130714046934755970049988355935762114068380096057293592323635928293997685650500603503074540255440740933272520280001067633026589760635454035755621372362880001410755565999744776759080563824692899170555060347677921522133627932440826663816997827079368347809015002744441176487207324184816163819670928438675367681407695070400616983511638805932313607817590317778950046741638320150123029532833390511319019718718711758090035591479304839181837235083637500341497360689923465032985563201796380657875717989931452465217625836996351383839816164260326008889313655804631495369625310205384614130174143823291548551051835390804996926596077813320812361847862491126740653134944913539077740428018990505208540681108896432353166611478259319643378684124388063798941934231596941956677123905907367914805391513825654140722649699573123136626185157154107071965277324272237460903071923092629623166893695698498342578136835262628607581564974250778330960021994486167685647866314193641976436949007707029364554263515198350854151282064095398784282926294907551731875674924744789780226985889245829879903797278685150868619194476135752308856058517960433471068066463289488144554216016779224019007172400434554655493789113916253455826103775290230846337298218622467015326052985199534024188589506692898226170445637786458448253179664251769629626411460079310767981681218872146026007028547911116148982017607624440500929169178305196116258551150872795992794555983476837376386094182751713298667483251951661127249319460606054274024100615415485677829636835752161246834751134223072769219502085494401104307270456005634274124665278060150967029363034845076871117527022106674680286608609068287394464073656410696839468829334887784703644146143056232517067224049265426435732137193801343231998448335595288312666478633766348053751010760264357825334665949057169936702214569291918565857956369377225301832891624598765087299604276284299641112889247811925229538440248293550412145493000168649158802017606947284464816761173013118127268682096493656446982662565374737023377833797501320534113642732245737188723620894394741805607157400271601325684643905206195601461160675321048834644106806133725040700852916463389912927862399279420986418217243446482267367160368511216099198020401540480521660284926326429416129100240848841961048402792021556549689175489869791163517258118558032904705771701295577184911082963931817261526916400780537539333569340856735953159838631184097818469111891374302463044965216556544872329129275194302951968728218668601957504509637153575864605253650303374035120287446593029143028267223498666007222705334001280580509090307683195820633392396188512861538444559766915695811698054064577762870284611818453661612814823030441964526430903928941823610524817543362780387579078769731159703902554645201200551609898265778667861358645989155768509794660842005543223526084933208717584201432322639857008091128497780820825529264188818537174660898386800686743689356590867245233495648450388726037920752037011365839014341007882497205915969480694265640491706594042740338375616813312052613632183552806044757940044198016625156110443931303610281364229497924722223129262587750821340947958736111399133930020696160896488381858341438569727045852803868184142272445663387290028275608842883849153230419032318481664220274113987211398854843534623217486167942695427261373170899746881497024058659293199285921384301275600584558375988497002407221394486931949058787125669629045717422919835846917053373151417077050248491965823482846022084422105076717415616287746674540526376415965427363066727162508441944303302875564098744172848975024194835549587036414820498407145271007103114663419775974623583409665394411543706574307650882953451626727147842149308190241676348904791964763881478027674804630867719517618660888036478500090474215952381133138102790173750102995367707431886845936764706214712987865748588185183268511318919350664983119727320019077858221639125100800013653574231531591724887159319135276269502244253205687797382877502088008413659113800042673572621355579540263275420257971841867306386883366260241683591947894042544253045721256357527064694535851986164922328994849607904725108814559973977746699362177319177215297868262354551251794789672391509928255756170626687501591092534689078283784750937310974375419732044265000790681833623530515522971439727389736168865048385154648826734894620428480273549793572757563001924538709155945245896097852638069285217602300228111852906816020594855883313201464754455956906750766529824235683377263010621158838597564900795176307920679864022024833578950950595961051755423331617913320950213930412530990911079211750949115328706897334216085655248981454156359348001478990587303447158295530500701190746289643265366542191880338596905649499719960365679011805078749996604747407016517117960084712792793909599884917877242760091942348567362641361178055614788105449581233060730751194242371060416325078111386600446800310831317013762770446810459100712434952045052003154457567926232393002924276672697288077177580257542377024929931711945659791119828117186298136702996280945148647831705094867320038213713859674689416675419355158630984913129692313722770332125027827644230658118610122314659278483451458951141696659773311046644979460780658183413028759689551250546488731236210035619960795536101708359516642694981060326327837717830190916139178385082858578435066705876348065745579311966864304421166426911146299199175138959768081928633225744055127194549347334977506481720314712960416576978994411379590140126748224990542790424782053972218023392312988010570203376864176585186729832307450661839825663750190866298756303803316621509351415546274285973569906602396119267296070651755414790237486905978342573526697202629138481035535858693484864090384996320676671198388214263398806392659537333586432615677775516319545984320352878782864098239995325256506713693199282338740488678286904149999965496900482000140101908561019927433023292601122696975677410449197627960191016988429115213061598127699889539728967077660881732611837363562623959616255224550248354740228984655977165548003200092683146291648309608988649554341495082907486127718479995554318427740371218978723547486166508121070251356609326418038812335801300582063381667620473841322593982301208713305486826733370173791028802616805776872733609216251547014789068802133746970080111080020211394296659988771463333399152749098962289248237102976372430773081158325048499171426449499150269708017490649195005629316220515639497337288853232272834101443492391848458966627562327387327023113496601877372781066684901132752378959881878138702589230398139530562734773274844018835333194798483593350725677657197196078297958894419057920659412074544023770884903460971471711926331704452285564867914310727111039760576856068186841165090387529304271290104443356081949972243346460413292169358308020241843545995125183215319002430078032799202594920185716007928813628180479138880897005489732472618667828816984245635790226446951957110481514288940442783414042032981706459872429290146603728639431641652347507648435949611952674365634528854305824275841279892698856277804223914950261530006892913341812854018348270410452393526907247760788069430546428905737656530752080829545158271538122231913841093340007931729453906976554887849358073861226891296179100186857441261431976591856370431433127782602535222377949978174301694951618793664181631959012923586525596513378713217884212104426009143418513057604126064435122229322066749056612404138091476401168367307905210015095469152244944773256250607076223773233577922527316582182372846652916095546776056834176474036965996594703204118382517496940585658830518366099514342431130370023402853303063636601056592262657892321265499062306836315649101039835891772072278453752534846959874991163450639620170980754031238359963396821566186281659938064458036301954608749149035671109208442077982847475773837170122387713805750208832762183273519072408277457481963859122190772172096761307148027682512588819088862268036734496775440516561693937005321671616765836251845028420350009510022374429841296878841636529508061356379333023871513561843526391711974003258248946877008493901665627395858143435229500893754617273984860175940588261272645913667611555499548797725778264041897140893624981204328030154211186555481990012166952866776637071917445689135319369735517724819920140694575248353195990747607759904188335348757222091537254208193675995442600783699693233601390839489925316242260747111834644668966679510228044276394151766791497593222908080789539296566330698380171761696858494198438026294229217467355465799255580752993096271049123526204779415054947723910867992468485207097608013832267768723477976114626179790746694963870438121907448925266472581919938855279461584483057572489496561793198888455643519742161574628411770805734177176947222903954464194685161785042859543596594855974968186738933245158436656711899864986984254764905243185092865292261723366620890863975452482901058501909676808014300771799417874721813634545387466607096152064522019820939405379457454425742704419475851960982164178805029134558235240700852510542458753903884009776716425971224040701477364352594800553960725307222278109310328329106739917970347802646509514015336406061318200181331328788835461914955772372739342653704445434098405825603426632487795727018660973950160601713720658722165098328529962359848985074595297667872714225218022300643597305789243517963650906715428518368550338018238304189826577439141505554012986486490535095844890659883069951882736971174900770858319675395987509442759230883629120938037895709570562706203680450676241659145973135870976889087885596955436138942914712986400055455647592248435812313230419717174330008189404250520956858175775810500809115585182491247982791448855811420208944234849066637851059743324349029025226509133647869592258867492744731979856057227279100739182390804016699655673734603735922258920022012888527670196383019683231898048596251415741829957933520818389743577171490926196411671633471407638907133233281229796810377752722802513948968719581627081787542781621132164155520597736697176030327901315810821630140336375840385061027489911766071270509130829573182909476025952945427923150050180447039779134462700615977813003403543202010959977740819225267832251452428146124052508547159513877941755636621422380103886395198830051270120823357559298592791320223735216362118514261241888365526340469077969354278335181145286721132351698976068585444837606594325246068812101282396874184054491111677326440544406657053211049493913295779374013659891394541160062046075441324748831293084677584144735308757526294710494928481463069356642941637082619614347358032459487188208583024913713229349879349930577449372873478170882565117082211766336252672010348935864907366971759152588390072662733742693313230803915434239301038768895322060515680471971500154454972426540160229498135680910301823827150036646072129534960344100857347393136643610266160734547010422021504556647889143945716004846698915030094786750837484419507356611894599104402213984906124269515366037418970584326706638294736634533898933648015557587842358686227446536210605367065013198640998738349338132204793189685539273709540448238198924907075882095609842990838875774430588570924438390956452936298540156512090679177215136443613850937209141211774886322026725625852336303489078746545239655842244620098984687304910829248944211253222298623855755380250336191882576042679069028272085161531821162493854067373638995619686103158948905510309465405886220199093949735375390091676255069489886391373486409906898230481153596885700210361202717848606659484411194663524738834671034227174150622275760983737160006789871375719604696656581235442971058241483971010410148754344700758525304141578183332981639691923588727139539888237335603785833241372067172034273380892075506194568557979068057860771858653234986941164479726228999564474722186608319168034080942120561627070864962011622767722838400611510095211016006237865278973317613261437220361007320434938545824196567826542995939142048311825451488725765160376262137674397181941724915873516591597633807169887392069575829501271523697592623493074417587616579326355150172233560530242303533345939846048601770483823427930837302137888100466639961919986003203043144782618605203723293381979265104124431523785245150699827373306048799254734908377744366720581867271351178577607397672184146184050413111225644138660187594406731369122528759049003079087242239652339215654157724459508910171439691473696715426541474123359234533147868965152416545553091194768238928579643597239639738980867284827876099275242065994909499275915357549931584659424158724836000400958159269639015440297109972141945231219072936077999938163699555938630101816043844270262129728381950294461283547622424236150306837393862754202141384533983495866285634707139468592186100704732880493409820401029924384626100948508308472695914959262085062492046167852700886395165982952974101885456851908583611212049505462735548872637775094107598952678442656944528717951701484221397432097526493187369746293607958970557025213682067373427424574628346525865427715952969037300444950995079185296629540522699159359536625497190620686140139270721492401936366177273191902108043445729668685399731244110303616728752259092183962497593544984456555702001684002337432140461238323357427249757089691662628035990485630647364235728581943200772628422610019699541823147609629125037138957244687734857807724318238150539795915536043262647845409059499245242247043932177473715337221270034353447919107525172220589420364921401647370319436001330090116309295138286857566766465329842750264281788337678337525254577317909111785299792967474238619599456294340457257569480638345078649523550374428891814126155665911130160275671817249338752481865884668031233726130993441393560067018698201386702624341239864741752565718546527226761145715405134574285273619363286277224170650198484969467408236970640627851651656244920562504887653181637888056044674943989057115204932517226715125602461028445988450430550539985443952268817524014429973935227358630185522182958022434167069547458298002718823540703438706822855704710369065147831994793573211866476458525517934832218154980566444349720717288856584705689993302908981286462173648509354285841599417887900984184462922867428516118384907192380707710002137651215355009322129091075739718173645574890267809694629500717431737497993425935642143622749263173349860039478701777617187246230835707675509330322431236322830078023100634427207210431819119707655219303189606776796316021148852301373454345126319295153688057402296145478047595868732222378920044697414280282846668987994181001554593662732255482471628037282152853711615010466665248546423667497283422305261338564004575397097768561755665972361377707685384337685028038716790213064267723124573243108035821104868690368704745420500547820265977656098221612757894145631361703721210953637728932802993048090507674643188132609057590617604807235125310433765503394228163535478827321826032498665510465310869983759658657515354189137859224531573790512217756808171880013442631655603060485247176396259955103097407160837427895293207577691038585777653131430543521149459695653590619508273901467507846994630077993624212586784483316262006545913724163275102244913693622864661536705784315261743935849761021180425584919947779380148690167215253219412916596176862846238019665335368797866475715235922018901240095555263240781401486915022543807309178041551730658011916200203279882570309912969412860105452157058982906925497254962370224187680310027761286913334693393801776680407817233899393406209368876797933551059214316097201176770287824968825321204874821761173516495020175726257067244099869182108238203641591429674314171376590622394358413533983079018172794441915010205789187683426696565907306399579461598409574531728750305587174503222979847101781056657365063376405887244838077768060253023915254740038790761304107067659092146659174674311423899616455018718127811722218631767282864062777271112511028188508435495983489339437660950162837955763136255846266667422615424456800445442243023126401708681115019323380348006922842481684165525289817669543593714851467837863867638399221119168475479924675656832673192005169077947138691978136569620988894190579684149054713490257940145761383512443882783687524872505060859011841262923985031366893509943754153701172969438717140056994454097380601648322623627718473110832773788808341974175652743814088404995098711927908373068486109717883321541426841602305870350521964364588040031897686442502675360786053401882734743492504909062102358659512128298386830883151556367855552146614913681193708650428819325467347059813950557826650871362558677671610671675933079831658982961604130281366118686243027979156880346994974471771503557224185057589792272181133298695773117930376434744411684844385913547409902307132236439862682420624387682071986708969587287534583542904745468721322150275050251557238890479945544683213310628752836460562488394976148394806564729998316132865748496559121106102043453271367449081843717655894810389164812443938956655454485115274039830445124909563208499133276029923658271979803704196198330079046106131517145826669206951568213906569574400439765824825001897438487140968762883557904209595028256511908864934312608656644030435777741558153210114681757267164073129329090124011630501329076560749870136633808338499806477814255206053104271893642231025612722926073965240334708772646087889944719383326828425477040342294810046387385876449706463461387912631884372892706543751627016459978300011397607781380274826050248507330922980949210826182635966878070183455978914151986186168116762038541279047393946393124867149306916766666447861025710411741473972537555452787685254783046103668026999600927839822648195729035909487537271017426225834147801804413942216105828292409422849022867012007417717196261857895116102211070381947024723173884510823125687393060368953555715673412199938218236859141063799958720507734087044874040145227699571307473196615346709208327240294340950984392792250132324007482503820469029354922302893786386325126565009985163718295752371554762257384070689495130284898429655788739812825391734278703083163602410999125980664899560268597339319394006104501184919955783404930935101342915792079309423051292103198346563839225439132741207742442166053256685402713253768502050025555655592826639738173298950575035056943886154870702925331436632477622353416727853751777734657334586578635622943741125799107623796142196283795332542546650939153928495514906675918897604653400026148951820343922155642890193641773077563631684906556092161104435653631985615883327489867075841024334093078586186211960529039681326236570249030294169223912190810933205284091669340004553155234730205480941145411692273468889725901881715209155671961726519100511875191551453467352650309377850243642556628876438536699607524343934476534554459070352299324012055608407902845948644472705324640541327153218052355209598291968488403102775342088809645331503469307578117529679230936381523652492218503006050903310752798138126456849803684440550363128170482350088327059760568217465358077409143118927001728925977562684358399485306065328714965670963777486991899384264619159914821140682280741615012281252153860460227194383147059962243504452219418949497461064027978252661361928417492012573516716248950562233901373466884710952722887790376076047836713416348529570744166704876367791597517809299224525303460189130050458026087914780862300403675699216907302556902361507355016773228863107903815741894107314260663979179769328381766346076837022546588046287245965242316082355790109424199752518110396879173019888732440959864949809397494585747958743249259558186887813813405522145504580858028873754452999285584399639133873410393844000959280558849535334326192545389014569412489522137855547947619893561800937270388470982768344378865476668950203797832380307425114971862419592100048697762632003678793636198897951201664879298987086506850919032854758888219536638954567909333085336727943108563604048180991057253595056022140312987751326714200789853190722478055580100408718905384531138514857830884412096618162404208856650097881885473550169033937521090067931555071331158436523768448369977921183919502508922937178725768663915701212630480652035874136007981784751605442268507804101266682617359734590206891612960730049932039383213316389299763033075849129187961806889053843756159192093598946959447608482045404597779043800483865668593881547669658295895599260073057336798109608196044862807355546651678841257102323121801869948316102091966640959906943454786454297460857517798897858416747167607356939970322748491274406149963970289858602859170744666074415719278868444312658036267636909501678551687774091740645694059397246535812025652682877374835383430831253681627224215407912232382067574989084393534428831043807270223544889283841893403386614950801074225904833364936276104194677038594371573524444373357392773293449134338317874479310891491230579515468222678314573821552879882049807764346990518439674503485725936874379542371496794760126753823543941046654861189870431823083060300157151657127317042101274288819509805454753799213193599169097365959018489800855649093634354575755783803424953587790792852467511127221545024369625947604178672869762176837368182806100864284588484229242297775710020315952216783552388619384600709021618639276236405010503079014886670245800613348030292938744485774530970586998405017365153249798907915815058330838091862798336677335462503203382549095257856869958683579254973232185380203356879997325122268905056227682711886214583548790277006533772611838396844105530961812216788512439375753703512350312013586371448075254108748434966962417422393162616501366549859648227414854644567849500208161899618291905746993668188485744261744279583694120340514721460062592818208248619254070559374061021484953600229738569519962767360422599938469883154658659124715617945918387447241370976375580695517476912860336739926435598646538711087631295792510027131310578975504432955411431497893433786406261453719891335872029456427996142362502702659881793773334832343968037753617448334374350640069550954925996294130682893595393379228984411313766607930774091863117242811783531175907155816102222905802202507093859139763081333677670962489053125527685064829294403515492131207803230552044474173282265682354537938368782391182122623975673993690185623340673833156118029393808137381408463825455986839793313676441140870139275797213117065753125621257715456530842011496998364102114696903621225094123938210654511600680780732962034280085554500010838701825240082997861416204676050504030230144427665286184782020992340063419884242903336339360236376210809198445128530064611425378549279798997366467721451089271664233496912210513679362579409489169216187456564652755238236708686768165865721540312061005350966549925651008538519337522799821258526920012644194200369017922493378870490297687297180575556621607414878862910798190652821449104475625333528038199183227762089145607064069787070344166522792034974675368841150663397457794438136379349325072709379786890062269329436629224018641733930654456301263002840974579741172681036457161823575598561692348571808108228836128242762247948799010441147456702504601137426317894860934408007827299894042706904863263536039248777778632246548193367138384493421488037434923542454237051509476361784880127843486073485978731019744085817218803680238770757598964667842771116431857006145004156229247217973069117179736274858226451388628680323452141191268118697939368263473490410055541963891754227589633610909673170190147556596556253894245821344275398519807607716422983642211821480554962442546744607929677023459435965331313918094835485896714377611472012387654473131458010248684896686743133066874373400852423161415930630286561262529833136202930416477853436041398468030056228419030076878010221852890735181425206305055039794879874305279223820465202558829775353649995902475870833251310352140513973581006136599815965845923607229318220331655355732038963495636822220411542950949023866252453326028582468578329502303695810348568635167241117666068055559438777355643093521123101715908318901877851570904352663429177852255066828858348509729611802950507951421687417082918973508526599399542117325036198213104499802319668668389803555561418146640354637146052938292376464815865512963482974697761241549115676116117690595987368859221917135519167589767279646480894807771991431669673774395116567660352725773121677525613435909666690051106003720502555451856187237675531304856931187467049364435325648195412773144345876689704653842860309545003984583247001973003980477764327131544710454789502119086285100794003921324341072540053936630308989870908574889767792835482474193677094245256928227028343135528026990818145413171647933866481306044261909633976123794475966211057931528546517663835027164799856500375504704905248124292607363774148868975807453192367504842292226894556876195113094340121847938414930357881852119472414457733453075903919621502583885571715195742683013428341052207724476886320589191733264624007213908181654417038598951328668322435905097626369565288985011712690555659085099001775662934334219441812222265542700059103646792363178459999868162782668938482464809922764879350526413324233164225774683728472086346789911257661626224608369578218792396047156296787746339671949045654064689819549995185038454152395806849594677506999938835233114007708884024390129218856127486403418758895530407429929473074886595750179448618537419423119913340056284790479354627508670433940207987018100246026423026845957094781461521470039117596854434642806857822155877029288407100652541681210261922276522993311118686202266213430207694806714994214696978907308210037066207483468918452159276366029105217712652957572626338246605924683292375339552278994941366447949562722809489776031783423784805089245770152146818851945532005367426001886732249526267431905488962318932255155976427982392142828951184586500037004028208328458738633212047604588461895309511632974527506974849705373571141636517660607165457893724960819208919848350965317041786906688851372862735914936603675031407834685592524010088125059281318384239090004477984150663981909139365894379793980750947518001417484740423143043591874592501710393937873433134062097898238817351369929026119411845540935626372863326617363630529418467266847921041993740013533882826309299673887857068050785738614710905312092698854660033981890494389395677479407536820025307074563843286419906775234341625961416589987729364709720599132829985621665949314143077258853568140407805812823284878061391208673253940154918686472359621236281774944196729640263775691888902197307819596089701222942227617086606716473684090824669461225746388040195315421327669514155329705367017799773944228170065431108103350362532035702527626790871786209160387881358053828814186106966108512380946749042344906339714839115156070839985201247138128098262213419515718423020895968498389180231508407614499725461046955284077499258109867602116734763491570697153952349471576438679531493624383919407569144187343597585579275853769265043022165604224974168528216418418622924804744999105367105491976534521706482428569079764664998599456990585376077335014998488627752701959847849065208898823103767815080933830399079604535877831822008405337265624261361375512946837371468445503470651184259989476653621972181751635755459915343025797968347785600274445349291864774498883255202760674571395533718762799354615512758681766805015952737401534393628438022407838507383127479080628156829320093580449134268576812934275957179693549485644384303720609462656856154197104286622722269781503829840559452568605219410252372170793762053183947181247729509654653345809401343292550636520031539539576961658661055572860066615939689701753547468231699836947279877658888909843273610099009486799077537866932189560034589627746173352399454142086312833348298887027121154293462599293129756364156907242413400424171205201911605676259229316510908035681659609082653974679903625104420113233731728290667870438322482750711078124220908664674846905604249725206941096205409801144455604161916013001126178656515888373594809523286504500341391539721112699171112639242562792312020756633999952933056754920789718530541105224275532027701358723655349972986680133588882695944998985960093530106448462430654079409997336665005027048692740358428365856908727377060034508317263134668366165367358321836538644045371505919373851665420624793799369849455434324483204788758591481704882889244566634925189230176976482196883282661253416104101131221840389075413595709043691986985658029068015224708212131349234060775818299491774277637674643382868478133055998319258932096234041553026976831464336037434358173402631651680856925174936912085145957213358381135121948053045537599338357052779150642537260500923449382314702672486359840603179141928372958528176204282609014778112882337572799328865404267384715991410065192453250937845239998974483274389917094122187422447314184873067136547612347338204571883762016904714680278291850166399220772282044961497953263814385566453586632199052739548109531591737996147465629893903717775357181003891235447273328126490590202429479405185337830268270421793600447096286291589233878208819838357624046358363089625686165831931537980019061282315564170345294408063269205880148244062605154501103726361352194452254522466586270552023715504098522067149175647256049994695623377348006412645207906093094750702125328312293021716016584266429703135875219878500006976000907675001402793773553326132183745246985807682377314113286913867210913000432707604217316689077747376958658876249301197040011906643364003359366913027352477856200491959484889975550916903624885034072794974807921894391407458744945619090850053309944031653451679412565620878544359087982260498360105817213048950071995570912479348326644549570423198074551682847817830948569922090103806032286102060160582949500174873474888257532959878373943107135005622027789382772824350050936587674337588501456463071265332640392170011128427092643237697664919066779794189084763639384506001556477534461240841192111522535945251572058534747028938182383643574473142835509729261455963043637357364811294599261262473079238264698722266459343950654868958507599184716128837705339106601015015876581166023235453800677072900854766850157751644839502225068817735540213212731003271578499209003242049919323383013730043869778244652989061165171581973193513878030377336826841611329733978688010102704470002543438704597712770190025960353065817576552187310801726808894923254251099173331958148223539693365478793221836825425415087150540641518031306522777848282623907307455524456123607195298472958466458759560972651764741439976591347402606813319236405504963169588022352407539341664298356436847424481718884861150332139802267715636732211245348817939230740889357494085773059083630828041569862685186368153109630222689773162648130202029915360702408694934139725017477464485549427746706746387608111728822549001659008554648284342503530499767441865475704614047941263500393840221861225811496788998925800017934984183207995540094388783287765037806212187411288439576780131557406934476997912549604790573832649237259596944085392179481622604195197056806350502477260257441497886202104261285275669629772023401492764351306108421981884622521095151978952285599992267315010761487917276654622132429004459570463559366658592711122178632530011146080468957166664037465662767193128153426483842695248150922947639989387823200135772994519776743433580561830612500875374369659852128343290314867265217252078351858880666448011059668166729486211629685797477926986117142617102181802845534284780750734487046694824718965278338536028745556780000273414988724067199283992596583506728586054158666992281231346008983436044577502830512389332355259517732646859531866985841307337629461834787267460811715203964417541544473578667541768395113611312092276548370746919456291181394828599184626209564859017890649472332435086767754770684778295229753177073968582524425150379232125033490056737900502584589081270215008632673859486452976769333709927814230510807579577462597169244127688371819673938728437652098388728890651738861594801323617260998927287894383382962227431143177720187727740395309394454360141987684476785149808410882565395260182636741927014419895152238347232766580512801900842546914426138511643459669220777436525709159140475834996905031630228930523213515143246052073800067213502356105516305720978382660843571903404432149921173174620560948093792742360974920338780099962192130726773842049706233845107980631695215138991471277790488248240385300005924016634624511312439356229541680378134988842339746632038798669119769050790649613968245241718586559859211079401906080176462788043796770056134263924407838063864688375359601695134532117215909615082366830833757332586445384926211849105992601302055609556838307134789291787131709733540839807510562105249942801852679871883090260158204651260322983658038489107264235469137266633800404012748383442425544547789863249813980952073960963932274576527914905535684071279142671324106025484123552382670238245742354593548306942511830426813541352375366907373412649810962552544008093848036777453529356375994401223465473040164947724297684595941012468627146263784904912857657113731559505424968994765129594637484651929959016095065059347445303404850746866573920408014614807882908013462386802932496826958160935776509656377221981505531559486350787608369981166561680834646892649545831310220960107181798322252862158870981969966084580443050018235307825571602306485054017105564821341438764475722909690537791943637246139079661676093414843174852775329430737773005064531998079868460830342954544567992524943448218296970008693648733257523896128370173300879125265132892159981302188283395104092635970041704392175394826343234496955437603681793675566514803397781930375573094721639941391049068491204464432710009315388088799852819152723841674526636577926959818933544140726663192495576811150391893558294431826342329606631418346516667876937496570084628165311900568425814891398316743475824858800385157560922048453257588518341078511124973367334569612557858302881725554998019895291006485245550372788379962196523119268470490222620501806690714320549198933745459652222526515575157046651037198083394615691997003790061949429276118080659214450239945235316018026272838256214627107082848223288538762842308783719797101163838850644929128564890152516009031409484762517577219044183916309400283207416197898363483993762012827511359511045979541736658964241449629466470580188824341960596518411118575864826473147231998787304778487347245619235782500223429006242015513840629689863676321414272810535464332544334407278375675156233196716903539644535054149276105234417326906757302185183624550150967501813980878356528127665698276175097301630824165414339167079755892966960560306611331704645751687798108754354387944423625863070507782873037647052118837701282763768077083130273421164112056174898483785566214576629449612154662375307105478253269343184825690430336888828180911613111128041488630945042005781597308141290546859536321086351180902161681628989791256415754545897525430149753820028409266208469599283634457181586608509572149291666407937881967280951646555398134510099325192809735027166089012736489512113667133304565278337112458026440492466844570378159067105506155449128285250688371284036710407531994248361188603425376387309723157955886874613248617215366812022181875862062223702792803274475974194814700779039328153061903953131139774877752601320456410431841985250844597542342168830928762039178429029278508740113869338518546134723115643518943176438527060158105199736109895203231420755396787686369093843516355851690167405399101208369989228214030050146251477716590811991351664360826658671430753390693229687363507772784967828167447179375544497093159726363592335658645822183685333818778132963536253911388755149304273408140570092939077060268921208169121860582967328209919649798859657230915136659050012050336244601793073810767023868934473606014969410584148113336195455263016272576212899435538473837708973372204475742723857887744305547786511973568645078587870535409295953765309172577182614964489093411033391738863294409567260774598995446534465160001459369586017941367499299362540559262627559051092094574597149734166313043050731743481676876864600891901426944428520234324505429320477558590539949282147881756993965873869418893508310248070910212806656669424220955182050053091453952605417274034091770521066739031751595049994748748165767505254987323224360535117391443924759418612093372854630751726993913250562612502826935959818466636285892407275400138629527609696201241773539058442250371912104980716607716228426545510662103222932605634513212626743395437529572250869642136976543730880424448476280842425316069211997333869066918691435550345305467598634882603825051415126193928003782283630871061183102967774076370473002846784139749355766264933528131268142558459798864230569346176062380141654891633943044285032277128731375086290449717539646063100074343547128299152036866444077589266173456717763752679641816700007034480114626148620082365484170925817100375046308243526693506755455104211361488952549771200648169019431669421115108045213301258647037391069630687545667440600260194420500912296846742952977339954954647077305464700672552945892127920487348898842017642013233681632293671456886063636905815267059483572032508377939538952510142357765434844477416737477084765608069774708134687435878853381306098491932849327862063017788828248055657937723242049955192282202183988769189166727679888880067291284768343051561959353772366278436302536489384010769308778101958218963468380962149317386716923519922892659320763863718633738518873430023950031061933840869376090899764453907960660193899943967863115919760531145233293490036339390726875247940933848167125792709897646441328390319496700404800958820796038030869406047676407358384617731859067646623928194550248863413319405667860860592045339463291046176358487461510219757663936810232903545114556724863388496936355749539961572297106901880966933305006312939307232815088276443675529225371022800261292443009589609638186043398904603649789136697927356512223140448856046347070829804363149115015910191291312603910364581537686999699420812064172024840099983446088204020520011968500459526239179252746285537361956067158867285056615750855351324420841465917592323334059785074010621992338047513383301563195872054127819908193916956023365009798674070497553572731377111640071830861744362351086443535131564871674680040856633501642960350258313647321034571030033659357240442201672125372758565949058851636968745163365128687089292165017763717114011858782901682674420741978373655117723475622567617674600376473532420774404146118784485963750038028962851852314175313164455172019639667090824153953470278922608213890812751396987992098529743242444455460416142554818769688824942175974022096357610306769783386974317616657045824988989834971848716950267800323563525498763106668683127697451056215502954739315881827804004555150371613814201268508936248560022454358758127615944195825626910887181030965738889899919840152050420762293917643338708882205652721719343473290078167217795000729424461086014530091619708038289230195160225751767537890140275031219968921163182854797454417603396632089787828788383141550941214617721556668813098874948590820123777813985635482222904366448057013284424828018552691660495822919050981405750611664166762182610003556287790521141099007469865904555945316167477795839609334067433636407287699365424925626029814037363386769144312147615414139181417596940434836938431593616168661048504537339690209894191915020988402139740517486109306271364639676763884663220154903019432588873987779020786805995763197802368458826342698928977288787043677458656337431451918906728712737952715540069268536551583975946999886758390956081783719925782935782906474468502674510343366007274901214806012827106898778410165824667059174789059546113657438006772064679046801527518090324661053715240623092213067476604831207656593941116650650078751236718971057233703204398154986574128674298324949152783348917580471726953039543536329293781905092165322968356448593822744817029901736685281082063404587870711253002432155870110129256378346627035882932601587134772050666362958424262819288271645792107872276439406152056283005119493467899026138339080610620403809177679452809961980415141220736035598648715189020892406962489077174918642808390752222893807740807669955140269059265426182237908978758944331359452650264949152144587243461881707353339084837297341655755958275113048725349712720948052377409289669836523800558055402194082215851965726407240191029143774064064450098538317397539991877684914518314436925672387379558863295662385354229657758538411150798461517993169251849920920880285648260128423238526723924923868060959435953164578245072159626505977553290387634287995335518061770978080655121136651216971029458640829810498613538711268489821009203307097010479461418864088208189317591650396175952442110364976753166586609766214069864609906670227205289261195818150489355419127699327441191846621110879728277631388429889433071088879454273335911239648680644473264792030701448385958817353552719030005149395064253042133276847278140600321003473072872572248357552386443451416837846205325485313715852733997567702914390009657608863733788040327591327082168351767519872522791089820961801579223670680153246904744297877383267061533725054806644592666794449705755591871407374705166474635061242474636293724082686190856304383582424511366066359176658558165601797923612650053225386419564716334393914914612876580208523966283875897324652533306583207462338643873376851122848127696031610357696834776880335945529503800126129416984528167478841643824414260535215344791041759834681477372725416923904629457081398343980576143478692503038862111730002539276839694624358854546220439657302934045296303470668815031164609071808906388964022704263432266530122432458239165378181113266270101029957721556702677180333209223423334776451793577949211526768338168801535938232384518875410655697962507996820980824619019681315407979088118472908590986922975809577738022085748477246858185623004135169034971487875939052470528858080295103048983024292288363789723281713460140010112176054989037921046190079590118439638434901019429472354674387786365993156685901634097302306058432140316511415587756797072107375738158097290528236512943401940116781457446311277637349971286533350948870497576649349931131217203893858496095156613623559356771747763088573468588173808118223537899737726581732421464734186398966039573797476082577170100374223372982327876280091320574949963638025303922546102060800686785685040858433507026713366772192973888513488595833827808077229710941002903980002844178442538909083462967421152555426877684393495268702064413939163993639405854488471783222188926985724165044007333451988273669804604469899650275557748730375862781661277797604286916063517428250894391870901254582321659838338348548979652609915001796725564151645161892727765655409633637774832201619817147188504851590056687618221456363162582028915158631121334779149096268953882717253648311528196299444547264282289333805497498875493140318963930562974092942802891847689405576271828080544484629614680363801428643955394707915508334981020913009697485880332150062120191824380849327921405992663272914218116758013111310784327024493825368098739311560606488066107444501715797478962813830568573490661379990817880638496135638885836181951943842856600176858197446847322585965839087608443368952350180728817827399630742908235160097470191138482456445764634359235292244744056282509699137510429347653931502401279192348428008771884987577622146294726920918901141023250386929598348253167905407766946025748046779184238987835320581294263757969703736212092172956504902505433312758286013706222541982923950630917497798966299873868829536316525822311763832652781678612207444716262811183564753248810413739864284978453203769663434839887928030568463675799473470512165983701433461801681878965248095799335138713075051364964840633098693631987094757071175307225541021025507070036613518607182728142718063579099878744057384971883818271547562183596145916792971935670510993579357030456608503035442362608557673574243794587006849165759765035415847645471676846616121690765733403061742197599776031464299817814306160068796692718189452074237419605160507537231770577363564848204788174624296242956157374580050679063505683513178166921506590755922659525183565341343680225332225320604366331541490034328179486368948823826808656793103178834230829403653848285187318959064122019060862723383674423870922868499369673999830227165183902839160588209602275102029673410753115168164838806614329392259142188667708011208546494011017024024312570802390727058318644236785811334062861986563244263936692505438942662445907519428137129667758113749122966035785976782198566921160878377581904025996667076977297676140483552972109215102051349184722064759856064015828430507392062941200372715031764583981191012923288278632901276281414353047931340858125558025706727059773386425274862067976576531288184293002593899020556122540449615300581497862908567238544409967013212819100295412492774169355373770375368836869181335449210939591927085031912115628451502043557391622774702169178534615532143850836948027372080662653829348116676917549307035718987417104589970474182840635705203075236646310610546871836537730012029397419544856919683845614142549194339034085242409794831576586945031938447401919014202682666792039108655553146399654145969429287776273999539471919369454927179036622656446704244347601346522116455038908992708817851387853371749320163936973246414623349430599268628033996980854798163556568841536450839599998856828077596874634154226398901581368168994685773159135857583268960834168080475485530106664669148279553202069908638327511127680706231327846269526961890593442306859985603564514033442330929311382382844360725790983078361203048727702177478507786619961244830559569782359526388157207544446640693988187598069722120517523901972693180707342739508134147056919617788146979982839654604012711705562143484133943514166671512578049156069011809401785203906049377439308529178663755217127544788214693694733546188709549512977451213903507454876250315493116592838786907701508521828886917745595093328281623683681447441184956756891684159693054625829592463279617742574158633523843669736179406439309524858291246010982610869962031766699995563219379008605902716856501813395693274948229715352276949046415142677751808244650270234372171348984700030968990073910724080849203444414859088510491049018458398095232817693873250916330757739633763168583744717521497751516621460977892306070355020243924044455455431748143939831592011970003121778675278958007874073128266923432252590382632811666882674796478094381872203735947669824383086690639445109394797356843137256325701873468639977191278424622182263232372959605629507052756074015815407416081537134017280553387040627756199407670515360455903905393282473754394136119818597347638921665280965665839406936472987938469010848573441874975303177674591387237185151820446240833764044970572352594834670367702437006557939737651827126323286547197720214471078463704890241565713071499358220676369863922158550873894303104973913248524229257356779858309196292548894992798319014065718619255579058397301989376012181804130644746262576403955203640843512051596651276493810129230908864114703951071932624096165883966584221493674614592453406697269086552273525462439204804325572907537790221953807329660082144625953332301488494884804606257046531245711751393512574730770810895905873756851638185176422644615643969832816967474616378419072277922135691204596199122167178750708869698985566877261389121153056185592867743829249818097553561123584114469903223920463503926530731884148790669899902728694746809886546268111476952508321010715642685515478798135570428601959063407537760759230434450748492526326087070235141059662405145689538185292211158716017915345504301948365507331499838129280518174121684556735465136486922498015931801302601183158035359104213113213113843153177432385205484688923889717822906556111955445352471477520368702242026243209741880985971922981371062632928584781138441485091816117652159620854708783939082185417637679089721699315671185911815751983791685079388702497510332501781483674869948062433377892663100378949261806050284624524037975964446282239082129499842546981064335995795267766225604284456778764846992018750327620331042525655005578453072772077922833621428618351368083794735779239210098591896834117766062709738601523752228328833776483336449640607656597853997784376277995045959442948199389548766613664393181467202877027337683354968760092070965249109704340668409023037286075508414207866480810596673694169337145236676018373726428867888984359945553829601485587928482800265015061359683978815368703123265137161651513943226985645782653420453808335115475790468564762777239152518328546440974048864291834801369947028531673922559274283817339930436916884975830118564838195114159087517132051104203914673911289629148197209148805379521264571673588115448294624928386965633446136826126276214323645622649743672984175023951111525858707079136466002982607548512259652731436210503135549199930044142698852627736476086577247905153509762747077895976704396175172625253939316873324010173099113419254797918004528504121237543107424089459541624914819980291506800972650053078488368788112128994635502240124020982782846107432622241763403345021345239607512096646710647931086445961165841307224495952888483446574475227163269560784121348940484752240964440027856681461223200307820658710060647695157343889537938559049568313936796106538063518772223024260886211149894978260583780668604154899736199481559727879107229375500262310130724370445122343712405479748036572260038624656427197222987015867313629472768278859239815146502956808131799654689498909434354791745429197464519773319102831111240420952293243405339558426978860830825754357560431329974096176005646651079765887829149987265321318777100455974734062982054315507054374189815422596397271953755138413899808262206516119973041958556332346698105848862006658913503376470465305320248109582837652480139844936473885939997573693435335169215832859291314036798891198127443063992521509383581070444177707166534257124481722397103248601530758391532201182199561785805343118200631640151479948610855747351560322152212202947358631029733024742009979735334104441012506810072312652207608155517196911537470147685194189732426709845001827003999756741849681355203622211964216836011922581686724770584384493701420609907511784482227341969278971030809075163346885780665910318672640511211877130675459131632105688682307611745396536374919509386347353288921237154985155519954477314279467596558824961315986609738431727219660709677896605683748177354261712442219023429144669567110267106590147473865296276007133152837285202938757536193669995409998358438663527345111330186382969999304497033178911835513341812600930109471426749865290405782260472212684583604584237627738939649146133186225925485250442731005863220851820357728156294844833409338220653832777695499010886665400797975611221594701537870310765031698631537063075316737579391733804564383163876536767130413588084510274196481987023091642714012340849784692615907991142621328442007278321431303564779871783310089884799369893447713765174528547056165069073726470959179282288908157116110717962053698830126918282381857509152269062132843684428034700508965343453797171003868898541042236412446831774042422202028614885025885376956385057189961112855307881277203146510296630373257601138603732101671541077327595669110912136148748775426823993254828736655938258304048282715393711019134881943905061628902272381106355966805242622474082485377375493330977370315017447569335558594655062173229664820542734442242712908188473329590112669904525134826057439761222738059419320980125663358053529364236259302883802984129895878540720389782320230485652033837073600951225173886470967659865376638480245804804817606201883935234722372733826789400243057676031424285027902374942207033493540147979263786743039157344869859036219719216288547831053483813268199860123134665710785279031016807971656085613352159769291503953344386999457989244476063858439654352098808948466201905436554052285458218350599313102765205922598676793895788675695674480999794710244619339848442786477325064972385163212815127659539324458921350338426310799261814171296130365706201139549570002698648785018582330982131905397851133898491463337026936380590521987320867369642781626803609444298396841068943451945539872598023529512205720382925481762101408356509585332498195415907079305076442275903939345943691344293024896442073800055818473145060896081953824663681056318549979838478698370884901297776893475373410676125921323059644776801665855990424755285479911895631207726931184220040716384336958328201053258433378133664681196745377516442445061947594498688551263557324256177580496805233868131971723614654916597302988036394372667183383841860361208516882235340397921451634264496376369039166064871442549458603583017600863316461112248908641512219782486884928912152591862261005346926537506764841385749413634716173855463845017086488829385171615716350731970498849827151236352287831390125420047276042827223537565767627368428010175340766054110706758933648686095709633687312594313001452340163126444378195325641658880042818868032375316109878297010949525377434853017841781767191433517725425585271809813504055663388504961378440976664212496464290978731441468431059447796468815199942080808558900264135222968901779867435895439178563452792810858755522561100967916036820265688253618562925818120348305115688110495265033394274865656817016878083474480862650358127009255376267661414960202051669360065987967651978325562418576170381101048834693436403864113935940218083801432461653435543893805565312813473882472865875030112989932827377847064996016839035668109069888019247668117482168531454413888263894327507264293206110472311125911854376679663311690144317606012687346157842847038562513396367796662853256865442350090730694868019526537371555341926698934706259000187406077048287981732561448524140577482374749669638962070411396058787055862003335796614834654128922888647203064173794860423065395889049484377845128695231779010253999513738850226577909028811445507463754701686085311747481473724825968892942712293523090856806950162580622038535388820251541157143710250158211788318555169885305264305623567834693177256724239294562433638843283900175719001679497642199259625173579043300577678774852429967813740635376052028760840750190471213212906652129533387518503398211181298561446781585536079312904506806989528990742753665764763082075813508187355666095444643167022441277496619267987155890440831895115612325673143174685444975855392218723382005472114068267357383566591211444854931616193691908716440504114794030308144332450373415025019265337808336483380323649401289899153930745329245198992316499901871283240504639130882241237584011013926238476047614067700213132868027801691356631213782580280799440830748740705114232554071394566810813638961304217308147977694126568328258166971133402752523324417470150808761543471610699508329005422111481223849800599182263485641581261176454512644136110644590603497367576951063531627648523818311841475550222929755971252531912946548502177562105350848600183722947821506961677311763464608507881711995053427292116844767582877202106905507958087197450322067981262841604530304579799750466789007809479968282812151467244778932482946148786688688674735301280515196383856946797716063989423037600851970645296925081249700253300166317648997903604929092155594595359347508322848615826081727600601446940216821023592354249024659693432109149752179307413685711132162513609602944664483494783094906728008654890236911371987732768230292175618185464733130446775160400727512849668169124929990473631542181969637327881176270133554323935298531925750178666949210843600118591364642235275847022460977376536877055531897336358569351151943419380671340977311080882260725133861955304795622821558621898067034412865863418854531028223327911021123059405582796045020680734782535923116685248734196130311056985250649692319062395947405771795958027570455459516241632248480651229105986429577055128617856701386314424513852993221163897138868845906782181396035820108685956609430661636586239990839194880100238770413226120791342721659544167902758086026880187494549254943669492392685019377795864873740552566444546128582177512407653078693309671462043833895942297075065666333386484657392494368387032612376603333333204827332023461690349062081793259416753765748043203629420102201209883332879645454322348085147247455564572284149799451001193543660450633692893176601281380409201510618429046628979132748072107765631713736205154041836260748929772221223465194572614095839588258190219738360195655881588890775164456958123636539832631770369829653855900645597900836050487342188528980237035766108290829121405183896456014119283002838001788671084515819855779148953410467745502457562084442230882995756853951566939510992934387569932127411810988021401727362667018321498063954588389736126805748977130793637087230784585746908367624301620583009572635071334340043625525449706929017741158423073220044549813094057843230473271559369447026036764921307345696823318414677284403025223606510951520674638240634370581095862995904300808482739760562442285510122035463797256678751748671560543549181169636830464415387816842100119525807403463726588472374938673075708194632755143923212089658392391816538390969129340787284412240898583212036697300143608582947280181627242335863027746951086416364447710713007176857524535485492024887849208543195238629477910244340464113420842134986221597395224332291808350900500163401341969468331789532906616330770919377178526278017424039245965528181892358714157525757807025697237628945672538636429676943839747840480539195774028103677447939801056900880643785241342578262595535097956187302324390959670209151320604316268207530845972254477675629455801995687756647212548887394902131263117756104592918481505544433635285867100325705262013671471778396984570657252876433038136183132509109230082681633548364016358516302766920138794199273114765216840880848030582052667694367857044578021300305975937770442908833349953569371989918146937588501059178815620730643890896368933433449750043486406702223153938231002741662784554040257784217314662340990890747212766241359037231665355807450399701007630305652379353928962173898618745233353608648002108867227832443833653559401977193921850465964791288825131732083470190667784599785427384450954469854151068260497384212820922443957840788268133605499735079861073638118888804749655970066602201630174806550675340833407070247177897443526671175872378280201217698696396592373401279816251155063970494425221799644707238186809801734089031779578003945941927556211312098157430241404051927847056648121398429049310531942015112682540984943441881897573563180385507994741102806166952087681503563392030657765835793555186665419526762410841850854835556763479442450418642912566376667592121805532596659147008673050691901846352657239138979734435995749036346901940989175874141665472948335173193327575040065358124436841622810006480040834872184899459480043264176524994321955467517397476400141480284660071681207571337612050283242660895307766601642396324520258612737336145230123863362339827076835501234106978190809611885004451064366082557829646041021989656553125850455597577647741691782262742937921028791891722726281118396465602968111206136070498874517649784519370437603772302683988380207374028016716197679295436958994615909561202783485149880578431583678015124288312629674073809662281645745180075254533296077519403008989599921327318997201718925626830025227691817583097463660979688838209540249932283788200366800331390947963305327025953790218029044274938665265188102185561833900135675890504521334177619218226167144117189358957653345435739581807383989786465759212594627009760095477037810395322178489367963720588260413398019993030338714582270570529927133683283372841697313288518028305598819972354314704243325912222034924960815678808026103159907843078839505080472546991859658137944546426281898984126791474720525881391077424929542726532236666009559492306573275403977599034950777806080169518992404788710506691029909120091207072053597592204776975270373849409454601902442046207393069061281504159556741003762284883977683431404031741703414466179946247963702471994855161206222288722781832498542398032858327294925490280911435820878898947276433338417676898921810139745670446114419212401529832111756638393236268803611877062583356015873691897094963452153439145681317762332907476364159435659710908744607781213984193487283296303932251671336546029986339006883943297222711259100372077498031224123935258879308914063298658932538718693576765010933244196240683763520334853346632822724074461185408925772871654309320952194162599201042636216769716960060946906076255168883443785655417750825417367437993308348526731075191290329489352493786450713395978423694582463900451780405927766894973836774455743532788411471521235658353617725796746246403042662208601864792503148605667016558040379901838244784121982274028682747745627165213993953227676211566696773019197398362598135894928058899493538107140198188150182767229470805858697140543318017877087989370278717909873047833275955330498137754007940085564752437670130575881255338486799132814690712021998031600719486574135688053321423333353339587369078835897646526725423030329341682226299938343082805687874748648356288651327685811456899137209120339487425324651754754624181164259488494433146086126977616889267941217946570447594427311512325565981883886799762264986932630299843790824773200734324913307622125605915717110780205428956434472479494437074359155500854194583723843195197520627139040934769059328382700834562531153506809048388919368880965179399748972770183732545031981881429611137426692737689288748033135017074048157278625542316852157224756999589833621841496387922619688509317857584065824166799019329253791373083001861182503459661226320917693189933545032327046741551514890620888100740163470168481897714979398533557646343415676834299198824283439430936864987363000755390034605704766729733279313303875468970821161137591202299877127691048828053669628744702513518673023257430810917419775197221810381100965651576302947298881798223164550699919226208786301838813818447083937738426182396615087027702167868496148602064362383225326184137307523350778982763640486068560127306816915124926116917724397673724144719043434304505463386621045522270893628131157498804904747580678033882857596112599333992505877593167149635491022367965128431429999012939084458891634037529371542630116905854331787425164156558062024280934255009698925810968204946083650831841815041195692684537425405509550449038482028551651566914757468773513766495557156410644899563458347238529218766162324164562093323993046597511409364658008322799521407089794863461000924335816921485977984284240334004143223886531626894175815073754249401968203531067794785483492137665717262083444710739526796320568209969447313830435113130640865745997498930992846398364406087744432220555557711502496017351665011683170595330472749107015997482347141041319117894119401631750685124697340602744046506216948211479724149120924460942773186013405584096172230049780916843611766754406315541975107176529763118071644206907105359071241063967450645499663219971789046856818383935047512563412834920600751171118582549958270389188135791614956632927568417285993162972621831495499613748846809795763560869299536422046768909311241093086739839489623860216390093527510497173972224877045484605896572191339313189368492429172764728163470770512628759181134964158596185435737255498456141997446142242947195938497840420256783192787277444233709825107826906130011516781039986328794445602622000616406818105466492319349589298911970380418689180654836319373719564012196153679199879175515771492909258948111528195030659224108851169694614192594247844688739004602825388487079294533096421817161286594016600753675848664388567607057180374658223570058016857207770371466589765023761971870302002953387468687748451053264754696907535386530480413772797319873278527891768738225451155129615973129211804582051562134871858107189558447074929246545817805746752835590399030455952960624065240139448602065446662682747929841808316436718238314872456739728111444922538276648871069543570617422454739291730080995926196803210293815620932253456274702189965683361862216548600569095369380455107520713354797398939959122386529059071388849112219563598694197605850154758897046629675913132065323254892093929460048704074349086527859811331126177047762467421056634566780905960089091674938251009605026141778784187949099092805750789713668406666215537349517179141685682066869485104534092785556740055560776617216796998512091736470037750978978574375290696634091016124890826708938083278626650839992992641982108604636409331197081424487482119781508009396409552681356650071099296787344271429179873575587539850113636297777619634159558341056686764775520228467583010461113575445711918120583717804936719062022958784906978574512084153213850625666914073829337081356116788896639023127315394611603445772784069051161347987043782371510759645668018135475096607060808758972698446107531812813216795485084250354149131948222066283808153582419874493038859480081319117812753336310003497594005779520884529487902029526018165333681869789474428635054904750570404336176925653901335405616414673699751037584046454233004552325879800089988033179538738199233606477182143154518007074184556988213934855517964619005098600773945867778610308975683375433571740397025207618513803352862424712091140207377968463705354437916732090230619522291557026979814173709209028017687744318705515884448279158700623101756480681136307450598538939433493384509551270617465339840681902912039685786468612248390079979271710477765677902358422322159807831784420278692513045120186126212391696358875793295752865393907112333151537966974364150149462401910654048382441725703847075915960702882378259293747670760275952612592960069719051784996675822869771575422788610846925206933705463528133104552197729960147564141348634811886723859158699603516831621750773508815412855303058367581235885645077991565377013398257634646240970941757011046640917787380268665445564368034799382060982228237022846067957846293476660933996130486126696423039654085631033608135452526931472346627202906215647616389293321944737466314361626685487230423231771211413692996903959927499667839417887868286872262851845022374841243924726426889275803977077688775502420501200913574429521964324045499170092544608389581776698569996666036336973179979713895949094485794527956112495632989599701680133647516652757679767424768248479004258896622136465834923910594798453121203424626699709888437703214776591922005289827555484571115146679255925970050838560497285763790521426465110099551590734815202959645183873544030084501464241355037160162951586014210332491756275398060820298535939828273398756210014756429246784557581943210373448329110001485818671578859791806154256063712959951507423226604869057670812013850799558980619299340065855540228885071286003721166660098134603964676899484027030375308021166974256000639166897929249436291744231416811451559629771747247805651839797574971628939542149468963549484742203179146001050037918786768162697818956634973211624052385808283289295066546732424031984887826517773992597622560687140218164227289450620865487824579346117230650791882931382992153099115429572266748197475432816220379755615825554845217979595260831159043884690275276746207509287784681924050132705949245872325273228009894958730016815625497397249470124497434316854403422884333718371161117486386166420650271823773251826965190915315828364266716074050928071086862841260222780690257401268749378533765409446198899849785567354977084935575920452733041270931602317781158685327314999096350940472001692869322340356342657323182047345042067721134585780412788406003831150709742042339040571594053283955838870520023107421210739497199362090434207692138506896873270533805439717730687847931391347637147315522124021383036702272302392854177260410235432704790849389746498542042472491665506580976138746413471916185155864561069641477149245054406182645274649870482874558057777704892165714849041963625830494642921817259093471845568946991253588887870255548645652322320915236594423560684992313134657709187733222522683568152142766586297606891522821008266779323271125424411507128242542383334653001624273793063597607828307142638897472271993944745240760236056606469633347784046436712880703325478134080754319842889351223582250013661400127018814210883645707984572540683651985614219631380785246718613208268203975941364441246736363918854787198155223910378759277331439960088535253077469675340385086684505271867811410874057645822146493350915632747107127669215088696641863859864697218507766448064020056960585080313076607690298222448759911771800839216836745406296306220825263063382729539312552484467810616081692309965371553434273187613858930081063462919588195611149051096264093035490725177994018779472853174937604825386093293766938685713098314386634841322536835446725043957446612621275890512221481268534385230846446560996487897466996341775704421416648038856140181808907312518353977959699349296211781485637958498343148991411402990534718682581221099019830590704852360835642507858616769574003830508478588046635777495181239055072071612966018525430298413615015544525888712169192655385989724966287842028156560971096107103584346539215736307194757569055300031562415131235136210849378319898117363429107072021298369747257938351091380792204532240355450277560383296012959251996915488912434740412453343896078158383308298637879971246319995624059909357604633272033327519261322154216324994387003263677832477204919169825463128907806270027774072073957511751415991003644437169756253829392677414469023781077000003814262006946550608191655117627448068661189023792674100591213958472882894285084635731787144909961101131363964936957211274135866923036100225255581257869913729429955167276396448653649860419468367955243415095511968813505193729697738064228450705772332284286972203354154617888556619548372400361191299706333269954186526328709622175481757164988871019814748486679945796377788817263005687863344603562586683047990209810932068483348145447361439352517404388891684051454840498413311600056700328193905601239263974770145366479881584829651633965547070902476161960241088548802420101557813466263197757860682490947334600151230938408874703889494727346510046325063794897197695544370079688674564177027527166622265030180035873153277321581294352824887673702185530105723500381597974703698747142662989007632405777462170469029051179447826296056570867740566535895009618941085469371158706705308667494940076389305134133767789654657076629551686918290879008291094048002953478611111104236808416763872778574027412890859023194227538784580295208871117874980010158149895599977426683079808741614381152886270436209592532884772505596906199857215995962244843743736878773118735745475270168640048372333488157845128024610781864078841819364396131525771629969978824682355862643152368542149263723734333467732976313634159816923019604216067349520662039589998043183134679041098216395274896721294832087479443488352432452172966579444479108089482581350984312568821423136296776076799723340185007958305669973073614880641024511794790443529541417025933333972521647612575021222509159716658885098080653848135508017516467204104077823290589176043480527260574619525557862328308526600851892277255524663569555420576889156457224386110837917062783143282941359364126589198347567803266374220557293098957195552190507553335104711926578499700765628410446695218262340632884778770874401033595017935909056807445366955170854318000269318916436815746819484874974414480330747093671606051439014048244637899052731606083812198051685146186933158175506993030001502078592999654308111782894509471401872302963942501186189408503398257015479691495557989432293723048762452470482856906364463400757853085034694107585585303388153106978053846115895162831966448738495124907130148103522861101089113583288166096449801800819119358005949364246748364322903247010223216729381322207061368702132791957449011030390410174712052041429171068583044872314161742448434080411864960260610935641555250881458875441248330225005337425562686528583756867432085712282559784962084303105449979016040825737458609296615462273685502496675478419752629771999969415317919367567590293190288688655300249417375295852615518201832359896489806903820511739896446963142665180337526142717102440591776801958543106549063949991100590667650668662292963296755484745390281722928678704616767891746430208809039668949397916156353998944502425709718649689508016497302943336575126176089819535750281485464870621527777281022799691507422850710168692313313647519038259793043707506472200845039297260244459464176359203202421051307632216182066375454263446617189739891870841753678594568111994838241212317041413196284787885262938631701928937082810717941041166664324447842383335840323713578333006781477992194119027353437104404851814358819799248754060546798306381949051749649851096366918205987129527169613302937320544255330051679622286622332759656417228146655916688068284360774449253729812325516743121733083643925033664767970118768545081371985907947706343372467244545873841343234443342357373574932505406627055387988848939988377904801853272642843073737719565317349140349518607557232861558488751507419054916923479665868035135946851046126149263134847512652944073191667974584177416847001721461234155859100259238811916560929465273894164640836711993343878201378634293276168929562571138285677541538753504860300470872722559510320218587653386073683459724615038836728491945965394880444687517899238446780739417273782775233915934943641882382638857406599650476482540378838477657889294425883720917116714964496144227561654338943774681941556863046622898465488820450251588251622200877665831341971293790026056037979555789516634084800499352158653683034365529457437079048580306596217172513725856902584136094548881156291908816372796064419226170744434185991469673595140001395507922368908244920085154544140707333956651165106306264447371128388533280868372295648267017532779729803947025319761868527136395241818192957347105240095602693507917103355030370795591435723724824301252753286638882270363577474333247881109889027099125329107800556763055585866254286621592896036360354602226547700461671899099605169362897592974888416659879483518074349542427780827771253227860665003119528253650603391879240303086472058178642436040647977097438999332396608835017073213970345743744779496557672021934952873123854537034424169069655311677265610622060490875498835677373684875883440756216038752436047501847850189934535340072929602615082559229294001884285964920620209991549622314631885760813569400304274551524656776774611268454262578450420562187648701366006005200107127130631180480354116307814440393503320017608629472226615412644668406387764897060415749561117265370403661271545021280450973743882750899038348146588001567839203881458081398267129056017173248083498720421560850060020112283937245511555154984086694379913446040290762400708380395645684568834074776637035482362764341895369557425495965059648844690061498481923218032098174902089898310200630564789932956262992053757173199070232349208341263299199380719413059710398484524198876250344532439575366839170480927764708236293088628952447567620159342546769226685023922273437237809847307388803662214527673901292521490441925304251145937578732561316171932387880424235926395396327808690492280951938700787361810535703780885622567539075013787394279478221264960342000024096053992644065006913972704349449670469498267877171743251084690905381792517261083887121296727856947762404841125890497828480894257475625560428680970966933799012988438955618108222926725574594379742383989636789096460184235885051915246938945506733605630782049091620894566880918947664430803157368172968531021418084960914961410363657137963455405050355868122118395537175077581888562771792330873148366818065726778500467267747320460851405091291883902691383267907869843967161099412972677042952956996515899750319351745070604249857103288508180671612001371179731580552607095111912791163741788536612819500186193449407772551719993463551272489013740119392106812456771759686408920534032327555206634452899147640531999261190753690018722298147162566371284070058023961080981192510936697295031506727981570295765793730316673058689981673667055314325256483588440120972616958535565647455175664554828519194440758142330325276596648534431252965001061660263452166446636269360787819420376088176859272831137917499417731079657992030074888501784345465297813906166728245605521272987621914011632936124450763219104266827520797790520118304176571882852192529013240237108317221430198855942593464788009221263459376703339975017431615991134040318120362100764376914667809009416859562026587575163771126720459094193917041120856149527387314660026082643854482587657014874768205756259223676330543061908953334856232024974825521859940935469754002155585707482493985576429387499512734540449236411687226622543207252605632337645720200435030545708252222827292191525827220380582015999321665236939828442079431070851352533419826317479578349451919143910927114674693634543259012594639598868395862612628294462801116542311586983919543367236537421154666394517929738529772365638285668577700667619430718259526764412392141883095996748029457161552262161617211617785128409178535667600309757545691729374225997109658762808904797330635149269494822515316379160912308290874303621031595508191217330112582956755819602502203303100507598801901104697423115331505142685005620155352954925821470342005101820124402857897426411467909779462645680492742150255799331347922126115836174808220425704200206778361633665666354811773726987103120295654154664425036306952062751454391510013116156642114215410096374740519938450125507765257055712856933568744274701703799079794630995077421406563550427801296121315650634556044313722412265761369563519914101073350484393015641529642755394717868429245873134550347414176413450661345987036900733926655949517346254322231958607744673448998898551635938446556795796210206943216091339928931763064869280479261641080205404783367435688531607640291588195064143407843617140832806864464069901054044409468199087015774392484577521582039827889011495965098836994853943179500361898927077859004754193463467732024187702095101600378877043993020535520689311090030155081571529814395800316018791464067634854598971586329941186745422061356189092660198083241146997595169140734803553250657436679116370697356578427999205291691112509672044377063195155592369267073554201678958404828806088338896289200865044740962071074838765101117049375556327016442963721397835376461347427867505867494297767779166761416236921244454229840339493188222242976989935861796706338927944423432087474412574664277729682486306557867354479035019592884355653270616021875858598226353030431411004078484578548439135215870545286433363315147799187527706972647956499805032316390985360183237349427373271237236324810493537894851266304699531171654840378717276629003707437052075206023526459693586631169820581590849914034980861501076532676151830495903259032610232619357908895758301049311483771310111849586455424498652120192355088182652777827715334844884012495203483614445059414908814182654606399222954377913755469678641319523095736663974454604376782816692239978249557626040793742287143789289387208651797655766244680968571699477693242818629592258492450110177382649014814068658877526419129990259329426649654033986801263131951556566565960912220909302641733829389352543540667823670049168819287024262904699145714121990106377410240988167911784070794673681664875505284828624815141225166235685090027088316132721805153310209912526452739587063773403305410776442088110789050484380034847481666055762176730698947176306810881275562142077720145251444397735946318674449090660060993789647160865662046096124533790138272482158829784599524230962602940700193157099665206997015478278893804482089733496226632898356145343279334787011460848410135902261824887548449027731108718198602445498357467420238886779314194100114780567536083943876944254863967769277440049728225429306713527322282894671878078964751940480441748154022360500476695929625662095827038467688916462779626421237997726324257110447621862625546951423408883642398303562777434689588182437643414109932358318905995280748904961877222948897386494371002045122696138101994603884301012336754810231805469535432001029105314638117876780365107696405962234844079415616889105910211905299030352996060656873419493974625504026010048677910595161571425334946099240004847751820368789156326511535148711709458373644026295308191788439225119511315305277179583431637958841892105111115321906381989516125831171820229366547888442516656682038277717988062498741857098214546889726581649202598907931670353409905264006518960607484477419502003566984595863374858437833198397712166079065533995869908791515032813106115029102402400534144340129548714258128704266481120398693176363511899186181514950718758369324424954627860110728513816172032308617731783575009390826699135195522035734325271105340255825728146774517063890393928201047750434552282150749995082930652956941288456980852800249465071881679892872936783906906110967159289848643382186415691958807068684007073873337056081065761549799650508535783008263855236774580913205894684570714160144864290223078854396715827761787401121945062901393929240804170340675402110482088951522096379936640318304648319414249233419680632848308290989027217806492893021408303448816909828179851055589581103714018374593216507176474171081939680195689523992418153933027060129239412191957033849786289462301739839318189223461084268989238771566904062397863828810743207844495188263351780138600848282837974280863007931255120119557545362805588368007731572877944245571854995548345288210062991912043345050997224497769670289173755795751688724364094315946181830264628618873369351265028288451416070378944523968529897535586189310515371760625771905011549471252898707775563195763129842987123213304095769708916170905704901031095445243377317681255692970430680587506303753486690009898410110479285734429068606153397257087405304899818387233665228642298860980783807704586927667001210217514803769492715773722228606962642261407557217464700826721248602241919341319326399596384345593061087508094439439243317045767073753637369542079027875408330695277837444392496053777333212229605431119341766308971074215913753064813525102138695249361040065356321739123852266575840669219059963294087691946437941094453007998375782828778342721222315199631735613211703286840242227842777705614522688183748592592915994729174589811908953455047625434133443809515702563276986967158625925988054077829914141153034059460817130511055089879677237746711427130045911544267285228170416092335798869147863058293684852062054373236616672052343631769609411243246011804119807957131633085315500869212640015578657598769093488138453018762257971820709457687572328986465846379085084262162123944673625383681309011988392224219751558941665646154958696525117731630955583832605894722423505297244951153484087014874120351731929972477883637927832851093678851440136564178891672184827283863109413497601348215010077740604693147850293010747150360730284009738433101921360458783935299980491668186955975122436438261481617860202798670132228198185219437762056055541958420683288117179141323864249147111444993623056174327429779963285319058063809456221913429147583571788065609620329737649707005396755640855070215092103372456023684795167125991659251339500551487900060517873510491295934591093311711615766866281133509793406339036865637820205723702407710659244761272692018009376086203505385914202610887052162465796706951325530535617640405492581527935830860273609485519831391937086048663629404570183890328796856187246267791837233515786879512142828987510920452290269098200384148242855701620944724238216383784578905880596300246954360290641290983042945287096811741062348352711609978843412952155257162353584405921069898847389061617066570410494616666340309127795013072593589708642568202308987499055457884567970193102678166411203257008340934265527727507846875584263340386160685104872530963488569741925112862917805080531683114839141006565210946263051241971263840561560468868302226048953767172854093436270102386267357459391420770799044899149051947365993522269395094361562224183199445329725133025579518556491472025632734467297957342240723592210102644169479106257404134158947495265188602209587984913236541001879378889784084805460589840583519225856068565697543457111056151876782952274883284569864781248027703073876539282201244811223681275709587899314639259836237697695470294855614698772453168995845979260747029281960569820336702948619195389027297367718959191229354161574518737052295590120925084343426689118268603158819048917959646487799529994379930438424706980142757327804235983065867020642500753365516298275107618336971028849515427142408154916561234648574451056262779746348491646809390700263305971177146074224678454503581284879828897754246653007559324477000272141553871828442596492291055903484522082786878944827830678212817473873044191753831588252054354060621509460621605645685655809738613075983366070474830249526301839298244498286902918932293030045809164815693002865314276190188502813398894409687684842141769902597052556152246908771553053856401386121562492692406901412732986428648586350488645796319652952774302335964563130921134518781036999599486322481831964295493583152540779568484153619510278537893845537726678033890456349728366407026693307103821494576231269646174672218799866628827930573535606130451422698866987731327155508100967766959875789006390684849015210431162800759698454510710057585302129051551473844494193092288495057744794554413163954174247452052576708428887479479795633749026510737714152240882852337020666574344840243722874910513134394571571446627251877481201518160683883725567871748486866205172001152748429922381231144559036350230864658934858544932261541415865547227379456249434005608389181463441521585028197435777353920709036764695443827252612338135455812642022763551081741026743069867149751592436101674476206595422824057562286493511564593529181740367174160194247056247583579862738710280937381899012602102794795392340190235886026420827789173434189974340762956567237055493169468885656954840943995553235496033448528289900763324588533129461855934840411848915051309796603197847175903341478418189843924235225639941236884122564201612390361213345168803934419963750311472872215396436307323857415680307231603830234278411129693325233468732016161356728065212558947393658499016060039056123882617043357955523221396209424586485460627836377892143574983012166839632776244871285609516734746836027079827503760240988465860465139339403461170995158736406190060321311288135887493166667923621322858274788530801250200859590909698392852091469312118235959217719749997913215686863088860694625204962863355436328205591364461683793783550884080978956477318580420127411619009968172050292146599791029905595851723255594442446469871525744857076020283552442812023973598024387179001452967002316168784423145325903019240510435640449019230044542331603658490689770817544703854229242521862370591754815796231684006132055910888413742458226144204089887299245516482824170075820149976885686449665690565311731431890942547264445690825128089263986295737183690328267498128908270582351819498532755871747253168135606739326664171503324439526096796315141113664465163887958872468758639109228157450802319294425643102074674057973870260554003904016147452615835623610284935854512517517198023629513653284791321599493574179746239230175582759052085915402380965826975057791582157520236881592946903830892689609034380195935396729165873669743470839064367644597837037148971165444255633150172424369598499642521058016258230664665188506678614035150523093135584020382718224707461767269952150409520203683699786575978115276446403883557801527498764256642024278834988830396791951430714308812469452376977878223864252338093871527804492554846605971577742742300936844370705568968662406064628055139084368693261699373735419420652294838597099798706950755093726105349461958998553335774209414666717506569526120976985282838228216501311739552489565183298616786689983579122644982028866423423422383926254870164293850463975129991814598768972932401247226289310547714516852338592684138726629999718399492182636936231985969088832070545059868002596032548204882077627333592467489535362139503293137487858043400019214657124300438409611197201939935016023184922487872335219361871283765668653481665116441420761284630219538707598900703070363689260313748616196067448450627920375905783534384051480908181030243711849524652675721630200004104246104999340100121096299098100326940489749892765552001376969455526736825346812558491713346161669494414307179337432955267253342227843599629510681101523399278572535350242655684083084957414250891788197323598886815469421703976832947570563085043443574884704683364951873996242413707077223831669126458556565827286258203321926575635885602270050954631101981539335527313122868884983224862261186910463461028878888008752592051973489014233189428463388981021192786764186098821819733631698188833863917871774855990821501926912304533885110953252535069092466960233710348115194950246761730639499104279583210260917760417092365442079010293098404425852834542299381136124995766604691817560970983222942386109353617483479024980040900026802066637616686681046072582313157409779970379753923212788212260873110257115312906345133360847807569454030200865120034037769764725400568941219219120104252347553707775967772734326017657690788831858508080943524079706970555678482698181451373261998536185022410914660990571376411783170757168865840800311369812866221562344250692696825879451796621867418481221573338292521242196737031905435073748439634359920566781600199006908590354957379039160670199475337362794865997134036694686802184407682861159296859040477993879926367465377204920252641403789741759140453334446651142350009214463758474835790493347961622472503572043134317403990244585239871767102762494235445027236493739347309090980322086482841876437655813141427744658354035274801242574451200065116880224578810707634642915681002904869812384661443525723015160142980946827898656730980415948739834889321853810442651146541156753053487646270680233614012615513424742972985914076509247426849886371036303409905207017951473392504991661755798529046081943967127749450008221276274467332202650544076176456197487123600182243618482016905642756641059838767486711660913043317803272053174069569209363252422092744199270194626544373586380704218711043995566333688164710535022213450759121213303336005675891385325912069291517776002587366588109558981291797543446469963429430637058244413771611154302611501704672145904286748716836958380430335910098363226962800380218941051602085935616324686149183067630736664047012088639425343438833431024304387224079555652529552957872369479611942489336184500858405967186207107621534009072954554784048855759906244864149536417420617045637185097530420693306577624275030225047705481409128361103777632608361213146662635965456584595087632206745383190700423093585700888303448632376566960883773164271963632794488103924093625054449488492072693833288391374787351100832724207781327960049147682444390291939688386749404296693727540138378523308069734166202889992687914631432042015295925838626542456368401025608192029434277379862902303620553297753600834694341850117243004870752301737794062143655745130105233873484347053511750736369767287182388757896884387210218652458197373120740818847783706350168541559951584693861969164205808852072376161193228993503072399240670763871710707871362323579185087939562544008193882951674490701679529022763828782682196935790431661228965917730745205019679637655837974040221618957841655269947595853118531491352706019597586573969582913055604765064856060829333228685024759889933417383601554294234773421968844268475490535944997215894058689002747411601719418425983066148146993913246204581521570897856159502619886996556122936050667220056729391598185681950136397512348909892729245447706091475071791174228809735698859362324327106873618404000887895471764293244383556124276115537473860929838310345393118576285303797980051365910205660872696457147978249021038896537556390375754156078952103829135661514324318428801741402773943076192076343578752240699799991219048281911288537183943737462062996431407092080955349482427924067279109770306720547017660942948773120812218249490372439628539755663568214468732634168293401818660628506537550604257890841844277565982391806076928324490140066332763953418343131369056587870623487458820086306541438190249248908633989406149687457881428448766728212656984515254065754261002735126836664986798620145946833576288594838471337266172221142824041600403403015490731490187987932950221699049451348584638332857901068518991592693664041781043656404184129832743131514930032538746671834451761549781215609666977852637493135505582354077511905560206058482155990113309771491506083947939067036334820839448871857810260805103099313701622930494675475400208256053146692252040163337744336224086182143720414709493987116903689285841442393107755875812861951188326526691834448823594464724486500231998594925857279809220163578528424615667282357278038722537208508228664695480731574262263287279882893401750922611559960963443588571325867861123790816791480726623630075773435432573551158144114765540744524617229669938022972771906370891804741568717878445103312562137914809956522206331479645840258096680157369288256345734736473082228855604540558937698743071406085504234240773650129728728158443773481359067180727390239341503872418010839988834861158041488926605405920464927140063484767522232116280886414701504727809685125176630591303200079346659059482825379096413011695574766961419941083543347334084490937268672869476147965633107545735818238548101050276498351165332945794319374591108392679268044560458181868944895143126539063320872636024715113631649218515026776138637010605761586781565666459590329596670401661400726151853432506317646679582462525342142604454064161800592015694403533488527224998121320149136988101183990760928426003044150132116693009146463162185206219131903268459854126487850675576640891109524360513276544533345369766091047269588975809030490218334108388811347455798467838822602605527539953067005147503616124059947785598700886774339329832913287212366047935573249023962813244321402785871906610943018584728979536145839367338559264190358804833617924362604580830457506658585980281117403513803994659328658711137820344242213121376575531775899099498853074040984787316604087842835770001446914607939447707061533727358853605501245926325085908200876142208742686697746743551252967769984849467591867518301102466279906402529588326119874737315448796461372779013518537936100718662881373196548407535312875326919249570199889631473952143780732025472157154615494978268001431076543519650407957984765033383483456326079813152738674163127560566296620879078645373921383443325585435723570202350278369095183766321725494261530792440361847000443052602836451843261031240741951452450678615728943669842836699529143434829392304490521075140140356273738914819740797115219213502400108934635018070424118116838819228385039043519990858571173558143627556288783431026722836984951883841875099463271875178956756747590103031273048810777258986165912839875064448736543733526412074873910312898330086628555341128543999489433357957588322745226995474054395609238877265352567201228835232983719927465465231643000973133304300102562809494359724585354919422869925626394300812007199582401375442048763757315605436141998069522618683678960941151725843740161183554043198887158731871512228119843509164357085462938722162954499900826393107109360110340820462364271716624637514149465842892233536114464461072342669263875555324498135241922487985963545761406048645701482367757388799466328509984797931036632776948324512943658519987080929775918333624667420786414626200823163219244306039608424276853154680596770631499312710223075191158685341303826329109084349819032700688183552438441431368812160564992450435281044460288880359857306220252282078782931209539301486399368841496141986035083274800896914421787336007712818317008959588905910635289478165208714361624000806277051338745781871121641308128357419749510983422813763127855983144664110536547513618337091609524606804133590371290475058329125788149706963197777685396528633396554852383696231449541091593861717258470533433157807484898925608367149678173249308720394631817421287100837745491847155903762909201015281850530423057332752866447474973963214668908478525617083705565147346929464632698484647308667055990467193829492324275256946615649693314098108050614439082035461009488470443878396130340705232596904718370953526108746710834385425845907194079975580870981500552589915944611792218314288461491482169762196669024797842369728938113682917623702963360833580844572391268680608625990292540849731572549972120563894511963736234437977472690119757150668314075125548532206910886061471779710022041649465190271720811671629849966624772448313909274504559692801131760729966136162066155577510266729111774281523923170283455806652392253397848550995962635749540703272044429616581511039277646181170754669414302496914455678498573710624588482077046586628261770830145858017116537943920130565422617405121722366969207079989925069493649337644908009323182202656397230984199088722373079092647155458817739034784147126476506384240265906095358802628805524300471353678081961430438201619305334565712530498584015247011730705788563244389008735574015323613726550547403362136562213909169505485279637256047113100121954710884812323626047605699198317952373996926350906637118469822461953094597601370943994282057099292565413980100456439716848892055841808756947856306488376741245182791946104832746942852444033222571448315410577046654887774528542673753464480404514238058350249585712967565722966682605234345786533041758964914315342338154398721238694684248003468775033665169496188392066868211046114205709798386573728488391516058694084398584848119171358574244402063252123434269796638554921733585158360698694276446721591998145633497928222094426199818056875637738494143496129442425743333579092605729429625904159027595141693303970123173179299356811463552643699699307614830663218876790016616679480956488839873444470649043019405690949350135743197574832103183893193272850960849102867728855825417336452817260076955279871310970796172053860796468738948926171672897722083263344814710939920556391464679535468680663866563454988818107215917774719110347620393907090673760491152008621986448490379221106574942480933472159644532923468125308792872726033760114322683754082379520526912942640108115294431904068710954927043238575317243834195485830835515176401638183878483048054562503839504113020536021673539996456186313826657035973744331591057232959653167322285917683505242904357831161661554495221646573001099398257772590872952256323549329145041359122271283471156727673675053217902166936648482756310335874613372873308838689807494536202294360033966936481125630085881685439519211917346487781516349789353899044315402672097064722298430368306293488387201559829467416628416304286294308004752040873671061972485556185035056406374357661732780938154477196876747854170284654019486445923149770256649853599082656600520428940158157352855668476575343663101968823591619117780797635252982359146900206067544459891161538347361735226509760583958383664710919570235661988756393946735630931333159692498890229469787095371451584460129203565589416992970593090531400887883557925979821406966596683729284970104478458009073051231423805932837219611527074416599692678336889437405097050171835802205964740686568724597521942000826046844931991456946986194828633722488999906552622545774019794659593807685001979988871922802258925195646480270040885736132958362641979907656308867752543686232125878587304226712865952417753423308399208497228938436593273895560450357891888566865488827126340339575503018805634459726341798775231862092072164362698242061188273000342682400369150825825136926351424316664733173758851492863185242551234299920291207693306887891531520350990776427695245842119221689214176120862428035607473372391001105445787562328614274255910800939644336895867033645305458448090417788223769157485116521160595067839208882469562511683457442781223073028295826853875485013559955440878554875391746592253484864675596272488415464201794012055897354956591959001087799670194325690438651483782984398482295615231688286164114581998363636041113867017697048764758508293162269781142693395484657475209962860425536004768400646915870087944126585354483837277250717256084435020198312907044201915948073209466250910978821729393994212768768237668246159116388955735495164897190834699412121167481093867643793109070400401758817438627961094934121756485658783880387060096631057250460067954133287486532047446705696606323836681176114436853558532886640157656136803382759844982734925564572483642660242109211573785364463135374632177203961514593974167397104991530449598257782853215541101468121611709423475797338740317376733635382866858196971189559532174997556351298837762293699682941056851996814223072772436709586571966565318569694344118857601977413430335267909805725641028696855456967975035806511060278029911083071709174284602978740399395468523331278217887230686170818238902916255569962091895628707411705700991760627675114436500322511106872890464347773967190776075738862717170026942202507421497365580575073355895753421876317730545732250165781966346608074506936311519257745775126851546917355585379346478157343477838100650868127156337929390090492066156565394401144515732473884720561046722291055780948717325502411218738595818006315255552056421722096450421005195227683711927341958015285837804104799718402833209670946481771536796240470072404977371379899181516910092884731925188932234258245101390270603799373940753713111391232092783507847091695922549047884488982143465665483318081254269855446329881669672134702018290188379162806371723184474577191052157185034401048755582038226575370894577344505300450282446401418106685994626799727222168149595232378751952963095504568859565502257278385411987492798357854699943560448182825976752992620560922969755880653157930636613961186237121774343129350774295614818616512788019203532613734325772987148013148059931482896812301658287116427180414180414865606939863649576416338387342821841491683559405851483525379064506144090964206978158617638976305468255568702644528286951458164110303962789339486112251578429133077593480184483679149666013760124948494722063487131242248517382453936918076821152493500682763664033555753760892363731658801065269806953184911002400200909507733882758026125211975416456750131976406449488139251716508538299832186369879745658681257802269934688651399996266928932855551030420944771753047199882466121735056353250543568990486567459089540383194948926979702159638043492174714099785802409315758865769031945379361855037351398475710545858729277789716966724420409021337761373861533175294179104872961533709320581146842549592493493825897772211331864751671331304529488594465789106153568317016854857876019837578477553307051044480947666899688105509725994228746713778403687090457512952204443683028940665593947789009889226668275352685214732377926158124889380063299488911754478216901089489802782575854498015008477891433698498540985248218211903749820413012970144771496571294555263435447703072138532786702514457483987894995724228084906539356980216510113824540685908136150764066111788057469583461464466979610190384293530794691128549032121347514063001121080552724999572874825243960965122202964313428324773213736288084568509551632582637543901589669070875187163171063596219213143027312534098657242187424514379838817632485872871037732268624110319965521363838064771871415286983939505697581791462465185708708932231387473748641820223371174220700309972372206621791436412480467907039020927161280199282197742280232044439095529385599058303605766572044556869841720421925261748181274256212976652317270644561963679551576726314328279887763552203236002449456645977887132293094634976835250662773804087676383398188163731186221192461296500489039421131581662550373365471007253108561949776957913746221732654303746161719971622137960870202133774045649988854042474240848227979588728716315808420184154263752784810317874290309931324678906949710133340389559098222060260455186576020462224117679501519182050635228140940279802185394735648083435438926327591847859478294389003160035264561442728330313429566748064274779219376890282328183162598280758915509045055689832565573522391263074164893331015290371783927173833314762630596818372608249621810355200560538620633850307296076363816554361447833404521224871110487060519197294929006403962062148806726657962149474356368978160251019215327543043838258972929596834729565686886828452091011229471800454753259693179459825346046854380898817873740779702966671194509252343547077610347140710146607995473022649621042838855185499175568244456133519985680471568464933301544509186450579063199419905272175769080156712955133541013493798592354075173105645353717934631734420414573258840344486919201785174510090788583768443666759150351452053289642113616082553595005443579685302194347033440699829736950837199231113466433123611809125067332700812481267985327833592465370947352033457038560932008515441079165865805572728813677424529232734137778631707465678770867073849919603938768965613191074180290046147956285251875818032548448558299813073033438409258940662719521679472768790917668850694312516504667183187224108169184957408317880072741012060778680533115120604922780641682162427024911737650979635470548230434800932122811958192320354734637472219993354432715535691474078216422108638873012494469322294481346067264501701334973667991927187196489530909274681047861118474785783690589883178902211027167902329565984979037607068971542723706415168639298712222870390973118339307429241925120457937549785864235642911778700226529790679481699873122741312871013422599844223787304518254350256375705085535785627249573968559187156444618811615891607980340508601924452863778540999752319742792412813241079187617310479804908428222067109354664590012593435770269488761419238524711003112279362649046431749858284705736630271660366144398615156876304035810750667564994674071005992566928514966413234698549759510916458763311452802750213139891535071231286884255264566095871607935989860516412168163975833831290728182968231992878857599756826879716160564869538481194270375083255976363296448091654520406186496439997455833158141912060898382180086262115249920766239657845187539223128006908902012485414895994964271583170544196299498181799625080149279948940303518700803389869842538282729085567256341238738541315909030409986435163727371811641451433374700660677247660215762548707638850327492814736817533446817507912839632050236445817686325307800184666013187602564325090697822243319143068987418767323769413866380101405577946175641138824331600208849348523452441341309892446562088763130548085549023358903505586008747702163463977604711784713482793026274713675372583382622859896511987252713091048612679343023223124796944056450139129949027060261233807727867612903383463096082710578241518334811287866560376328112205211376889368912511311721286037700274174869568875538484283163807319696626305483127614027660625133921248674862428522563222991338525152492281621113927462838385762677362901451557001682628468888693472999415129785805686887733925874596059198266484534278955580759380790258256668927095770844141838243254506286999045580213970441974933735068780095700627021721969418101758303400661830104703054879006177630388533946441864125350610013442313811332683671249728197004345627503226638942727619255879700871772607503909825196014716673713750451966116514517871215848979823191041573077499924596233802120657441332535730257367661777876560891902980161610885988261079634830181375542054350792687826255306823650498018173507479682175051958363688467929415179996117476057317751081366263565076704600963241356625799124975274927800044652004827569891345965333811949482006767689091434631657197368241187511318547632902802084254295443881312727534027926386212130863510929713791008899500142817844687407185486383282000036628223259338391856457874282592331361901184194648174835476957187768055636202671885751545819629538859609136814413741258134669199490842000583819236707615023553357167402671262258090168331013265715131335810457314860612752306582567147384497890057374831728140549874984613135748770445322792071042375197481613532275965411733939997987343234262687803113016397352462868507939411989232279341874177093831977751582322272574293785241840259122760644994610146198102118811537041994490692485830782966269709103946048419287247200429807876810927452274069353032970727606083264069251542177312553645118959734336585892737164551062880006285455066391404198857442105901691742985509970176383020724670972331359550039467212129198973576341898507992730632791469963715658512698959500857141325391058366246572800159999281719458395050285882347235853316251836166243547913187479539090579285581938007255691787581287865753684134546073119910919117334855620335995417850613805261355402902036779416362034309011099834042321469050069191503972034791079514984518770192147119278036898751283242347102266180003433230615847345218439175739322546643468289644359350261808704438497912161036381039567241470616074662405502844574765350103518143658909504293444380012618199361604044858540995883891513275650003718790124693773207179225298407041473987309195687340929237697293928663033281508203774525132372279219277042643741000437762671064623669597423157035630772326464274068117424863649697734098507893500977694643262453041524289472077300760514022909740870344985116601248375094939975420967556800031455984795964123866339432284449819497634374401058551693027057719788670505523450789641595449228196674789253819116857795121184410118872717065760513708108023232235874905827584263168266863632052682748939335852123572868562927758274925542763399375819417080485528505165230272798223988623755020782329199499446652185381016599965271340132493964241631267786821777558298729452936024048011543496590558948867834617476418905811548661484540906392280891689140879464399466561466371741709705079023461242803744950418462912499832843820036752343582798917820943852137633652959676369885708955251322129007844907002601346783179702919017018881170161410318777224308538252904629715463280005504241019413735268791305332114767959191157662548164074747536705294960769248431407055724796170666896834926133553189566831380620267439179353040237258715806749879774603840720771398925823218445369712223124809325644476121614335065330335373271892813881035964589642991614362722208871815636408531736213562012499512299815794054116753791607830180878743122894444134317969247422342343367308163998773210534867280025560626912816302296818428028297579882552880538478515211042748544525140459169928280767453469357757373563367967104328741737783013533029799217070787249755981565971931456789623613579939076032773320590276792205218374077591524461635059248816608325507296162382787962606738790296818010817779951280732875498342686212411546460863862091716315712175543891274530872958604798488977721433157933372074139767337749101857378085333531374225879642206529618781599702347090594757488534074415816575689901753648225543537115846749199224955202032919364443510275887118201175315429386072928500811241683648697418707449027717974940132021485377593916312399527267937300568097869838223628574627523543322660771340681435042941300447977458909943158145726948762094459695258309925986313447210316960361514306589818930461897389972985353076109104687343383252604018024725270699427203609224775457584924973684485790424839632019224588311623084604703054571160600688559911700198130993297509545732925555136903579263529117321056747972705783005006401616555187263472790496842740454963044319977709917498738942603678064757822259394412583579627975507124117303322518445378160338361735314735747407710058564950140011952608981014341124926972573958842046559104260549999760741004346820777558523910611153458857756483569136642741016493328611561368042375322894479807260750435009897664060485879067595761866890788947272158730166947124767107722837486809264861092989284809799444421480853779816463233585496970283272884082064296288094609546467248646819650534682578304023056582529646659165166383246737012705665614155122975224228924034921776836974087875573748707441417856382878357915273094228627609408562212657808508720998822769486476134622538263218062389164936818656852864873042799348709868371370513891736296323652397254299012099580947329814226342141043955658751461503764552950592629718384498092199289709787321579163815276392057806028754944565239701915960245171909378226294267020209051871127457804072209908977375900380346677751971449269853911653608851874401752512171899232420519413055408158970081959577752397367419023966801418763752042059922401206871817581545665152474322727109179620947683213326595254764161429247575547254382019257726021995879700366036163865857439778635247909349136031041972849428408686189370697487571722117535286370025582727720063909435942294761089066170264111168871483582070983921621948189901597286652479022700813167707522575099235254534568858874909159402466053694178281430569894431813763035741156233769187549114775588248128728719718712799817636811545077222788014418415369494256202004916664562524168467157549398693995369724955620083767759339101665869602417422472053864016740952592959507904103675838744803363162327094810149281544437663519824444234444694477386118983984680827228368280504554315603261905966684954600731352078247270297864745004293900457513668948460647086304674711880254775576115339863158563086278344758164727968861124983641382707604229371720126766376784259361330786344762424061408455672265667776832473504807348394389440143867959542632945884605389922608641812010266226216260972320516195948677703279174716049562953459471457090551131125261929465073054916016337814186889767364256319687484347072939233290876163377460446866246954033511247186617602169338198159894468774222051258781965624854167295840121179051496369107730944463313343984623959005779643541447379383349111099448237238344709550490888950018002757192550827333054632671919019735460048090428399464460952023693242616121398061008682538772795395622351091577334079976949138327324485239629309019573855488961272779706677170167184317621185412369792365158976633754772257853543516941121647916393217418843885748438384023274374075949532808874372865610737840441523844344175880115951338624893207248451427762511982572185859922915895524922659023581809888520365639962645250686485654971944904879436987286023899993865810643088696941175219977042005519713782887820939056547933531164707014498203382791810813178019077762092672489185512092017352536136312030246148093252712665563391049641398124018116649619570832203632272128301512717213989890679429329833514436485791144144991447138892034904779709152801928655109473583588161140120115216684858667213603000858384132764850325548039580218408394490453031968551771246908991506562555149029624519149571136806173188179347797364139847892817049737918856280398195967980169329674203544732604131371399571125358752367756944256847320334216235933506896696680210870076516718138942373760684375365625118943318018254573309821903593902260323522292774988266057374933580486944861687438985606009799056787298644752380956049610804941489819765323454604929372026827501947652151637701429571012636770366998163454610917016958538259600540215286882916977282611895542094255232982976406492616822836177696336046463403671839025254318774625246825083434747237825396846188354888548615518582249419593112098276280213920656107210374269391230760420773400638746280786314417113913605361234154657411240916141595819259879315027494233675849974922455515985536209462941288629666024690155984240755065649472737520707493776323585033934784617955318694460101213611596448075950904939938892856925877544872766398395939362321110354600844111433743305556794829101624548076678796365058595514281876182424437290096095827197044738451724600514344928390148737386087358558736213323063219354696952803967580598870077252152821737625506775467811717706994833566193758740312281511033983096931645190484206256455064116352703373106248174982864143275358114680054831334753819490191303211629202420819535148909823810566482058723062231261092062935134166352681790074986009685654593160686965413020270540774215439082246339300012576532949024241187280249550190342960809871110867329659171813450865165272439709675230799989153601932514953013555009964531593866989725070634861445205831824676728202392346109417879897790554156723258213222216412761631631872610744184781984552456940273600415239089571124349095144458665414596976744480957478541648624521365085235727289211949557527441788772641224184159360836482175179720911019057764804962304227374724837555074285839803697512547487717227028826935823142122062282027090976292918676236246634387953239085297418529282217086400164992785019309011821048796254653780788655957827729486722635778063970055849905078053922149758468276866058020540159695103363744848713652443288947292185639202496539326863006286391020868448525982324055265482513733292928797797799580759627213056816339722844259952926500026510171784505216052909778216574519850022847993544396973982679898692311356942920005270655535440164245695036119883495226841905889363092158284677139126022825266512491576056052463567944091474733633670121274457225834134284619471470002399070506775245676914059881045073332003659395493599292622998574476700294612029157060099397490733924806584503616739260583162824732959435973776546817950202909944341287352556792458056119178129519256167384624618332073984344942630051250402903930245457940268111274946820553009118058726876189425924685839315918816411533811868812912150581146205850134160184699690848623837062954178055164447020332998567777053608799940038384803400185304214632371229529985679278597934457667826663866726955859323593711429910956004903552037808547978553431683526000863106571064863335046273660261193313741369462525166089696107879710352495142062022126004563951301742310820003149283618223781524190954260116848574871826815299592658787745874390716544843066974333531701297255002539148442377956834805815538562066589478628462248857355143208306312551375838699271028864394519147483729256505550629432086622365545685693231450930845448132361418913506058357237078548519069169415425119377023460816024122778346579500753132462082491197786116906968897869982128613053004735298835503017754679287469472914335053124478822512220362786350844683328700275110089788604664859960227887770337681437979827165045152477192165563098126871221426047055125166418896128582462846773778789677748762451878789017560670020713274533380243249321756726256967849477976443742048137723729237453867743496745176225215653321511145725617023988212350923696061108564823832837644276509446793437797757088443241367485567365904700642374413758310941195361451310420064303170003399983189492930574649251064061102868464127916913305745751367330740674735083155591087078472770847963618646655658044251437277524769404061120387933190518087020355553076390292670483233291443859198463929908280200912578891931541243377370538090762441366012809271720882002668191686468641591368355830863057230970568526664940762580321160266572514995639525246005396829584146403610025592620783621103374324935498537431102610585693754995308149709500704458853139980240476940555086644725313327542478296942715474010033917515295957829351135094408326059996477024974835438981776616251238193842707681668049210318211110677061862244077594050766389050295730618501052565161253321518877179344694510115683796905139272226906217796997101099927857159389344815929029287020192892709681302624830627650616128883341459486324446024444084095599989903831919826753538565333780788346082537475838210634953477525769808458353244389624946706513600383946503700036122279595764332421532938298298505299390859629645279952942159329455708498164956402742841154117798777533169105636190445042222927477147171848278412904643351098268183640026907718268653354602410932247379659288294595245548159514149927308338850849859397158238084961165134906105557843892312084161306356981827615865620782012047662208827873007434789571105062704686750941132302637982384905208967467469490759620097855553177227622739969631573743550468568703871341209496804156368950278825327329990720108435889782358458013752182727203471222396297891397328369364119397541960817015953002034128761765832697458884020059789721069748316431518588369887001987473395874627435306101620811349924416784906675730486374623311469594314663121907284097182233192775648902585866174908710046520225935849789113709808230439854491752220262549806659488162616524445361238734634894998807907835385206683953273273961731850891490926664369658981461558920517850277828327144421451810882274133698308297472396496973918348025464160521912660420121712930194483078028855191114079362433884635044397198744551654878161056096131711804024030234225891240521741945288353935997466101659027155915103141997450833213023326720643670026942273291269817216174218573190114048147917340523184341395730078726419826459483981323289020387485172546692712273743936952650789205138959188727496292857548274467074698144327915980557405886603731708003655378433484965536671573078974870294229865096733359877224623897965721960294703775851166517916384909353080715670108334811986320849074745258497758939030832977763297294491337113801441325761430818552394535269930043795800096488546646620295949281725727042631324137725735256036923000123565397433338407697565372950915372309748853679381961003543025460908124630688632020080403150050586521868302410503142706840506025547479027187448718957337566856875481362334855845987658958503775258672865383098347248345617309054126395017536146016959048766973921755501861233088747623593314238361607318114829732918768135682203539559548809908651056133513239106059736461951926542574710001380701078875752424134762630477197352942736249918906816126494692884537691394998695707858333826603257401038574624036083227923810107771404551003082521460269742891970428087152002225361006054391767717997209089479977432248416353916199652174798805155131877472306056115605861872293446788875017946101534681087101353285239485258687038104214171282420848032456144463785387857969107886551562437223700064926437225375140954684174794156561339860370535556269335204254766152370005706140061661864583329374451668048843530375697665229570356339709382353030107450215109292650506309336411534222643287731933507063798207874856754748219948973524617094668039766470611590400367614903237987741113923165762436005334780677605058299606308306022261054725133823929143841262090665265993524542675449953494900748281155831499962762851705167740318145962735741905256852654173009966966139492493261095024649285863769410054614639980643600769455761985418053017754873279930449030875571280843169249224522565427122829035458049441247870650119026752383557917537665299935385774002016909146177568180673069691901358392704202583455768953674222746973641563452042038618637777799056822774000833554559664306972423751559099233158292932382578600847713075523141983675114646368738303611297707129486065876104947951436591358153379381955733842595896183653037977238438261935497346901033936084957273444306150426717548476938814152238647659802907052197001531307562994146367049292626988820209104109481306872696794913699321057128093915788098261776445407648091215028395220486255717954370673472964306678336612913787635808327144274021735896653100944022612896217992819978229350204413348684098477110802019456973440037285575014520103131218411382820078312454271101899962362011714484189497485957096084548262169330135539081747967296020046792530508403135105648086904741457250823281513172670817320149342140859745412843268983798805467873556884510936999737567390300296713590063338204870799445766116160801268365968572232446256813029964806313806163436067010365920526342616182618589289358391003804059943012013542423846629206819279196234330888423693356426703353877862731472943997564752968944913304311361052750469046173450313208149747557706112794318465765152095328307072529000836079028453114289189498147924557840541073011261713168422296970641516767990349616254860008815296403739778652485625104936240090876000883376438170028849866235469859069878028914131125407434663653252406126632938425402304740131944035530776674851693722193844535961808312772639591620868135930434756958981958061670431366886723391068933076411691526538442568629992988795942556086332293552792506633213064915003940186309431573092883576939533519107360369228429033031537830930685556072685459753905723355894369347640274502137893275944418488242944730507075042732529764739515265706040595717888097200506743784687038645970916672279367245106908337254133851992078303839570839717562368830724356869013411572255918017538434569033933698589678268629510706298702915242936275376736645103330830076263226750818016085280931275742917468343863165694146527014458294442385321577448911535628247616135504494055114260497803826575178532244167310136254916136582619156250204190196763426091859596571800449136181835950790251776633541567981304101518991383253374625644820866711547650083074188580496333404794328839097696505751254325556675216006859140939074518253199915812619507735605490630007663606143938723299565639594874447424886099884051267859106779837206457532948760535837561110502819872193018127482214967634542907437234284563889029874715060040313980398652239077116641476601423067252321637894489319832185092611397865206650309351088439136548280964750354783993081184169763708467592923743228576759897443334054546657297028704539174359354881847299479531324029901960415299984075213154248138906540998128855973647329187661728315916011284391716076875703837745424948577963975947167742697060696846145037910562592501902863176043922464380278123867077980766895266260612773103218057462345369323450231927982940339164066173266601804533616601173552895624943737154824616871060800424471916498322597821600841869792066784029908946973032949977824995916413926504831550926096414588435947183414279580552532363594402334817322519269387350768295575044066847772814760644574228699641573208125448861849632772327111333184541104578362287404892478722832042854394864795843719536234584340102225419884383302500687424740119504236720965865970623177191074623553608573650197337250809741401175256240880455689163015724842526479562527400997456937884515463232279596812685679055431374124388108689999418626384640924736341247709429759730141158601874235409385726363513607116559959999124006888692579562819936305073863054188922465723033642763779538041256435762948845612523084676149562598853518899114352852660089482179933792969880263080963929482237619981736681331817459797235776090245726835631050668252520771585874360756320983964434894452729270794793563350851237534423741859742973114172604470300841644317418825285399267770669283591802576359245303549251141464105215853343038278270948662823917457485242235181115388094144462448612223402524790510837522328365936779682521514424753134355697421241191462634711345482532168491621365123017563277367206779314949529678265892924090806004358191050787402116160046634812961847493194351431923346643392512361464292711530635917055539839597690592859996167065727850805315588058511782081273503404609537543844672454489650865297221252358077500699988375067359214868569739854849816921847082911965177654962644454525002635952658002540317995514791887986027998713735117327899052083017542173110198121502775136551421250421830800012924513871846892614710364620360822125615119448930457510936351936997378846846672933094736949986117877234380123455651740629874951103071618432561343751540622822994413056733758390340657286975951707149547062546204848868232621096792602698142097834058674608497669597357149277194487381005304449670746631475654854962650864224057549522346759369474043787607390942806103153563289525367813606409278505160725498917807946407627730881715657943963707571485928564050905125945773708209171875978203056448398557228744890552349554478448673736587278589218920984249091767109454437866622866855243294704482428478402735069120802410756679903277047245905268793077611405764779869381475752704191393427770931202739620520924683739527643527554735164925730976736397061026388667827439555174014529276694186815538155283137563555207754715555411228975297987596951830079618051705567610040981684670285985870825769824297210994708285009557716767162881542125949886757252010777184937893861744462365729632076139965313207653009778309750321599435566903567052440169735156116927005668259009449685473217633175237101899005749528608348303069806749970571341454827017574197500236424463105486886688557836271524516093240737666068829393651183971435302139078448334713367428829327502542144947740553643662798848656407051227336429811715097427089392561240256656552019846103226217605987190369980717984221110672286583022394864861089858541731675448197637777885839934787182781622632792768299298714451825842884519044674995658070453267613170372879678413700446615340561543790160530001878320849822123414167127023059850299981082505056314981899224178149027250937276100803071382290024970925674954406866037476804333742258724595420668539395230193814434254574108867477675440178584144780263930451371032317115766868898892083488386949205063317193857846549407805342181619890559709958673372365978756824746036920313424862239202758475916567465670304397241398656677051957396303810082539020716482450306044560449102506579857026981506807602038396622462981471324585951376796772869388775591058773889120433736448611046003362062035898949015654889591017120776299878657201558053104707761097541242802000333952412202627962347706535325382820179709701388325396956670377308370102383708712545539469148714584265009767792762323031995368146443823292069947074134266749532532842030914787450213990640755458173531491262930310556393555922314655700470300583138262615533266511920480224407262675261019927006859917524958905642195155354971985399583054392462757412676149633963322466232025478180040866476597569164119659826347000499827762698565672973166102858791587009574128209294476248205302529663217165558665972202147706982904917926184839352756328901691870943143495405132212262469239606638196822312345088271165821597947489816978537607749548005050232297279193868482642627013782737031610282955291760305334356857656679952734775096508533630607256170810131068532238813441345334882918693492141480629315571835560015392312324585438762048981208842336777840380753697429548261046720026117302302536075544942485032548568684508022451901478787711346791529950303837392940852606622764454239652944852679962030686365110588016148731158851996793255391656478961022901094482899309895458080593117810947441887364395546157229759134491004685055338244420371317554909945231844955570598969607179435017104604834528266221342190924442132848795749948861326033507623395800296548977057137842912581081105011626047813468609433890751306225754309981000386813659825095707850145975723003197893198828926267530722763074113900737096408216854129122247434935706602232332019755466370475213804314191952503504040580884156447492963047602075277907368949474592836101292136292284568229914752595144519939485425395870367676118491137847962417881920573780790859788656046148573211928098301844687842888968202578729363389345548844909879664726118578841070151535104441879557436655793067238805583026903330977173966794398758632538394579551561186816845546611528167106600154125275368988657073538995116027370090943089229127754233063811682298450949264926340571761639285844043754987412343551214212665587988901872858564292083519816741769480761512836071661192599530114867429794368461193754008409061259740577693799267146467437052899508719515704317472768657126759019174601918373630790485864586765487231970494016106552217020170841447230574212275364882291002920849883512923398470037276606438938299640830622624936732583405323926110972724532373311312562536691137820943155180249630734552577149141604843692926031452027329101657113111035993875207591752584210400450827481112150170733353216841553332371921403003290252378609797165326033145319890397479242858857232213992277949606636449683168449420021658406889911384467818697882758094897797624278906961600914439855663284881867557223268888952099728898204915088673546653061454219998014001377138023584494828585256687253192261914886153095783020259397153446421841804273319274117133161078149076099045323232452956895238325526883388394329126520687313816514079520933574170730527566482139725727290979230206825111793521050452698509619848163259953490804967232728298447206381496509530416047265831540125038606288928618607866601128669373798738410999240411738513114188753535714509556659768920706142376599428025339748139529935596031388541981297463176852034577565274192109057157262802909035225853094547444444372577742678320721779223929431694632101154169343306586714437507564976895063157354628890854588792240324609553939301343729673483552786504379631918285779316994093952746672151321392799682628891626034735909319906463978796339986074725804745334197814542723739058119202586577691241275850086602848673943915327134177632422753156562989705312746062294898801877593514203226422993079067611280815139047279529473661900986593781214006326986490278716901368190505348725349767647649152598292773126282416085966662805337303454316208792020219525683055142779794635078113794220445256377627400362031889008616598186884468751729136555622422324317405921757773839039837946008390803846280733807732105271450717612204179923250248136795184979902944885272714874042811458752111413500646608038374365941850773110183249529140102299277716831189716174437431236290196828225725227055986021594182413070526252451239301584601757695152388754604759328573131384111095716308286995201817301394575773500516399644434617260129231544587555758536787735521060555413786502445480925621755854914959449208159374856160703986644286385488514788261403844419285540981934399391232867728008947594664110565966033769638481637583140050782412586831321796999462303951664531787236741396260596861330928386480830849162792706193567869329192164697456471894668468774578563542748401620100848053604436435894452063917688894986603200932560193853097288971998344128578670895276403768540686307378035895493822289841414648298068513505366874531797010829166105082279941554639026256933618336930647346819351469463358431846733211908874622795106799229065939220117919589948154285556413894964793613812940343916863749478048533649838626438056162470011258781607034161449515445437729128251266408719537306417312688062646539948975761545096850375433699668495547383668181608778530988208789941725383697906624945521480444707229979743511857573542673455590308685970646127542418866439913797112249183720199952298730294626167704080056822702165483982837428934235403264218449060901530953813954454734477761937332273637716991175418179864615954997409780310499287735666337680015830774162375974823125125157897971476655431107337942743237709613882678550236588167420343568974052862966562181804541656476852211834091234276651442952126704466080955350663375990274427971916034692927740939368473012940451443160625210348918671684749574201125210020865598786411741653782963316995106755591666625164665818710238897308476021745027091909595825236051676760524239705177008549771292172057010951765222725254918394383744089968483699492233614702486915387421875221869282525032900149918360660236863680273756927845102192871771936425147210762733427394521493002904646870032025150879161447368162837447908303109256396929332215318339427520343880594933171417114848469715655056755480232378787964798250309071816613987198756199345990848821993361567300696816562788506056164753255100662665965398105411633588019840934330047473225506468444839790244720979981441154990223564052597682381035214444162361684922031467628040178102414406606656503053014838688586248668825200055035791844956646312998338797168254890758866187344829029981827356887367551238171682020543126635711213635277567159122058230964018574471687177007096484397498366180497284649385181379832988730103667223257670893378266968813495404111329988829854517538694302022112849757822109666917373699268059808349667543437778725097378303672521180866463019384163826108875215126945873876673544420424650475541039910761344775484050746037953743688590167328516437760581956663515594509958207709153182293753310030245943363489226177176912988591294042480313095829251117831851737431826767340947925181995426306615543907531565707240955448839990772530350090372514851999629330392071761307972508933274172350279030172769991383228514188915200454468078097046361934616633571601780444954192274344528475763478833545364324957494208905072080775969805313366261023864292419902925616380534413016937025589458607035874993849190047019142464151589081890379309839402451431782366152192499823561254216766515504377718441365061548849239365964256439208759927879698502364374105359243531375912490245567888622091350863638805102625567049427083939865758312041221586983788872668440880795517971897073745974562999832122856213512828770676489543833757204295113876342810283468238747768370773451098853726006456898056879382071827210935730839190597304045547783059385369684775687789077511064426483953341286758327752480288160076398278055875134558639400689547231590572421362960419176083707450840994882419902684266063422193511687763529915770262911679622550558269859332573716381479230065727773527427155479319997253094187487048618531667340926297729755095078838524462065115260756125356944154911270033653034249586558650474558781746974265956633756891581985153932099724241827299188993648016855602244149410111200003066372214782433252376815640855890006149376498932967796969569193345414928397415922304193178207186291987914563612532131392368341500853497899654770215838077795821663384485583413082086649760854966962165622394518075863752202670856060904061699200740920252904057680386804102193694282537808301939437772589664908869524944500637892271332684710345418053741043724881067042669436372787685170083306470490676364024985865742721138148616843630093195383502246944671624817791389400755079783571981737319268258491989600524947225697276732376193024106071958759492283204545114868122901611721524060598474620745990652463932938958418099086679432273454278422926991207939973942190814400442121825255614174374208623201120352586795522425352509709520928380925607334129467167545970866592878441282157253354996074772299596183560083555605119050682984297258366209053472093091541812823977716516568515762615109188626295095825206154071836951202645598181704445039031958950898754827085551546499270677817950524074084428218526056201524623307461917477037333845221290090419838899238257579782850141439457136206818711725354123588945675159550442531230078990321938232741495904519337472949631414999843425684904172333432331935290324110372528339412684079576874276171635915864604323633359221136114060441899326958342640540118544275836839476271807965965486587083940165049054475860380417261609291463864174417055057789604677969536373411675085450201643093293365851755063756608900330003742271226136584784704053984690325870370524145980346281592543903029552517907350699255097882979527472390206799963261971314135796849042110135533057541272770837139759024919328242838751998642180122164518675042761157053680004208378508347542372248456179329135594129325325761629785999317098704302000095645801848000036757822462852533226726462568604167002321397163379813989079356915801234997383916880575240755359588154424924736785214933531269205568406088378204177338643721130979446497839195498285367525792072373227334130863215838024424611514725223727452951616660486628978864170590258786565682661242353657144260130085089514695915991439524404903693645813243145376946570336817219151885203596680192736118318191428478312455901741347036076678119166118556421718573163758406813040517495236228843671437566033327447771373431307567558610579648596137191082794814386666507471964580412034253116790185424313209624284468567967064353365767604711826362385593634412279653576034101341245851952313614130086659756574280395029465986515911775548463761333249768396580491627565919165061300963330397295179195567751025453904688184045494628680282831776362797106679184226427054056166998727472245439774470117832096362254342868729819098287959808341289669077303065047482216203098700598375413154639665079626827427097378070801245273159661676441060284917334183815626116981151860479230982013445229915379900313715184543552954494723757817386692682102219111932887688472431910102743008697289914589563298841647475191705247426679769380717358841015497878107080429625485371658135447023281736884333036223071478448576256510137034581952122852619746034886296889854918563502226700064717659333096850817558337762866650074847215102645630465463046400793136652431538567375867107720537195286290254885181561604609189249468594753515756558737699492682481470800005651486705556285467257793850180841604568809258677516115062468672451660542989010573027216868940181085727897716336242377790032426712771021628612170712683927658462294191896038477491450250025539098897001078975580042265658823624560599259173572366847169311965387557119800043259781921746473883071712673574282963793400391879516103453570471518586852459557684446863748074701711416680860822905862870954321219007431855754378139253673865427420736075613529524115407942570894059520284286022661445983672034750236760199301584455073794182982502703840314750725589847857119443354709066893309032958875002691139041683372140592087474529479267470440503961671976701887331820033493466729391221132611561373760814888635462612650824455290077067563873946242338379170039227290050031756330509078025154770124826434419984299992101606740384506894217866929301149883113229082899966484908291185433022224479642798541087908345694730441413980280512861662661602706771470213841035652955220987078458460936062285380289141130340018641762526308882407263570799149148439204114096197003939794566054686008669281051427036318028755038689626611724136775783643090680350648056470208176209178857714889005645491474210415937720929964380890836821627757310818797461601591405412651570940698807202620020244893843019253451678222371407100611384460617733265756865795201477341407336514939337203596488051476060007824592582308680699504178436622318110242080607363155366490891378183119092230028797873756538625395202797546190782458497115137452743044145395344576282637542533463301130486084364256563050421806673755874411639244241497951091507164688125836515839900839178554993506629418364040383382720380855251091944371565624293101594909495610100783020658877583466836174846055675411283487576456328710597329249111108272286485765553945235828494255069938443679442088234876021546344920517127216542412899352811992200527960351227881391463878659704208108524241704996067816872538664314220662439924950877694460815637500846271867060091887931836444499161826811417611763792056526527486466263583779342699046064114089811930668405546646212030165968405345403434662783617308714481960791201303446926835042838651046027127980557832460232373405026838607452082828867461597418598032395765584525774172614243002275415443308558739276825101686628886471452956353505353955370384715925751484809458073554349388382729098654924349715649021503262751336714296033465336085864510139075380866310292157083943724435693779722035869814335149492996625396064877204382528555135264102216686823566182891942687475791845705530726978088606769586923715172931236841331851161034685019920355812129627314024620288739972505089471439110462836754063565506743483541451951778513224553098421133648303825362599104682269674201898351407252527548095113719404090295035039447123977322922229806634086923335799575732446102514221272493323322049198715014060788350166353256707063165935475992913774402319719806700572422968879242335108596595394565663334498955051432655213794191400550031429833364887178954256234573732667046440492929974967203752516430334243003036443531644405542313916363875129451353646530554924884139398928350359167502417027311326924054284986326561849449640827042956944399542132924400545022984740723907915232654826917710358661971247841892895795969453074157551313965500321166950317105147569305756758001127964499883657608231349134934949157169127120450984524493843047697787558668352229212908846308299595270019845736750792905497271030185095005304586064598479813109959806458420908227859565141582338193932621405444228352702211593426627886746943072955103985946488509750746757253105414123127007294468250703008382111965385275001388401407443710740122794104909676898917112015893869760066714509896035015741713854599157081747058009045385525901315421553075557190939237985199181484245471321999282764567685806202926437001080475765788150264646607998134834529212399011245820308072651060959296255735689421068671218895625527606533690166523353003349117212187124003578772812886867023009110424707911003297029860727101383496327165761578586683645020007655924213144179633766576310227280099127760978032820661172423197671729355489698977473555900158063553688553419207870826140629137182314438635710970858402254360792731240438653068579798672923764054490472068488268519172851720699405427729346704494105335681092091053290250295026410085377193156406929103023579222626951826454998134119182364421190273442904090969488922096777875580720130024372659356741401894642592628231708613523183911907254384097553970955388465162885090868941571256249643382765035874775596597026290448105805254462206167177519365737973336053561181771672775747235649911732018135115337407245210053529377943265919345577255867133562161370308296434514698793483782541562075496685264230468458384799933880189305483465740318827367766188504002389416816543767505434609822991241812477480087309572634592991753084067433153632070551755373618912442116381391944559585744984774758736647541483490054704740856823229270017732305163665303931287306139440698996528680684234917372354793749148336500991058853965251825279248595415775295452730257117900938294347658897085458768503181427757242043882988957380457657360464201078933740938927471828033857557775032234697724906537641404329391759296008414513288844837094032484903743855530414914690411285945581364097593566378090741751192411339359149316005431324637430969786931105920223194967209216899415692738255977103593427084150773131868236065056616760131800000705605370601978203695549975511109478595883045099382657687522451253803517644598898855576559930709206896133319034439167182389936828251897887000998403315121356395327137045398661660699112226108740515892260675896346350633585523438279560580197236531696923503955859830277732778084693557461047237661860213524396899798709198376745269021931322212666938290229306385782947982711879228843595545818219857148168678978178302561995482736641477402920948007472179899762050685981276316442841951273427278127787482986273337077010658651496673751188078704889835119885513918509952098564846195497157222548549050982122980268469557371981689825360245057421826793222935757989722795241210167475899821671359586702433712313081738207670878266454273936392651061161873122889449231519614166339511310413554686580846051873529115949248232003593710131461301647424966086390688792830354061728091804094723575130893945739436684177794534057614483413971545398991418822314397030456547147266361736171783067320724965961307399049803629781047703574839359992424790282568408554607383103522294898135175886220640732065737079373933678833052273330271668398695679913631577000187202534617289689583823954768894737862637125723742717680968022128580346846889203054764964490377866372349408743975648630024847311901868977460705633743972863884381888407961012793968850112384209637481192178668513330499277660284443265677040789415676616530022580513670380599914054059942355927420094842452719759953099069775254620878297118933339726874321951010520060427288269717110294306731085347781813546325017942468594917462958923348049337472241100151203570755806728112059548989877424100428974425073282142955208264700329413754414247951634827132102937373455238514895298399198670323703042884152745970910368350836530291905450777052410812302856971371824297048867040687448912088281839224418736112905734241118185442100856211130203724970835301126678204184364521863947964774954100974372807746956636369066628245233940333166731365495577926889559615881149287991918354844767176636772743245698132274617749328872690900782921313541139913973835973946211912521497324615514328122672727698775515747365546995993357491544849146085041196585187752064307216818964482633827561294797698957412438864298677175185703571355040790337824799557224778171343372431517534259251507555443705181170708627277949022912427843259216728090011750310849307189252693015345836053505826014768891857597921743554586788133075671460460581076029581028904584410141349701675483249001688935500207703774302227079034146600782683019098336416793212328666912131826939831726991717097710710287460274456186140018123196231275384591643788501699763589259260035547029370152083213083911064028607514177555296990215510569216940383962326287921939034141360108362707985059781696197141273845623519858742115791510387724204447448081331930548754143653701978784584640419511608976009569726618915698009668910856041615520093319456015441912396279584964675631752242861935924745153294194872961478825189898771968083979620386406353939104310361660164173025943965307262353786732538468152771541983850206123370631364708366627741097726187037762434555711255918024583404426297443834285299907274526075382401314482015568425223348182823651758637015386897228526254034238118304023094407379548452966231197198673997060942991946544063177377826419388221588460819437254371842375102757030897869785443800010572833896178702256796445255738598818771919237683590871539043679101534670941288847752816045073218060783854072993302985632682108246525059274846404112701901776404917887018218789238220523436056977146136051226695530297862361636239222629948765856623795200884433560281508545186281686800337721561571359977736171616575449463104246516053083298203412109045400791157948779119565779070671826086184327816253831649385288997962770615243237208025970883024811431527098003973210424198589803090238735826086080545822843259469250852988727851838434478686277508705039579037789794498211424899147368602641045393139230755632892287290398843256486788729014984099698262249973528365884486538723534176896149545076777492893341804925579136967662927839387488475270634591239588406643858691401855512010423429699085095860588030801819564817221700141254986487124730898298971609264186048495640887382904931118873119258884093419914473749579292081863692962721727409616322108899073859718126381729675238580519076829691457917561064475760970627010850758880523163631471513154211469294473758268727269603502354615513837961515458542692248210282040759411059392321171340511465581035118511727272495663423268729543301074947933406947140332697965011074708138897902207035816726733796369761973949862145581823616094873070399336187210278862980379173854048881257305361588086672700056695380859158540422436251677832034047698720080961724391680012923066410395324211092509302071738665885034741915971628928176419442416432995420953723598243442714232177764185828915102636545485451769152364157702847464848006150939481320438814262872088772274546138603340338200908441561507564092981854394037612646498367832786318770923296205233386693144108477432976200329317759844791664642785260660537935217368659562705433381300097023079776753893508659861271925196912095723372618073957344158728817568141355347899595825156271574436757210338597981709241722074500740445414663803278940389490101453421338641381309309745853869627640428882447137391805526247219636680368792882414991353192937016027013673126964688213149862884077178457752018811264610137787066746936790282753810857602138401967505409832596521635306573991877849396209590688556462935200616533756727693045221001275571480340950458137412179225769590796204418998629255710884326374109396403254173745887157155932311862858072420557828282794500271921704072459685960410914962431056245554524390828795227484901392027239906136660940294443403277607158013209312047478215848804279858489689768945549713437354558173037173489109562129505319473137767569780696904445721738866279086350604979260372051123329159729917876117007504953537676265635394655473808490524786939849591346164296870123135833755190656662196380583194276382588366430845396250421432773412821114870613478285412337314212087443903407893820795854269198290352934075565546905695105973473539055991257049694409406904299192097026970082398024022417666058299865610028670724962884547442262064839854878046551774526768647130596448132659944325424850310632049813272082994766360586431705052390437859588548504175332615165288316637619685071445388441986412015992651181816282989547645770361843788200329922077120830258191502467371099003062337724104641949202292531958251601201653223421670339871760314229570242093132382812920267687807440342216774627076346190631114551666558145042233745143910456889616399007403527996539384193151826133261804503381505415410330021524608084636016500410711494689473201499657532935508482036174322994479222468825592845561538773766724027601328204614332036524661039711301408868833213432540171779970039245501831324141653887699363154754876601555576444784884810372757793028752536019378291420900816917154010379483959364477305522482980799772645870171766114320842748070112966153836446177562848125773340635691709028549227350157232397234748921104791816522948176167807116462778289673139686552787223540133186133799522245739960598633137114507288899666431026536997200447516083401678886670165308664002650164673797004908814156659948707121445471079484430972660446833686635732865380228853381852047723218506774576123888641219282665922759011268193020814136767441199570729162451568368849776556240377675013527964657529126999940642645907233609681171795904812756753049348921350350052484597615159977693506175006898767846409155643355694563109184302817244849926631796758714505633302405280332513495342573277144749820026190625537117682373837187783904452964563061078617698990794734147496853697817270294368334483544106358290460020570313424767371445656746199274875007031519972872471126948640688153176546390557536103413419339202019154526468520514767788637570839638438224649067520683070608090423311224290562047629704198548929494774095339515560938820933989904280285818025109560819401710090494038005813549744288715171182220416008706888855878263494612116858334042581508455711049635962711786735013445976628914034329871781231819223625361016524709194211357758459536237806152233982518980469687031287724932368051620467661610836498802209412288007975564948481922459373838253615947935486957640013905634430546290461414038905039317059549307809640473929502598679457203888590097241166445037589102696009758383119702870458860203707592531521043870302250793419156430894440734349773433366059233689843318464578465367630890330858089276926459398288849969329438860554575266765899754832661818004265957967194669697836675286293124946368872885411169417144756977937399875162830276633644829585790945604549469403828974591118935898608360129203786837245639803040876768710229463226043983603615771138578971321171008425028605807743761475232446196495631701331784018276200346480828542835577345782658365298605393687842910777086023204461114373883530820978315907850027928795286477238689802709656029159466475634265989636711356448576742633357848263028215153596032127617927393306973722284468857450174300170702344567065642517574406255595832248696923894927953855306332605480451085434955989199124231370838143865344174481364808871804222086954343409153498032399376608745845675633572925733387909410588815145481966039634465691291999407087136367126348778447964048903976170000051570404364447787700586140338689811131016550370879484470049449709609074978012427147281646811054465156999734401588379529834865152645203555695569983807099756604107004396280689581647691989945877051003736992438332931998422830627994375593273167568384946208924336670600557241948886879701520138345041402777189233125637303734571347879047069387455179462616916635575648226777136228640733488082297606953365848835368343521805718595640804841656755407714854359159324752091373140591051764148344876743634312737708684014299575420162646565690749254536965210190717576584264072462465730218098697945448210256653034996011952444901496408999690467081516610771750501609375056955092341956862381870008794970438235302045935609470721282515968272493597695343967086830694141535565129842295985496170802699326107718163932035451107848711005387248184335782514018615517327098375829985643093540523278426953813757573533042427503883775957671947992654598591441331619282191671323708120795364440207367788166232026117387002969036613678860248119721354577188379685424858325321332001164122316954446931801242724443306392801107495943651829414898721648335299394251860481386339113518690258791165525607115115554309413980406626983016882662329938666771912137366743192781647913417970156820047951559252373849494752216214516501879737272895865546375759070965311439146400198751363291836257934506028245366021505023101246777695210315438029200608243841085615149183485214704863182377655975489901076939717958904394842176277796863848931685883251120533665624405686286579790158925198700205374644967666660763256755019640029773561460109986117912262041816214412010683943659732200809369973367834337401581901614473670179386863688811227038429099902928261435938341252014367987886427291046755962147801899647375217566450501316431402635976543482433570460928581698781979029712161396241746953804158336832799560817756601948766235595183478177800382250881237772279298583015140864881230988943931858360347743814780050549516617786710905926946325800540382344719321440598111275699185921890031807924052558369718769348530358657046895105574565358200147252678643300678657254687704023659313174800935849294222955552580295908268852991992789783612158980033563397877827530365722013548251542933410108756307034303373747069357113013104700618410384825313800821421877663369250089061724727423783722943861781981274993644273225288343298004029557096597840659501750880803474063154834055317634253781620861711968599791239513013720727209875670295059016288057660240033720301264820982871097361168720559784999130000639309956707779195004661635177351006219860536123988845847518303107235363636733659320019750971854135981166981822043756082725631441665169783714861206611740598842167425299677380864255143610755763894172067803767181656777514707532095413866578103224194780437285095318982684102037185684639558580904959900865327697344612454895337723453982861019168358225038807637329983967491875992586637342250041176694036584722475594798053992301901357561310978878146464466844234446094014195880581998294102550671354140051579357963772164682420102652624414407321213695485522980666908176244051263545257060554257087074680111979717808099423658404375977306818911826997440162524725948056323174246795359109210396603164401789468497880261376669108368073997756864188592038757264174201120540255432175956240038276405631155270494006835122307839617115456553777736012754296383573797867144056230797059069216288019403874887317841302501814462223620671728787521165316933964326041913856866576410194105676045209950159715108082757954423712911610384651812838254301371415033641276831478068971716527536330382043861244209942705858403468207463147706541635063272180943512652109309009663701995101080901007525853769196334337823715473933052525137341723938372435525936163592086689854350106517078408533696048268214175260405549073753041961587764604938309096888446457358214333211146303478083047515026131560579728329903454509776367481674548838569443974939992788838783432408963350543620223727482672866907661459408748465830598750800086429094761479338323353934657103258391667009744796773235598214552752123658992087759825022903525634908812660110801024872345311450867660093559018065430217230662372110151532438170160225372069074559872099354740786433032437796597513493810960970057801144174602620630680122374260182250789298132997459358995854223656271044235389634666443642262804046824369281618153328708822575545063108280309894237811840052452205956805971129495737993610511982754959883789533475314032014141130825506983002085463789926805952169194767894197519563374776579916427635949431673211300428840268579856221891329671607155533148033097298313597570269843143025939044084654445792223311588676884827603330533576205729626056115326906250492756967081909876219507693375734704344009747110681071485017799359310922538450933666746794335265384385722380778608791296740839310648947651412933122952428104424478336827299216269268091886082339368810992151304418079038041063185554564803778726364662817983463919497614749123009098568872386735099968296514544677835906711533834040228308921264637655112557512151531715674419898896774097110882235845019661468489637708401872349958622652055922169281109446546980868347886592861314312262397322536616584368022675219805144265417478418209197860720774398615944294953612359912048687007044322102487065325298237073032152485742350743189967007067275944535793378131514430715605397967824147880966803430404656488913068130193107452358213226238761344965536570807274185391041818612286292339157583892425704493207314215453982945219780198380129480916725661613084369189782391148759905933639826390891143012809347676979527460437860116977790544252699932531979538222459256218077993834005306508927441078221222865052827908424505406266411911648531014179309155143205422945250748211785154517217313380906218203941307160521282720868566835336816040409689953977632239206302839245789083984495167288670950988540750856113014309290336620728030811396605500611002706374466543173601714662326369494728880902124111253725425314943417096484513960164284817599499761141760635638657215798014798493113194988296823493476102351761437903211790504900388870956713180549871879145877174613949234019275928218447884470351332134339900452788655830437854940106333104522135141424821072449511084378851514481551170888737514069648615597721936947296036304273909855666995667093086165738816295852750185434244407316999659758003811107477179501013493423427979838691404869947392187689106878829259669049924111558012806232501231323113501219239374838348016829795616028797852209753390978589128972885314986757302468146035406928409807011715958287477271543652990131626454862739373300083093149662340479093579581755573249827470362032865572791145165737170306821287582213881614668728126388112850675016255794163041220518812122424561818165171698812655133687237767780064088479057324551086812426578287550341057955898054630610794981266924744119372964295137289312538731071661160049692759212302655771331858389348657097500666333013851964563319151670220599067907357902229875002855324849500360902298921295479618872784126913703410314720793611374300794441915628978083326701402927767095991668005327404990223235645405658714236812013593165738210540743833184550685966935316819786790196070061844985299512234040950955878573180426474585181523840217824743359853268528164766422700871148863947800722929925502068566805530021221324770647299438799626199861782192986664475437683625368054454958331220393181571441654903926865416977764794467350159066094425641128898609703192973309498758060549476744041940548900453855232943616424081176555579153579961853626658283044230402254500511270416219428845043306608164970517876355217177783769632547793185477516939154481228194502907742349606336637146778890781877187367831946531032952368419928635513244552494574647979997709899544825660068680078043105525102872332629752916126298587628145573133628064847218590041691992590194135750055699260550412164291162262678830743090611614692167482205895344892659076639102035314495953990893417280622103646140809943072546982264826868754806752363626754653881777845445764605441823716451725778191263366910478206176969882250253803005679076014656277911993013019715431208685227296845302411474434503917943588542095790852324637355911645312050395715441680066473820698788291324035334934988343468988162988895459230207379727259052853154120923700608921108959522805083418783711024038798731993256509051072985330920557405713440000678590794452395438544051946951265966001968222945794224180949547239748075727477472693593741660198514785376977593128354275140826308722894842147936729500213823883902912768056233259806401172442576582876113120334975578911855155542943809534937936390049337954842621487155742576408605527085280608276670942079776552418002531748619455175137038084236352102602776531952519303057949044411817444444619535346730608599098308552425127509611480476136216994546382018792140443965196433347383484258176992478018658561921688646965371109583847115382645619322637081434061670804156338859760156874301992567711687542980589696690098331901861553980440161029539194098232241319244689433393369122700467271570358183110817474254899995138367961466942834144367506498363201972527107341216904248884230963270282815698227369279812468987973617110436802865579186065414718753910538479232293115162789403809881147043552575562183597270252947602862796376722814519687634509855754239622849063992402624781516824173254596076589152435857828482687984035524249635400379812939907687737003741545050802456406534801000755257692268271217550291529473964948422917986089088824712317030218253048553869887701511201013506164837201191124479101018084062643044640902645771323458873965191995641841536658459028311818804953073833433333574024881984390413077743952146401492995179933313428190200806613834786451727670519443783039091218838896647198191017537925242608097919952549569904270137572511487202747684135130373020090462258046801807250815182106424126366121062377164554631897693675056454139947101777430266704224461402309920205493143310139683365152779000442911739341987808715545015195249462050579128746669041830989045087727749278652548923332256610957771193881760311038411823362494433053805818835078265775119075400252280209641403507551291538293077239799097395740367319811901683211127480492278726970665104116068094995780556002680886693508717455963230772390583250334061686351902546901664810455595313273767114527395798728361111586129624812001980330963591314385318389455007502819418519828398525919390482268311709101336638617862278646129545502446997708561500679854768323245180587459094628176965620268392717502079356543548447271806233219074678077595525610551601460615322046476203723473907954795252517109778221343434282718521584610378606909107639138566009884159396789471627215910888621529210005328327021866826023898607636353011399744175036434763048072182191987269008479290591398987507162209993644758503428093411768097887400401462537489607477344021390254351801915611377191174813150639010243193032278634883632495237740249198334748301122380148830733810459596543514180340313875312076580102707531177267046743936253135361961510826807106084052135344097998409950996334977505109832628540688042922095237467669334616922764318617924545313035409384922841948145086668085561593823256390677622756577334423914539404954801783335300065777366483556181092254217327920841702227225277414080264804907966036314179727285688205077059561194684158524474221003184024402506287039357228983026600489544720601285727926427071179488795485124723551349371134441284548266373024841359095405646034913856719829668920563338337472775487786665191357292917821581869470885079408152066684294723969849999018189220894864140124963558266451033236636918290944690331973546916118877901291363638013199908382058145509073222204251065419354506378992846595945663538208757714325034441537880032718659258871777474187324509904755091738877721093889351360998279643811981287942752391740269147421025868708894049594604656219704046155607359409589229952026737410324380177168040685901166914760402361441516234317750214214381424355229038303522448817333771705342432996490159413242332109255900576163625947170354248631527565965189502664954538210765146948852954009595569209173542684880555642829588564008416438401935348513914589810233023813233137369701528115654021808269015410713962705041603129686711955247634414923532166039792048549212441716257387073180813941435434899522348669506338712882529121037916228969907065163678097052923459614893856643631075447518276463066195036452463299730896093443894424086530067450183034895143305084977835721926349992320947147295788775027870875426811011945820480548591436890899955423830289907934219635477658445864704252931591798113202114718830623794516269279871286438197779671165968838226791018355502393427023647531978330124089004575725522803005716064017994308400560154595903306459201845672871920798680118537785124199443853837648734444699168890294726892622320863509874210811035489574258900739932589218386510455600843687524663652841526753466860984065953214455191342861951744302877592283877302901986902137692799807270723586540435496059266617782494023286741330801669608212378585377076172952346343943364979274106848420162877196197154009182872935206796820851531246719664301142368840301552176769458578668762457815436994897158685756935516865656890146802724407803994623803957548451430021461246623659852932430147757725930711401183158295279346244526158549935372993489516933879723071877239278983456371525090192702105848911262510749006297542086025520579297847397888264738189588475551447899514561434796192316640293413976283384775386879636903437058256674923512913593864759441305601201282266781581286394432280579845936282891711638169863770718837436359476148585552974640225701350416319541457804824904742745482158847314594457606782262385710102424944687285263390320811582692901689134218941552946384531324052600052707236452194181027429928854798055280498169486685398463195099215553490588956196943488385799958412275993921165941210849515016282259288280592445550409777147813098064967174249986869217204209340038487558924984073679226760071330252463227000173006971206058442632718154231891010920213136832571289391508104136732932249571672044268347734532476522071566650444667224602047430650749402124296407971528254219109337733044253744501771883712090865045834313895988532471222030629344019543993489899092789323802687818299567395726110855154435091076374699582020821016019331483619118403265028971411111091182073410118308171236605595125638170451381383115187424659983666481877464213941583161362778455947348071148242177898980132175457046239145318339275019228893832384482984320344210921998558819916881238496214297821164866534408866279666975736209170105867749409914346955766705679257156265510427900803037690598791003624198511951648718157619079709238509829505767446186432049007935111272934105137022424466762579233146997003883481831915069545679773456472436564627507812174484786751988733047617244620856101081558415235611372933120695903497188897339374579993989350773036739592765776114241238777029325759258320502031058546995767729369629171827644058243131377924782493673359993294342765639516117128570582844356707361486670970315557189095215751210631986290937908169202275589343801662122807735025024206489962276900539414316622898143991085278016859584745464089489781157931010580038037772743077149952621128404864835132811964280623648839391586461485487674095223581553892003190969617315119542653349428600785361810057168378846398469827105690456164546085730760198753099157190485919824223838127570666898536153491705843678407040778456284700546064000549337361473743340301086960026204477831598752773840774575209674867177912454604540224407127184473565638680027510958707182170624620739594575256961983742447208796659095138830475531023115339640043982857891296955184886638800557292198635778371772433453400847894074426016541960629025173349309624831254584695012184931289534205526695529438404554350965640871086707754954225184777923799029346930383251109670939128135140501066379837697432835240890994213953293772601462990378393489546833741033216878709791013652767944206205589599989098636083259610494399440112047214581996583812143903458126817481013834225588933139306108809768125101751235238082768601877967353218991567532716268938940430126483363136030106165044919241560835206837843334762373747585853569310203794895089611578551049366949163236980932170518427750912753888549822490148266826562970990037988980085216214075437475766788655798776857668452616574993559413185224133479161528794058817132114776316931522604574284216485592400607875239338442161696790665331376608665927198566831062460741232920404446883257858472612438384765665580348904063170977919373768411342273521495465803289871159352716520295733211402365245147848656332758268182867671627137930994645083587429354328370176367734036276883288715706571703616012833199458386725004379035566710781029069800587688102023414479181810553362090222526627173898396154634954735106982130597854455153211872984225062413472185893481737197954985418022279927908071240198838283296136029374815679950397779194295518972111782762565914965607495477492153153607317220460110280255565219722437772193860353748465358418118523681402890695451443661915092446309452683489165861692200809837656585458192016865878751900659771631378306977002188545072663483674798748383097106380023464895170380185635977745237699801563629490883439568520631011533325087991442075141799615365997335285735061310185100972736888777276133928993628999070780154746635583985590580794159137608089537380041564838246727157124726337138944872100075087811743849659419784153619183385440738591849403196042684760371081065962426450773540304982871283431645995056469870564677596072423342393885716064446399729019114965924798793646955165163773535616767652611732046680689032323623260686642535638403349290918674303678747233559778732655695191121272352693414272492900976326812077615595331410060739594999638371727496191201763117226659433672790708681634951275305175186379402294705208022433228590989365668368417305045478958065469074748957114961866762662799450843483956775018172164311842989268861934170226749275086599675240729298425599890062230894344122136116045248521010699212661955114039879916459135857138818164983331304518552699267096454166484055967894604787797586053144435700646888638052857945705996090048266423984830680902876258025636731145529567218608772276445420188129687882287809033226412143724128936735530616490883511818438926301187934807645804266680829850067704175693801542827411494414678388163912713812637972681956576742946059106279441089180729052191506593511489520512091967085876169683493609853935283216557646079259061006073457068699001378897103357338125146724001049399604874062442382325215762231899044038525441998598417334035481641889599008089363256821788248707748543295496226549114889365375720993849313846824223953786620004574179282939421709138766592318175228559488468928518975024585285049731789095765158981133547777839640766373821825774381722347225332603976966069634634980592121343057189541535238620421935427876652811597586038080062673109355055219050029233605186333642128576633369267719575798938751499603385965777551468267112396614297560483145678846482617063131431459697857251234092089049098659957565149113797773236374139683170639432738662620072390210244651223189568972955784533517769366800883450291151276748404957928910729813912428269966402518105352068237621160243100998092490600420449033505790663380363394277109297643223780298557574463561768568897742509297337313105877758952113402539115623163434123822294315472647058872683324500897505437213940406204679627269747106457905674357600678714090550178892680006304735390177072556072057686634433061457318887817264341411653684248237426077178599997122573836028146596984775735034689736986581523409102118605151897184893451672851234894206487386662657539633366202335178162122760290952229585946662417343902600519306525428042263281199751180003775640761536440447138097572952401362919264937795574214954631481510819863898945441796736465108838712755849478711478280075752686637069538863890123294071952514320253660003010052173780161844809973909743741369778161155285749504753000527771243587249536941286697079452630648227856718108584398279395120506941166712781762031184755185933879658797117487657068788336199442838375847644820526866824160778013266053829751631930337792044388868028286328591349121157184238753386032608373019140113618302416512966516102736555000565829578664234406660280886700422507234310170350295769610634962508664881473250956800832664706767224039031810643824608829755445679116281612702116074371974355063570428383646104334496358480123778597744723233218648886872307611987247748419288058287186410316120027609311145953517933417576801245009900862427632075477262298582658584543858538210559928054322808425109807991421457781452227893664330798062170640454634984212415679764383391643955535306922587226102234538564336989959598400161495939827558004401890841470973645826413117085344198438014251874142975044210537946612778901172326394164558019541699123278664342475320977151099591692330293165539103856966541523501291044820839734260831544161147532626542862978812940178258896779472791974786113704489677546186253412102126468892536150317745334719750945224958792859561486544568898528285389460315504430347343343478015464475460239933260720395941351528820189395144727877888039750700684946381311063845353019573395357992722675217897615124263082894617381263683556907299132974251653991606479889154226932887757467621396928905667259182836843776437576269062683164407542538709382475704581555570712316430061728559085168844280834193995466496902815151683704828678137568772383307757599931981152961306734997950692149786274808300297427013592446873501054774153511934238339624139389974503434597411633716168590230085219093737194785620317652934445867627875248174142508565782223901963507505534392627821588420730489100979088746481703494478962560724692855627448295571489174663630488360621639595851553347036771519728094777152964402792717060510103950104499973960439774258722505916969545367528025948393846009809624219032829581825828847576212261487318598965095288089596186306305182180312152794483266486242740538936334583994498908591775401154521066460702971536639683156940598542121452697469066504890088474526275940909691449072672956757466859481492183499903722241324149176104870545604666496255623893995362178686241196183492183897978627819465518530746307851235506858616446755174449128837338617784364691548859168145436797233236873156628081781198240639516231388958211373594618825721336330026491731213586520053373069959997006987473682724178397144998198131798138371992842267637218240916025540019057986512806186536738665611982970190873375196237258887632466880896705918616834238420381069202723999874000242477976063841076088405535221847075269492040139760145767706066059999315833244550238255206201727971662211610201564718346976327719567606702787242842539617800388966547502284305169251955772379434157918427900899834938538355257569811389925934136791144917873564163854961567015997770020280706308868144714885252238490282983939128192084266272464821436989829224355517491636588333188539515941052191146087070551159180788479922926921325053134523617640351401209682855607552292264300715014763338002301433387710471911679247273592697549188056991689228296118293299724057892921439074571774351174351221477494908842964958780439234176907179379133053889143505896769649179472720831021224574914782949405665613847324553730495526247802213129473140359011336895974027363784936950462433978626482558234306769919292235296855765219436665469352747640593750498712716842221549140550106491445884195384733607526589349240961905156203268555796061463263813404924922735815587779478301523462858866776067305960685782409468560249255484009613938580850710682556549054316888611123073652954621806411073538935213180163494377022411581598854944781171654595534465986202418476244378755556284116632850210709154341102323929802878907246973615758341160075627374017261661441897386186756003115569035577206824314895796276265979160548138448023940767956543499959631142186007130000897738616338948393762795810035863845511616027165551734267571928968342562494157698951894387714227754450650499030466582469605507328717797423821129780989349375548680974148306494462298844395799895097453732889899004426050523667555382681596989209376132266650312257448348296236735786498081155615133423625645030831974527344340467821296406930576798788715921757207203008751997598170044453022691854110117262831394572415368842451388907083635408425011645929932492530498294132776665818470626064084109513143604737670084953026325672430800243884421652551690431682928831727553596209020636672384197244669741072362142638434729449255681455603209270630242151881090608161217014366417935650962696347011741392268014462768323697935828072291459884307440040132786965918908084464205141485953309761298746421372149386473148502046240889123644989272016038042811697047647847510652620895961077329964834286045460385578576544834998855749298095859627465933012493600617399285559338483790434275504470519160862011020819818473917342413924364818381158919872614091997010054710322998459439678636756402940613257692507530684562602929698987444676354009359226043673098287008617821484911727071121134429944715823438138847296441484439743061191571974839934391963774869124446296804556046541683147253782146030939885732496677157473227977301259845752732130854730921193549791949835761685717001225284858512725611343215003451399912803602348021890659560983413607171016646526933289310610992718839805410519338284253597878050755998238771808025475902326531464200229096979111809931686110796033810703253036036758780184415954329084255528462851305417488293025408650978276253974145888786926298972270136873923600207262419877171040245155747985897930582583406629969546264131026072293146918129291274148028988868765948529241034846925003476851612264762661100147096631981580357104633923541850061432871673259941315380387347716762783865754517724462787674296069433212044283672641717471232973077592488458482139339501716369835183654080292717634320201814682405272319662724680294292402354956285712543465258211086959957849460904808945529203274921055974417257702967099719909515835235070776663208183148168508041086929663621650447578065923894816826413071419188074980157033181513574686358920105239946906000269923653747175344107762870962696999484528287825078550840063767321368618317013267605914786340809111493026271017011895660784981070860311652891918753226422911858537858959274166494093946035294214688534872075385927996665089607727899227534363318979812407631588568300333394173131394413947817101626009063053242233974979363734307542485917985058732678859893137041528255392555757314827104905708777650000830188155030317172428431095282958694549156833691809565926098519875901062682615433608234846849119245651891634619455709152120616345131617689611019753248056407342703518788644723662250075513443663839188786254114445842533718542253184301519950414449704063273482136279911642089293104305729011553468716813397764180906359129879805893025946336151754125858855772779587263233830838469994760146665568560272810893179330738576669994938920615735569271452539757747166159844100938531100705836061814001795671306577708713134952966420381522610302881460816758868590343474039763443719414675171065139529090770110822615342427335025507587641122273687854898037571294479626714132900537283639343363739597654246699151805107943761261594657328252424887210233455331934906309735918026878225445238977635842241745912207651346534664096306000669795914595746008772639298088082966709226959985141759010139555362386483311897576710324237040341759080556714151800721169350616059475775450999866477094681930471708017946171212430359437030884618357766828293951824411546654277334452782144992335844173387725828358160201942872680643249431511803520972110926309508614453306991446340631448125253189538141343426276566803833911582903338068248926944971366896351073502633668145852290168671255837024267549700657032398209687199214228729859659867821011670610648445713348660305845303377677646742931638285604557370732969382256822216590745931051357108647939517664079152524142015486742321997883415045279397734349774828050485696794444698988153116095486716194880969160917468558058534984148342950972119286932697206748169339531239494487870456902117689377514517963112373388585339021295366294503523298360202519013837198229316052100721775234432862353833855392136413206922197273441254444322383263519774426929635966895757599095424892625470629536131483179619698851231997251953501395847361080971280751608602006509887460596021561222138007450098673155810421038193944543207005856879801630745365294623085134081774979246092536858835388931443653056030699507345231415820504451733747379839961405163385912419331411539290091019082262723235825007758670188589371910998220429687088218279080699857554356012171512749631620530427519258665350928750193391145615996017052908411985003076611863577431263252977883917735489866685153270603423122505207082311167915180657478628245513176433448906112871828245419458996063253421220989861961594051643025486134582789637327886653135162717919943077359038494455647439681898592126369666955502161645782383862314608215608405699108890911250716571016952211187110740902830482886513119908105569733189826367225791424214924832704709749444173070348198240322083011119549947269124311210744274842557116886587311291814196758869027928107570718835364808380567188344566575581636539561666597569049717010167240771144241972296638594059719487667580528602189088365063037535956967624918806419162081280334520465984700965699469856432228277181190969167140078120015659942634958163100749402488721274948506743703546578801252693323949367896247790441411320826328331888308011582786181511573246688021964775183760403490313182831096739416237671052285068160394171708632546445947917489264662040886747919101048515895145941053904545874031201582693112615891493374491796949866573745018906850667586070693295035836726932941381443474036571572528592016855556159456568144888269074804442000949223357274189417458775343212929777076702976172168854511732414991167231703622733778621352770719451723330283924118628918226480450971155958538473047276419394483455752601030517480673967754183972879631599348914266726090024607354774753164483804998277456115910323857131815453037184831498305303993025518680408567745030783538755337946774744623961610200192976295983094287077290536058787038783356653383586437487347511450409718415019328917104631029653718515485092300675630633496228147800506713350763567351934168019026587276403242238463409772184642376689794197363194317307515672077779961126821551155986642438534510079118232205393885791230255499501796348444655331213361986744809636959447439331008725715145311227915461886281405642206991298346937321436953774842812734417585326923171515323422464107963149938274147470111754691569854633701373600504056307233443185471145055279989125672905680267961149021105434495467014918276609651719195159009120257568077869348867387855600870000572459615259915067543627441286739234147119608081665781577517598176954942916267951992978824429710680707407094389127682906891744367169649327406592251607189020527159006927224260869094146355963819764020784450742030749337782898403751213910677245439067985323286490450607253086899218720166021992864592619111429492479411133450563170860161369404195267638657506221341577834291770128570304308368977294244302141606556072246237046887329398354547776715745401434915470925213805297416811944280779605341985713152165492652358571431834241651305518149066894724260323985160083639313657049796663939318502989437605589528004646433865096177100777303365469681294689829825684477528677086316745196404437433713833685818530141928404332234553870305496045802988836617842468136426283236031654115452028103829231063739896292600605915144199892481285352193425587523000794629326305823278473059801257360425724351898615053454934140017961389126856354190036762875490442229982087929075214637691476423904980620517734518398688408246668571106658331047187666320398616986426591111078118602098472433658909058840661617403569703793874056667319762977762601176537161035399445094991696496757661197426526483086162351033201440765017539969892731255455181793023334006344447475413695366543028310024908981557726744876250127823372905353497385268960031620133231550620044682078828762310293845822121831463036798743595901138880965720612829135293861288944404126137862495234449475055965223320252944511782199592134506850053768288541822689257550383792270215972383394388023562996452286118651597083373548477583004793677951672966650154600733748579420906287145361979895216445152781238960085493044749997235273261664595563942378273684671635497827119237641468735586792323838660119685027564853219071261195945508071557778803166738728092930117827177321841433164641896154559059490203104104898104021810358439535327833460030894658909848422418876918592662060874831912596016644814334879105449741883361784885467450411616072537919792421636736790296214449868965999365074102962018401503820541169676999481820422353969861338058271768217794035269642210115456849316939387953367541286902615117516623871372985807326761939722225274547538669707526734502894857327685257620541723298906760788961309279732516094673155319616939867541360049856246188183758411927794306196197395276087213687640278673932090195477325319506277531414974493285134106365547232178091624342130452658957681517037675597326172947202680198652288377339093988905485861943197699445903767656502208244586816680094603842665110878674411897756270844795306690496155766957242951137677052227308356517047387685297259433696303538797316437614919660684271161548747956544006487628851609191701839684252521059447898051526928297199924335805776353281471407660307451478906225695906731837914837557541011639327762248394237069650084961429921770192494528804768968757239566456613359282413281319665070121701284910933186616148430813466277058812394262776757283452889095375675923547841533569871303586054324205999134204407912543952811652391180465559477712997591670994402696595896176847811645560849678778050194319300427444991291247364644811679521154153957160407490450359182581058269769123023297908485290075320603295979701411887334942985591805077875399492643376237007452636134183454997859105962082183742625969707327803025795499365438836328586220645581834051871158875324250328004796666584498877364292858616162312268816487953796007585465403464970153259048864710146302194497547950147595991127257574923295488134360308127586836362775339819071091640892139902821493747874037679662389615524399522870064863066316708637324811044789838639386429451967295735469813285225536895800593908897116304428016898511849634012319258415572990396943240396955422756885323986838759790932597134727827065667795679939856315079368147583528338040138095797300617820733231659888111711769983427499324888727469250536904486229638557026079000087622852013459989393865483584050072153405922345550426575233369122623344372978189838477969061454801809140588308409135101960281588882081774592612860287126756373664997432185980189337736702440112801058234740159763574321719210353039154423664381688454230169661641165374156129265507950671880340208030013178114545381692433772013270750306204421256878239161751031013914612212036163027957532261708756121872034756416440187536300849545799093589770075111026401300274034180394778527279715069487581084401841014695662228929631228397007321251820520722108889826157485456897637590669360097370972284748630610187938677090077482494333834468912984674289010300227296975249081981324095865813153633110003131639114483063057419373463745301749739446685542405708467691500078871222520437021248796446639534455997863719190520319409351518506736285039291892347168370402215395906666949503436067339866207257158822938369945797616295752544943474631054766454394003175057413795650575696966384791542693975775754257283208930417337479905737248446641771224206327243099292298662412321029979186254149341845269855853713111542736275497701294271081574250490525421464054130738085298135045405378786726538246725002970602871548643612984232588106137284662629870638431315903306433701727012049988679983404652052503172275281573245466487397046621961976163166753830777875276608059562631599013427667833360402554466619665074115129413709929151553456313086807405287983324123347070077029784191794149895155041690292350933815687982127507603694717745788543866170896252174143722458442783288356295439724635902858437785225880350790786961034977064534822936107306248495618243001958417068061257824839727632195149113740392268309139524267831948684328365557465554902549555456801354041147896739652611999000342958507613553766341027233576501780006227993239727844578772861559413981220822708967770053972887030900335759299657497555998133190384284902706854871454399780424708290186514519551744273217620339432437766983042218412131965391897205801082288845069287794043091404015491593776631491777440429729188361750209766226825505570598594609714157359229608955181708116953006294723444107248234364326492196157980012306369063184377534036356648116908709885159383007134423489523500217643658089894282961866884287604602542942396033123678876114302086369867339005707172119060739946704483455674780804898975254878084907426061079035120133065941865848066590175207866335242118269698898488156080905355617606509178955389140990882212786083516056284004697566370424048613189781935200612699237696852080495526824133869537268415332762701303333284537686578921634935302099250176482387416255646979226555024918860128448217874349834793683859619496705243562385805574203163234730620240009667481679785637991924086526279701037186272944954083523767886405461469317250175390704288996350298620796220622966218257656402293932160893689699280289848782357824764157779183848662568534203410862154043762152302620324983158719169391442331974204826666973469966956553679321794532353334352865447983939623514602468506659884909647413345457337816310943598413766442613535989971784352647220566029208938804865142665576390982041676344857063256136712572905206107002992638846075816405867301079812818992505265071826211927309193755033445285705832716624051600929264709957097203361805626145392167085335199500381518903069491609517023620096681774235977508502998632801738267606456415114736759279364587464643501703422345742781868243015828833128245754509960888416512058976964378102886417606514676429096056117670167943208302816835267705185894357439961181980662976325048504742118883284660886549001718436725115245593163518943796894589349031880903636797691564031886766261616232911823471387900779663135509201377594404064192571891507723719806162559135266324930319601597447830842134569069216219259249987449671029773450168379270078831612092695317148225816166647148687334024812448015143296890931927472511444157106155280602425167182651188511033086756665549976570044015778121562087515119636720886501013750993204827888453780467111768210729704614856225054229330275514950677027323281457756886013302065234964255477708940257989988136359599081480954309223711433328434017667614113607887501004850159433736850149785754695303125357238976198138974942353259244026125136727386127246120498360362556867759438179657675289576010431363968814485297433939208615032536633932831109402429954907290071802460929868950285134166724764277765307274559568982501581326782575039896830238510544593854912366243467656477531119327103021407895341551926459120109866750637014590148085152137846245106566344748939306100795388991158387289193763867725667831112062374573738943988933625917477150094679612030082219860752624210171062728031080447732773381652408031183877535402122203083291276466757655976027850565348116814819640539618611912919499804185618042367836945751454111883954330249425648477987983496313281826971858323168601191880719538997878734544793059085131010503967593520834383620341478190141187138684763725785353884516832490988316743855607646867087735375685179056676145368665152293522147947563859327392301901219532605158395448474235593282934318049216714467015483867485729970677806655516618703502038994394342827645787859386103750552045434465609339793779685059187616937035945445061279386515105865937040294953874675245808449496722545004879784605597844583621821275174551147114739902724722589972837682843504313434845380851792391259019126037532697545899731194614953423042942022498494117260017029252652728119465967595097643995932363190190607300957989963339579598477794296243869642813110524059091489427888659406562936885595843627062682376029498701811973046529444930237816308559881914259010851922958531008440093360098035628393818375181383934446387651990241675436371793437611982273223030549082689440315296469121833786245886100138087052110647757644611708041005812003075992088607423519431561879810508985746849417021378957950972717769947622796165597639436346516477210984752776707696624170796072489496391460646248681551994594106346247376716902552465709574316435224945779752361089763554248458636881834929935311261127520456062594378847113029709407574656878922298038540077155913369090985112923397774120632747661969177512132006008059685869479608487953681863561455245671020507146632641187124995328895420178610510614694082434094260880945894794832508953336766869417236432290782351351872475986739443600648419993845831355985862398999546550736804654819028427589469706817177407416504924497475708921732063171449655961787850690081436075354261538120532241728522746783957384414753655202377107514299909765411347388202171395001817662961014995124489986656701952693562638154086377336440095851016919356955780401909860440678730103583415083768384050246140489236720794064354697380462750312596129520463276893667147646618100741979012018181412631535833835904206853990564566318360349436760194998257090278235029993006645711094106898881875703709192747907865726032095071743066256038465952070345899433378624343336160559005543119776540592298373685593868167649240048371972762124611004358203351366002024432826433637261590753097810456504341856034992839390744174807513473312789793879059477964482639393691842832507719764240522346847121125027802539612882245736072305430130582060811486140406340152320093828243926495877055042932560206914489896542338623115778467940956489526198517251734910711951813849944122631122912802974069790032040550691100592090042089014109640615481537194991512733766977717511113721767484532934206035183347826966298051452613396651561710624870372102597447034869626358758936575412349696331150644059856955201386783480083987829342372471777712299237823333687876587122999770596246457197644395519323615007356947355296435517860025233073545007991149691985522934219058078159465851536116336649430078833201981972131820236013153642881655869932624011631946352836583440961973138268516882617426642856643659712559933618121983871704979628746515040199118810098112927262436274634557679968194421927937024057418912835450168389134113675486842025314991623649372339546214900892168985401589048581509975886647304235686891069531504854137075653022932945575739436700694102691399795507147704648509094990463537058046379990846438494735487722600278522042658905448693281255496614486613590091732999297190169572189345726402699115526900513244283534236240504117541410381231745813661077757206701706507716150370983818755427392904232850968854434575831638267944922039282298937835144763538339646891450920579855912988500724100700207354195424598018479535372177432084230748601035853697891719418335821715017444520297667070258328324871006635288142935637744302492480298063368141761501439251225954942218569672154328243785010976444654432896431423667069827426643691255225924551063474241669667572174722192875510036551061604358868974648486452691466514714176625216368715548414641349950410534375960213076739757533117697300145071285367466548949120684090251585558759931622867410134840976467025493614792154392017972563002255002440651424443815670027873683827845852658777777736314225598937731392327240908780276022956289376060625743534875676482374171326889371196984434351806374897687904412046293096060502540832030637353948878632487840357007074162747763166138306337034363834883001191704911947660630161166691731675214945302431182616596801954682375425359200309102243848262541265173242273978545485865088084904422172881417419752106526686569724879009523087374632605621332980275108458113344644614561397266810689245966073004332516405010595249607897981087796116294237156800153250042007941151638406760964890243661806227695664565023021524094255413124508492871883746671284292381419431706593668150044597314317351673893444166334156571746501190524306630995927140962246642626054441062297269008382952829410558330665066593398086438337763329715271891223603975658739031780449387150691690145869335822086967727987591409802426419640608789190906768621459675783821814468788941209235240716675641501267888147499691875217162398025482413411516629103872037889330747720762875792420153415486712159339377099440948382979282542552262685502985828068045362598978994472210549631973624380584138019483474852143454477834903784957177854971706288260399528811168009187045383710057849114237569147369007964523522034050670756423698239384259411765121579372882826526924660429641189633374676813664290061670904665982261480377150278743317570509119181136760570419812900549615202221785208028936810419176162360553564852843391499334394331283838436704492498035761652965608897102936112299130619634260678280909911838101580267927499130923779845716000879296656764653033616240742197183632321875661096414424880856405989890007080720235993512325499638622236517049763263781667324710257207543320401512556730485578709486375966894370460504043604006257070201733974734950370172996495282031055988508926400944302083166965862200677516995695411426913941388220760683232908138300141863856004036083148024200858375516586827714951698932051635084864495411938165472292306505385976371676800334424338065636470893396646295987974861294241837493942830264670712459164005754165216465259563889663998879741440439362898154986725390003507497102439883687682722120378110422499416971134594843140583881883010632290681090049931932638756369379191811961200923663940924848609097504002039213922029140678223537927899381040570214607645786475855395445154713997609048031179546859147068284229712221612596376945594570062850603973389342529746153707349338615756293836356476178474942287905126983871307530178422911516990468993634733817943219166500253229903921167396645546801438755412452478072613548725726436394128153191429756024108316489612965921659294340528162019443048971289626744512371783691058765590330564668290639057376285801570754315211863807139456747865071440726278233349185156872158466408475508666771430008922620142584146082572145159477974793834072962006403553034281243862151168742222207364839749800573201879913584490928548600629909542176903630459630220241186329018682427267450253117341339164946626328361657426099611376746532364980399764021070327324069447564841467905146958269669141344217453147578318306568289229039709895177686732073570761058505863548269446070171045989650468685741259231921182824021863103281450302675289341814137071020396951002553743025147278299041105855513095144966608436591615672416070940223252066972567443312314862525004889893702008670995874437266330425284840891675135394322721986430174785759438666117812863026703973904841918830539489435758503467703818650879955768215080909999385898391869697264009587824078212007530342640517435208183166334125860139228043932002153732983511185759216691863975331703175284264072966125240609517963415187775938026191570702042188451269083070639979556206349835449274361762309227680677843195637429823507716073493703168666718412697711958309637525779355452504398079936491026656510152724901636441429195761032043894021858440967842839637442045022058268910598430935773273076444643895048661541645417869759744283528317192033516359805103839356281053990632098780059426441096412137176348159329462114478063814705062941254903297221503521536175799512560113128482556352284408845670066472615977228095400802911978712469736047520190312009105573105023169087088228265128918015576858355277686308274783431901633246240707388415158745622057603068416051698472631594528762574407010065102982983187492427151166130870010392119536775340263306778038242850612663151357669107987963175285422685908102262336793174561078101866718840993711865599986775036745869571352620351622979921438171545691223969737281068837067673324751350883625399004517859572209461946980517157357169262639178322169224356675760852768832049533292683476330463599052854159026038844411561380378240277174991542327391524473527521043285804737972603941028342787186318951706089879893628144925169172872779139110947543961100591313295646922483906865788413369353985542633097909819697859187174708342944703799312237487018089666371757522716493657103382102916615948013448722151655656632665167303437511712783436229428756352044759788846316236540159209712707273193669004609991781175461275321401891460806793628461663685326522342391684931790120365236287688010906183362844542515329658329490439819849250633388902083693646293919732275857608272662216173042835371335017303278920531503047408796040740119482433672562784181316934134416391330113997006427624669719671222403659462707174584873334211446100170511452538123166715095344669822118388474409829139916901947609222908071149536749586557980375103862055557177889395622024372955509020700220068726211791748115011587402874111277958201943673752737373465539141395220189754960470629321748067827434639241646318610883793494500026812910631032130576583242556214015526927605564597614692536875520615990241930769625838879431278870823342431274531693283756975583238846756915594435547654928469206163292152833690272409100067563527584549955598213922643120808080369088861595804799422751538570487939767081006587051850519220465582572306460535366947410098402269196163269626270710995257368502729940931168491434558421793590368805034074065925560460837209325509614188668515904084833680490946381224197172905911677835506063912393112860712197314135608689195578772110044025402900349600080456429726401598319151015516208491681582083733998709988016116980463426714993406181949167489484345447122470004300218254956059314490557973897314900527343321090701805976478726325893882707198831804581394155145890038259915896171852386168192576624637925576634914937330659278330928796506958289537976089198874646994311993135072482506544718764733862489154230712151614505502908572049488596095662322321183555147334065572702806196995134491331789347052981390544589611126421846674635939283008157733961805138321629979727251915586600703617359167716049538710247278602008130787361197535873980456714886235579157062482793361787503930711784295744816945522178066012029059738294275859909239919554261457664677359833692554470412611789774050819840531621481271523488186083976897550961096588880479167274728497908498076722793512302556347910841363550573254957745315078121925958983016140557307787997572152969853327482635219444144411322403038413652747573485563651859929714646005294481630725328023817103945024052790333505993556588206879560299099548047306728077697767783573645896592871964116381883821330930534948634022037800043501757623560668347735757887751782773330511711806929153695228762351180848427760921032852160131852357117619912204423433072460909163329367770815872811106391848172953673631480465976945899041727477894704810119325151479506647062859629969427256060692423619106715891915936488447667202296247901104098816244269509357769945676948329390495805009976554998505814741195235561103585114124849879187901216827777158039658964452357136719675907047891765224366877388065619439276193463593214068363571747252902907145297215828830159314821618835626412266213155081253234077387823640573999041958724274728152701041338335611436754449543578551087743432440299646252019242243057101156661049493289899283566029023153226029032044954026263254630248138489499526256588159834435263160279187867581441351421745125672351260054463025652509742634309533103992036029673635454950208657288373236136740979839434348329621143410398969461502811314087390727093185298206059362100476076479331427925439095470437459336592003109901070543289419890854803128194453863343101881553348350525108672970989474271685585867598967816227616935117352315188978970133740888912013151319870619115127829711758699503105713875629076390201243877197741501899473683143269811322334256141537919127670256944583077172175757202973695035114325586737874476261664266639541981392760693164302825979076702992026359322042839294809220631875329707308464361826465168777882796560375429376602348133378705865363417660104786795381359844105536056256300048692138385418020138526108872009649408239530969584654196920798522804420566289131708493350463253165991198337948211505215573265101584607782716803711387067389382490786086750613665332250537561012969605175889128385283074472173128227845146062987635765774878806413995876852957977482607302334918206982354916821560086656061613289577411688969936246110422273467624997728291519656870726602620928915773643699725803084143071796755266513895733768313015394485385392708853351713261957871804746136233768163806280139010549380796281002186943924488185475384284789039093983828648222991796851521972535444837862577758342506612525758922689216837429412880716923018502275730815992591380144300441991372218806094597180501799946636136448658756146512961786659735172533023050199243208432094333199569939502996040993248744251903977382578351951792176654943445767017014417055353041382693164119661102672975511103957352648875046204370475809553780727809114238682150668881007039874647750300235968293293726819637193479476052527208618703795054108183781971746724707608685641350841743787526158845007202737071423158340753394608944953170134092564154452685283633725613569630797794764145440509528611824706972996576773367499686780460365392908828801644788177247382314037213302510865310865108178008620896326663547919394260915164170340647261912874437303628417046193605672343492222957478935608216203673858952851522700901543643785005724417904046360758840064918992871189858386480378627703051267187351964359422382509632532009313648475107753463673437785049753422097201107519019760361972630640610454767231514361779202253954115538091235593012637510786666115279863582018927351190384935608610677150199141739290457807031997336643024868088362672494403973084139167159441852463142410733112095056946570680452521062143166038842270231426640510106482682154456915731849635726063937709572124806048119348265381017102934166998590051525813351149861712340415432769065516929548463673100998713035224148256243659809457007195689571244515258098149989704701849233153929350247102669510358961734996188836268924498295280066221012048375918913664166827951822695806854271260068029955225679834690709826488183263713208273100126858568400791422482714843231700190225613802291825499935271192782257742024449478486832753618899412845485059395193814027621237462116799430317273016101646578678643123412676968868175454157727949717595125469825523720045146812030420671016683960957112223099059432530337806905682284391565228263007933336499017881527884284750469607809544975876873923624378140881448722841153330558332426859488976284088286009928805778118809935326405677341526464012606963038310792279673445706365564747402755310490841018785048539901225869539586291510780316191532853385840547207472660909046229093017519884463891578159431655958170370953938949555264205487194287778809445576024552232852141010843373669281023385137984999064437772490800353924192101800789801774730368055408534913316790466023098957109320862486325662215335071504696179331622438062775331744266211351972408845252258080649982138558319892016151308811705200916127466181295472936125393028207226952415825636974731869179955927938883120881174397850549232325496589703919277447289400715455273811650079033587691082923068453418459144753747483546599716249775693328059563239843084108929532133883948885692397062126378586139343768910106752360281271306280469420478006259421222854789428573913574137058635891352545254761518548065113860083351142968759136336331257991450952939163889253617117814817497127311801622834607270678416347223743808153808478868555144702877899923841334102739718061321331963138836626877534820632318061908720342183116386999472610142645591018770471531402150238052470495659476895845520444427202261282837020288671018076429002248662709357243761909393403490737823766970321969132080360877637942186922676872286559909156669910085487930345874471405444953021622671627017919335415619948050185353600208263389931112470395864062639955732055635422078505531896851868344474607926701567878412306435644516242754274409157946331300353760282859370778930716524941088948248910996758150059248292840905194842360036637608252385782784429537206187198476293618692943258292889230801629875819778546998651038138329910125800102341382049994050049626219016597058089566664868527466835599800799952033221837139494969225298147595487878607351506567394916971598817248820457497386049090110825086932490745740930791589261119706148288038753646595170034923669152425318192543461960627652832868879609663371322935430223703143550487473492792398922432064010158787699502718354648436638747277084029555159898719539787671453732325279123209284920342723022926938961523905237533745355920515110094196356153789355442529268152394245397104285092895891278226215442296626682438099427049486533086957617910475177757572794741238994193892232769538670842737307003419534224595266070596390994015174183803015304926951644079656558402000973741468975897743827935220946275834390894618337121158509456795172819190135467606368438212883036646311585921313584622474469456854088975274795162705538962776182373754915845399399414857342257739833674539251935715047347390067332840834474886059559029794136375138849567719213058085968530948332088431861505128838397144369454674761645020451154737118817542964688440414266486002044826303000471754715019323796934578074742429820658390871847323027059873435498117321004324081379642185877931324966328357283833482044248184212121864834355478094168379416809272139773448913940663329919235041182471858754804823482902691313651022408549944284560152237090721132784911045032126656326704713653982946949935532811288878104443405214905745852951456246861878023383152601984711845027881046202370447804975815415101140583617562354446881454134753619759208332727331973264601973922979834256644076971952246293146296256664521934866866290536677268043079860036093257391344666697511652716190394439670196198250320653220487827076979625429522097582724141952933900461784922395148062873435049378690191786677792487877712442165379205159692620266086487157670207048848943867313800378267761313457492358833442957317347039933306272377505549910588101490020562003295385783939826432570118041026336059974821228993440117345911566201116106942895387728053292389348139755862138162830946745434094109848118004995379097251374928896840636620749342896505352092386190524565482919537103626899857434408493102779306284315073684723060924624450208630442418973536730209545877243689622395345363613000275429881376249977729408707005810701797171501228891491590614739708693774258791198600801251298280117531431344603365333821356303429460794392210962087429409785792122266054274031089393864826093693522599750286126184645892001793732118511801070506959728599922959408094591202378369531765349538414210369722965943508853502158834346484122922595765286914623126081214120335209592918609816654273282428862076832061122071127623140692412362085016542180917923775373894445955695595379736982681330555857503672666319557207654567547540204886506180890021708290771749061168251265152683551609499291077472754907567260878625067788724239038226206953958742113935049072169220706400597639501686154294059251200881419319115091554167333946312507657793316574793340368272711832734340981686606255590132864823391498098377251231599568489314283524957759688480831286196858168333045747482807184358149014633848328896965780073074033330391108880069550039290343798993674784558454826926561493847704867124076271512760415446763405769927996921045643458702569034473785814337656051959928592511816981867089052442219009610498175411654949274364020487074287444471677322633737035860113025051477320629041758798563790073418001880913522307862488328958771814163752644144382855931627225742012744119978019396484264615625872333778522553437566369668622356035043811945512074209218775313673177990365774422572639836327913620919739420211381427607050476314571803498805588063478796167156238209827640825854276484710870186082195224721478757950317526997711341307124463202516858960836792423690123175232201547302674260757506713399150372172136821977556308413702440628193889766214315994227018668090311608386238976760903352484974373056055253446712382287932522020806496878480030886616593250421293828025327551630236192580291893910098340552695307900486600191992231054500573572134282319516801625356028459525975980298878677050628226614489745937470117580777970256436253332696275382986202196577054090661547226327830775871513782439722184597328121238779218839519845913359480553530181419599518563825066447411979306827256899447892357813158536271318362634909231919935688848844743177473080428277730819720609320069623830771760047730152532332362530460480882022834250518035067234424605245601088637236101579841425259216721401119544187076186519848883467718660770593265845076764269533772557469965317863132080325625755378516438250145437502753139345878443301995657647372322651461258995298442742195944064375550450526489349266498581448298499774298395576660299375228143505261784013589507355067165424114299200404389115642168524989250177607151484269756229207356944689189993117285140772179715140488062061316739099353928561262555668914810107372462798775582389252642337529283979799345644212631238873023276165627564550359606093095391503397727878556031424641283357996514048939590188782249162488901547234288572131335448755048546428780354130019724607585431570413640290952815560560623304771146356797934995435682838011716293290885306880528112383327922760423862552028737882564988508962423010324300183676434546617577725665591388965291873922104363042235476000968911817984555633578762656512683611060716505832768332504907557947421406498532748843760387378395157832805184814712412207639145703955585462479597769577272503989043538699722127411786733652384609968489921852785043216060647406696983848075354431225036253565807672920818679663940909562569118657642400829223225244768173541319543469827992371736305954249599371100971129153436509095937410523080607596253870490948574962429294465422156150312150992031749399779687554919658712418663995300756750131981794165117664678986700752016912425541318665510074697423737903249688087793950196343484697035906753966819794002835885655129003752871900928053017521653426075622953787212733296819611072510141178125438002619811606030760716039656565404431188035634653296504881147789067822035227850367394907230521311661509642861586812538057109574548044119542573991185343782430762043820189740281098859966206522738106505050331849615414614306254171976919872303766108342662979019936640266442519687014367886024453063207828078775260386190842858959560731794462237734888439069751335992627195007545846700592387376354774876430178461389098028676879762683511727273451201072236178141452819031567167355555675244556630434672154399783162739997689087983267873116262568826876076481907530211660138969987328834285821633000026398551496907544905888712074070805426766278711854567804479164843487950517041301607140739408833405400726274411001126344567193654959085778678676317921649585983311114460637909518753681671335467433339876151032744811175439417001065082539636293997000204019186969158379426445481246137262128599896662251882488612584082944654660121163736916022202016609525187485296542024056836263750702775128394132058308520134591594359010963479777411739088716389127554595129434885435171687352073230757364662825783847268997223209246114906200366148274060051919795133552772339931596766521275926601224699064000949362611230293307765936338345116591613683869610350592818355591095396548341458862182854623963903712759219334401685271403450325289459835409393565424577820884331971298412614735050735785912370799549304639481801601853509596187467626620312928041633164447523918055492895043404151808556526742815491675971721351316219104473798343792855131923202989431983241075107127425506079881668021561731295958264115796444618771607861405585968233416761316831724365407307932210243948049627889798725932114830493460829546088455699256785669666711096707419538960222337088186542228894002011505297762533237178542867685986718268837174271549193216925949979536607840494437585621875188639380138849902535248591511272448144894361286025541323817968640190356691228918139720336750099211647552636112202745339597489270303019509747885366970692910787299605263619579373396211025567959114122328290023140205205878460994882752195327941496449720603055086732785849859769459967812036345400518984023003000268274733596485822800958450004708500626679032096252847926049356508803013362692646507206599034261536595942336362649056933985376251363885207997399111031319944486023083790473187211680453365525780173368576613012512551569847697020185643394537502196995802865133838099375848807870135697184583042646760526198776962188134725913467932197396715956330909425552592613725220728433421477007215423886013372006595025188786172163974394812460409338630484193149220128818797439616559474117806951538339954910053776159565195821390670516897325877933379429989962961075139949340127596283249662914116542829148780676662953026165202658735606396769269022064569562835817990538784376230488326508542320595147088341410011465466407224162750879608501361114999519773897802018647181185330290346433718869900394139381313976114966494299103565894268234433101278444383047250091129299948539610265669572995044721113736115893231348697827163823601439982898917062081437657923467118944027715069744990049548557564173468217792144728666390572162594040748276198822742116135773103395621041398602532803250484630511757818369781094846631882276918632458684716089185762705321138792288283309675208748130241872417614962191754091433845502532495190632744792684931392878755686173385898189409038933492274422015018199530300477686116701422221855147174549556284558541052027890183252823593859725430251275013836394213437421934145061485424145643807829831635018407662239296437491515356831346263036188964717019881503829758567113150860681596472239667853786531749812057234193124921009588178059587614059155896203146627421207023434854486530190424185380454457487749025298472700030653398762645848861662987920766432993908929595640373152889506027167735336389145268532668701594490249488912670186416176200697886624374967176344256522273629136533917835455631667236029064992867812218178302735293347475125504972142773140505346153372692339271191592499852027746178065007672691319579022247541703935555077001782204600912288994634539999021327411184310244700216245388639769053927152453074372051275496503844174071085286554281951657454145668191886696805117419980398982512112965650346895461556282996380276010279540841359383175379236956194278029137625367212012579779711964817126162959702542858345847076848367425486642289463552253661781977393384870264723580629484826498690060489084757186354117345363900537375216142609219228049034725142333671137147906544597053378231464230892717454266321590656698267450463461221272066534679033529614617696518185902729385043980964686640964435495576769767431695752175896274038050822187960310120345748144673937036057978781476312885476963498118073292826415403872960575096821278976657421282710691905982259399126073513691837581938124635462202139455651884038382777382890729615818331522167128720892842488694371903121909603063912256577148687296514612995484901457680974612209075212311997014629519632070915997466309087711925332454941737198035773232878172950364754263702960662849792404619215828288292995440485420743445190426775690860586748076573344983497584530602523936561641257767430818885467648263876003402808363808551181030741869809365813309164460886094778645265652671465427289189364835164474533052329614554421786858419026777431718905895441470345289154196077691660126018754890977312927617489060920614480032666339540272349067042573134521956156246897261451472645931357082469968575034957061546093410915958380683447629050845270120790710759959470404760443118762498486077695482104063456730360954152826968288327288933532954912173106865874629077014522362807397140064456054576581564882053776856701122890508171386228765352716407947051438722694002837443886691326455856273209574814903588110640847821007456288057663494644873797086968565805780882688761808599482278978867333057790856574817935977618416946589075515060363584190991646353622394774348725074181360250156554598507849738844536954543989107720678799986947491860903003578984527884648828751729318815588789347371547955215600105009020635182629178299558131339297177562327903121781837986432982578135425442281087274387142790908991284239897228477993620058641633559121002833247403566246271045582793516725492436702945364403045853050851487395608485693657035808886770752217541885550230629516562053600063590527075500540498862083891907910485448404800303926682079181868099630835036439635507482872216935801054169370006003912701729990450474416496588673061544038958659181300113655241651193808867289153847875624349241037557516544787783572065185357562083816693434073817034268432497205205297184773665237738790892574421084887187717679665466613516194299316606765784901472087728137010449249911733509365731909843626321858757431928899752993580629859509155983285281313251885971263602545017258512929997114651879505647676898685593447343530879667969270710813892841771060829732569607062557011027834589168077407152435911952784744780123201783786292193656848762445447715734229349700145486778061953078119648970434882422062783291689468169413119498367715843034998970394061216739735116602713950634658887461885228429028217090369435239323462002940701888773981152622325605958309382242773669359435191106810860979603912221346514988048603219168817655064180093838701749257260823690998275339297302992688138669697980596662785458011677924583457116975545333588983592436807539360894565597939415195762983443946036925013861489104631547951350903432384664110333149263797549185165738165039678328580681363344038254330742353340783748685010466900519667740091495129639850033029751111763141053710256059014854490140008166371094869686462938555727343104754008586723859876383998468677628179568940092093425574710409013036720909533448012591266551289328804007085185012209736908178953736657392072710954684143935533541988043545215540295657356346767265145239770255812435761457019482980997305706514933868791511833544315960970028037890201699407422140433266093324258767992016356015448940805243891912324223802970976282237770050065013009983791632682326376451945105013574259040573017699057348517191406670644407911408216026948133238116774789363927143519868026363901742546919938835180563063171327346869951087265235421340645774077558651378799492914326278386088541732743069683518566858286763901202265693208133124852587356841416376543766566534638104406700659255839697635971882364952033464239339048993268915249149864367333268009163390718239922422626868601611524833080336051785034558477146119198496032931638890701685634453212075477209358090582092180081302018179015552420994186617155712980153722561101540973394967358772136240553723313599600886827032428335616291386380532795310552546118894015853091602719497241642436204154467317817999991059403750375004437488848807183661584407770685258534386437533444318026164339376084678432958500905011269350570214323475919923979258129076906370475902520781933791184711398444647841479976755105503497002137646273987318552868964524776115241748444569345763857047715059126557331467261266836635691883825272537177480884799263585890542194456437380518368370494383854069855535563724143866306101831689848011874558455285941462321689689846902744422897535322381511871714380944384589116372175969990423029135612254643167268048207238489822365285331700005333838333476418911039932077446496115007900916109534115807259330730992929465494778305999454421256795400186683257539145884502587609094070696085400549132889769839102949266780288539605471183898504293895746638027876463354811648029734471774225370375653312934985259757216162621577359863417767977890146486104454648823514865957347766094109533289576251248072176743729310707412499370505208016964644561635512657311046678698294006987610806981666384077830233997732316665602616800437996866299636397244683347910904626518444539807456926819448635987187633134753803305159332818383471089750531699457001041652721374153480539755666507991571747976793352467379003190653762092092760514908300190780540821385498735780100031206017433346740432891518480836195720261153811533347272256574466290727001647481946397318928555553129801656077213234026159739781312869674958380681221366495324782903912602071531248307830850475153854008342630644136281870068551647243176338912621385456677418593066791411818594320948935213853213516361585676021421709824607806079967207135054355096799447167238467681269201778490603268024352874120060273625364575014647711065507829566861373151838720178068605249999918228683807226935170347883361956763615966627493998687897104430673870194005325282462702345147805229549881670826147517351064886611232443080283557547924762115210006253423076847208272638270794712324806842626457764795089793703117015584910643470958516106239340194903523977625238712953588999061484632025527784615975021159802670968329640150289244626854949230196272380653805637769054315423482822118937551091635242817310851616002961010630922280880072036871222525419152160629548089188611595334846692735592118343711620787123605251725985725953426424672342843368910581141075765856697576918466972568376790827987559954726838552851315112499659820313795043285148475749209150398695222488896388387477604962371743942153366589923919878723628418037940869626507948836007438637053456495468873939582178779441755573175580563000357469769148178083933623545308074096087641664447827406170899830979131368721170504800572888169170833456179315006315288923087692510853780886024772989628132505244226984153839388454390876217030030454442437244136249435648033400090219459332534362474803669638960989599833801903920839437312216143774602356814667149787407718079005844072362137997956839625867254724911058953815591276541631814265856300702484968187013879628532706960738568735459423830659014180169733881792143755240153034079189228826985793670175667243073121979866708701085934677775500387876599431776316240986863607864247255498742825969293950423974622102388675291612707109411966466658232349589866667166702126900271138638307025362766363375557505714203844943042119963479922259707151645784962476546325657161762835949853554580790070819024873259747707068548964558290254532446123426355789535480321615672129649790432855756616384107224544585638997132094735788620504016495849970154070971300076507249971757676789641236576336550073825509699435651769082476313355436384986681098650084992745012191020729082330363752595481222685051132399099117090237572733378959985325520563438278265778306886803384185013033618798144635791824118967934232256408322027751921671023105300601637112835902892321057232267854192967237517004720519956072819128265295250934798247066697761349227137468593040383915995404330448487481551760226538025165699270818352351739299712468429779210310923132805486246724125371585895675633349626059527970035444689553462276600353280149228996878335808379011681661422776872512803136686445707361482091466654703544219649689930379915675272830148500357385755002895187395204435395262315188704972922093798104027543708056548412159128198980831739198308652379839388320804564493112677386591217814045238921911880059844251586038481044379218263533797500289925290228832575237327852020924114817304745996493190661770637116884676772344825078131138875436637777715467700022600292609970449652120916288533208634730415008019863151209135588005719545804459618984559747449866575052753209831284879444899355359685772127608048644002958669372234520802662566725936922606886404082071864996459142945070266691188974196084387992853813302036433011858064143979299775749254318959012062794816365751854026398167640024750295521144716848471528754753547270848583742433411903489587573096929789561316013728937671035616126568894388531646462786771412793923797950090640320715703562901730249226085811705841882045483677028215274975402113953715117971695467931180009027678697904565607709976857437813739334285935056244971981506915638867480085841820890747543543460099871212556696794269696310491371345090542727825983321231496435827193566308411098052346413377077699582492309233838785378546545869515460184040692101461520928041642656030382676991780797940113268592723495449644619884149151530654144368824542848407771288349332473851869044292646848583727628254158008974757394208611197861771309225669029444866989232517907714102143441274953032378028970647188506668524401106541962773689694554873730814792151667638284717809877247999076989542519617490068114309312437255291335304655108067002839768670351413718665309557256685817218705127966930891844004458878583327661801261647338405771738012085288694978433664624948202000446340278753198028858852855477091379505929348402438729150928762049214094964995885377975065153660721476431722688253640093936593708299830421912055718183406768410340064780262241082971352550733174923700344322882584255775756981649466235350477217961609676778705183070468206987370574299722700436121486348062466277960250677497694897306519087543989778726899555818633061848923449745744348880252414592392544241286923139547429269941880167780096601318166290714088511064859914335611112239789378674223781817731972270102842070059931455043324245539952683582249378222413387242583021739655481872665253234660904432318011862155650024436144776903584067969431906562173123296905109212045623043548984757469399071109305289522723807321091283809098555759351308015972588579472491595069339257159882550930040141164961167086994630017031974301317245024839067624000150364309653573742684573715761130719554646935941336057835964623716227755174314244945715109404095431863628740760727315855789152135202335707722646151340311124758552751828948636033259457223417696598682855307070648938154888338235727703576984925663470058427347864535742430542393255793912193780789383713101904118488768571408786682615857525200902364104442914420387626412131328205620652161275940891484912117149943923479794854200320831448991247575283908368437232902502994522209625211682243519208771526756384424456514803551129797863498495218404246493438877510530507576242797911410715655900590937852499908637155097844338780604823644761908408857300046601205335463133284185168105907131134062829692209681846213915306219840585337924779272028560297194106129432690059797266709371970969385656034403030927312122091231833610306246422534312950104747307842058082106698199005993718106847243768069724724779502436821212129852289682652049649214801624336462537852121425734111873161148161202635568124446918983389487888927640088979975811560425702035038331736557931088410228402374898031933273165081970346183756000782801083093863127118083867294449935434514482004347250499788377572652747414248821800489296632854923783365643779602623484742491165074399923853718221564977838773352705041605732297769321150710006726058204673641484030968197776794629765990460988853857546204882516248785691965064388242836294260144345323450758258943940090461052515561847965266337331107891112513563050009601070095841624940289606928752137499954213293318057511779543123718359557693493070817372196442180076210205136573293739509115483916468970100314479109738014864601720726517409045156496081381283912700985949805218491866183145678151903944683414064376381952142095233348839149155611357397211806715684787940671795458955596168759129937192748928029186547830694795954049313763358004681083200067740275231801427432055726922259300679299102560763185817748920336700892116177048754049938705852617995073344698835421079476188047046378277425627638147699574863028969279540777463470458683133876041927559995766167364273952075380064882057692295790703281441227252567245780976665190696713380506985485630055121640640547931654700970758519571245920319759968873739489828205303994171349608405725083772410078401105672944807536887340571474880720549533001353621975841509605600496097141961648505425881123819429195046026315566374960803448911500436205542314609779649063114509634443788685264451841836650134899893177349172482205605400622540434698764517510368871272372215165330594247835597919959977781464905256400132502097225949982211099976706183246873749044365082435152342234595249023283311710852162220279837365033583136713716803531488327627937735218672897486761531969115534751630825214375842650914612405929120300919688974450026446737819437073555601954477639329457614277849702695044866003003245415409697686393843587122868251444437853913059554599201841985597015939473477613650347720381076493705977111424701216971736587777000548075655491405987587256741401138705366088871720708771551937339972982873774107425038559751948366388190922456721202357753255968833151632935558804406788489045944566115340675774255032600507856156946806047652046297869489818024315373281718612568971756915556991385443937760314058249747268986890051044664520577517310829577896015343485213277886399120049214400455411594139925754500525057125988773408643161304148936162312183089417298714885412238878292864721530384593222471496529398291080867140919064797413639204735218947260664044752620468021488920012318167981775062904582076625991570832007224663839403467308333153666676314997718551679223277958779031744860439217951177360658659140080782647415040567170956160095826461183507547191957320225554171183598249857961355408791667899687089920528337322553740377580047200087998039273549497137359622445096379799872002820920724176698006725036707749277640000804106076261943150695350030038878390479658840974141787127700742018656759628519072784500896044562439728335107191380960638932171975464848661104392766544111104643296529553647045773109827878242497019514982415590934312337249886558060075857380871626699987449209700735723953848208388690359191562389199122285633343857261413704276900087081865547734585870444953283311838323828669064771393381514578479864172003602734427572987299967873104085793949568404141766603236641021519728173550268243202256884227387562719371900637414403426269742156853954660215813676535952788508008363971103324141196616605748951067350690838398994509941061699430359096827690180535076123531383529605136459234510996946024350754874443242818802502860470324348987679406619005544900742881951002625816410784619579148020510955992080044112436432362871907493092557194932346482144633547342682467286482337888942924386808985859299247626947671756303048453348038636168778943137814322926797872985498926206940880706976075999006277273414903741401900383372040096136647079750113835188446541785664662082230137357951027680663651698147494967943883424124885596526438935580487198216284603193548932380400390079442513318786234648585241162253531438473412174809760868911841712062025156775115929982652485732388077908005234006753400008994554421102136312921474279293455144025223362408278515188827824453756193266782970556589037146670243652340624808659233962527898444238712670104126897427219246832656627564803016641840691417810156257902950119314085914814252295785349446208890072472493598762673283050203655408347610222525729863329419857421001851069938044571404692525647851288034489924357581357512470202455186847305962866198581380917640616709544974764711942481890904559312202884664887272452075356403842543086255725314814720161377363166753596046877226042985015329437105965738672922059213889538263658926838581553219288386136699872446409639160517419018312088654384066399247303595992609152815327070422331608741572030340120713487914405737092717913152962607217734351705864997422888469239891274282434558105194097690403738141001470846527472685057603218040525433779705725635631934526380749300371534497541553389066859605621431348954005045695621031754825527870599967500745915237741787404109679502636300160533153277326978028039396298880892387225846316307661074028733449301449062568236577332606262199424722599118056633358141216579207156800815487948062978937447268012000621154496404332051692849059796416522761178208298479674132243487657299545977830484216708290041746000472152682918329608940237834547080484334006681336619999459306908290487962684903797076467402425093195492984540473560495831400606360021102709212157740742152123553860633074461716644859660842949499320801548135150807201483187111720295356840911835669863624206555905171007455724547370128126044692911932775612629568894963805814084631050238334111221375464587722411646728739782227091011990109239276098786922855798280254017542723313629491158584813289780621403696873290727533437692722317696369569931497691632733063659789810404747942595448234847005183411416243446543035054201275144401356561547508104699930803007902188466033581218765233266823185480997796430624089927742573252355190320125838964573914925658012823093259929716264695928266433152520474960797241844842321319440500966094613513379647817211806636645168321193374441515208995740959590127877771785306302261966198380951221505031641128253118388650168293121676651874266470075216149074213150338540888374582839683805955916473896144532203213239917423331864335402462868228127785571685131067505816806921492697267809848236461374183698748648622376249215014330766979175320701748421826608870300204677559631530718094601118490807090514847289292151362447145996455918274501933123738688410918947290099382035855821999870323677684869076351738969849009565068858228653130334622404547296324953030208494570465401076477420041373907918420684299853721398264333996851618550655551470365038294376251799196585412465873279533494071999926225245294089663818860106711489310191219654037080771708449320614928748447204145888643481837773620514198846182606820351578329950865887273018705070138071943038001372841004681095078122852299684860039423003890379649177485411435934385812537186607952893101084795198458447179066379548155842388359397951334397813456540008861448668330063208210295655565133947632167068973720172761453960224987243870478980692621462581652433502134637850277958324759380594218637979996141022198815089413128742125975466841675116471188902517335850736289494657376232094419477098872124280126783868766697270849443801720944461463188194016951786198031127710795837514556007676447020022639032314835361683658971645728684285955744316946038116544673374144506335359102381553519307916281633357905903288019207546339347398118580935227619215389705272698107152267961866292000289507231141005222351280703733441552069813526643131950060266075343512878031668386538346130151471257855461321553344180191028929943123730331213010622721707795944018404379997397187847342378900949787143264619561334686233166086365680648901632194659195194473337536233441936923904048623306365597416684769496509246148699825141339983070169088915863279001538176998412916983866687649656598247750777918207696103104924111330998740887236279533292082923793468641760570539575201025179942465682873602313424771249857139088117046430719307800817148795391818071771505681271728961119924976287252563670982130129154357775448590339413573391811895072768677315858336397474651204630107293305444809536183917369297946452057306765812496801894281097021912729770240018673010364091999999927312085420956207199198664513551985666017255671071503963728746546109120540543386560715200980904332787612002024173297893098396840329634373728379470211183178454642180060171324987590065448302543829890211767422219855556993584326223760980502653762287217675831587805992958904551360141713330244230829175038731788788774671506246547289116421491256297831731316261180679228119910379836534654956338917966718081741395519069851479535088109221860006273830603242612408896613829681944855029055118992234917116086131167008495536724496108529410885258502042013328546561005343607333395622300628279012095778629221030821649731254901062888462076835226097018288676966592659321068211591704551689038579842618854764655374434618778972025495751414963621060618541870308918116159574490934581942542521731425320752139017568213165785006589261947665899224992706344157536498848345100424438235600938388507311744248269176756874916883579645760204381289619898300478924323011476496860932954749532179523583534907636129073916613810596953031774712966133783020894664019584434003485910613600245148427967388932013854203701482855204295120686619852624937182582211083565952211848517339348802039232801152034346045537309248294762147795052589295109870940266353702626540885747686630899695565045130023273017134255833805402612548005494837638128114423036262453194741224570019732791705875643902202344852469071860678539515427500478781215653207452091936874555808292608768567309608838257718417313919411409886258712190612521686632751966608477764165486198735658336819379177489386634112115493681982960843061062125267357309924674684869959457844857407784986397790121001553522173944602357761481129816340446936942263895530071096137054545796355520047912698085129546355768638032644285926693400909785129205426912135048741492325340061015297984573937652831396591285199380584032015718366877109499370140998206321274165328603704799568076529272255949573261326475969398411888952937324915605714786681919481683618120589122491323964620607893410618609963575082380863328134670076083059957947772575864560941870640365014220417679825331077949908621043409274339640906771023025228830761944216436778049871995142965465845551909056462800968731845194130876162680606819448383404576285076346781952882431791782798364506876233422218665396487704668991642890662170500136190858085855554497982414155691548635994305378391352667455606178161614483691351781175543247879954805865089541097121519389228674978116058324672888391684949716902595134920431349851995025051541500681969988882279175869749461891037197916332379824449726345152286899802856223583735441925653581490449598748886848558377114206337023382251541137126226109722648286769078659376464971111913881137587060659351653218433605836208622304647638190673875079552294500580094455890244075496184079322140122323165409169757208589225789011602541227381885142420010823708485669544195182391636999858013464438864931160522918586869680265958547978396599508994220962593910583219399283219766733581623396590997090934632956763522244130645688099325744941221198905399821330481039674592408885603549694500924779394940813647652180964401512859865311268399338710454358988646530992473012425286530839246896117677878881315476045927652039396224623921404835845505953920421427930843415347650991491982068505564017072078391726352235737120064420600063277138375823490538587125977123536129899041996759887669157291936099875116415935900214761614453215678947929141651422353583081744983230958842841780668248980912643023095187764732426990977341690492136368596865660782325189407631223890150200332017418077470923035909298033914819976385213901942476345890669153758513932175630471233207605707862738330442344899010107360766145704829142123431154933064561355519020744018790118400251555522746793639869839252790046193160402094368351353916458009268069730016775197003842295143922925321341690967786730960738867545384695644249553412526835144130248048596201040914342224160262749187979284486819369842255206279677384537169617880466075577673971353279212425321250019294981017032917374610851257643876855848122634398292510781277858132338083008386153659831960896560159209622663548404382309469731481904530414027765721766432006505104632661575142369057018616636261866228649327862869973286243695508199460167097034577361135589129598984649859906736236208197145718758918629804476937297001629959415926079918639486209114850106219796771600847630340607578960208229902878672859916622862171380702990800505746000179637403168643065172542130744436248686877366423240570365275556442753674965516418797622463700906693186202995280109155760384763069555206005792958734371979403748955560976889817538153007586608281531406745915504680397638215067576589300999095335519496818085474209661315358469848497022388250999048064978374835719506037455191827285363447879100093653632010798500732763367909295479108599455479300956225109390303955602097243598164516706295532280637693882748754431734952011268800674195578906945919861479175179777635857482180726355405410970387452562402792584889997866195332897974939722045465708491926198249884487791170017974752935294166714758813584352661716693722805091488793315943557288840565712545550292990944320352063787655902127222193357287823085469319925386792004213661177949296698212440521461684779212790919209405257393245528326723090965717121376993976877462421291123783450409229661674949228850466364611004796905598033905261196089910561772384249828537810354571625908526356231622614892908730982601482439507329343532683860046635974832618995067510707964961461959709960106220116223021663397216212506716288728694457027568527118350677391253236495999296889577228244582648082781546041479690849982202039307904292322328968594711182321890145018596986437768470357260039744729664480721405951417042543312885967607606226268778674758473658008485614666977466859781199277864938728341118608704547271985751187880646164903263945208413477260346518490258670019539043326506503730866547822398849061314299869758422072213806582887917046823247265861627990021670323927935168853123695428808060749101618360199228590912089913568740726741876445716724528576008881777864021295471584911376475484717369488070447287607799374456721753416828685368608599566689732484402936088721273879919633979038983404530112073199077079521908613345230277176113376977008683333894099568430871905954893638154479428387811738600949879542860057880627205162567400544501281607665933177554046003821643207258885048492718509208584579455982533944787110187788722657025433964426323304229063957077951909051841720579035030640899203047011253225055553789972120663198281810229912688349689339794515819834886949845484187258206116255427801911951568137517247372593359934658559398640417476663017159978481872854641243703100916207440894449409580974238873393668480759054608317211660154879854387705079673692415345846589422196338832526807466309447470862713270582148062992720187394859571003507185635393939347035438181880652224112339588540366228616147642226237444143029616493246397745515853467055721768391595701544642573753217194156364863358215346470967320152919303394790724040452408254127167304616803011223849452139620456729159455551446146839892300266429575168404358260418454128593052918700868388444498744657437763902274924890812653649371436047978400278187903430175391816262162897946702703619893222589661545525013229761399168689376413416656753915296922581891221302707972219381567520400407151179486028754879639977069488022917764305914679261622734264229560775666414192367733550078638638599330744711264341976470182055615495795741523132683814291329333031932530244445335435439323292557742465917062697355782483970994016374074358629003246036766368472046160907892488270322882308505162629052299638450796695271355486920312502782912288695654303910123561082221390439552416089063273844871536523142520521787258491523948084519451757204531066863435886602720394511114598715301583195987532937201855577424775969405918980734007912072532277121111982289422533784141861351019686076135039119848851177681931816638367324042298695220815303841783621466960501118966174385100172245688717120109323441493190441790072652877761416788516241107417968536608528824360342621545137849132884255172249771181643062296893249932388691736100641835910607977112477110102044488168777359297468614000757406421160994319816653807653329151381998756541917684685348319182671335129687628355312845019527219705764429812602579299700934388152953515978840792634422704519122884110051156608283182471967218703679726358869881958103012718573761382803356519858775388614045886408033486557517575506690958966415597810821531527126390173605438200897554631422302701482520994409750255146816402194394187212271804442030193528444190352096232436263340360095126681604837208582790722789269949660932211452995035067093180427095920493171388133724796434836751635264365082726337879388676423409485789879909471860362983743245176415809919012711653273446696565043153225870577690418929182813633269454737722272702135559378153054710171581890128180498644573877996792991850435974623887580717867709209094551234924771765867332753965303601748907962324345362448184177464998908260778009068715855707209396124219414255635535796186457594698471217743839727826034447873074550798931981987767408822852352405284093969948232341981361666785432955292116536488365574231733274617956027705077869705062958122796606201729803527335626357915983626270103758456380422278184771985456794227253613859348570411979294374268366238527171726986687639483694425054220983376827216265174523937737695042855129863757401451195423130160787001329370547588884896048224087518244886090082311881115967815095985302067019795556067025714514244801972929914934613270978636999814284927107881732906457411421845266978338352415125555878797635739481728379137437074401152071518328672010465110407351810708805159227444726290492212488721552092376087781800520398214953078154517149593389590565816855001493167803916220442174401146159954562783171385705254143313964576015039830928414909208335627769360442390994118277016885851764168386574450494256722073116446603175508406178720189264518046718720963729500363644729946468804182997463946495789451377044888705348302274739420727376645651581800070537937698531590056324536095748337585289757004510475791029084033627418114281877246739369861589028248661957470140372350136641641569266735045076399947452643042420074480911236693020465946631788639742955692697621626434521524994882843364596286788099252179969818620678736202701556946729128465712536259077702734908116173913865428681909126773544222172880792379904785100672720897468473470118611815272509122130925195036965810823446757856315681085558067095912878681247725625671585297312594868363267504527444698875928961016188667055757150291258899099101923237275194413453891928046961301455740122890336962466714059925447784608427853912046987594783651037635986258828992389826355506046617456074627092462651430097070879026613439418339857773083699098936819815826495623230739699504605876883353697375846121522898544966214073171911987265965005882349211252470533747936743686630674414205613372547683254796192247521785650995554103849946199968252338096805493595139282654231312735575370947410326406467323451213184848483662253730648098059859204371574530631465155436681611887515345490595519468398187172776298963222566986226720113532256120095551774412610496807144803162829146739089926152120857636645680612910303119999360093277366245486045376384246654373945371455209356179084004007848907768203281897312981564846019339543936978804292963778163310780062072120532576552874716785978905257605814751436224019779120306888825975029580550986378461225371603384956457970928924720360568224426795582131600288241991499416142727204648981087041872815262643009978051341659602064752617081291547949978010696537135805058580539730422697628672730217028457308327690733376079243897651695615159696663099325082343879662027527179405567254292098511710953106018172836296380054159287309979081955813412894233635588000488763654558706850536536731461335736443251871450509399624058793249758502092806990044711565694898599551458539332209355022857603673563859016817575482416827072984197308220385102642617495603358861020825406399480880134290396086022028627885402302975431895963577396194074666015958979128176062340323638345448673500113127854931247967145023917227156176700481881047197550103194155263517979987973892926506484441358992181191801975559458227110845306804759389307483139656951003689238300548185132309701470350399736816870138994353465281962463175477084821321506307807037259942746841208613808670411500651225299114931596549700657581773231684420481033831505425686246619705821234830516413467022162677365300927648790985692400770871080198954686870393089992073723684640886754724908149213452740664481336743403386622037775413404325713727048643727051953754971177740643304305139274750816148497782258318418020780054973128467149453089645183726546462205592905973338606654932891669497938842743936422967352792992908244508584370732314507619103113755122600134664481096176654902528942888559725975423245967440312972776525759885640613832259450157087415995385782729146129813798939154709476281391916762490618400254304903151731763163197536531330349998839406764471090244917804663784683659809411918161991334865449882172516239655931706796633748403059854365894130148031885625545342567323633648599210421494221151501779105488584917492732569044116059191974223323675619898458821348440922437371179017644983416844036643410420510958663890086740793669748262147305285284369508330028618657532261825618681241510446976836940095768084890055382606581599617598677548150226082675017260602984295872209293123293499265299270125297270260983707213771386522384404023654414076709252779681290703549248946554415188522333210222217906525894272757241991123190623197609918183806467781667272829406510897447499748331356361609466706688682995577137094532102592047363302953305027266280607078663588165642242438227075641997783443165497096984776295028534150065390380576492240177900155825788167838211153445028182616065323343686618497540404941361209656189234334808410295821184851674876102668548800490097704476032238590767728570827304244048834878837617713810628300049253433573046830080420862034111447967128754853078757851993603699823548166358965647543046251524714398701724843605168472657249718735160412305072426252597674125477232072906649620873611531372525249065962202971901994934756202451784409071987699773434233733576749460465569635958458871968275626387042114224189101449261432973954990156707305855250823096641982178289457727178327379750821840305591515620894296305341800974044079233210543817392961108323666510156985245262870058713793274293426410897446292947880576973627275866811439359472617590331032447574041147235986936759484152913062695872900543341409307856716477216748080941115927955565761533487207168871269627653467255576334525211953252704233479188160801652262375311286547424037432105784839535534920482244359436912697729244134261146542678262179170873610978578878708795604252388172902955558228604445167178018558562323225048274285071697748801294764679605021887073280510588288730147266871595095425689417106871508104292045969389880575323311562578911444354959783573767517189589865582200607152924760734129191277815566741237686504916738385242708231613778038889615055031773544515644170259600874556891754153451081945557846325110558735231597929635770726494239958389889227270841546322220390880627431908434384062583547393189822112981627393280225885288084066781053333709969337046181777826308572068272785888908737606058636591612406763817832529863948609085481508695267425909613547291304933397045608045704582713221951763104212988295411616410408228095979490316909971088593394314646349447711895616842985105397639342562883632026841859160571160766598927596094343534835117969336426686696543855065681915862256386155097502601466746698560202376234318879990879168728981694489389008294084920850188405471363877850910404886210234369709664225071568115649488319417964599048286246773736214440598023260424932603854270957042292422651725321690344051078113920878304030653425708455669174093214826498908344325630622797411409294511312073507418641634529919075380445011711060540662991174525277447208531396554568076787334312518975676641088392933206444715569341481285304758085700406315938089940460285249154994503719562682874049585046120351663616876239848862335822909272593623848759453634492703566889745241413261039843393158134112812404071407417777597693291211657591047507381158037629872606140400103363761941827502949776873159519835151606861251464750530731880801477817662151843457192730676759164427071914908074458234087979850024628334984400263639662351339255641370641874363654959886132146778640591136865148105242853192886749863680488197348722107924139444450135593909725836397836679598358590719592208146243669379547527449787069051745922620731236895475894581855284138592998059469572192545412136601181126761220471992646413654038298055187275093174115244970333975403183401740446397251028237869737177836868594607450209183364289444411064768957009560443847768305498207587481534818061907509504442939677325756988599428646248124687468585061534284657681154775377952396903285633331822099204770412098873041071804651840138317734646037486404658589279197675117642760617620360773128875770255773452494148013215773776837082084547730485743986977016664319742487999471998074077805233219851817615713705214415764211656674572349573889895658981029391739816612698802608194657313149847305834790379150139082810384917336597369888653633361285811919412870740856627708302086248354708280894876385146537464955975042089132255778971769335335501227858291713512634410573044174298791389773110453977713874960429758221277691723551318935579756843455153347492389930840519436736497692714897383325951199096224522000301049892042905466117750640870483290540102419289785424209956139387717035598689013887616804380720343764442478346711344275862177760016578163881158270743894457750081978437705017025188238291668754507163520850005326369412091451411323240864473197262496311931881489849596040577007629055762865599545402575108933073267875135147235827838648672389596059953097422083027643910449299012758455206483093241729664732657036281380033604463874550919700997695854287965603841678916894592596622124193171542980101750881712262743726080815721367648273562938000677137511488418975863722473280346587915334432825771284769689258037915144786113299872325366168519088788590345377008991149335824718106369830519002610780717208727500442690940422087279969855959160734433668072676383937577406304050385284392562710192582097526141700829795944919305099734276304069592878020591752435408721041991667970473364215704195580108772184472336293741603260535624976170800733622660900889604747992230564989230576882661998178711884830483029722826670682035368412337084149842632455798114178624853611003780783592028415585328505078560732669377951851772225931941144405672325490247985889722300107127179477237355365631700180629319446280001154812580613995860956555615405885192754611423693363033755424724148771040738919240202108836666659241233590728119211595729144374803293394827883046615177211143327015907049091557339710878822213324157691944020058136967111712263663506554067035392161511686530940632481858082170035928084001928524642970227064155900952891239178116203377126510333840094604442368733426421757567723097931564411025053507188608247652072329585559678477375514408510137479401467873756395407020113361319878062005898271388300064773167119236586817144889316812579164489685987404583082388376994994047449970935926848482345741436926436931285739797248757510473557788858263365049361547034621124537645562917234400242879539131577606613323178894649699785763599788895507311864951687595919343856765294846402577026111105791957595570902680021913289145965875145384074013779293276302388906672691533778558259501249524952643070965175277043817612966827786893990929189577793365637655651953848919344988254685004793555053150093951154097138695863946851484147699078839768339249080983439353143881975980179385833960488450628846658305596465608897175035149387854032178057339523515436847312315569479004171732422305586214988849038052096878779015981384361900550346196968204290620731688467371676735911047476544707530764686673066302937524088454974129879842862982428701703725881293757281974040063142102177855532713949458318957760265583343898468489400134817086789474539898792893385806858404297502994170562951318738509926976686528650071504924452363537796968658820297739487642444479657905739721411453270931378208341599548200039608669015558184827147360425752339519382446453272700199693827391891619214922333290440972378744876525518472029332191722884361235550427049794390560957468723804185479507305397371812606773853087652886050386238101841975057413261718189272084895303284760334076925350773177472819303071338008054548055865439244792604614537679347514812353033014109734382160830960201690297302004951113568520225507963447607018509003480983262007230442289365193479143161272844025308527001693577447988815591333915202576142849680130415322408435180652629533910400892412819525024254893695701653476554951404215050857385817335127521018872768513439728629454831687407357302565128825148937797580320766038462748446544194208223463041878204101570786982284932781122380170324656210547721837734569867408136855874446400074555761587571157591721865157607903627407574677961837624238965290476304211837492683626354024857802741461656656449023835891746843393395869965161546912038895705263331946398557684600564839380869881269012255024846371250144869441953951778236746666467770175693282414625740620389713820743260750469677563931413845553643924553203097033526148039209228062915304756736308277577220678414755963710591328504053754078143152893912933235601284279580276150525208032971098981696657897285226342097443445123490737306599251309004540997256876606947509416254897933615954332780063279941341941214390315965875315781828353348680609843918118925792376266035918984934872858527685758310332263661820655347648230483750013640773989057971105447236369975983204786903405933408241384535116403550516777756282341717650898427971396296297684019051509835097334786402722983264264657683010114881749399458478402303204590709020461599703461293802477336305845044510623709891326537648428485449970302947319733092027725281268010711541027383733295664732596586648060390471095061826079240303896237080627933774408246126982410813540299697190782996927662905543248858689907750258437959767382790458418707195754038174644259242290229623521146194847098415013738317616864018788234220220569838907418144099925234611241455861765784285976668306315994641345169124713197353636364966975098505964056544650334972985238377903384767919709749092136650478505305061611869051855795626539074070560831730510036802246858653813272719066212200895731662509792370575673832669013050164440758405648089246667796704404583742471841241369881351521919229092747025860059259973502384915248825491941361278821248003391008648107957450850373820569061868256400023174544242595302463075196293022783195663254546556467673696092297528069637414646586243645410857526381871212162621016104659333162508888008911352569983118733856646407186378726637853687653211217839865656457429908195485714247390610381609908164351682983062106125875980329826323641075371595647804892002888575296825756358458466711439725698668895234449114929585677518113856530182608069243879914890933269185620051705881997589146117299291159199601202311198645431985241121048976517199041252741279405114796197835237787017871888776145054657387779750239011421751367030863111373482895164418388215887617619608352322321578373684204358281956632944711979586545943894140892281486872247682570820420151547777560370479476731144953584581057682195490478195891561076497631870244456960138388771247867800238921729301368848483169471652407108134864425098948465208232288559816168121786579299025845791378198822594345816483822254417950471839079717455455191454254129042756433140023039450225756226093560105880695795181714842935512467799888128822096367632440913129300734495850300020993602151938108566010194423415519565396969737749042298213510026979481316791891132726539843877843739147887660824846370616808768484343058556764622863913365937792501072330501742759258209685925503094189515883432389431037548551062746565373620806488202574206306133355587080690661748631983118428226696989419398030367807806762388363082429741369245326815530561295388015331731271870193768404569288395913319867329687154910661638714647052483858537905614522064529457057771358554107430773499556861009599752772112165608081608171592462953468466455708203123878457866605171774998311218451688053378395347113969031191098670094651128663848408094592195694659496958441190364218231303668283464466051804775265089981328357229686356224750317566299803043368369912710110673549192507877175036938826317356500945893706629581721261285038713569302268113170038827692735122945940499786163524716547596694132293377866032042760802689878500847493121660380926129627555668900735957152092312130186299040977998338552816386608731902035486720430405180131131317532860442095681533521822582282907134947131288606779142402152996292861535047848618514158920097874921288868915810998387759193767699969313163290032277097728692429418811754335274982588134301240419415662843557126362922596165431794955687667601709058581768832946770617973945682970058442261894082940782833140078848948612762018541674119705576441360598503611730544756483114998733949537748225828431306446842094779500258511626114735548999139242469883578852671898802126245005676688656797865204091963949055052892878608861029983003690837190292242605835027403125810713274119767792417996337575487128061751568374581465356744919491305282329600682206777997579090130171626961871475551133711608411435749351423410202251428622587918623688555562683843093829967369069973533724034900447698725157325422995382188696779314168025185544123123971560177255903382225180967874264606740670829542908815880091224137910431692049938515939780721240558444076329528509477975234112609405118560540005315569038665521018053593612487495648340924543715907995585088095793503248693990259393752103927046468467428553352668104655553523841101288943826872849533709801695492708678479383010511427074939644174835886885723017645254921610790944101796205097240231634456254167006743373992978989024172745624619082281480389400896392905146281895715876117127453600719168363948107970754369241530412430663962390713382062138227386465774629661991861537426322626018711729534957538128823564034979625765784354410884442247358031126516744094057711520498404410113830032093544389591320392869356873654720768466451891345412867008951230901291507632632479608739740644822213756770486988622818723839319794854438038232118773472388568743995985444080456295487263206554111446109231737932985387368303621238221361847268760864535283263122072641037488621591912106420973301402671438507820956224639677639389081119930967726382990902793882872791709605439150109734994317664551255449717023536208646005793549081858423140090299735742552288873678370209634846775882996374213510380440235961675889199811151719012813195872683620971730403731962761441520062775973425373575658228332667085869999226827806803250506656592335014224508613863547369450019138925617373834958707962485400675636445878949258987361904560910966862098107661212267496973774878080493758849345364714043451914292409599771042080158941576635799663230494120214975936788587429124864015127696709753825944135829309283390496903720140245318553990412623091547397152146284678667226668393497166924221159697545270523734653175300209002600313948621255516037955610117898709161713355250471718109881979739474698033093285246732174460813873383811350177464810098690953465842473241932968899922953734022978915212739867597615112339119170593268207795506150822362691582533522928497377793108317628055356570947850811118692476884399725199440659521572694797674071461179469551433519761473973740271841668917794286467628312820921323072403346798908129595806235421807729071439876376231656997764165337411543350747344991245068365003556481988374386670709493598053256090111812737632725489395409583005836242686932675589164645799634497286835011682083641500233418543793527067814338390445487710833151339659545281028186217308910089565674100975529613480830277958835211135230803366732109533867431370321644557718716296373489261336908831904030728986891642671534128078422539350097020416790341305642355234431217876275904289481636363869110142699038566646334410630322449551551830526951715765413021906401591731786657921943360028548470266320128824735070112088198867197444738081492194079470326199205120613492208496820722174564772374866857812707916132572392610519305200434290081801624399861664665757631603770405371729248075160724697988238915475658707461409335144798955917273849677851486949040759564311321576831024698986366154310970656319706362984084248539654833328137246776100238228232228651559202810931130270428527659238841494372546146564636706183744813911916135568177091543724346777487878312964522774592822838558921903397308196676059675245183825291325697955396167604408694801012153285584755579497952218748184872456998568423958259688069670849872293655920037349644900144087555264306814968839846031987275028270139573696097899969868060071221042019358540803685084707233369160024906348173196037322153444648519577213525157081249956539265983982231606691789354861378177317744460118617527080148220800239203811498688310412713263984475019655339210654249173185220777620723658373533592408952112053961360904159074678616790298160328108880000995309961532323817173778413372589580683560976844784062774361887471964190288217810363669818459606227121402133190704895536280720918392855338139596989807543588832734306672216220133798094865403699466959892404719678562987002034259999414719887325153867324472267295338883375650246233827926365733131786274846006412635012243692648434565208833991115735630078347520092527408692077264904835727673316697229910750137426002738300382269898242569569193987894446419315776341217975579547899861141416083283842933895897244632947711764636022098871685848675561203898140372373569267460643154296904382466519940546755232213580815551207555578423338164676158449511129951404283933880450137728678101323364953353148086386177922447167971613493582650494657950467336425430647278580885890918647199080136261826662596236026426116515403981416580618315183304144596365280791833213265876986255815713238812323543640644297953745204584760160195741963797692334411687800634123680652625835145550076131577550171695895906469330190406500818261519493257658604114968232627615390184914210173025991581145552413991565476627886897189594923906455703914746685950065856065880027342662928933641471199690571926386447929621379879857102394597295890218946694100739516198098958530665623674806224176817917602027426143884633127016346372255688042862943346269029116672056733883649049746711019585440823438546353079720595638947841363711104119044924342464996619932229289675599073960405983067946555840898138552583655611523945251317960075951410825049437314487438914193737907319235738873855001432339317071524428801494342481846672290758894802573517264798000613473015492516358191136643318089050013103184169487591033979258626131881253988673776289233240844822931955285144020061992636072102568352800507258045978097011747730466051226492377813202621918418749806560764054287221458178455655823684589784986998629773941511759552265370877426222620985252866004551567689802931811398802291913020593038666187685302526132212255114965506815921852359331531112917338342571228767518324324777385164960916880822648665354957867237028095652286264186073421268025113223530981205902975456851041993944294106435914452995196434493787005366728281789963734670323446361988089065919424395234110605814516103027847203067712305302373493530013472363846841741474243476227384640730987982319301470517142926674343465263986046739820655184945704747493975284063822493603404510112132530526996403277676260819666129189986166345472629259233390665453796192845370103464030081910692186750979538545690511432808250435364975021987127905189682932751222720548743198480166881188203203270014240400552496267244842275519046501175568658336898506825754614697056856899064159217851670432921444186437642544522745965873478242886282539090142156009555414367162288815788586846491919095062258960511311966452484661116739281316265015996239769327977538803723177046702849965664340054523514646934986290769528053769100971240493927009045557833740608232892220287162344406366751815454781526463024043952879067257150419097557224436643390905409234441034696627764915235761933085880944662426096468324762800263887987003009451277212757600019176339912678666528659089973876133158072315107562671668722315716722282844916683713770835155500289422069231837537210527870806537693933369123124562671154911852637616152173740128506644621770568940780654778774019464210943155114409283243588426820799804653148496262354340465892694902471077893144050824149958505621225747168564681459135068930479165547650886086625243080942344922038976303045587861187638560969832303691124755031401650496249834721307314001916320996880900448569265657951242821518522232684125840550155685377190929002686600946220369232165153383975009916317758450009637409820234889974163980753052430615533076171067191483856827810775646023211426798922900722076988849373268002099240843097163250835880814409070672304915144330300265885296054377013191310665186346463619500035854777835921371450323726277034834324399115780725467576741838754827048955328194145418818111069344455053085837381816891550822244973803398629783504175268919001541164985887257760775273502749219755200014595770805974471473637203404211812108111566736030015551474563348211064426739138986438108683321681138935217233121944928665888999191479809615519852382667222774316015191485517186598613680400223372138893529828484322107237979476518615945064201880376765204803494301929954181838422298095972045748709085303025264343785042468353346816649676357644743165461329415723106347805781447015470223401825278602065228603708282996922006144147448592590547428122839811659292115597960726450502971716291044902006766713225031252586963190367496389099680085166093482819027373903875367900333527924643530864462916411702097960373243232977250953375511937146890185929499450075674606382753846201795659944742476438001477731960509439055538644607725139181322000584445567602538296449871960734372110261415013525417604457417378144157522382839829828366451167062153586420524152514246194778834174488790627807593946287927403855464290809672527013611556001752122384759918624062928986625148848044049216131814975366027374161459651383610982961792060972432482259330251084414326215245100948580286654856637624847181596639329310001128496565910737162951934928087647999472210684510337287759376473245680348944715285617638954537765441284193439065982079700422587476737518957904674914465690043080140297071730500490634977866887803344904910306645550686570314083372706318928966185488705193026351420802712522614319829463833498833685599252657877691409872416426699379062681615149802781621638351946337976107342220802680078561692959634466130754001468210843542399278740221355505867290487008359698358805087096380691520560401325598437101962163324397984858152794020853055484595413677827570026819195120359647584404067253614863254468779958103328007118815032887392003946605627807019930159449406932006579071133577067499834834723065296417928848151366519737225557017446516885930672647454913440371047511738677983750953285060608215970297092256594421127217600423891870000030629871931636856765761899974667339447704473355146610400572602415285695318011354267898026394191767315017852299254592538746238614340828289480969669132701821992510836486126264155281539757949218106676628499959512326750601805442239910337643388008841878280882064672045902172851672312676141004807256101910484253779397670311684450080634977184058160321792815097047131654089412263125928020336699397771012493080624272959679903527383292311067570385386279798869276807161841525006305800561131905148181630437126229353707184522117821511082799323873517961017222706081915027168700703690878400469865702430052282415882048710857346991659606773406099033927504714448418725653011838358350790901514883455751550056391665376485458197848668703158097200074820022269416385161031478228181348292491133334615549253294607304053829687307998802434544169423039529114874956091717068881460492991135750783948572494817012812218729395450647327015109808706601482311130588532212668534490775690668067843976519812222810329178158596218338573991574273057410904915399504842116819677245070902527273083622794991143194522821372694208583579542911502407165357234867868975337098722113751957403344083794970544528758215600097978212443353408973195306579933479933143521010580780311916892304564612340998137526678471460465008655134912817117486201147944294937493931496917112682030867418180628659946289495343795302331686816327663522833601581435820264313543059471656845822879615501909478901631499331631492933576032385636481900887484836201676779265323461857113717429913111641252343795242090120907028850256326437556874853760167592584590531955409097019471137600350848837528654865144808097746167407361703076380797029584336001641756382346781525497626201048690823681816446643306402042559520866302744816872741078087017207434623452878473608377617019134566745006138941406704871113619295606879697116848813280618376371041662591503954970290130719865534949689963223123783304563955663698513619356939314471393994555623276560455270779002217722918513099830652197067691548969794937395538148835779949379715436472331201936283323871415963881081385741820896646245530260841158107560659674672840976665867337825056400656814863532929571460366847725353976717023652309110581561448175241274020307518157946949001572169218505908479570443856158358171172276907558766810903462409246057334699443406263104524195758334034694299963572098153514317780951241673674798581701797847655576670587045861316235709733491783277484197708781001408347272978944585701116134814115344797517205782369916397216657508228125254837737477041966660255018061241491848317308561217470986920183743659391749973651482435022582914722134450569552190488267064199344966613867810959246194109990299743729222296817537712580329582425784324274371834502775337810760767895623029144708987023085551594029205423095087783495952959544950932393353245790041788737041559702180008208330212859108096579903247665019268923495509697878647137517166892859345737596139558667776202365100148225401871835320017253588542936784218190541603546446728971000348511139799174693535278093284345402299752683224062772846609589913340175679636873928532686398316284683521703308638980025434119019887411496972735713708135126970308613386861982775185603283649124202138980051751331974195856995256446976453058729564627848942455792727270807810450159129293740069494151953884133306207732171139900931062187201489893459600857225160393902281246762440676541596086900296767009931757922165320314080172714438337368247720109926123161632621460439361832758042388950537281649826144935241122175032831915702553957509891241606400493122178467968686816768407268663897721230346323032092595450738570750337995001985234495658046670607363098807561639513887587539785110792189904335816184442284338662695044383255006301850145776663418292293517922449062602448871265033054029525166141351659092149443044499448069771307730790995288725389870084660390968424924922720812553139636208667748721236862775875371300440896692560783748112782940366645330440339651022566221954930575031967998157038952628569222488793821969540381812207726430855448264012173865569308324224094875875646578895766887717987932647815578529291471095074538421962836069513217975642725999650882439722202418860488288426447692750252787139914592933162256030897131722560927156062210588054581947534797069105105430264032173831444357209857903813580937228439407461489672686578904900930383681281929519625197431552739382665754620275439718691150393909707238436738530079409086351732252443578988797128041174248066110396773589488316771095244654845487315587232049048408296795316996282162180829042061598028442435035798342926484313429204286627323233387709984118220587854358037150856472581727328201187304303945874738689063205621540385847841368205715015860383335377618995322356933038492800022140559976336330738174837723956278299784576932028920723046353063660524670471469392117092796805598887145984143599618041231801654033232580145732254676476966054428364678282463901198759042453633006515001666195292597079675178605958486779848548984426377838025123103999577536313940680291919317178578925885893679287982187171593449993245948242269970127547539676781422932576811226306530031095395630766540946983568393378242697831612432734634333878772163312115081304486742998887872935678387624247368540721372398362192357199018685367873783248377564899452459203464941821712307175883704789746993783877326024435463234773950160626051585919351991187019641791550436144010455414370584566530247570698898589578550669420644809991998135068256387102441344359642048808797137787350152788019011861870035570277695708930128146023366570066929567836256626033131143309180520958031985141288185040947702008070715820407883846012702718726516017577235715940453282116066326905584175875081795473822047407263209170148417722473650240640829544780724555016080638924858365836967728936145637745746561157796377932302915853358795519369284519422320755962198548754977782647859428548053399119644295973270192740471529227259945197531506127525009455652454368348847036383869057221387100074034196020235818225017849040879709889414904816197026088680725765624996502413319028890732143691564651902174035238743703609036705449154883179347691843529520634786796995511003837106572238975283775677019760819323923730304917711095701235030689019777956099507332944174611578605140572853220905845071411240029450836970019646332913555136317491331592862015745090373771814978511662976745434447045504586617341357018815527262437248770492678064990055483915524881340610989787778916459626548021242955603372801663538344201772815717347324997337174259233889409193496735717403689849930581892300744644614328848383047126928423314029613520052592036426558501181585410750578319948997143076439858712663488561201660078760194747067081755454144554222872551722835725909891421643206033771227700612558138682688379754157255568317843506069274016086502173272208712023680285898049891671302255682368310834728879844072706537485054729153641253742454489060433479181701192308593009501876532984766633269031737723103502301876176825421049863674365269052507408242060927507451057146145254915076282529142347111710007236929959123188650109985005812061567311205166847544904579548485888341829802327277791432012128473344815380837712051326521581879393100959459845560318741998075378264476438980139955088308569513244303433496909474408718977603738702926421018682979642341356065875129260713962810796116507691115215775217478174468240867803935211717084435634474176938497087643171780089754855262443789507497671042327958935211381957771250036936241533568489360342416101102970243022262809440688515722713789214683555663745536867342836057571379697610833793298785027076947295826145120985596147039784627867009752692066460234557946997481244811577699846327022438320568170730884871806316086088649071011353612228355151873211902051821233465692800602059666752798118762293859996178637387114343016097076880214078404663242311340748758180352397846784999010088781910243221204755868518518251724058105877832647466924897134911418442696320326936286904411033315115680275880390171125919701499314174636977977312471790780917776376680050427508349985140810156875986100081717713767422793442880406727131570036644746103995517729808218693889381738102032862509998782151015784277511258608858752131233326963201945809253992858916866243543263414093749869480147108803495468803507818203899928206681408322050506150252447498286230090534569629815322884660110403211942864605117164127042408374325111563454166453592207071451959458669291268396588551671892251778986406166874859381937297676315713704296823158343017483812894162317261123424844324046292678017474729270443284466461614164807324413677977541922384799571757440444062041239375721012641729681012023148410223619427459456436361612424674561697615310610299435165977994218142513668895708646811784291895517989102407358427732469062583923345903673082332412285508959219702887539052447447542860729269883518971378335088256570544537671370283882027022304218507090385367656032162414256072314749626196258138417353395622608658080039462863999687954286721298407125425630940387236412550497011314878272132591311234812862957643419454397200892805346657233497986410464447198155401066173782294331936777248467960287244241139101890160972005732330374068026745614931432821728108310055801810163627249292807873249805470391117950740957366537920506363143489705095523387975228210466937428842895871905005060464137735323461881734007095177697724069051226694916944577133570999596407377338566282934964599145834681601862956112190431490066780452925390376313646202236841743832647420572037774174028643770620704191974915056996631116901039993490244140186758732148613125729388547033601962523184228170012193170822471428724223558394660215614547720940182533414741382043756960718012419836342961097577221247508191499557376088249573804836985086418509108064029713482573161536781520717045383385335337231225061991377552436077515190995168887998565707203484679699306129310744724076345468727832234977794422214234354674071982943642425094665270811711582429901750657789383180909743786444042981761284460809412843102579631093243345835716149549780139202695149753380674420724022753779429268115914725636608414191474396160761151143830001283298867430605431169841795301000734418286126775310708412503460224933536510282373582213854078381270914106923087736545285594203567279655906670274386086097470622991731689580307443461337876091710796463955586384968356262801328272930939595359014207175018350389360721641595731282225905685296152172773722644136073379678130834754631618968129099906928814481949835766630538168496610113879441587355977143746005554385274343382069109090572994460641264774675921121224642045905020708593076722653063820740392921757564826163402816405199788728260036612263915459284596364100677750733211329809840900520756019216293935099716981399533439158657360984977422382598573960580133152877869891264913183339886716454086042355334932368042780294986654138791013879667078164898699677593597212893504780344471749365087560616410268177098991709486267226483099707291707168238659131405518364284122116633253441401996748033795019438048688613965565342198102717032319510314700699855866475424950528620900382885650423446748135748212718833583154264075091279253375267215881724308308378080671787006338238180238584065701841403845867735605095625035977038920943381131247429385984857297384236974569333497812049773826496746326764971192700255690936902982951282912813094799208563589166477529776304829379699447263726331909393954444475292230287770835701941311595687065246219224749015452962470537854990738224325039116005112644491203532622294830784774065696858491805014730683059028841859912348367249623312424894400711997104677554084588259002624100481662194860664740283748993528427296159072286134019791591680439147643520962159204617852155837470700342965615544348540639846429401066754612174100683162122957342864434568998496941977031343676512218919772985477792719660081205786757917226187241311919154958156686497485577867493297460723693600834601143446802238383772469961324281400807583153237536763348247256964712237861339885592255763312555067298114095187650503035354161919345447039706283471201108247203022146012836437023507667260097082187764676468727987227660234518197583190523939894916447768244688827557586179856293513414706269688174182871920779189298468736011593544620478222581635593033739845365780274560511376938556743236678317086996118795717495871982665025874990291740698237012206065613502379614687775814746545152353185361278752420833075237948324977336317152164482963463983680732258791756973269767504604604022935212063326410755513744675343148293501448404708730013597242679488669944585489911398219170399205194163398725192271649229138183198957084008781415232668153937890864469465157011048915014953629666251901365311365677480312623575930345627734660754751183064258300214619424739793786657396699584601948521668853673487057789392605127907712569314257211691939722539777627678532030018662820420794923833234562380798962163786403827810854536306938890287068083433267655239198198861775760047763520391447539527031436929833922917455739381263335966436371539651079990637782493804745840148123010594943494225052573806820202096316229378743943782616282487831620793191312741046125023483645672697862906852141626215425501489127069808389652706035004136173371475919981100786540028964553587593352936335204784631074617162769629699830224362515237347798634985104261021619233840345225013371652088211319101331622236664315426746248653769025350609412398998228750465774993921349735692298416702975616794860108901912348408607682942744015064848891451462378042093754532804548876298453577177900815757713002742190593252071091983246340546580970701869794522740710196265353921245925010518934635021421538535143691138906237618854493857440989139348952072434637604281557867844552040319442818930910969227815486378793101018119605379970445177253452625971550250017798236127639345323159549176429426587961020043748515770166669487511672308629923186749703729873218088442975170357118013224138267056010976095484577348276670159372019121471574453642812165791887802117770307237829318584053777672658026338151711399418349111556151780120023240664813270661296807813764376440695075481434632767763693349646822567876400278290966423038394923954999606184353435610665692386788909640631912319149158066531823348939385045827698799820354521955146977141154100099876512814957831929476855168704159886426851729767836613118106281260728736194420270420192970445400983177822421887792933102373639676628912560376731033816158789855847978102997608443862071012357805055849645779847032129640256721461605405704775467434070697945663295406339394002814704774101846505783957392942615877337150635013294005098403140886270924494881321963034090421449327861234951194731019351540051164580208319420002773883925300929350416804350330698956794428848310233300668408229953249962020380161209979314425231727958088008255964136415584644498123241204557329340147957261844017883091265494234484452930909118265231823248272823638908964639546665562693144087869319021341563921950282283924726807430343704721265269558423443642531950331569580574417921132409424087269225837678215947045207112726985765984280225333189327384701537230448431316485405928890571264838700747456217830288995958127473891803575339736286816064566048103260472447586342620648910873920573981836798994001987207464500820130100582991191925201393566981416341692170187671837139066839422554770438898960572060452055109081684918817392009675293009480572799468033376104999539741162620490080462583636900930751896804944246901249558191203673810772789822414761220245237824332937761361695656237969388618518609480693481104654788667077646555174996179171295922508818910004691617061334332442505998990628466414165885973307140338052357948580862713608740967914011790849906938270124888579245388922969678246631142578820014398350874149327307032813395588062730151912188064785584250895989441930968482170279093930570989641273413576616103867796687525595636226707477016962355052457756901228393320903551034043918787442221691259677733142254358515268075712619885155271293207775175431489690942157277144073317121552388643443973661973880760474950369629952358269508181727161860053593378109806363583624715959688324015190289625886582143362167657963841103764644116799470001141921533332832071422760943191810796343487163372619471673540617212377668014084777955004721587061342664724609105863502787065892402700327667981058461618412632626656296986190178902209830843232174766800378798139308010974140978680888387650512330502562861187015383214199545433855653716955880351514481836842198969927290907787609945732579187499436740563320428819676964416874065448467983131791086848648939187377209624594677659308993443892805840088410557547025028935312559986200224745829343489539721648398424366155694843857546781976601274356790460722893845404929047818449380519036127031423647417462546474059129068100442114387723747538057119247329682442848858784805286391988671708705777424931343411855104123437813489890806538156744557152618221896297665619696948352392847991869360644989451748340714300527573464815059019390451737673573404498619050047701558236931934395366207209923221467169385957658220368191302166553649059198711306636717422448088765015531401040971313597367995603404817708907502059172852085247671921009546534231786287686290651750752916742099527338536556223406035438223449976926963930355594146960782597039856516848096543848530898140349258947577702870151796825800294126064730716055409680956842588920896228485906612609923503566084044157539695576990854085438501883930347155396555997621607721316245052383302129278012336397617428700510412348621484746836920550919196675655244154946574678211675552159923276942526448974704772575019751027787396714683373089763818015313211329857617515746898618031873102955404873366007355284740198491799394854423366133920128155638330349113408419396917756844510427643416734049755444754440415797280339729267143245508420316516979988090490770178085223685656340528876381912747393025537129231241295386908462252132533716197322615098202230975720992717987919830148733859147978435859461448218761363938376709147405868730356567749676686087436998489041447899940307434400288463920304732567569247546988384160519314515267835645721851894099837679544508608019188044168906254075577062205290750465462440354455682228095116301537042840351677201301206622277231197996878477958869162517794367173032030306556966082764763355086102274905133365022996109479019064599330042199899695206809811860903632235883556840044957926585054641509149584129162066923390195820882895791545658311426222370299458899967704966890191087504924734201665886623742099448579143022271071789762120602862844535511593527416713524959497491745478499959794026548863155226676433028684006106692010476088764446004170688040256098879229176717585783844280133291951607751207445383421558502093752900662348997590236271943610608775193777087050311235298691916015481078027722132167238320468450435515819191792133377738826526411784479325666240098025980445059507941700593492549988214077112525778920380115953487729249651839645840151529994220730407686731582998764060533829822974501785423410580576717362262714508406488462260107934535622229700265520725960364737175757956915904161466412001124161843026153949637842402446160091036247824755264832437493528493529287612690797439934334570558128810821095255566197943968022006749174000437587462558953806427600424395133162458502123250770398124706670487391200442699726196995036455814625151389918683414491117135379336527694450139685363306462295998591041462343902238262621880656999272793405712150465115296133980151078664430003648160506910967495004047228907805644185733900497013736093973934548180787665793401906740939025683114331516080385169662903959267042086569948200072008357373664299354310527749215681030938925576140148898859882974022627195424701969239503694225329679920636262943465643902611825298183678436599650574550181709078704684836279647797813771527599317187830852199873864581864460403963885678574352007394706843303672185211771346488936505600871654504194971576814053769915085450249576400693609385705481135044668442930660343906060914289567557258802329975893372959993984378439290357797482140457638124271618985903338741160719878917347016187485503110426940456900238559852896631447658254490137271149274007704325402364726426497662668519365223878350167309671100391341316446736954798486779434873433987244407666722472541297948907888539978171592080196299827943518299280600918581778833102522285497787917102862430439795376746349320429555443721467888184849557843455276268845577912116864745319741049992439315785682065300379055907018377859791429115233911930910484842972016793456505562652261173606858037481790402848690339702859513322842947250727092221007609578602945578426572528458889527732041761105747464339371760101039327081887698579936996263846124175569316614191131365270832712197277053672595307954083368177754234166050463716389492075280173463821955202714926401687237600206289728118283870676060923432461619736398908040237541951555272665624104700402775191869749544917968480104207239994405094969958420080852756638289251250164224365537997294203205948959164839796435755708701624165223263250008576885840994901142779618205962317043718853966622651454651035676201936508464081255610440134428700329435173751358302138221775389026534300084050157267738280177097333537220855920885751816551513388279379738858853187225872378534418091101049558114374424258002093913379705253633672285805940038458354751700487948131434896340397213480149043381564715088824208563888646556163082812886718265165333701880346768037875776340278341581345404349918133822977050637476877806287801669028082732867727122084766865240042528256552120095293401351780015146771893573376155908110540895298668685889756992812034401287328395697587154507759587255993396070223643491599141630063384541895272161090072266637135391777441210871231351439094252324263834519288285556692870131798406902159393396039257347244442854651289467403681312983838082717293422730934715066547525607654889028482112592698549713884705731397191649571788859588238995186841306899737917198449060551870947679061969440215605229984924970615669166614226893620211533975243673876779497750210013658393676984261083474527577118082133249638916366901207839749400965926103825111445242983649397859969693854848994067686813794704725646609567186055169965970489525968749135495794737030966467427115764327526608190412746040443628900696554831269315136330017713045231943747994834022171563208155929642275718548041882125772933255898450989428257032415900112597519783397983312260604492828581945563185624296780664915076842303017174813476635575350421854184331253664625876528634077948426522539538158256357300060076956667849284768316192793187995901394125777525462639187158550120974191246341089768945973104319305440819737989536374536877757033579002404721415855021480126822298695856362579913868768351439326654350815760185974672332998647172787775859803947304512636404505753344260322066052320838916125121125925858058748022601262913249534329075768722852547846654479991134620540054897316074497850712152932906952968342772173417660464856917076606019915675104242438906644540735083950631942497040091107217125733999226842075753128419496698309079735907375435861981413404952307471086488625154102367843378306936640741839118444543470524665647548748973948615697454401390448486281627152888581280423960561892229565188014573322872156988149381139135254263465170096847538716731002945234060749077782446493301715017491053078548138869274193673037948909011793588897865277281209008210403475642211499502369401737248357351685476959673400008655273082106334940395558728184097413002405687657369140386179263934402897757904636148682714220311867206176082276791351424656542412579258622009553352246461694190190298987144157636707512583842261562073245931619390046525006868742612893137937647813837072606872848826286743969026175058673795676490719187618729228977397395413970628739502919327603233428595867904592076017084996771830728152761378688512927832088062315595177595788364928857137538567640210107336664662503080442630525094293441212870721437192470929643229836235335960625822121955381255195228456876891507020813460123639379297875268937168606767088392936205059524548953197894346388896249206633868281392965884221345001224039981289643318208827473888673735256720138421641200035192051579844165707274127644873956492870181197502993859076105194455422458657277493856260138998657044434626924378433395016001094173704879294089290771042805966727146610811870906008537180394021728761099102036654629198065795754105888163892362122116070135068595084182193637715715168414295341770213611447343582691781344359126481476377114091150893182874391496512761680972987697363473599488316395647371406998759857655365033162300272027106824733782058261084635396749178438058478838149092133186908214311576489585098148193932764186657615231020441148087748826846007100012079535426496763433562487284908972294530440705964797168990989018589734068439768165922339442590475450494956878131201009128303348631363456415673833174188440990135701975441660800173908606645200192333635797981622019135236181555190711197591745304952686148944808346557240870393180247912776502384262185409949346247271826074332851821205227024313840444355571468213202274424519225356672809229160710240000335837041854518100605988881424442357311548683932164267915118913350082277895982362605197284619472541653134061137695831748814288167195227911824147062487797488925359600042094596160997433501329902555260483449901420756361225003571650517870163872258718313264661856544112020996631358050911332690146618232412634161205901338279263469652379878998042420256256519534830075523091441172357822043139575775534639877483868908511505224646135569781934900215928535092664283453989255034428231702945720802671095987105862700617506348850033967399647629515657323809341294883324276679983838276662611337194957402810316394741028069364963219156738653479351832782547671392230418572709314385071362423044483611936968000983074655616672302690040364295523342702206884659235590507792655500789374453900268180265634723632637743729747539742424392022669939587670420986094257738920739065899699522596679978805153449144286382291377979209387350987796245447507271928518042155112367671013753784191455269815105652432404586162024009290289004440691851460607131162077011721976731847930236098822580387133224669146703849941387790152300158612939750476404414936911644180659578940758927781275585937052324917119186754418164127683289039145557278933299745459273712957152659623305617823013726756255956536990032261075557771083689969991234484166812901034659336976908681374393913059227635953293604200658697623289892790264549533851511920194172083248944847224511572939382289817981765556301859600367366333383153495850643542909450748642013126200692568139011322061855197122450344923582282679696638426764293493404812214669638015114583650720623449287063931342201836299578778880938832370052589133274013194142909098310947164288046182552362469011977895129086584316483459229120099386570781481800530772533342172358536738320288940181638532835826404923047891576410373783127279797593941074080921958198621857877364149368224577133687780807651775653657817798936373226876960671004825805522809770553841332605379177727872134203840838592234423812745813358281633916521987153384835565046083023387527730690235869975787274634356842327532899399239751356244230256237294310579553414387888159503251855601869989923685567728716353959736408191071587723883569158498082184385072128852262936565416565427097377580719059904975892259249745415188311070380345180071929751183628302602924931201842056062466851637808933695228986656750682782553125564418194926642198605258072441277824389236199495922029645237270072261962063559459064833226816312357972919394676089259939147459623557764765072458884445402268258965478411434136271469975358507041778764618840751776602493961620730012962131431564991429472367155561357343692946740636104508424488483055209599237212265816944170050868867917690102654375598618820523095179749218113812125980268691867865166617987813006636527170364203384617546020611225097649007008645590720645020436014851986577032671847243068448150858722969949098628838837327134395236143288854721393161991759080659096085958971178352435254995245322099501161819807896121414726103342394602603656620401902040771460029727269220690199437075125886065681048969931940891622913787205865526358942673960311494668194723647424975519398217460707802671291422884480330680358863134280835914622940884704959273324503877239381386146556259743376387051665721989090201757290630164407873969636046912448668728843884315008126924346862036498960497184602094083937727517542517207820987817108392228378960663684966102492180517649062559378136688082561171100597869328189634750658366737175561108377969740573022619052204265893772299779608777264356829440844964938888160149742542564481801676285419278214542264578626006257380066376962209554885493366555428738209023166253365986883851547625925403570228220551043049788026850984943976567734280958456312767323146160511246390868993908137965244739276864992746891091692646278067734965177262217505012379419542868343976830606097871707436796647336919374903262038100172426869969804766481377887174944354112330259726739273445146224041165658163498609211336485877191836229594555686254528268293125764530793476534811113912754979148916095601166521526555806967730959551843773658186509886386191559024820021568745112698144065108242242617246554193235647704884349477340890459429143375804305833776143110506604587487245630439005895240167682856305892539614097410364190409421826103983625378950185214965512951185888673497632918936059255564262726335370044213429762691342261742600750995351354509031028283222074486337793299543094709576809483764810246634463363525756059054094941541433443553536404465962299949395463579999191942435788330479867051437433286151294923415660844998222805932929300902670878926870525314250300730433622402028084094161859695566335542158537386583577783445857127295209424263148229974863948417328690645610711045602903569853725592646545541018105710686989891728482867898918721424787028213537467270701337710086609001183009690545411472418827266230320110339950253142941558972113056823993177946800868406287029470659971093482268600234580457703043792904464753047061939891338076811087057758157805773667025576494374240611330083145481284481635244650857699486895217826668194657259806952731700383607929055536007430382548138339704711036201359230999279429151633293315081542231372957434835911348344743820240411734450889037735727918931303923490641495170525851039387561227983978982149217628022169763632078535825319846466606289575469925200107915144132840337866563216890321462703385521248950098616588343110154778220458619255373317467292964083157847638181948242453772407454490072635252962369452961627724163861780432556298289484291542892082767088290652712435982278966861476465076367054345081775761427934022021411535679244505745777560731778571633588251724605994561558452600474623005754455408763891988764606201088647253072494406001267661205653508626022785968052673974471645915705132011646399491932030135387297501206659752369339952311940621681829019358799305078119701827695555025016816226356780144146705155955233546525381544403257567727221685711582046836639199499643015196657297427870570284035944900383483054991119038079248046221508993015040657237523316301410130860612808660208488448064225900914033642066567804010939806281551851327245220353907691761128639967246516846790208034384207756978006957015045600870760118618811483328394701482792806621286689112243986366072651477831823766457536800112160405937683228538774274324431483174174640332183728966064212592469223385033272769659995409360976519167261891102523646211341003102542888509892460057009120008713194622806137128390421581095109111196992240073524328769802407995012152407184018931538419381373815239316557324545457749022215061126484854891288675073887379344255432608637744499103195970048972938012318207535016821431278763490772458793970002307348227162070044424300018038095985758717540162224564265845568042624588255213062381133618360925908479495354519061342103997389485843978683786080362205057975857106401737628720790221786293844092973193191327170630212573459416052876895498266815851738402841551116336533420657015977764644049120576502899817023282389758745592517866193064872985966495646199734051380811307274560574364177021070377393589005650043223699490929045632803993555801236588253230125407773144281079903967316967672818173018086909176354789840779100940331296231423370297823804896655600246844885024809053040247966515498807257212666603668884728492470379761495070119141632012224303289465619465468584555091836954632880412430624137152687379836842959541107723610806140228165485836166879148968965711006865897533025353940021312545069121531617788594223631999621765096638344472428913660985015993031858729074365127664055607448672454568599747752857573695245233619077537490466819967973895568365533914523233647167448362959338753113720913172550642864877612505537024045680494211204754857053779895002349371151419468458246631623931051068961191650735787854334938406810658898202021332050260524361638926022635399239180009512457825237907180804034973418786941664557069275797825032790172706425415383057285395609960573845968422734634839325135550765211214600018259081734686108997939184589872266575098660873320568608120175670171428340139042971014807456343317660905174527646467107917186257758906823593793188228421577079020122491834629337567306740242257008632035701867634134811275898066367731378822337823263025353942100494148134976532733332042856824379098669635924794018409742116261579955282721011055522785633150293705053151144463976467441741132406699502572805535448541975627088879847635807308967716774278223543351384654308374894545382195234238315255327087641673113312854017097927797506387019673297017794696588124305332064889750039384826252820876817121318576904155358138197915802266230013109913028712645050221524372848535567435110187104252839707557690088038252927197331339201651317754524324878735792224440285695640888321043040035941359024864769219716392166788316908458823546954722342503846688292658212740683823822103433588364913978073923544311398526251768172395061949204010219021665657921382908467952358557480426738511054349871550927183897079714412842363124169854379868396873535588655444004777587005707753189509261804330861649038479062607869921802656219050163217047526256823915405313351931809668865072346468698219537824741059241930557858440305597623449457559829417229067168446807706369630346816409347951742220170082633681426786628752774201375008463583116326302269917709963295083870264332981985991393707271464924441492861953029954056093523179873037787854497369210778405916984435131666293358261449742407399010119506848515197109775221475937561278099177804442011329113091648646820811940292618016238689852830853475691506223677398896303292020456722126971048497845055798902447804294572229171083751148791418584712661231103606850314731914880393369262267625399153875008144715696099784752571238569524106910245940614410895421988720805865457784183571584478139944882790772171599328048421143888305026606943707014380870441281965899679479087129492319669119156884651782632728357468052224994551023353384448354161391664955799084920143817348152889468717597201718294865966329552591101596740212433039400417429475163340467867818826158849619927463831698173963292929202953155491728639431056524897380048225684967276499968289127725708325025253956563929486355727531607959364308263138522274767485986625850048134811772078787233477980334552250123188631482220703163947528206827216900042478180378935208746470921804945493734913502124858534026985226152656368621726381306020353767074461252213141715790920511174001977729512175468803743843121281772371861606757758042595972516336206429054056214792440583756141160920388957544839536351530945193991472310477858267914818106475440476006185019768498598724919113345256720180765495234008427117933183861487109772594017851631826972034972605616771978527240575795676988689168639909427243605341453831430095245217370888705354433710273713315471878956263261375613765259366013256095833159743593309711176425128520453162801239078014827547472696486884170564678992537002987731746064512598743839209507793308687240920967632698491248607131497259293072296396020990310103746842545472207126181396859723661002075437045792584054793244062843741917043097087529210780540683983771384165591826381969190616661396012866333525774418811663520847056780701999812398381711935333902436191389288534872991838178107544370599313363392702288414236131388474522591945348035885890652777153590342780922306007010847305698280860540156805399114048685641057031706177910098806890743855837756003833763234696275409111756191229068639969652872486056680170521205456469273077203978158755599380800066775837987534023808385491905917095313116797346023224369320174945959668253236989553164999566850265348620437652382636507171225275527049390190813148407580306000959453658943752414177910974391317824649941083614314519173638088863299595625174366568435091616116439615414224763572718161263826792636181357905415809680113040267838783138167984604577597704793487884507923647153943043808728639139554378272004545260385550549831667074267331693491215090087957998451439519523805714519243723635647121928573313393896311029178836057872706995246823561538743541665923305431110852556344587824857002561994719662590170507753855852493129142967479902923236407788167420335300851698355339353831880118882439147743791945655601941299260897658841959735767893492980146525574860442941599555803807773276797196610748035430423068723732381662579417750689179000122413334667532927642900810291737379657919576607605156514589695661615678751402055101758498265940061762753484831454252428238872158806094205890034490327928148606523975070707873344494034212811771443454700141434458101758546685344605677109295701306301864498562303325348408127747119674505163702893904004393863381997431620295636678035038112791861486853162422546926205995958146447960753322476768036620503363691330265366220859494893281687403739751379304721321561447182303129484692530815896612452126240666551437126148790170414616433694412832826214555648261185574802744625122194832872442755809950954857264211234538842070666388708295323892758571649580810975294094451784525557564494863686272091652828143830783654135824371249462919100898649744317864851390195786710359230266948634489663793099203494555583469259987508912706644855949832789741680920168800485223790713029404938943019170699095078590229693646355896965874656890029928405259748356962499362744956112324375496142800465637041563420061470494215418821803586669738991148025176379757811775728003284593295721582225217017621959591446178499531840676055298526416501637461609094213294830922255289963175137069689568801720257966040824540879965695016270243724076064790551733016618193347211891977793895232682272921865941790937134751938762319338874134093786442363326330246359259881234325435669414013713253226090887519939023122881756542571203828391640000267253673351512838179353607184381528038326137706573636853077770101869885884939560581819546040213414477266096748318996471030960354895685112467268760566434480949592997659508150929572987583224924964462469017191661245230277867732473036148340036330023109871769136355155141919651393387376964526013330643627467416189135799998065457700311906253491687628666956317047786510074800377361068457335093509969110389439257480894885998467547583751010470968352452175181881737892637695449063164127499454420738592656460729102599205130059066236081643257927113065887292462694323290711960053248724822036209933636852056481769596748687238497398367857299709678391247751119076433019830160817231057547020614733318599028244584858992067396897337403648773301056817707955208556036050373641312215365547796980247024882952045529984760744058848456364460406503892244608181560281652333564234084947713969347460073139367327324177762889062710927720074858397274200325030035992419410440704276609420763893997515512354899933974098862821400956445378838740537757154625830902717887681737389488013205536812680572768773907630148697743067964296375420931538446149292301170387987274992577762851024904463101201325725442068613280891473978104623326744001258622073845265723139514716377089725237552966673313751301521912425677299343042388180105557310839259628414153464526335985459565591641404817687638813934690504356149819650098830775403044418854337940521683704534227281673547383339057810306091168786719767031058466462827125505073126826117292693739888523979765008084131205229161269215018510448088395524228472305722419517365233553604936377402849086155095251108529954268622145319968330980210374504183709048522639026460775221205918374870281486110285392272489287123250788471254967026804958713658920073996168752781341830666312502808591394677429044505923147337679343046609421452373287075092780937783167030958897254013355806029826662065391110388964813879711661216455510518721759969388074355838857105613922806731477555331428555224412772874148509326586580784877501538060381118222574340581392957344169555318397462042727189572341199515173826928121517893588867968673242345684744606853553213022913786139461455666842629541927578185905931126468213471976871176023762960547047968470462250622916482741706178563225883065623906050588872486021717801721342799735978212635828743915499375490809103640976694279100547684664340932057393605556541278673432845942111447382986412489198055348094345662366187150807261553097944769118086449758902365575649944507018500012336331255731932006170431081946819971903918271827736347018246515298320716100206294477126343935631252994523058814066346898161272583148044123313944897806962641099651167272993694276039260372410636922965342113905457341548437094249328623497610913980571651691296402616505090083728757229972705594158407991454291205698851450869633260920688677349087687305144064583190226562125431571556019471639006955633776763233072339191623556857794571362507308696332983803023570621498887660644448976597948287283780753518123706679921442877364583933553688048652266209261900584832919698524250177677544556668658275025820911958113931743929482076255462309884947207126373275924119434312856943604825206760001412287866348918757036738058867102887057640731547339769672673698432882540880178352784818123083533259237746450007787988944366367213327113613552319775262308900595520736643811509487825277102806323987618797477338173302934049996971508008354960402651321179969117280648647202377712526337139837682392558497018607675713078932796095957901174677885820461708879824971967588631679637763858020592215752290750455312348460394908648193439018740643237564135219822420283799685043156011010231544719469286922108024032073856391641124604532350350498278954447421532752668998695430319537725117193977566446505684143167859343501822237911612219121070179250235911221154213428676509741882700466002076401994803225251815598124215980766590399530837483189792862663186315915794288248806656492977555864929838299097973507343255509842060720270717294880049547556721119371509278420057510042188107775235784782241347899328711660988116452454017270546126174492015280909625579039538355979897415678989918122279133160054387762196491823947153518289774346715742263899151475838206342394182824675716773101591859491269561161584879091192899771992373464266533832329197055336772609051540664015701608256484338150882947078968050422154191067322782405907639874963713738634384387605163308244160637222735086902450830261542171361601893266533466961815282744578818001120965097980493780360400681004684862868179465534101095629911290759039384471193926102073821455727688631703752627415623028348457393202588039830201625443248894664835165986795555873450197075495592075744167415065299092328368266765644903472298932553018090050664673773922002960408121008989411221468785313826839287333801997815655373209857269680993266013665495992126028231861669356559139362092676635195228728667764975847626658255112774798461856700421174205161583881049412160432476010164937226581703350562541425285055568427584158485690378063947714710257315391199268573629719453183399090203430315878962260450180098221618303818110777824323003480498363745761678453666855014740861661371762229557947767807731128995973786660173387211393321580343627225643495294290167497128743773525985343529718519320715403371009543495331828013885361383178016449333901991734663395327832303493373688952328901724354553017480525973439035159630307184131664718672926173806124882153513328474502615182423927408757983760032368904420513799539143182092722367161871264812887619228630862732169798161515939475053505259948345705750218198504761908513994336678760728927383349909439658936770287404828889499963418538148573747167413676988253577365507238047483455357719411383717906691871868089507305278912620979462733754404640419538730422203663683710486710728299713901701428057228714871471420347033079438388164110174875008336927807309802858047635609882949365082870609316822646885706529689407854384494364514122767735198748675271707228710966783635710349547351681866764396293999784530791806222944016602368608577024418169614613695636003493326948438220011063919520688595071429544473705668618513124226580988445328581709819585017913813833475642179701682308647367599125225886197587557159101187715507532607415513321299811823574002021012338516845343071555813844838771697708435224926856149636433833689601075692989899781687106184414808164550779211351598201466459996242105783454191213029722520001484227370158511874896408911659006351396936598900824993616558316832070548450014636252477051641671330002646198420433652516830259247519141834922092887643610155507808083173505330186541257980588176006123325636613321116735660350205030204555849282798592948824306610105590335932692936880112969085165400740409291163161597008910509516815910017948271567760003301671016314729875558696226013920751039997548983184830057228424712719485887330866341199541007437149133095745337059163609340552438789610772303851847168666958810140100798307804282224079899065405863041943007320194708542030942745568878945921893682103389524247044133344699916199807722195991443312864227429642478599407201905585704097970695001898554316250231163279067091917846772291890702026796306943157320269429269319345897928607648673896086772084523145925983226656621748846130475321346340097109760144460106792751130021313961871626292941929658456116052442632705231657666278745317903611588151196774991407734910840601524493850481051899980504928390498756751874343003998860652312963226632392823104821512925557510147356026453914841735903487744041059112882434036714718284036197921857025387889653104310689721813281308477454872389525133496124192454203431166184983294986809336747464942093789932226524319373229776086614735681927967557458363044988000160423790727594376797000133130767090330000069881166991686072677001894990792642435537021128272118209859848085163357995588324847941588862583210957949816742779628140359267306961614737787218599991890202467965201536838842404673358168488079584147089814705407833391709120695637616685458873255915239549417752020566803942311719316796314259569253700243578301629607669219953728207127830777641908179484957198171883495443041074584291073157398918505506279113069288713768049441356920627438371322088934351612922731552656189256946886461918574735729908751494299872109360349448672264340485662139546321833224364883966380791499182456621202478738174882742415286489264675329626862961137790618937424739472338975304526619676338626187818260130358286220991724501814980202483572985014528137352677230271939089632105846097787468685143384976375567891670160301387287912709680409238801939237384178519375492904004884515603099207655828381124440435505446656731161430236553663729934046052506075964869194464449354828378974284446659900944336634951327066598151471486690141487248169106403832289186496876853444261700824519231111587129818433562040786353593631191364632546537304427457109448111950474137978824879129088175136550451756416426871492376129827232095216838012148308420035356401815619324484737690592843706104783501529950965872565595756454528035417659133014553066354816550619930059427261322453540744605368695985577964163915168479139391608330164518572017221130103619804577593128490753412809352406924368059865153357017312477514761088593042163780650479643248907062694126622430623326423658018612830327533976043250362754760353917802965859622468310181845880191770621024700034118331707343640187633868374369664129575329727522083717606656884938893134768480408106135700728961572072091678011328934787246801637611058371903803385524891412821971083193293146703955226784162574440778296229659537463651088394869962223179358747494786967819182066378316830314348319029966524173485713176827238552229145653259190085778734874826613987973518634236804213795477195236207414136377162250134301974629932604718982016724943464729534025891516149086155749761919414319440051660808242759409385823302618552938945093220876365230093432688502739374201739075618200874381725632368350218145274442528519911058110470690988492900161956246449010714518789273811021603920804821532033896833640570286482165253914384745389138316367850943163759665622545317014365647902146211882992934151801736915044963852411501416398073335445685257950547690926464504120520885783005634709334333942263525424084184943509928154065205642503319025720896425332990981940093630843214358774590665678738631006884204620267168406814509827538178680295003508357415730031439790773558427865259229183770052274791618066984509111746014904443698416419573577151674693092776812567054622379952965998238220800963028179750342761525169236843362582176957837862325754385293491668883918019721510106585813075111741883467595225619833921641302096341138637376132304791747612415159604304943345670547879417229794245615025506197466467649604130147774317550197871716329999419551874806982506883607525173299156198933562859202850327917032643534722368613867161962397415042181523406757145719464625132991097915971354091423964863172464101412329114990617903654821873345124715782222225644291411567419877038064511553459946558911344243961486427107229528326302264285298220652201248517196415876336420058284170707529071012477249734978996437243423099461246958810520610207613033246069676494077007073574019496425501361127680975504716530547889911331198582156000548142594350416885664657773605572582281830265568442308196444175633971410320542621179220559257554318679081408628790988019639099451824152580834772326920985084454745800054821884732414697054277133491214910686402634915998952672746423760126015060184546690030699873952826209372695300558204509463709551858747849115252658339073546944985296172891014748211251366300958377107692937008204679296639623786253571669060971813700988588703479338127030328562324567428938318303712870834587114563977301178008490572175637579907575451096658089534459629209307589731492878845216249929464845879393888684234665137792974549113566946292675847549055701499306488542620379247498914583785898977876090290472671202676879585944120880392422015186597708547661435129720462627411835247757192488073532099207561325203103033403810875019246917250276078250931425267314085628813258960325386428784355614527662060278174818678259938449415002371876571509484886336538403402463799474040984843778464061040867380855609141236279606722105266728953160087481288389252445333907253066421444655250951812097412521968542329722296586738280246721635570846348139630193394498770064977899108376783702674887121031583966319883222224053033478668164521122725557773277984776397938002364538000911013350325000986558653062597510329270355575393921291782945556974690686466400061347765069800451770844317839271993028497300479542639173397646804848747418162426971864773960085560665136412482060814212269942898474768288403855564400482312079669002129463895690009491235921368807893000175020661441930068615319731940377153088768048849992971726020990575873981144854833719210642410282840599904482590609128829862522653130352623469148415719755018121229056788258535949769975492142219987019434464752994952561585998315034952833230766573797872127391675995028487958953887757812648972699924065803135415939292899722685378138132014759253016708743428050061893384336499675174873806973616470611357199662511443684814302003620769776861895481223386659349675231314882554920966292654193394687468140410514296861430254165415742834778427893372300708245075623814659513441965900419726683113043027487664692916160372983750912085707452456197557543700225176150110668418229820414873645708101311362912993766182396577737017726411048941018867010991315721416292053110888074638460963812164788507812153295497005056336899972821289734855346871520719584294928623136922918006236484837920181176047479657088913273660671294605471235658564114178697094015509221767525711555349237146751925879708846339974413542504929548858745778445040595460126164276575833364817881539581315548240358646828961887525090958652053833527010966698903634136716458520314282934681973991980583782282394372778945272721155335866659876806570608387083872978745499576840360254889004289943952000976470864510998948940099161166675540290798145647128100845347871904631099968556419123426389587200219173211449334611531720049720678648610384210058396858583999051842165189885510373605803860059752290583044619794791613750718744097942734661665158626268680495648038999870198095041043742742917065136206018416524160900404003993716414329587159059975039869589351303489914071091431503542347520112301738379278037779783091630117074408934259188894526057857410366024953448961633476543031571333364375862998841088358450186027461320442699612647322733422418910966863727125318799392669082341895257260177094274028858392409694781096786344707535783195543290590826163238489588246531783408287522406571590742953393961648359477161779646972056300469835853762250128128748020083125552564985632660434546676951886034340924914082144497225930613427443914769186881742697325923060420534971821684369812707047470468473535419316285121799833916115984966291949069361478962389770471985584963173403873511355163121112195122094456510653778406615540217566969121226091124941781594838747658581276804808278019360645573127304303866130379750336126688621583763047674464082539524307040007541827836567226660768313150912748251572571060546347602577539786750774079857411729736424245300472347457067584981832811782801085577011972489098045579327757505108973280580205715297725211336005048090063441066720116614233731396728766569403958277623326233162187118850514388885723697401432331770572320987039566545641858020953521295404329829723593995768082317571649503915059045089592582470875088279270069746149006232598055230610575511598013376482323608207588632404812630773914155174664462993895422316654410780529195506964666443477913731104055955954547783232994654572745161603071915745705684880431744603251687639738489273449512514308812944106628257536415603028583568586477000617879493932325383634997960510360698496148066312054490213680779911434331345782547788880471025264292840979404649577680982284392185338018301577624237270725324791365671792741969045819574134480329791879412720086091525346627525901098330163673287289644353856773948447361041830619870371633987021759515551608577274520947921840024329658040316666212851045516964234917367420908418423854138871045341710751866659278487913165688371605941821489439690130770169824651616324875884106838846819452780814704534552772914625955396854385004125584590933508734560788688201400182309049570441724497030392247709940467904910907001458429782482339513378445874065013365806717384172301198440362133231409140108249659350064388549122160842430484236077825415333187546085567368201767268626843314790387354551709814396127409362784173616771630398963600200747927189531053861765452254572371830611904280659094697851303494532124892202004295545646620816093233496983336692804231502202110251401329428332609869882718855628881282599510952816702437234443022059444078342464574453906601399310221075594678011577969850155829661092052886358150429752234357356381387006316049425654270406170264545455780933676168006266981473331001162633091920958023603537397697122322938080040124167809142129733413067225649427879075149929412824849254627091904104221274493647782236266699924186703095360134921977489249786174091991029553892692366189844302144527595460014243454124889932967008108148929718200071608269451020229128454186934873627305718999139203783911832073699120098590734681139643182554538005889134655273253379658607109923643747819798590415540202968921694005623854452769912475051548143243166228877986588717005449197374457045388648096820645909037205505075532893762540440372556886033942788988997880461375429059773807398445072539101701409020642745455450111695192302571119089113720379176671449137963182222812844255963995756026857415753633011705161464724216337381188083573300940970809951333743889094168125829433688544746569738659360577824710734993091324668450633889669593503869400785300433028423065747210570746374403776627812631234297829748256511935861092532566616854756367422761568111081506560762634914711170188478506994143771993241206822870600739831793043221442742429685633415481661478812922498895814460236596027010742450809920750803506892436268007283768426485117366750592623549871046745534587784445787168842814781852434773458984881608223959295448177450894206839716789700438852087582699581107751109189164066363013263446696945811725027630207036839197959221616116226610885091296762539442492201103642009843967082423718266276243878414628993602296325904423050461847898323768379548781308653381150368933005105166388913704916037159626293374968584215078980868608793804259819568782423836289920150855098891848007782944576418358838473754054573642138698498349492897303360135477063579094373313575324629570190639573515627910184568959458565396742183904118631749691578051016760094468240612547681249909147969212295051558130976330860226298660660693933726213050716034765433690340992616647350166640591009915993359796259980610759757969077259505702360952164434373858101196488980182213643301853091646141254537621870747626085316039168521607561987602160894261681578664651837443050908019128951764465934776633994188840256813167511339498055730465350192143758275233052223037963833163963485846716240827755145169846430716152083066144166326296752963928865109408447047039859188767181999562264171969507218996248697664179638459607484841444554375873530436299802843747315340939477596745541503117740955267997753478890331854704145036359996462838640912683886418175233675577288059859386356340023706314380017559158283906068459492083020303444075919636492755323946096528744859772387299801580348227925475962998288233003239385730217099787126017078010668014939757398497131164278032420841790318095847579815273117925485499944924610215609497692825395754585900145142201587066561301188929820899503386830699421278748794625064366877720733886810492706110199506557478985815278359670316020825169058082960898784112037522377906326248370923976691961836468121474179296452767164532171696032871851604533468328981343188548270519552240560033729853323013348133906337502382454723119991495524375826170512743191357964393535517236942593513261119874389980995320003328117231095784123781917829919303804980666609650722637672514399153038312138214812490152952337335544589926816243595256548143470178832452885140355642378169016645717856289395196269877746433954674793048878595733875764732897904931634191107366832404345608929291014290040278905634801749668939041782099843195903735527017819683300874881074903924733807761217176152899230811411900964850191518763002454640877056310159084462250596084312378512708081190223912568477638882720401385128189112222245887772368285428796104727325029084745173444172624235498469630460087428622308174384918984735007128715116662510873080999150051400640395547582626949719401318648077279947484610928730727536535098173427109001847783785376466759890401006188869592671048630673277112928673645264883078050771692794261023616405829060379270397082508782545775477162455779807864861798009012436135057185458447767338463388152825778668369770044031046332004776384085072906396903191291009527977942810363573572659242237808391782816656844060308324947982926033341711427983747825165208924697353319588143867733380695923289687503445980847630447812837915861827304832677135716417913355232751983586374487368240851517070363702903970743921582176165696245673872317969377830173716989652691913737820923425844656363088220727352599256356460640906175100038236956262162183272103371570957076596630210636105756674015602753276944777534226350829340802057888745480438192316428872702291654406040473141283032834170566073783589525008245294100509091576226545446053341034533146357739179159628245709424289434804808737481833785143399457534310197481584443210385693129921727565866892106287643092290426530592024170860700287611981489272416927817158656801603778730945029088613252397405607795249557662903698224080301749770966556551354430265073771541313085029922717371431835315046320183542720892798159559182654595009278410815941911603568359867599045943623433585007926013851592246359487067197994781058236643082522036351029405131487655224323128828759976800542367351266689099216933961046432936872396427024823693547102206206084236148220366541701710643852571483062884331560718838934008203773271930842940299860899387253568559192543012863458270297873708245312375763801795592356539490521421009959590112947918252795325910181353758606595684249474477979376912472119491901614106612343441752062059198347815082314492770618886583329038274478292363328050508154999553108602107110182006307316996027004063508558644674784280593318667946384146109773423774832360076465273649530056444911704272121625661042156736263839138277113735486087620629892577295389941770246403248279240850195293195468111926260802483252344712108671909955444368825473059673998826763544775336355301553599814152218098588354784818284458857693885534387056814487579975442336681027742733303620226859416193557175346613687611429031839789384374679198284791842820141622998685740209566799455430702065995644265147090280476756157436088410655492032451086461891683600523006183154638010097299373718813618854716942475570449270324308515137096334365586414534740217460399152093041105774359413496830539745846582846014368556182109095675455479415696782528027731505529131621078613902835604491240509711469161246359510503748581239472826240366120693838068199012014753028240961238100486194021704008223135267115817158493057165394576688332870286828645234370950597164544647858726261906059240663697840513225490848427689141346734719627424382836476762136126986290119135315093634874344679071331091126549129678560679944725899290769453527059944850124607089707436244414706518176699085617457978026994872777852295316009726257925864725665804298005359092232638939079253216899989821076431886750366903937428157908263241006606624818332734643285909516024395543493756615565436782797151397630295329994042926236317734622055387929261444665679881661394555710134805431138787059572385600497008488978915088036122100799020466958295227278050479743003942627511891888057904143172687651539367497330832792146584942989248038847682172273980884515944605851686449116431795492207548758675762806695308068511453729473603597729947590635664858081568720042673361365832982117259844293113238968726450660842602075966551534241832078454048009567588728021309432921130482236350845459550608693174710814120156944018179566690075364290332574222654276102639309982214050337196892148205703323543163120734873801201483831257081999473449180113506483806900451317687739803123558276510563011218536924109532470806439176251083486085183635678742288504589822593334476780670604829043009860843418337638784429560274193384366160785388740174757557924110928571246254448939638298908293804387138694971542598250640278118017998147047600336132166078430717207601907196171777296388125501835276992880064093852381550922237857696928354321671513683658375375936123329118243270179658098514995395921449407860110965432037386560203414916683130387252130808243615937253802139409631037429241694986010788496292638965904152458517334799401316640328464427687373042400618310712683678925569665736864070350564095967150676638922984902459841706737997192414944686476052255739634437135501668081257507391138689235714375121799362509028463206908092788333951316292556174410055849385997750789505756399263102018438773844996081468960516153839274110813199509308260140729483837509174667176701945569168936497684495724157716465682511114177113641341917354972834880219664841255920582239943103700425345932682610769611439286726096865461226379852554655071551939994916335196959135534925943453568377411703843286710507548302202551719565639036561569119655072318996513275231919752907607458354596236171244138724691437070589553435960647750522035526002616125422929633616601888170551024567249355427580887406693699937899916195738852306858799158408712480619898075907455460729538500167015264882255784863258463662892303695836188807487446649357997048662323118061708195605055782404931127814856369964181025387012116138389683640831153149183183617271578848079486945826389001073459998950816854472107688264445801057350191136686543043225279479152289661833442922650885161442517467099547471420254928162252813167673142836486520022707775379210122351144479620896460935302399535929076071496761022191857641715321117243264541517600701703546300591340800771376437219126860466380393799845231256989377748457662012036302817257783578460870927604036544257330452414414492992788465098798269148847564809071125723108158531909538394043199193713085140658047206791743742981619258583206606796616867594826297251261607160068451778596501564659076491297438213112474010559158334511591387770412995625937601398348930230733020793999194170675361429596681326844844805088988770075577124834384505200229403592419706896187292305942761568075975613054200585132038164326010897332362514090993358609076563602825091146183531183486364083521705972964887761526599253859318991130582612209551843353088695221294160334963604862637552369091603315721886367799403632148579637932695040662522705564431388370004057132940196649860374586457495012146110775619383658027036554796116244951591115102309780407234599870261026545144651129116527346576061902300945588626202033067064928625157546107606414185191104079659287965306537064933493467282195207429478036981880634857538304823436073705053663824212768729669521366363098409615029528260541897547308243779468798820406834867122484277750801227620718145629846015755129612415571271630372144909695734864597001593784386632827095069379491614143187039950932575875995637510147167907487087116786543338980841081162131253124467653478538727603785175879873069114117358440343039489408440314788146142476460850326197299533132789209742086694624823935922300729137421899381247042978966872632427960825935229598367452094811609543765792335982156736320527966400497265042024568385929760485349065170214961955982583065398641381645465602401829790759335290643280522363729484984253942710720101213159120194276965661134508858469975357366170982548562443184633093555073868813783845783410344966370658490357708655382426183658987699527929327124619136905555406423053206394607575756838835260531930596323580446454041472046202347293214001604902081541711854309558595227343634244151017862025119583176460349969370503717077268756327714105420211754588245551514024954151192722399432961895338459544871427963217019843454795844914256475175716734080817648013448759242051503586629712229588559599258859118494915517939111741603878015808176686844530622270264662360619974428777665936653769207275660753783625572680984452256932566207499241652892872298794488998773520118486420596881917952739658705662863541431679743986375675591844207277063660241688366327871837932760997586581535687721381261917784395693799009568827702934907009452385390250566712188681617935918532631051448614031808617763582137867101648771813784777627582203482207171428748390825289873173547128988068208708019936006541217951366593476113363389444920333422425674486028272720256787220830737219164849173635060289164349060157060714520579426620680096605979498605959018769196179276113641860791640190619860065172452107056184829285954190992264084820044107705547226625099332574617653171634845275643777580387980662264378681974003814487884648354988304192845181917205788723661237617210886441848842650029184734559578550975810111523204131298621524750493550987853171308302039078754098452996368429155547264159257043609064911489601690385039583188517044739620177117957148103126344595631714185686350239141570256420797230350867806193551645322981975205877713951913157034124678980413919264032364409339390713301448062245834294170151927555903190005735902529402955135515710733142941339664048614653687938813824974821659504615679888553800367711057310280235703619644007761005839135531538288034188427735558377019012482128153136567329243379732858960744866848456668532687531342032164415576846419225551029513834692933351699913552927678230270678904716358702036507856443426578435814277121522332656505377588542047907400123589027306655606409792495718035013586470414618608664125774882078146745241923157098557555276210980900432934891956481389225108671462625575274167764066174827760734560394921416294155666732834973413996268840821566980112321455005998858313717251792398324094152051115210231324471351507514027795188035670396991354812760347795158431312554599178500212746993738745928273880810346350801461601442116484184587706128583588840170814376652818019509686949730956537881083499601555543516722151716046892087150841131994839029204719603302517161261958834856490215305658487972144475354221696012653553183921141017731139130327229911462682923517262814571161545304991173812760693435501711660865986309411781488487762445161348940395447415686894308076356215854174412581325343106626696869322843195944355656175296528502467449569514387113603185815744802855192876450464350643933173009934112566491867175265165791888709692948722494804923437118427158613580319156411664889928336620085022110353869202986725295973655012681190233364049939933546233632672517730219693949410696135314636605211671657027274276109436585253397713649561180167784249567291039913025534469971067413792201126606589446487365739586188284807220047512994915704540890863053014801827888501546525302893179877883285900441321477325211441601768059339832861848969958162887187780663813331985190433849372612195818611924272602983372243347060713070812868399713321789888477679748807230488303820843975708238744132471420385395088849322011007976191850289817907783289046516601679544480806149315827173815106491879008553882261799323899368243033038245807546940123397106694078049874771309705075470261436767263246186428059573463120523250176414949671497295809641504606990802849636614580005874378569075590419565512104662783209325568089641092480056691639581600081317083430568801178138104267629348836182625219758354288047899148130167014259490390527034948052950089669399061895250936553302143635445799232472872729590413493305551362616915050370258108765676701218956456403876272508771129432290915129335910819973100530010929429568134798743768010237633074999836179295415619235847469175227392342666141397430955354994118334189546952291038135916037108107897473636848186150948581219628528580755904000395036456575141930020109041629033258793979798349477005742120554387777658968246333521471348053776797416847108664468279738164155108896963586095145972342951356169661707848093257777293414079168028116799987677571033940357556255245856713644352036676203280413595927262449260327192507674454691933333487856144845888739982600320600980241591049699541331068436317363778485429558330717018734368489559051171421550486891270433062606422040937051506937802869846547279740658838471555015108327903735290038858362146990585669353957396264264504327883130697952830579382956370274793456317100713737487105109251618796652036181516253847115628326270763601326771009322164195609728540395955136401468004744030708773319426329620127733835538773604176745312360723023795590288353432151560471585709805447428213607220288439478235691825939950341690878271416428671390982950164762872041655570853840804218666743261889416392808905554721251285094791274737052721291347563524838805755804121749477956954417207247372219191155456710705909587597997887779565701613223368503703683135654434186415097646581493968028279006861196908631588934031939100770199710519978303620568379209196400346475227448237309273485780988859159192631621629483947055480986207727078878585867539539195700049425828569869228908448737152673131375136464065047762405873835249312099816297691436432958198835326938820782637253680253679047343531316188713190287940886975339549362258618222823102548259784460106272790518390940653557434255855255565464772468209645803617935525403636729003760213579405910084289967737185672651128943207915011443134262074111855994607779643866710941955232515868702419179144576584684658012704612177979223967994254448717250337125142356941186744399962930137955846059089374684718534165629224739997810202488805407934559633223774136567431024250138500763994851690620708959058622278703577784033070443015932901563718932853979853174614467987737798724807496012485216870140696036274741899686470031970385343107324969578776759251249371815594630021061971177159848938771796050845419247916243512552127319863043081109154017476993580955916935733054800740642244888017523133856506771050231762983331505136758847358206610766193432364854451818184376347225419592773784639495163096021779908953300675945337194377587245068763486567630449136242438309072140468822019716035586573736107468618458946616200605059381297090113454455888236767262236639197813015881402225589481718366095511582326409018775184602200845801091423095457836485337115391442385724562130291095245994027177228166379679762688245897855253343514898614643405768738991247644637646252478319895759935629442874547040756352728865868014112717298916073735419318043792394841010714168141238423369584364517323618220076208170788379883466211160609062127908349224540383628191308630544930353297490919647795107390162066572129004893567032810185340336115699034089053483973976278759817899288885025748743348264729057105864206301291640902508513736993442082719237328331035129291596397362271817410610387880936325077252710843796243647699439356453240077513535032826641210636294480230507008705907523676757227412645097329310916735976658802533663252392453045162893564897911707371190071656638338912385482010626272298072436880439458223913064116526554009368568711945964675081174822626309655213025754155875913862987156654519852745382350485100138243309342081786409397369017352057990940630102313903173874329273126395907421631415083235775829951115936871831554425236020702917608026620463893914269258460184860698086228270522893861671953002797590073019672720145038970439512496331181566589179290928644286700716041001190920498845829323038972139456558065144405666887253442343759979158176412785185958197964685373231169872034597354294173387015730028707709745297512754890110610866696054595574650111624367756243308989172714386672651298428287261344111861078724533993559204627584384847905062306515241839536868868393903858531408511615432756003059868619968736583815225382769494113011481271274615663546374074384908986936086936164782981584999128663818932125659664542409968981864049257585575495992069019036058964113601790555129994260446394890125032974962411942189463532701215718687595032495716634977807606425334891977569873534343500212917070077397171105590153295544839225001340766432203296940676286088891878231042705403907709416543941767535921699498576729415076270385745782735076581974629578116609672141092159090591508109090710091585995438870308914532455887618994707255920513854537959683538846663107794758166818558127774637002009067866517054487863333508213536776739443187401619797600629670015192266422043445311312228560715699862371649244629178105645856839852922245896235063517186684937705038021381001293163672117546070872526771530546891033072817680541652913553478903314916983264661271978065332368085008641683372275721825414544905608828261755176370200387279857588631431741756214525339572210311686003683568835872424769731468311978875472656113957205836606803909172455963466826030449227913748414114981008837328898453502575399951111910026270899050465168788537232428760855257917124190496691124276479698844969627410731675540979996448722612294468036190414280993242249230797465310320810342057000323227135945922344981450213654633876240949918947885506282340818191160698601032934592517013226372098952495935352238970609125771997759485618532579272788590776071705571400230175949777409162576640790932267927953996972560808662879586793788758783015640851433048649599789314273037062904700534795251557396194251710387473592828228122295668826466501534428128175404887728424618355020715407532593232788260950462110201719330137158944519792119357345375082537897125745907649680889838605049461661189484285854702470276212191897281692579976891089266627939439684934653402409091020552867283733991522253276671012864013240338729224735918068053455069495272395683944071072758818719516800799191379377126516351716400529220845152524745475269505129990833017100068340057845235566868917380083366167861833875303510213086844675703219288359329509059710119219993852588940204057822576441896345988655524286998251510383308396337590114579328875903441491469911570961354180698223592997588483035600039334035222517465660678042526798933632603314000589747280865819956747164665117831754806854931818772357518320174749771404600176029958618351201231912943561559599026212747031441214468508918622806732171570692281468497402369730702577838437330553536045400852434665462800843479860270772945172910829574527974585908631649664784758735210688034262782621539136143741006197387263647703778449633725509843614477444262582071714618558861265013402395865441500654758968653645459418426656207648602279518448038484078051272888633789473764460453658640135044828958840803936652703506342017184767673061381452209795580009988928081706782201035794504279854592879481222527029221481328436349752973886291005146910325216495331746307635418824689739498364231657097541568860175315908504937141699872127172064308391208868705877571318612569993715442971553444202643662989389267053272201763291463044028552015279476730562801994905382661871368448028016687864751591474994845311978438853126174837548925338337802003711872740075054208307644052607225168948894986041214814712740622108921736557128488199899362703757753232060366641428264752960281437831107530611603472427868121614195919815079356484261392645607945862507503913497625904426626808436393502509688427723164052000599764182387950735430442172233663571638764453516726518992015930469565040815675518566650055303862479158287360322889784422394896982764151087895486412844772861938028669393300396497932631053551581058985673551635573394135704989912112894387727168168130670711547415809967764684046912731425442050111489167725870774273716720837733439108772048404769055693827521707039579295828747941625390974726850300430699330177280750460761386283127536108522650391808267974540524773353232647701030211124474561959545006862540671049675496957964951785847194923500281360678876167845444205596647342051949271468419820434350236457472744488513610274781110459954565111926965242831985667451674535887212745766464295732823968715461275551010935748323820024571535874517539390060917420638511276215420209287842755373157868929826202095461838153205887225407986839187887323105201832348565793942051674128895382754412065495753613909354355889069943458530071214302191653847075897224563654796982150099705525569189272492370348097341567326870556618959383915155655254809354248915101544066406195272898033504702205000878785825827002540350836316087013122106271350216906041535478664609495472048025154006879710686882401638657923643104560877813050277776213037277233450542213455387041698530477102470366339650200429624211819306137252398674275128279472620906159316847854553419381159003411255102004372483741941066835592945107699557845296227892168901929975413615987839649744264909713965923068504695603250813729334540468408637297093113039665884836079857667735248931277603332217349933890420292935393717112670678502846407670230458957042641513152338050804258501466995263572731296789811419985310874919238671766444277122748723698601308566632594381680002005075143897964529066274082222038194277944587137752507107165117312860176030871922661354122428783282984863667625337234584239132446821074141143665176902759668511485555937220612187752095544956145483148853953159389058785046696131165143421649771426104567566719844675838914775721506026047942618728194292907136090953341624541223139225511094972325810542584491789487418861091628675450643383246961860083000555103686509167980281138603597094094666612715175603158791895630978611247908081044505077222561105734028515674481945637793035972518944192421417130483444166820252334458418862981520451383691408288145470765533179845224898381768406068712304630161668395642475792198715708831651929033798095293719364713253223257699860568385931247715363089950006717309216276985215136533829629241891538326544577618421758671808619217970292087008761232005104471604090304164265942832029516511089457053161307238385113413629891467491668055115165603246135698202560912633682842140379619132720194293307630715174179381798140379013977636237655710564226610933058606405294007410762664193081224357537428227411828634656372686790090634891598790100230281416580039181470606324565228735191748562131005999937714756273223343809043891672817916379003795639660857510289557035713063452987843571068480981212390129062335726334922675877706337650752287748215303854837758650726142761794474879683835916943012127305430138956918316502179432855472722574521876967814705508121704577079868909133741715714657425987467014653019251746339472337207893164908440150584698608414121420473185250643119877679506908154317327663220548038871835761970421012269319294993097837362961322028921554916685629770399687948931798979789832059074932457070035035914475936752629181733035548328706700210729376832510004290811864714723886704123480414280259843809367600720092368979431320561311875640386587809389559970565971295596412140032246698039261039253603480818955523701325126857652175274630823038608584601294036456187347226935645503996767400238125044318968457284274686254181521629273480430393303051380333832536559798892256798115866076791936269172723249959706459382200537950961874059504147664289357694167652961475000274890673189571100450157425835142596974282144113449854215137380155991813676392568618755853129095031814624316929886218400052153999746873884727738050565259508056758954117055155224504676501431425902489452000694813121879752241814458473484501494120633307528558660893027921072183168306520501785532099100497169641480786566332838922367497519094526692193377450741012965170433285190784299010134674201460743801047014627616723581188862412540689462232860593845072083668919869691977394233328905075876036205831604005958817734834187373370940831100541319968184906342847550904547014594721778729064584781748187911974577046160099992383218808537913852624170677382713375869416354643098122724117181293915652205212059630027521752035565359260777989061286375328321114480320309036908499327693557323413986349225476296722703840049276080174056083329832169274265786188329640371017838618509316492403677276637051416078068552963154657877168350873155862519325588405665019622304198212480468380150928074016394502208754348982604871045149089646295015069978183639812780470696283242492779499688317063292917533481393199951282949829412405469280222103797183220271621311729268598551757255895078733254874486935185074218023129013156192734580589488536709665968076010723279232030321975158335995675107333815187749898481347068788459925600304396179563319814444855229537051091016061797822081198061845311346991205820035207177898242409513408574832379355744167421561106082355200794917182718485634877871534734048891623245514183671645688314544414383253855566553354839109870449702267073361496987457311287993557558036273580119671883227921384549410347599329672492931500091916979197268617659105112781750323099595749600422903640992591401102275179304696311201428763996777077682892112340855887719521177155507096903467950030342995775002735523991818474585795636570486448739857271547008958090103101539158170484453744573626757284512730049998502904710298009424419294854023240505243337477090833414646500157081279407166474764727117656893351536913166584662334806132644646428575744463290831828264603020773451164339628093298188900621829283962042033709190344282409053925657304774949461440816732482772475554899015017877192553473388247543847942777428711343323041930045595643444004177694684706165115198259732165014985581839544968427312356840742816603972397871895362869280028849917824591530254759959080280413512125421698300839230530237529003291111498745627570838471607075962650131783001045237353332489372484899423393966806470912396833825270744476440579727428436949739556920649086105060858224052040968373212893122445598270250632001676640531188612321983515369946912614801459444419893412777541964793044812477933506456337046175441168786875304893606341770468371661623129708302891959253201031205048697342997034720891321668960089671547771569707021925783848152789981368559373441264444791743225935840670867432675626731544801277473121723088960589441358999714314303553210622619079440172768880244835201431298678620377267771928245733669602639655200935129948807074460714082023810035537191896408803731785017113295412728831840194663507187132761496823083311809380830432916513328733184024984752470777181123103055901034774842475936347602829973018108284826344314389181093539767260531631653939741587920920491505621626201188995466198478671354574303181132825234948745821192512987372182408593858397298529975661390791772170896013838510937150112602550157213613545803575110734104976203793989359232509470890967193862977868625352138346784490322120554946958272886426610242726971958732151123925587549836667090943805956270982652897704857281123536114177326619676290339402397927599040281277087601402177540482256457787994375370217408359569040701680258132808050034756543966980309105677088313696080433419421892838726707518208373409538123878195266365890892845773954385672264731487819909555906367747936999317690177377147585959296465969248477562739833307812980897647493449252756017513972596268448421348390546243858605289160701947554341570272056841811702871398812600837849197954975951358047766366563932329987517473200150976711604597114649168846735317319953067287373549642985161256724868973722389223828954488018454553617648627150127547383885722287864535156855288910203397275724953556711060782182828094610198743261553868633039563716585671274670366344127605250752289595812687645275767132832040152990548724311393325221218559106670944843046131519767724624632333093358698077708524501007254542924785944102777030420585903510427030882435206546357534267672357657078738270176615794020348576237352824872141405842762336403201081757498332474232732554790964833595999731104722583235566975527188649307237000611753320405936734512913583737229608667041372110685422072553130439120806304182697345467713823124643130470313727049962620520126266866863835265826540935010950199968375918551369105304186999479059130487384416473988687911331923725698956017275284090561374730913062100670000900193464179506745291912898841345325957344266711174362260855892419691657163586261123900616706302303028669305145849726363954985785941259218082853312066900990637374626832263832813313937815122204729524547979090379680379635597617323051812567660892699430560077628968820484776459411288084704196046386611010141487561737565960804407609529055172579668532463195669476059084465282318958572267590349780415054048870949316496885961420704177303522730737819579931106541240108672334980455302559008682569539544310249543490772238536008560172763647462641889356921145246718609679789580074264626148625962238728123500506687600473757048503625778972938615303489268508282788385284067380220518847961195270201754792783464336716624267238977812296635785397808751151867940554248127952158980308744337632098972320799667784595706195827386666085032723038555954447065351142667183333503566477643271894273173811892878304821719756578793625107641905052750722770481449369728826483253430594806550163214708742776098519786600661249759917639242008163428521688992359663200643535279588700978726155160366263824727911763558314071254495542836654705620288681587556864886367729625349198397042320665048620144654713455169201682647483583872463901136572679102715569667157724322477032343001514282839049949376997587946558871223399769635243166571055047822926563417294653079301460351739836080749174870778963836115882096878677206810742381217032693042332059886100176324631630594811266161852404969875769943587577467623858799718487209264049837815081535829083787039596346688315646682550786037222530459316570660630634903303982314777503693502853431163277997170432956445178564045093244653443677593012726712066133080488392380823226697341215730343413465929972578181777250330375788126435970487858503236738386574700456995367174414274079368788370147007236912910615220748314081466941583423479607303422608576694506617040583935466464819639428750340598743811919861946592110082292578858721583317482278966432140717525297505487530591327050090302069644999378398162259735969897050939933839527755498137570124153622303468697379799295470592592168130158550700039776442487325477709725830050314125877355507589260519013002084947751516169649525620682222996209125911678125112825901389800874419199147681804264677554475555572479761784564319330620539049324565306934947553793812125127408224026435230157791314017672571400178091903598508149197069940377124908548457181048303686285479235055639997342034302505302698900886554199271099046550840795642362946460560896860871774257749239864484415385897902042937077351438180116447248316125020915311509916224976607758902839710179329726691799069649496025206838060668125409049363126074842854518403325730306080742020356315380416590568708236107494864349307411189412371566819328364040195498508458631650643218500960120349146189949415673302981257265869524675117446255498678419400222781144511585712080446122317555443614252125044936468102162511105463070806556431194253677640048034011904296657404466131964948147354148159815916090184920915495751234237917988009191173967216300645190971486617227459002438787678087638121349960500990283493785255826709153787458667384759801443644331191692005995014261477541240334244563544187035470487333748055713447365202448288643194258992031286829928935291218848245192663594502850121695619168838432301030431823634554617166023155406426628708389841894682586778843415010688045196049998588861724459431167686482195820597339187749421693983233278347042522290755809615297859247636810360006909134062129514712436199751996002920687017824943437119985771641448408399497943917319989503710983821101671293804671214826441183926724411452118832993988552221816304841483851878634606789051707095051566100399146005166222601272910306955760585500823707810429574227753997777550091397741647771298473786327191113653444644391115032768148498707258792515649930690522786667050295481513976979914798224933746416785948462405509885474868038431336376185490241092374540779936180509550658185783595879535476111524686198843515725769325880147468383275936548685571327778591128534211119863059169085632408604685978345339066420450508825935917507918791048692964240562454600150732748463953615362528211685995220597377277095510145926327594277471704050552961382593781637073608038368642485737988434805521790901195721476140580412124513438732830721844120075390333205612600959937137894649273624607618597234760642040382867800738627816566888657846078649755457795972235649583888255890098598744055496948255419266039039899737115918849875221619014522248927601620139899041834492126812212556501105770414296519171365430777277237351939881861665340532195272007806175583348748023517149690263545707102384658617509247760946357854591196712714040406272568582138316510190966792776950439650405512733404895169408597802881670132911353281666073099001572030617606392184081916749093985465374129808288489673230858027106860436352226511648083017193987419030221288240395044134450542928139647468081151240180323692974898454785524050895564844013154558871700123954028569052941844034322515813123779121816049822088169481688466323175052574289203678357136370323741080262925930895004866663941691365345336379313678857605084868329958383271187417993600415384297685242494822002451531798736213863447758899836479007467364915176778307968168419566063599480821587446766592436813571704561444227870650646436353274893799133762426917266567468919086405586448403908516912303846281718947196152574112586830923282692092178991361555904976171748729259128284776758779949207207943872983123813714510462702840655703490065855089006810504025815328074134073119549727011803420025612545502569679058218093201220133181939406681794034677480472328977143481943949350738425399514203552478596439117645461424384507431097205747085140430087648087393789119616007124805394520704329005774922649289277843025547924676376652246410354178300925523522721166502894662032596911368943505673835815601769225982137405269222375301991582306392959615356830757970339855590759582238333014593587176792063136025516540483887696841825866661607597774952789153818838998271496081049158703970020306155142189507971732950593505846290809741201168319018537726201667394017764688396709836461495049933448180357697092648236835215314842617955031497021875006228159108028400687034629189433512968302729498409389772420651216262790924647434348380993529537020064879262699882164007284510204851164034937403365563596327787189116905555555239584186258113781246032237560831474541237746265016794896694838532987319551559023496374380257366930412049955570116800979925576477621073125595897756789603560143755295628364393114602825968573643226442094067965529652589911370203007845055743911229618378889704999203745170671096528524996015112029363489652805992158705538782860344034704311352860850919700144733427260866538616099693700858916929103114969574649419263776035018609304656866963568389818565022405514116473022142752167300909483786209138684793077506852658372541483708613492689301593223554879688540148227565893695561140969479447711488412039381536590332319095614082067920728789770378634975077777098843902952301898192094733799237664807154056013934056939116567966417717374533983225569139784152526676295159557474778975332994334926541988673738972074212995873209654260799768912726296501537458425613761183872041341895534079471177975195140424133209281129593492453449904341977011666769179151721842669989221226715277267187249788708865055843200396206334665873175393269247808809349843325871141892714433822972363316560951675862216937221322597198999884241403926917941494025046691731587804036816740469473982261085645273052367338805078146576503620262467517687553514904578191934571448925222657218093117602558941240561980482234894882442047621372705597714694374830093962783651036845969519277933631443738200520323358442024943020513306490216789197021582614872260686883417882780029843199598995653569868670863212668727399029976106360280366901801252786436063163164288216577939892097082247381426957859821302187190886373591541678096828285856850455507034750276832567963731471616062398136570610072132764049697850889008599968626667032638230059868258232514222190141069010754890169167231768642257731168889843339659030654085665411857693125804045028086243892267617015846850813535690089152923271270784269311692525457436572569716204004752322603206590707257503499353572860612573161537514794213451084734395218497373290691923867963481501403158868626358858091517371375577496023307962031843517905901072997416471401454488504046017505639435922351529933594430442721246577981015349836107071315281718006773126059914384709808570361709132290422609606391655068336936803820368071767315345702414434970353700005374959453064259935780458755506724399289025944742321519662485409960867808391699397165112657796042857532090390125625093390530208617427859114751511336567192770399949259508365656942111741435782746497083193255278134545864167643658776064769617303660802335553460916259670096542783209871971708214880490984123063418347195923651028714872326823453718988941053678417756617717789690358922042235461898774241734871905331927721064059998812715597013093194163912138919270970423280958748147042673287652976734253297583426376951495044724649330485344105561456860907616852441853328457927108124180245305833206238479617159787614038095635249967899740979095443676575150740802606059395699819196328048570246804457033731697740592225470907214251920989542926286467886471287171630015969395514364647460631517581825046087799164736775079063299604152419315581113978463763208896517887073946322044791759278642827664962125640876408353285374715523991582696257167305314883616797030929929498495014525022344556055128566822650708817257786857099015963544709357212013742837734027502450715157501823257685185492649536037062538039205370382067564147778668331381962857635582619776537325932830100009693953755325633863436710662390521872346537128861428763373582040713427870167702669227577747324891043821655634368784037692738976732274568271218651474120752431826145290749789357652839506501100785712243487178533953770099778805535913147809111428208052876233201477089857875719976379700248870248704474035658295238642382200496935418921237167689819874021023015471593155503781251249610697752608059932779630766108151778994365690564411671284682739559594996704359615398938567737446762524995714447526559914621013433835910301066083483024822481135461504003549429695643796427934750394325058496860309104498222271822362010831675786370928103560138744092828544533792191522374684759892476874681531208022410419636353121848282004965654886386902537461778443323070750540684274787324061125479199508872905611967306976600729424481296914793834150080532048336550601987694652954229212933109976102964354302931198022872739143247289497025048662185871868327484939494901259927219639992421542801610179200386046734289135543641094353242884779201055731427226259512269185924329246643141606647794410166534183134432442388960874438302731805727232904919081979386050453020964500332556949457120446102544492402441273741849585555815754236634700614673378928626398072459949507769992865163359175345108024270916033873178373073492390972916213556708936316200876242591408727244185993448612951151560335863717337399103497340528575837615430057571311775447617134175798728991344680316097781550618341360654279132009309007686991573797658100609571556377190391696767306472026634603875966065112263830142247726819964902842631001369533864076869894622209914965525138147247058971611352470870736706730890733485143679320034556971674870596007530159416813539995064397810178460273770152666418440723937083583225845056231587007040406352158373774633977071092257625971846809024484469336515647272347803104695418720196516424047200955976241627105115559875159637342965553076455159861584518232383795821649496626753701244656241118528612622369414153863352738124278274934756478266225786976032089921522969352298180012649507877617426845733890692571120219821851139023764840635516260652050037382752112056393292102386867284228889429953897971406352892941021814655504980887082109919810502016381660421212329703773253606280428839956087549207396338861873789964999129546069967175583141945533411676476499464902262910780603121725730626315705786190801646982529881937755495421471760488480724550527562567601993438607382998025453734047194766203555869087218914013772431573906675511092924472820708700245090997673359736223152229071218421177084692214332432458305466645219988589344716809081482721708810225476030348716719370901649532337697535167130344143352553301086185611486528546632784158969861944167168449640107549152292203359092157183506151084973052662227173550398114129503540181529064152024710319811178401013980566392952782913012080157776491359908641450589907236669586372156894235455309997023640384679196933210315810571433485692252325768516531289186573509581016906140503502841604357937184793821088737256558928208701478324029315789157916333085999674094968155670274329571019284246260945874385848043862634399896855739356379090481958254753487649859939272056255574855561946567773425615756697155821849504411630488729728376935980187753313866203278028361599517177199223769655120531365163432563329853220155138839101964689350265867082757175695734066774473332692605070666204878581529197215919666381963454749379378667996617752810008638445763876301885884055119627801314295515165195675124944130794214799428713294850170960894431918103971563968155105554973499862434926797330678746191925795191485580690317065189886804812618038904479391401478250733815505377086881524470877481379898810963430273122000330607347065142458099035258483413893454193990496493989656545207138566607659936186683761085776539340416971211046862945685408975912947874158599732492076575540325280802527973817461816103886833178124009935318840436982559861069097335313314410871829604241957630663526713786551660139347859517567497190514400002319273408027994404440745490510197410619781791589937631947674699186434107938735206532156073613405211787364837578459097966715673666556986419827236142746146358255056350606580559329664821110331974474833913320206961403079957761254122624885048051415730489057659337639503690478313511039149651030594584627626319499913967211842905483259796581894018042137662385891337850281842172358139177578539192717170750182906586623833722084674195025645464881768946394688435292784984797493693407650469429291577871665688267805599930716150785113008187755666705825381069882382117175484172749637275654678393515395630365208880777815091328761807779834694743396238998709956306144376417861531161387208334868849486666862141388704471709838151958915843946494692170460601470346093574575128364825320510233184216438223772929253370976644452305124695445092648219705689372313129253528033303164371481019020229528989231584802593318571019805263765448151409455784409720651475928147683852778033316189080709389554881076679930875218590069717262797513560630933007873105739070589175961871859582064245246498393477480164542023744983780548797674065479752495262209377258662676017358231738123587008858533575450013151270783910381481625547884678343518316371461052071969947262119111283276364159447276340426103644946149930144927683630694800787892105940006262697949580720259495875334391702406206093452717550273826878398485679097175962938979856684067575997919858388962810580180426270175489231405071061207510620530767017497730955286439390392501050853302236536017928822627327285609153702636534442388474178949394489008174711824572107895773360931220523861748372538865359375068091789267561189535200139988097130374660878258195002531514436690104652236048667577601118289059827208776186059887153215748473396543861933021710555046541263569492209527710174453080371866881830229939520275947607504361870002211560219039313548080657984031267690975587483950986018653337304727905382907790408630320366329430844136099670629594516995020112262083078380854885904208888101716816151218497799932846808378736828030336233895090401187966346305761165303221940720952896429933291411994240621003374896282281479770666832478119496085230717908761942479158486335312011078909058564954154678429116162049795981081181319276263061568582945251297321140663385093936140938415905048433862943853240889404075658209120854670576746186291534591728817077068087730943022278952885063274126919962166587913123261470249210608663618971780500798970648123792713452559615123918130835114237281995918896499077311209101021165197790258849778684565965548925203503267768563106320448811666177301702826649188914066725366372398911265591302880075148613119035430098872453902328244060661350118767013576607219578749000115412653643232236740460295761193562247073169758251874969097324509426252876922511373512952808025723035397732848691267279065120421547746168788408005438098644155457602611133662731391753396397023001626000674194894370036376571494880135701407362061803184147909500293006529420066334023305125007821574044106241883925674635139086567657108058264216527579060228659810211081568400294694555333249461279266087287109664486900199399557957536793038061928256275313127680456578094972187392956098624248683367823429891090230540586043200397474546996747850051866679966220400997724078595487582633528689260560596635120493273934983977386517044631270051762526487436119619005619395398164759741194021998363744500904899284164111667393210152732473908624950234133327584319356527604326837972038820676654930731484813897782958519986963407739609518030711542186938096691573767277166168012733671352021588729170666132277534412685428592588100129291274274687534641273212393079312130919602806325736006442927147977504305353698180321115572159765419900067162928784297579262819827321413401451708486796713556791658231746810474130388716156715878750408793233584297358505397671180774225868847153962685904285499845523589006833152285009457448858321324896883475088127445008191821811089178378179172364709377656526077631171319325398321412093663743161005809744425691533259970984305493498817798303441757147379113948765789561349154834240541736187419281986905769211458748523725144363577639151182862821477414660452844058212117060006508978476813899496596966073193663246053939750363242638329813705594883373275815094352729642789214600343509325908106617703098416968006391194142061947403082895205568711160521558859144562397126312754811841016570923217379515468771693176188169670188940598876007728352136458906397157989337857104887646328945119082724150093150754832867854971146882536206091021275730582801418324040481236233665006549307889596357082389476827031266286319309032140518680791422958090288324931646679452702656372190560804155845032163111321366742814756999984949223681159041984159957210939505390710730092812190293158794050497102854113613734357189859702896270383110585348835419970046557240850470089464800877541289414594128767790659127022434517113411005074555146967823008894673271562760367588474416899984890380206918735770712126268243321845581909039229231361927396660721843124596390875812701772486798614817986728686808154045691598686908970984408327336774849310015454066037230807154417945383368195444211327542633214073428669488878037959999993398051520497550931199515409209736402606526337298236552492120254685858909280086034642872891287993638294072914485829954255214682290862677212091668487193124828960406049238899112993278241962999048974380296512929475648618486903851298086058857004636392007282396256882501834233938814860884001315102317515242499869379388091812315448803115435254525820278411607106661694837685810098355972127917108616570434615534151102598851363150030934574037590712195172019361413118603013954344628737799390026837973233077337286683147020687349416343033904035361705886419225195265405654086136608354050222859153822862192326614777390701335762402488521478070323767479513261229249130921748235980645936454867001544409472514338308319949828500660828790700281608753026161566363648166709931062364351137180165938076627047412857819790562147862811197491356279491965275450423219754557469716488352525605188339575606129562356698186569019980569496822638726823202871895321496240828294916444023917246381705155674816870537528625682160671346496891208172382205838797362598274552421738348660852866060658874446217569055542574987011214139287178288535445414792765442763443898644735529431401768792097274731160753121855253323925585991476679262581912439527988597933667705973856733503593116414431181634512277589843237995973523053838221876962855649369668648499987127022845328551197360160594742358001810113692243044509570399377172996266006317619315304627979667855181151830368597854099410567204951355466342764153008947247411776865659012937986858168097481632571190355484398406796885848662401751480591369371925536798221586482014758692014145299948906984720311476343994814735416260345388208429832515018002734111468918342533369356761530157732116837838828766025015219813720137725845170560201402748974067333049365720024341180384036292593069019400035804663731456519490355128462810911739399362931009526457557978288364819667292913000699441628359390975980480091123648482151346169380759105205126451430750704038246839224191328015548756563314031141486764525045614616088525192609391113074751087006461415943592859491862403078612871748678295392162624628162823379526624384261204856163102298100098310401882752673669305875035600787033868695197596066015785262397180048637123732322449705044410410943264531661419642101146804066092412719495604272741587812637774068505907526438132077325359946912053070605607884767124209769438279259880097840314919421466893818776903354273179150069730907302592820755827913192160808488903148472567733028649265330063680122262967311650888416666250889825222204432168773607646686906534729551837172197551503868279760843672639346004867985500945437350777817835420704790134245346959393697377380271640807128123360164258524892011692394668297932413950394175983304671268423343467442150833435661646401236750557658975726136438453643455027726787207825864521887509238550809745885363446049581512580461473478939895620513144247236747522611225495128414367029536209667914061267831849600902536960925924005503880231829450227631131754716257395515367038676122454331490291812006091463792557652334534466474003568577444780618615035312911571966671526446057613001189014893048739406265112128726952555000092232635357317341909844273371491403801847263768342823888388539123507091435761957917093045716452680070312679430760107468598318114406122746255763915212856012812284597196372577160715069929926473169439654667968863332723160898897548513172525355183895822492438645706223602968559995490812724060511275099586488014213647290193271812215475652984013436883616978962283356159233995895627881111801940614889671354888269734517999252152630625047889453907673348331042414191712569269824174933481695393087878824761273274724354460479315070074477245180931099385228477312316687664319161368645133258243722369450139379337973818092711905555001893210502693594045708002042784574802220603564033692101732821810187508063611127636915296721364650185597731512449956642756331806087460539418777336590665201258661045116755275858482881122571141653427772251347300260932306760540715942978400922297669301710427501375332749994618548846330779891976782105258360021145069834675972791144258922543629707521022974662213202724172900393202976898592805892195027996211779172172407677899579362876640205740099653669845692601291444971422516940336083878435843093319341873025931247111068997326539569992999439812634337976848498312241092732747693133966356059754968024727281013460729851216145076651340918449462457566106892823480938455120907744196863046088117562897796523559419691216620157221176755349806756325810230461979299414160407482989248984724558370709163399635309664601502197155821107236153243749501614939155185272777428435506600161861613172928406005934033272712351703045187199087028830176543752918454089335646345423481364383760068908325324834442892956108081162965546395596431941215275890638780225230462115112135792293803756091690661275080736964920443253464261862385806492572009170429792198067255312273333459954485928669166506757660041249584735975822713580128500821896180427507304124894119164288550021945192766305269345597007640354961273927464846143782813068985242909986464094088327320327829364978524265550409026121100663901436914341829116737488545147759296372426957614542694963904070369924512430005663971594023524850323483563744996845974646459522763307202906446449076790303907925142754107992895982989960989663023719149170050829723786209086035816817907972419013406500305031455509529403685295549178245703400916887969677523939736719446428330778144455305580860812395196363261638526346252872823089246323559766021888003307709876320888624212068617930750018535506454842034873442075627914473986483912226874529192171416326892570029019970793088933850086432452022695461713273813382859760913728421914873863995141193938137684151189745806394206173662951626185547598904676988615243625213924766710625181422017005378727751832728417104275206659290249119699349585375728017049884445522720461914941659488451897117993908530768064006051249468402725462007497635784092237125008625595607466516911800264251728204442456121033835635380259456729781830226993732939706160518067631309245734354608963698335039882182531709787335020843530668162931192669894747406609357866314600886715294962994585809556665498495903652864127386558346256211104322652301465676229713403025968348252332795732690015264279984623199145830204010313630618371914034102313939838275797567863283013263123115870527270513886073694580891587149262989656360291266704605781363222494241458018879621073494184903685587174848833162085284842383247006697677940422466968862338084285236366550962071550080678706770626680916012386367758471453672134925520068694314763636072761195042840704901053394370007178786107518308355785976108116221507006663868170506534682429994210815417731193002515251839425203552025955281351520961811355410843924521780169960911109782592394277233398124398571713118292381112099547848601268295074731633778353177096068873833398520312396087987295109107855128106359319816011945092820056689429612497598422654393259039742030748124109597185001672903839592317451031272763802709021156865001776438074414698344142115462939093548256033843165265431301242006379369199328577763390623065569227466889564306463746874175495042049126609038552598382117749032244993081343676201400704565013338836668840075749027721495138115327580806177945179502035350587816230710912780304383179655453575796308910776289852966856368298238280506637202606736222309385799182019669875215040101346677316398242057019146787905825834514770301925688766567894421577231761778157825094887906032568461191203001970755183291069832220453751673220428946945979347753037902532544635885717927244052470235004691307509626154471645689065446186202011841130937147749736572570543194854477699076604546913117867902884401465076489150414795565474947659763497520170146683212287116889965782074212261086010720934587540514750566874819381142226125808843278852613677680638233374990440129063275015102885848094501990327372851785313267909506677022286417408350602427092632542729446803526988715563947740309242078083679368331965847986996991413007762777140809398600090203261413215256990715894928779761098741083612368188775632739207521993057585866848878042618382500334277997279663400898990649909158146642314406664393809067936078185044501569573045152520315679041793125989515544702069355535810008944826980342063662697367113371496821529308618865602911869965695336504383972861149284273561193750160187258732203299633206824008853708132542628860498930146453950075704787156411196604749604263052897945185395390621886470720000724250829193166543327224970867597985057234862867582525977955149111680423726785851129206414558343716266550947129488098801995197079030330466348524186486296625159848426815000706397595606111509096951698067579254358108485558975473919096262187146071987292839133129082271804305796961353194146374177067975480227310148327734500995610651930184064954539850706938336682589697519904643299970734405969288708816264875618580557122040511772948314941348473649453290872627973660856949597011265678375885392886139250616198328976591583767731390451520659207358773566843436080045985708283444109277474092123859349844441054046424354129016590117162397454508456989872573186015731537445277252754320982391210182497316452354962034428560890557091546290458224851326287866762608728237715241966811146756041172067655665914670083212951787127591592780287201972280668868451583864325454619862337680670858270697586680796848188559162566349253132338049976978781834268832420748806526073626409124848583165059340923381612554357431147607272632577988231753465401560068245709197704564889740521828423783331922795329592083872890383493260883415095644582864693289125789685583427005261832465041510006640429109947736091345388509951169853905196859719480377958809160947490137576377183617012664882179860539754161468334867072271499329788502833028644000244423048156589057217856143403570064784256130385650546779641115408331972657243519711701214552509600988771487387277518910362623501924984459227488570037773816746799104151226268146727244892075277533375253995073330816079358642851255872754686291041752957011451937887346143476100563074451167735712887121240896888815532232213166242220183419735027090929550466774912126247023492462612846330785257262757633997119059974928111467137547022081273107395954596835988740206048441366710540452684762472302422093848022621192117798793203138650057006252775776079375146644550255695530348870787805728097933792130562633856281149578154707100168177885839628852722526123471466903193414090477055015892703322955327673355935804562977584512368534122110976760987426920951879164300101042151092466236609335922165519453301318680928407638047265813597387412344847215276204203957231055232152420096126051484660911819348311974141290709115917261783318173712046846977106247349468932835737985624085916527746884138828533472237220282409341355555764007745703923763190655183235861376882090810626890030856008259397810295905584254159517741464526219599145935095238425744718010872775955031527557367161955971809752037779187134313115953748982539202204066671846522914255557560406464439755391496461693584505061492491389439637499233100187453078663642671049639598519633892037147256043230027651447550412441325845335702202757445068144170681836736625856306996528120182484248049373766102987506033528857967575398399774950154676928362924519934720660528312739909256911209692831999937825656821132343053705452175591505742431627317746931193719572698381836701236890475793054729912340239969858249984047079169977579682971968164986898667772732345583749348551534933792192993270723057105461388682826428052856275578811750352488038220099558859710282842021101597929689097415967150013640845691907237763892606138426262635772886729702113904563681307857022562265443341387315608911654480783295593256179895910838075417438838600276454602960811598747800754765256740212376450532500488121120436704535825342929145546007902403096585308622004542125922228819523835336554556550930119973799231500753973141188039254163251554075121139306020161071036538445784712479286981756490098231142625309329150008573058888536518753950183242202323457255673736799771015445443864937385503228900716350361976698724541640844301774048899781064743286059734776242488828376178386788360858557201872012232964107940763116368952442298511902736336104896709066593745381971744562332283976225697727652644109330046793659427903614005800292086588996002121980964132155569342286631640516093745085464345637573564688297568014786409919753791770043915421993770838357278307036700958039546813218202277634687373483759973846260388709927942749646634032367868103813372098460207956961249011737394444237774412556475160533672164897457647528837480442690307592075217059952800073944977094388126781912362564141154072780034933057836498768633900223305525420794557475681697334813130400622064421348848432878971100699648438129474342430377859999551373394671122698244377759525766881454152207803125494911075802638807044218303182509197687353211367700170128430958099254645589716808092300423181870343753615600482442560276344204914413817870475961535160851112758368176162639604410164440686799492227039054764564492770572761946470755672100087304829037958684999790328260277341546557852712549517526334664431000691259425759756131734247921580118383023821172318905739198629087695781572313338301495734343003410831211413926130205197143523194132254436997181342374175988636217468380122875535108599441631739175867464478550641104126845834619356615294621675815845928385643691766493901915317253751391663553609582763111224722470189128835008459771695924665788515256560678846757307587477390893597063572948435499150143497860497129663543947488714445746058588298888399437075004107596167726676082330902458117092072036512332433444989346351923069125029836376061497961540866342455026930391606594917659428749812350204214950500587189925735179832440636393676448291104963475669464555073124566613909568689433003937877596762598320506924112639856189131186135056514065850988849423555056639898247916795604076838733938860653518836830075081862878154184876523353650016904673062872978349312787670561421513576467558244475924234001189385084950792784229002087451770049939777723202367707903594618502621640966930746792569139070689453703082893524782616948979556708276395166293999328647091269863532403207687625915003617769879114848520780535460053430328463379012749526559117796846301656288953685979571026879444969062709549102882735415071101200110775251066934152090804032598293139699356484170083986486404537538021855665775962670331076868577847454773480862324391582848815898167900290147658132485782280984719088969547729687546013447495209421803226911087613735751618851133720154441339676195316964270353947297967059947127765989586311805045391308773537676174464163376388916478220651661233080735337108041867894331665777160715159235976431995110258566076105705370468316408939731922199041811097555863860483058930859360075586811066263932364888918267415691166901953756639151344771235375521491843602913814721816882241624381988236740833087395486199134025907642571657180074338926178632510436141923455403158405437913382223467790788325803423638774573972651407277021232981300461985083669555171472445252668693891939403305663632068006829401056199065017715602211628800266503191571953317763855459100517720954984324947902285954255718082080888450704762686585610125597611368029577412027543485526219449257216530699318949338464402463338474205951691760854701134306564996953124041377049143141067297541854455321668585929825223949762177968259345034319705597812189293692174331556993730218250178562170729903442560916381911294233217649423672748237193406992599221915490023563867109179221139790193160638854513436101078280955326248271044239381177229358389410840696600926043076556760734337733939008080050298500766726532343572194673167423958401114494163742828926203959104543388178420807375448905840022107072059720100232591601858027686487891193824315901906917357721390907434168837753670033110777769563201085856192922109664380089117603895027495893042580339291788959640283044349940690489076031899953265249709496560735936311746156197816552115200615769042054391790536920732905893911266734583794038063490868176892685443163897281798032775307151286340723181507253123536797629884690060390322718573674099091907138794537354377154205279330937329252713429018955956703048545385970151582036593008918361376646719673031727604932077353941885926719221585932409675137385981669450830439085905776827570016637870784570720825592526712480874643000913248236566130043596044119330614811537422155583109931676945010423384747372892467386750660652051753173313268556974026260025938830288549226066158337831564652820410211323935714265494552044987109952241427435930737168759223443541661292346419772060640794672767214370804374340931795582573797105877375069121857504339660708732893235225986874966643410826582866324351520998774079333355187236887233302488527734143118153602711142785599926859652864379201162128468749628022747426109075676903426657092179368010994663366434878946271008231805140229618335149978654613056610215884628218929945709216143849657822300687345386980393789259906536364113450442225635371466393470170858959855701720299224673958850566960452850524829948696311032930521085672512407164374178025124079448939064306100262308334822365888264315524182933263459188740090003705230262410076947863003490963669459075109359568351170427853928663334539711222264900454216319091529210169105037430013075426608844608766786216025332219185721746734492280778197839219969534775444241006866841430921240976891954387926127481126533457045588864475058270442846318118054713273903085651454552448713395439350338537287687055612644775540075614668658341004970587336793763484254554621145293901388242824708961053721719235311575843472613017104404662728271566825924669298926866213679686305616948798557907357482575428780674746670610123984966473616998156754725115810455377510630088371108044844423515559409107859955779335006406101764532169307339763528518225033243755460132120159651824929002739997715460959300388137364839511297140093695462103908255636284007022984847610654372195701419890699582670738479425241868474010557496612912732362121551863172781205967958315776190901934031880805427700266058572588659283250395662311282475624684555601898067907667085799584665890149437830469500328251384164307147331364952350807567729328599305808190378629059045317630674524188698464679388837605862462941637633569322913767945906930619265428028198024989995914520271141438601778188030330680515396738824207566041977578260096953303273155232191630216358925895378922710255457868572164669003622733915691278768539048379529018393118502271977738564613465369353207151620271157187863187857168434668846305427658310216355844879999169069747969017955170188173530958637104227929718887185833117221600099394811636635437801575884191912331935684059684592247708016944649023684433074596262431929334310002937503702789845318353089932851806581343968968777397601639222065631471133770560819155589521659375969671228360033637504996826952411108223147021543167778174608577019488604129920826996903019999206090147219578886175299506278432208522642737183749672762487368856300352956751071316278170886973085809292875368133075678098653304916306184182907664488059536409600615379449711142909700381704792599091442750281816794831993718063865139671493938853485547364507679984046081174160330172702655909319135516526346538072785286185592566999213976507551088313285133195963825428122381736900550492109628760978398394083751474511705334921998619448094607280877858308857916005184262090749854076045144920572864887353280534752656352261331948741603141379318568089973484459604930777205403180649816776228297574133271152565917403064327888013155063948429682960924854530615291405227873145618276475314276478525916135300246492603493250290012692500169818156299956775187440875665587518383290918455533838292464376309398369284933366205789729375584288117170497834626135118123176617666810061999022105798132200399265411303464434120945642981463671413604985152986209626267496201521462186193254306573246079121782239204020442462678821660996095823851741747876789306923400756071916710232127258577733881104355590231489688214252161241659758432379911964315198607131699821944098484898327708113964244009672989836697532792231311657020735035789955888314150629398095076379031359020927650072095269311758108582532071477608692519742376331988325544880700097925618512994542631502463731078592182531113874402811493364256967730577036421484947330213077505522883689069039299974501640088102791107132904854791354683237093809942019195277227568721342853588548571893714679772809700814511855918908054759699834954727749449406129158175398603425941861943938825634508404127343053402723854215284114512669972068034641688098872636563006926856369151049224185774536161989678898250130533052264735752760936813935068570968547014629233088452345681153837524552231012392224200879037260038272203937069882531466628262413568895742219268521041107038695936059807615837102909857987292230106461347908391432385768033999936304253542543792060517984961707119441685938424853120026188684032257155133587018010463411977845889602751453719509532426357461161610468730255896725990104084255577961618044262893657791224000702550229585581643500662490161482087446011784039758870344935552144549137687310855714344565747755328643320976104986307003575187546093180531167889898135365770162120909564817324209502785360170608190428875268684890613461447155560432683972156644779598830077916930708517873516980775053801854613437577233398934729890762940674754254442150740392159040241199340443879882800459234714435650548593282515855234507919458395732430956019838492541330984737415234538877690684188312120262102631273841015061085398860210447674377828379624010298343937630504218595504453351027568878277480615875228295749710295124372344116087400408741422127431083396388709566598119805214065560815121718606065481759777604037985697324204723337997952927328332553732317225465472583066011638769336551446731231625661634130766920295376771994676396309829583056879246859286235531916186648428406136855182477981676816808396243841413605875654438229145238033770912269928637472568112881633899555051468087871494334719865410886647983987642395674096876228923271094956105543887562822985135452746611229502023699453364497907350296434662873597521408353931653023948252929806880933462830812631877311878177723957408877029935553729219195933137983640229763955972635825475376685718769712046695411285090971954248666401618483864702070949822598162230855809447644047450133938060520057061949530186710415215238061459791914374350366488636775930360412787515632371160218311439551152488565262970939133804651539481089931812695552694962450270195256858066455686497348624038930396636534950126506441478868280435636336065305114065576213945500910471187670559678668824109745523221372393952375840804282521341016842444444325406887194661895888874634984889935525849018402040590087336062845553423575898503155728921563497803657431628118657981313623250147269539026917471058086468258008149999045180138722634762879053087231410678073851635096606692138035949374689255606603339779982781729421995517698015918564625136053260405363968027723719579943430278555613155372181295935102874336171972859440840943216732821369369527946365245540404361902593021397849777767700829371235501852007506582513132329726939751896973658828326884818605147885254169879517269085457228414066102099192052127137588152905778746926037420527160366724271532971431997014037996230714959972362071051456420546620116205044248712534481243050410162834242735605188597361679854440353925762264877392617664211881229698464418273214955763477793302571082946661969979025453089323408633313333037926771137577537662829915656239983950929217374638646922792239609319367652364600894943805528298593187494810170205041819388362871650443746117474537978049614920668137262143986549063238117862155105987685271331938472049153093005000574570498273919997123903500533074198331687849106265493195429107646673547227332686441292508131212308747700702953590056980951532195524882761368174676688971859669978946636334438978764903126337819655081066562807326128729467447815871420229206342894118092092907729034580152739433710880914685329084424711931118308440499479392579273902619745009945928911891720655904110328240533676427283262517550193633874629083413106768951929213695345158086164240456252353596510850244545829518839579514614832240028073231254832786260582170152817299496766990539690392842056410948492969306122245409927697525526841703762534856277458003746166728882787879758461366975705960496313418140428094860197391584204426789155682632788226355553258134119285281346738129656500153803317524496442838268981732828336221365200576571016075802587544546244026627201244642167588908019865316352878016946016529262396998270401311232028014043778860668270837367940448175467922059872001411430171672881653815743291549600940825227379865483750898719167296225101345169909276355778302859308300797175342510151225280580538255347210036567004320681743842046915337610290245420317739728536020293880000341770314165884482845455134362172235773827416138349623437494279863769796919821390538162217478984142454525618074785921281382690495591967281993411921574767853074965623258481772707226684509164030704860193701521430143519199879458937214597058572633329606489401350369605561529870248337040402725457251255871827978508171382781746615513520868296228576801038835145476286342482853145313726809896009589325583479688017831795563527542942116229517779607975703745494747044949285029650225963496243955123521566901392647588245647100312257542983997831309410980303029001875087400993571243838636366859753388264646001549159662799372511996450525811081907429599631379855595046899939792818551706911280106329154857308984815485320992630603654848941145389934453466122111278266295753289207887262732947256049920741750221557197542486024919762696519233293657571837017521407627709773732522322210618847080292390430605470890894026395151404540902802104340029437584707052987520461535946875541952325250728912146606835399189936826771787987841375832289105558682710010466092157821482814376130961553779559985322779121173641362998140889194119052312679072491652030942088659122677941637140793586777844445397667765466071252325658410118908785982849102567353505741265752173988223002565371685349210176009243590666084524943780423770703653579190579510161031077692798141283306804043114907876765930801309515666590615395349243577425148593454508301490304902881565942961977043952465187787010731658798312972598756251183756236298201601663349957598117777888418684336477726695272386788473089337225275475476433473718122490029399041968804707635925272867401446244047578892567765090107527788778419499445842481770802606551254540233446880687268946503130762784066043752871759628228577088010964622564627192556427324393525486366310838804771275487522337046038694933466348293461249633556595754961893056204946194416397670187333559980285499599441083129893430003314810184618099549694521309629784938661907933680919121295190199587869196852282922371858449272163604769920407466305839390049224537300957810405008650014503781484740039844393174366612629000408991549344377970106111360726290964838515672277962533430982304440224882759566297381322886060977384489056767927739519238088177744538208746964753134561659139386255276293627171773539957314601604887832690310041881010429020489080506306862143900093227916764114428325338421995146880102209655054518675780628776825010950384174831218205813498700794839350444194222575179314154681351311746860361138335968483015099678809770714084533172373068273067929574467101982093103136492232810362517575588098386578701392102744407891241450135371356915627294846580606408506286578802607534289289481893150250714004091428500883412837144967408713401374163005616317780612656517255441988995482801222394548430784408527330199864083417295013685135144610909606028424739797202930971971566368870338802466502082717877643580611042342213173607672522821817760803502407488139692124795347687415638669405592574706240736640661510234450367583887756762373247607079724612313655770167908467005211281834293411903799355096863969727502064704947610473673449648544830180466375650368654542223005854672187727441759176879646736113819982779257632853133589484581638830843881936868221090946679290398298360389255018435994915344839648158469907571401309383556664039281396443945651206232005417390600105998658955946148082358713421081486966754349330780793890966058344846770054808544602758421509498055040691341334142081913904166240113304875978432139654024193786132263177881472247577671730127082437725226042944646888729329215532091514068030136418362162084703749182945024559667322898771337192568488223153895180446545289645170801926809499777869534267824803685003586899905668905513129104654065195868077658666555435930277790979529744447767455474069487207341443826985889854545425445480481436874782467369713732427147878531155901396983410728678424987526001748690449862046893029668719240764999883124701955107787026222731330478754549764621141406218447753350021084064830069499600919521680815722352444058842762697750200138840221956423692641357220315151156640631295729026318119054503868132932688874107349458929423907837489932885315261125594535125306928713305930178014602838754647343216931364264809807338698411105273645810634426049256146122238766211653664895547163249778249068276428586173338059089480402874933715534942621194817646455872824443476125580986037447916109846459819563124568743490920739577432852758271133350182870895683507637328453367783754482772419102701179804991225854612962002197887632227174872779252741779100571556013445890892010529996850878990129471827887891207557222291380042354077824001266128051783721426683955725525916735199740354664335249720110048386377565546577016538566495746346447877361661019034420650396185807047458353457219660226479507906519817885678985016050321330585215333919005077769108487807454672517055142310743609644895834728768109328772994873761460506551460685081055032520406726406854316824796034803057708242084796541478507638775243714007536296184779591756589494637537166627636850233809842496361098553255977513684452468195612831734366777222463373075020487236920040043063650422343019101350864292185048522781622960056598442552766420233870203661912294507088785682667321940993137739482422525931356560757583503868738279820735770826564640763715893060765858056143419871871464698912967645264200915917672911938247842935220823487783553590943423040083944185961875738106931550700537318714207261317755786728539989990459299683766555541682743129990003480901219530700687459062048305767108788536496801545591043099775941919653149923645582559001195333875336115020755709484760085412022470678145867898688477677488370323839736997478841859201463798522178595307285735022143445244367397959859291793685260221354659667229574396630261302590134283616877508513720718029031937507951328582892882543372854000437140966054195259947145693816213247598454406458704210543908981351758660930182278464574577152620281021764850912157464826439531751582650644795856560009651664986225086675514085673852896711511779138248266554703706260900970398468943108753460103427566181423545598289921123198851957468800546449521222374906195975234206455335557618983008995745495083041283262002627985743317908628425000441015443860919155141102518313143400805603179982685851955541421895294307555487947375980431442689043173315168682350092927636931258507903782539547179002790381628793049096838567676336834278658168369559649105366197072730408202799831048235711214433842211340271452027279367989746111770794112455413715183822972212011379095018882889118920024580264786896984541177263942230233045010966836515214403520107967750912131326868632031766456975092648940307063912001592979940164211539284406603381259297847808403772706616001122734926447905600319154860110737183416443339184169640495520551552919011097755376820596476206967161765503659464057084285449210757748407267586797977343915635058410640972058057015283147595338489320172729322602143264239650623669413548179874208648321185220626480326087631260777023307150940509544061443479262939686029612714057713803974167345802418852980054035359643558495371060206258979770694344369377587042691736146239737327445853670973588278353151453308922556174277510068709438017468412181079827975430920504789145735910933878949062728590668848718579935067963007026602784900159153188995504115331815472400168020434690314591874635462853287593974764789072505471892545042116064754342769349342076086858714227312253065508390872837130821971054328110903970752660286911781061651710244005167698844800041934643971382775033053713120002185820852869679481942684630073939499510855551081264954720908776635210723268668490006472543170869477833539124651387595459832269194713822514409752042058260339820559402805608265007810957597505467169475483378822973506879684377904176436246947747334347174185371839197182509768789664015907246616845048679589931369951952726436888034261932210395392329780238667298783694733046298982899704240414332690120074657505850778061003440377864779479001090465475644826357751949543966840706882507790505498237648774214732875555637413698888602770463300125072360079659469086337592237683294290776553020677622064997543864677335776022519391092142880895090240656838649598291439508780786274769893235895998813829335716039772629639837084022154629669451212608233201753945153307895826917588907146926574643523744871820126330502300646234561226874132120008094365744610640576273197650127245363913345321826775743326916644187050319585115105909117241222699854602497778607686557100346075504134404980193525409659392607974311105509647655334244988681973889376564244707962729840131028106564496393766420800920681685900050988837574086467344813993578419405735296601211678928211776362250349728577136331761065715570085951359371359483596517043519591072812192928642123627722261074003956454016348758125982531778691494094767630100680823036922333543009455321259342548673631322291404235277069254152545725132130707841523655767635653117936446301747311568920777790081493554689934196600617701910135652426948162247195237598898420734331226227990916881433925826789323007089987198619696096785195712713180891870548360616462152144048751862450113269692517549024140861043563407818230216998035839263277205866434361873125706428842642235968125211447404892012915528577686788629990025369966525215726553721684263205768885751261673510122605848219854585728423951743095372853712297045545311373027519640285133089316564588855283334304358113625048556790059155105192268857252876261547004532452125100067319868004985789651011605454409152333256517341249191811558338302625529234260953620929754336855202210784095610400281319179642295616899940408012774501948605146654853659917313962453746424737169637567350869231268624443341434996491042323190901742146180736207584277394023387378663333053317906088923890601199522592002810708228957921992202179433467144240900172047418479624338088564196332191715130034033247033001672694605324544057858935251834553843780379830554447132630243244215328294241717867743110904073288459984983717656501813992509240554008488204665024714135486508994415682252629471587287512906574737034219239700687033449117063355202038640696833364600302664181656086302689149891400644904340680843301373443835344002809825104878851982509160938883086871101840906502500059057999719152011578092006892257520898840122645724449830688691198203458097169685008695763331391566902280780812786281997652750146626809730259078492997609518757281677358826126481519169809120555058214662879539469515380443737773944443967545445016889943736973172438213326524982335491808559283673813140881907374311318075874293725455832849321719618596074574065868418292118266298226962400335017795430726168561090444609934385885620007232834772701533259387891294244064093780687566259449411718722174600970763889984745818599656269789749840307824600209023650095852560568955417241176514791468452122535974694178605816443475618336130437133552009564133804110380860393924138542199281833586398337223936599295049290136639106289414675144922562695760287161299234434733388300638045673149307702120207794085992215233419399282044132524139834258332268301206434786843514161070413764465812071470597786837542813150105039464370410023266330842013275150721411329118014671024117340972650890111178703750222530756192251163438356664059135275273706703968509899543270269052060446595511979572489252626757349128191604549974664625786911724536493577034300563934246707678807921509881025186119771154920630588557773406195447529539080383559820010349384738959756236920357206293704581489071791362835658225274889657567071556883896203876798468748683618026182354710222197804528644129170145243214111779070285207772010433267719648595178861708872688928602083869232114199211156185303401143829757496414723819953621046370573273473639818207001694911746246585141982870133371870676579084458442604601153277446956029189933214078340087276460996012874211920173034544355412041323765677727584219628672047795246982900072398775176343231196704023741632546030251361494952234135142774533621806343673802785089220074121803154778661814930093957882850674059036225757147024904490137683048421522962033167658271218724297345182923572744491692281797624435764782315548102467998603146049423309443099951773983088198089255467187543255066375290198809204833874881071591292167102930879977802099424357428297082326543845396241883570555181575811310188178294153215029991357469347346182831086457210574151529956949484286168287163382308165716451552506570168774245817751618270606567844233218044134383854389402189333466526519378152571009128520830977024114571341522054591449434103116051316966607810106974909370480829768527246278836889544604674587258271439713534590661527104017801012239124488747806347633032896461004560735517884405989780217924472697155057654520265412401646789783495872069903808312237409557573961821537423949953630394738718558393743095437408897873263795430231762820830052766743121418462948366485447235970171869478626310648106590477695421341763300621295676599999056582481939382969418341576254244263700659010685909742542598641968976383330122672785223449144670449611364495299209602490656545141899692835926150908977752013074937876007616532434106213585053235109894558687510542958231551646402081992503505438165155918063738790789534383980095922978172671374124132445371968769932147094476567631907381999533925577998625697781962722133734598294115621461081731876732219906253442568178360237785625044416711793617261221549358168719333762231442082531941306606228716045262183152261099393189532407787178675770162115700094199561970153642559504822974811410145099272322441013696976289684345357746600451836565485248984422299098892929188228132941080555903530671908787109503183516685833953780703595787355387613303401651998442798708182029551862519817193571648490530065253126176774709219429264696519877659483289375280537472288799528782336826054806518235290122833511270531400169533768775018341418549089361242611094230951870585690547046869527116840864196697741865512612746852054787759589348062357243052275230078306332628176769780017065041400926788595229748626570917833707478973097909097829716361744533711030055109103633118472494365879161574137949280848583409421528481394426615550269343881271708901412550143307424592462987104490558353698461989631138473233192038895502940607748823836787839987418415436293456386958737892262672556949900854396474753418601480966385443007418900281104433051864104718607335160233535674897360569587783201861687313999512134911083090518442257689803091028637237097552258988433262562491259205636491464511911720223239150870685453425082168768987748532074773322967659755560781776930876238857368873883381946320019591132552838989207205412450448299082946291666268125227369841166044290397055021339773694106401029274481494370588591156137167038963109458093326656044643904125838503074192854930975103774817713935723519609044041522186659737221083372992195987603951003252709680720387547951906963408489730129204207737123968726233660399093226266258732349220439756361243618198211429118428690226302698927364989236884363694344254000571000127467083980164744069926086588386912659874143044979393290838346287923388279988071736457536049258086153612566324551150676722563663279662754499543869846951021192800027209843185133327549873282817811100677220373622188959187649477328793987902903182005897031295315984224252946392025991835601867385702710858377736629974099025681206848691990450562388683503033967533015934015573896905259544395007451957285446522963851278424042034954030625587413549789444099652498629678609039263620477953103179708921880956821093087252058770892174204839670813026247002420785948706882303987703951017126530237034487420293452633232154296803514753929412008197110088863385063056145316853717689802587385904736134750928358775726330975093319111951953888957915229114568704027966498754253827156428179802633822408236129328813452519260469044875553121793208319767157448360757009590720009239855267783800383471460852360753726133258976852884998359011508071560919418294868904975945921640469309314762211173924819779265534662707981850157898829416250677357627994063428548757926688257757634560207960655883200412058852630618498265119431267739213110108120476538357815737528560335983010537469143314576674573486348003875852569061495501930241076923881635910003623535739694986945758067989434252324810125999009738167794586964448242263931922451397554108345597229513439337950127078723027594924508869879149384160670335707566549181620440131255281123638041949590232529080700370817344836147708411669135413961229288572793191993074608201842665363423696281752962077956586451083793517123360676567265584410411197937515792437773973608075669437419511766191776960033613406059704753797626674684915281314938632038825713556429358205646340336897239441617711674794094948417647094365776658301103451267270484505703487393214501647062931668354023738044814069243365287720799913267412824517146246634154096741903845487387731607373644599932096047692203630109728575054214835854730913508775814413720747998435358403157732215585796658023672177861780545882430938039349246328545298690159997185953271300721949373976744940990802627596542702168748123415084188932055951899310986586642195211774062439725779514072659935636081442581192289966243182035347153459555362521465618269978581679569874652153098413388009515886400451814688366259565535797420109200128366456015117271836955311463187183876189843832160225979125546128433087432679673527920234195894146537873698133008404655035536161492782640126021260214975076913264353666375499129598627454932297734092208646707574597121879200267251430219483007633895008643840684598162262556683789333222730269777669224080403336103629140311603531757385142299952873597132545451470404922104678110888669705497178769808775190010413813335042722424193679810600122600724436858020120027077179839468412365794929567520433745016202678006353180302159374306935738795954601770008814357190601841330549967494574549348998135327465031603709501821998164025750039405799125847991297470950529436441658539816007404612891540946886908727762306342125937974147334050209762805917780792772602437204435062156157616778023875682504443828540504991075840917806079442456397108096876645934378401594230375590403019602237570430045210918482007556190160393991125249650777298071398775085418184759442729183555107865734830862921804544756367736964269045969044717546953254350938008940116531334539879629336116366596052289488727757254502926364459768095971873999456671000330252090348063010727994073979236211128093251305327680704542358459180820112382396663912619971294499022105881790804882946515858615978088776978010011074343677946136346406743820536061611086865846992641741143970825615925781876129086254980473438711788406886009618010662901892499782742314750212804514245408199312358037756903279997571522715644922422436273859492373009982574579746125754472629289189508140591529141323471577567137200423076652233186473317444868377527869665461763209649131671489890802341668289656176604332723060647426150612726992675307332642462180223923740282133924301290877230670290770044643748356462323943433093384718192428297610626382965011280276670568619911890031723018862971234510544639732513380456836904631891117263499435623843716222496148060735129895873275816677911549041902774518347419863650431387249158057156390623413704701985468983001496726184075667795691178609782698809151854634352504961867681905432056329534391653931454231153857797561726242677276092669345816455700864012096106315170407629988675758183235004279746065927025355463689264205726838988887383300635036605546532038490163238605544556715010371613703283414129784582544124936137303401818003855306847446233040432174316485281846690717108079582710672165540997281934835894856695420699071122962822041064840609426298610606597683898110185546364619206418358080196634225575103275164229468388780037156818799079986785550848359908115385905163317748222543370515544213230203064629826732703030675469694611768132290683039854565749373286099234330829044168200250566291723600624561157388099638199466389447194349223360945458517520263599971627409148218763207375713642905678832529988268683831578429360992866164737208563692092542538400841081605195342127387764137455435090202133805130954942607192524889830217033170056893085002827528849475523113870795386281138731614866654939239271579701315757499154840997314730622826597867170088140883829992163632649681634562070403475369833927841349495032277329508378457297109133284146489974635704442096304297725293847928391786060419590793777459521767798873866886126532184645597076971028098585238085825625483684347885824152208701489377893812158067373650625208526782616804144900490284281940849473426241962071585387225755449636092270133590960939266502997736916533430105717731168375389189766769986452757340683946622018049115977267778720859419633547997281838139811104564805686431207675237663308430436390046932196081295753334100656210330384652984898879286266932105353302034702390196166091990543141865670159275652440662449115860554670982625065614479886058508079997381228326148881473257698551676133244665690657450609429481195067788967470644822472648465219892893236491217730573924441041910405230210826342973703413359298401847776272892805037175279969531130449918316417956895883561771307393128946867679925019087229916602045324286642185769315333931268388638020464680907868148613500757904619472820470541815479121893226250777024017217966869962262082027622196155722569401789670782506036279292994955524104468000667603148940426899128385874146181514604158527141241182631106629009941841716237224624466128222295134776259428261971228294877223405847352431156362788010015420375283260885390882222162437354520746406426639443673355009232870013265584812633464012937552179676663216333451159129467095732892365109110330211992012641924658655283355387977137362199770961308531038394626997329100106552762683790001075988616774692898542579340878884260034756795436736082147060706209630622071417998196692839767059312131084228639671314416913924579070238191713421891071848771556366857997110829822816900258259706446983460912222732447397921281107473978193490245469992336244198640220433162942051474293709414370277186136251110455051505572748150749974295895260057518239118116793544842621179831244230077789400782426358083096856223827603373080551922196923569432581493552212718206927242184071940164057413184496082160729924538038345076222817989962544188327583907917103695105164842993684564942792139308381564985066022628582916811773880415317088162574097545180491464589469375216307228543669157317432576066771244781277409017922077288341871000800101534818748881245089200294278646022377102021513530324120998621647374799660355292713249121364565173259481132737177277427319404669412733705256332518455595929074682410243607316329908492664607361128703380238681765204727546863186862768874000086492791309577720450996396898823950068085877253970074750400534388368422516774856899491729153878115606280465794656773768550965780711967381959642116918973115081753273743906244748418205439329858512556143515007018614324271717246183294285480897027132033981606329812166954772019001240757887022935819034023488457801766742332405869974758877784990375507585424058996868752065815665016963043313834825834115507378003111777388935901164494393973815791560957657942960514209043053599474505224568633839752525603537701694539167462785747703006773794455973741447146636974007590636765135251743603401756704589083491333322435753831902341980118511941548709050763507106475937531903099057939009691441564246459412820126165060353630823725543198467660343725938315866257286569585371199594330983337797384437865465194774804794958767834651862789101858343598027307894488619657299976197239095793882548035657018914851854093693258726003464817715782528536322193795176176528990485992612117540510966581484721176000462409618513217527033384732869477820524769267564091985457393698007619958952609029689980816263322170206478172414621552812541623975520626262149616908924265193414976460003150405213906898111933642647982046959522514745070999304215202419805195362924771636415643829559028248585642652664576946944854627471096479643840366576499435735475060353667853154137674761242565065680844889459091071399745222787268432548782654084586785341656970429387352421156266676850542788481790706968029889381723205567202509919897920510237476300595978142047536862830863043278654467903201220034231812486386236546251903470831244267793170302129968764154978654745098145006821306351586662108235445214311266273071912957145773523477864880801025215327848752452798331013129513247847658728333180071426625934008739380212991464643041144837333323472015482890033062581363187238364905142193057706008649474029142253939654119429645904724906296593852830101820939977249965242601377518695912739886424031195086018354240483416304949891959997437435491257327334473269220796377881910783897544136620630902330274107518596009653808740131921760376758429638628289168987707165740052814907607770365866166458314528583043474076656645523237890719887343204298387037925691745659708843215462420189669143856090145520267685984824070705212176756108316453569370226024936315540168438363729568008408860826904639041019215107600635731039451207069899330741213276441236598636761321885569714241305346554688077199359724384072490895770690108668696541743179432997064917900233880971427269664148812305684056773277428966127486813414750375927568565223567175025082670382539872694817590586235000059358761584334307820685616600109418530323808470567418930301456236554727969827977373719654499226476535340582163335847929662793703844856256878107617433023323770184845712393176283391040411381418107902102329526348311113805431380794690595533282633479897995196978242293002502425236465533062648425768947899863668572079107324060432233363816061005929725549108890892423621339445765313906937583901033923632588147882019328043785995155281887530023735038416834877845175037825381891771345108155653523942407891337577576289566973255752729510340825385833034136331395283262190294380881389668032605536499578196973580518109597418547018160979859898971678165150317285336840782980516621496754525166628552307738448862714437867361800314283017232521178156826659652195622802923593980042550867882375529818907180709136326199665485923177974677356434264126317612774027133160281249439248963022993054778186977508086307638759645807049546806673357432570680970394096206712980130448521556754285362838032719200070478606665253954281321772924612899288756059461018435577047371434689922151364199841963027256486521075520447776221030840803849748152341873137847068774791616568309032371045462149784049016148919414853622810276263284245423352753735941739866087665863617003734138965496762795747082390085817992407341242277858017807003596405385205316747813294890187457329469075776290115152995361306347185788086711797505117379473435124300613249900048987504179001832495672152958049310686257917968207402798898745606625567233175289931214985245829615696864623929433222379143484985162182790517447240654505486611690150384020475571153084538701895869480422240907869705056928014216335325536042635723263682548288587295380909372830566522249811497702802892475816762260084398370955985855290650383012392333541973461709132814092251374272801547017471119190967571667918452313889234353868098597846352340170177081467939207668585990319040429895871963200886514943189525805844497897721668751119648317189279775887564125719929299233131839877204388134093099052401082083791239800383002696586322662468641662269898408166249684436266517190915264720395672846829057385387654372408613393225782003867870098821282243831375673709007362810289533393184439134695954995244785114931854049547689258844004708795554835178499210678426911767985970519017005310418123474943382448590316080354147011078189837309118642764090538722467921203395856490253438881510542324641138716473297028691664514236714231465790921167631113350858576278187876308624268505917713875411550624515533265073284300641992392974595136178801286149443818195834912218131384689494564055881645147619523369813490515387577341412720272332068616173511232021144186828253331714822360301648368598896624113435246692192661779622706718601133802240239843979193819370319746728730059447308896299877369436338042378606377536361824885242427205313245316894030505901182060096963728393634645538849851630104450935994211209123553114429191259920079663855398282391405672636004532065522128018848541736395573165369303688185050359901132471367340140445305694749448790108353353064976192528947358381839161679167169091469722157142242531261143081783603419805839060057260535367321337256072794532773605333834782478785911806359190582736491825615601542073595149693834471642347791134440537389168514036088204059939261475680191253641884664147349981657767664904487915761890818803321249527984325396012356954121381791112816996495948218356478623313858957537581751608380321498509103498669672261475944241568455117754866428674771586736643993673111021368806800274098138067092972560352702408413164616195615962362193985484270728244100464164626153222317616142426059711887383811594876070288865579698663922850263387403951484156633044347694096181362364450984021609108427717653096117260120327837269151694215215689845051566696651497582508871439551762914926205482899252480960592123548528254900738259207594843711176023189903299837590503904816985008307895177787375024892340353471833908397499197849890942505667885392205254825338468044981152330587318923546020934476047361717291975838168579222291631851732687663821835994749448608116604198239863158063191443191014771846137253634516388716614632733667245712239547471043488538042669535996422227780234584270297669859759092257031209062799295585748736780930862682082594797144402108758186845004576172565612896063166239293836163320374527729432393628229641453790535757749876267191851404846512544651735588219488689695983858265514660753815993958845144617949913897544337870244907389275862725606012610031982501840092005073130046902163029000495358424229916426458088856842259059318810918545023489064568029822252786358864793382805752052408649970155120929205271559188516549975636054604052544865084830900146545687227814013225075645776425626616779539835106810793178298844458438971402464700382132092006079689394848345162599755389136575640356314661180361625897343436682634183165301070806411823409604724661316183601768968349450574523982362125167813125043762349025297379521286575119993876526869807510429423813885127716051736735438619864490847939159985248917752653262636308554053139929402801003003305625443894532149123652974276740186816118549264211673696619948094165172687564232446014349902957214325655398621373469597541859124177527617840304989916684966322535974306687484447994128002380393731083254868687842581033072801690482010362050805091521498114540977538652263877406672170447581597575907544819227845982213324041412669328878606593687519471622363296422151526020789259073084011970537234894671608517017237968075623489916781574628715934175774701750060913926763438248306321233732604992098394521938640390488468024603487399299034975559693539702887588749487351313690073954816582117977151610546532125383532654370466352348727903491321712523499038878511129785746774065936577101005446718253937926629313988643063583655872547139128924946958437964592865878729647714069044569321686030738684171393573698079926129214485203749927392274947087188794804305669016866175460961147291773086529410611998507032597532154710607422148128073503189655253904080934309226221476823723335146673257401073429241907889586686135283780759496990500953113363999945914282174512817671015411780361501124043202020193249699325139413810622335909834410144519050701753460434943077484424476249340769133603457760770463226425209838805387394341321122953679644589016166604757855224774947610026460619836217827244045317251714585766175768161596939983157096141100996826429522333420127789001017560259290254256683706226532361671483550911421741189833922196591725409385289045429292545181186086127294548710718390678479232418258481040617235822793988891706588765219075380316827627409838136361859597186252646419017527441182075327844942221294537042301223358725244786457864747731276677213515962077470405115846529803381930864107252111857512435499408783551699734844981144677240415911294284131174124355977167765941441304230334877036620066783917215979576281288912451922821234282096894183954331270117817792813579978898712575998568980840390687581069187394543625082803867990501152776461252914686601857679030151309012863375015574876889275074070177828698329287189405782553590522272285718897409746634411830259018352540664588647200057771907987020767454372939041816035244933030009240986212545720145354804349278620737787012018116212213086602397190166850545834475530602939211178530925610472285241331661746811789667883778761380026512537138468660501951666587483590057213525964276547008838073599982532993626644280194894644375955530068747776460233170894616249256343342154888407960922143927348713946994988705099985594199720520701328802130129455665074995691639184757309295813753123635653191253446730550790994494076695948039029462407634434128737286815284217758230116440957132074755926696146067883063720290848032395059002109059492084013878631166002225037983734977309311639552351016417681070869945815915504651951564220617653237804411413442794669817323167621741823504409879118696713115336357924195177912002544838176096837854801263185661392756263273407106626079952245123233347759961470742480773376335271599257908798290097458244918258140344644699487390134516961768062168705808635985497679909135899797286655138253534177787188278648433546493167541185836319401054049288449309008144055704726116401677375002746694751717282373545632980533868950638080099463919479662897301239848572168880937013390047643977226116972004221824408131886011289826184219045901984522537796835981305947796909843247215706570452354563910244208898544524689001114791337295547300034559718763344550312996739782660164358483279163314703433693100010285979726088661324492374243026007000542785906051703760196047254990499157790848900057516801763320562871560923781845360203911463439975678596255203024167695599452949739770908500854337310007727165679987512499976499826752216331252435515189220144458495409033639264754658730835152067334866063348648540093705294759719208754993177050384667318878910971581730355243431792839184528289590979436078326511126338452337115429849821081604066841284803047703159862411738384517176556491733481982304111022777679840579500012675893900972086251379071840592072652954645919587731900719137101873956063329944965379910721737102882889891949338899525315864012269398219177259849181515995939708646363689665067002633679028156974525819057965478465562338306593186746853754800712172662674535742698789022692712705109631861810653695571320464950951966930684002035372853104852256976061117722453206375973549267205551115829391913799093825990480932816967192958597588155810327448208096492888758307504843229697768708022146478446446945849814715845266148025300827683498464711323093132666914145670860384942259801434575886898460354578335744858601187544373501550813673306622575806732550147364735423926877411776065171686937500097002194731968328810375684537206373797458242134378642029058445408611079877823099134788716419576389837439239296626154391880532902309087496247035934543636906422681606603198213268224174474183947241799121549600431587045554344695717844958264794555732114157026300608562796754972821233456131501062729329476244032655839550328476737198932525684586119508416234078777464712257098503265739129343359463896902570843242890132285635949159134389240880848493512216221487273573601036884844907220787687012989902090556650729872366127211894523047153865587981538068579294869505059177555702916949420977069449247466299724000199657152861234312847426714038187448162212226340480064787335776312471222792899677967513032494390357322096301698780403163984139030108159259511554764923713508233845890676818741478110781715664993916123816309656439301234789432553794944379594076556776598688465570464521226383485910401282185622509700898827872105480828356393143619368068171682316354506307276100461324718996319443963085483222605346346195385749688602549687862355152115852187016603186588236121441444812913695239103559896568479664976485112561746728748550079594844354530367963467124895094328151542405475892818327935812126205119481671837518735768827496846752588824179093371637993672486020305401445049646501673382831418400117272872205726816095839458898516239306335498468617190507080800284384115366512010677200909289924556221917893302768217281452860058121490797240081941119609506864027380004628877044297077941443558990544699315513813935043083045452031323565915898249646710836667143574959221645710103488499956841007483145037072836023090252355402421645152676873971994511071832822768378949903972846646492448201300227022760097048762811029924587951739083038782585289808107613654825230984468333831354738387496406192464729215468685794720359713451934080918993299177367615016591448892579675090391662652735131479179808605375611782895461017244425004581736562085132280863910135614362904474395723723401470747271482315321291732711836858023649152851335082309535568528447188147621127878029803664436157377989217720866202252889718876883432443414891810576985826530767693808762277999822562810875915448595909406664384893158287196633145706534105521853125939904236555636155212018124586801212472874155127176137108408720865317003247267069141703615882440331839952376695198432307342616987617053142706754853440162932322647547761283151559865257190320464969901062268923795314829629484460848355149473734035264405707981334414948962483161772964816101190811242643653646465640657725401930872619160624755758886094172687751651119708705006863407094879115717567396312950414815077367158603543867455542401226290236553611963648665654799409505492139610565188687458681860161737097925683339334210939797338890091019025465630212342286317762409260147642525341489987009391029623493852552907588643225525940206813550247956288700094693006236728400175016479015051159844458211009944581535343580773606733777826582270592526636929317010520393233873999137946941574822529629642967726662149237182423999812475361535451301797899367658220326226824064192858828127310265152443187965580566371058860043838892005465071527211250380637155937903937622240513680395918162750480773436978273930661097083720806945865911639255408938978784276776180399574507402935165715630114014564519667483430424843476952881332792349586340512655717582441765646462567061096161370738205189664448177806188147563030298450909554410004885782260574469590903989316569235437980848806249810968728984686788894305371170976496608968908837006188639034196529962179311372640992920824493881476917606498356156774628896154648281419128767838378545556774035956221737116389881586904345137173358607769082771232647153211886175993649810920514077544574713209046834598125745016584421090172353091290354296795448765258657328291910069767376636040544612885044389687296557182042080123590166687726270773804111413530087580886866075703261846962361792250738992821718550481813224228428400180464360546938453857361308432671309810285809037572303395895885972911139847277861418470400590759787738915268397652211683133605749922283751410729757686430452367894093679749049177292277066145173472183394270433492511014676864248835365787014856508863563304359333013569338272166242086940008552873306186617542393626116065543941732397409559969365793932906286175490222218960383814227480829191030668855180800534890844640694888519428688608664370306317229062439245879380451268133827811199999598992514883444724887214139628208856882101493437115410279765165069278851974778664418749808064261762978961290208623811362370758718419843901621093219898730368855120192713579582473210062108705281427096701011997319527844607265085763953692714278578005403345896867788316761645708257930702990370501960048783096862994088072883670120312127674455471988115542844353142907920966665721052689776260115671190192533241055960498428379683280135544402181922772587682694531385902678400033180926681435029388739615105248852471061552444883955946785027847749866583158528541255490624541806291585131601502231125679607132727648412515446391498411808822106720884201349416277070224215222299412498150191501824028512094238534958817463440475682506428418727365503804747246506716518751618404425732381796026525807263269281487247240423747289170414950016427434283681334481578994663093362538048828847748762443730066618191342843098569684432210151713557479761695855042049807755180359570732712827254708558197340439635809409072358711558263559483766975267595257196872360460273782136082306930993596680767549981165872994963254920731990605167985434675626326254359109966846222816146715166678959309656370740032714087558379452498790718126943534762068484194603216167416918100098479512762856637971562967026010415259987377091459288400196745310468343579380331574608725629151596509068888731339482831110960541413153453158930959447171335119233118839354481232712789796001603546230778167363112762584982845523722832202468989199385613677025248413939139178980409617219740435577931661738614151907310559273566288271570267374077643641723625444247901151564197320695089756411989516602761519365418164483657254998358271402589553874748449426661715336752834843253404340013684586152127027914533514714954836443762083278746381117401508114014928512345260485236783398687559506442487930548899202612819877642185491164478675068511963555110558514983286847786912213465620809918631720287049165971169790256260845751633412360390916468100545417197431980011855812368199754483333779961958209622741479119857541444838865937111839860380585326864320270410673821970763973568892632923530596495963911394385465073300391629944343588365805072210690976740101741074411604688620679071955856146711535412399662705423627428523041160616083605480316753298417591102129162540251038595322116924231070749707069765919455893161540000868797712685757135589576950596723000378510373095020601117325612791188602568415209788309548030618050896239350674853532091181512622210903362562688146588597589639400048489096684641591045587248727934109917630307223135011609638717170514794285148698977526430626605804636103034153982988316100351343993077231551014842236510815932758480323547382118861441973181651319177009244461391603327204303629126266404242700868660371059531878151826993647551152633384847218087018748463925540078699078540733073570829867819580927562585495511983535617616292483680835401544655266927499125329676525063012080891541547106414525434004311858702203931617082189594178688626070720302100663027512300122810331673290644221073341008240141612546027213072255769441082790507974143719444500085815571231192650106938553401825517938260938365961966032429494593593581185756735476490662959968833901035079204476082425819171127732692663373831024290310514480878931297480807990409422739518014481994553832452730112569059306070975912544192840360914236737447298412930945125757705166392067221492116122278731622485579949490144125768811446296691728891656647847397776536415277840667207831694578305990033311018545781956551800383239524431805591726550212602838102851109003396139706406128507006694242616432974232513792762153495757793662117223944377505609402426895151481844461143219290608904634448790089041357674380086215714488567993668811734055050905807669013998870423202734965667905493886090459509481166342005649126003505128882508259223243276073821410628472291675668821441511725770428830275041304131073784903940156955613746794274048617634292279948481231087102951665791716824044375573404574634472606412435263822910816608205613439171200250861331633446948112675089363508660922599802487303060326960244085426846213447906898694490563255152318563373862936331412414015624026904951693642396939806343207539061294175883882504393316809441505796804345349889773324660528611314578230195158024867326986349715489618028260837557834994808470740477789505869141890601952292551195012849721094612326902801969905848383305747178454294126399773585172993275130165468897190975521896580571124029009129700253893221896966098851117862077989318187588311800208155195145826392557729057216142096364443350278833886335068258390779500769904142762149104171154232934592577104802823071496593330382428849490544419966449172364289561980388618363934002507676188779483419273685862851572314779544386235308682024767338257240699503427292281756924450350313361751433008037115715536558144158489169588862407882913504242735982526145810883071546450851751290405091613637086149300570858953083213740132311727316563380041009771508725643810953264762890460656614609628597836344835697487740280647226122843523689843623615149061129381055279367484596348567437607239636728891744103904721631213591928018644586761825336718904912557683075241783411682601378390657052798938649514323744683432914757039688528023308121545747356807733921707862232922872691996323085228785785646312081567430170805918543577778533671310026545491993726296729822983213086048988422859049545991442105058351454194200276711745083247474821026539071075800359786866274606968189631621408296123845133819279096146905918436698890191728938249543611252399084320005228927846866795627330030670648392066607393165581608317990691722216820300737807663519758759462695940100773806002266695029626347193714398680403716778591173403021467590093451648648647518404024485942242844718109637553014259671279098894935858483567606160813039242569804288540514714008478917175995428122439136311976014414783751236959476592645430464179973885003156408908641560142810211550589866228498952112861906249996003023987260900214439044497272904012944934031317039718531981782591709622162919588868644635412103420201445218374836723058158174553294864781010176260246322401088698520628275987349847485494335530867794720339060992632444176357387307918574726790109316731838501610390734996830445912859688008923916153096806495002633750108442333754681629751381646608491111368900846270188937937435278834024600736397525560957586872412894522501144283762039955189309234428097965158752138722153287119820680332028677394782131334627459319028414211748920571142283176685814536650309302851485152569142647173641492198454212128554769000390743873465826297962816651965286006351920138000160895262704991505305631134823432312639445423138783867862553269283434070595542792720529429228752426263939503560509418988775937296197295497978959535203926748892644471561575134973239369506269670990213712846975662371844823696293652708149214390311016086779378911046701920622722489942463137608995474600375475208966388633401981653246837381653511580448586242986367504174383313935394020220470376699949191658089359740635625819855161667307219233017090927667449739195860506098569604970534177896634455488115562275463849069888504495531174921750629935338607828794385940596079729784675149233997293219945860858099272285812762413397534303564178177604222141163614506317820965696920712043667884655319548585844225775516073942572505625923500224331203666238566013182845921002787663929126840945454366278891475530175517304176938156181353289183901418249648718308279527663334929786955582364568810435716118075432807933578924624985091883327803981698736727419022089844963351800548635397437082158041803682109602618792154073967377487373084288046313172463281859759671207665245471119025516661260160423790498118800882050797843315095863095291931788877511803373120371776521015276479670890977958758354436827895419522952236305523563441057097331897603838137539708104093601795244188595907629848585853659759558619627565796666889755215022249919104179435006360657378355442550620052093412994614598021728826130610751862595590531888260262079602740184478894200205323838579168094871904319133678840495036569095750043515943314622579757693183219737673574801113437183640560568895999042820896989356098317436629314532979865831950516630139416471656759226740841284875383743499355103097035493910054676683397498218211150386367664412321645169479116040849749799872644696272497912331894820008429603629166956650820237931892121040701402824034783447546013749258628717028357194997427207966450210287848333102335989525267634439542348123606353968777934670198950602751078897452770966055318968555558408852048841630431611232101504366794283238797272402825215435117640398395679729558240874880303444215665226486993015532189591527208975713686305135569885628775255148043447747939349825067321869314026534785650417076120244847576963809496880802197940763580069944863933513140535249430483616675885194726643932881027041242214776611991625385620818086280105549690223750033893542267138500032796572181765618092403718029463311912991211762165838193231861734531254017946585797091002977256074610991454013633970431227264863104874411847242136617159829356106872609345053749782141278649724444652205038742504157420620357981297394025505180423483379923057059280327946678117798988976122908626030587203951319052921653979993924745303907665253923186305803493780267721865791228051647757804186127113494469372736662666806440699617899705945300754360484163753717707915462684353228151749797219880633063633636237604912901130719660031954312921499309580365723773256345914444576579116159042443269620560341169123317390028081926923034153737688954682431382189984658682882383684189514571153446807802086808536497414235754167143583744200175868122607522274954026655680887678095197135469999603196964618949476502464380152693771965693599975637342878180938162144762712225233832644373118221253359485020837490527769124846926208120946096046085360000822385588801170814218260138669523683047475224470314292478408566346737102842214632759537384508166662503372734153380130139993975953001837961697897475721971156673549271387171478339001653540286384453090260310666159739474444120599460274243184348983800578187253122609461117347353257245497554976870043713615427651337862329383216345870137245258755794267939781826306103108693971333184687542447469698611240505642136341559947677974994965479468927201544433940013981517407299443297815050251219875877179341181187104075305213752606706204137909082710864997283148773639389988813219893515771758670078062384419787879853653010254492143056353675261853099926457958745828297285634738595008885755869353442614046766744607097705457158725684180398216540449819294796148554859300613169728026804949445302126330268373459186285476347796181833332344147864190208654646436166647483704163903205064366660793885810244010388351490005294195036609003063061252030705772354074457230187719824647417937697690870704633122144090681333962751144672739121490981016137404683047633171636890630804256525456308888883255457609714775446023536966349797506308658813121121016329731086421084552106318410554863824781806168063464474963943963922285938588612792171303212704190637854574838872609375030620475905577521877528525309694023933174162922759371099887040799044093905611572277039732512369897088574111844941310499682371928308934902208909441557320773884228219503947587859250077358155398947655618047385426208171246399718193179692716190601993178269148431583335461535956086045864878461355892446003611258181145951014372259702763142858967380350119266618990204431795278861614325753289967636260268880614340060205446331414357910161423398590737262491810779962155148875401365325271480260982544993154511585010469322952323726706839441083449123070478971250864788623209314166658910320721118872243119432998313688254037516101596756945578784077369391081506956640397178216845008712955037798232516728894104941892183019135037914956622927931718184640837578457358142654256567198362157591977852684794241340896453942175486618474644168624448048734548645826204058931486670421850624915706635462258465859694218382450372745225138213715640865949874362130891268947553620485570928204963107190346117513233679670136532771504537678175036618091158562968451252855324294218496819114522864177621470047434140212308648232573010925113661156226731065636014562905061620211248643353687790055744662751217915685400925914613550575728793886517421454834899188265008078968357307501923107143411952890247292908064587617375616469365031198437719036379317711142598072114540811902767522100571629676174072662820418875576176947982698357842467667907325196970867328751626617899483445154813767885325230383898954858774323737618778155076158850756723145931344574367990327696185739520830264896098875339706447143927498795975004596340653781727041821310099596621059570862221730654799956939851975512893255343579003886857330558037432758619900897149500585342811383939264767372535998378908939168130221667157399688498405807679401063463540686578078866053824791291856963344585039437110970480128174824898169676679639532232997283194513413730168199456618026819211541451161060492430397607904600378092118670399689294890545706720189499656665830353799219974258019127676920636267980547148372447857196426245232631296497931021536450515520448088458285779568869244420527477559515623075746160921110570399714593844689498512625256296419889918662957296434460946138366379704538041634684629409947684922532396983918955822066605892639693942538559082734560830010606253301589337596041643787598098784307545950287802467072351655692309682311507775126556611709154052100068252247559649956826121242890287407413989513472369474731908316875717106144787172448344484066961305780061269688919056842407117692259832696853808866757462400780674317391015546338584950542505562392957454413562548525073843637004408415882206971521741739273879055057203831540126601122314108444798537456472898651492212842005928278836955019245740713314068294360201739374320247066002556309361794197004087421190104364787748884534169765257849867974689317580451154234115281721075968890587426795655562201816004822099671805605270142495644174155938169022950779458775978251902046097039492739777447140191309323750553032745549328375117249116667102180578693845365131275334610327747634961972022375564456044953551415909498872897231099474409098344085033991981063900088019872853579679111489457451476439508903144544784397265278272895642107708671817870287185166466732122614834596147532076737703867543827636688554622183340219061760080466174462434138546203963776641578899845837665061416856747749785481120244998726787395746455056743272247912299996789452216693697149786295968854198883776385924948066411674411224866029941582403424665551604529807978928587663461954387878828596598796365606032477410874410028382710377002814335126855271186772425448759797639050217496181655801131210380839852351454160502842500390098511873371436685029749238374074024175982533223536046578511582874937304125094617311790539686971158655320149750336116752561130201057094557980959481681430410985463290236824228899699683855262579142568912586887719240020066861352804202690685794508882939657238894817646033465824729504118885623169723858823916471364514989663927239104290128862427515693074318448459712190892771947039500236381640206790281645396695154577180275898774488928486941456200858698593946544359081277623800164705630519798381133383166200632518922441488676250418641829895396355584187133254191252287232711285048810055151199237178291085473491926977675316089818860912887592702940302665963120743881715276441617606467702696062195761129857344149641093184440778770791851362629409436058531700633893055665785602600197069158140176555209329955687002867739944632721202977255200033007657856307447628716769566697524697305169262194606019507968791298651413648879038566660554167173969175553831329249342923943915115939398964645036280297999943022749630365553822522330485048071343520763898395649822818164807145560438028380836970712363404763870141097777186972364725329101848735347976947460810995056767385484575062943497693567270230095872428137076518748834720909174325832195393758922830900648786044976677176992938736827995480591097314161088708700350574311746393133099420386770876184289997911307917187557673503128641023533286574298249128599971129261530787638149481651432355454593056501152355277926814398186183672459266892152466663824475858655653344306831075962160429874907800883602747190208955314511782893948891498587234401831435239301156902858323947889118544792702703384428455186779211713605366765281848622070940788516753689510434407587620968496942126612999004932616848614838526056018650717492648093908551928780102505778557565321920767157443000008802088512617881303327397794706067804687168505906219756834343318861526748208507926550876310017370415943939706503957483547786843948795537721890373393366064349421896551154585848477411367259741361238636961320215258245647340057180066824131964602972270814007145233701721626846248478667759853336047577340408633056101747313552563312215264831364141569972401662020479654891778564199120344169878282810263279934318229260969976757627126395624284587794536186738861873170002055145374225169357244738256565303721001957979564533761068713632787321594004234936678875968358771171810580330808983642118873016555721111802210491705934586364436501691813322926316829554891069689769173915825397876759573419959773460051990014225233677721519588117353355308654855530867147848039067456112680901884541822059809769990714513130739209784931558951115749539529705820930108400533952084950609553392169649424984221847821330245301273168406542811916151116048511922568186537425784120360341999531391911286569137484225777803656755984717576386132002874884376333649118630394322334837470737156179666807024319509010931872625626736385489449498743071682426987241263725730800323240851814697747313073906026885339023284568520515658503719180870514088819501683887166340090607689806858911997657476143345592555045282432517151436469839655022223194084155774755364469666601196194237845316160648030416488509736004926126839793342979951658834132903733062593994339593274366946916357899586010628195745765998704781984348364044707864458752261352755795697515360324044873985523637431528796680230746519015852985582908110139133410726760220056065196926023449904270239497758711165835742013597541136635658188614774132893443685046850047732590830019825082601236986311827968028180820493199670950010997426424294042664826096389334631302087090751734833545320180579565415119381101419783167216086591899943410822884141254803177846046624581189769407252240266439323385899697404233877429584793321876305997129947525312877464151554641431761662339027900527868953986546151697701410532889010800248023596353202078164072108021166415707924821014712415098299444063902552139650447230355273320557431664635142452749243180280305348368685888901675063383753395356986563446458336560512133234341577065122265380660054952855877100755393778616300939663101748972602824200262029025953884707885557994802980829271700859364338744511597973801736376744366074853679492860978847398207409875335789252759616254862234421195512642043399180685589904518392087347127638442565574189829541622400705602153746130278719255654052634039876195195246603992966917548036253196209128985838465503745254260669255844557150275076285463897556207861176776265782821245552295700451442897459709883189857156231960010048109155491620453416230309869378016011429784760479757129849000748708307299040001505748823715190241029066481992541638242420357373496797129726009828892631663678089300742316205193288506967039438978670946386734708030803884615294111790252265860862720789215686779551553813870341523146133596495685708040392541668344805901699249644390408336070016964307963175728141619085669862929976291409744790781883927194399899766517136321104040590164656086885766940711276531682076596564655657848634129805791802855819528020209891430850157066011230078356759845079466320234330041386871021254643595826206088523440331955449489437086516065176899332494099733484184124648865709005778478540775597274480764934724316784202372902900960137381272944908913941635400579479320164806316695519384251959320761393366045370334312036449537703123712924827060937882202500424863467964353866464734202745053726778125932688889079551057160348157414428836629305430543297786324265246469490423721823216538844222799150167052507445964437734775472697856213289945599345259401631754062605716491284076770699279360380859450319715148510410047417656577815904905411324090675027150340850676978634963561643842922370248186690052863294712993562723594406600602098850634517396726621993596689151837679789832743908695899576109782423523280776111827519871160387199140004591643313736518918703727734988039230842401880895670318628662250025181261821924602066145936900463072451629202810292987621946624863373265724880094586486327298749701014687413611727077217636000625376750943897562456772860556995117706731952302979317380491527628934106085804605320949476212493711372125828060125119368870655479307210481061495862361164456221610696523917621076796142256852664679023622817616804969066226303213524565909426275791884569856814271410468440350766158330117120109826166657025180331264328974933997827778023455217085735704941907370049153711959999170371831724534028937600816917200309150974709673342679241116049783229674297228143395183429289244354331587120027896829246230619167743011470775817386600417054758533121957398522400783320944606542809908113730795170093559310383415610211514151455908653992421344034286366508208666337108132864302532076904065072961470254799855769075478644719999475632889669331117963770098689316589225972618683111217071771256177251437584501540009280612161335433665935250543695045977574284679212417088954599673056790197553349480526201421673086444091378025515028063741857895037673328243062052506152693646700585093660741472959414721111637239594204983481220954425325129027778644547502066107362528415946487701906261990866980206725565179142759650276863328149253724077151163121328922291159127847249738212306881751092234297837210792798353415424239485995546102715398444634812572346324222266550212174542853691581029247039011939235171016825918316496547411991184803577920171682365183359390446937139209791247057879623393237543427886342649813140340021328898511486197746121377566840778782783290675060052653308233796378342180312899508125762140557268262147823226903721134185808150018743022186956712600367045162577197997521474233520175864047884623420498440320364248477943860530673427446684584554436377710910000044330269166777463179727281277067523795766141093929399970630245439926623514356576078997157507335934773223185177212253723139033839491321015105300343966684868114997816629341955324023510025175770444334084258602742108490839320261629229728369890475140955022711034762247953690974395357016554474769860066810465861561483768067088362972301652825311852090943969057501406130458618811497927944957017907905859668777265655242069177096920773713405392087298716315385782844432552892501978943074155898663504275180214807031943984812515727960557602110880323123101477395692335046117377426416837788084090405693260362419308964866976468904070203567840767079469910125415131774428174784083317893828508916701525766803904587187314119276861465689258645471382729039392016837020334469884677248843076828775711583653216076258472754926115268157550604527309616063241865660251344317281687341608000446267942474182350695136555230816623136483197638385583679441742040160418293840909666818139464862173195825324842445870875053632780196479371506897251279885125377880371298950114741027366541347825867464993336061497711881017184300951060135601151731304071187126755868795238229549458022351354858318364912336658768965741092288682179835471509839915954940361650513333696960427807287254753583445876087469402688548536401858997805338983516276842947245498716073816557053121634515411236251629752987354605774604810518960124210256963093692124574600730804228662324016268891838098098247455121161087192201614366464521740849994631727759327457250376224693946592765318387794864626725456066809839650161177494723483383746798079968211232429424947509870623836077102674798844761619752176763671446161098450322410175161623417863115887715006693718901354278795596490655374481937490483188286214690841732134375110309024810071555924670382488177784016768732727384033090085108462675296450721210816329394032601645245050777632220306239873830527702209831497396603798691137359134997756863322302808783921487371153867347941184102902876557949964950563922469695531767025249177716045479905677158123243085937426050424472887019701124847948771033190801431335574947566106244801453681707080493805778449891420819616013420213361431007791290253734273925941203174905181626401017734356500832976431111549678209215407697947774637102004428248460517855223592415417933747045084973222764079963756303215727896346292111541713354254600107092830014754789623765634656327697028194054196350981906782564356525092469588476897901198176330884675101024100365748826921259783689185289431690308672832724118449651738047836052320092889419514988320419785980839947253428839822662916127457622105424587428263437608163143498057452747201645987541521361474023975300275302975387580037147032743768763314881965729574851880229984809343532119880244465854813375783621722127040936760497865565549206946525405360575198567227967003194500435886042550482206602303817677302943098852663572861683261391342037225676152300054166141584053354621042057640785366356117476714507567814925546974693687637186648782935619404300925557589799209523025085126685695280102436650974000263232169349554177045309527674205625189892301897082593416942402663872029623442297521042926136682421764844308289316110412003871334925964269034250790772074153548971764232963976458239725941624975824266193864097286287219605148359319621894625468937522234543642612348277840072189980589696527841227373943781281182982908917824434729294688586378490845445743680613798075003568213930953023586954650881973095722569644356309949928629637366876634832251095485226420394502363918559930287457182946273249216696739318806757315830863759178659546421341433407209309044905572871937124529832417276252928572604675530388948213964581112740607179776427366838436680382752227731763881853945712168849159437183748869031480858070405041467644958406921339104596951057558899772845181378407735498790959753144019452635518956248384929830062746130052187013500616145691594859878428644970866451880749710758582879483426118990463731207863234073863346308954527721275271994926394444533935906570737816841955365629452451209015654556796534366291471293491131408584553649822530062208627230875840256986042402821518579552421987344516413153459608259881224259948826235572662292769326838792800685538129638107823117315766286004470389529924252118987154608655888148203176418438723144749575296752093886422300341180165072900637303801018619296086751438885955922677239610584009024008955771783813426301429287710640484530840268100933382228301259373467003793145095813124628897293655568452128297933313068834624329618196914862855337747033607178302329334740522752918084007760318016947070268151486808744556678428352179766955263648369746538665417779045765335033362973112434564983552730838366927599622490066001240234468968031335246108225181026701636572840115025183191214914991994347451272703316036434571927400001202264081733476642102352108727946088492190694254812055175477151724615252156994579489842771325086789965555507028206858275667930944791962129596703271256076967665893066368643077607723991874352783946377937864634559334480763024770314286092497440636277164089108818286194765535470182706083218908010020270953984537571660986977342129980831861125446314048866973391297517674331157446143264457798177894905510698494350014095180237912794987778536429437803381664849020530464034345392533928689426136407735132144632259748899184316684290793376861090020130571911419225461680025083963136268635342328822825602543837734636308928617486969521190244318273654603601345876936146017176855936070628367671214121769872795628747467035576962689202147922937590089392776246485752235667033729316837043335171039523490511434975990554346530616168265031425742308050789818574356584670348172718291562856752006319850695371614552395927722582855096660415767002431866760627752590574905610320824933574239772369678784587377540818717175376472088190110108536536865214104868023166103437965575270770007912226916000610164682596473083863376833881945764180588744887233241125338424711847203866977519512334054752121272619244178583634196461805674319973547751070639656144797484930509452073282851271634983173055478310062052488148139804866370881517529178396768444793318202655009452566985838461222467899509443802031670673685187504194268060994747208598506151055061216589124681667655763814218598779774452710102043134357444820680873621574520625113839545782899450615157907098646489496962715020589281489684934677479395429563080671644319195608021530756508890949205710195143565703373362281144823995659450645749380985354168888666945759850018577035121649837507057691878111173072466612537990274616480989905889736798648229919714835043245295844251304553362685258003620645525317710117482817860977385776759285585878079507595144142595019059993472905231666183704087607227472404572682209993966924674776874292164559893789757044163162827697120166316218456175611604527386309626531374929020060094947049633801392636659939269353090008868859669237171256671366234794150424528779107291960908154948963924101445295921816327261131634582909353084322707362558388537146551438152684689419508006954222633747265378675015120511128024855837588203353285980134717972266206412987803816498921709289398395639844204790070695910876847419987810634599725482469533090797078396124963506785205503715732839991999300090499865803742280799787413112803221746782372054402975881175287117623213771378347918239557213833821017482249141870934012815120262494594756724726812837264303125485413110772516054368431845635070711691230513949470066829164627669030041177769364420253805562470024725507325497894305960727710126707526004991580212814906918445727914766510687697176547876855870020007127153174363572931543387953882645574318451829669160818243566295306065806807398085996953787960339371632055509666216314920541139021269053306467693148385837249851703423667533525866569662506282680978639752002607201538803237695078073681624743432687398849706700067074762590423719200172168252422873562494789941049886840373530058391417308653386767522848409379099670840770685925226164485802877135917168212330535891887405908137074370075560155966442584521310621759756597444982902504651710701108775161463798645930774176176218563260199956803706982446992201139069416495252313625077410000403746320004726963394468857891595453934143855711520519791710385975143036016318802755659843042364003111614821024012630262773335836642058786329376853524969050380513796223691647678115760816979618597999885512777061541208246543141671769987377426883787555724117074416928725302262141487865079386879657852634221400541590074294755401661284982477679693080141882525103744159128491690095489828356314867515940966380875486312116276031877535671181949386697306671154045361324741127686353932400754882241125180118559908961103821856357309209435220463129631833433846948059971601313562371922403349053405868827859345153715279904300197662087553965938525742167417949213179820052022312567772008970125345867457830792113412190819596940532910802051803962604042441702285293598097613022241507373662672697026987709224427930056570319905623844949652323011835001023424732609433150974498218627293088349532848026375749169225196554474416175606717313446344287617094700580004912473299474696948261138454977228521486776831183576958748633409858024583550419681367150404159687243650553979420074090896500342425391779505790308578105684610474411594127465179041882344211498409876143027050818792072448714233268434073491558271359890662756895813097420520388638271675073194694316872854171524798150677878974816848571309104090550565232275608440279636177281791005405845467195966480859744954894224238696435172283492896223269586374027087461501769272145017130694472299344855042223897666192328593974907451679051672824241401796507133808125330611765516665296109312237568869202558427943534119080669327134617982792759373284727417724140088943212317730759542706314614728616759506319124362346650114329877827948078699704188470507200023002848073449464660565979891996906044889661462208995981157057224128365716403928563043957624051274219341095589489035658469784570402716185582655680130004273522501171082804373009824562357507631116326217696229403691963690925035970704548254314196198104622935357361246046990905157188553880879924009415167205758280137953846422815702088873677218648169103152263643338495754023987530862536953304749254597960365741922556536060253718906497599530378094535594624564175541268641956328270139285157302895520269709964780597292968794156263682475900738274196114528946720472311272314090799121832392794624202783879731931418457962626285399762015347623167626525967425453196204058755939101483174373486804950695410805072392997317403806512077634509393785131662029780718304461694957043028626590054414660188440982245540719616679153917200489884068971445029536716348888226432205373660229868679510119186333880466564317909115638798112589097291430703260227231375373217827372524640409994907773025951188908060617159256847905773005016222769392378187911727159700977865645606858399524184420355483124205927323054224152986247779443154477894937293735098144267431932219305654623491951905528189345954698754170243767659412961320581240202792321565846501954533400168686785556165695175761669985460271691743761580708846199046371451266939722715306013708029691755507039997894784449271723001739126921616254603986010665397126166471065332151591395986178177345568778698351758078474870052964742447492750052054539921747757669438236431399754168160490712335484366643694298104207937913242909044724839965037906975494246876905826607193601872754910850140361265562811327035617998078697348157848805252756155860796913580884079085889500641925235845106442107063369796866423914876449202701450566573944231706441996661195683901294248901336110551188306140802545853782683015705493554263350035452643118456719048891921685227504604291309678315817644711944856079322775960299870505485428077902371667041347777309074703986899803760710136650206349898972629945072414642433966684721069612530424570390387105133672422384229926010801179840214739674745655717898138233252260054157790190641028273680081503855623355122584076937813271053438448232636007775026046241209698237340796072988985379068551052453041603410075995278808755636044308079411207238547219070063440641017266594934397304856022208265151899012082297896757367352963578235527256754522589341758966580746870185765027029252033611249390460823707675535541981672088063155640409824294865329590085118127770776587720444115192412151979641205514368844453866261725201407816729059729129050377504244067721872070209447203591665658698636146832134116985662533686579335061766618931024310475630929230125247026309850983684268025411386742509174833470847367122559715654270258567735737379439397499090036609541495881522409501202985836075366307070287068042901131620892983002978509774038747635479232393128960198636423252703622281437742137732312437243047137108238045297561573823034342268708830921829900225621479133147404815756409266700641054923250361753688055648013310886545372222075620009225383642307822722169258761883989056359225832409618230054991580650560025514419208626569758637836498442584290202209932476730097299453565550404478812959475891218658838513466466837583938819713125092311752213981263586944173439310476715859637431347132816286768363163806115206958397605298278879588533357342283974869405580911312898970171285307033575179222641937255809494929357351579353019554895474932413803677893222050341081376208738459016510807331553047274036424702985554117929105650013601406392262142886613653195979657675104521733511327067193638399758671714445163782677843592547614320198324645815915403101546008132492618991373452341754673092803714821987397814609127481262789994450618216232911259092670796957556808132852881626093063293257460526562193128208293320722396868225211212454381254238953011106288971810627007364126504194217424113479968481107049720937739300710475474812410628997243372507662004659923141474503262198669163625983250654230716230085126919567102766867498720335036605795699293326409306036764098294603639707332383029041788874610934041870222704001827244575766109403813851667723476755871738141446549126457466895615939090937012811202372664403157039316169472494663228145844654864547198649910648194247314733923997476371123473015806849340177586749707078497673302100017860677847317747763941764603337361516424228176543207684987551887329835610728663358347284185385990258947789581732713973251172676342205518539993946219360352841109291680204643815082947342179015252105439648808633460602218441382230761353848519047023750256525966804287502888446216687463165478790762351590461201751120900949649718369648684241249421571116598508174194133196616720596514772007729166023930988689013928703016567623757416816054651407633880722525144482836840041553342337979754555905213154068214551934817144905982503191379374324792618416897004153285021201169186649524067621893598779306843730479002571960847484838135183001587305190538371395164243121771194372892545111358725871839868134231822072483138227327520359157822385330579609904897097507902553466476906428291697828541465739651920143131049943065828204757353357078540801976437007190312414222317569064613958058181509319148534000736724585903393404399508098567106274875541470036441295823345909668963636929733607299631227813467711855211997899653166667793926736861773681360059478124711655790413366253207850287539384535266544268401395019470255145591494708353649104957792098819325436709642323928468034918434006546344925615111166517168488021332875686186283805509442149167019557912469269575769713179658166463844476725599273137746532830677016480089891628719925182910346115140598271795687755251526837347533459035817595409468967946305327095144278994574705143012187788058264274252586093480100089475056904536525150124387545582626552956046709094721059613656190349448601567374123437260046833723843566230342570748628875701097918265323867520774694405727816961483765578747393176391318181766630683049603662011629822296772899141770944807778981947993872940473965644128473023432049980265432584886573294387665231280758618736471414264964412189887638865095548513589573609760055451838322289297670896660955821736956471148374213954305493959761776957041748772721649458394522111887239466267398485905174040354927465272059151932307619325736861163316803921499945484642883537747340682626546994305354813188406944477518777087656692311921278825518165378083611844022934151882073006772322537541099339823402236293733376245220036757590263135177538070227387269020524841743943136764664418354983776945248926932366199498933556769092574660487163591636409367096630314042171675583248298845208596301844850870811271882729998235955884784378302378640172120487750775017381391190663881575904945998864453045197932693994363838333123648257030797538140549849464138017827166235403494895567356851740695672140140287652276720836313901081796716934245181007754828710309687858427241195674696387754633876309608718238063817111603783738026048026802998690842291017057173266595386734493401884768062647578322926667370005847230720636522767810992692227537968570013825962497059337321430583531334983013802413908728944579388208564457988844023301497473674349688276047044489371645673152733053825494437346076858415705664917983683757324553800310332287983668068555088950493807829441254211710421060165130944617764177896732779727829007945342569040535011192114947413862022033054234834078101087275048169674144281153557390270346023778490575575850513969732371562608413407103001003861430335806822315290271129515289975323606283823573209922706734008621769729983556776362173337560599736980724051668692369557055967087360317725290987879044907140866124765147132419871480697447036399958336545143468141752008465467408145540358684476579937994714717464718503200414704798049479273837908477407618949331414834088641892687489460538720064204699003860935518052137107215329252454729152954237521558236402931092317437413158854488649117992761144586831230051443503829070145320533476726369345306899823102025465042952379148835496730257109618508523635235836344444127803272331046057668685554895350803317099424765558694425364826920518972137425914011253586826474974371561092017436642694116823111655953894599209570378118561538524699326000415980825070814137628796207844825720231597035398550536074161953835238848596498717031956355249927423250728550836686745584809573357211510877569416330011636419686290123850729356450108160844142777525719242216631879194709139199872265273525708953490301693313186596174891225476850296615065329390778923297854462359094309143275504701946893308675942076751161480110535717060175506531338206990430945283412723354961674815023372336366670025437813430390883557570682896653455835545418193161589336141884085188956993498144265658420505934363968909592500448430290051919466766837850579182310375461669417997877459988640226763326192322642595289323374346893751978141865675481359985740330993438063542821920735141078123011581486362701743252116994208666654651204220237144033568886178041500256386710119853911897540839446361227459659362319648897757121571505468170368279748828660136487659417014391661954537157551955807914988454067908315724618263507443100414248917546058218012168259757769314216621083127471606669449548172101165768755899700569596557204272919740213189912475558058001474211877778612472119169741004924152435060333177377557667798448023256541280849087579811961250104219737082724053448112678691359734953840770485145476314669196183755133220725333067653781128648161303460098328011564033888895164098785578279939230691249878101466250004278489408177239174731471449773286285088021594230454086172005736861278384401882678212696223633401290700148645462382906104889855529659118784929663107393788521716928949174773715591449117688779842934261508500465648838042772540902715223810268373402016191963937014500940167348604815469320890561997319153699250573805790675369369061237989496406960388441293093421590879406892218852780234934517469347624589775568506197131916071371566104146696189315040019544539450143101945155719684991539838208325000797964585698081572501883636600470002271538283989468302930486832476568580485981459996959932664153805881182469531619749832381746489678339461707068554582999732657673953755737271313130836392343803150091385404512943227686714341270652762021728177357423498939826622243652394517644160632511604154512686508913577327652730530694535365843278797955233288906598368114233547202510847269090716954218162535879905191168685372235995235224340932437706902653530415186689183718484194978416904138609201577819620486503327134531340885020067131966386932022267687355911974185359280255535082659943224148080131169958494541078920503590726451322044200561584709168458941481961511557996056417137330458010577414165105061602521124421759447508566659868610627251003663534219141587318107833720583747297861766872122429724340040960927982962290807756813823540050297272748302521025548521716927007943436480044768315378140743962658961267210727779184592166311606247764887648354709286821859549087333600047756487968277346710855675823023830112798222674889978018623380401873978844604280757467854374010033828656051859992103334464304377837622308569754812996166610070817114928992819333676287067685438090968795419016744608581678977656364514988281441926205186090644564861347274592861714347584635474633979164966015041207815102988206117773318268145005860859382473942590708524828006070845212823581021842853144598391179670146337836266377539960382507656494244050656254055267648502342385901181742528040966483407162595578523723695173009919047507245461200231088969495289247803656768404350798021815145420778843431115292803171597350478198285208431432517077823144974806787219526391453690136118362961749926057604084575686421716296406911266805560409428054044329009007819138215887449768134828320137114324039900142429398401694111746744481169016287588463848569635828113424331677481185406983904651004194685547060009120792093282487321284494216683840706012108078943107506960766074693899166916725931066232041073331562421005923827421116754894980555357779662903632786843855265394587993932386982876389282233421177754087914598130955241805224413526241096243163628365232416597427588147765115567297442801639678448114247152078835576740631770785784455821096139293245030926625124448122732512960063014561265663992179654248355138624413955163511880288449431046525141096879751753207008221164044310825651741532600962499066510658309632072047773865835052158158859009826576956781173059835107200802152932618512576164892582130314248838500109112947384556697379204115130421217423954526203038221294564652244696856635202946670814525079553181940633744872952231549206827165629396431176268062718972842151855876318380239810661408312932408099903855170777190278747012965296169967530283267007179021340192486598919755508965994461971285205292075714759240931754653046937469342075311331861516691913904177987403438831250921461495457619840395939329522521872454303038222943348606656254177561062482355509695549562994329009427111663119132323982786153319051881332406290458933940287232510389535037119359793650244864156661690722967266640336284861009757540414608210119253332278159180836992002251773024810903573303109312842194510001401382453895126247107319116574932952485789609410066325487622590564648398148466430099582072677546351261860739944460447759485714831896031876022652586164980103295266856984275504490435440197370283011000887988668422690022862153483704202204417146138013930433380042535163212558691033479754582777532076684391423338995565786082948348160463077479077787255671594406804079972037257246822466777305827424773990664567473210823274494627162424924302591073449632240507307457823508804317002917704274581265435727068127173767466584422808096184858739468926402270137156029623956626180433064167919915815625003567924471792477928374292549892998134385440213550953097048846510795228853175450556051077215493770111243180411651230656840071500036418725790620720129077444928966121720600082619936079359340910253431668460315102507899796531790949477630854105715518864612941367808756414573145290882201281200857947137611979206014419215473836568613785972314430397562458366407010662733302082858375714309047907217208077383923853843881316585939940067185465257178821476729035107015280070305424678667582782175409834878193693046500639441525232211284920639464429190005666677983204424947390110371412476725354887162975878832980064282749583797530020100581373874728635983534408701810729068877924962979343413854659258258999461939534451010533913861909171237755808900217787700325669392733371167508183244667739974463470120931749700998303967617184365199357031868003049900504986636245168438251024435191549058868566285999890611887535037448923588751072942113417302428047422190288672341021374036553410837816507506744067086150751407973170068886430673057000052160541949329199796548938214114248684882315630600229670956929157708270074098838056010107145530440863000611015341423998866143628196986480593886174403839203293645542004897066851618196762153063237017216500114143540675036614000708116490245286971495098631171831741466727076839289475441043758080887726776070694560420052726399068868725070217765329670410798263739103966152371819735133808545674971858241034624142657572012528695223486357416165130219415263198150704534350555170594609717413261697999863259501162847312383489383077513179762337436304198337997599222151687820791154295526860052870673341027241685817045556031392569704358299178134158902912537631093856662337021844161580239660280553860862005255823661798633254846016999489960881659511911973856267972682889507713158914326336734313252516529068060722640185633371475764132675221443135796754937838002527861751286487091349095000227872998101840134544768894967910397649085264324721481046507597394210358286588541268814532586558146939721846694152682805418385656927253260162152487706077288798190790721511991341540813981134811235515137698882451993316947383299980100645738950190285116337000558447318539921037782130745690165283921277035856025004939598073087673533785691310533059807505334287219508663360987494916317710628772606249577424993728068668586499084074979378094260290170007058315385045614505832552898153297313435214793366713653085605976253861290506285012601465329916151235824760613683895830752373104821808064000451757160095630205750465871014305003876795703324871188324568557045414985328201936647383259818575578543370684960388156075862050642191000681845965827511927044018961884283305091769855261834648629925517546112478631455706748081487644776002029859716587041721345933429850464782708406043412055160194516765926982874248343182639809579743820852805435438587711529690073480189271289059584058179715241360515780316953978074179121636111025267056401070159936103898266510575556557663178663252498178604882978787768690018563376162808390439673928178450527192656024632906153740879217704110904206750048986036932853546646286368716044414029471322218050842978223670724894958062695256239533265480742701715061029851428751440471159436681102288087736035672477111835129306317769534838977428110428598139915229479169393456587937597596805145681305128024930022239237817024149417020845617394124159142045394353376923408617199903548702771166231153822939167502058779385445560142244894705494829811985389699741602788546283219862502138523786645407262253861794108881922890166408364441013874046797625057360694747231154478761175237439440406104888801408330201788357698614999291476528793407712342263854635996657770058060993884947169269101480011237189823769539062682781797726370176911267672498724364919354294060694387024687005909854535309457253455724215915946869659930610186335904148329094751981532125227056227675109336273974484701638180242178580313058273186038811837245513160431337359558420887474334819383545632499661179170300369317581019097009068817700836465939660681634112531335148058280002634823903087729189944388758047722871105355270922320396349964344921415147019332984706463796587738444862295012216804989756547668374243089650710923925620280551967164282102681743828842660683310845850233164046470010707281302474257065006932784869845274343858832752461077449847403011783066015584217067750616941697930667676282110411232692907930115306416674888282105453279008093146941557002574969087017326691293411617668905025968661526671356878563464816935754991929064070465428193841962850709149520289587092230781322035908074731797752963057979959462317449108851192408524178749218165717278194802503962991872622587381736365861127701341478168704821568816917086888614267585067394173092370641722259401385478984465999036771487307853055558725926550182260096504391098349932413259916306552980539122185866778274759501449322426737680552916839740291692422654830829371380901255152863594642041476160236569935746949567744005629745298001312250330153122200787358914753103301727707742193557252618027487623539323519553487675692259160639825452909010811008264274349267285173863576770255817359151355654366706946975453583785710238294684037609061610059344829103084828775921481980288279786106892293308837146969805131056880595750404369533627999803633441014465403130527011112405144862721415461723003825673113542439111646247241580524613988677054458776543147542596483660623666190751356451291324429375014205422807482082574569751548735010775605349261425422014836800757968936418816604897298514778180485364902474236153590027550331530922097975370682143113941691854047737352634864487784051225864382550029952936983071169169021688222408500140390638569425429464400861854802016296085642224814210486874750131467581784208228803725841601397835993458253701652520818676526047518862455608084773300768787186611846400142419081451331447577581113974799697086904521533069037409245881277751395791692456087253251966850293182557713254317252479657389755996701141523054029113662199865674024388121060629543636022212245981737895759299726342338095666221216956095490812737309456747392282431451117188029423589536934873304872562787028905938868270043101620061250399206210157134991111459493067611377114010956197656872325729192137961887693124396374593526509997674714695797050217719932809398907421810814806794216830925572591270232812320094321111853107550406183636994688044535665159643614472954864730248460885726243802172985041522190419927773404588374438327697376492722415187078384822001804438827160910199472527620582197503653180625539001860316771679809605085786083283897252673381652506337975450484918074127564509185295675088717321018852739655050108247322050250025803000113259612719482239358674224647006307695054733620052297017376026550919625682062724797626353905182786901339140144551598557727502568225816186583614205430106271903025706656148155027636457508726757690361804767218056952816949474857179279145619069031395164321901018341521115226547638051515925922887896234240738738377758631915227541268553775277745850926045912057882226341257636121796778718052137947400027306985751290734393234027764069184545534943664854509854512941690191219499475751989493765062709224751347728362847224544079035154779850019670133165660107144578821464852945393888426080608013870874737786202583728212045670015140065546815587964305012524362822489369861817370509014574168769708535063869150494497052642485763114010520316712438564681548597896582038680872688844585510606671938676368506010886170314894776843825881154582184075265514128460204512592708700996226981813456181461143828506622088002459992104327440664266727526107202433754759317659446566621322467639774703789089047206759624549845153055154643639264981951234896073941401634846949644634167519669500245278222339352726778831930480940205579535220097256678703595481705688556328423920861122083133954778604242966174382494580259793722441851402101885224901947838225456653197858394012335974656612415075252155634599663502161016045336919608630938707502108651505462370195458564466477557772599320343749086360699983771447901803856136346023255774113345000328697396828853891796191016991137048223534897252950099252802846829784517846525655224683727731496278085799877448855082369237454338961202944916076099601621303834647173042731443931283838576533511486572468744944713436592617570515337219712482101938910805888458679576352567704123778824989366122944268583788919865578634843138045828493106850460336478837632938634882571751368315526761171417643034421021007709725799250506564220104071798331299639500038923618017975205874710923307836289551648153139773612972115853976457298927331492044009271088993234675788322884382014711369160713469598164807531838795637195521909089275148243769617232827762797184536883408646470425495652117463057090026789721895293099493703900327310028274459618029567569056882177054533747912770709721791314055845335104598628270622453795198928577122510493660444907325097324652249840010768499268372461502350302069784988116157047841941129341034868409955233685605520363398130398011707910382096248915693733046235395458749317497563519213431356176697869252284289847023521514625963494260478786777423019682644079120895032514351820365308695987686630009032484905553053814161480637944767509983525555175287373568172677585015989795314150584270270036758556473199424367630370641492212960040762575863789183008769277207496793439293356262685251291671224091454861052486269216022285198119501288348386918086786539650623131053592057981523596825164600089416141773493376581056880511728188226794260943223441046723701096144337077401884158402348902473441638341240804415922892002159795763149780235314161942940240223122998182828044780851275838307209757583888691885915317521198587932656964295467179837567981975116275477324787228903513636327061773422724128956212122669095392294439143103096524082328383138936528679212667033213223523202933289183484224193999298955882626009367803387161338272733582910824395859764614858230380225537826588722315062615149623539077829352369053127368581563891516119627143630778855978123717863813302020233151510968697165277751458387618919056079595995463502070969743979348475276246884707166146660652762995613813965691125343036687274131960917080471857313552496642331588506155512398444614668165453948531845435050358176932088485371512067576198304030076739249794767480619620700046766950135612774050735567515033155250512356061479088338261311567990756132612034381549254183221927993038267334117024485440575472862091541988517379491893843320476997435070636420299131072718540299846656410016399074631310542537189893399814054520949747427107133436840006302939858390133891817409362632926104963381556071041810590481744365640730240275045166457191227746311029689248164459780644566193156253393949166903467705693373079427544846013683092737655802241222825359751273317713058509218588970046940807865095993972188266699981252706884722268032532263264168525295811849369015572015307202920183520006625297455691155333755021971074228190068106087588859688332279579437898488085855308518215409242704838017600875483602920984146990622508573652292655083563633189424630185826297338436323117751100402841940938805243454517768269076469821173109297662974748112493029528667948385370732906541074991027233543248719270738375032870725072481531811541424615597136906404598001101358745572348085366891012237989009250807346468549492861418997973246229863451915352601706503121763729937408614947803981704798528816720353990357731512781750725735018926688834286147856390955029221401688335216309954830048529603335893045925969135924198076266082876533037008056185913285226792397247263175349469405765693347042046387951686187750968502090014546558239419642152996924907830829983886432038568109494709804125596100691650022623950057660236305870922173940843588598452136318184878435635689830145169310869881167695047040517061643416923548198235425914261994171887525989362557313206515029388666127676772881441125853782110890598625455246384145012182715070101841234157148140980946540306965243817519744598976663367849642027545572015218336349828468753184119631578105798913810592920809860719991393359079626044829137270587981478780160720041302363797056483139715639013241392749386693568582438386623144084328301262661061281016916136526513283025775889820686995664469503443842130386114408684331227860464601115288344281456664352258673106092627589110778021201336969004978548045666186516993940023629999214243771136507668696694539721753729584641570615109145177802128674414283176171411279755391512330752999261908658117388958103773024194559479166636033228938292568426197611256063580740334147251766980062893309179016074881577236875786366003209761134947483562153910815969502515331585553220893102491632516470611756035984705362035291711459808244935385331671495749716626801064720734162773444865293074524093397585839198750230681287304413195659550062948754917604825812014537033737722551694030708555466041297775627127677092445770315027245150453638684475392521374975196979114738397676339531857019278467955439869506209539211072226347696847302884680314218496962962144253236115463236499401655459974106829553152221583935343184265948571580845194604070317424107497957253626935420870106437800914193311888649685917411080311870246849012302111848706159014554955094194162079540833082446092603805281662326808996172601151998423289672117899204575532066580241582097959626971200333142589795286274742148189553337540976461179157853497211351574804200532958658875486616776047298542501302914756358402453677993814724887206531686670923075613543181218322028585653020198991571138082314983754928729809088135763036974791646348396067927945926752284444104309848191015589185239083784981042185577942646039067129588670124193230036866091612959400636524512711747098095838326252604475078156674274891403997229089065893604963846735122630446686438341680083517103696847831396140585189351230880265959512693039970445410094719132395295055741030866460936069859017623626173480155305558350619685811068574729517975254109564508940606570397052225052969610315811916703874102831974945986801274892621054735103072461041394479928232088465904251279633151582548706216235544541373693311556129118787995687315308554875576664204697320783752009197641594284543665687212276799283620101487419204260797372101592585935204528479369961635116382027559462824088417035016433107380951022316203179234741161686940419866178990838313473460247633953138866818929631147162961689374790962405567274253232644750108361694048890337384813488607157338612446887838713248531884443163371989765049087223080658884751156028733432216109258104525247442958320168124990009405242120356941772031841693235101079659121557947600500909295578428312009876334410668524508065433223651642102974440509415202216965053046659964792247147645061293312268821441256859956195567566883913411259719203437093311172011295540820973425007266326192334214013569842803243416686718066198902026764297351946319323203927323093192221986356104960602080065656548309329342930192239038077072250461660462075379129901721948643535669353569227007846035755770643854463892036390284191113217466099482586768554941070317088975286986699497359069832379803855578388691192874442837081237408030829004957252611802172582146192146020803515845643308466903820148672268102268037927133338319893666362494272027151878398740226971520760066466801573730647226064220340402968851841138751791377456512713807941985612990580297888118258690072947948362349051554072642179909075125457739747700537312530576795430073163276394662394437172233966115930922063185270970684305159180484604606243779468585566670540886444155419885413829228188794693150281603952803077397893709187218469532402959303319648360423431688455893531179217959750109068437165095187537048183414746167777570201153936582993043699221486272309386221567971260672963064258269985586855897721570597581979664211924290617300056139713544367050107270657656527312826243627544717665092545996037214620413506699675897796617432710794212605823490062368369392263601360135326188298645073589408289879871211486062251585228334152133442713530663051514050930620527037254227264476576884881476731339838514290788721581387565906149996417267150991931720377270665651492257520864088667138626924025551951567993005542964029280546918729452161976668800901111145609791866225553809670893010268201654581273221988361893545291316323468644006302491853254288454546603374727678064413121312466773365429554241540326267933778944419439354295360592299945752735674422778034457760626177428897997799717799485911926302324324638278786162373743709881346300901200053003026816905293257022769159556509232253953082989772516786338512449016556823170849468086809719015366955140159299744022839043360283254707974102119509557159013358909373760907422642444355010594961405033480887159109915579741215272451987442223310503573151057832091438154437374104598777835113729325416172419254522013265266510651368103532742964412216003603449571137051788973541125758718618332648099993669968189070944687181059656735238734193391323029567680217622849514983223711342385449771925145688028339873079974793740922794159422621079046907577482045523646681184418252982305637582808588867554506358841962225322688372258368664114922020548137084600916014098068728335455551821005699776641023789579102901852500062402997978263809972506715608291645101256555862153848667306586628573514773893363478278067959650403064785197599987383671187932189721992087702952828558852117009716573615296966713240117745744606913529058578867440109508645910490949521108538580389792713769033847180414509270363426322174934629784303182338784814389949225603713475467455004246913643875362448255819984626309654405093540090086440091393859898724202532074194737968089750486764520087236877800880363425305234951298682467970130952190092843554395749441489160472822373765818987807051344571504979671857646256055820774969173050863122388838254741892996486019794010523610006980662047328792970604608348546158348672223255164138148755784049497236657579926111675767574602566270334044724271501353221888059513337014337913180040992150006987446859073398130798165859241521426455405873565036941043685101340791873025744245271868543512728607073345730282573787132759837972139074144348016157523909758123632582084888306444071416264018506741120422483481986300841131822487373907903213018364068466130388887085819164037527777911672845443201236714709201770829102846378104223263938738995039711090066702690606098883443798615633490693590877149532443704340104783544862082062695724121474175388173508585938588390546573695131587893508286567899865982692600588784914434558021406550260748858510886952772670694036717309057635544945186739030763056331251840385380284098548629512507387173857300133029928716653988000508993179937792577304425081487300367967090212074858760926557993648636241935683367743010400042863846683248745516288993120822522307249084504771065146937653483739601684560208115312355337348850173941992196758629170384734554482243978122783543574259462844726789455029037007372758081791696456726442430066110804677535636632381834513820001377193123964079376556698659247529227558438787786735025154526677500580899742336230756828276597742700027483102068707991774437907578954845000045492998367105609886566638788213733076393407265867392295912909948598401495693709914132800158463975449379924025114141027387519151923916942701977163350201983378177736945185690240365799702052348910121465544710834173181235755073779933676375375901044554673354224366167571458764948301713268082613229961235084293470692106505586550955791752366247555905458607002757284881984759267012843817817498512085996112527513616552064628738853357192645108072112699769028119198744552153113675311381622081749771260484902753649678534396542371661115450222365709130059792896921166841781194983245432121356895307208447374298324388614012205434795908559940115091249364696689685825974792896027687775117609033143812676499335557605090642816502391302650060753464411536297479027583701781501575146331305315065373938975671149911234606867968304607679534868149394852047244585724965444246126064765593577513316328870623922009759302920678802460851320160337398538742378632116758542164924457797222045978498834459860756516804981081905011651706758669690025065933930783336526404842069517363093578878384069792366412508932532669828787058240094929276872793071945096335472493094904262515412932801422126626678772724006482918123471558825995729806947858808950920641057006707940772179134679378968561710432290229270776975747987213904181414419179298198487612738305823618219212331300199701663485769692513790348424681295545787221236177283550653103760914643769116834146020335068278699398001850840109325485482912386375928823999793973511779442723437829983080224348875058708890488081940121456273623291794550615054475152520365598004237347986786126682453450534456865231746715918902652635232711731823478679847717936725623361968769626530342255884406565906975798877851322625477116619051849119907543240939069018843581572781558306260771176051672746117516680505425883253107393530800244955325350855222293472521167255856350266201375817215557414162016504403267082088506629288254640523482357465565577282624583318509552826862105248612240871652500623530372057955482380387413727697764015638817125212417994913811236743039449293199415992204210652691894383592783586423264918804560645988832359744961417522097152694664844635313792955437961641766539154933992795400831202486099838726739923161676656736390183906072786348673296375228627454269585617675662056549136514701243313110787540787569199193763591805917231853370090120665077209023688053596564506939710671900579138691466560467005472898458443414656046502396405415732231063104386052307263078968221277794375961446559220357432890478430052777062870927917632403210229986650032493394289412839121350021167874398566806438992065154543899838397039264147091718143191889117068026805758360292098492618940937500743842353784608558827620406010748918701520904607110423765757556018635532093771533430543082744036060668234944159552780898171112797403051414019061125739934525057445562389236769089704726211714720129990993976317347813875328334959673551489005396720576556910215712346276065056970733437307383257612267646456147686158294220434133153408528054002860145001853390473048248882963585003038989905311282124797932299793468592076557395340723881828212466034110168567428333821203879948286530637629307912158651021692095182915960233156970217532655313822191369159014809072542126588175344850606955726115387167711325262760803510081581894825575472051359136614174063604942711659889761790928201407210059414544927343320759619962300420906963712741495979762456499497741045121259366238309320734268429473286255531556571697227961487232424242615066736981316320576981929733487553943149609200712358708615539760714365360792064075139937167505998652530110759474571032741299002179006054506249600239346114243787210585913595050950070656688093550137698341781685238744098841360938635069919848370109193363659770107080802272533647443893435975827783008600743622362152764326906480169445168423692485771251368995707470863899668479677780924946304494692751871931473641462155201230128870435330004540587203719442439837813625006086930988415572505143098355025275272515212911527248269882702137280668127574260590013150149740639151005763169263713169924209537053957252452216930613099803917852704459899547624313131382996977926407074648857369576888347300786320294099923794799274026354564028873560485147216224251511770036666718122683065069254773637965037998083468461277552968092451741670260172723449643071037638450093075040788929779121056693902741558037154565872417919366095338594960058434685167653019259364026616408283223769443489768756250238506173229315446790584386726106319527283915933448338422920225274542723380904965100651707306998781177721416922483361663438047418054147382417627471925405339708196394069740928284115041787002073958069910025447168855221946777511643653115713061696095425006403536413004522061640743657092039671658940838250640086259724645484652598027288781692611183849851360323737797019426986451892344586886366661594114702520518026375087087446598826341457623303302796094933952827746612606728253929007165677915032734278635299958274414344302790476766442501329860756192822048642710566687191481887159005718897090354199190761907160874411175732147541440504877601574458457922070892166838520248246944680685681274351193677935748714069695770070321940789469808223948954943754361555228657003333184724186421018574303937565765738874893403524539845212290003690484778998689404026478673512042784026698341095349512735122937434242236062461770400024616431176459724730966582887012324399917307850478302789869397376960895886297179637273851091622840986835464138053412129144966641271150693649673589176847174094375863601171990276365202965061836870058928999807581311833561001979633607873591154856681675402316444526255254714108393377570352535946414245800048948467223881143325189812631240270953885705211166304043925823586035601160710207743453281804634554338221667273624495921126753696762294817568032637217828428834568688355055100013083868185312152777394537398176381800278139658488462553400406401868261074079541676053170114635406565205275880586352770312922129788874574694632231139764022537137401779435494879766372749477358697398337281453911099952227823649867276090441368397801913412800819827385784343874624663153448050741038530798705861884018578241386702310149956634275259906565674209507384740386920880662667356563848161911988241908825185678041008744042456333225450923146716974458096610487430018841089997612398481499733610709927290685704654638713019979078586308157781573621592408702279144794594524458299990144201421228556013333958394458669422777241652659150709162692522242678950479565976260947464850618158031391547004596970447276354972056048877634867369881721656715617175496707228264013159031674484054246767316641106268622073791881298701973671602636999183118759945163477714797562022217756362082699357917836227624974184712238758000388281056588200545606461511913430480349570404973283984094701446581349962097602296691952624967555169181957325749547278738975768590438341464417923946317903641253395666496987897589702480629444231704626608445646364875443018275177607190341843513636376680428281155628009043040162782106194276055783510695987196997977462480023955395071601576521313004754834103201704769394871915468007881780526717264697799353678321237603812189515142237535997307454343195474308580280264609894249451171182311271384476459172011274591226939866001183862213344508319994010406096789606587147716624270810826674528720464066775946790639650734993517335068810242639923045138238225340766456386372540975671739574360516661972084049252734366822534450861552121186230587849462588124488699904090384100731822997938656022497926605568398739681232621917869259627697896808951412355370902265537370425900384030682459413665455256297180433059858638548093955750560487243275099581839728751664605415449840089990340360579497023511535151324826342656707780972295324532777941439453806192475044319039153536912153340053251712103568573891729318900964061697148795450671012581865754022503437199916860255427968742733451659517965557389479770610998168796945546564441695781685300497016446485106107589311621328943246031158299239390832454647528322618443084461064822709929309201845250923160417578611699605726109028155142515849629823257225194408454220137498181262774889537137639364591718874829872030324068946024054099571112784528093998208127345838488384228107085453136287548229307431137332524388142748778353967926773676382065258115863274556116772911490473758129743649707070690794498885973600723005222839068096262909489568919906903521440583816203848832990931685893175985821570190233784198632495938023717281877118271395766666982525080747844235728093065271182599821212790235573410235503842166241276695825115659383428851372352546810089410288010757706991249193015834969488668325570236582223324809288931476347814280207154213224918532758524934473780908010033300053095930413146391246428797513768837755225217022416306614356552632464334286890121479567291472405197337233404530265726587496292246087631492251031919263898278516771077567030743705432444708677614465869728515035651800579030807805693471196818710686833122175414860964484538494126507605291339469871499758601494765949918195877115878425213478704162294448842736259455592005576550116783395684902709875489367597927342356666288352597637613228999808944564105398819463049982565731376640608564251571680471821967186526592740082496194373587261411685015401281401255597033067756239252499258760804018160426474055435471506339207522193279083077629409557190468546304467600047872624851958082597015790008218367882945992024555939921102606434684627955928604692532894164558144136401499948068893678559906743325080525450304418604913331373698479922802701065836845271327811292796324861143777811894381878965816193614473209142496972413649363601782652408651072130590418112397821888073709329268507242352250484834616851664931509787755824238589757471867324587926527579757664072345615977428507574527566577494182255796087076305731753975764695452272601130103345813806988549054889895542840725401308240696230457131417208865882741393890595184471533047182071839095691969783753587847894528885990518114857080618155160431554713584660076850004173235625355432134483852470318070787317514431991251514824772197085983123219779582669601276950873353717149243775111967765421108494889773525615957362204283194447977321204594046499909422600082376248559813681115454279313031304322727709371966337356936821990999984654506722375861555532255784131224773408705176818993684930188836686342200375845583987073905945618226221153596038190771314396657743477343848136693383556826332546915338921111972258386374114949136802339750201014526594497417564176136297628620441285782759534044080373915813768484876635465748311874506297205858006695698309370149767272771412322706203757458035612527895044915073351315925283959458912587743743378993172341726434946677574453236606408259796806296784493252712632223492668910222125851126740636407818287505231590909703319080913107619684630510903463748635965609478437090964330866390612279155013303009506826104916004146264707251071414382371759671963243515486262431198769449355067053688556962969048276042758501674750625653154633030893167305581746482581704382673097196409252716954733968984176417382638394179106622351591405153616988717305071454637102733570044434659634512549213757661011440857488153073446148822176332995672097685501468238242247526575986958751018308725737791712239946381701459113811874201390132606920816763979035905587968176133882794273749741642517540899593036776345357531576195125083573800724360057431458810176394956518056241454882784126703850565467015647264707447006812564978981649906729450244722288950281751479291519113464820999054691022363150118628725334190075115264857270517996972657117817782585925193750723425073053436208585904091868356275371389596639500678969573439841836161513997333943584730414455807196918002749615607292971027414129687411772763675899901012856480693859748850597613755623726707165545679026382969628665244178804614491463959074486732839007175099311072475372024529684741707991811564548759649635602497095667220408055315829448208220173413724919348207483679787284647126180187015247346513826608176459377721822403277203570375337587571311167159614567509790614637424216877712238715890358681115643792782432106364664456167583357593809448766704816621798872653502825096197605533405671348950004601477562410676165987500681516687557272412587507434989517393813585592642323564344662170730555235442189524018718983351855845982978809587584815708466497705176115968181328055931297759422990401862622316193049489567210343914977966571908464456988281430370033773256063048355282964408771215510963315589098350460959085976621448186512782422494056733291436895668725936666354666259614527191910455901426778052975316746995183435417437417378183841051819381535409385220577272242890674118978291822717366036017422691238834372414300599001302639671645257396987587937126679451278485674208270937920519576251459341595696490641234304685064453471901360125161510683222062182912614463225342972436562294003221942581885936853850666511356250510465811777391893366980622373356830401284610920902799407352913641195759425405229620173157169197258669153828480269795148710470310966500044383123508589822423232922138054369954618006476781350711893477288119695289205158343651963990985673948260260922238562655934811805115669231528051697961762327963823235639453387987981155862672613958564084332270008868517216058398827709900990565665431261761880841436983269986746000218281957611235121560559123028097073371875757694054664373564876465706397990722983531532177461059021226299581460678744337926979871580400526356946753663845958241750558660047992051769252180528409377854946781201664996044388082613057547622846658095187590714571467254213868821445884343661505123601782020262808398672657551754495872682886758208955279716876200601534135424119502403463166185408842001007744854562129079667383925037916282203188805380871571634045949416087095791352103624713605780425212053003416460191538807046872967707955510135468694418174751356474056920473691390221700477735051441140621532608682761109171507049896876882380628716810125051777198059098465978093966784685379710580514245479942215244782765895776759364646947312046013244401532656743718616417026327705175100247455521367668755288831381901722010304921948928750565294918497048138033882493249812212342937447568500226664874287204729352593995754520413428992585675268007411906189369834735122082793926179463310142178269610181299223462859288525664629422614864177450205596623372997243264939827620702429415507279842535736491649998070259885787186279236493023903686005892639851232094196320386108103535328560896021004716154004916504898187613477024464017949028196465546875524191072358756899376420008591999921162302840351993988577598099998585913085279555627172089607311998946394706207642261416096640769300188404348424622974800362513911030468745235364954628656454507062694408968938935779960899665974036095898097823055674404072132342240207167528345368344105116161920140339137084924568949936286230595316178636290502958241276620609415757048993511374914359369210078437296680012770981862216362554960263483139937015910930886233423308789319695995605951692486609809306629488500901192490749897438653357737013526593076058276264052407222154387026786794962798364927421963834186477486845308321011086713137845528527707224370974157215939519445019839176807460956714211118224385058211966859395369418456398729450698993722083151917528958512904435176836633559515006345060264705776212329651391827245835026866621560851721663395329727574831951997007681635130169102868247795089467593992903163431192759347152065199856773832323952693165630443239944105665796562899405233390201750096871509900621387745132066173739663340212526484850465189543741863315431509671479004741949201949732780814814711896880555892907386213421061170786787292467946999881015018532086945990971964654884658126306374904024499570320372144490064874371549193565045974272070781022276265411580489917941347792987493487627668712809071204575700053133001495859736617081188464631288804392880210761508468718885057217380840773643630751093409422105690976778921028093234461182949370072902958330854039496119007115729981316956920575334370829276706462939047186986064738947385300346784464498557635729562850418814803504827235279889660293183770379160555862860345434080073866387670669825916262899322202348678569652189728465990284411291784545583994421826121863645914919736425104635838485910411956210817433182610080383704065901344625843825342967882554389028848512325394194540323313617494252075637536015062682338049707914451741076163775618395979293852790961638109555955469092985887044472456599174353972341910635188897025886384247053133117113385596520798783528197399159403695537981830971821844284135313968095186204983155739257799655144052406135108349668217619623408244615565604619741553668011536072936868841170521245382393348333858622925345691890184599558838669238960349665821072102776472475203774890254000371213409344123911067060350960146320548567458301176729651662589474226683849296824207801253954866126109431768593304766919225586931387703861343545943571075731067423708247057924100361025550116332281050792308441103500914858880102704033947507863372598974186139295486726077373193735740981539444032775266179310583211946626945986983891575924980645179506475007105860395613715019145183482179402141196510674010706729584026178552064568089983671385927243145997352125274699297050974943882231991459814953440827340142718711113767475537572477490693257578405431607827777313757640023612863576363721265735221077893342854368260353271783183317900684933886469960756091746227838622992204862904722869779795242074381830579287506004453417521829592867068029472601852439181154470471056745958976034317562876523833434421942755988186105885823706405580034341067883332965371921761644950986293855873077093552264188514764216063964766639737537832104806512618092333963466296999835467857230701310255811925972493304700750388173466157199478655985123304567208801954215609170912001481522956991726475878939140812941433259384790922859403388630445060504463800182044180612262518922742939218881908882897973820678047548206625148974608763894644416425554992321410329695667748167919220755863594491077225301758178194406225682797651727347398954471776843544229826392025315743020309619409236778569789150335307984244871979000196084254420227709879302829814143577487399899173471767128662617397613264558097472835602048826817807507008433158595457667564631369856182626704791807665326747764767199168111685459177092622710408843396967616391797036888434275150729643308223579225642330967748372060498140069965667329629421255913190975968871227387314792519149691747467454617876160659564218090443655993331554875555769911241095805814852295903328333717250650188301799989146282461715891339135156053292105961186571459069400265654097782258183033673266530058714856697580666834402614951221693111369075978098477926702753064208247693640640431619544086394120167247786645210439856797809300059304852242331896298904715335511792776524105887423682709973948452843977126691740996165704446841438672717082962150729103640620517674046753984452258080904918983370558915459642263198753313631348449189613022242842348241507387909380003282232408415367178120357660337558113046746944318818836358465526371633553750742399673379746259982587840809651117885946779386101378061226050996482715662162861847044080406421124184510978284298580269405161447740235095214281328980569962793133952158500454000629928958595411401823952465345831842176584542308636852964113362795715367473798035910718641117807644056001248027976737094684336669517190920094820746009087213849511152623386940786721541364507299905453872680049052965066340203211270284439827392169524608734593167837407181288690320057129866640527573708455505419263779474386421177488798857895852455616152817456176265040595809836201898937406091009978675593899469533752592197004464900457831312308466276554645836108148758900532273737648956890193398772510171913473669565112816075493586557283662623118321456493319380889456323396178903816403844954407319276159702345635770579762175889773630353622682797853046688841955335686429834474099190744543636113151160887386509043469283036790299208109528967752028545379749333490874922501434804262547936772292756856391526699465262470964344138154676953200270209658910585565491653698223672255754020549495608920088675035057277002149616754109479597433287017420548034244641606623458323673785264940429967052530497292446755005030617133949983448409637081184837285449486316339503957888014796577792776808658101825373356080085724579137367569271026926424699319188553238428224563799697415328244813238726572175739883129929438661636202398997233088957071753472176369226507366557243640922822748125449332787461143631706994321425259262450455885694023587013930147564263521342952121835318318502626748490581617439757184993996414172588054474513192694697781595276499637708264105133475450961939552279726636273477770209515101249458495932853507031130032581504387374620901937834972637947989230604980150402187359212238676261574833053844658573363217821883823335833747289463385371609411919898168780095102678673053980196813451788359413603062755262573916989438814859172454574035669707107311601990974702813800182189517391277900154058550090042609241241801306649324917306029325694400744177462064260191619249584687514084881076203364408932766886348693224226437236452259643613252200941572572406086017708794097465165403620968607837899996496332712458047552608586756424720064311138709952286575947399335550343568158434701562173675341881583213470056929936948421586413732394565046990793214998772746728976786597411542728448521637343588740518497454571866845682985724149067816474700938492567780691376415917198013597016333892407462271555356773150022324158699899537199680396861699864899537412794102792403017318652839931693815349386838853072743481150134867487370288025468138809132474005382549961015273134730871978488692513547506401313276405266949199620118397157758279115261712460218951307430233383033247640692079857936644573687194448833820093936127293650598343223351563799199404662752874535188074191065098731936730599510158136307565084136157474819301738620519087191900092530185912769760580661769137652060062706463885038843489258348331965901749049318397839991709496655983257631159143440834726819415327856943529133567312020728929621496210478202028330513323542332191461913286249472992620616111284394741500158748485177164586348526431339430994954713356422980852397232567803754614465855241224524994721042683956724725806526481489014239210465422101719861721747280486381643006900111609653649902558389264000423940077952505964498204428568901042093165373902160907348865312596510608904620351011877917718165083870487084756376667093467580797856425969068459517915974783864209391888949242019383906577374882932896767237840203115436197313344792354027050371008615259054854092422027025243394373535317191093714370900548789896778019369053042937594060984462123747552743614884089211428210615359159580879100821482028961037023057611910609058286801170609186405071305609601139854353436889977898439512071464374662659597983578431690227496678865935867730969194619653501894475113664156142670159565145574245930948570906190188563073763684041264928241354587137774198379686177347263140443774021889879356139838806828522591328464358849454114570719402825484787966723399086149343205848147841182660062148162982766751075784257376593304979948057985624036644194766490109067236153289155017490203873517182303850111635475389703989164969768120061679564610744254502265373448424252221714178526380440260114294117270977361038765815414131752864895242323019031036459049603551067134320503633079583730424377052492369162989613773205585480203878052246690026409371794012023299024099136095107102762461894194592678469843615910821133759715774731907786457714329369046022082457011703144382294613328969781560023929722314320824236213561521883516839841842214267352113868537960539878176992690696052521518917095669879366523747296718780869522248540669291391122333920653695412319364148674666583158919584913320812585564697920781940217591809209691616544266073283151280918097044215483605157346037640035947277249044853774130153496462298674378989104603435844780024131469866525300569550434628695478423554983913036548145259522336563194513730524214865252262886353047702938000230140682580982551031118251673071986203530655609259250068518242221312603046532144408690325140584587355642225761940097950279604216161770947147657337337601446820008700165241269505175114066901526266597162231575608039232078517468409918680840030008833873890462131630821208934333173929784157778987342405176678363449470703929340410661410075277491957913922643233325401571575949137161340053208474332115580513824349223181805257631603322582133568509100452625801335527857099919449920026093820598249723195722736679050509621118789840464975020872576884862555706858586468657449685578649974987287532235354459831778733624112830304257033148661958513263140474861519180674829956418188274187696384447715084080663744930136914825050854254713521765328064809370544754278378076507189716532854665522907742465713057187415216059156958446109556368207439024234196088673358118106850771741135590263460798997588829784432186692465695143608253488606203958646589822511309780137603088334182303295547927442740534216817273688651057635001911816127712429632192832206758991752814855850649895390325677488104968096770640584664191136354043224271682192645845486175140148687759427034731309811758226216103198807215555957185144134804709975953097986103952552032641242020953923420838355454464453879514342713547386857024342367604858853667250122401899421143820145210945207651507251901846456652982616282125500930107838833406116720478878962544923784236808623674808962050365089318415014301965587181972808413312056245887742607705668087571874433981893386370128422029710786950908188307689603531887513192431949906387717352903840400768818949281414436816811194859411930913855354736202149981678545737613388339986796614206364608532735754824733088622794909683782480117580386366960331646053580921329851136103534396663841037564196676568784359540372989709763901115648085762437828872747004320050755298820569532722099399805040474668932602132572042286983034798615560118157137637752591853538120873906073094009393345059372406296920303443307782532925380386217205192808932634203276828938851586599670720693094660172629264053230024076094718653044807094240108082198962180991113235181867711866246552648614142321656530242178470502054075569648602040493361247348893770085977919573567594907718754571792326991025032097725102047223410388894988740182274824621016842880462185946965930973049014229018516059104253001412709297650374527551160018321159908151288782288097588671173716180358384216771563454803790064657626017182706509807575900274631684315254553130289477724579978478403463850862524940443008565103120183932023258733703653372797096223820180810426849154970636072570400121644081138714513421293082289391478664556992846078680930814006209380897249531855473706422648083692348619334177786542495514742858391552806192094732242266469870290927707573885096893278234093174205020527669839716663858178640855673054148523954787268074530323648112228121164988853268394524792524255754260564715704322776401474456206431929750432119305398146622218561854534809317883422196131791567656336964208475145381631807863686321379723419302797029203002189496266481874318363863898794871272255830164989313130575307301903083912618340038105315660188848666906333304862089913977763001389116327946465198094306818687691044707593292917772599841184471188104488452339145423287335857814910182849266846093344349648224694745795241268538003873353960194881957867971343826331286144667165218081347212864482186175811419692010526993449359903746241955716595689384404465637871670826342579098535212944149772838629440828322146256149171315974157434557848028033350064945797823607195486705833015643549790475775915585488737017385176646465113883823689865097194369734511420128272317175625325878725549354021659208415961018495235930355822944397735959834904208998880222029255703702373041634729565234787351009433859440779650008797591855752100671586042823886790944163308588807301753719181515401037228354160189617334144926796555497505383492833855692540497777611331075848617141121331342638923654290139697393117116398555850538129111195458916013268895945927169218279880314204348383498478187723174556001566697493356591060839812946015771571864005340236222727793347873193522851844971854747515459991316473531875805598355326376949585818675494540374024093776909301746331775973884311247645045497440172294613023466027232064741319058771158475105451391640573359333830173775843793247812003503120799005913151476873824584413589783319699180569579277101018626516944368972034134746345334451165085349844264929469786083110349479208084239487402282704030687321513512051631070278983551190655342434111814407367228321684240965077758845570682300978471579447286652323120582770073354873253740428284701370269544693174440361931054626338382603330537796095800136344213823770169233101944787423897524163316283075581448335042133076153724399559460631286148172234435611012109120650083728038555558001590076059443030646475167150878141284766303588748229622141648458949630807591716782471902976378516638411002396652636046727053562051396598570457117115463144342441860522314830639456790411527403530691448192423666732730870719463080486706310568145277904994472922798418824605985271212428579845662237975270402164640868215228608665391306053227251241606281356765199630342783268424054634180933810386079875579467718823904359901600757728122263849782254416746160544547853535720491848401978086326380333696481683563816861768531713323138883579401796559288323929292928470149709395644542705371467757578630334320232312554774600014500613807969520560072685600982904480748328269486798512838612053355162686344214140867396186072113241220267129885811859268057519499261374542130983100171299815654466774264051517345702643534865030389079549341513353755196291173526233407261425906490493043396018296888067732196832999645150328561243551109539191726385098145416477302078502455374455736229055262728936568487234624294811089205958112848835536998411853504381377288798130546515473443273199761627635821987745941385116497687349350276450083896413442189300664114117563181990612290637305982485435583784757565256867133225804324233744336519143205008361432357061722112694665026922977572769789525975026740262113884841233866069116582367916911673810703911330439543152429578135372587891653396213116235724868043887781685176003282780262863058013453756007517951516365081081645532357168622763169291105055254757036497788479623968922538792084615241808413116195114585015041079982051018413019210513771719563002765851015464549511630909762859328393452929332674117821588153704534426664797140501923599886834150603829797835628071621883063068335554063559184216425742689160119113368729975803222171563786254232325064997808053421315854350038077872560405007159065070611336547920054292650493922230419496086159160380397302924099086867061811675597768924936524641077011667003222814261825303659480950527903093762718355918262817388018984311723139420423320243123658601402820827559129294602442910553584607522195859566330462428931214337167972621790254028495509120369514365761341294117399373837791605401448699559841070127541061426030804313952995936713028746869800795961127374410935015009197687446036240064903414752920353638094634861675469805291907293111252955044353157622354621695940795745263361353479934059557957529867670927957535230865305553392416525355493815196125168482480736173811428953895509409067060848726964472127191507353923225757588486171848429215837545570725379649682275846430268837009618647968928767888420328214388305547893639141911680344017384326598623514462192387965534382285643939649162367406533321183211589650077678856535027993821206558431049843243844444667276055635843927624206619806003778086631150733312603718768014516584995061192827601999080346185869405597666447097480385934121263478562004341937810147226289077557462468969910096832656147712535761243345820546582486302887773727098982733577837590105114148327651500405083420466367973681229582259785112986326335246407121642624328883531624599490431203062824236198600479067801708112306468533978440786880397805685388566842407203860696389367142602794474720655427656850028975273313174984826318370233711740136236186902803448352185946154660069746595728687836957701318230661885574007155367398387829436205609105645287375873440730357575365563511965759934891954428116266464718947527200231529414035074358195479582382216551199877491173169383054048994587578463705935790375090067340146823677329916099752875853558470228648729869829560951789357310091921197726201154591974068902884872599060881839548616272152684373486048163616639419858298987705759482793915086024989076660883101110302299358951148254712346968931952352095394500817913930492469027037306923889204025792926831128973091836180284895666996501644988674329567751973924089955035124728815595147028992908638224504210839003872141537165967100434875856754344240405554379771538047649803794684431078857382860884693169569067321569702371239626452045195677207551962964342677941883723647389632341402836023871027184773967342679879921178854729042750261408050486013559585053966248693732631583448277022563170482877082947717129756154528841736439042027183306785295124761941142099134043276231323670071527483038606286940289743142659225123571460423241337308028451855723931051715194896482866617592466168070033017033229351709616092591099839654823790521835813056564141858584613028292252749597319121396229934210249873725623062089040709872612664069044520596664650291044899429388564366464573423358167715238866414406771106804043922555496170496896307743790077091968114168733233763861248615478425053344934682424773132932295761864089710702025044168924805638843745895492085406379135641500228119233429548659655942477076369644160958106203935768526805753249352193245629890736211445463027159251673546631608484885844019608173354512282025903633782379144472788757375107721047927111537602457758289304952885544367706480347168761746277023597782754754983648001506906192535099628103899431374932350694763108557048252468181114603909000277596250970503785948790378071334096958039973655509329526957830866252583062831442291428155276328988111030730306976374410062891339934009156845004476237385662167466976849823194830652701574031932509439068002483774552532486691376615476088099872011040553665687355986928870597664738950760509475678314743341083726912386018661647819183512977508644181796480137584140602695407003681982256281283499788054139780858265902549721132416523459909255213675221478055164694575225659490683987773332676733247035953288617344439048212477991071624876113026110943870095595465046619287611093319880872023308500675152017991957385350580419128493083402462363441765473112516026885238851905339966288688207644066720437339851494091369770020946977049552583510530336744093717828815049489496442976047139327432811784767433489292695051183381648111916146041918280902374594684177245916828299462412215156587839969607988206880418058770493566606323800803481825499726284200595330083854576710731122768007854202034678439491481704319317089147338861537292699098767787241384579639927016433673867161662890233196673044368683140788485416712458230969083251533849428703144482406135860918501528938867284188145556447230445267859524771062817827788697308843498043037259023025687838044012313304249750089881318957999166614196706557104324950842447688773573930515116768684444345646639328835290266329693023691328239885024886246343209213384916207552838413459405542336607902166301081436757725760635887814937673748701878134884677123613683047127124638847284515855414975596420985854455951066639195574009552835109963754532815146561027463912908702196174154649425595618683769344369988226739930200282768954724675805839933110958004141296963014632348829294258930040876784823207067727860509549355706548025112935701736657710226639600029763759796814888313672356781429285345392455714801254441388082178269120911261251998953416601212798077611380070542141158572736879367900576845691762056937346916062904005451938776685438399349433502795312428939628002227181528602821182180326811175153026050328985968055135610307500390855010290646707559301908466261084250070683556315927762448691190127037538576324275027888121706628325452107464549857899695117347185622218605217045498495768474473987376605364221494291579469988328182633070091948210185837376411371054197137426362142231863302722810381224797073880289218406443416129782311275739346973756505913838142560900562179731581509488535728441424545463444411854166329305054210615897139914029100183283079371454000592521401294947579928479304110309471699188248440648107514501138065460460222745042425294869091140471364500135686638137282935896251606072258610826010475660538465583945277296444993666203668703161606349794762127412045842195121298883354558476098740347606971434474793263919912854706744894127403573485768283550784166893407430431127172291960857149901991470493220693322242791438183170410300386418828267943495495060304478680217961393633905231869744299864434703963110431692931325522129701915308855017935523816509246020570936670411965268627620209065235644520582443478547095115612006311455029186493538438288603939053497003566579874942492041171843213789172462552999603423018997088987328705285698290489646089059604831196953338857877735601239223477402525261344562149913298078264514521541148140833187297468385750258774256469280623617852778368832456150500506497766162669360119809143394192899978660158560862514476234184745366447044721603967636406399103560678987661872261736791873628360156230258690967932656734268835664050936857421115803959278418925113922206248827538844838890075226156732452404440095924397257158400006983389383258492691973379032654954276070784149766601979572961535227278312385721878956478077837101486788588238800586486541224838301190350625043482585003556720825732954070299130279639534038545254823807567859652239708425365550232543349100888207148191731440949084123361509627421525622192835490384035594027247404789754025246988196245405761303883468089420365434544742859626045440612717863380769096693318764003996257375427971440269484265676474027781133355070961068829043915246290615306940814425481473493835184046350306531371600054000015726128572947553848048332608593235072295234623173157623190859137142283581844846732759867589197513432067576398063566753176332089085415242306903960942014066156509948667571049139263977462551664582857936641711480078048256784418031794548317946768769338529244025071983809800506979659098994357687937251976569726914901454680710743935980921282810983866031023855828427564490362755425828811028238917204658771771267244627171553200875210595294850449848988697328654106668078495004019098963805808687048050923105736899064274061511077344808702917732851782953299727405198071707059220046060053223332828688881634526243770627676534731675562149439518115361633790408482834596065464270316389976064951804367834370480462892330476585816610930690152598568758358361577193454206845709206546275085196388154008878749527747945313555942436952387386737677994078249102362990485210703783457123643465621589216130877200173690260432167609393426310357589237081097450729251716594720349286615956942745613136787536168143086409435790265044118403904824489574738820112634073805922331146632866834610688070065140169536353800630375130339442770192546266791723852695687817755717611599867467280440159154129366763942762182962151283453777082391003476405928908577365166112334108998749729996714273529772572206506890728943660298189334692215841338346073671170846616910879496457962503045087773807912507062228972263295376037327662995857080545661990739135618733784692648482424129553781769204740959767443383383704104329894525925174970559510822426930013956224169621166689083787571178229424846097815931456834913363863855366407896745215139036790564934434613206507205905099386395234922184668060911990341294367781334823001983302504773629883416205225028183114756231875839151707303616298158475632341131791535488795533397933653603008489278207356700187111265390666857659697638493728471731263473331279813407515334831972789713060316334757601313649846399167338625073899897117401345652265815085472729750873038310294960206343515229275263586261047145584336702339946479229626320816732672306764242425191468049735818902921338049419273846868482380911834570090178691449976762229669698004441091139597114794268574877610627961473505925943971517214581351409588502412620642724029709835546792607202988257816827446404560131749697140066202006597586869695206341314355173752804560767548564058195212399565100557461479233114792894312705988240967965105297470479746798541229535352473545331952242319927513099624988590015802409497034566890902025210800991933690492363406603116769639106622955224270044729303831818048464887781458202839527327998114161299089147279375098497269411770788353780555566501310004398710867478460624357887101583580456977724214687087479516097887132678327830870895133495076563460876174487165695047382089734225382329860533557459358421151718889499498467942770041468348323644117903182562709792148693038959865352941963537798223626062327206493233072117793250879384049259778497662955492826280998994650832020329114086812760809100904066013175893304866073937136893228256130797730786198861658937456558975416485834820452902728421660871414866571948680621397487659234219660849972534699466700310851370401213493902188727335949518512517862973034448087827005346186592860751899169089492807307033892463606836812880478836920349208402721548268830440487632948801127802019991858279554489540165121968483189611774310323406829149743921528888638461829823893884067861809702684935082089551763440917868864797864155417517967356356727554521121851515135556424886917959162605551288584374589551878942008750541021769734431879387271572180101173737644614477018489864704160484009123362973538976908227831270834738855551587164201498169354754400731872078636537770160107518470037390687629010558376678253174897087186416572286180361565492836957855110686867271321675865527744500349339684604240343858647347549112388083405681811565697275515412598879663476687590745245052973031894410148218270966467384362049598561541711002478061913257300538140702285300712200909767979347129499956152485864430204405325520745522522671796415633119653276241408528510134451044416714579821766728810070215404723022919937727628332961357777575272258678282090070292176353968328311593162551858732772284910334125780206408427636128921561857747815877719179116225717759866662991268567797001139352922303987440249208012202099158984836930719988495062379617233850943026462776529334401752621938422766671832619949276926925721966790111011533398411734728111650577545615697407621011849086844506511093576853683599477777879791525672038688173619666943595668275379675916902978220974052415960629279318129094988397719433478006343329575263165829742454565150987681749458389168545432593188191193369059767406571667179807152851800882289448261855598960715625025186071220743204728685218383296324801951021331720724318531910232196431486391833362328964562562713880364666356400535640073361595573837791276310705761318072880014330166649575403461182650523692422422888169213299764517164238291903236333262619863956297039209361372844996215840289947699476727334814359597819244147626704416250138801237586176988628274625165407271943270877002350816108612430745511170344619302586895961678658992086057687531458891758083892492860644944111432413082363009699019411825842560794704796129112508089458503792314850350899496729155289539958702512841590747837223263873793393989680354020585365310812505865964517959532515663620517048708184144885302923719580784747908460422918433917106554323349819123929154669691677950299842481672183080560718317373174711100713629383545621041789472383711974567782781846357627324447290949984264304317971556178077443591906817542913690198484834191844083007908514499237785749299600296074054307369922215832748239409650384002769746770444849995703015465887069725588585472289481708962101207461082592484256661928262706237707961999673027784320240963409650058941982646826454983567081050804250677581855943537611852465341126025981559655738967331496802728881658123997182022144252740865040055788137411000712594847896178534398238028382744966232482338643066416611835018257293152047599219092763539782705442265473860803091107225337023476905536565335987241062983502959352304539927596833162634892612951083593441991768823281777568496060257578096560216501912621708392095764277284947828155923209604643986961991251699272737574416470047059418475063328439395685584376648411224577621920448561424189492564093536535422414095615231747003728077735701367416921538352992941247254092827144207861538791721039504968765732948722348711169142660416875489822714155733757512668635783864021821401287371259602250179355521792738758802173644421402119324000885549159142358298345152581768465517268915688414891071242522097406522761916975491998102984315521236425336806277671122816191715202498097088560343560001217146909737571118686035298794757483937259751610187918216532591709486531960551339608543425035891263733617279074638417798661572164083816583232823189026566134525131270109547837279276740967920924911255215047049597683383575215265349904267147490538273047915021836981238222786206969443756253785115324751785801392935688360827966446536750929909337753239448349145747550190537791447469950073103597555222836523089216440526291440974545182252790812261837839063096615290263446637192514702958144800341351077493143289276147669538571509925052735304436615884456386680322210757123575310217159996655074134696018653959428647441325896300716838839632845475240791160716145209095971986055155844904180197477913031247205381761196521092627292609292256212950437593963159816940711926557546669353087204691501354576389604696941933074074907011969631920000554220480620053953298535402852018218715445519957181921673631653747947134757099877811424885527828045130335703749995206980876555946986648496559856472767234548147229671610150487911943231041165012274944484721739828329280476626728215051802321779265160299390728983990914074057810477057207575964356312983829456366826470167841352546883013033831501241878849726791898942691402946303429873041174534698573902212879332717630640392589890683687596572239772622830688264502683950046753404669041493095174352919979814820774410027748706443631252254350660466682308166451939747516561358572430556950072614493710796184953014106550267238403390750051544430141871997408137008191785290969793167194917648596835317783684401067802232755499546581392943352849809889410114224588868112131678684066602132329872331919980140835266675405697413712007576668928259287806822469518936181824173267158342065813249680704904317139490884564520447895543084336015313582702308278861782805747278017642872542654970828754677689281924710065350159585030218275401581983183143147352702534851005461095056565738344390688297496957246899160106717774607257030172278658881247508318441016511327398703244529782090691519872542647922791876881846303401517280023759099488816659583326106001387946179139409052432492779366064469675753112426133954398696647369684476684960732936443194504636963760789558119893946945648768310874904850143135893446742360847630808864577657958502346181236660609823775726106650178803146373719118913363425945036494785191410385026909798050622092856993087060701012945128438183489722364940546210959047358804879777699746343220428424534080481210978183921976096018938359710674060512174571917928315938768082954310632528606537120958818617686966431069306974575655739987540035625518763508317962578359520250407289942210338939259131334764322938171638458525424937690618992929985426725568521479395693267956302666661977587505728275082412156897741961214946824485371389875631601214891293104724085507738099870657248873756192911677287781859909170672793322941651510019761199705235281801191113489740376323728546603571068099123151507616725759072405463470840665840938012172590416639474927309767944051195936724191114734334592265878961101294450321816103581251331207520751873443862676923904282596347839467586873667880282571059461451127757795248424636162352877928068178519406864615676807351259014506022693419402762187683999671153199748680745032483918829315502494108622191748344038918500818836143206555127902094025080262934636109473391878406785968551572709524863658893197256410896506956066519141936288875117442163876157354119961166346512725685079382346193042095692657224883000116924634793980623553918376712625407200276082604709491186155451786802859827846208906604149163349500642859638250753995185869148068511233825270840592810278004442906186588003568252927671353595537021887210624180015924910766113811653793800330255588144549437983050978179405600394803774239258817680769609915796048029834988424861953957923328212562682262030656304544152377736024170679462166281233644757340962554626583228202062107653461723641775634115817944782446870310991211985060379589567632611670816700892506352339723657713924824761272792947367248542051684466079650755016504834254070326649740617569250888450034176748988001494800754048837051688267440191526391627727879194292199202791085740403395668046131096021329289871020971831125351762807766762002486415261834919509155510904302600165493853564563841827129777244489646500778992185877141630802125721309487797376979699648980539296439397579606084224266055689466920858650573792154306459977734035462112817256728532943596180065351983629713426100789529105615752531174814831042263526042644094747667405646510178630928635952394527889009123085147478652170158156902872617560722921764744850546256780218960529188362649324372020701894500066150571266495169670140508104592130139405497734463404566656474124146781864346192527478274830953050089297873155905503880566084188329604628447657834322448883693802718548105147083825541240388636207809747804011257429978736111459421234023093060549168532924081028554053194144096141481333960273065057073360962340238197349392318837028926867104987591592362373883468673255491125781741295433825073108309901190066351508389496552897049655061647385146382900103471725680096266200660258022569827009630825619608148974429714643782200473567476740344592969283853242602269621167156215473434446706015228038401225241592412812997287531757252550448176939530450484437057570292277412351181006554022357605533973060786331039137418273819397295419021547045121409477852333571773032207970683747268082365189903305027734132480840754363313967046714080682843442380554803400261012346045937903523101977807034929763694028609004303218291532903265292077207803018202815678942232375553941436824914925083263803154989206794635986208706412016828787805683881341255847388244626790829381466932996163621628490977745994291121416962918981624683340404697747141864060107853355503796254587841833511942933706981336446486529558364419004576916409963619304448979001851730143116824153193499701634479989963157838902798467644986822102613908234792020684864999275758018951368960599129902403090187642395254986552688147432696103366286587134393631855384160760155909771137207105715713211567407761969605530453218199677980827300029602392381212505525207281676674402796846217712494172350597132543576374328411899327291966164830140606457081172323141492472488479792802147918591519794902658968049379775125198351795852211866155951809911432146662211361870015513408794132945089641590963639744439685033481885583073640598630232973436590002084680813373080129363863783589420984900215364012744149808145842327998359091176687220147718354349108605635262197889130577021731964278032620717339750010446917425578929460070065747918315187662521902293583369126286837378958684183638101546432787279992154691624671937874403281754499438450169498982512549427362089614608109271085963381587367040774620771228597787866487932590725185199680571874509441026155607562858625066738326370858703159661121882813433408188773141098311054105357367700537872147217228846260103089914901451930805770949110545096981794090122632863151879700604081783258308132053617930813226944016539217099392141847511174458360160301929465522809503718399626534408110868425390844388457970328698492091921292617973898775901181880246421183987557067954256225582238178967581694170735970090907702285382684586210699381889207391738020566522709055929108578202976044673894584752631425482830160051580881685494222937631736287765098293968638722855381251824769375920434872202424483273821618897808447098734308220156996584365311929160477025467122903170013130820110033379602840143866167229957019344476696009704693663200957952229994103777791102224490395962502622013388412420166802444252852830580544714010424898501955845129781153532441482245719038523486490052783573694266147589166138326829700347289897830366543746953308920173039227854492298437606469269743651506224593680662075718234694896372006359862124035059681479030749967061112904966330324673047195561295818744134187523241884133925278710188999019158894929905970184206244590121302881135757400579176795039480361886565691978394611405111003678090121557300426873924887770878258131713352635726786115583627977312310201866243302682243947208398631607038487080535958664167358197275829487893109593209668742596843889048845931052359592202165084736623496649393091932794209100502546315216359263375756823835860981195467070061369203418683065414558161975326862610024362360247144705674731530660529107337149187976315690488054325335161754373959817297660164521313403063762184950518002999892983411194252687234332790574515503987305375955393276467038088774283321601021936166693002819147159340683624461020444610139011828442694285306413197753953261430989558739642404810454296053213059396945226777720716201352177498316798372943186537443203212276302849643703205807215711117855159194572756505410168602407915189909972902332924242082903010449849363604949979172119019936435101645298074688979628851030258551819317911584715853150906393079638840691037695923257779037521254628313739629448135584527514643728523117108630514038510823857585043077354098049894288101277204470307462482189726473859386088400359876653599545612576993677157716988735001160498812762853558496590948792567975890458875583398214976524066518715625927021914041900589385660489544947737235217326063456030955676018257666549431189070531412175202680817449649148890685342930895386241052953589682000089678118957500599265128066545432047430484660382175805853813253431572540438295399198077799403772445932358478180579406372400285659907195430761249827329541030116310535525631406095514017419855489884656465429929131456688170859894176045851364753988290568539452039025258704638616881561232468539654030383614902925424877019500128457768232829959599531504864918799362157877941147998537301184143183090705552021500818862239535890460483855878147125226354900969835730632384512792344589730480363264838746184637157694207248109514769137283974615702803139579173274938785275487354364306645858280477007264341909480238397065257354602326776989396343774602694580003954733620462532205001718544833762326776117372216054018031772316001728095865796805367030968605706328151982332961839385662891169094035226553985607907406070780257978207304012388711516566057709871538343025714559507855343021014193755609686036253212057778578197863624870731202267898125378056371573632204468004394401318601833171964106579633119541961525192028630579898986658789996733100279423123221525719488627531930090209725438623243614175302255805639522078831763839248483577297979642911801311548985288802938564924093138201957451962584997425056788868507405116630093455635033973432524115201874096742686915132390837036273832912110284880617893918515215607622296394230690154843082833956621135947697616622891304232052887308971591954097089914025982358982541735129933705300417263817887689125014701664159502353955858098350205745572715048485064274075636817240880639438425303189414282923918116686102025240100153298281472264851034352717474265063755014053856841006783362831534504246566546123350580262723790790302364272878052146150685772529181712987417828358842030220010522301878814759033452759370483630387709559063015444247656783104435215342886234377524603137101691686374796972531956403928051684704341396693335878016690899155015817811033220737981116953018557603061244040873656703054377168904490653765755842121093658013925475328644146469047243469058206078914184897976345674911809491198079028651205282509336567273343446723160162533756530430007946152323703390830862712081858796725333936591253831934193885812252970403464004440312861249276648267135616954053849629083785020386842765389777968373129912022727215885458165780153694605376736716122926043521191235381962335900282826992636066487619929863317921202175692174344900531467422283495113404202264635495407906955608011749648667304603289477262582086458780463569874317478120379592045599074145860975746855171284454004604669580098974115720235358987239614780557214956944104982259783944768065443688085359920484304411179194292184580846179725308374337126383835600395799364960252127213201062266219619808288560901370053191157457775679744009860829514262942018923011956510312739453006555396732361889603230281934265479500418597503325454905321171409612582543656425401436967100438286473625551680139205776120172949966729482624263380578627613844987024357804991083715158217118271849438258629201676100066011607322112200181408926626363981136474783728369794288295202804061922559297596270849389995279604946634196682828935752578826543477104119874031091370008511237737761450474278776235040239631185822082829429227495308042406872957556768286221313546740668737540732114175382657883989031303557190471627637952822153486868110378345383276619273652306718658973755359454196904793075175342522259425378783307606031680689057152062878739767951665186220570838735491410223148734648635905299001800216019621659749539335764696142724207337083266291270681419115845991950065568741969259154865104302410048715650462963389087247423497958443957879016401331782445527245352255847609927565244541124103115520760446295804758229444353711480676833449812900447181450267905430735504799560356711281817175641505790374364266776647233398580120931502443922780214425228301437011011120999886229181814510350882496874169472674022741420553422530148275257010896181898335911249954464181908201748084893337610865272948172514860172029975242173655728178567780766878116106710628637210835943625577364032533207132337126439035785110602054259654325971599540068516040619608705886855271054311002862402431981337406445508646921594394809055547430272984820255323517197440043435500184474449414976581310994772435508194808101278266422328406812361595470739630366616490711640522828590928350174119314061577009481417466517540433140166059289994921856026251724422457792460337875418204244248131768676414626227414684221526790936322389184915406296896024682379547585928023105830957881287778788738496327504323340645926302708426293977827605292561300054742972784524373679443883808212722674057258896960832863345567170132014812350067233612915433930343237810628802656048445074350278200142056055504761744790032287226247969963373813566943510255158251041377321508481688334498083086787913102487513679550608214001484785583616134214512504650403167003934203075210614856747126466505410004126087990714605208785242715589875439414202677167431523442043438912277629972864056365876847521595310761246619443526913036699197423785233110894198119693352392603814198340769555125193632531386480067785086860571248019506306436793091145274879535105586115015566735728437806387913523574083314486694022598236999777067932553031687885467341005883740966758872041865175125010502923276092448063120528990939915452674378672275181655950207455618446023967874551431740458052159753758069660245351456497632814449419460221956936195793438520071154903986171540975340459159054245209197882903732132142467671344780805366763904761399970013905203984208328804281736232575634872656830849158191461336993052009356051866356798452019965983404658343865390942949568805672170236865508492195193416078322146962754400506261177168080578570069329829103968670141058571955676353966612780706325027676322631170286823421563046495954942667509382551164520800706624450705298058751830639957389980904796049911489693893823390000942595007995646288957792514491297719249685556918846038685682608118970214952393875996387978860534762692933566669637029842520984415318571484626629568887032750229882701976370411900525408492332217351294851946578987162957710906202196432341875105739746551343768230154846327543929465494512880131171065085858155071006607909290441672209525223976908668337197897600025414059992424377934274625871228107644206792795983947060275237258305768077654313630222633442386871146267071292983457457817325254325808298466435204436166062934565708045547275000911785990331795759202265100533884719978645342565664293092828399770151605640475609654518286294119025574415128990149581549328730035267885451330977645901294931073642390133432583399685370689914304188812192336110296486409262504879749690115593455034791690528686932612728944234079317933332523811677004068587156333482760634885467235488287655081222975746849299558545754102205631632132822308384978349171576439421746414899920848967849246718347448836739749239428431545710596986697011755431846577380701057137513683000602712459528862182381019315454223698396462715396283915506575121006211618059829550417350175850864544351572724458549517119241585030601612741249823637337229420626398286182648489670712024806210325928562193252448350434831910296268148622839010664882140679632481514699237290839267496902740665130851006797675266622377397886686371149660725905301081654881052600179504238955284746639311715127477005537195447154216556055209200961820022657723855379841412215134656943768800050169804376484619196236557251955870814919897513279701514749966827270322234264354541905004269780229812894610363489848751286476398665094605022827905053458943711710493241640064298981320007653949527737487894285822909403591546760361824232376956517968323047982875741354526616199600286940292538985181116817440916872778463903595034751192245891953283466716854379235424199987808794163537624013966506150651781126573797481101033393805320167342281502585246210886042292840306874780213898705751848421676631151770173968803423812731849407666254932577695835935212144835391721411526334040001304256034299804535509534823374951618306785102992929400626560137836012076719887915627298196853272866816741521647886054631556073783015648000630339095247941569327013284206004480244668950539642862604681488710145715527018122870985491874658866914518872279180283507306289459311208005911421573414606543449884012160708627015310242938510215764118148672858897790067299944216449624979017054624206441957733970368541635375701990536745796568386536457067717338730225643988229835145822457258334073179877419186200591148374802956232823819893500280738311736325660557241705085065151120250291949501030611921521288436759289615809772885806765083108590673402089476444566109826642443642586629835454465315939570978544383808591961494914548907296351864814460094647856304353637298637411342734175516775603934823124156813357132272696648662065585944027155624049835238406876970793024526240604010162807720638120153919893444955841185927951972304757318723941888678603523267405451305151181949384859389964975405122243912939928439572814644613511376464844051917909497063086677407219684805552850664977910324529621206939951391527831875431814219762199205770701866248379339606405880761806220154656294431900153993876766214950788404647000907684451670407873356985653855489755236596255029250580556630661878651577311212965162733760836472644423993567382532278239177190046286833747232528898986242143969418646574579740724748936114548384978794345898683300242017460812060476821142980372847727441229844780720432199237398812806010414656556869573958199225865865799357174248152344850442429524999146048620498059655897744780431534960648260960093707072618537109682070680441629854203491761077537458068708372075059401886369232657770307668081874723378783532435171707227254779771894687561941814072705612896603658487913529293085538658941498023287933373334002093569659556458002715800910280454198131779675811632414324969011012189087520274767429560987574947132788282376931219287116333251273219443285621315311199588307345907075111961676188898396625000373660072350521285869633170745461847310486019437361259490252603237037731465861098351171717090614002416844603155131285822752511834595929124777640345050861270626103503085512890921916704111294432052717978907446826075669275021664969857385156327408619758075084814105881907821649078421358983277329537027573988936369533417355202333317443282346189762355626871073945229295374667288212047339960306783726912067406824177902913020801358573148307218199453763089497500903914536224401927934158698373483759387606290761196331654418458666979827568493878427455187952516493315589556381418456650575466862013701386161969844862174295851257181016982146473417354076388483372467231582179610665099478791970506781432017932334767477464234564908563826200006984519556630820897385724865873685280107181795417439574686393078727033816417540467616269859102422420150079236079869689928493680588281071048938583019746462509489780241709504781290100685096944659272355259474765615577018283089930025666469531321014300648958609765955241048467851857698351701923643127098517769378871355816202455667843965157802499225095972036298591672546960274973288406898373158276034757185703645277416062366037951023453953857210176054679520401926905961110618818058306371810269747603676141496887386860985084984171581337152360181978450551495959853617787810101912547944166426527295467065240942838340899356655592947128384503065245649852456011121618044236088959296524734474141407091322370441516717718690037906260121769406684598019104720655736882769317978417707334143005124757406950630106986802455891130517489966198757498773165680015771137943790872416553528364050634246088107088192669239948163769556085070695095270365342547998934634016699433286290394424844006461491912739736370050833528041998549980428340056502527464972718054815976110063493451436286000449752737625097068570551762770307843046557311891453274394443979052691573644219279219320328342446817328704153636091462677772793862005759882692436195858629164110138374990864316045030281964522741259165280826999305593560506881268055024031750772027122638340856238827355931264988277204492171620294094924162839153546079541417723164665059045951365777440890694980629780647328032681224831170747006950924943732937374649404142123179839726981967994758635778680421300734758566722940364833416392521759446505861316931788375571238473648943075072419938912344036916201643160456300058870685237160727280358803258531728860438926278851844247489980423371642821118972850871684723135969403595718979448066180666535050871075762139552218309952499853724155680463306040221047510208990698750199656620243357266987164318381638148639469424334468449143317390379806099394871054666447727718621670794035004615777947724740332836947687802732612584442937756722677998269818371397171507230353674955475714075954422244660571722529141603975112403346196100659902358228905574346020186401722939498337912950429551677206136269844666888895733420091631741315767526877848701490720880456388463905178635138870450520922598218452672170776742037726743504299239866327818664865476474515604179551502237925437678105440926058896431514671527806095165101359007303981515018133822101903191789673489964916491483343018647987134420538961233655102877605060247936363615725593251289708280941645283832577169392682521481773972177646846428400429607354355881661598615682806266636544771386597436221238519176416301083215246849997045052837742020091160170353325262919198796772881727592625416661371939665416445681962764280383198311193119152397439120736225289793918663719052931769459177457642276148511860436958788478478824869477316197805453454675177361085669327920826924477944172669590491214797846931228311669107373490131553853333561836390798300348134590278338476083770844839677493303117792220731807506604057004069615361530855758987526469280504029348879127498354030074674036517877266827159762426448026170055199349703673927351271829471251400826878676828853415825176992785781209787940720284816905462743985167346615048287102721737662466139443256448410037780539567101885645025168316947915318308754382779877142344024290649979244776766849025265999115861159453529768913160489489935279847031911540415996015682142622749135278297430471442176426410758213784938369289261679897773686413254596585152529544650016920630473495342318438821264968425086816663705829070144236998002093402009357946550541764553827511590568241708226745924726959151027771146404236993916114019371934715289042346467580255601686975916303371468934892062259512583961850039955293619173035969899955900470072702764640767345139424698304563714889712010129085569186729141085544054511901518246063770025727143618832587334385002575407034216620536385552042203920082404250429903672521462819703676859615543296623893436798707825915701734042820154921920927461445532537854372465023011969512027256479743562331388749037864041117863767823686895757218396024688399870088443627889588927663454253892541326459949149294235019067309837046349205281999651553000765641257754019917767117217816717165929688965238850121690068145233234326164760897660503026005322462422675665583741643287843928843690615403813532038944879912765226036105571810130964516517344084515061933664425851537164232794431536246731019289223769497462175987379391518898987907347198056994219923575258941282719506046969705400353739598159299887885576496912707905560390328119718272746128342081104316256352539180230042372950398158412750813076865473845369934946986675146835853169560903405074381200448435328097593032810334373142059723740910086247168702996692366862064667032671071094867341154390306872860914838637843281549187866607091466134642640939797854303842860213965319334092499056145826917704107379699099254322102798887211369759083549040721431230257154690722200473982447919218702037845517868112223891912696139930458563558906025732264908396344791384015638274360741254338272985641874647427744642781380804508742585611358351670378142378879252647098364321955799309936779948622808502328775604914880169090645539557382062839864047691405844798354284565974551122284540055699438194490057996314250944326386355916885356132073256949984160138039744764369196868827000096388494767984740282868504472437193853981181054246513183946130886214445277926303801174655113268124903889103154777098542703340641614560979635322022812278653904468655717681255485270583146929183609992330763224985784505769866535362377380208383780977878557743821779158632465070186181135868930741088796189142815692654664897639564808915495239304039768498998401656432201228636917672747620854241840583061254752696218536412404180228474573997050928815414956342808757856604511077967675900821508794397589890787632381986092473471820954598450526987092565398146451306081887719260502057429240016749871336045013591182705976494500360769156239856538045661254637830235973244063638698758143448316699498907998769086179029452879433218816040125564517189722117042099949772487671318736501769664468313430481322285053746072051195941277677230926816128703544609023873755453098667144970688855922028665713528913638695038452411336540143340809154357434599298859358738751219370814308363808448998535489448006315646440296562526446250785437900243336858535744343981619342014334148276285846078413162750933074534978340294981544096603033016514727187863592276513828649544926364866607284815918723242710327358868366612546422166844225110640305613456043439282460152603934598599942654586584101015714785900900520911500717434448653053110747350657217115290216140517472776724808859095392825600260381062414087827626358190448428887290187373190965299389940546172313733074611431706760212990108279216416513198725922765404004000826215111037364882089022711960538668981144636720114240802730463011372735967190911052717589946741985660084438208129007314926016230732330051985961780744451196135206871460002545534966356513913703449892565164795432625796225287960227551325940523673619798715394480447007574583864767622877773120787381877915817773899182391796104735275134992224936866068372095492262253589821967666220933410244360725461190247238710589555719420220196722556025242342371456436135977074465718822378788315099866607904043470729958478901956157356216123520284708833075934577796907275088927289344897330277204512267559322401423918306217175915533992583767166000231047366952098644365492679858272570197217087661561524336449407861864873666803495573648809908988826007304101887683046673175472753692575498566160297311839407164476962915911402321254752752045816172942543436713869288180941377826079877546766724089040070979775466096039943646289121442500814963785597489888217297812721729186077340524465124278037361024650787563796313896628269175481642223448746815430799785979853182729814389877327854861967013981998581411972552786921788068965405614802642532264116714695795172605782730069128376738855524585939197188944863514977410663891810412181008428763483857566887834147771381598688220349629787714595578367904888209812745796188014753998115650817314799433791407788868772349738343211475922786477527015754260264765660728655845970034609099929203379331839282384692883573783425998690310062584065748902940183370019355998341680359097684301987323601181338306272262425485868076450748582061847302871306292211503357599435308167864748098424170914734786199714682068598708643839068007579979012964056294447834903840521111010320297597283432750030236590951476710029766329711634636106045742779097903131556765901426936163428553685452294642791036096166896381674263452533638432127013600388667688294918544768032564795223882460088956822515775241799672231735528318903275178486455360740998855242230104741850957825171321241760759692274732025846104096126868745591135698023975510838739907311277595939081262386308277002159669349261472051025921807588989683020748316886066005687773053966248836766852288477751796653038618939704512666778426928272555272129209547025661267819303427266045824278136840716760259658077964611695888887623358352190742494580041875897513155302830090228541800699944347464733809614172426087271647612755292745358293963905941012409458678302050147693589148748413742956264118730039072558507447962412528715823997899370469559328052011256651959366802317524893372279195817827650584527959614051013211262281610239044452180374663717361840448014757674458471815031098407096687641059258398371603247680584245091835814342821816786542014001998803114440753271701306971254160524774810682784923170137626441444784034968984793490099643893259261835037179789358524434854481145586355307350438360449727519719155207874595991605327364493126902459831374562723417570769944322417290449736789861198967593444937434273282416011126122485121060106546452863426183644720023390161622926695296369086166998590434044222909460164903018317075646796055100036113263338657279242461072723289377261482184910088925222212017009179949081581591028990710879378488676280110730771114790572093860013873851415967735782322108828641310578739491168482445341317894807899172613498499079783482846612578817685466492903295798474666131826053004131884301706033778332577710200036574529175022712731114680070013520493596258611708548189800146241084730217986611187524506878560910367759010167920661200180826109711397771779540969718210690540185103013541634406894814238020817535145058729617029304207604828348155822117501881811596951898421423208970660771968213525055267441515838999041814677235854526343543732129032189189196031901830430735052043517956015154112611937841724187853233700691280797567742645553594765857802663978768452086968133703449572550797612960090793214887443585158794795631921658872939160327484974208269804693011333110291258783102680416830990813391716747400322867194468964907205018409795654366738599332693856324508289358168022564171400256845132583927044451761868650131340042268231830934449396166948382272996476399399604237089984168143284507419109800185705306171885235283191686055671985263922357601424526954270766975496452628576588501931950729196947133731302331188956404837528987837712026283805248893637388758163087112734600920783099251526172087766119931630826542817570191507355261276424931251223308336356497425890264741810566084856536870343621465066598712290385515942376817748076487031241335614732776210888896281529016781798279626920832389001550771984183395069726811396743992434315009832687489477182083129553967366433381327796263545818069293098058830169789193051980901683385699088722041598427468255734498157243281970088384313487463890889151750454273164820916139378955314699830682562377139804869070656183874586302752905755441960814439890056867253959860496853471284546786152450827513601099813387940914483503494417267878066527748535646861860882772212884248667351022704877754362628373046616669668906093087529849477441281103381624157780089589780138125842111591533206893269867536904129856010338963272839772841099761704651381226275857917560778602213906011042119199018923415570723241494811313753283128112651649288339992691801359671155141748246542677027524810077933680400308674232716639507900925584277076688676349373106734980199597863656656990912028500952925220909177305813368629178144825704017007825523337567580778239854572987500085862092194768136606943841646079752100004036488485493090476545261287303318865389372107236581610008150069924368564119299820921941130741120097484423716997092238964610421618672534467380768780205259736814187391500511459890243881086144680227615158720194429327810577208260815183029165349342668138169721902978187546931672276244713641071675804803272928655934984572109675048511872096767889868656327034335948903719298235354347514924954035301741504035151758426908156702644375475943027744660360613743444997125840478623593295697669813216751621735462362787528592209304317013977163055250884715968825510871813640441985125387621172238151507778468051644212583074861069324388649804820801240692964386669017607084444403802264102838357189282358550589369269537595787361020206863221961192215566615665943284433671594556394187512958778105371142596574833641807060891715674936852475099448613617142123456323792127016619577926829200322534445304855010724710314241013621897269722918782270847370229325436804659311918407541259034857900035873995893980476777409515047011921520650274683902446595368540286014766457052391608490306407181291662676929002178798788813883623794442972041460592096552381583267508927109459889339644884531349710371296467201938316583539278004848835378116507281981290911932215345147422165571595079474811746577736017009043428286576758728694041236772975157401235719704205372126175990693771282671126522918567013368227392773187482791790361069507514612876312323746244212526790352380352381020462907643150889884837691128080158387712674494745628073349124211730614820503352009965800412331952016566945603895527138944511304464912295553909834734812056026079409231589807547813207545376126915062452887457595404299894720199056960875576015774497470954680441707342174624116118719193854516295999402593745118176635668349817266441192205331097005003907556208940878676674269638147007122580792308866155943783991707244888659903548343240779669841504278617000387331433701766145394828301730791176584592505240878918806027260601606915584121289092160608119641529678091391018587674782147318554163883928511339408855822988891126294526808622857534088331626349337668652329468859158631817127364604253874482333116459392920433096095789650649599341949406081061716214535209306372080344744619847442089528592842644807378844267449560781109403808013440944336038483090955479825931752595888570545328092071844888076507049975502040302823206933545416044469523186320198902299590157257972114024726618613482054777289734496761438759631548484060117451364780050584490303199708653046121064204674602083950853862979679497872825469079748200463318909840699184342365990574323661477799757388848837239654924940034529943728629803950313631472009578870687548069978789184360406711469511171087871069541292277595114398379236053445812552437096476703068985020169800662241674424716913324140367555578735371415775284672085137199005669528246676057193186778739426546962515497911493513671963431849281523492427489962540546690016207477328601340743666710810768712267294774694132951507011328836564269930182791695683367427630980276613434026001919954963343417388984295843893527236449578293361292753937403227009079284420300821859495776432998421909147262141809546391181927888668081275250398708892076372297787835737817817736275912088956975510621335439885246408472621562032390539620929729385297282348236125315464582370171629189170918910447158878007627617144579256181507287973172760984064415218416712687629953317111861308613278615238742085387363109866029536656978107638035655933693713732902306176642806750820057248079316241624078906783127479446753462749394867852621146011569142292504253596751890432594873273523651528090091332526961240655180863680705230192879221142887277261275701516831404032765545467299437913428947897939211931843554574780961967593718618559750846628338980015735599066740387670768235697095257533199361013790732627483812233666254217216621203309307337193677157638756527280615411590086121462808348503426416645907400943105504015038426225644818346493230309171560591161435069022270129348785809728679517325118138399493462440797836017098142834982258970380820432155729891067424470353686648874156322128324493983630249138001445405476338036006779000785513065057131138450314989433910748442834334806256002276864310610196066610931157631256040323891030593000359731866481958457096527009469931986284259908927106326162965532483582072684476344757634297372038609629604059633953287720726665110258701052675434968673175086855058582157361001131810739505660372966660083281719449783640201813966574228976167475199398724846291558932554586342848397723772517755190414719005295458239629935605511616062131290537070396058448897964295964158069705285795820811143359212800258235792899931507523222402592909125065773339970179618396206947074457428481087583842533273381264685751317582716023327352619639239036649402811539282313784551675532108784136616466390016532335862095697873784240340629497987924351262049562132902218180505210098868688490574270856992340795950025277040047332431275670631889058839020742036165543385293726385728794607700849073155467134471759434631639989212059789969949918332004050944116853529975852302653926716671728942844418061374491725595385625778832072812571434366503502671577167988685190886368073425023375940742199633610640934246607647237663678536146603436634196588482874098304442723769555376086439589606709868263785004704271819562238329422620243326532313850540204549028025118381481420068346036599425470132841970556753060833480547548136784850730399935106988420104913293805184498902270780532054252512590077189530628959473010608360016209844733989882799541784990617853939314999808389267476906586287384648122486531166549925683340261394361427182548389398490018083074708382274434320503857247863392617855376742399276507503935938484663857951963623858135197797849877344864849889389816282891203060305619166384209611552212101154571023330359091128115160811057634606775033375291948667153914613793153099356950196048388063740343031058110917466862852590639939372194469785608368317472109465599592774788102896899035271063011870105899900517186642260148094845245269992780429549240214242948505130379854225770540868395780174094118106810355551823392340111908199797444275107506955509377422983008688882738702747547528323217472659902950710155757250049606502162682596169479657574863445747297703574369635880707257230661194440751806413183296893940666369816566251450732023996388640137845335988846251780542911445816804737026327168444623174780769826571633849574107379367685544247340223771438577385013448627812327137673884237810294010960674866510096777587771336011933696999427801431962736777278042182555693315389011895213692341777660614216190080418024175151047060322363459693300869880587744064349415034828908998584380583904171713703066063260388645753854116857658282796062628112525198913441365752714459674263838162190528064471740599872602946508164373140268091812167328531443640292570170807563057107053344609932742921859064592308685773068192549347396262978704065598001510527764042518735941339570267646667698446494248382079653076662018120541516093636280557487010813248527754655844672112119944137886790925653096752137981009436774044031620823759390096502803997808832926371867626187712538894899763804345790298571485590684719320654170812100249137069597127729221569003493781600686202725528505827227210398857737349617029470097583960422772197619847149056521825931718957120542976963397955993260214536296620452259833380240514974988324010048799377705430512136534479503580598921593605514201109093156593758987069066781663250206077481261384794063043309324614934460074349602625284109268100310388495654628485119244500219852106322682651134885199765314611448226173535313211216628076308864316539748684879464069660273778097559585506795538188344402525614901825212962083537223461097167921548613456527354401257226185714968241619118101749285191089707179268188098722004876323912278201346817530430774951207643289441550940535209507841158600891243409112217457781804058510629388037299910144611368177061471680487112912156893087154854159070471630544608809352349759930278577379666019201117199031348908861186172759763585111233149818234463298476681021969879291812475518756225237537855283166680720409162254865173718787359255480785252493511009550506270719674005320565654334851495797415698832244778548693735484190687620022333946405796628701894306306301535415785605690193654330915319700505708555921751483761246612801340176708128113861862622930399281232865277434576981989230840184111384443841445364947301669365830022300916023652691528380288969318868188736447608059160581009479839760040497394294545390257002954701518212546392844854020873457061000315350027595323546247599194011621714508060195367406938907144512080826989262509420100697078587293541577717647580056795208536535132520607182635288495147820018953162518006335816101513993260256773776166815160909427834472468613815946423032576934573840342907060048897574450372104204313573716019926425365951854826242687398497579926398664162822234809058294252684286592754140095903493872262798984138518897612736841087704297218907401650931251208323027854540092533993382489628406412714364344911697733002995650227243565833958504577834904870715479929084057917544935464716572297710303635919607413794755595691496740830707579941185652399905099870010339130790378017672700683527548439831751479463135924484743660731806898393659535628831978108782338604884411572913000234442812839361441052160276098064266482595697392475132236401659871621412718196993170511474360081463026048255243114516676340286742122872219175112168582407590497713354349749178922815048168379176633595785160325950110522078677955347933467429355087776074522200692574896043471167361138237872998428936923047808443415760617677797446004042634497465248502756720527608359615878105278130397432066044040007518517999671754088611516481563226233694159287984531371989684763477414932072470578760548538866066446337086806780418787979540980008804314821393172230417819905061957789648943102550038671221155169092532827450827542088386471725360518969400438361101286061121373652091502398786392623956883000823306776864759245447943951372280527782405425511805645876815227952058575577328254920445326897409451822542290359211683516254817330018923738474985801744957716576995993772907043829761506154898352177813548718858111252634288409538522280502457155851638504936696076366792232091971873126390180087905034464874660767956954872700355585698844253144066274422673422929498765124056078147483660194146745886686035809396361136313471662200687547378362599739166253469975171473635620103377778969973463446989721046919863072023222927190711755255658710664117140597037264067310014109618006736425146752677769245633906051968349052086045021840715689816357940791663858840238107520806394581766819661771115660750206301076871728781268062154828185258656607119352951694799297064345872278109921699663539710154738974975160005509145694224292723087946019513829021777063381426494235129847049282834788397335044499574907179813408567951465606234216000817624795942263818718953245324912333438749162216189284177235636415258605736703400063264242563292737174969986066620664766965599776756595192289406560428774156955744027317340115227283178920190772316679424418896225286293204821066760890153611200903546122351780362259097202342272872876554142898179466914432757940404558906494420230186968690695718283938458747178326556604138280663118521951006291831927356449365605994956491412729894660232094493001392902654276430842288053718113468248444407464004168669065131495099754133322898234700468213322633033215642426612322109907879225143825611829931225184328993694085540686891513687472106064934443368985468751700359246145428684816338053724769446968586305031264155389987784971281222247188610442031731795168685410748996088498748790693542994161626360360516138747523265148397101643397367706338437110649199586105602639326907399897743551000215107992225970414050099412311887906298362822276618631681580122448411622720013997851217516704130443742074700650342820053850533727878514395274620774360421285347560009727782614650615796971014558638608126712704383569291237404314980897821716634061046039081142172421594614724639762532977468375941692922141540809680475321101095763490495935223612097028935509757618230220888483026440712921647817281638445315207677674624393869205971163919605575594878977883341606295246394896373919384856359795442879375486472273121590658303105164457552580769389943312181484272616157251897940530048890942366889869889572632285968698475527287515124383324753112734403552298037105125979494824444256710413178496392943202826599896953628461703411057847946202768337766460245115613312339062985741157717811762917050838101751054738275037802823547585510322495637558085429329474234198418222390318060229992496853155262123043246840793553040673095858198773325682960868960970126493756859986549805084542350331724060940356816895871998209817059763060859415406516715586223813606159195381182403121175235067608388009235124915565030480593534016441508334079579649769713532061218559134068555519839288869928395362075751963079444378052604977636643375561794034823398548567948685458300635050046076176777080723838748607608497726445078829655153470629383509254538700494021362300413961900744243916366394109058122412900720805460026422228027708024154564615038879341400449135792694363600381935075919982937958878657351697589846703917786187921464864672553732933626503485703321864891779063577634259215958637500681159892891859594965112478755807423639417885242515519304156374277375045336411654003204806347752024649971385972853970891413299740893284856843814369340353730202616412594582230018698644119785889408517497430587347514610747375565619215773984874467055206020837192890904212342690628808084447176826343044871643262472698676184344939915804463727256164504682787348601167100135324173233719070130298628832518064373128479288512781351898315759637907182179944521923434937318399186532327766561065729688420473652118905898172425672078106933974384331001099685301321167960265680177009580550606949792773290087687610195786934084532826879469162320369361142180136214120617300064425489015715008682885136437966014730747655005059232196068262559211311680458116492191275191003417163953288895793319407939970485778127042315129542792492073814480632222989941887673115951881734449139104083294970274488977225922097177706113965109544022183427970884183890867510543480557674235876917477518767566528285887992100830876257990849849222287683646207463567075761685936877317814740402088930173261737593473827859736400536611333802949586954697552517170483640962148973006882066578712315211477745888938508150568712880190928400732629929951166742755792215181153825030671556912178190536230667466591024825272427464080681623542798917030698615730462751550201473100355645519443981831532850969967448279870844757385460411559093885811049566496640790186146656162186296043581338243548697109002161355183828372492166662920113516827389909598426492057955287692879575131789920591870425352699489134791536486460255001032908346377120367002522326561595030946203975068297915644978045311852553470632257024714867118144793789599806703128311766143182107944727463766703799816468057587875835839042366080084420817396724996456246286715222754822415650485946017309890645264392311926913101161017521712933026290760765361046974988645575087883375488964472928926083040692045649028499545722706216465600049896624188065403985656012980939164951215985706095665005869147424208515950157718504726147252763797970236599212752357770690617635099897942407336629098608209458782390446891747004697367478532118116778906579838552142430737318811100936765591479014304885557022076718339930986140587301342840144530878284302221355373915379540910580321111273849486495500839668102743198915701633183759190572596318967635079087005426577376744929350447882167211539549523255818741186247345400963690694357076201997898693019578961743768664078114823282922599062736678244015167679860883243930372244697050970396761977882141317215189203804520736243853006273944233290580259772426117166383217253450472612063660386819854033242221508737323530561439682847864070048924373157963031244600649523587731205448462393581085614094537309680723962345100135462893223628322295442386578054975142531118401075920057169975522760823730746639141774563025746002028593965984312384148989147180240076820354484880083047379999118575638892801107747414278385070223012940538674812635984918984958933588937965520839829931822747427213210920545501460057681019777399328829125307678530032508616781022098375841319158545548653504105698405588786197755933506003568905255331188323166362560649146130960405622059405515071418354588870020225904169698340720336610163765078514756372227475111132208966613761777032746231229531126306067598702337477670932347213301381264028605206068238613120524205452161227136459240679138905828153263919453893328531084032649289043055274217673611032967668828351508756347419191018364457073106605522356924875218670838468152684499356572466447822279683790264612157293452506273088812343817395707943322895759948332994964432370101831387883840802233671888869634799636172468517574324871823895536154794178399365885980472028103799514904211052766649519968315530805233692953941684534117230519345109155048585283092382425748953246530993971138713962281832264629138475710466102186746017942141612329749317660772558180820882991454963674654425656449359026082253931079310661588556941753018806587166292963561788400090441836907649758515563682595075025913906155831847355591919436821321463576286774026588554277293568429180991818242217696565304024488675827838270320640587700735968806036032908744556547096731888753410973889835795979277745137293306310251619121589397155288981494628735782658392754018994590164380366557330628456635473407826299442174412242466730496600231832364714546670690137668435083862835305685874089334247402683137354017812727989639820741184498102469995182555389078659411197726974579791368671243849711130073298541364541093338445193775665375533024502067845459011313279547541210533642171683066844157680039577652778241851967948345855000270829373578445210036518984237921201617332762512817024250562010572843044700678005768702123671083394620905615937621973976137071949557331230562899585725992728359156783561596592633019233752731609176838798520890417167358061629003341339184270137635653852265539832381288212872526416612259358422320815424287909356120886544436927907054506400809998440008424067793030964569498189143793049415113731067157901209235007337856361231834648768749600864894060210586840341510292046938681949526585046703862662998794039177507421709641316069080961214660921025288782315969277005592400837434692785746150649583146281178774686678094652899715612907720688695424672263090858710911352648583477346435113455803845719457356143678670546997955646629650165679454375246703856026323314059981902783354882514224726642820511111033724562292367006606958391248560733503776843641682960836263749485568325373402735666245857284706609922907859013434636247779294046210257658753652413667381274000837517626577419799910144621392980448710122986383831667711209925769765082265943398891280087513512676808741061047640431867534185338969735205934632822712057140727462065782328094665652185895063808041297078756400396870190897394601291446779263761627651294501780288349146352765226733519633478590364610301656123482820578735103297379460335451288888994275933307867517557539220170001064994243052596805049313089736301923699417882874174293300305766927389161313914419883951811666728487047544738977009013579788469590417725281864909399813419274181385807738356064161053377803029924791182353111130599232757403209656469312846171925292082577993117095921836430964520170178995089539932874604873642965098474616682640859166472335604332648613866656530688262200905721931047595342009913690200832015469513479428554898014864600293175933242113176504019631448383379597184428237187240577749880737703694686643857671334855902592906579587364415916004978723745221848731468131266332255527038301924690697345894773068987742343330727865928653931118645409987265333411524225936064401587714974027341813476152772945504878853504293590426873794194627470118486264216740312242407679507223797295349438404447266278721123313883038935682730801732123718290917455566974906228209547242901975318441985684242099224418657833965262005832746802021109646374973663608053466456913433442450351528102333591451128135157993474994084765175741757793602463882038431300359928177232876272340846511828882290824319961187074433617613319422631774242991533357389629982791311628208905555961869440438175637861492586196233212047839703453020186580905561878417484985565992762839362292026725324034019622380478338069033188268267143134652663269875651627409509961612974093979808505447643373943227525133033627943411130793980619582905590934983397701241533475274630024447350704372692245357997717148884633354899140978685851884531822751205940639108131176877162987104424339057316180127725499173271175824337703582310446154880635728908597898758487142575553985112837438592816500444841549148266352632290977474065993147319278889104003184157609452721408762224387573265861056277920618410921921305700963358657049480892143398944167902368235214864143192244441604252538767388126246929063717368225747499324743432158334315752594538571140668975161589252120444321105187651582054488037085823200401603584453732221342888259729028882179927311704302017066623663626723666690593054546644753181802216803549900916606475936945394071925080565979881952418718667597848921941484377264083703845810736700652884472951528789457575099650945211806406949700729098289236387396626251189956601855130874473772682533321449393353267251595644602167477282888088207219115891692619674850345726216277173191107887296922372386495414121160779760453407477156948297657144091946740281316369474418396263793470135150967476993843228428916087370936082855063657069322998216152175378920629095845855767014638672646944004205943816434820868924639834865361723530366111068429860039908297389185293630283674194518229961888181199631506440846120015885430606085954327145027877308643222049904861734013750195393339092907339072964909879853676550520662791189704921419791629376171574418951905198685116784769793682583654808216745566320757425992836557318955084163692581649662067819096057235792916347405225368121918328401347644803507675415370503047575287355592424407783028392747727357754999125204578247896690244635958385112968322163185753979538379759829828070160456452892575168366191911398804485670534023969121147207628467048163941601214112014794447548452518823428438664831627985295231109726627815677172552387923006709344101697675224690100360504689871969388834896923614361665370811700615365093864745636788490573706633225118140385385367169260013353366862702774964991606558523558219874485138089864288472692156819206838479507795755362164633804281726726076750236224155073539373554178873211401335848879637342884520290643938874741135675639721341479432182907397062494560506329636887811199518245513059353637535899098846308395559785711258739882635658259642709644068759667335833525056141039613702086220451685783418077505297116282716870394409964486982596468415776866308223091380318676685767819615693335458867076273316028174455451584098147321538427060275572995912833773459805900393840476403594462763954133890532478369237445632850746597499097765365637503820272923981358281399867165303966070117310822781980321311398134070713956683021744796404893245663784771522449590950297877752657140718304769879237596810483795447182236689873743340742640000084735615226071320997667622997554027437379667946925869732480435322073139399080885616510787976796600030464284820049388039802015853314191263640052124496226553316241128041846228757992183961088862425629078024031721206519960392649456775680682244632809955654146168396295360277574527766676192473036810690937201517189494734614991318968775172826346562802616433363608028515738955954793211185432698021053974493318019507237707561129703727853572868648057356789978599201842495228099281925949978430729035514193851936591007444946038491429243520867378718409502561680386962230363405317103115871024328976212174232738135705118880562805327285804867205326510610711808638938227860953652855910741366828593838864461864095126949373555673318313634348112002443363820969357392512756979567362492026702441723410053090771153410414425267400235824534517982046959291380207457129864975107603420425009680870257066453579136692370673180300085825772122699821850213092912917778739070212950329454718480769511272329830751492455295009979143172131763606361918333672762135646306921121741424912710912666619789553377152331778365788097650644723395166018663341424567829913291030464896436268183897726024281740113679366521270996442761792603321250426503990338719229014011288010854175997246258687408948882423055620231963468835220670818113709423640957035031918698156822315446166893323413784902288640862850983527858812761857755377356317817651983048812697289347548099221259342889945044415205647675278952511981734412729152781236748189310135783784089453208680405181663976322475984555039574454314321353488495882971588291937578708733973177573367630306912394922126128263671631870405035666489961124296856212642231652669525043696553233429593233835883025750346556148684591644669711593330923654990967432981280403737413854882402852041098686435973386144218816234295667523475662608166916013685371446224901651848149026541459039392055053348262140849543950198268122234098745791939808598600284673381284328833868685336730348081121249933422241355995897915686083293871726113755901403234197014289685338318790346183657122641131535553694669650254421370123162253573937689972179012450199544741080577550425599135688494753263944370031616730105653885085903396478297666883832367396250182140417033974851494257342548305425711744871976512233855399790550128846434782431750100326449473430736903714373681746125346709511774761175207649256540965322012581514334315419602456833623193850803178818425583400387966750911235528878203974447752619187098296181170086373822056106665728831464551585375060220185590998228392954587455118239667607902419993750627020557232658625164455221445527401659208365785118372892395431120957968385228393970914632623537531746902786699718911819672002203344259779062925380479667375491564044863075390003462020456016517126370731780351001412751085325526956650750080995036685152905427936030710381311773976609422060437345528521443197984901715156371046876937405030915366431019731832952847735636459957021478303941170598244141583056165292279331636194355605884130952806252120327634565349583354795950292631737160899804799100925890158657414654515029755459900187036353606806615485308199186587026147517953889397175336452125795578489108282339816737068453090691201484126624825379879468320070421194709911918389293963413913193016108867957706456247505406713910760510790512866781528121625855130919277969055873468305542479415282938127789242972208401076808526827959530133420818029502309807484346721630527622330400711051620130816816137623361685009258666141656669038803498534671843509851061159686404367415527309575037959131444344682639897709538967537828353074972284628263542411586306370670349724337907401318877333325541507358157517255193447017666692474774063417442994843980795884002029354359932451444771573589152560426263179951053031450512291053222713817928781753151631806173080326252864290757612144395815410397232703988469375619490130310537369517763536215225350446420630994360896790093982511523360111360414404505978007101642992721832664041684419755263451851004665091068490840319263700767971419463855371010147790188592739933657449194980033886192105203475779167614848377608586095885787297816601148321226293120473799098294266816044429676803691296372412208238207848440338996407143349195796556682121514126740960201792681481640089665353376265988663227361698408610010502773008539233839461146504079216973441214043214952197656052931840811651349084000272118600512615694496238562548094311474890815154764384472923165521821579812387351748585553782172692523188728862815128572041454563407901478406646949061453457114270294071833728492533336415485757149260053732190110377515020994354802796661304594987272718938375324582429376602507132765748441517776366836287017689791090131085574933090519263489393688453023812788678999189433069872395218919506637217326531011597648525540436762004216206462827742027431658650260673118343772610171275584723124810099953204457723043803147897003992061981824612691178950049278129856718956044511864781651567686309418787769424550349087698674478905309634383136665656949861228470708613735042495219080945117670466251604381323554942574501676836972912307948852014162585571467682956339484629442733911061793721898908007810472251298360796718165473665253374449390785036914133298155964500629961028606667257855583686039566863319773052542898900659729856052108904947477474612268838961476328117713175206464014448279920152043237832054887942200888054511588145670003223341686839517929978418977842821212045184137005279938890300599225333904659899811919386142647119836388503244433321045146958992688846086191524388218475890626125924400293158992474347225074849638524614739725233747167086847782665248465774441089474802231503130319789012145046929775367969758429639744536782458729926971728869840532378469144959365500176790787264915341479520344752703369200407676121698861388687698934516084163273165543430208642356062645951569315107854454745618692688867149486406796760003076097559769481794357276489042051382154051826529416547054528175532497610344491078107992843197365433200286032838223761289787755443350649644083939728526941186378161597534667518248169720361900121061129623764055664756618712863453806449924184522998823612673440034364807140702496849679371110746962150713279889585619083809103444108993624386985624378474895416328108234201932292243835193858868377424927861188502420549099477567573578432289321660524298880792012328926103854247417623642631141562613004533466362194096733179269423878778872547104929006363372948679275132310040447066434987328882443835357610631350256387619507643905387128193685084973880251545258562415363140093017581741946158311141380993343809701606997615889107400754412831434246429255803041720495725871443662635549998621994244292767624123823000310224446940722417717914748806314309191055696539303515339601864920987018058707098276576237118137910048357856271787096288869944211131198372155059410461188164482549354810580710949189450718506467501081284939201847297111405206237349831854083067602126886098135609026271299828891342994871849479050689877076954034552227570150271536711827464092300609183537023131607741474046460890026495976483121118412519107402058140591622462954243135209093998784698285056745235619294272139715815006459799427285722064856329735043827844212914246056395643608497740270706623507406101829750161926961802016826857133869672726907010545927183857946611209342583406051049870755665715521704724071227928609390356317859928528560778944347437931309850356152925576299592565818836014946293234523081669142233698457962211587620124386958742274225008670096513787326798191185741658537568206515676015084169517977927629754108327045307342111773873324163320922676792085746889478386530007896797886069675256454805120741375134235900893352201430676817563990499081173393798539926688530998300742897684371000902781637233562886411889926763754650472752054492740443718373829954182580691613119695983493568505082822079884044931229613631148907723760329759268691951171034684556221142112378714069858743212856851399867938196589940197901307744523282689109548495081459937417482748350701458068775216754471264482221009293634016153277516811285815742365459877884012217640740460298218857753447175817379504751263328521663820624468029604139418712345206288728273502946429413808416342999018929955606854864599552154664359523463903931360673646636450090399376209396370320865140956133580882724799813412015288359590489844064394507995075142514136137053820944556654542323318818479622144738384824678484057754018756986743762601284276771323673021160962629142184104685119693665869916261703728645885577814842289855236433416121371334110422663047888151070457275615396192491743669681019637738935796765452957759952746091162628573936424969225196971657190154151345734374347523920151195661492880888165521176776877674498588231624370020330949031933574611147738610921043225624654036475721467214927432224397337652294576958606406804425205504408157265462665464936006414665190665967594911672720196754925410043267407562839475256758480061663484050820906151671117067160151577666396485027848466536703893260332839834525586026351418307358653184482384151576284447433764992856122918445122912919342585680879381209536866663015823689588867833532883785239355138922703871657206082364413738417931457548092759831523205644851694003490866226111355003522762726445065430710807611700141719652167594038696044601924557717311193691750180739663812789871036926979293862324624543150185974143451073072545580721735939341073795812061970351570932520490729718820769084329952683078662669228595419488690266409078191720775273946521368881441815902346112061653149814545202933193235803144325688936941321153163369181774776635101826056213877188144611213526862236834458503052951629528774516526391319900261525063765254560774968228013931622525245163283750829979434990829924040348442564512241385049150624859697249576786327384842885447916576122633424296481275064947971104834159768880268255226204560088110590719027031341865618371179542735671419115950574764990076862849782788805659661337247776383246487564479951180008012440068523625286682229401541477250506908096963038098487601044659049343787646821752007400190001156110774922721176716256862861627447039618488421966742755998260409800853421975136536407920458817410208906162053834488718095202562777301530535848032941579146442713313913616464634654732070897443464708926740065396431481178692820744448109249602827236759094089888111599514170563569960487910952505096483042199718843207989958564151243338368177639904828919400900041568816700834023461520740344459164447647257297983767189120741010302259877188321006276514482066567711736933154255230385169548250345411542314357554113681070808193747532722620277607744643279858075291148138983687920463842176103013047765904651534916103567925444550064732303028574528961240204636807679311967355123416232138384637632672334365478603895644613905816720751472110377268634299147288934216378766247039090424989319246674703212648320883901004265810373428097733995261645889105607938080211353331176897682056447149433407958492479488879315026335966099224552417201428619523262665805850160597993950951698531154682597268484124019113575624759692079983075341718808630911089561254187423716260412962420581594968669634199269983356594596216731987000312831258310452257038864508878248744571719936906115972746898724589173499093846274820663981381698717815056641379211267138024402130434340899697069707297354029582088636702182389508322714391861320727512344956400297689230252194477632214190394906151589628927149875115507690668431225841269167371361475200919482386575272186185181720300206779708412380597085482945889964964526864022861180541575321906379075993172704791555518298008681833321640835039326769868365864297682512382459082922770245921420677482688003582742570305580754209341112194262314734891522144448216494787479511592630411796737684321702315610301460206874076939458358249038403670506748379949163439347580320686835331664771135069107398317879930815927246388126912283413829064199825462571347344098445124361328359927187974669078896108886467895514610954881523517511934869786966676279944519580705131493605981397800257089749227724450924821790856211014565091778983519585566280798650915722026373751539526008101861942330712985456642704711670565193070368756870909342715278670218919190432964809052641184549870583369555262256475501424984938242065983808166456207608664655416626785828771735746614541887514309705940795031780078290421931965426283895690450422529065236832944987541654293139165796512659206121442483767837523054536907456686632916685806164771066501401215645184755046382452891386284411516878428588342430208390034663181608665806327320326108590475805811919296541591232889119766769278426780025259949189531767818157419475982225901077602007036189546481864920416215852580450745846483690291461121794759170826626121361429721773540230481265622575940214026385471017994404135428695751693070742365878190714004593055999882976768024142492469787417012195030321487157846933183588928325162500416118201614686448923805059379344800105446178754621360827429974332685705912922877840295557982152130998958771634362752688432294195542623217671587428985865884051242400718527430027088252893647452210630774411076538843838993942872016699904478869853857978888797141232410840342950524936930224615639639499875836455145408906311329001105251726115221990769803576502804768759339698163201230543905959086178363988963787099190299978547351218514584637768972025017376579434436671082550210708204026036957984984934388332879409923176378505335790921295083917377750473224511363682931711219906509697734383657221025629064899467730458857593820993170059172736897492685839023939936798924755699645291224856255565743236489319112422767310651400424814062694726109020062801664879196905884558860733482239655517048194469628531032462505781161177923796094086272194980991149905829742024542710074989045154855342414266453361675654358738728015428629348937320275861791041834912167791455386903542294518417559282700258470062886099945592720476264447652301480053042938091214190187580300107799959529402188123385587517318471313172921232838371732789792113969673575406775046544111921173830023308395944226498160238077235533940643060626856818089867552148025186704044277929627163080841053221360632851949686745297935954136246124035324934272365390036605509705960411531810843719630205128599933163714503321283947478192095045513410455987436018305589254139939933105276875487600171941182517446179502411548942676543305943202685691581448624552609382037807392214019237911088369196975994495193328070211799757966358989552122401640614761800036803016717282275063279519341898333962557247674679547262519791032376731038178725093613445819708172784584603997337095187586994537334778187737556272174839888698596790233709034934249830979054059387694390071603327404744279662036604357359181392363391676997042693539662418860742670474152515589993937836686281309484361578532094149131526611252575209996491126787136904594679793998786370999951361309958737864402572158748662903708074018649040656736820291670617006731531362776549950296205978592598193157154155528458429923270757766335016057859607184591052799264102735324063160938503662620808240015041902401128196621413664838724527739485055212978520237774439396166020420811166502589207315008136096682733771685749168062127917923360045467869300486987721708461700695611644509057594971520248190417187405170546764216464079980939021838596494980317367352441075457509160410634494622691923948560697703734529704191923039417132282355900906020278229086441054772112740646488221141339160339381855239151797846006636331531531677389535944165838280601871300646360693825747468330973641478198248031483139505484090434833266205492753665695640369850786783237029115579555271537476050529267482635877465950672288439305499734709830756413692602198394030650943982209041856924586989218010576491565137198801015627618276066564928773667571062463866259895250591572626965313958464957287018191593146359022918384708469163125882087696616617930694114454745773854169426647258337560702300753036482983978475911409097470777959055306480110659552072914587030311980358632988840166034182262589121691888010142921334002570283311426583377389698567641039138089346098426583706588279940043110823149172506882148704726408146043527216231425697105855149984643307278560367325345027193606783881521611240403796893737252386997119966556895090854705206996456206789545266788554678836822118222263862432299455210358746791738191949724462234208895940330887366266074891312239896383826430879168388331080372550641682281097045128614833346838642289606633144072614809740839524917034318778148643620937622985342823250676100426942606496834476388975411090000138401401841940888460833951448221049234013885269311021423871256530988258260623821321842866290600745727869241076756624536830418854093364121704637433120073194504086970218910242108661669611531918332481353283766991006238248522277848639929844185120115318952618761335272879470890424495822823669730315173669192840683183884318802425292066108754212545110135539406615304243299601928354473785158331343894061962128002935904677663632058539762181366317645361512634539078573339672999734066705297404405778226143474664876948572571467470299331157196104007259625400528595784767097836560181256876985655746435197189628085339150157613227767777777340587953447922692717408441334954224833293699823247783712511811328802016304334753714456528567165270768969281902047473147424136331385441615778207278024748360332052477169479969838079851343619317704804338511955647208986341291848229271283105918931172088494727542864370089339004316016169970886609508597027446078238297233094562843967176192062492201037940151808189033884412714001453732955281831522499867274584489123982305976535095059030371985350519168923251603674021452069814946538546104377127150765520826504205908849986567268099376936885478997517018080984408955902992628628465559063950993999095694104945214231339482220249824348125770210763105110802210250921610637566218349816590897277566332646449485426813274104751152151341440627965263473334096982964958863951514008226158026211560473513858013992634903408856880272610793467278875453476003562408863809039709824880895527227680425840196321149520425251559863656035144847438930430497834849461666315130828970582996753105474766236387804498444208379861848141065312203221432219513155177044250787036716757844946285097692954965002577460637756957230625585493386244769451802960978224702244383317900984361351379460536343371564687418900858427626754344508964833376373713382333633652993331756624865008932115716086809416863215554708983741867032890827250596963178800251162991936276100793401373906474360196030452327747684737697427296089736873738846798603809618646987479894354654386042859869991026299572682388748625287526320947377335356507207052298824315484492083123274187005445389951545419183191201263128842181874545488828243147324550638007024593123650960285682726844801059790387191035149286420200096582512661129727189180853543546218054832789981967998939558262878519389542974561098808866485989797660793401005897468160902752074010518919918349455304090324368218495246419630446289291388005297358701686342309262833507854542328695088448701601717143325090049591324557882523473028503599286488017366507844753180231714349681617028097271267820128856176177890416740849650018979986774291517798464066849908469011924139670621276189286710908747724623396988590249775408170535811346591862109542998867208355228693863606056449861053317933508659128519319550170774128635451062146453206218891417651015412028246389077771174783909676131645261293625723008541006486023685771135047771530857405636335568872478978037379892841262886589435016089462116523607824761159949179695717864223661023236582701909484014258265830148493304948803965852216717261353336292366052335912527179105718363662594179978645522052714541394898701256993545405640701445249209037193398331762029810803375436689848275842609892409651197477829040723390527270720868568077842541205557989613969464819557253353367359640589708261411688463926924855266088053803009291988182205486657297429330933307943445350777464889364819337966129815262800295753480260436774376984844377341465522371978642869759889562660114660706762738094208955589688234361943237772160936381498870966627384967010350214025023760728317150040111349515784131969893375398098063257040336139133641723798208428040493786669136421583488459088717005332811054160093743555599236373493715610933587731454798017898214066816009280897479624016730734841857471002993318147170137087517337296737944030128617693324837117874330424282150000511055841162905802025545653678220224086268188425957670686616526752624589451184500736941979064618606234517056012700412375220046049231870638788722436246380197439372785510287442052334545007691459878373882806251604171518736399142552090759218522891897385653438403645623358812041605833409600150322047984616059589168581100904372198009049229592873495904149439818019832948051107338762506216788729453397688100502114414161818841896204593696392086522907438814752418362344285462704868368382781087198884166149012906774012959609765014664730023177856600005407432991532364209195125610330644516475491137213137892345893492221131999944521661154743400765846266589210623236262277763300318229838143932149187443546618535858419879494558858722664710089415826082463220237473914611067300451903537693474291755837425276785565814753868358112524948184798899456532231456508567763975620620456640707058547576877034246613216148412493534322972886128634964910604291470349526278113808719280380949927742205688664976146872178609250318316879858278400569747435833562610460550232436179358943283877933726336907666459015392693069386255796597423810240773391922532744591522894996880759630715710833261461457229224845514006933062471778953061353929403224755263110717589286093402161994535003882607659019164641234148468765470889095127527207251375773879983305756629106679596442989003707985783453954715909743469081949047763747628418863577579131051865827256124417682847554357926204432083515476772819291495941857685241198735491658647640228375835134406252778267106649844166519096840656146440161805218280291645644380360891083840269435907741189674686840854635772763746031621939952234653060277164787669379156139585976848110710609119128346436795415806520840125120941714147912005515486370016468978639240695288712128420431744962326660122448402620999838335898030501303056222824032572189826152046722433497184356885097776840504431988608530011517084621443708311634442080706317150304839815250855764222226919345044138431336687566506416562463947276933042660391215466254451375537388977915932312083862952687565987972983803354395652285636239356336984174034920330996558129961309004891868125814217207508580597463069277692576610962887742392632958167895924989029743248057986646718607427181634986480306462480939664206416736754394814014517226850273119184848166050116922330038139721906484300202340333853655475901336513255337430610599296841562828890765648105418895578788141674586151974288103159405075915113005912358932111707473650467257214997295024153147599389356558238068522083769704877560481893620661950982184956583461528392847265041515555198377863821856939014110907527016134388551404666948070995825928393734161456412580756545966444241248695611394638027802287100286131204710759120485782764568320518373643161378192536883632958602070491969477854787224018380750806929612748740771216907565429469166940548187423749355018412548394240615474610042953135335906678429741146401433402746879224855054629810773749444190651794537548606444827188576526472300929387726485517684646242474942896809712933225682661499648445820420180554062374881142455746526079399574649178799865619483699293033533457537839839219904388140452995584948798337130150805086004416791700913763461593376945730356586441525995947993304116727828387133599446738832671418994408131501662796681399057101256616931134233196853647010364728274577263561388941319943784604701623051942082814324080789158174700207547155492193127606643454352168108926153704192979680928063896785693276216512327489725985941471922764160771609906384873514509369377385110098118158877104011493834717743337271738128813420452085972590733052380762558260753121175716427415842455989867580482904742995003777732935848054414382983624275121044717595891199000848905179369411517174403053778968762876921394583134161369759023104749204589115558255429960774911722257234504668661595020936476630395548550587888108652143642865111827196702097965855962709599520768683265712802092363023727370706808617690516670490167992791745291622033835227339739056219796418267399518681345997572124247574480626242815477860028421049014154772236397403815094158597260496876788430683755076481235860156320115561386258310399100706905575715442154276648471641537838094627454439758291385424732379697149171072688358563450095204298429020801488395275340516523969851634360408914068760031908053087236746387683376841970302231544221220681121352508059570644289060074460483562881659382652829621085191823049170337064740833910882269100202115793107225056827906147938338636261681949507028651283182387432220629842315750007206461659378849825991528916786005021323436616108109985035822562843383285957310417686163093100072879643245263933519558778331454544490991145081921531668003974419552235128447938353820685693765410113938862967750707025053360050349084698902045181185243348576911691460699407004440450686237926891873255044385288867395634043395765489142638090547169504780752622324734022951765113488623232103611969024328702919268841533022226418371392495058595497242490448721330811803452494813215297769780605764236940713544850686892842412115136242798504505497165229101568985658314332134650627670535415122760252308562295838034452160002313093848604689982869689759078259899602139278062862711040178037839078523343599304549044419905184057710184336042657924103973340264765655307730514408952989533512832449314934378708715516609243362058619112717359411854321435104359655224158331576952306037404613972414766492147777727431880191086333945928304765754206242198165716771887281431535075790845083704023038082593585364668715966699181511947710915781961892611359601690291876701779852206462466362011884858721041840977623757292452412546909061470271082514956321462201397771669390143377412349408255353736533200061279311641376975939702330742383321762160216671240027794951871485286526761841421584132442415674811301418439276065565387629509021521876470534631536351346445301623748486124639094891353425466103417503543031027665556431073638285918215185387667514642287033397141035254256408483437415640474280202433486885624617247372811771623631713709739856014312721171050811038198547648183136439269949646820428933193963123873216256548335206178011198115738583088508716918433652052222329575287136348915318309760876617302668279918320137570667947918202657035354958316059637443617518183415543187891192002436315518832437750755638552540268779834304859741644704580630398694378566899524278193831264767921936662094979682985693898062442936978174081390834740955945312855643361038327904244951207377248316375506471623081406475355289289487446189722539323118240559965993689245937519921130092489346727081329239047503743410586138009297399091526370763670161837683301685524792927450396809410346758080726248236367878105788573808287413804027138163256664199138741424636751806123240927140411102200529990908436696846692465681761624505551665491481236025637217435340001465675265275711043469277148744701000862365635786632839453639465321729978712217489953369915040270991045331358461356451600215135465958399216515575825231151420190624750158657773941856776744888107659064516697119879887615497927050540832008520190965738193324291273834688776488181823867392628232104218208954486094034880730931218200353594105082415736984531304968677330263552962020347065009213355523538057978325587060816782645930785953523292099509114301899018967986273254494632939240536878334946826093676878158887038860357896477911659775607553856403019006307214301131202316216654085477069282938182537342247653394164198075765211723892306376078614191922163922199251607518528731653303388685140585381664843249003025775608355581476514886519393328584540466090102326978476277435038589499911270972349439664181674396010017758467674528289970093702277356277715072531201509398406905403038774162305651985824925928146086223593831016610914060476448731955165121301961228066066848110244797072403554036207503073082960645184985952499575737098619363511544781856139964165693310360423196490093490630457988235420756482835120048411781199715161371387957405767188763316356240140600695813957941598483694984901049316305546062469879571029764285389517977849025924130922114920347049946231495200509515943410070595193528719031172622561887460045080374678312557839674915782885142353222870194691868152030570664682135705622936218312510286309802258098768794804842941074884566165763791769653997923131577294099535461311643208011186905773157912180119782213734181690299445330604910987311925158951697419490155422781168658065860484692164882114799608138809812666641305113639328281664949645252798166177591317795974448496484577848145457901557808577151009309769848436265374953282673495705887345825324937628218251295876742041557729446101115337672421437054585610652946430316374992774995342483280421573264654744721615641401313321426070892488143512492585740489304127487505436264343611908882540403384514537095248786583643818914024404790258843093224374718091357574116694461914061450972694917064693352518303227261833031049232464057651867032844415267332334309097444047190644483904169420757792672096412512602954082788779858098847995381614789730691845629833218921752753668489202773317248692588653760165603833397776146925871209099853108437420539286869463625157513469310108739510792490967934388059530458897910731433365706007972722355858059337334428542569140770258435356841117507430324435048813147826850184577272517601926911033459286977726660882304753002406419747901488759443758905407974562761219215708313517008926614174893461276526170325060239364452091321661788211584020275732700574786203554898958055169177254378548252165654070484213788506297209790384550676234270458370084611891696096035226091465385969441074796360321692987850183117824435633785295818130058785036414484628527135638765533369359324572040596251544265596489846509564212747740209792123460377492719742808059406183178157893352763417642582072393403773918087659901381185147410925848857644109017973690244191792956437200997299903033436619755371322482427682841001213490190219564220981197019983505270138952476507224188255283463583750822620898862629255087287904373539277493999822537275762152373101020300452229751442912347864463978565750924243290612150420109666402833033038134475220997632746337724713070009829545891878631812839091246178372410510103778688872146521337893116298669297283338002650642313149557391856980095183073680829705017654691351044763906939820566542684678066676664708042403562294174775094708938721777313689469965555370568160641819902111324981837619898295219823827349919659893543099824634931826677228495176800444355173847304097186961105232217345273616348469162893156990788652875083841472377072853605357637681470235823116643811366133899525833027011818000836683048145349315970541120035157752426108812082822350288605530769801262114950270549734831960106047935102309695743074670913206161718992093866943105022039547938726580935867941140296784534264403945012914904261526513369908220250543737312239578291338305986032154524420095469104373724190967753113399627518140437575351018865113352419776823416170358421766657921300025861768528975568646196377116411753968035949267999602130585902996627762887978318725718467423250708018684016810510410338278997746965014459380978483093511195410188799880610697811557231547868869557538865179576212138623391713362679993746321423979128934707372443869294144046603613417806267914496309803380266028753210712719047697942800061250417840576885164092633003210612506159708256489532884172563489767710690009670705473317845138034350101945826177317222850698943552835570683872413737352039757655984948326113251729599822580657718613544641466869530817821156160827670525825144009291047768097000257763649207733282837273670106166158662775553267664921084681313223448755040506195108815712059217410953180660325596982363076034805473555369828366763622924451453687788963877030642408252827418953628414609946611411444012254101174467579805875089261981028859007962184241680429901844269345369448331263945440502726062795076242178671591033571346156980169253776790742956096728769984581147857099008583577180022931263850700319636116425168392202090290513867620759981022047720492422880970513756461349869376704287632063796229300601523165448835921395234497597479499145570896651831007848358214980718816523488591021164160491501148791515268005517747818190758780001585350339269493390792832995296482708936960216456405039892694372839193237186187003832181548956024023167220528838128700901212426531110664018168465175767321050759090219516431318685043930263569511581287303565521778200702612886804077262144604823024166729442072635236402413930289015683431084777357491384322436023145863528585163659210569410140143196207292346101949781871692620210667414629959898329847236127619848898836226889216666646820388790177582517277752677156050263936167113845642244027416818939804201315386907055243103824953202466296535804242495864342766126913346222180561560809125567990923216395656795193311788684927681607773964934792286784461035824965029751779359320654171932258487893054502464083481883124766823756840522311928466203631820008911357584184852622161646437766068094001651660047874654148905487184091715021016457539224413850153154961106222640682358898739574817276242472610901641845472758301798953877053591146930792330277483462667345886424425551414053805940249157730746333458987287966795586198843611766266903237112773996689326487414619073740968815652658898898992314119309507898748951997253818451276151527457848245515005496477640385345813486212183337510369306004033009333255460131313071674005836696178696036321196355299894361945105865154201529830155983768670336956555920051588675080131328971627191533638553339417292445762472743474994654946634716338360452842446643673057573690976800729469842538434284087081101641941722187160825066959343437461629114710244479340863386700906934064663723538054444149220685808925668599637927726927351135359850199535414144310903656322231584995848110429995751833196440758170989053305882803249121641854340573444775381024502335596280483144919341842200973822677890720623126414429167888588962930434974150063758026250275434871082330037709306496050017035751438788392085380255239314002235836823579736091186387494181828552285725199439047063673086042757243604513093972699790716098653449441146330182683855702339085559555831863497050611865475056311476181986948274234881161657698373144205201430241695950224015508225756755008645630088745006751881980768760073163338192062977383906480375355473203161725256921817924345679128835868544654537959402741499681154705241711147642079495095281032083523513148504081862627978326763458703149068294199534041240725939537414859251791869299506287768376026768183143160791149174548140485368571107958002179408355730968022178187168383095233454528264934547703013665435495134068542397454432526705634840074545972066978441371058423708262868903067694089105257373870884111566978031144932528735915394606494645112731130329756779387546375796140706933967136586785138670827553982707613021284797587275254790611481845398516236192510012593132690511293242573707927770526514399714205707079550547317382964280851473657650171075100927556638806481990431865367404850095002727542501024925387959581820646681405179301334958852135874389383291546396635286922549044349401357429497310181869231654353069997684135042625457428818329705458388900821424212583704997605103927677868497683466135634552784995203471927425668122260943546235018941056021461812279502359615921544486748202409227594899678954344958021007892022655932660181417348053861857810371397660048474738552400702629957980082493608316650406642299963000584110879696634898595792040466368499421206894347145886588001884513633986921615595856277947845083851842268322187219438150058198975039243495980416087612483358458327291987927841447061016808422425351737515277928308255530369728982646956852835667125233722968596628461633118294265664870966795589474177747766543713809049633714069016264493713208513966919789944619555595118026918080545735312869164404303768190854058155306317970242017134531651721439256623025657358121667600299456330422637620607810868811066868414484039100247649685981416403615821125100598697833858300909359889197381822587942049562281295109441994784705198446081778900482107699407757350564371296795749340309142345078268440149967006168993440684908754849000000010067456580406527983990100430615429727897827210959220784407555505376739471774915556360780322276858060827421709256702032638019145615265953795857648802247473083651811288140245193507940221681051566349206974806991547439249232273414518587018362072767068979125149079837492959992067481761280967124442601145507493419391695989314294066880953092108101198272947383604396926633854060488055315990303044463075937190622461616488381399457577135470932666271059536705519801367357278556009406102794966725393084173880913838585786171960324675488656991499341684784773575995335991904169415146575633239079276740621481811862383975574438571516458419612441601590533791727109486448155246600256523304051315386913352832827498673802671320504518021000555955065580617960369371089258689448108250134602498346002496590699535643823302104671800584872402861832651436339283949123067632139622613401414486539680744840602918735276047970688867345334367007823628742854641031510588006619965982906761808744298131870750964798853065851478135359201624900480184465322131508970997292353913659515861614851656638878488110964817771344500509172248774263475253714599506391117191246253685944525257142349764235670951180175081736519370677866772303393778219984058836042143294150051376641525358713054636696058948847295527621913288184424159471180558966015571631190064370741320963265759174835609142034423539218518045364341494870134860025560860370182593599324116529664008075350168386365872202296461575355866886828738013715339484792632203184225215743551432401273674792077238543913922956863671944307151947095118885892556693758691596189706803825441435906773196621803832355020484780058999879991463162506029769806200497871403769388314002588995652919254112906873596790591547305382524464695199437115544174446650704911411382189467289704294996379625089272306932685541844635693309934228818000798761547346067472118375165066454143071774026815321966145146687699109187965760196493211044813746297572339810292243263221801513315061505957850698704328612615701360166413202872442054282970443332646586049575117645506888626920584575125837189778439019128247482801628094923219873039672467114669485354598695240417088896144162023497170506625525477186511552458032806832442530487470761645279702007421037259431828551683051358843376809649011981216998299016644555662497745786495784867976741006054386943077745876508225173307900539162779990712011632899528463988574849103262455406015097429728533148667272627785095830548024789189832985109806052780164653185296684089655835614697140427049631987641215382616659959334976203757239241144528212432540781156781753905094398486372157139593948494507544798084784907266544254919580429877845060344824634835636032557691852236345555171093603232404024763837098610238014414209762026722185554744133848997531891669629843917383144519467751446780211406966441459555445983697791403002012688068673788189294081919375402068164180382977395438823748090528721552951967842326844686469606717815919644095574474154814889626314730294270522427591841695735534322140764393707700099889150869376127518568265877740877909905829303455876563067483241797353743072179700859302421150270775781053347339702392164032934292670844045189230050635281011410208542970947715112656418927927831096746318079913775808632165957506924957503251632419782690012516901883850926726516127477687737450897655121966315499380476179717731223210399025658899582361995189181338891642496357647947142924228533036509775931239311248081411484549252107983555760498261431342595314745121098658629765566145724722568250872434710390185713975692056579116161021036286892738310258777692857338831300364600098717668712886291713082080465584362231564917036564666236992677536173991424063055966605282105140766587079427361489289351035281684207785964292241895587392440428914656196594371963717648144354487086238366825270090100339297979134570364094174287798779836914003065114186617980870263181190799486929071912295057297517419832468703423341726802568110702424301995336735099579700361595362639846926738955115016291825895145326483485820962909111421998989316561417017524116196682931049412087104902524117696729931271724759571679306087367307715111813587957276058539748529824578696086973732731509575151827718566706944588074524365536990998372759651223725886729692733709630141077488295640156074760629474473811276789003470627086774067405725313574498306281103230220338074705967139826277065459501955614974160030694644513878598928136211102261854276932028505890831031411463837744253639989268076912270388180971685691564190712444379896664849215980350570959205197995422436660261459393451434986353781999052957574458095544909962977771579445552475883565512829388987077659815358276506721020542281698789301071992699634267396358662605990231076720044185709213250859385737515464946905331592359894548198956335896786451858754997370344183951167557992814950004555191287509700305801872539498421200277785146183634381648427402580523460346779032931029275170184589584465773788221963880876317951414894293374059380848338191429666830912555646658232728335163118561848780732263836332140766898601736078459637893283997455124326779352988983489197846860725558740793323730941402984275490200761708732750545039429196704983031120576037006500466788606065175266104181456816377983156985373286841612292158675792930076992133987242119754544574224559280589365004175738371157542828796405854332718107272617549140993187103891377407348182950523595241866826504434985567799147656106324836799290302503427475126573102808443810824264784179765988596612303069703773396097318232603378480600354712729482275145650485279234461422401522025720480494869530588474500683439064717182151259155304032969704594792190312572368806297086246566732083525111384323452732833144312877602766944370108340279303579212867884399798772610132183816641548124309727857789456985906044350661614626229522062579177450026541698283910913167048778934152003455711354570032798622989972933411653094844167427870852051450371552489333232286954072710379801935264970120703550368539741230262587861940672381846829944492480144349340376994008213112043590296073994708022524070098154761577175032350545187633026598413925946992984539413703655191375988690458802045931859471576278959211463631564757649812008766632989150662682924385516229733328168354485700590547207738734311968812174117715683858360883893823330238916125563171014214307582306979910951900203312364527803474416798093938251593452082831962057657345051448789139461605562111843052808400163473940883234681025057442928266356293394029568958779963769595316462024585645706216619829445726757116309038072328969430898973497957183240887764534537936324526843872015445523230940812886817636055191462386360673098371975163188171925760278916763759838468216461185490316613814065790212580766678949082646003806236242577047926052487878034151984475051229273033300252602943958959686051156150391849881394746219940578067654397150062984522469045186295554778461615358497178349510708379868852683100448770992661434581271363592897326254634178203126594065709831803180768641944009951064940960894820389254712786649163523139166110002378746939208182259093875899485271156820138648416061423866838941674814943614020986121703241719823931936002922209119745954780591386312121946084290897068679585690200385369987961175807184535620241953329657116070600328999239072475347914913474188242039182396932408641963841392354528373741857834456675264395292967115685331533370643684313252245683114592523138213291513973620567822702234579000877417622796342762511922268166366442720422089770255981935656924968066725857455724320993074062453035163916363077343762302704257746692329079581704419766351462371006893698192964825627033496732822293775510803096035861041311413465412035319343424856492448863688905560194880973047557273197764797927199768355668590785329795563153060342618864042062726227558917565921910278051498445808567983061970040384092498707571857452419333894041215933448915504344143689185509002197581878669947832857938456756642875301948836489657210086899587618850795723981459120845055560802822019539385633789326334552200750293475818481002437829064544537277150754315732236596283042939583475047959917182890971778323165141236111245741559663242513758952366787457017245479969320507610899847207363889186254073643770582627190672043495758530683816721870515298814586764493262208746245654716478722082301720692141517302959340527460159038754898611150543644984509335052431570287875524782195699627973860148153052504183796205994156510958337648230363825405491461150661981328605538038525439682848143245731867620753490722348286710362127928777156750825238210711650812741368992504994221204491703539690949419398234790465140074743822480419530190802024682382564842752128364198450062442857752369812857047335472867541661205577821021714329869362008853723496667193108170023307033886312475460980687964391349924499002220564410646841599215274289951954117283965259757505832149956327880550332681969558729067049840490778796430419997230313665930559148309925525643106831372722767527876093313855996364433789626114882985374183030184904639223637456710026724698645811814697760773265714313208498437628944582954034387371002188708806629875771841255031881793999623018317589548798849172678675597418835671668669620865796891491556281405812561971335481643890155440750764163012464285664679084518824872296525595502799684554181081818920132426002310238258863776660404259581621530152813418099192810076120301910675921254840109728490324244611098243233062459019734859731803444291012539329357427161410506946476311987668837491284186323622994784353777902826333540341611579214097783936438410515205942254574500015888845914467052806637931926337008805465864958412899289930791267887172482868630404043991417700985105998765706176695622364086969758758927828592751131724233786228189042442091484760309105809856206675907269779959928639320403298478860944378081450537981929748396201236316212828342379365682776557111020263162910356661203798855319609324159625053228888175668153271666243149036546017993893419066821550296585950647901671835274639018641730655211671582259760934893857610192301560813497030108396372082394080980280961428086479167122986985568067420267299729031309622791829051477116153937607086283883225270112666729897474650133062366335506949508034985841118772649209315795596570133856351726708292659477115584770719401466593453102659362148316028268847766975879230272646985285513318382787901534013869958073905003941072642640579551163873104432726778606726795329974474926203016372516176560843514670262694963955378521102761129142672168649642442818782546866850996720067199905388591330662305323327390034774250479327497336299087893862275009196587448965739820641333642577044507565021725762688096522412278828411305532023994721031260421560010918035056385663822466498514672602914488398827883320257192968344867851338717851038321464109831644769837025839834201958233001159955402490257969726452613340796857468514847704123962072491750548115438600379895001424072210348962700219639564838107518354611758562137229710659100507085128297261824501341981298509464024281864478671253477456278225773604121358144965311429872460070409914970821470622057746221870142812559034014899878737918378581953957005909224380506558072264976540680412357203842888587132611554346240270645799698811015175455925395460401017429900963578924276158427721055683443849541955185726260642067274701839474869814523404141421653880684120276135891557496170572371846507906769579701387634531733206201110270163805077446124450699128062309527016056715438629115192474257408353265983208490124096676940795790547060850366310253964820214851281471218658759828540901256397487732039655782075257165037140275092773124011805877190324797407829248403453427254933536728463281603717790479790208007587665291791688757752939895409397209747925897097413164984516046985154062562138812564106135811329335812510220812986735219494076083369041793115632187946424622668491121066521423514955116183486969100729530180359294883200974409160485852518124221488304603881088184435909726248621332801946100066565201667804180214927749930661658082524986391952564891339794385205692644343728282161183453760477745155255340318446796324101867669053024445824059330106239641748823936532630256743031650048027588730784039399560438158750433350541902707509570859485193207814379171582079156683484150700097139832584691382462625731001834801589459091786082505976864862734676281281624602392395148209405277468042677122550523910502451633737743133333567388752132641517318339944735127625842117572528752622362980879329841848692131534792384813616808461785054713331342751459928051739519236497362373826092235573190118521379674909581827871353228302288330269638522229420300794503614905048254969590452404394114972120668225225773716723033766952450149309601830262297897482947093319564533594108965262653282172671992832826076571421109841297044810618497889948196488308185826797732485070226550952747526506308122196316516555239092432535508487942347653126186793288259578708422496663682029611481148980218399261275740853443802154375687960272704702278337438412603921285032067557793502429626846605977174629729338787895943070450589907538793469745163691528746143665406395680074145071104520452930517505723393761082985829749369300352744041712471077071825984606338787789018961864301907221541929182658261545477068718799986355995537058140453653180278158719324500447058369706617719089468370141414619997220875350991952154803713474217863730842285204679285972655174501318060087243848124405611481085930999722558504800073898447205843038695478162396259367018387521217703236685576216640981056796859586641372139454091858552460733317995723212190953480462922644961984344641889789023558375265773237849052914723616816333554954704954683670731480236328914884824234901589576634642351503309258131608308174001871988900654958486153642390921276523791970331900149378304161410734929790823766118407549776256275012980381473701386792599002162265942955274673490278085046850966639354618388636780629746632776282941666256524910222856205085797498185324965168327800720658954064887786416241028594949174978229568097721015010125938701631210156362047493896466954794106143549170282511314961708823225459029553446681516143066535556772383760567329867110630962835228981317629110716829398206819584503802283198543661215898864322011590797138832719417180895113046543945900258858902499628404043800803455340485557264065728458123325968195566488397847382512893959245800512082786134802670112477699172931734610073004896915356543345465065724696178280750785424688503504211596713348809356604624998104439614420903376621219940344467974777078922468732089923850521786425044297042115466199361764392013735707726934050884110550388654748838873774062055381632208884770393036014646116618740534681204110813480737498630434852958848793674392371365789250736765253883390297083356732109707045297388251046885583308068256855489735961264115616285403816595984880274149789628103612287670550725890153771937722620377234997399100957914490821289375441673801671472793389884139612751602850688501707910231370135188015177724400713683012713409920503715124894610349411043810642574457252018390238163699831247989547580097975058682161875652232655533027681699455305503480965022246176017478213006073828616168251223141389962062041355394131380661972530272038007910525742482487304204057930360086871415222511851196720815178258803505176516130858319758683144426678718997664227572606899653943918465951060365858701970164991544039892425793624033527988458906062361857369320862433349985184725706631694379294650741877121110604217227852135962124344816792854355278337278198083713512409206526928418637123576997526385378151446160960838247194581663658589372795395268924342674689854156961248402388077902022971560841262293671054703663530158042992112797351990577126453750980868213024287993570608211476294865736070777263437849390786354690589067713098793307010835328182760204088054241859992493784625585042983674211700073465492878970179003758063586132116527571410872559623002357069649838276378419304719481002743221811687145189196753627816246537566809707224979930495121477094779606886892397489809904698214254225755006419043551817112066203361774176789700031670901031300407308241722098482594190238238986264407741783829986451944003108834573473230434154502627274498935783965498370177818464137925753130012204157647020875263452428535492913359548218553357447652119162964214664196801147346760530790209674767556890419866023197580338359030507776084549492348679751700577784731832888457462492322741294549661749385821452183720571718360546626885713862616575587593448466771625168225257721411516082024380977163758806805636819494327601184399896476295460182989244502826927495924836894693566088153757046336123479723764469869669903329050405433767642855019570573013409713015266334456611385715536980626502099996777822254820702690777880965726379497917680257572617664624609083912161424530736538520359509569642599234038356983759495090190641483718646984030608190094558269169660682559719267611610561980930484978231935560814686818686122657441411164097568570746607389562971377054847710852145825860720130595210683952805726464694533962327906779960273809823811832297595436400217931181981129745886438539086811268919579302826447019791822184960045492221692465533977899935133631528310711557436354948967989149824437107605761831528870354500164030326691730738420716607004587729920967665867421394944356881985953798171619564419262290838827352992518549667248662717150438569805636218253408201402756469281845040012835237112817796526675457360362202948000953137474021449949741383571406193124535576051410509018818215078859829941945438409140576803612567081105769398505816719184570941301608841573316721000492705232475137304903162228691984982463760845104571474975925106303953917201870308764656050650752278299939990502111243533787256594983076043764522988485572723203366566578399207148308621891480771164809979706921906773598918424610769911819010722065765555992212034447115826102931104998466870482671826368530350677244069477027677533694586167105226754703399229145580175069923368714440881313302662114390425344762363936264819560940304387576528996503117043907027607343685076199618080686397012429381691589982494466895141838935668809671018914217584064367327138774875385393048006547317792225799657250471445409275375327537228234543792429983025084014253299034584939773607424620268180608568110065999747136879912701873771598731204079066665544936348768441010628936213998190699410009446012139089417978314989178587715051376964006066905449319327664758682418501006463726037958139447090604913412722036172375985644869477875228640626396076852481748297152480618760164596109122534734272300292875429451087422696589058603335817989511768714434381477146777346743265838070163314241290320523807513051101252453795546876112799680112440413033285751364476648041302106237803712500613732460568377475057422654373500330999989408570503001476375477051699521597394792519835855530501157165973917290714452397793226370829471016766428025981124141276316459962925019717342541890384971398636002786192521825716713314380144808812451624795500256472076900310792990868720480212305076869504460855634959235311261108934506479591875347912115473687388933842488232679452716173214896878015116308336365278629690123607433931220210857239536624232732154742297798826815706128379050505978756176721292918258693695829610796909140528546089733979261128809186868590670483703042325206589358042921189075052637965038546666662639587127942928472095920096924272948921478048800190382334403939229240966237967341291519365818336140800996526163214920079450675882608111629608178211390373676813856067479230518719624313212473582216716130841042991206893862774763948130208442694004774859111952714237877173122420323268513423300712155403108319136422659971962732918326547667539187571424891629625307792943574169515313085247598273898152837527839434278672319319476060396603742240854590941967061096555382760062343773525875549236679485933984474986137671918611579779823012770957528682318638652324570429037589364354685466937287449111514354156024296952074105190541536178896660855352516020515325972709052217991828288858253647066516417404024509161499098316709752730513145237412531870842212917461154509750471554259860748108406019004429995204509905665304835679259765436579798064797954742689090141754766983064430691546663132786376785609918393189943138141076081117555057925224057034243040435233486021641415222703056092211811219913985103892569429692668063860567251163066192079402822410827510643358485409505396006211307574067828869136490846389471595383578247971987527429128861844659330249937355495821820665682549364405127841330084835386263968916842700103357188141147675125641828900318736071206449365679475306877458193680132979108358088468691777569836305829878180440037162395294499149724058402945504821218209423080562978008228266915579435485258538928344461103707589068175245405935605239857763188407964555411721801038035857971897145447594266183969012658425138677305756383507224817242012456945654546902657419058526813101985416713146068372533054234025400979555362222815382557791608324802366493025451717427333133578362623416487155267776767188374757388640450616708480470182938414101826106565161378386582841286204522411372099754376295433260272124882866698219011986719974516969315879087974076680362289956517999913113879919898256380399670933548478359153665694317737475237112146518835962428349252113207184262843816394829847464894006057529716226477188886963078941816121409455396689817661022760781532165618274600922765657027001661457202470248337297053271647465248980830032379066182508776196520959810772602480705593694163397852690198534848959774138876220395683110007685340634997711585935811559458244899293299886590862079615272174871930883513847690086992339708953573598523317020056319399014916374680916774281271172849613052214416759120569486246999449671548622441546653029174883807183415752416721418019790967150429608036298154931102802940860401692909539614041115724600205547846687871783700491708903819966684217207165150262713874884765275112584546721285731040008349433707731438374802175993507542358387011159454086017092072624777520536589894074290589045258913338716543003464019449060443862580006378336316830086749771115625521210581422803600508872321203416669523203261396203171564657964350419890159905081736946889551773358282983743086723137563888861733041638263064778814331258118258152645039125702613802419388176257690268976032330474018944132516597175932874304532031975325506351393676579092170995942851005017241111019040649004886870422983430142451933753902877414127667742825480118555325098824693162680329527601942559114634931987249618756095509713299118453782461524821716889627530703085193438865761564687496854713947277863351534617885825941862908828860610724588753718842096423021767019440977867993286657277318884982440884890533788589972554402013781484984751038586858528503610891022848930338745081077855580025986785825433932670320628989857978236354695338835389416142776566953639722036039022813768775771400116025549815553268967903765001172442961868600265512816600261894432463919576783257007115433866065641110281798049122878312220612427230005117061052625231074683147714988449908204602158907097161253276361780358583466604248979956198169724105271799688190315497299417591229435245026760038040922892144035899223187885997779458741702790006766282263231138719859959494909724123470419823937717863425147792080210087652890417810407863684495630134464997306396008627333203546761717398695389554951722590864486468359210547545466399621825496614055182470324160684388992591243305526796628549338745116927686605322250751600082085167118172531068418771502009707728660657432701974486588693763598030644338614130079734282848388884296445817365981615345883054044927027539057538416943815197201680875161924405955332866701510277862935314175082994460332759130096295388181374441647806792170009972407582551533369981123254549384676195079691642446300977571684176537955870384895395412385883320792450774343210619241196022783327688370376862271525401779077404108076211410174794364816814609669087620920306301268802773088084366958021589761547501810467585616115160497419258317202120804125660694053491932722135199395850872330722056688638124394806344672489282853084243145565208049657076364526561512327098194605505952918895029223115842492723028333613926225754322378402660010205467353334464683184518149347589420208583156633229969328424177135607714545476481450094195447997455933452440762289503198723201747171463576283394794840571310519968358497456346546708867982965286073742363112241254085166032876307532445979285535468161851337509343511868552953535694713880631863677816795233023525029727910666967556113793114506202600731773624932765546474842195381165472242667179424217725731401512973777496487591001021841004927304521562859782801883205486978639443983574470153474788243366579955576269591799747383073948746221023819006125762939494042450878416047285359140580268228980120720387763884576980519460866725812009804501563766417821684302177749178241206588389233731904410716242982748269943896678371252152977969215546108155457996160664637857782616000331150818343863822818561713246002863149742116378701341651840515404543047992526917718996648703872088783810895956310040764873433039558491922318608417735418417622971429367800076614768617131910533930773585160663885361715286060306117633769730340886392763724537860017864354374229935777042023511610021439739409159628550535435587365658021492465349412236161203772131826062595392316815178412968130386383426630331513749106849135848208279144556545753034649132514642970283926877934037147746125191838013481637012151232923547560206368110262532210955525599326687922624037380557221702744722067947520195581093221817627861346990311309434415509236547199389466343975881067033418785393487285736244710033216703909769940734776910070539928248569776769580672431411270475928228834148211830146795257041148229129046219930781404392774434141222844939969093386651258088584580812139427192833469679088659287751547068203114897833318349636115210180686683058645089561305968027890692098839093330590337037090196501123316545503635822005366684871861883603021279194885340632338689790449512179153707441238544136917358391487071522525471462224476567332366475151483948085117782142984011871701270835061266611204785273953553599772652118179525122557126809072882892318900538491399866836896834061132845347353163036877999928525737929926259962547099075809764417704047907843348733323973995971117459998190740827179874299559288299389132451821331247822346823246454952172479363274394075331543299542690691495570187156798905974141437962280851400790820544839608621903525888799207658021899371228249825799228283622800745644053553101854640677464518935877272218154608691746043173410541893303210518497987402215668398103327561390161397295053573554766659305678996221776094407478503310793248641214343765602127308267757620041215476741247298214592742980600606452746948783639856818082201865690003106074749622711994817428518524623675696502277680251842057264292159969336079032120577361650065264978516307600424286208401797970004871798213645899034894283376646822052275266843800485492190297240931299447802806316780141099371935846887575614531862845957307655326467059604349402874605913270770045814654996269599578574461406874665838147130732804203287803943236240876595549951819737839834214589856688185663443956408828998763222441992182193843602116742224325847269841695800755940865677912284633619717864825110895751697234592880082796197650213568273546917910390133261651393237437051588937649376784913097642125328609401008478217996821603584527495598740864611671837505540329498152633655208787391121171482903004861811256157755100573103942367978138655934425032402180454827604255332423786423989161849817649334290556403077933242366193907300875364054757534889573957642012231897344524735022058353488714406633604114197262623643203606323529235007807914236817269214527454286274747077926362624252954025722046774676515553264504512510980156702799165057868776444730255327144867025031507071998708233907343844111759416139249134697637502194778687482459161083956342573216353382305579004430650581854547311406233888221506158221345043067434022493857803284562803415776419555753554407568201281317343926992477506059852329200557431325457745986982900473481744989253098334993772760460001527543849355344587542667169386991104776142420336582345362419764464778134961168080227777419030001594074601353127459118711896829408286475518945153358330260709996994097041022788675134997457215755642306312971495933478393352282200482059364192071246279422143506343278237363432476554837867141796472157469490490537549265940951290195441025675496737118480174833992975324360050950597901665378638227433420614778143492283608307837314819791007642426762406498428145861532094465437459514254124694378748738098066508871944177240853014114425716365212741068603677838165643875756799428627795310927907135438676330877816590902232925482633768050832055882874695155309613325854319881985092772006992771147877831172427276985025073741846016327558953452061626086657498025795078043831531941675499261285149250008715708237001302678908383046438656086875292892978491118009885424782325498784520699589245856612577632408669144099119625565631975705039432213983476831640451390649359242316614326522030588046454477360051502904331006376542127324913059833670425864739327200211066594988920352582419646954701301556452996454667459621145075397579406685886481198819191987801918193489345844151487680812780820746686147324340639509911577442291112335035740639788191656195495559588962928296867365941429802891322270603857378841357133554243491273822329155515868942235830887594333340238103314839979923652678063814075685988097251419990622112245932115398956595043524445474213113980128190238102492280697221465412834585200387759832513257642472534871266019246383497549632813541926206616903484996661186349210939533524303095739874748917977445704763970361409363263975628263083301617350787063012418017841963168601206427388564662118490063986591966478339553849292810145956951122437515507287175131465328552806427556379291282013128605715729231497853199458341018189060252714876344124946295052956889193630836260233585369357176069031853113192357941952405968129354186340118778380345380318342152529705130895642573060741035028625706080794176662977009837821786182971315074518803264031063334951790233995705928233846264628866469517867285823641223480488278371149877101648009181713888102189514527971905932870436297571396747540262549508254173488994004082273007766552886276254134758970111748576371403122292145870014606578236049930497342391427147553354959839281628731286029836519588516542942920863349206500032976045229397355061947489959388566009113308344392645345467123412986957656576575122474400361952865424399790514655787400031306623291431056893178082928887545628507293798746514249895819537681643388537736079274226082228526364530628261421678455217162720278128453081242054130309115902649012796270879886266079149769168544315699520472533185776986488480351776031686545057743388159080366601947236973924204939017387345445998309584124950941670046286776135462334266547707208207391581429496735632089345179368837645387845143906472766955042733440180579497276427709359036855271329915949634593205217142950318099762956194003374303869249670294908270428394990689537381187989243771832476607207015906491622605257498186391553763673607143496326480184066883449524366537536536699794850794828019928382393164378748264367289993304624798084479452291775340074126155151678050213321207167635799352070820625106312093909792253182071980314255484617223557090560229514359354675979886675950270000122474149016232514639372585982366758345601606991591129559248107503777212654211310786413494662746305867256755367579363615938412630459433261978860890457866928577402380802703874298521362437793406447508418945563453531136063272691553844572265996586981045191248166842365360901984183276864713509471458855777857943688535112415010323036772763204090600176162850514161019861717699665720468875828631121374432729241170117140916049367546511190735276473812191271120760321275297280311181256081117810541909603525264181670568381548338697080944182088896215531963239911506514223950985747546678873652248386022288463221407253836367119859501303134226879800093093062488709728422052159649123534498507794594432701563033954210280121100307141450400517948706876208159461835114996161694698891562458661419752178850481593482187598284393837974102986506601059471540862058042835442597904017734378613394374569034585785811551510117705517301318642034049468093705979095956422354394766105161354924669571549831450977162682573734973207538272302708595318112001670702020164661058632684253781192130131252691985793423885633907611189942653363455964269942044102719642536429702141822777075891389402709883271402452439677017742369102015958192340163193241297958350201849621540973589812195858157256263809767437844387593882869205616225507221667205901707151007519238533131564371144872498467264295263981737114976951454964559980267405444597338721976903124293273160328647044148400261529401017481484377105898529511106687407166011801181598528017756695631376156134326739803542283665087459905145403838546603297949469902710569294713028343346691840935341077162897359783084371785156248795799285474205545480204390954671268618098986075869685922520505218181958165294113348616531140396765904621198281214029718726523106956556101617370219379374860551629537048088154324386579551810470574907559935485194821383093856312799961191942956619969817863283298334124799018841452699246979674521496420621947908814433279987792004747645484376126455853091854691531683242604746441025788238453191546133982442832655268925535815619068388239162643334531280069275663370243927044941647419766602480292875255052996869350566829768869398744682655764373389761871065741233899251867553231205707873313764602171564345752011774465677149562078510020381293492250459036187871663790671633401150580290413383196498139118001449366344811272706953041842597601165677002542386846414034993522488711001004208479003958831559928932025658718493758771454375346312171322502736730327077356736568422090009854742086296797091181739908838412114839063526268296189843786421612937325072977527622167383785883443850990991889669037085810321366053807406705510444631902884634337434628684723544182202615918807219915651296500517011149935698176006755809763922513299139486235124596526059658366861026364472812997736048811581444791380326880380392352752631476257907697372092484161392528181939370121994085065553597594399969391861081358281781493455749453381683016577638309005958957393693829236036555730856412619959449730538604825581269126324319298329140452628299975009476455811527618552679041905071268486096605217214317707771020485589434838878189251255587192075569162964447182356130081320373715302258945587998534636403218082115123271497511193905388052927200683352849180822398489333909560642394509247761496599998222322154775214331436263090272686199463008300964107931840291189012502036380246876335332492407695049147018056897731972487149290446790272611168077962706652210291052919915374515189919691907798748633548748533410316173336076875700686731704591823160662919427344171004720347839155482096832057946650245135307504111034778105330060826843016767351858698392046236597010161186478469079987149204236121357036026911376838892413434279888862834081552946433564050205690919203082169725552851037891821272123339969893294503563154669211807229409120493001292943521473311994585333495444840063765534469946310753086471266931991944693162121324734730082378714303428099622798119782217571994838580745533109296161263006627441292202882724286552739695712384752473397592805879644516306715340460648811326970468333334935134298846729167911924615411177405628017756090703907707620966434800930072558294631444247126383546901551032525551850206585712390019401687895936461388915988030577647213826272166521822517396010638948537852679333881775086814289712275847455042842072309430573951274265623739751369065158972402113146860490134980539371362184875913560509306082011893169211077904434361142203968983696990539039490500935911117217422736745497824807652259965705229824994608933045821889499832063712313535055977249948066561801263157137505021113755852324480275647399916117528119505066225124210424228458634488049695088635230474391174970197888903637728967530609031201941933560901715845040528553035959424358009087708099800801114389741214384488675513891135997689923108970903126598997291757977702298444467250021298130905678705351739190276391375341631697671177064837254828048781393556354297850245337225385095116247159146431210706274791603609354809140792960350938834978326143622572356682107645612958115888681909445579870345665369812119708889019917746407153778071969496704440916967584567077087184635238606882421352078404437237373244696911059935522580202875743743732904582177401154785299813676210609170413648619554646430903900524403146528931213266099437941122533318826768362451263597596125108237429022697508203563295670862392696373953067225047943740903283903770934649301097103854720219932050069281565571879781727346561953463563954632225917317274698593196185870899014634907260964555132188492931667624127221270206278386037154731805487980186438380511551642284281265943751060288609606596534420241313124396594740294133860229220573384260000572826898631958753808724200838518264216508664510866559640539635178848593789636937947806946519185936025934383712325735583499839806743918112637144374978258876996488731839413828852564086197955862301382988952439963033934334385948541993689164881064961941264024209686650776830482872099103064884537132104544428276210279881965043255084412849691871597195583277889454871213542071831391847439295870289960344715591319886513750422828143703420939406934514513501847558780149296092330814856894100246962107495551029158652929250029000239281006984246561009888185536951839843187568092909884829865388962192829703185701348729674654634700159739339224186256830739596406806099606051846191163069706209516632537831678445172852617849412708810312838566580137539239441445052334276507725234293892857065713828994295329056084252362434665237555009442502792618894576837438918135732051471637210107899794847073138464552344246177010218207384055888280927566491238812472524524428823808171068349299343485203395840536455757734271924170647272534509593560440753640920798060033648496473982900428904406931870990659147745491328649327830883524212511705257390277188126117641341913220807587877066997847245788861398505635196654748582275631108256743853319582259617708941213140808193257690791027669790751161525498409967934297813681684679940832386483634818087091855460857942126769900787970137403495218040900274766887594232972025383084051711066777992808153109192870487515714248046546916269260307156152406112377233506202170317691725443556936637082486710843062586668126403607604186915358300522345547938311940787711748406227723373290196779583856775578188621545674670909685513188908585661885493503318263428512455506251553553863308831721449921606945447911442535118534080091853835839722221832434627084492597559737301120786360638739012416739171541226533653778039160594565668723564379551365151515564582254543990286294772156680479166787692234776554096116993074583821932680847151753554238902378413405268692337913901532455155833495561914257226678971244121288859901247361987167409717547972052549510110913315069248520910134564434796249971248340348612236364815223393309399889070445367386142853194254856823750623545469648490820440963535145181364612011227955868261865372017578302535606677736624185564026541814464569347765615130706433637692350382425546129730372465594205597952331999091846810921332231717065654286238343819814248107807045265307694713083832713220093245931749189083741661790936021276162304986862045200389754696065435849344075117268905462025684799147471517133420457836874329923017234049856871408342658937741641251874757960415348788439881855493729780605032321835800010644384454757656901650434574720234492041044337628232674951508714101804797326923530260081945553316282609364176445509227632828758737149980421165961787403665468379191708597615733152369141689194213651132176962207072605100824719798716788677943651297943437647561951084318871280490959638893297835087036216778490758101396680194313103348778325216082447312716542039779657647153124875453059018050966640500900142421208220102622526729934184052418174942143792669447460105784981148358351893632040794325311495618627356900994152566605050882083536729672738197434150263765466928591226603827712788133326039154489874471716199772946971022055400009589380285610450317837389441918309486871470137958519576265797728784573864409459633396472993875338213677937692637798651787053552563096834951231501151839182747705913441148777633409115460630799107820624602501675018633894229798470414720566799425953066298843048984919614798036172611251134393559777931788995242171493060607216406861019950592517340320181514697248143338253817601849014485003238255117221814611143858293952949911970046976808696409391435676615242894934964734162696021740248213984585060718675542711953809718874765559374296566255230388171976793073042896935414851266539337325803930011338234860259162597504412771666324263706915528035047115220440319870797437303386903121732105678868003196617386172672922094817101986195070970473890305779861982841161208047059702593055025377629389832925026631490048476340740257498867923392974024399503622884359967084299882966134080076267782377293882524159905914684524614388183610345243679016536409191912594818414429907033211933995770234504938055185586076551064704489324728340552174183605780499808681016469684411052680845216501349977235454259020209798355005484614826200526250870928369184115642059439024798746832940331512807105691112598767561885117170634850676919136652073289623529213922516243084730237388524239546369668143603897087236838712472892465008634308455319138897238047920994590775432839682099089719606410379301291615811987898336757205468637603994631445506682754834140837142494191705087881351312906384517576672733684222252677844378885340739272517113914137288369148255624290944333511303782238418110661583115752033376086553350811624440703315133675860284062944742904517393572225207284442904258181265590003701043742668219088473704621752603589689322628029151209004386266019295022981847031615638589402434262397816547458434423427025776041350434635954116920570534922722161476053223435476519927547331246805787323243171708649010692787130253365493337828489206585085221662419006916050488058918122434227111685542674026158024140779981349060776199666174097637740921983646329275085148044187018300239708354734168897454800633129001440434113584542283066908990975414023136733794359869554213539319103482739240190416379242262251523432559128064376489484001405379554291424689223762088315054436492603599333394827126472584101151123781868811504568012639508106358638409034764543346687611008111392652642788119818007187103295399810032791168147808887623983100270187430778021008059283196348806430642011624054705871372785853088865589141747423436365858374666552180867501853554795470500477150788059094402552173283589465084810724015320266892309771060068355861975550676540823055187783071197950651167663400514759752541965575571722680525785877731913879848394118067375780908923832832292955584599154463023296284345831484808990540366770081227151341829826946323119407414453918726233602124544548424513192861950826383476412841447601324938706976743455291089330413289763135153812190210914916543880575875549538366329442371326178758576313145038078893507277330843055855113742388294321234367818014669244447215731895920273152787489849398471394056420887475947047982489499716116073846170640218535106178131513527753289036633341930094829388635847121367638355717602829409645217884060267299458511793479706267290028879154858392714237457930020230401556584208216376907165869497488509328527006192695412579498135587295561871858269933681124115788853136591518757759690272193139114757689519320307343026786975334242003150486068173620853082557660537099312816778012713617655590081370055571051097347634873966584411443424529956867380021260544166098596274387362700287459619381911796415618053706916535408253307914485415054922965067112547131162480937227405876937738372974448049699364577112933862371776035716857403477703188748333517400397408458275114797433939250304814077903971777687833100401626092538710106299622652217384054375460255698646090674870269836761620149453527483260307248836187098342879799339679842273541589940001539373602810224506570261975240163561571850926937637061295779073002358518096214755724033324942357359665765282016021206300577058643722981261922732314364900054218139672843223166267050478049241743103584459536825744052677502508769618388708737380252517335143815908702038686125765049985581029868555868196346131769437385099765824343923155725909139519997387008282475347353362897878227807983887883701367754100833678905384022231756996923029345592711988004937398306166736120546633163021579887602222778859762307443860677694223369306087885185917267355515077903027326301638229512387091127881996843968464474777935987301021340201237498050833086084478568572566215312968995982322753828724843017263310119987849038123494162911798853542387124094787709214483377205266618068174124173973264831708006413079281600536448399719603196770021851604525259651224005624628905166698885550078200256825538343571044286291660435976894698467898278854175168842276540809857415671962878749431396972054642682585498752615567719383930300822539361640419975256203471951077650343079227140492670279836590114695717595033002429665592806423254242945268546943947955230833447969288233435572946419598962415145709044815038007044573345405639196290231235647538708342955895763215081800562899572824920062295308986539652024865905491099389188902798236339451539950260286855714204949802527705423614180204478530309352360397083704882382173186554706939388075508766253533555542440530206783647852377848280183768127277764450257161484908604908036944657370525950074058100053414953908821106746808462405352716800076054099018151462609952193690053424962960037882934552805363147671385443677625679552434273208007239966712509412519597867490402919166817784114231139662686666914261998242959547662318748379978747534431083848848480149326079427876499618166353907683889217644393403662567943308473498230811965225449774522343670837283077833092517095807297323945366353512317611855089260094496591945905135547870914951924122148076293583860576968578301217617267206090080865875635554599089022559433575010981379625585797509233484220064877051827427776232876029908057759122141910816755474369369059846325547768813892625857932708830601823148127490752680681209490616945201088668352397526513077051800916322635551613086475254918317116205935485804620969441882312911603670519988520785557614906461110949637165154439991923199343408618552081811876054303791973308848215185007911859405856813265569079164003635227153750440677871227060177199756191781480886127873935234483155274790830539911634750148365343935631729355206288358966407880330734528411871129776711734363901947281206887491933123114354798271803597953195976162209927760148250528118387235837835530571973304048974322341925383281079546188734429826583161535876591035568315199640978638574582750660137718055806713891078364060518817301694052342517309416248553076398282322734288658629102903555325366415227173516031924491950965452979617696262505032691756854242166600857877341821841910032977318157569240250630828072782703248385805590801864162303163931064265221847573507487573864383788916125576367874471510898984949613489687832859002237538202251933673544923820503276396196654198312431732035363531702552482067544794669961214090040161803797823815964395389469132357393558789392963818571349842594206928870636850700372288845262291210380271896810661825499857780259750366253475532071898496440935090075925115272869780543532886230810022252502949609049865984690542932150132250002103067728001233055699103990897422332461163030640300048267323464362609883051047869969990081909547927654309860860202907532544139895496045332391169959506776789162566480873302351616421021029678403606318543119833809142838798227825168892311189825568714601443757312346211519083713828913305238549507519779177710186729124349564398153435625114851424710743776083022822934548607180610117986129804456191162191031013264651018116753205965916069808318568519064067204460136136621533231071499812680077789869312065063213065222012819424698243232016896829188708233078582636050726714736435635153573862511299872281108764471579681162583347060146049078506509072812823375088304267399852223373719754149207868987236146325070108441258225416986483686347974828206629349227501489651527898219385546174977871488316566111302304965710116513309735553184880353866156566561965613194747642965712190309650152701905492725684516182300289393866514980343542405573904496783863871322644840567060155981673913403671396383148918346064423353763962311479041098846173691576148065928582134056252580154428502627451906755262354020438177512926405184681966659336967806958791162855593022545758070830763246421315489959253547184537387639852809818034555230788551606077563016113320249745235158237295975401388316215590628613329524248159287881637547336105561955568256412761594959379026995767319825734635282620448951834254366951898417009819610910356217417198511177499162968731243311432593072024572644777953332014909236338536949734142047516692881433201536288818936584248398416967638151568044990895569737572716965636271098915528121459656671601399684629052555364952603029065759140318323173470305084671075184693982880983104088336542411600689713557689322265707840639845291166371200085540243611707155665225789932105731828587279863685393542995579115286170144252093818424342929847463089375837639246939576195451019403065432862977930456797065183842448195244173320212696573550899609648421959931149112418551159941715600164560166896039910689614801679721643320715636043533524103138521323028914529813219434533145394933994498425662046043717354979324038628235647896228510626015334180079034730487111802410889357078132536184519530584185389764028750491776880878184508460801964883329452308937801953863454892584392773261133762235851012039671644430179881371423051694975732487277022685836645841491321953483821222369935473575146921300953964826827923088356475461123228773744836722873675491294569301050650965605768068697498968477949147388212710861345536844019677017040103779915089242709868942895398036372445428866562838388857848132684367148953483846808262624872005126354634255341892446897257484376914340092588310322789213503995037276040655600143130106266361049240589356775432431538376584369813921747856739938709740280007142984671753339950949030692771464851780136551548481020285251603040058007027380227794548212072837033708390755637523399745401476027871276522622047261451826946565833759763708150403815824344726734193928057725822037416289364672760317673860004473902495670406643874927775320044772170865955828284839067563242234025553446755843788411013643444115442116372889103465838154827595128042683902617509232280197744963231314719045413014613395157740412215629253084412380729325113439882637400636010851503899268051936995145167431642339153209319261174546391373000699477030347665291827512554104549180071318125243776302389983953735708429606400481026565334901417711975395790643770130153260768739367130398466686207735883692489876604266346463605534710512811453606566837759375915271702640945366901562113021349420116751835367244744379301152589740830197916273609744139635360963170832810117831715506383455013839641679486600417930617074196196044533845880523547388946686135067527715267162533294827154530083109330715608732969946982264730757927087301265843787232772086859492164107828499669767116129887493991819441558856414280857229032919874477414892796568393835544020465109717809862436719943074120814499022392074770764483100887969087144654877336794093899438526607611501179552769666592462647957911208820575746561000730750587409022338784608343651353235484873477084768731985889012419964433125087935011450294880942972660646464561532216120093298364434399332041783816668208070439099870305106006201304380017620998585282785880872546383263611696387757602176812057103700682477462164936042656369161170018925542278472894293730440208101651625609341123170802974881274746239630904098092904343105026391888725729619233088890169902608874849812244758284917276879260550187643617987454914438795676175057244356153308848190458422406559424284175540780628105895902609051121325081515798479237459569521721100360343478134630946365293422148160212865746161436773620912087572129569845234717941118610179678965900041258285246072956618950419552211460406637503503017554422422556757466188283824809749312659877894985114693365010460342329377091968497406924779434829126707665474425271533080138926214042756132526576699486862188337114796161730601477932828514229125982248723301136345639286452864732317426167470514259098987260099914409303187075341110341437209798618956947867139996671443808635631729130823001453860229351002579160247665162072505577738079211934367468424080169209355859969399323474651957958886428976498828748189464698284314723802438532821441925793037505441729453309584719722735399428843722701348266489036518200011934156384764013056991301809498270095903956345006212347594589157315838504874468509873407337569778597286897073812639114678075719835737457106748340676688955345697511977168334041838344960844100858578027729133765579389982164603970660353386375959164970467751418296992535769787267344257504853087865171300157089941381963730562700959468913188634607581833995119563055671581692895264271775940211926547913156626023776521902322697461705377599712577075994018211184101147702928465675895714894638668049429146630111592034842129646199321393024898346209303509486605177129533032903602059045760504922047072207952350963207130372393446677478875580257389063802719218205784060057642604069861403208987613991783872411416203056615015172567518332755072523743785348763308142259275184615795820255327387314249667723472998130238740629542138374991943327549545658164717742495720931875455171234384571762549814951409552749541378867996747812176557350266875167204026624727123298387800782991746221985321933135499358272280098563217402443224961984208375327531865605331389710086349450137287917752177537332093696645054070465976269935919536226851744512712608065177217675531850944264829371798897328617893336289407950043884672147964537302219899620484724021277351276092919668303713725992944640484543394673729417110851854742582667072165225943490005284226974947400903238597722929936239526413477118516117851400017177044780267999789361943184491625264314923981030851410192952453172407994957953172026031366114486994987703834443111530460021151779248481527696464941177017743269482287856975323728787096417834112787129787844648899730039194756969057325283022170385289029697001163204741805505745557074385569486119427622746570349420775235647223069821545075989174033921019164443859569208868743056737212419479654782278758111258862701530695396602920872663971100433682081160688279049330223019538197478926398030197975880473135120096819162606881353075689009089290408579529179927054791564554447591599987681976518024522666072372750995300863204088761287341251611082514048117049162139974555015025674489341575824359328625587489847006207552666342779218573170889431293852634483109392102614685209446461645346250265336169953850612021957626282049178236530640462545037982287150066841774656786900102216276991510684556310433830437456738903467983479001870125935541222059709876807533494732873863530880509485555700544230638718484661421904265903749417820496841832580945176247183596384268003347691889694771275036405212485607336317442797157327597445710820490449527361800263963900645920935029332674759429867986603057894436785543713183290597070840160047077622926524142000488720656966947292997576765678837563582730043779013429723759117087331573535271569943266813651017168891708884556052074938455756119871107535368181248853147005265492281581216143163959727272904428955666656646001765441002147717239807018408811530173038637860942445448691688976895495112886219316063684463412889711551303367944839998984512103247539705791875567653485267978116585335435772040546325100198490204746536785107597647907242732196142750370830076958641182055398164728570741682410463199662813318803995227696229404813479525332657448967480026183013015886957376661206080721088166989132633598005454328738531510838108471677561338521120145121303840065781357599113998554544113535371126713916814690531200601000940402106770657406689438216325854020768268737908554773551525974280510628338552044514004286147828648905660671660715327476466909326966269737488338624695777940857205235853696666303556732575703715095714505688654283082131222848411656571177200228149081545136780849472874849211647430290628168866331959559151426958767995273318468832765133680809453642347799353748297153756797320226705897266885088318056304906176231206986285469903330139014897890465733352255902301734026476650254178762830944802597587735888902222883695524162009350193287775038996619315390660713327162039294516932147081795521679069813425137789865023647516116356706075680520978380985975217618730949987363313895064383823800162517867383714275625480219618920106716784239990057013766096609653179925477613503930750994389141683288416055847414618656813412747296281983867163878772387119282659303255308500659949397623794110632958939088628468165371158108591095352646202056193338672574515164043744013085029852893306073441335427838510618998012649663580298933196451476502726678796576054906628010561777897661707570545585914577573651426341082033845630754187585498510292995604512255623047696939555660552627323608823370606158405208104783704878768852388430622122189970899334120267486751988482856409554325362787560628378924078386880201202477961710544210075083741813097475261742785259552353468411828306752385687971920670953867282442982450078347840159531882680900155831800184587045495662317598035057411566225029186757730733000940292787706670529767114949698115149934207446051748462420331291731254426823013908272612289670484512491079102883536674995224077812527117600616706177311154753176804680073757821379016121202668273359710286404508392207336208470014103382711615199764340234283149480278672563008324169242280371410411742477531279986876110825044451915719572311757075935756070515545561737851565509095453151024300287956017776533736344472167664425607561274528243048226928556228116868087261189291167382563811803421290494205149850624308444120080967554112480614061597754741213611420555543810980615644766490782025749381294328042838612857094233095518341758042661229583814224743628915336023307167722370351821884647768382473652348475859167723351682695669969375301877455693346510786566636723748559206396261999458167880297424065578613362442422702389690075811388996893140475355793724953343609922124813885219389301680768494214041761431177977077607903448710105658485206127681366564188340187868507336861319872858155444197537591627352064331115157882635823377601757142275612579265759564208258399331470342417242763755152801427990313962822463133044984204929277459707218926247198735544036577596176453803828363282937977847167156212074213217733709733398112361431201845945479878944766131910470402029201728858260233422454246188887414943572181950617619681123820478139816676356860665280345387965427330034675479741049396240077920473108803614783752961334092493858846298862460760427318295198172688366693111147879292066982952927579136107549886452467411023088823274429793238847933629597321175551550605120462717119355643633783150566098765898000731784628799439808090780122747127649699983131143308876381519006023494747129323921373762922498106481230149048737381829065383682925882510232367478326593150859052610637590399435186139798284630318503113132181520785051946218943347646195241633334432644836560712534843970252039971010219499992929813685613342151976029871458357570069574681699881951852090281421239321888672867746231746769878746088080923071789277264360088703071562074187331217397128806411821843544463148186548090100006887599769228014486288468602867802291139661326154533073069475945409883236556576910758719009638143866051968266295454832080333375441019370691385310236383351030851282399499171329102381973340720850373097424626881208049596278090617585293703109558558498068708619458397642665530481771499218462198636428153080157433950868208335802365237717102721709373849493977068500965804704198188165255188241458271187490115809941919333774880281792165451118063316461894109976306391839291563697537373416423619892827162130010486706044803945407440157568255964706857631204320730434961402158826316491024315372843410502727464845856907643627418570766017557803398922858616641410085056347959100109842524548947360074606864640772437398386779525516830776819178253992313420829566097516472508689001754027435109741069926232837134602055794336378269329117458180602422207701642813424632639244515367611701811319289890344288643209730806826540103471251557062633913036537875678090557806423256176640295502399722199932177394622110178692599213625729796840206991567554034221908429017745183563645157235270711606931700092378187721924008023006107226197950135188953763710934316759571679785219698518772265141701304394907726974473501970961732435714764636873954099779293323024599983897702055490877570142660548905069926094640092899454336122195052841889306403740146269975052173450235119770186790365255315263471664367695951893053671296944178755066086572614658320387129825272795970239877523453522709508239743016263251768525648392242557136837411502281763811724007704748494018692844938199483032015959627260276157975824436908286944123777657561090847189545208919526403413044197607577240981667758001656813617403988675935725684873448769423657563299920746013614214978250157157844696480322522486928782711473600138940591975916246494181769181355106690732463358073998098591170246188071325977332658336082132873645379400362708444670086288738896534668560502340493951936919853765679890526235278301049974045002878608177361773905487196962422589445671424655508385697269401700858713467365944190017560694144241266304001384122412949632762583863752974250247333221649480439560147773224432985822022573642320053102561069660515811204960348649660951106247817656947291479868486958122267367735242621690103728672849916261907953481168562743312479733570882559079607032581853444936533029412415588055981859952421528806227534850858331456407850940240853972605959413037420872901053237791982816126097678767151938532089303460361873851404856547608961244126788372654368830308447498917179289752441345742668624244409457985516370399510506184834210771469167506518709028710868418258072053286114255276854615192714608731939629465150973553859103718306317889024887215864294908520394799315458189585165116116925685038424226552763558851024541826513342686562739869668463063085436478112185259633677316592192142853948137672266088428083917163510366615722566592317861037264834815924732259948832344873540457366235400587828530291251789792618386524859870937781823254748222425835309345972189001312343262288858176428340112168567735589016793288910432424157090292366132176292057588766552883576476705839662719730658609667527501489885867781723256642884664326756545205209044221631509415363904358153160350815173429322350475377077412501835771796024063883588819021648260169854918909233949560350687430168600671121243037149704398474912998112629032927539670232571493793373751568639500164540763041552298223865746994654069042158061901821754375736114432914892301283949144027782419294999080800584342020590544576655235006065545741517493079936579314553285746720660966728142654057300814668498091370703894713683663562392761522950314561773552209388785545594768651737039832321178225173747202083934913890846793860198833052090107479793222891593314227471695509700523072918273649279471303222935736653519416937254199334572796574173937961310055783308112370700242464885005405579694055761538647403201155234683102649461217047048228610067957608699402429990611488525203389066707608788614969793998486127500827647489895733214194203804050827959936974024007496420167568856990421510198835546882913684884806573435516431888206092081412546253291245390215845450089843557538775638481557981598924422640326900147215328386932685252187433325041502937425273998692042180425452289584099653040710782229144310804073667420639184143792549977163444276137924351471914353246505005432577470679756245518765287773751774020688353895083082852410857005844188759809169950489793152634695314272596219779388302794122422458739200982957281800967172893698647141340850607416138230215355156220480448710723392720213940064968075958472491801176486170670702119042360801682864556472844407961377484523108681708442283511332922346118168867434342838296735782482049854937184770990457419477984666893391338127535247260746820450821331185616490875125385396164618044561635763321359226967876341166441773279066353595975418471104411239099267880399243510047333107907999026771934810908328358848642895455239060438593082845670641224467211461191435220302726042911471943519240773698205858271033391859904197988936539170282557424045675431820385353097480986649008798017828770868328763695697209905904898913299672476321419407444155131231846140653771740003972527145225734191737898747592021112894924453647187301911998144053590574895213984327524939055621920422087225153014818391472534677212033676585234640648252338164397060742546720645760596156348478657149569637316610475626127756749451561802474594884229066894876539225367121641917218110476751749995292664762516340153401225332817658669151774521716298157900850100545691867888657549697665363259460265469990998663627523527794525446727225718104575758110187282096373956895045937758156576185577822762677372637643298596996416747471203880392719833047888053340032887583347857817553067930252641115252651555723610312472825163438145547258967267458389456087960941339852604673061914927236987293545270143850345165183899507261371023646269076789982973082176251553405130741409975049030656100087596266214496305154111222085301332713642312710606380202850730901692899666020947436183569704250507967899871345141271268710471784347121855007964470662645895961445802458387686608485747563933738550319136465637813080616792748570849516725055841233899447137537041495658727051319568752009548092994389754939020866415345931987009041945767075168797530156182235147917342673993621610787139244602544162662390477408908018589524470310967617037995583060293545516942981532656352346828473788941663297870618360014733399626813827327098377183778989083203953287913224617410537255536929353512858265455913675230905410305677575628537152163349177220619519654413110092346626165286993658784009846815470204431047044973274815225251985087379788014658402058176280200979078350807713726890616139182288685965433055630340780222607511152201369558141725131753787129253678632621889528792138950245094474906270820629698883680139256626218619750601628952962014890987028231666973407827797743458288631136456486474389681225921197296928417023560182650973513761840223391965371688854253638766398271734903932265209827292005893364206632462828040807001496854439929094427218365284667019581564940588195650902740016380810732367248700481255036004925616765609298244885404864434912858292502481212647434694201222672350596109620968270217148868814333640280168378104156012015163873699361262620625405174789728561959844018885511430261758966450112898960014375770825793787686169187387620936914265973320146578749304044997788105004091820211359289999280046385984578240240357911840708548388461463766682458047055708191982002475904608019654403088511076353710240076202374343093156230339221061731914025580386338036236222156523646824617246241232357554695390548743257627873416929455063366410301002304802407858096510411051396441700132923348615897387229310724393020834401705460124787775948110199087466369842827684772752756665720475286835485777102871700563194489662442639132874788706589497301751285148353771400313014910942996148336951428998883911395883596409254531900508095154012314376318215103837851313144076171203472214312002660260374966195435922773695039641778848832205940235697087274343284849361034852658484901876354312484823371059313784287653958659406508164763624101430195634364112686832503627420094101965728879322389064573449602896162654985145786646156450817970366816496657100814337027779430974882818846637245740875005526011267959019834933477338246562058318315152905461282432113137929136945334911429088904045703395912459777983237913585650842650521209450475992459272854014308231078886960332082963250886176125471751442032850941199487440979290487084225612336316320131109664559660569266383101919933577824243088407501340322857946229253787009814043947380174619928522859581005849448423989409370285561938896225915790381799456880918800172254270218183872576675517790299719832982276289603097312705428809136954536042477638532603454598235552493102845836614010295634513529253280041481231017606170962790614059306023917730457429471373062815085903917132038052509822295609974084970872785094964771251486724896840136203045122994045764934629274742303496930966294353331041405505083862998104037706330161019468120084420193104925427583237980884659716098755631100625654597171719120508373568709365587650328676401997470369130740028663513699707416852382099184534915458409150855971058930356324801603104056193048446343702545067524369250088797050602226062163132595727448514863942869707044042541863804799001135814119615339234320042013675934189509571453940739895177681494194367193985085990854856811007245459251503593400468174064477674712578446327413967029514305326659218360947139334731084660917718027543101533359548076210767651262387773885415181345932491364332370468863853700828229000326071392186159772899639946303466295601115653719827271881737967729789068532100089444592768304084344853622051158843625254210883953918702029365636869418501450223190212761552492814988751089875003053353852510637134191385936896529780585799654818576979329375270390653845123311955141708246591301232550033795405918425139296452238021411130116005109314492456111100520865288408011357850941190109958629655403857095157275460830308661734363513814939871163626790533970721568236926963559048700212545231629399547342862903606213167590894950464505449122218585308911321950242667132883744283906936100147242071195370397142697171090740662976651529139612779302904295973214582583923383433968097101744839799783651240477756715846909456500303974291133290481640407812282093837556530115712412687452015096952562029664598150140868464268190025140884365995173770281832748144433306304754886248238549047448651790845583199101098087993802071206163362465423179519650505761493106849010513594756775526487502137202232097060350390748035230812043154609414247472238980927127371849363342441188739590876947253003021160751585225750209887431029998236728337427839593960651761211894750245886648748767757013681093074595944885401555533077534337610305661282134502196628635659142439020098365663965397545997336058988024252079941937980381949857962747660459419060128902255088831957790140446577378633939431729823527676178012337956201832334850062124799696717409040629034820488118703167774749484852217209436625834928243325865841682509694199442789840393102973803919892029307571400103455617586543626181302400575781291784589453719557524397709921886500399630520221848531111285126334010089454538679460701964095422404520188545686075053876985171446658585744530225510760470834009438457747338188402259717020144800787339604914129128809190825713235872633659508510269373745211983545523269299332096994087684442689515756803934749064834680761776380516961995398742541933049303137608393618718024379653914359286732402811279726465219688241569323955969708743931918926421052308721517476071322727052546798580748496043894690333071742967285822234734292299311445131323992712999769910101730510602973086264704573074070394138721007676752573452285747486145713245689980279616121347431388070239008663538780639864743401670973907426772971479342883569428406464948574656356427006919458583986687107508089954293711144515135081846693498373061862709255549511535705743441868835214733946393695493241557838869340384546181188549975591248928714487977220050490182043992842194976447395093573314056843033582350896687011163735544283899206520133954706738743097009816513192554089885151867795639192451185160169253882301523133078250140809636285622635700040733758526420929219684407703425670820882874462232914784300966172203373006887963832020932998628353164157777137635758560022602405561313420399684841216086097038463793886944113343821933311596622323422691056953754834373252817740739445239001449476818786860718448176662219036418348764534168458580511423358331511821485603867235886769476485758285944092680231516335888746779530482351302861020616738828068524443469150431984814690159980878664799668350918442758882813940038243851090277314500444762509095704518047494908413546940127423738236871317482495053200718555098104110964245620512836396014952933006697001872424400359102719795523154981404250799079021145057951512133312554360039920220530040092199208882061881210790644641277850642370206774332359234265729363036444331936794074045891875014828689335649711474312362456792454877670363884806023443787291059158728330081664675301921395510829529311134293704756572966059275599567648821432809033838203471747683617855899454267457194012617485547927708184876006136723351718059088933960106074274844542574946306154604185554849258621400543027081103491362457424548902642088784629907807207855877816324219086642454899512526286299834068948698325251533377572130400405595627962159195660786443294353708784649524155163509181789096227975776276527079928551376140744727874149823643884419973070210944877894996483185322467110597859908282033628961967428957446017275474491304080339766251827145575146599305774452703826489086773229852733987883500865880230665640574426620524415627325725948630632108728595995410846751841786388804229240914955977888061636294947438143729219125704672760318577649176275870724522349066266447111610960198795651643273853993233957139710879403181054284786487512986715508937552862807066894324113064187795946879229473370818370753459815194312942480648316391519314152997258620167894042686390966926342034659597114566366687011492395345138026147314117754227353768690171996146878236105852121546284199882433818742825062386552944506700249396046720511652021113287690258449114264688645849182087309627525235383700711291553049731574110434942048258189077325819381767405199372648294944351150816021183856472733029559052540052405426784289594107058549847582536091373284183004310999980537575880452993177338820178730761783673895797122058865718085645183141889782213090110596008738174092504543898498131372288478456877402126344779893462018876194233301633239589549886608578304286322536313276505078662337393118458937848916355045591056321631538543917271753441482842529341726047562095417857862801122085170463345118052879002656739267273218537329933841962971670390608428175299242124092452798493657939738502799746414778419525323708163461284316087149312648273175711690324621125414321959289121609542091286398169307363499208159761953945134418359638018086515542842838746669894481713016737849263200283385341794015948003527523473785389912110428420127457169314146050317750667209991559967529440237689897378003013201970260199940840814162412734121129070267922888010503988914401478743890351326800924796313129299518367011836216685174157839497709572888659414105712212896163166838234622356455275248922975428391213214808985050623088187417124737751227871766401410760970061173157688969739780824749088270116645515803727016913024143638271413914313958191030721072584853184960015785881055213979343995717245327388226772182182608901112642456941721550995863921349965628486765654934599262761428083059173433754427601721770695456619644391982563223280465180361704661586174682190840410736549465126235993294803678796767417502446093963643349499239969825004418770115260794926259549901493491005848951075036857906412812967920954050505864376352922627953440890432794312281156409977160094827092593320165903388006335460557162050860393544371527654737166400645276703639464685711499751824494350803615582200591963982891761759019599367883276877572206779468955023586814106326135069253557999796982610455607206655792645383635877152909032440937892667224089456298923266604286705908302086506430732308609270694031551040090886173786114643739026791049642217286908964581201470919686671957407532825774003131930334079777124033572970832811760896323528090629314754001378614975217008401804892445387162862987943707885022064922191831298544217160044067223870067962087778577307966731365224239749562974137321388693431231412649288975370403914388530941948234725757357508213160697820730456751271819589922578147350156493798521159912201193136337188373432691903873940834740880780861893320334003854142620400217022630614106300192355199312442566877801841404389339443996398386916739726848619365418141181061881907516736974891918430826769961836567230268546937729154932980981189719703915387822328796611830028079251283933133563499094092455641509387462265254351274808889354213090648783413501564082103768352344109013827045128607015647921874910250473435338168772144842675074575387146328452145812221290235373424031690267753359097232387661376081627442128223150041177333702093680011167969799019002242185879881380184176443507615290072580248030717040236509768713818135774669755156820769268544338904364872354584994323156700263670530139382627793345693188961858018141201272005311109127531437643164416274982441930790351515441143942129478699723431658449943724682985831123408915266061285759810960165364223985621624860264654494350368987972783597373676777205112559241424332824946638775159482492544440901652370519108697059802567915720891094150035465276515868104353839104091665384089690327472336532545596769492314629554912410565186527831273145497128633259168847360543201116306149311647501691871044553432101147539612012089600477336578012493272848988160648118340602891094468714565365894871851840942420858734748483546317191290860381431786077375677745306864406160501309573519270547209974094556317451065083784232026292595102716732854972746649592479041414854855321021742682267697140837723061969371659053730827760262457305730036406785665338442699433776236810560372482297782335427641257633619762041584382982883985245940509801990873576174275355942936181005755789124138641440177092280644521576074980456901712745635496695222500099928789797022437475123731362165484040657703086871381069523882998401740734718805485647545306571396368428302224035465689859993066406096009126903931903670928091008300798066024036356604626978912530144466215342581900690789618657899530411464925891112393410818145972898793520600727701027501641956389453086623938563008640792744402867903002928954581172154544542394770514017775624761135523278826716395553480738845631296954276505511479265483045018675244813209283197850218110330575112556635463755788506358801475644609983105292716931569129920148542823778949721808274677228974601495176347784674475806362545631274974440086015217884967952585168094068102516272244724812188761816885836089182568372478075922396057325569600700892706961362095235777640050385172355029600953808993093148956617813997259103158515170940942472239569839199303577208811422046129559806975803860001082188178072625596923795446400558748703017497403292518358445039630820137011735678574478724898969376717386093084739271099669104855118744355764567097969102496563621292580216316869624570322780080980397419902674666718250869911879169706861385970108651684900600534297212761991921432332985300953365349105450398651568452837236071190047908559220509430023193762487433641980851675122831444483384181943948966825373122619889981057645644657323176598003431782061248141582698871309607073602301653958965684122970787938459532734140600345735663991736702241931148747787179295882424615426484402316608561418632575112017294528281891603381941091387241293345337840827502770470797239026052396353262340919259356645301321145894595824062423365300058944974041811002189158388573883227196596518937771394719292680280164462955171178966793234870133038241754630900941746171283920028328849677048438312680075400810863253368735214837984336396308966059021842633276049379880763493055195606400169205957052891847824871585488175825549532471459756366803107415113100715746768563589132253734036466091989738674767298427273129490197599918566481009295399777313156214232623336543014993589469556601727808100267904833875678559278667828064359201876241556100969678960042815971782394665947163404153482875664246218462902836910764995422945394627201497680557604124951577958450287162959550489479363353159674071172287564056634489837243954336954685486142990987484173719026501691038596414658416843125121800047606843277297271540804761751935942409856789429217230413093043414144824621536899776846472846693863560567918249482482652265865296015319130246066720423316989014308542319040420582108554840243882788045154919553408172204032886705360518897297336296682656428828359926804945768652663563462347768425975431397668895313354568998080750781225491613594958620707484150128546602009699271229820527710491326269052537316894235988458905597086595002308557620314622726019373339379337617670473160248282058586129929242565162355257544479201355627326509907827435975337844312518651891823056788744197263817456760355201208124631349104649576647028321218467615343216877331380395957026719409685840132669926325891914319705718414155848660302038452815111781822545222525069532581287672930425211914620680727089743771197219927046780267443614529584417670893915215025794477057316691452600410095869352574672568549893137521476361423483158373780838924572249513721263429609286511108118572969534250620646504985890079734241701506857908934764113709999504455173396711319361087705864202144852333134129434732373864881494366612038861339162398108679850153941397483745211220940889494879084488963334802658950963863277606522570140333927118031727301960790091306839203641386895539046040915088806020437624524352829890689307300718985038987006820682386222657767696916146722793006963154241839790217214368710584275383496726228173624920648493080212202368471068571940902857218086439628225979287086381192427020699767966861133886157162388495148465621173655181273238778020171529863402034435420685856441584012739004591411154374608908817304281211132629613432531539259928581890852015723883131033129464430324368088003979953552010291295670445117548844604867194918276145009187595604024627804936044001280269299272637681455668221678010581224622330862795281176934296719973360881214291743034666301706938030896023560860436008816106174293398269352611584735648636431758467936786521537319436066721734783277937502007018426110564130505844564217814205987269976076551799338124020696560445123596469339134892376434958587172187405783701854451817098619092232055239619555782064166375792195299592902847507210445015752627181092406905124231901764367595468390211372004476422101091801574005329339142927001097595234640867487181611950183833982022502740830300978845614260804749640057985196798769850472024358498414640004358440197678985502655095898541388656632339171929045815817894081189681729816960630252248041947004493610390154807320875501745346034009928662875558623835753792833460779374219452344999441563263276128890948087908198592511473804357776873301783152830446928065963352327613340408944984949292483688782865471211286254671342958577807051853004605615010895247916320854886505596566738834338175629083025633937825609529362838013411730829651441011050095410584463887902447727616888668800389296551978090897184729016423513419110872879914049130502230436077949673662988689504708662278483593549231040269732664390562905408457406246326907983559156240979035179669970959419516875684850469135288631738501063537641411673793588089523389079706264733687403082625283114697611720017040647849290635623598223027691547833272327645979976477040727442772103067888468398720438229232185669871446868871301807476037666111348049054793582781829580773297899514355693715698388257822718734270704100744511073303034837026752352436612758196918660866220782963495176135248872526660253761215530763248622729562303852401649418437885563037850200410634154783096471671436231196072121118922445822214312754315587431504116510356432585898732032874803307520934762466941631418976585807401532520526436785978486566846958150903275267544667191170970405489542303952227315476296766599140077322485662741432709336097130241912627816052487447160860093842978486976226161457433250808346533952019429856711320458271293033541885459735488411224515446809826937868314484668717854149336687450422415365656915145500082770352404970181713360061657386964544531813096215370228964462530003095967863071223714305593856882539730778137307201406634941014988096758171015050798762911568856569961808014114379783469828650213995635972325428550182231555369489528728213787933468869627491142161812025076882318258294735334055716227920087284636695506215795939581315587499162605222769754995112920369857446540185237177928165407229932888962933358639957511885459013169150567193640019126630779422849143445440850481109683048585838580184394227842715372291358499053913418838743944892659876525443905109320505437216762680736325900036668130392504540297881058847142007470783769461058781377650613733548575950579331131323446036398792863467509138300157891439010744464276864913141632528470277402003198793816982451465368998520132833264432260184249013492883366112662706600033209877966411318052557697966775778301009758343378841587689038855863888842233068064851983692256399559039072958707950443098920758759088344258696460485905901736096550625944513887906711676598104891839144283569641858683105522072426560942732631505943013764032799251684175943259562280162391996098912191752766528002264060562869010737274954270975609623624216717608694189209272601680921041660472246138273390448895948579561911700593393299351961979414582121787528043843226443250682026419528209409499864727085104047036245891989710234092190611886232259408415304898476064130919270684853059072202012939089335109398742543775555092265172190659522549707232808006701172164819138417546681244908204775155959061373751348653416561856211639539892749627977000581550033056088792925455822438748600318069574964791844103565819226960643123348690571709646212989596022851546711693524823948580434504479848707998546028525082095902078758936423090387105224353587700732584260184381534974402901693935221255816846121060945271154682099839354893709290340732603648594887832177976688886769702993463543547241323404135985202410310228714006900482079795031901957285838892319441636152740130611608348005419488288314690262839034190731223063552985679601147039012536378840859288480952640535132225212597354296234482007885503087609334535343452872041549794065154583299406416601831306487978568351403316047693085111963881058051096473426879121242194619373335256863960223011914434060732265600643553113073404275179927765490487508557814618934342974440724198389025583227645847261217016471029709003281507848297239946791908917639438823775910467705187073884922792795939502737134375260172877352951082780570730588353920330339639622673677635897993468675962993748286794013281909651160615892521988757446151400898795110823114840843713184618121889990524598715055294524566708111429603140338684344468199559906828024366534927036677708676149650793803912393489430202667428880146880187887140276202048582847976392016578150961753533300248302981617811971299555037562525200799443238064080800454580465538346068396962773731049082254043528161260963459198487265543093258538239154940205523829592097240270567417786597692991691792724486859515818352933665638485731407239772399541621050930856203322587281987391635935892846676604438545036799532026310612984789550617069215561336641422411037165333582700717797027289803689288673753600254679920807004457081086488309321132403837801129529585341862394069895322795106900240467322856571008907709874868565505262972539413268246561383647934749148844612417960898413621106601940389040809233308713913033484262249445137457167155374125718614468306120478666044753822098013656338612138474800991210659227381078731673673091234840407997446919821921423439416005040127504267855682439535775105841205908614673176825959583536079840492176258484986050222824682820496538306755661822499151644077668121942659833548030704336723619099122071656656119589421234349015812213380761832955366204820559407933461323237657131325211594595194543437368621427880126535201757785803526853266712938327947426322331781564813911891225448972919328241882938791719116465437798715081859292320265919117945434904973416231313514058578720348828083670515833603098034951583103233660319086928610671322761649562153226622772675694499613891094190980362675468325248362706180961427291025403483178137857005573685549967355545923432909554558273046567036182925539971799326921181635019562172327902478229253632632788914923979126693447010624213240260208368043433338811798361946757999335625798889347204992262077121470587122848587606030519762441675293089927112044326407393280859895342589745183947693026249239493520413486681600401056496208115987188969011384419431453026068924800590306951828373173041029050532965196548070790624564979547390722919567634596982564439512741975261324854609380885647765571173755302672908057403467312784077494029270453137416186813530540769042198068172105431007932510292055877789826682679638583245849801628224534842864115292944867264055131018541161970169068066709914134948349833231113432107052227011078409559334203343724097041166217905151513071315051612226204354139424355663020535364085738211724455062189907161324532614019151607292212178492640090049199204517036513381710135596057668157546515814862837802083738926399145165766246558224917958882754859270268439061680953769374693070514115539295673530101572133778812557464502212743264499494341112345993941005945699927187053233592422580931919574880058663678890327056836285834777088075567898222011368471533818566117891128509469088487470751045474957622150731063184164355236839680159709015167112077447408581332836209053207421289910329919708433869267799628714591855578455488386039850432618422274084156263388703520112294411293572157591588309036242929071383654719819732146623224320932764473148354747171369981145135309785907473050462717328342205484130904940959922744733522244323929629022662056543381152971190756812220753515172206471671503913866136031961497455692887208044323542353006994353264081361729993624017284702122803040797147020130551120453090085812129953973836461670540788611911165343566282451126141103650598183898575228696650703671981682367668256860988262644063554819107422829972682188829049178389932063206137733001668037770443961406952065646591430438196368094718516587185133401446795898875805029563969888340600231015468325805225395181321721027558000483803873984256907999175325448613743944595114754988902107414992093253754110451971642850103902546391956224814966293699129754644836838624482639477688601205349589829853025579713382300800392602013174814023388304987644554749747428346300538956345666815884901988293838597951478050907412617577954592679601344678985693188738572934726895445539229626509824527085357398821992398022140980337414177626737784378430214091198564648896435885733197521069902789704046300056867953523178213526408111089802802153945725078176976574058113410048206852791506521268532126272148494147922008124148545889056149204524555608873715149827969471681847374780186150486951250217752050930189925651607812109275395097324748214686234932577358707987412390018146184003454073595943624406088882525327543566238581711012694330978110536076234298695204952858251289947254988040368095817869723220712005645983160155103697483870754671262647719974919818745225299326435412289115711577621737382327765280138272607136937084209624637186036812180908928819908418754224550723188436275938463582233549691285840325674966847037440301211700853720560982928174354900240861271636854265596940686972146697976387625658740281086158381683540495559943741888479091854527977159921116691772638299655167588507362253795509307507817866299250398290136765243451150230966730745173945114359714963198932177633425561299198904860561411580492346321302727107272421346830261969105326578904041357902520493405202208744605307584470636099701184085733984559611284577708263650599016616280137388214174234815522074553705208146472155483426894580061509047713951943545620476480528477833643914303066754209159293305696974785279444666157313325878464689112485856485345848551304063840864503635507227801120114193039802503719297210038636729173414286926516897226808247147385021977286248857000930750230562807772892946414067117599178574567204377262513424656747382009495547299386685922903017038745221350184695292966363733313708931448207385337453954669261098843266074132412639252339052142546282687367096082404865541393111885685082012543115619425369436043651813769501015443060721897600672854112507779934477224958431974286553050909985598600689556994497172026511865697177368246186222090013340784751632774089522982049636560692802247510941525579723292249087017374993869919297011748900926147455240950518897655285526631473667396939702259762500778834634694202393816971687375716303154943818652892269341863624239694818384602099204001638120874869955945667450653461541945586835456542399751560225810947394752045551114037774333242955001548533255126400067312125903659555854511342512828382275680472669007001862321135701795779327376110195759610188993388120406859301947873214097015067562908212262494725101033354287327763512097681693648778375151854499886363186951565963580624554483946867382214216864602851850491651072284584143553616979268775571613832500156626856513577820367901287748408503728557217888980210088179623633732414910161116493605821501002280489066763181232359320798510951530758077269686213291787490575782722504173754001366758431887652214487244274593245739451046935239835398981148620669620034566770936060584418368584687271294984072043097750058934252139987551320153217826806612673727276954268431810705174535568562011698305869217199968855516086104044046071007002369283640919759514699483150122371987389429204582468933481459024250472216664568456263524591323597925771250462957877246891467613510542341696846695019638736797631849993574292232924860154050486931629073358574206252563224718845327341874370875488072687449560790906389078517810618857338408060278861805950347151769981344336947375191788479448675403186642363034522743361942232667173551324422983847117005824012755155161777127165893714732272160448781490517297952752203431211762271778916061458685046988754007755073028866227966061031347754158605356391795239025683535249571268004955148190134272333925643460607442791674086437927933220653616131688391668041288696409362210432147855205082302095299310144243383297880598565507727350909695332853546170041757199113175033152621659023365541375665776156907978586650895483331495179031844198950817779241645780283366706575185253470196412138007023824914503699467219582456524127705063801993209151108566880588017062091092268294270398443404645976212816356583499348839479925673850530358737500256630903113673555440195798682979413740766107825734960407001334195514087270046908378266900401853425662960094102298793785903664686248379074432660009028450564378085528642404618862907076762953913066554763127892071641603023530578828768300790486497333689444107474055496793724975676824294289052105557160874918466363001084501477552950184429853661153722870106700922829882685804733691279339952738140893189852985610606154175943389714893480791894615986649426173180207472596413587403163655363646040520401905432908687124248749422304842768603044592907645154375975457013661207080267067177923892055288567896861585363495784962382183732562613058935322715980547367727493310556275019820797661464372607353966725223122200111914889322231659595658798437461208547783801525880797472523790612442579027525565426190620151693166981578722528022999530390249799090416809602671376310522134992458515946711312421288482806885113227811517078108366250617287944886738126970849443439470039404004039911295711523833068067762774252313767906686290685236207403619462321024919295256541263865564396333474572887616445701430734846954548157989558075175715710369807390729196137397983496820889562876951516470590894342196381184068380153563420506673011763246145594433347068647524620485200268129345791906609465577630233731602146598321130482111576451652341323425242311192342257302624750150836610136797914466757517003206484959643841328950359851422830224191146228740391524697848539541103553012009600631978969682116688964559040448043844337563303621266775388550917230731410088524725691450546364303533207421870256799675291046978396578610790936799547043124318468819090737049635293055493275486731181519915806746697515134088805868511380102001018650177914579176062494939161717272551654209378383759028869100352800204650033713664078462149633834221207974409752229619947015179020940015814820585276979648631685019280575828326349909983981134286076940004535442159220278521648724426297932847041943330563183039861449059846061135571343900986891524081151276529563603504285083948091995122839206292750348107797384520178870585859365503392210596419493951166221437390128282811969927811303210180749902629148892753959281545183463735272402540172553460645400787600623875752058510080155399767967431793482252024660706599991720800570689686347857862188773345522998105220547597425142742534328078188687927338011243160978133215002692921145017440798307748882118421790171313434736709828710934896195906702941143816883816919388938826598204378774477392149445116703135567553824576384809796608206573961251222319946404000209573730673755764286296363808147942934490172139415441845127230514182459394571649820834576464820120332556146728722313869665001024192258931357684956573068744219800086493809048283161729674579022825956679283592835832750620232460488062912062175011515928193683641784942318766350268094024010548738238244722916715812782179293042914052665397771124753343015208218126413801438104856714379416074865492288453741308048073814106824562370864131178132828536435989927710903249806426681234732470856021954487881681528349156222670920103411080603244936569759518787313629521589263641131775962635519534550483809889637481552022567732486813281849730508887373065654896446863016844194408301430156601282145709316888291770892924895436640427073538423706010468301344288227292342200518519326644684545614613610313436541036946216973388568068208027703825198739625701485106040906556060648250323195914950504526291105800639491674723522405867222946310119845251966692021073670549066432983596300716269725237423872453513435576883942260816342370949688497402068410603314342522861437806451672435557659638710209084529289734479499619330310870171297081009452061277406492667645072325002859207995446075198826077187327952275129348797790790663381020475764997028195041100561512072757598171213300323711031801195962760106697854902609134873565218313735710235459707628392638084184877696410596728311968376114727005493593498460390536314113723709525883825748079449867424566360407050122677916260951157014208391517416740730749871689557194588868880702924502077779011777561278128987744221381413873659547230121831433050880878309860418960967273853890048311760255148695403249071375454736584856710594774386437239614835021103410973394616808009728345493027612981623897611828419011048564448529225755015090983236967040998134466342685251048144270717867800592421518399669025142165197596710332575451525508302035712104789493300847470558112357533362673934717802433450240939157414633079267718447631983040753930329001099326250898866503409206315388453498009885881187989598687419831101331922864938401450436999023317226680085454962185380793390104502168814293275717499874050733833551112924342471383326259473891528825389173778609938970771871021289703215903893375345041001688273988099560191197994749955547086567248824660626843250794521618593694512517235723314392555452042627608782193057033104921168379510765932381407915115315073458956002048674511462956388809861489820488207531712180795790448829477981141515773889237239230077452879974013087025534277839324439270934331282712368107747564212703259853849028925935116061444796124552221907227761030746172156466979655915326562903886966241226775530638117514865648603479944924033828960652992306015304812455183057330047967678156807433873977008833253699778067813827303756138741263567139244855599127557398494414725342231001711538570392686708795297939669755037117173253128140843532300166761841268126953339324850694289850072385079659903854648851261380728547284278416772907608945038689163513581107799634936926019343743478944939812195080808066091497762018916966000618718358513750896146059554513268890485660926440657856213857474888298752366199911944725714882552286860752142030928961307892815520068658547082314960449309246133450115214506151509893619342715828745413618383088142618442031616972323395400879376397934938878446655151845783793429033731161577638660220547080342326289942767466446870787823890812820774253642316324819803296689682954990923430818384138908585477847228877057954422345924088896226927023457972492634554758510688480270217663337938643249704956715170584084760996340893918473308428611451130159643201403360710693172200998523028773351403595904654914363115949810877728738849076353463119583087743485444658116629233671841637059348425862806817267770558710631255230942329065689419754593498774292773155851216865827299212139460908217623766760527156602996664858533470764070870581975163820777824310271182481832229109597625797456598435327421630947762700522735976086676487541296815143122482411654035191104357449080151080927817941312648166150412339186875292669926662095882376519932791100804212924713338896637084026073491730984426727684034406868240960092209258122959515224730614097914567136561424113160340760909435523181229403745020896278520947208372878028779389689806662805160973803899532915881074916934042068983164939163848294980269125191135960233019488718749058204577405445281826510039095731966370310280937004979514389905046842086954859494068868241396563153868102028519742093536571842481512446429244761016328809787650247679272111791496531319756223861943454463087812930498642559877163339149288353477588533371416923682722984281969911463365947523168365993429725811699951088912585655425729399052066098215275875848379616293965186593634417154742377299674529021902286655506490048952081967381504865876395324264436191182992805612749856884835970775115580367834389082629413997623024102400968791635122191956333279456184218423035382257143230951831164556325985455705791858525319530402821657329507694949983876005507715416560015802399604902679774861252567969696469047129183622668917081548056643469512720689853702883117408268009339479077074575897863828822992113154111574065463969321455280650595453046692633891194645948851598516452426395837764649836898343706974731459029450613859336459203230064152485539948033779185864906276960803768367682505818585473584832193746025357275488458045150623793704017686214998794492096709419582046515230730693842993343214040873140617450347504976975135211835391263310287202687336741069584712716369643053300873193057529778250345088018125522170413249672182159210997033134909832242772303366593349068436928452200112958594716973888675735916730559234236908805197285173743226055000829747550407033042442822134026777465518208916824493716939008773909388041177957647144843300504148132760273025237392275383252337059272131781555383135968703896659173204750398643378919137925134285079015195929482659234278245142572680935810639443969112326067913634881121237069454325356426356915602155301934643149418169035238627052635145485436025917951088119723033833799503867262738124372499469242574190940008912657086524706547011593292745567486132233486408365087318086278201612554811859906675067661751409321603253506002874291175572485750852122405834630135679338800434637524126160270018490353930292022236694079791559120458144400990959377931420990996880581156417411126344065887984025196141970518333601101277473397470583722040223602988587678471823647563525316081135097197468578789783649250814232991654192996619785338975092408051444025689772696909662729139517641199874634829498555341136298575231392340092182055138468320944976285951923371428665269596733798775040527163557156075251380163375151792764718262966640672226975275814426844262664176423445537044745160023310966859666294391118026296955100335080561881179114133761473174681419856602671632069931444147805514474050124083893993660727580511245977565478444577492881531679085547320717128147868091222638852460366603875482790447831587105033168692148904816098870154058253398219452857091732903420204156798864425000253955397684252916220107006721703760936460441137650838937967466031178368941865675390737435572341190708022987375025754771105331803001153482859643098130930357610040533126313610105307668819244921207411436962699767553856268803032194656778197153220891026767761155192877381306626384701580907805403866050706734720592721359673022989735859620331276687677264866120676484882558313299925255331321152480104339512230928385705334550841219453080432967383267546463500948911406206887276443767761803030108582907983072704724960320648798805068436441494867063853100268691112070465015343825382554399493908152165709372949120375296040818937439195806158869661803308456510621656446679303856050627329089803871719903429844586120343579505364382318598505085986789918659012750781829890921155728295153750652195994731183476238915757046850737633655926258524446351817657631015858304113411738156066867572945481309651480965904506211484308719263742955629701401650634179675293569955830045884039078311799753190708309868565335623863706873677895795441368935933692312197133494189802061103914859713015396340544259283255633014603670184613936915235732795914393982351052152179294116575571913235222992996326197727596359618154934683130258783043401854928847778124687761989138838196214189415999064656528171291525592584401018766931799200900291519517974712568777852898687543877954337413456765214496168781840360162523370542572878431148629485041201843231681099045878079764223166139828957333924272479233414452293509690462510785277985705492497989754176888935228510993320531314939637897787954176383012888788952255795167658794101329139218754367880043059360527020151369433841772572843127822328894665538053069705995492243992510877122398289408635852414795036162300790669104875013874012549668222836707286480945159058584545691080154442204376404477193524538134585863021874299410894335369422183726407193122511396393910460150469732566443616191563771618221496466252651392054165682936199917396880483070085590340956952446780374821934596293866606865744068930704375744552193779224036236484462122438869455708763962717673672849065682680186202111220972364055243727649244798516655792933055150181796382041346127555271562777279761900776212278671481170326766574112123358343167438412295769807279384436490474692540211865726385773594392023374348985887992564109659041022098311845638390804412111565048285648308326425114875836514579017032629103992678449470083310808567421458174909043651029273810276537571865317912726862490079763397231805466648555806170274608081371430140873663657083053854708531238106920536758217795797744415210895934388700196223849936847022228738325108664402993673844375553173747884764204114652385171270803196628526029434852821348499612360685921043001500457928234669966005464179067289673892717006225713916268026109757683376344514437787932312897358699931435793489106839770403979807125247862693587913702262995027211136915642207867262718268911754604148538486797073580614748353351153632011085899504453702174147014629107389390274575871452334187990531627239038372233342091949010672925041322006264973583931005301044471964681521481448726441685894716391839172420018859496204671572218170703330632139991323074965225407708958002320281168048945509496810097162809009785094833727379424657740261416296228288341288503121334671251607309613811508130897554015787532916166567826505432085562783506054942247935292840509616373194752471389424309784944501769801437359671506277147958906811036555180181933715798913224935461416378458431235337519165054459390575552474830392232613889458893471343657926172564014173463842750170850367718113523766420392526387454702023337765610282734725633184514493972311160720775770107385404055928660651738701645789657658333439740812374270047501997914308107871411490549797281589261848899648807996262277469910338426899621888969819116924411622287254881930179165915102028657825730553219018125669212042946439711072565179107272353767165733895155915901614141818666070353700917875479220392283808892698149742541190843201148201867801639554824192507653169837194387343999993584478291818618773768841153370083468026737101720233597828039754816849110429077480399196001191712977280873906182398502235997476133072637512042975540960260791811641810241442445143027549179766424229605361467655029844019588630265012032727121496658953025728289026637189013849778388564079998498648709035856527413383077971313825303595181474398615266450230703367004796846710939355998690791034527962034851783732421349132849455270687858169071963446677424260006806863822427371366593100610113533388233433954001157489518848961218249170519321340874756542291856390659129540996165329132216710067689371353849949359789473598029297870114836359569960995740680076848425170809490565737880521562155407877161393836182683984375295457137731269033804877696443787348433893152296660367071984347158791046748399839440564522722748045289654919244700661523624230415032596327387294761237384092211620693901504485301821459714142919160525543882331170455122032767597085937825874624008826908060371077393499873160119252097041846953657680382824014710809015231558362326995202008543897455250663325919456578352844352230153675821356489736279794409858485185393404989400666652811426871005690504919210041917855931510708689134681361829825563880806097453321000036755526073277633663433501443864491758702173448326167773241269694716106565864322631738217761930344582084348979272658717908577760461005918802239912428928813493154600641785271597241049881439764034149669835149957771252239464807251266867669615526187622493354714774749219118119483407012899609434431850390944321677399601607844658514302979619049889957797702929900117890341819093078067864225098654437429764695862023719190073671266086622039932349473947264119340362988442717786805163077624931986126303696597880379764525246890457610275821294185490346989053324090873009426759016391722622493212337402869706102079489879119982700331950978370519163564585445244187849097883266677861436374203469705858027145550403963351128154557490823919390292649593931208992230382996530033846083416095940757588429466302405113352910757405421184190105929946316454645363639690365659002449502533121009827266686791305497920301834289290252970529733753110773914558989694213816741162743080726312013049349917699479558230642979282634919659891748000925933852353832987442525956567326837088845157770003962615840562987036020841186519316324967675314569148457093424550834671961477629602236017191042228881120690121496865468170728812426123379519225680239870104826685329060755329332456768813945648472771793804548582066587432593654663848471524791444498598369201690471768099308509385531897333960155060873220296768909156012504168410287116482086045375500849825537106795302959701641911879106369987914137505850499516049231043891268343315930408917747367640101171385358764946251454190394775542818583932709423560151352171411310183524784626171761574959665985112809921046084283389449558512385136736755575221634804591166312597111031260347838450249309063181993984655238035524987255129841271835427968240010501681680541852054790362860952707811735743731331388932028194028354132314516620081171705613731324441082551451479087122532326347494158716732187287205987782897171823122920157404122979309735927358024144252204884353011737404872474918100910684024833069824448264201621507307611860477258744363694593402130302924814511324200511313052248291413170083650547978206158973230618948796365102575615473294798486731864879534677634575006529553124598187358451092495653493949126004434224256576834380894328089110165850200942843689100599382522300877433451980828349685767120413813089647290976442738380980229573442010149117681706062726758038543407397618786372747042910022837288096323662922060463903700824078388173683126454574714403332391402430604616842556709255676406818951109563766719449912748714733982063147712137644918004804760879526771729264359140826711097508579211113056498244782092057801075110551014982672478898456498362523209211442264506244487080706529415131362343924194376478416422478340851750327821867777503487963674730334961212563179676796648625086390604880549133044192519169968184052236960659334403737742778490319485177617377657835530887404225259916476602756081534547505680631885698870393498922779255526428569255547327037154908953416076849528411951123468177314792778329808382237863980513701017483824175338076966352806229164453407670823685312217384699145718754547174608489717474871422325528049478245963890623638965980009178955282586135807304119953543149667285684792411571068809217382410066008494781968082799066718523859160621119825367814491858423359490582491888054142867678105704110166729415818114874854855382128906082857776751847739198648522395372842091317001581261584240554867676371799997949055935599793679975244653140781319622229499562671805396483972755725930115171100046465349737091348133732059644119799065279557408469468809039619230275569830237742522007922850320831468192108116417981063247335530130032349122450256231361508702556530034198102507457673308820452035137275544657002547808443221821882988191648102036841518698194175005186469640604638478195783049720300405164294389273728198744477884350515900507369659086042623632800739697619374784410390071175086150481398553859040496025052149247065754775150826873478391758379635478984510988014226208835146898200970710704683916747938792696706776013410967119982042222839512442250874849113686283562512389866648308479456829017162249948839203407614531983999558186863747814741532242873486850117394047092444633825403626782707807382709441867998554185927829421526242712380601411176595814567242853902404652154051946269475801968270270590998235855837499069828559318860694683806837079388973981973268713253991773657712785871549470163014024537053886014222961377196290778113660054744138448844617216366422521495655937209099080925747429245633037877017402508353298946033131350503204361940948857399104685123435820898938640428489881571437197422646208219191168052173481385777873817373274669598626182009708046296658874020457859454546773694512421680412998862681302707054033814984512565782816935200334625319562230596712875891433713029209224082119169867306897606225005300151210593222383040777947801816541791158623540997980023471064157035102530489102767312593168310871568787656926411524729049480901430204829867747962136997109642266343625640330236314265653117597390356746916277628078570783835303270264712977865491773340488161848390475455071388375121430053251364759735488467183716140872145851936406462837096022443649062895578757667932912566119847964468255133352863411022136318694515870109314433144100958735489006360746275005616888884441691069281460311105162079977184993618373559829806632944778230701671310013890606616994950065708428971510515834575643304057097727917296456262745586506887531983530777862594752436520714430917772162583241633553457013706210800595598916670466666210557336536879375981386429744796272424650129310390702011548827127642503112260222160863989206095561619535421116917253892115267531664872576023220711169039634825860865831982664762490472988513758272999386248909097917076929650305265917622683887337309586833858062022071470371895653244438104727089176707104150178440145883494363386780801217965193451724548898344223435039984225206173810975870026740624984351505967960452947362353964053053133328567527622653411019283024681112980427024316706554710568706186874413822425666253652719463343327336379515250363700547307563649059455479877506998028656371823593882147495323044558245948369827563326204040370024818688229832934405519862640582723588639168331460005981148719657043819137811520420042903985133132499838305903488148307458146854843694941195031232199379982759531931242994185538130032108007888537031612958889805669793333277714574804408933046880509525164846567005367292844795236963855034707239761354384079977951329514215161377246057556664229627040231115456242620279251742333925811413568211537589499770938931112784703536297984128944982225006368240143377489358718740451571190531674372273635637715561947245427384263628254884435962567778756053364783001227710149338056707870049234867709651578496669745294207636700833600005544608438928738171068091325738735491722418364530013108170630017288953575732401380741043141487883612244900291872625685947883546017283416279403121988787377152323279587884523888268413386775218419920403051391403583880245642662852774376944457162456849071521386212776971329072292283318861213232190505812629808254810582518961804293448191374453487364816738631891355250672573439623885808255777573731113596351693019766249133539592155428816656378320662637333805770595459090721769993216069362095286385916298597526629215708111212745892209742521943145416911118208916087169274054254311239517738531699297406691644835884031358135874916176034770802145190354434394566664598894240621857105851640612891120545551705252994587578747447129093271858472196423502892759410165779728504761673753643541633402143124309755763761483135573871845057842221610435921113007062063412289105228970220203033076528873213914965493449831239153906639398787037585110604145434175421303749743273310596613758158511298901494227155400768659268351303320647880014960453234987317111584351130956332841506591447513536768860717421402720890398334651638859773348639290466551546897374438749029032669642223744376686197151883666574411661354042477498510284398073443225771515810745334482640808786362302367031734043529755988077083588911205664228418856662823876478945194335336266463118931307931205475983819535609439218942770806004355898698572710687345442802279469945220601848268834268897394057473572554738226282636866222012651662526409200169316024745016320791096740293534373379170743618487949927479302833372133792910928752563832968372818125156007300027356582007441816532169813128614085994499529505744306295302790361123029995059220739379058799863342324834441200946329209164837202702241455755426920489803286410562557289960076308390456767437756287107547558035367863172129804557186268851083434640890633899199457839443695917376630281164834182849521553777085650237351315795527910614177856926257465303809334851834276392735730913133915862028760071414853632339872884236110668327824222563333230223623354740572192056439187980328612560645048343788471998834821144685214199870755776543175876491632223678598308787528044806956465714210361534864796082007810906917995341536954925611058365429992277582443319014127519815270889714754151244180416611461256638331173055158758051810137901241138104022435271328884935095987242036587715537958187046441660341844645325124004636416289305027349060337785368725977423869973339116866540888650385146087264093339166384650351554857343531921563415023183882672025734964252722156189468012908535413594681973144001365925911552204171952343818307371657745493018645329951168050306431019502463762429113239153661121192901387904157364871917981991300676389247698464443753708365435882675285796140482087610990368253717794413127995855638435894593181944466451455111255369661678549616351137481887797007779057248991987122012065062364505189458711070137537083502290631929480140184250653530315712702328793901807265165436530665703914804814093007248276603237001209667565792998606669473379885375187169720401601150504696542434642535301993799500482773171450747724870994271971472688206986784465760017472689669426808824125134853134924024562994721609246249588099674782900953574993834747441258294998760306517843792485835972143894710419400313703889751036996432339744539003559323104646613264618256558694884027050620926006072036092016978901314074141680472639403195573374136620128459778807230887742828168200698694973479477441357876203071801334132908669350976048924009118632982724449942695428467822906801333490633127554417697716715927349173566618598258278526275876225060386723232505033794171945459154794423339898879553380823153041271115833347372669340836467893787766547526732221757898428815124476220082170438140669510686918700455404854603042860733731634792367392566503832939864684041722540273328395769285415370310203291850479220785465813206365743066194896001838672205836098720223267429908289189515850515010754215467854958987855721991197039958959387289476327467006053728746846802332641001243315708472510115189562005337403168108393400550605864848948519904007842052704340141345962117134839927652772955808437104794830853088587381571247847478763176568962153932246521662959497517496573629096284514652653929812541140186569154591176307499754043757414916095056762883787998259481254258334413157141420518318161766893576087771033517266551730593669648897807730602561708027250743892132215580115119020346557504022345885619361535448367420177002360648224989186255283609677397600607433469146054727122207870430117137991328740449651962878268881636977627326402160903489511461182721146587848622135524709345992748056044194559085878043168314148157175393672013212911246638431064255904499365525191309139198504757362643255152758210174925221887546403769380203060533791601457377933091260200940156499059962723783038299567562944838001336937179328150862817053315894586021135298352905999277449066186059553120994182422460699153070421953680501605472480355329252010940603457212421299503194956277722832364317431994124583048797214041973736554318176982972829696406292626965474072477296307111482490721446015799504573544414915907551553532733291569328981307066346426060050348512188805712056774503448143231063544070646487302405402823949768494573497457487990668104324139076953251362124869775876665717394440644699513904796429107072522839896453628244068844160900506331301817433742399585289886808351310681704663595101872042086592468906464124495013607365438377114180893422880497229425418765742205884521197761473385013212129508156855166445582767967729247493332202778622073495897113567573176306597276972362137068859449885260074286044442833725328921037050319656550855670356859570627944376865196425097200210027012348531072728226850083722134804275354298869167322031192906572418717391473588948118859134558876934888741284744704204894402016296108483987242753457664690074735678925417609008785002883858508562657829725305832929086941614800239111416532315920386725008292964892716708392571822479083053457156081027131243838722268150175895725345119809864149622144585113079356240421032211795389299994428175090674835304019451647937428405916699476624286625592307437498737489933878807807423350216584433342119398983375967920783269248025888860283141546420836931284386612408708695282500437239386816407431699411522074945056358836642722963646501808692028300155009043574286669854757750406917298060604318514316483010483050265861448908633457659802093125839382059998537097510747806687133784333561718455591453443851070319856446748132438950880340924858044419506816567487779164469972211412120172097881367163603406882457817826828700799657043761680754859331958414355522422400531060870480453471666453652834563589184659456715312692010504628307654847385012329842942582060638247793419747290284141892541827211969494323332778252622112070176270628570350561044133183389661486670799817616011737892412999998347629413654422649146369808785155502024397852999036813861169797213888527209587217827986996712513769155364723384667688600285569896957764536535106226983784750385707183542949186426154665136403902729827852211183495988398358851106651185192402247476150017245001883210628925672712199923658934145203206459126742549888882342102027210509508257925285059157999433667192242598112671315861527007374133342414349610730102550352922498626195792123459847626700073269976855894211991224204809465432664921591507165465863628777372090248372327842230869879733570606395341638941220473346888410654658784970685647956618652393077988213219200599754932219369100171779986615168709459750951403148749406349025670108794714522728373174909573994464077407350322728705826000874520465945224568650317594335236770373170239007677609423432189160911819398852229137340205661404718399079784304733725668535765086053190503308417893762634546286373686740622075630987612374566753495524516697992285243381159981305126528196387695496071609351849800712320055048433039639343165746590275792234002134490155453637552883837142900205923409285020790353180381121817777608895291076703094463163541084360803494955961488950847119833899833424578374916630084794155952736675209727317979478155933430809167611844577112877279602527030000589733214818665017100495067357904030313084500901646392538870927712824223800423357678730334894572297923647197223557114787221054328584356845081535676415577184355287157979612013313876022744255115805718342607447909050923194779513063590407013432169343537869875798618523403889571225362168316232469771438502524007038598286603143953430041380545875758049584084527212079078713820168659292622907177360509767298002837815213320807785944243169034127176416657982584094838128171390016359965516140388646498928486786944745550196732920218498956807424501328968852481773452600624208626678005707630726312681894266832964676428260553107077370790914319710471317217761086749322563225119214504444246074372012582371733039170846849695433031765162552965791409906644519994461636682811872593806172731515108136723294171560308514183220169412643535122194087425802341917017557518320255258628244496641869091149173156337094689157524052777401130577208883080823786223840562886429036845353362981045599276298043551819823376338456444562500341807375079262579868196280336485837531763539416294367838644726500169725416234987229122758783900267474939362062627802690478026504350377353875437443534752087190943037508315345243422104692585686545581506850614613758203725040180267065998381144400536186660765933411060990879763954936963001570916975193266718204362065243854848389026878124650850872929078258905658275826339072840268558715876066752270945732438290997538505288619730658913883867426958218715444816607673305426304852902206155298269524013086268175629449319030495994332703095922753566428840182462956802201801599241810440046710315027624236010383446674563730724106886017536288181131580339047071175343822233986224999498328871030135989463731457669415864830409044946317525044966761573551837992133482339726933662810042873067795765202123684084601886296831802665359192488319961838582597724600024246173147681315583653019581767039504295511284940649980952200422913767422896539525467830311597835829910859376190336914050547484537460924778088687019259902699761151400458670474809991368549942520719558404004230417494159436729050963622743848737457833187049776568106260790305155983733197395162040752954257869186276244272145929121998546620619318856636451112893966285182560506775479284726598029062558890757283892851637622608687069772073594151999432849786132133580601195320402034086385963748278361351883077123369239073649157281481789041477995641352225331222170157203131096220245388949713370619513595167029300811360700550395740560620461168779493701952014091733707639256089760515652132728520911475138114505919654350191857946257361085503924772481843552993282419753430939395454711799910979201092510109314574158246116730652699765567390768276799906396220406015983298565902392207847624817483585669649556276925376610396066752996775095433832523819652992494288950855334423744200274684549440951426400455185181825037058073138066090582548360626618869145604769026015106215486981065087004872919990884115605092487955038515822209454939155480802115466377878469935750953374753932314320923832438845264008565031843715503998944395391374774967077083626794102238234842826235645036173587181599844243010947210012744750109894907038660058337327105552685732192453738262074989486170687628049352004573110143763393446467961620442997822156614766128622111108303326678741758834033106239577017680089882276549679270606947116385957081852342845832805089853225577385410017300815175211565877742372546501132294208893998974875922096365079648905595718957134682599330513367857688929430647883402737414938209139641047689076672013209067226321171424757879006554847365286793429908849887255163277295517338467915746919480807151946099383507416707462791528073668769909754918168718212264380911454839283347449790118560851054260049193238170147033297444918359441670951006927857724437675008869039636970798860742633748592656587979930858088717466189646849010168872040375084941821391863947340621746664849246701147104307999454048782759182597711740922663957976798752965139929148972536298452801973886753839049161231095044677157127987176531510830378376873084241759496119300836459245907862887051733142035560613170078186007790008125360167148483501500398469353619465425746092114463049911767683363008781823109036090453447857500488438630687025681157921117902073200321039525024433631782958835980871192984121250595589134191826960964583188851295606874093974182540158465197722410893963586127771018879019033142239922399784823882728355725240423868803608980505255705468290154093177934684815482502525656369217381662912090269400416301213299692585898480796242593638744733451679888922791018284522115673063468359604267454943883136452868111427969561534318965108687780134281097682210191803144614069707079173365109663596163835661289938128066804939972770834187572762941301754586494069327226174391149368226534725629852615189239074832236859061967123708532571973699334386315901572309331719463452190544754651558591585795459598660873105918904554483944378534300089193362042048438679315603415741802472141482189808013668671116919635729158832316027832666862089381357597656588029058966586794218260145393575925759551492253058757148103441046699027333730711926554517314890819431825094643674591005663510085195196315432802143460642389795159451097036681250297048466212881931395273408081061759558343105070761290667614367083683102075013899041014629059427180488963439785543117610945782905083625027491034093485160779548984851810006776734601228130621998848070291342698456947681460710964297708630997646669037618464955107852863096903178513144029692094359561074011816740080320866712976003022526513933930369845666739593525856194698626188115051091873391481692527025658656581321940330440980934543699200288239739319846721945134730813001319437321732011698063803156187288084890046415517627744334530714310494395230681795236993069600836103902644426329270584426853361201702568792839305941632804548645866147675458253751776674538962158112072966277469435402475755091708814167064779783936959096349145681044226300340988678076729767422041662920754223457813172255951436487493699150051176681344518963686054045664966456631744831419125445437226900206758867045020868343029912358897112038660056553844897865682167539569906069199975556105507844736884509828424282324508491403914874063643725036689809231871426256042140085464410441491222025719332313746893096402617756304224158180725154559289803606433033495943256107808453095578064804799528454049307558456929725523165677255038898587847561511265400036230743074849897042838748640870282550374968217843412958316081657813757348722927520413523172613872527030683796517706147620683465832697782167934214098662944965387460228155463580579219765758192944449340091388407016612443230118576968319868519509678244925197369974977148999010441771592945952562779506458659025968614147049666216143914296789800126923697138523888688088192890731690224818481577953928433654368609365252187700176781575802246132356185971633704912902399365937699004679403978286921021996648574767427656387258421149665071185546340512203738408259809008826775296513405117215568089501249327944874633295227669829483867512350614923059258942008497364185487197703914620032094654275845147248090484855534955577373161733697399781551258173196681756059933337052097744863066786096580115441249633452270041838760133563737735857938792716411045222658018718555144475074827694013339105282175431683153587314363957868267455006319573255738983100210217594029194829162528019920399483922600403524427882249875672224192984879991609588167986026435253657760160909142993085377273168447715451461142756857977254685420896224009560584760915673462880065560550296441599717131875626141633021103798193407826516469409646615195702926542262187479706900058327463779524768546045710135162412484796760955452124309003914433867628093575546492988096703396033540198509575944731271819131682542993181361328207073841793102415937867596869388144843251544362201941177005449679893157251819820700763168140396736956051964524163854594885154611399801713702724224242841709178217270446833989271311769095040894663375241277896432551551549295724510895306941107690487154610628998760959326505971351698458066129662306960654669417153266939858002236875364312821570063082690235510463433255518400588266779829474945488363348866189023864098708626968762052255475860964301053363823412307933741317852230671769022315984460573274209991543646846106730220140315069937902162757130130337423271198800607607368728458856648762752320639791071836207834981564867819314299877841235695617610207772861106696285258778634031423832198766786234540684830506064297155127003219159345994968650659405538560259874557868605674435011407399039625932461552936299256484501824980238272081970237317133530758972609645589699339580387180297314574475239430362719929343718112873084115144563219148000720741548699312596173863497928984791633448796507097048736445642508894382241329439798995595107349830977614475439579723672798364411402748316140200761507915316957713622856558257829098279932680269336704804358195007757426330747636140012523366276585484493484586810658177926849903924538358721591729606215862535876376232390782043205760959697418136937645223621341209572335518852767056426880934566706618536139761203824715076448059390079252529097197930061848074805989182184226825517173486523293978762115759370687983613317729863454475204725364866654962609537054926441855751852054867753837092167063557967483100457096048920383581896185749990564051070293418804165241387939185492777373131183358383974964575259914298768443262917284576887360168941064600604514752533950218973771493520227064856590119707454257011797050650961191381281361707955089267883732421161206328978600858733053687927241559652811641476742544623742285715867695995046243829770580382399982552796560096940884750570276687545937116202680762069190277098213887896889291800681789833040570583588364321578332701142413804249387485088370896283345620254488987629592767186450542691122449502182911662774852921308713553256098137908315168159731576694397246328035848156120400821228272733749042312548626228912447880503513362362239304646443648488001667113393416958772541486527605116590931533250424650508454186964723262851015212602587311497157834774725328701193598900052667050003859065434119226692648971899330069065052713922373602384187211833104185878261027846734058709475203605021033446868825204105407772721142040362102348625676270826616902841950622362174615752976964515069946205794886982772626651351184075810613170340574971180224189184404556044716766052841463189868009082260137979647830840893406668920061533838554879439789329130185269672285880509553776496993614565024256004291403789407283347867557800278353537386007570115284418791729892036212542664377290323847887476761834515220463598202818271243937569976932904566565108564459540068400077789332715670701539049967473452055135719592138345248596564484852567793208495067864161379787240429911777187466124309634040755742029559286956922431199783705575117050573516823884229221341514758623322960669062573312966905906437292892557093148395878763470134109611035475056531361331246419412937157792667847647023000912976265578410404047751746727281494268406239109810882912497771471792049908439015206024602440129907160480938021877069747808745367483643535217712702777865555054059657216247574958182377588609627241842172388374941499126673933974144811261144686254427480891626034131935845367028467677745221369139563862627111560899806092991401166644039837361415264973336113047249942258630599445269733041118550499251869852678718913248031053939558632569979972631877261728668027278756338689663069414763451160473084657608056910039142773115813466719424206660459027771144618799017749283726357254772840673045024770050025748210784813299943809813139378365962880841738489107883635911299153427477494546137695967273171581518826859165540602427948439969826858460094754437363653229701735988209420909704482937916224698605649523749538521592636147687314759575480180715543730498069826587184292278284051725303917289044639886850835819057799588305088452834453591336143774746550071499084581333023285561555506261026684660968247410566460214806097833614010249435967285082146941415990826207969184175997853910602940075676551310247803695541700041285738669335215011874403464794050032125702067578590603069657070351195383833491854091561845349383105498179490823840458791769473524977220121935420008810818354812368046639456990774932173811293950883331535052478238191626804249385459833202645002674063669699576878714868993793418256749838633523654091582194166500076226716801268221346492436224832704217848445504011896005959470722171447612840895463652304046793636448966089601807911447604620870416207840149617365550775096538444774807895362755111119917363449384918227994379602426890973061265085039554040042742203603390925855580736541917310204351243988406264929166456742797051660592075656490955978226145155558471503498394151531966922379215055097121445322205771807849169939391444544936788549158875439316911289392547607720879715375983498181027809564875698706434042390112874217586092401500252899295857899793702312960601856517383290732921246486704433798744216360322969533721878843323537912841124983160343482434179660862225839467563841295275348028928657920286605492763951601207568896148302396251246233155711799352322631010828252586949142929626885761061865650301835723297317480475010095514536985325576780686272083788162165710250446190521551117873145772054966090384672030111414844417757003594644072871945612120375548076242616713410561382781264506331345785589488311650452607339368961778703803549119048171540959141323077829224241088474734768294132638591607826342175795787073205450033740199729888174819513308571685735360475074432338140047065052218587519595520726096312036375177501967732152751724691804737452157298378172758656510032918856544881014049520684557557991027489543069637976824439692739337842493013616970323305004474079898431259356958491154463765172647765221543634548822582297768214971488478952689661207234616059167377000026149074375750343960583847091960000627931223595905459166240305220716546051343697879288620377278272948479282338912874290159123332319136291365440526800060262412344847575729174948094059980618796790145410595712030317599224025520089286643582342460936928922099519212991401998293337518057945645276136928841333921937749457712893729086672500874141845899545416983398931443299030420853434803290529742574680819428238104706957853090246945817839949789027582489951051804069545520541919665533800979906788428700449515321379219964713584638668810807084987105618436376629619473657478558509166913699061283290701517317866197107980321759594652351441145591889478355677869550446304122638940012810071712168091719128827581227804476325072547804793542752871396622852581522507194315940788703711375224668699667878171394057393775901039500228078057588304493190664465930823205013981824573958562838782680001169571957409887111901532543915259636533776415887763312314096786020164819697016879910521498763638806790415930419678007329877805495779185721817247405419311136716998279793692318300618038998854351707286961270218928768256827382598170806258786903376738635308687188133646120580562854285939580208190060090530999582416146898621517429849066826108152706639653315129770548370313743469164647558170981052686724715320349781815845102092276849235871344395609009805367391000147638517806076289301164916691091024213081450344735603188945690468244794324907761465070546160313840872741008506709945573925215899604457266387609894302342790399875438191222929637464749446008601488221758022716764459004827869258184169442527164016509195684856516431338729347719553830727247595744643839835096869884283856076047204961674842513345847594766450843936868861575441225397108171939442431566509613971499058140437754891608725265218384497032472253321527539029847101192223880599093285796018543934353278768424455422579886323037300376723980896578328351339267321850930926256475116318639913811467412291815705054444402869381671008099667665080932085198416557533563664674959729088820882594528628108557184782502359753435997795690457167862439385621761264629665380287798003196464643135936376738227198433855124465572398684330240403558464673130631783598149668894601115946140057190544925334873587530146343179546755594900125941779848013104978562979745246129278172869491409078925512920515423838151129979281911695557782005883525841874493847960737279092980983131998240694493138382474895280417451219069794610910324924093721967586117249437981946205272454481608464485534681324101665547748625686193317978660595848082407423745677689101945036770958960512467728127139168955286371201390048344320594507399239171329422122071246969560472361497635888000851634823835530122821866163981768395378405496717986427873001952680944577774956386519204872318581552912655727319362387036906435165732816487686835906498284836619906372125281246976905850241811556976223561871195758564653354125781310498436311908193857822006530985749750043856048082526603806605459304275091938447443182354292238800250449914594052090482855426509926360535234155730545154254284800605111168284838073723797394014094039305521534756792476230817725719427410703771214402143653379690955655500967328498197128891175395310784038998571670885977443903639136096644299636082029600992564677470471883800675057906933486261193526109548099933697340723150078299576721953966604588868968334157875882644765692954862109243834001705093351693594731123401732917120787466462493008195023981469478928936673375970271208842865810464460009126242658315931629326787385657708987040288214993213733865301129443978962675727698937432578832913023821578348422206863021453909333247353997706064403338727949140020539373315784338290398926792376693447754944962901758209144814996663530371336056200907722216258645978054417593184448909711235509929572765144116604912360194910122009866162316801087159637292534987912334733226501315750761138777331953405865080741510031643596286095850293577316156223383236815260012044049148207663218372345168721212493203481199262414333839357862811673588889790273106631026163697937070921812520638552278239444128290431855291290790679390786502339019353345566855333996305147897854447730143352492846818643423854800761935073046375749247137737251304494153787922978291006508613674270466768692150328100564491207069606829839360269133280510518680483791169484492474756962848261932679108234204471793834799141087020046889325617267133224938989514525828661188578198557423453135156370154166697690492414588559957084801505129733748588505060178216291423997040171477478391628478054335571091743167507362673745516041190292359516221983504680235862369802747925240744842543977734949096927916113376564773973334855523874509502371481996229841613719467357337712389403155708199287860708443850901387068807196942670542842329182519270766089934867269285475528470473062498483194710897723134621825684637030052759219647259279922994672766637445574505181928808800729743942709659837865628872087059507299719842592298292655529051253081668674260508439538744928653204169038806794832453951920291207063076814554646275652829193274069744907935858965957100468113390904072398109815307698615200512028041509564114893097199426169233771146642893531709679043083566049275972004287220838319626936207507692034711772627627855566404773866924104473685524934957746832164527181532453258837485591121539529671435124180957150798534433462522593919440346857244986902280933787022949725343332771931778116073762069529305543257825398834395854588091481438713569123217769982248411035042784614522302185605358256183016931001166667332647495912130905375475889618889484230096241606262474804917111876811393858811001867613289365349062116876132250270327743082555359420103274839974941822111800330547032679635008479789716377821337134398204153129586998372527184592295675714676190114622705915010836303834271358109276437572257685311801240418904202332060272128047845298241823232747537488834169537567044525087890134055657484184147606398384310209168832762623481823656686469338402220522374145313093238120167741915519063524542941757580005032476932035407362728346194576486903489432767946295307453725338033378592438562019821854355517532214234022645097185972047661852766583067085182665299093902200775262220162524328187548566025772532449615020182781607451919341139325574548894009959636825023261626258395801678101096632672228229350229596277101045927690181928177831411789641793689395380996046889541000916416348722558969771829890974455453779913901291624945662687773081677219242145741915197369598298057339361662391371879094295071044986206405115651082418536626124754606521595379288737786963238010262936024283673826153968545151241211956545487288289459595599893725919703626801087444431879925951069533045542207793434410476708083274730229336758056512364182575774475096742548663610626069806762079399195591711785421875603577817861282087251992620333772081674864106532501591574769053874899313023603429657340310488073995829978158606789590688122150027851172335182858172265433407636874791656492731198404981488818510529456601895197085002009218144627925382468180255279304662159292845819827543575545914704938014275369721989630206926038761878828318589734911933352348123591035258584755281821291897467067154694977675700917256382797580597801720920839373252638039242699686139121601870993216567033449204807674404778472115695385366213383507371155233744437245700329850553217473876731261382065058003081064356759848609825529902615072945045157266466172128903588368800251926651482588370153309442233440851683532449837872794356251280510417291050238202111854265332491162456912369109481126443512408949974474275869941692517700181637520107163973947844330796901740766226894372085769342774786730348252248302250152945393971133412588626902972811676771450766981057939620292138285474943616215102647507657431762201436067499407626402290068464807394309203444526420590115537785314264749365939878245160567038567644961074963769046667188520072888201757001515133601632819309733604347794862957824136940895086979552761864500619350151278417659524725322458719099564291339997471979211173967677976997262851775820487986140057252282322569231400504156395057478148413889058812519900649417655350798668440205786158539377082925314604987524601368769218261011070096033298373374506459150074541014648801795582889100062210003030547565696489372823705253476318223030677372800234911101682806191551504865635284711398411162829627249406866796231594752943026865653082034519083991061979210006559120924985428032500998508438759306093696538895893144692123124439660013956647018300894255894562958625248400466858407367439819305810823924320737869561671504193756256299306556047317753418879989132241283993313789535560656351230238200486270882446823259874891294269047819145975935014600466353405315083634570926766088158010326674737891606989453239337307416360336995065881363061440636009286066243943043313196954450204035700028240100435531704030305960502455580557373815302112041259892404425435316726403730052554398183483620581852341013082368751660577124829620888441341500900970122013945615578036345405698091595288200310000196029708493607712614907444561759002370712560868296661208098412244328705823986953181754774344479379883778138979310413526528422755106682047010989982512670033556934333314244370360242977365728157092560381496198364924170813007676503316709445884043781109488698114007183803049353921925135203496487966109091074094599548272190269522598805760990824198733770434167107881773452680549983372848692190661806282070636572820174791911977832302706207402712250139129704531692261820024159678756914215311214895854814818283272621613218152692470649464779968482618755530851545976525854637842173501537847702098904884189061376849307774282975372493916630955632560450177257828420740933661212251685456382734223235272147031899944899804004890759565082892596173598764108969956769404289419982259003009186012476689918084543457503562662708923029130824232799030552853496268820162423979924794291719612342603868680931019584593014060932628211254610596969661756062284900499469874914389945989728911993341472596007906795713342678286803738208344815556887352095726972902072184177203704936849301708921047022905698079030969408928380075611517484683109338229278677512155875474683487691957420875011065411043524995257378486771984025964154248064888471776174611149924291771946068288234346423768700446706861282583814361858086978832293910282529986652084398216039075881097072494993757748815252405002330046872232584234661147023959917929593423227251524805379840478867700736152439224890374226976901653318835714463864160542753874963311430241686854866886821115805087684775959984114698078348377275725626410325843426906803681300033210547135141212842887549015943399269920888021706697251754859371153838330590887003138523755632164051048607974798367292518521041004169431842726401342253794253389665516890176565539994961118916050398663741115994357631367027213875969856064655507132280723332368656730771571666901692993703424236579060017430792310303311723015422028750718998810646121714357522590504189770273621061334223271462328448379068601512667478231198461796954767560579441010291092546078217777463349909684657730652079226817228026980380172894633566644775655046026478712451253438817754645663424802423260321084567719883297178058609709921361278269720161662668227707526129589234434812413352036843208050207553849628284701994735537711751577247973209048507703493465875244469476047914111820984662660481407234585693518426369271097881686725591897603016366265068890159690875400055288083764987441916079510714932268943293373698140478190314818990960993610975077882495483398114380471623553738186752371603040743136050544434727322992025045524811248974047719338194753120416994503742396296678922152774840341949640495115879758484209253895373163581895502048485940727866271351657707056867670396702173025867427954221673141026728560360304708440154312603562594598012662083876616418308505450214832199426314732694900104889457729816241589593925837412474240459840818964690387131865794485295957290114398622461434530217772434105499506502690504248669685655130099375924034834821221746040254429520475766070079402329117605836112257133367162712565100938495874485298920902122279383387538373945846245213622721129055620306357829604254035640451074208724628202354868917427666221929217906551813139420031386389406782457642663483361538538335531687011567473923963030518053268499029437427303026753129680907081269784865420907945365092729105640561517923510336990258632441104124169976289443836199376044047887052912860747912239625947058130130495509416548953238044576519467343329899517999885824728514180980138616483563095839362197030404954265216128905260910356113914773946430764633782408641178176787357399334169870812933907963718316917643742393958815974935151470688505156055726155511770356467021248711489621962063973239099150280482702734725048103105116420169218748952200404750027450936818953813514413511358247142713895763282645452397322897467929161771899754220170561563861450737478370951009552966343950040277756195095860450245851896719102581953072271835084697845310254795011099531506887936166721265807498119742080546324058850925323948699629760987693651424637247171899092120817787641153549700645313590529116677847973776629919769613003808191979931520156659940441242026417020144678022915603472725529444679605157085759874612601974833282565821637543252197241965416270036283315070812809677982076183741497667812060443775303663610469819323880195349554505451531412929361196755840183636427117396927815543226766359313752073430006269503316978020697186545325233401024246007130115737053867010016824216374769352262507739362234647558668152463863183067394752969200118891750695401772705515990212954962404708619141744312512056529985635837200920921732715714069638702384619582537319381335551712673582865009066230594629077194719102287622971088397879039353154067199499309110173125668925088460013952342194408623566630946347575085205226386263328847017573369600920349490360031816860666530022979839482602225851715775287935209749420691001660776689388676841367035562258171714348959614751207937019626794845934586515248109949086944950366755788725622027850672742690878509780988836030295601894556924505173700763632445160542335867046877005614134805696732918224586858174766337839664176051923624043676129998104518677634642669761068222246018532195359324445440636787937938735497243020238220360224629155234770798478908729309780548922958006104772462784242497801114075114506270236881962039897657664777095623979635614155308613320361299614700850407062057760492580308319820101285646938314679581920083679408166161797429344804301813693083336287451364199905916379949614459256321381164262348555080652815817870460320894623711238100221636779677739480617706159666802033114057696454299421905464641126495651759084650030994560569366874430682983741880655316406422556556305758818694849573110497413615711148061578724014789427853934926451567305005986395210618413962226119502411199524224577348134511435391229216613784058182242662123849659662393400749581817223999307054808770560714993223659929049603005112228272131353191641385637172614734211911068415354417122607027899341986450249691434464917777505118648916784782968435029862707017935592801658977677079085846705459640458902361877048360593448719932835767303900674466531769034711156901395191644883487175026375483762952331692807991638871788986140756964375384894575016885032327393281903524570923574664719762347330276912114766979770741325578760507236229789672319649331720606398405002746530894932740074408121400022538125193962209967446103552450387447089685906870170759386485239770638173550422288150865780304222287579127537214551578219020378130695504570019076168484497640049415375975135684522219137789221602122415847177246045659176729846819229601176240634089477806279369170362261859764656719581510572935321057934898589937919785437118971906225726335458144385180535113915417157192486579680621807652558002552004486298819776729802097986230080773722780590519972283360758295112350160393238398383769885145811394686470421605563443060581142175891755029415672809528895360505930519744301723662238229706332233365385197432038298033400674457844451854165788723139188513677900717582653885756329544710726685971505376196862741225474884021921038480269646954676315878172671498165859197471139753371906729174271031401298709513735118625551766081805339506947264883258524037331449805668894361545690007739301680472376280097196407599152713794286612858619193120102462081753176489472856116038350699224974901684776356355038849850841999014126549959529428038075800556999949091154158757717349217229298248497012330874248207324698711284156117190435608884340835049099714900108804999193530721571789066027840774162951258941336619129182142123772247944225891910301373616375175358162349996751353335489440517319153829042224723048984346073001720949659068970818912250024348104745811001789612652345631231984849096642446606939030037734730694903539463871760026702252249210342527657883812018627674415926695393685134040835213910762917652334696200713470147931912582339184039499185961335302345880571540493971614154698714014934513113139192993408430574696433704654442461849919667709968253126444169609049717547267935388086389428348642504076522811342272344824526286767235796519197246112187178732045025170238016058317312590775044687364378102328514761889646688901634380461245504112078312976876161801320889030758665889667186792323205377512127774538595582805995303134130776072834870545080858004999941710740583846662405613310903106832618066258493238800753926662488761724163214837161147559955914892968278829319841113978426342076061847198172156394234791345543055991120739660876398965065724980881837139157234709329654709274961082103417039129674221002399979976702572985312456334162691178024634124306324569320314400067507523790250427764537519507910200700564568001717263624367071083054801030988238643764993503688571984254563342134475899105638078116885314998725333020756797605007878221249989578178389385457243343213548491701718263607016020190733384776875062041834784383226166022183869135730282532360419897682526915472610236338971526087749604182033234620793079696149324958040309568222968682099379851084172484413255669989004992577953971666030371157333874871972598589822950837149482167818707978952761683076822103525172088996681279392953353439999391032146059512040612894478539189428806134198668246298431941770535019471130309129118824451845112059676226807511356138784601832856581121232096786278998060936636571670732884957157919535156580961292690997067484859617428487422347645246977276856526245259461901011439520802942585097890259597247586619922340114005427413530657758385846963996112688937122643382514721628689851619767786335527508295828040329315652251257435758164615618467147734127821763112228233682489998770642708261710544568623891274342452507242179311656742303973797070896463676582699257864179610429856759571770479015036193909034555167719981455147301779726257024742877839020570276383441285365217710321985128395131570039439732485930585230785171909899461263168019563490270570072614148042727706491702504612338701241360878768162024290274817659164977989031987868121621005686845862005580905902506678781096796051384489549579269254452010167144162562863648940366957547678667647871575091309330250038504858269410689374973229697681680308779870019015342336518233615587330237549032198662481185771653282638290782841090477778742109651451000955132053798723682803911266772544927579189410242043691496850769816015955206190625524279753485580895952834150430260101881133912338027429838883589062222489067707616735898288194374802754767092545851737866988813579417245259354885559732914580084349703600139664828867471678121593898524964578729937875400128306190926423683992176335341570113207714139157015778342610408885941059796429474127017280969973044504768808238724319750170362348080087328795986514109095440272694512769244506582076139043310529344580600486843597145811710262424360315018665222418139979574539475375228565841487025034045297100301221373504231116878753550969427641564960359158910270114494066064671697600382306752869262181083701491647235130055119295931535774832119663097585051151628560224543429873955295126899078873496382604885811823335047397289996879984851810073626733782846706437643875205954768377074712942075111928569754328111082180034929674997155000858062514662412039725792161139122939175280055804567052925007593157203599429928195319010822690016642047365523975193092668472291951347796558551916045145636784563509216747809070049958898295766325221789910268433525984628793571012107949295751326711540045620613060143171339119250751385486204506584244007199158663673147731560202278150985280790564346244992483418783674275197578675158757665880761462532311565012854536275259194579387576846236453985768598317133928040116039874395753494977866032959952517975845625414605026718937900435767845051981348696879993406964649669027653923596351194129180265683309060879328113800469757289695689845072160184216769891384634955243126305509000231852913306271889300311611580251472489143485511870963409767037489916223516818575462781296289834998402433274055541548587362266132027908343310270293652901887540677893587232253416940106826123451199674205829353094615504419036637289079961642739613581098940796358209921077171029005378756065842637894720448830795764605614519651888889566792597010171990011351735327270285281615919017107003401749031596150596902668271951682222294364589584528912493458309143942231337418127307246496671553363211174935960314970867750457368208286153258946593926164531739073771834241847151474511323504613245070119311657361025239220545021936926958533734248338612637990415478120621480130211306723922769887798509501967850693495965543487897482722442475103429389749376729122892862425801342308596783605273968363150165388778409840764658345405862252523822537648084742751219407346952277994500581258648276036695005182156592082939702699874117909963723801718841116623027401777218899439335064658167056215200292049935916776597513639257443191790465310919693641725933301223548289248794755553094911801384415183388776741323449860778032747640562493566239729164997347917680702605150814226978352817951213231396689491969297757626897619219267716810939004047172509896510270400694970973135583841274328806818814447685633753774899982469778209786822108921555150774675120822671035759006539502349849450161129348754195714458187851264527084790990477226512512965323955831919255768242734450131041299445105883812338029677343494562317482550243860119751873092828105578293244747426686596622218316028339895109732817638364270846927754689158907497147209900002168529003409969077898508382127948212882834257881384617964269982652541378173411401272027657563681456691786871629551020358312118010575562245179969810532343686337403874682427941992330660126101474932355675128671698880476757340345240379261589757206538276644140243591448375966570055514946711001939830628054237669426184182781590311224909178436154615498910364840469574822053279252692750963181058145383901013531721214826795013968836851300139512246310245330374826811566598251188399870134643669880791628474253228426947080441379705970495270390986176932161838900096239363450336480728358121660736783390153601970535572464564299058806864333796686387332594469073153994385095844700208782183917632033218723279061265118003742045862385255784466201248679568049596072970397193137078985883246128300702052885525594780746421564585095609687989993834458290286341002657251948825144826747690349719580442518778780147176492919929705670541876557866160880278650781294603971034743162119449700828656087138697812958862341060764175561728875461987392412027770954908282267755719233294642635831139364616788621000533190069439212908252999453078905637777705952986924168674312704339744669618828464804971433053422940988214903751875430023382739623158057631732036674590120546730148909308081114305395315207212224910493384820451384991653659448978225770473686367452916258534384291337351979164958424206426817792537470068229855493497241376679004823719823986988819747368992479830016521541142569954006792076655834854075734380452785393416591018233076739855859951410119020057441660408926489240248858744234052235015312689536645294066140432371538870776200529913862764092702821705479233159575709417292511938052090281538838904153719905911091647315766800735523857248998434279507681260408890864267984054857680118618793055455315622205911077313554678476247214182562353412366516821551448538698801178741559109217598381111905727628385072506908609194101524219004318791983285919328011945534194082177815445375320490267107125205829887232013223554899335699770372084857430405975261812408871780836901624964669913601205854390535718538731840636213507122526210291026705100455207090799761916303737611095498718015383273695539367449005383389017218914378891403568432670564378038585523678869524692366223449293349969001376439503780059213395617145599507673738886653885084002287206436116828369384553066032073403492972311977064650524639891378425629253332159638893041813032934881952132399467976245668543623780931542857170614956164264501651855682813768855346286854094720443251239437403950647105843269022721137295157386738355758454406134077910001701403422976794885954473027461166220587841397840501166689575531911597317805808102591150807553757040574890431224836986962040645775994581404728395168739344090661380684450453668777568518723900133635942345468808230315935541326100872412112402184210644842784441419043649336109690467316829152591954072742492641626149646505202268847202003522472944163143434566371337187056519749048443128032498767230014738325368105328685722551056006904268081383731710635517714655609589045393746852310268657794879877030072609762526777676906587413626996300426686644709623386418126598512445350698373764780993529514156793692923563876086993599334972521483921716382480371236195248547504116573719254122734842113324863025429700663774808232575994181772898649903605700839743950982852457845840949651080764903822208659780042106452117639105404056917648995969185693424149218557426393076637989991977635106196512517635575597894054332477320213104103434901706350025399306587248966912668161365182748892410489716557258371099007335816409576050769527214372327366650683115150380214418419473594087650996460404736691575324223760892037138463418698822310363745532985115120525829616072012730037063852115816874271910572148573238849052653845898094176380708957491955586066229271021249483671635201830155532924714632343434264766985024253387001869670061041916163130401004288328657034744073073443591086199025089632663862284167781270117264344512941123419787277608331268860291768876962913670657509532109649259963400454666463954175729547584613759945419011937954679884331147629940397273973272777746947014520134351711838663237919005139929043313258789501219489523017697625512126774527762030794015328547570383195955512766373917283145478618763190325058642941220145121600343478742636109650892881705079013106528271994691622457855199565910642173301682067979001538078601743884638162474403077860365622473996483497386365224386071708605904734994856386863701603347007540114838735654914080295703516356594994280824096309295328148161496133758921797966842177929839313857343793692770956012318748725803825933897318645861403133271042849933175256403068696910129410121289164424272137399182682127085603783733787109968104098377394182840639767539696935306818837422599490985452831771065986686738358604386454238631747695032298720117807558586836496994869080140906750689191320601472460383561033928714866291770324818162367404839338290964384174539185327365830116669403274602998870633572721375528987937765337424751817575585993548538943792777456762803173152597416118486521903994634406542092022457035412512089719716903824362547244173041598255466739687140017907316522651270207628911428971597712163138567355789457003975691661427469923898261541344493118161499559424251945323748478521863105555729254589082706004989495031833931009839094663432828454105993443429528683609346283307972199412413650577304009357170229908626694729479571707279191962098569410788797387116537722426293005159315130462205454026604104774505979406917257443362308390831984482310200498705622840153669147994576203906824808691140793863550209843773242675462273964723207251333113707234133332158794380914462429209698058958269620360012301137494270458041541971107414062230538825504454778148955842913357348229414247554335374950847816529229479964651677827852466162472323658336596992793144498411169963953887139331712871767095344058995510829285740308536098447786655685608142231763572727444034305745793313100331751927390467770902125435180485204471628295520373761051359351373576732945520764899520308085433009439366585174313415414678262614222167278950795738515173225106150789170881856853266107791657747021373415176273082784198023069741752299143287874627154467770244598386700184535105719834780931429162049330485497260599639961703761037119953035090240627628758270352790550124118926894974107653845024624222721268087689364866458556714246955179465271394840458310202672069358605556074069439312509801020169066054625060259521584221534102551029045794300306609814099988776870029833320436067962016173668301076460456103590502575792073826138460399618135384726627291160105821179995304097970752963419994258938206770225490498311907561432641961426603949477307884778265277003119369464287892374809424852137291290539834684590936011126006017998162459296028952201489720114896325655803890428837773405518972948714583045517236159990010715863466332670076949781562000241927344766917265453550672465006669029587254494056576685826668608595318422558790504108252353639115298138150757010689380005106933100900941116666367319408353402147245938236170399869142687829933986067722936176771258587243017429809482349794707684703513796969677837626807048712759726293296681835359677358632134440166688293185768151567922875569810038791965306148261881404448138535796453384629455763236478977717294598730742067509147578588808526369885164150741813112799770011201145952960392512272653309439459796292808945690858689723238964592542275150992808925906041700425752142616938587876495397056539711372381767698774894257167585480760737016381620420544123996949692122388807409536758729380195344861772323720685943826313242580185963012364030410139186343444673222429143678622432282285629182647870000558550567280322218670805910654202539734603674897313721201460325823716144885838574191946710135502706128228146795635075113186958580209396301776785477322141977679033912747183143611038857927048793842552894970270815456611821031121643092838972147369756612082976609081026164061522971328555610821240102665756065079077641086261129005376143929758686148109264012767519985797483825928014381956033921218505436553539165300464048302215496172120936320013529233504663537387682776048231473271057316185888426088504641345450429668783339982758784327611512538088806520473687554093722734502512186405720713280275269551275567933516882426530634188955915626531198636940094361643706653181598991516973296350454759455467368069967384956396810302756773504252739295140644935857792643530337166810787612508041907035946417458303439553660987225805306595369849931511016431002992462111798864813017685309108292336710226979599904086256070213430585188129184328819463561608387900255705754312262183537869923359377578448324955146613006644754228354888093097478470009690159652040561165926016268379870857350875430001019545291155930268071964211051810374784965481203608134831606963937872294212339676696942537229916225539001388774050328601205006610388600923634343828356668785527010214874969228015023274132702518759669163708840485270710345284365071708261179038760334076501314407024393462655038299970858819410390026660299698377097308771396552600704074578103166680242631661033622502564753785010857284374256180532633993019142977646027361608175873216418475446656300634304252153110888264707792201755752135704158952833016809054585405537101506287423356552805252951676076536773740399609454794447441222839000930077800873628041256495215176217553285578257045500624997424740835939579859492427096375499624272674480346447457281346583065847469826193293763869326860796304061413343978248875346078734327025643572747911598598413032573926703941873493266855844649082401003513851393340193300429256400916124968574427158192853358686483528045292014950650902659100256597302039908947542741336810923720996647341430048398912276577161007950442873283403610949833947161503752139550285267978064481051108985339137868317353533034170600839575441070242647793432284372730783727081463095958575959409433378954845926547066593510856285469005187621559625687945434179114627278732185798698151883649891460050048672501696730588254918905865336744881232205647434767736805267253273224358911264920011321329864666473924626809347014452699912811018883253758180774573228162020404762321412770399770193012875449484964250803984086226678621839049510524527101941879692857463371828379880686271568604816781406304385040230058878523524200379843901013752031625382281061693287391897645357809479995294489623116431465626345484327790129468645863422397041521943039629908625879662942188988939845917857691789900292674976581059065022602103962599358579434049956609007313555754171837600465481695069155944363252101390122638940182974058258439945942001053406953636136753748939528793117761343161940040147174343796849024602122031647407412869724743960971097488797208172774915188639389996810248889317606968799453532423131445727863728151670168430821681451167139675926015242724999072321791157700668731342663835694613034045682196938013538876055307054196452217698890981016023325799048962473265431010005672491362316565185141379789843013296343572798901994703888408466444512725119912918021093301396632530085435061144504335772430168315671267411425061194528243599412831177828378845488098083158047085270558637867636559380303356323723110924898672694814838206572292896208956919448297453449692980929101312521925946794111826758966627100619368949628556034324334874303523635980151235258001347669394761965528718327037892558430203434268469433786724421964745945588909919019517307600086807379855836786824409835771036887691682555394450752974666595258956062598701392658812635233418070621617152120650719475136518009492921434547802775088869046554591933464454201306403771786004626793633188182084101609714153236194991860656281057879287659174003241149951057544499892948461861863270479390097980157450389654992367155329311132415802344132886833345091455023061630710111210799961440288001696221856427410042219054069226307126839405782445827054138505033356644322183546344755978404054973603311839580591287046582496390478623258238887493162485577706725894488099978796263353144602979203697485249599375307728620657269127567885423315439419169010038861400598433215476136548038220022578557115029882315306839220632268155825663943186451940466557458795574275285759899739008903412677041554544528291829998475587713132453228065238815656175553770008891710507862849103418861921307457332375334207112660853532746605918466141631563472355489843430000467850766261078647541497126686376856178464026136208968517884937962708476509578488730693627158138367365829423942457260190823003237708947257506071809590710028893052581858321892125298526413834089200586805471096416595137536774492797152460165796782634521908196256527542274886897829479581426345740347771183754562125232263379581667368458459093524637544556746046119550802293726431264571706059481882144681285643551241949217442373523047528333027693220388701190737726207175049560547308099873165295905226815581801613835706611104645335053943422964138272985651683714867053022016300041600924545521759944725761997550917545637953775335022141241012792765088780918535807472814789773749374749262726150294456985781910100587275588370330990634177764635671338210297844486787171582376620833916870248568876743988342005751462761838141337705988487479005158275313880494234451540569914532782249122671626116030881101950245021551489854377672289775091469720094532435706399325135846217289882666058716204421682486581216460681944851488180549734956234785611949633507553808395637302914179709386015536334103448196152878002419516586706470161682631942415272763791007126440576232351750399462921879834377634394750790773652583379421795096333072810912397333006388566279998529171331104327127519135283022096801730137520723595083299613506390897030465698272257640031305513749348022123912297209259964918244228421488510788137548285984956123576172036040418010544724528277251722488531366794465646676672052161256534708319328729398745594980375805013809293657678778997703742791322586431185947068978046823812875501018107775397732458213187322918785429952329103737956890310496392526467754432215078788728570562842106353326572316867445506175399750348331710931350422932991043000639445691522877599428842348907216771284524581420338426895046672023563301161876587253312594673345307010017760883698216112671941379865766852854459743964956818529662043238591170239435828621134635424266768696973546401420453631313655600050843669242855481162067917783237984698501906016828644680383719412639426943617286152454003684126471551692659121861359183861867721889271196639780751362951126683912277393272779073129934716927507518133186206227394191201707744993513282978716502872979853833866633872449242019052749297729939928404281999795365138496688262178241062610806405731887578292057171364719331848915695995244440543721023209564408011701081138665769240497763156386021972429553939646823216294286110361809395219974584300584997975730366386991006080103281132039141774588022936765185238111824476677691230526352751652521149304729015177573197462141014638744450339939746927855718459258122885992538947072761654809712540814793060717596604957859996480288999530331028686360051091514642452291973135050556383591850342111024902938978316926070414850882433590118164752961010478684822139755219973007201535358120510545533787170620817681734723758973442442449731573158247589420308931267912556709704563073690276929647147061908562851687440940667683310370181479755191383019373841208579232670721781909700553673694350341997227379747149655424611002493368357898012326478488344701120288373378817891548009880731006642259439092404636593870857288530371214593276738534169530973246694552285061203210100921015617082703996994308249945532931382704808715349186297715132822367235622214696810281982757395738404248105991447690089016708323712444601273860056686622482146893288859624565087365160607237087687247327205675449620586307349434092347708502439070208863343623786758092812469031543373212190314144873368002358914203690256106451514002767732952457982647292598844508097107029253525841044353880730126613736457671538830451243374781636114153143069909218485708216212780229074608921415667095080453013310692130323314257046231316472698258703281923940841319451304089482962974870023780229136052395980643326152840938306833728704183375941892489423072845038189234595218352261282231448361289366070547466089147625730039252035001759747275545728279268118925653540297816622936348234470467955048694780298300452130763080255697578853539699479741678196260626277653187126703828272254695673872876890698266334533058684148647438908954180623677670951853605479521807403341828344597536674701056834521949439910574963873301122755659250854384969263833075202669577441423525206929296340009790563638767532922769094600416438722343971765448714477265062163957016723641886618187215308712326678052765993499284901267157229965653416002597837688302224679760872716329424832642299442273567331056541792947436842569806639404302781100870220297535099543818701514171325560509504732549176712669695782215131872085108576828337273746533599346319449172634023025461938668646597455568454856320864178573194280032853035869713288798816299779503086357090669945794881899999501068956538001108645092405048684955265251633805949705759963179316838662022349406981100956438933866429965780712279906148501701152597469053894337827589622261816554143033808762874414749423958174112709961823679752867262692717631206270308642496303570724319232891927721150647924973473358377046562130300755078065906508261666420615756367935747574840809607239097869563368066305129853174526113549898435540652522403815650758443641578138694893929309096536028297873399684727832524827008969547933518860163703725106179868261604767070869529292702712956541780218136128913365164404737999622125152730180780493919749168115345014548835809182806698618231030425541410550420435236286703101433532789750859040039641658651393401556966117601749235199929152286937432352630948862104691153493298952469013124559130038810752780513352112649673573893098559285771298324511130142563923205934896491645273255501254486975362905470110040057659930497602535445800289893334646685601679083398322425775657500098503242005703287289256735915889426349741561850705867132747936050183882753835058324657364917472973120314318901548148225029492558241280319649677229865522017446348418130382534712311437850681011603863983177143233300157543876167437448482940966621642283881034977701560907592971266621589757056968830776440109166979420664855614179364922516854142426419043979362302486324944544686940450508822429991474688559744166167606772156601018927613855157593280619765995487415796261373538605201292313064282287739586920189936905121991870464192508518832255739891865067652208374214290331217390295682352912468680083514750698061728131004020838260002470206711796600230374202434180202823391580508707550268915047645794203794245797645090884247071623397846292399220956477177575802059642549980940975456478012653396638579800011301548490905507044156565905080817928444520160273353500426368021412111328828903674760121267275316730918349715888667489743062521872988568783699077543427792750625930973601742613046609026570541751752935966211182574230806210555058017417107924990494781569204017309623228935163222160077561102399525773046559277012944622678206365119336468700793320094825365693819109311482380361708144952102973125795005284444978370150271876505196172255463277177159603815761170234327688390194951069056666339910957590426544919175731500620364458772749298050579530588708759596443523845387881668033221921706381150837526079492206032260877675659684966143818971661726370937951990986740591871562186309860523869574140057911209110110343938596164914641393474092534479520358580044830856394572786948326316742451397000758991203751382410536799987335059938183153487229099408318296383196893275450272881898036156928636727770613148701095470683621952579700788305542398593823462316336597296049104750958129195996121462183739441692784700017438418517669082786822144394294420369555951682164317865482235471272409324752817548702015293278735270289293457826483867510387235924859135657177127914854164401160765693507538012807440883069743204063901920936334331526574384493466829546272269099963579279758155520188500005388584632447836501738807010103196000198399223212756671129708267996719291755854002424860486129192750824589921583702885384789040863028714127845504241501776875315573242815212323043785218978703538421631010946150768889057843157030622630109777179698206508923631036745451300560061844919008374471114977552001493812423904129529166538977311664887195255385035491754841122509720960985604229857054846694215859242531993629434065458795668411889067289858966774593179660838028461135987394476132254488117226429487054299555039111442521972933287423148349040889505218901933725432402651750182880321472492421719147438520310485483136456918528327704267627881783264367956938133399669822348013351987059597457077092333980546966568121464917102046944920516416933227908754759741224296549929159834906804310875336296440993932663361004339024175865214055553481527356168889164333349485546469133910625231989268744498712847804428983126365859276952121784857045512648196987494082086278960257180501672321338578910455088057904599756029200096169455179656320919066110336150659914248034992538777200138657301061923887239895096132969595963399453283624763244220532857727476321531255793439190364914389379933950652461349906343805569695085197829694310028181130178020556214130407167358674052617195969108456833772487149500659675967735141223420437048365781805759142554259159373922727495325785277964350682122334766640599473450885434120441418404465088754748298090839116659034254972320726086053595089303194455563829305360018241988405941986404358431565651333241302868786674110892354086640991253792239238276398191148647500659926830433894210136413151653145909740706591907228257675913525731937465868288608353781196878107430138917479416634832519734150448297773722106821273994832004058395417731987395211390411751487814575746577833943984544208896117997995964947085673716385292376780569638732745140857472270460735520771380654275281206732299307496564745189658385574973419229462268209789747771094671818157411096648510038282968303696347764882655632994676669392116859579874342423405354099969116509438093288442001504476812847046780899118122264202887044372246787361516548361957794032810721977106982090205888969672611967731980148632105652777668315383739263593868805514849043817945570426510341449298344693633434952444540745499494725399690693394321797322862314615803652740896247361130254006002734662218363295758587606052896363869321279898581703522153159693856183475825286136286871350565892024245835165799640413631931326704192211790320188742037359519229175522076860306833565110711167707960228422089726197229038708416696907504447322476521055585058765936695758385833503734813198267073671379368474392167293728505006133171026667269016526893128129798350768095839663996843600783612194968175551061065677941928275195867511160787367375141930829297144312548654761590983956394795874106165760507775695004236512846273261341576045509579226962379863204830507021829606735499295954614743518633387220031687673207865192143001220113096304819360095816377624800473383984464703600715699234884126649055433360128955670622803811323789602910369714431501650061124476014593422095020449831968255732220459793633873403095464500306815858661255005248886853651237193977210196986814236092639505641526432094708157155845449968584557327016626772106801944282823269822858322305496180973217210941870871396352975136751887814929347270128950455728435390892071244524047797592498494270987799858793448221120565956183811561552156307093894738424460723063520931022986158429539283617153019248581084272944320397577398787892115535773150872958071598272276993191964792782094040750238206728342571388962109354679633353037469875912808602866271009895048034555943335041175488845009509096562219085365591113732761058729461700593751189327112774224814574536612479433588790444529153426222574665118337011716469592696046900704872801502521375062440939693268210001718905040924049221053147362656173487838755680134490355592704861484330615730970347829756715982991850007635678839289834784831932814019036882303502790593596675307019839645215232118178928166296772749059305328621528388965290693966444537726506518382268799511578581561729122510408763772035580236393121403522234652686048350542963461905091466384704631689356789583088272616467590934610889438525805231424719238037701191005453388463910284705826165765754465935328632680428817477976606722173103124109492819348865170764750386398057544725727991898755536089700339398700264964444193074532490449737855299216129208274397096435726829610195151125188355898375645334700625735948166929884589560175447988573313842739643661131723664842911011676220114843575932035468159061138438513037561760084612929377703079716894319233106452053262025000356368951477121566733322687317640742758259939267270899519781877722643812035607217798922498056073451511524307763486023258188896231895992539715529688570743752553249112238437949483928885402802280291748888912263345835516912693710294369004993586354865844404160014756450682014288322924069145144826730834249459185280304103892685234867647058782815608748018459327480845610321706756137335654940349139354518681493454322708683128414560389687481615740198647533899578503436526069582646058787629967083213720769787177765789050161582081105493850004440256195351049840339454788726724150033422059805797078203311062400071547667258756671266298994481979698266061108650873404659965152644858818593114929085768585841975647157489281429608949973457589006289754435516823527540718380665304789930059863944511521079084822956220860779961983603410192998722109040766506253506093162577281024442748193961594513261070321442539306508617799011537227745562753972607158494398994706239307811892415970231233237748500964463086779068016941990011629972693500126088404083950047312352931754797726460577480157376215050709782129119932391056845592569918035563456430941329138180749361692619657641423809911993565550004344138875591272724535539160652898604163936305937567015945603888034758504369476096944574620967978708000303428184063962646773803689353061242768652908480262484660778973759531458771641536208363741121515833877479971287356707006152522620532120729683967143958430500161525323835037568330724723708736911633280550949645107868528828360151702152586653155246368038729154127898590736322962000679656487878065644421782456362335368540119321761055447513508662003844893914354166981373975694674356716415880978068186658951197063218031663192781964186113623645167365511986232113836452892517059576266988798666277175021039127144273698923921527338958833409102243224447434607409438966897553077235212814907561617856675516377047831568217775770541201758581526645723253149529005822570211902554804792273376744225547321959637141529550003495374858128920813004842711774351389601735541126341196061586494500760990778915597829934223354791089489921440296607004747986425543207467882252120877187568705325080684151203888216058370246716541176744478972755185532071995048109857968371685766679712927311658140930123884899201944184072922094806576488971739129281278697376606797382736580732377821630963640969415037945311804035082183941296932383116195439220728869536199595775155175609612922454995544460360115802717861759160128864883922697175489296868143594268743987587945089011854112195687833673664047184620453312014271112934115963222785602810410392336317290015105520617586396584068664839113967445208695955611227909928151185973404012662091017505646449738494069532880213701692598348778874821691692687003627194515171755768374071551260863554209671167348515987120753544830278171467860797996661554186391889223141140743164672777261467436853366308272903002845016708503060738065633392117389518801460257836692827904117469783217066979366305833657433494198858208977898317051317408467523444756379312363157720566565714981795568240582661835022341729556989137845925741222091097190551439720571728012574234975790186080806248194478198255810004788126565733144163861396536552090846303633112877812727189081353402307292377618366736427247376246335656036692423501209993218635653334628114149906020997596191728374482307166161797346788402099486292099876003609195633021527226507867722556575689248716908582884024271052815598491438948185299809514719941820858097714520557679913056121829340456099629779854168479244314570797293078858528425854971589049426128870740229703422614781049104115042152850660870086216214064749627245235327926579339096978049058404497930298033655835409732009650986973976696814738708547987049748635843903471395534991610070147484439902930117725559784115326181075442233204453207220946641685360738302087664415427710500923388098087690557102162401382837373051360685514047055448420291105920416802787485693623641481536627603422665024261469057249067754127139346430284800567021845908990742972640613968531764514537360060743719889207872093946859882209529390694807241238665377768496986588178375686597487804045556007479161570883126878595241218617814386309010924792047915296627862288733511544433656458781802396088164987587214616203675257519710696230724141339130488219956020262769201068450058041217196266477105634943967006799855845029310545368565368802511970471853810456675116962622284836666751652972565028691239331824529402316537460792115213898371182118510922838178818166749654850143978284692020871273959115031038817600026729483836152603641115560705812078869760550551561969939901460265032329389170896145441432860355386948199029344130181850347381253089409505825533726996793176708264452980037617979243802268781077669711907278728215064419404726706069645940259919716835922472019866138809493660913957972367473455488475079018877415787972579997578795923109995032347905916232904114970676096007417565066800486165859268722963345641527726022869739085345130541027000827091814369638649603804156561208903030251965759337667878640885840240858150506836162804302080088363054350269860874844434704979890340415319035561036911422035889777876927842252629339705934066099567868791906518915044911725217879644174098547551304057925656365292015569514862216731158929892491501702672759830067575481202086415376888830676947316517147714869350604664124835821091507423156059616379612888292958666269397072086895413706581432104961808731161517067768919440112378192495155559468864016373113042188747932312896447894501407654415912804520550350147742836677409698147115866308155110347433813524243334415763583004531124878562678621233263534878173878827870925881947654613281544653121876976091741859474326733143296219831593954108951326891559794963840001611898309888527898185330248854219104212807281217743254961968795962587671944338668518415909507073499785106760229771154994656084855917423566459805443355191110522180388308154086353048238886788690516519358806050622641522746190501378161994542157074768354041975253244894245641594593832432886331573242787317592656887059019907652795321398455213827947516307302464104363842354652104554852277054827671223982679351114848383320610470864559697723328728022822987010651857019289970794463036149423621809643966283759147001312588598224693499019920187300374014185960113128662578241189544062443576881020017612842111720169362573763990876109892450129082667670694127868050361079377604027621272040251537682785073851653926043958984942235182580230985613148499235920206397715234748606620754139585118129589955229337372332087207250780597216138185231864063405148806304184706968773313332885164890813426190591764067344113028992169500008592669994543881449094179434577627631949015334619630885682389554050375545884922123795614777182540558930054629015194297766898057453244329635133445090436063767383169337890527714869513566432086356437541357488492985349426494664577409204277243920008101137081306774431412324820207286513797088540522231527664259634284703867521598247612426991992824891314575016826630600359232200418244493314320923750403427519119450123513987529974587857054306470823047691143613397627543717478445242518451936401204509196021785667012748239185566063990048385017889189970861974542111446526437971740679129830726394575406954990292752457866848287175980784310379381977137089589413513657565885628542643637276443388773534302128649477938993772317097352634461892560759711958545278438211506186962246073835901189831474939395125314912882074752933059598533321874657196187271918665293582900526014769178422716437547607980456428872284054148237101204585303686398087873360788376539013530600945578258067828714572505944572597420148172894552776356838446558760754532145029753035958486219218092035100606938908269961096998111467675794773296746227381466475507892224627240635332387960202552410453281241620442556361138561372937083222027810561238438659902150246632434171779924305944878244677992797841325840767837648848629939831447859811132706105680224447627788570232803720442799520929021325737562703560192497818618707606749158157310821151671493881198659302103376401283758954241798980348846950825124149447313458481493136215664736261854162641910296947166074655434869181746068217831584896806591266311258889577928240748271501884127685752816708006981286286247442710853597341610350592179728967211960402212819180338629964583551123934940388321836387998527248475307878936644655620035180010498808915553322322841736032809606866058807688590847668692789072317991164843327381993618714525016082967180722668795039826837807363741496402302470855237567911025486785431264865246611035121589133348390377928834671008001257288452979255027007472974200241674507538551599450156583540610265810883337078259890437179925912773302258706098983862062876993214888927695358292595931870884419594224877853019763702659890546962560035602394590477234749295520586120809166629903011670657478045051752696420203442318319475399304696036295981759037484979983285857737825714802507469508346982655850314640266035118479030458521433654703151585495713478871941912611102866217344896377114183004444642668435222272309808906831365220453096033304653628002801545630575754301084479432879037699289585841465541960301651063603125136967251062555012370513909805357179188494881519866443499557414803184094366918527333176596429378121362161385584403165016037914508513459886854430287553897421369365003695337253951311669212667859035194376358569297108261895215606865021358922637176984267115947204704698343114068499557019254034605760988631192132116797662488271022427204963944258053180228969841281622584407752697899564469367371691104225285993941090386602991345379911099544044237457268370021804527700251780962242577587309245404271268769733546815600119830055981688553876784984917749319222137153900158396286045941654118040610613151892674368982307303128986777707818188638095439142625154040111287883452688002851488137450486133398935655872948254120527039695647644214312169459928665007613701975734578890448743679964153046389155069898986624681714207022471833662078962523134585610258885284364825243606407907663877150924479890680613282593358601359506902188742968938929256473225707292297561203362719265091380706235139536702056629726866419439954683787316399129168511552628812184439139392711999159423909699420568616765945445835851163238846503181328736404568925964352693238952414145995768550093587379541111748843379102822009832041938473181256478945151480720459872815187092143695708938886403944499837577283547199988387163996253972922151014027721988148452892176432516247468517831423527865766666288293733440878631874139320749777815954979119095885503881690294562803638180888457455505290731683084328204255279413058268302165810833764366799520518451115442065596885108828232979790078751686088414160970076728045501873655631522046042107446355002683162369068503694609306888048294516647070205403417716193210570907221782932259157581670988368303521685234424224265969871639727135995688013663543964523086197415494062803603265623257088469107580889239739377072297088266878359383640423930900263852275273282735909411884556487344538333058695743094003521567953743702549317940738115622715050467526044992774771766317613428510157735547105171316812476938679598776100007616845543712722773228277992445507277570318314320288523072629963466026764068400447972902359264409697371563579109044290959239591299699458056955966218408600465489641094748158172484940399817773286274269230712633565758571963936047362978748138502972162962332944850989070047837873531677443475171370674514417094356521695083996493422649794152719125994183794488620635139739496620416378545181613192935386359066135829342405299946369094766581254173285705113439585511646922320160289261113161258125742325584048024644790470480637764594490265771566315070496021000383930486571749530190627176354677327481961126294095844567114593212144181321354771426321711235556906542524853791692136649699052937241336377417196389066488851141486454809337716168446018172366669960857956719409185090285599345188232552441377375677094356835070850186481333570758557645323191259581632169269641149190792357438969017538825382210896223718152338303661223888088733881450742832443689914395565932921605262812961347480724461169331245251316511690580270609482298481707220699342410810472848444343039534861174343850606619716218789603164343371969909243816914841317784149771927543038329667555426163071894037590344152316903800918306595164669617295433335555508107986437406051072564030442907327962051149921284557305110866364344060673165702412528964392644039236789444406178644630720808269462908940753728928926239442752590750777351973708846536991136729186132242541775629984516417323364166181292651623030400551146874928416408675249120457053366020242813794428928698501189093122776668408535184287763299871087533306913271689962758358830233488028593837949640762344347590198832194517489892174747637654412747509825405378035997603648003289696609691649725930497979578925559890692938221273696126239819799744152213313924820079881938504157948000773240323641780238444953088273069434162037476782713475813420371097152146139119180209595463775547761075872556665562204633163615433465261380963665295723141785417660690282732039638727706592713069187987035942055629695490596578828184912279968068063293294534202282875878901501189004668066906648935998627338548374443863024878758354122112655370660160116053808485367069031807647406480655101632246143669516846686127881854953241710446598045538260339372020346268882279420486938040375341467048660480501615460204884970994585158953992974649976529447931818266344687772707844057731306814800029155695392494711472976486384348980244316729983326278373546740079918472572834792191727747561929535432369868805543280934644364242186591411232102445051859696543923355521130166010777517959350687558257678819332242804848301409088331924446391058095994065930229507973378548895088959164609994575102851325436562504836390267169668493347671272709095435587331551712460003536445394142203330301666327704157207470541291466768122900530303176573930945670010589836835144058520401392746341933852804904268037624528861007131762590763561807864456025785309498189025663207863323730661264964056033233111781342463457685218776536619686259404021569676863835831618535958814806705095707472003628057254125189168184638769119247123890003548962368295175007714496262089960953330144945459598588970432706294507768613723000211984691975954693248382040281963002140305108196133613233411095426373993457732178088351590515127138919355901885909808228181750244063406957184992887334761391528719971126318376684215753210578704531802371872478948346291775689993035235202230131936693725404065258430628315932935384592090627839706913931911671773584450975325457070556547775419382173959392874404502104319588444534670395389877107649872379720029451794227745170347093892876578956862450893818177455726930104838376359053211923590304537677956126724822477009947589721552882815650319765431441009780162297886246393695035665888627562802651623182638160321027998764318816276776793122189332489667117484849836402529030000193017135120515940058570315206379925226698625712597220720975491038974358735756078991078408997272712097777036566540154863480150453526182452366273354317216521853670961092522789724528225118962083871080534132825368255425052630576122361149458178690158061417849332598766030635969976564616735846776273193739564876734165554784938610685055244056256494091273580727107141180157981957562595993540836440265894839988241099306238302640561543275634507508580205254267420899227328890022354332334530502102677249341394845772443416794592662299972054277612315429688110892645454652079118557297196708156208067774559174273568348785927333711551789325439981345302464955130001018139766725059708159024356238655925593064746058976546425781411525863603919054748742922701829886909796381825163603532698430831127741040757305805992630526801039544503334802325185978735197551650903786017013938649073124743629881188860443036961255627567005484299032032292546742690052954347308750629421439112288184042456507367264845914616584720079089434005163688521285501617897843764800904294497488312517864680191856870661669307852001769230922727920671293955958511515035207185880909392071680984614396274472729895570183724661592335455304944187768531238292158948917971821679562594152501684068247012377415599452493859204513473004513669729673538127214858858222902512654234062310198338356699480291976482778066215845109629420236672374961213393184856107930942899781099081992091668997316247977173660905706513068269719526633429837492812278280610746515796740759012947322776524515022229880815091890038305433254899024654366375535832656506001438155309125552194193379709777450064886493961999683932483840053679558893390094898961325644157436228256243294241606931076347193930317947767566384008787164260644486424743584910447353013985329137737316287960258996521211046996048717019994087014794040261943202389387679260412370929870601543128610312253274886837000983356189249203959935964714117660433495017498573690485501506089808233289854968029676309782101317857380333267536012951409248537086094833041647914086314214386075998251951192170284686067278946678087864375075720667205895703445550705191109957151078331369347583120358661217820668013438349094989871776449342981644869344092195859523198177668433165444794532678740477218895658443572277431557765776850671261390703455214738609054552600324744698534197113022367879570649220944665587657925517427053295922165471032688045943684268766688569350414643874561276079558517960925377920773464566305888764250119902203062907221229397408712917160213041686342340498996111158866012920955602118347159161221640006046109860138928452452567992561636966682115586843133557870029540183145811622783845265060698209427758130774381304985207695114321253762543025795338275630064037995593260504074834911685186310020075174035000352757513648966796914525945917157813611335417564265866788225730996845191693683218781756497871639273968799573521315226390690207024613050846326820895412046261296678042195709393202021689744123750544690534399608370306466515961563254071874374608011828096013149415990705696074256266575291915893907507849227923402260804544798914876001616415339283456377557722994553080718296909017740237299815667043582613223502595530573023222040448532966766837274832458114126491857278876662436320624318282822094312428614984099424865779545090324907990780163621931069048036917837730444148650706688141901513478437130952161200554826874493188260562135800334184204808227309508552268351328036289475634488509627627919607097454446024220154129800375098220507579681422995758922517747626531999640953453205080530439729601121984627003244189310059811487706585161622814210649165968820295134480685084570505743672789574648328083691443085337570983407628735011725261746699291618546537265841754844979529201283098835669659947124798630757519227243502988362860017638560784711713951729863592766283038430583365132359092156021314788549471264201636797168941943346622152221273979653897825649492631200099319649241518089386394632789580717862374567414881584468244516002165093141488751961678883311284980625108615152934144500693653667562910441805012276049521085181183836783394859517083499404955034482070864209966624595245621493456309838044222784336090370955993517005776015417793073409230498724060574050281629893402789841811803917725996318993457768786043741696182866734572411127234779872630695278297120689193893669304331897581658008789670165657522279406860863468083144944680848962760321969711834800467452863356315435159717471641135603590658985713055145483233311885996314723368455330962591156930724433887043646565341429340293702616351043116029667977802281364528298168273883316392986489265001632046417009106742408995848967385577599991608577023447477343634816264499047040604981381057500511003933755755947753601604086885254210356800607691770993578193247259686229513384758339351144883606349786661829478619362719961605969914896594411870702419975191212618781876316991250768476580446523487870845151766704960853319718396310796002343258712024676363651470034708847604668815204657866551467754008003838678088157362325493036075628595309461429504078137626599756753918872286705512383753666655792866960769676534683756092939904183945443780547043227550683501751648793829305253620906709412447041895664873180420897365123321456551135233688588614186937997788991083276819774897941332124642362438027000614986128889634667592215196643913622516948997304632975310982571296730487276213265628884167269414079766399118093725005475774821912508350092668640429679521225620016897129064133903779065967899315729926221339073863811708462820007404873701927032024250036177893934828798392612430717473406426007905534016656711506878454909039421002732006770865928409232979706460465445591315578149914377015526801335965865396772227801150031331920746293481948619299229581701480887419420419862583317597898263109415406637300860841152792669635120983191394416257752029438749439732925816032946803987559738347365685293323996091650358257405100762521079250426898677376667851395472403225980658829785967469747334920339040845608946106963041546208444022999047426635127971722097527401147767764042148862900485024488189953448209201996821372457536460289110047630228848802730196708217416327748469027192532812294552853282232813291278635547122260606346466124784067084829387039573119155685810213307308923113909366919931426818429077689638349552941742548761639462458966288021651712212826902033098533362529986458644921957452901787286898861714925593610559706323972694442265753557790854903574202434506410681546067204917724552914547049826583146217379929148191189110656137243330964312232015610217586955006453877324300246558101246096714709640861509097219048591722305656570656135407297316777367771053915251220012291501141665274716517954718866216734641811085530907422427329635031994050854386697065946528115310970539207404586160174265685496433928912747152109466255043422458037711170136880078866729706720550422525384227751488843533893388449138690245307872584204871333569511848399748044511591551802176866251100712012194573519072432712864744073818906742146664190711339439624595673521900501753535982655757806393481804318042272114264853655139224857832347959247678724951621016080107768540224521916142633269798336801738406138847650116760291980789817596043155983965248382606130930856995708477349531973130666330164325817137797568027363967995709553883798265612947900238653941147848998210302589933154411409457922705850075921240314430342136651451210385624465496238750132558485480886013291912453592643378040706312375812488164203160272504594795977557349595390906269044905451958576167999118924515285705525941965116790165439227029547054346237816243980951930939355943423647042546893465179805493727358779422718932957358763494474292228825839389347459939619193883227277309329797930632224437139876926830023636992607079043062493332685173659341057905973007659547343121442889053591813540255659679591997381455683677690668271730563320364844738321074764298480550254549498464251947868971581569512248858088788243836041026853579665848613986227379549767031644253399500717489887540130663800210915181676493603517963645964555098908573566043540196184486266260860617724341548504247019257851960843255890030505319247303256497860248176454771046202697829395175402785935313267234403430777368246482615188323280895185450990254976816810002557406021176032187129185274112791290667496751295609470066562077637636146732145341195114368012403188670776913210739399464679031585551764762633315118900301570366436376559918942558966299369552227655327242216946834138834084529517575140225535665164139631500425304743999958324069088005199604833986428828913868197178321588164277195157558046232595830489544307469327889808808206148444874739129899001872145734691219711088688238846369851956919326551783370622492257727057462652869763927666942380514551348489372427822767620680312911427280502880580296096614693631549881725488547130960408239579928817109835315720279989601430179006243783732273138188044323057055982263821488750246432123428497308008402765802952701847413898576329897247855711948934758192589466374207473041616566654603927131432864470410320244324095444237619256136140378679800855786164213635869480885715335355709997663393445999334758961833791720888956477040388935653817186250205201076616976603944894383370541287523831208855544197329726312773064133911470844761855849559418344002676806369772050104717684310427494071489823516028519378845395401414402076047690633170294841268999431069671430342491423281001537389550153488596037782990799459291322251977665574427587077133556317827459720538614813564771089693539845824158600881188454557991994230910288241596115637289295812146812896486419768378699734341543602699231555875431384579470323334420216629170813103056009929473730549444375343756631652310897646873722521332892717839583053444876467024760399214806106830982293291826276063450723812467305382199543732726036568042630389140439715258096250132602123168190489092422175196075270657910398744168746305730791818565339785734936293321760509018182057286257997534323340854804398476944503824288237286722042817374932020228176883238764630283267393317774229615191627150577744190055266178309721957467424988351426827305637877524077287150772937066299615601483852176825357772407560523571098428490686913309477397428877086338722766698238219051794617520810376652038420015162063549342523089121220087875754212011958030565698034292036188146591410696066838439599486221844344005295849489812914811346092248108444752482573762733050998553899843414243959472487685468418032045782809103398678585067286288603752074145000629837013709827949284278166910972212008725781966921212003916988830920819781477127592218952972157717096326840600200479744614002295188258973431510170439652543981385656299558248408226523656738388575572071437498642047533737606632030871231431498834528194610777955168890514383562990937418046929498355559665107921304624714300584387285248824080493828431262779766330505934341822750755072514154074958160597966729636325345554368080377289022869476305460159229252659672737367402791276722791288682347888807664627578021753751739137960419167709011306976033455190908329731787998133624130901012256790918844785855063549873379666477338066281010664802814722995223526884091958526683475061542694026740689998313730683388150845546358491135499527172262925023931262592731401396033478638233226434080324077149584338150851369451166360030528835723978476876640708097579757723554969681256329297317181229201555074423380022804461254043280337555370073024324532251081185092049903140918069050904019972690388664366035854448511557185247492841005284038285546204292096763029473933462902885111187125741239139685462076269246645604290347249374138260989726816537814814536112166450619673017211284287420585340196552011712638059893527284437432247947723466312140557736852199472343105196132249002260193416738558014794645524129765642863344563247642004950142763589992983235294531714625084639859129892300711097128076748654777731217000315498633164569139992625924465796891586101403768538815973573882140822708240278145548178642791887438314121075161538575292363022059598113482100379245831491670241041661433534463991314918094460402340454716530088619098941306974888133015439041926180767528752267864613269681608238330847601188749432477898756109929660169210642000435030722332140739885509678705632378785644482929830558078429997577808140771745807269358332351800656389245506625259906456510808106676379268312394839780706015320979241932163574508060998265239508471325331638309012281065174272625897434736698084878104545363325592959214506193842067542960623269924118813981694274249206546005894779237834105084335324575347694926114003660503187799627182373183709366779750565530048663515808592458546978635312883160837723690660412597808313535635450610751309634963213159323160088892090958438053667154252993471827085629238173509539116890660201296248144160822802901062674506426332445094457921452721955701215429106741416279164402166889154999563450541977214642369783181966317171689129702227756701054611424956276530303478033793991754840838339607916161316268147755993611424392126266085560015256135312418951443056500262077976436113132573531693527525566288593278349130629706243192634185284993219954218046934783765341267855812753355156553625932041264765918513529350495001180551033291975742629964519920068965191888639712201491442871838719323510765163196739952692963174162381001826397058085609691386795501879849350373281210461095267194023788363439958454841122838142236839536199011812016170476341322493356356988753197612142210023257756782144087671100214595031459667624326210872571652169250984994796090880874852860826748954838976692763447403991664571620270707417735701627047042819749154200052884230497466427231892972544666054472511050656458917974229298400437190667781767936336532131678987005241488852881306909884006642147419319842959685186901356337010191656226968097649337399344103387586100971031602612374324826220583779315719629272731994272305229661791921046271965393947096250049418321869905987504402390024412624567000416549398428457370274835675825835312002366443085860375496074695793932535352604207457267072499946794774046578699229085930844942484936389231913787222705785096283557130547579490874514456850143643356622899956473310402900382228362996180342397217362773510899801146755301780927102802716044387986795101699661893553742859284500291140022514134087802553967792428223576936496502942736201122215656177771359144948747573949288473743319091518716096630280985105839181242339551739041257270755972123143054733871850022154928348648625255859680161432278782115736921366809860317434236527870097916200328232687188998142379370076005938374632852954251746708936193243591636692748518004119293678237047056518282913553303699702846674145768226217490846220042466455933076563119945212579986690897237435400265170008337865454236357228132650481507403874601573078084957785454106261604370078851677151806568050578634690873508587064383082756060033825704838993030893497395538415443884352078330479192922758548296746886534980900597329234712231892428308435593172341208231734710857323841049570501098236779272885182371762202697590350666159304092779311620203781204375574923194247876275351766480591203369410046701723784312948957314561566112549788823910695543637982466950147922416352497557834835224292300835865312693974510849493926142784606595188249752096508073941670728074413851987334795384579740539152712276415220284324147090315683416404935483291300177576485056404259741799353856824151937367103144678198326701278180040700182617268032375648846751101622769651168357773762925778752420862157979804550766250007047078857063787975782292522235807676228777199396866220801263183243174690708661899268597034242437312096414135704781755476055614942700635050335319987597981734049011688366672987276735250176425059144010868788465783963523579827986129520222840826298484083754481978148900909713677411287533759649311807865686153464890035466802078112382088266447703127218459302630937726885375980785618915439526114795272112659246047758951867605168696453214897242776058101952036474250728046684514385983866738757238365281738558244069394900583817476587167316453270974880218563596334116148970222294530771391491868117976904781779868104466174838038219999343650953996674987775294008184355209386351472189865749196149140861850369001415627460188597702920398933813367074906100038605852778886943284918281014638148949425435146062781342805116844567251404874533647089988749448227004880556961885772642156538757827504028512789282952110575929715599640239046984941503066442492448784714817981594467026939589465800557319614921240457292510852773588130998286505658839316980341196795471061907631550035245287141824866085987490365805052987533867693489812123852547915769175984153457226369815871991531546029897649396619829698700517505169675860444316998098503548621648697372836985004990183853097531116518414335571215466755724399960157327868696347122217903305812872968254909800678016699799664416492464816065250980422211425102841314999455924114841922536902319015761190231722867357366298900104685138100140501620912080638859777579688624005399312581909379548959162928583815886546156525011824060127162665049229213726778248078878882551052843836236305199389247171957532089097061207441281419960094912488590286098358903159141195167168832243630057316631458697340383964875969113390594756342539749127134967590703002248597803043060827587887779135162408030139739925453960638023169544204343548439882284151886581483951083072454997792528422445938641963292616338137200042333632303809737471717733952600681011643523748245790252374639117087786557119529864755003246502324637038804775890526704115794425989505852995593199120464815659415698432749548050599141607665340701058466451739824225753628526317756057690839476005044077863660585969307295481790074706512179760981164575251162233002019262466690731105639251183660113763903944844086438368502563986190760218676030847648799593007078954829602494558194350400734396414637226207581281439999195966090881526478900379670125260108013811292804280404831683348691217817582264495359864607732148540839913363598734500741779573920333671540435956546860285311468098024121137776988570130062977883584715314866719364783368946979236290196423801493788399317601610339512905949390768676081595106823629685933629588616134367407634154548547991419143890339475012626599694023567264254777308802911358551022443749903328044691568969172887463001222868978410357818814325276558627413061382500013359497358034625157692099831079112388927113959309260748776153466612448943760918929006180902039452776797370947854664544265999652588399133053968014757612179130817012267162139048121117952006213877763766520200458567537450045108239168588676690539363956958888518078054346269290111473831131398015186389897059708366535697021622117333133660631551920721541441921058215703745177009936604000962591188819548564668874865765486178382074160342495385970981711251857828038225321265018193470848272520453223496717963364151148576664259377814807488034216847970878239730457672406799003994148695228956321894127915042000911764777316750380641685934980958720499968256180638442615466912561607289776640804782137578441555373338818975923835807704415528103240725867900705178619443930742902127805846235627504125691290604870999230314893239846929828988894480587969542213407634507455492910912305256771226421295315411023645458053435220132029888327677217023731646617313064394738731667142895774588887508287194165228838609139722206232569211127249127952224262668128352335640986041739944192824735438100937022559819468247083000366436366522121996454822135884811589121359327586595531750687174247120308981822513462545890235223824995727162888616014483814824575105970801252485450145504259414312658447938069629984357118720442573740743310437533812689698366279959725082635770615849493743381191222771929818802404116884270156743015748046567721752085183412738425773514240776686919970498318132144809430938299540995413264407268684720917942685743972225297853945236625649794266490925965111367465819314800431940472932918343851962416885879081950758771001845526871738659638206798047660842514725224478644284620485512126831781881962070293323046718409682464421514959836404278532705682059689222326092164559622170470045262844724818080563779104417546955520149886663480576131700311066323749437686420676374951233093605568916611632232855792626585552668220384695351366008223488311278213349517980129233977455192567815306123545464909191284152958212794684791408726640736952387332689057430148950552209060077540805587364074390689388475499768596706905614346495390637993489941027832277011721451750239887316631604155901464507007767632867907298503701558742238604466746817462124736858094106790291583784801783545645324723102064520309651197519800399167075211032337563027463023602611471879070454154884915535234433179884162681183985028255188280806962733492426728529672350074396051533943930895294782178286098525513326090312707740433165263779680356153275479591647472531469856071370962464765547967548209481517432853876502473425708116596666784593868241890198586588150674728992250358266816183858746760505786835523911166803083665437621526426444210882982312596390728861988911028753654176352760711532288719759122652390643959314992910336949545374441360846374536039632191603054555874767123290441014409641106856063355349329620989190015810980840489219774102925487805856434457870298318908663675818232062232685681920507504644356162053104295101517902052991724169150348808489249404745747703061110110059076435475446805286679173409198375145984620514470026746470551004168751430115912640271046393057589801081778158921440042644707789253451705880303816219857656135417428502937561681454889710104624958428718117938376658291443442974570887441644405137351237336914503270380111226509884706930429216883985732991627589925981851105735368000625458007139762899324479888287131725392532451197419071777913286829972456917576271104163368906182281563705714035910260668161978507242474065455496795587334086683167078196526153337068169861475568569301370955520466850082052363633265886610107282912378673228994755893341637839900471149335291396200255744107742361349417806784849085451294199495698560331809796112128949018209925617034148205164916172971097685217135144389393716320718489696780709193963136320037012603383532480409040033924068502751426138104161136132594090493537431239274343495268628077253534670984474491973928874393318130705174629815986163841307334286809790569991699389399988718138776651511957395237991646500871026842575022500541315547187439973200378961691974505702837990979823683447643574225572602657235742519923894230492273472981917492937238669184754414208090984577757662819441987917671900903350463803303356463397649325078063068289417617790314544157483516276573340586229369644169196601377300868334497970475455490211605260908442570150035477693985654845386153852243687879932011579905954662745907713538396156296352085426202804075708393165202902601325748277739652973257912027474868068959569456612831774236782957529743465144103883843135567269124444198153591468400378408985155192052006590727869042344020446360780791105093386866109781656167011678868365500290830722939428122722821855711231882529524429483798404187942349241276643047358352509398752025419306099059254081759134750904191591113303128517127794522781359070078073532040047858103132687335851134439418094855913952730775538952761657054885978613235740125882198492772353120104180842036958320791957801167099705966949614117317206155329840869233506114086000706203588927195946428556013009416751087472546667376077525170122455891417750343044436727863388389866308945068824862523045184897817618291495052281873124177420627935091838339772668107710870589668180716544691256259720539208961310306733724108653834501530576647669288877001388150277553065492659942804776364712517799784758845286693367243974316488571711403071695456151186845870404622936333063057177488712744544713392666014967680179952990860326466631043728925567574470317940380150304272931060631223982081068554255217454148088307909894401423902029595723522285297012220768015305117556370769566180669891854603133157316173066836106461475303103754402492650699586773818027371996265895175719575074262947772221695953912013559148797626591462132843483820149441479335092083220619366500701552278710358645202414562843716236033877545814035197533949223248267290327372672573713150604691494332661067351505866793645069170390196229805194746603343818164074079795361856210842525716485198238068596012336172673606968894634028854240036531927769125054640410414952460173289845965023497781844194994528856380353366665103447026844910188672055499071110076949185336388478109511496185972450202749471133368664654999746692665018342823267060471460789331822083522624147170347081921749502054320697666518731437911887586159542454481860303313898137459929910268952183848430878236143807902660569692171677227703417720369035815725646721357392409783054260260194042075051829273621465497298104760816171350045911715311039587752168282848544039355478959555317988863243694238566303039575711397422279249133849498364050733942849236552529370489241061599298099202645624980438882214615120165037218466953809102211949127651829856217380434579874655449843120959953416084948785460586248501335532041471333794836933217479777409288646173804752834257149560752934678644292095627447754506332504162604280260506623582777768901174921295690557731670979244639078519509491238248382070043990374472749233385621104878490424528428184078118013984126253010112612013641617820058798257128550470728831814722697680268122977989694934629594655859957674140644018847430551819628518901289905568315157761496550893632395153118158833379489810960187379108966570794707575034938226407675202849118387009313556705540683789676747363692780990592728479922984890228456530688791743291831549513930737354893533548522379276937066005840179462353865710645350467881627316298770570292304723640103476368567651174631881032366194171194340078755585321076124967612393441552925909330403135652432676838534348672564402141177105009613408517289336552789684928976254987843866081652739208365685209361091094869158200487810398239290454449490550973055916995642189255490181021231692641492419365916390209714491052971554005079878035777240607872080604833896246693452627904684133629087094178574446002587037428764644962145927189411185086878166390204783353496958968442274797561928379100543024910198456577750725248909790585501213343058778851559134984408203480441132418726420480533834580680723988694277506687135882599424053855636543492096048998561768608811557528041353598798768433378440957733970872907539770710889860648076247146119361848021300280219170689622202501024582678619794540529839268769038001412367627851269625308163412692167452554624174392082802861524929886708194764631009218226238512121960989831461915022899605594930270369554942608530999242235826757781490780954215961376905077809398668005847164291486150833135480232701785302273081296845756536776428780345917026382458350694405672558475104368531747495065498735379549933826148570401771761178673005864341579618137655351039188870485101584191685475715251055446010615104370713954740031293346299794251949410286929915931935094424944560578261244556016950689857526427107112823511722980079053781563224705866243284508973545896270483580833884523283264780545697028448647253553039492925248531202558347657532971259398659990619829899065275943949212790463594350236762682421520364880052422633259275525980239927254293352961012928901887019731657984835250313626535527974604718261327874466046166907996911401305786603173922662019790959279744200182647839702789889185736760183569175262762035641543442031046155670338169591817890518538065765029131356636301536061763337105929351118460100704877988735601059826845429350276841806088970731339999339480651880791976961358510461381109252414695662284198488128989520043310150620922781225595459115183855019207851876135484354748805319760359487637618929126348735326986907237113402646517456003969876168282293444742044085373420518875628827477589722367230110890900048763787307589565853619620030377333749707539198536635284213047742877949635137952416681685099463590001273323690708142765133435263698076802926330663912598222746764406649739046194278237245664273691316624975871182143973249883638898565710064013143256827737089503541333415197656352393256701729539234676349539814476778088059584684235074247382528994088706127335289345234782773310433991076132856459331553653750820615963605448068458492150887039217121538954980143245103295008739279081952714340619949934055373503801612220651331326664429927893569184508173177870114837899632018766068730704954321557172105883077613971810844465516540554169930520496673622257556355022161159120419506160611955329485697879527644870985995000720535955275300619265660805950965743238931861047982731049476885608971974091736443456605170874132105925590966472354648370200904121653645721280967440622928581481416056845058008148361440076659842591895116383011181434315922397354263171844668352379174301440328096644154025710998944538360624051626274828230090634698746061305887813563027616908930606411860641460985978284575856992455824725202625688802644043687335067573126731639699999428137203908195738325995124827793149417524695239004099340382679871146169766257665238369137561708238526040363238968671614861639519635510264877848949584470750050791710754939006904041170263811036170335913206580736714942409229114726936926654767710709608210122149350532017795778174475159479867441514218979988200837387947953601146848710233281175373075724984593721003628842246202297917710334714334763543758995957330771230038248327316746458349254051816344131704864158880400680419029724560200525316738649614096650506434884509593637388467600193697726983522968750319004489995703272138695529335977304462505073859874857783740166105989176946827962770040021821105223100350341006059073714911573976146576489527058064105159500703346865533765751981778745844036390179437078334117462059175356194866160068571256814208240641969585780922269339973794860064724454557034837868366372636594888726738373517041539382306985400312305896304349970771308828193504085299747498569852069572575587137020886561571325641434756239005340140657663305495472636008576030730333307078286474743155908722152803516693440790684963911507703695326730082180742039091454506568472881408630240134678756432953647579796580941432309739570038282291305437536180274119993463855570259374701791165623621574740792411842290159910281164033967497020273838471540708813066514482333955448033039097755105376819598636633645283661206894550421711849169511055359953105150904539867404204101268878064245465870567942382731898756604271413998956948786373424355785282303248917738348251484602435907126605451714423100977643143630715194644572489387465683242972595755663520242945303475851337078894834147490407781673510486532012429869620395841431968272025650344618263340801816809437116963736897878005162495552968271341003592717091882040363539205431269674089682386509425577729710647948076568701825690281475050662303357789874345170504054314353432080207687083521350007975997929964791864622963467808368435898146719725502838372857943741298126301250789747943736980314897297477407832607103723996181866174985165609493845161402519212160847989195390077743950661273366872928732421276168639021070471948270946872023667347965196297374402660824497603834888325758616477849979729849639311830761601136051479000592899146909864852264390911210408527870666802995232184621735920535842930927445377514430508438832467713385338226551425098172838264747139108224422401070464667031586957824845343848765498403122231602810763841615813318157158804396570682648777006894384901275483309037716977122965074383379440035914866298757074352526307910819083726812996993886851376635534029460837694454316179118497046208570587003072653937167631616324689464082527079787725542415479866609831763154453096823205921970582983953754138969719337797406446046079157398115344462250487384961631519312337037343801506038525423963666974268696711827313623538677112112824329152757346552328081008112619322606396253671848161732309968254511387314813829216892205272988721244046626991547992689635101869673914241584154863224454136132759048727680737710194724701731306204276207453122004600461575771761339130560630234427841427662525838987690380478819884189920204040607524401469905414095351009723904296635194066887328803962997192582554380612630714394839871638238006408866055529953002902710817536969865046598748679926620932150344127706267174724652569687898085428389946106718917184791121734013758148390259702401593842991666338149719843409720541790683785882689591868222028116030217733828868526871116983522029325641944634644536503174795626260746537233887544290732945381730560409961768023342559800669042404823172237004102350046283101382848781349105698154805012418854347975557011487275254145763818270163970037076869235612934644186216154464249010838666066339007261732036355446555556805093236088730799338497128099099155133217390495788065827868752703193635205144927993999640653556539980550141328916762167502303478902695470438902134004838864882549161643552936363578207821827961879666250350146976097319705723571264653122947442319371936513732047753339112331713806096699473222041990838269826335469575067400523752632637195778327395397224567181921456426104524656935328148101749217732517479158024741245159827706546643670633910005494478470602818768759952279526896781333125917563411477126402435587611481197955919252304240744636787986835200054566435498511167365572735945366294368752337874541731890090759495780452746257028472031589699432863026580008353416779822540385189795070308793986840152289169379748133902153951842472587406809648559408096208512897573002649285974399872972276263053378654345916389668157489126993479544921465694484736120705496592541589998612799302270563931178200846614903733061282462162674701255206119144898440765105993928778598181587992299861388609363220200309354377959894545331832235168355199812819911046558683143124150393749261379280522087936624758534546055370687336712322044613396352668711108126417745672566839639098815281910721159789872886939886911590784463403825902898428399930280515655824170699031250956201661406936329878198167196620947502290578377337639121728308619858899812232025906863875396638691851415467493946503093378456173599746638091640119835921577293504399110374155908234613407941683874751524593481116295270757925979408176428205133144787416154291825227826431317569784322147652956031470267108566303818813175378413573352337163576746824425461084427863667555986813639080723478798544109710331676872363461236102657229143316258095024308486366776946520244719426991207977205974868655018655479187403763905639045912792501459640568508467536700333548190400135433265084105465002189842131155798810248327897830412450609101637615419000105831743213689374733393010400381814290010696619620397442660397321929465514408079750294976535296469481348910972988125241524256942906702552521876346333945096549512967202167730809262954860272752691405208741293048027595877926145594368080201779425159168545349027921538301452312613767582615004108404882038420032436841503531380871549768724747929995372526611716093537562131806827295380509916253219251778096124505692899958555720723262949523007283599223965416565494053512068467049571816559204125507505215615529284288310341948256803075341401233074965330440686460490442366498393158384689409918828729813371887700047057266464807469169737238357068283158333127001740184004209200049865615163507656382960413578779131742842144991417002959250625288643234777962583859364095316544103246425838393488716593562516402000786447816738267832690217429917671891377984501239385179175623482125174601605403149536907666861001985047732050432811134843941894647743538202019416544174564184978430889573069238605114531037451229684256256665490078394214868313731686130749387919021613776573948028262320112052148963715582832321394344188674992240395912680771362186958213697699065702571086538061472337021559609929851755865004076242461144661777222049478282752060482874318005620742902440185572305627960569604946628522188041316603221358092510212145754317996891563195931897651601959275838506513078167120074384939044344353533932452600036475187086538565052164501370565142093408271826096221683996175321053853611776985037573933648915165895868365708291156921807060571632047819074608961400670363485060553960256923828227027718448604086005959034728382008467781897577571469046560487536364722395093508936997892758502699994739281440824033101460524688752522342693473533613105360336614186032423612435957087835096955159477088840026965315069777294593678952596018496384540626485940701488994396846067861432200714380420365547862586942754996812846687656581204534648250426682789860536165273930757542129178663418934282420813121657133667407560671555822214067165929659563713793918547242120002700755035834050469719344179557391844417692411310658771841771505656387253442529054370394509923324363514119483184367636045347428041510841504865662823877502899060629723458225294317262376013064065577747217493917736594360335767767078177847417571694674020906162234512525743396222717644235269895362872739579325278031488529451285946497407601724180416615719999906956735243780168759442895388092200312896976697063178827526069217708087150172583555193669503236280520349832016999859818995540603266453171088764463422032254337184624564390287846343491702255970048521570405241536150654707373967415397291089504660254118592757811675116843393035414335342531956049125799611536994742504103407281947454822411559658454562460882738170621539067397473668766334890342104091334639841063319244392704428842278012990205950096024496427020169944914425396998023231640755366996286242770028421613799219162231597578671330325264614627985501861283736062218471398060666571068225252123688487512894061755493513104942261684635099935209475930207622720323477794425704159151897382704776460874145149864944647582481082574971581957781952072502388370552448906328615893200701012947140956133707205522350871320088997156708971168089465998204131227285382975349634502752125881300373160242614500004810156737878491839303073713277088380383232821936393467511085574306106927791851058149918331241284475645051291811480231210233609736031929502369900661157754925079975366108639522751756225647317521848181159108365600822769510514818264228187517500683022672887983683613143592527270869505670118780018010424545491262997305378773968602466944103378450670508622720678659804112719830283848143613154652780060959261180011898325017936319781831268488709291689980036408332502860959462969474945513617107215668889793269747715869465115752220424518904634605287765923873300027809568530199227946322855965557647945750859643827321129741616238783783861063831122448913559639823149563380816162006214187255843535685148526786021182023502641412112157908136844275635419095486981586615082119409864081952756042234046167392340795887709385200337439522539350372347934811963365051056551296467709232480573916171454434750955397444127250141188867378713097145949082620544787089414284745485067819746646847089842854777604694831292026841375848801467298742527131045282057246648912000127700541184514936959622498971312643146398954346067290988460746722737758629886921450413960313533207044206854456894277772387906888425322290562484508364681383776687220541039980244040770875255857674138683637542557296842504174459336295827491653106895904754217223124213612191938413096499616669191128810580775493024396060820556726217922460065052721643810281885836371504695712725549008617698020768289399788472831650229629301536212244473157281091859872561287610754719988939146883444407625135934445040758508107686821598920633259187746517956273757575209364482190935780564942057320210478212168775835520684374756183476320643979362103052159001937758099524009802779066409576335424518086444633098896228704983598532521893270834410924361211142272713978053117651430810864153324039244392156796814109962959752214064020175892817158362237658710570841507670840290640440757567695071719923248258333660928677678409349714231906795123157302479087513856030704816181434265651239291414222450978962800574335512526621031750738383900648191437672738886664361126579794541232727328380569290265401132273797029523363388858289598889850168581345887856626869776562071501459646437353026909763604463716787115118637102518641058145210496381391907333947310627088570712982008736244328809574550159043063097238540178247181999190145724369271393477933108781617316890326198334187929738708188609287615750784911821864410174357791013205201071311322897088451237868759669848708951449050111973592672122311098772352946627593550520809608356279792304522748931957226768203601792124533941304353626411953775236895165143839317668355113443699236835235462642657889809925863592158694310155403319342816242552761620092992902812084675053465375631828624126259874830824676704113540862502726251106460356516905957352019328310601068292528187477251225446049778460681128656149576017780030308235736744617831218699801319717531054008347284986246596991859649713405021325607002091831715927524079176036729792012949037973027406902736984890066159153458651030968917126656134372183191727773708592182266339653396480399799400203051066407111844262119120088820387994218877560851438920554150745109035585459459193991971122620589613168839356730223270499176295784292465563282970998337625049559193882819195955840682073407995987305405654381608583877778749145230020774029554059095396507209515244629219627346894435306612688988427399309358384483122432441620291655913179750010051854096790663876188233091787552588965839768819787368127978149310593093956814017847149856099078437073590096349004376217137399965268843173075705785351463149985522012054186816469107351583736158854975685765176194309234768453689303918835512217742485512892992376256681344735992208082831423746762638522594998798001536461154241435306469692676411299373177689207561569647928105342134723761376884308343992601732926178449732607155789274440005387617091654497263606616904889811864598599525283686962077026621542977570976195342905887958214682349268657548295470369873953005408325155132846565268754160447447018912646102674420389117845138248707499651923701291062965488048209721477631719611095595744584772387587021528687150151092262984111431009460736141358693887839681697528064966365971814574908606770498437618232727788747568880476798123951877908102857652077970389976593912716964163815884033276502827254563500386377842155887348893299060233232253036190248137216077875907980624419053959282518431068608870422823745207935802188651422307332968992692550608168144619552900688038753314985335224168386322939529748156008435715288207393081315299729627629255143630810240050572888514319270507726839472848829835552809801308131756504690741911612686419305730374613399726436721957084213368489196575254814926083264856425572820437925441044780543048143771528583104225429827435321596644034460965546233722484583674854878609425178568623600890160044004394756985954129957180751836210617853339282859955913992939601438213487900880138189481909038338872051317427681400737950914956219749583898720311637981030134791301178606045110878550275105816010975080220917103589430863972713476489483856666196262491822695345160149383828947269488232949162453929538696886047542664159516461121535024784188416736704062422901803235325374895353106901099738531389409139165468639204148315553050136212511128831493053982551825652665053247240639455823203319283851986991256469179645363788950022611680717134359121234283372077730894014218128838957003995280556025668546594487073820168121856391988330869035383622521542556054969003595736505118267391375318474877149079763532319384518819638378707162844903850681306085354233746839756287143483829902986013905452426063028434635836182075407903380686825888696430232001995597470854355273810289931497091337833153649176101352261778411528246361595529529205275214412141943398758545664506245760537212638241921093263282005255033275020569959438590925788771502865630878436710502670376764790222884806845127692267836133317144551778318041593194171204412369218181280013098718715724187189180010765609926688769899009367447514149116108607971682645687559015860915057175277018739264392858201395362823811294713387834004140662590477298235554611863001918632102691538174261201019611389770779944303661853491119958107740257279475560078697840335911420372639268277639602181099517268150678086201138221756065267493545708380434680944425625920208595799477449020441358198745979522703499664949331762562742600002925466495308604505790664416446841354980532463706528602582926758856706377930861958954681352790153379276301684772998203164727308365266238468596809575723208032811650767015062805192948508539904655713792334906738067879723365869117095547168120093564430601773423981913238101204230916294359525518114507019711667826335751775358319292309272205027312830546895366403095984305954848282793593986930452985950295023157539523425554681003013970469474716975188258171435391753293610273878249890971318568305487491191490572419927695502029282576594520068507638197006461568590623339181377687036404056079834481452085759089971945036539964437316542608539694743212231184066893729344524962927647558952728434919175589728134590924637727278528915004305890843827095539581328852864122966409214460991490216122602751092352202428982056103957715357462389152455192927457582015333563493579997372637491733618589247663041543586340554767878308604059174804666972144488043019028892844768851126570717313613912510336216535937663245706981782500334933096318433366634583555992788180190254672681905744590596740067901980039591198704793746298130691890382966539218323447076814979186337784174821477109885629484532752205789654453166938549006852665408177950381481142939019385184871801013537327529894177210286607800429661817491006625106051405212773979844907186436466182656236261805104069912757873370678901126945835639380098872557202248351567313186120285223226532195592503456716393978000534662336039948437042013764147152899867096721593785200193917613164799828546809271856406596074399781830905947489090625007762719105076175955604941202958082790292004398366494659677290087165656992894772780594270593579002867866436849938644001349227533729707606428609405959444813025562631271273287180996458470936405778439999812085519112998273901419224883910220910749332980131336294333547448737069565217053856657730182198309488974126765770566126320466904670435468638207864799220653368795148682105126650051593434679855982232913752994916422984260912768228748019132304203398150455815199504789657915052017596219489749521742599952772742924989063266775854383478927533264754485403423135544414939260518360553398188124620305383842991920425790459599456654631726171950721568198068252551283857744332177408170278108829272064819399635123600953867486769126691415271634509946382748810272066914117588237687584643153294005394915745698515880429885232664926266598757630205472843547920542876717364002865307058701119032916269593160409087010078029376048288142644123366723818587292032435071314308241414887841495164082606508527107442115335177859829371034979365761625577722022675914501751559249127740633443662676829051941422305034202935439425481294597888887900569288215142572756704840353389947034035080166227580956812434858210089986314815655155549951334927829772103977633889833031676931032656431493509095869050853826287580767198279287763347496733590116377742009340355221234234328580375206685061567870935566558830543118037996720977290240310192441820774374190497427943750561083926918067202951864730943786127241120018913442475983560756214891761485348773568319297954413775341404627545126724138212065297036669917804336690411806400237085583790254693505103404010624413000388069195839549397140301145207450363069901586033460245593571479461898976148631814556865719471296533848444867958730989388872615690834312561766389037580161950224122260650419432927522891608042108227655775205938338910669013881505545590171907232010684157555568422149757269459709521097203543065932686623201755279881999011202414251009812437962383530426809732631929336429417122918184999391526296515333618605683446133245758929758031477201784678823339293666710593102918720485701914222588389312960839334451159626331585697107517484156058072792609054828935566775524416706837085764649548530752700057428335408158066849992338931180490337529718103322526617127438075356798230362749511469258746527279333227817430242175629353691654863181324913087802682890106999694714505998219445929147914457457187810723115791548532500272387701620525336805457882374825129901371347232446700756932912376951167768144529443373606848480102186534539080922172954830230861417507078551806111523782364166170439147349620506847668845252393812062513530500080378440028215609191618190540066554394692603365637484674458300632521866247219031338865083187511125051538114836006679602512222905290308312541925591494405816144719605254219005817663457969589285120843263404800404879203418593968837413482105204683826446146380037349349108214543914767599018857971275754636498931649099358257659039948663996017333551997732991088725578315824089476727458054907194203160812833701887109371593421878198831891149211487990935542211637738580005727881752530604826798902453048323312077425303586031675794222642656104502779470403339527772908794419642172880683088897722344913392151523315761732113317078649081854657267948284009424927739380415349609477900342763541120320624490842732381930159940810909413896040016536474097327395129274999916133427240147088883765741267666603911807367049307403484911303105113390174828560305291751152689001782960126824764704840021485646659909929014461140539099381729619389711569445210097077416136927941312280164152644901007768002119746526241912072273591171790142036135636355506783675974548140634368117461113822101292422703492248562273457613964245946799990579456532884510927396296373345699973721167270821786588426439703451921385179409750138094707695630071476492173703167174170920341512797119010434620885340090625556354161121245919261381694754804425475317612183394721479873053354713383476723557056053976539872375000057495571166555591246784238164810917891794663502171327942057321802599254060605822098006001648871401883373661028837504265990214837309964478175249124970906771171107949974334683768000579694070426600236525887888528156928840113000902887956518768577585614094681374668955121340457282668926901648246436443949898471271099330000950393835075471065763381152196046614903899637799521327911517652645737961574515456252482528920672512388801702156887643481092431710539432121992585114693027563860043560132413828026048891660291898935370852811467992709904237908990068284215310374504572900307273381072503874642783478399460602465498915793582265959224667642348590246929661628607455516487882532007996182512900670289845482532588356963484651377108446833525164226932987183061136900525467081575572079385173315497510523344233960682354223072815768504801158890851988311855020540247600652370087355309503110000060561017277407939317532071450771485984786356746724742220020770264057059829200762626783327337921944888012288787476149050685690386284137607124901275114713722909382135397279155901361442293224397745505605057154307658965313023260416904990955849291222243454495142189776882551406161606912587038281200478606933515543857832773045765991536345469298928869519554897342446250041633911394255524103701491217209696035907654747291592380652174479843331863055338803176208252285811569699766156782682355493181910251968358127835329782022607842880061335864622966121818374277608428296820345763482312812405041321018813821462348905903541513759015469392373161462702131526562742540512533480400716297333684421018413734334297043256881122244053048020771856690434571063550718786440036443017500720454573714194241067053070066781658638997937464708674974829735004848738178381298585365028127313206663282984203894579045066317335929524765701237442414171719572231082915785572762593885781611827893988315654395780452564864740236481260420970728753872758521649121070537570006221357245988082774824756758230412955562261515437583490862162217940169189756200839137037576519108775218273119336426077390472505780703154736135882005063080588033272406729032523320661696271770554529815974453474645877721284777402549619599859372687108784701247268632507493640788562168254353771710208312482224354482582399241198430412783892755965553657273299618736510516346741306830858737774465336176188958475511512409647558246696153181237577846237601993615525412196429075138389981912306378178329402579710987089484925201081359536123063973715097074494379447682542843559214347403058906634876474950352262779260212682465648917505458680126802142413691423560948882420283431424276096331828745121228276187336376165670817601612082559359779886079274604227885930607847243483597371865570948882165028728057817551813431873141299366024371494622007106820565610881854070722903223167478462914404266099558469034782984453875990738789759902504935882516902073139945870240877804509275942859177447585337638730414813714062851024915754521329032079405604321164638352585923585100685308626166155403058127551072676619366411965708242083466939557769550214689149612149656214291590368568809086754886274407049469295261679329772086976463953782175790929735717458958148812383121618419307395609185726744192232701156818240167481157403357763076078759054559196758850565884101671462582106718847899456839316390331268506122295230206438570160830714617498428186520414363310796307587439803742344414419381446675011798436972520750130349178995586395727067124590733521029013759371095913050046901943535272645711799243680652054745991727147187010564707049657854718068580308220745054666844387789128548310701256412166421425017223842095634718309117010789109911048130460228036877407806674965903592251916333275641704975944430109336304808599701960411896627092787764409263280818667844855241619125812041477010538388923011087789972357091345549434348936722920689849263178405558513494346298488168842120273351919329558321804514530052688776396314982758160503006330617140467826567257178456907927992692091359441493291119243470150045145923488797675358542405319864310102232217202953743723663306650358748754063744946993225261735891380640323303241684846618862903907579851271445370653217238392256990639360722844286021007592813251315249661100585305407184729450593970552763718520100453656951832021454214657110811855150294420351610840264134092037605939294997576765253937785214194067731155065154124188613780078224156727862719718445205714325870148133602696103002220968809167197437564698201282219930916697039854024311692393022966996567828569140174479118478776464541184388941332306006626364274830865120036422402298067385730441981102416592765021116316700444222219255815243988112237586633956856693773660554382149413169198080795144148237916788556420616199585892996698415886660407602437070612417785103115140611246204880900208670533856425056175289107607215949215742868753034465084381042328412124851375474958422577147970121828313127985994875735900580696954275181846657481854830847014906585694986203670901773396349229013850243112501724641630195722200853079668420836644158937186915462257678115265261217303767105237804849920020915374961510827846789473959730169542313140626740863846351281498401075264212604923181535095072100945599006835936985962025889097451807083009501859293951586801388258571924942344470820083940339116933279133906089515950836291175991841390807751570929641044685736960610187576760607042424415262678234681374538683740811926891226422263533617911723081499722586686093908669807830407069707982185255644674702003786306039306170064536088150258855780471821795088490091653752259265790199720666776239135994609444665455495160509665107279566380140654428169256996816673276598040971166484070936958140765426863899582136690569419237306502568662370010876978004406290385120511876814150200972274158431980000252393272623168742297507971572439175376188918100532539460791572300543827163108780361661625820310941462244815116399658308375547270564248094639407184369383650333037560876669137419412937049313564253200673117565668974674918517635952071005900905662147606355287015705447660832825743106022676788549357558182283990118269007118502581760794610870357374778343546726536789616456782032947393688588812871559920967947521033880027566723239502770015734280115694025061068706911100219368466113926789519716878501349385200575057018927619594622197480654392207016593203819124693033305967792310184019956027970238967227373094203491106471323202216451323396727956834717913451157753227253783697387802518932188727584216677016450797042098144320378689720136008228801761800774155174097477425988091909998113599619239188918725388703837941235889350757302032991255296221385659190755319388167835670665241238617666802535094218832260526805772343582006271462907054165215944194654732001581829873136669708280630840402756782869025991669467137436058878145240728107790807563148353664820246219640537965151472903412778852073984406575558530268144679855936119591487011191460473332778015233813210160540905549306680023728363163465179299658735010716136835287060702419130892050875334074480032681281965391255449539702751384931218956391113223733250152028818463326517606139781694759075265613699290064105302401550405773721333465598574950470543080970082297726141536095017157395589440964111065342448697564967654996016176201423651840102804124748115265473153436522897500493280747045608444704377977793946345824108230907163253256812019244612098946204472888824631910708561934265536847303476104649043194452394711195649180705340180810143293517561976742638270340762169235365132795002110251566634286165255253603896170926721984875959848953839681465164739551053628874272164349828578719637450380197160387450579476791400392853743181507718660670233091436624042311989553494660395468710839444894050710794979880882064996545661708874333256312763121412391528349356880488677501717062942147726872898610310564333088091179436351327621003024808543393914618361014412611126039769595909555871310934137545472028627539568565057905937031827251342953679047247248183650456584041177890930285172690316005646388818761419918250841079992685456155605083790107078692711766620746154421210862330551500900815832899625085812275336111169221824387326959333308492849389711684174718939633593597915311078739378538495051320434726561983528996633086761103971600606127729796551624408065143849175224939979808394317000323292530275333078499691592124188833770343519811458502851658232387619943643496211413976814755996528576249646689069079389764631465056876535630953638467085351702306883951563250716767235218609110684946025950650656654292286786413409445477058376684507075801535150661731492363475520574190133937107167523314797133622217040187893008341765597107995666583315134723851518712793087575489371234985413820987203847413305474726125701025385426278878296996866682849766974238239199264290600682816432959931438109680902212496235291319289006439264243210216491615345785774208133694593150594891383899332032073403242465619047758892145011788301988033915840883492168256184881635757295728409924882611784800801894944221020653223165846780887956933619488113138184269647358396358858350681607328519566834461975683834137118336305375684716942020042792984224430360646429076116838176724528330628813722024407630196397697372958594324832661074256076224610105810033965472550225760982833313351360167668646744080765764428657467323393462073214924189780059465036192460753435929562176563640873259595679274271140012138539553111235057754811640059262800772552013948060222903589761785152736743038021879624216012342983091957430137008985115172711669375842368052542984165496211184228528547856371341223518629208719464812895618224482115872138851801394976579022564568502284306604695783784967307842864869135710333886834173399361026828094314642578252444491247766925028689897522133768169244828247675980596055087668109452068264547262392715648832608097053191453527564803887295537241856862798854762927931636917741675085303621806853383746406787651264654154775981238693721465309524972997028263423028174025789866762974700516935561848775777424391193999184972766855154702375220769486459860950568897086374048102214112042966377971085050612056547923996762168417202279300217107477389336227110611662837030524451709072330358466871639022064226959923861165651695502097840599439271531316454098493416551249275033150706257260207224232804001513190547858114662357014595185962649716951704369462008450030994056295311682607377434217461231565297995790416981031257718710428855439248162914426755783755014040081141371249082255852492750010382274150081717895382399054359606799984941528363460042923029003664874263888840006239901000183910440599971491153010954690857314137566763084919040061393785495942367893373177128749849210111209930197160415872597172017816568391713054794808286984970918884612068900299535613753188511420722795067860993864732302447593547663416306190214404364350006469193752307541732090239942440851922983033952602076234389227817722800053458088690325537873051752306616938135229121894037119446869431588689253313767138836547263334033528552585990345457680730863801121795096607785551325104085005537539943971161823687181172183482033641111732842523429937931829505703580078495084255668673818445527985306890496181563703440971533725946335162598664347853547319239412365770360025803863735399448494684316004248712369545623142541277584674755896553794627132613672999684235808423828053334955387348730032864656691081864032467879192989355616316397084567338077166099998484056194408771184753040922660495963850637914184745681225296155327269145782042262972340873248190071559431629177798016779213487256821131500646983324666522505346395439424069903649870243184836696209061689109706720707351481982844812795969919521095077775100511578433850744392694050424528332157671707579870863188246131415615282171001717348514375113586202756593715650053474435665101785154979731177798671859758516452434970212091780219653322850518398562429361779683462668739859266059001805882690664018829715785779483684983802349332559622596566468726790884253305935203003393847231619763215053147227194924371555732938317588415372452797719588767373996484301712888748583605419751909326073773712425508172065305124473607652634170659112827576295979085683474869141532058378102333589194787652181857556016212760934914514355825062969319212747973557644028880646359071523012150945003713979158437553482539972286781277685417867147101323679269665986132164664961036529544576951295201452713726196577729192524569072694633064589461944022498610854559844429121175576368570665062200941592162216819803049197709748332570730543530158733529509352390622695850714621510675946558183177557788712806505955055451559319634241350868417994996936206951166437583834463594551424710232157919639848240021328236167075155397897624429849811716373185327359041540739688213298066345389825185152547002965813596394872755438555321745092207468797776135810613065202289972867924260213513310460976644462896400189233700390029265811995160670381785097352782607978202377553181542745824325120705405208606457283840618957079744584808978990186079929663407962098363712715868677609953967996480339382888311402229683815484903444089847857722229121231857680196308344765978478503525218653341901271471398783979576668361059597072873104472213634523758646642774911997896591004141759442573769191428662114202723204005392498102293707054846663362033229062685261695231222821881674089477059921428304040884681891562996760631217279783696769772114485836543041015430088048315079197290552787051404090480732446295273683455629748322277828193690103297932585085260592305478044057461087363565048918301273205984520266596450768175131930497997929159410632137761239154134652674132166819991632205688687462674655472832119073752284217477761133971710042438167943915541700348239130888797647447029568252245010276618851753316499618139771228343374759780701422135358516383242502672597212944506616792939568308806742509177949018882619304876824152258224866357547282062736445017367807013953451321413114886013277271958512493577012341160452344887919376631459782614708905364798618178498283322921221022456647419104424235092460534798346486549023121055028305040780475269390837131366149947199015409832790791409290875317218826922789271384540806245978516386891048360293493027884919135259007345190915434591372519029790847274227469825229765289196973602699267854025385077896195776418781858733211837992624155281926399894983665366075710043714880254627175215718836181607966355877019331712698001379448281043410836020966532091439885194898744772873530224305893462537784481252741574801324893089138620698969170578326112315758774415977846834644514777942570862923962670591887543683915946319383812375729080620959226177169788161778270292122366555933431741676182780345016849723976192020909929646259086933085878360148453641266336409792134128200592706323712947898918876363349191440593889008340259303082217632324101042876384814747551024119178734483589381208872265466179356886868603101232639081316209663759694655053540923788748101976836698722715958516857028154156863881600427482499152912203808239878973957330949183642021905277144324362771490906169354009804421250481385022705099028120595783867203362532005029435501554183835865767529825485843628566769232221636891925084625124351498678740963645014217104614566411211071835711677041291618786628338201261625458859304721204103913269946761728343632698269321626549655392897126833443571808567801863396508597916003707762691359949142674771459277872646736238936380574095192779174544851207187680801655329693741301398138434469287501164706545097970405353759163812244166641162621791510599322070946010315163954858015461122338857917276918548979720960520141261049028253151841159788163506485823270994286220943278756103595163918263568252635177740550047115288012637815349763879502214807739033702546406119766942171745487446543192022288827733883141879876118514367936298977561371942693000519460022347847300852850568154680275741307661809750745955831180653721446372068919072241000442531444064573729286466607406395233405906847047736501043017537055342859846600449165596745162153092349082694846793149642351478785425741903888603343610162897792499531356104682272989803701838073191644509078530125642358348630484512500361288180360173069545987535578192049950457871979827832909644219616844445692558603245119513126143739015748686949309987860611799162208578154863302205845469753983559104579358810621221911290855742449798325881176099424330550765335180915756023875415175801513155589425178750214343514322989160860968530792267949007442189695078657839959956010163324085875266803633671249693672948180063988747236292034516831992026929709310717830118727453580570241242998805673133134575835589117307984476278840342899560671267510004114037136361518791898268509673959720231183406513807847336419380705849822449214491235238935134244765287279632740791326369214843483681570360084482958123275218813510082532187075891259801632955001101513074453470702567904950833156629887595406226552826038938942884236024624868521650507961753061311262904423259218656464476504657320681652630509126419867894952805938660871571441407477919195443099983841954195701393723040218145670085237638050700735118389913915563805343452923557005601355484070292440445417417709273097818374348529826758593728470085175976372011539697277848582413361213314756407688454274378589375271422420189295395275727445127527749325220283125620768697116997795272227071798257793704957515965309291996937254950289631891841936600715722597182684538166164968742730260091872510757032946218096836354629525787230035318816615992381592081064157354184055405893024287342560068972378913913834784805722537218375629450355651484111791660953847910304471958005069513692213397818576015824308178901882300041502878533546076719340611395386581924095118695802789575472310514213347008410611809139022569524607164247967198117480730887120833845923294383074025775681914052111423358586397208531092757710003871400935458541622985256755055730716702138402987232926049230817877092510587738914629827737317124626108224236263767263115124836926724670643395135085604109029537204659601350411428618017058237800651325364639408437616401974990581393134775578563512774575034953323994758582727189260002939639568739360562359021191901708584365896882167519427548529247921893773454766880766316607561330773300409863172533188481850304075373735867676483327838461288614785279089091253049045197249981837034909365517853284088199851053917021658217142314059718292444183900751349851240983090331600260335285759751197101671636996346737605132231356696315018455920812333401555470884796947753711408798285994132379293132641118975813344734961179077123114669437918192799623906522644350593361901759491000518141914058565806290000319478264514670992572852980543982901112730126589525312395136665253738614477043803689600819341852915262455682212574978757060326311578055552078747617369959362293571156797369656391853007061325897306243498299822495480438075455561060352204270976406599685268891608130116562955489221038900142292399657260013689765084228237425386929110966941404191249956312058366430064086281965073226152820954280149083163323030415618371148989614785234553878528571249839161783388794881195903516025052022862387807593466210750338922469070246068021144094507873199361383450946690923002163681398888720305244298566072074207313998468185578914271120615267135102722936759661155334560027800257454666031540760833178880675009246252242827637360005217156178279598322805685205902158242446087657164016097503468207372696928722932341428564310681879265107554487702484617532018244049159676043633989131715591011638751644636855267524240253108390917205917956473814975460686143014413184221473214794745645873041639985334422401104027915392079663030072985792036505375007974157879419081630959719042765644259242552917991383942255665969595448051098980156793088339086230327796346992982824040773637206615760897498131026946119432182861020788095924734216434666167766390527235451366707507258642629648230537535632289109939412646018282631364925123734880571855425835449135473334132251348469609550843252656465581749842807321143089485313450240266989233240941943526801151816773347537407412998803941488864284882038512122573350608020229578616758661627698076607148781119103607930589289561764165447844561801848809077746255096648533848132169722445527399578946803423254069930027930076560010472696710462295779341719056268222464069652704132183597192893705189314991234406522885401935620723351122805313329466950225699443621959590529517034345168637540489373132828936271951753695218321445146845860927079646804714691047748471174141807847445543285794868974806612670012079676647227450778911620328438210033223809023497765407600039478342073232780773841286712611799552864272395419538879715217639550648639674829570611242009456604077130477510861633456184608636152057314033602903281505687771242690495831886532554803999068652614260341380820490427389502415661842862581964982183559010469539372878334147446790856534364410412226096275632243472239297840536176192012441478740638519184350365687125961728461612375007495253231019520724816552677328503553532086866226180233523874875629560366639409731332931961466523056242564748541050506811749127255356596899768716247623828657066149498094569165292053571202560118078776640893029786326633931304338367637824739499448531225909964968544879749626554355499277153286893888033624133969702412314169692930812529500659074005098518939148857023203797674318457147392165627193034082280026726411585182619805021180972022961084243204556861648516890877023909397833189469929628405643052229755572719528406242104533669666299530244608360437040868496117786117374397234803690028195722800225422109773687178913422264842315354971897490599904770207904396404845915027944810851600769364010787161531147554375104404364998140119374072472122211633955369403205277963910618774226206538169877477167585548021422524996367854555740252169694313498925688457349943241566192126119454520479351420625448038620413135572981791461592513703267026719970590994306837496438005626166020454536855016827188088333515443293553119043585937724441603469379824784563149115275471044321184860012056334946458713185641364314703901235304646527521686203823075175447400924594346261205790424794820426211163943202086210632998145758585181026692834397444815921743003611863849976245133098044711648398993793085975119218040771197769533148991100482508756091957904198958882177558733210862023491250150775055005648579465906534379189769926992076265495806246764466529633591048032426858258550816078754656039057199636002520992964626580899557111134952589842650959711854402276545168979415544211844647898015993745200698586184350890930846876648077164736036750143533832817000129190988935022077803159495740866217316074960457507898467785788415633926919343138471860603814589803830755822828545851727332099943797397957879136542455261368544089520624314819199452954518123060732381275984651717746395776335616285740957419882953025843556813562011919011575408165766831282403540616911456150283035199984856803439012327320079914942825339932539662091352363409549969723908264014686834814364005051154477877722432819494670244401593939551279794683252245235865873807929135638168502390216951156178969036564052870191605393227916226905400029854896416284887114683861156490486186224873303119122589601894812620213665308054919888294346917961715179619540962685063473930517063858822940379597340988226346882091497933961218397801047962278617997652352350694611293135438939206471166197851693583048926220232041783731500557288680181524064957331978903163347510059490169508226764890589965089196290664981499636179653385292947856564366751143357990785843316598182713486713049740316771819562289123013581396755918677021122656982248292061966444384239209771601065555902558161782388584407817406383421992399074903041012009318482527440524769519027572173421381852263068376586205812525284212607658272485849307393221959979649332196497671397877327866467009944474789093949100932031642476665946358914415728014278884636638295191441213081080891559999633321049507751117665440236918862675035783307576558379072883362844744752993439954563250301614172032632303374079211400323626454045539127799881327103864071272066011861712000548514277213248485356598603350187759687950257797101366842293514587726424100947416394726517083249985604786020317535037063333761156239816004709512420704686534154077888878435604083965873147566632540064652875008224074961382390281467148249804046825835829853668543180516467117040211073526665301487152618241794711789895256886118100214983774255222365521273044467938501373037834695452087396249996948190170396952484578566361472851870624008394751122609883810048707697639185397078326069568322913172600115134730894267109999086353844683611322662831268414590574813179822826365697784103799844903386697558982636235595445324765355189867526403499118018025649103800275819304509503787539334301678337929310026689989609226756418186771362558432085526477050769077469307001588033859687769137522430423249485984906863997828282719122997542276506204266393986629055465188889940300569353775486287199167186383772499770609108780120272296732200857083019589282762707321385045614937802582889052820955350686756126558261660287334460359039186074393443123519182110081267281291918606567303198879319311277714864042701948386181786659987811985984232999187912824626543381925004543087755425898781139939143723803498756257501026451529167393863692194950699399117927158204410036887303095579696018545736955891440289801785642237423151870037438398265113833180905286511263164235328891001223831999762488010385132213414154790508284614000748785125640231611314734120347710622434800721310069193413021721053020008907351475806568352303170410593095657757417069994822223491022170087399707217581414342516680570577812622453108790218871532956145252834500022178015302358574125653789980149038824235583085635180931171516937420140912856240971468947605034144789710996342190396952476371299014059564932074099947781296615238321197993505462500914583578478676430510445721718046295669727019872239336239611158470574838682169909667476596339178134386846987970716296223702644609528347666469685818003973440252779048552324994220534476325890245337244122894966497154553211835231098181664700776982684873227148733083161015959917228431881481112104109192636792752448360607985225843936579532401102876822882299042144016238129567105995262001128046665063504797047726082898976413443862388253473567483118765633305589266928286505957369947524880028769333624972138065578823242804321311664299449850519854308674315386466341038326976992134950833078269572331259957739688725250547642430299919952792402015865881466653925061510917324355732254246703544960591094242891343038337365340194482233821945248648735056864756859700210615519292545630737047669076629867000547604134928809869852879393207304689662106665009208836086540802358541584486708309021589291593474743952391134425843212536389682087331228228029431275572134348693746026361506122362370516547603489181174300931129293129631247805427725025965532756287266689355496407895204765505903051950967248361679388244987850172246723348805494664903394174038825222409681197490804050206583951183106777291488079351466199216244009997679110781083681316005212448829048071361413289965266421991540174721416020645724251599674194853294044705174000132642588956078341210071943907721579688320488651801906416337539847463241796644730477485410677687836464797717852566199190322084410593890141685348825329564018039547204435516523508672257157926661543959234980864441341715772592649836685187263403158417665245844048291670996942938053149146975887220676723248273281559730752860112682321575583068162210320731904444828793193265271561877780111882610930141834393845577290024435771787115572691848055364840282208599557769758046490582329063942870954720532959290934830097124550051708520981299145168525310110867931413059157157661948899684467510093780681674632141820090585793445973868505510342660754197435330046509385321227035818330952652672342099529551150728605313823888438724801190422277928892667807716948901370356735235964215305295933015588133977683906406518294354221645978164655265545214433692861870548848524968467451882830444849122863335552614387001994068386520175070472217673591165647958092316444723895573000663067412121507107064930440351384474293411638925449540232818622980947742491351209155527524351486902962985167440941956710026184977215431805081178961197919486853102100307460985805142665952217278616025318618160553554539785426596832014505222964119298238287000597173993085319473051027709912811590116042388797726949279007160898289134837212131699656221787069937767339960560736121835377857206791521949417561753705662919872401105021243845800802352745781524326081680510612274732135652470822261287395019731595375084438150944613173218614192112329808181481802958022819030532635494906605984670432489111726131294272004295446285178298801311931088411238972326345514668596940426372369520235149206147587780982321310344154554570257872145556887562766902078990545912819137291038706540407732356260165820229033205961926263158470768544645739298525034784602575006932126953489728706588799498264972133118658120094907314032875590879786505067471737070836082682981706568612784262753371875487717252023621695114066674257529351195724087530584604519980558603418363916190173483434222722507886321949371064864923446239502384981491240855841142678730237785571322394698146584977902490601841770842336079344060790788865677751662537678961834642094960960557672818071199027938913435126123554773456064422244742999512332399606843506324050657427846868943069761716332049176465613573759530754312129376081498630160305671009955224871334212163111524088265314348113392009859605083871868412171542349210955246219444450741104397199932934380000523533529561692898865743858141196496961418756803307829699731252299046927756046165145430600625954697965822088572367673161049963491653472234904568423358656686329518038318668341399407129549271379115183427863639125564269938344680571180672321881964802851942160881929420264866640657748585761310215144942502582598146844290884237071719847773482369745546942659806807401384542504324314098303851378503899803603189760601003994959500463664957629392939427833547972411810003229918455113973279254420427676829116486147324257120404119148505879737473162835816407042021413190871664532449162943605004092689619151729587579438630862656608880205347275646689464644005649853396809854805205947283690345959451644736516326892336670743568884886668574688675796342101977756362126912339481378471747476976627087363179096507279071259228681549067153157018671691425458781750191202345771647719564104847691125671652539802770601406530598948411795368072454544220129664900899041349501830513638447590305574092721307447448773032643463140295236170280301481045729936858160428578985220667891456898060986546666126582669474089765636434814141052732746104626354556400788915768533350261718310432480400606086612700714919320049642895930125046266962952301594942692606320233885819673766748387787142946693755379957549359416546955012144128888560628920907132538315625913489413851909668730310715415486984606620811065307114925815860963051683022271108882966709041461687966165912543190182623085113691004981910410248587997933520783537059058135614744646323136064149792720983808228327785382381127280249323687115066999790891580839333189184582026010613641211970129139275831099687911421613093604041978806772652206462773594940244463182584728947511990137561992542047970357884704574717365560751257267860834121160560948834186487030818817765223437224315491325038846253268393973649939903988655773506986916904774017206413025668668524984858586724928014363586164869105286062914338672128016480272676251602289820604600133597883023198230670597256048677488147607710480944315910184786466834798838272278275041877647121753603910679219663478981385984376543503892838175463894085006277014876088675995125494010247669047604607268761825172285361353377689146935666896456859090880519255386723065779827666022120767868558909974280029579790956307155726790883985035445063895201076776389074122061451349993478774365400300723836963406696610128562251596386366895797914594694367123634391138725065703882729833154493225923934964432831475310620565163238769177227341202826839160861786279115203758457112635311147611828334101908457156823303568751869959747853968606511206321556912287064086394508191323970738871138913048966667369659460328400820038061518503391429808806789274085474778720481107914398476345838223084921428393638061020250277106467749601937697306303743491337579186911255061051343985060550597234182699169847690044450105111818514094812114673660451311774378510100644100221973759545000855494501838215478539842455733212579973746438049426572970125618349734712212331370715570007110750063749802588304214977946827218833420036397882272526980819586221125768556696663647340479600014463661444945457102087968018490500303445503912061358900450933318633392666162455881679052311554801118409534341914099566113093011027227902812405581645529067903350580378625917219985036146475309176900820715291743732557043856885671293216979550173272204257268485768227091539780368628112299952210543120504001006678545399178713045729119139435026122491139215624979882173798655822392401776767453348858401670458532069099806453867326401456330818223882210781281099928622413721296013685029516878247948177841390241451863227347786700656043092203326135090369372584800120908366656118623650916574370979049207872363382498077776030925108922914586583491166548182363108108509132490885715029841142940290576567430099567117845193318366323340149601825507595013252459095508274635288194091550518113381883548928675832263908404423227637779898311619406652668744570327333007793327438237610380153580368054992866921413997683354348538115992195407276470347839319942114586979498890405188932446910193127455749605273779209951424881561027876612248577057371083720724788086613943818295411997551977305444754608114833882388027607482147196787347323733635710914931434690420761879530762554564692564640909609320676539695202881148525255037634431738859999491478280052871548602314271755053349326453031726690785901690472122326710747130089364294298948598356357236707017182449266735131133862286597720374107070648891896727234697215283451863652721869999515542213811448375796087582149905030769977503135150151226891782953619141205168173076993839072244708273933631013997824794050530062067327375525284481530378570555777153604387915829968765684818529810495219682442041494285506962201923651066823779652856815082239976604008475566138579048200088498301117586153333934436992502101592209106376243748496162541296211617191440577496703011626194525914151614591178382409842209692332034871488424645650874425235237607131229229265433934493171186025484480019678126359715575888208538944116424416089230468248440593400609185853097541032675848000259109124146303880699500104397340578767664724009257259920101363253788307599073024838781253897776434136317153691253811615606284090621735027194869710286378339594186414911884136582475596433928262127900245174903922693291650664042756428846506180220348470675890088647171979068433013886656201612876465445865566469594965519687454300417231169669194138384382299462308323081670014682857147841763722724283527121492749702000375351458127297932859146527798571563583453592616199629019343226939848507359517349315183510774085442964542591169248555379367325096971888735470159786610817807867475958537007701408514074526907107332046669592476855302954441701840132645343232060749231702616788370317327695538811992528081726081741343099871346013930652746847462544752222727343071363354003794262765765384823467743996882306945825350177689696193310489992873185657280150402696684172255630877209728329412206062335026449335003968406597316469796140773396735682010547631202405492635392220042733802978418233058670213989729329725563322883130185526043205754140346786355624929972634521824719535340796893621774533139226199457854734119569401370008333157564548776761997548015759084019030972919153612430946925636209137785406380645088519506613740622496780134206029735985654223130576105474704572021405544046583042119159489014103942546171896639191158494974286234378147281709074616790703756454447358648395711487522051545892341227770860562734033293200531279680012679551946381353768822006682045055591639093134825195554012483590745531485165687790133707258254460967033163280520530236947470976089082615019144928274150508636169012799799859010954929716559402108201416277585197971290683416961215825452786712527247978157943036748145087579529359324059469615141883170089588016160891122038212865988242361699902635705282653006718054934372408904711370198677278708114396289752839234718284595673444607612324720840243910270524472076673352094310930946742769122293870264282823395611012424266601764016931001990471012552654517218895456686408825725136639847812745773018791842717198727313448000730801427040527216573382249505561026326143099337580043123507072327081791771983957647321438476639350010314660154113580058873550947978157221416076217280346130892151485952871785374194307707026349547988704070540942028556815839735480801935504486625925794391837781304306506383432459577940778845917005759916803574740704484945839918197975080725802606668769739506847896931640354936961971896158722320741696062469637381499318780088138405537541187558754331264727774745432585663547891741720506215619888224807816309732111823724712252239356589241338811068932276098894937358360873798469156155576788645363556193276448813876615778710453152643444355206545656842565028402682978855077317344821332480718041417542821341961432126639545435934088957340681471227724702061912018243603620578688638983280827134536359385285619480209955647743845959281621216025509986354602921937754712340100955334870215122213042592679635548448078769652084873946749175089223500833701531043211176806715221468970004649109480887377554169265384117636704537582832268437648923266324642028765688850574195655116896077644992413480496676741437935430093141198960796225752015753827621569462997573546008666180423152080624446861926805741570948913779111918503680948501353402083424197628389418006102327650885246808717812583018599315438454536518629164881332447447331447825834542543544284910447261674178348022357954988472030454381979928480840343596947910135924814957493955076658558620444825192291683991625821491771223340746670932793099751714667693785027088544474154805044609616014596950248843691979999569883385098242781976318581661657124159167188587474802049448631819528261901741426451966454285092516115820543364369164018346071545127281131042489723798295495511021193946290351105393314006558485426451951936658105495353101874752932330330314728104027716969320483150576734204736665926111807380044044361738287939823853969077548677769070403440464141515669277932092242702166468225311543709688117114687990710741485994178259985814395351608420824210100462604060319123991395508497965546210923104634524816565949044419678521795623697802590566632276345294200461841213035466053219856160915735528185449216145265669580798385664909251849890664438494884266472784495708867176808180950327327269540758098048394904619915658849790386853404295379713711104656280058333883414827850129938351545189198374147372004344294177820688807142200758241739723148410727976366636538635118522621689448913398515939160727713725919481631155499749359800317834216922067829532833874265980306942544734986208236581652760580796423068998090795701191827289018374197063213749798818202829284886372043562692634560945982811231385469994733557287039569814420728932140775247114914947545765187032552661035096957240900531445444531746073899873952311362770935089582719130399334491451259565087819557202944322753089902092586368414087048209609241313801680294382931375008941270153005014186900220586127028369260535728605135913646426850402406753490204550637970973964546427200433913454491880597861065069545758899643441006179016634497183904477932574126879759382285093931639785749507777004265439558823475275006359669416561454765967500924714444024819000260124038037398603663045338068569760088625340881312066168217861093935260042784922448946094859499301110396189820923688410078310267257155367020016505022749643992721901256367904266582038434738197662485885024675265214515837066405869881989693716598807161661987923235456416010377421287568751244592965205660375530958555370906830101881158800026217988790552284943418950055566778024039097721055895412525339539257826113950370819530892460348667831520204956046755034610911677186082272890950834714250595497965438637045102645410934756012620470352250981681748048970042971437865197282610274237351711665850984804401476180920106776610317034804290928659441949076168771483647548942638148580389431151946316860573655142502859885845757020173808936720955218750785255093278802733634380472617549070465248992666207595627815181133685458349644507198466690167263533276136230149146477593085369216372885952514001388361144198297176941960479162506504145675422629689450846759237497806154509837594614919073480022829846288304786584202567462407481959992785189059859629620082140194745885889341295926615932919991011279951784420437353189794984088790819478014851688410963405620401752492650172217273699569444080921765049935901354061544976199165277246475296304609036761377540764919612219065219449009091742155578565647629950582843470787939623379521688834996379763678059649061140657322254563773755885204085122161410436935362157439477245269878108947256140029934211872611300735765383255927674499078693816181559509129578336080288366026214301634253408951335916616946480128347869864810464084485468273849040589995213049880798569805334446344596489212662783278227435221464841606786574684466169275285993729702780925449354359970025646987275979721591880191492007676085683896750463423858161624841844755467524380032700923259633853159292167291596928562881796982022069144652912718211237545754093670177374889475639105148301626184024496258118287643696119832325300302819205281441838497622755591158044006372048353036711401840138761941575930033576726293069942419591488145754250364245318990502913905066797997900025534046689510553996898532598904024135522203336935406790637645849168434586988246487915327541349348507298464797902511088835849857504952298396676471397929172338928531094524695482991986750756507087190599253497379184007574873955195377031563224079762789283104837868257384637412075412549344025334255550482906377265704403589564407621078647179183710265116463355932867084471105408393305528904842541012150142056168069914605702844196504502998312929298722357742278448850698747440354209117902385884982494413273027548342616897430375127319969587688493493698889218030001869059026485767653034328743091127992863096683067034845355787492104638250138211814679323686796057989081582604504644487402099896504170073741990474443352644951499414174920833439618573844894242544060293226411573565023062860641655084563286821743874046331026639904827026237184638161317635892181072434888375881628551946768954989828137293008249358467095442502091773072788561981987326910831407299365696653028570559974405695465040124269760607229868727222466597786345555863672880467013727795446356978107425552261136093829340336949251047264066606711248284358755289656317556792235557736982893136077980544997166839625863385033719441725710314249084278526693202038329433897437202093340933866404998760473237118458652439639465725945833581912242191433746142596243317004403935994501325722723520571762597259204276280848624946796415179907063352666560646369556363470803818295246402840415016823273569700272052145944752366914291835392722271626233350332369387973770619558090571767845892142617222209394057677799995581114813096048218620384809124200140883907338138216483364907712673800814297437062387049057236644182538976172212319398150334571239293711357238850580003007089552401883576496626702411043992070792662268860230002143365834059263687469449098806029727785105700125783504096495626027980782575588548142548736861151046296710511727603939167341729539634641472766312939245759383628743304856964925193920885039696380822936677062270567050847463389361332097747359292958576018645744734480772795655287650406951349249254005621497097870380493449627773719315235811710970605270316996343155203775594830042691473079955870787903921229803039200072113436637727816442149063320220108102546357710216477330346950813034263417048270559505419724902191702412072183361846595766579970241365585274216396920019804048600639114405260279359790310347669715263217472649021304250972234808486511518745894985833167331474574791818998330608785750680512123217625208049928045616429846218110444894944414868177514150323891847858711404037079651813626264444021421853434436051290110156605676335669636748777432450490918393949107353629157308919296165423506912241057117294890524299442642316337459681885102601328891146298421452187126827620529428149802363148749791536436174759728015592923933849048096932199848624329254481644119368133681232254605396905440868544090256754319681244886783896205493333606206189515576750184391960900168865557371051197247246242283379598670346274544787297108876769597459019757428933531045567587021039266912252177119153289470551104967812301784386702801978148848992268012892077988633368032299812050587296252841336726765270374363593214704748075248303513228583681361252511817077626860430026560224405796898013613807735635783433966581663461455075497634697329783270634803856194755662268697368226579573574184885990552429033256759135424311576900375602231878281683516418587810612079757006906705604880699069740392117315142482931531434825828498726478675723983550126476485364691243453428343553460254497390683893275355589797967967180043790665324458576738164940499009375660443227505269319829556741928086958870394166757457337607181481757129972875392748932618360368835119337366130184413458040356776064623757994152676221772723987875225668046061805361785057867660420797286070313035546002804975551166863145085924263743915708650333376507568593197579256207570404145590449541793951232588923096493344281227956671227138642327943207468338476050668738735600802925740059847563723385029241048527629036117531105999897797926783303557537571011863563313149508995189833452406811651026607731300250064033186881062549157312643383377951477464282709930312348862839906225008575173509033569828864294845913559430307082114438777757813776692015698837815232730638718718277930663295343381895694851541919470784195227846107320664826842158476011912255442713256732617226449062920159699731524594226522715401048006722810174266662953032196428469643628547409613740863609055615554857040722315329030751651689284287158134812749707947884609617662201906488195515653530420533577073424378159192416098964525685231175521051778834370051068321760857812562084860126938568295770857551507071815902512317417990809841377338310888252990148413697755389410971810934391212998377166132742769385907556688356274062296019904190840883355572423236299081175174147035011098206254941261480714857394215629545242740611064426899962166067239924450116041055014938493178555868061310134054954982102477990562398183861847930078167498873358485851428506641582680460309101658466492379560867848543943103615146946021983514475039916678344141396056969152722830657131646190455673203353434854175345722012816496241609899903674770190149204355814183456656915795117642372222765869185661052126520829821145323466837147009554213682640245113306551972367002403963303465758867879591883166581140644374929639270107547229494642718381453727947281279017924449544965740000281853548999571752297574585034631724463161409907498653239803163987970444249372582975009825014648274838511605005001413290094198752145243234904657046132497518080246383485701427859312840984818395998644783224057106592221860825476423137696270383227939738025939128347503434800167705674070438464491901409599626654087173744160322999995549928857924954848436694747677268102420971239628524741170614649025644274298864279351404502203145817301383335784178166344845351575469867287478541338335922195589845381644713332612961299155851767626068235678290521202107332231815880511570989362272809552078185926756291991178384069171888124975635641772974811911411486207559054274842874956451310366229676942081840246728398813421637060705891152301397836399358201831297940713713631367686208236168713949815691396813062111488320986514428727101378182811509471028663461812967573612145085596426452473484106736716903111713395863338466569949749054281863969207141980343569741363524029193790845513230940519961936637862552830287191251075588805234287384706755994344022656670552867851884915575889329393955766526849018625171829707351841905857092195580254885080111774728421651136728124984649065310375017229599881597291643828945419430261927432440809086359840965137949124025257083953753655371770011830434864526758708968804378657107765292451478932634446399948999605272637589318809256567877611612091390497000910185089784674484028466806918796578216840176346480953242325831885747549205212097874234963901480180035511118758309169858528706706296386387607191364258614527779005365293847415351242758452719641115228138004881632142322993252848089713343016253989094071899025863970606422835580222402261009606003942564068683642339523257897478227472881371536347948539948389952616429587429609377860269046150460539151258968824023500453677660241311813458380054777756347516380501366245666687875763276782551316146032818106476129638103631178462945319717683955315446012956857749492627354762276619808852661054619762544492302565105943752309368227862687527922276198576700537901474234580476325371520801614132633549228778262095239160413540154588733562735421992312253702570792200964808940174539739650459711411077171582935974607409272775014053293347373664688862168689367039123440216313092675321769377008247446660882245427155602536554720783670361998415249633754983537062580654167665491417837632649327451108605138351915450524719608051145211613111435024716360364409282801095010218189718831512109194160808693445308217630097693067729351818351961559635894642517084141714135599265186112141996220446335482966861241309331168895573226293132992469587910363742946585159755981502707833355559523348486943127352048865455347881324696248759292432767137508344454825103975297605973388812735291078712347117132824111489354198020758581331110181500408172652691446226272252404756630411818211806622194045238479584180385341341750207315444788251769202222955275313251934500939259558611258928254743690835428706830441742592190239995864545890447791061646646448900032565723169714710745807341803989222056046037044408447930399186673930234270668882807053777400086796480045570603117286483403151390304192520018150225301475687277066746644238067105170487285731967692791801228221667986560571043860036299004177677005372817314627647484488180711603333194778693234580100502091765435356387206710560819860837920419762089985376067268584457987650024022992955321623670417868214728210666074919083580945738355872927956756766845305814045809295243094498013694903950290728627302343116834279591314504266454248893427802003066341273123720004757343216722474812640607038969646169967804668528842426878424816956468025369593675636339050679837777187193279584139815773970398211540575490152033496784005684514463567541554768401873804892143370181628747468348541127114456468758807262179412320971513808530492767618748314196269010872435575529885391854627947696388426420097990534699638039310090472240465124925239934404891351164549887512184483989869226339336566191577106150013214562621316741043610560857598111015876229985096501138605729207101013053189573499332199917134592139482044988540572446127129969911047901252369233857490377836482985376260374891393653651684539293208458726438682665900304850022468491444262793474999333860028289960587515949950797380672862362910850568267920473443960188827602220534679722520436613968768572252226722325235992000625307691458609529322507064704794021794343598667867385440715392644422153601879374920916896881069736241664325121860868290495037191568539516333021454544684106391952355824310834613418206369750742810323364987954889730437274591756150165999121261653095330940140091157111787344659294977278343044663785686324641359444223675791595436497793991267424280684304617759240896398566369971826685836495982173233274688146455030558326916245882619722799307429879201406226253662866788960310068055982705306572508276561560845588538605563637822299830364944440271040236343511005722983701883128237765771998666595283812391866962499330759456806104555987503805454868525171424991067881640834111079126390486105553897576706066748499984099933474159769804178926536171939866194669495526491408138878180330868708878649132999731811263511174817815245198293763710820176646147775724472680460619636927200281463667509417943305022262616878903726180142436109884576517925943748540629253953276739509872013013836285694841895515670751021111192436750016006861027920651212917404584272941798589386905823748014102091939026409367767201023395118998036507047959004562067719967441987129540597790553746606075245255773397769174547839719034428503260523974616893697589242411504715333979747238993728861828976222947787113126571984299927817116016432074140962741539251140954873469597987898558666983043734173134938665150947035738601826249517830675095615219864543650986635823959620249484738027530976052315019317433863509765487870779307997077223058989511507138016085232858431089583905407607058751233676523650385366850965842315537963869578336055564872661569162891696629863133820254445811149759696086647631792541460086929945742760053404962238662967903411351806027249629536896500369632161818801772442963447107444834516013031617782740804697534443281205449111972548316152615043046816355111238545354365065171980914067484134490153142972528899556741340833571948330021656944110270167330841849231089108400121799816645554682712391183644714594042751329868418202269613095242397268196787645288365654361804514059937158935893884482622424584333147077400637444601507258383601624411544299440140282403485424788261803001144320342334774215267761887544900246731120952163744391772917774823323465596426986401837423734631192208300847487873434215415499417070314894464108145921555219267666594892813086109279393033271456849422698122851651833302610442580906235865170946868452799749682871397996895315846155871512727838976999221625942788060086334832758513388438824566072448002684499858848750510173891404125358084469109691530195688816259640663995177470161478692604696813211060988780728590648598104704054848464102845517175869255123354874106070266585234892359972684269198757284913380644118100991786650174200719895532536012479434334124934566960134478288318091204109604377155907851627897860066344737477777685320864539438912238419494109026098432939172973495119903804514543644536970977492121338222732030981096115214249037830505934525440008148708670614757584346803253684928434269853176936663845594285110589336368089311838265863783184388646508141773044007837237632247046238095164794788658982882687136972449410063160979983312421259898754746344611141243080000978007707487171741319881050478435047660426103399151130608627550827560637008808361092410758664710401751899451255374651362593748357096087242751816232733432556315372298642963986604807123496316769626920477208656782998652392875532239041656075065433077630405776572170247123926192916922112796578169773451230328675720395559446479570360306172017174091967216226350143607985272373573727497580588347488228822611199133523246679679767850290099379308318556034944611915060838242196796231229847428572147144814589394581120899602501816378294327807302193187914142105326907457071665778609748533333361551392122684791528184976702600639742674935632512057975386974465570498372648189920035739923273420929330895603830101686548230745937653405949780792720664682547572008937801643408480557140284315559744586291333932007043151315801145466012608489657656427369735842482955953553045457185303563065509007080591831011773760460458008588127473706832972473631434095187506059936706057127930308235196161825673538713217522093924616353265968883738914836643396611550659040599266421379756693610540515805601835637495307297312814576669986427302002654161040866125709959359458011997443007079539708152991193175138849647213113132051374436958781996213539238061576001076873579841616422026720466521721710860315844403772027974068653950904345945402889796170257165519754073038195914605263992567605577783113520352818510604828603648077118599569810601074689267008002092115175344931432030714729311457062379936557725737787353207865353005416277710954927931312013718035404734152711490418386725154529783781831711621941644207016595536822177607517907278356890730974055686845055040768136476750943644382205441342305412134443284473618790833022583117605603143643451106159096941985671438507076601825998982797203024535485148598965515310991982688091635110372102445737864715666550831708918088114498413634079155091358017981167230885500405713699640817556672475366911603734526631030803651131607888585869538762309161956922840265599655675572269246898313221393243086100021943730502875753153215273066570916932598910310579390878306870472249673574082247981261854467085813643508882317525786973464913572170883766838569762989493183061917632321630596428882314309955530576946760037599390397200126737118548149457167933340790437841432520339824956774519429011890595241457657649904548887906201618587757575134239101409226951479429706556005952794125179252748369506312055401390832461386952852829720973702694851715241993149758147107806111284273272692947096940290206666542169581489730674470894287343908202260116848904560968652443461004430898959921277062431112061964059061057548199086571968749677445414353612792724169054408121983854352483188889710978303689816423339266572130995202895002094171442316261808466369701705801464070531494625877356597716968120615872615941738292264599715063046541165400211811470000683974006267003356109713012497218742000078043845712501253724251868843040897592906639123768783355711484085992328272570472946059186630643560134373504132432514039802632707822041367048093723032170657290394664625048705927591217143410150109193508048285927107711105142621766017175494285396227150539101229980792400470226917126322291690014357933426510209228435797428581287222477551928611561218801643044929083623209399569378207684739862023734636533690468972625803524743073127242297667238144134951618766617477936339599225929661647086134772265444093425650909805436497520293286584135625956795312871757271500520559181302284464251058127103480139588738961748028171915521228874631439509233663905189321440631866352240532753635687574509389763160593856093974473551182273991859164927711720311661066811362691449706399709778777864870575014093097703335803477708673802725703015821652205625399280162200057323117734658329746583213911218643536006692625111773256358561685921911212272414802235269663982417059233638525519822203326945372366913498982177380803854808705686564393708089890116868353252511670447948073119929839541003229598798256273047642676264176761514204218696291633151501976117409027652812356760513510280492848689314243099493114853103063092983689401029679692120594337541691857374886955371163447888004413087446544163429938503896918107311189688282567055380084044829184878709151071585411525511087390472348300476899452686174884714512066401938821306421941462950437300217445781511822536232433053377305226968972475817614040835317128503725797963276743682936493663540775332522563810485325531733923655288976743159307262654016123684258861047519408555169419072457678295306604823525152341613055168644323130942873794332291059364032137354959266908286927136641169968485823500257894207659451631047646771967439089139313485667074411277251254351678778039973057657521516335076914096784579003861933531455258298253816475239117131786241948798359684706424117867484064747452704667942800540760328763792946313187770818708638470369746420383209433086266383523415354178218034031812640886862760267446275941381426094477064214972467515378982735287438509827748115960641052222046746331258940612898261029831028101185027011253107555651050141613476111791785770131379708493980975779189247594449424628235792446070091510504798513018875533888495078203944314574568408417531032047739626994516703902370419944161024748596632658066720754275043698400779115957766564927357190176522557979942473129659444356310580441696443154165952391957747681942171788682682361787025132936140341939857659905433643834245215187094300176192766302881654306497937678928309817000590367701822081224387568249473605721491580334591693119620330254226360179221324789315333374336836770220980661188288832421145698572024640674698201887269477805849128263510382975108388362171354536188400942305715944371389423393568941448111605045764148174817975530545611052626388137624913911692961219440313168071101979476786302136479772106520057461030387143279130371322235926895715759702773241204065793706632498675947950240115454503255267094040616582769766921149484074034407997552391995010122246415935069198448019153456792071825155667221946478498648729287935327579250085283120252138237494446103266316282578484542044262129185200486638728544973635752742148133970705135968604618495919648885293103070527074825510686094165902398489442765363875462299036221817627263936016233261320713897367986420107946824693712214679852238632837608376943403382998077827271103594521307479274927969111093121674879131904314365194473861948154248466158117645846002696396853026127772562829354633561078175214562616601066379831583732147788516551646735778180150473940196130076100560780091841576677028832495059070035237708933656744854611558207679053877121022207910524127644329259966619634653612488924054457568359864567825820161033758096746479675455251125457975979913164972814014881428510773773601528754381550597684159760513844124028504966153332501398953222661433412259536111681471717386022709531521342048323044067293822304010264874249320533870826934612007464328566190211302758127347850935780779627919398486224406440315920379268158391122831951633815762869456187699332019953180629134941572422355463848842881865137162314701545682899665217341054807913681169453947352881214948352874944962242218197141722745189715584336045974305492888782559143614410813631035487423646212137631927834179829758832844066154131069228307729762333096824617034851376655748245075466552688934331330148526349740331499365833394467602885566510772362181289729625647492117981266863726171676276975202759828911535710479776596393243661876138765375185799869382653199562010594810879844663382477487005287122977693137804067162849657255111570691271542574618406755639838856829269171426234729498724404785458973007450485860480728351404547692713196012704329305778941674441230720003819403840395627993452107765595156026206648750016822378066735853883705304256249050581621673411743094295667017199733141409295152149596720707620010110227888752661000811012936251339097524880771228578366583291661937783801178531486106926858979260802459615757615789806003828308003127500416196411114017605084382691473470640400377803478069408479276161537958886924573637172168749999638637936031031278608135681761685313122105966010435798038456588587578788002331722960546642624643838413220084116420781459015159764418975430116054452585060614403360755346877283784688108333071593134761283455153259844733044161407246662710991377303899827437228138689914880897085552912735028733542015504626821854178957768289600792441035696146020438885490944302224059473635222198873728282233622885629145063814358693343171614167874330310868557503321666197614632850414120842803517488885997045005973967147793074550938757904627004409059484563227606271764426158694584529155957905052224107560200458508481186867628247042839443059808580853061000387734867670255254350931931746344142942533457630324668967442110771501859978212833784518028467278619563654018341184072288839949137870843008582139198368408560528862561843246837324205635617319475478168485894868409806628637450032908484168628374950212487871390782804813838300202636308961904434916121456348904995274385290533040526544279454211398796921313911906315914513397323350431614771340304735979930511291462400203798047625412840798778760749840882993731471604085299726090112388992181054812092845332278926508631840366184532624500592672509180079875379208279858858398651591609376479754740829001342539219818679023678691673273326770128959595693647597629465252142919889651367862352737712084830330817756864814386172036760345432854051020363185135966265099769289876067626673781406031585123653115757538067981061533810650151122566068854025161045458199118954688260462039302882993705877750061847150585308587704866229233672478114411312276107334322137909320716165293026673776294027845974777274962586547187680913726997297543636967258373488796670461172705768042544954483418426121081112884232394492229467596490652760766144626339082924366147214772915934359893446881924917945083489385392688847115714265683503294788976661986696729382058163099327816876700483939078470597371725627001965402083870282940819446591854012829910497044910738252530709744166719914757555129515122830398893092602063982038310077892309174562038021769064634336176018375135856122944910502984415939535369578893941419209588370025464808418282409439339137844074126948875879453808431094246804830406282243819684258620613287618926343014613026096700225158500609645248831415055504092970368666223456804309015894480277775222526295029474889746828228749780491713805350846869639409722661860478873034634747738601472980525581582317235085119741378769028200176556925148304499475115682541546825464877967949482130342859266853597001626308642038131608207513518363237691670523857363238043226657761528014203028938539222884149541559727336481737560943393718690607117024201476591463788700603962936943466892662637430293679469703626823684451800894814201585585623986720860291482078693104297948692478985554101965421837343343740322651980611967098159035557958686788374637121547734296885888681756013192816317612590821827052326053099436491501507579024458967616130735998486803447549828560877091691647190757139421610924454445159370658698114461462961223933812223639946927024959482546585834095539484545342999607723557351814108113634958942116212503886792152579517883855325554921182236469623611238523710540642573442498484368178053182808048324757295029761615622587981414126219500236162740583902178011870721687191075952199931690275284256020995310377159718516610285211032909891052787978046276086151017101460524621762296867974781130558230636034568045811597885740572021597701581215529141444471533903456429353287201553713793396350711823819423544290961757283205767404305490188336717387515867938372219777884277272905836018764254756151867306273313273725630980103255117259995930212060314649422731113915884021963962468344078716310002541405911379279736973966466698350485644484661104807170245465176969903425141954489475569013590218265459467612597088933070206267956053616320849835197684639617672329768390663827318905781531943497594647147532959389567697339744628673709914995618319039467228405547260425299413787202073014481453134669274874598014731398152887466171225113538191840029914426196293357518978875404741809787934447540841149003929549280211357136441791653219815959403713502393062531117846029880911978717145561697883624639767731127611101336163212619078318444363250935018783301524560465535347160096849854568797782149888572939298476047222265893457782715277162524012077008832677446285709752486627363821759119261773324064664764668004207545253191669210452387719793116673646015131365245868937568555923615458110780427919301252494247122421711679443146634533480170259954980777650707916460269663995590982436420515027626191576998890123865791016602053430827216810226213603442868451809317301720017277952527051876048977105063245819699173786303185322632802908346128281171182231896698788287928984601218059352233180747875049222579313793065766874153433510587382520496841859035984756097524152315242756403013280387586768832554885919684250308890246923074626991883381880923914608248735593179475175689342883038932408205876872368157991069442803915208686739622653904602882871132961896183026977113160412767815450066198050382405656409486016416195972087760467415493118145411331240485930450245689319875245379892811942197044662701108692664647482422735246721721794822210182911327660923949595208612648016564506678672710354130073445478697907441163454343948546708949731559531463205739823505541320781450702292195355457946120500119598633708182870798464047834466662599040903945280927703755068594973035860590189024974124728749314963437014419989951229016688365333228150792520631692795233147437514290575827142104132871083683363467153046529285805580257232229621686553239793289986046572470204180230065509130201143890366946751696145990641446712090448337493978236503152497947399788141843687049319114794079739254518472402131741932599179248972565038783150424922169571021086684637965704394106382920116668507240388219824049559515061995825616585501384354589598731086402276822079331121092339501470908014515502838218113063215338941434676851815985510841762293006629606777216946549142996436810657555652534196810888361829131030546107894117326196080513433948835825097048138440091497366954391581250874617996908623501807035124233046032571921792068692823368635679916539611370839989748741091085610515559817836122564930029258594872555319106147845738301750744202841692028804048947076313402775789281023633901161441506939156864922562311628649053300199455631365979212102038774039701379600777049887881189227827535048529202861621795385348533119314064218543578238560091937801409834111501444692015621265495718489397391489487411970593284754147615686115939812746409135022003870218255024777020805666282278624438499861671858351001938823907484432113089467540656553032228266045771965607351747217530911065841581594014116967798811854636074319307061209145169286693735431584201264374818451308202597283102675736032427269706018466165739907615296722437678880052411238295353814385867641838916084834814517144696320951455356279411711653012689664076467934982865125928198589243957329490630685609206907338311317547931871397852221921599191531743215954610066731344162848501526398497397619419811064402089861985437253082141736701712159946951023809364381384412700474922103122507178164075190739600187302848398159987727768719175451176399220242785914482837563201180213173869342387120655469219046675977736392865638086406211518963790942304074128440459743311510552968206593015857240059188381389560838521354153027657618774070396754953625957411684179936077909973093402221547617179489496586039562474370438400813565380908813396448726215976366107305184332589927723177701475137892985117318130543597725064867936926392378687599937999510177833508054389888119739419222889095716228260617063037407650091372068790019370888699902142424202608854605544806845462699050623977283219010478390454839743239042233931129770137030271810429249973159595177942775322901742714375343462605764536132244868518927860568532363116637876153463112879940724853240532943853246228813541949764451040647578656581328295333403190840453166166234722835524291544511912933701698894872142887418177096470105054996185664233483472561911777612099077497462555758505073072742032737708780748542082728169847096697972567116114788057712063678677860688183214175067653172776178012870043923538125701994326215580030932786391080311065070883833723138549054393717655977609980721060034674525088193383008778196449642764557451316923736374643511843788665602106409392118577919662858650138208054814765627695517389479405666627250807778585704808584173598529513164241719797894206999738074824226222711220028367506345919088260279480431031173209087268505384060422359958993233813474350259922107909017164833576999229487585699551341760921748964803433753202874293868035252885590569404091338646509259024627443779532890970220566995592742434320215546011664595090452169447855639609513489596101893211777152918898434556586506394271143868649472249126397144334572331081455738343627310113581498973890543532461092024339102293480674336733946526916384464872827870353976241381855987867662659535352374354746501338658672780886257307367713239004821729281169761679852340104751338109773918535903625959678280514413859641106196641721409346219886026664668116451901592581101206111839479154337469525958710082697304018658086933606793171405991923370210333042129835076249727017350837999183120777634777267513937374725179785593703333031953573152562312358814921294278596569608803720649683275434538538151198571942315294440026886709569916413125279399456140388201793152179138719140409847572660316323123559237601636913606579892324498002070585138930407408326707000754705542207628814399417484328565699394151654468622688443423842598762849781825347121121651701929745928456379675919887198765445140878507213022942316328404411745215154888238410430943049796397115716854275870196185498014928733927464145475776299255449891386632520478928124088915284126313665895891030406051460560471571171340692320544571175322755906183361305893789498642534367564129370890414759214583658743181605524365979640843534073671360663790457730384212270416373339544047783499156722161284336889170790649286932393045348132427710753839620983465301127588502734807061847644420861615813596902202039973969984336807903337145101375657375848122337644739625506951087051124562445766283887035080897436852590053037813159960108459448423420954123642334850249729210646853978639791374862269159051805057649133812453115269777989247006758147171931200859993171294012914304878742669643334151987284689693124821856673121382127491503808464717286252692211820213178587405470834431638123804468460108783846754504552296901192306162864387943710465635634461425026704544381043826989104748468886359675361614654433506625297021294516090447160092089034860238854405461240563611175271584979330843512326126851115078701438130988927942405742471695430571136437743612640386097836344891896214577212168318308918267548765811021910626739179348653289977346354911703275974062982616029738771519421959899983388373429239463709165951134708964126579013230623381647347084591278092827992840745650069192975704092880105702476065637925661174655748814712623739841362379726925988753288963722861114906598512867285814068709228052298241998138756581603832044741447830130890423395830457727612470451363740770240159462540103398310136137219502000407144142227809692218872940634046890354848110989338888440103206340404182652925287106499541342515550708243166874539626758974684381035674261607656117630475417949424756014050290148169011220823954222104978090026519740883609848142965174204492799049636830050135369821406463904975540789502543110782126098760899883296669782694173588056711300842821380518252937230253313635656623219493460310879612123196045280486948987093054152510419686436116352011064677263701288414991345937743488039134043566666393042775389196827645536616053404286614798866037503146501493767690971324092993714410705767735448604751252830533535412110378560031074697496073103361294997436202368817573068394457721358767206496049909821958408710069726933163464027413509087378931781583612886238010520874794867234267750757998812939717490748039118373232531454409493461599140237747120596014272818068748939657423808931662741549636369751092179756256913370945291904029863467022869202699696637447863006701296616667842824014344426203540204095907234752244438224123758197341352551889073477854687487748507683610519618269571256072682538925265125237715676938130806884711192440059542100200525662489878553484636991939273791636418135824708853466136472635821170420350440953227362867201669396322219886739217065026969338002107140808520948165978030412273801048860165000062339219175951609267556721611556915766117221384657997932729495393747323849910348970793001776358214707936569100519813992477826833478595041852568243044065098339978900382442919568313117311100024120774700340153520622746026358716786585272434382772520162921750425436669586909009914904596473236455698970778109549750190636844146681673886584177606394557054310443072852426179918709934706126513589772765020693769191107706702578028396885327745306551725409640381065891541691475529798918078694098934446030700792804338047036813477812120717733407219041596609160551085222251342995348980015791426195450059309862676982891222385525524449533052565246113681187956791241234937784546418436080706598363894852894529293700677935920113116322187695476545948690813592223736192199001115110349468408999424483130826506870252251502566281227616750851269187335659855731011162012038581058330370849027557080052903865636350337390766295300540927877649995856220731232640523989185346726452897756055558978561843624034495552225340672797421422132625343647831021939972511954504562208359250802116019323388560840132597084355617728676218400925367958473752585459987660573999476042712187537030433872101386525283459315639674483267555822176755499354373252777805073367280976436783620221478599657988690369777378388885588224107066428004572963580716658558081840947490438787235885571321425168209737754529259699116532616912803083866448946868664861539293765254477156598496094113238977985914086137851100383013462156497441343159930155992922770350934865849786161166175477952214571443494090136799753594368306328693800755120549199540917299477624380751080855922232116896516671009768887634869422538590903491131441165483044713291426621893731840072289394767264032257235228440899295463249168811856628156145923805467350316491091489691143833921188212122809077532158176981834995499018269671820488955751459634439346833211969383709863961999475719051757436460445213775212209248633598492157912931887973427620669618690924149123020114336932881606234493535251088368960249773561953081912200401926714809454212902397514027163551002171048771005554312978266407445499959826652171696635771211188446014764753726314787950228919138601180535843695713941009286634439270543429566427520932177601004706875649518759187188962078584053122726799930594884747681865419878753529737803046323660521037698826221477940393613721734315187915104423590490536963317777101995180053569121898227182633452785692029145291704209143091912984701095900677889616030003973282485039880252583306201709344684746601807062356604961100767749443304184136025652823562881232115329586224854609913859518192225315728040808168516612990163443459997666963985104024690069422029869930393715712963152143383854017911813024586610271394583229120823050035527288363971564947895260111376645044186442315050891085848656979215611699592012423854020279631148512973763267425650560892928141274732930785337479040113513347405844305189251048250954728663762855068014842790354578942801863001731871495378070676907588881919677541292794269480201158531311681423837106558875027258483187129332318062001840698045549684184893260101488389623660643069485666036160556602078604329044412482804814874945293187024580029210821215259673399265629763396798088916182414490691757102642504746945359272946496343075338899801713402378765463049394179110834223492112559313148253804194654763420252445649766490657778737757461389245950566425429115548089773680407663930063941937463206679166177150558397780941830398827707331482208623778672651960000980655740851752016054587762549154826703859782803210748559999155278155058330263272085152532128660327946225666539866272579351895627912623782401316198223381307571809540776588468733208766869891555487563193091848485547777122415136313815970608467273883781764302046417834299137769316582557727501299470736860352529268600634140596242690507256196242200721627495391536782454010331362758870648194420674151875939797229166056059481438453024369387080767521328788925761883445571468891860516511802596004921836340586527499959384730445948010943742193549912695987354119605546924976226347408294232317884058624560757974355351293466484351764385276602547236720280033953264164376133645468799624556256902309080286582741891646425327882129294501144795053793505078893192818669639283269365748894687289445329663487091329627075146655527954935708150431753377893764980022461967125650440723795584085443286537555140035403164457202684593035471545131787852682252172943469064662986838356842468746267093151007799122108570460126581858729864522112210744442132405253071901572055106503343392886118616284252171664781221318160991549321231446222615297834936865241467524117664370625148729423035146054500495399349303732023508640883785157217297481302807913306909026926684507548566265304488329718578304075390439844390770069295226556678737037068627436967788719973091661500906653018613007266097919182989133209670973067130307034360192461436177875928030833797073966730257171148861460728987109005903520605285168106944714978654372494745920889513076649141378207893193366717758119781934723407506152929566776575438378129734722066970119090147112558781969102837924879017041438066290066359865036523323501221998040450744961948986362919438197151002278828396914138040547006307932675185282488725051876540147097854773536402326397759230040703673348258569004989560309905869072951317927323909866456897622003126546226566738488446313146604246159820752249995055566953730855723174302416158042448487921115890998676074532916743540091010315182961668344205332674765958656241455304174567367364840086574657829903092381875304386321097998326467010502097740545695330857651316080081222812801719833153223413704646198084705451984165524409311593173854376782266168849097769723279808690214951485772872562608484852748386764521458029136894051927569058269303104699777513889365503173503812719972687795006356102162334053259452645018308553215280238564056590378918259094812846507457244760130236415183284964622772457253367298346082867346820905463032765640157722895246327750590009867453805169584955180339607145536752428999738136057728258750566536901960614961942749283428825122737925538042215253293383878025428145091428669595967173832021550358442844674552778937233504010251688728228260843941457626076046445962300930509220494634700706161859674222567077190496792822028444041508435339324461670499862035282781471507756787188582138390254335721663646056611428509924207912235041814740405583292438860024140379252625668242012007713522117892451554965964156449881686544214878535114221489692300574123088467479681045076500879651715222303593519806059464488053432495389036385108353954510636621147051543619286903056988964206096108996986942593918250255038555487434020284817164336745652541491102158464842278624475105778518624225377178083134969329719774479490849750931096748208394422843537886385099742239106987980684357622437719460930888938046794378585392079989824697276676913324161359921706812613178424808739083946503645597113998306805545117658520498277564378293583742189338221268562833463618000695290743908271092291612587708796601682718063349458125158987779399788110399305345339663541622770301115498115235887467464221336151036914705789524006536265498283788654559780779796536489910373957530963992079371874388537071403892371199370116880472135610969806539991193756657234611869972428022878455580428464349473022273744907658863030209727792623894431922899623110134989093628746757622496692671103970741487327292662727213717173218346394354846114803851204037178400172205319093993783275742255097532074395649752127677235605392540634740182740723881275647466310660639386101306882684160658113446177738482723989406412789775587333248978832549605469976245871953746231695391945545074946179395372640535310869651357212706536977546814522147396938290406821773796300960433502407413104609288272386110497323773796616383903672945051727222122565767867095452776008043709649586817743888729898795776370940218056367430186934918656892557178901207025594489793258685242543735788828666251813601781533642011070385761861042354040058741209352118806692055062216919343117524231323363238640197679237887071280302646143250706988048005584200002048552408650215158574193524716089626446297295439634287552638622708347330102122137132402534900536049832517358209362433104680164945138344769651743701652106414402286190801937354414332436744027491786889618930577075030123310836270554224044421912263898130557244547050622972848732480980823367379675064002812743776091259313619914529421379796215046970469466888075971734903994777764590571270275266634350066126457793363061619422099916736638687320201206748192046703311343999931143368015926126410235582528402677208099170960163595122704977669237987201122992663181350125836268871586030060603415622652371531125231187302238190273132597475385717031553490679041354735572448112229535898896564885816726515713416197837261238044448118832469460143023299912220547614140793239263618175955053283120126757260288199109793019657418606770056938920651317794700988672766927895660235078133101548001682091226652714561785224943579364679118869606474550835806225949064801626605694066786143892656706809831693036431025398310589402383388410586617231476181056403944522968978795310778189852328563991411022127189032234529886770899434063836757422134316364254798540029931768727277673011720333119176251559389368276208437763553935732563137473865836323136046240997886078863133132326395718538386538343848988378167456209273358194602283100920838141976613257072833619354902746315064857104609580262170173040757324412361624234111199928546448806465047175776460793962911367043537230555966958916842521080804719978689930458639766795150909562929188983883894905103113168909433270228229642869320839256297878674643589218546411505122643494523780273086584861865943091048025504698353115762792482601237230141521547694005934317511983540643801984145761756436427362220445633739247741581582903445511563877559814436769021935369370374212805130246236980410591072002510054034489084696236431162942746297081276598245265812797872717194560529984394005845630027512449586526387179234438389821917753080065600564585354148293349964608084506109692841320599075907832821033986195450014040099556375747478380654972368671918035355491804104531357837480761370488015448110278104365376342292615515491272144728223640843645934067392999089153862464496024987921339001200259614199039775088853914593811627023368559990617675822285883374499760402695421255055858604573162697146101201559309917567574508627773543978154776624966086182735518519278535589589172178179369593356166498947948545561922636883237758825145487487225935368713626381845704432979226688682493277577775935896016283101764766108880784642913930164899253826197722494076907541626453249315018024720846361010538872186988215756534157431653009643330667492756793788535701973362839604131820126044927116962993275715694174583677499172996514074723093753127045400367372040391740612812465507123997112874695807646185962105955171685593708602218993977963538870299221040335838292326004659926565661975919600831689021016490168095237355728488656726241683187840776746203290803054416822096024702436608678757623868524690704015429243130794722173916267187564456021332414894159559490673947279264988991799733622466827845232444916073710927162560619688709937491815856507504014156008534602970719018460185158491252142433553811220551823469626413598279654058840857013286487384586075930775365810405217855549605881286954909773777466435291688850094992187729744902828742770065921184573206924708543797175570274609727131275107975519344250657645912153991290399667578278610653570923746195836448503502996002090411868803795272168605753636411124746362322171860373347691605412231445930544382084597023188165520425342751543666461666661262245326128074892917839588246231565004212725672062329726810482565914671742142583495705957395082622233760925612937536523449527628737540533646599098724669813582616688106592654765949193775883408163163320075660864988732639385820206614187371848234775294333078014422514394928349978215463586144647740908713254366302833009147686289339373927163152676345481488883480811069058204457843295176609267555449083112883272085691976792799020066472743821985234037423273422028624227941482881375983532872105844706573205516300668434397385527122787546879694503581970028833038078491168516826316693337090386767394221287866421673622549585468714383559129054117447862286716730439927163866643282727078269107724715143332946385890981516866733592247791543229163111204960595747864731912972089772932640515203073155149346391043138635308359706112879862748357188988652702091430068291405014393317912165013514849081895895702585031425870317900849837437190946881136658132887432591976368205146248854238952981345546582157022583745633305003304237244529694175347639359900114397338040269055237990990110821006102197784873813975816025618576246972153063487714830162974108693782894109000815807082617706402494750340889634083601109472634506211441531620401336583816111522078269431962437137766736988129754334704703526358498331147163505850450437445213758285249594876496704389191026725576151388237813566667498359934232345224404142451377379031146451147469743105827074457222746400058632895022512763588386070102416860263213088840858499856268825321828660957282253422671578744864455828989419721743860819487810872055640547662085650115398990006578164126451391832474649828363877950453014668719711809083861128558291927121169627442921761411687381136865281213022822601131823424828323361903322238152035994644442327133910069328429057313280243706386655320793269597659976035837086148290937973504655792990980819405817004995297567388817683617006309967986393124410115316639304212992647357726397999876898586833180917019865776539086224243866434447880037185063402882851494927176269295207574733472669225764030111213920311323789445657204721981366715470055155771368651977237604771324053100173751737340627074776184714643686401637856020554481390213553546264427345170662882819762522036403641136839344927119515902143916593410432105752916589861565281154649772008575711278296418029794990894630094457072014493799333162475561078461631848127490563309908604506749540246324287324228292201988866681600270951390609506215247130767299596428623616308883552261367264071783789788520779928051547029925662892964644911720272335120358431515105887280210607425036286017417802416731334579995122081777132000204247289846907894870384245053157072740600881990252475834985582035893102837863748976981027019051041785106791797059738944160277105622544197243693304100105467266686815950441367925864955597338182655505213396889193459141848966365989570702834624390968448637570566908529975844447639213589441239676851423988744211202756723483846987002911441445874132840296746985210084018512775102829211970444366274923491887048903266570699990830329276479360637959492425309988248737043234615954350088707071367690054520609426418591799434640802313530595271047966076714146520379226516754022505913839116426157051419214161964816369189669450768517562740244744412662059274180822988727036546796313215414240022366304914373211385247398413379985135102056442816890683738501164722500616194085253696013708682864462345614049832436411719726827083348428356240103219532026838989394125256110642413606620990820985208799275326138723809649322305939721676559493453031793725659106158653697644934644253592769536610305201536330556520195358540741029608742487271413856160855185483368701299943695555229656607569133787252773767608097890327385853942276446260617320368848980168661758022223182258055715466783352207993036426273367690798967784334771400263748301438781166191775340035898403626819504628036464648619277657504750717910568669957196222956703549281017458332134348968130921048899284940884212957442274328546848866955329715154098053409109351757258643855120466879925115412375851676219792052780010552629844409858328187914635943866175397800683034694982919285080763806874189674847565873743104706431917055049201359107383687929986312195484319302123847915751278604395199724439709170543931424038508717801989855546466524856403231661290147124396366169609827178413118296876821929485912140713026748442666050173083866864242969224854408743098392118358239991913053430125628800443277130486326983787341590662938195241412525948683431552398434726044333131379927075959700270949783452990224366542116030538774896773434230064173698978003168987933911741892551580909443534274688068266224847818281130336745544645172920349720823075265505561073008805791364269200332961971472597201076030631553597819334133349229513426876472525579565584089339084897779062551282313900377814264685247873596348262271021802033739785159605432466186937424444386952496186531107132158268016751706422419076071878327593182347610704863999036076617328818687147800777469036508587297442461850566397561737886823245760159281219815417293991756587987393501674988472131788992637782725857509263095951296163799744960701292843593161412143123244430444435935874854357052418628924198263559926789410040123021554410390054974743023736945500227906378392452000742029857636115291921811938192531996919528310198309186557756564489444360721133552705100059287915946060046342441060396696326009362452366962179336860557316618705631443019532532597932013424474574430374685192884067287600708167683496042251995037479031910835733309006797155104839191003119195482248630148159602373303844570811086727953634297165095205995058632518478699148248476547284564018158297860599475152174793428584597672531992499906599605833542260902803019780532434552782279515365912426679970120211496470055136154561189394110483699835797816029194502847624122324382907372776863574170853138146731954992410851810046538353615456457357109883075737586377581268530440150158862802333467155305240541195009331951543941363072348539367750455959114684483688591138943299085411328294314411112726640093210657293815225655203677931261112070976039935278453131953027665961714356100210429158386757119864142435385602149223889008675450987139238282523283398474799508357380579169179463199426761996563191860489522578720998713685288461627288310287393182195584994023573407780324830609551394471163698962178085771173624754021088550210989698936977282368861663119377008341179094180173046730586422223842461948834640927017120428558702604884723163544904214977656593395447013140391118032838019331562292142992105735883598252333494260103666175224695067289412343815421045983146957445116686517837861068933074649259630420715167445028670841666204150474167241219320945950741602776890561399311123784876365118181954135773598780967204199358149952262874927769441462276798595476301439246373982234222438993572420028812693720991317434385121118035538458971032534864295088805566492298172395051467923789631662529181535357992003846001245842747942113008992843953750528242437262090718180156911881725571453613631607729021121949995492915521867833356824666308311001362931499058528621132643039607234537694829107209660027247209843312439458060367120982777514903451182320203146304871719440978373636811939172840447045381699101427353360521771764058852754733398600804611174719923744210992311464562169948306919548285582936679802757931622013103805109025757847040555629241869722857104500767741739156104997855730830705878581073910380259361258895308248144731384587250175601850981079355250570063304691898295919392795866283839724519130940443038411182646297157864649853063012395773512942247596900441860788737701607199108411760714456773304545273730540223467988696737852886207113828512950257511690953394618468777407271095556623240147802267752049732009964129677088199068824864038268773332649232033798802634985357574138490288188809824748635922599127862190816618955509070305346715407963493646665635761093466013808200036588983243519390522263227504665548700318914530513831234837807379557783403104076411712176532694343789404797226856819793368962237806205273461620168549500022660017521969621253748522151366731558724237550050621985982587343514788235016465459030472225108844557755039200578285498989183779292572169055840777017890212607510790969954777905345493426890567188792839870936971847141660063322415109983235571639527733867956558982820396210208922630392927568609978786093838214974576038168862592812115826631853226847139298189296211106217827306782460861955853653182713014357342398321003230445613561706837818636951365270883102192003088347027429407928264872403942276766792170601179643266431071346034068378993633574798866644478302936440087959046950755125425076966697456834368743323048258009269485940274128219171583218997832647064060392647303442188189620699136260904522544174899986463486437129946931960328238202695973717557276969193487115820668083267534173932718770690687779256303213903002657322867737330699400089846291843925896591635627809999820712491273611510789583439989264401826428648486062735183332952298753598064798053586098442388731683675674744177860440290416931792596878469888053067492859508717889366652657949515245565922115851579994365160778397270156121392568298344474253197173601459610309078358078976814506140787565180633946815119839603200885334977994897292530108639294295644904353614100097850886031411697844108760094315411541760433266550592155623739938658553715046330301840755987768056159999884652499904465850431943050231540191141340346337903838126416084357963849405635170372991609096782019886887769762552975676407033266726703134148161243733723827343862353714186848323704623701659733946781957387264105903214721072901630915512585289144520606345956760717887036451883670938393574831614518324104076788071173267467909995028117279496280268675060288918804883506578721950904343430446398379380486223959027650029014236740690147999143072805792104340449712462395151836782275306149053900412353285062786770662691599968881223201966168574070916244141431270198163650890841449383563041145363291056287305138036644591133413028827444123067472007229257245068484193802525907774373860959237183070901439690466541449216659478368396104766128631301628113773837206197347549165223822191729090336193508154377318770204450694479545143746698802654469729075201617626830627315543653403407210019557750612758205099044521206021106160311133854953359970687953149411413868781862869418568221550641081351099737804207612654526896001070326637199545077809199850892678041266347810732247563251113437946575972108888270009083182963193507007509273321803568786701187905547358978434933708636745002552759254420028539109384719358630656891293558562586125989677456889785495175880245835520121689080007144598853669375300202831538948315175741325057778319748111766059841707975947695959222400369380582771467723898518786038293204080888130404842827976998004164876566738998550643488790951741735779608473490679664177469320286928860232405733237255733523091670628471389382408975402979910058599043243414724319178186875556207898384257749957948593441561741202821571972994460121944820728002426243768811408849552831611255855869031893174648370819475501322955069942608431273010228959766285965351144559348414089317222741274769561752592227932270025890570465648018509658768707857739076484412159524003054218456087141453978063865267904943977004577405104650011925693013594117707314227931425572962408585874569240114224662603210480718948773443586091928997690444686514468391271478736208056941049196558327882843897592422700273135635934571692009463500578770525878941719528039732730777253278959298933374894893151607308479586976779627875784724483758432923178710666764407855008818684067014453996771501045100079078226925764203068226846531212971340784146241132852013477577451620320613053259675706552369124194915143879607301988098241711438767292587990268357770129542187879283729792921688223425781660892105065228995467977892156734271923621303507155015831976379173251260102403513521433647176634128896625171536392748757307049111136511914727273406120860671856596939720450426442974017962112925784370536914165201726215828265386469604205852446017808794722724540063380435105019554109140515601991583693070468608553469715188808487635033090200378432822470312111037374152742579513766628645881913785302590789475390229763412744924200290139616094624655102097318610511676798914681524905909680629779184543344272190600745872691430687469381736194536740597657023054640145221316178337651663589923363173435620982446491891955904379122362069232534579145840847724532713605278351548709748309703267321631639669850225574241383375156746092581840938068420202140004754073725332476603816526872627213979023913354871635291176211149663346534505661457573273409310424466413681696430576352151181680877973783843051070594023886362060521267524820234642405189963313986303928156874411182696901455751133922412641779201507576487447563413198288717910247806133174359639034412515339411651516238795910957412580139210276036450436864313064741410482423993787599624951608025199061949693304327382945652978512758700906208505878638105036997882790000357764933405508776342054102751580571784027406770983848219051023240857046334780847051684838088525728525020764320462163119033733567794097919567174075420829280912340032719015824269198183191027239834615502551915614530040257455950780414121269162554549979084474087659762606783688792438037733345210473044992818454680173040475321156700489348498549249012255969821842911261050261289039855966947743036855260418141807422644361937640899115858068426833462169585445736869550580577581306038833668366944919544761387811227234600254851656070002546030042241399070340180646327101996386573174853906446672330490782180134090576954601634941075970545600193615043368186469400287461580762528502215546485607280776747743513183668273171136263725034902214391565025792548251660162487163242711707901577327060987739253999854508040307775078071743711187075055958084491374701585144540908194921941510692230843862126981054431023541898847457159268775298333561720624461845527284109528678481501016448289555451178505116880247502552746959546406310980675617281055881321427865090583160142246110741091821547612658386998902957317644662062825281962485850331317240458289081765585397270241910742110450406519562763423229504918560007334756537836588713910423033926348246477955488496105559298820329152827370023364379227921156777064911408049476875582174922226536356808602938631820336795292999516232000607623994983643819974135491439597767662250454270400247724046375731449182981105687798207415564291508904705141578524541849594868641850366557511952645902547980243917639374737422507874471959828142897471416965244795041414712985129566741175295109552946725215972857490270907114167733591018136201043420046012008393990206965970894947510415068513801366060573530623582163414960311743798957923287616866401070570676306112232940390789818927936343196674545583305612900214249568822866688710528370948991009746511269012314798921697405039286054263585452661487283875452301421163722722840833789529481810688401017586079106339768945806197174468576194193704089075001062167850933903697372978409084298094756064031116432749465133795499409678413780659672526530648889680723647710914905252750397011290758309463340508408720046794855510845544770609682209668824877264264182084150833342008859672297792164061126453214107507952630163511726753872484462369054820468520870294161620319143264545257345808241019538651871575421783102642361841159532998531457066649574086436101202456981406111151272411780309461177698861176440436315232006736256006199083796480381104730155830557148771281369465946657545504522675057095936338308178174929456471781960838762892666391905280673825485668486392918545678675796599512977747504514721611981314692867201411988152272321537814372627160300053903930791580254677157254957391504171344363023621209670960924821500541848153212607063078825074116498109254778904509981411583087588548977364015791456256585934835510476912944319054647514215141267456939830174839696609955772316463986933616267300276422297109352791400939122907309024870824969951250385493262155371858448556449011579440702478927737530153252429858230760077815089683251352319845188406498932144743270865411640170731242190590537746197652204814979088980257841799551831383156187739364737009266835873009411199263938280557437719108367475785780472209853054661409991210139345818883673783627479490947851163365869050761938091243821818087700974540979958980295536949786737000637705054552248877450819156290114170798993401671328929357884646534866051573261721993526994443315431388140570519998841231663752839885574541292632752508205495491786311658742326594705057221313430083260223108409137499539274233525102706332475934640985522105133044742264189971308193070288756830826762958603158143942040855148681661537390420028210280419608786224303773131254271390264377805418710459139662911842477392557169864658977342298636837212048562029807483302349801978529811198180523076788887266847673024790783451882557316958827493187027593414717293745084172192708078750530717014441869331445256091808689486277410705706968340119837574520564140905594588596137396137396879546103260408393665233537378377241918483229805820100690277672788522912084278856495124946861502444104738832080536612489247719297766289551652372583285977667693560747434082712511894168402370299465949510329109606143630451504248952506317409932461847171436763046162345101958907001831417884282685403975282924097596766939974848394357869540175291360313038152009812082814014835444812311512616614366393378155837338074786133809263518918094187293824395613171933397049691591763159713653963323756577905031764642687078371308242236905660435190981944099539667877041075171685399084507647286455475986646115389505138814096044381659565306087629502666782988239235734810825607327550044375299118652273093630679174380586787050082006105096297876564874248922092302449603144876858911878999114578760106194927439280908237925556401242152351588474869863305425096635884183278233844467699548851604497081490811073242618229298529775726621935639372596842427357444519126775203856473524414969143380346804954820320015520050833839962042950761842968636363071429486266047558360424033857709374637264543410477604594267738644268684284353802845603189827442919317380969249265943911514585371433319476825645160231355561098594863410316375498370488963231173764678853555375511017660361296820647078418084156183355772264600385237367821315482031782488730071871748803265194077141314244782055895697786995927780597026961219742111500498770081242810206777524556300217266598143608325361467836003638731369527126116801050381898362534177043804384825865271701131107047552778995403176762381290745462683666729009937248528187996563131418006369029540987997000234355211046574033024914821500626676686942384341124344551010547399036297385766271547070445944875218548603926713101819182956613270348999584222474719662332912143596353850642143928107472683843409621934189954761989051660375626819369751947064785580711530318159668330993832721120231992379190565929603124612408903503893465746976842247386267834729925952927588154310697068375581605002175250341240087125121780883107267519697613267118790746404329743109455059915337245382283200848841360386463637863254872323803220162884789849159442688736740940700172184271294133547698837580421572944462048376402393898254729526408403061454406418447119386158275447385309307605786447836576014069170527875687339336042418179265675173213667054997214413347325585720304375962291458040806186160300535707400391172364962485930661291370600453041134167829286773816483658874919958141834196631167225796786106694423596989047159223200611418590540935840349032672745832790512100732327458729236769825170799052186806596359315931100451949766723625947931206377715598932304620609279431758179723563285134750029197682380200265609453658795457723912460797553153677016644017012905782427070534782281900014597346431147944296532632869481123532344299062068045692148899472958558517216694001712359653746451110807363817197620570110641420027960333764818947549566072762667585980540822409819412724614778865036936344003155944168723490051064733670390173177744453156768412253225854471583979739248300445748579356357166831721430404115206754295906915280227614459290258540698637145743548656926147479449653941105838170822019690141346253720048593182941098048620739464649990232648581142715655678461718215712546950384865658749194802476877924654719957584471680588157678802401020162297393109511479129844750703354119048661680255140839476578242895326754546243402610638668925935767464148371965907325554447092438399284549661311535649419213768122053392710497348132561416405426975388061765919166004873403821477523186183260319789018257575360107197066415804993076619941078056461989834890492680266914449657611374391643267405192477946487912900103665366778741333886341762478018370254921870728231960785617432990999420107201727286977269825853958389158601508729682959695884564692441488250700687957963779543287926324394922795276037000656297226451585468542088251399137986112174203878969897046751287324291772042801453824387009865259890087257922674875115707592148877928976696999682000562917580636958066374442798054642536572462031196932587534811833008935113459135013425860346996847477842314391776507828230725544261521259721945300911216629299894651207381340268494776492975339359785208525258784907315098663420453176316415516031630356950071296200999621586488345698455790798845989670348740521936227726431469625712069428006884805708531233574481910303769692089118698407097355519910856165451781722077922013969477753333081168563835047178589719540302443875003073008950076360999273609354560826444812835388017809332321798351742248609015300530210639982186119912507947404759997321493918210477691903555350374476088063250720490562710455665095732307736025269954159505454735352891848646972213217748026455200317996410527756173639218043003162337890811848831415491962876961024164796903481859280848197018772201103626621071150251105425441411151320404653568106438069382807930302987489452896769608616558180732177000160777869132413019122829814485694212635098903201966783170083068741591450359163534639566567121108435822623918785864931930309376572103731446057871322140369387935177660705423990959247685721304600228023037164913100055396826910555343920026266395645208655668307373287896481976037817703516668730689997195137043700175675600182782355082566730982822949439508898070105055096509915333626197576310264408411179721412882436773127329345020966745391565195514976684188902036729566044061067243584108361210654118946918013325427956031561762536190537920671074594384960329701312386890739088102475203933430863252776238860931503934393983996625796107976301336447859000008420163794576265550926191364001750799094589186364194477422907397994337124960854400074823262217838636248613245134679650815040245861199818746441658050201808489842860962888180610419807431211830668126481854028882568835120869976900823556256368225153316563274695968945400016850901638034228227808236600195831561929359813386930420913988454616185584001176470337170113142435054538774909349036043391564817144329877961569704775608816879915891776052666677837889748088836591334448692884267121672582918862283826823091874305026406827108058623428138407089464143111351588593767274695061001869277805129728715568439512513208936590861386575932614752071598333763151913969666098494414791327722345174195191042455046249256984349551782250645648786350994114627176604679059120928507166465799868764485479368139456568928287183503652684614995389683390803594382282812148778815314606754231628026339993375149119648496814143375142328256311424881973545063348910185862680558583663585810336649742491788764094428809522923521108714260116739589575447497494247004996126755565350553926201990842265420169826073653018388082675817282352687294175484290499338485110092929897466697822883473894864152226564107385384698469742888454831137681587109924173909428804229831499220604586667111236892189889244826535886784190648774027510354448452210770210595180316132509454884195464420324636247197496753649005628287477231002360980383774628029444080114939741008757849063949148765059129133592415237194075707593819107743208888251672427276512286161095436401765238501544420835512162358716278858839171264522870015779740819642383898733407353742932540691511714575790825037807369266382023513741478242803635410777620745184000951709689512029669057177798692509259840905176056093901377339385908471789671276046174863606856487441293108353603925505423026316605673921014920649468877833373586420666849996398071361242686504861662829009303596344014882215716522004252687552584855789173003255951154687908544335436998728759238111906536468469176803489761448878934900998443507579151099108827822735205609382575666198424645893857955861578401097283963244386219776711624169558130684689025955041069060696318445181090210677048462219816793723204181520782748491975692348640282823689367248427775073635139010616040562058475448125238325213391912339016711732253948738683412060752407457055267123250834977945994594754417205029641939194681769721423065538886144836388867977474316658370284252734488019123434114855703211717883052016464583517803201728193837429588994839817067909152481668827159277967125318150754962038356605545042388176416634458255418958443657226861342838946280482457230317426619197466939459813219730384762822321122703195175089876121888362331311920459028088314787504397725256294221397731760933222260988611289366710826637161762267360464563450383738387762320047649507126811403095198766477586675215793886508174774001877751497841525626792413716887311356760637635157861521733818790729914579369787259906769865005902922402236211646833745891370706833497298857656525104771986331670547937382137270624110533545182155801346417165473512006234614048889120062117322093440367549845250080783843106777913788340487888163914697614302672888099882652457623370901129057405592569312234809941881684702430388711000309089444974663722815973090619069590743149535665660895443147918968943885406638127897704560621332581462918974862721440049417564553398148517940033714085586049822191850389902711264781212290045835553163243192996343830014960436711584249711115939503714028359843175990880384658144093168603463926630175962959872781979545168302004438115981284311506886529484819601595259762622078368782765840773582324264973629567941386812510442723595088249306702297891256210967290608516933137775556993415235096035618194026144910711885291491624089954819962499961323752699820768651678349525953084368768780858892362621330254638793041092337997507710647166129418396701421350984263348525398157722473646605930690579623351163520298057620036149867782798386564373977169894345403160106830104399246116963536488133645309494958452500205534712962727869147396699201698208850585877739617544310273029063282244482781713021231315918252502842074726486364493994466373969196944039567420060190522466951305422756966083172015494024262998384587844301092415631942169313115881096806902072022875229538673072503341675886745764577773139519465009899450184891317628499580211508483622017675184725447441103302830187619434718556762872171995468178312440482720187107700729620590142416368820030789101181501756803999043869810413941709777862076577083340766661379130410975349850008065544862695405367297001207188300792262966193829595875573395132238027724625715479803910333141724236160136188207603023725681092965895524364851256062467078947855434520768449882716534957273892949959292323762086495561027811990030392303556059660579041946891633593975009399117940834979113836101346239280094180987793909583398601559657533885244187159973119285979223720895237586545794390728730101069771828184165977494526075398340477340412432987853327697292659126157954857294604335241632648598235817361358233338172300598739456315097256226056121484329307212477400795916149354081556792021679703956333973611835082260197838154995020532922318741936585730073646415583474287674153227799571939794260767650745222306051514898910408807123892696543394010863826648731873703860343199956660387971746578731244608552438643254873129509351416552314779231088602024502548980669930089994577813596553055309057317765460805435132151651243623717732346634034314223405589867013099362920106531184984238255599799642604514829397534082028727335631345513732396848353526709411555889322196110208476226082640073682476543894233383256534775905845464615565375420380942214606198102671555393376078030783854827596465716523219154028299243138957107714954397824831916991325857407247855434769230501091366947943783667718958054274395217657478074133241152870553786908292139765766997456728251176679044783321083756412073995103059405785991734738729824130351284964239288834908840311382084002379805190124074574077523330747315922084356767113422446895676812122460420718413085220573338787437813859600715946194553751987204265488099069840213361990668493113868269216167278202950422511050146018372815016054599963239055839752305150272783300658018366551930587232509559504129396826674142976664901599858914275145294888471367090059906021984851412523591129117882408498619459624602145563826032148221316615961296571392013298291960172772859605186256658734633373312307081858496503648908536773188523629773937304977693014277032236836456079708584458056881966165886403757399904597474612832166650007130142721878218593954776293701923406175091546537770315009621092689510061215297361763825486131469958298012439319862403356691717415293916217731049298861463555752790332147777657590549871729877216800713092043671148924636633652001418745070722520703877541870163158818461865885024695309185813272158433164708564642867253629337256397791885720896429916575144947138895188165151346331965720609083941282102457675542903782831270734298103481622656950593097002751468243790089881635435943779261472585992192116710462596131931204923833076836813581000717095715215758481579906878135050403702896952291478225896291104426795230295920841018720836122579264693232101483379461974143542290308405130870793393717448093920109249487611032608170747032923370839489162432540215294464705399594206415476293755891901012519918268010822125809429490549014361975575325346586772026918756102098334508122952494422795501857505664081361346882325715214011913463807123014967070212001073348157939901226073181241343541667430158779792636265221144398697894996779395018086080627911719454783188380231721214580673357077246541073960800631319650921423698824935006062990878868306555594385024133713394476171766711384678096181548887292637343933225513866729860559550661773524813095396055045192332931043759639640069429284931196582853509730408526350468135223611378313918261410262940317498247385487309392883082375811533568972534955477491460618402910149615130843418535766355165110125032668392707864331557014031574343478906029566353094220055449706829449363225532457087297933743102800484416641509048046996003577531968997190981810934825766477370210768289420892388550975473652964494750484241033188961672669218597694495151913293543745322085468595573809144661660857527142564857281491097430108328233518646700035071119039816447424668996646797915975256269665530409292778960627008547311550695968110866370747365400471237780031489847965027849382387378367079278604314505233829022677119483110619252555038368939204441850976943182262684870992602987360336389192962742799963550374107628941558965927741807651424779313708815716246248987328085777240278744077466984290091210470824457329593087206785148542853286466555512066172001156534318871259673970590342474047242595067377556343416910340817135459952476163895621690639070904076138628251547370185628131073562736518411729818437584279119476833612921806211015452941511874387763965229853340111228485457684249631393441983787365320947146506422342082761215605989184375809042695446013456468915411255530498844515709267772743970161141080874667128558450638539309843680876281726565713104234105292236518000025845786645172276166428382550100584151446653186010535206532916578088149900310574273504099952556596450141745110322616502054315387509488695786950500554997576536686187564322632346188830911835413594446616160056310127374500938800994183040340553052283062424572846864637005657954060035955437382786911611170768185788950311080514240543807675279421636302394873202919708455968043535896776988198370996086628425745577272809253354480220458054368783232374479447781380457187429020733501107490408183555593234861516363843466975904917009191332696227845697597864675217160700446424253344598712066553894738204032414220485708360210841871144888565272117568335922393578953419807310365728907652855090511409752326773855541262996211099717957893646725503068482482202587507244475312588760597848847301331449777169420221439783148929694288351996548731366762142685333801588017724095321053963160568102792375408965899709838140700016470809911180891001709784470573967938949629316055905546956161807728695397958759486059430762504870753876767156855722250332834314990216929253263589817887946315781182606464468664112624110447038987841123074902027847303921467329795958007212045672833253433122743890883783333313447093730268919996316050230626649122502008577575098947943886237357967838553412171674352835867858127632384967668478552485797516994537164355948840572098268851798855875669558957660295096932474760300227048158391893922841920348033091714992095909104180174108193582824499278362779486233524628182186357786394151509664641228831230891589874375752432682851127136684186181569507113239688329661792030129371646566001110020474788050712418994875016480774770836868894785999932308631598411569908416353058173552720002374424903985755843231939845377949929458111079697508914582440442313842765051042918228468116359514553234901751974401855017738722066058396301916120639280203993668142414571087650041525348450154866223612746950870275621409259282430913403309408971147115637552636570989222896495455948909284595231324320227397931725154406288438175387027042857431741590531285341013226708902820671532022811349847625380602495264488371691052590161992992382007022924083150785509486886119885955517832365629154957141267405269242630558619024549630651233897912702197479064357457194810641758120571445276818803077579568439674096318719017801400784084832232618969031231473269640985507204632412126042695295190410637743382376996975179062344894418867987835158026634561730054334038490417957003216580685010303183493392529095862406583248920265342555669040291644451256490445993535940947690457381507997130821387317811666364139342246003741024871685146669226605208125391895158470628357024848133265120447420606589734322011268621472947370140409835719614817452870977263774466084663986901081724698072853581702653511818449593638127956584881729542752755102645059649005426024348046841031491097614199238449620312805318070580900020042468872607627105954448940064653300553551772337465575850611753491811383418858507221831116562158049789433977092781383890170735279294514613644112980621257925881357552476520103390110616851991837518420719022386353223377033740405183180768894013515460716619175021525740086026200719100204335283559962531969576149553480825432460093498113504445138429241615504591031284389869059340148715360015467670180535096095249940235308931760623596730683296755800749242925316866935419969650006305165869285881208489808972964637728851094083441335058480779789015493130394030150855318680100217256892670018075059516676991861745504636116552804394875857384214355823018780445915771764788303366158049310128064425858180061211343434568242492257126289644575239316784669920616318683629349817828002872493490535420079911224210208273440032932613718423675908828230374728722748156554160505884911974831847757443041963863094888106477047769405339488034165390072395466975872835628471976364612248513801294600791422619830335156564708312288315602045975238831087491272036125938104669741157762914329949875758673647129504997039387765548998198267249687316204371217885832032632668147009835699052254895572491729407077697501403620345400099625543352192149052073745048209734005285955194217943567677515222451037934250927074149577536017222784529695627167021969020762902218010489809846978441548625668672919500478767085033709016240434303637806196849986131812096069496455564384732158816198978051541877387095831592012151135763699058832884780815061873631317831208012900263967268639418804474190563673719017363842767152981019989299001375161049684155260946574650100478814837253769437510207216152524417576518131361522587019138433640194552391034209796183743154789122023548427394208690523365312819093591102263918656566409220072844646924087718478207766537219148321727846714704326527591426865538802329687957637747739856592848155349377852871962233846158369515812003172595318488550305585272105290628626591311079135974143420777507500195200648259121550545919268684604470829386255894177487375995549055978087914475869083243073581035684196579280441044950306525332645095349446924343153452860743405147760127130351994254876070134362672416268060970975537351856087006475667335797446881984417971044972724550668945723935631596886288403425165106068594089415944974125374100896929496190972260859344381983751224127531343733691703032937610936398980120806354003733024285583439718934227474745063640710094637855652306585123948862109496726347533760610377321852481087655613640405455210363978862683728197063596035334991461383324747629466473534567294783409503640185163791830349378541703610119916082162592076198759030097358208279373629177940665486889486522572793787669597526476008957414312367535239940338767730746976798346299617674140185374529709294438531760321025768853975203197336077084502564634640879267114115847038924488642292632276928239781305771874851746891617878737121041239987178867734847220941460141642096668510758973507219259256999870899863571943867274647030178986532148301804413529332607719295050983638537107679632859872947316801827007947060249880639443646258252438037530782993556247994496688424719965599859765828401782435905198659078645038357774429162489790764270932630815150306516463781689372866149724070857925992620056644318405457900490339571517326472706965493984780779793694113624538347203456551865426972039014128603337194689408739380712567344937435006559781269957861674154785018427983874554307615601454640158509303197115522167575432697648585139258762173426521407061907955550775001057231651539295634525157607583921240968237011666692107599708897880615973364337944703906232583892911503065038732616049884080487133826098328737691942286029504749059601716024348249200292933301836138191640618339060603315478498476545455895837432827698016793397980182626256864442613697523118608702397134951113359799216806081724614253154952148192215427946698315251084269380560732424684935055603009168813894998596438214879621210416110019504265610270504952917630034210468876016577619556382050441618519530753352738831588762148360495852319670073582060174941251189079003913917972822146957878206291275235261058016131484822043860600981677024084224703627864736938322640238249584657128278888243937079702803232299908175619585849595546107192830831498612695599253355670682378555680828401755465308864080594785794717684684876184712369122321129617113337359557733077213933943607322181042801615368525005950554057044676578152164315290159870558492310961168323376679010156957400060425501329159500816168818341747204280429273239913491102983494927450212441498321715264896238907321212687450470421950726284572990124842258016167524210676618380141988890451811554906437349781726161453210331490706927424955128882325427232204777381086325477568570011224238143908225821478070355010549558777281025341445687373038982145148991389112207662468001842281913094454868930130109602051766945786724531422523238968256146479333820227441084104963270670791130089131319353157837537854399746549857601056686090506831198533775926500196937823752778695888067510320491620619445006248795240424014048228787697472560572763892984676819170071337660452720709691862948775527125640348346278902619071362227328440608630302068184857528339094644875095811493499490552366623087559945619797605414388216959891789528742694226294685796719729775489142312761398218051061109710174346752171764602771799496307094044125986763636128978728376878564570253726454551330804151166063512933552747483679243203395616316298979443340562362431283606963072119766935440933716364939373016774847113031864722742072762010557159990381428269526626258355723509942856555061589301707120343971255796906167479483969254414832880834058816965462740178994158361311345565905691537819255678998610088858735163050029769649940470511891872651640778306131035741801812595569950460830880378412457127193950770927086184833861656862596207392378764702729172468503984785145884683316703201867154362211189440689174591946380304175513103192551378648009955305286988457132252628081136427665777876865933390391000529485865029448867182521348133661415560159316141832110988705650318476139965526575172985767913859539646948153387232388795966955939707391835635060888075094811079010930829065692735299876553082027169516669938673571943758519696402478581464530866533610665018241414948748877264528600375974746015906637077799913356574555678063379644645848618903736329482093519383385732386976640221324826356498826169287951838042576129984200999578243112759144078670418374463357049675350674192935521453981549630426300915920782803305209632354925433691948134924919435169297594726688559812893076530332850725677748952463152812360936390684358385901762417377480203126422909140263989311759004885939563773604988872454162028531519317651629362169254000560213300558274190861077031870928708271059213922413646791711380851216758797255386101695678532115021548664005898055054867094088422762799402584712280035556076111627754264336852111347155492068099644096747231580820032766320717884688420675688702672096077605074605009236997018064852007970217361483865713139734323410341913644821459630280671791379361919550972464042734691630377677710652513948054572155938763352132355904630247583980391370069192151950030047726328101390463526870245630105779353533214381773082104909609512097400632396368790966748389491299295348493730337385766900523697200530136116143574546111779358027727025209690790844298068381611520541137070392502704304009087678639790745195624243852258032085211993818191477143268618544546856834192862683476250102367800109645399850998172776918958791575855384097368993520112739392086826522255703037497493436109123141945716585698787390197808144828412459464531991415229129090083872703607767531858308889456906800108384242893757656257957601858440725915230645649302521350326808830804754706225516930777656553879563957715843576455657714109535047549685011680462611325114609105257762636089377289972910530659578930127304761639026087413335328186287023106475723524467233914200578713956184156438524854538335522755264932577156133120597690275163321219205045249199515989460863437503033975126109241133500037028558409059685844683408891017624580392692927747889399364570384245639746756140381457913299334263849781406653664454690505252146172852120135276540548035396842119843833545408595104872746390058765519957481575592897468214261602868750244463961604347839944149873382574260256024768870870655446042504370974903908051719584660628499489833823401301486929637603431342049541298249517970342499914406294983703837019214854565869195596007043038642749811872559866002277504365644123709987269737762046360736857122523516464937714977138597953262663442361225107176481545600290519240182157905902935071357537263597493551965701955458484883196774404687968301736235086504677015335461090956327470766982319969010868222549523791039560639475437617749663515861642862793734107664857621579352155898450592354922416869733998674227472852219215253867889897474839806387704602594858282735565534172257543988281131374393629650073825514989923636265245885183629751384786928399531897163779048835266199675375063306133022723366267318663023890000819310769479746508353655847378920929149681490637134865754255514101402935778167024943995610064205293208885469007575272022341799998805499865402875200199155787808363936776208181530681609111563224955651848767437713039438572023940702653712357672025289709575585399019660517158089568424917580421550080657698575030234449490664378687496382356085077925013808365558941345185195941655861148647257663386304889429025085230809086034697119765448444295908123360381292047136393513300135899543171973479618447673861063751937474062132513955132578261400045124005011222739626229834645406676164259679693165252869035815186211028358328173786634666972827987597434380997925489723831911877102401621540129957397173648330749704880500201954623715666345956146280332001005965535864888768675234025506728965746037039923492354444649382399293440649501786675871608638164687030899044299775192489105257754596636814516499837269307940199714531568277319062572266289312978680407240995301263625636051138331450844820013859396540187493278315074471482915954633142971792869166302916810561448727943532157708390578275779221900630389692022893570717609260828895509362781776509473219446960477988980838524019118900017994602428779401756049397625379982904331827390190973192784855835881736291646199408266412894024323341602167371576538578371026399833661513947659873464573994355190749424703690794454399506144408575675418541011389865380397563952039231938361932133823330045995865793049255135856233130089165804413424253762000486280252878074800672757982996868731591809146837989422560222985423099164274293528924407351842518875435885862752160799804777398204453439676893121281246800371161459599246278343007303096324939663597786644277844961963616888958240757016114437801198961137885107697184197975849874263361159560669140526677986973002657660751236948533572066197426611496877182636045018861453935005415815343610394885812019577504348889285729922660774085190668319704868978159386793720219951346401762730071793005696938219539849414008907459110445634629652985035567175657190020943926813819146521351312817427206963585683962695866232078524161143992876675404875475589964514155924190488267651051388974152864079875174154185906442087877767576122405013661021779539441227682383206417284631601644541366440970037547527808688140041198389901561813347670835888809575690854137621070613868447106414936107654139606083445718281005473185474287366201588894008634236854829156064958086936772665554942473736443041717867464560317191730624468397201692356539705325579323588974919817743111064258747566177769544171500587966052053858634970546352920518723350346221796323089827599771066522004177963003715792037337960826391853580291721138297643813395041249205851614002973365374835353061576961268184415907849211449003653470822258573289924907657786779918282511017885060295662799460702648604680870347627677948032749505414506247229989709840083026566173429185504870473874232021353575467548925266630273662030687551737774307730996607186623310134202695966983954772661201749399970692417533662008062532606940272657569780816888732583903257751182215094675696489486053242960972092206439612593634901932462124728387406950499459332221945088630262752143526656551868056675585181670133193123161365115970228898515993149986892980981000997472478860891288152555644599422738921648098158189962176925388231878342970081933366332330736054847410410121762152020346471366479467213177798392215357731178368237176286398071309073641175808049613664590345529251199613873717370539254791587998740857434401578115635972447467981034147851097807510703704585814314158816539697373864007527145894649671863822160350326207504487693256041549103483386039945037606301282131178349658464961952540537126886963120054464327224820096983319095528831648564619955515580291111055295798483476420811958711480016242872529623370605766824957954448027780950205020771805586667565048245076318554083048936025969448831109224639411785413205464672606257010279786472485697906290778119142630023236529889192215439555295018519340864867833243601470807489781253881430726167227998286097826230166508996103375553585668838413926352746344679315488239119470853276820853498683878310282080641238624821670285986162520469203166853492471970432070538296086762372948578923026842175803930304875699240907448894472753897895579150990392989924696713665669217842932637497067349095241929828193063080998946109028857154100803918275655990999949514260849835801380719658905982010051425444653931796437148675398130887006502265196649569525218984657543262191014283700138754053704811730573850450748701320477980761499165264037565306614023912587454971798805090892047164724800381563622842083714564438937144440979477579634394057469544537883935684749306865848656508117993156570538829286516289419870484714349323872787006291316874134923380729077460559115575340935736895055677712589037599819424702161713875294583575549301024005526245975837918464048590809857781477982718948876229464740765227261090690045116366848297204590672449953194865970162413480807995405358923989907866898014511121035606515298148411963524781494196353225046155601831549158908316017974037140514738412295774416611023204499309828110132659437256766665973941408518262446202586122718682896864820431666080739861300689195828259611802816111521891204285156674636420030977822315147669612706511531130723826773557548395069861954904145614952926864535899610911372817735588354971833181684130247061264061575653651615087457252806596046820217245090407705493040865507938215908216453451595814278296505556096351214087249877776238567695613358589817207899441041664559593561909656102943583577122154542674693172938532235724503990589846990539225388925551608783165737202969027620446580019112704416129867323812857159777868714973730061600317218717693199824570917074529752138688766227994075154918622901476013977135293249561287802216536932826937832321139654168869419624924984495790454383396197827173108651771453174431123316860206265386898400629189052629770340857629071086254988424513673476427624414654411717676191026435509674250494509727101845969380105558747552087904137423705759777879642012150184198498314462568066004569628731373944857637633703665840716305045004278899943542757121299419646780194344152402171281064298831130900541670821315683892173327119881591742318796422025839622327895297273588671066260944061165717081596893103217588155193632600471440989340492284720204464925872902652655613060808964191695184613196380567631133932890836236227721800850386844886220128533974532917402855437676701987695994983730699494250140255541740558920196289263547435159465610696311529015712971172090899896178409476835436805002540580286553058218459179984779460571292383568902104863135601950935455793605202045807574277424924370345891122118425863362363151685692357848156166166267678927403040035223417154533875900837678678514636046306582544867379529180838822572709586299147564626579148719924875723991100030212285664754422819578499920032366381996559470703105898733585240797477336259262623628595157594503478143089065643143117586026712409111715044597339513167691871016480159334339766925415493209347978891220331901077687322383599347152721103617952196709667474609837809755950702119777958035027028936826870177920405887848718558469241985962494472918479133460592411979982584141867522425385750586424426155635689081635645865479360697728795124410906520633605255189580016080554654248837127545785601554602068265382163833428727361144785328579689856619631890863783147960510308547639543611942935574376620769582051775775018196978555583370624402677381068609666784250481634667149931832849444567844315265657154615667191261468418254027119196287489083136571178399249292483277566553036957532878187616373514080293457833741473800962898618955112897484472477911663116523313653949191967419697120852249780187428469108505616942274008970886709465572054737930521256154367254302628327342320434813477749346276351486043848113472170913505763961671841075967223318763726594268506868922486335828486733717751292333583802439721942719459006155174360273681775950438943064251345069216308309153779244080039098204144942093924540175578803519297610518483314829406034068814386335626754572248116345657961990905072769244543963719193660794818054010801234340569866607257495786853972000429571151435177172630733318286612471313942123182460184861157695134426613146426117466849197256504160042994132254969859649179172964485353092240506737118636472388179395296218314942485392629686977263397424137808579927300907555101480741145856881071686877288938094705848152515143585287447253684857497199248585541605418432248317922985592831014139957837842039188922088906131893143619155933481526311949388676869130586429751410307345547379904629946453346864376971363001492714759049454472617063104624169479086430453096254809030878021149509430326806376526729377788996785705970189626063588563284347267735987507376935307157446412246507391358646659271207679917017222787527973016501994195938608869467164797762107683694979744866633793549107158177121577880276223136154966857550904869108309678792943939045438116884720008868255083402790210269291028920655294680608887524099214828012262010312416578845881659371189396725955391669947269961942100567970474411855738734920435040337663889699767945070426470284787875785536365585456597023003843384441285637982006680874047706637479018802846219369072578436695651957625989459974914355932376112905728633710140002633738482182602681817735045370186713844208534539537858442707863241891661197089401695716993245464491035041665020924354028829432507825730015134122209732076131075277824448072061372417827378708682745187636101960662982250782832385774258550559223051205426808234873781520813208905272569733387322314154228224900950435689788745979125363800534707001249655401921883086722903812215172370693497602929574387010391254866183145157358754319984726511623628384451312538592306637046979255505054949917284167034994901102558194360948492009005340458059389999277673117946099303876338948944686292118762655816865336247237234499029252616511108188131352752785560661798138585289592162061881097834775029099384167755546037208525997348596176324882020549485748292298560131165565808143385655681334827665629868288348379069560522654985029054054852593547957536978674040812159825246473311468192286040147787865996562658230701047608496765818060989779734264216337807478546099013571931285994522682615522989229203855125762413045648196351109770945966210869565161692253793788008018215615262807726378608193989850700697630555924717038732830183304309929771154693694987785221670296800295848403310710006218890269794925170181018369505171543086024071743799142464363075902768326150488149456217630707194368408271757725562977952687929918464419763260484130992882291508502627792568474394053434441599208396074280092898068653782181114246384528555631371879327148252732993340844244970138017867305540697718420870521274705836919678555072755942469342428345074214099353232629751794560340363255183357369827115082625618293244586768946035502246275923723120704174789213715225959359578191280784122230635925341996966609018354120595011447254731920206891090546531016232997218606043790625331810745947113799781572898618428641884852262551817410423262358456166491316627854353780710953537097008862461780966362047877796792638946361276884270006416392258663353936109555105362162652877026058064549124558536571211135755990465994735295923608836614823176408757711390608970226218043455689604792778202391602796827666134928174308339336365415426795201679043753560511847861879786478257763114060452776101080775345595538223405043943975806157881353602968772478610426563573033528572460109424936524193817844580148403283026863194084007069281239870806820673244894882638087673360816168017607311679971304946260466301640196448308858284954662884083380885735515694746608315457179346013502225064924832738461208885768361143061462416149153465437667974836041653218859935832331697901380702331368736495923248665292820336000576635903762070461614690403675234230102599124037829686162520637341879695990161254888749642195310053108650327299339194182968617887745331233755476615074634851138373240126099999170717854769947728393406756247959035176093398802415534478608433277220394566846958411043284864639916219421792743997678540566746610756279078535145853028042606120032279608463941459483244592293565913615664396723400532094133825402194958404066009969030679390409330685510575541811079861807501477977599516119021220880252973914392506640711551132892559806412651696999385201784078696022826752228947667333225197011392715355687660681440730360720201011558215160574364982317709266446356869419585869668955226845432200042100101267509299947669672684586619293778545539302264652010764470279220961743820312749492874816861131456924885662377085991077394916922740743765825659378756659859650276443233112411354361984838066456516064221750544403193731898815640376529238538707153230191080327663031809266773461690715878809408184368689694761903998485284932172851732014824733296088791357702315664061369705898157605250920150627880429779016977092125360429678502127867714148539987326870966008331372590759959704603809555848637909631738476747369170967353475404655618150594685855486965303656050940717585550891857305235415823144178761783534954373929506321305768806517957318587751823178107303494709885769894336223258373778569060115109734426755086241565640486564143092173623437251764912633038154158942167678596487003907226173406832768121712868049980650653943246890648670763631839477617916118752588593870247056455368260198783876320464578881501946901520529465348137632111747279142325567276384643330183153995773320755969618069847077876488027513479297088935030485462135386859184011533339391660904818129221730232736883808326525636360585938072790316711009687076691973314950445170002270244860440299420969894427945177040493419183652041823007978969004823215704493043686154072773705074247593710627213606921032582707378909390584063347311462540100228987541662870238904535459527464360607940941137430972733783837849647439354636338696072298620509114547661002421926521980596974912884457411061913373515262701825345791659486849432051136591724704665458247836112044111457818406860930868015836708669984243782676102854598398399858320497856598553268727012927101415993043766707758363296248179314662862155750708695076895602401562864363858601575730068351382054573813565120642827229838851679353827539020215107051716372410395191181937027523774864519670421760794765281130530896690816821225847422669931434404368033267309520391803001311642475985164181333185220336080468878390005771521543160662096607887359189195247114711653784320542520948283834651272963994471157393415727767934490629108714177441235949952595096150230346731928943607275355119309485176717408125527150614209194525046748518420552566822365155759831378149117691147676753381271423297925142767555243184306813404141289367681678492820994180066910788099221312953313139463070469681434255595576531692507050486768843858542195350217810400674311452950470559843011580823300174067926835338170153545290916065478015670107499646735041753998246484669843918196966364619988053892435615304151270947954044177583176040479995528653320844141927523838854722052825858352686238605129960465561291986801106248470004825624906818361826460235660887104393979469473026825510525473852992938963164624413006250299489464672679060059528506887988452353195401855193676370022542358403955911694365216171684614783030091381786430419944252030182870120509281572421623761459943181621733006114602139448075791815996906041095282135549763180407892773986531544223678511249749636650165035309403764444701539191111309767367694838244854488008037185932162014655182303500196755408200494237748178480298557203616911705079644857764115144347866516278198238422209532438314819868575866582811068208110819880032366474247357406723574800464327482406123976433921395248530941515056740101396532163760684010610433985125377864809033793113693533090161309698562703755190108076867564250930766578283342186238461201467554427438643536260682303362516804147808516567139256452086429839930201531416001466574678980300611333154289856083707390360353239398700749068527884849667645669460808072675350158620247576408543375310129344085117912629498299444671654757829818976379329098226837500190160369802430249028509520447150842605924782207966227798074787253555768158843155822672155284412593745368314373966595199354562899955528002456252932362071340363884172580547062908200217703012058773002909592455959457235776912125779923824688950661397169054362830993435828606144668938385884991141633439956999993414026723378109149393200322465486355925300687789395118798292147004405169082749676729178389148552794247717245343202281916094010073688857665744934368498545839819615601311968150933457489061950754716442581394929351899964150044150733630297916107823355289342314261109531864477701949169127907735161468371042036027959797665400386036373786503189394080609887997975646731759019550103870904531913289608397257188835811697087135060452647317047007957898045005142466045208377570099143972553836958086529500170814927256071107450129023395602390591128064499487893610954405004505208583586999574040457617365002431040697191837268854980648143768911979064340634094880653908277297437967730821652648973989589918529461339646740293623774770200362919249454455370115397716219216148267409819370813361735627498001690158214613947939556946646804749428412827215297094390988200957391454331512913807303589905188718795200534365315082980074112895186021416259029036133723307545494141978338257108209500607147171559749030009271057590399772990343877980614475424191811471209024795357514950508195597599422635288781920982228830167900875781239713729086621719222604851174225116349015212973240233953677853844263667514309029201445697457111238831463332686513619410999108328359969990781826248217945367445030870219139792887442007994570948691202557799307451857570664703939216825812136862849889252005132057426173480633291256308974071669919071583139314153485091473309605696759390941737353655407882523294242217904315437325066963114530312547059869484676594721074366925822342861928867534984490484939399492633963843707036460894482283689960970803273192553475477861581004957185181223734367684351866417638414059031900542368643394173800568787821351083304533432908576103002665692765376352708730078136336663450041460227143719592432981265882938509515879997125948455838844289311179141764229074692786583245223186436130169868945860772730971125288170965798190316344283046045034602382288354590336552158668550103507401502655822232044904770770148382057022916310227254492612077949117579831515862349496258763035405190134496797039889213820916605435835027376281122436119108383517611505789427369414890287175065710165959744295403304384695687026323959548954741775618780282019619483924485556642767162382122933338865345955663849825815486092414574429156475626806577961872170606696376816324693923873580223520459103722263201244592523580926496578572357871739208340284651948466392576139573777539785488519604934486307086234121963691678795485534081519540732020402858116322061840640843452221915568528421174919686698802011077689640541781846640330341316006237909875270426871457115803989327202444140223521771858360975054232643208012513164313000124524956926019419808629357726410677608607311862879793033004217327430365947667688991891776659123781168172350083869266159455302843044501722600977052237270583184067101948833853599425139877274490002857644879821615945131799704975460110503079911896848261778907269404048880982787732560890331195035841720281489668294174581665700801384638206370856901599019578683175084567774227006270013938816048188565084139851435186185519667051971564229982769033148223893927756554644112869813095284995385168740044723622123661803193288272882477802922374750107951069195755515785616295066133627111333417169838567034796048941821941110869519071143955431549017870220112121879322727349825772417202117373852534879384611074863865357763215611927445229852069742020067584109998156610426494329665859386678719269372082963316522801472091950760558847856286984911210061619340613016898928297107609641251327739860445584311338641494070885667240914979299072634199975994489100767111984891037876978535988681979970929604300524055382688916762344188299480632743628999949591730446990703379538569797349639748052728071715593356039422276010581052230692272670047746518822776536478084037545545081830451878885895398589338126127811212445745929927201931125265132637441230810689528288811352369896599793038179839420981720285921121198802477473474405170677481243315120125646052648434447752032772786535861286554328880613616545366055508356733153857924507072298960518037781855287146731946069423185701300896188921394790426289550510262575355463426685701465665472103608095175450889524879288444357872646486771298388774499089393842056185177550736627318701883466687825718536223434710692399237637294281906647197743833689256124789048240057830055088448910221364898648467753076046032821815763601597057530686780716403726387998406858293226043896609247542867128559875276561345190553395593352206749471842798060727872271685422921927971284933671552958323936879410964253383315585411386385157162953131517186541177371768025856514063831112096475503259458870590768503390072404478896436826954492474353917814914121774231478457778981552301308916821470038158131410675560809902701447814970085824286952198243827575678309997287537996725370371403553366374512441432198153891731533682820837158030702899866788207547997744474272374264263329586709738934339951662441299965984966318975144822207828885716656635188553113048443304723052004704868758877531437621882173593075157801604014900927000036871053304809977613327322229352674529946613677754972609763320073319989322311817920229595596120860627215599568442478196387733790333717386608813888067290339550010385223099194848942521489489576300753501906240488170042641847739222557837517879089630211276769284294022441934043961465648100170712592234414729447941269943511461640975520914379351384605034375815921765427523421070416682548434491929239353548183069290701794388711445927573064248965976510618263926296984451802909879674041419684100412003255133578694665768041751922754923988733390616352095886673008726720619722519519909100359729933255764449235357303209229531747726381193333688244356167566674009753722693726763121637124051286304495973728727430612148602305256545886664372067288247092696452921726099326930674330220967427321822785806101997576298847974552418386608194956713825293025422614119898422153563973127932735036476436037523323089066927395348852545733596968718303715482765663828718048994553860565678149184450590224290771283579840669025403453749215160206607642871233883665231478489360586399485917803299478359378463970163717259285258606880948205238752635283027605931173942050979782275888929482366534064618541315021146901872846386860381661846749908417934756746138295495180780480690670107949186597606455055726519938818681245149454247865115938784871376743806767723540095786720002952398884599527665891272078343561128738683312831118350761809863755691351416087176280440721390857197534507214717154443932382604887589980584620517858357962683548033176316078956546618820441352852696856306104010977568404838654632645275873228236848507521738272318434063431275802422763371272556867544035314253063126925453612198525058864677507829759878240463447319133366645311361282781400640054200935053554906488915319624231612737233829864214960508455868176974741062806158637318298938552448432594700365722018974905552747953629183750777047753447868482438548134088040814153314107498141043170105349207593292397130098639978664612217308096195570384453967305932661919834234791356751363682845408219602918741796160374972918338025943766687287673070327197422523857979956477651970103594253836168035476275534315202092247985639308620564719705116861083596578092463742912823691598841477750442260593936012203392287044557786390743550226875713253521965916257600737109551920778614854511409041772036479016279554019808650266404918536740078542973776260650765355571569034963821710857365978970068411280050648994482379977517247124443229897892507392521283750532727285454807793141905263387436319412081309704263224148240447350001686478309654186516601442758769104137187008336237803674637599689788355129952816845266129803252485433237670450138231986034782071861257932635740658551576404275448519877800119008118509459625649860409886310186900639159135640394265579123578350537118442192056324544355614726308780916277662739658875101398318196006241170152211073978280068991219503542145539563138379525777267296887014089918661287934799886589481514918947740083227752739495276478488810183029038752106495443209843863103424649849245379918614740485392994157736529453324262428940388995709065671427407318153997774639344959234019144018004830675933795799871386890584944281637133693748040017341306457667450328119835916947011624356291773357771680731915549221635237015561853590285425615662785927412532537449717410924788965467777696883310561953093735833025869919339038401579045273889354264173417054386915090994315658971266649035663163414504425192840027016088246134723282875275521384515358698256915675007758067739391307388050316781301617487259987097917340686343377982938529379026487954187433267805772582532707575940405808673827993419374358251204891170785411200718430231453406663002886460474129290595801397763409357499695129679033157048397415821319898522686093267702410157604696136182524875960761265707560697883003684089744783221391935098280611771408673322856249544915612484989346553490151201851926218079023002215623655813357215416932946124585085485778479793360444519919191992394082372036841381072305138827569701023573546428957747906578072868966743664566513406395667180335922217140850123021335904045215299385594737033462684668368737874017978635841456292504315522084234535034096101570183999081085149517812981231451143286017174293918217898490401313733784460412321010933075106844379956924325826696428537295032285352481706691700174808268435644356210258876756835615050734709182236195521001006701280638023266233517510365687631037083513463777936038981470193284712164513277943880943103606444874488091959415769010089810458152893170961262387184906032165480614108689183301588750253099289542658459653397591972306053853783744970357238504451567960944079712781046371714314522589497462626033514619801567938730563288983422835419570796231693154248504153391387319925812441496507015566508853760339055207129188097660049864589667573225198492961057721418012469095234421924785384901871700995635479772509764264748940539320393360343641297759996617494630159783936263759230215444251906248558051532960785631287349222140788229784283272654065568335206774539808361544908852107073340447922387306638813845941002524238141310131014648322269089601574403144345314525707393741413115202939068521985278983852709330834975522905226291604153206200033712093590139041964177854556946454389261364809889060218481528476295847442192257549411943003254803064139366656350479324230284954871257284810228085699915446584494583039753645339100595903473054849494453708977555949187266901050817965954585812579447387992639694813793988135658893975495449295650415426990263858958565537593736107202945390266112520086624110185189075218520083674711642982180971208336637988284080208933453651735371689011676654130081155939986456857212485697511234264115961704087208766810706004847595072672667436396824598680911843927547003840428330715941956276955168630819693169804692129536548383064299712520633445966100106750979482558152348869464052455956352914697552747649959608552238085237037159155332760408127187525445684033086644344837798260239740956514162410723914179909441418392247131161262644838614874665465712610006313892078895454548843744619804704334329161307635994001947195859998780015641050970157567057826494432354926073637633885442581518011020437554220835395323851296229548187063047081384775398796346308270955987409990238676308035816669741002439140192095294198270099924171169962901658525871217597379926697444657224337001321738969284402419420841941347175290996080080816786892339509717936501354186822585702983518300748175011591896345173995242731487879846820856269222514505667570446327930481255708108118621510571982350228691639760481708424390137777472464503230564583133688508063568281631416316430524532454411845657236280309731936833455829296783277281630849039762681019597578885158278976496385485996804855099402531191744718192690491941102566914988868323501326068180939674359270304947894442296694154211451191775551775903073704296787269341103492114290739567620232079841441745737482061416834609912261163954634512782306123489227069986472439745481026806568343777674678195647254563576966042396021421215449171165051857925183655116328513068314252786844001324523008258065913920917733131284644736371045224955574721214179827767961904462873741590716965292311397376927201997607261516423097176398167642750929773680660734077640449931109624410896844924148098930335405126747225523161314461804378000596074494372435731600381019894144389011618881122633612260262130653003219227106254220272954040572273870761161401547652005212119440115221389396617770378134869579410178545777121570112589220325791664656850159286295928166378658014525910904696947002477246402015771288196985399072161372033751616983195261983994571361688498233266581306763760613292351509696217181840431042607006429165499035346582958457127070237582522656774644137203659234234845345359619566568567577158222305782193142734414835227372384781082246427792345344315856551245721115339071387167579814442091653666615505472942445538893978226786080556410845455386059527198960566659028703448259522908462057624373024483861324002283151484462119938400444207597688667763143221932186496690100863807612870953876637713082477452751108969807292624546871249409135246230461312239590114336138739877940516643746920097205042380772763249281932345080701088200675451101814217477118165967691113670096336399921563230915617863539445591458162884795586864693703861568315589185672233002121321658461445689031635437889403117623818941066026589252043246859957868927975488668779812848786303130565510417089793086659084100170169640266542678540834204636629808867225963913306480999867208972928288466653736597147004743999982589133205917998525712196066231781012920746621472149605869409086336581281122729373414987126261449200780744252999138763527716610788785038211028914264490993058622598849084516581292789572257366888001375721993678808762561443245267386934520930842196672600297191100855831458960844152519839223105480886096384745349659434841703826698167751486160222077753561321495482723352849899156557736351055999726136348521543007150439421590037679612044646176341985607916707489146960620769870283465147178495691720510208621279535208812616946547782537990982698514259482889938992380796010381593473368361167109245015299030875935119494193025325273687960328842917141753895204498850099245692760943758135110642729103850615493530772193257377592588894935555990059575904542251783955617322669829633963452783353506055436914235496922354695616772012457829951376497191543827041985387015933633686203989569074863764632081100535798159547823718381310547601487301670920063351128571247633739710696775341934633394954416865935229819320501841903805716871433489823918882461187087853489870107904180756099528561839236099131398970525135370901755720644762961037202932959893676283231086312807732648856163684793212657005319286102330426986818820346030699995816021435018981780889169384985218814693058372318530159520448178218071759912540682762490283168459760956997993117449295669821639322834176253479278485409269149446593083371817144549579652862038679888140458182853148130509246429145946990492679762458714201321285197251192796877294330682482421377525964949194541815255987142415808967528840329094738557606545838149943515393748003849106405383674886926934981247844218480744266018344764040559603911411611712147611222520256148494741944149496507804069388481609407943874683977424234268822410515938117971563921576511694988021185599143729398139309231804656732930053124834739459764047663026297127918876266939431466888799344219026944391265228369141149856276318146773691768938476768842600131478786272032036105971398583109934050299296849336198711717088821709513901249390386571270953250437981598360000250995630352326263826054248548336767617412789563924634377921682497517375157441668287562772924355841055222252205964202803130743366000055056925209614234156414501018928212775869050057415927605372774067709725852299890827838650284981771323930997788047926930655283730976974156329800351022802189029509914221219792260727553015638231698127319020472667292810910317205597244396065182382923064812370888662463453551959539376081247521755550437154208529619819626310367987113734778150006220982230972278457594401871365598633202820295514462902562315095506729169840453639090421075964289769175746663159076808199241259029623977130741675226305454346413721838586466127385266460240474404588640881186451079115129550491561206493649690281112989645296863486210916335098595924292321570328034848558287136372635443720979730106870383561782341510476389970559019597100567661680581945246361213422997132555250926608586620212948854617121165845800150145152869429296581798367644022427199662199251916893204002860563260610377290881245696521119159454825125528211326585197584245554224756313542378042112263964240987374021983855839818876923783125067246520758225446902105957431303738947849462442940800067947140942303990413329981644779702174076950234164819568067946154729059195559661434542655248848271672349580241319882167923515360485792057276219690742662043047246063058757364454737208107239163625950145044866694936837051753153760509946876620690304068278387762764923879695917875556327969790660030833143738736520600431435804613973081346743332455076083618564011368583578017424551272318186285940214552481619479832023851929306360387451002112731276346994431523893383206075975757951986494525285442396750228219659088186053228478401450518843549364826542386928959745402021740186881556109595431182796040212126108468932114109509605800626498338886461600882744852313693754556515619322822442408087433931547727283542308076749572396252472954798434600661316185897644785299680950592885851450944849898403244958274599721193998332629759063630528652104345960143370355497370280289619622714982060640148004638472740223009455012765982607741874775018077326967282515214561964262344289414449794383466623718098901271258808416518959264529663623756764936068830252311672384036972228511433376943038589761557631928163787495064644609972445194393415262751817608290438854516860481204606327980327225311007274015057797488563296138025638415328849670813136126954242685433768660426861300824777576832927191166144545767899998441445414798478942763715613791981655593465251094777174135370285354356031588942792285647848280093553364546328958796446562678276353185537463938728440333181677775355706648030420816677159951632619869857347493268872582415678549795300809568684964095717292242703811879390325286772159086700158828421840895919345912019105130562629192372875025869312839350198210412799208359050538930217056106434679463821516340658794685358842172780597873178341521810438190047050864576317444462558627350321976244048065963170930816513194225874369119895073149018812772935720451844014410499606046437433929658282084431052784242025099332418508822042522064718024766880386867378118158358914835596210097731673487546850935044064241769221931761136140115420331956603370030368887398635042282690703147840028835829059198934581164688362984572646605711362769536644653787820751626039241723738468239036487290119292147578587680116930683111088305695256048234183187409877517462212735649649936559068472302108755594450074500974786504689739493523542538299177392762799655926240145866060808543663220413469397680200643272127559363654240355585601852128047501414008940675657725185269909827212229358534210013998571024651663350839871180242117950209449628589388496687350127140089071831011409283419794143404119126899852892118444261610531421578922307933504446886227237986665604139540122829013135620620735895741527072829906896907664696020462097411538144042927211933086238578897954548623092115116310321312947333156663324948222386637917209378034998155914161505951051630167975550970650816222629993692223584532202556671461110143558178788540255694350597563747522691860161203794634519926747234587784500189999032972970495459842024982352413238723822705962694310923898068544191941932547605906961000745131935699007455249232109857027199423631642281147413552018245004725047931569923036196038760814409356480059509338070795172391755384242173690307244471699768640911671034545902692443348573673094852179685598156080657575329952561245099299565618929910795069843383172157043891215253419047002599095063471035859524583279515326998299491294630283370292487832132055892122515172942037300503247415992052925387019118014521537879024497402452948814290302170468555536990560874201837220645352766532450649985945794164035154087954867253730237214098962935364884171359374569425891692795281141860137372021475763941711050796302726942400255911407804081840982362444517291575226857927568846652071321832043977351271566525498785489623809226987375930552755815672051554416951561613365002422430704503054437682125357900759506127293528354410409479976948923882872847239084539839154113801662893429667734260725308432693082623315438782704982857762213642116020522708781370907933481532916383812682117504177891300860078804816403911872730340137647730997960723928516297390247260686354640704395172550125953390000102250641072457612286906014005742088136878246602705377728199914238336596873633962975354734946963124361395910884501096556000815407176851222928036365147310417800832559662792164895146251331787273028066262023112069683098380850471446045206001063121452087512304647866421832841736204853653537811917987297345080501219294420603953674167659755197945648289313786519997811892059369466702364046416241243874800221477245390996097067111333646910111112488144519000317523785326759724858998368909292229030307831461733836425397603583431420380050830965446420223970552848171005876739220904310257165715702698220827953541674433123452719395935876465293924224297425440388834630861662882576995928098378943010922161637389947174013284778080535667219004590212842788164945408294089780539803566631709638314192702596502626567997904976484195120426996566561993633306349409482106237876507148128962946294422569501085816958216366544761197052489250167081062255936259472398080129501509767959981018691105683815590867827998610726903872606551194973342478218986258426775780757404135926175528789139817936661022078066329614594976255950076603871036064314191262901293129395738390685781498342364449476110485111634850424989249129840316101182791824243574565638884411772795621683975159810380775184561953055060964893088101779562997281124140365582808889188518392204566844244574219990935589192456788590309121092098705957701090848911478444219763954116019850928512078886360635971349114414473148239939186947780889326680156417578582865445657115266691372095762636609249474061165092444960435784156993661959763416644535999877243409692701541225669099891253708119220811659045004514790530618855139274014297245764825669643028290921968703489910789509561966819573680082257233158619399765725819695551243458784643974146334360832942056049449569368111420434973736220547032901934436913397212194548678017403289752437306723014785905058017811620044134289798924813718332911793861473174688453452873076912598411525825379992693268424884723952340433153684689213493702051784813072656487814760411456681253483063551821283759968609896974316626693658465562994237825788284271113336494991376524379140115465571400612957266765558549297813102700128574324236396276406349531571192535891654004025851635312734334626292589117508715857427855982396408061193818210080847444489275148817535079790662916815380118279635287448137970557474243832254775757748569505888325491206062837088406504265798928085821103240455931940545570716492716284620263634133959900918670887030821873214237382158866145920779610361198608007723988235094580950204730711094264118406412363960541441837250328181476353993762408961515170044846942511500196375306309756290773281867058637534156972785939128573069073222278039369557138160465748720422312118445353824572699867091897371665998071580277018521107287808154992671860946359608669912296960359910440564190088017747152238073725428352817708506610004200007433264135858647116258770454020164744052133793937538460190305350109028233931667783835870755630981412121957623851683514209933124895488501535166320515095885280655473247095366638237899372165196308987842126817871021017632398943320273897020056436669904533664621495367325983731550679414964584090588338648418824301005936849620524961271598237902312718788087008064561934078970472651720365437571387285233388770054366672460019510886330142222231303254853186597568629819357622023314341118557095966869782030109424675665291335824575032818802316601237706666668832035539140029222827603085175732840965413742388219680276668395386437443787728226532895126020523651298373585175936054434410979709168573668095464415919694279277031154888171036883220033414025703337008930541407080151971442276636967351112636689151781684401168716387450483028121955292485781605605225996711334260522839445742764334187859120985420804732780860494731809821906018583663604306313531636124187661506525669863881175424550710421206097637185596238445896470752057659261355851023564265324701772765082541051750911410091047440849383079108332136523555646164001959651653423815363405843562823784610414046104949862971299687089092820715695097512413184363559482174012055727515600071620793360274914142885263492935535653182478510181394876985975969178938987993984009355267688500827930771415520323248033912332449495237543492088172680901396109465622258439298749369780816022551313394689756965170438521447557403297247194272302421554675769968366734073731667663819917026988247563312080538394763835543283681792947093427563331261171870867525883358572215320048603637327356778102665369601997537741069099332376649971062869338350114273211184175212663622644495751442279595191608042934403283639865367998676883766432361437180096645856484435259691214616394934856954352357138364357421622848466338865519289081306748978185406060441585879969805442584227879326551108819719616426942649220955379344617488035780847841018202181062869140120981116320474063392123477938809904087585478249519059734170440118184624327768890398589754629380324657444855521861062095031374751643421355975514652971872102627857806557684470893800978747794156502532944699007635024729124699647183150776739046295258530052184043215114031251334807882476704619295216022237680935320244765634286265097267334232926024499155767443103794721719706619155034249716590502775662676369870862043422717250254318016710375146874097239587386704818229589229430024378847968155640646520542654740490197689525176363992901696043617158432193367041555716127578598930914688013797466622958354860975017951674737008083287550959546764982581472374116150093257165973977499332870397102489690015168216377865408915180770455948760570176866824469307849019298709809800040798110948665094776455968562222741845301109982012478335508776118391711838847415080186781181501449113764666271004895192246336062721291459656042702339466812610492914549819377423190914543512325607512191345559514536270481512195000523416530993470413038194785159179273368081037195541618224189635796683052971201428674945421999202621946835011961046381331291809989706217742809300890817785967168799578376548646889679668363816160302846773060092739255726505902409225639303955056709913780991800927571702512478741291321363216456520469044913412260633073388480068081066188092283663437837008249475338640292403199347139681301323872717185035862702092178453592897399496745124972763595791648821075918498112949101711374792456048806131721570366727037899505710351278893701307697386524071127316621475144872939443502273174196099400240755332112711978325773757901694195176396523828978214957460786347760052921035509609833915658712972470365718552063644682560917725069260235128344916406841562246698264554962895832957017705230949920395345935607458162998580391628160049972070592884782852295922516410446130668817680202619615917105867365811307425656283407151129839210902165422714442457467130089227584865626221911423376362860529085907040315653776699236403787297092358445147498464177446917311546088810917735841003313648476711265803192769699070537608505859488506954292318566993356482187907131090831653184378008787787882072912189027908395903606405463973678361836896915796866874216792641534953198150853497623899757756113767680823674012619022849771560946124371179167934497095200519927951850541625785370469227969727424318875416043520458205533113330180925872922803367717137602691026036692671472317449864286128023919263522149623269814990534241118892252139619558137901130776534017018174172026203846411916561287251961899953791914342828524176854849359449214327950987343478828738325353576898839276729160927291498703985345805816323687787511702138632360109102353539185455097524688407702767212228020965513213274798885317130539553878116603290965849488070876383870938342105260058538041638636543289235757968532243810870614575140730150955257851283622532311868212339354220550049149595562059790467536141718544583555137066009901267130397510415152761274107117209672428986675934364666722425669332087369245636272528533403036051007402513473108497935163425243285444682063971158201427179434834316712418156396408914477588339349585094379048743596766155334198238097042939283195778249386517154404016436505716004376627355955203848936800445772260997458113764641626082654548212983244470578521277799548841936422139654973259248607475997245249657586970309167626996991337134400472544083745800242346323969317425458066175864035902414175353189945215444104483411308430558512436445629850388474215317455586704584955794851397170696586840758875079421040138585214754186732450530438756045622299588537837501653324968932850960078465126690857052875318922496969114500113825900969344025545473327656422388310521367942495913224886924017686114161243525981746600268393166817710098081476555481235780749483830259534798838651187113297427634524120595957684750588038988903523018699136555635918952296581097796237559248112342299840318359940110484714313435187802508726895946674796860912092914030749389143053104037009157456647010458558639109404917220872335123053931207898525588640061060471017578300447523406658846899180539036476534965690750937402723381079782452389257905037321848622879728120683518700073967061922763637666509384552810485377484596763658175468117118546690938946305629704129609945351784675287525924834312338622575855253090107904714424070930172664005716584851259781082447662802247718037099026432397784134923519159081077179936680108930710825658560504687980027280202154181536384630644125155492571789094100775406564772073452436224363456705994705898969879269758707078332253464309614761617137920108035449792824301259078659120879141951218412011808073093509685178765039449533554229961997589545144898822203558410602571062478830088165436595620452906079971120986651194890227565061558387217836927976889640447639767979028000485938855722330290339832356256838510820097525498802759995763193013584676449969625586205493584505720344618462399964128830410814588794287901037187983357382869874288589398003822095151161382793698483583778948412072289277480123292357016786746983625771524656028906569156828681786699017907319974841858585299080097780532571786522693017108165961896995175857959456633252518368477565675250697456256507163073823728016181889675422664394322200806582392062782098071833246498802585660542725861288390643872542702828897348945800249822401768264128562646144083459870963879659027689023225423950514625348474709139775689409856702709253954876636548813515878165790464480200655603603768842345558256131047582038239180337363572557032625173692622947065742285309361977327210283790542010391673282276561129825560017299504199045404327685632911955969623939578093213908234341489553708759043787494300243774274924767855580244234888177387596017190681391307646468230274437046521740242901355967812667022055103662079046210970698273379067108082963734290335675881839874714469707111288606379380129609077705857594674975778572862566723069246545046840745865669019838476119465860165583967700903300736129040565903208449542107047670072115844948291603764954778662308812144323077210501884435461366929324171081695948069638185691771212630022611143788342021055354330358431945260033379738752430055995521866611550602078448340113071950748055859513444465002907971459816234014954437027701014103924266527406558505315865914363590539414398215016507351146241525490513596083878681336760373330262729449615439071980289452939706475781040730629359278045947864804291727674735721863570975877240768232420467171718509025649461089769685063779235147409028715705954884913085935871055322047804679053663993846538513797925625385936732641797144895687312993208751049253829467485726359821671467081275601194458532217020635010023728453690411662913942000943787698342975614620718440486939071086275010592656835087534784481483957491400941428466941471054153837742674765311727304042183093019857154526617796720441675174974026941104193051499314898115226654275615632914395931638840100762790085393527771087960439061948392132953177062230419556181552819790549832725025820910239850542214533543067525574512273899209869498417036765250847430959935796823907008037132679931898175261692876757934901365585871705668293598158519983517094076717523976502190705451728856937415465734379438853956177130558118598681851292635772524274244258092714157863570508089755806563995633677817313789178176534653080274264648602619678843212501479892230100472308163040473703560782492818280080760446438170601254358488325954872346079952788230083651473389698239642290976990870725883785502220469013808024067443200079023703623269148454729167773400195199478470315921264078832165629162893830883895924488862158328250635510569779122224936339739525308085822975978360263755223954973623674645603155515938825379151995376803637843244478811784221398518391456031506087879733131745978645598497382415479366556403270058924714651265959982558511938571014621592534881666189808631224517190526541752966081760360797764306200430125381902872379918985322893829800529733299831014363925888497918362266639710528954597760671819762044821908299047892954801151188900380533032340017334740876833253121931868514349724282523366069133946684368459377295111503310540905874104218807058149927239320016251299401910972500162222079605986874011774557320632880527292626461595572656218796726999538265062133415964785493100301632579138302031770908698284758070579082513591263655268320122415672869909597568969515357621074511744993452028041587665594792007396689483205114276872601203478431421325823951505956827504441248788509591102027761875305208759977995455971530630686985346238577690672268008790423261809388622811165254020541800121090855598199776815846035711683303600484763018784227959907908418199547001575139676920737376941814213583594705448688214126416092931916813682985754935958311891098760953402514281075130613443880122743548537293357874791735828359287442806566832293028115755424234786843391250343800396405388136766136076089943621472474199088227714259515245542900524907702369454225800852679114513645433612636487444404492344826868681218113427636148824507203443320540245545737520773120578606026827546310628823532408822565016946410083329888909805451852258039884557516251885824799900551795984197893750952944767384453007288151911373664278759687037444626662865418401970405458435393399476272127320481232270663931169448259448024577962554394796827998077638304039675693398306024767663814614292635795005882811726996050914086459596577428062603575198280062338936833883876662413885002703898899324753945772238253199051618623972133117607549178907633526954728031722946868799495112930761552010268954584599052729493796038936424825620341686789108850393394373698351540580128385519296243994700096935845476875008172889213017584965077480783534288717534394692551613893054461852776831023825228661865602604895739473112491329618787338044187458999029817302954013360744793843494556633160981807683837330567519499797981731254714872050951879487916004473588307649544498377626600502098674644914791589959884586575652080250553442075213309928558078080222786469507586407251265053832287045756276889315964634112850751147542718929466581661593328059931700923402824244330912384165971625384985773672616158813571359978587017660980068227572957022780310448502842821407307534995821468613266889967548645370019201980405368705267024862678507891238305687085211310572254761930410843483066884489431345303607919191178108519576507938309968894080316634641145360119162177159184567119453537720284833936434791507394994626049735017441410933567343631104274761327532735198232963818580797583929192538956731754571552993655785946382476071177053197704764321745977598198054818267646040514195626577462048710312373654064767754909819659051434734369239113992985044704261408166248603448382573998138067725525078136449211098506621104999750860856499629135178891991981173958966042472030984594189321876441564102735166207612367014203563596095791696764004471357458673040885176320083502947353977516764788170855098562498994971298221778936599430352267059609596108127096008262802431717824969090274489353712569357366458587698875218445330073495620309440494443172886989503923042061550207654380223265645197659951251107062366827919799980524868005160328432744390238532890738029160715586084611050127842540609479723941021485862530555125868785995677497716674641852508165814289007351848857649332225379947255985499134276144663859450192472484862336119317349632802835899528257320937971996629146577332248632175760172159282136229056380712691969759362439750597258929092751232050033817749728570906719633901029204967458412748883804865435055647159702576329237306781532222509244184732137071758569320686288759381052217110555700930372769836589867360324383079124585364301307796843658885931674867911682522290752486443946061454773187959723865990410923648172739260604845023695151184146163480773308396527536442897376450490876904917109960937624546149257837866392624414362995218064887035142810882506465581318342089868702709824114698154711323420321362424853311357819114464003670908120987371696228979724525342849126172133122394674576104227881356323658063679811567121469855536981453410507105368126726863535305430994957976679116334104732009686470305835410948627455987940703216390598534956128900839529421773338742921211944946669048565188606529975171794379624614719400353022283675720067528709578189668001305018029639138190460825884774512566389334597269825358879433838968510123691720763686821097700087754619986352634033845146128538782772538591248419988865680701113796282181546415265824555477612133055631674833395958511587440564286576625875835354940220592276632971407850894538450972652571518304009005215026616484414823281179813415011547773579948477196897006552304202907552010120937354896582317355223331624558153710790461127802832344002061501488108320650652129368860355094382814396957093305522601138761492855667394064211723571657978838339605610244103830706146361340139041931162913163981053829948332207149538151987867214504041024071807246189126377674564745509461532539662604088127440115557271659003869670150293476767795061811087625238461167094254244070036170336605156662832551702876296941398825752734238637114505248546279822502345147796487630575286268809524972759185089112466590318747085432192692049860920677362604679545422858002395191859933884084870465937311435580469221022818411318930893567445694424131834847128975940668865626324535044583450183653105595253043688014551895187647296423764390777796708699315802664087600674967385080728819758927490535767294671638485611257177968885706498368458494860567777070182022068703429120057184397815382428364006175385181275943957300702894224091471435457910354195797262820444995749509634554177366495619973683727031889678496240981606422441929480992665256381120938058776455846248154538370592304595006051717676914357943777851854747719224597585443856824137741909098592680746616443546649971854663725716375135133034640911941465144064686054750986691345451007015395302580118077432238054508346975273685523992795595403005965171330450317464925325875543450080852011050385053064837816014892376768327176869519433974852985641804449778730403435905952385410857584297102298014528832293873621230890313659582249922751017262176046104193532369153626075666961941941530935648774494078119967689884956203982957183475266951105739976094616876675649294975002395738433021947364087506423699319454720112495548542757998157324857321737416893063281711809714849245085865012416276544113933604136234336522874492829624911032538805582036152327914339328633402394842212517996354614721733780526963203928969529299392768836975128441850034698522560439209698423558536719005920787042442606015366204252380453708593589181130850551324656994681537822698090848360310226565074364009567700848188871638057764513195234173011831565174520741099029413203282737775026634154514817438167472198462879097758966572451600206652493843125543991370851393525199156291538739878283384901320250696240670344187049360418650065394348830246109094950341062804903380020104946490433599847200514725279963602338108234258195750582792331046302438623316978533654237127961413595373942507835952664722909285169286504606934726833695605626569875422855462999766065675177207512099258085570935912443149763459479228770140555072717902663733327004990740700168249402529275680532898042486345574543406319659644242901285744802956129847530284072496822977619608621103016627177034074153443640588741923179809227851540449564449027025265371300426019179860103396102898412078349321264028507065877716032046861236833542162941118805890558718641297453180048390019506946509391179965833127787590138910061852483930996285553778227903745904393789832911529525399493135897912564973207161866805290956501121027017954180611071527724213249942876862204912727280997893014192278084074263853756661327892405975776636587449822027296480976238029056924972262045918368866184460977759178090768296870801418412674726337493175223905839485897525545643937935894318847299807394775562912968529021382764751354865063964653877256089976699932788065105771729049446974052730647077466479978296403430183961482215857956472438778161977272946458455791657136681499269431678491909422730765670060398690836026699316967305305826538470779412392363769500478883821325551136188360518124822628319440866292084720419935900808584023205234379144605085713668786396841316482782158754707568717662688350407258592592622771255132916443196863718708553275826013736927463814214648592636902741054097318865272707686267445034763990740688874412580864646014444336963324294389765270138508621877462595788088343433868897448658779865011823548760375967625781635911194534070518355615302405834008506914709016147137781305242156363666805954196750778878965204674246040344902410908282640236379588826547111626348152101795769566867266775326465231847288538064805950889144788748922743617307902619156309454520000325084756427349725864260112507139214427334509340907674695327000879906756801799575559331511750050259417993973423742429362865851109750232071662143308838450198685258625452226662391322019211052591518939218835415103852708675302879242668452200883152260908557123029074545020710223905134985846170812987870844133685636517288392693557638440193114478620713896516417340959772136498992503774030493743518198149799796440174826248706354071932753263840629078904281114142954888906147495286209471326595262844396255976066245643344440224012673186029226463220783293453926343990577122876224333613565612533354946656948885594346910185752883430148867226464437924695657040332691569101582575547470999626399163245995680238649620957280901778532729492562216562725684513158548208012642740696225363452933801118265107892068122046583351994524292613926136723298455828870605846366508351015388392009902713961936839098928217903474791818085675947989509449734682861807877557310204969589634632782705558172663574636981618225774678619424647208565785120627963420091933730633951931263987007988878522535992254680681794373915643729688892121016975191636066485484415061503359751918480529937454607449125893838511693170409962819787281864500740212709465062321959735171391374387678340720744464700792031099910910004840702544511731665357954308103342237333174878047238861325173528078720870081548777111799682184097065203179572900993560246594477081078195184600718398980027248003056775942752370528064434716407408971080336825416341193871857545196386625216220642094899222656107843175940798047301384265945684724022972262568106119200658391328420343197424875553348995012303344891629449514086561744938213825388898925826415961816183319250118094887098056473525840698678275848151769742791380744817235272798058916905522807174576252599149685612726458626868154723228705908204236633487322620005290412268144888388215184424994288035254057045427948664886572113129736444456506402559656505941273477644503631433205132178057248773406861353338232781778405273839979597904047279258692599388221304859325110794184036064228447678636375480860258609596205555079703303177866629707456463992943937379127204718829993230911782139997411294764684628177491387146228013838039103080131428632093618021511843418849222288231530507413077318367295979186562401307989977272437707111622745764298938358332467948352385586724823672110852403199766775296156777114210885623994775406538201669844936417955519103188183143741483479653303045815554082814996362976963209980887901310984636829084437208804882748623373916279666334043419573110549319148673852569663579482869470375462219758433375681513050986918526167012314991889282157953798559325475418099975107953822876416414715959619639735113898338159163303977106290812936941972403101498546088253095914407082634705542285328856014560108214912622084680138471377811973586969807062503630283391248270045466879615324701154004685775119710729742678463724633203708417311197382987134726521742791621159625510944403957162812579659791953192211260883630536842861594131598359723796974443769002496683534841737712888494621421126182553289940370334024213684934239118868771093989916491769702971857933403303695590386678235684120955195949470985327842268906929865687472300654312417654689611126976381171516779115641061038341222619274412433231659873329942980669613835135573207985647517638910514934402129137751733882588245634902936541907759763520088811225630958796888562474090477224124504524974983873939369740823185701030646478105033273731376723941730512105941099328935641584789416020926173647880924383914097411635146931682856918883697905740322823243276507676947427565627916754205807190480940030942961892161973795753482965897759344398776741851978842240512511355646986936428312548496636118114866862379318114987055299628415126790179581596634335316514390830776535134298341288034813394719777260443400873192067237898332908568512020016300338195672527284361205878978353732469617289995866057800416855761501011471909415129056056063506687488658833506646491859623085211419200960957091236694631973090954082318101127838410041552226954526415775599978993399293661858975159530517261300984084636694759789410197014817145657612645256500744468030786732013578061912047968368429204245511800561751217993689692730878076446231661042528176978499001154398068926957449384845260527618310834527190014124932853153934495499440115283808286467674905960573266018107202438230236883423040184541164798031550876675771063750375537375889118691603568899818314673359853468448984651989567507473242075589978398628018490430099660632240877685313798970627515486530313090754089650473125736129517038825800201401766340062426776440027343008787536394443230156813954193386976081365504987939356857438957524278540496279318190137822590052065752637082797448152391927151800440981599704955108495600132753880092817514243996322907562124143254316861242136723734460101007388139239147221013420428634736590067304815838891153308679328666633539466474587885442697055235289680939282849117509339809365920645606394819794105008812098316961140916684165648008895092557053500501106222314981833851827425879252198722508839540539451326076115931264738514593299189482515913010750371469198489080770335666255380902386688057551990840505937957532653000929950450516649934030147143827947804120700489198210054010589451443762410215076319857900178434062185003693467813556630801727665956656809088755855179863551736745165910687293039570467094106085700995901819995673243885147112890564627876248199126093089800980613781470562839365125447364085020176653856180025454021855167273624761301465017578522217399410643396073265903363711567162079970636637587135660950146653311993078287538787210802161163306167109175946579803544183750982323486191179565799572640077249494006645112096188224955073037544536105931588818151412868888484560019436558157593326635435773054095829208408214286449533731646807353590689359479908159244606325245010989038811471806487531643138231001876408895405431558300328405586706762693320060281324431308144511825686261210734725043308065187408019654205597401966231435958564068610335104222668886889765539276101061423610268043901211926126584254211422492253416702913403018282637121545194893472996091881896377102583097557669216110580520497454950890440068231645017532887253725500105184356716530860864727355029413911861003466333115205652221386016966279596603124551132217895243367574908521274037423510943239651550546762130448146613263622584895722968020056497392071360765603458530857457983625792700889432505404285870745376883248909353741491750453458351519667320262097475549433142801617568978033947503259062840124114014740370866007847771431452811686316769947892504634530172192762338382917978442729005085977219566744697305974288674930938044001769196432706227999494929399384260773028145473762045386924966452028684301583379241251061726804277555843195805391382881379262102978249663533415366601949121473937865600095976729216566459695560436217010930619575726987425142252745367070187114384472276039770231724801845257321451102701964378477998196731431663875748029908881268478741051004279406627157470241488691781037954219418343498196978960151649718525196951548871813660341055177323258794385057441497778875868853724470428850821131256941152240786958582589082989129864870480064890764154651009825805684951963487108447337204577460672298776197178552566146816779997935013516665169504838086720252414675682622635749043568717229242497278180348684161664173838020996216138988986848169208036506336250135895055252819139614183230392058154392694919742222858237707417368154383162466999571263480744659930023476191246742787598553314312673663886074240034740853339525967242674709015506310766949645451046911408224205729262060800572235232922420976878193248614094744701774956401726709228614448175608278581797306455128659540892885559291101521809309543217277171660676007314272525206503596567378547903448904317526408023079418371086450369693734600639315661452020866962223197163791366603881473807550411469713303582579124538060891788401447606867163416388336520698984432169818683647937814934501620352402116400698652316241529358315096685111309028365630005084199765182528985614092360240351269858413167658789149934182413345293975720535516121977413001218246239890005496337743356155968349755223339282502042648488994819574478712020534845803792634549193907784802665009326643841124370290946829581611420276107990401184925487959153282569603888180100349257328401542201091400313391679169553869325381151269068565098334030727853002104933105601765489933527937676096054030427230398289169892482322344906044840673227787180894797100207322865978976151907612594616815783760649373136391851544585841008525187609108614473334579941543342567700771479941880789912440656106591613347144236388823475690030389736059066002800823692551557135103742428420734494554365559336772661739605317909491051722207695317161033415320585080003825673566530179540600815151899949239656977111615954491237721880864251321609124411378799004584176583154140398483885187458812341355654176911054834328539224308281952841304605780666794744582201494846188187195945151786191088310635557018646424000651690518888008423324850126320624824067504369496921165875593974179168248458929569609322451993409615841535582038867572986878766066534487930615840206250835985832162617161176196751070311978872491960939874470803411304364777025552690391634299063069633199939796006673883514550805306510095434842750518468124542707302839604957293279350084699133271754622110762594759212030345067605399508953903499306932390713057049147671725852339629940934281749227055317911483078448312426893948372884671931137164682350687265668277411983358190229369883011608157427991057749577567357382370602586446461653490102116285580314019602648987928771793371200446673225891851407089639009226537161814706400035731622330666637676277196842145708522933331777934857664539738289463370337999040128517479471490697056318815410954042311718204116885116857311378690744574451263643756323565589913220282981357175692539629622395477520784183986909000648398119921109652217828063106185071021761552581897335635097423647108318287904875623895678053817692939235560341049673235611961595528970633962010333784900245370719118980684263796327662389148927488903113191955898948344812332463565295688692047112610645827724496289303067438466319643250113436500395782290705118799138005774250728544963228324568947313555675932271223796366402530642377755649530960427092257154905017736037453273482361292657673510286195418304727071148433038312725665195894838700403739208729184541926908169100533928964075902602875789792773277585801726249088168803209082770407477990369318150631694631995638181286690614935554343224771656164090726965118686078838837398856170286088757140315639207559518837121743906332910750132909202604261468033138148004760792758102519412784740954971217595072952008348380046236754754329525151909888721009756803047217451267979105448670744634215024567137927197252647992522423767128358354833766537025494835321015005169822354583845055077650963520230633129396034421212292662026082100156918870947301171263947813741997278430842365748789662365001598325259227721765958215106442333428289849672844745367668063781333463233640653974403125423858507399117558440317542658937979585416747136804922666949649292349081413600499179072300751912895934098213589725769582798087101531826963196092086568400256462196586376757849789203391766370456775764136503497494465908458993325553978975689225053402851637319999445555116481592751612058766922720961924525175337063242731280144854047461764778240169774911669881359590286195272952036846963180082537083115713426668923828370231883199708356675250796094883997047283494285559543881777125693971230114860942362097364517924303225424967264895391340057012049843635017591199826782143849922572518545534229099150920070226625321140094326873567301480147903785940055836191117754933445426153459583354685073873447550043014789162234101365830347992195267577603068265514654650252876948861865015646361077824141735761516101701280132498555416800554828564406967018147097421545425299865736393884917768821858367706443959948818791587339857888436383138349403353818994666871835672001435377469773838918004515497062267485043149394196343354253942271913010167615956813907660427823871926927518994881962122649574360192315298384449331702243568752304538097874790491249561103699727121178965859472432083310765222377703777201796146962814739207129425967816035924607292970627651614743768425049559666268744030304640200136328543734332299789503004002899277575886254878555451995979082264290652997486500687595490069722694334349836911228910065379732466921562499199904441510535071079114402079626054676148098078823572135851976207380376230294153980881328664295247891654195946274513234899797448833852039275378756849096082849548128172816120213386906213384159796485415780424771360859343147488320226424007718028871182474681512305781805986441491908374888078069766237252588546843838727463451188570191159175995008058081488643789457327907487535038331561067777245072361505300872023157158474264743158279736134218182748463543364177114437199002262010116258187355870337217043406504542262001048148316200819117383965892585764792614640291059803734325008696785766008594898137005893221700714998235762974756921119853620231284085614270216092352860274403538917723700953324036092344773902000776310552780622959806578696877039670993762151871387258841123959522689888276314372386352993055372245869632609037835331475057860575643687972110154525285104240515360668488198045644937205162844776921790653841768829927686024510141748772400600199349541218521184206667328886033958159935687497897898556619409722265300505032807894139735714374900889652862142332093220078441857800139840201250288145373311255770651522420593560152589957108270726793163387226104284828119434689189012152153193947266530517812158414893951187184675001758274817564180408656160767206966227648205854059907856311721620677718269992651999795849275472295798295428419601899275042828953912226960167537312532517756455763314129971164065014442676337699135617184844559957030109733595798430808009875271335950011575028905030947811203478950217684852386426686349102562932697604641632283747620217650150319853141132772101491638055672332745174995910445513377143763083307482580340883216199666787883578263615612318993590481462048813055653508475599646694165039885244791337272838801778760091074152331922555877267983897110745741577179664911247670622091433481854073487588697392881024242134522372673749254113089953507063030038222922901268488607083183180927708429128423747859452417440782521773673512958693283081416599593778342764748204201899161197044463080056364942724246474267839710976276395307029040667383986080279720420756173912731968166201128053097518481683736803901329872821365728837211320694593583388082305275289011774482398302780054666263705596283918785463661018081717951172107071775601656853329202281299318222233616239850679575222748084844172910331046889371204205009233851370264585757537324682306657788671525895756916695953860318568768564531751913393379235366004987979333635628732059505192429352108356208857113964647181280331834961256334611257377708630918654844265090131578709215511266250942994133685723564711896171133320804429082117726915290178954451471396043732367189703162155292725995436708267176719471086945464631387957430578888515891863859089599149914164578761721593664654608252113166700702811595598017514728569902450177280542237027804644488599530211326708702083333823705263622307441557148044986831716409615516005470995385065937014101271025360385915618824957266752871348819354655913513781355816625152258837054946179811365619086147156621468010190576276051322124478763281410944831937747685690474267869371414431433152170661924095665255791118611198503312333790287125660114732671068125542424613248980975702516223296116580025320568369017185685753800326343925668028139619076057865390028973948065678153708834242564910986063387471695059002619412324499933181712970847273150030832589155113944935332195055437709813837060405071553844457820151343637826411782306744631285863178448193791396034762101548743701311982927038997552865739280122574309080622014230784840551384830617296502029184934995929862408176187924955502585405580281371445260652181598273800830686663922374959858075492483719776526859895614742652746620331630923219050663318292935945923549010401396616404131502369178612860380283754390740379512806674892490507771785003077102833724834749378282228789696891783186949523775841004050853913670506000413883912351133549691299325502744873060401722668882875798465228524732229436209176248166112898186941684256911620531012175312842844281217861274860364525751901711946516968842713169810280112917616973346157850585867878551936309695144055609588384536329845593335117815234449665882129080563346105601083336727213719873455872845524083475563822233823376093623862662382417746206180736684686706223092024979273687238434314822697390079185131139026760457561280267076318592131087907754690254010488720906803016426362895438028524750314627781199315244869032723504426375736654750958916205481983817235975014105631347221827225817728982895228739250351490648968123517692640431888267319257121613183530308958407857386375225627451224723057286925830280274388943447806789247450612090666959668291909599126599746267264120708777262193001910263953286462864707566088932504409339434367534857923435027731542083179547504445276488620738649632491323479077028576858201426788455273116043268975703191215588557360470203534315891690398787388904613485224848259702320057343688979712286434407364902946893149783001917578738302986876666721794354441214570572381979610864048408197680302453101350306933332580660356705996624116702022611298858429756959941955564290767541868908803692415334163493767404502136108803120624791828712653220492708854875982325493310127327878507207986146564318918363384413667505170626641544528958758952902514742179853237528621817405383377224639085644151056127499720318905825579816481901479662794621424393642907047093312523541020733554039503467114011406609145962925609840128962414007037568405231680756827679651359430177906279623998640433508473353719828488814486736646918747090313062190011351678294417287147164453158094068508523821331332387362548630825176733261004241215568601778657801167432331468183604621249265044098731044676353859385235808183756122393039446613383674866132374257435819361710267477568120699933225592024122832868144946464957695346115340530977528494238003000980347175941192401400751188554320436876948658195726326282444625124528747192504598783293133823486188483091719444422011580392130885695586015029910071423637408237080195689258799306273917200235249276712305160450525406973626696026400332777653119359868114404933075908665101995946211081168962871707750930664130337391729432113385132636015704082041354040303388277111486392420610683911993897998582662921440516348653658103607302491796122907596694364881069165757749303527367377459918582280514096101867241016182908166745094482747745019915669657259145943498326900356955411895936808213778969600353932572634384795985676618306828770605387222808662639724907908198745647134915255220256185449387016307880651648134489622012646882148900878706225372167102782964561117394363715639948487819053282358217520220221767423661190347869498685224495977541129957097838042220013850903717987883381476441184111979015615508388086887334773973870940380173957466887189938522044839531811805687640175149774205611506954461284774817770748867912764105197040523392322091884328995655216831089553773181782366380833371968443568593874012264241634467492930106383737417258166508762930375307727166959622189393012269794302434007733970172014454833662557102824498630342576533144415690251346753758739867952407172184492433940354157525811024188474398480222489384605392116108273353920099168258210190671086855584275136874528290996276799649114172607291876389459134174300884252910562739107198844610633101986227990788267626350991571980978979394830588436298305677808445833742653973305606401442331431279400396171399052909262953355889787339971909747352823075082907845505382885163278808512014387125969819526557761254340991546532260446581834964278237461873976079893448017662098304161977770407489790478170748133315801503276243737563633120806170560681765054001565924272799029616425191512070438919395543168812598437096530090690088522030054874105637678449840267892426257221636369072357578912907697483418953708386298384906133388131016928622871810927687641124785135014918616652310547674481737599021703570425574387228751295392254749754559291674975290934163275033601076598993805820796370295866676116870689981819818127715540683244449115120027125326906129150039656249594628497857272739620471496176084967840395900665405946783222142009841414693480767390595157579498744164263105636463561512956193048075341854880896888876162367466984303763202604350026071551454330650688813084897658585502908134520661609805969028401598121152431097004270358203514628386479897696622201210178875167896243287607293104969383094095801477206264607210667694887274945096219111722947922232160120398529263506786197981844857176017963146227606806442065706626735462584705022218806632731942858487350194597305493580787708610289842059055781353155547150462102012490878401609157480320524514825022089992823778013318999807384576652584070419007586342694741313891349637107098729477735738587083212857766387191201123587568314608095645968869925567496434941724397148582101412648769625449608982322259570063092750883067064223817001380151038360206429471555727216929859472797383235356898228087919581203038529133409284559649086356430360863147231035042887768625405812552506569561374079589487084195650142508616397513458155544397903738058019118718160924728053313151364025418955803831901651217425350047180105677665553139727592332629723814616355505651881176183179666371217089396640543526949527944111312427887174014113435082280431382331852175820579694047180090890732808299668558849070592780290367251477752056831317389018484600934449249750578465147698701941094328627209040404867770264306229266755998648501300510346203077175990396124390986640615629318002941467819207775010407562849347189327899273056340704977656864674522897454604471774719789352915313982892638406218310894843151777581287833962875842582312920461193763421354097203371909537005071479926773209791075990691183445436912084952978872920107527871157953377540726203340889945277736487954058055654736565553001130391936399099203565138322031867709373073837589850760051356497523116867003516974794002344078616579854817230708056943834044677496599115460708216518381831379026703627126436480801664521210236702365621086961318509470699702559087288469491677843803116922321832602622024748706273959222587015369566552432160227984743445316766433310831936378059436524905307996443120710592431351303984498514478535593129565864298956009066219381175025449222725658827776441043381757536178035501880875688003120757130902222523069677741143151604704808250296352704806106046733873333544045714692914483980525142191873115319200549200497417430354021186688949593999167236417056950536688524270006632545455048255800849001844645164423472853859819173154408224438853151834043010671506065832045995376582987415101367235148956778945511447130798080793593433431808717575121411766630183358402190147035843361062818966554549229644072463553055171352456420475982587616991089606183408763289295749421208107267835329096545191490755212435408066722524030061635517908428700646411271271744007236232729306482889127163343912642635896351165189180538467352518394498638759859421793684792145312370224765955875074706268544858089214362086860236188733378327288726186266764726202619611808184374611653422872214601133864537284923725566275279035454738579281852427315536569164425144690169849579943625709678627092550067506941807466485742938301858560218155316581503667656121936138028763025947965595580256227596387793974704612092762678363601261572445791825389394421727839838044796132575732471092786374101624092291323131631857635871800350523933485424304417724065191323404253683008877316032216290796538933728730815959307586661062331825589050598649170674531810843472612551690629269063123574179903229398945309362103477224429622538572448456493105847279989233190832759969486856187265322746068799001139088576083881929982864773210131240583798338482050537651777422344525617546278361456986383388238152491801652763808037003046585020789851011000391099625463918241873151891791922157664081024028684658829817759062598599693882365970613041994583354183539251647680816812956093037139553380711253521053800656424613848673669421002800108383972296475126129165136836640042947285644215900213667995959616254094677279486005944780518304849831615295687300783196497033936926736021006647641378160289787895689197355231386580139543673631632917829446461491624229936247797086680467895114253031415899264053219211273336988184708883355269109259551554412496315039657201251086320702215393420157128756766443507543809764386114083681458194611070104354935906661581573878479675150744309866932515867541718189266494253323645776040316342698628492697795188965390128070982230349756443441751451452820424510325326405263786414819495667950490035592153535627426604051285480920812893964569304797816394290777639621225290268528270593555337870032454345259445533904850466081025241970961402257105820861543715935303535477332983309048339340983333105912030821914627830349122292735226566779056842853738531164300592976815991427948419594902150882351978252339985135575162817412153770082082767650162210655600440957974246139612140641218298312803450932364180188240373671868698623011072629128530669790199224469075117431665241418671070801115150135551125158871274574827260246767503821687475663793865069713365142431515234434566381956345771956323099441555259849622022856429938658122841960816460687035305003338080897027787506834348200336093459092999136893993242906475287067573360780946849343357901003523676100591714649063678204499965132956569275818880269554277993175037630945953675996073966999278395065212638966879193456337283371708560913187294228826274326859342863720590611706500071245827889659104188933910296277590581522360700746036004566202443906764644881765374695015514706111241263189661041237557528404991012474001134995369674305731441239660103686576364658765714491045300822557169579649369590538173611685995311732080124390426891380350662913571471462725250859339188512138878880518759531666825984398742983031691296187107229796839369401860664765086781740404556342538730645768530162159597109666585282269797631289194545053973310561961387350702777911574460216030512950934955610696553649919530879555523273114247750223669476295988038851423039583414396874361133671329045894412887232697708453530569712296760661867529608660736460847275417417081194146514660247856653520425347209917951559071201846932229540818539629675188129163232511093518460295764592378410664607938058331168840374194087772347739007505227490516641420750992964003398917980933802145581933839159016585255018768235267280155244086003129908980574154598588533772733268890135385160545771212320465590605479663999557313576785002590669955265474867991334987070125742627177161019518790127865615570446939774746921068764289334011172762071398771637432741425769667098257491825246650717046950309608185722764520860988528938581640558535246330117882428404946496166141024928560431237847523418451256950614070193980304880213631505621443056389755556166288462890510014490667635132503007907808554146065973206123340955148219633008877925085592054655843349715822513628229537529830145064152695027359873823066802645288739359269466953305584405959632285281697086556431047494090498487201367264366451219395952432116066925083702778777948908630401731504088173378084322019041703719362440120415877428501543416055312243201344804333123278144210816284925964499222183028706343156328044843348875075625932536127156653625410684810790476147809577671178872834091458859605770735742764747001394629412534011214012364902170964500746274527722421345873022925371874343923077990775211062490161271180510977672568006954736184533904435703786214400694810831057253714578604833837171486506559451798537352307383332281681170073151829681869293998179817972308299314769505545560429677027996477486416108172273109673264244657919743012050631280795243681046070653231568929234122569219847234935792493366596658731425382871024669879288283305592586820746213976258109024252820306387997794516251059680034044047833062018132339411996902858965490732212142218657247640669087227697011364136377376600233667352702004288197596266059062669492373774071726846586681610114224625357196132696868718630798058311811306293367230255535404757657299532384681291949338556403297375202479521512082585516012066537677389134979371069825258980206660477095546239700705866200595523944734275764351053451691023725656558636059936426571891978816924609508863996312465037593853699157814149556639144098111705863736752601701146689584420444429680917737643647033337108272913575063017911652440507268970563478680430600922847483563398139692382512069295655161135892797464006637654947159879010927807109613143883788005708297691145882564025975008181275721941695919185922600536598711961681130051634131073038962500314225777058180966831634343806056065940636498105699529829921688569243456984022966896539545724277167123084771458194754273233648862476903944610716501584291018618515782581338151050657793751225264348278521941540449288703542378311747886967727400503926657448305649923462466863362987330175236885866047033255416750696367670747489050534855072034966480147621939069764634387571569780214969691097747961407508915152278829691741221208795685853061249541697699838290269440825371017669023260580796287746252838710168869045639383063798700542399276850426798810041516120660719353352808063100214367497621136353562299560698522160992404792117027784809491090589976893454652255196848508282388033606371587048661858422403311188905056684140415536623852314006151898728560870266630034084559442184118976885630594573090498754304730817587329429316882487245712840168539123778036134998425764537959732314162045696368095275925758844103548688280064417827405286665619897124113123521290153961171577017709898727531087977580283294467595730238034460542825958648511316957795046010737388840350656040549253398315907616922084285623007749233040522566168170461670697414881341900562696255717919839864105741599125748530184451679398757644842754510305963342305787210031263197768936297847917547460481953482713904686785380795380705928235635283361439402365454785895790886934793281710360622354547730750804314995769659797234953081305178410056292425433247571779171449060408881696728856963275268458654166766474920971146239452494726050641356523836931510567358348065391060652088548330402637494408239594305189489018598069308403412848404911067830256474482235180396579410220326576450507903194766839764240321862880258718396008729927129823597676597231442126194424434086324416725978376092180191931721620805706320162122865069016584277158231644699112900951541451305531840370965627628219091989532657347956320074938542567609646775891894216648994130374685691028818847800653466312488730633461185565549474348095863288723464110383739868262029320242827689397790853277934321910587991457738200977505024722790727756288649585154881069627488979147284412365309117931657726358051141805270248739094143290382872605160951854673975257599179289131045438653215766054302471054266584403268721585682584403232427690641165978255562547403366309706744887673445603603327515427639123342862503070790730360841076598008700624135074283393011556232687317340737494157867026720261044793339044410128333583636002293732216417010482780876289989269769534141939527704604212065564127712462461244148533069779258011530856764595948054397499902505357268917127704708318547288569974571295728384444589983570221764539881487870068913924376113623607015003325607821896207066233751324943793008682778662415160339299065765867298427297938649956105853577647492893358001562582438315149495406462039381245048698885719156303741040929827143709441992378958400113403866442629286622115939418769094942569409348838603700205606094633222507892312970439867325691174314561497262111123221496712452404397910260986026652051751597606027682509724774140166388533068935757965704423484539477837744151627463144029996512136974506876302683220810788307747502322307989136748275071707491320690387671339101583842733319491674677833156632116851451968543233921249464763805790305288876062859587818689583251183573193937297374121781514636932281512025358239065954893950691865307326101190875747655131398878138357946730686871144717341185472692334945773852104327988014663241351264649466509051731549339879856647762295952291146760056611257679279293528404157742486381540123376891428711565011646103519018657125192226707882122435999104343339267023041050216817879574308682086812227649786521521872391093078498339604504244983410737059798630789770473012500727701184774615514059241661233781307563317863108510256452282991002725249869419325552627655807916996647353399647354973705410289313734559972533489789712461423271675540007351347675901009808461799433598071451293100061859221741184541951486407221646255103839360469074946822100099885093279027787955205046477515079988939167094904911855466025464020891181569694558918967949049932989707591489909210298852643188874541279150820015510127189867569683336394947676972696747457374801493513241608757027502535954847935836329929702111851618003144359270758061908395544260697835451197553397058841001572478944067241122177420120323886115992155999219419908319628518958508317217730872684951017071104212159456248322827476917823639098037557166262226502648105092488239148490501894415271736748602900133769793470577059683432287080743787897803616718081389251133774521042981044734212802277036506370815705304659123224642487429487130064303508251972220107247518122498127049059480424702686467371733454103672017177264765198282629058694769011535292504443064328405891405587940813356680507009353357814237171941552386655125206632996050839729285874012599909982972634098061912502429032657118899525515923080913249414557236299060928361402752921035130250000938750760887717669666298472855572739413305583469883306419729097052413083334630069916965531544177841644935203174366270719767329875903244657258950972107815624211920502778129071629517505394736517525261795148379154409776636876700575654241143202700856883847743926738531461368610402387456605991430413109495879279430263798302643323393223805731092691075486695870665816689642597834294004172578917861088950820109871739706834611031146789925942178970219483472959838331686139947070859907283680486572129826719930355066135129045427217333556362968865968603814894895493024455045892747365280629553847948933922909607972938956848159271891033672685175953913275088284542351981581083417582372211573983133954631652934174560145021718224781648831319180585991259158077890536512590898088754010837212748452164064605978930912190175554597161285018569955090178996026940052186781851829347200427818968697089333369842351520234116684863585719346342422703327672391188962943885896769018208613000696969333798253551080007775925861790602074334263041757640587758339646885733652549242109083369808922639053423182620549912094110304923884019609847742065646111694300877267346415611991948116289488324787952731849570274310482878466297848749597595935844354101364573429278673782272822326472497481755748450380524091330107145561906669154573717520401151269682124226876649923789454630967504574725938201375649890260324493445403378560436515951916427214539436556130381357814752517670993359961029016007955270706904065513984451544490076717464783203109576601231541328003473015043223472756240965507661619149492379217084539044754172851014961841705286001708538542931941470875080746118780596098273616939120351904770265978169252331123075900512318811374019479089392900420143141400996099668283816545339577784882107197250899101385850591918968475389482450438852999954146623503404805571402409746139430203587928273603144963851533949068551522151670107989552849853956112029401543071246582816685420381834778113269404199689254735464291465919637322174544839714122274413133225611651181599362531868204493937311771119166216293885108232113691430054144413507360444351879340737200644884901515907405606251972501833054978771890026332579413893322906410997623237338321423991191589972336173229112860085411740076342732640130021210746697696229181191424035664233892840387679502256849582378484372881956483104959848450793272879491084106755255487557229461222835086532365030456364061855993997519211689177760171066556901908397319164738325549167180240652584823273480374025160172260113808707188318162195245880733452607077116839376292036951700126268764802695365114731115004595925157047646240421703534709951502456909526365993719953053473024697723891945002015975427465555525569333750471798019940120545907331584983190795185085856198222787642984401890137188023880112264024842851505955048103206381209938426191594113646001405123564091049087507197217335495768982428185593744458860875063603910711368826442506522853117682854774886859679603071962659976964776252076268916029811628108864890500440479433210005196240198131092670645082176385584788973872213160798025729470086228134198699048422307049064837514069308614636969062149664692132113759623590888020733282354027258856273391048280731939694216663959202037630847165673250116420554318316278800268035927774057749790012622571746311792473262310756195915050750729282349267306164538042919502510071952692721863552277584035898253824076725134849681551588793886139360187220343970419542302015760154570692726988094185369047242594834563948660374198695637576836115960811434852765974462067101034495204971408768462304198345877176734374071983800940753494738110350121035206514463889652585573862500322951683373248492047946295290165328916173487245842332541266531741805091898492577579753609452186421145917178780258060177506410720163556761927739688681277322030391430381450832314117817300170731187674415311830594653586596507843700010213125477444650560607993974488789213104857861240667400980847351597316826233151292166301233554537265966532350826416351551414378698187223797712673864970827463008505235505045243924434857184116423308626787500940684848894894118318479422298343760890672212400730305778596780572529672213951750720629277149774177525224763613756257792398802541976774559713890671993613412051000353443002562446475357877891100639291796260452370869082737235626647731579259138606250194585129463971173562476010299950105146873153217551428881486125746287365933307036964987891187356575728775690747680407328351881079350790778994983316385601282734058467292457231254630306275357043819002197026604115456647708696160158473683161581595631972345382284754884337461477794591977534870152633924803098868208427744594252019072446735133657728749382026274639590137727487896794674005662931940252185377643536397118258153324484542228726225994931749322667454620372129816964091624039438291030921349389232645211103502615903770907109113720063592581614999062517293075425917932626198397371793206743264836186609806292384527834107556271170654845675876825381609322763701732741626233110888808335244318713812890490565000051044943373282225687798968285734828816475396206856364689209575821495242464256095737414063444842326785918729415187361828048750012071023647145901897281223910809488081486961554094344941509441018709888997687081504094015275862193228705044751899493932473244041184683168347589849129874759976071833584313048019286202813251488160684924834114235733731858288950954603545038541724060550353436637576525750047152746168420892765136948403602477806563671426456656826702065979516761452756978007591088371551116060899707503136910194520377554228357474866555718019253667096038867419412433336862719493797713478503038761626280751368323632754418552593484097810200645164449148370515877478604775627440169005042897005913749158081540183167887871792083906918312079470563910891485780030964579645589024482145515875268775336442974934095074695533253151786008982413261615722536601433307987999830922442776271502147989075511430310475386062786660959050248501104757030546110893273612502428983517020607839154243766370717882382229712673765491027526992290204761871680378081337511990352332756117896565889578422585988699680151359613999895566325740939004441457560098860251939627287371025397236923734859452106739815440208389680094850158532147188715434812115609538326698090241768946401637531606179993605329744017829155595832770255619702402550480573126790430552806621782487630961533543953810842771142447277808204240244655687432408088491172296027425603176691820477094826553105951239972390510066477291791316443445422656935928953303802385788979649719848248107649905871770149873584386873263066209683665205846421280663074820208387480570043934497366717804753776973341431519587956322035115294817974590851641663718843504484989692085838672961582161907806366359549708456984621205326853898560353664454574529269306290091525548287108521188507099199017725647872940314659616074572071026058669446706361907333300294054015802598203411134181833590745881471213794002432325783156224390075497072963778265306493690734358490245092968659835522230919367249296663640157871508946154981187352699249941386945813556530271061759802186565659019256713296289744679496111136162925984736176812809078554730852935176785493201757208512238351331098869782985949156624426148115276337959244840666531293157505967370480556024577885399465556115007963548420620655015326560280084303680450936764239094145982315266398377545808082609917481175250157697394009630031387680888389903538681062165952937220561427061750687899518636198851148382455857419597909476522563671318496136165342648732928638028375899461789407668407787753206813620457630025083555569890823997999548136229497108629971449161337434995167728706667092762857750318348859346034536613738206909949113550879474722882466239443272598620917117974855658067507049076970243242606448862080032282827922533522166232606262411465450515929282257009518297585894794630685411579027349800249126685052091192102316354403932219586961750284702376798156408145205619958423033901312172457849387369383601044560852557054797916459436067172955305787452540116131695574610681299399819605519026872584142256992537259682276117080591103420273670150719444632862034238436783639809979830633337782621858711674103332768634676014799584403946788699925761388327583164011971413991950754178799687013479233865201943876107824894113936116706554324141210291067147358379685779865098174091434812595272579789214457768881914589491207707993771027610513395318142158357849075863265148041779995785121555588299599432401903005348059786507028511879919461013372342921482708804801836652151699461454507126107947700853063649852815965069525143893830723774927505796021491707493735589138826391479044528321063461546751235163405077794914381802294011589485966737930679926072488613564405516916696148731325748078673764532070467003905350436624678565041459469619675946090993216063958282206211656301254585512834171296847604979568571170273193588096503973320129264412777017683112548452993906030537890761700280867956380098199538832015506986872195244738351524382752324789020679107701981288635586086479313193249144232408843559679755271857207559235465872336731351629522489346463998310752635060798286091852477355360942646868936921489936440467682908331408788236606301075348898867991233796950337732208222052511016716230647342003927702423864370216727987787177978008810704766512782100746536440984112889547956356928930832408025309179791156847291007724962445266489522444349973402434452556730134529148401533551418792952443953995360339793624114405712354754200916131212541002925144678402488077747531285506011319616704409630058383965656691681489496587588580192951281735955673060235662299004222549279582729007261591970491262731931537167842374105625345544010654780401381834026281622133547157536546227537469071327116495890229801152210802485974077875847351985460518459965836753733960878717887183967017853662496004192847493615595857923254500320873082056992244791557007353254967356284766941083617223417842377426034675857488698183522171189315974154279498290810001786143293772864902849277170186497337275878961345379682347621084808953242802437945306296813832731928682345117094973790794007417382140167843624752727155448042137841233813018047492826499994054106248863733933812425826427799736844302774681584245451687214283526101182624703987037285463633836306621458251703027050803790521908643512017593007278533411868939057641045979730269434882386810121967790279984723121639757028560138733673202428177054578365923968982038460163062043208931311090606843001088369151854820895918760987422307933975205082011166822013515128220685132398819071436726448312132929606585783854227997108411676911641883572849630930448211951140455489895013607954607898561809463395085755205847878583326213353425077052608430465461214439683184482315989926192939973321833988219969989633776858665766174950822168474806171940025313367378985132584982855348578443947098786353914400142016182697974456597212169702281768841413919016447954753268175916171745893076004481795441400219449758620562676938697789898997898996324735801472674646445348632552270649286394216425818372340193348151722856846602271668577894520646165118769328017033438418921400813628834840340470044283252611762159584238049284039123810580135251494198367121214763901305814479905994184161808707226978263991219915471003446439199769871970623655244038351383932809974578679248570716655473053811660449488204253145724919676853658437639887525320473201406905552377900667242055415927325225513878507158240716490848557613451748395409300944999830910177774977989497276536443018677713574118338001249322794264053073689903936481059639392434907950211533981716662639092608002341768692602119154005391583866477082395224130167496590341806359960760484811369111302027128759344868444886570931945928193594639970065237192008945002263569887219053366951700289921393454915452387054841758971215347349372324262725709957151798846348884123740438606459883256302357911193526454931914676415737846726145867486592074473737396143945393299501110557899398987149220575784624749396875637630646173161828963520537366431689233783819514408954754786828723399396277951163686118013496904019823914188637469466097135875062873073560643326175941383274230690748645269988439744132955462667435395183001748441929099538196634963904452054095683683138768330393450242374667890141433423503615746849488358286400143157681906174000353084648530874107668244347683557035893055419627300195814346862231402760043242762254951236969393284128645614301828525869113803374140692878934950547939346540850577775778471057061809393763739867099790809108384578264376959575804019961605148536082621029763137419215488142790731369262863250643057121564600371688960860592728973069348020952354983607213342808753629227814304169552763986537584818850035915651142330873737437805056823292552560339222709969721818137088309322163641504025191315462529292292279316304228580396813487336828907714129889849349499086975316973153015765078383370916673184914777227981982449818248278679310466902176834826518695462991952156655992774669114561235350034198602007073178585047448316726001899293275746750331113460388950938864224605134603390143515096546395072245787288987089725187972491048006966764605665267994345931465293752998307374389371646308669307249321845353463782997908129802871494055658431283891745132132168368650573456936900865049743687627736127421439414996177081370856393328514633167077741759388332907693975238827598870622931139951382049341919470082465787089767675671047686248282451909524591578473645512026377272638006851687460868869313076195854386008113941792797916541027024628265899060576970942453610661293525031575723095316356728476869980845454780722701954479254833403675005863101092991805333438620584120475839143294124554551653285452902021700094508465391820162106925452406688548218981928350945785567589269760482309408072095087226128739876024883997870998267292595513987160226934216017233832980953570225184894697862327453585809256687041303603020216683901564235197430412261368956674158244267284601860774745325875807966952137224905574772596241413947004267011372804499149532028809676000196487238280625921623561653671857841057033157012249971432647274229588466283661449850222682246397165256985135888108260212603651417370696596445702837480678730154281032885226595971190058264441853170948516393636173515981969056592299477395712969093659155470922544392699780513398448969431274441119531358285311758244012747848372810283852374674542284156479006116701020808521300383347372433879165524059329454766377333425615766532622265681430039965427653535363069629058988165471581979701970067332323685311094443961431697980821181732459232491066412439724736591994410579525432485562311230240103332203307473095426797253080801574540749234097209103557246725769256655618867918854614102059380719036583650113185988688549161263918703875655336990412365930184462519772962923650622513334475028794648984272941275182975902393457041296078816739208688507789927494977231136116026717399720826046183860336352634384524778406506700869378076148250843637745954209680630702511369613132399136590621283813246707965775406704969118784869927352122354048915571242968807577361970877015167414549694815847328728331500700111972228103198093682659875005343133166982260402959483562183403653643977704554867188909206271223986723704307720705620576708568751384036739262897330013288350924716432321158778309423272287996279872319107485235673559383682748111888755657646353287958135493507335113374421836159437431245911529175715187049384017369924055674062589197285669980471413053693903141129697491216813993491277598343351345927810837829143760811214906656135168771699068177530562078195224246627979314579897481534970161575403603081830351804610657231367308182150052063016707575606371839793012024247159994590260816081547477182376411825994804648532849948550461566008688251877760158878500197376690955425081893740013876095735561717818480780215813256082894643000726025732193880063321816361648149762179612446772470956882073992826340192486321651486823100511187773277902000830045491045094706703550222644207218811068540319909511773025913059130250770091323572043815507565699748485778615863803592019351786549007477892399320507642102635207783024351561007416409782713680190493553776006128822878734650864115921892491380487979339925309693847785447405292106572311746610811727925195177154045637581337425184441503097000071180657926406480722258769694881889029354833140633192134047185200655893488930330452830078419483249040387629432950488824243550322006056361093143429987445713435350917151671647598302500154620013595752059778365331347664664229666302809652506613623232567898582175424703688110171241524251814273165291832077632597558178350399346973701279546342297308295132216107005648586396937196668404215638564896933945564367495073478597619498595762878601784305232295257987850048359643758448869629340755579755955350366981225767466933567884062536104585267909143904118920411109173184697332207955793797972892207220391393971552086254557395805235879759963474580061617158331503708509555846186317797456739722590591832474544577473683222144888354645193944928295049532048295944666293377580517136791786651540952535080543700967687279817741755796277307959796524129789809725585379936561772101211904557064036922891131457166268549366298707636067404523065667246354651009597096054854233061976939693183208217576281497001017060294394140789112880855351665146850373989835103114653494834953222971355705448412019650233583174577786746774255110614447637355735449513085469803954125612420516393057611067297916062212727447296760983272216440071247983038818264027843421702136843147067210789779327220864936635290580797546181698224250230607714304035879364586851041983022423750075666812614150892166269519938651205582187365570141267790202669894484127978398357207218215729525077262694091637122587231718814128384766533947046988629829023277094020112241641960074822713462489529527756452319315931686490555975756097129181236155638657579844966361018814360493611993709092143576752406356174734642497863725776251454503103920901808043965800263575803936349312623545125288351431421802659584219386982769661849249671377738400548694671747908849030001658309123780915532533267718985955750528052631771024642430039599487538062980200237625329938905809942731167263339313613312980362586040032584155225079982348892550689258567989601967452538678265963310647797706492284189476215729931470357612289347520379370912888977804866832426778401468893590573793013910841161564344672555576005471840021241477989630430535859701835858661835858130967845534550319518503714326834333861497935971375300402980347225391696143955347845281726979575490823967393476246819597580312896944298999405771152302978928981438982644971141906967302165525928522141650097053251174968462619080750100237356160014898931116144614638892103557357781493125054804372944980412167545196067534255436732977468797278517127908922200412842738564583450783513203819315757509335301839161434129459908389831025737828409504798928976852902024090109985786233888574089764567709344292765941429637059463632209605614690045369443545404585687241207228907644449498758923537977854385146919606560437755171067706496785549204590977230612017581494267261234256497982526441344496170646142040817040226397761160249698001383531049442698841340790134348112649422660448069617421077595227856988512160941140420275226509234965937834303328557713930715814108825832240313229738161675553048290920869911801375591496214532018990757657843789560679031331972385649118801955116598755239080224232116333685811823653503291987696295121800417274158141346297398358682880455565472988709192911923026027905263781264338630442018285048963432082062081151530228844710159230571975557351429367703879069044792291402584354833328706674221356944619912706249540275003065524756988939059735186990935926819777490709995209352493765199359997580884902775708188231684009436570584912978831435684494554333153584920320877284201073224510178862401292997734163769186810135011507921854017314013784390986335324720866435066651155652038019604391786446715854929936276804305231725043905803927743936695343983856391496774142381310971143592842241154506181564350990538711944847563621597771302825054173553079380830714375523019391044856782607662956758018269800243701876513046653679370271152489717590641062707548361251780970757165549405948841231573456867966339061286636196830437269484659586515211381520593462430192912110613089089053375141601546309789346417297488071981619338248217875417232184408401397171508949365084620945371078778584233661514647356637751696953972164415859585291411264217970759868183851859209752639314616227599963644964235359610741864880720320720956713407722167716547465830833744895828553148326867791640493202390694366308067682270882644693676272198599555596414081712991586391804011994515115245251564473284989864800010373622515551529145766581950784401696779867417778026660993206278032258407438456371522796253265579519029939748573421223386370489026219177793320171809922758898911488364177489252582680184928120089881470622189705333640979913544045196585968006080710853127960964998854949509763890679058015925661541408932477202801898345565207301513981390053016644994909684019192335146580477874099794059826370571640325993396804255769650609072591065930800732941579526263274895715527603483198134796598099358601796792145682111016019433590042198373438954417431770969294462701003687713354347654922508773251295909656915860045239456776662465860063660456711530467729284906952575567132474532913245787504271838658926188274148343403033223866648368916030934603256034450662739251354636541406775327704569613712377396623302575413375856524813273366080377865565882362327183570729482048861822883507173673997071229823191699331467697994285523209310654335106333823321889389843302783752713666898598329735236911606548025411044854224370490222163985060815255199188734830095705190763878448830402890846294454701445169014490684779809510997100908889839695546896224936704865674894018238246193454767053646699915497841395118887877717407121602199257116839835863035454022846405703357353808845101410966841389160590661845870085240884026792817571311397434673939581633979075377513776659924228001287490561087428682989075791066223527469370600042365635181094647050230452651047115573767861939014700538262461139261276806642771244309985169503334346072821660238666480413728282635848396782873148314455396353760738399630528484748672304417600305692009976232804047473020546635452675896546958995900002771440783882042811884885497686360690581811346004299422927836111609210334357499122368940210214145135253428803833835864672683273921089274827304515461658960089703260089847666425066493494269431844344862801317190648855672595331322390655650302080524366553694406259589925859240681683960386174123807253831107057339742917226747836447506046640222017916828123594194205326566691830368853225262996154215066299403550176030066802601419161945537934181706753157928591419163114780636239128027469502116493979341617472701872761315336375174095536383412145101754419146327009940519428035142860932426402511948912099208250683829482991476733625343312875366562713231968943810896342913284435610224730497796971408451318379244764852026303976733613207905451864511450082751305001512161813097506084184712142659278733459557366363795054841946539819014954267639425019615903530330743550739620547120683653425783525828955398540338264711580970850213416268936696265494112309652585361190906358880351698260164343465437077555746419835700158729888186155152320498469420140833910901577327124974768424056171208102020036412537770793766512853323021434733454439224883228338958693125671650190606910932870950848410429738325941969987360462836715341351134833425489534593255238487633548614647138408600904404216537064082576706012242552534029771756866998520977526711646835250154474360016503372038731666978364150607128406505232536874067730009769132067034628807560494517797656775051253898599814054654707501407979472299707511565942405012185032618608615472331802475702027435947133621199688934915704650528767779673243817367395812824225813047485838338449980199548121938801168857995589037552502783049505400256916785417835160724971174431303881171450835076236089960402445547026023933664599094054539320625601914367734182680431291255556360560330482854411120776178806183490952320615848124887565571168271920640137691152182043762885851392427407615555097146445079713490333073893758607181205666302901632753764394292040610084634375135126820249112444123101555863744113442015517208044220972116453330789814996522576560908201320216906894462151129308198712366786889670001103336179195655199936508182837524076235792454869389541656108247045860593632957677044039091650480599839431252061544159326094370141814416025394446540348141134155002588983225103984858691676313228062587399654351576040014344923595125730405995944458697994345702135567050522482308258235236843758114064338442661021883297215025944538597342981851829409764452969996085761182295513074264396096120531594508657964086863742484820608913055010017397542242484495041150498404936249794418701202754288082324626585600342325173965876185670195874158597071389603973867028736969484723232555901405188871881938441973320819939376564537268797278474897394960183266466155185386256024769657511689559329493519532210313587230391903018122597150922981692140200039207613967394319924185761389119099082808706339931741673218183218266232344901095826187221869598944947441328399855786594969942951448779683137470490458455660976028146101884774925226334676850134380751474890482656880305280615548424979046893278686690781256182474648230590193889399720807834628158159943531546277750709901707568139884350897161326190671356322958185729912969004720289303804789479005664095078675983875788550073226281419845149777010036980416645850986369533263255144968680238562412669433890050221039740595070349500840044099241140149017403342244425205347869453757355999497149503237958243302128143368784302756236879825747278218296702597342350081279281357429496507979300472706811080686434094791107027252869780341207410853982542533819910727780488999827650892893869074267614906000692523298336128790545586877838275852920680968642145419649166893368192902737898702035978628816688052284791484004938375987564180737004595548494310191815076798274225178922193969983437252354286298083242367856387949954368184123489404365086443644437353849080269227571642569491286690786364763256749535935987116218445762426340404525901429735275784285307095936677881028501021807703980350013938598601301582881371186127641936569721636218611437241399441360954308831450438714670488335456781074057354448503936260558783580109560341692737123108670704858589919288949606959551705794577180236206615457185855109765262356657771302093906788546615490527816795356796399326773602094356168649508738933120811763355127976981838316638368563638423198288947140713820790777784875029495807423351667416077529153186049918182758882835003341038955129685029949321284836381923737132928451115403489838679901434562481992423739376050132066346331650186854179844260448710906652367216867274012232474926561625043106000743776134276483210492342657759335114293382855344338949386260090161862870692877186084072284980960340987450836532674845309722475860270731351768326035747733054377331742712632724466127058004696675573021174212338771434526684487661268891589683571240212310529176748172009808789868881009360838823062908143801483371084295768074420365040427687399113201924138363322940798738783708357276795509960996563275213488688355757014949531559741067897552724034229703609822985895634198522256492634579409143633285206126122103225761175108746831192148524199050027515270950201817237637001694944074825853245582525081088816219557923279328542124615795298905966276196962223283147639952087792860420799886354340696409759782318851637003305082130871304513042020347988795148366064809331317975904918126292949167018714424669387924963802476162467661997997692217770183972015140335452742123190136115083451130142796564863581677889908335672873005400110659050417654104542821780423565470610643620479738566235530644871347413881715834579133190958422585447477886028526950590168771649191554449470387583590163090288774989485681696928898132142244116563139690196382804348976513633567075926509814334357898918749433735256181355319396329421482716903856444504941819728560445802382898977893846558741982245559503898685607932952275414145479494150061696014659173765049638308604342781232232945533654320123351957845966116756683134072407805372620176655776844527277399895298711225940354136690481939851232764529379943501215921061902931940305836647171476922232931785050532496364597090873022900269666802845695412451828351598168534667377543407949988188939771950477399246862327148170070715536077883002503914302517674450430892817455647319250280206130389880420203145272564163839458145138113651423319958669931973466207880311715934371659509863933514112745977631623929731963932865504323690975764115066525903294743127672268647299457065799608831061619406488185325032330660220271775496350923584877521657966049451408601536099309336807439722575717948662122882285773132480728277641473503322396183529060954325505074785418954396181285345555387889182864480042480923486729999072353184630989871350903178423074912604938642334356411507855302085534317246791527598520342938424714731182323616653701527902632578735601696967668166420622479646170038395517670807143625088224636067023845382110944740862113193393742373034816993284959639862668738647027251558779548609876496062524753452194308266470398358232618193535534060425212737968193767413515075410189695016102564010558945727531156255970319781285142992910857437213003014944363834454156777918140113876440068751604734141925147068419117461109341300850554665236132520068970818668694299823630970418902588810160404014543011678613783022938451863432285605172639828612175565113778179047125230032194513045988611205799404932013006872520729543670324339682031158796474592009246659355565310762782148780499405239012913430674704492509004824406076830188149565875134529384769797561333912160483696303191056188621942734479715626252970168281728085554961312856917911713407410969476314932271687949430376191111103697074799063411865342379001066071574091295445257761057846330676005790256409224527972300804361652996444107448377175365671198118142010839744486742486516650502089300475761898714344083473852150943653569287083502139346524151545436065517018746829326336494061262202096574007738647469640206240156289659654360471062215993233485417844192327346920524693097322565341503169404411689379344210758298365974057996142849091831557768492716711913979097825474928206771009039038694609335584212454449094890641340764322549697395815032500749760125909160010983372298200437026660146202773519017314084122917775451282014815170028012796090128971932429718082777099073945872390874327023603594045940992913747981331639722782647546293458373966815748926784210413094257949826303026637469730059098401262929969092725106555685383209888896749362435444399334129989804620988300939486135565698187168373216044889709016204642121489889746707388117393232369932972328803158709375703993584216650113200523061302671966578705547995974093215026143602909078417491838307931313562197806942615066945630893567867504159398184226365802517514659357386098739612648993573280167685645671121997659070652473400775217699451752101407364043046665615977040101477253793753154122827815696765784374227018148571819252819691069942610303011838945102870967502808777281632886333387002521089321594097898295664239347701849791226151411636397136757736544729539117166308434205193911352948182913863405197720911733199851259267021254452598220463204528129988983366374637100149374104498318676460410674003851701163240512232206050994595490561622043710438972140591594615590495316211700025799497480951608274772389165417841527099780044407466824954674712056455728169099062813123995595886723494589198561914852271826258868268004295443888837903099955436823431468249385233811897826577643305178307909828445398573449465776982337236945210905365803633357726509857634812732944393956779132192173666337566207736929727142455647447074900162654621694844952501311852893423391804849029284831184725405579887592908271357077654514265493714032126768587945709452283848877265056803221571281857771496526337992267176102976542252656987706219753000695739669478981266364661709581676850200544200438503803103976597126040856518161968318529851722195224970958519136469954172374800464764374669778710614337935427324623218071330322748152130700605894299917093869225909886973112329854357471438414488445824620873288659274218456835734384089810025644669935555850603760756285500287220240132514806855420245332647117985138122129760880499022386057874093953465973458161658607303156583646115051834541428647252522914636655026142211350593328150747408649150185501690521122263757808357327683357263360075686274979754158563685456597761236483306302461478948124472097121018584085084710336105889395626250466391765837863366699456252089027902725970139680480196320067766206270739098655816620310604126853627178661265939800388491690855628143995283699111830527498457787210201112110713528231605910157820801693904792245344683054546571417287181306239531591580685728710987058005507803514512301163225755035746202171012730309353986045295339301188364382550080912453428978602988424661402394274331340074516411643894135185902461042952068571041307135543974591979264246666634590768930357580408128561716382436585432827153420496219167541813285996483330628258422265228958329816011828591149597510181095458261910112816546757319888677819680516657621387159514017609026118814384291546592470200859192938827744118442889202261017503396275252277364362169445773800454518753183282085051529450314064249539142695921748234736263143792625060616388461879960543221301887818914585773055760572810689308798617330630604326002136725168517279881518573046735956955069198013089451247385804745309556742091250349217636991028292868316148052947769451531410495806512865951402403278089768515016728691633067493302824267116483044217839094980486102884601102373363786737211887048025690886659994934213136331217470977875436234883771590564838130809391127712914644437749472262753591934047571264083886055070459951419923886535354043102354330715609212891812472795883238640608382583101970389485503847704922872581190402720929488941079327320255062607243846664897097177442002344149384164850827263847078101834567133615282022500296422425354096345470561815367607691235193347213351175207415642155133013285297967140985228876184276559976884054100785545912212043968081646292354714170475079915868387080731413335455596177773216708169747444581642895464683058224758761978621047863573690054175319237075296043900960113550706411323365513127041471555333576432921753181340976058860916436827840704210401789138159782222199672941367426156746940082943532788831632461123307723481854907789578414562547356568368109168401093485879698918260264215782904262326796009280838238659813128578800371142028119944288749409358596202185201354201776459082524661700097741355831407411212783627641121662470703130602930758370876457104752553341121041188810180747332727342092649160683671600908491138223201024911594804220837684545208874012152996273216813008307719650353270525233632390925074537758425420495389006901623088306761370052018831074298544322830384950408168962036238720712374649161251472415300584153872145537469626319222752992901338518608557844300828739139953596533144977915788614982641376734788293600333421628903042529386709562650766176518689526790775035558390436950711343202204187417196261149270013145781641057306603560296506308145559108327186836939940579908650154490385433281573622681842750262885282992085824283082325207248234288593061640349682513074911285738894806608645450056407034751497392959482512031390684312951737458030487706829969243029279145035847969892464062298077040322433888285883019821382025425342670414966387656727523158431727840976004284930104159569537767652456866796077320545547196258926291476425001557541218446671988614713470180653587473896408947362068855677041611232710724795777418968839104963684074902726831837523764926058992079201582527501999535274396271941248247265113850231472812568601524213225500250166309048558339351434150326891882470718680772206297947973198635366913871604940073250416730045411893786739598055692493686578137129196939874259898447796420858687982737426152724664582113789095080498204941879400240513464855959597989119812285714454768803783554146766591534753099182259644936184432793931006519131889167781727969741700468504720113334550889469508409358352941669603995095560648753848002578107842610492492857336907744538503299089572162323640069254755035898979326987361654607854105661058067570078221735390295892119764207384328157964538193158480815520287364110125468118597175142042316480693110543980062882154491756097817727432979191872953206438531724917285670230786240149011471187995275664858422466964198297934240823738921076397335020215590160443098658101468570739369507416038757840294606514606702525528502945776125839096819475913794137237164722831972115890025133503013375261803982145419667250456548044565818744417849389808536145338260924852500412095241392172230615602807003552458392277772825019225664056715538583425798284116828412517489420987495434686926225630887406849615445792819208410001388748790405197768318094993311994301521144441833733773944029107898801717004460888406122110855779577234857202415512738662357026560234136242560531036548921646621897362805132710328367408662988277640377946891094429210384330720255978653552070658338330557238403547214175572260679105772483445237443795567094335772426427224966008634807409322703556716341567181341541506175530825380035480064269137559165506470412144265772998552201876959581191336055995748778665392662644822930273373853664107585310949259392419568650576136564338593034744295274149270611224371217880336236828809331364782776058485457950139834795552744722414415053365636683877561982889316197806908945824761945927264819530790656304920506564146302381968308296127192387692043027909017444820218756601361254195863589298422613448306025186748225839680028163152244261334609696043105930328061532744071565763002480570865091244297820925065615978996998537711683998575247140750428039711245329400299174230784870175222861603984327294963457294781583515531164221395592518444645904751894904328331111372318973232138285943976689716511527841167486917602366256761679924700612195745835519212382728790580989355560290411720742170097776391712293910909004541105630902514324524815797988968748353157806138736538529769023264817205285293995353944780516362977362769382153860262827500879863689133747063657675193089165531169715379389409443409645821114927552298874448514896970529376679931630398360696827555679035622346635957870324390309349388155723434239934140646919318714137261594862498079955150496785555069732377013793504015756494345252755604909399915766309501400561246454963280555416431577400798043827466402520184175595108952613152749109084347870290657251522359453588326367123810227182493379072416531087191632182464036507641443432151272944764621621529926419727320090415428163259362366960145675700799810002603296539425962666115212911727352092540479024699343544214770301449123370341876269499983701754140722067496922611750724607604761114538627461157466811515689305201111928645583012067712643031315101391595109598595785242607752763274934119011289179025128541610271285524978140129171992081150490090020226386552235091304830242738663363915825323221236360032356920114373710664654523061904786521435286753715555174785463566801044307823495511024622793051706171143416832184205577143544534356464502072812899915824611961055821015510688083889471656379080934835518573007473162906337438734389731356022808734269126120304514929135005248408766168981795637447298181419536310390975801397320566256201754496292672023551637944712638213029361228557240389599494034116036636419617018053574203353746732727616461915232439797283426384789167705055200272349932129399914694253669721787844759298017010153122645075195333053976361381128636968721866631365528505116289060186915684163999032123851300656523285721625149731328524102226937942846327291494077369634178632087594688892456440781380349620691754383745033090980786678884536319990642470383518242639368764487367184231313436214052044179647293366820380127497865539147132018196427094987539297366976386817359632216641444931281518598406145601513824681018907937172546167362109492135953470006274605302065332640724684949044965119649001605456794456585449032518306239147147879955384418452057069170722657744101219319313568295982844581084458179638014164926503428157274758673304734488861253844321392417741430257659123846354503637542894767647334615237981665823227865112873894216489750894834223718477065080726401138167354095853238677715532402346446101634966536429242772898976923841635475826434870248564542039233446258596754542165664685784037718663170455439427674045228280190348793015060041326950618273979439307704389780900172713152578570334361431084721081792607883825356047165693514098354623351084482799270154811896399582669112044819205998321638192948615453761686325018968850361354840709967366897294639785736972374812990558776287097935463351229205573877356528359554267503057103391175714132474315042927674952769020045441925363001170909174249068921729750394039094405882419818900045830207533399553066059068017459451085939521788649289229689373280937334971942199291433049543730153105854081896304662384412155646886550278715396140801975320797365627545122259458044982588542506152561507056052638755773621259254946237751908364084017704895353505765737815242921662381319243998390559638829899701647114033160280299879680343104834056996025826928272019957171391641413922351551522935653769491442417418285718276618764819906794476104415044905684551982787277116972982264075092335583399219138901990927806037517185544039526301434422251715419733156296073777340171070376138951908388989735244598088094677069605674689505995622320923412805142267989397836214894376956223619432121077661066816934256677273504762650891234739681431086669906089586643724824410422428546366022736652594845317928788893668525204713322797739893350848540192891661762411088432385909658538938358142749144349786912378965313443710893793944049397810337203266591572402402279738475112286440468710898437584350881332817867512119435030029305033755493152670591877400212964738353109399166019548605431550628494673180775946541690732910919597039038886542023687251768887406555405493656903419847303818345205236227461032958329269560070489279687741688114555603148572087858770535254178668385806486188307661878012630508272803844099102925271502310770391764788455602694700153736044570817402892558941325595503546040789657626319818148051690910459648258982554551901366009266584717744176393780819262370035670847781485745175606501581472347128323143297428224883985664260007583783992616363501400297548740079223254843716467806733510275414079544119136186137081965381959828362099730641625376840400482732580750666902620674083657935016159460074144794368511463934672691023073773923127064738489309022465467753687009699195574357660153653762429128979910476473725648500252620140498587879353778739099974242044671298900305109451087950724451036579469703378564148168957022271886048224276122996511770451954988257746334324544889348671268851396601990735661560182379116983928836923286223505880418461352811975007364832482588707176882347639957593002075652365568398797118367955054522208099672565318129030094065501646896941253367643553052444811840752879375787976398030237790514308765834344339923298637360849737269427204305578239170382163628557645999923616858819256002783460150586444734680136233234679085316441509867833403545890825914896691148508742645991881475743018629831881423600719274740740279049178210083379488460658817148714619667083414648627738058228730031715247295846352901807222997857139730154853783105422781937433982622348857890883320365242655697121239559131883673327932287741397096868552842519915375360111749055081061544397192202660981680277039959287551351696438296724592189349225789588789309543163676658215014108353313223974313324289658662193483129966110139968901682699664943963741468503065296719636324519389615096553959786697631520279224359399114593053604488560022521456855790687345226997185899624355589065023897080749381278094704456364397788906748261337709511909360510986822875888409762097490504863814002086929843112410268277077336881993111546047299936077666889023350586625454020787369915007742508594690249772866912106193315052037838692039456032622508196927724184763024012102285523675039141368321477870783796271382956388289442147262858676944292429371975397543901191685353256192111457566298633247934681970828762144440993836589832427481885877973437433996258269526696818069217638188038800718328838915419309768417003184478454669883281510348281656306924502275699707428057253181747736585332055857655551710587783020506599611844830356186113539235224371467914153088220567376273665775469000543468408440854877504479321309797149213285262487139022219131963065806920714541596376133140118980828498854558173340564044259218560229993768285414912160088981165197752190191754891674154047090730292152534441863208161438033315011216262896451611994949682773231410686726536723934509409017638852291181327934167959384781246403612625720123087803016251114643551961025587071840794903707368966368700450837045155928901225114488352063207805110203665017939401246315573301833056708827138897295592484689883357133365899343963954219398980645508616131291716295349674779483175449619628478708025067319370347514723300818067440313786716914481545936284077590671687377155337034260060097321852382284136530337817977231101880878989816232234331325660767655929079115356405007233827014168606765626198351766304691388129012759919629939573857758590287841248788331656163047233579067857043296337522780624672239918388130070379963405704400813718933867149240645016471032585170022389940816425843361225774764074154084206164931959691139408074793834610890546127391208126089181298710874545227035354117162564760120698495300090008936487623678160897434116508832961647685719349561320682320214301258658692560045261844465378494066923719240368503674753769725464702686049805208288936924709525179035473598478193756086549481217958382724814605588657847643251999974398588511008152560848198560539938269229643259551021991352310521398963475122816351537202078761672323351564483066863968308532742396150638306477092865808047304313467300052289254936602675779838800832560152129105756524720014957927535053693236239958577317005587760764270039461803680374658712290325081322394206513371058601008546332867113377902758490418435471416283162499571172934904102023664470166301103593572114536228150087101740843052816144148233880551014786037514863429842393433197950525873945955730701257797944104669899706783699272641520092285311511792444383322364008850700797635471802627773083792720466435477225855800748090332328823910918977824266521447573825949006311859094365492674398315222770732393426165603461424958845746635536386761511997057710117718693995795127077326967488071392491884464313130342279257951640879286247335691678980289876090896032332024716542561714708744377980003829907979823074907435303129587022844648038017533787451930147786577412165683689771367322654771058424328495662471400892510098079984651471581834092093269016927850269726383323720791284706423030926823379511962975598146215176425087157316405219144665331383073332466228698530559432578477950849168361110060723946680651708432441918506028497114320978215572392888323517074242800481182518701453234620826913020986294509911072664666951026892563821991384500911036816589016404051001287664509360433778253819967562468193021821980368902417275890459790628158933207213502016444906163314315756161840904021432360663984329627313087564776561450612564238673266234722296229067667626852643676076473423042148587708432473296466460360674021240222857159186267686504162611339949625367800502422665051796509076384115435752430635711131139664070857523281544300323121330372974756364682695766347216310941819215697937485669070216383983980641010052312019194203312541561775111528117801605673537387936240076791397982988501163352233677043102152556738366887513154646966874189817163260966170018003666148876539931230887379840013074030740720003358802238047863219559829118422432094427953782065905943843692974557878903447984445770661234022374294086188122089939065301407551151814421023847950548817618081690153007229545079712744849980790630969163803150021573038406011997615184949085298828711497098828236003663979999999096104398880960353325890464453864912689026423455494912075176028714985316926005474725736632166826490939089893223045849798177593609682858689351162761901450438247296984709969762678450061050402162836173492155579354908211627522045353555258375780715000744712538315613029625359008353289143134417782894802087361998065038352455610601369342558117199565219599804493860466960632128963360201868186647685134928284163682763681628545027297052063407765038489698203478100256995137921537528219301597253970161993785969148665496376412814961332740078885081863374067793735683116009332955839491421829830156239532463298427050657206680847489912635185876238504827880792783232284470517534288345686131207880561193673704872415323429094233832430908559598576473001633347857864555650605879644210005657988319614410983999028700780434212337580889894076518370356716977472134306171522304835752115859722839979389487715099766648783032328490948160883178475659963923772756945832667924036720580676982866579684496597992350068340431442871100064441047280037346831570204882430574186282491407384842329183766614902486638705967750994232485166590493021679105365400210349276617897599239196899096810857610075239339569778085617130907808219900165048107376293115870840041872225017604831992102871588993012607611996008899572028941301488340761799695578712333942550488747859426248159640229567053194242090983038204763477876310074493071777660777029406381866673153997987436117231762568413702351229370923172722447891953111496331633172649968631950086252999944246084673243076734129473366272827359217350800609518787655389924401882022089744061922788942922910521642672977960396889078856592681321273469160487572559704176653481843073608666940511808038775171913522508546898742997848055848392955141114333767987944994130711278321367887845107372932604697681654973549030605251868715582810514395216994186236303101160188089311646980087349290714177492718022393769863540999698973410782353577631765180813190097424483940473876695577040084197832366506067224190225530211674290660014247319109814744639283120337855913999984720892701248499047361567095034451220884962382389457982712600797510789442469158694035721173922921811922458219880957774354183037362429000077763433408780447928530554748054823093243412555518223319844832225705878372400195117771805083210012107617168258092711295070428714109631706376098701367460751778233426037300491701739199512016181849302996341218975999254531231424876970911849164706947701208988018667037635776687377869743698889994081001131268358772364182324665654057915078122991190945977855031965790775950922256324618579105038665434242418885046524688222606539271691410749670697421078949990450154115475987750555393777888212016885514652970814066612162278907301776017672086486855852688740574227657440683926032374123091927211280654114822194189222941057213174903983093464216277487669420030183299894258358386990811284339046519534626210673492187689367454104558044571442291907682765036182818729356283723151145618908130771421620454689437178629987316255463463172889311626860921656455923957773764901806576663183978735370881550652373225720867534479513916337472773585345403561425794153613782126361539761019338520373166820715822134757301965250457301368664535591258502220268128014087910362354027623335084938278373011995869424015543570034558089018888435338271849824712969098611219635194483026199945970005761048335827690671282827229222077897050594444418156405542924813644591666143619575653137217554950295372850165492724340369517995051332892220319060812767367807217960813688935217189384705535115761538733599548761266844236830625667242719138118653211159773122149739170925826320358760549887517814166837887584938795298232894590170142852952881662486232025379864425743367356956169518873424454781404003848887568351659130526566579737237800784602291967960771347719449956733970674435255153476747580636644567374198867012963041434210479901053207989970822975515129390170674085611443235780109893320205629954490551425035660833608555496604746720294104056067682665654660648121277872856939901079117798640411334121874229672397832411830830610818531471469114545052163109343887562327422243966680200887967259538249769821167961311951534286840932155303394392410542836772775119054004945577043119824551588874943892180037554788187088974676715300575898516452436969427726208566329352442915433916223252407602298104000498189777060751783277149850437192348723607298165080262643250524188387960255055391445634359490487634916905631567644119132297517690124716199297979590172928114304295123634793428169904208981074411518176696987872698676228252550350795714622066879361315305668865764623675593719120821698039942050079690148267848740371954982223337229087044002212074234009524656221981866025411316127353290455179641758936592839680604534585337111618395911996769626294697937349758284045517853228893229369576917863183591599911244558119703024776612493834922598460100323657405340516799311820890191826338671368507415262859648189418129487721189330433012831154457987615630879308142906139405046271046992545668666195185757252097690000011614015837466967886108214405555893636410093072485259355589817506841243427430828532922550049123323653705870025980982176061394342090151770715685147923321315644762241449853192516030518291995006167010616554019702128455337006142220438617865181424502667496017595716289760840204921593068655347015471029464813015182203319955280944708838221567441725240836643743771225402829035565938341554288206992526215579758435881415928307262839930850785815369202982742022321174962557055853552665996825387758216931509358890504025413883152472743979063380213049227333928984320533478375058936670510449644729617636089941250910999626537150581736355692608276538012414641326816719995512155823804307617963908669131855476700712558278557150581596085735040242833636212670592315305190890154341987566204102282008203776998946353963478752684598496998632631493318687281782408390001557083686056905157827000021794376459552781494233295649151137325521768533444665292565940091309584692066391249433827949254868246217114821477046135278690326394389661771169758280890412628864724597342893504317197007883526592367872693759783490972344177067945549002600817383505663149446516372918875264827327450734828390795728194116742452891185915303299764658657978526731981180264426982714565273156282037728821527269153724954323084496831238539878161422484247469253193278890798106297203691896172613325315878109345113779393738285314347577551525946115395725816379844969184580764568313122939364347114896539143035127501463619687296683071706469643035135559127281994866248398739858686266169375863390701475698676527262863430862190978826314549673324672943159007581881521350269825777379663438933561545443352334712218668517923692352599347954200036949378419657503941579154757510864011846391923004517992137836977042352829699894604181658977431821286123464016136298884428476528022574791793292059697687776349137851115766345451455802309748128349994107701973127324807968576042227556097184808520911755002008217115864941021077144410783875911830016678789713251308139020299730049383299772933778640197908971788212180486984017132637484633508457552055287747751283236521955706734966132534285128172086919970233222007517403258927019681342379308552194346058390250763770351255505026247123177710893229565723247685789779181889085702822771225718762848626804414816739435536656819145228990882267319380834108181960506878633299200002412613006368259361071280421600641553619116240455492877154358063958240865020498449910750148419298358156514261774828770492627386099431695951824976931223952785002440016223480317420851677785124591399188327887104297208251569242145029023325742211983226660954531835519881000988146835969771191823905886571604707699082935524861379754008702129370179978851704838304441366015539821984318872186387977893377473667519593251167877976910847905877094711996382854600709502527709667408710039791339453676750774436171648074032247936579876711814333573998651157874679376225794659263057403621777082702648610062995101299778187041753878537809238717639498861211956143039649780215905982159830687852562137636455970405348459072763934996808314386341690332205006701208146976164372898270640424037576950515640968891565371355401995392979369148610027871369774410903067256325977559051573339015355570769432027007615537075726166918809214132098991495195555634999163388387213408288917555308950442862720341953402147775398935555506212246149968767918378267468011825065719016394414938631169447462386414078044552498457720807361405578243637473285404164965487087647739894459615829927573419857136118909766482463164218657665864706569297973467657408987471946809028154726414820922534285343443290088547985343366537257338741502641278330797159383914241507487654006533860427906616694507894784530715494144240637465551463729619887781862109020630111827054992587710727550211817835346447331361626018045254254490433031703940311208387048976453722390267799003866361686376439592989523874627396007293029734007643327097854128979387613216028266515075677354133428142726847411063551921343668648152698838135698250465013092229739288766473940067363122928929080240283781893778149780539595808916648048683621462838145217715351390249251727863026795153062080058252476559449144017770875069361667243548667668233525307996314981940648352172408993079469690507934157996165356984237098468553018663621356761717886517298221686592848857656323613223821719583646395315220452588405900964331371376164025127110947890293001104195474802705424099621484943751623487746619226470524927054639125896742771481038038424221393731660408397001904525516383260752770539300701425552792745629723683577161233961157679333216028926137362407571523171973260709839450268470071775964479948815678943278014412552294023793662056784170401827219759361217556785361562387485751484768773524221206860018341208327864540861647957516154735321769462610783020381051145439656286037996327034032792581517767055308745510654033818533244919410120428326651947236997594092547182469205306938934093469478218190538424558520790076258297163353638929076496952634396392691415142278446744454030436782092325145010051312069325164653267708151744928849883374332744077490658276262193008473850576840140453427320693960405849294635077715429694888957581377879114060449599980672581750438763345635166372831340987937382121257122254245850802440780673760243621711695457523671377434425105591703143300312823459892031848771724660408030017094189131147216176143973138275539778165880575271646105243639742692818286548802636261906494906753016685429351076898315685066634551645456469970465912013867573931664993840399927226975803352123483321641704802516588836437037201615439645244887100721038662262634223780078661386572199561859472530251090251256018902009290465255541366253653663668480346791752749436117864930324756536653778952116881967812601221100842638114040924283678906296601106854756128710581656747904391250040341826897761492769388049258924795699456986124360854218160387875440168046014183017302293660471621764097033189415303570067305628288418177690592236030312791058194705480103382952059295680342690336760649062634665862440999679235452757104213690402130863055931720340248938563565952706246615288348172371149114079466719114901795027322171847917263127976685256373025402655227522520332866951543534542164793515525620385845521220056745468858521828163086644662835706401675365686810866618622296630959623803931523749784311228567918525743967529034560502599859401478864605483838418822056536216879435692857715574686282524986060735063229135114963748497357542526601137820313616035548392608825217877335638186356497339584320654871009564048423086811166078688698444558835749284767266425499543072509011015751756689748662145372801193626833572123454342016606123296668712713913212438433507804610797779628468464712176759435990174617032813602116866992211228503643189720442535691039821035176748310186476515019848647007238002304803551515480360907123480800570330607000132333284925703932701584847857168615205983020225628622644998721231330039476864398387491359975090169928010811995198036063613576982814679170501949847447548855202850910968565283301690204650773346238457919079544980389404814535230254515582473806859370770757688260561187861283276976336857872237931919204193379682127913699095572290723977357125141895330382440159387385661297538202743012776249828796147061029412032506913467659621690550582351665827124124375178838103303396680679510162269694457332844618725314286244631495154880211425032469227812062512785394903855808527308576885198306906503969395654329891903924949330890645352202571949917802180815585993101323455279012838493924449494512657526507100334305711213632893194620135203910376665096693025616699394877850853642388070076495430501892309745248870596371539479564674312839596198950456558006624395240580534595052859001506339021908678893474189126892385465460273131552430908565247498596071103233586551221518959430967122981832143663526890342018110444035309698338496630556756790350306356534484976910405602523278556366942800922029084644064207185763614336869091086811849948237038779398379268300249545233961493776744244038517228113341007321633046184286705670685477978534616743624612872235447493764782043653145224098530518472631283308053526546356508546559918517140252729433364168356059548498899005978132699556634844044407158040507172491220089519595674453387868279975883179562356391713736730064430357741022422928804936259276635265322523471274605890984407596719936465788662426301225553782205185554925092976964411516626116351300524830072436123487492401913946060137535994939033298892530854491829782022835181043500158023168398559130905497620582520016241004346774477364318025511982107999155472517230888169066579822353929665644133737141398974813151181918351949556172232645385810976105575194433072077102149508105882356703104835339031816473038631112501796301893331718173032828003578711600243707198354737262499175407189404816378642984916788868622563736771567245549244888135009030846488743481472507766366478724536597679829865557141055705502506314937433416274782669406997027089867491808569829988408323874053813937583702844236364278086521057770463961074333210589041815199984021375006057901623750585196297272817763391131259339485390892245910213983506419344557248340586216951932100041366007138610398129657272982932185098102060885037219997136622185059358742724814806884609039585326351767770073424630509826413328808476171690787541567075380216295883541747167722291735680193870320252474690843956303049137182617669238602279669213539269030715796839481077428505417274951750670100545780996573425442823124996557872067986431822375970776045669918481293166686365159448334789682265133399872370018017637694124167598563838431011275652441945835285465588793935023198946786887952113589251119369751455298984922975062974336337988984109452540612327576215871229919443231293241431045338722884869756292226522323931142900285663822622642850875711984073060705467231370692665636001771134665282495657248604190714149037001360269776589410498638315053074012492843797888402214736117271367647332423405858601616901491361222930294190505501844338309203106271670277244699646792872744223184125655019143717115966531420794194707344998144754647389753690239948518515187405361936518030381164286853034670164956075917876534201066093312349981514321592080099774384206409489127174085522444303745378466626041394010560123249646894504598085472506728870393674659007582987783020945706746509483996827550629923591282715165759902180855753779295961269327976341059215901165148377639605446850928663035250970016653825564426004643321047822889888729034461585510105466272983000363998179446274067178252122997307894167239829614049320566850293864577427253121658652663499091850119672211704159484252223754102713856942643391519643312921171476549680059385399481732224518460987289241794008839440204775209201594761025005588806548734045793782079531403274639521087863468227125941292687608266680814833610961239171617783591860395790764278633973624571450317506114181029635038841431260632800058045540833288859715764646565814030520532282634424378930534403954088067698280197929789731458059516076278058227064737817422075082852653160446734995840070951821009300630073997371084589472456550990972760221758435753425906304079382679543357253106784652917705280733384933041606017497632439312916682269466905367543026802984012593960358422211751350222241027768086945340732916861200579591315316720878542492710631627062793660951216663636669976846408737388724804661104224120446733816484211080174789242490043566757601637183088792822429646120588616164259704622528961039763085806505353771019570516040170559027760461695041796149753758037223954564732147450160508874912151995455945037475832278447100844705561870827696737340847396954691541476486480750819780318208668723312979589107961513994747386003066471193496521430280156298653748202575620511334016219212331753506379658772942800746012448307089633681503814861519235588856930172874020604925669241062400231362961170429750696351644532654298405848096641158932374354221918078657462979717701139477817883941206686992447375834571460424812943726405414343850668031312195390455372307039735208654677488775687019628751389563513578538780236572464265292078449797437250482432087178912260023902750840843779849877245170930687642676667646856801167719571241247986773687787749950299182307591301164710063618873200815482899242526722534717327463220432418442254556774259165796072284660114893791105812448980102288695669613629375167105976381254395733414670772098155929254472978413528802188825301116916744631021458689408751896114441271219489925692623996042385334662606689771776687059274148469039676539356210702864009504979500305143768326561886818986707936767575456560746487471219423371910124969318905062024770693770378950957257295035508384235487232856461429090754038872549603786263032723144208585991797885793182156493797561154426811246982458617389769195768868499220825874194692279012761921385587852530530700621656581695381261318944229996055878612327127150798329001953084101359854963861420703427057588098600609975034169468175069666390533441078094191583105286733718399310319428471462653201432208505606443231692228505047353112992349520708761862420564231174029105900974322780706081110993095712188207558741911860519195604779368393781438994627812086679499397792628412675605959700676011776275981638900982201685460138316369129383049533257030174494639625855697501726985376784621012142054286018950824823088262992148036285790256641411510684935398579368401333500068329210977252017162533698615813504735530526560015708582545861556102750616306678278776759404209353369112825103819374574781326926384765879176664829306606509832773707493952543648566163339629749414056018145044878136476440654945702302118833800296073500527473953577932114235824922626601394369446001439908224336158205337292643185759654401334151702785011556862865946714297606607246802990485054719702438006528335235325555930160549125493271281445780963923853411575921613148656835211907061550014806579970490452391982315766066852256724736313092960598005167753227460466267685260729779185902324497982015995410467810216954433643763596301816766060647294347158536713929574334639422388061411691048550960030293760886267758482711956419947096135383031039453558158083423817682850806231602009167310072723773364881215812296175299137964925778259453089929906185885428940824579502232541603367379241643003251940036678921801143932734327194288991016038565409423152448285698507712461948164125580867232848860593748815548665662394820261334440170011692754805383554589659261966712547243301822603854555393904989326310411763422463632808186151628428884249591704588344392289626304038647847501683085669695596876351795656811179120523115629953994598538409654865544533890727564300306476489084078540990404253367152069067062781963828189298830117360897667876997009634758209074994611860736608164650047257033832199340755353951612604179996795494695333621656734598963907159145847827803279110417674391113459479810995726936023610702705320159766932349172219495747029547958151269986531270499182116737924501220297063611765018204693553004646118359625396496959195933165306209692763344749989238271441027271371626094077565368305714239897094246554959828090098736047948002405876295860534563774672589176289786398172532751426885548361854005031565321444549574927798621787030368097886192784503691951632900777979520749508819800464036929605274314032940800921273288328599646946924936429752253882688279625815551809548869921363782081393800153044988185959161235185109256653960020678360038348597260801863359510718724590975800228138120240974684617487980518540389374257153949274234006658455374250731535900680853316549097214161458262949448768810230900293899886239556029709432491627024327744983338993232585013038497102655206126257672009409866851747573963198304638272774781450594826034803577136393006948627088308806268428680764684918125902197635184951566460216741948943702468449431184472945071117629840277303049761566728115534344410346876393628924811100806247926338574245431719153718594944268150007442572924903017724348468995356576157654783403672269589149451852535114799578711869136797526416723302412002884181434553222749053195611417912667532724516758575667228254477954834496624275757446454025721756544633088857538815507053080585324690939917634663266083258598412751447104265731172427853105404179827068293826250415719113788852489816823059738211893085436456947147940784155414469254877779808086825957473850182616920714217431942233570516657883844557956051276030951539543936966777816506678256914760261805327217000642323087682495507899910047430030778819571714126503413315141362723703231819937149829466505076976127706754132153021051945638468246414986961277948327857026262054624906751806121599199150117207058194160735801381107226105132418715554022258318299917604315144800753007738994403001406012113042834819984132124705504985970703069285570330431368910527827529720218816438502742664560352064064023827338884470206168395437889630703070695034121687948978691330393834087236262432067890726140153308453115172345492323789801502258864195950476397295764376609664598701506610522654027890200557261267595975599337611368473495147219624986394156132160671455750473002435841523785940263230816945670960545290142225564397365770288196280986898225108843402196172169971396138961732414844638313918578560944722859289237489155645974422709665702761881705035420895587464600547556293401219506053873573088368147383051665965722729766007518866805841055929273639755702427688659351785899373773919427459300212552788102834947322955209751344316472135100403975846056440762003560686351872249262830861475168205671189349494999936296572353330397067463210094409284601847001720212623445883524751726092227301197544093088756036827043979177497764054149465655496876204025259394952129702753048464218891210855121225675444414577824308394411859479187810046737297930497055543163802055441797262154996267441699922491561137562424208206820181705824345741133664218894730580652221311171155259072185788599331707454810122776186030641682243230275664394739919586107170095602912993812423087600579915801531244822889795795237544806810029245463296432896228295843433334020680712716219873132530171921127978712989169116025924980307097479733680144129756635077011779821005437673350420547821868013435256691104816132870338493483735887507576185824335047888472740933568909647132518579127110870850807631749153193629727481040690593898869691190877512675828640846224787296523578784056472177300664054337709530646622090637916613362762499729211321839960462683796095323892195817359323334432009364309002277031551634231189484825652133374226749062694311855977733771339909716688068925319427684419560855161887862983397458149370771302287592717461126710749855546299710924462242535527164971499153097178528547513584324767489274280681110366605753219316790042785457493419374320189988822453652995987204387058744949497864978967078686971194838863004932260421400139120434550208471592357488648494186381089905112840527543668438236380719102353286005125740182196679140031325884309757833834398034051994011235920999364566453926200830757017741872213146697083534475783039571060137884647488137120156631158209717572054238107460399724657659010696328510772454360975386351388391742148814976846953793635075777585906152802415430992226899042410694474037907685193704823844107541531481229111750203610818617892782770744430032941779571820472534799021250069344368628875230083361266472980210038616563379954821519114837274432630608722749885664720889855165499696171017592508764664068486867999130662747098105121604964497585996164218763012762714367762440098521064563578489754079530078419684862567694713864355303802239763373448752431029610187547740519953377702421411683693824201529646538200070287970021043477701983162275900579896312343368066783900026958823719801764407357130150025358712766406149483281678299972958478302417014353424845578957802618757155731774122958880965476826242900295441935974600647342998316440657195552970055221778465344437073912132713717044209489194100359997661917790181735170471804129834431009133030476592654321562625983040961062486956436007307537859001925613326955066100949678447374029895167504652849540099993185063036154752211544295387712811551974385187088198175197802988232743769231617793040695244626057830566872817968171542533822131869353919958003963528031322165122838639482879395928523388754951700444704236052507866086894174464381132457742687282274962404282079127515934438217023878098936034395001932102321356891472216202876077745825284375709244260074468493976316563105191448494068165302749601563291589275416239024083514153876379026145965405734807095453500527481671371452505485292261110159740576064686698390637543751476055320994442180982914651136380037427209068743535587622975088349307787326164390906872353948666259984814991391313169731154324631243868125495321906726112572615393427193202859991061677919895247002676191642133812419473826885219531791049838760194688638853722533549350239146969042494299872591929886544595525486783355731192691842606819791124118462201839935855629302326902200031835582429074123958789930587464421385814786940135013899815273704423047207396919476438427126081593268574107318946969806043408661757762076544888560914877194371206096484568275326132462470528571913248128819915958874780737872925858983912494893441212191312375090211293415777191176641536091924677421773319277183249819910019304581068194811554248211156859230857641715013059943101336145775280099977821512757140453431159386614185658698301593918315153927064677961264716454089524958589212789931612914493707301063976539838407623205130180225986333076046526562330645456774341126991849610659801429302935409452678080889554790777209464929845506943604982813568407950793938383750008939916035202705364446397497052599905277624655216286175967660640025048062555961250600136490427524365147596948353001490466029266053196657712030150386162338719519613425516528425067871027790432442548398493132790691767038036074695773547746945259021860714151252549976256056945666324164830055942515971997750800335733362784073025940749157944641929648737546071562301496888300214195987092542011651775725830989540462202040249891871724481221871374591800368049274248458771353306489590353856874922391844586333600196896383094153704117571361651757654451146556144817778041531434187362742226878507916767428716961176124648967129259133130790337310888875805594576469887098679118379498386771718074963596653942852923634454954570973338256275779834559347884236235536957302997022972804736458830659939953812127899041619223144273502738383951046972349380406392784808511623801125328888829937490531273435675437040500192539076377954434429811148840873199736086205114161589065582809993914707272042892781377968426328846514753955714811332449460304204916632634194868864910968033200907403580189023684595990128161929909383852753767269686541501553820208569920839423831315532733792059700592851064484629112204888206235648336870201198671601495867874615313477173451720953309449107299458349135087927470219997081076447938236807162785175347807170948312706947231151927652560675369492663478877991886283581241195338346913567075455096159668430340077335584887089386470909306617223860045736201484375819220857204847238445580590228886420179263146747383095137841104715828924676474512636758539197836937944020183618432087008736019101856748210997437597754612404842902507346016868293421629483319228842800121649702490137795939388415758272158834218286942964292583147970523970926541747625139749097735567976074560713055608366987754663211837688427455655071476111623378877414088261956946735215146268427577518549948599659816349665444631306563165284795329834661285938354643983631386421469917790605463381559903756741439171908953321847589065366388332225533600405849252327609688820100611941009941668036768670880172483576088385293572767845558236447500622848867988991197581747485481276946688748976708949287763749111677840437361836857413661535441033024417009238442544350704404916706975997302093002754135195347953406320160839171029606755376550861075850942390013861464163379533181782250177376420674341710951204283348945964269953519999069074432047818340623678151719330860406637131223323149011195199562678451221951334266986266216795899579612843788522896737599476936861816417513763203026567774155497712309554632074233712696950544208654685244033181784478651297325439184010951504439658160649410115610821884482390658143562242410858390725806965606372749913870362745560284325052749120816307498678934426163332776128177696143913870815828652909451816994602224368579552559818823704435053403906085523875070939348507486265775975238285688741937033183346071806085764034148463159501031411694338211769568035022548027027404239529945557887861177740982064284985771698425281543607437720828271307563698100896476474755245826180921240127303931257459421004748400885476541571144535217432849479872404148003904820540902748955568583995549279686912622993905119903612821960353984979535374436835657381449370616667391708455947833201236257690113096200250217673922986994592068933888587464592468572951311477197096781565718354931770622689702839202419816388431610239362468341960808115004453573444231636633734034930624637283728397721601355380995927273153214972764995137394449526549567019609036139544944849447933513692962174482012681288601495897272746151833891820227993766892571748768569837904990588670736830783352171212600981645935452707678170053243594201789073793207179777349552204415694741611273711295202283073087923858830236177966858110950899175741373723660057788639650545654626580526881296888988770103290140516201867881109755368862023110919410346567607037787919471051546106119795940565623468152427123473296814021895965804774770847403889117039277359735457858322145231855614727641148241558328812035973923344562703270424810744200542646999489516435079109915704690452426645050290867959305722140538969615837054386163388334940292934496184292818180433113365120293478794747808726850053380044723037400288855124488342559186037603045962410504653421255730586217932648604453847191123827673186217369329201948381768055648715328520308914659707276225100775411439366980207687716215096869320988833307568675198634490610279830974805370950912674957118150373034121046362141235277551284413006245863271282281900062923392066427575463709143774442012171697590665795627130513841050899280813042335037313650288994031579434478576131315890341074177480524278008758599765125082882828489680997633477040014801815933865645064707845125640063426048390295371371680000562347937070201377358559133525637281457024951085710862257133639619612897484506953430554827615434858182652671062122572271914747753170359728934245262911454087253163807183702574086163770053763923962396695947798175191835583091238235047760639834020172503022399793216698597037259123934444695439813737806249889162469996462364865303951980059001913977036091439167164472406162685952250503078621099183778264114964292451607490047376197059395088686415106187647734677110520723826264294863099241022108144760836327634876172305393299928351147789533140013137552063877634660502036827569103555601562742802430562198279756166250295725294485812746850005269756072107809787748460417166534419883501740968914602266311108715343762918547443924155107352586979610658963635651568868228309212249668227705556484871555963908910869105788244417016405734672822239740723494426211991929022679787132846879553859623444840074003958070175754641598689304125560501357311294383800629879682716196211710456702702664588570189251705058970113497023681118967154077895578214133278989605579314808860989826150117727179332086563864267321052427953365285115723367987878226911506860016912276243335550453893505176454804150995682857808212530497468882556609321898647375934018870827389404136147351684489449645096944932759948858973014547762786315619792640023697488554739609636674414837590787288352421967093568985762717839402747262247070314312135436643029382803721155063793419737410738687612334530073168287342795169377278137283916792901208404991418029178917391520854445514543768358693598518720096879556894362125157121364176034153322491411578826571381112178248758165238909414107962305411488356145792757643330342981342101131936168450969005718497400473188568477996353168638736709499970662057171652384397796407286485173851814234856909383830445411789344946611831009797084424126001258981705028687298716352956897190077409874420879658773889266655100716564480406622247505255928017139713836699012059264146123291783977218532237262968728394102826604316996039677242747425681571896960792353733480973145264971257918742109746004940224879707220194881434086532410555332404430786798038778603665164892071190530758833255722927267116772526424741466500439365554358935088103729731048004127404472447422869073780106608760552263116706751331063652184715036962033117305616184890590964927830704778447585115656247939434919082454840082028133616067695616686474586186796919125493875485526341748838289112355031584941631509237361092824849442238635351123503662039550240371455763667044018517562142033564633210385434048961634726624133009308679633775706002459612355201185301025147660106442443932283848518003624713716989311635847269837090890366418703003010213303429135828886312476407847155772795045197772174822554444878826095604186124250438260604362848311238660238809747585116945086599459206689826856739627680307122607972114264663409192685246520905648099581673125429336400467114932798260728405703556839709643872798010065875876249592502978533428448865995789588478648660530795092172468717891745126328577572004693035983944294731211900708265152813365797880775481476661392850051057877757158119373316725939659224027311240873359594034581154793634898094055916248334853694542728908210858321216821008612268786619748104899833574444646961433551823530992506569709796599020339338325318039291684344418029568647096542350133333277013476437017568595526676488738637875618943399192471590738511470644113778560104221709191811989417513787652518713284461568049770472416933963219202160476918463824896186607962267549307839797588608480562253768511271386044000699126509738205857543741866198270259230272046001474739184441469254520028081870318013006633102589842606500704967200974500641349923428070379662799520735768593613953917201565628094850527939652384112181292010112155145326882834615512643582288480969642434924167116033784514034960855446835837822598939136104872142671905606364952629797132568077327711303220058568424796566688375458694552988766358786506758521793741689417536216608585872118562944139237854483382040211713722742037316472446625948460232680475372497195376492916950471444534681731172174106126478356615046050472825622970903725809349835117951052590848514314303481455960242311207940096900553087617212712364087688212737444539285774938485337628377206520404778013732749802721733957731244710969422629403629733904085894881315389121873019325455192804019663194465787108962399376622072832205658557757281166067508649850939452197308808354292397069009126878081128758456064746640477819433429871494710230844665287681204642373903250495679235733010544072932616511200212128781446566952679610402712982212344649655455790663738080525109837833495911225470649942540904642315043465534307936821130495648719521380337778094047227818910820513210889865565271348434920172477738595707086146116235290759447926228604856483550263265832743915982273610415250293518728910379731323143985997670379097659986806513830541696525642345455066313586673766975029052090755582925057125701182488023001868648757998560045316014941932340532565393540945921886282886612627073551145424613396979298269875496520921990535660503731754948877311805540469009979092106522009776627053004402359099888221786560572289628967919389375248657092504856329994939093490212401668218806922171009390803092765418509326853796950818338108392912417547759571432357958652459838348202651802495420682407777684089060041994271578927129727791994667294968093867494139892205697146471601710562973539969984351512289587956297581849469010058294704207515679334208049861901157456838102101015921188673287421576451087080076052152768222891507172399624796371108597996188287633606852014372482356118287012140772932200984356273284362802944193653284506531526695988909434883550063008961178238275110628349770350562066645156253592879783653398382465388097117244437793208851373359994521037368533200797005410206647137278626945378529646478959428557820073563141536918515730482438385758225262524911534991259578924553885754875050566304165063270714891993013670549610109755616975339471837134050114618567762739056202122577483836259034922867374446838190525480956690956714253421558049630457271869461493499890735187766753882438803100037749297949859539171572503844101547875107575883481862977140685735551544226660932624011327083216427347567084239600951410309800408187825639270124779530912318133376959331406548863594323478583058420130630973156415065368045630332301402858757889069902575623026931897456080619501057617528127275424200689869691336116848645845557180725059494348076044644767267066370809547395953199581691914053208044841864312367597802523672223258871688321283983347041923506194097238436358471063017265162760199293597062932184972257620580297118203068258575362346839145325808326122468934512132757508244548039989805984480353267863783189536727461846175466634538168275241973228675258746640589403393563735002160476578277506010514381885001750661939856901612410846506160035480555609430033070347564310315894586190504972412800536181388434192195952078298855090896714975424895504781650626304016479062504830633284059973277234877025580871151449919050432252080794591962041309111389457021701583568887910265969262077984002458230513068475227406164082477294575460873537060804936060758669096961965686290892654041567748742622097804725480242717124126798179875588843079697056496347089733545589246678108413210043083657295337420685375433747780173167379723197974050353522925782796437883012665688738346647667966885341122066856430511001921979901369441195744748734174983628407157173379501959555470705049574721755543601764200454500304467995108278304468285360631021050401603603873705155466076236070425798226698718125456787254736558858406116516548829032857819781335991629239794299570564748298351675620748706449576554292290321701571642929230554485313997637658253026272210655646137313529657221163446366295314360838691444578670944393193602915515377906460900835439493395250444198613771969766177376919964624767084393729196568684458646060060328718022579528180918860446170448990433007173096640848819318029953091471884209134496092082559900393780975394009305999501531832139310397454292319767098150225646098923992144169355091199845143299619256743183785258185265407177696086026570869756682964343102840261362264733360288909954510199756775325017537943070087122645722459741015830657874739264977801061579271582085768132655148658030542775632747100104010695957600767610083386318340084370751303293997524306377577941873001000084170571839867709283318934897342126847974466463248553322399575577741392453876971353252920842716745751547766771405603272656958837386791582569087603979477364713778715865360623586679017358868183570667902082866282491089951291194555664679893923027831807194641296441625971193085939919696662944555664312127473209207402646751462728909866268941746218547865699391579550826674379874860445078496380044403851391465084397763570975311094256835726063932380810868314909254376128332069935983896213455943110274451016610027394477406133676604158212667515754090978518190365901866597520016260353194903029151759964597057665509491044024142107510120030377642916134419680129630783992138600795224489165269015534269723324435576955151239117011112799441846110208660232385077291977683035962247041471667567831006290742525886139287352401962257122836678725351716251820372665457082951107234688972266551620036356912794702216395694743088000237223187160768248840488529761745556516531916548911721870034852900165584705943500726147161381274707061660660095504061416780836148169839220701359119025421314715389925914412907477989609223421707482240993744367112902417806403970923405941615138725690121796233773131347155992056459108470279963349524074477736475711981404313349183670740549960401515245892784584276407055222396341708195314576834774875014617601812030522441388532795097063083643726690104438651762321119129218331335180064169075068072496806363609522044019437722076645338074404330754502256472881409897474648302891676605396052881035712282810679544997435624478823188426216530891916881416377603925334682539528910540502627671357426155955879502825095379075652416756885716102410027072413799717251868722239003719802968175219913659714060094235905026235471213425393317638161882307326481108706818285512403526356101890509284525926905802278918185863452277292872529812664487223735006288452671564975592142405080999611920909129235522233364947954657282809673638379914861886233751691849117612030799974564773413153903348609979279527610766809669067541827513632808545660845431272302403842011349477964894814524430622339568414883453978710120773063538327268444656445220643847010693223276513577360007339763391310568311897878740162499820225473987254544727233611326712496344977539540075670155205486263697479407812161289419364243660883185452540685745393649377404553444885230275086583974260425890735119349177010815589274088235113319636738542244463347287935619419255816411759337403966862540121055513149738385558967974792343822888929088317563895108820510168647920731994850628664991932621284009271457926142586770818801882122106058719139633028523701362447433049212173382148006044327591354442382101054497059113338169660740835952039838378661813541790064427558124403210335959147943348569162766384476898968381372210495593418218138717137526327734237391328197168809506409042446641551987878051698133006623262784486703860884381861278425383822370457949779395379174617393308207064553637778393438719053521230488474093151624126103792351219170074293494162302175766000979538540997335910014417889552936226820625218253824305352364778930712356459869559136391621259182923081735897464831064868465847396432025768613743099530440084009493979009157180709652063116059743563009286556750432003420704140958119779095724142243662158624357926018993663552225317361522901824364483215516759629313866605316492359173631989566742615961845662715239763894361823017411111415609524547235824551002670574296266683408584724963319854379848955119751671979913275799185870266260722337759783129345893967505262455604721015461767107619368762814584993845379029780444608821978097504937902376751530943680398209421506884337920466524792443834427186918942224429725505080175826489248739380893528889755463352261703731908409819271538058884951967255011335892987999987327291054111966123944309750932340566663112972988074431626053577190951707747405836827489389844720464497411823027912812602916438209052100379582648609369366262080204793567390946787221906516529101235488867657806400959416677576951071475946269687229536781164595408447740140476172935423430491419304493973302575039495431989810943842769075826575358530292822809367519854519176926933940023777764392669450442027046031451651473435584220284020722737211481736137445706864032918524283965257192262930289947157456857604146707966144646322984141299681990884903474293355955585005474354497456573035818182178051467240264405336057433594928972848343563800329463017860236493658201793118646319813166248101663276860908881816939405487493844177614243571973210158570038640676980750071586675396056137319112598505666660087999758125167051304467483672107152552325097484431393332020378619311255752153099968203914801838451597038522727457780049240651540751776347053372959838975587991446299522965675041691466991804141449492374463197062440760082984764071726056963985984269504609208932250487912608885143998185009166060141574906902432977156784486751985713386529654369257393601363351491374203764297914411923724439780058839392116335943418465831997214009602832464825571582666843685728105375090368346771375553204966838981017090737545753536833464328865966534072989880735718431328775595711311512918015007010678964369087383016425366722155180498341740351107369712515150841128357999964388288827912695846570148118199208216739768903364882902025355453604768379521770202037764617672927407282000570861730987858078932120432108067864445822133756215456526990345742421732839103524702504901383054445078023990955900890835966417687407048944232957649447511149536307978099475872377350848056154576014172492341302327777682929228278250223368214075612204777105911526502374590585548553545709402677981046131578544620334880007875396118392684745865929534080287740779368802269788295704537063807440079518290596525225766949361072735680913722105646545403658849595804288693909180453017288919850220224370283101841310596225494772836496670070949298184674946169851887577062226057807642384175964136932853144442580402239692971138131660768610312587434621573525182320685153386900736200281053697562360586925514598354511335863821041085212051431680106669577781435501947077626313684429656125487154696828578755215589574036608635248801362145923255731272220776438186118410580722805929533772630255364779142434185935713784226722954896004961051943651308160641989503398180880463591870179423917088791872772487004988576276038311534905795161997145478993578138462466903370161837342751641694552018421111290598999216941247794947791420442273891207580375546100131282943122009557472098837114557420234843087230940578589130438588643259511211775666643894686726854273088901509669656968534217419034403821978287598285394722878847837100258100593989820264622630432754796610821295923136348382687136207798955157878421272452342384508541194016059398313423656647790861395752410321276879806331967434652298437457182685167050037739735426543626918413006191472776567262312582663890751224678442469086920758274865032080197520763601269097129257817146571874548649066111910643684635987985584245447788427993224338345384345320400947438979454441436195558511495065716236934263620232789258564463958365730307824649841334513993434544434212562289812096006254964260396748584088130570267760989856568305171878558579607338552289458957836694703919103165233741811021932652143092701024305273502741384052930896402300822591695096503233586744398500419305746141044821496839727374840729033500454545985498938385444542623803370835914149940645354041187387892523644458885413341594795567106788907468057967743460946470176180979200357924598871054644448764272602506037564166046395227520721015293742160780845330213505212294673132727180214174461471522657335041396809507466802077211631944495989233108155015734805928179348785774572965964900767268265139920872558531903779838451185366461313345326713222984583347954566017902380721188469152802126901908021282689850311995333853095254405740120799504994672851548920126314408122502649221647596527504660510733994204094260863927802848611752895042804727025985027619633284675403363789702319825940355261288004548605628888565237190587100457643867318479431664618357965937770069433359556882215282349901965602018719308570896354960542461626956566036667705969315466380399930904846141368001109014606558788089976448825402863187699479717195242606125992246093385771194512055726372482199933987889094364531313235207704401988220796767387187681161754280601884605203843449565692794715958856225844532984764637198305525604732795480870853776370441540670456667185986604551370653757631033329500156039707685973456505853898563439376355998265114704700821361174777523519460378819304476358558522503737648943369130808624941458252676967106926094461721179122277508585211914041436215660431614400873168435960787531166181132491635502307512919886062969717856994057115815284760514984358676140612800198054176203089235406531707560611059708369896762006969767727353405536125495690320296306622197284986547169185128908822215252745959639882536826101395301758069912718882858140869754060339687867218167573650531982847389532230774271689481836687188285100363080601105088819205824954465032052952107992800122039508984214522922650627741519383230394018399191465648360365668090021496663880215485437011449600689286124506115069236572516719337977722856537867463130513154837888525040067154363728518812377990957714241182021178309132310837535649594686436230935766055684748639514778264110406445735819281402451195283983325706054559554449267613320269378453505342638001117144061417671414276166173539547198413687417342225528011574184685411391453495101497555053421796313979369350699061910103253953032121884183829151771812965370900287308154317971618077674490820223758189609321948219844492027821412818852309905206816593795010801708610383372160239779558061242687664526781672278034591198838322663023707319698922212031198215237539989252417198788437716719250527521754314900498386981540827507713186350670718058623435607905377624179268802667090824826462776357653158743122340890824649406089666848898652720052738731402755289316909139209476630095942177021977710588010168776799078106501107007154149596998993611291201251992531793017823528390252152039509072308861079573733605198584118090031621491107693079604335959045715320115913044512494643125981126487619854992947990758377782462827074491729411683380946327388666995696645490259546138479700446579311608550223736183444622040184024465139385258297824286727660682703362464581489086331606369750720702095191804748846507685871355394239845668151349336355200702264392589564468552590272047782605049225154600686770344662061446880252461251739868864002225346865873500511347599562036255181126202034143126367093202181906325166178633714498514197454747255062647789929299755109305608297886099822542319243554431129202853490385602388600945668773382309738254832314063002269625823921972791428046866850031105390369820197246420889009271765449634803657609511798425297217134355127917690611759848934108608080516676984267811303806856914715573122887904623996524629674287886615044403176595540572957401917330275719347531444830758954109560035152439880666895545122920567501263534935710583571814832528686497926516106825243044373128450073166749593209591052447864560285096308214991636610947552205714403775095959509386566004553009787705714576292048863280854043281509473710576433185232822529017044169447529293097322837543589169975347553357235643969571957878398878769218691564961526234913008492016484911493893092242261937112291506799940831204911221241115807160016472110431096534720478214360535213150221945282109635059824451429507901401776778032780233718199334333660410220457515259928691788140536511019495842570950525183780332427292514474615368395699955409669026151831520217870175196716535943548578893769049075638632367490535138299272684574771597733356858952418131459008233281362754081264459250138044460289815479391996916454835322957446726761342066353972844467236555853417940903718482297061893782927783981555181852350070429538738987516775775014533007006179141401723228127659433562684328892747961844762411801255047369213871759394021247522484312278377736663652464239264140019328861476496322890861105111592965689723074782907075592059517820630837613207913582914741461409484937239406566570410263062072493670459295753134938748553365201838721185910302072124000181367725807623547476379754931420245256351670103876200443789958961366304610301153046772725767443888206645792598244972465807368044242320682480022310118366551808932132947234696001801120809738446569845423560410088617650749177443450867782988733245336874975951290761240497448632935953507226860177690387029278135453667350480467452122631826166957391425712781214541066557636107578012072246440973877196112266156553173149243630951009131133135280137749819849953755469592279232508541406193256271464762071163466541853532682834898055729449230113853808858021845006641494793611467527787901691253174393854508401473790461586514774339434728455633470825565045951624519596531186180515939954282110874298615947036058005959484616698220605181209390777524036822023155101998514957849281936791387402611258954930051293286785932950804903789829050807932887170522865354166277687429236145645313427779667553717531529583595860221187617297600550528740506648468016803111795131398648858019095007406684529833512725583781296204947144870243398985369686735633061455021313262590151509231548354199473623280097135038372829811611397176735578900652396884276908134822758338195120249991866902241883864870675179073077044715682446170428667322055928937806545741604761381979508266367095555832308184960073510332098126883720222709703314666565666043874397229126205867782434686859887333899417514351130735752527543463226253120591934552421065638243988459996114856527786781894399229573273219895031399131164345921260076055655224060111858562648022983458504670217521951363997607718922887507399647577733950761562028564500553098054330539969571957301231377697865927337053375872630610664886806158467306680257815742403821907600984206375959906922209489350684825919875976000374187870156234990874130228137945131809526139821506804443045687337798753166965494447666968891044716946253380749071728815136882738218636029068096842350298893835307196204350011009193317967396066407502788739676973953178024356421911994602863319543527493901368453182971778784356219889543168599866096518077602956176799158842112169797686467029486614816807926476746987104139715052233775435247901981300002834384572190900171822220942287576216219191960821866325684240867111739968092443372593683961406884383119484550707975062677857521938670254596911358757292683172187950571354354313204616393518234642127793022399224542075961884496689245593095603686984540963552184232768413474222981918730089979748314111300401304097890681726135482918365336993466382773516578658264570150171758839541110586300956223655062618401453009572504176104173794346667975131227545972517001439642806802733247197280988579310518536405702163530619574181509595080573656509715769170121181594833554393769605087301539083667546226220122923185261957076485925516094765663957642983915852069872934269273845157144059911003807033232644647156215646400148679767066350818503276790957149277538178580452356466241905418767624810928647912565022201044687059891054500067851864816047592018028997929819964846599877954322209955617097243877536748995073330659760401043698282046023217620300257956705114789877828062188787394331481676430812896520908381091710063383537884953137564502501353478243098197958987904122317256339666123672864383467511814060115747861367719682540805797593602425064422449944313133433518758370038162821640199143290786834044771116599174268737675041754802908082492312205115005442643799932397736852678527412632211665118290877649442586701891456010037769274776782140725548184957958381691479600658166822299454801358654824263243456399581705083860680622523372241905594860348735719877867258830477748300540571052865185316139060142527885880618042349291794871881269129548553998090346145859218226817495540431933074121456710548390554755940726436139507746851389329750925001429291902643396529759220639376448625857025938199360902516323140802361593860764491979353070189152587585294453759561157168488894645707604957380970901639842709753867619253711810148205368423990168293766435816802634411986681446767262177917801217430848112222020237017137750936855855801674147951362715688260381228024993158998036137837441426063405950366958074627436615630102673338265789617047664506589289340817809013234418125557440183996263830649762299165225734560082216400665954761154846006778836178857011438174500014639261616561513019839462459263302592282053733160843872634726339019538669031508435679770309633969597680824805842347607484594401454255924213538095464824227989504753865180460970110974580771392728683195891019430654226034094985187025338812916715693014430744245009842327916034039204253082148091026522586897665499852232070681096921210180893052210422433925351462557243658106140113540343655601404154288732902053149286663022917307502382507196827330209440451257993341225364103822123604574960767202892787284964325297860061355213408750912387510091799266536560712448759423123152743736035530302011711423680863326610378080563928319283746108371250992106496973597679387687282237382597225185980138410475880838463843534815213090955941059238773617733328259553385859928565696379532930071769034632206880122236783477997332253390737286169551029303973937698695637435545383841976423767157647660123627731650201602740569893341197318823123688766007308824316127315792668237303082597134296525224683082528617262027114567979485008166050055093333916161008007341229617506923807663368809365684176948225151667492636911072234369826445471050729120550647720801803568757558552211481270604977697655523733394863154747037345284142043058460260563524174292841348503453129595639546337304655800316645738686315044992161694233586438867773160906450476897433902699494397353423077358741684153766728045015930479927360519834038934291435984033303347480857157311420887781239086717657033543947667638068083753451116776341745909032855663664530732130135657282841137965363754402195329519018841095811299619574887531321545260764557743782736917224714480805752850422399273790637019808721799653080599243215428188758270176752705622795451969988136652703932335725380637070290045015857668634018810033057973476006378315861252070497783281385264677440235961339292435988338740391687986319419533257811518259237536153205213953576708210885143356738084277665548946921654309870020666296227854670349152574143290110284230687475266671275959446597966555462982788175961161710909674604556088975551096924114133439793666522684572289129730793164270163776332194601793908643249760417304289551777421221648516237182144084389898300497125250947574873607395257769283695341456953425881838262201078455105760235497941623694359905109110146121648457630241730102139904648587042711609855159195461851473016454698697758925602319666520399606123043938388168389361464991591555197583936943732312533451171905283351580784979876920807564406894700786737513697189934477474546275869362072761583750493019319874680540206885492446132174743795419501869735454198497736275059393267926323599757324621823909851374702009920113887693775143849325214533970972130815242801022509328459472563192591371839362859577782487022444889265006617571583414704466604581943643614467726275892901099209295095211924955256717293025264195405609857133521168554994796260147736157283287829227227633585885290331471859472147524293062007145052566747724485079344466072793203796788534034697755376060364732345080521423485726989085457681531411191469544430875450076387391102888374599274783549562274147165605740570141229069420758692552991729278302788369543767176781245257114590303333194433356030151903934792004041953765402756603759086065013030311863509138884373276995168004666621196792911323750846000503141538291481102239164245036316443926039332472449245593220207065581223956843834591364004117687571334686389825785388824447720636148534083294516915665876043668213468829390437490233304519572473430878747399194757522182510857932953021242990491454270007648735370207613602724136354170468927973847278874020593841342988937978248351793426617988685097247726566657170875655637560455306872453199253287802150062088585383285730648225333806338420856557373269972762911159828508634301385724331144013433577086599086432190918893755708128488247868018165247463371549859613224592568572319481653948899908282029683792077939397412501904447515470037055024862371686045847776360437547763311013607374008644683086781379382851181263739925777859926781177690903819399636436502729896707212254529132694454636499576329357057186105561866419058764432702234919697331779236262030651379731098627068221532693126045636621296332909263043030370916353489420693499344634444839083274923213757413536266028640220042871315324453861270661664437341720181688892368500690983943319678959916475786480789103076644953203617055402822483523043401544346635425113815274667459519739411465597882231707752195738155183650161900293121056967496314456561088660782640278660636688182205917194528050951132227452821247682909385398545773925707882121411959778593247498064395032561457964340585201717645796919345690441562778941302733532654777251688409794313237333152517150078452528550977005524010249272899029355385853210645767503750116908645931520302621100044425426497203922623604070248958851782650065734094501584492397136522665069857230524279154798010206733076425414263698377323572065169178527032997878505389356136770834213339197832599740918318388168932999231606948917010375715381522797257501726542678602030669533265250779194796460953768345086190379348239169511223748434849768174725497438617454040599836521821447387280445109719675240689907568784786582888737994963724581548872716527460795030074243613382675573685270680418843480747227784218929329891736657466235875833113682551912926549235385265371629933032796142091688282582650426019011338105493420943443503231455415870038432768102588451528325225992625189822075280333122732789363026131341412556636287136033246692740081705535452550366362447788352516315146201994822246766133231421918031274164113995150753689204216388646548377360246475679867141479024978199784102115963282878214951561588156629644958941828497663894090433759684430442593970957469775286398845073874146318864246699373556305754283526855163507517043715535931226809057029508079787208673225629966459157553050476852749949815716659870086354471662012389714452561743858141077346916212163386850397629134245573120117530749188287385890039350237069686383492141573693296419662718863032065220661006638847727688202946052857690051394210525655319796568499982366686548953592891645852783657870811158543828872415904086758053687437216146116164692521406509103688957718815866120075380316814985611476185190378417564673120418670097261843093879704283700063015922068655667666683803002164104080326065199080429883591726259351611699254283561621582543707204034975278129654255646385566610140725308161979242677330636602982841064708548328801772487899763532236554215624942227476115591683452615658693897430789248394998843179430943834261376975395309776964880781866301514128857912558828142825287524053703775482865949482868407262263366194431666626917600074931228216302032941926980931913489451455028758915404755630590172629162888031404833721424605216999902543421089980553114792029440608933047531892373484541900589823227751848989583634510258988571768157273041193659957291364838654655956011720957038775131865506281465758396968867951982563352368662673417337147759992098787526580713204981180947366554825769292315345264992393558036023641687798641264542936782078209286063252772209114126776416922436043723049098267947565586078181129089052908902312244610816650623386573480656138182197647708463886771801467873679914814047298477374039973321117367004851012222029077782148670896214997278968189504898560033406533874299932955326111660155141796194070449093270393205048302353588700036640989556269691779146512519120863358525663214863310489974101058803708100171552115135774065377346884102188976747512585060811972955214090384458316777424613814833135221520358332898895992434463022405093877105417010795999933397164635360557616722982332851643209422587919145126234698114531877323486727738262992218060598755801587496343849785680692095157239297734647677840699802127890167334254247679844857848868902550930516545150413236212929405748750401198356740363395241198545011516137936318181709728180023728538811279653027549172379732036752557044165683158235425192566860607352700285995464557719516653936613935766456039935091458523340996715646658258458345556403639440962552501135509630369189025860182611002043670940520687067169354628574485029358307493710838305781622988954231963893491055000983130021669780170873565541081268849789155088297451158629649920736949315916142186007354455053367845177637195963318830481212284911489206558269279473089836833108424900273954503764543635329799163919852641845840272578434207148710036369975897587447316394140239020902675764371947308730716320261504120499145167391113874057802997305179142933384714952763984317596343627786115152651472175775145428977591015127811147117653814355045660605148685341299209987321429155468457416374413385877643678715461251700661575772985449750189021422603411650583126787669998598263952017103996613296046592632417086936249214233663458979949632046039280763226895098670336717085462030146816373675514994057939661773287600761636016743987316214416370369580786875960946065895291222091667740797662112790174018900887914155760862571547985157362498730481293895998666518034255030850546782616444598489392794654357378051097667890904394261156487973992876515644854303116516277415357602775727450555783993734660003515059143704968550579007581979284003121782922503094705328855325724521600370638209729453154173313956588481663750048205931798070670025341757383979700688111483100627980087335315875897688718064824338113808684827676248022637924346370954861994520152807825527519224128868780673948287671688496889715263887731014436919404965976782121517764613938410362667398497896242822755075357537573870038943043098009433521604720974797743966601949237673512692930388260516893136653067317047507708595965131759318224724929599272492452317958740777063132653330906647869246168663712718286689843429783460847964552391195339617216912751618488615828921249501908747327412789557798223552107532665151729642918057640592850037648078740245455440613441739214573115285527612202857116007269700470368379937456046757885768845142271693947413683774995972347646057899010332838609056330052210595305259971872217677123586489785320861554308972211263770504021109952288822247811902824028388940405508785699122500095951851912615358041932126948299936250659915030334541446659989220130732315793621954406920398587400453543514085565916195243373208170219873596586902546865044221290029747959186328812813248401330247978984006793913025782211278501002554653663189047253355871605437761681077574464131653851508179266581624172451290430901014683614417907815296027841508667788652929308989350914928483556577841808707603417332147585073482760472267651036809338086926627459602260057691754566502253689154797658184654439719195486315273239434999273879436938495890215558253220800966420210444295561509659169109984052465031338594258606480506679042108287108119868884892073986529516588181388137243687734716224113084439315147506568914136635283577292692626974631726277675512991316008209141719256396928351538807359547902178310013356238048193684816327461604620506982966818923072079807517477606043743881409127515482509067593532891059648636414765658472818163368451368171145789542135410633906031096137968320679427272938099177180055647190698993751056670997517599898481384357043119486272915958567928088303788035156807329125021973500947614084506078719589698862878846548571402637853386985667461399945854636476455235016620325002805104050210827591977602730864409000978789646551716131508953224309766485568786910078888204817817977742762872550704909527965572659782672451811708721719943487310903001877141161200555695287308785733050119240565610735991917481872128946080010872635578208043551070178905617210520441720879316121736330615141035145550120793669739099422916962329498544762632153376523903468584992388075929371364696216438261321937119300465351902951886142553499417160169719177682792186890242261911884218461479903316219259545869798676829689132764627248937006261228439708670544992390886032470712707912599462911167545614412648862690634326281634867620259744464079415415565245170825753043072174199184804966890859410251550877282346983800601615822259712221003106658952003857206515122461083894697209532719638017041702394357285166243009612954989012548170859056969443949489533484375274959991332686164415376764354479197306137511347821127980013420486226626929759943969769797804396267236063412868391849528615456597680922023189014068652118624204977675539161049044098974509345030147427643073697151853181742059272016401804565502030383282591078485535707899161456624124099006728934383168441593752602879869021905198803645064516554746706767443396534826132344233845673863096612319061016635977101270754722279987296540642771181091351153626488637114821055009287858357693799439893373712801373552319905775339066650373785910356550367465251023457350250063132484548963904057123166346654632546694949875764873302927560323471415141608648748871261514388528014707897048868547257856642322090673162511560297978697893482187947879281787744725694057034325185536025473508307589897350408385966225105279150349980041856673530686539628851156926179791871109359495867020326532096933171556019702765345175747233728142256070055599106118566725303318094957882625400067588127057384233183069352076833787478006253092452550507603477929312062297818032742117493209274571189028326013710636577825051227437068824734484993200760264236978930228981086960511716944816121075063733464906838893968699498563703579377843896515817381151470496491193906237133599176582995698016601675245833023722419278449042799815796542799791433858382527825105413630363909686122949802424226900974403217896864813255850428017790214548279774095254588064575948097866592817535248672867204946153822199169222386601808340349310150553012063283499456808126673876336742675793559410298608620604278390786627173301130355558523284208259824871548382586726076696291382937344140675978382293942420575404049899256071011667936476597271737899654351116737150997461372856125444832571847222108298134373438577951882969233894941864466182052482265148576664430387926016085841957068139320764909670245275789825243553768157217117490065619807828503711041409382332204448748265431602059416177202206173018093111846110343377538115288959366529964644497204157719257946521242772459351691222233543097057831858564768625692761319835626051627342105511297727005650920698139913532420518921260123512100219098976118099824844435326483332471565108592485413243144714664879696553402899735551337829623861909463364746719982073126014497081731617836247391125632377322556607034669395057937369330039693444939679847487714064510117351749183196546564920323899425919859751003279767492098991710395625711332339222921895994128946228945056984450556630583161892115206266488944743979350329308890041571519057315700575907211540139329462054279750656889444923405009743193330662901098341535689776378405798965877796967304050317936993409453594745977250944506159600227298732849400904692482126309845651046686344780237622696117248179170055159064034738352930176074687633271876200369612841556532592728595826482229957841819305290005471527287225481450344281392594747607655039790765005241896252827468618825190976424854415321010740031779796718153326179003107059045340711840296210246640696457306226602389299297443552247508903101186210733099090693378666819507164512857988583999555930168477432053146018045671486336956880731579870571945408598132302565917907926446583536950613829228450744830803574748684594512369896443109089229571919032817636924893293476538339816850824498971459752896427881752482694486482730298884456610404065507750621004378637763068216113982165368111186284543013882575224923607370651468443495317869268239296642337766989403042797620212117312542037838832377910940415079185723270093851380534242177610327351177974530299457822166502975916175880912563761159782013179432693880458319457817470860723954747393879100992855638882512211061490049419940183334854216043919549259995843671345206969173358322769158305117810393491928904570650560900999704474560237136129689017056966894389614791784435795566937106469091752501287915439667821649862498413011873390752150698236523888538065770048070083094132911462053651134807756059488417544824359284227122168003282483033847241760046178350148189623396616322471117202991243844779272427593419299373116231531616413402403172492679110436331477527907124072651197054390744889420890813511457367507520476850958917032072779218521340757749363456962973133958571534658738383752625354619714048426350306117129193138553958321569690212456904767763764762179685757731026371557893241767103399837211902389076487265542538420210521818398492149135355552081609318262026139736358194868011072568360893407235606134987143419305515057498464939126212278942886061466700404233522030772387394076936179429253108496166582234516798429736478647633241338195072850175668754235733711943112378286562997234293768629845570491275026400771999708689317008434381730571478257603159914238849963158266786232304823633178000623119142014461397750250978039417208675908612027422391609785138898985212708213503050050793426951768302621157323291733784280152706312032816479097287729740517811149110779720741653436592616044400970803247979133419281109825143168164993786759069390329879353106445888769780773249825639958878649481628927509942751722940056913726625344739356963009086807507400283966762940137479946058991765445893767441430841629294938514268016980492256717563158248010485536367258337952144382293744259648529241714190825714758334553209360391064885471309460238413213882751119389452678605994160519694894473511455925023181771734958318194768757477124884211294406787091332710576608786663052677202259171498060241210074813609551796683269717718326390257133223834005631334781913559235619232696969676481434802486099420377645749315190753712859920449874360137675530046754290247356332338313722211855544201804521387407986268044747249971248970801250931058557618116273443098325114310151208025344622165304885711560873741141222865052247935639477222575872150477527081149648057638843251008670477291491445988580698995606275506143461395947328059640666926432856598020037116746880818964287787566491670133883950595790334039285361358579277526689519921165197290365797256566172381296906484222107128628710123461533306202438013837685147740193049998117111482655419328527575962170894607639025985471942051547088124897058109191978192381006219292513957059969395574973399319548975430848298974206817487720594612675668384680568145058303523180012539912457024835199861972552123668149365045889708174258397172655323728353619116488144480237344591287160805581301370194660345425212199203198276289949095787608443599189303478154310961833337449979990235951123426984701389659333040717349968766671054701622215444054985783981849817344637429243825099665873101045599645259880518931202744849696604371425045627368554432623802430011964660586048494420338750670159503192740381576114492130437394743842563564284539981404509810281386523612910168720192482838885977341729338373656794111990903819155970691425771405235635047465403456060914728986068455466432944208428069814823080412538227151475725241027298306088233384464636973249405740511284268353500351764265609101023905030209787433011441323132623418507203277506839682745816465975994031473508503412011186507109449140148719869500436245643749951382105098584300287428169914852372577364284720388142569705448229621141353683811967212055837880685432261529209624753935150906821179952698150020498885180945194801023939496104150251351380047745452859825619238962085300303172841206384310953952351620263883519039254874993784678263065780099690652730095797494653374094542070306572465223023186265823830443361598950315123895542962400871283333940778370667487055776565172916258887193375832161093843656384448471118873798774667648441578386055786717670757699510664190138475269798299819081761453649597378326511289547414230144877222801822814731785679848035086020129830346642563701397553750268032810684475721047504974159182366584295407199178581290657148987100374004637782232981733774564308606890593283717580076433661862730285790580146944030031994331131078012867511749028784583034178849125476940538106820953461072853553717309439241182609690137397429550307179784365723234671411677694979796638856925670265888854446072371225711704877809044187475086056749159693839208398169780772104532631980181516028320890269655259890030420714409996301870653602282004476440235842269014327525581074760111706405686305282865817475375451697238490432107763508758350135599928637892608087592557670576179111947601141021104611948376438076631025385007930673638448692986684861016461798752103183445603540328740125005788445568702987778566778788515091181602276926776657711225769040856851539770046401420304732908094948757478737941551226679407184285077121591450695618289896821327001138052193932272237128883248042443185787927792033779817382511143795559377009851271194974019639698631411415203392561970376831552879027034850212218481553149875197432685666491033725770081380514155646915780656878875804532908575051696334044329729685253108023821950277557525385748373994183406924158331669095110512375838301563205534192063931982875647158216374861535557754851058501313111536349466552846235296806749510247458825678245761345829384669805058132190491198203318321206210513748772438862105193576224892540188296850981262327391953258057294637698097876927993151816551471285954846419514723256408329263391701247418404795571520591953914202207133725683642575229447537310286720575603358181810404905531491351163182462602104193701728651578659847107914599770819834701354329623571437814363865439212837288410438991559428384700648988019044418390994346981105264808010446596197919880855151869963710137346682964906069116609129662236404948063285612034418799526595981874709144021852742856717459147196834596720859301364253223678444767341214372384833292915929291801703818582442364744933394882749742397355669841632334962133997273992659853803985314211041146561562632609682160777575468775410091189235641555941694399029194075386621273479605273415757387504199627374187843807677270780764597147006004763610586088285122172080841611953115917757228875680824836886513987089990555161417772921348352734841154268603259735276871221276029882213015708213918829797019971744932380298820231360116601325146933445309354310770860247872556560891057156581440180063651634241885874781652413310228919933883440645723955921351914806215806306396746420281351802019593325326171520898654166139525853340213498461992178198316717994250677100532115337041717699207587563357364731628086990404948646002505459919350952013682203855343027551965092830042488136423596811712173407351306828988438431389485312276936433894764017844163375914672326706484476084502416305123543388403049805029358366912802542993263560154227522917932850443003130673252842066549870158922109892403375002121572267377046208141868173332713495170810903716003299106193100592325845041462488737346946470865490461428266428875821540910804878651137215528907667843084161652381409834827542461700799426483118682940909218399677606947744085456776642871585796453400619196379757784667638319771161385002065743301394776749608999804511033807822890605181156096968507892947263150836667413938958424015168857759388872265379238683710391639675472663027318776618262831174528955107466850536039255336960436577573473408318591712709060078252935715037281756078329876709376373666338739372099226805529787324827966203250005256058577401887564406621063770398634570091201940092763865190957374743848980342245117243882640399782512713213975829208695474229476197359794898970892072430790719549239512920993502533281533548050588612694879999730155170619873628275618582137740014903681183444320242228881475177663381702095484711968752312524202847866591828078827806669323926244744630757582447369218986800216397196898986987229419055814667440097415156903150585013882726714066169748887189417932723940862194066797134230507558847657715976488796142863644091973841992821014633210376896961602570948196150941418231382391043156089751614785198901706286241334358774624048681145105059288771503994660122164397149766212265058012189871884182986163331449402609463415088867229213459985527442891246475317425318097905237420377823679610210938804150828467927530022546155455374758378483635127005935586796881208760358723428008123830263108543830072149243441258203004700901447029764043907885445232628115785873643289854044025782828901193283246447954603125086470090452815535179445660792532500388706821037563130232401244740531338072804165689506297092024949020517510821492267026017860909272819582284556975344042993252574335530301418351476637141557609189507285558785313336484118476255507259237307175638815800069885655329650050745147480882687071889174805335858925465000730285419459381028212933162437820865049572064116424282217958197999526543889262910586858879060341165637274721037660681018087795804101664986079305453372759655544167670758935943565694828842870127465568923258475432043532706031887272798775989020299294353582559480405863106490502117407654801107796168328075939504650945619688891208739157456055884719658417527892494288117464894920411865099740570147149134493484739417000506657930943674536389472182232581065529449323785644410290152201473787504427295675024128328128519679568313105073575290682353204330241689705369012002008452620149946138530182298847624161742220668928737858829844353409913546393761647550523339259568075119097710263053020989140632740656462635189383991521718120033269889539919198169228223903385668576477527795806080956521885526054891579510774475185198651572304366108703489767497201548186721162638194906057721047316210007407114145563109689390613440103835710144867812574755392868096349127476118248409400987117060465979905525891337133906301262966462241034786510440464687021113455112461513420706301516513908142643311709383289182503380950835449996605997007933896305361084446213114944887521465977207454689134127898125146145863614090706069551991522397368130178166013057622394916088825318511534247656049428507199401220065286188617834735038481280659533844899243936131320122008052260293680210711698618009015618004875386057057973252342027893335166328759297275281717964812962118054434667679361977214600259598120933995119286622153096449669213374956076671781024097525376090795343466277968075958843337276480344181509782958909450978098266215392030000250018117931856327560828861717895354579619243496686421201613626536154718998815427382679317295901394524982093344852608745497817296779579839393917611766406408957671723934830331099419265489097191026880050437130425425037239141502663720875577168239820130261791376102345918381109793483561375729168812081942763640210827191204664221263984624050362813375157198872901864913876600455679462410174992031701041297919070205423887946934601031086060996998090023636520824332418744255414107187657844687849486182579470177424987370065465578120042137357081301236519843215057882268889784277509416760048436320964911810684796312968283222087198206729789006614446309944616888843258724687678761332132268777938872780152551574865127606255093238095001486978512507953709432104807583465179291878648078586391520904065930966441347494005063754907863791489405842975946316061141602819727457244714238220207868426983808151077851287115723915767707111906968919878695435881852909681356629046057371218632334423756383078534777728160496478608050657395801490809427077622781265061456235992987547205784842083875199425360522327841108108998332984530531528946015535953637630328948025171367093569764343463081997837973790381956088728370047122978445665486456444201297485597425745656784025904203121754796013746564740734575654534575018907528385908530008620241793614113887752764435460724598845098157145989112232772058562394322473529613194586700756554056258776743183779719131640709457580491103054347885515632771540468936235504376664564368427626821644612759870547180762081637135113840807123281594353605488371510752487900143800893949263861472067222170929509798411720780279606297529998715512146917999807917052214372703511609469928999990726167343627321185399760011978786363968333005827534811658446361523280682341427687718230020539462937399742899907582577293750923073557684835326451000026684655400687614497580535668677064924017490942734177864744140782366133090227437976838612719246366023904849289171261485550936189238239590001742187293738627085524603235991098278169085338042174314873714605242908531158267617784615376089009983581052539484288870543460323457638173408515373538633165982208599539343809226101983579272906408053528026057089127263129763619257334226071452317014500519706064452490599962295764237466666030901933872162779814302703580638541963532409715255638852670064198127503335994179699006435838614353328879800157330698685362643450244509891442229822026270113031671211560502159989274310784884633405307665055787524100618030940821515320679067737752142397869158936530795587965406397289704485824909860072922133736332979470907141692815765894909307769867321266767805330487984632669493005329549894869580766172633321156305148365839960287643768897344061490968542753277973937176247134550003962254018840058553570850968538483088529921752349702730332366289126818057575202115469004956728285282645632225623311904773254380040590102521779625349009477611801825416729059805971329813523239080248162297099296072616554225639509011604923327822028921164306441254005039405724790772229039455478584409057110571870098786288598489499861442805800127996386054655055108036989349829254868011678456605931881656415660836527201112728851844712306815937324634309333921217304137201610926714682252450676837483227729819219005286302763220927572109622885435464146947170847394624230391447092737693686707320874048563296012482243589677869111887814145647277043256424801919229471921356182347213913456485843086102618450643492575847781581483428335702687371192736111437825019173866143644132411837971395123239288993400087720896280262726246041195114078464400875711706047276314587832376657374253503462831868261040766118772079135675228188297639097169342660570647565592954941684023148624757234416286535504363619886747928886293793066059122854408348961985311863029427044977392040053177040265173752139292395923341480520686589761529859966963579345510712672980482370356888630664398399241971481503954337507310273108530871136204358841894206796232067924268630334260221924177582567989082337885871607641322912735207179274607345578858402720197879103989200158845297786438192792910320708084758600622584065079668331532955595901661740711985969234460210540011097810781781562417034916830766263463970253312068329220120409238265894817329119567438819827505421568664832564221046810462962442701030824378402183370168819857306795400690809826115021760310337276746018095960661898137798315101037337738772305220029709815923642701768977755530704083943420887209091763981082017364991531331288052272111616100793225286391086720000631785056726393253853378598751194112476164239340497823458466750441190433793691129142770743016860287297893446057290196670180254650189566252448729008387101736708417878120148362451774702987239841017760364316467885520296042748529732597405252194754826473825986888218548997337025675375686430613726181526586524046945880495746693075828356736939882452650692762629256712252907070901175787295224060035075888936859188949020992247528666818386843338297237336890953287016414150102680341148548304064369138584583416927115374006772373402363096294146292703584368386939644051156370551275575346858766710270383930123205961342236589080921287207433339685100065756069480260290672350269746704790387835568060930595661436331351608951086144446455442146696319028984903569594165277785299057237740460130407807825856377922576886195643737527621031377949389652093697204082588822303720450079030668433536770117223186892830309373142523169498545195963767162855755463618167566677272122037767108046569995107744091565762011100366076058803532375152169668298072470826206364938039611913118543007868476049135964766880703360819899963522505529367155267911563698814286664520275126539644792230397472281753595898010669688361625095804329573177439630420171369188491151706870166890616762978938489110734900218096960268913749216377530530190757868382186120965816440537538094534165908067610114086486818073701231266603731281792393533094367461291216457499121130515680376533401498283757094339005168822861049063849401665916947634823953923817727226553875943192703736031553610963647744286364914330019781130527200853193857891832357499155992952896941295466634218921393413827235733483032008812124770536293435066744322533119091689148270406671716732056858536794926199649346361622965102153119410720099607364545631973624693270179469469259946970265367691650310342179839847119178252713826882751102590514621644137041070157434009790213230045376789881305283741497754801020287401468514171608870505521135342933448282993585470428273002762502776922563419315301547526292436458402153582337248276555453644930537447219256986923994052684988518509664184230181451910228087344625868329981333940729135784725741201008519176664714637613409210878329914963751943547704810721398935552017137239022182317444351084655406624323100816640606976571310785751923624211870758391987647813984155035025935188267712188381005968815005444007333310143515474582261608808439629936981782278711430449579358383171812559203485602300446739302202942415785549218693786097931237245013684646185795700846086423283427344456114836309537177103680526113925716921440394334342226628083626924310555324038634146889111151296127825394959480686722003693534896481529239529143519575990323663054460780531440713117802428518616331865531102114990910961535582096212405459481631719763210508630335801899475295564629501068880276237320809499446853150498123643202720091499754797271228488650762255940215380581908361702896980247809184436802366901313094352330641054519372306422312160399568265942154564839672139481247138794119140341895696805181375344124769418593308630432288204790062594871212961951764691578215645876334264434505847395796469158027406475729624793498085120075738940799979925381792514535784275838225553235397771411114132850067552533690248415418261663116871072826210527621988195271602813017667081886257653254264599177261011087651820392518971730713321015023184963503860641285030378968264960270400715990375693073266903719956299711545875128316336840254154843377575657165180529370811839427899542464070990283964297846969309041475909517228445813739590800258635638427679591737060059992344975554811390075083670228270240734185492634796400041058729961889513571623432136258308631362520311613091933790075340864979102223013399898709633535961261171343453826936481729020062035821164146713672328811745332278286839127657274030582707796660779019527777708593033952003619073781592257376625944319780134336361532049931523945996937205588983027628239017130291006541782714039671287068019793987514186450158626171658845437804240344323637431721541028805768494772128248496336468412949304124110725633700610574372396347380820582092607823712955000649013070064080203470459057432100505576981728774038362833757883055662625731105656469304616127076108560960108830345523816406668412615953978515227673423366939072049144780229945243461110392619573045342042985727848976583776254403505084079965777823979625623069327477404246762309608635711538365691148493920322198654856755356055836961002144493415405464914746143399948326567543408672667215530510728632582677754769265071500847244240914163894976242025421796757326059099615987205060582526095356714146382992891428798105654239663517457700321545095601981395905068774094321061219330839350531501592774536036631877410385304377468613334898558749925658955882302492596033148109956805960046931075164274824068797685599785184139658166907523900816109778584849477869817074863539851473253036167361349111308950231034236897763988284191410302955549192821351045048514667876385418765843875495100356795842774258973871554551328177608041227940537451532123260844356159636780078056906203151816598272769991857442199644104896489033188058491575082896996296885190441870859067628560651329809368042599580967269985394464691689155139060228376488986972632577796683952840832285239556953335352008415840521379061491402070658771954851596734003275336585369840827047184287391945989038904432529732215508614381904015086111830805946961056565484438712681304638194144105353412644788069729706655718715195351000780767340278545529182483361870598085285083522135358502982133881096303816216112298694560397157894381876335737938352636346750081592827042489276049603318177152885626791080950187285853244370875687393493455383125758652680945951525107947216119169039943766722948658694048153550665042810262448666317068212866713370270354651570151297183720274771103888409963998915860803403521296852329066751608582691230710502960146270871005226412771146378393773663244156896870242330925939839229769520531469058933946067025422947934833200437995544043247756173525589040443300043659384243394100463232505318236193827876397690062641612010524059211516156742440694670761746086654557190078379318573283782772466927444106732351009136985572824159027127025425228560036116898312361827590784605174565518829527620252706626249095933427536657281961269671333012569441778192319500200942055679650970312977248404936403454003446826219626488179371097072044623879541111456094252065783167217353064534727623188504382776979928798877748790893975280653434720238310244770808692228392031532156316355073857828751612343306065051668159966693343360895597190451938725435749269381997922682716520189591379371512772643304664218365698466680785484607364673476201173810582744299058527054547556015544960251401785240605853791500438531652064171921226467360960763168908384560932740406269155302429989342209933805948241101032147546332049225546560434499334116038180025842565800333366470092539807523477289569253184524724722207466976085171483721988710918628734145860130395872572798751701912710322144887716713436432300714822996775806670738417245054812471233257985285911595573780037997035621131299793922707785400886711530559084623073796305317823570841208982838733170017462513664956469297565351651926431659623767634561608060176436989099524986337546036230255726729195688087869813414634420798478450164392939465032987599247159954158134510399754619409452592169074933280181694306055414671212631581185363920519860863468216822837844173396875807344059548187386465609657623451842397494367853136703251180811473702554091405911816812614564604937098427734309448420666289941908815968581137187285983236350534356900214645774079036108979017760516037550842771066515322672869112257635006125971712199933261274505001934311875162919263425193191715816307318950129513052721352616243655627994186040419963003422518041732200019925688737373021865783796426034390153800416747955798023726897410927645196737287763485303383792117887644867960021601478465328227657663947183987505217094503667922939669423273116225045328174364668273862769080508654467322199628175629341697063020840535005570226328245665360640876930987399262470855760029693489572020298868409360319560976479983348835983180800360517487690851775101188766883357412095824100088309393527371892585328958988764428868373062499638461700841527863087269534058254085856247011679822372780913118131407071002509033983686413621427619685850753317682168094411475870550519928595889252120327808542331148830037642405230402109080056826612058796875300942988012257912760791322897437731218673584042043489323766357947249109963036798559641301394377252697182187747835275958695638103652486353178075342571503548675706949322576628941722450814746815127807644523671615178454150238964635070184321073185706706299496398323896467148137897873730551962932835238213776320863318796509002156584868022846042952440371257651403509386896818141819658117681528882781245651105332034641991729707398136295959095317734596667035871677619874283528754971363766611113251200462207866808515655783078167774697809704500602780833381555177204744877790253135706629932268242797905632398286247512920204099363193442661765818795671999210531207122571920431929408696803380212383409694740656666847479400238416997038012321484138556788368821960743288255922450625659705463563387783544823888318835356759912787085490697909918248986769433950152139457869640535242522230858409307211811433234577421536234141747885809569754566309370488142369210730900184366555817233555301367243585003225887852140180428157520191056381752577439275168610240534719409389272541579865624887814717449149380171219155409116849861644353390483181588726099590886896227637538033841673037409632162500644993459940663574390340941785866407215536032833796110816751736077312699808220528889553437640438345771105289280863365987467931107238150333965838025055862545460589720992502834349355466848025012324950956526920869444633304173499473159850369201342742758577484859429026319252369120735097462870491755092339499357350912035730486439548710918308797881993893881278835822651783929888354563196963030599743734097815109784684705562104469453312671464823992221713016696745496799410373927326581765393730516509583826197907452737124626279868644428715688363846649505940583515861117289863082334941229004158212557917813769004833287169108511487107331614284326133812300807082878063411977097402988989864325958971782623930932585936794607141147997641385958473449855338947666878394947390664317560925358922453285305449777565968747771724754872783186360622732889711747500226267538313129650458922904291395386688710025411447000732496766404184289220386587738819721189112140228930145259102139415107853850385002763661539952234436026707466252208445563710439299497054283352727504139745579712306785676259125439842707030528320877322192345164259727702891577348815838056533765607710798311324253525128828468066293105639856670560877525681819404687526582812774392640580831735327729472402582158187650035160319389345307190945062363758687324155534592360187945347479135151863603599504459512633361711841181734741880106392077438346865977867122150219296658934071942289625074560195685334089910086394398013757649934757669513134119444796974776665439913066694763616660183955556451705723432012664569596354181165355515939098987795244917775377921395925018064417630558956158735334156103657774872220043537495393774049335095477777820023360502881485636557437161512653691479569970208688766069244928908377208967207152590017565620740560630063319450383667155276459869442603488360685750536164373373240236397740822903955416765207874855195112099523725462146905975100886973868604150748174968057805866939485833456518476446365949937359727762673906918374605266260984568659665606669062925330433237001764771433537422673585726323942747049801027131680690633015300092605728227996148307955120063630546291702605485779892746494714100333347282732240567093099640188774940772828989621121723817661807204894361677546076035886634951573335975781112445500871359814996758350024917300409840762442271057799683037322957827842936707652771172061400300997089635387620805593805528648542787752717018563405644690776137472680689852503673582922424299440633042519537489243775893573753950595210369691411448554642320931487267407883043924968416125300394150397505665479621948627442778191908231169292152740002166971177421895930862271718045046101783703213998199933397366891022579327620124667834106939818349988751950598398440469602739725610014837093910181068263264104219340330910798880287586998483958053361207199980104583617934128178130001933883219015377447140804543797606161034644878656698326344732135633413090404818700685883171460282414519067923832181709834890127337004110667193659049655973346114907473600673611560757293448567862502369524930401547288396994827656377177877499340306107424804892393156621281686671278103755954676002713287455842260655787345234332530080903321122313321620662756931987807846036273595614176797004957636408164058975719199105373886872979086296491516538253505418369317216282439475666860192980708103249856813083425236912820464681803344364878909100458411276115824549962847448732412023811630303082742796708606828563287199869067698718717556116830720864216417495305079669289895330163692448470600829789045458386442813103852445410682585069011505479281758134755722302008658258964449576204061505928674119693294281862227666105021101437566848246622640690040595574356191105240136239571974124084754010355179285668396376715850310044085625847057914835633603571602353964927632699986441008932324967585726696558491224429400676334074975670794742573305954457242137581594667972915341576988106822627308444005146099373977060754032594943548831569173023655735978458427529202389490939160983431210213505937943416759092662856689603221829953813462989309210818779380819838800495423623543881069825225058758624146760393993222927448589047390390423420259282834026179046100190909885668205436309704522068836642749262837193841829933793101193598831777939579189854098262267760854948327238786286984664797314978095956963653406925377268227597331453539212138003486607226430049731183770040156620079097398228600098988692179272560823677282872422675006010021857381015043560892815436510786829097635446197160458816638655648383323878284143230367166229958052013331186702596327687208122811905954439777947153278651869425898035155627281483676940860848143345098958935487203747383625397688498579011842961565931011073321181820374462417361262582590307503537179632086649469107480599264260105016296291916674236633943863177039300803865129267732598831880461250272038153760700497023674499489757249478526476724934917637103800558039332903648576128269392697255614425311403927436631970655516471406566273824970515623285647791879015739722119719591610409230576134818359178692685107691751693600060161363949757979393948003972058363051543355992225199875830564690984091219020360741047410619342007310202821291453294215928386866142084098482279583236002290545865859878294709060737336132476370069331106247342980393595929382864443931690845237500163373396481545971797895320478918270987596635604537459318622939926379139036664034299416422198199650289168935630920950709761020675014765413802396106417222215588313111544419028944227512513569619000296993513868621547935366192600227099549177501335560956455428749611077518340661223036790055357798194686691552693034084313549679789981136050132204621511028198491361615141538730884301336208383145184608080208359020472448877352444344753237410834003441722721671753775814379749009155014936863582794098143172776165694581980986307018630933774407132538069953697581314864720616847760931152830616998460905232240288124013161722656176904401144789028648102753267145584904552144296936150883585806411432198867082882614152348623170174436958322745765770728558164780848513757530491118975533003927787504432204136484461946022297393159957479175726344557176304641601109841439550879610619998925267357264648191132320669574537892244922034271207577406081283347753028017676514079995969868542848574082924604843643429498645090684581764383864494367062825689447658290747977211655968507563284934521388142497544251389361018179969606512125346063448677335696088024074820473520437934096154495899386184973181327248333406547964744364429854046601372115495380333098812690692208577311743374962091399338391420433618517621387679378159077602614157251087204454009000173670631964973425064651985374256844774290759883424420351359886249250551959389562919952798940732814948393196416246153207994011951347127706102052351039035817868937743254093118835265266538952483085457418519891306272122913881981854603243253728589087823609273624665705790049895279568448826240140267710808900743202001702115620286264443166027920291190112864906185053239925645050888173657105163144202336628095764035238167573234905009850086153072698495114580004251090754793702037763324548208991617513110748775439320102327842929702655972885819334692627086399464140848042437288321233642841595189021472147808578382136558676506503125861294587429590014799217917483407555567815599297454228025811141760686980814177168798939161020351355454239633765752592190423837145137568908663559162685734730898697432590716783855684312418795721597619447511613068001573196447615281966465428978416533873864960938364152625925499639930554952035205581687314726254829832503193025502133779279864010910049348296707968283114164908371046311045100308393786820327514998576660712693724664981170318881217936673630794698394341565792157018546938141099338879994651600389788105246126280578030507777327830445712968926918773224895715788356208671417788695506180802919623354757202326279121578832279468257690661949317453611661215715944698102360720070819004646556598040634206614542427580567590909823486777251898601207024136794829759280472493216876332863680430141907163115517048102616711859469303860631833269604966660582981023447678167007262772316636894132242644617570360002532647948565455575249221069185875463214704862585028630367453229358902083376827604871133441626849091601804281723881920037378353953616657081525231843894910191621924476129492680782997059371139477528277572239972343897752768851978833240101600920191407346836427482295865105623351354476149300553473113490708186102106689031165006783728630417977298729266976049802798160997259029625907563034061282306270555725287386742725907193639253348679012550217866089657529163667085795344524935375604572170874100127620882970987292220904904320059685191311641633517764173360669778939833982539591390786774617142665245684655639906265140341375161203218296510677969068472844576960840152239414905543594996993545855236690573358439399102079358270994554694733098970975794173915742796363934542224630761216628054973909970648072539460966566554095715781737141086017317295651299114286964416541574431176810036141447282992214745896726657254666282186400030466623711109170686300128766102904018786545046796315324042707504968961728927616704994713158789869970440139271350235566690361263531810711667665580611825589627381582227880073529709627817731338421116455938830755458918117146438861420398229039432489950382875852971574694320908855870698800035946109259248560246172238701299460272596002034900627733077033049253945224028750246008929255420251731466638040407464536245566545862096654146669248003280943519456733476850099555320399811912091104984419137952339747281306953562679805796189064049058978311234058543270788250304736453623382830608194287350185010237945214941869398996132788350411667722507255824746986515237831838916901262787417188336900851249853390128457397170242387239276141597891788384128666107497015870025866320466153785335542917217747124011376117962160989583809361750209450522904304621995035069595062367202302357627839399527174496903438596433784071096705063163355476483360488898017203232428271391830483125354398314078656948659406943368816204642271130832220186992090000870241128152021989978795617865120513989214403988943106125430056752061581885133708493361441744556385569250572523765581703123430033367061950905440210635208976171892779158864975440727197141720535502044322074418562236469141216592789064436891385890249830829678440255123867878563663174329053817368305290850488452245245542294337250332553707781291895924752926177474181898512827293651607394018950452362208666886629896764004515416046623249708683040202558491243088842095843855864393933081472628430509162771328090305739944224824998547166590485630061699359266862116292004685646171683955448302053838266285339415340393817539920292766749704225896672073953150345655625764178260471534093883146021130804133679938155022711675651319136983980855315869943603396493889893576235046924490285183913911682183108261401043553791475561758906846133923852808371547472898464854023094688715941885420954603884402164390770183236917310527024390978327675971461641459125641161815218158180070828141678263761254722595980399155485147637111098013725854670868053534333636337636711334026542874204945335087020630192543389584860356708346277636866555792619714806671639616622051036881010984473516000175196512137811643344713030767729573774217089506967395699710355371367510370149356503384374485326161332137140399381261830737939825469568010628269673751418055208640409843025892279684377876057868799119150624352915825694731125488304310405959448728504437956504607354918282344883956673404001683051515597196848903053620514545184834430954616853175934743721071110575121055847869994598943812167896210105148914838233006239955729417841210638980772026339708096817303307401911569755324506462268866460126183522752925605487458571456096726563819391812684620166202647207729569640807344918749659141673950292133518279743954521593761231748118620921079497688869628949265536671190148955081637847158399243653035514571692690312599188884832622814855672568992493704920350906689461626099509945698501455430173751948401737025260220503474098167105820685833005761518645734043365135252677637956774791326009958285977728677156815571835041847747807154510065518171941343231753939601638509839601113759893954004421602245375996238212668280107932565662497094850081106646717796623485015190178156684914350158136898757266638417770974668823846961272879458503160771084046037730136052613823685453620529117006992469574419379898255928637965027689471224914637086196342891875392784906546770843380826134209061440884014129130365481553932110768935244025060030572129672625262789580163324016235799793735389066968485507579684150771608495489245433233863930251949071051417041057483445620885158947271320565528002931318312267862070041414887266548888760313451112902680102732005851895329669485987886214838368714179878854637061497058698314980004401196680206654299526458316557346919243250910473486805006671950976462324064216416908625359337248511364054332673759400799169399566421674917270544508579290759332730251038623864271526162316739037452357620919991616293222623621203610974611306468108809300788757672263633241427224459404646154368574064419721799849007059677891714763098649443429409606593697303817625924309753751748505906222553262007519998457244435694115990863304695095896540639054112429846273679083406740001476227628050013573765188861414365770383309364258927695087593432242471594692866717689307331732312418509811450938324390076314274012214560941661557251296863751827509928412219173124403803856770505434834152894162585583280194628909874241667736755669935216898712933479472220961778451847865433424166433593830935380997400676706494009710446669253094588022895721690786511472062572632434162826805953672468285100163876624413757916741900789293880942920930615595956966830809400856716717572411543962068642253434095772820779207359139679896352437146624233881556497531476472061320913037209053988598752820068120387487807639206956633244703630302428192950579708580634611223561638688922154038892801937302172768668877300799383249193399252072871446575399865237338384481496991909390416764901183758534029079088936471850600083415902820181829486147743306165978956357374956777807027169184087577448159620490001420318911501881168686707129096897351392445583964012839524642881302014491047110279505507203647715038716840063486534842202660268353849106944407615591268779642004139314514290637159044967558896317185832755702879517165118781205394983288986882787715939277170306189348480068979405291581769534345369049501645074529778659827775104021604780859234031220136996656867509312817635837526865334293165446924678517175752202196669965013635075257846815499223001006948590838368054586179478569762927503158310420933041178416460084433267619183941798509925660338119386688676350944017734002325883772321558632992193842144597428489259718825237872225278119452929649186636065590693655923329844755883547267678172296801211069124755597062862939719743914259123084123993379580543970778387825407682698066025954337668850308474387579195067502140642573251838754351125019325887111461444214314963974154680405791822879423220581867384071747508349642258184553540936207525778592267146485649149011083435504014210934858019570754917531536633834977585398073694055083347558298435696156626524209100003386316724160392468342931093570648478049586053891569326579845091568729415011953974746992348787467764437561410385307007531510096318604458158605200198470341388543859689604345926917907833851517342995720729621709208115194133078393374028215418510263895623108423203774413789965478103416568607980198365259821374730140776257021153972651979169278706250156292258218565877024190740320263326708158458934063101620308723287047737263918757616796284677780214520704902842073785546029849272508967477239515460341238656939686464411272795936312460355672826723498506300156183272275331565333308420146818088980835127523139235521290336904476438776619402086466776302035049316151955333494053027499980727215981847706567810457010275975104036732602001970424543674919912165973537792834985365616980597363287357834780682250060246163082848522154760379423745529690636784234097239226401745902079374076071754655648179318384751936484981656085366125049496491590663303864411304710337791860607801510899219629940683852613704999079833951593288952141176405729725589040275848184752715387783163352919641211260070584449324039049026081977299683072071700205942949164322885346713759342765111514793157860089025142130414852129277099801029384516224336330453122313537326073942963808017942901240625743863443961058294295479064997868118320296258045450190027321610328766718384920298566915210632601981257808955011370101479552076529596640204954778501753142672809438829539483199987285062623899619786046408881179635124255839788214865336586411507261600141605629767409728782335284158068612779475555497478534988794047068353922923476706101743777499787763869750608851266384167404443183063148791693936499976625900891266706820680572127235690180232717183620608203642773688954327324779284529150269240396799054611662261408813570898742347519060718974903797194300498035446587515732896392468590616494995819817505323513568031472669879035549888017865498956658420398619495455466656423953634432353856454591076109471763071132935405102093896447339476068753102257510696217547978428854024587061626309933905331518993656827487565705682860876088999249557907081159337915481045297869248481167377394430018140880979772636763287519876929660145334713446650431128927403287363397606080759045806730401610193657240356372155129873389179119530611887731653590803208973500912099006599837421233162633024634830694620028605976359891873453918517647262238973994640881473529881300390824069890232389882997710256706660524373640581900393253536574623628563898637143394805449649675520710672996254370474242465408650146273098344806921593617902953243501084689511477417215452518433589187057856093910898116839551533166346661675745605434361131638159048814261372491955562351783832711078662491886559817934727722379247821316957130327011599010243145943199017950765867071080684572513644468508412185956720147403227724568947929546152152156333296378578326106531483136033587604014434502901309387284261427410430160075280792389134442334240605231267221276691326367529284111592169863791860125314175852043668230463384703666908154657098578492782461133213103798071860368586720494799301682261034169269141898956511044841418344310629993599695099146846180677855957548724266705970306905022735749728280969945302345344990767465728082520601733025677256875337769854525997210134224969738430280096735429936406147843127477327999250057479137617328709429080012786774177401689007331179235059804845148679283297335277283812337178950417361927111322904395303457155753174361543135648275445177106741303822525919388042445546003603525109080801851633993008273219979167643975335711761520143366860826715591116311972431919329318496676601459942418565427170964058165463767503221140409415166340091077039957373059468335659226311070046445845600442841802156278344771252599865337848909976407148169769354983237202052943128974399910464589602460513438013012040434044620835786236111772695136314985064246326175466671384681406328464004840369356720667741641889418757030667129766638529443198633670059246447984372510520113644242537120884998610048999529043290316610038882975072215456729845465710926276588035952960600708659030971354274482832666197368809286799352092163934357998196028283747108790835767819714745629954709815797060586005783154553765952981005153110276246379107398955309052381143455985825073610110022618809194076226407118949809703432791373113951112453564743346158090636917662193044290377200495575748106756920705392770067668113096228848832605571909436579302794282931474463514508668000029537477842388056645449879539568390238306864559235002285074188095433141644619398001442669115801726797076557430930635152352921610382394871589380436757321984441207051629600989334244014232939433734013488264343510115535863840081511791503954434477765319651319544314731993670800267451608190099367196124840185359341963415194604121051252685802660811902441549550175492235148062248922234054574326331786345350226210262889826480014632678618288574793862226748758634510295387114875208514709186715250483983331677139621083962168733811507546743426015180831775086127013716691512991050333557711347570603054706228004488937210537465813510848287000745405023863395879108470322501260595343918182326368226713408140027251335933384767999003870211809439750957296319435911721075992202215421104589690127724451009578656036737150266207523443425241395978972860583492935591521342457412702157372944404343826129551862991668352994517951622833348346840028686238365079226678059886914569780689613306418525160653758949411989475095988734126658542072568319627649170232040167917119152638291052961036873502396953205629732767458629183987911945642133800167319304805879670316030696960772453120176426965464035543286505748458580597490614503818083897847538283985272336765543592873746659486752062027945500282010095848785956451760597675700554098484940558235268372834130751068755721259183635050238928529228584062267264670013211833055645304912036192240179417221697348007125604660292890902505545285249471287733037918658441529335029804851758664824880922919827583452171130146553051110702696604117626777886465661599745394636645072122563928767739548427988452043079910478415635204904007343431671587856142174662305393292348049179091894523124316909451383589637654436158613252820938455274169244660519152319580013399653603401304499082656985630068917477904363286534081555284814025874552241682620452192238769885589966745320433145035806750698874110274417600807279458234283378847634904762347585300096182955289330826767264000248354628798157313173814865533984445051829752884051072996079343774845214632741228803798969202039651103990496794861244366860552304754137924500422935570581191665636337442622433908490114351133763267136216622423821979243595909143968055711397761451345833504814238823619933022377101990792717503669119561244532664611008601962462593277777752611133481336314306621910448269278660613111917718541498923083628568852179833494086257667634719210105404090648093489347660530680874941723544590964107782332139733516075222751210811246077940682545715633092322001848260146312517278865815389898830988991458922557110014040742524711904390492318123203970492943230861533907012329221152423317058220404768450823386091975357756963234794688843843227341945405896915203261951818904640191037460624493080764752917011362264129257586030384301605553985459242384965236816556180178369562222808443216423002467579917924934299736238003006938593126825470989048692168137199418798020165190232683229801878642590996294364873560520537025322191103763049385784341381606720431271731556477103465715560980854085385934192276481089488744090243640635572054900273727285030538846171368014839200683449795176772152820998399957795618527465881312710136851464364364279918461130540995947799777827809778876298177957025729221198286075345449756788226170237560178972864451797934400221917443017665908927608317729403193017628179673915468111219350476159666096012835294985121746506775438707275224629828670666639781588326488269773831738489003523237589307509458840674263500125302508739954478281476828707035160881815502053206365538276479330391747359640566153997173428814015707807205336584751070621875310139543982976351784704739941529623313517051432251747425499211535341829087707334833795883502615968680167700908133823469223216794560936528647473566035144788653042667681846251130563612304939068340415156492365772276521397732067451383894811445747543816567578299836911524029550538135747943175389840008507721546587337546328395909909645671144616722416925281664872409497943336848671603768079887258354353738205063987984115361413052170046592428410094263586358076576719292193091863270853570051750510494815448066173402943412257976702209999839524681137754000456098654357937346307892800651827735275066982824834663099850305227530640158486505694458693060974961610959840633971014441281719029315124115048855173052282353200353481297730047600712719514233617254979747786597696134564124989170819783369437904120776479283378823752429277337698876373616213412167825384573740463324975440989952298681046825113558364560621362171943903409147347480373516331081007091507359418976224707308377942112428460348744299085423995520118723023733657274245466272832045284980004811244469594448202292887466179197318411082716681397537151857570168103814728534544332012458785788872323504840383326251044260345175888546238742575894530582681592634576199832872449081382577235512386115359880439865817513917663977377440333145277996665324947605345188976030849432803424804728826930391474517599009849497516767549914810167689670666498155106968111756364761362884326907854758078059301266090355342359620458435493575163069542317970243979371412982877068336525242015301136048145196572365094870846910547516760577231793073844825887107749872153437316030942067375596084995371270475711571863582605282840033204129020172147045263403913102217862313910688556662805870542938355293811609001045699771650757025955108979965817985805887337866810321273498329540722753570454271482662363489357039604157622616970908972256295089254127736631753521665567825172917684448743961890398673045103882244882912817340496895200923557627181859386162320536194735521724786722189794364129959402733302849764603824243739742891245394727608170728211073591187815093025371032184977144253177593847665945639436815250392762713554404904332508617229610980031066837589987533397679502711363389659074847362814463614750284125045697568647800114696016249288819069278458158943321810677611299430705296074697780388337915019591601931836573160167739755031811089591952325067226656088251449363574921272276942743251218510538110406482352424189769342358318326269706708452405694005308004396146076628918043850428581254819223909312677434786904591962485403031617953929418502486215365268592334918392976969218901166199971789359087063384251407515800765220587625517610648868262716924898618629746251961207612039049187680201424486872225257850818590490637652602206618260729698050697071555546975646424278470141283577322588800295326215907304588074296607043575668342748608883659052744933205323032176319431650495516900819102943678760162666041216544593795785302698916517726451341372004777432432413508927423438745771312228549517180008763220919838352922073330442123650908162644874249390385191403762161586311220191780847742019572185779377294543325641662540637224263282461924236632008200710016786699253810506657428392178674405080086235520755782520778563236795554393265569138838076075009835800224268628013372871880537581593843642170510782340920977253341114789884539412927865752109954076639650180364402841418643758334405985879019706999320421022435147854172662458541468737777952513055248622411415551541406620786010366907867828358783549066111734687408223354395890814640295522619203133858214746052306257096797284347510560451606498942785513643268236667003497789043378093584720410651565014738421769707384704614587672196842814818781958192507500565311828330170301870329090496766757139712233544176672943715171224088531567669557701506783162852380179465485867135869590649157814507724046402224522869285396479365890750452666678317705392231743284436300458490800230798611185450977940643220213643097973843672132978687605202363487673384761600628796887397067274824976701478217878187665143216000314861162566139181089713404508044489588663080185666330198401830574278233597399620415338790639205590977784297377303354205342290429384975361613463764636851236281141547768141797933374121344314693522637317542361907496274486488008575562660875963629606567731756963100871122168416273562920850806543372574796149556696286446459422941560896936970682401044578064063130589838490671778648620762117653811837174536615359434956667672970057021262520606207792095368753395601392766361547278973801193967124054072749567978474430423354085186455444582936218084396314255037128392163048556948091937371966340459288267182153540688035420526916935328486487412842689724837536765983562517424987136642198513728925760992292284282411289509867337259154956071120818815502874811451951312002459674732192552405395429184434888891752978641136505012421244041013156917835063334138688951350486466883828973259957312869898192289564631804145604324950410041180620260824675923443045700420649730014210752454572583278665269138657094867969809134739295208611101490038616145822252295951096714070263695823029936334648567214601613030136443929243907711461683016466402218594016185825075572223337265355341306392847075313211342142304928913049501242138619806145273531138221187300643294664920580316798291716500186722478195308152269703922021848829250785978653435355176329260960399062660074374379912569807822326729279208276015364264834569478420102618195052238249472542605388751330690492952549174044767317800014455756276989339570993817712320432639310495121525888099011994109883070189493328149392914277043628939135974304147237476433378376086299051871353232638226742870442330280741933055378253433833569243711085216429512991768582730176455641649769088795024082669642994570098153508496376189039555534863226794946332008638254916703238358572519424065573578508460094916870172884528218073031695489070341965143547272927995562150161369371868863865086614954003969902820065419700651284750271691393728922741033389639580542473249797739583398060101385217005723486162235819253229435040820286988869362115796011880544045679667587442093212538591033947200597644324137758135459102252208900633992200658984259462611238406797896258833440218928985744008249519049728019307751408328866954335566977236043580520661267792383746982345685627471289789008263017217385766076845065796273641949961846996580026011068808465937902649089723335589976906760715247445145667760362409236112599539460126669302202054133213667361412756059697226226130589094834681587142818322601211001736944920074785122736670975820463178338620160359887931141751921528302031948702685923844860147205266138938886055997252023716564354659607791511406984281600860504861243919402589256067189629392992872589285763744811798945516274589873138192737661723790341334732064831326523226331610858230871648642927093767673366229478518372737870128459205147158541469171595184332580078983530843885780966650296759233760919678399675768169940600788407114437730125374935136055003283290511573742120324706784757317091860272654808485161063537012836315160675217188681198498607547884303253347568260272852485916625088895516595863030322524465212493900840211945825694350790273860626515364032347155107367494494576009900323805535262900302733215563843793374333811404923443279745846482669261230600575824661522161555058531130636184445548097821523634295378111303737739330139121838393472161863162513827177900479168472325242428335566662400495801546051268127309351720870163835578732698365624938227857227782184696967560898798842179456939725680537108435302502986449270027729812557189997145378192613230228523136237156325293708544845740548279721315435663258902075701393831806798946691296330418590136608035033190190059161021218525950801685849981004868925056029358972854513739544999622041628749929049250148719184090951924674682752237360226881229734717202438168647171152551465466025170938015579648220950402377919049210362423439586246873982508451099040571591332340338415040824118327271162380815529942624448541646850217363215877082085757808655130855053648021689769647133769334556406692001205844137135568365473745539688422234635394961399615160336798250673949193251918912688574454402752760645201387970964671953478836995915606809620947172868353057021415991540124134373787040217635125092817444771647937774195457029162594864909864070635694760204194131662500454218024265033343368755811050620867172085280419042206207570329196932950464881466328970832648827190823839864694965852886783144356979188366026174310703493918527567555151385147301114171967146870690133038837946686560567889213434208464515162347333741668290648727538837852455577198570451281839487537691631819737974951052727592357956320992698888230572846981659745540070833490196609235410656031228061273159877521248200139715258362324530215090718787978963383819113139098309369620863184860146519140995876000227157098390554308371714556029240542434010657975980169446677892779992632827697352015419971553684197401564771869123722728864885461002360305086379128364922021053822922597590583782054273631927967958891041648947963760995220727141160037036719822916797970343403921396888478042081180705353095322817062514843964124639009051987529841250835883329410049983818908683751885178729007110587551465451564174589428254851107791969339807277279790670024513133074761812856052008500625821416221685010762778089212369722780785833086840306042951827955843204445445735714183117067763846139707014808743078994824248086451374868555214424260068027052186194567444939906416009762381799254527584381598988262362539600868843565074239533529731509785497611665184416429999451844235493563600785069223391809212197471703037853993980065823229794395059707557630597040195061796701324924320149655503198152094900229278799370298591181132103861246911810609999607675759162005903405880378413104341986585229234316178337889428781702922617563256561120853629409723762709630837250180379187749094199737459609244301701276376428556703784513472568667200498492455214502253197806448086551560965629698196730804720399431951034263171183653027545919351462695387746663140871356818262935144399063121226635106033820814464247483232799538397838192151857781878636652660844936642134567764989208066504613853953414541956247377450134783883132314998130747467127522293172171406117724335609102507572090733542635083870249743970085924903732870340525668535516754152382977046751045826554100291599971962365072419930838163906935565371562929446158186726302551966980921101949616045223994358071852679870711625767027034145094708167002572786350651228735529848549026275603619578150923381773766400945090812879935139093137324871229742383355286214541274862666094808080816052497835049326624668540484312028917004353733542752239674102861713642204181454334837127818043871430827118190326124876141091740753925766775470037922264856702978724745825409704732834640537593146504717800747176524156440133266881763482982776808090717763258669184912980721757385599748665356275216993863138519118460979744596089401882401113651278905042867519324771138136236521591043756294828982672337698767188410987761953088560850334464536879227538238982205005864298007350748100897529462949505306087204327619529100255954112044199302846699715281209121557294415218718871069297272252685880336716682244795710769815246665677582897716700098097943593493177440754894187091860969373130118075899241382784977433651271375767327128996678986704170510878437837704126522206748905029862994651818307566540689959838641294633937812425555766149038677469450917423358692260339404122571148579079626499216536754426950783751163609508468304097733221797497990244067017239569044075609784135113977169833072754812231439196745321506591084826547463417868147799984777157547517892861782991268874760459155833953977685878592238637281766412986606735830713414641122627676139403425985840994083925318513589382398752926290462929828874925396580466789182124857569204284415591767868146013015793581062766292040199157568133156826450404086343833692219256993025437569282186794279442410668424992438886393382004058007025292200651424650678878152112692531342975169156269266049434781298751501225885717038805824592558573716986203803902588877526644339819848188117958381103795119426654516178355179087859361751199436285385708074705661331466615881756660872644223978112136057683055944354033666755838785985283015740031687855052971138164405698013474733196032284653001232605140670400620708575976698159957849880747075126519197668429439209438412173020690539079619173250987082058812180569275242167499865307589940515773997452724801388103564601575402396315798570024948250729854216654371453501727136248135049313520901151544062701453445202199678540852367478101153034561689556253996562936880381299085915407224349913388185198578179782532305306924856111657642701438676703541233546562639685097695004114494507615668609930581605749084827769000047124505515759668400092235387505266367499605675437615223922797608663629203038990878558124038314121904443585708003800990355101645751216137822200682762163387772023367062494253418256066328533743998852250205524454895031804643197054912568237118732149113461218619048020338985531871107558334954774613764027481030926130980721763957332991934898137029107472593008944921349320937279746783347045741374346614839348129045441221836277824787667101192117355950781011820620297815097865234972737459111048991726892966763373983543741654196958121611125641419186309656466242516971896316222357549683078325894775031560814958670524538352806475348217774549393336141468581212008525509210285609546323390650271200452249704680652705207098106890118973385312500404991113081858387118868403485538878625509043418866031631613360805774464366909411510081885921076313143424409042207965027139693587335348847325197716297987025734640007687828788973239586785205924286678424136457003042799811731343003878729478891997696082939080235509496082830261861077729407237538508981775647929606627108292095204562340178679052073372457024102981056340110008728166513981997051389997239716049995826825889781427452077463324565451222380760245326479501302664232245005185211562925783756035134654743347406690630882170386248994585751721465744749269864771153702460394575153829418871050872801811337019263178927347997927529843307676825442130555926015390709385842671850652973232978967778145210363057250264912713240294325648413346925751290475297203854806447143368638143884734539533361499319249361475921172674057188553276801155623600860314901979122041212599687809819521075952295386933918885739034452792478719888676041960845668687702310950384487836226687677120109025460195140239264195848357958426039627066080183011014883366463605099691633260155068136948239233696009214452953852290655637924437565858676849425164777585883784264629129527867282178828599283282188651650396329468880638899788092323975003048326884903245726089399685327351151011574650463017856735506230286106224155306209893155025116095035610214382676089777013596467086105789756927643373697981189621932410975250599663695585147717943333827734992038560901179507259660267900524339076727189553866987374730698838964675590578395275459427131717542516529518223275992575431333494981812745776516591340211468047969500532088008176176008645748457717324967213713424159765482184127159721478675897605918311191782003825531721540797658470979271388248075961147294907886579571448683599104347619190641039096252317763062187525856731668709182076459242966556698084544758058503793817231871103233474853363699630652847363274422551346681787537530028682276720973682524156906323127932726247199152289465763515318448656290667349351501642593404773539535307827922972930889634515966112415045675550622560078694137588375197019246067504099724441968942764263985169144344665932052317690671480719952635369540744712063409255546950219239013698184257674802525823326096824016297718790765127380173310285907306525340622171067131422202495558837990454685062878215505948735464631489375656282821499985016283895313825389885317060978237639619696179848169382419731423080809793917225379162712273531222668539735840520030421926872918280366033451588186146249923625771254416146843303844576598929116623112082384987815416789210743457332972793993613897724941782019353549895817822533298770455815325746387146161228311387431849121745276001626111060342196470716469211308916006539308184400196354712268476307792152685641359037009208201714029401765372954727938111995826735233769879594756984735664693367754863937464859000984803599271881221829454776022336082538316690742019392786631102027316499147885420391349092020350096669947320932486464987976303591405631976734042745223579801002736854591083023733046379434468878841984387868536032009331664196861758699173991326719927383286078190141231542899284280716513398741589343970806757154432784839609194456457531573870279218386304234130936660047429522461309741384435331048935161122248765611591813748054567918321468740585077225955709604288084509159197109957446833527255357429548483958758289898354174904254240785678282092897651487617966266511001517680699088525041904314855641254683313117988870766971802359022373473071111776839580912727943474809651619931803914449044107132505535551884870525469463991405972007361526886803319307271555155604400869925540063966544132540571882459705483469856525524424044257175844604363610718617241353037055978619083968735591900514905710020184364526670390851397921461651613928765248691498639865833306243650892984839419280650330662470949412620454633981394216228005205806773703699535473153075830096485352392472802499219056260663485705636448953643611948341575255155606950693290244282207396939076367559322409854761910341366887188189828807255557976249666825978330054127554102715579100460757174326265243115343961767362320882391800153391990551942974373241787923498110864389641878312227001332941270026984523341679925169632957700414112077500719543760359656713334579848059885879578623534072868252961956395543484217519570346473008349059438716422070360292739965744640896889902590861020274644356405683728353732630428165383978245804252547982433038493728536685671791811954349637187644472859936641647259919152663349106492258238928815442813535842104405705168415845253301946175651747016546087652706508174173108331004677278613292356156162557856450560100822722851770518933300036543369409990673184055674131764304403035912465185159117135228274106606474376726508005715367085834588092182497531994705248622708980617021508393265716806959695837279985848760409239631928559396400672569431111264241114286149682761965466981967925803634272076151017459962723916474161886804972213315008112403170019420250691067400120762397186759796000495822991450355442945523344199600602413719667576828795721256290344119363986535678604992139496605868897823613989290413259677290003499905084989909572937434688625864680200903547150263914772466796302097316919263553006166180519778280665483159932009723053269597169494236355051524595031996407455660027689275478235310695628755230007668379695505694201255886607071636711159066364222113772288285140753357798869008719649643364712918225020486589743891354372038443692344499647334892877178217301039395878471423332649181826833292878850452255597556759326630516764111653451370414119812764608330688355249939061453796133128212420435112661277403916358934984545462168271509062496650236262693732922781756399740870998550104401248057129192281911038222615233746160313573783987611272154277023765010090805020951760529956272283529381335320234327893386939164134878918707341714530663162629299986595156083453062508734392692748507840009041998741270065110871421180957808789570883368292915484215631369438285999780945522410762663577714124040201023762242236987596124527042410652163407177703815838378416647056333444346660334707970084962903765189070229771682457777150752958739108601947639325122906151732215849249707411675473064440216650566058897082722845785215338624554632525492066238469423328465359990003046943055635542244407014282306632025555710554977912135564401628260016322006332603062888214118822591301245333617096974875157352517425267697195070259592318926913179958272966413762457187336862310658033590907724878891663233737587038363495342706703503412022019150997098920203234373258401042983419310255781324665886635117834537210047067496767045115426319844580347955757455553406034560822880578920757432224130498929612694145693617708395953559137165618967849127909078298838225473839298859607082431102283188612952470563974099303644831817161094406801351213427097318330147135087696769302596111915312226043040304448043606996238918351263345759678667235097467462473605860808094304647001849136480377301619853772658926925405075623525654807829490716233629469358811796180833022571330559490043066557084188946004073331848913008669219003276665707114494547260124775745055943201797452593484853204600062444062077416454817883068150832712505551536974737535362703354458689454463334565834415613994711775954196664584884634333537002996261994012560473190621284087542529388393542213003545259799774167017211186946462289516303962026846990126466525548887153112597744348574154928391914415498412810151105419394141804643577429578752746594819013230354547173467623480535189751020203534700522828749752049766287712692490150583475750104149851221985909828392597645123848845627416692143422309422878346775503289263540902323840390812359016681345982543875664639865440935093136164345660227845706118560552985080763355009184574995888988035629568198386019162791224057437210447200455233734357291722123960450438837295376916220005657939798169736799604576507363505931737209912300011229362530178474460611198115378244214819536907152216610845619379295919346093369458392221367939449958796908575549164270998754359319505025967339074930977606970414222530574173852476799162340414460601428458006200000415701923514161682920203085496915855486583134132895344062814066931866845750521030255850970067994860679051898686250949356072998607281603573343668893800904115820459640687696211320333323222616990774162002286550002578445222438298597522380322870782862452358643047921159347496105320874227187941342376093704567963157056734997573788861522919907467691741126140013843704533338200086383797416829019613925540133370482067332962761133618248135162403641792729870607832042808442589761673303890092742933331696254607689834690469984255820723018478350447842902973982897302393358504254922157694062450351777046396422610971341169931927333167866738106628554057104673424719162417480452975524880717111749511323766147500635968770024410623923904905665247820449053772890884647140479123823250542859011092010948039397705802139309970889914233177351873343534490247877769478103353917973382296473790626276863310047051479874565184988936106726326019341131904794562320569486514804442752303082506985384139806149588988256433630677666310022249861461179021891593991216533681470409634866203619346325999045719189416303811731049655965548224977522706670296370271370136512622477484126026227102251682696300495206210375435680798599613712829147413974088424682957625766597867952409073188529803856836836660123940408096719136046456682784218586738107493827823554028939134778242196099388906657017156965236327337997812361772239148743066350041412388755226854837075844105835517556758640318397250525070207717952111376631889412668470668969228462792718607950942533094404861473679029242149430249851081076313509811934130713520813412961088811959947157313788701968009448741949856547966533058521707551265496227316361489746513103636674372761519012581424823681889615067596701348503213044955476926075402866090507035319808727862890314016387880934711663843710533043621756551736977775427248181971965781060865662991304669927670185035913444921102863979452792406958230182105318543954773752529686328615841907511888435877552695293524911654231728763340206579894995667241866969929625580644005531794753465699288474235767327789699956056076426333961480014688959327522386086625806475158392283864526556323578925409466315957945980798409707280943562902975763141609858362070734702367761910496310729538586451658591954053312398814619615232006584117456481953600077843896748103308123967516439931616027435842302706402113912224100911851481098338600355771875848778414047240847329129242146577419978778780712995371898625867737476551551179230619714092338111400503689837830329264756011805223082187203661584996830275407957066208888289878999195342459111612548274027273591900872112309925084249659882897675491777358668618793625510757588213814142987895616800088123009948092809197384483912308906803323376351809299012596896968742224626793486857312680237155476016759149731557398984229541697919673844688011345971879905413259789975203280887759715241886346710651213909367065516472622489738443588839095767542739573042720020925631933929884237188397891776791161347032464217668467342157752117993030199995709392067324027486039218712870379554161519007740591661616353897218715234189085507435900852620535538877451678310813090982031356784253198216577798371815001737211128412039227188799907103166356145062459359254035392573517693692813937726655857977739601857998631291423564460370277367377167518718755639248997181778714026541413458701886868438190028313871929456949977587697416677509692251219953397656011529508361857075092627280143546542359610533117329217685071502071134121749804755853374027494546563229098622187830461633241380504411801993166779462898976796481285600421465384660985418948148959635156035756511135885775711577083754762775409992321430854962564531880054730178294009336209182209556271332570201109985487467883733741604485829528115715599757972542005491688173097210212273399503090117936880245685430549365590850774310037371253822560403063056326862285475181433330976325082696773970744789267394173377230050344379327751028216274048444223853696468619364208229152044831712827914436604891735775173815935263415271349553087708588305138081716606756904149585750905226581087252424290405250383072649004939490038339715797568964603923545560162417433242032257302468185087755179139359699429327535902936705797790062352347792242475112703822097180353281362387045261434435479575204527785484038708816425038058621674546932769653710031656808218601325065336687224477621864255561707592964990716286583987414913760933870592554218092173152043292039197409517633815254660546820797306492359735575421229142727810793829953861496183914489393347043922009302542452321178934307485544772036934068914077975116119377018605594515005982938268919007685921107910879272826462251386903366524697849623449215717574342392760367079906989448219291364543478367288393839592032504010980144535274321467868333751422134936246041940035606611319322225243848031344811829465764959242794012214370258814670032488091135722020837951466279131648805868789992604091407864260203507967306273495743907629693640158682655833689364370662231823034107013212999958413520504841850698817447670200230881278880916292311807006922511188601153392523435148632850678299887972767261331855996433838030696906948688346005869950796868341530699412264045614473635273734301286468407041908593858290344081436308240315729408868086826028806435091410291078051159248848118882384301801657109482859068218055815133047556255559734040306984743895774839488253355616706292987452973570680594257935104670824694681370718746771847240247833503018971633821466046675040493472998715086380195661188489443610857528225159440644701338347379938356268429862738723063826571049203925121167056073565633138773322187331063902424268584414913603158265258575568499518172794804635961056992138170659263904246652254133897252540053541022173996887134000639869440789177904763587485879739874918472811957290095909784339245696240062387143090966699327749895590807306417656222376694443679467288585743257125347286318070707045956482853526775334226189254579410357935372283900558553026541029660567608357192505925613298510905127233368812067916542480625508389878692796344340554359700891744025942804890325533651989034614638845591042352393232463373433716710401310178669558654081394086920055567502102698918255499362428543387863593151891645701920017878729835438332659232929051123795837958515377654033239263415421444677682627464698011960165352958488927227209789249011192949270711091684011177983739709477147021907610028507088596583325795330015742544552932088215247817372197872347125946726819908990641240858145934882146888878406988861524767100490843776569767339742469930549960342486297013362055987507738827163195079980835117020693188662366160004878759912334767557115648353774254048047453594293822910440076650567710669622558561411231371448016182833445459240970696337199479877511365032498923467075903339432353120993969291850786020343734675977204549362286458515777483233243486818547439558901189264811279557862887581089787238301743489020344532244094027673833083634804679712880953692743129840574327225240356061347741037424731070304238438175021104849315839846152463084376915685442644044827170315004598774948205857971483285042517402232825892861580950647513024285055269446436141714245903766157902687214863345845947647884176018806670284030549167980225255735072196934601581868220457452193885802753423347417072490569147752494793980883407051978979277820506033403874065428584984381653229988838491026862896719972199337323940608080408816115285359490050702388392731046539265056016369351312963451613175184346602321151355184408519699244795077920039093103612824706097893673468382381472205766937308421745356644542878495735855881313705976525742409574770151696466954855068712469772020276186400492428142224748646931917858047462077400617218267675988279459594472694682754039464633125363411942165162147371608902497106733938071412999702758761544766933244525801631662518700488336206494326552317949470946922686345146060714951618043109875824089193662262106122284283320305289298848046370368877510647856879640749646270948580890981239927470029422183926441592373205001551171071278161029895268074145905193334551445537409440032546651815514727165428329136501659314667916625005977855033321805851699134291315976951548749040111280921408431524402652079210466872112438102562093786153337213477581069112227131174820204665998746214936355893058377111351057613713628322088420036695519158866099346305418554427989995968893937153230606310527633158655251124428524699038161065085225541433611641553112717141200971119472621651015202496175807933473965052344564011714544991814339662790514181673776092760278683864466501881504491764553577922871389724688417592183035493951927661151536446514715667185129735533168352638713003350340956888641170388889219831904529288995223362797001570599007160806763308372493540324224256066982992414121372029467848194101392495252928439708437943366052966921057008033783587658331288598849146539812194488414778471092037900570566127134817375000535940246271226005967527612527499544068155087871671989241056609228824285619188808645452284092795486062610299495108081352656987979730589290567842373148343325678869953984030401794435575914028599749460150567827021494959960038362843901081287191877380043510814205808771035585986456662301160485932811855549586599394040137316208364417114583762733311456856727528697926333787756960137200501870868560553302885037417223411989902493938548660148955465048461567205084005489160681594554339177437498658703210030365423374335392908598211785776134602481346645412562517110337934344007105030636183657364911070899203981646456310229771718481349962991470545916060180896005001200612221955042718500759611355102202339476617698796517618262873368218709031990684913323547514981792436351461548340335164546256601901818520010141776241634573554895059230859001999324029497433640160094790349214776826371587718060392741495492819954690610759896542446579024834054016112830443386526353731268970988017348391563809974584246139997385052048019226235736337898287898743526964320148894282415625867370905315992556834537554086460378646621771207879713619107661556766048942361276354305961645888317764769654259144362963912802937292927346063842518225560422677866943940992250147201335251772295475001900042334675005282531397350059786669325814638881473771606248689221352467282050297992266029064958847472114329924894645954053325414694523278412347885167179769010303975776733759372272628622263841641282828111572482478935894072881018567547175857867507280761696240083564470749139999001912651557380122662405813310176985653399883023266935328887126384506842666110416088134453742607162597402226931326369973558642711008347609878392636115937107580366905587245899727486683884953653016128799171433906090230140270863445194392452268729105787184943565213871968796908950722970221669259936942753502812638471427809880220272865417448254885133965894671724458663191768382380707386312626675136164082608650675045680140714084462457168651121886744809049851136597981960978648263758651143372331407848582565996976822530343970673426679158731387110685833641351640202551855528730103163959758127319304933887276541181528396411699648184797280402590455702058019041486483467397765047295962074085626832671387674281236178112897651339079410031475228094189989379532593362745252710692432541204914897299205023227878385960110925926395988981056840205706777489563950049212363404991528982151019774125838493009294977436377728609728989736083868286426068326724180277657457484197022407679696513927066755847275934598390429270362067030422362455537061242708600365492906090636792520399313694837454680594155492683711419746049225829100511778971921444686931489086856552145416246886229878551223735459070331819910465737733918268784695601320554544492845815456920410227122298835838742449961397074819933082121829833283415165265018449427973899578130784952862387179607335864608749985470976998007302107291022383217163751096112038305342274338064973501643283859000481622531200093785687841379860021523157844060892851387430069866462561880245385636843698247674159377833936416032280261295952720721985540194217356958253538954856456428401455800527147738488072309217896979139859072724014481526965636066399356262396939740565055770711229649056410848745136814640821209672870188043492163255248940700610501426298112693815310579647056922158213105115234001035859654427693386081148975259986131903670336278815941666049529644562465593584923797800241243595501895225691585783184001230061748965449626032253347335310649589472005832615155497523634076991649034280604344588671508386675018862150139508696373264369756177361924430874520149033060656682049691288302665061269814923395609649337310704360388427719179500693436905710868372914502366796170664639579907997538722017189860570927189493086934394040877185016550052042163771522884833910751008555540368317746695048163449242436250525505010156127375394446687988755466588482425874518852950892082172872982023791150554014136694804286445024791016521473564508621033820089180845836809317019847415318252409545099905055593951231000847589364567773222439184656335235430643219540112766785618557886694969020460217394241870576113483361871275313683803887966986154694406187534037717640343832597772813233094218515720971277738675720477163038241261221937269435370465035636491909658820743234300953785741819422510032350595963082562320356997668287290953273473324086310533198746660543437158020175671538550898962983258719211934014566149186890362815379230129730666355295983419480815186679303200522341989414993410122854925287991526486039403256569644102857055820756738513400198224381234775227377195175415666083078858561983733155869121492740437525064313305495255526818320099885771218925489217266019320503399594228756537887620691395644696415935730097239547077831005706483595024227488603099054456512115866736257717648254730257496265922176420678679114993309315584972525729751118891199267831860812615480379772755099307140357312369001669415848049439828005942970573408796517824161815417037025784955388219357388652251272597918405519546826225902175838747396581618730368088589274710522603511173048248528404009775693017681917887109313992578517796056489390882535896449209125373393641432283867700741601477539026779879276331678957896678291761233773866589960220922368007162321425881986373252495899045841039174434467551793337240088994438084092687274609196600340637206225556041046073867536533425795077884289881561607123509733992403631313201777069716350569830668631659272458825781774374146303556264202224800761370714739482527873286508382608896202016511297436975217056937089266074222726274376426309404430001857227723599056900636484879548740825251100329503137320897285098918121405133440219369906683883113218338517427505429630162100476259843092418569573206985232753672370388954149386592114060862468760757705981609444520746293158507827755813272592671670089557242490310081509584554042131833414522497011373955727809635288417030553607578142148561388400239139996324827113277348437945654146293182998929238257593051251127902472999933501279640846322038529694927889561863775692348843948991904330592273302582874625890990105972953306559773929024629224256393125087340894770633513826966000809433498422967071189853370888275953841261857469643235058277799923574911868129656743556019523037059529947741363229866700797248706231838363597809930962060639942888148234204880124712547169168687357743369119033054234334252522493450455539453043691726564790313890021446862458232260722640649088033560627773476483032321603223398625873599506944195980807810915789003501400429583685905926785671764663066674311966237983498599928315608141158495632508640083775826552612514161159829436570715701648885499329888027541193560198036362910871261188915079770507234020681671481600123804429726846495041510409887519284715931673613859180469560299798409714051374364591893942802989336272565903845701942231939299158540321137153483741045437900923767487558690472012064055289157622201373005536765267252964691896215958248990479032728851285275801027962087894751875201922732394767277344886923961338793686145084693964859445193988783306088317300286349391935539097704162254939295833473383111656829124187214092618680391198362644502135129485493092855865329951843112317355912693099999440115753966236131073488708977942206481375351921871477501658234210011520947633557632710995564471099082844897417193033076213986375822126149756236688511047834955340630471135564274447782759311824156126594500442380321951313373799520381547569924442532642987697999374746495750740695414627712494627499402529579318659236375097564938139633074545090156881595736048331795833373643179314794640870308612868654219542326419035353003803217416803156217294517344818978415550959350623706870684475077906883504373716930776279778797090246794385317518982326185343810571305179746193730597680723772481067346475269626437214169243728849200243091503079354177028325112100643382162045405650213989085297876348481900273553423260927393633412747829087069231812110267065911706873413601139755497118176692170594112895463104965983255648203318538894872149343712295559378416559141433027310100552699182480961540262472370303711889559000014262396809944431663904174483537346356489440649653740997712547190696457209629650096584363190292151349511059892904199186750386653128105020335616347043043403303358961231392980256933798262408346880826095266085373942786100348371042178914283608442379940945556901470048194280162145040174964995142162620259357551331844819518095628780317304822146302586285189608664829801179110433097133785015720440379100944000852212214261652931713023075757718990527228433078201118213735595323557209370373810083066487878723672515374406572458726121251426403794339131302138085510298559278982127995831935605695886202090703447917312677967381747646084321816175124461143661334091427084802917122614417691476128732527395514049426596689154782910843508396201697467469002554827741317004906543945554982463685519455045760862682025689012880185192104179196486450443586302544482221183383156981897522002217121139869953306812921979494016597088818309675835609797330977898261742241139439973685223329609549093648025991629805696066773590997003525482944537933265970155937018226401191384191244203609573999769257087906014154143436024552870820743197934935919239155461303029214976087286446294559445260647460345269633518305920897939029629889862301445628078167843425706525073083296779053614159277204267709665062036947984489662193518197950632064528416467648905646414323542480965224008940883819471485242638223835159691651135527117657551891394511385105906623603708305794669096240395959044706065750455716132181191330032276053969788104400946938158028284070571533384553639327052010152767302501265939246856887278796455825618512404298692451454816575261480704867326416180716590235411954030656089850116073278040523710542538751039912304845006199711423476312538028259763576722784638796901523162621156040854664357440134490744384673869429217090761825350783975106650742711947483546451234168610101311928520681528661005172899792075429049070229600999434799584851500845742601676157576910745691868475774397760382052082796742285969281728019835891301338373414445463384994833704167905447057510857502588959660948331471209267403011696264111849115273042650090911620724474733908855116847937121574272831121279667726529536016586485124432068031521449945007316592885008000969105973719293574985291880820548878725194538025343971002021900644217950208336973179772949278688375217633773205712319818923521901571301460555387117137572866049801107021432031362185685829647698574506003229370675486532675500994153771372943646794765308232949557560939043763871496725864134838325281157225833407932502843334508299193431225068983248308868606235173219614527489781746101381482360258155074479315054354891982015185854481303453424805513275973501402616046030914516370125427839815026390167589513855838709923886064745245737763831783553268537026726516395931544532835761254855306339443613698584945425616913400414337705947402284737275012859861804764849662480581425737266368972288247543806164624102941034315764504575923310104689543370013387918119575488895584710469439126309222312855625329967282218279265694164939453437540603641150454752567936211051858514867286259155475997508924500057781633441788293167324453096996260468458953556474339064911824243627790779648864894075569806955460266389097159819388618667842139374666694618110461531410503173855215606912284313804541325590624595610714974497936453332251721164510434209697145353449817641385092975981458711889940148966070243346670132993554845068865636439157347139620956768785432697447819130096056115377484252825037261413490871460266935199355852933853977321815387206699354533694253527160408411759568904126332500766757699503143963752803464627213887856193785059538452668235997936834925322322055148162993961110427995019300534624546003936123626735072537862359993350854508630748871813547294976681363607850308876750005364097888839616004086089244259332620738305371501614275523118882067332256028266582701231103550432011309675327584251282811291780669471780228228964394101339304143329772655485616704371271637662228579916885071605910404069336852416513576378743300710323022979538984818324080071866770728499376882349596604550207124553017688559683321013166042994246758667684029996463300009194903764488848036763243829706049551849943279508260994179593821798296063833606261344491347025935745089326946282417941538807562303126412977129025370572518670219202821970125234510309507687027219954165953905259322961312415270603705998618941339171499722016234945308046224958667499292069030472241479572893221959450829009344130047503024897736510485054010016380082070708497864731691619372426081457757101610972428764829782210518073824459367625410213751701522978717476799140395721092390571635732914525138063088803000979080700348081554785147626581539716192155107527799746306285072676443650613022523450011548359023531242669039602121563442401662984981378536518643620209870660422287512446439827330328883813549391521680396359882264334143319743782262612213214020055524119202836339185431625283143348279360171595151410116978648775643518393339836338211887511546205270339909392181963391837389261547451029597526477871339936708115672754530888244219330799456734227702683118347393801401657069367519063402098341677038074542020066428301601228045658959174309043988462799259292194888044444340728153305464263096120001467730593944989147059124735903752135280545382649948349143219428625760681428992529231426932310197335286421220916619412049567387470719937395606635019825595365491245624103987161855974616651625220885460772710097124428238803207421030970870531443785125100483001213495025320023648881574782156745936227566040685917004842517180620622533901426319978340291609575119758062193210274689241636272443939125342731116059572809015409231276841097753828008952523895952505151953073318441077464503385233344189793713446928858665930933782633757199616515683198454952640226935965059080982336184693649881626066160706347076559507868818587276993660859992333245125578754447403158416798382288330525211151592625774780443659959277396823267196243365658163463940714566929092944479629830314609186744468190241264950919584605724990146429726029977858942730314867210805707609419931361365022938002219404491941807985507017006335201161921844009678623320278136700993947341995308714573498653755932983574133275423221129078099001804388990693648109748646050062067143165071427758829788262772206205108790489875815439221181647081194798602502627338033337253875994970081529456137429288417409462716378324324342982600472846576295664581395577201527528833544032365344024278554310117193099012630904217096681907294609281313757421419577571381142081039069549137094474088533817939622302245502804455918648924430957928531267085624550794960203055815734076882920976511740610538224018528246150830460858071371482043512635859423006084341728926264300985004545942841857698653597289071907206513488596616916570375143039084752881909914572951747837591548078241781223743097226327263461605244376567031291492268352881638969097757358872370927436714526351582412603444748557506412530243272874239610868676985640095182656127926337765064238536636813538138403599917497518280895642947203915948050035908043482659988084586394264301026268211696085991594408406638667463140572772249966091594597708163102024391338599629066061355325818144200627948725020129979465182296281367418825957993236678237835707911671080438797504337312538371347174980321772694369152250723711155477732132958386541744584782069680685028749075834813505893252787218927857117454831701130078336602253732437720631046170607376333864289064249426565557371110835504204326860121099638761191963338355921090088660697023155158620089916577834694057211696287023686219280640800992173642601457644097101360957252404949245330011544181671484516600921511680388478344946569995622826421306449426104636771851004427089827009444559484785257664178742075251158393790099201896578703807401129915151277238692287557788527184141667960070431164026559040950438418945295907587454373412076411367012781170888688830861857926001520300993191181263542060274403337889727774780101603967315718703598772826254554596920077790454004696508788120920128550916361909738133944025207371583780364004751923558251654952344138136708750539093038084013674606842157656776003539206940092951047435342410835081699319462207508388277327971273794241250955212950253210423225696552553676752784667434813400407620087295616964528083769807213024628715532470423897565948902491414842739568449585071817021494567431017720320926762079002978530282739286294714127088681895726653588158172851490027476060506990637906425949805313100277697652056857944538794560330499325665772421372013463953230125908373262149223146193636088830957020035468254451345214892475950554030139840636108745454393562975443154424733421179757574524337494107156491509024832045670010442704862788380811985032798340202728746817872642031999646385399281413930056876515541158879776719448751500291296103994394667758449327617645663526765599242340995574817966942235076179142864862733273756080743089048451393605759488789307238547047571679943103758041655675522729395310400084276319086288489809408301420938277472548143559279522925242622130877249195964476772676503911747952554045763497329666643110447939222135848998118437759445576638711457745975885756052434469918174166242085277489543617434661503426686938582192263677250457954855027941460344845095241798407823919088410352143915179375003017531393331382600545609319417497582671030042356372168966165807822073241841592093413315070257321201955541480620683825145023251853045945992076371870548306001823789685584715571049954675154363788643522224580015163943762669469359535078038707944848627779626193477965763158904768707920545485291001375125195350904662251823313147118702224338476136130138779163603401711776153137949477858881594203994235025573915202804620969610337775865505730605065061007280932481586714845057624105657076826815036095460422778554881504660801475564920954570469986785421156277129227389495565638077509045677635483585357203000728795064547763626792315193123082535835725562589307081889023658748044443652943016708424831123697282594399999531038105560469891693251876453596404099722865927985101021016890026268992188279776443246632964665154618889875365691993349680335984871125375040718486594305949346600499958669048032166652988515088385712377737394045223261195019641094572877414327222979583146964216744185837383216037666071559972501583189634034846507126275907377222668113508212609405686910371865315273052682548548589984473090542110307475275264913742364209005225188976484014797243696778134643869531901069208968473185040198103026208425233502261901097482161706942669446358464647856311266140829390511804789452292617004900335570091373408132846318520549372714323049781455300335864623376125667552143073355741120268960454995748834267191466578333363507037880132820813215615279943178680259845751141705868609186640472230570236643894123922811980054327182867781259301256263923390189311663630558417658774942857295863351267971689539793422093342826392478399307249260179008000891482288258409705479852961824991472180744924830531410418483956778513959112330343121187289203958868585251934328024992047440252915946838807112544449898221715152952290841795565406874016940681804136047249283193609978147551113597708251697678396592743867665686655908467170940242713424525072405889388827207592874336894360036525595775246672984484606533483209378630632793644873132318266334223270074521304613453301578110198518588511066150901834565241815752761586995345715751769343596572418170662529691010244975283196208140961769545684016567122991686915240781172068201877804197609622514427625945302385168987286117380914008899735794023409916584055624412659661783939569577354802239168727345844964161447857858968692519093649862215532082822275552105517484574896598062537909897567519128125680312733416112927787877582765360671873585204194530417166396427624622883065344957318583145786393107038007723587119119827288934632630455131087028508507362069160035875705977427285431688535343960381429991476440591469668475150152861559696319034650580468434702297726560562172198885363525496716088373596749190196618904743796095214323249354903369490627880593871023823882665757672300099730878482495495593177050622218712081308766101258710050638574522252165560023050504519423970130958236631998744793582351991902422120337623163006449237478441504833299939989094618373868230643705925186090941988999500100622785306229903003458766465284104446498852937101000392883981987194553307957361254639671097135395266989523293497481132430114048663232324740678478669404970491272335073406654877419330085847720834210244301911587213797934864401148529252309284231322879693529181707333450870113281706468816891486885309197551085614649961996080042464792288525032496041413072488226067594930410513617445242070250362992691179271979171063152310848994210340323733579216802045379096243435965763096979923843253015701468528384701743755937363078839979757977085302950651279450403997200767931411942663176929889895082287860801111807608166511776127729578910114261850715835626165283637019297281847373570578834482492387927966246406531625662435531137533591025491838293051872358510753075339352348250268466189003993126659941990649505797329487074384866650247703492319945349290119996147545364967053250432357767969447561548929693481778338059983919627050112578660784999390487247960903722631181935799578287470849774155169219377274909217860432813407130752003636777418629333928787359504662137782937158484326476184336336536084202296359272201983052056887308571716110703226737385620871238876077526644009566956252961143994662721833405937527376826639139863773483452396481140857755578494301714080784074429339088852666210431799128627452262376203554926120724222964688915792231681738082127587968481363761095488070622084339650684580241313672131789854064358649196668339738805703279408533007129034942071337390395280900365982111360010523970681176143058486549456168159508896650187528294238942178330537238122917484368488332992533856941388633128788453361087931759123539195729756898917165538033053768421612995500849403091733605427452567323176361931020242653616027246178064166065684808768932282797354865860601573431059400469731928154914920199450392585199180488622763435780355554287979493821053107179809442540073738953725904910544742469232047909954022041422598624843063287218249295742473478916907128486485929228632807418718191986129086734142417877941389477990506797913426685734080470755899984257088005607209560807562650034765182222283693375420103482238692630170080122629316130295588151824176678315231201125127552261877414578692549772440007877290536280557613756105585743047628230520646013093209674541628215352704776599850129959800635190253456989260963564281300392248186608455329487251237215895920476636321362806551028618061707743982322408631386544927457095684987632457326574952178706899892789547721922258382761236770168484285261611211036120849855010610695925845136877317516788557228154152344805692391204341267515147854082531687197109888243465406240746225550783273585782288745790749081772364939274569823216787919409683346457879256043367263764360151767055273486074263119134503250382197264150078408639520544164510091819135668931624675810655275376650806049229018559565907410320122489491918357293219554536788938283227001409621643718361034933025841275992139498015508434066844744674031780617874652404200924163708117861492166114721510052230168249926583031403619001451295478711270144536418584367317598620414157357856837075501563563221998766531975849171128046030467545093827173925809784299881227578461680507921987371869292362216353615275287404753236113010150446369523044747495514476253232333093751979124811173607202596872610355303655321876263487586828062570141615712041769055066991313258074298065060547000536709708651188155648693210060253397107453291555855494350725352930744367303015014479926950058867619540059151972306111039899914202631071115810398468428474761392017366906762089796860359184943747531135065385769537676908714234636746850428743864744366135834624844119524604723346847078211488445491343221965257693110101461469344174899360741457897655019332135194410437947797414263824578786122183127042345918660969711389344395302412329080856761456204479844280782747353322576696907999570431365631119708118961034138671621746400781662940919074897087586336543223067050272038673318006641011471638763871320138319949111292816873896612175583259729821772624063847297127440547706643223438943291638501188467335772180510435748977223736867097881813097091611007513971539776420744409026215614347447023398957057794615639408654153574515370714049325942988464467659003812110954997687376666157801111848011825058639245051468940794723386572999623274151838398170684047344019071899813120959474284390840722784235016452478370719467481375732182192541903595676702688110529323518235364347167567546122676410674579086159690513674434670771320530531212937560996910803431967420268195636185806252756841824467183844123095573462636184723455536417816480135817966765992930320996001027429008398285045144050804049544191181386440305935118941628707679146377489824803064441886919665458030637825866671115431830125630215681632291652310890877070346408123482581246711036107240775806689430105832521413931675122715721658304892658394341180532192119551540003194126186884571421371112771976882630957581068293489065481061355096106000219218230088347890387792536915122509616416001370471342700344240402184242879136476609321102459132044738331016795166830661250065682114918212993661924395530929906686883741961565691487412921113436318195849832432423930536410267313310823399420846139792712042218737925149707498737073927210353657558659717805445426595620917485717593989632985662193616371914849225793428859197638962175382976017131770490349513576831858711051123828175534211694441730642117965538141894839949454858776186038843179041664472345062444752640163531317701523388143753479985809467436988164149982529001469389575494597125646788261971784107489474548679334623265556027016266751605878019307914542608921123784996976583506571765356726692459560820947572865562667636146758642700034460409987035928007518160262427508389400895108464905802209176418742691694749048340210994540055868189511997879198116501603658312754038399153038963974680869911538112727228239401051727368688175776896657449060872103359143480239457052555957556252991706716792888524707077113722730971193058757942941287449451008952608043765627464764314937574779617377772502625209022187095711346225452937702074618239856721760997025190083636552147363531693591116321342255610339344238050392692923256844292071096798688977373675289633040247127980867436707363906680866695318060532256047195546044433072869419162031708771795572148799907657036231163212593018191032226063339371553614238702276411303995062825874910195748338848741739868025746238574877588199947382582173425360833857237863279885475027765640970984250911459257428230382383899367019321753893295147304904804065173845868050596558935577379867021270186574200192834035957228476880310905350375532484921394579091065595264028246855781524068857158374927528250039731934716560265295335123222149388489276959702207176733215251498827813460456653629532301494519533027520065770555941133278627758584128847901690659331285516331428141367213978717833995859976207871405061260090234198977950950180597030831752842457303079910613475767011192977340577563538501955434717514540041442292917064756573990166032312084626920035930847234172135574201845177986420050849613433985169544815948087815906032066476441939634672477673218072690807038546935585645539477838893735558262126624956708808466193491181365937622236041321777275916788323455543115648817237394551888266292723313893359046158583255908624599749701917332896979365932588128101584078129642636706676072611002150806953005888744099476996959568349661356370429376281817193270187641340387678049015650038501554917854406207100034958367955376663670209072025103410426752938538417756198734663499155092831307210298496880951362904780344371394730192464542133752747724335704374010318082637369628933723592574423423872775782249043023800898956147340492366200402194571935228332241002937957387711225160506930585331293063042412133482423960212124995319596651337174775605360881507543959560359405914616331395673612123613808349581911626351268893106554385757837649751256503449278396441929319981370798954908656403526193696821379559616603744353317762676927072119620095077345513319422218811154548532066951139995225853924993833976672268477820022547513149933658606622115671110742093467852745032006351952918050092640435014367164807424704320842407609494369678578803482739500523821636538896643467564478164506676083277715254341035731195711495105196372836054371094873402739304390765426704018216378030297008441224403677227772538921217566790902909042459575677376415766168784426399953862204071342967884257490688983193783058719460062155987923904074031364654958351142931484647097580942615996418455388304779120842086466364066499793582170202541972214466235913024952169420446254216983908578577860092109952980838548278428756081814654337330172280217781900318473015129954137784680476726546949482315541547247226647168386921039616820995729657630183508263887016806897043321670706510273103341837170479943989877734388321628700814183624404553475590625828097847601356677453916635802078210776321760572982571470997103452281468860747607551530797213774509782128370592895128056528275598115359374834666810941745461387463135585635826522420847484066008945469672951999004440204308163349795542373874272580230406500616208717957376213275086373876917136629988009424607866975135263236851939716380578411445001412408326178949531472873636245150338375807497351557698887622563383343605986050589954009913911942949757765080158580438635016030181987492889373901075261403752742671145405656042259723057809412273085006714778413104078790992983838892256227087180507453620894616192246369934839875285048980457657686409150132824599022989611509561888592498429862756714522474942837282229208880394262233973783508272574478421385052194272572987344458022682091206485816977144032842674022944977370093543006664005216636741340429533998405683659326276364186741506804464797004836505736341479754692938549578582582685997309905096880372248678381406168520748741203909249480892436620342508850905393677053525175294443074419040762324091226260081319302549046873368019442155063272268726468851720363364733452500876926780275967758433413610630428180337193628332806963691971805540554688303472611313253388066423791175395971571612336366175011809162259743017734788421345091062396645924777865115284845081399868651598881915923393295730856857123196128985289552219318369813827291401231750293616618437372249757267153628844958530546858552583735366544404800927272216452421399243511554046046288322849509825103335172648350650981604917245307082288139650698933722369764535721657309317242883548080802896245313680491441900250859806002430479976247690675035257848736518605014603403490462089363379924955151796996954545756201301870798086712391202499834745171272654152794234866531530987563586882140400197470755300692586968082376507841879714537495105316626602233245861999994031337559564258722781873251019797349544077847453664839334423784740649012145640344868249337160728627656944976946132200896152457005836731604099595723210549839902305820496115261926014183628991616810664967106766501275849997921364067398278740624745954126154990560042955121582215934655098668257759482699532229341228134615524550083871433866952605077230594202068752686084084633780933455340771482935616444540863812635264780485238429747034729346748570687644863651660547852198213805508764626296934363348576861970527134595659638437465527076049935215902127231983566098032998358404096561116636991203260863690513676209666239691510102380033888746289903801075288923358171716979486890732661884373665407873590814803552876572141268436788841396263492568149661697486003402255669407111026021190755654535643850760125722451049105397782100939720389207969053923341834463781145248227274226640108064384054850668533461821938500883764185336843375609517206347313883046257688399921652318072224181408029226018758224150097516531235797970986546488183010937660330911264700100621889384894843660672943099877031768242020865876253608495535568581930979467796750702714533866136535407089450747611441573480415402139164453437029003628044630617980541515253956698401309362999966370963743618983437836908752442461773761629242097711398028478622264204583500553136410730457794629826500692071145450764162712931385475157813566222686593631973318760076128404187444952484615069217210994779390613848986068920192162967913867608519777180214099628610770220656356058672912438455066687068063635217886646631583653126488836805004820795306860043761978842147832182236195462695028341906471438309927795375680913566592455579206416746319925776910891967031863058944279307673754779072513943264332983269735872601205597777585525487494401135515571140602813349175238176491672559042961807919425641720971238162237314815644476796506926267039233518851030898580512269435025364829918026856324184230442691076817045080734284811696044748800349185767153029036779326582778024922027249104232338778907608215558140148180225305199224687284334976769626674322300868214681601543885670729432238549470632972873271378871434337574787583492973346078535333119800991361557722843320558639762494405484371107299741983913261199986198026342242415599856444139623918302417393934727193203595453629080283201787044468894989272155028488840014688326018705167157255663274944712168702433494252010717544222951191625955446413397477483842397097364698319866194656402225619811991072400993884561950389145980072268744532787065727108441940677833348962863032760345331583740571749315427351217505149310315215120626919274420862979146842062728013575843841665979180507025457490514900936902568435063532155585457978656610341376264338218613610277107511059489346916126254094903438097947729952385437076666597403517933727151992542054126394665986969080371049151823655088886566385129046287957329816704692378012075350075141446624229391350691462940850317614219387900228148731317989744521220783255005596438873615789086255361443254162906609176164187443445528168778399254406058654390721874038520038051783459066821175277715874188202377663130274705031068430390141883738948780290046701484386286769896227137658289535147666812919942853325356600456931494276083684829666144636928708178337331380337011226087982551717581002019908983684548349481304935847686457323957106873082049877248163759178736131530135835368341831172893571532870670845787251577691678577082440418071686706127564322656239418222296307793639362411615796800932231903463571123307097711960373394609842552827436313479861107625051144112900250132836074274457742809613712074381240775094410115948210887148867616921187502410365749714658354837623089509577096205889647388082656256486852757564184998280579464450217386848573873631711002508552691749231909734899090966104708263916960449617570633940476493765074842135570100714321383986140171632273920817352389932714322367679774389201380509700581217119819701665849102785161335277654966971745700737470710990865071598229215856777574378059862767111106367802932007531205800605492917201753044184968421067840255301148833112650449244866456322145862765960126495735180799985578024950689315076522659304446878879427670712133640852427033751825086993336238682103166947233010370013423037603742317349982821468578382818323109730157553435824696164613743547049922158374036185815489384245447861522532957692156962860033994561526504644747451235795128357490945986564163942371520379440181748500081606120599450729564105788397561849093300779497353879218583723262945176417090168834328691261469051762929395881920122355027332072923199726688058254922392018589536359724693251559576496648820767236533586561571500602888485804744913866953360139272463109266711582847531908048207676232173563698322464710880596210821189192015004371573422757907255613677468982937016702965475318950102661880138399267752510722155372061031572798476287229298133247426470064490653328314219963776466392642393366364472635649091728874522137990926544705878552777835277840518007237863613224016649175646374953099177923064770797452152457413333592237042606553952714948662402914612565478090658280238892701143284176660061126909640242650478003243231954331356515413740725909358355269966479386775977373100751389632753736174236839509708712384784560660790980596615882333880971989382128104821477003178337675660511709086660110226924093230710721575130712856633906311501491983713645650205024319101243967038736286731226867710376573640429384268169790371418473748028256595445266473535305998415299051775982011635471581200030323332231926201081034970770128380746837050624804352592068082045594265071888107439956760726261564289549338275291764489323928914378319230394968410101287848603979481673074005336115698807597427742500842067392235133904993725784911973212317220549467008876031705110681843716029563158072944637235361881589949024937612581975249606145106279099727532009385671522139697747016933242331543336904998436628880572503528406950201006767824286890565383625093467730128687536661499725905654684274749126691056425087620094853721832818265051821178465741304914781428195801930552861091374406054720508802334396598413660944046249535567156078914407750539556518155930628303956164791597558146918781051249756297627648429177495170321987011968756007713775857090641881737468964446015083930353496493639727404478458272364341389961238907173647565941307029770626045150316790273309682750253816856210429935541320770795931744501245692840672515789182214188607236354936796228204951000357963915107665165606403735750096256586212438129863508213750778372872209524981423076134995003705742181264933295243058071045838194433224082654162658648429646879566630546782344792420149043872538984919327645648524641691985712224138970921699579525366774854450235057934203701338837907535581258040346918677375884702738197248074965141127913723957972983545680485844416498054564187318749269222993936736841539539864419421683352088107160244327317446567760538160461541937106532117638754255650581115186478853164608647137853760946449794453676436287589429520741187430604089094208073997061450216913223216304674296427512415556409251558980972755057561741534906630087844374585573055092625281894442068120632173905360462920677462793882767641496385677587592497211570047885667570237317590622087326584145776434009794168072930815717081171382596094546837722242285645703585029526873379148878797914073723598187731870430650692131657605966231971374946047861515681148897765196759236260267365559064673745004518169788889768659740269271369123356738780826145905785195736653348065920259806328155626095348250722669635530818415059140216338222906598370096216867564795769178541540909614895444923374494070486462126185979130954016375717581171064596205940175355907824796549417346882240235944890706645245774449504123155876118110342274997230734450302481835454239221780836848299824545265019768545838346208942179212529963310239660835456922794559507813683737233035358431524537322383954035149425595301634954768041665128558284289172042145352305127408032375263996049604956441397776408826532471160110927452365636492338556061239336074659790125013790238038324258887103697311546288808184633036826427823998815554998339993410214048692574569012105792279168734010849447475266213731462694078167235897063385798932133931017246527441718586101861465172471421397545145692325227508880331536413032766785048593483477594774970607931686184974188309043725840482326691669414397796146371017269575555396663426643534632177378745167977073712381848990873030097402426607627572648021184541882731291241068627947350447140889526514230068109039791913124787252797941084669452334240520369867048351699151305668370570186223481151873855101297060420726844817038089882730588570589888924762029930430250491282163520960111834127097815338078273998645403932472699748794510254404528503010010915740983137145717975793087462057570305286543229922203388471603727706340459266969538992792767683731072423393703225554794523117689908774682715847058982017031245603765369508024098255491063178935010851275497461271248868525702519701448235213802209736188001056716176540941601688469317105248589578174962600721688143738765961363142722930089402866403858107487956079833761908817197914868733625760649660109953376229472646603447524689931360791061207468141258788056313756508191540831183709288649672034669510305299825100077520631197185986403597609059931947138412064882227541319625937056006648607410148848507945476695501190160919238840139860444586455390241480098458388540219106644763849779632453324041108487971411060551748173626562923944389892932134003138087645681329557805254714601792763350631984662479395577448728279238431296548286893253948163258311367865061217929972452482346586129969756276060552805144876700414922265025500310960829926270038730198224400589020291483530971145345791832996332912177240605164779058990745759477399203626617234836006041874609889084986192631280471327195215575766507365830576289800118166537447523569889327076321720699809030111002050001407056521413023246009990016186219359614833226708789170211898855211646449110347317229635639166400134339665987586374363455122697564022134791529307121071014959308797924276460746363751321235630363787101209137275260635838861888319395997226130179658485722855404185022398366313957532531591762951656067670223890672639868275590429461097433817592858739586536402561964144406255914661491687719138075054657224800368187480818717965733931266226589246849357990637779091337107342532770748780277256912641378292299167152904283197084429258352600331547151991696652331288671336508909714951214883234544005299508514496388984260570999790138056429975876306762723997384576508731465415126817745549227861759994994138529683855343647038919649885957499396348392843510661671043448681436073894069966582190732819051749712499911704476280693588407994866933625380027617175992255349580109081985304328492600857174731312137222546671297670858093378736354242424325464652997495425298557289273865926318664269710596382523129370951583019481735740310317581484822926743532455156787316707609576906465525071356184529852463330606310358971577971805198869026092771074328529416362108143706396370705996245024679296678141897287906308393787348078561488720136239818180500784948146366963792627358893862383651874413130126391677198250929161578595809505568184719275603178807232497517319877835417921162716009737748730398913179495349455205251656999704901237526756584127392867309715907962479296266541266639316687093199642486857208163726749265712299559901883896026925469734757192139269579444559558208651762933691716046558854376351030020634474482098074321880992204995953652154498684512327623920983647559896338242219623815092545894067006087069932345842328176655619308749533008554290565981153270492189559223066855410097813887087278761023640738657738512138066347357693532154744449583554899429305807790039245811230469565016471605748388514819898483394112936930797246560085126496783542308726239259831863980556711801516757485003220565008500083116125398616014467379489002421995463135361442454849539943450486809981570643261014078413803037475735572168759638766524579986968976800561684041584476431822524034612424682305652112266238776808958149376904961286074244254176276675183230022048340273808964315181218415345522955437498232536553663252014067062713431521146306644094115455643994386261162871419405889750702890586101138452457368771982192129916851656062619746180781241306470294555461561028607900374255477457831170866372803898774352006316814477193496432337028644769043371970118383417614771430709006152347244802869371313529070980754368007216808227614565461095535836489379229469079396019675061055236182535665687371895961962223372102508278186802536184975074002976534173012275743392960904694244068722881884354973230346847705184502606837525607851759969458976864276099302176955053426162666585746000874296982285202265060566370083727277369468702785519898831514639493658694759540717832623176597185224672528901797816442880005665101914139440981202060156247639766490579411065633278549112457681903894093048681079905325818452748173007982886595576101056423051237615277523390024714694138448763111303274997110079943670908742180109800925343108189575582801768664595495848688238196184114094770971078667542612489882673733483964887145971504578023093923082599268682621122255434370632779653547917837941270486942078469808679016843449951330808960552263354983931608874153406735123614576269124160742590397932543900347480250193039107439718221253601669998369020792942852249282035082732578430916039527385708559481568141847831649756691482745209551043318469509592699173051416649222886131783672043791800416165653950010656856930620293222282419203119070254752676187563165924207838269922410635117444304358725259494336834530245077156754267105155785584437467468262934171487156242247168375871402113785607511897901932546693467618278428147064574017936857678553056820146355337557257454187507513734652271275661036742655908131310676761313361637130643092928153339363624239527988560563040684200434809176327668863366352253062682507730593450870382070700893535293575585306301070257516376542205945821026061104565106153878581562151726827580004194823918768780111761845707363772995699328673619221307324726871824808933091511625298576636903092929142945461716858612532764811206940496957314282769743212185553622071279672091358235639446847892022384071297692019121819623824194449887622212500394556254640282575043427959387209548665161144355618305398452270560515071318920136749479314748564430239142484153183944468653137688781628085656513023028200855246655598898367608998896880709682384224269173254112129394578753001129734084738499379800153332267324181559016070462651010807619462900133872585908983464445756839699166473446049561130380140299869223599226672092503113650719485396513018849405808282457833948607100209364159390127500116661156133172470484220619289229747462916125792887142196517965228628807352376255557073149212419134263098573993189049204149511776609005204234139789574131799284816654891786796131282688742849920811088521384642228084245661555474156336543371736923253752737238676528005262970928553095839317995093798303547815167006088240821951785032310571593851455587045379361158061371498470709671948988863450199892079769002272078748156807680913281885483384100742595133469296143209593080539482270140671984993587469796652874416055360113978460581125315829398716114129125078359770231997815439493860730463843891783530734181125730167538269814600530160218745181066907421194402585156437804721117976090621619478063665542808010018206394809090965210666498902589707507072878321399190391521439913988167105219901147693009763285604306500230085465747661642778237325705465258870647897610998777744621958321965298312048003494878935418193922141078076442673587962753802608220484975131521674485683804102442040650052613913745201857981738069055181411605185774147585159641117663645398350761376342962606117587575502660700666039587040443051800608022260630158786271226285283684366601651265061712085154369275731875672301400932431445514105127784523829376164059099650633869008952275051034010116988405344837435109301039573093614302320761333170707602853651726683531719525296215637349408712911290578741506706939373860623983122841064844736982301412625187043540099463530915374031269258881534835068267508130195185759894379297156663792144994480930990130724457372610371818894042617977990743924942433119110400344538616018733854346502642990866067056080650863813326060603380829827220972263636914292277367387935042446632713009033939441059575441149974570195214809838869207691814068018806623549207158373929753983446605349136338942136256688638160238015767939690681466091713953409872716589939591672028648065711104913688235077424409247023863042068704430375839679800427812134565552478437066513323286011709529673641375718428672668601873382889629002639349307655678882890085692202785825146620239492756183919935212730498522012252132036163729717871586479012146075907844208182898070825883095137219341819686912519087505953810072092844845556918057095933456872500374935173191214801071793215228393325745651737099757234327254783197693365471618242948054302348525179348551452521835523996492555952178464471035608916533582630367834240545751198504471501494778590868863268645080360469849840622843372123762941414188309930875779983250399431072740875903996198104069449143825974559162378940185448233476846918400295453450290803292879820911903925787379949386160231619160094724363590709545996756632464629582236462545143458909754140580938894890180146409229768327903895859591262544358893926530570440079662211010905845174559513778682612508461143210486441196951168871875952628289535142932951308019944088324885073203806546521063557144603304770504050168518141927088401835645340442118862020850671597769984909825993333701615693969252405907409545320094112658280810990918352384272537676901599678133256379730425877945191641353831768535830476004771497159978976793170411927308016999540406361186694320769214147923156664748112424258417654921012866654825332615204504021349458121819233900118151531191566895239377380891568224796306922088886234100565647558330387994477198025194932814727119665813990369177697766758100444659377455547357344207495226240626036705934938796445892384532873743328448851802514604022027751774503943045221352287217528902993980755247878876549298086986176322024255945091020876943042359726465017535163476634148593548817146112998046553266898812212163900459419529275820022061382438905366708957117029255658735094867193168422735780040627600266709809733247486927686810936148098470551025385162032495813380556285249601165310888310591861364242612217325733476753411687902195286804576512357373626218834243516849676168925599445074382086293200904779898366603532914269784755740575785236705765256806798575345264243195845296638042226097785468118289777217827052491047786293677836347758962238733006070494465861859603985285357179327487848699849611476970092290967291545127353666029246046408301347591030263949340963818417822781879050704465074120012897579558614823191289881730177921153001205835186195033312213518764349295535671183017705010959241295806113463046650737358754482495021062880141547581901859726963701464828793641479178706009707117930612751764668394242309755283303340312410303660166968290567178950378448301415418228264165712171056743888806384131170611829775167050886114400487942474650618817011771069033529184137762120328019306802874638858699731836861568320936154021519743271242296949596761743204559216841051404490737648404702228531511455888345829420358007165520910173197215161654810838829498457624105700865055113630976581687155369462737771861044880082502713359898432097370452484702815127164936049227013477635350512354733697577496665345650985986401447027609997660800250223071545703783189675284561750884665092511928017019031315590681469322108976890209288238488088134606815537206524000674024840584059637725844728938360655464240796175074763821942729635295996005164183937370328384478180294128571221245607800875913940568626313482617699203967166458863349870894291140528075593459211201774129701120807155223259957941753362330310147392727737100233604823569709434630770678611118894650889998735164810188342709656966509896191417990401160161741639169431872931462211195104836998509934654538026178235526484620155434071445996610520134990879059411232793439300888174346602955358379877338916000265290849829969787690667446907709661648972989381674295958880675259288403164815786141468659345109805209489731741018735440959307962385199415948873131403392496199683907473054425254899765598505087217285507125327746038953793633686842985461311162341400915193869675331435307413454159503667545950845551376980464061545301643291297592377837242754923976746767672729111025217948536888038931191282632311509461557241730313620251281313509683528612237109036764597752395849401507247561608684753395882297454411685468438773713726660040350014536471309941163491682877673974051023306200164801945147860532629214508101593977234758264372728896162251612401488355703882958912993328126915142730150025307590644887280765529403231593019543041824078510553380364396077123794021530857744615827368637437211451387275284840735072541944774086344665909558350653629809674613630990644185829939407580411583519872012480950889316942704756973927218410071936152444542704471515928346921020261981228221087755462115762293291056234482555977075338090080460005997748470865534314583224936622712235780232036610950775048694114852235633926665772076897771841962738583422351655088365258178310746692706040043316253353944182986089927937881335777343477965923537661526108169910691116197760903609411127916437823331381692232072408887145579472190944480906020084269553950328050797769906213436273733958375156830850460984639659885231386662759867476746682749850619551523397801946954846291801037189804296124135446114416855533070851545844289508426012571459494313680154156049487281732001794366293851330023454656801524096876950684528843392651701160950120333025106052947946696411098338623270336792149524593603962585889936146814019989107114220016222202333642889073721394342317275101702373239021071287227635539987737800151967709008754670076443928452922958422465230455595036467261828109561015748284173436785382339355825770216459183471311414235025769273174193244325495743039347340483611263808866463661507562251660012932941997138347829783505530060497505173821011778811822176552241130950799786774321111744344075873644284971609488555408359453121442079428380275428206949954170720176282459651853828105803794141040123324324484768622228358019225676214412953390197117825021261349759884885428417559012535638273275653437386112615227233182096661422587452465207956637472495497404593257539313625961803494111049778442304688442370590907768022551549882754423826211840998455730481092722393254108968388451262872156609436711825555671878463125977091475555002753784762251313483961191713337161959975506055163187638796674803363156551113004535170655489065590401109431937927724666453722060697544213557710637914060695327527238389464906927412388710446800688323927597572580517688638743554043029574081093264773511922733636545153612830345783157646228409780352180812203569095615937452887106638631707050749607906964349643740966434794020227990845613150480640930115504370965593483253087560726134360108745496732620090033438638936057130339911408826389081799144804822354811582442098324265635866131650925820133007986631610735786067707434171559321098004054550128084169692863464710870685156061366148229906933606020955773812998194885012276564515828161107611436332087204350780810163731133250969211192989068579401461446616522940037803528270464189678236546569879759388016948305528984885749408591720555715519901701482924828919010195772193662650295310359843712963532301017373044653027431470046002484259990640621167882093884119529830430609440924100564794924315543838789388262866761264571595018991419962171958634506987575450316031970587160555411726443957006508375541770034581843810242466965226063166992401305479979247137838398930895087954900252353207927463319199162055121954955550632634915022336965150417121259823164661700364794710771082453070693488866070925241000252528777426744214045543054751158648331714676675354148081543943132039935116091322261276081295989633531669195423979281708842048806626776245028495428697661898888770564926875193828903636559895012544031160493525014215059054577839555449248086639060199394541774930565484304443229799640844582566073549368809012464065935595657982958201978864314187915755380669439408949612111753886962407967676118149031493300990214302682451946504227116732106987455397862046835662818849889217306296893886863482531261437900838727231902415060386595362952838143487222905358065453471349896442212075672669612861701563477431253018093482147846252945328708668084480704027366089945320877072541618649321107073124716986021887202346000148111736041727766771165457905731255628178017813617128203080321808728380893742731623162737505915293041492159506300997194078713000445026406851693929222978860507424029096572657359206646193552127155694565483074675722918122476639265269127005081327251182535767617955346227154171477739506003095979409196985366573188823655326502239951880547908350880942784120292238578031785069126497743409418761239377656365772522880028115475653258520029593114124967904136775081215906646821729024683961692968971019843973764411202787667824808964732438075247390536250822195393498022954791759832144593112514544554680861916126525996931618426932970761558476654435645295229855409520316868383613187322720008550140238623591737599016558997864648405740169262181476546534846081830478936509355004941352150555760688620884432531326657899114491585103540167987079669119211743534649903772292208623057639564385206027175102930241657536652501728320314295513197417237246726799324132117895139378673173138224903489060258508272293419659239843048523297695687005106354721018111612130113377078678336499555712116417472186397378979309825549098921776150132877241664887067683571266685899015481078741716084166405596925826192347113964567639328540540200008015842664929080048936123623457697170292671943678500873454639131869626914620707078577026733337722855297005599447585877202242137167040288750222584757310355775854506589516523494637226949147576032407213238129671832798152628131584359844902300122832100813049201530193125013892831369332662555609166984022640825486006532497196265391759373821294539126310649169734539010222764325363716751186328462918954700092577676169143128337622937813118846501910199307885088920621531553395190058389519023423402377815897861201682957921072746797096158759088091402177531446863778682789541325236436686307751853221683368978942805017202001667737392072778737178287549944466747053116927784780401247965563078399882565544899755256700509806444304549445191007656418093256753371659807136689979281057027709606501006441230963844506132103992132508788082166134467922253970399068707836283426798694068638642576211943699424292966701672293770747581469224854067418369802781099740207778799861093194305851353070341851666701779518700968039502032934308035448977064156090140345401275250630135896167266729031413658639720894943087301071389647433186030034840984569228221284366381465544090186414861238738114578987631253980454939551168556886582509175620883396407986175631125865842235825421890503546040455547141883495047189243605294577084736282344273289193653931722660792643199021189546434810442491865657856631217593520089702422488675336258422895647023836194774692127067175580699189712398385381703541434000639663273086050911554766511552061340532577777335564655154070931765008703950151988826998838972060392471451048869148182665546197823055663980842761294712419958226634189011731668601716420871859008611605945450916501135990074998754597917135681985250804076688552322049220749245466284222394374039647513971350125497816781400393241369244790069866307115807614797474679398714215042731263819654990857979516221130275686111888818503268037528732206181030370574259148549616771015186067289447547836853044753446461142300053998342117289353340504325620673104648506461544337368620217706334919712184084545636660105919620803631239009596554543106780718495159561231669477931237337351863144230948326762467476788124158448791114448358065041213036623721373490462603573459150019181987037084370103805200634131308288400332338762839356609674802989211940846354562036301903320719242031416300020363986950743424039408883098827179539549168552732657877717819733845987407313810679775086250314727484228397544724653940994750852584318503245972395815634239064302375816899206953038203635444675750460426879243406280310730576106572182526151546844603386867749402344836038723173809439232591488700039831663620148677717475649167167212023671015508843640874683601051804625164788257461771210026292657562973937766362789434362067288548490449701442123394555004391087774644776381678915406072894475332822866681741717399367959525515908343706709035440239221802978119044674293621664154456018585115622575711785110098256320270180472718986740058285027743764090752355296346341160597946752187579991562977024539475672331265067240877814642849784381068324698713888324661316947595532340750048593151567779000842506772911141509104835645056491797159663609966745242591201097345216392834040556445874535493779902710897752987943969504610009948107996066323670794974056483214827870132365004430197667310378948836096414772665042167113265902700266083731392539436828163385608336660241178473979742536143325975615750386778855140179240767963478735548610779804165933293277578324906115510651368987292393464092871175345471480057621424448073244790997753260924816582907097181315709473437431501695021133029031027295237363171934173214882528160832057357083159776125337767534181651736323803800257174315057631972184818624384729627580148128713990777358102080824389480656742441463166998391785820427452265605757946767627066071009682200897687537069350855377192664448805938589622629736825631431065346444485755912485698872157144786669637184816969196175616106823535416858128482107187326843066047127896271025695546925051577458418329396386830108846273179883871285387671304417948404796907217726139238035838221023232230363811737979092420795162000479641619687541697670031237453154591616456880880276897845015165760916492227003327911897203947109837862662355587420342928239334702996661718958949155923826562814343914700008484918432266023025255340318784923293090687187990535101074887038776984472305649469287537212846193956712032658027752720422387959530015621919823059878266990856039271807476449342617157178762106172096675215751527436294861441433262216743524920535284854096757040566811604375909674043010265488966061062439314553515050044203810037711616332029838112066742715769442008788306946797245195069548626468358724684253962845278658424157899741591001672743026443913138835134795803732676201813707789964252933162118798282285656328999051727418384612526892480053967443523957382617967159406014515268497906447271743449799751370847299129115081667525345874911329759429546762992679561296912608434073970983967883641611753378295645358684886423751772039390655248145288268303219505273360288940018551366469306041964688913074046752258694572398609375363034756028317627849687060578141344319912475013510234335671005194528795622909994992074419335322311972700141316134534686866146696428554863626093609105428089994643428223829552425218737439163097116284825428722315132067589697009356620208552076372094516705929636038093449260559740725910736409668701870900077447362297502128171592819060586987411474812755091937700859810862862670263172487394818032436050289844235423309491409587370755470786894538533611892933553748979417974321978359008100024305710578196571515212368271915894217068360419629709744723112590737373156137330830747266563074610871489940750063477893610179470583880134401772404013290706710347612440851187289269779738209231553916067449666636157969907922182265466677963337956564016088363915911921319547224931683258229296941671029164884104896348063655549599590305189396286555090844608798411072651027096432005380497911390442077825455137206630832936081061018646446849117280554239675405965639709403333023026265480099398259065636972637878885797653607851389873651852710261660324338665305913327801296800342735936539048162448743124121801929292198666847738313791323077054219909042004558312305927682049381794283071972484735317563709122312261788550184160541773284469654001810539336754229359627925311340270117921858257180499091797673675097558305066644394717456100623470051773760769978972975560832165310427491737401354105169640101784810243637452004544430728876875206987913646464493497355313088538396374891544123478809257863378552478108889430931094109828835123272631685586599862883636716398231122027019216225224290879318029293320119164090883603202153735391267761413522554157471321309691850020942041635607112187453743297998876979681468111128696635281930879525675345030205051841809808844498539169103164824223988019565588921124189300170009631282418678102208874385995759150898209653027289245004084055110574702393861737065282047530261091715252921822389857916616971819473255612518506696806821229688754495383418359287337426788647676981688836556511293634283115306520197300941789689987232226431527019159361620875563426430397997100338668694689962396820852813717003031889343896608639188872799017089893773436492156411879835629951063705777319556643382194826078311441301289231738469323339094729685332826947779098030248050742474690596787730733254781770583498604885756799798115146856852627679774911471185736779510313755724661130054134696786625658696478770813055238026189567803796211030996904598161348524111856438966560716356771661341263672425032799576142611766532798605323445404358914540028363563398321962277947159497477680911082808941307995689004961338362430098946098199967886751696389009079736532566120633708298370560557161309912776292149191456265617506862398886660932139750834593196996488894515182988896665252278652075570587677305308857111860897442285927218233891348642363398395010363322747229031770744103638506448840929466852985623521581151528100094977115097908099726562481212142292167730417676807779029952946893363477970606967931661915007773304424311476922133793958427109345569196326803160490993153158693395516766217771618209384642343543894173919552378053473371970962880540586089346844261021419171478827346502797311007423856095454510728741013680947336369095121745288282128135579285078616139937455332056402604486133935647004045048589941546808120552830913885759038621873253353856111310788601496611126091806091473983860953286038462708435617223121707529204912075505348613420965371749519334878038799624373343878579745223512923622076500075771128353971461213383159159686272429698715759415651298158356151880076467757098284722611315803605100132265923299301088072369992345577554219426459407593352814104436660331335751140495563272921159623975610016583254455576748268745933151324012432982432803652356908606639450248198827604424788496475094224578909196157573136191401178160414175617540205630863968623683712872005072425821268089375715894001536180033241605685132342344237772375180602568975278205482965695487618286284924380940862689179204041959023029639563569396646693721263358799813260164067267841466224060537120793789586489735290789964647563637243463878060066793688699459288060495528757745417971961360374657977356641817709953064154137531623299218352693406444205323739928586139969004584821409735144781616426556602433074099188887876866177077369031018535029155294832156821812084003071933181679196123142194083757753221041288281649158634125657985342909087902813568187137685372547849903870965024881536514310575213814004853577260303921396271589012800043542785061676734134267338898694792650284612503927464066328689036755813657386086195732471855206358234471056778838791826212331229838682018234270884894198541016476571393417254384635447294704263986404026840376097226310261476887629713381572096834603953073824297171912403639631484292947466776445621195012873696294908393977258750609082407699402728588759866159553543595843147260311666808115163331102212007347041968260936403919648686093607970441427924893192370414492722660294954634610304216618409088745263043899717018132307721453984933568753869258233691039984796490955398617353918386186176947435914917075430556162446731085937839972207790419663933617068523610265540288293629983461098446327257699467979867376836047284475562787008197852563974086721984157910475401046441654888090113331121323839098760468604290217695869647251997225131586325563077864369566803633137802485531293654646414804739012288995993132947726243488302788022015210733042777269099432275796074095427344884210548001372539873253889382932326348370202579376748388381706268465548828563641608567364517366207443763326053342173579843896803489775008266669854213734239905884570938514976813433427811847540903497871603585099547177947744643028364671191408108945495221735179024022480465995021144698136111927422964238199488366966894088872399072676667069305652856011029027456573213704434323805386385293035735057083214243414727574187590748061621383339231776198879820502058228265671647408118360547473360610960026509173250281369336610729765400424174882674717916875461143874930559405464056795732644069923490821039003042315671083034375457237721693534972025384861282774064438600330802738442294622453813590611836853551870433324496355571080292230201606129656632377453858723144447072424495122147921650216199289987347145586106937414062336122185588518091412068325618222558157102286929703561334936300735519659137799566991849211570347628073955655314535565268319166744102204430975825816438015040844020318805227750755766601212947271557471798609204578391431498317867022516754832080751204466781483531858104712899984494582708279880831974012156564215996682758869824809898381252595386896796883255699335389697707676963605301792626734163863691135824644331771618272061782435622480904677601785180523822164492013680278283055597938080166615279238026928226883544138719570732224871540959983587340929110513283915030031221625762028644499443045744022444262952708381606580724669858534262387596035434535404708409358180929271693933248568899477523331819811090070625701562711588021040172867734005238555837988229491725109098481565374290496927710733630686519147870973530623205879949734215088114779155192918524364622045835777351979751626141758956166194726022465568105235402216589729677200410402110351952590005801919015495773394259621879926888916175448817373130529831082992604641037877861310173330138266648343805544346062947243256216153036247389921418319338347010550136947298819890313977089253777413449976188753635663032153898709092936714170982678997991913147505852642634465418174196249365301875145066351451870170126027125588042763146517684914841165632906158195761344616624908193535964189057698950837274949899145030919513386486901006675055695398661688022926526890793513762272089931837119341009533139007003719235013418660308455673021717365858686428023539373727110905070926418693383361989768190852317000714287669351559307388622096674609450428080878777583531022306592814533450201142832723072947786571456505464165714874581299200029695993491323660352372018713752925820958032144108480417915294551147428881616106205536721233027049079063651203080093184344063976873673295502829340643544104913925659625895951251051429577823932275000440101687349126906588619759943855583326397401853900587388747320471150312447984804120164574953517829175282486634569259493828088627451773298404960319364400317950914769172542375981102399816860509602189747796576582499374722252281869171086759471925942100601734766994074742180224012059072499064505503031484313715776257411032536679585261078723740922116092310593297751328218387934488293548720425480000190116146643399682446615845722571624322998815484975674236491081075671484712323038007022960292026087198089298601830625552000329866232603977399582748063724773215241800283822436976564774739759332807171694837384710717105908281942958451346191941296121850681615233220777256815902145863248933794809223647588224317092563237131162532430856898165056207201030370305613517124036844624187318287701765065957612033558677780967119392123054610875585016317311984027162477673650729952624579783062090044992479590078014782817233389376084273830120215115840827234599617417560177104445432497667217827982909489454727059195883383617113719695851006322880571288926845227748091171509367140154577157649834367828146165514266207870238177863874072387680002195014234725768125164070294066071789206844636452609546068600443361853908483918205129454739573554644081517607619669946723194148527118191655845567696472976158902555327766304877974311391700047294408246665468955164633008398908871712769798880088010210882841278333413097546537818136439190910191021348176467919079677099276232987783462521300516200185873640447563526283233225238515158449902662714491491245195071635697578682536139282925078015144244906316033165165555145211251029791910104958824127375622300626806628101850058878688046939817638596432593715716914709697693143953953406631729742108132388041051396055285122238131163427145562761480196634910632690159188111599405214609082983607049674199335705226911961911462873645795160699320338536002112884845167656061301333199109724501427457780969803931223351426429076067916375541971474112958863758140117018095368874821589858874389322941212817184681057338032403272014021940182122018898808481278479564396701438757188352090660431015378791900143536792034321777913548489343171905300968100765759003495646731408450416616576279837024338147313912781171682004661781706306213471048255623117961306171218921994253515547286949465964816146298176732166348477984263375992884114819544876980014433511640557447771986155889803934396944622630129134565401431930177777634202447266277039305979496401755246066976106048901332141061513253901310213675576208300181011019557191974700427398583813631600978095038578632303957908816884512478412100962023082388493722998431856372029679844081675191030868341135048275750514066795081722611882276196199472950070304883310607033435214104251989696361338806850197240667023984493664394682113485803717332425575675380208471909405990400293664446952680038268375272828314284083073661995937945246416140935936621512941940721149447961791143585147589859788326232107518789864023524545709362335501537400232593613385456205116736375599807731341996563272122473876784340613249797248949353280685755918219773939040733142851736495057679931212307672185966043309198127336788756768653734020558054763745516418998902360757486466255261791289158164605090643002224308478113331153636764745524806383185323233823800003017810601421110420339270738329461267605300132356955386901916088400644499510710266535437096470556102907317504525447158284617585905667094577254187910468086301104036902713891262214401941810048869734570792667677969107143990299626973252074007706568778758749819082036645987102452125661031308011479317719618390302391257144151626363912258548529557789346572400908066575149090031979353847301583918378689515188080161576069334489348167897958180914433924618372084833064009573909624183533012006626950440190629364699909621763875909953449075409031288819658774084930215390116731537025216750147619210744415345940713024561384259243770779801878830191837627633296118192444984168370143571432504166182662461144630509120808047916047885268841530421231629739381745360074474208254012915860858516842608532192735671972579985773215567779889005649941258514275256587411915134087496009465572305431205981330361212031429502275811844591983829246989466428188809447567274325552866917991582165675889031409595587626096017870549605271014018901518601827909144563203835191764614282088796604563139460966390190249850731842718924370887803978067803893415285094362116419674989858631042270352675601409934212422627044122742851662133109968776823734192748807599733748129164205509366990435781806451151885425781602105070570000173289784186144504449319801959750920144843359940545042485107631540871091604784360217509236483316998632588768927478928171033631333835933139825571398658975946636932137736184416026298520778860077376940354288681061536402597964926827145807491015584150357435762312339379636639592322467556174580279575466136777678033207419834825390606641443599274101592479208887005309145933357353395006477777173561103359348000501298389248579915004290775882719507175891317083986211958002545874163670049083220784946209308296466465073597514590182118366898257431850218101204864493876121871644744142739747998780319657020389489371966717861422082818854650403458498003496274303599102577618271585835969287633590689445951175267938172829452469103894239038838574166630975881125085345736489789215513502987352991563108827593976740276296626008867783476545057734725332617871391064235696484140215890567503838799178298155803399321367607581492623293051144965588311133595600934317158903112981257100962246313693604430307403533986575602383259310566160431573016200053861751939641215698109164312433628176457030578723712772175804038354243718418928830449763572570873520247279001827031828839940631196338311714166726234833358571681267966854832357259342873745103054685282945628748510036769080062600281160833753394942560346378311238389888191152728927750308322939673470770523009168729913223057253352586391385391344934188490235841323099676212819849276086907741974592635654238918879258011097141339413003367184422555336062757122308966563101130980936675367841846605528187821625896534732079119249525020936970071268996694105354674859409808075150257916484198832024326049808815621169140085390838298728237840395399646916885202922691863036308125772417566108094378033254950131516392693492853370866964806552633412410380397976322995764409254119112331813738987792748542223770057415449785715641184680304312732060765408942180669841883639352338861108950073259251094578872147211172841793288512656513795490972325536715482365643677541130030570720505263792476750848837923261370388846836987238374963925056876575354599235378941077366357821679590299035134200166326798838758747397887245321027429015868834934014003797089840003434519798426987467207698220495420016738122616737178968635310973987021250481743595703440873909600157195986803369113845318450053779512129722084290961853751927738730064292858598685641082763791287750751227643182766449925538842953043119963373938495056680906569517851717227436794982967398970973105855826551496528234821914923478835345135881268400646818903131405860267441040714808147470741643845906453830846735832936736351735222415668405322214941163383831061796303317429960101749856149612226633370414182923906594338129714194554669314420060230470432221220479253513211524128705806593310764857126949947362348413201855909165862419688342214363706650488216468511687187465316771659094067159127277620356370388762348592516904832837373753670266928377042994806426038596408809789479919708073035241830620043339918004418316047634590460076960043095131504623703969562797237875071152020996385065881610078286654996160552462364317832656281153086264846868119275288009952900362495649136490825674486098911145862961125943274920565363971755354038777607169050770475414507850006097558118548847316476551358072366543301265919398224919094229571486283000301003368022084055764914327556699892709061034012398657890458666988319893963532873065280423721873467282087684200636248145410976082602156848218461972281659177271202967921667103598000567076143781572188370531784567361898058533671021422627653131167033194065591737296741523887315848250908955703272639431556076770166947615709580789816518077828933014895656896692963147451954549052918854447003146225799090989446832755795093306002295714880393513661425374803760797746705855415060758755004026743007033407197045867001911966794662306329519668469917041636496185720564011826273297587280802722644140322136988617044824156210433096084226971726942906341500534330447852840115600706801931592072468542417898778252105151410164230555878234452986011629592309830560253592026840754517064568270971293152284125914614164965635541777088574092666568604342241084467461220411227708274711185247522565148643103861661268394377972447742246171846163419913452463094558135763800181993335166063438756203318722100133093560432759398736939327467273185896435207955025227739782030337690067157579411414436803043092595515045563382625529155418149116381017940545583481768950189908251937157121090537490181269313106234610691791399837286922252718531293381201499418196880436469282047189271980364519698915082631132174049631956644989019643513193482958540083847732582419759510226460490393112839656305115578067100872785498825360402967313619797976992120972809450211649284266039147553083294501626407647334662417994254136062588731952712152040090321288237434964836276434147883240576096104949023979064320580181390790957747719256671076699021660509713868422231676088466820665543178034035848305617619722934297779331284614083854051908671584464444042913147955512255225070158886121784358116799455466993419343815255588057243677002757416802670595634203227614517364179199581029163876330499312773678160703956584675357780888498482644519861938977023651903111980651830833103613310606925212547715532063607727577005426720116613603876710896179303418727653275579135030579752101237569113542501442525608883752519035193991716769709528066026856047581175354082590650224758840415939553750797750050661166642214046154692062340331547077199364846704397257286231654951516718823404959289172640106263100765948176428831989531159128773142749157600106079618613222047233901947910281774682697318231900606627815911279367495467999562960862526508061501322606424110308115746188717828656070396864534293476444333677344427092332841951657488628459476455785197239683935093880808112213000177049924379086405059344790488892937456373917412515409223585209612174871746995516646172163318918390348949554696290344725909882009447553306448893931055350072718525478339608105406066178699279465454573593404871622758827307885501185751159538852604768927979923835401511183686088426463349626228810030367623604140008911932725138608971873090950922637552571563551561065386821561986484165620747026414536173276679215076445190981716144886218816023589348131602357109889386810401010366429667190498018209392981937249957564892347338122533455450599445237870218574532638248179353613176357698102745376960196918320254906777477565633038054900701553089016572210238587590845761830812636758989838546457567157393508801781492045793529149214116833665161313179009766998330049841275440328669624566286123318249565957696541094431759675014448753347980128894767001084690792959114403886027601059690813797145005794865708164389124571293324875168585859130242982684600229319322377153104691192634861397915213931666912843962104021436364780811063102807315271165312017144510251432677814058735296440185393527688519737571678602713998263123307243442454366129041870031903267765240392359845384158986516276294529898009024077699539801058481591304150533219463953264874723926579227237385861380256993033409161489722956690330057683503001261504098660417351760139417051498732565832120548384251166303999591996976696161781784616610385565993219152978595124657915089786328783786721520213613837803477362546431219163168680118014261415088256214685612024952598707479775161704678268303944289548269830888691120156403214225578170726663855267076034241827982672810869306761649376206955817024895457586739507845113330233043188500375227092553105967996434955494058568185520511807808258477498988344750844249503037649184765387309796591530827782262039986888684041797029465843469350867967645128769933170795474907579800200658902593028251716821611278500804770655426536646415863016097688741091635485070144594261775695518557766553249033739165184269123618372150855746895144628336514532212218293674379956776538111516328393149872985865527831311166958736407485255454653122196467111502411759809321612288777405788291648528393927270274850485729626496008959423550159525130819578084554385128819983054128055291715432419971439406094180440048899949497571292739848289393843130744361351684338030444452382372458013381080565957205290413447032431790039420439539538070662037058882562510234671289195794377385352407595543643406955319206956581590598829116376397696837386891357797162721533222237240032856083608540906215244269337915994079705450913630692164910422627442370330209561403433305052553553753235195380714978215703034576459450280609259065505886981827254690541962825306419772820606414418958398848610575545319098904855808738007296883550243797698889570355328511185756022143319936921259087450794279044361199637888715979416086078177870848187092165477710834477678562704166094292229211948020351207988744398699195879621237499506943010819749804626624784289322921012280305249511091345223820719454503845483259837353320242920760937974604417712769408457394052790015435760425461336000609728276596117871506057645949134737307969960869072174427947740866042447503549914406958943996232872129063968653347525791509140829900552898403998088993030229427784489547708337489567455992127054894591515775397056129445806703108477626076801025295498494706358470111133353194852175614779327476098154102994360554376810155156365045947209165669623434844593421633360249190842393742432138978202558171723906376924259641393108468781441113209159479667691674767808645490330079998552027515335427264857480087423958041669760010404759128285703217994133355483324918578929925208441072660350910351098149663633129808907098882849253658081179551200398061282368132376310445728757393621593261991983066689286764655822413032145233164646820063463122206160690467198059536186180060999926617317317929660144776903458261817962601994158330249546562762163049042381701799713051394891424830188739898417271819881760965408760204726053039288617257306112550934921209118485149194667024213542852374226792455057841520794799718774888525950452015250926303340487888646935602264086072687153500968057672084598722770741330120386043232676461582538721959839110765118547189127109402001836817178483341734202060914754882223486374831705416222579500818530731339401371719705712250950430420310982294511999535084962652897924003591303993831910226895445050251048083147408925539379929850360184610157661953708505591625609670515580108663346623099528989882741598418475246545338778169162512853058507302933608983448216605523907400143539905686111762597494100557516543102043397511387960855357351892693735322367495319342824171684171083112287368982536631867454289566036377115280293541965057549757383782195892634122003346146047303100441356160577750127579745844169518911347520338572676527680877304927144221072465527373837149847571887086962044546689266604290703377931129170427259939365560698396584552018216582681264010414202787063010676467712825243410155909546338912639612224842554132913072919790079590875832095782568565053230129184265079952376144102233707974317326605182749978222198108476483363433239385297302509960076894053438741927942495621854429886261904230762423847271709048394652067439931817112542255172394952824938479920564067815103410997952147973067580103380051062174366988739980751138421773374987244879033682515815094492464158041680406168426064229045825184747038374258966975760161987591330201549575278713193498840135911343381707360157538411099144974459352815361696276567384035458915994783396046846092981073905360837703690385199609587020246482855503801074384148759080900207551615461163056884206495028427467829741962512805041157821089654542615699061693400230057623266147550326076425748371228390036790767439747766758717435356067749323073578192489724427792296656633138802023104146558584736843844037301481660092216970238244194012523878598315719837605409814058530314572707197939373637881559282022266407401977442955854729491164537537060010257885721079403596901811133028941294738866241916718982060992820776752154130349423241939111932823605799960059192519370704473545255783874374966585903916058890068160134115922131613450004404493399162660255664997921947967354012172110065944605159604498458118538557626539089083083771569942786032384329853107808384291802939361876479614867730035887163182517454799508261653332973740660793851646667374856481149841452640625021369622681305151985156128841896002946152749524826440691285295688182295522422406435728813008868149645121037394701872428586854762016315508247112626934837828442237937998702294086976866765921827771732248156894247409526931823450440502836513459769604459827553348568915705287068706511596617173218591603555129277965015295875599999744917686882667500828212538128409813482156750813753538872179219762372207225573792203140154879052310712650120993159702508952338638512104275609064265373900842891094538943409953198738675730001140836172029555726929538392972408265382869252188563436658459554445776535447081891264779337375277616903330565039993680591290366056314585034443660394345717885001055173807936322797781610907593257386939293907328930056440263115625177263555549283271002941392463542391871988036901533385048115816830146552493323190415298951379736638951844474939371493706007827386676326883065643832401196694298584184524796289487608416931156090911877859514405100911641361768784098711864890293744264264317139225465635022757797962083847829000969671061887592893326000706202239043756039179971186595349032758452911905904615017401298730016803671757474287242179822479471105851235179795550512817793399083492577363526544764356100006703331553451673708871996446474594352565942706671172997698885467160519306542148071905014048925993619121445322105504665308710802044330272467023436540409236555968332548322989372264533821391165826681747053510785926002703495059011920175300041282278346597871937260189486438408124853655844711989155651341082526424468763136222784583192181409299897825297986313516635282076264266267582979321539840832120495328469766104140104424405683167802740911238706616676645952585752251229680148755889583429339330072140624411166842823966038762892720618065737416143992434913260265529862183526877178163894590277209380728178369572112015823267331078922005828886777215560463709859413135782726746624559060117088841911820982461071980354783753153378324020969291223627016339733885617280590595930633315667643333048393539333130720451535306960911953433042618964704372508434940292133595380984813181618903772538592168567875444280414830632926901614410753963330661804756154597070091015669008433203362398083578148201174465962762439972798740482340845615088280074957699077228499366618733993559734159128323415062076054286721046865631243321747826537346933632406472184072145188004153448886817396326265693609028486490087559359124933338426527618386876078876096847143698591550402929369158896993159071245677678444355252322081092744336804784858742818378447454595519209411678319688339614464368851490337656218393066707308021465181981281211460785098966485867973199780046037296778821346252749232087139652873538801442114114929982134489180466255072927994056750086214131100633125433199143575891457425262909961386603828298440220486347210990747557590756603975649317960892709770196309006275110351398194567998908513177588129306484592318945821765245732459216378518278929951154920088223152540650707282117357773621098411159565379866594328812542271278179146027820990610390294491953960976765370723588449666475475871908800131717088819729651793489400546656857463595963460512650924260895435024264856854862843700033452186287398277465723158955759857930431475088200243178590403089107937004576758114113052389587222961231061599702281902725118598946181381303772822765565538155215029498730543429817781846402299162252909170282609043644822769181119166835342796836489027537760745595630256947850498648013371498184582566020754772962354966126817924191449399359437783599635517435463452116842266095215965399951159269758746758993347933430591110243330150617567787907637369247855882781103422941925044503078850002262997441204044394730529119104932438399224124913473297601115327486223917992207766156153436761964172597607110209329965437537109378033050449813232860453262330020546874448137659100399481462166605837536363697004830205666187748175727221490375414745489691107574423861821164967866166826284865099941006180046228179514006337881115023460940036467142911099679383761920926561940872778027392281864078337383057252825979844662623471211389532730017485463818000555380323110273644021871365890947328469105611948811825204028202869429128148052566731862941788181606415904750046765019190031399895662957180143826696811104760669770220901993468278022621701965092889928072257072658968011797509584702909080853216007977035276782796280882725312592284252174929716264941470286473275197229420769435778426993480885806425327656633566543820172686822638802365016611904496805348786622715152284515721459724224930690769453166708404181919024488431140811080628762378001101821497407580385485413232489517715682163848696553956250399408206313398713694185999608674237118738790090433330844662623549320134654605823965656527502138539353845795168992694550356377513191518267425312432834084641674493265515566084341542737549645365148229122087652018596404463214967344514157745478798837348775920249266303433011610112749166122461324876674140263468062279617241038318208159514640289142156461099475376369230452133683899578062484738874934619950903682198045957283675156632511981512370536383432181259455246882350011221940980755080978824312238169740078044487175777808793342843779124017980924663478610237210606311415756040629135185516041114815296738092411906859743425848402085141652771479162720664768629796508552711485764572255300613528538865887924405895474579979348813431316199901127015817799241137767055910843381866886749273060451864006242418086249593949277199904351758019144288474219916644293575442395701974535017268802928010260510560039081140025087446760227384742937493803617055677972044867921920020957787634333120924795454530810842113611966893450436334211003651291950861710234608145629587921180901697838228116729743841362521576328786716400403625329002785262660728649396145855520984593277578488229355279383212499250453658360055729378347928986105558549793564923777257429516752747270454961291452067518667361511152371252076881775445201535629615742943345348943392842823903620094948556633760364212032016688652541373615389505439997976261399789491034462751287821021501250038141411745176027703791149614051106475929448192389248301502226326855981774141282363858199392311932798766002337281988966661430372917176313490801467155552368128987158523584142945372721274614823081994561147798916353368098046035327530115454117372568475197551853980779511130422027733085714786357114000084764980561438733508765955261782608787095921164547605852007422629603450420900850257005358572263774030309557914119687689390552850954561386272720807201296314359623432311316797198204394858647442689548956684752525295863177200908491513921780566275090886156957951633727667295142069921921176750294982854552978778303943719485883664012675244404879321721056969691515770110598258035350260124307868245142916377807941362906375640874262841638396194628109291892642214685923422309130886828201313241308304830900382510170163881735881000981184754928872886241427594802269038685130313218867155722401503124308870923693631033122947681369085652293207144053778358743803258839273633673732563579712405476710526096262352343213842614770877118837744547648113749055985735253031068045600392322236437355036510303642025774702989018636805833675578298356998724083614335427871600599293329598783298918449496046083706210988166007695198849970147031505809006154772742440410006640940723761945736800896536870150819079958947296563064501790585050558354265771192398326925416902479918998415242171765755465646066028700396506612298193844998827079027717827310032096104543183764661909037330900510748108585114867698019262171294886222070283921339292385160179080768390860867331898971988929360929752674434881014978767019187370000347457182904099997586579213283161361987986517058803349927526186224079941071248357068546751955995315550174440009110689349669550624565969124946945569309181370847577355691344209609640896459928670382577344508080233996212921492715638011844383735373062901263692011768341053958083153546478163718999563165432469049385237610054139452366642617203256383934636097106217059451278781071845728996080090642983457960914570523658644293051090954866481612355776967131827200458357268033392348015911967832019930279215052897848752896137841678339919436272704401013302053067519027481536576543252586847866169004918453611164783388844097447457958109542989465630336346379279962494710712181057358224421860929771034964367114731145627230788381320639828257603668456388376535227002444437200323087428889563803538575649342831320968561066682385236505320832196612557312319354424909663507962057483831988212250119247351658482904120170808427467859669101596572101165936386810888924547120022273721176399779693495703472560337756410598819712069734639077459524864176371936101881887414558207726279925725343232437841828340179535205002132371248762928467558091356950024950051455958610480774231657262951117654251778650876958002542134699415770883969125080844228848967679267001676877255620737159579792091585181523470472628410458417425506967145303206630930734721474324903130803075636430754538373104402504941651700750620502510724554008460198337681976602243875933245709708205482711791841482728086036237619618779116465027952075057633195041526782061776568250938019322348744090111346467227557938368716732626514560814951007552171000360901852681770354379164913646478384579109688224300730779717027369677798013616672808986477940947718207262624261925680111049529923927258283419381662785412487493971645714468882542879616745249430055305631933184935989787329521192031400303390580881048510699593298398751925542339250403200339443167529373742376752918120379579828519638830924688322474976472610689311389841663424111452815709359092915315002810479828806769375944490132186260200240980557678439155952135162245102029016984459950302542744677532866794360177526540870736060866120139101708272107654753954171617550634093959764312310118664646539348316511041636430977448708493969480202370527108063897537927704529740169357264155677972192941224061161136636980347652150587479303673510119287140222466771007623902909422580527642232804573940297638769453069483647764410744077569604055350847388441082028082576405811853120143139573203818260718188597818193110853004299214792902906613978240017777817207758687736168361893541190658618207664204846232924264556956033897645791265188959859763280056009551830015102037632191227189341197014560087394589872441378284974074973298895967881318742157833919017392761916176124610644785404219624558050470370299871211407428479026694662079639967312107566541013372084393443830631975021578624074281865530785583027017235555784785915048094715608919736732013862173754600463360286910206106415969699370131721924446140908361707915659579281691522587328400061578311603766595490090470921309985349080182719092438380007900636054800966395253359156905371659861769181997248047805246719291178795203446760835592012826809465613036600796681994046090880671652127217386641764431745033463328159866372293838013741957880128374057677508663491985961959203997000389971068964828898382551243365682050787191925257586517485249567446756103884587558370230539356010315232311915100019363640017351840106616049467605594572354059463323750987260361166481524172251380999870894646371014331089467988619900418773025267040638172282145296175816178165967073154561563521388763953586290937748071803161597497901215722621445739488219919184014573859373302837191241391600490774708954914786797147321927767121997025965732387427567896877895215249070548911715031017901509227473018579930168899646563499419327702974760667815723877840973676965925922574119695457824968940806270671718251476879327434896194265121126794171201438814794469725506400970089612968404623081644489726892242706498830136803796330514837787633854623316711503873653279574157372950092666893223096555816887580778338660694552136811484662055724571260441970863665538611980411069243755388755996153580587217139709994731424727918501212324307012209015762052170195862892927155182927832013855220880558050194567674330515686729010780171841317380340239999194554074515701316577486266602698897794507258748545152609837451150584799034170864770500203932859877095688272005441296293243415238215187227427190102665019434154754067273778463734645770945943482895388556636777113257734579741198933759671337626670025535531503808313634497711724848136488225963727106233076747235452259647984488803794773661483057945503678232041956803533348522609006752439400433353096703611313387056047010540495130075049562363796519361494817682730603050563764446415533006942948931467396745878396646789722392421332214887526754122637993315149206714710759117023600811067106854261545658168504198462987808731766386508228732150654837453048427562460525754605766530653973616216046793772889314989432840172674273498368749803921930998531576705632232780638662750326869357664617653558144095918785780346401605222201836383838697271976086484641734469522489883387884332625760388556496198097628193528147911116221440542979090605553552912592841283629315185301202146955392728683568118154135546465489987112333844765402637875580380075700581563447477724145475213621661714577513916108393381293900969094796814545277827263906149811440359173011038966259650013391598393443278420990199063229574617380159228276510096039373239405234638487358772202211150789083800101364762654078486080699427464838699814792464011413384323988568734003166980609614341466511282236257518106671256883216786096768735385185165538393953720661353879037182725928497372843102871430674107170056278503689657018091674841941759107846018360475776298096604875252230251688782967388423131740118672369180517168125627415967609459195258273467085449360467846152466859043461229498446728841757050929528072770428416535433369306055044939966974779349776550847300013846757578659619876346601559137512793152885432387114942404290910136342029799975184506375329003481190008028474509708490055545543351590644906496733108466658013249326496243702763880354686108528046971411007928495659831979538883538868744495715619878464860815519089188710850021495375079683557737248053108796955170774937572574181886900792999275316625598615834212421309790179867274011353033696942095841498847389424501969059484597557813382175310963596449268905711112897272000068791428848922356287920051343841678410651361320679660725999997411758549335957749179248598684582733787531319491548759025693862780143208106474020122511219652981092855032190099226173985794311986097722982834801280555993969580404270710565006003880920305963230148718213143306060121934588398265145084924673159387368262672160266907902785018233366174087148122277946629985060126206855710575271833074276711808700175719591470137457662319209730395073208737656664663145089157512751202780128805146523279822830371543049428094861821025365970685067676601966483733254211228975377237676968123963570791507321245520836127799384394505314155104301764508551864394007483502378277940646831949355075650876369987974569632371368819138290852630644271825388445766489643371079273214557316945306984313917515130412037851405973150693210612692053737718221277526500725165331850264189468834580923114669914561331987861007607052381829896250081245121656012958675057823943553310212688283173843950722111869949933830343828345063717048721181213427832104610833521853337645598720809738983356417765987416710689092349554038019700229965936451177833314163362521071327525543213109987630379211351957684239785433771680941247648709330440729898725252518705597777893769115499607295070018289584097711179917407535114161584497870384906091526988761255967929223444418209298001016746595705917085282965936384869302594019113956649242529165002830166655620377942660141976008722041167092118962113857020677437893234099727253642321998353041765106811276597318555528333917770654576513385496531250533017505385412371742114855093266381670352578778269446011391874939874122307711185747721648639824423448470830488235295923542224119781157286385321297349255487997883747733076983261393708030853167395562403610162309955746697761357828985823222802356259994773570199059901809336686135336735998549145945030296855778995396167174848320100413238305122097525720730518316397656193583341919250632210751648501474443393561418950919022456334388486204693559350007433969295317776107016476748649711930184278136624818289961034519316171887913481028513354862445126459091020970533142530658013751123424321810675645387492086836630633482529788642970400397056811806655248643534877771124635631853369543711594529380092896161779690820376450255953114214607021585543963617158198346880721179577058415363921124451445479459944008658518809645030764307416705930011743221663048351267314118647904900666974919327215650530767211082416856601497085162635603442814565034425145141023434051397656493605536012774899509913042943254965408968911921676549242105382062940113242440139179540863739292366151175120062915240417170666803125204766789922047158457859438407541314099791390571603262171685209567970569308349217158682075096946403431016762133514680380615953417385221190250299139963152912860982874018383765354093084832465825960394623811494615944528864117451680098951583388894741105637757864358506666786652577824844261803439017225488907796451507104185385662730290110866979778444288835562117842038257612122680222901981909990267656375768184974872094026818702195135530004547390151660109263324493679841681865211099171567025011946707751475277628652244507364794765847996428535142403458971381850385943897177063341670176116076369999270749923684065532294303016997753854730654235844633807290445408699128504824677691830330490069505713186163975536626013458108420599119938759772523816341486894049425270245568799566906837627872476969657947235420360016026312155891018171275620576827837671242679643517032349781705443578582592305703034046785895267725767959982272096972534116144680386951834952590080315104075379916678573724213287257698956446782820643118938467961267169524716220104285185103704467418855526238172292065735877212213400369698636151253832601480962167996101007689524516023743955824421553619519732744479851001373958726840174642861511955093063827748883009397385983850431568282614968170600223497496240556702599095334792265471805923100750633410468268823201986610912606848958298607061181274188121070157564552711493709964550563579668247301593723060343347653575898398270579635118275947810607769408875781899230787928916236035075209288869378881267838391334659135659220577259548145039688985135266683688759965412470018931179785851832015523048545579896770662652565699925259816798989389577296192544933606755780994149559185511383131068642860565412204502648358198903891434021295692033766123808848940861243968736636680114414636983618734665108960950611402146617188505889710565766956765391780552379968489886528333022866792632122312452222281026234556751194401547680664547231709213697458254460787192095644515334805879905065152221400810487943246275057398093115100457650029478820437411952410114877252168380265303456540675830120366188735301250126605829526036073292079797704863955162699358845031343362914483426831764065108228537681726223395995817135541252598759323935576860656700727534280472324000570872282938882953852244227234981869570163271304601449188325728587650968409403422995454966318341803426181431168217824370316099836049469890187014515272138094246740174695433607728920661961832420650902294953461581531095206637199418625997667941008433070944122811106392482219220916249042279890464458311894843903099674511300593173345385503610686517867628058994127812637060941411772095915286160872700525829087366054808852188419380345568435520368783082022360553445712933873480199678476680126707040439967946842799603319658507770407309130318770824488473188380897519101169904612550321969426006670013157729388298614558693869265408505861519633289477349971488531649536330198950483077095549563861895058382466161419260855068043730140057245906998736560107363796854908671160954784987447305313694766301400672364405248022184095484158714441130359315590980828640219768019451387967733338316064226224203021171430358214417449287855913742720346616131714459826689009071265072968855291294495982696457268940169654779905672370792738474472818804334986385307790845426424393029060432099013699798598674248744479406040903453087869209711118997448286232098640006801217554917964675835068821958824921715072310338218057696559490661261382187414012178196720457555105233823248495897076302069420064723676176390912075819939430991631673188285884018591245354409405597146396971667997308461659553082719144457263150875011791517332855245675282211759338315109297183412569362942089302045253129374952190870681030137799288451631035738999001730205517748145770284360059710993464016444532483965279529717404692277925109159387840340309576565702885643729636667200706214088809366556041818529798811969973328529174837127969789163998760887245209141170605337250455957388604573551197669469655409059852749786985679155001667483898379372196323336100725191718815877882497063211748377184310602896646893673415787626990600933932710119463099643915323734345151116416073438913817663038361781349517575332054550313708668556413607091363090654589616263352213785872207013155480500265134190685516530849774183064025790011936308866034410645408827124792207533786818241955525774450479929869582946339335922019005784813959983247384701378438116534765699457729219768533168785483730847880527127599617258676596776242174156857551539609424325026544207283928208849122985279019712112618648714791946947131488896334189380594663890938404357890742798781796571908424014071511905549236480341111882791563004037363750774782576776391883958470864045822614197833074953205057122713868376474070070774690330272598552589078137095998456516706884509708011516493163350649513577453615319865835721998987467515558805744432559337280992278648035271962723308741845682713223474117512963201865542541153572347750470590238493783997977063489458781917477309495300615286025242962567434029491729041309309693321432422313301881819733773923805155657458613423553185310588509177765073570227088327230816413380357663230008367127517912604717120482775197209874227655798111865615419389359946605407026782498284747822164187871003680082797023592463660487028955986041233657148781228198397556930500751002673966161471089883170172212070429012078509776147929872207144737462628482497997748864851295843865275990071521381330621843043699181689440745315265112069549975849684975568595587947796610363820669232674680225734393706680231709428983685467406767400367967757522896184106875854227945255167667647658473796032626998103158041806312836663896071460978130374852432830569023258127571108823967544739446786310317916736635149756353820546355024329109123079044845415960121860436065370045187268607380342980223237823438614032114235173232364891922162973632666062491757757363927607200739585367415252120141127256987884206714723071674620304365203853796488619428180201586393723626957472676985706106894981451657219596831649614114659509220452163369579690110801685445046773292983791275977942732123925450855617875808253275255793276480014144040812421024157133799380327632389289010851240315549406761282671567002312728844580446971441672223307928010391540058848053313060323117607417447657064632416907247206472054948623455252156932662492709818932817243758171081914025247871547489265746111132461705456597988391279886956312630703760380616543752974395870131715428584091671261961868888126178935032618757160854251369599687525931928152468281434473873088314352723237920180675399775081752613658788339730477211804623468805682180667322207111484658930805866059308898114838971758233846530606981156073440811359458719087241215873830208622086237409464051647493182057843819768751304360896780557555702878580900758025053764530945133871168602873578228935119868249763307961506688745525191493377791739896985337594405380107818937926701004964404951974839201648494428307835209361478738562591596892437343378528938304489475066836019356287406708022020945423037145526384084700891498922098573342643570947986039309359727755687803691074656662130509638596319687548886836311016472355459683536703442701728417835028616436908041983709277778987864240265250986754422551151497506485817076247020283640665950113901663237413764466506837364872632822388697005788000955268724155519333053932840512647281260133459873514556541453071743862048300472228507930388279880141298552849550010508546762748163518940188708217753841962700160247430016627169527863895710037203166897206948670965633941613784512859830591985061981166643843265253375755544478734490125532463920664471361401832571377346431545822097673551274089651468792854107674618950496475566571986684900609741763426676605269355279738504609065002094217012562670173491535446331594183618365810775582170156023031509993011356396600435605177119237987979053710917377035370293175172292791386011733460322225000218726728627267480307639930112717567373862490138027090714158023957270304945774943161696941440464282627032543352006097671705359971915207242529801562243580786265281141780131222468713429799392629588140006132247476478878395556072545323775312023479631740012824475472265168124511651082410325723039486755085634185671130762721265716211580359812803308564900835803260362849680890169912398863339003768707606439617532262572843113704414719735393206929702990890563904131183394435211852068914841149263949311924104701901970295995285518086881457151824042360309338831198659052670126845972660045765163185085726672505692334205552392234849621245578400957496355645459078338590833181362174366815396179145701848179524736397311131711756456755048495201662579662584041952568466481724040321732668228105998198681464423954815772368664728057983907933957744529134490950141590317487011785407538048018460261949975898480446183509057111113117905289366469979699550210460437740502262428001571579083207577565261413935657422152753431453958189373318664151828039436365861108845774372801280937018755966241584853587318958387901497598374362790677895435449511396936312251430524259958808009848928771796620654892622655749011045214310279531038620946561958709080597137057111340708260360103221823614119802815423019835927132491506404566004149684872900604630593594348951552413041698667378568799879013005406432533468101174050908134657223276202316925097093574137155105490572357208464835028012842828276871374645169964229243448969367139479533878224947488632714521714725957480852639289876291228601707054517357144829978000940668621761663150903506729013104025160145070494851483497495786505510838831431344819248072991585854675988621273389573327144212902881282125722855491929729875840250955848881920806674279939465307017017898959866830986807266826120901089540356716036835809013693721162420824646549522327604938231659747537815577859905590590099057316822587359517435569303124039111820772699117841778508414984191087767825349593539567692828343395545172586028894179463422965152698446673480066480876337431811983628541644523966808388431862846231129605586180448238140728470659968979440833830771930175907203117388511901930152285449785550644013116321205919242472930811031493371237499581396657562416192807099555243501180385220864421948748131186579769322711472592973928003760826862015192781360937042880368420687843692077895367141679699972024421999213186907029697651955894170388553060007461793746973639062674698260581015692296313086205451095730813127200396609622523287041183594990312948486458999655211320369787135370717003757665828951871526866714986812748349777912629446452923988047136792117123224703615438802247482896564966376410232038406979577693471396822210766413127694322856307831447303391352319296358156216425758043724931532972002637975344654742114563397044667379061339819998244180351941924564631494682175010156065701071183718138194410701132390917973806079305727678086042488105700630770285482171937849934894438865320744449288850793863600378002481120888604101861968135510112223723878383939580051904154107338754408510127031924794685558088883620814025471353007239069106414890058396575812696148175519732593649224855163409206317507129183984554279976172088589633891658900193980624042892421323147014574631597673589831468088357751273808765590237880718536956469321030001413034229875455005328093554867136490867268805056813723102750699711476170569345607311380554692477985679777242017877525059644503920038123027409865701556603430788734585449825413651541203183049020151775136564466846069259478069802231639240634667095453243484588887852080911269313290171322019525550931399948063203304195941425084654395555768972368310551417071874902569781584311918309698252016821757636762585337998261564141906003759379935682533188415032029129134417210142687075672963422311739795250986492028879985575543210477448177903079823513965877202782321463992983129782133613265438327556946709897470776377153039499126886237335179868737068578186161369849148057519096368693993469674846028995211768144710931681110256585714217680977037818837619219243909352749604037136928038257655730891436856149680428413477398687217865611361411368265662401009006466934362432843250911674009283331494256076225863980964861809730660909649475546391387649108928562346839316622613273840949490880843949515049251176297973640291746068044399953232526589766184463943417140916032454733232314238105410318255415052826227786248771114506058398556130664821004347211733756336702364689411999374187478061388043826853943704132347434656197637650637498420498946200226991242800537779447654237805999340037643490505529611148363927989855879965613339133653587726313810349986896092230415174599093202263651676069285836882009406354771369747684810346506287974344964243017116575656156072877912553933364453811122747361723946963908816060971212671780760769467844094911907808219516439785411212499812038210459466677075881763302972079164500777206577019053833131190734535346784224210864150844365890177314151039154712729216517263371639550348160707543144736148405107205818636080956955530301732411491410124161691059466577405130256418133505984682487272432899388326735410275891193298157007590034665926485889753675420018433016634326000279334643370577669299987595428379864173096066508278796981935539394451451887348174777462010536168609133847218273064850853819460545839737126441863381486712708868466422264314742909720794373317317498459771209285545943242565326867707220913105727219872445482228956297658351144986900594861394732286394634411592620369983226180001856107778738928461853317290772182724435457520023947540748873672521860790146228160850911945673290514471905483619283617280036383044431284242356917951310759100598433172493663491123330807711915220617074320433537914218754622310754475706793654821531455928505289065973269980084681846216947802406500177104576831717817878858703242713009518571488577169116517499770037972895486407424617162334439056807812832620957641207715734346125736782080487162728439878003637586228876610557861832238681252537861570240503124903435321893722151986043148147660839405240484705171569010106975860837014114930621980485392135974029586027883310560564984362435676208964719884794114333067288939806475463969840799808546290418345491353758679283827292310329051072246656173856409562290217388055361263256994356450668836467016362712113502349379904297596906086291174553014830109572298426740071576584062079678629820140612142196529199528015985830316538226115863230665270723716071473823253026647933159868404305231319384983664024093443242241047951091976002432080221542627272014711935692480954323413126576961218900889136212957318263295645251598276790097479699562418580689710424380115411251461882669398217962043748927748482328653868707883697630098805198554202532899713978884315644663588384692336828431576174163804384822985897513748077838953008313242042553644474183104451432963706761746656203187648104791241810962989145099278965701671583226884704814411647515579434682732418659980161034870391573658308453048391282953951430228993287528591647279985920013974102046415198983615650558689994434114674880881337172321857812682650718485603934109099082891807722274164503756372362177762020697215387352210596934570760906915532132018062388285568120084931173735209795621654673174668398971011740524321502263547030304801728690634453708579425213418413099291378718652921416426415965975991088635187301250236077042866591164629445856137896109878531823129976553528042581726016723248436132036416982612575305590093332241964447531423695434539475213612602301741169960780191958920653932792542788904308248267672151637216976666971366581883388280435190846353732767970041623720129733603498879166092297066183789440297116975991109866592879780692570438094888958792458159102052905304312816681476382564982316442910503130942126019818425728297314066747185374063297745382741627613074031759480431061981351397971929668194596779942700902612918730380888950211186042788390911380924527504415508307896875793465673852102893566845553241192117882460654542873429256868802064387137258665334259685867158628071534111186227225721567932157193970560586100487002698358151355890244017437939663344336569835445462027253733674729428705648114339460727528033982891845708555481531226163578594283785248270341405809225704581982471811863035817275306321200160425692807505719366381994233280291909163121864099203943967381261473243987890368495367800588798254530575880089326046263444896742902501333445379965838359757188286309005412166556717928252609822698806464310301988401559491623569664711473403655167225093308583505967735347220450312329166436920881489521732040395721683503347314250928552560406107534232015354662064593779632224904689776126833780356855385850868504658407908556412082371525871800882314216900773101264730114218734517529883533164136592572063261899964287997097356057539365771655986054887144907514601101100828990429722171290092262097918387194554648873868510726174540802302603978277820563808572474838307652178005122794519957349422519929936691883225089248425457081793516680157290544917392627508998010048444127285039275551790505042728070190447211055565174107999282517871668285080892164048039505638519110582340226155564745679624869248547361681448651404348397487085422691831589697509668431490274131300556501292786267693447605532215018264324163602701524480271121218334225148933561238121114827523818746108351672347024943005205215994793934383869581154656638787842674385814260038272806753598492638272331969502950450350098295567359279725822019327597160773503637174024338643532768565961295245326361992844414170958319518732465537018413403901309357032808167552580047770945946605296259696448080096935265642088331311682658098681428188624300840140894528175338698593816250855842816398858636425670185135854359680584581970264181692509893203109081785965543596945166263975128382898775019928895449757028282182950804819429852864922454546847241462644758017982511225878987886601125175187292676540594531038693817648760167579315064679639123781273083051879848194715887156325867019851157282909733541484647156554710163170928733713387989486656581756305010039044096870026641376488885879792575880271100807925643908496057952610802524083780788072587507838842436355575263627656430589210356685548649627281731497610085604477119380578350461718069345039588224588639316354276414365815998895457621791514901826833789849879844984068998251187377481042084266972066198327487108976152386439376222061891968092376014113399967777253731320138363017393424285061874492515762070533829647744365989818921623552730611861055840905511797521655663354206611301372236644860322307783588526182966756818417062392823267385675313559564893630770110122031753802415496716756253521744006074471630068164888522221033993153419323969717431429674754333874794070063182159491588726997459809879515409129862125849773622244971600983633501642102563550432699850987809694867547125540856997755973980479042429538646380382314126141278283393180319317552064883106279705354547120050317353376271328652372814773231474624025453787438063395685316862121273365534135604301068748666757776699149649950819508886353472883582972112876737744886267618947429849404503712600483872878538212559559939401959109211734209393506282231701491572199638460019648262936897538138949131325092535778330917265591543169482093348880521679528359462826614520253607141631234714405742398318250820194522707296808878644948045433919825600014042048586034518623798020373075559804578496298175750626850465861533043374582441350494135627167125278432606950833776950739861576891920701943790074727888908505090686788292769758154083337863397783238790889157287329673923093466917636787534474514953754182254100702812904393559532699491055593521373634194587162942349775902462224432116249443672935252296180906150817581303156942100532905055637366378393588826757331468444103783200149268620677372064330939169856691516321107903039599542621715235694005956207488736991552153748774298089467233465858243506182778808505116703479570217617965892040537596420706275314349186612590599428733426268290801768933804270827868122588351936652190780988159051282324714237639865985868946619807428179155794216977697773247885582016025462482434994950655887578548148713683971664305582812045255152619140018146054607521121714690858719001819831380899619288804393506422707522920374049131597733372065962157621382161805201004402469199506519100876878720122759227789453347212599387807176211433611013744119598226014725449458202591067738193239483216532982068260459202204193321147468653262028833528658003577900760442368181056552380921588024699095843761079543993529376772330264706974827782446064157587169494350366840588217728148439128741130939434184828415110371700781397495303444337756102612844822644021945186959366055750872713830686424249921020003070673968747887294820456489805616201536813408341981651014826009762206551308743277346330146081440064522145862356181121723303901132380658491253855725303757769539473524917997804436922941119849450612016905502260065584063687705454694425421608513224716613454603766145387263736759572962546733565599712989156646414601702039628870502531452390901321730941944173013524963570321289180041064334961261556048666546821451091044521900267677833266566365324595545435595121719121974733980066258200844806264782483754251885659434083976241684480235970386231112798318505039973181052595796415073834186971623001166950124389122013542633130117561119407571993909812318771462805182584654925588105669901839979729122752063341953511321060808024715973113293914997601194706888871579188959648716765601647780935001825704765766179075844681124743716727338048464634782421243171832090068908382802031087200991136754815422182831829757533739184920419706286203767974562808797537209488925253247214700350201699655172832978738280336775637229290570550740993754042322679809184788999460957071868254641515667908699229414389872966273659537935661171492232811815679929498172226085678069182398353318535652198152474812236645095659324878075764503492286232240330777168495706561585448270374280815549681011660411820795614021133019188758620893954464612354078191664545865956578785383088711546779802863010296136107553100049448421045578682936644316732886569903663706142330937202920960837027467098107680273377396706958069415344732479338946582879331472110352408708001405395377294013368081562921081427532041882165410981192847348598107902356834677539546549420855305703786908532927257945757163238819770911003042167819168290354249915851308328627988910901382763328155339079141440073014827091500444517285073691247389215811458139347650304447311193251341821791096313321526225146924209722411618764358304784451270942579791518274023776009836092206354427990672284626071451385370944068465775223426574135402655992396066128036849897878064956948970562221345186311723389368048000684286523975264345216493739108041152877545139898045742894552651165793453163567159574088718342955658596372465668791731847369222849223522878171347817335987844102775367183156620885801982808988168611046108652982571321766154925286692365887061188312939402064783807117131752395555093686397812324954254291443037904710793479349282574683404513049638463790668394148905662221681166434795151238443248071199551052599874305306741804751928082291674758561354972937631136641405770474825187983588146961280462646080007697986826071999229785175984501819265648816329623986431125963883537336192513103879131413101509882259439780747412455900050813653718659665229920425449715922881479886414750279046669529798273679868889887926671287724610221381622441016462916168535555223036621335754841402478687474832438499862833283337001919149219590562270037739873895697285757604995794093406602634377540231021091589326331718634111907680412558117266759876489045041568222259608438130068000601569838050639913429594437832968787316057534696740617331130727551952370292008054662995408823902634992633023159663659459875759836147677115315484227717140563393977863156727667209454793108619266251578084335471225115376648180602595692597590059798058771905126927129629105933998897922952228951667245543287022377467606280671838707276268847313011879041602287490058598469976604865489272024105697806823209406860599545909808722480560936238716476667686925066290249067455932976498668353358076244282583690916431807783061935951201243465888599966223369272028309153377554956146088537491265838474356123409169419329209157570663487422937154343922939991447004622036086689841113226562071088533649364658030248986162358688522953030380368176615126002828583308971432259385697618685131196282963452608514767461865775465825428215091813868818087644693131595916909909482146587787229033303436459853854764708213068644041406120977799314873406239147220018715676316233838633528239009444757475555167925112435881082306435979272478766225320824876786714676285729612487693779948835919921765041863080458557809721440007328682703474684542692029814309075286782790054401315736515598297880496161604736497741898826718253882211899170305845587575840613446343325890285288684912597691709538267906110267902966805858373056528927485251153374116840397903682305580945960247927850898207448744648224323102082931213942658806921744378930737138047197142098331706675449306009394592316910673898622484688213604983069400863744874839210298243631461665724532376149577851236013450957744885021919599836107777130484830752500990250499706188213066019251164497366055639477607223545922234140433425528653056462212342891548082924359355081482516207059490400036186237621131193210568758001595417231010145668494142240210122123401804855476129561863275961570479854285376661187142069188565710065468743671738239680495523408291955190943632301477254260697987404465541258388897343034517707420080821263662994760672205391469268823587373426907729333449215152496230215495452630652853703439784077577222114327889980821069526075556137077716309069420843913118967039298159429127097409133823454903899823565435352969374842676241807052429434277546392098106198644749581686119654014087918757519332952166957837724980115581260678417140163259787568091827289477186718674947601744831526107367467327766013009960655892774922412188000876632488115079124505278694096837703581971668796307536964340158643742283398496112378328528154023145206411811743665399336048048192112002568705752168611110162713540639042321494285532433041527588252336152486575068211696673806856520441027639835466568572883640010917504608386215598404283331250313174098352971677720967891314289384220711526419881522330820784298569021925026144064557514004920181734248612983330318123145667822479301912236884239293854461396679098105168636960693640954770890657339907549208388296717146408416036501573229715729473480417794854146977617328946446817440065937800505140064496083730410326211187025928252399891566060650261573487073626675011171180562108003803043509057157611902837288042447003999342497522417216917553127357293905092105890788734317843587761439677299149219354016089469302175080723141306211245141000249538824666790332350027210532218491752415468251674851662694471210084382085312738595437584360701797528066202899291718961387019024192197663859236068191412949324864517573268952005038611466378577572742165726874288152947604693910321579432444181314353202002566497679452272241550265291553729802289269866559095282741474653724803123541209069440614742724680525792889436831355549799369654153997241456498690738580578245763996962527284358798268918146716146231115363949896002030826694325274870709749542065849636476360122819716647480794281671008889061485085225877900269138119000046387930289766506049467895645603876393203192689915659998658841184246765181358399905121639462930791075893928814255836740925615708051575348312449098226761449604815878160862822911377584397927640641295364779243728641964174904578298161679452984331726923019470559239666538951879938472539998570103208102571972473415172668838152008441952625225866205378316424717987562842650714567116458437063117664444510166340841323553469427812134081559342352679987955650477091561443564480465682664400022858786664892104184573886211606103376636829860711008291105881491101925350276759479265990925304086187623763544255051127830622797383339460412080187317602858312875157145200556307670128586949595986016353076977982678831177413790537662953221065907426498067484993677343156484693264417135889614473552926913781615406826498758262904749985087040385976288488509966920091846175745377419229712100639843300296153833453536208642167782619073008337183638739301210230909085544607380078802287251405266671856692139930905426301851153983811982793529686777199378310863598375205130852838879420707272182497784455219359872150926810778356064891193221319077446130873718382285644746867653675201874250963376072180036253743113085866124732906015676127656736941834880777809309190835875505786261893951050874892643052201741374799761680604164460189505801125576843631162269888223944311734550717516600802806974758830584262538736781493746292768030380026901522583307068831543955614908186859558444812550146659669689667303950516815343591496032276607128569053251252142838671900932100077773451338774543709718111278461376482465740395766206130652182210661079615988682018910169201142967892895995546950263091140980644313156573427055224563917168390669696465427807084553008737504659370762706110029697615950835045943009946097502629577943002969861273032305152099979545093721652417445902245608402472562404044155126334612571452323003389959493589204302024228862399430726903829829936562026344165519043793971191098230136769238918193499991424140164576661393772363983713727420389844001975210457665444419725200862642393078485087639986964173025118050608094035272229354307079131415008358437909770871933184112031326574893698210293177455502186848275401583152338739484804600605801399155834117820347499711481199489502700189260014629317102564381366380284500839703129576737826405815569916010524314873180500386147675170220527656514542064304828269187760867425719556700573457216014839425039455787906944740710238047629834354648872523541407757953759571996549520301551770052253045888927432980103081466395228487287752650282364576544429966886624011917762209402540062194986402741922980543965254788211248834022766014185221219470554667044082376351843313415013207548007679836405576189837670368865318515971172449191009827360596303005797679062788466823093478773092467513543824556434756304862568286884578672713383641992625763009538392856327532902323359487200416443478418104586497363958668758067670852613643267947929660838897314320384687562727320878775672952007136151019347652085364210979511607263500629580871438394044313203135222662829648263087506218660593554165505818453729012599189193320276668815512731774042939587592671141618158718484259757289205348558152324034812192013509549599237228707503321506880412705445417272212037472603046058937205615557180355086222696760549134025984987842580008963760612772001717239510622082692853262609897849819240698132719663029971957080251067107457498147143889151201669079537717973474726972701891201687537398612453668993613225734801895311956811578118923271875194989034951701743951671104753807795966998880435396867767679223941663284557848945356405275412532164038258276049107550952032104379267932295577259974849771857844542633659884117332874973381834224238191144776564752461388449760233441800161564903572032582886629862761795689355456622176085482518680286516487025496149859765885887127928250145074045723034738022015195136327417109848677160625859206153222720024985176069563581694888825316330140379377658661543355728363644030198661567775921801912848617261185337994591626582722498359747956717260833420526206778495363605179802373706670728417973215601293408331333168707318045454133604765942718011899598911303782734370433034976654813056256705727887503375047853979505436259740492919820194303848345209576544267089478306908112429591339764280543167391731356310268803431744469669489290477114816778629283187504130927133941287486545208317438059833192115456593652827217054193991903784199067515905787810627624308225457874006546709925175062120335246073185042790076625603951048549831430932812239727532514840233096504664709769887127017327941071850783045049332073506016971394028507575625897664364398027686424899059433950397948356544444396654499119020182707432187848627237963551329028240465687724805870936522747967538566028071227259617158574556350380884910043012844938726483880780825620304931506493280200573508303880891009666856919033001694834291617669465165877501324041927918563224755571967847809902190830822586889639400338321751153071193258982010196465905027178299475130105984174826892081812439132750538529921307481544981944616904385581060082629159723414734443040233605095559008571650869113080064087858419290898835806878412123627240853298824456310572229949680224000025551818054315321628738673366017468787239086912475918077815752198070446551721601820837640191006872374403285557328988650364246116159392341128363109692016631862624030050866076114237975118598424937324164721985417043042176059871979242335740539993669316624824018004838108737758624443144844924086961171002545686728890270372199905238532913444944808911215549784406520630143829334637516498479641128386815973591079436108354992375207521447891565416472924798703954277948457091869585854749960847256684835665023820349399770617642393731071725389398885915164893975474763687203931417178090783842995909417177663783670531886856198304772468759762168840567584146532327303815352078834724605895514710406946424389372426526396298524473390972494172787749819292631077374491935848160894389458060918225825645167993442840858435268127287240234646694762426068080493873223530286489227848404945456986619410012172582999953455909600813562921867505563015847171801180924391297226508864762379690846276209485002126448114565353166137462904205374602433128065442297626646516786344372945935484071949443326832943433448985610080031150515698170489169562154937188580292878065081334569168453889850961735584176822737556173344278807424848919063963324151800278982603700684453275004233985003253164155131541890804255507710079334386073035408792215384924913317641052279443823233683555586374439657111695266407257439171980596833144217231761318956229251980542937043195441459222523059815726001164697853089494109440194602373015310868187946683244090153810053977228192131291308706307877743037444994478102468615679243448180215261242008543372295771761679931076745708284492580023256260372794064231265828644284342430398633685581826527801072490673805261459653124295323863585259761254845968970835083179856860611622484226915451181746127545433534503167382209429850930243448376510818260083156438445433548023711496187499255481031028336444661283086479065599204547983190834772590727743691081943459473265418364399317439686808522603402005148487725495694290794417099982875670983640057591509708094896042300260189249473240940597771269993614828640891086650608627381855109783094198245478923115431052814935176061640975596550484011789118822239382316905383104179841384637300607487086416375978416434916735063533174253770793580588594791289791049781632030439353029918119030931022324541513385255785939304129543101350682992280614153827564791617626147332947877691506505074549405005251274243758807339502327075423823395656159371394807547920065508012479489424758991710417729276119884165950691970793404683177972409051008249016751054537087295617839440783523974070456503240013800261041073127705797370232801188461828184691614851203527179326699022740017234665338707628852013024016878378892143034401975243269812601999360111887854339836421851338068759663599628482550626451708565668053012556370971894498084280796927564528577479710154209945768722433789698034018694531117507466188621046023476074646513691914939815673622964303357816000863868785444037766117543078792801949475562914560694992332059506269940423687057602067708324967924882677768385207552145447132218064199256466339465935001639487905576150039516313060377199949099832759658654468230574909249950571741996664085600759428851822738122948091863907646247504764858213686744505990950050599700037739553233815184805206487017508393504661114901255352935699973730907047565057099117766347126812097044826296474907853081944016861082044546212383308653248674779575673577924208126561985148132698791507845002089600237198579498149623601878473940900728492765317985030967652245040513192346531023349442950542093847316093723199214303053018198160145856065473759820478350552316296832798820476988856174687668977969450367005577774660295421101014950954188156778612280477034201857013253775384456522589895750735331651215158859383875584135736856574195556042498197745499858392728149788691956382333354416586510254975045953367428506919999936390444783623819181731662698606894447846524941672213926295095592538290196046831204607047677333757948471930501264720772094578839611926877566916299008655663704427332333939879661193026428713601865211293808119728578717787123164805516190603118077724006390746592868090677440090584424399627488245551787189768586969904378173929960487466283948743548205554192487475543367308763759605660881217719628710272918819705796162824668900698656686356719321581190056591376050363621924205249991389657139138001675639241974729006760255457095045483759866999851838014639397717705545756314815602987484743035326600055771259649923189766690308899153087655193891678308891612166194548457909591462215681454819736738404071073255446262219757694759476857209526445427298656524511953184270841014445825058101102773866286805401049881036656676948336630515673395512921108652428069086530383154212266826055850455198478980007459368815563557127810386058349980017424214327833957955166642358805581159218765609388160948380752830366468661502829137132097912218910657815890216832130963640680730870997387848559643900203691379033241785705875002254664176226428614309715978603383552646354478112090002982972727871107221239000671656622764743710906345439783957605549609072314020995208460576478581225593496623430458308572231006015009631831592464625018023627496244892524739380998230980647694269816724644140228732818520886976913661832246243416489934123824813382844512765409510251392307800542774174772260306726818039165789545989155896725339091042395253356549642577335151347871017291212852182455427184221016506045338663670971088016381827172651955502364398162156228886768895955063144965103476972280727733198044268045067183383406079073806282085630707911035819564839593174958714132633795504164761494126590274287786966840850114868041526833792949014004233758878950923202870668004104079850076437352622746100694683953670389391328048523480177073662856102267499598018283675677849435032216666640652583575785188012222698302014365134851424790831172561588934520036103367911778012262287814104970789916644802100734654478462350020767952213217041981362561735116476858116853012779326870803058469028555768977173382980042557210986195562754443122862340186069394022006283645071710632116132509495397969871180589182820889184903195579341682584389400440131601627811969146616719309618533609327413914983432929616432622020792923571345425495887381721278813736032203306747814253166497156839575185938614855115210461517919944055706076373416736443478733647422423384137191471030291282701777618346732991598468717582008494381607490853981826359969940166258660210043117494022911650601387224666366278735950483146263761549995393247879699011830429257149025969942134802130600935800137897160224161832816141287594306850780604785653675849051914498306917453559119008550725669216216800013620978757501496447960080379210325844085577219333131631094222326152011048232510999538071562709051060118211747635068092783501906973532500842167652770197207725028532937065451223800032352220186219064043749963646920922512476118969234330628294166881883444106222152275891981532436139072351967855008566932737404894427303516817413492858058800596061758289082478577584785254197811144262720978379657912256747319494729606201633186855056316276931505700700215033531726996061930294991085629464279693046189659666772474065175666623313933223841079280214584146200542918335603790047562857559966457048964387887866160910016710397180612239083480807026887309883825744841007053197279245613903861768799966688708110228973518453263190326012897454952868420831942018089049934610792949412002984776432185399652573756473122668616072142852347772290542554646845039083998020017862156674295187944771052330272354652868218206865353639405256610038302492425291734253631226840076938938306294771616307545492419904832272228589501296550972251519100111348625210114701278432333501216331042256402492544022810774252308095186448962629450463209382627445948912709062013281169678379077946789560233595595116690009791650598812738255571373541614826164926771295485331774994789938983428927741395637572868462082448645357377516579043530201370387991954749778170797242620393607456078246233128959939473221852762548993443158877529294221316260249067892396735029293387944538032056074673814597106200790046713801309337122421463337762113522324018726514355203787127158817332438701784394460001103641284117230512290934315756281030941255465927494128421257590959265981007974304699900201029845579331072292008923702201819898198530547273864977022875657654188398660440488985398210064012408609520948141462804703572738695501386695628600096798552656012489623450827061713063014391683748405641154656888991246295433587289769286212534418561001435240670665372129698603856519649040062936631690902185619566943864506619505335206841412487498684008611188176141463626925240417704789459740060831281333226746395756753842500565293046685466552922355640374761241431157922365844831203573091406981711431717292084517032998280722892849457751771273772100457338981304762978584704470335879059005559069370653300340894929460625322472593899196710528110279294547553289260110542416593503067093791552981815421779732813438586818033376455198136363290700033044513082360036326368319510330796645496907632787789215119656684793918661080073330822272016161316984450900138672391401445915728618809870968426788216836203010166451586439701926759669154081906294974909519896870964400962700274575307643842415284766279205841192906800372801708426278962019356256576189611838736384779387871089862163378460500319477026737922671510820526845025653233422664884551983384772434786979677993214445905660856150501437293922286160069559313167383873293674755119756663215233678052066675083998670684285665781723191150791611034300105807168941493654668636989739367976572931675538499727470198760428012962089862107471834570347339570823198266327471813892251857792433685711457503441107623168081074892802770489875945330770118654858384391582122263279674648150858881427609357223543770765339306743460901941006545331709384044992596745162164267069038064140827791415581024370253736696068450014133235333959312537313445709811540670404819994603690044981717897197831049529019416993519522998998540927366806944346165537847337027132418850704650143455627097684199511741466428206861225944781409477784513703461123346989383480742367434054533866704578017842131320048939778669614147560835218062695391917606186513197012251164601012798383276124256760565769699115974669521413022182973314201779625448963242238954760308938676607919543861680972349831769807844395004796040819397331634742992558134687362559180408611311267030799788933681259700842015399160898466392977902679709922087262207442240498123902008815472107464724661356473339523442156579068478406710046591922578798636192184624969560984690804932928091320621188430320251236015417606579632376893131621838814730297069911786832151321436942931574783108136734019608014784238007198766231785685808456507118047698895253791389862023752180917859315354396628433168789539139013718739143762621044602266652460689311665307142491787614832059429212176730766855157635586858639627584947376203554560006216172643022601473909746445174900582435495323953116203274734235146521649018022603695412832919017931408480162120310255419577544738576687389738966313110329479417846103656661450557970823735518625520052720096288839678210397581765011464921378688800734250410736928249796568005676375661053658132990663975389123981425414746668835666737084237475088670568266924896400588559781248954186317352677593735827834034499733612847388373092213094442303721353215359326812215210201143192765819070276682224538999980636724354700697236895278814461111044538127154599617030328088311721307840109181780942305321864902992524774793959460698891556571225458762297773593055104746902223811473123217266976599131696510350190240226724907995496638799953023951018481274447646266446517956304693827332846256649210725793274285046685145066893707186055854486794973253461468658677478873806736991690182841864634115847159900505376905372815973087381441471633768460328595851959603436244447888540628350574863276547434665877788842229772199571563285769158756879882688443097972326462822575609017001487185312104929112126698804757391484753206988599965740942175376325415159501641144131303342281440134010594067476315402436069843722561936571563583017725160310799784199248308977262432089343821535565170516418617593773417794300382211733275768111317371062655993142987249699586105442767191910145818821791744439268318713165469016838982686154505457112644259014601594647781099969307933797802262901712785880955916272288257063484241190483073241420083917556106312403242853608090643298298966745332641353453042378670164542821706490232149738620729442419842480171018258296941544526852019916198036656327792484218353990407338564607440474458092685928595848093399233609448331232652344610920204504171970183013972995173162981998445208734788723525136536322327460479944628762325157293922384147172709840545014459207231948520487508995577167997159049107636409061392069543495199118389888153810837588751021950191015717692036491086132345415102301315497678177555794376107488921564010981211015915362836419216027568266303906382409033438100009199747560391490088876859691130540697342905358604852440766465239384876187552239470562512735555797447723977485804408003136394205011102022290368902577018635213178339711567135161267951722005649955972363834656803642955470291706666621234254141640163441037481697618715163855436806202824428117462637015983165455093632050181960301690849108947173828828952803846952157814643795201522217206957457864873218171446607554054639738345177463105166039460654310903747464103738602504393454980870633204945562351526229293218807074768393940599624874092235377194889726017239384547112187973996733602991391023971016635037897230784985350361783096710442461966504848273337281735741305828614949025750593969955860923376449488444618487909181643781010447597244359447732129994028817979901750475591229172846544002158068467857808393462079459724103655823701603848144001990035976143543989929823687265564271520765755206900011333700756991472281212377401022292567713582220279482103891836433447650894762779649370393028120107829603686264667662297997452013802502407579938006207664271347973014612724025248501551033289210608245877871709629045529274981825113318279658627870486037188309910683412788138761681485771637750689831017043232019886537521941543262384267174633749142254460490135383035010689012694529671338978126488244868926760853290345156200024069325030253091224926900767059623429232878234698483106880659530794348563108853895129851994968382739833036677828216040398726367214614325735689139675124512343778647393172080736488001697202904225544975823123385892169038782286994566930937961555123945147804536689118873068398049385841827345076608024224828902786180878497716470706937018351153257516521930828754022153111332877091511624122999885363533192174892527718184230372770261179308887170704157804401783911576780257283751695161660474183821883002485079846047458913815466538726776632831225312402932763166314080465085575836328824842549028239198618380968380180343370677643963610926906922586357166170639740869411273028575598850614174416344570266821115175451931140531550278732007590776651624157977085617110283941611169954190067424364188219906973226243571238591334431727860780529074387416555175188990163321635859925686056437409116808715250538916437537806007149568299111175421132966494949455800580541488583950089625933715188902098643716615164224201614451191954730604185910550842161840896935148515522200172277732722755055853842768053558658119532912313558767617734206723815196364103291016418633009666319689167457484938590239637178417116573307212827177688231862426865969719272372100647901960674809251430245429137570668694931096646858091882843361695081302004867291930381068050466158178884640521784741280541150068899558692091231948018604543106316871540236674910795882078517773238705422308616283651439379225103491890960180602896566857511213169344579430907770475170067044532768022270337428663091399191027569248779808286273149054007095389815974166137096362592269859173450378260585446563907400365928735519148546684724180081594355765308063875924886737457373425214278351765791904424468522413795105611484907203692489736553157060841801140461648072625850757096487977147310828241691352185356768620719133324170634652281363662571037709851245596341850158716785494052563367861617045801094514906135006833851816663752423087973521024486397941548250419947707140569317571463096627753704880479079412227042371845437875312026370025578625216939045199167741930338802259598498465678651107903314514347748799547472744157831988163334017849811007077655647825756365231747416616680121984499310560572711797892907050014414229160264662377384670055164498650649394583691983739769599232999043004452752587584282121838612438407305097778917448634837002579507112791853279899201760524403138443734431389523660831542726224305814950121449245453463793264661583980977567092505925411696796522611158310994523064085546371321979553638860351570597669678230258113164073252950897676626205003230101180901308173222687201896029881753332274937631930710380493369141398148308497120571266324573179474246710553071532815507879282840324316517316715587615769752567153401666473092136028719791726232916192484963928800178905281287295399479057043996250930635642383219075304144936618049515292102257086007298488899890783005508065932189118744269753175512887398947286823200115234497113882062778276321913360067091812125866374219211987579220235462647965514820668942247191643838068636068173095389036816299413845404427261657608478427126912049460610051097476846409458152526054759319144846152958314607682996492105732080273110630909302284264650672083472723074536094752078726798258889614467862782367715625852136954950439711970015473538246445776131263460443270721310446422108510980603416482699568654336920465368534910503739406691063240241075603759717774519280527256748925518388767362877732887700332891419714082155705994328187163956750703238068631176251660987774338427391557225527230794087498358344138736525354599090476628927053272596030504601129587251786750004655106519317052126844159214894636208536152943332995276173473940854786221814049044374139839033317096275572986946271242576590578595439557781209443429643723427707775662965569649322905343917610618316077196845433177283490438865268840054454022382120098965838339745874611916567315117079140060526793388719627004155017024595934727856570119877018285704127424390339175035115210536197642169942231855228619468353944586065841527612381312029713406145846804742730203389215941792409930304669246578330475300149296453037212364700078412374301689879778318677193190608195571817343739855392240864955667168466266611026394702515931808388926110691681672468015891264410394074542917814828952630629115633800756895272527703607066819258448892387211910942015854326752627087096022130169993938761802596243192831819117805381148010172473857106972227196355342980061028726741768268139375512830515385666623706200276348561554763419938386772415188545136877098616610305505988014752973383785239496532605511712516781642831649913942277257352719024828188951259921570804239805891449730151720153411220119502295189427217686925660311248045716342786775842909790972860115446773654756248852356305510422933510418027760733985457623640947245805543359371869060948070154787665506628238109762636730856276130826691922406075686690964510184275919501819936853481401365847943045518304835697951728590050411114337738181173484781102626028283180598254112314631172547838652588200382443270204636844863939753780013089776519386616749340074034333938713895537793607926384296671006473451796794717570422012631890753986046967059196860739693076657086040346318424383261744884727813004540803881251432205718164132057811000328573104690951411578528147231693337790237575447284457246357447731303542991771643274178689133662628839936997454718595367833793205595490250411174011545976429601265676703496644057071991945528692384967316072660858808625717401674192362244028858136351572890686221248286448158589031356484641507637730855122133437107161144220988439559990129959578385898826697244384423330350821651595936610535510057338690081471863339334022417827771851318991478288226059657691716389995367138091855650547819487321801589678939012297859842907143948857249983200801540330298500861289591930673994258352875040248653637481774028896592878123594852799865808098706056268153903533862739843816051830149199125173120718348151896052462872541396836021753424258513138221716020964073880784468807789377109535055153062427206735075098431026514619721044918674283879530424785624143574711291022030426264175086741838182679639227720797065071902342521561357389658713725463116164210214726597576878409344438244607154776903661939465876384249605749890208793890986804341364048326344683217746954926598821220212831743051470621650466533695967676093124782135561567374062315539222219395150800109639182801872991799023839696731684690159655930738017839133990410035485355497225617053756611483699887694825762159470172762588091094963459999068399730814915304683662429554218387134841588408743486796795719894947064079418130488341901002826359838728874549838344141090292292418220395948516456319302457695992168316430734354198048821500114232510797772209047308365636735276046246378772996099660956585334310124060935489927570729887376704382012830155823168505154485205677647954019704167445721790932710131856946719022859356644027775512093376400407781528761409117883328595693347347135700031067256431486724573774368483505278266975541206841687379263308104756750793219212674173847524794601226849033968815254199789338317488999787555980328382874640925033685733697119606233152729908938188484086917398350196569421935406860652774225482206916218010492721480490127968700909108099601518151380440352618021449321586231061655581794402783719440915397324538410777007377676272740833049163684566018992164864516248493678613846738938478337000580840348053194656986513826268759814845068707740865216213421617039395100305911808642866948045858970685153208523964438577811553354492858525340351337760381334657776322335569428863692416707415200568912994183005222369825992771002174791432673387524316537098770454381855779921773359193089338659093744754525843508919874955845944349544615581494357119173184551491873703152928204124248783623872247088805359088583329178056263445770597182480089575949951421973890742438831475794850234440802194064586051326680099980962672585881532228491975744983955240447239963768667169289714896804560815935089278557978828061514819566239521633137706653540665174633649761066989252124316097461327751807686536824453548323861965631996105865088297087471235208178093859269297268073174393658475743695378974230680286355275554342758283552855813815429466849575598348219319317548558345267544478630002252652674239081602941179766844907198651750687629957290587126814391817227493686895573212462111179192280653408604680393697541576655201374365954237781289539003462394315777291545045757294298352179633727345258171747029428603283862078247436451330274038126456751955068798735177210646935733034739405946964589603535578184520815398459454824607815136023314972252013387889314579067980599406298604942810351515414605843406159455897093546621677794678807721874024681240766206340585281690827757214200146277422931451005630063099875732893258978278449686413243234996696673870665852212715126194605334864702352621465206168485364409411839084521366423301069483793086234539278228439942675239246636536678055716911298344645730001124824940646039662686571512626452179804355210982234005070814550706913177185664441169576004952094496920990306833092136243141874017536086648703504025908041173702326828185366319799187321639830176403516527530364015544786727195425162797974505952402471368110931783627937501880952405924785866337312904549628788329674138747148779405637955401691472737182169462006689672997124508546707020986955331467174705563752576052971947633171227959214269859255420200009264252849247930886336119406357674529364199932005089566160260785069829515952256541731924917403964774126612486453395594459386991505945935049823280698968113849028830529090331846840421582908437842628320598162607978404503276650043677986756521239149440202172279016424788873556451625637918359105471379840042720009805089775664443163581028207246680719175394696685332462019718885284346742892593324779217730545919260821054270822377230136762587858814317925791236337765912972587401463097341952442728564518039674220298626562041320517991819317197473381393711699232731456109420290423937582647593901020049854251671758010368293395619758246049669936525268921261333819930746171481625376090035030333837654244909829902515893768416361448735944517491714045320903373880936776316272161940661300712564616116159518733417795051756529550986717792807034627357453023961866764880292959883328514930374785518275669614829186430328117966916249911943938379252363666101875569684017038977862475314659788692665670163714558287103182537790670736413847165071140802912006418905229991000672510701294464936215866243314504105439516197929028147896720979695820006654854150005361785773740928620520771212807000485858521010643302121167106016752176074948766253528804184576654948256242034870446825165084323465926838208090944200557307815289542071202063346366451842785782964080418267184380109458147540438444966690723236220568204274304317086046451836569376159303151292540177478640203829406844744716144640669675343127514321091498265509096186623451510319028952423130317264476956034876984268227224864762238513654765840775523983700168819728234816408264061970467227745958686824118085727928330190371271068239491352511832126790416552942231039051611337172093003245968771430270629625687708569505811924637171397730313423023038130532697640157490717338729606750119682421014190664952097342766950133906817533215137193536142528154156068113194924205350130651267215243172530094883448369905163046013464475029288457124510742382564305900565592350374132418020835662858526592176121606904148605234177884963061152140072414203841758290748874954738710521165970920521606173470812574412527121186348572045839388179147177916668448963100522852942887295415813008928483344806285180665044291695324831439720329055236189242917995344017073452390734985964934851121535308658992106881394043202173894936820161282061510419392308082365622082297099606155517463775283548700703858587338196865175385909748565607442030838442278949163411242795526181222808548042234081344497159908554434062165147106490611593877428398288395379680945823686651127521462771473167079817609004042893440756807072690441011579930941941077741718728393550887198555807853162417616660186449470924492786561857807970692568090148317861944647612125748126995869154715431572037728358436574951289597802827343876265079123210554691074477828773232886553513349954727047434202772911101698178695704404980644333819617028686718616364853924600962123459746482330917362540429020994856055185162417439177786757207016031044214800053153189178519505402873104548560018015981331686009390155023821476698202454783195013578138419570151227604213664865935696801357024296189488974507964887327683940057295787588800296231485680462427806946503394506865112060254767605478331087231431705746002226810991973306889117150839742018521148406400145098753708261960644621806281101206733616520898491075825810514294140784576327145465349956826374746592227654506414689192411014690399021843309104935340831413435128626934030984429403661170108977054450443029522494233091545238334723036550678735680037734042608228491802212902387381231127527952868613811408112640979551259341372035719783148227375474958681057588479100671787184671985165980935325057530023023145939026607030563803871392052783002029084135337539647247010453985057884521999885879883991795927586007286675671364125467941709680691327265842780605063872803907440238615295230048281922690100179218466887176824374534766321776511700512364120266224361323801310485980929011163333617027926313710005662378721172991166833075359647498969428872079123778077616638519616995357732718262894661564983345857788758910254741470024162497283245639080160724544222488526336767056870082979360072672744210713277351288686533621932904259390130758104249854408330272987859949591271299921515193467281254530575187331599752995468591181608483159722240809262491666599939348475559850541098860599314024523970533511599890442839574067583987620188444832952945353319925880557057039577826927981032703379398524562217852444600325916751061750430891992842347556264581591282832187830094408384893458826402360580457836831893682015482313722912204554052412387497955152275647502003380581494805532646318535865618525104530786504272069271265058888495208401876573564034489187831592521043648338940215722842482247466535186793211736055035723992339970426257404660816858086045496862027165119227430201586846686300381701101535448278943367916439695716614511660993720164934299453469360595910701746237230258172425135003651313397895146754869154053956197694844972297267299775686723832768406866781653978623045496091160302001073707003363972460103362473335765682318886193184712604926722509935645047967259974649997472335732821215925778799688421850433818396481291321370116772055310718927882160608989102428750138705206040600097435817425035379505205435801551631349122204562500524669626077468941119186199842651155648017576629845684211703941045890104099417590232700456902330347238037963821074758428342333193329333453548858083527387035529558031828850641742460519076363171612822511409560620497365077687631998067779817726560812801035199448100645490707014694620244495125912555281301481342761669983976514955507306027905604701898549001336744953581089810254140365927818693863675301595666527249992551542950826517942512427573497609807235699912281135942541439492213872208148378913746923525480953808726126833972765440520742559318121933454798851370826060453492537761159688386568673406869567312051985707595187662650030580235605333749403770064976440085750367720124524682206708876326737032400256082906128396322258296588358653513123279967564933635752110397814254163318582764878321339169586941419087367380554045956823272943217963210395143490214835251648872619229413334075643914683383672334890382296108263184587935872949772689706536264437273328521105379759715324277759672479528739156077044918841888695791117568218773558521521808808998618076680580884283071379369871199246050819381681127274729284257991145859505405558779527388003731968617237950970506359862518587260477500488487457939771375450959405671697290572895216002954641040452301383846031346548842030868671972017291201171922407376050852684860527616357024259022994334078589005401640356869305396007440883978136692401094963197405643378342605377686789646802937995167311282458685688475549594168106683100639405904116211954203230876756443844373490958734457159795668971063991582262465480882523480756624121708484140824626508606715662486507606131950275789012817796141711933515229599268933299021894231799972731143544112271504471017180564979809343911326592897641024238384865071723902883773276523400212526349269213225047134381591142835518601033615913833399569255387724759841371402425707064302381502066626540251107279883674408728269975142973704273074001667503892503985414417069074094412988120654078670815524766797281397075546813785590524370842296641748083358580315815049214507269994216853998507945313400669428084881144541159340498997174518036511924299586980016315501209555851882475715204756392796305321778086176893815131026643440277292477325694518799578718722078828282493305982143788056185002141228347102093216019764195187325360620526451115511188289821724655796448893680987587410139025904930583517680057179506956145483228181063517883281365169997122754509417356790644735753687344180365855391399586063590411804893086836169439764399370368056677185325954474921854349978495993006100586335875012437878150652592862612774924909922924496176677930760956066981950347268637853801255218437619610619838015613934903233205877343536485162164762899725163532734389718000319078713382675815795323126357323338224390146593320631861264630806902795630483404249726921057596910663004751440286717433066656777286415126729428731682049980622431835348337011173693191493680370316507804910208612180000609622902744032575732471652632737663938526794974156143805179620524554169817118384257856534916147492297913469426840557869431868968166428549946076786720755308042691003765122872446509278371165648561459943746871232887470088355115367275745773028163061919906887502762028726094639314413335801373805393703130001465988228927865966979531354801877963081185166310082510156358271467083334929013873575714233113095492027821487860483208513868371748187799281787854873507767721835239838029742501174633728968200360396285027597274142336419274958987109904143830701228302720947587417356983350548347213681690663595709143878836475615631161514828589324211981313387205896172553536529010215183247581241096166272382842848946257061766006036458577391732359907624793445651222441967034637253524878107414591343813945163731018365786448709848080730710746777722137454535602988157790027769431536362488020638844456911928880577223386938121757569088217882389065905044242611649733231808924264145449875542603449960480162570395474410300487075319350541825404895976092406397723575273515349418792683744333732436456885564809101282457922901013715793929789801799260488535399668304828951996818037277176765750245716613137471267675530014090070732094809306890576725631485591891926854799509254370691291251329987640945867587287514736728461662568469601821426397683376891378570200270167141358192135523133074852546740737221257490563970452808482204187731440652557827541555878261128921593237129543836012453368717191849307754012829816832983509211737195510937236084033245853316962792646626229804591147109290803293252969400035488674635968667652234377830765711520031761281752747236427372812236091851502464571896668420281514539299643147349900698944702359874143612133669298827673676425912446951578400023769222500079334522860642270885616732516952517008551892742522401606123762242996896343603836320333658834222246979762138598839924906315734383270801353003422746446111119174223436150133660720691395701182113493542294822598599215641706726321593232007659260074854931593674590356747700650305692634889859358193224516261671745161868502246192724774468894643218486069880182602593239464314257291106124550960774758401954189777102814335843076354908138931838995328284221709751728535682199698745347606771464355717154493431565419950275051423579402514468489214316573406793071022380748558847606080590000738172849047108590115883394380810096403316603608925717079178230347613455480610450496385311771438752941473398827045462547821197093683497931639442551993319976506857506989151433178507444913054432954994662550113569404397729129460727631946964873597145145031263128361692235168072496867730926958127310493231981011106085165022359364073496290126399306615544253068532611510040929668192858596936454518553405520323444431877903619754038580337601953786802443503264160887740662481844335682662530276131997167630498816594076360633494126560862475072140558633209927250644322943770559004181467655459863951537508407622907423527341615968772997508084582256925165795046303854313585862365306804016987947802048776926488028059435198650123724623542093179798341375689884188615897176504493140535044651250265310264306480749162278901463929210776871803107084029921661451634098129056314055350932349004273406514005602899828930012382430711441779102028119951912017522893771205095032218011590650442219310109307671775703856377726372350261221654038731908592592765889199523964752415451233385326209829597296304524409840988471171157280397216732821543238086949841732475433978444541902048248122901750274968349209183952279564302385803357952412375070309820421775832928482628484319903346724713624779156626389873485547822935376389802929035736279581076869958336573964488110681148870899247376684532254923261149377952520289272278533862751086240667302107720147055833668008747687787487343119438798205826034465003250423378720860690285582323977264266458889695855739567790064251804874216564772982947907400452411915928558754709845543513420909726730847674904723988373952455726399338210071368897188140229818230165195672504627244041082101136040067648985305487368545708118595761567770203835317859327103626975119422500275501175833717394940219951606843737157721450414110678585398723833196329757580655284844102392548263718236456237685360640685743406273077764835189243985932054601023008079519322815303885114592050814539925764575449657499444586056006640166757376388709899980582266276082920231663324047584868233543036351003069153579714811286291679990602211733909628857347121238795415976113826592665488987361931772583774532400701521986806001509381019261659658614061624837333364216437985311342416847278206470471500193871460065906165711475244811671998525746513726697317934924899332037190437444912439994399929441219944163291482060978367327615719296531797660766072989993954625459949060275198476899441565033151280576314494279627376524458039713058558183055832801869058738221720783053654349958578699755012210059905204695215281403936081759241467344481024749541739226900176559089183445840950994060898830044277186212539696334898213276133669526704469206477403385988487767918279902876175358895596534859253164714914195488298167349049370284194939131596373987352606147082955749059012124369770507308343782484365164654543657862989885399815510090867387039989483554183936735047591108561976594724264914322062496058762720411142184841539782211004706993822063816324512686302341050744917773385745567125199562160101045364461499971504138381081262083465254816124003488236198833786682871710816450388769105138217912845215547218388389660512427997907060584290530652583274239612539101832472189163269721598666746059757377534783233105097238508840145316375129780311440474706235526217285485012644589827047223892115737981685770104790763828861183514391014761033236604112746218463980960923381340426654019800975383866303906791682264230725393376304123322843174012698729103387261290025395741053645195254625287375689865159624496118977006269187830498822733510024919883518030618900372833708935880212826816967672119802926893992785784832360874208711029289058928898349348275853730396358842109645818153941479862521238898031645376307704631750801493979867721536391652520518261176870218081277072832667280437786456694523595935777073185213234329038183359732209881559817425129664283370452049333208285081542339902800532981859614121708232056819515007117052465097368867492463572943348272454839781294900709777615202088985010557551769656165545510891614901834198651664675787884597947335706630973518343934626986708808497552150303968022511844066231691650356402830879354981232772671962317839488832452537237076766809045819053746184553860708881887608143849985497386981663357166714521616335866445977328534484710665024737365999654918041873699913972760943442932658742110641973921926789742079934864955588199260870070783986064066490504057272340408943845809686513963924419061367911246590591842519034539377852290829130383385929595666390214336756055021940093710713423559801135946151079997292545168106349251448178823907948051496811618048952797575813009102977556782954851485958260772504343326207351267174561701697821292840079123931829644412641291754904232247272514194002975392599185242167877409885844111409652504487280017003749432130851856785709442389381031891853708078675774505184787432526393809640516941435099602029023901861148890261470881798197563994809791297508806700707485480692824972038065374133837997609039985111333490297628499190335780908480686802190688430362392433326841940442783829817402192570431749958571923092703170562333642514835443474343895599131100828450231572419732863059637779224964295283334055267388940703867468447968274309319727672830153597433637099583435613161070360460387296408964458032663994647915170017608029825651985265570121775813448918882722877099491521147131506945231590793620080655518489794965529101965238658769795596777579643957875699241198849551726015487347286933345992407471288623434398077926230169155102127658559368926795773172132995622383666064652410546092309407444301342759114682389829922474162069406709994919625833917101943202090291822715706100008996626007398258743977484723704299722169958736861557910787897943668579963300872695253688668792641562465647368781034606345776661021829093447341176869957408930549467060421348165316421109713311122867185987904845586047423477356895099796081587367995128697427285594266044274544047542331805605952276955708799388532400229770664352766907623121745765138542163802398647611089180068583404985514313073580647788287904217363461968376084995250900386282963952958794866189158571163708627780555210635590229085540489132860681088728063781331048726253312889200844945118211777145660960789175519478820895029587447362003196910737617379866810585883560057131768058107337859408351522258635172606622808953573656713233188595391768704281558452765178447349619391325840986936828618492393176765466744618594748183905154978459103937440152946192821778693489651775741230697282124739406399178434088114423554410075566897815145090244141720940699274671772541887754146464363173150847405520559111729449798867450109128285475143495510372942039544716115797794297650782707310664412307749845643837662916919336316698519575203676322982747101898489270882053179001075428627891943612054366108593044991178156871852914064227143486599649197937620454868805956648191531035843992785184715948860249522266809226444642804083953802252367453845253062075402035956966157025174445154738726461806137460903091352330895550094440082559501891292818521723823858382078955379126568311009876691545827405881942393616456536682089148635355902807484956284810388840304472733306509570176338446208113299329712989498295088048757295356524471416282853754231599895353379505349442959484483072989630960724512718647707221209424020987641138973506215913278908120746172303531173885952720658842060500000997172695896132732694683631192969208803335661557258619269831194100236897795469784192561631824787129337954435110127901470463020787694957019477495124011418006153765452918737253833333376073823061910078104964399665093566028554420375133045074140976653008253012559551525077695040351306518745739310334951973359977049575664483034850679087128177428323396031652084065514848785959462254886958968228227567568419253268538812443724804745971733986599591919618162780397701379853153479035744948788995086614579146581383753835812734142846755619840700265781722938315431693457712258057795348065349192855912209078757608044545031844871816371331953152656103556181407778108523865940594607118098515771399784341338874607936528179106906815004378828400727700941716659177044723981299947279013351049236153912982323962072771383270465016690173694885995008842511317874423581363208234658345100248108602494740017140321870969488425134290416519270386889985919473062012081918847474401354483133151149294330899695881703292378793705501850456503594136503857716098827397354597021987053497488130647826059480922408040633890835668268994949793093135927672361597683846377688718886188806055811207223332946572222521256902209695395052292788525518352580030962889907417063353998806683206744884148182625510697834117889230531800334086123913301022094762189995869983329281114237386728494673352959437038242533426216401697021933245817479704650591118815073299681903221152639712781386152802776750881664787849926519499636204356123304064360052557183066831671771950335052387120787547890124645653737670118422007276154726264821123153174769075601926553754387367025033330728340173456414086678339694940161625369355649657958296800768319089333247436578621896176671691157771152322225362065456384405252617880765541939949549513407701203731189101257148130608417185656578901283923889966548248357194117360784441914238329899789551778240577175128731464425037952376239647621262289924746483956532040625905174218401919494875401375633087601775841555791649729571849566892506231987752253730624102685602028819016461697695061579069197505511879565692712290164760258803576570835815096454161328630180624770438775085861713004778597222475712761172808006697077958721903417257811255408434001422310652674800694815958394674751219456239694200450900209715377752804405420900235173139240355793246958001065137343500775420899791902588577843535935999858988299011970038808661566644011430873722930575846058845961331844885657556380491533249870701220605299382018079048663821109226008396966068319887931880810168127411278380376678074114476526342344349492047006620024284905569393870814105959052174517045557690527037584113770366734113224766253316394836877206357849200360198172062379827962734004388584737395421795631016007354523524481063606038773555727321218608194222147055096952769438178015534181110180916821796687836761869488732982850486725596948426835958667679187826968071555842685730914675573003036283297085567241003021657167493475353089676405584634052767382075595931864333657621532174892072371243456838732167514999921876192954658591923602164639402149459733692277266597672688866246236909467324306107762989920461743891260677038870619626737328601840646895143433371087073837323208293915610863421902529730778372074714224728279552555278045786663507115926044427679121497956524330763520069245617160620100092782293979821009240167628652812110561411973084740342012216769420592389022731513028344626424245600042742046263470590923717062284990469544114934354726210857785211713983555963649423425979054572774609408521414275617995232163326665702056244891141451104699360756818872573717222587717298742870434305460595354241620283829444127956087420747011427270973449700207098445443739899551594791867429855321548380472122185096124301061585254295794329699973887515153624625026990077450014663994362864377345562264576132171750345410861210623470712773802984111091479750296382028186041343221047854623754759602296764498915348531134248672076637707471735280944301495193132170616697172767985224147153386913447298209730180040217788585439825899191753677251921194224983583068782111022083359561510966781325428209949971926176659317349716566640433762477135723978523297068333711371886293573003481210780981673555439928125314424634249281413629317905250793726889193877970274976344218806253662969983947018461490534677218745033426791665732509332847143917362804705358877077313790864913527156792606844074184790038611746762829008988898304025000087624011622890953398728923299867176180254980529797696190253135788553301023965934260163058544914140976536830348393495616480474302299767164795327139259766052970071428989484549184382226517754435098129903550419664223372080412367161929533278974368337371011221552762371736261285648145296243409656004916019331353175647059498178763080661651668518392143142353681976555415408362353342617193909248223409303188608997374978715796774597539927750909876959795267714214222004792385410371803478025235282434095866934465225551252871715601993679378515793316133775289174761364258553903988384902857787091203586040779736097601393414780256774322758870272776254610835707012172399940965592714216483675791069305847372584642671555134349249898948465538306143468161103260330471370117117223356618503277607417999018252283634069357781742358391774559066807948706195532954697634333529662286898296226194597877054287843758536584859720262823313976779506962563729244683230013906759769419117463991989083598441187863650075720294144818088652475245637634573394282868668956629261183998674138163366981070701039333299190492073933375483476540590252379834258340312676444739562808134480503102855854239886056283801032425900598466284193519120995996732794152894501642046626466553643775670247200268234743270377380702870138507530687181634200349071109824296367956545247513070160982915158983559601073815400107709356695512625865493663688144549755593404664733863932484197601475218958312317617627586142400038680636197435234757395452980915725588062827916481217097596123593788184136391549642615954445391602704527213229614401409926450527247017437619863994332078581998823169218886711190647159095896841723830619817866534221639774597525240237498128849350411464631057888503162180462122054835537425015600865045627973244124752977699029477225244765476310758298944319089329876032628051061461023780645202044450382834635068474583336809493540597571268202543776885424763352264399794011532035446361137347968234338279067651679444201093802174204702298205216803522570899830717479131890465752337214716658301163615293236817440804795224393303992851691548326497395411870992111141105487773605795214366835797404803018577713503442527147951503547922865059376956002049756052639644566491026010220231720329549899239184091845046777409303001324357461031447053464348697260779659974411011990663030178270741066260139904556257790877563398806260365823773346159516930573034077906623456089522812684818185212578886637597834015981203767380924121434936918650425764238217574277898248230145634435643973055134662247299105597713680486302067187919443020242081915703564804134470719525452060894914960919517991199243777605405074753312869070970235581263924776097360303661098597311803775668254344258321062023808653987831811785366829284263366773279772416162164213664884035154624923774172216152812904159609623537524970806722879196226266386092983075180088969979292779748156199922222307560776744048690036044042112472570302784401637344845715995806592298514892258265555744658050166373177171078333939661262406648223250820176705632778816698145200980462728374988561929790451164867671907135317605500472981557652054982840596410646746303642019670784765040092648316711765075446446154428699260188468291188679229634972087149881524842902445736918581569214299716872044984706845847704017943711293548451622415752329216545102329351658224120795618655719617630370250118361522594191696233087559719283916838033911318768449538699425312945469274346894707373691851614520077382163329423264726669957719899606751697501743201403722156826366832115557878630172323560047978254776742368224053707201403332024413675122359181620956148086428012558654615736434586120747571464148308460275763088941978619856260691800706749366349484981407543659472081434055700408807547281882205783290682231744548096040154148234160195674709326647602794286059241334334768473379762469664130447394536398919101485410655226294974330113592287219211333005395926411345734562597673721453480121727292371423306548661788501204266909454267348568392231766630030101964304208832703891755274953037340337981945899030725970457348367258309397920856048067040120709716828610240926000398078734070704303154163090084990756061958309363784654436919749789737867333756851178578103268220924206595435476262044315407393550592259983460447658354576427372378485887828444621253273478190236419403750992796563116972659696818094298624649402522359583805299264370300613161546912854126097481888182756597501313872298901967039191091298661209454655365342925420202697074074128779474714958301305107119553792694027404363993065298472443680377203288351655302414727867328602959516891712108707003835216674251437291474789074999235870249742605540201647990359391979562304822738511742440068144436434623378145990949884153317611523619811443337799584663918665784800635292429987100142053664357855982799616234922557162715553923436032589526760523271568905258697970029622937425863550786929356009045256441415574846555166929129708636123048362596357668470884511958163332981318254373639391299750391024322251979697081897829654966981696598645413513049497751668649347275791842950905859676737433519474064911826918095236975992240868185302023672363682546296204638579778506167977004005236853287597371195887371625925729845392907924238451020269724375482085204229219358790198956206954557337079878743747168293704157743092865000706652754351981709146921302763932634747833359095759443386047643495846442837539139212636163917720826786755710225503061508306072537064256527746874951983638517838515791416423455350944353382926388156667489435689369484121308568281351771881480569663673101408774684796137711074208383145525251826957018974174501206295864314854349309261345678854607474225317201694629184627839712942610951667445206156745225227915286453210321685874228850623972554177561779354685989933218374129644521300591161962208485675993520009559954107296549809883523839912873292645186944641458103308198461422963766779022583434232592441756132808328965245821144406508218350113849524989186129983943958977273984954052793835717104647583055828126305055852477788785077647187133132870640002789846586244229615370147285066716063401009843121425686585226244464305842201310950888658226200506656727421914646910355246730979011461128166999755784547322830329023238274143659510552763124540804454311319750723638849009961325918695370457140578678320414489685461631504521537373636590636866379570220875438925616730680104929292378720389252907726013387121734978792123518258087333028994444773490813133813997481538232205356766389273289084652657164131416531477546248306702260182001791451015640625810321220061402630541150007103094483488380995456024527266860274665366465111154445680099706910382375434210899751350880481157620013496653924869846336397830936040048703090421677122775071158295642984401538127171085682136094461333158632220885353345601769626867454124012945854597075007581423670282345548677604330845927811137266919150499922214949661946712086742814258356035557181709801528824339244708827229227218361691191232558076983863193914036874130381497382662157174584546378864920414878811964152459985747081736778971283537315116606637469772958143631865580213713887023680556927497607264680963920935870774980641723381759474952243696736125502155237145884792649633094633837192881334001513894404821861251201765192776999333854092165138168217696388083340671728803292651696004870010239281582102514276912772515659144533767847662962053790798598579207755561910066513635507243476490179743194057090479228545196642403281075486092106118510304373428261062630408183614253844423818271537564124120693015487624954981581279572831363992891277948575742288113533430354159635159299096118208176894032093389845230641531700332784316292090798689637161328125891821200037780474505863425109308438975492027587620099635662945655155574723125311999680721694491001601298637169278828304563207592924637568082847382632838161897238627242693836126529630387339450776906479901800025079293656764562912915102282538131844746785639562590061689481605485294401526135567634590167783271414472596731562063678341815237441544356083315317289671270741472836569506461237744331780788632221104991165443783674507711568264229416571858489010424210932933837155070350071022805033680218549789788681048402607230581982089030912452676959249684624121947670548484947045851465188614470739512508071245201937777436196576336491858581654845558784770625400204356336856924569348150568272354111424878012535259617714579342208108191200094650470430503520240055607118919133483293225002605184657121839639496728189201640723212225579529442085921404018724526622099748010717276128293499447672627919987703039284498623070443238032903324492723266047259877572778186133535800087550432113607724592762199355114924446473982212130495488361209230550762695947730457812794220890681475474050414816807277911299330693561148651208885756793394776584073670485431719212512065373162905420021729244388492093464114089995771004239998797595117036644777935727007312864693218915842983142285781953528044940817338040099116435061170380103801203613371692292160439727379742482015904638652053262909156115685214851869590321618566702474698444006469741721418415449840751545574720282337097966573263177301253293462040804188926661861718533991307151113372982323797904393414835450016439080520653332822383613383301785371615495996040835302509140878515532229028545262993035243840213313430771935430969160831768517700869712122420448692054256316183358467455334616611514528378834921828100980035045578094674968473003922937505481369854781938618287622789026535086714555594928589686476520020037034623762566300993395887711713489602155007985700667242140153313662072839248936533798384514450304825469357450692775158536117154532272820537757464997478794898220824904086341373043317222935969066463637434297626708818531586663564150353447965392137176914167188190161470524318933283801905445613851774628604175427121489451921344749203049783114136058544821675785901664170970901834421564389882715569417028466449969548086676034909867320099279740454736926045221587634456457590715001209825603891401864670770506380563159982250026188970796306783087326315207538716121983555205583599817273818584852274795125316527561011762911831181442319974569024720289972110462464901668967373078391422726581472760813227925696895410620894716304291694784574522707253638543877502198471451584074729470398616347256318783364231211977604178538081509431166778411427214148095209174126962870883980863209869861170146748671868944594967467987606697073532880221392261588623263925790860949378274650344704093954219349354239597259916950870046470392572030358595490633111491290097923486560622249002039821998043608809067642474924635720320505126916434034093978295419366804958404854727300913029652188776736307678532682104181402735643592395094395188561187299294883929024508712560388944570613425863414105043070401585359651316576729583360084620199817004216419834079695044732017787908154439832258841108154926005361371501275509180340134580523223386862332170132086987300987964446130395041361838031257599255106703166596184140995148939086564046848887825208437083087665259851371902093833032607676510100626476525758423229501554148300970207749382772601308329040836468299204235709591171359255187653604905076457057531434084255358181920672658771524950380705849275083212447191340424899199472733548742218363869501866402962877902559451672406657886286990527305756133951279782147233515590384168732999544090473010409878015783298982145684261983023983243019988943113290202832170040209294857696963567068784936228954653618790320334499277857308058955739587273882156802772110321583732645711484844301605607927602564017787898676099554268992492189594672261568231991407147294334192740739349785523481929464345214154161026676190105217682772572671618058017803670197217500999281790032881932403673531906834201969637402685129030315643335646015915953980205093144773950620384269898464999605632873712504016098204248161693174473714237577748885656445111941212506164632987086675633707082370506819566355388151623485647874576372362216801465942919530905327044383612099413228803389635701698819523015928074669224698910956082224019928373474897318152353201123483048705958827155186010430026995557124885533431859868889028699448446077257994238291845252195712470911920173254577128807230394753681273760137202704002283489004410933184537465957144405322089473049270953531003725693318586972050094413788139540879651665471481297290335117324698885553379814322464321344909249192975219909529185518796178545387180547480729102454788714273667127873922515950802875998011896667530160662110621308877965236804377963315601527747954275609043081451787771570474088921689631696617826530956082874071295178329879591687833579712413104904146574856618559286122542468176326514289095967258601809776243329798702065782544255995349071294548525111968949316378207828244863346737863451960634209992010768767601770718822471831738092110838108987606968764328577040803451915535359581855593902662888995976388731164927004424390411463719119803179704983818065901095968711057413766929862406458043265209175488676145345997140439738301789132279652601153933783840550066686821142774442869953570756742643504696348065653445137584342927346067706188732581573615948830370086953671611828403054908536494948455901836219569019005796846734285847565680423367785334790120845785188285400558494023655479640432003041863925418321883985308772030953518578664221813213917050812947098535211984260677111111104487871594491337564059624496384219539048109723030693877572436574311830510435924468285611948338859880304713395993731952455797152651873333757983966245235353966715340757313982038673627072436925437640226159666116046363565891376285631859372096752641281516660290665787655396197739613563497607594516719145459851364285875558189374254590400362125839224439604300577724961315572175546997154388156249522430288202161934207800613028749243623463451260000244476540208104509170206379856650967262637036232780261058397037196977496366418168132985170672034121642557052110943487579112987609079745391119877210634591549322938129071842683039077762457212076366678652558258862641463600793396546779336165545671599922577022084073291660863484813012495122091904720723390205788353671755177290025093896499867723811272739251390056168446974053455761331656455372586806698314792253922018534147940798769592416843471198825886040306246334181535171413357603895528250740868794498910626778748814149301737165252513752093601353655577342778309785277794571343836441111914620584802771349316942066884870766529176527168883094964571738918530088968843695935448816888012473278350908092707749762849709183791701218264452093045691533958280526021926170028795689733647411647885788175774009351179191702554813290663844093775582432027284372864393053743559385247169687786868453472978592102351151397480325389564878783403020278967911773945815693458461247304737588370626157876962315240382691539607873151679104433912567971783093530886469272197432161090251749038356759196963095834460658469627331574931562624019537884007189988370013965377048340273996534608886083103948510390682204967823239822968697865043925091057166962738481772027935492025072057302319817049190486703050972125078011890897792950579543434105693619008080349605937824662566917791242719985751946411862023059414520629128857838309711131907496785758384613270820518971297734922741716838514699475380673162252304192616921097091594755002575350222751040455063973391472355874952153800713361568853108024958280389585949826513801392924695629669455052304907188945472284759721438616257272698305937535967040290542226709621641755182288003070705998113660260786798383863655024580186510585736186376119117729130997046969433207753088166247708122641516329158732794546319308055090195377286101151481140982154490411653893388339390867932427756090176408920828848131913617774733845942856762975891151441853982117891347681499082457325175621657803552706321055948694416414744934089859409847312140202155041551617711426269675979047878834312880903469292992579455176740540108789812109032868659815269868575058596974621871511243237380158358268329133543047763645040983090862809145408971828107244325045399675756441097700594496898843183552274232917271566488118593346642256907655584030769413706361066707509376924425398961928085337837451837417184278715325288187860521634568355775430439213228913173991858264894524004840368434630391238275601379334928594333061689744961738189255085854740490860117226404573158175095174344263283537238493857353739786841940412172216784077968044927909171672252213198999560043854747337303663916312822214439203905908004413941889872226320248350872617470747001504732733944381297987341491168006890663082079782641362984802989044825177691681109345771311745267173151901348088560745664351159575978726617135465438635896622155795472676058299164964941881061354397972433751449309581418368661631797031940546645323296656590843617587291785854624647660101067074758763233648758228744643514271014949479724445669415458200353882858818470463609591811102155226541119115250008915444510021386227518785530607447062685096912588887278978903990437427895892131656633241748438280041697340443463878897036619016189378201398589296930503649943464958530192709002414277639500380790015527617697568087786931544747610015989772469852386199294349215703386287193624696183035769732972086529621402971077597153106712306959288099578478887440531640339973761368042980949248389327478317711239068149559114533893669003711571121921040737929008483273893441963139377234954160128972700606462345643995427404902265999839216811583021767572798120523867417885873279668587471189188877808567629045350304015931608969620144985992196219991838976842779032301854801633522337117718207764863467631603181590169540805024348465911838846430855294077421391032240146704741129930539327441635927244516224696686747548986894548324674336418951830359429064753622815885094272092927525449032562773056547036245780009730681449340745313929774265754328292119383523546201816701172403673625178584041874414619542583366186960621331982106676529332139392873599557437173664365856452871664821207327173307022752582663611869213451162609581079141722764053900862315627728548973010563874741543121384528116427290376598963066723097204346854060883352268286925421451738723764404112949029002230617782898687401091366119893371041044465144621912752689330133277952314158520614972439103840818620410482381999127494192300007709281572853597012583768312284637837416596836105127830868236846278088170726268432272735120584044477503698442571450059416608490807716928430244211278885690045950939737046189184893217445166104317673914613314579655162198818608069582516721498219470931475315892212480765280775109505427152473705196583079704038719089242490467835357292190156416940468855895356146169922595171002955568617495922020494063849226871818200015531505810003277078964220992605414965646196613223402747934737942348420036492857874533569895437527411841681110574754598985526247773571225015773098937433631220400291437679328802195912075918294454081923262173014491563882587650090994993104615601771946441206407590270923772046070595530483456672693903553649330587183892048907114869991141379196689000453271352974224111623178244851103372180135069973990636891740590493742738961404697671406684306184848837909172030336529834824996769870412912447684151538398723828324633961951335878413247608989758474601469846871632244680981903944459203152771212837243158187412761020799039900834504658769000308423989609629405982093673169152748226031172237058725839752753316551746873421455415309294079339805879302812883640214188869292857732972324514742745799683721731706841593661130171300399666916315444574568925908229209620757407710107181902370041950546049627876592597349393029062650396086795348410459108772259639779411870598502557577009452045705800173672202558965731373239867001265668914509640788384657334841290152531446952051222390676228789582292039397083086344907437101856936931512276863514343437671672228812388829771596044048237429240218860239901671238326347364718698875797093970284195061958102992182548740402722468279889778189412547489778384130622280499770420740482485298227213859263317346126179749600991432690536000581781542695596714949836607392350440999719754070235445164729171965861563744103701869258678891693597394457009786017103565472455930158258408816897463172800629785661436319890895771980221930268914120805058438447978694351144668803337604744858052065145221676827330703462701865792925100744544603095575837732194471508399594567444367235838662196920942683560724402992663287764335348624564537047882702158782879776891635737228560985414618559897110700475686280742662581890608531493302472359075549461714987855118077586131832979417629930837936105603621113973950788900624687343035694890178423418214470831855311891111653001916404371969150171996087216461655493479735491576249241344094621541047689726785362669317572137565568813767372972843236976870616819896758031336057974200788942164536868469341949853515429105770707814844659869855680489848219547950820165789003062338669037427519528679609875531044487425256658911757727881904051602642268538362116775192744481704068441277076921137655586039771148446185601779572193926654325576913415021208574201291573712189651635381187150806761565228364119620492585107060399588950508163016513360740266057166589781807816543347690517541355384945045993495104707511781092172808208996628602180639940124798612295207754119858606695862816103955622789041690472693039020644801548006573101850698725447585346171853039080191694298404060441950058771867268136467159643063232107343850156208617354606056146025272078023065539641443064811263098944890733356970541263591559804650441262253157359110381605761376152183548285567254586760125519099102482605174883508261783587445444436795704745689793460007895859696435836490635710649822467761473244632415156171668544905877295147912929564798202415444935919481134316747350375339037189858925251451062961052532578046727398645469153471756448657387448926479820229324758017810569772649721538976151180534983651452182493461002979070367640506701632457273534969494429841828482616059155291403339800429053632514838979986047155998984779225486787210943237194650830491913293998968332952834606910872250894496860379150226456422569052135272011959402534982445313663270291853431837207411668159774549961546673084318311084561240498199610425891825151540637486008585017677662907216238845398585923094410892630655806435013850316267585601427342922597741422880570374279399116418570084110664712892907970782408652795421617073196857225797255276017863408063158143971724599954603655415778311053790012168163640542333151331264258735175348563293613827288923267649871672264044869432249468204337927981852622635218255071479597417878707932727368307238807811955557035578488979229329310186215631866036691590444322392946010519198429643298946959771374649532576594636840708955548662751091861191638824630410885729259832039596951084146807773941642543101641831543410950092952946855374754754935710407797648440802298866850176988504425913470728482790880141201703786479355006817224836483256232693804730995137520633769366629255716198491118131961255103018498426535047246326312558515650686377505929019603014734492821560330616180780240665362031910686053612206277454866709691725742863274148504616722794657893517421283403333436395189008679447790326531915098864163620121486440878918280257839053078988570173890410959780825978879137950141303546918026209864575308638944017656069819180947895153701081318421937634545612992938959907512855058660783251366768980293955644788723118588907624810670593159671476880277251062625335666139512340319982843181627950102753790736873700393701890113556148988356946810281542836653012392043898714315233971981004145011050157121245030166000745717683038410070195398976070667979301687685047492002055870065940042326878186412189037548917541078872379538790259958517096104844623370918098335152506768352082228073677222518936028614290527589797674035819277611785600973512001159711771029556358811842603459850474193379741654692771751369670015810759299128254654441848325127425903884574091289459929916929747510513517555745840583801397408388455559671405808650783714160583482040421506439383680067929463894242444957836915405855025187190700268436793421928766189028481991862338694421509498746690560726344414928554790783629170955170857625671591372580939412510716625032170799260243096359668931912319685442157186588754606857671375744075390259896559381138026052397909633767046188703857457057432378850584172493528780047571504939762132777491295294787297852482965248234495794791390267825707035800318194925457217037075056979509687970333047446726623774072326620320643928740944378696823688053939219044924570588321512021447425108857226577734314538307226753620164324942578586371735935505446656594648282478243552855712043609925811497174142745451898166683723194038996907986928839368798470628796309397310518450974637768114289366985650614920233812319164303542866684309791239576592979451003691364315965392761479601827166242624351713583445432149500335410006370590566356084975817117736204458911843415004283908218497718542589742394099637970155764691658189157224329907458243788260515257475664011161204493030720580692481586382655847555407517552021043714660097542040603139547797181622065149785482042402921761443446652137452631876797190429100120883062576906357874712614590529998094835222915577087342303309853270013447469597950927560033122210187992061603216083801560161762772360503775594684553630562780445455026988921393064943496492045088601606175655711667177243185697969331017267528496609189642122172444491557856142831442546745090897580072933244605017526558529994817944001734841878354758118978990040447785062079008290446895107372667087903519730085894831659087766186723998558719172920199296102307406666759464077068987838051958707965460004858603302898592681183655737109038749739957091491120534807458287010250506018983726196158246343071126527481433796067314827285250392085265344028304328385696117176169854655136560746919842069407741388038284677375746267428127164699699568475801383291636735744777615650906082596311170333909231219121038238884777392649769444484920346204255245031383374733227617808646291294449538764834866341954207668608388119567363755511901930541430182928716155753832337402583621740737647899198648099855376794848597723339487794728929141980465438166004099352924065692070546905434920577824024335051507250004964657644707557526221243172281340213122563251694810855278404898417828397693712490956615594784632612668821890345105704547172053575292305022549907773411502051935063337696959243551564721484165177913800814571584846872248006948726976208904502118137709939780622796325545735571662879892478839248925918734967355460925178552214777078778313228513511445008927871623604709436570012962767410807921391358110459154772344039691389549269778838241871699939011278802005006241053230268418334763463741131062304626567689501763324369988091988738885580597917153321632872876027451118774129066656114228319263653000520441722011340376584199105506836292939244146701081241116630684738274208854927078111734656692968548093820144595788190011098397339868214725453405060123073429099866455126095673793521095408067950415227043421512102042503360139278713822598434681470065589368579290417582874880233205266554890305738629696972110969118959501200227512711333667219585109751317172402726898829272525255261923089027536115065696528433922561458972805524727359832225142518004485248581276698643174614577357381965681074689084216218304718377275411323366779329668135800425197154721116929192507734076524733710731676372996252860825395738013765543262084759013252566489737060597412680918590118312764845863772393765649616914942001373294758084565920404148415667404752138647595303099352617735223023807678900294088906641275911361336964303778443449911555813812636403563865773536574601670686393499419201826345143765776442188408930460657157190548235425053735715393027841017770058224401255532139999608465223413099190149830707890307538522854790284006974039550209229964912369164488700832965119738320223142612459486924256541148415645771273175175636166557254063086167154202667530197093259651428501021548449869612090720518859148977580620036580462962337236252905295385645032989341321539219648080786770475133014558691998296645820256310243628265907039922724401928903317264075222719952992639361295684104924460152727581434564661242455403691516010089561425601278059977740004436139583324175099678798655384232271864948463098759799421375830219297126680222584701602044659904502965706695015566280051372365669964704919285294709683015171119987475366532868151282569463109620948896283087918068640530881556747743874975887352928535301464288263721775678794425099294429532392402093134239193570415863919832086847620296014477956306082755797894684353092168209439708209282558873373306067716319352459121526450676690975873807047907825176528836800785952136329350770586096699924617131652702365080904663617251049198126049199951545171749098681629177529975035519804067819123884992701399194851617196772426870033744242902732672539077990081744640069793454187306172180195660011081731969649263904040812034520753203170130726265538824217221943788785773710809120566510293747059075664986715352943946438909074118661440101367239010777553161543184589019648732078354796065171005777833264800534302179500157906992701989365542812610464373960743671736460603074009339910604301229316794992086624077429269662476373239138865734403119356599084583980748737573145187206442040954215085242266055720381635800034328513144523486619351511310593834466561588280081726566857110566802326980015042366497235967497320088114299697718624667815157462308586873941048428565102016082622313414889138381712426863556418933192681203383094950047278580478557105187509621138729343416299912201322179988511185071498815799963241512319740987611602795864406036446220512617553210507008236938299860281142397797239524534959438775579040825560834296839935468163403310232231062537029630984251121655753543218667047218307833950042303990785968162207494551140588358053698339033271347403599711085960351861532848629934065644367312082922101422178150415933901726128232247749108536803904224892927865129998403519338576583200968228314956980403210942175722919457261747425937116722111878509339585819504486054500490595781811003583041875009344540788461514683126521351874958504979207343265453566822801551420483833080933916866798379455752392220603944267559439760891569145965823106827702402575862904355820379854537721787869800058943246772266532984817751136122650727862851710306892245015476176293508307006383198469755267120442149138511180859519050122097513127652322834860339731526284122256265679332765302298200101574823632351746415275374038823554220159205789848679015279575170750551460836580102107763580621720282700653137748320449179962138939028237905279165712544900199910416281650482124501155223020649400160333682432967878216577051477764768944969169424400785836329078703753505839060435222355429108295419816146880652481564071189667488579590825399686893390011503322442344372240992003705261088742329759560286964878671341651667469567682644613642731987865638963384542555750536394591041990207134516993193083061838711002679507039885983484240565503650557779736050255828031169811181533215819585727501856202330412279441776011201922887882979609852744024503448441079330316773746623059055700278071910596356469670403395057493199712204969054795222995590917127962426278566657135227653015316756276622519051178787225044288308249642818609477324115929416998901911506775761999931038730231193892833700121859169755944090533417169092973811983043671914471121655864987565079486581086807077251629870014307021741895511064456384150527799649587653795307329421102032510462592322517759424144897947186034911060027490321476197046126373588708323123749844307453225699271194839931864356660189620394245241305988119466403648010562928004973919697373788970513983810687476844822884344355630648287136861795126110767981368440780075051533311094316770909722152742248353589186159223364466547469164417654425786614473590241089087352317630117239461306387735349767647889633871825297373744400160599427948281640021751684429175842131088298181136446506592714242755599908859765361428329933417686119030301627986064955753349990972340712332432951304359042707131684521199780382538004253254419855742936126485880639969392843570221775044537016519902139734119258108505257775805612393578483600441663324459162894241587269861584294706782852183252657334598399393875376651878806206674493441534587375488447772827674341711869570581687151701521263579194879288938011758605380325442397206904620632851382467536425125708611884184392096221350603108599714745462424377637597851965829708823075657903376911406294355553418279401826807979292962432848607366462162074988797725140326515593907743169744111865125797381882000887791439677334662970741707946325190692621934040194438554117621050482107883515918731227578918631330773440684176883402784302436151980960040427306775056643475890543403255816472130679068900972769271485327837684517716104366581933161156401495549734592053328979887272591344220977728880905773378722060192638750725344501434041798212467943337300370533832943545012114723318999728845526673024067013034556237561679575163896734875799679129693989538066890623243942380015152312922339603580009694637188971528168108250069607853495806467718810788858319929901032521453953439485838174051897267987111271523246829528791110217419385398482526768709043894324187835054155085168501547099776065145449209994914271990377942481509350993367047683245854347704464351196813357955101812629220538149344964920719798367668184137546652119778310996632257626704714141566225233677862072837803930834477749136773147974714734369215233593090423198500508756559254985030744444631930669973446630171319818841282761455186966816522108091083004755267871498157452854707623461967660336872097074517547815232956282809253019418270198120776904646758534987225815282730179715185607435633645870851373617467289434184189016387035602850559156491756951063138863417849163219246257819162009434706286136484282526706261923992811143518105902775528317568864377089821751665768688549733780685887766066980952639995445979452665181373208086603832783709142226991693563597702065551468477503779876211912791102460256524573210656269176676625259611981642260581518737645706291617157373370380069341621402824847104464264939151707183515110298105640230469027811374702313888978639411279749622948251714081855707413841267542112918364815318873566911958385057008433521347953871581729822932125914124931618467904029684141166896262567999279210963051124109217608726393747673971520285464753959796580048656866567869950171260037649528978997307766514539909375539204993710454408727522073963435951927420411086743272090970180152652342664403896616882953717370343622193894945110819569652470975996401345765670607332871882752589139806816479270976046420696535994101266618785486994824691457850510547747629198777159389648090060944165477685791600101538280131394557465017092314229829669897522405955442367803808703201660874938806893056529119477264905097720479049926977133782147903613990498486248705961109947205377728118767633611177901473450546811498512435780663954116979110004327781516668459101522950316872194103903279243054064549899977964999367924671736075607787702451624145102569616005122106414830540976735781244354531103769715442139544178227137631967794537466407128541170336708596271442322452142424272472880536045071494495463878899275241898182181676821196626649349539266705907720811216682375023316842449619562725630773981142270148744696229645062882206202211518188976982088014065815946105598467017949077732671248061441126612190843661273328916888755031072083187345746630863627842309381833289719397142028733979129756235385483505631574006337552067187015159688892909139133419725553785319378870574908619137654057243717914562177231576524474919889067950717158171052408748308951284743225895544984303176185419445630704574264500041170403649976781611459215421868577089853957923000239736516491070761204692426345153330897871675224365215798127529911080055422441880065614193800683032302019443862006694446523224635037609147202528176663057238850318326523797471262221317665329415919991880603843095715436579081674215123102912155773325540251313355083101123360842831707892341871049394401663552862877560038580495841039975961161322539365310681332608011235555185001868481025120463438492227319828886166988065345568669274701519558675893550267393477523305368388733885249366100097975704002171814470023347108705705855817916058012502497203514744791403434946969079947100912953887557849077230212129832676715654995776894620120578004476819840837816237471179316106964917514404884296522725191651346571515329550733902452761488065741022040957305594512335959776192462779910198186841807082910497249627237432489589141334481566215845981875379455990136545934583783968756829573505946368594425572871325863488903854048585175323761882983109235719934359218050936218926016330638540976560472665055200759582206363561499204756147137578799683901604837522823553878207587822883426904508591434234041542149269552899694809565154517818870017742748270740551039008241377213243731861892886537578840192165227896571704602726778065251151360930675189225799670048159010980041744702579978503410287539429776969405690146142896646332859132783851644020827762671347618474725979641302562485899258144791628873969057671263072348090480397810025777717217581701521103895787917059677096026469716364708663606531701526830717912576546472991928398173803910786320765624034231139945253508251122911086929512771551176047138119681350913888016148218076846458516213954489700154957397887976310494069443056617593158786048273820291814547033331526047762252745048417272715971319875872558700939340904200170374108546235360858875474255616344081654794350140875301812767556765908916658587677167260246968068041615914850363707771552047640732013419917218732765500484879713048783529260242083139309736859905595571076851258140681138433852425152572434812149674165692499080813629598444053989103389479284393527042674270000545145242196360783564870376072922495261107922616393166195233512529999297206712276167044994316297971866393071748261832036973147782574856829151835663569002918247867830580407216244566244252696536667776513260085027075725388365168757494221384063252162879139232594755255813601134855665315833268418873802137877611070094609585119250411042975148584114390541718640831449847695283495637900896624852845788255599302184587793097119141746253352952969800040034165718116319345879255956990947833434058815761889255949759622697768765188169305435825978847554846431460072358424668030985267496843775264809661835271846542021679306936763443698235977130529225650661543464577905508739264449997523486145152416618393265215663370559873588023726035508586119819669964687871778138178737156683204833603828312408026795166632662297105523986163223566928366263709399246491247019048300962071802900711650463955822390869516409688063360492289195874256975154568312458174072273755806878455348271674437410923376955265300643263225141147087490262136543444136536101929163632243282367904750824419083026834839482706512096660171652612488255916563252684438315690105781836484701852800540263015033338720516985328724972861683945723533422029825488314917262359570986103347914285692405110772426693990002344203351589744241172104177810357942299503895163831722569558043850214538545200311275369474744767923960746472636303618619082135430680073884184259743346819646033668674401437130286131036370512548086300030551875705902128750232867516824153393298471369070757815613274034193875901497079819151245181463736436644870541742381452653054998444129745972243413436547314561190802956891572720438816002601521869260553769297403812268965310635676358175931084883754731477806398578363896069167795685762378997753742152802207935101541896997771567798457908980335721263067598018998282094284159955238213348636169605250211909334918660921810579734136005153607274366368546226482823870624790146232859123147865984021762147241706808943479959859109225788843619913645900853811834513574308010650563156964349222097629231220217299608871030883915392549329781088633442204580784858314914199673216596965789754742386103611360778444365208762917955463193460081751278982924729928160596746383566833093424946331792471493426246481434496754527201360192400323187170260390925141460906503122408918237926402399259431123983975565147247227674042577514657779300422565277113983925894424660236138823009149838062597769859727624776164902709785176570352078315494595639066062800813615112214700392437038535201987013226717516600073928493256098881885821051260599694573621937475565503590249981282896199956579761110016284876354388786086322021376567181521379889013798573324368737808215794719249481775195896240323002272861402612328040204610242882643635755311757396025700724305086244039108656334856539918252909720799184582973414810910428807628053025159461387701478756215071935917703049719348288751909244556620611308903105492303068208553727093734141451772678151744546241746231111691112277669995831815087704168409693790293699910676322258151208611713685341916206341086239148475893335210129511209108059093755260137139257478656814680003607378287362121216189599401120074670339976309246673058189321773923873187092367772181698608567199246421089727349137128607331578707177938639471613641347431465041653444360341566224856013914892797943737512848633489764931387012667321530271889212816001780896356623504862475863213734277914710028905699868475020783951392758355216397009601659992434019003231443861025518604642617102411813894382678035446158541125830805544476763418894009182604564465723122810979655480702795939647559590780668448267004463522326378918838048666534703192206835553974595975775814348570953799359952380223331368500850060373987899732935710958769149845161612310521836490248840641483231826917411588463921077473538451403200163270808979284924977229798311386712520914419464160098712167026256454769381428165337587862713927503842469458889910899463073238413788007238640658560329398220715606027489604993081238672010446228972782307264860170656831126476308230181827076580122836231617035292701354155607737666480444612914377451815066870579570798280878559189106419684353624719835493919502228671501714376446760620097234520061052831799131693875007855797574625385795298330747646476741087439490226067926969651153719664747374688036613010451638751434943111345021901682172538789588132733364878264677496071961963103410147091378385138756527714461149931777885692753431227583103888423894230207746417467685906326849942539940424595685455823045416858100705956997717338668104649145376584073782159977692138375477816941251579739097418912832921227306109584257915569810203175382398419888973875193012563116769128519435696167183328622236034001969388835736804896422426448474165889104521626680746490397440247277832201049255110691915866804184964756182519163694843837413267547634736898512114626907244049623986651531112477663220528504688257826823558956248068922050397761314711004840268954885723364900969369084204099330723335968648774006326592008909132886191155897439425559571759997874170267382482636995649276240373056332909104287391853977673344523949654759408627287982611296056074929705305286821492018192194110096576302515496550864046723624604567017993590678946288916066862887959405926498846290634172125823761506228809668395247514882446857590080531676254498865753593563643104463464686430043677132970720873030108690920162049710376688976324541602026102755973788236535526620455851773711694634351560294133186933868440398915612606758667222434771870090338191688832829551977437832410523411922865517680365621155109693855481300986612068421157198682567088132275153636121342052271520764669022792149547258879380992411855974141813197684961337833717098172984763422733420856663777315463452557553026887760449925823734746352223001794356437498338869972762880444284610197055739019098034595622720500637511347584373916226850358723967896010357632714164414566714291930251532824521878068287350630477884850465387594911629625622272027263956585477415412001474889202468015535195031864212616755547781798119337836954260023893570646668170247801601280232250760753355587314810219034033402516323998639231233894899267372737073736408684398913283764704668173022054038495877937771362163187642857399715871876558799232199683667060676178981846608410290798629722562712553813890399836554015061994355326271121611779584072704919559579433344246121228750442227098435697235104391583164808449882702135150994325069272968332254135257070809525823322216843551671060954186840742864382615311909174280935115526061448967576081177541515943199232919479814985196110741617164973071017322680022418861359848909408423800060475149126182868890465803417909811766735099294318332595458132390701348941826138382989878455018338120775993866804817185779306829546132011586009153185687537987949200616433380726540636578912525546806875968035270213859720733716485522574486207610867989622420773193929156022743920849630048076529790048896174153947727276009749105828331899073296636967294902149750028341923648512158280031472267405343595948437820031316902361315201717206138895355753254092634959925652733679901087479835314157971408852443113093083451864346648367426281844281359867366236596722004180320877684106971743912795450877885459287463930390185205194053411958075277710867357153651860837987510246343585697591354267892755300414256437985488731544598481239679642263222651953820265251357472089180849434495418942920918997981902263323537899578520826401265150254255114439211917759684059713772066723400143511768758265931025045749425628661386019902757778872683712705280632127499222680771478944526066500918485780461838189873139323675713238343071939668930854190743084938092124328431620264727100606234743775134672311727354683187674076925643505856777839344228118303625613031096375693088298109823975456341489975736938766116631771561422641757849487959403239728361048638374879196861072656094950970246696132809742768308951356007729085565123396816868810126877249683125261586730519900850214385245775786266401214297100824038898180136809121610843863881282894699074065360846766014588000854887086791380580576091933486344984655504996900119696044327598976136680323278009880442700656979977008367804601145908317109151773319722586993603284986149700773723379918727066067918196082092161725534500046696725385575422552555508094929158483263819894595316573178086908507217885259561543282385879175614298540969485487954322397905706502530924325219119953984067816974419069643754899894904154393961236434499154033639900419748392228919822357646970691415384840376292368283363102184174583632805574820336822732304761175788932823511943764762533402301113611134278837266523902929417986142011998474678282673589823120912954531105300649946140925317355679222454150649256798663668873684880262453988586493080866110363686301767988178822510899764482679495379487227269712014539304584425878351476524705725326993857869468260242391394681300976039227578960103361266399797799436127407021608571018213068889493893212860326648538327221420808206281734376639279242734307300752268663360700439513894662601107554765732298245066691342151029492520250500387681424073943995194122575786927922519512927089186985005855993884174911417354590193100120037333124557942924223586916152289570265026328751620948683386327506152536170190631114499816875078038085097898345670233290964555399536985424915741346913829412182080354856109222554880384242695370557292606423093681138613434257243612888343781252304988714625030891482754884449312687023391134085982932368819541257373646612852338420439874181398362694737042445078147192904662310441760260038058345639214190860489745033679465577956760682978604210570828084056043091466521243309848467728356973360979118385999319958823818707628041173259296823170354347649379812050777681801419817586772898474913393960966776500353671766367932019722735295798894750414122242866549168745025640823258442669967605197645065951359102240595111760237915307394309008136926978315710826133021102579822872123809439612154317493095161485134298369914575738521258459519798975242642313608407290147761106065474582401100113254118890124577233439860542242448869425196415625026689351096519366923726596454626726505470001994388595926714988133369628180206629143083720532383401420384037145627253722156550269461781687489986941481012622483192412060928537456321860790937796526720818691945055161883354286826935911640108303869371953007873805198003168922215526762475712226310888467726467119155365205349038577293302746480436449523589272052697312506281898992818829174963711429133634439564203729557696438417883610247620305943401015811821419653392820049584925581142718124383211452948185058364962757935733445969043872686473183348450706868719982777581640563855891402027928346388406392058472294124674733846450474405808520571869334629734604275254581813528434272192628393609911689203495647653051193611261510434953751023257955967694638594595842727146567087805551505587736304685966346236159334962214658625408175736065940524720067730864854107745357708159732462434564092926211275571487682901859564359534122022669636282692253562510245001593570207368683170836801879314746913635501103882110838497231165745452783916284126222106350913548184947799858615451425612921104373253112965486789284804517413309392484318238458806139391671656483421705716657789420443288313924994253474085776429435940802533661498013701791831762124669466579223176547725524455872935626461228894664518713408083265783078457102721334501866738012107110848508325300277582219235372442946197712192029653010228062237831197934082985964349288844083918160493328297366759164561742092896795282222511514045868355541052912238643364797108386954146238646464854176997364862671990028897311539518044790153805038472651900920137926008513299821356223686874688002027320603408178777102180679411297177262572867758200445840409412400132794509354094685208117289164662175086068974217302757874756368676746553278922484694366582826697261287174976511724349010866343449480799024236697607579308033761343795342466903052476628976912357720497220758905454849201100856034175175640419189857777518660266674686456016976237162029647505828355320787184095453031390290837033689912920399787359538050408101168903348299717383488509418309763155785058277186606441564348310232184395105304680702388456134040519619802096780487524011963099589720904395359000761264755023979723640445545615520034546939312360440635275382909645570703340488060654727977314291163547413297651059329977980730085407982121690103310621385832285390503866753800743260437888109377849228469190765737495392184626449944027873494702050519021305625098431407971480044638014730960764156547172803170473750780788227083955106816305771790472634278758042591430621650343175139330890461059598104484100202704967296346393657780665246425476489860709263480706474889242083831352606898891469976981407625924102449831067681564384532949981478029795936199722072573487881113032102530613965667796153235131105120936565627831320775111354022966107399350248034397434378603660845579601475450493775470975380211183369843953384471175067745166565305966206268797911201989984747934311117175162829703848118344802810333512625528108049914651300457370824896986843141968635888644165930165992743572934147577404927910500694421151470764077087265577087447715621762223037230471263700368401907619651290394445912686764630090474138387145166148884007936140887069349825318572756011518191544269741323275807873675700123563175412242163302029935568010896602277380850472237480766471512624073100277166721234141242633731736427100214928424240694369321401877879585163638617697129503303157301405363024628005739968715039154530673789677614313470601987707691258031270497585194860721707999380624830147783328770407023876865462608901229383073743172554565016450153410974440318743739107567645991360262231833246589444898765902300000605556339931036593952071180836383400073727571669547180997218101359724488397922854907359852476232909518653014766523098567840437617765794692930507836169441367109774741010276445995534836441261862399066278938442932820165964311955284258338607910592915215563238274500406760220098494487188259695396628380066998142017490825581005607752723286227519340037462618496697896402111859041749318468974115907998506297861949011276513455353128763952461133932956506361746775869777087587055849778011281264435026141199573960197261640632446359651864341323221740263604508923557851744730253448641499752738031631088834093832197700649406276523678564289234098274759768748349075271088147580032002190527160316882227181096408512429172985438642060161619307598711556945067453147776620351718929236017371488104504133150151743019057654710122811673826592433781644092415254893947578007671206163249165089316114066319716449612111901323398290496603597324593460032481875007364532222172673175691730912591841486132714544549473943276169244620244307883292810341156816474834770818393275773049925758268186776978087559897281734040984578630289387985618521663407908950029782888037391992747138933245474168113387989229052533309529988221779550141448562475586236733735855138266297904643002799020638132313433175624051254079953798504975370046960998137083563567982291020894195092687180613576141470002855745065849410371017587740415872507831091740491407848608664826397546111695427698344759296417500702319927522748992447314781176837744224672265296528454733068512697887589057575489650486507340901940351611717202561095838539117615025540800588385494726591998596340733358458957747301938201587869650206439743390287509551868369572053832201987805976874982313675528528312021761089203367922117337251444746904308345535383090016237574777889580027629739851147037396046514763233156552498150535218434481820526768334590647980484372597937081939005740085713498365007283997541301844336779135548089989293223871171135287020131561696925159390531871779348735061868098467238405539991312507554179348929806094100707348764921624258383836630992034344683743295544275920262987519755726150386058493051761489616731651825570775215978142589019659261486314292766792899614402004978791145629164030055382591937531496588148368611030333391438455825383651447761169992640096802093997835494257873125892365306830254063406627171967596548586054373147328041017954838427919185945627135986663954653675733333879002078927995511283914632772463742132953686072310231702651075612736768953732581746738234175116941652339551021611860664279818250973142509352772353898164202502585649778144043497822305222581462973839370619747640291885165265836758825632452195573409576227933828574506818152681788452143585627731472586283268249427156963391237177061286270808056576128146694166888279958852334970102760996399252572500085800839836515984410759798782916877881238768197632838550108650447025621385929267843942561739873050838340295487048781140707021904250126334503605883267295734888092027013559197124595141854944400080526720301396452799559006496932774010088884804056781833659166207825708988363291261237404960709088384555677464257294500009140764054017091663178202116242660957546147465468029810855614293646722047265778912779814709323479407116037467579665331520719445633656726922877283763590934055095824418671366951388067991383583462483450970189546163935494161909644217858536518871247982117549763811205793844259745798223537529978212507710973050504441193290209113192185590383139227973856553622728979491723611028959089677850794905997969207067037348500510917127774967487678524011052659442780080417983081314039371891588406524105484010490089317921770168751331190424531926097482514713205445375302241001353542618344419481574530446116109088684726596133089493758573617433054508357152661953841292407149405554835539742453531757691984471422555499656177937777413785610325163764129783452677649446373112993069219965974468412200754848738766782977950954194097686354103846902768654068613495429505396446954864494745321873462897593788457935078109901411195900833790905005165650950294069525453626554709893916337798104147439512503484866929684753462045606511339542887048018531796696016751005204015427006356798710736787348003001784660448609791052212525505178902472961405474233302815240982855758705938833651214785926835192578231975162633482665849241751957000810100772272157109153029050240930953626799768133575271217711197761248685719188114646263319989690264916524457037904973010035784412629830364701745500416104751510348315423681910201797221865509240411540948258223497832256989128484994611557185327392352648022547040435029989324561574069165864727454533277481588265574021009081714558867786341892762657277463744291430362123329393601669015695439374952446019716466109025451585899657673149050610204304468436967667774006121597873557062090840784962818847612837639359601639555619574827537247166985342262541367368482598749922859133739656803754798210965817826056754663020223892791878604407263510422908566599176295360889577357029968938264144030409381524880923955564695333240986930120297971443941399067268544548229775020278456045597242275016501107807815340516523732615400296611721555223313932122121390724493660284058034654993411788552689750751371388347072229728547372689652770693513450533164680044064953870597419876098208111673033709292553213276018292469783521528144571346336744752091000453678936489177787475682936137767607985759383636789502651193619653895299146657642011157922699464792509345828078831691002415173593425992960492950803065117525444281079433082138534394733940177160151942157376408555413021426557578764342579385824519383481456438941331037386871795618705975391608496810401284412438552442324640924969276034253604381068772478965246968824832624403228225870607637731694474126270283387827667736207403509369805880091537575215797552524772936595446565196641316959293828815876723465489099936050278323020608322608932308338249150709623092990167980590191451195470537964320668568645748984307879700655869873359199258811816599371713312584132282520414434654344871401993147746301037828797378942001641526806142760710397329289932484837230055650505883052596401124734554588403029709395986338018515925802894509386452326050648048511910827931678353909343854591220191855674957467341814124405117435102322855073775921213036370325675868666556343536507811633753205273973244187781586617388986182697846500558229557247356243073271115205152032292628092824660974797959117269813323334471258091166930044938881143439971931882849325200788018113802247197048312236242704051478965861989253671948193684609454945148647544049281697227284874967214819439760729468291328523208603193296561826578831081050734055544746647016385750543431252420539910323990770495773347936416659192809791299361415504932899414855405687457778080869558461218022553861752640273490975905444712462452253987001911462875385203736699453730875368044618339532614066649482838768188224081947280603021695057483750591426201618398377634773209762099468097423664546159811874758257488588041494338064245161147392677765826519355138433381497462121954349023050438411500806152748615302267489036105416854609268280390985137466559244633321510116072530973722824499339491106075534545513762459081930628703023249826927206663875377979694263841820937854873363490197818538041569280752392166960031666304400834451299446458752822788255492645937053748883671690512615710457576263328025922455341977410391652944794093903230286257400025445058891062158159752223534829323480182656629346098592589327566396514525938603392989243074761539629967153835283892616198213196909392086196325051232640005838461964276135395553481422955034761737867119692228039207001546800102930759306387744464767384390873409076613291305375259575203218295879786291672273356256638486417258169798127793078622022937421945622779310218900230366202225879713195857433234625509003648520172518382196471299660554898274546604421850409590532316703825597278637879191818585835386088290630745714729827076949271305939083793585220779060089608183009068224829292736526421723276462388677793289929911451437068125874230453527151843826607466226354981159554671866355239793731000464301152214854717167647550237212731419358516844981438974005896201133776656054039375471892215070861885421502878987574415380627519725329433847126352490349859803712745352299057474611177131856730795415204862422461438482953532926019803887237595273786805068819952314061298465340514695743549299968463240418189978998760516290135652164235883597597123981074183648500353940936979435782863009891863690280686598765633452404249952907927640081740940862582675392067855070907233307248959730062342715422902890197119601882024702997837434298417465300046033160786527768178891165618419133748720375371105474519016957346682000235510459627532893866125648789674801312218173591147068560553115930428656528095439147226621095690666669485527429801105982396160504483105538460342248074701851291085230634913005857898820089049957569084397573166449705862012194330883315106387034041884835198547171883679658244779188561454468498103497330868783804680461501371989303445272881295466827694122141324844708409138868286982424666674001307223243591962073897209443020159554001907811679504881804814200029408152691513429596927545062906057924103263922190964219215790311192676180362938177236170311147542103096744380608781546995532562846842467739980479639045908364394672757036486571862051536090225635973420383824775481784472609836604108535981451768126880415339057211879133685599953264644636614720597199641676028781221626174169844224507337708019031639661411641390832820107658254365131604110091512370169066805937438255489783259899899305252579036304392981734928462364029514374785649764330307225087085809463618629254404019764951584618060034853571504081765398309704876480233293578331580540443489419178803580062167021016480120091807752296994437525627123306373969429541001553251597457297069081298632229118704433957821077506736495555917843627993194007534414237492192124636708940506549050525491937463034435492519625598094211125460020724139352286756770793870795574146072038178539111067729527944444826452400444730844553902586201974897186787385270918955058456123269698852889645468875928600711306835329538339922865076961957116249911723736106960695576418724389754748665964480465800260735684054103098561758048267221367661823460266311150096906511658396782550108085016562870236775379015459231736218773871664942521001791210778953333537093747116054802676591516697569438772378503247736745367461333078524563293454782209654074642599715793654662241103411612942897451681501584913668853469722620946945883296128187950545002944435648221441781699966968827220395367802094857870326522368406925888859316736013517140220444735022149049432544090607363312096817003104949042619214652539888651282785377068925983618704345908809371484119334395098798012534447923852689138227252361923360914976977698906664480363855872545613342685359492184674865515365225187190063311668440038680573453203978439006285108672476240063399753660880034574290265614998810388252613151525239048294966702039066691599082565682233162399920835649166287983185186024892582795811697934571945510945906776694727334668859182283316641124759298116729503235186694474278060344761776011468406848181425955335559563520684319439984482347192342482959991123012314685186671045534391080014301371024511902313362334960054385034591222510493882182466057734239470030527926877418625616931429689404064397102002497572388089439054430337386144736738979120395320899747328022253312093613525541632208898342476167115098559095688918469435148524920804688603578923678889920966585515467749355631420865206699905501297245146150800375624643431504745109131535396576477200378165740160367589010836626053419490550512393619877740081373577136897917303990457934444849331310469501644945060579108588039318705178350991685835267626257031839985429518120445052452324757591444928530451433908118222023899083243269364426071160377230455029644718234580751682288829106474806918695351910348057195292282307456777736935489873920894692704452150124619564504470372503395266417237646584122000283567571429921831179127174051176829646739183266646000448006760311919007239733995453639770569815319086717225290127041678563345186345877064823638536020479406877792379852819387940621891883499708959000472805948645084671878284340328832342129107433384911801743461459421770221077396621129054043805713110932113447250258083862376225840839450787320544518494969416675925292159793774406792609503795097029429963147631972810941608674003685497636837267643863425361767474473475328918621297040225042518553959461684954712398134603321398543239684711427310701808832917038857886343770193996331026338107130695726909303329083797921124499977121622051816853282652330617576822675923231999861282339138044999115698184701895675541803298822953851360430661930058020614971538032883651500285368508372564097800484236432071069632090862367282676286162372968171060201880069470011251790341687739137933229794929173216467778485643118760945713569141293067682667558835345875726501938216225762012170733892283657195218517740572851060265314612766029346931233797042693170073012420736857898248104436123380612591073479597017360485026925991261579859078145342769124276960479454540990160204823608052213855474549900241627427294338599238973158175949337490634963838692118208010162127481196013080756300647585805982156002425925827951282010319139570038583465870696889032632558761323379919105927830230515703790300217009088436866980333144875117439730730014450733247987226783502377422581829055778663808395917382734650729806666305120202579731049075194998453210163405926221298723901957111210376088398948006853429827521851359939861228567245770823558548944121001160827620631430401639465807489536953410977022227878283513604647111664367096817755221906668101510668566383317926516382726682893331894655021188725109412700815814600466681872813371303991538562045711068466090264179221230317702214571594197570114640034300199922809569986256594906462044513029633454274971093525124866528544189983609730296774112630627245291365264915906417853232650528040178588732867624932573513115047332277570795734478331706044641509365707713723067391821536525080535078048122185734858946487185329756698576974759915934580311139312820983351782771097944835375720126196426316433859132235068136675870925959192016422192562076319295938299624134498873451958566963949908920809429639369816187765825661373312347937723629143420491841158798263822767775179947039049329607425745889831709593486498581550349641800789862948643741610678088243393592045891469277170907699787809247107055172581223311036017025033100373311195361173489502132531965951349586190153541551863555585976437985451409429670625308615749798122068906983916501693153177279464022131391543357437515363855823581057813879573607238729256609874965051351786815909339939314561547538067964787993319807703348922695276035586088738590574775441554119749073304648281668961925601209133607363318518705200774349038006986719812554452917257843718543489630249489847542770363492591491220971818083825159381155762056850023039932876188498899293804819394185768004463933704854248221085331338242329220062945866981189183754568796170693702270270976630225823421818802436016178315305975908390430326273655093294621575675263962222489474592776832551048557370421363284918691075517473279705511950147586639416629131870856503218393765054350276667354582261939043242816595313370076178590892926898253342712771211167033357449197616334224355367767075898700576257052801167966869781494345243349823346718864844874220657375404023301162270018820079287846091165519861171659301328686729151228559796582019147412132581612049873393648283312874492236142166191145198008159460622739043677065047005942542359726518907443722904074447538956507345145240080420140262306644865893308442223306077338100934537137226693110706720954965843548307861453403407327537406051454242657850789464722267211644953692645814958225429929251041490564245570042596060243895667467567507064415362874799361925837874862595442312205519412743595237437032368094094976571731314954955150396447536225748192057360156844042147885241641350876737369207140730083071010617654030454349848917682157327980524052205311641290154264403512732462144898714226138573346059483059392100515830606944971866219576042965909173864526480898890905377675552262402356209045913384310489908609390173319337670229571249755297299576869336014636870291644888821145899881332206077560497623252877422777784646741302066350292477079118470459155139249441890810833576811619496499707619051350830393375065999697516647977454810375909966139096076071911403773580446146138490451708702233554665898259244706271607258109329014933884245933909189763404880924228463272561679347863607281456418260032118469177763003946146822048354331557960433439993041744297831178134238228967067529127143790066497462071035960042581154969742777663325096801841333276590677610962981861444025744900842525407269262444824449619905517635721818566234183920482621429140037914949017421320386589291752655141075459957168374784018339145972393141886255410319871894064252235132238724623142479760498428808724554007168608025178899572737128041738287028800202173274571804565274311337653163773296222950493350267757251234555614058610760224813310377396727751404600151892344495888551289021691571552696573113492472497902070220827601571436157488943785488534367903650486730894983315945714644393106814893694739422414167190403531959239009942847830776585678891360670008280090944397527238584490581450007617099287187856175523051298912144126135229890840440614320828936251347060757915341454229929457348945184903409774591995457852423811351928640401496388840960233128575350675791549660290987448718032183047895289780698652914597401406283478342429048008392039499477410829425518655685763426092596841841506554813556148292050107088799282864401322806360287163660538684397427627884787403685114401613085839489936390114535390227222490499960562878842718381168465071021264276655375358374063089373423429096070989424663804463635214087609507555475840771440121576272860041510130723426138430286443871239977626071455661418976748300917578376255459163245988190517127720721411626211516579109363840963616017678204564497120419036742278453175724822768624614853696315081992124263355581161563090702344179872433670964923489868373990598400004178011500130295058238467926263121977028118535150968766285183427944288735034132804565204939145753494810476502956505772678011947085002697070924413904602736416595011612157705299380580665560797687663352471941037310217395338912689397528843687333245802364741227336881711213916673660028128970235738120233532551014374090108556935252232936293412415477564504530986425467136380408952777078013070812173171414112330887234381987700552415749902055497942449694556837780943633469058257976472182180571085121574428151038436706033217101691038503002184147020502980844994455571829573348961170693418640610450461106099687386543154756241549436451089840060673830372105396805237451579307236072017728095173439540591719703396737034680200382119187286186957813364584768390241774240359993519960627926995828034959806782040241064023533801210466731522923467652221639258843036814714356251111701418020617190056721491563981661730848969625805148745236197803516824176512892094345433472911481305259273812650245696490968610346585288954914050038539397979041569975339621001891598542598165121699138815263216090023212402875574721136588133318382424296236979200728881794061167713354202623534005104671152053868550923214699042313329089539120415834072846880745539590788748092590756786144900640659777818987911674248436006151409991356866312796643751682572219908632620461588470028174980753445503915885976612363542358053196155851903895079589170846991606016063927177157652172375036543309883294301559141421783142279410049394727232411776189609439952125017404705159759351891136706036571230735889313609058598915214476149797221303763326679328422421597422569619329064595420060742764616089157832299546648276362717808735429699113764509114045725693205428921003140170347885858743547700392380784644349479360503709267336642817905743990543691273665334417844798944060719147546993609927583724153517561302391641558169869548742336450296241731152779844937385473725711845911812206869160845831035946578588536973153879971322455312227228017075438020716139417140494422341122104389128906326016641687429643293205147631346486438682136746925907350651993419685256878338316000623002700391122579878582330117729444464586315523656825753537625654460199389317563524705873981374495358575442361497068749778337298106048467834751207450658792907534918493414159225132650430334693955408521159276362760941624225157142173633515365625741706537610131871196941302649626657647019505648424224342667301733468127158630105555030204321916444967609718319924489362466525287988586572083286941654913789043691213926391126282734457689667343795559392627540526976882516666220001289897911021268605043921153376072255740758377653342585421786322308637600302075654586176659707510345685060499859642826052052042372424780679984195203336172788831082401672930060627442922072448731899595386317769942666526330943940726959691468655353476630377962842256421624400845193952470037210620763877826678749772185313195673676940204936094784551749722377097306634250871394270034021294267889114834257132554114668098328501413505922552756749456079668910020576832028977396412239238233433071432707518919623731383919978526533504969786024378857112914440324284305172687398419450890561990431686062468912305974375578029665129061497452618900388825708469284979665366166210997852468149726137285297115942691870663657311054933914820830194133840728772814682389016977427181724075366366886002612981038532002104150671526570653000013467288200690045176726590563930082645579288628223787114666790598695053635357616580752629505046916830092995613398118976179359719637748833940215113970860283192702716683441224432226133200522561831966288689683691026193779407236616084558166268937738329954277759628915145533304128886843910194347303973017249287498161135671559371101310718949300193244743518970830377189056244333120165579671906472139231531885261263723227380589130853855938235568439279979879776876931520290885166638301706352733025022238522637024524620257766061211902936038692550615169069881718231267490475371122748241045726387777335429956629038932717223456833928731700219523529947107173517641396744890220195946333496616885314576388323844422727283232113821050644312627225056971554229312860434037004774913025658807003034865880821772763508416003167708470598436457017479918723001514064264655146408128854962956382328896387045268889234225931604993352385785360864578016492637989570530924795275731278451955159435560831198141698471016380407567227425448330111604513071876687480414208517931884089641998710318222062580399620297146419249399941009540093689083351363420550693732271907269470939936740410873987852054362148469444164614096578330598118957163668434737185152643284553264158399622789789108616596845566722809953399973087170053276299924434789965306215964439182917029230124091606816274976151320825543749787207616228127436278444104427978068582529466187600149538352780052454343713725238661105711897140046177297343966527196432959724329570085317414184554817446378177605995906307282656678173313342544193314185450527165518503055332842939115864526181510264986262065624892845710760361678698460524423947841479692754933075574348496656969169005675264943037606418754470008384521367880027602973663198665122968342496225754559027106141538838709560000497451188108114765647796153504041021585624152178962133091599984054285565074958502962637722221414370834944537643347878951129319142209630288973048776384447887709112417510955133208868647910849124132298472264800072755066466532217989275041634865315365800752802371928397204947008159670419047442192919271849231389540710571384203314606665137688057814480136298685395172458688989571132502109493482465715715078294738799334862893020473056263252931290564844176200253437713549400346643797784114355552865797498258960628399062139476145467533459970140422488961788543760596480640058343142042477265312264413817811515546009917224886121268726709437865369750846771887987512297289241968900254575327256819656699360608036373944838284282671055088752184773237261058044702155473283801030741011668608114206783956265081191380183598612363536703863271895089097199904299993579323334321285248810515887993938038929897975760431071093467969613405211159986613324786606919117228572246328781586430652813450519110781752290279892731943404491393871138335167551272356687060222014413208395200072251941215721398374638877557532859219344472250749980865326984472927746973821925401428525194888451158650424728801849606791009345201229355127583899486387722590629556943316374542804796579079757898467128249316541648885648518766672618944678409078463825443701765569533920175132278120418039026510614352593396525703415109099068987833422575698607695613533945469010657639514436292311077157808255802959121806044759651848368354793803225613378987943654837387248204368708953305528491882160684882286587923075355487319586555622693957102601631272254525914810866068609352521932774782591155684544285138232401477255454204699947976681718946591172883713132942386890451231838848178771254784201315989168647867258297153493801089089959915384591011515128685904401726090595032718512138993642526596403987128384009205670102024869073894138437013675696292795190188466596929805692534186792312003076230523493511267446648688903811928832337001632829542798358938867934719943089817720661612782112111713410468588630744168502072288837982413316940912866635085005271879219976036283004629870977146889042984245116681882240017484466937019394820984698568502489385191499685434163336852219560078368271508738226262355182020439112551761815072460442081294401114544439370271574114529091580132633046487420687797878910406305330528395286507037398655406504222571043554793562256703601191521982229523173787764558358285836664259673255007267952564515550417798011806188335423264758804358002482513194129229604483261720879469958857300203053288799671315221046360190546898038199693238676163289002144035984232403894889022180330985039196878383704941999226476253762425474180175728090289242803784081378573910387131522911354033891514733211624188716032835057278710088457213555802513017787190440243819107538247462987515880860038673037834088579661010248435022986003655390321562965138314455170910418555685617467983226900189136624678227614598203863119370565655128030127259498973833607979744727305730882658021135488476229430270028100533637221461192496103476017056690431054824066181193772130265084807659507693704579671417714011139883323272513773707533558465043682675143292987073390026557178347295988135178026636482041308917559704230777212593103005430163649892396532662849725586595480487783150964964247499711957983282744405290398704933535793883727943926823057430210068076316806678747375677136675601980040967282776725280526601680531916779438619957239123015100734158616760901125553229111470619425887862862950807648562461841319560342124774194887726429510156195739334685723280907696874529162235321616306312225497399027592607324648329050975040814375924444775862962375500849451104684707942098415571693006827354005114788502281259946885832251094197025048421739411429633083270888888896065544214463022566103255322386993453101007016251960446051890421663456722890735056401114652814300516549778201484275838419600419791058527293289321903385839581368528412482716381914480025767373037327142962172742276536482209463629200288981859121111194868388310042841293648238365579337870755609881883035640647278813595471098234856619782564826903973813879735029517436243786769969927893920586850552831556022801461233160584747862100241757104153602320966459562972978296882104234297200760319647505983924318454628561284449412876976700762561711736849049456203668329763070364838736799852461767429947939425024355517468138440261613074747261022091617947748321979443171988185657360032925255739623113633722936059459497322929687303466869978943547935137000011534501496023316476647875897220736152305421698757031315059251766407538307033172369169442454844546955914779010767510472307224359423851352514671427968389081609025088504189068117509915018196526376475336037687208554497724010076596826295072535891558077807260740923856742576374686526967466336017103391738223608043732212325559084491364585483815387497650000032763943221858750951863201654883170429864858890635083308515057361354903338019019217586301510639729041253378017729416324975111463900597187705251197766938963637934605063269695436310844515386477448101889391495407626947016267907365769305788844440234412143054493036031228597175043529812329760708066797400580868328439077489684212969918201759722627218703193623821346329677933348566596007682727587867570735437609142966491781364306102469232119016803000851801306573598589025158324821226510999266441672125260355964549537691268056239337884082897737730296160940395446417124170948368175249400911322534183598749920497626738638060835990928935458164371571489658458519828940394932064739969294588622493631650019414084822979182340551558745918970331127091789422085354425695366183038226834251695570320002079325827217038116933827611871590016042172070561682232876228273055023398349629314958881120037069479710614677159744912081189281643146863104893791678140242901181201878397669076951998720701345724319591173597570816727262843131341450825878738999115939766806116845316912071741702367628841938386664904710899561652895500016182787873641073085679468334335993330820052833421940477385220798181304529185531622825887456917249427987876357121984926440875186921225171993001542223974528728421695716784370374102717663080001126383294879318637893936535543621331533355542338976155106449676996384322773715299936723473933419409018683852335055813284478253840747454983049645524329268368065871886965703865908628115367860217753980291100579279402091790388100496909957862570341942809391521003312012994756949024611021385303825422917738698110570728012407741222896057923009477567324432323124115640589815928877227460647173384913758165114633603906771368898801299972739954502790464003276233137040660754342104481427964416454553167254337835258038264789727822300975157086411803141507963131497571764301454110326050675527233836215802542872964682981840711749854124350557045557927173092449567461481750551430649377512784019040048520834904771376745309525305502074635469015041344698720166207709836594957603513615994374948898863513181400095916735824316660538513752319652312008934899834175815865000691425257658354324681830022906848742988515012021077683887639571177362804860801497509537676228540317132363532447569841354533340551227674983038412153167017397122285623527807770463737872959693318684403640715238417509535493215824818541974029887487522460865834615986819846464964912319024341302221165159792663742224079348949083142271037784707990751674142820719577313958399988694591971931887085812300557216533571288498150862343814534054142184831545549969873249504296496922240299516795607987183124099471392895585730299287039615074133093179136622545304192086353534737473530430209834771578274947735558450672075670888404274114361309673208204690185062632372831275335895150435955960566674316847281504750205915559772860414544412323535916282533783550232935377219839715542998484765329701308826238147676089604909569388845730702405998557539697271042568294136810713861548928399862464396101039938643119662112659591422373501513463294255440097144123428412117185866353172545872202929139982748455428065611135018579892922257577500480462475432825267064490240021885910367229314224955449874612706131351356025744230758755711430068596282567633384383153978990888033817483177100245361069901236078142488427977934889211824140452547911181428824629539412849067138676622091354086553223990529690762797468121337613365387219018635067286118015932828098324341309308976465072074129853139003778044953336811310886912516766004493318431110657646895645082258330678966109347557251145246887534384829116380514689519754434677961453442052636934207741680875976364226369458176304307927075378744993387587165940599183071206024027257056962871415845915416940658044262966511993638707954851053602219769228084440100139439827535571108681078365408764856786182623926785557608506872573723592173948174700693218787723368852379114553797428581514387281116623778042785325443094192107402141212332184299920423849480757637642010533155475779157426129941361133566372601501192116938808710261694157111850021419145346278902315849240294863176224302650282996403278504522630744116152184631699069190221943103273379481683241879520775981492641691241370621445738587060434339159506067133353382970187837009632154531113176411455248079683030932068540254390022546877768139549793334978000443772496971150449301815870785841522046150677504744977806022085896294633386493195749673989691921455539033601858406817616012248345668720641619801530743718017205125530603073657673993406095239732989717150606877644831808111586475556799650637590147982394916999850134535917897383027093662653671493455782434515420980679591978821833054903286285232760010092635644266353650728825271648820033494416048854311961505752650147587982363771036456225115186233591747042742966916076279315338719711859744183244505889744097450322113279207789519821817325880538840073902698086926592852816932782604057837309411556978351572349077664807910395278679897030574113430679745098443195419711769662365643030601275767625421609622777889021035818476743123502325187291019011757470722423974373006975994797668935784336683152042286784848278090357688261192179403349170547474378916168091032301222188404920903017083579358918847250209117694541095375443525573897440620476966889287243774182902471295300332290289054601714376440482991192320379904727682114407712943254069044177984984778761614921951518901658750380900299216512772417799406584388051079926271228910674501705777404939916842631637455920468927395630398090833587808872683503938932774812829978023573259272564568674016184597763968571673571719837525232453145738695465244634728949951203849013129465468505115924567450465481517834459411813488489447506712376155881787822936068873447132040667568431651135730227122240407151943987034406810534657837832681747214220827373794838726661968155290583488357017275351378331970655514710983111605531631755562107307660228997602952479245861548294211458753922450410252558624918724698945767678557700539208843147747466927915073487743659049854676509703918446386687855819332104593489709887377157452070262602915618479085916991789694778993170789256443683391983080305655144939338174823645941283169872348499383145817444811651897757706169133827488031769389309529781882683736922016177250646330705534660832981897337164644300927863737509915288916898705308198364927165908048363563365255742086514946656855080163554150019367546874861523193299097276304690376881090467692552735327728295977798193907464674378017892345365891141742593697107447284878515419456674503139188756533076468139568077730020811325428163181079024847849121857142188124300871081787421001023995287070382893884156336958936483574500291530119173970299551592851447171774827394027221351683185174876927598711165069824548756514549755401345161254402558180511655082601507531200685452148276234128687313478508688442584139205502826291999208110118211560810620113604803786632181872781510645541463458536374001371438534443556915919739531160183816914819652293736786027553958766164784748329481979244745914628691305708981972715171738112516464250177660714895654761555090564163910493703107286754838128324679189878149765201261416112249491919404409750540986663431614166163096815292217913588182227177331488165654998758932434779516994651742344751486247056420311516284791589043398555590169559318219817268294302285173742896573556533484320909658573005032503121385443585693342857220779906272459634391362517904884954325616919814216789042307477034333268739442597714051019640644841807632124582454813548901247145500189406696827996995553398499881787782925701183776256381788619257191100090733987636488899128790178339196362610705882887256573721573196465789865583740871766948059973562070870668717102506394326311205727094325944187759194031671024492701410788136858126973343233632719109151828351977900351652481796056994625963716984054182409882363923626356425313985099574893579781368090145455094443919364366548921452596384432440633026212306038839737427377717448222204152273609595068385061303935595187889862627234409426926629448337996512281923193766504364752594214568539741025034864212994637280738066506739380198041744194733304034651981109498618112008599403064190033875443633703164021210091524117816189718768493201760940172092148034556272519905054735969922064510028857799398061546894654445044037772235147262726542833317389318782970379839376351442575302044379333278657139445386215226734010853372957249309845516707477349760967508438644424032634842729460366836756691148493689691934635551594508113340068216551265018710320048875231605460253777994438842970547758399613395396737342350548823051176177870801709394307025451229734047738761856046644917936679063713170136856907170314524161341498358800160152110047123250361298562416887242722598316936853239475164920444702566257436165592912926868779093422695180469644637071998031488449326342675269961819839686295184509413716393456557213146549451692339364040102508108636860978804747693568891937424927360509180003509761602218254212793572955607819170260051692586872098418871564221833228707316107523381195954400538932537275031856376095347833835267633119440761439222877722066955029690685013108388681924398916469538997698178138709453644629012042471713779464158166689533751797903854409186529639447208029807379799429110141972009177074912497687037972549529062040489429967835403170307449603844039263588156257983833551281915088332564938794935460540771557634499931559886094013649829876148738722706049229340089528390256935032950571310314860054072347234290153238705245799730403231754490243202482221003104063553474154645917431678843680094891793009885228439479328360496106653195752584384346710870406767788102930483214828500108443166095022183934337371886417962519188477135085857965934163999806669408284293730710225175384091342367555268055920443570035400104556256883750043273502048128246460013400823844964522868905579527907748438795210488383908227840511496785841674277622538407079798234802290694691996743686188146169529226452430395208119641535527533011767753750478271062570625574790041095364709412493478552644960471710179012221061827387908337729470612697735543857498914852758980973588095210931071267006042851790484870750615169210935268604439235464260469308583665740306113582716030690035752962574117606843372678700757418000578892955656398509385168248474103578565540141068821711067805508485027387567653779854981407856810473477528972200027936705487045198002062466158936014434003895058835649426127597587435455764535839406865918131374392230546731609926507346761754680548008108914332060692907391453208630495147427767335094990181753145028326407140918795322845158775906298280733242510809350895039529005303802351012797699099376623788627579968062230321711501397151779292116348800750961935920948713185749250625168409319744396407039246529866828746830550578158867007581229441678752929503231188590889770211109151584579799179437960486764345249044226330478231587585345262370521985308678349513419496772447260685519282013664500818233218783337999962793195796425649697709052991231238109658307476159857200297129242878353338291724168589336008387597593943792863453318983887848812213774335780056951656332368258688663423321546796304114138807731945693207176261676550524373055582772366155059686259114490450264547494347768750902473082435580662997258391452537571558857528533446468284015796848675986969950376196712328592317668827608141070699122526904971555315044081066309070734115652543472534508495902162625680262923104505551606159250061047099560887852209469527775028368340850317735781214597351895985647157312174531515528037043906298769337812858216031768920674156534857362380984425485394839706393268538112389575141268283057013881730167484560257845623538335118750364212760890779434964533018644250359491579887459783791713910900807369787583581714069570091944481573871362312390446539316624282192281536488533303593796967036390814779796868708089761175977696909720257391835523235282698121849381335096705779763659677651620583798101161650008093007031048916214700274127907200118290578260985471405453953937627031068509890281436536407908090083988648341083999614395171839166932135134234963953131288520774786786776569051797757965925516072092055469116051466733744869428158754452875784825307959125662581375029775337845059741044034921073169818318221317974249498109966520507902996694755477112307254717984384089666099267173526438670363482226936385462192105186448000019858711076456149671431321671304651107407044725725712427420045775545571929520998955156178758048322627600828558849514933280314472749157757975803985024843360560226569769436718190099413756095529862854230492104060425925765569306388901328032946274570449480004355225472665940276288778902422029646335022400405426304547355921146058565884629195344009411675891478173744211034713188831039807320168474761084205384034534782094113672733202711645174593967984704826878859391043946623848632092471300905571803002400725082971076132042803613269491230533455714717375841934752515783472944409117841293905232879130519347436394337972674335169879309551925181714195422893270670993945502955752968902421345127445140781676100111195246234283081604815910240492786686625375708590769547217135057658513133303942515553647062966147743032869050648172086489456147905235740417768155240153308992433976999416132515761725833792161592327402571347994183730638560538110357763956371428678894838422711223414476371392333129162938353910977776287337053166052329970302616475667185360316498800465358524518966526981489288387166504036649453364342224557404210679382015974875234407046283277976545280255042762693077939421794494764779127458977303326784117981447151140004800963964822784925615719971309337186654133509758210211386063861201877940739585132553531326382555800018954504199996372993065729892477458290100831788261908590363686665352728344494057577865215030151934017052292949967209957589067383543013102443998051603995981562638609801885565444224369595061634772356598625949777340140376642666990276646491266788298113983071036378636565903025922124003711263587855652114410468025065747993424420283691095286716301267038428102325299269993789471097751264395207672464667831280802473108962537672765292603635184914663521844678388196005884306307913379296408548405877100482061421229843363682886919913707267729212570992997350167239828266249253805090214612596003717138770333988220689890608915084063814350536313038256306840530487876936193786624735568719449566853437095824253324336767046621088043674908147282327926229202680014879582249374253111888728353400084785514343674838109230397126603691253591700143087111195553348054825918852558848478246857575477549847520546682927986559889492621554609056140068068435976467262271885083084992918552448334102287877260333331546596182219899035370435658060197788680369246241628350098657478025618100427185235534538382319563379377339569331647477290913025917574583211873168334166440508091990113185232690072609288016606956904311604386851841392562034674944791110609341672474877479311137573146046798146222232648178666582012394609405280728757552881280221255716755416478424446168137386373277393670173582432788921881477448702416733214902060593546046356874218344898191180831593954359774906720002178456990508558272525953909966333813311325691095138193053992550064144322536220539467972646365641305237460970323981506071399825926718733412651824240583498343422923071070780258290314776271972273716639751106281646997257499734152789171305321812616021352386269744987728808069604540260516459400584140610051602327904282247777979356275032995770777825713902296458332886219208522605012098154539117883322236139793916763030716783863698838939161864722448492126152633278093105964380921840305868185997291030663014474692290658879280935498953428513812664604794585640691570818097464729768174724190553078095220224237373606230635366800405483078205248703543742739811314006248462231457522632890282198164183064335625169702860245146096476375072940989532780219189611781057623962727783594391364124619176603304560482082301747131311879807818381949530964341213956793340221312123692306357848382203515685897229765836330806528205977059797805281811568806820854641269065021489287338651445229853684091877354106437356706599312484902243885177072954261690195557964888124377997243081895296513661194126626383433793573325900771354462657748101266948665405253911672024462762684885571455184188658718648239238505965499885095744126845038058140320554788667120513184030099089278347401526713602183277046337865403360207590444367803842767821855816369144326025928339395831637046382220006560027672929935395889206462451322781397551869853250291104651085506469682403612156783398230485506833032888312250584236208895499452143009873422466536059795348396913872519571347051005762577807626671513390210971747959989439588129598948886268900138882372935322595153273584568186507425021430344413200736330392873160038177193343083006734359151004780501952092364858372227129986222349378851739259773547058360326241425004300125465897108378272048238696894049159336980438841294747816076271572992818574878494395744274046041435894531547114730516702640362973756588777761879572618950279162643678092066642548201323324555905612008567587554149356100389899999347599114927788428726126695881031825763811001658948469665633786208849228209090996022768166307841976696544049317130453210736364214316342253948303978662126442169273569363932762856179744407990433254053062876136392203040383697282862298993010617505768226596352231334253786620822617602255302054708249748743606267145648500674767475856683537644012326304529943723248284675103966173216687923291792810685285907310743649789702606807843072109900173673644249380475312501233124001835273522616594936528052479703784343473263154655295329685989928501965388861959817711940049739513239470444317509420333527910250640097041045399682744596321400755936614074093429201241952530907742146279043822339238348648160342613099108110462866500979453700399856876378258318182863172264744811476380108211078675368245801940915407813948330383357642559956254501897118044575621929410671282561737331079766961298897349175843773761638767893186805160446827116930018932880918033494536653724097376354709117733409509564286666381603556767981623624944495532701639677895087586220471603435265006507064409773778340847393613691400440265079597000859287223844283818335345952102042195743024189264133297337111363931303396375570425818035237740861494718339580064700139339294533677823341735871540239887862576039431568016539360029723536089688190456038240409442906660189132934282826808332586863959593375540497482404620929219030449770343513172569672898943083045165431134472886505177776631581224466413578910660834534454175004843886478063173218142493688961660144803553470768995094288654816361653078590193540295760225368307356776195870993493746761352578793912957166963738068915133754827465071714720290389532873840082210837113183847538639175482222012592803495133022249794338348495781843107176459504699261865265843697026720175394792689770986367210682247285298870152692809670406702207149870483908285233056760872203470617568544585643762463538771978513809042889527166506445893662525489817878761980067884659158661917820159313759232179527749431187588102776509365999745688021381734213116124083078461787833891744561562643530983995870292157091305603261641696663738183326579230815844529393883455545438064912816108607064254940924662143803317279618678838984241165714891848735449544874375765116320521439978983149224018425005278313200825009524119497894340094917364833665864726055364069227739690725719099846372107441564318592904061143814802652628959801931252469537043354331825015588168539849473804410446948932372156302358061661605734720871454965404822601743281934432995152731102397165398669218905641913552086764438443884062900956862822326302926403980385230700453917175811679324715948507142023551604207873056373743368482704191445409323524253886779325223960945930444264335996763666109149102471440585234178318224702103661770151686071774256107609179026066671195473016672583379928206159276342195453081149896353670509519056950832468425096373130544925019880944164380869057167324503968153901836862537964422300785827655203559208317640020920828125136199043128207019826066376964175873652926545302824229199937268822768788765107617159225952490117034246183688435399967290515527314252196565193895715842646619837111222659936348329817902617581292668094766583815716683636594111174661313877645173086266504181357315365222145794399325239258328555406559075989418617693404165256731704236231478003805236251008262421017460322170701872888812079131206609373038353080078773194594449868687523256383600478218125737505625345545703530993332091615862402699549602798479811688519830034930656615811053277691401752437776219025009726049494189044714254173409469174745436604645656927672488608325553816987478841218516207354411536315408422163914684208615647003035507440545301741696993848699967956229158560506820784560919280788876259584900771891193056391645706128771482006642820331667403553536138808631875659438006733290121955823380222705497055382354402114133430246253266689882701543963071635038393157362401814943299228793665043575931179237534466397867652650674581465280199091062352038128881031823456367160744768465569036296187265590009456318307764726417051088320677183408011680825172314021738083928037777950770720060192464223493998224036302931778612614126320390545268787674774101526170813766266490295670568654986193044894982203335703050455731639890401105714860705272082129268202430507373705166994706695920321656873031827967880378530310405726618901509575299491187035692056463667193016852502571003016510897201563107780635660423293671081647856791248188623155180333171386146308657604364718046529737361938539210174019006617581136249601231728789412058718547189081218278386411901509795639651048192972172392120987786450813544853918985136383918408752312001034780610332299462054228388108892152303705418512630947799151971016208082364517836877352433431586701379657111162345394499523633166528245486992593606185286990167943071881002071058441243439749140006570552830562585437564961331515504795174904743757254480524170735958325925583327004537860671067848777523532150997825987035982825145248670736879798811570615614633907495749986678989920836565346042639204757264756768217767551646179284111113461631173509567047970516109943232806228009733097021040774046425138860354298861013088481705991986507926809347086038473863558791728217517467855899320032326072588670628804976429048913885887318302602534110976261565329291556901520307976586561355933631795520414603637862208323989524487328366135517817263606606575360045590960377224116979359766220426473285242427219868949297264949303883911534826965555326399604845478017891260362844815948952620622928438114544212337111099087172920336450200180814785927710749745288203242717864751765269727266784589009600073151345359090491823597127667521869749827224282318011022618664833748360854817719329597723176529413444871436790760925027014846068353699522057354094377597678067580641731424621900154355446751739456574319073891372618443730644639464143967419248172554964336160117604349629513410105840816171579279085987339267076579253185397392908550463782082185634081884614396885271264808659168013597773311966944434893820890572946590799420976049434071781913659319582895135852798896808222214354944371158020985400858699883513861575354442759678850399154360997104845951118599112354090510749189076779888507636427363770041922691309428401441802690457391661005636218654441557086822109083970302685449748607830564064820731842144612467281878431839199924594448773979412651792939948928908245298992507940852380704803262777690982674734563870477535853038395662737488156806078560040046996285086464595111512797540130972105305081365024137759207466430282353457722187922625496487577055442178492198996688000644204726103851372128651863417901520351786759076936458518559909162892361735760251093555765624391838926527952375517633817369292256183638615319981929648011848933928634763507112090035969935671940906733945732226400512310236082000983048951125084737874192150646092338874744107598124051348282706872077273051424699838928577107326210404539240515669727962894643070140299397556511507424935429892813447868844912983240419233106800926496528314656148381624310720951018941413257627216574824883461226334686002478134405291264372858851146445870883337437116464053871577190994657688683357041724989884957504284173010627806488214913144003574361778190895988454229835475317092790322482035940180401596147294571931924070173800729144347223034283682571812670002268587546449497693083785930312387452490168598889378067914511359114689327335030882335581142316410324697458487835243878504809048063969599060468604828113352345501722072145215855248696108494838370539553157686845464406394873102715239603696650324279374680844172052049873619355222331329566070317450643941180637087971986596680554802161943129337635264250822767607583097702235037145462216496377432284958041856497920810130932821060175826771605905852096177335905285691467118536372323500833351520271592779999347686207643664223899523669168157622107305296710063205416840734782040433944258559511178934901986412563936941230227760024167928324994256881685728384654035144329341779306356212313823505720150669953181060999612530672314934927499660585948274351113935183634514305770393600060846355068126198485842901218438309652641932533182344463907260168932812411809957750711591593613476898163426794478075403090719884623936881401584967238291729766208020548849963990072660231636692648947253995693169560169741231873401510434548802248159280543098442067343981998737290749865826876890317641466125129077967933383910223009898513732125578397428642516865613488929710709867048303868475366943346449470755446615644974580551662383101352968097517143205449928063211261612482144111918095638291292471339264111836983823365930392510030476297218698486803924005245006200628897002040966892590267227825610836420059476151782466593021300179037236002430189410267093454138774927179447559752982332704257692274266852383440005311936851281808845819192212530985982968618271984492983374006902201490274831270844736215388002721029615368325972808329669977944778146412711386333154622369100560850149952062934986246025910968243073974187914152055539175279996918914146303856850837397951199934920290286831437071103137146558276498738013893153281125676073478160990105013519058450989343729687254024160734467056728409914921874120645984267871075337117216808831588692935110578705755272634959191852400546694190173428036167302020054078232721038773685192002394937563751129573382503489867619807160198860113144834526500619630488168503213754046788729787733382007663750938059637394927485155559339008340665190027239128724174363915752039786378714500851748190201654536472029315285666205472092994097804909504518052427664707742936091585110165445693557310286816270376716487029472451276245163284634382436619984257898475481421971913637888542774778788842221233591801594948147075688899497358187694038147119964949784367326045814402600766609158192204366216856861882149835192607523736122672609531728878558625192271982077528111814822727446935268294680902045250099794682786610047988159438077810048663306518055210909625648138453089541728428646137753684927769370186807951614642915983082603033998877332609684210683532446958664411140486919418517014449631842117560362087253666798757762108161392757220696959453967480811036683146329285633038132876160689874391285366144627715017532704307608991372853970527454790702412991213819536663225895584976376362300172458236012026826311349423057337530739467206408500847790978959534884810666489039545872564395197564842617471195155933469905557900995114714911087164648784521860934350972674708835938950470237790240096174116011735005491853808542206932201702511927300367714107351879099187011610912651479619767871749791322075081863288150091232743933632950212945755525661342597557330277010406390582021357520237474977939220337062789269224737799584137729683539482124741566787073091575825027102247432979765038394030028233213112628479648486905119339512506670788532892225990846477111431746146746149672671426447631925485312300578702276953811720949779721303303974141164045402798243967551666882325739137281039316156941222416699985226728907047277830491615687744524066436196747293389018036330263510601939312790633530350540045880219963609891370914392436775400336265016459528589735075830429821393076154519317150385002119290135583811578191768847614299692357958057766705944242253437251445900576724446482535575252384099054595488169762363335863408352790476965612702030926048019086431580056366895171124319759831121562957914144500110900225172838399255329781854007484135845628346058175682590506404128673040652769004536090984389783719689842725061438708122565389928135108047868956773815790683413954145199305912821952318745910523627332782098624016063443466829680904039661602754304908548002684219273637972058393455161999833924746113755332192873695330211611991565643925378788797223524575208115456480209912082125816826664688275069089215472542167454401152830774083087227659261004075718792454885621076192421820860821055494966919279888029918885024644003966414273967040709530940936074658667661014646630156438575395764588446386507487753961707632672682153133338455410658145933864931883746690109384657507102012462358604436342613080029738975205570583224417684304676017191609121493994489680474119153608906938305809957880520695596634760649149014109178238815890127342667060546948947794915794695762450657480837393865717773274180202015996824232565562343138281631192668694886623527466254176833374829971781642176209611945597078151839673025064995663681917247717197605842413227928946710850246670244142156491632776720207021736359026891296128988168791481134604906037494289327107199708196506136371570734547141073742614210736751070566647156042662215587594403728721401705217052893154649706904035211950637729645031044987135815964153185547045124567516053551797234419906538686510694290250851025346372747590115456830075635304604477839673594583628853712589738606460728562776041878055218071281407379121584447525175220177740568475423121712378900122086146904512480072526487461877786751049388672900387336295412899236217726111865199744450076888408451917556923939348310569841785810363497964646919641622969579637745024643495162037398962192941971540613810966207056456453364949841726135677469006175029974264793723635397884394856999898039061924348613454481413790526960673287861249064150786038032608611588386719554284016329418655066260904617646767211686278995915375328833996851610734779090449202977289369035162655658204921540189439546615971989164107451431921338562289072180179201234214648242697799735783943886842387347618769845967367589955075099195231288059950999268880227003916100716773669911380639811395412308242333749047707192223492699336445525927590797986522333507342116983636816405857019236222252730455997855625454835986649634916519129704138132938163924607471260791634938060634995511086482747934256256528044666006925277741358499049599635726370044661633475181878587838792813920873451113642936913528286816218738191380656053466983410746825553824931071608092648125110258607569342017017643749016899206076825881297647684633151417516979079487245956661796990987218492170721136930799611936075644393353390423678338402740970006284656802804756349259582424856111395267896069811348132705098502207181063308671029704867743321118889493416795829737801413929479041184547609840363226113630140457956679800217432490557792383602901719630619915229159130645240969646098003868386986814163394172127869620445762247270790107911899346460901574300982867470899236090577305419582949225608617427955164586216874200359884066352507133861878091253052596313418056591971664522433971844224499910467442052574709561037203159488570355334967446408583623374985368049782375174308347215192141696551664393861367706974642130742226500634261068401093427314170931318594425686314898930020934178184193828587195546832558740778557644003685920358989487615178481819123818200242881078724975242629452463641910871588204898631328088234559554274421334588795645742401203225975668634786233929431099985553185090075197633621280933115504148926450971372995301153724327183366972350205989860708043249841459739497705354526901575825649945108831211133089092503109493171590981389017301851691094478904396307896388999194344149990755368368120234185437816137127668337243770051286089238435926408589975340351414987345400683748749065710321112767204062650716252925856385567992779277760373575882134577498562069235615836317831416038876578317960540230410179264641722819258442017032938939309750708555072151543352611277302240000869704586912641578454440843674993474159965763368111337494175858932955481963338702741147537848524348058704088488993048359479939802002540934484902460632033900786984624473670502935420311561504579439528826793219079888165970353511932295595036759246890476419544374188317396622847257093454292980248046769615367707111779192314388913793216099495777140489325228061807684101811820735671051509408723155598852832222845720460302113117541431858314526299676098608743854660513729782950252093821841033050173475341848753034849026370844945649414060802798443511305772454600269372676892878950972753672425270834819147000057509732520912836008033996258479323748865604315513606098666280469299987966785450972993727167068781504225623719891725943857590335256235176487489513454337856329892693331888083701260436742043377234490329436533759298268241235824775883330848820399239805091446689281468164723687228482294399127543104700110150004643354001976177766873351380276684485669891295840941013755033506270407808980001730342908585648548601332299208634945362372234018438580066260142127813045907982539663090772664583132672126792001010484250875038162569335262753699485387547614958088571242636559419538027381970771183383576839143360094205981326868134064602145242498820096934920392399805794824052173629132581638819557165100104266633178453545214733927156282926676608897253793094774431023914436993230722951560263077804426906025528451789556436404958586664641956032390413515554444545455084065288990433480052651126560761652619871148820071322149993870271625923922063121012290194865285562479488190783484372355639942207991060227400884175682187083431291695042363403230396569073655782179359851664958001694357751557689100089657320878798952641467086072109856753371057635812321504503682772563508565096708337984982020295659153676812410039772817121767164242449728810383173203149449084069514325650092975932144651419382495997378164930584176587955013010212143633325743910420846024271327899135047620791048369738150392998667723682625676724827814399727915794525529249889114719921293332475854274105614282499190208283317103281739957941128202816519306615319709023252606844776690413534988125673916905220165076354340136056965513102190986815770912264228196282651274737203555159467631338262878127778521386188708141894201908684693980832236196410950656173481218649454690591074476501088123038844599366890492195586466943260352193985704187740718105372788451973682966994461946777439523614108866129275655127959758419820002627289376622857946472045213236936139578727824015744643663333618580486934302006464288539270768492392187688701271117522442256403473314686757042174879234574745128670594688024230510115298634270072633786238907911555128917790563012208782644299599673889841147654807268767712628778116237488433000087546297597483313316713705809355103553350127145181426114252564109094228637081296044432874589411824312334997484192125188483939482715874772310205882186942791505207804447279285846814809337609360288205532747701621163115114346970757119145792136927531356187195311240112006652068325403643188578481928108975920778775149324062598299868471531653743827324571816774114817292758543233456755158038785213383532649775594157572519640615577846718817608452367265799842341825691661699541548346574660426631689893722380324441528483541086763436310483761033811511393601034312036103488473607362971211830611616761267116982224338378959736029523231077665314730503591531381626034668102387578005747194269143357575317771922885241521940821706101491273669856310986196005021598767218689862868207112795495677313540460074022544270366387153523262627795385649192133275448536650333674021995496411853330641644251129991662905804623815118477157801551256835291126428841716036380048217436747809353185073286042698255742518526708297610388130932531738603584284339521150277931550984980681944382819480418500917327195519877662181958010160655639661811366898919048532052854860451125846991736994057170051748745110420643273057962313304804669177500547086500845444984298658347997625896076992297116779619153497591294051657125416739130770370749325210137049043793566978617362126806924535029573581240786822321531185353309509058392817374436654335559745293051192354570882055016680493032122744732591584945379908108811854964098389886592685290126754850675592210725326409634660407068202195012721019695247824470211766783800430134886076123852000796439910713920857873925995641127334097699626054663370217442383080763119744238695442393803237857899927569213842058688788580454164965370730957874234542993432954860596743598791797255263733402017770762327475219798934301540581932119416582165880805717806875431163127500233803722905697488697490372077688610682983885732745278964939388168561934244452979259206175103131164529904388317321875300729984116822551952833047497501422664830115973345865451877484686674484654459484989540906496110701458360200671474056269110099674206723367890232545888014737277710825745136093690639571788707528650481486718951153944592719345594331625187110926919163827800715597713037141772156811661420657307517808830852560279577587995544494201096353009412173605488188473812229568961774591440571777770655892129467127973513207611603883699740683020921908237066234226503991133746399379490178219758160561183515895607820754225547375110597393993393117241393757089973418891428831439429911274005546104456017143910707348777836102160174287861532573206134115166828102525653849752497433875609352833586594384898664270367082971089451581022939466429596962510093540631715991781066075582156332430762652508537492969548543319235613633634543156410527639028418822999863615287578198498912266353283047766922001990168862185273620178040989117462890155125953691858154935062924741699026539831686877105666169186801370576873699293578472364435435104979506826915278395241305060880674575600580305669647911566089117711759093907240064933516656378177765951358640346567300242317796008927485411891864617308369755579922849053926227288761409254002623798124988116892909299179476676929682073682575325620873372758836079092481806036239569217649163227191617793303844787733668970483310210715117759951688201166200219039688158722763067534465458318619107385128523439940500380289894373662721223649508739643742567743513141848709162790673017131557413091938057976672553540778362632386665838661205175535836704857146971928323111153140943747461610831720060143075848721872151193286796903627729260350387744240006534389077679639858689405278530583465499414881879788828243581603139170044312284930273480439172011461722504635153972063274984444678655376542798940586545054757051002941473726589882291080124125998683558760035865973033852221537317372346386785240251927081391814697996739575574605402544979006309592317271773950235923904399652277816663617199347275260465135264122516356440616018121444023800231910198662552071469771534005366646932241618090969567990010660799406764949103114444481003447511015097853517045070503116250937431453008527631945708897728307617232351972245796902245041379618214262871749815748087597473250733354259938994020242688670403145430453998731568175247733394795092831624716599742959033217028252732902860347676288830234033630055709193154872569077722470275763328826228942203043936135581727488051711820166657066244013856274629489268557510969551945401258790861146923341723094183105292328996865018758927336028514306151183185195584394094519034802038325802277900772770717773182321728378873143120270268534797754713628950694245094096307729477784446966999638674561575358435794935612044343744264171506645811487745465570444964222107811196872003215702636566139809340582431524757771630472506386473359348876089226174158879834284952883879605557849939768793690837352614226291633178049340897117796731221477687145810559049366322729455368010772139376922284786879171522685046216352185187601100225451145539681462186839339480069985801533233337242771319738941079095572761776477993632866388160745021885792980727658388691872726169510561570723480732792126518466606480153043004099639761883231344883529539831500530325728131706763067401614453242380235292138705730009798912075612156240692792913238160721795123307192641269778355488960656353196641305754725561974168154349360908373427190011866552214665566580784113852006512403598773821474069335834720128774576615826788965276692303673705855392514100848710555609675289918967215411196128354542790105372091931356298446375762805307350323714665032832500201069020668876295669605279264639729829661746564786227168703283881864166546326560585583761006211030922903931927560070164460948921026839843198298153701189956837256542071108440492396428527150700432486765695750376500312535061950319333920498537084636273890326175557583029881034501534271114971296299479405385130473261533243672435987628519433443767473948876115295290117833723573897270214590241332198000283925150041977577009103114328122203821715450226374168596231808695598751101905959842374844427324907627372034110891787612937285709699114191068311121092494840800902224659823126471652984052108946406328669895106232598724622535901594093290004725299734959387247813413769266128397259214342188244302737157753677544320976830202728922599227849801493224086197768754864785140250152188715664651476816737102342368071318896947611003997168246077405632761710020426624781850790244318742551416364942269683742009966140565222641640651236533798194468428779314022384835233030233833233778183026098738316399534600722483169965638965120563696235443612725381756206523838572357093079153588795976644693167273926810603008965018498756748196367201287680765504150915954770032727139505747653039398913433424215098220473012841211281098914205573459875382883063329838180594659117053334579026348214533045814624219902412503445316482845309598969726754443257441084707050463721073746559960702549245398580178587444693671404752947855447023061000845691834923479181176553078823243535676237906097580209040189581073983028809540667918531054656314590113010710853903268988440815485779627505152271074865715319528169233656098239412614625483876023807798409574666521510841343527147607232767654350903932827611907193434386884861352916000212173941867852648334781936158300058021085837585818146738399616336144944982911175251200412965541028902182160324916894630965969520165741780724928802027066372483814979638429827568930287681135989701070267264398036593756663640624395068246650784129558337446278389739493930020091586438852398780812648109301800646994504007086347995134476934676583549168616965079268124757801811456857465391926321111737872760198331834935849239513559557410066126110086360809736249684115022100657861462904916244792026240746725434396242480705460367923331305326561621595516538202063094737199932375579290854959220865472473115456970862040094163664099329568659692505696902059149789269607957541593069622743505976069638556402918159809963066761281948246431233294452503833008352569672081333717129330831596966372727380920293861358153605640227016134122393284038500504352089134166310132575704939352765122183669535502370025982150686987557242354933030615639041578924639196728709786354667431106115824848773509971596733202323734688508681159186086856832084368953357751443873031810581423744261079051528864004096722628240797576063004636899327175347203977880253921879037541633969475400158316724656800578514233901278484118022513474743832003900541026568595956605707356370906347861849861952281239165556884316883906049607312808452964436288861126614899964462621731990103736485597171934771082723896043785140385451601273831486502377956015672614711063771581035373700557737134615371990200852588454179832441080736703825504451050139416744136192020518186672836770789102606928719536095185151315108880670116484579484950845414624259034207928385442063123712786379927053113439098607967488837499943615008741066155440009200705058185639700169258545026943718668494454057800112233029452690839802708556133414268272570300923043789501368028570704299306787440934720412554863999610453797389179544072497851148021953708341565696189367179604931922057402767806977943905624027943449271705026135962956437645435602204750261368271288756510096363537888573004893257983998535621080412124503033392784551926205417892416801889402266035288453534348166175373813823068445963054319560787744993086180631409212861275640733576583552384035298113977428951608583817761844114298705578275946980870892441256395869490251727481360341530976980734674496747363969691658519327443150932921430648033862578657430771524273129502069569734110794850621652032617162105060546312895120148068584853315857957769585445542697737742321123537821609396256033187976036040108945666547674632371671287200928190467114133688086130179572959185014785791454795403911218152200469028645242786438019179258227757687044668812496235057625933305596534529952071023234601988220149919522447051864676657395011607854159208200496340292354619949888017031396687419007302355478977410040154265891500612767712572983901231524525896881713215199158583353204870244111494726621697598681842869483646955239605402099076737206389403079748206256885734042877223111460664077776813423128716019849373698638644052814031825207044917946219787252223527021288710353768539797744578995095577908088846027771105398106191158398578891426879629406515043522623959156144822203760909010890606864786605832844061813237333084292854695545393407233373657544502847522896752212033711482866930591676938980909546258955272939331069188340283818973339280037507025448024361868031441931057736020530585799474473427931510937426379015237588272531925286343929089233930299518314810394441288274627553705927329357980262571466136898967070694448467019446715923617108960493395616164106725289254591312079882479649282818135295586065822268276333006830205266611212174685792594231401098691208864742379661130196948910537607239601204406561693185885255333217262795243087474494512258469206633981613074337547912718020747623321856915082963545803164136236715390620774654289571617347012247103702858657705845999477094480143402529639432551525221844976336447109454204338495297319511992161883055182076592968286996987001284003193474412350704611308815372349237453565678791999551946486750638235006506433068141134332547015283353820092662216558843473197630516428690219964452518408334848618387115200002921388242093765074923422312223003864111573819261569817953312098891750741222786287009177736453493998868798466603689099851113485981587302931144604773887387177082031945542601263455044860712860287643687628551542071093171841972709145448499076963868299081723070169530293971540550497987690521594925582402954315769981552680092016137224715097839628129207443543861501918427486836342577402122943784743451942803263104537347097245364705893662390380688318498205378268976869123571218044477312336176160416678537225683663954175482507349686452852948840593427550793039603061730676290496686338254479601941372116810058502175701357078910867473943801724749891979254084427154740478936098199597302289700883704515226705686230086023044882920173986324038179922991243684469642830954876778123920020922580459338443436265570756870991141744763587982914704772190049609616992721546800028404749378421896277190170195240214535628912706902654845467525758084344463391034488050578130529727397702941163759945652519097076309632527661537731207631258459016990872556373236535877641464184571018647998503093768863409769475519754380388803718536863695368037768259590366955676243995558223195688430062080716258274053024390527508143072659546798829187921815152041005291416524667652218961357714492203031080236221372952567200988026777862918487012584810216480766587907144768816530896209642450674709623128849623959379131517933169388585265297421755334107718381853268169032842997455264150180476466862441933614608165636003523363005590239374343682861785371676954675676662902461282417471699150701540747767753175102245313815459352373271791437365303203996994258642392135302621604253640165055564605487848025930285167089650797240973999562863533324057799213240776144647390258598033118854508474113821570488370904316260284813036229988779410350966391424259344147690493765510747273890415761632547159279568951075405983154595023093630572681228993142573100110972163963327762773168380205621029547109579306527450454470577439102679980702577412014002921425120163459449044025026353850141107613242076891119309852795401283335048235330652160910880507189932693374970099357977807923149199366890664915632405018135208188232527601767145140456727506935841716079463525331095756624241984129984541618106002912621003333573795847654259769182465611951159897005883765610587458892158786744263924802863315994862128397263635630505831096993651906952471465460806304678538904670559387112846583923539607869972440336840647085990560808137070411026466028134615985079211343553821302456776548949609269317095494604542644075825000891432590125096478526228955709131075915724995637246957268450120146788794352090880516357689935418125298937077879210152728017741764376619430321400793478443325822598467710020918718108614334153989403127287539935159647292495284590649224142898185749137353382142881664050906040788845955702512638812327799959792928740335154386867362983561238344319187005817788475597406800498202592630582119223706374308095767087168766268715952230276293330675023618873178399683210408235682559739909400178567631110567904608192226279074271121755740046883419558108077977875718297962735989499146016961949465830964986745726665134446034732826393424312376525385149492338873137989072885261817447645991421340077841593349452873620253071246109864954156840941717867301726531108515479683978959406722226269962556580660430983652147338370417035226156388298056055613463334173587836329904671167693232463891660898709315553002393200402729133854818360151470184212109907071461360040743310390359881684261566641470957649529107020659749938776398447367434111720313462562934128565824091711778681663114079445979493470204361555483063242936081832317687905590672894594295113721632462269380846480858941318323898150214926108505393407013685062952371566136673052357258243748890089522236132752005010793257435622443089021193567238645368251724715713460258692313727275026117320267915138991141389904470234246637567303870536831426309203725622570480214871530622671519554937442405070681772986366378433346706154222044099702006898769201427358544187474868859178425486658451770659070732337600054319271752969149959058588196883816424622202151828226936434335341366267821735862954757344794958429927644142835905678658750758363900120184328906301476916737208479295909504982007516601265653815887610290328619382640808212533428122764679713940315979429925814576646942988121140951680513957107541456500683552613058160855340202738766823023392038325728435908934765426223460316991855299485276735562599212405878999752448349846815539943040751259930175544466242232490368746411984824888442030562487506138117647835871777322126551527225651033659628317301888448356352339535171030764452801582113157705007632418648634721022092188943366091772672718545489146128107234804496954036891327520066903293766179054722195179187090844655439168238614819588582012543849050970656996839312485944478173683145491155583300780485573356166827010230361873730454176752932464127636696238495217845429224583143756203408754231248668978525953496972387006008380209188712038832223689004297736560851801021206767590191137887756621968035065801807018393459506807426129029486582789095955667232569860338907612532531928484053024450846473173465243101926146204637775450302620908903346091128143041969010600728718321799054367024884972378669040379501871263972752222378718989277594963612181315587318709363457554892253366317387405889967185303695202023950927959331691996446226774518521894774423195905635539455357073381885874039376283560959007817409147979682885875822609374911178890125245287726469884014060558211147511509209370545566882728754683476140878866642341184505259636568458144990245914028040993745157715665975834592929339376560286699878883841525359278296230508096214278439304815076255515056586365503018093058199609204303514640703802574840776106630441272254046536827917390954422692580079748571391390160820320842453626264914664190127059727059445823320709827304628779728013116035907726267749002214089191665847875863875241548470710247042493035737504771683442681661514717183418316515841239208860654243846248758251316536277325636921255906392775965139678831443469391179477460925139235128437652798270627613365979599115029494050948082855072593647361515040792673354239311483180031009938274859805877317701577380093207927895426740786143760485341891487840823273463969920817736949166042401537003923361710913301160632307139471264533093722345396826275295436199837980778466334045883990602126667691645037956744233894888217790730024910207198184616401377480295166362908204910727219991987352781035072939646232617687441256767733310219479505379116403194322077959907330388300388746812738924913245620404626203465775211417630244616452358303810241468379630206927190948608051252397945080431986138519826753713983491731601022835198207877610907782384375850591061995940957579161287710138249443307525259207337288722614279938565496123803510876585864149437363414134052981187788407927132881676965644208565924711884012892093326533016483167181443109619320894585194800452399577922111971791628925866391323692331467007372609008971526252351330985544333732036370126726017427042021063349702157383345766894584802567179793403876988154068712861162993462360785385147913090014774068755996863268777766038678468360832432748477509521061938773240618300702622649316719110388822101512585411449691128522656450011196923985826511056356343201307637677226412861274803141714611789813391658442920774102381950016013601255458869993936912903902159560949144966340354267798136210564040250531781305716156844251015492287480849541078289759549427921481038210913905289270816207645515002610473059849556442987371076190203116289046854856598727141185393606520042506615193939146788444580387724364278930471607817257767345848001369386481694540049057160927871071399564754508836390283519123930842950322672464867691977915021748015507523785723110069350861199628680176483705596404996887951272435387216820239080474308734324566019705183249591446940839179681632297443101139043691548370839739491894383506739521503751519408149957237933625646268420190207677568162648850927628639727813079122843505789200471788945572476378423230087681100278174822184901481878979048134788816945725880551117131625936595462805405107571505448096169386953441927689484784359935401331759260391565526325925993307627434953673252930206644677326401856912319789603524769787126436458729093783033471485182163570181330385559350794498499324348982232695830716636691803497010990292797776385490210212509548967283818013926676217172933209827293660300493784938670567273657937524106956561482274812192186101643584382680138427693406071339970168759094272106369832185217583404008716428452582657493248924718544836624608048793143249310520535487082035997422675979809390510176480040955841393355551557967593244412060430129467452996755113449715204703056265667722372063837598040933520211645220211328140136018472420735637087814153932404761521732255697871772697943491565251797353254735859234020513886695832342810153207143422891920549762427532622565743200127180709436892655835189082894397476329510303369352707895040501380018925271886454088568861463979141677276047194242821594358040388232403325370336557243381982769035009885061182344807501158369489733173654381641150652225390681990361937565465804775442436206072945527451295851648225632783521316717052728812427801418473969625138248141153326592308044234368978818444766193347760700155769711674655580409540050208815012207654576918855351243817687525160265072883671861017814418485984230399770075654080489047753995257507173034019501716314766404118340990679466305121504379040201478875386601959726608769535804105083648667868649888211937597749647878887039963367628535801235766990378733348734862443433225905207546924052450284827257217704087926049897740635128440252562289708106881592073487275617303705130758204210127093571032854517806971004874934978712248593616284697214258131687163053951325581742094922628382602696199976768085099194440858365009247667905904805683476716235132159386059264643001440921257840269736442466548977358108469065504821246786653336558595298304047693683628762994028226970400282708481385256170229051915643002864196257075740965243019693697102442549722397086084047806519092586442612078306905372518899113603831931877708795372047504957272156878469186814903642513501693868232742113032218766533640378983730580972193499234141922027950384216999705122762601284028119950139015013427726400261520818630498803153763124179356184537432120271617813506629462611903040619012886648436340173465367587582405938141430739548056968363788955578047567325127740227296279960145725502093494956407408574979501587755041134055960574594811358665124466667316348008454745683923684976004851953675824570565507013977036632780263850087840493249500605245913160914632572038102488135202709635841858485724173044870278123093426386810404979356471693796712669567823186193066624092878883103791037197948290795397585993344575984253677300437195550006270627633218015399323473036061637820245117246050318508676117559783293915914836275772071200168611839688939498279928675398738898889224877631748487790653300146310098007489882600863631022270768708234858796046672162063420815050283616184879465162658356620785540032520441505478003172696130727452482583851608957862081531940430467431236134406903700186570427936393285958482267590300400992857305547148780736476842351854097957289727327937686226897557857107203554745790587637245043378992979642494067823011548255879492166749328382718911984819030216556893135983772731918055679717095422247898952383184965922333881767428464194318853207931117595701417227450728593024475326699053241534175825489062858421845743520927562475968709297872275904384037160909595632472685188660324256939485905745667659147481041923346634282193887617839283678596970704059046088322136801517525475614254265298423095211408264068724960512620528646067345635331421370087867146213270279872510295287145358214034488290011583989374257372586446678225016263142681079606779645607591122155773059672534936977639913074085671917274573651249981072206003285651521844561622934393677253530865924764152479995065824214540332337196673391196641644713474642212503469745627995575889292237050975615719686068336965315392628737850655295801802164084959831253667896155166230169959909150688693275465914461012990674380578259184354699573979145595054594582177643190573366334043714411091633799912788941685852042526303020938071685575854141137996650484837572865885383761393754389427342253874389799084704969025363442670544476954751817038228060692607502427397354716481558116575380853851005154447120592644515659672504775863999731238770620704622251356331976505794321801871643126639987911647550628660524785265868288960178511728073374833536440305662894756700020178500198889914959887152078874050670316499880753654653169629085458399804092103125922218367440281183985885846738879586039865888605340169115780087637638806647613995220966102630930490823748098361285546018951450498150469467601352584837406199124351552739656136596738311457923003514874149182626827569279905594349613433567534406658397800106793405483516188731668996085385282699886619158988388651305188042649952983421766745415347366487460192210933480336417254791442892035090478668270744132171882892719677530128902528942586217524491437191589109863538910434509110000705845166378839111122950096847118781479776825748710036891936811533126983299134061511952017559608910631068237403508917825211672643089557888188666962382667161467946805407106115758139258503456782335893049321871451251225494795919104044195060874534782626656173771771030608303211772740958598859283550207613420429159958506964161118754798475472525973430380038908680501707493847463716061918359808549780458875567012610566676751091840480746992840378532911603385375713319049942140109527530322749571634506389927523635733624734159694090260883967442023559515888686446547871717325662587360952144199652518534230632369034928781233376974101756626138434954605169939836343751156025062489400049670727944333080662024606996222866678107720392063154579503227605398276147775626105401712836637667032504189323867480070558298357948379341764979234017739986323696555831149993156245031983795666807232818591294470397949897348598484900034262737367992032112100243630210070890964809724059087212597647394228279557658761723727288799073502044502295746874456522370070207820035101439056348786703275103242761170744130429116302141364866106457254407778256653332293786214788503936610955943706631344870742762218691985286429960465011369853480416845888668247821967356806674202069331978842486711029993380037970642179985394152042127258413979907587680967536846028942924097836161644607909714667766788131401593944665647748596008735127829777806947642941044304475613488601693787434769115368438158739908770608727036726297724120031808341327028149363033834755421415810189324453969487447907947374885995370463544800062335780950955190637112230292565595994908341728215765834834316435802139363932710066692141877029542003459312135743031688212028424350497927114146822338427688830262245320872863190489228496241187153198707895564006285497676934306374505014526558924921003796447009500131096528285682786926378647269699226589667138319550061257093123910542845164676356191628406945694113980420699099650137817588508753027284272852403620793577230969203363031517025152640867191043987993832591171895899761751608885196040248807262266407414693080323035042926471628411086570634433614255045219965178729092628914193273272802304553991270923249961613172254704389513996895047887732470086738588836654006150544384266036028383881415502119411602847192052031509359990905398960236369907070373619670744587285212636736307720668489065623032267909098799617444529748955107134747086913834102525993609174982236106355466614869608796617551424221684010744733214408296352513890022571842130555894096751550664561772185932840036605397440528603663014296756922107748233334988623035297038691095002545609487860870084944339633998831370976603754816652578445763739344907744904646109973768226778538602444799675395838139098017909957341386879523431126376113861070732754331591724740159917953866596583540122502772198147253982103875436451660108013060554187310425639169430937536826842893091811173123575606570645843409371333149443628854750858421694131493417504876119093959643346344542178451012058771651444382082856696205878093156606510849141030862000067887776255064662356268364436676551315489628193090249447571135394366087087873741228472905828490036820170154896828363963248792147888292899874777302552230856183594031999052129617619842371984036577015249161672012059285085562073595351040078187811651201066715208171874345558217921345592424532353597505264752215878109545613653765789619401684342370712196471535959583167882589915343555816972538129015445481114798807958581566583415352494649819354268688715433758550457557948150126022383377748196357271609667799695043345192214877534852504162106655479382614160682301242405231081244975204749495567177021072486685983025920187128310714316901037155075419187084047434541614221591614385597282144254212771661868800892091931077223257920705916146978023319581411576607829321475991349573887036672685121072239475903189450175220840645403665920293471658761009826609796887452487875272343846538227638940511938253754087986052153781012388844531815787194177804325006926110936915981998325844300832438893078572360728593643822996596167425396450112964532380116553078669672511552060400095780360216026060897111749648348062001336736572888789477379836938130666808528677999745560260712627511424772929388426165830719421068310684168116102478598905786696146232152349908172821384733186491112046248456523736426185345743595025927715202982282466064169395910561422972795339334636653627415266201864070446560212946939644634971002217094744996139663502403947483664002574130572483364722631975928006941189577549275336567394126690482379656821549703310402428632975350718911315951554092253219253539183329097660158259810293067154158616492148948743979264137818442879391726124454852814524046409145646805090874139234465593624614494679310157031777924639592351860506076937410590570596249906421775232731821780407375067709488493617460774878938020304193612673227991860519335983035359181335456980280946412651216856413455790721199924295173256307611391777531105606145247742556076287510657656808122704218353932998123158118703166284528214040327723871982781842783433185816293175794275456387689519068942953631761532716393489816727318999109207125766896630566934831911890862491870724195553853641940514926100033402647362245514904718552263537449341248620224424802403724045503285033277491178710942692158584154992855325513777008549300185007451961919614651332565637318334436028782487571824953869640936081808179914328719067533964792833814349681763308470269585445419392312847201706434743636306721196198227045790113796823309091452143333281560003756888235186586952575168067769951302083903620351418830536069398425130657242868211327637146874425255203014012541520603775159873831383990339029914224692838980801805937166459512184076652498744905357128395927224109366495768298742953532943122711428852133260769005103446557122292165392459465232238505884083343959684740290706888136167343634105802754515368077416010018613446659312737407740800483188850831670958102096370897300449588558327725644386810129021291891086793788237699888776919408149231186840592244682037418553194485222275292217810480636629331464704962849740769618876951046866943095664827334178771728209258534523992217223887906476375875590234694890391288810149776474311014706998181632105352770641394226137101635322079764938032211363255039358467058778165131139063225897979155007470055092703435322230856855187909990987463776753092043438012038849998129685616003662581809225852791176484406147173203588996653000120763950565814862118055385736941480076373257333500468515351643311734941499007661285829520886843833977289039915422538483753591126310021287716415084654327734569347953527178661341595665916491239601206481315677140434506640022072794201345304680747862556272897112505295475232327372309066986844140875124924152067224946345407642293280177681409301289711252192814271720330846358030029971241592466436785044632796363191440797562567824010339533309539775536842065628281341497272882454780233996175952609248340510498076037502323926199318727322499980540268453923235090274261213884256351374064728249702954304898021989283990581924195810017873201902656972760228355713236482788956950790453357532312919804225094853536107440336463646762208505262536080691920595533706075375860804669116161802806307517273614927028832193621914207961345496842486063095122027895268616206441585889393388876333193496269082400723342844592519040562845376610925167795457619406480958405750493891586452532571967624880426069239460781972152163199874247389936737798234637334353799555524858092841335095216654272329586335912783163134242527429185373672780337467440663960277238863564094251764568272453931903421018018269494670545197968173132173922595135770156682570637969984175226051792985564763956911036024172746162951665642583849788871731455875196065755233290371579030790120282135134473017578879316796676534814483020979426326553890810524235598419291508007755880778752357920817218285553232646839786098518557872649201344591948464347175993001146695863090951663142367736196602457759922826554287322622946613935069680678580680905356798345944752991857651234212558618692620333444157013181396240140679271102967637020440823084059286994342363942074532564073619828456994911221549060323410678418218772740287982632759296828979585697175136011259569862797189467378008032290507965614765179306988986278316631903601129729248781955586851261459185039374885960774956641560558894891483132045208981184074938172190649663288110556507396691455675802162932393292885579491635993326570196609229105586569352705032800303894610114823977792146954042292436491954554055194145135006395588681906950290392435450245658466085718897803547685070432600282798462248013000663734144249206932656387035045646450503802466686649642771257039370102246970202727308340438357840014739724062313088194573137322117783771525048993849249260176984134875528613704341218882902021356602321080755324227016244323048289714304118995097627918069709524396090512563202973729103383060905982139884453041716750712814750262296148576982570202318666875658189929141928023331462245111064646217729543391022486804045788905568111606324866332236858304389078672109741702200311231629435182617808527131067709513649108550544665364885789043516791709006924105617420735089320417882089037113218236766270582490646324603165011688168486620674480491978918786617927144408584094606353131420912944892730267589242578320466166540407425817587053001433386564079163948221268860075649048501533946206500091284322350125596467709652976734835548623634208756899676514435812005916907482669092493824075654105560315062652428395012835677080314662541436352454799568622647838120546198599604662150945083701267929667595204858428999835100013768069620804846333890612403098443409644160831319564300805662429784790741524100163888910479495033887488830126157115134850290582310978406077103166720331910967288246777702828475626068524604956585833724843519558193055525935887765807881283272186700747307230385436949010661520289530344680909732337064872177945050566584780641463067968078371423908184694283326318811898836755175665545355169502309462751212990286225756793368582543435602600550971588051199186783539216617712137354426741796690322211398821219831545206708813034192674875426297956372166489049862218491754319440152450138373836364117201518941344381888518457361054378978772392449223010321294908209630123022544130013737407028981651229039761969087687952689477535048523523771669535335725487588551531181515936717882160063739584668820691538501011960091456176932205336316731987543441896108453206048417422765645679377204231824369694930019568205336801664738575270108163404397635977049817560681932702197887190934990721951978002808267245625181975030650059782774216522458069690163919728643277540850117888764822224468884634784375259387910418474793093932630299897132700535648371124116386157698837730226190660882826557732138890061658067372139710486931380055162187148356706407952446809307429330866824992058815753783795371009152393335404422487078873027413627817473993418222089129517886774548734820340529805151248787817014017779050761963254327624965751381981159301305991858863340921158426023120949191489383675866555956524859611422868274424561185802463042683914097687124914190246722529310607076509764772863313208887918458944173850576934280057658462053059074807989947270723960910754908638087470682729301529648773204379279023852359278967223205138837027323476821255379968337422329098855107672121035635658590868847834590410580858113065711932769101246342764407447781586823248454745550541362918902180815350805933877689589678358642220609631055883260483678913999216382790915568689289394785343120545245055399239750212732428338879612793644264998424213701524888629936504317204092800231123082062214263080502728234813125379324217697727128871566647872324661670927726617824359316011712702902366133853946438862769336660363318403846284317086479365450125780187584353606720798944497085017142106405829022123562382972104256352954219367892478963703950344767748549097748251405976173885871771997165233564463015833341586905015540249490983306643231012134955654747784680799225393435460268352218105233420061457980149950612425655445897911052578741063783295960658431807858074565652125916342288327696459950923369598284498545368223258720046557848243905974056748279320193485183647285030901296435630530453745593946074231424444776570094746413933274548474523159215270856146047922992529420372510310964781872339517697523767983840034091727581662432989195276176187146549721749199398166026883697093278303520550154608450823753714308770466305500516879189132755348866466858880356613759168550426978887418874185500598698194792895260450326537327368856390944958767708402834535612707221474838113982723876970313034094733835476496590065892084887439997851293021451354307734738955980426150266885439133776003758420971523610992289733312441837608180704047500145360326086802091358834777166260823811748335287549793244309516530401642396112322081848407753672742934578418811034377171274712759266807261299976318533976547986261155488866407583409824525850144674352509963557072574847563220499857769457774327419813672970465326432739997566778356549967517163020207649121006653219101095819945296025647975827398396827432259337064746273288782335060910594617246469751333974691403319182929316514519964238211717924272787905402266859072742650581967310241191335269738046573025702581096409616332475371482284771423626713819732943831836102172452601845580170471585623904770601518594036601317467363293207127597644858040663079971867600479477493072313339332387142936609211776200858952368759163696426654753158093809747459528179929697622769979899233502058915305166389808526454387334433317749014091139318326002616042295047821239469598809780051179383138526861958131557284086751034505636327473743316910904920084253893248602009673085784670294288767403024884980899072190409181056183853217703869946161295942972382464593970667798380813108889896708989137942187319351256896809293190351790419780627074897331618549458596711992290560360422631585425028777356932621422380551253325793641820488609773775193130023593816044813260300331015085138095454363991128105397573583606001838498285354008940273146966694562388919391791675547678940448113797433654862829116759624591378958536456954353548992037464388522390031221354306517048214536972407318944760104495813519071711560121684248671894351587336545894645233244018296320025642736246862395448339287795916373063290044082606185497709167304299155656675753274819133955169317154261672113719019896471084144704407626637061855470370321368725081394192769517341391961547771845193398065870135317404301265510633728298798135191738067423779645034789622295619885906279277668043575771179553199974162110031442781689691083242288506228896717880758790441745217211068690850649866908419519119115682980364551122401335957824187402891150658455926144544944590466764404734033432673841964903695711298235936259358774564770428278349005190253785340954316794784152121158196326647362996821632402127680298091495502245044899177376566427463154045148069298923939764559738207826746632840489066717233459837241535308121898348636752492949651671983886698130824023436002614094799868138125397190972936855508296949147914880933867141388431813154899519231957248340136687562845117414102905736891229667889568600306314131331639114474464509130220957307381819415624217406544956567149268641554619647425657983804098990629686152352971889562491357849928506849481259154699832709008391113693822126011419397702975644028195096235089194333747556748367202189573147715456207287441129359483602472010089710952742219366948491300918218840976657652127016415570833002454139428568427528377989561524410971440952951002974398470347414888978883413133214423247834160858200034553178439955313883499085961270418953911518444578827272198226341750946139217666044192913844812063130107702658581706838138310931405348292490494400893981817106238303372579679917842259778558549078197732784075221760934942568907561080468335752988937003218338490835163264758571518569520454228129252887941688138962409854643920651712074010118298276004634726181859474423642643938142681490929935435372704620440565161874410178085658973534935635164907762952063257826762076785655595689427405921993475090109322558187213469481935462925527936005728902406017590713299067805359257133320536128524047033500356625591043345697971540014782305805476647665807712760419188010970031326906705451029296409908229817719318475085693043086939099175420143652607516972249572273185035235640975877304500661461753853833520628973202981997310849656742871522999623290771554437326430509535562346151583709043578629116480565382434153175591122711925297380695260722665549248641343019057485407586769283295357493558410074719968743629026145933787472366826633970275650300986086201830977261317487686732313067475470804700968355547564779606939483544104663880297859259559845206443937889329693744407422956487534508683718996579922711734243490076170380162899663716489372526532916119713695824269262109724845802199860397690558045465670254697194466998082743290085585803857452776114783254580055028431525292527383724791473722314003895399979772673298464822701701954858111801664749577589192013324421997426435211610625080114658215801545785545104359474904113522562036680242130150135310489573334243143525270578773166282340816153742073833521086470048235794620434351849743205401315634347995801354650116309856203193762624664222360937564458556318099877140062796572566310014505020109347959158444612394662713638779663781435799647062793264065100708371367301060674648351583451320258022669532310372573882859147094190598033829336953798055061631456665357815560050807826053785976797529052904889313288404436223434997605205895832271722666083377610410439312083311991861478594342912555544323238405608117749467545203251692626584057372232989487840114429651084078941416271064130763150050538055621104761778465553369318587835834036916646841086591547671534430957599074171435654777220950742158315416397319034295175201017859260298935663183200407560774930272840454068116974160007222512671527889172792205468733628627310417403878787829548436347455890481200826218456972419888713722049980539520068255517329645266329113961708549524479060011699113051835977822120937010729892205796616613453904209184344555949648563206520065552916572372672078474604328634628156280835571878825325545890492824872590615803914636608492131360969605005113947406285212894769331875158194271613173998960328831790210836312735891871538074817110403847760026920130450977063671016106552745441579855632411138892953183768265437102363628314688923148040645306977978207126435669018757785472424230451647743010553302204867819382022723465501239770419119567397531241007993373545998413025119282644139440067865461517517873413941359942976549075036672414550464654217963044268688218518580363783415279440057376575220566702680258288208968945921545608508787002336640550531081024744345949380319427818156033772370126716786246902387265684278104684999947608569304468279350255678877705188285261982587426198907201296225874634158413206003831912079142544447289704031880760891234821380303043755671119615847392314642544151509369522378716853541277618366639313093815943713098459549212987924120429390426792252861383386000958545952003380386213068452529181709403118404550997320781187818826092647314847044647715280827401985809515420185233661332749294175387003478975549315344753021019558737874161885302017186775467476670757185134381425115063410220084333306171855116059878266431526851370452907388784845978020521869653222323550399280987985676071785742750524268125784974147345551037093732132061392218761947748078855017766307133815494679323193005740889769897282790876164355834681469081923085341377675389203942814745920436822913329858665928058407417331249647667796627342407529024300280668274530843256037728304514168099796464426039528589754162858048747906815255644754629624800768101460603396920875927253012675021720079684442492337225883155792252697017532050480366510082558543816274400467249504237099994305726526355231374233041780995953942208936845959578300416836587490508955843690448099691970123880845450363830522372343437557686494025315764675592003377338139326665242299924251123357547449553775065353824563089772834736919134981536070427354655533783441758480372463502787080517768052074593509280823633031842521012129614511637948703701974037371455891394612720794330198874967639203561425833489027979084071799852277988951892503192391323405592226168579528370958077875923641851668336784574665309244686470040683376134946797947651579000390146930208295677870122600534519268493349506858297142073561005978132797694595012292299967276279865612227724162275351951605634413313442281070562293462791017066879936480236159228717979998970962850207181351792606261590133158796170121636594163561057972616745637690941567069492765746510888175219059880787300146412758152276192750724264239332043686725550050015117377046081382164619444329046208327714137335205912182804983576575421582053475749626170078416319211463941074385419085544663791603831094091018821835742607097744734997351127575187373633322328150135486915895159746081061490988169684723595859833053100219396565050550680694056552275358911098900138694360601463005831727449615863540936917101542652470138570169607915158177381092167245462673818524294177121345713897287354321312201274050697650032049966491691762596773445220786543198213441198602231710709184045309895139516754098573028248030614962448894479347182545751527770467743928703706074338985054579717125612118344408774934148518122107822886711432610847436298635797917534720585281574655899332269242433896741166634178515690401229761292357849425612237250556968937153674723377056681725299525670341693940293953935292218436242366300971970748439878830581354191943317014854759558582247497432537944710703707648490078376426101747186365426218166838712620029908018871391504524554117692634627891314767376394410885867554440395050759650502086716428613960101010903103561263039731974045928998967657699739026980948021159053348236407260413202678848266094718486718383474003556538389411842681988329042212000794770186256650673230521723376433441863656820978075453682441180510507898351946848182954034674598746557031991078450153175108202863385227854447740310699070575412701283125796984304967746017171528702895328472170595488027232050772970872545716021997077814889013601834529119440072503108946942965655109925555954878127729800943019661347320274502994111422782150124056529721869219404947023501036556210321801688212489742879490466155768166198286510619383882431314583476298255656613102129019811372112444826195122129886471119211898264550918398301712597700870955273938881564093471882786797561391256500092052997813040299929074437581006698295080386277776458420183501923711429397605366240599176020842057367152950552040985835765651332477519064296053177199361463722845093026602130996443019776779910179925387919892715900606722331384935875387905817433497444235495249687463685316276549863124586486595091030810837412944416212796863854197325365122640313014139378752601023393839443708852078567627492683975166239274568855580110584514085964563039961611306690183414692855962211295157917687399791091933319239138111423293851450151650555808858670353014837998981629649443274892762016521210841845865528202703950814747282983254060064981328561700065827403537805692529813363546796373658792184995203803512424235373148499932927146804333348872559454881781238183962371832832582521812541233024772980024355900669884549064350453792469435741729707937608835041281735462625883346747918956100960578179716237381964693808764376962233072541193454449829933999612879159871336028245535125507184614518109937168609968411605778089325046453458714012564377508167544995611243443781097532754905527640438864119665130599156065471607866531135583341483904380092547816317923799009516936843600831341041988308527683842563388573878637647165542270611966985659343174460039820497080206934495312439868251945161620797788684923078145561025420392690094968734477591616964823633226213532245240457316496960155025037581346592370040362799176629853773683744987054032876970473519159803671302364513986765573030625369166416072091330656847951465508669733841624951023017325275642744505934216589497754282019105253254822092194832620540586566119780115306804772903778023543545652373339626869661451756537258024187435469830072882682202468733783622184793401487147377460611951070950029913819152592538175283913147343317796976133531604716105233136289370513656237960669402021063151047594447201027623595917643486159155616383921586410693312727220864200420325964059546990330920169415001339805322938902338421922267092084186922726380899288234517362682886361999673480979260956529195781651521302478564332285830757609139717398929359491541993557938884983235702960882297666736227842426028144428391176523031648059686590844397195542382136328653851537957642310110653962462668643853275188351180524039219250875649043604517096510724967552383241832660422044169220139065259600415146517397094893448732986394216565824878950922196683136921489584930822212507063629708967645713370558952180533755244516116404539212270592998868254263025476051048688278181065667279892475157765715383578990545116393948430079339807547127426602717372367447454619264802497804839164272819438453344408794532986885208151869524781229283428917727645825816554493514596857915281903286714828506802585594632507480362886661023155085472521255726803815582223317972586799377509715151362816088489699929491172459168571089280315585427207439947778314236576045746199071160878661547858012775910264784489421333769992260087519055032884286885788230446644725492204673250144176381297300013608500028712621048268540042304267178709980189122703592858127800330608064263745614217908032925522509286515057917460956102350922025372237208612747305326304631729817532290193542930408445435325561337727228242685001700869968127645149805635073268335497681359734758408456655394074768752782010782890123856182047021942921080321377493669831296379210009863121999853311016717794610623551224353346181688207104943928653796559504802522054229307889239274145130847140170086316064028776157371349987736675785384535056051974269798097064694964071692502931447724480805242482992804092242594589438440379216280762813586933542326746230382454865727110384625835918587965304451522598450930286401992756284270444973418167941831333543031259258650616969538818452279380825766375295905136625422583461910607722133242016083789416518353242252979387205753573138505406418872807367961023438450180249469941365940243240049536168113652870486892548503990689815596154458476116789415414326402791150680619486574563246681741633075585451255410794346879897430731013884202055914915771989325426909127384142985006913234277081220680937628722798626902508736486479589092861829391566463263301985662471635254584383992446531902146052000634552620303986183662291545125836506202992281153908417444724710686706827025197215042393365124361068237706737485581730457948918165406138021391525404012342901287691799488588401799614460172782207601507402797857755351136430914087412951712408818128588358466493678691538425484209450969173262254188536663884093980066336689478503245988057559442368172558262275764576783232847068862294054021449058916551240851293810245463099808314695414645059242824145890490463149269945594258481072661904655091321444144712393159698490648735845503808637869290273736243220385391754111883649933360020841428976471774535381580996875638365571163834699318798486561813546023275963247062454100938749100714853396256187777798260693877273951471454932202012322254271254480228076912994411548849818840579406478641948079916180943507189552214203928923565605021082697873633514556410767641848079613903190174807543273670893710870199568247735166176114145132005417553978994989173820156406554113471058578421618152018853717731693895275402670655698466800172650198418287770809787152414111410586216421458807446746639522267125706457749573205228815887981979105635500368296220477530654662844690796326518737013767589262201290293548310652997585845979310644660783186799875155330850806563622278926816406468693470516008988838522113827655316947256954883065901387944886382856614565429806616116421634170927640487556233914279580497776702801376703363534768127705389206230321118218894352697556736375980821482872346127514905176851435495732203742792530520268489609214248384604730130111059617110761476120134026399095351734532598502944727122397970245632293481523365345911295622165249754008056315803382614789940138148691884139910993187673359398669626138961427609980990444471834950509679442769938387738982540817283956408251278231101339843091555086835523703996529344388364434042985764740798893179581248134866160276131364205624643607316041742007829160679344253595914240705403020244755921607918838673481675820738349610882222691119165718400063867022605721897986765929302538548743829403981260108023392069382209757706197236236600787224343781911430786009076691991199992763779709876181413899713995974105966389816998788847846163582228113331004059603141292758585113699572160477668460419910745931208274918700483546593471474899076175565769802257161911265540016178158363311645842057917522590562904071488235661286740199037467897635891209781563537067289437638290566442733142421812585405853516590711489614755909755403543029203217198607329639957203491484540914862448352787011863755841571749004852809770640786666073619297568635473396630558554407613885266138392661946289117976092220616234686738663137630831087406134512559549072844558264023496161462750686477977931549805707240677930934968181811522095777495764968481485007072834744713670544072367379539472767363229183528471993028190760411771471638487574106013771698800216549481525120571573817706340215375705513268802306274487227802767601029400681719567653152547890274608389249698591067998617846373883570095576537900013348114739686954613198155179710461137140617575723357323868821610112042084393110379253586628757373955634761140881568300186717031666521650660289861870254414580716124009682128697516089848891916717526641842517976852565906093222458478351461935916565594295639021452330335858451616166772461589310673341251372434726148681185500492978640881921000255263240172254736728000980736957567699296291531832611611913898573152077626282663309063090346926161846485684448547689963562712409949266633001249350479466240026668983040666375587243622204693882647737746419792993027973082338064939579189046289269278683802790867547591822250675637726358750480969401761004300363889584682261715311969068908631385923696023295775063674534436391642348883583868033115823162156588782976994228634074125512921977717012984992896524004534019830857009303298001347100488183388575229655033224370216789847176491299052192938134263168798213115741653781495146258588609761829850825259190449609066223884435213780275201303543167690116462048870262842164345248091807984541279180662561417686242800773895024071663116421922012458999216050619795842228792409644089726257485419477438345418811175403657074177379521005290414551816968476067074898063244240533113388587688871055523794500868587198621000423945538520590551263690656743128934134707384344031401491525014499104964370840470125332275336905132361936519910354994404302265878466099484890152917728348204780367978473874771862673325620949959757870621728116292525506359729499575632551596355765385708259591929310365902867004250265236113255330899046974455911529421895710350128703715887442744978749429522992087728860791139669512653953516272471248322366432294451833627688227080034184306987425510743298157388599917757504120575728071532277794486668025293719772677650982341882938818805060642860198070499760375111031727981388184476517734137016891855471741582713082966546600210222443132541905365905304889646282297087115058114303070963845231419048995049845230467072819914373426829739067778354419752056036833144832810287487057122557554358012910924835791755234668525706474957881790801287532650980413310090692359610914968417353018425636206377247997812820080891951988476703588493810380489349943133930081941549961718953717027645768454244238613453422429770381118681463150652756808020121799492707160491442329438396460503748493146436592148443812101876549359160276433712407563832877999830371718377884160734321695329585579381083896024090713290777394012514610019780467912839683033602086103466174227674553912377397965661230360041960376047512996503883582428552465855586294491464765692151464426585371890961774585602037525132929372113663666194538249688866477982278695330488371773214795880273973013766397943959205398898941712211880779454792098591824368599877770789464138444616011905526886132595207185792287100973847488709166958107988526028874595353568794512877034022123825723053324489652840364745476266487699530729460316735423051493808762036158784702629156102404002959421213778315134797912474310440547621722798318395312868309526561408318076668726432156275122386111600769632967864001271164918245539546031251270932761694874135668576072400268849596411386431016941907702744462261045060024524979741482728499453480989103107631997094053897106341969032373553935552888842679238769483747318701127654102921325539495928663332427451976733818503232271880974670136717295822033773375864095503648114231768675533696057384616615662475047577603871160844330920270586635540928855319298601597380548332864066212195178505485732841420830946300341372117377194154247463757026242560583837897317553672388520810182980824533347112875462856823194066818903151220622518813995024090076043810481113411795936541292356432869608952141642022095777885351868388016725716576639686368798337048244837272615774343479478195451329701654314769930141656812333618620354762538643779496490865462678104807296276571234914458576103840212772849090291778888228670326445169764100011723515418786067319925907664119235845743751244258222785333638929917639245126048394023299863182306862962796808194563516236203051201844462193978772145670850722653442618265046117828842083339823576033731785668681036159138551069182112037277480796247897406823809609331853232735638391588629297726616560947968215933280140045828251797431158455958190227398347712128318556446492837113624941631231769508801474958744620318195884788390576024531618945210620811199452024723863148489769554543465907958434351391260109600304491510929660782173155520362505926951468539265397657860296261757897943099948884250479240268631438076454186058147499894339103750035466332876203282805703455519351859478423666993977089521087801920158142525964098159828835234473150093010053736949438282074857513539176213969370129798730309900345620114540933441570395281252275982391917149770495052407631939683211741551808235485532894841916928335370940935533539956262364393765636713512920585431815139737153988707606146288526160953700260934973622905269648412692603508691368320130198136328115991964719223562667673146774954157435390120772983764941308833988604127853641165857356020049961847089213500750408553032557838214055986095058555813299047148046333449710925605320031362980701861971929906959150785439098156768562842583153456607450938958063706610008247600553154272971690552149398135446821161846878426885557318277692901574577282574976961225640805643773200259225353204344093742302385033941200642994964486627411563858706298667127525520385950484758531300571809236596973613347453570529850880060960533393865297827318901913933471541198897083739099102631465518179178560062785098360629062736229110005727777492854524632845387948369800031947236339088364309583140032166887226771993857029672136674003773204898146845522130517014642826521384633907498488247461886528385063915886145025303985371619170076533971781036065575910416898724621424047773472000309357005548967052238113686462886987878458993083343057355186345315122011944541541955605481529479301107483493642548869679435339039855489007808105328750156062392277927684365798163842144967493634773546470448855656123188320865242297912105193732496416447837233014973282076334558311603097763186080133143128880597584519251291985601876713730984423935395545899885790700646765053541312699086020142979603244246285635724813061088326785928367792559245773454007178207861079504872940208129612594333561655514713555894328348306966350455804583761691152279002120816867402267076014050475701916766725711323481289696493828004699902617550524696690013021745222398133080354219697924032262035867187141262716875529242118096125016182824223345211452769873553013171073080206994633915488443129419409525496542899985777271744352444993496972380428792262139712950230024074272500388833444073565100202448360967204595791675922093482895032705658695273201961640278496456882176398968480176805408957403919092408708884722133163077836631438557838691501441510310869123292120804908099288110155850149228857714730182790050554773865711476596843369359798930760438757373345250990240517417743603745218882397831978661104663738995581688598533076017582112596255413460605906369734745810929200758126069997531698752593671094178362352250171150192322010016610515767375720522615722111060557437326671643574576175991279002431340196547853274876317302165509817355068861771397364187748817902271148851500562731966692650829011816482374503017168545471208934875546559470047843331705352387263975789069917203551378990952265170344572050220615889849768890137450475798299522279616472423502823102254960066660075196241263395307053461014613748091857076225451451050381030059141497173524077586759459136710925153780947194572953794930649955022021696617661357150031308534061343217123551081780419647541653726391558508959524066977267691971560565300437470365223059328682258155960917010872010593110490210489982291162246055410927231665339596177939308283579523944599386568560102428018205044050984248693694175587498221962762903215018467235075698548137065929089186165335663306260398040649273662738473480427395401804970410756133485576312849235948343807757645171172734832864308405702968500780239835093167769759511230617917954420645345052555022458137773091492335626463053395154485393798717520233341603954729728295229587607245977269447525191094991369294067174970660385601695112207986675441986227311546377468610016041480211141689866320601344065243136653354656651778801097922700877186103610404345122926035750218074442418079196170776907632895413923417274224423381679413303653117688741572499732134316802175234447840950239903218132487905901901921753519969563979806043416735114234429450117671737544750661477501063955992369462069085540747576640593328778109774767187260999892320653417508290315781928878347842904130884068365068578203952311216198428869380716533281290422034233408441822087423499608817658081725196360718045176850358333175865050971595605954595141124867212327220173780837944418479024497975153125259034348004973346346605438307782434338201251496720359884994766958853994689583585464863356940644358975463539639046228888806304074591640222037903709149913152846840679713962790965058319334961272973027478582467416105422356457929791679115666978097248794426154514310384818556368801264676742674574565182449149745614935370386153807996878125407258987641660908372695008609711281549474946340774725181140785287416989409955916502515214866773400727183805844485045770356063977759342611292976451726856088888729169955559799915454626597376257734929270506841909983413423288174867673119264722128681654214299131802558970359823289172471382910433413779958809838558570965990313577388032845183455306774429268573161982272353880078748661317657924021883561389469232940604322781965214452735867815403773225985851157286714568807791282661658854921571109164727955602517550230261431799715693827454889249600420484901036270092388697401607247458922447423124873019079720097967619490666921867908165692666757611903428579238769574648536279616621747644323620603833984390412260275522767879637982526496475029609662543782927480636541062058820049328882018316834383416205021553862479022932392737914550521683498001034122078138223280677874337189668985327105586682403416688605570717020566331864998495104805761376332435421569292345317325849364427038425105216867502822558010143931209903084361931610324401923210522402236469306238845466970517427256433381100074304643710306041807183221457733070870617882986105080983973887769284023397419037323737592098922998473780329657406766123632821202697740320251969211642278451352338153967626215627758161772256766617379484574265739963094078963607624326534849324754984504226821399956985319802027488104325163116819731929208618096000828713411195479589154564490066431611203105096791077023621954875480971545745302110183920842740960564027180052576587292576217161281929227856739928463161907427877497572599933112887941261265944062147099586407524500651748360295115411207880924567484009660036240795673571819369878955657030003234448954708738411293589607315111119831095092987733759103899914895391947400417234839017085372848870386663253649577254158358022074412969378014524416268171283968910331782031211249915386116855362064448625772628785307321955925269876218388377100955292296074362100926627596271221422133588436635349827254714500094539450053917605563608804799113723714560051704324392053849300032161611281817126821412292376062004890349566297496952600528994218166603501841738766873394950811406782161352196178401368575238218540610644081835850975576239061329085881787962785294156102225807212417047785392796270036627218749600579348967796773020350358520297136962326814023926346692236018747524345966099516305470708441337383473570091450317624009065324626727691220093311054544231396779717898505694630231420159922911309513530518042257188740059367858555069943972452742401330598077760736633449687359621271530891701512193382707926881863498194319872958594962655730087089458058732942000431959006615037042062760073358784343398339178402661338060987477796725353784488364554820643266721445309442913296532035073600485401851634184797938509688390263090846498045745896377447911074316434855145386217032635350133192509136233771503683864406811669458644593868269059521339409919181730002903662923618745035958599697782469711254006880258191068057154156780617651201589878244022515231175048121514215618050409086417733538063287732342033109047245931969154281326814548968448079391886039810321866546570764829447964081063699450594488185149995108362235709153879410629572509376734770601785850870566139616669800669696460194975583815720421922532530024231558116563655724553094626942678698750734152146416569535877723958001104764276986988148626653514874948367902566609313789429751030704626080891526671819643121138669758554208186264477407755047649013940050698298915940265327594498379376433805827684626291118734111730276242015558894569330099259223989446773775525242747865507616624897108063872689052468271913329362793208967283225915855129233628684579390410083695102430244566303110400445142677293417300523533924135156792734962133609706907013912358564029131965207073385429936300532512713284437113493789534570505496920574854767531052012767601145011755877240623394085999996696987220656448016634773316334353790789103210522829689869060960667279255242330762111750502453591255901786521989546078431497720909238323223550730621588028219476926782604153204954291223741766849087079544871926232666942854156761826918483776743537768642544850740043652861594224520819425182786077852387366073745680658860683035042047963602184310957339197660277876789372285017365175165370849524937390077768335649660118535644580226155177359952402109880330116134028054867883552990122061161859021418145325974295081661659793082637545087580258808880475423181060163624088297125969817644803993231708666623042986040419886538137557759216981291663713486846133634137559802361685414242710071310086112172588235858278811170864166767089662597258994617281221938240827003877687914360793751682843279726879314412741751859369545908882445501022181110598438927241698118395513378566524135088406551938235731694354481277137471487115670123174312677110415856604491967918305343635325421168635796731999975366018646599858584005849014943280129104630888919024340218913685743383562886529983608743657756322983902381059747938696500651928463081416254432700621466709706494052098697224662972967413281208378661165191348687773923713677494351415427493253587844815346423858976604062483631735464482910374302051483247448660620491653264485117101755347449989101167077457288031362223284316418004268850801457533780251409211493422896748352969149745466166500839580528776419977743742060341654035542879337264548000632883984623136326095641930617824140504873348837053454824236270989230327433576845705224556902202327613747083874123868018578529029025045485208540048033755636538280515132652831751270481477174613968989429453565155645888709789735562749889036191333457495142903641188534903112615851676451125512805912879741314119579257639723688839361563960752334284582958073533658462175777800611270322970721159948102377335301678894809560334365973450807571994871193940920388229559362850175482554109568178154894108930941028929505121065762650902116902451465041438079334004002933609322864717611501022862114518751209913188268611515853211235166290520690243820705499358040652659912277508625076081512106447573476564002700730854339738953769340778396048972578997723650514883571851768629872191413594541675622493631454786427817797768978933520436329620682115119515366220060396515683746761848455997759657122181899360568083534255128752819100956099316235354659332768148898095045446930261691271912365342003336267963887911275396824663792845896809582818279959731855756134863672813015920248661024896679501247978821252423943883524168002148098348943143038561366191576045954154516712665391963816000333216960718488419398222705297526809439211377892673120312314741116576108273673375377610094520864781930376218632228298520682320701067485162460320667476829867685443977842241754715852487970605595540160869443110611532410832643321943786571009237767747775357441230655777953594896249610487206206971771766486518353181518291801054972836071826030700979140675483795034390337011946832425119893543480428357301156394023079616180511274632402851306325602487035678117062925921716100701695958764671763948181888622319014524037631616997564699578593260144771728513068305351820495974593295809738543043479909021224243131441334184474334277313563593726600678155025144325061652054890357910790854485387189331546754271691597982455778779964945503815329716504888967922819149568685134800707815175291364546055468594439420111522452965927923749205020942177928047152411905814783098285685563141559155728059958847913725362192477552457959469166177453613932808238583336106765635109478869542591540813139619981952350618966395422699227260637351900552979367778943477601443428030195789567184615425417933737792998013848258931098420980704129826880621922174641177273529846465163800789957118240380481058448655748160200714830918124673126132306854963917636729723641869514940718975981952083132139687873217093244828372294218557904411657949605138016796071923910903341920132398680255756332741489505455760688142799826302337897559764607899377844834654870752237225875694626322807041773064402619153744504305660180670725853713618658668355183805302262401162570707428194649465419012289397829885723064419718408704400562631393268775725844806998925676444992507524665130442277060829371200322395238114932814240815676811991127920772002360007715594821819290007326137758518280578459973389562335485360891219759686999691449450387137902763615567933212097093810757392287683590999840654367531190051627193294104197231402762039495448355884003196246170574272107786929064951666597773607378374724512720113118679984718784003809398421839729211867407189505342733971569832144709796637876817793067615448869194093256261599371450862691983631191375903589168499389744642480066516574785732555324775657223583804050619098095502633776107435870068922409338437863965509261417575968867465822163097725276396715025717477491008929889993700183628086010354666652262702443410094260578449409621982119317787116719144517971684023962632698554008344789356649408765909487440978150940972090852989463764995088707852708754553664489986720693123034533887889096409351199701669869767820618623939423231672593098179171983179513108827397730706259481939280867623069883103972302611147774244868312711403517877037031376365623618746842287062628927145563102341909221841145207112016700293701060824105812684227558031330715482333957221231824244631070984517046164941180678780114180688208572979190614556170638077014887302570878155419357406050180185575675088455125946592366430564699190781776042003844905360348700027535271047220685908369158575499823925603025849967150500569021606159629517692221547460907009682409919325732026115877395639171992212459039006964489731752869601108294749842349467660786487656010856995460908350044110281244799249981613667032459920042948276615783473735554993425942573028669037539510104171689228579798598303616381463335313980470670229119404392377859843072249144615626715695772254659935266478939038905906733910206509376924052922602999137898131358707020318806459829473301815415620257836593360606634788682318058547733717701167319592188838716656358456716692928104075489090674885138660225598888196832399532494860128478258042363192915373836141352266986019451103648703466000578248603830087196092439800481989146126341613867646059508870812635404144352257372452665201310870051359852459133427032357735488366533171356475688158608750363851189285682909218359522620535232062617215156566423288857109024888113571987412359619518143933669223846742856267309494168550459715218466841534298185630710435556063123204067774228365868647964477656183628462074550121220175788464973913343182671600247278304183589664418876679593867959240222775416708967731477889573501735370186484707759023158122097816663922674210780424243930251131230434562839707241897200352758453137448405668543034198849110325435657194646337021985287616081508939381048804372844685785666493800950324486717066656014491375603457142087352709447136892204354824307066991856072262734469106957733014795157334644837054074957184601858187456782337750466758749798788432087530628882730658413942420208928579315199865045680189182183062449218947969036201203957322017198363522632630944938588945945164640140767216316894680296208001941600711668967190046248035706867441319751097865217109926225848478667140040109985489474941740206647126135251257819200408933637436488845667673339279852275406257507897277636243969435067830782177580041347277203502149600060112093859387392759503015486785023455147259640740079129190369348304020889190249744323627523367944585965445313828102580168086851515303995828920191810069315288944590514512945227936257389552250748494838548404714525201770569472444305420771844416316006725456330968112755364075747506185772084406577825252781998620255546125690471336262781773546269210471805936801134258405864153876750369649395698292796174909180032648589861612975459666301061301409813895772052561385425812429577892762509213359998822505848330496513785791576478451348186259287823436724590022328449596903346875012014388283131083337556673471092387858368705107945651866849677139006638514243094245185384032203627855279956721961986898411925798405817871268830339135871501260034624869293430142411703770486672017958825155894213096527167594864546178079056225326286568977503707365871793645048279012026279990109871246309606603773242246799691365459857238317979522921902220889638009778612122529649380536396248609289095512732244663442801254976647174745806775165671418973887397971489077294744250414179440760487621782958797384256960385839061865257367069741494495346448533344357792472121532741188465748035876761241106893074451782295439448200138608679325328293465677828491572208329880972294801196054595972086895065386135112291432619111536832170983029749453038693665560069497042757688850026599953812879253003617688332630992857673489367478725327640030942119100918275635682467460930139251270450881069471915117154541562540009957854040239066567176654679580838653050392325114386126311491202220663680842127209937765601356303865162255706347536308321191629577279366241814768703127911482694995796934872978241644497845579967147280574635478394284125459863951142715501203244971049298502366275163495241041549615922399615941046486135165620391044991955828028514773011440919798934956981055886647932999858547928546011787256007576914222536263589290730363109646856548103486184428531413889443072824506875357594437273812009498561561066155090447169120677636743837553853523441643451510922975075140996766509647429480669336031242238604760794878941172559514017968392367401867409767338309429002428383148160247902809914965010571759838174184176232243881546373541067119467069413589292262233806337122101523545327300930547187271036916967083906165030679514076314991817244956357593457097675210627806855300631623902927068870953940412733457307340054178630809943758724372307112969677524823725559749196805490535302488077221860104170794018748825230692603054558790063991724208551453077415699185453205017106964878950225129771612465496115504762216905456424123133154584830254966351140766225066207495287849026064995971734560962307634961692270161722235144096420204595553857077156339547007170303525999006406959907145415796221125969138294333697861037476778450897569356478279787779942292777941980091855360577804310864251257979227957393421197946179500940499496790374764082820026665861088069538305257928786299448814650320294624420968482185513355907630803233881111504797285617047279621903156148884251977383945198092352331924032894808015692513187162007401666210251675571774431235529282081769959171398423038639320335888251588935442485061649662694921642312268832569148722739609031390145892017772253139481391110556385841165957469268140216815875673761767640854427404744892147847310823252118370956513276863588219955698105983790546301930232039767414579766900134266827609547948627544633237169705211050351219960989587062239173965128462792531030433815142144618953456828123584502586429391376754542641415102225306578805069354881350308132257174633011097178536590885274999594267533267311924933557958740027489730930089573428194069464140180171734606997539887628486362006673349266138514367717731633729516718880403283978756905853689389803049868667280461126486732133861795283687295887669642181691597729440489293039605032631081577850581608831691960665643688733073151271039951154245517181554541827624558289876908889645447691322138981032752594454357066606242701303885728495284716744605772735134084229121564292247302396946374518942615355378928803001321133206041205026160970839057717574553505581402564120728098997731167214348080597351086328478169464710598718666434893703466764216112986477875377566884242980121685122522143593369330373300184057866333558639243515594619233210384143696687104980662309551560029898959622200786637944265596124300832509789037843467577512568443508845111538153944288862955147717992869118190202451583107928720666881328510279897573839158801717917745753654321533983660016528071819123653213599212839136474653624097262995848276183259160278923689035802660763404760164598401472825811311580873359830561861687100714554704897888408424328208513979437933137241752215832861017927136326780704590590858083179459027812431701023890267333114494296799345331726182212541338595893637014813821998946485689159552786812420015096298585041428657860980347486284533567588417467511964327519452451780125705616610669330363359322270665026053261699289172844239414629294480099853617551004779526366033340933356432582576332496447872744306144673169628449863527410022479898684811223702006002926269039852532025142553725584079811428135799070507790532290373960555955138046211181180514621559248758914928711971954268502077703943023254619519651876703870083265201741076538891774862994525038640777699992133580289400119789240369162165526679363151112059645038211152123928972344926905686042787890180330317403747823604710760765213950775858820027934071805066920296705029560016486934727595894994510672176419621611621668416295078417051683122793142735818606857298981427470652466237757535328244490956711363389993064599553227112288689630811493004510436855844980487436678832666313329055650417374086393848018997059534902478685642353676131154506337129661786033871043316320011737057641345984212173193655242789168752405023818716310585464910356645559807123311109849647019364065811831505025145636071717652451916363379479016521706002155403387741165789304527888797234027768562836904790007115032872097025227466038180069283937287089668162010469969948586588613258856475897942015721615866582926949770464250369974769775304708764494310081542831993025495388427963842614299288597019984848661813864004175879233338588670964585002820553618106176163332909143569252925735820026715835359995943266546394574450679962341418224901524798346161390347828632766138878134071539294528986106323803150320037569472314866363585860587750100458564962874038426746421966831058404915297457811847641525119996918962740910242509533006059115828841420001367679525725719999731351851394653343323920123023602439183588050022289717078277420849395257509889732722591990701594837765605562267206609413723412325899325968041090267157645526449119618218457233021677980179267937030378392222856008578818887874017321105496143717038006001828876566382393064619836610240405231883362526372537948255783757250348707951107815905150687194793430154349789663224300892346878271279821241352098247943695371209679990702182068842368409482016871309046296971577624564074221442205629296132195614579962866758587256015941713937259955116692440416714050415461999848161576162031545519383899823301270560810630249743312624301087652157301710746559791752038443088144512665236711303814521190041580701081904982299471490926468574826308813447896361281731878722751768553039636088420115541607695070375753609980021993612717952305842644860539522297285001523266791085326143906784506822664943827871294172888101587562041806587495149371167780895026875139212953634706143332801596023623714421598043347076498635837397313046836161747992880139242125451222287795272150154872606957890485489173392880920911581835653896399267069438393616615092368083573483696787076119181034032547490365820792100475116668697717887168904604354597718238837110852417399744636569699690214169264146229132468831659157869853852267025742312414235043310655746576467868445650786095706167511137787946974235537646057596122399099901285188490084753042356718608216516816434828482615871990934434823200661394051097463382041776076892401807461332865211364732031119755049847160602400840345225372013685877675069457173919598385954176170799576002391350997559696095313666613093497373576563819077664351623680157936468118549848293398288507846254639515806358442693038946521646841146003681397898852314445233024530465986922234644117378066176721162045747542344797398519464420219359795783664792772657653661448936399354070825176905558330622828438986375860126232570494893939405441510787651685844096657051725439108254707006858208856690648550596901426164174108172659099464974717303497168049333655567978206797252752741203903901701129181157527414789055843632423408477798533158017999578399063418668552737909961374160740685183521200454476558159110869300198973987140991280619619185371128510451871359473986508450025498736854832194629671875590038877727692909587488864682242504221171865910841542450507527097050402111726559636043138302404160431895857671457266888358509350952685863474212862604668975452392395085654240074411084002729519742850978327362523326959220725752416046054906460144680935375643648397324977685108488212367853964505857585793545868254407540024286319727721602495001397239175134944514534893105903888967334061987756942579557744360124842221130698323843412412965143932655763256234782409957555220940069904398941449492324065108902811104523717022427244191676569768969993603438432579124874125759411227179049134352076248291964503448769311873752623884070097629912353433226415377221418118607190206108648529268262545786964778915624927106635339356128903462747053772404802698719825292024272258410156152491358381363003599059936222270640978723803757568598598000150383277627716345416198236279205011060193610428755566802835314673291377691572468634917272703047770283358628791891880643969764577211046497661697864437801592556690969893736488881961136557405733446051281656420465386979083254658681150200236761428118628913350500825241168102416581063479362331466823019342169048204681083932208304807986986413823432427360995721228331480718988745894638359587020657881870906300636830763309450372934311423173045465590436338311451442407570998924314892253390485062874462313499246604160027410034232193884141075871567265865486591434954374566516878427585918403238759823472057796931300047812960555529105287435128212793405083628548980345854554417457591572426665827088166928507984389573606619743855280569474315356366784795300833003417395795550924798937299576309861624068123335255192036304301367332793570731488288987606055550717175232632407908515666920383882689573032486004221459826009172705287230049237367634702241165991108204650760986813062668924282087368291323588730203946601655148082288221707309642869440457681247898673978964173863046796472497974097710069827977995622857047563036655637307590222628040048497843502823671274940302332179711835097735876400077059248211692581738766206371013127596389997007815259457233467177930814657509814686282567214760305220036080237836200313771585682625023530679684972872773966114523587340517943778926605738515126064520218242628781683773822518308672443048092361576304406294140173031624413954818954432842610381346530592087487747912640491621153851260085152689316613043483877945309214866372315343929247303082524655623345746973778320849323586513403462380828279531733845810719469219191223700246100982357544523165260229845061137909483280585022254351996533520048664578926190828358332473445162327682826814429200528036385094324710126530234894528694800176234940569361071522202438320739509934613921436069063670019125791395339894434955213705566122384780921580348469174185080228761621038665845858822316380503346842849476260019826629614690325658102086106023606599972457558157390266085820876980834581696565730148171719975760389051111030707688323878037075209003948613764770287099075463485442137818634868901204365935122112110923945016792235681575767138214381390518810654013233147949075683648591296868267756300543251866270140416541841914813064134745468867342859249773688518636917940091077662991433822341455313549864588639722121988398214091565546792282837708056595084045652408894276674941241479019093373564112482759744546624835863586062704922003370422526600564307487860776815830293957297692005167264286071021569649272039746359911473918509089200649032102771918911303343473778039756635017896659229329273662466758190118961025414740797528397909016472313846136916099979468656195121657781427023961683842403723077274734457374241327067677476288835382195187325376258478130381468186996419682280168701329566871742595712286101914420771447941403702855921508894378117247948955326388561037174143698555442443910706051525295554703564217868868460551246067438945206015417311304269243362857398903238345588074308283876616998959344486699051990921928259920098808961195345046365971902051072328282769798820391513994117947944779208812643045252715086201714570165983740242785088023263306461276090911325116599679214558006919823068895705387181904465284979461917274369813103706516914922186901002383723727881266171142770809650824240828148569203823949452441239157070610271921910229125768894439631696422341231920262881858767223089794250836602750393758956273745296362107106875393881851639273060644115810420080276962786405290620644004534959273025998931844536734083891129492190596973336528000811067100393483227078976986273140581019585207039093698017760474542575457699749607791999209002573355581386495135397977573998868620338174446341838082058827574916748822277080672842842846164016877801977270093903907621896823920431359287387045461525203142540497508883374014805405964122679596622732740447061203096378907066111774331073042516096402265258502562091814604010357394532041267326147796607982960287408447846274325943725583928597048748230586560861029188684826051877326833323973084025345933181734829987834947785708791365717362297918708919601702215286670437892197131233725095851074992095478960648353025330327247836602875275327389518541067780806565638379895792297410120571596045740235143485870384081312843050209617586770919898620538516760798036003061792094006927855338863741281073719396135583874819225902495558923215600811682878396698104209400114393386437930468660324457277147361878752678636408405951148662938918599790904694310666017492934304977387817672456727594634676318093487466558859350954108033582354933769492283443691016165755934473275261075572073203974861528600449202963011108589227053921021677331298676043246238656706835447498007448613467190810894069415786701211766665635373021826139939823948409228179654206516888121145225418928464517114374754477431417549575392444887149589684694227614134300384749366306051857447464852549256260223508622889206546616738780487670226110026175916517759307192064180497697232766874849027011217706161331574938557516026755197396128534482712144930980944241729768402471385621596257097113652190254685310192927626262963256182201010245176147565471298358593890078981558502632219457460461699603283480839079746546364224907972948057284172494941906508128402742268960852612913021509193026870096881013501687414293321974382683775760919527206288767543609954155498048569775075754101524902491748963753585367544556065426185351707359509374791310081695900945465278506067682185898940342535840541983552064110811612571347399121734898059970730913138635471586804587176253061607146913709268912613843181284955011169889996751857823688529143975498233798494527197778325839721081175161956015921028021805691729019278671562165055509375948531745622398750583679921971543327849650028495683257374152162546103775360653186014397885090072284776071821522699732313462456406087586736394877875275663996643489512365393246497014714363824141077419895033169760932552250520716493894745472028778976875755777814398817427365742624956995940367394153817929981236262115222492142422870358173878734880626082488843864755512888785785306327530357260875644138950243037216256308969699417877991066810397550643368747537161311951923197935592100092281174081271501465000327292733927010072297758974139248928744238276433788126740387773962164432564936838139177398433160019876675784958656394226307884658665604455786471757516645975205018222283756259631921807866094930131096771523198945270169152653763790256901263933734147183774420952547618358505414303315511739782103368431459542531236841669475886679653901306057660448587442686703910272285781639513479123417055574659313531299079534323370089683058121071617163581582545669761284678330602300974019057006077695689314449438194564159188894194061235474741150448264404428939146282664005611303407687966340151146745432194824408204533911361193434540827632426923990678356019425065605157259556732321364695968401727560276260047889722916705667959431002821371142220964528733502162278508505687462833015178115322608130655014525984316631263026447943704821801587003040119043475252376259074129446927525054648904807196363210244091253878458556762072229450039994077706528557469725034669729501407578544973240542414837353601740315580916400865573956022565143956566385554719619045995275138404386188681877525733408089673286069339999338370671254362555065770876929925031626961191407563997256673063512789207328662269245992757454793103896683110758583099781853206863184294694294809229807037811064470691550793713046864282551430352035911088067179671374512169626394384838217668264935731029314870390305981555172916794718458981130809016124568986310553811203080596560960843305551807892221644455317872934537159691390275440941471081278534319331115162221805352633982111420734748836480102607142888698254403445272165144774467037401659749559448515131112427309355685874597268178390481174374436335766191894272210837542140453896953560873122156117606655399304480541849894543736050921182176028231003143218568615944200334824972977277412155236193923256384170414014754302706286718544497434206351318100726184421745387610451433473453658690804427496631451225645099402929089691661795707466549992342565563057023026581965482781487955459751088023257256104036519917998602973227731552655863190927184151816797175815972152793668472339936532657964771825365061312606782995268540412380005720149293287285438475446957737970309800636726389425585020347101575064735679227275023809302992234621040102106733005671446760968529600580364376346974282421939369562972307347657514078227561788783332299481362273313286683578184952334676922302874225508002829635500345180409621671065910566962084457369037463605636348981061440336605280300117246929743373519361864391888635538113175826644274255457236692727863822560469374662848695364056187650118303850940126359335407725795641885946364168893693707269668198014918241603705990786130446895554660474039302958985794127940703083637624545992768122359203342807629655471797332206089838309443152468382802512449902347049743715919732056599533431382336932624068717359236024433607415400512837118758077554906829526050728519862085079930831030754872168072605974107236308629286435557402424656511486133477698002020143073369455488184271523159929250245739060048930607885442082051041387876127136960367715716080916043182700242526309750507427908095491492013430532805547579522706008302782750973156844061498382829151621068028065624098435899767010586976288175045043495209090243329027778815117649054704050763391571764087685624189825101543016916420735309445963455836298933639616196590660768110392921011367020822609927015971215864989518309460666914936425646942500485012740825183431810244150110965494321304727605348379102597178802855499767480765488750342320215643466480558735924584058197656072292805544172436024209236140315733922530376983455461397712470014569012215863631206301480181467193694231676414038625658122865683517389048322145248883927756618865186842815370137590338596902242785594873877596954844318592211873746533769669573253694113782565159652099244019849415725582567147369152505073908058555915475771687838756934607147825348369462757210193406253453983555836892876688076589479113542195997740434618766457790343438268254619447157237661962485948793024394159947450371018971709734209333433422827277675421692059976022830548793150450138492572582159582264957466779460339982498156237425604056216749895081857862221407887260873449355263068048505329701987959312388060507920992149184069538186476193412525189900837180385417127943417528929218896411477517202792496046029137396580945436300621281012176846640262360422819309784334985523147307792088491001820971317822255946930353443630700482990943773215067090543029300742347323538639625525348591318859975111343121398606999469560943737618401143837347008445320889382916170080719505237528798346616246471266701680362901938973142078443932981957280061210462862236196999896771440360362654670161574229909795243894036426951702715476832804733825611269206211479435399617379124708653158123316752412598632786923077390407675497296119976201598434932906933220229473360032509823671201507145379047066950038998249922379062923971174980925668073021882344885964002180491238864966564867127776667877130592224694225610048269777300987009114954648382666383637301991882972535884061168149689500110773297068998442741690359300916680275877369211544546069801494476778597882665357932097007155413055516881125319953396553733304707732279136735408684772172324357325845537267270402936881604309999916383150399990427485138366038809718464676878678165014826893846414837217596269391931685544136623457705417053483456668326259074877382492674316959304421002549910869093773296430802212102727579070796687755218741897036789641981449520706165548462933998265875377527672540023852594378036087359656421573482300786590266905987120939383669201392329146217103761584448424682685841596058415584312258485574472474458505571287309912443449129058275902506781712610259831090953834937939740457813542550831162171068045917541876547708839365401197361084232157910408642391699420073548902048383646067380359588294107882038463918669374526296728193788418058862010060345252043665520492277932837489960038979489737746942292861692205595900357120428822308793458210060929094206073583695286324002609512872162681345408099353046250900665547316300792676911270369987981733170779246728258503844868388769408687051668261913841502865806182892486963798615573879245893457993846492151129534676397303464232880700871414111893247222408904022734450861734206211642855664176773083321295710645409971170714451293184994103383404290063498507814529955012510836352352092722029895830579822264542847333905554686101041921360589077668024055856717543775556733708404602018460107165476277056050175385807856041941339738960086446001548427498458396024044397333879377349232709207734170795455130124107759841119992902520700535367781100871936990565245850268023476102483086322287206828293887669180283765582144587189254705829434316163502788317698280944460792417417675362835094971583007265294024218406530722231882679908985854120528072104611108032923679551756700976420772047681643323124989536410397605905901705046217214997794440397519636985028441094970323286719455036363844672672779784246722748679577232021568850901579170214832318692547118518068650685388192376202896065987155695499832428403362726526288723027655562187368672519222615862146790440077911631456511482450968987061322487729676373329332705158495014844258551163183121665032358420321403568017468992868175314968356361546104038948394373618688033412773194675742115221243251442445602722253713316379984748441139912947042422557254384118408692145421915004939462640303188996621198629064761527327292203201664661100406670298886211895078444661504752464586958922168988565124059873909723186731999596640942732185362026209565503387704186222482526650165403875038489691286784427801165701878695667439922703193570292382044992747232695102800772602133433901480963053825291023785122163176484827227786837649378837647890073486467129515454836733939594811484539901735861127870850263857172276192802703452578590057636894735841908433111774020228170641800545809327854168395056050530177123399132896715112535899972603088473712229283313121712050675638219682431751410492077062102035477937046448214827400836985262598147534917593857500224822827254639332766363015227047205871732775249952115273951748143860497296532681515772948894388058761713972319993097776668172867004904243150284059151074962994690046614782725762635435435524357397289585868931351721535829944391346434419304014222436091670784968470901748819437861825475964131621510726351474742476708610711906792601624859351274733540485136221576729083600907159688667354194804904546846495390848978269994454503493957549084854565257544965631530799729840182629571016013900280147515799624798629614890985446085241969817831436867704687812764092168912255941995966514305255528424043533084352885366301151686522497985873186430397967358882538233101388771672056707386106547182038323467517094313635792143294655174467542062507489160411589325096368489739719925000281874100961086781712269808532009446939814134115843363838239218974043761331019454643744234297658051008191747150812794832584670919691246649257865272092289937444121247122162331881266560249882499356414990778503932119188069904310531792899277271104052263807236857138102944617718931372934819299900010097088622306091289117422749734427170220630788787708485977312043876717653565001079818875353335832214249680088365895781456381991356874341859323730514430356843093648998291938947014963658179047699994681914252982133137004506015222608327233321913554658397967344626627248318452799019719442330014187538063349600054375297079361424480518699966358431838986400167867872412718998071592897021981708398315369330123187951519960472629487231050549824639655035244854057516352895644434406302539665992986015923910858047661096086391581716524141253890244689774694768823013301750775716130658102868035900718616133684800483062554526133375406136799709860183404891784870539169895666897529169606536655015717034326847301218338020063541021777780472614612673528682404638837704403479929948425636267105346401235500221828480905554460624974130551504404584637167255565192978326996832786614668051148381704218360603182865702136061853206715663147537419118761396573271227905873134533240193500886547144255864439332201887942735415634290654455095972285806511324973144624440504515203404727397952815900310711903455213762203236963762469850929780834850047240389232505873318243929446478954748477250857643160747883211293203019545869891554219156036790718765351048921355693026931336307712819496785250458058189810810400194760944783687457638998449172663773728047429010244709841625395478768382369937844458145146652229492094551352967295048147139001699079468069067374925994817472052026649294102694815936434343711300244974888961247619256237078464617862700283627849754205155170550822621549698672469083976979342339092921744482858211762228578534485567160902426927240668567958881313568286384456290837703606056845765424496270758815747051327674133961645145582242247196629159860450596940619470281658505550324527824584772853557452720401224547176028928883123211499626691283881184906885530989945538322958019268526914445244193273069156601194408120964176301032266886411276363207670642675550673114958217682276087174545458304454581274287452250867684417255217766001054179644906302098091926308776299953683563225980825665771516962713390447090659387010385633364463364831447680002939687130665671155086934143184913669679398129377220584510883098896193784335911052976206806092485880001337677501257867704486276404313522158911304790492203577410015046109755703298719981141281823612434576979537732333439861086115527969876755650490753759593549472579635895970823686916313133707126643393846191329433306206963905264593883010883201983268820272442558620044921162942331997909874088107649358757956275695056079945787747518436045636592386374686284171563652508830170382817783667089870802064251932441857061533695187226868799969411320390001450241150277933551986511166560097929224456580898780998656861958134479015624692140482824611733054921173045819077964129704487856876356648082811207612526841361797951090758526014995545756420923140633197443814888512406038885159081672474160445501308991586956429616426843452449660375459263597645155003820265161034420224057971275274136717539568687037366665252274567633278379864183944767374581975974355956067049210643366959142975296916604491509512270015098906880954069854231397157371002336297424274920748355019597908205367835513930032639631692766147626410880649570060968512354012757659677758940696999896872214663832019407482885208008082336819948039324598795463720162232404825808540572344560771134749467998816448960278701009734962895961481606900734607184911149565712649713229102391174461835434743571530308330830776918957885661383513265614732313172577473685284063530135951406879139205951804011560573292281782479041131197613528254504123473829570310896388318703041602791616424845868841511630486325239080496786671082217385464759271998298242804402990200827875190730881280347725867931131963037934922119003030101502595747094301668523530679549538340768604553598326703030220565187672657767254759557022069176684209488782891773177135343092559192120033138926520878303364141333928405249168851757982835039057084199896700486452494581257980893822804639378659654870671791073153019068611530290499376172077516519575651758487430275277290377194623481066650101198687889428277356273919211418535373383503820316268988669139505122390008990223633817530633781426448686994981867173507140969817236564977165756468940874815211184359093678909565298188624699300607188086239608481397799074680268778200781926963476989965175006530199543846887498652761090658260672202928881213813343765491998018521826932872091404462635915449589108922801613232193709764351733706915970029865262917233822803599244264408561910853545357819118362623397623964508827189248266211716303912653367743506674034264758506181939014835386775566109186311085741560056224882986990910934731105082261132528386568681601817029759555291664967746824377220150052222709312676873237073925643204138172882151462967789726039993006371722070989092424634887364007409880510333283498799148502536518016950011367403476379643333223095406191253706749735381498348524129751732412096170759436232351957734389266582112114827028220927270783147677494968440638938135872194038004274343637996473838980176844216584320175942449140255424124711856133494125372476760234994613871872102470498253013136063540477678974005131945979050899148669249942218559315909884401955936814993690535533871670892187813207093131916180186282439044943007260290820861442916296320158146404272026200890909879650982572868830286457296035187098202960129663668410802459259039289593030414657766543097718496454494895299289277240902254074438617429680992696699364951821907997291113139565641539462166939093107817612517374226058024164338895272593643971371857066768342831449560253699188566744766822406672490051938672089792241875890013398201425872156002868280782949569544040194653396462729512996985462903460128140199960078673247279501372906700519055846416588804002733655625362197434418231857477328814584961564935729545387728929255930369140519962591008127003868265096364415334997410536400647338142543398619898362099081748635385722477068039457848639487651407633472634127132272474070867881296222724770399193201396460409060758531499748650755782371091453830985767054955906524721422680731928666603646340194134908176380278474591998873062196608765293384227298522155455191884844607827002424620325430360926433915680939132263332864116342548340292501705491075627607095661790971019335843896327830425102666657152753091842858020822818517901925845847542586221828723779675210296408344694163635411859908940653033638037990346677590525324902742991960630317151099787173614769222414092182320965199445920688535463033098605362382130342957916411526933143516920572862702268819299960969743218980147411673458891042948022664917255981120756045438019596535911308557214776756221648770860011696234534639853559724340280196971507647633402582082240687183732481653544888495724713740840694400183805499704795682686465995297851966193991269217846909017082952058245070573099737433545400849158262888965072170593782883639452896125383413089962039020461682631564617009551171422732739338953666952527738784611558082928247557780756511799944482803581661010615880589317784460768325664009696178688166189511427902233993311448365367080627177717713819609752541450180438233728107392523302843298843791314554743052561384215240669464828026896571824426817738119747127468181374355006596491474136937712279146506049153731230728161746057799434012126748846464069871520193517631278155264700217715793938915566284511036771064134610550096918121507066821869256696653150967103329237252012223765921709992765853314019367940109668457159414266840114806172987632053922567853850035640438559486734627259577832494647643047864651018987919737392161048889764344561692803171532556570762434094806804971841427836956143772003577289445131079002926697297054381862103872966523679862692323527972297674185519400908320330068479410051186675979091229854399441211436831251505869154455229933811985993645103221386397711780323561048305669128919679170286479441377125507366277556951227530557676363971819354506928102754553806484491356880692296269301294192175170254366361110778376395971666477028486489331376203246700313901095768122399727385705349908115479633439439802420993390592351334622494991481856627436055807437157403300595025807879979808451716134020165884798646332262186828053641977558902584621224130466940570901394232147744903768857252791677895089193888196197948406449731685520906421609671175115859282703495513324326425096696181567764136408920622659812145713140495375360793946610520535862285339346985290583787837534157287227914497580473284049013712453987864293695053059659920957936393478450918715678217713412200949529048972522765369394019226309396829061620285579242184031882630599767245981619495919593391346412324055826773523574036088424932103370298508153212693465748270429737368550652278245616744084132685287108501300042731640507805231622556184808264097228566625593975448528693361889778851815865433004228126842409679557872766011570402073291848238164160773282883956860443861644010336858114851133337127807913678197003464664338836738728372809072006527853652351109836475105838909071127639686791512582041523134725910877185926635275426305204332392668781668018437581293491038854031374365066481049078115957294093969314959149119102650724200619789431027560863161415891348741473452012644721012692144453190005001011322030781427228935890950793807740213290463132158298804542590496710646017415858376763477410582791367777718806986674758140360777878601658681285753308569740481978139553813533413178583898644854849517284060301185837158384252826254011753018026653917128754253756238562254498431375937528786064842333698920864972397725381052533376634871435890404767660441499232599901590485182562356296587687662423253115971729601669869978643916514120498950080548536079842003185512941743071836643851366381183871811761982914752783247767412007470342998193478176624216100789401754711677135003821627226703464019485167058654576316306497186320579355286195494132233695612908094585994987170523154235184104074300226520889004128534164093898602298906413166449407611537913625472646501895796727045720772429419709730231825336640458148025893938294857340323391502501366270686357661543487554902764165076769661558009471894369138802580625851674477989847141090356257564433958976335876342017714074247360747973166859315905418358826435613088069713214981507357884997681883176799304251784696170898292916734875888767812128151368394553200909088570684984194821472535542176412431721012897815634878762089985283240657586242547760067786434733126084760668031780676483877350260849820216016008580013250037664177052432282178009428919251762924173883333482955364253496674025161385458364677915882373314968238104126616872710195741772445886644029551248312674890492244760647373979456232334948514972403529784175005662105771578900141618142611543754875501468336207503167052141864824576628009734144794952139412224972913514931844881437229819604945445916222127805644903075162945473910284542996012280103178760266708174504969857379823239314016502987272800706714913620693307030971797083940887939285799365244410346076900828788172713545434731135473305393736316679360767706323532837564215325321477318273782150331960616311483716875999724398483312288751454195273031731242043663105198618170655125687509710254944845915117229919372887148950523443228640636536461241072240806548292938861185073873022357794948166837326260964760056401921981332930690335845155430070959538425672820822709123948423324368380068537011725215445814856277507761461303418832905727177650925655747180334946685912057918866117216116074312955270614296732389777151416274162826501598274764600036979897071684690234997239363839544013343875569476398255962583672001597519867637647914709797708747136101651200367701249206774983416168190232868530946234202284677419290058788627748228153764998988456484048417013830620863477104229353310902156601372447947872570699719710301051821266282185880751055996973896365237081734240465513287170477016889310065414777691286441794642493698610270330146801654987868116118441732832154155260208339345956723769467927975636205333496780043970018135092687090074993034650313708145311386369359715482419515479368073604734712794986923975373718400972263216458918295542457757922399485639307236006151416865731553455287183134347940987328146502035746401787852357402884257698543801986978447876655005269815354400677066456587498019405875797974527400849171542207436230415072735482018366171661441189667835987633900665663542303838414503485546058626307766746733039674806522990770113551432253627367814064592801136195082140019581470643757420452576050169341901913399152660291498558561377811089806066168078991604770883514894286440885412799935794103727965206083580948497894423601165522567720844110323899917052655756940978794764448522969487756559411682438318113453716714206263395507501673763916633125107102297076869879884027613515933486326217041599684495365125378144393591607749923713506155974930845340550392294265385022424813386433222069758812872035542411510459598837625275640705173052586946185699274383737861297726389047367465214950729808400411626573556280185175065289862783008796253097583421160956342952894193523759730746339910654238917861158107359386498256092135319458887503843715774636705229038442999774835765865584471320535586597379123427229938725610520494169169404915445216277104868901957610996179683813134298681720696037262262338825449768937172162339915065295303028181708489121860250988591290166484483409972260554882372312052176285825144376384579447886699155868330047787287226791049338776375572585360379585951734932924407761210824183409184630775130314284664338435857365987636936471000847651732109838844602380314528486565993500984230213477418306791596148720812332116322186175487059047933283444701005354017589628543687155009717897154121207037626873877426546330878070831179925486616255620527458717226560440587942309006636501593306175322521201015790258995623352037270646813987280466733144515819584592278987170207568661124847071362324350671332367678339482136521682279879232364427386200727818657516903983626625113172791645281335433386321354647574180529393945456366187126202286974878441661216350867075103896227214651054529995053397655151490050694012200856473724939105486025632630011068831002801056750211398353190773095179542833072852188622653501995602819708015341207919787374381212099880551222776885759291409970098136472663920514001193372965819966424972951320796973111873293853133215630146742963251781021900087347577503555731713192785676435032432804336701700647212146753044904530569802576586535878653617233008948756494888241212764868458974222681952445863802687718113178273391958764886040427152459131725317875528308740200894866954001007004861304307668763329692801344946422947063967088475449808847246853634931884712465035371232311857684454709122932932922728362391711714242792825309906389883495294656530348179918421158650647439170192059758985056832584335717335029021845954563733210063882180864445323563410138130773146949253334649955303880031720726107822041093669666692768356895533026218493420370690899483216657550360338306815378395725386999705889989724636203439673109645285406768925546812683502262069252705124581141386540432100880993994333917219440209416303102331054251951717176443764667805626793265536452988065399939690482834216239766919102709192069043479003811129849517579254594597661577352083530216035532847203822170718447725874194838767536302621729780859888545080524713372726583938718176928158124638152374140198917349035673622995532046245426493002317323569084339939248368768883945047296018175198623189127017615096132839399353039070170754854873151978373516744471917206299295046501314507491939370757557872624426408242758976301250199762792550573778181846017735557351711571689519430614173241941124232135040897612176343576419940723556921169643939047401755929918412746212225250986002347370676043517172814558384790550290422450591840643628244859221742372375755540366034875526145162475782113072471082985394634124062349209953814209293821720475826150971756647137861564985751599423292366212185744082591716110928954178783773058730187381988981318493391088145080608528300728355661251380544915320335334171788166688672774021976153406793596661739826442522712690052760197048498974907126493975291727996949586335201182759016068237039411420829464874379172968848946140325336756767357068085860074100487947633955157129682281627277217161044599725562682187263113789556485967413964822751230982769044582021907037912175586858785700192716403681797520648550240051933221411092639787785565796796757710346802857754588406303023406175755199583598435962132458158062628858518597821369239568394080431028996452849615736891639110208419712411789022052091768783666949034119369591838398005496027947493649390241409454362571797943618492963504244599746004088642972582072907567231856720563157968494818015793682210768667441470734786980436430836949046094801526320644836528353291310531846828748289931703307926849972687320038078185181230585880258764823324429503019297710461092043513610304056950161085530960394341092730787844657609041819226677045317086838914472605475140103308380929883253995956690674108114103643812217061460136510566137274666781905636010442836280676278722725237025953244394621600102608664105987224170778195786424887578792669804531183660528058570587275807511867110732383294774832036497357712622207091117677758499632588999905609267148638212093222958718582768777326891887293047392859146562854965419378532335621616216722763602876208724287192878008698385586813899266741995459795396846632382446440323570658158230275333706539924573037400177139628204813824676511333277423681150821079659147876372157226502855867868035680684148863948616414556851710014170576644253315039445769778459560502929096411878155505309426477878019589694664802829466958081356699364014953273969543904422127204883869797690886059496573603216354595820366961183983844149596349182222729590246363696950251788423057836179659353788621634714577123623597317168385970947700914360386972706950801749666216683606592107602194605769022571495947403886690176136465229747051015016728988705734649700650829462637829231907127673895204948669667914508166794355402567512179626090754542271984233808770541188937269149410504349174005565966268076563365318886638511437338009207048543728967745764927353435928069243891041645890875605897375161271870432955125476697628915449401320656453955182767062288637327032706404721644664710005793436516911154092671852329081276796543923816217838653806854689859203903447280176430935936881795581955792630361975199264945880593301841039022639499361261253274478344709420412213198880435426052324650625642802921848111629640863671751072026174818273399592896091169292851862334568029449243202342014837768853324793550216819349961925336946438076896651468201031976118616399494792508492814182970271885202861670122726015807442139634614157671666483823911643353948222102594101889751757846068084393514270289077161519997328020177637627177038873633283978426891820593638997703633366361162027814728068534335441375123279422962267954200323229880769848057394656461363271941504520376689774968475769440560059680456784015656990161204569243289104851354402997416335627123171473361951936125961048604698820503140327972966543898991014449804228337531609063906015180991475684057947112897666832386072765913008778345106669447850265486812364053563253022520028146231665598044578088955012638252212972709795649235610494049492307521156242732867206444708369049839755609247614071337298473209020754041156629950934442145399303458283578894618493589541210935222184658792455345444823321638310644774367637956878104920370440944344656621990667875555470030623551471855194674329022024116992656301805767102941511151919499688107974625829078891166425153766585751507654217991510085670228039363494490559836405299890962183084525687389753431444117127316525217789368686781070335169427825582153709614034138649432250931396436677690653404507959250067514387112446240483096489726725691217705087083348977429376434264801581304772245198803098011902435345395568980534863191171722328592113159012223200371517571870116011630378166801894024948670761328581714253163205260468414912001663327687749852589003269428743683703533367645963097022386117161658852141753328730770535652836203551472521739734617230946255065095144971602183089898174118988462259603266482849058548260440459558367548382307596411149438121947233133810878412110062987186217581425633790353178370380527155371251735764635082526263761111476704472088808804454605157359761717743946661770057258978106834519708599542696310556162550778318041073771413281611749121442132480294183632382790006879430934925164419953933037073155470557171320931826603744839265415906077267820342255791413264585499449197695657556683663831322287261992536551153794253209800856759774670979170764291436231583886692020873066020990073293854644049047208372958632969583724462513532562685592918395196781732889897356001403983525136771764560610854507440180557121344756847804810224088506463767694738089913032229727391562160734363612170376191520753212946205105945952847707427019022808109423299587938482479753769491533570223139732436698097282036307053050361381452240502914689590008556058419851552621664874830130289459580602298512178382710116783618051125254360289081044346659533649081330838692631749634631240134419185811742375987743974601435854563665896892089507763496163082925930079539050593213138642863290874543664292803537253855589615305773814831685912173460591933241075002843347752180164843187523775411734105444523322200774473296397746390591255307257665612676713351192390828740127981335572992499844327129227521736852616785243413633124459582391930922240263734550586385308947299391156404025323843542369259053228971377455255697753940308389426030277107356501969829807557952460438315036636271918553915130454518656694519038213685080006768487106445001080534417783577792328590982469517587287294969215179541475906025333597489099916614410560593484213565341379296864273476002242488391765299913199112574430519372944947443762560828843038179847734221567912997114507952582683523851772130135500236106426588466551297615939812336141322290805599550821637443968166493878649950671885301403630307593050123370213101243690806390743212174686858735476972918784045901310993728711456544710832116846423396165922330852359172314433746111459994467657291922403825187928501474475109533510361988119010694851423865986380483647171074891831935449453388353038549676663262529121822413927053075470709062861681243759771341912888163923362357996282306452401004074936198888085641971180212527729212933425619797568327238568773089140162158160811283737726709802286415188830705104259745664140008250310634662386758181041710358367353565473537153938351618359540212896690123880028946973771900171709682580669095947858626583278435300607933936989801947323973829667348725662727882871500122573157414109119198194898761754017986353210686856383402737555643562652420470849636155701197687009888179260059788773921232930350874989160352451254770502080368856514415578206823822484021253156235804279046481118076353598211124715622878975157843754003085686226433032474965487381974449864511885745440484607395445126192430424498257635635442438913628833668179314286492259073179583138319329100009392918500012789777826795771545709522074855903242279045116398678601574420732741341534042161988624035805170014100954279825688909556174898566195535044437274312733528910599584453052748675073421258905385201611184248313921844695062524755756576466258886282307303004508697659764763968715063257957778924416031334363242844692454492308986831035725153195409173449356056794589609812969152471265960578713273186062566886476810901398782007346095002642197473034994076194703918669968031003007579953814407691555541919302073594452729415261191785513482056109545040454347117671305826462625744018290868508620557423874961998165317188713127635658800519600013886255805842557441588267450305047870006447317052516629235601257786359675519770783020136425585297480229278436965285099312650365801887397553482584271870335164203785809148583442166730290076055123869331245018242584195900103506364187853483977117807410862590228198044087549571375436014559785913958079231225890068621345394819376275620447934651931820334587744316454202413054569070717750296778486942844056963596523374925269371065222744764760273513274013379653508949644281256512717358705414132373497617656428505359910811988185688683681255260958048705084821810646525929626503411248125984752592622206465777504709437711296391580169966396329389390298991079410333796027455602528799433165526171689593089658390734610362630490830092340919196828761334939583411806531688418839776136734401157632471012999480348850666023812626286698727655405227231026161266528020743335689593251951005535990738499869106549191165879332868055126525348609264517339249666327127102356270485635428999036639883796346188926553367086946069737859510033881384158955695485869653354146396577151506460256460372124698940907299387802002786883307013265443096852492399291312210585124441386827347990957647691359599260866352319781522198929178234094725812780166197424823898229518992844995032622745378105076832593747950935128062593239078129295118236378208519647936419095181971518744348902581846115346023363489798290312639970832646635443739724649583063739122250690899384833288036615920572227675197703015404773106964123341182756715339687982673964514643440272666101287924226336506737115117511138128849543567772267298734962590939084808426007705823714730845134626709047520490100486473233610306000561042627636079369760101452179731745466307189817498613672796775111623797127519377332129205369980544460275228276295601705724161119810557181294679523241788614555837871535535412634775942235615062571439464643185305496231175420503055534678383936041847511420384252784902508825818668352680883944922895992805791412652507208529891616421734108945071741854671920113791211735658104888114772486126480080551428861432667186024822994941095369300980827107347676560465343140790313000877770720756964018613621501502044345403688928975448335052203369157445376675708141789659695348165369041835789723306842623726193921952794526008550981212240707137989347708544623269927884588202385408128684320485737110676727421766941190196733878286493347634682872208960708294023512434570266138260216894419092578340232266437627949863238896592309309861713124992282972391445656901697627050408245790570527629855604548275969444918955195685756336728373692072097669623583077529655761611220471277243513444438842454705727801305208392313917943457454637439888018812027318443031251626484601659357568754651480917434532410133153611872216632528648834478733867346310918047163506109269376232213277578222825085084131457332743299049574589993145172389780817459182623352787095315847903829348090928066445929765513001789597567450275137765715426943707694264892975482107770362175390880730636349094453871095390792540584087900127268595586248594502666097746065701859997816615965535392942194247501844372235436433590690758406634108026668472216399234574015252448981200817289272042022111377317211984440607352885713554935131381961217568392197411902529735253048631816041506747910136091067195778181538155484337788472848000090383334535806202419896841311668650764523632368904970630487320626553788627479835097164957629577032692444368068916620892767418020533952075300255588047977925782204705991789222844401831463029333958823726059206847717245022844074156214585461490087436034525649000149416544119863176317798848915902560795659360961913086704899530047940030430349986869947424653271448318554656954303115848314803243518854645986035894597139901548763787189706098290454788847786857926689067992936291306333212787715375377467643762674027960695136121403953862732997156289681285624902594745553137672173364415785202809517086246966738258600847811479704934205851336324998835629025729607296129351506303455164093420222105465178384354936571133481716433397735582615587383820452854174473717934437137852230439588838058982143043634678599005404712928595353607511328843259264309007408638193525902338639454567192186712835701040139919175745376253282462494211068316797828252373824919420982507477249363530904029998531898684120882422127009264362378954926900607717431320365681621604948048312261728837592372576566678783746674391076859237370453174876818080728714086319411982251370263999114142211326479180094589957766790960133167983583825023654380685320342892025001479522871778829621665775102723234535929583733423018467333384492569324655864894519092303863347187677061537685390872350929518736150126247835511460289284234879702364100776052822542865464305455178371419558769159430915785209534644984727551353261303454085747212192979334219081118896396237532298179320545316475168725155932622765010704581225218669124572551126456059228834064906654286195884134206128641187148159769449584548447545062941980575133626976327520361485960029677629832187842110337896307515568459783122826711381966481817196793511094309005235520324370189978650025710284888836793691492270866464858232886332163676699841353161892931707016102246176624307645084670306765361360671455622986800677645827695942483703009095466218382143719966078646917680745375919983018735703794046500360551837920630805935414462153317122124610490923551453329393673269037304060027339937994402567754492094571340590592468157376445794372359821321810861544091018864996481095069028969449664367504115348558580790674156581312913187179326786485995772849115569186166558030492802309776531253681864223377545795979565522426684266164590127244412944352184790896773518086372417389719679749068986509742543441577527159910001903019467410112608374417626789164222978899952312083372166022728043511963014567119799638789925883737318239207254923081270685771576205371272775848143645504230054634605216544672674082969415913669271063583637078068529913285239574441178164597875253964635275706883464376175008968620966406218715357863317280387633009844869843318997777879853887654452762715410125049386991778963385869421538926536184539085769343764199551368779454031022119728067733141287917085857491151895932023296081080542605487004534987232580687171513717678121634368019409097249799548451510075886323586713198059068036765446171096576559134079484980610331002457602682020451220295971241402000233677620563210274992634717972452336017186189635180395970533401502811213677062769901893968062192083390647667646717071400744024019249955815622274952647924635668550324961042368089806485703143713298742481488438610781794712636707747102500107135943212935906919247047734053797837577124410033740881968981308876140429656298622556678751393718141535532122508980827513753749011391467987616237980304919803094164315516831364275602637056092702360791046234524266432710557270138399940958860364171641891989898636095321088722296023785357170902687054271301758596671478893512084501787054074595218438212569819539519427809065012961931832848910566321521471916463454644388264041734407029163467453800795062745425487053133215169266827996664069203811896893737031111394472260215370881805623929275503254293999046744473727785760792304159526093109969148889600523137005733203815244468750362689050291553524308705672887716462205453022467407093376078744104753335932081335830577182047935516802302617844974763263597951086912220429085421111300780335531656069675536014583055713895678785926402726994514731434336068841687158637889624348815840475696542848962516760488726336652711637965728211407530864244400615938638727151044301692426692644175160788521049598712826670578669680672611635445589106002608176339217197516275342868928584073035117168099776867993707921501983884438681727959586457158198110545936257603741274381780022018937219907656844359820698864211230312092117713711089646462531961179600061947193561717996261202077972516264193033385643524989621971780518715213923033163567681262093837206077668099537469305877214514452740483022618837796485163037277679629250875424543942471374087667751725127028420642949011596893782640878330162119103038481437661066575717588647417422148291001997999483955027895671874970542824530546192883672141724860434150457159866733594020749566284377207822259540757094121602424564123684724861544808758406745336894591351555421100277098205932907192917859835151002440354239793994058148888755132323741538975394283849892659858720280342225366954267064721207470168153492637252931928022664148912760258834301002277229301060199032415680235803069892832231481056519306362130291875256703161473123829073761697645758108802814961355553119266374283005503096360012109862535458775765827031586110673037711847173174629064868047387533927656325217865746322255640259648618270589713686427482160762892926258711395900895190519032788600369491157580595915183332654880719306576305637302311001952349241359110476362381701133211641863675952698331694111676279073294926834189143714864757446798506342053475597261969439223147844866637880898917734662883171187140696016960346603094377964775640644286235916576303361667371001167048193883442275829491526405938707081532396972129264074967406117187506461322067652404119993232447821343687423497490898300076811721505820005385021038375610078279190755327590389560528258707996550375730229592333991655152546600630548835113268931015538862863843269267517184525072782409802132865380083352262394970696027549134713475535693356430996184029893917655068792777837001053492826357774330563380902214191090544340698196852509934858665781182831707645721639134517660808414980038797017764152293255995694386859395081255044347669913272122296220250149737830190332556205219387808894370968848013694378591829587085219194505511283314757797689699652628140232531563525807373661875961280643819584300421312098751847931159444058718034932173166493850008255815540843263726509258045671940839794161529438551030498869799834323578953560398248255083284662708890851917301018416287035296594874748872280109237792245674357229387648014150876970394268394487780767445629123184803540274805984760862132993631227618436020482482830387724244506618365488302907101706779277348072425424656147933270470394683625463984433542977497032449068306359501804172767756261722951621118409964804618688141736757460636314829769378177117760598783662329430888779687697493392041861797333845342236592594421551815223322431914088548839921971984733968705047035088211202591720348775488442595911966615063276648584292601714414694849390494524533868767014018708576068446579195945887968766879762759227791883505994319077455155200994684091648390661114157312565055723539509150966115954081222298919082900089470312432020214004052215197249085609700646806366753525568319979784381288490488804799904165497605947152802330479261526152321056645275310794345008988651066443412827796917123663780387213888911796506101247357624439315115577175682371360052829838310182380194630924701590290005393574277351319498234408156068770656593867516319874867637784713368092504109574911054120683436564160391182068086725829395899401893335687142739787853439109920553289640677089270373454418895286846401440912807842456596085394296698920599325355944567460560213533898602335214061552933035594281785743477544269848161160914206968803875365132410264093136294322921190469358029390053585128720797674961452022697617834421619699247799838259322032983188813106422327546520861340325567378626077675648340370842483428445342547256898256859360620539522112890394379474033560515329064647025093620484941877279682309849914609671631256888076910785078263460479391187803386559408484741773644899217421393213805391082153968165903090662111053462129494306152393763273486198678577803753495401789692193092772231903554814580886309141482606736246180021129674201573479691352524958147672379104831432925132733748707485427698305957582598634998326178764868043501497093456399425121503973795198239145471797973528206037349897627097411933292523308455935526626692278734939303977923059599270016348255518478117623969493403265268765388602050555712069364546609420529750902553957559487663507671381001395994682870960709361246129596392788338406241312432570168779058445040168104174882113088732498459669754086177544647608760379215272512939299319966058869285623208961055925342667629863257845029242119325080065723314866768606814015374194968829162613863792289040814759483494737878185574452562846861459817828466723354782139950112392972866097668866666240902156036891958561314845274368267688309546995064711008210265706597990451365764993323508119378298654524853545766959753139516112226883348214628127757123996247993764868566760063050281814275357842895874321206327097245647460942490759361540190290459760244805623073753303372616886795611804761549107299377652257829596273386822998856182768586325924278585179454278047019394602399469606248613716504589778378338204769048681048159394906026676198121488864156646529303342037876489282427850185929344889062556550796106850466126419027355115833945021418586609339767194660000083232355161936900127244267679408870750348837998238195394347906067604310766792514355348622002354747538483598037281117414554152243218416881818984363526335218039420135159829250091784381491814511059361358142491234169846275793570959591165958023307103414633678007014253681609553625301395292406244249281175982661522942884920893747321583308719437995208030377434408951510875837958090516669651276176315792077751420203050661783928675965542041209176019086916121986749007363373742861944124161480534655624977122646255982848581040774243025971939768532714936334408539864442122325918268950837370318058870052535178704121528108541708214414355049462638797011399224385903536323874044845954117069474567720316994004317974500399511041646371898328569536908768672912952387449309845842609988855193649376682131836444196405687846746802148328043226404232507097361300777887382637179084465546930561303006970318956904186451420073168956576709679242130882262939040379130826023150519727234498841688314469398900727319532924513611476965469064396871598398099055633461849451327765902218567416265045896351614651992140064517673674656180501459157733120263389051864098267570959353415402253952821395593595646746133869449256991995403032432960532854790808823463468217179143173792193269721895830392124639615793550345148930426375780333513968415301504651634425810987379835580074193530399913621113652523869824464971253811843227816978886037703570951890388143253865517126842023846091351674402816826482664088914938648704423395863351090708035046869397479651513705600371683333643778037514970990997191801502244337993099625448301513878051918201268161504892495908034365209149317064255612966932251468009958527149828883729487487766449178290141247264727044593995523435131059568556575178023147299822097784535068829789357412129247240613809794615712104671292957675341827984099632933937559115845583782989949460860375617166734829602173723982519348432881836539600390596134497440553432622938162291344481352724029563577049848431023840076289576403300564697983531535889575648140127347933778367983649616886711890717380341051890613705556320840929868516907185009043872533877873644964458740551528814222106776959932511574300977150510293924451113313706953992089309396842956426450073632378479398742355377918653450596784425595301959930954040887538460513681281029346436927073822222403324791587407133486261362228309899481380509432688213402549280209066012180640923316710366089829533485377882929132456679281404165936638690486878108756319287507749223282294915640149199313526691277678110881207282218618256295097871207414341831182898030665306379192062238990246281128226202608726913572979357973837763398037846269449447734797181294737464247902783818570313437072429242638770808369904686379267783110961894820793387141306773436939337782123133963813104815948828476850649645591206795678149051477260512271531081801525215937115063300328404590214306094760266123012762373782900984653649525927831041510725953029128300687816086170692896453392013162107738724209640754041484591517620041144527535650722472395206928549950282344517404742663624368282404085293292093367740198460847265671300340376412096413618465211162241780392235295055941885662890637796262626147357045191538177639969121227282719401049797484325903087544253219207324042276931521206443040151799029744652780463511367840651127642627048516502494666789386216696564917370842915795413796199984193559673849902965446246993101160618252744275911278485181996562953262825741485963507616030148099010777214642280310835374288792474431796600834659030836759625573220554170678548869915239687002464850886546131455415609662006649394807944855995648694319016796828611130722852919370360570079516606766539344771677566537929353912958959630104490039729521310285941188936757726679907994786815114665291182030867234257432537553475173497272173836035722131229735067863349586875609345637150260616893436439008857056998355308621499550042670799179994449219345690251777749813617913180631880445449175091941983452496326374303994385397953470380925149849220101606184042808504374028358159808810799436122513334549845253596197455030778770471105645010899443061269615686376015623474344494587845432885595791545983714630349978072382330631651058136000169457674623884492137473432714126666730722812628102366289001998079174445284469585339682275899032060652379564019348987714161520819509132480861432731184909573224158727888351983475034042763678271847494904936388048045184888777977757054052726371439285556815768812963993967046224754950830589424442408420489720248744534602271919984585280758102485826342630748644926120761754521072971716728882890399794730514602900826985450272861003374135516532989831717279452452399326893828609461343025551381187596902429358113602981381226985289677047740921992608883113670128642609003738859661792464396459702299327026150273021652950225377284999064110795797173811964309998355901518034706915478992525086778399864193608607624758300210410520266648529366557456289224793348362227128121325173781879284910798425816216882048203965414606590236163976909894645344986350544548221031469864781930284500492115057792549580427272983470520070746362714127670844632277311183636792004976638859126779729203030522772587179930093745011055569942955499152878330195449369269132543283280804375079315054547337858633314960746220806417199639832747509889449782069186433736575535261550902112166069015390932602404532372025913317765757890172643262732626567142934986779911374793639128008726505724486856982949862243764060945032098021223794670617542303617736671792486644024126609123134773310140797177894035312365377038047260017262873871243876075288318578521577608154796235712339711356183261625520883651614336012566818872258751723436405515887364758617648809848084032714378984138520865025098671299009149482885789485488099752355777345964056317032965207042494135083246205878685274336738747900409354116673739794969285691493472632641679682564083523659576168532932557300168207763013974946034735799126654849604890857337137582723137128817128322258401120087433750959682655109491965533254548913852982967825285797369857894282236247593815542824356337408808922617932638131042488194174268836379794374643292185564274937789083872679636691861389143054008338527490888022859206160227168882386497578636656872644271008174537845386528860731584324724084322755131902505437786458107171303262527468549354147074035548350218876662880186058871601907449686046197251801226867142726500882536832226727393725500343305793638545613200516933458996909395222644869702723000163135345583984020808448802814805560104430945572490649299482499678360071440479539494843736102602951888096923655272641120214883164461941241059372730074540004844804205325531101468249795743208455899580593999091276643044235964289332125956440928101857278881393886620468967282667571448078901158005899493896093348657158195719748531320781300774251879311381325102102215770321322683581677625880877608922014503357864272160161498418975196888285119406002212187980977924791961501357421144484442527161274453686136140090064465112158042947904904416756591274826842543795707074662799478961089463950303401696757727517080407727637561419789047697797289425896578667954689714690072650078499811999234884703141618940076544496386985304110679515705712127251195036094715067474037401078861787580237502338753915918061596193279012584125782052647969334333993269648015130986837621935960277280531701425757728864419158234798051483994956781562543326932758383194294796586500595522785268355439505256949506348023201648263379896888733466704117881505788551522818765660025169212350459822199501780452244307395443913587704934862557572075300843034947003213391767963123231916664057162838903021033938584156942439921693275283011785133603083605245979808398821849527542900022383255763973910091414852408664631216986935595545352223249229410192971466939669572044101922598566902574326853190054182168234970533333989554967107974331708869509815787320221311847680354293955031769956986305252425577918925056289718441133737101496731557801994704863379049634930440978687048751777738932748348696863217524864444291644821234245850104017751327743133129164766075473913662604399876825111197158314304520407688681250187398949083009262873967109581841754258919322565478342681405494948129611013669478125725361596934168782720495628328510191252881744763727906014550975456641021426977372858599905628298498127240660083167390484022376428485733175567708248992445043584148374380720142049006901891423579486625258455862969381153867105999772983984087986659192689728875972405730296224170810871634021529794319442209033043172199107132900677361473352866612795893656812428545610803340951437696377013770962773407201441978585384738454441717203438360909641699267778438335535597976925216765292338622439732387223037391288103869631580991989706949996442096834059264920901177037309736212779055656063801231652955443144346822413785847025552666410669733045499887993373185672923906174408040949576243768506573582166722806979385917381040672024493568945585114670892313040249389927783607063014204866351808973607228798105876852475995876310243803964725676951275726419589346278618166659933322669784677267427395264819717894849133233287681207957316971526785137557083561965390416486528690238365248867875969615476217326410071278496994013742938395107031015909570040493189944672556584717293430606447839304467216874474516584454964672673952988849130770260464083104770509163983636442223136289228874198762076426870823922864349318989373230518217568649862071616257767879367948066104821597759803245146586864010108100406633437759374330288361166520698923428802993497849277550536751923170549605742582124987843504992407051782359172944405196035495806717856592117634054775003010159226572172553009339112789648041944403384730770534718252637890416913785755100654541980484772399393327719666350382088724500702838622295270669069460564643446966478934779739929875110217916013922974437941694388987644438609833157321711958335770840843638905144672148237338302097694690225349381931075115007544531393368590935616578155068727663602043197305994557144082195011552469107132518430265803149516695231362885841211179119398038329695994312679243412618938131230640033809080994463342681258797633860362809061847545599409788260278700320961234053163578717140294532887240599003874665293422503750025083260617776798117832519016693196984410103433694352506216365206846824086534290776963537472601268541373697978590078542633455867090384512562772687292202614484940599374119421848811117364289682447428893526929421493246932754884680990700682946535670911576204945926178004957935400523265870969742516443820509485324939833865989319304723958786518157638324856407360791621606151895651581466477691464346311890800321028198700706255593369171574768142425110306590005794658230342564515046955746384742054672096159886335656511078504763594126740552825812169838099797317110705240931835184495700038117714236238404808467534465183601298095954948585939829729091977932786074615623489880621978255043982948347201807717938139234563874882120156112741007012265032276317776659143446571091756321288332221571116936311584440744216012854634905741015510883852220453100106427466713117896312143391266139900910793689613871361959035603943204566549104099457533135064961447841315556738693309321164079405003265061765753078552153156602184503200454244240008653109889253096538943279559743325756068401307200639617857487939236202266929418224139693479246348426478504789694407756015176552477290792124011020793301988740316064109768580791696585269672350154017379296232084781501831481044834565415710091701257996725053815272922025054619375990484780926568790328030346227026980885317137428389766387075616490329085745287050225719905465720209280391751935290653225743082519454040585999183633233489632423136879889471182704839473160318427572972729993452138077598588870198506558293396911230313620002862825781368815745920256626038300697775094722579080811101427791780302573163966139786377755966135674292351273974100163949661880383399311984584472017644146256303124474435232865101525327642893876441857555891307751523644835940079321226769826943530782530969873066385871536445472854911635035762406430344582357907424519946285842054218051258680296774953809714574195685908455368350551739522903604572156252340972500125222377773838408678154146744158924242500561025370343254083466246311428721131815790394562897860364835733800124135434231536060808830884418942507892284225845790722389397573364031726623010896756138863619331243457394235640830439638475794419973792889455160390872929124587117984383790943426895207793958701564639379723095633875757525350591419441487781574751848560451568424799945409642695585674937001554239747618878205843344331280650396707302751294613689905453947580331157486260736845557328986639473870285590975004827419441381746562902043746405427946931362905772997023843159588130939524018219456026589125824119617880952595361494796379969660464232350712154470172625200748215991551328787046225943806874006908721587072419471362718102229196727380905822952927462790028797051788342707663516314010059154748876699702095250934194148241629542729211726910585251695904023939523567426852021079836913156753943755851890853550989658216303377151568655206565316811229851795908144919034854417617089426887376669086800319348434343123857860931543549112062684399719248718983055083285079200834936098512002339846186523340771601887540661295413890842826106437957806749974495289834855590021056449519810996939196444013255129569660688971296268166921869655661479244092544902091376946147371294103876535863731206991161025017320957197371565617372321508110398835498569051378511999786799608615034807462173617301408887268076331043504506068665937246300871167060255140407752744469766104167087215297720680937741001753245690636240172688564181898442862554086022152305526642684212153078715064423762151108017913280176621767754433173396719033247122030370641220333459380231086582747604133276815063001701418082847832026505269841413824635775520384911824630088678188750926065927992604648948268631591891783460813543923601185411003415026586203028245337649801017470862946150794113544716069459363065558249973992922527333712532954371580593863751564973037200251753880155232162233574244586569848594974327232646911395785758692357317946190472202586335111832282656537650115706038589759015284890629247608345179070668651145509653141654517768160989631268439520532351766517765987306392087192759995818111094599262686482836901799923474204888671222150241381805153265851867195980652981084185688238164432699152481800791982219597972876452008958148193718987479591538796943795620735378999249594375355421086848908940896212420503144158298245653382479988652205357524637239534507075929916262746204554880998810054758582994606169874757347878392804378314886031716417289511720793389048393198153164210221801712352325683603314214922658621000600962576917951853714775170141837166056051186151195794576213889214955021748532469198857798873027409727928507290726660229707201159851684032940842788601940358378558817945807602161490345209439737500934745609130544245569780503618169542312231496060290412484991300944962524457967168097989178210530893344998957926741993467552474063186256533299127757628069132421662322354766181490290190247191547273307129778526665442544176841856922725350055179228625291711867764297800195645862117468523572595917502971317674997713970046655012447099694466899200722798743988791563452773441871522064817310000931261698190259353870653883702985477575663291705757599262995442767924912804463146920478516079013623443293095541552524607691851459263361860531475167118317827130990728984760704382387736618775778395191210880777814919582996131054091971279314373191307700710288259678501727619827857266492881299358848526941568396494562997637158690830112143863925534043974728314328533746751367732573612988823668259910348798313970606127762190053124148270253517507088632179959783630911521450769458308197343912934358529138698290753594709549807963320735587130534893574097262831575026473630274774569035728742742652146981752445406741267987753311648432930454691179643643339641996196671398945257874436589619035286131108166840566693359581432509950910690102172220648914947788884935654441497278097082083315059209868911893091385585159788990685892432081121353724645211151276825079827366544709000375177056928916393573145319973062499575976629446623676766583219483514213047443626734444493499640629007459991696274711659046789129492746469140660747947587119973723454859133924582541817396091712278770157550412200342855579056668213961245541706966010433070062275452122918064609502925320920611439578111120744471909855007117629246156300432653997650054954714575121428030000538882953745342110601989410222381153170082667547669982014311758484208292399969863596057309138123544668230457207614441892332582532455119119413860761974664459930931714372354513161068320330859996379181078097957818933761984252160531847985397065237450331808664131950356573383834005018143325491645806459774324582231916651211587751093249725539284807624512395752844569759235824361737722059837088377337722506648593188738555873624796158369741046215304818496947445438278731799104925413064890668510034032244961837930716087108192133067716269236096382624128009696943635414350203980677748566767409468904306290388973221192675332440420801423619110855585602431225170733640683985117879212429467796948332089180462636829704460068725254591074833455093126734230758741848243897041946307944471164879884033911209851012967714930977014922231482744760288809612998478910780111822081728413710992729261155710226549546450883484848457336697508406833418287732934339014141100288903246365149991097459399369361854166081177172354449483155754762035656018448438705174731351396748989952670533064691254164291729179987523038767981200393460882047011580027832775176160215336862382673501869854325960528310826552419503491540323868308289569195948852597623445958607377217407622830992092291330508738471041789952378072214389249366774472042164386213323382514374320461009636926744678521757244204962827691752349475566737269403335338378451762003987018284741521066275632793277569705109293821438878751931289984251764704672503109643710120198263867446643861541322584258625818711144279169006607461441551218268981405769567069163734418328273015634379539211354544823219645802634488635369141044271555096300006353439336629290878654241722760027837400662406200763192102894913428620537657985146502235192212742309754470380875276444990058092635905578987790465480618221431927395654834001424026630546593785435470717296720892178080993510626528782102708385563490404077149798808692353569460736615461228554757319604095097636216498798615947010749021240948511970306921979886676017811786280815583271608613147217850336064385608040939816325247485326504590441785371310024967208364199264500529747267591367069812735381455038061866276674647510932340591324182038799122809674773050673977779331433191008857304013504640924761388359460688735418454464614646732066814808488481861507972990732121865194923844782453268128018992514089440781658241693566658375269626096069526410535898296123990781809480888058015012266956124407033041852971126134955073451542845523264525665060497408766871800424601377686360322455918604791697017998582241473637582784292718988244140001639402955151811081732071333662376027425514790500255625567369097790809079782159737123977941868543270899716608934887188302037034792848261353641782557404232415080772760287924333235892138128353550186098717908296792370796699631094935683522101670089381206904779670869646362952763213973850726090348695096738615432266170132306383140452683942741371479556858803666299872624250320941551098328923424103046649703144594681244192804411697559476397584927852132394218905944680244680559905110602780977426398641192011488365773544256647166706468191291446995468679650543976062580572608476529885208246366045268948089706166873217865639356427631365079440909156653843445073073551497796000500636504339196080033026107705618270115619516958759696879958791193896633639058238999765725511650281771775827724452060654243610996016084913418395817139422921660650008087579115153864370005750175340835562236723667663860336761186472721291537973628927415636845308436619508564480619601875055985138127657575951120703986381941491110972018186840128338962730296192086318365059580888978021202660121137911856640487099224712094750997297263614821457444776288042964304484652628834542871441291813256111086517813439249452729521079249482282957818767987039422659792454226393833155061223240229735756634980621032947368389969105955015044540633744110976476578643911934635818027595243524173668841104945997765191841502490405815741647642625164065230589717864274869726118669562476266026605042729255543091630478989741105502536045703698713958215098705246361552292218967178900135656878576064394764425867605460429350398996193581581256917340567147654257913070559758858576440779296797441621757464865910917451099849904650362063398536458057983729337601574105192447435904455643968864011207629640109377151596650884954228395647721532047352682325793217390892378178090119216852832640349548016650924196159230888927046955634375457700839579135108571914098249995439695415855439389461878736399109280734782433107394440142358796881252004760769776070004535416373689433887756892671082430691094376486549164290836263871382663234248634482587755359116276154652220449963752857757774541679169924019112596847850596004587115621903653161114255913609969715872975903207503203412296874071373123571147691399063193656467388282787821562267670071825358062872875422096027323787640923971411497427090875843026535936693926953238771870045880023021771704030474797236214471775641836366954493815075699144466368417782126473252349913124772764999480332554856151580271493560128155706069793679687604372796953629230795427631357194673920521530581882872482501782663248641615055855155170651563045403648595570139788097665137004060780875062462341407301761725506340657894852752543556997167013659317385447929906889283468896102793408283215730705867573888357129229001491387383759596764687392457960452421154805700537156014126948512335038714579904993859208469071308799308412798608654256026370696947041312200446649299660509589244227238911294846786398088261029885352130625155494032431673347043528708435422047328823462497633151920353905195535277024218498238552812184406931707721975107614735189861733176162018273752524920366843753507693492943524192272228698254594626907106549475039570399142581030094562037074290099011392814852767512532891185812776232794776162672308904421632752629946769179519346077179041277465666919995162652763679202901854408065024964947171980584709272383057354352463839315090338634962597592467077528018774504167542028123328425733026066485454832174704702176682202130890914443139885594102475221664743541906457407526391397859522793077153914492483129678273245246961591858187492735539951031031700972820029868016281328318421729796579665731433680821703472474465256691316112949853068245586725417763985728479251862488399012151115328534096778126831815920265468273442694281247264707080815657683141349191422529055339317073041209712694567898483677506616099964764427709688158593569615169163405962537915479169586990063903620350015547218515092603218317405691854960852419877142698595102526858736138814681946759554577533540818536104169079767328170164792019375006479619138772366331293327424850546139185153402402219440721394106779890315613462200589701089369237189986844872552394230101090917412173749315234626192347615692798942155277544645684510661669241403721078117214716749979269287327353598158833380577577699716243998554254925930710825244880457134802108329690657808508408743792536267812545541647016161979843539404867667850737091861916055257181555969366643369462463155923773588420344482944350665125177985535695196025920813504498650923628717744866218397422514845774039290165369488593435593432737083605343346152721135449177626153624348968089284076029550607430637893391147637057690841467569235018202508824209437977449929236757820956207685160941439366385820099078105691674186188304938830282990225931697074826470846048877444373599875911065760391709586616381464630720318155236512816307243670487175982994364448506327874990982294456624379169180545420749271629376998914053700988644932793622543602447914666271200604680625690344041061353586232875403945869098145622530657026294228526893474588704394756374527379339434543808036918773713494552162352818796152239675707329733519987291362237759628894379748007127646962438572029550219118015054130499021994334414245547215158087133684859858640477813271859049117251182986997185883268193458515188582705448640839220069599975046634769661629558278233970510662874557027796179925887405614034519241972301303699538951974720385529284294497496341364469270131004500184618507738002427046295151358843035584652835173448815043843919817733814136657329898297352390660908523261414641741172770867143340666409560905639427277453645689009505716887401156803147924680863691071755223925328142874303688647768890502653486306910811459298644076909752707016395272294601203795204702996457583934458999434933399071100051398074019082248133484133107049049270167896980767593475397781073698375202024917652570509554916981821036782669751504830113241174001085651254230353320579134432047343276269942902033197137423227456636667954746261056957346749887885794691731706215143355754542671747243703217514163364732836273741516487004617081303469078261959515521622894961194869720264026303828242257092861863345910261475798423886041708331340346873270791131802947905314579973658170425499071038643788741958048904461501441554190510974493150691119840381180661270795100395799729293668299433003763666148529014885363625947737136431065317318983383892987721619934783612865078770766910230103993883593341800324320319852127814793864255935882300169187491287782310828453671598209403318788697770265542921352374283295456105381609334461215056871914903311979084846872286951182335757351864219484310565693040551292985290014453131856166320508648748322642026600413958952572377317663316259648109267904122206001744810789155551493573904010355775109063784343832493956586709430832351425790603205647968170875818820787488313417402170568598961756376840124046035229673630151951597572964559877555525741917651416061385911697802001315838360783928047941459751853591943164231950972069053796544660368817773074208528015500424342450760290201004466089566851340443434209148316138239634460560824112005974086102425634697434911496449165489609872293471956005909813545030823051266843029130271649993327025436295853203145752143701325062205892976571736389332899637136517524473834323254465281902439621270823901997837697849426597826326954242200045357539660680201994194997040833739341465270067971264904601070817031560707543176504968896345553447870371041572926984647763358468886941566565279879905748233222577194371414830908738556593800248544684293989510720935329887797892829250355053797474002307156778624995157291109714370156667881346575429632639854632225286000885998435262542088289442488162821303984354079672115003600733768854941924900445947702132832019610522081607443080496213515904088237375385773600383165695003046797917839261264925264338759024466151336210771586290428126259694817645278186324868602666876123407000129611010926513061796322188206337368961911605284746460039042089788367713595659278184560947020205701786316837336289914487804538053506067927307954340288578703109782567033926828796726752287791226862967032304065879259886475762881572834584881326169296174675314633869838599202125034407376968477657116467632445827700976090771232852454307020815545621073329608901801143945614251174254836650586930236746529047103254439581253084416898085934222617613070473529421344168940546688999079764465264006918071574062050495673026852769231417934328257903960329638831913768627021416442379288550567832525473396828459959392397262131989928747286944629811765746950206223932861651311368989239032487753521496032059346245878699796049712145515077244102718630951466859945941938395737190059136958998904857446674453168808020909271677363770354975868728084201852555541236113397101134694749012574772095081133828552238726580233665131930243840196929632838846613415301007242389496008184984359370365754740628948378482371578680182406186215451664547701586043061013671794096841985821570414936216389599339277577416948146481421870210532242525804600376388426516124645934510638000630379241098436499425499622561124888278473305853641422695262269841501599210239010913557628392254858294234414531831163552924126217317856514111638322036849712360518069061372204673518258124843724483392203292757867521437583987071334317095350706958434559437363520648154865583424011700498606369688080013768677680613536494335135929261768279350210549408327240928142076063447974779263145116084963837813473754463482333777759815947728632647941445668585517217401406380183256733546235214635981080027001706771817422896570418291679983790959218894543154952717409126604240827871660624602608206129940554694484343256123391401163548390600857235790489429382483787058085804061894520375302976599301997512148903826584640876137377748448724394629818036569872171439998282426939748008371002539009518077290939229132828644622687152810846048531340018215088528518490484101832527159385432393688764766589561837107769689164400219550428249155381553451973070277071197297035528560052195115903190976349268847241051030694337968156761020767185272495703630224419795786961243573986377370436459271450824042409658855558000497036181390324890339135255095824797626499082027885837648139370926003966842415611714797456253024994386548099955061422152275298736061771848195728809276889693360972790559255423454828747600897160885728696100999890750003866880147341825111331242725597385629416678471727464592020854345572977262375994632492252775329532337248589725213394083263356883029002678265290672560697455938398543016044482451386304319933105412718103982489867939959694450723413224345486358385378711072300172759913591179011624152734445084421159447965534862393035968764295862832976563799022669490585301767554235608484700856192760006367156837159233285688868194091588441449544897373843034797928543354230237294334937557191975413300785410385450183064733069747051100202930982593151764596416859377979795325106429169089594125722981394472633062191420360663098183874810541227505560004319641205159033871020231684943512387157073135739689249389395758816508462855606798713277145355192751250968476169965476773394340218642650504024664555779725562847327978680237914486954865650264076744220979430703286058837949961721356387861294205448217580642886496142806527850873506023766988532486233293976197572377022562023635036038979111977786382928358387439588422623566793543389905430584265024418997974973685927622767569191895453580600678172217697056222472096653381900485024658152249390367565068139366652992438327591372011221697831629053239776883689164780340980162921114257184131959212053073356217355749159909183850351481226002455892420072047735711381487050482834249733314118801651885390208294736374877547032686377554913277169451972030042334007623122441810204566667216374992911432146532707728577863435001218512081280840430079852472362598547446260250268323674869960318569871671225216692437424189735640018382478401897456367742620974551983046479730561218566971228810819017184285695074923141310789171697500088219559163428689071422469583234223704859922533025131775275332194113292532368859494220757649388053400142276855853839226435237293728511335737697093589946771783563852865781593656980565018550538373559224732636428511989490793634018387507691647499051847471977925439408904890145068385389851210809204031520416332185524318331801989115092088393250948892216573450113526606338486438913398249717504401718622265959160248175679019727215148716824026580390082360183099477512291157653429516886822973583366630226647466870120985627919740721119874237173874272287982893135854098285110654874531314742416545826350874863679722561893018341034791924672949782364379399945204513223657184989694336709163463613573016843288698215104718715084755162061450621571810732010893737523869138767271453439313429537108410666167263774709507333638919330851425754063712568926227461244237112712138280455481990352623354519620463702180574129423975741352291390683464181633150610897204309209714585558811950442125225751918374261345734330124230677450641486536699633857731353220179847793972966264372119463115852671730073548247119627902273877893848885733251925329885922489497015211097307350011140381347564319208217410168576604788533811123433146223778113284080271243216519532173838110321609255399543096060046323085886247101125008741108066723521467442727855385631276748184731633776691165292309003544466444249009677498590489330209210892638650100169490647131408253535588158736412025242533358741318447510871483081172181225312978157900887552042851790759932413105703442502576339902849640365721758112498102003335613683557695710815425122392107854390195716521398483406456718485388818150443407161661010562249150426503861763351455120592247501736269289612646181888174271385030175000304652095708272265906053157480510129020159115633654595262710338039869523745443494607930770774514901213723383492782505900235334266358058958228003493332207416073553150054783599095162698353441633189677402003070731019400088078297598890483636326780148147321835435619837357869483297422670612749793571657400678414806206899980836505881123741433841742624576385992866165113776512053255398035802544259493202957533396835661772524883168781290536406226750405013477482648777671800626529481431274646865902538141764702919501325648606684940709970309068618602503919800748369972536571480261811234967130936218928448113348503137620842426755238448781264355938110171254854719624105739632742110711054820970683702560906584846306460560227826340568536767657439448683384081250348057060930074716753341062792725199206767305798657976516354347607650633165151121766250330626062084892410692470733006169564932288115072554302000194895197173110476493996202034413508055341134642333366984292829384438364601787694531359858009281391290098659481746142549899707294999620706755073805665096679934302799075494920976049270801817147685217577083923367424993541494113701464134294259510327186706845717800219431833654923714706009672908778896622801552203226002427841984997607782769779212786171092636207693032506536238526173159287385653151596221689883447477341350541642662493245600676097796520669510665000906079657886130158690827472753960354102641820888417269556573305913145225336960039840853116658992440525236987841517026591184659507885362591043648309215818277197653106760510849779365028068081869442105834393501750862876778574687947452087929456625766999969445139013621533082344667728586942701280724243577408985689454316624867124990762092795307916994646670111248449409468547374394739158297973397071352763171598813883440080696850871720227397662974772864894690063019461030882886192942271627575621334940047966528961495264943738410459887349172981128072615775498813244368395490649235671030604665012587594483004414061851176478862058231778953998710445233739819189916663068273553414233879851547919330015141836646104770367786455584970899495329324186631191272981927578737598615916196354396438190593143919555305229883739227833761678031959758327430954015580536030250310918022199209410545861692897775644905714493564437594024863689305334231913777155793352126036507819596083338090983032623343717683096260141090862218761730031296157406929413079630890898755899464612860227992116679283278759764687155183051606085661040524972876841527971068035827029506367101054801620412168173801772291363026798579572855986990835408854729081487609520526081581965695188647987911541916740208165111800949072574791614897714522739613797532283263264476703560008829828335797293489000156984658387693542305101548231964671003844616153719356367529926696067802723854468535702848902290282803622489653979078552768373473904310422859940773037676341710674840188199900197358746399537073115735724803936779903433158630179046755866225037863850809818641484248545215192826920422378640936151096963704877890087990932809750783408095609860657146975463231364197807787340143721796952753429041062418913267772969223304319879186379175798811679227144609604463021185136211040938440686968778587644850542576435204838702421428207274947130725936309397671296344834077081019468701964403772984333952701976518832410668603465515573650098183183732893201441750937180961766277075911518579201597530533203560865754530378690819186551700014308957053522457192599346458707057136009457558375051003852345356897458256541018367546086589513925827903281668421711237479936165090281405647540582339528160330704840071521378689445599749974972412037241646844735545636723370778425137606888824805685368977102270753563651167199644468630502827502557127433710111411531178117683211948161900830788978431618568629344829408845326878494414192292517800807654167222765968979029322882020531313838050088377624068014235273838381197135316304969254217823925436928163561841000340998359385659247127190684072806771497293419123692769570159594401700776226591092069168277152860124989738754328954931338315253178813731064396395782048434854349453449661100338644981260725209622096964090102482338885152000826553251796185324752842834467569967199384258664693388875128248639428607693160754394063189824097626402133686683649186296271920222890201868770758767356575771866222889118029213184856377832534409125016173708023222901213750773456990958236281416891453109361559395514907490879496697298187303020101250135640857923496713146841301680205717266357084394890293132026375089453119791993554987286448271889797696836056044045768008598210816159375149794106588665909927113780278076963407962668234615631733023726733772528549638757258964869717771096459912510509514214223922673438786480144943653051073005083030052226908118152024243558307320936275011453496908865680082868605875257522266027201942847033037922082315831842534667847626014491701236635122413506987700034119508139090257017100715661560603083552845243683534079027714970750552232057361021962151861958531286120557616937038478510653964270997032206155552216755195940472636955310191920398865540300124632864585488864528730227609491825070760579272656005299519342948819563481972275839457156931457406670190309653342946873368979432063929860263173364366751766488893685616205378329563163635030665751497077065406248113885803063720027831488629922476100204394894796048484307221265772448104576573826392054293692696433608799188022862194411823285501936978720380167657657938659077301608918141689128151155737024665970870964123176764927603138652446692931394036936218147154069773700765644676510651889548621812882058103213521266323681953732773372102458763057393010793762194798215710582452580918140217937282390865005719404021141296114434773526651322537259859561458638578787812144970026912596871148457128658720760962865958852663326128543092448657396449963992527796827076172210507823776820695147336732149538941602748828239727969910516492761918420436464473733170855451002277786221925217548351395785153627909602579956455250127341494795277300677062559599549210673832133179689174981933505946006998220760593876302078864698912126928979108892119338076411800552115791483297941914154213946842785831276835670812929814354159793575272407139806329103873024490865775569557987599232655022016910466708879352684107583182665822285094170883071787434857009840527361570282022238835795784344967952890596716954029976694755526078125980424260462808055223056334689868569990217580663100682749572349002676360006020195059371741764753077512449981967641972700523692472718545095814899785242074787350201232228941010416262125879778306907215980498775416163018964080739501258920523382524145752932803567534868176588881568371818152165074096049259012800099297222359031469915079265972875882577056637631500462253005518982479481354242404031305134188802318756427434691358970737024017514779452451918259145904169047719563858849702532397696301415860909857473581804005131223987643193457982673975462657880042320221354711895794604928973214937028314827530604549114107649511003164218003841787158851402843933087132494260814825775538452918594489943892070433665139353965646168009307017876283139333698628885420950947372196576459830299017171244469293391951289688264577781442335371985485067769133570197532271741273391586526526597379296780104688297895360340688049846731216479366006134205147994525955343617548738162345151094955230086928641890941471675430568649205880811162448624860103512724281747607895260407549339786025785667123339450405608615310940424492142577344728651695205123018822388643710360341070110109077520770372107410786935746116596677596601636051876681888444254904819406727145762175732324306433185250687584267241360559745052093447394433442173678311834444318380688146714142310547336241543279977790841103191610882017260929678990914843837667345408588260242743710523569160031893001872921194045752142203691574052486571518430799584783356487781953514435059017013031069111907202961446406004977027604970150916856604710798981261537826922859435049541368078154632305189825515191268972734345504062095934205485448858660104685921503270626357311212170335194867459579602772348304619807532074751221744712177207321882836756709586832457709179102161524342977373972829180012683317508046211717685434858968199779789488322195394018053893133308626791970534980227975903071802952822244401362253958593643509007722547329760718679027330288824269333567806740922170515523920143392805811595977390872313586322862899229501961683977989445956297198811461957504355441326214973539595320775358496568646004319503999031569699554246975622110075868456274919982420636585867291904497207059729402404815306600563357504818905382014005266072206561106323780694365629376990257314833778739465978468047844789443823489469568808241413360620405691467844737359458245825064637601092430768510051334530812236382484609459604670566583785970579864077839107507423701086393137682717745090755460453703593617409075754505751644825806021599401159685876688298239531466693369771187391828152161503864370839780052097274110877462710784100951418088299931590232601340298689022270126171123836940317686064960139342717934718853025690095605903910905206428356849075382084826522901301150564046566500857149858179069961888326526458750726960722991198270993485881805365960924647906229754237626777702059427255809432295230541629657993250100266078115728363869461737611052028269619589143031333246260441959788445632359748198777213561770288655134562249505366037519955802407146128099114300525078872759860898482382987619165544198932742222597203341780303485221841773334789230553232218836383339217383649759106057594072606649904267123869848735545174540786663246115889987021829176182532176798279813037201278451768268621772846647180948085737513544186411322391716739149906831353208521931073720480748322613552539369717060199525194376154432536331040365725181238726580961149612238804434608260181592903303453204674894143779637557583998121751462177124814553837606486045204721143731752978079598688535304761464419598499533968220175872832809046273852722345306649993354783066868171612626587722515208033926510149306803105466932688293118622371591771717214600996802356985846109114129348159206327697717460207498907940069276365898983260689170040132133662778929109382655663996172221622345842583804990625875455183106005400779092731587558870656172304777595814844100282510814758718165004584602134255723795459901274094305848492104309093356987890905422427364027283415545561783323111535836889996768313017559173021431670552205086841211605360041819045635060595195481364388586333009602243803014826414052189369334449459977144717789360099904992370157769985190896346444383496736479893015996637479808703163343689639621609182718108238898916566021084143725455572706609113918017059264708234982735357851268838461408588613082357243509948475048632338298580840983550091151326650567512111588055506411155446712701165046473114288392386073795438197382927610217555593195998045554845992024196255749051613980745561638016052245433278095862778061355130256327433773409241307733263932521946787714296516364995007293292654538131684229273131770047399144336481726607179452555014040562665229407376996055826580444354725320346477105940890798411591454509190321460053216425561752002117901459149026820867223720948582181575390394470069858032490074750077431962377774171537333858175333962608051952802802343856217835549205638533416405104701532285196476897258577507753235332344691804703573121050485054300125441171380482060634448603605823103107387448040307854342783304879636946745362131984246157916276923650802179501083092347337546548396511052691786249826952206016798737693786253548164483740975075577439316623175214495494496241783468216120534331049850167375122548854852872936081855933467374479042917556902005852274167668430994045464268446196243887420135399709673077989933325055134592485560408437204922315626690669526587948803860790491867586207798602239305530670725269582509494721012495479844768148899972361254308954483085278015147447702266717052442799070674703927679936227578918605445838126350367361259981006713724547260616058936089611045325321032884046852697117232009127864237033913249085397177160094423881341694313258776993360758690125283921209939568944962374654531612432708904149927241154606643610228726083445187849328601054545375312884379538855295601455931562845679555989688573512383868976440635432570222828818628337853132732284891966685273452214343751871133315922730100179925440335105972636587471706454795546557087611509313747753637370500624981171923721483728257165427779145140657474250993163958982814915192639241907767852843006123753163042118365602192527415537606000608842073157137971507325122900013118957188116061129830751923915940008984131025825697275498279725663469334381897971323223637614309621387508819588180338993592458800810708073593081636010509768961375652669826640617004525714081814811061951685183972216204659565711786875854890861146872427520294791167845324901731389051101586221352796269373074414611190113058839123390228349229417013505853361647762428682700849664153997169659572919097437385501131707102944398727173966682234672853708236615676714798627378763228055677275785817277005260402769711875410040657431494990704608084764193794442736268252163221600459848109828247130027004453459988818297816744994267090881403896759556370444146475954106420586035548898456265549107645901485355026141962649041541302956252845933594319834476175078244776012444994885443860010488824997371054676156872039918694877130203966235378390821896282660592576607011362216615589729257792302501907654341861778431945745119269261851441495886459200590197873275344684131974580020756118215961480153390836677683145334952948472067644796177867716060334433938481485250380697143905669814659651387907618813510605480474461374018918043328476377459141358640025159867094598490722811187294627113675727128064952360059653997649870693378639735113144231326351025327976631034861167835144886341679590993960116657657455981580018888688607171399549175105908167846815909705258997416969083064349039412962120573896596227623621368747963896872951071181491025804531385727271434908871935522618828426129329802367190452577240882224581036964757894175713640359545792113399618472440261693954768354999449561835411522666347565361423929262992317088957151318933925623783693006620712233543189414386137436489328925362394461369915357990146479740339868286122099966414737828846007956073454581600160784473809563547470025513490525418497578749681703195295037793418405949267221574332510182165034066520599361607606444956077880739644930196911395631558839793451967348714790074408635163756350682323697201990172887288916780851636738592859432574767925134937143136952264785587848283414393279511615870699241960548429090357180754374737117661906367385424369727634881659685086536717779735179882535293954376763071679723717007704598813124075632049226652950170159142833746735051637249557794226966925624465130663896354996229387311414219081110148355680137729666513711289996412420999800319359218006454240047232071200407120316035435790870395842563734408484332161749858985697125026660823361141106591277160348908181405215036263043265731121785985957694778938339876064258854448151679973841729891032015163550477834019715516560836426546148592010783414022176966304963033438076561982989575658608074663502206098187157705425992344572225021052362949525256854394789384235650267505267210721121425210500434634374573767316116856466484553250233915911480819209647191471789213987892631458243481549663550863193876961765114145123478853901690833021337924633404268017003881996345073132798734087830601215768083951430050676071640564609234572341500718235747712594317266271747746575414508988469703911845334638600036943326554090712299993190843964952839342571587303306758102425003465945562626666178136593235495031909156334210594324419267125761857776813388497690394262291263829162485904654544948153945706263304358387672171166166616560873045374133623401357437049910949255931750957563990507475915413782755674341715017864761222619859685237558075498702263091138679381762800425255410668213270092494272843878718889637541984605394157141250756267253863861849171059340431182200062489742833186154170323725341796640785561513131509291398308934174989607318626536347639397382246608693745414508589244641807428032895751663896642286047936187614684296607123812530317576163043993623132669637950990682741030876349206003250289805477958728813833771641051716566903523909771972245679886440778524383436005189387878191651217004033845722490649621653678448737270445591257031713701256585179560855280660171431373603851369113866898481181013359534762464844168210275738422593336697156249764278034719949601538093874286557815047326935679929927847174001146780907082520755970965126390532114633036085924759247098205616156943750092020061309462610933073515104551050482296348234403326795983090461035371677741179332412554998226512019553628331573110092144053740698248792308610893092855513312464840970916200291807456680815628326698297221545067474092152502168941874490665919058906402625908789705772290269889960057389291977811329942385061524293730832909010074682990055787666557066733807446397468693701836092018088986490258241568285754979702239062343981887932747467371034676618693093997383927395745049416308223988921730810066935057075015520172013655948986158793029979433340393155683264441031586865096012485411094193216895282266611509093617575008219019737021950481934077955666095437714772078528213021443912782874281684013660013010847999339378347055323053230751796897212002978279221987107516706003549170045864756923419251829303011327639156813582196713624222118860846215699297276369107824303726611889932586943718430907029603960495779695093948557826530548547573635514151379661180978631798207490338169324764663615547062258845641377146653249757657615398157988401853689446380733947655965732416232028973006820932158058992699339936477760616924733172899221739304637123964692593896271909847839652133009624873399118477131762141733384812712787386679948076101900486684407694881339459403460815667111307777912869505882149719470511711096506754884479976901473643373841185880351859631454408876023017689752686404823521295679115184560648957794465861013307467795762743209092158437402905899008698366145840735874127486606207757043049370094332100795121775640354863879399036409633685114787252368258328669000496964099357883193757729827026943627693455397155962293631936259913481465483311213088866596307427568020630679297070538198581889754139808316262267117811475417123828259192081914812004461887166990589338328573176202091225503167556509539153904781265432825741586560766801033485249495973481442691116419090090930274204380889990233281886435103658640883300436516917272825295259126148646254178350891361864782378554447703790848442651736850952696716019411760487309696238651683980685981745668659841550410095139266807191443827801081095533223328808834109357843765419852108907409271341699272080990272326513817849142059062704276782395407144169842269566721732024841079328186731064228556162274647168184610440806919302415897449982594179602061160036774564852826080561108561834585443983878036966600148893097613776374040531466192910284968475938215245998115219952772391082406409178564805822903537613107046653525940997637498744974233560876994403458253268660657137690428406609774625231520772338697587276177921616629940676084178187046384610339391676664326337113938491823813882243102949502206288332387493716677369626977663537958841242576214682681346551448277440107150096101765741622003381717979406177053630815805610817211863748533323870774526638638147918705275690744090119578459509327148511220264081008344836208347573450051495500341540975048282672917946471153091558051477978630707764905626364318222617845614317321140453226914331000376654402600969484633712339001714266631458551610483778423137957644531683992719974152357372921164576260806851833884750886934733213661531783105827074873416692907260865183362589671250873376207983953355714802400937626577803698520510315975242735448623987850833247394914108461802329120976479593946612958215300749301883231030602442771619416790812602837711203629754987129043703497315796558819673896450618034825885325260448124630662126334449743830556190068184094283666991896512117616876615113118812964019036096394331009185438017747521517305694245430932686287458423873269518069096446791314974065282776011210872389265551778437171551271496311962213201222997334573741546436706918393248091320036556089225739563074809604358456933803885723301839381028706785042665922343302319869619854815805015565738492731279490113277413269719474161939178132584541074908617964682055602797031231902289569710539747552218987519210402430925135569747178219265998608449371226965572726124499179239530351340207811707190317606224862962770300706245708891019883304280222688300371970709063114179275885521296646860078598420241687863256742948238649194699367251527113546060031115228884758190588569124998739200173011449001311312502192373538881097936784305162175512860592032543835532419641115083507727782403852589753025748214449257865146317179344835196823033030660272561524453321139355892137666462566431186271857039506888766565782046248380690975076560918814915239722874687019670941292989512616874277777068546586842167759179719508711043140420632879088425881488755542385297643631163655566780342400288571763166961044876591346708077433042460813518280258973488641304925859574760758665805454960803960524454939996215476403573422701712232377205580606029424866230805714593784341071409496171912850522357962928594887683369027680074141380380911582682818692906882932803447921736173499062766493972836376912897588629211501296700598319078462219827104989762569709388571198004710801635312037866115251988291308572890338621511698507502598322581763147496153548164954462992958797350099409143248995125775455458487244769955420643251542918319944031674656271769355873240741933869018666391668971862612995998808391973890968015797627056293207173334201164623900191923853497895009526301097592117513578380204220445512654570918558540390085883707797773575072114682729124955593599029506994271185831198546136727308422780568024048627951448670104903456391160753920335874236185565271327733189109707173729967459421620218037811302069677645858093663668088479476312475999756197481033209047115302615526146282118589774538962311113497703268366053634749054963228626059123145764268125053946495142862952666755590774795649775714180156124675171675653736602180479773650209145359805149619070148912785518850347375287564070240605909832434761936205855944972585000697805557322304580640760755007841947760755845972229137771465893163835743745309666618675900826187249948076145672880535286300903100469803327326695765200769841251621573395390331817661593893884733684563313919001600765564973059993700472514519925388675133545886454476099747435401020188524139640722068662638948330780215927649732850061332185211252307563659023803431445517128273912087894569142184271750202875164680996248287017228032914769272878535687302026246585904013657342231943593325327608986362149882836327714212631738921221233618620046160796557867984631318929619315960371752460999800599421814255163695059460873067460991091772077351272290831397410674931427343239453832944107116222684246626419733829861049270958523502647798104143139875297491373457565328238399228240878262268722833750845738367676969894996757179318301233994966313919306619433366368198921337445423964718207149389231867415518031772952394044388225791765133131424248362475690487244160487172619530285778230474769043357396051526681126706951521612503449014855200968498195857687627105635744365046684193194213020463712447641705456104607315737258892891396508927824077938004194877347337346164123445657322240242916229651604704913199204949847842626761822122214722597472857807216113583694216381422965234167888387577448700985901151065885048797118520980269167164670902557192439916831282563496197592909981811231443431464898386695528345851483730448752544991875084994857972837373943758450693306191119876640881809470454543785766624161408252503640134942515387399242633407195609769230077482932665412800554991195951234210018873142381524288025864412518435660403418217766727379802992429319599415954050450454072461442450703548511605921775358817663065337125749071779709294776867767077379126031488269066654259675994212361964429045883401321042461546578790573886063780237257537779425052526241761305020040594978779302040436449826841498435255785625460989077767478847154995949465549344180893158598665109666268133456238720026586330544376737323500382289309016694072478954295081943559123306751725092801697447167317394176205037769861494321624792077276515140115208729195936431689631192866729924014508826287590116162959681845344734297571797441359152287684839635703923473279438772775916462853796913273553553470667360694764012104857787849053961088588830683743587798671916877007823686775657197008635997974203487150028119816065984517625268615571846693036468693928871355955556037893444582612271574125860484967990124443315406668101135386534660139712351203356035893773847304643800359907978044547531817699889181400912595739013010592426651742303301578534222949111846070479510348823829089519502404144194876231649989247625309855035892184988133879740277133948561743513957827840067185819555102611515104947867925963446116545519526927212272435342719023857830799990612719338340372120760155175921443932155570238685018494013205190219106637994799194594710106286191203401511014240086530593800588759591581953136725338181077255310341136525545491045385982791623862865824162856711942368969564137023788383122346234893760446727699696258421857310255968494003953366897402853151048337469129466866134135720522804528918609187507116843130235049428842301220915769466618203731743424224865449021769897213411367043271705450023318049090999050836847171472925214747004462903984114701649696117890890677246781323890320162337257502844339771130992463576559333219427171355599251942753162325691088379072502832084798109029991468239245068145359015147135186548436056414892994828771933504837578049725025403799296623827931689130260462570767826336750298422468430512897487490912205353341431923520147571448858344798073607402281466362459506774448898790626833597810255493476171381778052568198254859182124100127996739878781591306156487510147398531999495177543315974188108511563393441569759021755330720757774128277361086227095503488769481233265645821540064206909590817071723264358753334700903161362675132855590738853758330990041987793840640966681674388248011840724257681456603666517843442659115909278438827235600545300502098928845603659307153413999773871334429138644110756836154887893375951317431647240867340219910315011628954072858678942442255402153567297983571982772531522331148154490672671664470791367380360297557730869818131284010244781785277421869546519405111932359244400558726068234561994871217621851963177644575188911428921681142877558204220707519317414496090881318574484442192359556178811106924057068965678410706498172061064261091320301192068818563358578242818154762423465736508275474958408399470755768669880784681022100962129030043002969806704865739123926194595020574798025852376825993551745943974941502942881187144651696365072771098607832546245781822489577538319307989736784221433338820668880212379276861941448469122543182345625558333994791359955745185595836396059685173998750978221957459219391992430746907492470687663719843797156783262794135872141258591459003379770188673333518107847431829024338769313826930359711992989230909128417220980830777299265043305416521079017937114920814988825319837272887685391870541413916779756400892970313717841761015824236460236405559544789690857771534178267429124727180009974923618012848885286568522211129203411785206822736423077155106979717500054930488961920333544705069347518445461386927246156072887170385832646227234949059633073313614602846060757694170419391518658030603266378335489060806006893676739394225286039856308750509533801988065146110974914667567469738059159210265721291008496413363275075516077185514117478980996344674553978123467486907447981417414762219980811934367058199219664745583243715333799778396311669581349816470122984775822156265882683144769488178690313028289896573692335929589468706773760361823311888905928075052808507551234772056547149153250224613766364812947161227031837648451268572551044840877960574176119354999075695272648750448700111921084221215993404499176436712304534377777303385658264413836919322041395855432671754497163656827510595218078835452004014530305566638514634016380974091113320152450608354694102946615299156459755618264135832451217616511373724754387081081356212215161309504560638176418667367719312406337080564581803748732298674514229811593079666920001061103750187691182672457083930132895333361777195458845597822757245274991626873991988600814096199179666134770519042953971777464972399466066411399402862528295917002424285458554103155533445082578148162712908906555427947982119599630959513607368091378035532769680074951710243573833073820043257281551514514308791409938231636011589371483212598276962380250806000701475851265651760815355252123626930218664251330742405897008246829695326369967521984420260309473077834137701917592130323638696140805729909664489081840265950894502352654416840736732293960935371528407703806922420926087578633957357285013462197596448046293139081880049840268638293620557311527939585760752315401205481635631780509129918938914639817996276121570887113397638842291045190402388591160106924147358442504145682907785627055248225791801937501035684064311983010154413258614683293043142152281599970434454175612978205124005412819148618332701283142292225611187793196650511411571909224330794571868039086848230052703145972387743212060146671724629759526476954377970650798722023105699232796093023035820420338514462903856649409746349183973029414696949140193336331700941266010081637359253269970415217097481671877231753429442088129984521552077245950368791546740178380303825485006957353340202178989608532572287718531383190167785320393932516310199723698503894507391466322471213002398226864582706958093062250559189249386782691236593868935807837737545676060892562123146406057484275004275729772844764113278403719082227726503536597112086915986844436723819329852215781384285806170247728605592887461405311735945177880063127094941893160633170168933714187792800794547922246446915626136298647460080031659542739522394006798771590267620244837539192905321739781756074980791699119422657892235327441341297516390873179499563275110640062840084110194433963643123440653511134029273154917989105492173638424655290256650969081900351664477317302687869503380303302898679463175367609392445371967993064526518308505275423692567376608930396446727033590351855521984200966582570571580798968919071586452873663478587062238118593213954033212411412324472446651540622025543140491412213805757686384645590082454833148647610168601459471622197700795527017579635619774908618119061310211243455320896414212470651925912506249622784451027398198352006337114161278885357290878144173132521400627774709687854146166119161940448048735299707411464812146583137431474207158325265930390166722193149005889907964436230271449660743759693562097513422335499626621840495592351129777323216548003546756179720994682371487797857769739132452875597265922936858097124242898978119561053678314863144278877309777065937141702288792712624984662599199031971801581808194658840066824323186520476845978461831040727370877746006245112417587523027108426390674369006398724958821655596559556722676596986986190558123591800253358594077380295853304202921788766686141656451143968773312969670705966435572915039321699278056941031208294787410863366577306284070842130488199690654563818148490782103891181004165952684958950255838627404325323444303225352464710693418473032665815844638352031285691664753571136243017050625936614880946471748949006745411530755366844115939732132899997678526583975139798670052991044304153743955679916523460867410785547244246385774520922619004508049818796052045247802695515705885896205661605231004386232909667450605296313919782892538292291817409900109327606133725659322434879827137326862939748220595091452119180229034942118285339216096851779929202103009384244037133608449546044531519643093823227191905817879898859384770038776402137874290115131113131714934548532328170445768061548139387923287269733766360069986921154667700047558944761637394635731020612915487853238773026226725345145842061739999970873684300513989864396064127357314288798840049495006194252461428712479951689108821515862257465805814980285069535009447754706729251803484275776429673859983466776097862284929748390274056128757863426607968268055488670950147014768438572116125747451489314888359295174402352938974139879355883611561169246233298646969476669509962209610060072059493510979276108675475227680959186061540742541302330760856242711266552176244672151890036729069565051355776316987595172991636054210110593323125835407664905232794428884288150120097700978277630215268935208145937066068239232952755502662425651367759699927886900706982042931021191546463055857711775344013859021290384723703205336229260208647127219808328163998952898845498690821887790933663290592338454788137390307566594524799395132020013442979204552098492139284665727153809701476494459261468541918066202802409571397372460896603252284643646848030601740817306628259961413539980333297200261940288155292372221848477524143508889088303699663389776938524138735596857943849038752174748470625190802879484288502124587327443090634460260269956537824254403981168719608165220191047757478349147651912937079488920995068811201686538864597703153762359184420735100022151632801977532017471672422637598479655449110278095293419864421366402371009313243621998753789107790467929399216051235406738512359262715140775228585228121385623739053434620572691245894555835470675618511406583390113505060856942012691596951027231536999889520053183595389362517738080279233570084504303436146339180840997835311551033713031013065231846297843127628545524934781500860286346229454587637548552056109986875198102690089862884548408604145776927413296120928237326345426767398869685574355866745171636372548893621168626007259730681484848522322922316753705747607210147897974501848273526656653207460511466319091291088125836392064289364402635431303396756674968434449197622108236930829885098270814888563524859118332568149294300750352262413686287965772796118276341666395839684162816927064547088155843544658753597702255176066216956412943422560168927715523355659947561224133624052797853020808938757674445839489801586877042092934932258294974436548974753105535933847534674734821702590123511416778712681498238045568861120698661531285227727798897439202009435850502495881693643683415430241451574989956780230636255862729041028555200419487679984380829061149701107843983627238410027403203376792507259624455028985628581494530675809184140176645435593685891675919554982184718400125927244667958137048414087857144642846673641979123442133459896454518831219293684390605055811791941722352214532410133671496800169495870593464259441464154205759699070004008598241646277416329463302251862381869488199107620125905946206318217650807682931192884361191772495754036742922706516969961621436008433117906971712297773783691783245689424736836906573364616923085203549829438304978201888160743193554804059940654743177586811846273877010588836156602507169193272698394514416321986598534040353073787093967499661131654732088085850403915239315403938452678391081441663206848300766436470987802574815602198825345213725540053612363662338669538517712464927570200125199465030446406136345761909037935219645265657441269603371303259687429265543402550797416650168108953459685331772460168130333435534967115643069370361230370711358205241672707676109788552193631388789598436420800527176274804739176890166247114256466733318605676084073790276706301431215116669223430178421702574075168933804412934187340672975799168394641964863081203766452288302631199616981789063506943016835435029807256933559391986374272765954498253523895702191263119022444789672683123398504171763539899529628925480509472432986902563421321867354949302392329243411045554241111546016378055783724198347806822847110294698747801381646656569952514282472575609829703233278704822155422500255697121651536192035602859969933956615862648467645138506873435120417657612562779062313273543451033100202511505913731974760139239354187166957749980274991828795222231408824157872359869663050858079216245908735094548022628199889351311633154582213646847419556488749067933538005934717242473585930307755627853696996235543670008928580920264179589748746405851306061812325014898045447584131041568400641947833413498267237252526212645882465665598488480703984305511992391563106366617457844515238038604206430751568027037820609221052149415946900097582153078856313022377096179560591460755051482473610019515084723791675986285175358180856261954971630688264215884626962192349424605847517561913962292887250711700788560377261885678415236288172180907318156117515225228345690179086456374633385249441866540822733139772748704313842507689480407735609651383442550999264743592750185850496750122528816698392027938318309347074940637399592182723025379565970393786624592958536572704175200864964046405504053885869459258269836223902632998301315057994693438868448282512510634255384784226694984084673733085897605919247617734704340327581933246020583745832197945242146867852213664127495155902125783477818433380325439946824872330500767639466298486695413017900870211291406355286933128420945325197031229383753937222827448578774236827305323762049597583283628215980327547175312188055544443522401864743957793173198487834283851402464810146450598632507713840747694197975469702585491504711177828593960997549465001696355022290458806888353925964640998578234942482413155699946175558124775828473485730414945993154199875316342212974107216354603418439857353094498471117033054852486900927628467535883693594035870397181015852919470671927778077772207350853887054504859699654019372295131779983687755402814025760813069880389777159899409390563878314521076678415200544348727589667758724910170914958747454119902301308187952111825064606572906379587045669740591874647591406838832068885660597489634673781003708615477942261992191425097140641461779196994016258134499516599664775663976117210713665669830762849107864179474089133453224071776901991132961354618086674400981606060283160466132245361272355770005231580853018456972743452740422561411881931436963360822668650161309880616956986141281650032121365668182546263948637342896208371202896729537234643276096361037146861945750453308897889808614376838707800657898989228132397131920939956112871801928624543501471648823946907714386749508598810105400337524200870584118660124008702366479125774188221455780844264419714670544980420748316444985115462531102262865584146802337752671579574310378535826035601164657645362572504100205472326427431079789666933781526290187340344836584473717080628972842129888597126775937233415638326679524542560368514098075156297201164094316518408984348964424166827285488003337399690916892349518049073940167943772184701655306986048676659112566724572064563596764630595039816618164570060737536829092028118449290858610519335628590929962656491702857492565692963783519845382922061447396375864073624412491983781497951460436288388228160567972194076880407149178833774662550384938797077835838587145519710696693041117311116457663780601949821782153214438196681274288212447277304485375374720380041661328907977241772155592536971730315237597131550681833139689160713891845179948119572933177545167954146242034229140909358253980830891007582703903395239064698239417595801697250339320394251846402996602245232864062622844239193993699853732346068821512432528945000021063540024847767600521813854433918254402537657382957860150124108381059202018786302399360893793033954328834828077842169655524241197793938835017623730382867243544785052296017058474420994058469747247646765614703397398916752677147962923117435798598796966429969175766792510942587258024140917892572273887181819059102209507900914263548263862655312885487481194981475759632636050879247667002080290029715122763463428628554074907625925072505979058145405898400744744363818707023437473206110192985230208504499943561928802670859111620852033703191086801186958820249196306106860139929585141295391019269880474118119788045242364573161249323888389121402392409071239962583701689947131595822509631233972570664137162772482078434427095557434047540682799085041277187334901998795940006155974182344981276999748864168855561411275190824343258948268170645075345296335086646692055102575874549678371274820305043763579254600171747446136395666902448583960759727123423495958633611239861060510146506191041924820500582426816864479901200961088868504090575036404384761432429046230067956796170536606416431204946716043784645307730995725019530639916310620556785348874026154646161141509037100539160445679166898794622148711782666507243057895690219836047835745674193584902044894666644052257805293342884351657733750935163676160964628027939685840829518177419993681866172684640331825118345931202996185531263429810950879945424923602981776116961899861557569598473312347458359678994733106804255354917279414433966364322917355301643992729472825468941336606362239055570189928845605128967965343771367586591004206371669545663768670610165874327148633481069333740836702907329599935883374019964663330708879544241759909648951050700973673814317306587727648211191705428355441044877072859599633917799084462595424042889366942300908997935709128916598931972862067326424886433839893094879927493907764353985708136465364619406345330508042070617631129450170364562065342346439510333145862113930085286324794810745748611469065146321295346999451133739445914066279548608298904854472157854966174510008937140205910747970509210589608183738455672528350507552109221026501834465681043639579016097361149544074015037743259690113151067331636264584205485318866425725443886908021742996683918484665085051643173630971478164994293023552239359856851521486794948956777043967864452570423459651559923276628862801149827880539955741086537832096475831141822847409710581054647712369135970320283104377793459222780905170127656005256685223900507590592023808251751133533932851882801157361119399285616858606385235768579084643485604483990973588097334191278425934311039393857307037392760946770521583024031747168063892589519622683229382288031747122986371134183783539390971572371893937764852888272506451565870772073630696568579849536274155659983536259923915381641699252172930456214037287363576931681725250785871376250111760087934336073518556554784438472139740942921603495137209631073499008993522847512177083629390619148578139837974518781560352226612570326640163558511438428238896456621015358121907381776178932910912357286275696744785061073080281330221906937956701965926860015442746184694030461515946775636653427143147831576493223602798805287519300940920145849914929806848697168994467935311486854144717681008110047531035360257826722892241061923692377060919102003689878597349227023596466072507283574674422758844214622673803632061275510162783676454172480507171102089060859537051167311301692902979354562181001303256156874205339199852140880719704359327745442238679234288109503759007359793879083775822068065208605551487254957216778608466450612596876030245419888182917564637253907411162529063241118610372185299534451323716716746781005414645935298574594526952528353128273711886782697207611232838549782460618195162804744087935838864797595385282520282845914932027758219091816407890503909380158746627698325475156160715784073994570438414687951511835839883078016353331439327388529124089564202701880356179835365434324173245508639672888093505633772145418513499562871176796242378975950710502389356943590013583333223373765623175926139950706273519924777300696737195121788553309135504225276948254263890950809410767482992649793995039872673891057009272067486245212028360059779158179599156983989952483374063250089061005526956701463117479677467607620739144384497876613811674511846239922496472412086279904416595171586871708249888457572228334061240069123245372388098478580566992774071544119147648640991491099711740345187833302573132099748649312732256096293215608327523386969388773271891779700132370100322610875164402897826962303938164789726555961636117810539841735409233027874415843830789824527763154087502448400555877018482020770247106845372706016427686472983356446787337968617887052733468690575850734012316830144117116478876158065103963120703630192916157122195695364637494761688616207463900287237018501350490260817949124541510756280113777522009253703880190328420730718567075060994712966964836724950422467325219028694584905431248047381086611481536083984775596027968480190512655802150546177505665303436978450418492987085341161492543324955644065797997779017686062902346663611105038002227862012752681670974363876654259876803234267220007323469141984902088223251350805477021735524211958944157127290687937243106766132538354704983303442724657532206086131476929918500506362983851972528395233254908277946811238202433700583183204083272672003145655549641451915206285710453352907006015430109132539867773845910534233399751500704183734807108361126378893017386337486043779264387929749559830156662300433072700523066528112576719710820141064407314727339072072554392704850749366383078061077050400589376345376963758763835838851681078669557991615992695742488405094150335298011910387709114852746361551089706110356592283080719671581667360201591192448517405367146260895406230134759050650130131198747826392655078538472131525086814050380796433522488232667302861655335102873564322349957952190578484748872032759253201140868747240236689711332491354895004522536031754069432933511694664255181558203538707828748495034090823037577835426358455741747385861136280150709850093349467432124746248842621245459166576235814286219268774496276682777364628173333277119186454002042257806873985133871837699525641442101556431416782679895690805433025712566905868314762394495261604352511982457500708164450033202601909534171808511553974777575578822732957892311537263382502333929082377468446939045375669206026755909681880034222373452550655636412188665183720400764848354671706743170756502008955189957838397717910938658529084188493252541654075663718992380606480689088529587499092662506254984159447847258533962086997896883553529460042000054019114352577410175396854294080366543536448604476891328717551131394994623887778581905066907566093329474510943563746094087935661565152207128754454380526373711326720410545217298562620200462058570180641120081907184057861236407582806172378593228403039287885867471751992066085677376747184114654596612553075399138912420543898918561241331465770096567674961293945987293994154193467441898037121734082584752154004472253092180566640589639266583404522230274046142248504771622573932773737231822076540746310092241594033987212357451973755260293413848674285173017766109473118938412379795436235859788731020422671601467586387859040523496529593838760064175948922752740718590118431922399753076181578070395187003207884936861251760777903803102042667419644041455013083701310832423836757651962839130696900997098725721473875459617349277341288390776599910869473109063423243345271170254761139211688447949626024483476435169608040694955054715876780297512864355957695606680304757779326636170437833029701175422965574054580887017713680632903267742287528537717686564041562733367287697063017886250003974865389260975853842929462755637575670615786227395329269468768405604979752515241371434017898389123631042907435729537402405788641682151315802026545972730366101775730163793763484476698417988241318270787336529242564194592250925366452012107641640694195584584065509587746354887362270666482631086303629626157290582400899353512303229966580514464321890615190003532676139708397412284840935929646947105886722517873569012706031166768962105486556512653331696934174801021553026198973355946856800547399976197016262519494694437254057420130929753170802723931205992831426641161586137617305018548456775456258904438713470142492701294114394061395791477789047640260290273524693670994474042359885205241479509821405220250901148150716023360082600207430703433608187127446590399143631963154536620672582152871167190367191470079761352656355695807055176710020132388407666783975743727933933032869949987527943452289040325176553143040567284574815929954795762426627458341879501385670798048236193516687484852044627931804235645721444406719666113628952258837247520849622100692238659563816953261452921295953214131218162242979074728982872147304142539638102170061230556965545387328528453650194488429670817579889756791672142002588521232033685570810801001632905584133290465099434025418963871056896170407926689709686408367760639123970599507220141146278265347145928598545907886208109220972023275856699373143531402905017922781379506214932845801885973212785318144250751882578789883695088199169892632210130421552358597153704728971906371935450909812177839713251200985455041805598481529278849065173324432758214342496629049017565580627816141227208266272361295906249524407815794147303257504513292968142069176799053241889962842575726440359250362293705061743250176275543984419585248485096872911545908240335037711800578042445604463224720493193360596647523748956835899261196143812113469592956791167555480127583965104475599201403489407811293287279115840433490796553080023961846584469329328471927334243736415861878274005542715101731214740838239481973053944572531731596543464295508905434949376403881654443202442678464304812377649806511254877133712720445523197362606648388110572501822187011060714323267722080622867588782286472344777979747456095957440491086812931609457817917453546581903308992047249942108001498882931498769684934119622226003157091852659571814474200852023468280213136982915201172277967722136978074543183662585160775018003616964760194692167638849598906422759212067583546590210243194982023942499241228890976556380274786022691947305666811672043023122683970728640953577009664015478728878811774406030578302290677202219456431026101065919376764078556812665236043987252243169465226545572282803659277603389250268155807010875544458061458160814013473420422144365392445841319675233508368349580151557679707882461870685209366565486642016967495593881646422593801302745420078090490018425063588730179067915063606313346626071675744100978661612935852876984079023789511276928363131548191174010854395965116784613093478471914991473939882461057463997592477414007806415477316150527920127593149280502442512969188226562280372882533355883049797488546158603693562135984954793362659287113504239506608026514690278219794059587739407366773213938941046141615703899718138360679877928196655350297939059725427378353825730913037131728227260087625756772849428120767851125768328626454830318867888177942306803717736769834602811384180422261597176374334486859900103587303678665547685699528427405610566339570854805504474582088228258800145900079162957375074869073819978053627311799227666737674840265368405899016468361689021705402114494573781849708688537441709080002378596566625005837632129586446668635990497785702554480446997415731839722304823586515254107869898354884112861560406841942962591431678857183065097932473527299336246242701285557460058470668107075197629246188360697068064661380443840320613601454729082940024519648940197086270935256863931063391695754827754160598877106261669244841368797736518100522559572075462643088703437853731534473325733537460795465946338077223880116547355850428821645568439711433882224732881375164432020805557205166844571642879545933305795447352982251445959071803485698966874134633304736110606282975667536282883122790384114683026369949484928905639388273508127366360521743347659121524521050510582963233069753907287323952113092890414261539401682948277862432458853122092176994709298891159087952697360278039166618046742514747696432186386563599027694874177406020559267090263645334765124935695452886248658711001550150135573208841582012356515025570071727259378591377057319267018366048687523507636019166054422980610180533263927253324677009184297792820212912454748888098500134782919983974928018747326125320937009011195320238632411902051902806279039677856512253054354785818635119029635558210120476890409679086236924082632371493984279604785998175167957951106440020343451756909875821933827584806695854618635331269029532753750922102743702950025145282698913928169309541306795955749618090870163875104475018759319101979795101988326150155702889402935443802180265660602625872042674260654524454800481805079774115358441245549563390777713198799427310346047371950014596740724199184661916841784632073131965048280505195590600025886783896766445293037162052771974238747402813267492640790628405118835380653197405349515947923523470132260480088799315751247473028964982395766232104393891995988955819377257777797234178812445407453575076858265331994822437696724148844037311086355425920856756456433190108820231700759869101647435887937701661639738988014666335057416155548497738321192542217170480816880453580994686892449718961211392576935760303478078736695771556949937608433742042809460382365089680559376342944998046033920415283753127951859934289154674314862656430685206103202728957943399234172587601241721805045771385478172839028915138209467774747460550204596459382833156954568701758031485650467726008568642716890552130166790483634392203387317660455159411653566223234336019574360526014866689084571041543929590945554406053271913390753625601874427112146029883050796933573857748304802453070424351851347129464415543759851732355075008227113065636097586190728801566361338096094046320753803843417752580810190232040144288606317948621205075816683025733976486782263596476917384309519195757555873167365167381012592839674959096840696782461579315739661970730326531252806064230327130521192684923076493173660876043783864958326639655210132427439361277911139713253005245986198766574423935893576727568680624420083685772428859338800585606087256406757649960670967378650364646339188510109226478839766384010131746731688550605100847231089324247999377144076211295987925651861204196784992110523317884926909263456756735428730475556808030109232646311474497797873731643518707962972388183785649538898779525443292227568861439734496213670138674313148082509697046172668236653082457617287587208563201306053125951360776249163036542020691618224749384909030906497668870622275406816055919467214524558795580676109854429997775136067040645686644448019613955790604509027375993612621825915637627986435628139469769543931656011672610682396235355585610050561286047503902487657887121649611830809912808239381342765859624665366866862393390837426606593439799260445606725202044037376495950620859234016339314597672527956821868902554937415479892428548468900073165346505521775835529941556076686546071890503334841686893455518097754696905815242787918312290511900614936167346516261123169550340241624275978492507025586273065522483496074643970729285809364416048022118037674692328545944004089625268145162221267868193559148341644622643423853781340748246018180596616737838156903285859956294166436509311913779895001851073297117082776933480416345985304054159379200328550629631247420643068761792667844980993866727906973660137109652808623702065949030780428588784199219318293865952872147919853907654287456609890489160534803311123117244923056134196181697113366058615851346659271893784023507823902531732191006590626316276123229107478740274191636334992145785169697153734571433744462881295058456680316399353179935877542242717007919208953377241085766362894382979837869504040981660313396309265143382273864206773413754757259146784250431765899463656116999553119105151148232720434221360473683717508506991719415351472138402433043196485088912414269954236255519544764284020366360603469921721372952077124466679859215069896548461753903458653164381567107690663587573695500335485312206408229082416921546932433732202824111840156317282218373032063313396376123203176810179968190262465465962597473261341273166881392765327795633561088247405593870571899581375695596598360943537315311373406460132408446709686675549233047753598935231503803779709386537825157274205895738976614704654133421167209480995692666155432132344497710091940051170469276161116238660229217068902013597671712716330176448730750614350311875515610824626165467974137867544955032125987500908809518852459622234060098580205074591768612964166204371650970135304791203465152277803000722947028195130752863838121314308967591814535879349409762992999514992145707211879185892015106720409285392568120750537725505795655481867178100943504558835192235539649158117942486518942659501632699376406642700647770380522551476102760294264071845463786095981747586474979704366430832975055102978081205828720291377623473485731759082108271477810390984433160226310980090385065890600607218448036428740374180551538803053197148910252869734178820397266371917163472791991235724193186994175923033949223324494143456488367413647565702069751049965243403166736858071515914642504079559334385897141858742374862025418864556964910695763018816013907733124391311975819416204566399461689561496395601698369364331102704673719079169821497422453711582886219732133734319506815207324402515861151154191219386664165880031359440699924328115136410024118450467619878542804782734962408752213892722991553863360085576229205538512262375782156555647354061976527701833836039241592986044544519772499840414162512596180946908470691964125955193161825860224810637865638682801146961203098444200804683534321143280053899269232653883565097025926617567848941014302298202680334915856684337445975937605315427283493012349172988835229413044414552170187975198619476719895464082807379216068107209786787942069281154234224894933927525551273135611677320722173191980466722717830981257494638079614942534134335436707244431044946331062776788960943553713391726161057683001975397621145368348425802967515255980314766587113576221739956364002756854117999044021578800613682881250120663070497270602107095415829478304874833901952621905845510216951649235121937675815282702275604401723160806786422312845251618443108972247962178040371164814176357442466482825315985066588055944068300377395736447298962911171008753875620261470173661466640774772999798655114221208950377212987776213594188149038509386350561248993711373937277133054823765408679577769137856745968468267350568514112246558216546806237392523642002949409254649653633809275437815109550580741169675085929521247335723799450548740394039100927412144458121606280236514316704291029595346318233007908810156485629131843095895097764306984725993001677706380530835623887702486213896359431037592335167775118008103492494650737245390148776046554979648352436713027387139072075306047578134833699198789231024669496078042082864983668570971260769767887125273695717064257636177984547047042360629264666017819419660920719599147165620526995513042111822701242280576662823624453560713030373193851864933601239965409067934649661278606898732313662471824063218233520203449644276214842336067200143835833576692625037922197821673170362039865451549694189488264820691234575094595591499930810010964485750855880227836877127242046909158541014449151058161763968842289767376723054193611182933869740689158268451977510304512613536274997823793010069695720879374698563950014795490036022692190757882768034454625381998172818157407558737206062146860289410124020685124079052108246429190448960151581852462839606679627965253442948245177833356817101302155045118919174948920872664138683757887510747754579667861958345591018065394249117055981148841464973988288597160017337699722192420130174705151747388267428941027968050180879881432434335329045750098832613325468294085706882280789132056059277927215590797913251018656315760283653105321254636787461077238557510719785997472384915411453958291635589889388634679475693806738247579635163125428339195347472451266467852461221465488199154499767142017429863193131936967946113705932658472675408371309804770338999350991360344800094581962223863940171740777123389996527584022148481379080165236710636406333914751806829910536493197814674513751983271519253535608939893976905241625155877048194339869975729533024047001237231369953952379204509902118109622089029484528826433146318718090880744443236180188159192293453943465520276060640477024945909999725662112897501709022764208520545953568049733950994052239734923485455732965442703044620480621010936130509856524507521385497542601208289758076304676035354192654011696616810988315252276286812260917783853043134895063990730805182150339697004520903604783193092531383651424266646175131792816962518606807195813335701382229630521082314232918859669878400294643246231742520344746102087886418589379789558814837215364068591829439877163983925968581806175469989043768542942174083217027347438034732434180337083994276334067385891950221552080505614800344489238039926031107207680138927330261274058591496115341394123376291910744988169208006694862598781133554227747661674060246544076086445619882125908681634926703740719385267725803894990304689997995421746904978485004246301372187932449820829835772469167522984834224955891309841140867253044397171512507751923413797714288558336189035025494414735204797730658140658868157171774042655563107712638166387216638976543678185823177326810222392193904912609403058783753285270530901965915527659502961715152789217519736051323234511262444707604546613910715999674739870063309512257630448487507262453869230957023983949799112976791823810595270787665858710812902127400587458543092591676492622539379394340815226314624296110915030146709942747020582755390046997507496429590483503439500551853597186918620867517424976991786142326126297715114209021143172616863869209626996780877339739625645220413722300480815650150638595143636067268686988686096071546635244764585705882011567183238726791151957990482488477087454219604699855690236575587098087672966590074216353292372881664666511879286634094221474627016558200762015662015013134587517236215389435121790045238201254290955864579490519217854546814527271400551338840911307711541315833958964352996600608060738083113965493413793160562099896361785448865070654610724872750724860588759181967244174110380034899149291347153473951606988522010419115595579915927524749000352668172416741043789522313402481623701026749934869893457641729799932616629856664151823286791358728416602167960601602831872022906054955953483921173920332827411795806166576055067186622482915203524158208753530856615409075443946503195047417145865865117813981081623582761641645353732135210305889340915423247321315743403655483043072594437583325224210150832215823149760247634510449097681254189868723246291891567701973608669867029916465070245840445308505586678168612845982245926655051718705213448379449858026874375717554558460092876743564297683398278616543424610910324481406667840526646572951486527492479771728817641602834279575636325167361120199615611770784923935829182509531714620535232675919947740199575319802753122294030352402363927070940202803129172520687317077830203208505871890048478038606581630182769863234517820040220556842452969397770822299577985856438350012903168467768924432493527326196735349645509967268061394117237928502551224097537876548524674670619799558171174164469878962158504701282087028305877462174115443928217359958184695826243837798148493562887687034708201206726310852327605245888707012309620782580515276142689057790068605283134220635825238521611387887309866203800068216055828904545677990169867613420411283438195807216496362358388406167567246796114247505831768604163484515782386959145743273054177816561000666328592605844784553271688426115277304876632448008372446317895261732675062161580382614442830775354898826076638917252337830405501826102838130651615243740396399873209830245736015013253190572111309590600727469398424957950475587076726005339003105395173851816412005230083389384520258166059122983477921869496490182286348907763300818741992005425736734160731089717015243398377161456215783839860142235556623464249145074113129062188788708015422289683013850290390692643415342214006731951981611630257370662188795297575672996171736416578448259374825181774803548252744574109444806460849616499344079055767379910607692539219772466861090546432990627301348035066681863867517065741162063525516928012268395483706041746115213973594158355946062866662767218520466908343910997994918249786530082278121743085078599365522539177234857637125396490073483193204034744365534933611323673628752159422958332487477951268904248612158116589275255507804277109132556275976911729903936855887098266586820822223973932348091374750226883054370987412004781415839201257219618716879670308833844950192141874626377242289944423867298671032333316453046827660073271745328942738168903170528069650631812888554036233015638057507715023976444695568292730383631528932741910889038013856715323441375817549132255994498531055034829143540306883635763674664677693641729890782481001362830362095185339913855146164312387428252667607053512447553334123405635717719476202614355401079803732758682719155894481469044304485216557389093794713634246289612398326240638397874658897876778314630007366741958448289264458534378782502918218737392120318448205705345119032662732051311183176390873988609592601506883827446290005309285508568340248393900793678347492473066106339778162875725192448319104875206957178052925932498226932082294814560189668823646690339326571430016931051228366994755485785467049706870836740468080140969036771646122003163633667352645743066331048060889017817284304506869376615569606999748351283692722174973298593390810388570995489761789273843897831008285949630316507100438052575698517615485501616729540526349376582043090728719151825026312648038838699821869781757782654167872658209046423122316512735792248826989515863335353429181700833454360254024973261711117566520036297400437370528620058378414305453128666942945402652191301977894097146491109402722661224662362046634149759569332881712165932681278191364630659583800245471850962888173233652754686906179459973679725547434578441242667294286308506707220848399665809983950225292572822752385604384961556717819919949267997061093590556353582425644249800078128435654343310595695142269155905937882996018866617517649071633543505882797797262622355221860066334557254693842436279433615487030497279243860637071867271998706915769098947048015992952997380388214103243938105991987260765608526674325073915669438537437975416159568646295408738710474284726720939115606693482193836994489434373752184688802200964053387924116627737528768073689861856037166450423321983770917124687451389404965037614073201343027550553395903335928880230240245631420523875082428632301408613807696188283179615333508772157448728006020640427102331036467399318724189778151925683425203468164054557837923475843765007368697013286558868563936687123697606044341370154288409918784213558097398878457089563482151830197767502331644298141366502489468507695454046655155844158325745528655961538671528079325680683380440150213750927532143784153745324830834965473997167336229359162972928208481191835903038948333142490900812059149541877537005365123196693122252649157500031244076868275538650077930237644217837451344920848619801671703811536378017612735709194466048980354186943964340520410005428008086768022075440289490287493337599036366744159103426732456563505965234729457833369962302037261749514106685947802832006902177847807519036519609359785498864584668335028413869355607852614740769728118263868106049510696239768555988395803867585328365245510426158412171166192546970548910973965673942705302737259799668659016477369103601338513019021641348494392860168373656630368926741497355968037011257496611172926826988858015302378083609167381048783278405061087893028769906073361735403490955258909050001911992671765492293631330829293304421062368260767058954437335550257366433303915186158389615869068419122950968894545382802569217973340306061329022779431062463410591344514109652402936313100354668817675604224856982205365559768006517686262098964664626950972753384217100409697735503389141930766195616781683270478568415804855244317168659792268977219720962058864033713785644777060516801585430347444010952306450326824100198935934798771424946086224829330167556663952539409059589133909354241878438090738077144081396638410379438190272223210801669168103738202164752012417754116541050804873266856515076431103881145032290664293974545728572106052489974312604528934468463710830594283630485206591007434531055946797044959752004785003681140043524514101800532256348034522935090399830065579213525050909304986057938606196248550708607064454257188895379511735083805864031509475985806571530476278573003148887731320688444433559820505717279498755866683506299343198826695758365444404938939481705053181639815237568689616060329888824893731474346276119027424085121150288519388682849856501560392970304173213131621909234894172272434449433186119692328039695359376586399017743422362887972969408184904803802376654760041634674331453235823718653798302153382504735494392132585592047607333007594590612604247814550176909285603697886880242488128219355068156531471737834361333390354924992170059975392299881175146840496236365740903223659507838076361481836875948864911255388357674963829491003987715578561080688971974188671217647178613612384120884389802515043673485362209850564918505259451354222213860553796172352150519809257977759611715523501650658138949767571122849815241633909087654398671733294444464587084624291557897958011175409524726453659843121900829853001234901396055114172860235577297228938906502754934899591311665487629377801190012590094394389702657932785436046300796309354832965372853002970045711793091472264743427539026423250081889749241222226306454437018637196318277707373615021725229921837601281362274548826905499399518372723707692982140914407433074266402321845695617779672786938071497999755753318074348293298128861057678362810278662793938752040328154454124216102705930657575741025214000214303466933095047871564265558153017854376448155327652087717113881872465622666509866729099721246778798554257458243301358434853669247055350637706669177769088716110844346671501599494184742773948167399742711038208800348053614791261110658367856597777749776706140980460033220024257928684170294554196344212714432806584311004899246325547047612916991190701257987579676668845604740771387183147060520559260248863917474879025355054900626678745614619419020765603443855551142825206597158720733360441623695232213680426049579097879633024990961139920381076889826235232719588337734068287037465651631059811058428932465997736579599462076245305006626403584197675047123597935971137328882804164146505493436148031060506544572734978493811364226248846470626963009985331395088441685855760455770674166014074522262144480538024715877125986266147748947029917174678594440251897060170245944898226750364514070753708988545754893474754244483007711952207604171304982039615675347184691002291532426953755142375901066428438885055328853979085986981607785547262150239411793000153702123762885744495415829459971307519167809267551484341535979459170156819784574612870830323742671534191524027695928146817607101679531324575245826221568740832748004787067809906320279314837610128610613403928472914097498914188671517171129014706962745378805031969059360778592623242485583878017654649224588718050963791834009519200126805071588879798278294833101873200435917818839891147324990829139250855577418289805727717235362154476507914136740015964721549874696366031310077952400564315282083738195761072620895037505431889074716545049742458219403468734458388023744505644309462619510311654266480891116860429280530798313371734574790040702325671818042259096341343931900540975703496588211724127686420939428346153147149027056580940081865403160727101425360592307397814535099242129978039542666988039678434475388856808603898975610661419570449973027411080170687528561537065304231138406948455098715093780933979024439796649607396256570517958805764838639130105916976350740427340376179212958588111669385522691701247842743462775330835501397319288171959302901571746866945459959285937299399778460105630506051444732503797802862320488439025688233293376505118146150235059421875075069322905810720625853646008533297340310670097961282583541351904979303597171446396393232232082522408170704552647146301154558989187454608213569569825567501208964245060114541056487362021532469427439516896679084634500846984059145553319219377594974355786671781161715425262043830432037335473060589571387700945757632547992086898515179890745587261902870918862259543605261894475892083051135582525556066484174063364907469083065791337483392540852495246852093240034997559852852641584983628151539204046796368260183443983527140299706376700045182338269403500755190250238295800892905488844454437678203706113679612816568544732879244294700108872051799892211088515202953567365680406100959322140648086568374177986187886469148555605658373737968851368974305726975560540055700728991752540806203013438488868011349022359097485731185512263604320311541401976030777505888679547136866564201708436061026672731498885954397449480754784558100182731931632488412804488722296956798550154648557804867365352279028369979180848672306496222100452708576833503521206968480181713761632997561738425160340472537100056351640342162492027179668249264589309601826450269231022665705416414753472034155491377042150576445280780903524839362109303102288096238486877923145240841637271180953058890040688437667814314989142998936212785452601431404390484993880155633605951311673189113276577788136469070847036863411196323063886507480852125682842257852524030869937032556920939608185874141812304841532040492023498900273244759302032379479077644475239844551467304403210968985244961967143433964895893190552338498188527468449248363146342500064216306286868588482745331866992673473064273503636400285602221896635011429182634319974163253372368798553451111253055262391040826399709345081466725213811059130472100524281898862653316946933195167529620930675229159071599989846179288059262000848638138811280944056488021060488658551918467023654217617835051817213207646197155683761688428558909724071305187768197648409929299840192324646617638342697078114535517227150237158492035179368175223948578120341947481027899404127797560554936912525226575396365924331547306955812768357504170838688437320283294949859035321837379974664552568449686832942863724086082073553050317911018102737689333303425497986650670029373487484840473624922550925275236998878519466268040716481600784044638510554862653856604719072567866558909272450048108463164498070068076765323398029065990387621526464866860820152637573160441107769446441635110245590163490054686816193920586396339445981205304151923475252427984843865210876349353365623032663895232846321198943575096593721275874033894218152302901988033232519587667689849882642020169647847111751594397362245532687602444964607588769013014879638768152617214354886027979995833805070284495759496653150611171945911537874185995052465766733593918770781525002556846758994054003946707546189737757052980626588353605611710108434155518157243200941853345062706917638086287073782386958698057600057495211914517416647257650846718013265084234228281022521967113615581858338887415569921239796922719885147378525225979085933733549207275722646289470960881165033604702052194815080221807857825787737131239959787348989617535605397644340666226839278165794382139942001861685195160889832235760239094848298748635038738212923973316300742418301815488232898885120752031801017981926750565100682255953572193558832214343339568093203926165335706083214829457510488061733899680008770296039131290505239267854079641432383999672788094924997674008434788888270148675427637190346806433492332728494028096873018779001610994728181687592919031580264000982699679679223930226846060635800887494970608951543113141468993153588787953439666467229696721468618676058791215535292368531089861068212380998971522359758020569980279689762149107879358914613043632708640246984891955070722903802602856439634198395014071410427140975203173308056768940619002791016939744581539041501281049214425715334451392397077445715548435674309612382031110030846838618154886275693398186014047229350398574038381245886045964252255217862196650234345826311222711491159488725229079818652868546112950514880944530613471741952838276133802429047272153893239995733490561823380738082640939870912536558416031074703028723086078635381116652863435820236335149039516357976664323286769000546942246079673906221634824353409744525075765119376412678416321187857900232772727613386131103639407502598080610436250306300476835303087711794161214975664998273840712850495132694132192550489137033089107810482032135521288236134155288953186415664275619246254877909610067419667061305823158846861522293436052825560272905710599947467543735480543750183270076625694745868924334086732111016962158145443987388015505373682879237974649369502202647878409058153480721322106289878365092570092659864576564082064571105773763122218744364034977613421496724159759215986604263321658027785078324074905425876793610368761106119214855109986349672273923269654997181777406704337684346309599245725382659075685221726762357057736098855888207204069309544098363874492192499678390086633296482942183941473157904268884220853765755403694422270895889074690578038347035181296672713484828261972656403147880343907991295984214357792538710686852709450045108554824443904668607858147829288713964142829917972268916477722626825069071308916414840279640602274455636135843437394534314491916072617372207357245553670337513554059697431376616571221948652976098718590825948839447393398396384568376916635058925913368166390672626354314048010586462733257538106591406610715002373280539021352285051938532681146717127437173523281386357401987119630939358882885309304491077111031091275887552365198215324038730187210144170155269921632825889191910883254472683316877881097139064216804932727057447588694898171291232877350059229951529394188474191513270856784871221988628063487661209030720225202502346877407927482364319999619831991764647663239624313504430581672815605427345141148856709375550924340666314089429635485721786184525037411395869184728137820413426989330863431354653105561354753924181119015463925831874327078892806689657848347519645493516259781232688919913783959680031854453297991892786863782130949024833641856705845375961173580745307613822935656883770751180639947669277394369768469037464048814208287422867158931605842501226386407059452251292720485836529693764587670690254229590516781304672759760427655870869005276609536331230135377718540322707879770995256129421916913905875523930913235719219517955846915711561406708805754132172112049620985390336169665782212998132875734939799846068888401064352064758184371223363997745578828135701477863183150590268256513077941150123286754448095886355217309188391535652333484493503987416907094263877399992768526273208765671199601419216260694993054152314165219641921067598741817538850056213487252167934030623778618016357291669390144144778969533618614327968782538037382578354072175125872414233352123389177586904703562799546467124397680964734187239423588793963904245329553101591472971335760720828004326592999128996033028102938087306708519622438188337175097093046453113225265333883781176582496520002784893783042650710192142503182918285646341148222501270121474958863122776868907153688656203340855100867746688154430836990178805564260576576984149426295081014331429259857625877810057602544732171918739631686888989754644131339110694412346973932863672990380172324234278893867955986010365960906099344990103865970414378913729119776009482922770090298115673200348726823928975950989321319357842131168636891208162350896518581651412024546976360630691534490738412132452145110659572955933232159353187265727774937084451081360449526732050871816767983869997178657920806897672254839937024734542954761109799875518721146946529735600519295543260389526512511042709293281725366287657245353862157338665756568681339741410089332315008162082660226490367919505172937998098085013492786698466464369327851436347481814902186823239845158422879611356846443906556450663901273671199765840702453278774431071658787514925456854731515060750102363783958804831601695745977028727306266735027829418729857182693350257450441913291351646302363324147722584502077372726725672110444386284743926970612593410231399208330444181451124255005820801037763881695536535578909272335093152773305000365184028802804709512002415493023781679287146416552550505678851920871457784527009008136430374793108795457000712270224539991597522347745794485449434420014646032662650707497097489143295370154944911816418562040608732324671439849945617149681236325543536009715377054319252907690978696931583267305611507917305906223035025797921836243979403128434573433894628829925780764563530639241178452498454665812117347361349590172067875508505196857521035532103331958944994401118671111344885307828858110995774348817124878999310742760822522747451186032285761762960318989164073259182197082160280657240876514275064397015410883981784216868103728136784301187907944572988127010508498495272575274375618784698979153150088655999912116515599202997405398716548149508956596495954154397061119034382060099613351040898743744116595836746499975067147294831455885585327683574243038289386732306733527489177732458211422642432250914030029152923155206886727848117036018370585684535147792074365878935171304919401669196085069200121606805180827263666948913730770831696262716409938516190197130658705364941484932222244012548717512692346099037196807295445655640188836835636639701623604642332370227502686860018135957620719426682831366502693183018236385447052109988898287374695436871531354575707766074213880642821130641901832831958223077045200702127187378720064588645666993452306929186889345053103615000015631147171248238958281970736344408646919584281413908373309678479678956962583952566784809910537944544087947211653422808439430091098882127820337300663521066459156458992362392144706725461468992620575852649292302238648966039707760472292502039689310964966090162701416927301399484310969128369683210852074149090533860950835972884009860297534076261620146814390246723462976375166699162699940337068492196485645488941638326937894436100333977669897218804678186888155273678463753514762281667080339172780450179564333127375290340605225637320945445089140994191899152787224659325147580641584460064695664061917361075901645185978662693765310585045215822304119442952633312228562284984105546513809644190853166185551907835776675310375436302500674915497797540603024898258467494424802367134604977630814071592009439765211265863530025822693099983587555655736817769263824073886585117322041198210389654715926040668337653149787185398505345355340652508207932606304611388286997348907059150488279423094562670754074264175972154500101653148021358744269920216559409367643382042509195286374960246549551172561739046986717128656065607432755808804696928554931409954540097441974478024328189684114074651067752833082987083323078309483538825566709007061486648831251890179444563762329006464836700915350776151699181021910470807915247762053159270338095200159237456940294219731276602966636307552789985525310365863462866682212712032182259451706780827186435313773887888974711107110454382963773222407365553488602971240679503010885373040795654952899836410012251531826902589501729224110892142589566939301229813479725756928216866433897415121667746914540578911039211356903139481323374371874801066209850928903184865178676920063182388645171644637418419779235191595244037381005057300213490669297413972047842995898157774971720044430832130903271825557288777668465914938999115389889690699897377082642065297682813920005681202998706268568718799080684888389777325526551441183033721448472579953783793637342121721987920921651891223599858508239821751822446644029621247311940091288594287781020902866832797687229461418993374626438018122442558588507077019749650652295899238471263099674217501885252974590244110107246891712619821313287202143049006619858726006903736230631385545390097971298943401081689729620165596002095831174306420252483250112206881772510285074922548034808144963366772864706475326451700102070680596097739207581863093561114771223158893231040404605175703294975388663356618570405183541491094109852359233009393632370805601669472208209600926588116812268592192142467839327699307916415308787184624153757376097932920428368634195066624377460603039544159487078353848784600456983903947257679235741670124691156485498602626323761935554023331982223396784217907560648732014304695258746013452851079637397074222444715420508881000512083131775945917902539385294854426249519341718145595548005565822983409878391030447239313929022576267474350936726550305697301027403898604615453585971954690115666016187358563192185191711931743244852387026441577537528347405735645181037566118401596883809715787833587853544731047745098201671453085246291616678018862160359302433538421650440181389525263866760025922004837691154645719313353391621064028362186360728550949259536643205368646883074854093925576169396164224035074673595296387631302272493959919211737682766291849081977054227220278022917205785348205251644053704168232479518470775188350438852840291012263585615756569440372794075565208826288459823051930548573734125871655771932997592702355243893683405324288038531753854181452676097730702182574507544503817973622694778346739478067060489292730834556902942421145427088269699707011220612224367865560291298072260910703016897307333924651507280346036694750768969978091800931456121156845418069954346027581973315487422234420622517388450531679483242790238246829026874883816502666121085531780340348046920816272192887333539046313848192523821197203917040061903993711625369863762926827577271651363038808615428920157090945721524984228611997962171981715926559280415292015949341194046861613531270908466520086133358935800332345649501647971867770914669059217987703732527309642880025808141089771652352615988802580222567272773284662746217527429048234341091688909238885247169154722326805146661840802843662361410899568762423117137483606428469867060652606285116372893804637699182345934157992430073397286649736677388345409321221545094731167496757690178286225261120969217448693058924726424818990790257965774919610965321032125700502604716091242828823972462724520436587079786219084522036300898678656401441597268919858528340950347248944118148930257735236879122139012441910526168043483735306700027646664538052934443619573029526924163743010389871797224767892634803858864893858799635786732892249888544702689817973902161783584576132195313861468161019698750082196159057516685071629822053487326532594722897285277396196493291237183601928014943807926677362580315805425863527641204126672603061230587843050265446329941202452800636119123590754694052043902092293782727632492546749719287397198609115204618946617122937469295045249878117344915220751558569166795251123377638965475627898092530023926088249154971767794800076143281434157726926894953648824415901390117638153292526021499024063048995919195225532188958224932393765060893736196111390291048418953728968916370077421534846008279925607973119116277872796686388633578706989169873607704286120695009461467121629539024790534777588841415074702037980166267416448804739227609764720879330778898070362128069237667063058747343729345117144570211554439304085610667878100173207354425864075726129879452878195613401344984681773607937420084412014785004696528144625447160271356946056957309919979283631631870997405168162544294739461249943245931745934909487186751192482174866931442869949231761003197729473403191376319051722111344163032536042668987043393053210623962992914082112558807296462627369020680609935299228804526279078171855161317096161347846423900773573720266502060208605934417715710493477577382147865435900086595964172026712932330221225271122481344071541349291522265104003893947301989013151414231403729716556489328857569090186089472625884721883800961308203808556463257658309036378744387020998210110021785226636902742974474009270887787902722409435314208532718617177163151842102145081456563576809921087553685280891917979108697259090623409916043489476371353410489160022328563978726139250248905279768719822247259186556409905225709835716592112831400085746683565239533276123936799782232288937631884782601152804168886851197190096149749234772116965096729216786266603444989653600816933550693201151004902024793097455888204394431155338949309723802094360777146278389150555400734957316182762909820313824961540562325106318054206223048274167821825009024127871571231862570713337632358107393831531449732059365659229992547659598385406592477494704363479939095373890264393700665674556282052010464694885498143558814946251918295291296392101136668901581720432282694641372243503301042847512741003655111834101420355852178199768446565256345156191772830781146412319370189235288097580895664247411323065160907905277305693399127427781181425647098747441185052944356617370062083982245064145321857195579162575223209446733818225109676508726230708257263138894547906912990023881482391655288035433032906295842375722492989379616410850420573475132913705571010704154397677363754489308149323711295421332341872489720034238642414767881437168049035193492303456259275676057283102626427737582383982776154148989209599869126878750176593526769107398317130628013564965045298127493606928994541691169824906687186874063107257124262056021664398950289639671003568618188764207136429976038930363796161663590473374525300055498771766924311438081062477494574396052035996556605518392936212762579219201526781315587769484551992384582913858432514016465848402427829298993813353969130603261046092063947102613204271513202732083858954099122304497557825799425949557359570547154357627465890581142706603757175030687159027668894633571413197538606633837870464237414578843713722435248592489793603407595807680531829838882706367350817288353968321772507226772709452097734138975127241787405658933069404134634405998175317688049201967156999462797120769642540409977191667084120930471398282884481533875457613597250657716293071223914922216485493879026694845912588492481305081330560967997959899181434324542442899543267069569025626884969167656192572265921362577081380482639627411859218764038325458286565805740346476140481999379722684096648767166612490620681864681146028826715821860731680619624027996104361454807319570457708741012750536677671410945633936216962933460619516111196043516835102736010670029913478461870171524168232934598529052596566471283058437388612155107155264307337006925630412913499162266421777847169294831677963327192163336072989696342644663973443528635452705851151782191317036797121772599159370219356732244154065376424501093209046574819573138884266758638065347450829298798365533225052867015756365702632452684908383085953619001236178827887253282669728466691217755538995472058620000538853470584383134241502056858030037392718606827206661102370651099660227183175387708376108407852870493333168105107506187184560778592299931800945909696901907383424544187272380149658121828544027920256533691469490445388914810151271020513058186350859202429933191104852841080521966040595108438544842771049027024965919828574387091823036696336800417561822278136838866071813219057102251731591525820067624912820180383818246316029748986967283913070036443262295804887957841223996520145563996204454530763512148683303546454597501425745166780858623928452755432009129537807129584333162777841832680737503021459743755984576217770568564694638977553037303845129476545457196233344376095129660458968548616988926241605292622938361128397169320600275342516335642174857382702553484958157263680486374307276246940658278566188960601373890693298545011470299985867641894415047523505960475522709130328037408900414332650035651671739592529565632722897794650466180108142113757405634405280231254008064983402587503024366583330654451778344637998594998096974252735339458358966746424548694193496139499009072915787340736633092608012256327457360392514378495899645581515985348776976838587756944799952414087325746879060488963092339028487255133391682143228246428769930075315215457926102462249036328709530166700858033816975080594948195276942527124464244595579207376956944135115336103816595198248622878790442419156011598735069969060376619004513359120986964624986389340466400586093761760733395361102308327255352135566494177170090977540884292814870096512854791483973218093245042674216510671203070080913137928002914553049899573072651281790116068463079643603788869355117462839356106860148032793939223282199979641148821901440464710302611310339232904057159234457377008834726956591340776438717394326773427155688817425783185194660326249928686913598898265115098677620087200953499148374922985723457493533254978484223754389765026849880327826551312355019998745155082160024055174066052343822649617289928546583188731817375213321888610272292263081682832914568540451603138507424982427447320397963481412942893177573936681394557943692213838261961640053600399033249618120010202805499088714238090299298781761494591482053087721097096770216726237544418455659132568010322341201170058251725015845867106119753449225938239560058469026827954318991209233185232592700670033059857636584271098309875932915822015125904966382041455777705656080599711031507931291731981566334258578946568255136676160946022919269205957818581901582776284660500033507154941251625531801233279341306086817443316814657391931142507828281479806724690993704947828372002704745931553044166086953904693421169344497951565141904102191539797370859618090332542742283903008522229016630189773835908701659648776912522492648100976808576615162780929457447979736079794888069410821851491545622104964469854113869804209408027213766057401817669339676285197458515543056895548542964957192320345832745367610097151126906893973447220932098771894626707482130795460988336668538343662436472204898768402922547256338523129326455634008616442258404967540987521722650440965379331992358000149449678611761429369546477253303038797807061486347434833629868080661845897664946056056604229837971942124339939527415639119255008035744002455962619695323504210114961127593583301266350251633277115646867720926383105775609770120059576402346122047217668548730537771724043848060604901924128366888286423091414707338022472350265699446938788083793320427975037017612824120904679346913278763025778910379516178852070924014313422900126716723029334902952367868712288588780944235955047093840364876635165079031657238052920557967124293664127463767430711205674143015405084239618925406098250589876414177364932849209606361844194156521566637119865485552666639076128376116035994541192966372562602094740257717062314128454591452433658991967768377555387477863334383220062896084557595501525002479893682296093280656747550665521405234029625609223460684599941295457176632686299020793405846993537415659103358575091282686362980620214682881448507435721955425051416404802450713288816236431259382895992471650884455782184093351601860477484466275244681845507297815811714585840624488726814200647681658048946754805122943807822514128405815576474850444902652047649970591874783450077356022149207067286797772265970952449523268666966507607979543795704614944210282874693730697558770939137812995823892446243408166814034810818620962942312754460813502994236526456475725415359619406986678878261404628664088053070313457742048064607440892967373507905604281457716485321525893888107973923290814513597494761360292855802321798588601778115694167098411454315215346148196749385290722213244473053121872812865457558032706379361420050905924200182081273308749910873991475306047028491035332999211622246813187126005880942014810285392240147797374784322394734896111375029237497943102983851480912536092998067953420533953215220956171731189618403126950700037488679609171071077025706753228017173905592627698697479938959003918488574957178183228965100720749666282736618382793579484548364518612605089518969623444635573119465228620272656334974377522130002056257894463893243092243856312250229444222537114097174947103392122226346000865520901394328469394514459423045864858564289127653146024562395225280375017215147924231357039050822015759988056120243035562441815604508818611909421315752476944064928054954340872399319213938254015876223800082828898524000852663972706146870840502862377274921167159975591225795847946032295821659768342351622598507400563089054885613500522713352427626293211158314468771904755955411145097476571817459740449093205627120249810378320225813178680187225502102318281623578093356414792798501933290720114863034213266057574138009071266581762065209516464608414093878031293636492717946809407784966579838548939169001950922272698668159699951645486657332244673134122831488628113376144278259416812462487330907902938871784143286605359883273955462611388327924860014793796817710949347401684106802370947209296399903936781089305698478868504978540889546962576490605877223277808735026814745477991386386969603755636457073066213958989154029336022582197477952543628223066519992869896280027304257790049715179331836814548075485989882158696571347432638541484560769812334980418343343578806340675778052719447625222683096836932282319723239715180824744545456706715958490249340662413632790294662837421004329801367431357950719660849876881011665565163495351401136154717314531249131681006060755115926697483874485008175301727177007998808693158409133447428096820543196296529530316144895791674445421553591477717907065430979241903626385600578090622468308125891344188696622881518655713900724886877123221911994726307755899412765079303938680863907330122746939415106173614009706593416149725783037290375255098889390724585935334841763359823988113452096494062261620943677166853110084731015081772354295803468985873390586324852205462641696123239303131019921884650200120409245067951091208981827223207078372345416548219219601762838602783212666454723316942864352693557585376167645997383501940640482747125625743171116576371924364340180192289338953479677083850402476366511030253336140163419710823869999582344762654344894250598890824681391950990041636541086531483782109738373294541041031707772826588883717750187579657344578757741616834097845887436468494908858223486693621823692322668182990435905517014706093900427534415817758824924702409153343090641813141340440766780212013936010501093890988714341065964941909905853118549798677679059011229528913134815983066629663327903856061525546216972027352850416240549524446841926172173163436919647164643071794126009066823070350302816008398726228332995766108150373263384472837949485798239298519266014574969976121694883538121647042076633612186394400869421436694034298327940582178495440915438867145819519847844536284105591653518326943987207879838426195826333544336695153112340652700538554682723927897747699214337684975604525222622815967052723495442546461272994523344570001139584094296569112421308688193362305223412437537945812687878714349324710181087793288922955074732242118886305135080644147950058363937207139673696884781659441463395278796318943677478639691354386126105875256095384034679759842154276046101359421672947447143337524802555823814831663434097801946480945690313912829755892822300326517250399187987841933142133610119566368616629884368812939096953357263401210217203372419756374255341455104763134599486137462852269196784679017902842301640156797918725747485146522081587749581312440145414797966182666849587201472997287109323576417407982637130505561592882001776747905265097434893259335310767377742425224960510418031952907792167598941927073485705209962184697902410275724830391447352755657488751100018774949807309836093487090745926170431575696973616045388736006688290773969976244014919892871032397003842480603840562527437348661140333234510043086890045107485514775021017535448437251172984498909404640976871681281553607298418354327111328957774525624082567512060617610704983560584545661279735057875445486444403504751295462246372261219926230996401814912642050833347186960943501258564675236924982048540629570273375426072833863214899424885486768733761132353622015431668646827208172244769995277063472517467928753641922657900276428543015604891375384369833590074413427907912533838039852131174973922770876851749905952598198680189685084942096238577259841524227121027758527101609149527155884965092232131538780805341989691060887424198111504624850846952175930642004538194654056280226554332253041690117700851502514247139051666747364134233737076531587202764548959722913569153794762967956454978836451064036456250996010468438184568105759648011713728356700215427746919399522462729467315302618558223549520045919163512214903808057488092188301325259330427333696822566191457200829014560108084354190030265360234668537107111193455575326331663809533484426383271169161930574238857249802273004113591217767584886307472446334519058770054282407297334340179919950492446333711147270217377381741516418283060646830650834305024187548707583316255821799587139753555067303883883978759245723933656197310652891814478030075175003848952533317206542576114309163303670334655316016633154259186511485078783588033022816883425479872528624487906703187524021482274712713028295600455340112598457242952064040987774771627491198305681126857317732546741905904561942738183589838214688925189012701045532326921144638600670480505261184755963341537034739100802406170511769040380301861198579558568993056660240622934840927187899728837744791525469882746678353848444028887237107745629653941632257445036810340669973281355701491250747135977823212054202990148610162573267720694383883986124269379766611155657473647807904776015607590040376324502041975540683946665718992298546566528591269741574209447722417384907277042069652615687680962800224506841407763727526951964586797519244078875914867424275773081684328995093744903807832374007436227858341717967486193609413030783584126362021712342822283312260218906152817346719338750072262928373959747950160995710148990617668598929952351952119036948672483607135154456137792918091231050184476081766766343522073523226642457598595885177369264885489928101431630428773632822041480188319139321353298748338115235471022531267804653862621902757418579252602698669863984826164027695794626253007213943332993632354553029262614211927672400660407171468020946002797406072501707613775110450337039679798191795178041693254239266252223274456991829612948513707108756971914541052465115674217819461734967653396185971212442714521345374805834781231275430764693211930154379334848296008345221650081113432814716266086005306878223761982928830378846108181541210012942851208360642759014646618457127863526762097824120176708779319261784944202289782989546404888824687237756714611284010212894928623024070243979054960033376966614428638214157102844586972583392063798780014220865216064037889068891390231763320906759706409932738660826859254080618382795329210009383779293591355638879903927939846445070116414225949799635728466564421002651162347473061418656163871854463410104702606670553360082262662416366581325053933458068800493247510046721733011623187843379753021693334996362151642145081737071134320739967893871189282445139757353033342635313732458912168669582808743955765273581097877497148950998538141596667522704483204172160306527977060725833061391246846218263724700094873680905172463365821198033422795534278153693318740014316973277623921853687861077550796737370245325980093430072008509364932368503143361064462602207944518378911707119010149005219863335776035413947895063395675867856590505462120239378405145175203314868102129664472783022251618575964800926728703201497813977847725795739812290540223216749351070016397935421901166814011342062638834293962336299161110420510513842884713358202623697698790737597817492024262557212026668905468489624613062842320713561833029705854791026216028187649826396013133807377883860291838203635028331814752807577124529467601983202862028501383455630039581663582868326099485235830759067740053170491054555859095613930558308580891602840005710845522801090852038165414107503553885464156359438273014777723041031082360722528323979206693429455738289541814376157086712303365874892038442518583200446285726509395046777935656365830358223558077369945579904164291257827548227885888102060879079798897602619216848922453561280873640016010095586534393976205543244448271713890938082869530551898871330204814313571314267433337666558377931961154214572478250559374611328928939400738909590170806232763933547538495902835454979192187757763784314922532456583554618243558384315899154849567003369498052760519700083308714646154482620428208666606783734329061001270127881150053069718540269061097889703113190986535837333152724627037383823534809230975086517200491215309962159187402647399615431489180737352620075462922608458823585208965703507124761934214348096600814127570326211242166753584466160390322024789500632929241876356838031559933887340977775471232847599663048690831961172813122137627800783730523944962122164096648126679419062549321876779098035273512667722394496886593196405866811248262157954634184981311289867751441576530682166488099702025633319067498515635203911220009645625755401240542145766908206900190449697408152938466252811206469265001784880062146842223307232613911787572029270849272491913629522549449165976069712923452672270216116970859156251220277507634354706257614912769889707798327768514453513641031943460271275972300816570239311425967176259872663839805657890552582944026503809616857236539885414423166428008970499551855838120332017202237859436445689744137698108236188243964651843645996181917395009580592725343175069202315161370143707426164193178614162030649646377977474966617391174428852163557572210299593841491014315619242094240909997190872585065625169897131018453656283579432493299152972565709459600274597302030918712762594083801007411307427547552970968746774718404302945291276657071868170777857737754676094409859397380276908241496245708496418754677614832708080872136321990900656240937389206379235997796555848762025447253149027011847789405105130021171788178130098180301856312500570987044834866796348327461573778589336650256407827644442575248553749383267122071863666822787973768853974401997751251667395876970325480902501434242086721942204532667668835424765671035350882889190885276643087573678446525542692794126082022118980214477528802365363330204711546340577849081730536841481735460635981941558589488636957664361903395086747937591564756731792621629600181910742912088547786976846434705300835193303784654772470183434256819634134142525678096780713675216447628390613261144307780890124439014289166965467436636520359170054341853649412237726208327095853390462949879233872581276303554341311246039077710849122134179021938485163538752343037184828100817764854516814039052007259726664113240767710556739993490134741543301470369804738230402002378830276931748153010612395610888557091580647873681412080832947960394411291187909944663080992188515801091967937819312928427384482827599443601613049960128842328217703565079028803616928501386506044330324555586718087779587743238802463723862125937334155813011644227914797457521631540956095420550668764683220707110780400402116112606619349814177758735402898517155884684991640128766148496982089804567600393800145459102656819487889465970495568805787005667219522236187613078045122618405048861873964373384864442346543487465228556871159267087730226820277312956391159259208349858263874635770392400261485767610783579039670907043214505597784029937394394636340883897825282841975189716320582618916067939196831398903845851881824443169718170895397235035914920924813632560826770970796827888142197028687320529288610426536308086051070905891161724392434475718261243485403714976517448850319654306856291206057411734598825813658967294546190851813895751507909360360482672523145244091383897351331188544102504496263459216862585211227116607122728359034475560950996857801879117284552781169362139367940149519329523714624217477527575674903363004006753929846956543252302359032971892814834801392602704288950526863961075124940132975817192481465422314491212042692619753548178294497633592416705866415125502982391841407953934067207151194061911407675028601707010848928120106220617242999560571043933348302527757949706733331687288560570706435581031092543700219333800853950845616904258749660244470516051860012360065053566410650392433627916544774077862269972231921206247804287855397305036800887359087259681719115612184568752803843458756067234188379516948257302525351978400811592596892557233120514659902942823802225737309715779262360796863084288643616624016042217922311143565942923698297580716465776783410168772820937472816040073151110731697364571005502729512485678517757299749550451392313166339316885972962598515922549937333102309266880669297206000818411587865098841723582082848036507280314496872470930469650278769466218054094861602545516218333050953110343527948636729280712996186487061646408294510959025658656248879828232821494905019980364516810440412684273475257832162961788967849393138809655476991766666319835690023589801766320088950329832966206601454033683723713350909580536821229985215150222635221372132894675853963792329894489292325894595699190778428765065206681206552804951151566069200718036964362721048005856595049383358390386738047727843357396960224154409070052793654997952656530841391218892039748790958978639992903156196620924185783736837552048146609491328097597944376846948853903466096996261086558057891784478468057217505233800841035506515924167640367833600389337110480267845385572916952333321197037012899123851217899786435859522453986510137850832480431575559297031803521910728939966433670676074974518919737174706078202830660903534571121142775612454937805166849798715966266597028247328818673066800617770879679610139313526663961482525179824722307582637466751099957015246929727364573320672006525662749905161496801101703744421833328335549087920723495099409876310770022791756504649055856046549392766915589891573030754534568473527379796992255230601162485614717949880801550582345786962228090998839619474831920992513374481579544823822862751991557060118651263867322953380975998435246358287625415833772829823698743952799115982883456743378600163491956740520232763137798241164660127209925820324935409810808019916390340122766981739603513951204863270273547460428177703473335959182689953166665216673561468276178535867587492941095686215316674749990420408978640024902385849945120285935107053617433468846261235613290571902871924405304899894161457920060207660511762254352881585630899227482858536346879838301431677540283758887877830207003402786752035308503418396348949165627176050159117040103085066884452517519409821716881403513102463193827703599888447283666537952481917641825213460066751831188135168037388207794667089198879004999986038218412997813031730647608642513738298536974369327224642099559264278736135285804251772234639988273827334043322935833286703199331034750621462755381614049533537512580746986891353582813407474735549595018278600158398774972742257501289516039877929836372085716216551415599246635032823972049753135865006634539037333362345632099800428279026470868527910049879198821128753188777087406252300559258027650500020579163145718448545412393805566536748124129426037303560237486466917215229063135736113792475571804197864142050662770071072625837033611756573055825426474376428023464622919804970532551038737576449562773253001609709303752259415224260371703004641568333466669278241066358369293942725997950878436109368485956547005738477736186362151832228038226302503781760907805413348705269975297210041640397020129354280447609243914213042664945590793900035822038443984074195457111403338369922291102806286762901326430735081697353617975992741195406700130679623934613124512413944764697460191030838883314902939661028773601328707992509299376461835962426144415452041488770897671574039541617142415998945071908127474457671757031802543801985972413083737100201274706530661442598302695119645674027436038978934993672761167575428780582146777239864875519084925408921530328501977684646841204265091569848325264721035595962716733569506024143400310385248066991131896548978011666095968462430969763713569617304055895734271641598001171241003553156616923588018832002946621591369330169827175112314998655211792463087765121232913879975163515381464312028268010001602393489120902403119941628386565275160016421328757324487916361524052001940732974604244856291607029273693446268864396780889817509977385586875488342736707235346433378532237206304787947260858638933737557757842684907931102718788126567689990948053802699082528504282024626513639908122312172044519136504683506421914495844353330066706883276093686704864172622082043836506839640870044358539592016409074241710530914628891514824857978800144369900171766489111194562471538264638854097714140676433462050537487910206065594255605616914070166134903169058226126819592097224778851171171519284099249418854337973717164736350720905723780167252388725095669644732160383293041872619329481980080024557529848298906648642102698487488049116582042084534372385054702865648111102004141741639701701327948821839496230936454819450126707790676858136253909960180068705859674097795970212482311266274109106170755103477850784780890294902724436534295225605029966942704484476025728158233932549134958286174158363860152920653613592015561850201253525123955205085013787266038656494158979146615372925254249701598640442704371460135180723579699622290825178852428969565814014810172555004849463402246672179406426277829454757762248422589831096123628065820540088838794582401572902369130452799888707012650972809569617851645369557122214023796264416912286081261030806370861497584986878654244919058870775969589093590958887907927935472317547821063763070732476982903660735015752992130689246397158809859228138400953491390395095696631677510558342442346498587119442386863070398918999638262781977313327497043966463956062822090597794454423051206025368857139238174775860804933761590443980353373503420770589472774772562931006702997257952543440652924558300006227257337607572176255002842192218734043240300639804485096253444794338874365399939037930839122167150538395978910682436635190768625361151996461484856981908592009671014933242439830803060362144496814792876886330043412708679429647803891817402268204967110505037496521762634169692661709302776431048351110636973180465941872123262337800711114231742526282141368051629087755359704044855598157872002768145164767005758074998474649541816362756241478253906190921823611810971277141451947155563403769982324648216215827552998173350058727017933405698756762625132390817650160225956451449746434568939046242272052307640325839159797045603357636732292208602244785291710851310574172567975429044630436419609462818623634823260007281310637468196703305127208615541588215870568342257323677681216040636251123159178867814986125472011168956997828765684208452165846083588145691730115777683001692410924556633743469049033768955431821729520203644515002536347927352628380130984185420575318078071636864471677918367518301353075068511857091517532504797145201232542560477594592214718429686103986904090056769135121032638928161702601245525342291593509513203377165140900904735221926170476868182045100973035542107466883431081066179972905267576542984329833803857867949118260237519036239847263395142832265364539350134013643823032175271240784961592739755892752134167091341016814659554464602468127372778511134317941393597440025276678691927939543418073650340034285218369394238446032271617525003973984293209638553051344984961737407769551439120662023955032358503450844824753891837478948547029760242055048877963592219036601303243294205241909496087371814535576346710495728905605951233337137043752865945761773086223209224346163271232299206172889815245567279833135582427965451888342604760722756925243957302647925064296384023211600601590923928152800992247966284497151359650289061753821020295244798713818832777217191274485174863062334636396507440968784678819750118653623221320770199427613303109083783358128796203310406068452986897535522992381388955341009517414899603247346540331503737277186971310119743433497765095422024530454396568829414670414866503879804199265689824595582547516968127076337706356215513992736270554329926348250699966772788457672345335445820772320421514694314389899621964135562860392277905082724120469498694369413604183890950551439692249330415997810851943216509652316846038261627713185151229090466322555140304973594113363381635472890155037203422879866031004605312107619483461615295058742364622280882997981549245901875132641084369386404992470093571314990685135364958165610381409735234752881311622439396140659883174055262110637683059576907659485751471964088231449410915655449788769185268889288424636085836256865537753602370692986316154334259374892500039453695803495840783721213377512396566519416719749999712871626645817002075060495547107282259368404992058527978125316473587294604336378943636166367410353113156907651441215742546300448588137862806091363842479057568299619905956203230415305990390607750202118524234099934867558708900888530543430886004481125759989737394456318381141481487557888554974681090036293745832191774633056043879614802959358736319181209104005012346185463904430591947636745673231210840673043634231988986966784285435601104311462462173124336649138799961760153226519042376953993301756781214528794669400163941675063926792839422350046967607900678950544454518729119227867782536804218606975577110845569163501380587253153012530222050060330189736201981605608488223276431085807466754564618451669857010456817745212223777318645476200239385775001934796721763806089662287910732296539634386790427857422480157235316722927184622659269383740989819589715521879499111674426103892496856187912400820172851433067178317994901021362467827691314046982163152610300988460231298412534957787067423484357230745385960509178522226031254503092504511960844915539907601397210379431935295924456825596385915615909122983055548549020949081630899378966091486622973831409730175183662206298448412114715135352720513124617507198258228998097538239485037526866583207076904757755968459382142820501909222569849560018658327489654909456164447280899310857929229446987756365009665230678367277920769824963594817533210853972542676717092357560788947982493350229531753301209315503247357628562615722483540984795537661667713916418977593889762770184219307093053580709062907161882937739348728007675359030238912236120256816367235223873894408930829227620624152123806810342267691897924928341353413464014684840128772002618781111580677958934887235043504952440594541973451144107561055415555417335690526648914235032519579053564384709182260174968789665840668925913280178466946144345262210796551443937220987124443126068107769957743980959893806228305880862877509290755229386151623054213039310157364131631647517955186582475489902569617615831406387811726294069173806858413242887559746298098484937372914369035129111729408508941148965713463766104690446376219671936752683406093067761820436556849729583443860285811656447393729794176824495201354144538872012497369337052733804931677605552130625663187026175742765826348662289662148273401771392938390270139351418913153530144342266197699310975813210149862782286993116993143117196352269419362305539118670825688960021299827816870302615273274093735968249010623312955474291101747936361272988501975815040454607510399157800099897502416439226887622678197500700139981881389163596622562633259484308430298566434455378881003465740751382547496988324515893834162936389363985495272418288774096323406002066778512832075500242575661891236876827037609939467925736778070638994451248944825379497786538303677245830153078741428406589853598630505878689554695541563753324087376000802281834574289444019654613517713060721429568048829606172674786848397743363148890955620934923318540484116129442624289939897726825471316563688941540309105198488546296553018926783190298315483271608916332211150225177225931501367193568151132186430693982465134504556235137890051454006897102459218483510526765806947726375768117830172093099962652228604408517809756692568936178214499176729061566941926534459638148829131765274179937588985430928679974058304251823921489134724546840897708683349779111016439997342061332296178600929474685025660854205580541303755751722470520317890047335193198965933535332499987891614153854966758762899102531937392456184068019109486424098223148574224547030857169554756363937587675622659950791504619698107755599864331075964547525566094734724375911850888389018289392055580596877147714391734899554566457689428936044982071209569779855350051581860232229168749971920773720739728803693565311081847044703857247094762091302825905726705360757676831967057670066947053278330749316994861764283699420937264487445512636827327107520884663508250436178293174059838963614019927326286907287951023528070787732960685464334748324653681978963753791530888472775637501100869759800091326162419682986256668303160097602752775685845712980524852264016561078358882687881000646980776704035167242688395210248561041097956066498543362087915528521515568321414618953003538550984486945559266528062499620765461439601712237441507411331481743830814772613520749907972010586325313756947712388278745908436705706596618658950322091290040892694518535472403610240256528181264382905082230082291694619309550717655935051386637891723745467264883776790127260499292039816397228642309004577684491880532470695299862834302469412955486046149426821473057814791873988609215823363358799200202381459563607774582088450479876403596074874661978533680202450545012388911129732924866481724245390532598802640762548493170396556848403131351728567438075268831942498652659001502819958895761093105741570157244352407961219655100861652303340318791561680320461751773697650221563979842740987407964706333208067037634471361060123268071241619891296687221230521873148671608718851553511206055188670269115494178977611076145610669923407792753829619947217903486142433150345725104677215464842548089943907597811469154029080401994120170258947501360485709422929719804731445048030124024970548954966726694094624120436941204636593149311335542040827306246860014929676356898256471253798386842950311016222403659076752014114059170939836127524216059808066406136573669420716244280794806645249136671753273455711112947725158536312160880011206660371393752978371733862736408483925697516744834617718844648969576051303190200411470466850886212728941099237526575660713590252086966486718582624213593302746268265878374622199588279230806013031495878676567893326392828626885028283833297385731234545615146520287739794555675636974062377379537108585120687963185853553060939176840139190698895577805119080707912940617421764012410492077660686647334226318471461263549461778674141895822220968797679613113532724294764210223107988940379954760878006919907710330850352731980259293335191901501368857033476099231382745793598733319756929245587316394875887923071084784218963005415654978524727343319579149895108135305518909636437166890027680212895702490991861560407795107460810765639836534313484303398437022617882193250796442911522258078246541700668557203929135476477141803521613405753878410959414501419466908032631663468142802157396984740889794273349362977572847679908881670505398687708654956350155196922884324894847327531148065426553591385574944993889649357855291112303799760510038515004847709059543494296270465659797457426999921377683185863045643439962442466011530340699120059298807049346878111270231911478870078971601367656749994858352004126533275609761613792849743753853789116804542835502399972252546806493497793498118621421121060041341099385670275743873985832499033659763099412811615003415481525090101498977568594876415318846322561806352511934180291376846021644307959279465972604831116760007289179456218546358842221401146433293910846742568477968723118721286148220993462937662067513410777182070669868827528772967365697298517534612443384153412627756504237765883333801577256701214900626616481831265335792007713272110601509867652468987353189380430114051436881483955652134240236901340182167356798062840870949913028527239551701953014089870142206203318458075445163640143939883512686171609539529181268658724280652102001026844001970083682488821659887196441476605347882181581379236868649124326727652578435741023967260258356004703992326540140052737208249748649865421487595515861714484122485856199061707498907845250157040273238962888839123149425062685703192029671014695724806087696365353328097476143901236402133915002391146395622345587155212273423819757131777820954096150412674311205825458023763517248653088793977506647708138244849030411204206671888361625761555838659904348225897479324862524951010685145915802490155034743562778849214170788779337669660524850337608254042307513400788846368626399977415527565566667100386177331576055473646237275637184930174411283169150901486684703229452495757654399835532861902047426899124321973488870598142498605632837778054074035037253172967326852312518005853370279421352819325389934116294261691273162129716394648112539089281430914477505235846360933128305784975486947612066701142929085153952440258756407745164057924208568918287036025359754564378587229700407167343709732518041415555317984885683873303146528203575578518172169464185760448936482365730488268117716331460778505397115909731367790407054105852466645980211641369658257667595214036718699866872468953831084647845159585302170482779703667541245152006660011019211371540296562591827120490699001481797902086849002605489911000566822388466267567500389868882201743165706469068113262001063639571083478246195432801462469769138850478652117844726987060298546786533783530629319330092390485809131738966545300733782604097956956207610240951252348773222782308695597274586832860218742981355464735799888927241423201681248613533972854122258845957443136369853824042620220689062760843869450364931756605821515728162155837475022264518025897168933083520888946544693013064744280248666989202632279441169396500343334765672153462505854418016580369822975629239686571646664867213762923106124388599906003955003105634565150203043334292559074187887972917938716812330518996639298361574529717529591756709837420580388366899671421826880156012328755029751427530430387782083333831548910837726591908414589495383487791854456385692598529331498141253059544916757946637988626624189868214131019436085483380081417016938640525228881822528026872352407792478498733185527932656816756691750394098289754083102131636740923864072692753352659340793912653886530537009592768312727130962311377512855518152294376501304981972505458549769949305793532796459141707633606216212401494255434978984221126601969379542760707533593173681834616977550264886426343550315173291456809343792537784792607850208481030888088496333732220729920881949944111533259331101333613591686303110632764342065223705806671825484371806061132361891871379919617405296995023372180616412095053771972355256393356285245560819484331418130264301125523358401184185352314607014483276271335302203873569061653531140918995900635909399455657100352635321760510662409686203576317429483797962864799390168690118882451476483622967590421170005738119249157646794017192473996119387974558841888004861424181450802543180316977055345202817535713010623947699309586147073967677733832031608553493737930943078388559393882705938092078572149247595910167231524134188850678205994920009101297155001577434184024872969311065426607880878260102970209754464160604514293379383062252769112586901794004833667557022634609724312473001864551357100131164061465717458010452689168123050571895022775927311481549682899695522720464964100876811672129070981517201286196076685498973123832038919648879047970828383391207892513765667742342040457200208699910956860809033436929185279279673399275204157381044087257490455362745221145747321169159847924193306422773299076751176047906020339788373023899990481897951104725432546851821400271070070974260085022062277238121961063585594508350314142778890363913432385833035989339913080264785341518207703642647875506130797556062471105701693332300686627719636099716588106620577218352218262626200976497541289590747334378832442648504494557750576537820415819632175866602940075224912676889637321384825157686356602609038033216344395095058765171522157853386953444761504938006806445987133830375871328512371956969743586202044504574205433822018402244016227440559660824693252884204554505625557107989297065901061760533744865473305309517790207650209093736346618448258333403490587601565922946026049025291788394885871574265956527876590710079071784309464342680831373709365408002965177066918078193444975506951226482205854386337239550413190682214676286335963934792953190212993878460408738592620380814897564904366747328781025018732192331536931002751974208765815540572971468467395718913234438560014395068435663077430002374676510941611157724128116789577934268099801446046296509545623868761376917946407920009210425512392015676147309952962577454439565400169325482745879008603388802957908060620654541895360743701244528163196385973657934735524183436274049161302073104827639547561197370908513248611378190523151479575471780127028958583512071901278096662895670593643744445099887604695506794226312274244339110849866442808838049803600449193895331091368775959091787623318575395485162889718680649400215640615235614994995939386500219939731192514782115857709349940473257370203447603859783139175826331596280267791097119065889125187002883988580060144725281462183009524485322183408710831694684100434784216341231109910558282613972199334101663433683958704181292930882758215132887720061701625874004703605199917608876176039565800367519377956055849346344418516724536086110243353056866356753730269024888337894843799254892870831172591995811408335790669377082085966878363125492680719925482955978544325762320654449194751212740978728288542739240728227068911345816807428291298990156421444608772244481051202098938065798294659119426258018269690323002294643630777338298787651535953424688269996035160117176323367347357509773829687064384404787788592249598249560717431244075897506755695551493899438121821183551135491659141048614710062779645634420419863445533341938202190230518332137389955465246462397017568165656058855017792906199941049151814178813264271609738882235001440488192516722728105428194860545900205326257572979764682144020688490757165351098379594887511819146209834977871220576623408028000116397712567483047114368272561958256880305745171428769312560410603199229525090462842741845755889729443948734205427539327193616395807941110443110481812006638751922395031973550118709178993595041775407386135448746634915493323049411614410915952422778757275230329063340371325172555746819776967347751854327336869904480805528698569282107316900020121079733218231259279488731735495138083628554693048067086151869927918737415830471344733754821637141100932890026349254204299449803126125534153492639273183645970046031068745189445154788054454000351139684796313368606765650083058799409847033251044195477750081763873385903530759746510125562542666037539341936806770446523567880886036001407806798090533283991052489055392531562627909952891402810001570388533863018014008527650046789721597409043179352670293062211917869106985035569378910704730939257805072512572200006737607576402478844576010399554299849598715138565080449483735503815125851081678400696287543126250882953973948244210374083923513438742416368023424675041256077025724252728392073021052905836328891120637047397829361675657790409484442253354501058289130133905469731207897669421231795371506968081058556883510956040700948569137764373989570345791588790532896935867896019635094467396350294895519890003281375224761453615075380624780839604668696488498707468161873329286044175202647798504885513596045338462931901596291865445714600415154611058862524521655551341906107453579293158802107404062192346174975622077142775800388814414864511069647921845303143387372469716585370925541746695167477301923057307686122657597124118221427211197145793511420838579932174615055257480113136905122406097871064732818135998265375629867554155813380446471135954363315253303516981108217256297953111378830172450282324845564525956255627271645110565447392422951551672422827722668758135624184814068397141373862964203437366832645633285357990734587430680750699991730809291085412782724114860578494561201163727066193509355787045496535167821430863146490313448715838619226449387566727903135318878665920237414631566075255510792285648450910593147549484827607074210955566754265676802244748385702955366892908705355708789236349808390781882127753226468751347175976730073860741507310859094239066852778417967454516121359003165585539574354671361868128247300498679429730533993678366260363488376362283032682705272808043291033809746273755236926736042914625155230037027174092704649220975861363551605494342277383493226288586300010493123713351001291938118715730029597968187052663008524608926845112826732791529821615217820664528064582656281883244160662119630117080474877693474835684647026996195092101394088692464937760271456572374682735612739887726389068961986557700704475934810276158391014268698707791877051011292629489371051328814125537846104106248102800899394373684579059641407454859908127128869692887207937529190828157833588240517682433568940306889634257998591381701637942824445804528452221207536285283151358183787185225729931291912671784205082305662842559166837653848934833153561212920986419959810067287157031935786284395501998382797303741882208018927252776944953798549333079395515714794688942320780987784987980661510313936055188237318848218016958102727728313054700749854068360070976043803163597743421968068903611217296157832960495021513310301323238071521840898503230003287844923788780004989239255488966453030422154392568748274851597569027040984077569768659074854446392824427343672885868269957070396484528104565953490413429903364629983423704843706005872612985052845528344009529128282799416768786511768551904719636978636452013526186521581032447383434764373433626381166862089841760481726313313469982157727245179486711223351846061337848183008735829102351741393177912078547474539282463644557152050617329885230478390961088557013429771435773686180817515348498222878975447420699385685782531077456136643690494956611766992266816299646110927401241599427181374690080260313039447333097901924197680522149898358627118062011116049713929049063114941860978654676428983110035744064634098168134429193607893907624783818572255482995850165824841638525520490536885043927552776569832955978130930598108398667385239478854479933781659402890662553157915499599406847488401954803022287022951418268674704862089411171980392535636576964056515557031656158007484007239270195546877919595160016325548694624136515697551890621861203776301114549491633724240588805327474627797967063959306734136371885842514661731877166559195445612279225397434846723295903856904491212226447052372542624844900966334761907514980012876702823527313043999104072157835407758537096161001638454993716640662752230009370663977307730746683007625818806460841024817651886043882881169941067870378101693991506176828406089294804595480196747281797179503660105674168719059143494737270887847286295288355763854106851529293125051636864829533020806703300248184102580129442528935610188304544602425558773144629864936491588112540131047618741213425210964277350669163627622026472903525626295621942072125738221317959242456960857961777221298001836431488611455676079067950015809555410057811417666673693012684231431188817955692322459361896694862642581348314692577552314305529577774460891328738627162966547883913927547060489456116900329510548375953615790342441351540833498200419824363730522898807830058101375006818246082516419683337004615664383180862412369967941290527959536512964461566025441289590564735595454657906634832217398181379544819887755077253856407975316583550555060351379156215264147907870537336572624457963854746697284008673049564971986136763239136696797925045761035225986058842873320276065158496154359342340228313743210510779439102368563621635758148204811490725974201365388682593449367191018376726074534516385849117147122091859193607249296985059723872725968253090696987580176700114124917455974643707230432184180930194627791282584836051287361641812942520477411134048912104488575282835324165940529208925817602298710215693871957690337706070733642340303798840755878054850354504441862971282423596028874609318227529683826065556897888543860494691356654718291066283803313187812780992607918251262364140953070009322657844696200078006855804772360977708035120976302133088689328842019219920281351857844338799348557566603459762701529206778352293043639643301867578738016712757194598313665054026972700686812458845121934795210046918341595280727668012357613431540621610180474998879328216943190202084226140146711975085951224704422886299120904623828541155955203761718028460537389594730269736479075430993637583961762454776872718139008994520092624860160517035380707544915370348970814714361697571416108326061218141065556863745306452309886177687422936363453012509320954498660234773687333766117330551049737615523411727555219427829233809220836237471616615682152908381713193670482655525696132550922395612525103306722512914959628935421102968180130654091198153644528606603951216193323735539794644106601141597401795531098537978240828845591033409445671545709448085285532971713580867803582174393135317525498041899436432381003558830819380186605702144252188790351881170453870726029715316968304968779468364540784281764745767660955351590952304173496918897799754839951787811132299478540981880803776666162240647758976479192775720620349556605392226796120810730067610696402695732708535927149106796732175757507693859346446515547954997357387192518690452634175006574525110239553991493125659531459605651778016544856494839083965094621309023162820878461403397245136638187425574505046814081774934826251960686567863047413080034466269292396793288778281589322594398976852039778054931070715166599972843287279587450754017142376793058271953557465310462629329599746129900519774651637721815169234298865459162423477596065707159133188548488243799381495485548011402315700639718479420012011499006559534649472032428222536519474303629181365838700213231978572277657275414316779766000733551513627772322273713086360117366089398291272207151310417038664680252613174575607840065234993642920210662976420731214308175978236868666464938802674679739302953578221335631420696322413882204320458360919163166121404152491768069850470190120914242838268756103802040544593054599441451216556482925725741012911000753748905857682151484129190821879124474152954148936769950995610660948533784007814095862024764529161534045794387505814711158544764247333580144757032817701493757703894729905210777662756741436786703407412442318113938292484187148700851475499718897535315831346436944843891043157934964149026687840426359399476717737152054085783947062283938109082352771101967732417887233592902323085125715924581479917414910537855308371450280378238876274712478238810857633216329041159289351889266923418890233501235841661821830956079157659186977598073405944197737320999366882156327786331342823985356214270107569666940693699878620531271219703623460572098398301409152216815377985849094435663104637660210965040563343021371433948874528600060588466819396478748718445599120187713139283574862788339539737125767960492276340528180367502854000222659879843286437887378831315861257618796583305307083050845619742845992500267605283354701450531340934336242120595000599569942958181235870362901419919407887711034910138225819534335048958692522305160498628739573624158602762703007574501115121523932857906331487967211810680534336071612540206750629631664757917190199697072997972895158606505131259078610083044036253419355355593601836996703092555355848198118465008660868519056896304800929363881334717987125238534356528758566601724971663385278646974427588305960939447687235415809725098641912196687267845116278209471566935351116360413070069440627936696812402025356880942575583602782196024802212117159283193728537757007257486237396325868927188680482632137220260471671876408223600670213619873946588179279349031539196936192694108935446150473826005160821800775190101088255337565257391571244439155554578888593805012616572968829939557393502944661300569138107492337936156442279973769012067807646759362450694246047662965668667164053188786952533824581567434336121946317833034830435291835835658495469681036053305254433853043088941869523011792547433009346392676297064951942441653907559948000382811448720545341448072459990552507301923322139377777908706851406508536125351788412643982995208126650597823984857907653269330911842894255402412531100271425012622080362428021525150355797337088803524494498724098263546801359886292512061561134507448771041132678035040424210611807201235362731828737162004089743433528511075101777357930683109780050827118805731179045919455038711548101870729527004579366841964818303124546768234323675029397769896896684586021234831241938016438292793889960664455035326801219018917829377258152523641424804399737572266276452897330053721503406431554692474324690143384604285902267095253789405082777113255652275298495127513963446373993494683432223635284383141661779154009054402126623403663860385439723322154477214288186324148077501325470948190154608405444804334874867083173015643610982382027498489357714192833495577204809787043925106947399723423126195722235261819039517637247426642101186731215520955560653260787954539593597813335997581992752914621935483288975981222538829294487795213904433290343970188695515624869735461353037177419890087851151237492529135555996974763539098479619349839799800746587246173048135474584155778848736004716727917352673163596524841325704017380262421794895356323478068030568031341136427374602296955674100773118933417877844457003273369098648182470903203983991441888823982034759725183391792556595901943363437344794337103920230865358466232427983977023660735481122608999587896011155433873723868854955019670055659488603161482846586497402480716413528345644018007772564749184580496957362119030448079659666259445526407141470992951161746462172012729612765892741061028960647258303423004634485068348284166213471821252766453745590206252542748109599064746308179112240936261170747313253428315205915440441459785893110258196138697935742423238536237951145473110642715446165815847195256001827356580515636564597622348844556178968117603007496697566715081365118621935582980325777276570558239334430035763685561537016268561138304580078807258553022054144742506695687112497960476147912154319079677912658283273063521197771649195389754208596213460564630852823787579194213432396446771402240713320911337750654416528209610535381116663833599447316661562735906978732270259760059725060722182683799579916305514101945331658743487689542002273671854829679247736789949402992036921561645981712905193517426645156103416853133924173542107305147459639413820449625967245691472281100772491989900836651251559013965404407075515114131183844075808891761279864500892255276312975210575398608631200240784775086703398977904989431167959699176556965513138818944056790619490200533374805008430246957226047777060277258650374474688153210198218417589137463580713930571828644973089172742795904561278935651831382674695695459061072410013905139468350642611456960919125587861179571702363550790294630017742128974243956521243692145369553208538304815664339714389053614032901848382766679762063787953399810680954437198435631461884157756744826569242521347042678489211613664527283411529152349487482768937962277138890470097431257796992666662233257804861442365988804348331754138768066722130913181040621103750699797867894724200735400703075890554158460483607893669864643473836766478503022874086719130288292231580976961174986113122502326829924208646579343180245877415142139714890812896890661607595290502598004406493807641543824965701119470527494019594149083374452847407334545250725491858076009003107757685247515157277886921243085182788999404942194336260246692771356048377896233775263009300617558373646715420810409917355052762936616384998695698241077775511023604139345965566621635522052869585161861997151949164588488917501225875270602816285601288482224984168228832638682771290061484258832629333569432302490725393249968989987211963624767821674075186545866162144499091142175976890313893338995149291402027584727951433924069514549146869561606147134846731903804969666757090441221774887706629300796508749456007974364224239037693412968051887622067627920219775999727952429585967215617451930522850860030006848652409771216943995144287517264927577089471734117301004896402256270092851375070335420150270413330639317098153557040674865985980986246696758673848411410750167312839692486439807515547023510441314250322925064765711634644636813337993661674887578365272391757861187792825072521014056873353258725326161685959427572281866753217791182305270558867902427336726339913476945115394675385994282950415868729548434776388474131338979938965003881032364864471293471125625068592182532301022057918935873242883063582823632893597302891367668419876804604429584931599349863580530196299059721386588910531928249187174970451244749038954952825284410564334809497798807396576551697504876372358538842266571789475578453130444790415291454513590828818759997347122563350946596892959922623802813523252449249018768927211005591496926515913038671096226478289221675165485495898356800492940414088951931751493954286674456221114816943706333888572891600616110652313119589644597813781933149693746522197048690214825649158496160931445019557150982119814578721032452798634070072448033469754615238893231662779438217895818672863253045537248379948427877932274941811407435530118721060868516448851691621793210373259553173766587963786674541241806303055308252039572762374076165793135262721135209590833932784128853353058218417883555913183104023998581560962078827984982094051153203402335761193520795897516219510977758179917524468057998292442631913501638052406907435268031222345923041467414084927692081128900219206839767330676153901309390527327573745688741897653527361485295819582228747070029153986064705561042822477993123106148392745000352779340313745375408330947576576060757651530694876848248100807943776906528228542775252190650054621003227386238176396511763581607354898218194992474977080377475260987390877312069281607307990630039738450234516823154091354994226148509236117601220076763112627832102071562130563320834659237786849789587191839702221830980774851002594117751953239439405416769028531446220691107757818527885868070493376681954962130478375824318909938758641259747344040198614145811759538491052577515200270504783767568040247994385452419875600838289750869073381772088295108915809188824603841604458300626241770149885925782443221697847374341426432071804326280662094990427054054588773542642142929216425066802067054638968024866116022550295109512428074352166092313144344675151983845644814397876093901104984746425514211612451052665899392814477843445293376079141970910749855777124086746312944247810894781074757408917388606067113298857786314175435696216272968907960920492067340439471635483075378703222663617548578892739631115084864577192342356694255920871736612089829919786192776599478650657624322410224789385348274978356787172339655980520529915840054840272513724855672824043637190800786933844108329355948189281606929864895786938816229159163312522037565584908169318949741350746613192972187817972414578012987253648791437064244136491011582223547235745576937163114553326733200108890104506282260390538228305169179618043349122273102869953576164690294967884243893647819652195322979517783525760218875086785557698049651637775981295332378953052229585040778165431885984676126330836918631017671422900525369939775969648950667949739576127566542364091006842994500358922078284836246154116892404638941011359010778488855842463713662116092670697215134878059898635080316997342947249814423984027379586269187809823500439408045672187944876915654714376772381061015385759118155549895583254521450398378247481382872971628656656647509744965091573398654317019610369128780841110937869457814406959404162748797357381755061306186836479180333000608177646410629576881089431843436628690960295023047038962642508858413114189083398768756328304779053859046946047660733996459021123527114109407007491733649980930881618590200000540641533942150765384008020027115783461469712513881419706142177259566852028171754519096694861862447481046792157108391092340182844884833167903818250872704858056796748706131945619955453587175070342877952656215274244317903335413744904846267219375570909791778114141249916332839527079419867738644098994336704009072969880151681222150733620336875440257648581772202491736005788378946226599662476784624291577740535135432057076197077087338472755562801826916704699677591754566257716184654332747483249499800496481278612681556753725664944051653264680432762414428994589713796152128358218951763584369422998667158351907573698094889606797951500038882593587883916095225356958453888868215745387208715709020581857513307341805171278060623786589047901660050211298380066448840578800339427313343249290237847533539423542759225824419435106001385997108995250875628836100052579139961559577821574479992986907768561722777148453656413867573261087289962174631709025561181207032573117360247661680576303137391706396746211116044859792480580726929014179976519160002992704060777532051021808136003379132240533344729205394880155248128927323715149824089600157207557568320391677478454486314912983652195643678814647188874120131882412079666356375588612950524212623700907321988222202002072942534042983017555823084702667898493824229229760984444817973855776098536511174270517059902809508657841861739239295357591230160092432068127456809844915037114670190589494413810169984673004016043804390705689685980642409008760136160100513801792530920031253994454398870558484555976910034717031269972085691481778078640744432618056935439378556701455025793644483359651503222028770132253326062264614697460929309824006013075698000759020174608886644978113838510469854524134988308824092084146374866100693288860234235112938863951344720712784847974600982767098997016922641961592208302420584926773115717145692135402596139198490769077919063236320482178806079955538815160965692262380876977522016913505746124303751047142441273624795757560285556274963413351299007942749131082727082195818325128089658130712514481505444819293012295641219670825489270858316369735080214339680393785737538790678472772980482445242184660379166858624894398141904843845146870161707481401110524349416717478757036856483283603471235438396062492791460701706558378406968424027195279600687573720197950850235221155972223475517178482371117484797939452505105106444135167824303913912918070230066840183442111017475503282314482720575775345808579901145667544028826890824414202431828365761063991031800159660406382213990557376697108361655803059170755919402199285722707943785793891634641820938458631436072970810156700723342382111515411899482958139727405832021583919204801168081773591282194199440862730202093144956674293899840000091287957873835145753903282416874173180173603535168726855095819798604495740485462716473179433747251297268413809273913899904767036082787664413278698706566725334843834273335481500565168529718233481082925388520449296749398200756831388686514012446732376243526000784147476399480152890278681461985117109199115783096952067086257664548924872574789461427386115450927960925664139247746842359851084878564091248223976686683471994205758405811326276246698283769730343018760775382950084587230488101758227160918549549203744117969930872953947269476586442105613717668508776108996876354444974554278998499565011547881644073422813664897724393506922083446004392262565688390932796000614845411807671189541080900252686299720990902477264381915317000498841968042983343206946613534085563243004577117303674389032636649235929827647717091226411136883595650818739313393703988470518502641169398709815999423446323140347333997229991232337806639107528104179057430150646900162374346989627166936426316225542223491625338039964705236400718633030834160455730542391245378866646222764919365819603289579340863210191045890745766909137323773731661134738527588877135016014787858459985388231953973813660799373855481470890281323393887374085270415761299122154351185397836744956583941969108843782001331788538692884421108218081090023091661409164028341823645425347543995611611475349575302115796896159727737983451014792460920325642360335041582019316070257195532718504414576888310062630376267128289555676119769238217148892243352981784910198566764138939355400331609420106650287011589871881092917107536781287769610683398470340242381550858142561863717061367125102006254208212082805255624460030379651442637687716606957783549254831922833469800646256725966804205032402844421146009086634635871844450682238401084516557305622393551981802641268551197069584593612562805296954592407213254586927219040159768260990010343992758793523786746083386631263730122772766807047512423209194090624839451114779806167745469583158301679938784459493805015366917289718908677068091805269098229351678002667425842052342192281332282059214495955398963706446758538610021579822759500199833776199906047052954377265823345767745885161257077043902776224897885064543894431411659569183851904084771875273587010794549298527090137082109961201971069182579650095373922409807383436082146537450409359633821537527792796673644560350842502260747381262326121400116455195035436062555708475836493870620588519430666574632223964902762168881845948128703223413953111150265969579493138114486084371384955319166385125535918795136025054895236396868906813250380306396125638377526768673253432015435202629643143055566399564086825122089726639949434564793116132250219206130297562515421989816022317897798528217106631965631492649002360751128809511703912741200878399965280641567204662702381812074840603968653870064993412895637272727261885735329309644444186273754817461836207141461278278732064407201732044626087317336186551930977647476446665801972226962149010415073982130166166481051540329618991875244299555136181601329408956956617057778714929357049912898082042491063043696788399645765664454203913153178262342520599318920052943516550305593781169309849277720413876350724434572479102033236341767792397576392173760522424024249391722726387921677682783446366569810465822591871183104200163467899403221451325915316269928198475762738364218427046992099190957352984461925177022938710049358708548824500227371463094186660917543835461381143633838328539234322188308107666744451356140001808972162835009619293816859824270696308376696187203590836716018657539873319830290006852802829096683591139771965117389514434645678599526313169312449753136640604511875863972099561154340194446951411554287148278859544250632586325909338557451042845803454582283663969313467369123625403733620491096389262828627082956205800922484999636181719649475693088404703165309204864538839443290983330262871691474742235043687346444273792064665577487055859379339136794922363540522446533020165591076883118131761409782835541627837203329134037526524190310427566711300492092600146955702315201466538516962038337437711941165951994982577359611562358629043039171576249909528360646674501541399683980464975452851021806546186315787580275868867377353791891007516649874368525490961468022502371129231357046320863677776877164293013752071287953494054529747091538177051891639643609340895428229418279479141746805418291050505417901977595277493953160611457579621154186376204140341087753584239460859712415446044281517519824819997724130147871718923901322453148541243597983184897148820012023357218967393566642275890652401626456695221610528490786634455700878754372490580180034478622158281184653295617808058333079464865779151421528785909594412052448248657189471097562851830693706720290698657139948621929329932328665251769228905094813849299313267146379850942247838425168900210484406042473190559128325469614991437330239213528796000376616821389476722643016021443166319587857855053444394849242635437221610613148985908664471095816431648435844447405923743666199281123718121038791094541713397408886895732376745060332334070320601508814057734956622793190989648757935193431997474480062098082047507798023528126527549986993834900832983253787143789843176115888544948743409036084891668996747368882898635790116735735314617946382490459168364062754557121703377381643646371638752972399583564386792330042640825409783725027196655612337187978861548802583936137899073614987564373924589536314195555818246261073538187264544418365242565065608351893507747917677612525376114118815188572077733171766926754365754266959040813094998193470986316449258200370255283557749020453854634384736322410755153757916192834270462759102734308380155445161667377868584718815710030991584102332568336437272667184159174244380794277485278674303825475248219229721061400856080083911670071656174086143887014867798849224851153123551161450556198086302558784997541268921733822727990042950825939327032714038196848903510050909470355404331433020812685620932057064278353468123058667294221699661405548875747708133156051488886307517644657341159311718775197747099696697878812334380872896394795778508757794188960719402667501753681554401962140419204161470127179716514750705376549445669273950730086026966725272693916816468871936016467417399823185935427563599196302641675743451627877404995802021597337553975969811954149218192251267887779017902488590087398476966787138047433449196059406874820217515564095760184390720478500696370207252998476073469357992404441272786179367184201467488974836738319734004799133527287082366503479641948437752475892038497088256994813786028792426673354837398247167467114377631607675396976385988239270866626228236024232254893850116039877263103166054298118393621146358518674649802825171690834849953401792802699298669200049844175449435452675616569045163691649614567814060034078706807180378846661943001238628667610120359744380629996019898937048779209510813061663399447906790024971573300784073184899074968805379924044537686217387774134258757594503591902684647103327724274016310641873492554878628703858793391328768806919789631632404658402677476137247996562528277955309992105930126409670369661570503894836191137967383011257995820495344697805919441777050748224110545954820705825705705140858148002325331440983963999378342475598373549443953398188608845838513421819251181227165190330221075287421768171833728676389196795232436960769315515090397633915430516073021745738210752028999519170471102161128677673269064254734783682645798334184830801166096108362534671065559091034258430949780381993914934312200179739150425155729163332957864651712999805173583191119256239478656474760813817789461785910812697940924943855220057710354007128914076053583726487867084068719295980724069895391973269679499025084915271008512274681301001518195983006209887560214084842932094346539208719889810308376322499998641765941065212290949266898913262131005060095397470337194516368786172828649170505985532179372488603665500602137062112410860059071342470316454123685921025072300791928993329259968565354848627201684156502667430170321048115620600355930246178494453263077533303120438604320711427912105010904206628127247051058931501348476695579875706562726964358296626425411097290880492621027905369782638672105939798298590648833032133539323653516334932260522607811557294800515234946561803000724456029365651170541046927237438501003311722551119710405411644872895888672359639727747128617250634862485168449868527860842787564769362271501995406373274140292215819985426322814677683368518681381186578675666283424210672606510214899845059669166721340136387821971415148453383702789190869933844628755132557869437615711418707423042921837884820876377006031337593488018502698895870731186616677561250669084841701045111487474421448475158456801210015242892609422573705318189701024959666744659118513064114335867307586009462306099338012333014012887929473087867216651060543254949290743219203816609992848894960972198522946762582202281060350634886891161680152045818428317485814783485411961180558358303657386748085434447770115792335446455826195957348814433522836876062634365062425579160325411878098651953466289777520786269378569245855849316049265625979879036847046912653768520411450088202454211047160975013659723684341794234776735086264975774719735068728403302962103966406427900157106316018159972275305300181887773093532910128417849641154657634901343581225277853069621496575725139859186465074773648675914095744012218472851441032411141074406985416409095319402985243697215768271748919770006791709474707143212829003776312286131854254270149797832557388462531080354614040057207553272957710954227543337714502955881751017249167328627857160819647118053274545226764465721301858833182037986685588816283889045459175276080974337092310641374625749552027381480227096398079079789601449868469519003925662440506334736937346450844367465104304569843182166368697636807379940745427967971224982321469178009906986380942326629764107718333193734934598966210561584653450490153009546713601204198414409479488651778741218889756480105978216838965576594179115873514306782380235883588592758609446918581879943872732851084319471909443265141152863135835530935054910174226688732615780053167082549794689151199853542733431920063449328632630097457656322852152706159532494348253525277932858697317152802836563928713161144242465825545875069426349589691304744489767789361341342245193173049954626658171099484942280663132279811050474499849325718388440898228830858736170271062877734753183919727309729969174198652487333022168022289606339101705390500387336918595390383047373404497376746399619623646143588168928856102139473136673726004659555514281729009483089263739919320000025455651905944922649368274535732428363753970903396181714866453124806569028206507104787625828245756672798717574430746420995693909163252339736305692483447918950940145115526936500035337531167033502363684052364687874416061644675743766501586618670596549154050797654420693581094370841351249730986898671665034580384818015661162919136793971913963964464552350429698700849891914739683117365173299906723658664156467246621085060491689777713419716871347642561146407275555847246735192036822917641777181810755747038474131643407229777616942138913952259665492872161223866919326957013678201707048608580673131404056310728232756517817725392357419118901334065060887366300598434017030007739051647385961139051971694011741004656155148890757942286693500052880102671055299139102588737749026309003702596411963260259441234687498541140129362339580326768269855660783001751836836231204154678582856456548097399184710076074440298263543507327807900088756729731420513356623965621566247214325929412452628717340272228818016881757180391312823897129996798491265348154731701892355287030220256724363474614946363826964242304047112312993077688834015103681849713419509272138221347648957932764311970314784143943834066748627993732844735076423392433075567460311182415870003595184227870744379643207639900263410753043192247307246253642898320820656485965802976807110665066384239208301287833374625111454246816076322536791356354500446835026941716855889943034802819391144884494745218414706511314637629517883394000944031653133439456624347170863116712373590313026362324416536874687689598352658156471948150030410184208045696887396839370889406447839317785234453524279781293707337773117014665535750010255112786857715267961194704998467128304815619486319347725601864635823997249706012379525161937048530178483033266003532961966316086635540185920644822808105990531601188644365338835518999084206897320812788427228181172885664322449547920689496003121680196451192375651916583051759732830570852011886674348579654992734962181695381629814983269195805167648097540601231204669309104135040549095961795850183132866312512903964069365560256972139018425242901229926702512035874957632814154834346859607524650950667600645364155736463225318354563679215423370011792063473496820847264396109027481342747047712488426763244849321087270135633346663437893843496830387900672050047111441645206328185016631373272292614031124323164076211767450055001440605705075270461910052699173087405252975967258301965063622652606052301503504727989142670608591775733177597729694941879278364458991421063429032847291564525183957225646145398730379973540647429056870042069675555135239345227683280659345150813069824492900446728292154783089809966114694150246794062852030768825436905249263223192013546200762162904679528576910042325010274283795317230957471028455655643954143218808076804103888516387525193046423154279865307577473359952213525777002029586601096682004409348769542925891806293361488465274048197730586059172431318959231148058130977734918692265844452734914429243778386640246458556990949177559596454077990510452707016634074381207647428548806568662562376118111807032146166106017425207330777829027047376199589756934614861608540791207740819362512724397486958818152087060853659648254599650863902327537322050892843755852223931071467546403414457439213461625971138788192453385056472896963628567089391073826525564881790639403980242691428722655879910529368400805817929083266769824525465991133901190185043106285395486768350549019393663359471986515527422174294392082277442994839712677369601983671439325171822669925976015406215571753108221622700257556481260681817665816005403454389208805312278892041733533135322617739520926906294385119936019833798756235986097103557498968597484665323270753248205363488242462916791830486977561665734266855629341314146999698988823498842215769098883969801933013088513645696805865894283993815603517775332714800265150094060892719090157522264076028516403628424028208738100903014373211273468167081314471929266547551549836395683332062553326143181782768651048436671396457490576488168772315798961679983038819198741863268406727261958436134232583674605490564972771107963481366239020914217785533508420179102114590620541073031582550029656774197390158931915003288017043876482765524305476441414766691402922235528577328062842206099111348785746455249540768958049261415037936300774232548460933418008723218931682131904910132596719077218836888782527630191890077346729853180048845197755870907680957596573658974227184205077462481098377171337548080775830876562397170207401263212334343928500803762603977078377165508770605772196479629651851695160616455139823178262039276213382831673455286476245933722677367538927771766182890841650330852535952871957989819459309498057550045422790675732609610727231450536045853961989574605047474985229293767009297094159802837793096481951466510684522099098257268524625650080937121530626347133942836533806556856625866777740143501728145743471706685613066569241517883434403770608664215509105353274748291885923831321032879909998121146500970672006951360507060511982545739830528901381173883386971424451222142619464345888216563549202988252419342116237923927491879654909163930827982801646577867314719456543684987988588288006589621720679683896324453619773323026207624566301622954893878615779498024252643167501085611042871491796773667556645523450217393707915294593390118827686274394387732531285142315873123302955561547270182214017072773012618412401950378793730646062722219777020086652882164695567726525743098440735622024246465336417819524511599409021298196972903427615564349445405781814484268821574368348394471537945209253620191544509019721229422958880412257014626113513056843694693581421019623304289908828444468935316270595667615491997554367629030679944878664908338512084840109843621806977621076839355184729672744684068048530863979197792982727817954149638905303696976286274896104705117342465903828191860412881635739956632086270632957855605310045532997570748011740788485512818213560595411404751062270206664553901448221097617945291601744570178028739522732711291982330440472795093117121957886649593427441399441456958891085192959421430104994798196414168715219284177878096007414555145049212558295001739714606642345111313407136614849044205336593295495433289407443934893480325513766590290534951453766430677555227465359762744726316084663723782649783363535093013301923760062052686965662620369433153550060531313669106831489520822545440263295083411544835181277040515951874180618399824532155650033015912773381230939911782564536315695794696040318597380524100316204369713405250312111810598538714988591375410340158987093110073170294289044735155690895903138376191509727789690853621481419826674238199716683941547535104709462724897204236906917993353015631896990381430325117772195493303416636289328858695426916535298243060869107031291459026385034614616291090539198074556401555451493769312908387304838718677076261398831333344947206654042239038426863657166647286809627740673967847876723340889041444196629870148159820937962975201644687428689512643913832534042190449063241714589461036713616830412094938710548578164873500772951565031282962648642515442360695592597791473065711992131476816401885118641516832106472052014833276153501500179055814546631630396478801664446893537686863641737979261498732371971965602847299696603678383983886534388384074882703520677345283696261984537945905116475820874384470153260045285056833866089543714673801565210642510983530894601245971759470967208283154214999198355541214291428232205853063554856800059732013100564914674287083212087938948096936636655545767602624119211665679439959549550379940662152491079427811936871242659569287893165698724249908382363009134058881493584196042081452220928776015830299924060558536352417394491220504559819569201605275332162850562071997694917883882637625853279609575211704829488960561235499603759011906386212458433919767960921606396064205244895487063582013702023748276264300913496079864350000514968148308417085293670128220672961792444654993571550546331701370804595465206443115948064175715984842814002957259135115064376681442338781651461071186869675132211128521604243595724530690852067648658153572173353344085707138368478020887886668482001979110977783831845931324756646801973052633468744203366290600943803160699277406495223457682523622077476914656853678304493539004826036924033301845793928546886649769519888353754203169674352993713751023453043910405065425977409952626835111012423450597755732244834264092587398198685457868214835813412771698322481277660415476273765822481292827167331246397808294696921858209846153158244010283802792594807208308981128110501145799962323546229824208866014406300912483870154566672211023184072620967188403065236683791075974785691000485027613117802611375060231294747055510039484378644880317994454420548658562780300428602814298358383897820885669326483409993585195749330114868922469134359876575983376925559887777766338942609333363881383785823453106127675501151030090122039262026599090236661504929441347823421793597839410204599362631532950063452001526933611556827004209846204826142442207200052967395162974835437158736141747627500999982491220484155501344815857095056403483757951801510535681908089899377738216795776108421527026385150842745359768100833203301708396874279045273710541105383349730349475180255178194682509820460718961537185002226981573316351835924713804718484106322800924589709221502275245942962797615719902427825370387861466444433085105434245887779994402112678841223226928840329530523865526654306126632325167660626029227912970481060788721488945040206711079001484723922561044903793951470389602210213690163117924118816348908422462446064883046389589254382706328581557114290036011616644751546255322570518141978816238932748808314364774615568352544319734463273771559147444065170690536522461307393239411400088496801419324778369976959275329271177244979216971449566756579073869808362142521843497731501115281233570672881851303638485119037413137472137808698106834962644771549578288794870855862164145425606383606875799645242712474491887026284506340814077014480212304704936136458714676770680415687325982085828881297680816645606739741023353577240458446450981842167306970168991227180719843309201138122165272040053067370946302773629842326256197744170885406894344380576075491306037729935731421324133255468596638686571435201389077871926863866991622069386401222564949784565193585586697258508295979815415712490896150848514754489367887767121674861010544261373123746702999751130805150308679789561095499590689811659345811478497078531043295357259105928309384726141709599333496853090714605882112703820039883340269003251021287331780590371675419654242836673913653184022214726845594205128635149330989049858257715819364955657062228855367258893711098320537743752170940424344722080633826449165290701134894129276573458489587832856246115140617140399971585335175414288034035073788291206292721421808457061839369843215514769615670053019021587372254276328318088992650788191809920296406417537164815426318739177382172849131236417603120399185006228266198170903075451165251137658118081296468576725350187959873660151510239045363677646202220938085296218035962929910778983955829262079415126052690076593232904950645969517550971027230687106597609532447105535005392450165084198219217982624127893652714388263406894841156788319436365100488988673669101112584984647478627941769705534742539127144422249871271737766373192140685324198245740218409896869756570000648227704870579471030250769654810371238500886576349867656102097556374593668848370667183371330542056448818501980533601409885836170428836359827786061191494143105608947975143699678783913365547215401273343006322187747565517882750696603132151273944355069080015439528100677790580698928543754798503993766419798545261858750327374013463020299185707971038457676411587471014454444540615996199851226037167690666652387116188321264223920329890524797146115434345164285800312034430815891068609874088140839934572162549515168353416434777956443878196391820975095641310507609045466813819821264552802116814890998114314989868399370320603238955604261197977821422192304898588508265735838311723376952217421000076161792541419288567742464026974343652198802574490503941041426188899286638609320316262778711257220247601081163526710755751235011620574047631199301390697078578603933867800076329698986717073783659641787482182182534690085792351859613891770536681583804031891160881941455445719229333198957148603576012577060110108779196689476927425323375379848676667173538216657332350440817158293560375974600610530306929341544819474425358479602756133969222353095860909013460066029552766950374491877353808673069666893122806840978991442888192627500431516959259883310642137975661608374226599386757705275578697057672780283293792535318990373982894711882324196931113586332945505398518723664111898575837324713804503604064022224637885001683819039496100061400598530649186443780130452115076833340099571017641041880203187030357991861896905513800904262459211675887669750980555125010504938341779156905264791239046044768875635926674592948404578591036552848277956108573410945528682125258539149107963459864651536437950421970660718455915741885106624367496720196589949104337605152412135239306788425532689636198600403115757340986507919835911901025705230418078120401354817419826942757300105858609022798712259996237297992737290787456710822290513701943475924569158668996455330115528217444989999767761107366728891654945422656519364454590843158479987249424143225649971153815286085760094703502457363245540463817612497139202785867434977419245185522937317239354493514566948221153946465257581278226792412367460721769470022292296199988031360936219935331868326153060539185702472431715333300274522188766467012381524960316180312697626895584496810916941922398593160816951193948209504689075468074409527074389751144125984376387958157358983833575668453980938048607117073221367180039200072647713879386505075275600609290021090864635269792701278520853619163351584649510298445283117066818448163016715716316375009045243394778203721882749232458985056894288296475423342348692764539903073601454020166175660990864156491753693278304552414913847365160620721933561906126693357252800025904159539358902545174846373702609260121002144968662695504254848651575944141423935776923217201684039723751352457073937655947566861979390089903049894991557226837649593561496161865183267088286191282942804314750549399161442829165868454936440998117797958364105090989770976084180343309492400267907120643899818264638796360419540047417824507015717468430358172276574798881254727824739314126316413669395994405269299707615566085163570729046539714584183612955809973703973926590188639337896364669900677865674048719636821286411474022825238233383022990239382732724496435302577849047329616151008683686909595177754691731438597303086124920220428336522914338549534736804335445241886301531852787001919319688809057838399245894128005985002553296558356305547217445235990848503755481922376442210939106793709276588203721243890422110283677522245922937225678078790044836603980822304825951153732976182365008879452385426724393118595724747077296647977764522843340554681768387264952765306668565157524061966902854622843187848668637419301495218800743215561944154353519600761918273033860836753510429006058719729110141369189993082721332853794417371205110522310422774334268586513516863099509257624770661860891038076008385398890426992949945171104305852079474858710875485949126043053382521372317487842449945908172017383203513325195104011510553463894072529823613948445726298318733584062884935581260953353485882408829868578225354352305025277458941165350787916009832058369161893327022945259270099015137079144453129262292829141530423802150462449501034095498075505173070292707849680192413776770506614043929551095549393406758148287863056776951268186841840244115394930035790879895663756060109144390452556428085856996185297007605297881521591414182648448063654302629848166164082740999135931243900124688356340229318873111982669910808550531124875450112912136756994883547336272454315727494957498616115214993273371114238129552580896527881163897361327253896159846141807863439245606605303316968001431784096317529742701595015793974095694555774860024165367633661145643151243291401285296955074931294917236161999357548110426592480385198621313549646819133526567078910965853300810503697080868847494604868712995902284680021858559081198416670987509973160261547074045893738248476355561758700010393325828117828607218353748020276232582423595091885947257964544296281633056767398511526389378649380481736078966810583841499867800904768112210398117940396974086468080657781880288238717637668533787686352673357895045670823209681403488293460388973497916136411639161848019631633758676621615846294348619682645510705433635517379289348178458751003253018211945831874778836020503028348878635746411988315994051577151918757804840599229797683465847813666415057611214100546834198108652666021621699580849894211399805405190833276258767942471639263430630645082098903099494252508093955922195180978895523987303059029034184077736728734023207608402975762851673512270759945304950366098710690747465650267652163892546578037689444198796172846506016862737578099757372346553291215181532075037522512207321975589153264862739499482375080156396702104734641472908212844783707352247612515873125409637025475054199056164297175228493635782745741976437769229929251818707589595091197960231750736358333978289347376027101256819940715533825662182880314247680646222818569416127958312263197530594078797311848455769144267209284099782661925813594123043726140307665442279092086706527981267524168567413661976001085777629632113749857582160694228319371938467066987963507431788236564858200716007705673827567778435668632924277393705367924331469010391079316904417941100470868546084762611758011772329148960488916908324527916540024713500576280355583406761556368814464672595692745075762139809265369005111364306980229273932434321299946670511349415959679733668869893190781025466229229317792544197912889374036307168332609396224181162073302306287666370337890879478108401024345563030428388092816396465427679408162434205228992912419625692308564084895998145069143302196033466260996728991976304715666071416700825549946278536696212372178618280023610186909582865056439601491210857870796013121104753909602047875169758473680658509500170707792208721727669443566418542597954921056951719129576449020017898829816166875249774469315682782609793224142827594029049760694963635602169617589443032592400131366034080814883701160046431148120298835980622327231741804534215140959845038443314840112576766510700526599923026745604113088065527609499755062594804527518630622649873058763521138976617027431276234388569646412664062550027267606135944791137723934438293260417201242031958583083645277397651081982542931758904373297322559725542927469707262153650996808624940732971260208635770172307663050338387319129456965098196826413863498881609845284726858410795844982881758574820354697358961699345323687881716621365859925869345037215829429452390877784861528487577893616444559651707242440412283617211843127658771956900587622714608627820675446523615508646408819795494298082434141687035405715981005433856178534803836953872671431986562028127465977386780396237537421981563424356245143962722412848904928119662217849239273023797856901216246542811497720463307706289647600825629685729803971663757543768401134925014652192306792969114426181292590230091543710783983971010939397530293028805428238527023737732483126892027429895749494156204132380501466478607870322601787224936763129074792451746571769376495045685712715907424069739689452727671778082918974614521342977578082650658582950266699192626689514535796713948515116940296020351951309075896851171301343775682802426815039017054202301588898289197302104020495895199773836212619504264592317060060043445585982156022426753281151634812312691403335061744455544298176383587549143320141476845166463184158004122790768121400385650721842009909666328577874025976049767516224278466776334831172669192625240330745331050013858296041874169510182010667210780525423282086982246680793431255798612447574883636369168454568802308160784725442109881266820653552284228776866834324113463036138633172123898665549292671513864047571738540421082547642460233643851581366046444597922305689306977979741441382619635888695807874238702827898330907295745143518834210718033031073965467620771109023931768473939666640769519043187861333198691387104894945872213933549309955432476214504591243783013848063598651791233070039794502965951766536395875086563071910364916238323602340987359216152257614677854623415198795698337043712721422256252029331758202421477810161882147563366425766419291751917725402236476063610384989949522294496853705416928696402392968318578141843639367228869686026859831057783159719085093825524547172121226962683320230455666100772267731926538199091028210092056005426659561498102470687741557218765547503728257335624051490540640876469986943330649281080380354515789637557827712399889629527369321719777794650650714562861797649321061683608815738677794549506104743591639055798803318486066344936003187097501515669458654082119490729876685134285254603838972066606101680284132486418214917808613151003859384418448137489387802022579452505273977868638552979684549226769660490675726740345683501061862135513287034775666721590227523983807617029362976614853843749206894486666665349273572090017142736363521235820943107747834516888735415623774526945980818851577779497584720343411343702922629235203762077953204379412231268000381765281527387488701560158952693100523635163686303790106062631027284018008127550976155837551284388287512056037117713789157300179812141872832381449676579435045793127574040786672856559269512651130713589323557376416754121485873961439808210513446048251639521939180709104556858493831215955063604482854434635511490177492746463559358747915228002641901870080795131094524358955407914096289582893348017628770230919605286395014742443570148312083254524798274063625655774261160234092868888452493001342645369780415852667442843980547976927927482776685183915527062175413456211813859518241013675039804076776478305104405588667759941458234252106733656318676125789698592001807213063084870393624801375499412352749515438830580051181995665061706602829415811775986985029238833781688360237452168464930964147077243911032091171652430244285711123410969107643229966021629432740816382043015289446863708606748451180419571963053864647062172431878802452284664381202019502976132174785292704833180699237775862024336831025482459536658492634438933207223444010406690627365410621284566624789439954721995155173812214778082274774448853642345241754132651057808570192241931178227340140856337305980550909297455534355962332691318989802154440451934775880680697893887650830839908906742576973549697657020986159090567747981744476480656258999292710275210041631235571158122112899737867216225030100480104585146370845134710064500701332944805071057738005057610810981217707192689644028170340553364460056910931825540808778863985438818041176909768122061749821363731019683367394236526104615666505697485363352849436070465147450494759142852441165080849505149204081178284725955606748015425892096901844685823659718070314217625303134174197966559397087874664925840463983662685874022210668463137074440254270566119198524078700526260324733165560847999371844531030775645144322837229855313404224112513701905831782621906328573529358805965154817503452542495427738831348720594758104777156408507317987082128650920179359001654990689567427778166873767444603942339748053246150827608184118227675018342437379958050972598677118270340561348313412427299579017196356344506066907169982170926441914539240118931447348591415109572248460242984879580568405568201504381300909388997057941896823069684738303904539191701363710029423926712306190637790747797002271187984825637537335221772517126721242284395619850858472736542771570846656140796308937272684872541907102997204529820321969800874635587800540150866288635684035187078933863721569305423838411109758867931771937020342975122296186098391697295619017179297340043638918197154164193186275455580761400189626543252889356139650412218346415582067990650129035299515306708116189379559480897134862297350969516899560006023091521485602835954166393441194234272127089154312415115072623227082831001689510479579943460395927771440261604505256227266716115764411857388409018151018506101419251284797342280228959814640078521087979027479548959647027649355581724769221161790275280155479179612637028531976443427083211737517939987995381941772990948571754119937055517340178066595194867403801856935720937991808750087191012097753261774415977636411458648036011609746349013379725034397697484196429039857065635248761858005637188523780493951014842382570972860288346785064680047809918073130923304157954126956374266141811229356977040567102443860736645576257695993950474465395783703258050251111853711207564517204070415210623570830995084905802685915030770758309715967666454107172033402976814955360434070316131875389444021880690371932102117102997868825500753126874682028734647174181616196476574132536553605609381346128259006546995932448521526578601332953346398585776740411735107484061701470855576305171333147090573587695885404012231840969441756098167659037283590888419564285258009779783250542398404362936107540478491693654138068755014147059474579267250238801787634370303891213098751067844464083273526874169244344547128727496217267539057149468021379973113542062959524773357693314035788804951327320016719198914585564027155956012578886423022168238435409905435984462296223524983316480311240596128814904473755561221310951042216649727253163280441020280401932257257142610261721897583012833261595951566869761929657204466807026919531881385747477091342642771818720840952564376749518818062226063324471730023954995821291506591679386886589238196636895484714010070723137031050183633802470007063391043314989059353985626466021434389230746774052130151736985193911389845505641833328206827012503398899881394859952114018447260188458516512148680101358858415740019929137569997987733215219375985363324980647584287280107615610726274382004283339044849476324558699808313035960748460340313629151465486333719973854954286160185664085134366717212435508271693536806004144137216499124278231906420692314523591747724738079921430944466506748600152832502627901338191664656898607664907263673578338825991999972221963264111351280484432988977523725355672824233009192311755200992906966149281388040085818530932272977728368433363647711838727958583141324015585240651842230099590373325151694753995345681692169904732146347461304980088885873555320667434329173099838237966590410017565921523292410035594516831924218853717256212073663472627290079955169963394561080323870948653269932818495826884068614161145266592185433678916954985211149317993573761111555591073104516044364164418896081592324765967027048293403529593712283783475501822998605506702846199332688266736797735471833505496423578571712174643876730740712264710633965376544088357647426775481082266789251447951115347488783584186219889681690190300168567453571169924438055081330838547188659624322589454042115796167140808045167155922589252970883573833432734344804816084267529302791609611425465987976678781136740221555453961235345956791256118518026968420652313063984092927323238910516130147203973019547730170678804966130401373271618218204024630990727822491642639716089770734655066461014904599966391927805773265887636126980504721077301443174458235392729173658435978367541924889858897830540121436409281345598344076683592752374356506541527562478277569995171467271017711237657784156144625871424316971710643038186120024633222564691945078782031003815457066548301503339680124868205269326443443865764185700302331770824618637796521866153881170660394295503929794676183862710568714777819700057643082221294573928200523859797766107074321293426190151099483508455532103410396579504068723872432006114135329914844253702203986818725523240033821970511968087153680335036997078911374945748633922187702230304496765605957167550403570681860554734135454734313621940490794427447333640300625521885528774140741029800637680281002708882954235201506777388015407056566103595976521572646354290757751549023231968756681467232931603335624852254409093282836506446088006881690076277814054027972035486781938980451523485392051569348264627728359795753514293439534319872850946800050482650860251339522129494113731980703541804000758823427421149319169236381401509955017407530499237430456138114307243431177874080109236414611578959114987715911824682327275183386515231592161005670859370642503420022112470108801524395995234367831905543805065963959482553350613613086048361225556538727821772581870250425298808124377898833496819675129864857062957732891287077791758491895223762065622314893350575665707607235123547671649910302754083839816912458995992607423574559352175443513525622898548340618461684078980257150146507429127638763108804339100366319736827342466761235377801025734271508904617472823389134559817873610127700774838215628426743638900879636674172073054966083928084092897481994595569104247440014358523918756541169217837244047156577882642152252693073372613741169838146390220439701640765867424410407404961543931505070097872290960619438357443134625625885684491653748518457100177982862085208889686533271700455306182749107397292442326625857794222764904545133329491831010374038285083926498476777987032944852036415151181543714251205566709980446192107611774095673769775246872914637059336678283245989538637349780850327189463993176116186123044579140409685817467409206311018360621041284363395307311304990344311863715947885765147016216912546732012813770666964619647246125476571058399940334956037702277570441777093275791861362415004896600448699585365139355389474264622325595388346183873315342301712826457595552278004070743547089656078800018716481468445089932734210640599056992237653548185366830931364186410904074827848208209156258270296090202317992199404788273493792283638238193577372198464316972331613986085535946428370208436841497770150211172695158261120517986816105237238717427780051903397158948949721772760713148505304343787074359177258349471123039362331467290708462365299076331616608087529884757453141301993560626643018589187199188162618297083368671260561845069926214157967555874044756359425345231585268146977761898137900056745921595020140257291996633217646651785250830807692038493515790987169670349084935668610260022356946219688843543628792872261021936229120530936775177634784213830534917090153954251850465711779115246001901613958466402755396225673195484232307116742917078862394189835987561652884538365460947241621512801816993700931500981959905207471302813416871847842659860213600352310267104419978413877376453165766060308631021476950528362106899562088633756823190063327067023754266523689245333161588567746680326113598009463785023273967599232131112373214504071309360597375172349592297387382048689494246385539019058667623603138448442403653008033759364420904142428742512761314755026223085352730175868133769028006828925819307632009754497912729844841084482884418281398085025442073723731520719668955135516535671785836098883825557500769457302835199685100526357292702275482016420749027969435857668544705441100495276438901670338421794977506471754179236384034539158432495435366868686181080313195587374391426116735854937633010577047355844059835729720585615543857687708215618813857695556481046485689268974350112709853152100434304905455200185480800471019143598746075726076520052183435234639504915636996423198382871222679765997503879472010055754166310999818690806356815638737195906799699923304208782508397477806052280348442521359492123610353845614553443969271925024298197181871070423110073493226260760552115688836572431599757959316423619407285389523796517015680030263674204849319040978602467885466999849761381821024470728617473883950723669885732572505592660424307329452248250244196272765544442322026426894761745339170369682159949147515023843595213881749986864665515633184010406979378982581904169920017552647991653863507747098160493190571242171343625199981382813505790238451978764001600423842840960331584986233315958666035626182718332796075272670529888488060828663312871595351172424141809385916928425886639891415219420647887790048531684925221582741388510519341013615048014341503465622651611532645861380310240144337223475330190627243111829492559926026356209673953203841100391047809417718671470565541554403934985018209945512773707526813626801345273646579614657747700612633725206431178053264460423811560324341088096666264189734963360908999492838076242081115220418605313039355655459387172316916807336422587180992464321257539203962567965008357202909778223542965002460395944380075852265668420910657295721688859968691520454163019236815345626151506756009472429824047313301501711943805600660107546181516147960774805320727196581497289843069023574373237700366818847237763294641398981876730781838745908025955752899813111060907894902209119460250609277986293842049572194221373855530036634246980561531885968332323306522671658487741561674023046954019426765019834754566737577366509539219134644311317414316674813132917844765643488387299853192136722148382948841629633403762860084161632286047668002773873442494329281159083864818024926973032363375812373894028932674823403789684405655751051860522446224168490466864036149291331337981337255865843653063089116460497391528639312309619433932825626418515285637913590700999762664037632936223033796005340117944471584960410869333358827154385446277142551899948427990925915781671070591939578563644418486743999030964539673630988798587750897774648060447402821723562742251166534144852006434549008928605581440444087514144675889533977291943249967542731539282171560697030161739834996366987073398987456791936229980382182720031537753242867029686710895442265781166735317560249264164805062142611008095544665845413453353471491660658064903318202848607396079779656938279177773794872965730595781117726884307804840233728323181501227043515549191126168266590948538157738668149958708005958952056639325721709149305846673510813536663244163088350545494080770008307630847834740130169393402706174966261010020614982630139402644676281486541634823830596061942189697508949001531337763438801498948971406884340625207463442907084604045404514518870076341581620900716181322240434477552740009071741977562592416413709897972680458155888936115018417225297693344195447717532876589213178830881207192973595457987176170044944968759535327119633807742971842594749979954780051599802347302318542850355946488078600616485034979827287695516873514163396746881173204592928973101938857877359527510744267824215896965759426274252318779168206993135655357503064491570273227704343953123346548273098644548040669494107339691730537246114050857161277264557045313146209070590924207867646844637482466285031603252164515653999079555864419981935691009654826527956716483594328886305346540409680985306293862448387855627251116150178302239749125294234969289082214121494927802431934778571028155129300247348291915812335509088856312657111752966229573685585075107497564361854478664914463028415721166574928770731845835495273427969631950940439756193698899661063970749518758251947239651212983799848693175155108667599427484258645654226541804175658128191578001196298194456124216861855658340960705991858302379714243543401087833266927243658962405123119510799435303954490241494622555956879836142752084828652396696149563202610329885155756059762925070953669781339195992334306829755861606122310943215299354231867670264337667297315780358419928486748331648469264341510952638946836016333252297925186317961775281576064814429823054002311614265828227192873121072537051356500142499371237085082531961859963276293886898878375506185643218746317790619698925727905683923302171362957105151153542464983471883197666315629196266721040954322099640658778833634937870037863411641482820320350143307334459919822275044755087441721097675990809002146714772325235031088559035008894652425476003058981373188181467046255360272837245687224225012805755938206874627737255271869803685811506390620534486125513571383305345640784024682879212127270638933674261180854249920091692148093342435999352572283895263237287635795539393718848919970329893659611418910408767197221503151146213754115251060775889182359554478506731418723362847490491905108579242653129821682411351871154643422564477149921129184554420364986934805981868801173487915366180857129846502494852978338072819793017226055377905641482087187905848597127541292576207244014883180917586624105633169756247801240203698505732081607441786590109982345466182949252261003933572032555654163424664270897639472037480745184036563419479115650292171465641663409124439981846466251582974739805905938342872610793321820558345583187080538511953640979893250580184490265363263645385986320596922558903524432072415154347104143888431897743408936115523875116910207392713388679877640445101918201379999525510011174213178736267333812024403339968083453308732591457529240316144616924391760658120542055651659119093424371145831085317750471481553999821746414488321204880340771800916474672510796081770704213446056754007713446206189700287156076226971917468436056051701248662271896376200028007041407038042469345106462409327327542073904078863466583333374136805609505038114918476297677113049766865124436906098827884199380140685284331148657964650641881981520481286341792008074556809217513174519158941834288095779028233455186688930534266162310123558955616959220396717233323196938515803236563089078288360859583263641136996537093322121427195709862506416719249946169819560712869940823378489230650655534707135373094908012694377176522788553408644354361904258529280777963461932966275646337736611840307443859030415235847771285386887060458253413621692603332597726159882434055606399095436516236932978442170362412599111249034465802657078293704906353607207083864541687590050513714646662749460414831869017031690387045704459679982435910520261092120222760957146442649579595747705292030154027310720526469171489201232160060998797825713701214924668598687762011541745668415542464964193015761432941818219051688816959763577536197134284169919366794028610642601049036534125042756333323329649609520156396925736712592018281857032109343617133105372253780723060327566979020236904227471717092046610676572469423438562887172421126290495399342851261803365173820621768348184251340206311971244679458302988023038623885494534670390923953591879725861414107481736028931544800498899541010276504684942764088626247346132157148937798795891186505450546281802335177813882552495448195501685781888600470990715642481415760243587470868468526176904621340662912045277567324703317428903091792489945459292091791320241184557154055224700476573998883397280237410523448206708854513050481625605539468122476935789112302132438416070172523023313998880792993591059080515250141497057490300724477877488159982601479557292850328070080172602078269499225308686813783015234310568880030255100093897676128604560434712705753723959873187371721581126372224215482951050026818447728605105870498956646311341326114741950689122523859868493362905647694157562205855142066620666730526890967474218164913708563802754478037315172259303360860879134259551953096201791309518012240785110679815001473284601779469925781525806975003991996889761649503756101448876510495172460494494514052897325002024601503768135430661626044070295842875539820865731127544864961346153323406772949683312182990653670699901380584501530826089143664954741728231591106350924903304387942705504222085826446451486919386799905307065423188865355314356489227476714401280601385909340420909923481843131010433665717641437016573659262948281850511706547352674907833061565151046843488035017398031227617177653245158884574023888223930154282317425881724488082271001693993525856233672616181105651810219365171737334426649985045905560908495265752224820118249289451575574592038894319432023389748852898635510238135521808572569307191783388191823255154881344590595246405106214240869334174773595749779345122047278595002980372714722840917525179138567399398769692825192867026071224838642957701413206465721456735277111444824254676983042923615037191155433373514433474124071750630616742476320159440194011970378876877566179073444255600053463341797801099524255843836625489632526993333905143524385899160736868936657417450413953430082328558284967012505464941182821042330503684866358006181465314363522992393763377036335177048981680198720787015693854002624804779266627118770380454028842126055166420280478483247191664519706474033380835839248192708887619148774113984484303913382384088338439166108519146458106592542032768220592297954697055467213753058436503951560799596069397120910005927511976980784348637865424114151083784282131712526333057580607058548232638773869066078159652715373119762646403322917813651413318577799166502768102043816794280211720385841461349518890914403864512665778827383203614172543806874621146095665958019357963324831389367884024246107301060343990208346516564137197567397699350810551507494494432546835748909456120522628582014115795105162247425848023110926639820031720713587728691989148451025740207345640433500709741197270693087028496707280075326351982137402311894002258457665683085053465207765386388449014666014882287643212312443082002591577548810727017525242415676652948057727035283084774622208033798305466016051310005160592284733796871246554549155131458329262813543482582861459868243435304859270896898095245681489894347160471861177550913064241618098827720940505494796640615129816259200819873205377860850238643492844162805356001712362855399806474874756654504061566405453635159531434911799835364301102269553130742157209669907970224843753909887118857903079936559234272521510026694731094026387985847847650944593411781855604406214535348686641874096034158032496781250527578543818899317836452193379406059434694955064420148314876288145575849153282909799094632867770580529095620161637900896131775861268497916321573665042471561101018179835307925927950791258654936013253977332178558846592704667046831686839516246542638631138038608496743477695650953684749718137894029303238470948400271402565846989191958669814338311896664300599794261246988830261979835340290748714744099247633438482739604470986040769934299844453285490110671970785163425035259747294318781429320802927384641713491931399555449607057081117134643043126240967205122053805310450526464096705283855050574683025613211964308054287969276548861053097591618678156280451871666101291054368131530650205154805906358024674941562583700020447344202090116113999450255610707219598537659790694786803444911206566999941760818978106142552574617223002657500227891756565605314333968193797186067745131935439639277035100777709481759366722194168594115538933667137952920213013913667624524737299093960838376621967401371871666718211895591822356157996319170003084557164515820595832072812562341479932942358535861371630059046673656095868392513552439722511954986111636685727093927571922975882700673860431130550294785390783128104401141179262255590812150939040647813816192923224623049306332660843255448178070882365105634396463801191580627861305714972609114182670212603324478707382346781000177004026457811775701037540093581496765456274060550764502275344734953000099878603087209791274404898745533132479881034780066537592350646146060257672449151502150739655378649612610800210722996790176049021477159641163670464910649940810893803374116823785013189303014823734633106757148454781800520933541015263498444263828858931396632412852192270855506513295850231665958483019427896787364932145354234095593807066836617567342424726781792005075226821373650506847083376313090087369503385178964112363731442361953579846266546176211220958634989188576415735357822945296715974830499350274480474889500817753403095252646985876659545973909442304984168178245058016052268371785616082114678535852495923492636191204985415127304510974349457162265289791814646121694087707987874996525530527464331752855420614240399462989994868608272338596194956001652259605493291598371982978056048492226971824212347831646598137548791044097443228022582948509773246247588239494081483449667894364972834487280936575374140974502379158319040270925475158266203558974705016775069144285444529060150116381580449252741277504472013532333223307071878874395674966938155789461318812653662565597269622498124427108748325348550846644030146563804023679409426164622192322172276859754017410898814821437033708027160807184791588789563640062847587303612533400824833409387054738221951322763457794274431366859278926768173325610600839529589312152216711784659827645904702934859818483296763107225593370984941504749103495989647360684287372069513766915491394173475851381046612838756569689141229366963403795750617323869372722556668142542611384006671155217784730566737892706669684304938334732072433368787238991810701560718723241838484837307835173765603268285650808808995160111544680853367748890460613001597278492722492798957775971624188438580724104968002739673961362121341494047667287953494012408473224755680582749790797339911807159873202919331916829473804650004229744237311953185727651508988298447889920520553499184308995343465326699156442362221269683070676919673648047933908544332466886756213545765951874510155025491246651958689107887967812693387111111516435539935630215810537138079329150290827685149563150195502863888345203443691529127069513740065683950447536747280374194376791639368306258110031060251486831638971581384652135886924424670438491250248050749851876838959234716944810425334693413978446156417114095209134761160603443849550934230442771650308631394755804386335056246886410806708043019063733866070497271577126197935014976508603885721221501114415083546691482163185878817455308139782883271913605385211615463738342192786611807156129374172301815340587437924129415008421871003559149524281830924556999525625951359003393144009245168909926618045389265644669805397708961914076146970891883050423011550406666353091194469827162323776238760417511543470353335558788166823054444338785816541443307187627554091316798964348915599124617855959888722473863171928064871603003099129710711114127353564045820749929769376328032017255001298459450641016374311581906539491601217393545197515491490816738544790922600189866307590752102815249247945515274349935210413393588196856470788361906582736581610270934834579842398184533254016017413461534601924803749431961831299667522387449700778873314928651208730335175668118789478923320840752368833911573290522435370206438697771232871104226823603125708632327234153693767991459989069877065601821717555161159223049705972561575998246499785530112662015997749289737169860216065319736135696394688707088899443493329584814464110929115035449995523109379332909984014344854789266126201181362353550931834217514209663083276990654497948362022625766635503227938551137726737076559751687672094328789637481081474176734456852694795762704758562020123814896390674325228533951144804134537681035601955549210039181068885419095924373809367032877428238434468964453902415319320862293547959095314663085111471916395523684533904819314458775139104480305277195411350755591555835198137578965951690178551807867944319508860013654048797095915130947535909681197460998638870907384292411917056939200746673453809761865457233312560682906658081670628621897222844173769826157563586268569561051057043002578273738729931786913983288042713122400686964831450969090194023367971889886154915219044653468909960643902261684501378120664974209211541876664492674742896900946871344797107271784803913549365126619693587581494764584841593385933170824011370969496272864401353582585999663084481313658335148760079896487786683257034235027024307833066530538442068119847089677530187524384983197311630245475334914372708464377288260746920993875321190778982795577180340979896661194018316208853589731856324790121169538974538016877058242561404487156514423700787244232775568512172656176903140859607673872298447360323762135452658205260662672910872760622737652754565495213371524471680331392540196626535766777127130317492112583323751816958078931060761609204928446746172654288913029007334029352199427505930596804498331250225293318402826218314399449715896813694786106160883776419478658814541756288277977981825890144284362408145221944515770258281435872051045261740583037115783635751346355066551686824293247652802861151497672684359275461580831785388546322050682995951765436036605704678420402100758289139470895297089005698333866097589445310166267341588268068535252270859721624353342465567558655408427690915830199504547326013191361163042086508025173358832210080434689568532068991031672574162565016949726386282439120065478439885826491861298687592883588091427030308982382454203065260555031648191678507714113516340720209028691636401502547418682186432353791101058835061907571978198415524214478736261326140894995258295956637569800088178271495336710396930933750107913859627225183947949882244875523140761804662628996184893699680011642884646638695010176117746317815291882790110913280367255678350709205139227069033682345591405083466583816194337382320715928347472654880795824942275764683519297749367779301837645015663976535383359186468636521597064843932314348188845135118747169101723455086807768743634720548135543194567457022049963755398627226220082161491947858073023103183873723211629611784601971480341724695376943510259845959139110583858891198727568909525606806801415036687561072610683509003818669845726808781353732216024209487441283811094495539765978246694714297840354516965768118977320341939014288036951068194503820332639684091602213758678120863352532658501872658855720970229368125391924918642133694410492493323983129479043235157604028345553975767432995291152437902607367331375741111194823119312906050103033748190729125534755152605200228996371822157380659933330633620510842875088518741049983924478862835302463503813525942332228444787760670073189575048289653557026181320065329028611564492380865039778078266176601899726472363386454116239602822139356816641829228611344043835415434626128118003364608074108713932139398478934487953692827062179172159508292096605895424699495776783853518137306766381782775490171720595439492390998714326281252418266844961166856271777281765461631388302136466000194678127503602029933337691297836623524791431776696126282415917195527020647364628175514539673833340188135027938245183012593254312367021924566375355967709283574635535098883399728899680094830452684342344878056482622971908322426127996589661066038808078806384611974153309493317828352476248908762130813960826703561830294911636948704980222381157927892412870807343042569333249004527544071226257860357643137736564263261751943684970722076468510905084691251875053761280443211394271754937168243355588574668141920068213698640811497816232100296141481838812175160935385670167409813488644567986880097755939618657739950782565885042002979954140941006080939952493753219904105458004087356765114849868621346184376882809941866333791236566500167371622177117922144034060278595370181846579600368354199908287758974359690706343819702751234231006613157455445628538544495370000797236764566469278144874518370220554363608726941267179149442962166350010842429092526604726954114993212217121245054439382624312704676556493895328939187504037929278568674413858945107658595176182455275276755102878508078225981917836041970647933196456426564451086638645467094563520254494956746589181209482132119137743669680584262098925770126470414130956575872556021201635109443813015167346218692310814234458224070146387471464323673411786953081479051945059731299630130384458246840171253310914134682658910601064184591138333807993435591552522070707105698468677221082465269808892497314459355772087384338489441508154653310361139619635005518374790383666439655674405806514804767038018927712072976514079991986596724139666743137270950125816929022011073586354070796269330606741993944993703123918522430304889653615816992412388259043004203065541634525507963965928807759701681913777968336514542063602488698906304155121296859222756769866856474248465698412240292076409073690191707639441518983494775846465990177774894187627312257662149828373479505316353368056246512544836760068660272721854461143783419038534538526711836329420851473631624154650976229069088863913582344430108971974191078450088960660631136584567446629793260797493804089706933574904635861032109097758781110369237271931309886249694320070103601579578870032300621932484665687712386451785900576028061877023363440624278557731742990698122934570477747695965521156036048837223495073531116040217390779805226119906333378438332416907595748861108870348093576633903907813452259679166834456170812869316679294287368238256302771788298625216555849740651264713512505302424415257051453789838026307587531305649705810026233098798098812985185434590238728093508257510167269903117376708426380891424332319971845074985240280783035021115736325259551555389556614347474998414845578857111604940771733999905675658865457026765050235921173456184625461472920325010163018758603212672366325089374999467483566213990714082978755516129114184623714300299492981544037299017587803256666787156183072835786982298607474749405383610614834105017947117153601894946490447858886789282054993321624055451100542929694402958580335611207080429448720028586242547110167170775187132971734299704240414398993447073912675316087634997465399587196441759914204270005733534301518382783538390950567507925282355122175033988654989712006844063318291034949722653962304619423109545355743123714715179664723891070661438256774124611636006777587120165291911052276287490672480075517129236543735049131370734255133936156184529537379520970913115820258849045176555760258314126791277440513340694790651199441472872674518124941194830855460900623631780229601907200893676502025845817568042470590250356043043642882463615727208380688828760175465461879232846853595926424240773385093772806583124386814257955854036171234128091735743245207159485459152915165169612411359249280679723654862048187994030915910276696187899772412296375237868713415014078539336124267108687480830264537467928196371335999386653946113702094921818096695821926875723484958078612170116321951141008948322012610444905748311797700706333246738351696962118079496298398608620937043405747935795983167824229820456176056461261018485254961651149929318712450471887297026978919011231771902157442624320602966709902537194909080443352580264595264338728366948932463530409379031965705125756455222886636292874964152130280588036687857296379403068250775528890398829941693781870468289157863065272326301449922852000485316430200801396243768372173360284421779377136831515981947000550460204734617621433082451923410358576485991234943782485234320483519730354999429340194798144756365812417124328256578534868075851923724829720153130539754747211858113325720170219797779214967943584907340209421097613206148332044916742840700130656593705111954310870589381247911123720729692474945868486823431348496063775070065442162289402134123962429060138843464710107546841414640263931271322921927587333883323365104354071701272794903811435972993704806217540943716021843855763575941930762549414871492442995756012718116811498069172513476099654468100800474023555739310868335112956356849859818131878332870234464341871787971966420330215967218161313186913185326626157735753841966351929417879803756159300945388804888013238961822153128692306907743987491877624051176157708310938101462100915545662413725931575134591952005814670435329784458155926606282809253285332522952583692302060114812084873562538205512826026223610458597164554894098190768096291814274391493959635118081033596000131640545663801707080872295771704861371650955502012425633874185532714621551335767423371434748741613799233794640281836180515046062173642660291420812670602795887813650561998102616434343651931104573072517255107395588398365354251190464213492255174689498213507085482900978175747604660475338855966592129609660002997448187915741584262293407377955096995298666978444512252683603495984695737705329677929087202067623877308349095657784525420616935825558995622771458556750960775800450975616090961907938104240740351054441591872013599844736840605436260569704237931131633251773184298152721582335908810922560566845192517684726458751902915064767977119950848673753716972608831484785887777576299834384169214534694692406397883650846311761364002159833187351532562626698834853530408316192832747753320635842845996450927553933132418323826559361435485628823564276220748472599324395055317179070372911608538482243198961083480192849926034981207112105328523524637746392443069966006459604371774523511349904245536303454555202084916150732101013814784221942374814293570882424139531168506882231353494141280167040584786139707165788030004912157235401386887556347484410921121226552819942031297866201184792149494049395327866392596878691961479014650757737274338893838226773918816009138614347714788015262026831324460745674850980592581758939026123999570619570276680722116083363945039820082474550212852732386994942248205589493560867535529485002603798740223382054476523529546292817150931217651712693456700337982038520283197376829852666140841334760160118671346595747140470199544820828266496915412536049171465958206720880623508063309729560802439668545746952207157059615790181839403671379222286357019919914147233934265546896751696994237552080929122411673294512651882457472363219742929119135361865118227051785505592715849045272980007875993259556369985198887817257128375260414291653523323828147655358343121382764765454992119556684975697039144489398170336408892332762931908003358097460833198782372981445136339101511588211777455557468345492604287128001971534390266586023087172198400589865470102671281357496375878598137859498322717244756372804774208090523009800983580967576386915525098272052987769381045857476665665069598228949964146534928989879809040601566954953776838740618269042857295994292291320007326271442979805303345172640621261186036483419086389285126230433677611967359400676687873686190799986011828494850214641082036170014064909393720757868045565106840297124903962511553816526730765561255011537015931016399173432019107955853381708734776453483419643782465269777625289049804418126888720681300513996901496597218468863932373974351518177479227890658453526336180945281859347569041826933365524465454900906212710110833959476857017745719352837260524943568907322505498125071966041417072066543345194543874857540489206083420330106834559742851346579615905883711018028843950289265723661964854412115442495557287361442554356417540703489861311969767461421052038908268107919406745065421783431001310861565454330348231199776046816895880900087630122729864338871907792517921158009230648997041975819672389079977384835586745020243742701547895433568524338442775477089777419316070184137421051252445197565057541683921406261929083458480742622357400177175918208594578424302566818580831184028753662835129676569919506887421453932397932762510837997886712927736199969330577963270513601226467179156995880345974695607367454932454282459495049546790966954804953452843148516724837308884207309570401570101439635860733964473217708575356819132612533664945143424213286912542075980057182200603658896938246364193238599189167513857502671267914348363050839012859419428536520699763397099858437528206579334932261870513964716278011445646578969397084207956321116656903414686699560723710227047773720174351056727828104222826464654195949668475533216831651314302976478390806698961544843360376886758390238628008074966867378242550041831410756596678305024772684173620798121258816411857304062041729102753794871721593610794196997850059397258788603586393951487917360740704651129447502146203740838654597763281466115605293035748328565656344378156976025165974867968003659159028654893005988320423739336983398149696467547913175062737981322469789291878366899020592605118559094835923408708444781865653852960780044753677761487449139735710173260819044751834138722116238149102292870662043130248638856705609506765627692269971157697493289727506274109238387541931326608843565826244988773431312874770496931775547965520374001818035148096627987896807642700320824771691774465254353051547612370935531387294993739544088809209357345537016019287245483555392511057530849632620719306286058333924186952863880772449590637502522391596327035613975509663970574215050208048084171541046985646646651399809154273639633990921265129627154284977400747157914654541019752109580402800169842793046968569750713922326716956960166230007897673133400100237120904347144840380711421613644747957584927094034080570806849484840362339163262877883244250356836763248902637020014096746418587054347518534398464045612987384530287330368340480987944323308520326680228019395523560762410154255541963897710118896518071188651507979054916234543904120792984104440380425247460339571520139943391797940805117827348900820709193197772849170945092313164089235849829868150740103554200154808798616076541179320621334709203599031920554173241323934056883498782763956919823785518758278606931692754134472293476603042075772009261260857242279681864843959513499949560637028667593659146979034355424123310891149773994879435894080948592251516728216691323127474710739493392189600406073438509835118592085820745405950326147851238663646212109203805628427204410890938035648188272578222220317491757191700342287187617164203622462763392107269143977657630003587960501307090842931853180684296407712159113845161937162874672102191069521958815548300819714507073236824749089251223983795602644638621235184161115731593539654374091279893104040987581057676381729710372284128961491074735152527821215579061271498491298389500980585528881286586551843770490513526249797987999608132452209189451518234411465240053348480918596583096901046396135543151709426179334406019460456401590504996393066051938343477570118477883764533952341509128729853731507729324352026445429670296871374224999457294227140248401123334457648917091116474860970100943945851643315581419238433246467633602695357504213172283099243798688693520383023874814699963499557521638568886349998561813252452047947060457000923921558526538604805639690898459977885706063933698851331489058305626066406180822121609107476504896424353825577285114162863425414765100593934228418258194638348470288140199059733977107790004299827928354844351931122204445243350358131702155567947010630919230342373896516359896770810985132958435704236928645131072185307397152780199186222651780886932181132651610704926421033571947835825545173894045781872975190896638756279444676671937944821544076951324730253874779417536823080346805734510603284125256586652632054491165489788220105221845548978452163973708438768357848895325125477792975824577609831018981243800904089967555438338047182666537051641194378276841454892868885111531724102989460174028691154797421384221074584955026115211536902839049554316808002525916055333263115491569321289005613391297019516369331380945470889063891587965334711769186385548646808622238329984262745694834556327603381111149977217009068689365991792063584537246057448001454631363828155920592898196877972457532927451577037781537039050838139157009535068897425170068455337997866668890079341256806437742479534936741748739163865052562327915032817762324210002974846509305899759972865913225782697757202069284872045876575239346018031862313690026866002136576444937252718760009538604215854475608014439729357561299338942061558252094925446345429674408361719289913402146605421033893834253667460410555140472966247232484469155342088111778263577208416805157730635302486555964070868354571545764672860225794671668069953738496628848754872774113472002754025627318159119383591152087829898004430741788956698684951209656757287022777792904281729259776041682991277272121118111410898230443599065809083461987256399112142054111274342872862181609675016614568082054592485102026061922832495495245836021735920964228655552841713756494628401691248019118912138172222045162392846613349517738006139202206100898609964045386160507796956088263875669797658705621176932006771186062451810437561366800160706731105266476990475760156439956318337423399325905999418286129092494322015519183562604976724433879420929248098636708711234810143773245353263420360176158162299178999788042742573880391982726010982998949318980574093424897500048505510347918147895102960916017064398987788660957992202902680330081230266599937970145690730333554441414824323937926452652313596754307077276867529513499450286576267036903572452139087318359606886201433321645588037442837121736960021039883230972046837536985782000640550040277579420695799958719487790410400105094807824193488523486973407379744979433576176147870344385660166905163077401323545675352422682308999971212128799864979521515723326381357888782540128286204429993562319307052000626896625691773716824994589229089304245464147640821130893600002820735454580754898845523145653358168103252936045753241837570129639377056459645990498924624449912417053162949662985600707635352764337266207392441597685700065641135792790145905611124180078663144203485532149078023930477259832181814252451938005335187098231977923462909588327587889730777489532422332819054821476052683428422274330706964123930923830202001707997350160068849845678600372559919066997459988180656426937629944665546586201248103562040882046000313568192806763522172058700120848684396453574717385379181390903865132381259922155216815049250611269178554040894130941470225659708996732026632945468491593860434422624538438207379634249055312342411125412351363105911779725492218469068866871404529339032171501806058733788390428049065651358361848425279103067403807661158716862607069915914440028705752024203218363611279428788294226171751090914384788731548824816864357671796649248614978734023666804362933852288496377426156953901573106420456156696071930775623052411091701584834959001569514587477147892836853080428647536825063777027226031335192338138096464412292239468407853041825533550051156647239182681394833024734800610629897035351189537184922268475301512989140376597327251611746842620592804253399709650965779218973161577607254178004950059227062416663831695019183099870786636081631123161967525375195485326955859769817996021094061785830605930915632404334982875287471747018110886477961301190139132457677349793990199881852120243998085819955972325273435906221361709581334362440767615231696026580687751216721598663206115245827190371015620714667377699953703018692677860471395049314726386023909263200765198700252708566805371476973890446227300952797919257988002900030038564860587980424594258600312214014980120958814763174812637432299264015326648111371704123113696907458805214799969641511523066557047141812533645563073112487566784006896189908715758582644912986302946842769535768971498163744011207373968268224230766375832046789505150364780922409981740410587959411433006123037611960068242279912777695708142532054758114048670459718241354420976014656715593766190862218166308185648095904121048872092651845702862295690008022700888982260739273183462832630780252897228494343784354091086096828467519835191704424564546981563315952073670325830076993107914422057846382633871752044857337594903632273096550205615573645734377543058343746670786730519340541156274449147237234309625425288846738329145909787271652591339824964729797182020442148464983900403696252083049495841632705135508879818236058215690840073571291798478028610137888288736894324841308141101618614200196349863593719769558829240248731612160077086064878919017464565946614485959996507567948815502337221754543653584373844417095862426482814699757808458097167148682153059491643569907572481501994946442877528892058913730630441455098809672726850039793863401269767007775708981318818022970440861701172089283992841958353879569828394764325228701831789263359711271904792512571399568443865677501702449884515628059887143346133517344838567475819944477741529703555688136495421355229334680791662836089043340419200267788366658999833038397868537372764247384298701505070965239085621499445861959921293085358601236764572206868463975071327518581045451587838636274785375958411478137295460142384708673004278355931726579004200672794920771797528798626838841743498433884079323478898916851181066509760025239592592144875104411102189794657261525412142876738664286822018363137980113896838610173063169937493843871902862192865560568824784496455218425985280341628880288775664488857754129266846944972989289464173710253651740256691389135481979415777568838945746022479661018948220400232411779338574488086370215657810614040855247012400890105839066847856847137736909948560210531601425965109199897960773973931106773983080386757130126198946775583260671280921154155401306865106236948820320202096395125528761008990328083400665509421065400588146764844787017611201109647107855966810265802339467589703767007812472845630027676822228890013865584932373641424593376897622942068904785765100005658983179344857460586790532339172041722254029065330508135367137752893151137564082752593244961124145661821878395106665821630797252462500720545687972432311227242705982492655970664628424203151004839397928071750597215518722388180811711107011130356407230813364771101616197096313632732028478734698085035275174382093731767911751970887795857183472719482127586067884434799475399204349119373364816730323805912291840257485314884547441081549761896990675575549575109845496972682575978656363073003907632469304278728805379554950232999910642032336849176868142031536277012866147045618639478883916188290462629848311723040831632210860082572000911908204856303222423561116720762743864387153548362572954006350678028200852112361159941805191968885748378305936607268327176627915598609140685877135284075393024579925002028737069746143923050316508537664556207664842210186744503349924164637307820026482693394581120873428201898520260873684072330659998990354776063659256362111091201282011982676840393291952400007125019835883364582868586122866751354545206250119996462574629176950311255788502070917556067950687772831885788754476893206947348453210318846829175961129738312894744241255159463459088071258100523426574682822567346671503042331090833660243732354654450995073553180428168484990221665316294952536416215040034264240671284473727523117846882722096683456150711206863045542035344403865504314714011067489389006296125630270250929667521183983226146272089844793730925878771871945750163647259098674455599537688263474538014546522912317045653722137101274348564003456808852902996477907533616854871723202582955310198389938473574050071660135264755302178573118392489077313461045872160907240171849313233229144707423605604298025480559586140256158260637893423092463835105402597912213609851600866434860951048767949249608172206167963470695438359359708491783083100037077381270951125562762474585015442108363001423305625861548307179141915974029329726957455659166086621135034704584368684033195067188763997044432037850048316493820377190534338763253648430682297084033363022021393902652109427334924447834299873741411740422744720337804872011385515437741067432428648652072466485290560848425518131883600374288132349803711094874824776094266657514073249852720859687890785959796063085047837675514304295939670449938631243787151959074926739340461928429477619865466945972704468366904937511059096711976223636388974416902753052600978470177693324455155931762844778296658010432582479508858728346173249080226727158329557240831891798096285899250716009179896560164273623551456586871608734183074854712040317471492784986518854041753418524367022472234825179340967470124249234361289541377426339804172905356307935521143222473211076230979117786359214514437769115491897015990857547489750583523931356450320584951667638733295839676275196555313035614949109277292889728449486631263491301043739393433401614643175575690888704007209391437055832430790865299315556272060173149520516509505214116908254613306631450134493076045391819065292671475664300533503459515644667243997556344874514343939684749142240327893742318907484537111936604085287979971271337591060748344445277259042221926021820161470738947763816974457950761244483489199432881820757050528577290152493608720402536676034878758225621525667544605263737657561695123670345712804755757506638405089571134426948756031376695798099320232616195210175386725731937667229393942074874561720254752292496568338872631068467125377755516671003472373407703298893174026969238679173147593584224411601590433636972807541217382025593190602801957594294377513677739497810223096934248827886064167291629222933482350275650141982975627594491058311008080225587800229764556290489655816473018701516671300752963324412123345900528918262967495564836721384169227833078382710490269243379340815521371896887047763543744022373617139697193771984793336526225971266376688405909197123553682561557513385590632207861383869668425110250497771728912035363071428674811683721042952066367237947246244736821174567917026121229617655579766460381759611557801789876039339544015572123591939279375908693741365930996862665900139907266114353166756849750356773979556473698371456346804879554225542018746067433070859866803283719371901174198736748487839083203620545093498664590082852833186867020852592874893957572935423921789545121189456063607917894568683301346512420785630162655873975502825680424099756370321820766470232793321040168086095790181310579454911913672523462695985401496937111807730175720312146070320010369657057211549734595281727253226286794027775859506499091942558550597108651442776367858204929281867938135627943941812444859173019495488508406131826583685131118870332071675703239204333461524709325046286854655276753755218730748888779125917857924230886578452066812334730663386340718713830829446792535441647642493058485761686539762662849502615643925385211035381463783143592193495089772049217768655075607931690171636670299906693246418464324941079272466253774948507742533847236803705803890256087305545839352734728310198651461029173700260938892878117560996409287432619469546913513433180097812420206283188857224759384686111440432383679293605673299460238163925163470036342801393410635247201997138626879268957240306506269782391740849742277844661071451366764987813219062763428641969454045191054711075283426694601249462420617065277413576575828304747708285767571796012136723194993661730362338406662687757541017335272773430531517913445290682974450431836117069708058384134382436337074467646782272705404443508401532610600314296861879071522548084091519466777619855089872664869810197006501090226353055645480111719927306553084017064229118829675377467298714774216993864434201667199196788884767740314395036455997719185808038711713031050279419980794947029589366129262032690694496709064672789712935767323981148493198953433409352709828469257933049742495523714657290804075719818282901744718357185844665560554574674785378785198805569197064793129921406968078290531756896710300888736321081916118433322960134167862523350314148016979494597224862305206628257838835727397928404434529210420096199132531460653713265153145861722293128500692064063463349891754031803538611856212851850891536789962351032726198430282559790133690786973168045812385954863751589164466457615454114287672280098269342733872101224491708783438508055104121924475498463144946900612747124620772103143550660480346958263761536635548322917501609078443289034624644992519056462003641420314165573597888180696244432832101236271857578472529290390252645807865463370227349234377690256305448594302302746063374872535504630564013158997587411243465521181066712406589605542007285272711044990146447970100569352878965757768619528918120281560123987000116208953453449267722379377574218381190321771707082930150365406554798164469179196216662095743521899199642303485211832383204583850221145100265007829439247636008880002094896678513941778268781575862463211806807119233473554217264861934962573674256824050250911538883922058840779942677482107497864013690243556097340418833776713374945971415476988133963215599601575603115254940881506534381224990311553857716239988388331851073337474369329061129749327301339699794150768638757171219798807868036969089061138069292886237569536431940475358310668921005881586196073100613735163384474018230695438425913066118710400556449459071666633325082892704292530814593975441209013128548271655213920110003508305452320102693758458624414247598716718477039998067716822167531432825648696883052944150320241802624537224990454716087886014808380705978912722333658222424572439880777376155983066738717576720935580782173557928277465456529527440927819621870965532126756076211623030930685016703471686429891963421246669863599836673849604331286602969225414730017110153272326536763997490326308389605785989852245262129617139181017852948312772298139809035826456718485312437900164754357050105039087048961184045747503077272871644652893381739578533236195163074204253684387004153651196917640095388636489721964812683391004505719414394596292672361460441486293085879923760337967680476006877303066626156006352321635043356760982318959133447854154114592098627613900372601012696963127309585599770442200594730136251860244909253037434811272187438798119945131381384383901112570733650671432678674260328381680697453925234252879004282100943389511482820600365557211255961754076397815723699927439191456154370069955078522415955241141599557383185897303025250705943493349926419729879753594664701987796913907537670738159900076872615890473568885413860593734368393698055964828589541749760412726791792722174309630529084095098235750572180027503677769822631119764726205757231878663446570636017857332469365484631627950341562182247013384493766157384074540307030073258405913633986053661673700538549274615475782110207391152982511934184634095310864735109850977552941673036241182654985400337663861460621231520152231405381415130258502587711731010107735721976592543027681800194099782672270023045832593700424918349989883867545040764449780013718050798203342220407897186748742813368822900707884220825310569476028835564831030566714550331581682827400356656830823417513339269079376331378898476709353174754895975298474814503923690421737293973478471792039908353108427303686890163461797120235583307973984132218722412934130879242349533244429171474059006882108995378367542072528153229242715337744434988361003333596420173803710923060313379323157504528909150517841956407727120144733506836915657050965667719976971614232483921764475292164236989110795191131025770788811598535873031908798225088919378857613629876389617031187079116759915138344022908295329009304408951449086154231260748646879501051316304077397649034386353736716066409653600367826473494410574042609059749782809337524704651013014324032961470919691105430852583384344118940327275260004139875728169100868524964910640658949163563229283948087764939944079585861423687299464137646736794363600640187351495719698844019212498298386111897775522594611267203572199062841507597089066726880696551398650372308659385429211827189435368614271480906768409224109145623685544303254082501624148352723192350705324825587255130754172388201528507524472529105124532253121697226884745147116239211171991196838327977026990776417700442113009484707116078719302971534629582217420197504052826348478289222966363038608045377614248926947459265955766291618560605858849179343814399400040605667707867213509045448019267704824953936929161829940759640372619349316745219630282891494638525191422786347898223803466087262512978814306846932666391027621974992269421484001143432834650914778325324526027344046720339132884551291142531668046382916400329561048281666264718544545828778678638771046944788629352186092331639201667440036181936823511591933593340211827829528150239235082381130685223473053892448721562661769203579498166426995240033356897974123185966717131407912999868678669712102940033823178820294741360164112496861321144673120220714674461772902835396440822367285138215464129121751367704661564188890097600018574672756460314537937768023158729551249088856482009469864452601025421011938493444510775301352845113167082925438019816062261434847898832227239861356315926451514140740400966456152583214555366071055367782396231259762522264615479944045762033100938161775350126078138431163801510600967505912117407372594191304510803995084797783910798820555806816054304413592897045566731094749989777588498783437654064763431126256994219861100739751517416807143988658320138601737476449344771253962554459384240286253783216294167245810644689605333416250577379649869698869524711525049399349460273933723244223753726004340927001401893279082939516902907754456075573676854804839364986582163808426578704097368545049901541670788422769774689132048571968071063343846333256782609607575860185490504862341773629696560857576761469120706041488973162638003000593294902787393090330501049878321350434347509469788034020677406092972510981632565838159459619040429196308298788094945595267228010668677120734019291355706397515282332393689447643050649682144900842074431028154935966937562936373683256369076617568840391602213043186303764081468417046755076144893706826881088786489659237924170428837467589993207295225117431049524543005730844662826669636202302638762425754382361069352876011526033950227826825458858696792929860318183359893723304825715666185501227711098407913281987632703938100803970706557725604915545642598238388208483939188854935320697734551011932068328326088713633773125754948431912708967758449278563512416053808556897767384584589372700550400840731189921358941085721364264478359464798348594771163569321447212395208185680409543986425915698056192773726009202194050298435581712734774052607262182813988779273021904866187549559269936131621148437785041363919948026898678890804543602071877526818731308952076537853703270561608848822042131545596746312776153229171537774604923571618216034460702233036241982271263196636085376405895281795335567130275776705086132639618268918274570644360496347593466799288311578318533180468334495743725398947265835131260654821756761972338994610149605458892838907595999696385951842887551694710708243390357587065228335533570177691182287062401712000835082178459240323736645809966413866345322733901382477299470454673910600854388506165925771639914544387244292623116446062334693751883370394269200480705609645226177627582699500926951652494365455725753370353989613169769670804095499778852092366533719513039348701267272450367830567983142386809300754326501692859548855617901456754655579044193028511393668290257451931004210952263758868115487361934380815351256519653781451975911939140328224306909710863991532967425484425875569588680639926786562669881087607714002992895731550025918463785486976023596870275730545879605928288830697747659158481627567296075017825660515575531644933331186922181733811907196017157762414358925579768702129789752365538342470340654361093243790841803608770069617382767345321771665980145547055682624230835755090266046896042736886256952898522833590004022310014732584451177275427555206937098350605947081807595935302880493291831882638973599056789501419417074050599882914320767116438221246898806199803170439875132078327925358504941285211234758291001618666761590871849235670293771755972323393787837881418687630581874260439819024391909318293400208573817849789398154494612902270110432258013706560613199379301323555555198918622703056602018312181981662750292311343370738359903917588953860609434199132951918802947639787527278468451084374834859330523107711392117029199418941965596949546402898407767483716831737695469386501558266013489433148563941008682669126397630723495113562486885391753180222299764974190649214192243068076244622460709680428506793605664740039149319677164514320376161042547401119438559800071945779607961785558563643685037462698984802670733670384496446639361136429865569525311452882700056281178097357154077156797281797453286798278978257810318706127944501203043458884696001058713274843646726041327196002460051519910188941117343174041690433028100729044764316782025707296546686447175950391976209128849479179574171513079539609895798217437690214800902520248291653847856778677493031044703272184371148639155121202756234432376958531946261544515214540121341869838450386204198950980970063831558964089013813517174458941189398891047212035603593892241745895719915025885721537171830522786689566692258916275804070966978370410742544238574556292326755177032733479094552584278682464797172840767237016982236673634713860311517127956332997552646281760715528393733934717632615430220704900459710847769047845357767767061326051569670156216863649822781152078318475615960861701253676581285377739069593790126576815592798577859561024942438403776905948150975211244356071708289736556657727856588576954018397984090858205806301855525404523605669622979823029037955125388592523652362203972966764458503429221862180648212570266143591300382304480664978974369041122871043735195487782537226607614684429839088714978290944542836557804875631179841133576958733986940528910578574970719822299755387211909379719733988205193860322360688585111105487179289369786984218968271751814338490184508936983583469015862508919482042782295308120893262223873336885596399811872720552982928339825203709700485199337341542186582759360648422440558915514448015744630374502198014625286556297101213234662666605273973464469692223407170549298366624797867758747070028753262198929919245402631651813768857224656014009685113556347045408251280777975668241642047362030736028700352736510478411048136553294428737579484255631964976246193348250024861193597721456242997416671128621799245956209544670168309841271968967510395071144189126891683917171732159113767899669741137148947772493160966008750651620756721767525951120969202127013087560717123618394070015116385693377769556461992129153304856606271869422283733063098887747453133430515093884061642507035047788177149457906503645162442483077370899892301979649082046883474338930290456846656703460772097148008361197550881695361804265374317125243326120527437862715275521129872001178700171266845638151153700099727769743516678411465821095804904507002583691627871548908986027415741755339666941689736041488545103110171703661915047731662747419861094586418781616281782903525684604183010800579935625251848452914194586288173687464754929819206246158392815712805255436515783704853337427714623656338824096730684132176888735634497336846595086241369703305397626509682006404390159879084871967791035127396092850276563046814097572330168750570510802059305478062730712805336859122886480473873140494483624946267043203772331209169541372021927971293015164935863741019310199692914756287216329620803634727815426590684848863888418075118514634297870085755760772899763531316751704145351553306336156759772640310150432152078196489157839011778278276074644133237554208930142953725026655036026561642042280944765499856189644696543415442178569598292167313547774020401687777609975003153454549416079996957492579637820170096943761309153866259207340722927676207916438597859817742724255044457517554126528109971962471458970000740870749941549882954988114178352938180390289885963236093551343767788857084363068272599790413285240335857751519495840518623314571415524373668159000137235737334874561461188163536664498928357228496856927900955566528723058851427131172655406393941741816128429755009434444530264932182922266396466006789232762593273604106800796233583327610745399110450326207505747342382715342458146310316068890304732576396091880319453326538207769213693562965369515344422560011684091379963593385389037123298708966670316171856785063645293144302022773149808726065058449938282168560515040507402486556694355803051187953089748425565394892634200753292293230630795346517561027697863389180657757423842750198682775674682732904367206720016161351111792817954309875927677604983381245307233676474197502732715855699787415151095434105984817528758878236457859669346717428585810602664143841202244708377353376519496155614877268484094795673940062273892884721297260722515020282107958321671065991673021544923233570623917006212837753608072858569575751198229311273802182987920848972168553405566538252926153346376547720633868681633947698118907505587896843045988087368662297720901754108618636129417232738071984283381156577992859689473340160181789358672797283498564555390446153689637656644371207909058441827917550513821014962593639715639245780758646615368472409291506501403074678336623188473276678405827375687556785701151132881856919323745723325565631706381335647894405650174380274935973246891728889388546058519304046378077160339518731269683305834992835208057593064551166998397580561104652538976469665890120294933554767651127028272729157864298102950607250176520112847301509181481637916894332407218118077762362602041052313191287932233349438736034297209284398941951566095025859445689029986889022501774743044976003706094093973612867866394472843165926706481831722951692599102975423425486782644567269162356402703974237500164116825668727340632352753063750475129085675648152445448031610009728562046353711181034643224589615360806339342766074152770571414926000457603288556407465048253177067123461050769533509526955495462721320891113025081666802789041131839478243080296507782197539198756236942113622150823975939924246715165836549106246793315378242633357860327980840535809595595208614231838522689085726927756321361798654470692541217484558518863903663717882895745520356127636611810088064686468901120323721722383566532658548202596450740696249957925382264123447749229144012594479825051857963123805214888279605175275149922245839399755369675563135078247130478917400844464900417075182378738142053187452393545341336850906426202639058834012620349304803079799898183268184894778034240953463523485453303355312835745210459851771986580863912340812154162216981002574525672276902482961928901540881236605395327058258462110698601583201149375126850674594887501476592308370483867283527549444468161980651001505146714849955042286778092105679665368012122073504402065874456099327141382632735670864228110954742299980187951383351961871042234462096036142636404657695580586704018912849814633385203848085817757157557526055340635747972933709947404651304716837417309954575481320146801339352117630608025039704018920713495499727942960310690382390748905581613735852824262520170240506662374491476343719765928793086928363100775085376376253652629775908593785045863117357382769334895826205362230673026578937252238804225181298380605520641801361032964050985905566315043145795861085598632338389202370419882687308650240416353383023035169977283653567334002957856193280760833769710079483846212325329616581831415421136619119191334625232477868322700231698968245020974726672900603871280348186135669118978749383164164831039329002715733094587878338732713491343488179060047146930549586981822913708994537244249539108593229226603575445181556859402251667273960861079650273686336342877515503480312819314742449511699331301700020232850800405257147411076849617663998901099714732558270817334432495743802434227606454501767780350155375823903072002894954324763883432981670881823021136706039981767999220983987566105022577770136745746386222015174802149337535223854266361943811776279889223709365154733059354446482579695354565032960807458567731886699919692311863531794713183599731088819462789691152679404518629379736268741462096001646913195192261110875928149433699105222616789494522901710227250941829923879869637071768751119368084541364411272023180309821661506955801094417784227748452575193270607161116189214996647554572733771691489644527426583376145576256631201108784306281731833835775276022009927156453164102575084813344728244037902425502654502657617086542944646939500643942695244342942631871001902655416942723536609938713406042011475901655766808286900424145269547029709064506257710227482963162560580558670212625613498062476315319336170633457943723120416554374975173246952319159264943066520365893842791306600325012969661263767751323009780751643130106691323340789107467508266041943573514077121087545027149132421357945465338886961618634408196285170186175207786732130544048752102362711556017681747824495432814178585069461887762676148823585906511280347942908857718663476984674514690594737344185716996678181255679445290556233431474696524581322798966473939325582538873632615262152890501073250050981043827200016705082231808096302232342456490153873323026990922178639873170079085577392268534179249736885149732070418037926217724342871974781887057162089638632555928831946737952026388927299214788292739912249518503863921991599092212354481474965644879615356381190902785274330633617374333911270627774914350596358566786787990569502534092650581186229180341493162165902287241521881290612841388515850372194522484655653702789020895334830834967883727894844475811031076888275978948302680119241723445745726210250686487483505021940394658076258994315187825088932102226219759763285049793341039755752124523551926756869362448808711290183492458101616950912691803627893629831835322880305061571182720204124965211352604646559121647584820633942211301846117866259479372785547265967725300133411041474229294323072733212814878666685212292713429002381951722436008728001485558564244992072133158615648506805569932008148908317252312105619552458721217867402451289990568076457933470763996481696063860763556803895785642146309657508618266310108246888453408112712374836518040884173188220400774889621398903511464549764367298848821185243687247308191766088770388366427058216214778967992130518527412818218329969493084268267181932718311080706533920075233409970700434434734279671468495647041327338501916523081756749832721460497702414366110119576862403077384285115044499093952303327759900622481873074936531100867216650621931817377570029383860933479742353513882997098340555572823439446951659022084142088513824583899235212527925364937856344338535148230598157556959701875188858855239716596230926936810998884843689729869851535757817629652837304324623230981019294945539581094253955990601033957753302391602307159611052167577884807943211296457825694173109070033954007819218555789639321536553783023398250747451940314354431236999835591179955592574324287302624073784325654153501820155737300272885370482468757471958954027067143834987127226426369699443053839358425570148887800176414162828295020025027992540409871131847776550775427105078812097455908221702836802059503220086130937041419658799340536648939226386784972818516491586348539329887330172688045559383817193875899450031821163606808363549158436445145643855717467583092318434626395448410095123581592306518418946202375152411938768313541299212656672095867942995022175875822446125072517066396947446620453548939263473830109166810693546954720799961354966332219254374894205035706652503584686505284150474919363955643108566260259568926020350114508399202444601347631958760080332897837218829226785159931614111921192989492222490927137933781044021788822322688626493733493591240658329950686643738293103400468222058917673899446795209463689949518182013292383456285239127658703125195131451652887210136202989283899722439366428540982643499981981385525476575173301595550547819233461619911429660719707035227485899799904399804852129830533678340501348529783134912069095754328449765819226502454321267097857082014600381128220991956111436169573546948326868897873818298522294972399575268628539618641486118276512199342048470119713838604247076641058974216557780975100677467501685098230302573703559283164711218551221679585545122843625118365435124377501633318557774662981529573805305954917403349177098223249338580731038686120828982522069826006071777834807059855369878280791541750290295648633899234008109198327600913148161274021186492659516329370694976895811944959892601044516119206082874968874070394988870243327775473281045098523502642831841910705093528683755723098753664087460408462811212470483578627303899538260064020564005606007353143962249172401719457527948698514311563021927516049934499240179435619182033388986268210580534731302573912300156623432873779299661021740408837905801617342351228472277464445034758113930611597571122477771586387352041259765004441763684921724965609146428463555592216254192399304612665170513471772606473053331816804503717843078891612448866002426058122642746900157312573751324943292058743310343141486267649432401768654035299991730270876636883986255297733327479690370886137365262887821175125361446438812525502682047016017843183104279047800828781560991833867279121860145282073065505702741239059727749580750218916725201187029873491277348684202034648757521726244069322040240031736913209704899491698265293243764668021567113983049796984117700395888753683134627132930162711540896226798570632783841775072221734347174181551282845621919822840603614072353592526140409614822811148786144350301140168667845339079366994428840872959221846531771087731920770158789936518768358510996254821015909512293941589627355361807759758835506147419942251775987832113547833154900725085883904910394108527460893392918396461385523804750321525959233485203122254071731418170183953167243661394918977847283332336654661093887345936740832780055805476420238720867293230599577278262242298497522872718926785732489237457121622591741152229762721056889550272827969626699267198154490795911336387889759525273391063369348062254950956206945833469355995718784872407151317553873847877872712949119214478890184996481221413750974436995194945644564933189898185268287731084170567031597402249056941030696870716340260430852879377677527166092371064798186108910856213341988896662589715812371015191387954253858579380074932909339688339380891087077127125402330313456234555300133512558533034768007937461508485389232613525176322850706366786330082585058234528948801171679379167061762251698951066442326260887327040288934101219082768580604385181322685708684980056482283378750788823842503776262311299783447223704590867413476085529274477791617163190669725285261240985456088371486868889448130833514593100737171031710275132671995273518427812615928029665066025395352005972639700402635231649338147168149062700769636464846114455997831389196717077967329512475820178342902351185631074965970565654917806953525556310248927703820769891104108802889804467383037375449201051847801234759506380808167633286205105661523826665717852983477481784023749769272849511293432880186338407834620805836370143679612300007914019379414662771104823644880427599740965602666410813557781938855701953241922802406314271343006805577686460922702730610356301201670093017475282090679698598876647478565610075308532063354350410520785024359277514770320010526438028833572250297615940601493786168312815416503460432730323797158027950472254599411229171942492070686776598697403292101407134979954946820006212491598761182898903656245086117872973771883696070259775713807153093862567378351003015019271408994499816325098881296199172974415237861327425991247016504774173476920780493818268152600585732515106780690704840007627156800510974638433491568124116102658822882984989725248180944898420142221670343828988561041763871072621314271105202103815966641078007441815183033390144854988609229874785724487849300501917863832691859628741828230313093844724263907752433156429608867657582922088746126537314963075750246705911308340405051530370599619909077722049290475019104577823726771115807357080812839431180570639900706550939357425502513632673424986830807427219616905259683345466040714225751041045836254986552213445783250174479198094554933243605252313319272271813019872435224834185293813950195306556429477696578075990579428141536798166221218857409043104359638317733049265341175286301460564019007481998912536418714602991575662287166219639298218491055164413325355877641776615915075878132354901650782289590108024519144977912333497091076446545117520118184293643598581655766897073568610816594538059966928315285029325876797549652539758606197271200130440364765431798031774131056544429614610605643276203447863017762844270218473446668154764365122856057010846483753684496922352611117573099612255348563323883058539189692388722720620957260959379057353495270706578658553448647086321861196659827448195573678610708630214118685730893741753464088079143652892908442127218116386260663996659855171921533910523101334242126639737622002534763372846162296295191656769594142455450774072472295352802610963046243363354382102954516081626119754813113071975703023676159653589548525095019025662809981687619828543706142282665885532709627855567140012477534421483578682565729501834375739395488239592872671449322771096443448388339951070874266007667580659116634829668500304131071519602530956387845796398184852922828248684638909378717728688256264339335047583356058407837212543090495851536938622546420056378453557175408872778951817005956785509802562480104482403658453815680123857851027094166101171565443418408231288128977553380478088873078805936349626817896903716868545279251517681993404829940667957088114850083205598557988528900025810700530723519010538793016866325189758922192246338068959411117566734748562807529450591439652546088695152237773167555101112387681653610465780006703110168686600428336218116525844628644938176902103843741106705362300300033142458795445115291436882080707043511737115648363608132061108199995851938877242851044579656209689911587429295696933090808537434156171627382238487860766483936813410082473550803312150440246101872082683413541310359781656536195730390405831106630912589105435244735049311185949545928248359891466705307948018391358684159478388115831945491500515590817513141725454821617022347797336908063759124138657723738730863868918101446053665742594784014036132493251633735757034412121959407191452496845071230871972447249113162532011033027366127135407193099978035735236430209888220628396081018187932040542669602331991562550359850497231413739101385755139956880636992033284097828844011903873621250312409786697644349725831871159660487142039061002812380277212366730578315415881447982793342972839078271840570621609521421897193613191306413932387872726156099006571413683183840128372124799003070329468345836296126423738574027130488583525071902285936791514427357025511572615675325059295967262712485147885778189828872228756624339738799986315329306038260383347446910672022722513836470083353811945163679349541899591200279554483102869884308433709408741314147044529376646988865612672047140534132977029041841686833081857045584384817832674177818643903853622426246495797825729310897338577849475355019138113803038322454913474035162834854687871765717280764591588442550501877856207277316052630879452147915527349667464563842212757602321567538879980299458790465256825628125362659727661954510280954074382517527770954819608377633638261171764734181377965871260433350312637131972727441280007027894018458443083151729460863560477100505078400598466972203859156977919111296200677486065328839813259106954527961072259216984377222872144277987029046306154408847340832445912320534887080013766335001102852696432147352621105398335481640758788587590167677331411198941080280620479174018606352160757443760162876997148264660816211151259701975107843059278066451949392716432931393122885065393566696072100295959689307608545151553563064924053125522057099130157597986920335414120153272161206714298141817080979543705280264258001471707306192116972843170502056804308535478371806101872275733986060630617507646639319962736085946764795215071696546676863475012100895203278258049111455040641479018628500438888975633071479741460724094726838752561825348169102273489784466786585464423299007460522487789719550926020320032860586650832844410981859850827223334979278658523216681290236009622455030470290530819158975560012811342193943722639806278239242525144302616028097547921509435105651164452840933591566027986375999478214808704009958473911536941528310823837631173912016824839051540215998823035286113422175037116663469936517620691493037450815133454564991296051581809103566382460120620570590204544738418279829603214164737004306857891022196766663851038324209467076684930763002224303024877763191746919734833453913457324156700636391056155871760550426027512795657280708114961000599559831128302023013194728240076127870315383670226732645584677633311567293446080630869457348566853384702881374624131855680189154109679831303787034002584959392643892407987102886751582351456175118803706242017365968757320774298673571571507929808241385146708706415882925118077187925141061128393488502752991886409547337628635552442641397524061144201950437343225529597557185255929559945015005708377525092692140692346970323461948930583360720766593948122854682291429929980814169899816615899510383978316997479083708066613802539467173247173544618603343126762275244141302957797528987583756129801834501136674874037500302567603778646600459693415551284677341238718631615723882612083340523479245731625140406511874306250746820482162626976536900562897926759147455324995683615179611945244370622208764604897837855826644094585656921564903225675076062780546988544424178369453928568070878642127214500715392440244288224806882697825342946792843850373122437348556979426939937080772232147076440792303502997893919561597699123646516055675457590222046335831907193907286357989793796016748381643216804950802532962764029446795634839571493143240072496608119817074750275973623688400401993617902783350015433019013273756165101013524463545040715419814836681342850726900217929933540589184328077764039897561841585424899847506329510958719466805222816858648452457859368044010252213206875530012405629084347015535813142007077478324115822116998236878789248203675295743345334878395195133256509676011343572906092321241898023787490233200883735933988671532423815762232176888091761851174142323451118511981958951188520237423046439983670852724935325007833783279559308556867954997227225515091946077991682516399643797981584283436550745360720224613299031493180987554913565356404782660402165464795167991133228624491764706158985274590978191419385348593627883098048228808937689625760730544205841150366365001827440799918728418831425548797655482982856015189252394087425676481787675925959913544980145819066211614244867322152233629802858154698551624923969349927317542262133468756941943122828475496639948778934738990803139002587923039655519842815837708824173615098293604266171910124487658022381804617074320438286710507733233289183135558736152886027633225560939630773796582213775008875253468739386442224092923536578054926424220677095430775469676030350944159469839526871501281413430175789154010882049057375915162122521665296217746732901653073333884285809981406421286766558108112935731757150225037329426758800418735091927811814498010355751756085037655218843299720827046734161964174512880905364467757507900509035441029591962344396799502787625169482718645418147400076554421360384971870396305969760908247047823834751343884313948028832536136221964984333006844041767821666895627924024488030679025512485169661558098628005632617322172371077415170751017082964325738245526870825376215170940908006540670255434859752851262482038074251184630565874098394902057402660144932007924965903528528246472282497250805506380521075072808510469405200154094566723965204259045224398733957744967511301900713181021258103926144751155431188466270776084932370882258548455085965993082825212683131742675283749232429624917128768689570955769108161031167297686395914157762982008071864174166799763603714490039361787300361909831694981745199875121200871261682048287935022840198433458487011239427515028341011990807698634957497042666200822610269476223627884247092840631985768792807275428881555856341671211174470476315845425766310337576552303557471749484591871924961450545381147640038073074352621044853009748877931954409538865472220558372350512515701108675577998033857768227728592358730761429517402573895278573339665710213964154859259856421367752331481677129012167086778687481449246412362904164777383366384326163171535068242284268446533831184010907596327033757539990387776503211347103242259754179191717488511732208949161286615365160149972695618821142811213259865023118522028262329794012093937052414446499259862053246803441366671654338440543761953568619150702711964738902172582596898668038334403302575584712906991440567948710550137695613894788303104796825228479957190527676090781751880453320070979068655590018775659708930634141929304639482142815448452056294890175134449407973352132460765369528526548846920194512830599428055308210691842178466243201644706151711937694985532591287080653120373244989946685359065593719005351979031286824641834868828740257581462172341758855810631262977166996959522268347990053902687081737913774666493928978324766800920623318042162819824979195880842907640743193321123875392420991475913901947774741904694421140535123370992066577645715068391271414246171199038862580485256275413485808433629942073939360684992455667009860943891274339625807574996479681046041510358253840081311468838069031836389485473826763030473151628851841880123197845860910760527080652674936359536504945660933064657601788860378428882913242248574148692666121833948411816277322591885565702633125138216929262039900995871182352658663832577155593687810732874455183787645339860073422916997508772470933009215659119778669541538277015425115046239502709561846593345125369271554883109818352912996468422367098752881553748752428406942317285549443733994647501308789598271548506818218609796683812670567076623875071792316294887817522305681174260247647029919673226913461286844941618061055492095644773269001912421209013460584799066944200447772535689876296616000851819030162017004689860812372403762529059774054678792416686779852509919772161621316336523808725787356461433763345362950514880644881072910061076766102219211375603746273275927351696407944039994517673529996071882232393627494910353388279967225692603470939334888797572807972360331694978275361794570167975826699870551734510398029657136675994267708642413282581514251900361535794762254535698943580792960790954894602017564087273234018484665447835053082564619635431405505729021390229269196522426377113325601840174618405874317738086749769070600690229002285577088565126683249299813374469278843574364538363991988808456742527961885990191109949815208382435154921968032116102064543588218247766692655844747328054586462959394953719515151011636302005173310526739865385223410435740118809865240810518408958508257790581623836114805999654140221336697888683720173832696523723164592547739586967339860332811645821473129779231329394101479209698041029447038399066422802851396781162275675691312470116953263988676318071422602711660324087006617494322308780497544312242667612004583194730969955444131368234190370882172296597191481241488147848546818263332078684424784669449134236179682659306745433595715810602624147009619803888870442676938448990693733069850696387597422968754396551378563589466952576111846058393549642879518097510617535653941409611265740931794054727177671718045202065032616412342463213542074822311675023158201433231554923514942072335266542555442256053300208668151096750657611619415879212007839389165304493475913347667995408685974468874673366227908414845085639692648002200610981931578127615799844160190217459535691585950058804761157662669381451354627376476702805847587585607891501860218251111966346033548702118164573277357486187478561414350287072653544913585596737080671390498970308216005322728529467306279051058768960713404920514738725663597321246896187028838657841489561422108703977899087732356662131299556625125521726036732029771487334429288806677990961391220777523979792813482150283580270968904408310019266396007564656756168952063957668301777872908244198534804253908271123774909013590345761997979604550467457350393432063004826365375144487201328539070496227286081002828119322606529616524600891365336009225903998091110847799543122809600029555420754667276944986824833700642925865782636267463189542879052502666189217397861512484339541197428025533871239877253637083496964896638546994707974253515963161197431700088259441545401260611855697472848451233286651414494796550672836492952254556455210631086741327472349326834217788892816461944416074900543811671016551227657060089344702540346829895261368437531313541153966621358723621455062741007946126799390913714131843170312822408320001886879745342567405634864327042611812934791626597749459551635816238672677187982700059019282044861355588841472269978229443717306541095950285592115824527269470618497961247111744099367850355171092737837925791342795883214444159798218407109099138510283539646742485833679550935788911959871822873691494204585472119994699180520923985451718272177583065236243690597449009587950796476048091275484470314008211547319094714468581408318943000309982152616688403605008460523310195662482565244419085344755235368829039283667884676564336318349164255321055342349690565871431298608851395300511410130665554157603660012218803804554847856091177984996174070870026843096322859227862441077890661577254906074435650325044183288840095174667532623509261645364873538064774338998250244549855639591272066887877854026054833515404621020922804705253377817239549319251827905003672862085743427436183210834266344115087668197492067174267568571802932996529589883373084401677866203767438618459205159723615572767485544545885580125373493111632101565750274076479591485789143598366925121295808588993235471411455091538647659661588003415079331386109799131983014795213811502225289900360307960848245054111361057870381868751017747274916494230640765599111407453028475096473895289866411862793289638436774770201365431346412652297343763049170883195250639054096132760461636075911306678176194913857069879129953861974877244222935533198003275707734480163490523977330450665849925764540617356645441078284649097800554708208140041350897932956006399733094429072548026516163441346724467033359683692983804278163762095125201323328049350212309081068725243368772447557953041736375480542685370276773407808257096266070296013267724092411216204494576400343318978406661200155895386893808509200942716824656645971061316998276803771630771630698183308517357547056258468285696641445324354115861357464067968155198819424000833397876675780626922926686528564340415620833040597979717611469941084131296833920628919319281469656592452504778491256450551877824982366439984725718929072787317275421537305795633446131837043310522791764800311775178867992926183354415425891369996993669918310413441468199218989367360645718712026988231801319657019360081809176521974629757588293154808307773676968915571219406232890578873935222359259146335494860258455192810899568752800950698775291302559093039369535937962471308038575888356232148752321439670447000858166387699149607142673820378881531211477335764037780437972871810611497865242670890338019377260794765221762547596289045783124826657567307609716881404840732474173186120030088701722329815586238894992664360862534143144735543390420446111880687323830424740170483496432530360163677350951103038818711454194513386431464080638090285317492710470627018697307802349071485842658053228332697617153909810496097771702459033197943669865239153304368657038469932012288512097160727020183352994666691193952753472051572186113413673972992876804201081309825289629373506213780051810885495507098557553546907954695403780711745885119410401437188450753986515025342327989362910433235338395792726580277946799684422594438254874902818556989937668636503970702370854761902984107921272266061052819689669740669843406976397573701051377548931866171485702747883382033040587872710255331607428169006678612759008291483571006582385381533316363460486503562677457545909632340785419129991062361496758218619281346221034584470517688047607904896593747970410011234023372009272612471262069306003951766918600930888834538490698684371399664633567623097711393383385373835394785320058178323317491637888348204272257237445366040495161014953491674013383199705402288573774635178154643081616541243255463413023796106105669405492736082513484568069844609702359664247361630760562515537340358871318813998928796136447128730146200625331984456091682169816006990806507227645835401014660524079409178636338483696300272001375160262767646892099360315495936557566605449317806822367093577903781488976139345523305651696586071849175150384534991888824520103460875365774279435952358164345042091169601662218302562611555711767981127952978958289612528492977339091288342287813911897606246613612769723914484101845084552273990480815768540900979746266582396451562961234614806863811694080129549156839736730755164494917575417874809752451529167322129714360641759504176055051660425082875068190741842086032782191752258959685625762777728744261998569071255579765449189273181185534136156805806852461893381412017340367062461025173520373932833968470878406313962281295319729537117537467741089971517983186005342695978607807703192034934470211344942558275207254501202504203719682864525676100118392048671276107522596169772768398493198558766398681444014461007634616139220039729255522584331012655962812907243098135150330499119578524710097306130516468348922420774053747866894155461159583385821675023570426486360729038830519965296946025354327409078915388841584975322103409518831182346638554816473236367808169990643373123549852918086418350393437149896782435613809937878965074254669041313697117583719488932651643933830936024364529197615535600307692547438048536852324179156139309094513406568562745547083058479369109825865255472579541915510711666652417857622369073158724307260459112359902526818408067619965508791675132915677567252468353917787683550130686609511377013894038296584780346099880650690582355887117215912298149336971647128077293398991475340146382913598829914152605565259150967649497420140875548488356097105111633378689666241727503956572301587395471884731794233018123760280761845047259996818040909970878310080048679403235419218844320624157016397459623390378786998399783597744273473335161241114582945369359707776017542322806205831892829155288608454881105469670476831283428389284792890204308822410570780873450101569396193468645240926584936796456331808567642315251789955493288898190710587631696317990682219151606614944504037630806040016262344846445650010103285957458928624554499849773475788057178900286471689101125256581949799619657637560023461536225970027447442492562410824551486660067314176269130373236296215946194715246551387992307251521228267142624330482381574703451240544358923048693173035819036620061828321228409937336296187491362616751662958313030843427836442791632639986188459783539098609631699919342057311941057682546300656028156687427606051398757504174741149986772879453101760586117578820486935161124693813197566930226707258187406291290169372068593961862785855887835877130572180652042132266755230086716027004011338108187163667272326575571905779919398935710431110318596400746006384707780566847495922225301060346983468014575665476178088796669103518794946857786729712068314984770765177628962062133998240311391508694879726643679643660740676684247049861701375481098462687043927086602650934851646670592256658064529590560362156530503162207983395208657914107194628884769780021259697725216333033619445244415573369292873294215977078167630287094407572631602571111633409583838568386791938985541028589137611976873556471488363222791330397897705836174198813462998534195957508333228114853859292333254981868707059142520779739753454711158363296440878471297851103257793180874932315463666578189498498599703311763966783209804211579115734212047995292807735558934609341573460689914054531230202320271908811157686602429600562497404231629694338217560360150017053750359045056369287780720559937635820895783377426591502390863783644189874127472017187405480434355526385291018026890349253056785113161575173727565805015510970757359469521471776442613077229452484813123245614166747352434199654171736998288164506722214816692463779238768253898527726956316640537717232362479503589692387217853646541996393205551798520507578463811457711144023569816277861094757842395563519894674044505472871256508120450071371161331612248538138055212157216232444667238291427063269150714984445306763115626514211632240466192278444694837535017304864779679786323216558154165925282279968856496680321426509752516817820135223057191566722975547539400815955062267355806876466258414864467868941368200667568438736549389519208637090013466864069699641291390498442600999504256493502582088500864141333055351832528244554552510985369399867814718598071054277918768148072788351121667247881376939045296837826149210322415817448178382874311016650238784187680506722850043801237744523012838339420408441664186193348634197248329134616332128738301365701963432620210195309349473510099001934613485352379636154112495959251194284038546195000328170056490679877170691008417440290053831641296521222571795100514902279263867275979379874629701170028526796398682873519425404204235946985333885507852806235741942570210008043508221183793891303571904620635832128178741035453535139070853449898147924939979949984341222683340223846877086375681753111156008511278968394837064399609595970078435018568872579353266523589711932810877592116003344966486353166096293805777881496608312886185337981245450016601771859780577613529400736006206313987243325232813134013157637023055526296550319637709223589036319360411347114274909055100330148315198861606967713546433592496775607564964269279723074787291814501026170713004732696412594078907198279798526936214182785921746754134751438562101982785741302913688961143955418228373203575713562434327325431824665607407831397776878519388337902277776235170838908499631217464472058329561799192600641381783955140881039999113703013951472065446208285786690536529061381417675148016163009818198076269139976197183860886007778766701048706855528484859656856455349974805467103704915168060170795793452703480498129982079032984254539084054191484398666628466470961245957128608180541786925698551125098523651964651388697471130060608301537615002074778443712352503378143517915286964444429237452868764763655501401276434765491368396437186524468102033417782112992733044424748204302200852974940398328361354354768589688373667279528416066849093235362591041424198452894414034559258167588520683904611933651758792966185281605640978885364206819420701134461877803179183268701600069921746249852018950225451249144043213969261932419410700715046720438838787249190438838350321826821294168342653656653933493613098350575518247818244322150819804914332348042276576452626709502224065405736034836088595009547497478849905498512134135819800319804795124063723452842570443533860279240075788705793900456210454302820215535678134904292528214862118957629341909178936853244533047252660807519129312596854608459780671589519043987618546264607344311490844026804388526483525152304706809582550866024468417827292311907665581781001429270807004522857997017170504042665611738367957689767429279164076389329964018933828151319062033161771659387052430820612021290884092017897297326252975442411793755299127477042222554940790895930687532655380589538744745195560534530375657181390185521237647745790523610287098954224827801631187008021502212958893649647232153296222255276720567787559705599399284148671164477358341405535637697528664588598062622435225448772402113842270792208384255953847747998067926422092353757140542471964814023718624303810927464872864944284975856886128652500537759897971528186265589417454977887655219661921135614314505468234639666761431403049604445066304955447656915969375871567554279404860912775090049904154003868200886358819848300247300530694922495371867425977171590586220173435808896415364344196605965911405721593459415601260912772977645289446504596029764229487027762329377178129366402139564737436181276625613376213189457823157204613655856976370139472253261504101198687258700244131185593710188965839680397577768150710116674398225330185487739501711389777600164435239201952610265552928500960393278445467120958344837464675052208927414982371131182915213590153222258611666371745563135065627901926843850291916400310600597913965000953303217401786386802157977914147498919616805035594510726705187714309222173697931404591532128592440575208384872818646974376504480518348853617395833355860921420752390893118685223572689022846055419891835614815615467802831522145041465010930084291468647157669617608940303836414407444228106922005957184677737495423997893100063660376810926288064694043730085404541833174228370037810926567254095193195213298724561242620827758194391687579375714995960024209233401907953100863227366340436988277690530244270618599547968958302290175222827780649715911447464189426926742204217969969694712760512579260583328387417660983946291859346247882615216216618936318425593694974645778869426454441943659364194795709799237760558624673102264171746355074875565840853279617610206775047249477474925089528950113877077043648785308185256494683470053386510874731201143436585827201690394831896266190345851654656685970779011360699904590747596810023595852191038576961022425402092671826544280780163120591694311473134096831937429236685183297633586464140826604408563943663850754582875660261174363462848506610877758560162119362355144057711747152286405373860690612535193552259863520968654879647934964330889560372329870640288360168118664778341926112280638551137413565376400543331201723559225589384492899701387202414053677751852793691852357531941622687972297016044958934192679843521126690044436041267815700791134858515634370256978004002533147149771062894190602455762631202213620068767267402691442094983714498102297893362973782029311541835686580750751721315204375661702884706907706828719021418298926850253117363367652325589009117761870018010342224552215449775899427095057178280410736979141787753873027735943924525755688553643956898027415721721817039427987533290222619924432959950282026184618905427069301196488059078118864112815130218451238738168069758595423284217473323512347687705871624013471992294410045647762909067308193736524831923032400340804103291882611878673724228044138707314530563474688662579137937825514065785526184959078273401485570574248552386962450429507836725624407821005589412058300669249213464805591724803260745668802625971493839872319627612254588453650975736112005696870063667794264836961623930917388703034069902523012446187558881835366775321540663560821344020728679348826239644728719021238619096281128304109168230759365498733418193664281300047516273771961960813883874964184890966137252156339498635932333307034212125156569927962457921963248264075017658981441012155089858516276215661293901482149875996848361936731066053251520884790080328927969522652754940638004341661567976507579483377367608900859253812207065271920827224564544399410457852498201556987928481095014082499956608689418869377870996753622603879334617048756312007337675052401209377664709408812942463432165806203742631739620233894195602899384690862374112797969393629502043742288456383760154221592418474935920662226068749662118495865815313046561344309602362693439207135892368982602933283046687483972244853761994599458628729922831292300063574804066383163037086276146577992908951684229062366696112632529241953466345376218482018406277306275355595368518949181968340663263815653665328037331413889646259222127168769800449217070496958102741282906199119300865565728337893565068389872264165191037400246452626803064704351139644567313052989608437022839265905723151245190063256338942175321323618795109023800340131045915166136697405622997873233312338961826766187328206058111984298860648041117933590747233742401668431502427380007100310711273975731466890396814430966319672837989514927414614101311036884048885213050401600438037769191471548817661127815212641098879843576796146324554648272866476898331695017391901627064453500563973107263715473281830555908861255344331012614095656856241652482575481765351605443463138975760579088550301633906663594957155373047804756974406091955621013925043339877002012056737503987311778562837005689879144346768988608698031621116994076480560180483296036167384670614579195934313262892702422463369584510279403765679730468246072440452791277330346242026118365964580607777212603813431020369650621839952524343455993626300848899171206714014001682229554646280944042253662094237095102742121770771050915521906099239291262868513224437927269094497576641283332934603694984632204732039729254991820764804889950655384105096909089602112913609015845841616407801493435611114180938120427299814365449442080368766892765310852073999916350366923316550347778676776817233627814130451737879543613030736041509200965153239620137089408679702527892586414119923410806533759439982444945516142557934074872480184602880115395744721674453994392144201559778622021307630858463123006423941232528290526205576748672468742054776007196785655670795498261672578239793087286294910497031040347333747384952087879448468979084231546907461892003545947409351164777425011807017504080380736500181443304050398161133131664718131149083343615237732394679836716314832633780370494180338686842021770700742206317242947935513130485349868615389448386757344612363997053902486685565929397422027822306170669856945165171568083900140737931560795555824929978115713618913540162982724540617274468232442927210636407256020627952881785309460035528288036969918994953274210622281086997709004030395470117764719111552072995371580416871617793494980122575825374559444687259361334436657164650491484708983008775254030204310462706199136692216319439252033784730448113648929578811559443300060179126546455778257993256375731498434191850034200710026809611296089551985289805228669518804805737641122722870950087795004811233221510217688033297466689812925915510595445259434485244178934456762051496594668538259331088780650736457173731976441437469415410814834778866314320590738479214527436829908422585019734236793302715534110702903518581504008988152650453888750352436104585455594945454151128403284522325089734845521302781208178209528289829667800578397527890212489888073262677028958961599830562622034044406826301137454319719308410827316126793891662141506251483263759516630653763856625923050481963287226692172087464587196897762224447075230649386494993446037748491531401444017880199440796905079454499843763433177409580035117516104635692929742837311456974351796364414374299947866696216208276448064181406378344857950490888463317714800941775608631707526154443747795896912367995514583679100573096152670819944522546231331510499744041598686992308798718643602881894113673437767310217393584858775108242115799038236638481162603739505935748565816392545630661394482879166465986835865342947492153390704884210392400825624331959461092088857156822449955380146978032862140616758093711079505943355832235570629332581431772743851615636052533570505067811840703746494611232289242641155070790797119181987116431263192996742592419687096727071363807426057633315638933129915038188838228522828041642891715924838931569817457912406719713358991876191168560131685241693246955873411790775227885319869949687533009619728459084624838217687272613399211295806402370299761241468560450040544074952223157974091706157755669906008872984471407305696393073114975586369199986898649760579206206707526170856787077773620291106063200544380055419444558528839954880027983415624086197045510647953548695283361961785599644875883730556830297038409619545291080680372058038343187450354167594902556159266701479798981649811602098262042413746680791508406466426748060747312799588240633255493650584894988881114487099366059381621483105254721379540821298871379321183517330658147909462006499022568162457559043939676069003057756185183612054923115168121807872523716978971624008329237080019999686130080472482355344251855337031604829032860908265826359473838661946819293446366117118504155473266490916416195964929070453461488483573409326630857197611908903384757076862815963793038465077294388697979413445967045300390827646469318384547925291854523429551769764499157416209456270019663585101547006346160666424189183155498108855157835162904348516686672386350624220141546070172803688565004536670537124946385454086589065354105840396500644136922134159925486742635847906753255931981505815793261905204809184644289740440342319103772956934434910418968510561061137978979377596949899401947865774968337932940441319638934824302551635890698938846811924429978079593391139372460572534833493003479837075304499354744706179819901481714890053915179785264346451536449542101372072555970720260378896653573306673621983651540555590326051493367057425072538257993271902958346809892796410139583306998702980883622942747385136454574575577449231232523545995746380332128701171881966639031896073673288878419148166233232649565815277843535705197398127056044984057788860655790618325854788209114799236925694607944352737317080760387687623678745072000242977268627346875346961919015282866496122991696439967682211148744424022594751974722807068771816005829952543536020769268269800882406326510581644758791961982591546870646524688153783381656493038732321891042213921080539075302066194684951560011205825187179681249063733381714361889568562722690124910768026161364545651046701276839755558683055566823298273446773797160541159540434539261472554743310742498648782622463033037758642154113587048934822254558345923059133436773115398267408858241550879218894467506229460261520680700779390473812368710578583608433672773826030308092050662902562357095019720845454165548281150645896010080054248533251819226463993514930398750642364349689137531320764780646584829180389499345360487716882040409111591294687256968667820543000397414227802774851175560922771135667831082951003328804151718077395959267204462891242723674325544182973319898438313405580586843065833968128262071062968261206349243671139889362432624153418895971605039811085731360409189840504379495442562444353311951202964754985803001368504803856172534210557061563568973275069810665125802217390256954917698691442917096827773782113540147852324836097486066579594883862562357544473461436721811516710385738230112274522573333565552727128929310690929093893884926964998538524556180240740189487242678741464291781473655491113783894358085719444272278918674232207295427114188392783495520982064390410044069654918393344637158971617288674282154133147983872170534586982668639787470857784587771917771073729450879036646229995031899731439236747078323262104125092156359148130445144353366125765251889110549264944576629401270291981741471239499798697269929574914277039910315564088492134531075538023723996598331751047821062066773280081302982885655908214048930757822503690175516676525661132870714022780916261522051819430470747663943499896110206862765220488368817305233418978617671542326035196157552613532140129042407942239456157067607225315665740370578553077421957550023608734252965379951938717889653083183988006679932756452580114250320984276165892403296172040018883994193100018401196706690432323624463233476934757486243296212717755918445939230427875959045948830393121454751753136747318617249817075947187380216160291563352112966987093085169875704556675447155333206778266763191352550091543070887432515194388776994961260133547198831876482267193311262929693600156969471336193463746478130093937554065583660484688439977780139693866148086507726939056497792053595589257975427969304597998347123362710595651117049478017927571179852826769525575574002923695108580816551312763066633418844209932152158240808979035716842741446685555051588399735252333446850668004000756768484693407504177122349268562942336389132721092494145175398222868780011674061630811142076450090324704354616971029932499356250364734781954554659370115591123373052779650826100939795522869189658813957048087772420820834194130978076950428297020771324055857608382249362834991264070048112842859086144836168072293402832550870344189003816847150495279454215999607318621727661557022976152636954672776042190981276291434355145681934251380352054162252769279293328838287693976666184573406959812523363365893531129103751783781825832407510869017584766110598185512774468632486218034562084171975798758551628660564367609209809200718692759866415978831512127225774399614707973008195444310170879377274079626187917279537840717246406104777655763300861838953262648067367626654847386774051850076707941107081766327040788253967096609392750317483557133115248281096349310478038484372924332842634307523971243802159331068321056639301267108100127738051352502625907768020074176393603609805923970777265925863211809087360378236630302181662972682178251697150302645819292127220851442295385450923928284497257435364331879062826916752945669960643738091165448496789959356746489250721585395247738161689152107873477229653044650814905742944323679507946110177231200437235416142879184018312187361942734012256975102872349328493345389643700804664500533479434897869285211147094449870365496483867449970084725404867926891509913974658120363120201766549270941083223562876710750885643690931229849935664150593042434166069192686611324277903359049194410926577509740422218442102454685762855741475570962720528048985792041337428997971061728730425606504030324680809025318082121693867022270446760380990718167408298106470291701358591501104034607231231244559272038080159809549802571479654206672078845628511900678409708063208466020975757283139541161740436228062259984765802171852372871960422519399604669962495253313557661355795255347193822183998313619803605708881919330185910029859264205992462725706378065886909582705476566096105987217866290838451857040927016836938040111145359247139849952443908791236783125818282955339189063376982228305361897646582013242287907677729482359850037553885249416596866407959071272046960348032152060405756180032039164810855732983828872201485148011636876806329756424305289276197080948107089474352227010525974692503122402031281776203573998243193089425539290704599244271653971686700244101988554063513246993698228796072945578533003579960840531896546825393096776517850900565583585171144249483352287090097539480739740716899140984317307267611712607681863362082888221414549219511591636466371818776642366596457998463539871605846328647517969375710422960471636562750104558274551972860558218355855108470876203591650933455973705533814872920694250878411223928054850586703384760925603821944872192709722407602082126575430137421884509861952733723708434567505993176700714079927466711040849172963109080811955858009829090258940535700471869852354900210252641522348473035502058930878142308499635896154675136448807886512098286370362142296150294743372068260340001393153026179534856078789922450902368429353636404161854281378685960735836968684372323942835385939261292513255450098104755649993094036394923906724459590188753219090705294928179226214840676432378196282144758872305004973491014868544367424294954905431808243234224133191370323628373760105103016626507865053375785921734770077769755572917706038579195338893137326543324870611683731946618519595896516533879306138836855476571026272703651575751093095631259075350192032421514461448733711334181680403324129851938765600794919267543793600698903508574028040182865800684769809703922887672457809066429135665814940430074436810163119859156123124387795930102071336990494182232668885965846305771968056815518804646863111790994970900137844916430138472109935020978326960351975994231075425773160211074176174041271768809109411524945304217047574493232400806572367135601456213863205174587851085435972285729157563061021088711513199676961019186116091513934947661997089026908440860532658816788314024563375390193203643166959158516224904644400074433196844044805241958819141889076871692035924818798629361853249076293257381597244748890466119159164581383812983523841574783245668694513196142115203588319388463392923054556551038379565169792834836154444713628911675698537863613972488321343686751929799352748082069615767016867849685689798707439602476799017160271263225755717142645742974220485467961498517965399080873128680028018744756789059475587924639080798322214319076562589111638506814215626104972172198812235288093299851663746609750463862322826701270559538310135957388840350876089409067201389816869129159990431155258820951156886234611821719923328874872421348131244506418832914613321601836100190575605541485371077593022714984800468222782720314339583246500053442781498101623220581445545345018063667256763361679067574338359209846651169730125061568216988018460659514138532682930499525426372734291643815502982001276676868158741480000605214490375296430136140158489561788176093927634305496322509572368913977005838663114270061488392726044856360458060230341095768318192790655693479890453844996095487347793691147648616728033966052046002964866552703862958048947388830846521217997609672242066521930828695667514500963647632183460047141979334511119851402202752356033548143984569555001238509571329097268528103049505816577626199208474951785340838005025862878095210690280926872116736782294570444309272545851321926266138270493228620418108487880579774950473828249401014995511691872472535117613708520295426050055156236303422997938341937309706134200725464276929366728779241317807332015716924799839685198557622814302980045578825072667618635102782204292320839059617241886335010240492601307189009228910086164412980757997390057271951897483487268209237095331112317936306196912473237572018203866667140548670985399902787291016002996129545173386689035893388250799317873336848183279845276095025142995972175567786128958049931390249761737441735070161487140702897149962340180285438828925878135354323571231086919586361583154366416952181642766733390955381742193854992032880630724759968500193400836503401151649227480004642245298318688668409101736872473108896293754158951096846796763746210148967647641644414084872342281486069029324349056153284006600386245376814236747820852861908858242191713324868392258098429414197847524670361422920390834674491468305454642990584504622855363792311805288060483180633512936132161485322439132931759670647119027198451872212984591681203758299376556820677615689162234023638108126958005035566286069107573088280970328196983612871663544761000200860338383612525547581067557677244948084546793700706447954690516034771956385280458687738555348989440868489699429238223430813812361363701043355419510883102852511501943005643200932678135679540731194605035296392536381347495022856178505209657072603540009672027351876076452649617020605342558901141442199690913491942591120104081212957681267213543753957962084259717019772212479305551011819855862880838824234041760574761831188462014281966096609413442953697013129393306922375872504842725834363828915955065851404538387394654050368735809989781883994475283155067562520680554795087326089524882830199648960647701408181623631766232824133678665351658481866787067624026404166139317975398939520616483286126418492408794270278021430210482969367594682678926318785875941959961408080624448188989343420624294808742702494167498801381058727505352207381825377391702002329133168923051687052594879626488743558200270486380688778344341992512552001112512516699012008388452438396658781329472280295787579832301327331816034897381094962782392301986246557306936540459075538664248138069147477150757766013409427110811955228873404640701065559039669191584207169295795612963704756479506224726913747398663924131726495140161470474995459341394401490981415519730351887568844881566181455098263113845612168330280505929826402328852895592289598830030680185578623304618326899704270614320462320938602919300045706360403716715095524194288140060193021825456022613898283014009997418137488324828786257112474099652725506937179789855075346927028311785514367128059765648907748535340310829736335932966944391637585496607750162125606135857262827528107903934864266821298185902939490409335997068060253154659440511789209011540874840028822201994080434802774663079177756002331679585162213418390902893899166917443692979251529285846192673504561746374045147348367616976967502704510930500012002939066055281420890142176952605866359971089974696857946560404621650371593123710969161325087257787509532493676116946853561594148749185787143397854050815086775058761941807045718986780319184022611379029115825595716171647602491541734685105032440665797357291925219839965881690533913703404595537768471278528047964978335157588511938901633109653829423658800517725663414201593375751311341471391260916857206407203587349138988789800578950447081075907522599180328190232091927397048397648477252103891401347614032346478794640990294677653120396566480019009164380358015456517665821641532346417855051767215789581998330038519583340424477329108214435868698016398705800394324340330826452925481054440673975125556578063509587626059922719166690169025038277505867141375595193999174956564164128396235102140743429168105931425599145202891314689746076312750716906112585459505262889598199744343429674764358178178276857932760311333116673413568012244817644726025423278392871939806724027011284189294835417848444247360089715823326460106455615044961228937612705503192408762284394434069158339127905721846379625493984095732409034535964967853083579752986160334663265067633146505055201942930323452674365681771927160948328649559863702778877228034335990365221971099623352910849847309555494789071555736119309946270708966832484816903429399165392248583946669718471571931746257305457453084798405168958755652005990301141743069656492966297068997556441733672180925929078678484754286568625868189281768322966507080231483140619160822209727482782810296263860182577544984214915296387692422657425735294651047131959088417797141277600423954512997965036838494758314296505142038675332295471227578902974991728725663757585582748527897392677803938191555882662482697208529259601941165766117058038884304971304705141470969484818847375503143516263984699641834199696832594688513604444966573763109693182007938632640061567232479493069742628438010948716870152730267011134431162489995163342313884094832843683373394925575347032979217555436959030309234381586543218366610667204350114288045719213668129649068268794231176924605199918718416159331887600597859568722005915787346958760405900199299110803965725717142866962877476750704427173331127237454006563646691417888017912242648022753567460188233970472909564740120480364593958388537775572929080269547757848542318829018355103303286658630567598375426047775708455048283170427934182570836694144831939295056299369331079794550214773282298703031722526147504849965070023808993812021560891196230671288508893828730163603494646587614240426136820198185818512910360438547047915050445676381018139639192009812406281043050352833965953289898179813255475247320500734705386250267833653331239994002132462740600872191598587677322439566768717846779424579750195011831256348721869370296733789102478904840430504101121943988937103624050731390463803054873931308554003329988805271065581997614506336420343681966426835319359893973369324971012498802726478985446363827474127477984198056871169392219386778873453356418685455728404527991262120120687460318564633074673745529200020468425346351195159770997207504110042340224867587692478922173029227545362875241012888775453967934143188572269643688920290978925710409196054979715939013333099689979688112181894999183487908987459140308874666091158338908900786893497260286114527006614118566913502973825734853834770396414138857750077930035546392710546374587823528197871466804951693056076600101795767339634828811382218725793909422174318438408637652664466446731008090148362002367413037766532835964722709401116202615059955493761774854056149301961828146894441062067675748046362625056819936583509240023216240708765531989568060033403055304993784101143625983630199876531813969944898327816065098414632942779923191474230828691558262539128365428935813507897661773903268311420121689301009757613272452724580506814903117386212872265412354797445880890255028524639267939219560719381168833105112221445689915688653041099966713433654123819204871567827128516815831090755922723835462913206238780211542984096102268030566097644128786183415585216933420264346914148496885626110639651104281530019357904727926482404050527270375143829953828134859337687019279206417871609325678889556467805525001620503621346720412412945461231833386361470977874364508279857832765158175800312664435101100909252088026797129221682640002119749504528402916220829473104058982370915501978408779818104539509968507874337788234024390362006768065055655457462982943344723642508652095427137923881186200641617282766002283381681386294710417141104342481201106346333904729895115460239189402950868678412838693451177247126269107869294989049227523853008099527833457733043184545676054472707175356138391208663691073090794273951115504043569081959355071306510692553358186624821211648898637288088372145190209376288069687833484826204755828602649233202473347088297787922963980279673121068171665066317099736482740340361417290884948210422928577190011993323066942278306871553914801338686473921164423816279527622698970351622678278319777247883086234183617570205779338808375572541237857525315978613535785997620795935933670274396854882662339179586756359748990459809402587321595123769568940567115843797373962780204993722000751563978868596928238497572377193388190505918426241277374109687698331507215846266698668683864059192478975048950154388295331911099094368602803363972438687765789694404966300981630164564335921771939265521447332080701943243516433770623101342495390311350726029450191211812563699019006230901091854246231697738288545747661111048663778978297595804172142188400629780582852817598055267348104045134163218002060571876909854474540432487012246301130705345242987778674118069395935212419074675778413352921207547020555705736436112989234483715629408196877996934266241099386818909039825308348292391673036733483511096941038562623421975924483937089850114471619631732544178806642904858612622795795891667561128000820776395803450715889441450478490219590464315287493911669626893796296085878799000849031455708443366633552714057607274601601039103121731014074126422102210147695146935300234634399913604569157516078289756573272379424582866760328640000618962235382930091980949090103272991259853971625018517050137552896204766688080986144162801217047773370363274765310898268191000962380184184564571847320982398841939299208827301982337787265300024747401661115618413394107055549529481958280806775520777188642879933417301441354909446206469817049387163527186090403566402659622380394342263253679013236741785918894217518152093824122218167879755360836947402836227105777715691716429103131298205921823132173583806075717914940629016437304393292785259378698270331550454981723641636402213621631351648038748754448944900043200399602434780692123733929472004265009445796847129424912923321945634809497505462276337874816056228695996143776954210966190135571791363617799813929333536332031950271413499419846596128931981650402473086102239912858287379293669368749114234248872236783981493444882288924164168179654721223385595338556791167135392712532622949830365401977321521042835187144710642401044732904118923237288212640494744456162706305392641906617499271438052233881093478233694349744712645510722707468507128800144310368946544677689126410333858255235373075644863468484583487441953623388723245159902881033797625261792243823386995507319649379220186849648067021328435688481891154518501927991535814550957823504680098074866389043406129572316181404742909438728583207428559092816121256021157783598380815066184944072537291361185337280852031286376292431530233250984418842536830286456381205551600021961477539200281580245066968759111427848054905211168546651036724232951573461371805298884985631338780329126228101548024862606087457854856996473122634450761410600202367247119323238045278665782691933423787312051723537559220574101720106900699794898185499098910781243013202384557580054893630200937726895843214414939191313849053418738018703841058002485172227297394426920190853210964035519681170226390300089124780780186265341527740464153141493392493639407152406695761779364423965604184638612709881358317034955546031547330837502999000184478607855269741603745061285042746783103182191151052121042261779881296027329193885420729884657237633262741558602970581972298007109096758194834009413979190742119261834023253408501487747503597311865025913435580385592494857946814612063043809311648749822773160598395570749630991214062043628962941498231548250769406449321030179187242584195598922537294102782782431927034025455295151115058312294293018160265401930063950042698104573488267214612417261904427270429735919070453227467612254681250677924256750337809922771477726199579502935771091659504076373455707710948119673516333183759420166298011922678567002222618251797049993683930373409096165100404027913373133253846575181734205641053576848910018641818869853623134770012452431816302937837473589542326557623229812860288765991771630941620556193904182851041684667809146581605776236957096540424702829136334243696093494815885183845903618965355387506501754660184699673499986354287227286766186136969687567415243138815803653991642361441545928712956428757328430009851695379531494182840507910050101087129397086202271495806155001402454726438102742328597885691334503634605312349611028106667950885833157137609129190180302535989686083264227543426689241142353166032707150438269055096157923744596796648937583884346159405254157526885947643129782119512403067285236003655817289126771359596225297738144687858671600519596330111867300406975232498147378038033015124634183992942170287872742734567824023302802855603001949119534275765746640339525622581527360520910248957811390039627156989002150909665721602412044398838788970356920893453138686162897670909154891050099577602147059671641357386032235047968437057254434838680661377867487263366195915340592662836429141866679155728908551399233938788041313703754345571864066018043862027570579103254474942668212791842443526346884820685637669666650094189235222687353651320076033579391270185566964103904717271651559590842184935430427096579055265486825138236417886454563825603809320717307858323921061673933993858985256610212211366278659366069350838922606308685318664417356613189817941929173142399633277838324459585997523678515246985888945037881978290477035176205356567993180963775804448514794394973701843829304771858402040391043389718565661028733450225133265023223423817738350061686119535985945601626912858763319545086138821079784201346648293601714085346903339777346531243351013260569001875856390922239540581616008384557164578723026140078655468764475263683068538482491416702786072399457320104530007240205022277289903851066922756993707883864556009232186405371138800213316434479548982789501675954715901634889878509848778232420779619362026374328295345736989160276967996742290741822751324088781801650287686368746897595649566473302165646508034383695396547420794296649087034738657689210831677941714891623986271261169037831430811677002578467824485825154255531193474733107614276975351723553020139319558242891567018251602634788724693264173953529893108059550307856872467264288321140396173195816493102109369791321123321071842005208823179027281117176658320028708846449191183710085578296524438933065912836480711341763353805073238140940271529952306790847763225281038132877686028137260492092045876752560891660221297442025029966851622034408767371795920525330155628181658162762384822066086895172329702767591998150356493489212794445392373924748826278069598636767131072082931443173922429358143462743096569185509327569025490356510806070888238185427381891790615919856446512291495161454351247283201411697823025823256277905400984463629364401143877625460498549972057552950757580275324210669371754987604796662442752473943166180219465502266068444532931430152238256434408022146588352607602602395507383735070465224064147232769359237467581531132379384561376470215142997238519580432783833909883178404132946898775070996567555843821564140208430118827212355479815723548138864451796476992083481175359438481119910879890900180370836822928304575803387091098921677286210766253765238367911429229256084846321024466006792830151992961862776851096944904942820139792869523638714943267407196996489155269513845562606222661308279366576438708307786388629528076649263862733313694965018034227144070774582887742128893671863742015130950015671941577723307254149448857252740715047018530901891481935713603902954864126819904520300852455539147210432889463323745328116885119613476474186733896793827973023065842941238195349569471548900709686769497957131133975112459215061075459231967899877462185471038456826036946033309842180547524800931806016338215031875799643009069239149072148768894759772365527373946052686381607323246342805966394135806963162651651600601258041773823471734636548471703811277070810138862767926432864890031621863749001711026567106770539329050918153261201374370634907672454063799543815439769791662091001900434625156047734773491328254829672594689189813487862353521799234152304956055671094723416364888056618762669233199191622080377282496207749932320850514138455341147628674915757065439502914804547161539362214057670422656670611497449979116490360131385611706167444334433840560482804912238347532526109768988583581363881961861326675004619901797089415634021867162490642178334963416780166370819583585223036286733182761142499894847137997068987958276753806921836470842968759967290798953303330207782296148655957119684425438780848732820368789671280193429522561830011041568962124250879454929790717142264218111937040902878020685612414745719319173139292902700902858891074417620888828524465962431356381599345908532680767904378698173179893587135891874392922274855507468650772816837519364315590401365312989514642336381733284178369684940070877804613593402280613852942469082092278596287040728393827041642214650342337200064124769035850916262309536046715593865247550284947627286173562222555648734109826914959281537835070494625958759579844063411383133845382217356795211121329558299351500496179177239342909205838215948894008715932739741448638672642169887479296467632164763543257256749681759340588385262024795821457533376092338363633726130386627004984641459215065836420262593079843413817980490346876111156419827766664732978651319942863373160497776354748266732105778135304334393517574387499889961382422510811660088267956966471934000157361043117576002307616570367158832278736696543507237466464857039270587442303822109986686799181398082848171044606012903566526264024656393682035966742434255251325460966260564577469325747705890323850255528668884742779635785830345944169036283260038851195490566225267825735039646967577660731473413867909601974138324060497455483688611500871307130250908009531515435120266262608710747576647566484056702457523049989905315195772745903245126588173606320365066062227527573055609160857950527056508005529896274828064993543681717250852378499804744143253274673900315903337085183456705782509586935003918155887512880379771217280269593354699590639928449606395284696985943907076744094567084151628448984389837418661627825049169746467683391468667751743988116032276110330235192732756423589400021801820537287669035446567980230035520627490416601191888253011138857697215154195362125718418605296832775718455439483616516598818645415439478302309995572706434271269987184723255277486364436855375524198959154513231339851039073487598829900567418057252598239233410911502305091908020945485906391461617307738316982117548642718665693202807967311670310726760964651704696900131493114188490160398530790263070334338943467874826478675908826291796532998080724228420082983540510958605126148741697901881284075617874486319043923815657412800188870365955011581427931790464594521333246715722886267256084866091688705851265501851488737297233807640915263101077016467153348975796156662478242765820381913641790465071855892189965706096045336204555418064941709708180938688152598568340583629741265951206665538208416433932036338943767929166965529157917988204030617435714604783075175803763614372492454545946064793060469573144138988252638021329512806303212007613922530289256622060275253316471337656125283518202008962580158790103930841200899041538842926564202973277432665281248544087136802620664758755501575387898455735350482275541008480274880019090402893508660865882281943448048287667586100313637553338799344853247619271119129310112540809494251206468730449047314990214970697233727238962515670162868761799784887706393950758889310673113037904587200477316444336810068257112424410090804785446819985466652929671674861884773663218332600616301942082830710268229259396432040313825660261859105304923473634296585753984597056151841334502332221187527384171291397622291416865828248395181277924329311130293730647638353976617697084950773924743308420029113665758305524307711639018053249373606204149953610593997716430280882213684423368796882680039305888876656270236941021469304801305520764466071632280807879920206865557247945820630498856811064107502787260299467306134247826196495789374843362466712381150206942773031108831840860406251424121650799804504939905559112763905156742939311242679716974531296237951994485128243654047637463871758687512722157969162566266492993630523623598256268494308375143663229755530079640307835483413846302373549777578940629493057791627179286727262820244117550229444703083700760155456869262081617451729194227124657291417827033523621391409661050706417551908173106921670797404451099213603251875058964028852557544334383824403289389680814276716659294289655628971318692379309594148031323637943084314510494120575733530398364793925014158395626133836846625050359339725056463779453562671272238350679008776896712657853196578877069473687921798856338940697361459011468451315054727818116553921744556139053001351848732644888510082935157813986652145774750851761674967534488129974105886454555189466693730512758636963852572964284843315570796910067040048723131453852359834973330120763482867782581751215569849625269756635242004566102531387978304362986290209866842693244668088870074549517478454834671982747620408915008927400589004327816416522532955802533438409892781051868480513746553648611646444415808252441881104697870755599921226693587231654860141802826805710127693672844369535078386970523941146086267898473198105361825950584314389808378111520272053464497266355178545543766308671790883626597456708975226423699177494523999583352214612232342606147289473547797149532265468446698462378420432329018118165481163777650003657800139700028448999034085301790227017193020399610530871651462007797120793359574242507706002252262114315003506336075254589775612312569489505024259890556892769241996302036711755194722867345628129208906134434297723396600088879544649904311928695855540315272808060973854418370655905856234068885234403681613524840333900215589285497113993970095761274114376854868831535305097472805627674113541548651142339503529768602036467954911269493127751197650305559211954102026035439427564632944893012026094205357143868776872782811848276544243889821369840877311028219453500068821091149079185437646232684721525392913923702896466515353711986784334165636040559628817929125588387506549617017800006809996744397672881742074758863090712225246321343532402238877388681134090819418092736112734628795746060752855110561203389076545480350913541536681080425178582830207831766828972283900192593144608695445620057140666021297988966968060621725424483108949011677253585797746480639081182576722635059840977620481233623342855908155829281264528600255708676831610398035946383455355075265878204299217011234784694427576411043343892620096122468754535231939790121696564552247322211767609682437595058263615754123368169332094899193082100391284601762061074883699387498912470262046282524191264194903731337891671168534117594636405752249707217426615390500384894042736637515833024881547124315486952124064462030955463669896837511907797307885800914406283568383549245597672158309645169315821304106698087356801595648875485501781992407688410106749668030061693811313582639412471371034387281596009127259745795959518054624264559037450087660972899882605705336846688975262908506553140183238036028041511817617242962882112723589669772266151472639426141022937441909945486184866335798834690077449960831053153186902782298185566199280044598877060701163658091534107522028943041941410507058642755722287560390258780590711229252551391462190915240410489782319323390194910236039348944294179873186993805293534126124323155960333965335371144233875175703666051803700324281062711025904313593210384560548431220837696552171024588709608944360918696656934513133412496769190101308002728664145657539523547176559748410257274385137417884478092929019800340136355029712579957028250776484975351902012805267203415445518272637618623778732496945892279645523224242575390363138769544174650388983953409643658776442047564594429260523968587547736567313280471084326383804631196618455102329799264111524903828930966572071552627157597290285023405529344685147135934899929229424786327084083927464197270788239926838893139445003000325920743831924358422162526912676930060419212563034863151059108499878637998279763214058860191717035837902269921508129967484487394551211694583122801097607276667480518621236545199150964994881898354668308398124243957315700915826371380978367687073316354704191936414402915641657968121698938782528026196085953614503925905736977523561109477171713390879603549463928187338883642781139048492492138534875405585532093010288972328957474816112303836905693775985405698724726197189930390925445948547663494797315874818508167556407293086360193804716874248940313709437149602315873997392975550021228869968829950606284266988132452836369741019153346109784522435607237055469795073872405780696867029318410137021589298978404870241442094140252387533450008560911486934408831894802528209135995252333700623332139577591251394708821437729348013061587803572726773338936679532668364058698876266770566827853481341272112760078008987855605072605241034729971268786500570477521668648636592470859851161638881052354183937635055709169596237175280016559428197359716377793331321971089672896658841720094076971411304225231268091636163996155066180768509473471052375885860890579408898398717579952212063601072180437047328116163060443484487798540429246344849571909333599921632747050194609684020795061892859228399268536798640600358069031588312446605181199728140918046742121118665831559817460941904521178091098404384727402589893890418620271118144233171270158238479655037621453767590537664522310954866828152304619468766520787275312577338842620420759804635682485193853303514038113715709164361092382690828533255705118295353939287170649136871242644576581006002730412815241471660082691557893623929840446350194050300358416768612506918953714238467106963340424293632978156849906225571647171865520320266658687439121562591202622499083988960871129026365297848012231378128308773419358667965263153648697804789655199911602030007879618098127151542752536332645876477244767372926759889676888421335685752186754944878934694475781823128941171731430831152498807009935943439317766662300711523126454131803357707284937092830287463918016497327120216452792830646262202112140026041689952860680561230400303917297613698668316106765729606107646139758884269927988358774574755931401071501283907587130138228667386482439203315405762788492959424553217052288859980548662088943510644651363907157323781882156713660191375076886523933708429986890924494101647225866026961051408810449585804927613507820428297608653027160746941179184497910570168229753207073052530227645766599889703981728821852238910606859320311525974852139604531062519106489400214518413333853661548249579433785322983774903226509244809308415699770539652540712315828656635122895691865313531155851703916022633562700078966954378188529859177995800479832733390104561230597042188489211480140852226415081567834407119217212626251266169822399921908744366189878376227789452202266386489262445054095414170501304968272738895879713011625088439916314032437803686677327898483723442094227844379077206695350935782238590929419923637073087033784316260405636457966542845171797077895941942064584135793875194368886774322691059985143933588909485819869495902521357604038523896234025901506382842847168303263134145443771881683878756978605251568400126387016615543871246219692750712862710691508960237363058320080449103969249932287205174589791086378104493216280748855198453648967190051051718444045179184219027247631070566867420220804155881874386128216448318984579434612130499219144519582828394600646750908192881961528172126744813214572740961087553484773074575054600070858442514902512263286912178104122949124213788562824890226839588204056348656652796081128671106012036703357950943709933871312687152043434129196351214960932089793270695329871627116028262407023987675695124761572648551250706666951670043080669011259053353542284114073733410756780979023065235000245594512288383057028915809519690766454304460766120238423398314773820456358047002712310593311816089219896842181396439161879451244038384203841263228906622773233455739302549504132728200235610038910767132759008019882144541999032378070634448916393674430961811375431481202031016104580910808526672562711899661800231225017962788326941973715143867863861480365100300739597492849019043075024300414550996638839998794743771741816547058719085079079483834851630953663192316367253872515978839423961930158542866951170714584235455099951803220942479318166161934951872394046691578240856412617864934671516680229133452856192611990843273389276477189669538624704608371964299137105001414408069097813537904712760655224631941994079660035328904612578781451985772815230090271613930605146123565210110642630447132637002708993811273944649848474120588317194963976412166748698312757482043759083508261764645137388638361667277662121857251104386787367250688122467818471943324308293665461431309677563733204141407357772965558629833153458580522622086212195011421429796693838072113902493320362535830196035240227579977495168016968020797182681651670779477667820204069976491273860607983474767091805448704755575980727474895910995842156177269851261087587563340194807816684388919025845701636614080287982485450056516835082472261193383373712999451089508520384807621151101736795913117636409833899894260085919143209713072310162267979198668072146705670073897707342371276823180198676095653399384720020058276370832690713108659646125476075476977616737393206321596681136773070543555540559789988009962138340877316512789559181051673070886801093753080353692122757015212244175744221298992389986040386309086871866084147950497893169531940053194242540049607777098737654641100578819219234372000062019898835905153313421913615446924054846009441396911721389137453489759176672759770785569350413983295765731452854521972222007865402244985850449821406030526999355611215366185376649765717827609829132459356927491049844117458699615135391503888016502903356677474619134220510173467043331451934610351452930127141996313626283767405444891849559041235757662788420937555305051755460995451814701085924552269294257552951547570067701009119552395630383828714906423892111165329110013002746317293522637833579687038575530825867641265507308670687280317151265577001063086122717098520430226316500488914540443628709816365900684804559398133432796028307697849561016411981169549810911307174958230026272737081645662764341408751924280398186296531560216122620709512469538782444267390455026510747035906649078278681260903000256062245719808828355934929525105981138737937435733282827442054207092526927599563543756352110349034419403457148285434748387368456942745996181175854998313148363703548200542523372004293976306755128146881845982971055852192618086979045631621262236360471599255423597373876113359770238022054576903287559925601316000881275582270812027216094299460507162301054811386505443661446180172380753062786677835075680819473959056105002047721449330800687274854972167507121860672317637623560460824730744878961827128257671971746434226363080699992051188554530776129051625041501005550999135359071318391459729564537584906628987550517354017894329683868321761452808524907391570478446770474592199227556737501201595852310467333946368944936798569925240340882509867350550908048201739791916514914857093596486136238821135546105427598613305111502674144930942794713640122690995743944503470272155633490704291167953015321360266786457273552296011516716449424902294306596708216541465558347296462014674807244018997916791379627358047754322850867304088130577862043642501038029274560367011272887309994449799507933638562329245504127632121347661856842645612410190822096288553241760966479322629755826718488620601807847722076476730459434438435115185402100768526049209147629949380512900481741968374406822407238549371746025605242159898290024450922996392149520398316203603189741497326817567581914833391336709602029998436638772800565508994319162782061487220313070871116537897827842382993689772383084212651974799209439186912149455097388211739217759110449927837382677890900887686096785462278071369537106665465092669499528104248055936752579953480134993689940996150016986130181545267581121237342752553576213345568418478974628849957731259592970243953526922605973259460036239547860840778615994035951470750020553448235177698552198822889587601805804667483776662403181157808756173331103744047881408631171381324352581362989815460602801416084691338477532932812092028209791317338018372844183520639505988624449269451189483311957714963147477638616173489443689746273782546374122997259727251764932157077003099169175947356209942799789501465489506105116486483791682455795008818212526109939603978121451701025815632159215361197380190242938281986453834408789714002714279777106923807620621186731557617800763055837784915991998527278817487586312720185693666375230725547201758778457197539943020129975482771395759059452020645015395488476570208790812580916724136384397442190591229475249003336278553579251680909345323711759411348060671864134893319595279278348326284810771125230190200594371252722108221589484277465517534965372079687789447730372986730487978262339502849126547979396011122918819912072573581717818498692084383367907961776957670533910793180825300269872109549821637852160211701058465211579880367843091766046489275771984212580740278757246166755951330065689428718826523387947209077858893617374641675830931599792914395934482255146556508414894074819115239375666961753785830870565715561181701630114775532010132457784877580487404654772240998958403709358526113076626663614597527586997470859883545071507882171938908826532390186201775790215606946518132484835274404830462610679654018836105911860462090772404162121799175803002288236515703898130808159472498005333919205181788408043780789486830925183923128618644659800770902185150895370550192808324451458919552514579223420440703130931585389421294530065550114023348470514356649450986817056652051180980201833943618303950581374299144472861882723475328625507649133707029196159855539056246083109691761961132542442663641124848382883306586619428716962998514765418923543857627648035097481759343812918640970201058118984862158752387692681432959134179293093613689608162406751309353602142458017233715001218424311628891850427821449930195917902887018060148416374095966805763281652770678457913033892729542994879764781765228879787376797552345279871565314342968206074793486271284239264080167866180891494355159634570514932143612601074069323805372882749489941535759651800890453673148182979525109779741735392614717803964230138736596399664233737816815461518176870081352157994868671886108843702809363696112104179055400685625123818335473818774502182077138808022259481329567907449916644601161594434368381347759935056498936740816572815184500416022284682848874072753843153012569666218394278031716485174839350082075259965059821564228255172717200697642126851293526814584647884438320109057374470786059958602690290857553699841844597811052638867346720642532193035017394126635932324043019026633645036621642066052595960715167751218870142065748693206659248153642318952721115891081984935119955460961065148574178638360592406622595106682795194372981705786320948533891001849598589833858635617185820193636418477898414385157323783776221315443806674482157678469695739018646713398013105568391222579671758949540264652584050607243076398234311321409146451835745460238515588610108645452970656785842935330636396031704327248612434784322197472778288427681431002568283513328392670504784980588352301093026947038416707299056050957556392051230276887949529583951198828962893712482082592883207612036422636622772496115283585653339347090305619402778926001490331390381124375925471217388905583537557714336791180772429292518058381080062632198434278634996264550329332593182744305733603089639631567972342245933148710318749932394559942872089712574901743577486278000781995111709129644028913342276573257377947092643589993447213208812038276718837282992875151911658322204103810673163618346877496844283249595695590168795137251107506376808540618524232365051866429566899692074505754744002425504111742615921485438522885833359177970562458234351849063319910759043470571513739045445828646621727692883205058452937259097035729844703355970597332313823877155038448679656905267294662104613527788533687974553558749436993557387418763774213522009686434030737873177799619103835395997380087110303292682607765430237038696984811111367004524485926378506404097709493499509384690270298077308547854004009643524202278598887280180108509446633664938575881940686025519516462956709654676942189692195190650053478141783098233778170228947786051739660545941775100205990842536089990834012064892418938733821598058450448698441161414903999525095794087590798958055665373944862205801752692562487401896278574686502619717731972769382696880353799364539152359415875195611200399860740021669328541458077495697209911693993147544106802131161714148459293264873101537412983392975172545667198642282199246944163930510582551001600564778799434327247415686833780313245165601363217473366465383157035437197050466285323931816774576903827142934642281366715115284486226982808304193661891774118599826559003911227793236762726180789322187189754764799739291489431069057233330499735770500129598094203139418048756341096038907477576916856548640516946239880807240823394958924590874541609908074833211271316100462915929733388322292315715654301691479464896936492236939956402833330047307190331898912215562884763181714108168710230867916137406117805542452273139486444030525086703009994598070029794625559104741491750437620308494643223143648874823570620685036517947149176830306030938055501562580791235836336668624888652049740725488310046223766580800984146762161657977129768758005636702688774033352912609990630167052861629637907256516169384032059425229890480745082352417203118654051693336022543411800083916822130765923352656179883721308622063035711379894553330759814049954391778381548098798322370102787425373345232017502581046701749466884583772850809209521524573763018092001561861480677678876304794763898928841810701985265688116119875941233689434652459550214810259155237760539836817558440414340222269950719367778617828396369706501322599404688997817357185123945314541801373653721666790436841831529384012386337841744240827272287405807647993595979530082300795183109821508551446184963179107039500408049954185235529414716628401317646025056048796472778302456405797015019537298406703644809285762289129970904573509227573644053995242880286518478308492915120727538865721884784515808363592694931593745719790162626241263866105693362596850823808496526121786772116341687379871706072466478749957545661457330440781654679303092972292453351679533429024224866593451957862848134122618240308696713113055276272907159263071170024025855408708052690045225530418921927357036104973016573542060790582868437613759270399103358572016178718036147730725603682531924193794597803635465385057973785161486808441148022174781586742247117344729909398434396072000134842022505358445641279388244081382789166895822963509198169316359994275886697322219014689938367104638212596172728561684363234301378352207208546416955436179123428496815948202834689827743512629442804501042031796073582722142348453073350232253358264191843351439451528574425547822906845266567238494917753945180438366372234900761289227393741518208591656730842767925517960285941099111454532302644153725366450086273732215099940364193229546392839492113604929693376375274159296535520219481928116399472024454094731177776968734498419524822582658944641434835423727697255538939897052654869823740726420339489471604559278194398637513919425853129054615165410416388409051629331026695092258169306011683089957785186269961622526553980174757812579824391446516501169980906830831559863274323620055115807013776650255499975995957217198431274975128905509673289770144983387082755908863937480359303832109588126088837505083039034957181226593747041699015798599020163877699888777738697280074404327488777633254110728944636359869007263125416421574336522312856224301029422320095066333787563044113021858495546305461650564231889510519513977961413308614459636374000499472171763334520508243503748121437374128864485566478147777135648013870743928742664496793722774912875583170787507148681736643110772536261476412200248260207576374396380620128359154908989596852929741305096969281868504131018871710271098441723742985398518499704413372500990277565962388703436391903429512101031269458860535545414889882057492466565587411851820920346582743683734050484589912324743860994761236584904586430491223865442903454273970685555463571831656105636831789693158540469109943303421513115011001296463026269449284601703263880686623855431854798591060628304476546710993605631084970465538113114781134183850068889526999911274847865664913245602999391134986883019256424334254588811323129928194329351545881049096678259790206637788077971918477948513388578762984530269474469315885926080567721504293604681779851394133067162631541504137890247737882820034682021020049291503385063741370357476262689973690760262008628261526688004947303353679574222652735891844028958608848516599900890350887234206267351779157636746198503104434267939575289278266291002569778318041872909193033505558563879470384785342176971752564462926686997864864084862582303172262691581560612185970948497254922667704129137905715948937995280104476395003503464403167870442565426066479179706506477649288920413594738296731743606583246086050189196813417106681739085428502328029860162128417610938059544323603891476865735840840332251729579271444780356388761673714501723313873514366035517422928314558196282301881369449673492856005543452517242100968948087429466640485781207761525427073497297323363093776067558640696866667789689132037521989707796432748759150069102792682378974602419205433585029800776845947814098059788122829321098322571064185803026166835175306624416380101830325377264575468834242619006504603387702789817871593773850981617175041002072366888118557515960706828718385978992978266108349859845719557986667513230201363045479728803530956279464555484272227245940469087246381169976340795851053698985912968860210549835271607510493864079677193664538163961852981313905223661607467625801720854305751650369817323058334059955150485152973905393464551162767726576479204359236553726850987547141057254618614989029491409811855805946647021173792165988166297472203638996152798231964827190654481885092857108395096884409181527815056665768059984463819929637007100128857238735865649018702160724761763807185421545856556569328806723465728186245882358636066038113531447182251590349658204490239799962553273413277952827802678597714928487638073051293197742100480691812595286847274224764527889702826268555332525674000255931829462479118325465690019747953144163952058202214256634126780386617293905356731567702688669011322280183252288181250200893847837321022898589387383193105692749767719557286393585766988781963156482134050263147698945850127798575298796581081065022205185180256125860595632659747025332808938515143777030681963685074608058564340381659439477877866367017524799691215910299748677265317895952748685632024316225609139928001182762966668585246688241935273165471333967955096722573133120957336372917619216654963589932874574138553292144033213146610567159473258079791398016766995631468520042135327104932409479502939275169023285573301125429434948441955267875558259927894991661192216558428092922224156685057621891948480541415414476247984585222312665608190025734089448971521602139018555677030746104292424561473342639420105790359581686903984270820449806202586140039263829173953699501529036289889822680786827895059357715741968384777777921465002590890523598507510060239859691857833923006772189506555425969477248367789505527314433541814226338742878989105112525778725253503884297864843119293472075370537143402918258292457232946601870976392445897388544713493168565068186692745624034679444976260501657124311911831170449429636471526515560512933856227776659859227331825778201691682542093575857730962505323736137105760155552774646900059630911679708549609814675462130826732480965115415950993713016151351053517681430497563861861452247072275904591491381876859272299591393795474226055138743215844329760123518192328177288918231200936515311909088067195249499512101250949404166930359875186453959845465398534512418252527039948115740048119899639108791911692823132471695119820658564147094424428835824017568218075076740968485085274585397258383003606971162776487946226645002161336052848452972230806185575216729921358728129993751450471407431256147492473421123302097639152948828037947578856954463382703120557760807326445768384687036232146527027571294577523719467935101569267464300776892074802025681688553713727444600253280854404336380337701526083697513405580696033100452066743416784994998260187792379983262829926179014079368802689860113225188219316079224081579965024089400429087528653043239904819954815858344417290564336052612843698200056660029305765076680189623509248873246758725802689996318682839485552313513400989088692246880292319497295198123436098536887530382956102299576352525514105377239214344153879970742763287700409325376134165485932392577540903525086515781029504872362561736955545583021304190812733624425465170742718844439543103582554537406691038265977667181356848953004289717354149263185714167269613232092387552784084273249483779250268775115060131263524646054081639245936233541061831842716124697125864804206763597500177494780569354341591836815311943172039564648347136908770561472345800127640449604090077000666445944776612281558470186244645882647333731329202886089970999436355178434152241851936567246855054190961947115155953487435974669935458050488857796977465578189457625265396172558122392901897841355896223389971070180451246462726905229960201819960497530778284442528565460918457360245154697801996636647721649488052070313423543985585572711545380335186376875916532301143171660752587587845162058481844445196810889158073736280165729356035186884979687819596982284786124362966456905403712029573334068028381339958614516652268159693740525145514054563822761582079278915796748197595577071979491522501657342181897011669343397943655263346383079339258898933977931460143151196032912899871092866802838114825305416327244524052277555447051388907810603957804943139011079879266325543380122310320191121287439662178984985367199464104748709128554915027870691212352178034287467813525643849115502254859219880860370749737228091755811593687006546962278796029990325806410255138728946057649395119200328923118972295491072833436271696524209603931081512680372630268765764494914719550001385234610268813123631060674607285994984812795247786481400706983599011166172333165665941201066803602549012674296009243728729919344496688382646990203883641529084906943729964990796819151277866191943969518576971595224164139110265212843937647588501069478536813604295398137010735381085309860576979992962442188075122433403219122632556285834327935544625681168097991125612305640566149232611236257982282433384868241040646251765108129692598003459694582955387830179461386574294965513220223003330520305598556037332459838807067321021588289925842766998487269850423468504115817253091723768428882491168215584836958254228457291190004003734939381970827324386017409153957231444769117762020820031731065749645406278186742863953289076101118554353187762566439300722362556852301990557411581351067050048600632450477478129961265204180379643855820283113803275347255571439846390428368212099278635972112074510337286265238559849888395593487224555981228333617433391319115785761938808273133551397019451670193362139916298109624921797695717528042394114382558007154425820822156320111431063850395113445581404139715699765743073078380455361489256977304534702935531690523929280896000651739374941547670783150705643170533011416746968502810487674642186137410691710744847061524988361066312739866524801348258720921582086696806487359526239459646007822768281657189405089713478956272974780533087473525693980645496079172004784837868037837521218180922871104259925996276689091962372959819859767413640292456221236929289173163919550331873779251081043302713378275098494497709030940316757355788448599184965471812074350382903419302332469602378816735379129882117598759983935211186130186179794705481930970567006277504612390452795810970598337124965822175405208205770757716755759067424845064685715074693815834250398255693808225838110962043283101333582852707406211901043960621816564750027135244550930911690893090340258520479238174204337591878643382503188141048766199628823045429449265642101216098778533844765902421900606651242348295165858386880934733170553402481038940252876332410024538005727794300907347287151211680914594008977600180511431938131721678652632215183852927899021756972594665502340791566504058757290768284095366346983795199447772549383512026183884226119825505546769441688687729784611154886536394610720541357086374229548993517892276421359428160658699712781608709623305088992281390153209013093894106683576591446090162574707587277055067684651799940831105132193566739606576688170928509817234545775430395883814131779442931669341162281000705929673079120841307744519676576252932089544466962959079636578076217676162726948315363074702753115150316686345274369866849180450512472507302023369782332965806933545813096220698063991130999229227772321376238308543716848530704779929450659844805806864304658681828109815812413276984460577596513591663135154023414688682884767808121163514139234134670815499169670374437184294315161319291599784275186581458910969502879060330291822243363710125082331073158140703176319615962383898418621812198123975698764999145126965092055690033442472610246038538412635389555927007330269820894962375222208335842030749173702635448908819902283506634897831196128695625571091294997653562391740050868437742613256426323146443229463154518866845703630613697646708099286813788667168575745137665219293248270185230781989422951748938092259730432699172487583538852744539123517257240920380113883334355379304924451650149311658238605928108911383460728079476988128962578883806516997350403014974981833261508925059143667722425968116988709410736405871117270787787386534020108716942570366205850151906666492319475545819245249014527967790695379924720164998982412505241157415666025551886975857402139307268706553806015212429371873823672836209212247551472016864166235090148737468144311680856835751885681604634513468491296712100977334831705838171552412407590604344975926207679435210751790715887784761808638136278025331353959199291538543546321777577242149885279159021564226894560593559568042503018688006629395952165257611026949112657772248065898784687473168597186400933887931465371435878298100345822741934115500157382816768732405717761409842424378492707807708236790787576119006774747013459797954143923202252787127480740323737019192128877744953593560899774486436479708343179852504814395519760679369353713674299344954983673509978690170181273195372704768820727953869951281748920455643784952190859335080961009608947116169961897986077607496207858886187415029168100599576551954475130604185401138628161874995993220820830913857543653800261920214972432336562716660082610905809091493523608030665768046155290153064368925481459687372705772988784258336674727535539140493547548848525899210709102116579118081363742486436782480395564056224996263128815596904110864718843712418645725326061900574610319571718595134347179179583764081201002815294339731233447585425144805117940800537865728518749465286445974162137471024832706163249923930946789478495480940107927840424259978642507713976954655333187755753213458313021197145093824893501593712677335529548690562341660504723775141801002760949931467475869786288805393625850703051446364598909929735516067523096831959461647947359551605493534643693557352512597183070287270188447899077234002039987030111643459841245019118602095834370241596191208634736697111629730770176543358890652934682435760112229112547258562385799115975228263556295552248913398193890623750220841930549517709564935187291002333854130924542010897483795974783907234857448129692953929366618805241452334255091482639273192575780246429305814279484248489377239099786523813997627156233109609034840789496845934679258604730669073266355859054799958221271355138986525603349830221743964519247262561757838622072159682305370401106367924690078842742433302837342753940291895290524699572687359513841469290060596370102046003029808034910281740404762920274241764966451358851810301224604069734425367767782629406471955017558103667162632849273918052775007638412227203952472301574007592310805084338512059975597069216466950671823754614143804761753390864889585853389873193941858089240013025560858805316405782784797029573840521034974262647904274667026915235795274360529254036247990722080078162015916360825440879119883975718855018609805517575459699899468342115697911499290657207474675483772167970170688501902058007385389115618765556552021642971137623330591292506381846322281281573077768807554859585820880691368499688661180308815735007678108884905751579166882301814861158624184718806394761962029263519552494273393746754253350310114154643425713194285889468394864454509498518563003485654222052577610858735334364972228600164583855482385859236600399764392334718748288941140422287417298659219582900949920225084674487201920359387012579885454289252299217749257810129279425668265950040570208145408886420289776174992110437808150509369139227385544582137949793160576734806286360803658066281113371215002709096215309501072356608146771822053696635364362370881586024568688373856990632729614211094978446333295917673191701458400903541002354155620739487269031997689517426950533058785156103526460894733164716332584370636899246304778091935635828874401926300420559584242707923413043515256950709312745404124204398266917790882512524167562459639916942257029512712098576800103523635817883240538902781343422871726711151039949937985534393983097401775067773964932126822784787812233374043495181996771917084693905413194492313066420918323658926023107228019380507304864103097224148626837477747391427855305172836819090960743777840031724180561789437154153682269757432063478089804994483597716622215775153948527680884256314633549805984314281499062606993379510113849262409312980656789359269511417576694952942259885046813461670531289657486340603070317100024709983024953416360844087616786647060547553266264786153658677388121589989310349673364594171868034843991702283972511937296268670342906453890896446965791847216303200693411204708574276527872153656990233805350188649060529009792946246987620013025037240145716924647336851218287205165630740667006571909317768000409521268683658928177940790237204795518036708127473555564048811177713850969428825499610918141609453641176600630726914755765228465103016444055896662409990703979277845343968778551086896160554868838504661181281683218771818180243056496318145868785386059310338073684291346500018242642255674871458271074649324755233463561358779468393328538190425497127660876278826282415474033459826661848424701047881150658980548071227616998868350901634970769464804361622825722697346407061395365566593609872055769438042909239705759320865859235222604992728540826312035755977437360005041316137051537519732211377524754007450028893670732303185819759747698440034092157985984939447226059978434016155860791882908673364413019456497639312529755240397036300582772397942015191499671411273317366766722829037005912736795915841641314214328255528070077571773933619349506841159658434401280176338141980423335159828778377305431267874455340871904217996419928738318499283425836528285311076404427431880760832411025765938011283856125329578569616598808670602090354470555846769142758673592197989966045430328429330139673384064926466134567035112191040930347238261588389048321496573365138295973293630781543757264300494760341054458182014925165868125754448912795256000159859114572178747841961130829471407014290045904991430377313391149239088027745202938630150197686337338845457217268903615991842684978085707982525325901408404229308612110162036536824925445393443601395427831247222978284068265832057514049035218243723030576920745049610540332014121795080288054200169425501138892007791403219543704887764057909519540689544092971174130004062359440378618428000292346571878927456372833275174569999681104819936347985285102375705866810490156011849510739447935090181480863142289786545797605059058855079006171589403846368048949995495016841474214223288056240069740476193114567158195353898593120470410291043534135539420634781316268334608902221713174458700720114283545850835549644351444672756069996015177946008178735829469588499857307482820971415331867282666955003720097655102059115819151315238695262681224859825060148525947559681058439820857423216157467572861933262485611689465597407555035505230868293516961414224869900264420993954101981173786331590948758704996090885756550809727992718974472605678416471411629849041643956552589776105724370841445409627004646302473393176649850872020002471435230524125800671268096487798276920968120084578074078600333141973219568817859124901841120928727813459959663994346128165597328448446829366344964302999703028901109599756148688728307904774285658235747167076515989654528473875217479639162373870796812032020434839996428855919316369014296422371146867658560212608214050607590866015836809751994554102411393926758493225863112453652536756360836215477275983526884887079134278101797135600646706779367790857433411193469014593479077219057425299002339833205575599805360779369155022235635430571136174188772655804064950817451787855799630473358332896733433745690815993273383561562630969788484858648245285560140393399425353982142982818309485142584544303336430455913475546590083553737212446168200340476007549758429085621670436967346311345293327563277570395800019526074539206399642535749379274753354041185111000893773047390087886586104407848572460952591587359341253075674922845799277787234273108468558739853092934191921530328341216581523982958540741190756257743859932488126641633986049062595943745101552780021421304550976248924985001407607803410412718820678494933595709371993631004074678531433773916198979408047172776892545427529632347261746760322675705971196422155489147310616390390135786313635882282217977161525567276794507408607556643037305407495145870988792806553560697243349204203651440158975260819302047990772825174790356296180676143439298098732209996862285783719617792300945361979136516026647228880871986473106828170176712190943979143517310339231082061258639040727509684236601504075818213289271748383450156322771945731303624985670586642502558534263076986955001345371671872396200824664875192411302241464697984387931234301132671960429177371791890796183314391896624962394287232236792545722036304441728560008716925453603098826461779678818686585508354730408850971879760173183629636844571424605510234192444945031289725758273221140936597497854349427118079576965654956137217880626628229720034540488114611380161474533714865671023019599692168507104707184966097110342117615324980226838741888919980364465156456085535444188736443736897416841078070275457945319971576707124012000609684058582841069182928002984959715681481832157420246470817008641752537712321128218226542568823449083342323856591633103724243583199340507248871971964191186671231039990992323175041909636971727613626852264160480176799605262849901127213050488968664823950246030378217627650867568335880921951173606149515799103653217190595029588562688047673897866929070421995999675606443191131338959668490720860217567668143275055561884272741477892904209357805937187814620588089571213026269326642563537880720531087988773975880912390633783606849034843575362125371032588943785692109021982139303990193246820647097368229153986390490878401032216694203672410248624792107351503897647220807965975193458038377055647817762315953166183218471645721658215127813748169662114936471921996129373798944465315849502154215107956749761115242527323869790587606493208866422733790579649289259411975150370223453689302071880521538952014860639068822425048494279266372340395707550431967221092253524355883392835570969830581950409196706686676879360880692603109232941937012556162141589964999292676599365766866629208349565825138671332879545641900869630605771783918289464882028514556373644607737222400311403759124495697014803882887457583392176304195410308750581722766437418489490326476377821173147354104457754256178150075023143765761787820907838932536359207696426402437310234407679464493225857246917557820500917359617580219435694605919813500766832929192087711063982540304588702354293037164005722630723732258998530165743155637977687089558248088289324495649745949347508549246575174721311026446535576098320122362068334447985090527294530576123872787910891119799041654182205982365967436435313405084313380561656055108557686817117757927894359443747722488751768118287763969974803822469671927554738425297054327035703146891188181495306525989549858934951286042464850925115905636475441168109895314474959112494122780687219126079929777240054950172879642492076363369191205723377383317565916354067822953189815789433493939796512951490058302723901467212633523511828899651848647204716055093306754434302951518029468828164571180032484713802342898484059557996958756934632541523797712476722093872191531753336477247404268346315206763449231051735128946281010797871441421796144993065012587630884140061890251380965683757443447157939983713793627516252874065863151515875061356789130290340923900095994253378138293329528188672383584750635712642796205690551001104577831325403838271757731381419604844446636051047773385555291010815888567229289404430066409920208423740656136866548986540045124534500397378526500154655415318578262418065386247755761996506117903207827119115278664082371186240804940207057753708114168411126059079481023396170902962755074419600919851949367195881680583320354030784699101623864171661928324017021436316064487545116745808134609725345717270175187037071741952666155062617310846839564974323355092894943681633310760018952869660730148039479443073967815361628811645037207566447686095556665342216824137138317433927535761264209592437739264471048646895073564242399217198881482235217145553362104794027411151432166495636664466434323781539410578958136100681627407615212052105235745296687458485628555959294745873567248163174420143955089639201523308174340418496179503437041136560870213187544905565387880114938276261211390954709925124017205640846872359103624767479502374467593684972487720780399165872431966876131005147749679917886338715448888621917023513646446508193812849915618216651482882092631507115616164821667755836601659886508955926492059666792791549138167407370337063961454911774783441354748735271881292746808153238035126803735593322833053780025292117151732115322016618276877855942645692053262492768350892288816496760398063507102557554465712161821111866117970183638225317662944483811135363075636444877608938633979085760954575131071317552896053880882497962671885112493568070128049324761140456319174461378881318937695821078350911037968044579684934374655680718397040539900137256647538050715919961800197087071444019631027352359605445161963133283530862809191176855515593663444049931946785642856490377181194968648037309504703192549064705005145756939974971598214329999164559270346220806831964982733282377530201168596610372803217386807771782299034457759021014170168502067887316839381264365938740951137549480387399887569399648363311437066960793524634658634253927517097580812036653077492176593715477843393552393475594074997289330031192833332150921235856194997411601718445423200972121800266198835587597243004473760496764639580286310252663887632217862213392373656724313002198884080726431928516757475539970371075048297570681187141548154314317861070912874492491758647867225794832615305055944884167768620648499281856627517042233595789995961660690374319856748186045394460828962336740777047861550204133607290374568768352503973874869777708476583625945762700236894709487431672523552374651038006802639767869031334385970305711831434870471606997655091084210068706621227386653508866404056108967703216286556869496484142835912475856139006535283562202116383804924884407664805648352544750834941562011105832841669558377450391783099013265355847211230642858471437181544646189371004607342365752706621807342085650184460897768741769708841884550586868832481933134882409772532130665902539871449611147674139375440187198169618565231089411839303924193791821060048786882955220200733722709823692713052090699029847507263408616057741899372036687104739664203199573356409871661641262375056658476478943442204737764596598201163774293267069724751066425338400357270759557338729242636177869660243527090856450423565706156514062733794124943799427281838169655122057864451815141735491513855423990519463551584407921902349844878036630594662775243926772682050104702035595652872967925522251542320084572545780820129185422788960649395976695909457799468649747794614316009647716041773192441973990953013056043492964108642881250128535060517491758522121160949046058941305164340939509782151110817852250094631970446923054859510596964840645080839674031837591588022737185763049303613265308329326438903609752889247122511240547284350182418802378357270358163581132888876017744179245607240308435055786378578891231101973722245082857603906932565021890592004332346573861753694078783257913749967486793833238019588952128243659855622096222459345117590310098653730063150591917053951943818714737797516012225230240989664679783520978422431115533881914773968261298645944200667302106380714624388928142871554776339977033448422968107788198940712230771653440086600876326801722516196781776749701681359067280083823142171179948440284244262397946893701649564217523126516498726168963418982499399456624944117393667672623871634224668656018731728219246729185088059513943692280387326957495247482148721103223532470280723662262223628477792549806558196656035200745331350100582143418185859323126978676234105972613753353869242757179468098635723302755974086585157575062208391464870563748307961328762896807106064620822139096987593960259141882505809500356151103848891520118315246239028669142758034855126756432428061134500430523521671825226992336746400901496767719490499599793212836642402834747937505124305697593788495214612535242254234031273639850195870408962031569194602791039283061527054314608421077274316264137412193633444069052579558748069796536422154123039997033034143840076870155237304196148005624553104428531256806672666527552812677784558850976692242884529073621784504882362218754050257574152697947985562562383931642919803881877112668444286794204108820788428845971220784247612198001679862953691365162045002654734876101640792209584921157974437756430475288620868103707109710566104293377133449346977296133634274959626686066758602525780049388061318491195993681957402288755194068300543600950030109289971140468382921636018867031652134186245516896906973511859638162503121208878349939461928259159349130888871582729596103639595502319576835182145987334262341088576184289696028377526990540169845960716163605887866059995612291254752503249957238692587990265374429945545750639661161704376619444269077859484555052414198252615863015284467975646645190333244058383329332374468119764997377266285159150790397274100116338927197279686071788100840245669250621846122384662023157224357600399092364829113288327823440935729753407148730616369702309661306544353918605368019278142521865392130649353459220728695327940289867287852760538197200276814127834956969291294776550024082908100313038235230654455842451679143735413058569446279729708870823863988088352931691811274300085457359152753534191429965102518413068985476377874932956508223793325020787022203499996009839822930630949369998738519949782449031278320900216249710552936466488173150883842651238000995143067001672999827425275448566440445886266346542178329742531103062803101398975015450272692226744397705092737444191885766539548585491499707947621175402960088941871691052588694833577598473954019240261813082572748892585735239227632491979137034709518343092635941193159409587076222234110623382812905218178931659643491705014180976842872534480605455444164643849455604187411728412730195688013631642606426983306630491864785909028221973678987619045930951390051584407652820024202450223333473051109790348814438460372852494867028537477465202157377447386959642420948706171645832442148539403859470591352427004404531590939003752974640435317417435415301350346130325269957043692441479660147155687719993945227997152317764189475516306913595003201824580696864663363311997344093113520841448775086339305160013945149861352828654638660485262487719666393414788162906245083922742640161601134048538499171225727287373831546050390979777020570798674274947685856329684097644471284593629789434496031874967225168296519894744295586771978525440579508065187015171057043458537672833227353397959950943724072950584976882668096402759366147538850610239891337143600777453586691528992788890918119185317385423106497259902171616555677831009256564906398972795375393929371517350732473012816206916901944348687411682691283260911771703127276929866819672550363640159901250041735339130755178045596188739970905545552318104872843055924971808732259964716862871478308062556167135177026789787315943063415170737405373403633960449477593303154998796509976351092102519411816234301480565148413116714283419299510650175262854557553463960826841963557880127869217752539414255063360024648416207934417015868935560130524496894570328407590124170476421007965477446859320502603522137166021242386743553663519974896569804529895891570937543797292430555889441793099619525007851844723580701912388608271770248593400483930073348337211500648917068744643577852411523767819519559984081676774049011906019255320738877178268565942580562216107199012725529344864590195336916917184736465337356464420172349142256436389480129221416158737331529471846871123889956339921085759235008017758418751309795769275595518725129369577237328180214642250259633500457008192102736252780114091853720891819512828230725782420778269015500788449566861901340422706202576510965948704414986830264551023325247875319906807364405795505699995304131738620025004927860866942264479646173784220069312556376577964404906139979753541038707618018387143984607525857816403652143639425494198314477547603679184416102961362006504957850565953723450341347427241671864245486738135738636063554760853765838159210590528778106293235646098917112019464339656663677245165070538163458444404538608943497785894552946281113974386599972627178809787313720398677974588176747810377230922688100583373906249571852442940827438413184793044429501565285285692079809805741894719261802828839990335754015403643311773888246273965498022510756172999176785669925602693087476660496588063218207519463839083268435854532733167137938950070378974743866281404040561829900993320643196826514209033075510090213359711293128593526969775191721649121736424435542190931261503731217436790224862126696248400017195056030617013311132739171507323903637650341640263253848579743668136232256656095795054403766154398312409695173552631005912177622311716229836271206523050439338864760211773255971506112693882048505005475962672309116493309809931305691872721262151085343844712731047005218494834498127920929738247447550112945071938270349121766911559098239946603163938843537573886602050327865828523466162303217070026613164151649342621488991932133796943193353252679106822607357909624394529224483206168926029719948474508272272153675726553279131783546926104933409103532460236877357058881656356881181596547439485946195999440872517631369099342883371208252118906673077003904460030672062374504228001173941853711551136071974504093169861791856895268761431243397003470869806584367114980591010561783488322343621397498186332258358992308885759348999407009756625462322131928765093434193241280967705906442304480002495510314138089610283302218417141349989131292409781406183563874305987083412989993575732725939857383794921240792631442906081692640161355054178253868305791656074926766993912805276517621527447824990855311758172928923655020380790571341946123314412753426377330760341906120312719524174781381808787033083965464348228843695258935523865328024786722511607781964804126223827065050907189607664961977636353925012370320791322681315961442939408136940455755826616644836282062438418454354672735330554114478384401517235092849399508916786289058718693304106253393211462116751799624287833262656551514082176932755351846916454995939370339747028656845179593923071998786079079234068064819975842145511084122937055615370249323289307218935777428208764441951592773937807526714158541683902120780228755292634935370734525635917567947430947031859900345575320842557394354952158488734877052948826046895546258710957869650613748195298897626532700503073295474117887367779574486357868629313621542120846599738205429309221454697682927236636586409791319870581865317213043030263956648499605108061357834597317840543894178430330123829328731437472391178642789303759622285657703079969950756394459355072694282621420593588614662440035146197677589778811418191430414265251996880963624385238338736128577357921339531001858438246710109854622054434584964648260580977350377344448768709192668921305151045885003124384815433230250402418407830054317104844893110713055157478310149570072487214724864556372930933849986965808282133001948157562392268510742707480378416670526330898622589644286379374771254336892837521861533111150082373261080694895248884689488389920606419335701638392221981209748065176963330517352048948610073704945114608063169880793812465530888466427479705164173414858425850459362280757763211139723267539980675191866984559837108525413447320177829679158978777984129283136356377496377763975017900241767034870706424500445316177195259562622858420331401727203690004002122740094066074792195479536974599276445976800603864818932097900890591732401160639571345797476821292239414391594225244642857939068427872553302754224917938570280164556696302090713887521201658729258053893984969817342597980773386520430497350203822949411704290369234760659667815648310763927348319324248134003771628566749978585009081098740294162177733335186502648155068065053962218876515280816980435930650327141987241462197585748826222931860711436113330622324206714327822281750074005723120517065123611616392395065591024491606645142713734924380501918548460320939967646940461037367629656312917024382639452950255706924844391355082563839061232014621499568959298934761386684631416494325349998000273129756729394542654837113401810821713728857568875816058772586054492196023953468874713691380349308107102122978621784663840763020400182446402123447450670056001406072339859971942495948025350869031013423351873867623811993925463254428977688781189394333541507783415310623787627308817207943768628374811848145821264089962049106533888946528972537840157165186523668450723895378641064657075141237901032620811436694521201931899707876897427845368548017831220080867495735843433462548352766523252775146257254656262940177657035682282834829753052166795660355965341673936773644911220716033076942971104622124862510081472598105905678728463253385791735859127569130064467859401573164267931045621997054576160508681455629132091735310638405378420170829357192465761806870305008634294567442700218921606442151508011028576137742103722034763707862836800576359777386984197847829247752676791826423756504402873496277885373839595805669435975762408915491462356193067529905862603442209945884327991656806931358915734071775535322618701615811799083754413097704976552038960168854637131344433474845917934579241399927222438218723644793548368721649190966331808843004909737854560940984969102515604472076394256037879575902083376242871695770707033235416049284472252042233294187076866202337786578258173158497448953303585454729290369894700945724698562140371837046987309911871191231225238374172335500993327976349091170388528089708272260953458139750459397839391228704424293626583175173450320261378556257322966354856604213687484775172127206964074371082223284419311356653527132714839039937402066043547019163754533815623350812604278812456357723951203782164691212680369845496599757367233289080892619768793112613176827277867085810308206342768558990570625120352518976728676057409416383396336332994076656558047215785231163865358166022347178267069142428447183495678697752975968040500260868179947739757506735881298463664734736566044730063398569562850185021368049642496040877868935788904408420390825357147346985518641563783668750547528982023339867791167512073647969525058272341546716480420160358589319895229890307442285392082699200391125036672436230142547826521269256167182195494452973811805200707497174908942363978235927557876843177637442450686857563378126506010721858326995576506906778868371950654939922113372655035175748343219368545092001463814944654922896857941703400273998058038889316745139497553143871356756764270064146661028898825782646614067662923603296540926701385867717160297071323078681911008600959869539512369107534021592648814001534659640171083099894867140406402369325744937788164527301245228909490082679601036681967004530584906059655864628975041316764452282507438633190243120681710227048083190969499465160215103153449175532771674314550205904965495089734264433657476612931543351634086414190545122936484852688214968740637674261630771707969650916002488695548937269578142930265175891162560072185038442482570869464190352646778895740469224245238132008425260109500578329273183675926189719682837264451658163051885996225953626168037683935427115818906789712883814672042296227057459487634591326707992850099737230014318580433294037203165399151918737945951293816540275095553455734165743557513359176149357919262225348275529801228231452570061911546705014236545159693192406377634344403692714802978435501685000154233057301208660751855286834223935237089912688326756572459077183340323634137283232112676183951449071299653706171902509016779383771021594571756569165132255570199894974563318540753521695341885156138036448209467970017085094891486296818435041329007615420814433031048264874373867816547819364390956239723087302779673478121309397790035092941758741307734559700031036127803157101657338167870624754127676143919187707317511102187561170571807772210889380823731336117511527397699810888286267090051821711212367310202221530221878558354674001141240541866358462800972217235903958916000255392596810247416209820918950609104430330311983226349495932832184818773629168380488974371712340182697601985088019216599415248128788498719818903900923028701187608367996215098485141878474500680585111040506112282076440862358451701963833378352102116730967103186420908112920721903884694101136219544173213744221405335231464169503655713503196036225094670631524535322958743118690777642522741138093211684779576251536657349084316561307631176042892478766106303422723292747208264275250596158397607321907294009086568540555019704723363609152866678766232886592200849895763888043708421559664347490379051491198918593814594648034192059676846051696030882232839166629875714360782239587941084670308313503315758479655218519102032426464301258979184699466029142496291858000420317199569933776165891363763425747374109797940486630875764174622564484554230475077865770099268816298336603139669066546126247644498949713629402435637249475647512712230769697779633487647072308926055644773767225816332227071537486066746997765997797252125417331872152692963840534534945694731655660937246281817670166445974187665095672694383414071090114229199378322482377578636252727910446096118120870517309712811267200008029448860625582999438151758224122119130021428004754754457890274653305876723072770391778586987261412243961511503231605985595601025408339367791364396699694882184066181408018683075526038730433870199530862937724258817927589544546337312877584569651079468692594378712098308313881977212908904586612122148484711780892525936267121449983621951440276818698070075879416998149074911976761360323244475394968119709424798015096901457324105553461904416800796880463382261386527540004105954114748118762205882561770037541224589308572425165718701369659425163133798268681279435279433128748780196412598254335393270886627741141148790103709747430094346474787417737751672750706029914158197597521137938966945658360151726088092321499974702418834875023506786848465145223414389882930310789542245162326544395303208792234487365239149658799844558809389932826339655351200046219010403878351299105264118729053423337032471428695372434537812616925185345737231379523898617683097051119471510718446233797710060881557311181884797324967087544100732201965585334705283832054100405401043886835143406609201100132952940855432951837024570645916451906087548648711494192068625242812963651803242865918218360224465011869473691952488362555203933258872255459676095352327480258732632385470159441398031361837335194941176058133693434935623840615577958677759854273125142400967268218022157569409397718358592231114784958422162075236024591958871886060445213573198259603535829076038288686893289055543949738512472213535232679658185599312762056715261638587203116879690174562723545139546104735171743718745757742181481534926536184424900759995115542313861008734278608502596890273255146554116924764110722809929524364732849629999181190713155727819306442486262256549241185840786585636664671987564102571117698955064371478500120777770953517416098964768672200550038823818131537004019497636463991993072470959979430748063907168881470069165976868271919509533076496361657152772209640721324200958000788632249372056770557968834749708865270238991778361059282902966612748077107742565540756678979939271081416492225840190873791555854730545989833065825717447370111310823154560464308720963847659562707069912676443155490909906311016013685368804595075984797097674843926520765737783715351753890822477917351602189718877317939101540158049785072563908299130880487022454104323355726708643422087702168225597313200986045756231729138874825141745906207297045078248793817335347402727405881240366612403297328988889758788461302224618207416701981449300368551125036189874736122452940495289257079035420659573955705723725372841098250498200589117414067520913690677038989704925097347826041164624810273214796773082372276049289636082493720070935824384376738210443699894435150111794326588550708838899489457228884946868887801767438696545835215136324344627601685818607389689531863971730621179945865216455862959617804148224450156735458387773535750037003917501913638230179347291787686546346940403365057483213849994997034058085120981103399455583234928106197597253929742506039036816650055044899951934596321995089500299428443788980421308180372220733042378208295717041944102703982932509360304733043369031406204659914912543037658867363832487604996783436372785900911523297627663719492250357430716504856198579061605340450231612828739538561193598211048134364937819901061226419598276207653792062600364359060625916055600062763053763914700526443923653955050890791087223995145726574103479275038404868494598415989020416614015157739933534170339055156486552857562564840008112390917010709471335853358841161639153312999594475765975868421281517079389852773369411530928333674082335224127401748231195386324663921351747418318981828527658482430584508125215686810746526662660061929319414122421492001461849929397926609921654495127645932250730559473531535472279161192321832177171385699205288440567162909311825653124993771775567241668243138987541125993031337826977745261162857696403569805464958470156443490300382982688148760308884249676246353001533349150864432743398647459427541194536422422878760805572236953097152827532646762994714466662324599527281794742990865179847485364265284059001002063044403909153081891534570630822344331672545467441904381583515465383677290433641066021355759487752683112941206962635976321183265143383473564783374815186467349931280607790285520179597906964973660912067012267788968770714184220949217654096178408825138313366566202777056826306193634603390424375286202947747490937468141176666251892339500653167605299393665376847472663614879193839487760226490189212365234654588759806302465463287675511207589087209141989585135159026311360292744799763242530699504098463632814267654557176483093251399147037262028123139695061842336391410823092588910429554001899911380160177046331684536687502042466847569203772508402328796347532061707433713040174796614552320830731678184651335420670798027671664962620593948038230017105645394042186828962561509225783537762088026008279253683784988950720545373095775591456521706115350929161112378763663564468578686334014905638395326681612356431273416706029294324876572545244660840871458898338648294334598245958292056286735654422873558816344114282930916228960059941652637032102069445283212657448233555570176669967008563833458783251794577429015579603527281882553356303562744802566264378900461029805368470926518673041451091973263222299393226125043755172493365208079697520955795674080607795862607368727142544607271220971220810904623010515242534679606975464687439973209271294511792664295984294664474332045271674123879370933783268698079982561126098079239623790779410339476916165956167541555530768062070970566974123311490146894610857833252780783464720057371685507121829519412360436412112747508328442280607342122820951191697480495604289565829175595647234058143617095053700281219125058718353506432861525732055584609579213174126496897575498733128670490449252610571821031102358134093206214699135070313829463730222111677476233539623531686661668596700207291686907050034620242457170535407498654166884272235896967873151789108126016982598593194565475732463449636833921458568197481696236532417025030513995557448163861837557673269933398606993759687050452841659151401192564326828194719929236702152700580467180110930960248120612387274398982137065831749452110921468442220429108037356192241630162248104074988112233178992757283693001697956121976401193648322716972872734085805962861001301216892596863058353829713426889559737974877178754462312778675861088452176840738259204335994561414608369134449028241713690723983073632078806277689087099084066515180798611134723697406966385335222732887941355867948042330973627078349261463365645938684285110362026028582593159320809824551080543576106922826787334248673658196278763910163749782570533955590720183954204504302966406596871648570027183216639376577299635822550480523233089134233816168994542300806401931328188896635660322323235948274618520264628824784004466946829127042275879321543399582415031802545515351503642255782422371699760413836665470798557883833628111555822398574638551650963815191468490173729589780318144086666642078958984477620994913194162363272797601635502016065767554673462040960834551174875609031268378075700054526559808066720140881478792506448528194223973917183610883647793373413151176745569090390136135407189308579378097063341516942957050838303907218987203776127957271833650900608702219506545723935274105052479645121860491008765026322433165233704719619835975578640850720434869603224019994744767431552347121980272903174569789050981102821050242572245905470657128397208254322944766457709024935522307882921244088334283970148869561943825061541296892708268010451789395681432344525927574838182390792401220344760246064503024024372275336380578635512402843333679069125049870096048160330056322778193472340894921744778046654555252576633393019947109677963579379522783415955944151815498266037877624412052345262115454668805775741471978380054217517083673109300211565739143710387306954997430571560300271197460984194157276204511041295997352561297842443250798733771662251406853931770014917851434182891937707515731117534202921046901249552399390377848859249439709528842709076667402350705820403725868668488167701267700019738822525636146954420928541251373209020180747027697857891697468047740963918493179219393939274152267440653332581435344929823086215240182071660205889458032870435551990613008625106114881349171954840168366135882076612333231093814893520528165885985759428824518986792264496469055758553735108448041977345742370829562651389301893596533117848183577179301751493674297857115318110011567424964893920777387118460390886650062412312674410848553123758936663536638124263166144812589537315158483861498499567812127069772028957741769425800190243649304680048117731453257121734136658347193649273415866569286331696545331748917453441545047913724613231945952868149583111586554081294350351519495553102657829255467400474684401215679147264978507616316817471782971784819945519401625942283642945362101569939135367750229314242503777951313285117297498853228660515475026320958086801197226704538124379760396639086048115056603333972944495897659220298402375057548224467373705763139227377088653026121127649226190580882117024883812931343275523287461939532853007526870839822553001885656658845109866287700926430474332135545170320287654224122682625608372696053830402028258424911809950116327730416530953493034038195356380089402610482540541443823270691255010841070880497494957468175609577653543660661721558388675016944449389714474427485484029773742915648028015412490853389095524217181130867742803381911756335056999376528343621356122325248793955150801857287241419768203622999175302038575050474293811547194479473039129389335796442822669332224368096702139165496507410060287656961506092134469549490792606114036333502634730404346901421047743810358235297123740910378584551766277017846069640927339569653552157529386985512951183659169867453923758657763521227760390441942767413295797937021969319153103020622320473379486081178061362326012802503414295950788680186838982332651380754510814102728570624765155829882303310999796159888661041506261492214839957512884204780237872990356694882998872372306695315670096543646037905973544714503119739507836637120447856938851480813920954132607927333631370808739986272452286493253853818517375332432310181495187728563575266457665398105723717635470732017562174402263661088388661947892427400543626788671230497406544932993246832392097440244948586407368910857210427187914729418890815506503381364969805442185316719835497221927255667462730299854934996896726508383416738693533030897766666264964001632961063472008071408794150300905347032590901240230164900771933978984769552375165362454477276458425379521896784695327879772003214716572670905430501968655238968877456529475847163461965528454308731549507557579311641881891591269689532230290173541000645403709535987521413846257184026515637957575666184615443316858530107052293876194829527589378744673412292092779653361031152992933040671454741744426442984586386294182277806064798657943353497015665468360525639748053997857930123802588615222629465138294228758711363988415545869759888059691314864423696173550034815409397145153870621794770899531090526203080397649571722338839818096508219872970370425465523126172938918943926847240286469640587277282829319162992696777087459775048444344878837964064077270012820026624425822897109924670351710074585380899742580003019787934198733758982277141918076976824954778611069970701609233937141377390723716204787814675202454267570570581498667811998338470182242217349929424068692295112659125265333262827470352276752661175086565795975893087954667117096842043634191757321673750360923877412987018823726524770125128392934005367862343014182161562997031532607770930089047098037544257872547728207594208659016154468158393914753333255169194555358240473382735427524039044546464649173753096823094314975070963402827200689764571305243657022142256031557471215277762862574193638892491495118906294052837622657865884903209295053439159076985077966121360024757572424656949856759442061113455146704914626626848910584769071422559588757684934146810317336558843506280662818365281659104778958599614177130618045441873038529048245537228351277491322884329877401247483372945151573660044480736212209186543194779323232462563424372093277423011954856581959778842593457713333543002630707871169051885650165734296946308246598555180961818817212420645221333222340366134955406868757053742067595162177559307733758272426004559961281286993518525846832734656319851015650737822874659091500374181607502251976818422640550925720479291394603363202851237295987214657851272900451511054480724104766362269818586876748740777776846280637449820054446111413018157445081714964588677882594370101052162181771301652234313406840762135748521473011123746833096526394682652082693941051204438861587771532894571449952923889119862002618602598884428491544540136563151261050584677875818873945618741629521716488107141062165109935057224659272614614007706452403998684955821264737253211717502469409382243885225536700173776720361732769965802951106196294657328801875505736181539225104529253807408487468832280250985623453684391237237039643560446240165496156434797683820142157714630379651564412793880855343544987812455234266092614446898079553486125237749520874825192816495821893659414818038009297134277216983526087692115749871574512808169715615287582852923712261271942510330855331774439679303338087406493376617706192337643220717250765831787880710159994568968608730846322721749412393464908363861293793155127952868610476164787352501742204607204425287622303012577276676199611684208471484618563606050944227355643496359840650698278602217761472083285164101360125130217282288563238480072746039744630875330204619853217798522156639617893652368359048296505906110537106304512232596508139834286554243432269471104820186012989483253277775563915469466056279473693897497744130458476011383164438541835761127281044640682661841134427357217013730897217765675322317341905531324423479670926819811190472937095549551203080790793216971749635557784155150217993379131940210215700679634927448450116618865874572169085918469761087276658150872600369702755486077687720536431011210842097516829199230180622725227080981488954023457297276747969509033377358289312458442828326252550746643731502979100593130783549419143991522323523371016780681968033739581367002931163929574625749117427542694236955433876228220860625171500589662333411674092975398647148492645432955688423593598497212179101818393846241688267762948318641538954711993562719467047689011138740902079794189399400336560780773885423023074856236865393104632111514889346165874205436658820150429573771353143018753820288801119267186737742876197725749579019077009714960010240525926680286531263093684936104728149999700788933738292272059348279710233009309127526580102504821401622540153929444316909327452074721176293129913079982040758976426529851857070275171573212228183933887385886349012390491508996187735003361201439496205856278768167485277992417947242401518362909747502184436244597217607675843273333242220942794238879505197709668967471527660001705168056815637701163670819650793672040863220126006736773213402515929868785560109363330604783183896828763844762085821742463341579785461607217638917605892869567819153481682926653807698896580054768919664245756274948654132212738025475565966865597702092919966198602060253697677696139521682297620310196460254283341493419576077264372330503750058759770510497548241874294758523861879188932463355622572674016825568254682134309334135673899609455266900015865698585500857630420188425791604676328249696365981969046498001391996227093028494031990687855110991643983081662928524747287854250271391079573604048396475162889671017288318567180491782891520681927798757951805055491465510322870817661055735461805016162943959096184473218215653667483033292264663819889973517133674969433856057521713471101327471734623186064950827577292660024047901372342234858010033895624149784746574433421420552289785244633330137965713032092863002249556551816930581867916803549270541814088107924643128944861118520879046394007739999683840116913288546035299693352261017801433442453552355815528064586718065857061783751679557406145610239631790817151188378476444956750121267600318708395810467036761908862324279667244464834483249013996285557159484849716356124615270541041977465695420180764226970262355608100318424173530692699798280954060887303548850328492887614143695646664556517741901564718807504066809895326616588225263796903970747929960307558397031524895424486886930593376963953873320462474355599123060789889749856638516581685217350630787058913556721791613349447727439865148697290063294863251838755422521831012506563768774795072421077389351006992884184575639993727335403191897564779443839208649558583703177873320396246512825356649909904427843562064421865314946618829423244296028417014474797895683118500642536061406422343613802730529318306012590731493484876816838207185580820975754190834805900726465887562535008715998550988050327508658369488207417376929355888030218671197599741912745794553114630953832282393344040073690750897348559772340845417179416200438363848334827216843070651514350880140578421318550488270174229298703864493425317844665611367875134234640148250413674050383563583672442778384211503435845439889634076511831590014049359194718907595810421784957635509738338568479818364251699679934426680785706316574187207699698530402626376823386667340224952888493841582932937586861957750391417244274557517623204406927889847868860449241322627239536982318456643950428968329111827267332744369534211909483553141609381033474235793305239422656940656012926843325249262679649654207122350104761622131585180490718270417442567962097633715776075111030422006356337406233100854440493850134570361006676858366215748371560006784930437027931308206006470650061650730391344536756302162171950180014118061697978879108565364167085323401312555647444486763114139273059006552734486546138178978832152977122181299153237080257531065455946620854345916734459074756889185981733844890614048342048884734133357053944836884342191930254384494787582962518535827912221238250295604845408399212373005135304190625208629286520170582782480003277497021311677747219045447181266180177764883087286906390482299885390728158275342019543684094930359473027601905440253998211479826129976809876297990131350721404159172846152671320595039343082982121643385568953582032240787979995866482568715058950274486274718433977055214840203318502416697971212039682874564789287968536146058792918516167770286773855298847663695146524186719046175374308530638639535221030186416955279950050095994479199591222097895234557520874273488208171907665024283376572899849791123910376205634901885503459877776812264084842126484500642152192105168921832685951437643281331870799149412400984159985384510968102967299062047695661000127985220460911714207624162322248340956090029523848596835643819352197614001760965950517496973444553919186425445623599041172174317311912335764439490945303400557527958113841358847651798665080283989859837398985596744008063144914104832199145977529586481486438598893015072407418599996351001492603851207707842592154767109221930792627328661025763305823268254794751260688362189073367376790230313064399653610046867954022909765413346373829194124535857703954553350330978237786627750853243700273086918917507564899060246263372010346829600982057106223447874760685404806517815472094955288682248979230878350936050730353681309081832944513201221987450820467718081099530947139723639135902099541936377215371032187969884517689839893327179320501941374661643087200608547428276543317850963186445832786710935481375115264923847956074975438226771703883318141118370668760995085430507951430513780404190354650078012879286479489975554283315857537252820372573969269983002970958667144952812582484002080983288194335322564481029861820021276165980705359725849397996582635110138367132807451657405583113410301198969980582339800387896625601795164419951200056820655578546090449645321414795558148278177977947549718387729285667378467213989235235425018484558845237422466424025359314965747305326151761562980488878668758156435140993873093129756315742493766699783097973446342949720829849996351075537286244977630274793641197479794539753249705380358335194644908071888493513155062195199218463078796240224527839210581619471377020070607991808577318218626026487500452770291881755199165042046502222382770385969782318673111197499851612124661425262502380965079103800272471965107794851927391005191393900741982395488461060968483006308702336064764155915843910054009260721969983556999006831879932252445327800058742114267208079981569906841337434295013468266947022579714031770913245867399974075688004206396187487836531010499922288110015521869050496152896448313367034459668364852194967224231630868430229656180857638279012369196751653931389462630467205554949308050083466973575629075090945220036199768035692547772343380540162825005329987503986068685433345728455788269612351544935468687636479201783055345006854196569345817311849384822839355259778760018129475385623148150957293267165233214778563898378760433016604881437329190677903351214609351451035879678946778669592790994210000022430233247362441586573034267998870983639854833900504510051762671028494690087821664516054211804801858387723697143751325657923182239364702082792001354728658133775502821445516895049286122144022348584049522494110777748075103297130339117961155498187882210380215519000650482899855520053380612339113343005041072153281731907413249010078144350052250053675481345130205935585742375506270263083964598136041119117996705594192245588174830262901614462631766222748425902078279012570175057303572452183867807060291569284955084382548330223713458656791508904391239148353748005673565609863143276683119816303345942144490662603927975356822755663985193381539932095129574803022800412451427167582370863806264251230200114351417898227566122536161777689880810737527258998944315450293221298922492423219202966913977986211291764155035752929421590906425346152815282849346848424583908223228359809152093889583986206484531573603043174813645340495416123662378543272890074164613613333626086834987871394032442902958589208853061539796022864058168377870610739928290485122134405966038217443203034312442820379390885605316057610252168863877043411495759320211189049625311893686310717233116039062255818756326046877506608651403030225932964794629697341897809514269563614045849629920459194033316655301010840955678756406506824016849086365898502597799194012016455685907966840237265038578380676989281537441721341993978455421670128399747607784170655004728631528667008405122399818558550379405840546380835612686146943164655937930787280396144981598085313430514263343657556305716910287643893449039769275200682189134759095624302555267171030688345075625002197672200914502907278087708062436041337875237862091800026955458002940374227375858658351344382619880766839974476933691846336531101965944821217556446100873957375103613776543888557754737373744989735171101576239239519620556677392894178232318597548383412611941815863791392529502634003785847245002558380728712599144221894366537962603595110369991769446593954656773543002796433921713054296954282488799527330972462730236496299077319550361154469533331453633800822547129678239483075244233230500407466998538308261292397639731207388660533831169178801467479786944381734972377076736056548962606206648022839363441637890868981341916807703405994158388781555115429154446432030660671157094455535225975682381573059974602582444472646222237766070107255979576488978811288636639569847733147730560908196034912456016207837916720289070396077326758717129983909365472940726119774524879886001812295840187809337720472804594501325570287313845896377617178193473798779490581141062487387673314433576296995801568299955102006927215482913535992426340357018564513209615253492101513173641891013527796709555945995707790122559262622930281514102878326141980998393742818947485291627864828015748989393457552556040638063719257631327091730439122350489426306885434656741198893120142123804475559185228373384831677992646875923918800651814742661250807745314271224017069947393217317973545048274881832928975729740780838774723083541409542045916645955483710210614582209572084163184074185473884684171641701564487810847380062752453428153328110013544665168027292112603513291436473514893612988517183399980496005304636356555956253435196359337796059460483646505100844415726483375112461569535871567770128767074466143597591570949115072586980535145395237068946035375047565918818606750686593804371429080757197633356183150179269258592413403247709530437962186579686760174386153758769912582480572481047281453130903180051030133422203953493699329581518140786730871207287992160233612657872529355977739178871842696804049359678075095508749374333367219926918462287657836752128621363293010539144429305243619252917524574234166114311720713692863811583670461496637298232228143673850758121106221133581092778308522676649159132015580718149325425150468825943648798676372696821607335908007036386009245328929550299489198912252684523435179625334856126907735951299143258545823715902297254215798610830578080288257901521135531192974644543015157081802278361459862690063835177097874156661656531021595383252332720389429349985690735071624881236633490808249826602692741878575327714456374683059124300072546476093766385684638730709171566828569360199493032074768126298438037581242842881472203661850909534057730097056320692809290768156917297078506893320800284653112946487450506862985652889045904510361302126044165553652742156466872516720213155883300113591424825085603863125379238813124239927102928206207248480903634293875774885985912690103814203916084807644656256136887130810382083308689454724425491067955965719030498857963894162561266393315330583604346946245711647644889543540800122639796081666272547101971466653555113776676631420706912270340724478238229811503039288662807736944719622628358416475654512799857164285485278572231077711882787704101830380150338922874928621886710912145031193797528690549852848180708820939107408925208380229474405536038276900879013558705767770779474100947653825110084968734127269674713808476286509777918939548574811932945586112917728217901277364970072202022818071545708049624166930741530381966756583177074242364180142234824464394353424798198214227705159181382874828339401445359032028433457550440657672299400992920891330882964610646624458168763000097508337810641382116602320030939568331094666351199672038010387470595466356761157344522394458809973226988011996317092542839765649252792159600643262527002458342501784627218656093777225072547487061187005227266259023479324750733143165731744201334126678482176207932720975191499136887968117012019122517809450399306947633499669121539901768829475796281920262422487201798608965863665787498399818050805968255965875496006075579150124516963421956196423002324187063581042629520723430657790839701054941033927883458269332650078770036000657139623158358939229909084174373529577700541388654695152436781191541307562390451881638542405317873040643157432325528986717916461139093189734435447683774027603948854332905695119987129232435343063648372981548432005119433963784679618866618812316808362213957261476257252959707582932350001740921351160705264022813961921029356033172180577626613159132678011215887740578544400495896423527063068675827413466901795290147449087826685272611921601023730184715499875895046370244194581710527238713461640951971204536570733489393636622833332949358981350491588203446093838308403239862045193284368555217037761116088944025721573722535040640548187446340167753279574353547594532115786027463259292928385930393325266625087155547469810319767022996569854968422412678405950057962185781611332097495169122524194225412038055333533065426547611539815622561838638662605085793493533348851947890641114695209363177966533540890733022631753965613018980233813638897578163404122515516861311409462405726575267143526419166091471601159412788794378146506431525999782247570112453142386017434938136392707946909099808964571984734490547571356607168074269505493922949380306049432219353381275392641249384730793895504587519154404284229940016788586968492364444628226534808666621450399233242964165507463193361407438259414525822597452271218193946540321675212764748366031253536261574849123367146041018754627677120318071470332941614365975066959779394739010801872978004857282140200626465028075228521869413634690688986275656931451257016109211313428206137354147072228942084308275120544012702128728952590869649518978859413470815050121075421593715758755579523895125834324173892317984297523990590236445272247442100791318792305727313621906359280248978442705186119293900237539771607277225239695999904353788900399539782443743686841562800479935925349179820653384220794146023114474442367172319316156494800968624494384995699067102743586825556569704506509177037408596946111883873434140483838857332999717449401323368096958819523744990051251090875825953006862636894711175166537247190275880790345586556711650547703845378329961720351761929887355233071441979800686400837609100544572546223938412371104551143404089986938659786945777505195057826631105652996107404871749196433415863347691156886723117630819144551870569574156132188460338490199565545053477496624619353855882934104191283015503795000439016164923198783643950960608101979552773292766164688789183688214606557794398915750548800929026028776556337603633440067197668880916940955080978169902294156712705986392756574950202371935443170812359057196542851482554349222332085239115349667748843337196186475760408649025754456966830519251475705353640391239783067424038268763693072723986340651048262813240543344680592884867656879823517005912386890247247030483710133612946498998560970825570578864676062598149922283340811923784026794081288650481066787303653299890121299938248136046965716478285110371813776367316999604351804950697402300610250641703728294317177429042664230644730918158872839934802662345761243218989764574168997446570843954404800576115423385614275529976197565952773433318856093083524607495081046486772110396435013107669992113786020168950928143883748576549416305167444365134453096148038619893112466449478228138499392930762630491950492997994109561377087119635298996486432928506803438397532650535217669234029634387774328019969701273816120327759970661456366616734305673006743119128821827683767121238042078344162020941632073151296933101125947382988403536346267723186364719799791122434315936972175049638298316148086691135011949581019845652688855307035412477584274198639914758191372170193662040553924466763658934780807475337992926955793396902369543601241154314236301304754309895245063938882262643012338851400083553755573865342419308883227753501719257437218574973592328536550244973771818038942861655365996336891719877103464020113766616489041959668334176353654175471955142172454458976213289530686553976833155908727498533601369566571000778304902626848549594383103148812334831387831274675945222298524858793346123582723622625093146806926875609593051435077348442800830643762858780945488344573507586325852408131969403350360524309038809739823318897548187498104738524863576329815686542120241845571503475186608672666743412050031490366347322881362427833069023424593995578508457803217864465797914670001806930993372425719864761478266627012053178149887037128258058873376005415460175358490768436395171787834277535379992451548874293787004469618476835768907674686481159980775700145579191312591537348096206678367402901656790894567606772966631264994290541599801566361906056018624085324764607439240909732003865069804404881598365765281186456197253208174641683680438805504134890694507959584245124882211140196346474029522838701275945692812257870475767324744362866002896905959495101176355702523452235158020707564281016107059233061798839080226043301978532147002514790188060164436502017912094885090907939527851272403408182630363091737773330104809899048638712173871787900065496319326914680028563071965773985315448593012741005745215955989837954525520585336259550046285938143248088448393620264507011516772558300157499873992613836832141049137689843756668413178829012761575179046275754028812724501511744695106042132862826824988614581870741441641711567479602005688877404539180548273534601654483354544497766078175839666439227084538677889805896948001613890080378133782332890890660520965249548998958843542285796299851363220365480080485640647983605697847892080162959411496819868582388531475458394329906090423916181344432324685061025905304031969490447961274115520906666297901842145003820084982308765017909314432596708530999983115927515054936730379934634846861831632955965672045735857521836200753420552413702231012997924767422065513069351444501409120944507029591258203881664936227132597140049741756591335357902754797072172698186356494604007355697347720927081947063288037051539854381571519298744029022878355548264014476661685610122364847146481552862518577884901757812630441880261910817164242847063693518326141957515384395988312186625589808032185785568540191969707355922305261055089331001547607712538755821773529241223376558904299778936119896203392898371560912786197040972434060711716876638940898065991689950366148040205152734142550792773591088885725335870609914807046156635490374012793932024936060208274630479505815022342454986703311380644538472775243766446040043251065930050273721932579603391423843550603631954068760314603930900844033574885148559606304211666111677099267663687918279989103101977192393252230582790740152194649435422875582037922523539842198171138674792437083732928947901196373924159225423493328282341577879446179029287622990200718561753878054865700490951014781580958710690395382405958158793632178592273421870042611913600695823139954893970412877217164216027104553522556309659370683475960268582278250126927171868625414589856536396579367864810887335825770332734809667505577613063610898082590570819198625138559722913111167368957946971475695278619670571186178887596295388120260916569398884826218487918454119745395652366580746963139222644340924935979628059685447196987035977234467694459867447548296469773400445602038176389937123854753709503755608123893508769771738769535468829130679978409745708616772202256456212095956610705325136293521573622601963337907265238007286050697684975108099391611283037613021726220435167703233698810389244108839816684148435601286173056007161884662853318388686360093473794987957432704035154148927521282366118216728909978640871527837535548942648188463974719209248618502546592603031315469842174382452064929453355082291030604783575156594258777067364616303109295450963030352344253636056660349767940295164202812193547446632315329669720968315575854510080307268709544175112176735137682539570045090567274159901966818259819625717318002571924490317316860271172318128461627393364004650099947972252615264199753520265316173736421251574007653120433602580948293597886468048075939378254275136260431324380300657747298691053870695284480405988288180700202090812456102304632291132125163677069547660030019755506980997578526640885527663828934263806812143245733651549137291913360732097359797336041187942964827573612860222694884039584350778219654490501073130157695759841490592887051081522336380867803579178025898660253360003825829509239828005672821455816526172930838485820050645290548359140521208484914584360303881758746998614384014805086115460417353603751141151642135320098270489935636517813786841120719706885752349949950116095273887134596785296413085271355514316178191343697629346649892433119436590538895155308028483387930690528518498070536164655449321776080099578970135866938745574173880652911090376215450871331412230105061608213596241557530260751481336227562210442612613028423890212752001679189309320289414563372756366253177800955002887298625782172622024643866415617610291967446043391687709809499300400703168881616399167381027245241112928132736136019361124846209860559486556433105003759755156054957814692102719625314668595427898203892238524601568207053794724330977398705984240956115489436728551583939157460128223775953966848694372368073951720892465705926669876592152492387220204760594807861219765107038354530224259752425435448371808116039622788337027647712847426415086991133491192988513769921987353075092996109513849920480823192182990851036134406733812745076391001222262280092685526316789789247105767102067853475252065809857562529624035824091784608069466849928579655004478739756476975631175755991377427188401171816014871124694845850449881245959743703925799982263246978387861821242598135715455610339456254739326402322000921975882569676435298230513020617050515613322797473222529626889191162993067310075552705364875666273482065294337872887836578432888996187331437336679047352975669479943666482238521602406284052684953420215330586602650210073097531131354250524909615845013705031216148575033647755539799422422544084848890813448084549446914834862109102513237350589944348931587844076534902457995977943961271000356966885089172698799506643884866036913282673622434963318491267855971074905672573931857273305397765084811900263347410413430220153832697825292755776725229285905369869119791734280794175089359324076940167101825998482687294909672173557104625416613207626457274981040668668495559708584927061987903484304274681612637231724972760292156501722505632180259219833620834035570531194412542417138644416582534079847478760065386218294122499320965841271751782951999806662857693923598279850863051965733864881609405750032638334505025718237468701486083183530038648186194513764332673006169288189092120426340540106256828311507450649024468370441216668727203311369946857717614967613235485462783644365958713516465166853601585116052803578604977698969917619674287430970238604429621118245727520210006751609434175520295873977557796688285182518529526126343944146341735240648582132835046968776635217313250800243472749210756099015095354974137215145848159832014415544800740570579491775958584862776575771075743374207776038377113858685518910592473315260728783335419570741921896474165439932288727379044068765958631028208196535073010286902050130218838442452245163234095784272858688394507708585719050743950812190333755251346180420940339938161515613753496269392039905532408750592934772485708065596294128954664552774516299592272023730928606358238568443111630915749506776002271056172736144420005814274553517588859832496875614233060216455170579319226290926301969273920286691464142346230664080964502769508379724821540943111455532853852254692969528094101355987007071629752124015580798460814463401997109708942288485738670841942478873180299066620129843287267152320538928118954688248194415735561342433401223756556726311574280658136774421607896182713292873731258778578754457012397152422951874636299872131378053557609864983438348761407439957097241705408818355297297518999491712863446833261669421260794388264860850201258139398413867956492627495273843288747761219865064097514950329961763234701945098188788419044488100210225932047303363938394232362623931903535310897617948800208625199902409350623733254155405107603797459887905061276958161657717845937229324612983208709532216690681064863905861439614927597188895014572063508909304117928707728092272328966515015755095378515790406703612809066590383621122077580953957668325897799168834347173273107487789046450646462760073699677120140963103197603052579180952326313091656433257682829769250611646295320897020618614647524588626780637895036981820411279050242626088524902909398779442800008026527776276135522322904646921806382692809842040586379418651126812988910217833332592536266360208924937741849672719691867933703963530238411235547119034721458084865294942680081685868181277777409079389857978054824289844335187776256595528978485884873723183640114593610767735314203047775632869836769918348272602771908931766951599834198639646962381505784894023264035275267254861909474880068557581158149542698416549850418091826634106458696337233975956209237103497126369367325021404182584659857964312071353579895546408274699108063333805708740497362160892513979346168749630077466963902848429200479506675496945145350621696029401022157635400321346110157843622987550387979622308568182595650547683870107481423678241794398508697746789323767867894151682780433161196596502228142549283587816817319954459448081465049005442490038444370240514865857223510505219078426022281721188381982402441401572406849032412173244558238540376079948004163221036237309005835128273216371311451132512101741185282199425919378204913303032298413024050959316174378394128949941336388102521887948152416466511470771425507822786474792726882009972266095906882804180453518969053581704098574422730041612722348794232336976393810012646936091406844142237752541283897275654238413676244280106024945478044586375196053638428958838345565120446356423948701994731276099835671508193677419930092401084382359632529585882370737949983352769621022377364783934024495690792367647942917762324433474942548734635087469882266288845675123816722931773487316861450212022325244573059499216067449597704144221342189262456591320147430372780701421006471622264366310186029413372027616662647364451140658559826843310152989629222971102682772427140909932879602785221620398482368100966668772970269684379425884481102433249699920670330801199799566152037383597684528401799919436100633697189889356522509909284687475808600420999902050509357535345967673727260060114108146628458216427181497624845482990089808206993687747104957737210399655772525660597111465921910874461428945700601835671339974283434097176503515237465912221556164409273371449503586703403608601147488525777267814168247257502002168200709824278098293746072749794044442736656764707166230005337381789001589203282044858864239799006601231799514139970446431293088274001650136505250139223315450650554815713475882268540931492073670366807142048085538007776466432918748412735493142297237423426028412071534163211009784953139945632806129191625529296971777015612644994830902216210651116975994520711192077706278795153065191313277976503456989442805990786212796291770556535768955574356008373278761498279271970975923990164665505587607062439701619147123512659852692869879971760856911558815200609443990678681101649682710064448052503323170020617380945138097933210809955031541177370215037134026112102010278098559834104634702760237883894750233925741574454217150312492601677783814112462349156437438677178160503747516474187161305252770043575887097652414327125015521014721027698141634324597759815092782673828558064954014608541748515024111773321974992530773412479780498352393922080944575370120368806253356579818138031986551885153545903431024099432556934716143041724402746899409616785797985556451097206461339516938987786945330326079585405375159587422429281743504943662049207509267623904608202419658154423311011266248067837164279190311834691587246286054137105789968827934905672022379346708519903348460116954812438243543280072849590170260326917625756579399786181973118555656941060417379199896806386019781578326243064207568820145971676448743177645226535215537545623606879096924081471247750574977606654004375329430315121080362914197126775021285903532388940251698740843072278136614650794508199712427415722313730489214641843128147053712059526958902146289983408207510757157606406968272308847393064159506429231979208243692989313696433792843642729291183813321405599310991936254365421786711313493050376382171039698275759365013715307580470599500374103152298098595528132680799752188161605311091282614236559363684602272121022015318912202230954234905166549335648398198733924727347743349932837933753503978718074628477309065386922921008723467502531864773689747034920887725542447034875776836028841601131437436954196760846259356518012387569598714479339418714429744815289077238614067832574639086124622884257612968607049974988208664541084983240981772221532095638977453682078322865624895539254069293790401040939271012181186004468882986390789555611908722955541768371761977023405397360339134736808987527524461830199009878963540347940834974243006471591187266830346048557640410805163957730065349503241402699083575355973003402361297157623849248707519756376084506205301619039967033389505435280710676300081882991409607350355321145199144146531371911963682271757128438440754189992550953201115183934665027614399622440450892847282964275348774127123411961790128462016942733080240774053590672223700557383075272331526883012409554876296983991232151645241846115666742128834859668517351080194229598172098215931232611052996744837526036526312956116057873046783981035141540202287296065608347185682304309489302532688798743179683446250031753569223660393895598174018739696725502993529225380312697911596749730092332247758426049886057129007511781624420701170742206260021109020014415550435986806820310227071736954666078020441216540379358939105523580187260964296316188805770097907685575852845318261048988015121682517934732997739870848236645868396987132221648277116418041013116571283589923123251170340470577687150675037685646781461404303565710450244089456886391570416829510608650628893309183347241534382472769579271878690636272184546919262554131551452498959918033423324655590581870166273646407899933342713868688707538359207086400723011016629168393493757594733666173960364397863075249072028710294073273404756039194158805793342138993017110908035248310017303290977350256910294892125242306761519646050428924764431282794482302848848688022100056019905193445234134105550150697778412494530891757615861772447608297011784814820252045944360942819776113155163628900212446183814628406758345609474227190118766589908517583489366939879043787157907446282270955372894735486474241873634983140341018402200323229627522491106108953971359599966527328109717300459587541319593778666864883898825136383773659829909323568958037647121606928026286366980762705979788434671672721222748949294923467764471114969402795477410275300227730455153594092801991200074307054342093036816018943619681537685213147690251891228942549293587611404773846041280597313087964362260915643291113530911034062490364774641755959835401331990395000842064201840252212714560580554987302131810801129308068629899871289339676404725818859340304003958646097701370296688751907867726052034966371643129773804019068342357048880975083703197973443094744522803210935963185859614707502657599880242048595416491269288849995310454665373880357210636744287558147141711739702526889992915892741828213479963011981617997963975541388046756270090497724014336927994423568538564906343131653879083690866711756228139650025050073220558547950293493055449490211129464896560978880269160333325393797817151763367676548684646057636024586976226897904720158116342403048368881413860659552164972905211189769685277041254434852576348163413661658086793324285570328553522899481260841505973672143272334650928936189435389420125408900012918460495983827986545713969617562055815480322039099278072635976667054577720368410604674607299999545672433940670130770127126859250343376961703287962107937064326804311763827276067606131828617934481664773329376279298627447627188240893072814981923823005509773920472037082469379919061118243418642264443891516089438353465896210279443052578536573652115930228677299756254604349141970016193577649781633356885961367843588862573664959388749815155369835249771028764677049094236038007803528185395274857689246038827647134207501420912425955882990718460420178836910430632548995758326587545276705829180423267207089853250620497997805052237133248977363019295833061583840891724647812902937326991396290090700543244646670223774673306441292934187274541675471999705736574564337590640808275204598973934333298494316788299785705968892556196856576445524590991816317800153400013291451283933907587641138307643390624334368005824050451945586753546811689981313080182168053024836261797610748131872614092735393016215347256595496547758223209532213058450283010883438815187401939117324941472455184494126732438494248492666026863967293603697909573953182986091009767141195774575387229687306739682753166269595481961716232225560631878697012897038527396935274616045290774440315430713832396363979156037184301974343018543469766083438736488391643735940534420120385744885682632799618123061661598580448697038438410598397663820651974894851203891670701992341529720388607287286613374401191844297424866501156526240212985218685613420392921013791640409575044424441732714519455114724569482510137659730967775853406497942892687538169662024048847023947059260887726498014868835486767101881594198514408614619203055794735468695079539338992455122258993426276298919636678966247979038174690365747682634822146094281766265885625380182904955484021361322948469552289317479774045546867873241155087504686874372563640723936634007415852587898963180920530903677047506128802386365768917410149814112190216421691051336423434151331834554341621202701226003687941135863451668065822054381855138826265713524274182278218475399546213185572101282110069028555731336292479399316956389456593679955078314078473393434740121813877624906445850455656114096403944423641588246446745786725308289332015959798180086536665853632823041783536730350808620419865027422170578043149843163796493013375620125868284980191781090981026228743691296869363452427292728178952358355585342755624454221188133320802032063368068131222571330795259211573955897933521224667702805308559653548622345564952684500864832743294784262405027275418685026608783838405934425786891574611939782880178251374014809883230195839539772172964423788658368916261079413717682962129265113736737321768796895932331941504874953572161438170743543649207724044962981978280361925675596622982341863845405265960549083290378160000508105434490871309026812129604082337143101882727916550591064298839966513633016505025207833370436969807767568903814935496006923242502432671895044682473117589235295103003730437766628179088871244628151468102613473306058585697948726892203981134116945257801938626697177196376445744253160886046178651207222103433714747715226478520462352747075805311411131239880976116188668551093372246772775213211842770148199401880718092837024619006403657970045140641084767824961706101278803008558468940230093509368779378646710305839521785337067515087588818828683113912402963735982408041912770403126206456428372141103606122315128905823167766500584748541809470683742568945874264633820184635772069439207328715183926661019980040072179082277023038552556164490921801901733868393466109331962751077710931982747690292690184540144630806535634296808094853057545752266630264145419418286406170973131349431433686232071522580413430859390115508484432031323897268452105423442063369806364772618856947158726654549011434506948413741277990316471436690065663906432582397720646814792067124686935929725232108538359795323762974026239664578497503258780123598772088182964640581924569452151180132955423053955552286141619656688842631753165483345953626450356798140764767925670954986105742690504586666978152655198445336548346625461568540312654672101567329295819895428204892045728061233052523881541483656385550942545743742550415445034335629858723100705350779431468605123931383010655095795035968536300750513430563860700549782373984331098979702299360570651583883722252793946753992557761458591349771399691530710506740069598330052283362248520807263868034597498976479190600402149634529780356788283371290831562482393486479117242354407297422505062248549946026515875768765358492757116455181339078679532007521738249933613801945331131492566002522532041310385659385442757558023955012870199943041953844376664168822009790861492053923527012237476446171034907168007743493975662430316654593556235804721586951814034460694124504845849393170757273083759924898631906882728094758749949276687401347401332839564452072237779984384217968375432553893705515223623967950468062963611401142943985813162931113336753054552161363711394201161273867728491691285513396526361836988122169394320377415763601157068388041478772534869277182287214677487771746332848831571975954508047976555165532767308103695949929983533409394558175953156943194640732425424745534732423308897481782438449524432437476539428548477947397514504001242556357843742329838336066235907391183848997273695532977954925294033451217483784414801813075831485107147094568759186988648234676628197983682314499749474149895491184375826435707836416860626136957364652884728579603775539914793360662471179731207671978493156100066736158601906238802043952175778467763925155157053337824157164518738907218726759920954191519443112929362119867915862573407466415198064707638423246273360384900738132700500922961017339263958449670457303191272601610327719389036332429097877468830298705881776554477140920421984494289587616033854479989423651333056062353286957127837565717915424550804608525116052668827140474112326591770923476001709327032471187922657385457470199667263607412700723328553372099234367281878468842672335274057738412456623944847524048102024152479286202665082778487168690612949196835861215413871110134275258064632639044974417386970824826801102570703272182298981745428834784982555546321355307615750932493393831628386501654401942555254271821769979899140470972245737204362033230590964177823916775506356408541691519664036083734957863819454353982344725342883400136862577306833431272249854554076489619725944664730139784446883717562264823513081484981240477700514373495801078151530638506421004580572499754078736351724582531813737119020270947556715955202955766887547800280289804565238752304281995577441018675179611953901945793765600448297976697085465108119461386697218391552922473577884337874408085278153532893162782744601110375488326311753770263272242169912975721818650747337082097465090190192767711067822669628563659028439642192704618800485486032251800641829654323652409091770957586492876592834413843213305958197174821730479057231778010413428983159545728693155654702972763942605631865270811184208849148877926887881827666114046104658455295677453271623850674365489296383642809004191306556829887335275991374084982463693355665122740916394836599237695205165378218529723192590005850400148613117216231523615268047344337232676737975489650944840754513718806688060525757352353469137851836405049417402177501640327913661582917491306679100306029410067130039497623452683883359006163087809607425638356612160936352844260281379962228594237737040294277376726167504427518227241788699636438778193687680396584379684073911633612681795544335021513353131709049167518173085913036534860676965230494097363643988801801051502700806529946621553450546187233814483934075862822193835083127516731678572221238802166098453407630164682882935525218436603813085512708241277091854527685977207221053897324820130561643314068123988553770366752639282882496863723464232393200575380469472395611540054025378620632121930706305046121337931223919400455019933123105074011618578404982133491054618995760191821160557333912742516671040011160947984320796171641506977308127417499735071003059858344333881913939062363709318990447260331223717013381105034790989445327516754591683892724594515399623148791683167029913367507031985470787131623854495243560624896979476213771636831924863299636636058944536678944321222056908190581325656969912099702265071722836706582862156216582804854795310135079564625332880165639032142226252934920058008872557454191438995535026838229804672970220576221119953728352365540990806669723558671515697321813062160825160110713123390291719596097554574389649614652904586658567134680722130081400791003103313935554940246699709462391009246058361491168161804137102842500073438855458132756601759779467312360343006188524070317456966572450879685439049137769984241075875939480153144837560823120933862519675829648838914304001192816560892594041128942581955303651968531089368577768929628923240347530602288132665691855793659997049708738580119457839973717619442102443582950200022827410768414492330879903746258231619260560606941310230264971312309689002463935103995664072403481076663003215733454107610338357470301788528234117166814800191384153970325304780602553765204022849241470913450254753610644067720293930353412981675667696376491288408305267591234498386565851104532144818556743169694317876407396664726801827990984719245198783582543281035027626565704063705483455015474938888417552311050955904652615006425565528344161967899340876978165441912324586012624239484784635711518428882963474728319074498690287699637392527561831273758838323971650037592835500870128410533227477955483117701660035165941975587531808255727557681728781256627604803543315364251009906481592818399649592315928358542570900936455200819104613025312978332266669400982598618539295903453438426080802276958640242705500835323940260065018304665104284627311415237613756996713237393955996969010758200335310261468799643263422359818986885085326117182706135984670898253694724022571232844296600226928239039799120810706040657050692360605596679528347243874054127127443648065931825003026169301045125053541057574365757192150272485593211772002387967085910405088319296314547536724630128602977537776550379074377015133173812089341032159850170738825228595461724345816277115427832268642919791815900652794696861188957244694857985831018934641161924682803098634883504054610063793012244204023230242345124153931752730537794026040864310659514776913483551969578605453103967655833227988733710093489760067232155189942584642738006420755033625171823705443987274717158595267250071429875291386274793533183366066818266786868125931458112055951758240520356716504440007111841832811661462503060524716888749339841400049458688038088187254674942843964548345760074378885690094690882013767056492399421771932027250941874293432211734322227026893228557196232569936263822055692130341796735592700669207841220546693004438937870991395905320814634796992058163914787874805577273817177194847395347971823289964837230618811799252961608797303936459500253820698370836941549542962251008923507391038162520358591809130697312459053649565999008790847151165718437958368191760484785037562096788458721648556375379591180363307112692687845967625886277330020592476473174271744873084880888781183450090613269107107812090908014032378415082671416191448281707244602954908063083970970385292039581859950299736702318946371018011750961054457444530386131227671623544159221185753792510306438918141196446184538575669204423025317317873730380802133923433201190148948435950532607440274065393388800918193856502798943704360124579627234614216207867150377176458298183231730170824230158516246857853424193415632474004373425246436461500960813399568577964767048852340665792134981728068641517832340862285408851171798459041837707799264755503739346291172088609893391492546392012068517774920600897807027435539537592806080333106911811298821545091159212507811804075410077640689957160488734882067385143231999596769920352417667503634618353435722133388767561527613135455922475180264906090660446961625442366645024010416125431537880943073415150258265213549575955873526518686962774252280245952208439618861413625747540365660792868905139574266532212253986549353457126616521062178828724486033045861790618620120129907768103902377431061236361158832764811983524941231451741745617035763572146220079494172045371389909691052932672977198160837308662528206811348736330358418595934609487506956921984859774071532448688788436156873636017708600928666957002359175492941020388288465766127920424164211524146110077665854406609275487495798715046757813951167719537927772241632699916016343350527806062518512167158966571451107811163667137741820928165122251693471926622031072010643641582662858182499027640538634284875162992754958137583290691436985192342095604323334160327427787718271892662129579795668266298322298019730181139158096799602889985970445403725296480915053784363144458311719666490656792531737061950669472810373640100894061762717347401278096269973431504072101697748944258790039126551122805944277220272935851644506098621228741207745820419335210084476376116676991060799973389060832483397360857487585047437053441020408244987467066635199562163702802554092045082110440753719719404882914519084304142716299940207846894839073398188457238069786707634810820515214231070896306950118301465058188280076329489886955647772425027132618263624686565565564218394826563979961472963059732017011578960377461989552084687456989768700239222054862431677477093780246768997884734553875813503689754774121140746594170179272845268855935846602688341338810087430917814561998996128645780980741709034617847759347529403982241662182935060275173300535861632451864987434885554632186576982065450569949848959860124685177362034796530090552922837378666495034492145124441458247502033234127964375692880999334142530969927876843483564297531432696676951096190782492976396216392081137287881613691552494488253554864407004208833487163375119778182018427685861871527641863972873051540128047264596901956814456677512957468822358392204200266529558043275830939168803615962699114165452768901198141259270925116920689607820442634326880559270306313176374938422080355336485494579164388421920642677071355234727190227426213545379725951581471334628759127770365372791122834096373259981454254387729751578982681896186584059270494017305089111060959782597623780534673951872798182530365818374950570296985664918294930792924753077544727656037883076321350869053899707292476545442220810981443197798641477177467571566173190392868647530409556600337679495184489610455610853817393819401688020667807098413036994322162325579311864263146739597259494243323933669229713141322774880292260615136500909468310538516668538540659491844898593776552709616686300963222979379588600355967666413769745823537896581438524308486427925088788403333564749488299641995985781813702229670433619339139948638474799467249631126163467111418828999195822715672609474210663950367369533604816094296119307175125258363627438809006731652595918186741219340483378305341048410037232072394607012664948533007091071606572024465562582485095180535081038908160132190426984474637898847712475633397057001310094013437258104784058202419187101045841220042710290015129073335084823417387940552205703285431860665008315813938468085699710760034390264119080238805981266204180809633283838380482721123250982525950314147650912838148631595412957420126313578548614517176416994014960858025661286277621341432987332894310706563660025191322837560550840235950734325822631486324302428036838598717552573098871633426034309436842524809939738155653693362509524686017198520795457292650141889979577769969071350495693670309394201102687614922659511888843616670038057151407453843842951273707850391784860462442848540855551286847150712571965288639025242691663020115132301286515230024841009869332064088265319436588137063181561449588615391359899853860574675262610915074842337380917710161629596553365821832211259795169300823927876735394095428319001999603080837813105307964604387669399670718011867420603621501625988015106279801725345008314936718189181191451632885504340656860894844014526252219985395849766945744639715686008452872142872094798742777609153332696781375477476100188551507638647228878874681242336976457656794322237143016258580851469259031250844045526956461459254217795685621920129806654809795787731788929934557672747223297140149511493207202586814175895986255194395891729737593599511653767347655832410034422884707473544877295207133854408681386296203798412781520811886295852498441895143987754952871668024637217216419354716763350580528569695278020624730674076574043986971816220249527062095494831398455333170424624257604689809463422833769755842418806987062114195340170991921318114569340545193264843481703133330535444008762118783452056115037898008070379283049740267282913156671853068434111074577353954406510003939855568136729463837278684275847892665200862169298698314292032250952794044553058988795872015698701086603007593014833296337656765816150187664109630451429398128765394505639800595133424054774122919825913097366423466847705879781549968540234492106100380045031591954343793420130447518591915711804974695008312372211697741979142677068212410740017714056056591729699731138373895942085875359017592395261702707246221017970371787030074866056700779482388677375398824943773767799240256172139955933851088599933511034712219768825110529833640065932961851913690850923235927488842804399763060141144303728766555634836134383139655985084507570036079565702058274117155496939138778387557366165677111795264230626080214786310122412764376526019761802217462904058346064988305956638943031844399288496274417321780819256754232104711542746360524365144885011658106127940729367343621203542746980051996588194644979381188488159725290249456238361309656112599068924694970334025942557453346591330494095676559379793584467904589707972705688821622390861728317426970311481022039917175090833622401122899277881422535851732459915876333454481753391878590639132400844235190362667834907849219151128730914311039952109207081134339223818093661937645987717183411840187270930885957440641439905518799585764295072093392963655217749945199342273929145122166916975494852740202380292747370887070533464509101542848762262980956816100253164579048982087450940022163342366610643727314251630500489129689417503098589461446784354496387406990489725342126235957635408965810000695240021271970722532234635677647472939568129305625262792071888726816788755656282528280761483797244906238803283577398552896854471208985224091665183981623646936650565106750558063939999893838145231919141336422145452491112185880861837175364560033332477783143743487101005272871810783218654566715677211478360111758639673795487416209437357844881988203809544503340293913443462767978419654503306692353431002560997445098534302510067407641817699316228638657156997444959322049250711925307367357197614840381492488781672503894567371141418000908804206137476276618900113505145055020010321815224836648126174666944945512025620961151136019474809657390173804008731278761833493068387482467018304904539428922040365205819989721593498902988618075489495198182232539326122096361460191408079153801065479595844883060778809402536466452651842156872829139334381341994374583895398789718803327893847480039945085286100246545946371808274302317387797344253378840580180062036885445333950141831628929556508811360124135128147749376576976742535280576042010918198928900869268256208875277234653016961111031402778931312091686824996498635491343530524222728377854273996764345434236190401235162969037718730973496459441324626278464533723054766231309083425154773232682307347440593918033816219702005456413048935413246314201232387471953970192809259618917714520465285261816549831395303620733377006497905957157488461689996781969700548727583327065773976835990306794276725416392139862924868186648380167776589921519908155328889918099461827591868353709345073634092028210048884719223127052544303058536734859708860787849601042087705625802769835304060142961154235071467222099155165527280145203143219089078729105864190450948885564756689122459740719993577533115874703709422284084121773673687660135735919542443772640510739472396934388902700054967289653993124151454579904968021244088264586118961053968783750410724636488800668585648092302949562882933619639461303809018928966014252640549544142349500099036524948662384072411869406523300440382926189352570680558234300797018847713600304898903091436016103246221023031255285823562760497892485570433361994521553282312051196406173623594647979416587815183838787689728915875774291001806326317933064136322820056844479562942375430391039568836486790946029617538493341194216106795085230211069025552635637527746746849253564897039857033142021545383884800142554139518436702477136771328775473223452962948172555511208476009205786816428235560127312510686058686925397085042295104112908277138699537712538720869970490461515598025444255270097715648881384980912984807394425967800168291301906154952357579970298197641416143963385228996318886479249097459043021104174882595505701982919368387205397138098103705800487544856029028488052224906414043659736632005716763786462263104171981608284516021342495845553033507635905877693074673479753155165942990317711192692695050676354117457042114808802648249314143103140886846733950878945904127942072571444893908633660517442180130936795837275402465885454074521951019814621298198473617616217108317105210124827796477865180510168379018889747079062378649499381334691604861549225217551069396992220527562367915430925917173382209716906165539369728250965036481672409429505276307670644484232418779752675062214115906625029428887617383979429788365855017172499554704930133865015678303312233300822548857301401816974608649396452809620366498839439239736214670849210085090591103815236770554486165457019702437103680050897921633052089171632369451065172799612717576782177993263866741942542628223905412416192094577916919755925893088446287612415552437466837698301023556000402856900977547959964268023636631682617719496307201967165195589342129882112349289071304093397113695221223235822739857663579055937007920892949415960831257249601965354430784881576600010276686108332663608109094928026230642820696602272702379810938175484542477833177481865750122785195940813957149721768810433793465510530609790615751432650590275433599473463147411419101459987098874674745699578270370244126783449778671355813814069253539437429029505038582720430706502358428730333938546482685395033182951973122131568753987765738722388707298760450059241048784029105163632486220971153702510548673598166783676101977312787791701993746113540155867772673382454848109518201938453501776774723119756374079211955437925863362975944867543252155016374570680198999291325567928834602715901475958678270930764987982367592320622070277674762967030911767963725251949607495866383575666487870128669142886117998099419223458158329817328489171225260476683404106730302086718672853076348705709507844213695631740983569201314691001137591808562705780232859519032012860587586337108980918064503219298266000717271127986766503565353632836541239497015275283072505938555681889141582059152769454597352853661228088771584051645504833166826596653737519110310739266557170575713534617401631866264299859748775451923901567594814475660448063424971478261441547657435563150970807464615191284224459880358948637771026066010924144901091838555857818522291632809636843913329808453053645986333430737079459002030765639367127641371596754637467914573282147135037722646485213199277349636133165247189213863823575082162564237724117945823354707619506255474242471537247448357558288589138231212322833996340012236726292480993681808369519882086491025386106416439544375612769808371169356359850688667169104368014631238015007133690739523074123630926344938174926262804547070878760426408255340730058673381079322018477548496030305047516407428944059597648097523654597233335066048995468604886158120282058723893487726812269360329996994516417524068685771836901518819047670348957759429386288669557280215960648231998523968041552376483372425366993851424576401040954098969715224072133410165056130624135798505688079448507273194104812144569933792994183948825702836128815733178022422463728203354561642921191977017463211773379510975283946105520243554444041813386155936620399269956867828791006347815263158842374811771850379218333912904638449764314727400421893629744989032203651698230149023057296676023132894011695843264017603458914245170891653197186578533527627796322745941038026570986906739122363444506572992939527845343214351162718154826614339335245025374888907007010540783583325277032629831396452560598110051630243439295950598306007418474222235120386264386633769586959725738878708337314828400185108737903176125965786053325074891153580373777206594905126266425100164485454734391808506174472418486154051708638198795469684327387759691452147945735574000531387371409040345053409850363823232631017982355697294145743205285833109952732259419006640616691879706221600027872205839185968243711664913620652950074658566096575673060200280042047158198474044738026667148795363024572189571280637160815553644128456395458176945253769618347490878998872734026012213101478821138437091449785433332518635182003130230090185893292779597929994375897533481437063161083591091277258499041466755302151435106174152751727058436009746431981888934363818404781339801058343236582795745240615841005237059077002431754784056899514839995626403352152643300301918739868875981349128810023593425522920062003616548239861405169012326752388865792242393379237597532373116492790359101368499669231490546928704900418132950875049277185325016899311403609371206604294079150596301095851249755254344860843522298179317081250391669124179727583601557597715091829761756421486233604255170621903356575525888621335591925261459802870006796189523003404831034394290560480760787800618208924280821227771226519191765553547167090566035589042643721481852833728296471420168580173473273552256205680783169737557769951157558319654708209337855881874462086512514207864918236643383083186375901077082718978357162265484841780774338296256386624068834107894015512587631077055319337451242682891354219269854733396979311314160994915760587789193450908289403077597877508462634787371086863147176762143648058286836432441949811046020528795558287376466952615258225006062496716683932647256423671236620093266453921562992889155011349901146357578517980367338418832302169215258958916287874573115837925402567760814936900453993277704072766962040540997889869935734491058628196553162602229049493046404969800713594226031407225950993024691258799420277669515886584154611298795367644246628328306855456395401977315064627200232568743349492351588626123482234112565748753725767022217894181309949797181932366212959633987928641016735887537964804482862949579657205779977057797497679076005370538119491401440843578296128244537541431587708625060346206859770009360826509158496903135731600512866576246094035017829701742374652388761894208179771012167492593756063854616791726944860929746770836419383315518355330234708452978666022863261574856370757487801205865480885741648284411625040554257104065770680837120111660714578494348462495442220798847333724358590693733530846517978303479587913054507738600167682837514434850908222276212915371243036463739646454626963171699136509419417983238256191230000916324601482799009369315364851331594285119664002597257067167934410513357191820321056597099932724398029548942205527719785967938808424322693305197192513326295110343190706732762470614055825211879974227820046860087291461474678200413283508075172900454305284471946514751592100392612134144939258565651665661175124737848215343094477271123646657453827650770172675339937346494001137123994981696086711171200295991455905842591111898405591458637611351988020792394956916644715933999826444579097430480057917746158192738234065430126841732764969995571782376699598610649787984185946027346164909596053092805851135352985037525258165686161323649538680659234626367168313422457172101662216347027739650808708062306421921213316803790753450085698533501220457984412300159332273580289390008175850375265292633951864208063369479031936603315965193715950409067056993334145988686585853586351892341938416224250610298208091581004278808056303715263716783062467291445837322590530129055500609318293772643575143263754349044527315434837350926513683307519439792540262940693221709653109158260767026618927194313124359774782620076191578479825672208950294579425504722547989715890141169055054529493775098280842350467308328810734677555390665331747760760386998502449523928079347556775636973529370668847015544635313049630768066409524507713208020545348758127788587779824006682837019537879244227621794618694650923012457541069636195488851907554632993138329719037528590149357698864858767326362460298927795695592916119393063457266444753070027554897139713011890486361088408163096389458883171641783534895730084250958171384809924413775781805776924382291033391498087100327884250773369684363638820687356116347927299756298475377591292161333235011181342212363672312263366472167871123982031318892726906090376078569295498114244908076672530149024496835408614029391760331093262666389379526621965896467601744514419914019806499655830924829312449836143239160280475196174041299762418532852200098836633059370361505151940881322797781463197075195644910048289369041841443626846206653253886001445912853373357713270130517051362131421148417223441425879236427950454973433225309345290466479661277070829765110915295602698515893164966504525061421690027032428540500086664503446179639238121527643288315023517739997987149689917406046516910279706430767608060403174176394487089807068006197354014983933798995245505532345452740002955896385292711045997922472835881213854127452976365986082465536506855688218611069247045732549034593038012432280477654146032177240237373277650497605631168101575980118804402479844899175114464371434873380045451721647445035657800317061982482066706896464550360722821088444176759534646402668773184696070337373234756873371851124550403119424152477142573380357872975341082475640667475314834796887785574435109521365152120075167604566447978705198433627106013027200815978542398536640801950908954638054810128131865588901737214067061512720625055893445138457438272851188793474647930183737958429260457057206988830953479652983648229464658241656591199707941556179464896868733459006006118829409368029486323579973103593040491873514111793654788473108535545226492474639671453144560283541727798300530872461836630108599427712528352942847398399242872938750430813002243152273768053195544351491059985839184372467296230404855387091273958541659930831225786750545434273672494475847648103038474931625662613613884109625881021080565382708198994194523452760641424469530455534940231388910068817458785006223239069796517472942284420305338399520251938556057911043782369000612891817667934050726641559931099558286565868061422319903819159956714945755772336845630387350779525735884378345658007864215679595678967279747099838237742663775211263996743074825505773370924533784867518706874353391008026835679404635456429045419883644394429182121704332526154577190029410073909567780553140774826767211052900446810205330058442812099632939501881370140486372921343499847669706142505227319910598544823768832739867657488272102901149756014931199462836037977401246944604940302971321877813939226629248226322259307022820631958619790859743701627899979516837292298047033566702390156612028090386161665956168219022904178958734369268587609140675465178641563388807872202916751649363504714727443735112560763356901777808907591964248427753718723982047876671766444544813290537685699719253514054265330643545089300688278478831383799968301198606620542263357160658201288190803789167826584433350151503990805809724436922909714747921318181784811778268207292485372728912148959954142753297822715646037612890753847851242469059079574470000206425869826063908939028372240803063411767241189663442746098965245726854278645144133843254018142722339729944706189640547926438895242098758059785222750974378238931592390604302400724084821634859467472779700671384675912355079180871054391411394121790407825174070229995097081023764783622936233071555391520422355384144939469557324582408141142156220745158973970143628224349772834115556129830509860526308255816439316410761578807159571597795175948816419015581040633982041420083402477699642033811697922445259030044238685091557404216855598102917693591262457165169996676176270336519820522443955327178603104103336020034695552474390083204746777028679097400417523487743407746449773909726100832101660735785946965210808146434867935102672521966295269045147408686168878051940714759752131676765962815275343688983200757727985338585329905331047016935943203333377056045091273736254067388620865157913188664236594011747057289474673679444481974177821475950690964376223421461758455340563822380760963883874911200896786235688903379460892645842048433911388412989560856113431384109029425503804690811289387546718517057591299220638287600574508428227332625263884755235130124549607903387468085724987541445604467709571369931714908429954091871024327335915429901661593347812426428692886424443487399736321188606121669147332769373314053294494201480145225964148598830629790833688868744199356128907313484449912875376567746719337567784473485781537614715646373375015188589085256372234014931659712696529291238756022390378218743162151897401122861682011651413834173082426836198100015950736867726765250638700494679279827860274868265424529841147469453398727196367792083862095868228208962296031104204730475433350480708923384928325104076441776672685564125264828391859387660312271179099648976215989765341580067288581643805301880236187901660627703323049648426217274139023667298670533326531582829739569045681605094167227855391840964334051769201451279336645569581694668418488975187358446371041940935909881597230715064322781187169288367869783852537074352186140329383652648681665097290887186037365049544891114092638209336313180172013940560376433600653000999262778217821889323291515970396398053744251026844002435114408690009289664348722916846256847823975616361570329648440503592638682455621039729371776403795224199483807748265732348479403616597943894763596416357682949787980790902419872985336711982688404751458867089988078839582435590443276760206286407403212321647775339475476625915889436857507785177793451771097524352124164710938011118969623605409125848224363353217825391858981444996651123296450726463200279044665129286264354294299184525240607171686906832475069186144613481014801991942674572625152794291790252106837463977467697289850555089132424450988474292537834648306283626910220284505257175666193667450696558698365519061668725133447913718087229940104611465586248375841030262961919629334800991737163775186030693106814916105212383696617968825511011498350240462095683020934074356054396882047857888735706082473834686704028907838239278605203879176645235265628906659572407725857647489002042321631886136168024788823020692708720369879636086196161268368990376696862089521436330309738924336085872379625179771939423484377823532681366717226610461252652026411827540803626910004107762363617557697385734568720896116629487446047817529412357837454734725911199378431329481711597236198356934428256981759661350641142258230056569496060347900588590802077936106140712051535459840763757729554946532244735617315475444603017997425945695963680176586081845504284228935755043215438574542638942079942310161816593667831828366414138725034008319104601940528929217511897424498178625935080694990409698521975953716842312713654356807502665424578061267123248080283045649252000968399705820205779150401384742524215794820660186745038938341299688583241347935055455804082204591995888111076387810112347392042184062984948306346796667637219751814551708466790772158150725879042721606878377927133569704761935562151117347408883472675670954414621193515291706996828801166448679096334271244949014931214817849673471819216587006167830049467802532541253689116400190105509678733202878682468348417580858741614766386095881033474019768210945016506270142269175494176478156418504948701345240353419622955515446904171205399690181694841997235839760646163905810590452823576971000106630535034674046281414919663099460774337649368149694623214694249860493506696760531773957858028155116914685531556974111818258760493815861092776928178180749461259341400117853018831479752441965724586438928967949194395391240953820363206571247763934683889239458334882501042532024772041565618918008486294526107502987462241925063257371779460985840179218916978526206141710914560626116768991466584288747956541023870093771236264316658930518922480466737515580396975736376173429449860871096463098758128038077768578729121841405417212578256327502772611482300085314700109194894812556598794841006386498497764075124853225798395212689763890969389787507526486725243917006899543584178145952870834195146209956803289468165415399504729668934442414292598888207026508949912783636943017218641469982455947541909107528269111366059978029714650223642739206309174633933468864584690037252692552587218726959367783020024071071141685799850945876603077415060558707453396799025917680269166999763141611210812684366977205552066314106092898712974529658193292503407012426419600658929125137241905219638465195912150768030587662397676583921644352988813890485753984824109963703839804682704540747603635631915083630898864236692543113548225564665421839551163299147984703646668591644612485334424735031784696461654811493710672960159501002758837713038440698995869123203420559877343632861793560348573788529358903589238158107997922320899231186488549115430573302508689507206280332240125629925778243019177689705135834334737210184273390105290574854842211835427803772567660904579498584124800334805286474915440055939772697784556416005143073165333317733979577590584946465245074484137164948720280341139768709310682532380931767036750360561645526466548143515486643384043719521252361802393043718095389504778711167516680611510343465001063436585139742060128002935771325780173536706015298404775574644496830641630351157122401596047536925843577770131321501459822243057925473344618704593291181676170387154393145235145849552617806030226254786919908763851392472406010875950583490010153909620519961874008000944864985973711371850900826431502870034757933997482813807525842749955211929953846177791994333091681509267173032819211341763290454923038439323720117742894805173242814593243750576954253026959455837740822267532871171355826662395025690290118115761337608592098360731510994500951397962999124616947532110106913186091429308281760458670786510629313128812587931222538172222007103411910369804469530387464747355523073822051712923133145975919705622769007762893454435505915662258238513551561157161299838375707617038304774062096675392186759447014831407968614819868628868714543693640261162219637030473234225233573580750067928933127460277300936636831887014505952970264671286343023020053365708336616113803465223843581365843106177645295503553265813610556716604360511768115667643731473178121733104869528733388810128151487393727881939551940217305049455668542657181293924774205637058462166890741417909493855892079261887153127249087075506039000055738089187970615404951042492795159836477020796872904267245882088609100641249986205570530414093154572691880708240554443343326132208795276453519521684879038094715364939500188397691749943742245848675914375202934409417985030519258145859148437038036961088112501640793442448838803125802822935677691645603605505827814283701382899671120858685369599783599171813488593936142159113258196039406725768077439711775556339176368923151024650135618160869063369613454131280105853249308282271733077008693495539681121159235273110917007507163303608137244559768569196151414609104326860718561604406474888553491810060853983804626479290168187383396312965083289584810257869659168538941479018999797823168857351752871476658603156772849784676797868518194821153283148075636255367778344868605608450425359408495479525046746714190970214080848764856514057702367488641935939708771127763079546786613752185364945370708827816216399028281491253607921845108571470686660141416871219967836876931163616248590421408394370373209975955241897672998100415545323298404355523294045965921830707277566788891241279022344255500201861477428411147014825618308679359379529990220058744786977166777473634476359075654513097818726899009891904809398543871934192507046893251943529402462486397493950068138510063005335184552289140499023767458144878009845265584928959431875210900117000527835647806943892574054248756164091277605998271837046990578800653369681789717730248583702069411144363666262518687865603006867901423502057278931862437858440645690063500229960421710742608749107184625007593699276083551920063215970808446564995084150366598148130027557626930127461984895695157693875270075397591657316586750418982815504532779335737274822895205985635624349476725871397161055572952004646117182699481408885990332597559536885606873918426609059756713979813964524756609370736321359237823345139090555497282096177993831399889716405984782826772309252756624129442336425468764049706873924494034157001405800680164138382532997058474736506936377693441033830548658442674525074517602000578075676624480167100322620564377209427352318327078551788007862751814115126687472166433289612169081389469994959675078134103162217156538270318917373164968357848696790916651277021093958735882592333941435463687340668627729733246345323840354822842124371463991588085240719719371287158936165177954545323240024342946998140318715792085749894116967549951854109924915203656209423100008562907407534959203406471004374639137473365052207452109906816994525559742552456124258494615189083410501436193324030438825220617547686612886045660573583703072914650535583569476239930868608894694444360306105731065172000873340959083177499040639877903805954149771346347915581068732458460154540598706335390686953843777419206733831128241678159691167875989126688129408142005090851342149520105997719699360412115033382363076747458553431326196486958024965087560520905698296788232939563710130247343748426093386441408658035283616464356683667566349022567960688286188999719050611739459221874730131828182075055555269116534201791690072910128535139129089840898343940974071220345009343628524483379108811468114919119782122431449834591426641113130219625983895146396377973146209668203963779602740718953984098707877444058699383226849266469599195558782273637223170224694774991256436258295445490971829537133617163110580197702789310998069660209324714143239235763164840308418834180939123442293579969748874127105932482766025037042003926614237915777826991630929448487644867902429008274045176272265732034449879224344993398459419046211266374463671377610685754382109496398772437553014475438397369339981955871217508236243167913983874323736467412630307485942209158660128803500488086599214117420487253918054391095601350515750063089036499603949021058421173563071489950138683916604015936461778564226453582150495810909205402616882243373115640011268731397042542106650667694859695510503806630777954966799770020584754549175872637036175415476566790755127987511976291426119566606787049563146970807159756081293060330823137634306823148669451209104779428517550063521519238061985618924431738867878119663593772409756537030359006339800304095221065084059257478485416061942746731095316406618013993310389674545052391888237464226196739287697549339093369667090549604725565352910787777885419959152420721292405744581821755291319055398422213665726286425997279726495095602383386875035691938841200514606285706283695195091442301446181163793923829596772250877642613505864066754242996268714895189927700745745946220608801961740291142418307678983393574082237235086196044352151974049181295948017150748106737592046989929155277436169831061535412246466915730059652614945909949555383954851385627170275410269203888581962021571433193662927346149828145698786341421022499507089965785632504088947618438585526682667538543341169138873624963265084805231337708065751945948063701787372947433871420526567586063281531759772560536974969337773405235230099479364655917628515158376541444696998568606282322448772481649229936849654613080115135982412584954355602079260044135638809161720655896100497375198337261587921681797972588952086630599392926765180640660173749708825114944654265114224514337242298734543540036183662450050043978266203786627070989395712556125496626650640442420676470825801854613229597771999477146079018568597311791651293126610667639620861671077247328268327520766931707075072783371668368387776497658651752937185419838608191724789427306344155589652107753735162539984401299954512395444071799537947519301058909595432176969356471949066702172761389899692805990463027434174066415540148585336701685026113796002842393579986350862879084044810531793286562652409091051662424875392879290886823244755725107866612672026633112752687836039354426381775395231888071197449378018705586782811329539351672158750635913631820866248208158298047206454990037783108231439586834748365253994918345240918000150350149688601996089437638917143422367045558921500083552377255949627739558059395193689736979435716670770873189008577450798460710895959792705999082453719909126135618874517417160795643660683403018837643920358138680802463535009765457891059204567659906147158502605547806989310640836566081568024386503388727682920833398553565262952433444199268515542493674498547888458698929168033123645415502701970920279857026124079654837344067929270517865815454119991048081028823714324686959430048702680743203628368930603259613166255274480835013626395708769852466807021827942894611300087488695050757059591945042782509436080330430718890652046126348740164410521599684129822123026903550219088024970334983506317598340934651640591918377022565792360691746482222827006125248112435118160028178497976411165436587685133492540978554292134107790568906125504601085344651477565215275239667124843939671732840457859171130218790466637751206752992012389256643624471791581272379562684858328955294185593210203659404838910186806435191047927869460883671655406378868792663487765361602810565991270183660618994579827444188016875184837820024188650116232352013053762903630387323446953100664186367059731323730288282517031768490948513498118617482422533515872309727107660934406225591631654024291869324627854182322786260133558477405411967602909603799600469911835752831715608780759868158371132134573782367085686503682088674053782536968651390521716782959180110216267885628609568595249179192474249370793079421197225684231096505585158682229781685973628509344199858631583896409684748862233071508379840121921607202434374392989383017206262959338970066581550620040460154859569097734964636907475639427399385315694708909288634867942362374248186037928704989734681557844127020850915825188138851419828875135451639050119653417203539201623659269399351607700489341668411017539007338633099955292632592170180310066388958386027930829696532811869822228995189494171512094334702926175305405829601919358453984812778626252042643621467165675367067570521114551508730364617728483726248645728874005582673168239542683796259955651210917142564755106270495333875910520299351674397126041419202919718712510342678966424584324462855961646430107997348033357753483033295709191019833932873279476262851699823947195639281316108238729368526829644876062959468632849936854150593026205486145082656408659285826030429975202918917066317200143853767744428904439017803731439964229764634173351429703965421397732505596113603162384957120819629709576834802838573308425943569186003073373960788090819720964596723012514417361687497771655038727564848149502262764180023948913681440238409497385543649183772771907179865606823349370178408735880036925250662776228222800080715522696486165104273065092585398894728838492586438933555050229152069708003866373235296547740685631702234782657032468344625207036403417677712907650792458685690562098676987013562451711748051634559480133172068957501978852664411534191006891845388191965332289514926157184483937576204292149641834021407583759084357700748752946843217833722007829228992965370134450793536143590768850461068471502243706673017427077243261258679181255308895960501761711468372261127578922158460560597967826663218779679972887479855667078959054086845993081122786149037280708034599108107963407909504991038653998259550145881582574038069653334537385779876374039830743947189216251195965482505881179659225044071732915590728039781483119376211090007606236932164351306053714487429422829305230918985914880384392479976937044971998542521720115957096596235389302039707068973443115592989522219342389002598191168788337561898561862773979494016253754673478880243633274654739317443884750163961863017514809230519074445824399323358062414896935947920719712747623569251404263672432421622139791324344267158950408763640391848982159953695274540329559824180021077321822244481216872064385422834966250172274960885503596041161189092671252145087872801747468883138880093662365424505276524843104599603229596118575514300942414658642132102147489847633657846636794541854904414354797592426747599158040845123807283634044605511416855888975353942599591993228472631881108816152438190474873880712949468228000408540192966916218600661189681775034286336059352522752050258800233022910201823937805725536476316598401798645579835130450877399557904355217153627639141852794306072561488576829136545514172942070738573459480132696615336958214114441405746666611256139516460058372906413714628794000074502186058716349522278418339214260398846014620712604473473832936231813011869428060258551864108339390819436667693662899270773520129531225821958311261111215316153321477235668225611431179067569840714686810807711222597733438587629516573899032491014783064350322090967882740544571484754566694530805795836719063205566517194260230892457993277673120365588525909207827001955951683090511645518554353201606853520082846497341439766352628343685570854009493181481743543372469954760285834092693076908679490474147167397647169911024451909040597620239676649377675566991482344112953301951118018554362070332530985351196962294409113256019954921421896650055070488483717577729145564534289490466765580451554293835603007391533862206142518173482734943384789391917212410449396985462981417570289127541751000935945091917250193950978737811776720066353232799010642362421448273873084952727505853024516296968692315754178575581548074284716579648671854929465403864018200259274668030787970574467964201240123769778839126939717837516762548519476048016633446697213549830626347110002911137773017922076589968637326243291873222059296720725334581817084529452892367215608972242597857927266673414884352317104128841906861352270884911738844142484609964080111632973459997002714434470761886549770247040820936300246628540880122077090754587262862181084059430098422332693735534720439195579321028075660485463896754829407937298361159994703373494174354617558226642847906457591808863639756024309334034127567329084425990289894964593031265391097306973923213051318880038864722245439977693206612044149722531745310855331945363316545650590911387200248865463050542873992454172977633838629855101319267184578485807273904877317303479565005410029596470033708066598077887457987200260139496203557696193222980966889445629150965799161796621123066241225002306959378452162682853569408687641296986749287493012333394476282538688293019242031385882679514846667007468237804177382187830139531118125639099316504334627536204080612217585668872490578241050471594294653186344398048223963224547097042166088493914129527772869093783991653598704670083238580333632615570550202740388672100607070482268210519039346071223037912535232998585504402725429442579980700591776419792996536078256277841764918231691011116776807169804221751883059460002194876690909993082101069220406312131696885719417209317955137624497070559999557749678229037172099230683743075459453640776691948510650937828033965513115557404020186032180564216550590876466809502561106795239991947421763257285694925914568759524219356635164395895138948046526161273921730070256748279687603177695749116331557239837948616330553016924987755970735416971905731344166246161766332325070882557005517156814331146312781733266341896118165776891370691719828133933725362620597491206580713634604725588215005563841677976350608064422062866356492074447894179362571943744353220783973930031347839144429840079665023268655350009415916557142356970820217370430969837179901568115318982154440545099319206879038562990657016454559212795710899160084485648178359701722783579125615955832687615709467893086835274696670901781451681206960210406256519729165637830005149097265749615727185249083591866383388928374773929519939063306106109597088642588823348460715654422154781534504448071445058950010154950608516911353948944671027053611432581308288689358856565085902043885722275408949740827359500586253453801335084171363895274167128979611500808729210597443957658129938912379890979971389933960087343086525721554556431686912492024841907520181287422430794372547496841309144533715365741614757985434977632656296333081095069071531578101481158907544554517018902905269773174726391374473886072767590624575455902851190512392715382500111386168800463365289399594678673273784625755449059136090752869298873550387313256041644320608383231533044184800699360616286689954893815754453080679497376398365700645484963408507464619826114764585243112094227119451199703245221511257630110401738558129770194078481587634575176189174911633237707715297706691858778147176771391986422679347898563690417457093266881869213827873373649801321825480813747913452885222529921439904808490575816960467153778784605366479759131637348508512956051795614418143393374730146640454934366130096890586556696719754533354009904058999138014283170986397771814179933734462420663143268440555575948332615900328724536423888012267108009111249724217301050120896975924758467959428226212060440132562429829612595481901928590226761408376456691839378411289084512407783436924057674590336321318493819990522244524947061359305439281182667818916435864648205370838227293839513376594699859889638858148368329972736400878259805037173386827874222252519338819989733731767954825904107974371099384389372968175896775406181407348853324230570428711945413451185357053728405712023174954725862947832865543651535913333771043521381013305249008332433564542564224226454084732038949106718668187795404309449104527239616957632584423585299468428637218570858213612827294135240007177506714641656089056758766363727235056016712176162159359129913927027975131197268314103496829679747839434243833766463298931943094636805887709537990203506293799162533195910078209742336126146933650218922137351205160676734632013651844615149829237212137430785674522993187256729344786175009203076775596672880870657467100418897343461675635669571512301428352493022295002401949406872789027373022616913679194716209584751253485920382285615521384325425732568799522295470436070854070754351114857944433113192669985835883767492485984685477860891916145253077033942261612672013422983081129858433986578223860010278303848791347371176515240308792137667430031429538568414676246530787863706447039766847047278253798040060597016225330420112178786377360268498633602495261215783519026421192763989602481526299936819784725289568399633238913166655183795023168150529400928234326007691544189420795080267386235105780620975651566277564490116977138948158496491769961693886340500602092380272584530706695003426022307252298250034834563009377774026923748165312926553838058857843296163285698419985253072585582382918097061037113432711621081069931948130827102773096890550471089454351172856761772956833504689131141902531950567870052313878572850350909402293059643272835729920907397620002703322516509115111095097209846265707562820376944905684478556888013790473790691999077343403217221112085839091138322302147363803042789100747674073522653285626280447361315874641745082733611453428149251545688084757807531391951496886998876520217998834681197837691340218415754586852569073831033108913229727430798087526909787158808847624545556792955183864395832281316267719846959821326693702770272258471409850378443635185961398675791893663084336755548888188805648099926272200480102606483820410668044716378852362452885669162924968844391807349436614790617090060358416683445655478473026933443403428393815318513033044114227132818634774478535032898874718332666783450009074819734159974934122075047573220689697160112574235500752043828513206336787181449104644646701313292930640693907963086599439307525440957165194974136384834540043363881612432508924694048866362063250380850960094533027835551281685931410671210011522270035423318885410815716815327591916692399564465687803044880143889562735900232570792905951836805125264386648531643826300957102979750207472254368199984494716301537144899919465767293018904730392470588974215841479051812280826613471894595295358415510247245498015180622559918382606617433781721803287261087935710376151267479505064635533331952912857393091431194379394079960513843923975010890540618919494003902000854154623097380999512678791924317786830752938783245680229568475646799384287733635258728681645853797573611416288803362274794083842757694810160356688372366686179115097711474812423471828317136112666832920829932605767590724374305352117874132469522845888187465582362016613778160781194390255876593847795505816704424940363207459456482468949308062011370194193302996227383596692183493005715041144507711153823218710452854261306758570450140381793901057474854770525138162907251622334437312527418730496407769494777195088722499497174540785990210256184145847813207966121569048930540987672010502555610751926323911787194328597619963461458024678091476769796270154464393399062798922492755905915332056345996632076578239129537416715731756702777930271388642504795038273711137667353111449911977178050515092489307729106698280902982047500079810555914046714096388682345050927178004390339296537330181597442050778848652626503665229889402394793546843732311345577750504992451780087678352492153870340578386105350146493000633377788112471998573680397184318835858025568844706818982234494586409618330455903151649090604415724554201523142875986314315924738369489936933732747039150776779210435981006258845370339798482497321350468025899838040328225285871765090369070759161395791991716192646920151554029322108840762154053530603696530591569884093165891439300473072848399967343759662347733071665870146562584237078206451766134189224164270729617890191441165420854232997589066190266473147177028867691474056274394512891229005704444007169712545656153298899327818504953744806270958831254352561315497973578099772178772173165737895479488400911341556622273034258932546259736359091253704305750668001169750760590957457693128138022070578089476236598691762562449014985631602911586637551254272369828814353524906334100999399603153407148311667758747595649003843205893170987352701568410365248679955048946435150254783693910928721546760644854759710298954572073212098401008175297861436810463658799902151883975495791830336502578444975634829211626200390884612060622733383060331132216180773209652366343450867868454768581436657524567480020722641294613615967732569987779146780543162623569145449496162505856221531472613011543034085295822393020699950189011220087734797141812000260998085440999593593559726856323120393356600597849756974594025300854903871988559230115640862588215086053578627959693832799701379137082801939031194511881373758854505539549493360264854888123793725422434009656693219996211831092792016416532685853625866542458709015623028861734454386394382815863015715761802508056737933522608502401673542423827449931819874719047511820248607369074831072645479488718053249441622397627701878172283174967290603113781849765141395600575962226796056118538144484129182241755745022736828807477920498770350836164284179087341650199878494915247617968662248481710157134891389959014031497623822819333681642971387479267910426626280753281213956127368830106200087427768603369677310257478654800945022259238374398724338492737643943899282676794458074216047358320006934064987859354117851682363867188493009839532757402727526085886937370939036041631162936899886018620487598047395009020705024832427965988936844334490065003776137888262065227564021308339079029800912753674167154503005771671103132222243812342548815206035965676719191806602455477786792247731721733455118276359666727273426616129934322333299508637702635899247017637310693512252956149528152198223742211527254573100810407914794904879870337313653891119894171697832504324099056977816328956084483951618823497681101076314652778860240009885680106670839939797731373284941743420627238827097273473642317548531330726688858939911370430833030265554277107092962514814269030047597811881111839221031321782726603361818625481196125224809591249509280970704338498236414455475280638870533854055539024690034029658114242307799180603057799134207030354784625393043420646729670543714374625957984753366875390096024692719670543713232539939517288574762974354303178770575357148498866164347218551143819374263978126479757650736615436614531862370729046009337819180832305059566379647518504257307415599690596916675024613613892002468023211027339586464226888034013719349170319387917924192853997343173233414761601889676348854076479544402832093683972677037049845609597036442231758231511119317836224748152505191002660720031350153743889763888444377076599154781800672731496753398327348438795326677106970232285859268494380775228883118275153191660623708600878448533909015464671766980656108382700575371326860581927412037865330979045123423431323549880155468362727309068423899087487199491304323706963075344116066897016704733579907427288751943942482204364977920550350147728450325463871886316439263026396652960304765670659455805272935249056995676249840110999512849219325781905269181401019044695793664887351102412109552675137699028444933563757848712919733770257033561390921336215175552712482151684223676648507725817470917492263802538549849624986699794870205587150722807357002866696548858072846148268523152443694140346434887561987789402624252930840609161425994963437526792154483188918597621775490183089218403437139923981555550237216468856362943329593527426102154208364063179775220035914837353643000381484010887570376743450731901036697608391863297942336688669711800503167466717161330911460823198108918798411281632043597683585622625177562935464235983868998730286654055819975078280130529386451502981010185430316414191352759562045691845897157374377613801966925365614284479169441575701027253716767241945866051726836186511261551726023472302967937007937588686040240335919168043590167910627335195133355757684309783959491334961330883753577350421046394764884349387864475500203754328957631396844001986336553944334344261080248519167189142085212601978814342354881350925773688715287393394342298163548918158615798967448693564495146712782309554756235991110226443703886983320223687860428702897705749402777477612165815426360201378897982136372700536363163288183394932932934648081788524752123029607388355856651411585366779731051611779906310028880634076832619734987772027649331017911004850033202164661498089071826708745506474869525913850682292788058882891338771271774534312548794632806907035771739237001551129838828861712288652986099704210935933352909975582055519631790807459455171678117347121646694455585792746380306196933180906224580264396004157007268212222799919122273634255296677802218470200513096535177387281067259709969728854963007071511410054611259712331899201312721096723390242018092048146609577418308537832853215710672991660967210123724620851783052882132502238567622525169896133926045015477496825466237303707541638679378773419862394231473947007836411104030930230549431286644930930153295611134050039480177423410628451150874149224882898133073515910578271614231172907893506148543456391104651470971173796915676289414835393408075640801306946213168405342576255787991767576459936243505326881776014847631077104429331312521848170752047194843502012650195402471501476423641931431717022975015994300048614016241580642154236654589691422951464842410326897846833482864321164124665859496616782345291858978678313744555354558721036320651417379703843572567134475097670087824804833667538158312037295805770667449222179540158851879629811898971237731097149995017569205120039651242196096475386088693738842150122327226317623658864948240330286563589799317735061463815293151776991924714670759756628634706921521242986108975286139216135237540548766024666770437195303172973529876263134692711286321871588530299278176041236302823019166640414791195207165727048764076643729288465726673773448831090379501801010107725457444120141709417282569958260959406356772087929749010504145801777468698876299259079692279258503008936070754728000881062119787066994679030834324910116005157816902494926166135588785453585795685332177340300675433256954639082573737205885049731205907621759028911005377396528558678978794432862591125116303179389653078652685785662894286866702368170543600144548271353157968592901823512473720422963339732314329081937508583594403361042572418208453814881898777690498507428758153700844186704045451997319844415846417646008111360869583963921863719080076498045995185586163892162087345966274453614002694804172963634831013895283569774758176343019314627554576580239760100184812745013205603083385661789785708494489841207807297548493330271747463857751190905387058323763885252458196114244598301778402972184579266918666495803154513060424389975041161807566533448156634983603026367521778659387381742479338068342261050537295291273690726936742461805835871077260600661372266993831512238241619650631009486326839039152224281939254211819670202326504402925702622448010702416884422289316036124456282048000409589408041548328133635877517775835197770131073109655947701810188692221623461928720563250444409942405579879743153210660904647555126841274424065663572971595419919902516224582606915305189298864186931117447219164620189100388265679141679142356492457468181451673299824473683785556827925578750069598638114546687156868485628544383314190455740879520893648676491333062991096239386241650923604298281253500000423467880077554723574720316751887608993700736661395353858031976148674979059878078190802945697619013173430827881226736814385155951031721534804008282622047751181038002806886701053273778975611111419907607459415409177536480978814254946147587906033018776863504701472140237582221555980491587345815441852123988600963093313033653016203965551312653062297929338659234692566295299580376708402346416553156810118878952034861811681623874835797266529839259098849286534864357868438042464102430987334642921215329577172249424081615293696742078865863197890971512334225833833641595353988777534128059457866210924523134210623883359230932482536055187714365648200981900548618384738222495102652958425474791072121269729807105241449735361057051567029459387185195760359720619271821233678581015284225242251442120175605950274984066910468759670731228438751763863909762702390896329875985160547676191518885610145733511644764665782138727521601620484334284907169780098613005091704666533667130457284758094568184140510412811563924853752440283148150971780151661575938135725038225988725593709277057098836897343969927534820929309650336601981814330174069505264674241031780602832334749214336914890320168488435389436496548920416242599984834341251124602746631629565250313828213992453184529058444959437974590451969970413242495698247029825567840829077622114256776984289527402905377873097020591926202614328925203579407289124812142233930177926033533774562637318909030875012081947771675662082419961132314545288531274828060444382922712273284406060111221945989252101804959590470645806335341376188720806901652273246091444141786640982921856348961051060527395833236738913115488938323576731058020932301063948449263815988220030996871548557636468646045337962183882377699222976320696530333436899956837771696099939586622493017142130885323512959529360578721006515156591264025363383502322919901124023123715410528894865359036199445172500409189242714412964698837514502732827895848638855908629311047599667938237037375061892673545743943544588627080578605877751534847028377661406330555723606710261002281473117794520379072449040236026227724678278874945345880358917146948041847902381899017612987561272141951152325146043021733474915913151744884454011633668897124052686517131120510916143896235817368074775801900908953079652306376635679532173770781071327206811148634756409594071865741363936788950941832302129194784471982494833927293112336644849124034489066340266761379645739668359073195262132972353038553863715968876222957526890877334864372822986965896265157855890406583112519949645005924471537586189833122598869798879961277217622029434218864506691183880787131377793662967809944655937976063363313323940388015398419964478881397733351822910594311717878275116536391406062074394531917318826653037977479545963029158160971802111507232828226967020386134479620511943412577051984882400764409825078374873055983631563519529025206315226863958777132747165915854248538561688669430309328366426303253291766848409294864475752155058158497190074465982772760790010990234932321945744069888906801257407631780972489758286424525920088869458938094408396056216008795788902333529868154287590327575380873741161014016495518573197223924805826626797150116428421980361925893722329068317940653436920093255324019105311414266508570922855809821370527812434290053458853194422366475971806173869060385053091878773783505969201488498293784111681051509756616533269069123678454200627022727276067479111972774011181536890794014513059526850359845615335747422306182427964234288565898357337743135912191520695591118124960133143408701671330112294037212056294924536678500211465605009226598810975001824496589462151300910735058477263493827544815995969703479611086021962472252006357610254200502668430941834585197207925494686954697523193522216902977023631376693732815754962615857370384384801520979107035725165549679208232241364520701928499639056013604874068074396224608069023672612829678546667208190011808073952734183555399881083938612100673616139972389068745515436247353967267586608239504590019614962349725288845852986207005646685322374517050399779700990016745778423456710836020869662194578724957414929644334845262905066283366946543963635366433578183955092909507510717827445415758326306483936012359524423187559124038187425958423723733180021044997956639602551988047885262237019770634421716756478871946027679458863039424561149637539884166339051402965679420550253565286646502513461523848443974605201487313229950520062638207454160538106680727021282454036405327127151955373618642108719247073749459381797738138109764655532691891389936564048414497584552510781279134832731043478161457252104867207086159211501213757840097040473737762562038414758512640286878048362323836900907004185652295823182382290194688471990735075693712462813397872228159172411483370994787172141605931178627559216914037720275224677814297666309513696384831532586167914172692927825592512531360955330095090668530472296125669497174011794328727462348389864794224252160638463152548919950153709761620217347721192946294174895507740093282120607229035363106136156454147581296311588854781128198820442405286148507073677397619805517074454679666669882063686731360719463595621010949540574101659217424797396818898244479401507195429588514496712187231879627144961372505408823532576797512659637419932959570579078263997437093210356703281368588273396485272377485863261793329401063242832233423190406670295133800775136221803648252528048770488745075919062874863928511359880415533526388101338065701589786591532796390001844838842033476988807976049215181499076081959992317764185366301934092858434608205533343269573776049235609604570631677885805854032558699723784628145443239201775438934349131113214444159466202184353460256077282608059321816190558567845348438625927163338882270034438397794091157179670335114778460842364523291131356888211877768293125955710480016618452221024475764864342803784952778777700602378995359917333567377588163035683200284265977457054996092819606804797446687822287925619406839404632726303481888388480540846239297208687229560178529502210097842727455206810544150900035950613649718290635216942450518482615095680020821595696357007702486872538616064760435529139228981757508268468161403898195179709092461659684948263311228025442145435598831519777050010275127487272605798535722720101654058485418782065255229755235197850726459562926100948426038044604146313519344915616739008460977752049878296957264837941551791753125631098642556222594241351805070845504342800562689847502105556840004802562821038586021654565152499040916049973422637718241862100564401062013867552634520431489471025030547604937844740089656700553783477554255980890503832780728326835027515491151772999175634381442205189093722682542697440879297977950242266633380536489436002368447256108342634644732886618325529209193381488330882436592911858498343019120542540249791447483483072484120270052004919610888798825757105076794710819802108415230443604869507239507375977240042363051106658023300023836234924780536677005386596683529113916098757500145168204258050134079222954427540583430257246534223997141806458824089641015203576266538498832934427847856691168070450274480312791732807253886392327264766776130289564150514767139126915383869641018945380813898789395892205196142018556086054161142991419746503475579402186905303473280148872847475772786903347954782044284966206418805971833200313500467131959430506066869670262599728766070647839416940607546156872864664870523347948464580395103223240062437364160909883075530240451726792399398847701130608289047670533417661128011693382956794550735580537188931286572182654779724683702830570938733527442816886787907745627625711127864696529021367781279647136669612074008257813574312838573984146933847212018568294289678390445273664557498482910573653048973668039419743722300981705122214476924701545190921347726938091673231171725716277291006634053973606897289979041810879112347053909299917622052266483488516191645177059983447373443721569437297754904353346856807075282960575647225769328418383034588499976043347331125544364610512660453219039283278436653090899898147804855160680130333997869235686191092328762336254895108012061973898126982117613249415759788453378677225685151206657705846753326986988937184853354884983944398913130295640679112902988636552683449891890581830012381840328314174115750901434136725922561013334542012879979633270821845553767627769009564372556244343126949495930117244792368045310004847235862772587763848129238665909988377379982588487529498193829277999512933721658794866198433130524535315600564190936096190962911232743265379261959498760301019936846501780841134290071762470270427405181213810078531511174672057998005113956734332814702876046704509331260631693562800765498830891740297045762070209741002671369963700770478977312177747943117877579140886025240933053662691794213172501264693857258661310421423908395030102708828921988002586553497215866556473249045619473629313231864721716643671855216049158466422905236888053826613276484926653271501515085841696073247178001888461595088823585088980378063816684580062869561458288810633473245596353316092398950864394517923710082685832893252840146030871521258683630650744711592658623920289003552786157300256784867703116820761267713039304792647525761864039384337152066179159688603919593619841699623089563964544546306823656090604542117573406888898442352173919301939597196361669224722684728873455746478337408168958016570818854119633846323113461055661208432075250140464259982973834457659281094760101142691666021783995392098602374670373327702594819318342144031765404640595985787432392338556717406718622709269077458217547766974073763643369530767026576878357602962921100610475168504050542615372327139036982894167223285185724213944473002189678527846284066639327875750092340940242625168780431742953636249465159223573978218609055160750025740297513470875601265641553971610516887407083193316609378940232243319658516786983392241226172771536765838034406323528525170543762978964231997505314902437934326182922482574343468053969375984784310076171539238129059744224901365621268904615543533645745697019227675704286346887465741336576103448052371362521701480254335997611501570361452939638371800476679445362645489060338517001589239703636753151151927929407035727547923160659701904527163853493494674821209748011449820331548130555495976239779412324653378864936262911009079431765077710151795424021409765977235371389361963662929559913403318050534813354130409032216188455455391928518902487517252674110670637020513779616535033538122317875393129619290395590824924268739710504266439610408653644590984412525341606285807861938606241617837382383192203051795744423337930716454103112361770539674644167057578556555721259865122543945407500168547617238252736096837367489925892498179309367734936635518979672927654860478251999456270815298066434273361442101312144488621155403508602141366192912386474228192460711818859261787409104872308592402652314224121654514232573667080380910840293937393011001641097431810970294603524924268869010107753393874956878858963413334578401864855499189831729898627362702339286253306613504419069362340730697367818389448178930620604759190203658837990194060168620071709007876455823852393120153446326537468894412744778309765014517215416828791850015790958031809244491974262063809086812143107627347833636892204936990909817448093536322925462495449039066332575446892832526894311520519736201246264727966282248637935192974090561490905679192469264854463640850912096889568085363160310774829215676788149991614098317487039732499900898361438740872523604814845674627449957129498440269290026455818247382445692074752846745668917367715702131768941363239268144447341500394929436469355365249514398930217169894562343812228558774386626894128366714662604749155857728634496784968023003790083201075503754922043531111115809699650488989559598577317390308336236336838938940794699256581453500945771084496041416157135451925844394168715230646035412120745724308742450743500825472389175841853495834030130860535258111668562107293837055940443283128418816153669943923204696371168221296008075616653949157061121224680156841896910489591131988710940572289861554402301279776640326812962152187379042517006543616096397168809295722303338758909782616627907734469835665663382455233525461367128774010478374805052135814985787898556584135540941423648822477907458540862559931372598848751611430849690047206892511690806631948581484141762851280830865222954456564013193195871147621705568602456374757841143389265973236708864569982798144987703773196574818219119765826857540248368148528816989453032407385202731996185882106895882104083277103892335229659853686443042347438959659026969355831935256404009151646910627782482898083998743864986425466034464494028890192465137966969340597655914101383221853762137207185082797465926421974966006210495097536315537222526135253965954010063217622882831613577886055940876669013809810297372224285331047064466472955324298225079409403252525252384521814193040017573942710428382354126627089665146531431055707832550330864586627901541754533851111615054963095317268589772171775666097055606973728785076454215640504955145517703847430165183283576243367355645389616601197902116170144872082067695396357297610887608459102242030147537475982335421767792897055640138288380336453136922512572723237964748581701193478420014390138091989787029845148205081211686577319560128068153048347195973791847807164978529511520360310072931999304069752949098442451953696740606229260632993674305013996707342463451699770653339417087412677308118820011381151322317936072449810598272200310787330405064892870916991528995090501959923246306657991992310629337436084864302728225855453594398593613587875624036316960780801847521309362786323289590178612479240905337861134393809424198542954815913762953198051384248724236397794272050345895545387722720549882376814532535952912337822747173022323361350278852574913322747333004758518820089218957989545295768485354964145924552843007416235560500135486410219489501098769740807168022961353872303341951231984379138113917227364911363293476953125668507586559598355489333897909167246493681060161725336132092538811618532119481819791298682558349394704214483713509590450116747551305199837145793802366006190755143120612760721408934261085663945707952834587318725540533471933123573325714309974246227752040064540168449092054627894488530522281230715813634965922851158529121921120922428273176964953655619898741998359860490967045502266519702180551018690592118617192833981795941360705535376892095195617519840520598362557380891646003234490408368816390158222229855455955953612757123802015052034652227901972939717139740219234791713510489375681513865291171458196398405088340484926856772515442074428860635141030548308033058246969907852475522180983440539505256558833527608143177858059785007061933277247531999633186105020236189292459652211758445199548312635166379720550192158950258243382340962949514170161144886954862819597892628541771239266284542473516406822965498039662566165736955446080012723281237931726184592017708491627352945933325555614282448534193610275784899161703376176972671888336664827353835021940014358090279247492087946736200110535636000114231139318274484170534885698405941209924882599893563904265782308462167580016102365396031459524990836614266579081801879163476313660706148299225651868040213054631706445022333534038071569233352194474830848246267739736810314118325309032043326219595763106928010496512771353334512393545021288632083223434734114699703574594528483627770585968696040392307794026255190158482847589003200808702006631997779538763400595359704963343280230620773498578890900013666481481415524013026254371666855369851423991278693462890350106618482124069317567966824298732351618541985973349883212431652930446884436439175616904257854947626298483473455830193430149412011411673143792276007421054930804939942310919399262731101330404619751458207681993167982330612709051773077048251410579648226562124039772749126135023203124744081806538607835187487642065620897420766228335462224194356742683262425189544284393480316329613590659669709556592543764976273325653315192852836306328734793972371865031195809910813800221066263497406015373102866260999793310773303856883981357811060865446193195722370581114504823153494365460262859178451544132202841595365758098318444634404796131098016586426263261617057047715772345157447949621758423915723998481065503844262954192234910133750032304955176597125739172738921641425243538067686899164759059761504256186025214577535618714426166182460494513428212186525226706052671245927661684602410525150921266155009590722595185935675930755887124189775022474552800952763173575302599469256692786823789266453920109736324367467551970867171226581535788548147099404353071704498609496712898015885253246353326529345840283212522668762773729667334339512917704993628709523104852960389221599290995770673482170513238130896455576587850314211315835938621294849472425983678271234237887197542174550598635365989810848990153757320141506468411630603515908431946008780113280662973764613479077890167283602432008451486334457653539197768632121783578288319427888328883371071012450806864551344693707333532963289677711602484165617115763410308538587606018004141552474004931249237476313170915091087137607131992522452588906027427933506470380077200930955409244910519483827020856476525963671934792336043658397222278044163869225793027463140073304937018037682965160554583314479745377769973816812798031290292035322928245729676071357852957900758326704415953127650074390004866320294528087684844376388950936793555315714406937051674961404599846858608210718865581314673043226752267144298885246569078686928622790672310558832883930093110884473262150327069560219042663902059573870150747775044455292933071563560568123482092608874211065767133225073153248126382685317485368062280054443777367641271481943095847623861807663927142829613441098114723475523071709800859660055784576715125723926216139568124669624883203459734452819980029206502881851809921088015351565278572237117450131109391966872192245614134855233634205413234498697192098442358161460116312891858615211874626355148083476582083047123136064553134102543262235848288263959279837352439646170200588380854820847603645465471266180112897392772356952246023118829766038890228346255094724583780213102506143091279736543483034248504209435540280724043922871284653549677402680845175793723733621484202868902929336843031487310457627570751941389115823384675569410946491496656902044868514785160305105446116317986436580693797445550446242080560963335159016252517088749345297576238374949992215911784165976841992134103001693360656276977502309040588228768403983659046837136730134189749788811762826718836992691349648849736708313605285716126623280920297778236888535470104056279146915228436650150795420608211605898926203807909844642784278057418822058618266343218388901616317573215432488663483194450303251898886715775615088851603855561474116333167609046902991886753729101752545390977326235590209704701970323910051619190234220941072414471350622816313785692711098057352573371055368019001739509665070886926442658983590568652250828327711577762766148538982320399351516970671121227100173902650549985014443210632630395163732278977923669732214795518136747176495147762544538898343737779438951378043638011617045553477371895901443132010491039837982215822613640908563572613989650227783704051926330764941113269321098660067818848399173003574053150783825948887285422322183635266688499638008567024575361277333398922843820148790317424755561752315318118198603149355920218925998774285646474977549254633083382216887669723725711291290437600355444126613043464758707873915546087104491546365858562793112054295818522974000201765965032006819962480216212524952218484734096576472963524249935567735621007676580293852575279106478341858611780369649170458864561700748872815855400782123780452683769199950533149658350446727045432303883631427715529315835048204973087313454987574277079187821232941950664805165010676524888994549772012489692642365013767184491246086540162693230552016113093717352659751782072792731357823105359900725835096372509740008936495245551755167405680433717888900139569158835452109139811634466921575566487443725279763841922871693969653199596665528550118267027746879241666727966208319315196209129122216669732211627634175016714586897807611393876783326305315865534114180924190287079863601684148573068975620402271611954884019881561468179768829616940507807240943357059688817087478953971401813198371348587068717796790773513551435071374285367845567274508826409104716419199352095873825704813215945207262139186204879195748555475011288249368599795926337428462012889394666616181615363535770376407908093543890815946354653953736714193940040116278835840277477878146627257501120314143990391361112605304753626659712628457671306969279928532822012952719465769801034815643223392718658563137866582965986413097483355605992142181561268365481951751821654337925346431669690314989679063666923168930569873999987045082763170561916574222121987854273489862937145868887518432742472859139368264969365468811410352155311938934679937487951334205273349755079796555978165096703400270619714503572874287014167703302363616439624714080456505266393150318880094201606671099646382364265419114400071273672096152422666009414704694777198707585687360986535038821959267641899350904650086803762141570245011811799033542234751866492893033741309729414025983489568159470104139490291456118854387499905074051209576693211055959678184904308450628944086477035044712303271009271285501284761052512971975939108620902058587579606581759090766539674907344547591380642872474742109067620123318340136289272016793527931418324071980266219044636753959733345184494117529877265987517587341499708182786138983860926007891091374169786885531882589633901231106749076787854763016566041456712453661967984180563824287560986116314699672961061124517572326595919490595098851967370288393508245003654713099694058616466752533189195951556243617248139650528836549986669536211247745630707801074565126934043819481794404001511926597414040206986864356597013609432330796325868926177685419827469290043140338275524771135327223265404022944504360911112580070344521116364213203141030851450916323762199516554795493826394629528554523916739695900677235068549884759083910817420441350093587892869763256376422210578407878201125742195688115739447852428364824809546891740053915981506734235770920657640509787879898540410078151251338747593585200820317112687062131601798055017867419665113134003053486330272924882075770866232571648222498690997291008712629033296752640791583034086070886072346102676774306064721146581512474077607427776957481278696388145178235765295466761139302957393017871103651223580005106830675790135119869447269625748977100306224892529840245042500332917650777085122917403133821139332594468631027831839816618956261509618678685498404303905933391906169666629171010010268490862254252108342022627205602090068004716606629927435249936536041592484398266545563847177455371598217885860258697340783544517380290095832394757308186883682069576734776189833701389308426831386090282857733053237410418709510716452837867642120545650046966194171830867190420460144531599487427008907393228599845945109398881158094940610230129550486393321869001521070249998566648351405309382974358241613325922356900443680169085938635462437267004190429204473718110704309157277206736487455070328833967174665059562224136626172369408586649449520145354601615120149772438076462374078781911128752060671235852769686021208219652627779913099031731358289134374509391057308793828812737440853739936192260303680329120233488282757841310440604798132136333238627792948775570579255786200286155334753032526832064826988643283210814044245109301257200709772842002635903269639693156194223808824876218051557573383165963636235968584980503192328035189798048848925905844396977289300536097854358030204369570664543489138646558517232066366005024405464089501789091302638240656274277712313619530010132453279892881768320933232750942077286084894603898400705995308596119386198372321667470415186056017028463362601428349354601978613769854166865294250196405374408098866738366320838128072340638944386714725363077526984587777541332216515006295243921997099883481394852172717087671956482674830907525278580083484653102457023982915438004639909552351093752185848610247315288081451839602588628796955313257375868223900673249058535255592625857830682231118552690231216734980946148028563370699791609701389039578517043374222477394857421013741361637519432401797905319843281090184799063048549385675729392907554718792845282995695249513923198504278482947235553314040179525032371405202787332635230867444085325923216405395954637288644000968735504200428671476239444727731257439643967843199632921286166305644602647762660358783408842167580561087328002148039293538035667261258006536479687381507144330679955311684987492550482484355367278860674664299401642491265829810530325876340862736356496247838836784713295040472121481155942344435017124257468185227243855988593194984711263768939852309550844300557959508027025329551657708057847137694637609259304182507495581350893533499317617325699327646910938989606473921548936989666052083935789417526130937888728247559393517632090684795464281534562120986471402575153910238164468144768571293948601966819842512743222861871494603018782888407903277589697270674230586531036137623131961137035297255593469871896226998542126436451604268328590886669536474106438439457827297220589362580505705294014879535675667324734019071736480401889627122144328577410496130813030478500768685616177736164034993976683732537467237546336273811727005664396375878364087249279308277736162495532499001211415568080961848495213478667549354405860323517425932142954853889284279112910105317867152829681336843113386205508661518224134592074379606422312603953428509548276740607390318823962138847942556555873339756779658701825294764428455883456380263508371592892390287383754697754453185122512490600833833553029336478574118138819455597607046575413657922906157947906035131614855324416880064033194517858286464946990904862001966616031069524922420592168284443077608402906022279537346716084033877364015208057930200169253543065759294214466729661423875654630019956040012208399604328465029131789560377871212275238201801991506518866836061817630970132921165538868183078972909473299807678048618733518001331748965948086541405096907973597242917880362270621090810136448827031016916118995875697858760561654360250647864832226900884796493342209685448405229781314260060201323872575301864854333968579411791762649530338972177403332024673003988823724078345516167612690824872779406826773983522782516234452712451345916541665186656473596357473545270052532422370873116751130887772047244859890488021521515696861789555214968605961858493207689856558961189361816607825374692701909118735403944031421500198287940057973070435974342193103129016040898323854929887669014937180126904686315794224582402238568000040969342831299282708483156288457560961153636453522785483571930631951139079426005916976312044374242879587182271550875879666118670764008957815699363442866958765351028312982103858255805653541316338135533374962810548136696917639924073397703470510387472391128627414740734767931038598514918677226306569165658831980562437719846797559603558562852736253977815298650433656614900074871195397220854385563878806956889306699616414265623461019601840838815976254637082357945052221222846745758508265528095280831603777438653946031830400865585399917193269593535198843347565681829332973829383121602221836950532878960944839460041163341029466081588169981036185230777210917936953744844258181113401994690212153759103925549134138188919947484078472896645788683145163238142407973244837256882832112946702564545708622505232198459645851543646309507373787129534225570585614740698489148528066183196162501403953463736228218399075732641812838400325032094176329658555425833702607185293604486635158690091273102419355918007628003206109301458320859251316137612235548765033906800925429619727463563854165576430827176360639352013727312564966896083880901703141339458827440663365045693119764125342671586244510024401463873544521063510721364129308214942830504239410392159821635088958465480829533418035591522590078996173082873730032659061741034841525549430171520822209306427209664272518935510728870446002693689414060938828062725386469911604931184388754955521984700203517196502456911342464501858949830843115092563145957918985659362898361424238852500271298220231957620049175176809063663140070450611121875138692621808192175295557342649990550728588923204881389195542989511033844988861349455862841035225985145982535221617307343751843515535091914040917498840548612211279368279398955755967277553073219838962778334033552009563298367709860450630761485631819718287512305744335487657742538712035029260367923183176073224472049716213564764298915402675851993114110990575079096470981693589774437592056370938080599662736933267643187670711155778029198203506365871830403377625408840241731288300966293376531609582709404224407692305155081449036288163269657223106728278272615616246483594876864889289850108329656064577405263534245806420218903780058611445544868219940186552879253097438127367960457178750470272295948210292679238985103022918923855666035087645631992894039983451344303901304773588829118059641424264576116054588865114313455017221129327282197909013324592450272447197217151821502311476949385806139404928036189090228566145697098657689126397061817106348742416625439853913750140460795363098279625223463234210408606818798910133665514092322533972254013440603908215924959421121372584428859363595709323667297031287391875930705785877690733129483472109353447133010081146102870813650548228150328584142297118487709449644097329337798146627398736883009966196264784116249960766005415371539390794455151453714347808862172453688193132355239068180920541190052658950625467579741013204537964080274400614030376977970541229373665655883065848084992088680989331357487656553053052148135625213142133076923996297499727570076584416097729678363698581279778061927347476308671400445895133954507322182593374440097036647921189927407963623403857481059159397982075149418933396599777629872861765726700084559751625800775984095908373656764341875733376830235627114005799391025727352896820467792172173359449253467894292838849031334146362132957204043532129719699036579769843562686859867284650649155106721728754037823991952051182075063191303025712946149534602929808125831493096122646669451934174221380781773912725555206273369947327871614500473271039693485477869223378558519654913550879409766132861214393036758922434425288192337845421253317930076356779942215214577446616807338386799938375151878619997699116874798466685307264397760177610526256736964592349294825882179819149110298185683282081220963010764407555506453302313304090755426167428773610781762655952564646016577293349891085618379345378772568655315551312246168269152230676199228624246381464150657523433370568198790285986787688033030118591441465051907398147339513578910419269871702097973261307873293972818319512490171357469604683476876009026441679695624210794061214491256133383146412210056829833701391527854416623408249040703925326222420238677588029827467137281566978696346301991090546824081291518885528823853910173531102877504749795352718376618089131822019353383148613426400143520724530906328668399507788262579240547646083252306432904685789712655297659627450899156455488360673978327199543744538081300586517864848608822587217859224562266556517424823536185904415444791390760470160007482948764973563540473500403803142642425503642345146009541579599584947816620028621263172265047545729712970336712418756516013312713534405336098317870157819434593660112839186816076527161137101790235163628753442250914688590638722977070204506954758620981405856523749047461052801412777988641488507850795141866090886013348373544727406616774985158178213906315874064888324152257554752588904376965291046615221689866324890091477752672904239991165716229393937661580073744482546511983659296223909779648207559021350444587878272816292996298230701812459326592487476907911868244324249463782904683354501086486881244324635974559725874457874846174949385378078511492304450142634012092690229709990026842082504836847455411733575614074731642090789881736268819380993534503003365694888413905336564324028901035565486057172876046074388684701538413157113844166847860083292030344788061396572944739180747378403840226936789043142523795862968861998688214964478171698178686255739105762407287314507763092090356999242883109624481380715159873302555394106155401369627085636551868624120808967543947347430202678844609576150216198219662294156290692082567401984315524951239597243169355965750639559663475449817172589242787436363060081059595977095511706822769131809764781983358331323655357399809132264264851965344325139056295031572072443046418263111275382020705928026722208169604067914607688245967418335752318872846266425461251967081652566679125066386779866651489825465840641899167476166511535154971314194326106193853923281230385931862182699201797771441236841664061387084996637822647223828413517742092739442421379644742881563013044570257958777049210612417523721164004729514681503096293425620014597978048543845964038474900181960137286616610674258402571918063935083092710549457740578013493436079870240964503626112920348968937179330508562931905470436442003435009659539533819527239864542649610428752095420868875937773117640800293611979136126101537049499993894522339801379941471904843934551848258154394641584011691443895979720476413631670837990400331737856853090568841428048894514894549013901040238880085330245951542739341760186296777017413653561199772557440076707772854790626263122359042292069713892012430382039089194565223314781050319649823365838927841493910391061328342734272081390385542629085785249844352494663272881631934351510914522471137078186403861304942868527276112279145797304977906214232972383457213775864811775817550826929923397328012867397988579720664351681299844220754748430412812307990636824661239892286463702625961172561454451512107378328135708094618859047708043247950940908355252267700445660441164545537570536381430373004906605822026526196188484387644421322461402037813761140421842463627254373103506778604323436234160652929595726625876288507449612648666131151999471155477901666268646553948753278391944670303569708783425367934410957270691029882980860734349238975420151879320399490774662501151337097507792530972886148517521462422130852278619624180499760913096572773370585309417761579701165456344399083209884533252118256434374574995751269680567566853973324061755353407422120281366596917009692876415254802422635082615475966886416642213502741539743859670242306160205676949462150977258601084411258457865929412624397885946036474320585881117235701254216944405297877952622779346416208029002626199660599408180158449833697151951114033836085965822151261212645501024015556293135270703736227041237201178501843497815705765361867795286429254255154423147861256816952719143049125431113410202569779615259972465533228875797384267713452540396404413903370625323243550326157860234601677096280487620951000111898324333965509871607806708892380201605219462343241463704192810092281656734975267471919374620635313868243819422599488544687969166642244498383293211726276312115691781230649786123813141570403259614079682829145431223889532491337411001834034067073852176124873902410132386667783051769611502896932382853932585679716788538314164882096557935695597921216681471884079977482543304168591625030645679528927471528205554218849071024356132655837795801493641550020404983430122582544907340162445590489244970834064091621317472396709283331086003663751031244328030110514689947040007282838082570557191983766986355837421934029024834476858749924889086645105308154396334995451303977299622859830987716887189135036916447717253213077363709008928625341751136266348357509322031770386178905696352550381478322280413523606141667963002582176077031861042545076466054158911973496367410527137459536181699702064232848106733991577459193939071785211798350930160677338259610120860931054480366840542430391353325381190801951791612244800654825886208585901910659963529521206559161429330166864237695735857406777436083333770126277370757014885978457969489351804681936242544794033648480958165845288002296869886544346815238567983531460268845527880197616706170661056990276013867149724361113745042410703698337378554372101749728711612299800713674946189802284682740865822173388333458079753573325574031118594264800905511276143701377349912591121872441548667094495783698316273245734706932591283398051865579441964413555570524985216379316862286657595399531961932559261550776418989219091146087324134030583763575147933423008075062444795725927173843026264190206647067075474266887256190325018321601671362464623426757512861896596813475262092343406702901374561654832386252583328750099042567261308599981194289263705929874702122327616156090895930856901792722970461547986808072193255597536841776475940725152402177122866812960847984377046053920031265568589298753796116190037109278679363901734645860512184845162442547195635134624255764126699149110765325121693739910687938804728204450082714656096765141296104062300634782070285289962355431537044807388851940964436898730186147120719561864632850014529840382845188728014024731375543993599818279463301328648225257951678218174471844203853241137143494267846333924984115167284293260717211212937784281251786659116603122365263634810421441840746782418417330571885280605361267090592849464778187321444207361774855522596056822561620158718008375575351002533163670138741599089988236807156286323953608826482036311117908532707380406871435247516705537624608259356808462411221747497490753683011486792311302256748276596254022059162820954304401578599385976314190561501752598980231308149813050879079875442986744276762909444768036786495982080907069103231800868916839289513974816580935828842150354346799116836957060947995092670651902807049224859075553004242301307231502875399014708894661339257050873194404163821571696383345980862019916764952495207210413404566363187807394673290820294572477881829458237717845575437156531043020031637679070877459924415002773889306037898880007211323015094575583318526060018361346418504847260249594029253051078561244121030671688913756921362551612799166207486527772743447502919691710062985268582871500987844936352341124697118273901405282098351541422388136532882652273667499365242375998646864841974536722051281137815994984228675828934743057753209068100412820602755929701127726241771296221587457681458003399980572489707848058908792210560466830097237543332366561675800050704195619203366634127300897579446636667591419043955604712829522551415492358553775486677079680038344872820898339942402613626106519609641941154898759050370986329214116898043548223121526857038477941756075374394179752442838897157924161903298391734920410489517714222463224606958674325844326288642434226706046187895628723952495908081603845635261585790728072732696261770411089855363352714532374751057207808932960052442507873128055165136660891843905791462269620638206694783813018401303286313041083584264365467988686415937959861801895268839170130436758278533314618815000472979115393002318829866126488472293174318715779823147835078739927306936799351855899528606155098034612430957979117762888228507414467603776348065274998860451700060117452029270244007097577417715494319228795289107868804651349732321682917705113396031449914568488990714735272028130331743517090566860344125537979324454810657720230062262675071369271499557494324585827707770502727868316292067981049266184384017662373870856386903481594890709101832372572302009007166817030719551494884147510476773435564647882961277537796101791538256856304259727403497877833689853646604166669896369457611289052863366945349934542021706935115214074800075994090660003557477827890071099590380603510436681521688030954550087592601459841325913614280843700278006116179164289806039836395184361003491633199504528765461617433322148084200975107763516425557517831163288568635819503859823684487349588068016083808126288314726913964776222589930861226784454263929398566104562377569905162705827829345853428043429527706440111706191740386406277238642816885379124792576240734553261090528534000438043765021854486396420065440697276803426393163489329500854897652566589925859112494851394978868522852945891860806806089417463765904383690040687224822645533067130642746704037189019572544511510819982706325960159057680199430252430831512543078135989060170764714347512978812540229785322325969349988801168541012301384054589839453834059623146766561095452555066908979441432375799493340296283861443522035149388947384544666229101913350819184648532128101368801958728936252890283794177121279956155446384058463206359341003842132108265105410532511922423707769927695650180945548377150968675164513794087584640338384909670799322015127823111931191308575721448768487261502823952237104555233301401157704370027672071777697585072558054743676671738007510731925012861108847835137087630036395330800735691375954970683974605281197301762401456702215293314178303996856801762710429122535231146913603649837401082502554307059005842315159079432580819454159345629131563720454177493029676312446114505108034635472082776392983915203440441178846626788172061511346226657816075531932417702494479604711638695199032282515924113296133202249015670580623465753032430557537162847009002158632144184537150854691126748218777036292677252702672024510653830359480258846732631524942742076664395102184335644950570345486697977445879872516745365502705710261994176648239891375269778728823033104941773471158328197349427400813489328573052610348594849134541151194237317225487751111704548501370244214714358663925011492114775497464764568233734239609053287426258058424928497275035428037309730817966844839488475194717180560101597355629599091975065020461553504094528862283371948705282750460618162433804662667462837463154462972097917420550584293976427375693436779976303914197558693626589126193087766919730435876450295072102097544318367736985846456681817961698421314960257770224078907700918424436195846678993828201102970151511677772456960786140751468014421072017623262587414631606518640904589337615549555308955539201043982071786473644317115569520999676798348069965004761688520845193691675920721856335544296023375466624498781411945220870119534513591985229745063315366727297799539726740129966805999825293232152894284654753370603444274405659249373100387463390845525385123419891464507756814461681726175415609941782751556955483374883662426694481307331241844366646136755033786652745264383803195570380107646880356076975609921890927031330134918167907999741311998844091630863096280904657677677034807217999417343429734039547279992379059670026807472620997355264197091817372104252342288941271813454466258369695837594596669538506946495807437948299452196678702495680250872333701770951678894789773753412500010247797650126580032038870822223719057654650759713626124394801854823560197726678165047297552753698543052787522937708168940132260873796313718952527747583195789771444647225744040595435766855967312100831861918687865548475834212562123215785293940479114404735167998112481326718116250632216349274623121468051349036974610730735597933507936924986063196812094717429091897864527872991924406341705927202159461860171605474203343122532953677492431155692199128777238963982319665229128302260371485485033598397822204516645350722775883213124020359126572549105354336940122080774833959975030351189848553094512963526905919133972276910458724792529974736514899247937345115678903518118598579782517214091542329586944801390812422413930667801484762008987814436601587259328896489179941853502889803571065470809172590467057530601158393213545414862200741300581671196480989605906076478935986973762139075120789970371726050243689150904376826863811972313556724988374542434697880559745704581243641579344051039912476383845580058219288406465260889982863075376221531947622995847310620457027836240781353723851582069336777788361144960081958726650925561223306810564980228960934518365007542235786895838371611735924452653676913198187346421605921417132310240513473424543410066324545127571929063925468220575032848490764276419196890545591891995113284830283026706043039102357497819873409116558291779890623950846485731289534555024014777610599827112246058745051313763129812117368255374662627350003061012499616773016453214266587985672430294029564871315561707447420258257626760225660791657108501346403239074656781196166868934672524419754850894620408736311752998295346410146770515940772541355684263376326545988367754360555804871989556778835461630456307357176071497216670355840291290453102634605952001313071908113985423427158806883021934441347246241413170303140068636424810499758141285094521583868600015977123089909409050003997029089125834871288213845402411567512044507772278744587031868282157859945535466838632961467975576098082452129406520176029726739336666638273298492481476768381184710054682562237506860133819602676710996617789558567208633013696890814078498045132566342155758620990927644464046060267520061654516769449790546248238049176949877545958763404374659550404624571833674026994126722564641523641176212627242206475789975553358151755336193994897864307943082578995170991697235445265025698654148110948095423008657001828473688778411693204094474713420054041415567576327535677443703786737012915457334985484107338951545193639290130645294436104821567685117191798214764840143481122739283191822726501296283129087090256444776433677870821031586963420094620102314939110905937256811896483655483712817925802460424706756761677764430759634329699616903944795744668587240129618905943954674124942052611587908009418796890159737404534059044276948334367249235788079069500102930861431639879716260971900580741460015524577497608706411893164150786538098873735497733998430470435347764907379552619977686618661001736388203298089767970257025775497000196751566701654805982475784364179283260512809784019387250165204298267275483954752183178001222779108171394037148177692154667104429964796072450830130146265810099187043752165632504645957053283174562613707857091008358862560873407102636072482295853032303005482975517703174030887425057166360112700761391228234993333989519449934093081486962684046310666685909408824356929402796086143898151266528856181857982560350763695054060385976821184676067990930856380825956187474632869708022880375326822380638995012778257728981648159184521645622381073585082026603516174454734361377624496859658137341320684376846154235455910711556590833343752942688228891022494272539865315562598782494760892718978261605649487700752412437717584206195257005171448163497857615053006962965535938666475683148479419701541389334034741374591445060662695880062247804459763627559910102225894422288311231498996523678219929313592940645943153798253015449535357766834679104453050964873090486501916812661222493965447370179015055529537785682106063513684264919814721723279124911809320854933817139963434877375684694311540287703672465558979806289828025726981476331232575482492447847762936249135338811025901600946830924264113124828666712309736291016574496845566201221474115070614073002996862961356940988503575837596489971389064141105239648723065474676790979760331864936398993696163521852758104512498494147899912506795785223488554268701532341614624884471714992852510289936483737149286283968548524975182645372898606723416359818462546215267211128421151742486412689915736996819440113412583542209420763232327979386516324597637523098430242630737544100355993152036556768670868529247914311781939287226774925589747644355037075412011848039143630152724808099053643932152960840006540165836716580053758634112709569761036147700929168271665785237551885858103985122251480603730158770536174569461750765192217061899924544611683540536863157164152938393386073548482935346146965831039043937851196606055855664291922282528042876157684815492318287225035220991816866452836418700385532481462929535030584444701777914220943888628647800902534213283872143335680520582796327404473843677237010702435958910156478946155308836488813891922643856012363456592511857536714443305331466871190414309430530393497870349922877618547828239582725041002580245733349715874212668760420128686390146774381896853179570758049312198227930696148907195060496764854877096005494949849407128802439641694841206627378626599853311783457454792995443265226589231715588357191109258543809784999222418855947896987225469936363172243108208505351107382754638368086748608226410460906991655415397109379058065756750776462156187837569942961166217263147319640863516316958803648366375724726453780900556059212001245494453223458496374343104337712802335348873206956744161480185886630687514333087408714819338887198925450935174521718976260369114839517914723184039721583869865458658926328719826196003176134074419329403922738265113696800016742982023772798614308119777638928979388728916501483245669399871008851593593173238089737793923806044439868052275113109851089679896161428803540144583569470041052307143699314493437843919669008434118873591030518174766205746778900274765314182577715179397158822006939038756795431542638345459356140788792124132972312469970041219320097642414835605616116363592369902643363765275174038433828871154398398688289886263677428939448625319834691258749174582034904095430582603088324733574447261197243665120976171521326943558581635559719042582203586837721122907226547248921678963597139456796689514268790971646900209785668171569238658715255060427128165392294017715262831981823462347929624826298167877853336696073118436490697289433747788608920976614221777699116500347343538886060367640364660586041431153962715263821737199977472041178999549808473507995367349812321516137713483426505256889285454868130582954961460590302697061265398724370304402279241049679395388110677184922554629204449351216425074804793866780100833722622844077393698280072139726408786130568135712222221309903491906988078159682668962521711619088866745363863215151086876909963906676388959286465018663281452803721778529966437710293987520027753646419898094095879289178089284872903435043471797369483222191999387517103113962423711928556572880125612092127276056154591618107587954988138753423648217114463846798846323857873969848440288329197074997061374205145903876449455222540994068765402083529954219081993342821322196946253113281244264393038911486765820417837428934236621250739623014362239576090510942530893731707136153873830392181710775036159519206218572693042396303907652357630672760459673535326040802718604933780742026649258175486953538179596908014219742063104514214053324603805790985622035666958251247388107731919022209620363177363634383337646677175365119425701744990064090511365108449702351198545245109874863805294173939337349252099025028255852331599824293032406982473425944867220459734373279722236392180275409820716471556589904458822374733778758848658820060878737392401980365700852951442120177035732523087153215937939455060539058322554169438811212760020977943438957522491397411978608598917517578549202460214295719919569080056503497009213301768510914280235825698244977848918609571310777813528880460896559608885250372825303934262698740529802193731333795241956596064611779726127320378551524198617651891021014374657497724259484151818066784871545791307467055225385631034308981148690522186771391899462438818593836278118806426577360442870536465183828153683068340203532232342127169118727171599452993212441045122517142277340606674355900677182061421280614325199611839676788483225675354576831643074839060030360800078974843497596036604320672973208665152973519901323595882814403983634547244954474664073108858233425453056464544915568733424088332834486550971721489171322512052259409886416225617303409933201878165449431121943363043628228688783991727160728896616577601159797997863497960605895922617894252236382944275635456637500982378144897704192060550624114294399593502025093166712332217371204777093268813393509211186181146835776420310879381086211286875316435986609063140130189222562406932403547923812431429054998721602007031544231747812696223155280867284652247572060591949045758057162145053685161607581642956275836955469059345563796521193663541512319929342998670604046864883833509329152901009228260732623986117187587827665477702678585975045053451148576580194650469818208189448764786749225591289214755184476616149949409874443873492723524858854042185360902180681534320300091260943844070614247596888435632171689460863706102656974269551588359297991901346123444889780577521822627284132953613623432427843482146108857412258019526158092353393145820812796477818553531387095810503188236757322324831786227547104058346812102672570604349202632231494878648739371589983174363178999999923193882409550335015874481898034644459375078753490551782721890628835299429054557072908448909216483664997624504193799455776843304490246144419814187389590966713676065859945814108504042012943896053200541379676265374326904026471421600038299304255953061598249494735429891023085863696262027966863133794763118164223144034825425070250139374005038883778982500399927236499296813137355587185409201126280751581152925232576562562864687607165532970746019863536276149256558470654967731152730264725349206880858682374143623291574877985901698151289156957830453750174509094420019223131746015386861993534671785863414209497319063784629450034859108686836030413939769903319679109628003031163536711428574548854523625654086722921661890159518149804401091497503473425404219777855479659923174763073926342010783693489736480262896984909374092498988251534807230678552512053122455005122329633195194291745322760914005599918948328954900264861744133721260859005779049386188714053971672170286851593266814440736790598314078878311859411811416793724679023687651780618643558741300753016279725266809678695064747494636071679517374898022959757783540672462961683728124197160585033264865922824798276983632926895977844085913208531260533271624865639889086339165741714579490111062410175948678655061328810768127244369650349430687621436146920953654051735740882198021071955352479207151106234513236564052159005835685433027960276886116390869231483639200161802670883286322128213648670172547558867284370318828985166708626096416206443401811704448387802894804448950912189334056264854922905123433613378698023738614280335894070229532947853842894428174165239030658118336091627947403134869149626558628090046100048226695248847297731211973812026331987806440976979656482606878416066973134532561977950814045512696271336519800521258774196535684682288898534919710931931945527989298912011819644542826078763631675253652007262600242481051488571843647091108375525849042541732000483877904279785992081375683965872710196637730469684661034197337724708679787288844991543702202129096733823863505487965341869922137443900491559415537844825600319436673480807448844472120929048976222970008469519677325445288491697636028151947903307288015815274725955644391121916410301238196342628882661950004615530511138182038415974402637331366111300268769559501241685871829017351049345144792487613633618530598373201185299243207901878314785605005232407711234760458012003680574469932027995652558281686167129444077111819167280168935436451514949035060099528420366709612533126844848042837501225435188250571989017302679782894482609627911567592052862369444503768349135497000089122994105823331793960742248284728384416660439602743810875838175693334603808675099553083331491368260435992947771425810500684861126008944080521100555177611051639005400860320948450096409036872443936805890400252647694992848944660406395351325501397781145968447989263694186277781077556141026894920294606329094832358846006198246337847932562193864961872872709777771268226426786604605035208058103048068636446080894996360230907374279260427160151070496743062020833352168209799803618014841531350506449645999337703442446428033708018782036448627676558969119448836239878334922806075104952085744576825152473270436152708955890953970415035242646122892944043371835532774954877199900229670114665813660658324666218755930038034995654882802400605969011094115078628893616883353269374680315217412594304781097627763578302229541416354232161555851573109822232804829675406141992529741871068240443289870737445915155005655287643864782789402074048111930943464323644464856315243067671885283886533004054269169045459987052909035000028382097976236145824848065141519872084764906382158601131611911252966955695015738021158175642499135956713081116199970587361846846414389814185851906279334757942285529291006205557736570739099501884347630442369660122916793485571402099750644353841340331654984081334123077251170091824457959756816465616890655870280685352093951833324839954011771491820956785719338029289501420719537039330548066618118599724999917637916906115438247621273588459036490626504886359195953225845473096051056026980031979296074087521257105568410530659250427143060831716616912832961070578674936283331532746042868716738794601141483906711974584784335071059241089323437165917877496463327408935085019184588228838671473505275021135418995430406077225235534321680368163847012961885165713825048994260323953014123813156615748900458738301498423448819458745551374237691301031068242998691678390912300755642656421033648581535577765952043371064134979889904852513873898410516882057666768660632304652592883993635757807014561419434101447600186881289021382127149585847873323208957534825392678208637322998435344050320569715135579542955099157905497152714534149460269463550738915148166923992091642948156431333948537269383441368550806260120051575281794778133688073245584676698176137207427563875893684208735645707314516342113932465235349766799483423301123722381723927457810335918787199549037997661520149917358952016787614378247607424620902342710271690882237850641765697220813784276995749143444523471860638552512544696746120200419968242869378170851704603369739372141879058945912637190641739561841845909740987042361726638020933075107100855549737989444030371890898495709654687948670058915518822917268765441121378210633577727300481886939876231719405703403483276795673269421992192324408045059823108236191144323985763396702808577138801737987275316770345335907639946081083420119551456611178264397783840341403809863899529330359220977834806867211037733245287368041312100095434273087971306640718472514205570097650028024445159461978299705952071116305098775529636529342590043101420299201123168075112203565284710474086344271490220616501464074169381310747652911049156621998803478296306898624260208417078982678385641905064593330132250152592565413864480172708886887316996178567884850143202186767310397099982865662246383061393173648025154545658282003022204035935936648159315544029188581129041382388764391401535639008715357024087165322471674716265774000842283711152454022746252546973648159728322557356594526864291438246423871664139211725303121319251821114726831952227984553130821452305831929180502746855762867752826662450925450358088889632792938144118902691974981054438273894995653465434182897272072204808754318750695387719307381724118777882426107000279104481591902494949970217829833766000555781097939448165281765441719265773627574911842787812004307616310500749791509690467451608212345686268726364112670429696922049354408915538345295288565651566684752527843868779798016552990371357178255439333056281928874049425013615659030676934933559086314906132749227540949045327419064302420585257612103203567281348831229884980961504138951283241092060356312854446483812428982394291672636559749178037728434323706338206164521313320561480706896912649468128157840311247965875638581088274090726637778264034282422453457668907487978136944691806360397296319504553919884492567262198570011602709321475122453000315887357415083312504356245856996734961028859855220286864292183350399013642548351517950037572973744684466795715810196887978286120124838910721734357506361876853599706290803822935594753094335273951117623048013474122862830970996133154220768034803195973924971276755050559513193061511719018820596910904405595441595079162552434387874322379302346199436993108560384525389731000661441255135778743739756152568012853016531574823862076383774337508107251834038802886821822955283296626324366259885034777980323638724073646814024005717456490533797257576751731001414500291334226483562025465575162718971075812873459025201882703477744467606004426092621548237011456203321601605863768983922786926336866358141746038533932732784229605035977422419535825390455610045368645328288683828432081534006751515639906391074768104684404836453654559294030924683806031945997306528098152248852605118772862793892667106237519988268251322996551921127726812975175770032180585883081979459699340132416742941673081648129219130393628676428010296320919466077620477352383616504775994829164216366866268337596322155930269225046279295844657437418495428242221755300594282782881163883016622350187105249110902410135397837202103505338027490940849694526261786750635522186672683075601270826953068532329324943132924767040948358523379331257210145862644801519935078797523016604830722617427099642701418683080280881930212245388360050535710071378891261070679708422366329931104512561772177962968262636141190751893226795883455231701255424389467134894967251004557332107990812605185605088545852239019446109245189501151658507115217880739306905102686898250280627558037855939093467684788904602528593217853288361921784498161833962688988717565486248259239192077221407909349243743036429431160155907657036874522006212477531750431605797898102924331048738745601808276653017574751006091465525840381710867518524308565103797795172015235059625671673743001710281262815140312299508998620777696448672326365600097513335430683509474175377671733446195612819015716018805807631537152521576036422429300533900229215158399316418872518137768959511725582720082207989465943185000236759509905756055435947586913168127485849950902902045403365650893704619933571298643385869744721432829197936216230967358527921622669399353988789450768221469527864627375918976717477764759958292287659127569882938616816896609547537815034739348725433791266873398399076864592745489531749011057881122631251182227897227331574529563880333539168134801217035558420479855445376239619011503751902094270309958808054391471294694309488282824426220457752573560818348919017256269153788694087929912912771731065657634886802459419247389828906441552818659955784419216725208975220568796170805554733413389618247074992867469399692290547147883668006560836362194798605805069495936872382675385760001443334676474385581956401489414754738222291237829257078762884484042875299129687826634437018801792536707600616140930751580517494144772403223703466727077364514160876419539911118258920608496687350229601831621012909489321274484498624800631250405226690994066781402446915579298942923802660336263956721475231179374377969392701997386613736033704990352126573111319493633764324265152816808321989929128418651722775233409779027723200366705726022508893016546492627669920837756716328184342686560101017842744731576911700041110588541136646566858285677194950253039304132751104374419662259630914895342881177129403187444357833634258110221392379615710608408253331177399800212382356934797489241574473622455649471813152225872457491235875102395719329456954331071728027652363758602625181745961288278343150161240323587728773502591980151676491713820473237371194851335256130444934557710705639412981750248451974010250634113404284571490027929976304596321629551492463531399897761549912027098624722237081344841221180092152576716022536991699072831790478769982397488351100290091923008859121100591632212691058878152782124012995481944962412667711277137876027307343693881895263482220138854200443016323249763404678325661905999162650501804642502334064481259731789075564136006369981691421957458261771214972589361319159937616757048579679788988587655584289752302870920112975523561567438576844070937157893719065150072701339890217626174367977345111086321647168203011549695943956227662241002759588202180445262968510898054982485747102268967720153055895904356558441568231091884885861108760885988225023796033980056543390071931384742818162936014039557655412343040927182776285671801290956623213329449436134803208207013376240968853303851567075983184152518797759853382438945007235260057327125458347472844643907335877434777186488183505277645550442158602800821425971968189631434749858089487405964067445500310643790515386506366075178400826602858602267850910375081108607842690008873861721720262254542643218557929456545162137749444618508768657369760962740194634237180925134054810570660340438269883025921025542854695022728805087138455982370165930228556674622151894722821312331135659800479416123587800024702052571708349032523595217572014870876199833503605537701337897917732657478871601134644100009707645456069612356143104628014985710147562994029820065059910082046682847038637812831751700245036799580559149113856976973164033761481854374322852125187949633679154020094616824447863877031083219306984515407959221383537017470997152614452656977307323912287614355613821189849998187340648394306586625690017929688433438719890352458514964173243365537433598444217332432106256662249975228969399700492178784086994901339922690481929325818502007254027530116302989472697156721802538216169705637931667959879404486681068068166187261812656911373909445688699551119599504193598079414341511847202366627726320227295707324930440540442852703540101330375199566448828666983150173509740117919191631741973081370917257754750485403347331401216360753768972833075807932415130934033746347328839126227440065530965621958959726016862348442035031904915433525591820365074486342393184860303840670135922100608193358521214533236804803502894545826954285108087973226324613958789674282517592012019418098782654200823887919045772827951810418805369914082953784540497932171045989512219831423808084476515959733999154046552093936389196513264346613557255185737960638727997378872340349891483997227126874894109140566083239777683658086117798812952611920639928660015819290193431014315898962919932902805091649023975521816462238376363550798370852004019662676058708453326790658855477336702172951033185062377377949320328255646016099435538256454157927880717204121269905083977573395571590142272274390759149076733822471259438299324140583860899496583974680549284262828647126973433169579933188684713864315161704938388067393191824790542281770052923492003482622741322406923148640619428953195204788368444630216744167732926854406312849652726425364436136909353682575281590994005432838403648319948045296977702196257821159572175892144217808949961223356116215977241815876825082032451862926661334782378096011324901050888939025465334879265208746516697852247757672133905835128389142017367672072282783712291625094012153067389111241917041688453584174092178156283416679734512202454113942834266201618576555776131156966730500665591189888413972025891393383795772764476670907590941293129175572321277846096119058500313008938264569574907978371819933627049250846639502326329939749834970105991922713118506940663315648782887719161669592022229867030474415022828234508704421478037943576279763545102630936012850662753045131285200095673748504648902930273060688870873220403256766497169928522919606919195328463001918275262825305575311611084603171920512212525143943869194083244594639110840795877944547737212353349665421543228167794262157966415283158419029963075051079545667305089183908514072319901116673329613758419048078702380993170020358070486186062278444374156676082509703860808485798725759708399560567250369007928982326824263682786355992558273261644595599261642409333858841125774413215124212723026270904503010476172390324058153742458036941899481142557045306503149802352908434805941744650150655134096655973589989670818568919881274878466820726136418344702210382987661083799811596277983166413868384466005178351632078245257286422218807936022235441199733813355948373874733277084095276399873052800011455797930817382450717973449514770215632107430724594882602912985881416371233824556546005995543163832560661138983272144933789128410335573608327889223044680737277226508648805397938320395666648655131588831264289618034693738186137720283915525285625574532313094239240566367478782035550282032974565061705770134992660110343819564311274354983529491871923818839751723910255786402464989929954940564787514760982313008005964810364787881463968179764976208943851505921407456380977421859643458568575382856432772760858948245954709529079508148167090672888967135619251010741632763485909437840961106419004268321130134018368290259611604332347637896896968647446614048632761024424103085267160599882724595187956005701362976826252252305124161696043346899459848744076736832916967973397597979048150017053643439229925221992564096476016650010396568191383458031210233788078822661958061866263074361511423433265390239497991520028433475038277989804491462324455640591419197201052810931246607227531043446928486770403351646004537031351088739390127587251038784884460058471479885739063162692827437945062857531579329945194599338745601569920869464645036944841730274346335488928348610235961308812208161297540062594983587184869385179463987459896794892712656804858619495976526854043643302711662103851009587414773678124625268152175574861616051776995401611570119782805502951331037984960834867312815576244442552643196832744605214294391490052145888502265768997475900078998872371087312980624748868900968420872512856103280100727332135771774750118719644875445212719068814460583213020948711893473589445220266173240951306352643039298715169551768488567420152820764120888672177005422954089347862849406731302018888130236147058701119402817447440238135357898035352868429683353354566155992936556076399635996595804580389090990847495007195278047138976401686589646983096158661490459588920695886417360856562537058183004268216290162134985988712842291129164608423846705923501283582436274490696304854105957183557075287176429747462600371365342374286195185387521295224291081704358201912979222248139425523224357007817754647343223243148297390804622544356143423512143125476817131206946075740014832481166107881056478429771974609628295478178225431800402143498367093446234055184515024562603476143144298217553574169856610378435452688998471191705828879320968914800196310034945138307242365429091159451095180150483966359701603629052133110688343725097650445368054281581730434460837086274752185828236179499104434528983322103809112432550238890286593656970471662802927577657187330831230556276581728826437982307267515803094344523997305454559554473771462853677199324560211157256887494751122737961321643203387296197202997883094512542196999856116594959775121402783084425018782110605634306674518412203738636017144898836700361227368775952246537736305497915622060651962315143812242133347995247854171939012664797000561620779316418906329074933231848722723589495239890775266099911840640633247566085258141798654401669502772458554494704538630327272874583577712048507752384417991600205199357147919347504125999579413794639220610399244988541287746966606938389057549308606930546004643208495793031888673537012961879357118678788050565144676173177149261923301302398531418849564061257163681798242522405778689216059956180425677202343519193889134192632117959718928367890747911563740563705924309253493912638505729590608563381859665078941352667019414294269474381694645832299774303028965483503959634112942748108035029944813274075485315670597792120391655061190424058821447195279461373282600781554123881132302827636136400456356373809404352979162028914566166147112713426650264775199050346511134743757387482216814414348261591906565578495220685648395989065694721233877372865961366946803166305953613800361341325517734641629160233954042104698439133068167413538505049625925115011118610520551819850532530010141386366239495539474080525965899072698671406411219262584701359239108412199736281904431193289142546381752473479418251870310100608444273599435313188813392472103503671900741764214341289926632997396675661763745599952543212344980494989742555011667907404976529381321379552163869029992010810966878033268074402207704258293103126004079410059769603641253505543340278714236827339694853392111192168161499659993488759074261547664998507282327856652797133300474439263008961053994449854056293491946432645341611170218745752755678146531966812249454674968130478929206642826896980924738137230117958347055167779699475489449012809623419419416429853864890156338894037172816054642820033405284164345395040574292391342540151085430394316340159650996130921567291271824300814875579069083587752314598393658540035249529602555282196548750731330386067911061251106418020567149483876718470416728016776719659847526758018665432613081440237168408222032594484366129672422536295071776901302255383950435001755883944594777673402305661440528233687322279775343664004072001159423404033301504713775126053301679441523841654213998895233231613322235923522881041936717454204320848683537770217060700055642840443572278145629674869051656418700801581247003940534016966251629864275899800896083012046433797764176376910869111884665692576413083678257626171093468051011128559621771219759686312646000750335835858336763388448742949853773838020744656282301027314525786890459357644055667202377732374075006731270969987593053943259980039460706213436781268421653427697642897792987179088481571725027847299160339208954738198703428072033182143485265942487468728305793488870674128817956910564840904589995809029594652964351521255437094926867139685348280559055315249969888747889333117152867095144273659396824980748771035338547189889868853977790271622250062304407963202119688647444187231761380059558631921361903058288776748626574821487924251023682793756378616076933469777459949779263370523896659133323637203819931288797713077012525046224043128932012634955759966970139337635535511546191427278060236016921452656915587283470074643741301912298234664133651570936877639797074337718977908413491523958607334491120276678413393098126947271891946603073619380751551841499046128465905543982556628625002671338874329015492480845623298512237941376175433452567649079978365418089528627753317804161607446008719037316212400170963660624265436309533572292591221290384033030873416572640157121508310887372290818283845778609858448524991626176056670427484677393027670576310569611469679254967512333222484041661277600575091579792306869651047341718418091751589170278335501035177325817277624634108902107881791760175922943471182280295347028560377669149101971689399678337781846936267362380690020404492975836761408401772450160958907684933177946566446252153472730986851049427981668569896763465358598426836232347966937606405701308158708121151492099197427567401731178303981362087755458631342601794352216039639351227725372185287089074705227370361266692296791770326518483447692454425947518674853109300663136398305971144467106258853023315234274274304801245090034237903313088125272820514599911837693663314073364605902880653894939433865247279704137144161793614690667515309162124478101118371322489047230772752178713169841615056299430508376625275907818686527371618197042211046343272812095035192974720158745328944916174686258103600966398590861739157374453677530708344391218734059751121370031772240054476994330012131834006193496030781665327456970214295446929135180727379657172847822485594751952551495712805625003084979673051735297823447759864577788139931456258597703952892228740056968583033923420175427263558853273711181495954406754273149866405757303380266855622755748034841313426566659663502075396762830363092381258391301899155248142439679185727400849626058595283956753272427673790323634374565489043652157376351176671712167334549577227116055940010063090558828915397225851823747758201639362749057104631012918907244241190079839573940248038793296969196856591416237125336615592240742087763728552574181168632743837837370840204068134145011380848146332519401728153573800133094983317232471874957457307932673778147564693920777408440636555094178405235697706728682132699584198466419216232215381901439944656665771504798210330006370990864455717483398367650083766385057015082874455806738843179043114412038602702979307744944048885844104886706790139559040133660346801613982837013873511887806752194837336617631365988345962034220398908360793008397674720464554460936773436664884354598307955163548066341373771061987441807900038355879728731923418879757776708139837178389429801555982307014016448848499550512540778151116802733292596751372685820215500265550323465775979835327173925025371492014256053462337782505099644148159522277079917747634873138095420725862483801453292824483026282480222644641360946270883665471868358814685808718702843025437236935597478859868219715591226611261899105949960168809463624914556645335492507918855139015214114545092043313679215105985818475384100818926260024076689444675368231131967301026715967286021953623338612418455035658094219016889270338171520250303884141993893808494697129937180537244630270651884413704265587078591473050202061550507471738053729201928384412732253758621082675687443312525019895531938797346075857019982394431875168563153196386136282414114345900880091193638432625774557355143657660822663077099121828696796361105438490519840633687709958879750556592732548897110383087480531074454948609017657442039257514913755514426038187190814859618318364054219989770999958420385235064049599993347763554566516615658455021089899419258418258452960218403778454506059751600163007853226030156685013727828606256756238816181141353855757132458072341558974860726597256301898711426893153359401476133130145592969733278431839024324185470758797577903575811091283930601278829639154684023996799291805391502856210210727226804812709299787623925729175673607219297871386177980843355609848999803829247093793319415594872562960411964560533427310187235757581851138296711896713794008112259372519548803770003844317997601528814362435346484089055438094618374605477087749252642780809935006943445991331989258808556017705612956586383627271281146644463046403064261674659534512926928454066796375192643582085891942171372596759565622040652748935383328145906736797531338687105926643956307351279674572312361240370212162598133554409549044024349845617004935550281180011846465613657883208279422785929518044353898072946242143025030010407591423559764438343233271425494532618775248849431910993558296856212989952766350107682467441852066952653632181366661279489663973493346341969799262048840169222268068848156269811348770587110273885493374803707474865947269393123050372337292056240574710537289385255039723706024945237637616009776163433846245076453099112090112990670530892370352923716487654911667977449090090512599953181340256933727726094190302435174609463690502075079125733348152756992852880170503960707582329151019180203017966986710803646357189406003314459409580396941512099796307048916516660960241483995890214621918768673295874688777879252735300497576564307758755893653000098044679825546164099938887607599959332351316144641069765724474089541396799088562961360287892464506909441875693924049405658187013762604982332186833457772919156062218615626865369142496391114331177758757120675048528065009793178127368344547776400804558940253985704427519703120841156971699466975643485914398610308297645600196053769197920684850477471580208341264955575655325254534328863739003713841062121546682098144700896902154382879786350218616684986140441213833268052162946807603556792744249098397632300875123169988689566891820695721565134763420635916118365886561348942376498824951870191820394454378014671333055248224918557503127968067699984732138429776379284522360897243912577261928180358820082472960293222223151371119732177762323327870798963051268727337192390155938725458930685347079387261278274561576930213294855186035979763919886975376680472791725957453705459853400073693505548439519037241019627255528688320118853301978132988459364240592749231575380308831856524769176322851716000315471874882881756850628492613737915101467669308125721286773709495436259360739081699526602162440676534042645577866584281710429511038300899035752487917083354433687789540330639796375673483359702958167102438554800467233464473282457319068668521107821606420681471160213630125620375511070046943695431445989891780787348131678579307736264139373659303834852846468725090385303692479755037375528785725155245461011331635729984315130742384946746140225631385697095757626430571467734696758763391874268370454238843743036385164751021914666469153577250020611838132284428013186023674922586173569045639018809946497046283200031154133408218800541631832905970652086122099113480042147914632682747563055615512824518226598655557319088974285354839843119380362723042245839063877164663590890153688184306856576683054692825249970929835812120581479208148779624889545704187875417914181710192160493309880086360600757441027435351134784870193746633195010062490445340401526170644650129994951612237366716089756752767958455152307947479683999136374619981129802613561017025811542596041877682618618912048102512136222059368461211582910117477437244198196087642345039782268738504746884685873849812047867630690150094683265218464799942123610568591773806580726871367346225359132237616364314082032586652038417992890712955586494780499968403654801418952298121193418109140322046657970674274539716095893788064633563840163945145343711558859667097236636803233403932019438652206186340533326728069973491195637583427428417322932639484309482878417258803411554334472828866376658074535368484913528546508104417597450356927502020831116896453766499481643126426764448169812761037806428876393205113787380035277188164037116239612277647925220584092441028696824766045576495648766653465551201235368430790026129960837247166867937452629851753526916469260184005947130663695724495588374645606757798713528776806705483280966160421120845373786694330939580166255632875969970085902321361592866771303297082262222092548065105660478003346130185621863583735462719746725927233489267548161103633834052881647388027041512468392182706960836017418644572278811078604678673916589746639091357383267145160213002522546667896729397707474506092048021411552535149709930803034274909460684269113249598996635702976627291197783061884803228791057210647285846105896097780355945232363685511031054092970736889908118926576677057410590312458851747478212445541052938790605446346154511568337073123641891821689450866932908610004188678965955412831990675511968105900710734552972152778868380152973974273118586633357456317086582346558834899903699034479026257293854334346617746824486984476992937860004471105963998423261786882570702395585390740065430951476949825044972978613648233723616654908399778651351939724423394575369230702177663439504208107098251029852860851902216018027876764990208007256066364381435822584209877169805276383110425836087836167441124197552706775268150263844899363189062240121649123732589527998462291595931921500927035425633278293496184693931734149185886402773951968608220064137972518511714418788778805343331739542181932435953388235443521526579154384968578119183355110423606772303676349687611802414447663513048155490254137300598691371683830090986309425034937816557822101344202022051350542277437495748169522574723118564148431169821034720927394432952379354428638785369311897013116274738729859592907236067259430590644789315884519615931944079989689033408942381921076854211868659831972854166170556251091984152924633052808861105828002348776304332471317208087180217576471548519453314247654813982920870669899034053349498211150576437593527949573803812233377920261308199494295573277821347894386179671432698530597551508503882417308904730607583496149922992883493311928528380464919017322315389134327502486844423018827393123541233525943017006344962523089470662221498991693169023651721691995914731742620889027248598584735034249232380518558784781295118485796071164830602491345355435611083504669744266588054289452043846704605932595806272087197934847670984092750835070388157452127903570730317624341554955832631988430570330615650181159425894205577348343690344130149402622941532142211341552437819079893031163658237362214928035685013450191299220396078447977548019462538773247554584697990899826810206623446911603271567886953446875126487956745958648307385081070185119362605800027274959731546439805457434746156558652607195812765243446607161926215188074733588933063295763496011830198068627572843423195557162616968642793501675522931499388361184016938683640438115305195597422222179864211329857089685173198419119092200353077041361133481521695470758409591043231906250059023418984509376621765882302845932501789320816164785826916812995783229510044835098731212503867480745081814491148025359569440467409392640750976824308540288213939460490120027126242227810421411593889086782511849028503847195522498114610516304700709203968828904036424207914595435570515256791301149685338372254208273869325856564928840387397517337996728059151719940157738218936619830844595090982581344881216220564436093560267834603744325339838097957580180464285302466238398070236825974004726232148936609689931747945467481209162273792888371036844734718515905881044166228738654766037423966006430131676017992204260702243660148022122113379548627882189906289925352981362555840154160236239890335818849837895718723115800246305367235853246115788323193030904039984770408169626098985860417259268398578144025974376480031905536997349190706560944819888793110770579776314245136099801952948439719967223281953764291625900171684463758530923978496053293803531006807708087453762884097072551877564949077121445761866357697209884761753264170655260422762279150510056383916624534173532534801886539390316908953111407713078000680454061363199707654692311764287638274859481784638030147822227019191032977006966503325093472602216954476498127844084886614842553166525774162022366015236099005741587944827420151074249196995056849306689747469153714097450455368482620004272860946644044776334199716284280370414694032935726955426770772795577931732483813576731910029515383611649574028980824581182719530250952525742740518625206111340363862289387573481700455482207998508271540661005896404600981470358220506222525198828207688715378963795461141769682481007638301526132431364760701145055821921701266824324468702131182605542676481601994686031420027370098826531646669642192843491589204893358928593738692364960235629903639489699795208933894626937782181410750950315020102791029140021874730431318699967287070338239819075845915573378663618236273786197722279706336522816243490536670027578704610178193023377130495968963631102990959957436244311383446788968966949464034279673491843201958751782897983018518722695847409402656789209305059164881047080293773722933377276225503449834822482894433450744662937675618678293883258878036165525351369772527703431201150405887442312073049235885942835629460273429028068138379261762813310928152157314253531735140844927781792538210277748872215351559681575060386682384259147147705967035471394685702368515970464787536009264305970324072766145941115018173258159196352563346150896583911491941833745450117140700487860117481505909019759277792012873618283888374779204096932149545452083419835108366654650685872023002406296971111975504869132775327641274825536678508828708209040168927949760880745156618737472676143002474465209385040324016827367496578420656999291756530096255374408706239121989642181826323494516757729704107775279194370828601915722456416993226338975674558408726134324057299111340221920151237140217409475961581829616919250971836591729966225368241895694995519464014171687253704040391993818100813235057981032304117947446346061270105197673830257250367304227679641234880134860965912631904410617991155681248956031873281461693195046275140242558268731414726961930161769446519948926731092795082125318260095867611876814710713172481463088853161224039540866204356410656547535043653604035876453610769792193072664578006000216147611714947490528428368642581622801042322791869843250497748071369600398051852949871127617448950944911024917755988911285021053529647229742350697389423298320506425024965074126607188320609644971220835462523581122613975426790868920832675773911971423740651314097046743223912532495425558261297436955176920837433058418069583124716157680633600542232106230475481588208904300352925593186530608617886918765388136424377166240182412629186565603336786073315350688729011315452106049934879455107685331462501149315566655597434962391115195874644671877218808179649337079340858361155792561785733320234584212866341093264220240749096911204195221860282651932065261744023062925634209167297750007377956161512827575661255957011279425877969856899257028112298022304593998268653092657458726733627579357604949377262461914969902903911183473253570324481313895338593078012352584839105108482689303963139902434460791577229719251255836192503654717711335314567250221355999825209900908018722987965069024478646984817424567223252934004655122307850860843168774329510437561151852923673885091199288525485627983706744146334832954665292492262422492672823168099745546254488154091721419736706128785816836138493439841975784300688137418293371752954486013254969855931121151716301975323238272783951979581066097950299197206650194776483815686829028310948663142526397647784148756040244876268462022869077762530828366578424396379116268103994414319000743199470920336877452898412036580352357389739183536114591901950947424705286205500098750697250051596643998746851004584675570999377619862943227885040615070842066118264616674368025159133926914751293145465631359288411515735617164384146878078594523749073437890708055427764775818942581461648250292244142439619344296324857565887372122177990716661265302665350725264478904891716121349761378647796466343148495949855650934835274361695499300296426523671736264892146687524007736085131907961035258697943893160096316396759931006943303928412493881303574735217327201021073815047403810762172953452337715850787540510380224361321184186989104670365101740355459464337342310827121661927038379701442308543842842262424534204934899211331819134682312510535860942049232499964288038676552640120269280884033872775985100184458645269332187638773771777346682306212794575111171437131035840449184663804168068904217726037165341498482343647134182326329640055165194069045287510813326231666171798726228116596913142573022915836069005104295332398631617291241853833698730711810412488493836249568029282954273707575694229626065809325483288830725991643022981969930702578319720824745163910604104545601740099288375219399735884831885594442208234331688805832030877408928624487616677921685336800984445691424619433290296376761128654422193849917517240841919767147044593315909987131534204462797145527017270815590624127021857629259919665493437408993694267410221283897587607736001412210124835326894579351324720535046095081212939150368343972322022543675577079009816938897267774385448812311078983545348637993139614113902903608777737810701419789845533745317246634945902062708605854003721647847151367595120516937483745719891708123370650684027564867538528066494018421708734380888029752242587193521872708800177787493542408347694350992683553319247789466804868680472004331956149790760173957213291375984769890968893709221747947412392528740373007340472793496797918954788205110830560475213169016503587629303604085107417384819565476776459036107373972645348154724911791576355129739684222268508616581971108012325088349224233038592694057012348235331838304910225291505196926124375515467699728581016888403978695970163033172975897391665925180211192187294912892998429333084799400921295603068049650323184509958297147646242621730079350762599282832037732664872488746223595328706896129170518804498908878251132466367588298902525891147951325143865749538077372974635270901774674383996646804478894669169414050396653733141558863064915775696854873033337896978833444437927372661363485055543916577292698720879512160088276054802337483518960595979808783181575786539573827658434740161182783587836485441111077400887401923264389925530825432731463329875543760985367836108387963260427935077037530789755909454384310503626137449922493564590298052460613448966331170342504325234529542228788549850628325547191736310274859815926150490780400298612771481542488486330406597372289334564950264812715255490506007357191350020279434529494270646979754645790731361015104611328617909517097969829700286104024575693484189334619363564912124566902598547096483769088606507281483836087664980415368978197260107865223587316951531101160697105832922690766679303956316420952169558814945322067293558476324817209452573983113489894405536076741460965179122734635126888119407458805182921172334133117738112000967860640489146813500820134425784668942403807547862777329442347775859388966888436714263080553766816785065292712400170571441497122448697176171278552906392555531247662079850313928138670124839905890752748607547975881516946370720748856856862052623320747426997830011651953507626758350893277593569546730661977268958670291559238967886356455795329543239943637108692911070736379563267279465804364006905731679337717353684544565780568039284419720867709848228958462916316455031739566164254903435309647867752724953281036531922561136362917436988801924681474317619582921368707071774675156142870536780777908996071145513473428464147199895911978890874780596778157961630642522205503803965119664979574310585248468757710487992014829868474555411522292577281047465402608260332359459487739423407628664338830716678890126552905063207201419850045033714577708868311245036966492223933843595921066145748495123795644938224183783443442131195528255875217833839206984599154556261329569580387570424134778358387800253755587733862003109181161280938169106603804213688225139942904537040637372664237093939283069977657860778942520755021211811920315501279846630437985806721200342158790532946136723032467139985913914743440545327434143924781866228324218146436484698405047024091228335441673410354149636859418459898501847288091202365579737386047844394027185722981600842997178579259227370356375383150494101864051429691521645804491028653245223774692574158188199563010892443714270062314209131762891455167031248160006188483046878257865519800732320009480843690405284971514718110944919478209469188732859813108912348029280972160897524042500854931170578506729338832465079273613851311094987628125500229520379199731122948667821811457573956920502323895790826478470239130009915510498952834558471824526784434437312723590371799888787997463465480161046787639551979232232089435462043604374593478288789282140407971993816407797475518696813882499077565169868961091992972144757582084851517835883699998935940369158673336059782005127726690371109426206774952606945665774990450185706155745730099406612987677298779884959821884487045135633670494932412955328938462924575408967029049507593318583674155510953652911468068501528637117463445057693170397347154570891169259894150005369763680730397328767488621713239660041887404527123261583118631103613175020368421051971115889037421219429383582892104514327252507677405646114212944450697722192087148749080629672148646395991339452743224515298123977185514606452874735388615945764902163788965879912169353965245952053429190509725243602911620922369417934820915044660208196344209056204798293338769021969172710718370309211250965304397344329524798875630720316442087158581931135849580848486388554313568214961320258405789652453528258132063638094134406809503747967049896593901896406046206987550774160271009411098912119741663414975504483828293445627100351477681890147407997164076540484965014560635518387594801752064785848822825954435823155627444827071140904722110116076905267160010051711311645487868549702094590031283724164533504546781432505362068562901193217623111779019477356083764292167976292972683925270893706109444582150769655905532670818444792842991267028920336304379781737074139633334534422014636687229213011711197321726717304451189774010527633844639424143568802128639710968007671465056447179874595970960216187474585629805527264676839813196603362556875564741281042427357576863903348397009479998265450463003521675058805834179017537564502325354824566793996345540243996624233686975652715578055627817785026969200582536627655549531341784480078514806073451206376707980418662733145772945371932030101771705929589564265084192271933080135005385375256646470399375100297877301412190013710368801688129699640277119015513244076584182165949312304380232447376153842074824800605013311227252551080409589062165690288334998186533055956315709137979505091716384335399853389129279181732826261945819517914253633481518351976473460574363739836130086138137349913967209263514267702304876849145643355519930367022788470816596008634592244042031432229846798563155886743945899504618519450672998477674625739979981732851084128534538579002752956733050207270289872891751409650032816875829934412341807847866546653899271461320746316229620119077789248683619516779339333399746264695962512842373854645787194113187428874227793607029408850820219075930602767688705178429810356031129894259884457118315861313117096697608685514121100952216849243380862195212716412258424987159870727870175072591100428799840812139492399063458985988442852124926036993241736474378643665587668449924719461468256796674323516723040943808622776150024276654101486241001755726437956830346985440501328322362810346347374093517801962286660483973500599716567741193574747807092787983660960643769371232014526590370305162378224778341230720064568009577191585321851529040251098045412149392839694223973736287843128452535492724188463452163555952439353229822046261218521365466978667463137946043650367581444760454542007812935010094108467734419473291085443816529222924630076722597273553651456362408131357415704201703374833618604176478679559748842742893710383712619541495117573997563081378798567445722318923868090810029493644526576311637579479083921560074107723226247012468451067857812352678993766610891648430876193778575870746044421997750232521629890184741670915590804667766919651036768887783379884418065567154520558551118963349792973472582251635021864439671317221885826791425841720178931447157133021989841389457370574533855278352169002549259100018152879313778531291642683297200715140359136650162412467906469471190791476532359285269352138097988774826018187585475285238857837968111174888664723063856548109512566715665948523019860046189371216425763725536982011509889475701261312607579298714285082418105333886916105019556537406977913927779951290664584650938599356842034241535564003995225214225479099514188271351982978704735493848042898037685924357694955401025902292175708470087714593555936295414259424612788103299462142239683242270025878252849105183790876735775590073634305425102009665462872378300567768135800489839753469840688964332840929141281377251185805059609770724235590580889818320872982594610555091388117234843892652688588800052828125535836843777495279031166587540849344793411204203730388325275923387909615726071268055431778096982808423295896496651634378462340587479429047565506182624275053030881523607305141440404558695339080164281994322459095865963531043133471193384038598820798613239082657930382357421349694545877755708031450878038971048162289382459918879103177153907173059506332255776968563905166553762533015915588801451400192598480237419504078744169766434759170779715136252878116946413063367129583674087454212651528687534827784324716401787919123416262311377022995619255049975764450864062333150123776953524006088573242304750842508524426861860033111829412708280325060930633218512620290426741702420472400388529660119037405353640855292064868319127843872330344256884957657916058946994576566502236898152434308715990207881939892609651434946732339444655819976182663875742638389202306274258271383974277078913026767330233281786964123318922164076973346809053189109888961080303789109642563266878111714419082847593850085736765876157213473971258980640731624728732941189606094913802516916534253706604042118977747727856197496542476832308681107480136656924144801545425476169832238459141494316996041374295799495849601922697376204458760099012098445750922548918305104632255402521210854537727967285729121332849896825022424882006899170537792069931088518111199864384984742222322767394332559377784405914427796654322509427994142904171174260579033072882945919529626900452353506549392016949817594913479797458039764365664941687361070666707677715497670677964889709178119440160261205164702385464446928258944903822685011812348466849894976634410998392719385530188376709888495720790845514451800340182133027286921314048315434931020960200144081947571163003142100467462770079275927132737528897143713695841022438155283291622402560052128419020011073139303378128045533407716952182287953669761909510872719011600161669850488103468625447553371803996241300820623378859509555775152306396217347615619400415808496587136176706295795403686994816182214773829278149037000182024334624973360927642105954771018757478146808465254384416187054555908740895842344534125410423162226889702030717541128051575343099899577464010476893845570814995583552421228777519593581102867509000508609918667404926407092534036107673644170545188566352548010261932931611041291963758124569559771253014434512839708995862906658719189761446132297779873990538599124170423916806861192750882652013396764511375262088485409617166617978524968651188239425864371941875332208943923013720225216481364326828448189569372851316258856254393945008591523447170170514979554110090970701702665417046803247955839891603654792452098261482783896882710821149855709579683653040311506980008728187994093360224779053165148830702909974735817870367973430285663534012146461340267496832804380637757412960312808477284006174043945052117629118491334170513498619644607143221565758220022259241266678101870783020836821064417369229254471017501361902119721880542612497198456422476848301570775517230941477473301673425474891905943068608663971644188347438825846782675032812561665576855900361130415109457369776824130461537665027337922119053050426008661067457099934194121569463222076924096414068517367156116015995333633091538894768794722412392403892903971516182635873610116532150802989809301657111380107032491216397775797005191413246855209190625985622704433142290950056482625404095966224305795827116905728252204628716670622467861285032253867417911078789389987083801847860684137898098165381684770103713561811403622505731486916077484093010161519240898921146946185289297582159659090835936399064515140987420059204585209653480342459959931479351870882419068833489601860709985890913226210673308519633148865851025390935217562585030116446597799982933610683216562089126314839150624476547114974783134143638211948762177802385883296021422878416368658617074104090376721131199580115628300624192654366131454244880926525287551214399803839626311116435542863862979677111585327004900525441002806312327633664615850749012188616857990743952484384685163635507760284971276914995827703876985559137517580489385437491271659627538056704720600293766994657108837353418682564750304864735220191386001535247628996744794757413041479525722259350597300982660124695337939732693230265659874900841747289462727971467499476163880201109859999697786937161832345597802993076464876017752020423259841219561746298694959160894208272239151815928530056641964677059313801326831360689371721081576996898522082085533490562672208036732374673377614307050882012174423177956938202207348241514400452953780372460035557476879542765788578961717551473203141495446131996976954317605156188488435924681556229706240881239857011221143739634194456898973225511818587659963170191823264561664255879060057747131584000263662716178421556491389753905820482808285085945434863230723250406079278691518704440065910140320606909076916839124887411217333719153241634254063452033811647026687286859708339176089820267228246972592631113160336001896769295746879260738880688601486697473601356098784858886578631691477343875419805525361743947342162078941874810833708226498982363956761402478805865054391723641859955231626370836500638460617758062166198431404455642514349421304161276692355780741693723709591167661542060615862016446345771413743439726631292330751796560573103511895356359460408389228352522951975393764724960240673869941924165736782605523299786892555477537384433108750391647997620513422365757579909335314127667731761950185469240702468723916599798808329166283020733434376444558884184744665857860387785244619902043090816683347673734772794875994593438890794660748421836271746050665314586746665181250820588362669765439250963711152718557326681161295300350423195838428220928532315688272239799803080109801676292904131607669557810624228443865447796979000297197388727288549236777599650689893451182652318571913320518272205425436731093147738010311853607503154307960170350291598225110427130936564094880967943456922439327046810293330028792230013625975660861981501998149985468758599877347160567085363919435779204290513264303729585093478646653192442032009513384639520205926244240008997300182269227431562415212729522637453993646758324846635214984546192971762257785676747371683274377157129176783763129390058548995136778950201875694922769395813826994710920661532570604390523144416208299684711807920292044457488705589044023844136646924761728752539370767937925367867034143358605048105283627858092648069887838008106732296715730522652642219046737331704048409408436937434787042874879969281772347034946126648045324362725777842477034419747184372153540515567866266955288159249407047680378916009721343143066956740320538908167346371409671292724248278763359637352313317622108555313186743493667008538639135101304841815153646957129577150101651426355256995957317818389298802510585708110931265924474297264541088371903494413624006892663608117404787556513942368107308083722562824012397968391426242500060517140692030674811421001519782845131807152229160977633763736061254007505291248835923632917746691855926439939175367702494229204012179061096404270370534200546376324380479782840236757133271101738096530928116939737468809307575975305935359878525608030192040280742145752621948734421226994644459636111727520139781031322064362534398380905717710083545529291847190772295502798024392924119430016550789300402105781014835210661025371312873370097011206587136042140112996698692978070264015006364154051563088008718265217914049593019457242350485193859974416911788374706831937013936900660916583786126531999592517812956112268824407168741278316303694685104131125189649551952898897146217957208063703084525777935560039709902534630277154540565963528003965187813530608406723701570395297933216082160980041388594539846681304864075296915247898932574481681513028679393213844341784113325601901760848712714413193292944855264387304831631644750700100589433398237424934132388765756523282576258304659192082728241677484800442505385798183423767408842766763659500957721226184996365338298501440654090931457668959197098658411198654940649788286822098911169034196461992973595199960469375662211907686840754928111064648272028888534755166614452847166049755749169013264274775277981149030493512196181006745888586003170473475305420660092772629408141595415632444863222024395852482954963395180142303020423929735317471585064553851041122870722825207548743797671484498439669678261085553504093683364055473496051315854620109707213958254065499941271058704859216824274772655937922795616687347900970795301657451390981635636690898948599213341666426425697478683254799149943156280415310933660139952637034905856792809128623898346395516360488977217010403491518914068709650373940732711512797060921157304134514068161460627976277620170472621255564602699831471118965175694127189876188829947795102205206706508549552705271914195965706181924908095380174748211661533322362539105904392541768937420710662189001304320471856620625013361694722229548170034456994590250821791289175581041569057776028821029043344757489824417396279351014525813271284431711750539960131599914690337798765100307304154174406779733883005538288205520562657848136191322576316487541920296683649560076805251770726182879651662778042792652425264100607941861210265265855453901582853281974446470925630600771162705898844016530165111880285108193814480725181442588509725531187209409423912295506502889654125847675686489649872510727655524870575451906549810232751357908821168976025593121796415412953361602248197633236153194367819923242209633976774299531852868825856107094598946245021937985281156637721315778851548573112714340495632761318209244294981178969864688064671415433474706070132793232712437812445540530183536972728840594197750209477051170830661334959885738000041743429750741471100185676963598948383419239306682857383743630946624309531221685196484283686620811138124794258342805257490730887427885748670708465995241135592320704145915289510128866097694452069674927103202537601786501721796171657072585681863865538680528743725469204987183827978944432458979888543365730186657910063423873880245446463963926226469258066796918319781998473692333230209205351206880170329882530102194471023397142513976227138077028795701697574734134035305460405587940685339476532143983624728727757974669424715247188792930870999479669631092903190966931053887610317835802028532760070631617569913967351573719171421814261526155122047231603656128729331948406373217265528891893185783376653400406870012435886926715076449338580991395715014071233884994471649266554322650293118418569799737433889658211242707433756354511687374684832740469876122001925004954843897912797372161537379641476329240427682814130809796744364109811009955074095955679158547059492997573707493311978181839953559235961989793679169860021843946836127739357574347935297186287453345165828768900874157492703830448272877864575457384610438341138680117277812283131109262688895825946541879505306695774638267054930558228635820981590698726691195616060833533809478779326890975213985337897808167266910262523731329150430418116669334894557992571631877627120939716611797261539967471367265378505232224119904133629619851549032524272432916193990521512837753012555921534315250777653191583103713091996112095546409242801204947375500786206943096532123342718655358363804603811772299441837949218691785021315774800500452314059779545336759295344436714639424373606109421938803785725065662796930614697040927249822333739585466403566386459210699442195213841263771982223826017428364276938408606427612915681585349478773964229400889566582986990748265725618160849906129183342332151788841228093997191552329209204329909399280937256980106829233867849921369984615401905634654147305278831138139689853157714732188905501821212110449062968970663833130656145993375412051854304905157763801497041968283195972752421407913196099206299614312435620574469174760254841932795487811785057364047809748919562840461107697152841823336018267180257059374982682269557639243432675452680013123730597308452218574886293395486070315132006155112688481255438185647052138583088667003656969088953230005227364018215539690083662630191094657486531159235335841668717434476679816698921415425305012797283894740970468504052583873787318217603373657193724774073973806306122398255466835233392557188139978009569690730856421536546463882553408059532169155030112246092979613885848033554299975641063067624180218221847268099023082734243712279280098535288318574773743464566218154569747126311717070870127045795126388550603398865005500398645053043264428213866526518731655226123041875338137656683400522979731500739365107298152931982060276526925146577835682051649803081853858132836383551048294333882654083537266800930612124029584208791579712435453343801416647637529921947563661898937061486266444667505203960462126249384503979149733389379855500154657906873864324538103126277861967773446458698233711904987454892199854894227354055643977894394631773243923861522961916040389130581915772364768022910701105687344282626485659627657673214615033903807364776738460241415380868868504153078732370242580884839545456877043035152374708850119535538240143711387111313256010800861912942978161777539273524610686885035660791652662360643451860076009314902076734836287887744869869830216397953534065833329750219153552305725074110695611298314744257276144517358887082374296908930381140472397320735303284393170330628867818380563211791399066665329312620357796052250334573982030479070217355538382040847320395961579099994741090397203388104872982337185235289069789180489906443263523230887659393465589598686394099648350307714337441129454079254233374211515133796091433333329573971268108907579253602188189228950719199815333583192063389598524268640831767849731068383750839206099598564688732680874803902394196804077280315499597623337180431024302384567502954749921979524541362832239933880208700329832363120733245733641540448561830487938351645118782031196687039834544990325921131098405425271945979682941047890974641796703667139740912231902821386818630949251887298653664627347043788383119225912825274599035873406042659777678224589169608574742626541845323992108706574277237497178855622268744615187067491317870557924787876672492049438633439747201484759091115489488600860954983470388267087251074120666133217750427958589810865001336866899024798853092927530860236151578020362127973291382939389510141608157821394152398023351397576001341505650488625360214070917510916906440336206610267085804702784332775858706866347472063264745400635971094509298164979010786372006315369658393130953402222257049535167333112879244599381656364294260857158825661153766721498309049496447247342134853570416310342737576214340553233111546604188151119734229271808151817455468571722425263816183602304823886154679022613575100269990366619210913262216992448236103103467490828603041822825044535818394456330568797960531704027231198706802661924687601313788603439690309712203936604141258271730647366219733909848135384536957469921343866804935968812311259245104576042804615283599259110380733229948033771550003410495394072045563618481988383987061236768753574045130751695519929975122204027287351530204641503798893323429373148422409964649619851280444586978087898088219440499417702035429511020051264351375822106357970194894739351633987108816088783771929574794427066590174588638839133727979610381051425858373621447631541804255540698460612018345169793597689426593935554453883372916981067116377756007673609442974209898621985979409853722525773851651546367266713783068557890618427825257413022371521568990667162943548148933027273708492506139381634019206697908519942599850712831453546020502673714428998075890806061258839265016732996868639126680359263246796174192120540444760674976649409306361478451108754471946527479681328518648517475954346261713426328356976336654288759237769499239337284835868432574793892496597973747465725346560845258758610647629823657178182561280242927012276867741378736750521248979608012958154169340487880401306813677987679679861626089176253710728073086011965430538292903297153132635178421603632347551647295907950419925453908790450661680497032949626091067972286940245206523419062577603082422288208401967190514446971276856404223206301625683203840881182224953001731458727397445285052028085826060838029402098700335564879546949820653736348963352044243640045952254312704257954916802496944744805622028381774146538562825681319065303768853975343915842525458892064139274880470190793114391868693592065516022203959714609003908996060913168389058749460916819519405122477150052145534836479091045650373307474660079988981428727015325271143017987238946414975985328466320612413670288185099236833228787656889978450522706649373687769094281703359654147417325744404011565541186696788445033750548837116868245447757377953250382307181029140883857837807745056431898644312538960325873391367018828021983192669551082560645607098264087847166507645112888199781910752601392014051875432400428677256290723918629450077475740053886265220536796525379708120008773628165036944942875737869291162627058395740156536824896824569161093819991499348768324145802692352352106176303192696979429955678131149699981226439573274842393413567335576291419817643419272230852299922269970221603104084007229421163736146891569083478437241640555606635336959940528288020221725521131050634725530837797158745575004833173639913979915488644005429683784027418350681960230698916899541193967103513854155765901388002677655117686011083434155461148609409322013619291881966996349670601560967518443535815110397934192891800309246638574102068266062614002633661987198390135780618325057671367550615319947173769060148146462892423830457918940695186249521093625059603476676559128750722495526774713029853979013747285026332892845061799080265212649837750932746347279059480061260611597699390693110534194581076302118384136437551280954812202758702044387997446787782209919118494373845244264554178405384978652836510934208855623134636707343024722133829320655433162140596389645632418155359121188448842523468785854996399698019927460601617961128515717369871111011154886564089238600568026266826244581291491281077771171741203139810163295731227844963514067459450266848024004447293850676976278147525118884658786079524168859618337145234278646248096177317094031446469626256180287060688989843561281003829249238411636458802616200233476372200250509766723219273253568636399158514007450419151108820070828188095190736493457603841554920406122499176650279402855977001539555078886359934284376481763771376441732312983965594695002531212934997721716662115890509863613640421930519666323722035230524645026814295244980761055685889176313857191023746845123351383530833196180240466458539336875559923460473726539985596086674724311429206469491313033433032302699542592299828763621951314012195196796743335883523940046738455730617972842687655943881652316378992052910236035765983457715851920666067885185099275516582561505945009543078632525741238383914246734018650009168151667925562537829800722812419670132949806960738838888066161175419043094148435984824172779604253175743607042490514678019995040522490591162023021637802295370281641483822667278288265438553888693511392256105065876385784153421880927872878269536825272982039949254930901187882142715235443937155761285363078217809089772270961583266473116544921759233330322494586405306199324199602803834403808695448575626176790694736648867400291235815986048297493870276159830727588916582728688193133949248530523693221509090199496850973362708780973094821816408632641822308528972799833241127049583545185970015464016003857457604796519143439614900640999638096326531550915280801937338522135207364046986706219833852194437578365396319785061753995935790936907542497772299856443419412380084063501013561203566824450881997241298203439735383161047322037936193248140076677134315404031563198230233957943877036785994916219009201643625199840244031502930726591917157638381004527876177492220652583862936397462003249698868808005434740737823719381483732011193342346717741907676143891821598435710248110866477430199641646298498409783813613279543448506150470330637180986518923034970049046462730167515490978076787765845513062332213150331480001537031992816994886054140604380609441786838570077060820190256822837316776987399201874482536780734159349560030946257529453934081120880762730318101851095481810993284931729111408634757946336339606004305286457048276210151584412065089282447239713541414028911830624909702077906202543983625597073072537363390791855813256773809769918032930232982432401174165996449782537335171612125718496931701978809017641526363866002287547117470635659093382678823005075781385590670797884763580525195442016073160072399174184176938850082950910044029566054057464945822162622603985008351279776639436701124989109712398218583753169652867499717999144641206778419778196930602013759623068196301608709325031721165666423395950745237813085181675142012518557410005744817362666129023387760130903272883064626160571730900861943277093528413394773902426337494668401405600970775448725440439481487009057230528362879170092204590316699497496721973344651163777773943303463091345989222713557379165166808801082008945805067754435703861652468597280503853606841675474383814396045931760955691399766907373457619690685988923668811831522460640812780562073351675826563349881735377780633937004538396165311875023057979258432888238250242441660160533984409090335314739666609408235252870636500249739758382301120202044894715349370893753419955472858135185640258369590535347182136592112183537198106038152133713702534455501280669081489657946907916482565022731332883247695616672246677011822290655072236375086602708976247667401926092180885686201604610255274845606803269526502358128259374269349338042761556585062226230611598149581218336805672985498062480763657926291344744777655389909314378517556949978640035227981917254792194209573826410806642002044624510017839207260001641157077587225370770999807100179327209936838547892217212234102050526846172323464190471356253655370338847371782100881625252920926349291431706501049924294507148064022287388773669206914930898017491666763948267521859334592857994124447424928303111020579316700796054059126229128988147161771399176273130382236349885713064562830034978595996650626432506263138835112159118233134595112811487028867962004582422452435208441783836901519301514245025442300133747348833707422362384033137851489160680873302450979330349365107451576882487838391537887575146098141664490562332517734214941022108949573553981100330351874935302136793746788354403946901711309864991320526427429875666963147481230841340239060637100182908856899457575786109420383454239791910495262712928839789533056826827628270532952810427178587087713945452003900467855365988716468593009138902332331027818467216924845730601690314420452990248578331286137721395299048513035701854228036001927672759357069789627721716908444765845611543176531329854854310085397110025461679447562570912432552196644025093334900912169343744008940940982194367952614638210630663601448743594922963959195439478990021864291060042383726952617357449612627310457297311250147872598916994827142533208425531392207386000360179398730715429987271147215297121297209209946504840983951290920551328039050397568852654849301716432540949526783265026673812645981220680959696703998427155227600924647923118528441356221447925662621490105209137785465355071925761509363917594947211470908891739764152473909717207009739025836451126015962987375163356190529119398243124663358307158020610294749269823856059051358428002885566734591319865122215577403479492328930789395111530114876521501776832197684774935041695083952362608896494781008934516785270633046998200623770202343980509425569551865614335627370395998482268766258284380228696513958334698521415438658247687537387817655146552219393915821540096128646283728302341036658736228572775222616569477122005378662402063853673589507938629756429388138741855844976041740441975881747660279144596694041886020592591020187995758580179392299211068241205551283492926807516760479011718989912635598726451548472146526384256479971241638148535649462425076047251541581972435272681084981234750749090567219678935752177720886029398960185951599955880709863231474793548619018155391792242512092354915154574800983243015516451318272799648530089781408096512362561296895608721721369810052459221604320907101697809341166413193250098384781174044231433953987438868871403050402512243478850357806396834009172302577949891062783528134651257630321400471516239362836874561949264725652612065231795445851631700141282513739631675259227851532337877747102819837978998993606119804316387605114347098314875090764896886150560771322568367945134193343052396092587712793195028392762628850896374578514398092224903731593959123318420802018892264943470620260398583284654857462077803789943793841606699207912443489329221995595259695151053073744114648969773524865874043096906933467255098038126052033224895837209437796262848836212857431202317791579711829935427767189697789835160610686644542363142892751511458548971773185189286095517613650378193598708430970478505558380689081229415880059106045275445904098213686767878558123139610432145435174681846462910564741247269177221999341425169700272212006703146146381380214913047239378477764145586541282435255056664038642852840543213812427241267253044281761558282901103769208372852911238453054170050774650462010951279277094934808325881479237075105711623408040715130987221439293314493663739949447593779031163169977318181019187978509255653539170453236794562344848055429397811015262283949454641409372081335394426042050458062629883374596576918807176802466240774375715333051372181269030383367738535786248680995764319017172946222486854890768260064210425908428665206921284063214116411494315570623775461121053127811775430347914169278293516190927264891429516745718921336457623036737271107854868338129190679257774991976402799743362664562317992615510292362837538245352994938836890441539470152950149608722965550685489568107848008756157084527027693846471248592804060068547307001346772313164168602396263659340723604707425436772593135424849164541436361346093372350059045712047401773678773061644247301073625409378398366506382291034983119973846328387971455090457704710531209008515745597004258008834059140505885182906522856079988804487253369533729296496513209347341765848331002744070479767833516203192112990037688314963232716512247583714133988473126855782518164511271828304811265437168692485313429599769560504647136079399199850126776989873164160600182614916496318494972102465380243975390206938112137834078121697604212064065082380676158897269081103921266294689975447288205195430305821336707901986426452758197878238153230436748272370975234055071098431875071346023362534127140765584354918562734239850138880136234857768668614438495641643022840729449363565987315445922724220549436160347366860376964555691286984487041853215060343176172886830259561450032594690903808532347596740673298429270763605786413634541183593630586056296828360849025884633835507119501615573683648082778525035278225880089061029063055552940190237142010631838345213700120443543245640830541663770769598066958332565086191185481443067076365323195857692378810848866736249081441213883179025377704788529898393866817358219422940557865953515147506919862008453176846238556408061996744368236835343002585808390945407059702426875563489953301986356530303950602616799024200134283597971816788076107141127606342650327278228127353807294730972047155957249757032750291712777330165545715100673454611158163548425242394208843958289963429836909261695318360670311526188357892594872084224420908854083893837026340959214039024105128928741428146345391475992054103213539927797207880189746269793040413330020072290570865505847135108566987543318692978490322371883059335696166110654301097922994796346829105337821535532299092335646927578297612089805947683299521480197951845095209782829163867949533817025805482506709648255169188082416032513777690495951974651233536688398470432510781578000119119467757311334207355317351667362642277160378840642445974179216429658716396917731588848297371546193161084700919908120547748007671939385800465668656914605912547475601929736655373401591368340978511024395163809400960460345803611093080448203390335080489619267777739129499154467743522251980391979404362632936532182883864327178782230815773325165663743404888354654566016031680551752805860523931717184448968657384690583094389893948276933729070048186403413539299547326735475802587514743747861051028712501574067655696868450857033254820520678663568642063369838462377365951056238279609977922336459880416305766767017385917658961166479858590576717219264951157164058407678603920926306275670457024920293284996300353326471242527314654240743397960674526740565223797249159349985610916842231154814760550671329390073076808639737106471749427578569150836720301716676946859592803389174221248101916001240594669981944786211784506533566187907163923378688503204002547349941277915248499847836693150231553239086094546649824947910722916850873756629729306092514399457727474074552644476909713716077683340213873758047494720159616346865920568985331693046980673177606933603967841277118858449466771920648052647423386021324054203507283562861713104992391364904153890889742555823706048542286219614212686953684506311099587831310128078010836575422825920436394672771913995941866163838981622828165522590215445750902725249806473172349126843273418883115977748394706000151486918961986875040519864937174826293486754794383048666090960985748158394943966417570646597847712714792394100546326109612363732595650540166866724084965520333940367682461125698629995047417680817868274512051299915638967117781861245152842434084730008232382749510388508632095059541624339742258856018148814692762646953736557561664304038002035177881338955454524074543717756222106271407242576677609268221978905032933748208901314677302256125677709444774091619273554037682099592453331582182201817849547477473225047658372387058490937888103281216135083703959100949121635656578454989103674600099665004203354158748605381929463859283945833437139506353913917026963602172149357529496150245113068978978028865890033722230853007951428561160629701353389223043751611431669666796734400719021073326948150055596953787773984819164805991576766207350722992293982077429145498514226673435007318192880842955705026199108097531745221830014211436644239777436944492746668197124505844613057544102330337234035797207732039523052328617481815762116179662333060107157345568245604283644012512693380284384573611048290412560788198520543130163537143622841347451957024074023369537347820522957516291630497998211492037152026756972277142284982689762674108634589373627475433967403734179385288022294596156021964464610292660498815502550530893236230051605788509657529598028868719481876006063436316209747674579925700563948926038843283521759636680302343276735339921685608828027394295496282814015386835579601710178314712955168260803239112708782725991638005138122506189192938428148377116861829167345823660121297135792938828125433134446436877974999171544597779793535962575969743448746603570757311496940619586450252987722847511541334354921894653526777252221311317000996103159371423407666455606516789159715056630095193779370749390003358920850235271022359850522542178824296291769912313265886718214193629031795851046623169321412938929251196554756125808970419085434143724137647394312948471476118280402104598190195339123094183895281822709556180893748793692256498078482150175306037316682645515803818777640157906784265182397263524982366186016825874056445873064184169033197873993765609617344301360352308674053724230449943698995732785739998829471847021889382083059425475627755332350710975311475848257167397566587252177165458439954919767835988623248577982049058666235663273035812240616798370141464252126345281194642455903517873889539647219667740742256620647946246013829402799083769078857959576110821800175632662517130301886356184795498908557796038547093359388165475247535560647616660409808463128975816729227736409122823154255386478032337317784020707453333429205926882949703691911617145104485554811724934082902086556980299008693389639795136443334467132852562653152691110831742780658820410030189276355594193853864673276392156242582290872136920757010541942903123584424756471103806585221706440828398023356207660257527391128330449848402727336981859650134380791302382717331326938602321351533321870921632389549331899476605604274531221059808596518727481142500335743299868906245102211759056737358766339747279233759544372088417199927130421935989110320064326317865620728981225874994508288076555778327201614762202140945564421061259176391927579567221481949765797951755832406082419416025883342837631863141744881104669771900967448335321746700484105714428847593099827668978264213516997661029250476841781477441167196937227238538258572963304317850807455310940298746132280620859720361577268075611815784580681655125595526743956830389505752587477146263557164316986971415006316800421287498771254930238067747242341390596626321502581919441529746081223414108536774360564549122616111134002860684845121523744933562635249026642564296921242035834354376850309945502433411234006855597936572843251980205930629673103010724420237295294723605070118266896307132159152715072184861494063905113279453620901402488486073188096212546336871024817599412542417463055213651782166731964042391214028703799016676858590700466010834868462618941162849908860187812559741646338925437738949171973328994348587520703540040532632367131049393904402291080720591272217529787150863140083981730003959657085411927863752900453005377077823303719093191837777056725733437712007042498257158774911206108818630755659323077498733241268856053381033200305671002185076297481938085613725859270954304330726521698080956762285880771470575556839782139366941038664165040513393554361752372374017876137170722005185156938567613776093329304826239947710397497902068480326727218553385929815178769467123764483673373586511868245237130643529658056441684399119966391756497617572032793842003478347305985481397236959771266183029894463306211546610868784206595835171452855275062331920187962810056514034712266895886733485172229674203900136792302295116439629452634806835122140911627178123262934153862005179528941492188221470761483358988492371965938361973988894331306003842635741966327302994176103678282262408887249792031762980678776079818940574188106679038545569192234875990298936638463743043692033654955155780563945033948346025091295963053950836440830069939089493080834783808413333882240322885261680409550823340017859301230674805518653299167372405213745351894019984808498098326231099416615819662013023797109794786340999578015250536375321571944353407378668106845539207134301435658252369375187536344106009295711383363300618773446580568891555469154478202391908693389901131352032350404148890262258936998671425078092063808591555997150736321177855106392015145168149741341388020864021744154520985983790796622396757947700322354157759323225938090415830030371908528717740699171254212371162302726531024792073746518635993394027811574324309171294564009091998987682093319745918852222445768037714567624880736790537440356457121731468855168693743635850662647479996224232594591597260232262089728331453711016740077571338389656393111123897318154096083288536876964853241472036870235154507005582625449137797736215326899869622913331393791553858559620159337538422864888330088162904775593785180165901841511081700845162969675141044269635489239627706852957811583346964532384318019162347910184864624516935921462060370862589257008511287318559444711999216833144789809311734796798759492180041109712122269139677685578377228138793693061617555705934911220009105784228600065749455339953552597832736013320503180429863773186161176729625436231545972186623157390409334124923780497942025995545670491735476612028933221950528405285727317539192119481745898952276854890266505600740988955317217295679622462200226354267909423928915309433455466540919083491518357306531868927435380519922674830368808006447591566373268596845349383225614699547522296460755447585005668132736729651203304894447633003963071173601917047775051945933411250104297037643050207217163348156259143928852550821297107571284106487315817113251564534999244965013293931409236671442288785764666465428230553212771284442337942689868378745348811284296787708660258972048363090742669319232641507616378838512229916169859889727760566244194084517309831252357520141581610186023259637286602256701282054784190209904457813377775378470642701293519269496187201639890218686051940746467199273902707449369240050567413724923731891510350373213356976481936337161544713879288495910702737513058256587615699668321137782344146911634143975870272114691309874224648336304605183391380425591485192552914672679577132021325721762775200632099001887949436055052853846397295479396467003440889646617428259747845248744443847375716629193642873808595596498047806223817285787759302105019122712850655528579109422967098495234654854136747470223357696025880169579956663769009466595277169042647585107176166646108437704575569388857155881431271348038806016498249228006510571420895471789078382638227192940904177082836394938568566630829489355755697069810208053402960129194699701624709111823380735829408970354149372523343673689477386474126979738769791548413241844191128458197628879503693306721815486035381873563400705892101760578382041749269550067409199569789970257577888805553445042346785016871102455119273438196955374695470809525694928839773013556608271472620198356834924001160652664999011999043551451984174679120316390225356526697239789795584881024490220926906414719982787504817545218679555059251905462307729460180431125256164910696883905885553012115834724384623090663367410730517149808925870671265696846645558476409126924474494997048481093787545355493376282382358038662379723891407872879613471226147713251940264371263655035240907021505368364070028034805578547796497603258989539461836116909259503805924490855417723071626048452242530876286983283491964795126065817029884752096699787560251906415529741666881117451286319952393969386424463644617067178750423415203600221032192338722632709189904294025632083463689979714760643784319008715374051474340605985379154294853003929816436099303582315648233475910318843859029789542135810199990203478853776073927310640477459618954157763450830095023252794446128522238469799912345566196026138552398907566779511712788047958870707831211998385202029561893051655523522449558646100742309933932738919466456212400900554205580752078155831164447889451249498752704624499511218847473576786633919012694061926011035408360342924912671618570609951989052280751046255013918181855983478385912891665282761091382710538895699341755814261429298135535971281192380806335169928334721258064466397786011100151977674262135590387205694407452533221049161417786894749012968906037342424699167675738181382114470152614754336481211726071170802250271700406976754759790999460559339564185664171354722530125529512575817298717222370315204865529121681082911184412528171324850891190936083034845277423509842739026890922514159980215417059669561040376880004579168924912168315082210127191668158410510092106337222920941836793606124241045268705009045182070672355743444116261985450011203060909222974755754633296998576714608294083234923796061168670870969533766449427104009549998047229343680089460230772285338599952618671986508087055332523874136419786384506145290129938306828237291518609147591585511271563488604815097352011421300189256000590378873376489442874832340718814284354933012462208666010256594246929393996012661049604162584947495271164180173744570972504688546830463948321396420481551484024675619210443312753175855918924270708981256127152472806308240655965814247398699906512628341005667505202679990177782782859346225879132383685478366469887046603049068166624600963143105745658826393041803103891438796282368132450057239472834651377801664548625668387599633762607141067338651269907719989075413259135325640131090688912864632545171335476069812647946403498873163229624866874884537432016468557149396612252544799054028294626716788169158533485891230876857965755885494704384700083569439796668910280089947741416033331324723882392863171644821738786018180418897950928601588400929608422212605119022751947190138776264481534591300029512136951099376060626337765137103076359915722712415010705391382028276064221842205520065392729732227608519471349009975869691596026308895159091195497279193604166944615155654972083627877238556962096445605550965380196537782948220772541060420107980409984701057968363743791247413590196666119785166676202634287079385313145269145132029298154558105098945587544758154202573274502480332646971558084897645059119787483200773281075936111043637264700832072351769057634669502033951456586030774270526294627904175120406924196715879891307709297257136966805466636226821280854090341594869546841601955806784440843293423405722173137477381279164693422381994186376060672956714816327729368957632058457552591896393882634234798367245877618498399678453832280022728214312710153931712414535124219916921153115158185998052983814667155092327101279461037724452618117170368387362351838973090508959304348447555260867470419232033090037239145525576626401363482667061998026416084336101662902015346666857266640959726981671234466892074334373845928032187824522447830200963594948594474063351872776172243044931659268245932629339651334879997109898422366475082233037790318327990458504956073371262375748933605623067275974498977528252962162157932402612435126611199062709336217031942721835421659429656000054812986461692075078145021626220875559293172470341462115873033469329195748239128660311772776394879507910345351565895102918587050904087207940077564774815340646243077701377536423808362659561638798972151989725558737535080105426336881600931596804970899097397852011187529065132511750902268743309250191730998689396724394459474007875421266263858475095140781102284859991138129582958594716707662721842729416007642702713610031892846877576692130481121200761412285996822752928288322932093900803214365982631912115758922758074140555257895977242123136127133236780856908121280148952674559184875108669129906707143994526670893743206752017565721396640413846696427066768673847167002682272793394995290905954297255693519925576120473761850243483339972544230645682277489228514835803965833426998562948364195951929220564006439425197219976953917094012630430864594069652244986867806043580622848543398851466668125039105418752031060492543681493944423739738674736420787284172345189711099908644338606020581900291555230030456712539368268014609708977252551436037682911101287083895575094462033573897856469136210885891596368412406929903245367913717375025756690508959020860178489019749642655761369120372495023389991378660500035474401853034044792195761850245057562380009774584433069499014401624861814327732149003420158566040302287889606215045202167742949583605266576648620427740041609930256402117339084750648703156618701988514765916441942993959013883225384135800797396669091514660412548949066949992844829494409260793281657684003013011615763853842686757169868668527662730619810160652815438720041289953931610826963988619459891471152551720474266129345194885002232581400730254896602040103847660756911178395874631855598593411954770694189937724082893818635713462808770341314124616810836690964361253277309658361807543565027475346708776521219326635060959627744489893768751366213188664980013702067688186886875045172349513104787347970493378593365470898826555317613517231243992048990914039007425216592016682595070569005326557947891785711377882026612860032517415892630690468803860149077130926499324525175511117539705653579472350901937144435598468924348259251341345767684740508022441065266577569378586130562690317460534323583367867207552615642659300787043963691670263648705130656367437810414587091748449837746072781695702969821623841160525821591918826163274316785735582962825520790293403585115344472809640613923786573368646635013213319540578938342555914887890829548420882754176860716886277498597766801208145307022212919603371734619309454807452447971923882812709857781207209277106185098263552599547942258810131958623395014938520551076210763706649203771452070417665810149251344216318326387645680710153200201213016129022525447494175235560695697773547721201038116691219030778885892184733920459893716253304494198061184513364943968997990197786891228573789963595638436411740829966460024712211665772796647452965627731151398662831450110141615106910843376413524719547456558568089627618704432526329643151153055391193967717161218547273975154861391887585955340710229244151516846732951101561807733294958742218438030438572640583614831903693511078302788542121467660933755694267097653959682441113083300406142925183629613791838073353622992779243433471457998787897903142760584068720299865898587513684143450161420888649607595262149147784093105528207800984064889918508227439619821617391603884394804264650153394472141268390935076611168047221920228666325174913856464388357045683170121798676591095997608445932381079816342940919057057751681666307271708540773847474727495374038766638699603648263953017725987313126832537096437356399794620173937248683203167741783015176900285807604465831694681294938955214697613631700982976999598135540971133323964780417143678270446714245000579533413806834663602938548240272739693924640292172260653317976500502219274140955482178332908302716953049758656800248101410781368045438903855268767213537552844147344983109680124849554866435901590924217033381207251953726389572288070182548434480462271091135682674356657720570839338981379484713440493610257481045773239330725192379900333503495090900365924336591917823791897826548405537043103606718151761270401765538201079488316599767427592023341704659181941533347472599733332125084993309904170151420225185988181968688972618600474126227416335201975297109066559730368036631270847705181547860872853927151544498062318770751984344048087048608224714784862230075829910449453577302007089245981226841191562393979668834066504980604988842072200776913547869043981387579850766848595532771079297978154526991823750349950112379550316817889278327282826674979962396531293382090414235296177599932678550288850592377741253908931329969659510285734235521414826336858477118126407996236719785461493883030122541791748859196472780934489056248082148276685914429762225748311285768334316652970999497301448608718734995611327614358087806477451622809163872167283107358777880434668101312102481915577802671395915233024406064235384251472799586901320892055378642073925329823514175559620159878179910671032182861855117529907083836149855727184219795785569944243784655888831656863109707396917138578096046696330740248792343207469780799091286309717707373507961417862019864679354607695494764005094873209165502622264439135744049703099675853891413364349788281718577058558634159444116284954209323297095758210012249026196660580595589567108347366656179276022652208419958107293780806662322976856392128445546171045863618831958841859767158679963128023629875367804789542835163048471589347712106565066889240759109063207363928583997749742677019354048718123888155561231426762201891743914130188635901131724157926959062585877188779685909129876885675573051648767601268883301350018944290724870145861312262128917031653123234605712424241953681553048948325500673373874158902057591737995133151759897104718451124921857482647353122691259733786163750614391855389303495545148811812645228767038094390350648124679341658683613690587927571371725579052810757317724833187320027404152793063084656138466957545676234964198521259577775837708393152820343398089419761459231276089054556141110451995481794385477274484610641684003637571342105496354971586475704388564452355008437346222670275024213307126895742731334169556169991076319013841269286179935234582134583227296937901194591254853178032342251393963558431123210434214054073624206848837509360730966988991461475698804507399803996749337265450608768026767396561160655021184136485029958607467560044950003723832640483028937909883004026574115982804548091589278158782726382363124078961128154236324774812381935730601366993423776966836398279712489227317547281973786613705514196721085458517968024026159083911488490694496346417382897584036776510377140427688092929108102104029389946916011152395802186601711056358076901297477181363023157361485619652713634654003749910690999173582095851550229204944980734115563371537208556778191778046846704644233154935936495401832591132623758124066303581142917765629997221900604502881025061812704837711521696125734390204057347070063797272219359356795892545059109030561311010388679125726069712879266599989134505461333550981762085784383475710000161511407025272424229890566077344121943012795013307793352932945648361120570798420241264571487386008004264766006884096787492444899590780971567261325077045065649621558376559757070424125130441623245903241421209675192894241882976866047844198860512192510650761389352557829929077337492314239333853413379645460598731350387395657597669379447707136238902554246809945382356728294079606952534558108635404558199724674867684903873677656716418167630187439637773040205321601975138306894288710263611920840856862872034039225386611637504112044400573388478407804424754285073991963565547299005683621142730118380935281388252246543265820809823888031759950213122591524306446366778872349946039749850886258209423190113468054117641280088542279544490864725869603827573521439602631753141298789675024801986131085829686111179287540563994065357624845029583176191890475908142608004069181534374141947059853755553495479031406274822006306618624642569259630036686222073122669795770975720503509327218380707261370961936239805158442862404660191121254170648599420525565536735119898640355040268366487301667554376426369145873147950877427717789390548188217394753420098085388750205761236786755377108558284414328617988880644151422936801153012970380262397022984874895415362292242252660440476848160062756026671471610685340676163334398483353666587178204736869528085107737693188271167291257910066795011728608330149631558274810422244863578240471970309549269311086007610059099900949653277495074092571447487101813531934476062913545287962207883086466460077279238129550508571438963014897017803889874973150613171947160314324768819378095356638055465120615475902669084020055496275398232755700742042944486167960262305605903773561328835753931535082956595697721483074589580883230328524313561821203836482472929550889350287897612038689002631552778040556793867090056559626652579994938050833575901335081277500557334774597788513072078567289638973509344557890683207940721099102340491128596972620556292117050420980385829280957616013415504340683394145577559256802434179442224132191184128985674499769127605313881652823059997125798851764441771506499141135884366838704879728377225690201946675401443145752084130971570247168915883521155225979951049701710101953793009498168392136187362130694857874866503900237767756239508350951195323942816705821340648466409768258308367015753059313053576426996075011463853955658692489761173294804869298263918162276025336227887272263453675833772986293752675621286623247897468778064799887273310603915956747394332828098307237396588760219155809709401741969360287655985083243193461485033872871908471651495915109337371410045585530535583611203237372467372465774308023643258711129035605341179356852232287312999483616139739521262215614978520688465643141575869629087109829374471178439960781913256101506516729658903288996418891704734514302772737674165961792695229795334905261114221443812912808335365230069033017267021766329726108294939367935221913158364118521986579899307841953887657962624820088209752446862991563339960953965451924100471243346494469613670427587850002388538807101016046439550489725423105619063483717839844540244032805083486836775425319094958845987124603419775247798474488580949907229400296865654920100395384090995697774814160657816010257657774522634461580821686975132898144718471701211163495398058327927130340156997554608381871492036030056131085105932658479066819860754143234159137098824569289153091524603160456334570219591287510618514165526468987432936821236464707173416336540887925463523253173428540952336468049287362761229814085685525015246020483935510480621233197808452847349903348015224285860952587850927103001579529294844059538362822792263054843484382139498465607650882513723960858688296576252662142674386414008719391642607001117960015478777123486537539428965587153665369567251124211599054124635227793337233688381691731964103289555080390175017395582686115213181936910069605062925198735141977849133288427162274050004405807084793990132013348230065112768685014889924623014613907539338315652279261814895659771784206523551740049166663383589125149095349439835963152046315197194679539684018212273525752650470973069562684256728239148702521161285892675020303688225811039982876033922802612772613084410639586721600161983313262105111103071227731861204895079572612827869722738588957196704750525737345883111403766001882972173369640712563687059081267577956425868134582129390894790054833016839422465522734490281690327047613419206273219300814528683376977433926321795865564374449357809522733549098927904135277765467543728027762477399983956736156050539117875695986174247994404600157917004923005535949757686782810315946156748259377348182043670040189241724119324171700289870053065957739454145481115761132215657211564985754062438619033014950051335563605421738348579542152997739004597383843076008529845368510707766636639163530998928177714825610998458845348014534841354154981740445749889220997176497305457345023676902690016277368630583852225914131787782113530616304639500715718397809533934576596044918951791613716242908839645085396478588570272286948851876443520589715528539908201129949916927587439832286392091802408749016249718991862222110440238063806997920476210652639280290114083797409911641163041828788961307527892939391894947717433891765196333437306742517695025630713484120211055645359641584735560299451903940868700926066840072789719319238896037622897286979883716711584139866862683046741604333260551283587162963852065248493282541910257599017046981744007034464699918061947396337905947137020282462274157222498322567169389714676327956620328026680763970661929314651882455274556996185753916944398656662320313409239075947998968644474899311462711671843876894272018115152601526150905982596180461498531775410345042976387664170919717878293259571621438380263144378995594180822970556483045042988035150710973755978986638884217006901214461368342120504983547775589902182122021058722257047734417910421128401983528179567526630481340622287422040674562306065733418321743116786641821304528123080113708114847967395227346166834697020003887405449823481761506811011594524905719704432924310693846082154055284395524045730512422551693076329045130961527755249790107649563912287559737098927737289691564830400898957966879676435725583046923440504452463191607976104848495445124935416562502792147587810156781935678285794954782679587523696642289684421024446557465461894669467650812463673538642360962269898284021156844541999706700069764071830296287034834258695848366151367687226620472836309068240199464569974329378537926520874725825998367824889701041633444580394203576876532805294486928676042205560696179877287132969513787907450578586847349561933958634201816673042150277559999952260416527263162892931502530784218001218133627670480366954353400958238751755762818077619856693248984622799366528434956980928177695273382469338662276070855221740587174916060698952267342928932322796091679134688737171909457675993272946220612436425956884786348625304977682008844051812073130496205448298773284549698743576781325362619981707646647698826765118216223956149315942673549489530880876421553700513439552959551467168397828371610352028991370387800625179616715247197636967361149458621077889879997148184246223744923367628766974523281812859285255787449876620078331698854737486829214050817846007694254421916875163058897302304762201244354717381447068022462752730582289700535890440576572205548681826459298378074779822830195046782013722751937899397472010600909864923948685219438527729733839417777085118918108840262532939550281768489002070790836936226272124494961160892905753737676219973713302530742866266986307802673435540131736848322479005392341807245638872984083050115353586069130696627799420849328158026328196815735329777056683211651032442448981477099352791272546642514970469655902545465192914404460728240489107574937833619420363954461642223372162780155610771742099103390270818713960297793034280634318883453896950437897804824633689519115695573722953803244843918604127746215015905807297925765347689419995261707193099935476389354022423423736630926572953275123631996902787075300561809959291675887124836855627617767878845102007713977023554366370762853505986858477007023210475166479467244359781398281829073106062543741679593699432013024475997949627817537556545888743150349107030346069633348995265920396407089402687846804711784363909948733133495401315374050231240863373580762606163656102358329205948825003507036814243832705791701635108115576813622917837718981447795132777769430005238806233782268095296976263710486898648929711479559176153595713069894875055890422283337770967033375809905452271541920982382238984317691837239436084823634260994756607333019485439945753808662714796201706554821488534873699623975299108734285174161663333910641670353339864545178722188067894235565252627090143875478196306185997557884928359915443557370353260458501961945408340596310048135529015596187024437958071041645804805594015335129381571717142685167452545616847614832325831811939838276739595131078779564713919458865728457325367684213677398583761631252726120892085508832682083280885786571397043088495385002725367251917643030662395949280314802705540582486063759959699929017269755825086082419743357165760189081288019183716817317029387844034028648746535064813613216580802770979944608647602227901471935636808055815862805510432548079528510379196306661383470143536212423465231032626420604910738625544923996175125218180787342764268746835349133091472619398571305412753194434321073949244773168082736084960850563712594240233171154339725455474615779018394423783807563637101970985027316694984999715773839110297755243794180545691201661374285407888642154022897669247585734921970226295663937102691024063167999261453042381821656451346515372452992234794100681193151742785526356468387581080718295922534862789661985073344221676326557140305711615560002736912533746011458885886860640942091174314119070434310798785034602664953989630449278218295897474481623721233328653513563193915211894658032993625542390222725580297938520478514987123006660104239580052886454926349290967361277498469987793537276996455855531293199512108188449045519578033983114361579617492739482857269234642268103190919529745318798220203895374466233070781649231360762468947193966893799542830289335930569439547709997113446057356888591204195537172140995046029182577699259480901718964666375965277292940801374138608565645754211143522082965516708907020546567222433082707669850600406711316455731173259107351100303898059673194852810809654660908946383308390612314139203935550810230088049240244833102419694347566103171846996444092659230039693819538712011317699052985588067705889679751524693668451936290550185560989413210643585268817374242918121652452772400423827410422783364318820091750635271994450127801539368207176282383099544835040764635053899292547736312633688773112630049908510092019467391267550612350808271235678813249089774618674111592366217294053660985130830347977643513721076248190408983861674768446966309277943243487928386223171711667135706181747126198275361343776446821940253025299402273976599657012550613334798036063036143073780162703616538591188992454257032312280253128666477895709950050650895434691044411740592262106412148393479697890803981243907207686639119490309695902839872326710112503662334804785168651232693786085606136940236888840068060042425215684641067998635575356563101834453091913166852493109498407271781707039956019207319781894805523740361808330760054063138308474711587260284016422952169837997617926187342370648594524887991500883341098094574852944070919450986121700031770627817221987908097950246251941004202441170114998507491393952718298790752305184874568355276268483889042482056216473783834616689610272638575758742526434592971826937997710769551212152773941791596488695414099107760742292614770358560540231956573915236672055703720969236858911015341154766182844090496117063728321279331364847462083296177216277196536848174124508623955573245557091226708912220404151202375159494753811327678469236973528841706390011465696692218421751836337049471294577258373971396830937335334651142399399805608633564351209866853508767534763703647409223765660660533751665576848089142138536196050639739472458387915701509254516786896389234356361026995806567608022391639905644053313783069450518561315101424829791622970005448951497405919652539946052958239782295364950204676015670131955214065243170422307231298884541877093435851456238017659446387523360719561242044622633435019774211327368106801619337677978762041556403778506635268420745806710602363237654196115286337402318584965434118564258994873621327121385082793477760220985521902002789138120175850993648332218638440117918410843242743388591209834962838095184001108712905553856165742290375054195574320292290457587518421161725470232274138760913162018877476928507011248149905100884922006210768125343019542422146678002403669956197316493768273499782750633809587554849110267897671281450967695591895941242414408141463709890765704003194843348166872450563464543649940323995843949284604051031785250407799475788451293840535644084149383825888522972993708698907409550583347237479024164542055424085752851124510546677877446344058146227382926027412957494970346142065069800739983309093794724103622680122164378132657608705908194943797511539344566655247042282013492154331916719962427100917969033383034848678751973066362062154564200162755048594699009086274798437995670290052525136327999803515181416711626880909975299513601934335402221791164354329351732213275441623877215234082035826087463330841675763048111533623263107441176355339893019334141200605433433730606832852222830981745114723117444588484122950400531283146411993717740266598361663721017090586862023817416571453540979453281732343797035615302604517633253266688666679075821765046900872230984236993576361926737323740138674658443272103152818894249272510704462389088917762448949331561282888701266517679094195213903227709627738466751963656860266847908620553615691859085631271738512796602032796944568381507134760812929518626002078936272514023647767667400897114778996772049831125368576550323503473676414451607147413620203172692883680262585887097756723104314065977880487436404758403530780193834352069226403484415957431340524749210653102494487472061122042598865795339804528093090549699064265085397104891855395270964551273662767187498199616072113351057324383237160712677787571938284196682046806100333380434174106869727504090557296254101306548181060958557791668796194650337520836592166935673321267175858934182503850657113390246252070774870777945290850822035992122949552500803071965038118455291764125940386804061343228851230466987886392907294723858635684963377589789809444721274156695868773655582211787686389984982168296655899406626989988731099245366330783480285630803396405690959594039123973106582890219640607127792498780187993371431401580666717105934415557216820846073078819294050997715010031332732698926332329841382511821485114565521313492562006133453240112918859317599731593680685700230054606411744776552819150182949837316601096261092298003733529783064439606079065700339743430124686414224458760423136980052648417885496804079980976131076943149718080852315719716285147122220727305458560854988283515555136362019857328489478135899186672857475639630809960792916444466429346878684720679915779906626700799546313687255425440867470321998280478373559477382714776167801611434637146948461072963793482259371271874415996527882853148585401376507931552805743253630994755055438600682023845636332149672562168227036175349034968826344949780669971319531156467550904897896772044032162379413599212279606294574610121876166149685423879539417122236023300188600280598270587651933943152365233881136370661357989503183195485561719021261196820817806820538016727008271174818606554665908431662685892551096595302058468449619580405532432940532676864240018564425174676981432191738427099854001377820792917305982015114524691597460339150170653447037751595645932537763362940614582334793886062276883969143629783457877792230809440632304523164651731012132718307039239106582824367388693572134643679399064629746231404381731499931797396250666780809681688393156412463514324228855041719143959429329282063901662999506588862621014762841455773844977741554075290014107202523655862893534519809350860968484494003564288777295669002537332772142391283062878070031002664092704731497945657729959778263973496263653666235905066736807140671504314313823269402565354846812736437407884509857019611506339833777465658949469694855703310715278664819221052406286183679717047888911068115223328111369817237160140589937588546124335508155013842299677243897559486728704655564364541679718967808561750121822231713516385356727250603748316281032209496550506628546859442545533229446024094719824459278217805690178853058383084874738450213843253375559168155358243260081919286874806902129002584945052986938840114014918262374562297661365044922516790531101755983291727591386883114742565632767286910156973531923109952840214938840859121664491272677510178015355353875824865193223303636304847557505698422083611295476688265110033083303269879943753824957433574602025708793378359587228622046177524054093371871541208924196167979903573047902546317903174611226121144957952030287215977342809031079681800481176973160676042144237897253995230926279742142646137393487111650153691949252760143934449101499559317725393518150196768088338316284709418087533583980067489153900848858062789945792887833462881784250468939615354910823581614658773169070899400587993560684936072456449836276799320577792821915684835031496185416077873047164750191754836142830751067134928910748865238081690140785939347581645372053796413378689083504036842833849119771832124519939078443328524744786466532996365777190616638001117961121822515349846707246707128412905761120991537675094097559521108853183903666373508124116052583704859584280393432885710551783930792698716355085159124499170705839929317230651286080162697242038932045535734916267934495528771205370569562013353921545825256400495146435312266133199622826755080877392601859224237252466996449324806860315662549511918191789407115499562662762384767931569738607792984825592340023246585874782327117616851110350826694533886383660474333808347319018190442604933932457416374272971397615056351498009027623008426852269809247860481592712521027430463930771357252899111532885788632359867588430793651314374050151831284238500484109108361920554961505593586138695881212082311287996741679380299037252268692098942977597746090829823670320973877452689640306437473774873833007749530607947905710928641163416424522124535243432308688792420691313666920537837804728433385346422241162444443820627078745042738376945414026587574123207910722749224587336546893028072409566231778034568443435999904789801064734005429206578386682248250153502909839535173343108275700719631813779550484483436615552673270317574722772581510070134944518501685759978923578934582919506123335887330219258765102375258018587798663055116028118298636670777523161269398996829145755199047113936444244625575102671654555513573962652535356707162436002860158394499823059301648906966760946051529641163143709998166377416604725747841700981687988441846260819825943306685756075705796224531867704457685949473563333168666424452220392027660584537563286082172091737315202244178787691493719678504124025634434289359514358446769015534839604781885515098956179660104523494942234008845484924067947768485825097147816963381235709633157206145856665333410424098043910830502213430296543290098643488261938318027084225257441660369760298951287509110507142305667473179153463844008705872912536938801079187376789840205471540815758639622888646257666786070838266260752126291546613233778535757636827464145317583764903479510950742295405930260998651152093054982250200750723835131986512002928707061712753215810568737417662675500515150410806533484803888405258408446812506278413434088334432286766287787275770682078206630405959129881976227786171770569387594536964954813221552646139652426417349060008457062840499436298967911561092012263433248043904972481216859175760026563125800590846363614924237093019748493527732412813716736163492995893146444293423731208965638368253888382755869207184371852560110849989368063068088690467146108429957153536825373277426598525422560794547878805849966331188571019361594661986365567187505249568544231196068549122829190980243120612383207393053409072906934599714179152507805049181495543354159394479586647162226006440966059374577771255718336757969489057838433007475389377883281339166983859597944023480291847566879689367177310759530824819653717432467439013785484099550179192676983894091916255415350580233533724771377691026893105789983544836141096217871661926096066696130845824859338375524263239481003561075029354784679086948137805326401907473464041707648702076479066194121398150101925244592618537465904318558870481374484653997453827261627092556790914146474452594834768386208705123758083554455093971256337689591180430100011241277060186024276100173789467647222867708256096671617654661314349043491760852075286570398066491276164949030527328754281991614464610614894445380201810950139405920799460542727198958801944899313622441620385172784017855532340828455065632654736194176535100034246626080745042324954858089673936548285285357819193789124746515994479949227243526180962757872789431930667553530766632764059532250691509183796877375380815875047056088001794764517812664265114850065009632918767467964339731841765670888565678695545148882771425335824424650776470637718616170139878272109384361002918586933870919859827987130044546785450521537793447772918253121461176779575816529392565758623528566919125235651561276477332923144115045195863013643170344060558375444636668026951391131541601429742729919162009359025441298262393683650367902370381031226795202238617552986175557648048298502006934227612915759377502456206174336929818798551477692159699076547821640830606081677342806475898660045569052690073386379168650806955748938766361482686013617567243987277877789463778720804397949151990997519306605844711738575348203323421753963337165194186427467163780874238090725297492472317582358440337650569431509315075351730659312037111084163361794012609710541961016470661985604011363196632558992211155908332397049011499544288107993337432182856916649656663365426169951452389128104380187666740835403670692990259247850686412409429964470009840572013287732025750734046514517773438469867080575472807079461165858905002160630965228022464749723875986005817106933184142477949219472596820615446609130803766801341466703829821391057522170898705268131396274092471047270152047750428814339023825298706976673342107512145686805757774135426310498467524894320137417525464741030032873220978277808187895629901599492751576960041232055739648340209559764247560971998460157775329426979341494440556810244924179605840472719313409398289335429077350604494115597217532656371855154713997245944715091573039390890223815300176053459565811768893119454575805568876369539046397883373344865062346473080966081768891081809284940213484671373913349674618786364345642523718838846491413715979585087873584264678846543259384380218818120505387280186549417729519792915510320632766155242978278224167927383931005379510915184529741668107072603070274764375949068662096122734454251466057022143044870510932924438324878743932692494518778523311749827688936573096390106224632073485057512842986768963030936012119660129271803416942235552751626287613485513763779652990355855350204316436665861285502142123907970399667000276441379599258405478785954888510831878032829341603735641140926826085392233390857316634154834185124524061199414660079730144264183961413368105348713168771421175813293968067983215470717275547756945887268131074955077005519083349247457306391179034200556773742201922782554499663779334521920399041166751636981880492859890177151907485839798939863588772886571139042241643219955526639945768622379300366070955137146457030636875191248422141086323996079372890616224353556613850932505185789254166422648301573451455011651769755077851715995950984103013250049969426901432283830644877373702980291578382915510036455478540888165118853165329242774164767128980245858639726150771667290573577692830166373028843885709225534365471212068938692132172651664514631366746021517376898593424821084693785230984561621092046577155122056879128558644994516921100251748297649345773090945974058111899969684839879356701232957883195080443197569066117110215879235070985137432339373308596617710288374139636189609588718229376718802022633715983814327934824966174312134226028535562494670649980012240964396915027220120299524274983441131288325565355836002641691348888941606524888629364037212460023940434158900239818708485534603531504130854315899398135398645248549514337843139597473274978516776757345590093910594829605325264791108900013566596149077962329019518202940626343992636229013570498761260879581034216938032349201547589587767907847848558117170901531320199279953524112905012016740951448316178564232459065306108175665620505015993232634370042363648033895137787194429746540379845604460859102580804170540094311160633579798382013113788368304604735972351903430032723291944989723911151654309557580227904713907007607513966890321369486589521283698683698666965346706316365396670300413365577607490989249235347562970083806476827122216503715633843124804305122777412160513276944969106788975678140411220478256215283352615638467719152591155395739708619814118750362298586529480575627709685040428520514668020821023627028036923058863455990640926767202359666771192076841788513664082490917022436081840681346558860686568980086321752292757453367809665295674725253803496318682620016691836865578275952645992330402531460652321889139532505937948754583081283638704486267185850966266800967613943883873877287922859629661447784024454171133129308427278808502190262935396504878703981369830281029098224528612172332327598595853984302511507545123543822672972995954774618162972106401686130765908196971428075939953516534836536606449587098673536173933897585993160101076300273304435143984690693772438373649163309043438099115266226479458178044481446428664373020351180977998523358257248242949869364409882216607414619766918937287528576630612651060221823583552058829490126719287726948522283172473437371832921242805867145422499872978252874653054984523405830642233557842069309201075291137617545430972531108680919612155460043402585224005528548994879544378826736406971086753022092160863909693189249569866296347684420551191771331605279715915403712532178894423294274343036291490319166867755871568899898302131841090108434868120578241632615061654947790871398313880405205440470136258001239075096877910691928014138665136395908662894045817265268500644864596013968120433340071582488750530848937795989719454643891210303843992893033930402578356288907448598710715609573793228377191209782601128269438086162762065116004470864912484958118042428927268639257733646794911526923523804557500807346953187788339559849829503924855907074892713293597725751480955958665548473311240878526083247574724211322815649397922930737976928129897092899392822290817434478835775656555142108785281572554147311668269652690375082201791313953334527339121991218106018583021749604743334240730977685746005370329462966287709137974740938250573118406239949580181851281633819399229813422919778096162393019381136809578534491026589870153401422565263186073387327624199894783413938924280092784549224599837947710578456145564485419316034766375908414089764496056155182803999417181978389085231215077318529494291894889251595864769804187998216922711926924355792463417724311568269590905084097644386592003099443548970357720541331416811381431372095985529171872013902384254522626466756916325212316827108181942996998052613625661793692263529586457773510310061752629202115703731023723904547673458854157904936698803536450612223045275243181625254529272927917381851263284010627562652770253640257598252708714580508766994672207577235823859895291701635506980685928824955544951452476727469053496739675443029719338243144100970749559546489682069751025653949292412705700028493334857153167086761472770368122045139637691681510035695183151894864641028719684677061449019074445297509696676879020791321079540361790383372624217013157607980426142464350680413813887206787440446929185384363305999829037237131151540294330804072769551941905339444566678143441322262667746341926842135762723631057883274621851697433464832068341739177322643012347743534041926362449940700278905074932502856569788817110501865988765068710210275511919607889261060062523713989811980299779500257422837439041071726570359157742542157838403134167663053506791618472141241237944494283461796223090841715003818162363859279879084213038533317433429790437369597098727597875427708291597430226481693917762349296930872059338539257902068732422832249695203301271376050112087623593517122251017900233603459504881896355015939538682999931616393950214953551236738364766805391864337885660921355832771798714167740251906778467431677556498865647691692945550717658734081471665476464772586821554359592127869431406668026945130724741070581118827415846613223054243037237261536150766537324501390729667154954830116384887836617926372771416395133484088685213480966316107833595769227054204134364482483483725824120354624812045878360464046746107386190712924196055923794038916127463812023338938596818298920080492016827654436989600289823263953341162288705655235612726779863820540858985294068209555440840763603492901243326701128372671381949841066179405453069114220367664631100667954216475540051443967515723914490342052594143981963762045197842803607738985684075169101370720074096470043498335660649620239653409115112742918108634469933564956146475797584764270673924299161169495506890500622247026346554947396479909578295047730511199866191670267109709877195514298825421174444642405797446739817136778862415052598658980808088361009788087002086990746616482314262645417647935204946004785480125369349548234287813981329019376844539113220446673650814712501731497793519454413768912882775006645548833588121889038884001372851501084816031959579481584775085061586529281074718702451651761642082004579875588546646463495386985250206055058270555780793854923538253521710131006665176417849262914500649430594711956097766080551933975801971851746506091633733014687241442741987413960872473654877466764391314153554278155006393492636459384242593231346900477042997649570496446773477097713262218971557334885523600901253602963481684377608441262709891057304002511837725321770782565407117383323438066732246559785122544526091178184970267582624202147941239644329557321576603474215687491993014745265242729018712276447865914840261065188624204730376212914499910282640040548328206977481141280751494465131794441487413409094008831403350308968995899597874880314842436715299886072620352636639037632047757447932922216197844987452852745789996687774494660722106357195395631203921901705652882450139737930023562769508492836979588782325548037548843400713911749008853627067519792946537079867841902578314765455761672331997605522565136128607420079346719731056095318464637529081401771503646652496319822778275933789677525797607170480372511292503824475786695110845351428216983024175635789310390958616452255594089056549098743491648489576890139330096752459561078638186817599079187460726970388832938169946641384819874272455631936922589488191256123824469964944378892018360466718209691806739001261649140741822637405238713283226039058794559529730558973645475708192395286895033664684501617377211262260064983589530305087058675472328016412788017464185043732176351750195353332018081072567226597008158764577999898939736648216073299972889668228151364525586873584490199880058376838050837297778357891067757273753909626843875040999296211077966551066981780149858085036610243147230453803405321684598139908591366332791929518065214873610970780909936165512192793477315544598637188879141295927948388948242142368637089450521453831397718863092533150764989422363394501062134213948271727566528159224288477806099519710810888256830206926620435526035514399563474145246459438522400492455712014080400771011303020502875058321284340210321042277880494598556820360408303204277577056157793254393588972346494300745438514688681368985071368192518110303202174680282975497837305075356842469929860018437593066945212896550615045093777807449289007787876234118416180866718578155866409926703537392417782954565759949435580216587751059676572367771544359275869251387354793447701017710695582947190995799338539315068677006785021509883534718232186214572083097261920483468246453865447625458039895944316073199938562617549242436044132021296125053185714449558160277715140884931802828828908867130258547122585999731146679606065961637433287960098909542061254886273462723318984432483056366358298332335251543956164630295713858411898752707789220931103907977179594558935511912919534009822013757997304616936703779370957108837699102034623788121964641297808807717267953206515611755824561901649371135109572872685139285655252707592865809615456153349616222113823846278507608082425694804639876085306546472972453061752142265669983051976000344558135514597076611246644654641796537775813991144731072875176026517753556041696285712082070536292157064585925903538814069801065053261154650415687360064834862936120172071345220921416221309217178285539034613536276369894978786908678268579794620516448213333418699398533576705199321670817806174653348754258445550886547889894361456225572657303327276365590615318584902782342559213896446014679361215261896621432288582863566714963251613777613205530171956139236167725059975174142563357580842727512781000810685771193062667128568417701269031743871909790940485995758408393807205583748747860746268209751104952045959504190159104975556801223121557262625653977311069012587578320719179165920704805920356192264697084624094731119230620336511136611821227666095674956354994221061856658879328626887748238494582012109611559312970066044708056890905519747950396328556131133290295466824242960755188742979969735252226829007596080813184768250157157635624644997785740419705970780816343402587076810867619690527272291725759023751209968170856447308083492271856029430706628760118507090761837951878910953047909910719455820446057855710047821820367612169910857647579106720723217693591625151873115044208542585771899068986709188949763098754162619836933492869354677201562625350120724310312941129897095124412459079038947104978675401655620574287607625005608438099118723279362957740827359894504688757631733574135093443582240172544586827741451671630841993389496225062058313359675411161598531050472963986247321440791636585694244352148572814863918983602358064322530338678827620807904911299024333699791129034873243141221741251476296244051499117786595900987924325446319706039665279572468075761820451097330791269820356103037114469858459934386395769172089726043995945773415412518592451496357099736086885840925503037969928977980732574932096205718681084662568273635947519952392088794271139028492683544256068085807072079757511276087754313026966328928553353567877879598833911532158106714672011912781762576958883928615751717734440895385175822816673953997941091351251411186593054849639592387960079395208756197130362363306735716206851518939036078514338923045243113743037965055392071540084625751287234611224734808758873077263908667662467986543258474481939134806510717065047569829897322070205457678780808767896072546868624052989983658999502403591166363776140191308634756931196361828535752604326191524102126558363295348737341691477123312429345423665673603003318456588549607098593747349128600862134084957342736892788178883447498563585286591415044281391112550290838616378911089121872190538039045027133894740231886211707812932259211936578960276355663634724075077451401707062507064242623926652391396147293875092720129443571700820341440694743988958532027036666848301124216180646518288808660461063937980403019645994602441804956816738557108869906786346528499720459813769378174181839376230738268442639590156803953721705023797826230432895805546163830519348627288432175122408755439265963118717613019100674642761992633835288593529598248029272570754681751653603992495074650524427575546701168735194508840669927567294313271065362256084208471876000475508252689054214010487155228463489550894643000513044720141523157212739684296033672800025046951716166952279878707844589341564194988697555732955407847112520419971424520433662631998116516241514237573794094527275879768169313294770940510747183116908773461895540782299633448347188258447638097185788323515892652499963441477249546409985349578332020860475734578294063069011110138495942821689077743157540843009049110244860417383468908228414672373178216094794679516235025542530231491203678693428674833245073367728266843253325125937238302139571975633539532848522316428016552382217953140064177278936581138965361704960006191186249963308758867785054287530902186980449130335159540430610499326845009514136907038866495597397726446950508027327748812479330344556017227886790496856902217971106724850977483582976761883984174304496669942712640136777601605328878029241945169828925546608684583186214751713148162233042703533141626145773490013287407263177724089643121000414357721282610983014479545991456922316976689954659749325341952952160083074288391064277561832639750473489080360924953580074368377801771680669241349802870393502063645287025317296872514261325977341973379672179002775573213943583807200593755473412165283714715075300551717070673231621290670360100858415739466043939508872254128320632959184180118418207707520585399943583672822194851385183869926659069992633980765403856628871531775729247915228506802867922563655510820621574217873960277293311910076590663770436725230097528102463188780633632790827628632385601257684728307098130085992257025616593118521593616052408074401240511678632381585697187264672437475184936859064828771083694826111100372402035967073685718681309918057308825660093260819759880153937243160103020170099569652129672158479706329777866460230624818708795832816465175202786668272199769104043849448339337069944121551053587722179816636807575408196137147302032492940985887405417220289137528755761520028695115991592755977182797804757371925585052755101495499695953015984723138145621760390835411224132199982669315841282290467012336824751944589930370673103382732212991676090694539604448944798464094778939593764510666773246772606030469333056195699284155168373890674466042506095278095092479539253046242221221511041529895691284037270149750820255071770923124038517029178919607472053879606686244789736153827290082759477220193838682601316222606341665762324228301917085582936110645313368451343631861199503439589490867189055296652792348561159272350866977548800497330926240877284000144398313207772531881333074352888333715092286749532692840329671660558168931731970596586416007978004277826269533254317694904715711944366626527373238934886706306951728250512236591778259198105101989002884526343588160648847117746045724113372271569197183446138736406080207384068365859323046335172747551678949351305976332927380823530347509822563985268948305392490538976899353043096237948054468090538471577795784668398138864715646782182809620210493035658410481268284278999394053717030703126845156468997078210527227941576882988734855462982332795796260874428626772788819983223065318078064984677585057286554876632090167973573759032496591821426874576516953879522229500593314090250882760998679125936066628688244835677624646173770283315019954187283270422896109364963303060340612216480148812801330357283396757610446496899986069927986804815987346341844429917070357560446658888850770069781678867109050193555660438534189882209199480572216342560430799268530303020439972396456592433790432930629274493218817802090122560889200978614781620579118963002093792544164067516712623743040369362124043571169747788440885177132333907421643264818438695311824330624754283936692346763028306177553232191972248115328075735653508788816406834428509321106706802133403247244903508746933184571067495482376868851222019008291660996465726331338083556310505793209123936024199503781960847590002584438098108677716971968812335988597001602974307839737459058693046342642877450100452743151873574731188718116574191787178527748521588084660005420479243432880859139627788862073816266842949220280850921620688388918404712970455920426385888825173717380088972416220514603338087162942855265812077199738110490166578493592713259587555526135560142218291797555788155525422714982465171961057390215563735682667905916553413036250230781381092914968369192167113678265087272983074232893670034328176675035378550009698860795415737283854498268085059493227796725962543035827821079688152989835771386986923211652839176148920468548708351762999650563938803955776045410536473961662028154219789453769151070431031187274377524345469125330475305834826332919023054711350480797201046477479341283868437882528436425270407475197989469804108809469952229672761417168666934001740425415393933307350418000028534445982629193658347790385000350122104820204287747034083701645083081966611011950196873313194714686575638232596528596793462554905292085587528714473090868123173413774175693620213785775706108652085626778916498766206970062128762395998683023430399545118729295710034697508507679459731521241842120019137829393703053929663319818383650597092823313992919834287978479865803155322701661823638421185268856518637312600087146897256027444808297935678614933174398116960712871261484508105749164691812666138247139164565745540511970943044849953399796840613402985836502415342031292343844010358204779616905564303709560613636100707001040658503432476322542036605208534525947125622527213077501642306696472806838296634718445479021711415229736523375493794298361498385289953783505268522703740056164419161813668626576037455572152555853448976296584375720948528783720984195318822215416567384624702840526398266435713736499092368360209119632217503162881041857337180403666697809207447874118239136574014445865184890434313351039959427120269759535453862947668570921847322503389247280713811688921952031604631876675482123334583221727004679469343051136583919442756082815415869497637343861086924020337932589452579252411189105406837696158444100423878010156746975294896173904312478496549105764116371917933005161761818354691695623246131068511767479220513967547352028236498530490318596957422830152919845034317807771677436488566277500537982428028160862836678240087197884534775529300523746795145357168190103839026409675015030281548429836800248895243629004466277054797735589053460571053348477596200564981902165443775310397934416345425813838893372986581413099778538380545524182819936695505047453776225214173808162816485112580939047794932512588206856942479107793181903783874564223635830821271387230035123467078883377970636006353039601103047734448054956904015092262312787254590344090747582265733468347810187970023517640581693424356479957646318958537351056378566156674595041326788343365574721561363294034917744833336824588860106417455394055222361061929028679115487403751491581084123517567115375195788298599975468375491767827000468820596644964660487208087142646335410886288799561115690339725034056208941691540557633946508602143091744428594516829238224290193059676024431416644825351032593665864422011779585641251974298943289421577585027424167217040388405935690531659527763197273755408614399568069566680529799788354310615244742646221068887354930288234653197644415644882057362236459266626844619444512934769996356845414975443699604058761613174763546942943336955161694816848987620802063670974939413354680282556226686492083640348754881085285449648810807826993197757923037712305901604456325899581674674848893665405374688811881625123931358039022866060152052969594076047198997481229397542381847678579190049627430798870223209169028706774638871644344050974005841478592682510160019790363059148736211748723420203587226754920359362225548902264169911460463254668827269165040454747335864469188059175998749142264193108002169630776291712597402925382485117581614751800639588219864092838598226231017564310185501389102063061637536388010650881932417351910092928299803089765719416867954234219562088426733864540248989237497960644079503839804900073585520951299616099786451141124848288418963167447688976534470874951879371797737724815470259287106938074765428782304414272431100279603733326863835881334169696863417088398352486313416195307865653895591941253466916382847320261805127226222941214877955691344092884068856649948874272473708825591299978621858058892183326401550656091952744850099083792929063701237897017043425661919039737910598114224336062313910365398302258143775079776999094862701591587316211784095826641252208640122641791264311405328079640488967452977894115507791680557727392754053638329824521583408278740010392355662927371263881720658345085856449479540598378604384279680448432375026236300085006664978186672508257749471415086354546448212501122554091880654802326668535257598084775960784059221348145713229426178900177433892745564158228036856062060176699271501231232245972676121438840799657920335709110011250720238510334272354798700917920375276118742414504569591039290131427110807874107775476186296591389744505403147548712149296696045576047267344659675092172422842921942615668591596275437002572765426787348774562136851065261241893724258504370440620673509824386116514186416201153595754729020312839844861284975433877641057725476458216035536716190129291914460167778668239611696961578636851237646001600732082009474501324379855273171400399116316887130759773084583665666739776819123278097620843577770782798167741054660441631039723933963697457885063217158175592473941100760178497355139384222479933307582495944905413102296612992781879775021889186127489518471055692082659631168730187431963713633092650066282149737179173011849853677607475572508811936970097371146056010302129149234942850233788963083989743961036204601694185338779160829691184568881216423400762207694454648419979716776322955428324653480567793176056755687470048098409587906984585490842239511777032459392252747820714108014139227713741844287667794291398237920473599692617453505154369793558352241791330745251245175672871074373291308588768878662383442228531706379343765866491882012541402145242260543729881317795902461395167827761422507485499114858317446591264973173343641595910674098473038685302724255992652046186003536440154585291918759484995821636139215602172369600838383374912109084441648101599578320116353444625402500219962148741347105140546399665804752563563369900127201397699941979571436047204373973758776542953931534467269609237745131212823849185971551390795284203289070889792524819151827933140667094752239463485784426890149743539603406501362139799718950852472122117755641486524006144235641769716665269273619095829530957002291239105482464306843971601676441432924265285778424738716929014114748665542027530542252010132598863033977346596627014181605700752494473523608736972923710726010411766669749094131574173063058564792488452484816372171281997032730622988014236117268891807194591146475435565040029737757387349650681840259705518584084205889720832127355627421096335469406844773016934131538776328316718253912959113781737785758899430126744935372661297838552798187116387765322625761480871032155027390481550188150817594498231569131727140029048562296049475821502285262513020350420701975323641701658666278274774333072723004176184582843084418945906126124695189125639379699750315608227267560795285406642698674509188384518638503742853642643840377985299667617661073627309330503395644375328644586996221690780869710098544835218089477460959108448633399939364231035070347922266935902800497023573002130874209689156616997566755178593460232177314295216070210145990246894988551815356953413708104883437273391807653300744546705777648447461042489277114960924957885217306465271332108419739452369669056121807292064761393316674180424635326315137796439434240521620139583576931348230320410572139931844132241079761792438463770949502884791486489740954593586998538790665780976829033196748481733902504067645795771062716814387309322316587152436488434789886467774283919097929778788791516455820609466608881631140902521122875616473097967847160735656706850702879796804425405449843252312049154132946737852678056857459462920646025563392549980031878214709630874737391576447285153514214401837197197666046070544810755599645434081218437734048643222697548467647103470289227417043717842478434301077167096758872644192840051697417554560629815775541320942857043467223813866851084137027304397430848428685511225661546131967715576040729818101100926522564209072881899620658649713478034106562291001124005419241657916324795585333405890941678558056980224248301456314817736594707725228833194117028613300288403493154898749156998644169742654344780131642077955333729567791381156270524926285457716780683476821243160814152119202784490602942848870748429995830163470715509576797662786375896173439909681046104498540336045532403548459480431784609541824217828181489016490476616395206270872114494792356447957505618632409537282375223699052094438550759730738170914240225670284173980661871445819688398490431412695872116943487437812933484942689325809806369899537537710773012766893274365358868086339354876672788268310121702770323190871858678105404283071786880599274032384661536600795346737363878506085930594914062082079336483233781338224727575069331408819938254587237957732101127337348702983173752741592426085853172793226530934035530302542986593159676906396775396663509598532279803376924880559187424544602307769812516637593127238120308127198756733979376568521287737563559998759637165416550766502750901641467280327836702933071967269319897622963474684237114598682291410491556837380626442374137571074145917768690536906974824440585697031756048907263677141003217140157830540213981653022436601966786969195390166948208832583350442450082878190968253397403819542487059010049652247791273231982609165627835802681283833646708361224328063178884067486329921458635883435677207447272342767671726262328495029717093958394738158036560736610203699355263548734567908619656156000720630320940574493920892723071452422097279751587445502605663086632834617602550100306861467189567244631466206592437932123103253482737807972953184152209024692482563291982403454977622189466781077477126452522827632176687371341347216769985136790256893698517948961725609168583105803797585199610240013136546856476272744613109266188189597988920952804098041397858661992217028347479409438780915236431984347850695784171610538049614615995188293533521854512120473182441581328318576660192206245512423269672434325906826629501174826027311969038309785600682351496755853090963881725317482369550856771489412918430469511047181348070403499477698772100992619757900082393565076944313511157817739329311916468260181854631146927176645835371967204340554628889209913172032135308000329818954384174207134475366036482125456646885192852940039877208685888335564437051089264179439919099739975834139474753666306496883921231943479128785202865667066180867785322436998619043772902372988099872569716299283000084048026510307558226903338403860081641581232085918841263108200001883818416238992385162522912398913251391997429664131407176872512984708040110077286628420153727704414848408094516557881940601525545746758715902873244177582160263282460716175342180927241163143618452087362714345809319234623180602452003550551490422796569016328800684971028741716059259533248507323780653463445869785101829708122396370077943515747164938956569582050138398641402270428081270775569492436419726146584401336805452821423617051226727321599118530368385578239244962147692360502722415881937952061927642320977415626823966783577175696315180958675024552364319515692889820934915445282770095491401590359907224096871756445396456409976626718305968458166510630759744841037332864483408906196281261917845811320081660989592476137178447183259194347198718394803606080830399127947170577022218686303194842746691858271194027680500768823708101098086754401580479221413249014522388036665176174374222589345617815854791050275572252385593031910718090627812052313682647758964176682283698418919536456393758135434132758939585306461697535828687463391791223257961989252849876874895774611967356462289276622061128365635823010143615508751596896231465807257326124695873675701542143731275647085334789258075057836795853023451117886652526771924103330234437786428376268537475027016375107796998726512380132732464096740496420797206052767736849892708573581755267235929383440233044452191793177608786606291944357591425093293531323442015632391213391303846695392264961595756326574594885553503777976231432127456622004797606636386389547330907524552089789932443613166568097104503717390465968723393607228689739459565029119167282254879125645066738381234896431333542757245682581636858196410051047081010724602302324931902152924435572620067987590460057331683054981584665742345115275543006904633285631383962996668274311766580816767166257403400706369517977250785949029943278979242340968879385704456873703342970974794202747288521068596109058361835535293916419044766866171338667280849802958570824464197172647543062144044172970324435275864439565509899690450602305214702882715609914516979227006287515971625560944383681330338668315556046029592317548076113891672645561677410033951974031060538659248330594657261678147895290250586911138175202888708017406359786578729676042944137905957218229115566529730144599578519273144148822943405431311333537125894091030472748923927297336818673119875273368272867459941720780658011763155162691504098331214033939789261616671598626356202241859591995973651931459783458428985214077216342510186147673459805407334551166457399040264655747530289813427636555719396234277760963660598823818173503191813435711747568541165900223656038298281857148663883367405430901402517422368034059392612954164745067579307984465534699289068028458491882411378113166490712147058362895248432510115707555173346251518588667338723703579089956477883374043314973771613844675612748843348199806185635178755901425618504623427621101124755095372306022460112133023586424034066117259145027320698678292032153871253720370062050646321055107071593751720736999310002912372935071689207159518585371231332855134905646342088811383424910621767227322883838552460154655416273087575890708944920602415518669426112719592326265025415065735981689446802538367720745127230073610480026967637541787571622395159223989589223797094469989116874369404032096570049959413572697408315674303605301178051191745128544878260138887204155350257321590141546677878794887852607609685356214595829739397966621796026609780314709899953074290754862382375765433648334416133247822942239764338818130542754015539950996703359428629229179098914185911162020028550667886746702109746894021108151154286609192666094147775791191055266957104984992357730730711994995974645282155907432672458365657457426333885279052676810663227565795420299162983314783334127111627185830369809234023544236450171045065503448646607349127313572168956845752309873924610916016175716006863554767914511812742890316892460418894164842467601934217769327465585023255757919571411037348225523020427796272951434281919915185541793950514751950852361871606850427361574766838316233139995292242985403654124707952311579266072521902272259726245997489887065084822638055389738586130155322564049206552824443975176039716131642506347375773177042165541570499178481596342269059206190299731772122465763731583736027126602946172359765774288912766910399888565694037006319771768730371352561334987765833317957402153425212099153251205482626189615203719461581396470363166979176054220925788074870527508438189213834031994800050193293214087813960640492825037227309420575384774464494827463826295205478402464684276999386053518852785275179092355568859522794009100373294959949463242680740809546481882121539215367631764063466608535044158683923622985016116879755561816138118798696403685684805440972304375182175578889646683105652007049755800222748768416848053640657683679690195990232035673463397078299652834441030180995212325820663570266817658380660038791254099943970459077085985077820549801021395101059304410053551238826386140016283287461699051781758080364558232132171810700947872371105031187656283624418548444520686335009647440517094573887086250917815792549385900661617572661111736337249831861916002117169680872466582398776577509868278401633946034316057566593347026167889758151334897011755221791524178225174472626388293526275883370711187931081779156536889571620815433217554440123280780713273565292842640885630946805155209213214207177900474704347363650892254559926360078605099716026046502574205623894571498362407591076715748150728106318148921472838692350333659094966223597376567276235715784622914121917517524457029748019617385873301570763282510520535470201124012058672607391516110734574332228420148555347293380590932635607204389113981094864807934355912191799004136265515199124038079456618760704628678361607385706667357380832298833782041161347571484394801409712175152621367939843281731746395856938648529072886731490240127572585134119516979984807166942370503268245637519890556965610205405450072204437471956906665090342413091946510408037698258826686387184877586774104245955881153755412921139439107869507256120719641432431750244060691512159463652115463894942714486182402288550777088666192700070081705323215511501569470337000323293492017737690716849121496153802392562578683189141851754579886966790206570380439267522551348957732690194552745431350326403813643108147210144023280568499640759660486449105279688060943790685071948186955157599281378877712739110901500171103919100194399786154913312261275291114203659935736546267762235292279187308790176260781682592836865725093785863104710084627787184385905040352445030625451810241722989380066273841566116528657846820119730068616812746735508198069276287891404647216986811767227595668817892826227733971381707723139855217977861558863156141331023433875103699252634901925154463604499156856575627160286495187544343063563888514336687561816395725468158626840874111632521001968481229008260205308327214670840943192695943932997306868277504715326787267647600116639930314772323363923918046541072956354994438367507237484926509772557473050952407423422554892865600335650073822564908924146985524270999956307248004104601931226789609793236315561175814516203158250553231482061830741547045188967218125216060320728749102395397588989244662546394564410223823651769115269753848441046159783497492058464833462639124602580420253314412113402698320294724018866730521075616459606087838314297167814512577718540095334203406030203811213869690607525895910867811003677990149486396125015383053840394007644863036952093145575308021856375864563433840249116525560715264098771033301930681436866354205154192966019946249028249029428216502577559411336710177812384935902856790687006706353701800154974320754067133321155301737208481886924338237144682568280193439443641173171996412301140003489437232966553384453470016580267972925522283201778207096597288216889265958439660115074787418193099164500174490597788957773593725979244232480113226971380701782729600256273285943720868479304676844582496049320039368235817618728769712767859690839776941470028194028723598993386926054884644287239345478602391531242228518554147726326195012079344200165836190539654919840288061628966543572427746667069262531061590044928090060458035174106032028402459872909438929910413582329401371208567703114845733579724596927408381617420559250356928569092668033006508113208071455955109338237488319134283569405996368128604134644967502159655636170297681690885181287614988608062738961053505371436389159072715260198964643988529150497726221092607625832925460212073861665220203036971373337122733162971671624875480881004943399898344747236275553792395015688477385546923512547040129387864012381927598085882870763148885432244148545348325485473547844320482170571526818206612933156716202411489171694351535023937528662250313672169242973700814270018324886706815133111880489968046149146095243928596720128121930469444516237454841700371510384462795515361084131926311964535110916510911395247483270042813302392216465800210067673026025120014864503231230629165550052132557201377059123557553280294579455459630218325360642393744119502942985429896203706836869554958256129053052166451985234987218280067182411853894737704243198210759657085155177724949694750966507610523084946146701024321642484281732270921439990218054884732490786813338330876379438323256592838474584958998896993518996724663922913018357446783029434607575714598931667849560997193314388428725887410088776807937096874305878337078653635796162632271500437175507628519725181084153682551059638091872913228745056864710178870382950674817659729547692926731022358352239307979474861238055022758303688717773652354354464510357428840281565982535619813890690801841398578771619377666624445233985581198100464044931311001672935394091675411209015572285864030742213405356786165167366177487896142794677701724583625264735558275743123606006599546862541257437860147083111919383811082965517477122429539635999843055861620567916877039464168412465439464449583363010302373315960136434097477386755568506699937657707739900348330950758919273762860569508071876199370153281522694068694988695788847923545010470122726248260028101909290325424937972754420804585306908591513024380354317840007055622554438885719917400120010090502261197718966706754962019294274984343974649783934152452887431117911973809839606918117266438030455895010909069175511299967247833757760737419810859105068560276148310540268724115213638545028283321048001611695386805333005425301357774917138438059456492404214444123852504748743590024004302599562652564396892714561941449107626553291639896961881003872980977273168077505058226099068343728774222562286158581627122846204769210624074252739037752836378162460976751330956922235149718759062348815754720434290796279040420373860486893757065682842921947774631117185600863800157552349098162393480568090262243790448723528756550928799843060900232035455433218866102733049925520018148014133474491924043073371950718585180911697267627764677660859105121938252703726784406782687747853602531787331671889610977068946040524181398217485229057285034499021643795514276945650261498898868465611022146212971026239101880796105539773447022496562425705558417590945782844916587691696926415226213675879880848708535009622152448449256923039101513320134897670717952409405000600367094416323314825952989412819691700718018922939291879564018761677262298830838651607088980542538119523372043676255075370134118983555864528689197883519645816992015384947213637191189173064256252588777728583130359474432152980665350135758816667062567032860069999037441944005380197742830242994000142809114963237619614529018837407752960532163793585559948813440220767060397291245760181408597681919948663412775797913735318726141983226453664372580136635781545131942417455133347716298857529260084412445656927185714907823180891954857480256724016459422366760346218538359413292765188645751918713508168612225631936733868568947005346717938622216025600722205539622390954181528117602417670523073744553389549498007992861367634621648268482793035463075714020107335224321536964394827838183990508342414712885332555361853474554550427268186550857285132628025582670710698106693271988831971720768289228909125079868572534982658599218952259134689632101131049950745803290363515036613594510903948344538154012894674869514829306799238134225613385259660133777781849558898290905894351773129090306988712171764811070763683565831819793943442844926330985473583500509295328535200916228815333665172033916582981313067651857052339963063256937556602853828875932901904885029756973734760751914397299030088649970639510112213024791885186230559754786308593913951349780034019558184908579936394496789457400012418761837942899152234062624348490089166888754531099495519308621824296430838244520778735317332178772138511332700533224060922389890118450747840531382695188562803343124802865499974138724486409872093838251519936749609385408476930248238186805183563445191676887334556361867192455823255102011715428003176788167172146347609636251548174992748315084673752766888060585283514690419585016314399441554824382424544118126912838605688421920510190985862292603962876716589735174499442751105825436827091440617831273067307607722865672732282353760750622878929597826106229428120506670970320243973487635925103341785247692992859529377065198244178083315313261096220290934596352144474372543105229666121614579990930691672319327928841850062412454735289823917258315069206998804742771267592644373156628197582605380322941769740365343877554577531882767302098392979038033264609500754146425007037156129025276435967247823780421139607992072281536835425858773803822288797376228673814141403638444301912421241135098956456061763137397184987720131128910616089729662884889330665905100749348215116323130251261835795126162515059948560491287821596532532745086530215361491215233201294762041402245266980523379475296413656360838797837648650121516246502873756015778672630322342220762296891232243333799212134641324036389585450100621363611647259917456919066051665837899447501933413085023214739957204057258588051879043061912343708853048547279383064130132795369398834717256004661786852695029697281390916416459360599735353084580902379720900473197336919909172414629075852150247702483222228318066303736746748876151887264087410742283247706946968648529010643281800272449787646628518357799770486490124762720836098009057344197849064499713470574173181267789458006561089282606736867804285472730623042523091439760225246279414977873086481379128778893841960272572701047906218893408805440272366286403086657465639054277298416716203951670601276470887567602825639432848104643414485010868969430463762571214417457389518297936549669127043327907214076217319762503925585139091262462482961616075408469419544479299842992089829484325725535023482913180696840022132337616172774104231336436148052906678874680715725003837153613795618198861034214693692026759172935220721143411742875299440088428293256710379497441040014330537523629058155352825109537552965054193124543995198998909691716945589159990462795471755677253190411844811611822035074860122514812559144236222669004909894736102904734629636917613582963826884914005304082204076939562177710369518300558179519986325890716993308925097767475872331530335844056231949163821501820767785816903737081441873946139359927877333280994135474996854149475420557463613019344801343337458311513635960447373193528555795705973033623086232902698633227889451529226127215868589802665185884307510879590749490197307040093508818430338041025968843666916350359917078255728933493539567561921225499149438133472483208812604849206729572323672724316050753110225401869986557398568127242560415687713543144051781586206080151744930535326405895727225236201245954014061374170068811361534408605542317729500868359974223894297071472045399196631876479956762721995392751207418267780384344668560573969177148061964560514132517211926742265646087433156062651236524902870955361989363592684236459977755384887193549224447212521457378328859693368387744846164808862045848620322868773439551049804769959875084268385963474126042938755707027233024260387115352856289809409454503437728754462867414579122034451084569913916086401918543671878532507575838902700703996897030575500283909325941442896375186930395555884463263560555806888997685165297253574175443870862122386192211395944676705546847879267353479659594311922972975919278819742012919549434047564980298932396588772937412617451856018838670448439700566704865992091861070558972975083582348647294361253770971374000991931910761534000454262943661833211843552609498373144648541082484278247351511624672808110179805104590656684896266902248483509943436943066828400608571680834563348464945254123842074024227000105905104450124468608797724407625083083114595363940695688498309677285953787533792137540280248581959160703215740875061022365166221073288009065114613511313389836790849410932676366497677018184168017487327524286110762440167224418235112747504844969612896958195897569582380889065338852361310889686282344653422425689905901730107976550817674207045012102334125246770210033276613608920189739985647319355222377130746645339438197338355613847628911785682453102089908716939749044294031228404333317191553380611480351202349639977122027501653247773688763368148739198310937529648604768973494324142579204891515098495555060844983697272496876413417410608893148634762985234064404250724960056681789917759504554713667329790090130992225240648870093982668714127155934513544100812089726751675572316241100028855853623554361226482080898585686694294087350179887625841976695499372243100656946900192200527978704982908302743938959640505310496509603177744098938080143875252047719958592153432081650877052183837166704464919316975672236197858916221337713090728206145343903419958474842841158136882144740840691356870186698898764823672282803260282762313471441487341977670057069615898323925714559759680946719458000397527864043758991750535935327937275509496351111178197784005422446824081470924468391144322336732169979909871384718416564738384010873367087501126895448883851736493323105253758829837665431787428929394341895953280917406396547487799956686279092033527103954904397861593885116262912823157364913186752009258551289532409211351630446793548330031202627043098470892034470118314771380015437368287983007996258012571132223364384125457519636143967140405366174297551588649848618866002545068648877614179406860309456035943202040680036107618890578299398915862657937287389095332644220945830466116531671009370215923471837298400960931604525973361529291809521498209264090720951641189661096060730076627298578249514203442308467705738861287342008163334327575001036579022357378839174390659834711935414005354869661733360199073890750838088101740503465668406462228305360389889485187641534972114103364022956825746592129740562566211159033168994796186719796294266571858661550576385295798956908243806192600100095355380375206471735392242473936444272590503907628751744886135090016440523758097746779497698364301741283536584342165001868760997589606292408262664205809680506410276588617013763637523782208859261643457077337694275797956071496024295404672319593477727298346062060229546136084478779115327911549146252112015037060825843279006736656235236082932069738354172048605431701127647908426063489908608901505659789382086095471447170857841753981405633900397324878112043467558096797293573178968194986302735475742084147159964939567818302284341092681110095541141900789649542897614673897023865885480906326866595451862686891360950116003330203518438049751616411287913411885135995018076716432058278038966622893919330245485963072883981167727233884155736818776711159311462590715058114984431307845708124457022982117317658304391919547194105966538812752200262006152464850957464571368859830442120883678290437232763931195426032668016202198263052714785263924168500693227966701305641666083677835878493709029908762510544855569101042863369895995799700991745871260594614210844488575543669467262980304356381960015889451838899472958048280391755123364315100384759451561317241984839800844572192778326230343463262313651784893932448034603347110453413425739722560944804657680896003009082993229849697692772227545924712099749701594379029405346878258373414181204243559409299711357795149090954537362118707779926797997682667246840946717911621834594692490091629961538366951384489489506081934308713180247234048897341933887126356211641164424203418860040609281738281136665776049814791098890140517245149336559070421337852060359510331004283575338145318431292122703120139829653684876205774713625581132182537930849935355949668661869944140356348770024817034649353620186770356408721186119477194248861849373058589870499865434891243272747051705569312789116105118925416485823332476176459332740696311040757896990787022197327288625987572964722615590221754665064533891824758499075758253082030830248145690744786579596983588517917874999982228595153183065842705427924723375855314392605612465862439318579013979923193165579215790155764523967477542459853946149013633918947185711060989628567370732976034807250634115770766060580326200490709641323073554728318725566973774980607027643318207908713701747008102613817615367517709776916427938104212639110330147633186868141019193764837490204606082340035719241324115065879571862873689740150582953382278021337604194992858800507037925148417511683033636898991070295900749716715171324364329213054229364404674259092512586432363886038912642476051669814984231667407179141208168844497772319370437688010251165498938770239393050979610834299268406518133694443483476475511867600229742847543142147075601207914656674984351260911133987571177338667660550988298836376127972093611403972147640834813360948798812967479591842244766055868551020460105217954314750738552585043381019144792454808444538137617619837224174313698143463567058718049182311308702782484040002962485517464701963856234155353731907714738134566831675066442889844514379670834817975963310434533983897674786612225636718092034420394074761600497511439154803528707890059114879433900301673101974914712200466513777803442807290304401138544564464521593223585169053601655218160705063303552050082972615868695883444977537019420041315717053540962643356467807033683745283987728610442059535544534530740493079036763426250417595603188447444704688556173478456184955548524309663340325477088038146374372545838042313361075189635486693986799395997195203094215056678097754612035053123775757262478616898457729149600107985610598087627476785839202577712556491657572931023641807301140079343218855071554914618115557961954338963496837796339159080938030675098808893191553089419268456243918211511907679517678631661972296299524748538628388621049225894783196722272999041962058562519605424701095874527994169247428681541584057335600373017937400803116770951610600770161460972692865968244655677529752172945244760401309932495124626729968660146587285168918263451660629581235756022355119331231148566014513758428440075567792327987806453257706655122851556940570946077014721218016452069973392466258019742109411906214963858846431388623565468074660664149574583130248697314274545468316995162631721506084690693313667439885282936066394165481623301631389712896031123946282672257046659353434649158294585769511983059287237882857994107112376845924622762449892048227758211184405514834485423686294910110724890388386865971872993361784066960624305558519103194230451231385069891449184433229365268102611343368001921871699235270576955146689243622062636013649551576152919187406176788461528768555572474194812972064283830490508457284558392217127445496726854678574745976653895269343715476704706732950308707324708108479384107119586835575202128483514806283504933480169102651936570871693517464355101633740803258840290489005496653645353429139501563445615655242060544881467754017911188751479523075559737536935300655562668727732891976746920808278031115691406576314453551697225104001665784264460196057979049024995190783795812173943763635334748029354161164047184930445325852338743640389939316456576707407522707786655057836504693239366198457958860758659945583367865823389304474784383283896263773273960796368048967871829477011949317248400975220714979349986336206316288902492788897219886308325234958209038314121805304413589706578030869672037921843346921496124759397707400907078426060651259742959303396323482886708937177209922040039329529977808318352691221388970387362718062948924134216469068881918286946177712397368673381088920638146382642965827085008227327872181122666192884988692221157084127403004616909552488195011649599776451313955952926668017037944187796936585574314131591723750037022703551515896060493791587083306613850654885853442076021772696198472239712960711137166754222263526947683817380254765716685275527143671450433053877429211168039897516423108328840485040876118049102346054414820473522885690084941847348619364902442756200432248361207791357947025468144622870975845978568511167803085828732060600310384494135299549053410419226698929748066840105396314774518268386749705573585999166693641538660422345600747120260580018945550604918249993220167155339660947262602069281726266423388722653491685163991665291471408064578394012442173550243658932012818920491361993442831202990297358397488346373626277799510432562615671038022004141546407899580105728862884634525019018225440093363427413957171322893921276809447318064961474065282498110244560768944469961155711816741622595661612915813922093880219170649249989547822786183428004318897176277544289969863551718766808019966035826439661634785743989400358486640599406552920718376165591678703339142856961098190843569906740111508992123633568480805971523219366588969813827091772071372452226620271652102362821030287016758442853308076954649522971855879108102469338146517778677294564859454615241983748947242332397974168387501793098574024627689638588209382319971273576990563374304385333522061310878520515771905281575339113417718154214349349640888783982894450343192013529788808371376597519122457409464756939240192315214044313219680463070325219529204460062011771462886283195818640595135683935273885392551981263339320400656197901123156414264078510137250808090448770242703640546758408477224704111971497130582105217355281839487036430538395732529759799887492899712019166993255692588475353253036993316234414154764466788683081516531605622682417801980681934361992396024010465833195842176135684749112266896900843592152162455452170102686623881239081985218045533281818115061080162835960727305765350650139103523423875979255488726682586953848894211223386682198608806348692556875872656394559077109298214093859934190514776127024510863421262599331707914798207810080761495444172995509407522608975568139300975441778489237977483982628146643492722195582595500265942802730816484270607209697135718735346574075949608649264360190902345986455822820688849401614252663237034497155783800285157804500558141041225477350657290467860431893747823077938660887166274920471345194834996550394970387882102542732966562794663436340996161068169078529772317407491483620163326983148420607157329008541538297400736061924804072832096788039120163776376198784479628005093079214743263055343393221367289344820085795652682563267003547188402904742839671840901797918226684045217500106581120315723896520445763339585227656931713056603164755993454408777478794193682735104339038872277083367107668813838242567537176839417935908778064583630412161326489737786161026880012237740721377240559141778614783214343081863577399692034801812673184682544726798117159336821704130062719717229730832260799531877786156786625654048517789013460153426599660406394660480734824735908330506814398120362565523592177765835018788877349085369202632832646684197048352049796836548385820756111594229805738573948988203481060803679817271685902944019985563152996234427643774511805396317840524188451893825279069823750131579946557232042614555768022466498047835558133256329190188372240047985748977216538446478272367167401259255242375214264250849956431239126586914655378020656701744070573231459011406228814537723358312915927530429576385041069902761556715946656482790373581912515158502866643173764595564661410454037566383949493108074618057073490327787493679419623269988460518360123135404881225136125660541810269471193456407622034318557983122340866506835915383608901810533836369018888764712882090451238294030425574388168762038406804858109653745023269225873076801643967856070506295793469064906512151950166592527599691097782491596004399687819267693858647689783953865652642082008804225838709089900323784916432300211036889889288046382184847964746559102152567092513657112192491481385163791683552272490003084609929702300990420337820790934460908341435233554633423896371239677116211197486865854378796550735207781153087256704330065497104601208755422922044758986223924832532732000749526874870271057576342339650626405976926732312293224219938716433920038277812758747218568526968867308048906414156819474181727267064182404584853985897477715743543312150316133627299796537684506145446270632031199478727136403656764962854252328649179205071274611169206950812194488454194447712074003483043645229796834401677560318984868644899017965756481775254143788529846617432398981638006123533334558245471187562070433172906477463131498720456026901047007640448791727668044333022171160260802824682938177158981784598135994135953502883780972978747831926744213141425227383204527268934886613677421617167309987008693643941022280973566359417019515369174328128115026625371855124281549946724078371439523129315765356015102506401918463436357723009826139073431272786835383052304691986684639261244574467349501953008554002515159791118256077244636954715627857679251861452450532249458086511535144065325047480785452459051591195331941970002550376421922943030977759506572075087258994563471117144643134710106240482269704436913895229334002212183380902334170079205787832697274368630435292141829979225713397483839278308820169772732376518230034335666402639712553246268306555945225226667627361440636276196296760887578599388561742811776542636264775126686186688063768090097680574884035050280103511972080514781204227854149797116166733522186483560899738450994537782048848345344462251426573847857594957333047515068554097849195048611808253288090604735725082755095808138207433920256480644617747331192321424175271127955093103738819543052584275826716471264621371202977388741320743404456853334232577905610940211434868981785970350279947643351754190922782065025655032816251455987694800994597828300471069410714588989852261225308197640294126498514401262213623049898832858711394793063967573642221611948871707235606958844803521250396639496064239421460174024470837705803889326682453743022901345978054640792861003440737343650175099937879769532225011597048927556146811484144081525427702153758393247254101223101637353794862685328660111514393032151289532917485998094957428308956601337625519764493863672060136193459898688923906786043106675658215124260523170904880201159899179779316313880310478920154387845953964835344652262849992307323876729789456837199096806614032028172059806084900395973325267353476138901868311823038993667768130449213662483745998414135535422871854368752323850753072855105102830204531252457245426900067028747172405252449372180343790803559039727174941057138645830518024210899011436791599863476658208911918949431684395314121430937564961437861062075569536167803582223915187583230719162571121422255741067393933712677280246550447134734612736280927289739095971254212536975469585751378498878659030133852812122714943674819754158722408505701404918613273653451728193875723632835596793849793563198901679888749059298064309505162116704498799168790755141705707148722830459897288353096862586142857449566142705010457926180739824966478984724580759944298839178515652244166026147332961515605166958082186271851885909063380030933378296731472799235639458408058480180974772757743627582133577567998043205814693820257608594121336958010690083089053166496286690597779380385540583778921527077085962042601884736292831532244714575153440479243396550063824001618107999972613392181330885268731410221425472343713694000943137588966841704191383051560649777290240541863583906082055003182725470823071864918956523226978589933365469870972204929675010673530809156199123686116218102275325857419439344441814518668902572887851784146326843750620047576722437906101081663747964074310593143104540801403303337394584431793224594973944417234821979535894294592665759457379000436154026664317334331259443722813644082770611041218179168530199119550568383833948363300985213705909461230656727039009607011744983258094715686033897932970261022736317928780686689103740868228081118746513721485511509298348789309628371746079930256767077148194316105413114078463423350192464469984076722712054262782091957068344488613851767584567315263082871256610612905358844444112676477502396123670361562459369875635145744292410462565080308536630042688107005703405145690784265821083721051036359100032762324495633949744884832047681518174017673880848938320097033688468614790542548696575744044336580490415680481053435573463105265884234061092878946053236411494856819173698142885294988587386626714015244675633491698990992624330715289489919892486908130998392137598422167419658224384018038926537300671827223162295911458012783849349750015211043312653679163089411020739668991388095650146107941112639189810167249382945145181167981919209107884620370740819113999358838277920992449100333827406213417312891119676715497163432724085837143557277098489735811535706848498860093681477437734579336727692363934947416969489179446849110900037395859081908447157454584931990112570921328127854578932721480588740817990934727084184181596550381612350858587354787220871756656827367142292674939895574604037508635316960384373859339371485387416957397234085801601590495625737052315927050171385585429740688747146956135182219895154289929382770793062020666340718031215272580731352717891098444399645789377688302106963731485631635004047322010960521651806353877746628703659847695511419509389835581702055580065922659348447328950882356487571822948721055983679126637164626608990238219029575717234773845433959147768782091015437123663840452883249587918902931875481175509044797175572960221820118311533148488908716130894297059323758144344232347555895500369371754762884640105685113480962541760574109355362228421092162132585109335982963015837851691006662170331420866222715653191043756393635052393351378450846008190057750030678579728592838074957569435123556415825041646507318329001201043731213331012961458594565214945879977417395498797013538243847923956322554627465596440488623788808872510953202901879716760934062908266228217414156098739413306797274113984617809215141065583125580672707843704317522486049686086884662864319843185454035848879280994887937997456047466586364201384228251232223927621195245284256143266008558892429514664996516176916702922016088073411979406044316188525611050019112710516434243577312692087267601611829524010012948921027637494068932658741836292419650958663581403957736258176147119202705815585578888673512285784832148447645675004608416934144460029734964147070610222875154033565789682087026819020881537379487733794581139160409688524837074484845085359948675427434810831966349228586210374178772871718412938002855747930525843402561308635187000789579565820094267957313539170468869743526310122130393382186760444291941325109833115979637526008565038059882417056407621468132480745844494160958994032454639263356401431759421527726451851841068736241401556501650079382987208428199926324240769419279722199897444708302112993878213500747256225047684600267534105914737900420780737902474692376945496949443561555650619105906084465237023882634644824557252841423954553648742907090683243947278574231475803080149515367262480043193265822997892884566846324884319517160329657786433886236221522491856411061593143445737458020296984863019420316900770769445439768941621946681614094764967919062747475566389057695116736397647670044836188586444446112698429846855647736732516661172326828608800608529025550136033222104560442089760664173246365878868736453471049170151265949074034365439886318806654571078750833252785959098767084596669415279433467094478996982524096833091939572228654399850432546170216755534315379085105355887608526146119193841507047012072067683998392281672198422795440560170963693000775755957173328373675926819721281150877164405974398856030821029965003669060158241210791627687406577675062691992796455678870587882853405134687742540423586802976744571676743097440168490462277621491796111594475952303033701689517024742033136543355695043563842767888071106978337842065314179462724642780663426606944115128432570118698937706401282744616000173919675231621354014462182449465876053946326950466790548172999173097050788250558784624142087730632470888589493391723118220496040490516779530622570771522407376189760104611763544152516555211914018396864490161960732720892614004395476467219224549311048541423778563180973567071474578493677677650281328495773605895729230809742844502081480669076235193845872047214244279832184766957135883522549848217944296199091832080508547546929593006865956853208568660785190854149338622298871142874144584450009617162235657696657903587866129252389821869774942751568383268537680205919839244939687146500887367576261612817557585368039532970254269428723044167959623216081342278156399784706985250986346020337693172635705589292165173569482387177753791563957037052082908935886301279918132918871276898927184736714570440571071858704206117611927223966011840887936707139399144085564691810789934234466697615686956821844262643877080328698007293687556166856970890383308498896802830646130437288111622935933922545075389292492154540601127750098948911497499429240121240670760810598640017737574995024590247282475450996080380324933321159388473852470918675863010418021551997583869007965922874731983473052160528730366378037097711065521666135810856697903453873062101454543446195499443767966744908889949937565992889829802122736632937290952485082881974928673530533691297184427163825007107569306448160811185277085888792343617320240812310403048792869005712827085751756280970875474600936585612207797672940376134888883289039201808157282005224525223968103029438013151438642439821950937528881920237416527801093521746056329580004118699907365084279306112468229908839193968273133561375601999438028958685138342109677186644523394006153428470689877470830744632720989374943940469034080817150595342760246471282507566222151329068017097632949593636184838406990597549473019309031723849217144331024295040825889451103137011268930857608352608445539775579755704375547164925463212044389567956592375921332976370706759022557887317136240672395624434489412124798657830918690775914365717854472052169971876973413640231253833241480449759907754163195356479532886356755283446009667009794536675343865575659746302337585809191982273711159922894555174508720172236152784590392902037778176662176581767349244606412291734770859483133725701282813647257570556722690930598715642334863371309550100357772484317873294940941237560039839928140231429219668199765357720779542319623806444757840698863372584439750097730585784904390457450239314729717135071982236824887680619389977679284515294962379503554816045231618632634181294584654746800655429763598770087545666618525081856783751963082936436666327177898649888859375496673710709591650784938756276840747713863605790741346309797127188958012685949700145004254117658041320005150347509038621622768452227144247380959660553974440917971714215921994224547638702079735339285503812689027618901854341929266974270959133965896654632122738584364706911688461697108720432621905451556409799553485022815228047375644922185201438394999056226489654818693845872131682429179335943890641805002956024043740957548782592516396707565984671933365325873522538621049600592126050588412993230106589290847115444729836838257819118372755377229031072834174215345471733866018269704780522938153302528250182286085206892296498963692581298433474384238172952803308190401403798476855547867744601827373963222697362219588912551364470474687149611787921927177512274593070898464355787115130644634981268774844296155545247736613215764023462562152066749861873264339070842765920714524399167702622230564400882846654277790203202887683179910408920376839482621481490151865536092313806902766115213340850352183541607979442871588797200920535303104065805762685591427167394055802757377937340658881016315170838231833815247756057186191884364489999187975757742094609120449215918413649060487689201986947726814042034249995106605567871053988557028129813848829655738741400460885395453069703270667703376336587031789023679473370973750552713834194767998547485196276283902284604014571114204136099524578007291102458080954125360730090443131388955196060157697531697452215656323925465409389395884522218028918794271632418613099486414801063034348418724925589068467773634694291381649902332344687410027343817446754310006504385339318941619329039042886887199888806392766193783022750577281067759570871932242134582973363208001448756809051806624047585266327481650374296504991492040583087262361255177718394261097358694574241988885086374812157541058076291960679059976755624662785693950794783860274816914372313679179889048962145579684015135281289886914185122118160808527468865403752151798758897460212186326208298002607087975980689773176658905875470490106919085206449895498831623006365942296979757412341236956799307278144198021739207693543712502176691735834907677745867522410471371016407463256554818791034566292495769283221428480653984061260001364206048839446351265366383510370024051570740343802174937827604696432294443561873854241424654562459113576929806131830167254960410203305988490521802411973780276264384515294541383331220866945610437232487556562184228163735054565795162487546549943493598470753464611458728110703044896849460234486510820966169812559469619344410225647164889966937258632778571922700218886617690180543027285211487056613943498084024114242102905786986273662692770986703081028470166244852447165284225852565220977492193810553944052910990654973937607698534665469879084169933327401535904939513392551156029321128109811270169179388312937376091505204844749905610423385545039509743678124869505394150382658674053056709200843918821873986371339876926700563020505200980524616013464403311325111585409994026644926391038801916411543968607434662926258193918657099028720155233402683593691643593007038765465676403614471366156200503660876408702156526387265176602875021322365003333304367416173114730580386684290965485662268908163323541792210642522303642874006712751198151046992266133938059810193275498000409252403957243077304472072244969458576906307231342064400053855171982444872487467395657648558470043549175804032817550937819498437201775996401022001570242357753439330595687016721519090487416379951677898416655275362009052420283880884582808684510925016264888473588935639272900256391558642345106832369032439484056574784338665356449372330583072428409549997470519341121842859326478199219211568532957711536873012755917734642334210352756004915673011045208196208412884483027547655537688929580704596570117812234745379516882126043119421945049743380210808388798264492964153955846353296428300236917605341512548298930678909466740117561941570355230442091884786100605429751102500156886626838338213310425569472640115422825981284580777857045711671876076764623545795141752220835969108125308458758954084136486220016212068637757792683912358964212337437901426619340962384611263416485653040117568976992062683762094971398302793884225140613432009023337764098887622811448079723908060941561821306910924839570573103111427469866080590003338779209259954952506983711176113080641730399287537580550536903918854078527333189419181090352257329419640462489133981366511313821805392640358631333578323361129172643698467373120473734713263996717528088616873185758687219190853444458720505272976248503372664536973982377834009203404484360236856591507561236908752536035020320740644978847572930926988929928155558524987154669101413100299138357111721291238272175881933081482386121021425923454100290506385299557353102014803929488276582630759449525467647448411173769240400180750816237428785800230971794340896479097250425489293327230839596418541579650085214903638336325664258861182971464650267429527363589310162453970667261042614384451305579996771622949821381442378090948934389543337774862815559604478860244698071257666876236512094002912425134843207832091040919322298165745074904172288984034405734739816546501967149054975592904438852816338415462081960429123100589763161594418791876030954201758338382565337416419213576795628169477293978550366661934332709346813050046759506753639834928630766832604943180668418021975548574667539223957190853175701303312984461315710084323290595238047546706407448078909962564301501783061619179412346311866326001388834888158551587985041856427298556988680546831292059323211266904719179215441310936229464430613071144017645602025438797237797931557354866197070128954454610817020550472372908119988511074775330813386920528490942530941293360783182846069849779986687613679708244565810580980112312827069040174378175316770434150595134053422743700949259727224493175688226280873836523539737423542073567042358122924484464322584231335792635904979402300333368456216754376013529634242112712860415524038079446290203762921778685317694567033968754277143384032032012966133834925040338894600078833232794365593658843356628842822431012067400739683221175740271072926995446793912678308604542068299518440842916889703050732186850380288246035150261762433686498604603668081347102486231510295288524612289296472978578228511635435715792159445596103609840439774537806788749394132447021119999520066589345446642973923024513536208623309681365868102419125065568355051335423477670024693488486289172553486775145071954495442204185521738798104040277012772989332439457510208252404799014174027612833310781162107361573880671538002782502146160669017371861013708025916882716021131959353151548733249747687193003852550222998153967254991414082496585206689634475788626958872481361098515484301342454942621282483649240690713506263986243775390000185533504600726876862159801180443168216898558355747750840401185618223909359980529896479864971384910731297556049681036461442073419252043068705808939275203164072904131546410761327329120371157535640435880521112058534032965902944029777988960370813548847114119706275549308522513560696498972979237134862354914732934403325929140105425027891907646886532590369552156184897098914160920837946471654976662847434894008635324124776083395535718771064411297625509614537072350218037655208602850808105798383056760420008924891610129954065028343095125849767090181207008490255639032634949978770075015955560084005910251420533001263588790296953858944425083847892432051079206064071810480101076566131268237571101097016559839296764649674658610526480505368065614574443949200009179057355289302588979641119101147563316050051700239628959596916539075363995683146348231477568663447554629604284247375404921071485974708854134830696902912138261241980903969619079208421918130800256022608438562917402325651008405245643021636265874159755841530383798732772903811886822566825184340154217039410351637576184995068535086081203455125115940901212149528922058377938217820072075580471713082783798503374845035276066955128107168773198168342581260489719578429794039070069581019650681686445044999774972484145379188257281323665788735875072633594477209478726107924084839121419535334936656978537679014487161940962096778649659711435286822473484049285910869330260670192343381913484342186612465590227339154100131111934068541534244314616276391704207831573991929885621089874805681217161147686527874073264656391179760440591375160920337634206048200117665592534563343960277667222666234325410867300288379861813648761221845554069786464160326956412970246464937067297243048152634035146409908035381688654499296723113411154026742837679729398640120815379206034272961036706288439104433964398028190136492437069023039106342428746095951076220787222819724286583825404040181794981569360861240393962477768806158509800509927819699850306020592340068312323334818254022221329493838544792758113423624932347001993099722488693404206948141679875258196608482919062316753438703093487945573612084088613263965989697340980192443628223382375755074938404246181497760766298698547744013841653620493551133298471215298991021887880609199547256935037979141605035371123806667546956129247740281885657123010016086360864798816623123888752484836434471556917875033016601485296021590213689589069435538956877009808529192627167073458492245803988868944889310963271391491136173227777954937024183980739855639925616137753629982988117363089560384137680739313871477895685678797906520401600880952348297053228534163742171411666643042640763114722308872531421794406082988418678660312155861197709504365974203742097892633518190374659801905947883603071853736011359390313050787496525372250629401468782337900984606316171238668460443627188042176228651024651336633145936885744406045299602100508168453913504803702772180654502910402007602817312752146361777000594977784649166290411799462339291094333100654602887633082897795128455880195882052073243572910523027848601696061316220947092205912749731548120272835614595249996700177411063948425960297406092716266162024079331122074807054398539413556270935344754036695314121488471811526629452591717881555464715682648859456196150937945566104841262042116216658856612046999080688452226934530734752276777876666565568149733017900001120700003308729526486727592130270425022960524616877691672507383845545771735795599062030942393501640637204744920715866062374538295237185296240686485868746331268223254468026216932298862762999093350850167366958657003404546923597544121824943144036965880546049475661230928012526816424993948871589813374636084955849562452898405857218282771507509803533066586612928639696440505235900627077480882784328446025833467428744555980922876216370965856325665259934665464066439559195062672776499576679960714267694224599739791702085044955895398282027021757007142007181293129651246399661695534581086392646179539398664303347022505851187272566237688937555742954931783518956244649040025466319034389077973830632757857443649712388561446416804004581496728062324115710579846312012352020890293507080825073469463550254524683419667513999480544905818980282291476620801818991034552424878088942292655145244248165762242751070035805261587084605116933372091589675313987110229471297180624115049868030044510259168811127436823393346653643589440301391486667769238810006230529142978994372867732839389575664817667732877541694358175572538156694858765311195151874385602083403735783305150052846692802480585673009844740114202973053264475019177411421402274504024007065170434000352388627343538553587821495908534089329837771491391893549985140392047893568479787156993521948305711483178367558695487913592408902619040045045525877399869640524199058023399438868577003507904379508190111384054911634404094652075516798223525160149591376745372282795435651221979334693632101511724575617113436282018767940008114505048166778536749495290025388984223354800143436735035969635874979511085647828115328936453299071981346923017641571670106357490668452164306120358205146605915818195759443193123167386854382355128117092423817057508941616267948959008919948514065377994928899265370652997686277715150169442465933313525176638896746026007037989296665605110494889925323968974466306369988307224292016940994559602216604285985888458945079886283104224757029150160822056552285547981396388413970488071540539538987770540741587354080014987765873560643186659862087157112866236122975692989942135944219198449063247116106296818958447065596195961368396065247588569572678117203149610521211109442479400700447448570951066282432086242891333575472031697225968112879110859637550001243251035925749418523861110559842160613164431211584214402852709892429387397202197190281840393018417726303302491087802115686453596768584383762057848612451168104228835504414292969635131254295220779940875062632705416889147719287897991839022729499194454891556301123965482542490928172434464717693687449430421221424428606278321785341157214380085377830416959886579717337707517389257165070815896250631698274771580055094284955223619468922564796512578889554614598839817128506390923236738747363558608928120300187162648059248381321287685056339702962386780062330777110331759532900830324121916624302507030635414449766235546507237172722866189264436454102514562102942486864236328780767161795071969129698171301623836822958306866660738267537811187931719133083172336795142252653332727746696986485059125432548581511102093953927286420974698970650756715256135074929276870503525079532994123657035326359971993188947136456640856161964138765437199012508697246769194204331812749352157767179035444091605111072980307040760350879610113984440394317948137972219339876279840714324998589843285600818373591074417625766172643272560983408641546871725213113707914125087554711970239453490888721093984230587862249169518881618796527158021716352045883121115034064408141576747719375114760025408478573767647052712581423792783072727945114894528052137021803105204916600240968637280061412682719904956125002307325820125214521253059332916091304360156533859172090607649452368752281710160917097344987594170689237768826406832951128921516453369119567185099471050224388636786979747569400465611578285711610958631578614217633610711286094155647999798032682858682730490191602379103856554465938816918966417091725517238311792640415273057141717588556004014896840769107939322815667997864564710205210989722885919928752816443980127177363176145886058179380165541740717423220456713387731423801036146407192182149207123169187200324208041452133971903129472968695404739257654964661869896070376404197126340420148057975015978533346710734088444282585268280457790858791012000604800603657248529996990706326348451867998993498386285789007181289183725871692720606977294401617153868042501927881534437745574164978596437668086260725711513767885863198001026376818901040039846152692149110061998836878151951991021447187655684690806831426489194642226835966255744680159075939630392612803310531895550873965269265713304097013315357944101716502019333410513056275579881963502329483056726839328697132872592303693307309129244674642475125342764516673091207373863387549906600407764841371012357862583701983989455628840927030098650323953957239130316322305175369006846449438632178791511058178683111793273162742335877541808926487729514142677895250330507614484714639969431365794188365061234298655730467408858159961135835472430385697633528451318393282044351212865723097938346057386565970079711147937648734403647168785875927254381759870050267898098284160685338525364854627343016668459057516806701668119722568822184811693959738032868289679847990264630776026177198160213452713096469913756788787350375798701101595436731420842805019756278797141843506001439379579538783957889661887662085872424115645713531610557175649207016589992189788073877540586911960683841455845693263664385339676713035477883245108868479385820057626285989759042091890003317548440022772627445864079025377285656269872398401100943009477925724554453183645114519425095690981268097988347090536158317551153699923076935525675965962763679170616514805903854143706935970208180222148345802269329261537578364059012297338096543154082797273532375410354507049067327526068407610772053229821615118541545976394652605346467883808541019376252959347339243500352325136354450437614202686097199664940679507671696425435538203981048970578883884235763312271124904192401700005263479629684025358342265886765289070424305288312783487118897743897731636066624730548645441266635882647348043513778775861587167259353553609931345335263409645508938315533562085425780814170811892029235115921298451522195757662258730947870811614859784213954545917810983361911604313436235967478402442519312868889312485228421401170022419248114821614980348307392661896540439021514329847127000086504552423010847369030093139531291361647441449860667744965726656788331878454467047224408199108290574387605656518420287345289292927873804307950787236109688367270315917880979784642267426088713654419139200808808703590354069437825779181788090658398554416555480888848106745677292931875507182220453057145262426117494073912594438811706384540061757834981731330474078397396198038604111573777184074421543873368569168264156933164310296555152730050673273378884109623183980268987474389627585773135016343294785797643271867240913379043872189595447255757039606684317597790923379273381338324381828335080721626411329335825427811064349560262274457427862621530338672056515179368212315131510666362124661494251238012748214687620547391831600633984830356883987193010892783230640721939359945705090869494827979339565763667234397790964431406210650776193722619652126847119290906036977981994587788732581016102899987895627056613964410332269611449472153998911451645512290346783403045078332456446993947544588287684121369828275915255073347549915700292078130674320939637760985574566275844618719379407346337098889436005168565054116480601204552220959456538563424109258590199322400679215933493425514993905160779599384682240392959406354254508217445780946693955309233822410986747824015525889273890823111696706678609998197989560511668048832334385025664029911352941762065042776972854156505824424057584309591028641682295275287561692441272374265976500734240611129991016144226728487883303235447648875673960273199834721063189405782178727327591862459987663040234897369630459193164854535344392083276382865007131914876644026012316557720163273244409691700922057283788986560722743648631306594094466950435593239100331411578225225619364411834632547907625097887781369938395387716717404088885793676613529095957816735342340974299332923906401555704522159298778868810809279204919637496339026856213455363902180415400111650165341958072516993389848165056727940119493760907225343903014858033116330211669465906554882648418297240907485330786778604471384751693765424911608359760782972043767679906984287116025719941733470117656330884933911702250918779210023010819546476312464270169285341587273377863541838559401857612541966933732884969406317041665450258018579896535468934783523394726890975626353188298679525659023956716197815417593217703712238817957766797733117125699092746181159353077549538815799198025116475666636111525897401329470579841587711521592446779399868253610257877031626675391854511075283944322060899005456943437722843597588160809656277802010176756251174777738272405574825235877206476588296232675406937167023433988352352724987449653411333494160182472385567077990188779471553851364439289633434259041481159070220804051344889259772501981868705680217125058376615274564092763319291987395910743633810731394179282718123082747533455575449668888602816238407484040559497934890324179383070519796896388624087883485221817051792713668370204536757186585115586786593099100260197866918429305436788482940258802375865003629881544995567969693336184395092514730068705331373597092067016589689347951142790242427887743743518235307871426970657481690776494654367012642950894890117769352668650581453639600997625640066761635479502219390852053085277485911095904758990378680999556154069979733804173537474172602399136530999255984801432325089415986645454046198511632522293277411283479191809308426480965915656688022911349291522618295590144333985297195035754108210865870635588583110220532906449745294266600248880720971639392914812345899592806696161294225756139941248574251282974874670928593111503523325528063432614949775410618936654051209979863443008507574479818862054344869191065780968199551919340208724397961437562264992169981097777018494742150965675190186355015030993387009962269230571181372722285539119672366128316548004142188009829481528977474810295501990263561773459199012349724158536530568191205534661380879993261557253646881005449494656842375506564422296024321496628107372395168190565673912732886490571644669330865268316886990026604089923077500354425368121874652917417141295441089590168406429223368514005590347974144543151534952978220527217682925856419670295585289595544368124402344492289297842881993639659128395355196825386718389061634994665458855615677424353427027797015411418497086628646650776134348693475592929939181429373733104019554292101368480779677714609394130966190349286867079427620660113343514781727057005918242386087361400364781426050056187046302651705441281935202756872735380804373841203975213469767390676546234942854585719543450700005631468144120313641867410025611800279202925339678747199407251501236087024800542250862588109362770148323819993237146346678139732926310639802387543118939671852218184648399637074020069862482293585730901089601470800168755599201237376604353922337875224050714543488061635207353186799783502223990140260764401785755322838792342303616081387466522522874590830728827712014169779094578752491676711371694893224495793968098714543601190929268659791210075420456554137457224206688810911721293970260276932177793475995542960606015771775176998726103910626308310197050440731518321660664176646124066629383759388179090871170351822310070764139495160984871031745608503772831215820887527744566415741399912361650401411259505752795165109805083478884734975385687317663702947531441088417108900355049297137000963459851862192338166831414615986447744498921655302127147801614972733218384367125115385065145913862816335147824334269985994673429269503276644912879752601907935891834556900387393437961001984630915428535879163134770135360528246566110537955777363672559676123049436195850560792236999770026264496474282478182326528445527309624095281474324473398516249303798809275856090650220596429441072019111903357211922795586584305562614083909503527947413045645002601673751462991555929201071474136703211305212001479782583996775288369198137405009413359305645989128528218921934010884976441432790488994599228818381072323575522852366337813552624944317996193111358849826436124439556256875837657033127685339333559931729739983137432991158932123254593852080794053773781473757902042099800149101587389647972970235319884180545239318708574870607750703836340770141370898702264060327160106371181445645807244854237211596659999490156855097065810876730904502460816849013955911384556422746567432003616745032847218894647964290566857968205866396015156818075214669508924824935432396545007304813264059926552140369469231458724669284255874759680404038518012752031674043277608170156501314622253614675761252830114441109667195781859706359000801104825540179735136470031597662728891295134641409417673904858757594520758252595624169085613078952696121907259153847288233485073992563105289929364141441969798628496012220084168282080775468844009270705629804095344928838261574119871708606321304368383019077039949679944180972038125343513548729824951403559767988960027044163749153000026910895459110967228247850841448251116578969964974337994843245954439884945332879314204246143459703088126376567823788924736678166905312534827283263201017591299031546717710783326661246279878606011348379702602747341147829076623545957791395098847411467715247025042928739283880461397200975270442502634472079838544531776745907164254270299439259869530837269402222722328516040999681887772132179090058079676469974524269168221702008750158839105856171247445041549382596156670836034539682550173506924286516158697781479361333185892019650258257157936422137077222551023644879024062734668570529690425290481834178108728838310330112467285218976323036302345003713138598836702466089051049893023116905104127603639273815143134924991506480366042028554887511957104005834090800705770236603578125806086103703463275507194110092865341054151844915386386735312176042598527507472574205014542197083432162356901755092706355772069768861138208402880286711321646714862689021492697248610463137339419902716103421866769474090826319511278711707688748272763613852860145866785516730348798747112222752454577351379826028012463104616401356680577607530344245604106731244467746993799701120301259780737422398738503162473547378289357276113214718128785760389365763831371558875656716606730339798779285984795923913171276934255871205925558454883577457040596303469378869809060268966309872637127850746093834766420245972112151808518240341573212282876877531280394735091353389215402154747580390899522838527842039309468205807341088976240585688804323834060256246133703336201488248754443610329834659147350597620109505110830045307973949998878330117785130057272245550125529322158682965972963375833774378701281217279537812343004173698585672331477396389295546314945836034174641325551377295731692673676233822650897585102073863108574702747942673001774224275454595336155790468658829870041721303915461721003139291157895265973442239982557582654496945410325632632246427078689021537031228044234692793183285884973501679687359130031775686046527653117543246065993210005599749099928649113927079767651176754365666962485310328247768394278331194412414591109807044982101855490037722600747092096734628251613863410214361558706574858537720135146456060154181518372990219674041221429526587676697312645201431731503744379069442793331570404197992465084006546017262725592944826198610828132237815791306631489972487272537722189627819479055803481104204903459994864390014961195907631377959379026621058394906389189079878699108027630523557836606344221524470540063598056347224934431874589691003655606295167509126577302612368213945637688229374404603229824733655882950104971197968781206044346191398651683836042699168302281306224299027647168826903347782121631076309267044361380539636446678021424730865227613090110608706016989501395997567333100517766719245115251863833189236778897472830692865263954609953408491964082271230209804313205568507715813739538954273275684743709861847547326391508374052459818280998330218423556784969036998481799616243865714492173481936698560436488720662751668887590862743220688985064197527793182278449823488174903514315065377666119031176730994709524363934919518300585992360524470751873553919269578525208569686789609605631663266771822910138010310013204817735885543497071720486405649782970005888970589777333229485291425163208145878573562261247717504833649551962956795061556244926955674160832674010683878690175842057533069164313852507128056238623176697295666342977632066791334710771783462619174252703842768564294325057887145465956459074058347781195993149618286276277991477627022715768068539571584644024850268640517511779728040365198727244189712191438507021903711174572578291069644277271485222029544189602881013205128987149620395952442727994074846117506833154582707346640812119910414384899330110021816041650610194268530973404089049676618730430869819204654847918723444954862352655960381391896673387189786997488170737603738583725394666109263733581158198814561428717419573088391463770060947298370635113945394195129003312096701589189117130988408264884793727167515310877043099843881325104142265526762770315020680872843088282233541022831784390934992968504696006543535658045199079565827643251262358050863698112673837667938067964319895636523887657203856429398869363650920515016501515024723768518463020830377843374434410172100137346369719628551472738117132912063751739170806757577205761279305263658315149624964314824229556128241110218841043442276936144312138682943437593751110568676302893587852480443342811781853383621953385224119913143088903205265786096738882291181283965097160414819268849492164844355053090560082948395657765836674957064493504980903868275913164631255956993565187123865616429339871233520252250755106653375043948574701865827581146800400906914758464976139189183221417272923085432495390350862494832185806642569553976674711354819410011930347073558259731231534741370520684542783417658593419194120378614279201140160013529292556496487032528048781153681511828833809813385949511125623089146959691239912672896047280018994951153071294571506037980714740860400566601849001550228407372636392082240247703527135465509892443516864523204064408439919894379108398468198996316550783475000057078111308470859264066282508067545953347263449795994780028608628622471559929998035284066068593752059203108208605129596897587522358318242209312446415036722553698970628146290897754754715717387792980394171679458447924426622219200990184919131471401236733613302296711089082625861194468526030263153809353077299604759072946194125223103805793176672668964641471963614950020994445051710006313419318497713599061728726204751877749669385881030775658867000612373445651620523379220337205255415682267625923359106358949564362222017917187825778459765093411777060339481613912855429239611062593051386127687834573373669741796770006350959618060320529140568228210092502367581513248013090584125173837608865897272829586503783666919044011146875838963956893825884348392584539097048512240681648038135272899243142978167144121993857803348171241230081825560260667100089671889816000444706637132076358530497778895620305420237509231854353328020354119973272052441062159822511558290835088391644006765778654287747916879341037920095878610188032826835204488358480520736086771404734423190037941109702647616985357991421528527970498840480571749580389633078280258185097884574324633538484026862776112824894408058626849761606247886573303168462741050126191512597962275089627396493229350481399565404752811269143218331564184392934304116124760057231887262040084901626920735560160507194294087954868515187590818288410389102064585680665938602430446424250796485863902294037387836620379814257116426462761699913985655595909891689096640309294689062094340174352123304984400598283275878138155370399657845020643952717377692932901450460003422401121725557734081919203171336222443083003626990106691429770615114004688765035310278425231404749758222231648747506618766031369365380373407227564011416885568687292480763171778377439637117616169791801353906794920595749352943141042601029460207301634033132418395927372650760900879145804012780833449038321911516743768128544008224398418530860142174659874164212350856123277670279835503987183296053209430214003286617857386472752001027810023079533631302131497324820588581532610901349680740805085964096585191576120904548789961155905867981835933836100353388011587103012610885753906167585753161421845924946277326971754899332072613021457338127539898352273350227699249406739221506463775885914646606646233376728036967924214864289916198975945413002018382011046398047341534867844733523133367261285957948540034162504922678497487907660373407643439423329438875609337711812060047172303794325464493595282285611313776847144594853174364761319759061453355707529852368193803689536966596309061221821771972587189845887635204037052940066453460405826342256458244217350021194666382603879368732843423875059901119211859759319900621961374523074271340032460375413215482378348766376529564272026357643829410004196107308312979633417680844394767760060504643434896445070047095228078606191470121829190108803235167591854698846365161546313407426762168881421160248262752881979566370772244182242083120325240638576503188608314690770920325470580305813464014929948240693281287137611621338741792894835847105108510100833536736526643588467295163524182699659918760437428025100387446776160863556370826104006483900329934335985062287908221198475656263317058570712782699495936874493239170799571846572539688486424869543377879919086209518869587920484852341585084173901028854842555291627740799272320012265233151609954993675379097567700400002296615892025761943563338813116433041558510459290911093867419090443740190343326868579237145950614858947117394931562460240323415336037106764692597221613705830155504802239754424147752853999292276077261210468475707152364252433663753590636798495574585006604964577865919279317868808545053884478692632294978763790826385635482976107622221559547220676400775991003263253169206377492435656024208971289676486733432100015989292600392340876513929374126128895142591830513434996785188737347151891703432096403168198869856766331684566416928275305126143916003559167195933215307874074860183484896581173739569704283886113081880204014524281338016451561334643969896995554441399922979761895862383838454481004146255634137765596540805279116759259732710331589229089297992709964428837099497386776669808116306215335826687038635047820392210193969045307037041840190094131718796774098959455904634292043013576132333095512052633511405058693523466035235498257989989842275788237651184849412109882225465800725806830673200138196773239157849316910262006798189151869212143604609683637332889043921321416342109826543699529290103811389270454459157490102503630790637567666504619068988418466634764438133173299414166151012640442020900351802400324705589442882295513923771846513858056170725167712240305467321345113733039407574393324872251211009358616376412343663170413010457190790115695735960532524487231800718070473154619144162759675777922270260852942597796646231876403061157625092181184865134127842296165306906236411140235463200043261146653778962496204055621599465919661740323388770621070973659003838564774373550093315891251083769884862897962291717433193146306246664508005280476882317054322205578102421642214235663958951386707756048929667315493011692551089771421773692028347329364604612396533743155507723188147398815586780941938696007384638092115466521248975625453840237033980422442648067741314090073943239560420430077192543718448961495193405563445545214714460021631493111881945899976494558849119274313936364597658680730977364070880353038913000992654913296565868315982905362713187560373159068017289812261406124015507774973327005571287401321929463200226221805887355740094260211854073453605517020957153171269320107118038989697218045939345440591688247213821837075501969455155442273493534167706858540398834542207849536386906191337736340184496487911701122609047398302281099691523716786648084732882602720225359328507418068557527280520033482334189578079483042197703867685931130185829576279539536993313922180048716478533125905045052128937321927025642404689262271081351489186071253558960930003159493503042035924134435887017940833030767964915339017862383815822602469933246349823389702258164325431288392389702957972590120187365564357124639725936599477422547176597130592497987041581580987140539822373590798665926399944014825336516946496554424454605457525230239256610915819686245290647189545087914274511257302184266269864028975802929937451928641260120725013746008848507261610154716878098195602933101961621095042434366025194460407483123453705169377404123337802789688028156192951441628673675785827400450209293020416132535846996507896453634668098899307692180142054707091755094356024692612133686295552568145165330563694123463258855916823776077954964430049923604606343593603972288754176568091240949575415114045000094429722497472975737496089910403013527342192540304053857296753257822572441153683009444755660528283150364807915579786694537584095263277783749223929395022000475741123020022756420782675426119977927729150919837187205921751402695493700640906788621397816402367281895344289211311557296257958705442631439554288962042914024087036963075835643224589270481004103284532979323859984172457340329453463962150641114005473780870462185334092289411609748870993668296751745183973912660406902031568931389153796160156522016439194231053201880254007305247125434628142934291797559190348045943139238008593845313851137453199395789922966325081185677177498926780432410829668321561778792946871284302081242726994437724969137918616976132907973858239586268016221824671182422400827159443640488834095895165529155769561728500158625122140087694888128956826430055611947300962144907028363800108888074981578973207780819229248372942662656418414804451164498978484001343322516340948705045431524334853455231433575550337584389162698913272105114061045507136680881225985540437042139953171988216675210305476596098115659793032535554477434840296032383077373919599790947261287274745092076737675315953522098922159915413407313311125705054946371595911094918853215183406886001937688197174031396276293290531248531653533317687772233445130429509339816882866905378540549833987036108212575394941447786021703897373214644992954528400648209808302374798193820530131617332787412446671564548608990299890343727756318912512068041232704949485732746453540343929543950482271281904120016299906082626260080737785051648966718666609991703211517614806448603852962331952311906183584100611869242558530499107372167749047772530040219664419780723016591080417873095204027521724004161644385607905110214059378244645456283034399298234825007015289095642971401961937189306925429011752518687064092262628807524837436715132263000974171487134229633422654581854464981789273370493275165266236891934105957548029038073112607169372857305850994895543372228181898898965455264694928026665402803517087810768846796734761611705633781284242069345280571899751836107294208336142004205230847214254844528435031433687873755781423125617935287592794626691311424322499938504341475314392263827068875403645462429225346505550294146788589773333344565387459843887311636906551603314719906863113961012268458494615000982301484662804239785593794147590370018817143883565941929643199639722365056016848877483815900292076163021707219552051114679654323844151615923649192505440698307741855864524346669003143162481777075109359911324879983425167675008039362130566731319609560473966358789288688325321676687410936290539597331005362928733735602102592375301617340742822037358806598475712564394752648555901811829074733077416976873625485750186552075160099826192482529753755129804853819408620656638075178221162434171078990529520474704092092606435222826699483900437549441954482978169774661230567187940206570664362410572758750329644348680710482676839302471073586601882766827949702699728494330929468912556024966469368094759612360056762738700834828828661902912738590267009476653626446418527878773329040929928802915197740682209083230735370115624560342491498704674009700406380622256024753856905595430760305941540478623013697081294895053021308382104117339021303864977034946229246933333243181411468116671246569693642101991552505516206951328850192682309735552251271159465691392886038190277109769480965426827938909766284385592804593126702010169150078775672142264811074530622490967990890623588625140405363346325242713652262439020954245469967085902419262628714544570360660200446673490617551502400695786783290036405830488321153439583836982275135047654788364846668980621319270948555673838341705288216786077270040144893405967533554620186297178519884542573226106660262461744841964991213840655258198319305457388756065494083694316737595681264256086151198631201105884722248434168826958210703629522491926644675463773873868653642569965879553371140109345873582549472161616923608813667045770948962609767777451650309188676311963756722534762969009010841861017446482771402629162418795490062247434349494248165690029143029888685895601441647648254792030946603949777192378669823353798797254571349048330507551635315778608707285174261286280634857460596249116443838192919425197501761818336990045887880063268248605330374032063415195781850339866711599724069190170477505831747266465947449399850382660971205521538178528741870153150638107005761226887661327736781307030210648011944745314992633586271104000355953966823460477747717565109344110029682480628826665372779022957114562781782600670331611394596776730333146415054862472720669278091288224159568065508549936612239004193149968119317433345143227964253446018666098167520011279533690046693741841272994212604734900914120867814528058927407165546911766706615758220142992185210141398283872532679224665948501693766879876000245605774900247135920518009831203722162568164502482753111980393521910086397369916926856941181459944993287051429015146361657401764929306012650613906146458407100407801314441140920660305610311371783212495727998431397264621863968767474312665788608868021176717614539282417405441177096437848808122890116242153421910678524765581075324729636614638063436574587277284555824133651374492846709265783029454102213644412524723306190771507612933663808724662772155724736564653487938473675848288053374532238036666979971471139712493836040146611886516298088917322918519710286941210354935602181188668239852537364175305595646516501515717643583941750805358910801191782985150158024767971772160701216731368838793758550770776349683873809696606597369882618720263496938826465398821662444489872045183840535705018039716141336598397434839049191322404366887640655886197289934441366359760140763198266899621353332507646870575706962492441949714013346133749749632256374417175192607718375288825929427147069234333403562898815689968251217195724942649093510575294380699847140769554297402412581280955352797911476659497626160576192337821275175730901554831757891438563566504123829036178270991970111421682407338673918206302335487713500025580025440101131115843838195972570492786308308183606583151872191174972698597024549164201137130774495464082917718762370587629005674400700864017930939320663092626532551096705700389817553267505601773447606509071955268413496812120467303669166839127170018080417055615476140631954218596739437746417858261965638145337591331598803244029002994775211716367731781192291333506702135338701644423470720034813762164506415630201003366954886687971199256738867209299844259722311135700184707646584996223658598636753989543529916000467434408395292578597313517459241414939543881592608782754008887656713903375763496256097695839463067194393782932723032339272136212951899842926697076760634198706207823548781109291409512631827653525882701021539331196370755941875346809090185579382928978718880420860217122937210639493765134241751251054572286314493446439788363923524564760760425995343722499445274242227739230120437953163323858742045217572777486980309613799789144253424507600063982707837221729686230006141947521683758578036092679805494374079984562075630250774590256964742895959610919168228847245126619031127820779475980345082992566136667842802111971944824534287698113480333324019547899667508869412862074830602695691393229559971201711434231780318210180471526369795216710677819932157216365225440469429685554440332318103974339727719618806976052912963822878935581247713199744316994041375161290524070643166993006829911863563155384404608938288093967436685632117590407601073668210533536910291850516060806960147505229990965184116034254934913779230887731406610034281906134169051809610438579537670357232553259039428092698300577585680193637188043694749489699330753946836969004470539069506857982032575043315459834764225645706102761119611057679067509313302155767994658521970857042108714613293439209672331074511906587951362286614780449830545393517995600638537605130200131271474483876332051349842540090194680502251551738714575332199207203103532191251922365606605550332319489871877074857700961616364833030738178890542739824516455114888612881939895635219751635473440747733837927491507525108979289374038119097393183036155811852921472847671100686351458409695423124901351663247666323910886226725335819443380627244506833443871829628657665561142440181743480652213411543282713983483084043768592158307371646522043572792762557478696109529516997519007629946768168438482571328069965276056671069497409099628480440502075061348223062187990199674438250986466856469067512736991513695949554450135058954773404539387994730491486311069657119225769201246617133947939487663892209328441579670033893457089271261312059960733406091795629951389027078727605013008437786958903513583596255730237905274201238027822329606442839720181215605041878291493944935909627515868764550562030245460829319717864609024746213631225386145365035723591832719683329739871040540319898587007079475214773837990679501024177419990440832569322948249279687732817826019797954842195707654428153701028906059564539650683508213030232813788881573353425841321735233969203982538072584787448714417399840209516036184713618027348868756065077395393357946051664582596579599017957565486633855326203252868088540837993384647773059475161690204920043195030401235266267367629932329644185237742951265729237919776298625366285764657770281723585340434821705181915079776567796211737135237464173758765636956239281630515565986148623962061815584255673764846475255763453509710100956775395656504180233059092431770182887630871007817062926238558925064831323779010769115103339615339301196415219947841253401313703832456096582202558867705293656478902736679411960695087082192357546841764710675079469813045576153162070751254412390138064731440200497750670072934121188888552747474063399372104646772024467256973335112897326102812902646133317737881277142051046354731031225626231430708123707629027361742696793459126294155413239828609607526212262489540158885972341687813910558465160361323352443541598342260574019045945714520009451351702783291730796709742883526837979980692048527919903716553939015934785004203824780979077122601787046486602509489184154569870422444984778743295897915487111293632349986523516703167304308636764227223053684214666165773419682169173516639329003699709913767429301206748516643025530441374287654606714790326222669830942965683705527771206560695067565376544781319792232321301218473448541436258140532026842000598826466435993783177954819040850144060806843083035755132061584824358660160908102595806776681652429790908961927398024638874668675327722381043547921724777437700618616432763217236059820671747237782726668303805262887034380727971183616954287947499187477490110864207722763458590700812649719947970738994244411240128127220598827710659325273483804864595422115064509011560326447293186082204319951109360334079346601028433982349441802791319833509690582339567470132115038499145102521014007744999287882411478940883014997933626774238489616390009024460708020971895233371024569183407907550236798696358537770368839174863669429650796483135491123090757739411925536133237493170390636194009619313937028384371643825367527273138602795086022840500969359178093414232562614957589145058013193347087201432885343929980060202571343072142070240934787444925195552331967066774124669846816875185291876798863262302806289098792230190036396037919225875997758057582260370036101035129561873050770947007260229732239193935197075981120524945986141406074967350714669497587422890789648722362699692167224928402423296893248014301107444046382570392611253253476827427542296959934068711935786301438515123015687207088595030534794537819123347247294263603982141979105056927757503098756368893838067003118784422772241477728370067395576312936995012533700574895808204820581743461139356946054931103380970482787082096893814212413155688294693224073600767846466895117234584913582745551219412581979649793013719977488632772807806831322666392681128178277924409397649613976327065021952559543161355725371820527360345226568231698802681826536431169010905727469423375218051501486852082787850420865778813552715938087177927399203063401635266203850466344872160302876480828322129474269845332138033909960549007248834520384999630303685873601044305033955735281938415798351725540067616924887969042413413123098098174146099590325604171467136075592175791702842301511403633772435403600143608839038267494231402979296645194644748646648905659723972755823009175085515874482884745424875852274321243256466807949536214962573877681645301516088982269174127654360249033427502564195253059734873658119112753046646285084451871310497306668014320761017153823416078471414355491453361814888466191109873381813403384121412402267698186064760567822439383216780237840834562492680624530904279301115147536013160021831477102463015505258750679286565010338936831825283853845110150420937428261989955096858079728821186916725150440348525143470229570035797034862606161644608739267804358987819164423170869873876701403491731758734820866600163154956223469373919142708021722298347216921930347603601639374718891619860265465443449873925194182479023203379630246059821925683936091032854817880503786824460883984264512164474032828880387193275593170726830810174391168432598619507058867746467722053752235836093985445485789215110942504601243161517756693466818552956170301482427801091190058920509841197874710952932419841631815548518109089281662045723421116951144935803264526619010199138440162386721763117696580486870918449635959893800284825095421079744186827648586819899294459611945713238290596366687952365426159513891261474029814565692535885367561608427463818963421903604617061859669109897909961433514973060347074969221546635732374029551849816872460324313390870010871079312630893413594116558181750988092133058512819348638342654794769677051845866619172945275921427512584888904000487025941933945646271035026548582336862629670442457268528716944827991576334107902131014601554453860169401985301839207380507064336675079061120419436660024738246962763765206108226348455832938614127026478246138897701224421303839433580041670095120417617439097123492545997758990399006634036168984117345807367828120889321860229772453432584183908427599077805178250708450756708162610574581081894399075035168080054332282390227488854739191552558098713082797982720573865966059875877586531523194628125557712228081202919077782865220391831679442900695428182690867309937127009425330848078021571343030469374987706427350399044928513733355116193097345243805638472147127693965583214325013933721932712497173130561191584443946135930265578123646992927479331324500928059725732278274768863389446027192592279860602914681835334749418906906980440967957660452941203802173543588636519279195690790536657090576927916227887448049936985470647876915756052823260365302522572326262829726405274526608513417582157018894352764082201663103943225357333328729761740656565524356397218188509186417496567428438558583361941580732862172409354658206588828086194744866293579832986441608900780012364531090120576255777934352902851264229028187523486656753575478257412853312971472081896440109878773787175031618281780126213459917244281868042379171914429941673965631902266411246490435241120097139663814050599537549011579911366753721041842132894049686032497186651711586550532826966416339615861970003402411947128661840604808390774069983151196429984288720499610783978918524310897352318547414919211017945966895340856471707722315413316723148998855209217711877181281760661898134132156323591366198230273619173007352632617009151958595210431616300053075085283708099708353824441437268613287096294789936504386347926536378463762924485090338174891695640671335764098898131404634993721182277465381926796911081711109107789853572450773592516111556501117304894079931053937516865100884042910111469439779017859857567233446408215342737726189069195742785511316633838742127956964372160812493921763890134323656656584631190862298866153602354874175256074685223806623284274758013842751447145685314644890407448263107956995055859169544508677710500266877254175727928105843479041908158231677884496498945554743017865447742717368870101515159511702127819922131293259106911784939231794034149836369443213121969362013272633568184385315267310025258932501454716017985216011218121289876739120502815576491993649719135540021262414914470193526697912090092348342597100104939480112621103329071246089130924250373204825389075622973048102954576961802715498512567685036820214052295556166734684144383089632643187491476846354642376929809071531880420632196234248852848396770376349540402867620936804907928147255349293998964583602486583060930734672714335962376285031039455115547510329023119375912136432873146287813638004866493745471703054573492516488009902772346444745638780879804780649578799230012581323934052423421234042995831629480198462487506753883914096486780713631456667990071492775662070870782330180617524535432533812263108883244197878086150092199468628900815984259715703760717029072600212752328017500443209073833798840040939426294142389628876585722541844436170313084862220678761078721503044592062836062371324545490110491017240769025280542157213871686834904290099242849795356051161527309436421042249631132195193602632455459437096482474819545673254374662407644098744966196141730453579956498761374915107906250327746134788653069258114367752346481951681708007283321755660357216373686867880547152951694436380893739628750947196480624072013441411348897263676705265173212097128476866404463672900365420910306712796213199572951059001141611231266388901026851382459651399051566216710443402677208937884119106533882440002902289480150301201489274859376511354982609423973293873343885644751518038312395006800780221615317749481755761842273038053427311132262794874768829425733372273105023878903278019720436010537377432054235536490340981211303236519047652824533319731443081494743579968548327858503726310917836269007426132667622406300448990818396689496085556002243355343750594554088891938212241915504966275129439033221687994188827476879450406416840918559423566474142462420355205148312897097751490992097732509603173843092599835206254188883811180067919270102603243057353556447853133881669421273535130355243237693385419062859892412659162241586212816126321249096650407463743098522962724763975486492393425329774736477685995880885659709512061293186568117778612665089950855323421868881198792932483478784072205887278777918973908072774971531508436404209229294579972941968488406687334221463444563270219034110617361336966998619643990821759876079848210775921218976164757366962974418132770487358238619076205634193940129477955467439476863935629560671644677046976218873646050497527667478854721294093705009103889271465333601558300394967246113817473291574380294265418072039937786186204031866934187069899592681335538428571142813883713924265886456715846475521703295587243673450860493106796230500825320827414740048348174708965147044532034910631201652342147752380876809135875516563255779432991239068210004410900053055223054799153352791424629949340293778530723802702426417572865696610648298743067349634558726148054451207950046806777680841074540643373397394622176968015726704773789149022613798679153244595158227781576861575853441602736135002808361077962549769609580351608557482720612427450570792158121496206281015931143821779783717481310171555024899699134413761967043055675030308471853137362808521351928919962069840501384618490593202183800179358154729836391146198847058880621319378492932077584464214253658985111918661186845719634194225493684199007802335181913107849105671091196807550402543440943650380843476467305344964069213755512110051216417348706796804039208847168699701233582375187849234880954509966195328990125338201262347217278855354777563472231034432391865582867948504661845994815121357946250079153227543741980925944817240115336350493664732013456824270718421919243144302830029605514764006695116175232498804946199800568336140838740318560425179275967907543080688255263279147851699821465318582175145819415195390989805574744665624782326060041513276851085640372456498541448446045658576141897053138380722705806787973502637398267962704346431171659694045368302017607640193975113553857571330328472549255344355633734460064538956219121591596034285054861586741638571706629547701478796342030074894135488201070851684476337292379532458503740106608025108773289867495716849249992800545646728642212051450848412187987243803412044589207370915303313555869860611145073258507681736700082916928831187860291852946306254879799379590322992867424149288402008018080805318670591661215939440534174898972352913975416041259206010151354424183334218411767899483295868031280159810293576674040444271541713874414158860391581824926045699355986681903937318482585633402050229375205000239264210970795218073956360195815154113734683849317275392441474231385749636247889937507924247218929395252432992508337192402394776868229501423238212522471335886116112549046283894477734766645623843537605820755970397030940195006810971938521574134243864274012244177678986827873445055631296296950318967147943388972739866366528669790152440418504749278376705693719081715962432215779465047078088740290019574897743134560942025755850678710242230499936508324319526423284161708126797107364917644176948664625096077891242638341504907090542997309153612198350663232030592767487313168389525559396003909200977716140097749703263967661535987918958660771124287729042404367192150324006267467509797742338426978019997190174135165602411652849655722100071643859254937627241676663954130251038411151242070765262898150649877694373890884509816191055328010090552293943858598668233831491094904775716718498748399072856656635576669019417987037130822410544793935701643513792139672739491266589133016257567015214345562607469296826413707991835112153763091712060593680562520092515757331790536855458629006934384386549221334345741241055557325854044148166305369122889384028259308198719280646025697186965453487393585224820267996803410123363151522334654841251649901499275122511326799490864866352864886502372808692227385318866654644944156259109951140754102410962152985501591840703719406051152379378436795080007869017428424956127850200043025778893555288132402936877561258356032794150897066133404197883550829500007503645843177123873734664175008770736937452584010292111147811062181258835738058757075849160457049217484231654775111342975518349196264589928894546722492283760835419517071716784002813842929060043713038769280981096387356375317105784970577372993772085634348040702534143708144503905059503660997448315496410633075177488444564810490453592113958132734446378358348773860531683412558864774943389362603659434932445744240363003978411536218491719823110158663305037805789641626001587841557814747367562743303963010260572178867087130082345474789282414819336932541068310218908021992554031985047177253366742934403342006610020474247004314672326695332178106811649109496823027953487398882983249715892702080519664057850253708746057934272496624714088914520633719175150245876598895664998597630279135338779940506887998702553112731154174633170396765625649162434258435110743522594782365561803351204309172574477371871159877895646344376661190533476233655124492021803130570485691913557077461697956322329480632290199711778888085547862982066042012951001211938238866743233252479106481006460460631069249608784850685860293440558766902253756160663308911607250454777579855403968086836205184182151465465190312423004338904169094633466324401400585382531010083874295169752474438464470817181864044385760296755503708737844899207601046348013798229365029251419919576521868517257053417638419354290596546077737766136399560711477749464632629202130189162865484782892699691526427553560246892114777674808661782661283414385234001483012138729282065023396415095963954658180401871425454302492248570526574472488955401118745343438704234531984352169222345356848509514520077459015781239616625877671852797329911529077350911294979882994231304360252062471415960593940988492402987849010658592576869254282293199032002472940663812309897991938630229747942719831205940789301421166712580994115615437056164606544421944021225521097723518635771992456724750362306824761896660760960557910240453766078257780295516297422388519738576847957213315157838773461097370486387882729264241928819429362681163762070448215558086642882025957081806008122551965349151855199915568538142040617693358966118507214823984698844400799463107963633138802888041417180418531594834268170697087673456782436328379255584950659124190683837855929881798197643976034229374104083802062327638990991376906400200348338334481654577902959113111803791167172531069092931130048011075165709694553685181006070816351311615392391250114978099286178066617868998755279245899320078231322077307549503248986712049870829399423633154744035892605698891001264442221277030289428757833893432678663825090367344065816468924725563758358160431539743163322469411159331349018171234569517907819246162315548484331466704381135590513622926717106164237836224927773001524776078782183453507856835498209153291546753572718575697663156709563701495328452222478393501253267587298945227983554008660201465616273718859239894541631569040008581176928611159319128340762772330311873867797863153300856802903886506369559678435176667016946577964377806619930301523616344726362596784689242121309724398516743860439286599642970102515991450584265557029490347863946879075063959308471071669117420568487980332819832309031348962763037653405065248828765320139118399224125118927551223062517493177431042749412645490872098561487412125275604069233904103572770255759949317875040680791203787723495056839722298133495730339793443667333208898250017091314925208865560109132479004026501806135163107628174014043227590950051863975239459968089191162184986240495777358309195168770995918421844927552242588049465226023860814256921764216664591458717370433737218690371163577135847485865256547881790626651935244495716395816943362308779180362260307884609479745624479290445418636941306997849038318999807171556860400802950318638812643650629409073010574650442031361885119084080033412606745261617258277551581702376421596763918900199339237517588343016914453831242427142377938163607395376070387393917037597344790069075822775676232434472130618258386935411608994328107633410053387428118231652727839039911447706120204718509747522177599768303629521130599022074830386957035505739806774214207266372579232983249742628199538584221434132221793440567473392358369801031179272009572217139166623206545809895181853763320943039083650285762067450849946655981981039464387035725668831212510709200872087543271547465146395164858991383297578299774102498028490420997328902776209418611688766928244854483413999162811506783395478908481391891015265183606919360875533274970865612547511476975998567112318125651800066813381830705451083308739293890902186622377081795129731439710649267238133179590369246346507015614286020197973401262419139468409889446939523978785216880985366637251384568162445017347458060164344726347507302862388209306125413208098183917288556906598682871292856619069567468120391030957971858867111640650002461826246287657014540621470975617231368417636600776271863405068741678258787714988990776226259650656533428844843181326933629374533415455062415890587890606074319342436279123203082855141780031885073786951544433637675677411431664167637442607717292233886815546507567096124852474188408531948349677254084219966665358804345193980223812819699746961560463415857045849153448489306875648910423411594792274921405651862314129656570403804013246799342516732350224291098249478630364568006857886156796835989094724629692942593917665638265256444054206105840699388586818833221494794656977071735163291524565404034923713549628547200427752703877581797412372367105692656375418424480242187572038546199057841578837666416170810744285287487704938515753081959684569878329231861122855844500173704604618142507113686644127126073767733136679281847305799813095413724065724135009167716498032942258650947575795905435385177506380628190612104125758806655689177348181494432466148438577663462084926644585241415662014884612638093093153996709738810194981322800993448886265355426618119087059537544520437988202202863921064900954225329565496759231394697224676535269717474934222060686788528463775016686274035115500288504559956363176303643774545193064188059107648384922459385022761258633721328935686580071654845775740052816060397836252350887669733552019018755993151635909466623177683191920518706904864225468315942376695328650179220236855761574826085763260128553416671404566307611977877782538617842401490116026571215306242129798837497868626089066892552698487473984719053748634864321458147549124247563753503057259217778075597645948226480981152130665183621968099408572907560829591814269477695886573862568734191353011291566018977783683132207710241369848830287782024037759264746204629713168460620550687184213436281487322642950031611347175464260546059053258614927600840275561313154640536719790122554984352600293968958660250426715684371178791935915731174012511739678736302097500093786378271044290718219511583176504822478951027591310672093329962609689886277284169011348919999834223698853874350116743172435880699931002179800127109417107964764871542290560230077113599464258993687178772919327147192240163696699581434002781055855270872876060569993733893982357417605929586104649745126951961286183903089242927375160731954723852723707960067941727955280864960389547018450290102822936229122931144320587738451033600246003723226438850436547862367807276435711225114071625467181779027384841317912049357093291693319901017535176023257964357246379926047251882149959453397484173482259118595255334727221942579582614804586390280806311244857634819995080699032506008125886464626949782911567897220786619566270698515207163468335031019840004609043827475547406558379528467122480389513957600056450114510745783313505145309314472356623940570800037020052644593746845592967138627668317628344740593459290066685861136750603639217897893486661343742664511922473679176936245086568087180222499966493152272226261954085418692919716813398463287259243123554724282840752119838821630270699085792606546924618064546124647324208565030437651885753327781356652392853209074683953762808023540045934431626905030239612801778738644654457955348618271408696939913550025022264119229409230570052182119546805554684613696241882509973965343665307365180749997862010662260502137822088736438946537711310474927404623782597070849577646061261034311961317915514763999872754838298292196165174059777952962027904784973170094168101647047908320729617005410065661517117302204596132155587856243431316521899822805636533964036366738528173941302040613583654901518571717514393231150258360348815051844871917370575961765788800329937447074137029913076303177362093552290258688818701485415894379066579963991108052574196050076109469140076247569745482933927543203040638394238261299661762223059604536805335472957887870406799422278082073632229250029374313000987184266547089614313365904190552888561083379822041018308749069926226872047989940112177505961089492825580260310111196937092221822207696008277343000790505660215091551844820017290813800894794466965029432700830763875793545878264131217568600214724815334561840805534448329608891294238882065336604809407100104580447374078809215803704453213676222819101970147755016647689733199592639554057815952277025215450779828750497999049938726378844453388995997370927548384446981182491029937501545263900058655049854691216024601829121828991539919302530127387939374174107421031739618993625157089158987332778398203620402311149099573302731726670475775697128425864655821760749431990095620475224450504398590843032635381274082942400905649873246058097047043641697077143175649691851242050103253608801082395516026204578474622809568873382460199027377477450117307445889333306273738640635550548299394573959652114181145244388159030912992843777163063151368693788211881517033990232257752225203215673625681948712125001778868893562188438942057827496498955973848185057868364466784967392770449959596806214491125937114206378697746946166763795749079056230614995846664893141892073456910560537513782902376502633201645715844581038862817082763603188946461391017218400664346129179327174316036716958263872192686434900077203986905111882908525677484848610029688278179843760266373617987709750380630314545432071584282606773097270341302418322755020440008438787860508986804943668452965157298739819364947489401044683890188069850574749720511701297879458222663701550543043354935939866873775748339413187941269528052305017851440625208620067905473391230133269484345314133938688718533552575136453224412171607030442819358338507526037142536174061653494157486932168774899287836267651729630453041213788057571386201859381661813381152429943178730976239228149577989746165727036871436629437713926205704753935275509126514717113433357984394334161264713725100343413214515516850858316403082276971761341127844066939381772724150942626364425546180960971887880593431096287103102614202352894206207986356033433667072514891525293391560088932647143620349799122597846467914025724022336855903788538751425843292050622371695135480427473507000622799118166272322945124940311158508062758907991802376707721077122372173424563843164247532290096845047420069435161239956055929549226218939490834849007944428156177602348293139140609183756635885967044654085621780426097586194649318985803118292946739851250204976158169482396101857578146299960140694942565978588054217135881525650833857728637930719391824612656530895474743981138805040684232974243297774189674774948673284545733583583430731385825517416835991383386716365483118172498187153148801583945707134203371320190314269165262172345969771978515648393702463834715761867504447310211566601107821406632823622522921672113421399032177502091350645603347149210359846987357452215723913644921214267238149908178497117750404466135492106183397590100774702185071779147039703770799868113632857988875357911589098028056985850888888275655956651419727593151307275198946841911655786314307392413869100116537357955662046117354450688461432049190501225478561428030755283060142361589434956585793103217079696895797388519359411756169248541451632625151953780777734553101128823403673773246478839024752814401304595576679162592251113702778676171017607898847391838628969073940364285210449528330905133027628174397379520567100595518145036838102037491186328511418184307158082564915900341872046460346343247956269647912779887819099318812318442817313808396214970588624612993103543299792841332274915907888248183820396437489415271435058748310700338045198849225242076970175321009347485707476897647662306979456926336384822359025782033801400077205620400994378271979137392634507582415510871337782455889844887802802002304462763152030125631155784726212628061415500851821845142830595826131191945294186357211152332412803659957326053457679792052454861087286825826569495752167580989709067797450813482654801685961769954457164776875387204456430349287261025356696931307545894209737906716166025462842800162462602942396186840979936444038165723277736173379266382800712855948301476441165035114604077628624042716672335139013954354991866375479109877843740985253763690171620089394653502364806471469364971505666921207812699875009699028833941184021744224282289903528334094382378638287023107038084246969959619673864184523172460609709239943107277418605945536359276665421461563197845067287765903682487722731270953444762539314062481106205587608082035469506593101309189629618907122230977491267291955348405042422189955837260335221836982907289670090965526201014036710214799193305752635865012767919994627311740802179771298260927609194875498127210922834411655372430087327659605015555694323480880405013650950064113733684040342996067413360822784436256901455865210309418326476308561617537157741399258626455046339196739347315114986283365169450278385046612448956824552594413715844726729294566933069239940192322186835537700184833796026037532045175610489083024987728162788346842977438307087842085946149378234826365245729425985180472695900158068752099295053598721283512055621160768495653301615285984035092587298942659359615494735917550478738477393885609200337700231680442649037474833927292596090034598091221646270276652872024078820170456849320941124395935874854615813452063343794859124432487971099606476406346514876067611134589999305040710814766226690921867173930957799264180278235151991897466427170445140774940957909309518815681715718240530955867742901569572986488014553198379902842174341888761300685333017014899153921762870712973347989627941701915324008751126612421871087280720072461418812045868122009465370694457256420110603228646808878177559737126205590437875102815798241577338202738698237769575456247229983782361407488847748482121362083962672060324850572171640732308045720173028826698352737769502264640192939840288214910240994870971327993083057114559526539301826472082316623080889122548621434280446000638675592534432083270770889915348103346972386035089489980200023136489506217991515783905218101851067621630871613258472870938554430907736188551705587340277694329801439416657405216631132500753671236094500882479669796910806936193259143564579762462848602102426214015117217421391365102329823895432987898145105022715412851939134153378727481813110364266626574243827062988842722271462035782386802682092444643746907046354805442948345874550450126592608196519012047542558199131606063490754718461136914494447992889578652439889416870552192488621709684647358913255107560472620662092593658509982676241856730083202946057450788203456755732491272218812531003330415555166307724713230738223885438317934673219595787699467237716257477051688825318378852196374371577017649453106391117986175834047947588840207068883450691512496810884339465199164729913044163484525664651154661200083645219995047447674508658761380217604491387916866778348679014429652268145194440618414116372788062535736377124498823556959327513213063441197989032167764734071052371795419693156738544820652756899741442951440568677003349582160073098556959921589477585791707161933294477305953630991424726525434452504475419125623354866030975339947380068662875710692936110103805988017324084677131877151377861588152059589977830187855166397813962570839942585514900065618076224299136908214852028481922111842637188481103701429874337798071337259886637199416792751402428109915522803500382622314436281300127455783180122367511851816628428118445736483901845778954962456942972281772978610155777215700422251349374312625132922599531449387888564310076188371598697254256336377770916561448163546382014832235571386556696695636229139582454863948064878469918222797114283376400634464626492650383736021538455557528738050112917651337524896328545749517977796292514047428251766796129089530030177034524021510511412919476074466137812255683308643212006425795263391619118428135066316143407098410167299825897055073091620060395617546667575205553663443333072434350796170659470329711215300275746563319321863000090282972494437866469896725233409679410594656866995645781961894421969429290462481965041163745889532583346353801782912740837334036446923928403309172528086937945983468463692787478849432735120947478534392284498790550873190823235182118385890150190811117367171205810373110834346345627436387157057387918891169620843651411947055553728649110978771674638899421784873610519255408012826360292843032066810543570849301623571632266326799890322718786559643860294618264632889793069761370160081051701626678387933404776968274206194128900665770836963878066522443245733271929576061916065772211969702149877030299554029670929111878491980858653615731192681735987537522698880495763297315342138092652984361797432230184139247059281312934999098114357527720776390817130665168177551678843992062243496790073471459468058519704919459873681424451230019828305819978425470310020592043056733575711360366859443595767548918031560878254057668295966731812713442542565471439485026417778097458233728786872545800745478395695615357707149486254564863995544027875630018371359578657611217990910570942454597158719808877565662974574106718687591988569135336962726008062547605033057338083930020940202122723369922450799934661773595021365761047234698340244146446376959682027028106200432259803545969460241920438281656660612088437598544070248111119932339053642257108535954121542652555467780700480950204219826028376606814836440273256399154010940491549204136680896640065436148113118102917329211015238667427868856231912975600145587086582224162070261549431541611246175166091173619688870050141586728959272168174810425541315053704504971578131629060216810590693352529857132057421632038214177014031639655740312795595407154013950865421205631526118762121752330674760630561623716587740894817760328722450750095451079929037958794716708204704782472714921634903179214975974616397991450601673518521032283921052907782877945957314723501017442475322145805934074676204541599957553449860381126098789575968444697845799777332732191258813861406346352002636587407270911879591350568691007277985859717392199969926815451315459423942383651815925256448603281001969826262553145222862083226278308375595842454954929051689923947378162671548405276905369973200307348778819902557189768673285044072023456607181797592829253829038142721322162079742159897662169019175136529627231200234031082166104436305913013257467989246569369690541988864203233554267275610514290391179835141944479291329439646253614904562244829764996797973435748264760094354399470469891881133545877398909712137737817638252192041577670195722401244017195755931645864091810111903933291600781875622726414139446261938553961020285601616216587976066333217721429580847011961821112057192286417815045923177495579620402702021263085861096379729665288705295784920436796643504312678539341068592586431645559102019131693148200640886783964357916137610933497294742427725723671960534778115198641460997900720644522745954148057970450349812319735826879441051228547473923433448930295208929344749984109294448665105169404954286582677173973395091580446493848727723443609103005311522431412948832393704677949549289709230752957833148215951771007103975926544899341740722300872086833779812273684618496586503508236467138819954159007668651911719603935618873763302484263602064887149683715385517352959458836805701029077189597610369184592093992950480011522224413081269213646008015501051598526057853168442324691777108977159622879620621265234580777215988777117442875414284534168197405761470581751950536311961845523675303382776886838993704559909508572357457463537763457555423465465354964980847829528340045733397715384322697048014436211543655230247925645363539399158991630140168243909226404816305637506845398794799586786346657190485645455812614958954116363724763157210724232841054246971589296794174896196436295175798232488523953681867112537544147816862135979004899554187321031540999826184436460694695803764608094413585924104408192785427035549045147317048374161805348639265248011963841330328801952888962843962135098651910031130175342673477666312276117251497702947486807610094399815564223996191000513875111862593832302143624724523886732087426257661751085554397017392744462043573985880599967877729574429035999457604661783043105978453865773030507434221844139257747964612768328783638527055154736330831178545116334864156894994933745780470577044111086443431705106893463062056687899202941254436239034693519553175003548421483085647510418866638558728149348129013856885037844127934548905037994952410648182821835951011483183852063831438433199792081096119771346311882671106008867684534368189538713509381010399281018993106285858091078340214056757633157544143887180435165272964427942926910659517159157498867330172109696417543333572911580717700839315624713374419441999469523772723639264201383637434072978705509079863630996903106451491166746162021456921032546461487309916798525696928029773560868544001942966526390247060230051971578344190745528478262985888702421717201522576333644085791232967057436132088369292841732316502671032327256545461487622106229930069178173821785201239261919106562459406825101512232250858475684272270183559592008193300451438625875754032947442560325192785132900795089214200975470317624210855006859875614935307506712498664866153857399269741498839640036311111625192508677180678918535753635211924367318279211302360908684755866903488269345900656014752379181069138707778098540712881378360181973661503467960779226302414575468113216609763171647233637929967765391400895497177744798809758324686726873379545533838764152566331838633732911785339162009577743672516301429333918968192262456316736447461012749540826438833611137945237123688381039437184330958691155858092849882980277504732834206991907422629936487424820848738045487171802038448139054765666052605638904958125135363660249173176731000651394632149218015094590228766254848341484325907590772717184386963636049629397389611844935564018673520339995155371140614398700902422105352088109645390606674527771381947842865350533257698243414390924741993956771509830698173757416596555678983345005170448289558644087352745263404453766372013226852567176637979561385929438737976683388173228462140326243623461070909019821645934504256119932044364617211695699726249450973035515532333356588973095292304119135777699301829393557157316571360227890832832579406340843683537295139929950031131196526082327098696635382329928255363457291889582471549054419324579782491680478796391352254312143826346503674120908723928507071972543580659163804984857799887685514379386226960722336311928501829942787189931410519360008303983426409326430131215861278492938834403761843247231761506164481915899062194270014235933740668686680917009147825588182158117261293474909250863730693961223558506974901725554036268003441357840277006829897007610451435373966069293401863361915065488058274919348701931951512513746110753281768863320100161696910886834393263327878008052509963585899574005054561474692597521092787464025342701941908227044721056832130628675371168549487098535814336413929075728360636177399941383032648573923335273704583187096470450224542505330116394103854888256297387739701170215712848497443336771727503690832309635100959750581563172698976701592801275194644739305031957093158696637120204213670689548447590085236034750119010244714839102209006622776454997544103166140575733286491723017412155977660945952616449686421109349341819165721568635332263270821313205361113607293760685188956382505584040845455532297657607010385624006525208101484671948440536021622595312206886419190340494020435815455901564634543992222737940140688167772820312766071353975080410057047418021862095928279588393153435269177970793601971050926834126843036033548516575435439437689883430907370404686729611936914383213996389205610797093402774129858569556089864878735532118231431825945761192095760080318725693824314499083998290537599778932106954261722669687262939993735844926795352492150603113193703607284218876855461844461052722395176619310765003226317726750390997278458265494918956803463760763279497884148326507677531174247789183865059198449618053813383101646736837329759458303230873937848977883696089348436754116877337279652020516114840406284171935878060046533606959963273698369504728804525968009751782708768094537532845151467572707600539308251184669352317902312274135242988270439335085460340076373546416397904301224049524077594458857158668338640632382651586616279506145731449422490155815331812406474885678639631051661274537400748437761977150937118680056688944688630926329433692828793763568557997530425135313379579010483615438401829671752213645292235083867976335338967235145005963750392974865627438649907433496206516360678392995052924719693124920595225134864891460246226312719541051077753387550498946202986764736544561195078430212600062948325914802255917720107623149424703757364419703762696770439554041656184885009818852372399023316059294841788048960036207112245713318286484585625446138327115943010534762615188049250117615089431440849852903923226902594935733689095272507224568596576188828991695119083613503377570667329746180922445712104955247446488279613131843336304674224966244476239409796241640324723535748960367346514260335197346277402733795025694715411220395734311336250438029672644549838751174914460893394151235097009733619544994867768632208693115312120321121751627235487866242690627124843262228481480803238706341305606865994653184197677981165467761886217597010560191652689563248041406393407293568864474356063008668688345992485235157021471796836376700884878404813249502589495345981493924796953609376572859355441106019043551675670459588380836168977902045868250257573784016892144385083980122272843265028782709557759143189553321965250861105908327316904339304644421572948994608438876760532470585404392103182316371743954495682351640736454281930459620355422337730887598057370835339720159688957989071380554142883646401217203501958299423220405769013711971028245396702852964650696515467666612643167068867299836837025155517864932261131931068469687810671591475565341970960544205230166574955458582463331881910634144559902224006016083109811287292378699899851447660015703330549212942712779289948277007509063779912464731667691557644497378842313511860458663167158467088443041090191993751683994157066100713921291286884703351217448421680320670021783624299267402868511568179888072377448229229036090717752983733729251310275537171632614335592969298621517613815211660089131475706912260268579734103733889301651859287261771178719917541818175000477222850835890299569061222865404669982904506239803583740753939185479732155314445240257761666709271412968119596789407359926153971159207527858139248883793924211161188876163469430501380668492034887150211536230428653135100937688080977677376511635266919243452928023734198541438684133143545949573169588174675949927812355704409193214911681102103451331180620368932636836735875894121651729833933060608978307232889960049089215509577079750356611527043440379757611350088991840334625914554982965418978463767482603869264607377455940561102440062099262665461318005044508673434657435163490815192527236074174352378911397220614777458272572576651558622989142936549819984372028332258046595591320889932876836512302536522210124667216122742922108509512689959062923078781229280938284420386972419333102545566216039713288593529638695610092250298420295488371789988917683488634853766129026920149942995360595419076028097976549087200665579468034176670777080719894117304578352030250452050122923100619021525822687659905156454700076645869251163058790610335118410414465711819990821091896483963789413388671210535722348154610109069070058671957396651736198368422222506660319680686870723514881310966581941007033552269661677807889039215347192861765015009149784317308788851413645756807199078927337254831678039450383633219299966041728534252199601693641099669035826927478829804279611530666828043250059990104723852552156790933751543375312899040557173606285271194354173534355377941128048029360182216309148312100705600975240445676893963235403888720758691966630928534452954099694237168736079564217977083561795738379223003203274506815533191463913596463650054900573551163753194095829435000957243704144463627509636072721265156818074574786075560529865583677393348960936271857346462793733474790811388092513199737254002323547348800778883915115593342665980025822280069783767915624049932001122433457597286124069839013128766725690122165114067498344407193576296283879595499996072724109195731841125082710252413493805042526598651093247546896463971491021305176711566506216571333327680486139142418063381998656208668200745767915867756806099393746964442977144060304772443383380253825000636080892573082230580980217697109614012565525820044337074876854219051563544476283100329183659340326158949937576984774270015014074316820521111981986719524167756354010101055699665793242334377144602092703147935853747761397049628149425804138221726769939500210603970674570377428544764821994361116720693307747355402735932168667247808319599856786332984676081033374247952921658411837400995625480648747917944485691580164476722343490042757290744039593597068422188767730690008978954832504013532420969566261637255806769147789435900185265779693350937064649324352843869640217177148805236349846289609669092892722153067957311531441910193425684734337970889758403933463783962181877738736406976422587722424924137171933626265682856498893113397647049561000211167026180216830855730011455322390964294923658257485373499404928581790613489713755104171730512806086323947137685867552842907499143950831524295639622905216721491647180056775494091719219514062711225260323592689018729814929394362292381675481571583663359089509526594072766390669250432125150629592750305591171111584133747275537882950920069964275516616102406164152027169532387199885615041459992025390192928437678955697958342971689654018219800487184607037731742509982123583754064893774033747073664848205170206692505350467755371413667949760338634871713578014353629472919132349276960963357371207274427769523895695174704293807050438170865242770532676331047241836460788717689495941946851015770212877118566652139600707414307028571391331416885408491253163790639191384121996916536119545536146694965502913770860130775671161418185900234199690278618425232453214921032697950347526431089840029496889201395098805915591710613152776456996444315440599743531401219039411173776437926230692990270174834757658789443492234540368926253495683090836271179849488549806808672985406424198265995554537075017777275819557156799278284220869681248624738526214583341689521136149494030938936352777621545303773529165148125985797954612785915302650288664966406829458379548059917625186344048703803655851920337162476141702397932769094213437591828638769554536828088670494899623198519703759063581928375475617035037867980592629441796204855500875003589716832740294443272188684387002570837333007116464134289422961913209237099018840479688508263438519675336214012985673193096330592898924554897453035775426308228048759980221958487459560696235077970541146600312854028284214862226917464810738207744460126904674038686809696492286393658576075650470522639374168369967254447353834367530236740341919150177362658504083426579779707547006334016017937478520822993421660638064520620644927987536310567118588995953763874832087418066256911158858484994063312975993818468083186037057459081506439543573554218434678755332978157097360966958153378471981837325028983207372561960796069369865880687030431467234290816115347688626266733905496067697161306685130908639248824758373076687926252917851965665219372478810634023271503718377747398637873481298246044852066663651366532871627157421782524456654512699140925960078690417211370507257946746932215524945829512112826952728362228118705116798861679999832156115469836761543810267896126551491562314132575988022774838412982644485443324021384890302609145352099373240091308203161606296377968679250830510279253592794907170852869210913225043206940854916225973456825931102639693907371633383751401577709641143184276492772147149089219546623885074137053969317573466534410976631997073126473265481148289055867388159492677430598918391619352176982844579850997985415397053108688021642442873487998152856978474718529852923954109950224800644597194717049609001106782409124686583527421865421547491067481866938834274258837105272151606414985946019947054865788067468223828675532384119881953667131520576889851900942624737583570408639441910957060552705841424231863775418253611024806321585991137473772153435496377315235023372838369243848821144051830230605178423375170901322633313505444577297543769906345108401442305259638119072105674285063680360615906003214728969106462810622879378927739014119041466291072912713857834595846551208426346159872038045648567636485200776544893919322986609044418914139714831405876940393696039399682453704614525104398193756524765203518261902802395452035799417275691526313062578502887495892123065254264467273714569963946102994487444543942024576775638374248753152022674404353023951319438432907206238115511749183497780534390413656697117820216184949042660626620263593798568820918422773120196786041461771612033830017575660701293224420770506635431526832049646199225483926299031427196996506222071172052293038833835888219840285334182671730876782313990012933271512349511139534351876031870592159514487697800161368716203369798347450065168338770762416019056987595139708337496757614898877273794594776363125551552452615695713128362289401236976589632579626487228336047800637143236744309046062136601539781028450770748467045764695088219499620289398146939532065908352311082534775340305323415332452927226165886995435023624254858530194432483818119244613167984680928860791847523141269336068437069898924040639810642862766660869791004290301661761246785290233246891830701789843929650087404738397452214392420481409048199217148751095868813072218927726323967801074882551332264493338746217928631785900508322124986275555544941274372085205772714825078888050474774485533809681211648917743672812011020812172581534410133044418369034852431789259081743105542879828267317513222365099436144190218078419459256757359888300924909129540178529999450907869368730598565134099207810597029238995663628799661969872006333543886245628729603135825659417904137088431634697471658990928844157253207481754971511075376032489111714991667230723435934687026182341454624400706610791895165889791619778539081690294575333054155885464673204760251412888596204044981226624222354254258081775815216360606280498219397378526886283593158822449387652006164263237266987434150556598767913103652654487481649281154217170113158910702394861049028652568598962469601894983504948871110606689405251575948466304469528806528316542846333681795643084570172123500264135620877785281195795415701995089558427125452896231461623901279710146717954575189790692979842882475094427048951590446375307691867604757976507864744552254457554924702064512572362173791069500958467030797387370823128216719081796004094500951264936039423790662440793455436325442882308194085299887152934524643914127548838359062425423301069662489426979443204951485405835220144862426639340207255805738760524642839908170600159488475991272149493091222064306838168196986459300417236579663501311927023636218053607825654617917688345165214442591091048050888327632939317809101571421343527946729733222431891885388480164890309121262673031150090174335638655989844458270150952712796678318455380207371823617166395020098884610205062952573142656315195084957665794065008689499883424548583585054787131187963237206747741782332327126449595182017353739870820275085030030374448537610479444144500987370083073191767145613144723051315556838077853956581821311020532293226176821666306404359192004480455488080998334226541054190558772716285923590252024477984423475694191887123150591516461551772763925789710585524331859303288994789828270915956612549930661955917784580972568992807483579699934887835820554989819149385746096323577776091632377991777622071715588774870670877603753617492271165790352678557843874271798922693701254648108766428575794067935979764441086802163377293341579445701536435667622165879412423258562234991869269554599161095908096415014817348624506476441821923268304531010470056534166078352876803796263684772211282573510138828918014506964600857896530441629708819269329200973584447082587858291475560153246005309005201041373020611567563410917895878829732609597753167520212064291453020027263380876526206154949717825440724242860831184186485454641006913367030486347849938758094248564242772192325826362828538372763619306557870040724324417101326849765481525022107333445086719731847503847351809769468082091385148545228588425473910521821661221073214186341173686770443161015515370299007567260540813063016053321545093561136133691678299225373124675194240441066404947915613030000786621591921523564766128371088387146578094448461138748542553964009980089079607013474258602924246011221379577021384188491904638775501834220178837827019811564106001459569354063512591007177180435181518971029288657254852761542110915557407981017245003160549586456247409025778868993083185921178681207992039620258142034477967561890325591567655021586651252114786353202087740521186210910431138967081412323170847665413280006213900495286029950662068593213752853390513637066439054364338668589478536627985562006721313250420105269885091248238398756564483490813463716937884504962536703606024610974902180658903693970622305569692040321262975133809853177757799027962360770411702437240708661595643188885292112242860434240069503004585433990373491705195263070741836749033538084075764826545646754526436834637134829330463710450261902485381409534105461013383715654301172865386912358903021782097705497955226908443522419761709886390434756092131157822927078763816252341570465573690541675994934749858169581663972278113571275795002776123810149658228713121325868902023914424504249949247138454808366371535291165299361778528920058032602116319310131235591959255461418247693557314989967938787940985997010933974104979220301965214925019761737724796622067525220887950714132258244124281352501458740444721791631469864849617316205381504282339153462287853786591320720602834170338173046475708419508685751899173289665871938438240886353561821795067309915341822899489940995065170394399332872605376053973373978505678752549828389461028022851932720100587817796782122326887356672354750473869816026099664640047233232655473480132868229171524889303262314554223656667841991139577080741072045269578061729990848096831737199048240050330292376542867877808577847720529214331790263341404991607178543325904249756249065002842477168247711324707510523401680010888370446613430335092140680191614238324700907020467515036885538125901459704645847455479909873850818235560432112463308171255763889608132988691149880346440480532692584041603089184685939025586628705408266478414350099245774033362562505221952998856698063420373704272991909883102428596795607721845839747280726620802432107088699970960325716109269016842914630929806222753477576643298548517615338567666951455803331988393384023529162101723623129571037996739899722040027926441457362991820925514690518804419594787444969822533476001526305565674128211165656446655977815776743784268876831818789866884423880936474120055781533511437898992482731965958937311629505174135924002470056345658507549646317019957494668395352861179215647761803903165231271575325972688360240648256933035468724706760353315881003244884899011586603529381154502207467515631382839527141534813515155644343062054331944296924714934839833389863684477140906317730379201354435695068825762241848516385460778475769614674263022564412635282266729975581113159110518907757793530344813193480950202715207647805952081822691740115975925695523370939084157590567923641052553524009136026080563625048564578244000904375867469943026772030476704993539473309155653162083908812991225056775115933848332373522703068221564750407839243340375056446286904516747343725673428287674771067711139788313609677878923881100915861606300288106230749892183320881005909195109951148855683728136008189351910575224653402522632648424594975852134374733653023388380259697241771134823932617057761822003322919475126364253703352047566960798632931699569039109622444660981651365459224629562068298319857792023411155744897031785977827598693745005203769848640975013433392949586517111249756483148919449510798574442211038015636970364191277195207091958338409331698986350049232364194464828854537145540370788481153985516101667194041268669392422982239521026015602766820552674391085148626370235730728508570895222468246045894148510233328856879267426624144097095142671153999906434524226093402347718325253851262679312001444771515959848516007830579748325402906746961700862831655506045231019162033073210098253068186893149184105349598741574094541545146481806228430440745303791302370685198446221026745657582585204958009455924045177296492340544997070304230292528109633759139767494904549487829435129440692097994902114014998263834981011995883525168781958986750694313424037839184974210394516555983245769071460713006093353750118547741580439988435417281794517844946195192628386229025071146518834727556421216491652784352978498310853197321811887808781195316402115428608695994966234170204122598825163749557219428161700011820049245825440038741988441809836000159556749295941088866285322574851640047691036295411278358818966709948042009731214128592021714488522118831198214079631628529835069759097255647240158548338431301032531811141561019208879230876358291041660581856430412829748004265454297649666990674550136824042771954754657530409653853438634360062874038808780985700803817754746784822275172148303188514996492970227939129506894780934867489048372922664727932136944816383267747125169294494539741595761754104981768888931038523253378973670423259218174905713762412074661259150347515046497982090234048968581452055042965685482303874806126731369246896983572828506412913585341837652268311177974762872217631232830677824704587813266924539941565635019435188349287671405775267943396538795993213027864741993967104699161101642872469045178183488043177203647170359779058103652120482560633414930666510014098845993476537178718693966951842731326442129869044162807115444908063934879188707378578979895271964744181195498848097578716792918138775823954965472118876578985167883608199655343069870133088529170044570985969859669044731893902496032632781128042432023097348770452254118798900490756644435127542949453096262536443184975239102593829905052727719168903982672996094055124701133497284839948669764214435056393391731938393377823396014332704723417178514379755447070038711883667356888560918491913232171869761295759587490366275135620090811226334565016133969031220591111248233685826213258714297082717214849419074588791379486096556881541460806671087527805778875937677840868205051001358938471617457125978175002020104973075977981654461551309512925459662834640958721082992665508394265241688376653094547807234135873062848635193173148220900291401908025454667343228798293980048026594906904659684159720073309429466121610195008496938227277004229776409597161891832772599343493487439808123533839039342711225857627642811456617388302695205669889836692346051151950506351382919599768514061842364410951049026229165077333054045839494305884770958396386897512771222249942889890688150038442912434112365250681248699509363811331602638262510032899268221687636107967227421277556014146151987042373722215920606712139843500979084387837687949717219836060994273626627782783685493327023491684300147603611498150931160505961338838490131531820178976726130578280471982653835608937877500335239280999363609933836004588538892082135328185851391850569293340927388219614971407611014607142976992087194421420972085745031352220488187907094447404618913024872813117021468181197461109528178388684498703192165558064945778703072512464435477548509413730320976824942161791011319112045531768212027487736684920525257207004444718380656803854579980279128313658371628965319884954528877261264572766106549414943790067155625766755871535073191078426873133299112670615613994628843674396014171232776899072316266330559033396852015172276942314702076440222134569427306423368185225697537851671690051113195896343289652858370499701650718559469615852135094022345359268896126519712897571683870173092304774362434279927992322053408773476651219621318590380365930096002212135310007957696028615799492547670115622224019392386475076426093935866013577317267022776370547012000111878690900472378796981969691842926699698403687130987644971669631399537733522803595417670638382430605115752475273645840550007119105567391378092282640239222590541609171308089574880402363359470121590096207697310652151038558120465803341592964829972289772921371618714381703223019909553015367223794253963875645034431218729337518227998237204780149002436243474674702580284404229816543764446567489129950211123058192869261204012436045376796934107792021545241154396035214418669722246502435109435254557533667961555386874617610068683260152702147256576307923792779528614363160586910027577411189833281526391087977760166567609986487121143831012322212423039666774190312213606275255051013974462225586974464883502449890431948094506109459767541871476737215481693005040236135709963952473770772314809232940336971502462087615642905457082933806308013388659833592172499595189161275933823204826254683799031526521799264656923671581830584549860436480364071137696773353329416769841637465813626251983700979671223613572121734131977185358505927926853286221635185667319567109606846457655081650054463542976755640866602716078639573376750308403963385587239786826921054509577470106183604851530193195424961812646450997486416177497812362528823792324456987924501435766656468572412471287560901500800154728383561905460974060606163746644859366928727793600167913932934645716573428120742098583048633443341997352693597722185517291950812097383716327459812984757350857764452315054819232893246979207419708241048161954616632871386752699464585337437917814297822326957117188806964082199298358285877295761206202732904444493880819255224907568700965560623175767403568753025006289677749627559028794391948219267411140852849660267740579702594875853077064810981664634902456231024361709401669008429735658541408486207515498544783706177381656825016109432264055467221085022584247392853085955860566386504343706403117074379601295319999448659138521638208003884275536053320669091886631155149590716648111958565428430323729771244816025069783336282248170390699737130052992380929139748794509532212895823850983913394454110560725894818687793111640817317081041978093259171785394579296762777130804136859458785920011908674119909040628420473591729382771505275834130373889585390166143483177893342038499483330820533775166218805162390027581336713741607834134092405934184468247438615723384893432945482790700165498614565565901322041592104061062003749456663906375715510894156901316625909252734261198777197207216527301444253740680588811929219848053864023687017290344038646951127896213155706498727030498513158030421087158110263595371144697888790545430517401813788084222526646335840109335352293037677522683631705146084027842851363033609540296392428947080413208551689926994973106606156503822339284301447082086668930162189276980171258917423649863013234425462912244622755351020610468030823081986447788504914678612099624132036713969208949376187101810061908743037366808234896964193781419156465183870689815188419153435724568244071438619331000797986786336711988919013234978094642022639281617797629492032278102845009952629296611790451376081759404836511690521260268909244208745561840082732474129838012254591658830060433297742466524776379022599505641057336661622326571509650511182586541818573910676620943852493397867693266999457597948380970427045623294182441427223435754630461572541811029888451215064985077338193437844127981983831838841359708639398013851835596985264437412615587383224780886539970838134861120087020815019517051526980053178148186983048996671703936174375471925845945777734918243753596268339152530689922017568165698318906858786499228188748432739379742778331171596003015972382553245519975766278714078156718451408961352705583813005853692501073462006768955003311400394345020475434631740043334158907963638976177277376439620836578365693559036041727482945968162573172639355101024205755975049883073762159339391744320174085282658558864956771286240408376054023086908936002053655234034790435471514871991001840307521338820394539887811385791703585348880773842978920188844622886068274401868664957007376386031169276268536119548304511478596403556564522952727636122016788383055290702226194653709545026870523049898633480508661044313070015385160150781847227625292130242778548725455974533567687891150757369409251864894113577344403387948770203377268892957487282558865150878257136041002880399886494309744020639618598047834441153505080757994362087310382050121285876441271126439100988547435656345877172085035070106017982429854333443019362880099069083761195418566635151813139731379391590012757452829220140101151632199116056099347909261100627076133433711089264441595387619290108053042987741976321725709584297531255332775593377983947538880432045313632476022165173841848004733650224813626199360202882611494807733404922605008512585062807686926039944172119852232077736405729944874145263367347164244481422120382713943440087715595105624375360915441499929451580826318134681531058357606633749837948523121396430557591195880997917203961990061120656003646031839770356698279287658721982269463054299081665580145256307351199358796195544303848091649267218135060882253292085474221159767478335731199334928982661407240415577943157994544938603970496251034263320472903411316783595523983068034834984218189794993120620114713617375574676431654609810687720281236886175701818027702360535226344351444414782100981320869793781057615865392449717978661532212526238165986581374388244945470633125612869642567235339321475296186422058748440318310525032301274778247530636367351170335780237451396102490372928968198274746919323685913026020664126654779351938605785495715832822218406411519509217950853113255396494888308911259148986910219842308334078235750671169613830487883710524056150694943149547441564725301517457513822620598403443005751410769199084186230300338003706681830036849198810184842588762046776196041844219745781382938776897019310728539872912022860919554075886837269684219813833487631107781258129289465530658302147691027112690673963826462907660976086390185480299593914593372985562822449705840452220952184056329788915577044344026866726637067735993074782042207482798275538782429650202096571386102712639019257616182623110584763924820831862403141157803120444257972483809625219533594563204820163152581655814193294697799266152554309781701703859079585626951025863200064590635135867746420396679997232090381760046179469149117223187168526012179973590387412671442300159576291287557944035960940068976485541674245893463086804145520898602563278533928717789474047701222525853859647662295502034914921263376910780752506679282424923954462134570498628941450748558667406042341759158938298178377387686818499599534854197636673078451992310088020845580668399945179604019375074748796202419120587173895392570804727488543278377281397038040101963996666542316451433674031471905063687936961043012173510323787318732103059320131176891674540017306023932415586461107092347861909534240673191982782804708684533296262149798649727339130114223573788089432987262553920081621297628090377755761910999948362663489961937606835081271084575582797844052599684820647688203404456323356053491149016856874595413952788462843143542030694538594620899715312986153457545166578517145188125549933606289618427674666536861002883764867510234073582138527564834916420767237603434005666742544656054658798805590535344684510830410675653057638121256010349927571329775492221925473729313239049899849942637971505716031708822609982249900933183515767465248251234150639387058672644356604937260141767125198562407230864112759536142758228182583292577441112025616358606072681844741137422146380690558546312663043335021968572689213350338461996914595248418328999224910600464289603637763183770712008814322553175677015843783210987583229994594200927196797815948220476228067975980003647661467478223534595734641739864100443429625037066788875132099016544894744849408932329660489461967844594727567826534334507675380152051584921687821100899609067196350599540219561547742452759786887059126641509316109749137002197851732217952298469328299943652724348480057092073271805028322657146154444649921952456188713856749667620124406279202612476793604720124200203708631912488860261778038910456141914666103749114760256391595176342392520503757547703282377022128142644220842689365672648228893878893571264928208187474216874424734661404790112699461937214455662297312491925439231187909783785123852209614837973711076104026659803826140136024897784399652727572156149820561964011334634368758286748182995503524096073839931459696153561929087973706650276917854811945575607117413532005481974341645680080444771325988873215887244979281233515085698522436563224163869293173993008212938101911904611858912448719249804806892025264849827896899941442825003230299911663758254433444715202367602747098107770013390635667024786671442355808104581150699749329599715244434006076404515175532146177498163151993427009890913224770366699392466412033808479988019977402734353714638551717193773823272394757592357919430587797656675827520739889517339266936603538806354457267746236647174493272327590270827113369573931266863375481668435293186987261158642703481423707794229999255626783127238823798267136987543503369629993999794859891977874165884104574603783952132717219475340150681808505242562078707683071567547020968926634122769316571950112694058758887107643110196688815376825160375218835441657533323086154314072444911390799196440861977219245748318908289540518419174224766032376372966653723260656948297319269755505814543665682552671208927018002876317061173373030878638515017105069664770625184600619887652726520036358391479385784728670423652976656408351622334586704261921904582919953025958083868042300515485849309646848850194280360514797537495787256522626321551332529372308597886010765793785168616707277721682150888535990082998744210481232376131597353798813320465429078475654616704890465811454374792825464550612923313600241745267115037245123510964102159123911329747797468521627403693085999542185555466680187735844677012581305982446948699649494209199104528900071410623369681304679370677274747012728278512623001985281240424040663129244386366930295406412176156238664909528375889627466403402792542222627830499893394319642509451408779466917754607795838375803760557573783671137984716299335912995739116785525801192175898371248729894364351086906735283937451089739988982492594881449942731828855826320097517369175557352387671733321263769080187039493223208486260554819611348688498330140431056680543232893128619155910183931217350076752278230488381601175769641022826844060321129994211697606249573059665508844686931430967619689202666455239886385274234767100770547101479849967831337395401164427782912309801302727461085768373592298263424777648689267367605630670273575677283800852250098388292115066004246459770226071538506716140240828721012806906664609113658641384786354390235888257256916793985010008852610171688397097789155054370778887424054732571567655549644520045599883459718680857250281870437448578632114986560665822408291650631320629643915113887695330052415123149104331317555595636695699927348283527763229163592026159703192158202337607059411188545410758126442750026751521045246204177319032270351357931395726191882283985922191718777959846283208177877077682598786838522310721661434412761206002935357602380023518306119710292701798781490043765522857438200276091039051254022257059431513436638035838694523989347898795634880256415084841698693530865631730716869752576528310735812790382991204037114027936193810063804790996313813741003306063687619055496192707907077363936253024930639841650977325896026100026624550718713995421051742936309973199011115706310867618418994862536216679900279919987024004900502625696411377763958168525771070969178252422460790077468676252963696131207860812001522086986153926334722926584203833686851617954810534340872831907665527549671418896242539333560997619853725743757764477702812594566036727649558487989637566345957492729075629762098712876834001706368754301655069638544053205466201986045400116132855373014510127905992953269950352900412541487108480969105882117780545118726516516434610656322507148314045727783850354746687492402557669354396455855031622941856429138566669545852422413551585490319348146096748573049330982981156463839713324819698706366258262782479384625903899739665168069819717173214552950215145542277486438639158935133383363991233988217344102481486271387204812142586459968101592711767522682995908121737656461518406444432907970172476807484759827678843271038605855921924879989186176373046405539661967124704492983723251151344139128488469235802226979438066427469568555101592350910276266249144818684018983293093655815758819168798984377167460288075319898150289426899076318936586733004011473537859610240748962808238209280336995562292360411737849181240434206295224849758187348723768333734617855645374754677428055145030368968505085314203915239270736591187828005497691627207450281186365487136673988626841660415588343822384149723438602937730378821691641198515502127028298407000231144665703735366821594296012763673248274614905095653496777030830404960242758131249424046122280178016428287232250712538722008386056223919673087773401802992244733137395254344890132020827411733873377880494184303083849904528752229121721579159653605840598752244908892886018780835365450797696571182319679226125031081905246826418041840286411821270645814978095129773231715948810842873397459935333201566192359948596170863529455949577167392449198784722837402794032720210886593762088984626051410316016891298768548404469912360944085059929890414609463438185788663278442581732261402073062744987613181030663779903600882231987066678970184423960565523593796268984297858808983587197232963452295133490525429588433027499013991901053935534416075571325814071981446399944164196608247821758960461376414029501761205916446720213315650797041488788770883165001779411984787207017009068635359538739931217084658487263306864115816635274382139296477375610222294564178057177792054565244156815027498209266673376662887794091635515217440189540579489504935602010448295455525887723429545271272259903991047548699779637788873605424659593263342308143953639710789454332612294239321180377341607090217181560593060425143372631926518816031973106956205992973169310721849580671504358808824914309531891640211157149123566183032618951762382967715645487682514412555572294016512734548505845844448101353282175844714000820225891720096841670736395511757720846409051958839436021874024567718014489517105226776264527047605123036911617035092899916822984190527870778135522342864773793405179259523735515934824336801020425704685785326941619875656882200907348285850031412179972546007625808010946322822594962712188648476473834510401592126165704310549301768622104525901000189208067252592177114879706600632132059882912796885516433462946240100091643594842096728374897257069033483278483384653100306443507001129697734092714193248503699138475575138141593500643923313513044437214319195589422444871512829863837067876764539054584887123082423227162866449550443493386883292918026563838317373836678192629305174974123385187859707706398707408308311373914081186851692645820440782635448111289604258012445899562227936583058243593725294309461769440444814059908087225137007943362317332919264475525092901988823171580434888082813342558261910662585356456781765795169843252221592477244131020663199844429360409703598666120068625525059869200786156156718843934902581264039206682826795977038649131225669898157373597434476035511673894847513268244424869988910714124677803176619046434324362072801546887928241520746286272631856158237475306415489970092686965113793685519884538574119043888888559976136321840874333834066512806496713123650397448826119534820652362508188682015028200625401474502561359560731509132018788165091420489282325064357874437317555583271814975088404024472656819091095683910895156333990305168680179465343632638029969201966266145380562346685271270632930275826961521597641227663496257334771927593075795526192432184565705317955609694271829087314569509753685446788222299445605450859704679683274239862272358608524524523881131791127293084258870576015670996508020904720594709310041745552241505479865754245893677537212062898981805657344654011040800422457969866264399930994527510857168938414818698636320575389108431835224174051898930840084374925111495712541353788843299347208860835486329082041734210699096731091823392529882239144460201041309668954977900611264279216098857663185394964887851528306683567426078309192844312131112968129853511587943683467860406423832642629883673097103958568372826433405032538943119940330200520128166864411832684999555967496915337227847538847270885126242009547541636193680508271159331903955536960466731646355980776011203320083684800060325056784525688003586332767076673749462533524187934277400454037967880482920243889145225299538004678006396963765709625503409194157695832840612597739897690159429219447378479948669471503692604745957928330303102262447722666145947897026979942618990931199775290416709683200062778266070777520797954078410788600829857191257122681247934274763825805698313954946991665253253000494918320038850080957013220731779617385651378420263933326356488572172764622265637531423446372925883521690562850060071818518758341317503376375921729775101295954589914853926713630445494470884505725602606015438632004097312112557102209381194617281112168250717615079976722444533647302641250244496703522764021919497653672765320655888844320986678656888328435661464364754490114705734895261302227267750768548164339633421691857582962465910222061355734851828538693392383201847867565121268217750418682655739569989775840129686545612446018146845569538856923106629415598461160527595815366747455300630754721476077110898088742166725546454650047727467475120354021163715043666624194455352209361276877697196262698059808665410111284191334294712879460272803838384225441208602812524789016625725926805816495213797108683187394036874601042582086427773488272638577102825547711478258787659762738561593398296467402193865824797377093673732992191186304889466159561623159026433320129172637566981878286532470339474719177673848910169418018482152909927319426798537154049264185269823506724684382465944900522678706788590582796085482847090105466757098822275757580253083423763755956910222799989752740870944857375019652556939652724870824964534726339700624091372854040088549694895330559268388283714936639613987935958734361074208024120585993631219660055859997347958235527117885183782616049048392382994673664215925955921207641855447419727901329074543988163118961112548073810837248652120868290853756201052100652244652351348270288030024958538907786940625691589336922666847976174105029903908644762949013458171584211536847672374380391937171800583387464334528178965936391946230215227092488445068972950275118836106887869661885991656818410794256187257165967030021290309946439392862177570370325752646796209260536746303774351359589097548111843312768693833481208456701195570890393563057625301448362865188168037639428829877039527703565678348992934216702197132176281150522576070319635456703062362939226728672035938814193880241470708198683072531245985403940496339480025288541946826627131382975425582086563294378857890305254584795713020153325072813932555367158067825037184083481635920205246790775000953931345431177758201532032982602746989063384016026583278273097858326305372485359999914069386239840020712313925532045526523593304983603558858306668897771560179023494129494771087087168731343451782636468775124179348304298227891036041482004422137374538576691570710090956832709478825390940972403945355292299545946785726778374559797690389824254036440946845892229972333425969477726438392840195220130680695274822696571287226956661983535849436846493863074964856983377817152891679502965007749186116200250550395818326559133698763344174604403428267684802738268740989255822813771282342202594289241468757456136825572815965493957797518236927246914127671065762663845537488850546865550355568544455077585649271879498997983820161176684797821232895996682869655624272744795831032350428505238281912377816726084932338627752964585941444171173105043141927073948482784997832928583854772731765822953826407117184042218645670425133507009270336936247423502523069703175736313500957573705963843395978366561808594260714893761694852532317282537149403102205312155841698704507774531028807997965531978757841002414462098893218140347712152294852554637667391410339341356179005922039870971500436002593273935685432056692742388908921787508701960676130765565458961525915326782892836008189903492156978110036180582585448683756699482259860316325007232336469712318721387451955362339000290990207863760472995244415999857290898073649211995663904157955528114939755876832638045822912479833099474787085109881379873092005288149189918006403530837303759420099011701972347930183419610805620655811743527533131566246093384462429974261624803082388414936494120847212129558646702543602865998435869919445086389680291253895658811579855641937021074688405795035361581869786900602157779695770653535852987596679236977029335472308148682300651393475251150284031786728688005459329966569193905224696965214464341918958316281776851165680460653475012226425739661922473485369410648957989661840876281169683998468310888141415378954956761760083590712867057564307886535614525533912152014498491564618969036316068871558670441110620795685865673852692940433017257980452407360169905973201955724830558735945680171804505863008271762929462009740269315496268736689146058883497186530595014191656066808037451110191348281261222458575901198907778608219635379587142435582172078988781874982158999582770680640210753275842588813818544808536993695027632628738978742369606136880920849612397995093859830167675085231568235701420303747265140146783170429235920744081030070017882880882543822084296607172167936196107386773331423969604602892626072907706069914205363617974466740987843114139437040231300707655988429454843433896122657289132891147706286043837501452934600281103658450679293281419375494268962753539708410858538888504777285551621619270356156959789233829873426095392083109041059292591753229978948812959851752429685035973110698774320365161892070533011481324089581534150299142538279660428241612732345727862479661861109412515310764381241681217114653474002282951419455365107303033701912434319926703258512128942950965140035426044497377334909989608427054334385673347309200947930915555640698706577579513033936285093438756713092677024966703563767834295991784520478584452145261892137370168614255428398183108002960138419569476540239916286994306093710065301989282043994912415574670227613431579749926338419839222664358922446443573256193528269845451175500252020048332472987695873509150890991976117373523835583132439252779757668169286696138996641848492460577518789516316443789121313535767049765008536049974543279372222258602609568270412735401709147003953929402953016837034493053951644014344746933884451575503782185813103108389406925513377982790758211182885838832756995342961887122732014899916240472949991452329431915281447398680839813056461183626645414494228073594579139237616000757219981074605751046734191255794607977407756507804973330367657795237221016663289354872449621201232348372410576520481664314337205383356869641691919039845793695657229218708446528212919952625836735120028602142854502252963542175709742215625616052692650467637200503925700680816353100891128123632048881919959250005724114812027380846691135584191971828855618769826587020785355611272906963673878181336736645122671869457440818406207179764562150454947508331362798630544310908300198268859182471715750459125558761704088589930640882768808623141199379116815749865334526056666324008926890426347320445344457861483381424016354808723465058349075958977134699321035455482514291783007263355452325889189288207868145776693881701217127553932515331876996300629841252887769257324913798749648788188710871174310004298914660507012757137252673810294815980473039439489777591968078266287487689375219665838899780990480294750487148346640880060826220174533766702639833954365487844108335426080074481138495605574604696965998952396011976901713777424909287059553609336625824915850778005110702277928282235140479706219998228735208341960148577559323900535158319057636278338789866723182531612731728257922990809599372304428586534507169674936522681430242020154622322438325877404008042740698163097166852311158650853760529786578249278334079978666680089490362523573255373942226229219512159618886460962882290244723229055330144201379656259707007043973076366090594029413677831968527281566116561313696244728256038984171199941861909860888550776533784277733452715156553014601999122206152625286376744372995753784368382129986515909965618234702214501110631080527233227379411799423230127400556646498232705654924773002366702655282195206306607748869908025022242252116036227298982508907572776770660549252138810078765938387794580028474182856045187049543506799413703092048860492542895281193296443381926158613272258883943530185323796977760945930470227023224241848425746719679608686761536935799391382029646114647671655620772948616496720440851322641598054326055650235023866232589703616207492461189522486647128722876192982042861506425041402568133662542118495905246912648475238634904221470271143039630296867651282745757058251713559170544490607218779577086010135043065610869422040550047509392464795168654384066009595620930997882722459319769229394996930998364268481287931867853420925673336687104994656884878884896087852157535594007280165607874383528260245112409570857655180406167782495361382576504120555754676002979213421536566159450728839956809698841018876614226390813391455085353166676706472255190731154976188094990735494760028546430963183895682645208268273145050091668906019081242181810115055086726509515110440206632455809278545583845147825291260392300209580502767335180133662112100934182970920148147724671310082949497710671699956172791141520338513775651662170298697914085218565432742203930053555517394877794894319512020115599075568998001487922001759345891406985898183635576873837651037182713125068272248017352973123892898168079286795162060661466110248700853113148807921859170702205335782642536092421206090741567950388650614032125738167886540736378452519135633123019975637294630683473273566898661678509504838812694618862370846508394652914607495600572419101646944840668970347069764695020862169103297649095671543930856682556118583072907800289673723058632446862711226804588438904988662042995148224705896753180571223889946792507518086479319697233920692936673772748544876096361368150734259329069488702187751516643225316201743927806165152481449611387693442981151825676914389726562890535914628535047115277579431866098482401592138034043908455871022368976359267391528848084180906924801856049887977831072227286394795333331603789625791443561331601240081876751497341748991927961242126527346433445367154920526957358396767895896074888762032124068078367847954513008047005203521037285418517694026016505843220628400034518785645501667530115037394843856098630092263636419885896431192501989976865742075596247803968258042447983646961451492403801807707946998865777818346515928755444615530019440458729889852270759530885842454467282226520724831027473438035706686468074119894752959121591147821108699239770964397392524410568423840038158303873133149213553229168743105787112726241520888119398810718461055721940691067124176393880411921270543180806264380015610505131447248780787953889670988608095244216725111312335725316822515757901320592958920670665932678126873016228455232156127953848710530870750871062198158802349944622738553483783824144115608071711566369935042126037849814545547644245335999237527894904149336674374815991653974961703401071036950856218392457045089139165877742938654549151358502477613272170355914408744260441294332703136769984875606520094217253799218736751881057158110790345212128342323942304209908984388407231699697404622678197940221018636994494273570692825159051321242955423325139853709358544809061503301833280757235677848636524501848435385677353203244601642594750859353039722091647875662403140472948354955298641811733252664298465083712835737179374729254943152890661371792495616452445050787580395038697227340902214202048051934205069002974547263884807150917759717128122205750184245465763578896904694389148680217904882573135664968704385589062497652020301466496809788229814083360524213303007653463435361280066128396938814027487842627986522116199819323010838627446360014272317349825115275714669546651202749748498996912163051297301418555133909837505100809541822984459088638929735978847875437560541397672241390014185836291354839084621973630417022720527403341411203266039492735960882639382980251448959134161681061140224516019325254944872678878503688130575910569022525195294202373339140119942661969152646446632979052662484408540942707616680649618546470522587933427273300196014633711355388522756221014883375469477398836787254215348861521062514105542066063906132101915377113640617786535463634369828898748088630604769356983779950947691781741754589054830590354440073098626043697301786181155355284160786323077922964143482901302326036171009497936404663427791901276734614728790603362909646750449808626736791263964186939476613129334062316333777364781033909316313573436011791971089786733190182896986625915417622147473770511074348727196247623701738676321947405347087378143694607219891382021165767772751816865604794426036368884825119700994080132068921665311984198313293862094918187717432931908005567881522210769984290516642551835045148747328235802662112756521077612025423800253924151922429878319876039443408393907524800175746368900609067293913670310141392202601607979795378844781380030817786624443612412674456452456767743474875902128557398448458859208816236300293316434453371960047704171744021788550543768736436924725299946446886858792695156560939637692358440194148508043620349666284322945953253311462826869830748774967171003874515163380991881043833223042664907036769036891248660460773259923049714896159570496071356268473065526742495066417935043541440118045212396521470481608230311010161151143269748691336747754327650615329389123091704936750826866990727351963169523038689773264207072603788102011829451439037924614020007165141249761906478065961511876897543446122741942954467836373655214667449799569380294902527477902035287985308492952306076684667340076535260783295265893290318470410779105114710093553802859029419632662328758010443601387571506125933868564641593946529695755737110744233726614058861776486590902167274539566781839238273740532715742057807424835980377307261669466669959877210072703681404569326988101415939192823592125551250392135869544556370371834499421169370011130941329259922796443596009177544500235174866318044758850029877245561835576505784387249415863987084627600715963906477290250625420134073989988094552062196006973147607241190277560094897375889030189549407489771345257355171692653365892901355402911329941716637049371550126065105332831326684477341029208731421532021630654272014665268539090294761561859219569331918664488946121401014966976171461468171159233688637386086004887536239530406489974513495721571715095682881908866306333598288349435877781325229123429176380948149825496315542230108247633731363322373947192431728597200748023964385991711063871765114258634060754311755545894648068072257491844496069000900074875449701144121638072287105546307716103967473269331935614838181977334019046004541830961305871128314356051237284119629566299141838885731484020400259563762181437919294571572341771631368072199711670224759196266330668346678781985218578491547859735464437963379700663112692431710757734943348053433298897644157848093798563831492635253048300102054380842636439090550674846216855555423114900836873148119817434894008314667155166997498829310158165342461186561056527353871680519370816229100667223232257068165260434515696350493638086252478385641414390590350979310355585438736149842753352454683902611706721833989920937715114787310729665342625615644387400890820302082543392161728082920075852254485797460642655356029174843916843058359502285688931983712980646191337176128662411685080563411410970746106272220775382715372167981944710331265871164920065141401380893764986620845953769507069900766446994845797675859934652752318839693514927360418677421416165621130957783949051510592314880938774466224448612185759327052621733288431188464177102174146480905081547466447508906720766799761454199420967205210936719889715645510490740471577977125511365163777909602442163946342185291242767032095858689540161342119562863539668609012291902470503283551405040377267595010808336474644768325215128321973680038673836773256046236315129786923285877169822620473287948518994562930760346138617580089666126564712242514439807779799680382238047447312947432167936468181728071618743335793855250220202461097549218759671373401502367028250943092125508901549677566818281856470517408485844946237519764125985749624627578378592651093732888443280423830047913548518238187325758940437702159716605829576087031676752131167700217051700566197612139375215882071420500701256056625533858776199049367594794445832900343387086333088882841954402646277408657686439610858907531791041700616503991236719840480876024801751571049115122444016981945271111126993625419248299673025936941952339417964727266186261502978984449916548437726154251337581120401399867440120234806454509668039186504085549775186166323075636800927411825516499845604777675552762412654137697458639119951156020780781942483894676724175638732205411095473457419968698988557688939408210521789193626679150310102928708763415773815203861245188841626718321571264675152915714375224629969474533316016150986532962239868753635451351320679405540159087700449865403103847447208369513958611720566545359534136029053494700681832700352148229177967558050690015787153733289512341205784054392712316183826106794863218478781905518805321754174835145696047824005546801312957241914769074873531831541693893054496473184917016456251039198526962184256528813170119180870728924153643403037662478279736719769817625434782720893619058954830755431953412883293368397107793294974885177805531204843475969358905774396631854746998424995324091596862872115478855395759524290299537878252462809230129784151992550119163923043319062602487963814627134771515709445180338079628772129601350760720030478021801503610714567076779216197218310595622850509698992062120564868659959952391905944896139335888435037643650129613942745629552357238167770701260571407167715783778818249138649863739711330237910392659018242306799266880669208211558381362525026830462369771875622221290305162190286971368919879873490816925877735417310311438654115715293415885419281934079248576954729057820476011640716726845478021271749007231189732807244807979979877554859114785281376167559818235407628100481042196691434457655616560968276605405396496610862371441268018434258768089843139283501345359810745649083882276299148324759700509301636698477736034272410018807736104781873553706144075018679472853467320363838618309934735916201208517623584167576871128157507778865413938930596858283633977039795453658901866200374565789868697818865794162301219549392184434950809287442947771235834956611726221505492979956421717158671620239263087514762331701514378021000259191370342289937036693616432096408248204082720271052793478196646005191585504548914864323026260255541097196561943476833095230788055269205136554791776021953356316835463418284229621153595960636453878903179814504625399509033384539898437197990844547619843346145239914734090517808357226738526414298848311493265156934599149780074687418561402746080848359182837465595381077481696976050462987762127349241350796672924981691044262707571358126260482989308454677988420344206443441937566941666115247609113130900990828379357245394510780655899746658707373998344076792708900907965483243958602034730833374825639234373768365828831138916779138652831888274028720561169486950587135605809127466377252043028008031874703531026005625325986399098936912775477788645118484455922434273785152136506126189038436243792992422020194261079211556793761858183322342965758661766999870507195467845803323119092657158102264769715120111774310736551517376955449392729042837502022843591460138030715980916039138840390113245741595403156141369998515715941352465679235088343696332106128468656913649513800606101279626184948939744098636134598043914182098886848965701966549524837320462603200892073659657454036936545549154675208095690232946283146658787695942378298962172615345239327959640363447571438731046347401993038253426543458564162014722380014361518347702663618385684082307340641450434916778453741772900568227674962764874025512544078922549524483606095149600015040440410004991109973600185480286116575224030829038548991978014151517183179794034388377254386882712808091019139210131733402935109445124545666067039743254395930398774922477899380085061209813061988244381313095835693007160662708193414286569751154596052337642063260273938751650354239850320440400324207051676473643395958979386611925583702046981500339842838723240423165562485397241042338756819415644565832326895272392802783408333117275625657282716817606495137293536066262722459235991204648185393530784413013071331810181291327667804883591531124137056513912547436208747766501334075139159541665378263024023731929033660102296024611756959868505908449034867175250327623370686622344116743775229615966757983884797732546780043430833905521422491863490982421569054502830552616039737494606381216643219218622274535304355884191511946629397336730804825429734491431986537695497549827852812881065275826086337436073165755277323443309908893766055048555251002935459353632884519831069629390772998429818810302598840255242060191300938590170682784558606092466169370444188961546854382431171295694844036416617713403206527438623314128405120055012188683495712171444525010484044948180533558343873188102507265379114791380075615639284389534103598940018520778482532278671217168079611962666438822234536615938589995970109101707522987282795432588857960924144598129140796281157704453687089892172376817054884338650044656567220215425397831875701788163453534054870975906210414244236802353352228193007510351153212174660602997369457989696311443524149163659419587313096730430663675204081217299494578882333530224602493412680359547657504249949002313154252954350028084241288045287368769721483153398889171019841314388780443086857806869673295147317583198030140752317601395230014911294484889078031489570912358989428471911521588455391447472016428813613959251805616295193120506126436677701523699025956476848912436987954398410338754934688867322045625911204488031784308596842965494359215027807164282381776591893105070244203282165388326447935937593498449826254850713467186352121137716841232974777451752638300268206042972603837813738045204079983705113858478667075022405938234253861400395307426985369630101806409001860596798294504115093325360215820744433926327029163098374478684850795017373470770311216383850371388034943788591620273759982927127263278190908642346492595260623406670803867651966044699382025990533748709099785027016950195203133574588879005974342319860053963767811088081846762073159312591975161556818478262942317243164706663276430125023884367547656488549687091594127050448284601232492171216586816357082187922593604601983047676358679962789053179816053900474454197997936156423340370410615582134300269612919595084036161815342671079151180949900904831233946494171931275547307804282239365822703383205836886323743593415348195745532646209293398720109141199504110792909147528539722381023551852808972293351844405717369414880294514000419088981453088150805146954795681038766514915813195892793196923333867148753002973488046189860680172659901117811150503569896303853826500662029969344495996078395925177732416306070492297118744776777614960914946735520986159410454288607261507803139161109998346387484619908728885505582454973013622714713215120661327289839437379369976451592840793809807130993462732029007888832035109577198509070498188937202288810605629321032442658894811745444805245310709183495870927948681035954976243901235709257715413192818813715816877199742892311167045547219275774038472378755944951304982268696818980667032461254054880032481148063528536244211900424121021163171870558004297236216299309996264673044346042834500479157779044906611454917317840568085954772333295469239085599506493307194193226717516679851853860102584244334523135876980253362210974234643563066279613855823674278515972241392530768432146896449240540820814584040399650196704438627933447998313991824907540791161524602509599713274245820106339680187101425634636247291531882912024059177873851663985800346018935516153764149801823712986333704201911302388577854991794494139985015719904812654982793538393467458107374247992063086460727947440839187616540041462878127323113704087355344124429613162434335559110552022840235880852668581719968440536246913936389667646207774705638764240980707531926764493626673577367670750504268625220232753803336021214699843449003822787757143927879039631672649415185563945918285865294228356316345381919397019998821834332743244335237017458661515108935938749081064297986789652193223519188550582763890166893611896289327770104274121698744332070318925544623794169472471286736582294589839975014203285205758773753651932364137942964403596857618613418892190831691963933307701701092535724619362457033157528092437532713528944646690102784294101432074555638876971890883939243628635223906313312556496661387987569088624602135393219020330823186195396958964079567387858682374538948355004445695466453194373865652939585202120066515561165915896336677299267374554786138098579833857463351396016884244060177177665812935237676979534689401711383424578437939278741853932584584513883781305798125134326475686316638096466888191152667809477782879101901326163612603150297495927023135012813871542696445498740253699772889386468015682607534435983358865203728480267331228647072907368312436002383847522164895003377658176625117586554342964473765142792234723125351733489779887589675452853191547406175338246403395237079439798786824820470805310672255979976512134968254933070550370503221238889498086395429423820265494156538272725738163978676655370131690423737232513360659077882269687441937197210203651381097065199884637070845970782384903925269747517158922117596246830005786011657155872120091625446010864889786813748552177053565495604711716162954755786520186896167128336114206544947893643375157329688934233109815392266337554413837264332162909729941788061839927817419729353005502207091108170269581410405584777535213306881973092170523040138919733624704596209461081417338009465744926877318487128826494561650848371112397191517934155266591515932082790874227839579167629344497613245568038064680322972006088531060972119542295144001597226218580045738458844005340561915855952722148586315682923368724662073202559555919550922671011164863989244094775281619737065279495333600720638125712375575163338628756420052052345052611891913035615045074843585276257086768530141260912310998731547206159259308652955942128630118947455192183114533188206962245159037810331585492985732236674981765711288918122681673195533409508834590136659133403759772278973588786881484785536740769338241990656742844873936406795831745608949978543414930185499330361748781802048271316894170176823866200808820770017285356334186171565503848881389495650251767392908859162330288255598070856911510938180078803081563671308847808633710319888519202277429217417825222396262842533353879579964340667908817025431946574368885121042446279461190180515613343668181379458648111359204082407790920366480841816870317535910690161349390324965800125286917008753021037474382491042928113419785607633326795698149103525415806734865307084316007486802715606365299723257383605838392202252995483421015521773548990751050589770326187322588020097095804158594196838950210642960054458472537145099772537135263640559850055638146305892292106128312840641405712569338771043519342461529510330662526039120623131932826064328953291920958642732917250793269567730478923428229488079664834185236780384518391910619360121873920112691307000143500977246779248225495731126839796842352585280515936013732658488972149229853931433055805101973718576388172933227514091074670707647857709253212206595863685336610375587372826409587929781957075563621743502357822178265209058316866702461299275299583296029761591300347149520019288758765278519503540451102720823434641292014864155313897199524256884971252448215511766075516081397249358536752053989655593805272744455113364252651544685185217690917292274390303196802215832533864734283685526131089353504076615811948111883555828148640683174411751897508312842482319976078941007606624397657635023725192608156791553581829301129583501617233259983269237635198616708376003507763310953638896192520892686191864636110999102468984766706340788218361725121353547520505992959851662205896394245982415289940792491883972106562508128351682899289341890526404169668150434896944033229908181969757676472123150430305463728136126419574834622297125691589936924406886268153706659705795155206827281299361760185342348577916581433105867703643882032964211283628544143932352750993784585587111841314738791506621170883094678826088219491673544945415800201731844661774936016671762879187239156289936789238690762314266229722258659608394400631993950165012706001978677697364391166955102928344849762040449238940742353664938111963397984169880466772392374906439999046693285187820898908538031804921210238802865179409088549411723257859340862215153669436293111023911002811143007984936958032873636826037621004272415409514505124950234643204265677478659254532589033279587251442170048554560054391968167283556458574786934493147192593650188542473532018882346988142920494459230481892366036012588144211348545343782656592369016802921994933192829453947516030982720437580056054018995650104740103132588239028024062150107640948409998502353460067113828537857544785897822055044865855443456113335070305886046978398740582387720729375300797211096145139253590146106981210850235759265578297288079388111309535718869877450857559554890887772697403770531647348586818751954924142730358212120838270935752872146948984666641533095127046548193454161585833519776568934359820652533692043862235447482918120547501456633056017856466686134046642918738738000387329140296789901958085628571998992042215897672424772478926612062821910250097681883965384078159827094636979319714905561157422321974727135894799176742179492566075230767820236221289572084869093605512935767440801185693914988032918559955809199439450257870852444630485992061209793293091397205369344705294157495424285861040029286775248083015409365384944099966038041001799109303521379066790711175739894869467589562956908273882354259453164741340781025836548353477262075217874016088186914073656025738117076735895889899403370602153971899316714023083894540360632294542947361453384942178351683255906440407733793299617476731627173341901110199870010480883146623544279444746480477615273747336889293568392306756638446800429233385066689698622265277436711406073603220889457994819614886598648113502835674705538754817169573682772970251445085044317077797071803432232740122252272338092429148553631076726890722455719803937645786299822878906398494787062698484622342069040137944827069708517113697674145244258484625727900769679476075135145191494740532521793068698431324996230103525523007786786464500755931654653099859064213810648077234287348680399497990869995165725458641577294862197494628647364884971732269070441143003226392812761059271709442138551685457435639275026662643765047739832364719818921375125749434561477171239976391662531910097435801171708242892345721637775069018207024321741967233410992170265948677906188477606170722930045160420740560324691851034639628385414046193591637020620022523568498680896005463465178234496624453908366133880984516974502436985861065065490108727851579265920739277112226735164746960246801539865599437964957865261610839577037139604227170920257217903058729589827045049973007774394716873178821766073761117772764597621196362277226704553628005075683943201697596535144849665640566798030264071065524926962473226147629869508986480782861992193582712404805779864930454053869090767009544787750511016513224328254083475563628932527169400490142458458302854183242307560761547458761155605816114188158697545805014018424368878175337779033377684857098263168614195412957074628316614977937517745615176994789272342618807554293399980322767816698636608191964655547213583533108753452731666555872718347176738053005101234953737885745535249529318477421226096368618252113943327599763903294012968073365552364692813301793939503199760359913747481589691837123362265479121406059872857169754716266676030319039670516616097842258381014424259241360895548095698903252266557868883614038688655634061712508162935588526634004362790057562601627746058754405472911694365836560781031552152122504797327606467355702136337321240358995702881110489729800948184534557878038489598882586146031049329440349381951103851736992756104762172724081675031974256619588768608440075721610209171940450544342760790962108784087551272192501331629016235888529234070988962275524628598087034887742353771973439191094354859982850365291045242553963824654542833915872010821756994891353014599573994292112621278230498497627685884447910349084476977039367934723861211270935946694731829292512980439707598397320465342620845422192839544216113761005922163700679229907633753120787758345552077179444382743269104034097587507715802451478281721010667544478622095042274006923669377294855375062035421093697552716663030179238678702772345578548194533188768324424557731389961367826228358042720247765229558593963224371025729689577479953019986388375168007359593050164382263134215331679101109773499732693840843665876393153170520093539919466247690890928497626802061695862978718381963794062192290917088508141811229962750152922715913242416198284417638752739853538561520580213411353693192880091299571540760308258370835282830049574202791425527862459530064025776374157525304602686575835302720314988236917552243798193533315843188900196826643568121677029827920678989704433942254022198153609299121292261703063850901239400985676195816870182312993310792133176693906085262240577513453741244559138875564439846958613733817962897598465709633116965724219736370296425457942225993557620994053229223409508193886231448610699193105914196047739531326402239681109701766398825536404426620607149910583733736704455710536254012970108772041525594279236204622906055943246332607402976076986625342860673807919795350631366901332808775710843577857331108126166581045719623273151725789026534071145351792581152719776813332886252815784632836019332124682201232489619018794867583794823139195738768215727319191413311920213186435657400459698308662411470061982198968664698431748859160952221186364196815701960572808388324690091256153240481529897999158247102896565923400282093997848689107321095681583664663801988669073111149407146161106833725489305027119761934300256782077248123707007791627675697062511079737412809084339131544835955351353679223323547426978140446422190044676959917753521075274116234331699602996212042915937358801304352481710349323403414988166630417908838049704163830184126590935641286444143966943011992852655651800530497479164424221021019709031631135579875681690613895438867916005066060350333069151615149610684144839537358291841409475984379518307275135243054146770623196853765920250290104076157554390173705020543668990000069348792943274502235410119881020574084612263419772881177046074813377980036537295999536299913858861297284694540951886486231404755819913007980950014115937069201317235589618315451338524230113210458958802898917213452595720841201341428634564453096332350041973367914265551625278923463652482007633566685182591319356567798896432532652323205619506511283784552391216025361210209805078443370322850622240970135028312229591888120207183413252250848688153790295528993428137076019256654537989077791428343049369477119419696693843360696668318812291097812759355621117037867236187231422976724617462456172263443587773907620882850326284296421879871706833977919901066949717476207908830427071461898070382071163012659908917284508034095528923294913888761682040916030534716786774755868383329766941404917598564107692162641195855129959922879322041045313344183046755703275236483646727452656302963508319257941211575370076153952087215004811445819046873817598790507652818595611563684438786906383407272001620752874660462378104977643359089227635095970253995867285637272380707485682994539578258327846642911679747114335406671021087629903219844203432683126325655610668183055339363092167601011169644192199098299700729115173281591829165464376073695009953989381329261928546601555666755789344830131338175242352030426777547488661515336447040567653282665799942379558337857600883249676050062892860940829875102731026138498332542560961965397852097725432992548075928460600396850076902634570250341220848835013331150069207904374128124681161956857911817403274311680249492451439051189342844921208466797522051943272476219601170804808463882157068619898623967019669156082321818582869680126402122754036306374299548640131981669098921367181235344426939622291991391807385119050361735845307578589140961085797048913693646842821123165422104519008450261222710806437264175723091181174147050493976358058081758750662609769362052976761350238262912030347008376550710562309044071286429992367057193836614465698593328173574610279407011023565120369464516234219582594107674681874094190607464607329383394394455585122651690662503447303133228031802000138854086505592556683170034113275854515911285919842421394866789760247758599441379639824344590943070589102821879393529676351040507266304730764067307800706292222496039839095412748855752614916151000499964401442626305867068535332088669377057870871199229610679347453289003335569890694159915059543896573177246809709928301780784762860365703916724987171393248191243427521238984304332705631347222222568628686248871360676810623388402994532190422318142410147784369541225909979678564698985640510373094259323425574079047735365155480193741190969214840255511239137089684447620004519204867831540732420584583228114277855699351911746616622083985977876208377993306890091423151884456983266314818268498432177125004970073737950462719715652917720013785092821381993078961759453730003449140887638824153729807941549302822856451811571157578748053382525674438043990277208843700012368141274486855044833886307237339752866815667517834534526905087151170879260308472442983237620232470558879161579689937401963134562699153959298109683445347376485861710569090196503837521160014773022284569383591547432904726985877619117708290440831111516385430796955959153979074003058997866422322219837794385147939111251014396883305472565794037211379757233616265157526107845521542936692870393275982189047941292159138322535742674884170969337635031572700520622236018360613780797624570352843979892221492636936365251877238290272939113812063584166680240460716888398888622976899579302617442656626349557771578167988759588484235019432685026012411015988078785777115012297396854578032105070837805879887920445473523900669624497538801210522791263695895840038013135687109256025979911875731933020785503343009113434028689218979984297521610265863765901810883813932942719105018793217582142815860185867643757732863937399335538172820562824711613925640131367717842121645187546710973044577587266822901668487456842076394813946077375762767723925415334545264063561025801882258753058543960585533047677754737531336663649008548825704367139298016544509454605428824724907657902546545454617231527381050967837115146669500951276158184646582285650292899681197606283319808004539419831849960492775797379863463366039291171673203530419905300697547541282411986817225846516288708082977975240793626822652515738637566822205256282829043658079640618248312191352148913441616109372188643573872380749617613159045170585918063665275637292946339678819837812310186367544750093200261568563638759492437537566634817525273641015439089036708215250898830854254954350319955911780615479215681856225772851405581680903068820330137111563774755083317338198331549259446843028740855631443213438110401622607423327989668027342035023682338568993161387028119708835835980017939235551579544731975784374705433095945626142659575208022909609277330379141799663292915701893407584976779756189511564645778758984130979125223535819719802772284470741242263653733404505751169712695932068033032029806896315504155193517585812582491603149189421810889611023797102991029245429119818908358922542955864937258292136790604346844344591684100975140880135129798869606666127051610060173974271104493562512749407413108977942692767297857522449539085848394370664655951171558828700864157339187454219313194615522809819495243415612198864783917388534572575523129273694530530323751555222034688664597551131143167673279603986689270022441080640381394458363065620585370479385632444269060851199909334447629522857955047787264980738260598368447974254173180470914990790191597757479981972964610813463282026061974966212208676287064012849171104868764608179473378961428799622783991341437328277121367473443853399776064899647583115512720460231855668596405038451919730430563067214504870651333206941947169997603480433758859432954720984622373413146449393662196430537354659089262819702335678182313818714782432387142963234340139838181202996053958618946138375905128765064095541671962843879360061726791307995291987197995834616621000131848725063748988712012397352675961931752905492868977823436132540700850255676813929526929616239770582650997395524328011581368349882087499639533044772300614247728821998575035735411402205050490780532817411635606459413430943689577319105997904845789414931837586751750113904821774121165984137269360221083184150745899744222811195446415502529647418764646590402504771593654364997443498950582548012906806604600693222854636730189677965812548498132587508818449558257455587888933446677247620143403212576584042773866448651677250714091263659121534866129054988173673163027660575778976522097249020721545294691300283591631586343575648487567838288550051263138396723470209560252384236984151940865728121397108514905198475022357789733728546671221993298975420769012534492133090874928295144356819613382978385835971834431002372112948066850348477863181406303551822029771974563232209671587975470119479842498454936880805832765892252110018137888656034766167460378836138341830601185615302416025043447947055428445470462800339406484799716005026779238264985953506713091529636450056967692767589133999658785881301515203357116279824767810260487875236882766426004707274970676108495402009798832375707493480538131162283822574142798876954088438517043869835696542590136121515323488346249170029792988269167327053822684111819209473593069179197430637877272703562818412987903344133508690906720928516787602325782625325584847426178287969224168095301921381794855294343059964182905283030135198868391852797226308494534583182897899879002343836233591765757362135673444406213600503992740154855070750207970436185464372440832274574773402008018522279045885045507722296910770986542282595701083944978528808275468390874038051127991018156511297736885201977656854293773314016861293190125970256705061141383634577322720727551558399846948457035569785236021300112654381468502700815919360387088119078940462194651972727328907287862404965988033173132338655554422219670967543216370476566347147177359925317619691467180001350134978299483571304697858793646333365813340672088428270399262297668100035246953985415634578307252396071853640596223956469630748240315554307595224585221641091154716545756288329077947529323067111582467011700099448730759099806947265096919738449217242614971601518219869588754019596960527060385030188329524238271518312993716340986231282856444644769232052195827387182469819661693159891908888920663540922384153025737873143134089548016237158461683389976972923557454001754202549499076837876532560979755382728099828712924510609742648649008724472567907293632693024525277953374945847304403102836155742790640375924851854700794134462959405180847585941530792677869316695665814990902045557943644486310877509839352267903143319840930786010441767125159564291955458715309399474039609502843023724973004454971265362032407234356525299371708125533892328224577349196406930747646147572168550489631205114233698398119573969541978020158391122053512071989612213374670345080286478808056539361115683673000965434881726581221014230767834693246362194584470961223480379130462940936848317246345012193611886610514088247152322512888052390301944594718173181739687796688259978980644352817629385070786408458897290611387170361285719599164597444614537085486234040710352928514498550905562430328463156025679319060402722912324361888457323304593052329802975003144621026846727486875934283567534803677951417812193965271901071693475658904112505684004078275679192025167905908029365971100701893281909532081033987997864627263649758899082902799865841002372462008943778850920989603152799980281788975225695230876046764553634177363158747058962421734821145107103372944070428673608784262861883579705187724663760778589802287256188075622585102213439814108418495265338319595674790025644853814587075902509109975385179162360125901405458176508618541274336569486219601526912360652421140983170419482891251041462196036168712916878494332172237539695893756997295284231186719789533671294433387119030685472853381103015795662399798216072219744108913081022910747767303856231824924578104127246226247690995452417076253514753839235544373178344887590709902209637922121087262102976519379365015322384305297051873685056189500113986588282833687796375856831329686383645682668955257594053022654788240537655650702277268344022747381934308979931150221779254101158595795427107861645827139901369230284229033013127281319945481889384054352463767468165230088845406244297024441634723097916668935969407915697372852871504000149137063398722653604323474474009181147091164996095982094283396322197552849223307570142238639150047550932343124393976454259541702360977382868442492662096916959336425251755928306767897110234470487382014659491825988951729746979220329641369172121172322755548633566415136898207674044483262350989342958519567905493105198330422774707467455952014453087275581685413255309013146117099366704537344460217381519590309272405037004358611382156844255693465025369060629010125698621488795518699250169986073755296395931156941712912607504872198108160545112560903096412999926853849336429484238592115470264149456010220636686853659602197376760758820138071107018788274972492827626625582842803792952446956333807018300132813335033339268100533989578540331441092545416929374629822903634857388373485548073426057673638631516482989480302034545990241807364198894133009506888648297714149731868706083760997562940825165011379690178040202983347580113075509728957654458849735436631866119022829871135456015724117725196650884975672936341832726620683267184628942555770939822565802308324165231232570438384233600808384989124010937749321544756380026943015302074997032982439069837958273922080245449885682160973699729444991584897652411963566795693416512957882479735824965790329737803810019116868216493604656029894069166842857183749559450887046222979090745192564199076911606018695974099008854445325667608973988915087476040292846791299151452381294713206127333804647370319713233423303644920443629552270587818933531054066554816871047541271206514876776478144057917603108237481681416226811124236628745041561681084597078939512123676045199780990341173038888476091305641154944303753341777337230689607602163445025752507874549941096234687453511276834701850695933143106713865833340672045047513079152599669097595715719817735779882729710993782087567422272004472852512999204816722150396157198352400086905112575944474724593086242852149256071785043760180373509000396662083314629023014453099853066997091895139049574753105681813223651674342169124150451663508205171971044533945653780285239625231983811723562562734960145075235869903913626531637580591153903079939571787533450963503909990286425525637676708967756489715581377598736189761791203436393472068740008275871981237284105070398447164540994322156321882475608405823676258097370964247532450073899570811205597960255801414229034654438661981677571813241240812275611032372184938784181481052246030709319123916562968613394782095461786068611941324751484919546200962422766653440854651236212223232052809928628415502204527037724398159136223010526033738569689341792897287923980378033189232137034022263891498897679372269170306716459846066428410426845151183016436303361652782071371655640198865562444438539183567807309042889668281723071455611985007474719649959815857290281270053930429650667552101348632838537224052269915246527586600502412722227476392650250386874815878579664517703243882659126247356229676824087928282924721810017090845760804266578606299857150110463999594295984571915873670506073077891757939290105586766541854141390185720745367507278248964112364354581001364826254342973793417634454885467895382310270904496668493973380617368727884638771017669968734206534103129826555134244917449643987623355510395384541648231793721197734210455080794861284511067352755111944030495032299507097773641026059766324302604765202801530190235281832031439219278967657748185210115630840718181774100545193638013919435002831323389652370096193096991069746115722588069446188792032059591704666329282136333308431625329598977397266703339511749845474999649153412611359276170529363726950480938428437068384798086773775392623979609091901275151076579269503365699462888066583978733544951402947626974686301248123414391132690451921400678748445846587475806824531652811252960096055114573308978013964516069879643788594315174922560699424408003845207998272185237311489229735252215972961526523419452262994104842667944375876400802446224433904206614334842418498288019200765214971039294869785631616656850122791094052836899776063406334912060324390142175098136653139793694747799488596722635386879120060399456493363034942757982914932952842542869272224272566368472804789892025686828636558596731662602706229503193112237986135362219088580047138397868232265550009525036552610307616062222399477279395196248343484746664117675215091609993642235475737562024243437571376046174747882445329445174880280234440068449187742547233798580456103762026344336191307153068621896442415856170570335854952760957954179670612427202131600465992641910571227664607766980891888622669478563048315633830181507903083154584362002155416338160918260748864547484302527001234639105617860958026693605772419733503487131198292486356193225779361341627339968922526888857778160125697323972979245033393381598765076954173688967351749592391471079264884088914339256213817465986846076874262223901644024772177529599429188950112856405000876925278253767781254244366150870654590455271125076663185774855609682525177126651574260626754830181433717107677889969985642368192281270391304297328218613241874426114739657415740013589185179359136412310155851740036039514770670569744219241868162548621902715792372155753917994731595915759019154469508520263422747427170573176368889046793362902157281584645273947164291516866777102466859023683913188961385808681429575474382795351144635157663454109594304084938277330923464665692760844122394802889774050231022204337222458168219162804669195881517769417706022121909939322076408507245285001618066570508327248572071103480674313040284353301600303124801590818720158624972918042209241917957377708712701883734084618245034045246119219313214414483917494499045103863390347046590750840686103188383673666855633010900829798077365982531117812444512426833771741114684846937297950117728236742487915494866384582967998756548898873274478214577345614118679833187234441654750953621485494707558648114165848011819046771764615394624579491532574444101416895064934767564019289356766781737234842694941751003106792230779495334794325160567863077824057399702785506284298561036112374716985725966547901150748627914649164351474527817482425393928809522354588300903768445473050231760517663141840396025853363471683172813842654448252392038934654668908581534249657579770793858408690753778008620166399558749046494584572023330187329989933334965648384547834719714536130250643649175431268883185268931272072415994851214839184995239740320698666816623031854175269248442026598873294420377867725112461276439162690070842313639440090474929251371710944765708173744528011294817230472483299506753429739721557415674960152507132827054609900596224672582573725893688275376180768496030096298012101802693551547200883753580741150156427574936215819688097954384548194870810703316935305236514413999747176949133298581155391989145826477652316750856336375221195559925440040261832270617720610993731166670670925059746290721006913173572845676457925857553644027309177115365516705996414171973563052608324190531818427878098480145283562126177949748191978340223522268365739699988554354855788400377591632457127896677946551220752704892831288337020150311437030239087084473739070787815320957306853221173287608937592472746348372851214203837839343257491089662980024685451466802409415734419598591094174781482061927866094389798555530833633893522576083080656350070914194467890324587928437094743786877913261409135718791375848430258170896788400560273166677772754483393642118993934052409321976523787741579766862678640677217796255886334502341138514665356456249974129469307055145132034413195740618167466024521610501406260335288058869314311974692884899157751537783427487198820326056230215404852331240138760694534603728064338162953238650602649321293857338587832514612848299379505843812775169534343150834799557363877121445465104187056960379016474558239828997993296121051247055858603960970935565801474862938775479857156148354993172493702203842080643579334275803541365485504213477635996828884895440524289728030596975753544425398766067584622419989881050223920256918387938726534264107403543230228508635137121100309184290861930458427502574459332906444241698522759323461983610924290309789398298454197145428475570276291635113682973336028110434377079614053022222620560138414788107146993217314577499285982292416115350203542374585859351233518338666229408146857761185832176375366525643660753229044537152493566124083092139536708468096700819234471528832577508361662388109151897667420771402174555832326900356542821828700187920703900848753207313278123043933339635395684931656711782541183620447545517984162374510533661743388147698843297551521550357066190770588173937547356874319567065936643203426837330157484748045457441736123476995401030565269460657716236149342185414585444695412618364011200768808835720178212625803147495918709151845116900908369563873936196472651449106710929807768840919866232255210068394665146144782228670572583038192949629710380836728985856127474752908724554530802923430462711132862827761854840149546141254464650722672792760733972009758131366006124090777841602612026948946471506769062011170740978866832632396212492378405728537087502882653200121704857218534305336816729779404054826226540566007219157420988338834255488337218240724706035483074237529008134672741514570943608995846230099478774605222520223327241141974717852149500177130398710860084101089024090106197099068434888310500865798870214887499987190696118747541611723248739898482484724473417435886645190532845104370699799723407511199614206288740522451941664213967845930937859145110201371730354014909027685996229853679627129388963073328572097683764244264342776656864816818829401485253911353733285945235080936206510264826821081402928421285483600151673012487803625523099903058645394460021780729619871650773406428444236976192491551866940664740471271988331233760405667582305483708682244901742492599197922121733978289069372075502943637498364238970017741583539286526445710005358537262568939564356915244594109555825370210829171247743235438513544635823956706358399183270347967647575107386817552349583044943667610271897713804174074765099855786629033815978373158528981394105355539238678678076490304305567130107032557846081228429965679546024923494184790417116656506716163965162028058712908665851885846074974020744741636566473382201552076131691306915275393511021577237730022394070070397630500741982908899835172471571398500741719988479801954758166321346767380517840552611065545917843410904773463848553653082204134061786045825201705279613085169568349070241694918609918779467770193445749818562069921923910605246805562449900863038420786755669921448549637938744862303182862704678045329419206502917355331465592159401839789314310828655329314986699330950801140221531695998243072553989931046889337023968214465922719643779417530287447005809051034564402465577466573962306101319112878251924667692313777188379967213334716224766510627054338846753191938735717125901437447918907971410409450755003367712182305277437183015053002319840156428350765582925570597650053206667771969729217730028950795914832879760606325261244941181175061600220121110047787536259350840634067321901326088656073581446152972426619980657441289576243593381166488555584104235170741840961215750517429568521263420265944516390012680835617192231187919404670293129925227285165614454573051617484590910465248239616448160178413451878992606648477802165174462446173823535453488403840334914742689713751098372755935662922090745201915661304543401937571433349650337189954178398134783623600539005456575038891518198834026903418238751432168432610351685752819150347531207926914482440256897444708809360001568311304121340649648583185611276073011347545675025703708582609576580834677621404379218576888423672371732937121827690857717053707853472739129311927999389452145045977633957973712109221936141242403022148486018660582437122409550887328797754333798756866050581512844570385481426406024298034562404694817033153584015048497408431322469207859839416891547305817791702464396040512450789488438791609207489765987430536245765704500956161648410789688621164048431555119475486566759954399528479120077654582439718780534659967496883957483598095635535368138251577821503351738930488346886829152298534219306759080868914477570870003686480640068842622169234868090944338717347213321785542208258676421699456907944022896122781608911286161602131799798454769309758745622798659218293169554116454778327543651191036451195844345185529996467851766510206068954745497330522062060135030911843919709074581194123731320591292250017485057411911742950843634601867770901162614525644926572379446275534713231286676013117363677649114131506252306738659760809515139422970856095196939231809724595909041850706631391294635654863510170977072834038828435022598444169278678826038402180928918987968704296158417198983695153033447945883480568412364587032259951537511707236977148925393393036040251429602445043797859263119147288067867752948482514253095348000173740580941331824304013915632272020743127876497225473035452078042766870336639305466176731253968040902092702550626302703614263295663326084649889809792104724689446126926529851204517718933739749691055755876404715949714139272915901398024009570855584106359386184489912847642103956787803384084830678271745620046522954996313820909323737409514639796429469751453590645785119870182779202163712445393448952626527702564193541889383380789094916240980171023364296791108990173021423155876875371831095893347993920054329152527650489742720191880238615884857290795921467942318001790077630481235981775270930376728005664891251879222787314517179407921766216765564238775320784111267641721841335993893722238467481527757754581208643767849781172343639314643513121668468662252501141875931116977777810934270052069336758989933954742750699081932335251135100136655012762120173572332599200017962398752265560282649125679670723492731697337686524284487267225814761030240348994218095242986299232370704022900367698993772791792988339992202298382156131004470814889095821027090037374084607572455741565790937397437839356177880901032959050864911003363138743114575257636658923528074351326280936993291921953051289698794356528444895040531650885548516452328994712676935688310583827968544311112393319140728753764322985541903919846398032471046179161290952331226028906055777144938596303041418964592417677194015510558644002913049435823673816732098157201034945640702522693981508234604230894356344102617622140207575911384787321736283911583503598983046207462206717292224016814048491766898468133914710138740022849325634501179829044940151474039844605431643881290587929091755559928978006427049212929132536281939569687166824681729287133850039274849076100712899833294544881583800339161398509311541783695292534795975309730618953785805007739324066883190728052172389647281772314580185138338450698699017988033462411346918094402745576528617406095321492859642603219972535620979742825873657396005425052271234811510726030300834356454579426669836522011322029534107097398074222655817658602392634977577831471144166150271689881351648315512995868450574843009258839777790904064012598484121769039418468117592226442630275985667330578075029208955795861687933315348706346923685277581406836877736491039624415114759890994061720400811242537100966921050574379840306612918521320363018443445706048172293862707683710228001451692288812002219521817312208615770918958658605256013367013004782545472696961394787831052867416707403258395879062846951798025896337331889755115873468462709970387159883875406145145240229656407566490971720336658956961478542449097392069191355947020085479101496427990041467466350606699212578278803945784157296413532408293143030546286905462912664648425908993808900392514173629991656577734263409570710949754875884662299459149774519268563314428674100400998537443661552629196624729768076811006855601601777813395449514982271106643214296731751000086561814331488561966308061191839189119004014324009693591759396249013644852947063101725336492003209616653068235043216731996088423023272693945368906075077522960143006313843080793986932884596503894673119010456912436591393511013258877251910508940677338008797949913622406535558173284394638245793284421030510663548578637252884091942033927136117725287319943161729426828344225011865152434540966544215159375488072934641913154634787469070988621096874579134664861660105752250433532028062040241142092445891710853888750728262491487360249194696089564455601345696330636186703305660072270442177001608872588973207901154244901288319541281930361633265666544698049621346267348363360395010964749702853099909990722881037100273646259876880271899309243747879752712046163843956522314567923040466356221432146736174876909738744662798216502470691118904232634857683071937502286859902358152498964359090676371162680457451852978930945221289898656988906281988800575934545538748987487512213168503475203514854098061691866790088186433710571545273923278897129787377803849281048664200908948792431013792923089493868589448661582380913473776865689634968959237511154471626580796132003700046712943825812884270655298462946060803860732029409564567859455659233199420441461687255349025141323594771430717224695809640122062088999562148425536320316667619095471796829435421772088102256999392864556847622987522352146585424984194974760614454130669778669264844952366849385875805913853999510574001790177326938620089823316816535595662009555946673735240385153675729236655176962309896383420739238730448481984199474108726390839823378246583589199665248568002179880373185109863851923033883666899766303325656599614069082585085883663232767891741695660446455602485616656937370434798160780878191317168930806318691375216467187161515177923575381219070632732955354851178572243819065831243201396391148691706748770045224759342139644190245628046616493137771058551877662028525246797634959572585810840569324571457942997236160151168942928727435020551268927406773236260298550967456879430887940334949068956757728774248108923371997097353790524969979804340421977411606471268157706214660113728440205584150174562392763888741671164317359858149518000999007029523065764067548959851254088946242546144432207367816325554379867662407766979137997502927606494848641310465311200057735887295850743748339413366110506637510529892568042942771051308588188385770096602356937810129359495802898041662448763709985339169228531840729069888127432651291067513474243222510809700987468869724752460014159740503727336788840511122172925988624912773920345500450670298289087720317521814732440546300985383246319340079758896237351560633311914365268271584679319920414257046984284930673073972404198162943900539326927869232833717639802565203325358155281525739032195712933118584705652186282781114284746998862344422821097662231330038541199971131093280601337589632077132151074006692854044747185771734033149290558932338832063582257860580697790856731107977780547120508624479045312818986890246766344245870851306449850477235335717560975378269000828669347770172913344290407947383149608511306909585930866106592173421702832508009253927688770699523435901698592516531312266957092517519669906642367451861396292502113418616611871060891214292278321975202274104538869542839285721922514916540349884058790820188935876794203451959313179770217854137976235048519627283248016882498259396518694780923476289126629311447891639301146238499885986693601169502577397181339150297581212515199077641199601211874045333351638309893098681877566145139093179962498189492279086451060072379669829004527366279142796061102132003772966803082695677286913475628473338782513696263463134811771005589415308486331548293423995738644609674507606427303454591974430789016561048862597463462216933893066679064308750359680736137098503572021496227257492743215594652192472008750031545876620133316589904401963316875430061695095206985294408888308919411712299667433983158762350112535506971437603521247625768405953374104876384412887951179587318472915049587003215246722369558054109134107384676597395843925012298816933685098546373945684199030700609831354765718229351053991590493713522661244096846270800285859922429625485831722107703251815645085734479045891540833437189994522175503595813307293330367557959954134005019775521915336691060001486899484912136685899513304855585962101067826399651433905060581609758399760009610045507432775528142887969883380533915328144594778830938807503270428208594017542909398361981659161501187866184689654886963299787216333051390194081101025988743428263568963804968720269035668717233458308117225880238301680054828200656209001355375301457784174470009716565073551269380403500130922301459316916276944227933845293239945241054322864491008648739731975837295542827265420817715633086598577121165204961337934762423067657638066709856697112359855223144658079045292943507278086440360508413307501430453429362353282893205147968157960716655190964924424521138984714256684553864625584284191391494680896834506807519637140158142294980413315255568309227818392386654357924213488502425497791556701868758546136170712926353730967323854863545347938897043176034008110696264863207175217922481325828631758618426473631559404533534350982464525962689670405098826029768282870343232186294485042298245029670226761337357432277651840165787181603461441943263653036022164914044959589365793722667179837246518436119042014458262410896850448418923432992748082753149773068046674206633874499510698690748540365850563631438331942424205985045281296410837954155279668678936905719224747583556726953226000893005172562432195398188581855819583956473074231909056352330596531723983322359852621873721948004298362355065703323736550833505527164510228944960986779314765444510883086617224666106579867620738295960633955157130091229362695188951666749338209135818277385260111669597099994631132584427306662494105435201034018885976162761456247753780088354248809198696491630448930308938786463600935900349526748623682859857048728157140242070459693459793338095113372716279684676380518395326749228356372643392693206935768570057705686581154741124397658337352045651803350225890239359399377412374617069238100099339320706778687722734703375368420838537575401614780978374501378934386553242088831732478685111748428489903469393047425428238814055312650785805821618234294007200024152390036874389638583853411770022906989867862703043430642278743244086266297910975011849502515106128384329478470273462900223920501396088787614841237986991484149947213525949632401679770307895274759913724010613982614287825479368100172576464775985994129012191890522016323145451293711291030454631563930781014271498563419520073825838053844135267404148217126976887830752706156108936250552227886619385960583403070701396953580821045542569664617210325811995761764185408475323541110669568904448896659265314201878283992899836238664212199827773437918471747586733405700354711654947682480649250441279924159709276720694583621934041949455903946586531544586837374652723864547842365257166784474884308636410226241729304179404651970440581632232845479575242046093309041817625854176090415130211042139462108731746211165540072483514880799813217595225731515030415741217439391044185089502372297322966290145305655669723375290347411283771310515160085358482620367084250247877086627106231029499039487844672866185510861065663174394876219582551950133466382593245337948734194267162006365531635712988716379190887022277457748871563210473136704185334705713507927104245350149966552255934700972266915993627034956444269080749921786010694284881072572898278869949813874446892322128992487923626205671601512356568633471921745074988332899128261255382883316604216959376270812568371024733189982200751018852714024819477453304456905938805650551922105799732511716124163139500320437014869647985653842994011811653878941335148305874276754353668318362256132667066171719198776076141951487350633901170855977872237725992610847057039450884086522772979104093082377281211815078260391494928044074317319288141044790961332521881832431050241593106198237926362044761470065131819138770491528554526573717780527334387440298989273413657306750407786346682900147817327210699890128564778409904873299522207556044300876950347323345079631738143504295485602285967253167914725550315172074217943573781734075268920909013005532719481929068391737309757356544236767181668118696619158182240734840358452595216688066663351073676791886130577150095326559082600170955364845515814466197754017723436249835619662484097558016991658201686307793207388191008969837959355749945699162578008529195885364893213699324401431095731276940520482649863330057413360844503651198639445851569475753002629851165768525780564101143362118557458091216380482658643499229905760435207700767477465223797655866441077373639640509226900691437529858360222367496373730437289066931495497777645030323729562900738462267583184300399643061357475546088073464694291847612717496322784529373905515809245303938318477301519780430884629603776785864286524607527606836790087661633871679823207358050624573439999089926937822744738002636440741314824262378238348481409781884021040364058724328920258759114744447170208518579729401496270480262586335600493454862856145687880879476796884857321874396296462201039916366013672077505737852102692779832821793031801944773888054090099878324738490154555955602890896063175520117814942306819881780292609273882816262364660256482990940065839569643867881458902661630193879750039864576840176591059601935119642221409108412744025630274785416126201648628945113951938360070745151114553221982704433574315251149702270129991789521135917119399505176717211069086421881436636774217437066179031705933970492168559357163020568010436261534468927680689411548833802438590651587786371294370987858589279969142291662715104350185208742152944651410749089516774304231169711778007794194052138206001987259993932044192077736146771477798757986468714453409931192440898699770928365601896156565762778900686421468141052090792069864719651909949018866169984997747323581279184881389713112950961707111071982730657601758922955366627623693153439408840892099218424652915156993648834378864151717606136666808190511890367550406178860335928042597133011678360815177416876459801922022499849793398094689834254788331055974237783469826965573865686892923990626838666310429848783603144768368324626268284289544658485926225550182245733252930234488179332500511146799025075904847973989478385952661726827934391411732231475063612681230287623743648860732385439957763041540703294297421706981950908727323170637646122739953419472844471556142920256178333349655367836575985834073396686038705087266073791347784811142982810210132732699793919785212947723776179729197355927885843210969069322104038418764692585587381012390088472069477405989187221650581689076730682249054514626244704165986066426120118094758509694924092609112884889728231762598854709599627562459365042082188544280250730083377082881762779669581538241674507989485220954816988543947213595916919869154775174524687643241607004211872348813247194891476914056834081424341186823812537422492557584550505736685052745897860957820542626746960473196635737961288552671379701179004617002696021305457137983678901810482887927752443885166008024414228065739255926774881661419142042000733108329611994302878319830548263194009520554590280070624871790510283606939976206019311799983685253095941278643352775602375136753820776725008240771155097012385120906534054033236891602793764449264999631781041881168350913121493564233936906907754387868023443428205307918116556451341628713953121707857836893077492815567888560335643654875189383766245173509696072191245988673717486339925187397378647048136838049723098533172065154466389916592862856244970856170621986732962100468692462074618274684928730157204070427951523599622679258438798153969463321019637745045948522699339767063531009782629738828941980199095669621594053955983186217890585061400214879427833501974824648368321442721139164224461323869226807622667286103708359482869062943860208777679395409954269943097347042871370415641921884894737103499984057062707894944759766059739899403234218985135029442474676170829630310958308110396003855154016865367708288126556735689691142982145695359199289762829104628867795850250459707629294586173305823479294327183510698062788446570830101417393127147531997986517714046714765410797094375783121561508422931038456798947943461106272303544391772289932859297956835750317139165627426413277545010474396096375633055130502781061976052494855186085559186864681879556878095537215866564715422501455452794207788849763978504766232103341064427397094393102251927013252196573154646645188753202020875984659207548171500150206768973044188742574771538482446379046040285250958872393492878884845755551842069938112325079833496177608030122540006391051286654932672056573796639539355096313664813286740460493774304023274763546832498946017536805478776008949701246703118493913751993981749731793579935523194223175279265342321037451716692530762165030716917093972452904501242294759518653222499901457776825927173922420567715290106665763318080021372991672614172398807327022677707546885620587447624712795552559456377341884901280332553863155465724999799954468237084452032648325860867303597427069233976394521986381234844853391759235484389139497262414715898023767335927956323441490657160168126815289080237576819111919604917791023810935897577458824537942737136527716557828275904780381798570256682100397171919317102302286275965670487024021402409134330672331825089095874800388548779322011926426212009367763486856305687630323636936291241144356739213863410227858686402684761723160651542048423098476815236234330300070617236843525242763726947661535718483865209317754631151769159311568910481841782787245681324076498585357761858162229195391911580462761042211621454185875900262123718269551160097068309629206314806215684094141794400778432754926614127802368519200120618529747088055061660730340275223736109891723158664152779086367372884179570813905883306742862807126378093467104810069057202894706546642245855999926987533875535270838994662456563247166086005835077219311517559302828636256857560154672493963053179379502040235721553992716943140419082608024525677191782968244946035336671655133794507898762590692099386697192076088874579471641032881351125812438462745552720561125959925243957362826533628784226162121535983015334951794740600842016076195037920480011605114755107093824064872653238160766071348435198906020224208889133606821585583630585135782380102931672913458660393008976553091487333892743978114098100148206783392303086818144586361873709886860313281835644993557713741454801888466965765752363271707971181412945193173222253908311495027828162324493185101716441642494731953404996501159082792587198012593262304539822371412238253975887498505417540299711733009090770151150945447205692963827879467983400847275372889209201248362690890105673169634436215443919288068827798053994864817066065564281540038805685798323956207581073395955361933629391863079320609491826262043841066087461695600627746369895947022636637768894626342549482229209075432196825867455952941604955429171981333755099063304159115901840601065076207231029804587862376143024503849058087049651515647227057989288902811104208193459036489147448111144641957608879679171802155857458782877258921142600036232513531715927048376511620943316823145098774422233227494714105008850905102604401291259662637254256614877610736721976332496391418178336770060082475960786321168652964963602823597170126794086185426864086548889886880733187307998079349827381297195999721860452468508976499550909633621213682589346167104757996112346054058792239770352283885672184665826199420238232656336687218180357839925781757871083548631892734673927310094946360807063473410963385371906964716584077600866345454656235175493772089437708907425322649057983834301254260658386091725079480564613673195364601173882870233031721683030360034345980628869702646122625893874694950308980644722850595967127155877752662298954026414357831849574389021618235683438365589268637595273598927333442268959794476337579353952200376126232689337886154381998965739146745847553787765627941749318685036389068289162732032490483006890601099989267025274920716173267899836479239283009514645123990139444014513914143606502817196498622390828753486048872521408358497484674164540800045141107191115473755893516566775996590219931986004845516349727192725005398242450438807655524031249209584722578595251783176479978289681454785189064245182513346259681214279357363358292112401077086084252127129302467843427032476967068818982753484560557757584665600945896310856394329343567479221584066326992361494984594129619018697509471361890114435798832532325280311283890847372414088397063511220713004207819897315387572717103768745060808981081140495490790123315575930298836113324668897424366330945913986291396481026426112037048156013904550919169545543901514295233007688772727801338420125225948440806483985983194033559319718410488118848113986101055932723164552309331967779317683627086185608958311358126708043895693527645536031598888794709433705615766868066256271162473245902793594621189777611463569746585267479948245171794763765221600903706413619892350666935966240842862885454126467251088491526400739378496683438042192983092833110899582471432934247681233273104971368875859740259051893655395716100529668970496568625384387544948412624618178243866773894561808031064144652060164686024254067276510858295068996181871313924041207198169275967576121242010212914438352611132334831400585173468159884506791852787318584498755461081243902140841967938969203476137117606589415920489348147101081911638200466177991830002209340623982333419934675510118270506512207268300622932204501861891064636380217711522473539226637639969002084178182522145184752702079296216588283719688892308412047133176593052408605900185617615812504996177399223037133542502610530126518370428124102022404788971147537438598369203773415966027714531295393998511477791223463209138921337053739821827675729615702633137739034143760926349277438396282232790957808971809224671863317886338250418143440104651532061136295178294822098039244093298009219661200513428361199941681682698584017310036807051835515827209355560939333140102717601560326276000675661479560543887987245510556177875081250873304600082226639315879379286994749446094559752904589223888928889382944800886823245208977835551436021523066314216082354299651241582577665222425935143526556080191209346100330287532652918255148758619549561094080654921192496651826324422906227120789809311211942086769816644139185326192278419989904995530333839008906011961384501613024616468464342080554203189955564750568133328811866460777582016906558605895767812448232922639381417281483068342132630768571843318821906828428468751138097949601395809113371684649480487024322187102892499455505454052903977978898042547927325453621679908245452528011520380810906955232852887258286869348826146133308237994179903824690974367100302659907441674377502612278969241033941296235237992247277097853800621356015762907071084606111428292717633880668129682482566038531535652676906133385135259001048469014170499685508280517465165485023131079349120807415310676929477308192948585452037312647170538687361138399746470141304671436439328080164210916248788406469246449851731527492214479658286267766648113873854645365669165553131960858898148626522071437222561578253265574476238300104622192291876399369246750384057698307234948937375057689502283139604961092857103414146558220111756048321232993598369458874225647056937065461128577350023345966940510461169304221660537717745109535163177548689342925211096567714387241250018881794516087839804636349325710079593992507822393501223760148495655066562452789448750493866966402598939086203759980242375623382801031146675002488818544318361589128890163614139893177579882217054842208348135356000998773573575036767542511401126691786159538268787122856476247744903459688781683743039040332227171015882066089873021177285666946553164392408934300595407575381510992944942705116198263694838004168260937046393917471980512128578531841258344768451454182464223297235527487149874321277992838925672278151541055039659385424508159900826874253528716055102989127649009490691688260611112097001026533471959457713329703784352144094249289292894528798160927375122699667838361043451029007854480178565403796670934279410554541902937696895601591871200097763383259404499321955127924229133603167830634532634873206934793429734551231769948372633696742248933924802495114170360192737413811407148248514243917274628853518477283251019558148646979900507925959598090695658294415824471048594353835774370324785361945350951861580599450497571602284097155844785342682115769614463123456456145814037865999893672416413474982950457493603466357969961388950884613300584611993410292283108324247222453067661101301795226406741202763017216260661192451133941718089518937803095028032025059338435276571977532793456159579153460694759661054225417153791058660460632331524731304691767256929034450895208987728036180916571056205726703151968416407953757392484301125461818468800368256107635396207922734448725076979995645718587487423936800548830763203338178305168026309957522544597588193962905430857064352387893609255540880752986188031909267170871262677813176036076937362845414659915010033146663047148203193383635003655088587210045812509349503212636964085990649659296135202435409805509509086547651516307800178735607853174726778580237884363542170990171630927528060099786552936940207921849220696404971733241179135398510480279215394504815750333083029632390751865534901198647519136128261475338851456113947170789052849668881802183589726167340392086779852020618585891347599992248100426845946694660409487204250651487648724926229945022123641985954195504739054553561668968104019829873970635951362924399901576533813923831152548053219933883705954787756414198094094849275320659084131095305628603714447510436142015016058329896753944710900992790736592001422472216523559608775533610475767912125607763950994731583468441040645941272231628534502663738786724782898699729156902170968134274631352423958214219625941777406464332032823142247043971141617135279938200331912894772018379576090919927638290984265520938121520493875885842008684017739460160500827725550864542801418838700406022341893940890004386809708572456355659860809472668727494542660229613972045482260831684137369367998319536529156919323583862430511946944973592502060822439405606174289102834263518452167831040593843304072521331995059931205310622654024847750060021928158192602951503710598381138669425582345999166250759694486777653088715744547934910386587263581885409623572689995645466609994718591805868945072503426904253209301604980760743551643944474356437563505728572530389028610142947060499575304036704856947926172645566228178307509645583889887629700888781993384393274137445856645178131534354342539530760001461829257484985485108591904503668709964599599747119229158050433445137272781179351722098919942104501855641549632649292909658448747373955638041907184317831304537020280266353184013404215730533598333524084289657236298300840569571423711208037012015829233069271283636120960508885038587271401564454193728711451531366642334163527072320011109938148545824757553310179853735868253799912703665516629525672080301096176815221225150168255068834243237664658937124744780042667613734465750777216932976668920349646822985182035910474042007710492861478187561835417373314972904311101016097543638810979580565201361029076815260445398874092865543927392156093637195416464400751576332663316531555082307781539087948187366052441970649774279298280850927956930919568550998675218206811176756163129526681746431889069705852087822494180276253698182661001073739286677509470083147985823851303939215862270824290024011285626512992078093811027575516268924601061673513414784113615426103174128925422537921827660937155191459385628910923174080942373026409193776257506090090488454926193962156560412079985212608320228859595900112328968434248649681834966155050154686722530624003446280655988509556298922682766549373693217787766171127799573984601533883541907785659070023304312894321693004736729126624300040635194139922423508208425859922807489277385195441389468247193878070687239759571188031375428709258017213757673100961730254627206607433910670101898416113895731636464404005399852854319343313902491247448040801476619829707189004241559825225867735073594547176038964994419340065160460776977745920396296662760927878936211546635459114765641499834060999000414177076433029731396757611302933668960595281962173923424832402802526784248981536877661703531770884118633517459264336380495453830862179179012813293306498170899570131608437446615940851038108589368456044667141915863412165153361984609850306942913158299839579771198130412555595373427460458024251437698155796913492843541431168210103469875165958985521920178875555987676065393104675206854075478900699978411433739278403254994021545101729920740514387902315596618620367360599739385293667477872482047930226866810674298344111403095641758749222302856715670479402977941570898114466621789269449435340116433861347854585276856511637442199968358787321360979569565392396556185671270334944854728466391673364793527086799164149334478805894872929744729089082541735369264723860467002951786174798857740258618070147295894750462516498475890736154207167039615856191347302119903965960807182283690321817267313118908397859161981483782046816515591603264607323476812659504791978362969058892525698551977383280724957244667672685520501600030839552144989968482766403477950018916933872695085899818588923409448931043160720565954368783698633632099852040700786224654112889312956846817577050447122343151056447959621919824564340188757801767691306074998847801231048560193894451241557144733765007771545731501961685259553169550643961400191264472833951596180121402714333107273459226452715533595113773319518593679098312669434343116155523280613949160602779286898198132910662874132544341216859374321293940619684236669516098059687691424484566531589925018401026603262097863176159480540483461406183175969033264042807049133137373424012857500527164117842729491223630740591552417831786538625691598155349990993056873999104328721741892927686623202721908439664428778025488740493052948738071583979930435362972687940881857345626237789997545934031880915242971711090884436016852360134640783468826857441774548230542498979871109809612557405239691292227854574176151595695005236742400255441410089714710354705377978388137334471096694382233858617665163313254114044596717342723897817295894834343160672205452328441711809254560862262043641168882334962479104244194495655386376453532078082851582960287548792417737014023801658968107592689268861180602190920436654129309097738008105504893347130721435211209930694094690338478167075858523606619477921464552723613243084782068166254707385006593520076048522818188262097876230584349304345464317127292261697802734915462394973987132055406574055197216031565889621125026139507794148426703832066966691122596341737179964464777773419259899333835912078014144222544588436703775559096207603171041098161614029965467157605814052898456977858716357897257221327472858434524915960739823073344460461505428374750721884236036083363005163474005181229567418448698936575896894716314242603632456614147857509543680321512978414126273254673882665715245796612387571753353790091821140076012554892344658081098869963582070724500901212066042162585877653919361546787685011855314574862162453025111559206850146986844241453527861351205075738290045608459929256679773808387407872625614550208735078845457408886975466511020193160328396865092716822677233368076811701493797758236312003238738887055708601047346358751685251723787926593322274217282681518680648385586711323079614996981434728362448547590708827557030683470798778572921276014278533851202378519097376500831497115156106501536317064544751270929585716750867892365414528188152832793841129023766004356467105427577945636504650260531836292346464559508002196219443864643242974735010286783909188972552608881438715882957153753569343155036482128250278272921237944463339723979000049105474839150185652845984952532614080719590755831376475042917319262330577870476104291152805901843700996263255299934713533312540494961946517393452941107162154194534059202725761352820035693355545837422210029706327018448453926598041000469756538099575285788273040192394546720136544703550225813238049698483823404586398312875519995753595157711543073652118639573572788182569932512334539420095234804453271544199963874559501727681726780606637627190890467773869534177522492772732857400860722618324859286760501692347186696123687903955762917835509312041422621730276028508928023109492640629288148598436441618923519083850678474131213324758277812947976065665899402104126619791127899687485800869132032258672185321643235083498149513374692695062778817424652551773924718749517394503129128984305332508090684333505118502871431821813580937591126368910292641609971437085374363165934640350818564220374267103347448489855193320881158614333416503499568639856441706517458634322438375870069275467217673466291241308240188854638655504438962418513645031030760736339277244773670705937613500237399988194580935403642781068060688430126452121823953642570827951219011282538251989342686750858655748583856673510653025545274295486626394715425077618175108549090739202458845104021100957499031859298325081422085442617150477764637629237366980240624244472297987614793902932751491152768526170660123172465589788949842116529019458584649844455182577044862889540812527297490740758601293902265749186013731992491791885636928276295275263016902808064672081103847840245648403646169081057317350714141865439592203217556020449433111572019210309280144767982380732143559319381418208679514039351819088017794955775622968770586019550701794816064642598829242879882549448615330683736114873649221468569057287486133947470989006608848668420476144990119388454839875650832284372916854599098767467778223236031537327246474284595786566380200913486561235999283849628850247029301913256327145723768332219977489719660328413931657920377929363100049731820676323582613766999567040958210737947214336912634080599843804769019599243440724342834197731158453559162916540466124033807985500720122315054475490873783107899306290815434151711872051704115817111244091905278214737298071952334855668536347611548393200778297866990146914276406936485578877330270848143510629422845840687231021125253943222280540295503079848711179972879044572936316290164514020328649043281038625466536258911627334410431765185223234664848304901937124641708596557810739062480977580400454068270119615432353262922010339127090829870426694717029147397593159266345101180773172178506481155544216853785371877963654001374038644055755065063456087621301016163135681051194372147874329770593532793623252969168296896889089507071489809520540997670297535144441044042244232773149129188688979206908198294333244764918621306179045294852105413719298540261677400788307880027199566065596271422378308620395660323808710139666754624678038858878891213715265382465938275658716860063499963738739134239707726235727077268862348975667767828195037533050279511123073145986170059127674922370049564948154688248094918099338686551031070260110015259339556495075013947394862921139806435908995789357875154640660711925566951404095640600029351787325827931219686773153762561999460399266059630435845934141884076520168295398750304803866391391328747358634659901547236022173999469583252212833021770563933739853367051457581684171114031977465380817443735761675809575822393104103640306635011122025393183543496049179931919422517222991091826433676274235286800819333129499931027902080022495746969352458902089648502313560600928054285386099314796668485252291838664688882913626983245244050592838297651078077895393386449599245469525977440131731921670644497801363146040765863153762035240577320516622843333064831627313818578925974899723742789534235690606259154369189214455192205630596629253376401174066756471603760673887686327543310170625860120318374736213018539649671485864706462986673229998417757615446499394606972050829050245971126150744520713568722097732616193026414574850424728005483121343423923483067013555135511467135565412530359394986259633866386192941227433987531673431455467828151338995618110705023806966258822351781397533736833596980606380510540922741313071474845536179248131664924096055658163535100132751918046929309722126601193821397074624688894841368640560888121113953121550083036947783447273265530776366011840971207475379985197556749842110493689115036421202596887793492185021460208677878182224855359675053452022339289559985617983311654565725017067880678771198137060164440643181935857501376776973252740879457675827686421328770968916965554589491320175881049543847575895180550568040067188772461484034091410371380445730157083360843823501677201097152987925714531340714004878891109668539418888231400239861244715193852040263534365728921579372498343880100960641025559408056383374030717832757051823526970761089513489410356081741916050489914374183043138536440372336212704511687224327499178098782205166263026038124602133095321424932406695467691514300352665284556187273473727696305148318044976104735455898197086274810745869081032105584629715357592176988409410043178296313066218044200269221449250265205344706721222997082255377088835994619753185422296268075744490515660698794918918434758357881983713811998837928124050553697729884778697146077687412891186225671864725237366000691469526923621701661048117587277028824727199575051242223406054030046084696750044663707852772603044405084168830245534816787243115243121378577928234006622977714330685190717252726175966304670465630279052464049959008957491341857307018428562235739982688677905317267310081345934087000094325704562264572660330323538536619087789124484283940253836388972418116012533608551741423921691199788002808970598509893467952500689568013656602498854870199850438991797330044595714574495167548893329299039089379747466224426785746914246068051652325470665706327099052861975805720411656122710058348039759853848147592282916926157687049775024182447026385250324488252797532353104961830430011130715394075244151708702422933805310823759698308775179780431629870022847712895720361270669343168974548970173172163667962852416099285097909079568116168215923953665458777633431478079169745177779258566026111760936023696976694937319619890186867558073080128860970995591911410017956286151595487629578614246239211375170374790233675197561880238236097344791172514819760490226873734246093152831733928531163474997640482219824614762949850486815499374815931323987902031822404351426513443457460416022666516939916224004161804845761950607930741151498910346797067394946825661316836141159888092029276810960888491027268421991612585821063260686421287312504379015111722379152483741969288368060457318957250654290220074855293622237912113666525332673756754581141357313816508492266849594450203777448034434016995259417250288627652932535058992606912278186966337274596093077455449012336766395123311413364625958188488519643033399256161591714943201268515460951710545764701178858661355545714616729509087813711040267443897333197415490092356870430780882173924086388768098234988020837597090259928453943398220150255596332289859745496793076968804822451374019267951964094457436010051827681205521861203125542940822971110634606789851487814508685947245294851590333479496659434305158489691210574135497150451637417101082013238002265071163548614380628449138329756030051660209026213622147324662374744721743156212442999942887093475780502457403200912963729540399400885275187375999689849178716698780529368078166313929634314394545452293101692900230366272398760445875618606344983252955296308716446090963253408582643804886244550917727403256782113062963034956244939437963764169611520565420620539337979549091920734888325719076529524691947664169291050811672321302039348710208694296627490593458054911221182725335729281637348510896573081384885097761278117899727290246139468492656304841894618967206763245158936685843885023115224986323132397348136511672746503875062821759459623316755302280557449350251133193810510200402388321417178581522906851898176121263035170775845565455386636734699511348127397323173853226631124349448532995670078877171427001603786785725704625046266163368835298100100363818246177205884830098683583426737552219008991746989946474133110552995939907733222149852664099810764154865898054217498364411864387984066856515870789181275274220526877666524406183271284108430687591427361805153780824679591714609894549190891117059737151192531176005367810185397798907285930905525353353383519627482528402494709678753706739807011492198781779980891055175134381159805445193535701773660153789605106075725714937339087729742028509864463641162926829303422716651411255700627529854624449280882207256864715860397947494854225119704598331618540081852488911487668581416032500064726979301054285467417148598267260497810510798382625430935265170991172952671658562189469273509348596409511625616309927062370458011850795716312153212623669018613965035692668406476441370688037530572222551416302623617757432916159886787704413832040001172455733859908164596860566923938326655216256772683761746825601032742090591291163901431196470251067917827318126088482755267723063945416424564912479456801277092854332365586801482830757854489011121422312453945395943217518486216045888926637855582829365370164392501069302809622587641737608726637173618619739275947558010997648158242645467709343562044217322879700598147795884428612346499164556324296754281268200417520475937243995667423330186293538434730816897836792166002171058416056462388396114797138357317164869154629064803409663856590582382813488938811572980219188759522891291834322995012910103590003449505491535755580050843460809466392944829906659374033296028439575595449899070351075681467696251182440348803261686779533229924930564762633955584871435898281669682275384930677810859080292291926544154162891655505248103937318169934715965562171566567849242849805211909602192697591297916250218570255951549561878990125960120561425358097902370172578566115966654270186196402800168840200835065726657869913578264335346296400759834141511183186117126709994526400127651252367424405418702424156712626363249818903549898265746872744721328124728642611965210928650856289416488119201057358539456389949380626564581087713451825476200208242061696104078669470517989671469494734864566954139612212608890706779559788733070713555784619948261468526235279733137007861829137846673200891039318319546670844592281387741175608560590208393051937785389623765352784832093580831365437933098157285483728510552217504976068278448630136934651135651910840581100126329462325700684747386171096380318243874175374409384148004026577941069502283238219588165814441067604971127252456164082596552746138132794453019540062141370691768124379750576306215126138374170981275129694698667921959081021291250102857496975811640833771936936979861974377578016652957110019509638799712500592125484669974709301882577765145062898265802354209269733708180615101051747365715490868719189426423090622692481477043497830096708949419941055706113466595491039507030846449519037593102555112796433863469710908664332332134155494726870545964587196475846967831329618194463551744044237977683680678026329750152961827702333995509824406486783742553010107203878777638255951141521964088171173963046576636614825182658745706217030180364685143493724912676781208620852929660614143753162745060615524791526389752837651753374522224902809467773315947832359084096447825227247416201626227659228252598129512637792734652087957109599276218645856005976535116429501296907876515253879097918021739645688276794062231206364928860985464898906331954591327466396734585860624419997073240589062500624534780007710421382154476545784855132313430950432018066757069102791160256216555268535517409392494307465806813089124426815272421894120833667967719941004698874626274356536843404382793043293499160448408045052091306703795993843324757659504735555690663898842896512885924224118164879812865822688993098231794647836412729434255902303394670682294039037509497764713373036726717819302175973754000758047221541956468293411927119922391592674630973733832656463975960160480700690587256665202715158294369012864684134595855934663605405131501517626929591512196256706696945176350363748984588632008983033902970596775968232399974804651040766370562026582343211573695500290272776165396740293614573501807521834829770836756228391944621448798397832881297248040631629561764205967792867240974394930506681512002664641654155982707270994989420036353022600115886866127018248071877165021964435178564633752025926507582786671230197915881800426193783331678446923015469956230522291052677588216235907708470186885445045216084650084951203040908233252181835172911655715476155146617231008540711345463920987455008411329544733637920991186274194606514103715594861970767931314024825080062922831927054487176705143082330192035606900635615692683398667233352866583636432729502812335386280430567005004707840189040774664105736904871042744569049164426488795013906708499006666529580976115320816863116875832600577061246144254314607177228406642536125980923453149309765460307531237213943177621384312447084274944874010897758606177430623837911882967524683199757941646617361601191340244440901841119834419417494390227687291594514079574569336286926860563854895386352228124428548857739059769782575145698533654294392077570801628798708019731483925742435448424013623572090662695014996199548006656031247035685532875302906444096809691024408286420888548312747710669901416214533144641053414422081318284399246528375833553257091566468932013556761304828971299001845716592621605328090523272059917602622275984548386436241696416994226643878676070929490688005394893330008592755831065079939356028503170308792932338245118188434848060832547416643820445848787926187242778838669048171921233558985771749129651889938009675592641569626456701714613562346455836930487952849998236812241363162586191541475845614297310502072928399805963386129839978673488389894408908389051646495850730692616932759785032854877463584863030719275204407223490290034704869152410613623723809931453104323215661642420179722717845602642482115490565624892068757910661573067546904103631577962877021386146294128385711309719118822868506390598077395107475238800564672006613816437276814183538440121754754423888479924939387861464648184355187559709369024242242807643080259846555267712294995327610286203385089354510700877684418339798671921961613773395342623923819771606430580514627664159823622969738477755818091120844057242889227645675397159528159722987830520458528668010618255710852020510763911144266087534365695772154596974698144602840840452043010501539660341197852330559453153819791752427434931366888891680606613368291010138324097988744158685079266415838679603313932947976217803213165954600506268106769125537241372443578690197870801960904613339280109244021838615788485607238583697860875316936989913950400199613905304602366529489916636462510077893465639826456477362205745326526108009825760879297586196367022140988431400710039824454006346968487034621867328796383474436319863830725279564059246262259824495245469283275915246064340416016415626462926024429456724840306431489413204591794323118978072613002526318629645591216330826267375569080273659794751270756959999904907814529740054134299808917052277575671704966025654353719278239871189409000037071076471647286864044150322032835181317833107238854508200031784022003257837639994057533539736940685992262575211801854974585495488150464624972849492085504221054993842455507206172837334116483665738863502016460070550487164914710502593771956327328798787448568791099188223323905654239111282967402299726028618406702203527213441451662575341382047715748435005416293429168457497248425900805223594643806479996227806493911089804878839375468282212417251498912360287096982953635906488044526965736421238811468314924628260581803279585270675885418553424873034804370918943424824975594181881217489858375908425487639865149134125141480082634607266042437729754294526491395757428695467243704286314507834775075912068855691553056210188763978147498079390100933813741580929887886991864391673443429340349858892752213098092026168867409279986217011674331709659146469607107264086182561431815349283860372202860353204400165526515627379351422816212827716487983664865787055176560851824122327191819213122902753998658888957755407874891371553771906179607473123047397655980800384648637278244391130318843657597022674916053496201656025379318459548158596697106086143704210369532187778390709918026511049356083785662905537319938293467475698936616685617060973961366553356594284783412585695213740806854966038553546593544063513168758643654718707329541039816382404153250148089203946418839703164100943950768405225059377431313152192076965346454666077110671760192487270927178767830253384106551296387579169439358873707178404092516177847194592026135234501905658359970138648347070071625682150003827429769702524828584169198900301309575816412013270056678527405769708256410231512743534949761241949471099788616050431051180926370766241788778428498508138728226950613049988031010748139708607563840456197729987206494152790757319104076731424551214509195227035050525626061920879211333417455416162484253084755127633964211024483983421170651210712293388504758032934064198501602889357479191138489906837306382754123996846450175484937707833944310960684429713023223194868288751644879073509541360628910806772509706807779427398689757973146538624354989938089787122293798941441334059740810940246283323783211744492204082008301911652835935047892145447434721066894238609642503284971355764625322893052357076538743186533742111750183502747564808939130857025330788020690506122632581001707023060847464355897336511708607641113794303090388576903465061354117009686791251187286339538453076382643788796831784752374084519360559572764210780313942035501050112446963129953878301664480611736937684968193493332171395930928898034371108173851304089471248313855880645219753750587565662544137964724179561444881546486722601711486589771174900451668603941231233311521141981207741988789659621188402087088704935547772038949387663262965142753123403728092329855678472426711104358649874026590955851192819627190932707638060128168736450651966578069121909719627023184796647802039432258065096615598729115429230196537260709696619490041234876066569042996151350804989967256237230158433283019835178996946810721831666405808148383886515730143694390064258042440554666138343789609276161177159364162342768257160779833927004849254486200054365417030781279319263032610858666811213352361452577160118759313866291918408660620994251664436995886493545171685854223892146472010729268642966405939362210831666947955419245743411900285514235645745410842612280459181084807856882792693437307980248430969642388500602622769517099257161194610653651174792258674219002340764692337507982948779379923159872739422602969767533299155612681027159155882944695215278975057653501429137565900218730095222981158215251898957636590974221428249345017213800198302346105695432495516095169630414191231647904486002279619520612675728596027590999903739506116298551200316829428015705352693945259896617547227056912256459195002705608280391591742385064921035876885072655900177540429864470675132248406518714826840960948268606945545679879638212267154153894162514647131003998685557747293284643154914704853646248792834397269490428579169990365615927760060620179277473044707536082258117953816402457319485214300549033714514651951077020475698301766946454871875182739624980188786212257371386942561908962064666008960437308320798651839497505178414940817446064518228036114300260992505051803399682253390994498026691380017284211435009280237519937825325881788557226568913823049208050185133585829356379311497828443767716087646080354461971830351624011079119113253247418715789201582194133755117947182916191091639450895072446812035513904127791010035981256407728529341377130700651238319492005445356685355417381776164133914646920917845529828924061638610025709203209376053906515100045733960395969733348243663774210145732816181173207989735940528719086473578415104538675146576188520873270528204428487748754256960483455315548296211830006851724744005895678374352774457370319505850338007087273095128022959146815860643211336275073286606135228949199975109826224159050897974683101414666645814670496473861861913189348146747359103963114172194822058583979482857777539960352557584391218526488833189934364032319982984436612241658996140211521896108641902061361828515196134693888880014878159850188750134449890105851865310480573435696873368455264694260262921643400438517922488035661796415389904628465369208004299588867826011070178030672618517999068899074464017674958022593204900810764361426854630974557227909139513178824866951780083528767622780091307294815087444060508631677147403148508511455822145851615752615775693859362978914058436641574488112401906544912062627253484826814953518688398188836175870323822954956620744322624418268634403789989560874662880156207690956293825184511820259008373708137081663489794422298655746280153345199732274550733734622727335777715783553229726320520125585005757218644598463876639017398016355477107080442442019369358644630752724962972454170890089660264672975895506047352298953615921388609748356211120284160060992297163011731230498556726224658648975764753391686268192213403250461548937288058636706172024106509452895161424273937802143215577600017558278936442316833883824732397900834407903512897022093646799060997194000681687393484971684985775386014297329022470708410137614630469692521697881736957100076644897346674451690809553960209686409977930111214166033773336407695902972315518785857502870634629265585694316141236719153479261427711246453670775239069073780721614524725108493967338156175636523318238639858568582152430345449518315009572684240626614472091423596775106924749342805512801817428384224409770391621528738721069087821632965381616435534500654563828337508745993405807820967100377410913582991714711554366722525822619573698262336116034381535364497948342758827623417623920305577150808945748102164277185300937551522478758057787424645832193831664425702700426876870385683107588000266647475289131003627793149904889564356738596037036747406178030452181098035165042917166456674212121257629656606279527509192915269843397885731126027454943923682670135058474587073935678865312340449158639603615640980479621330791229389246059462318041029870392566134556414957523890721526126169859323757514751568615984405575723753257800945523046000800578284140276504754427561318092665614432011332932198375084997938154232930209337713481733432097429908414666502591246389049603560590697282694250904875654874511335691217846302951297577752708641971644547185812731722628565705159251075405683417937188932587793651499787516261669937001284523492007230052699001734058392468719515465514656121655722935130298958469034110274577312557880685803541011145381362416471671221032918247656299129393249113948232084841727538169036173771776625016590421505121658074755892689955827267750340930518308156338127585998806641127501033461580106350117585066481983515895812051888728416874508457720369538634111143031136858959066424188076209835385366574726907021526416136319096403440104271289354535668687679484129737468470968997666410142852972461120853867483339089126016505295587753974548063692979408858851856247901045333787096644794526769857198836320982093204237048210630138481050794279144990475090133848405330963172194819138185163539029118843160258054628687058534523042698172975420800108836293393210306100506401748623088667745556106690248695129208074012958967267484511667153673021487848824621497412235831271157346702156200792227576421950093564614112262174951876344613680283368297092238255720881540364357468325314710252120488393819257427607914972999093508915835608310034652890985267727631217910154372931835388203483374157115404977691747117682270384549617625052061174626544810085428967290425452590354523952644230323425913483659985188027285563631161510530273779337376402981788543420201298048764154889166766999760838245098523442254595634599918564373636324983532209451865763909423442989443612663879196267609925579047037583739568082333003540628198564556247633449454843736003511334446423209902757711306238607478918749523763603575441769454500373689716030429546779395239445401582816282930402282136617701909832631807792674018262914108109579221656848759295194065323291255074404453334047126034052491113255049943594394886120285536337524983112779735413055318399624380381385115218717062226620242257846510833597098784021488825884554261138632227889140426421089846640756456145367380892819674533906328794352701376525083201901237573137071413307916129610310297754871382137503032197563519891113884415072245134676353658697165143718971241931253010287583948815582588827442465061782087332734125444008229633100434540197915358759509688526783652850138198801682731699523537622352905005800272715636144354390685606771514094548868364365850703442917809089613550046117709706285681606932101665795939403668707239782424186940713446808141921780463998799075692750696196799685685259554891807798408587271327247889041591769081129572086778773705468207392269418982578706583407334070190667523242107888287572744122387183086003390000089331627337785258301480197006390059297356088088689038609988634173157772060759103139809443221958350473808619220335543954188917809782271888655993612640559553450119526828548133864886828705996332765431652972877999401310851564986706958489769324614518417524541649879047227557958748519469970230930001310317884599748562169335882917844181919932412109899193544268284523296922602162889433628370245758828753839261096954269126806650604029097146128769705023884293211630463629459125583909914278633019500148478678930121227368629853792814613702867669677538026947096288761797181637731661646624669844802481347026800590339845349137354587264784479710458318842312590899864648423581658486813154489827868811191112985288138321121062493587644247362784405674348195394933683456204696168634426746791060047940840040645246471554554120121926992204851881544566460422316658882789613748834166386665412595828612389480216741453241151651050403334340967224581608043719985299177718055891194973064660887846921712854171917014066486778478479500284614464588894791912810599406430018069527645016652914441085600177414139316742663712494219824461837170171149245011358437865506324314466111768073461112926617109357673938610191727629707691192121338793918146136372416805946391912719973911505354015888877351487653875050364594867857004554712199838778895219533177958290713829802986510831590294957132989047885375951441879060682678348385485269682608797554465310502846066938032392709525260667193251040844957073982925052859400780380041678138705950174273251719993723967469365179708751265060065256561726949543970485565255961822376320999785586419619888100222149957955904401500091108348029142570749563246045235715488217036391446777583170634951743166619547203664918811647182921838586578172233211498461353282465795229582860718755486905977851892022844909706329550507210348150033311063678389690289221038749436134482602753047389482336026997405831359432363999949516885550021870737478980711761665843517652813969744815110610760969505615941035763931971311306209917607242658897565115565592894922753236918592143056752858415434590225440708212655907529846660763098908138700483566510263679912951592732317628396670984196721360224826370577065266894983234754994913669650641345995375553210594515590400811560751506206846462078677177227522246873098270633747505527021227762977329855421303770884844768113311007258708947693026645236456576155224600685374393260211947946042538846557111684023427858086672405781200808633694699119714620698704324704792309061349827392588508470777118606213284529618076535440384963806135198189231718509254349027464106044642113694797729074599538411684226267852311474338767830613048919078919130681392156997544043655393371534395080977387445241489107325318432186059648214523278869186765892708604509468268496620027222993352908294274750122012327283525198386391772285638356106241509757863828090988077570094139878956741844307622246822528153080015261451512090542140764239047986383162526936301150783987610136927543084014689501253689571070834416536153944928631857730560854263625841857898086307739459796682931325715858854559880066955891608413622562179273788475190908243520782168982731840201929217078732177872498508216275797174388893909174456960791896561524267561925287323308897439959470129158966847639180995386135180456712688434029679094513875566437691021143838034429687576599951640838342890108564484942207539763939178866291855977567761075078644708230420400022645565909326072828618437045566153531020645826999507209706655243207319368074707854821928030889116117982236931305021527395825156157680797832982957602324844015082480381741678121611228588286019101228748948215605906417234381168320234630807330626328127288575017000783227362205967309613136202273071489149362302187167473275882676105305782982309423488942751178497931874411243770432441786429562041091777479103563978004450328532535686775858766307776029133596287235183710289514722232133245612634444058515706961647961289213369534927174181253074631193911436894195984283101280675047002286529083547020641046274722560104457507741989622867525693694755832415224719791864578708791516860324838442005901178994084331824707776587678439502797361980613963662188034306098143787925338312491366701633530487543235806202898010380426451744802176128333313638472546043881632435242241259948591244644896817681523099107610714555750336796897158218736177607986169767142017686417939199833975910900680403404212272269080247415299949472208515349261588046085963852788144144041606648422405921275781466229250736665917203154450767953405684445232301407228694475144465280734964092804874155615255910664210391333502465711972052696822053547035709945013705968151377972115949722679001435187243774941962853155029238470397918071254703486970259072618924453503553663195773024828398893298059977650663857842483504174728859530307077843462482645235269066457094967707995257316991977958817816527065226505536314160886550926747392872180842939422324388544410863166748197641542487318360639847558949711947486709231994437920995655438953728649589143026996225668110943801332169429784684810659855499258206085049943659958495165354587620449822506935771663043373307586303297657328178729571521393901341707294581636603718142890160048184048373536722327645102187998291415559833945404496311548485666224062387908909388360529637682514425314107364483137188229218273577149857265123538128061512142719600964602245459108111884724552726113968364756060760647085794446606253955263410733017797058581670485775151110918087116122911604761097709883251114372566615013467388595697532837365385312646393651188233537696332711953995932172402903483359493807765684299268657410244015330992295208261299960749001793398590833943395167600285071325254497980926133305659120247735581681029245062619143501246138206923491725462171224945725414181517526197137459163900321286035674304502132746928745624023618783682304275515007806225705591581440571670049003777440294703021841446623366900710710143428787574850312878821558179435121055929761352459395499884780223204066940972653299435473139263454378533764002867487670021955729424815701595674522379324631076149200292737977505634979466401634144686355823193843763796801392046686201673073943752824192637379108887432224885063034819920368833637862481756945700278105780508920564122722782768618496736979459367815892889117747856131942069397648021875977317704015262229340127344030412010414590198496375336233120484189100937772427312377984736839841913544423422763341042405769748816941368828629815904109265470670086074394456889753673092602363766361363237139869206582857985108517673985068041628011955579165479614145827020919785152839455394389635638271521560334589730635728827042069972593813138700195471556395558505063212517540649376365197439034170609961046301169325590480613711427521620817438686870643051999936537445967412275971357570392005119013075800311739489143015340634636007368356904798100907595107656526563448560560254845527563318962160971937194556818864682369720335489581988104138364016843329108564370180372144191348557557529479589028751868392995086420894197664221029766955217648927742897953305540761488751073137005975283048020474120717256539143287760469180613754939337399053568811462883409342963651757604165165774880331547753513572836418029376970537940544782212583346848549958203232751740074254587669762550439380540457823574044893596962199331210216771632610118835912573717166949347998856426943426798299459090460984967205022374630575648802815329532285769283015530763040857756860181449927206953389357835712309953482267448153519324114186903303056253619644442218831719107346594561243187571464722539554642918341776327305429212318133025764112679988995415669868693847705862648685991170402027300561868378111418769598962615380106527208250278912340023057044463161695368275061033699166584291364383109938402114981209469168049338058641912590524879295159067441328447867318348189722234498402791519181067957489228293829032665393698956353382216956408939140831616350128613227633269996249000541522150938111525160248555943600614472896832669797069224891680403134676456775174684690590671287415210480843354892183016427085991821890017501320694487339196951265641083565384960979782908737441300696742662686148564289495394141032763974127150885864535628251407467776647204810321229127081579591823509788338043927173299450961340702424256401777261637173321712383900258719993235670995551395960400542292971432790637407090560927543058427072587327405811128700291516475350752245281604758072022327535520179336807258301367841029925511906916452061568938231423585973693654760855575053716297725170291221784826554687568029281631897072730717087669635359598635772525365229420702357534520261675949441029227239314634227071254201928031512387477796873320541919643156287426770341989746981003530213604094671973796975359937061450157454750690530100002500945790300771271361362963643984121261343477930527364000034484975873569767003353590369814805834274224453703959271751540862743256857715155127206650993989050500576881974108460110918767580457161858157712738981679054569632365520580488758170880523017264550278662148273400355027130027974809179467305856722290493188612340594338873332135875109473378156859974229875210036945507885545909528481736987218705272301933764465142012651295658597231807613870760196154422722550104007515402441184586332770975429707621867142429560832985691642911823071555401023836050104075140715030737698835793650175039952297231734312217047626511022879787423415802711702453485588158905012099438168131241803935253457276179454789854339576064160153203653295761753463403022522354052344332657708842000762509617414255894867338049129587257314226115714118157837668984561840226830093652061247445557420140796788009451472360947574866206327515860509070776627739441889979016113252494508409136868081522613794174108694651603448628345817167084685669340036654764458624516077122925873324292637467699262212991591195178730019940733143120279172222605657136014394930839508766628046278785519793315761983581853503854156248326813252874487087209275784920738522831011243472150512927273297363318568336684522873677901191593552303152046026803982591939952627087494502749613289155624102135386007106295669913629373154801196748192310356662253027965655785530144421953908846509148936164926288861905721110409723235410736432385655541807734016716101416199623880439607676152662858780391356326834701194643096934292792895569626448235576271326812409243925575524117690507871391972544994522595468016277731283322090790442843835051337783988328349080683794811517542118855151883764766703794655171235134620922918613030053819451614999451799256073429416273220670661543353900887130345889436639909947854191147278623198881937295266311873477536864004990078611370856543977441697713890034962438442643724479693356785697393576513792400235795470089097737401795826059790977939122255736795300303651689055289328484449850054987825587889076873588046475252086470785360631291273797630907231157442900526217403013901145031877021808553123892894662789950535836168686839683826134859944171828674902971928201564231665099341708506820527051864712930866393305883921671168818322711206316496683592617150891177480803058947094429402941793581208218419477145978373047861960086115907688771267302917155099637127506141661801196149460611580101689195863447218317303965861652042759346091007265134568809922156107805343453719561155173088130292072768687096656009294647289959326622705071609448469913133769176982242353538289871660907671617262925702829727873681974544919698436789201431447276403510535239941150189012251923992978818452355584205154413478379771891159702826684884491195395779954876977937601022077149984563492920820680387687138912908189544321127045344499506269253686654412253925143759281782656413084358400345013479391272589274389544737439764416556459120266993991442225927091358162745757216727159654622012880177945814950338895529452863499429349851689440210499252166089688601103527952907962789202133733107381729269774933110586278335371255690906765606466472992595766540354182149018069042030272467084970770546310608598246089820986786584124904351305462739783293859079412456369554400989495467622127475215183264332189501215640670071700023033254635217627811247818287915265811051996117471239008172779843607063555078219264724442777735283515453440342100175689822248858861611538568347169808401836647710077573771622069438566643997403534887493787219592864578039512716335557595019867055517749288459895802011023716304079677306181930671951004441953781908441827841821471709716389945989378540337920633717034952773581065009891049788934680770909936871374818576304279451027583237700502562901680658673649971695763141980878025626374455229438480395712417551763686102555647090078936637417025936665122472290779881540197788412551096078657498672191037395050497791805205616921908625275048994255424597486346957304714541517411796914078629059474809416135887584214346231270568583577709578630857884996288366353548820606675881739434957216921726658542930451442996158175871814084255032934801360444702112169836905207639465727211371014243946106653897545195439117880527865014599597642160448869860914204707988554712684155374120724324559313572272161406178990963297393144576889701435026164294128482179132171516801094250992432821287118027941261664005183006626747774141130835243558682580234517721049959667209443537809778088088766991122075132001546323281973183297877198551013652664040897023892872555555929898913833013324520039015200339597473634854720707780229178378290392431654538275758991559055914499928004795024349652439038917812613587078935196854308809384226443479862381342282669895740451614717418361178288742824665371902309590148425532415729078001854565505689064565884916832817847985587061639443242027261334770607729482843119554809539818288471507170018394999964657739344195246298623147392136571825701671194853061632248815782765639425250383252022816562943784887065883607149263243784530372915148337112381810125276229545975772677045358522519840625384973786383538263734324430142860045743471644644790320225762947590620897636833977768892583452986169819416475073638051091657151612437173056719093044269088652524454962304515315599861155989963680990711964948567837054054321113208163916339664799286543674570260031482499438210342192366784670777445565022454109672981107578076509140375416768123121180754582117356761849082585615694459040295858530192259039905399134319354368110914007232190115615646094978383228440847431032923398161572059286254378518069901543023164553604684766874659058369737050235303403977751526870670376675529790591739475272079044812934681136189458312705360482463683680131528253372155200576427462813966106190803424833897854765155387825744885825221456486109746722454858267687474504201289754812209208306200190619447218914457098824542116192345083395416995556203465884833766209131109613509294692160004643398286530221899854350657024381521756401554834246478521663417535688070094990779415821400593136108427891248600045107949138768942408925646674022350040432443593895421778258619975403828636978187710253901861945948259471583796341579279999858907500176043612959840671542692144578969932529308200039603458117533205233364635695881987934060881055182019619767650397512087197109511777256094540692589744595887864425986894302730285133727490244184466832327843652542209058644306503386719118650483492300512879096910754067158679865946048573112016388020888153496001664861529010604344131642427810695591254675600940058254138239313215088573146650938819301154628582494576691954670465045323973875466240014849926284052634411382024931633163790034660835916506176336983227014636448768599874139110457204531313166841999398406677171684048428119974781423336485084143074245359347329214014574866356428929927135683263642050868672425942429791023799824621280912285964150844257114435324433193576647622320234720300017553124603490078696912952391764911347458944405279449837820633438782739672289280472352693684882716387880033975428031897248580342211029977939617796425014499675264006236362712183468347389951176183252948571910523099521396483526756724992926930157580340872807025595182161895333714404358206242923302021079128513993968412309108420756850035426189706309673362028462227787934158381046065024392165814175476105939460626317353441707523992639837240294152220328392743749259946846455642251109868552546217019563527867916334461626044761509249135249611843783304704902222942602152029078701940462687943827585471054467138633865278389838786189970059880580559096863565045898882980894026767765528621833202914916293191139406998690302428888722391477132083370803776170969684535680644220096051016392533510972279929521982511022503411224496585667792992353445121223134636181497135291083434641760882643497074330415396199636101714966060169809716314197899511033682493858591253223347460140428600056826224872791278954283495917843363028582934556207922693709070100766759658868182474629740646242124536538279602854944086069595664757489481112891980527798473254396987837669505695994596443426633514733466285685473753937771352211336399657297148566025283186644132818384702737875452658478061469669368901504781979504697441945299109339800124795487014676081088565062336240742779659131348008454126149020990667635286816097888850095685927160494945522128730709664480397588042070844501262020032440664332982979228251267025644948479205650139307759275847104444875096768114902511786636843348059935998724362373735890847740470858946640277988232749962437641721671315746908889130816561021049110244031677795628024049041104616987852093669828567239862227276040351568213188793938317620185773900651380112985055924581809922830683445562221546166620905961997389671586104637725102860276865589370765856972198623421297448087472749657154524734867293451534963922355414220349357449039374581851820020739864098719826024655775107197732676423430408876674276772213169815123880996574855289136543220363627333389223464427093417541840836365035607567449664625577640964445302614102553023764524798890924056390607401945312901057794091806346066733768291053449502130476244568670979247737034828314641014228165139893970113992611982975722971026442987334520094038828170488248610260562881983821389544637857500594300460723274555116846844417120329985791793718964529526173159088948370337703730493868840807890332198888999948466228586133668067113500476909783457487837070888361586122646795341359448532136842140326351295805795024666958584792971710053606874344863643470801304000625704977008063340723285955094730425841154826680050221714586139959317194541997364326219421075083973756473264735146806337320946224605632682555669983810995535518947417699673503710003735275191082996727250420369931217085664098209321984903600938060733229323452303122409043575724150814893410626627744312081429810193008366168374012164629478905090130484135986442794325627504756007409664676790759684887043212779836542084349514355185573242784648547171885060749494153814117736374369286109045598287254891053955991303821051006340172106066561737377731135002479503539169689248600215677263542998893237664793058808054680978909392326563479646378036849941019567096688423789822695125671586365818260769256008409985673710586353754739269341713100384260234205998268871835401285451026899531083187016221418069797537743252615043680584997342692570436673177204135288453181239862508160214260825356163751334517638715840630455827802344965556065862590274658016233796262068137206726630138282868763562941476293738424874332173839543724047777866453726575158409131841940554075710492330350690498718411228369852637477815018413022552867072059212758735313867493291595366911854968522227055454934385079149450008377866836334882015661461762089040165143083478928633583440542427321984900945720463005588952798597999775821302431442185370216046649515376033195456787837937059142037012745094885193761449250281497843656854356877432405587215630614194401376733227282424188876688949460107590673743746211292459237812968363050541153420545461477979085944889726748526623424640235946222147034246077025083679932945459574850343950909840138651648212603732257929275013853285515571580858269374959236590440517644032940217291694430236903791471073558140192539603393698320093062419579364060471998690052540665606983743260673169939092823784953121871424553309884781436934528929435198124741981145725242662943617293324015394103246585649217627991312590436716332418605398899397140939493353051109663508686493689161741240647787534276579425640849941936105316755765496010808258458790026810651834963688685304996063085536145551969333980309819644826699160330447832436756407154790460828514110600177280920518936104368471284890216483321885994515849966116130852442681851392141602991411986275844413704579312288608748815792116862152769071499292652079059606773791384591934997636261264678307568302284531917008405268022693669462500769344239044903959893653288118321569150736509442976874883037150668316353354481098629140361377131586541269930164117909933082078250075143156447466848099396011120374305440654426637437418409943804430484075924907502793745133802838232851348720462628455113174491289650136991876668074889821432282447235024511557561374417999808957389037326017230368615563066409246919815272647821729524726909796679339339305488059293798083718900322746675962605547560716132620503320097231316326962185024459614627459905053292102891094053962702574581787390963905227500520389964450392724887245569447096410624690391820120501618673860845377217036381422411918526559236793382237620660069092655680837853393018139185593711789803959800767937710436013815039966046051906928594763298233368874901846503655039059591249178965826320752024262114263684472443752453383633878911436409292327621708831928082118730032030704871640211463170133067856230951315498732002492651278177426361237231474166087043763564314721886667015404227254724131538378105721388142023894164286840755000990209771563805788499335512553272148193591391135441102652849072117080395349443097168402462814823631415094803550622036341544948979985589883610845942352722150016892182461510157385054035645123692585460196400709691427877976130630991879648667045028088118574860808100082560842847053860889279809652555104302286863742352854190873302282801227758397628079623494648005913030728590054761137496374869407289838677109328337911014754127113235561924993609277156995261600685609895209131721532955317908373260457647578548257815707518946509452363558548604639272583176338084942962345864238755860665985989933222268629337220890259949005373781670961319392060717601545427358830759175001678387853192591837594768305290412597569851635069023933884120453517631698234832747447333209908735709659955709643087334610264710503197211502165467622190663200451848115572632954454281357792454764883206117643618208258556510123628852882184224094904635486566468792678380922048209866346870365760359487414443822184902833129518351738210693184467466606939407587799538311161553090110578592212582472549558320200171250408360526835949056424259422643633183696122712387537730477436621329470343422885100163904155497150564624150078294123554291321689969289813044266904246697681031155695795999366606829833471046004680750820361918264141285039512090478016775359401113240585664930557231797028485958057453432625438297043366476490458494981158083977446989721391725005253634180345662549001727520207082600136100010106895285049920851853672234393209629898440239714229125971865490042124449948874008442856956768966391417062866193222636431636199960581523555607090454220633859263887052747074108526164810757720768704290277378064171875815065219078339156865905580393953465723231531091488910046052416992786640187786356560463178887758725592665982666424746904984719248501317766251980410238026641490400026310155586991814831517306016562340471824776303547555795153692280674906970811603240620443677104074837400957655678840177059771007630381218221724396414384846238309253131607900626926745334179914976513624878824688834760540283826760086129662003728944133365337763992686289379303792627869184927818676833475165582759447394844715049569265084556109442390964329302044381671842880485891912744224447566541836455090290577028634952813656538727200078733443984510966787994175053051421569154127174726148327573675200304194278739819950590798269227510368705644414279773271889970323915981194136518265561296461321094753405240765323082026975389590872638095949189572584197829779816504815342317374221036243120363094150136292544249303650306916618105931601999786768392218596073059842786067649856983365179624924398308911762303943391311760018642926612941631149686559028533894510725496453271228731478788936692616676116419165583078440857836134359023081339932076750424300859129118228197574337418447843689568207099205041000685703352849254069490983708625421903221625653828942095354167251808751072986168176373436035043589851551573086116823180040294716338766346794776416028688186189789290540360714703463975704044312017883542000542751261679806059835940073860507114713329684077122393034835556766480413751141455619599483591347367657422027939487531768986778197532084933138356963892542069208761964938665980205624781996928147489104800014050022672329389625638920823596893766270381574515806993814410730609428067614013569308132617947998106812848334239258868265354938223975822853272483311099593959789228340340981466588902000304981596487776078561310366808365511591230230594897445533978973364818851201808587120888583027586068734852275786761679112861861973180229567544791609519022264381094730829768055386811849283601145432614510036134397739718376939580346347647854427562597299018472630659921131566045426181253547941422327614073396787263687013414808239181947110278985953100136405144713046733596849916841243233163303325227808851832421029995203510477042662285466018957491059088572309971283285483859203861009247455765144748327690553972430830439822938514476967525172269584397951867683056635862471278528732248860809312022468771101490152771886658202360067251484402686164822688825368326435567626359290082212054781066769822102679003014427923387948723860542045821275088825220336027992712383242541443956764511510629647011694118368428473891994182626701043021595635895150054554974596711301978961767743607397255390494835591802863252042326615036414424834316463597147378276191365114329664564010300502866495896302776056440994208289061307048826392184688786082828590628578078776489595084817242913393932098005931077499554929245292863990488571144736128300654675484024602466893289911115602285961296628324745020467792193630919901843478880472392839300413393445725579351149470717532413973773992370843380090149231365443506155927868119131337172739462794900429493299376830799062222531396867544743724824876811023941845226132057501438318317158452605221121254733583796891723542688958700715957302120168446069814834112611955357368405220789276123507666328365345908337540491993832292528512851727857943082121416165640011056982129044116223610766143299181471405015012797658292551333164561854966137277558035049685887806067325990829288140444003623815761480849860768336303103957660787231078947354935189689966724665183192699240235552954631219373844797814473550175429656451551928009698904989540605065913077733064525976495053182696380995387475546204432298177877874163863246643838507523937560987066459330208923542423023160075652870609436023339552110595270049904001458653707677356828426209265203863319961352970008962979598908131866229949287306970015070523359732045649978105164175660355290009971639415624186572453741212988674564450170573016891184543377826884753774275093429203476997097209810521372131869943290183625072294111730972217977805789257171716017930006759432808932586817861823069430754818888058908391594357808275935824442975094466111113051596095939776263103403006664887745120430009890316901438146309627936606451627073458774818742941436201174074660862696888266166782299490524274408055602422984284295549257970166266085237010707367454943686817898501309465510190538221092002027526436803390605751943514488110088469753588933413981434976195037402385515181266223699002937190438119696052419544820014620339070840179779865860596837628088299711810864808551934590428414564317277789144136773871109766942114109899212692420214757548347116217824180459152473198291624440811890022500788104608208143234477553213085357260722087713107990396075574747369282600302090801153827049229174833910534103588641505509956646128532631944606455026322135893525534568803488992404294881405720310488753610688612866270428641392446006586601758895288137462762989854740234626960521697037308670592364676588585001560789541346484452727456922238797267772887360572023409879341546717796667101672536502510222207106319644470573587980073858961373448707810307099626350186261001607718113317832318649983128957232016221118122387701241369813726736032851974239266565669144336360440657498409722892098156447743876753066215576850101504617223437377502504820396174124311089837339953027747857944759837040863054735699412501095352577201664243802121576029350711461417947659680998648739626591906068611857896188618870302796114930605426517118700802962552492019876493307288724002964093326397278670138290049860367325626605139437623503068666406044952071738106581932503525970661400323826219908829494475429112823403092875717200368586657923962489951139271364599202612399927611210549313122146141833767357651198341499440820997167966525595667316074499930922664279238899880851482748222061288010545366330620555451102611620670554357248027532274438746543768728401576226492846542572489449213089843148968754328818795986454324541816672290566389282520774956351656786983987725171249129750120937863656299294701293446650891335771155534521443598485141876417819657947514762298536228878837554785382549380068141738313187801883183031165321246324046380593866856124008238069112305737407462114083913897759598800565386916581107071554870722611449167073937552233749838694213827867284550393827778287107767568588130394976444418773629273858624608032417555506844429362047304028566590725989477824934210290024785443966065261838105352793740958677634173274222948762671412871494625601524169776999982001135639388410550008757967376190974669533959129304096144173777254276122458700414688401697441527966383571867679534705955059275981741946194209875015124496371262834494979819179711100419211089390091904032691188690400906385015988495702540136410001995753178718618054148872776173344557522392979060221483479295083181258076750779467945672877572086209435735995049669188446872531549176567536409265623408174251802952992570334266475326149639821167876929758685592958139899672367429511636933394559933840753609665797606832662021576002256441204840676581700804888588301762541094975961355929273232761825086917401095609809460125287544823921245212476303139936866248959912678359592419361450625617097008005958292234295949693074241215218709898308021766889977365500392751850360585618406900313295563632741044774801649987500622107667197574660726391156463029616181053434821480028194167296736791468921748110072881547124493381299701401696527568648491435707793618258066531101035432724804104200496882446324913807590256575260899653594317463200081013574884273283818814108504185661721114627801898534049344343950746751891370032678211897503357724661849185343600585082273006806347997032710628196816551382471912048661570966362496702894439577188463811209764618504780503669226404159148562227438234459327676450053882718588092743075697043242217319119360552102607239482756428118848735021554498599338876502158380919666532780919578623491499558416661036730378523682823428294995795850652278274788104016625610294000625256690370551996638234647288761670980652894920051408345864559440311160927719032720040249089915451004517172466903109281082524757536130672814632682953178947665695791299394361160385203636996153645633126355175662139578948711898640897419978692735584300217136462913951456460057421218981174991988996682273772884106016544688822187199745633367297475058071910528701938616088747559012828960141838591766341566863945405012548019401645308414927529590849004468948885352333389028530287635630407021368904610397067101208058316555613704132355572590455656820266025281715105652693168715287027444264337349599424694069040417870084455525407134587427007858179677475655647191780222252987103484714043952816689986813673223384120751302313648906511159793644044868951787914239809616939091537045607321302335664873376820583470183059064345337980308929607750122153846157917960173201182148813652355885963163868814044959415822949817335190527741139421222555001120881824415345559911123148409976535403408020197155507197335712566705445710308018230085634227996419742486124567425309143536451186222104832246361160079644835670647652175643102734636746138390541870295712691799045762774197173252205384800180795288904534882315905608474304257051670132542868608413353671890746576675075725606135252108251094207675341314566893700157855181985047199369679581694274053945910084548632723484285937863197231663149377552698334786675553948616299210026700342362396010615983743716308711977202457925636547908613364310811175389261088171984693882964864617383542947139785849053245138092803951698059633526947687702359628480664297475503712974957833978395991634045615995046109943734648541288940013349719200724616555393653314007960496404760861739643141762480127793498070321083355013553209058977145397159125197851020929991603487780237421522700706340757385302677318860220406812497523335421612826520178336947786532898558715808496392430835546418191714213849763843805306129412873385099104572854685062994030318729936135218178167209543787702433994474332598874390065145573174820238920505111393738307329099982203517030304150328990090352529655026611001898925532334005342991353597122386188315307588972987944263875872964565396170607383311013155317636114740138546759436815584488012243565751770321503713199232657980065348569296999333336903496321758309594338247973891809734954717843283261854106012311064951352299005789157345495829630824704959594185339268695419694556113152547179677307548041185169527518398437089447890402862460971815151962539838075814395758556700723240391355980112792413093543885340058805069148037407092858123567941305656848304867161079319460286316393934423470540476087592689611023299440966682159317351005110536101048359528321898599416327586806191671623412391968107742908812108653686569915541437055122095609652747698837018410996014728642642153047367703104939702346920010780018552927084103554630230497721054247919674628736620872642023261941320826508218535456800554205289827205553689535954541874493971858647368111419276844650572150840223841934968864763572202081507382467666641794823678405690093091811336691477371693893448243149483242988846457331669730261992911914579825959149383040405858766479301466187488334564727049682706958684773075134942998059382848050823087330882801937460495483993669579268626466666039750363237256823284717004019256531283245695970372650321432672454090754048427590231824737890082824274939678204615398084506392747710533670353464242825720710002156945776628026112261509675431270391413686907222172688716447618461938876126091499700800965616244533518640686502491921184644440788871802684310936544004691978909949311157907709008181948251223055434212792554624274020276647817537492710283950210987993370418823711793125998048828237410475331994444376112703831388591190624231795944084431469724763660501753272518318133422752077118790355813611344432938678372600575248038974290934765583099551090541657158229280001111896682239004983162486044563609655068591495356981972165709367533071758201564697899256776104398365691674010064254705537964637010909927389157775632530906854629678581313958249940549521864880062477504448680426563972798662374508612089192586328604274285476629263786748573403962365164779537570215013059173739941217029016812679214008438013668305298034414246471495074936159199329989908394658393369345571921337552169169410842314974535100464885512029118016177632088191857643399715733122148948845368212482472776060796190127024686958031878937221936478494643712254235932954455327979494832030041490619059333561531039097879801184588575681942835699088086216011220815511528156247537244492646383101162873672179777366779541056148588522161148922452768403720045394631271425397441008243586947551468534576658255648830414354724483370721997141724878059736770975924053540546538874504154697873422750890301077217598365542972599998185800790071230630770247654148997824046626438619429875048920333629091511070105705193880486199372204215909654346484716633466615165715988708836140040950514886030874022470545240687497702080022426435354338678649997841707084609073786285863941464360416219980735928093687654486019605343918729454632575426410696840966705006977176270153829710603137081781296104982716577066220586385230418694405859663777571530263557566902835052786026239382799052174756153417442932243212019698902353882937368263238102452170680419644320949106925055886052640427184846151943273300732164143301506485945187775106912273304869460174942113695065691987643778181313353914305403183208473397611468635811142162313793121711871685709059000123926750490201641760111945205669140489678701055511825503784588987746153890464486511876106280333411438556372884189667944020062938629684319184133821592643852718984869099403175391175654165421217189491093074602554160716889152639124012592116907884242464694092074167972535840409917024269911205200489902255246600068948152311626223490950292303420767697365739061962742474430933651575806195306856864140100638170477988139682701074480410059738127021163875341729973502794089416322174817978798682999674509386914354185658233238633211044952704371452258496547152764413653135475939455548830617652014286969951250846544346830105911152990156664020475715945789826358763260570557322146548057484336249209514089164008562017834652502361161657836881747597115030648469828894720051239949906872130641513163646868645008628660448200842710745037978874838154207740699321636198475641478796908778762781167720223629506025132385710965545449977886854309725239125256033803640090445154890234300150375455554342990566131294402067794701843867688445427468668848112912169918663530265386678583901936832157911069991766564667349535762977577631464679573664558982165818664721993720813865683518651599129777456228884606618528276184949292042652770153520194056176739915206381665339983885721838286256313913984723374125989773852722949474529306476031688149842244260161751944105055497084348448563780303307961944364251405877445577315828817514800412522231928087089334893422321831671916553395454338099779496691374402406692058732889048552319955562964771479273352873326518075798677744478259136015686201864621724427029183537172208944142708666513785092870913274989046875440399728495929485496917217960474272972432121718946138583376096357930730504316157493751421882746248854266616849849440346200774424773872256036474744337040593696732001755200873074980316880177960620026377612479152786072533999414840856974679318591752235453490975455579857273148845015988780322161861751723214099708615424685639516375826191471982877473898096855124981733870891533913211697198268265012944885717167472915165574727583422669731550931648651324294398499466229477166016132503986655396287694791954004829094777086800855861065595184488087651008525598155449719456510947730810952635209484086343963323000298757739463815396192705419180177776499858061537141174090854386454030858896532699623584869483951522305571068859732434370775911133491133706006016092207657962842165730276595970478057805365045836660477799604719080791122244027835713210082994736409340690696835309748185399591693948784255861409596825726560615605491657170722004339048316810990405417152121169145074400915897685012303667051257516682629055357296007535169162988802611009006111135717353808363747338306959047256656733629262592417382187691414638489663814755280138971873177796434101804002579617986864960742877845392414540073595528235890630853610598577621231284149315494081098558947073566928696725753798967844706927018541466839600327222136218394142366960761101224344622400989084832546149834005504516418148321229147762698055750202292779193297216096446804978472850341021174852993409001796978407844197315287488689797754609223113082465873456312027621069662446651468557687925962652351446406974082342790752785940131575065142127919066147399803718057639042823082213624690802903952887155543580445630061936881191926802429556051757612108233759583583806958608445870215074835799674816438092425317914213688941000158678698515705624542936624352560922427760900418785960534798624352753985346504805322937356428193223598311203209946199045482783175908345542699543916968742920398015680152069244560728843403421185148609007690218302376997257546943353707735878873639171378536880618348126183288956546941626671257779755581740543855020782137820555229967754412152667934179260122549102871930322312229359278471601948262421307746893495523818064483868282462785569292734243801541780542899164437247918582994900927170591467450864714563111751003894669297547006642835162297246428877572035735255586386163194432940872183372880903160330247515693254743045947462331109113144689634038765132410779127209195762979111458141718800390506445759906169058346821477102576564878008565843648188291493776887108453880704173392791251346256602264205907388627025023932834813557229592512224342871432790534463813683837123591709362005822095661106718564174460221978861417920846970721570656842831195124159122244304606927855990114749834904026322830503823213609016059489969179715020677640005035886213928398483462740836179474996271156776707399324151253822705342824401179120035751788963019578071680104253027585344141326974783658112705678981361273769816439838224968235046343316059216778793569878185900330956616527147791333506455151425563389853530530948901419861824342810387237756901621844900598908994046261541880563519024880244299258240518381678420405855643748637010307552955608440176254635447856201380135495121243627319413152171619970038079312117034754493858842112220531680340857861446791449027371522234576315870470834929511530353341950663700469027163397735916925363688740283974401418345879594752618877599961161782040656863855237851357981440203703039887373387543387768217933461657156035051260978597325561935773320171990894747933023510141013460178597257006522710787636866910276220408111561767716679673438394657011517233045707091430300575049421671966534641084085697426808273072873619658968027766438012976560198010321569180178518108442481855170474606091279471825008111724276649481600458952223464267499186022971692419860482244206712561611896503233709759298948618126786252574757062140757090443277462957222872405834805040935354025604450869611037714992471815307287531565194695132271956631217692140717540947179952250263544116156376764788086425919843500703740492987843054928115243681482386132517549417756395471156865857415775636614039457005372382467573780624208452843492401873169200400142515648841525493870394954065405507696363565896245981876945526339335471692836895885914862158647387481526769724435651298560179400476034435549700497267973623855086133529606496175137533070794590140687815209124674383987967014541538419043818118801023783861353410184651259797511408262589266004055534734837729573891731118803331450006592745041024012131783680396648061931867902974336980422389399577326665950340263926144856215710607678411263348615050484193422671960055947612466381631150152685993495229118956756237682613086334351906811208300635670752284511542216209684636165676391391167097553959461614144633708651861936719565876013458642190354253192174809710196008152179517890454103545147977516134142589558022374946617808747674867316746171678054971059530134551315798685573262471216021375720949007792732648529375228338040746137546635573187949322979735748407912522041212879478523705152901850412043767193224222180882072314051795023432736945818284027731233766245760873635665040101985838444043756208800798510689154895546223349066893578005433874492881892165355471527976725255885631747183375360648867692467916479311216926769434602798410360798571112883943118940153624891391460529386883751034297082367256546646266575324844633199524705977586356033110196797501644067550411516155499920644437505375005465628236750895991441051921078683908458958361101726453009308381670119588829273698504435927739601154850097067744802984603379922110088379740824090198811829037758450700450911947297946317790053330845922772502525715916887750898368831247537147406098808746570372945112737249669119633512171486345047423725451285937060459074876210366730019037587621267004822638204114005448268542415639884549882691185910791033922998901582109572426430652626783221906437083668568993030775436661766192926797001359747790658623494132134284400249454960314475048819385484608069421489347683742645390795073057117926261526828630871221722031126571984298936067659131857122336211384111853861536065832844678792343401729403047979265045403864599950991024811865012277671593662100291567855200648799080012367573889529013848975025903249396023023206600321408568084927150269260170488060179231353654013631539735246461802248492644815338482515669196443030800589975155949826688976270831407532275818185887066342613560663257245085331371911108017226810398697957033957637970511002701730012817451062342277979464912180903203707486708833360693960433137871971087517459567879359425311015012267172152492502818539711658241433961616940837592684744898725768874094179111907446714235289642054278130390409040004033782610171370733870591648878081490868202474447238052535831236592816809036833767652314938738453885787806079157017852965091396573797770878767376611371146563784828445081758653507420506751807982217890782329804892783156957151384692123738480102613073982467981143264054774693313283361069361009338891557553638831658902457899720104361492865505789607770820552002569570016904900272109417922015424435623869695381355401506336785897763198061389411514693809926359764488936862487725807283552965157552113238325818086723659240684143560765610821460393086459269806029848111109140593301806564337313000089880847033357608897863747753392767923415160715236932047431653676771798432450346113930896291771382564728976364074888665771977753146537541120191845509076901289780251855371427045469139135244008080213365547953693633328091225416059098040639216642057839352766524395921471108130345458752183311748391685854912852247595332593126790298342003459697204509531470472231164005811640118694446837749597275779313044601411593070651711874551248021240991377249114423742121752812329403410141414604923118226668313656449190716656038998328701039202839016513029536253653295602435912050081396078320307680722669701659494817158416978197951808997715467632275697186283199661389398052604997330481948796975576656074971151588468822206124710507876092162776960531616398756662276766750646898628914718564908843258118320766107395590176101004844614100546453584345649979462407508933211040016398101242854786294399691519710862370705316186012115877449703871611153300610905631171479382631811151647269174093986167756937931442080883373840094225196338399887243963991430952203672133244300433792749501927013287727249537826735386699779218829232790398713308905093457506223568542629071560998186408113784149518957375052890987444925643250739992534892962116350764826147306812413772810062534998613675249413554984206445015082404576063912946337052265105157966797018538580833895560548418000366484233072767158479727123131622271768982748809766461775790582225696866864061208839728336659891486410350703478889878227346641125229208218411640183576040842250489592757072655262393570957764076401423951251631894875047950087596108624666661464774578343285004315042312329863694572138426962696540509714465146825578808066177354305330487809058195597993278122197730497914847567427419550146351863454262355916648195882599102172787898496511822510187169724073080693421145097878208893047456317270965049557013193767165808125171872711801112111495119244168975356502218200688534934683218476289309710497046983572315198587577868032113238774041670606921042991747468308179482762844235878280417579429576310851970915558644356621001797956827052473913311741480952520026499285565753904850668765964708912825282515545494173317148853534654382469083291968458806760197988111700802622399632022697492471974958838905920842664954608116995813869008884273218038783386314716725595050774225363103887255759912880533513064444258451935099932994101543520542277026763128778998873878913616025227225549322215056247482948922214190835899143570102405723643779324977188672549941782726160341309728688752863060307709094951569124307860542191211283777653560664761010701694354974380266358125821253474633269938305655966623158480152528439159214068152512774971339778634162387847453669576029015702772555528953478173749741772579191091562936640128101772881212290320367057265633988698298406306502479298198092324511148899294305890943709042894265605623223321534422697822834873408104937645036373945356414406827855696367969826351141413125747217028039127451781668948995418480901319766567786916003285688266286707147909611176346770201500863911674947064560851003722297300921169713714064861176133239172380378921358458376355620961122217557586021991665593318464626827821946444815641009012712624508816527303309157100345668341942687731126592705203742985333980397277934289238602989298283779831903649609539092192111560981498667554307212086226433618825473941043461226057971773239109608876085690466766487791007258720276775155770754702998949282304747713211942744672916705566039471526018629281458789789798013211596913695733727109654736245462214916668293098372481919881757476881215044185921209922505359543620648585021849659366921338025351732217855253953943433323705580560475198821668705782255075055019199218105594435401089777066815757367670789327885119242242559414932714270839748122365664708776521773879039870920771995339044534601804236960772049367816905186707457073926303051452684737901167494906577900474548993837396742337528989268336376646668201399059780971583512263212720232845305584292455252589880439198048461393355860801308495970367723263691437480603663245234679624021155983900172472676385464326870373956949168728761449037175761881926211885145448026012408374082648435405790401185852992993777375790935333911631397953224313839896689188962175024371904807572429234582784740925472439364076357043959557156821585656084512140759185836784374752903498202510267522914607529614311606113503593846272205834070383120440530715779456078235823785400097742175047887600706426772721162772399789899404518859180313745119757238071774471451309753748717924425170995407401387108336039127155844026713580688968428521002364517307437980648481574540527877624538107539533855480161059439038578911976400623878319432082969522251738756722837747416254380706755486730552821245191338878082183558046344291037293218735608372245322908014295029329081196593094237137426922318439209132185326339293720125690138434312770630792273432470783530626048924439125963633416848911733103039990908866790456477407097273263387612367775016832923288577391399933221611497567451494166500408529924960385002308264092090434917839443709582648908606079928533525261858635668828093324944070955964469183990161301267313768584027888426033173595114564122314899721797249938495025597168934941553277824259941462522169099863621680533769405440723526508941994182148015566260617922528824899294859508367948765931575435317884723426825635716167251756914164998478378774807256088289653437582986566964482446512360090746251029864527196932378652184429752860635219874159122660884640995217828821421062596590793131469805651346412068960062109872248825124880977456130073408273910236729583256815308841194454934328682594304562588335072052583601702380174429123852210030357163597869831634250749423694910447033010476379104191304551783593445131929066431288582200964057470552807462350407510210312163337100717093494356643752276098834934850911640705013590446398057129322869412558837306537833098484405696853720386087949849243040522531013512072649246542098256874687507282980866146375988745241642795528037235880582475672188459778213463439416955587337050275473179365141021675129848862902731094295144809460247229495466809812449014733922759432008521263237937822138680871158635934498150727326646512428917093544023028525317365639571449357480422686437722565541423111540240082297914782358284737495600306577684018506076876990950076301387301971573976859006550364147512975373620033020489180901188874084949320322984667323787468969134936786750898364144131855575380421388683819774941701895305447358776601987309347200161468379154125384349083392132405533409215205132422905479582464577761147396214476797278425918776401041146323887724019479863192252672533908184978792609721697613917074225671993081280190287331148089226355482679889243578952251980036655601488906482564740055624702976219944962059560411114723122826170795025270796518230391383263336734878115989495262600544987772151060070068428561330845622447015279075478990936728763671119528661492261072620470382487892142645590568632585678972119143489707376351912861517114930938286576156570617361905109843624835732734629721022712807137470519248939309328415057181478496549961895025186978216095456406721337838017512541730228341849255974599332104466660767007674659058090476636614964820872339163502023214946968541619690545263507095046565937979430877431544140499837910612314487547758647186871574654849121627378158008796794654472535466349329233370816491977902000905019146692752171495403265459505899102750999201755771629375078245164977751267215553960550678498524903277390572389777832788131916801604968795342385601604054732735216176143805334402645382830702968784031904715098403081894192880116010576814478377380989464423442132674853524182344386441753408220235443820630408183669537999904462056378834471948336320711476798747396644791188086184674302086566158216888521159259133226173007402837093359355057452761175529380639172617069826150939581257414832224855033142808956296210831807774115571008502768097276257710813802182193332155739459281036274843828740180962973578793083601955726511998323284932817428826303070672585330813609276297245886158989597676728741553312634781774163724588557734498790720379320224560890111788109223419398000919047699821175461740928811044302594313522461121232740433221547133324757289896290528719435456560328108000871151071275065469764252120875583565259046044243974356017514228154555874763713617123190484769936886779600965601245133714812282781698462692483517700163415984473580440147478395331858385197454822050683369046982632250847285035847800803785073189599891430171857977129820907899087863762454379005392474981052928551437946260275994626918474901351740803083886755446538927164332564994605060844731693350532422691926386818940145471537165628474452461753662296930817425184621278114674429789066004568199134103377888881746500215450441477247534693408116971344774777919630768181383017881580167534890310781133288658333497916115634393190869899445294315731236877259246115715972382918282559256437386858696340660203157554520732119676934745185432907995138311686569670301038689996160324642975011854559705296771885475543050334339231019914199801389582487597849898363396058561064348162849559629639107888423838868597923779103312122892171835869325914471203736347033485431350164868260976230114436663103455812404043157933941625357357852333387386082886154166144300052668072031625166719356793693324830606265313454754792200131325253255117998087317464892276249931105983299984430157553452526051010781073356625771843466249377722361589793195417215662350378597480229554529567104523207834589624190545692006604271519053545925295285665823804301697650253374924136894101261028276111625945853970865835861295193486194634325661913552920440742994910165366597898404449326595581966303570203604009977132592568677114219756954297868469053833284988703308907752228601711552338301376592238172398444126202981218554785176362068221221685452796435402559585956228382953760579353718492094831425533522005682757057355974034436743421222711189784663768604682035565800883634019647389195257701892041128642806135288189511053844535230900370237659068116119990690180297948825871191699174711140759791682742345694898439581113514622718726077371275839750305104969103176004360792025673035860002013943087225650200158272289533883579842612218367407678820963145991066127079297074000223734115945592903949005566174768762280301449251137292695080775556498688477373419486959080657251772382749223245180911364354138427451014857870211371926868472953497005681243510715231065717050976854169311974584342329088871321491564081727837942338620655047127049731534992398088026650590331536737672178111998592394944730903858128828829003725008339829200429684548058836312300399824110873325871696298381730755715999704118552563817793716730342793847728945156958476122980812336142420053313351034032238666701414348957171940472444597421914688176678513117922670354964625756125856718302698584388179690837396202652060085009145594431085530758272641169748414440081409988681746907134994584510927652781546445014523461465247220045572363997554065953336307759775711062078531452327156799230212830402207353437329956998398798107332585081195160364878887098004980717647125078575163124234980008251515173133497131417248902454910248994799356374978441660805587936576512520222065892112359039278050936401834040872537419515349436122862599138411624991737919626079684959389060875150547521122113304021573322610456156163080737890761439175828788416727927896714019454802200111226239366491214400055772784671956304588313717998146635923130157059315423721426497312226375621399244552433758752173901185336432964485842908814268629991511117793722151645444863345909989206789369199502188573785360185058744112658163631004725192481909263205932944815607354301119815774722291725039029530194676920380326991121682714147866897535149921720776837639019206880897529672482022154280491155625842709668873323403031703794068096106533005432530849461991117998474667075384910378502143293418960157858268363792495641206253822279623350922629631898963561628626075936980512095601514479939419671109037731214968848944696078079656715058504649400489748632893050568034270704056447268143607725803989474827604850595272551113569168084157790273199426224512823226941075336344721911421801696488995697627656265095729086752954640746482567295860989772359234362548516875201419116778199864351279939123349017913139922350449428984845429016816784900298398101558784471260209600435790591050248980898365686991766755060433148798416409118578437983809078841233350409367441868529884846448910570311809705589758722724241565709840480424004649493319244926773879283322744733064135169028914130739355830308313425366953701859811328772305905235774740066661751765485859910202654578978585459454018730638304965218786419805622877352192686990004687326551317895845062865801586019684648758994996861854364402689855273973472304284661106133011665946185472057459173699267206606787838527412272883441017017828201635912569031507599916973211959715628748139797150858058742810129503665593902352389487334771366708255705388643776303033587312632883006439583549554002041728321303489726412530502963477359007342374270408639725579229962989544913274804760563392043055355653832973104715035109678903321336073889302256336551069175309366765050439940970224862104259132802712706865158589153051618351299661219437220980907047359331071288951481300166518800898414948906016554564858772716141168056045623733037532529493431120088119548551470083687984658559404389933639939572982451761811692934017863637863900092242011540415224622082265017844117293114149118252264283862097670625921839518631165049237554824664404774898202022321928297068132591723222651719133141719357869175471084838021885571377855185553980739594213731722003541474154121104269839308943604266901686443342224782570096439638038629283669750744803541065538801610699514354710501320365868570454034335526213981554270276597710632661963784016535215962381210994622015173850200594982354030298581268804595763264270157235017719474797943080417959849317593407687045891331541199674372727069938479958848713355259078921136000712074728646895799740878195486398684453567262129750162648975875176873937308496765829077526490466461086118725076334238604916987760904255742738721651243382040483308791239436571717069354888208331365127306646571122526050709638298314183108157068794169156929098145408870395423338754845927516437084649202102246354480877897076753290819358769440717951554844932169956067963177275214602118328048788889544340420689547151908471303797419775404121941822476114107234676371962030696047555890261415645497282344512112201806067306876061823961486464554741024114809278893978636545062529096947334293438352501259783523621675201741644677304086726296581538184571488684245113713980621350246691789457106395429893729457069852699900838917743533790577277088075531787374094655501850033179196723673098124707560104518800439408923346144150262653146486502343485552370065366957471381486634015816281639366318575846589832605605096987313887326614253736727662207915194768602143338326025628371743174364760286300114270505773525859703028348280504864097256545852298638275229091661945111023258671667261328680648600188647547030503914480169569873651897129669268908151314946549681798531390924116603524212310765791450197797771664788947886414714518687548216426605622995384657305395995051362029491430577173065617574832798314462773962832508617437953835662558814374422066477297384824596403109716654175417620905472582932801287532888593134423707089193468845457169915521135802782916627212884559611609959977596779609336825702575465305694620619311370633736229963753380798181785329629700501221477017113016510368478244453446645009295905970813626466715035428665032938273412523443026022669206379884567976960278586035959440513954256507198000701756888567727727026994235738773245695170041404171087897966013156863082402666911275343231504564353113664236222013649433706556504910589398284830645782071469169450222657623811423093462245921461048296606413908265874919756789018967676289471101168330476839165514265400638323240665625266832218557116383304973447121220532297037610972998592835244690382967718994077035292876957434997639504732657830740477272567644906100288625636728532032109710436978240464338267898822113963169326138516182806204151821802561102845258715009581327450163383678177872102650810925455125354643070848607789540472348233139086170404014002655202562582048608382584792250360976921805079027214240517642086403159008027731214862270393824071471973382699960175404866515351890260547923406838212464390020855083834194622796257246375487560900278731859679193290721600875353861134819716146547287651124675853745837275861117520237922180285627736902357921016495378347143584152660450230284088716607571535207484193322655291637635324158006567754359619153715596580072136093426534569037149551937622398491795792573459855681747974758581268676122642853324235184649895232296207360918162788084202414863787692501219404804001624946104135050050112070514158424315171493692396160314505323355486791802662198585797064018606956120491761410959220236312257097709022480091779855970527628015504663683995103378752997975106350792717892924034149303420026501604991372319152077559451765945705980144802892067347566442824181511763444647129918722949439381402526474627409281791156542098081889545064716388727754375061461589898550423925849938849168796342315844533220714687629087816034505153356682359639945249559709993265485563426312409260020039499572356164153365108586853336825289633506603957348770963662322588124622209357181044312677770901374927394255604744047039702996535784796290053347846756635835954832897414983341822720134783495687166135001203016656465217545605106304911590264265918700538634326124041934099629863945654156209432508903949687643813854175080009228063295346299603044904841898599575252539034015229448333394748421994448180120331166955896684766364748778232625785308775456687323161626042140950178792321284402070803684676854900298823536214052314119833021769238415682252135758191515069402392622267713716849209534695329972583650066972301976776568420495622046241004812256123066033209932249317761485266416486441437661477730533555995470046266859332171233849557152174964812114794658551353471259199598320164658447075172446753380828985027083172887641270072284430706002220539671031867651364579598596018155583087003798473287167213910876777257919781068269998155259110380854401534991250808753772808699306381280123940706808394568136082511062667213968525453928504375664185729256938256336876343760075958605077374090084310272410409421293983620465194319783659620986756685820401429058077135820932958967515986734514351211714805354344561061760281449716526310993188761648018831213064523763540931702381712995904819628808600210433511628145353702849208494641997324656615450422701972302344914211124638577395597021016835108268776195227528080163698536038354975436495768941647663807334047186855420532119178351910042199052396595070916890519060678127493231025110492357617706533105413308648040411743623220992301482588028670870335379974892182747470288031163780120033941432931572607517914560298548543042456341020489063073706641917809818384621719880189736719290484965493063335300284133451610202797741587520975790403290525337480262206315441363442308491956163297511307200563074539002531079140280077010461164648391627346232338640673776985647229956479198883551599369189798393436213853414332690806402380895173771712711719101895054577658918534481286045063307871747352322971713266355893516755428417525782350295527893668465211718996665747841097187948297249828914109738803600374953378439354179358485312261109204528134306402978930806798829579019531648042933592427031999003500051951046133409034413556252374265080504756911514958184029568481913442038738620462735661411647385898907165396751016310886778949579649486812251793182359502835927690585492689554423510757458457622648274200147135415489904850691074469297024548669915054467590631982955122953148602556951139759458085056061768013301992503553575973823763738302021364664392536876725615542138431165678695778196902942261944257998192256334636489016969873368563969912642854345745288777732741215378131335035343979534103006854717813035111795299117700062722863200648596698974144457398641718772029549986853221439045168906137785040251599207203271356703624271965569058033107403035142452809529927290041347053621290303932464144940385368377986148245206574920459497012627387837358867781523853843994692841364601552138457805150212408855610938566061971884801444521033298740080368303753345652400826231707866492500548251201456073610759238896936854130337488122686891485927104710269015042077562238296699188835784029478940134010426014310117367227556408758201802169162310223651251890482381470478358492670671059033384946600674526722322034266528161872220275931361580153800681384484474647637618893697073757726523958853823438158615862743651296324183271405218588557844169959538038647200291027214070296334717559070968518214852790076193335497611388446252486986371319564650878984075019946910206839633938078709643589275393916138501667641095473556044027214554866970857061443280751476104648343258749292460565332702831919700880444812820977659334411477108837264976857157451474806865851336866235860716600021548450642128139973919212099918845350924929010155092348758912360673055008352423042705978037429060967888810093079869003422499787665871509711365619130852083865172541676949608634331218978875673569189773578597359780000254638649249685411265947736332572395591315294030946541171420712094030418152981131634577679202730822471699054166483607932737508577405313223650072034494311513088157249499944782793184246340022808642174464936674920538616684493599965899764466773831307718581749326884212022400419668764459466390656642119529526723178002496820170651887675984715761722407989080404860210167280172615309120616561056086365832342284532267639134989438169816517215961914476639979020556069918140025034878506757879510733364085959562612532434932381701109361752232213286950786823911382384207339360632355240381556906302085610665953705978460990133278413390492306061733485183939472249328547127259056257986512300518028693368014603303613287921029434335008229996049915286712886408884162277853590995508826909492797679691969971252984101220735681545967221454824488807937391665418159343211733508448630900341178778813619196517042645320731953095599273370343038803704028120185659109441286880864369823232849757144390890482287866568937971313521947799908100057839022776708681899004398282510674105608149066601326217646257500265543093476937331869745289133738177024155289034621717668810966302208728671378547192531745242883541293756260737433329485936002702373283289798730575099308327357415899955114390101293764863444702026135543741059394998571648152812549636225221630171797146994039608153449970104154909012152073692332403071179060576498918140448535935044389455838193360515419220923804274178708461013072736313852422986360784513116042086379194640025877163554268904640156622747930342396313061804108905217257725244155689924032863749050556207007633093068624505523365117342004477929326945476113701165081564925282969108077437980881886438863833487688668356084317486706355322432055446699492336303004518998806715133460474197953636501142553441602381278429759965405822440515258454442631189204810730279784426082120862779335911772224797838398092682742501826216878932642293300318184334366840107539185275289722634501486126170882173454097061143981642423754970802169708323123704166337706070468342126379340247405016069107236119533797476573499668489117085714663974860894153323077619075324662027958085333821562100932470618369362806062303080504137162688008273068646609659166622006666461883196968145821807286973293604965592809268701264257607545449481202990099281802101996337588027629933029917627153665902285256226011466256429560570944500700055798720459996431704086968619838315410021552189519036335094148542015753608600929196778817460028906784968774135232748154904703507594521081587915305458247851102783312382911853684514024740879807876951715419392872653096703759464826041114303458674091940814719024512740612756203640085116272479699494345017208607765365681277444495704837567141928620106053257594013471100468430942025732015918783134931609837603120397779462019412793677547979725741854651961048620551961390376021287006363954155736486270254148755795434629628829129513114720170706397422616096724221895489893399143681312465627384577853058816561781304086944822618565443593985677771144937247508488655230747388626920753349158266906495317665853917505716937400526654602411246359461369395649687875876552107624118949893269862317694878477195499735935588193558838326208044512303130808989265424524494492893287061541691758997966294756462850275964521081896464158431450953639760761501562996591872797407575585560724393467428631059459569623669837907458118170621069000749664374158391236093984354421653167359334074576576474899945024911978670065373553825693395560314007791793127729192376483739843618161612632912284256331854189341410944310952609770979193927164633949159005381224881326006365144932779785825319033582139483082292155251983339317891889410461354835780346513664897191436124475862499672344392984557878953710005607696874666115129935249237408313684237715335564281005706262031227733258587856626517638368717706488853150271216402414128920769504325513014567646245481614506834463660920981721910368682559100542397276889446567364966029467541346558405577049077417944935958970030695910756576140623657152025565192293618609733138172219574850155396387959903959391451956266234963808466874273806013944546439112056214275662760103028532728676726063504884873464719739644828620175841306509033119430885803765130921673899206728322032217746247816426329465371357015316278863386528930303913180549802321092870722924093269808866132391543126962293237865513559417772755849933245919239628190458633384195852324958595739128804881301426986749053199540983467862341146390814746521435358164905338889748000530851077861541513668699017197367559227451728208519115416446184395666252651598879817845968510196171500891036617249156377665039134883199191240101386896076990066937609639924788091033468909475086574285687399145595577736463054170791582918571656359215869788461853531461673575958496340175259744430476876071275291285645606090145118313725506782970540851840385563177400336489323794816325605587143593909196458483428520022554882603896770023492505283601479143136268048127971104254267760535221689709654125279926139152209805994146731122905898045149354581849712390377804580440250883688637429552169262588033423352068795569666644901634086998694233188545426755741618883870950045905591666992257809457724189845077306772389643275556516622249981924964183226250131298744469127607175094706313235025772989968898720663608104674292633454087109424811767905230151323604205247431578429527236867834746872945580317372328621336305509636063980186473205369745761227387621566437707795201196199623958653273831254199579743578566920354763073034812837971812947861239945116753497099668991531250995913627834098038008074482142156093280675474074531199477633217478248126043871246376776676339091711801537337124867640689378561241985747014126832291847653031129977375357962868299783760221620723418430176867363082547991867163318243383162597662401010000071906822296129639650566614658412498923667488826498975642536490649365369085159024483663464385221551035876754788036144763060218681520365694607348175945443842312622319619896629488215745888630670322762114297509712308424333158834394310786844661295493788456655859237600731254617354236878573297843831149811187019226971423619100921826585221711675151195298453891273908749150030870119998028281844796918646613150868926714433481787822288142498828000715937790387613818220570101293930907609598311142837880683387462542962436210098671466980157966619925903856580099860721117462797510002204469582242108444303956419349370879222941011055237061393239967444278453539199601274757764780284010316377653221313403262088485296466483640330061708953866068559911361288915089385535288986170077749294666587975204472275180148485428175912874080094311923644774432987628302164987884842206686903454695171424111616914483988820197836670376793433679160956042817357964177947435579066616816898825680524771209988298070514761576339971522284769523270360766865481892139186034942266027852352486246960359656776612175179888832525838011174177432267691150666982231558260837370684615914999492183020620197661987987315109188271565786531546651326533627758164793859609502524601771195959063895056435435317711581373387291495557468584798820862141688563691624232654664533345979553703574768021134175578552635844707309157612718306457515644378599107038654668723115733904958790446058289402847401381950079189675298503084982783197833744995111391533200196064084425077223634664832434822705416253980566919411647425756492473258068288976269871663402510136242519445720648955750669335927204147222901073746515122499713792373833487091716771630089772050285587375867779443945471918024249688160646316887661507121475192670468132370730486455960271121302661703388084219751768340454585104936165283617739875051299219451244834001709107110015196142753924381207319062810407547977838292456748701159881630650183855382582081907638544310017422006272922833908855433153636969269522649865473634199653698814310469574954032571488969007227752521486582918384718252701807727375721039171039952805903167995821929165794750981059186812564910054605459015738385908907966852507962915201702418244729474387426341267090815210928066063683256885272061938692785611132020804644751849442583855693483833777917164742143130591809326428359240424429998312280153709940032288345189297010053676587199222678652970448210265844670212481828561397115232730347064118044031458225826623019470328472643398702115414982177884751236676233969031174520074260076356224611890208501652824811907535806762840549446003284732553173379677880085269766369927652287307259776557812792637952000795100752715082409852086560678682469605446821020006960852897079622039004729556815187805516280836367747495665260215287572809213160228622965054668347115302698130115904787065186550133776137473978944084881332792801126870784723186860557657021119185239947835882424683451487396254892918962073591992007017356115913684898247931513642014311815865196356626566733428747553534247851619495109557584302602625299423934666903450420971587844362321628269242545169922546239007940218241631307554983976490376038974265479674875844483522720273705202315790777437156942089023080750606227775823116039785389364556563755229428029962681013321655173391246694451653510228491297608742696979409559168550914121339700954007132466704000206351100950969963080867839752023356165898776028317721111870419740767795570994936151395237487212375502681358523424462163270532339306285129856650508813165387487309773844082475054286600228693114419061426678799827578893742805808982968398322468764962308191623123357338332982797595353131867318916292556318894243778747636764704067940795819721709633003085631899415576290651895543346926362536974109030371328466583727797831074210945619298146761056208233993691374165112986831071072556558353512604061731481519698828245510815484600725933226011579977624720405486492788466379086908441548104361803389967581337805434204424909482337434137885037332013293264748346927774878992732981297457848162553733211745369743276963608955358706882771908379224342360807620844913412329160491642423258418311212843770259322400542473538159845198193191373320070136351232497717841920417240816694695303645483089618345152724304813146456783780273468958074047178389632972878211796719154825925806376163739708557152899135753274324015834813262822041087126832525766855287009614325194031728083199852845599851155918754937739186021821169274258164420611515631076202068982916856084751029704144875292977959735333105499930720980339125091936145096202881208473568932079083527154620875486176984581817139354343830406461653294670385211358310354940585408749918258097749509862243857603336023248980114639856864243038809870330082079244856396632166476206902184591601307667204853533264928166441583228677808148597190497116017059306604779110745222919691380339558551150179472032340729470676705420949707360500252306629873501289866665892149142411893842315951061319227976360701351314356223741650046900847359137600728888033772858748525092174637471093271540550664856731988799291267754290109777900738158324083798217465667317613115442664473998626890471025179831646606411495995354963967747194340968327458579434250187351631963870913035019175366263553812367457562261668059257853556469924974527401154603544794329348029080150982398997879644943744350318966015912050818434707371636524342763974683004397895643348799034940432033080742431716732668020699250068250954727442716938760709533018374105805934634000129230861661198322433572674486565610977614960897699905176950487629774853796664769473510934879897096976055584812681502154548255127391310993670009933272057781284212577594994366475017046158873237494760788833325197028467555514589303912852791385705947026476780835614822135376030130770104093875480764139422703188049963941092563348005825020937596557995400928641787925170965331491572563167267870677481505293085726208466999520969278835582079916973713245866369448928669989292990140116788402751032756502458430832881617454134260725577164342298943384278937930510361786666948504729939589206498747562466097784799380242671114852072341594186987209755638003244346646719833410149436108884270408600227164509206102115311237891188525086163785337295149435701090264514331662285308608469899365412927080063982244283140208897144362654298186782549183681983156716332873628841513125918797213968014406711674632845475391506024421415967763964434701974758353565937275994895234312300394491724716481303646892979743305880918020137912906775573412295616466700449854493653202071182414663959888921734474924226287533843891235604065868498813558314597917864011035268214790788175972394869897193405761486240592923780809112127856097265388369560088630056014555494206202314124183331185186241346338157235222423280771190210051309877231028439583481547553097499226169285022435654744217552801756676973353536306843892471921695264424299654192135623514758500502259654450500669423382910771048100210596000469474439431383073427609511782765906770085851849471522559188258096129016811399564244336838805800988539307344045134261789422220309349275433015512317300504774108532066991205457550604197151727215752294702498505720515310683002602627610380604106669361381099569681744598699785149741269785963151336443444348760577580097989233416421923789979518459007747919655566907315679358224301752406158521759199495218699837817323182687809488548597627206595593577110213955198850252732472828293359142745158955813153805162567605690684139684453205776401756090841872812167567102159041398153435063706764972514633515614369234452354623412528307717305585852153036907560502357607497572301491046870320131707060292177363312155159404367824016050133525366415647535041633593945666262760224993300909393278058455809621111450253306633533892527492150035478131256853793241189949151491777242736311345500612414565678136133299797256935933007857142234601029015314522978323026485806885232480288989732944183298179450307367608263651290292635026593666154281553447937377773617207886488723248243923497744126882103669446621050202498990971184004417895002943388037874022567125771047327168220735503204719049735686865264960181941233575856033385351361456510470557629060376723040740033730749537689289284546594308273268867790488336430934593548580455743149251873375109711988130009241598144563313769777972387599700980964808763822090018812517401786840104322999640758682026830234245610848225670105216328974112510489282139489414263249589786594169999645474752908591383482501594602690584676161357301745478761154983624439716289850021183993563965971187898773107144261422209600674407482273763690718457308283897003854431541657075294473767441345828963104727560480538983015124986606368789642903135187360541689014609873006370151507210046294808742333751946968367167594173087405851250817117932567132105862785385027592297436087543864968648874872262235841522125228482508275683115333165468718699236153249889369930048157567906993330913244350689543859580588387732929412839651481265397352243990721861587389646724059563328790875158465531358413065142844826550119868625614071174382170916950682962254928918730335990444672560948494102872440512591846998907950512214499269109368840986030377577718281472548536822533231885602850233891948202171613353428800953641433284326482492081071208240553315385131923325641074302451376026479607074375982469073111388508157782914397551695928748444649973692596134240052439592138989813422954373715925880368480604756518023130915070241442456049724597326354068554866560847336024411631711990866850787934122611008000392815652347915585987649825291709825421373076970458403080434409047931564708203251164412879703942695086704572357251735756567904110458899055490018825695212048927255937902943972456074747141402448591155245961526032919700235896207795537810011445602446537521883686660927058278001776998062163119596486093327016614699015682431847974782787382237651896807402320303666494554080148630334072421131388723965341332029770861994182399871496469567090746214571545433536041719878624511181947771555518502443915328261334302180175293517368782772483750619555975662300193319929842149262923870651793669545680095682722187071145194839251021793238931604601026468105740819557293792880983139603981547073011694193518339467392266961328928977723430460352384830445671851462845651391029649702186398718225823504982419319410075304699472328479030445588863719858287626362168453820242060520814044396468826017361489183121768082927585215037556574248929610047062889909104199885437111111821825182030192127432779154868798030094071102206121611729433176889531756072764060227870009983565079231525657913791787989439518938107371898470227854750393492605873791489204290173177785887623440263981450387818981601707666892108629659244073807912240311785554344070500905078282028346336950058752719927139644957525937439610850742004380319412405604830846243484638922217653324704571285782424009442881760470375176952906213499779509861360148907043060876774618876726500304163496128128715127391547562231401357790131073226162444931941773311124469706686992768472314121367038795127267908058037968348997775582372861442634716994082332032869675511183897300281421490095819263434696571812411846987493275818562769557444068938608747985340952939060058359582264533500183941579719553010798309055336945621585251716640425306437230161851755732501136370055511000437945973124844411132719985533814496005568874743470113534874056502046633607572443219491434286671000816912013591557740827882111266687832990802058811910432024828807223372191884607470063782750205289980292575229950725046520016862306701503753434370013705855880521870451707037336663953010871856664704883166052987209077525701141785318967155053940482474208015184026545460947661982437415126098367023010276180462782098229908304499640010789885198294149414276678903807652952717351714303941536005469221530661808845727155414569163991220100399189055556957715471101583112032507437886796483847455211570879300161415437720162674364268867023316437675047994098066087807084460620336337841779991173625988892576062641917462938078482860263781007853795340523265787473903601613645454821535536426192539172724783047754479417526919770273723643271636631786326371386793662581679486844494947750280890352182625189023770403386938648294212007961357622833416848185465310814282192880994516002356841590631744568781244272967735307708615087004828133650103476871578533790108106718956495369557852729249098894703925480354911497242326924825298989157624723402329199699452414479475523738221154554830766670894979874276580175491002081156116068285149309174187468672450652492053412256775550574307104766800275065288574099526743391911930280847932115817226132917465410095070661252822143715353486556251642297992993588950002438719014290991851118899479541954860196617467698520636802391819569638436473936904965389216149532289275391128654172996708092024080029786459873509905523085514281556487638467906294987681803488385770047750925472430165630691737538507294443108413925030888979067437340387172035466782923803011726072394195034396823877532544689737174721053460577118543012023564690767526037230917158986797614883317838368289533541865656836273106003210079617547167086349092746130403584466210231238525188524582883035807931350478605226944188579951880478269329489364951104983528365459693624382633190137023210587768128623102987386160959560146328256081053856652211084113676455717258812508690402033478213580428698306526303796411496610706936774021064742035978559050731455521758051666164021925397244135731618117325220728971765035201884453135794807834109806057347107416727817634235271958316193830216742571935212732135999233001109911342567472128141873704629202224607302874721373015881784182445218233297432906118326926343099519893871376799487983124002842722677475589091788117840730102523083029962077515282462716138454851494183508062246423815187846476270560453212477946129402248514660204577541710302222604215774855738122190868084447995285403450029393013352642172485622012961543692132455193259542562464004600407038734267746890831312363979875744445937309106611421963685464347636290617193046487821866378341868275174446040498027267840989774465218549399021084873358681605338115697641626973873196995955859663435043718146796986971270976852637995995398118498039716151320793353441486238503942294868196784199082534351482267153995065621045142216190975147441342810136122768394204913983259956640671099633653954631462321920981261237921512490039209627301852567464289223742997104523058054085850432525610748583631732902846129871566007532729420539665085645799722157061550013897798838819338261757814715734461053884526129695234980380291674410578296538009838920314140324507475640799061999300335542913354845059145251356612381743100087967444569919407343989308754317649750254049618593435682022331697133037239803740978592854199001003757003624994884233599616408711715177674023100813952443591522053749266134428795248365174577805655373620793315198299441392755456850493026020829485631356620088056183132291769744054394730921081908459006035532169470762721919069219385959243726195273444694054406722623725167372884072059610293491531993184073823033760136210584540595015429410608816128293288276745458445703042576426021547982324441007304207748489510858792898021237837442962862039751083509415781695858178552214113391923912738507981330823683507429202491489043170647237095529431796678169299389614755907166447616908809468330811089051824117300406843712400573491823390362586300306763100813087342551550577575024474254515208338358320869203387481263054582209465449440193855747875378450818193094395520860656058471119980242664196826723315248561353608847031451727772523277566476300973509182903405771744388881791426797224882233067823231055718849434695656418342009651824557374772008842766390731878425557510750688033738850414965362513105513660034773934793113560850354515633689534412994784321742791267782001575746920957579900624378334818395490288174785300231725249671550134900720347254329717514923077713857488326617635410350119477351179293503230027112594418945468497443051068792228721098097607832924284887394304654984997602819958070960654438146352196315506236073410367796871962507104752235249647347945900805446794475275568992762454088950582713270400724916289562602123380081488656491105025914501654866952475033320555729537089508923624301949848242509544736323794548121591862734705897535352899351746978856966298525999707197892500569875284648218936983564432773222031219846176115318737043889715332036272671072260418961486546663732434264129997981554775067533534563769600390155653462054179683415465263811226264141718950592131450964473303193880464585008663853142422455290294501636234801972196307755029216942270252352206146090347598020283873193204844892165782409767291021546291991081717544480474689954443308838923036329004034656753940778770463176774940373751676348036045497412377534564021442604969718018549254151341401797415323747863904090637441258553316831796384439130310098916742420522850068647068426101222159888448220789148793162111712252461413912630989323494658615635057377216502156471505930930478516725523308686898423237476784433901528345034288765743640790936370914360032997623492649150362958137346358843832518296322176935339679408203798371313608578036496340662941834056778536470542166367219170576582506507535551816258646550720129403471330749499616312294107918010371682249940764567016248806298303218188427250386322990927411103159203500707887535315482467365290844493317581228967230975506621768363572519595944779072583925257188894255928504828556069511733570090805143537024481288171103791216401995111379719022115291977727086761052222795388031276504153405282038206897542266924260312950892359578795358865338956992055374475691448576089084245745775895588686043366512432776718352596177015573788226781040474287563521650284365608956046952648882643532194426848747513092474211411022775746156157903017537800025345761089737794811121057903470831839269680847504325044497628448905477036450034589578990835085426007973458916149667950069685901582713717227159950837295401374081014963068995738671061950771565224616492485506788852904779260110533628928323723886641727533656931130008860567758725138577177127349703722735322701430310019449427596169157177834668629823334394007335014530704317942827818661295023296898665410687827100631161458331601051729894045806910627301942769477172820434557647594087913080069903022566598772265343624039960091567249470263268312699706981882728390036572341425892335706232581612796518024240921425984511007947247536493306818575878947539742951215448862453198569936280054464693319444360692276100852553243346634513946162895260128753874426172656250213698598570836721516573815202256746830562807475094301610329650353200121109900279983648289915364377047961577215465950913072475519888023765517085121649498009758466762741501242108233136077815046910811299560175407444564392106760395491930009404736195479060589754324015904253203779826250934102222989069346215409161010981375335513776643694682496967608704335867119055322792508058733463729655278387865054310772203520519612489543560380384414467729893759878817611665664176263578869973129623180296692404822868873280683016428289682418483545582281082016541600583506187376035132820365288769329340418188673497612415838790350852298992789556098812837449079638316002106412366457284265082090650877530081986663558351684296256696516407837738501885573092953968739441938085690713778383164344380991846939584011042883124761835934348551155015299160277874699352574103855413624729600530317376773019016782509809016804465200149489674662453222054984073642182495224941537760969620349957354813471209925309827829617612926651301561519309751982564059487147784609832713726838896882813885576023306590003300839086956422838008555411051957070000953599472744487822014910334272452015231312879213569602425354862283501341234457663604102175750563332915770207736258347040977803740324047302008457629491189836461133351213638493911190982118694965591692895846658818254369021046739078596508114100758937616148883439089857074895847861374526594794364661483859291195040558711563593804003963220231493657776009968613922174651393386086518679986567826864104020853296036330014254580325053952114979505680922885140559698172118730726369063015798674194743352158157703925994770701422585346051175511706567516773699536401047789347769310506586364819399962649092549573444882199651469840707055686745486667809507069394135553282097518630567091953261327289391645590720660643316923012236636481066197879675371656766274047338545676884516008033602991388818483778824138347047493357982906317811103829421181970577447933886971105875390157574756618454400583822516957786950549573676640167610852437608110042837540881899994359770030568604331528453519646634010178912098108890467309917737555395967294745955400297560821652637177227434080011083263000142618199328520896401832343364359281787338506956589968814948334521919086580885466701776344884845094383573627370380960141782504737705485529324228661275563418086069602654062410575863669334423466531259301871472764158075565226642533884454419819215964602538851165575440219226423534194511367025786219927451785383893570280539643422007607412703992524582383942870393271864336445990799170601413957450582167413672386783490183094953454196475042269189282751724755008341420121604146476624305012413687936171241964864328835034719200952975983238712949503365918584671314559351712953502269954240474765691582938892753334068863269561607960002628181532122065029506595258667773886936697480701607719931501346815343370218384774949225349491554478768934768353449165411570610446125165479692205938257260523002526050084885200979652346828821752893240937280220002667681616354961511450152981462867041102114667769358594441922590357333285305819629205901404250155766358040220563355660887085725521993909856164597736822546176361856479045592893516561411496698746293206699323241419620102688872959511459592114423318697937961779888762838088443918817362945194772305813742714610231024237097262786711601917042751205598416499525733797953208182804740838672950825124735555049323997914828306720571850322167658348124343143344282412560841063287718062905268402342584046658550770925160508268232938012670683937283404858489380597283275650452444800340497284722557266042119682139065058544131554971251969064914075887975119039009501171601171321914321473120233925272928776062240553190507126601908708502807273377753187062854744085469898525961388736952754653687003639156881276614020060380748318887776302953920612118321376367387582652034927031975578457149713812786031300622779012299198152987111442109135411463550794756805694616198713127745000133529990114910266154353087452680624835478427683269657573038538378346444382504455928306061697171596739732049567487587899193755466226540201289034504213081193817963495836435985170163652498220798192750437468037002252530144625418701666681064082984044205985836130097148811736145122893994919042052020940677699018783076148244334412418467510557649356579814585262249114701624613098195605206318516474774709856502460126347465310785612356959680525259756248467373932326617420553495615485732730831806180878843253239730737723960568373302258146458893196134056618512059915817719074778895545186803537117913238347707713876768737238656964059784900555588493252608661203786264420660740286625814379068535962387657954836962908368454061837284586618767902565394694880441981822566709678228736376486416068710043364704143338030068130391768982281510943002735551254901937029165332474685240406503723279131421740599705001747961845340182770544887265945150809222200620339103369973091591072417598898078692987402813328262217546765775285797630022753428744160648453867220388318461499990673154446815679033462885148865660363312796726370655786711175546846483281584261135427938980021082567674026813759425518800815602691131762770848551314778670916155964455109369958664316080871441283850112597142508858292733486108346758710844860868764068635053217111239757652390740535732648948879284136748661154439709629021044730681169072635805034093326876118894727615722465112083186281146581060368204207170037800813342168434967844337157405277164295455512086805043476402559532291828155277185378625050903865097907140129400106380740544010592213645965999184771532846957100184056677520293260834354981268310108243396148150753167814762534034038423001529353472618294343057951785135709422092338878842826036195100188980014947037189423809448978161403647755731853945550635410928323134889264228441428126047406821503784975736375692095718307730586626038027068208507667773245254605358216354275286875381510171344302691249879965676048261823543449710805380880919649543075010622619664276479361461968667877614403630453158161295901281802019066655541475211791782949876623288472677619022525256347945719759188462066888852645038016542172081365587262382772915268106857399263523097070478081446818522095324438075460784840675722325288680353879661461639665158083403656690788760796219968168273234111259331746524051349389987293359984544872232514236969161277500952770897959171616624428471232968332526090833526521881494095989787747082764758211913859847033249693737964354087141313077370929136583444168023840647860070378164443492257018729538266065331806806258655870589705453517750049156095006458594088213489337718063387070988699663828863609170472118459340902195064736007633175100945777339230080494020564420238423963128462849806951721812257152385325250210927501488079662992725895035979099760959038950488795432090873209016353241262275879967281673946174248159423606921661406907989376050802189454902598791046331618447540926211633462176475635185685020123047889065193202325427912300145301935207672094031421646256225335844620516233505236231298002492408076990113355146839467479484063599203891215289817190908830865933724968840210904708095588522666855760705523958238145678051300689636870605822920077391288954813790745210891354681565107594692128209751283889713748499732005855070062712521764946885015242951085438545022155635295546570343671235016490348596203270225816238206240599547407702564804173381248195205946886448428641487758154206442053931462908592875337166538118730836698399405313773304160114720667068849871733072382473210920682226799146306147315911456902504323637082296823627738577324225012357085483257358939753789805606495023011625688577308064389416201138559212542559088441181424218314509627213474035462693978744022119123635641412598399517011249219290607100971105104270558561459512445594579960290029882796888538566534589973520650223903409654785243295273367847661865289875214259808547690433164487103776615709056725811619179576870759915717380979027722710374887739453744479093329059698666106933950883525342404122053187787894128830811689372811448026510313003306354572159333473565489416779520647949962992494063485904074641958475446333334769464663698058422090165250854172079503002181711949013897916329036274040434421194642903632446220576018149699889136783128618271526413883306254974089413656608028685885450399578686649094466286421969530375203368440040552595406241865820564011790408262626178081245525300000467905701453468004669108902716945685165936086146811840115796665833820717016307247807617700609112760971862813999619968553628055366320227664382239717557435399997178777051223354029928779922634025206111041944751230280477289831593046423314476894607708198304610666650525327626745767877491277363602752697961568451617416108635124845005782899746645618804758375753433716380182063546902985768614093046702489178423609793347910453324924011967781058846769509827917944984004245078154708997329827058868565567041047084780849019352676013922956706254261028996526339661308356775510088943638315204187597870812900914515023304277203967579166165387041672452625072598622420208287058337861101951314612658521750040212201414627424171135478119419507375896752912653721009388625872859483350667628899247097254144926911781689745375519197031607867619363514139741736923708859848536036935027815086188759258792612945806265185767449852408466671512284885437438019608292803278763353981563039093873202767611056059666100386800874354541130943438678009479381620407176219125314008936657390277149306393682616181817937193343908128998483143507102989856567626843320553113404374257752845203800458901073692016292037290867720351653346671824604602934749112109871363834801050749802561424203047408846944878850547508403152266014959228105641217249357019689170992016398356294333627247753376524315154818252295787839420023103472731741825794679994715638886561070708866250360008359702452079755564240790982854614239936691530957878833280567914396609750147265801082956007678702462066277112022574751252705656566642265172907991541062896112438867025349113298771766246246808739033356855595202287747866866570475687205386040267361359414761530031685588473234373413298246250563730101295260321103340908182169357751259436613919519450700863926900144958719480844305763442255895101977945700853160054005214256963472304609679268990134478848381974863987895193598624775586830296546869012782714852798447106216836055968857746733512293605875996080456471282658689067614846284853296589702437611312489346020192240637024112973896860852916867669061052496346249866990060030808113119207023344168182320204911907612359572401386695245021268063792395643169311736385008636332060477889066643405112788643579456345892477826423970485003521438341504917059802775269101691629161237320211996397699054208896294661630270916182561093939007444862430626258146208563376898987113424073163720300262586709937250333939602296827467278549674568815189506945659445558583807111749373154065248143065535859655491084762509941487170565810019087964055703464896774270914483651684661321273485203068769547730165579383566530393725170093913130774062308054924048124038651772902475437652417898579376717591370149761071828231414876268113494407277656091194311935144339784148746216554539795367175521139161571197597543971697430222387798816481566040196880709939530154971129141197289547320967171070535518116608618199838669831623202519861564397962197569628761790484581967534502121297858223144268935614968682860237488764685234328651466148199900508099122355182146427193571919281325914753541036199069105323561945328218322279720140845266788227547025941442607233393388612464484866672945223902569550191173784407715059511232258320528933722329926212120173838908519524139053017123214258003783946178318438022458935875227170771503948749012020834256472815704182900389531727153208106690183194008483834737159962236138275581615176354062843766038958622530970436194485870843902971306871679185475069391500338895383340512281816803875845527856797863593984474785341908769228258622420421984983425197244167168958510108856427089183626579965022673252841911681357749275269543377438657595720170743998767415797768924650917422651436965023725735961340056146762368289165251144160648187531116251350551567862104476853427977341027171147921749576571312756319866610645143211971204636363969874581599521065187909731953362545836319981207428618367917938178105209746457259139345608032960692440029430247056377420981279580805128327938754056697982040626053211405169649979781576218114985871127031429087493966463465669740388660394467088431933644696838170600460543985601684812565078121036839412568342630727573752915383909607151795906097357734737966867225052327129940667641035432719469285349199298017877704058223820731497939930589840045254127298792890236464710606659091774764120296644075227308773119112646094842039187206470139147993545691579958158874202949590708951092068670130289977822415944044396572441354086742384648938297150279634846384772315422844696810132144645321897569964637505877349803628640492250867015327068375063468569142462699302686202359762425819448755441558223105368476803611682119926257007578735744551996097723890826624713396149652364406685968262103930413082871668486001491447470262166890719825280780518745118486530185320746749447499736481206978848118097416292745854088225186685553497274954927896351583537991484060878890263949461394886643891083324728609339765896186181135704463294799483821593333384581005041289437105773783380937763474375252968856929117126023176071817174256862235174696389682874587550452703252486491159129406470822607779637452616890246485571822926719723401262039000337650417302630913864207924517974542115057380945313406712903238237000305106696743319423464843749442553309342218195993650812450337504215503018277024603065431401226752875718884809611538812206834639250918436498864885666979023246481982458333751821561235278154403724634297092886723018440571643164291243969836961570295408973586030548888488833471213003197262212171771425829217854251298142896976195552566776376953571636983765615962486267673706270421697813107663202839644480637027792058415562785606760680587507679354937892384422689136348198994509448436351924588244205039996396025639202571005616312114233011976535307229891384861777527933326257319723044831244360610686006592531317049019066463012398669947106765568762526625855142257888940977292643581306637667136521057765139594570836594390372777471418554398470555046707944420099987786442676656951374098588414565412740174352041114645505634480585723592596830579774580259057198656530403904880528640829241852317520884816448585373341041537752929553507238938018339404165295831423417389329621999249312366420149244531773541022232429125197585444349539689277548250056165122632381203929505163238187395124417278409059178036101812476223208510143253972441195193704220654351548814741879101998952639224337831966412564518971725030423011631410525250418416995670377537424814548948973259284122764274890575462393493413954253397948797605670807862357580398122239160879988525135255953683901089039519230360941862617120219270835710227081572622195974981241908416510204921280004606100921803692789633122706712482709147869046808166290562647010524653011441093115568565238942831015728390279359167875134239582540879370939126958303485940035493284132250989999522968786728211164098327801626412821321493070178408632279492726843493878782502455158111095230684926708303238150919233308576638488978715695260648611239428486511327896189051083465727006685206363510037996845700034865461805764978163827463246865587930363876241095291684825509435331551580542032173767063343029167005845368679359214110401626489693019989006257315129836348881525525258809017391636786666909416432166983502755105866158786848016473456502234856200615920982415645893151488387203427921772092589961728332887847037131548129649753468308547935705886252844098255534657879155135381501032193874301501955387181762399900235618950585073257611594073326651356169278148472032975969612693334619851241608337434478755393433623382671900334155530117247042325140814621307374837782442929097925789479753881857423447429674720460745875979059703765473350257047438136787400078268643930365744811859315197865852509693054696341736367464851909972727424586594121668071223319822796863685224718456226699476422457051415065971846054613800553320582392905430215090352805624301668262295738418796822953376103216819399601808018499290526510000328699403133271201479301596372941568169455207382720658298928505855468186921135972705300980322228708783903929505704684412962930108503987931342335524222436468340814224790589778608465921834813088870336058678014077647180915978763034544400537190054056537804057039787192648783125762885586450896170312849633331747824939239788545246189849155309553626882961561466126109271990870837116346030681971057460103798351194877365119615148529778873346844027309788703625803664441322979385474068759753498638205780166428165856849641463396824259993257636024796426012054086679829273302844808642694456876777027155320929034439603432750122603664024570894813636524070554301481303725954450652968438336148844882255290606314791856091518419294685545815573800933613526856284968238243169527713321445508608178354961262421563220736287216058815065265182961568136342777948159600485615444536307469116038003458080458943894447678609137249532960650822674841944871403439590418147709118533106789583752910046006044046373855102809133680710127354491094411352861428838660527616451892166622914790856867620582434766228970079224505357588394693887121495310726901257207782099142907659020411320803588769167566471159717421830553739544836272472916189068027706926650448989209601159616895212669467445241202351912727248552869281111210484595161771662539931398239322855352995194076241588937344336694164977792961856486913422758229092187056873582179440380631334561104473538360058830709617926126315002863761701115176194711998459894397488800987904469571924688433101139715563474068821611312728961950874898639139342662646480272720585585097588036325406158237455980164288394351900531536643970242293851268794346026291294086329346022511549656253375654746849443153945461639862400615029186092722997551380259057209577553982468526556453362136430599589393011283335700593991556906822592408605924544863241827391444931615893274468163148086526435102400916131544444630091216430726013112563963782805479036411338125271224737477359747779303187301949595069926365575079074086937584815774167512666184946243782991222979768700982359066682713900136831396803365043144971098968742168032392116785815411743833594514472428232143343416784833321856624774483338334418431872931400920049357904183767093175708245992044167643507906614020664277367390396756218453184779186645069548968629448347328706315223552452061549679271319527913052226663959185363184498725357338533624095659903205217525957275052325475123001024260067109176701672004769694851876516184888209788842381711530256518526402186830660355254186871028973175672334111389832734658546244165815068354552319333085942543737549738147708873641637839124559575707682570237986647082406223288128963918808213808635933377610895473507326528114109605923205399136227658310433590073952561534343981685784178118700420053926675191244668603938277428671835981126140857121113418240939609953290180655505104861448626426792894244939463174707107663929500536223120190348267010023351221566530170590880554788519153967193488573890352007320201906194549833601795196709957903671591982847835776332454279314263795406378420900319402650463935852120718679725928841486956064749742038301445176149099592749493897034211027051124763503408614382177445131299167115869231212719373811067471821422995167535511551727415423314801949331367869588697708195810098798889307157748948604442135025197854330622211578699258863206496753107864806562892020919676076314218106802973923982634467586420595262423653353706431801193833602430557372021135087863116327386648200396069261047015410286028222603183643925398138650251006916515497788479119389907012971265952531763559494437640737718602132723419817185366026454050688378652562629078043366665354715351759540624715967718465419212296906637828494159542657294467360681565017336642756417397689559352851828218168508550122237579642758112163372418811361125385833981135795357854864294812181553753947667947300574187128722060195525470500855331236991772135247337146611683012702025449192203810504360518185511085361654373147810751925058804406825463491860545593773713817908158268111314673552143232330147517329611814795938628543212953438219557104966353331999801004514326441782551932288307835330143340859823175351855856651482680419901382837132543245681207272351042209082195802019805142080714731581982577641861254580286527596872768892979256241715204251442495965000376835764204682145719011964191972748885799036723134800191644798911418056295388109181568047067557866281111594799768817052864123215315144028561501190332544851483483148055991448960247022277099003804182661899497126333186184378742595948915764419585479380234149790854520767307781481789840879958924166110288788850288421690213609666789704108061913746027990173930838974699583844703402450404618484114335103275478513367328935140660226014365065990447412524140398654469906578923679779880664198879903412209433304170382084324118319825165986246482765993102719591301303959351752503843144991340821819834402759503713045875074255482845825627785886477187134645860938485123477235255204981324721936431560032130333506463462651751992743064327280832770654894455660669190141006299739585758557128382653182033083515754796219433314698723055045595620263024164566241956170407886241809085521727165434307084611134228092288613644073865444059241722305633097587974021137194266662375896566539713418861345771284377883577204100210207844072687694181695624248617044819908891477274573805412658554458376029406908192711931166359372790756277855179354907639213357843421240155574571433606592205780603876858979265393252630135571142501964374543113877001710678065818002354982262927794579914457466081411326098116037738278839970278115369758257680946786465151450314376573588077735907562869676896402302339224356939589867096244357878868759751084984753109891356930807128636519592196817639039205002921994010802634949417091168657789935873553791375824979089886686963177096924479722555341824262112542221978903495789843552421494800344086504682036991251348852235794069327343214663745809540682142617807790169737084876226563442201672816975831818273787704364308189011344883638437313943666136324238600413846207677025015137833160598721698801707918017962340638417752778248823645091302796548236895656315565976172052836811125375820236657015107751547965349904026393727505717989403099711663939473065943888691365702414250649250972368529398420632001520646804687805747633086232437841590870842922223128868640576185373254684032728968922695733315264769528693971253026863751853331677152722568106826381778894459435042043002360713998576418150064336412293180639895255276911519118049824297027278415068127081655179647758243780840449656223318871131524141852646640004059790097086241212094165867284060869146978837121767979320228787869864773249259961909314357299975519278237373011734058079880820435361330764324203947604288616094640303444369198216073316846379074930216296922718543419997604729854836535122004777348349955324910628649325695465222018877086942036426602644015333728284450675124383025065647818761500003514990793957600789305933332952348814112465969937371205223046907461842225421453239052949162359895188395226277965532375184693995995086834233372763737660146915062831218326448393317508980027566941480049907654024710301906416834586820970469315405874228799470969587027438558862231251015598470277106773178313209554002589925840256806459389107731745287967716377009950720315575017659477561582789960458554685218468090230033144814052439462626739290765278118295594489309797616076293667287333298751158122423954529164958093058851843842622881930324813359825372270375423657169214872318269606174417718331936166687393188985937875851417663695975175303039368549049867375416200811890645400805884586569979303299835628158205840441955053747052299062538289708232539402848046394459852239844869714358905854501282593301347931852240507900882990161404285227303719488609682175009060828919479146420432695772150273292905464022733494394809172609085091518103146422848475080883186895261047673045517082742301461429722770673465436214732859903950194199345875357681830994185249754537496513764091280419982230656938405810683332035002543626708682904616082640036898825420262786839944969125746094419164121128096262918295304165698042109147041598848050618012100050868863264949737184377967834514631724479807283664250651312000053979557873541190758636043956786927968809473027094344891661734881058195486783586679432544672742485090348535618716848382005158869647308692704171987208380522303311417813369592863908874216762608628612111964978463831720460853642191646473182792763647333620671360710905111355725830716928067544788859667061061583743611546509791589550485362789414747805216799493006896290386209698213905624698821573910289976979701082061678246507933678066790205806154825550803661267255701084047708064212963623777505322196174096325524636135756090006704114372915589648298130208393279367134212209043322327717530601777348533554631614629666199335972333691424200104642803488365177067097118899404984223094060855374220553434612902404717372420226587335507807576015976615661224195027843325147424011490195266421535499854657615553447197629667444060594885177946423268864797161717771308223984280652077376452997388418250486829298313574198673567655218322106947695482385641678246742581445950945317689290619935741737109243486233089982819744072560634047984235416951490746257776473694244661865451732250779718395508963366758910811434925224002166237618494449351745218877603839279347560050625929950870006701500929856979856523196067892640991679409324102854763825687593296301809496242365540108290110917953968514501881529851271118880654577020912267387601396960936366193429257590850108472192321301717082094337547394705131245640862352451085898842621983025496739509538725102054351421410842970214853352873542328751594647146558783915805529111370106282230321131244772558007583889447220507487227925706549523206309910771570147995874390135517223800660889135191434740528770725524071765296275311708033781005713017835985814336539025784803886250619783851518880749216365003061887517503286392487423359700996572113726605794670117145360704483782261863757657654143716688040746848379074205792153607177497058181759660667738651195830745775454626926452325065812654983812595135483474800856605651196751328782682433129740942319938399075301750519465267997567808911418413246616142288598463133136790879743206372723576494384882480750006342403635587694715591847731135924973895380287393395398244444097779449374006246267675037767465280790955101619799044122156115012677383134028333602817696814463873739175133535723459507461417582837986251191188826581839827891088889064064315439019205846169096245332768908937234182797680598600841054323979323595694691293615025426138352510048332105276309108316806502225719488739674480820974310079437017141550086949419991781978545719185558017047549845879932219701962332628539261628273767533753116965925756580437734090631451182043528012044836052820074828326387815136621008413274476609681894338625288099938942661021907540182356820650752666544985825869224921679235465884477752402786984506599366772176615392499013821976528170828999848259327826327773186946511990191581723820156227645335680590152483854864248089215637125933492338155054057834743633506479103397678306808151413220207303970576766806893829552938038427753613658494358272423829833669874310424952710017052674956961730769467465102757666265885497959265759542389127924632658395819809862123857677162911965882756707334913900708741796880880952599874928635476800657550107917802851229971069986748356888012716541353426096183982390294802882565518136355883753240518250677540011120696565596832363961065492401325780044046850230111775446846591435764020939557967779780670431528355862830441479447785679713160110848019059981940031223045036221513180178744950908427130470607209499435954492845202232654163387281686219623871952084498224945008895108459838346197490682682180200741459478215710058713167736350619552885486320945786952624389876569559461966194014458765192441074105948241370862457269104433344126527620116993180346610831532893623748442197095353416782734939789052641513873169867641873649623153172335627680248698329721061558279178256344066143563333494625528372126881251291430309150943727350209294683775274640254034941597929318691579283639279970795242818249451360100878097604701017378300566885883476027750361588214830477980612141159824950071732465636211497165322743635162530234743865275662003907258659238425986218556884757786759407107976418102063719707333960303233890174820421082112382821681100632999147126536420775591492897225539752682469629888005584994692272304030726963015914701325268112533595326911034251755924639077241065166207586737232965938881459754010833117586257078913805451605529483818741357113236662862995238367438922618882719487376123553604993256033820623283746428322803681400973255672071991158877472400452171082031050505077120810334833899903331833617471149923898572554729060608154675759891924627300482311048098044281004869228741491691774189085371198577166626706561819901551029095754778271746718880129421926022676029533140151712556405843774891939229719010136479450709962180257006924894158789512092048385355551064277867024040847590242537655905317882113441364929480292492195973615484396483016945274149828780107938946661922730594944360576602653263137336913296859915508160073551048525119715574173969012722736802586271078358940275302650903892925965808044217716314360908592168953546176049619835233756606317959388308746155968204174418214310203149729407680914773273955013266405649973876985180598990704163987572495455968627683786680514581360061862455309426096499873112911906660666232151169699554071730557511379789914388133347838478845615227804129150622875376540347926437555257818254948966912104024198817425647329206486476755705333270293192540119569667234799045939972864809210716374998765881523143153385169957338550575534729393388996144825656968319106194872922988581773633685087801867563367299791029497989789123967136085245402383506942299024909181690523108385387634430834541534518325511954504188010005876410571958748694624569985469609694531424260654692287186789739400208276301374242575941035113705745392697958205771448687543712174625329651280140391801848360066154851560526688163023661214910225719204895367931881215652682014552963857697591064457407491086132738712513446882699007149889746438595126461459370016079918835591049503475425003721160340732308340985144011627369353850786479351758612630724397889552697746794567929538805600602474446110738483142248568075723963754889028930253572988435599941578148444426212750212952044948936138283506067080944677582371173725451401350707673115794346598039534224111501766021508085075857722647695117759739811615074694318446816043487516119544956880585786120142446043243607302430380830252709023290733004720989911574138651383628976438553295995695587034646832381165415229440726229702337611307500352624529716392292055051779571279460905077857766326696830993795466641862358316635316406383153136124251140318200942866815284192425085735838001341051328160780319794540506115886766001644896025224738525224396213073841919344644200619521835225718273929199124046344812424174303912758198489830164349057321841393212654950322493859765817246478949583370260701137125245211718354786366596719011033117420962222701614136240325220131897360036682144426841022150733557881115835174187194655827875842263414249842189690162622328882584440030567634815517931891329635207523173379360840047256823750455839551611415704507928339088029438669775463363869114804265913508685541169555277863238574812638007548617189360009498174898415982556700699767658798122362011683320574993592636911249420151371006217336061655465266818729554200119959047794885484932013341068131619571153855931578493790077905140151641285500064230682003168050096035344349816708537706818257594340592217416891834863111080187156685199439840329019135294446365844293466216366136154462844857042772799766975783800909557896838634482091919978672708206025662042399440779530386309827741267283493791754559528655772928841373883758367254315171943551295039962243557793965622158202420774669940376585854515310102322768273885796305158004848208506840153115085649558991502152655309421173443871938926883082388388061468407568076771077586163032346571490196789747395054770775655174306116197366414304446936712634515094251621325401392933598921860624547282796225723186782818583665134062173402704851284890118082434345179086586883218010168870748449787334181917623899562255250897504078679035588014708021338484992747729218031557960788193394711502205122139288955904845209102096332726753214539922224008355062533931551310836549451685185802225679294068910406829258612650526383382195237033872356649556238255360149425732192714947376006343354083937994934024926280902370649638836728764236384214959336355365878881273326177299379000942709685537359087407229805961033279871575382495275547331583498413785876496646123362480561527035021743002958231521678698563091047465921871636551762855896339039754292688371965464429938746415528283695928508116093061748727407987590956404944677819522166020878173124890493047629079138518591220195461896550643559034518323743898428801052416981606730050232775482828430351426718842682999704656317749446784697727777867797737754253488788775381207270757291443641451640038414938654392136957903828409537487076827016460381596863459768317641166168555090461545219133203494290273425515827032344692833841150462798730313826779364043381612047830225333108863390330995697909787144877669004270572317033738818970534860345461428287714359464433941307344774187772575702877123857275347505113785100054897295955933893322755566263166261328865683321422697803625576961479101245491522397602186809810519510533036788543188240220692323394222609119215557997906659038956384501670396557761310347714746558379458595618067528653232600472587372645830456253597830489409794061277858945641159758803106380401835140679362572251218302769040386439428734197701918095511240345940112004589765788829744355475795369302320885809992932980356345910340807754277027401861056780982677364133420136803730813917913824050372439486888408802996715656772272113417870816877080274988551426116080547102674841232205176565253274142539310326284486405978616394041039597764978930145856570875383970941790555468599322564837082244226746789707740906446886710166931835949527051934426814253682713735812045097705298104972707053514959814025997689410572210085471550309291607637992408072201418203258387160901996145675893998423163225904957213022934122824913600814751149840335022924921570311118589739891099217130060562974703972832355592132018470025422215102558660099705341675004137965125354982213721609120417367017168639947745483639414021922566697107608910359976356849555719242746327657419550699682885452767831937695627730849079644464134461112974865935554724087367376602201518061867738195731807281930611219958520827757168805896304497831259819635517700360652042868695693806431347604501191525853188122264518780798800217905697220316963980813043202056290893476049497288255628712124983334048315116184579068709034311694130882152767737694187379088854596317499037353734003239977454359119424904401194029410774476484825990526676621457495070299279377874557389931090215103538721893828935299173619777790767949451948201268690373287350531504175138286687611053834560580939474976573247713719316457417587347606588868780324198357901857690079664746487111538937846197681132084082956824015642759545090761250199132507550561155725566946565943026781851435271287829604452941587275944759856636110052928875871167715164828255927308441836483743399521948064639338886590305189288762550932017803265204346728132397575813982133479301272113922334405963872474745571298992251640769414619781873041823023889426850154431769564498649608401493748009571716986424459862602533164394922188948634076008600771799827462988892886274424739344152241415260178129003682889892186565420614150601433409447717346444345806134564668094941937560452026779078979055775630711383728269223354174837068264648137739674674116302182701854132965635618172258701005614264720386279450976652620850373360548110168415129962065480311121626402498681209315201591768866979415853307524153398798746746238760804081960683950820878264963217309907596069889709616441442457310298382204003984400369499349385894203879460553428900391814778468645689174578139481492459597391620153811938427007181011108056108626205120431477663119713842044613474230273433093361107722217954384302438120372350070514597815299674522842967808720823472680809434458327609628952314715359105083519914863027209551899930733658751067379428966620105452129166862506489407269651309162929769848547688283812930618317128144128502961387280815723204648513432283306907154187919342653480829000976699061817731294241565616964849392985830783142901989476724864610552178079260394408955114663955905707200925067552976793650141436410327997535806186736822991853621696628982153860736929494067906756324769352266105761759802047536944517547413788308413901983054050341116672387347474641143928858308050094678988026437624484304292936511100233525807783201559136261481759477243876463218835721604185547956648126575285460210378787020082635607819218640551540330680894791492801428563049762325262982997591647892192033671529317559744228927345269101593594620075254842148794956963877541352393448874968178349806408169799010479168757458040233152746181629221596978283210244528551636075276449592400736059320008616981006963553893556765057679226621752369018771376326820209938044190286387229189483880862479987685840961036506842701462082904811317998650466467240233069140996700992340884190692996507607966631308463697626524450692395317986355787914959126784515200955758377549597075625246939586401492826266527889683431166030741149287280956354691403939996265863950762650848713517335529318202603443028093524880138155414167607756478094678823217422141827419181952909298156733869230007194865644050161244713862654325011513059119813442674076199745634886600317412622535910946495002787175884043722894629471347305862226495723255238908269306015191524170056241518163919788770820011829303852270979744943386807115992478194262508038781137279212490929762539283262710258574775643544928792278028441653336218961648434285415197836180509537676901819601849724377104496669823840155292907528044585087263351563271599792068964762834534240886335129448589322085181174734306380885353711636512009467087426665357538066814355878243796716611908428459409866465024828534346574676885797904366365927001450186316068659600099003093322446533879105362678567297954330620344520645047033954056921302981100805117730224700325481782414059766191400891026119194166560964721488289861984819086488200149302647644448637810553592342020040416730864027907372751044240790829932862243857416413950299586842408544783762277928135195962422931941379651550999956174289768195449647390589233215197965050321349943866597754104286205784457032298917516512787911165221198347106346878134805389871656889709873647018905193018171127859434737086800635531638475007671830918573656659566631418257732501380227899917614089803050181932431439739125543575420180142695011516168731905313943253492407502456362164366212745053260088471539254772440192107259851837443021109397970052943219681683086336839102777035864341823194015341507933299915297662229815004078008992098091079632298667543597032100071440008195930125234952483455206773147408167762038873102588122104398605364886995127764209468432560706890517871498758050647888391018839096340899670895427968888109972753890944474601259199834986681725099453081896665373229200031159228936209223759182209489184219335869206264819405254533128123136598534075161246923195896603755090188540769086932227397215640327638474371358653016098579398052533381428922227197061073345173449555808718106165309431053327912459288553110430532673117135659614401362289308229327673168727426457758207309997985600769905380241975422844262046992991785547084857107669135538581434850767949381253643954150850729457925899599375711365113182987202178236119439675005457714251380443712783591104319358146568640887131334184575942668036398038376476305532967405472943895154731749767680365151929691728595325863998474478822941312846675266392141880483538252605135597456044085523909631909271767355187409473184097164948367412564677209963340361757572690521357956916253458421943019947779896695416647345173398151624267111268531491941748353925116733442129303679645572904620714521901294933184773087709674418654643669990625761245256294398781243087706905047755453635056024152330694430714805866281179317437534554491989685025878944591854627199151520266805400032675899132155977241432167253300219763844569910720475359236003305191316304190801188989128746099498453686938514980730763332568055087926211125296198879309379884141867044196369755856185990624842460200543543112756515308976785837400915169688421660153587345468281168370073744448055917324653688456106384471079722076440693925353717016685162855904316662714454860571774159688567274138219578635410464790112705736890457593571061129664380672680972889693820849080820191326996538144769055768324071539087962117426395929840925635078022710087212338392397630731742456959370764675081617834525704045138229524457932940519806497580970104138042291428187871078144736281541827028402346683894266130792484963486137947051472551424417879659310718774693614166599457711782158944107447720320960066688926651532846951451544311148995136750770932033397218657123438189774508285143440749720786194751116582884595679683463681158651682321484496054447743277898956579168306787836308641924223774823575967569408051529710223368338190653625863855225573476282911123423920093281438060526364494908699164878457061974606186848541113175554851119955743004349131607343209178692930383531166666719137354192867313245122857825450762896098904172965782101325511396260862869470152414852689327254188815212240233649462603902751620598152023385180459918921240832884584868350293723328479764122191551416596961741866409180125807868322773028731510090620273621210893932998001684762135678348920508301559000640221564033207422796392004081060885399949783100541084092871836776586217206368941065184177978910773270422670258025290843595043462092437926590406063048422861743581911700250244969292092274722629923580326191391429967800458409191459397968004624534795403725329385679568180758231853176600702100919265461897796280565644291335550354977706384913606157182353590258552936007031319200751803502419545370021476779300154585255896763249417321437032992414632198980473254514757499962663925404336029159982556686807109775805667215284356329772316463007897865966461071677865824984884897452059628169228942806945644192317228166117244126899337043397964102447300121800501202283183596945676174189920091607057478700630415756798761727029451479829712958864407918738437931342908991156987645452470653046997980519473558602167447151311093436464712577512783077679202663029651819162572320398720193451680502022234131626945150736710419579221839200023917999780600520185116106959270876165333716801860591014927284016314256873438843241820124714923462882062673329601753810091306127525209254757930667427927626528213273304077604488226545346029691936663676978189650989869721159266435750313148159917629356786320309739720701792461826564318791453551686853549917913616033360424998561282760570016932369019901268304147392318972377752866462586815644298147382691805681644445911134295678484562706707766119795833685288235773078991096146268689824192036730342589709284648238340925733063367864001321735775462273424572572510591919382009301206409883852446912237989359054208755347945145938278087579886894550923635277598678439381295332025241602151838094492013157192297777396648690237557749073105082493553619251338578453756505079918633977021061227787705996754821706999505837943966899869588970348286494974562496953517087988378865902347244204951183729011391556707774001212923859971407158430623886665590246701146437515544346860006219950172464654317145541534922670261846689962778240036616553352808697477333603611896946931765132922157720070412038175916389526808425849416486234366955495603870028537713139662551636664341292294004980809005522601405527573313011323067889165129414228244602133860608125483016310214956322397662482826287142677571533530304965004496610766359931658239356265034883423523384385021201902579583783115294442302282303657341286685174658992762903002871731767746609876684296111253948759454860702172988703467562879453494105397720572544524889232646390388555345414830242115841483820970416656743080043082758657978124522459569072865843056430982816177373150457483267796219482638135565656246100209657219275444420321185450686897325208606652615449154090130435978870960642558472474630382319395772047952869321809092915991514840746147602889689525291270563471469633973056437141265741706876852007025663417278512315768550759104250674753961980352775361789140255003750781320009396474783609581463904976433277814241774623576965795848763360451320620582981296878192951233917803251686716733352080034227162303485557922338220664386534195360820183267636242644907113172315705883784799517667638646913491791473183945754835497404024026285115254513269430495490010186821437012502636087250439938836762565594688863671568217388827544122658617988030909926835426679317149241610983595005827904193744864828810848954511613935720180782157245821817665963778928549921804396357042562433056275149237853446644376973106748853932205308602751647379689079400688255786121692381013895678955742863454099235669984712092169439421640857326516436600576158976485806185324716995730153083196433007453690103430728525752149110281337485464878300191632085698210960849392920501912108677151012466060721927647693097284865233033183573487157087101311028735423895867711255962133844915713093329455682363267057351542670787101187641982186238705327305850368471666156391610834472035044281429817879447790951342738903531000098016172893759565055168823877558580109398863901458642215354879992151454241889153819413009694944867563430032144532666371327357725588869467596234009967231483853970778427396108570179228018107679856007693438499120772001086607777962601427984381846147770043855810536288131357989435712828088050121273460069393847810258177540831523062024789236880081908200462740437648754101334881238580120726080302325146738525819754655995273974051347820209140550084108744689072744912482465652192550652066895490264258597808476510688267029228895158409020211873982699818550088509188275652804241010615311618051425146125646429459794314422795313508203352249479314560076161403589072574879292677026038305352098890625167269518826614025293710509619526115261267100500584657710344062550428211817179935583025919307105026658498064249383223990900684938330973600669817873275312011633840952815255428162578313282282848752941802137663142645124484255239440786794619347970423638187162310048620424420091610624703790446013399112862083973485134614144644435581644145286789335442283769618901566164890029662949494902916318092928953998713394091834194334477710411857645320239597180707028591335837798943347899247133789732095946833801457312772970164655344847038973824706461163035829824604242413934829602838198938478513734693302262743815646608154456083959964316907784947012507069188829945141765831743670293781767894235992819745274754203429961438051737408382608667633429504329701967607383198239368662909285570839907208051539745247868241934682200145336232361520335285143031483880338717573189877588635477790420955403778194203065116117173734150327594296467621895920990696260499693703621512256414956915296809584899623800678317326254129270139088834116396161637199605800291103294814839720659900563249081150535113566138463649898259482173394480789216067504459102952911358776989459981682967828124364373003955407406873910085949712044770413254657982535123566597467817696741510219167847313708169199262390826731668204991266870476834856268153055363161858314292501037215101420591609673536279024823355299596209339118116039388904894371195007014869031337868677755982440777811366456540403239355126453841561796758329498926332797396217998574980785285810103453034166189883190029143389961768217459113852909753321401167522929985103018528033966610684839359939946539478854421022310866751047978557602553835411570922577879200882426797493398217141639425641631878108727176902184827064696269760008742137173440816318190016970768273445298476635934940358414287890276490406691292522959985390970185705572118705799160408209614177056273498846827674067995807381399753968081751066735719366810330519961585317193477772536880090931250872233355105348659415108318065096929566429275738372739342954104342872585105249322929678714899327535009672831702024824238968266393615275126353154440991441997098722006576558508134197166661272276604874280081249331450990350601113599337629742211684088037355868002870794517337478723981610561776849081536056649600707014091017271732439938076359061205513303202358714342680823388301221606040026057669235045126650059767718416235682254802505965328574200233805496051358152027092373103983737331348408067750342088565667251377296390750260745696947933799287986629152083098801886678233022379857227229559852992045304475038397939535552574206240635629895242474164697574058194534295021799612309839907503643307222814786866549895577025814709153711540819059927852644590610965212795093374550850033236222141306233361434166041194162162615310871600224657770163902869259875029978810130924299777080019305263430898115953866906625341630949096646643690615383842727413907429891718957178125545614986937063698769871800447671229309909828345334328359245681826390048941496139273563619725233807542841687165639597559321372696114522976106642389246608036977572542558203087791546246026888889239516870062156522679007050950605047143657830548686629018978815532790713200404365071381062974502556637564175982174283205181841580466751272600249452096195119843117255735774459407245568515558684903344045705968458765470847705831775326315438511655602864668629577659737143604409193438377711075593973639729063458471594923783070709658958162409050369245265698198581735048581059017285996013812287124603575697312690418539627846119860805936440207601935969047288202555350928625157254487364058794351369738992596135709214275557336616374503300772006759258279870928159997953273258141809807215485352644539808698621973620985168397594425119965182381160619697303800855359989116553267011937615844721502461757455687647684567948406455139253427155559127082232769651845412507356651762333941753068590787026075385474593938738348641947494919858496825698112496750063789917615146638929036944808835382373671068279226928196312016213098909736408732472315778347961081076752362691506361682133994570819357155584947845762821153108189138478980448221110467851445849365235097235926467412195771756346310498589521081694402218465063797654495807158060721550717900059211514251986603003040791571790787854413549222477126769494894717414268742817819720889822733232144780937463726912617062436178880124632133016375399471349619893082297771373635309038151869584154346836462119317010872827447488050747931939101175546982911414255598438648565968907755820960953476646207491256894883802948322675149616263420538897670992739471837355606744839827761481372235061669914991000307502804157330885515054114435321583546647828009829943484677184186897241194238959740984629066897800296876549267987170172037506195976935608201769751676980488761965598930152579121328699474290290368172385390039540400014466299970274452459445192382188724791204700616853403519978508795420096905117931791622934895488643251157684051231881949834294013650397262656136180002205199990539047927559210785255934125569440641435960800682129874457517873530918423056171783532879638540631592631480252343888120927983308905022877124580299114111530363106129391064478627662594130447461381115885736715186548099036207564420242778591560064084319618881598019643155923950657240107109156393552698326768612886006142623363126512562641587148450572751048294599151743715935486121159202805904729210688053462892414797342828125706796949448039105246942806464868437187735594524571927146461231642831471384252940400443901353661649532373000928169016664614788203496186679357289082892669276585932128637016114375487228464071495726276841356182038495319539686374925571294928955968923332478611277862600895275694905714511110723533281033015080495793250720700193420338278049846339981982515825677371204618234042254497814639438735162003210695322984683561306631465867016828149502607853737900692543781258654796659148165384386373807299842088265620802945372011939409345122423566769295958447706536831070764118821002538293682867076531241063644514769561129642581508767095614860664215723501148387613535723190217480028693917701124395520248639669374412786936468909419551303659378278484162512643690400767573010619483593865897646077451313305029835119606844830082347061853826763259616927911919753028332917427506636786373611769383429990197507736271413359853398405279798341983019106286213967059299065925867458397332068498933878980882210735363759717431706529511197297835637541064011987123476818684362220243636384869500179316493350025222574054709881989808731657953703994385210902716448874369550678951639536047420236606810885969142338731322678154696628351600603149501301897768532912363515257799577044633990560872540737511648672602724212345993035773855771716652882702506159098957919422647652858573588816623499770269089761135646611584119857958483578305801593869655868399039699256242161521766115257580418797835065788722403224518648411671990307682065820827246187864445300464527018183198549558619516310994915518765528655081732925937298696358349753808640466693100592199901382807145676210659355363139382556991471004320525513644464212436455781110079007529659167362941714072982803598620804173209481185526261420839886962845411977845975541211316177888114728303848849679294881353908791231861282417385891722536026663348333649433076547512632864167435830532045019382699986425014266377495595033887655573653141606833924211387009964332568809029748844195424450763919798704865020986105964935940001787075691805689659898170807111032517131014008225795958065699968735417659817538586509149271785580654326900993808728282606325746099176579254539354272951299217032538136030183255109216607270387222488763441619462052248512044723066236614999542628313393916019946461808992033938174503976456665199124287905149157159568490276299967131921916879064305753552018579532089708230555926993977384562418532657247511448428572220121598853373246090039633875734301867393219793057930335969345377808259273194811249861445709266094209502487721474767105984792946228402993568831073510995909620965696374549846024548834012628144597345249127996081345155987780022546452694262305153918716833447576408214443713806222034719418462131081826282954213430718767147024143798232630646528829679677742170061363990593644618152545177337459069484046390475353288074937206250481675953363941186316167837308429750279288003081358245793628833712231150129267692071190483156866228884621540016180686763967601749356666429093285130940142981063063301483535316076146157766058436146635455779651288581299781033967716984699908449721546094821737616765855226306558655815812155509954879212994139531864967027484638854609341547813184807523656479564747666497288561704064549328410512497212228222848961190954627599842096836945472229350405401728379872891343883632422070558356143094317649109429082348968081439319684855358291553812758771559358397392348573674857175017272099029435312693119838852680445037112809715684250275050984476547577060335643257797566533300798508750035243147489977151482037555208904226162769374878471110922066459484291036115247714483387472411874745680236570580219765104272988241198815062295554895336556812281476612324227185725752243318867302084738766732574188214776262807705137782559921652037701957291473257680556099664403643790842566970636063753429590481619084799448476526919677821313938188919236248709122127764455127432975969315087093189404980702146486031237907229590361769720742251813702625591078590224137037434517486210143579472469681652472338312631280006139869663740603492634493167973863022616752836612405194030846476078653853384862971975459367102540203129610736777737317151249097848362561538579425197734181475403849118412877287272758505487251606798592065875627576788596044393835572352041480529083479076510124232474747733126931504942627325586696582797034643114292593421268173944906314094453200977750561468940105945414115942447597692782565945340467660749736622735370984906830492858379952295850704297004454487778756705073663354470396262240641046560185847341807954700366446487373730723050630429087847765585253746133794239764366520282782928440981312772614326197738734464823430676871672893748658066777807569485042378499554178059830177008177018138071796459964805812351154313173234673370926285657155526840188006064165375286678518093893387665213765029827013960928290813840491002819390698485864130771508124480794317004459598643276005188014790721765819451311920553980166519633963687694374559695436835200461522015485326171951594494872105296436577180018782401459739054658394561424525255563766583310228843856394359168551659099994215130535794989179180437850440663067001755782942875538313919999701128105105185136925627502950743901551417305252056103083879473494223664989739134389332940091561828980582060839646063846900731546739680658439502244395735972490434968650922826008019676504052481944189574100689962456050952965023217193803235292084196392900046686199977308300521610394770363895522190797423319909668144911737010638782348257486327730866966663766235779176991821999599612415945837315753715536112735281014819775076250212334396212934357581811500612416779995031537729432669758403110714325897534652137515727671540885467294999209774238642135287213306945311280847462890736793839555333810643567127822910392143880760270731476230447979099456294040324969013554929200964673403357079147313119438376059517105244805237456651755595128366298599100442457972102267294263502192978974087446697657851707820478669646270154366683341053118312718578942126096966917414806273864347803431082679709406570955335656971222935142567496055353769423304763183993987397086102684145274607770907496259694780100345547952341780305235538309579455639144304830713081703867250167555695574324199028437770537417751823215956654109957374332019217882172913104303357210401408984723720911533172544404513699540702822586187078915951472653942024079735110863041992771886371341362445073616165796108813525359793210226463701650728893232338184010870440409147752908105312821515266416405036322428140312874347250465374418498515631954391114879933820255372096117107224489856522327902997048316493268374199965084445292583211586505732053713853309722965637183136041372432529046898293318939972993214415328252953818639319851642897658086885532038375193204813049216714432494335997669725022503096960387112178525402243686547328755595954156450294710072374158500987615449352411977654556722368766492415668000286973093086881065202539549638275694643631994783970784989900594027795414988780741514799097768629886000216582971438000428895429520029016659622367490316506113871519124341503194314458717158682242761600096695606260699190269135379294643427290594121003795755596311547727897573793906537485959867315187552537451921792951989489680302035461490313543160246734959031510593633837800034088578361243263319274909427033913918670500364062001357716690945745271088683776294450225863999301277552714421497121245304786730856336463839411165354098217707715105406923295115462725420049381320330197306538393659285115054780835091920612258974934087656325466737127252114518483275014698719136503260442649989631683809505645943117813622287274875829769358370474945375622013298672242278487768715090739438413031980587940996402802570092732875158598385629906476921028790924344619521359520081566534881317160964626979387602597339593069088572192625191188765715590189451323325911934026030500580811323417435001058432455738187156845551907594652792012208778566650929596379172823360779782436142572004800730752558653668327614234519474336826081940150759284701365731066148430773014714752966271663987142483146577276818904533426583538496548265174480080228754381928668132062843311958989816521390013377190795220858031961687534948667744169223809622699615094945783591358894738004698298563048612441289124623463111921935358572892770875388003663093234809779800933864571041327765903697505335258460371380959887048309627317263404836628503355014500274263191510893355431091541247058555027493505980933924162858772186061422739078955646277018163060245387560965127980059192182209784365522216989287601527801558457293160967769437638914607618879463414482926606878093243255938967380101609914434766859027426991719893169185859180992291271409694337806776551236765716345289512538012323785352285049422418355396393319237203704520032753860896745927705624505360117919351216137915305224788196055723609358848638762734936402089954653020434156459904885109264267394790584548459963440274448125098366776093518379433551620210590846049558822952700659556832797508083543778904145333624690299061130204346456896347777591678000885942624418861495302230565944710774868623186685860694749456347360710126916639722323867037418770384129688045482400468554998026403359392466866644208010177723094864477162672910527812344547392985384492065474571904348867161754114747126150211824804035336242992239890214384852458010783861041425154080678517326361057925667287749419041785268977096110868574922470478239562294402579073305244305931915910177333450627243310070314306040276762179752101977208566874901709440340806876618831070947997185939251130581763831643526032736614878476335932829226431727143808117807028201785918701602423390724288323408821439266598889035037991311012385951327379735995346097630880285000803592806413492558259256153704439336562376555844899167594924111125253306295965082962130996217406292082965007996593267774697545488778804513317037714098133203648441671292847422912994420993366872285041863839628826916004354369151301977156504330637001398532557607832071226749315557213320420131849779749493870718959916115218110541105094756910927020967870228337217419141404532662256901211102520875743356598468032929569377330180113073960387555678494448879942399293830751222082192431945925046928683800299402839742096329589855662631072211844134128140436555340715112222113847871754265715364431333519541587675478361373084917926909356487074532685271203251804077806198806608989829201913019936013892682536538243465360077362696730499159932061723723814779910694410240625726470208676471020204266817348802720344030135895333084056701465526633264104033835333491175002805891335809811362222385456974963028067057098047499289906393610712592538548378341583628266832362205708133360297815581561523890494740819594389914049381149434866694277102519608726557678165315862681860028382900818369870779871492670689335742556169604263169929392774501122845807694904537386292101856051405679599164510585426621398569841434450417272453804126369302445394158769842163196212988016586167350015148849422209954108132215173339246012305305706070284764508203619098393801054936761697870662829658233212301711184288659323182449481470410337392875037898875342698758327549543350993134303220134886688667174919264352382560247782288247738032055540482097185611858295842518946593334662470372264649267831994736654919007545964150950724235415272569011319153927001590177354856995544184387964104568188759344007875305059274588887347933819955383744410401031508651784712327257240486468613074992209795323878835404550205268359935733667978205205051835512815269376254946961010406103021411741334412409785063572536551789656379580737930473107237773448081840131500125464480636175726871685646141139263364197748959563316595051844958330028242008509097834590081676731317204587770640649344598577974428445643367201520093675294827020272979409652854344158511303092593427886057921327672192166831524468041958409050584136732999948333816958097993981106317847577663954819724224924357661430281345923854507519847245190483370750116031118700609289433746350744265877630930860707626425294897965329921521384851009328787749588848851154284914558070577236071224622346248764738803599888025149151884544007946595503828766062408716664970395242495651695034415990908982974538810299262110961172695050007725832382245024795073772121128482856486698446832537203763292656808572205148197218452636571425127737356370983577094712888142692246310546845154446527837823332755497595369432361417497887044549316398528834361590902790819722613190776535910994330542908145139795118237916493263481624886385660948759417023965488832488200528597918321454700621509182157322896990832942885978538538469126997130088054005702841140987897409051670682185956533445675560411529182387507527898944036680335464650624553498186207135900814090692962914425797536519428395052300655632883296921025611856819818534048816945761340666305888038532009118041317461835125799580040796071482915664093393091724936735658918096782641828564543521634827778379635261754573971174155819831908674418885947717028266997872289550973100485747233777647694675826553049685954812530136618819343423966684106181745430459646396115099652892997022861437121348153939272146169838380387188623228297743386249028486476519315993254491336696732848684005130970407431585171958849435790637552475753617208824257809196661557316004283859268954022734338362038521798196073704763534913279420911176839701038867401104268026899526997824700882104453493428456856629611330859551853304454277540090048224746350455197776876454590772290891350768491485217805181198237257721714154134108360681946258665267877680856814927775201870855464151790630657163424603593437545363817739868256755426825457694113412735447416326755111439093146058775651619577395448301896147108676075195251537229434611911323308864247909227962053573954162959266858165687366177653252614889668889959692929558247892674004392277398075053781097830279051020293423874217035291960383108576297912890240628120286401956017265950085549768402306106997236837711166205668949835158426010794264143545308345507716993005921896866197213219092616774477239540457842670614391332908844810506926779439465172575746266521322370977286869107840632300129174106117718840981561703248465811697258822712127430827187128861867123831563012499965415214884691399348982508174756767557287830241702081131440400025674713720836054449194101392181950707693156774831983999908348985903522734761998483728119688453122980927136799441781191917783325068829554512594748991601644208609484793636054584097500472106648458568708625400654230070557574669564922372529443501164701525031402538329893477001475226034287657137635490019605781203485810910672452416542580089550271227913516918016808710977894079145053735851548408616467273280662374461218094492876485014317469785821876041262225056488736467624961255794933811204299836229030641948658594266088517202257800673287092052047024977752502860087208902683018775691986524574682251598171148148880336660587157800648795604481205310405896450935372110696586733557973778979818199577917870806119870634461365262322894573983937244395980380919007168518574984083962113822826680465589512544267827119311012180244391610682709848868627553433757621162920854607680166371113485918991564672532942316453954602078402251385911845106765721054761095958451777782858490302705526466250329461738848314300780938632599701507470523920810771220188423909129451572909748370355305365931039947349940970390070290095756081625194680955742516002942795939030430183787444010324786002546769641343461736439082959849275597013563597451825925533261916455880822082509251070654528148363341607189900778754438870142565234993860214241450827847586100635180526236325329477063892870560178475990381250666485646128037985061805577367674358506008513250066507994498963496550016816727121380405537767832179123938775790697864844938372341493919530752436770870994654871022766470607707293817744061789760698934104474294060908703858771278623214576843499925518340866037278198698579718739426641564921706253526696597006214033630538489853251512596152182186054002511339218361183033696621920412802679188469904591933091143182179411988867880679798570559176999628384660621755643518120380867238587750722325091990175299654539135484172458854628287206077430306959021594841485284108433066278386784270922866937316355758568929637955942072675182009654336988051386174612365694423809864511566664096906984491981918457199933323079715721991194392020448962796493609705304389479633690604224270032337701459203601626449220285686356371484558908765853285197368521593201793533717450050640402685128666293696813930711552065322462083535128066357066379835338765080127376984369797947381030797925267285138242584380773155184105707311211507201948866557073590891733678221418855555649238088078530816573491118406500014483969038992760211420049873510141374476658988693205989619747535579815938764522123803696463069724139814715661685558811228119853239540083261223982995368837364934548792915303548843893110346831715570969888604271039763334326702387119336060383390202819556323669301685731540701543218686273551135042365733974727846244492831803130522743218880382780814875800975505759330131045834200213767298602005187880829998881529301012101117236647173213442019703042487184364574220389911015898994632478565383591176125554524867688605821604573436916984843037569514073514943326870979168301041266126395155257767661875314755399865007746646007463268896222974109826637214511598120166579691995354122009412592622180721707124759884472555828512470361764376228962041516689068510728554809772318471072237501914711403858111483000728836498545034083639739000762337001790703271128529817685877128936525400003801809262641461965309293799804734410068451094124738042893518561993200951078126560275360693571699462869240599659187678130412825929018608231838174086846863422682717158032991003692606136885390040931505928679015512020462442968619628342016864912627189751326552649059013165741592871778983231714822946664217551722809514165384581768443968429178406286194764175496146691748178170751251730340761670006794883269567609568685366426216279394906438179747486902177171761008998811997685328670450855504203539400969764953762842627146315789346484646139818723271746767310939656572402461167210339268389092450762477867254527153555965448161427949677716881474355514038372041237307108725717471539985988324900860413614274922444391092676057397162392723502426027978475912817511041895477770768851322077404338409973491033274518877000211325401370380579089852096058069343274339256240284846417444850833771352244108599027290063775143028994169034754513753104810070197146473739047560035942987470060082922838022695525939425847570774041652174096863114936401495499284449253758816507106615805806827439541646450956294783458530358146670755200673387319697954314133085773573346210748797233415889457162642246444195223282835785594025067032368772058849643626879516353555352422140818767696391570250219598304446730997599968212230982982913718752003007774714564411799978237082588763106521652067268329251977177661596994499158015211950375445881010906040136300826734691400451652514328422201035267275452075151500411736097347926921340522056450792593301377658040435552724330796192642424197064716609750344468609522533414879022478665466078514126752923132937310402244772956486208474798543485893391938835636467090007575352576897232393538126662606133379183415873730501258161303408664821144250656272929652809741812029540578100246715863173909963306286917962334361332627199081323030978369661460253936137133876775406282253569543423678214631903583605065764391186203637447804967591063869393156044293039633555079100587330145246291631855561667582484110595166932550367437834641185702482494564322607970985486748185983401465750578880678521986838771983539673502168708140819641107491638147435135699824240465062438901964876903363322323807688670500881113412403479728610515883644561499384617274862163686967269217186729633553585476307761273271331765718742195605477968613510444573436476557091159899717559357515350003775522215676059280717417048321882066306610052388366843039273022430783669418680683707215371493036469331867501254399171212276500436042832224001203979984546278356672543652313661103750010248666040727680823497571285753313324302598188410616951282603675713264374754119877701247513137540876925114032243486051202337555992386909934961012881706376383820179127203390398430405404260325257763848860320598806878290201134374793464022282473991082513366354817532649510081377026541487998409648600769174561712068278218601539395738879087036763740634016647745530238271846687653746439827692863988647549106173225427588127645556653799400519646920145229947048353013418061710931582580441052678276792011319741872131433548374171900487813027385723048912963842601313909163048843317159986133936504407191921683798963930209143216531921267152741732646484681972434544046155784368756296410215831989563463656396645961108877508862408575712849186415810600229340564048307214963808290273230409702678338326857312070601755926761919012877107100773268148765877157787170924352488331855997222056515869868147963213274901121773123708414596429983975728022349121832154918098138776123256823065424776869739080994358920327272978259892480540509309076332255340462860811609088689547087497995349967033805077374080459183103227148033213737690098482169544420854028808089201384039244127015835403165527893701535068648907747905855750767966744750675950332843537778988961480149768823585878511006048572843260461868597805389086437382617329660778096261715078681436979135932988194542671504643042689323323357581424881599472213140819622767871945969911929396694686646040436034020407313220389128165909664885117012333586860576780067650940644758702008848068959212271957376160155274116117861612172533393516457997722356302441271328811732521500254149997901226573554987751318920689508976874549262519534765431767770558261688832091158566113894903785780095507307077134686318993647317529124806782922205016526990586892061227647451971322709986687933020711419971771859010074363633772047536741190185538643842339644541713908560819069191196921414146403611453895551576975926332792210491702918298697503369106514873767703221514324599901491846319987083510876994239451394020725119058597043491222315530725210594261641410116768948431564990728925442016685332599207652933784887674733083448914290488379665889953065042160535141567148708841086952003960868002412747622567466633105517605515918415290036280439103281078195320482825232481712016217355780102736585882375861886790801422580468830649570778475584157047657874300372983034603114254136692303296894152489058780556674740909800556666951376597480803481053701997843224765212934812478224601944411168568046192791219835895451897445980181673893605032589434298047176990147043643527505729593509568644016958406685604757771966930628021805941140232400432058875163250016825406600263744142440135681017529072863831572890674221631682401054846409985286841945813523271700885887930623122909966394965683233502214442625228213262580149745791431449139506138965062624173396047032904592133200146484984886365291575679508350278152958646053453815636433492908393737439141548917461582471042675213190869422557720663283172632991274529759068033903167949388358092744256312814085932753393881248963133531671841316272899373852728531370530334340421293356060410499163362743272940345290235741955943444088621555256850179085594675072882255769746500996778104702822815939888107545050540078548469708105833468870151121698500325233688445955412942760637131632145723721224309694123190752961413105473768312312647599365505876634576891204001762557057801471541511041603960125046274360385889844143567298293066407446600775226659138060934602384990044144807461544638401970500238124507353225245069729157543798699605848178054883512152239852608127975366818480278246535273128276779152338273639011590546186858302864569286361588492071579232501274607962204518714357093847920346788341000706455080252795310885000160662276846984035459555158588996699990216225269359877124489181037281996386401797296707440124622703177639092897397055493127350563646786581451246986151882857730151319771532305714146416092801380850798743908675327456810305053305504546320457639678678858701810536986770155218879872640969923906274770358482581503750473696337163607742509206346239189841893663021666802199746378735636709029655620254190155965941584742409491458222011493145352956407902865995612045670886770819153245722047612058023356066904288592014319539848798852266584292983878971154116828236974437159326955182668782180972169371348414170254799405810545051133949696878824932722625892175274858816021086437630511789215292963449530045933030592671344983746500829347918535186143307625251868156028920957303129902156013497632810252898073865147272649603195850088860724223017299385969112600764953215367643197467753551202027413141623302259917775638600769477195126585573993540795819071617992433450757117668183629488058599416682187432002929670614300262291714518864112212755679887035205612449977791518014235491825179731618656530888250138360118205216910774371159513304180181723417949466022742464655806590386650453013679958629940063143885635363300646008420295829337388146014137271274998948210588907696948112818843856669166167126656505064925113815527900473421172568409437534359302711461376274471683140548184969838794640047256789625621590681124625457800484377358260557254522469515276226113429611181214387383396240539869437124132274996100025675746863747655347683065976060532388111535525689481286407020584267404535368223808043547807137053061995811357835084557452086937729920602478394131753234773867465649378948992947639481274942514640616934394792806414208957098116344009864540547368796587954820637031447357195069606101678422820919969504375205550471366896828048477120507372440728331496027295945803721433988205459589105471397801373543177165646138147024553770109944139968895569500369907843429357349676370633566947800120693939843098962708334792066455971375699639264981123210949855816837834665594709821905031173668788345018093053771568564711388994978004112833165492988179341478780845857144747932223297340208458377600450950302533658225596144108917501031679806256680335892403347633784299507876864415695064790930171017767677598293770051684041888858542923436651873241591682642710561022564485066080472080788351882063416357777091223826761435876574159905272921282814047654161364997109599743146562269654505777086043012104781709886217722799009090644686886686595494090333957167987186046904176445712083564630299237975753423096021789388960611347989129428326821779358859702519865592738738132932527353894798325942680042175799606720724145236491177115315187594617615586039418205579590544182202917786497737295648112424334928578928189348078499797996138285456511748192235565567845702874417256115742383883080148123521977187278769486226265070830843466037403590427402180276693330883609642627595558081748693823353753467008340586660518849693607935205979585112069469100999409909249345307202747616093343659373866204540053659593005442907094920439670901714631318343900878940632455880476627249267394552914316275118067005621713324078328033631026277309515824134389490896216545502691671781767596851146944996341509930208830310825154277010352428880459206647689938730707437263279343567430505662400639705497167912443396879358286396567740345903284755672551590893010849617360200725094215214865794556629128648428964117527064004567973805968139712986956003289922263399530763482232757496399259161324555756462665061430630765360563177926572679311539636547721521075960867674825588505157856277578440651153996091096090861145549242095530479035712149008716709954623877358421350043614723650087451906973617773466099163308599337960390012186804787252348721597364029973635822779874514380215418331227259708257870421617522289668613503979746101943753972036697992956719688230383460044675188084382439590068276208781860176006221824513741211722250239916628691644327721612109004520436038216395535101767389788370363496434970514292532177695224155035981976223699878070968010460708927442232399474021910836046523546071138287218258268580686576884077081301454793502834633311485546222838900912308568933578447983632498311194070007140209765025914903613228809213312937857129214407643985070655904560606739902156421794086421053706375364415937539356094881899126386456843692457550455299285517347732702430681385913132869416731877014725208124778883332398632904094208723199111852198624513046972885490483626887211285466953349918239768461170720141842478676129675471805164785789676749425805024877858385823887940190223406049028646228926427988042491498971790974763943189840954897856045718265436585864859725575340602621679870560948451710014241116223871349803606622519827621536449973491955599114720627136812438203131833569842706333155157933517533156805498391250259144384867169240972782604546184638357667148002511505521897288853709606718809661608645489265529897717579475150679240472054945064380221425798214619190655051678871404300413664968411761656107901938441654756411889202911820795636501120263960529310972345768747562468530508865397331808801321565904978437876019349117317242928580696430580396808077406962484938494871459483522025411672477580533109286673265568597510869913302105611568392538095311689425097178488572115107939185885848650393413586749990151800369375711965538372481802000427071984435849547633969075857706829248497587096454829562579678144817248513021258761930386564398598339547440545101974742512326703655565848494209783391461576842142696771619086290071252894886281012038536864441015849198899103600328732335645197649896482839880156520644262083405913569732234433385120427031488337729426892771802240665731730055280571605905406187143162522753506229548569186829813766833970662524482303597289244815510884170533292385515309900544979430590282021446847967309238381464723595225136361792680415971930830683446994765689487156251490791462660878913755567893046695206313845823896563362462006742575564542833852742606364895947933183161236683414094703131068386327793915441792959715914282167257066907446424810111657317143753589511585654541438302903527828560387767683121886134808888852221602887133407852829467867006903559769460619707931981136785371286799421744531338755725869689117119653901308707114892338992702693768905108045189208435781588790168437531459633267920318816070935358272153056976424463698750212177833481950291781145632778783181794840371836994536272138896551090269925254145684361197345576839732348705741713311729944521549943840768304352988712648566588208299120650721706978234787084492213900019537849045071259756067465448430744834891426193553077777700889885231154891854742948703432993243491769652887845839538205154287978685594363828944367574539920896707492997043944388051666339594335709118525425570253587480318581994705330749383171765633648962920182906834254585820986460232757180187423746854530133976185226830796878919870067498165584001707345608552645237011724255225321323898828986091951008848474484476625891955810571843646975970430522337134638755410913515812055764976250641044421209183904048633510835154065104693173888930458684956391899239057721300358543156809128934213568277957478972924896305418327899613520939068506865691150891312481239151289246750358539694419287648177458073347319951162358669156892847846580076904693461049170165335480581290154169855176301723428085705908759002012147745671118536827121511343375115769224656089786356529366778331144917187792549216764314935032768513761066587594314817959592840488669447512589137268165800437054005099107123930028956398407458082046444595501248299693846838657181575136284121013400547643287833425247448858973326654530873527066273566116410497158765032873064107380135097510850495273680571398970026472610051978018432431251168014585683731924366843645723290311974933535335476346250082214880584978336412258756398774140430688265519083150986579728392223539502649190851378702151340225489613595039475742968281253991960583193406213951691255114349888907250885026845221908439862775831515966454147170535160215375095320752131746666866919332231032293619067545204924835242530328129037949493267026037895431884245436628807747747964177663655717049636739358829728311927264982718660966899676173859411469351971413646283830398162409329102055068468243079282317241386463892784989846798666447897194735242377071094525311023506382658227321319952805461718296101221029783573150350761513207934174661350322613188620892569740748579891924579268641085412101556435325246600895890134383406873537716245025005062097100968250727720484434982211901810138494541954353212033013910384394890513222794925757862528464724253582445895207417264545370971178522574111500503585120261222856192648518961727515963816510495668522712313010606080909722476083575290420727417336725679319846989710872975441403169270554472813747645160680886056028410956610080432639855235489023045165844592539570558791961662486441970860827744539779416852163260800671296074421137108352711484111435561081421773650538763730568005614569004291679935601665731425146095054701787032837939403371980532345726326020054092443557433814051709713218376850682646532311693254688890385356512314782034648677911017605455176346056698855295296375237467498658100890645386396217401088778678886770002360434472398580120025798088151984688586988191684636062781153423555880850623601105438373264078502749272698949242457404405844567596002025300032381262913743322691658657172039182800523575425784998159707212677608420466495155506951402979514841511073208800098315165687839856664906306878043146617334581701511499766965456424083450040992629071982911858818688949411323522161686850713145506590358912128406638610898656851034344953088177874358312670738452998454939530743073485841491664556618484180879376489675284683099478915820562322967565358132522471577823012270043041229394338458747281279039551271885590657564443051804116147971702632440013508179685726621037493822027081978836880505667428798549803594693267031441966086862151114079063079279159413373377120952401746769757818424120805394903235641522903561078565881284496009716565109160196137603315294019367167068150677905436239384599078918556606032650342446940562178513575272634080493331994269766851379951437858053580371280891508564557398847260914650750686319106558397801733340444932423413125382015786523866379967716914131771266016514027066338036691644035582947041104776459544118926798322259853958155727779327671168767817083201914795771634122464872577264476054033502211647476447588316253677492069328815194926881073595010591817463693958802956796930733385047115198769065005838674499513059751789638709926435653616568249123260724910798216844294963070078510478092161906242814688057812456765753007250672666027598691029179379987739156396560736835014276692848755619335527101530420147076165060328902874716552607509165332908845002826263138697301923472284022128610498997150549121060211418885625701742033548972106247493923121709216741166558744628042993298521376468315209137775974047321104758681082276299980960326121008404948542048970301739139141501411401575055099320183958089228142491799759649926260956419088128114789938944156702660531323130255975305478819568449613341627716013999635308775123743516107779839655026191157858634271303633012698447774694800053040724238203273400043302392162179982540485231378534967754928028159850915527339301756566115865129777912417442191049189857379858032268818758916470168287713782403557739330779483203976851709689247776888741006204465122353878163809016140637851173770669176124216584955442018052620289459734283900447304430148715421429391579414871277708777169141725404268882078998067736875358145827876769606821539515494697928703733486609367271148591415685522684452998593808029034418440668393518533071885837303567409018697349743218915604003481991001945089500546173395406811070233396418821819100690950433731571402729419988350269483155659129275740970634002820173066129088333672225730009080257145446855523196396072126027269808994922738825676453379085193628353346884694727534732875619276564211365294091227387165248775276594362151134197815108591430885850624158031722795432927214609641599288413203866759894970592826537022043476599824160244346938932558355888523182159818748201248972404493301139104428570357906849774360517459063998740608186727585717341016413397080413270817095353338237200634146804292402047423534579171717393223600834018676846288130270076323811366219579155620418559328925768074925608958991994503406993457575393607439700922952797328907569714782942058818235951346594755401431209524142586289108833835994064892040030889832982228820180735523224517941690764941444776098539168939379570276995368714391526073834526595674471748150404899862530707254915835944697266650536534615198309841092831476271207488186800573780372680509073180465847116491170404350729345828169696172747212801721640007579758682091623475070334199349372948750376227782555613548628093673593437596749925514194919584935087627487503434030243407178603810882641043261877871013724376074342834495220832172637395959369005447230023491934365645612343546350376531047507645469257969567237146001407218794333706208028535858190149081192909639701045638058684321683911981484786832696205843072593614901811916505841419193451086476233677580953185177095136836136266856925717240328727347245639155591463241355443267592079511523129739549967269433612973935865675305611986828614517630196001359528638473705035480764049158973079820323530114836397317009470596994806770726146389267166473157422077027267664874386034732124208821082869290241280363289132052693668596133406366309076582755257384630770040067546001263979351285709749830751318219589478835966092370327994268788306117766249065256163450745371568306906539746329103373497837171195442320949272074321152884305038644160851071707413657012249282635574237815398524086822790103259309790556329237460072129701259940862399044943965117919557225204397526924988042274537375047649707349948564783411666609086504661132497207649478192921790463175008486859847427295146981704392968965529440351681910552365116078561402312824706740127100268654284737757285204125198627087285114605987851573730821014384323965554589442063144695914786237605996185213386824229957583520609939193640300367527396820908775142430287900519466134145817177130951661270555688235521460635985147401048324141787561650741586783416582039403721393243911192248760796263787205636347165507949547033580291516147936376029167029955782216587096453187724294745738251720039486399589090703930495518800885600238844011801474430830867619121025595997725082759559759422975754100778809674830427821224589080423646745263553325075385286539373692327714490794264284396908737443469524659689477075795989690680580818046734953342269118914264839603384169033102094801161433123880454374101530601385037806765777793420496336121623471088848821935204674307945688551945845689312264717394291879331229875399906256242747643437238839189357835839375387602300685773100450218092105643949731161300435510287519006097135284650232228462773929054954663925812733505123177377419917302338659406677655581165985163155515493008630557216557588560915948892839178118222176392474563127902903502249782863258045284805437638122274909641235736910191785701362689975735799009147376372667098945733982842145183419604951597122080542402513889727646907128872805433479086642983215079238287334645980472983266486457839771288058373964548465531052568086257270562568174556996013742272930169225231122059619888464628381439885239978653721345708676184001494072107775740168755900880892345337774661519744201739952149768079643634577457063230411862155670207337820800740171312132096419693777084218047246390911678602681930827444923680143877611538213138798378860250682970386506493734813819635565499924621698798279592870312583540577461631826576071530075732332566188277663886062275181102422892817297645066708335281897565146438247055828166331212187626322245922857146453507620859384545457150777381454358896492255962039147916640570448860060213603729173034074589927127762116559461253979011339783283089805668293476582554825333847921900036967811010079141344837105977866156413161409100186414712825025108116400459932657745098595768855540335721953242078592178367675998850830224658728899719356722610801603623210783865918745414045878729580284223018507608446277241701143098253004076126825836020527181070803982049306253136346016235087191852655303586687343493434734120181484449298183075668436097883699833621113576618376902372692480387847762497274164822749624625362180828041460957048886771615795266725844838752665397306025814424978422606435519531468625782642596491518820919415810429986654363552658147630375867951817328310633167467466806710510088493458375248549749381311813176319181319854369050703711214130388097121221209020367389814661193721675363545056722997171858674673138877515170924571478623717887401317716376363211299434553944274684955853961701534770184906060125289171546326847991759369483776019810192613492801757813439183009517568524724913335772026248998711187599646849011069928254188775507689287053099830082268587922866467143315886264555065787143048689073680149787128704555853501228162227084921197466334651891811176410670283305592450021005659800628923896795430137226802166053271200773053920393805517722837266698697603819306435284398872273068506204978854705332188112871046714850256799962330519034013258858448544590846960419686439236822790166445965539051656723515275020392252693462804459298372541499535372164802909820714297674965264643725253732613791528449948876571382644862205699282586949568408998159146194263699636019270120750645912649843333089101046623660555661235557962883990753243981306557539187956094377759022750790177583997889449853544183711336802691598562874672573520061704185282036024757722803885579406412893661159428743029037354415679775097173550628492784490436321539872503837897211192672141471989493893082842688293926188442344029400338252320270527491452035773268927415626535618737446000090540009583615000758371923267303686825215368721112804279091047688815863047434743360930238604309627347989844282624230984379723323610771592324478802454984838824229953864390963793297522671502773697929076077717369165570223145472307827222293287553275657398483886814890140347498580492411102299925513002979703255408341263465901300250483607364030834410753162826225576360816941842461398295722203821431796017380872507959373073501559071379525089746821116936604116883877362032416782877181984016028209802072747092059545241180193264876059918648255685799315323116092318502502457934411170780123667372347322033244624867796026729285978387452526205888529349889304602116447938142897470142887548007046377787801378216290450052724678063857487371162514311087439132420197585531217333917527247754607166479247610739539029239920787612518436305130885500644215624738184452686684238207673060610450010519459141108810054291099927616669239005440184045299515507246161529806033698283655125399835650238651571733559643550803221307875704287684646135741554387153813208650801536535441991254973833834516915303320583680962416875949794120420777072886337914591088386941149741127168253475039418527100895863919905422752574548398855275183442148979534304584244853009209795060424284059958167195153212565282482651641777981855122095653314318509939420690937932252573998356124631918993617601814463865030203294403300799820720509514333175048296589008191240823070789890018999876666961871283157361335221034329894313340404394379491433289402864986026954438636978538717626277241754623320881331684355262360270990613099884894372080323282015523561613866850333730257392443136806592728413995521462039585883369035947229605780206466946964212818349276233665992974412856054147361595199773542115340941663892343080820621200569085287874633437366584894876265571707785381320396366929130416388801701768614655654772173430045557331705480783755825763695269559318662828300805360390261702857698893075285948196415470724345565993279374666600939802805233129951304094437354901051595398234978616713352448813081846115032302403050243280367711290272012905948687753203474565381676139724900986882259550245345262898843077278272575175151206640814569233952512056829622046942291207210642500654734253280845773108659734185709051893525492407197720335097061442167366649644960617658066636570351327061449169897622755038431145616155392593186131698570526167339802136880171179394461743135534988555184552365787619007628832441771857072882019948975270203787106822036170514785491542592325928836882481654544192058095496874770799013045067437913270468086932580967896807977527344149026432957582707970503442468906434013155493999318491685161276183983808696090646518879867542240088218069385785519341926322234585606759004213945076525866238982711161442496943921427656265426773232443533286303149704264764448448839232575676532380943513246285822173435884301975409506675848319991407453140450265630374180390709569672352621258224739146533879691368350978439843280135949086692759143928232636287958278518605209111697349938827002584109650016250122952306789416725098657562753013381576729075242313869148068145105456516879896420073466839270204365354768887829474562156001884497124951855077858680442110866581518991452121366426332435565863651841504860928055294655597758978962820520455799828996390742887084401428447090082520842557013617095420287271006637662769316715121504287974655600821292166546916515027235949340669622927996746487837196014710193038431900011879233257909648615247180662578273995548173333313385772940392014503489463018270927132937385202281179064183757170903120066939994611937789364028047171419782413303521073311588837785483310093208709864400980511495044505818493908966543344549998873472994152188418912279337113845720738472257600057519369538733811675425174257366058203853798474254087357021071786726651482942174538814946130423072534196972948445809836325093441529335834268836439974439118460955836037149729662606736542150776581909486093425442743871647565092400175670622698695662552558091919910682600390544544724733243604770715840422305098369773565510939723304699733737718326564404249176665974413364131474960118446585091143798726274512389132937815502223629035234976844907150923353467807010529783400367304295855779948801497527793998583418849831241170588679698625955980438452432816754593794768012469663649420932343648349512099360986223951000602885457207425257674857240115309386760501583870662765082289740010595254369742710650459872185458130935981828928623467222616985166983082823620395143836083167153736916415191356558495461894620491803937661860687000771843977340379694350721835607023082999980522065764555838425521645946061505232101135370433963925171384082608804550426566687112267299272849527677723352421087716085092044220273412776387426160516819082063669633663745508312065354009577577958627060786500585866987873398001036647223063147573487835210425979358109861470077230686773836911977089844317151641900807416602989074669951890205707379640280015697516979505711994919499804657165412681846872338239625108897834319101643753808817722599010903823888507292556657009940910070875284725992588014246217249153530718569097958780804520452979424594581219687159802895903673350768767146948674002725938494185146460470382683842753266444204385989242083202629780871430534954297146400436463865146091600927154641184349953116600660973432227855076203701392976447351895659894584991033608475267583360084596942706472429804663155267875682471280668640686205774242988855989004822249682190902721904259926808233701750338520486162770527301605432337072568479539109403891259039807282247385850115572410739944970381296900502913916687560118819109595447167066601358747152803619584798771284849272592872220608826395720994991079774065256300378113762547505176166750768449180473901219873847735087582051110862976179140476546675345098327699923748794681009323007242058197467104637655750301519954216223210988842541354868165001195018740882359858317949627699804439526426891554499930088869269953035253632228508622382136176729780805879364331522519928274353369066813085795325734004770462523876849527779353311502900505443720279050001400328594243460444263937940649625296421351741623610211146189643163135596002325575346481806536902789316357230675797370454128303701303677704814893750584533795575320292426924696760281721504747380633710814426268218660166795638809150569795743853150543766255403301187392450553415146709802655273165581476232147708169502107055182443672122151548123738710688867093861102129241400581788919186271832941547031963412527776348207675031531549561117029211862455456554358571995631124932386822848369842259855806856877405917664323317006727075155730256334972516505155047036298734624298510786086507589640618137834948709273609410654590924343288518911988519772906989074530199782049770456177689378426669525404053715454401455657172327806381507810628768516797015062144637435029412796161313491155986659020280916804964983142471265686347240618000716338612549993980079260127736878869711760857392314838621214978601448887381322353291100891454298223389531838792078607742161072893847421773564938350613023445125059413188365735392709386462198140636969366013918735113528819693994670827348081387783419067505343557301191004386419200279751780922976622490557650082057172398658827589233172176935736093516782483955377289881774771135547953764769365179770465953303542075551901975624944067820336079295810518025491156327411220734186084851126080792223983177764135208773621687331386597933950458830388859682077438083352862278304452296266056999666177270101454946094805029394067185615701243065715197418432699013945912792611554483102887423369422033747640324750718678724268827318181456730821915023762556000099475489411487454562982508999207363395925308837158916566796047219205758896786988268559151385765120734985749143516262863034540721696180747645308417606080876153011179730220881994573464730328921207333103248223756590363578112368236900614357014411106983554403671576950560534515895661821259917066460875498433369924811547654635432042167680542740136366571066094986917740047704264053073645032485000834125132786986636497385151440268938781409345518816140998238893083941442385565921489371428649354893279069352432951298434797764872321255012763457172708737277018115796675501616515216273512223700478478865907273031671954427382544348664990046845177063886863601263101639359254416775944172990041172643409817411642966000241909003096540013166346962881236080225303847132908236082713877663370382000439237400064594226784692482164987833583947469299656917499090672668874794883033142883682111428504948828261189846881517292596864782069278797758824072365993893261888646767489029494938273391905440962298787637123706438560303886523006853862010464273315087971176292841655576526958780296631511592111030695544724577434566514367206087566151040445419916982852757706110381766054093306925925561456235885728291327459080681351889787575981977939731110188227222480640362431532075767917255225072941434596912124338025092720710053623716715433544363545851625448996880556476089152228304224048862775997233499616412221001020246634423807094085530222599229445110120333503618106115564127405391534115135171851694585544855598624651071723201053222016484547357737307893012204770383524296385875426279147487826899363393581181436682142218905112995514599430345910303667943944224009031650041061426019320936517427722257683478476558444814932169194480732536218402225951642678276304526079626893420820944097070935040727002779323944621610905999644802632514296231594850646798070662544253490647880665047495722382758260604235602836661004135565851647061915590168900914849839983625295434322661225659027052015269049029941532953867738072369355699095533056912067122040049497435001242107695516324850458704420120447837685140525846120750182374099125985490851413876056280804215837005009368913686941847778774931575100676031128237692711349124998560000402607672803646044964954257571625864332514507227712809314701596453926485390619104327491064478022535746058165626871085741028945591386023112019026325917971714942738508361017188047330041140089410640641841001960513065367955073622463599739387197975198205447869237665236365467357191445488373306581987478362524067532013693238253953940821600886205009835369667459761407778124482522934860679203416834795115058697970880366827134622353465328910103299191463436898782587795825328055945945520200026123780119505073870769859812880928653404989398522398464025788759759713621656876318008835024746620090535743892630137993704290129890187475542515636264273133049881532934443943697714958191214113164058795715926702406653892596616088581406419065610223795994369276066980754737200297761487656508446540021829871613493151009774719848900143304917552275408776171215822580258791327230686591808364692896622449317923119574172486913761926005225300643840744071757956609785921818860054173811378702723857328485070455952172588221347370015209842398834965434946546227288791280355289621464295866584087705440947535183980907173496926718512268322162096031636606402159667182650270119321192857598739767925960737292319793826881178645570658511035838167521737574907801723994094032391502116367026405773982099867301620128401420538290514825898126323938747527024800803913123993422601412257083528322026065688728026697552591402055720912388344518848748079575127631624212353176515945333713529453586412798919488215400911326001311372584402527529666970848219168433313746312073586639485885810130149372829482527643535149940698774994553140332079001774860881303152390968811464953723374838570879834195952856025812411871795089508093382272578264374326835944269973688439508058355722611590094031733554069812942781446691209029814075082508543024487510313976729225326376399432485020036358664410908457361166710046233655359509824367482814412280601941299241049590543644177798769760439881972435754720844785777856001259122704821561774297923741090454436902080202968341637899895878214017748892673904757724530359253327140001282976786606924202187097158973576220973076312674169895742371633244673062758223783914499094645119484379168039680059228207254431951097189387133677606045688940893597248640779294623021313752584354497291478442546452284001246518200868984689089381642475767326866952424410127125705248970626494436914277273366816573943967211373086600209610826311857331964044986714946287806004099877607751745593312593935997571721867418962774452964639574085388316821388259841677225707165573455416439616309736994689342939225003851633465146408676071820626782949865125354870395919165118459327121314529910441787401560243715646381452757436276217763189044394272833368609421466797570771823827368750664038325951053947518759017414691393602366455529516398059323060885706997288046296426196405083712102265463513691561131829938494842118000702410551308086346125341116394418820213551805043547252614091367510131298396788186117252166091036452615111334628358761842059859439635534042912561897729715475072441870875523540755228364030618165755582985808953135694390594455680715876396140545624496740276123235167073637987005475949004595533796733821985893532970701615772901263578907326369828404713631385297794721862871638586300266748595623462138447749181448926802538497126518689759781484818802274446509801005793399166716218509117777401532652954675099374833196535755930896035625863286449925644971613156733681283665197082624916167977230137204314512490803939972535149328937435317459742961953580669951315795870272265721033542518191898396009585588838518162075391313447101178884744606834110180980172286279946325392338613348733976171715302493528048986843068631815933371922994669728674787325785563839102199978070752012454987964951427445171168823685757743945967600038718713802910447135138122230229340729568894137525986626805800968106209072712599557166295033222828005427416524266542365544140869185554602510958169389271350967735389035734693695688450292344554388470746816477231929123561900995820993986529262922210032824807172292763106285345369570927999502520575120165775534843250105453326273155401958865182158072674089992110655858517579965286538076681168066409227914497471303993252448096564204797118165070665223882279471931747044761135598712695277915307675933687044353679553895189308419468594782761486919955420541517894619657226970523232562950794663952929407626592162188132917573248985303977780859611875391017363196297549652555476145867745097524324477435820992070153965728649615517673671488716371188146978426243884010569280969373245425035173237861080685256868128135782295427170504921168810223224204966168349924070788442231145440892713338140938191653629520993863333181674067302216317598236741374593221241576429436303077447880682187728161725052945363159326532285118829665970370449916611167938760756635054487001479638558407102576475494244453206535206627606371249461135828807184043614926768630163161178380712829715912347502824136776770198587389739170990902756363713504827657946387746687520059961260766058595655412969767757483126673072640021017479442829948420771681248445298433875363513080878477153641167810726583922663542411682239787987401021650640327123342967486680021529141852715543129436626440339837470205222390831519969875870380769771565476675381032093681004875628019884631004661337173116821989079648556738168875626426398836664784247736406053390329066775646396123516325112280470561437280621555639906106462924720545586171684878903278451071344063717056445465978196642296715798116773884920219162853782534098104720490245112530211300095261915044506171438570010333101586281517456433272538720839062070351734688540182635415305983000921691864497556386930732299108984696306179118026110961207619409084768336626687862856683937981809143584372025884030995144149836839153187221847026016567370780934892707871992626667316514336416742110440311807150297398689112117777888965409791535441346043553663747850062482693234204660327937474742691035263007510257349052173070113355779207059248358465215699411563635822626055954130249525068511811332348356794619072847942502800259259098221616627769600942619721627601761913029729437081661360778070379547305538129802496349198326505881190478823230728969674485101437549965619268834267357126111542430075276500249313286107685908340470492082680398913778537733578305532576927863016354852240385673054107732440834597127649048405291192603045903578508600494543770888336015732222793505569489542578085777294183943390108151546926739720690872950250374867423820671857464928502644107552666742402279767383234392188389021092566651417574145708405203016528794769864457451987802067379898557410563357541710253759507476226299155766174504324034978342573420152462114357811034254246004291584893046469169909947638626652441784245725132111052808862176872459446548129241705415757826342778396765726245467284721879674344407982174805607569514961870420098028839752033901299666766743025226145927348824363534235589980555544686205062550165831534305568926298315069027577765563747297999406363711968485092794308781288327368940696101683370310712189480042794578629922805367321474826876633919459607371607190275642883498933963420001531394892302584907550672444429194379068359015288339134171179691131861856746582118739935574166430336179289712424358346316087205724634375157560987414720559672197007138232720281445217799441855731072751355492112445062540163998791844437846112866546404750645406155537865999445697396202530408449918966137913946007809129101286380555274894372489769577061130541764327619620291992534211177139171015890433285015269576303635596844345662353204249099355741860245980769914851041111083912686229297794210789763630371608761593955960963342088109993721885427475745318012424705918774344195589977832969076814180602672618320520930867488366116188446938992454271688059280320792519425815257661144808050141549682184418000411618445654348735920731803850823275435732240099813226080320995958613138353157405066348054717238756756913911176097040207589770318852897449257765426581483807169550794805347090334625553304087065088022579578446356695068549994645552565352394509422112051781467855107582946970614618742951818518535812807039439484090326120472708246534086025053690672152939412359817662292905641811716950378935243422626421358558751128690085662157525525294606207325454580850266636340622710547748857557310697741612715529647316313657594019877235090433811337069808625353123538286294518977628808575836588594890944664315145494170376862907701375261442446426420316772419651390413472528132773884481476359479947795174022990333714172191388933332412493710373523955998628496538210076479893847048321103050572051321344518348301031234989901876663079417281651773824730369733001724935640842459268886855066243350068619398354558884323394267643642392080273497947471576665196694991820388256934437423300706815476775248161875683244449482202217836575898154065646042814727591543032556502352377535324257391561921868157557536871479036966681384339565338861711296230052672492936830121811912305647366410402561773613358745196336568703832377646872101854581955747176570958464744412466488952985289534895130818692975672236225838907759607659151998708383834382979420854380445460175756294639308399073471454482859510815911035475126338251873632257222333886861527271773159763068715018926096013266916104760038907079790934304731562824202534452343454869492559338177606929231985856282079587151236668407061272645602794900766956129427501246457624312913695460534297257572955160222671082794465571101187468194339587230988659827772723586553002705406439737095324212235885451074947410404331217687726124438328044307003337623389518343832440365497601112222132867405436397182704957184006623164747653231087996943737267531177527046161413598701028481215398459526446597062507379103004194137842236923951758138396023187873892930005022545007574904171302031193015084911946872701761640835918669305207010181205897171568028943035641956149850616571236384155235872127459609866478870823442662196586520162395300593504514832241010015061996154880325006096258997918977433329458973041439691263425327720381087449275264044724353128223891360802073690069786826383420219835080192893166793385551042335083362759752264953690867920408444309834990869849875952766072207235225398984146531981156192734204410579745274749036075135598368531032593216431331663472489211684761766380300719377170955404257198105477339789274305045322377726364641063182126050380904695621711497710867700863287470712830194949373940663809976348727159999455189437589214302218224519726272969952879599903283340310402693253819223258036941726922633204682897339690939494949974335390175281837536726634009610854061383998276166534568597934144056984873341271046266867074964825064728270030302886973401835547732656762828551822460179151590320716469557572556128153626643334684125202478555619268814597207480871318793538736499394709432868835303391966573675609845657500647282311019711172367687754537467667522247559325079730699451355080057907630229448542859210392139716998262851663174393744575111041773398730387286767440902508339366623297608436157261080744975471198127947411008119823406261587671475064100218267175224644210014453228995645900946415076283502285601823324973054093972931492433636167176409165695053050655239946464236526388451756504978553166013007240901037220135951062742342181214645231306365868338463233569997822539813524115146473849848560103591128769641135734974187894179792647478551904719972459405220146219576038717858774678100759487549953772947087737491112717812923207467566917849811865029110918203299965555117981767627576759278799220868605793548636108404889961820136713943187536390615497635124694072499484517701559489456947154944504157471711623603000008882389197437737267547484891254073375724530866953856776883167083351293717415927865021634822830113933211107008174601851458248882719377668456192646767129959764864308700952435743048955418695434671511262614278784064450213330406061651146173925713737203027294253947078373220654347344752394775962054138865570368113470237195665705086216627842573667510388984338686027104259540579232182590016721910794336109792833327269149630710358309392923675313719791234551829013276882906011808150406311901052700803697626233917613283622144155598612604670296826191524783064755217581689779701416561786250292533708103241035196841986453785319800368446822852327539789088565240496974597583368654220194381551744135597596926778800034455683971816336332995332440049804279540680659461347273491085218775634869477484897267324586687454945382155129090476459190151079197030273914463858281492985350799990632964893838728811382322068058754952497970806137823874175731770783762541429427499214733977347822762663701854019241517243760226850330834042664329771664635932283433673066131575525969950574140544332092192819906989138684349552053728434722114566213822186256149666438017835642652413179959854041402828231420894042456696668231721150054102863802438827054910627451351081750385279285331949518339649229168250530440941212039295042917587869230865755235942411632002543298223580097006202097967728859719953581796315717668475145469982875739857446048220284199417778462586099176901936297409359480968435305470340016579600388312829356886819881906711081655835750075162225483536616047295767642281162083076561195479696411232598819734621736957486511258273193320554996180947340793324974474878241957384178729032786591699630356782026854809218338826134912669483706993502375933786877748723739783483839463960768303701617463060817751008806691514659564335223955711169720967657945876575239503327445934703834550279964364944117353451409582329461403199668846048545958045652735745087553263853833127175772538437706167656249532440506819871703106740874791992672967409929417025302996893496899276628862271544490022500759002718423189047773439124938499252630916899560224911590934991705576332185090746151067119816483033323424263119819007630783510767302461620756218045706613745710160293639630807775809021416105868075881213130752583423252009142218814538291344027253088878971511366929960912841372551473797340835749258004423187342125177458698977486147001615185361673606179108835234812709716824574304508973275377180374653365257354842591650897832717216373482032880455329036134615095382591042109276442205519440050331339964142454356351377480621394770423032785657326273537908712876444689757924516681544290407208068115984835073906297512855655802620109418098592160949007764750313805039285834636848170121846842781278161089500166636759601634779502975038732188626089018970434054252641936991607103764989628182111921410034788502063108704237677354746654261448714765827232949624074499887819736755278766329051048635080756549169252347682454592847299593125830658218589222974875489408416349957245952705516763623444784577729321235545614057479511408734184686379888225562025211352506410231769719788990925495655318900699214858449034161650327804920131702474107317389340872909593365711404280090877053758470474712642025829440191149803036243585122967163834864042886074353656156473749963681847279314698776867859816745273998975591088249080891262916203832825185127626026925205908563112426539475745844655220689416544299953847747204170215083229173704149683160412088333980830016984926225615254650747786386308176630634462220185272464215762477656680812231729527717977271533675349982123208692595059941398316309322742455205142897486427238618396982637574089504215324075463154407376260537425895659240735349690477213595028532421390818863503540703078912836109039795817781510819998114269745960949307725677231858832102985921512518126703272726014521386439020864871743847980597360723516329575953074415667463194532596516068895169829102676404668628224213043151747227466228981872214840221292000332995806268034616159864501916902231261120598914620652403939345420475777991089229236486082993727950921389886164403665014718673931364343350847252032627385844761477765928224810545731806915236165524329957735708605437330783356114679579165018963271382303748810206466273391379029645601781546134184065065291193914717220319820849860675597954196513974136732428986397002869297513118126056820938687626933309980674148424701637919913203400003051212288895783254001155625289888180618686025982514240891806955421783162078575406732572984168485125290221413935883798854684168199002521476765596828890799019512651613226568723707877475499439400291122530140203663990132774273520893802173791554755219505947116886642361687923647135223179142829891637538581815084992930762722619121671744651386842058003198940613926463694106892911172188357893081280015334838749294478158365823248895747225775289569146231713373844519685759130119178573143035786156558068430818607387518316305771415497811017992212103580215829744240445218272711927985417156103411435075782741229920743469135808769309909539372910287658516272461173291022286176371955204303051981680608283401767637497319085532885146370330241852444306645670578352664744006952661161208488039902117392485818392948840779814029288090343415124827961705715129989351369552995767091387988081494082978387408131662149769244070136639465438369495053774726595572172238696342598756755221247603536113106300601857791610826711794095393624930082316224237115441083523037381182969874477156305774256880310038867304233507440514500668811204828050509764550163267746072328175229195225216261354995467081049371431578738624566701460247916519115725280192062855122695335848838885022870198336457839386353687464061734987726701924054833482986128841481588491282261096727957289908110830584852779842385217380840374627649261786459359081738909396327673114548761522847544142523745892566273696474123212396270618609850737629669854312101839583806208921701133993903757113221292302296934910544170452060679055744614728888662122720520791395821350769517776712977385768413281249150531212181588872576957375934151378578077141677572673980370339419258207447754946108444025359560379227554372692989333669084331078266774299238594142717228872610399824610090434483617065414960152969520458449868775636519683815688156962813348912637922670985296578371703358826795801348914624153531945306951312935686859383197245608193627871868777549298838629133058422799818566905462033437440363985865228138067729335240972035929400990091726281615056747236024216008982063985033210013081538380284263001916882640041841239637048363105623176907708270145106991801493265950514512098621446509242543245129035488687860467685045573643140594049023333101519316975422133548716847740343028284751035500024773852907481007710830561921419758231298377808443131478932141057975528047290197041773051780080759165029742525941280434612728780636111902657203291880773518451704210492721686151852661812723780204825428225538806213163626584938806906109016017922701457285834978102226277380029912975772082545104480808510703316247209943845165935823092611946695219970542721107887521390485328140661892513251780508618135255262322418853151139971219603836910269774699586462656274144106725468034749722087284709407683837709155088411136729458761642543803012298580595811718731496241497751541983502813077970465264093437762898899288021740051285095942877235968902287250529473551803341998752250871932780486283535623175566651168539591364344773520191870528530320560975308099941801835292607038749046058440944886556131721615806619751211259018113232137616264706504214112620020420576310499235933142675175177832897377038542314629486830114508688936806285278630104083144936526710587340260298978834478982181797499719257969592875673866965989118525495093216613512839117608702626530396398633695251444449275621245589976214657216375368713240319640237571713666670275304221180464942019285539687518343309721727135067361098302221147206682389157763756809622742976141580217864873963395504702660911983099306403232257354821602604753405316580387689870369415466139329792043264844304149883190987968349445738242349280436258935079948218557849873771629311568460647867449990371009880195784062587975454473648762550448892439146286798366674104353432730868804540320360807297989758988861510862676697412716497950981992148740297129741411415880895837597361144745172713388956209841525746649071146836508229874012046845048119415124497916797091624800569169808509692249473662638213916002821257982393415789585417888908850160660216014513926021045962303510375632139615986689297543993914759876744738080651997697462296857875897687331512856123391361844078984310851295830613189262014743705981205143512741480233034083986328705444829808986568764604653000957301186712616212690928409659360098269555467122534829663973149016378419738170283837609015754020742829044486941702131211621391996662893421348244572506071980617435225503633858917183977406125050818289621095969768673984576339893547123957313388561761811713209847454446752271330270518031234505575124896938325523213470466228403096940615695592193491484268028320914888432093946792535411686083111653980666588999798300207028508643413339976800094704312451825313089509799012675042970156403540397183836637781464233652404893174346707160290459441849735104965905456640441113995497481429831389638180293704534827075705065283869979377133930775769350439191409573491756032094884121340231123319001172262076402821030786756093182818076936104617511211668810892797278073063133989855958167027663689090717626192576532433032323863805448351446270195748517551189277951325557240427261133227354635375912554612581822136156571277635691775705151932691611777086382734647891761029845941049612957055009170436182531638896343289241317765345471838968808890246240744330928228327778054692449050273339154978714921438142730499171434490864105958652481473407493118257735410544784666539095997873078365848627743470725872897286926558942372994560856301209144144860759298700104820197673049348450265539259745633163062508638363595381704539555575377743850978025406561986839829402032672684298619781685994537415346226706380407580090131708441240739256306927244038831206151303515273879011789891502512790153764870944967363223364835398989256427543746602284528657417363286438468963571362967895932685645913505535871735495977995502939433305771173167455279552386293961108425072467402860778753945280083094334507024478665968038526245384733969634910334043200513410802814534830893365894229839387653161617111854490059139933703285517896111991454661700200523176453289418341939133160652645723248682234907409083721348389697972592999359590619244775896680626643934942870142560654587762289396252236457455189383618733447723010722449558975677110518353965205630857552248436314263452706259158278840105047590371873702926313423696361496591537879912272643756477590545410684578993031663284901180562705742175223167674006596918615925585014682941779580246790988117412240237078474531109347903270030276371607960507218716236995142466085108532199596797623441947196262827247270636760512828732316746663935866819677739817698675396067769887106195619903794029780324537665507553773565030896507431046522738587192945455643585189198134751007468537002467551441484754120200285352743686056328355351482823505542363813876885785893090653773149887344482734205160219024074433959283255560902426347696615054560935938190403814544176063342289214489200114383626332768246035037278770061722706058198102756107357846759264459149064166217329643859912209037642951891064446039392854928642957771438768478336036993947849372557203386564747965063107527005178156769958747231982997829020562419930777009254864369759132777013730418574724228623492136747707074307224842867707999115196734418839473365976715625027260875294609613837202001285365885863922338394071781565320023121633115211732804836486425721741518248733345773596867686845733897622761291701395969808949258291485790666778168956274099958619620742077849990863236460056420867054295392421746957614027759311854555672507144997797218835510235609713373897031330114296118337664085329677012852805777560604712308921576992948484260516813480494955022053389756176928561797535383332757363718646610523454287989915464538080210983485699857695680161357980554018711734528722882687578755451395281516392669748118887335665768690327007089992229814111377878870327329713860828964822889698387677873572588663326158493524885871384245067397702461903813555261303804472874701364573904515795425620607536350734256359311715420292942419275763021890013429013511627296627094342739909062554301898363127237567520489835277022236391633422596426404778433043639795513290883770170727531324727647782103551971576435720855390830179529307302042188520432110566827171725206784469753262300435079231679274688629448696772621851936628273024864645923477797401718567926244095526044024960996604832095423681716928623028461208134282121182373084110928831376885674267407803393265033737214715359511969839228441806309059434897820312475365916082831735368053240685505902661960383236153882815366967242683717272176304077752215646508189184998956352835802422241030208763993293542465647598749800051231639070080589880440518058360327002639098042206642915090359446679411454136220745981341063517388734151434834223657510006148218347023231458561046786563511382251068425976160563534593047683123195193530367666442882346854422310704686060356813756096316390478516717433291503128301965589091278090695579801374145307003587701922352472674214218788444554416145919567572211721326964149688926756122699323476168063952359630111781286035775602263547220862812709569302688075327927880084339142583103082075794603882089842906511429976137550391525479035479112115035787615116605224020117422785598345416724771803757054740301617062503700650257871360352998323306881109382389058954605974530772299713337017628170269758279764726995295375228066319430513603240979801827105530521840432711184648688440967907872957099828162692969069159189061089149709793309937185524176595846246959510426305355432001734535360963276413100500210187412562099384128385750597567922472172201438668691068256862542675101670670140476739225841652376387993621436776997705261947002814416922392839088811685642814239934350445170686251714670963452170332877555452421988124177285801518409229280031923267664294968137163736152958930632750292750871037285103230344285343484163735216375223666733799386568316755782740256272248379621241586030989100593947605103415439619587017762848762690022947755185691186519920888745860164066269715345936126974473766845146408368470304188839571086901529564214812564971494079482343562124026906120570959405908779848774933824972598496112098461026137328503982563945890211626294399581810530063904226671992681977710604883481744961313198855789683173096673307902613724307161548802018697070060160942022496002894538164853299212167369866220992217843732679703169285705100715167933144219307605159651773182199497130805219924002559898665704202232612592381530904793422714066250433701416660860004410826384121484294213600672354642010829537600664236454415627642761685758677693767359058834956684358666739749591880535760791217728131255080833409057700748514414274978288126904237401119313903699239549719333381460146310390656795800400967656728480316835015898307731408544508937666865990213745843286011720485067568015792010952804112334829789387859201154820784786348554497513623746296147060993336698639893726041294184135045062522757713131173013493516775175625300944075337846296907371458034229671987156962137680463783586807955097403880645486270756899102638947201574705559459364701056616799363568690536479070990904496881222569822747924377072708741083347277266382355517001437739000127281038484334839644383174897590213300396147225949855640720403741164956156554826932258829442009186703331492506495102362442672873885131647840424175431553557703930248768586471707435875545295456905376392206398424602997066258782416264758719718284774877499149677488501589606872902062710350050261364116234336422387118196453036086225922535214779258969595432345722058460199791722312929198741353508615521312199709143384003734985936279841514207973586040132458821624868250577741718735530348702648671380538673976773851701673323252860762933904187266468720822101019433009683521430733612681831709732698975336374984686122655123012595747625439677183385813183915540759658589689214187490416302444974095614695386880343488102703497550155821600402458410609266156685579644959947789161710966402664601935073448565099469048622213507927850300808509012250550283305338150760108354586312567333370261937314920313167849019541102684303325453796528517938727849285633128953216952649714821631349783322236642383760796226041579178613864428686293308654158002806213362255341868288029257355370160540026338009524323287625906842426270340714407081635223583362021676716633571097999157492564243365953833090570248516523519205913584977179180440084807465843369445392036582070928087338648245216422602687824958170502038452300175998999698582755349803034757308973155938288518545308708398119080889995935296984238240199752293599250023737100845049202467170958494327622042930726561407056023582650677370545184455104077629647444310987685959034858789436446680783434512407561139496800878512087612158932601089334989492691727542738241019203281068483445638615076306357991521781589701651601166375665255885575857672614090377438065411537701816800318097993826272976814695519068309798958102532676538071320523581999770590321230931009036896058965073162084477710671366065351091387845631316916743764253757068833904874164477428712311826891609397057372546092286204052224870420449484254969110051435682745463710237206760340101929553585752730374541786228916528984198106459877076370188093103899163718720006071353102525004492504767708278649523329489675840672154027288628393699207825370407234062571532464763050973115616423790519763124256733089755313226672941587961341203267808917625247241514033430650073999440712687958600701281316991587000329021391127744265450634179694873932284299821932156473794162304014912661296119720729981243905304855792462150452450379806485343630144946176551260033071043118929530627155628913517039103397473739334753856962729240703916380618635213742053396882008822942849872189391880197455994796196410541333575401843803447456860802952518815077749070539555325486118470332781805491197050409340874257961239925998299151349954408923550405349252654204197358440296259259212068918247103930013393408820175076135075203141083847029252137992169656823607132419787593167180020358310357402769888435397052658460828250358095633889391388883105233166826296840363242712900659729425709272958615214066900054368750348669210217653452934489544123338149480750591940924766248766735839334006550133541626515370101273652407091683980662732108110239136568170036567080141573456347969594026488910927833797741614768227235365037823178552761565041572876046771224022536616657298940183172036652038253805126948543636225532047643897925705644894874579719670387969530721732245218440098955187241750956631949203510910818429817484922791668113728082115862876673396742100301053905579489373036983415547877203526996248849205908707503262748599794983455070666395327692502834622337604046520860036828342568491180421807766958931480596873985566290848999059220567761977084555138109609849684483033369975411027729653729121248306611448373682312994702566833467398300483188977186478721830499889255543007251513284506100042424916675597731450460502509120816316693204920249800961627606753604676366312065385018525557434851233650565225308590893238471492932731526005099258592832419560307604160353564518645207253274413278735492038734752709521590650971772054072480719412698624046238736077364176363907611892737906001648395709452761513914584587650274889278954862271871114922551234120060244368333279672543535673438563364507729458935149990342922836104753025916576978691709201805622634796812360763782627582579992089015585020372539705399824602780799426063686658343953396312147101238259495677674587050430479405946986331007957116425011380961834978066719632414248900669966823741296489724225467170076027250961775103964925047968067202400067101947541325589361084209555153864537419244196132727187823959719845577467879964628256276582139560620315712941506618129479165941905902626282899800931046450244341589841911254847058975864306699355759466661500435505397488816663533760002786265872579696809137078700149407927820824158521769794533878962427704280329088959972318110987620514119859105710724457322112605482006470781232196645230007078662011288326785280866654120608513370182169058317431474516191529193068292830683932244587027864101915324294596716904895560976998964050697407747469057867676863288114419214760072917704831884604636574792365777479018053911286442232176814944206571220873718680069955435721981386639324925433624081622779473582953818374650577467253036180293940020522653821918903524607558549189534450753939479562440216369951182762380761926001185500297655360043025529046837103818079409440409313373439462346654777609080052319312166501777588203145765494005090899957378675596784910665588929306101339412570059172320566328772863004557437002001470094929162436115292875914561491394118249392451406113756487871676765220906693408070558056376893501998221569263816144783591148039191655463588542324480481845705345367219147570995579035837114301598765114699092486923790067278984792317069337568960751728555830594907519643066707709181141758365000464913618786120653461604336932554326669732247159550986504492828379529901772882139042890185468789064616921873868710848227243708649929112865260057954244783689718817281135456318625214332542204027259110265454943959021616792294737699000706569250253965314908847159202245980177049797118914793812387649136423007957171998087214171705325826828073417776897974744284010168238402075256954383159039566420681206842039180086696981046937411918975859775270138420095880722098999538073545609329193416572023085924877506562132871929227097485540213673823582936301228767187106078216292280851278774798227416783873241438233094481083810494656347440862895878131908003455627268574185012905383549718845457834897300982936804582594286307011935161241148290479282751735377766129301759570158472169329833557490287751966421119550087921804999888547944732945486234297398394010996850303069589845701212335074655341578975656870892824262410688599948382469597769086439953339232022966518142658432057977393380611684252921151574397525571075088207018173327306839119571584531639385221602535289137375338333144671955256983054038984215567855027990978646960999591060742224553348829286696239921194583008575303442405481355147101442809692316317533168135729877610451790872321804885634510722220951911494778961668894486707481116062008526997213119839644939785388722823539799367515465644598755485554901160769901667743925336801232764805231701558313683067268470660471903420073885421465384043896193773719966896383430583514166714387227923377193831826081149334866360181240494247549673767914446820578240185689669602763074108894865238090001506093536471927521079449582529233129446111193351859223567554231224461986555831284775056636069208148721632744045867983788120878741563958707707154603238266996601277551189702497187197769996585507930829372457372256232816829750292505691501273301035726844402038600869038431948110204960445403052535542388513500803960413550299859253126538083208986974470620212422927554731062197389680090761072395608367443683480162291877078057317698789719190053050870983091800137055002508332151985911574727581901474616737854072523402369964113451051751549257566063551154014414410083427413137787087464095067874335609100360293937400833525204536234371174749720142193953965775483718050617828131540242643023059773808449795567215627448005136963037596778651799585652330037785457904467445503654527449471575887028217109295081259449087046654185711724438656337435223436365948729237714242453098782848824560647742404710217481199882780350599187442321106614370594929823762163863696002372444864266103996912838613245685495020798456688959069428800311778542590300386351755702829554412747361355644385904933377214171555960240705714072010280147120861421532151439145641910603063652111904440049928446744210024920407160104928270569676594731430714026171414693056070238909748881063738112996833121789288842054631611535137676566828308524681959970560419863348376668705433607680527903233459066903135082790014039036184253691613577633613767090025887017228606991107720929151598672533847043350982736125766119177731949509295165942764912496294448260946619581936681821414610775762044423766661312958821108409212433705959393250278128739592421393002738615365862626989716878483667304901250985831321974341519551540312657687472574394795376134800626375443163721056038210728479215644814039567307956542123934513820436974983482499379447583686000216616142226401000979506288548448937841466446649021280849091190323875097613935797505776800914876087840619552088572311510242009277075254833099476029426956890243074416191814954751837146389967924622115181058308941563240344101050273754464030122180607511787249393315650204322939750285648694103323375048256765194397780065981294215007117106686850527997122530592437029514502246139714037213408715509131933989493327153667442199622694848231880883636574778425359096912393579807865194659381275320026546960308923689174826951419720006285044994660301597780171480884051737202454699696343531423193661706712043382738736189267174437873412926682582312255078160018694030803092457340200814391078055314518793580486750908800114894553095405464060816745245057030501680106123736760958589771557421609165089237248401389445802871055732982234142072946835116245903413772155298690374650038040757363972900941837242296713843331404244256181243176474121273213865536818290657519733730291868611980747766275599783493988367945119973888041410134934986633212774453914173816941855254098271574384629850999621489469863517777552404404419262704710010766035377525660890588284641595211939417294015205069840005000112032624021267266385497955713782016834402010075057484205638095293270270282203123585598180519666046236435377860571852058899502151061956517049036361803515715133716841124093112598281187301628112071195204020500923117490388056983215460915846384207278906166068926879928457929987844152135055077767273384904288346792347683300875697982172494997562222498755731191885903905092764654769357141722165412208147077506300125768616489912693932199169317381151586400360688260926598713956305482939269216414559060010591008565283551456683224173062905611240005428429660422386790257103290517863189187741346364008404745647093497001026949956456548327179889696953023413367611640206662770027469397516833257330113864518135705435437930563482129985433546424424825673195107742623055757468395858969208794668575285440253325613619641331386575055175820976170212668182641567421874300703868598228856531755879935089979245686189527589903785470380347399908807365885483780212605970315144785637613623167736589885302610580512963833642239274071211580761098347254526124026423489726503856158557348294665463815172417414285846659823438398379016202872214570496134787137352729849472110820122880178476656509432092066251772777764570097376187261912554842734949801797815013509991507820406023508644565006782868938416646496120672741471587170179197110613305095213524396896240110329915055682400320091117617678695629467272318186205609765395036951163626851581458832777198370808248698379692357987059420777674652858335806156181063064984755192842072460018797905207758307068695840400330359548905295138411143674164523915879674204938213699395270832975818423786494587041531566408788921455128857845032082999676140260551268517605364647409012854653867619897126795367180416813182243244486824240483032627804900577406336996249973129067619340318583909437903599390573708540979091806482790595402968603869501560149268167332161345544344788246319185654268453577298685596248420981893340793432431149053429056435865915039192071021428127951871429834355950039426263747675104877161608739609488574476602215706102996596709439125091462917278032851164512918636132572886652885635055295153012853187265943667820105060483052284049901177040976158914758656237128906817772803477907721124248619156510010740303556216245284327155526613948525628449316781016545074070023541474160663761011214867747773269680174020311522860606539881155481191423189712841249586178246943603025105594744409713492853215856450432306949953236192505289020371528677655528059253826945126184205329779527591436678111208376138315832607236683057954822063897280640665541233461424386475927531096355254400383101208363621226258324788623366594333723857096086882146539322545217574789106397895981836956998462035404124713598275793673639812710916246244794459329998413052509150248114843634212824209039483700571378786059154613772872858827301336913773429361249343916855924522619715981916872059095722223264690245826990036341474782053452979867941100753536014939974948707785464628523282557605878630405088376125394585661268235671462821070916355715362265349218899134233806895705777894845508766445628272207175799257501951993082861997127285867427026919367929410939154058178223040076604852802808550163805721738455319662902248403856251910783255152815860153157021821103082102831323669133639873056174289117370280114326598807609242627843917100722376236091256929663535616162490202314913082061756485606954332218744478701368336676589454178902180992658606655165378756552192108107277984729789424110727461804928536378316000727538172260004116273072975952364709551638842284649835036027074022636466025834020141836319440830883640897924641019580457073261341178565055683290703025130846336484877662712321328484373992887618675053437034328552681694929102159859227701907757480907581987346950669601735163141343439883669173956021738618546830706105112705597092628825024904069508031076946264172073964412162364204145364199726628515519189357484831038755352784527871641839972709876301129925019769956323941778607512583746571626409912130400810116582107371043963370319584521667245189119709980976995887144324433888411029848735545649095228176682977701213395530119973124516896168101462357691071199819291327079454877456544440115440899512506321034074955339511883344276589468848981020076947116157317860819681012788653562362194290944587082105692244118417985642463778336159116272147685933860927095523165651598756867642597694517415737712737234534837768266169544786022243021518326877044050077747995499104944951891842228112725205013584408741867828467386018774237234384902336650308297978484228729284366314304181733809678313859739338287244293943156247882691889599489130350386434632649626209223479043872121769384004000181057140046230448946875718468660114803026001387485653128043538288979517737986286930150315544836575891164264318422022944260512483516854873647035316702280522623935932781181230553511562220799280032552089572621830809269570824705211169494450335541676694637167724342472915172084721022343191211241669848241102817700616369825733458055906728822080302746613933996165182000120098006913367681240711966976974198612034837867400862559608306334449694562368215359120066749964927842757368256196565892846691957690178085430618874652442296957872412462266539918792101641473114439872700386826510687519008629349069389017750660066781131852838713780221292017710844991217867861477525843668439822881575002778622959507169066712934826141408469744800336286439207535879563812975902173582962398709783899380388507329495459905776339345715678436743752168736335448062691814387550237902693308697363288538817848346740244707326058795223897249721237553411924941559193597464945348003387446456139641187953757394049851374847130866834698851059447003569670269527066076600512464071967613479145340111259628358779022402251913113974769804841959743857887915294797394101429354233609599601662769791630066696355159424834091240964070989473284522048587987115393150447084481662071912788481357070820431749835765320964732208008247699920444348181990911085550907751043287002775079327891038402353213605124914561042054426636578965274943998390435155650904215861018150619883028622783294324023939402544266298935722752732716883279704608112757893735527397057948645083363853000634781387577028717026348147440929612638795891844142919081374517490476451337187885997083546722668535627088053601549486040675204076972483206297311235212737263074880310339920748549773991957177311002551777107228525910316060644291042275267134944438950544624590847598003208375845170607917983017446863309732120554722737404674649588082187552975233346294147943332581418384856415727653266816550646606108629518791390837461914026119878305650740048440660929964240604589774332330423946964742265366086344927887855012563641625183299169308575153610828125844281433260512792280501231799789665308239838228856972836282557206319345678898604716782739949573289745792671738170431613604801436462921584734561913896720508233079107808337636054480672801751647142903251958549955313204214570654310741127649492335204403678075689751432934566595235336827880459216462274932072899705559136785129051758588019900555422238743739713634761819653536329585652978251931244662957434508165558904403623819839371389786704594416185012928360580045140466893421018566178200681572719187887556292153336154715962285122474113146142573639080339269375162172810425172554967836223669182010859158038954199011667416515028408399700534119698913480417241245633289045086161668868176629171796976474689605803161877430114307937042303076830863950809727251815186757865956243276595211372181310380422637481109841153602352098909048338585330316163591663310631194615375523962766106203061811902109111807090655632862961705282393254331487094812444803991709235425821178710741496974559593556918072995718008177130993849650630244143860789481470113729877767377091365835646725511196810578408503709711604987619002315480953479075267660941595416940478662441446750532989423596343725133962594885992418611607619049999309209198211356443278625622950007644779181461184915177691195206851176529025100062761039883934949434650444675165440962157734533959686951947167371011586208356358847644394296956814020827300889055983333710464958311430063842137978546478972276652409070186534409428479818466443244435184691636485995130684365784957340399397074338429248626921490081265137624490692515762486852089453505709770755315811517031496029682784322660352545455221833184736628162772133971638455340708086693664166208981307855715681435389367125323136862303343297886166071660489157350327490030038217108010404428759941910661624625603993878272653209183210008776520676143385977352348746290324710767129429897179278893298226534502536757577106029298644115077986859691302355577862916581980527738493154194431525515677422709766184633505679295852051595761724245063124173341329822563296114593161241797326574236948358288330496967848863976910134294800628257199293371349530113107312742841334251607937580838192569511470889932732895136073149669441178318424728213760976429977163179019886837037903621039824287365804263130431182529335078838107232962851951105005510785711405730321929038366775134209840251530364953180964305392929177103642654496459041511641712273964088755924796904238343239078244421872294195857542868370674576761424932312412431670381591308941936674989205710821706744701609200744698899601943019738242064428867550680272332858269265024634835362882177980763816381310292606110148765833959917084570920263163683074961902874868596191293806482114280096424046434098381116628683146530499441072511546468302648432038671708182094626956476386083579283013657741259055092573915455713453982447962822613312171125908014412663550148831269249297876914415509642817070552314260696404167765085863948534000508289516924505163803943856981346525815287628970854441979837497498265511391596647400449786898561274309929005176921825715329325577045936329064007505588265237837483174841700935592662175317819027481242208214603536767358383993401367064435923096243188799017772125905122475082307120829727960231458217389055625440070059577196323699425607846343176444514587559497390206715196452926689213622627726695469501469540039607490094375262303086832888643944302902592022225351105103546370309131960438932764579333411581553552515007006699847062438494697525616362944524528780580015951496758036590540642596039779948118544192139799176428188003620229659775082293639819130848859969916040263623510032428883551294919931948044685566149705872186003537907909143383557252826790279868156981823045649699236626610104318126542544058680735556439069810355343587236306356044374341254413230624134387883391962624351680888122315309794735296230628417532094339716232226337398781314295919419713906193100746635059246078985145681401902361447682965209145670345507265480814445891542815584176655170001412717203199970003071772275110644422040707136262111684453499056665931257523533177555618715380287033553102728393604122709585080942285549565413434246933533712822058439438439694647510855613782709584491871613502044637436939802709752723855655808273361190208368098295449361385227211241583357482126747463096554220686526013586611994762773635832645453858650573556710495392523434957094677242885006751848485517321396422186600803571596328386990906363464067822312411326312313901707307759528314637237390321257498815480482033866518995667091703351704290668139333341803823119618960375447901858441899514676214331235836947628385151346752863131626692029597155038329768069021672095271159533578901324723882144293975110819639247739631388034546678470762148991279961841704016353786794698564640102187536276421172787277233740095364081230569676224864593450384728388414720112677165285398204089215809890495712148588481409729029198743372180043448842001869542820356084631781340539944313242887621033807697825276213487383374386876133386425757973220677494118259847745755463785765635011925109707428677799520261967494073676097121417413728797067519578077304500131729824376206009622621244451670267094563962166093650092063623670067879707748396382418420356815113405114543439039225224859857489170249464865214456912360433878235354367423063285880198330214716313014266274649234512553028779350974634773058257038496439297507918282930683720230431116072493933793927256943075902100793658283934747958736561625386665224290887032057860071684797288630709794840452976104063423321560360997546911669563186083366100064626779703144137565455106315526064767446085120474654927801604728353663487170603328557392888833489571224739621772348887040530908394074887403696086145230817566378880315468217949220334313147331705510632358960036155411097057340965652491516000859570508259957555519053704178852969137358922740834015798679076885605036141460620519473613495880938019125078689338154931474473027507634380676636351419007480256679267984239763021828256839551791287164911491929238063945672002023539532307954988833168034435529312711294745818557331668607384396220040493135507728900621024576011463487717474158515681114392955584093830757640544747804651494217835862467899498073549105789373141993650276490140775375128956357945255647613287846716384226352025587579514341415312131613748401526530434200102760940859278335731328466184277123842271500120683895356925804505914590940249731072281433730302326332913567409548437300659805795092091725789849483615212329779220020803500585336176122061864488332978991324594192889931889518717228338265479382022633494146522305587055722481424315195599315530906268469854667596316222349456943640568619073316144645730519323292987819248044187442860801718888768057368382372366506112831331984004039373280730875593568038806086508931462195723894984512410984368967434007179729934759869967985797712233622286682657648576692178348768561341132734776283323644379299859318426235302554109966468241758235172272262759115874011351161202120216590710277140697246395680591924686271525843325472079090516569772523266554662962726614886624290804111369673981542459874968763204462082847401638458206675545875978847488919509264451385908335712393353165398527634937743178917145367338754847871282696701364465842905723281670561611612517838433343433668994765889378597645142631748214545764751614916899296195176375738966615924029391040272445663083492649823824865397618083506764775570649120181202293514790564723615940449740067496461046086420347059149020402709511341393946324301495884458571608441357348097163963420216907181797530446706991739555458010396393748302752445583026310117809503017504332603986229319419581703329375608516325560820395329884460232598645469181241485889068640697738261630794649366293622192680835074595575345951581302287889641113087049824324935925983792154172895690372111500140955945583233516959065698294644718701263625451441460254786082320364644382931846460121294890486233285822929784245363610984935622195051408719740159975298615800937177792355965174886201871086327901376118271875686148743633344711243596384273296561395319080926836435616618019715063749391953430829138552829939367196058878388236505091849146043595100693219396169427148978367085568191478354062203884197155755012559260879835695462228696950879847294320469054466120017678879630278766181621054450689736541891282688858622054112215565315630703542252203821564227542950894216248105730523781578615900702505524181107888190741545831583986459856662430703514427046634503012543326656404742175532732184727676844101053133140778646472964172582841517099586417152440873946158456034561605224475579935989647432710079970306233947562518847577440703841793611406094994644852255843162725622241468812644045406737571302055823991532295125767713444975836254663334707002992410688133855190651331454634758720436623921512399306381107288387457630801014299765401350719564171552077756816423429597192301031039350590926402360720361242182686047686546965908951076060218389226091575781268147850888729820307067333357587074641966409778544852097939624216875349897725926732440976796470504174103397612317792934828170061127385828329285520475568154430351373680193822076436555710093637327498329365057451234621508389169292415950952123931132910946780331277113745023775235108774886722719169130644987407485467400506406554762224163302645628143418667460761258260075181482673796619527254206861060412600264356418806493278671849336496890076823460937413315333416882616215241302466863479932450892280762720117086395046014219157733348866716438571338627030234747907787776019261081779356067391549813755089648782484348247994553223451124471301047873754850498631415320488415907445106817527160527937146298840187184159234942450823418931512231242453128164883514038515419972782709652293453069603897999318679163181374401635862090624354565648133341232412504261537517728885026811316161561077529375935728852251670233610176900967395762450060750039610967954785102024922788967178610087168298498726599919165842834582814191688203773726132505489877037423672092040015445588660504164411889182914523158407431104858907117826626617421121602786647540384069429392099171861327010085537520701702688901598896531611210067611810843219772505424837057866720971665639734296779565009685643298104404226721094725397616634767598944518930944186609683325910695950031734975039693366517623153851709903022080809077205087201432302190170101864968692671652016122909753981189969517330999110326438490936450195241158321396073709787126868908676871396182843567417899032638772645264475454975810099849208277979377265388238396958534298217493912190575979377867053474184055878186016206522152427870619191694603786362555814570707703312007398347736224426983843485925684385761262178500498123808410941584108699781217396160578280723684913520062080318555933953149195331001538619386034015391388345520287505022078116997787734891786676995725206050714569576278265087910832192583105847254912359697149683399810661383856038423733971030814053102809838757690408338747616224148120792210215691798039847205664281736304688044906258212193132689975969773144182527539428834266492544753857800459270133980674480474858897858636779193014635191295114731382721549055520530281139411009648273819807325271354139029269016975910238281987770727493559409714149598180724298408244404088075892445198656109059588331651065123813711334627129633947213404648447116688028878528863843310718093367794833347720458474103019669843362654825720724903381361602902984393531742382840810830669467601285628209772843428069154252268939433996531036038199798706999262110423602042299753672243771135074234278274528708139936522979607064645172161943671786118657613408069373591344678150364217806046396638003334400088645191337029554931525673905795596871615087546803482623861665717456465718109414616863796002964346765615407254657362652550456510431034262018258709801446753421084899460227736901589500747487621996072503650373216563355449246810930018923703962403333811947141984793292350682848391516271640112674432439183421903034239021797855392822909122432543330677591718410938004686479649105040071539408635304287458898244815909834238361283433588493868385826349749632122612909938506530263180170116754004209257600116210882047532805029172746334579136888971434562699623024629346769906543251752802963148301354412655929914859336277975797401976824718928151801217989406556811008325534762202658245653880493584338220210593135325804950386746475545391181956831094636780992293105652276244662421059111629291659770675669348696793388252339644879421769266726898223376898431409793361975872454795488683954886286303381130052726699538045385851772979704416532861568327332996890645149840539903095615120097889850341217538150923938304831510129121099295026975145696607211410885517025500338172680911947013362614982725170169075912839811708249518454820537442849352198665037247965281563773382200589089180725411120171375821646922409008285836077331915679951005161292291094911494296804936377504010240860744148343568086955543404019878023804533751759948624031818463708356451376054932616064261942868701718249967595856292479104004073550076580014510151005148613162479051678751418623463843812640865084622018301216217127969800018627571429657926705482802143358451409176735613092955723666010705865329654555869211893895861364571382888316877067533450662482340073455425869618802519246850175710548431408692011281857113331181041557207518957359127733750574056462999841068770994405402615015163847121154715745971731950645423704158728934265439043334262996625471352815898579334524701755544708545214683951247413679437921431769870241139805748782718021483656945614016811796201209045470011289663706774307917077176922765326078853306361975094424414457597891877863448556619752642146589024980469485059636556931849342190236172136380597883945309277420541036624922948146685741421236425443842643224743893970606319279533186831180210339566084080979508363046611162519203263611884229555586372757550046714937030791146576233066462827602277173751020922852236757169995232355086866139182231488626217395963417102591773396693367033639409785982620893891891716255829894194271292723042495410423384596315044570405337613138323715776935222646010416123522924750820745567011795977981601085334506637086980378448052719753587020560806171973841963297512602133619241705909468763771253587351730120907217247440102713919974450238842633501799709786365392031437965523528551775131555213393203372914459096242232922051127611829695557200018335611458053412898079511508898372554293053429055836984273011906725094908091005940982567443437385424988667278123241650537119780580865974737051111294582813638491209034624501727569613681712055090657133230381108065592766530449127403924565232638941560469767876071398296270843702113379175388260738005306741140597224836644222855384244527769932715196473460943964107062083121307602502846173969886734828648170661735172847153883469727533565474983778983091060302336449438952790208309457180313163793960862910874447954570471510397128359685651229359767914702326148472223198329028963416567673178694398693825425857567625939072220066289441531637863869183922274237715822435922325565245785531055240953120313450091917168263654578845152891391002917573065347767581586807333748215270181537104681494954114225398714358019238326534970873536586752528583595098415971672433613236324982652291303682886520537007850185989900658426683971984168068421056422880751933134791041464453933557865460949372376311817109484568176453135371751794993665878388888244731125118796588220631369456771136834509883218182097816873297931867402005128128099670777826968200957941123808041130533837257069939850259204322182527258955064434037616020805475138944248233295645740547701088779416987459301216110601542258054119434903913106661436657458350077885977380899382937871130654737670371635959142555763089892049088297039727547670646172725539170528429469803601892901170437353071663442017735506045922169224706834118724954825463161041485373593039508871430053239073578737564799380829066220615877640491455993896139590038956480793704787286114010663002925867737085926676639086799354641324954465954803905918502057719515657923632778448916403767655603717284011757028652023755145351867707563504675652408636223569868200802686668424000749852484749866543485997864374108134246019057591835758456332903382308543802530195286530234372269141673624837314817063649697925651586590362009792856775676210843010517253682795240300547873993654682964673709108637593820893209430078005424935095987455463384455188287395421482211003456911602430724707298629744341038753841452311711077666196629832720415809898423629740669099219485190428714970348694026934295323362370387715969588120373627734212885465757378479218394759196001320749040676439115416148863297953128598123461185696434794067984174252429017556893156489401055354767752310819905108712373151882150634652862795248256700432741144869444455963363184398283111188059417097646000507503197620901610869870248450528091207921949599961916026639093970383920130555998013487733655114177533096073747792677226901727285728035443012618720136793108827739720765303068778960041645840393965631217447837677287084647582483569766456138956070092275100360627043940397569737505914708715499345665698565665093535555922131383057771229216764402000526142130542149621777469203281829918016873039469198088304706982121485272121540238762638786501238791279968947549896993621013992752843007548301424200239981380911911217317404684921644022390011780538903443593179053436415862831352790400355285427555892928569978090735515705994808235445678904633987535031867508720289658923207361198472689720207676992211898040260086399943898593938805951253345159592933470460099910695631858373261444112649361697603099781721619933567447208997861495767188342860742830939880946564401009207315473964607628476918856177311963561751373766111198072885111357254216338085625632022432645169261957969186865928873627582260930059481484661326977776787771407098758580314832933371586273349840648951538182695713964470566645281460134091194610991883051058495911355831777324251925607018296265537312513764382367443979975135998147367208414643303940131995147550645299571382447696550920605470900114102590689060722210491127451010722134768166057084282830144760110569399812534478120377445601147944277125760655838572891477247956506132461492641509430351869127275529692241080694620776054135115071200286125008620874884733737858910322987082947197387022863064596098864574373685575130917227602566966784378505294984988866985870243063336598540922602250224396596471677246012580135472817515777761702624701798040399875281669693250174417136754982941486716957457096841872597648179064221963067484040944465228935265365478066656148334762009741764515712367334592002032595846812585872168248694653033322571154648431331787497291374263168162113557919942170163876574309230698433693188977327745242025080910893090223094939286871082394369871279103391614223300253698021133363514763713133296511331185856666019388156993130286047510040543083668095825816752466706282992223866537844583825426022491812641872935954076914719967038391850557105399949011584985673772806151550040873152388643457309668491678847888783797993869787559610516860197007386456171331501641312096775645029786958354236931693656253508705177628863905991562313811430185873337682751938630896655617843287495601748335687830562896012902840795397575954081798530581220343087689029561315429427334605366617229680958792630598102706359667413726715046067494995466417508688427531123941361476769367338844368704418793052564909486593588694677060830548573439145900351693649074868088683362555329744167281580279704591704810174247147235394896871255684765701769690916230916132470550212177703246923263293501660824403479971519046356092394168191103919859557999593196772507009661607073948294631415654550762108369337889821727392953467108295982655907708004079462848513537416083911745568056406045400946630927037722297611425590580190597211344143513081257716330241051327441517750471200707623944966842001598578094640822860539695832205655770425969791633288370508876786128132035404505660497085946259956474745368004969350593188369861214986864206198141918977451817059354146724428300777289741363478480503652645337439539154936654125131607847163089614775700707789499004236503738868629659270472576907011140412008391937298699290703136399648704272557065425324479717326733477950439992669735284753829634233378310812047980232254886646303498548759217439997701836415924172657271663563097124921933922635813014625410504390864286056575068855780331120772058938095072820379854507433710545364453106091853471753179890405629300233326430969132509321115125371650634416464703502054597171536906913645015475837483124170718900471483962157970105826686468239055555029599312707732780762153068474918426165502337147739850855289209526795383508132254949796976234860823407329700420067146246330502945790795683894275071066436571784060548269436156287166934432893827010533306210454747505877251034929975798771702087412242629351596159044441552753499119147817329161892185555465007711800687168246545870387035340215156146543771937434620920711830315828630136814422833336180792846188006119975390113527148910126774150536402102359711161532493605672566292097044028814912196182320019454519253678158594496241479277367922352451970951143776225232573310730334258427536672329685237527778374388244907259774095154095242694245441884505220450047103615440928122420630582160690894535965876237333378573536189446310927744738942182053500472899968233945636631632768215054938955741600885434346004940212808558562702875602300901197431061483455403208665869050132190726766911955111436362090812091085116833635742949224090970327761084127584464766183279129404969326924471601937378971235828424906611118522153317613308936799622116001455090194291573176425326271221439609481696074955042777971067818415929663042377768736422803382592308205566877914721813487692352980395679129094795073288398096372724163836960365937391484410833023407125212488300057963664482719784810383678627743548393323355482697479935848590935204749384881151436752826042039549437618813036010487702326842514700351373767172858200187302280377279436725885188582966155269225106861474816493964725717090503236205471476614440615383158143443023362880584156542625687623167123323044363638686871110225216072304794064375056036975588084484071390207594632749767672993755659023686741067327471872772807441344841113250916268415555980175227974180069664317625056293697113570468917484491431464957328974065974488616234402057277748899704642634149126437123025299528490172770562748862269367760217910491597694312464893258970875864731236961758547882488878936663643882143217677962530408755749196033221528844446788301914682447067002595378984138002270240788880042119233049601608503827820696014513162340417976200976262402535443752012944367621830959547993312657760532851644631690893466433865341212349751641404697791258708466376750759933960296203269523186481853214466838972205876132182747718528279865213821983981428814864507163184426991427392466760857643447010196255579898875648587224856661498562721291711323242198214392693826128651644660836880207077542634000397935688090294738506727091713709094587100531063649976077595048852240102049526118619620367081019139086314534406195220585003423782274036041543998739528617035598143499331210875569451235391291391668113945379561321271471901632202609991410468170573194051949900478818703580732175950472867900622269895061627637364797013815462567800861690263831596743344551802866494553070494620119166029136751296243156257640231804192366571793307784824520854805347493132090663748909822139630079480672219753564584507916606224602686301492414653220930962502263104182057049412661406341320129018174743686729879162786963739930938271597504901117275715704384088329045123868758770643202788179095574204902402786405068928581545488266694874208335393373376334853708802036839103630508796795284153206544607396844339320174749307550309624787472966801578553606784325727551788540815795311816694361076803556923362152001796829336599825304758462461947203124590389727467846064243217999851280673127899694488204407780647767327243068569582624461449686717076031343692750161206630746236778608379391812567909151840111347115628665109080265029200266728815437810943731974389487196324368855462472942252885708602439218145970858171965991377415353107599865468404194146371954164221271057903353921610569277762265075789948572338877115378124025613105994198210503905987686142456077084623603397407641766830912084227563838715191947523838760043840406183259044391262767695977552666755411946923746543277693320520855806305766500508736178856940878467199076453707072618841974518624445911877667299932869800015264752683411376104223090080297367655130034080656671903538179579554967242454110475801667352815472682422389596173242266171438062161007589272721419137203151798972752600013405183181972064560351697028580399888210454183554589974017151280277838593704027940968808965178518847269268418259456633786450627105873941756191567970954484057635545170461591390067058698020803288374511896669310089799758414074296932856743252322350444278458189865686780341703945512931603240144549773484979873668983552135836709279037286057601290510622473139551702514372657450561598885867179506313951791416802794660032975399236259388468595104453760438547321050006902037224338190180556090504726412014210006115629800181647313233475877375621726325999960638949216461399885951885458760587249354928157263744842169409094568461232294444828987777340773427609654981868201808927875993630039318829981995714863407521486311550085495822427171810516918159233945083859524956890974223048794578853998425079918042709172187700753924837120869801845494875913962320707603724291204648703518633497487958578890831593154638650398699747856464166245673960100693251196578084952615251566036783272605588110569494614253009573024676513105707488057114848005477535592882717447420516410622311250994174580419487127961868331269694500888021315939134159982156307448308066165250272072066120150066990360584561898196302871508356228358300574530411609072365478615654610374898639935053680877821366118772888645929209572991725857066488441264005468325869668297094858507727673576338753413661786224156927312323375653007728309948674249641155201588086180324620304948539678711713205795503868588532156705303381186465950486613674838641047073023180727089922236913525392325255722521521141209207095765004066197611588938165985705498809365083817452956775732548863371855299008404561132306682736649026738940073302042244262975444954956057127631216625159997630717711035236371704047831723744247062193973872618090087814645495206642394300569217764256906167673162349945247369006720339769408908097969379752792819670775004688277693371947117690697975239164174484725280577704608910573838312963245424813706720605728418562292394412783248106850872378380391158569718061844526924105786092872225875287892557281133580131291277133517777902739742692989416397714907926790659350741498672322087169766741166848787115565077526308932001637515338666819756465137199242653417222042335120144966810436460540512124441165049694553473584513692589888613962302037779318125824289720461328817196085703750159084795927014236963877311191301567921775167031081717785837280361507710159343679459988207758720763974757709984592140866445865888434434989969523196080181125635472136446195597768077678880356655809311744173501548285587330807502966473505644778855368360052220039499475503389954755369765815439090185600321744551576533395223128134593164929972816420809195724867889870347477607875465791399193509701018976421208738986763825357835391486742323215035943857040506969504347579593343892216240848935444554059358831990626114182831869013643073660463236114365916317180212626571917950337966597594562447463406672865496450719588404209457877244941805421972307783012092356934719127258163280829676833557337909100321241074476921536225657758440532776721553787530357060761168397135490210383481980478473141278424148055121512346141129278224359111141730694755407935730964669306586712712623698442998945382259965908484912994946342217624978763914280792421293887106322099167424568620583372167903194474772277972768601846798583761622197044075464190409422202873247942351427543610355131038564170134164039417274540950369979781998623681901388341420896954996912392371239828222276520438597488719599299337027440442658763751874940847099754867513242518157989233825586134155860815478634191719038199088830935247312769434691221243580308083934990177060218220205580692415325865039699178220092113860654275877332551151960428268509065350459420002110394361678842925908668079780866017792740862758518031056673851318976008575851133504206091573134413256478982900449993801992394169535476905670140401476669378964576353032611782988611302854385801768918359324656878985139491706886908841246247182109530956607991565194655181271945010725912994879342933203032553797837109299457599357371412322603764093154138507459462326870879359824825630281200282603098633348171730487804042569398911819378702248104558932880702840153317679499661497675618953251745348129475447839782053105909124562822642185327565092274303874351052081444860833356038726993714479983728042778296131946868775484392241651551110218264574343181259651069233303053214233752032574382543238558219978621997570126266984606628708277227971716840499340972979662193202526041823131497122688521238177711266367419556733755457940781982947211979040160833923365496335942054386358350742120569203617642175300552853886739725338249437817032491084163845132188415151829466877011597109356690469238818075101087248756806074796868747973849380789526156569569450143144252288685756891270163680930185836632791374118503102132758289895703951116546458632442127823374304225993274139612323523449869550728202839813976620464023699827148148586735133809703352546209759978489366787906368790293690455726839036657947137734860204908481801568863739329279629140404015988192294616945933572853729366102182292639896937657246454812539068183308595551736533591625337545319839195188188285050052564346322231241822463063338984190127598492827945523305789852000700501933473893950995196969749598686366391638660771608974353560470198310138597175211422952296574554337750675458581830166287123479976756194802195561518220810389650224390998358195075382387955792352606521887174927530917808310753138700259718276689052212070016158382763301904635640524742321444362786890655525022506121533756550589116090510039038013517056838934584406723265356831938870685298136971804105530628239751051780040812209067409303190133008710427886498949533972804533705811616278175891905910820017909862658239322141716438448863945006762505494269320632852461963635160807031201687764450146984595586564441462120788570512219151530365694678450994084145379147807634660076264993002392074209852071733388712415600926084194706790910352695319107811238487042385765637898768583302967967845406004085649800928681276922837401317048901836089726331971934082058081548739988599847768425308810451614019940716555475067415666044271855810570592658797203098773202502722266475131722333852127418949602487697640305250129254003510203046864310096713320247955958151712363195113046722268042575034014421503381393281332143811607727373792915643803403544899228992512455758459309763054608954351187710665630150693577906411689960899424207030595008523191737318613990004455669916537840788752256002058040239137843962996719500389465443816781029731558902041105280215053429009472233357458314264573375246335840828167638144467307302506264544329096152099818814266074237147102629298860368525043146550201365736418173362898448455322011685432464799681464448398082176450434407705279489574039178176918777776375604779135589245717981667176661002066194998976273114242565059762428106738621805832398727796012733362546037028750665537502560780593058859522808984664795451410602616468142595056880372257056371554948324678549151544090647398110747568505549419090952748343662651483459683637058987631499631108602588496189810541322338452598659602935220980254431893806211756549571338649009746423322556547423923875405365004103535248582758465687407398319148397069137932786222373364687589957637331304798717430494134842455768003592996480834037180942057335429565815260767809952586771562885397617790332403477159631890948211527243911600915642535655922889687319351591048352287639916745464073742323217764690964720744030344469498836341771071117578743524138919360972928302263223814856756084905223545311510222872539378405295404166065955911685337754407523401196515836416961084611116376610819462097085591485720622713072039001274048417020744538479664241487422844884370471051469757931862898792167097094611223566590861452677572754236122615856500086064629332766405553281524723415302587400925090917036757550798624223722674098339172814517506755111453585612522246652733543777455707773461407200312446009037529796557625989481351639332644551214081524475883283796405470629781443724025569554602819815266108777645480195504427758422902706439805729244328768971878895934969337820891156029088306579471047125340673462514690798691917257279291667803187647905179919817194881516418614612826383409792807303440320780017335115486393881905896879180493793603699392927813904418126002828175018046461896499684681552464302407222114458466899946054408476543742611684375062741740077786349562735737181890508868598197293250537008104492042103642383196934218303652583879934050461354787897820922896494344327717840898937419377555948285964200866353407747551214124007349845358945615943489535303634257659152530519078279940632110003908476597407022650414382561253748713031138366665384129748000982908379271486010353745985150447713045503253879790008895431531333454151131400405991529099672359520024580191119846715505057896890913685655376052616549016822981329605030339527289319746571001790374191082655990690568892748600399372304203951306948892689142306460785308392921502292318413113673903790436287263267637343946703190054354599910112413410262880743834663531304709361473519474444611633624817298676437505160908869929089559262848267076284235217807211556790275960639649077006016109116496534662092193221280881437641191363119660703398976373886900432542315318057742919506365610485765434931326428241344809040301502616713766208953002072710239064269925710390658278982327844720347005182783740712302308158115879562921501305789581739848347593838931290984098900631429752862160650096485252904069469400865529742641758448711812282658165475902620736636783447484273795854742993365637765993188992133306825806164991112130840119509992165809938991860778454890964908533824740210450115190828777175911902706820646218382019459366288213943221599639237132778020184806479712212188191921713192217923598755214372455448123412261883154506404890012881882718181138151506123429954018323352856278479245546028440194027447018382467523010605521330360810824339754128063631809291686751645562008141684569026791746740393703542308609947518737427832986939063158490367504409425286230800800572727185432178315893693064203363108030031416574278495000172012768188232085538196760694282639749280931334728572035073158885982213176493389227662678113774811370250379626336104923782940449215882849161235737590431712792028691376507539449964529087083690309341142423879633467340726721134105362605775153621437597670817200860569171945447700770284587352782667875753785985328890255380165951710275215249626176898423060035134255278588830606944211262766917426183664177099555698114893620595434539516368095093608577822638727653388783429870989468167431975832950673771276929037727021321525007690987017123485101765308427755192284667070230858694300820513569955779952672097930551179751669437318158981763035148526202838838289694544744560664890525678778015454315455364571936504468479253697492290674480343137335891949855863015245382869778748088054168978255667484962724958782915400016988917050758083241861551605694279841257506194472933901656488404128184539782203802564115807127289554581655244416122723311756132577186807802476855830355958377378548968271726539327670024956642228101047638038484284713941219605183430129529308593176316537343574090179998458796065047868347757165980373258246553594651546262267585809782719044398985057995755212543789306712090174391277838302736356190048223130908884143848458454566519414550192190959250712884452613342380324509002571029912775996000878300902941153744934905312600471749713583287366375272808307195420614185940210154352372763213502098104436040045764740385661006652431975210928114171248630139729794119514037839458836591734193996191027587888884922259298840921209383376356864907066269532702017259189865484934611175194230485794266770630719525437829235812336651611613670229665472217776867544971619966445832625392509986076243405546477219607564289214885141025477263699364637902623234805301345498762410313690025599795663740044204397245023460859911146049310652265312088122533314852222988074705716599756170170884491190344658879999112892472053416431463835310463553471668814038884510293281260269147525553896132596275715659607051536607415499785864663098068015440589431626782181496567409619334601319762611973989868938893310802244329599619716805803714536443777143286367300791244729771688390838854160081838276829583135628212697000990142729280704023627919772783704936930663998582554962086926783947140929968510499922702857768658471790722454510547365793066117296034564406877311287651691434275792751432920465590000048521438236319634167792059652678518445585730440959765541294993146068286684575074485238624216334654034596559676181899219376788061767954552442533785692475644763872736214844394383219445586907341428786216679478426212798099119878651957846261458791037948056917096417796073597372220078191019524483064358605938619766523230148024512721615621477483893792029788861026339724271642717993374670681669943556019039136011877330852184937716194513310863098723200589747238791686953979310222524984882490947755635007755587690210080191675133700971819325828009364812114083644940180282204130380826562904102893628151980132905642757067087567744143639358389675169431197135436947230991323426994939407741233764128612017986732388402772570948955247674337798817384827034645158902751132365134378406164636327092875233642186311055641819239379633263714122010141437408938577080970702985787292651386343381365242784546677127040284111819532335030656710370926645542822580873725466799825801534502386551946681076242900793619825322556196653184047737992037992108273053152657911297055329464145537099037401691876566606268868074096454582129486021579222275149487456963958027571332307816481449181442410070061208670371214617514595749010877002010908479149245083907440515346660946491262022036887620116654910558519190967191443427332983540316791095994339647208584050358187843169803478757349974698963156105576215122470846717361654789358895200441321225047003273492062299175463639636047515177864007813109325777532248681242501292237544285064125496749520204655343371806555972573519742203615026317335070105222150223362656671099248924305971015706773797968612720716377137251027943287680664841998734767237353235748087162955818335675741553571870995284260767474288905306298191444810181786388916187947808722513534561084846070295233907027570706501434859981679889109778952233689509191379726256840741900650417518363308038149260541360474644031615934964287321081704293981867109933944909104025813275073451579303667774560153584071137548095583024743895802380864674773835800658760842013278152660791080710444297670522090071665999937080529903126770322772829837085603831695555818232658075309134770880527049300139199037215773515968810793283185718346491305240363036125895372911492244225839258205830539673936670764980361762602160290732831677457343476553428033353056757337364414891902923710048851158531692318761629995132152886456052199819468128744241813862032581796903822480514306862978397834942945559499717201585564482384117547984039117588741920000889934483919615797219052736503907783835257493464841351644992399449448231380881397190580076060238124218285649355313429788421772209818513906374917053886151405831023722741813509382985051453021981693597958494372315786565706361413710027250223260571169989417382095897336249230405618466490555528246340452458802285682644945858786551743503002866229677850425458303711198868306089747449375947442783382206977574352239658343134870807428104376662666313062193537076695128232765988740000104278588705285424357391193654021782514648881296115671453864969572727448380324165513076367832585426911953377020648783257454459213196356303380354390349243541810735574880038369789448587704017896501018969996721858414624647448956017229163173634364144166622135033262536992194527478380996599429317385514160545058518902023499619866752652996404598875729122104289832285883232585809518317406692937340499533064858807887752007801076363032565108757907304296124220650878988192318576919854558992518315872219046743390821193552821191511631279786484351966226220711400085993434294156074898154197517162667863635772894786495882563689354338239591913750209332575362433922741761504303855312484752053992427614265252690364292031094732772911183786363018119764950132512674073300885761154677768804966125368662088627369921865360157571980930826632318046569711969830222139596671094549966168377674956170021792441448079470210830646797458820107129689368493882034391669905532453105395412707840731730793561477942500705369549467607493633964699288204589251777252932895152648591249819619959638132149559798975278717455371097440669820058327254518876050978914767393166086395217790655901863376391435557235318023727764958484045788799959485377334902986467509862141511674448610063238637848813109242345868468082064756035385623442490249585846874556452839798160099234281775784386958220122220753367389900790211074435828289657516895227720328342617645050198322289968978943051046919366158260284174993192174859494166379959488768064018118887428528156734013562680512331169974966075873507564309914012184129294043717340473109103338258010681249742522798943866701594826973880410127283716571352141000395082479597490423812845862559698439233289519806918841512481825226413683209858537766571524450258532379792342804913512593248781527636179972166598262899068042709360134805040404893248153476494618715335066909257773653262653225494527010428275409206910859302597749783547698736612545587869263734627004754884988585827823577714882872970570828660962667383910744390286453119396316541716400775237901251127251631008474610406127474473602163980066244349640531068413610487348056988004081493339034456340850683219781634897534507550429009664351140665827774135256331344661831446322914457529094616718207195775892294237051545173958578507912278859793985893427100014581371685804276740561659290812483750318563818752108601370711861160792804762185536777814121246190281512770422814495729210063439180108916136340704743387800908188328888776620963295540573527836391099030452975314554401773745364616452257929600477621502046897147756424795019529636574361744609799253498921048268613265161354059340336341070907005500932026874285829537976169173322284592259786720795626271155626174449519135445525859770120166692363118729100866372678330524304015435048385531807269063034865584040682223551007375443959813123968544726071328220505697473631008513044461538056251119023201474079390195394130373900798678658509077792843389584267791008778935794450367810309882546389716874062175392383373698171614261078809929866389402085405054421555305349345307792102468669275964007915715119021170609388653191611641233396098345508257880805981889315072718269000442261275581452464818901764183313879360939209021067637600716333752269253355744363310295395902754952066403259035072320410845311104907677960391017040883434671066335227984879713574413743175462596741598168482330771778275925363323269888152528809752844321244405866748256398892679077227841357162295769526784400637275469094396701994302042083331395945647385215992487361092705568707365985252112722910145875512060801613685274180947998433604052674096025669378417273724166090647504504687562258586615822833202445461561202965307509768629880364399446282872524380488635256599352623040563594465008950851030202593638374657422601089968249092005025014486002595323391029345644808402592653092541350016301835012033439185869025610572187253233359053889742326992864655497845678114512876619141203567332160992332533239483135547542337744756476289103737599723155694635294463979779581631101244881690294872222030133587997842613033372573888751385644922251490328497395924352494354714895914139984430662970149045370085943364576959611411141427595034067085844282612366233263795761726894743996497801732516166049416240409451850753973524581457753878390339135829151064860857347871339342833732659524497531246110689496922549638747600955546653072176306948633182337595655270313198693415170100071391716145948947130505628335041653984672424470224435156996520752004184238568921374447739008818792723346717042581916484373786936769660719144458553580301294244528989910075858797848627909659252045357307361342904564532752905789383489988567540435866774588197120655672658020588774012769114946418373090996783267881918725477171926511854255160920410204605826463720683024399404205766622732945230590579234143749519659747280252529031396639369267556326115472429784292995455556060028313764513873096097845806467258806320377407327839369627330533852435485903526381952319581706997015300505185067383068425496227371814702569982402417284892650831303947335835345744667801934666575070264451105094240634471354423433416475600628677701358790552944743669578229719031566373544940952865558511130142688454020243735425152768529427314819692529330024505549899680623020170941065485609620840774386750127581429717753844783459919858808018575347294119946006285235347745757896057877662614361076360564493008258694995400036297797112798253251369336621990433791739102738657027475141402822891232158565148892090526290843935703509880242992283322017861388003630197885626636237613452467165445249660679657033106845924445901656808950195012369927091692912057561963066359896665106260214072351520142390551329280657953945129645972854795053502792212771816536273244424137793277748376749638450385312867530222790495101599928923705568006943027411074845342634097814915828960992655590461859835811699289326345325284616184940291877581610268935831853202236743151635297333464921189052166086389495884228769171087372282397367708773218072133470346010794755918466330241384775364837986769548304763684858587019739639207087851544972287460910495956605775077034623422692658048889647345711890516031102866991195929547483622531051570363660726362839154083234223693767275861673896807493831793290891451385221383596952310346666252057441375183337378463697758475769438097646101863754854073702152163233204277983894748122159407191229498847820717002971311167577648455149918430352824976641314983602940109764371034290537026027183087997579466974900541634767079550658455743894285578260232190162596684521900427387610110638622224966326520401791025540142384640979635021192043152723767404489484409532845423295089818957996542424542411738767846269359523177416459353869347713796669636256257780365434242206668930227911698271322295882921861926913605655250127396470673510933100637238054367846657752520995135829345089717993640462923636179588739391641451652217849747578303152300852879204649314125135189423570064697077923262974705363363588112782403944453701130421782349624645902140973567716101374453277747332478580934778526707966852933027039667956348776617777097003699387233632072747355704887850446147845632628949712083718162552662713042663561408845512925735888024910243282167468894562567726721625120676322881414801324431244217683210158167437613863645877595536067270050191356564573224629332971222801472515564053974870189243566880835958016416132927429469408687166183515982030114718843324004197182772882462852832887968092463696677033630581184638279911704771428185880556649873149381371763508121145553953095508213154532155850036579912184526639785112843177098833732126442387967798376603521245528889017272313202886569983810228272655793598339793575504096148644411399051496464035903249899526756114764872692411680709745554219841803263163760567183515283263089901082247953095452503760843666469043661327004655864347944071490255860410001176500670545800482559907756444321812774477028726980153540196397879099686042271966026945506180688478797849227211212610648662140627613119767425596101329215836863315135669717335204764676483981926262327316304141968780842834773155693395138800722476056725648628464262528672160461424856004686173032539183472716897036003161941848877178977236601499335056853325735270923998869185410449936533877946653074603822761925276238674776782739448374813421254858961743931520295650363959253518880133195442214425767145793759753703551012002151530154940840701790730432114764413372590216210708047269032177245818516673743342258747206153638126242256665799053728199226877355540298475726066188127129297763575693921872343293801437952620467191148274811523489070087906393949773338558814389663054178620893020306352555122704991402807549201528614731835075205095186347414722962813684655965395805645306056195879251778613222382364180848098055865916583661992552753575222689173787115025965561366694641475871066126784954727549419874133924653805326878629206175461121924989258463370755030143623154363118454800952622081181201420038632561610029104528475211782592394929082117862744337904000760152646742098926250579190038123053871375204627084186606921144998200286891777593392745758094393398005327796528827512559836211345294199550770188752014930451814495482790559402370071098630644830341222150449791204612759438009824518929909597354656480557147620866778020262433339313257378950253843188038134403844961538652221357003592038041974549750023068002678598105343781497945614339738229873504623687136903577089054506475285680519075901068324064365120493644542702541225752267286204851193710539262139361333523724214279163483034571968118949807386601831532004453549928539297017492376779899476818224021858320749886645017215574977821063803909632617472046376264838854936540437672420220756071716618280893774175157609644469997592813026792088511510786695990745670338550074842437588729570223300192909621772668413002905885551981221398674662312489191340856705533485551941648501604661086752006533721570717978345413855450828742651846747091148302650143304348358907230703611749220050432433624438795113137431811835557317026516178215685192883776699171943195850433364627116540284585118534606141968652969431837827780851957416741523427901741383476837806884359063341197222111688782739043924976335975092220852744122997152953799878280432894523433660063368908271454416628412497726780603167283047168271525122879474647051543335669045612287364379690867627613269240588852719702744123029389762117632001978803297965447083378753908951458563292460891126848866214645761965210208676863832193025809602391017254311088230954790199616682182027116889761944439501786498226192802804179834392191459347116303024526477155030292195341085602650154654866521007094801447578133515169254113630917881571055007355168011309866033096051195176193684970059365442387597299600010224604281276438130543350867558395033386184985037648725299468314278749043896772775352833572515781835310608319052387793811007387867678095905137591781939322694199976562169205568750717716512025867342621200594167849166706168530080908025511970310438884887362811037591017228118831742795671369282920641504542870251268940181006323515444078979767598519555491739755447764485314417509170698294840573491725936801652623088824557954746626275842685712568255567851380566183071355956672784191687824928565035914553648945592622970319444919834418504475333268983617178404696244468497379264922164358104912020600363591378523480229357662877259050611365991585295712932133403437117104910056949172429405850750384685944606619140047333892916520794403931735938234141310633296329122569338116747151258386623825905529877377610300093252732518733284731567577756511999773507471962287337012328617218707249432765066738268286588172210106680213651068244923939914617522611844980802325386777322437138715788977000360348221201337405897882893777656390789104074551668827342402047357716993130328064690528770845922424817567759621159495778125818618333461762751932235940787448513631181650455273689083947451918597889654397375366104350747680480998673494457792212922081049114209827231056907644054818184937417500984055170214460444718731765001270880396197575645498364296170320629615243812256187234070185441415783351833426821298878229403945039071004395172834862772144791410616353754412538561719822359571955407251138698100843534903092770495007818552558680069701103750293019325127166479738427949830717200739631057837219909727784081759580213364855594933085636757826030755298343602366264962343958398802596606613781659583436045517420266296830220478415877220430409577702728900424046470394522028953287274674008749584266423170969506545551427190700915670638013688439007247269679948070045201337121135991488542354926591487857336050865586536896490340780961336251338414680262818812974330431558308052266524405324776397221093739196930477946919046877271209241013292190255507381835634818008645317854546908721411170388282392082298507425904979718078571737853333447862353574734308589251014654565171823735290403351199197156554633041187812437982004228952201178996170564386549113745742194470602917909336404613635123299057557531865416271081945960827233773071226887855118009784817020042983310919946298525107587050941400304304489952740718780894882754010878832550084668795856518348125861130802708206314932412983448232967256924882087128809161180477628240921352797925317676197287222044116175013039230322675100490020851632752703468309068109574788735816415462883963323658866833259143689777795094566231593466868180583224695735065323668092855902673340500361925275249675938300829718596261818511341380392024985729555763416386800920889264786006535044556329271499260790248930814799326033999549237231938065777114718970157418082022296197688052042209845913677129841438015503057453430294740895419345405377561478981712326715787956578807646232014750891846878960062745633923209159462172968062346231510841883930717185772322103387464456674677624521909391116944889390577997179848215147698266187280790149921082976956195453715240622832109463680994184069816172346531380198041270607303302862056722380660902309211690886181782994870603887207454005202619167547313071211041113015639974278203863641783556436436538485402411298801841819002396255383212571485734396893430211469323542468665599393571520891301786836069398090168763375267963915068744376446763887308983402282980206011641039940482009997727470920775268222605840983103076170951976873861470325612123665091567927990077989758777151012343135855711294223678932243096259987354948945316232395857828969537890760140628072377379838159206279247973056401905449577581236573657864428006580115260236764716698540696117196141747729200707755819509138286825520537500143177765728077761778323306771729872839677306019298636667786491000557189615739062427669987493816224484765960260478376448125682329949819324181751934505163167125907273914905963152829042444555485637765099097681960378229960161389677703218927037838309227529331058211479929522191138549775741164296092891179966438410809407369677431417109035411183639805655199685250073948819430327335336270329214204725683434718922022830847716641074857151376269229118055646367324245940485307091665469202545428365188602834701043098664803967997693495976317257036034422926117892296287544222104490169168199993847166659316581230332620674629601905031795602747964836140167973050387584621383894554622289740569646025027941928997332915594564710451159387049756606486250549561448175046329583507525616221739808137802749790765019287695721411658885548164557126712606743028346141939257079599890290720718236580068985867955330463642278084012451346938619148563375833716750559120327678042155142164529564018501871640754413853295130985140762209499412434644173417675587045445065407208109073606006167048010122979840942329623733648779019560528899566476899979846827894123580092052640422584119090396470569855211469898657556039035033523091948491913036349404154644504946326668034572171120987175060943575653584251360411131995086047325561078355571100933186740361197371361180698516604313377180717941583573896134140287889305431706948366115420419320569066734490595643653106538227857907036401091182439134118296023984875825809553926044021521956232424166443927871890795747230941941137229592157887742522086510182272277229975774949449422474236397815006629065086881906485873209958598808338659070499623416932734677067805937061311193421035091749911523655407017799267231988317776850104460370984897891668304307298270729599623278468085907283577058629742411846339901030255206511813842968320629503145076710799421106102483483852490627372796435734054610274462516546765659413763745350210260455545878379105262979046264621269189185012767563462684581367460082852370313336979945624956443436695470976486031848270058344416863681842788787357596909142099795351053574518690464481784800676376598320074299972454112000818750455815747715628628109026447454531717687055388094906699374529796891259208284691434132291556232132227224482790289784013347663208490264626093601394130426479900240110522860259178442314465277638280013328539252141009982847495173163196517729998836655697394270260813151116545172000035778435855784334645168150587271909330662517514270217744796779177514993957930448857035142256247463763748889728132380815481158896906536629676417218899701071762588679264180192085772181925938987314541978489353994861756922496819319376210633001598391804578459723849567891092901697109716001523943998159589047331873364456164509264724838819809452604831288251539157314136747748702384816651802546049718052416201944848630763131527047194199874260001607937332298743075397964201920314850907985833305465511355656474242161621631553138486154414787671118912768458079533303885505463282535417076333577755599149458266357724035821348616895205105240369627345991836286308366422435615844273776555561887823248790290655315896782299574699769494199045290054736795203713966176353618091950695540503615457815727594764987790812155721809732744232688940333701419411022842785127392728277860923512718683581817827185416759921564287148050462814633499170885899597295285911224647207469151777712186112347591243821652019109001885509300484501228852244182192548853219043800558912625064244575950738656256520505405014431066651005819693281134757671720247145966075189211658236209042761725976631626666917003927031838380844327771461682184262124652116413358245087070871334969180209014984907618760894128035215297273893966176426844847792544334075084406787222897846675678585522438977793307582025769115315154913640740836998552932343825798593488103254078386846440640091060957398022999013547248280848952955358003318438844560046500608838416959094801747655085164443430059445660594885822430100701341113707490048225578463181522336407601238579708842541524536746635547880186251413703900302415245302220257632270028294610345563759883690666548706273019724346718614338886523001834051782614047053796141613151825709866974074174921784789318836449146339421234977999094032943841602596467817475246031419575560310085790026336082446035001213754836222065590708722901772159892580336332762224240647399063385691305014791714780950883108242159115955968632984109772391292342298584450326229310843036800274093537032137045690691211528804708520731131422722891444781593922674668616522668680806604237196290914580367926220343375646134243117183159508035523140551372476059128072340904300050311635147265937691112009670382692048770943122752551626823268806657381818913227278550372440163125707580731789541992188563585496433379944564498025731699248843690447278618924385482529143921024414059929104358205012393541564689822284891488205622998616886376850229309640697819918685769815987373488239781164941853536536631675767262624771415555924583486838974095500798492367275671487090668930023072647217573465172750160133701544747677080340410595356437479651673243462101022784577965891334045822963881798693686290455715334183532278613640307255243334435125499964600131696498832984969197015454913370642661543053539236883671597251099762873254552354939551011600291480615207198588760856585280753928466841074983241803618614225274234084690668576706259910873539010604768193216812671988060469157698846034877489230263084803277606965057657964379973529120049352272653256259246775926138029835465438368095357505190868092334002090234056550632185079129096292131562116420600589218898434081266101062673919602370419782114049125546448111706186618665743526232483661781568034689616892939532703567977345600709853451294659864007763158220940571483977196701678073441368587489530168252025321760706469728096112214733631076770907115400509167171124813868043132099326480289696755209550713416633913234128178010800757885122418851436893436080406309847940289613735275857190543295777547418098086225506567553539434151239814756943845937692778457553550497989919259449552585599493214604669784671459292654372652963703903647245184173690193396519626938107781737025854814886020449383376013691485246607517992069474935077394805495980737811411183898359597305237798306467471959278004541960910878123771445736690700308222155119632726375325457077020201493157763688898468580109516123245553027263553188719832900789941097278317641958344760195386958755230057020590356103292533135121611753465081163015641531276731618144098474468901029588723728810485131212945676064572903815498614728297703014288219853358047807194954668110400947042929556140168834056513569175120490123345721833917632040965592797337785354101359059523188470079313850737976507766150778045054185464421649716638660161673770678306276359782265438391912220561729764432577519056155206565728580457541366816574618726050223314898262685776676507642125172671973126518154522533866613024803584628784304863501132423154416771923525499135068769358615851773218540713748381309898583226930087318424121859364494384832076235305020477731734628842933356440772629116675775154647988925355589344464222298872559662223552141444378177214286615190900770283781172777044368544489010653524358029585074746948191164020842198424259868778765115140239039757578373451770529154447360278042758861172080769652444513828815276042021404634598902700693831508816249177883049400316716142995686330259131224684742096313199595365385750961326586843634626045825853598798131110708397080453037817665268239938402741253894871221103207273934245904705058601449874852754239611917590581147897786347790576448679716208384908676659847202035027754671842892598531447244800161156267169320263950919852688680773107655677059768470504226293458033223645592696016753583067744602857600482355222709583246916745941149865359027813545134448102270315953975420702125861480865464918628870611143402977405630277009115086624612166400473386315316576055248789259050814211930145795765264417687766927732271090235414411765508010784366806024274370332545663606368126081036440498509424858396576789975076219809144384134330374834946518402994408619350200712190592542475374991307513648271215385553280467808881895411827370495341668429381385256700387444574095487552598692802886321141149294038808815380265117679134893233753072282979192113379599246382161899365452985961556388753209005294633857989397346837233591151099528853861108713030414674134765044367831037504136162967028609088240280601199277074494175225134694109620108942724151888505564923691563210004163299082834643294695653917293158886467965003885456035201046427306107816796594204105658873924364715666896598854337457526758800270919432920485223723574857058960353029385185009148089081351872710885345369723953659700134093116439874809856949730446788111335453456442815532069719380182460455880574784635110999952814466188933814139124021192851540747305927270596913411062485466277794378543625969285974235024294994802520014621870206583535580303114121426882003741690998386985285849445900689509044363485591306905060406416092113316538062181877910876463118584397694116083501903967520650279688081728451373889788849558380035930889349707853668872110817871584095876310992374450461958211814907545093880155849838403625879532643666895821657508133293322070133277546015852697294349439279977038463898605557714070106739685401786097461577249542348085211743766080519344631196247555792550110906199598009365018921415103126012430276134700428405970867258712821768963008324269007502704623824132718262108685607796377103360786088731013822774778197526474112167654256943133816465068312469151346063311354064427865142272504925984091108234771350516168947440666926317241527992185248494948182335796110412609596045790686093851600874983029408689923622629962242653816699364439935332045863446143159469583806629644639014541079087499670084328198985981280044701126377489487851551706315491232443923109182276152403351406302231687681679268339539076879290542203454053366837438951071271522178576319687219430975316062396262768796399200374281851322253009852216121630908747917927880653217949667678088390984057168641764224955796075570624874898643865135702288569180857127321712430036085697007950983453554473068034589125373683164978645855414831285220492578177519383727007507528897403488729761818050543755733597216752083261598553197471568191995329955140353727464198466991861258056478068596271969549253207969873448310587334241270427238199874068824468466644699634424710185857136181191100434821512392683158541465345323019571595611722756662605082318427269520445809894801186726498941899575021215266920838831960695407745044753926501451978731201841264772154919348832555529954345033282828770259834946144863123519854398435723342231367851961124670807576810424063259854094772140341992354270620357503990898313568469241115351444372354845646063112609780020574474832434676065946749691391762346896765650795205162142429283266438630419311260415292993130037011121627681274102830207124754761080673130145846566862307316632666302211718174534362198848288947831267869282540636182833086191211104594752288805132759419203270844197337670902080956206323615701709453166324140060454277283393964317794564497668078552809557832097072004186707829266313735274465078532605375541246703199228169805701875678522103221046056737109835872008834385840126311467530930035581860216724502664906152261726855688428715303330596268791836332685752874682973405932622561579710737919801273751190232377472800566608559801468982923098640984940471638162710490128591897700934958740417310508657420616824152561292786619572372398608819640360182458842968852864837789347517828058335700339749162445096599151174233107253686932246805543433653632634439633692017196893716346447407250620425317164338225389343654618635963888631430082050498001903796858868403982419694027518039144326189734393094541981610384140949621477792991895255727202125768258696455516319705864579201194344930297068760081818546357309010684527839131118002001399570330306354679818832804032875861318394474173215964172723184293211698883968607688642721273674384227028287454664686126414833090562496248325964595309430988667383714310131752085738329244041865268870553786239445958268649564853760250894628022803341185090537682440591263826069913891088326230920626362277676215392477758683653051418662219011248982041177199324605596399242387492673640454108237846398601064321968716578833276450691118239149406125674025232597479633247912540931456078717570927933867800487715318100238258982780664586770010438662732462312103938482038411090566118824436758364861095395277818066545521493485925336436066609461149632559279743415522619097056587477567000121151222469409130572978497982545528137258232284524460569783022490151543965911067248763464538354189166326413929719862886849195924360834261182586801946707639834903340940772252846317876504870382279128462628325174831336673699917226533201698501453416315822210062590801269799116492986554042545230451193732766671921616487715771659813375445065871654025169984105259689716792625522965377747057803964312238415687142124832507571959189756676688096274441925632250887143335096573985834862995453377427924238397498077525974453271714934912847856353597249463769293748074642253011772446267971717915827821974810388297797681499646067418857788775570163388792928293125900660335237213542128601931892000580090545078773076410735948370087557083572902051500124985383544970680000984760299502161387910095417513246229950888925481843309294580933562728213752701149859471055946258483384942716920033436616232151765841552568687527553946990615973559222660006020394846622773998759614172676508796007945482393856387907095713557695759627733271816181907786454474420015691693315305567045253596556152860763891740613367366750829405983055909589778797116461264893348550109073901781847867350808770906393114359144798568547931829018823266367831644636126805047268848891766086885943281007424977448265969459293733337776913215573057743226616591521097039136173975997772389537329467512595685256751543498384652408562816834483459714655093698992022210387192776844874336691227574806079205016561216819534812888698497829207008884997918990256749559524184958517786625565070443500691095241516431096465864596678069471080418813624412861657126320906396452428820937882171466950391257241115834062996721524332563801316274962463339952585519250053862902842765721218579866015820634514783947017873234525566687710829859452351360224353351453155445288697668627564792074344457912080565394340094672793136812318287221888609520955161317004913339731271090482187129827512452439721260427219681380372369638848267246604137748052822421732713736655542544605298486438942203092614686404272855688655242116784125641913093049649609972443236828937615034977710782949906460332752727629860393100332329441034230686681291780032136260373769638068871353109268037139071252271266016576726805371925701900423363451750627632802358059776299521341389157917815789221379758055518791436543335064554687612975186072034333041446739617273036158870139916720054296252348352286594240117108158079656697541585501211990327827477038471971534142818165506868529169315122553882455624108391361598696616471654001641352011439002366086650685972737344936269299474826204660829718269533048541953678407843469447807314095412906670565619885834895022184373958113292720011750869482304755343846748588700082411381579222019299071920857347982043080429479044982105147761280830198918903771471212085239614672883651760937180589561215394787836389661241826265830931352497057739241856619545524967221113667904688737362725073132632569366737101176495293899984557166420762791288010915710643417697348065673799774708483140136337552178962713874937699203755529721710921510612121928860878340633687732356538461315662194614855236595260041309453388958060028332283415728573640258085123926028323332561576612085041692838651365640333310968721137200036894444058699500061696707616166370394445637488846110739144971438265522099148424272628656689091188397441310380846661292145810368935167957553460257396670691898253840922676758193534439150045360028932953620281819005663550985035447825362787472003741466110459731303418118758885404892210334825567324377659647412215145503806135473094976321940376350467755427157798280867786898151824841378931960753291369113790731392298239482253666029827920991883529403793627626427859645012022697548830641396731858580714016159817182128760645875786850589197437668331819255630409495214239010053388478912101948916683079610259610365799135855372687228529938089670558150096428225326959297836151729154133225378841712470415459008863404488580208170263402312019774624976008950945169234648943766434002073284793995797731238868974067870776666119780706579561548040109795911920226970189997262152041385903632201848930268769831156660218302182900491347512190923846599098829643493584351168659914962644030439858777466562677237175538007309686845045874816588439453302269370660565001149839802362236990551856588180216774125325197375481420969102143414073287553735988820260838250553582681355148957819482576484303185659785713840114639416101877271301460533559701554713097581826437144236730752830143388778163139678513150934861474430581756727241866736205097328942380962678579518400777014239420220558632902408279874956249073899658095293899647986543004672506496067797540225861554253226125286451606142191759571933478293939135397537963543595883494687302769351306126839106341250919811745055481257951944132809511327059352826268943038124224029278514919656664110713947151917966875286476101409098841075079289413706455242553197285832455771350944556489853543238806189352154920849305287583109281671986124126464368159402373674935903557503769222099849073469598897402308213959191238744360904415286630305102961112287757105045127739424611321991666679607033825467482039211039636852474040856320775435943881217976443719834404453974121983929355962933662411783801903194780369040515883958994583019179174833955380223888737953005162291974180466364778250626360369243888887107418494782444437598029992141456434581805527680220598097342627996210570145235768151916767739839193040645508463558920428752602707660797280145504957117702841466433385027494336355354206846401797619807228018556853307602638000179099029034272060731043136386760731486796266166542461119255461118308918167373597406378865748891648219472431722405011389402651658236013644283417474926339166147565003492141962255733649316042110001554246590254931744030401680639681783171656051893963209127283780617641946957724241408368748901207279223013793145502732151914512374164279553396200510003360338629983076944354457647592493660335196622528549005359747177451587710391093163199301517260444646245557608920633129241647266789351752719428144128678058033653891917385348378461251036185479982710413375645756307232404350512620914114083450279873213256192228947094785960083461410268032505955020990311442764172328166426881107714028479744678330553524045975550419675705696752970857926453215110438648268163178530423451769749900360881738318021791314542939938969167900474985990253456930302871509155670046329672031520559723527450981349510217470119899074907834822449171816531362659039474115270451496705933570289279885084117782039010258878058605693741208110775003169213720964415338152759411869985016137078253505652681530005867036341527090581323910628879373030472602795033676813313751418225077701261349159164421654307245189212171049800124958257795511525492939388067679313750392184020709748824376004236920979075086015079109772075209997676833040450540165964174882342994308784935105760438951627079754675145523586812841645244872198447044447043887997448227097446963280865350894526676235466748508184812015190535405479601637876325084795098346380321961120479166239574022896556720225095856802012161907829208592905165152151486855675547741778891933229689145164046947452099081703615492372531391542274172324698547716808060520846271839282109090627541806165406393057999126375188753863232103816859459986664015516177179982508701676059365201083706721610883309808434527189799787928929833750524959825189186648175780201239294606194189237705506430307923636566739640274188441953356459398393707659826903779204565282549598114450902692251209793650126499535437200861674052518984467944399694402197817513162292726401704210256732479238322060517241841582232136648798241094486503263186370872269092606108910546082242074442292368628111696000559079185668643291180011697401638918910544060130252706614002935207548826245610382624980374228733037244981695617854641380024560212336721530430650374547090007731407370406842095122270563229102377889642647989092569183852915114088665940674946005012724240289584133111274530670980929952824008112672015324231283132882982938736499441606348279264726790628307746540665131025163532007766439912425676551841312124809566402366713758893649392179724163256063247321786701284594028589776017118070092502122513348049376250484327109204278821196360925844740810861683403544468206458382824470476574369959608996147820340324358184226764582549979214680215559727342579563068621139704989898047192046970584290868346640613696031292174864029142721652312902621925090256214414563822944739672628155885173897732313717199537080340593797484844615836727927442423039473309318222735571035083236866561735423431424974074727663747093735477413841104804309727867180838982903272293649643431637071712394087300568824525278404505215939801568873371742344805455294205356463464838313801561424472812250940705802963490352617117135668245973750044491798635289783272903972573348092357997219960985260756547995447167638146435881675282242910122479620569485064396264773910563351100351136341661317363148857626350011979402178248919702869631293093422094185326335598197379267825527377541956004586835377142548120634480467326931108896815434238284686037844280264518665291658608659002781972801887139169326454260995379404044990406743232320476423200495544076395839329730296291251123141736237796013887796011448251223021389414628914182910092673588253806545124946347476807210116923066262393104532770820319164587565505189440457476624774819876889743670841903433888114333711059792810004428205035072292574498571656547696279025990648812778954107926456722941374897335813938116985089093720539746884030123188880066270183405680632556641791019099673976149712572958833404720221839296700426142100435589734447736141762995034958096255193246009875598740376679624957839072588062759628699759935455695295801650034254017577129777798674320121027073900332486838686509616700598029342031562309162491174456670622347749022095344604607601199534373028830926671394901093963172595953750243494574588607280205734485469088816820198445730433112919441955814614343997177592171899134646078045542865539663126316773789958916374312408264654240951898074763999852731744946663836186424453742002052403889523651368318551782371167346659990570412598948403500332969201267885674621418513029967885216395805587726735391295310838281729291324871075445562678283015494060883501240906361618122884681130943131308796077609286735008699004852006490052128329292568876659415122050965221840171799971468807937438150481181471033706188200499728957662280426685288658000933224229629460756596367187294007895930707955425766303534211132269424106326356933999653015144145803709475704943437943376949467439853164153073836295759451148944330404843179705724585068957899480251315888990407567169934328194229523555439665443787481866212699139445569978525278181837402360202603886055626120883377976730193330622647607563333269520809350948705567932694834528741586767300095903781679054339673833923354514293228635908542373746944756179776636559497592714665106309321049200184270089845193896629355915857858382154168060218248157424568250305808619804949997383182879350235061955594256076253209556094973483499523973726910844004035513216039392080336699696420049149129378318603086904017497725071828486224182427495922795319955430505856225654284523618615115138901569609812218861247609530724598682737042298605984822968955127563248185313479316202697375279717248922883456482762062449307723309519209088363362836834065606014757584390165083972206115507642438597078119386790469282161663971009514713523096820192246031534550449437823245214459425583411366650077232621847809586647719964166474065770077325062621735558451300369283600595705729581511275892445994095471537357877781099171363863713940512857069354458898565456171916925238815520424998003985446201032416127478826142161366511046432185246202213234443954114747091108346555546127723987470346704582716578807171084961403269439164886617926139055694966260875065184841298133303933903061964760680402344124985474623994216890377722252368534757968989985771178556480095485339268240265140849300489795328326546863644976125728897963164688555519665592316234996717674878068824962541172485281117008310087874515590727163125271223344536500297500510717914335561429769081625433979127296889897338080803998944725839068967817517401007974460266984369598428625172025534604183342705664308391885859035904666840966938666732570597314253223541830752024711291225278913934307641591242110249585466824855212026454600872339887407384945343616888721059762913089470044009612732966590902530450348349834080558075790792672532720536729459721785647675413706239056606571437791092085070845810507424191380953585233827259222114375626242477910425857312746619821016083586202074454616753749011672286192687833616267079550013909736937027559126516470381803018445613031624789765096328130879559514791018712210663183611679294149478522989667596556804235888861470101041790457012329999760726515622790351611849404532592300710211036587839979194480787841272393947111191659619159162275811338397247464595303635386541685252022461733802489999885005410351994037429510827074770251516724301648328417788472719961744329648271847676177883017691656527972687266932155519812576358306981728275836686466018492528091765581520664110395930511316162636686495509862213761695233959565454609853918144628436786185183520366358567484248261092141295971241643660279069505573717838013687802635356013693500142988108226048074883045247053710116895377588779097270919734529133330834409998070830763368281416200999194878626996933728625601982013622022006198945481268746384120938931596520972508488035390361888731859736035081954532385811699528174283604684305348057614542304094650673032583659616582962726964695434027710483769509468357457909111682860613538891375233759469563706525309811652973072448835725053292382780488392933476456790419272838716355847875349561463804744162582461722613218422252697036960756344446730543720757937656234018892003011271913666756424830509687374576174230416638381718905988416734344868870523716722797737441829313046997353071855399697031429676677912650354119793762364507160695351968836017622316158852191749928134401669594040641899117659790207646534797185363213225248396012843672496888122692326501162874378019814979407538441618354269447318259988383162258833520644310386141734293759588441192700256950401323389632964346033191959220991692548736165755132146463967172062870069543160475795187337603980686896340008920027767929610117405075898410049320128224358084188092206489560127276992337020693782749525438453846364582230464916558330124645537139777760409343170168782111206678497003511089392233328539573501679894679256924829701944911340828686744263065886315473980164382292311243976724914550489980578570208843051967423026616245315698013601791709563683873303029246957672478405323899738682217650071603360782634366209659736165958346249483252154617376336961910240803624446252388545068136349875583444621488348389939289322694516717102916236873074501014946634872438919233552477804555409865028280335949859065258734314644932177173141052987704949223962212813077227291532107896437548783109386252351439063276554044207736990899247200294888565992642217942681462441740166054727120018219860036691556767376234656111953468014580855650357714663539263768809720086252449946158987555934184059326340443313523072575450912202623027248044527481293739807306627929337326174686293065557733801998191764620937797751178622482280575772022540520030046716013638725140681985613717656926404093049359995829173564699995565255907749905195726193756364117540314147918367759067664139938771231525205481978868356474643001596565077029370154091172785683002642827680425243331877133186428064091788899183208621760240642045473208506902026933144870834358875287187374761135033302247342297888786361033678076325484823946520188722122291353839346772532807774936629198491344394781011553838294518427085271203828196021371860420936287972478445938819019619750576655875405234420573922860379949325325109176046999772946445157579734543103018877885597396206449917230397247634076693309000808260554526442466300279291898961580706506451305136071177514863330692004373591935422171164700016517477605370353917842222408481330410003017030374167452243192993852126986514636552006492183867321512069465738134168518279719289234000010305172166027375945819955729979302718419827415264287618416243488465725318990132484274148865747679633880322198744074550064078771063972813154008395894285861080779892253857957557331562475279945020146677683831930021564225500935953241414520134315809730787048809524736701045249058794824692231681583282893665749400341081657006811337965682879843514015619623206529376682223125991785151953899403572706777689934167917201382146417444221768088753553121358230260122478231623764688203801290109763929616316916773902285537471448522745046980011621697725807923672179864988557442546262435219011065436798489387018956270726271698563622646551646967632774230104390171884400553450636154627229539285919316648626616975217795056360639848257857158429899939323871457691596545828982727651890305030559461589766043945158603202086479648040062502019114655174694647034045440354974718481909549298629327133735669523082683136859751485260490950893859911581478569592300911512518769403087192232053641350977683756006749403050106645746197465774171586480071086743833886196752659765173614767368666446415619299620936739976633479566055226842385419193433896912754422994299729293093309194886543818804977797553761788793853217643966107277449305597745538541511072979699907824522990705594937093672704037396341328424498559294666196028544125339080551265595773762732370739029944565822588300533540385380610319513690738287679367585976461586307181976275298493033686085446343491185748963060380140155529721445414186428852721837077253499027050579939237913928640635069806082071497273442832551403722654603174403719113130369090100623692881259751511629238906099323255166381823881011230351483106070792243286634017251675910323495899615339108736809364258456118423047992477086570051621932801639562618160151370606464504997560572327541403293022152342752265275097360259053844519666203019729061419783302313814130699389783776517908984121422409879345417196800245034010302274001888298700041959769268342179766104592952927039330348027818468242036890352862504226293913863115101135953447609883977683493942520902766286473139957505018719774890774641762706294383978623990713777563855052657703203821549198179522996853988479873818482395575562859355079570662925350435556107557830410498660952708906516521691216718307390419737091729686489218435773757605620347912593842166974994448215800880517734037646062810172516103280600952174973493003186481473935802578851416402175904428388068026073959097951769829265560507881344903387499804591297899095618682615367788185312170430971329996830507418844768427130241694088903082041278974222582855179221384147317902827461089425992246357218983914936078674034597379516529464953197344714577181329591114300165217163189925637471086381881066314510969824813988427249239847547119087201794947741906015659084607598825105612130439533798034515070151598878773195192434849228415824125447840865084533948335654974965470874957661620724288202218347440388112907669537710682753706351780677682464655068313937694370464417243126856506166341519878932470863831636098804993643485321492093260446052063187281677694611436394200807024587293418513203418238051024308571434703270671195050413402519448976177756800458739594047553123751191676968524123558641076404895852150004870392670811845474397778295266714603254781282949289080864168023909331118744666301674028629950399555116539950516983216923359993121551530947429694020867204529345290550302167208625969183246587575972217698163537032568905885676990839591549793962265646393503975160545460934699997974704067710267910973779739571196355294130555230922291955002912964338040084998127782758471275199530468540083406861551438406877629112523633842394301611594054533669532818252741664641325248803817599376407234157856196050209157889054052189930786427575432142642802510235381527914338021802890460392412630699697672589125625492690215905885626036999201203532409935554625820221497272162703506181388254363710646464356764125633836173261270207664748839908453662320894840352851998110957504744441471298467946650018724537670103504363503795886290303139936494434692403314286443431175044197854287461589192937428123279611181857291113515437810860930865165168654337829326954717486592683735111599158490322892442915501518180871036853528379297582189257493841942202836599175992142874739741569068270019546382715738839902015356446864207138260001891508067127418598941926330705789694341476318713224733312438966680529095170886832246683119789465827581142446448303256585557549420272290835370966220197433423024785974209137134780532361430686099259425639918655916259301875670253117807515049083532857909561048940734945360238091907852658869535519931896762660092700023149735818191842427418431587150786777382092513441290873351558263690393367148445290788217739516759626902649647950560011773900719235958470131789319105676843759513499491715405175792903966364875380921041717964498080053076081616089391853524220105829136576471443553138518275660200448964884765237428321450076670928896157521202070039343874759984060908967100375775095327014064108332824437713183025074032402939594731933613196065776319684003337925678469198392852988072566358992092827139306204743623604987240405615758839006840651976521267709994484866565638615636470752785049264889582706822691200418553809546334261110916089298784905644459985493316566658905918711462019371257150669832726263392035111503640859026586383025638772327675512367945463189520065532004722541158220806883991322665819085972300186705501238397543783196622573846168609812637430091787112983021426547975652502035403266276194417480803747234161979556207161959998285627651839711281000269054657517384193272168652460603466270434172940757959261652719566761864938199206470950125868280693506683821613030071191328615709717955434701956674988581931837785042340532022446183584564188801529978172521909905069453534214694360190174270658500590328896982768812341144324398226786650383698528257854596454744373017600170882865085720548804531070020212909504172287077423381590772578502072885685967581140544230401046970277204735560167776183150881295343312348003262352673419779508409454381669076162867066780309064169783802512155195481351360606819277978634834745753085320056973615895347781282330679860146487699759828262464991668723017927463356650053579018993928140625585932741065641445781349246947159822533016298402347446539683892649702333196486765536292783149294810777891776084985613962046968365765249472276782963240296435143980434775248139929797307035885346126998210196012918770423722673910493261789287490280632979199688646829640581896310705668862455547349937855196928710219151266757929108195111148430043150673825553270725484686425995653214885297727334997423272400382720208667533042469847869688397902544335305942521106145476508622393463762572406609348719084432978215478969537873985693368968523648445303433928480122777012752632603787441652527718836393723852998893542800034011092833906827256025062928217325455240727243498800110436089620131551911659921805963257525367149369922560830352034224101861195560857258648540014442557498460529843120625145557527712709285470288442353853663109477110834936398903966590260056207024477174094500119447698883238871856576340119514522103841991366096416475914474277395845090461327665606472445886875139142855326480025269809498937293140917189029237097138589624134634130789121356923220741033557733105790388327060929313318437270462980408804236972711251828337708937259307485036208218800111154834985889951250306648627473505955648553559406296817298467704594665140623392918361549464702291851338113436458569878542348036811737538126209538975692127133630976152045749263067045601374149909577258118916232371979989908055896768655111514947075639083243349224548033519016109644855684987339966132401843964104681017662709966362982459629556211064828215474683265201778582738362125840024398185847947458334168628344270464830677209957913028754543953491181820448686425876457927454293032736895176695269835573113810221018661410559277239168898311942075521306037487139083072964721928933330884963253418208193537185389082943865996786325856849332861508532302907981917980971754735294838876364115130361017231151946374853459287074812149870808762560062408136492331777171219934665024939194356311179261352842038852218617847024805951442078097381212480627946484308454676673866161975231511109320966802359650792353578727948415594162179833931724200477859954097260116335092972447940706686882766565425421430916316020384965523564112664262413182555405569703106873275965486295987283581128117338243547709910795347706746880338935540786994359986022141873746358206752591542024315904579316871826343230465061820578022737471075023602021670962181642261450429415291256806021630011888792534461118315673353019956415373771189543563144979514781425410316704486272257476334118023126664639877905582496979243882866706017226272515035744995992857761319539614148684598492547075188651232173326909494529619090142962736144136438808497120996047997607768929511922770351176527011369882760326302649671327552906313084906637784733829484044531843544320455133870017713531779578294921649950804171700618417222300328079582546740497279170245866927504274453838196541934359858080627322440653843178035923940244361741761175905789185585115826828239547877924704765014756846348571893865092817277581960681409621336840392403359073330815877655345772220464797379862907820242983275832994443946243881250244384169560191259636943882098535420854942440793775335432731357926351038346472175263374349843522074014729752945971346004600791688596080242169874582721927685777370693419487428607850190949547824557535219420824120298195662834614876947018198737879264583138835288629351907600316936425307607519870622958385751619723065290223711973267089060383862817803977068455009977027658391828448855070726086370746271021447518889498739818952262580046640264271408908763506191033060344425819915557525395162048188056981669479453619574284611058675230900448861055848467473761628442469416373694234752346117082742654669199013065345478918276344604697106765346506579811956966247691928916901744671866088210006613338503360723386123632239506284945027695725028216497670514521527926646781746438179564560250620944038236411643023080369168395058262942086375755992017164469824158357529647474787065361807384451796218424383880300467471105823647160976301826706465673871295203310504573021703178821883300469603115526656978239498680390579034793193749059335991870286129742519535347501911831308833225556649307561649441979320742160088648720163308739496026748656418820484284124567383632650626970228907239542715462498848979747509355280706624448419445157070381450478097682756951180761931766333426896775252166973091336518598542828609587345512907040964579361137389025501610808153356402996846816439589969082481861917229087127555332004556113944154859533670829314985640237514321145876501723713293926616184853159052282740838130139201715299396977022704379019040786680663367499971455562496453888854275474513579843425158948138372488859440236489201380033829601013288942618788740635891593838991349231976648429255910471794082527511569800330190957318505682138905362323890555234260101345815720457274565150688529026214333781132062918248110520723337027988382636729079943571308845744936071556806201973033847150496989125197511909452225212245680393447344391726797594970054320643638993323473797274021578951382561296190438318762680232561949781357252955652725473334752581343957206199832344721684765595853283723538514074738365327698459806870165887013406922699277302404314914732558444213715533251720607356031797979962189838363391567360004901566230304218951354034939309150364482194734016920375168512469725092513431381610878721028424326088298339298229548260933039270076195136466244380711230355945487794463524316673079380736070176663858860728952809230141478348355369558788515035556120331025933467425448762587438667663324236062024832394289706215156377235322917656568540850855644912856681841470464055833990199133130387551496903542494776614100478486019009852047910715065997299768234148223594234493317263538592057321008727183276368353263102887568826680179362926022661837966415920822701891387241627862020990218421651281881908853742191166511908257482147334053860841909170695635939443776008328521673556815116015418260885225556178710254102939935067418659982388778749106636007152997671677162825739374395063771764394504013679028103806231437001019674908494309285356529457016037623734021010208164517090108404028763506072564723407453835573963069091374388006253163384801812220931527355653797517695733733091920255514661700523540126821215795206758783956139137341777597470329820583508063860746081489025599129884589591786965556801692590182630648439369658896325831757784972325855111308388501055972298709789333108077516492856881807234295288531702078375897043581046926187899969040522046098013984816654519775936214319737661144683699041414278850460545195845467636198211348631384920832945088525497442174574276703478466157303313716410208663672116712510733136001977652638614095353083431323095714104017374969830471203117208624920261723842306151266540500562753734480288737439933834964961897709748331314551486954291126862237548648150416672192490746684970641901332796160266612443380229767742334892363060787985319637753956600953775981385324611621500260200010267781208577851369744644403034603428618690131459836099259025915878004877892668080286074086265589618360862973411063357186484048539782994403829989978833699887538127521307852483443123179002983133815788905013587655621445638992829051118812266619152373930033951227896424823429192364573325640121962084613776440719524942457217746707383849706065226777642891697621430991658794606469956241003092276869630463662149740042694649913582080942689952091796202006449793137234745860517006449620208413865380434026678683151422406250864438792216868885138125542509799382648356917116892963063498035089535635932931128728552473854966064530685843692557517139055908059618407413398575622732062076955918427957591220989560440552476201842242871738999820184798528702583781635849971131577785113056355191291527393357073945698718101143665205501961599393073654941902935957424797959644423079107394597150429598310237387403775807186016523932251200746462570609183873108788312790859417915206215897047566388904214789087681986538368915142795745581246890089544791152447454975833997273306225438377411216743545017153766390166584081261205480101042686070651729068928470433399167697673952582932904351136353349714219125983500745371743543920044003589264812105017815650519911565555218957198812896627311162821486600328116870965177674051506335534194981577803601284405665432076011811365354160114972636386998337777594055995077313023803856450393604240156851584995921950127435844008883880860745028075070889428991539833319554594980720127580799208806753103119079985078461663852026670802633688299476868186638580491097306231720291307172011163980975926752218466875828717075613413499734155133059207809329721917387508145280903869450749491005520787492572660258757073803912456021937441178213612602612699983099870719277020392667062577381037325239824018747199726733010597859806751888034450961054458483873142303131882724652902687052322808695479981817834873252349859739966911233873608677448077698607840598894944358581370552855153567971628739293615908501022176946975910757748018743905752687694168722029446198627466987332953069875382225366106053213079750319849886931842770103832032278624334509233434683304663284548103190598340800582223344085097145445477685291995084248886885292667135974964647079251048562380000611380080573153638677039045149103693347706435747677414645072433784904567073596117859993548352871449605163868691623151317506974646759925796358682245111341004757709264105466790270187290799402684593004147104500836670778417773268069311555064110641058366173981532844709325667800879277286755284690826141084242601036730828983234637498297067846278692919801681571706504483045614437768863763711319493766135088471975135445010309799182128161957630763534271149766019796761292276974386857136245864708511948824109747884800818352031436412449164887236387375303565464995594737297168231743537764152829548679615396511923404739893922349975337335004364456178565276438006122945872586958514047187641824074801620808738295787429197654823450524796695260181401025819944713661257616351359296612017127287663780391526004430152444989733743574918462337016025457882924811959856243586069823136405044439167453311257691890533632251263081338997901674530220699154718245286231319695992196497142669705169652114788977516809134218818557599882170377546240645537132587228251493574970694520957773786017347505030917332924599408598034118123035502268657506856955616978835910201260166693329816532830332996514476560764199691626997324874965776873210533085482286441231149403118020250473016699977483898406096070510293907567664195492147248589821589920505762912678403581419343238633666702803333407712194912605375379259888102072164001411396371616551119823059258733701270959697002610619295117783286149200883282410694925994844020913686135509025219000968052561462190915426127213465560466612771671173975227273049557194295165734687229545245979529323201352060827111505007947533479527644762432281968785100541916516356671692302357198051288766117764016580117178021148633462770415870440229818855432547256905862356528208088261921684418181314538667149253626156038548839438690861142959026357855798958926167537456751985014967147457026521005082529845557062265856620185761195272446396970450991059872271806919942802490910878762783622993796889046426404009566304103330855405635121566714698208583804598792675800587053387305993369720989185498442492215324301930748124754385087458192641430619218964338721540791921448464634782400894913768207078101397490857482549734771374720366746609552483603663464491897139687724613353670416471773926380420234109088925790395466167069715600659620234639581193819791142999201570008186873605396732488973624103525239557523255392133752378321755416679414107725599196323858045175051080873314118294763474175279430392339089738030758481845077243541465018564397670284369614821433967133129367740018740148029802572785807398151990196524289130681638586392050532174570732546219306213035106984532620038935618834874790252799055683339175334995933946847841215959900138414418578893598154213457666704052381181032030941854334520552021843056745975793635668257975155208795601738890730678937967910267416054953296821918407101230009324711495440909977152149371152579456503129961867903783022055033763364980572365933247342504903693237985139051493587855318884689870165224972543340246104615608298430575806948834883159276663007735125731410146144945275447429209500253296631021030385532526258798684527513403299563521661074987003897374468154765388771797740077735547725705880806818736064206911309762948035896714921504506064804571244387160648856350762626173354202150967126085677740912433075684366494771208632491289115645218701672837052695342124407639080836992127750967765657969779846075826840565802181550818987839068252911363090538471029178341418844932567485989641687186345019119633463185280107357964878979188092477493183785355732450212280262751421987369624202881287667148551731994413178045602123116179842835502321215267745965976442797314188394415208209686757123685647436567848373357842177539536054953279928684777087603810020181741746371959587824437201136422719553726060583020184030090686624827475302085897271164408204080206747651971494669267666691903196070832468956418518496894260113249469162768695880490671725116189830838464322220558598377926987955083974352573423799972100494429704076165318460149771157590427899882098974290972038780968519607650989673015473657013923970710015038021701650243711602575361598048590180044924740762715708153698015554664790891096546537110862471521373580275569208244527427407236721361565972159760262605510715218022788452767555362530727537538857723480009639349886383961754124589396047377109521621013324144790246117485944365961620637394148651465057617928988773008690165478133211677341574448868510745678608571242421729892799405643025132087846455105829411757140010582371019969493383728923012021481421696311243941346177970054666324102127912437319159720239885338365767035036302706958963003775789798809814057752927197766165359991468886689566478263100431787449737451930358245486701323028877152770327553670823494305826147822529115658012238954068771640893466047769002965951616698984734045400487747867611660193798313661274693142685437720009049714226599525306549096707727347918277652892664637078734218758396213924866700330327848975957838932707679743955297779832846975498378803278329058956366331628071340084087770158901150977127206488747936535980408165687147490697015024558830747951325058440820323590303437720378708747156329383527722289564368107733462713204590876239842521080791404274473573936287689901094005918497939373732166395956150468877307373183077389125652045162421298148910155941607275476519584048280063180305815805993714857211465698237440991629013861863206997714800739059188663514513612042945507177500377304546643871732651574941127190871396912288500111715026878952949792687219590487167191159822346099304213702404580601929088736011314659025436029661173925878147474519841178900280230415835319466894561805974469923850144095351626270457461730712113274937494843940833824967706852888533762731733247333744178290958129453007583098649197129766827721378056026799350859716446428731956786028056296866651648358794955796354407907334305145127614405081710783136230207041230304222659074621826062012069844423437013941683935129355413044450233637092554663200464471356696605995081132485007659627430650870855620153835081933796365759281636232260100379498740812258684512922163220514677951864999973501182100789743517036973319577067632892577541877639887372221284234986902691377114185684928017503608648856541806817238578526590171594607451020114648872140285891342056584222755693920564272008247795386339014393873410973220135042902783542520074937163925189744068041681755602338140282382334355089825630895964143902983855610812600237643183450684860184815464069297478643355185152302930753235265053177821753814658702713675940957845134648182297279857672603658616319524910062174863232812955618562492115757372329835977342553282723093883093447622865462893602102648602326500798718535662303241197787541833952071015028003669043758428780236674086725135132886058854141096670979842023429520402185969890566386603750328558617427092590645758351102485136346315016983314382765314821270489693766738203080257772530536187516224672381112213637915155327799085253651585845525340763220759605772130869570319516050777265862473350581971329417834381323613397468176416259919902760205236498042696417675488668610516945638915037946264877191998383023931273547925086629914180248573615629116379903198548140998234636679683221540330166746978212069637894395437117044734291136743021305643296257412594019410242151467325381404047539089616627770694272419143356150291978462444350726568759364066798534866322662330983996361285789521385208740677629483796871925649090415700419438886089798769683829043777670543501350505610944212291371715137547114878296306268291583203201594450453805533619686491608501723737948304066092386689419334131476165066173247011165398829727747052928749344532899204319136682027963803050203609799736484840130741547602090187341833499566157032797950888588735561735891320059437155759492303511600036869212039991669361389454374733486292141170926182343907430891545512983069493542648879272654735283836318933591628605940963500148295249251509867672025907104800366060189736940714319326323031118451370981800523557222644011723701798698937588539144675677098832508964737900230766352986123308643777609738305633892055957897215001276677570146244771365606890636752117569551892060894249145617931323689537399902425346730592941439730772472731016659207838451975206820295840506307734600411413932073046981733348467551087879620140735615231409257969892929151229258487181500099334436979801109041996573351967864148395575044529517838399247844684154969136963287055482929410519300846235975947977054637112977960594344180809405431538237073896050821035156210106376911376036131463733147211423160616667319685277916103179128313057379748786552284026593226001138354940496501546841142908850896936807113942760397109295370413425839212287472009351543782839986316260095746785786133590844219263453476064446014362335122903158992923037150184780230056293492107172399270700274168650765577743869216419137394397063919583607996827226684058257214111033740834145449703346159643629361647685222336089873784220374731024900449670319038923865544315880631308511814337982415239812309975619578224113501319977692645326419861438943654546134418694693972054304732847078144906195008826318003105431774968089442143069730937914112144491160015864721129048116435493057095469504405612781005043120387146309298400532666032200367149731635420251423720318199744976081835420390586834473785807988141006249107086344329138420526419379287116215076067292453460840090353896899878428978224742904541667829470746827663441806151097211652408539819103619832632745700888246442981292305840060180755906413295010803772175644587921779609533633280999528580196491987154119956655912580937118452106129886609476889845356089100762254000703042919695643575369420614997781772646278727914879183749012366920953372827439442726201962458226672737546026131351000222105998919680705420607799912771708948357691960600664562812755458141748503679530044897197484160046998328528385228026085893796562339130826303844035379210136100800560855277473872738005661824914535062367890855292912180093156891705683117217139804003149984438631414148566630699621355000817589808729998768017579538475361816948778232848105820331536877620068732873139373289912650809113023062354539197491136120565793381991472272046071108347905561076670340638333681645597561212807957334775026638680470726814488171880421423496811623736403764219749487585588459453121729796912512481548376845088659368289860350853499473509294411650860168820191048311806111432795827321092854013072934614657578675130295819191878714756485533902846192484707243802033017018559091335627222849170336933978001703152350296289276516694738936301067720627004067621722033383968299312726656369648292050145960173320660406163306665858495003585015910701401658519759385447509495961875791054237638608267769769871584662556174918609522946218187090715227293864494462859157316344331005943888849886648174017074065745570232641211216950185990748421029692439773662145890929198473209284623727077364464747183860851650097252739137117639053531274860404058289119972972709295345811225681879804293894265066629845068455516011946481343231395498226256505773653196852451043392065753186678266946933634894255614479111818531155385126463160176620894994493306792414908583807985223413045661733426764840927727317008573423600324668550047164422140830430640874340034450111422403486275073308167033418746837213568519902339018926898714332043926154767690785177201415211547576364610666303022642055304083276001513127736974011736953720659387042990671336503989449992809472034670816456598858848133366132199735103239320847795418382141519674043241133630756532220482332895578733505532234877416796507707884192503056153626188599570301143746447684224330693453266897215575166657082795196571295457638989920540461310987124821946536671263185859313354233152611998685106844313735887826528288070014996318694825001016481042717885214470732018740791274164940997732631459646189750756031578039909011762888344770478112703845458786968197001440140439733292440233155924331258281686781472051297672377249958960149561417408987740952219482049237253653932665577116014207550144837191398515404029774130134956128646401407049393023660210650412334356542042647034874712579629418033360894238079054886310793255055376110221882775136250224518313620668339577506082411730390056179258974881641435702455305308787083761427047366121493038858571825027472413328014597664608752101440171373719968678898072060399063868174779880029254777680332467748948061580812088085397982253933475154304990899938202881051426122835908947234974670812716457785999731861648667277516678041566249090515212656560057862575862471448267113423323828738414809363513532672204694313124249016384330658450624949289002564388807286741125382963854968549314301838025473420081620595917744738606978920890013080285618634030542398327008974174661807784196497792166198669149859152527940815864148578188925129001919796156097153086516526467490379011223875927998209925128639802846362642002646074408473403511826756178065293143248169770578364640663559001923475292350234274499341608737533047076744763606337398788389281010765070746297084753080786287910750247228828618600718286648194837653260862781307253975249110747428068419456157545119472996792368676345760425662907546482846880641400496945208946278071898953075606881910107872404548872414686485609560280785996032940903462793773083749496348876664396982732204051115712449872763227069914821038319314808747426210356600432830837979146346289265945684901215266962098727781319987836328142296102545026525253409559844857134056163272717137192095303392651345738858889638969337783647422466318483464622549049911570789363945218716385196974352392803181256648791464991616283824780721326109706114544366726964056442897604784284929296891779653838203910158717446867254793042490766351201753542116464178817487792370672519369626286824527153340821328025006947079120238062074301376468232631321038179611276034764467473151994632087196851780440425307065187766779826410264512815878470418309288498777903099762830438232906844468726434012782154936793784629175957087258196428724129894004871836561663772406130746430599062114109265744403343514094440499742528261182391303655445429579717872958136122293554794576208574603691564325240888167710475560187595014342168622968916673299569133659611274475667429114058513957441008777821912594007938257167352550985806114437666382219649130856492485472768033212703567125134544650078618517347088806387524603528048278417587363605895951021258355056748642669260397095482221013137296651653412687445707405898614719629900695659494302945112012326927857132165866971186424010927377413546666336769585411088633143398473209031410925398972729897753771392700679708841646929546382109319807612970325290931873097143849364817383830736331948315372803647892766887628107655322635262383309267137472955499471989782202602269791127922104363695597310246162293413800063984926770062989834521744611790763412816319026724672304207450373835393415956850719904189700373156972168434857800576400601260135206435724018024708548176999518562423020354835194692811191250807254272187596331754309672356974095925337569123756715656200447635213695849860535187915856893172604672907807583301808792838168936272649162904934767339230281187827171315284635322289278412520115440991819056144707525776476645531211167536507557045422058949492690414496619573048246677075319139873214116692084742618058358827681202449316336286349245151634640757539291951902710446269831179512078457880571170068891646644243638064529929840337355144463322810612902065000685183605794747628503891925044589061040373595173203603963592987015349038914248834789895687418163415632844120782867730291003598873610817986384901228259098150576599822835927503733525745179023561026327535519970951743606735271031416957155910213239988777985598607908636828014276459731518032393579704460181930862029741008297328282557143081699963237838327751184572920453671916742007934334364935195377546374969222313721281248421349131178980845334783692713889607339860494739770323093537954014240253278214562543359835479336585794891507701887162777199416574745964834886559163286510220892558740576048861740688090360141318154613753941333584254740801297822057402825368118154343521371986483151996304589004101627783386486872947792849534768921425650081709169248988202569912667541555766198847504015207624103109778788412106255554335676334272171506755290379037649316895050337968657804751643248157421858743675002034848328375010594494705098744460072869490546477491901896129351435194977440561133078625622211432163711147001091683627352921842134810059802711588027954568317276539123270841093350407245747199969540050156966394968111092047291724978205424566152760800659519939067007664781835737781497856402597906189290359569565247527370702391427594526115153295534082764696700745891601826500385565495196162955730140406878118882844747738246172529872585210559580705225403907453253008898218876847659627437172995779290462665099362900675967514489472331426981484703124783816910619749115927312117269940548864181254716499562957462960052546001457186336689887775968297818736493408552002534181244565422648264022272327554181984962115039162322114991054740559858887666533503692125031930195982004371018256114514905934375669781317037926713928563237106647122137854828411977371102833560111473953099454612568546182937025784273129632214485588483725852123108928651167110386976323735485328126643767033487968773442411422582946284017031981812530072572609532923652997044197224456742509593366335354865514844515004702616772750650726455782779066892075893138904480654810004122670201520796681662902123245911013997675392524916972045199876717104054324733773712347278640203939656627034435901589492347422751275995006772734559219169311253677021295706729602578015242810506700943587290850692516288800926379198786266276841152320409613413116814155337481462694527905602667203675798977609528049755481623007698057760122054808921668947992036609970512942693810135922903433840473516773642375211936896253072600120327057843571090348789047013312148146975649796682813833123355836612446314932803628344349617251770762993410752610536989376076310989704382715246383428151989641928157734278802199639807949170776868869995343678438259228061918381011097681502955833554129352435761646590552752066579679372104322100338463524778707086575998649065942215433181867406499394023174283029998668097264125222860492108023585911645461542972844656696888737846977707851971412185434972146611556932745180054903448692092410593150255330772418118529068367955760651783394467736259265977218057987364718630330239546177360505303344538236359217947504102232878695662039011280278966352204676675143873404903012623409476839672448552648013148253947998538054553788203553759063449404674531146960722827616135133386226297651954028275722441342421817156331028231421935900777765463552372402448849011721027352743196305999527136014925040753137063591672670475228923452154223339686808289279421077801802351937025528369739702855613620816099951540731944409877100084017792720087616968174239588707595835673082308744558304680834997004883568454335216501920327919072439230430530978515458728726931137016391261400822626982789485172632268958938971052079128326193224278925748300902935637975803304819017774005339847191824595925697205151779857447170349507136107000197318691574461027224316339544315487136575486165864124902488355822833464821911812087137100941998366472542126517248821289126206215861976290343048303023245482904064155547676838457634374896125155111975748831565367003088417211081475442673726365931747827994519159281348035183528300843311933546913040738592664356494300798345322641419594172081317557565855888436641548961516511294475615425418921428423613804595521449014567461720199447253447742341431280691175637318190756493789392478029539083658145875202419779894482436465611950094748178899303687146731925329491181867783011867766866048071746706778305524524278432634226891721826970410429513029575042123585962610906707932890398609476222533417222465208678465342005496032567263526050616396699576249042497495200145088652110045888972964547213804863810240132893428081045088491581525472826309804026583676362175411222639919281199903900615866772851582871683341959123100297040649232870906143605423865472575988178773763483302707254686907889062680672979031595070791246837880228642508154497743258921385027347591306629005539720379995478621111910087056234685533496863369808676833182230755743679881715089008190054880653622550174626073021276563070394267991423209617092474186348151865160167647781674383684726291870673574219152247279031372964874949631224913142300042342386717975400650866357711308125749194048445088355121918076411192526458598805334916313214890500370546033477507735855020340137587548382321752171590135881537914630648711361498595512095866863801309938527464663218898872891439984390605362313727554922286665004121003729589304124057260845835566962083954940537710901497314223243749172528729208855445186455518907989513800750815999795606817839469434671171245941511302953813200286373818812624531047999568633042073132593637637561284976826846576680105061889126296617975578703725999287009856857127381074380280142049797802371149946436075143684475966698523822115353998520354160754328183931427082298481994365755748028267677147290710189281837674847901565699905367864411408798610261411098285534506302790560074344967352661952786357689531184368334235142054970943111148490930101629777980105441885791358615921134199101785200774235674116191370084348655211610278513373453937412249324216430045909467063566981728087179728597299462584698469915846355798731830753818169718356365146141610521828497980551772952815420293674749970205104917071220513247277148526058857630599244407919762119426252813092411016680435487809064666032930779088510493285157401736417950986221773027680047318007016163514324191797524563403935848096839739195482562433625805756466552572658297647520641365322083510875230877839661505451035571015996118033361466229551878556950444505507600651451875492025431110147858811328013130396293897610583370325943812494059345168963439935381273092689105089906702301787026287737415925044785228808145786085171522515112953067660289137403232646626195156874999473569805531075678630820961569234404254077428010160446933695755459391982376433282557478655566816335248000025681667806721386680422570569429124854864690811705133636195219573556840236832566939450731466310627211611044439961799920787995861200460508672916665499915228367137732710491767964945811473446249275598361958129273044474575185580429724496627953596924018115564873905220970133958638072781886587987248197440401016361426151446027936806551267492863225495943834805832176158022655670158307141241710560007914503537712151668495053022065061769865508648542214672882048317396532404685791933299271224453568851571941684830203364258458401745163794094832679748467506977722500344394837611142099752402411597030702818304417381574794592853426623859866752857037156114661618329695011711239207602445215673620898746459727752702353534292825979783062723744516001795375317861802552819429075824058571770647812210016955843130670657660186687477621763349627569582108673249064506142660127266834740009514650127872567841085361185470336705147098694419355789759634798475425687634683372474459942816237949912322738455223044499361681815228689150856384461274400007819593901880608335845757807123879944846968255909652896577638861182572681289557804297281651759928130125225202130373484128112750423885624938981811446003275106290087936241658460519185887770014218687770239262840300056275895113459728562301439950004345803865277834922469719117417969713712762917456532061885010869632570417515738647429003269751990880786319757552859973878636301826336724456873172742820017008789477647212291662985436573657638292478365557048600469291225798121155958047571354483275422631073549485789483582922363853823293163842742461462114790664522458793677312742852831299115704733580656490392496024551717152318639236954776641650541181662677891872954252323378683529921850684244331526434652309180711950992707566633915331063365210858228832353505660232940493521564669415626165084534095838036633279248706569490060179610829980848369185932229837016430377771654559693400212522385796037914909040952963341223535430652565513372206461379185845017042666016985030668622863680032068736808173756764772944087106209035614090616904172648639375207550574745690461275600502208633416657677936598187829694413355055254466192595859007059664053730422398232190304212428751937390577680341813306766511254109194472489121136213713138889418075503018799295918574857237666559342210154542019575696147662776198055802995415190541064229439832130963659387533045331576244921461653330452968257261335250718705104788501205801940678966432902268338752275540020685318088255804148183570674905435570672331583896320517653097152258166825099534722671929615113982662832345566050084131985504891320095913360162768911959938564370345460485051929167517084612321646324954717975285426009119132937810852632292439737028122656883815175598725822045450868804340202803690462456202104115161982811198992486161059890450377014704928503860975763468044923414847605845245727718704482209982563762384881453923715655556844578012084178210151017039591419280032952518289935395246099558471647965958664249171543930761816387476776775779397967038891508212821239772159699931207616518165787639319581907780876999008303469471154855584788821316745522187666778212034497557286865932976089360091614749589284248281751020603055867522138914299984158073865062359869362329178110846242182944489563474579166646258454049703797815299488977931783521256398055481967797205198762427826201162995570775213285562050580804215532793054457273268079961316497540430659236840522334794637700961755106357747520491812975709506073371436178594145088451514446816038470549153770811030207650390379489234996151711060080770072999670792279779779098004740537613139097594508598036790733180864927215440510821374023784389655505632022023759649913502831027688618353040151828310220468087827445866451152052048157665344005972850412953207986111603062185320233839680628543891450747990794563119823867141026435598294775046338897143870677670138224899038861524974819810279094712353101516924785443568215743053529015558559345951947226059301185234311255149706464805156088777464516137482210266746744995433462439049084721933135709933124465361991141061519836045776186902114767679344138119864274272680256102052458509074323394011245755891611153793898475829816384860812031906192543738284737974695741256117986005953737190546317270713226881523317820282935864728598554188836903081056024147478618022159315882169738800879443143292196697754465670067292884404449129485803235662238490493343841950305222684707335604934219004471247566197881466408446756260871125179403685277238671526823772163438564012456851241192232104203964307891015942983528380391626629822579529045644899322047046156447595821269635138833981224088115959936039140776404946240828973628606645000045070082177602240846096998384455542537209752569193149312897047837876731989157663410204161835391669573958117488059110783025345566301251135321959139297690131963293477153703092943011228356829714002062417048045359680834374371788944409079930516728027232990535091304668113511818157976555844566870991198558370034789796735302781303530090466810435762090071405271784900852535547806804953924228673065795189108485194558177199654870354184805717061209955294404097495059038404232114661104529845807796165549341068826878415626678114351112703355839799226989765509266486657071031995737896741572155216522556091261544825562919781494883171956464374196922546985451580115483953057477311589568362906715197348977660606662816536994186240846889773944133351610093117212641079308908552904084770443346022086078028289404602219446401889021189534058084685859629385403462996869884660494820301043004486061200639762424170310531556358590834159996856304926489514076813149291647139633484757115033298592661451704901970368803830205175289381061021058411837598406002233109158642451371450380902439331552235070986888065685995528962408565654005450145142805663129076533226607606732841024181183629696597701325246846787945892439269050047409265184907766578398876254430067333820445254141581683087953297227131311200686429489393577819205880668526996393168504853504597716768828930448854412403943368360712466313443157199265528437722374010710677475376050343538945095660077662287333753299098044860165558256847945822758286396280557460763082190029355573978862271159834203439558588121525849308480347439756799036695220834016720715916862283169759367903348142736030773199282435889443771389506968920466822569138160825651108270210911136869564900452208529639564324906538217459976543420248084977000687856155317013704329079488585951754347914459449655708809841556026545036183514472780565722443344197768262232117086535767550797861577160276081016259123586932806781175640979762752888999288904566464449417801458018270253050713888095955737921656185325609650038698753721059497666752582852916492072723992976442368768535676422576744609353158030280833056477526359831465831445725322131330854892873043091130563236031190508816601692562934270059927169199274045425409547726143430563924289148220698480275876534822319105987024950776540883232351580054163681303680136421892465462584399473343811942754772666448790659741310326475471554698465359155423828137436333567086045220498642826000984471359101717832554796145357208357678258364453840754810009030406052061043947304978043535426677773356519182777855135236832622372707977302448175379383460536948737822059287668672569238921112448603959304069259743058870201651098286706182701792227242707234075877287354919532026433711316286078532027761989337008646687972204598498183032550368894715305659583657540894321560152515824477959519262606433207547049579210496894865037596750076887067835194442442399637814489336563403753081920499179836971689027401127748011046083093802328296902730482110260587267929062076989832136442452561694841631671236637265810739971423964975654041472211854739315912153196636652016518832526533083057449070704127379165026477630258255966985431149750831085629494840590469885717893900191695036092732015377039844225918423918465196648841886177749195254730512987227252552943378129504188008319984314103872418375722136224745805583333686986420874635930165379111667389425758733534181987489843526371834714443287335788971197807461722171924029437818517655984100585235518287816191564622968268848701015042882963650060165572639607957494526228033140955687136984867107870491408023285610071629755528592837981993236813507556912224420878176412447022335643474175844518475119441337650110045826848511908473803713097751104909097285449403471491943563882424115710409249455478514653711062869733085099354492138412280999588572050358498691728026307237798869654691081669771145168720165469139430296561827366448401878540793259545131898151134807990884469836305515515066398493118749754884724778098988957602416954464325892836013348863704614556112432333904862025719128212275589168958738441392919340359672487943237964919404192696006924026770636533542435336994693615501746875938373361798986613679077550399875401447655762050281095739309629712755784067843427115314252325903049168259279405980254840193861343891440578411568568246018297706851099348801321257386172305131057700256196316567987144028855456714277370584854228997534193451320340752644314875379513299423999024138095966159889337338434390198353820695870040604544301970212898452317327839817505000108078658859905349695524939756742476014076610425468208623495912468719486797305271153348681393565311964608061779703093713986609652410263416074865681177579894506701662657811795476629311928143883126557772283473964663079205817063748387765268277385639088392137529283215221288347421682446752870344728709550873828412250610053775422664830638567989562161815602077401774600213195442273051765774589557290266116472763608790245946382179288813714016112858693746956343737968595950953605645332379644385446549617861398692072307766701606553452375102129010146055921212026474632078775263234139128135411749070205970278823325860161444546098666243797774494962508656240617290007071668235419793000882487652508449652265685563023177388335773255850696722217181382807703690039389271943058373104810355672921240549062423289111513997318728323772003880525631094546836448931138541039550772724877195837897037645754438626107366073825075355286912202716578336877687817132991188006163754601964357244926243217806278729673231807133240909873687831862959339492203887281151135417490317394781359503503498223175741343692315876008334688878806008856622577958890058120264673933815851717362392436787444775480637391713391150789602472319918587409440366257852815352972850500362110972091050277735617546084068566519839277698422128418151316679251403058376087421729595668097930095373752670484901707304014239890820400785988513709750313349327868630363517960361494403936929479240892617812698104446553588158773926870320164448389732749912436937171220201861600452054294639534817161788367272037529921184540561155839474274856639049671366876045759692766447679678378114529643586097056698141402658638261732376646802712408646355359576035427878287802395305446169040371199614495807558612627533271095493705876024485772279745981432753961590038553447960694784624279131907780602732182568829663506598517904274419737086908869511434880756223502683401433735990304510082035763297902943485772935084279134760933588775035107020654990702777052219337204740208299349582086366805445407555201268491314690502153731121648739938425417550494477502043033746204993605110491245192483697615715350604458690857876623105345326830285158708767957229208281890199096878472727873851073485874518408171952417719605874344083239307764604125680322469265879899583210519098317119171168539575463420129472432387043972066918746537005251933808605153751282503214661157520814296345146532325266254374202666957432929138846886500740569166455440534708881756276075526173059555403145566867934376899534730335583288792837261764964929740270514312731835879902064976703426573575767245198761699933412346467592817974829483990414423322189159204146905680777314747697032426946755308957243176840474589753308955993848658046932605108648151891103176319845878478354844288180787531714112829637439118406361415809474026720384648396318220486253031286113383627110129655373654367203744116506757051128367135489171660753937645694073804323759507638946621678572411294914326191945870830687238459541812250149797131035594606620651204975051852091603121157639189529736946014275840215039043989653941559447239010318123463034974944809019309208287497809644016008822734488468556038364877895337034999782459040384496658298650278929928683693291640701055202783723103471422207810072833954028017995556215972234362862092787522162489663093735670136372213602344643998278065627250655940339567483639723486700308895246209910317320362874344366520897621991492149437152301864373332436499993366553409512597772414353337219743760706263714851292671015207054237466599117101803731942414725618624576103565941191081097491897781008632637168969092189912379972210833809739397947681103089909753306719432125166255478709630306204393660659002804715515130898277539705083961993043918267859011815386081651588512576916899052587920857044138893247884548216681133445797932638696804164661261720379964116733496439829752360448835921519960860366118086710285059534760194659907334868406338301834055616703104740446563286306655403117961407257922067782104274962271205472607293443668307752382076931246686257870340223403912764731115797997196448954834887323754211748885605733018097252718794106649668396216775468411086651415162111680638055434661138245549518329286005505359672811006519880567082146256302575725403902200311849941571531634256029257278325952980569032067672337918142135752891660130184927423287340230648024141263613950265087030230789524119725666870400905684969258813762243840600631046240124313895523760035526746807858543552738202677519235994191888136967896133563610006191705662902056241963636018982038947899349012045217232505262764947059764356033253750766871644068776713420475218320999702195833344244407585875959222376002707039861721057001276944803674264460398715733141489550765718582468401954660762871838864754082380460443235703557145332700078562664968579058419410969726202321730280809055772674818574564642033189936517174130378073037872228428495545841424138565762348267505190068942142219629829886750759438154319271319236844543289346102961145405433008263606288728973214795153817469899703202736348197395464577295012694175229173968691730652160539637542471268721236555331811525563149670260080751406472599357789402897853267489994879059905389290599781387758545700751585975250033907322965188326365793464121438709214328690842487797028817591538519360168182907018476781184493849013052954228784982406774189592365879598488220836524879769000796982433497420149068180086247958220613577887328711920806953865726701716023845906393684016613356227620889117123569753216603895797727427749181406801701653823642007464758148206043706202147152959844080199977486528041004563232234609783305550800793477379736572750664436536011128568183558028362769014504583695277838451817533847640254228527479288722859173385552015533533106007580936215757736980438340602838064611519169209864412534480042689812694948463931572203793251494570648186432042487088448271929667333695434176714016391028109794686042148263756988309575581562480180616519338609268037287993356975009184017168861056887970861194332317170117245648614084701049920190461484839931916362059891777700739879932461687932067307789647555081168330883922206149813559020276896824775304220668224736141782223536095152069561559765742744421752052272490382996742824776600016451173596945732881617444444223175556715712170844721741577560706919754813469092377372798154169373049709276727583733533650004717581675306068687511009804899104121696962010428045136248749849319018397710321320952849934644923986205900622628846105765056854494029960036217953422913197540085749835132940345306108456048639557118480696394880374566576504147956458004798161061479719138961928488813791744075902814334432337173405928021230341966972049468860954932234160386724910374122648459762090098863926653894876771759997687186194985096299848506623780588183721983185221868334289917179242100103961942206597649509457588521101918996358050562818347901326134019248716004453279738375932617740629202918924367271322976673932687594919855330949269789419410914394619485593783081414173731247690294777190549160820444382432135930592661706354237809471721375111662695583644286984362702277023627178072565598373723662328176944375271007754406690551282896746512975022916217176070434696036199614307280385122164057290882682950919968183988419808884714746166471028322370790917566383044853592168213750895705008797529987855449118200788734948850567131804513887228987941931264475495262306301064777493896759179473193695851397245147160183478076547507507505251931032700531329530769227827569789288317071962223713868737442802051474904839763747064484519372950909578254551457812237135614021057810875436076090833026923897088930933068620351380532639987008147403355713280309822199321427363506131126401926119412695555093432374228245497050080388333953451179818128869688732823480173229611705341653354986891160740164781273507532924856565600136679199761580637473559657849526910506380315816327269483854830236296983914720779308020466523570687731717213618403974710024823924947613041121931051540431594626294570329236513911768777531755645394187484028734136275810837975180993496284643668207647558332915459726089005436996066590929699055916688229268705143153152130829505380547221350261789227165617484051594405420364238412842469281985198019883229145019692170506958966216200799023932667090704384919759245271674511194313486441609759585872830588547995503069293232783599002995863977403154107919523909120459466460630481312339958752523489239139700860640849916680794777312000922597845121484628370037975573175026123379072440147793560737043170881210385166361712845385536572776559938835975072286411107599343453658965162723258752682845142822096962551931153860954680409795559369535780968667979632010007466088683275973496612295878763940347108655302288879069242081485469569994883648603035427355040210835680180106110745300277303077888259760247091864359482619909834931092426706390422554857888434971157021069305920327397319677226492219578645874167987241059057034587726339401133153876739477071980728675815503422443233308248316325971138679858467895569995365162903024563003162635063952237631312131841601235594915581167493299225037911861883971415105711784892219542258222301640431574923375276660373780419444339506687782912981426103582622157474128328917521895747736564288201803739143138427984445942540872259823165548307029834452182290413459381563097021383595892008574609783097174575109726638123792623721064617056673124855034553790176764830030144443861122691961192094361275400839942828392505295547071934780540923868142466265019699322823874033059493942986690357422600386849792668178107332440755784150400018696477900542428683295170987297202411571022545371198827341187699818399396936946863211836472721143297360899832298450089982810099575937884115557349039477463625051873343758673318019205789286495119484433997045227060946252095517128421707884998352264621176408819322626802086106994150266210397709826180076876586651415751396884693307866238495082490018382337282193642175544189023458787371223534040641137884416569760550459041671263178581895046139270632707639997796752860208467105099061146820442388964721602424861894651429802977582166076526124551601992731069862154779369760357719880451264783396637550943519146159368418700228362126906845562636009913654646110036102380353332359619965263224780658621483058555866995421106470706968626201442378611791349162448154253653025637653489836977880154016425333049071873197127031131988559442354155251238758120862004783184612335827398746734661029956157609160255509805775552948580098434708358559760206574200243984796729107957877187784001663632016321184321353951247555732431005516298802537515944202434751741719750399090080189262807150965386141281561975199569340930507461437519473122301789078402750509206703552930920933394159389714899613053538149102144549829348777106443340114694900786548236858686196213734781592298854253557121121590440888890427314840626916822376127145570673277041093895672887532448292776614773498011706360866342940375468188427804569924072559436831340307851178979489077059325345107596660583213640779421495875635302843909589902758718881902193082163607581914789401673911683310506419636370141233850133238310993841867402061770866217124977238977058025515619615562331126740677439585153577902696735878696022180940947493086590497479743967106319798140214812717744995431362214650387293439952817418284379011706889724732236184531460694240334788331860008750527808144137290845878623184534643958102120825459576331533516744850210860514976433555236208393706599071964492886400729813428104169512545003444461273653431449061789373182372768169405624437591038655681459018785114084540287905851764336019729346440594273715941731375159191041333145578940285086392006130320008923525265626221907345237268916316297956796085005158517942087999511821333169675843167071564073663475703272907447876125089112052067106081132871212727355306428086046442755754500762631372963102344654116665496779727630815197990968601201950675120511635342740993256128229421549366176210572036964650377131469142981093826859143385170608576108668319736560178540492338990702598437292143687956262740017815145379593266286397855489618854811942192058056112007747192927315053650115719437659794448651187153847954198951516795906511616150250181848606084078725888978404645661121145578007551771970528766076661761424161610003238428397195317208959448653323271935297914949080785586203220937242580574213936072606189236803889698428269382440128138470900768532277037485445706886434047870583401557774787344472722495484493952087701003485469944591813426706610042740974586546008573031192610608197926191318643337892970200842689111416666428110310385081253658182269459012528855696049302195695364738636213711745595649019773181516552423594663906401186392570363580133602620243275979692337581110741769554706181552936503313304981275450392467107472037412825142756006417887961122823913990255491518460031245536038242119667876246554382548348189361262835299978647344192523344619536942976352538241001031979921872409700694023963026511397832988426900048501280457801885704013492359444547169062653086396802846797449810582209900782108959658793202759012701414983590277005791260318556056239467152288656988309957550959276526397468480826390625734031826581595403768993105590394613588817060152644636712800785643173004150931693336625997343409338042374117258997538102237363923374403323398750722336028448250882716131749844187307401543025191240636887777998900267906957825397112991677706121382833403906716804704947259570712324066514158707590626471038158253498323336322157837101379411442810712776104852392395608752110340070995453605695144467114361269835734183839969740204573838567864041723451565230043738532178847160334597969742409735927394584090204119590322344462463442079478356410794430721458049022405905133870156259136003108950458988715853299752152568662415948145447736199437564916543851066861908649399689216744702239036865763714938014203023186410597973824782876753786164708989510567268691046615811032194079176424804053365975612434829432433578355969390657990793152818586714330377061642934801473114617024632787081569072599054579367060988360272928140606918404610294252198070278725033973838188841692386967237483465602983388469062627442854082039585543709532943404863593400511122288158446795060165451752577467586658622573666263366608996140500431910950489438785664196095010194604149320101984514251830324765646271029612837498807336600593071080318936712808826441044872006216571252160794138993601814960451863209521913206413962262140100097336764199519617047323362374419952926580832127711066649491954383426766909983793346935385842041740700333418596954919835468479910655236838023410605210869446967867460694364552359385838286200858007569060168623958476820973978099740271989209135952088979375348950357623686783642582443253721237545164349940789402923062178208941032407881978238316440665033463857745440213288212132234217109701446677928033318091021610329303227288106965866702120351000601623481965139319312483317178653419588444156712274972983145287689162306719157356778922304283425493138607551833127309020451306006178608939830262841937617093861743208838661418469550824112843713841195662703137319315339228504690086623063227070658115708461481705798448912836143145054660323358187159848272560847868288250478660577932782995670388619673425579719015476151515749601755831193144944519172927128606483689827825947359254201819851854678716817190665740826221644003716663000158399625308622555920002216278497514083879094068571617181647586676500643295614472023291949228219541696928411547036945442142024260180671096484076795072596147781886567956663763687287135581076191041158363202555419432412265605815954759089327879907867872850860292575989506713054733971063891730513058423459970962429603745792920864317584482532532047123966254706667356019961324267129007379823494295318481154945490409545417360301215076918998969993511031413469254113838624497889968916393421158429715836688823660810200589103896575466921647574640073636683187630843400188574105017066501752046087413134856324291141879958644989559912557321465391507885611703262493260730184039822974228825364040740172726331311175138506933904759781623934601935187463089078982821529290791517066265676971232268988890843037135180843160209015077023721914100414445113527056232135508638967769843750726888010669289784345727152540216446407747198484420101775065633884917819507056451405802055433391570026091752623409156416923082795225671623077722265487856273244027668035956177602046277421316936680560591847461691879992819251538356293783746716466979657705327558374828041359213920185310088868929540388313185196703794057787877133255462747303738115420344909577418186054122414888474045121783597583918873988688865122074292897037445001765573877940801585703699635546847302953331704652689395841851527258008348371291282475763057169636856708281061392418988376237763679939884789082797482777353526539867869876319023978018316211134042791862087988272712478522626058952197858686495752104102446701219009867449338264317836657328740794978834173910453438848386335623704705064688830073535323121068298654616897764732352138197883178777822029768955729195025487495530976394377511347938987974569017901416008383419168781027577154356114554363902904371035529031302622061228411539261375237435427013811593327993796305733617824769479174528552464780047254824185798538177045664181636417298467444721378771150081365075669829132236979038618096038757060584906207904077030017057181618664478317928274743963178155921642605457502927190476857401693889130188079590151931374341779835241693716423123891822228037934769236736091654373296684990960375334564601911112583401579491455983929948854555716129547388546772300731151127800935782542823948100617928421963617431984193315372237149540403997684203457761830481326815943746512470713463631639915308905264940130052380340837206206028023341042778849175304851709504215111382925522023113517703912567740287783991189290856739722565690686914227575912551491355193004320612785674931753091853904941326541267895380045355422497803775946945118852476984105732481576132215380209113964916245440302675326436941985419364591454550536562980689163575522986091392518588758487211911398257100154371547606029284323139533935328372585265929435025781069131564861874016654983332889547829370941183880365290340314272626489713139793282475558220499554346670642330063114797691658410586219954569873477302913826022129310815414163985029704722908830408484165243778299798148185825363620799763597326698704531192342527359779058648138923773369351769293289564457054071512741735877437789250433308273618573371195347896759418996519240978708189726481864525221536230844655462408161884716458879963675000944570346392958511033330119876141138817084346090878404597049774310888410816087890389591496272777660110973321623133213999793991628131074366938673975908887514371219168698332187240017161507536804423668154267786534121450283502157068869181662258767024217435513962510428693580165550323768585132147191232370160779744269334703503431550053873270307990501515384281953445856520965859552319249198712213554523817174710565626991462624236489419247519064486977386741347220003204199483282495532571519446066806622447464195546550362504279241671721544130520218284018406562919711130871819139206345608809110933058845539172193603880175545111907510485266147926005233005549349358532579603541135329989120105388397748931403673709262382256468425255693883366015327753160448038160420771820353905777104851569778963148066845656448047721851828585058634009170304471036268706652858008713160760209651226340714570688788666004426986578806942636911461685006726253297552959391745804414441156675311877814202100450451640129447738494503458093043536042006286987720373395893929302170613191981041181196784156854474731344852780962924614080926149587189935852711939558890451346706402602686077691033920010583049298013249231493114074012510017803026920525283981649515797238450732156252693578447233370011732831323830672799161274163320238268192989032687472467615726289777847586299643161383567056122935955019196884589684521243754831398002846776744477619183550959213877666078642705734325249144178977621276539818492931543905891281452409861208455156526168238968127255992515785765631726909848665387571782711696413862422462459784879574810986616680757985055332003464604669281740379312149988911164193397168227917398007873566289219837452990565918252698183858757556296992042182950812507424118554519272641990035306657466548074698918925729093998276114776564238255162523753789650802962478572138271767741401460857832169121046670905615945900730074496715549152448377584641545293676301036628419778818585657060865257751264767871232642418454263533872327787681865060980599477191844953079748203311761365763018468129446282201747357467031343181877633394145200679679221088526123528423621039178015749891515487364053326012041476107763851174911555343148046441150035981942978352735634746783104558045119665097631275929567885387520055194614908790673732052387524019680076938075846874632640341547462583149226212014222301150511312085484694682452136161189271817298980888226392860996479446156386231698792491506907152291192656247645186460477195972688564839134843284337102553752035047788175507903892819177874030196877905221986985291794775430815971452455149528343120722382040256641077585900014731013736201633837077076226817397660594628626106581134635843136030841079142804273785614442800384277180616291531884322958104903064235165923455947451832281661585835048748804269568144547660044880510881614106787673639537297299286421559113771660819840241453978238504008964740015600361028171666820792094858442343831634074338539344844053245309983771243791632941018414903395299723357387405435903292663938129561965679934998594164433202046197325872147904368911089964140848381431100072149784871627498475961006431114032143303870325679264454291712151279369560182064573309125660081653491901555274101562347651583292485086445488296670220105752012545794534334670059780303551931872957918118909253325169539983550875813843729565172645365096692767095567293743030765493389678550880327411701327651143651240098785376942356231251523999716010905484994686527751432890274236081085647720802445735378278981425753238722458908616291556826828708714053724853788083814932535226483969985365770406370161547986113486043529455267207819234001081833310697988190286026623519160736745534517347566200690926711790561900117937176272459987276831110562704565501256181022348509256821065321940118760936066558966315158023098848282076879988648616974338646049215857312750671565795130093001337518855139849838439569512184639066495495495012288187901018613312179286038774218963857501210521702956448745801922757374321041462011631079394668563843866962169671128508342570930580575438371065258281156937710449604006424280172337548603269526678443868646800088131910467895169705148184013079042291204933763387150124139751090328784140376065038838396910623076203214996084339315606622005094019722248366776490468018656401089667207085993491996030238073318270661028505164794744593827289323747561200516975161792614545576758459926231950906155239209474268420886624927224911385183033309782152013873660752321843954977983111121257557275795886314885755541472434930521972823992358377319146621299329908568773903739906972556988429034058861933131287346132323265937003278109725310451667982504907568496168434481545409975443835086431072184245031675476638271279038720634465006854198512630830215366779726869253412987324503135526930062595643112611865053207417404721630336979830272370841185274205463925399364388396661627761366746358037930930818129560463176270367941947363212915598535338323392557702227256445464265335201044443253591141911928883634463181771081994079008417259631458443250546157895265604483446105436018792561450077408989735711161900205951016348546405110849888008074081724429378852868256774318716459595708655584461324832546359679873012601192896658923220335631917275203152125022138473249512743514030389533886974757157631646004204315122723687239860288253655477094905022143123517790596589145159643229357097492402439709667053030128770240160936439954125327693758674964347531592336815155641261951690046435713224722157465909351223100483441346685353279476589901622673182972085720331157429070740802147481208320614299656620811296108681927435689013710798048447874066246079375115529855815115255710798949485911325023705456474091742187757351781927017963314355825194648398986964834143260010588143782568709026104806808086151601154401256362687753443654800578525578087396938996238112631182043093995544129251172497618455612254897015209982585728690944499955269091707323722314068780272554082250821139019023245348213805369146676077223320448738395247077805287842687502593228190068388516286213378300279192366607684529154288038620271716582967834753434755884932235389865707693412285894432142627860428830416938878818107238755776811681285059841194700726851366235139584626564358758303607634302118761955756219903805088789094862756378776626435657961205494878775184387442426289224260958955688136199329211079565588166412158571043008811679054452539094039694780949761875638962967132331973846467375573557401493634287174293838187765071889302001117107781229624308104059880683311551555908961779394784271068335460454898711798450080311408347498424235218583366714519843686600584852106073468986868129061862780476896865450800868112721007100931600723587926960968058232333272548678901359934731432681530178406879496800554115283653616243313388124953751919530305752168648316086617974985259849738995433416776086446103050660848336192493490882839275317524401286766313987967224886081526685182031864488361221627953357735524819607310718090810637483906706913405412143073228982707276168173704588747873821811142950247661605965996165188788372913459566160019527570145945270276890066601765268034170911076042042931969011510285244459690354250558213384988483872787771339432320234258572018392482214142591094036532592386776153254747356222423948871118994018239505621004206266060188880123886854102928282811929427212238419659399652620052272021580344104421428357182023931822387244917616966087865786037419758384124169476862833130367100694590999751236555138713634994525657253704585474326007264465716331603166333897805590822291547255841035127783169892811199461707101748424045967961940054157685805956398623233976272337185596172998987921687513163865160146078613367584618076602089944597916553602622676141317749874628609233143829670032524817057590840051554399866411750340065147173700679628970289157452698362381438497156773184724397568432020577826504652191197079895942220393848892651147879212848171624865030288724996456553665920753689426912431178313173190580886139964785764997807898589569204077993959065405217059654264318654377230215586030525783515249016697365374551950477654064932251677043271401442136635911746913896690630252346756367242075966164061097114548655819971219457298020235624786684182800143747716137182224846832486946810559706425146577804566118154944991621102059445885812007002639248781528243547719456760917061107498594101959422983267255018396837974050817189431532680630720412415067704615255908806099013239909298985696881703129731322123831141057348556773987128974904353089364819747160744617808225817119329445988526281946115666689922137956459316862161500929660325234670881794234382858399787800634469029882089425010948136562660248718950090277181971891659718563598089102772474605118766147387132105578943984948128431247158047041335768015607005494238882267690296646943656083838169161660637186887765254148312667181846018405386251074820780579993870710581867083610785786279077356401248810556508529669810463450210619939522918443069724703179124825769058284482802289356368035926487829034909245106190883630061877407079628174595002008967102248674336516271793618311724122991749387617184938422725753795408322494713861529164347932656504214287375360971424553830617633623398443646951882940710631640396641625824721989445884610307680992460661073508880287858286506495958102519310632793271451112373103826435273660759368457708006565322844510106716308705684692075729996962115528409285837463350572114402588815190838943350570566722777822252473092438751621739295466493692254630021879492475696913470564614686530632788007869995342334958517948597235166588573318126161809593287382851560133652005866586123783358348074285536717346480064041835876369599719246116133763602817621299644589698230884067056660724171334715004187100217228397574423603472749098814711906198928382680916411568001504500776803149509483924617795609190537676277017597415882071182791252863992169241911717999289792697350320882209315442629465548301335511596626657529065826529537992440837635852318500216790396733032869956480838142292847127414263526811949381431443932670434660375363628143620875991029627452460977387299695991958217849118561711640346323937656645593141335869370480372067337939813361873075446854014565308691603489235241643310588298021369544081242762785117075604972918287658861303589650206379715249131991942698137281328568556750694446094465937597934883824148877452523854353275134640462371500420504233954837332417107291084776620816886207387898128740801600490946868013335839023994526586705076764905029381321090955229917022540242007302443457553278704696426679672947329024077998911923348060380675878366626084149564481676147989556895045840926295777487840514677918220579021068954164905920746151549776543465513238848197761053426045939890535278550238223580907145716816631137833264654301670502516456193452507710451885532032415497685254898659254930133026582348838891295359615687233320956300140983294779000330291538107553187961802304800691894610156253170931169364938300477531290953606655268395601429509558728998584968114241509164103659876387815556782924427237915628624474673900916412758665353186171720336000174800306088725889912246354672698389221443382259950888842097220721264282312969034868127315786002577277679735882668757020742488807210778960030910484950179516960106656848010777912663357363680022050251458359452333009637037688452080739590544766287922208347441536818236341601608728792774543596396035913096241045315307657852170402151595932863407347140003505471301189074172538602877025323901129038095289117488499290947345830199140410876635386586342754739340508878285443056248879903859225732994491636049397224519015110978536116166745472391295458553072882734499735874736331104201369889765634101109454154140302524180665081965249492258547951271031443190972843996079712223969911064734043760147120551014897364613532067164224932303913483577001517503360715786214268561723194789276375609287110189246081899794274569675585805299576341900654930881221871535131291768366262952882598742382453272265818943482203158768808184075915165898436704815583869469048119228823896865267729499415392691699130813935104947696518511396941112040766067698689874790579523364914907913711961701698125991343114214173784277310474232643179840328378672475004875921736806989005294749611603023391078142901964035024090262453656278415818650831951478391819005090384746843352626967067201583188341133599258951802971338911653422292565646412342362601690956528257738553180644823248821331229729324432801194118154338069730979451674432617938479413558218595634318400121681225859274230073666024606513861116317948738345806145490580964356093857075569130481382980947803575062355831309823198332478221527171173907523212301170441928024738999161852070507763990945967265332214661332993914205860833322942265624967669534900096160248283433178115035769683526001658856598840705966494563616751239471068362109851563935333148234746349801935960067567017714286776139307530612434989040624431066722505162719362578646649132142109477283741616361864359413868378370621860709875123873117940149315890533621088067848892992327227250573015412145220984822602208875420989525488781212719295024908680386272237284772192508733459716168039488614314126171019253886036759054311997971634099965442886634995159448460826431721228992375706604545462147596159278427520106531940653021252043188992797693840905349747568129130048886214588530250699213159685049552003066832431790803487978638731044460970622426825570650524184966999030144095244457181874943495822229124594179791531881314583704379164798334680010377375210491462908977217544553223143714262480416677278401393834815382843235316992918981028906232088346839471995307565231569829397379581040833773547232561777752947802308260987571892154954862013427414293456254555894626988664134588250009792370976265731042403070148010760261923938353985400435449832956561241083110054221968095615775711688461746265392586222850798957810287885024289071144749132229547333602390193852934619360175415126210140735150465229382785726971785937375318992945880467538725626164217405523922995469337781588049224335554841502821628900050135630029767388121665927367496568388393662423245346384638538264446799000831944562122956766203524908191357264805605810676451347565971407674063497856023943863164297201059211313061042917714991448264443803760574212608287128825215085745495155877713260844977377586642888404662772529436712918754480508344592967466055393946999033522551646261506578814177244189139295539517792334254713700709795045777857000326887437467725697968312973382315489327810595394858489647912437553932516659684002148864776080185450648745327699949032064826785826076156246126242140612728080793205220897192359624659098614894837996327241419452105813819241034841187748640216689031281253225431766965643257221729295129504620075899674017907306432563569802695281358107598355901304220919105521264111376810306395907644380171959530728816817811971424566074780407834989752992148282969039201399856673422664057841522727108210372317993728858359012796935857113817091296160595391956961596479174954205557152404994250016968081098129423753964780434447927306632197052873409494378949037745043192249757672836717080690216071907593428962051680550295423085908950450625083060986622954657335336690403630500975378619849160164359800437055933270946091834688991266256139477908919957598621799891180233919860367945959643150931944882701520186601422667066565665636572933717844238834576290421659469828711661380793752644089326208247652347070976705555337730023066823549973713526553085185623276644952675300052812990552171160822477040206553171199679704352430304314008056557894545398665410713065657813564719575951468040967221388134298811909181389437205413628073486033131259748792767773234168102126428225301214689462356767823954141703296573332395681621455662130896788656438638705647395854126252181436027735697306481646904909814160434514657756248621983885300085783261837447607873737390222724571114616427907953040996442336796267721190641257886548126236215216780633691279489197141347027119764124575770266313428569050140799231655136505701299549248472472065303424244479105696653443025610827664150790892183880386408790619581779594992844642742358924637091827207966135706568554856022863516689422140309001285548988504937719950770398737347598722759755708388192757321187641400645167492116167018371021775251102811749257368545205767795563059184361707232935608215772173354618849909653891608996711538237089687015503008755284549862099423061354529902035905853584570143705398504425504167853984368532295841838163334423378051665835390567738919543236831367795627347311402936199992402099478210329088734934036366248808965761850043659043850196162181001239454156442447098953105429149910715128955763057651941417148224893518351690927332656866775854545310509563467150995886421743443681412361188321024225868829118449226250976751448055380072282590826888845729446958618202602376900639090217715942831794251118728963030117553044959737424730964888382376778508443903557769380132174709327790578384352996708660994506705965561135385257356017739167238982441993429885096155154098651095403762078049871740215586996049076210052975249541400690012483781554209059411998383204144019836638523043544278630267552968739124533397554488451168372295047423628142098004733165059878858382539846273046141390502398644528597097982278566692063937313815663510703617600097561815000818523644664514455066269517873340718541471282930363004619959017748918294347533527373346888029180202016614084598476147360390976054586696658419698082659039373071744473648765120120293755711678672291992313810163559427223721017189747685749201460309040936097358464001326769397696871811104860174583181093471745234979579648532998057135062585804674338170016465390034335631888991862055453249359467637268046128306507643413518391892553414566646734872351035655306626097944856221946861710188177319885474859836936429366644908770644941373232731659900748710845748411854393440880268604920181347650166041359867528334047090070030361115445351424139139344446786569147804726997177644399339900529608603245776373779439645252688998574945791614982012052364705966422734618633427745011942543166019839439907099338442661750734907447285487640523567255164878221277687120683895345438565301633988852525801762339570800428517685670642001833418484305008811489821517016183348132087917645593270357881506496071033401676031872111859617757725067210732818513244580353513432996912883456132818166217986741885379127681157023902299907090131205684228056236573536785195738655222289820980746033144386059204478348771852726715405626374030684213155223817240022738883008202716786511144557890493426220129833461399365178364754730895157119623176261422610826294262396451114812283660091950241725091681432257696353235404333229850595538912772149915548258347876894395034632118590872440676558531844537121103348202250649074846912825508944123895977391122073986003055325297848619465561957351490784246302064393581834135274177373572681116294225742916366533455480837616312541054278799036022744566460036410510544747398224950554529933419151053133000372498282339346135305550657075199104822131016873200218149381946738372906656379475603441652979516146046287934047640638558988194850370011803053846691290526415656096310399800746504144655133934946137406750044818728824084875237153451256227011725091306167119608137825338966101978848897201856893719953285498296112990855255413217997688691550967463242502265364804131074922480972951278189476964862749412173404048486476017042868594713126186273825662085576245015742667517763396107536003773047016341410076517491365744494112785924356585260132264298427782892379908986590526498995969643337735229814936117007615576798853280772304263834758073888215480807173710894248825470665991406269052858869230356230762148806759115805437193979870115398000592062898446992019694911904573308091219321349761667465911689344757766318546162923120217284532667987898261147407883926200678847244524401185982812068592447094451333508965406806108257341552893878675838703090330270319304512507358430414658620514497198295674377906139194332253575004756820458876209248640724064499397071679679551842453505718360793999966434900247786486624035479606130478110762862619021277624243118501150571698550659839812620545856419697825616330136731547676262969431703281152372416063616219376575405136372618048150134042522545228444955060627255166089842700900303143731570435902118496100074440242841550375919100299887498783839335992321388621046207742921479415975713462285306816308148189807067390482707472824188113468803802326192007113690161063273595060561799062688198852617238327442728657161466312561634329773085562733800433550339373048901118470734351908867868562185656706382542716747812604698652452920125251374132755842060746112707914847659482103140854311231589388225976583114546419444143301074594675703877004451383714068656970953772926424249379092100422145470584267608602802941931937928364926020772914909932613360912907682965213808692340809969597166945192355861867832575595727918922862999996395210956587500005394724383163894210691720545799379884606367490026784259453835182659891919674180967231186844747251329772955246677363772292493264431243267103449828153428106480952900510847499780104894781492300100425841358578347521399995195906947830616644390076688709084664473718943212735262518901438188067450596875307674201470862180180144613057816355254319179551376589908043299206177238008209775193802678191102613416462332539935390901951240063469770737740815821696125531755244804260513425858301558580506658599593379502079933669019807605846756505382836072903204295621377730692796818675683673521413692456327932586242493188488751612113628917582672158179266423108383933058390808895766626002324734493581744501503142568180606202193680912375280812907177646847206055996368666521017105109842698090287046700643558717640197577348924997187832652527688681447609140213340213584261569281844190586401385001160903646219515400944807001187205724390661649087891183801054843621435848146443026723633973477986323798433932045126746489479287734011694755992394200789016548729908646925985667095371225325892501534578677336656208020980725810525790146282960286363209234626706327083584307305276392892321584253418006607756206258090171181411925652507003171672896176455227766777917322707241054042258759329894733197172221180642177299483453346577167390624632251222907061610795210948623758009268777554367371380209227942820045449367220964492052719001442905349396702953448087454353128782055114666910611791166432658329783470169052790297075667245654499381452745782146603245794019599042871024640118946559966052130046597522820281605878832714149939893818577216740677907276089189746260133434913237090724706683538158569030104264380252182861435168704464974299187954920025899213079851108135192802642088994258987679064114074868778738545890701355062134035743301048080961249149190270269171123677178252611304839128549150065263495637378135644980938650809426788414006940100739366575268700113989644026210456886539043185062025558295110480735269598057498879268807006032183121658067616211446328605492467793714931863160512671146719514898427277397492635850191385742045324353874506672476261216879390472784351612286417492968618609666503002854787475962857920302455281009222844919431730018098544194696979263767832350123596911041219454422288058654472630059478219800733708687151950079142593359575556499843171655320394968750849078727037422212210171044358114654170535180638371462593657653789269897436578972516670129205327101548201148170130546841951237854437213459132840787941914057585428638924547116504751131412247501028802977713888693538705630257834543356363269698576465731526345542396951845958552833837678127943508032967388460640612070954846411496619080901488442272598188326914143776361343005827693359250953628852213677196551617089611643488521942947621962445577054721309968489234770565826636518934494322668620404349910381915576400082005332337953689206527434672728618418842258642573133508289714547501636910075248576383786083588425531359996741206014756547674144308188189180766916927936754820842993630927188495174073176460467211492047907162350664952332334283535364884585627908646641250942797371411669055493415730624210849160258821433104766924630190861492687471561852388453894303577471889282280535449251325678842748598418880204548347627251462998907339082039132612278036883281146473165184960238570814324934063176922508804837910687402509228894268352131585816379786161267889859345275665575840870300822499789372015423290592287136972977000835808127377331865718408201173076713745024389152132621865678130228323404549691596750510281517169746745198108435274308834690993053158800526062709449917074485166322257130516907005236826925437028125213127015915020047959348820112052912349503748309250005601560970360695129215321732653425235698791053934489437260563932157030679792841882485395498662676950396487975166805354138207982009140128326980160951002001333793169411227289248994777607959675185085822665082602720908707660359305801832168922527919025424352099081005875358166002267216846020947295413230322283139778388065344882711097276667935174549287047954033242394032712922195728720385314305788745266521426190882103193347639486629189060715191871454601970782027992937038245012046935469113039781987356301142045563193448915778741287122056058216775486951000977565513841152303652740574169927780993205148143348793345670539765082161891231671623012176289532920995843450073724656412295585645812751887367278545802762043445956901808323490734090419650435107721131007426089847813159784984526294406025601129123682959936241944239849242417256926628009147402929030635522882568431833465071248893234869044320502885661728216904695124156227842347846419603339206797790638868576841983117430002765540510707984051891176328195978605916225851134727074003335551609530564003196580346252762506557367852612713343656981528924523392551091217889191033563544238177039314643936437088733570827399740420817248793696980734544204309555977306929143884232354608609320017658223365502603500162784276482359976208083121757158418764706266806837664230001506373027991857938560364008017168550723223974886648631066457713015405090374517634325621141091503284057470665240155941631450419831024157606241840972407617173916331174031279980499981381431675079739524859083876862999033599978674897965132244686272070559660613684615672649859117575323400675006454755811224605086228722168162124120695753249812251085570735821278385874837898482354660739057183075694080918252113977537164667014282495553586386052416258521906722942836828793328242061210404205428911840053699583988670949426545943740756310355760823525794961825426575589312972371267527815715505413005164952038972651141272632320976462439714897520363911084619528885010591812386231983088252478067544293221372246153376238767119931929320819331775627491472170730563635597558166001734063343151129457428443605423392411733958442109163361075470115759056517108209738454490564097570999342534219871640828849625412573383550676572525529489188612178880907842542253591279269242727597607223776064018787670389743465915023286923802455195954714157382266388923562220228625863645650807368925324128814984737332676334820659115889933573258167767452583960851132092127180879595101525156486640278752969128983172876890743636778348849994544075774584178602015697849854208186734229926411713376639536819480872553473589039042091592541047236896898180821046075452380399187450858738373659146059138782983063110227665571905633690938204399826981859144899878418922696762265313896673760624874859929610878223816472519828936333855642016801781382015045085941531526173420283260267896413154911836564010335655877195771262278008152303565048392764545842497064759322653580041642180897458488273865921271930743548844158251254548734613341523287314956821964835521736613866512450723970560871940213981169464491014082800164726878400205274292483669509787763044956410176865542117492421127967896508888638037646442782991270363404153666867547308099926498822573694530518150655430743455850301277933471310059312741845196854495255063515082267050517307645163256716771754838320120162727841845567334664846105360610794047443107151570337354806540299719972598263782262052613306615073941495522336193677402090356267697732161834912922630868712080865911555895645354946136885146699361372752493758405089176097172607298607828096607177851012939253464855289993943926898895293295424793991240995216889423263584826295714029679069082700846419054384271493429108452938573149709958824183060924380108391627813064029931492983955688096169547989880885216247643759783611565513240417118820023298187305801788756541459168516597464279734305676541323364917718050817530064111980184609371332534276170659022255861556510395763272576927066025714679866342847608780555968114884139192394790368612702495161856529428660347076055965813051462862882323071158500403444384090107336468016850477328760320826809752220824661765720276826013984163106311726852614873256795694160368100786069411802177627443952140371147035431156091250167785271678715488359196701224425047843327578665179907588522018152538146440826212474553875023790582264767328350232113906588294070809984533607050858069189791952453649725019605200074531370566448408477161388888496272900404932395806876987280397692899358936932677853747703920134260313120589695190266067443144368939809063955198273424692079470944290189300930362252400976553463259445120585065049550618154945403599273217193729657049306720012288677482950731043994282196181467347411193492271752923469969508726861572649025218995855067470360758032422043938454718664446870604887566686608871961852242894426034402733462538853793875878616161387671821177338068561422513839470160330628475955435831335918082753002693324222714789263881135208250735669825232885376211838957121169551387883662594594094462601409232995714195489438677488803512484260745646853203404976435247782335544680045175783274849072126321918292892425684457109252251594769176704979985754458738257185003456351360509517662744538890140951233897084309464994900531495652111116979977591874920215898852136968928600808185797940904033858756933850873110467135022982186662334394216188455138884827372190102464760082991444126857746156352209673107587976443074677286306255377347281185916095308040415122555730547647919083672701058422653900210272230076145305308065279074618149598000740774297259302791845412388167885579321895805388874063461801929416991552564256242025213177064807722055333697967179294068906533559632388966778106540293727908055868105070547647681048830397313036428914437371418891403026947459962716728669318820976507125871002491133097222082896455241473067947000176820222653143101298344214508721794191279047325883897389942188025913374472009430243349295735417579147456656011443385902773006247946561278693205010632933993836247436135476297551953527966486567117011385184283867443189696950974991450048536919962933077156482293839352386596618817503102291140231733990525826608755851437347149762118294520524261761617489994849501638848362102254278398880759097276658865617491915099275588977926938710099452719115461450395924965666093457509670053203612232782538549208860180968106669048525418750850652810794917116837719012193032715166263164504791839120443678780709480613991230707532187788584920397713357369294857821967198859698872577689516278802026668884924858610110721965762512919101947324305096503314438856573821120802009819059298338751935664068823253149144023027493228971394815207290058119080283036884368002352169514324455620127988529577663289975613834730528115703605927698558407729737686532430471788000621268906068506543570852821348501566903481329284590482395323533326663283084032984388385165081862795539450226043317398784272725742643668101207681425875525156845092407213104764958759342367137593154427479066864506177368942057623306669914920133092290151260345909818257045756453099663211191953260154462880231490619172497350988952342529355897456115409621312986630376952776038493034242757700577274537357029984523328976908540002024466950913961952001173521220247769836440455281177369863096889112839217117496724188894586310980692822910914803581331955642502795868496678385535311133314786315328776729246822290512748566426546967064304838835341867780347814085771402104645113144333721688597770478433941112408548799571899943852036787637615473262893157746194905729034559466528279381039639849634236558120871297392195059617685090935939340008675328010481466587668626612821954503227010658151090083086892256654958908397544841664822647180348423408982225537163890363900262463735941793597813078796726662327386354759468785536421899186527981313858562025757083571131908341154097951971595152466123325394169956049412382020523246437661420595590270442283788795674770658796772861008401542187235111439072272026224452676641280519668811903628968154078501014028396490162085605056532124232818077493163120380553801023251416623281548401882955296021994110541654713907617282944029864450025736914408093930375085693253407300506775497027703081047042744845401011970743711373366511048873730104018752971763497975201618108590018574042968128069332990585987874834209139245063517504704320363436735699231693493948087750794725954995716181384297549066328399640432822337269648551120943604097624012021106379452887551301091717470629448853685738013804517905807506881960290407794862741352702434361026752169073832455388951873593624239694032285826774003380980476365049578845624322871963226556204559183712346248542825566979108652916626783227915216946890908270721051025794871103197512499464500450356065278658296835319126153051299286158013558492548190394128112293695771099362551376592385850228278308854181426344423886610988396115194088190480740414771456584009068782864974049545324753953864223558495441960632880683948704767092564336002116414207772798460473504763437047976730059979374738607716350965123482970193834181605714867448523586219443811581828397610778033148850867125564602561958400665472475492733320005871853736847563639629932248094246029101005043150517633841065309745485957177425286515337310094327042409831862490881778618641499567336375547959142606310839498301862784546879495841312628848427109818267334941401497148699139933458014922917587070531724612583599435528305845267310581174329688439094899827308837013612094253881720565927684515676950158395480177219543852974545452741956788564044268845493501956867020639294097025506732713091368273018587056122581118600323655005849920135392189806101265967044994367692196428562969001069384573620544962723441753667844042389393655165614406743886795744332823028289384383680081625458578512405647959745350795099821211049763741377039094809591412954116892979719046761300445530700578793864791255080009386004566415785151139931969964125380699716896418058912817296646899035110649445717235895180592013446029933748369798423618963784592139008786990843784232741040666580420105523224706809529726929020441408300072194776513174390349789149709390484010996731732652398966612341052700123268322474634215810800709299249053691034521722210063673755748837542715243977020861150615714534809543930281876790540416530727033843310550791604059666080636585693786364905033237229185112566809181293898819758709479730845721817480602390579957627924176956676487836179463875033780387435696182314089425124061392855212714361795931170216416053558941588032036523262274818838608007034482454085255874272580796028406525596884124015008293646447714356846214063715810472069953822151725475652552772304489035017631797182471612329959909402754387833124961630104972742284855943526535225506028332481248858094235337380581446183681907679675686019473950392296459765722824018827703023876888843712972984054441240037164330889659640216786477147209827215779419709014196161353778373407628612080647221318987551019588938338580345190056216167922182984602198732261824902911187329634132461879415483540852295659437609845861259158153763926009692892972105575596783666880337775983695407772874772292207119102170675270192912405082913021673951112928334849167490771945975504269552816907421538942313083026525637031325196105117804530118044815320923607029830022833933446467558291353347492507358685508528939427498689046804064827130218137801056364259670872363344793108274282969545647566635694341350159323800515598077838562872209010768201167782901089466511680972315343095866721970104857527276920874060067485810025477684796766612442985470407100930885195304616462184319111560600439042473779519011195977482993687573521856692149680182492269364239497401110077898597093847775008920954119434348926763560928357218004570285685140177459846833672584490890164829246708600261480980919170566127522687727498894146700690160561161067580823925208774697780834688464254122260644560281318193994701959975941823068969781744498992617520109423751900617280255891448791259085880457745973072791961484487573840274475896924201802158848156012390131437517362495504191866088123952692990342894984416371715759187168045046774255927827926299937557606393486988596229687408102648372946139667229124064570904089009105969937387568907309896178327937482344849924037305870294821605960812010047380843755654549407398216671153090537026542020636599107795389250593275635643846600466423414564643431253376400197318303947517346193282442905592221753989790202917857854413719323824883881771450174199677585182151753366152719162868865469170595635376944183689744374760608229561173620741036114806190151941713648351376995363199200506250013212790109193354338926443152347831336651157719505558122092587843732106056090809944170760961142785100540003711644231912384869612910855479265810554234146592060854183856216853649964358704435264753277664452983568904389605968984589034969961418257559810433099356466772919995057091672754986122041290220782157086552307158683340968310666470260909488158445615213943004062279752565116457570058616503802176883208698619366405477255544455912290173572560430694330535763462636885969426213312654522695720452594523983593994849096418078193774389635049109754893268258608889949561200834148068186396338556768052764790087468929270326904661046414739847284155914899018072275768801524612790264193626010110589986984449087317664812912493006753161042373301183144918416218466682382798009573256413777524874403041019001374014932852610618635356908974587830962855075005830061725140630999787639470360226495633072925180213706414267021687646409612440233918588040766195177843697436645278280237024470832670364471440674734895504455366045481109831639965956091476326805929742004243673865856178712568930416609309208394636673290770127617093793524166933028105724430965481600609914185753123706076835227919437735715368144691855411049418557618719031848803606458648301802054492313261528602138782934026227077898524401845803463677864957935803156766595199790102087925490472211543544631554202047726686336231457577995175251924586553178226511272659398794715020935508050822305988762358174160316373779531002388528991894387278285654040049221708580818004993141965843616489986044979615368433642884685830272972163621037683203896015439907622289160914130096323254892995374233043903016202575774080438588217662009007913990990422396588668906877703338154730524802643054937287968007994852334502120453144995107259252045884820443972970600495184703934176985372021780173617736898626439512481064479837442563096417486705172863852315950274493302515126261190966912162878093535309617494778177338277692704741506203568453137624539709782246334168295679948880235477747647974093735027533295050045794943406641390559145346288343175218739015300019146025278180877860634787911294074738714875185710037529157157170056383464416824197044020462345404508308755105744154747300924491885420852666165207751441963716123007262433441319962258156015412665205558160102803191340483001696741257415640942112939053518292643649135736501124934467565403295524794426564845023255488943493261669000239985876115289563239458125792091912153971774188125787546812301268980595339115115028854842969608933113456531141228179856850388542579671539420370213631051252761921588344440099705152287533756138271710243257252350526782002348740390104247626739961137966998926666659223398034997424845512938876761900424412319928214759848395371099134571229844163321969146666281655807848237193379147318433025607484029442427509509900381728453735996720111496594521026652078476246253879987885237707680127499901896752400706713797988981646071533816593745231735927325640753150781013890877116722879817912890023179568086522074549835196555976069201109725259206363175210396038281146924578738595814806079583804504308506967083041694113654790659533475895095129016335029409412780577437953344787172807456140416261786017988153698425823832889171277312606697838261175780123582693753224984339579779831475746626674814268780592809618026064139480440619100314862696521706482530752997919351141054384908720043917008122986275936148329567875613565457448957571383727456445781225410591281698730194957174107036696904824182924052650597814128160991947403686307048568376706213745220806251369486000829910827540614488159585634974233848295695863777667437161373987624175664692618659291837938600593769563442832892078496494009283747284179780399805403539508432660689654218684055712002242401781939740459278193179052733846214367528079549401961483802723860502118297271153003791773042837007683621912303046409438693026980416262555382031224934118677236767313620293683144405682538227345215554877353773579262114676324561587355845972339414697875536669085054361830980897917262006893931256844135900717516891861851666184045598475268166401291525460042593687376749052803785395127907903672246121986577116864280626144551714863576161881029118395893834722522401235206048959995317681502182193944877036889869728266860747562048708173972284813068465959361573284369183696239338299891309116628137262892483130172053362711401189113518990723186733794498675915760241639947056382116826706564783035488939838307364789288439467613873631424821278451946235319342376606003404558804187009889303090098724700573742841933590149055471975497770060951294010199845431914405194634558932565516147855325882965960895464801235020068546861647084391207903505605115530340397268602395480413458359322908714710785120765522180874643684569334086942244198859437564829544508609989955266015819915309527770177093717496020831008870449567597440767153524773472407456021049513275993676558024015704771167358240937291164182741807623761807115100447578290869113935253039003171590512605136902094579428921575479377147916479477468140889718430153730737146485243656059960871765387708405190521032773331169106817671828820118574407503431607202035059015302917491625356512988236612175150678161617515064309295311333355485467936832671224767669112270123476450350622676192773233204985772466057852991098839673219066970137382348617012735062391681853061344460968168067313015383450394486526159817897592660281029526463854372214437673116764007970130076876624566553962842059276787733079471022463958765277743760637130149965953790065168464357094457588312695185212341058636601320547435140435420533344025441624067148798589753548007479610125454105580710826686630577152379909701150691980853755350713104660395904184451777940094434975424289029730530005995280042833150784815916720188583336070428480221947852352728338218771190853802116243766053139314411115483484386577265110514075992531904689197792310789553426126428010863507062543244700476593959526549989836972280501086796349230011132277735631002823582291064226927583524217969000105674011782048855323216959680357996171498697656754466287467637914588040590943100842537929769713834984652782666042935223223094468618335028889211380975550318555929125155352419327382916186819979478180475987029928551113268210842991269560753314871544795015183428963161199957084590121225952332028186316536814229753044230053612888600209698838701826302314732785246149250843457513166722910689918913332732200368028784840343913016871812018324773134071544764698478034715231946643091255280783241903281595242012088812699164555170016056991998179821454132794201034759065283855615885023461620700675220919748375555278237577036695268605862076655380668801300869989482461662436491130854477379453191540139802828523554770476722380209980615419454423561125639036410741054677181435013239295220177228533369986721670388788640073363391158224351545256960565624531201982397194647732927813368761279306968678831986350878228851289443771756772321203749869792878226090998332144874754370875957695323401678879481506925224557172467195710398240462770693459821814874717243044288364586308786168410706213373294634911307431638429352822289959678160069921031119591527774087574508037240650065091217789333818081130014724194552138040219788631864309621568641932793920808387236387544837393988162939918007231442939189252231088468479760820491714091334418436952678099347676237433429619797876312313129018051476793641010803408575542649022210537752083214317896233171753443740966942610437360903124508768124180151365779750503555829754825593683511760246338892627431196853990552067025776998511589389783082793046796430012014345772133641653504938757784734245162989645572921959076228341897772905342935614866860711162665799649455308169498401702608853406721898934585217222875601970067975138077420083488770909738175653610748826846708440437584643462651634229639548288519169435152512524519430056482233738229376916535593492512146008846278685304607861695148408398770668608399855685539638669671778021632452036153398615035422669811574659552169200545319226930857229712238368368259334022082980582188237183947869540184097161695444635178565964005519287118841084510991476884160522160570330812904283721253428630829689042264354593523450517229380270241532241630244971444961925337985398902211360716211833637523836017659614545537374576335655812676502378074603741446004671055580904024460525320667252029563416668617787726626653339967598602561824723628266930478418997427188109758146875216608585814532961110532821560725529279662370273624757876230696940737505105554085727772806177768696359235506647040381698601431674780287590674755860267111723732130086908966267713153353916596127461049613546299924385315773709465094786829888702974459739451991387449781509261899429071472951417427719816359416545862105516238030616352376425558717291852654245352519602309230181329360019209747608943694463283858191593481305019459836975066127653592856833832502507015951984697230557811836929331314145679254388847304934227142612786767705769539861520599550925905825341653851997329669380047308362837856748520753602682296254811190063895526153385576083037839790765587191552803659588462308320129990637501891518438564479708245841163457035725002092590394392281041905021651089116192549665950092696894178366954852921332527598955302316608217424009416941466982866245962462753469261179952902682102563802432365149038478859100348380047691128514277090304578728691941485654032466896470683552087238151146361681105434330922093026415790792379784440678043701566977553767200832263738512234297562692031862243376350784402093998142797846184963365838290404591607412294638668455883040640578598234850220002305496945840775096295292559437390587641999059272136521957108916521702721135003515546727266427459985770329384812100625016596462884636717266717353053263468344683540451833433923461517515950445836733887550378113734284484730910788800811083475090659247970787468796160797028423556789728708621660190860690269748418748533278627722551081465093454304720154390845463228466134404440872770648159504015991718761894572798217752571165130020422673247056480099709929922162493027709355536840596890499127346486225840727153576691287704355401614011676449864573559609415310128459183347430152382738062477394575669855324975135768155504583213165726664044605876994538953639074664520603177788485809867202174855223780922407258755435240507733424971537311491266662420020162898568859747363083459298247885423732712263895977819004422649240256754801806191001837568131032791634460202742323556641993560182138183030083649309573487873431494766503664456952000248658508716203516562730263893057139278311669643273842316692383384578686974978186100599465080368625874893885659240838497133864420047325125661371293337756166454930363769957670874497011261432806895457960604164022556231414083004392315405581411218525276886123090823404491512473192318880461783770223226548337982106517411118252438134313209123829033309402322499479232835094404902180122771981457312058828058209459421087890782853190012291085402751997645564001363910582909339366393422241723720109476501998338057150980234904578655978879053106810115648630405893531650929093008880447280502464750271615020615075094167063376967036778061680077855569174916757280147426659775719705960535799641182662854283231032964387614386735822580176812872003159662312232274793620235569505826744073787499630765051991201987128531500152207937155033078824491874635056431338462109898845737989587457157226143196582194074726505403190330766776655097030503943546812100770604630872401247364559242159392260172799031635359552737451132189781977575998977681252375437368238011168033984304222516790630016243652712315582593123011861279446869182510180342912899366788057485552749950048998987795024165484974962542091677971350159793209150772978401699169137519427735510547285114316095914178939580576523222463131979458400584465769151672450740790607440733033740214563083810004293150109545049738096244847474529477587373214788326328676757573240571906126674236123808737015437470926385686968938372257497761703937381794139581913270225932976518928898679018431129991051598319299009292865789518143246082165455521596026953897771521319224775833279048508239175662877013213618788585294034808246876557403036218875738869303206861242736274463585034440451209176014300061498738943618623858679958305986552090559685282895462834530870319434386793904433215092234447794166495748487974005012405469221529943279199774299719391268217059681428025711930888605224828126269930995861702467433028364429281091470219110584215869831384313230982208759412486363441757978090663939583969054530391045503977777748430489081605264721091720351822152192719446618663376415808921885339262601425972132588140912922912877751429270101705232250877894797919230199568883110464221336831025824605282914508443472056636460381756892316730886724764763428024338262787794423862750502377860321255505388999567941422684184055726960984247072245469622550865152201356115851469595703812611111263799265686386884877385228632773301500479339564049631602344845041027094792535331212786397983606490362664163606341173299874456701596739681824914607242999351051254457970294482919776039458271675447476253416058312539905901862336874812070812995592721113472073308336978425814179736696574143629201645059650440272986104564124063381781357910495432533181170207214615701308045507719029252580874645592036802412469354489430552075021196312858737425095235824502041686819596626652276878078052990573240277017480447767063578922648222047176191983070594268379478004672383506490585290551236749237132869273363541417448908312044337682370468387538774059667308623979892872986319725609949908030673531283399394036014475715095490132388536648546992853346964939519282402675664145456858990145256546542317028169323473137611973559227314469671002498828626865314291766636854142248968555116066835649137121648775821755977806274245246846986199738131914357333757961698635080837156897187995447149122714111593213214324979095520957625778614729386597914306272470995343570370468565495625942392583096056602452507551437528097513121044938530139718092266608286652840617150083167606025914006678043355979372385164553107443342768775684926532423806501029146715456066756278109896727053754407300588734719904791940661564678854000850464426354182636359088678078476207473044623546599231923926322836770358394177791635209297007656963030241860525265821512702349010101066442078529502640569220336727395030687120708438321980412899710667661952467319965861976775380059139391975709514661881127095260229326327474057392216876653713112545395489934180347208704481696581865323918483366844696545787078091994662971317407287881226239026689167248218592501637032018382796232201407366516041899193389157003644970390832720086490657648422972677740740039404371582960088818512364793808512733736911518145181053616740800894302301970019749770692924907238907145721067344642235121310183117858695961236762669882553223498968485120984158907427182371223768728230850007820876071332212086330430719087193322916256064823491787506801479902258512371463808815501084993104129623713854376851723337116576109539471912810747374573389056654483716268250369664546081385005379512023286441976561321413954449507355680668016212755893804397265511230641629113660690015349217664168886045237939898649575172480390403032805470685686546335446058589012004585836462947567995543387177082608597506959490799924786373175687865664016165671505592245825365351608698424158418757819743214467001672997864803471681873890482821932896250277653666760716192604692180180983849924129404789737492216097209462749094708086372452495104699441040827891696961144031870979782448093726707595929739964726303054259847132329358464232949401528360596560671638992300711269426412848368354587397420776932386515150720779490518589334704203368948130155001008505825987994998912932549403182418447537499313917923528176372212565179218913533656421132388385702630145193487664744476624155092895445417271902765674125926657412209943934761471269549374610311912912152256606850141130436650929336288125725816823703026918524385919547400855317158705863846095883390190887452480362597361964320791711374862925262994922662567640660890962421801102317457739489750646957275943675390397380810757513748175226723570356551147374800167049764216457587571649036205945979866616796792568857670147441602358314521700541327018347231033795733009516916036424520917526892044991651522788223605367102853013955691416701111571268578153128021221291789086582401286927983192331372802220616159790973451052484716604466086422593982129616558943514667484345774466208983605823008476215922368910076963242353662772404573811279545017988857388163286962879973714322567154910392531267192091020800454466179814251493200100216937517647343589657914083189538014004890568532099323794732268331576345265052722556886325534394927762568017980100444195361581957170037148125572276387577816797024221445854098063165476952411163414671906639120696542211602851136298294099285718919301887531118874885212234880773516905023512010987394532475616702064897735139418649211718079138501886627278042940460752267305033735423204915180851878420606139759090223416206754546294501353274757066621996606579641923257476088255098799624604869754414124312961621052951731943491826898769267261294536694381943057494957875461441865783064446438431600588111073880579041131053780703733987425574743932083724167800861049610672188028949799028514960192361447348420038397312737856996253499142660020447853479573560644679414569232229538265752263498184794897288124330002806067673257564709788363445902429428991957002442496962249331848474738107801833313323284335106621398847784388010435874656878167504920918106843107427789311875669183233991201438225353832132102288388692295676128528201254196618000356147320289076489963652442293980281752372775639613284450100452185100944351647628750897185609595964571690917839693741144575020555914566337097049792495561089148207172121879457801078830999198846504937387309142807139925241086121395892437641728640280345178669958579619246331702620556434135047403997215609689119690012276962419252180139955530249436292233124202761693364397429726941957485478376823937660441393344933831784527368011760049212894307152285380370143904020856580420336910100993408657639918802026932630792251860807709083608143266313779426693223868428111453548593942289025979038079850725993547701428339338435898351094274023145757515774373538124054758645756719037960129362016360594523464188910860777867445098798612698063468486064541269187404245785963279796680420689855239912224724723943279046320463352832850946876077806690330978203403890921713106576491643582025259563302759001044352686222949270386456265912984993246736372312302156765871730450174355096180289117880776035464929515662310117059646961774785370598237735741003140464485285128375099337864079745719013346395767021715259590866987977416705908801262812452081896395632569042442085831587539894840899145140086853561133458008655066801954005425094996999154370701293204913581925396997213821622683925223157229169804276583910412275925681806605927303576344047098026485792113072816190736186813532086943654922801244899213242864740516843977038017587595315076924660240056338215655570315576071517846540578497914317911940317854866952488501923132852259213746972015464053234622816165863757219455449739550266014375114520625522953442554372733608033280622298843411916244533182318625524367875946576015881008670209554389815111614913096093522543916705128180795485964787138683206537031659761432682097575573811191914945159417989447756723435976606930333960155339089749305683156868392513815553036920686890723416771289117665365981479539186566573990741469029197228720354312960324423311822844663981586261096808205366148802938709758876004245555813915126218993125492120594726478948452047068635149683781443829670469183558131241366050589073607808742115568586632214371693578633084414295084605794558001705327312933837972569402431724981927580895345950213125164390620678031227817157133867344152127691811900602805443630607494400556756580023556559267137998176306771852790800510988283057046617348618717222318339462491813951814208046436751279941486198282213941660254486768683887254602565263763941392585512636768366283554343037161757452023574929487925855954336310203533613744975656457624251238502397847016378123456649006979918022134197354897049752071137307340281111773783628313202011874300184007466276478408922909749503393584633908143100531332567088208246541185898771362298843035849498306103379579652666805500961645809231410867194720209593274272744998487048541384387607700900983770250197803175163994099273141000343533247416983071343582147059701134534721365868458758767103814759097597526476604232819997184469159923232147237638177202093235233281676634498966799842398476834380975132103881406366534725995713960425471045270940747691643348983468040667362837383504210921618695225105078815700101178610597377229418476633650570703023454941638379149469145579071423261052287599926836212939702754374705367408658024068910291825892790047269439932715719980166726811155949553588020091241104767858860400042836161162740357933669710994633027580273314128914611414834801641039101921704326467551914836005872785615756700101683480418907201555903230908511386624387426149542780953419593454515245859101069484687640399457485446572726120609314893296874296969537609773815012010027328112257805500433873239650200583509348538181976272220794984059470958506753045351705026783603549768740935001277456748149258549245118715535556562923420845118635322224012015526047823783929396872663326597579234765281923591221433366140482160720516471834232559085481647902465721664644822953036284793155898757762613570267252888166480211857627553034305107553962879482869137554249733167523715080079008050689488974538985640570544518392144847697462817593521021529264149346152690427616824256319126197899869944036210111937054586328221253690343318794055838594429440309311875893932302087105563324484322135171979182477402336582612885642196404772275483845885605152680786226761392495394180565571251883762904999394531008332522316026624025200294775508414932535800174295244338547510479802706923382294502489574495655367942015592974377283926406542844151855939882455609626705630900763083410576238377129508579630462207170690062765566733149299903175350448533749498494224881401494193892611273539044531379534173558493505944916259676392359956676439191072969038505289190483704307311737561702201191273842632294493272066256710519609233177369427136439969465685584145208173909049573083962873304898247420246484002414020768254945275404369461214467094874379409424498200773783121090365307894766864526664075725384807730042101435200214271788459799488339748219247023059889565340299030369209913693057149950475963326973505070774634955512229108625141975249375833692625015642755583739856190319550661917596759163903783407253081694099837133958174273457654919791162121465924729657674820388602370777825683789904412844290355485426750029690389052015277944055571467247006513983303860926532338067854541945229767306802498042307515290334627421663333814452701258935503184646546565076116801529408936995566221165657609058810213579492718220051686921386418353141225976524552908860335304067998452950869183923628662032498327631429645949672589541796018343372471831896223007719088922588632759229869703522806739483299809127225858924201214277594853342929030656472280286235542974297829390446417279184220318746760967966888669119795854832373574908816620454950613359381603950604344078311083784465671815606245686834429182898878496597481692372246422657420137564065449095014334160418706751231627532906589387749861923821412777086784974233366585310092202810854748488362120780255486751137444231107485960735221592936702935338019699141627612425225346208814374352933022060288668913534583687994455672541942802995253179483922629141041329014577545205106254756488032746505321868995438143906057867350755103702672040789336846790076549150043710799763527957195202128392299125240820407105037485023936019368679069824132356573938318966376583423340930804456414979667456443911956714796883560703999662486269668049025801547389065098107434003965570815240429541462403599241499459377213370252949181843445357782116562860828591695937073104268468073216107431826271831984183672091557739629565698616278627978234515632285256808682849222055633234135690339214477526172037500615016322065561754250809895742146840019405394024971232595136508426036384897318934351697893923462303504502840986839048848071390764779557529295200408371947693176264038811532163334973981518252123502828235109672377490287523251504094868307102490938381360133714260370495811593159638717830074279987080165375991292567265860244820963245943959327041095723613240374664084561627666770070757588331873298095248015490534602256858760484089444615077415814101918063334631238964235729174701650511851524402745550741132524177628196249974346628113673908863780035355506545458547964776142237807206841924298323973444614056463735641078626638620029857549799583584979249067582801358874871777092783467713560491777796849311239075349734688541551789678055527631372355427952615413744104116833150234376915546323481157238590039853370955787988697970253109620475965110790352754752374374785248002266001648474467560712097900343191036941565108781545859448976264174062468821454526407252489430453664627024303983475384427137662171799291046625018020902906325487722897547457932185814770013699739921118742522651322893494164432471384788131041413387374951960199793931472449387563887929538290808930399623759260140117371234124640651359221797115378997018139043458703644737807470981207778856525734767980600935887248840803220478325451201330456572092057220403680069429705287258215194205568160970760428048509504076361925912248757382240943972363716804172414831156945139901625445839259281436241626833457085485709267289796809930689812849800729455344373945446433873706130628140857026499746467004014852209208862531174210855991280775913142966508178748391318329797809134054013985734870405663686040736925666114378834962835957224631194327881672432009906076828253521849516643859331188543878177751932918184156017294483088944236426167347260307079450859745532647632481011820994527106277823646192761601349951690129572980875808016702466562454080477576820234931952798284050416034369764935466414631938145719181977877144213929400389275360321662307301478105934860443957011773020683245285796046615651400060681069495522810306869483840065738401049172115907009250706425143716152292518973481425800277085065581792788682576697123025067590939416744072072324770836222186521771292633994915588772474445320448309325094872827117536443987314186311569105333498871646188857997190565090851848502127953485378441033451946542678423079839331201699521467424442095648114838634499862284260114310315727843766895450679202190252705981474312744485598806816788861212692107533710197356377996941758652625830218181164435265387829474149365431532440662346290377950090107830959482610057664843079924911807003227944286802410801595012358864229243642129553784866622098021621271958035555340303023324254128874832633947544431931749605751059316153753611603709833720081001571424884192206002481163924579345261299943004965787541614700915896242270512047710568123319174252696472536115127062140130080983576362737937632540933063113406200341804180611897406062334614581063662474621589184867049908466421684306806297847363754716198426827058792037748076967149523434540932700786209357189962518570339416947599925427039577886341394951597793578341363836348273605366675396640652192221627632175013926613328376068710968085933454428817405593059902889958381093662570873401632402212019176088520179496255714167322852219748989606863081817212731391618003141057445729611781596599606024662899108320164436152466496181482245568090426264452313194942747803016132832008255248553203738100059249098127527570396007650550996051604440868697154897880565322825614922113193585265960291420361764601670999162277374615820596080137018602531384225664009558427312077364293282535042573836931926088458018301824926551235454035208496914533588061992435834424962655359233407560216114362828713321658824451191140167313964387814217852347340996804393753516172466981530910574446533683644441220243780223008044135473914580396195598133361456720202162798492886045442354992507379824318517200918081989247641428498017900211715875040516279386002553164356145388886219578010604013857762475127648305525558371254146628390160492057448479228873442422762252844662151497406529106479175118247121281548592291181922784501186037117247215804615163860994523328495915207451535439960325304928155869496683105083368564433266094810396532243045892390370215165341340884683954171433625051368749723327687104227371949034387156554979157542514923510836319302836954849672386472511208582216413568469067623143492063871762687526674547626761655052638039591481647972411291907956106659919171129536853743219034950414318661049054274435333846604562546277028142053814988037291759804936696145301692540632371618867100324672146436798300630938172835226493500684830480561859128991825670159935758510069062999743635879018133671095887132891357214531434856695757750630845756955365077310487731370061955046155099929296977483371019033122165811811880235603678742493229913726194723739384760496262351580204025592439351327759054482619028574583618439609052415347378588032680075642163097856878714126261404853746475212602959188033131692409900457843531205911952555518820848109221320610180081288456517523376056030139012431094996496416376375700011872043993356057587226749003795463190530156308694490078415877083937540501627412974729362223967056852815602926416249436325548610484072876432912974363113732667170596280612514491334612318374328838919842557601385863530615715476063101161199784091030594659531380510961430574951494853387623625082089744824894795414999456189398521744144527543047322042828476816846987637842745617765967746305632702526511326293360133706985239979710237666692487554867764308725496254276742404874278890524948700846024690012763857984690016598903654262423872267968633586720311092179807004719585023938651965466306433780667539933676476004167113105476025991791040223670217570087250187476683862218428006548550141707296464981405254766731586086339993459037942400091631625239763400150314973977461244231798517046508728110200279176590019593700645031526659229026164135455595786551488366820522477235772780899822943840810113256596185322170380424355886199189980113236155217785455871709828210130561912901794230773024274376422111051428126308014235172174061182487070101699535588059282122761821174166395314805478683709181001189421531762011939951135182608865077604768460930119140943379029581122669714573324316912521543736773669022626132901365859951593956980139720948242386359968416760215436405367887148009391974826858756665312127983591314527075659104694146089764963284634245496627633569766134716466150893937445258327841898650121465153223309466641711223532348968136148763955374227538511673992470780038129764992702397314529107994499950769017112668255491924095420887990322645999533965429878670630820760537844647199447070075205755116154735252809329528399631612882558948811688436164289036083791996456596865615566882551381086455953727812647198934661183697762744076924335844473442687880428752078801399468686430930304519408467913212257714106709938250145424658574555681483883339716939120841133317176878970881272924546369095497973133026767362600931620237423899801313869882937694216342587429341671994894352956748834075259181010888902990247562720170493714487328239932421521815027620106824610411745448809711387762476058091964450944177594660387799254989818698434574675509106303100709917539091916628892113087725502703401690053993889965008015831576295260560283412903509780962691900430717802713511188753092165332092765714407722818682916463419122945862785896533236277391673188512990329206292292650857393807658762861900585268838423457987096781755765840317638381297861098576151895495369376177348294414467011571479599318224188435996343957188528476090248029833808076692902413705800000696422231506140505773390514217705661214321826870868612852740752002477886304217537621682212710262100829717757290192803635950710345305494138356361119990625530453397782014389066934769631436933154742382647672650215743841043586023010279763175033461739113233965395288892775419093309414065287585167041853314307653682970078022711228706888094926543573830029236061311390240168548976473964602699505690288699005183235849606190648664198799555716637019241632392083057527107377517610846444475318156345781322765587933115275710186133288363158221103153312144249747251289108109101190345026596325427354798449581848333848688554219165294130553275347092951951112762132297545713927775808044121923381836141780825490110190075369901737031709035228354596490546066746182743374217315093204596358421894193839873064084029251987895055714045087333440682698015706748194607198522288334940418614134567329902550750426902727224403921175371524953200405886261814738837632462643554205062789033124919486729415670442184305762268278780720145271014179308986564573287410267285575172242773275109657276540399228723764176825056310559507414864886898156647192906533667321800211105936410513257282638275452073511279184393820179624287270032718368977400876333187814453643193030833920330531863013671035772581363804396309523671680342439798228315477513431328431103090109047216958206842973714012237485372871371335888430015168860421021343324568574771538604398536418636623729322059081243564176109526041496381698791397833956562162977843418436973386240363294291154848328581671743733829243121595243160952999918145380859173802012176695934134854418646082433088004475580957110806461486458148892595587056185053972270689833434068373783202258027643434871550374541126774777126205239298175687318118943619514860539069687387587495535260057118357872568604094506125792944091752234889235848875319230126916508320181100591489486169476906932421258421623336406222371062035638470330995780823439820418030083095465283681478202677529626890676591768933912991000891656929585585871327960034089914112641632411017350293568602120947975533937822474052754593298868885694882173232611973609133587146474695459627648780590446070574627689498531574192697698777860250114646875839767686379228940216289571827932870742049704734187697938159928603608832726481773430315741066412433323865702912289485734668083573072761238240737670802883414211182935970192504158806996054283294719114912245381349142505113224238771825194336256766234407330086390007346788322605663394764209651622791229843989429467470090536488489791750647531826438570245321304386729423033113805351284575015380940189202911243670674019354682722675655927784485754302907855314244226346500885598967335826227854978069117644929964537271231628518430015659285398668091200534996519712893595871513705631602539707596423249902875785169829605670666135967859867143676080209957910617460993303754265293598170562889307486087035842044873237406961664088002367863975158986853271480057695780078164447297039063387148443824898614661057454511156824223723527182137325635255958267237324699931696203431017983429130484510871900064648672686884859271445979076826404331331900279035546500110878190275529384493189326031797054641068541649127621398891290436981618951763821252550441576506414423316641517254821515745024498013150711592048821964260475920380798795645459709684850813382207077420021591887480398088991911081273315240618131126739355838791986790234552651642009427416042844670392961260745567777299901337869683839917969255061228085053194309690890251287792370442019388314670609178742606914760340254674388109957674508306489588877028641073987188556515642990964786711769803992044325143499696977279646558783178192717764066827837985820990919131857627255067263592479689800088328512081048687699957809795740012329612870081512132396360501905455457041010005328960606001164354325602365322318156150395141554302081509184769107014806672478452599752567400707075796680174256620181177655240288832786647956035713126268470055102883037416202135068918175559243419150134720314009047753428814606676868857094963266046409550938574387568103602503345585485724354992826657010321909470164323739777012250657917405707879588140999203369672740377913426177692120917497573461439801944532554249767246173522623518761337068387412152991403984526737920295400472722918044296494153027094677221106718098306972082817251698644545565463686877990253301141332578912759934434916452786682321077279020604686168551810953680114556343431228537386577078219678726765110010382677950036902119736515800748875642074929960339366956183063981813846082431046973914955147962697978561823958806275444085389178622582534988186677523525494695964987831482595393559588636182305093216580540878146717127187929882962003466684838061381116343530395295483683418039715373098387626334061456379944171334069868712477301472479018725484816719808872302678777280268892378766045742290773569941352007778551261888652084288067507283809336627672882365469634290864097316544359998138443068769582634575728219914008200959636180200398389469199600700914451963082831580656935174928621314994256915818161397382265164871603156372651823678591990480632261313651795032818606806590224248139780062646429399831817007210038272120236191973907006530812387245833249869912569489176663808653667212708485337512791458077061359417273252404477402111046458362074767488047749933287705794386155605455602565904648204327766935689662763146139653291059541106010339297335557975125168090092889185494905440390194325623690317492526189644357533369106012807977695199438402498587828285787040742082112653789672394229224229725234216661888183887483653533267718991404900311180765359844616764883325042519743313332740581653423881498475468654291947935096250766333289847225299983193297166786082890142545348401533341855785308198906285089476919509918193118110516032638195387112090505733325114574594695001036420826244820951565742594633743016629856680268006277718591709741418841721366244801377566164863216886373742677384707615561982130883827242488804721764158161211927773216829658625306065348180211076754647901950333118362207359854734671857757822183819567288673904371206976740530900386792131970002348277595334810195910092384015673550992668478768104486485294383922124245629604107106451229860575610023178801061573141434330559800433277740483943871770077147544059840915383319197524490971698570726098198072836877290186745953265841220726460413661726921623598701222104301367043861203413785749497360132420910140794447875042558185708181326475329835948045922175019089768584536142616380199330843891522546348508572109347156831081214452390761723290432701290302896123530979772567750114006047584088532138526414359361716865734600496346729490213497996478175603921758540546830231114767541070544958201814458758693784510852514732480776115323551350851060384312112994677292758325820796474122125853852263588130881827723065073792171407069047855408038785916514450689173917772219635208848897140578885613472353008930733539834834036211844450717236050771375340742487283882250217403195754914346747561900774845473820608330078685464611487694330710635314069223872656396471455509904281317298220907450948530252312283400564282371832296654909289921204322985774214800066901894729685562910951428206786745328831265710724035949653486562896002926012610487007489036979539795775734405805607707117865656835709093619768486422263371465785961033067560039485204125778909075042794877328266010756613282715134456339697924637032191979849766856183515530600107925721701009018959730503781783363470328852073768931725426401262867170874500692790906197773089707287331678544502968878621386063885757695718256768041009830954137229674652142806464676819702122500164342754719774077098172953805988015219046596867065480650981867026058522143103234314974995611508049692457852851086536516157530936398156360851413155481156816468360585630450205736210852221838404002531681989871709103575404988437441937958252615852090705559595253397487339637929079223713090594552444496695238737099121719957376339135997329538389470814972219918266708185398733261304641830688252381629836019027337890936952295183776810720012449200832400367970659485837848188066073166887496398910931844773354632819670400760454213619644451949661577187230596608463653188600622368148740873607729211362683887933755246367376895042642215373382181147492355056243393360206515916716204601588385192443402142361334122024555859819430134353820126862523009327413073093049670902376743508998284919749872877806550101912202558694196864705932083883272452739421021942286528323554493847209650205285305151829891467459426459346926001052023868875632245855689517092127321927094892304807270985632486286803120500046705270750517383937935846260844778917293894746830388550856019300696813712764892757684639757810810777296467834920219027536877097027680490828662123314285380609604945712509357280687232809448627810377559521135302914415122507146865563270290043336683571478351827314345040261461602685134706314933678362313315654659337375208942726483795708348385773305741944695508273353371320283816150053892826540058960783793947189232464124303937620034444939596879856997278691518198984123085334136660223650385393562051727877434119742794873011907034793228822532474092401889489363859223665564214226266766842721212898248702689323888082658528695680925798098293679337746298031090304026890175544696643068457371244945538030730267205604056389319882392623730023047921769806258906768228854643368014157539419850603347999780738643192458062788738628261635946097488499077363865539713383619182967673909469130635393142484701218667696957993206906300759277429860021170658402828454725085817357783927733910203903081874883434661096695317684375920537752164601877995555212426182761083501107333092794903284950461264966618166734204562715817469115351870821996812924501532483559749803235126944363938063575356921943163476943980507684107248555041046725432879033669626287795142249763096522019266648097041799395766856838773475314707669979351796984055865603554316445231484415168278471304854267988086897189544030484166462852264366265915341692216375482445611661363859032407350897800172294423461145931395684147472599433527332940762354732497896954919228252827464110269634086909004142353698237734150156352450177161754972474461392184887050946375872730279663917871896493042374524441516051694715236749990841796604153402853016921128610264542195236186525921881640365654716201207906626996536580051358698523929015085106452516797813105131042412503856208529659393909134388328777297899233991375094723707745409438441529054966773469729267632675079046440196291157346805100855782694287608814857213511322131120992611409769063763432573785759174555164444028256984232779234779705131097811408051364002744263603873817444336872889326763664428599177650047058804569825333103925743151849878161642462379859725805575916040599866898250415105961734422649686018854592536077326374800930555065001702141316840216383250712701015359690366953432505051556964066794676266223960086219325256052765626276753583398528268984602951367212658764647668154162465644706455956765574688668484783062765395412422715642256493480522392321194667752496542604979042224747610004256767819810227305495735460979500688677481553650034385202559757891132373370069254941417449199377761958416991357028862322771306895222746347757729849200265149965192368711311270368190101594789751147947575649786483698291189481510696539896188878610662883523485605375988538982135199039268518054735676718979330217263725240552695404655105449340907947129375703126339782827960748788157956091265938070597542974937026084075162778588559836214882959298314261989489740143589419174525000192969288486280210650787335859586850748100379740859505052373214382573316968226756632976462624666060362548150942541124085335238908389164618468552064754178522829992755243226980174337340645788517506741589545099134564378013433173757428134595233896089272781266218516733483698830736439848940782156406016967086122486004591989846769855280306871076015884812285500296612667589524325343380930880827045677906431900457959098494241035328246929893895757724524879721591679034412715423887644625577139232589519710691056942404700899321284110348864946814285754845084220069177585101679489994187156872071622107610610000748759139401767012692684021487527882259231051522338449228288378112037203772109727704183045754531038906406987642699663346629486676522206297390158737513024562634272186105911198383724512061439929139819230743800498758661726907964671014318203693986749900282110044361463284495759605491069488599943242733840625646872174835073800479434864869210910851857905955227510384503547271852865532840617666788658197755629717164394674024993368483042215122081627702424347668979116357459329466122763586228043303505116742377316080989251203535581926305436699160705573191865932438711382082387193423887798932051660317129295289240566213680896445804267955390185065013111747377455771837856240287943944122374154209116690278976664838520575805915106528471196938569124134018425775133997138955830332825985089588790030344488337088023238045100276129535530392763741767266687015969326366630029072191593305973961338715893703885506423055361742612937200338305020950163592249273550645636692475500281276829178437953904133164704844877372471332788839115096357666935419477477830207554458896795569197092224433754760197258943262062260415537934253128665844226303218492946366536918474512975642562121919658384767878901225689102612368496513562286861200347409626223287046663380094224365989296376407254070750914386649250437665985869171686885700837366829167439018242314570397033642450878691439350988905134001107970900702661382444531345307413152187236207329230801026951988458070044148188588148509225724192888753501646709794395331994992278509034053738937199038575535071078465925307995613354538070418019790503498040336193366482869523343847141539891774399061781781110768368950958061421084452772217210473415637115436016889844792587532416891402230196980405219060604317317100986157275693368752930023463131945686524426592814406362004463739818424187092637634545392330498099638593049747432383819372120954257711273644524200270996619993097047918138548008354240364751979733332809647680575084071894058940727441747307858845930916058468848764167756158376586487620535510125580118563627995874071294273197362539782405398517225544009524127644182310469363023342341226326443069066695941438147370960398940277926237942975936405005779159139436962039633690524955429148039031001641840690662407962575706450589008047046368419855062891644166573452233503190452988953156584774390203647316433591134119019778853108300351998801550574032642077037106668355255869386058155209386343807965446310197482029127823301170559245830939897522635722389476208311013118252681880746671187275648801146197050916077341985295977289075180478396070514970112593328007204795176585872603986847833362215392125443901675467336232936999978038763164867704299856264775261127859792473484135984204823915801349520439473220240727725244305794121657736948344106006354273258987661386940543175431428404737498516084893861187123997878536726270412464467687128911561713040511708083083942797766882934541182383163916037543219161439408314505666969969730191243900612362035695215812562413890819932514616978626320651447673368673336347062597832379249569743021325865341405404908161898547036734520710182488011779621234323710928986218932971087376386725895579351771939251354636106031726539891129961071358499830398957788346440375306201092002293305648381440041992829208073398592569232181948140606435638886778466853529567066079546288346360181502038342677535022628332646314920728330403923608755708250306456952429708533411774606551244046967296450295465098335759378779718080412765568438186723773509322075004166399536074560390913192071727393955278700296410727514458496328382583168495135514343664450452096685529095564885550606249867076414045204804910709430764867025426186886466216771578092375530804083053249836539040716407799204529593509252914972545508374329012901494239180004835963868795985967899260258166515535137642698505677796344480614573966156895112053056143346209060899059782859678580730260986599204895588247295175680605537393722714609231064904979884198207073384255049538285260363537065420158611297370896893634523116084981280434722245860191209715657403846694645939426820219634976713375745093011288229334573671030677110096268636425524811326984638684403459599012066608196779531609875246575851589819505470575403080005901959312000212723049612401569617764917106961936340923013545098217180782546409038856732600216588668232409802957914503245405485754438679399751209609499615676356099630781245797686639707836022102308316752627675959311430781507881504925660432350938649126228179292262333438465152374563256664840160772915265244792181175617365703735299292253323516389333836614106601051078084160960447768355765114438433996156501300332925403651083620518580658521731083457482112527998533413133836881856714833938255870604171114528745431438189403132653792067557811891062461168498089798163111877464051640658924687632885230399935273525606840444932260243722106046412578891755557109662425303136100818469833650288753997874901377125995154492235646397934862197626520323360788838600931735033528987862423079514686045138013190540888137980092766671895134687356769777739460771302253822835130186573652757623606227080595895178836699994182634724596112540345982130231655669721529695099893366816994920912316758798685386213843791279359827599592998922856681871868680428066486285020604975516382567038624231113018518037870756231775762322051051353506125461149897678612402259128459434125635482058175560808648056365031466282487046802149545861347094174829576550260025006560554052414241823276583905902028542606266654703074047115033410839796462725098463922602277392719714744107664767244459464482383019256374442316261972726812071215593677689322552506924838063868002094436958615290376573981950498677026363551219068840532900263607360224125489899622915773824710080277551822050104318077013288615668021009871669204314000301465545818468140771483897083111669397118773946259859613711816948478782204809158965919502296491662747849811079142025499451839796822893771636396206955161150571302807481242925187769184122797606184747031601442878938841745884827634651847766502534946236974596596035423405817320675748216298629306107170594495565652992425995858299316787539556601709428982774290569339132345475501444609573340344964658034648489391707398299812119364091103142149220278269086766196946723933134118439297143909166769812200444019028873591679417831724244765024429788084225676398938136376568168758408898782113463845110867590436116089148220967402823022882852151282384229980237985199445511534051488955272477234462788423722190819195939591160591016243039687894778510152661232111000146020928792699943641935026941539602358436528580911262139642657486247676466575669223891201640712616301727566353406303433204483457183726668532209085125747819757121391218027232477048151180991274844218471436564403421513786307646461657584126081605796847625485602023304615888806781114558621592474295051261030566433118488237410057041466007425839190021883525140719453788578779108440866945398108168408867292177628329139221741916232114593440800260051053979425029587990454567393472227000014724455719343161949715102141665292173631845156108676105271002703164412646065395611162988950861716802139257186143315629043299651165017298912140480498052706936253388173904087017478269041251329862511631631802699417693665803910015009671268793308253167760156225508020033190523836129921429677182081622230941484488880150488032459220053547880844141328482602731839986598675912086501346768324880790472980646048698256632295068411319030442657049213678294005546031374667667260740390881766345212649069292152876220734304326751624525708314387939707688386772985214654441810735023735794084134498164895589602746967080977258691083506217388264135331159465882612384421281472419163108281200651047227404036281331654069451884954213943055859227689833703704544695608219837650480298473453265243061392795169629342926015842436648564705180112057578538504822105074710633676159867162128432983332578480652558823302170574578324396673511568770970751329586711651202015348899935743445375514634518497585385295829807733459555362152918385227578326992810516586057140327770775473477670354989250353493335357482561739639880118496587444053306907216239768972401763936226551127829246082822320711055712212504590467045272805394609519880891817928472467631722998679190319898803107681862916929769079809885360948128010432049864619014127875823830278250833226266777204613455572134453520804269847076600669169188862367713206657867077976610613821057751428673655695378850435054624119755180353602105367773285675517212261881275829368971557463060410778067461294985109880559970574390286109875118220354228250170447986402556010809886465596844971767085050309882723580025786166757307910717738766695764284568269035762311427198330854803881143014729961643808663354054264928517284454163824454565192790445876442747979080623228205694725085207317702934458826161371679173472723135288182492227431507149935695220602648359234139934595508736675473723318563110007481446927006974482993464398443674100656232575790920504392432728988940738221020214185374045383518990087915017948983987517069131677249232549065521726506113947924659928029657420164784372648696998381195870120943590810730393581738820358546704032111796861346996776934830427693731417195761370330459756419416165586239112761846170820839477679339539497619068076023833442980589678826617722994821671352958053653599183103498294250051948883899539596099813334958098687215115840489384396239598485546205720400410941326327427299482997106368618105525313415134268828814045760001200045586162594877932419804400962807709498017077788989269237467684533094394800348183209918847353987778438630947900497183468657188930732632904179909497666732181181187115432573447521283314213597930108145605607599480746532429041502324852828275058874871449546778205993882550416112778364546255637923998252423026748446394972371708405303119345086122847804490790740971348813280861184843982692194155057352607034685445647254723119134261870972008534160615874512146236676612157204379983007222955738799536559881959892388135060220041260046568448758048151098082698393863596572545705500111258074808045098127993084091115872088307340919181113637683223579114431632968480508451041366611431500991807837175239524080227942759802683889215964789249570617964814395805884531443536265078029727833769247589541640576535586389180770955537599053892518199752523774053120354369144281645920050176616154097690316392796699543166400808191811135412203269013592530121446787881796380143260435583088395586334950652713970091931846114391600143214563781290835940747577126511461144114214601295821851247280297174555227025247036693723589854241340019439197158609942539745897513391368330755338364055388211535951800717363475490714881335832012176921291740329904185597756945932941558759416964153940413417069667675111281006989616291258868182880156351046825421819167570144643321441379189026563496899523443474461547110671157164463204087734536736594189958571600653558127600219375855960836279413860851788643173581427255283506837783626625705110529524970569205843816797164410391874338400909331199666522300538046669980708820543600508253143594936541545565763036448125888819923062845303591565431294472247534394126636364670778974327128426729076798025322928978561875176893109825526132576569041226368878077206421500708697722595244833105507007687868502283052630376106161838552373767064554289430887160137867059943455292769848365045064199363064324256466351937621243483697704347056273130610481436686998546873531937702588745078735389414602247857279985820166862896088288768334989389431577736010042086418775114463140642729500936042513940613848438329981144615268615590747085692664913387178176466070601761257422497364310516479834021845634151901992828805313653202661520856132087793516798318238098768747363101366510981659818774807778739179957441901226042779301813994839715241145283445488231244007320583817517773030163835781023684332280110221602356737064295270331835675876748219118899147589124506469394856254072399483353139318272760837349280201109974489772783222596647929117988268931403823591664304442606497834427336002377057683802351021528994197908153271388347552046513009116526996678247806451621793512850901835818422139363122105580085232673917832433902458159971683743214990084906235569369544777815148933349348409503347199505841225606802090629634829319660794726196152886546132116092613168796515679672348778936769170328966507646266067725055210519313503756554690034936587312756361171707394372139131982525882844448659858680070203675251640793348485959567110557224840507587277242273411228714396298584115767762058316057428346140400031756417737527932113036303315509147356867967066207838497345164076782793961761414302250020368229109324567143488078916252156529141773800013019005818628742950861550801975106520361314200630756291358464377822865388163952501770967806576087474718630272964718011753858200261470023808776564399008302328712092923193253206483840776524412129106271390618944247911826917052829829615362954760621780640028427440882770334358095164070301858181026378236585792001010078280297515758715133617700360983682889713279209562130964641530436292617622707335444969423494737048931145140391993584551664792441489144432305540179079596964058220115638179441787588863538545999115992522756373009018931463287776989246650754552288826342137752828538841127944993575857233927410079015960271433008936272082505341400730292383022446388374757139732605483574116230727025598474743706689925034657969232955384896620673989648178970756204993208572739273663995537051825091623180971513703393921682495336209072577561450134471304244026648362926416158580464289262030509680949707674934027114440066641033041694610095079866893022304212995803218639730729864410260582780928511151526355291679022494678838782322248626131071425457597358184363283472208641763958226721208836670884390994209223414844325723792882751300425864084059882779772342321044305903659500231761965383976527093745382661240718525247246288109357302059440510451506760795722835335301583775785657843034104045301117126564196719447101596983147635031085767637162437118796013925460968217348941671654232215476688504370872440284041656718072473924441811482488969251947406880953790227936517093508995219564418739114815247616645208786057765656143917480988329900109541365095952810025425825194189191169646965191142692600875772743849597929325885568391598474558860519418568986888471487985439661722644110473555985561771171404632252609764148451252233214534720831813234728741118386982279186460534684576538424287121239355425955341302886856580552563785124841090802066419514246794648991778667775496541254656208718625410728151075327099369880565261334443909870841982654463761894489913121927057124253485010170361208628639308870509701047418269233985027290605927970779921879584072779683764335254302067293808440331126480706733796210461603097276221085270164550238259913626983710042862239322751453815261431922885707490746088931453801646163523629902252887029898268398375510026151608866134111066629762897561469150198538417807824262246589165314528911581124728122471616608509625633335620431361293829627394999464111386870618591045127806142263572668199280583167832094178849605231034071142773817220515623985774785211475344387299320951044968447695063811076660249654762378863930698098174403744540983698164536091343474640193633006660709799138951853478119750879644672584063688246608928022960991137608502325820719606891921698249270609528201261436046467563946028709200939264842687252630027897637359990204969110578493385823625938735073553469459239479631430319036387376968015476838597416492554539668462989550591595869973870314756358855656969615501493383934326993202430844833177669081818642694240784558830382603710033556302188552936177175663469797715490525331841203539910278954799817005830260185212971575028560353555291291911795852695872972232092892972213285324050370908131798074772551214093065037313638984883718036885124080078298001705508220797049360406452220992969532173909437024258285927466465290884758476606759861756408179296073668253021833767322815869209957123114454344928507515378362052576230581400289236151419893918511108761520507403294221005265831101833817963612103647211641056887146119443309452284990999963101850667614345847431961460796845897986765524671571550457121343617107775741206949686726058190668507979568829116085405505428256530163469644855668278090542896050015648663331452514441140741790873162490471302637258306416270428190068172732019772251351542024235766561678555896127080516796346928512348123859814015232625021894208618929841235260736607001275627605857147718062150690257327364245675416662119755195362785699340843591735220147232513515058755748638552220931430575464923368582109026241856695416331266258489438002081056661528068928604350967249826080775425923782924220398984994959068437062443847049381643505140653012593786906171809729485622804316361936851362864592778434185902600873428190130205579582483622847372632788699303776778485004335857928507965675543667651798314328393178666424308796133657259445967595233803976236668734567806021516983962866397714621162915979847910138491612465251514003894880526650714343886636434721870984226630250710185957203868277638653605746685903835356737073649030291470513546196217874037119860780800909152925901996570816859000171014864053268873244144688421188011858462129550669482110171775703568586539799267977968492110871165469692967710564123065581554691674372099198229892233541738937223125772285707141138878229837742799240782113261143630347512090504061003204467735920953972521483450029075199962384227923519982700521494533404009311511288488315724933558465850497107800849247740267130915572623086756158547953459141333676300594071661033142692529250135558090981278146583012894169351150582173338555225907033095413129809275641374481144504306321642481958067979851114950687435753415406245155765155567387075877285798477753756032629309809431415167977132708124170946567205550955649203296369704757611967457738317406207279808687036069740865966688402707460270774852479334106995220862665794899165408843620452260996845744445375738924303493508978413006535646155366014030226837832662452674070428324322053494248218136332372188391832658148498600160124317364090877470277935315421608472054835169699077743456854432259352708178291542369914686603309062009271104082205819714821797398920009967993646265826162636798029934082652017496692593419516115661095224364489397866462579776536259428096213971518319975293095626390424869719036559886137304042610183563739295092467951516598674965068100804252688159975281559422029997263173312817554008266993988237314819541504134779501568626429091820876488929635125181119544855196653224792329061393307026953119547599986173702370355062362338417837249806663835910936536467620497111087136067862404382395076693113546662687189531357524463968974546331484900343574867693060960960355676133049937358522484624550870029973398400377620047469963792470371789438553407856911089846802010192874646284805970685063601663874409639961006621218997307751925489413166833228694695264117116011581885474382994788681740995650302490162288267369009275491713805301208307953538946461627176603061842385509846396251604121449850329107144432059492098491618765278713538995481026365137482763106587241499288780479176889410172169063594746375693845504235640426221418237429405169614209209732863702883494868908262292286342404179838977060494294541129839531775127248461257524195259837175343832278021867126575442966482301299095600269779033488660818665120628082904064843173064465152129366735009538617567285061531862010429879443207084526980643369204131509504525508887111274544817119213264382128524411312140518638977463245756471795034761254023951544237325860801315239807294438953568839785559568110646445584902103420499029929464540395748114100188991813736495030390403629649329882247118642218262410790048215665894625745751030468462497617664611572788654167769473510250648097089464419084172034296498956649639972040550470383344633962503846488590071317311889312715547585150671585236906965229820008963591779687304021555647127559818500747680430217199549324557306670709874311557041077382739683000937126753617944887497915486853550992334165874122662097619241238010926446117494843256562811364131753708686076009647626329073512323871822285861269974581373374865313220778181870160404797241016757376536436171591271480906739248814286506807206295220619430799689081292333131012962717386740322969772343700428456626942112637050958850252924350533473458495316768878134044552095469102882951655818826572117311363892538868113035930527783536357731776003794767632531476734128810450761581876562903676900976109691322149626497550505304270228670054333523483903682073710566420240091865880433929563784010863342111194760179556238219523409685760594575202853902273008125124538640869608323812643445976605847678559597114265569772528531155000522983117634794526819378502632445287524505505307894808533362800947905380133492220107740956169731237423013822094713958998928289465317684625246691464512899524052192143413035201927485135544248333993865091831218723814579956816004252164848676311921876828176642005248479344927053824479009736800360498732539275916587507124046588691547456040650270612176461782252171685723993301153688615207302231752594453834444083041768281571838129610015884100116264944058292791804510413927026498380182183293108694527612382829464745094009918904970110342979946266235166229315902909177339044823347119210368011367056274418725061388986896990969116028195343325583872153505143415620662827253923554357833756197893635699308957449812470201362070152387775310983897243109784501040828756638837895407310455102168579137496077512360839748814720086339968211152058574882616403911664355266693161896547991288015554649751739887875976924642698448498187707954897740952133022933470137307509149084588838981485022540248054513470587329952695706321977491004436881266776312959061684739129772629267494821872503146126011115801229286401390045959608148030437856822126843220929474374795468183830865091361340548282904115919049765156235767650828675687562229317071230239464250440861826540464594758370338469031582629050734394341585193154205374967895025997337523327993236153740484170670065323212719384805606480924694330240164269629468275388544185877805849313495003808259361004125410115708888334725520545880374854260490473996553203426413022676025586442186437912372802606571851628757335577796349447164415473055484983233558771064474656058312636331962252824946603461989531454139483490180587105499055777616628157297380500018077562054850002428949796774991636738295914198964282857216966748754205322493690014021232573028541661809935659050621845315453455119643528340493635668554281108009505047020690787210032760333939267494982932973788160164599478628541449818067291592225072199947624939771641148647694175398830415378901112133962914119875996048120755972352569656169675618248171101909924417702105524586214687106015496551377133303461032880994963335556521760458781356924486894168308930677390541305762347326526778035608427554015657992662805352129920049399771176993765766416444845750096656546594296291351010867221372518172864642025586763782609494589823552872795034930556665979604878802749725730184982437557077357918358633110491427697565404612700994664173037334324340260363078270900308125641018177872831944882824027441575583441166786544400333388900757485543793208197206651404852609105429290615407920072843063595969046592067652445061131370208471849040660141575319667429791176362356155043438476623413150717334727181839277491489434638074485546950087531057676875377633555963218517100809153602991980783950898157367824141115400100153998315426701596817311088804564602557868124538534494994457770737561084425452774907533429786862254875690061585431217311397624172559009523730544351917472257738876415816823355709266295996196852556834385795480977924892134682218423206866235022910503436502511241656130770052028162512750654728839891891458423661061575938536544997347747606780576791009898587625274788820891975084317412161756517507039329608002782831346207497636343548991051654460166016555538242306950258023565595430816622101535121990991977676837586868052019856941618517913075284214328922170678495195821770549767766745231056556160005273179140080672698886630190738057642760710559592082574220781798343261638684408326915731937545628255645189494878363290746013837892301244846143711494329960027254369670708825865700296333328427295894206129944174012307586550435088716608240197648800526463005066586612800190339350500465565321642904306394790367484278453999250237591638796114163241577182632067822836165747747469747789497728200526926009880465013234088118344894726039776832983232355343540714445541986892270557919993171121850028812639568087242797669031474433876488226566569099644813375704076383879901334654808177273512162191564585862090230264188461566231045132915374361569935278738043179460132107917877457755497570828552020931147716857435209130372969837546047604793264032849007044429819144384249325183577792512531823465718144616320870200811764267759587746621313365945393158604738443752846570094613800997824560076324394939901077469277559038234674751088291993741171971025412467805561439873928100602951711187357665095194501450081716513132310338503383671422814532905547904349163289381289255467805782105662460420667329777465040783941946893570353220163927355386784441679223749158564378521274593133625644506920859724146439370020971999332648353065259430159759338935512736044633040052491325820513734039478135626072535290481125439866563120736475356146574751711683386545233411442752432833677968797171075388236652100913071447152090605041953669144206135742063287408061402871319900874408613671317637431512902641580692339315766909308553421125490929135170906013420923480217331037659330987350554736081091565630664765455312153252661489461142692789717271635533714402140854892909493946998068225783183888774527521256102810306093586334921316216165697617827125730536174105589267056376181131554974073411558660059092748997706284287167120327601773944408811128403246151077207434078950072271045922126283016095848623836421046303031517517391716013600798414026504898015589628099340223230782710668536985896849162077840535986439296168771336810283842310710997992230951468869462277795131984514972688344360418032015455499527214669890047625951785702455775677148550419086912485613384704212488631611092337328266538698389300204461931230084226105031162465275145836765549026334634260682686916320150181673673482289437234724892266144627578229231071372431504778685299474758437926486367481410098717776186781539532698935168217596742997878698419591960049528426163263254167837624844494333939385144897875228541154265372748699814243023332846790566840645340144234315265961317164391128215427625470025423491583288609129706860681748551050606541013542797014698030332974562608904066514851297287702139236893958581709097933539731375203548865060798476311888281869226375475567096829884251180795846690223711810254783014487610531316950817019175228957899185570838624239556450902875244100302805967607838914572189748605707838497803657149221813906270210700404721953031616065208666500400191536790776071355331550817722865269320761785822486983029949285121603057177446035733800328655940105549042589086141647096509001926972805536334237538368177528151410984795212633807479282517680885803911317753634928205125491501070860099732914510964509266834725494619378361639842856652401765840237873228760964421386267318443067798752572152616056399649904580887298920872635478026178959689624755037615189212915362124362967066790510117448186005902311003239410909520423352278003266753381795633171797240130432941491466177223517088587814960509394183025410270356113959169504645534717394263330138824666359472501478045824858407221027049790534337175204770670827460875952893398801335423288222144410613555323711078160036956267710521908990245272590865091730453235410826151785139054547337060849998098962387932020935698234803876292293544022453699906534405293053650212619663586152164370881924702469780465125375555184812941966175114564147458647583443928153518517674257197133201860042086991942578057406399303238149415204656478649664366080260287972856005584042448877721380633391250414336381436705832886523498628784676862592414353470653212886458697563958898503864633501003770889724484166338619435853930448614350006489627528306071510187652058449197790919636712243445851708426062824010853339647677396273848572270412967752181637687229078733288291742205902448557693902991684764881548875892971699136864274311623788771792284179398474099536149507441279126779498861598954145787786477606976209275990466659480010912641994480128066753873895984559897551568972754497686258548527087716027833074290818968250374381127215723865036758754860971900570151585684328881549727516971982045048424864417177976386617371283849338517660468253247466165993002598100632456644489247580764007551347736938747045902687805081678792434624324531956460367092697904443999416924995847310973220858690057748198638847491145530317183964370499899958784632027838573837704312425384552639581609713984712769481961436514313588221057803355558230016865451070168474539738456406185092159537996663503629828130630632859494468217433820226773117258655215195103723281266001529089733487032535082065610427236602658137404722166586503429412931987415074473789293228831325090096625208190259297635836000483413641107348278224619318897062297914939253891665405557986639761356823583769679791627902860479147018852128329650142414748284088909448064355834840685770467361595880665997884614727947109086977121503128930032369900622703109138240301676520290275448524459920551687978434622150517620037048899542450513480370342711026323453881831987935114776732184628853285898368582978668715840274387098249373435431472023299351222884504129371010892427842929081003361220896170495178535777773323058772748617488429953221646651833121744037124218380974044057243328206491752860842827960851965758813269903739633000219773841711772131510093476515450857055575334400847580086974770659003850199469070353997065200394906693974597055225072778635533978694907923810432610323870692188237544889787979681625736409417249477923251776355177379954499691648235748091270269965319892478358469663365725223888822320860631348722557342323087340097675632689849558536381946281444507256752131273758442928686638883140924865772971693233739766439139960998179688252647656734507670749931396604307658147355858704533156428443985110013247389726876512089864274484362828204922312988050039271731649295512087519482342948563922456470842625933653693126096119478095860200383628095040443160029363107772010707310246970144809761383592477856228061526661467094578001190291190711787372461222533196435464365420498055813240949568670433565201076157051388940488412664439029471434091558379215566034598776893136959264647287915903721458722912699266313873296776099998349571796684759859834522867512355470397139708811743340646908682543388242894504462257722214773684161290168176403887124017217635697530283867967498194049428987017607809386298150298712033707621018647719025293787070708322894762683675704023143089190270948908995442298084482033788714466698051679365450317939477409222681933816643108565366366383585096576502091366607734423248655485753758288024782624775431118995805410851560816831465546638511425925269686765497988283423455172270410801905849757615227879666896179528460148810355799437206016625866471976255047723307027315713399518195236785899098347131812871532457351275891502199540355211081093322493873339306578567866094396368812475994397660144901607045062666822136671178873253514184531702418496545834789191093698033616643824394233917536816298879930448897861204068893757840790793429683455197896103806625704004558641671039439975449200808974548161223471356010509794965908381235480228600740711754978194296348976095674401838966418535561455406468849479607123541564790212232857494613259038458398485843691584659273207905603100494711002440271877576063776681185799304240225797260899698967419424640385616282637300625163019830883877871519421530877920457022763735204017420423676349327050318689782935091697546587774547076657278221630032086154622259518550952609792337831724668897252405045992270493904191143841773762949934434695776065359826277061132759565090323414744945413254683479887891720104655319972782042243728859460454181524734534009958967038446750235564841884858807474475557851231306415075950023223032944649349320721494534410046983480856681649070926619375372348412870194250721970556097368459172989284764351694755296741012335509937393152927173516285868626579508712203980377930888755288452152257028287674049483067814988232311172754463199718017829322458841280784224021959451358203664217805936955725013099645685294491509923773130695886774993131665100804999392414854236659675391419548284317558132181216022193509403432437058441274010493437786951746589419138893056934395970000401613018593982293906828666766103764315058744092726986196505649686515389141116819201515469877204935375589542607910391627640912320329365709123906262504202426186044871756210374140736649928338502711595667328332053609114654240623955228969562934164318080512447135448270750695560484370448629317483745342911969587756331302321537468190455228942184936346930378576543432323976198918587762987141188844712454126944385004432491492430284516690608262128130560912543821971501106431673090425659187276763915078719057808209249651973763087690610694333270579800258174186773680819879110450445532690747082389821484023756949700243739799131308340401944785013201045434467985615653465855765009473464143641503685656900545735490286186472282285875777327053671242181209804048600988882349284489476138138321877724753693403164372303830845971251922369825627281778507450620677154476580099419691003810255809213944612874568469525702014293128710073560363475744463793759778564019170981938304532737550427226689979904419068345960742760013242002789696487719554533411404288253607572996821528791103526224390929424079850734460163630032862013001339387178974030987333096246392035019460364425194297633633920054393495448684418137043133316082818657427722313234511702119774459105744175416963630733163263643325848118967299351024550219352284925221798214282507562687300733395178599697137810734734555409210515925122113602811965183052322681525908107273507363629550843583213624412523176193954703348721165410497169773662959910220894948562866846782350828269162742536493412632228111811635470845750011757117798713622875492669408101288629545398503414815005039194307104936148205110809163930690497239884422342843294164089018478209942947753914558240497622533158058319209811929809151682241067329455492729931954878138194389008769204319996332864204810529435767703407266961370048250662745726333650206566255654334491078070636000125646961205314470086315060831428235353457042228776637926981782316910290806610601618689633737301746528941641953405190717359411858988589468894023424755595991304603860420935255735433757257592523401799910695973733076380854225397231303462675487296971718707876261996320710472197308408833428532457974187262858644866596548901502880027149536580504132701518583971794597589630220336519308835549471291334230380701256355039468560889429434664415815047108106146443883463876491061103558399957010200587843236167521762944375389561406612725291052452333371776856150077676798683349695144472493158704209997472763816196796557104486293162342454642795020047516888177433914592924689379442966592307105227643684651512688674807505594953042878199056596279148300744053581823712370200551356350391245015619588888671677697769538884472179231398165618322077353495414628031568943729689251679485179624403735486766024716520133540979345602143533444476406496715768849035623789256042390772043882518960912327600221143349475689670889632448079053655931385205454362834539585483399354755746639916197661434138737227610957775667256982126792270584013823432892992814690910622035768889630000070799074041857107286393589098433360437799279890795151206991256236701262414712068556090728770768161922286749080725624899170262684721845327545192837536318512754144305289178546005167088444474272091290138350636372960314138814263219291833409256534013740237459883910431386721531776225826445788183981066276069532772349201735531604585550415638055555515873460130022814479734333268465679335955602552645240744931583336525437028793980360908778462575846152986519653413293236632256125371401949181059049065756916205313809282696551383093667756537782821406869135145705832165019897628501764513983499798397393962153741702277972506153812380661892351525784722672889155171423376345876989820070116956877854398925118323975495351246101912755638296249191504935899219388269216804351025976661445313951987891110038683099621791483725264654328515422594908620438703150704342314589037522840580873247264904919322764598990639573448201626306844113884961410061620630594778700807487109654907723080030377653233164369592460345527521086927306353088819280621825328139062344312415386387155416547927254104138035105632057899806956403660902667597845739252192626294999586543740170719367721998183812374003664637818525571505107251656757603923937371174662674674616636362604787357664784129608821847480736695404606574710740263490797106925627671058777832801501920386134870470378632370691705943968783290406481051384776652289415237028072069716962993529166100605550558206060542022726050095557145684836446173729173252764961225824990425687749582708312285777365480794712096808551898176245590833035394918442086370126971207944618165817041808263882029603314069801392122951649793976071370805486149995316457254437574770485259533787498129590216158767980660604812561778046004522564642949765298471859547978487361216583215943869388185375197309165649161932311237573996454418113033192084097221695878684135818144373674956179216513630373464859299134390067332212557893614433483635737218174004282968422434891853863759399741075437627726592928696105390717933915574845654872311827373362044619681845658913542908740669372312767741728273132557017564838568485173875255019480545705699149271928954410929007289044580880223149577317829095312908077803601002749481471284475698290461602726678400399588171594295435827834819365380735734729662847874976018383523528677020018336145268274944574328190587416057656199535222326501473608939658200508201934045198390178105529721105943311923098744325980513784510044033287561746890404585762193861281441482795498279585358199344097719948280296740482079272052806349301562948046772020727151635417280771839788845245609103376456792370039113203852506618933087773995442817495879590983956310132070358134675104776874485420861471715847307885989985410130484587700230008843488066785786258861969972709752037308608907491265918083176123525455258669868358938105030785302850564889180793928514612771349285566059146894200425479872883141057991948196105586874456265618369999834824245571734101920467874716960909132138382345043749918308852543389879614282683459342684116851641969047199647611719752640310288155357553145172580379808579546749986092487376717070051245421026633475799776483843918439822699558379758743733061486663563441778383437645715353868500162269340136914104118191832591799861933197390158309434992874804059480351471115498902811688404296523307973814258245720994997537112849523377960088856002675959462642120406785818843917554287493721512759574895721543454983400315114242761187325748738231416614681806454434960176325550851106725501316205665329639508555391884408301126427049393053280897126536389629509465502174970522374958415324939122801155884201883574708872791199771367982515100180277681329719103562182893998655557721901013040893443705199287075638219661873694458625354956375024021218062170287325214343781958272392211228667714059226831335528324120275252917004677160073092035831396977769637344990897180289223983869534788843392278375039946280151520223004014777038415372286853385040492165844488126933457960443010079617574137427470958689140863621366541428971193196060682763558901486577508702862983409691970888770463637769009157808158442431690536482405018976718131445229968066609186306548714079318671486259574769018870134088666913251443456268514345544464457958348947961769427641644030823031146265156365697202616477535733559316566352296546468498973361351920165289094827023436170387035876257286447508422318295378490279745179987225489060539397024658552166819657435525905936825501346885615403484155294578735679139150295689421891592178287399111445475237973283041905725665707246149006872372923468522736344727129264040780314891450964395679027840635112156170963685829664231495865148201448059294834671456075750407745666359618750624363389111049924720507000079276795790477696425020408322409651707845143036253945421996642710875928262990614462827500588798938502589521413899160389844402924190939587761214154019792995958863588899299261354878901209922636038621782469174041723690364646360338065483596081919154863235630142711938392278112961274321370061725718385959722724234676333929821284190523789204587975525758988289344982207858102396766248171018125849186609749356961533613366283544179533136621434089867276478932379916275275891369908742114647768729767397918801192966339368733459410857476007715883804555255042036273562582025969812947894493597992130424547616245510459055065265110505507867041837621692710508461959458351677432022721501657942077575553478654402952637791859291785038232204536357411525299277261880449663508276273725185996822811884079503800801272586899902173753106608015483386802709350795680384639705824361173342192101568553541741185073048357182612026172035584207287160220230112744310734515064769623912935574637306876285950222314512532542321879046881898850061453531332593236258009017703690172930274711049874208562846780636705682823939629383754186698467523189751986313192928841949734991412674790933692240197644152768808830760329013007496169262740086890069587604539379815179642109785891849813648910230656555725527133093168179485766655024813751542066911527507407781246375111634406831307505578797284086039104002840749799899291231955158399782800729526761516972970248812437890752323099563105847621591068584501296754998782187272182369983565234545561596997980192663398237414057702907837280860810858291657618564214109239189609670286173813360861693491217878029398785377812961130708622009991427155915057720076786192514068779895202260980212000465959680277411626517859802987599933721543287124764967823438531314815956789497963428234764160415392675196176924970351864400825554491538723384774518772844898220481145728429692081248049425899602095036739120079984187834381688069743377765721992394886315138920437977098819262686771088348204598321580916355112930272305291989971436435899771900390986056204932447880096040254347086518508564110170473822350816986964155368243487846382459744060394567337572439398886124027109627246912562477023452655924595567851539899744216743556040259331508487904664719050368386384411961048766328581425077683241063796939937512576242344264730084786757773096866166305463453994209380038191262795091068320769168678597419257314508659523078175325871091194895398779351475931029638146334012816003244913658635906865990926487940365330131000095984648754173321550932822013202097245814763586610518316726972152996451897138856504977487306817701258586798543706379464046285950009623516032551007386713294350183670683859171330805312881512092830353409921256260873605134185298918666680400961627893168241013480436417666118594169956241912882792760529148615794557559541603247857065523111598825740986833082093491243317196247040334942344592908887347448113358589225176831230298259405860683486472727631128694978539997200122879413215616260101977047943628120295162347291885602684352465237906842986223834951568020248187844663110654376728076228534798091312993977809306496478101568789401228680739790501557810421772186510272529059445126802805835900902416775720335462297440010615979475570403774938257579606763889278780767293924857070426243641266121843074484975947730120553184514293931478463541917621751315714243084073469895138652451053224671106897496686657044296081951664703248003240745996806308478345167201924570032389095206306837449221877818641121284609415739526249430266041178254979003016150031693461413299397751953095120196118655295292593098520559811368608716606822875618785452299976134704927341018216696280582997105011221042662738783579465602207289572804284250753761053364441111169490336935217246827271052257243287821928246850113269627996813024240996322550152129360836110182412532580572025827028356255485307984174056765410033748553621210436633471295214629023976955737562124013544154658426640897732468283696419174495491152787359891699787188916240032759921064346210139072341149069781854924880534682426243976030709912211145589910731796143065733658356247247181760386511956480973392705589922796177292391922831795244876157290760472548769449279063907685947444729234031977923257155854952180868235080814111480787369012599548070760240419490158476007084735098845328931518432085115503682108288802214989441436953075331479633309717415300511913598448693596771076016521024021610378324453560714707380815452786881980271749506678602748484386205733951018948267897926514300501057995133087838327600403432880427872987565466403790216128460422676565295484553391462512861544729575076882583493362391387796960954657754653253741812396187499113227104931421850364286262873375653047188211801288040530903889578296716585119811177051732378754124882613742529144936065943200054553223595823130464589188540368102071760278619415954422107182380449638196142873565541003140841558928746050075482388911330448086692498028829672116292119677666403838969977958481460607103570599989380711194446014829411504356453222896998986884525486614565243832864672457957128373301227620523359941096271135210712416241411909495221551590748579792204215941738973198302032892437998800822224240071122303280673913237581617868088763381346413679244361686438030145705223706700636337487592232861039076376668826211561921494175685834684208973857808953267165900701827803319658681182602588249648732645682462924108019680199459396181184006692907751460317560471017313730420457057749551481299896820376754128521619427043696292256342127447552316719522841617965872007737598349619866596420685009071727223088257650840779123020606238506090064100753417434747499337783461316607098576986528327009067577956393619137869153225317160205641555955793911480361570293389685658585943054207592450675133667510862469728239508646731657895947471260750611647490453899553160079548561655355557338978436526408138222901612503359064129737697838681420669666826619312520352517864539251630959687329165559412886365919631811062265811031348384170232846785674743704968603027793292635229379715180798477756028142201841179572164451289429943344292549556880454197380410760098018135693211521979259834204200155279798090518565133118629427072768321911108374356398499905154226075552210352344166016554854654382244035408615919156530476761685535615220818225218845287477342229743838648937133867810538404076597628592656374960455411605759212312126275245892194073144063195867302670959697132221675105961254512761844180661567332477595621764975819152235783043572442304558607708051694133349199722535015070049212695880993330388443304603518624986941586979915784636919868424285225815667919762298308439949615406156890351615330805499674588111384326489958987566801161842256395724700628303097550658142159628519598482026783668331640464396208846892897951002182524419170811113379118253236474384960576224013004180730645000392055766574405677098925231982536646260155399715982502103563665331998121630408316782783086826768390872361004607441365539828724196608355377536952104612589305772977795407472027039099144566570738544087054955195086673713332665615846630206550380495634319851967072075772279269647948137424977969051692991968064851066552791619044498598751304191342203722906948772458860813368947307894973540792108866220646023774763942784460416776549925561067917165512704321607130588352566946604005638931903562100553311800613148860373632752390425482067887551759865993095507127508426239604952163928214890562600332898111468684800684673377973500621369166164237602039660875519729808235473266604122471588562352485776082879767681092526231725631854003428176416345961831767121585928390731689135508696914782334334233136756682276587585478544736622731038105870155018783449335374706732938857783853585513433587739957011301611462779992525955974204347495427895990262091033655373233657711884946952357059659315893407010522045068705263033456796101473262638427597536148103543228049953906132125422730698013512791486135252408952081661358618682901094955184834130411088341840440767235508635150177196009731319447466108902634038585721146742114254144872237712546894421822264976559090597953514252338957885751137395624141275772954416810911132532144524579314130596200726805971797158997866797871960603082266095750442442316374408631436794552505724359865477026265572827598277529232895703277415428929988166771454387196635340565014198827714277288532444833684174117943591041325963250150763051218196432732759676292161331831690498380164203948994179618475505704945933678774590197823739703700405565781637083346577298868921198685492182617503564877569013251735581766976552418185351921206815343199793535837110004755815473792573404889154936509947605406546690095320306981599266711258475983512085506449286769357683730071658116710201340621232199206929450888719972338594923149877946825046915376651650053748258590793357310640482444006529953234763365310797113227192759370999384705588752092305881847155578074850567924043651404833850563194426917259035989249034816247745156347116222450221598138940720767812038691978036141453274007685265901664385548614470787651168412836754458717238753699269261789933098625042776435652192412392811226048271104855664239023133823623693011099366077180814673017265208894438702557082318548253691697122011598973549001093922348374606140442401165275573962775056583554629819264469235968736037021854406684862949425098070173723996111819112532790386898023385819536670758652963319847910547604244085791487275288718923956440257283860010340824817085653005828838969921533349120313714114689005030379133447633511487970877246360713192572733206423945409885308544456367510687085830730084366370586634076341282243642678109661630310877560720431308737628029525072298183728378318520973599013535908400179954834828848848752825680629326013269968865652474018021959588764455745889696819951741047232795535410382204250652783902135191120178937282815880756867461486747890331463737084447458794734119699302124222451680946964470098711959553638559109215552093067547488396172883987768768022029281531702518119663024808619664389853623419278971080738350397441770913509116748151339623820464964797076981228352283512833275002033061500950487053863296504496272857912445963109167632089601274928047921852863664123776264251643465835458134985139745160900543247169460158897096145307259839083790143187865543305173128690146260857235805657938078778488669604831150813919093344804692928887369762622645116962654309345413434698207817197254858361866933718531769830143265871775277411295958851215535169514063223983420952473401009691577464816931260943813275846271116542540545369340177665663635108421285770023212704541495966850850812463661066101975299573499664480487019095672742561799518698858188515722959738008657439969981662876049175495921359379813407770734172504862656332315442900444628387778915133046535457372870124622911281060959910148082864589761822334600894593825000160802084840737864369464644220860749010683918019728718193688591528516523652555904551018580694116825200644420050068605352549379299701726725285937753855452975680750001774239178274546227131001001326076413513938115422869617398767693021370864846357432203413030123848810673797147850377267638796655077446688890232762335928099697451286236726934554019124491782802495747305644427986022529366291734316099633540039067343328492924315535155451088499668547340464721949017409365531144328944107326694788554120146855005292247298982095375218552239098699161846457328478882716856638997346089488538493549122989381798516141818985650192513142018162437433815353860249770939219233041095580748772032093256054354291187916577564699874418245476269639688451133595080928589008345169192929530866502300728313538662155963222295163150500344029373288730194014486963053663353471516004604161371860911060909579042461054282465257355628146777252474551713146354454210626511280156805659779338443037731987851525524336846574251919655137784268504899635914747878658416166244672319179266018857086425540954529168893873051207198757431182472317892430884377263165071565415895619921891398728359996814473911474728888117020091458992789087945551178775598041750213325842427002687470227266591341803272108520418639751283622847632300084208573227490714426467223032154866240145875188155387900540401482770296042225315852252367649763829410967505729453142406675365442955852908385245726328532719319702738870897812640888856058583934303150915460703002576175814521018208712436529972029325528629286573583337288222859144817112459209166435489438480066019452122421766346168155171258362261494756351181190934572951637624193780898504734921620836639599545739391679232867966334955517131744607636994464844804618026129740714144184401305378336293962180649254277205184340469774511945873676964067789878014671128226349864940479313978786775114363195746201663820282807592210930139697393207222635220857817680800879409876624265593692894768664740252011663872414560090223462057263994477679911334036069769394083583821910521378901788940222277657774467992011776356685199989694537004374806643816916549074171454575229502298475184494710933634946622758339640423306989966072799099175866099252920623660838846929464740373456244018537124665636860888913470930397934764935060104092994287639627483219684896481584479693864294446121451046624588225801916704585438048035130231628329449456277630879488835771404311989854465285382661999600672207830091285672140871103712593362469806860545365864025137546285627493468038765757649030308041495848652288158629693076889270208085194529903971859244475671962391187671113199726188619651795403754950299872304091280685149779657789798838215311146484404636268552665649322172420926277752195400425219467952662678169990325249203674401200709164281416287652350548453201665745184929800798780019399510096922921063897552021042366090760096927546953768413193840004673667129038756410488103403451643418342792814090391713400494663802686812499215133556817891725706126615002996706426631170793527923318560455753910978746324019677883119824101203659217848550167958318292532324544910026714293905389829673794798090848867887720595481833331326846988791790598154546061004872447453074365398721241540708246048447687187844075930635072641546592053098652174030813571122977380039367444350718212408353554062551728466151267046273687338143202550045266273082460824985756616909568066007832368019826767743126181724724704446715699956629046619593415447001760725347842394173578430401539368313414106629490984566324476647713734825049480545564100588517067216653465147150356008532969043255723882214872969743821530656108648970053274919542403344669641632580189608588372408885111059147960703264588203337652232278019563142899000318064417467170358895935171770074267282315793272265085719041322051333001382517122354837818334250348528219573287285571255242760055124745509619909801004358164201938976097925988088376134694975891187250999137054012938892754187651799680964013638894727369043592865259169421909317170738688814838515551602691943170702759619824106129428964502212102044463227629240436346201349572854909624448174256066779960407795473391396725740412751057603938961593703857275289042180371624601623661236758829727356862683293587857650236324507347976540987792343081319399559003323128199064393661377566293345207909494266786778375383417835843727793558923347769068084353654607163851219155365145139698744193393322420571752318181816464517656986029365279193980896605514555482620669819461039844210153363450367903265310733766203628416935564674536050337228326821799128947803512645375268734139165755745847530572847566676464214945368262799776091404484643364765189181391005219220693577121042515592780183265084047077204136234996827336614928323656705230316746693779737123285584665361305200436261563919345683443743279900047019988087988504151344175688739577017300580906743780112331018008794578350828493942528859346754212893084572682625771477566331036808497585093811370462741162773162806579905251199363739575739912626778783635372237367436566667636677902587354949288354304486383800450649680984226376479690051884369935551866021780296348735935500241034580246999401353167849106169254086445474951695335784108608689831495597416958853440173046982140323610509160527513797302925258270314975675197516434647175822138719448621845464959646914075346899966743646061118237734294034946517709323237444005743751393202596551628557005785722806525897130635679739968214939705984108330773623691409603217679868198000624646198303523532395697426075867293463065547827210476760617099943469220630642226805626530166884810299460771113414237124989565596219244197404354880277472962133076096723273474801352646997038956408201835967461744501353195267711512274887739572343713352290041436771151268674582906152192586575703744408627415852529312899450851202097712822960621058500488458710824329659869481723501549877342584813792128887454581993175456793678136338851591657564573606057062054947199593562137798339432174001004430491645976761005456719450912214292148214985885424524255616794889512469554995722572079270888793646469198852734365340278431419951085759677163937402065047744531179586071908613797261321658626451359363544244599875211259453828012414360152120490637132113327787108960615723905826606791874501988220584196279288055537315625197019222504681067210579485880161515460360309193502900750685122156220853643092425736417085276226445045443525171771160952572039698083037609998540804551910514866083779914090284104559376598187889559836725501845828316705872342033801846775253750074054419850259698492445113198074287131856818184331250228593423159782955132222815157038854799239318309724805430393283067166041398608421860433074959203222752252736595709450305192765274386973681224109590465325897799719614929181183994363025795991332916701623050815790036946126662547758666162447194592517766795960470373922010646735962216054371322047470143116944621566099748064746377261838394271318559161915143357488872008290785173009793084851337987654173768968739060150970753139843584639561520387046641920807811712107821754335824410645675369273330038638799064995978194076699995288682571519423567380731748271038332183444536404060090855707666098233980541125975047097798020781502389793273921156156373415903171453916867133290490060754908595010087313682346632401195579878486433459784686924922449377703822077635380008916071207961960598328062817278245006986487409675577063302995071394732491959912935217961510745076760023926125453237867892539621291796203534266335827998321447301232829161618694040674898953486043513887356524563032895909892347008434193077621778927826248055083131860879492752729783565912373489556031397750404197081562791161952745575254103836966774624295224393318047335939013341317398882630636563392273118554775659769117138461883230130260223791921155926303459244849343193164816741106204025278010502145486542636204095861437560700813033417468052952301859264307332423757862819593590553552415723550450894397427676849719508523504213455736723211445145210579570929041359192758632271698671883626039123280972058924294019105615765923063122430476669507208715855389119613470470993048986787315964020953024234570211672983289054942693030884259899454533375105169314106147351371793349493602363504182339365078316661004489046990805364022881533819412987517982837174372711382914485236739365467276686003789599970544436585542414779106266427126435865267289595572118278121982769137226514883655066117188916039494668835521586153772173481294470047375737248631247973909384496651349263331528350657016914962306257417389258080224374365997930613389100595153722082211049259683326988272677996272613026111978951214523018048547616345053500237187342511491416643455129591036233605953376662973624853531695616452904229504219085476845020308691820302525978387078380521333439175462887011121645242478621861959825002393304132614004462366981968264876820689802582751150537825322411460569258071692936254046402063379114759392979995419899073932925095144844797259305768327679178098696317608308916467857748345278370631645628230385171372052633094137211870954793744219744249442730218542518848333716812527008151289432581577797941076758693810350614921750045864242193878081256028632457502250614202570266577247965518221107553711200595997515805761558424866087424648483735355087236017832317188277429085957883698770164100933200977462864176153422681108265335748880066481131925012812969005883497963756514535271363888458492492705488859860829395757635257109999584592152671632424535797599697930940743181906881063299484061242695693220081597990404306860387909019453708652155134929958220783707385310133423126413815240999680596152236758568396058680870160198303996713556853863162587509912577751600662956818952976401927992579779832309724437078685935254539103429509112683308044248613347065935341977746209656294666437868876398790868070493386311006723634229039736181390941763532826206676234003828080035612042010380809158148566986243602463303600474895186369287232316039422867297827605029729445759706886234746614218308140048069030888306064840900534512073559636689020604623885553851238376827705344888537995087502953058857070004907825533604657246315867118350809201865341217939018896069713108948493025026253010638978906661225583704891977917491799180411124379744701752140272558512036183740846198808544807799109989840093540861985626985187650663167981059080516062607187215173840756699331179889528816769833411992217825253306876510774641535824448320989263838533640051901670775973738140613365469100250123687495432679650125057801783293175863516072822360880707492426237857378023510652854196487932862655489060772905213985773926725687276751320614901392097203295542732492947690132375972255387827442391850586029956416861504380640277016630197136178907256292720478407610734615752624533319893364199014093747085385732978347042336709158807330905401749580999388445834264631071954688322783886748467093644663411253701564828010547088693897460099675828242086708271545293491621631620060573191857489033757244545766252558573984674080312814502073688226195862545250372711926234683873071516036355395926247664065108684923328298412223735813371497706442984432517238870623601805020210320332002371370901632108278492979691343487894099605446601345894145457353005644835402535694885233660030202436749454528809525599834689337769582802859182972017866626316781952082534040423253107127910434386863834533108420832972581962128674333954708061280680132264034067820958579120636814624872560758288803839407595403261443820236229014493254001023101842117814368052212016126671357882817423035790783146741732223021640957737663296051568778116094678464945924202130061111220677162403582862172850142010190392891752776102932644543701731690160116142534813832379109909075995852402070630031923415303817496737062398170558517929664932284855757801333224505222832254268753258755561716812138515990088731339488153627497482869719730645220242496706823693658553691174866123891922541420987915111080127684014042390143150061898362321516741864934000253620869198669468787545323378686661791008672331907516257276489274608210551335457958253643318427519486015767433747170209371760758296872826743282533573764632995906182811166834402343981658238619648405958666211609603687707636762780066903139942593242796030473642115523289311412465655938532843562825890603279837158051585228210756491121921518062545033488798309484794025816604258243747878320164108845926201683585187154189133660939301870900179933959484699762392240736095542818868201205595874653442819368230088170262842558935910544312529027428132183048319061900294936779427476617864231583528833585676111732715066525654315196041193180413885864566268322184414161562391573053410716528453336728696745302187396795697104441596510472571361808813386494455416759610306864489657742949894735464232605810280859791231888286980987770740635717493427033647240135774137967219483131539195965963820334804529268057026721498384455418220953692196993034504086734038298863876785365043826501412496022569759415563572303803770736137119786530366172961606637200307043221336757962802051117878566276077527362436852907486812697769791538487414543716343141946511456199726196866832208073153539137065144063577220357102659191273547540998702463131965120253553399696703622653066900351735559007179683370948137093288895668361048815049372808454558719451241102180194791358127645135429175788062648829098314369314608994135717934932905505763436567739026727382886503166795646079569449733189128794588327442607687424274898928446886344806280435567452062555301914388902394744514357856011975611376544989923213802223881286588718892326684812176509689832280597278781170044486723593797374917190874325331871335228274846164785050452590190162218598771228375479101079536824771571095686921192488503133165130081478398626384684566787064303676667562672839576900200754650393774871299648735999665838393198093155586696054997612890426656201867693611507272818509549183964128692573183859485636300686591741871101848571085924557121772587260222992169877435387103563867829894919185372625559567908069163930202752120759822402453332414935410114393693628057933415293266151165772255770356722759567628074512749242861275139501496993645221848069804820153727725818918262856736594335087554675364402638713934136402480736909739213210406423038071824835961855370252665004038421048739460478818448780163682359574520817433490822660576245880793018837854622098991152566583572090316317771486750381319510224786586640071378946205900358011977801892346963544039647045213288317202171344808801266001872130435817136523191797791936856685599914939608229835767639460945730368184276045040118525347500757437728426775969279212982684716434061480267391590837882718568057084422276651788591349891854528285726592662535864417221678118829523637807748160717700431706617986641169520908222527991757208299224243351448579249501650864898424671074158847614664925175703165944977859065070184742977798057569604038793798418708869549077345255254016616074593611539448872656467999043529361970010623098476509786776921492548323336663710120618521384405002266832960135922255083812641822717360403334467866861397870931092216133520648084331333683154572782474029959250794968931542208851800271465425236383886514488076920766863296944972260989770667457796731900947982363612786849642768013687173835582795246696990564341083749848949960548484274872064456999582137104284328528955082373525389930858183818120726186143040394021395689899692134757262120826412063444120386145039656047839822858131350454457211079054009039994571696888280438991517309578115714076404857444630048824989084968022094727190063407230293450477355693375633644622618697072445043846461907485497941830080586370438276290801416735966197610831882217146938701114020163205192434760258671810169872275111620908317848700616069264228801777798442960551818611902918418338701320743347090024290451191230968700780971116251804955295721191316964351620334135036570359581535161522186785421177260347998591821852112500623297954236972017674020049816628403875877146060099600862913420828766017307655986913838800439393730218860045406726232157881066430618267550061513200751026650963691569269305370311655469594470753394301361121774900095064727356798314994028539674368127720174542757603640961779442038376923344989184665599037121306862563610609534962117033854137211589725257849219752591305843189011136967064529490887341208222480188754079774705304365358492667375793024692466970996393819020948165806852548148339986604365470366637783400384301845479012196665948564107238195825585584076143872823185442108281763576975204258861813543168561826938111471554618258590783370149784238613612474460912630315710198916242706027925951384882303874851841269559781889962136332364026923682208379137549870361154708828691297707040198570946021606638887122407448834420010425397648725671936417021043825663951533937438533069902004651583123595623669977514385113908294740424032444485134850297174435164003633987405964327035097632363357597162255013603051225206603139067748718673762745981052085880413334854467444016845312223152858732783830210268621746714077325840773966589719472643933508066169691138622339161615490085207088401640330331609549538909289485541312841095454536802081763529791464582896980735421039019340415456212439641465910807638229055566045862730673556429022084340709581922169854801584280756319971224920416121828251005017090486436675778182401719922283641986123621986232629111467534552614240073961686444521121616900892902033575128859756821614863385773370555786939113549505715005231952496484065633680344086969876865272474590484481471644180181572761573002545138540331511129651988629415410211822762083151824533788273924787369068161680191937377475987206310132009899379577606008118178257359061539745364255129372610708839563262807697364066067332409948928966871525090157803408580137359692247921785511456636785841497903330826649376905394645278684410681587079659388769413104477179878788616871398186997334308895873675533174867148900697322656830959305261542150482001744530887953520526231076638786880673282461838817688814623219340162172335389244899214042004986724931662607889516842584783345675526238921665389332094922635835632706217780231711578899807426171972648807098287273254094796922009861633952223358187328323583633988895377318341612536987146223002671781008639755435190885280739274962720381227370668940737774164847826791181414600530773694085186024062431266066112611666822182481442840193325794596740578369224973288303826203847636110140079147134172336458552047118325605604258816578191247500991627296966255396851493598034602349542006694097774394126614462636263924511947753839323284916415123073289720183926208933466463998294817164849032797944128176894176865954396192138660510007961793171187223407356488099689816056967197622571327364973603102533337882207301999307305828878158342323256506934295499961543588126828706459447177925343813353398006239039232998684506582777436413107739625678345603289850517038755461757079606498597719339473815649166844092803563085602566754156624593162491157096993815600918992163836745643462927623911263437399642563908006917625557847717243107104202436631442678951974979954304493419278570121428370520678211435079004078806182369509046054204639787810517017828304866115842897259644211003157451050093209770170706278536138765969659966440893606247053483877359428446330049221165128335674314463825448908690539446328517063083072678532875579327456424053153695897261636078304986438290161668563006366036483906548430064125518890600551455444789326239875458584208239767839157087663986512055881518909848142652764635338111771366778913805152397054084734372807925201303448278959815797000828243253623349145162413073539490594205299389465127674023794051388175519661106496361504247446665985823264300740504877954102711035226850221373449399375213201291302694337495797777582512298474281638574301350446246104521844417956812843221443863590579471880865117316259043264076661878029470773602822610646026278430561168876915162557135830308225030889403047658031171413836678245499139805842360522381588568639360681281550231155398945631647643856913154927252061856477999962464569202815400730455668271442452449205949128511009968766710273824862145143434426287193032815666981977537135401781770986997418396459820375288787762149364026995030485760333106800272201343315657516880646669654610379664770264778694963690393246062321530821618590710497833304625991969338574819533965704873258738507732858602472506993840759078358012265405574672902629259782544806846988748112764143152144724067971290473863055079428188743971699165275685756013565316813732284468658380635801500600377319102371068478624647389847080868580134416406547222942526072444122687386770301326458541091398062044835358537476575824058896203698550650801733521170982158700969633082200952099433079661855197348704639671957969511120200885178400834299675233819690563833762840612765331507580749662504771189878875116242305510086007150579915580517589912180626262830116795976906571960464124087033920171498659315653530514724998287433716338915096825491187754868873570101516448776506882067847148924518219294266098077533659636436189414723816694968193252789767387513476141489562191191346695733620613289685617268924230209295740487946250288643028786924063939103890266478412633970071791357195686442546927012009575507277209469049084030262623851786030735618228187333091194356018675322834542113127053800626292362236603974224572736135856216952401187042962901513293748638187135679058865430390472194520932724740273729555670448591034177449982934134901952737841831492843616294933962409827536292946983754463968595296536319912479090125425388724192368217359980090260224125896650006192782426692274195276356055516953589508018517765946522320223707779133077960920908901425862413236580031165306882998333466638246397275433170155650527407653609583837784414023456485484766506197767537057954762524487703816659730144911727256285693514176062908776664436588248288452674537897619375783172275686814345021708957756732011948279900456009633183308686262104867050736271101190438854551993076036880938876482787908554542648631922668967490646194642296721191056086093860973961293553822090081283469444783099797249961227213167111511065756811308964833571167620295153680477023206443881991450977055460309972412761714272687263167088516263795565084530106206069769129868430620790791962466605613661911713968467495646236505973181830871900933676655101072982316778464151267747062268507254223263899318480280930973565770792755044865108544569528906057978870195830314829569919599906559997765539432609818146797566445336302057546468860443510882991405272920951910385849179192125160125590591887611697653986666639260677347670481163796695093251743874236299686068102432512266642922950777287843082538656004487772414727665777709189045135599781980465451606055671624873011947594450413911359930742267898325740509651960682722952926851144108776143339677519499785504047366031953269144289984301807795710463012906176980551764584242864210508755688295608203696754297199141305546125296943043934461138578903945135945498857268608069417025297885223603789762339074590574238537073212645173404828664129426079880301237397313299359422951714525426019700380427623575498023608779163189106139671450407209168141486470131141258039444986544763009477380122941591216936023223887507889375238306002491584160637165890892511396134932836144710306082732929290788101318767294109945870325262059941818803633158480616208307543866088475966247234453089196548831646635807805205817065307469109844450245904121742409566451864163519909802958179013750614398771467608264290647388323131857894085189482664209231117033313653887625088426546943106362591250033284189466973105761824339361441217727877554069105653742489305429379411980306352513462466602277458835522543487944353366499701804886916680171723629467183685191898701485515327796775493306688522681235773926781547584434607127815875950678691034007818819348248730013270189927390059901172004962512381113021800657431180118539524028089043600208205676719661277401573909241794643902277364138376217347221314246569514117219378898217194583239963636390705988097654643034275334392393381565122430877960099461455357112389671379985802620313738453309914620575138357839676016872731315287835659334007614333403468975824104787008782436107558435992692016327051656047202324261201533819393179256368229436069793757803465562524146070417094779850725602390338697641240216658188492293344574348611270543513959252613712215904688196085252792332809349044887664726766949538509165696510055704196788461007231380987217161476028065775702750956738399950791697308421734448165142559339539322809990204056985587664233679807955796919918281412164100330289879862503700752924820725733184811666300219262840605132341253520448611322342375505818953851970951642766296122026476763702950905154063701298359866637935843390438762208362069108640264460082299608417154325935366470318805303469232839806852550590208048696311517183578735741944382847494879397436154638274497819307140046911901482263169755131088895870316859266906122872091132054122526701747024757480656034873619917632712235686709108838809423022448062286251782265732056047003972144922928722768025033605977084275966071309120216441212441376775637691732708637876132214629976302270347719490091232796437461607040240290809004793289313019368427643307331967989954235226596512603910300985768217000720449570199930285112677254337853272508340963916334309456357472213488805637205016832779871811277341037810183823606462342379169786372347178839169858466192286583491256882596659273990999777376037671963512560414693627175429861751473527156190357097366388480178523653343279315576669057964656537430082778923116694172175762067913181354590148144417679261097325718901985135521137482028003986402241732483811775746310642644425790801503340130334263759030033636504097698395486691851154675221132017610087062808224141092044004227395031495830692085404545091562366433335539768473729214274425259322742893169879862016494907090188429211437955840384638707242802296764002157242730224255611635295269808004594343590075694739424647617994713143720245406705681176751271050940362006805269675834370265101711778065011807523348932183444796014016521545244383449849025959914762367913839411799781481620782462025883318959742888728263055849491376010925118690058237962933268567329356499308418321829365006584920179438341805503262247065512298703055915091270935817185508376265732658751056176370072714514823522325620411881392577028789389525740262913088452447280496769821956874856246071136480188556028942343678774509661766958672992610649506308018357270278435004122448937245541152611456494580722069565997394785848618193868561717417435074696950100912803161669256606459831338156353351746090542532502545107616662228705882965566578874041279583086188462392801919718942113120777159361944997425225137140656229166877996984825267006024106949536057114823298016420927973306052414294773496656598214389464424368023684841105969612551683591727519416861347318099453427095210406646567134600831367901217904872896893325996658344829825493048197639343117978850520990411385589571029104127306272757797963089559338066320843602743533523131678969204714508431002519836014129525459447839820857496693691514399722785565599919420882184561191656538047804347181105800369767819951802571059255839715838089351278419144942638199355338981355363620079686447549218380994698580501036278599337369126115966931170528243310174540490468549243791391720134781460300872752862975122395413701232276428848479579110127314551026613395132401066743651389246667668046106283734616348843815064134793498505502002847857694267476981104468259563372465293101693697147303331165432428110245414654569531287161518023743155446513991113533275867079777073531113322110208158649400618984902880202259136049401494226779086797278882820812812820881933770635506642971157965270148089054977618202750553886430236589420683748881854151847763453773277259507082933588292736060218772625167233125971852276625810157404816253159660718188493742607759181737068448529892986209112524519452445909858863556580103392431412422828269887616747817397044381549069792536107851243074365634357552836807664941626210540332455198553202709802331973878721771250253841690934623642639011524505812963352905684501697180578388872401352048593706813237141063480103396446987099768347576704521711960696474190953452654008581940253717202272190414625032851911655962312047452128331277158070914718459162116223562102959820984649162973172681180198885572714460827027992173168651432473266705368496566480556803452756938897366409503048230479800304783632113595224465495218236324276578660213872397865424518932940209801527676187497790675625255783197576665361736230643654222940661097214746070056990165919575882739740786081145851961425556782249010194336359505439869273597831586995591303080771090213923507737639908068413096949048041945075509802165456523317738740690715464971825441766142153055971877463644190346861604941143887026133048190857366592052247152783947919162289458889309610243578220824788971764732883395449658649884672411993671366235078712861329527304454422480987883406461724803561865027152524386141721967158345493186746607780665305342411908786180859866164682987394135760102417843714009656908806421709693598799338336771152041745341296104698165007288043649674174192082755675897948213721440225335865992631135783886662210730145409276994610009730072220436233207814928253201091785362057414483257235395189996101591853445920237033054169943306875620235489265102302577365576531297500674786743165687832528118487089233221823999393275387529196666874774414019417339477793153165178875611899346875924657344892326200045156490741751727704542570751668701194952084119977202232609984208844732760293047071126267694537517938083268904450038144664305763520066647292338620329638388006015058624939415811293977293997714595011355313264510298015748804071958852201314299135335819164621776199922494678997381454799363899567828649652523317590227277312198994392946429655058930873284529962325709568487054689939505802055369293808570206938553243874130412133554927537373794974805864929505012259903188266045731659649407348529580700281000609397017430092068334361977474804630341741468620133793914946566427191103165128089951002107352305785050290233252539417788555909227067510322183448607796745992484871816367993554589847197712738040013614550999115809377285347920406253238355479044069484680559733905955367113083500666908746367903497250520554253742883783717719395373425390563581931630276777618337516032923488931583667761429282098977731168218471708434346453518007238949615964032735252905356759555399262158584347184028901774775194579054556619355918790535935399990771064651827173734249687462998946957719820016915733117685633053053929910092981026150709198096882620131367017408356603842413230780130335973492092138780290916548302487724534724288750237798140738293791934567562611804349184413611323173809931384550565240226147885844703766581165890844460261854588884970870781108246985095053359588003104733516465968216479689772489365810275474509457860876260924321403821156740790301358320166854349719260562582354248808926578676888332056229813058898968280720735232192634044729415789983484282690222054487412057644301941301484463321446854491373283708651820277975964528557889076102387982379792878114765088314400687054140605689656829907605517811826867405480046586820019330082618169327568414596182338234353803128253128639642512009440490237447769524098795056276954157933799805324980008953629987131818731227465682401247094310491649248120818965749558787737942350985710335035970188399190722251916272286490526609452810908979614834432061594752028516474047813369440529529747110964704526765334847518897707531582743980053401896988026763440923563298750495989042866916504413785131776512875844067645555219695082755828055217405533011894420209712487625704793451374144721474080242900358257121814001449258962926971630635329097176105854834916638443202983472986475733298111753431888888331881685349330907524949279671996979388303015652127374006631729267302197827388963319358495862098342328565752581832657288602329365011141134603985622405743964666040424695082252541489512419047154610633549691948147522764281371852590048781319606464692925770460850141826240045444706496187519976256083960798983989939538648525765060027662453706627621846081394734101770713734152973064044755489976182273330711796062525120998883091219714163953341264326823346216252038945547452605017939107822830580205046022985841503431624204436017404329205260958484403706284977072308399178561281603510315664830094372993865077276872969991386613671932470732290208758477197260296465274620743748053318231865651335649579278167026941208315171610014276886519377963501873222841294483296659927962222626642371445900143281519479487574531894547154321943687947460098850500014704923426564961552666769280544739158977796670276346606778181327880239029527700800316617419134634537102211672114666205316277162759791706957092916119018263560273823215285436114278488760727775819315862860610328078846471146257234551708739682014721811781733742600515978153823212046327486723355297516512199859201546006007631357303545055916540468534523566127979363796032376753015630652567568714789892289666287355869731216398444437776628767201290245948163244221136726112283780122547164397318472355282649567381481445676486508184049600721704463708736349656368206104746869657069073836661741470995974625025608719573359644415466567322323540415334651056970580811305756116008759674301763684204839878408752992884222213779345857291588462354075873599597926369065795880678140692279782762816334151140468971261914502838358292333923507009778594558377286622146793040934179629402557505083433455895108904243568046294355156891525317977624375899651387414652783453716273415927192432950739505376563383020938289179962167868201986347920855819418817822493988733724903686012828931243677224169331324905761070074904452848953475261143529447131424110918468073559890406452503476188780441085987474460193475973190866169069858761648862006059948190543738641010523483868457834758001931538747147952180313111038045693167052913221283657686254634644907191344303917351429174776756238558163045511026888245243998340819799733932450243797617546557449132277592151226911445621372066773786459705278851451574813289491451990191588262923649221190100886497359122400200435732804185131689194909057049291542145979128215676376786853385118102236308944057929738982095349909797180921050222640538980637915751011034001587705008471630994903374496574201373085647952442803500269264785786907424234548388893862009628780420059994632260395436449022208655709191073459863022213048673057750066571023217083775082215716056748521808016821250049499658045989442303773211326900100344282979361249984539227619020754313694428159959670238301034041861157979187608108038212820557903926727553354670845069169910073267408169560840945513623129012688707941147370423670437326149917088666799151543745566151174604994050441989281761631813337465779131770030679739323181251341558252034068309789954005273896553971647697887460321889041077704124790225145955368436435859100384642714954320768297871027117491767149678551202489789110581280812450454233326257189776567399544032328265912089476862935393267830492765097208426119935378718332736611030423950442291955023700110903776114614453606658806480453119332487054131453142904774080288083573039176528465281881320969337923562333516288120818159982092461519685367004394738199819195165142413680853921551345529439116787299429012418804615331615208077417979724462624941570576415633841102984575775405970879372510114764591448735073143445528632917495252535394069877138439702658607629063148878594613864737132907154832821342821344536853028173626510069674198125906495924651798005049891953881769666883462759461532644737474466037335787768627607746044578475474495813709521910583710437865028609184169294945110995859166766347010730089938000365506128547061118792540306126457988546805936090872518338858332373768376489978388971015206706508896715150481084853810118613881277914348275729438927691273580680827932073852505962625045220012444110694157037125907279372522999923250728342410651579145623636012651786254347012365924252107820543862981710776824851606813474232971062011341926154020596719748167575216809128261823140621308437379412424037335412814852614753758183125247285370346118167614175977460902742665953552819750571057771018333022266244872080316309583653829141420801585458875130650813903872973774185516750499261103544133947589263947512233128907776736641051484309735027427213347032592685828530835736772525484068934203864319453423954196392181583450942392137866009365302183612149449993518101276256906304929096658182227768325114243215987072636151329022533488473011612033851536455585157539527378456920266207958375039219818453991913002881580543372803675707875041117477033602411825181663381347145785447755429028529435589848810614703309687151426732759655412128354123439930992065318375823276242844733099256059132017331383159458949352240352870343835641710854680798803804162429998285951019393087670299829667980563281497182923967405515183594308347011325181815038834179378339684378834978286522036754077186227153180466101831564523220439891020234276323402212460449947895109644029700678307204003371426183454238727380573998226600125772269506450756880503588108220109344702533695577618829522131229871900131325474219256076292844066285067106185041591241231342006236118481062945450493499899336797518297317105903113523634286617814046101442773994006701412237656058300904603523653722860999405345145082316632911421777418215561356002491082228643183614080012443287165245508561690985298335832425081220694168686598870670380658548503112258196286349665434646478526926138919642718256971992388014400505988048861475881058304625339766348679550876356567906355442940609076901813580251235842266742089497522689366157858284114853814149123471523121176683759255204960819964176469798003763920427690795943976758174218441427545825423887548211784364250922807797310900457106919216197717663224198730573223592759466298419011338522146606126481456183557607720856117514857526822474715711586208969710486096843584719221102867638936053440837741855167924678945820088759958188693384901317911749708190625954732917880195513384287667838215498756952519027782307066967913763283485607383020381163944326376906248026961883880617473733836859604561798894525324625013901471342115419758876713848412584579974892867289691105330550407141010420029578670662374323490680396082604303483983518951288088058940906960694368443842341978885406753527167581015471784316274755367300953917069988575144261320045595063291430049023072065988824660622263107059168980347472798197228137880767425612321564339955244761201757570181676703416172709309880088959464665868770413588564035370541299686190115915643859894901325095582989269160102136478373771266812512954175711219039514511737069291379722199609132676794524119992582426238285404094142628472703882842973204894699307314624281536596200690403346226433254150251690084898651979308677467103611300160091104034155165215499668766575348782039053438801369081191796470609235615378125326858253151764574104423225169640289418144567408418988215822046257218218713738151632687511271375269907317546863194524528607923279983702288227204180934139630783642796477543817064080133429309349713860180612944687357080369651886235001871920569626271643548148179359743161293040026126641945353086439943307936389793408924196849682380078211229564219245934276138558031597094857060800636462011870918178660855605669022047498352369184716288022820504297843330268416645004400093386818166149708897291989584763238139336009890872735712776009244714403865977665366552089251867649699211268414640961671779956486999040600823686412005473464863429333621033423329868929049013535287477660002868050177731353985025288179260561839555415223620256127496543354360382900702088030338209476340682950935178200676912015951846162702569253488322524184179769392043787579957774885493277427750559926676334320189698358073466861311249988907976417075627036247340865954124044525523604642130222136264495291894717011351649839106485821671503508843610841396050035169214679984574588711017286414666421571088728979378850233486695688866598385134357286099664668197687049437418005463404863575029053987588046056332831503812068384595925970803213282562030341737392352245267894894309772751137562635409955739316110259107326440255310679834697509805503757557400558207737466511542525623957234738268943602359974763110528396639612603577045216099899328251253354538390894366814605753161498333727383877589334917848893298086809564943473939503514332295845132067361223173070347546224078615888881809207668526811956534015416297589464303156335610177746852055497620181995828760359528202521876248387256464924008395426046135384062790525038587395887935713405078376123080714540526291810846311942362629202369074089463259442606275147379488530731467533152125195793471906265064015365702088873448830185362009161872114658515547983525090531431998591193775529251935497558466483928448029539772399512589075351228991195977935827500110363247299636529262154613205333379092331752256309946181896196718783474990920859384624089518614318904255235185361662196014932497408180713455676351517948322680319220640726705144889199572836390442399696167436396776453501510102500902575699199641856021345684116152840833345623828604229741308844106103292472163881271893165438617199617822656418215329981771717271357599513310673408038903501850466162462203284609454346686653555133286327494489871543338017387304527286802875831840592299025572008579612999693973846555380552344666445646256523521319598096096825356732966728287008646610216767598449727511504226185772894849328943242062665779605072703144136847489502288059131722083760471660618051355339817063830225416525631686979730762358220433179499078472870495920886658505534693235461146369655676796865439215022074786044778130150126812944152653803284048260833017933715113250563008223043831901981023974881042241451782533209555625500210314961620308005581355180460059466974602221194116447647739533816663618060744411292996967766524850632483849987187828008425666685004790357968377335610055272327572389968767203467157798773325099838374136021486218283163312389355813117706061388027130959255738179022040746365125953610202294494007395119364540647830076074789539742296106399613075146668035313251053580699930339390327623709441434488524933958527855342844740942177135787426364876095411678903536895874665446008797911963226469031094504768263338130617426949721268629301352706797834822162561410056833387522283878028523093701642066231669255667444393448237514125055044441690853011626607292364084193740314666412298050371576990204156374505739592288256482969408434396648394990088282298065727447662772632745937294515558794184141883494662150999793517132579420226872329277281718679029703055438075126469801440142164536148185644700205007026895068844167497368209732627623871823533991291056173610988102605019258714814252013618493488889017641953228281805958722423296282274777687101260313445178697897262379204651041840227278956651362368380325410246781852862226680437062857047768164670866765844809594082385718073860371854755284178943751599320499933086843638236624550524402146991579702656639317289720655761436933281308248408167377135185074682733864020975732788937030891533197721615532313387899072282693832323782022931463006851911453343515971262495916388835733002584823045626402933721332845650118282604565926563516092176482142539603686862422506579108978338908119598302956551326972094256060782793366842849257494682107930592725088755549205833966853741441389958641197774765643448053816742306525321136006777719277918192509185907716532290224266755984979345851252739530337365477727928860994897402802740393929351183687761026149296187687555306355904318473276412830200568614709680281218998466833735537064426186648059719507486719866922601804309329777411005968744654017188068525724384825485736101790149346810949857874036524735503267305669260599619350879012697696715596554678700112854435293639125211778331126692786878770582541430859358059145727676762877348936999142412458589839350212104461599695727243263937902883576384291134886712735841057292019991212382931442727805637676822404186886483459229523177421462172933312204013643080875358377970686317841371559157450208027085373716179912540123300278902340182948678936050939819428710258846739835312446655918583679160542818635499230131202884843387076448431521959769502052378504054377477517477593728852617949564259391195380918255103410091112558874117325592740012043806664780515987396167610536198014843761145054354190232466609565900262906756578084579044539011102260854603637370709836222160880005289529130983789014621893923149475813090554887424019673799346202154355937625765446466350490616414223176148132697812051415717934534148469320337983670318811573133973296317795812232614207191501243661102208252832317767189491632820549800724461469729961018692789966358165082107340880360969546475445393682634009728776170602559467733509651874500905088807074485565596784853145553984655771741816122150569980020756358867640366286016839849684542306821737749744775888971060703667765607704383221441865598828571326623619691155732834144779001769146440732241294906963680257259090276866713242999573707033004913966209718501583083913414076719237416135133555870215491884239031816195625414238619374270152361445700828539086703870437401648266990208716792744481442733051794127166802619304425232191201954841175253584646788766099506890910441474080875964579659260207012575811720836630802226731676598330104590892948246186960935319862645518021216661681198795745048537722329535238942734649867462296087038964117239238985227361500067888950604703677287196513867371123683214099038836115319137384939309930966434712569224254872735886892073933639872333444167053523884887770416209709966438213683222972007310478738663065228278490120256642332533726856386540202598730895248673162492686908101389802655428643013524636829845917928513052960165908450207715030585924391486453766108786998837178271513419995827663631324874118258613034917736414267210809233721142053406659618276204127381408376433620717378565921591874981315564494797147544463850256587550798914087515197961634576013522427352208463030145181595699334660576181085832315519571550677347814073956914484710178969539123670139246673332480690003561034565759631304964294720343425216676495778695210289758849386184791320536926603027251655319793331432765793679995016613365295143795719048937104860964146406248320030841259014900779692515090110164168755352290404013041381079120258702785697847205166695373469485641568811320171075775043091349789077866001092334158681715350639413223829193540293223245118772380919061936232665881139744287625714448505849049911816260990375254150162918559876105077249290748403441990397651772892069863567802011252734804685810904427665280838663244377526657663211462916991116666628417930113853510031863939775874663425761777780730147336838859854229073039720860168908427278305587407253723783128185251435618284479726620703922380717362557349653368613430302537040259660265415086923653357346131603252464072480865606747790686804455180742213988888853361725551099863106846251817015125660668557917194106071330101084256748319274903797827048487124475272839368896545482267490269045909934937005567693650116524138868011904625880225789213596051514365392696236194197866679117838139939554754415428258721160890270730147564919999772915985628714136266282564543383078704234978373143176067377862632015383155616118521280034819158286471387528500702805018288931693765348643643578361568159693142417810866800359332635095799001263321484461716045546636100388504847353376050560921447238156122246356064838386171851784566371829708812338130686696323778688567453127831770245473981250861071538311849450707620619876494779978346938466252585073034489090643587505644827830436265655910596544411764000256303986620485871939061936896704870207851593540853225482813249327963428949993705390811838111176879264894709812787554425351315752244865806915916275746261778739304727752477283092618740772518370618912221979684586888707184014414191097516141081052357325801541572753394222630115647742579815220805723476591364052460816037669903323747664046312672063473541638257373961985111046093883129090872594337674922572523706726996432029080752620354143128529595369844532912367796297890357089913545506487420027459645853548600832093221397724168740277947024733482247429417697278509195063616252524122449058191734507557604919321200084637862831607730397891979238781185941044252247093395780038956128253033801608817270409632595127343503595869107989661326714808546593132684409992097689994329106639090754905637244410792177235632078698902034252303243792350241294677509091548896036085320918274766549373181359589110494088174478630706433326128368111177879739605309422675084788818614167027766094442212170801219022499155766970962154771884290893058599504650924085546444760294429910234901620445744395624743328385608287849723980238183496861462053079601433314849035837779819996350011712626023203339432115456089989090196412010843485599882678725561890276621256797863344270653191380182914792330191009783362194931494202276257053753208691257004552771208678287029789393001263956982197512601621150252464626132282327938004518009736397121049573681815433907730410232453863202564500175018295095923148928610263014125441877578744759820084745387305308666606193351929004996590561472807070098362465287164343173410746966336798312380662462857249290554500553534445573375965380998403172341797834315850846090157787147791995238731504590598466767291795873863260415025949317205140361512936833727107981886441150521010779412664510350908826840371764040590196336875730549536757012161752530874026230861272531223439597224790399924926846405848560839575234133757404180743483912289785253110510477032774308699567063181530560067878749777793197414423410768012826315192444255315473726772785002268814662958362131663148142319133227124399226804977340337777636533671762980422879260685000026613663049533226151751792272734892217834974927839893408205200257997934318114424927733253010582226470584066076766657337095300139657614309962070790269040458342546103393512679704141035512904686061101249483489984144807244682012444531854808605361336638670092353803406722700436423325878354055674143534856419461601657164238226820879092041628102895160683580080964999225127495273522428448534966737036250448933546537965151354567807346321510567459029430850805382183363247011529905772530803723533437502593493524707524729799373212102720493477382627096082590982182854938656448046530140390155107695986078201692554411204790867394017974348162698636880124475337790397825297513244673870626802707366529812782971816945924658332277742655050328706354267958033358768421540220440429922003334686480992332898402194508515425604008529859400407031795990635000975062002647360991909363777597768249878368922481214296042836041714918800547870917366236528637687438439753952624561642626317450148184598610844206723369383692890760252244160266763473380602987741189568354656142604826473785713893582578682119995391809684632765952632698318557924373798205237183728497633507780505446880888549253164850096954559430228122349442270761538682627913149587856193629781625204771879452107136136602434611022212638924623327540646283301930492094131562964469248053976096960040204141244312694898303160716512596527316045587150032306062288867141889986168207362207049400049802201222476265167662404685667004731876235906892365930793837863471467285713139561680080020947883961179892397500153713170078017791035675571293196533986532595772052215826131577674604174393630182545752353578492613329202665644004532370453341953816595611643538373955105408721867861403956451241275837435473403412856985150072240481677198897935689070634721423304722410369443614507100903356274105089529771276038805693620770758407790157586538766182588442407377246797865680672910438684979089869613419913108619203180874830995654705060117656128893219223689925835428598456916290045176579465106652165713296498601032409974435196413830903773557824824403104970401997775296642394545194102875012288183177045694363231715904913959835633105729558436668448737807165578227088484572315214659173291832064008488322190538828665474519843897745133248675050476605959032244008779349224241963637043576856429972059438166080417533643140772942785054182964128388822062167415072263751374834892226204635913043660423827629770576132756341109523018360044303154490149312121187503282667919457169180574174649180529917894401168538646821458730699049910160707436975109040249934822284480678931325326621001434389991706746799489210942134114067987287254954614815308118739323899459639442256303035297445161034014927343861319576521019483201158577294353031732983647436235669014063814931871861470649799121862555827306303490807454377968865085072043860463465999117636344911235752087594455716870850501069723753911732422414362503352064108215512012154814206305231186978459682799918290595417061824483251820962737468707040864517955645625754492158978539675335856313745713944770648999615243975872360882772176994245941570379584645631359468525975280241315544579063678576369252747875202466092641910764708179163753219692143710639592880964660151219501994612414237712688458813829607351277404653180816421814064164904927364763186178633962073518140579731657684628710349302401070518112265492641308981806849266263352846068768831291664929875720191543661177094467825831564937326796023028541177944419345591048682396980419867671854273574849882297594186609025990727086184956232180935531842079489059358701769626523846686885856874873557550782916103202263538374345620762374889753895016555974557357018271977019090994283738584021195044602467942715257428515851042259912927927326293990008135950699479999634094275565344061138843376144519104737723666983944147580077291413557803400243804408746794066763938561083006539762109966225467052495906200849574069428010453142543591749449257475610352194978883948556200272748147592167648052875948066709560995678081288058438240957267286520726033763588498633029666728189933788578524372994831259727208851146549474984390977206478838864816819551888771853262071610983135649418575410482799870935801503352620794207809262238489339401061793107913448835643022907046279016684754186304559044748849046196763613541066647471774589875502046233209159206482723388236498068561427461964117386865202166178055157622757337062757719363931734466120405831115937753599092788562641961197849980333332209255370367903278820737258833576020612526933349673752867766104499647445830681852062350660058399556326946898034441763139518633449485204684399758869348947413926457767811911837488824173218528714519054470798907644035867590069330824219329303971639222937519091128204976396746724009194501157911789731926813528848043150709485058489425592424036920312492157185989636486225790060122044976691971569356053705085748274660863658807692993152232714879898073700847812828676350506383501256481049555977280358078567242051215165002486525850636272851701142259896746854783922460289231453311706772886010680871844198560151655147078461158150126081517634153213616451356450488893652412621577067634497581917364317273128060936473363280320608953065405051580385253762599034311948668643595209295516864486570766329825483386034132695540958853442956765459568574723833659023410457519153638983422965108266514582964748896837503335443268990465373309846348863555326763213127915186435390624067216037723410817538887304697216533231375106261959902430381034642113227850082627057781529516704082262901266465394941582235225259940811393537938502363292192340432190425884737761784724017888857233164083909641778084349600238746103194699516966546337307440091691236118384205595362157346270531282112496302011811760294417196978544186181019627848041650114137543593034351258952228540528970368524063540829143975758714070524529820164861228342545373826665477009432976385235165678007094492103216138211828524200741805608322744453020700426575421270788070805454790522363955451685808755037232021907445026936999235260723598235794959419207612336999139634364689686525791824659689458431717497476848822170554190369936947259202010361628668745573242499209801959175152519592542875513130104453797636107186222426257125898688171449255016090150017295933644149783551535146433390662096489271644342214837046753670372316451666233932571144813584580912249525981697201470787621226590410219448825067082850547695387291653719991931898913410193665819419711802975682315032946746286464108352816199901686806995273226255380453520780496729106522410838867244813135096319299206885233431469169089427003373528125366617650137515732364538532523872908449754998528345160090631679138415952256169084490180839519402949086069508496306435259710169644602962774195037907449287105377693515568605276473006457430995967017943820403782433707522696431828548386907256489454013469436952327233905031893312815065003219982584927762592804211268383408465563003650877050835662256623338509316047049606800177155680465920846025792091597668951108204761504040404754218091778868012307267802863631345369733059510363815893973869888609282331975211527672751001712617222829966382747411028446014886626514383189180701663259190325668931066068465972135495888672281225136212824189582044236637023304168803474486036441367988643368242605356441485164545295315238234140573917799638333945265177683665076742852961999411615796231965494353767131131231357871160940378436835469779148053140184748400761409269194821968009765113077182732873786856573922549979353788306668096953688618683490831329486499772973555050691103209893723337380566966689573192409268362298634079795674235637847686071810879665693006357270718539950505085290937728781268293420264962604006449371606006454435509533141674635693783029954696096445500613902534548462220306897969286645226637024918347744746455689677667531847811312385649528785592090382944680968054806108210218237667259866291189029997402624455207420268737080828312034392488830187810346365799093643443252670478271369931790022249503060608801191307930511319036702299602446028932464762426109174860705418671594834150316123744193954968376692985978034239827719382112802458278587162888949642016452867211769922330039379461938579552823914779594436602250163995237273831904960638685923324286982150677283150091295615467754818526648549236023585142398254234712056615256026060878968516347605394589939478791663640815774219392997199476224205153365356953606144396315497851746877074250327034470232266518547094308500878337072403268636403662206628953694356439422487903448623067625122076405387728147919977756258843263721323080044206332115312053063160351079635408758084077455042849855855734875527615174962383104661157310967874747345425592422515360294631085524304638740856747496084484810249092619330625659952160715706092067225825728899836586969327780333222266587230950661692480480871772515330329279196964434962848652933389943271403656657568875011903382710168543406258533203638024383094518573423530481853619038665929016744535037470528188909581161368015709692407125266008274568794180473145390471421017286381558376732328203562489371675691558491122867927146524552761059112155639823171062657564052376588553292111413100424814548369744777299128763419955577146891052581807463708683442463492190177113434977831728208554490207835772115358532292238146643310902121585762063133297722349453580611407879801543528921703790389425965359673275317610447952676484045997106350465281766738108619193327853837675188548018473013248185686762096331844789747539871674163405398761324237990138816945377805945337445552195389196374992548198699850111239844408923584694012824671631144233667070786784257217805700901832820804012835959766180668834345239772327890004847469129601790243416833790470395607335404271322645725175207783109135725950107306167770286390655646203632697687978720610696088132791772068612859638805204572682332482271230806525318289508956955864439480102540457119528906982715188731951293763664552125594680486695358547099895972110809990593346037639076215329739806324329629082240788780900686356873363719796586602904236720460437890382241239210896461653321250786835546708735815757434276928942136005195858088503426716164917548079974235637515116305038060576168997193721362770861401925160303125521975504914928481748915194166165325147762389579065460078392579714476815755070684693268113977757467623176596303257907747561267812564744377778526977929454699591359019455489205048594763359404214869542321918723450503583101838428236606711094066841276083517689840020124776679996802308694500826224169700146915394357383938339043248471264051362444430294910726914362792069084283874716658044015106369351418565151976722325381551117273969050890195716887086492349109441439601061026442115073146334112144303908939830800859898745148286470218250392731966913126215155929545298764534561379277822587943261806692943015696490100017511139189781282384588405078542664966005640832214155150090875568897635879987576997784499611154645691171727709490515001042521469516873027884127621973489907552525357180383340409131880255362032100816270692263823821158364841789866148461845845598838672930339598191569547424290911937745549563697122709705538585201396287287278881531213739803835225237792019844480432117884980726661638135061340306374018742387493686877310403552319018164338444694767542387765092427524765232782073851137516553634924611472297141757834077225531267570672797761357319583065719624267065320719708443062069053203782058936353521210419268462417914467358262950803698045908675832372155805818429919955432002012442751916817448205017463796935100750033448842846329883393322191742714598208263303885141402257686987847927942002384430954071834599375741787937472490027788141186191913824695479454570934033874190900370605570579663655711570656345811978682132218747036715694952020887308341322860011437370409573102660241996437290024623089359522144951475458557887244468122465680655656254067763941817913065709801212532916444271865221950157395391389807710385210454475213273825749150285397497676774684178567197921597996075231871160127372051967964970127062427508122065413610375082377632184858001192043214557422678606014604813532260566899538726344390721999627046021800038412465045647605674691892870320888103415305884927547490302329170254175630768778490232244138294628256545690486148561248009920918219015095988042028548751927887240862973089965924277564213933212042950972206117413878105760719321849820179644161350547307870769536395572373753062789739062404246912436161720483504596433710895969458963151278887057529648289625380553989972791793047970181440492650869622858277511162990401155960097018475151876061144753998925876502938667042816761078474285762434009749391029488901162025828873138083213919469755304398140580073435088693497762781693215803651296980136794519680315946000809231367877959973081273010725678023050182052033052049313386752381278460710937731876846828311413254807975693625149075849449541866384095231286698921351283152353429179833616202169722665273132209192956455830669261849794147213102196613201211377639773054350036256725694581181144190624746534267468349681611513602334005589781613345148296986973394091997309769819546937071846887560444794567145839841193860319626010073601849526545065509783898114093833857043815772966566870318004415294915588633585245103861841873533127686783509605334927278922886767128702108720869661677033075829654829694586837756367418257629645059290996473042829697479082343587352745971199012972728523483518195307442434146782305004701775147405674141771641868594799682541382297543544978401240937317771642047902646317765557254865703276169772038463973957379898755453121955234131802815662743050358495564608136161405013385511526453913771540064792097663828376156567798482484063712477222441744511242640557018236065035864754723229282649487942486985478276692102019618690695564019946566046920520142519994690587138598431040367134957021786089217363470529018388793650399151080120190003563501769070495039960096907676238867128167622726132803279720844491795152680044831047771249761840604315142101541746173889473072135878459279791189386899170320407261110428742904078648137999157451513413462447215312617776454793254405568037354490209372070796195356953502261381351007722432653075003973163752737147711959338870349117973252025390830503012211668443631052555167472851601703674715457742385234976430271604085115256113206318364285445078381779381658291059195806177405912111528594277263462742515128963666687610734272461780444253492107562866356688506271300761255322423309303489764401276356929369212599875428041993680498813343291270747597749753594038884802653487822334911118979744364291450070894808346533108197778394823000185899837703683157851590347314695859177850801278950080855648414617086614840482631330064685970810127441404110350621634512938578140936058060501231441345642037281181589782612756663798364582244155182075727173954474747378452533685331214385102787676101756496254319858047089751590606478485139791118875674225750741898133213188380222761668462820106171496814260420500719007282388799576087871448825375158695953127435417465923805254895721723416372165660052095440237113402201393340615335897731504928870350026268082517411930311875089021456862697768769056789081677072860394066771488581994869825822669630609511048927647874771796074088697539617144585785961442610269195807827096641873288478974355908607173747538469152182817018802784675447728003700418930416952603625817913250399372984465661463210983667540639701334270223436249257012045277926208792303422746958347317315354896423082228319335632741053550675968833619628918001424584843822522339447715665222814838039385089306341976908504947061278508823881660424570860013010131140146223481323005847916130158235314792973622602109653342021065638451645587803085074457096190403929130072881543845387630179242672994866201962693864308526981814528333854672066012215726764603686510695945845400262886391445148177049464281903467629240415983674517088415013151840165182102531710805091209516271614155502084945671422946240545761132614424210059396008412291323702001307437303878400446265445825838498996714058550305869626089884099920638201840739207181225952641880740745557111506368457067365578639978118423304955269867753336518056156074019547248523401993702736907021162663317020543405517250175939305616064631666939853757489971941704004736799463312422748919426406859430391332074457527582288009080227006970746967363683240623639772539816839571852548588066922238717137303957515066488880327253192876520729987937599722676765575732135175352150404298143014900115023429116328936102177465106546099572833733538479369436319069018174755413074968137417837849911106410975480496907429412197892490635082846180044742826526785817758351256064205342315739570372844947424723083539346316723996219571010509365114700241436058695749832886254614574458850588779647615094285298326085169731050598312308058351362990174247848532014588128726111747095544715498953170872242666963825417161291494144755298202108042717003474391416831332011995280395079361517275559050630137464770152283422986021973623259405857637841924165615512030627479446559596121676292503561937446845067421250629283247448670121175656280849043974497093587164099115075295553223361464020470766588122923740736409789148530777372863106334768413832700176064743436816668455121193474867311118951440707417511567147990144526401289674046494106865543221282483314864539632520311966834151526785825576789601281288448245141764366570097310339396332514567770133561295844826776740467561585151297921290982294981223755179751502098649253427798942779914949656460632898184344383286117453716625480340075942989173900450514350197938563443424781384458876586094180001089906097553367613399707309603959177224905987108195899223594049264632504148692548507506292182536157310035216925468122477673243008377941241646679010986024883244506415602856813008503242815688265449355168602753578750630536873450774737577056652377084088249571699705793933118120008348415446514229395794382593944525418272341660430043163094929617120621436305028343502841920298483674711103136119512676630134523464293937115796279011509121836862075069470173670501970497331400041843105494890441744790915202093639322746089594437364185225703335436953251665385548981878324367880679555066888879284539029354036928917462651521269001844141320592424165805127995801664503366686948945122512644083656234060825833841379184699273060174292633812562968634201114155287533904785698136367839562652028237653544482524411566737673405598176987246678086769149669895258406420965430586049759005893087847844869497478661326236753225355255763479170467365947354929093354172823113449204885983470786044957184916534067700911756459978393876918302372762623605042478765609771024443906811273707725112516711442059915513846769608754451346845464783435121601333599741853119659578357683367236719953947783341979648344587297309769590126409363464533747457320805351412336545518391385256881198000028981590962370906004630451380129632170823359170451466498728691892910098436128804036364441409259094491397265788453809322593573192146817903622309791833899362383743167486530183762590855294014853146358604589987217439155772585213732912571995823128133002307178124497264535694405982779526391506993812896079366743827708681357043219457481392631617626482581916209403154368495934766061452694538981052404275822027580932824837322566661988893624163926713197795195752491590736822099188014883764298460904675994719751396888095930251514189840554012875213140989125864146666633255170695693158491485420924305623858912785595984007051384564247145543473751262665906980626100375815536874646877092757323003242732943995027856417974776310364809228586218513918451515857504168455103116581677914865990095742685706439743959790168643499580671583166483754250012099501373707055900882990624578153204773650692648705503700991997965507093042733808902443391415925440842714197179487423935958182891842304148157911881824329299948782690771592180012788615093041471197241299108704420286213301357939181346534127353268673488466766607481629123913028859589357607093210298567857984344360146448424550036090960130635771147385396088587667787457534025542922216288463138836548069925987944995311745037303162786148353782758646534822089736812753971596898390133270607249471441162724510014341622259234835089247156067571854920686101748353866548026372077333207413307561217885323755238040573070007599238300778769265502067092688266301760239531802496686400490918562714312117758158539287445317803668665244950140798349820913203301043472609272547919676964604780597510304073305689796925793488315705253583046101624228982365213957297051513083707886775682011703939089768040411366266235098901095670799897792105162157568320735697221456893220597166385082450733140475691572966918444469312940770858591442436317727962745877533756591945627694190318885385175234746051364910290994966619732950598383464235367095896130187209177969420517670054941274844442406066986309994290770154432283018367017396197047081182572551882023762288209725388973802034531922810866882261310510180010072327112512056045289151857527722997667232019256184137586337128799294007902093500667792953965729705447247988172667255707763590814881844781712516176060158425641896067362490245029221146386676408862774844680516456783386050141748865550146243810464616023609124302150855735112810323795146178526957171701113543240839046657339222832545744893556252756086903943804833093133533741556670204771624868688977338054601822586750594737440474319678034277557012419127024233065948516008723931415992084837947000824192123334614377207196504428697798627402354268856582629865584592865773554171878505788413562172323492564141504274590411579125572668190283408107824853063664312799135556618035891442174196918030250638287640925049050401487140836561754353417445074845016411545907025512209847817255241847651103210547240654271740131998533122990809264702107622795361050474974400336294086200945381910724887736925836138112526994713603996244577759259304289592793596380779547212440711578432832702251785292337490517574437870255796135997453185493448456993134268430991701002210073943423557809747114491980027859534004893847697972406707808445959269715032748073384249266002751986360657653025622137640371318983994668765191305765888999917458278837116172583491599105656937282887854709126652339548969657380665434519875979158843943747901514102303019054830135564618062548051922536489929941596926679668289934542498443766693741892617372115195814654248272061404823831284923625557548363510592281012838146799030226865231834942825373044339939423694693428299321867518679037314613039398062708077773207117063626355916895444604508060006036056639072533641157959374978245520066722724293677872226423417320215222316066431503958416755188225997620586723695319659236347610494143804082944455349656734365037648431370004477380872504651411931868687956001372562523715243124321788181751986583361313510301132205077598164806986388522521762484327864402979074385100552795299488942238134684521260684186847839473880868463814295535087618874407089462036192346290859174430961211588794280386349277708386060648809681060775496632338194120431045092467289250799851020425620584916043292931436062261527076411906469105289552228878106410299519922935683191367084359929096088025971527669964479978924260605915458292728815270408508703387879067553340708988041802698543226334225724379345296325389523687634781062577655485423614640818878111173076242710552418485842507762085439327393074659927895726197491157675113093279561616817574603741294568386018894743157482567930500436176505317392722142808564073664364938235461722693220911239290572261918612439345487629590023790908726454339299950280373894019882372353392336846872016479966285519902621663175834260916601128963320556284556804234412790659824098083909621631703915301316034135414124735858343746117170709501076009430467736158068457950899129266552826808172723161190965007819824912423731284956894098069447800366711000640396218917477575094132970772772882994628249981507449865539496821536432595353885605412999352577881636121839612517781173306852886384825518738036983062733044473605162052752252008975398529336547627488095367064134348968658074622361103241917295550962457978289843384112266249183640182514308547852327471445684717699408045273452744727682577335016797163220564373706315992151676561465895685459038236423833468374938955477738982935003482396426412551761759325362683884050779467461132208065966687742450966170052787736277986512254815338250126842632231979866846880925400799828278668592559844076473306538891468940519691133274748336090507560316591665686058761065403377011015846787306597529746082612037490691946359503698497890388551094272386987534304602686347083845654377505152748836380442559597189141015035454036293599276718403318936800240911587190784371045896282282402651864380849594504457086718184990097631484267498718342414296680677464572561427808446459357556759426162267724102691705749192491254704118867713418864534938495456178359484438228456712205286792329012741485570748301298382073351235298630423159689881671821585880308601025235787513528748566674608788748969688710458554427594419473750735066736343486732880622691392513612707260140530957153487916751818678458777768950556305646916561549945408930939024569794810564603002166701794376580627922991762874175916470980726723879706885384831483168981708323142945942993101590458241051384357385843721177600605880770549288527692058990650490008575239094409370653268720709556078357040167097964933700719253005844315202355701935795530087212838708856311150660851568307548543355309603757428633115138786501248320470213796027451739439777010379200783056585460220469673193213808644001316395127392931265645748819757342209502325824666477691416209860600444894687951594708152001506068647258223768846686300399995276130727074965102579094863770436446654010496417776343037428384559716027924197144916319211035652238231711135961003953012276409269853000814141015519112449085557943839948078889609986548442913477607642055293566646542871863191475978280605426192603221677374629664549357702550964557897760247268603415802439472893307569216284924028312926333579009525021121475876910529875879922925771776419867437060678433252871179213418941050597415245583108668569428021968778197670679603911668165911984972007106374268898413423692668309847730266185297135159972193775328025931609386477973288434140704003158090474214178019398362925994794336294048036955710170469394777702460090938847414041431063165421560530149949234973836395461693586434783991907139274762007743901954967829056269884112406588853955332733291065715889981859200168350360110982837573673178020357412578808882364848403565456619502946727623003222072273751116029857331148358651478020367135641811269037177562879024945555711210058448166879679719749866545593789755625098168591788875920587981536646885954936775422078343103351969566238941024549168597389423196445983952006979327282152904527172460545267691833486710434206900583550561079317753032461589239175199262109916852822852347707373582537409738985856719349307357937630604221116318953022844710965191094050361610986313760299317492680129636384787979414885028042012480124727708874494781904881899006064517199869330346607148813476146601377415600774014701312536935956663110285840613369099881015950210837390523563000390636483137147485795103596203927622681721083585153840155029256430672853879283326945892823276081257026343065203874041460792288302315464860419923417018233646285289721554234607904034572763967677189266126658795664690487146140726779543728007702653682592269785951225185628112842026489594044744179660293069713392972321481884153093330459710319478132686579623945449379955519466977869346198566612579359285091625252025439956401162613256748963564041753042530189903019098045796228363009418559320329607971398501770404948523024808316237827988226416054618671294066251331905376157021737492077320746091979596789138875295911648341604384284306805436264864308017635029455515767501276799543719625333723213899276820322414243019411904280733019719774353342461559738054453380623690286010919444711390988269719193777202756614457139366654190331315988598326462908043264069255420755626968533464164805490682605106148992511464007452169364085827776191612199768076958235393132394919852595609406472189953881100929811880650524755860682196284458183238970666946505717475638696461464997695855001826104525448609348240936488280263761743851682907048682196981214819425267530215788842653260020747496376797808417418693069906122534646157493821633277010621111612170161585047647440658561789464003339312500305745411207453977670343791698958779147677321247399809301543568506176782856234828922409148428198848095374715099865351132030215471152310921519854563565308454888129766079933251921600456417333547452797296537066206581451560156905752522565612032147807016462169226010235355471483828147696509524583408064714761861874111695349803849607879156337092576468126895741292204447743553435458377994489728368851419000943755163746943919729212070805363283420848260677399864181422888749768921406626501134258110457561835232077643905054498652320214150388057521932779036976082186981881170766552896488050897430422609728156948661887467208600712489941467053791444340665810487547861800907304453309175297277780278157984394539248992961854428498364078805972269415750948643716071062255779334100862578645774333242393305656330995781502208204972430386457602216581898751682634866790223925615537738413506326467391084077959423711506547914264089062130083518030256232845462542557266029989492133257962621180024224791067418179968138966665733575698103769431975665061721689897121016382660142641299720562058582861531972691952424459374049908170570983261889186281112602235904700225142138061411697399400882339552026161441555463306233708925266088294450501148170805671019262614363831007163730248461898942744402195067507704684574154130020792900660202826307342933128440061866344925453682818221102489973465352632532182898464039283391365161144594464908477971483311956302167760993494185981806596388719176355346444946645707747516366553811551503304798987021963787274312348772464090725117877036589628681658739197492088913213301179859582022805108988679899193841008751642141508684006736811618700485178523632960841783230980428250297539607975666816914918745037482990251950386288767881626850778359385285429094801716129734067588724326653846205975387683554201045681817019663368780644131242242476627640438794674502543841357687357490750015044817902876290096216963605753693464235907969790865696315034382521673471482893219756949928503233649110034565053648730691315989405683745122860776227256344413208240242859415844986379238394827642676906959660153455667293557463442316640844908450705187571537008441105783751880620931112733727935149658725207178449879719373953540322470663789960275961532714686063241585941643012120635740908795305956322451013271810469384589838861853528308379439217241644744870073963386724836289100947396216514036197523956372846722289943941018367060495543057127023420859172686741131382727197382833093858339830029860433986233823042758877372814365754007480345167601604030830255248295565504043040251274151348584999054088353548788826505373349472321530239641944697531878509212268085338023838087705804349918945640699699994285901818040166631904515684102626755074790852923811413908407250787488091144984791229598321234561991753311972841848010134850541239781250786974474201259401846902688842853627831033882766236716205027323636070833282850300496388348775204172462223568084422646518360440412245127639422496337108565588171542446599207291005897723228077961966855907420371837014604970173495808374643640382895447696974833882805949456706558038780024217877132678971608081616720003953262027596496836796272975499132400448531196735490394902271254344540508256982785684728646129056855128248881429110576370238060812136976136237393242350193925146014191798924170041583875164814013255858520107828105015295213590391399603073272657650830251507594252928093133376013562039736475885933239655973703194465048489512190202075680381495308921262115960648451440055083696105527655893522440170699325763223796547670441944352320913146340097599835606793679726209013939250072759850652728421525812181203940453800268704993400718572293668427878876796107404688432367283663739452620489936008769279678210549682764984306751600883809978128135030337863430318378492733824170142765781877772205338093931386454437283176596026457984184225736013490677412899226490040434656037396842606047391873720871239595672875271115305045551896154334429401625237326564802731718814259467075535685699359633372190848035233224256179388177435160978849449777026455008410811019505629241561366098468770272809347498822248602868640186986647626580731756596881052022661063941736323273369861751989920976859205502217406610305879226261777608021147042443606916474568031101738705767889124011581440993649149111658891956338047095684056640022308870303773853906463428141806851373448733888714867178479371437038334080585180440645661757489239527439341200999852579532697524800270032879148659528205752840075951513817533829221824672830361282420839638308291267946821453187257037872588570395468299444722021355450556313881454311681313591024535219379736944237579314992596164807217970372058324380734101581400981359685437873742550061843494224013233378107418504856982397163536475968643971855127712804620751622999088050470145753859630686907300210045639322381507109927210653142204954936232975893408051271217811640510529482638535029264073909227384110831649015251991669530447510159036723183428508000048155885502665074025234178740908365442716032262618251021701119910295190602034631008836083346373576914074677109792484550895077852497255280457875006817394977818225686593723087064745416528795646120599259235808098932754539266104829627731428861651659932088767360281574895173733022062679460436631293592792802592293284548720969099200883715412643083100519495155272901202888354050746737504122009410232455437956435249650283620567870880463397723107382083732465670784524301818792672442437034941923890603758542862259031306323905662687686254867006197056037661322806770955596456072830573524078788880626936935179183730642044056531499438324986540542146018499805982309268017986763736482400916970680882463047574533845934003246225661845440901267473350559034193990536628815583972200347574962702626958784276356656672174643387960788106669962840417118062572090437612185000365104430117358318699231511562752128713717728731335002356203652566839116905115818258793863855922441253798183360161522891924577251364659970118021943974046065143707828071452243259331916363379829723781750632209815191187536356555424851808606867356415092555086067623323301578313637718580892454152614960475051519235730931893958395518769470746102867895905928773870451183148336509505584114839746360087205262242044880988773440029118151408463655229661754815432241984025477869933400460071951316918743815786386819826584503612264496497097374929477595779978276957736893788736717758773638266950635079187355829170906359432808430753970749318728039155506262711417478110211286273538102883667623393489711357512389932801088776336891241981385710659368377246334764660166508212954970219574453453720438267711981742201467760672297779377760154539068279894939219178504023299922110272423680817020298466013399917962346502324806781427114247354313774843232887541988618744046341278438034080432086319631047185075936707840975047664620471367561740820687202486016929718351515618795738293589958442876092421972366457317724839521757250753908452728534416753951393121689120548843660604274291738254128427014035950466975488411303641786048433155839875115731925920379201032355189117085043818438197497638634433108950047921870077544734188181015093354238397381382974060633515456388511181296132310414535151174074556042162960504138991930700792682926389622614717935317820561582161239633368364264799715701148136683601015548733667872628528365052276271265382867283246429860795149216621347726839968306928254042874684995949579665335789082638465496201323832278946755043280933310850295667643420909293988397868019032547454088679924221320963611294499926261622567801938942386280394902734417413106712310318677067625031064533829014787592254992375357964768766099804447132339670955336545801005198885103075212564877388399475015645825880478498065742653593749140646539374354126669064172780787268555845403391362347815892152286072121579158267739115371428467699025206231117414239361213928536283358111739257599731664625818111516984235860713642072905008077569139353151013452585830606530122017756377838824764121677825417853116844244324401089275635573122814865540736535940664571768577781125077727708114919663934118468901284868211710306937306658165363083274504212288405321145590334318524534726126727358876831808546389323245006109615540430488308791327964290935791580620971350022496196468913933819967806143033545250506139024066509588531226413852281687213240674496180926531841987731674972824130298656754104451166752749013752313822129198901809944042905459591494500029793132710588645973029466345673614907074196763346975716413711376054049378173536891102357423408743015996220957049552280962307339607928342705719736369660401653493247733023656416817177217577387689634334314057957388797490161446145005645605040091509648968500544930989333568890690791325304464145513493244911436236150010580103625651478434100594964028770459383940961232290537106495022833845868647354847822331213507234410760214448740250021010926932660806838522882863173584146066468278563708170469540938052736859572565473136147479443711401049521876724148684727482582845314092836520723991178192551317770223558122985477727403426913337735078896323975125350561972013447087064165673863901878393782672729453985918421902669523072458424531823985180260763307496329050674439189926631474011971150139651809560726182494997034507383916959041422396794503753984567495243283079297438186594918741256368724073903125626633963425321767291674630856914614662948424764239694824328461459629225226456967669340453916933699068453514446452382979162786025618506554119755244475127974356021913689307428610744861628049803686178043659167183582008176908257581477077547060116478382480363237797262470695567954031872230124824829189339097996981899326711722913330731801726496769262559164277785162017514713364559546250259823852863938233158562354274194805995151207845164442832696054693772725431598611499642498122465436239744584653800170098422964607822121739743061594192434966587357304374200808630188528269358086022098413120851549823261388667169886747816616112775621389801402999160994514345072285481243755913474838362434773302893701373317406942340196249621406559968831605953346107349124159190018558634402862663719732390097848889804304783890811701588527385760283935998816585392182975122073740925497598670119370589189983453830497196789891745296601478881151937013154833928457227536894350400086239003589310725151127894765659820876074177365687412443868092696102353899158313285456380379595637398238021693021250744034683999762656478389014726595670794101758887802539964518883078320971025954893550052706884519280438564084522705144553630518945910913955792011016851708907889187881723022776798322373929431429549876277787791163967186411065119589012320576961593397973225678145596580037875955826743543079458134888020460843972295387455448794995775289653306922484889949591543921775063221957687489511634683928002122512699742732061879895894594309433611206254941112094685308644967293756380895627948407065072813518343597011545972808979586560182815825105823151556035806895615005190419883076149767986091872187444400646875480042776993238345854332685530144980593002375748108306262044441619693417745319451853739959182680451840747370709589480335139950480160442812586322744006376075404620228008317351346495143577360977230587997803497555552341378067108187841411590611792261595639388517178016092834805434833301385758392541427086108874774443080081180557592694570521834534682467688608734958270188179234049801188414916365376191485128836340927159319172760107612010336370677633129635036759616581798963858638189104586000731276649660939819450793664436106510318769677868142225926214261209242161891054301788920513646333495599000790148758125256241762832455213825741859232329308881090634997856955569367610268235582197050644762665948464278957685699382081154839976533652809031861647455833036150748951860409458490452872043701145540727442821592286913359879377416855639490439867854317262847251054770131486232915144149420023217692097774252952497493398846715347759507255335313271230051547425860048221634756645408593876445705854148382796619933249174917259635435618255979212647241628646967690013050297738338594910286466846840030654619334844569688121727888292355715022007624274076671027178084175225074487919434692866049503415487812288757911658330229297277781009714629968159587461886870274399198644506045799291673527667287210608721057915086196237516964909993221040843585233292125835625242904521585667969980017820801706346871244467637709976450806090671430662496272393848458998066030159578227523171136324950149504924999836209167512777800714513511410003203460861453333181820050490782050119347812081793754599497692766978960781434463158974220913327210924261549936056521380747204191608110961878202790718318794390725591591482695116664249989141758522634185531491581472887767042488128136374911443463438600724972178910155669653294403192358771569842076890752141453304065222387359700528709342031194690845488913491576246027551855848332834524322766346017508021450368760314179919711466923132241726712454797310647211196672624403258947643515863624083394433149706156977546387338630131404904684456762056418462703874966792861349923798369138948039061549525650992556483597418050265216292799843306622760197301500435826249719242789191394997324570597306654101920171636515781269652548724799604386203439886066227777749598512008320813420772580940497605387720678159523483964443731753789570163631271842183354593158021894490953434680279160058131836527179063993448281932787324077479999727008960415216434750840184640859285294883116976276003608662201227182573668606012728092250445487232820287058274582241873106109374372355215743903840908580425706432965372338693817078567630683800822008435555105679819675727984414317619393819060613054196075416718117053067832750259048000718690517909381632044327502430223603992693186529709732312295675360540718821288071968903685689998881340100576350457636542979892341804941169008524231388580717641560929735679480191148487899669384485673794459899432885739060639207027848672237689738404585923160793175910896461819756522100230006446901328534295661237856464984196398971489163639483170343002806723290056798596975831301722551088458560088158315712406417816483570418839272176589402851131584530643514267187398795164185776569783859503661165302781212256895562731244856429259028522638127881028232629527074397837072177779253779567430334451442336519229677359320588614895257815683989283135211574965134659675666207880568062420150645722787793528065062406635929116116134647201613830109420835170572993298275145083804074927539541120650635488944910527850613487546662877962058136002905254030071835535312850512932040667400126500769920852704245539039023983012367491907198738124918105544419092454216800435747849262909509238773340571273130628688482579788799509382310503363401417374732805297513530371247416245160682772277395079025521781046888844730565751092337848106054732167560278254687306531126269576283333752514755635811789098748806188841901890248801254493632847454401219732056972646751753266991314215826955914272973358649825545458985549709471798001128222247555525610262729852217454048806532073875030415157130833647034713700416162179722058250400622405603291059823111304471968533695595824926342961881413723672426840546635811075175324952992300858090966888630177511959164102921719040293562563581002035370844782564055552500074310718316118507012469160435190291909848521786532629656270468381566707047544970753745531265984124266227652490023518420545920507806450828111345556383281879517665773576919202148906442815721229404381525771648099512375944462916105787966002765271444202917363026500948123101712067211556241302520554509114141549864563057679643092386313963716388271486126518522129018386113547541584376732201924801246480071646557391220571448062488445537754866683546495212493106815022540145492254285066972678070186323362556026570159216915472669803274134517367868006350190448897845690219597488203045013699898100088622233033571213088934438537225896298328451828111756372722325982379545395808950604766914180576417670171608039428387961544199498617854676671958361258815468482736262769719911151164339811410897895458182571260425459878239911160333605743283264675773102773924530514082393201664243330367272810928841624956697697768657619727188395457121341692275073240960524400425839944391727055454724278197011287843153818241163346483315654327417861212249216758980314417011111937956801383370365778342713733502121635274178844545233691338053772932127339745385036594004906735868535141728046400523345938593069602219336828537664659103479931786407112661872459832190122562116890086997675489176058618177925242172040400488689739987156543325078433998964425203515891250618811671349397859304540570828796660871478981922796184603456402486960427081206278736490368842283700170158705012833243275378473962075281539049971784135415533088168582754345635960253867766447825577336009439690375562731930132023413942511384464924009024335381558586716360925395188920920775826881548634077545500573069705863141477902253338390707459366846267655751224168491387221823064998422791324489677768650834267301332298580963217781467139355641637437699828428742550302903841644479062539390898588546443924137561664016085556841566941644987241664005158742575063629003339450520411687841837500980872142573151829204593336512702309037226561269135131756670364175165472392503421403625748394242511846753405895083470080863991117010084350401716422607383059170182878233818851172238675060426528551348095497513712902658390952627386405019541121145218383043343541764579697566422599681204661994728026081622162587747976532266811789337767364817687633871983521234092677712405085197031189549281807073521405667015057435298540512435637240341734072455732703312894571211960130443357803905149615548779055920717293807404703545410743418451054705899029839194432265457335107268131678105494940080169534850172402067407996622286683426574188491698452727718756575952529021841007619863561156580670865290263358398150385095180939350542244363163767502911770251988321314498338593290971307420427385570901255478611776512103487570466687198079683772625389369948248396937745150646773504253680593343484778632219096242275154925324047889716146111809220329692432854705328660167814293746637713932379810902938398481117269861954314273130096093183830744750420860550760082686834104717081819836154214596670063022420435072550760988407372633227865815210365501858950944622294511593863753909918758788476288401356396457004454741838932956417396968560066905236504933407133692627465871459774032121772845888369305170613456923810549232494399845947817524207121532267130859985761349696557990854077219823596930780654024744734084458011978643292944522866798397370403316633432839993412769863231661549761346052329795957239559077536322504642933678224934752187888361190136906886097099632798331017637221140248196811058021569258001326459515789886282077916644961418996390678347059088592262077919705181526891948341773330272025784289231949310886773490095799373065962380928682467733246524212224630988251944946293232533546856720606047408744943039304547621190401703402100750724937730306610248914889616128265243604856833283808491479732925259647099848624112018542270300618412662922618171164059201304850040168298324621929065396138550501373948392381683363066156953800610669580957019227818179596842568935068020900886271366660556801820038628059116767431557418205813674194383154239120315099693738016263561430362213575800170304254451294638761079177129572547804457937708625764023351568956033940128248838049430649122445366841524080108706087419392450736491354226502846757632490573617730870537768162551729101188779405325791294106022905106457973802073295587216042770781787343975668787949907973100693180874377107797886042975136414164516978489007139430607073021737458759057107968641009125084055605585123933099814003273698014373401853786370517139099757226282634036314417322063315001193096762726749455579955264734905121341879605872120092515461051169151902789722260632730095524940812909204927928535271616702761372482958261433869225546507189833679616708743869846772192445774847693219314374577871371988389385680740189354911222198573640456660715848447588198434055509662418010275247973187369293464996771710779494605417770591131170580223340170767507585428304840328066478917547294996352822366203261032363043901371007271545895706480948843355224783094190651802353247892207006141131988188708701305474195298499413353199563941232816308439834001470949189613204918495726752582592317295644555924584843683002504732819860894126190359669980993804795297029480928572765318671982628460327252938265309792842979544451273497923828648954060083228465363744875923163858302820210106710644258955194948431112766038659989648663692024857285425200257635829555032979265423663812268263848853229405986819056579374970029492684260989630195673357136046272430560826626266956177580130977796501898171538660585291508304722998068455737358622424084754001903909090511123505181523625746476991817101365376881546696904936546021731551037360762518852016955188055358228844592725968712075458675650811740638040909106685745350549056610474659462292969159879116766390655816791532244205553740245544061339649942315089653422175961988790200837095077313479665895138520803431255574558950813195389252796748446202938782433198852460588218683464781698238135582157085852319758081703939337563163603448310055978809713460574165496488774205855777273884279244390702514356582533218476285337036847436279861111764938358725352225769422854805423843309730081472704901035798141700984983724530562728717902036674184077149479265539831104101321686286443759027318734935135072570475266918363897138344879849414180459014341054672886807263578363910536689694469668302225767007131245028045647180135017742725624569267934385381487105858572342014733693153568377280354979377321400846856450072780835095825684253522384140242333524387441280849162479844952544050552989718696639029125906090874599352184706596137341728669650520150521392623932167614967793635639511146847409611702329472207075748191280822822701537356444884368983828427347956592328703148294696219830373655528924942037379584091995540148738872283231143988836174731176637907821565521774586577673704191727285861710060692671995929273169998121075613583404269715528004562832664792819538112777746594217661469962847247265465051714117004605758982640882779428125056939530764831673392962409374068328037331972160526502311129644614735410117497778982415703467568704588923126761449034832228308645249830968296638696439009914221088996225719248068042203032279466352000785551589357974176111499498223965646050190188384158148605980943111615714179536636758487324006452539860882297888312869690032848127883972680360584573297881923195285927228810602245106653002209765217281442292713233312554914128728662811697336414429200554423831835490123071661702382352632893875938931223698503790474056928074316502107653358917772360988625923586055691364511197019814346360315831614148365217328705977458077350919474017787653254688829390710888810772189199933070744420769820201042330053490711263355985744803128573954439364835000992865267793494696741757639369767596934818169011325024062654743435944325212775399027387617861719361189754045418141415150845380777230553607206267958527735844639344366355396672778859037555295313039270776300171230094613766555666341245546984960301461606598395867440216340556678756622559950475740914026968478246956449408692562191997205492628078893032577852255621206516868814746066379091868784651623522881163500368440599916553628189884256729113974906885288784357064837379525382807354571853075787685252987120643720852734620542638386695568186757998523896542566943475740282195753014068722060965251100790600521826750437921942743545312619941664826234817389552098398716457053094654722860847105554130333837583841182347975981555769609311071391140003897237531489674224497579382816319064398908370248077157941816693331446109828084394246678316940989657201154976874461177742044257561873223879186632254217997124347800005946083956564529231646849152290430591578413581507335551195761065260472699476282533094154146598137058534376696428775199574237459302522081411475857418840462282983682242001496117886984677687424581907839860009111271506662096413859243448003624735456604480811046105252854703492053602694929952570569663233792563772156007228288747839831719619586170199923612267159162402770276431198759971884735005605925809098132586589321668243034792133692134055325869010296910790449654268502599643600194127108722121235217717604825690037307516233750722918881207065664250820766312825829235214078026017302745979774487888521730156564616988922360060666746760026104762302758070741612687097698429594320610312547569197052873469062349297349904527540013233133637559600437429518864224700394300354777276740556312912971372495828594547545611105481671916219967858827083649946456745175473036734144289752280511345358012683979228344516189322088909378659841911513903746072643778948990657554641647927778817831134676013835751897794383115626115154622285903869405105333556059552788460331785089642875399566183236000474001835319385476571417670980863071356521539406992988007549076132998273324880016529929338374569284431667672278749544154928043081387878596648510644700486696544241126555704075211683584180960853872991967556148803529371924277036442920101887618270937511301484530256101192791696917894229336014549436662355426671195901913475538435737014297648044389094093674640483950773898164143519401524077677762441154537517985579637154359122603725740432273397915375229325600178437919666088218258414041900300713265240612397224575390930215561153166519414990275704931799107903479210215774910904024423676176089237324531254956743178965956261476920175959447012394770847417428240628652081077278332157659050056545711533820961885526766735182660654813167925248622380946662076821414332177310417728534625424226876769222844844245538218793975133648349941364524708340076389187545328916892771931767526851582846712459164830892440101120860671371736391344296688352312367466917573214426324641117591129128779530522406378755172276868051897807395538143009130358859265334302823457402286717654478093005677039949760793089165914665317732215326982491113311094657726546873229909508104781783735284411952844640519831246835457081383242689220248488713345131283747060602887064859536897341115305199297156830005157431018207103036290928151920470939390683631892657287383192889660446899258847586067407247997398051635089480176552491900725988487266804085909356417683931829771315508379046837046381622151923058304062014762778789114910231943849738518028373198128236343308614735682848684517826576450797170500067243237727450801050361162084715865850269896353247129500919902634004851071872548948022541097782379915535384983871704109230638420534744085004548592100867580690557298157649602081073585173781924758334027925146455377629230169715785016749629787696867415409657681350806782549069474297564881512240304919789556424546924363826634878287298499750904200143920709762069931042425389875501969140005819657695703586369772263954735635534825641262449747379073161375606521853764678653606048480943280887961737279389522713004212315730802615351967398067369783383178408812319893994659178526680848268775378225844082563007922571612507746558088538427633920894323441844249966249520229995214299252015281488417241447085549540982736016850488062722124772011696481088398443381557159294489781728219296489343861025849538194897180449081113257060627005313045263086476360224865769119452670145049776918528571207588737913632056216009480294491538328067283620611241555299889924716818003709943599438634800668439666513358923037281187188661541171847916872878068123837998514569291448705238114925480543002239401134821252071499735139605336043064969354142048185012774042636240079173140701965089146993532581257856211123621715319791981277536752085725953832848342006553113900381443744799229812782734428548827291903364064754539404114350279355287995512743006554569224559920634067722052885301782639433968204867434785273874875578932564002772611793621725006226595838956995636621850247722787143106985561105456175619914331503973473546463035193023597053727819578706913725639580270900043756119555025857703357989517183072193053150587823730719106468510427494092067806793785372345752700209039986098084570213088455067854428037822998657533255748562658813870241540269321340334688886531407257883904402747811562222274144260075890974309380002560573495843704087488095578608417351394647605815231425138667413962040078693330162931264728404723059011769293306326332848918869040082050251070601381666799263665256289882899184329999522422211482097233266509738685129836456708201349979487409613336383463102792352570182398381249857396481486119462346900676075077854779031599787889869913746757421856690687221621606968862631758630747171910588294152127199811732505115187085062448790993434000450090737919220164370113501601626045050819705634058766405452907907415777154607426736270643864822156645892942298283514850365225029693258771820508251036195528035107728329621236779677875743356282028072378179195092377492138256048314106732584403254230347023734087429225855290807386893436247548333770492420286330933159678734303797816555278124915058791569247005290317778473607828086873948245005068503715910228358243828669314670488878651612645020967055078664829665216322030122652599635245596429829255280760101168377750686842114542054138634563151955431637485016627766603272345713203135342848952323922709432010023215007498599441686790153363817822722463930298595857268362943934230811249375528557162313603543720367416780776088383725919021238700681350804050115974151142859614508031609927718851923835707375568791308078187562763912884391963176383370024435469988585695807007697819127073702712022178545152965110332379733429644426094823761954513107211307663895034949376490009596728090584289877594827133187659580214649366693992057163459050850016119773239502811046765151235306947734843578788164773497612835000880152750614478226994537589830145259517474971984833467698999182381340508279742364858869849017791920944829932158765199489889838317479623918338980767446540045337621365199128416045250293120269230806189568349740694695188007795690117933605112044464562916997551710086556278859256458703370933898020052993439681583163589651702042941129764803684709174606284738890993872448783144098497470986452703565522448252254674339456978977046238378242758922830432609240968807098415569648750647306506002806301640928777808782486199980952341371585202565331598353257966638143305171362490094677364625718330837405858169394418969574401340683363996318394083956247380750086931230312220155676069410966268936284216085202344335419909954241170623574093641798751519254249066008382644866629228103665639247925968248938298916033862211529771407325702613214010670277245826336635611310022752729191983492144956391499394566381756703185193706366681569877267908106057208085479600336967633455066756134797887287669521510562243134722056678018999121668572255474097730333279586787030520862493056793131569257082041775163613309377678794095621643938703720588453963533626902690677672519532785159394660743457550120308652332014973094403962080583694609619473895380421560871330879057009016374819242286654107200651585558704887880400889212183397259737103206378860816355070654382842463537740673434366315342530623994177210607258398042439057772654114189109936403878339477885272402813941945646213617725697817354642102218289759344993838424676277369110360822581539572267709472349392726996912421834443468326678195830719254261773461007841557471458907592012961988967699958993036368655805910252492190205144382131780327607000178325878433395969623854822440982580045939437919427755320635959002894285427726981079620085283259186943442465772593991510263215867891488395926403703228958099288599310348256910138125649569177070247209056927204804486816371556981605270174481397797515371188756728959901830968962679439327817118470377159330287300349974206095231659930913963532103018279560855372882001492730624917705747333860829763565390460685126244981436014040605332531066193748016410842940298191952320965951506690773413577632075463139976066350702705902750626235358108774357673209610040641892518310625216936650098521209479833290627906370796001175639973673578531931742518077725291504392775400426712166655704961519771184355978517274333930005821121629065633039346566426415947564959612323741442496522692330911047746548258893107223045750933541678468143605229620788055037912913129501363296326748952038135304943506247017954931202750070854316646052008056089965764942749666224466030880985008030653890748012771194191090111189136526646514453301097290009299163406904189879508878938623844763650845981638027713112379095045898611159593536056372119172614366138006014556576176588277325478057240965931038804751866109064276719816117682368918420024743784230866998511012488343442876491372065746731127971037502187763367710018967019257087632817417898762697909743238513708751271086678907829922769551196727465782631170977648265183573378007820123346460311543831926938594393371872197001009714162258461510569432785196818164821734552418543674414666321881148475696739960160016661384291357545984416484590919093173866403211303603639589142761594210589823103158254056953662122794340788868741054698990065178653488865903955471086083548575145043556664168821055446905645936769812450145298702921334654051167490043014643552644643901174690504238620976376292238079530945509699435360793885458427000508387763530026971659098060733016443259164840551524075831977417622351578967750814672912101286860969026831226221299511686413218085867103625095779507362046238614029661336601518857069245692480906096923706840891156286058564337842074641090521541825272094936910770568795702412923196614631798266452886031604003219287954651529435731966071200246535180620283097509493897474351976564863152999787333910379365435515199866483261791265399872649291078933887811959477473307013908812958119769834551903953313164984029050390778089721418277558950962540036798278115521929655278177136530646422910933865392217438456234415153643606638874920105832080347562572177569178001378094061452353674023894738735050091573001379042849400121759956712500488752216219853313463221846403236493858045641064606650345755147099196037175915168957989865655297359089756493823711387225777535364841932166501564888477550330495372411308020976049529467315296859377765982431999287910722652628430118193616381791165809561201159005462630058389669907641522988708074679048575934785385792794663237062444271312365755157657860250008999573423557079999421854335298662998827064028406969544194256739184834780538923028878358666357285504324822741516913416146816909873721188893275212737796459894393073223740502543332901454759113116656972424927728115463040814594288984897111219024960331117535338403120706016746747312903372012258707658999680958570590676184617812545849196353290194858157281271807285367462061000418104166984453491612654075492987046310745119409754642427689378051286221019164364057211848308411438900090990305091698869823374679361103629235219029999023447362724448879566473342711022465938513109410039536705222366874516885221506307225291769821285285109452112594377229939084950929366178848329257142371668914053508418798032884515278797263227540170417626397996087210677861074986525616516291862040316698746799353048114234243207915078037561765395480052088161334122221430046311987305637456312934412767812297725751569207811925812425884556993697735306060531013662014314592942425126207093789646450042166803123619633738584541605468934492235304435002207005558832710528014989558250659516052588168315304055722030636673784814935565979191656560530804737609342974419386245663688896777465976191191408510443703098878034334316716656911862548626127257762923339653088716152280436149199097359525138646474911239668087479171603190198204080519535788347640602097342230945394970545982338265266265010298208468035887999666801336532736961972815210105625588510303339395216125065982326397161383519220756713246561132290272603869987296346335235956210184327076261096727239110446820742089167640893912171374931427199275384950825531450409790655112641092252446695187416099777445229296285991148323055625113037828766784108945662521460063637570486017686143931359871168693468041750390669807764501851777575555915665516104824801470011702867364100767355242141531088353116444609242214030107740564368032487556179818834871448713269488594641374041438232607014787668972675909624798101424742498369953446522232868739960258633672726621308842746309326882356179323815628955541774155091581630230826312064416514453422539921663429353411614274502035194224768840541069623704436552391639893285004037952271800474264661449043324467324063445922648971192450924836429581849269429916703899314557764123710525897401462402744128197915996910872620121452791632281958933679937214047370223581403616899082441420593692066415785959605645400578313129284226158510098368015305290747140222538674995269908395494012008173264076637458498085471871228517801040687008307308817206835785246306147456644247890094063274812648704708524966930870755075116083512146998275433502048319066325588891334086131395128447564191124191629866598622869156006326942937627954000074432752540865642237239768064462277251457145751578769179866712596575110432080917194881786044731152408039335162749845526000171425409029809216666689010321147494901611066552867332940165343709709562465688036895955226414948456814010103157282358420110741079269632444227772933953158750651510225739629334473277410798804149267004385930089594658025572946738469550101049561070162295433696329977103432466847850661760347985581509617113721185670490452995094671229945220131877812802271282866212746124760217977349337106438391420656876010696235229595047323254485616154526407420145229990957857341448307472328533086444828904758181199656417381761159177059820597177114804670266689385309654697562725200501273716533954379831624383858496813659464780209621552224314684433630333168899197710376504836753666170670570697650870260295942487602462177642178846710863418598623487570233760901595920062368243396200238626871170646878784719535846591720071392354663924256343266957539946385015644062472993513857864152570161896596119477284182827951880229495472509231199284767826303148902748936072760685670593186132959549170286748588602902750321900059000042642087070927191028023093940746032259051043453822983617586278305650808558468648241906483759751973121401662759051924073174763367168032864613238044791313849080834414353545145111354892072359241245979387178378415988820749919584241370423568706201430564662947328642614313814657916013282875505869737986502877616462938560627031033553900204952089669641197960026982090636313725688072306171298685510530520368036937165084611079296548830980368074002953472434838780346411557247681086544466141086836964293563554955664177647688262136527935184855372739247096490224321218592111331276061605965693331808972034175187995564486065525789682306445749690868570441692393396888002891976091776138688623635807211161456337657553449352591535433385477608657173728570827150573942382339056607055030065437373201602428871080152333425422198972308986094944938228304189624751534831801202897822077459834486743523948758672055230698274859206356565669316906453633353103475794670340873450542123870558114749717598682974439100054800114558516237007889988400358165751597313508348605011001289232189379917143892569745156542678067995517784508822134318898194181042179166868982803561800024683378683825275195236672840599555917342287914407376388328450621595600978212952523480574825866847331403015038639160215473893653719304594088335523243331941830586822531973719218026488654438246789965574619705405166999897911533629329188382051471256350554784456422826488287908960882487978225503509639939313760074861867127637618687914563258526445197612502651204099398354877716999937165136693135123309655583774534049526926561425322713271133388438879505513836301010039415265817825146753059179832916809911528261632351317184032117628339281056316502949315609669606120340193442717454510822955595077775019826063082360032372965719074673074910110565355734420139973253434467480915887003443320033690841887209703215628894456234090602417266534006492485455583321958242034024203376503924794645880335031934681106929815375603907175328518549559208459168976475703390504473033478045693480796386608652494893577423812812714297284597029029940159998298286763713011726562053672619554649619713590459557866460494656042072566732562739442374560542560726256121208402315153153654448120517146175290234267727764600332365490100321305495712886235536733448911257331514327346019785983487329711068004222989757691043893169126381456337030222173077675812525210992688160995619651658659944062996098742342256637233689257376954240303413591504412483276602203795233171101319674279905049050954850249682768800164600836078290158039870391327209265755405450850381090636984333552976878550430065516832171484425266264796777577768148814772675854760135005221948741072411943321130367164366627078030668956420766995852880194656067444039775211991551555597673575178002609149046810435771826136214180000240637920475853263452464841048749843224377596513060444482744493123623128738267311295931524153371775814567448282976642465031634150956722992570683142674713378567172629007534064034750515120852960305301698307587877991740444174772652115488303033184473435642690090354098970257197638631904854748440345520784081356504114960734939920208569942969077920492582407428758357666167550479199037288680488452534347119699927652444130834823482008441628409010136408199978370534384654015401746677333200117655780970171208089058429310177110625211183761520857508061859325182045635231192112433516229890915369771753926741737877129442138168835466300566403172324267440234741636668282450764743012073958245324951799605883414720397237505460179702535253821219488668970268353608295410447980131233362318360075487739064862020223149305282736917537845952706537291606935559505335497569396331246418534542274935468588654354987333127134362568245443466708276880836089973190309133438199521526225908182242849109139893233610514262849786451826000720289773067722883453876884012505423272922391719041841380029148943870436205131227557586995965940895406536346115924493393756261864378571811081408804468562808639113038752113396795400515970281496134478575414565472947599316330102011536299082304935478051295321817440998141733129211655568999190794372952367547811963753535496431379699519323518868372302004348831893251111532539023071803894872913819736123362038957938972053537150906718727862273989554027226919361973865089305905292319853269216805952199710789135328488983448181710814552694164268015398257900119003296498972642993996762349355926723465431658333266764994401097283840716768871032704437536506495860362423454963101500285107261167641219117603839165361683252329769821008634673543112737959291007952924824366484748153197493826443448420211205104896630079164858740128738190057170705133141790155040635606008887433383262240213177577697954979157921985073969605039586611217506877590795741048966734116756182965157869579034721304147701500577287998150873178244877420570504434764078067024829648639233402754362800366069505171946266777569905603713832109662672140613792688906870046748427857009747418573951665171128166795768548887617449604053413943659800167593983883828441931675164877491323179799713498951580811695128983305135610664452128708171106899959229512768135595501593712423562777612830298599447818184058609453294729486172865417448318028650158141083451925534073161251053517662830826558069029057621999050423335305617073451963528042238129264722740455661337442662555887853267429822294023673218836097287879671422242550713722705864410198541947743486870190939677341235936511682007950629015990902351629478682917471618959539041244664388536111705645572820723010327217124201919884470165610556162717578386330224449137658339665909641630404373829794846283316970953711368004837205077521477758256787206601877756228697959174131816546204156996749299675072091454414731256160865963112222115199955962320197248911179370116116312362375649745325589630079635866139621853135721621197702308667250261184185565625079235616102761132749395214590680168280446350142026411384895476353065213669066965602384188186114032884468603797781111097939141948321895334957908679171675677764209349238217454607765027107708352821054765758869387084428824077862281152979574076270855072670612371383336198283149638733588458313287279372471987396238636027505531415993632832597338243691444854117114094893593640342750525470166275735373417385356338924502248522212712603810934528768702430062185458890844896631933982794721096361817064295271974656843915114261673857657307159678910225264014573876001846375702469631094054443568179294303244867135295042706930193794624556662270068718828969881686697778898398829750498274134595196804292547987203938010316470407822555236468816473616318504306396516849685931917668611156524763209766939080097334417668978398077613839506558924794926305030055271020481731690996479368701385001421607664637683846068037796331669796206084083045540937428089801909017516893986852388979721253572166362506128759127230977670787306331211383782951452957425895545929649522602711413218150567459936578704472165617502791298134635262517084031895667526610520715704631194509927353547345500966852994505506590460819033899369907432367493916411781219044072438222291091544897551644157047541129762134695568354521990873219595284438689240892213221304208840618436616750808909525650080392095712358048206809050754700880874365132406870136476865236679881943469636636361399594463066453336473736197065886674569543148213244813016640402050430536190490428389235020581789690675341687761287424777874108256458650720091598300749653501848119937638400321312523568810440578722287463267937119394553276454505655780510943153033046374314255499578763639087360465629211853394587977651927055543327166293870211756050736673804445545167077671090675795608057537564456934843501149500108794473346734430206967203219779415989134559648791207192689927508845818746477879795807178837394504870691286607221628863045593653198501307916106551068801378319157153874134848666385603737906186580536917212175349575850570230712695102774776663361449513850157734522013766014040167637334735438747752049531899217207354076094727335348264542007251642607784940312177330581773563133133555440820092748951062957229236892962825127996351639267539040013457237857639692628522790054975536972048624857182127805985927567720480372529282788101625835601220080983601735239059745544468501680551140995099492582735999370925186483171002911368643706516288261378263722458832027349494061123689084165670440727927480602740113122524393534016143623638853366335070009179023277330066902721927169784426356411605417863386521651912386970857847106445668519498972266023441702046504480709730127548204875627149163501840058136747633774651098797819756585545996675630581366071112367013351701070112996612633210166689291804336561696963415694899721805164752386127380069645913684715904331758634884960171920780901023041653926829409450219468136619355026503358750217428572637008148986267889910351959184688263318743270649313978203431031639984957022746080964059875409301090572361181653375925747814678760939051090240764871183198958783278397948853428239410880562410551347480154532934057096888304470511514510275149593574514048621312421501481388799675397917647676601825930990042690476140890140157580731682331827953390031757573046777966475841235685821163301829876556049072952560003163086488318478308500212060786745158326296382667808590187241298363561382443457677576300804216586675490243513598110915959804845838905223330854383954686330435588805327779951054187411344571186304216566395341234650555697035075828275499101371457006563480209522682699099448937613252745847906980210524390920600084088424853938218210166286587869455472434805020086575043487608325230029076066598110848553054313254663941996086966741571085285144267430774937472175900110296521050682625594283499597935037699237253189362446133376032724689489360695065766314096068131085176831917693269918659539022656445341498629072727413970476253464781722831352781202885036807806502645723493981659200333583436268306515374772303403831988104876988228825283771860951400865830334552674619460920840759569766130503072530119766212213651952464318193426608831880177106907984619214363079333216099502253664379541683867684658457040985384496275151656228786995049628621623076793479331649127925593565203608982207757516313465256195618844454776159433900785351135188526586876348349351344335690976531765385692129821068504999589589655972011718598646362046205625880703026394606492471824464649881584042129148752416978083516494794851197946145153196979863122722583131318956874741974720380504604703107886990123323567771826464185343142540249251080465284843348690075303175094731289636738828823701446559856869460034803043843072466608278553245970738825923233264695738963884683931488132223460614549621067895893274073230814397997218508758446298327439672831907391464180750931078264002657761079684775672230118428618029671833179713426023855795234831868971929705408330518603921857638576876280156987485243435896871216403929958022707592130395677255376037844024926702733248997229856700800161387790867038976346260361366679176966676345375222497572385863844299085171744349598804510114462323999216498868764070764584453440508986920856713728042724113219136503757546956974875584207265394183779260706267013923168440979512368747790847883689843738285777194687681957364531714933046938457170408910057939669852847849427189539251911222033053073805736618292415087623969790715982710907351178587813572972757040005663561177308432498346583000077484980855723297446206694593062440074136783360585823573331966373087706294128367578005880329423780597182019792562005440305017072839192784115210787689582565279990903965911779393529810439681940085593734480844625585776942947470559302285243250561002965565289526520898778244440770815746581958176840553776754983109451000510714269271824061892946039940516222620014906395387265588703067943752721528353135154036480429826427853035240603163194730059506169664498980217014324841696096199289603357590970244542837329180105457575527696848644828764188824097716319109737392514074455804040112485464201224245811582752956983732754790288311635484000704108520030888381855314439342478487739739787431761068324902457841350280685429956325822943344777726543271514545029145228764077632473250431397348780097125544072379464500083325799710698311499255080346142118409549017728892990175807994857986633726150527646089377546136598409837482164828356955846701904338764269019204023320596419731571717817939405331743785666515196564177541004448041290466912821502792846571751982038018782505760723261803978818740970970457927230381300975465555458151654663965995128793746646644209478403237957321777981996751637768011549312341404348201432132032638356391128574687576419726877959251852968121872024729044134023332472726330392683335321823154209666621589942772045993435757787315329838725969872191573944752657743234747428378600297745988909886018043498709689212691298000221614814277586688773820701378089673112690472125246331081675984925201984918356758027560755756677208174836227678559069942073223592771866709732490309611218829654001428338629882017346336547773272229356603147944919108519611745824713170519107265539417081972398479890595177105623182503777677691030555807032970985950928851790748344739856630393863267212143822165811299449051216219008862800414222109811722759343301769890862270085603009355816386496113047066579644113178689443117174951962401185143011818595181361700668357055724939944077051363393175427366767363103003740505602253002057043047475859552705437036160613123390637605919611526329138479600436155295923242880263848395402135698361430769058086102842869035596658577294145974959223227306081351026594708795317320694551414047295955127424838757665645975015335317484523740245696717224973530137386089811435431564692663051779094414559902161418276401030634888170967767138014245814000685454980742841376653967338484783246964197495755148470007921798417572054554402094767097636935144426253217205224302700045406986607231155819028760993898410391741501396079659736875394659406245673718034719504223921202544038589026371121393506230439154827276413391144617931703729387000604413301925141653977732561946533574441823415613165551586931920188681675908702612034580869077730246325290725492218503839404601861514869397423607642633308821606053501037783781845234173878741896258224926561577019233854555372517828061112475943991307491730288737654811625119285617847968854741181256708177720733845857944858456244851804305133985885335032626772955280321211955785086461558088378134993628903559332813449002997860792508303068571807085535988940298990914788861681322322832842390920396685681906428649214557553746443996041732537023104099021692893620437405028238375922923841121477953857720448781645921598849801324468770062983841775828407448007737200550235625204986810807611274208109048221455899186992600275644358035405789056664282038804121097965462311413612121103660419320322139718810337759555387649588638586416217085014292386522320383527669807136302443094558142843461453472202379887539118889739432869944186002189167165089036442673590051744092458546113554370360386806579645442230810819190821348135109191479043773286335305184648834357757506538130152943016547551590957672705451783096513377779902723471572588176006767895869070118280042680359393578133894717910259930111450846747667924024983193996348852868074148700060025994160235328414994871220570057300532742974748672710116514263695427921339143272129459774694062622824812391061191775983136888048696933329490585399945092685905035146523637605375044704349855068176150649421959063695601062120704325247696247904742479064485873553655466785178598501361547815718792994950641753217639788649312079221936994779187580349407177527210583975279521887597753363742823781439154348669241957804811287517677799096196843970285958317972960589209026889283342457424966562999741680674417928314367676528177899266922966842557917375580741052746831404542166448171894365954616763934696885601599322809098581080711090515341950109464460959415555845601855812752336512024929077560760340362696269361219523724246437004207710185488451649918460129829089168075153772288974697937786487461743161170512603317374342207631338533000399956823530206531513748464159741109444758080269587030894919226038703761332409685813364720309735482388698308651852239169179900572659709274303501663785070481182066199274877214361123719993512964466681539519061541670214522350141405893628996365354895023684176580755857586541386527200846895138905371520173872682969482450018242691127951167740138094054211158523752735615019865691103797112995399600826687281450675134600040998738602507285816614900076814737010092318538697294880137094789164556627448732729584263016453875801835921674241346233142870165976597285077511542888955945468614807444805622886549649987127638051178264581935506514262241892385724971381091321505337484776260375956124070070338296200618758343155713790661157200164589583365422288205596323288114500972339719659560990407538369093027650193055759361211133036406623497956260290352751091853690857164588701158811311181552813397897523913562884730499068383050182942924302859266057571621332817871114665675805119039534220884668461686190868345480888545540659626262744858712469418730436935848037716475071478356761312419077106802066416209122980926974136212170946879178087192132000748295979001270876958221829257889664009038436649986022873001859586645325907165682873259421276404822365891404623578332872339884121631684960631639671804260378044330462240050161584704506557687473584532481582855364513498754932574256569304196146132938733011365041332748503954947251377114228602848558987620116657199224624757457347007451593576031759531768525173506137573439761917482388299288913918619139793909010519944283794763533410230458102248307267094829463614296421203718639308320675903422628908088737380861441904471361083863373972577618658856564750473529465681662581477160782948142791736690049741094394236554909687004436142456200630019845872845696066381584733595906621184427321691512825295165832629332081934814475980481101397002367910915637896923497626543760521463282421757437060261268968773117276925103138852508713701791301162040614669126079901457924196286662638273399508413779851314929091810150464501459780218893301006863431416715172770355673765591744802634544673023427686625485484478158603393588990080259362802186584305597086035031409768277039974137587350783691092567647758042587940243926579851049392696469233395118121949920437673153005694474893397344923519869988718283286818933125548535687376359075496960954903109085111529783413048934160641272210577842674630445571521521658393565790851682350269085971168808803123370712338098747197767814982972045228535944832331030938390322051508090015554902895586896815390326696204601995766105760645949525558302722684522997579609665387476187959924393749919915999722539176250234860962848704403118005642883739658364993394192560092451901599634614533157359539198172028628576340109400438929667605159850461849797298442365456772712711531345852641472027371387805457212542629803494873667007822267919504174933930254871118871450350537432983101343501512809042049542392388200818877933066517281341313853160738109680703494877134223774564529650019863246126396096682009099595596578940365117086607778272552822425952227474342132537721249796510503250440420834640358389954322879346253307837169901470485504674856071620925073693078142281582359906272804884099193310317227004798990562781270885807358873091039280222039498479962691212778983757940073797889248329440767676293096473163320955068625557357838746584335954106634621823830971509596570962386773407271442874121765282954067219151158629048289365149291626966761941313188516148534150842201851143445083676584596132359692930608545287753254620071108055330484627754655175309580416203063625176782884020866099926860873866018672688408485394969220170208139932397233436994324695515821267321069472661505484918384737639823006930255435219236560485026079478322036895470598583840049396428630090752739460437601087182836016870293884005139179433411059152013993317176839968941634488725546507470819568997480085144355608262750329611101237863288910711610537621579508901593642112034083743120907742853260373247363696821490861442732329078073855136326916300309211592044027054615886959650913033493342117589509163505483533872882927048128640396586448327974584812999512104385841728553311201121115618628789872330245542042371895706515740997046806980149937587639105446723020643349112433494506598912358755991670816962188396198810618052147081079562540822665507099088497316694544066275436405382039314010568148515564317974797145837480964417219329040954090136666716091010315570972524307534852306056139286624360987645118194218734420629040098015028470566517449527655876311209219460115559354383190820403785305126643534603741228938620650665420746099997621136798315031813669749277509429124911924142931721728327238676519682117643177885346947659288788168932360122669703239986142924280586439639673108911599087854936455294455411513756005472908956297147587844984908008424641704895205640768421815152546699219083306413644470010882101160967146763980347056871260818156587061661991628972816979398860831734973589475243107055325422483460128865969684647813829487702477894279654670807296538719639131803633124408229053279710255824437440615885900175531408960623978620420814655205427774437140890378897331218528243649172991479342940284649830765845951354317613183039999744308064889103985444702199378967150550694732289803975550059859940354311049471341447556225695670606518850608025891998297722404176523543172597080492183321022918836432586633691766052553345339169498113430370709641083347993703473815728817597933878045387526694051541110669301438507321500713783138180336171903804280312492245350628449453229317785713871473979346252064177552822757557297060385453315041075380075367319832110586220886156695100841869878684265667183641237618409076299833569191152164433836477261992341625616025054815407832551859446442509072773597607575268002787532150961035696597579141135382375003993713931658786045303796837838865070943723550678324857745192497287970540759255516685137447208223930913906097199908957997461127624488323027907987334826867133055240135616924990537527757482051628746704823065492335003612725982506937716978875219420854682114876249459816971666129514785640457629196296177292376230189685657802213442121432210185205367209200165057097061463630834453883681280173587973407815083169029383456354340465833382124399034570392625366939192876819842071728173098331501696976009798357606091189721422675105071093294569750218698090231435686696441316917775734842949262450209816211439695939011634625544743598830249476043016523346986288874975636151119076962375013895398926454097267904086515797408479025337363228818447149437010980009819742665002194135829120632959871087227974186849763060965938495479203382355706387842550169853730912562616396889151202986550395546438156481287611978111017700643360077548461817590649855603912226134223413521559088390108466017633540395540296900837080763914126772093687320943614299189019467286963716522997701381536773270510094143743422277273798851381582270580091137389964245547936603139738890912967551531612390455441850747673355583885558470457399535215684302427239002909099361677030779319244163292188429367574884801362169910045706779105984562465289162281311739203257352677277473399963682943304946902529718679113412352794807069339360086511615198812348626158493761471835306757018907780682120330503421565323893306558270683178257734613939623489811249210056972525392699858270760234578227105820697451456401244524847687930177622644973403809113855886361021929073968054705624105477953996417016324873242502395323792744118977119311022507177928656462156718105012242106481247890793467502133943345391771761212719469134071891590610983097306427381308898887387353022969604246172215551937058827371182682368045473456573640666556379729384149791354127628392570839792736593875758179611172605725924462369955978451689707406865900194029524993776105420877152228910354550489555521142737838647035886141485449250456192921371970354858015302167049327440701851020528357546484026779217332543202026911149340561854980840666290352345568695726821066574467548685248386053494050421237633680563346556220352942015367182581119335668534044105768279920569859777154143975351180135619526145540737073364506678303454766975333535558474480705873791459482990297084597901852002891131819421925930866533357493835957471559767649337154996831395678475400951675102371299175650877785973720785943948820301502695703427364560459835612788762101251681724120310448951794843223632866045509493691301093202253765493382053345002263597063547151043797636320291841600049708116413072710626064646703298063515928214730073923893097342704037198495264113435235504962887061043191309174344971470745787174609242327597965413627903853007374654416273237646058642756427852908650485806487361516568459556175431533663263527181607179680709245688942153066310218002776121100856219127091745957832794482523414459648697263172722827058147672324775924972596429117731162396400744493156547381162460556619170603070767669234389246287281129059234335595774885302211504459837279059866604188543087827416951558677649593506646353278841190073809450242855210248866882609933294294176783163844975898089698244369764699222457048734397957999031968302597362841863362051308168367923727892797038582270805508709138111978758395085659550157224370273188528984744043114774221318300698717813588774853254888443494567770450120394050116720683759599134103489144387834739154534476942439671255225727062744126752654025532715707932797182793949819943391950497913039586476192880032206894712647419998088058968184571554024822899720590242096768753095217066203883486695531473161419861923110748137140954945680628433154217770740153879605418556932361062209704240505872040793846384540146621476401311950870554160738086592787742432856159511143963160583936485535905789406028015314026687621860742497213588132229183533189540279862288259929729765547691344255783400472850753929015804890532342870580335201139527457777594933363803066065616841867221008960154968804069363257220163442715902589565298310237275775799844714990799181249514620627458692472762260850790390435111128192549860381460720904512678989005995510171642637544281392337511382726657684757944209239562442425330314008773354750717460610372384900727836883270237073210290355106215823092148821713745937116396705343299867711026386786394911516760762028357423240883684742501628643285207242293339534277557672452287036032426870055534634886873222866117395551510285951846417528643152392314053996594206215431534959550186301336811271083641687878218787325921519648460822751919495415006370802105016128203905457837958221409653524541957288721433110107208454855952982266586182235365699595273312622362838999654951242286562869529149448687124100245036213270010944313604521857750064234054489240333882237929224786056070176786108742996359040348903281404509378344358317522171693470878815622871556760709988263218799321773944518670581343753460459831213238296230916274228640246112924118442085912944396432471448075687388704768817121495582775226131036264424769382796521699655743427516916914993962018779102111809047783182394370061782066638291017628176619018395982780139848137045403711132791760707331478095535122147364317624647201096551337908621174729286954512011662117589541448802549481522867455973445247942975106699971520746765896377520963471151800986113468910192063717340622020137835946883902617794848293225997173664664015093562992836051533860661739814189548248844839348551282779676596929994562748750954250063099661078249180156834039764858409537862995490686706902213204712824545275679425531742241924902797633212278521124511762995029571703512135134202474515135238293158987021468599108253984228814389049545456964048099321336127194822106394179927778548283630141191511623695276686996374384002289493471650067535683830841721520345450757271893247168198246517080928109492850932414158062951906731605951097536327640120320770979523555075354146728422210607321817590582282638513510906008737541821828580531925682486951280755393749265439452213716076046271304467166200222340679658341105582361944918737537994679315952441303498395317044364530474164569342936170659390426243043119092082332256286961927159118323270903171623540478083380210234045517933161441171742149665231886903289069462877147138851986872106513653703652523131889245890918386576552501824329317478360845831656079377407219001279434940928499161704823414980459311960792453240068518123063219357674627106734399117587499027620803160128454861857640078394267777894379581623970568117509626808454743249135416780835271891300668861334061097290407986738126770333670457596728592260095420826311949288445520537233595050702185131647575048791604315648560820094032402953424042022577737990324612957038958463487841570080301235806443449115078973746674541126013906230501296997760178259526178089370981935872107985324261272959218440137211388059670451052924834641436550796312589893170359655806428113462650021310610414593750375749464074519243037957940666781663064077873477252766110093195809123172131565182936396132036775205300861612121272036895650223038294918069213337801592701819456687238482063405192428575217991905017951465745662956517522115102511921226134490297841821460272341462843940785757357097698931919138032762267797860249122704563043451391303252707245261500946727106262905370863705987183791482646833467107697555360629568149729415930039036270113766953262574128878217347909692368692064026878306219686419648352803188322272298856341263157395748067632917317305781610628458549414953751987523709439433622864498528608248055108053604919255879604490483146719992166610708774345339798533266069264205531963117368145114430606806271289079775719667101485277913331419033223596241833888507551388003985773912608593888569354042434521118212060543125508881703796664451904960003648115519119359664624533637201128965468737079785330337096299684477477958336190834363755046398182972714473093439796214475996698853058359906663903893667711838468572035453969612247563169094798913422870553454759953775069327905459801474993574699790583338178682849877635551617265955445500382303405458558694912348582797115089212042757068276492203286636124096493111050379969065224628145476864804210235089564801547326633013695542695021059258327828702819762060364117212903620374187473528517555970086069090302520176980826432487902935102601184229777192452458731284913034293019710909180283692728632991880841050961988081292214546850288542787115894730222516005728909965300057253378391449383948561757702351572364389057761699030764014793650319060280423698190667277922510287978749468850028768803129199211820904833832743911196380687741867991193571823204416488655100874168008854853695120253912843820860364260673457442734920362230424419839967058779182697689679972148364333464540613557806100713388415194663990349019038022794427119486554129318930661878678284167568115460538728543912370031320563090498873117193325993413111484255366704757709004614891979168872691400936338407315949225125731929663251095477419625975816052193121073864657559850275907416556514954719013871427172710871824511253246613432907028634042883356878325637338569917072879456578355435362523367894967200160010464092607086258919666003314965365929848211790668757696623130377492004959054711004924434442211718141130853090487529014507462979315768286078859091440798510104937686783155922684462355193815419119202222712290022627920483679940627366018804205593019178195863763022883433834453609460128150690075974257020702419384327263827647392255370286950200261265410100116834052793693428334710227483389525885217777896053519825746609796207872036586392791039167870859137708601723595422231967048183077673692790541098633473808264405846127121733078116462354662520354145856073588080074959462057875092967537860138640719690243866801741391379585486308213689889584861117210179178624180461819813160754752649274477103560902032217927993483874591803056708276711983853370106881620328577450814215803002750380873969662883054713385570387056186502324840218297101147602870029962305672872892831401338088092114762843017838778619394477121684783321368018921440426944468564855445313483610644768014034619548046789430751198970990060451059292790950611975170754039346764463847660002628622228083384729201339861311443406021340774657935754042016272802965665924794944004076853737595410308688959119125889371130018417510498611931001114780655458278267464897279322601740573929956523657734499994561566522520136156732847382411342565651023657521797848947442186511802175586600394373938273997353266269359172015214685295366806535958384453993027706765702214005228767847366199309911686457346570050775240334725145492749895312073951994534058900320277222560856027002272947192745182861484668523384091603854414343608356384143069497399435960317641556853744082140217697063870921129365153980727660512683619482930237981261387541001786054829383406029819451117537140738858615015822926418645379166333466737433688717496155609823485966264292657043772458557281845967457158428568049978757167368678119901639342460947923076973015290825406621323978195408445885950348294937491161969234260281127787146641581367211025666299234694716796785530481400910123923946597187679610001221519339744100132630845776396559763480615287485208322867615445317356627836954244518226676137189136188331397207815436101759932403080023319417053619043866603221699312751681264890051903011299445130735354557571198557210841801246688440851287772381318099926947136184789179183169442637450895313777424563120838206937001242891257260420746527989543139645597591173883415978967401025763868074862975511628371022040325930421966774223523032972694195071589046536051815918774023224519442559529338758071813482063671480393565997331160650867624187814258435241651343022608718956852817192995395711258340379321399076246578181966858364774466746200314549356425224838609228668027880608119207820809245449661251690175015370496779962329811781360882941355166798663803855689366250523005005966408944553535152470133808086965134044541029191527709754219478734636708040230059703451896008935520100511885244304480018178558243980855799531908204897181936449293657862209008267739268877551371303640909119148212829844826918441598837284846325912603982371197809609508984696615721599911899655123794159842146480840288931929316355269947519422498804031270099222434080219564100336115328981058356472579217133592356563917382593840597693230330619203648257616788698405661915364460859792660711214399765795225921525137620040980591566006015158055969461753316905870467066869174570757285432424703711175750831402643634050164363147133381091608322251709508869875658251649783708383734367357857505097095859057993783251659591573901735829771786229731839264227486677498122075665630289730229730280086343879774364505008399558816405025847225656026351831916044991859730098866789382199222866517395731113802316278693646372630183857331462168173574580601357362247292338261621949259256496975382389880421942062037280531912674886233378608530670028186692613219285511838663673246300554072789323363722832497229395272403984761828299025393005925995582100501805917968248793600757930951943495051747853130388034083176905754627698670562036910627267022633382930573692088209756378048080414799226003463676055022678204701266559463126706852152342479273548809587321415165683671320799922117964271908304232211506521172231167748830830220972953303693777138367035324380585551405571578044314559193426042420669846639603497613814353999778339309292308550976702462702594790644509041949605571387661482772005886968084532847353790439150675624817727477323921674050496829881764533309898540274244146964213052664021679320655854437880482886212081797687760033606131256282884075441860355101398665117450133558849461897957944164368373004486110243428693198859011498015503427544625392927930914828525814244145928746838648458810555321611392548145964457338943151212813431651630211708761722564954265556577897117369720663670708163139769549458584173742136713394050245555373630241941415122848517426793874413056564947936211640141057823769532944373808648831597876553300830121573239149214160225460082719574372162552951290995978097472830618703861561041703033247699570394553754538831849595302483915206489370649799580494959233177550760995269819477493754016760462514935956954232080041588114156881198065559340552110571444445838831388794498184007923118206759711601003066033265863427180560115810451599127990998020176424321911166378045030473628657398583403771790559609487746484905973940194887397168109013857983894199516441569235416191206714932696086959705698074793759292188845154911585305451481639728933693743256092317791277963251679548305080070446810969484590034319157132198483703723979684745407624291903955804225221703612817340826357470522258342139166987259484252600866344700067172116457913000328754450509905068578822723949471879706927949755963205492120376333158533784442766833185933159561555700901353451435811754350323073633073372823244496525217820273128507182471946088613304427634068919883203105316469866788387176876500321412796605166865056038846929454270349051743698277197895473298359517256681794539599174518374218848923451587009223711347571446421675522766046389068281500923007673475698192176116709867904827070364085770976269453899796762130041522406675806776370220398881559681789386217987888474437174057325221521419582464207595920224287049837455646183212092219876308193053155489433916456582996795060337296828319111234301462194029239710366297785221204690955974515443906084193926078735399148454879637753264759227857201494038331768705897630372421835689676293621324853276946117327597774859090012897258400664147280483226825047487131871618850583019333555559072012274160943089691625690179567388195064070834401108563703738160407470102413722276018098843486390488263981693919374382521788423829664767762751307979636633346677035979885353718865164618503727673854829978273464568845584507939723598553779114585989244576003717372005056748887889687299461646172002013000803304053390976833548558142904079113200426235405658915169856588257071931817146807253921899106393923505026530534711403963332465335189997942135798897163501919450879562833181595321098668387281289729532230898794643995675951046457296558578881846109675738479191025710785559941800930331721036818489827089336952944322418234144810350323224494008495134323825885121438574733183847135650230593522854548714634892726579514940978167889117315422982557057615076952902595937723009850355456516743877977347060284430201839412500774289331536396339169585028421339936865299884336134173268558445872115711230831250424146549805645478115011553534334263634133747891874630484347726975152561290948169568823088957404302525977485650964278712467486987717401223444478711479612982614595196070736525629107798089280027252158062713540699772033057107255021131541232604688086588812567494513892148038291103843501380429789915336417357270949716985307727922106449985748191069951668677088543289375390796205691848990236702968948277623978535250123751736458650165678963261262627681649473631451763917047360441703512947326839588096577710401159469665981794464109211623344915331323446984074726645794074089203927513740390484945293645695978474932219525538350186733219185150827720643563805439533420160545655875845577976009511028649149663600468961087478601401350711715550877399474975758944219680694747328718222029231926942062444457419671103443411927808759619662721364552757653914819388838737390962424807795266062506976651124075169873933854397862767736535338394727199472974368592536144266969779556766096176120486755702333173098082606141162562189863622123277610222818065662674096664682373055576916854807754911087614262054741474142714959324023126191091032386719976142256747192210460390146189766345422269109155578424868237017894093517759415484067071105706618300217818973693233446663564612391308026194047058394255675289799981950808264116998062073315897629264546172460659345020042343457929823289963900865940049107945488555902480103986245551410130873844441537852798097125861505957204699880635180884341765822395753605619404205029742385633893063026668878974408204151721115779204905080302940307593917506568372659574386458130395477205720976562215106607324338362862410778577337088173096189566622838287537205046030276216026020801502019488741973911967262381463309807150018055059540969591602516595737758479841470582146044926493262709881635650656682250208515012748129458154845912916813760733788953626125645342564416650013490841558874453035711749109110450395989707126865963181975129811223554076166268063070552339873610854832006946423511238393304143884999400750721026300071337303586706199573568384575478429322228076878004942162540579719445065515129756721116201417411602747263336885044102114128101808557054681910874460352430597673814138458453207659716286740521026868438977021855901028603359512963858147687114703853870055996641535925126586059463913812197708407693384231652956821165980314108351512375832807964109017873627991526228074607323094110549409337744431471571070418633685244641214319780300557247914602303252685378898035547690116964727212379811742689480215597785048492526096330469924491837604883227988283779468270863000957713632913179615832476250230611148201756506401295344148328607597132656180066079590547089759744302995502844676848513595579144634588079207656626201673834605547967704203131349047078310630637085425670023748339805679094251305976331140292429416006493051041501112542605843273674904463163278570336018226779619886143207932684328574922686773506450815538438033414694261213919913894488946898059199497772377963952058929798991219924751711302895779548698513252323310115316313036657441915560215286523110529873509662618188504904583506398814973942675752785195675179258330648529026459162865053054278694887662171971963568635172252888442297248808289380209415712032176518174522686294301892121418245882792023202887673475191437462974878256335034820505328615415838138008147125682645096076705584330262303855198439803187708378484888626902942178184483451699778217576966392628187420876975199498884265956392075991164674634242404068815056771572178462520545887232725703262452826661082272452004837659145553678787165831988964914166865041744454581747812164289634914187901065548378673821567088895437604343281893393025423664350062179280605424401013830123751242566147222245341473476944350729878946569066761500731602178297456715987452671967867298693427417590644063190756814051027807982000006054875395363798815688893194811749187733134767709786213431357110390373847064926915564858652453424721492398230276264440678315363321541924349670024600527975276945516216920729262593259945259007748134366387749151324933239167812108132981138543222699625745451655725757677033413769949116018887967953181863474878811339429566675556293418016539763597427953055964449272238426908350003849354263957763639731617250991914360010669779057128863398685687756783593607027929455739012113273323424208461400894035831831036217762394332334224798297581083859026645202499618809575771722989804005320689458354252954401704235581534584154191165697774139143752170940326566944740762474449470765402694624510786490033657139638768766373375625143796191834881604649664422019324383556172402729256423484497714471786756608089318137652962309347399883710090071269750909740663353171015960709970082534401373358235446884916761428370426649642218960132373410546267041787554481228296782946816573755566522964883921535609730589555462430363378301111074462605954040559255533908344554613542860876937722829471575889150853181800488171931219170619863087677769919124797377935518907135950931840897934670515028403664384296365245994394024254953463377534858254043687200386131283260630987077763866843745880976495045035764586238287897181079468945537009191931840325189755045623603500301178972426595593017262035558329307291577159354834944390140295727861234698667812684686539726005736249370606436197079634214700940357685356782053290672462478708694694686101895341435432921298736620158522055286477901657657716125171055726674104704655057876435763636409280043106308996979787914102048068543823525704743706611406223484382136756484380763455816830612254449851604297520457046045175252241325493353663661696129269134410142018077858960845026673643666290317112808058097755188307606097456773321210473905215994455394891620497525583562043198745994691822070058374867341173959358113765224727279098018234426534047892394375858395492961659254267513941591058194568268334237440064633898708918931348772147264787894846664933734825794607718805758973743659144164088269532364874521963601292466232937380763741315113505231399018893218466496940375087971541665084581142304091499311359126122656492866106536912776904651569565976395899753100110278178602650060629513977910010085023441300764789952190921397508455040889759147481209851749426569819758467895240074605797034754486633730506756618274982157439110561178889033381083762699661309035858428883892106390088845766345077912152841097274188310760003255944663635328698412569946552781713912677508657138061130913448792230658084217778850673586088059975195576259072920032797355820295799020265249422481000528295296812583862449721759016403193754659316883028787113400711303458721794535146388685235810115240370635722772193195410855573866520717325037014629657135776451910930194218710210038604853243312655679540996803964697594462931090249972038321943098289200382446720435318251243894349832975875262263495919571546288853652531844272475366046969922988706907869280626630356010881121658449458052526826100818147060838304676214486899860379853651920164960329409274600990630055854027102265884967402361990150423563764093701638885149955281049932051046532046630172844880096932007877685711050201311284593055357387869658458233063573708950443387747624707918276775370140929959619749051780789909940355566131869384198099503818082037216708895354636290148445172073623228420364551065462323235194206433553589982592257132369921564077195400744747877400477645301275856821097231188330991293944349979185808151068784221719485978586672539600433884975760760407820073430856838705084473870257994305941079698940738176069216327103540999998093674945733279600240660159692738968038351991332648624010298639752806213545588749191272165714025169945190561046839332232185019335409577435823356702687097706323202998772368475862617543780630193224459107805609467135520732326503200569613562654785888532366797522987512561555215748552455539484278079119173085424566374682805913409675524833997945464378597424464435186492957722427251037479657420920427249013981972108389602253476400646940117980972932083153826664133455676211053772205621764216374364579440612961656560527897776491435907084817396636651279930691577075879084059788381655566232140724572907993129732996318865390469032735793062332034888588271305215402135086935836735620406660485896359430873979869734074307868992075129726435276433235097884516548461631209147065133031039963118218352903984377834678501420810924541267375352260223203245778383199830536798920989432097915392485210319295428937795039919713778396266341440182765320373045835028324808987147951571464742402889558144942359209760290733361794999198919089747664745051341270911809974585329287790114302829572417214369027992561675544314219081028403534811526857670018913119168728673334811327790642275585302042688683144652336911865194952384120363978141833628749948272022204979172294727634385021631188737339666847658299674482372628808965390015333391901083278595477390312501931833947711312439165698630797852926114900680172823826997296156138704087107145352430986290987577320388846393849092019806443498712890371933839290714092809016963002076237258842058494234976532628327861220946838468602520273566326083399098536722082159491348011378988565635693714867902426715128046080126886211389431620878472011355847546978246145858690473679851404563534956251926031387078120634969180679164820822829912898692810264500093739988513414300422337183291868167748579953079761676328785617202543607165978310915185635504585919322641329797808505244997515115854567437945686455798571694363272551956779198913214298805590225850943472797438250589279373893710922038631066886643075446468193077673897597715277114466368276716110227611400068108526469010852951618522367084773168587235840829298102801948267533774686689815737942310877140028564837520449261409072293742351626525643594518260208299440549049362992055719543416690973016536544002472523748159813836247940241317993234540132144662771666036162566655119686061301527739996064238208068551975258807959010511892083280583462181338959736499787297596724536345126827105039914491815263967561145028700251153710353100415177582345921773499484350518953691074995902118299624995988649514478719621997131618448543495838497487346831309534771521600284439948026132602562418858808912608173502852179033199906874922083490299625445881343339538937299484594089273666405595552206728117522358458324433271436098852409958361871899588404075664168176937525134561893041252546161823239197448088425754551383124689050373928639555807370106762644383489139781744004521159242394623513656125762464579016191350133979013989542781094841321690672501832015640469829433052434409358312690503259712081578246267591490203092228318481142046447711518172903073453483633691112049199542566088281071749749153271234772913496700098364044548434053111306180958397052648152345433037611695458577958886841697742615724650548484010930727805824899317871624874574763104527135260560149172210025068401989789240594192601181106438074270833924271858766111889311862070917363014461143603534982579801100918695344317448956377565558706852041802131622285962853885729099183614482052432239079747983761824798120104153590325605541493351029924356232952531498186369019766953393663038170639460569619702842702348471126524434371740200401785044266664489340452823389850643431792523906228691329706717874052050636720559345637163299635982543694889813424102531213554954422201419918416715082886983712418445191927378419775133123190108327797229506137144663394662655926850671272014367573660768997096891253128006017893693304976551366253575620588501382629426243372772431755591751723443524817857859138160324733483970501769629129454661187670115806388096966866444306310855428136674782437314397791569380958836588963821641642351863017649320307768679628497467512371316100011397915804726029971569493004839094164618930781186824699715316190496989538763003909320605369765909846271092672133778143399758337754253124587719880566051385280787017062703453229303355888313420547109309629590823145083693069852517311133641263173382348866730653590433207931514793105681921222721228330011321316325784359970572215796099839491958822861224221505334280073563167326800406918598405119464235179374359786309662277063309097659495141523220009116389490500013220142864647154330548923143940114814488746751285258257174912221890785561369121096283444966676777569639446312211855012673933693027889325092713691412421553632171097523396524623019651677218161665233423552194561781421785620581614305600848291948945229176522498791295287668297811772466901764601827176588651349759408824181279876983955661018207966027682609699259869527548752289927441052864874751097454004196649166647216712089652764212710628874597010646910772458186210661392326646867235131491298925593090692964533515336297914824732832043671131859236246104096149346001546447317499345989489046866362449017167837935386283426845487633020013237346009154123774684768632033328523584040716932591030778686403311749375439095303614869537161219071400840354383187551959627964207685954160577239673833339285826446707488639278501027298147359813565692618026009496973780504595330505350508908185982409984268743947782358202107529343475863325001017104822710449763461749958424128289220999136211687776846088001228627257151730592579421976596535993490628656823092692695363843470652252561878371055873320823505692430652509859710275250650416312029994807398587321271665380936327717265350197379663853602209318346071947093692307930475690196901967269259492584472871051250461750876497807671457126292103192372951982983617422662282071905971902187863626396318754193738654429115223114912853399636198642547781560752429877865520340226143648272366956198564283054607554871738311542929977005115589126352406660814516506769739880873863452913009969657189889348113899273094437842408072686871690606962402855056295492392035214423399222802072100053153097111403253175441642485383681038557831192258309851187348165526602458883493026714555781682990094626914233327459287136426714255948941112094613724028476299370142570527476469068835142086708248097874808379878779027436179046400888195300929612567480904359040879867807413746914100639212359074987492491056853846549929890958737250838054120199274681150242942346475912432516892438683598610270015852810738413062189100837208809066203573994273759851369055746734710306151029883655603392809853610665944345626683386286327600286347780539137005820881490870019249094455362908383149336239361054825905938636213675067328084290956141903507986458526572135494461013769382780423013646735669848162725769730007162306781374724047703471871664476429543723586272980818113183365211130507991172015334876163821027083448001350911304741494761947485533835989468077778803173278656657383915468496394544320403738499148773967384321327732708713249466286415615609533292437231832968962362343709195901782842824782565673795636351059593569360400327748278749894341721963979266939818922226474517828092146104923489401269742759367417245095609308270756699659890446527649321831592455030000857062291648096437586001003128593461246681046322380503507605821892728965303472013773155769208181213806321947376012959656101551414692258569872835534093807470561622698909986149663172611551965244101110731954787945641028957519034015399770562328359747505908748999665887454973245882507568259682560568361621155270544296194241996127407094818262684583479206217496088612382451963388275972570259760574661148593816796309731540722538759699422433279740418383153303665006428845483838832786234968492635452105939669342784693154509646130037497964395886703095906584131738601142062807640157383051103181176856569899733977261805657197907387084359227335708503337103315139151425308439064999192893149703539815692587492194397476759775589480227163968571429972768823758478446621981522924937193983423331758934111505570942323585746070945473045360717296768156612046659877435308179014911517882714068386347450193940594765441606090116913278355889391918083744162041581344635789144941692904667059867739704849272874805302259564406379152618012489649024688290633262946592175650967151970156477578714416221246136868743377178570482430303420554088118773234315092160780504110191300177030790500170042227791141407473114502666865750095227815695368917206734427512248775938438200208075977268468839223128648672002030476071518458344986476769612892074593177899924008445015281490337853851395337431236912663484020455039932739260301790715408209755035882384211309845581433306281695396222677559160730903192032642058394375270828853764158342953487403109333785437736858769511307899045010874565940774056741327344718308303232185657603097278579188551786880103135143347462110373467443481354669770783471123553182628824125837066924022291466229155676214806186809842776660239610785534949896578804723068719791239330142506549584271518824383511947847839445484095210037493071163393618613275410252916817729104028041312349490342188045408913771433637897543606329212290150035690922626352371503963455998557088901911770611891525225180403191366857501047230935719417468423452316879696566603036573065652973656188056026393588053910088578473038502274356488347119434256082951087959664854954424117538339931145981372507776869214648180912532134870798070248347397493507596984359515244761031376062488638142006785489026192823245334678960168249801297133428593740447207776248734452175708981107346856596918859563566206048642158918707741602760222396992341584662604257577422562486354939840866847562811568918658951014128534701295805180536504274882751403969135135564184391636062463399994290903043439404273093275577714282634917698828727310257281279340295471274195803205845836699115399571923214742335131495232657814476350472821781497423698276849580108227428715293665720278977600806365465780635047397557768699493523371391007501684350674129439589558115919927494831821393046305543478486559608013446831106980483091887696929183477108984524387683820504678884934063511173707854241063067852820154129594341204893876967590383736841761876713951896272159294527467142747245804931488078382722566524868737188931642504797355933949489682097088350727603366057462368916403601336572526619744534499346723550125785344478623038076414739568538818741904227427735204644253011334596590579958688868964298392759489754505841359025089443314739847265963235580396956566876181735871643184272170612407758316657850364898920672160697125385124279241748290385581009719768889236508064249846521575681549488915517311183416504930200713748231051281997196095558871826283912743536165141877323305933782528604025556570347808438924066972632120636211920766835557619165530797037503808931408086605102666487131139891585898135987027987621169894035999176924131305245958287049135583502292237028976454100471672079960337635464675550700168762810613768237667486755367077260827260914853614169978559493988699431065759080944605192425931220593890692963348804297011734593082818310715926257323420653611431955410158509380801014020008175641879758604707790926961150483806265860430715027955015202491807056864897996544212580795146225673722573391812621912740285585645375921249670426936758631626146144383438229888516503569881232809907276666678547592580597200662506639741263782637904914355298447214556854379418223568219370272470694911178124322033954801201164943777544208946139859752609621738546625305471105409082999549018029224628424033403229388431300827042196166683866057637699961463592169262550783004192687605932262969733750264717629238885694420529949094230236506249725534685451992543533389251777763959434770135526735528917446293930195700444703742044156893741400818992920648127769361459302105344064598914055436542780108348217110821443927750713835706452481742442397074572260967646843033450538143931933978922768253402392096450427971387842549997308501211365322938381857658010714470119609394162786091361439514164633386421372986062226826721513573134824537896979082880286389852344139496447616732348825020653336855674280945491261723319610247857503809935213052582808574815827822232148930752090855376094641766198902185433933362567426804396983574816418497819739094864268290260595407936308897102611570824590818584950570839777161428101292050726492547193949892507334139173196455317874042832586442504159928933086150180376042088191596659967570170196408415074652387692507127279053283302859510152393767632606700367176490492141904652561328025574386831364125011858496069634637078118593695112828810226185617771023276012389424261550502383587537304029043854299711671380895629067869577488830341413717371710136891826011187878430869215413766564526157797539505338171657703202883309251388136879071360499842053190456706986711953074519701864421240782359482003853828661274887166276569706425246023265096267622241861899889344591065887989068490414675295390742016858055768542611458663477818248280748628200114618450111566378122592309412110939506722240034836926055523503350352949044393669189522740231988709217642872208522506400616777913722393071305740178781205668353290572435774069167188274479777330997340335567352880868327524776376854962711477218161611205973684306477962831744474798167095925952398627623519867344838229077037622977394967032551448269253976342062685147755064193038247420246270990160500449375390829927555658495908402660929204737338957063676548194511799793542212700498708233073205141164269896523112706837496159019750456413018314172984926513728780221245935185805864762015754134069905178276175543894261076930330035305580434227756339113923242785075764032718732570983671092469282863380063216303564656608742982730292649858652516372209038711954114740462195281359052448745303397987924403317528409015679832840401671529025388941105678447240836428499161394377174854887793722347128080746527461168345361428272852140294038573396017610749967805022748591596463765553421996568997387075006997207424041423822768106038656452089546619572743717967656439027256660623669054571040761062585942746116887588491184266612304713165732880102045029728479142119365799373940496526543994519329455734031382016780744310138539462011036830631898085322938863781670622499350469650966333260412532305915737012277920608760190390442859056846325259471031775679767047860765781345387993121659257258396684710830600524608348407178423411210953226850051064943780031231252696699756874448322702042333954102517573258574897778715975318811436662919060631958327758352791250016946597566335700566510688133556182689196656698271619779119861025382558630915775021265058855634708241631857596555949915965078235636767816809007180956823547510035141194809136413912130384673424458124405424055762205588364826004459596604614373052500498302736523220247701885060869304351127091420774234301911620871067468667462089940997304797656130594148851596246681105723334464183338637470928415328821254828624942883344969068963290171337943509902143375896237051495974731672744444787903841689135330095056136594039426056279388871170496951917167540022416900165906641130616996224955913784472889450548285196068482902998395372868459110251236614741312339256496298392611374095249148608224545731171998059407543692431961590856423246001184412731131875893298774198559773875646718771847343873376818755345386783467932046996415163839189352791601814679512652752512355389903857095728607431460913192396216466503622610125269668008352296612925069901007952241317217263918097889111045464992793761315262540620564394893234534941411529686041124752410789584516239122372519139413597168683015709231316138025514959478979726585217285862868064001826628069404608934318035986136548934581415735842204280943767023671298368069701719938930799460243986292236603319940017191718180889492246284135562926599252373452221823576401708549308475792866032029347246194977384518421727952952477967036685628629255536904464309773126140493363986745638655193896650573633594387979011519150338267260188952006576079339149679153234400134215195165211419545895958600769831096569040359161358632033404492771381403018564094041415378276628433898599446931313957916886816355349314006716437590368746496434063530245735031688918888611819702207662115660303279333811002950966974703662725369359778292423684001032399328976836774588616916854126185850560403208157453504132284367532776027152827030298665494896286350097958279173156298251678781923358791229842719676969032593156125885937843886133951203679453772116658029148378347550961328676017086757845660695535575556002896833673634962050081258135383266529591514984335360502119468109434640305220208209637222889539809846396755282184420580125038291747584345922314642509669753946031828560167172174098052204366646118106989127106914668114184067775935263933259287603431186612227923070257569159445137472347935152193716671718528708454028447646139669062436549061216307274435304283529251943148870958839829359761842309321005694404767433260052480914218171272144838820367079227643965022926448057902878300527891137887991051639415932547253103753111412354456860692125069742040534337101152039678689257344286410697528067037811026030916215834832220029591923595450055492284875883293703093286411509418833850745147384917849790836362567059811422476690461596882853197695089980884739220255115120583508711986479989649594026370891049602561700969763701706825662645964247210907608999622961611400271027939080832994805973377124282324586529191526341483487822155363727281012071034793058162857834874309893727063411581035192989555067055088756373163362454445062507402344129927131334899571056140449580332606762542148994891916865479203191988520405838250524103011876928614680649904283980581547596193023450850448474063677626810101265625587043708461515019044534611512294703506374958854148398547731848343548107810575251859633558636505948939908416668848741385217165522908611897696132103619150430558757715677233355922199277565963329754188700913322097574485861392539458485786247208602040074118302426004182364764238822424932304955814410888854350286603071808480928018134970534628593772949953680093495374045540575274383281523849861119711796308502615368577080565058489990010589855963167150226195548493576709452271544281366501501481156923996858431474083096030431337945099211469172143988720643305002101305250923298200397088514544084402677585536952476221129787068436879135873678404953920493172351969742728246895761776460912208499798929684218706752740419623917226059438632411985615647600568961100101850276059142397950625416236301706642897109523208935688954853290538839557843564951792267088250421291863266630323831709011909268803193788113276040533357512351678470505916315762096268231929259589995331918264295080703003710966265460357426303163221046853011921558632470572045403431889434870586975494571031696991287814634922514151615899074739223866894333506966426279936154030836156060244537621814152215906459342496226174669675532594231532320485716552596139041725163094928835196608130124115007001979440700096104463161905354492331287724551569649382361848846966558004389779181681377603490624797963295992410601613682275572176650312503626995029520040451503554091097424075897717013370720312605991809268937285386668326772198458933826014361833760616797230968906672887468233718469470722242879898909537199727461464224406812703670961126364289830825183244548401273701430452094009072428746527725029666462668611044119067360493539368890332032386146627679522823503749390861550347307397961077114823805704269188275948087819156936825111711887373992348958746901760860676961220719062629453680508463396239892755991565798797260287541325790869026024303115152658502594931009917328305335101614192325432909076867317778045630005450410302407607007724545456682337016670890038180852280931871215331197776423748002203591021272505099636483084948706366773354063615901840805448567265417919624706415118702339009083160628434920904882822293379066009386693847180308161873304160084869788772647518133265899907845598291403822910348148456986898922894263341210095315044995282313651772073441736321362380655451083810756066329930821699916285418775053081178207207341424812025913595641224086393448533489931528193065010375128949643230632722529026230942975228239953979964713375997847307680340772126899329488501832848299039716573599543061721385767106322300931204898340119060283896594338494958842901741811052844049019088693961096236731430609947317307375106846452652356343773762097560202232124476023922169242603092230564206001991255345609856002301570300157167387847112486430556096146739338771334178534857233240570177472240328293703397716718099724350560551161478808193801057842507680950281914112392739006633808692835991507310572715244415461577147249082921763392439550413830609159868379816258996662550764840877166378437837690679798737735938354969913138079480429935693962194781189187852668281870560242299739389421527266808256373479776911201476382429182661013339708219500017852771874790399663721985539643313988054501174738465745351387369553562985077626004623191166281906280934944390304754217157426640266099211708324598390471096483937705631326147384939510565861496905802766085229771420014666371994301535917837259861174710517400084955904442775228971909948046171026409215008319524998860545850972489849199208206376030328612699534064559000560776525574226321352206082384736888812553396602690633168406434798896283253621378255782499057044378373100098526774800193097114625998843132299531905611732258882559736640934747165122417519890643895483854327695373732180386765256018412042197126202001052988254676226810475441011969375292809878849199687615412738336412720977396789225632663754114809636850797658775955288094614298472750515770436189813941104677264898198967057698787246066460424786672637521052488438768682805904187761310530813168787933313895072855983960029919816936230237739307607572677544753559748969859645191632542515911961249632036044201471287479915009757599253083593311895980497706651675479612001685736766850138925909165779180178645810161288612091695857771268118603617548382004849052034887930946212582645759692804215126684485792629392004070286299685557466187393768319153010564009858645033047969589798637252668180791821539355108205492415905084783109266665179104585269448714651248117833453704914549930830723635307650045427797201448822063320339399208340018716092601285064060417856299348115810709365527517888367465516195334385318594481955706856714559597200578400684812705115620266571869637069639111776226104798366824071558802403012147348765982446587720130935659366363918325028001722552148462817049436517597233131345993846161488302776916350522991050237348149243009744089001347259630914761450498863980992432166681401045213409112481353173599698429508943549634230106483105141919251168324694227405299955752867671211371733935580347579508104658784707887372338887896273292450691051121331321662528955291934994672184529537772457089331334058420099206309954856155792274022811063081548988180681714138686715227849557667861183896115267152534610009566706034028911514483212392632440594003903877316023428806377070600278893124322212859081727624747200074287338470343815936017904282388774675935053333180329083756503022454987813283497023768549484378054839570476431224003859421758637263605831986864219120490482006444065031053018871469209729535541468978203888502078018634082278917192159705746716548653452760393801173860729311308984967172645001686180465477083683405632203513373693416201571356026375125506366617102236859934592830598857404688612318215598104131249582382576520614326379228379698614289262521601768567187178943166941069193291573486674896497566115003208855154871860668743835575913437233255723599176993838606678962902790182208836236158424154059834876649331891600537217084781311473586613052316720548893487754213790164233054986249119048546121006735923091338342829559102234711104477296969222560969307573796654079228221477316373822605001508382378983458425939961109906454572750715417719468070493945649159126285749522580722627834393568273336353181042587674058650597353202076554320423355390912347769343022744196702346031858146988795341642596151275004069429258782666111003761034915053298312756601601209101751280201997712454337470145799214239633873320940362309337365664294306221795794925765078145060313092494549792733523679241410747549519643499594359253393571684678760922691498133815730767695206669426703134033982037245058168935599599714522513285177117228625319997095570423227673124896228505743980406941978231041808277264712756215153866308444667191526030982708528649815400850347898769970833593635785422125911095493615123753679021320493566245027517508465550393972945319174776691004663783178148398624468898602859419865463719844985711510673923499499794143669216890005372388958260604721312572559748637700213388780504569311998595989811143084288390056674255361320375336407153509673666034187592017737627964181078105383211961989538588637408793968655128155295765949538779699468189607837909732533307121677638079636509607234315513839042495265618111155751567991106343482491416376041906222456764968673475785084206615492675650906320942882701423951708209178265359455414435389206733701578227973847316328610143137522305912610531334661680070258036508019266316235965330344503391927176217912950835000122823616985410155735495492830397219114861136778079705200692130287752261329714195047001116553793830032035153303591460101340070286381829381825351579799660939092074201549099819101726255880651207293181452698709361081454437478970274751969812725074433534554011845188746267249909474457224849014035616753212210711796700928592586599675977878975616148533063305176196179448288986885578800882537163516537451741593917656464991000850800540547793405295192050961458144188010877433350414807097445492875373817871282885903172181023660506533495967614923950573598039592989889620127130326222646562465922389471679988471302000656781670211234937045302184682455768120027649841735438149255851121893028904667503330664710217764926293017495330213407612125164638532453847866254431130608453660043918085065525811175154283948691547932518132146774417359390075629552013504623173638808510968883114686489813452104271283615669658192880645223012315712576687172772307669462428660106659754824109261621097456210722126031740546462900780897015761779632561548130125460733777451028456874302111617948488966488184195045518745266072974119268635058624620389198825941864659856575413503416922760072416784788276033323637950109851923879527191376402668131064004820499881243837044407626214432966533606574296826683657582686197156988675464700875719204912645406646349096602892574842208092197796568856351724378611700314055544243073226867303122275316622367279190533233638242066477953728512514114606732977807816166474969573908137317081404489249322090556016669001357419962608316481183154556765695093483405414732627884786285120512081041044992654908124625903486529583269258974288683252632306057909681722633031999275397331451298529636753115138634290319770000960695143600851541192096241894509305932306245892684020363084434265791589171117547086647822418420686952480607301257000827458129597431880397006735358833753074993129849305245710280519073637686262004035957728964628414322941907651329642619425050851108371477017171986181599018518786549252080519659521638490265292205548176137628844081084222271255089034560644441888139543359820950464192339680778698187932733634762886523081079962944658127950649230819352299381730313048280553466908935496555612969538206102436576592528475314878723223746265747929650687369759143847484019941594036501435944751214131566537258464855589678339472985508649225934294811557873837986837123297628044750978788335396347772694856403191362961093382159140100630453905559269085223760281402128338701724863766958631911987119289808439784577183323646427892957206763453659375349295988190866629877152970529730150006012087442227032236307577377267596869188723399860301853469663338967650263407832685462357714860941820141963089588208237960402816125622313822926055593004904987010025593289104279315779374523463951590443608283270194860124428041758859369847928231560287690635285397976577442078867676056577551611423786225915076132314131001527675572935482589499356684706491524188629207743183058858254392323609787313966821509792124269137534853753737846224513891137005530029717621302174429935628215030668321299816040001210191616221462677495810742953355367384861548958018643423315010055631680199189578185474157865894853649234299947486127773104414028331962943715022164742735696559883822048720400262753560964746882425294328552482950905091660184335011842086469452273017497802482118104008346510438074644582577796797886370939749550118927627642041231255026964112366062472656953884481828551778834936368919937311667362567334339759363019351090597686777746018295914305282932589173569270404230811300108712303578039734592272355274489913235529621786827431759518915442964419389511105190295587116596279127135914860150240216415266490638456860493230589308519832859586081432067704036297718580577552347992073799887039967664152350227986248350468678336812634382049865039133241241737025311287374862777020936028846639649023210682302241785232979121654258484522391240252839336590539485363408554965307861016715861013191934583485657453442297566751230635115279207644184076242829278763567650630225385955439541794107278746414443607873079063527841244375829112348058338834500932876499334511612518415382549935255445173238791854194885528886071298823484979642004791570674604135921087648390921514100714283258078687676694818349071909893213845974251229469812214863832781118669878485597425091387005066550738066994953976678056279085178042294820220144770843931188871704791929779202896808786602600495017694844787497116178471255566505645708433433709976167072090355408798293548506465010083254443064238084316250721664477565606805549369271527070048311644973359967930673934426484383008703035939720537306362484014761753610849228696795326200568293746324314072108207876362952946373358784545835006534053656710992494215537448747061019711253515860005373638182440615217337626413186010620433491757287009017607199219552595059985837999073947108622230831973082148923365399790003941790148470600933974324999347871414315735566994495738261319293196895515088830633472023913424059167478342641434051602004613872237426388381919940708109059991099137315816459858420871206049676688462734338102385398278157918730337439290646304943003518110517700064676107013131445763347685063050312086225153789110651064613790101670414769872818739761175927185875102032017626557887125982766157668834644665497227889246766781078899349819345043755183751153333961985064938749133304243628121981870934080814176747709469883371247683721668710999017946513612083385323195869881113208675722760544403841713428589066457030288740712609996232726793810303798698821820061435416983764922787812183493887032907180557551139203419889699397350069924344559262611402126960488071825792796679538052510309975389537463011239976525275146326895906765691180100102898583130028346335123391334863723056100951605884258021823771378756973930831350509396626691394844595159846968714247589491837657586005486575066183594317355967229021294762898130275973338592860659715939700971895572978722293902106821039438413316520378671899630614885676861854385707655964682483035001026169796544533589814428664618371051976907114179362625473994567943711001925361833524502031263056809897922523771874156840553407075458907462169103886317852574882108264254970164103983988881009877661715918729501632899868717040022312089068206844606635789333142173828557158362649359389839741323554642305443601206518283999803975797360864226265968701812434750088528978768524789312737292422183734122430019665714329920798317314651310979330301829803848412643208686601687478256307120294341550135617293742904868058223850804898174126372117375421871632177332112969003698915351696039469904408104170755303927673635983055926447382777106060364417638655444548506772197764082647654010666965486454526585852390764680464711224271383589017726794195149170993863148025266568549382300319798630588595597415166632862838331498418777035835913420369980002570742356546857881352835482004320887375015262983347888520100422534537655761114003218476952914242770493317980647550356112850210349907963396186612335182744990586641592057924614528776759351533291433396997297167792678816675954833099545877921381315457666521988267168091334043354768533535707300632408082312014670155035689389106662426194625207119219396312622529642746662736438493931317566337840569393907261780037375602507071517258743088627213243690977128373263313652623375567079736161244158737079680085485956570795792783164357214997854576642545057814086691114318296643470990676669400670412665256410071208391403671538456339441424945758182639388595060114101766733081373057863023677195415178184532324877662076633964249593161496474877280591574679954237755508942601619929060711294759057566858662514682769155052487899346128896591461716058270755849711533270209615434025944390577877947734090595593179753132371436758032235482316446647384802987863607291799499438667587324341953957747897096970087760241030135659562045219738420534476981321873962837971282075814398913356056088611944016554833246970530274712020861864526728818543974750767259646821328126275845101584706668400644422283439882803778346288433231984606105780934672991842484127003973768281712140271039881531085798871528238219140029955726255289459188682253899495193090241858123652765981060039557939271884952633674231450873971204721890557686603868056226801574429970698915145344048628971422502284699856318814767989281682337486136037900441251694714079896088176913937982122075472086483896360780497215045173810543113036815398714321685802105036245133587864173493158335542847621475672793546124767138883030726970635125123523140544148814202811693813487457293615368902873123176899517676938129677054695133304684705933934728227848701015330690752047632921758866177421782224775445051775605199143131590478419928608341503780399321869563831717194175053464420175145921494259840682622175336521632122655551599262261621183088657813791415241079335535733587089257185744884431861751734795548928470070182793789597134841065001319248041529942217083268838818732741704266741005076504565346679683901129812195670467472202038289359533412825525472779444440483733412637565564061314116786876531985773224243910157747780955989374862745389454418626711587858820289018205445225965663248419839987898700605823417748134174485618681552601258692563918281315752881574044723587881640532114838820042054030095855324043362048218533656164046429550460314708253883081571116747461581921603729721581216058097420076985428284510022795670337001846375895924528171271136808472099725421184321433670049147253939315832706703266836088923380920955795998194355809161170450402394965991990038263006119555953121925263155703617341321471411266402740944640967959660054813966936654615024497149621261441431273267074896146681286486583732827232040112625270791580036738800107029034880186534641560652847905943262959719585565535987921799653888607059343879449686370395243394066757288859898498801821212036107711215261377629023856271358496811579864815629204838101997694017673302835396438925355884702448450491201580900870027650148745851807604796736179307377674519024814655742534278825344477151195877508719851240322056260220565365061557385265735176642789087090782031091957749031710593640161308175712468420389815963460049190206035582372026740720431458384128725645668285203488493723917478260037232707658377483130489194386958932668458180945027025140588302155720484864291539756854992738828912010590374339818321970619142135362101150603818497240968081479730154032151253231344777517250444935005191393712970889967208492643598139185801234902886025459898935172465632977976612222783946192421894259914525162832933521961105270745082538317636031898761661763485358791540557778279480585503582558525085811926383334929315704856844653560831076942546632618423106496233436819207181183157951625309492065016840301455580492550613972821922589078162975881511660853546611188474180584731377828578737090097781410945541484323897223150159376992308958567472229589371566011449582631682781000971055841230204655252269584303772267214279660557055516073038293589351456872288721746703907046902026599871410065678605500301978382412241652071375719731275347063482312477201191366132986067158324735646156526124288985754094116605466357188031195428464257158199854753534563060093414219366903678789101421340845406890979425556021181885118228310063003371005751007008316327902499253733965042139263619572049875109842229528960490817281172998586312704375647977436239422245150770247667334803613580027647954235093699326117624641984275359944227177705109100130334390481204534904659715367915695799576570093072044741371149710604752852614649071886649710606763736635224737545588765229106011499285295820692786560799761061332220779202840918085105657311171075557620521005001947216360565853504248273612680263015916313160208560574571627356140993014611443850416501327137671223848876379313160369170660457406601924124737104402388163159977871011150513126167038636081683872489521476234389267431937299897841166567627059283914040563225525939583687574406856334554935274487047473006069614434599872294070317870947652783544030733529971186267031059320347273336313007615351724334703206154761106827563221840398443459523814478767051348736934357391345467938703827874758679295131589223035275073661057070997867805839994712444942331892240896334194874931516809949963051973904075275294223103001564162481136503844311437218006413427824672767439872642370434188112150092508795474878950916461917558405792154234864268935852840018639012189882522444412452431513100869733912420684681723046744394256423150573000759989684126938138407351654663639364595112879073639661840171397794286709464721742299348480557366232798918168107908853719127382721118806057029638055678537711361396931154895837623721788782970486660375566393207932144006092282057204224965756250600990171453242348699272405581447616579103355224140390458681782212614778394518701673561519225686743745271953345069892414178164006224764542824673116570446385734206789400656219516104921562768489850723784745067620388117988893094738277823343100911685016682408682031199951500463888733918502224033996976462436613178006887574673161041997589097849857129084390075701834938550672353978577152829086120277407360961955439216398666953404361224742536987844867353946578825334613107788499748092179727176670608974823763358670580490126578969323202419215780368943576654861772574266542369755711268339297734219775288253924794951063563837554585785875549529363185625685700432304144479387220582169044059814934869317549787731908859946435924360354341830135694756468373342456807623593371126434564520652172268445749255840667171952008157336717556636148097120562369684556276242355712169853494590706216598346475792920295644779029854587771669782698389438322572344495710693966956621168469489654114973572142905928316952722391681796396285164336930709088440958614480071978307995253668570445370790242886461480849523174015937984250226525917632606385084246469547422289557025564475165744907135981824765899685091669671299513531784034396053399995105689188634212172752768521795454425635438447278773105189080765429370275544647053639054089326285009674453125966428543052836407549435638670986519697748170654437456647448358060256023198765193469928176442704645760502037491195520233872069058381912019765831984306045311839136642528591613979894461411178448863205017081937636827696365179960878130405942415304406934667709069661646540544822437133978338689386630196040139232850525502686416967610123924548313210602809011434984780659161963604851217400952850501791861205133290521072544606488060671265155543962729611333510366677628027795527701512633772083988373979037087374809998577906683568001990212752572984683693797042678627535093036839538445767282507790041184189081051947548081649556350254826588312678540880248983557358473589782784586828895722691475009037119740497778744557687353389430660397454505573123613496522219466028634813669631249231888330188298077509317549532233420433901446508376015826645961719456765525273373190077491996278149979673823308668752349120378261943975215123932396691757135433624897488723819017971815271161363371240297908759763366815641712904021264824409332672755313021557439773639163552571819258970723115617268794446673606742519391677625434281791307041208685983225813500441957098250070726385128746664231996119190797374818430167386581341471353052793748208860182274188174020980796196501598414079329442572542621121901394145351015105366105587152359145925822393405517206242887051979780184517562760471165024539936981758065314911869121246487032751637311497445151680972136879371613683481975427571673211955793814950861871204666952072705269506298623343193027550226452840136050976987549249112848131432025340440455680040025464854811278806541122617402702843779964425720282934817663215348185275359369151075154251173739164743906463798602459245939028089111332976896797561473782924182646233287608028743146271039384879649596850860905250854396085991657087428293657843409582799445299297329525805747028006365479089539526406931588600721100003777778009067465471777075716911671081467804454217324193698098797144896010918399863352251244365008405467294394913498248053911462352644795331918493022203442297323883079980559612538103949238295337431960290389551875289803722009597251970517890892242126735183249166137250609268712449654041649581143221231388370243921812806976431423525650758694223863664335129509999459816631463018192969536275240368497774091798474760251777201298622021545951081028827831433727366252765562500311626927661654148872490549670670598804214786472973617615810606904950251853502265324482799617738005019119650172498431895548107649039058061528491222104227601413160956674949975322440290054011053737009871843853567531873762361421306265262212201746846804919319461625577095074301844424835185548834056800857034422546075343288404835184353952497796233546918247959706874323556042021542504280123280861448276889888460500941816153068737748735847172809324729083515541402398066511789948132485621670499045912422599950747632623132940956809153364428692476078315305312499934518554515942557091322653843620220448836047107052364932158191692335034830273980531627515396201597160590122231013698212096948008795724008099589087524941244253540853031152641908873412748453091908391871052651858108880017960340128107804204494792850038922048038458309512579577666711393359027685180811455905967975933013322262538168052313306046863915523241067324714027908783340319450725528435766617257337071734789294511894019644822699028833249649250723864049084380084758719368616784800783466434710863482350457496584481264727199505649348811367800100663305091310026971420997180814437279486479479410552983394826818448832724598929737086568354217613813683492982576142856085553190859857634753941841093747605076579460924802309731386561209224720518399453651457531197159752184195664094394040442045806357165483672409444789476258275474116905139049259637061829411885013261689782395968021408893843139618770027608459518416281044148789101972437494232051358391213526329914590350742245100344066440408943062663346058595058367815920114218417692220417441645891039125814233963075646736671764179518246497184729368921607433607011024463598398623808527506878115316901393308011551140760415967715836574740799030743328667349533455978231534802821049551460460625238243616898362895591232621619778572721468592583374947857198031515028809497746831212685229895889776998681362723865856414682919216582187481714478841461229084059099216272752148404840305961863743391447530393414557740832334756342654273521664491073529895636398385525887893439136193879328099515737964974658832351418557991658480722130013913775980984361464048267177771005140327231315601021060726053533799650159453147247493704249085748132059223188169842064226422213218535500532991516981044219518462494572821575420341380405777425990110417553417602647811886229603356027072448888425999857060818309563304622632911567833033062587920761663460939079992454107823222507901489196632179054944306192195811149579797524587004516319162674498947114712257011990046534008859399513313154795587979766636741359275645682502282313765193601278465122128579325277770801954246287431643049688894613784425064340760288449763945883705706753798916213733724746000468601915637866026719974632847223128419516337616682813872286778751533382754495208668200495241781844539992141739525296353293842390515940007583301551815415667249236522826051606619197400506820424249825564514603634436059426734276348773853904522101109984272094363848397102497129561868152876953549605572336816195811337792967472055527305393107935648379029253506520097613715227030936550535808595033400311023536819393420913881124678002089881878626737512111614205382012392151699520006226548502279958587076382090126892045708982220050709769589451448066934145385553413153900155793993595381550253849766428375836886200341027687925101767738858330536033895366402905990048314201662139572812323787984545305162630251917264274662466300131909944181344521675086466068064336375206693955436823317534684467383566679216897577565797526211368572309881431076047295050019139920400579051862158043803495272211639121172769665308594791120358311398385718893578151226686572139969781486868400136805145518601309565107634600254568910184218680953234197382064412822499214628320406304281353251746072485057074142819003516841831615009196647294589813167809388659674104783844853808184283005520580624744503390414173664524619646857675789055980260769962823923423548517006051491648103929195628822031168901080471811377834307213315310604539999139017492882359022828062450210068360777742635513047280079502255339365476291888897643746715575990518370446888367885128459415529158551737173779093498331111393634562159923408736647915011667364782115647342910298647515839181994249442365931741712245763195878957987759519092316569384601687412636037958918798039011653933631124956765561099000427098832495298000937879381451220804226674513559849168439850408778851148631288623514389458673474141821799549428174284535466404241739238923930853335689335446527550356590305991917089766995734298108893569738936573457788324822693191271650888718904773479409398422297394145887468540066483907234664363051292460346485081581702667662320985557747498895330258391711492599431582891722827458615645775215296960751111062692649189474309020431857729455931916358490567301619140658167846805273737389526974482034173456991681909982882000943694214967036256257282623166672525522841286665695877681920418233131958105331955842839768561189521195382606656817213079429050773937581712914502896662624145559345638830529490226840448447939953946129012461864745705987558826651371188228958730328632086060786857532551886681340665588208775671151973001648230939652388208277419313591428040112187806324342814642563941680276552371343118607690712967274922433503572217445910357822822337519187088516087986304938455270253036747018292130857680263999284487355820461436182940819417540687264484496080478693738373539722206955945754906314771020732318869023919613931021787288462836695346229011237314053079516881691258432573805798205069605560984563637964566524290535318990417853719907281247332686606586699146034532393059838568375825488570813883011239336453015920215387335717037836374544949324084521208799328249494981571311942261375550058675870353635280886001551961651540221996490712137142902924565958090096320172953495791967645512090520984675316917575468918976169657023475046019247751689343207187275985913825556223193397970891634126886427296474200362892718614193546689972331319308228227254842582355517188169245570754265860329351940455580997771206783997004036347937215840419769505408077149115123009416447447158715885150248363485113333393010664905191647990874583649525575973123752517009423474226061513393508687999557051581801662768526993915163034764806385614198013563965168000955017535011808444693232172297085288257539935164092852793648032794375354262711852103461985848238203103405436154085377558308909605035601706337845380876407734286512429933754033766856196914406419080551120876179156416437207161623908944124398394600027913873562692073893940150185185817944428427902749497153374566664988987177700516774540727809471207657305081701763614790028817950327947548363802886256561309935405055006611824209842331342073065690621670217461427805993042243024207840125922091900982204624653467904847434831697346980772416708131339058567685309485477124737293735174755708570855563506353807965959492173408910287766826510558086804283644268732157044135186509682150857407023656995304316119026602492413660935754812876792634776548016348131408417503306554458334092156395388094943696012101358826534970360000049679790023945128060458142250525234029542253028223197482508303970837762004927140560368267047843593457883130485791689314787944825240567724671595781810583193342510251321140593718777871186257116559333250217849795070765412674924748572644059689665046099691361202465663713254954563778625913661319680049272939465460233990220766740697679406832104057985615008821620334902229662001592250853222248498269141746242372206131941849821248922757042369925195427865231457078596890543903311142938782024862097175522107752781198448040012823508796626428686512780399299036295869179890997215560333969076410277792829283474223326916901670929361220558882591386430609426465423384622110217908899732765934603207460232157002149788794708135189277235328964939938892240811738840784200780347736481416198710996487588134384765728521531439471115478666273068820310155626567181241165506631686097675726731942678043033822456314287217734833004793833812052914988580708879389779750067268275118700427835931588374386429959068921019484202631618597560404701653107194809441463010251097382323922834309828900806433927647867138354119081293797912464422242498627559537269264891101420312651466276373737261106788152629765964395480370773878874644253171254264557071361734372383204223611015727912125263089784643011317246794959450506631080631034459568764418982364519532562119693404643145641931061996761074884850447336799194787750828379336251634253913731063229564759569438406320339534586008214618802862211468121174236143698848776656754473692131668550792924416477664656530047458208495236909544401082963445607880992106685582988254689378100409198120777899339469325443369975502202149680910041204795185363665444887335129102695493183534442129295600094466546353772596565570374292470495224933706103992711006266829991760374177876883135377175649199696621461812396788713916886273736494143542016153248976470476708408261803888454678256565491958834119077613184135341213058189735787258220515430596298244574472665248973060444131502403301812405568529524594398877589638921156803381323242010546231553488031556392096679360866147412262034571072314695412775758067915610990729878152762406258920959475110879150447002551443290086889750133627521449256760326473284413890412218937043823841363735001908959197692109303454279558509490051319511904450825350675882724585374349856962955184166742447593806678716635345224738406432399054423691319403258455775098446876375285782215315569393626217924367296247793554552342437095659353007581297453884925402738689905266746100119615704528081673563374779234921558937607084208827293499150490253009705773871698718048804090080086375065724661150766548945689002474127742741599275961261986770644282261583840277693856499984902977673484414173004370805113937299044486802081847899120268837706447703274274045594846464733481867178774105794845509588915975871127331816815081185671911190572442583935716500311251736413870235040323416577437526698620434121463109402352323523464466482800740368429106697329434497733753840299291167677464596916856508551629902273045752225648505541198196336913621019990088329970547497260177405303431894324820041384369877177713761947737831387860838748031631549556152129400090895985635571646143807586654515808560309256972283171366430827294788077005390029410967967062120770994350378694152816825622405666157805839435522726853770359952446993245212640503823916560668910609703406632351096466433346640519687289395779815006565794319738728051732169127852166366265401240477053299755871832967612123918580987256738587827178147535368564214694631280947983450129628643315429843466732345624807353109137699309310216067729763412991862806447709785122955743968773830792518343958727421907671118105898564677874872856985940362617083314247177520556891714841618257789981048069524864696205492826219229629578365248562621483950566377145622633123607469490258504733632804744933233026039818586586048310621681945232702191307589353938983461685238900223986761487404093590571609035238423285932863884793124683878440531469830542494445076698213454106326041149054253438676747366888142471035229377888224314371011194264046075950993423034787526379664999382865753390602694498695731191471692237827403951403945510356989205026872821190812928384113056994620820912086669003167380098771426362803583959910726659616955899732918908084098685494993984624892517436382696958695146192791342229207767615956641722833945905612057057929834198469977581475277331431748261809252720690817953957977339551277633272433796717306825722999492447901096288677598277661771920588964028850865759262708908638962638495939965287490657657107633757711370616140187884515534406614146363339214491031421970728176937989069354566502325111009360800339352266728420575100576405628346233397627235208142314982065483107868404777006657498886591464879241032320457789194612960935131972189587975966954362344383681820346796312634737332114440387421149242232066355271181289072332306495529250696999939191810528689083432273371381143795629370351763773630059066912908053197430298024635876136839855733627706148839709459844231726038641973261491998658942038873897124690376050892476241247484699292631857662720984481659878589032552430896405588223064343791514000489303193830944120382727458472123704731548212418159472294917333484851735008745185723407489919850353092593162143819752764510195079169479298455136275500514088207001512483041499454938471614006946267621349186280547037411461449288462739380475377264484709583346034982261739769842761475662849813558124644796553335517542722688408119886823588571933811160514501284412921462906898840461165326446025720808891040236489867716490667855158677841123307535536685459789309671431861516330933487381939529108121225128427818815484015620873385372155338575458983106917392826076646232914708068139557175523498860593981323317608226661037670702625370485159470524965815372012014161524280273031801483582707844512765545002589165889838600315167514765315758859535542883775893342784662627376040357592492577709655111421510257070486738788970444145503513132444376035892048240157305726758671220211790547647730476430116022416401344660738896106818241840254280160963395070338105938511361500458765712819064516003359293118633255407637610298727736259163136658757976359501066350205355912332021014810584682033951100080332626732864160855737208837699610546252639567528300646662222966903106632731642453383242018807682583347089922564552144846636341345852814155342714557355442987780261637889416336140276424044991674506362497863236228823274819711984562620503999672371512019165461822742738963745507957210639509395740838448435158420040576076732369990938673166568603775998872232137110572041177483293243746221509365133371099609472616353170579828945313800290721442736496621162145544319077469788363595830402664792500948978112910046563946895503613149103917579607520696371042838163980074918482109390520464331378628064697754726198762904923860988845168743287427952790058045547797770519099780405117173117655380510200139940069108206516618485671993274369275280472906474235474947894989104374045624352045351696227714235112990767000653287315486535545390941624957556462775277932514290954234525811363656931672939330849346954804693295520976816880825073446613177567000443226984261926252099004015217191312962732356713072273079759745762433622344475397519668240503867221472451395706567555240717666665037915653731641152474374681831201836268063915724152907380068038392085747681319381924285038029700793428101580601923148493552920834362382373823061220186970419464133732195484701331028176721767692849901667789288934868275151638090534650232293012210923995396943184412448005772666425267233576243602262138462599568166367841627847722671498822023549875419108065504840438821504783025156206847531915293924800238419307359784477724163575822285079020086306575026949334837927298387536090233191086548013583973332388418781030350315594854404502064191482071597827746431546423728643389872243254405072125115049335897303897440443480117949432227119868528007589179571916974056002199748810688705717379636852268550629683455566943961317163912510836253317365453803649470232761588681673932381907474432791063501346496419738940229908274322713163717497944967115124317196639015966751282120956781709874565472191881541038612384274422835652300068499975568231998780812946742153420592844454995688851306473198498643068904010231236401531712101938649082694569463994399706671916701952208073724761253004546882430103013178277070151164318928321998534698190282003372179071944876048006557064495414697732483655576783679588830955583296114263146570139846075559101619144104280871999391954335271094050403795426999146610711944356853664278036845526763497541866679630041771402769008534092674461032167393164856178761199095252194765407407499288667901732573728901729158639092171868687604995293334797939006560710921010422955972229736566549784092837307594000452676532331013881239556481492879603440298008541061012233134054021925145893089737753670968714074191822198754230345432557706857253938371649620176453143952235599124285640446378268381658891143271022316886162843521620990437718049492725594696515179955242942967217750464896923814484455118628064316120646709394002612435444377155913729500735066669233384370349027505288147236801230974134489401338023910102556412407719869028127623753603511951341239128848176922156722128526301620876523894180116957605454568579698683728445323193326804870392442171683252331274924764480400605605592774462285249596670272776644857797664113694959544880972853006697789992997752682085932804392424075066881884104423215733847044627097480242991545141177973426113550365853779008620011323752606298119582587915018940675542830351269582136041872174318719481627476920776175410139682767858764601362919771799429198490865581725226780973970385795226483126934194598664053023176397427711912655181013287308117036127479827802261889185971311830637380778619300789012682607369142102070686108834867293724789944251270846130299482993658800106406218682907471179852610243801880833061765987888058490567894742282093452201599216333882410749642677498375159009971865416473693398501058421405993537739179946177936460592814159754245404832347372447189698995147825169091869449305761035998117399534044464363671881218436422069132554104604112793220738403528143692717671880660919720436813667323066956468918261372486354554343754682045754971809300107920782841740986341190241635843469216586927719083010702165931812896445995178435277080294742816205929495343313348296979416389363910929585160248590241418658634796618554501952726980482661679476633655829518536105188794059676481137106894485670517609849769031317337333018529689962816803966981322244965951630087857567624206376362351817124133183433152655274009141373787481685663150095247054903299356791836022017430321149214669489454732848017198794354160776445917857431742143549352777662636123044273645354258777470787544054008334289233799807948355510524908498943609448894692842078814496163627315894015975026965081206406000404200440591937720923924627062429242527274238943008929376892723348208459380769108415979595438934744604577148196380995482102060542864932533154498733560919102194553004119817944503801160368407854519424153013159671786015841017279688032635683170296385316413335945146172115052514824514745031204291393166561917504741921563349247689648792047881907007993924127509738773201579838422248503944875692079389036855255134998953152269698830811411374201532705801009338150077910662671521294055510865711410625850508937725245589191808065700860946534836629618291909733742747762962489291645931780902705673024913036368593282254334923625747952513694432452874260066253647407504268035457657448452560233889507698855672709018206641219867748578257868346581482623138812699081283573889112321445872012607343032081086527231745151559114092117682680141483735896489357924003636764480755521802541930394110887300771648463977838587584352758673366164585835672768257067233100654628762349806212656180522810643770819452286425294110603939449722585215559486411759638073765254552047424702615414280617842427301961325638471159718640171889691064145884084069904812526288571010811059381424287582791067904581784838907368046787766575210124344406415034251309410660613579455908093341228820255698550647807726715141238658437748465251649826785322088488530115639084960946424073366523910092039203765140370968466547391596810498198541550862837042723829981091602737461710531519266153979011286039021701277860983364022425973602294363234777161854507065240795838379525281464441701385134228233726699614221188863869653729223508109446757250212245793307304192391717056879086470849042572120800750530060827840303257154537964198734308067764652485333429446906413815730096464637275081004323913321820997578242249036254329946935105504826058318501592447826982616603394516236332816926918580458289188642612802429918704812316456498417791858327890187525615615714894094622837566288963510021798275971069244693715225629803060704714058209001631467284017802801574102098920150325958588817669084814420203921501889161920546672779888775894375998548798948824006696262186963640257792542448041737580527918639069121850083942823566722772944878186201200542434733290612598905345023014456737750363772970208511985196001305211549774274872519314105638578796981124919665680851375088619725398273339716668629405792759195789505191909516242375632807203936424284384092116510663630771377665692308754216613357915378821862104718562687283891114117355422015239108679347756202335322852904332625772079896550784095576061162989365439475538405190872898076434922875653352267298962987055982206958911594612724402154850220790357023466146638122506929629366444691689239808651498408847523492038665893156735383282141786897353929335945619373211097729442487237043355951816026185184394086320704218774989713075125689082804925086054042388233660905335803266688967555264146971711014212439285312874746524910558876927723091666575632025195675979839205474104866897639768567638563579003316534011315973083989210600496795162870079357299951545358321375088561737416115300526215215596720566660006948723653994583397128073086708567073951572456942291311175705827486185969263491434530287957888368389357490030920824232078045372543918389904636547404874472734756383239566904652080205010960564628555929978284944451768277241866423166269742616745372642784376450704238686643766639758009824974291150111455732824657916013623777438913535482630637665023267940777861472865322460087575487092264137290429074550117667963222521094990550105071850055933975098385144788649573523285051845788376282333231782523348417360275850087940578514342466092984938074013906228877942716385494365784020857216049874864578901150864965656797387882184654312915312096937142696356570880621179700476239248663756322356473472262581690827785188095588312930387136296376187738451032536470443777722365672742947688648667719263861953029760625872320858481957611933324160276214259042213000435537001318672572107458774271934515571359263817273109581802586341547919422140173275791772770956956307573227827710280422760142753004486078356019444541133934217711635131218080411314192509511075330188636128129032383923033618527575063973979492855560242743955311708734203850153881552545983048548102849259340062630358469171068397591968137895821190831521792140354442327516360140696593656567491349942507114221854240453439180040720913204789699877944553324131508225799042456989810544084509686395731161460171547605395418188035239542630028711402468293039284975972183902218969843274774199794903899412724815119599256933077893819806395668392765829693487606866434471231599723550752045145543457884063947846751152559297230511268454075458983330024286085504464281542326004987745305103382112833934140467159502982899937257793573845854453493138233366654779373692003360776505566640426572776029010772692880445180655993736359873046138539984962477072369103462045164480640201036868854093550376377690468885126179548775605781252465648286881669011928375527529713927027670378287854764745609491014619685040207854436700543435511866379788485776954624783322647128088404678387482945097890702324100440694845499702738425100897116939216315012123536620372437909152165503256753000252028819445104975537530186050108128226035118768364443659494519835577319585164619068894585490892297040155167317318566408306558131196310538459234086003043805424717711610318625247191072181833791969107846577330552438065839088437054698618484373066187317528549554548201804801819756610421567877334488780016130927177428573683446554483128217385871126250634937413791044729403167389860456202079820603834445966418221928895663443594989121758001182124852413261594071722890205012554300472675515742981260153094212861272811776289890034799412058440742952427514481133519267166910308413077765949693180729886605900144344968312113167802275171226888023944086835048996833842671581806302960604902021588422398729351692946338849850347412241318427938391607272242747043144966138932840105229240226650935712666269085029341471820538752890975400783865986666088274526122016590038918310688784202017854178492541761859435825430817360939838864599016322231388967870711642616245298883167007929040343002388420168485084115222379908495887305299729889540396436419161866545891270232478223344743853461662797959616365801900408648239245239833779116331733106246393026384444010833038263422547049008682323205782690039841537346643575540124988759404987426599688278987902774763406776842826304404908391835881249698194938961765099452290922741760950873094034261693750644446168221589424102969223000086829223342314762930139147456612769283481035843444913062036885797156137767751966959010570120386054860982790377257901133811555407895114932720624581215782872159019670455591435824548933573037779029948450769084045136302631357272877513341405219145041530362142140122219008752975021693265355212749997706238254210743322972567064928562423605309458954358153646466239531454413845320221563738233935625520914027680597807558333789892644635467034877965610726671212194047409564984845920628616489864864196425488256538343551531248017562576224677766174796276204623901337716634593013070275477854450570332930568147043117297613542424955546188443901061891482672077658541685259643946044541867564461162747833469238183026311128040098086558550759704445726076084635218269985054796820775995290685457313360705394419754740114181860045448627168642478214112743912662680850758424591049967957742063712399317447796495764724888925119215001878681573754723914331928070455246184859181005126730406392284088179310066379936898263909161561797221712422506186796952822475682256311750732485091859068452565678079721905676926241830344476073470898641339764325322245624541227582983610918227264598441480941335673863701674420108959624541905638687351700023365471274915798719227700646083944441443988424065146473981191178476414415946535625487918633158455135504669517711248595879488506817567335469563593843046192017552967046652325887188718950200097010738854753921040706397383670582351828959685871144659830236057800783552894454792105503470570957811815023443993421541870596990246746705873332113133908776372150685968441208081184533974358408951796934086099722775789821850796197503480630393525251281261786688626185862252470699129184097877000872638870146182537530031601850950975344195639129689744932255777768046769898395818698015598716406652018392107825615205381670490014822030357908137175619048717147474294890609491722944844710452949208332996949811406452017718060640570140859428297008155069287955570594973125673496643511211628872991942403213750910489973770265748639829951969765336765526968448758626925897345271391228909096572346004532175292048699965238093602476319977275308445490838456769371338275074151090851411195009106897679669551994552736398296959265930227504735350680896912423927703185555895175787088954193927489981065943175133826989938962013907876963837548930418543759454929041845158894234945920681474082620690428630250644730598920105415042419033856560266802071896835219207103517970991441555412116759585143241818194825334392900422801655154943387746446470576270149802409154671205606735231995167352558183741517980762287658090319072453649995213463937609805875532554916513939174964586538257874541660880213322713765933654497720081605830473281336551595610235592038294474547365639737063120414068358973935616189664398594133118734775963904246538725081186017774245711530943947137331038653992165242934715024527640289297392507595932756894674221170216535134343318134386746738916599474409459458289148496744565360166883502360426174353550742738317748199428846461519707527986579931824666962272974089187266408153939179299796111843241292694481583087293946494682572380658919990281341253027777421685392924269758458932367260471562506191707107658702967086810797355616911678464388083278385558786953620554263077569077690998855932425709271336051447061501794567795598615969311786017954036388869361997262682256967310228007818109464247304416801349199879373749353996103033474804703027401538699313517175078244054754897827864507361584129510766403393445410751311751635036733527663907241083806660688732673619226968509776513117134956117128224457983643446633701923778830717812703772659890800823284219944442597152230658598228935902191429924819331699775710007911119795510809503794242350517268163940436226003479247993932381298917380067516824896579118348966716592039199244120995593334747996084394875368840540992800524800849154379337583409718147135342580440916137829510178080229090537932576616925648972761323970848061800183605356432226643733359849844401271049225203859899702233388064716630975082477882888123741304828575278534721939014332400233258834117927460896556610476495632990433634256010338357892290107475877699591905129507838425860008826728199285029160984741317624560497759775048720833489379204854034954270101493575255701215431948072451135067167962882425971194424353787487998122754320104475977863387041396454677107255967063136753058603070563410567371468520866528924244581780395337925075553525427652010916544365219934626715494200531277229472088306433984577175422822961438953087889051968948178954605461108899483444668440456807157558071790165303407621668258139708427175199371681108298673533512791459040247859374585403594889040189890403441676787943889655133878672016282688280211112419875494501377509466168769847476005396959322399212492567354302520112929511529385468658992195911998711561437847238345378057861495948435054810600749379489093596457040744003650672722533240338071327464769793240743962076754766549211033945866838067864464418225880904561031820339888288000621595543874180727279672551451519600797245746683216784462558600156564233522869799638779374230697857676607470206033664814078658215447551345626716336247928791578468779434189168532011020176013107026034843687979621311036573123132095841164065012510622991009753225797337223149638803719860609757719216653919560537569981913706734465734822934111830730374046445928866654219799370819207908291628736175999268041181851093874491163531828231217651375278148818003150240011821755952265253448813493373726104772244149458598306717797580646781808978624453955626571065912147448352343276372097780431453557254186223947290078885825454329574973891952068502142106427175619775277040485862171077675292471465610974193941310072564981225163413802049547112463094537774599409982228462960676427178436340296242279825099620462309513026793445918844260014529843131986202745095716638089672907634222782120978532540363247221122208917049450478096220092779198188309454228510184530345130465828430078455261961064598402775264771836507761356386329610877217392544928546899908778489713348216793391291538482396283438971675625777207477773843855177669426198394953392238248996720724785492159810799316732366343091032139006860736875878021814697406585046780187077980138722519845579872236392680384344110340387129315027645664296608974312521153576334430726995579356043153034298800568398220710528327839717681589456030424767201080067805432909541031844125949041584331443752100406481209346962514445847827927736203571989345746033489345126325466503419370923152982120367792598102213436509807086752940702523731414477258116302908428001702837529906181518580182294318570402820658241713808939614644116159361512488427511526420225088186888094426544842914962657721009033624400957303471503966187038096736087480555690357588266094152297689231472348539970710503712808357113805021905180962276701294064275142487535112339880981563313032503704911204759208284379100408351093471579674668084265833328967111636619695013798984671430903488957940618520566065503046909514352709682500939765899070497678154224844408416975485273933317353651927991264144353014393812159335323903304321515014866092703463095075605206150257222396566540691012872489192693746789876693550109340636892402524443463293162210391314055459183388761552128324692828288973158782083067250622785780413970834555226274613485825783906647062882764417610669903104097934532321943026237611267547208132105269075953241510830970806555990436201652081507967556809355744082041762674779303376084290907853649664095401946798668760149458559209482065901449375613179875764722412039886449685434084599839148893125110749288678327017200204242631987702221176394753532272389857075757081936310628836963696592085094700648492965884056183753340795923280272765191457051661413091773791987420304821102235015776809197415090702171945393520499715853156039289318691889284873056216806108695587683541268439547677262336619454810482324474869071806123087693541142269897069121868190475642742661193482010187758071900819066863195578382305839342225301072816712619234078946302861440874007604632290051657731755145404175853301296660380717015999298696364639173590973774777665910007225530698325167636262546886709357855866568798504410545291814095139406044434203555859521025568692284152750767657491989673983978973961817779338546617519488136909148743395309643014429851056220585099333647572300879380028951752362670066879182791618712917022911108598441846464913485390875594273331667852232500835993618567807517165750575068790333199549287894284818645304007248314360397876365082619610600728585109712377513568669801836585753380784477392304431043395108105520759907412345919195208768203401774242179770756761027080158521443447535700973274477919284512376066299094331640353751381364464043733887410098609831466016926214478356841861053606712236427484338534294031060412593325378229887715617882723458562048644480936278218644660071529508761940702064128744833200052606918627626736553473632265014855116150297350074621446412285199130079872739365029675689348338138087174936645577931813032034534533122446212630913869738839323981058913434856240390111531699482093321416378452522459161216854900456962350940846834819476788677545211218804310524025695783224069373186720299604491901715392391643693124931065815237468360028191522344651960354725211545879644767019329075627533459433906963264165569607132304927873438574600795574909477167527143136178091921204620146850571551956773637003734906731325224724696322252582773650348388814555996519012947488639618141596754106166398783843861975044114326516513156099014602549677529069339605292060244729843041932027990268538108494813085179731578301991324445008022782196825057343737070971230110397746327269906865786444975720457159816159773443386332070955263141284188078616556225841643498234676023520232142952649255056758018619916464635075568072520184845235498831238667429030401418567257270608225542198681599050716864705733139806011471706045781043789904388403954084152637561940230392885537167976281025592394598499414930335136287382266121205939521174292379795938967513160339585939122590607140151094565622977932093544247776298227050720960321892675240722902059998831941127512506701908742726299326949042646996701338967282019066264907894263605382780259431391292187401092123131082351859740676311876713733848279179582062738967107978392888938121580249561872474080119637364197814998050969785078225088677485164296641376296519662916829377135023430929929020852239184551167649409679581017198719816131234284660589520273261427430805351960513163257164858803280694069407447660064388535622971287975583854556808629470564373601547691672503410770619845227367130083745738775834542374306214140049100919345828440737461185766958780648629393329375544953567158127848116436275070888733472767613373343270739868102743263962296992570435572782928696276969310020564024171073242561558574198088515353590083330762624238988778753153414772065489638321940884622600893082635801324469751415685439020281397590091976628543680248336300104461555211274430710307232443463855633689554317574472798417967850061647169237199736127488249286973310252745337317113472788169654187004881094197925688534792523989348087782812580514576771166951059676029921494200413568695046081275571592051297864726263418514262825305231557751991773763519241095105569545565236222118229145863899407513480506030740722813308752724005316616991046289467836908237285746042158620306253167618432410173376805590224106378088406466206617790246983390665396274379126608281199529205604783499900485285115498502705257027190692880154291295270483764621915822937169859465790828269380754835638764129788177070333328231589215926711515846894995359848591849813949983055185714774836686858184998474037585375070223068526438848472964189161446129040933542596556880933630149567141678865124491614942174014976296165298258109231798269957276763674849294896656159552101986123628838589407935853418416193984336980761139719900316153158020767968658620009953568412135676009423303604667273906374451289020190959265558467662770524205106715076540035839494096723303127290505981359225952352421944986042769093093415737297706098500901032151682905133391628486933766872775640768769359204993503933096946242671493390234574622710107059234884343284854196506723108640754569885603881325074593979345756265054157789156602306252794932081149197650553516689614784743928552431387136596271377946779008033718206358698694332223830416016490284313357670656360526621782689390247040292866326092029452093989158586670991169101874900866880308519465693772574865801427988432642976367574168387973289459043863730385057143221780642910522300758684455633015184042346407319666444459340411506840087004008147256405833366875167907430563643015863349412325408634559466774086359280811704393778249473962973028102467032698054041676838775142619776551756789782274685942516294674161123102677739086272338364979659896835377640011925853775244501820347666966314809025808502142182568551313685649519300898892530941850770239595822749192399703287130753529511769654435393943531655825901767760384389264957977718765401026618111158997519522122605667050399802045383102363580565436450096697376700050788292853813431345948637011128564346561407804170730761987154638521651296082186006518667235810657225133446854462504073402121884277909448817797805971781052680211701834779474306055977826706115719877194793963624106241104032521896098224081072262566808461720311392371502407133167926597649386806328985024624046681215227341969149132993475646552642458080153286643272946453125754945822640564035199243862681506862226005447300734280877472309111265561637010250597909892500797165761305841229458100730662181385265098929729618136559991620590956872487739120821049570047051214084336294034951177529819836922029016612770906872528922204923577281025953222831443084780615539193297234186965117660684687098810751505322272828516095007536124790196351220748207950241742756640907185518172416592015435459176264719867614537135278805900235152846876579843268336979495321330059920764396449790580833403908028514400594477076933206219298514939802639035229277604240147880612364972084922833156367255773780609422386440720138083335016780968087073448791854237446587237928001930460994605630126098516016509863405004581135012791305122988175266423073003575252131550336447982461222418700928709551399317546931464290739457578554035922666146465078426337150679541487195420933602239763620007601838914288112846282279048468444531239416892737719726780213575833752144170164622856609690981412642649812678767600960627288055836779279419851300506988643045233939727111986558731752803779077682288662126065248028557181405919110724621391864144158145089932320713398377622215671571077557096728219279310774013305570495160224035767159623971978391849899934188817534565023785151553321433863941714958209098650727369312091889371138186691957753226742408868190983198825049794259249091554541338210178983078261848285069660942744079821076187845992194304039587330557810214769540094098502895168949630651482405945027997132157488325595061172821799400325276517889855201415469645292805178997328126028943245329290877903502599690734675005174976153070777937640566734449196358042597965082273796679443695212138143987615578014243663434230397168184568480772212003924148720246970293196279610446446750046455490686425578547964850580914476080828088378113304774954685655871510062075948353931106219902645806330639764280682337204967910114219082461893770952074433304631404646950996204803846677355740276293380398410901476203989231661994046881793643489976829496098464401668646857581945927385028015181072996964046102887440405598708414444954299265280145304628254586012696048385717008096703037398266056728616700501423040970087638826063503586532821995856745645594916472287852928716868688374148856176906874632571157153320412489441668538918715516681968942824252431116125504758937650655886633448188147449483272094854256204753469489288559894307916213732884185306557116848035054179231707654398450873022917077760035201128603710617921828191375550659523742493946450902589246865061245223845305172968916090224311529626889865257609443094086417548620447209848161148484120173811026538070485813713679938314202051999643000568061010106355226752847734345925623058787597216628387297282405826869464928740846992392401386127394614096457781472246584918418370457330508100526364897896984389839970965646304697525731673416009767522297262928613322655768031267215375566633297788080675636476512408248448381088205215403522678900265768915606930308160728391414324660674329817386377454804762397321032905998716460203432700550827862157042673559564542210296019962049045212545137223016455743794474716187165912029866044983852885868337047278642425678219658960915766001364979726728602139950705627433023270345325131843773650863235176423288855092334411978319128034136903741950810024665758941831758346573004906629425552261912578969262087155538094524911649846430452062489275538774056125518414262013579976447612154778073593688677332481969270750083237679962516216124056444135519543141243392567426242442969918650598540767202971438031579340005876156250712590673241176074968537749721332729983464996399277661283061087543869161465438249012662884427194120126337744068150838568943520071518747811318595758051373831203129096828182275635752526989208198363524901129798567864186731796782701891402292875605234692407311463528196841191630267449558509790576501997549499127445312334687904488243708784850472157321442838181360138991250269640486355452543819327619074636591463064620833227956074352963873433247729831069747231964638895523367850722590675943691991049157956622471152747140995488281026961899199346716937992398537401660761871594173581722526263501710173247385358656395401861181185821878949276833355168621785112977269803999061669007782984334442315461994439756572935896521484756837258312492048123017015818004498743652905428625121727844627926337780789337298088122022079865986290943974819846941881534380599421115707393691976951255555965528894448665563103735652204805207992841175702075601568065915394692922333912897431387242111509503141026115035109751935021765784060412873550216630414523096977015079328698140406389747936679496510373197980446510385959476771711658461047163092562510654982732931114288671248714641282876319767182832299854583808210810321488368411998538504891045255678691785970926198504931150296633211284848111053882096385762381506849101769341799944664862344968560657563036367138277023882012546059922256731168965668042610151640295251860543464536184924927902520967371718526461360279988187864132797555834241843513595501954156257372092136250199134943326358843571595160092096258357565258397493885126029814919009066085269610882848383665802101116238133985999687333276917291208898961312375130427483983248409299033982132222312093107493671074181769057931583829266003419063926009674652425528743304509800329392363196179128348097727551108446425295407122691655553983007797296698270208871890556561102665461102029482177373011810855466290881500177210980776862805689159761299791760772138708795783045215112181580056280291590524814489896674059242054921894206508758883138440158620991975964360089955799808858426160073458369788660884780742248903217053135164706193257851691585793859327967079062784680121175697034956522926104882693541990962007550890185328782959032666093938515425477190133699094382461084767459234028185371170224097252129184392242699646654281901222622795656678310676149631897784425877128482682764249757272767158262961877438018117632582150768401415750516118047983048438500114198360078413952356060569944554022515561408935766764909075066329378013151440178568128853231874040275026914229710795326820088895533874299882147609602432502252126380550886984817112124840978528028300025175200534160453289891758035615395571510644618277645335551568027689188591908797161773392922864915057595295815510902867212512706699662543511822362299306636396861604231731369704682191993679595381524913519724682426137510079679785770732865176416066330897914221363762747507528082808747293182891810952905762846486848980149900042209353547139249892055417454388405522217254389096089917212852785306793885903241716779459388015253343477460488552609669794535196777591453499400570948906706436845381477807320278964912781069707563361683507021555785738537191980436568140369486442618529997492182181870103879088072772462220793878967443240189077023231124618689390589954854579868242267001430930453906034774772287658380753570364352437745183710357759498343394201399153832630209855198994405178969687908474787520843442430792739230732914437870940896619569929065514251391293368500573070083811638286212915389786865303165728333460925090520497519894973559468098171196816484560102844739449140287942375252052296379530254109704889834309622301323102889717710362886701441828963288021629306301905506343089107124456056244559104540213799632244123205878934725779999216847617454447563809235566961595268137986682816664272924190172599624111590914557899621474940112971957059517505159883283410207735878434782881940323920272847328780734336359010108088494326189399187017754981974990729996280161325353221301183056974716388706019473374353709912022723491096173573017067497829504024034131962580241924853023699695186376090209120092517626660047070375504398380085101890061509729929420681688111628734454772080524714161169271095088121562717418105099615463158385231235329128517858712867830083250476751874609024965010203119588389570295593026685202726518392552843855327661213038838484702836298227216279986862540459490633748823032948822979231622639663842056064772427796863166062719288933203308449551862608203289936894136459366945270859215825123445533440985432635471199842748029826120548561701166802152997585680202329516567257833011830072018152282876395523984043392511895962217440079335451885627925387734655520159030028595616574748515403881228170075978179483231851310331672071110105877895097016323280885984351324267855235776008297113518988577661871817407943427585791077513651131777135069843895514323949757843065281450025439295526982648389345594188539623895922872995915798809034883112515087691258535969177235314706497125574035982604197640449552200043188141074594938318775235471143226506555358305350703911687943054573691988312451176313968458148223632409226733309183108551619540589036348160280734238199341299608615222881615763858794657298610013151264708056745654165138965199604017359296377715724828022475905231130510310991092004199205673730375702294962499833863620758469793007481964212778957831993074867437832208508644146613899318964125799292582591444260427585005035321256900616408265318500603782120763828693958283420033306559971220431388709104756513628459006201941387803873937924440720731961976870757575883341831378094658318369252502287990558878584780428122600725711088069434407758601435662126067925309062509879219860772253386549841330155150548013724429168342502730772247272553047549396189702745961905608527181212645071115561593534900138911601411172901438947893108321166604507981983793536722496166261033400529206054488488753679058938563104233117223178819367020679987421631898599812117913064672705906961979016358179997000649592213730989280184120903311771031471138006709363657846588288189450292430474338069797839933822106357576772849619220455981940213182581699307593486464011833441073896806278150996171090299784463998452921006214948194485562978648085379806067099707913794851394071729904645146197279271778298487915343298992503843123291905752249278214429147502847408996187249740955623983508046952384719733707628349981286180912216540279089928455481510128599541418535397268116325495329019514332738672617662475286047101987965335512392324087544118695396628329654660818893572042756470274893242665911891942463373669831882537634007398995128628914243984904893464343995853028106760805182016891470879955944931835240543988396720888777666979425143242235565399869381938731907640716341491401833653877771338304220125347528524868039823827139699866233599465841394624446392422810025019106366503617321064077490715432572638394215882380524794836694332185640570164393214466517332881841113846571337936866039649798739649535348405349243831665331543187927008107827153829432085978770465124848767655010529947379659816862009207656019235189689742427233770570366521364749683821032577889296460685494355984014196869106230619032786792499634070679115628931843355044174415992373838583406550133391022700927176912582806600479629097293542750122957981213199483957904399034079897235201193926046471333374638801923338707545526254769721323867561624066616961740776370091517974802313591373902518332901803406526104835785627975215555139188943724806420665469353750377948988103140508229319842103218356311068889485088155712320277144984880047358397300125345350818108632510661739300429860347630043537271827169530485225333626600106930615036281514826201788765759401236508776155523016919904741301414235961334463854025251075990844648169746568835180488062145108803229991690964320698404213683245559740397576015914657899519669228003097673047726855901207788748658081687309234014646182186423452507383224062327611638591519593232699072719445874881486106311971376347922959457744181081513524353278169182570904148430285349607468962465378200748087437070694054496144722117647212978837422533928642257580545740474390040440978112905757624599951641290266585269869701335558433517053227900706636819700024392781440315876222574873378517191118230151558324713725879405469885909985346528427946448981378198553037124153742519357308508094917941446451723653627451637234416400877058981882510683940689373842804551052227713175536864106017688135257681900044843285023633858125284134209424440248420849454970072016007679231763985553333623461762571456642442698561530369267982073915030586622956536455872858703708573129841410897890520888325478700004544500306909754068211602108691963392795424799422467049894485087758941120996067722725055427972380167946423012383775653473383982191292875311629834795937683266231002735519189455519377469928246034957695518627860099918553130638539657254139568333014213958069670079573169390817232783446201369248550448090619312694431464292367089016336836784730977504402685045883528390336835355984243124450513560925672442607814307583560944007359365366001886548762601842361399791229665796095475517903128370391364563521841180179354364332584982806052879576461381774128082153721733991439482806659719061953609857346769497531094846130342613373892160481971561016797223148142365923165496250478217536300854736668403910952919437333911826680419928035153452528851910658115798646958329005951911844131777708116234552026969767459502887386422424462915471362340270749881396055995781495951623499927235460710175132369787787894819468167237624281196643506993015564700007974260465503721796952261702687524773492975850294999536204412410883202202784436474539645544178662277458869966786923441621945627068857357302121247620438596968880357290327071043105449677237617595454944895735571642846803225187819045892367098413859043957385137665058105584810195119034053048735104638210673279537655854060203521048044550982602915648460942463868531036665314187965716912978990843976703778937351635292541121354010818303847677595614085718254745234292331053228480086141958986252503180141322845295422054880598762991740104902028742408994747820525394994604939949033555310513551441238861751078997082360787201566072060764069741160772125693036474058834628204272463265299937481668278441661622304621737238397326396844359166345298657356296378901959880743281503457121474760852333152028087124352571853485912058881909648831360257433973362491786117436811752434712218486941472808471435821793692038165713209088250345289686470176927060037144798447626105949022879233319557851563752798195998512577292834579022140919628352134672634709304339484824882638954692888016899182609470030750382553991184071830206140580588825463881130772581757208538645240204737102405567172237967508181776071865956431667211953085115285781865214213561091951879223628370772609191384024838197094454404255150517492026212977608535314866641503566059187968073759285251611152209683075655345030573503273052135445338850071655195632415055307126078642264770236458514198177055456687675673902737358691522027036535877994000512643398528599744317807546026648177536269413249034442050562565832318426985486147159426957967742968203703207514840024970795760602757949672514810822618434852858310962443442540910953494828094743724950855266913907506428975495688495331731975258959887646617703723436656686374137592456504675620369494032870747532092466140513441568950699376478446374628854381308436698958223229788896972917984654226491851442450243658241906753836134199230005507283865137168727890906993106475463004671379876781464392760786566780108121102530011698625642691302169800737815343313849869506149710950957055221198839743639631012476369140771999783266084841559935629848009946992489103568538232950408403547013349305139607853077532193417779787987236581118575050112405344438653855277489123124232361327725856774741477505114899251940609840422794617034140429988521299432291944901139973356144939232123149949367673145775553758642303838155035664361689245407914649995747266989472401170041322625920943119711655732872726510294698824142314692481204594372910876066237006381576732813452866212466343073830822796517541327325534572413516653508567545338270279180850583679974918248723658335571517002248661708232770306963608739153928565776497805649075233891528389514766605929969838928572573202111822324686596144906692204281599087550982560922735387694674828212005587642118547168118781150182405969352689947042359771217059814432393354117155191717324716524913699987286600138965257206130484735263991742079109075282363080877157068669241792719202746816313454819948510252272675853309739954066107400404530422950127629135427175385116653102032277778812439362904793663235604945549628877269691377547616738318428066732260119729735347953979937282592863712524402999965174063751855541165463608507217049617826244329324628456782883173087720838491791720746861454832212624610393600465983052194821350282394956391541322132568262007758977560134050342949511268019444543178610380413112305173678053871181654152492345985478240385959283843272904185018939682152178003544459629863104920681319256202200034633108456693863349839119364154100361358693221747001040469308237119798596615839974918828530735826868466788334937244629218541340845749491398353777804409632203355287448003043376258807655624735252247378664591493668576961713036912299332017428188409481799644421984585272722554336336233837049733849833568750681149778283338472918750524518088548987116305218678432584417909624988082171608643855647157481223451999856489125201711111138260996065708754286136897626930331877936273161862068459112225961089696507985929374465318470480154804785854057548534315246389143189589694057570517020042091763789000787509497335102763779159998050028559602903580845503499771463795216665753510446111290844274317142109871834132514737303337742186013639627414717968390860307876998500423642643698176977151498505915396210696065576875336617800401434377326171468836953337375825954280622198233829030187742860533124375284736293887912578158730614464627976055850257705407931501033880740433450225785403724457319071247445979306333850391334821253422851857797072523126652203503716944785975444395695914596488915294175399891942738175972272016136171185271819691894503096547705325631759814499597114472199446507674491862677688138922247310332892354929342130091751251977387813473488856246683248348716011560752453191502541929001350293922150853381398550498908236218364390428672756144539991231250964239360436654788491000429311126248110218380822302504777263058442697500924817745136033091908554540698438931351730968432097918934166905681680739708203194333763996932952296817096554435638775155069946995106200603022153461454680385806245971828911239945755563909050431997146201318505234167960240396904949613091630916154403520157635458676968130481603610641681878255322794248369708335554344314036278525914703707340857898473301823528782350438350744862737129470577053272064526536445337430285577380817609330630717188966727758179615693173853767663867538275158573235503369542089835342293729696170284319138403318546535478325456463197018928274944469307593168070533254770356472357254939316556741169548911681425924772581249607547543861954740774688652713042972152758829023969545432389715793434319235557099010338403457628558152512381231982976561536300841883668222438986744979388717605441193112328882414578757320483766724063312669392802985617480833401203080813574638787558643168552670071715835938912676903473855723980990063837341002668581310603344913227342892676849980065710569992415704867126180049580540127680812013274165998830748548127691242570146160450541694877788656672301568256078690011292072160529122568427397030794747696603892022819368604520517026128292587797101179826977816511488010675795795191958654003078063786886546521293988423101071166800530352665533039481078763387896476876243214809431267939203435038733420763896412155584549354055971189303954639928788732218155576430058920397891318711930523454151494263687722261861663276420567799650023640258550353959010141016635376569109005566084567350619908690607240249537576793814568090320525010377824521025405958891846858062137779238411382026188908795312877833067180127484040526734879030702236036008677537964502842171682133784805138657576810252369436332554174536021319417903843991152513979919113698467453903590086075583537948590431037805586023746479073716048159330087143636659281187631543664717306567286337032935909377617869057322047887711448731856878490061127202369410377252187151511341935092567274344850932808345743761054838564258419813456121802268159723815660219082593433605872096416824680214404396205525145135830845099023919541340959833128845187608382363514284849172851402921966180432090609984476922408400434738375707008949183585467805098569916419120247461658579171367101770248379214748565157394092787458872186141554977101594519762535069704289251424843100057594860717521898475784713748962794252417301048323984334058353969892769310284228196280320454531492163028878035784615774183535078212731722747638525983845538524964514329837833663875587007729510008834669682515093519344698444876523452699403495606264934700054405844075773009958833620762521963656266820677969691023335039217464491781069796859641230834621223835556985804842124906457694455832135901545833548209156859224407557030802085394365095972362020085860979096376671490484077079319425033222695095740375293608313317094332685982156015095641083433037527378248873929534648531920235383383075511868610191266470202078322897668428262761692990057225043294232256284588133988299302177167834657451589761066946479472794295094511029121027361463474238584036183255554964486296544738218352294345261193868277667245991038687669809761588553446465614920529566956987991269915873493708069205860273488473878265243702868662891626802022202929133628267481850454476838646443589999054787462731011604492002106547591845846176405354254060744967509915454037978828543408231933124346062378241451514282858624120397059023207040731860989821391124552046744075994783686296087184179209447165057834669597961795115134824424762809071356571970991976466355406209690353041486796953734433780403278387834219598862987383234094947224141119582191525020130780969215289516935663585821447696412659667070012517891859756967403002373547235032936195870603979185560007098458381834483842420719714532747173910592832680876268273852224035023182584535084341831202193978211857762735429365669852555092233576965621626637605305616220945471387791048643358342173388056496341353826784298450147066309994403535298977498360639411579224525356163393270827985105479505880748949669346651446541609510513203318258201058816615936210290369166175847283284076725522481934644185645448550005856714183124619206286255225041234032256842525416667451219674770897755338892580565787826135126900577118746709185965411601426600274899632584822902094996543112991672797796204506043629547087693935424445536875037164367479860306360100775946141231548003783719048813404797370721338915351692577707698377873661215470529996260617941988618917687001346825922629757639954806490170268423678614426419864393581808216131679612121025050066630135442791648136509051673743906014667259761149130100304903792390923695324686504168919364949241810060812642754182556898112233590283656480195451233307477331683437629902663768209044771831537119547514917678718786138764121755435519868862757239218096192470048626953658919671730505545989375867813899816725420177391906422910233066868628490219805675558319239568344078057328479928082082949938355339941854234372951676674676229014383913285991751997225890144449445523064717591867448430756802053511055372641873949626964866951255800511476785553111684473399409314012724035638047786922331219167358916744047250854869782689029491191642483044609164696412330336919579237111957850714387993302656685738867748027419569156724870992606336572324917571535826689586131473399482116361729841904626599302064743489115665508782813198713027504857675778624692119513483712113514692880529090811275987287671754359858318884781959475057522763045871920817101659739292845334509414760319051291069570370625238295473954318358307359710899576204290765941797409351080761999937334083834412053436331715628807922684950136329510394248156325835394156982299807458975651667893739305556686046119669184685572061934121008599660540574114248460708382114391481663289790016655455008817134887450428613955772129036002459444539215380023160389591216622703142065171075739216032683910753828949990201571915212775896090972673368154374485354106549116567766946027445962851873611481678001654998551139844541470248762684328903504503919921370148441730946739846865681785438401344228182388867962253198143342325981059013940839226610574420893265659790952907334678875246324864533653854443248110460123513576927873639222825719736068192079021777328174539514024927210646784150603497535376939527291086838600788706011228143688048837365981030524385040226465012059368503255402454139695938531508488137798897063974751286658847181546143528390522318119632086876813736647625081982397643784886294146142907342451663421452251362665188331729892332030467225565330209267593328294857686829058672874179011190459532492626773206020227288111310151878478473488676898365616875056450456686443275196550114345033106506285706765978402313098354747017112991498733525044674494495699433085083609512496679315885780597769580381224021548821602153353100434039226334141402995833198385573766052324299961072146515359451769220636712775162043673680932367255547973887502917534836551625306345001064535650838734859512347902358445316771536183015987831705098055692621200449587734913145223242402756939459142208162121542267051274494246006576326598891974886941822258822988658206217230931641134192865319761881886624916615466331920743118040141753428678664482999427378625954954864362266233732345071876963334689237235482748069772943432531644472281047098210119194314241045537696757949818787184537757769185209539566807362619316443929510240908370213440444447824574360300735171688774049542262066358325723947956034368087129413718137457816651730699013647609254833717913108087873142059347840802694627957862592323531929549775902517126061648203279259225316794268156000634922493341323978531059629821019535121551485154760572968304644545845574815485719950061073720292063829287369569083708395734627678846057527587089278064781918518284999958652831199483679740269096163063400743226210107461071382230846971661660531965695536025593698372596444223504877342139644151951505737700234524803347896475433738180208085268415472214853018959999398372278986673054754876526019125055324882541103976761855445495650130277816619340337418036695308132396527618966672305154591631478059814647264754074418041708119791681421324694027541853797467221559905624274188187502209798289410800055184605703047756934427736221817976750331220170556770028008508363991543564059429462701290648288874903078172800878059869021537963770083811754890492217486990166289163050980357341649212641024509664942104801726607476375499617608606850852072423841687794872893771746245139104738072534092621438602494341361658108242027906020549063402518188634623911096006026259966686749455803415203264132749040774922283737138712690199576167068531149452477174261338793632032902856403265303816320481070694229692526069518186948443516913905188731093579586381140298301942061741229581300495036446277483057160741625849927892616082314094106619884936351078609651238140341050023922849046299088089934251150496695893273305765718501731342028085371125049626689361671976773571557153545372445112352852712685129643698435084714741620047672113718670533294431065010586571707838875219199145451765989620885398043689097480284520933330525073282381114750902773468873943751100289873389645797931872226918553575267243727376738460280433835110753860725122767063971104611659996733423382741804179374864835707793196125662747401213847236778314571177509479277946935079221113430983209941941666327884713295097958219666302857948132823818256319694711897980730297812713852220085147449024706281052958390273488066678271540516241810337634549326634333468792472975573897201884440137232753045717003633313699890225009831288300449644696530357754941144272807897132383410797563434800987816465213648766835282109166406137054162972663924276332641119741010914590651710996100985209980071860512525585725149698963488726000804516328731377588549875517422806767194009548832015906596603686850869740392645068736804291019275796678995645666811797032188468654167667619706258754240021491188646712910279924133033381096889911353340687519318346439934703076550682916284193853049239335012530036418252265204344500157997534787345106113231175169713968389703044645823919424161315761785913783283926069710454631647464890191431609850755580848957075116723440512172985383719628809472135354890554389915545193891032987485843228317876125627060213913856449907884967394803938480919174422892781119156399536020454422251205245071316765000189548965632129924353624932967636768884441721576931030408427272256988941494380756672986128316583329837479104376440536737675449324836244714224827630881664122912907932199222585518663562087506848431123805740290698584756663901584930137182291655466767754709396266544748837637752404591042815457535994077873988874800673722068797752193248477344314507194706250753059492883071230225014033169534675239965881801299728388891797544217760754510945121590267029873832054981959632819457080336904696462764800003369260445110484627877223531091114604689084371304931090206186227180930275700688320464787544561754318832460292824906494920044140113772862686424802273333987588546433056642457059715557141318499459376006524906148956221137123864065635047870029843188657653658539758047964418210813335182175087793116062928550258423302250092074039969118596422047911721116684104671927454423844860831382929300241894814888596507154962195752294683651496473037888385611316693158808009584586831085490719197417670158641978401447731229734594346567170810314698348791866330370912944755767942098614384133318434383457047598817971438596410582880515586293156192997577616826139797709047060754482666614682745785084859229789441054435370337418946965574155184840437679595343255338798989251385880258777833638633070483331621937608074439788645934259651921115158029411776439487582538691334424764911424828549490803574162618013086322193067844312140617041206773768454554440919597973963538279197744440595724422260992696099117512558347872122175507171755599998346380477515187570916728574903298596651643908231472031732126077845653361654927889774373834512920794364191887649005950586974124052867020595570413930829718845434516748514608333223481279920338297343196744165105308621672575652653491402727698978671216201088203802922235832669581910025939091878363781256754415278903584357164993509600101779458947482587799265116307336044892700723337024600222083401972530119885171790611455892651555141351703195610509735072419546162088490684467076272063834111411074461170416913043471805255780071140720654321310211179141290588729224606392288579790696159481110911239862144966431534091198887927140462658578242603460705678714236819236696377656312451876161794743057743124597502640884851782924153429031205902690710272364495585574393419050182165463727273256900603952725389832310536514743307748597880209188099420818936450882630339767161225834686519128365835798412619282288670917444921901271125183433796839871250204402883238833939195853585114490037772354117241533625491415277659274502119211999293737054146067168130476645865246631984713060303835904047729531016983054386542308035554944735928731269024456073918670107181959033029200292787080557018129363394740336343177967132634327030139674421369895958174568081947826562068438753592686564281443197752471560040283557497910615714927544978639980811750550401945108585601089469377934553120858138268956957587239450999612231478163737859491253430825653494762142915330441436024933923030219225016574872674882670958476307776090887153799330200030683419192107950367692090305038960406559995076717055562701730650466958970562453505785383206285382407036134455843227532428204758146014114201654172682157750684058757688449556706582493735831016753663248686233689957675114696577584660416376600747767258676041068671505785638023565208660715528418137401915903656720096686812429036590753687972271399930597868211048835035781982291181629263343242975805798651026700146636071009435657879670524503541806690710936940802245410496723252258292095192912042280269030876983730847935990949147549162570195244951448906629308243574787193702051401685853767282599627166271828823715959149317211126465911737322394076066576193375395128770685114035063737219446453614894736947674380370690553436511482632493688281673699159361458364360538749158055611519353176086074790958721381893672770179286149215900238629445450448805618235922899053046903279053994197833213558339364186280038713532249602877211801353350456302514593414303206351750122318808959990756233401873968509527462165904534340612752836010116620419415424266843057857238179416277203529547798440409050015544579861561711491654080750500666840148795027953249572855566173787205444296350895909412957682093782698627323139655892412050602063905008281245269666933812355617963511659874541316800644560835453996565866800044144569670613654325608403464514437470989166462933569619334054448974162074775174898306758854473729509500390546935437724121481591657035664440142390605362293261997424917157595904283448069091468744278204786669657557970659860408280536536426098097504110414092864771002796866616181179601765331990527307987967069097420205948672348182324459104311786813111823698705417196482178004049860218601280234808686226219667362323182683491635444906835453494546728103196316559826713979132559465854467449148715014228066941469284482952060676790565995221685442939235496587836719168605566998017379352988553369434525050635622988091715759569535543766406360780279886409538065444388537805555629513304133129572941466343102875468539969119009253382522851648210081195476778978948621471908276462205598612090685863523258381569129498566521986013438066784372824643901240967318645534253191609269682388974245537617786116112098778701731286148160992902731516771093811199245994385540731061524366343969544519839311259926307338419917399567575892806151708399559843513178538111186992319245762074530156142047456015748285413831968701555035786503344768352628981255280260415752385648112618413853222383661231719816749831854102597875047164965299667328605830601440501425042349616048410727927945707834258970880755949192909648825234780459004850753040885528025992089670037196535878934817788876572021032307657648539950133466281175603991978504624610005043976256813783753979317478700244571212456721616808815616371661499361578617067890767718760792841228383681953537050830377562155517654261332424347467691076950558615532913775728683367888634186928990462067210806791451280344129813771490602521916122061627298412230225498445567151082379331385497681996588302710101124350804373815727852068829994734868812470325939075418829224190106008008996694414071270968234040649561729483360488744037268061717130568159160624953666125561999804309780487380560013238015974900215057820124361059635920814306565713019614297275071941032770294401571807920722071499661048356521834528430980107197846581658697961021937453328063928343091399637505037812863731172130394831860896360486837724298761959507612207990671627221143860148197477367707274830208887406911516442849535480829645604752388106048340028138100852571876208677142770747488295344780888096235848170928828058601238567583997872768261373961114995497918298199440585111412512166121889123297074388621823392766551856197538436123814902397891907062698273011591922349275788519769317503282833518215244428970126342325718692985185767058435923323300928573865028166995520619546026522330639572898395920726379482528499068517582112254396628752017915908533933338509724547811517782446072603737798081839412368480937580376580292961889197510281887977006459782122409843741957516534071624613991290165864044774102533838902634248091511155161302142542526496323204215868529767331859743431053788525373550764344124253528262478266358843842417368416824522445789467365193653142770191471390109274666901352387802882858594612264929992704143310707799692754005814232485113667592412400907367651947267654030992021310313728129875811282689063631909052060234441450311709376006955872652280750497229633748438018923989602356318815812886303739627123089779470918102251236629226237796414581710007813045905765569338934173343951089929290384027332190134302000833275612608253429007124026971321570600921744925794012101872347698543044328382858342984650022793017895793018800428683274035046521834191636588759950564347411938900542300076022069612450782929933018192427956725678021071124615637752475735202785189385695524995787792381248201062133278668317098477689273052994631720846759337859934426330638244078145577544868453887302747691247749427075814108738684207535440192078757186070934949380960152482209371815996071256206215367123683764209085527358902477016522231445429519863994818647248235512598553199847227983561281739234440153360480290916475803252274045849288690131332078730418844011606797770212346035050400633715033397230633007770417844710592787346593730678872500205603548957417069919294449827288652271112398717789686746788920878078067802000403034241729102487981895327496422841700688400911681812973410990410594569532876185088316317375277581009992730929796955831644962950289626413779209957223417723104383480637268412227286760300159313200317297196087305605999417886731048076396023081877719936847666119711739116530652505315642159366654252812781418239259747344029805082331056169379418395073511859741695425704605685697108446562325669498931587764053501616843861248616200078945838442399251894765738408909475734511822185235065721274399112804466498843487139859640425788995712980815308699962114613548612429594792301501925051830597084908670985608653902608587321791278803812808410947201160069404217244340028114252971039412241426780817577144624360526560350195545541204204885850442995032119495703847954874392755551285727183284163874585434376704669349112997247041778070099317221820638708059078669495435028588138284724612545459850174540869521899150203489605758169878684558882611885750548869481943393997610289688299373619815735157867759001430769028325345389867066104624736385683377279544359230720498144918572132879782896508524457191151542812707315082254519839397751905091292540852658237462463264786124970019685358103758129546820910115894297406899985010243752857158112067350757615965114127228976333652073500811916582387924980979686504888213891961188927447070555032241082763990717367628595473995561688952905733176738780497978147889798217673998589424929927830358899755590798563773488969668768853605131428662925434369553587972437675545594992907408139781431533261980498928226481717419650284157587598509844476027356688366665770236512299491154656993200425102048448122277871726375665415848971470495937917613775695347227670176076168597686343237404451040648430530442065269930953299691830999037090192415082385302382221099492212911583189351902267198897819284554155116023042582221005414065354771293655177638356310424291336953671818823627481332103664223764966798042338965304576150206690845678919711611944546152291503171657602718072256019552448462114934507853630071492535264274514123700657880768592722742170955209513417817616908979251845803922417505250076875801121306613247159119968423106293347831822110189063010195951684409861721128443761263762964698964775354249366781659830521122432645165069012236545472870513705249337986452755835504992276451110315584104065508971415532841462009271882216107345613724207970604137624899966810843347680618627644011782652470392126502586718535728826771122431622123104914808683034421478446239547489734916371905405937119156131676040898962169742061768326898153901190070741432525555289165456027191377194605302180982776854116658841905886565646269764397906395845590029898220059676091178308476931148558933073768128277437525945645417076214295466815765182205578732616028264454489246248913052208435958557485565743844425689235633432075703824986432847205584004762367425955571378930243541363476068869983655986400380052088236951443231724020076140488109982370167677700507492159065886647335833741271283351383150144492809495953458178551125599383959905112916667558692150012718175360873552186524504938668147779847109355900105389260300344125941574982821720422960637868961907951366024755342978282978053952169493440647101295159671808447478756869973685128908972923407840735599904419050730955390279743684334698608735252479920194725648738788430243351767169957036115164838529951115435817239790671674436565278376284172312871571289843025153251467716370996159998808995418418648795939806209657344542948732718440081912987738633176641046184136778076784186253824939896510756719389523081339240847910495318699755029202939205268304143063354480769058538074290479225718820364401750274720368681070499369354760808371444840019238268224090780069477672440335071469359287826711808198474209828169219464806367184827834952641113058012832676569311549676788354161416791645900403868175076032093874172615214595394472693042511626848575297390198242927513289447162792125646248262789833300562787046808817990005952433166421675582972089692767266398814510188164193809784131914414553638308550263400186422263469117590489849348203704090504047717464634509571532451418926066932862549179977772838925035186953370065906101588389915403628525741736656920557544603894608528981858440955026972705094284080011743896371734136550082910906568654520812475561292099198527246950801589219908132887875254401451155240506496623915958640503813029829772269280263073443951273740746531436197053448870350242424272626420286193404479665218374785582923147683563411209565536094415564243227548542706117752603509668562261857255321067758437304889488834345622578922855546032713102272526950166239231872181722097006983185900024936309808041223637926988869392893191289044205463219121081509734927951556809969221454221156717101409952367539278532426130581193621989401768669636623681813507506667468725617751341990165428531932246079530840613023098694825490100006393847438569359955787922018653234032691108936163468560790530044183001973941849829991590307346503713124058714503066498263018185895599443854564753344769901463470941639251778922235094752329111661124929590787908802057039340545146856371605515670720821294096057663596381309525237964447077426633140290654111884504878156469240860201252003363450411527447415607990764491708937862992524851911851901062308932225114575086660158360454048297342861577941923700480053510304865624720416839915539088239718052188062062496413906460462216457478758436382312094352537952453675307770866437840928449022347669050194321612790612902919762319853837903200706061098862304645881441577122312967799075819208587425422974241184290522741896539342668371309760114234393961250728196495331714423541468711278129867870612924923320155964303431350785123144058354323307710681687474284812744188225838171664595945519255686323400955194025782273665641807647271850278962363212201050494067416275600333093082178415051885754344874914441108974834596474753086386139820835718079269245179989446650766408823709140292244533293367856380124944978737316492466913712915968083511832528236827039273267140760141920748220673282747741055686609587729661167412285057677930842674776267351334658742771915596253468807303343166710679180767357917496857844096096286959269310610705691965186798049556746241552899077887678020026302567465794117895346137986317723094983312443019030021154612250558648049848360190886134991403536765442804247648224393739956713857924033903190110018293086762956779594887061878091327582524453449526773203295506904542285470892895838836203089317103484616178607395281231222494009623968820460759177521551355992535376915782333923475328866509311286418925632607386419046201889180019586303537569701732103641649355492021400904213069197962055940849833097496898977379013495020481811193876486998617059108977044172505106995411123406766444119364257916814447818877598361286337628515724318362368652180033238084032386177952507684618855910167609406515319134253084159268325430762923423535247556928059653323301637017772279948150751108323021105153584240462011032962625239424928165382667438786845452523470064210779400792193489979849468710995884894221838498366607536107031516173047411745313513393030469047676700471927070019532702767918824150111158183753351018226201822045350229977205501111805024270774210723878375619396307966682044124038821385267902443134965497459174553838792050707045447320712097086385730396852014354767064956835354013709429227125271283735149975383982648533598823123947637355240094809605080602948823838873466658788938615068463706110415594198402536961841607135892262726615417256238564160268609582819833759696082298322365976250022229517601764909742670945928014616357254758404567532402114334623510098507130192545672531006581212921499960531137187751880543518358035739301431732944104636739530616366903584704591237381804580549409988826687455538197322625128582776760728511785065073320893968231567161455392491621170353128774272108785489411378764209085437842922462556943717633743133088581582974776223688688124987207980478133127056187989606333018245393015623984512147503179953262538530522867478725048622114923706326917902269879293337374366462124443117977657463183911397743849725651252909461893633576056809734405125916976213740584429763853255551919279787910716333842084305405757826282816566948438309221237927322478903998075137944735830602481736756754549543376085306134348053587679002169171408210257677038934556159291500024014395274170149842124219821121488238640143923685957386905195318322304381546372250575366554671583531544956346257461861961635806092074281234656674537673448953160595249851999349494148011099523208410651860207060070975785842269136252947220867777491043680265156825443629237987027360340928259794137247448813246762305362360414431836257552612949266581437252122051137982978620356060255823749551007652903994463234975368277371810946606247084142936095586080927469718239176185250787485403932609249581825575635801394798986251412971203892061129715655947909716272869985803691203414798503545921986457465821346287017699602238750425131369612396401811656427250426140162644328136821483090659128671634568639743430913794707169955096494637709821830367992521218995663338412088767146340143189645109320875530270603898427103541823589536678188064346883415124970925995054091122430443269346638662357509865383104297050489936703501570116388812290154801248136238561031431436286717234391729710739522439461380200963915249427849304145501991471819710162447883135644201224518209685673729356310243357184252037386210776118863739319123585644966902707496334102420965794466247607754543981552219602627242286489080543785842657928434018433257920763434804954820652009286043926686955717315913302360537548992827471751115642083639682366393243813611251895813764221907380155254751403813960543570098043356843549921970392992471630615669422594392472187289242102457807742563039855389491760426286273061131746590442511663503613063607805563821652906201313850007974103040195628529562451200896275399562835840102651370914916557689952156573463145096903384656058979352798180714803956767127593182624936716860712593484717772813388610066533684772969289244326136940720454022075572293843824496455041010668424214384872001333074810821189028115920896705153130722955242297667112771336297685841145815856131036292232551475564282563914805221713684198055957486645167198187311173136691487737173339390593478859846256850840330205758858798663581565890541452048003890998587378797727875193445259827062925123215801969912718683981827848791126789518226921122442039882824287775882531201300581522982120736247351156345648112795416827490320787664897882290645693406017259158360319316143807740139305962301115442099259128415710148227247262866297384946897004008326603250844771553679757003467659745005148408127903874254171817665069425278492613413324574413820557055421764650647415145488644642509690355788732873960879816487150948308273239918782104661450121559550295269749750039435822405702921460804946483780610575211082365303785517357760740600280932954897303778091854010479530504187820996585569798821504889792109589519867175745698227658414476120225948612244608583357269773540978545929280282659368747141060765599631472240513636591238696720199197358488967757731531046957126261739835597400711820907933721511738906938938443520641565377843518782762993143399129578617404875837360714489247709738193302890902612672138424671923991077115072745125727995495218885223961149582410624217308456620286081176999092717990243315227175685642338775915681099831375949194706865759766299010809177666931615879292772260032577914514000925755485173076108866924786540347090728227545542282507060928907852352098655214413823251806000334492491902897192141828861178612035137713715941300528353719858736937021589892598338531843730542025519244046777613980342887966845816727027927497487098493664368852778459723003813377881443663918957795309542418933130283865028100678823712286358469687693092236683215787932829458984171250847630902090416442142795137732637224051306949327978499452719145377188770191819039454450444436427015338743632566801365913989797640321778196584705647811730683435269901709344131012781319449986669408753817556510564208015975500609862008753666182172973235907784280271036161503584034074424481588060541142374433274190892516143448971567853860874656325604441529137874783857142319411870542037157665692350979337482257992676757585342375286785612261092013991201758633712857198019595731248407566445881717288295201456788797728876672056252451513252431587498008359898200875127043213222066944841360131064109446910833579530780510468955098534270321760634642101869090487264161401798807029343019081244595014085383860765285091376845284407397199649455527361473562082777614932322318737606976803409694561729178079431030303317735052008566196491177728363461019806074470802634327053891733196087335769486310644085632108989713561161807908106183090662893875800352677469528385867254664942801312340284936100416207525765057783639882356358114371309826735407174380193017406480991895737160308255575495755458758037802642725733279829227780525023510835013804261852804260275034751999106764586577313501500774849174599891506080601993105454169122324495101108983294840629433877651832421637138561896726977084270463015700402874908736560649191923575941454166268213965286420734617766906140407218083323782488009274264138380201653536316769496923109887205727682816348098227010214435635532641131283513627321998932037397663646211910325688982122178500678181759557751899156283723350054597008886546597109739434119638902343837394788569154448328206210800044359593123206637018405085865812023863490731060096305512093944931527355383126439175872672582966362146133937869576775699453474342142861921190644835052556758607201018794470157209922560591428629308670447224581798470231796927982953095933993733906461849067496749671615241680984049658536947363777585370031075275205271100802862405388739673681766559283853651527453610067140952535657294688702095683076439487617983007437757620519307430415703328067629487125221349549850573680999061517026573322451068965538664482442686729208845725901434044373585960926099907897637888916344070379701190389658100739448136780241113461754505248798405042828299255463143043379745998830349369082536996154001262056996922984966457025232347324639936206475039255607607719099944242558130761216212752890380100053373682761285732057551837346915576629051221742976425007827939144266103460239401253511710079405927919858446207044250153819632433240109921791234535551918780145899655719875199494020673689065317139303553332689572034351632986404409211678156188931775850854894125761505598918482350708377167405963339080977394200862773308366445324033999278127920581226049172898496984125918804759136225128117239163006364050133652315790238661591834763759265290320951243601840976434703143897511144329581982283325874930738340406946145519422275307658403883755479959797297968481256796250108529079105279699644459598902995226545494522841669748494203746930316665874382929225836338099261683049850206358556142110921959105213012717519664875316366322417482190472549849443799325839664837865324952669984553634719655049521368762086470339798404257520649070894521698117799657186770520554631648553774516056420316888451623822280585447266475979112182517453794594829120913848747884580480290789507492143826085610525260217395048411204244277540672880864730299903395343445760485279120730932429995989265448920082052123696961227440787138183527486144516230777255835500576490485821595608791574367417537987350944258320915026175368088067838475784390842410937089386479927277773587312066424518066233642194308805761463569376273177169110704301999792332970380103592393311190498436023408540376811853309429935844024582442379318899360147288973201842053530013046849898635146830107399488696370948320747307389897764028110524336716479811226059969962489480782540908909404774675354399397874852136049568593715769963391183799723587720816868228720859366028109724492690739139642640361383776081914444403959872026204770201726370846986095561449167320032937348152388931185105632212350445513641476824874510649836751302684807470164803508908961177499146987137581763181882164719643077021393711344607413450482200518885933794090662559141159074110449535117020764190843411889853881793950639212831057212425288355437486415093951906993259971961684407131066779916188082462496160439080255398212920595363284383710968677992177830491654655986982711994802874790808242645464971832621576625523374072278577869494602686750137319033940617330252217618789994098327286850723226069649221241716838928428754483407959882677259668575685881887257970339700576192719718062292876336159131349461936502407660344227515777976640877264853674155186370066932740519007286800116164582400718843369612546894422280956351546233050039198978393715346845488146718798305967356651102114024736216979680079279944234519406442553439387503560652268601146372664560138114153431082093613627567242556188791214000278586137598259747995644034639722157218462766650102080070584225325571682241840883662639467474400820725183813523506152608502539730667190824848280671321119664365357427681196363245261230021582776599987310718247577802840260017768787832257173525777079068669594122250015386312999118778744885188198838832112138784176136936522123106363787246898376343404707439804728183823824921048188194013999487315813880484109311851971524040477119621409624624229695257798086122832382934453544853113722098427331922013430554982244857405109479937479879545199293569973418331736798935277154812084450690487591108207977808232162920072814923279307761234030962135362249378199774825508713776030143584947079431246511397883630550379191368883986227317658097902273587640935470926522211973778085000095105365747146253611736115223809299565040517723625379178639733114854589938445540420226435854327555018382178219081590518011474239065787042540159031439665526283054262704483253484601560762473519375089835312378474967656699563263716267966660827487203285116346332776742390654799045901449613221444022877634885774163644818152090817659525115920411767908169005920505506803685623180960540074241017900718823658280388738011805467406274031155711678525849629070805811385291152826792932179738159130063596822078749800226102088174479603133416735138032493207177166007373485850106515910720826934445182600051582423956887153304817640858694161402473218197112998225976481786479489722364831050767244743543436496655731270907187868369598176078422525790105659756916869455477702830294859823121685137144342179354704174881907768213141575462195505466691897087686133684255504064187781806265319427228382057544355554920595640491436066218737391870473315658718242578167927046467151963062313415853165230536606451756722593883864401242239593050738634619060865979419060222693185633507782528681196538563128415763019369435939837684207128645413392127092418498240440618593418704238285142246135315704581639105425551364344925550044779079617141495541560254313175110251046764109028884749135467324704104379922272915529099206473950896369632230602107838386321787477717197505560563989937268006223134445920599463306198643226229645806728445296518549203153916015299582039075648665203927066423002727450714481392211583977501861445664387071260706150181821079744896620838914224151551148162018477356598642299719342699633158838359849767168661270980216376453406306943213523149583457614961078576486413671402977109660468351322659922721150520641051412849702489450531440508965739528388842184902786068988007994254606527850507098117697313540777085979035558130238150895284822768977654714420803935393414445031368222509034612801672648272187023743646077803522418018055140813923465853166041260043320328840207487186603719112964127659685890146455750088772256338846715129983965739978512285695243787584165040542167709327738008883941857925104378178707783559584306419792205798957719813234216598514105698004900154838298568212021953718687922615309901334818024050927500818719341002141198199999551341458173761135719521414824318244914149222142808400716858140119434176538537348194096462332899146098051982203506293577980661749816137361017453226925575290118075240412213250928569916431141830148268399017452418497205891873721429161429781533902279773537738326659882707164006651585243411178494061858920176617870220569238716856614317427058725056283410819450349768889171760558066258735068271284753334530492049644348077916049571765754330624177790029039242461796105343041499611473165283554681745458150157514574139107479464638029098048735196042183849052264089345206018745729222608027751575443139045026990207275616782370684492028920254045258668887049121468821117178268223690213428730048937504134198288322790415461171384574709482916606311992833344548730745426693087438518907316374765425510844165201737254800464004411072966833629277222769850665029493868065556292047703764185910442893703826778406267687248264931177146136283764192537876909645865149613513970930040688806544950949538238959613351640660084887465285912325183028328881782698814927884596762859746349548672956144306033542024756543640273748194478761292753649047575603611867922587798422684791509767711786972687756764528990087179853077218234015113525171060470351214224164867575857812782364408891820604285134770877326489197335404198021693971842524825327919229441341582557620998169911318304512645322110997677524101462068221417338712167811879388821517837868345373747919309989443309652140772364866243311350017671315420453525588070848412931592017505347246814577525298304565175425824226088413679460866403486962399926204980062933132390334772802143561971277938480879010297068670725068200171785271156380488676589892068486773238023208567074387893909330957145134911377096133831723126696708026716470826237811463414852493932270274607153542229158637713993527190714590512164148725029478257904266199202831379363997180927433282283046307205440138044544657394326066693419644384071590633114667848183270621543399228018865158766078153349824307016470916364264616848284219781206578304710088849296886264841457814376378408638064473035744426684556076813023492264100687890175392160495603854831666464157281098278662754184391388513607108790553703035037380408907423379069820330081816809370623430903888407654832039300195201000386457871537832163623153060742595978846841604390602806859137661892084213762873120786144719340641088624489182377830008617543313240121248686501084103724264184829872920646412256935742373974991903285402421916807938344366046034068588734768969476755700296187006487958185260175346862176556945846897043642078164930119222239592208348340099902308591592523663359036008283835284052785758197828033832940161126989096680523149546371787641053915385996336303635610936734598119411445885043732542406521511707184339525741063089950627733320426559641374997589130083788988970088333226042712645390654273863896999171323199479818477592445569135361394470644072247351745307558296733764850731229008682700334895209966827734987796156744732011207272432802751189601757249822190530639671215574816328880531114109256334112201497814588991806941819686250322013520246498629846788641227093509935770169432870445720238866619167525490481961883732673233519138256320806113524310433188917204801976414859655382893737582247790546800095364604191910841734480709949949419303605321972182588384828617321736862624792395350492325160339874396947129800304101838603299545621020923647346766992582117840969558126090973098456920532733118879111264516795862452909306946594149299214594576492048095972782796217438630534824286417601191865922901510438288808701017414382991666365725940362553350918672742693765764670866415754163298680023292744562540006883139970646271025154374276763553192167680028832776030438799520674723478051966441540536408334559589745700678599862631130852944438377484567967603438031417247719475628196458577390410911832955396809770418550951818934025025355338517719120853070330402996221833812844005596373416212907247320275003980662603221759836458710376082878908924386954540395704281116203744993169522612948627622930890551501380914086392456668714851753986431018612216393275351176985675478380532396221706753207022960576224118729455772058803537878249352931767670225624646712063387095372117818910274719741176330301527094280489599236424966128374751948239675430602715838982741780908082607099091550406890375728568246058751044307476766542292997314969069586302643781028736898520331834969286378972134816797994878721521971906777474858629373623941785201133239901809334698524386430610462196480868184170386822806757482016315107934798256547983378926020141364233376557699124656463166519887160451776316366152543477476503986488850402033112661847228207040296679091786432911900285617481837633624447249446741305674955390851842089355332714555670770882659875357256497868190746015344176676482034509201631778566968009945141812977378646476893668852041338460211285535374432575935656567719076650081072049578307446784354048750110853667357540714475570226425796584361884124841113115709718804295881610541126651006995288966148441852458303884069279586242223924714713115608697337552705115673338546967567889090085982126300958869619448851877279368379687009158535147518505104162308145836246764879276577166567016050634368755858899969670309188342669189436932573793023354388928245783595616615212201296076188297872304628743829724966094634631525042771049314714219818732525168607507815276428571815052321722355995417777350301515848989470086368548630444804517287135383838059981385805805992379138220321148110936161905355920791432474135322921203938000763768486101558337295645120381847349502084767905901509253155874237405069170087488194812118828565985533435642634956689273700565463170347320495180459345101501540973672897664190370817104829323666719975600061738881482013676014948216000759813073395109906635435258344974334083724623146467341638274796607073512848785117156863255716341056298140819848822937661546117113599787939926596276256206149634859897217532846977095884811456062760207728406105800288015604674600022994710815755757497561775798033978363801542968903164442191206852291571360284801370064265557940373657105488729267532627613780093035496872426096551937741732553367155963067972462732588965795427104999850552441458897771643399346437507764845043529635760748922738570660061840272277262999387514110376883979868092490878656945343584939116856241868882193833305498303763350463802927751897583565989881659188481498973856985676444075411372281468901401689916481250731992076619957242026178269058229445735849545280185670773503225286675639751476225349793013509454007884724520750818717741708112039503221828196178740187083916836547419633195041686759403047729142712590814480899066551282649735159245653934541916970954832721996939325229599153296445554792900880531712318654582627994491192551328401700885511867574593676859848803827015704841000477472221191017642333471379815736130585577754846143485242759081468795061801488013895793478524719670658845548211846611101463410136401045615197208613874957026902179880010163501839894310362808979687575461851337255471002061207255860626182191168223234531561029764068682555431888784960358245753847582294356654940119935638232972155903032798732006090780197251313745918970130149316756111850347555109416797513592163282423891028636347265463446975747471155631396952091365802811239419444457839948063774424227430180083697867232136390385495736698431029867559431951372500024086571262588975298366455454127558494239748378472784629678782473043028172020889960263820167899499521856146169371456042127964910180607112748274885624944351920904601952584280537036579175196314857858604213449673784388149500729299502108538215963075486465174645631730021325212330295189243222117546283420827841946152473829704916229557976072771959851562781216967975464925422608995111378286651751385596643139411128076015656490336294638753961802037253480111456936523614945308977361959875035121211845300212130446439363849425330291048319856950058161679756305818948367628695983923882393758982541173451477518685595716438685994433952883918348394255962038404164283446874388713335176835116518516848310898906558069114288138654207332479143725075762203834786322096850624354453830348844961076667273125777833742251784589214593565336082005623196110384480022877416201654036564174028083962218729182355307972294474822718339560635524983077471640442586046262209696011122367086762261880092498054148057798158863459088514408439347536913534118514914724775391755129330071139559182661573263757169814449312476676608251083813283717875135729654784570530161464793176959527181377028045897170671949345919118652831509988645404487282941014572077367871082908172675078333915688878894208690725248059564015153243117206777415484010513012413287726571930252752569319603529744452216595061776470447289572652576644507453586113095284932677046373751562481629034224803555838572796359994493395439222093313316971783685228830244225406900962763441204288988702502196878308305158769811361362468328519627739470786591303565577659937586977336614877999717607690500640522349777779381725981879121000218609190034314246121179905231330792034455719440715908233296581862022635521840944416255219838146585442133281756343470969526553913132147011427639581670404416638741401554593053891805388174319219513880093968456672379535930538914765589206465228845499235369478956287231049775639612163088007316978195673513634104547276612322787910402756675195152066871506796074281215118762984385332954757686890546867357150430148951794329702933510492023073114641246375948419019189431708210913515198048502213330296401679855065985365025047959926935837990635316918246991963930702661574449363572005134784162096191870927079506431521686020537562305937211223152109406388860396150297546437697828887655894974815232164138502160911980761259730685119184129539881110913783175805241385599053476979170844372551714775474224655560094981082539057593167868553233538693854454341495898822061208943452558066716771375039377633097116524235119227084883424766861547445914950578870125913102932154281358526323575277001064780984790780445674145500438494260073597263804436441789010121849725234864555660188607322884493800756322958731242536893461422235152050772549071917323483810026045380363568354949946164100028714302782834534378597186162552115951858118765446321368452332429732527361587152836141134862640386380810131423957054685949114806298800062382093125939447657555846879444871979692877588236046297079841716716747226457576624069066726298193861635492376638032045403955963523698120503741953330417079488354836704434940877941181984613105248859673834806836056754815439938328075810720645829623562805109386383101426284847288534131245481191256412961679590549646973705840767003259841257328258954627389866369198990825950830698920529834347605376869466231321757123054798523852609067381083220825897557348405079057531635937266763042513662959405251491902334143527640182007940194473000929345990536509726433305232346735407142803035082849353869776998305141268298543100732929030195563236030393720822913167767848298481238706231034765568711291929633880106883630320223113425631136566135273695963918834226821837855440268184062018317695448405127924275914019562314169598056639724321338581108488623228037395538380677106156096000772619102959817352327827785019581347623463817968762332262370955546353160961945150047501804529632281794017189790740047339708063827412122776754980098290861677756930263827959626759828184374795849662443005213283158481330540525858066631323187563388643181906310265487208566004367736213823537451195088130970317439396584148344181179885797364991060062672637297474028785760035467586614882671069838655181169813455232397591484933237022231236299771912906368622219687701482187531435031331750521838825519408920905108371773584908947117952005653335985315792635421569546551719834055335381768694662550436350337004768469398099522500920364185326503609474086817294725458294747081855156864932272166955245398970307842294656453259262406655202090618888709608336480113054819532096095390104012653980735415634550623092668544170266014659042882557880503196336478226374764110455188703573825964912746868098342782300927605171545570204141542060529285108467443238829153435313256983060299911212945433710078724836421971816457584277138850646013790403712700963849267805246028884302071198561259083902562171942574725224860849903113588917697747077210759715628905556187053263072390344869084362339134391528403799725997537626450361235189246805987164937508787269425211065235157732707573465588348881642704271209929167526199089852828293116059730714927286958831354731149352855803631195441328234776046816906655314615338577202745012134978598206775023355772005588603723615271841207354202618028578118542687573809368274929892747245991328021183966509142957335054542934639374508128438567643427417852667888957949273288395002882354065969588647807884731771934885297367192080644799197527410342309833423489127222648825862946283947581538089231260791349256473014652792389502458500061255269910054293595399568964530856514478847842507200419256690061668304374071068466719042026378605736160121918239473177333668946704326992562066844668799745382962101541625019321584315433860597694213720740334189964104094876054648891658573829009011401830770669261278116078992253698444506553263835423343203934667472098002346280686455416091520881656273873146702112413287156316216029237144789585523056662560454533508974492579871952192583994237400104312869062462503873262990168240983650454678066947080326406008771339921743874905282976769195771619944199424686575904746580516204004977306244191378532162856308525645910362915780671573995414259172318261383907445321183509943099200952025272950138613732943324532800798628538526267828835745935830876126861946002117943081601081365843453821195595419258411269965745192952844549074173420323702106699530211529901883129493483163763521698998010227550231438882821219728243894811443952939101577938929081044863604213479660161451892229277537475698520838009745045769165029042822039644526368805453838132913206797274207171999896027134647189805488840328448699198468638647229129496605479678808173749800942205979789604702704296251660382901376563223087737633678273299877990660068529936458580624754602397693516233073063237019605631000663428668331535158152146268377618735199163519086250746037159631380963578744176682045533713917422561945582485788342760043101763044711984708676694320167597098893256851732901513093202884061992933782731363344262323264198473106061007311678989520056987403419229598477360991199863544878470095187689547772211816273237287900322608320523321633626634738679226608825935020532326698451753195140465580725750602228159143640913243526077558813312213604437270314833856664169341784972149853996845998650146483584610404166015578491276569933946696416955947663470074639156765409664268379836051826219859778250593986877571469262088265041626707471738000464058018096890064365264641490835745646835629470707440758536625480027611343763477055061885920495757457505994383889673788356706630184290472108095893844445893127035908785533955102661901653998349558684885426421184594844083176757363733848137795913559923286526311038264455119884238418013711403371100913826479803799205733004919978283232384667106111952677903987375096637104287377603053042264008111948525020317501040050127276600206050627003516713864273063479493133873645884617622532599787490424371111031513803014141857791683265767101139457770067893092192417889364951727218464511588221435262443670130488845816107058562707254157815171780303390089254223546396451748221419666319554748775474861691649891089017288531571337474512305661141626798393082175238116572171944228458773181525797191954501429708324009174299685420726280626977701426655786118138734068583798928933616200752474846671885640617905248729862492245531092501397755642788367097917885346681190292883070986506574863270368611015964821853752158872635670980743403443111209314084831160321169858637462253251562678285265455965109055231764486671223171150110849132458289125896796269678114287045539193910340720792976732404257221156500876657391482820495462177896115832037950670417038031148555433394791937132577056318627773186053627199851162225774580428462970306517313866718953718261287726236769493843930781717292054434029571733274618068213682462730980325404254590684344785103190351586095402048907523171866654313144852514899883912904515334021690073628599655704899794395209556144326910852954710559314801498335564634431320673697497582250154877160103639202571328272711341834833031682894228052116777408372053777282563257207110217316780453855444422132242229475384199633213477398583885288104591782383001048689010916115209159526710023341440200690816103992707029677091951072588841820970834652190379691786720471625814008435719324374939554429360699422040060217469283054484779813876243796978623571633438870050580638751923639565634291353565101913324853407958775010810375359302127774675945716961157869839710722877748942969022282680495059665216159357269839820013272846106895076620094063602012843264518736024640455536218551368159160172620641531843989271349581549514667424810078470908400736687499643771371184894965633300755202023355697952242425344685042017157986353582628216864191388328151114564159860683429259198797643226880858761523583945421220176165808146982945458202481587636033642869845106353452761126540045655094117242411189715622053000763406506513120795784998492626455253263630001743657313957655621007146056554970055202566799763565751400458224638351498382978577726296118022331835187137743895652022512437898381948197339082083434866645211567195293602166483362741259464078873550867937855841546818453591977996851205447793593156296649629680313725924114198605231253048964712509022153654344083849987702933925911207690570001056987896078762947169437771019907253863319947764800572989669366236118356853997734153210731536263989427118122681824117501660905043502818574201579364136289814600728345807767775358435757012302597585354497709753603155729115118716103230167707134121726228521800433530974940957185694734937763568318605994559299386949725766255757163550102766550581589569508548506928896290633852418724267805337422014085593412136156314152030065003145242728126923960261737706231347457602438857530651477573022194080569879648066163996404512358111360878597887918590928342267063725896105289392325356416957818928616403201133555060447356956302352757423837269443765758472932429548382628032506683667775061708098994763282883074676429548091341961639416685404314874167752771006566190256985025801372155184678058197996342916000171232253505559698129002469631598127044866487325317052650426736756502094465979856203471733038638048299740458841924425591156869488130759762224230861069027883435783214632346851570733683113636586654479779090174922699255004498501773063727225783611672757666472440135069813218364395712817784527909301960425449011551123353980173446904263275732495718173245987935730470015256907295670217951985135077280917591839837247094767448368774711816779461697430453584151262227640359757942580824229947247976893099553095821818825139572414842206760210227929830435767781243830215769751112648025165189107052605753728618440585432264168423626674581677658025623664797128625684533089297365628830909482004613868250913827150744890461058869454151661374972110973476377279814346608218804828770597364255060559684078976507463522331279221105239339720040081303839570720885482027626424450767961064481395735353218940608244013188348717028895004732663371243983169970551041995144384512369604285071399885779077815172706630450741777290204874996079217423296540606163233150758753419391690130516087170843704457295707349044522955137463121667988280230915525157845357194213126661400918103015011786842585142498907725944851898916953156368667040361838121112808824088130840706859377871506077253288616546845076938432775949002876697873793475274400099935633838633281528292658086821478360794368043213110479586312304904733612399549058299440934648299945368690750585931599849408174579287826917301013791582908630825161683562421671912129777751244410778817596905288270979554810542270221105209580267533253339731066868388873339932766093254880872016672458019960600836897045908252838971577942061109627547751513136615162159348516831213851627742455258313849360496104029018493373618733010981958435687417211326608468655917331993506984074039785161808437715752734088459836149055861940703724017791817616310550270469323726184184979404039787162454017129698660279011652324190836794752722470523477660944424830765066697786979084133200839733791086144927357910441735563387245498350618005264919828636878202301473422104694577066383146171702916598227835744884574417281720869764621128269580409467784211116838077237553789551562453497276315529337303421433043523101606102067876904400311876842796382718218373087955036323277508110794189605001126506092127928037958588089647810650588783134936457568639086304425301586055765140337510899013591215359043330583593050561669180451822297684419546975102072873875117678660549548960814040843843107398760397341780950959157166715870110910846203510161142135179844207281432866649992263175681922910158821521967119093693273467495956023914595028274754325074679647054944604731917871863753882611618977622358020984610677320080716817942163038311881148439567289553362772559522154449092862094294576273043259135774055869126988808919955749071175191959663618720568097987850112767748805877172940625849699629512116673621891449873667906596762125300166982286506031188524749323015636924075354414273102444890788726810212017519864863544098651415024970658783308351444873923661127042800308422933738623783416454219680549516875480699456154534553051832770551736278059917579252639650717173352504394027767273562605595226223771064488726374335495212275297723775412231937559754706311912019305440385806054614986920333580782999974097130490714474861231690997907378017637668807815533718871195150364581343702471615640684480457658848203232137142546200679675616977916614933767145940214158730321103144779358313629291525148526098245744125062335484614799247150213050823564495804545158842355220735442230765382562906246118955783171501691833050251651967069515574105203056397670531303436361279308368278809125307357372079118583360161495814859186206549121912192581422831406860097865365192579981408944547208923942487197640228472513328798565216260860383891704964105404648658998189152808649979704387329723288001195834816240971929711207460282935090862071871594878356385801191031580911557171349534178461014245887661205181700768666103536756090472049081636028769931849954733446291889956827358074207517071188666370786724151740673377587985933398001444014295895514092930708800324768411093902212188194900981859684141075144625863978625375906791473678351637501727970142441271844885116624026313815315063469369509552734561230972465026839112434917257854241442677131904489703015170943538902220237845455715703106313863396815929045039874523390038769950155654936602306617898868727842161432390136990262716539823138780417327653660533638350809580771030213956577319749918198844293210814885114444887948149968176000996765687240151197809603354577271353611638084565245670522046857312669188333550398680459543629470231291336771042602849963920354028720587400942072206328309491904222984961316474392775014983878504686954450346564256758740928666196645130207355417258086296038878921594668590251437358495176324157520647788978011978919944390430030721960293171904798163705401296446774967763312909154691653687944700833404230483165278147728432822467143297040457088217471597972046142387723777205637090495982923802242853823765762917647647763288315494236470309611024947120320781303121867760420762314695061476589312857072862142895647532248693322594271439246517395099008370931536727242807965500335306262398246960593555829999558360296536158574495148989374487019071595139305571254351124597368184770060497364761297452659523571136588650860681423469650328823924825659515868278382497834733816024880929094740317919326355172475003410528977081914900839772378146262569693658023586204462084502609596646052538253220363887309721288827842094494965534890772902936654713834979003284497847119069433937918774291467619587769805402912277551501492802155901741250658134074105275513278138208491965570124683680366721270117978635208672629873888486403694356014462762320579614821560471091859486951179174767729441217587800772784122520263973104988314190794684553260113832623264886412012765912222155248024246992080001362633733030519989312100963637753414361011390805250557175527208346339373814297090047434133272675295246473575198087246758685932298291134603161659503563575410446240884938781430025663942326034001184437562942177491986825967591340255173927167489969821198090277448603033553945354605630359593743865039782265455242739104208931065640953487611842748928829115245940871007211059680850838652417972316786822779451939259817619550769579536516519339105821596303157422074601267539339082139590352279654308758351954087097912531066031348282991783761086196629890957880129245123486979117642092216251208367915927166885134289442761218394272114892137577548336356557640636344264422639409366082967163782848225617693337827413326601751618041494610119371617055489538687001167333443959628127692058075785248369024253801711833786681388598223864162652357481461288531633673943512772448765377430438736683354241254867973754107821727696475408365537827823351446277774182915844728985420987059108677066080340091524540937549234550050696212012143035129475804043206587248703397835788045803929104777282318883906058518999830071609148616490552984714078591419949049451701680969826425927206831096584900061723193378255283635412114340026487301254642926030469668528136714474397665576629311529473428199610135803559780599474126981316681032485520991131800708023527188756490496689501837605842411863238144521901350190166813025271420893230722790294075758974521237074462433912439808762657109444649665547750742774019078991308774363210547289195908471069541101246029610410492511809068745760270553310360161341442812508446120233533324736090645392017757557466536533456486195917849175832786029982229069246382926933801829697708704179004663510439633879161222745284314790374892235537328152195821661209671869263435635437927077312009299420233710877831198412972367442349907460016299187565444397771553828834205247207118703858269766217344352753885623231182869984570953401509819268040415814375791727183008084583887950770103764042439187102489039353235720462408764750031534380111931436836425829784338564038436713750340175671187336152106027722969349649940670911345149470322253944115610589576861496836876512069050257721163876609638329537809287800831081192687649433462533028379525690476592937932440806859822205612335730849683237217660941515241819736806805281532859061164748669203490693451131456434883639981038697356318330481661382588772875309605731592712510306022857378418274246223666806476593384360592335184897316156613022802450137698578327667434666199392159203165833443388684284675137898573836616927183167473451932469734983072274984293269140855009493728227631364421843824889895834366934278991969082115460452318780341451104906882644251666366648790572821624880446637768093111919766988082705336950178192216200234282252156333858390832995985493626936066434169173028861551964704215515989079330230236322016384035449997348691916146548764227954291003222947761506386080743794869171882785176214905710148161196628760360018158437488384484980721910062119120618241687922079384633044138506196639888835581935936007622772039073775917687225980865330067234370059450479277324457126559544547563728088514266623390690449758235713391058121365527139956386228337338677215696064923250026574250470408779456054585961876025769961491987399180720903452257806017146935649430798218278737508117007497170636436652459600892958908218775788384356189552736341202458690317612614264483893277371091125953233157098147633670621331892586190252603442966418582009540110008277791933308133275440872579324968893179872429477298897575825168267700384486942743707413049959946745371978822794339899097921133888552496704707062719639376208298324088642007014286256379029608022055047549144084610010399483328022418447821623373538023159223520069293350909085502774293007744154265203981189574358157698709665062423563002750741404168000869346699452597537195196526727007364568386439989157164621100115938202767700378193896655560002836867873775265147546243189969640663938714586690659370738830590348052107634733483536209889036856738419565559263543448021441631372058567151738943946051102428464521912397455016812531686214440220203890837763536922975210012977122925319839797221768386584658188470869622177651828312483879407446602578738024822181188840821729110839825362227442109020710219589311643476236918837060422417180514282431259657325635089988318660601401812294767427025319548482006183837396392435531486169683665809483654711697537963516016839163454569872995808122079343102236166126986197240743481086418659405180389486613135218814340281470770430956249947918844271737589302843965769976067703558049430616347202743436837151916911013036599090992646505168709550761257421957717484909868113323521368566665627353428762395540391624217497458700363308271863607719602258805169963438258515305288765992161419116023553513084646388810648906022686486415650292913314013587161411846267213789205245137145440654370464512705062509836868595780067596622958595515496537202839179655893615757008557805229132049240635571560738471838843765759716407419486229579490052446186684895242602099167387612833697025890317962127930883411909682894814031775897644645213863218391184495855207474811073828329464163615123796264108364514645067176990165138430613701708594040304167804920182115894006472885102633252922940635852814393471314715802055913048569423326097245803791008725536842268510549728461694796047295778088804873206420498533136578444818640463150179818268094869960447403246973151783379124379247183399371218980835270813314591426449708246719823526183387967763348127573272038019644628053947642924578814917513060586892373701283469348588046401266403462058094308637614717680375554866245611747682107074452344145796765922078959647307137973034195175682160599550220544806789548944640696161497037487004447537730429443515091384979574768822125654137672041489227411740775324242142228349191553870467580152624764352276779557555670997963123553603872274136844863306888193899251945140219971907366586287692394824940777499291895236354612913899806835608762508878711492796564877872661005076069010599304613054900798070203274874274538671850602332401740591204028857243018390666349345029967965696894149797073103761405736142131835371828143263534103340132176135857244016090691159041544097836151750235698688588918268011020459868886513750150828731435702244651618417555225149819792089847351957833189712391103201025981187892373865973808116012234191895467159493115236994718472103760501891526278637226132069162186014566569000684445891703569829553864589357055872295854042406302816285846936712182824234894881275252274460950723694446601446394445778016181368052203398573651112471263383239451308012584774434362356167047932452652251824544671939427414488785006979900863187569914120730515318612352997938274034131926084804892812467336043763605002914508759290122999126400951644794814352914098102367436165338558688736657241518601495940878597460420811233887529534221192709143790110302056508818682078169460115106812980281246449088242950431184275656941982267261616338090219183274612677399807650833831654656895574757372573460224676520344458664751271482201302499895964511783462866764328042953912577058639425952710053495512800757538185634873734586768076932082686946730837295778702356979450692404374955788565660293903195470183228122091364776780883749242933933378827429166353465122380817572089151835492529075421989976051363721262776758051662688431569472279633601180411957145798867965754527049006297790968154446241447785749757993162628317934749508896874922719301364299647180665729159027069230268159951022303250913955159389907859231972786819867727066925101382465421997891497102597549363261476182627344895545080425707423344949507117226961069216829221718262649858067221561871513984576121053312139322762952112047414113817322983743663580188498509594205987895529905471243152589071575090852174846565321052763801379179728139521180714755821644953869665417306500666798088947774178536671976125808612922418548656181410664396699700516776582297585464321464038504640585943507574309558944133857716717140042704048555276945686638033992643133744856552030631377784243180890331419777565652142208189731673797534096521538096626690634861432278835070398006687255055594286411717410841950818882016882766412867003410144596814542358698151658430773870557035409738298849642397540265681855129708632678133921266061442537650404206390021564890637377328026761696203998594874975633907389408207704186603275705533125665143469516234738371532283578075769076718778299755962695712701808811613520623676119174028045763549376475216272934360292610092110292636123111199750612630825800742552329670607911243732960757860280791078665890367476897242459018033590463409701967037196286119130378796682967727411042073337062661857605384054096925339524722760283240670933056871911419216391853248670152010438883686879740758056024803964158204492757750476766493465101178579311289429126334410572744660634445412340533304507160181785291506156789881815533435277489864446365971315887608038133334287400061625511636421447187193715721809522374119603844374947591144451069865733957790811143227152081850666616412311903522173221224763525113391181460661360214736498779856146585570391860484440252795093316853803913837546113805634202652302422845378129364799286403655341088298802802901287097027856831574197848295434838125970503313644994636021527533008059905492968783246112608546433470938252985702279974939423102978819176515772838104744476066284698864866649687897953427964399964132827712393687270752145819531559602501897059546884659168271264033818288807728280502276969293310406478855697770689699533748475073325066123456185055460282256755127688525124015030256566892046885252270158127104537436517717140645062538701628352858810683105046892672524002101292212415120208731665110688618542252177784811426570145561982596098633023622027329161532381112205274623227120509416339179212734263523220166201575439180461495106814532069004682369601227990737807337778850998797091443371974947976500798360042124202693892123995332329481995245038628988939979716093978035994336909746071463580997839489641732880865416203369886252017728920975378150236667381532244545587572089396691156341285595634396419004022720547513479309365164115560266749204086966024150627328477358291540559322249667342079408171122585891557578745925583644654173872452281891974491397891586276494526094077025851341708361248761546057369939564014615495535445082885150202246968212713348238799697560497761970284547286759477421520839010780717104320224639224056551394410138178976467803248690172186193458945886168352886448199198389647284340637222485423682556909448254717666110471904323371789177413328527205127859187356350845918883703596470475612755300023643162557950658657689845422386365559408798695767978125538687249433207362424076127910507951701735079216581051217406082616389910708334286007142324998210022703523545361661231797144629014604729794323992199738997797529716659864616952380485758398481783252219283521074464010597570093657126092472022440500168332999246976382048187492884637240347414300781124233299026058037267713918925982803168961734374592427816985188954731907451600663956923655209956592662047659680010874242733681746592172385939594165675395374839426395373510374456324642530562581904437023398294310742972504825127136399335871079419650103902451136722104384773757803185001185942526128213142234771432648476256053740384714343596323353323904762238094048399178123085311011484756733773171642673669599154179585808451477420314015196735347276020893234582358717452412706339748268125063920793230403623259530137503407740754678066469556739637837713061487842934054977819012473288979091966198425062942232839562865940253266483912730799173532676690065228145505621347213598087067768111123174811267622951750010158561006835179338504542824859019931955807236499326208366204028156900683626616235203186347434005268607434961835675639220974308008890008421876507417617192415879380119075020897782655515035281745062613772057009333691990561106661561705148582186623692317287857837953332512700566494931811732457314160297882703964628994401899963846178869469974124506998657685461776412411592480417420339840404599753900342516355842568179655605218027430867452991185706264800581468272665856191926705998416697436623569052993259733614489779570651545640590328796765392036153624304636998571176639419025221308815975780415224975661326544757771976428705935737988328128238729383655405700161571408213785741898556614436895875392662941897283137166054097914983525173937401994495014515177031546626657911886079969954121311532566681419736377179537494827077387556842550231967189644032726522888869646376065246598828543642088553939776901899270099664160790803818511388360835186750235907666190663358461243880599785196737214069996628965641436574445755744184315925472595012815812923589732844717755338967942015733387846924103861590562296259273235941286719163213115362271807385192846356204811445388129209120380922157851063708453884116466505218383320395539577067629782288940715772252219331562064594566417046328640485894616821871771469932231946184782824605874222137465710848363843782218831578944058631790446030637430397097905703521341149244603678708588958660537381306985539140107754383104326801779563516336137020476826918805866473435141148884947894475048008865852106862059909487047103178776978189607559234659780652025539634334230404818491879859452195242090930461074164636172080830094623350212766611992838351831501535353338218250608540954979158261312725257743450194527871648088549628241966561433428026315670058503541254524233271389196550312631539927875360416341161242276627619317757338516619159580653366082229867691552530370000594105602243430356020034743883792052058872365122865908598171120446396467972630486360523361009189428805976443419981270819442907943949234943352604072684068915347920961412884173677947445987843613964904662965487206956012685822551950298787815035467768321884111735558616135427294640797971486363949711022549604399408202468335134321381199072222604751333059432900370053246581637777541768934572798019871343417932666645939371048711676307988453854017140248105970317883211299619469753147336944332685261439551870785011202945282023151176824920134604188943921764732506064136018250218760027582425779632530314171106594966256075035078614283333273591759849906793792478330847487810098138719422471975030020128920535603012052082335471323610809004143896575418340313500000781389172244798282828253925226958872823701728828200754551062795290447099755123759795017202070414095998779257615318688852898312684556013446892400749963276449636915845741983208491348969164562658790315716767858975796008571305876243833463405976466585237782140418291959301587691308013589540298653433555536467106761724530281647474951082319914969673763052907281834322176989242460200486099216470310095886577685972393194028072170263798767363291644116837602820678319094557846631527756133040346521699910607721957778656405066096853056076982249287713753535342832232877826762695339119708679602101599513832747068507013909753132511751700856620624645071018592075933265454719932780423075664408324114891749619728171666117445492151476419817369712072368926841953145550780996111568535555900933000138103688730730310743589352681699374878151680996985891272226632045797102336161821308427493467737216435289546945642284408867567818623444121677427307411112701500416244083324041712544538777592134155075184737662031355270510915813350032486156023511720624049907448567585655194714116761529193602634035347266210914391281015080670937051153686286906527324174975151233924064805223054497005046025864950578522179764544626732733621312013591778549006310909732601806474997937276197958052705783260393536746696681256596603313709304866988405560620240826909777705244764504426060909227142379042104674113726743467068158697805811136162230518104108477030212925309018306628588798254474165038721509140776992211476456991872290375434399322646173820358004546091401288917606421380317603909289285028925044229964396789730399363012999043455288366070243494953404011214478537472648469011508187370518860414341533406778240763474759744577014590418545351855739749388298388021873133825704699544759041903805161281983505840518507704845741166418497899874033827050982607152979349088168245726860877103025331006216621208789974188786103095345589360939381357726509213097141602384016965305321890700696926882228980445362935508693268088820820190522396386638664376706734779522262628040001148980319646532634068132336389447515082692200284857981109163441891474067729619650695971581005422983647870093422150730063036077694305456737076454594051358661604367193894198364057031968363964067842128854490551718163212487958426733175804855830793814244796713413879717221597904027713137348935730690939044755608978914440624458417373539627524435786540911030494818921074101278172349067724206958649422610207376350693418215132005026322519554725816940720486592499325739278570367147583523248368883797800699713486699429735311583462625847688406453341321761314730940567673800505354432251981866813648308884392318225967854525310559090975076898670728899673382367214346129307242987291714910936110932557199704695505385101408411300278777632054731700642861189011167256709153445009137445215830391224509092850777782906357062401863558644892319481964371948092942483419053289170293798900890090038395802384871133264089767180665067294067624924537040010504472826980758363383914735527749103646208430373132448046594663857868949560480341122085469591223729389374771266424473025002843958882905566436756037798169844518273186742305301110538269751282655955274514179498907670630412847064838796600514655550180646664793867538223957919353054107941230497462509025240585869852967171599609457676440475187846674412189157863998022814829831376649175356184461672451817781129411153435608776221648081743145013750495530073032233458746492233870523362232308693477483072666756623079468629294361755536551497919247403297081556149568126479401353531451141293722365986821987719593213232916695294373191222977581827721052150979752626043253619071458894621762276257609279804086124032664304316853495766918871364966341276273037075629443815294605946384268175405087055425416283879782171138640878383560968364418671602743661292145196557879413005433459133223883379131641868105260491140636826560567614612478841855768185944582733519502723984605364480961336284068947595652768606452055104584400116040751868810422404431444836316461642051116249118202307869239014519759910697270077242104537744098213467643656595875303431277339672596594971950982671569833476792075980171262280964170543455863723437282467493815427865994663468975923946119551276551463571573500220946583501888616715863702249027494865430785760876436597899105232528711060378408657949131826350628901488747865969039274391044670293753351657815876722586825864385845035671614494860378467129729525288090846845895959226934265707559566245351592699587099120003639516444987131014760097161250169725154655354410961411512877931675339791289668022288580977392311220884231964843205939288652806045991740760615950819592762852206141076742772216616722879181205525907339555597064070010069069225144434694596580149540597518801429427902771342881036934645603020470127292774989070205771327922598920092616567884496839393728393102944853543778877196753720288681328527966829035438704935832006034601578247930373900916553237819250423017808337075362936239767230366142021646642264062325653721466698605874851957261878226609190965005484818328048191575159784249300550753106093945768668557939420804605871899327891530415050751537640464359885590512046071500863129218691874315668891553624236942025598111781695942820182301485406373402037503402781352724142207105747705286224618498087318774558116087646869538869409169314999109069936941320163677476382542797565597301116438597226514516258504884729306721703273204839538899187767721225169239552435496957456830406276269646130338622780213791885302277552011878382615426334698396262345809840468954017786766308839990861959453292471294667229468575134879161523336937890105066696514893254849505160767418101263118931386223030160204386403236829222721095904863656532795125351867081520293415108471767560640084118648220641287124343176723458937815155868034041929854651177938971341614360171932000662356868506668968552582546683030680276222569294441642753294511270887531384805349270370736917409278782033410358007585989717316678486047037074027491939125443893111862651406481277740490541184267486155280199470149561435307427243854177186446618101345829998802074977221089023708439853873473114360090803417512780036671393604748883948907998405984390005504162077902589704589059156810037180336905338622664822875351960514242873323782596481754454257472369231432244993107008929756533998895670837204422033803427613301781060307200796081043151066751434768107474737016043071530063554503778937197014738501226283053929689353857312000748322177286590061419972406914360841771833217119746690325970420529635734658195097388422022405261042939585180913922917582862706278374307550276168039581362116550863658502511714413721905890857364999098487336820291862090898933753413087515796542427466106930650061041176879487377855709873447590869956362985586270201567379592865521191808300627665080846363260980017158755659619523869917948142902656691305535663325048434385258632663774420781462999024960566130221218044808087282941467529491542569013722632723219929749089549299160053245962784394625845754032899127637649868090396315905340566038105818868947187526257435321443150773010955338213848865289227487181547141901616160476623034677033502531998427119034403820627128004395891319063847399024216664084204941560719133084176753413883596376456146985730577809704000402034701828704369500922402127944178154000180572207746864185604241524232520994489942982782368325379770931756035436438387866270962325036652861825251569749922068020487297102632758590958889762717642792373135555503136251068050395360230292914113803163052006233648047175723979400610917733290563720693879229814096875870140867677052883070004891583866602238100794917924095635916111652355431578720924895363422186622983973607362719980716937558287198646243753865287782082862905044700622803086304715839065521093811678731141341873122733570589501735235805291446044159285911701073594286742256836850873315992052620481418367947531218382752838868775759440651325728056240818699720943647880908645258305513217047023843540122475347436673391845260454934296110699159286868986838710129427329834536538474024748529484172860125015515652683992932545341073031021777335695359442376661821397589819794593921595948408180101746592641571034667379168757611257355313110895068381466638147312212665624967737495573352716906893295589389717998008939106300377855388557466308140214505714723715940335642792466433865392881665384213117654834643798357677054103224123032201898582668357964742904862981850769345023820442603043534911151534188795473208758189794240778994167900057013614431716417549494409594877221640230996685951545191496658974866590734603474728901187411925310445339490582792444460587530500667166745961104051363447394772600239808201659494332800206664509133664110548379934287963101606718802357197984903293882672832944744666562279037970586913041413591404062415643392260704117553242320447314359840923436251340464588823329324039427739415577160783932179430982683794731990510634177274564823161911469457843832614386642981149089509148368266864426442659252880112086385327010429450694921693778125161942988099820948170059552430140388573446680063112723007396817370256520748776780606578438652989920586614131853022936821238098053940942761674553016434702329526969454228024295915021198648757977270903241466929584100709766891646657724576913150957131355731990963153039206965540278776422903688468100767806876076357021966700886567127673198500189799779660160794699703292188185022621230450046933132608073765850751763444968737892743577641743416624386865387588499301909623432491541633623439400912683786449140273552102336185106063783467276958287304116433394151664040563317568933106445615686599127401927900495543054021033358380500690624982596723922139677352634580874824293723735099633172644604088520526692566809259422944305125606896849326684983244605651599494636935648073944654487548090221231849170186033988632383015002360645757851634049260425965404450967265661612129093682343112486238940689704477008273403310028943475719276617618032094573041224761870097066217284032786798466713833585885318866893702918800713934807883897127931329408367070471931273596488613587455532859673093370327220392238744993872948811471470724567256655014533722720625048859668035147931839461622827474422380838447729571625379960473123261900148862769199317398169898230910015013294170748254938123211585511307083949766333585757423832583178527317693587765138728509994233586859493413373798208787196080775608762664059474759167874311903643838089926557105812065985341037951930121740267338787985086257468089512499776585464428688889746053687633027296511875963060877147654099012827467699270083421591760531150417808963874742398610854549375681589584619498440895371274885889425992036181796015982733339778207580038132133343760658337002990676905730607809793407005896188364442997138157345167210399123436520790171564275577467525050403610927356165472887184055244533463787180210354354258319738268699166311285353764698338447914727438145364651907070517857692597336130367167146480580352602858640949725368578114367314598169166008700717219784839431931200906993467372977066680121779311541233120291425448367871217589385918818217158296354207920268759000474975326049682764253108451246131645342399951062556853728372935729391424211009741279317244132379210604618721827823100747357129668026284808847778759288276238024465966371706750642856252723382574830569327125115764581505520561558846573185557102822160495854519616386866383473015485767297822923731510602290597574712348136726711941296253737813448310805835741969324938567442964573415199695545624961237706502932608959975543198469488458657417998346119072844513497335425018848281715824365407416931766229908531838926073526736212470494791026395059791421903072570340210316098614958900903893949413749260284773045056944938836180782129472231441107301271609550710966757877583745865766060872684975962496897517930754281001837838998885928957594806766532092134268117594727725065931215772839243204951068625605893907899793100860051209550305646858514497394162928313363799380724967418814951977352702003362774860072648331615555579906231953076961418514138349704307454533428540382179163314112551474772050952813523415580210283157849453036602776376840869264356366036664577922083219968068153980179565925539359511957292947452006304225537190649970362437445651486971177893459469277616824506193472310841719144177058777581609185807831179149899384180953364822542916296103038521140079206513370953667015166023060618990458584206607026221661668597406660398367011671049891252708303300028117009502556650920237217254638779226329123449405266990067389931000884790875222542615604629204963089906772755573242956711038276654122699337682137347803918731803603528127498024069593967579803646243571652839904146689054532803641380775426810568487853908723384396028006700610742263646728005332417411755017456444764063788719470959273403219415158971768780392907407763911955783046743709988309790405078631089301363077359671311622366689770199161393882135616517472340688144786754546798914265007182730534210735434409303266813440329091438563408739893946499521579728956249578445412636651593359342702296453747660170052493916459524089520642876356724965827213005140050416300135162193991021967333523113976006661546067676892941428010485264261448620664014219370845977484279266160350153445952121569151185276850682302127899357273343856476967994317507189529861049779459141017276715886684450960197231090677812548323679304873582435880208812544301992396371932792565818817829354260459914164062252655858449486480802214138288929542513732605858749761848946613643901050668570049094093933179820093574085727887831706399763840549710804423093104353924158725141699205231549326938634153667562217700471087037997843295520355471441078639165196603493986149350466111797342989163900972839254317954489464161222386459905820694209056278531508850353750925418341633230697356565275239533456265873898781969243221448574167255854427413465424093723063162629953561744821485118262088647190315223918818027898701361477594783799201392680964181766790482684070844644939945910122121427510941272382968726229635531358075342754644440271749285229815492079345846862396088882555151144223125423811165612381867148299351875831143038093409497335378964090134173913363547659553874062891676848752935316960739440473043474398324860329033771945521065207361616982178518258160036354946936556531463146935060607682890149006276650099401162171735460036874673706695558676904559242155399177833588658082009007512861394500634915938584111760150808032382997351352805989748228656189883335957707164547896194771667280307714906536019570866025692487205465068788707754909904250279441963816717544290062056392872564384839342381497913795989174140493276740513923876552301363528052192129309514339653496687147467054735555502774015372483147603916405551064328309466633505658357388461426807737825293667374875536465559828028814300760699264609845762652990382054660592667967514747894824633024302257928715931854550613061923795523623041512629413871537253004094093368978350960724833696132674381841710897118465485761447142563870691650599471216768936228499691926419028597017168092788342936137101016254650592105512042154981400531512267366960563897678131194688858855909643168835451287257651131916937989868164044617381985493736578914351235094991059835035570964369352925833830462029568357722285885131005802478133963410531704835891149415807158575855613017774399604383272611009424888157932021577397106549267214452367141437635805050663907906094297557654367706934856863467548048781849008073101057795855255869147093072531869835188360145952433467330253989849513314228810740697228827708864370053799370356519554747852313698347204086760976022673466161290513581947665438726028181463062235255415475743718265691265109695027782884359665616571896611599768379573944403465537339482781206161506983295713615820531836826915586566980902660974891979616503802685626506791506728396195733255285340243263181174494576752279157157678149022424202479310857799512382244893915469543916430588061533895160711079278801729270972094560291950070601458268851349393256883145211305800845336876378080141697766184005359828841952933833197451620950861048645163496132197142358906968599874066210860456817066448567452766939534938845433072546147680575449205981856521396644321391772708076694090387836129606811394237890820825389092741997061350063922313106369355443497407260410072506747092474959072279981111694677002707322405094418578952679370099542470886126686352981818178906408737003811695730843766641465363255403820536400907448270482820412784917746228653213601253248268881293247560184418983219253323578000180637924438208365519259664789940027632220369724343866196996499781732844960296477956789501876462199987364927663075813314475088356126105420606375846113045686181290983006900954901174249111248954188030567077748929609167785885432938687207559982060547732696053393080397523047511197104648625472180228874615298774927033222294350057690837430491988128849871764359388729183544122297694756581680204108622293388007108008830190970629843134363610944627901723128313277288497147428248146709356805790946091817404601129923969161054903651273543185827140491040626792111919718310314602919577861901745554291050916394649827034851765430639070140965277364780578575147609338908108167466247300640345603798559022575193475543606542978399342067557864086313637584536913445396759572254211071756102287094387959000163384422214450053749891025034822251389752752022123800199514930985262040970697973269434229246603282198504229570446336667637062162938200040374889980367630388621739553252168849894049655465928240200071866310573241200099134219406398868104642781493601274451014201812429154671605828940277587350608179681641781753989420462995690228148236595872326550917220707745987617737356854010238530439825395240082830971032692864630310489396427799126746885258574253607551436026908073659265825404203796656997769704717586841803434568208122257998489269968535778542498562684269219652029881624104886872251619856052116649551767908236063500863800388803683471795710420664070247496301460503917755956438922936459911830379417840246041939571977295256211287189220445167278182901929590359671813926563795324365655147310367454731311071359460192223117912201201371795940974637852879496051135823790429343923525277692655844820264020169388874896269042769963204468235540539056496758900290851692763238824295452680674763203979063519755836154924417165397682914920534281599673661196625123216972628753802886909556583851059776263314665621073765643962449797732392674526366516851264496471241789497422580753688638459750023637406883960933426170309752185583227697298572163097954628521176336159766083482296809205140648022694246410891567320535428505391742295620114283882669904661472873522701605914821018416594121556363270814316564360297157050185964265714553063050624750925822098938864687415539134158389192668661140140720410612138879236748341960651465683239100600649143052680404016303173434349890891424963530529619251263511342142694623293530797423635702171034310537006821293098673187281706299927474430984830360495048189497101330584216996773015545186154860941640622459869336767706930203608463468613119394254695885748782812153682437339270649521584902984859690889863358078444069613117060043995782479803842593309566609551503215103118268108082744638607709936217604238704867026199386430598420061133086980488352978126985214195714616223981676637998006945461855438253842151266966164910793467373808375904238945225273760479423577023342354827571825419914182898270546595556459958147523789622541839806206224935859239345807598624362200199436851931651920206983384421697150841758141196135203461363827069451553627446146035704211771697525429003332519494169389535930127686401879039272543962184737322156999157453165556714273662796695279836353031438190389826181684523725055819680926924525319652371519492446817803466414203654760278733950267666237607038814630062900412720578089993480526416705064745211862902290689307143316302117881438615012417619032176067495937868126693175398022710008090001088442530915306820852988479652707236032777079351097340020798617985712590235678495747219172360955671872775169653716655119150597045433634656473487269641354183800819938853075598292959555253363340836314454401421147213044822263014235646689553328353597624200377363727640959937832176001763021136705218796255905157872528980960057555923486597236809451012913780370728233128035673630346253692878391590642189923650507159634977722009014728136802022518166011350516151218334106572403627330381879283426866264325794327635684787808530711328203953501836148874624894116926678289619986830387511733443264664789313140274733737232338949865263043718003600635824862471150840066798923920428094510751793948832661305212151012186492118901522109573820199980641876415007581540892470055137987002197596567385511572333006944676321966243265727252118559809453544196407019215191676173783281985004859109752782851932545479317597978477424478604561484169886689107302159068476886265513575533989094251853760202326943483404779378629721192235582429735368426790028944072549905618792806280785764111141376830732730926489001279072253988735177851753607118439366614264092395927524343552338749150882128471812561726166376218616967235305239385327428094975607259924194574232843925639219894482558747072501783558578663873007423462124169941153504002627737338893879723537381751536006009804826961393304422145523073033811947165534243706380036164931761578245132780679166545053083421875087362205058810674753106110007729301030357369360738306075559403005655346953309492549382479022214095374045172507524945160351144329944575575040348573100894962439438023779814906270851383669423571443790698299873332951999974827124610607487151701361897008128374299965937462148473802767768979935540895755523791003217292024826831312613271840721148772231995243395527907335409612610581529134029249773411602405439528537422697043044664144394070708184080434633511420577666578129728141552940826368887003041846178002883541016325655073239610409280310664253698646958928874521255519364345969302869877051276480827629328803186374859178685512529615348880315502622254631986803777325342784893292245834547788727906764236951244910341355553527055704624139597604062938801672563311822768675498150523351975907933195313289637939536110865099664166110328400159070956025174388552564995263957923682234972548776511806617508116264972664721580115212054305415950293232132053453294006002336794449674771901778779630949273727413755342145171391269406950185988899227805545823321387976097894679509144157590844272491832218000078176802645921061677503361290858088297218216162855858816987644530392953402434057527047210712822241781458133168196209142960344893300917140715415998134741198345613413808600427385463417669237648971577526167303320525666831708467643281867671597362387519191046850526589670132426945201161059860930520456986545471958660100567181983070633202005044168063591224036716392777774366008083497784906532092318443376031198514899698494492514914943444698175948495024374504946542994112552866533924433695785313895057984462657054136824777170849202653992574978945165882386261931750110135899448170954287007646996518975979094853904118842525732257345528720630661582871590780137836964484170473904196981051474187330325024493367324634704570547809259826132566407173519547098234616448773298803464527447559257700662673459351783375830674941546421825591413976302534008747443208319332333170392112061924938123683262421801351095363332525302714282392088428039297034230476796575079941466319652327443257892109906027216543410259352603963508059558462218264017195677257275696777302840127811331604366599145708376096823438585687595758895159822207501993571161167702163328291439380349699822461823168647464754020626312100811559862103955394825381552662246785102344913816863404684829558174011019583265210544405390436411542525878933593189967022413989572577756541913300568367371093187990946665263900610927105978242685934722535234812767507097294493433890972823906505428899120505575345839553849555962864361262510870709636652033955198826091698169414835328185646841390820562521757729929166781678130830472274758372025766905667865172549095532041325731705363452245382719790607444252614779080612889308519786800648780365509328445280691025539443813797631637660811988501187035258465708594884380516198603946160465854718753454489269819902307808044462763433474730442092480874543468891581756877781595895575539833431112671455466031746857343622362502562664833627361341142376555468604860525600261184632506409181014166024116975569384341318117112626364316668497340366682188520257339871065462314994523573010009270975246672675148166583320617124661649142362071286792525812219422204876091528437942243147870888803100313303127781342765286999745729162826111264299101420510266506828774735817691955671666795328148387949360514533098255694573176357509780120697204166242579937667671641939179813306615084666003256813054976679512812237005719518464672755263796002178021584936671719105639918307224966267361015827026770044723392603185358548876660176523494027216269588050953356300649635432047660987386626192216870260930470404691146589142228799970752543854667845071981410511470010839000744596032849455295293761668091268431293925850004480633952262215953304333848808967261148555805205630574977550651028918971234242599198069348440402530097942097928011391468714526806866272082030772945498685312029704657688287556134264462951592960320239718822298874342396715185643295492654673272095364792789583720806660900679219719466688014059223160230409954214212661295397608132677785441289376844799141665675179213723018281784155735289478085083306585709936092201529660982202151585896333029493095840038281014127171984486919966501821903483213930209450131317512187804160750112101825102619889581237601823291875523279767144487025271100226615672497501243988068542806268853251491027144320316349039395910653877506445014934424963985287601502054029036806102369612019811835400624310422829153316264981690574559841976005046997732977400464024758110884464815868107334029384734192556015151841603415492062798953274635366490796985194888219932770042836396528881212281605533050954294418056848682036716088330091832865372588371508552350030432798831257260251246345655376414032978981264749068621497450879417389683959518568427031927439333416345279669281702783284205525766211770684722237274518154499933122037775534730361987663630511589811011421639369392458404573535239261807197391824005515666834260577613796961789591300975384239210680914779853643991400510969441001084979811701661542010669086670539742686678486376876859447947367169272978081061427581028546563289418716370820931312532854931701402264079537135119055759255828612200616445297586020876516990240981183409300317503167394397852943637051955819205895232434923834332422854145898452636145768894761670213746225315675202417016744259402488526740730160679473565751882697334808726224064479026557592835447655440805232699838680617568703421789589405552927959009760660085808145748371916297109519856310332601317084826292372759270389931843515170642893234492323202128777401142542988307361183579005850520113093667401872018170694042696887671126404912020838160983044432465164005067034399607841869609992101322813652258338043219628624003597202132213097435264244523162139709235294595284564451609656638604581536652072868336575586744639638535918389867591752055100583041971288335622316346065423727531449779343984969810896208509045093136905485949765623248539826485590944380878240934184098049176636753430733930139383387680195699481650723711458687598126029630882317234727379916105441159259700778492783526265213901238213692570418076635272526958129253901323954894395671306414291207129339005513067902124640212005868973793788148788316381299564949581277292829027782593498243170230856469391492333300053511607654307150393178765774896100870628605357494753606493691144408352027008922530314959812145291184977270430169848422759696313477721194817345668404925015576723769943064023534503093447074550947124956819452528955878240328243369471012487415475753939137512873967095149094078718659576020747719119573524165927960189761020351362687755781407355361465370313462987212194751420385524527884583431309893560349614045200771197530441041565247162061857837410935936091060638907231261741356679289215479978709602022607648158945563862731700043893043053797807467683213346106706119822199835305254768154992466873131929080252040499905369551525073237558022223541785053586512599108314581646046504958667276110815592004709159565736100247907049309091421780228820302980100048580445598465029471490417540361715994802537760517950545376445507610886794669151282808415870122966281860983861255230883654051868956632523201283568106499408163410421344117061844992293819134414380247196691258957541062640572062142427605621262937002911078965042922139945663581869994007813352855154111128405260216544652225035952881362942235787272684950926362435846715840850671567581193242622122360203883981176628372680725982851090725904497542450392564894511643214517916548533905624058498789337371214235552512213648787125428842795869256164348105451303779790930131482016151317701837661165842280621673930916684204438156750552772756535902539447885672903834733902586890648763813187625398883109823604427942100859284910908131934787977830352654617458737221296528133103298259989645978367926332608241707052762064506616639226855106220265056316060631000808222268730384415840687210618680354368434043799069310851384163545907450621962489504296374120635914408950560218114307897220021129474668466130103215831698648203241761297032921984852770017668020058924118789284907108895340857415323318600030597484453747751797413736404080237061512587377163993634905643536528667902102035251814415963670362005229125137033284382248737219603940263286894950165497966813574468795091270520099414354181725689109525659184054095927346652402895589963872462413461614306614117374608094191355054639116219498367104556364707204831662677896038910033041669980244300578061975899382308726760629608062468657528942335835877897136532251321393234348636042607987477668675196971065604807796790559709038919165976011130721020467991188887880660190941717261589733685623644404565109479039271735071638277394578753325335273378779014776011846774133338830221991581188318930074416863183410872116365585176268933949551938764362834417408858180072691095586638308431033449436772201371051631763050923138677142912313771427491336541173132536584306178014029259754373387175329306656903141510718166553159013161274293443297790032161503280275816827356511163034158968973166780706702828519449455969876699516622571374370753879982681677100540356581195021729775371516950661020039272525397596292640793349650452572200685762520064052166967874231523355381942705908605200495862802715511876460147339233503302492051095829855332668320509267928439522458845966582273057762886379721008746295515806259708439740364701391984200458409333299733566761343297024025410077041497638046343154295563729384820386781931241422639141348662758434216320375488189692117264541179762049892826854161528044874402867366582789755954627309661197923897136669957060372293432091080454771788191474575967925289431370305535637767253942156179807890120300117617729851332363795422784869517241868351419117246003632957989871445754699307522353935835736725205204875443341368433073936806408893887070486685992586345016907707716957104364576179451207263934013578593501053407965420475354811033748897340132899959353456048997105347097861544567949393664941803899435344769127773962514450889993245747185473973249423242047477433145157662580145468972200976612950785530038931125968529024003112835851931330121920019246328653158400586171182428072084922120122448113211002908458341234374518372257952499883685543432713340973232298917118324610848981748835561360396690983191297422461365280907090080206669939287521755440974008493523739568554228292066425235559819658679010448767765340364443063779553042197442176466746164492347177238550709281079120485501491760868565886087256851582374460073439990089651070345538191467524584732574049908843438231094428735709511036534057963690730385933121489997064235362597963262238052383051528208112967105091071247839505001815527788470879595804036960980007623229843153010999574216805577215509056518529438555904097545850194562474522855889588405606213577131105983998562646166070251938030162719187482418471289093677696845047167677036825599300049860642009358561142007940136788351395031419401104550247327212873862538072340597731247789672207347164168869083203207609601842647589681830202714655802265241095090710460601738125358860552004079029511780968177492986141972526350348311466210468400156902641387774891379950177805167277259333164648314612854408514683736999321546940666053790947264039268642491431639320885139564218415574110592927451366863497636286004358988371106254875934009037434829306817317755175747553307450059789021241716529872074983867419392829107047022157059564136358062645528068670778048291384797068603710980814416086306169582053721609948697013907834729499539460260261499033593916949386847086791438785962956812346233687084723286101692097129777959908853707679454238883099059417258801244757247437086920688618014107322441275211131409209351261737441024285230483114343614712635059179048197100424490552399324149201791165102245508281569998706733618803535673827473122197724118440863835448722356055065833109645776778704256419961684880267685153236792785700593032818211997323063141850284676062549616748313507508690427569988216484223030453435573608670118087660308617390911431781371427130262138406258647247666832774136328365523342986563231437826627126418942832234185145849689859724650641614995537553256752254218543416925370161902817062852331587307515858986374113834035218211849011406003883877733238980255233470395647453882765999846387904155505667331089096931669764352256713261378236777919136016880316248250995754810461294726738387427972872168121887404143902353779589510143833717144786711329426842262988233356703684264058545715100710437481823961054720334582795465638909854151887238047932810412729058677587453716205734936540788253462157370334088477234548372511303565279501927132899030916049167400951700445606219835429295466077282676732989447454513695400479281061589865119097252971464899084662642777551752352314493162156336394341217971144411404661871900024260884187701465103543922439406131373187307387095268471725514320626097627362444864459994086563228779940533402631952551217585984294909768045351139448899267222745045113707493894320407803873112510033769082215781158403529078653536751035508789906296446793387972888866772425140046957664327710643950479935780396378288918409240534104600505216525198033871749582798416374822779848576201133891730488481116203716261363958382465555619650313216298893306863721529415496920232971471619982312695151408732545281231244561477988895705142021219662372955411546604961458453489619123497416653542908138702607233560328476173988649396036969429587889159721973052472930453137544405229962958589375972450703242296521084587976610286835389624035634180950190937797682797699083135968003632295975976366902310303046137867822277308542852652544622212227806899953728567529084816218775718702524078478597206800560986919919205049983553044304328514497078876848613278512205185707487397467275209088521847351712082852650412252446609157191056483390187049212115801944358420812454239001990770787907354981590541430030060164235837759552257926638596513354782731434382975843500722924229155485730457095158788699205249211692777376336019756915764924321436833830729052457433693638487515851782900206612527554406613905452923809930735398221496637852251465592223943711586170073725720061629238701054676664710021445042240082235028690399318956450605544133215290966796520196081204644691677509604562680397268309118287182447250528695379891800070810686702452758846046724326224191928907323668777326679072211418676803219799743386346244427508523187664751871144453095007675299657265481306987962760478547469687989603948209731005211408289158647654155667553116533998988592720148712436462636830413820651678432928580735832146964349660459773905003230315941676131994467965807823085810820432577649418208362308071517451497306003344658662777984121010000080010738132487715214383612482827695557512513342871259229768577115025551239673607252227924744992004824579107208045770373958143739388780334369875875544148053178263189076515925662409178145643283688517773660044787523997516443818197063102769741140931888924566481540475088229963342998837121101562434201824563730528789903682352791791079719908415736299639350177957202206028253997229289055085047920618678683575202594505796205690374664109763073508811774127356734755791470737280644730611839530601264896408655575191410083883554762268924192274311845982619095995803111733871184327430431430542201495106910138958160895466285781858897501844730950740880298061707168120767828142973162723659855816476014781215497919504656670232340452964237668937540278994853292801470750316891551310512489893809501246869288226671077686326217522962651539711705487824992095395395809675163941369588707514840551914671373285038514073876147251333331334864397341809865126660974856603005756624126883437639661565252328785601516548813269430905623225204470972623735207281291525184353939356215731590299458108656944355345291555547279475155767022843284569227342119095502907304218083361010837035279356170490660431615969136323705018296698617281520507763584328967437535260653896736507381941610807807390153938191269132173805185848852023144368650097049076256513782842215298494174412081096705093967908490259116553923422493184384130269800670987892360376623817291106160847529179119760375158353822170031335170831429445192750408955385546020481769201006948264192681621323806565843740593433038189024552026842011918116803123710944470098226319986533733596229989938287141522731740784400481561612739313836892142653318896968274309853055480691987431743225382466285475473346724813071614054166014730899634495231371083769730262203371079845156212630164538190791771827140417487047398327950606950612804223169497565484615136788543658516337795834986128782989622965540588286605206968801603812661444656725613385541361312226795202638126918994254408492938547621280198026475783054900110970959225618124661107123992850007767774020986078730392820367538856601564191803251174358090354913467682506489217603938006437606353704645198661398501888574252094999636813540787452595427839496374137965493007577046338821857840243308402817447975157045370488031994549831609756931684704961607443445847797746956962974354356258928785688135426874006576756491720826795648730580699140249023435593235261153247676555134396155784491869998044676901980742205232823769229581578710146536930272457293575818021981782148132640891249357071759340928403438495575247874441395422984681679416543470605848941590800147994904062974433863551324659281284628442116908601760814265986316717992307803756840429644005733917671903340765760951966773301069058132210138210382721297371788592037505635282783617227926421900346210959790045590485632676973850843387826927854606534579015550158431156614917224846147086287246728201225954099904876208873862723297509336299115140653919091049218834757180183812270108047328323066198730170086956656988353533178552612724516917981909094982080224439165259675707035616973069755933633045954386559985203864778961242166535060170880324814859795349307075715285953243009118797706144954376302389562106897378687168797153350039210147452731788415805447705879799798616077965263654530022578488700493125647625723866719079122440632667501572445172465153961859433860523156316829725641073981105301389183784361041025332993758538295507311313893702220320205304381570856534333249087880151313212970970256483165817780763224836447795867124238226131188511818919319756783337138067854066279872672665820347845468981186571284925188111864670785282084334276030959207786643183151033985692688665418323314950108850671485697304071868624074019380764903070207988039415102053188586529613312255853481472256689782914920962581159219840301275566730558882768509879416727481541275815416270588209682564379061494908400814376354493723592657778399606297630544459825837939756799244374721894027345796216378255244789635528315987084406913144943836701348059722575106326214061067204081330698648166863556135653806078240988526793880031450326843766260901788406292035239860799598399800787761257238582117406505016918175911214788576095622566855671087745432887715142491611564171420305645310615540125891492788666112929778749426153473958360397134704512601915598412396744096692440954899055055015404102914085844427738132632184947440053936714146780669154916867810383164656041958803093978321193412180029815492085830561878690140291457095281870726956189538124763058288893517407221447012702046324329861472382681576793606408865313858422942162600796208558638234089875056970861828171092788041167945752939191010839645456061305968570025066799530784011994043285424111299603923229221719700073264263653499287419425535169256257999267755196973870827342122114350414901245584487384987921798991644941057141070999262986165175819109235731122545275688113508550938657787942707797642751729319985185761505853189993050145858506782746561129209399332131510962612501928874307773984752478384648240897917718359284172699011429555300003775167134730727911428958597536705543432327099525866850637371979252244091988131018263750375530855002400643836374834892508604944678868182656102166610829869948373841807790868841215944974614144794058002592920627247921669144031914212332596635536797309247669232364199776196466432452629961545168294933208145207286864086892414527017985589680867613677590195569135795726942074449578380568872995624196054968835749307363960651218818214571588815742117785495330936582751721123285912306309156156701925516196134395544230574187040473964244033389836773344093105189458716723370764576481068129678113626327344147999331398690449129919952424582016411641607928738911415207315411054953880568623767839734794488438158889422165546163063148324826298656018189220707535826207223607122345277859445248510286137484180995779062492644596489726373276537771270452606152519566185608045281768684224084359649374193858239508320160670311574142306801474988069723188370759017145038389802919596792361928486349305659886543798445719172127924189595906930515373177083191498216223104793144002516828486101133803109399503492169568417743837244679546644122647600595733559247149805075059064942087710868501182678408061253140914829083643101195449725771601390880727105451332576011887147134589659660584419514008689184684485897533042059843134886485020721879564062364127684466057911684996833633568652221901326781178828800035554262811439627143615655557012756780372841726451031804449754017695208101404797030095107034242604780629678690694002822482169005877179484284152136494018053609438646022755168205372462295794014895491379729811109817232035401683157090121085607123383727444673924037397076935020929376415815778720215455375719869960331202346857212135363858956703199692507601687170000956345744089479614836614171328515218250720177093419004559439828175886035033003379608118509825254031299345631826928026427029787868831707364590891478150390356748197920137247520582933213885846057109073932064535979518419750081711963599059255330302722813175613266701666214043938572057750265815022001731468801758442506025301082170882341526080637157807167014491973532496391698287789708319795843361963384682324758528105462045763887194651132176624986673421088902198755278210660494463311305409601456953316029419763589054294553257902236186776805380819716729387532152040348512243331465357683587917696294835049473599745270659343740842987098738776168445404271194960021729774171094762822995121960162265381954843401495120976646449305891139746773235890364787394633592671972084504311170217768342111464059234301239043764535548597401340968984587313700708478193465006377730754768632406422912886929318031772731661166963871250740199996018417342220901344592309418579352463966136523342682117924924032959928183715020040242206888963345010689784472247291197747338670854146856607333526518266411934591855142928127222951979074544639308147626206170766924541613988098313419028300681060047832080995772229016252100145220795594034954441864825782679976257387079567293259977184647625244572772585695171774765264363994412660914389179294975311747830349766278830582153010925628274774355492358484083164025391244993123364013710104448660622869506374050882216329060734796644667691740341360551192425234577440478350082783458795832441813036430285289438036814311777148566012052132308370230095468890489793969236085681682852913789934353427412501726437177668977931107290127431294485157571306895151930020495703772136300543894433866588969634921162441189209217501261458449045050664863136707291851194054615920651891119783608277157501708667679229115653200870799298074919909950473316046851473884309914695818553907474437422274700714252192445020870865030881235984004608709028488567745093348103712713131529965079252207152506070011119514723732506832906293821076032546690747853747100844113916808820620210270447691735158105689846277664638193867787845965521080614194068310999979384371684721982901557371252849193304607967701732202183725747367685729989325673597479091941206123616609843760489209767777402042595401821090857532272999538949142162627641407072003494216163810545310620012185444584508886155468270233236066475535547630563328456785180153843144778132421385528164990397158302395232069754325277965827753960281836011216341496738556092793766359931396615408656840652497520699173582379376072929242193931142621859475441064651768309605348614454368599872705789472514231085367901033703761394366241858222691555056966939413979954745266561457652940193551090632996850896206342729329086130755513684744622644510660547622783384512851683920201082579849125210744210435322179997154024645492076221032721848367463107657974488051996458705595076564520693190752642941491372427347274779583021741272659564468669301199184883243287718038872061262472343119011547830929839866952286665520685475164981087614713463177220580690200253101807398435167967868150916193043129080481011341610784495023448729030804376943941275468400000529796199320543750964073936454196665047004222954933773870437948281501518040729282201314267719782461562918805549264236042381585706174631834031681587744533781520483010980143082362976159451159860948600070468349669635766124032040161591771283756975462108265078287368726231452809548165321932080793119727625322688096947591240156645538335728005299742528748685023609775363799585817637658064547172809125962441506001170562851275352058924781758031604090034510267367201904488870436281708069637659832606800911559759422543158705727540551678016735906966470075791176632650396002917205732704332106413279911658237620510403146994396231596278030826331809074522579525204154945374061453135920327136063871798804396347774086670716377847308386522707898702896217486485757120507891873514905514678739507630790615357518050094942002841567229188006181182012556567079836988920567004000904830429341843641143135487938499368911791914694141087410261777860947973516854870864071065433323451647563659119313802791146701502024820832928244597438417618326605109310916674978816840720097327904736381549916366571116484173209845577217872441799214665405011326489212965219498564720410664192116559797420918577899491587118427098841598777055426349040851697851625090580478899084634535011579734028075946539354224381580501685064801287576119867794539196837858583086682426870189144016954134963003985008611878559895603427369827405678008171328074118647013411448877803949435462519422402435518258594129023157242077639259967545888612518378105627333295000730280644036013395232339498186000764533552110436694383636173823608516151145758592282154205895357843533265858497908914527549132603297639295439307481126734011573209123064549009267502330217398097165112755413080326589632030552385148597512188501145823384065627859164844342563111965014077532203860108692338588528482194052415636235686495890505385854021247460746133339376540541611224417591681796909480955007723043992478059929217350077050414068862328768220287947633692069199147552146803398283869652760948576440928330005657087197040275320302100877252528951023449149967963932273379617209613760210073629137084790009830895630562979415411415756208228696756552636393368795552764915444620828471504823494954496254787483991976790814900246025987739993902321614729902226312360887378451790529340882890617300771687159518632041756952109069249842637009561091514808020405356619514734260663462351680817446849777718690004865026924766194883567387768399357766974124976289218914704231611909133582081271775569644751260985969853939625880719745203810912829827189545695389415858794941049165747864312590038628755534228208778388565761940742624683000240589054889284166696029923839994358148985725912963811347629408368133275621157590865942988463129433727964990915730196603362117499111417360509757006084100882173469828617904359457793083942478774814063785518584923659313477522693912480403022340827686059675581286229444414131423510407030667400266501449841886588055242490666849817826923356439544674357877147469018511255406334252085015543742296632821664800733449103872936820612582438817266908679588443319732676892458438983164010612974568036381704135496346631958038219159271751248309541705880441554899600984557131787480831105727358352504369730249834982325679625646485551930484805622705843508230177772220388851107276825999827369743281603617724822938550924763622731291883116848755353378526929967845645743142540561824221732290147363796032638373871026046029152490579221779118522290049379963398706523432847718356216850844807107501545811793683493145159587482721147751631648449230098515107903037125742927886577801532321575418489581466315934262227633084148164439626017546005354622998701222670965486061046783102286176894894681907874890921447553568387066740293387378310047898664537670316403185116787858113688743354455079965420853651199764696927576205029008890011864118655994042028257971170966639625553502878867191243782215174806606911030652238327616345017094073888287550947671180947832616159950565352141534103259221731911879850779509728507196853103480586104353033381417857747695805949138535590021488002900416870591468767031578356180132514237470678136808740032937636194581194901417456363065760653839157610193008629447998888534375766478332851280953438218908621093057897253544911723186250539709949250429649002692750645039416620306535411089968865695964468645950772734772833029812677804384062251305816823906991317148195863332563365928605566763712780898146404337481453884604060600369790988990457424530579823087829949812772392748277720220655112166365885675002988795056718542764140319246515337806035069562940286882533613204049719804471555442811388784927289954430983942580237110567390289452202607087281288622121864132459889975159554967403615852192216774091497479018548173264117498462229885211760203406677789883437538948357753375098613584709514813724232882523983989909954230248288497959448512496669129774887977068018816526557281708750834190332300642350708074664811808197579059499681992911384414166698901617155689816700467492189178973801806187414859343041877958394462454699140733152461029922227490747192039692110068353319802891563876829494134424473787787380999314488221767526647939126734043047921402502510327649276161785215414993643668660316094393359920439350804088666589826214752758917907472039968992444614548180688597543638228013486942724317264270720412780826115218178331520813020846769267874277149051184218983208860820505551504192150295062930417495695639442379180101642708231251961026138101566437402274940441910730701214349864635246901342224945728163146543263862822129372733515958548414376759554554184596127453357419754329678655533756828052287813978273663440652964186822518525139443922866367164626388907084630262762839152496738123995944234015852940142227428865025199181384649733916117908113430579694655353305894105485428528641536075210778053335876840841588139054111054583221350070930747342937568261498947287687709353578427967129034915066151844809520365338212604685306546711724290788633347006120753593057684258486947247916921144389745473589311692997862898953549988216345110441600831535373128362297912934568327301880584574010060802463825500545282979336622075687773055125606233343669362893217697544591258527674713400083320600262304184210763945148911475382944596636124281157582135744923802312119328250302360910327536201210544612916280478553666873886481512970561199993842318200853937190123170864790458780279693487137804302280909767203185282300726005899382909833154455107789653024652964521615501648891316939955067981695708516146454116840339071681959323964850690396741107540840872608064188306365282496737819843246339725836386628897703414163939589985857176449201061668390559022904656541151019178976878228715778367147405581294160505540285544047036282518726991583026808919207406219489027597619572349233765924147483048545486262020722737749021096166023610418476077961963591465174942490182848687016316785742811771196214093523491645494991078507096482644813431029675840098746486815552849653796274493590029047185994583018901831548768058152592837418457934613178442255470440626980903685349486257327007744543359569877152324356502897528920272836693294763060389355726311151781658367390245123824018572285338329348781280497299119108842032997335988634651143259587289549839826571622817362265522521901772736552965415456296492719485085032087382002574120742622281075607904545646685089518949038659683596407011046045691412401510214302092549863105120184659610686390159699694382834029711731273150363125478194642300509750993197557786067391016159424809109860557222292791038476414459858474217312921406602933910360738018589406814837767135036843836021112167408674114652232261446639831504432192889419148259192650909990897028320168410476079858408595085436015177584153619483801726914875315283428244115986137815226625016824935810073949834839453957398388156936776324178463062756542220524693496187766107887129515684040147333077196454615046811452496622951576763535917208612192625217529634089310155414677920012699610350661234101011050246208862968126017966933482611394655700938967357801307415667245132562859704162752373067957924980887928409745347222855124560674547200100504024747810199578014859018062415944922021957246902465402740381678957851835073226998892765629437365455018271877072898532428428318305215064951243520835486680926128803571064745455038838781975372635981913627045215535707858972264823170362464581896889538934675403706239900619065614565510827659907872159004003694210449101151369239598260227873504691908451819964389459033204978836689566267817859722700118721176973654641987170120001519039521537016683824548163118992992449726432291047001573681612356416596742354334230092347514593359801722091965331407760939406242887912223586760660430881383888681714732234006810681022633945785199207627847351393397492166532361900524876559695545092380889933422083811086573440249701230460257080165990726683581808801000529672862242832524044922504871811332732027392036713285275749102172302917872063260617389547796693838167829544205434813457755498387954228872896690269970052654199993025769466747436339614648753447663843960590636128250063870906036711649485108373919724949828703106297997038371521366561426937222708936489608613230554293914722846374850327165044157199233011573220472096026589152973101936701619818778378195306320945013290920031334178662552127224300428711434726511710173205523353375222711321234959357346438095981270466237660235038524727732006746232590360203714846490153808569521084505259245400053692019202481122182227978150626687495891360187741600643696162063996243123131366015543097349105420777098868075971708491985728358621776542651195199232452588376822051314575533669171580714424484802084428728108080466940487415577496247679048466125204382032635886588471180921172885984083673370823266631008110232737494555450110356442716769961619868812429477193849169883313386330497551981353639097854986301747110122024091454486465342781104825119309898579365427874382330329713652837969864385917146135240777054411457258036596578386781861981403941181391418734449283194506182356915750422525183981915240498958105401984144151736632457762066348882364947009866266417666288320547829563773492961636508052030812164532655289614407934385516243731544576141942646294464768976903442137914779778837074938827916004067013707249388160037384211498667613912955538699746779510371341111704794698326815457322476590753398290274672181908328782472623931842514318043897302500054701255381402981314887748996472291101955828663444278830748213500867942637830709208422254565285040839472208563779259088923889676383511186724203085067533654400991725223790084267001541234100947272996563252218416183152095005663640547183328288783863849177442075329506272011605707559623302035845084553408345836032370962880634173896287596252233526348483802771175964828567906675484993869338729507419408212576810079282784532397677411493285341746412348864893490997050058204372876087372596100124801897705596195910439968214603470814078500571768544469773211062308208773653678362570042086553508806843509520673552265578011651151738946802905889433803644833472987460299425445308203722758865339722152229209004728741577604325114695238820989910090189143438827345459501482785088755699690053674475414371672410605315508981107999612056787706756446170940286516073579159954301550237606387405448356845860268507573419828390672774150866859428406405592212135471072570118972373883067616308323540283866969045005009073719041890436698681763040434825739507584447767615587352726105812714780794861453511516117070752025435684627798005053391630577325091866320550139772583715336452819984522520592401394424799388069430118128738231529634715087736854275295343927873659497710721828303033745123496879447261369980242263267928272932335979813929256006542369043399827532057683523818172820421796373191665669099333223118416911984975449191613021159300698648759226973943357501771668902389809480929594615911077775742120713384766200767298668890714749271344528441889089132546331496761833457269603408739135239900815573138532098876708942021374232286408663429419083393890638848575786039448452256418003329492610323634425231176654951093987110793570492761329390601810959186910132805711455040142105093271765866823547120718062298928549658731505956179473193097798947722562272968152215307737928923570983348131189276122973497027460867353699449829875135837652353111918343702459206883392019105157820823299373380902945334670511039332513460277163005759699090211670344839403415184203762888965803873344157980071431193629658403124074161145564990695876609272008586330784213716024659147592194893729539083484864259168213859446906525029328178769129874682064817478672783692681984396550820100868276851175575757597366242974613096710596172610103879493022218712092850947044557646933596011163285350049967354158112080122325471302548504506827975597121429309008182651942218876712304754277296017101678933602462235160174396614952168569256757040306889835720501737120619099759257786404860207716427480936603546052124222350841712316925809761458509364634873274487170359345663433633539996764737910133972319100905499688736999077517081356498318908742549061716019361055805915599426128653494047309112444584601515864289981132001522823324455636249342826484806450687206829068973037146506831035591590183219285567340296310297124170954058118518643757178652748339131611538504864738875397496722035778581213592363899037234353382502860164503191852943978168098028141121200360917052442721127487462872987890163546018896969777269402983471239222845550574517969839721029114773949941920213239090049016953792792693619247383694024659515796709016582257466800912456795455078907611917970072507081736791391043095717778454031517236815138782447705293187910261326599912676275834190495070433230721601471909612967009325492832024869343035312102230832355875273841933405516192298242016864132464098565623524915885866507546008943411082685406801562287892072047206643252839737332968227794525499110678154243954989985342440436247230728287273697213499614246780607780749834965329227273767170033257660644215638423658621465259903109607204259093642024447924858452283348683653394343636562695570055861880021415119584029813990554213618328633126954053907073584708542664497460802443480034979847387360259301443937530204040217766433362566800122535073391099605101631858179716862807778885940554490272916604720057028135979168017822789782379910525436553099363072885597214482038093312496208802779365287138965108584197394421440797123123531454469882727139552362588199757947247574211544124857819345991642336140487972127318906745473108001372011243516602103386465943282359218808214496740798155549559423214991619357060351288418761636268502877309341161439893508507378232791521874432465459036504235887507902619034839360416549061202604082382379512651331730140257686541321170297062317995789899048036342836296100617765495345191859557664236738598713677835951047672441458831539756731804627717096674173047884181739057906039209474742516909728818372705612720093408606888477352796095823697548475830146430368471507353313378288993131836004507016263335751550642551224487744893655001449751783073047094835741441437834785308431480438319209836338816626178752356617328184701544629920412202159587908481147707408947707227429106774232134940119672953892519750879895570068224699656414687578196979353118210613560595371138264328659413799585836814654181561603386159280965296388317940159272862093085199607861570008957462366962157508105719907194391582302468906338185447778756429098392038822599239536846146343450327293531265822447666945646981679885882203125052496985343233258008144525379094198720739610013605470109132526998594282342999890068941063286406240908955735730746700893596316134140617582937024411875398105036881537522424713721145680988889541429293495375105943383671402135348700266924172912929638025993938853859741803819523925741171722151824304100363673133927200351823062983819093177914831853344155483690449855675488743905172977524510256554740236208048499748291388056215297899776391537310753346375907382967909666736104265121947239644493689158763985939737696981681565278083967966877472608372024728078258873034367824380944065371155372565878620559281354279153825835096351121328969505523381796656307142258049890290484581181272825243246488364377131051620594998602763150239953596746359987297932686494511924210572276444094826479206069703600070745510345794399083990076690075149551878135673907669007363571852085231782006992800090646031770932041462791903022127304627974760567278042599836634461509714959599876140472998399877405598387730280481804425697376830066194348048503876381125079489428902086175073736517394475962318302996126948740051473479320799586137301563598500916340178482723554078230866807734410034338833642209249432793632498144061250882428264014404600529911178758746855904732565020833295300141855481097326661491092060783967520361652947798784707866294977404316388197538530213011633081739017558544138352053395721203503179400987109759551508525445528646437371190906797142075628938523911229280111021616937800418975651861851223846039641234406668995051062982852566430288244312665964231943358309874722145261359345370150654849461033687465498708717990480938311491685358316145102365140029471125830986874250814000734245128501463265305304726780641905330770314840874368497138277843933995942120297765732760066199904510915989089229848436404829757800085678396594441587188419034745527311589132001414522023241716696388408102405862323315299124213076843043838654218335788858854365408182002990542031800139087440056409474915663181079960416057958623484795506160667855259132486072335780144747638451011851256990792973684335449824700544874180473756859755846928809043783274681339788666987846497407600050954345607258941674438546966134968715866002604109731954776415641422827571096300970056357497993672714245494493953682864524996592778707092709759943840941723792473707281720364513187027730921129047156794503208759911418908697631302057458164029305043194746711046715279190233559570580094289724198896838622783579661434871375603527017700842399237509848606028187358909505443540941923936078582504304103927187081191285389703799543712082950716123118815873326089386814984458375862724109648104582119104165645870471878891332113909705937508830929201447958744292878359443406295193375349289019576215657428862598179177423062957815370923325635520755848825060164984210230725934124184902142196807763256112822193508717825066964635062033041594272375523485559736179097255233790664342304784908498831956341304546802093923174994250257671018744949800842264588626547025825093855382031848581631711454803188662124811155067684067178745687887020347269273051506237317578893557754632033266885892268465950289236143669007098601462004390930443592007625193087285097081372106065137891896174729208670131337418014104439506780610950078748425276203882536888300322954148985403792210063130223465705055420979917246509346205656990522390025221962763013244645818335721330696377075067065587465035678480119469806796252635753665828191784935672932662146514717917477797082116921560798402173129796517647129617597307617166672572749958429162388156718998873450177521928748966291721748320772424179694585651434305091215065449052268021291968076297372222391928388387136348635870941931109790320539454742300398580364920923945033391921609786754392966538408053681461938913838570717375305528178355859075521804011688672001135793253435061431776371145384722842444902601901695072118029620507258208131715392598620083823611989818557187717649702672726631850450563970418622599766989694266894514314996731165715349001772677157011343370947839300996918533383400440500349307456837282280969613796947077039218743154300023763193388663282415552180770303193943892945971960163663921853285885223899971644092500351996155082326170553491420565633185872933695228296182339396496553042252349577989021899217219211668598452390856412204180113613285857404463592263018337655155495582972199826170813246273875312486652926813362073943002990016791588395080205026541551644189280167709563936927247581647146383570700512924531224950453013020133431396934374159509574650411284565995546108769730863560100088532105019221055229042343886889918833215059444098923082977100134922610179528200800306542822492940455177803593119821023023158302469479703331498584717971150658177553613184633856180717033031451928571294622786778882583528981182094491204838404539737803285304326882769133441035955034216787785693223868380915910734890359113461933366637606536789328370968495126155035784601957446559489441450638730006351153379198485885601150069531948340081799400857816059023674386591621388507990737700175325714478892053178490238434280671141761415682205176758173709104893723359466308106933666404800104560305953798922498318458951061451511208479631479584324785550960650700834069302666136105449890355981314109901913327075786626814617820287589190079707492878182242127080534486801646932319679832570727349853918655439344360092309740058636498969921833915512312226660281653710866657916511402315841977038314943267212430644956640894984187938158405045113605038596214402504727597002323704500993837649818917727389465998926965940868517011712584866969043506704853940491773245292499819509382133757467245953409241535420999820130635343996613734657033547676665506649181748329915420803581224674448382556156834645887128467918639210348902382466982597305927182410271571225877964879071066077755666905465407305614040451653635120050703586393939615999980573562685161478344739209805918712238279002701780478808523445563098943387458959032757847599450622176141201140274167730836851732687507766157410151637177538079519500653258880489019258613270879991794683106821422421920909538447201477769550775760105029653560887510858778059157637802431965268188112474255683164500825201794110114602721558631611946218203459558662772788574617351896602852603390294569789291778819739466391417494486764324683685312881188398391862411087983086309585089589183363571129834664984569634258412658028813324644320791189010413782327117980209774197445693162945944577916043698612860516773932372247131051724786734613420610013471070841240109792362934128589100186941353571091787777331758025555951982893732714930566424239425043495593134551602724084761453697036044412524303027853418279423690141522757211145921782093972521561560296883083554281453577413617109854478668369488524248268480732438680866936545931995498819758875545284451749646076983136817465550362012082654860363762671188365080832430261823217607535461312555473330351091002932509911500466558325357402530511125091619680368393042904697938067099627671149971017366194256818048290833289962070425926988802687372326422794122001061147636659688299007021257122163519318921986008765386059517114521725219859157289672259305915168426965246104649944782455743324695355104031382438605221083710038300630492248170162278904828183985461564421308557519614374254525649217480724688922421615979673118189302849034143691467414219794697098021255717740728722590315049457703169577593471718611489868005627572818287380448050557155371340762234177548984865432750205024590016512504905193597199233310279865445506285517482161825778534669819598712443008573340335806984100179949638613408059575661859803551921044138821215697016952007786388117371889083608581411650121966467080027548729619231689891816010126401063770120549206132355636719478772844970054304625576156423724172046481217860343665757944064698519104137558880433354802683232590297335036651765669889011159201097507253095852282736926750892053993072494488070437182112980731393119620238824023152382289721627625117207134821498894475961733560768323384796571583695992495383633131101557572671429878410121640045114087838087534802184871765762561633983715235706160858980172871384769647980229904914786851098302450270040806493396970069854665078814921047290337130870984078415413372172570122282952320854474740934550885727140740176058469506894306381395516266443094712962071945542082642123193450359946872782669082424664707722876618462588138059730823175300203517491298614822706425126877879610651118611018491761084350758457206993115158763004841116221001303966763739776911103999929743610155258124493334606978513895507193234241912127204023702019122797121490744625561545467902375479792337242735662691413695197087246530287861408460414679397684144078822844999039600726737465427605197411623007771268923762857321822192269211623909122675777440149911458434683018715649931696156695345577018785500269385899317052038421603252566359480636754358732616737696057134778090433740601350973685190763198130207060268281793380123229281531881599242678610390907044907268665188444967630943001425105440412202101287290148341486926476163914937248065534677561557662583272292188160758213035808225804024291964422864794010400088701387614291234563468154035833104352643499140211245023397798975370956628412379417232855378544004101709700499752150660004575173546004174083104600703736803903136668711983089720860638459744888654554005694799905378812736282644955608912618619180541171656260329305676834775481867350285680247300660246351550425596772604360617966067499538790102792331392561269869656528231952932084784151816901275182112269539285588614243447512624436549301755102983440100792674040078640918350630034776326216303813168750216464498550147938914458038227017805692219854373191384888804837810821341863153465763935517303460910355529244422599881444252216275280927057428141222740974544573452373490802250419902399055066499719516304905464658419191793938513080230044853226369849138175886063337411755335623469285462431386670586742887815795536491829378010232886024794523823465906498104926154822504214103093981381580383022676767945818608650224901578181484114392938710324499289134058232611478427208093633404417237246770833030003150047329264509515827870264468578788273690354730825026958945863852816057609273564365087222626887119996545534374734753334806730598298339165312609054265611026844007809670612764161176031704221847032547945326982557503910497508442986017845522785314880383583598772543943553844666588900545306009563384109372758528900335185688192140916603161554006965275582390291643178265872618364717400316657923002361746593013317861898489689828499407582428718310350846719529820171449111023433269158809154580215460810439852409392301238005011236619880564903954734460810449444651905706150225827982694434144326195394601096339711652132345875413061673030301273316176323756536994320528816546883557317903545110978261830104135329914439632518822204501263127502776527476656164806198795921952461092266709833691223530861491188659454262620808383501320698737419258073837771553671704450221336610542575402252615926273424619840438311772057202281963637592133321868443954623130751769894686186823842985949718400090414407347783668930942185752514961072394790608464936682948162963421162231638020097963702564556370050375694965652338222087278567252657987482671989387395879006958218399042692255378856102766956477489156775829328217606269366682224322602523549918849062838765589540560248628266610895706194301847157016314549365405680018086678594454921612060180024675548998591148627220435554115957288532567740518411513585795055649429893027200350317896913353254876558045673805190936455356817301005583344331136075753913046971588021978842490242836269526689970877761848315770195480752444328331546869526850208369554762283218387038879159620104797488162778473863097697731276242287461319193328461879088945449138804624901182805702834339691555265029617000998153972180415103484785798107969055254391936368710924619064729671937268507888497625499025777125522273114139370945415642422242915565863093396383218534036439708920256497534110981091906792279987227675905984916819607536575155562438528793947539893973264146493120458838646641613294751860693194852893256095697456429370682745958130866372500545579254908038172070305727071480572303251847673422782092257955466485291372593817255205761509583428364175319604608328925436361170815384771865925704424885141739517161556015993930516292250385201300419564351299864459872373174387702663351849709707709622056330912585988758955514772478060230399708246108708647470797853059951801033785746562170190580959685107463936515731065555722836380948382733014436074139612144585525744645653676669491809501934599269051791347325902578445838165324635054809110387679121487463121242245241531555273321738206078184916839498143095598580486856984570343870413878020359010664830211210013225453629430408640356568793482029187609784130259639709326045225859589155501532489743378663307326475132164305151000066035338799015960487278597961650835267984569332751172431058223475430789132969655159442298740401840549727415331126771455446269726758199795263964417926185222282982745925337393105084495015487647061010747388318286443113891933841811613995656013682794200812796248149597664117877508620523988676357844387368196303479307890614862834870969485605660073519847827391284461015180049599599386133605578688181945455767884140260297510430197004200370337440897119341837613786579522723983425280943226717240090668958762225733894127300154500540898260591189643038858244704672264439611989477838387200377361839894904802557878762389442629568377543209138050176876098380399280026529822040340038436169603671430589043885067342161010544305950592075958571412645040403806222520723956924651738563898963739593595141472997986754255830158008314330521749810288894692850688314220988378015573025550452050137085335300034139504678471463100843178341448869788966560405085912208783804371247138535567554387157250562576086241072633626213904039298922248882752130055323198637169286128336151036527381649311679309224253771655468686604882985941710623970633486849764938632921037450656801448531897544566775530143855867410070712406082845608750495743521733189160819400037697271893007140242429505426277529627317429870980856048054333693433502952485139148433963840975214955325891439490281482559034279346909113011721162984472111267255175710111457004567551815574054122387217639403721633201360815975601442472453341272824491398001247244376952153900836135327803150456973000275804424235508935176239785663040141682969939365256255402091663705237502224383477052580978603970992812052595020198844357648497774346931116071061638975094026109399220920824598072291945515955335977334521770178219563354519706783690938714803440952837742751841766254360293893955515656358738870556226811077961500440346768837453157498220470348192882032739580282515462686440366069224142602963657848461437953990812729042034859019311741092981784061762825935709498567315559127023083183794007494594505530610072345022172274299581678139530214530754060722927438469866271291114758048088042221378779408733564007775777539875488567270534419513285180315746762446924680297827506785442950097909503436290278437646356589862086633941095265071186063699795361650952692633915133718780053926341593176968701931962492906640694179601144342580703159632086138820346377800533011701213603202392445540393356648928385206944332946934916486547061327198431932636449823554021538281952141844614776959995043587914162845984804440603505001306225479539521714828416936234447554190828356337593550667512127266041819048659588934122797616024268191270744523007792517653059011591800735593490613667579298895061571198400774157070992019580148625350703476504450656925749798482763913598980232859758522086508405318548628357520745781467937515964711311915513178603716486535171721742173155409265184673397886461691040825000162029332087259720932624461027767558055349126001375000956664678089073128956620378342878703494740183390215453409230508062304235914582964397373961486838896366098246292667849860702185444550615327163889166418071154346510527928250264368683877053740828646628781714725162996628244182923421156312425374122162454838178800352519726466974493162808472546495334334484104970698442883863190806240598795985140899778053891590355265668444859456872676631815908704411838486356905147217825933930476479703032247342390816377260464491397251682917398212551132707417004017528895395014918931305898819030938898568415044542518709421466397637879874969941418676497448449530289838019255207046617818713970515028252532147056160551698002860776501619017510202750807684199367947765764278111266352957623643101940583718587420161549747396477323618131246872073562734675290911977809099614426203175595452969232117701763761717197958120766207820018625139727951403858921016568461015240381468456073307200812413106544061859326361245660179718791305548246392866506285153011848556816452655134459875503706558479358497686980403414229736854586484752813217520106344223815118369108109138494736933574409216267113922349839368560328381199882371706410289069936825793557741904615845904720750663179769710880461429193210083853291809486699945116087941274208838024451778139497440985426907909082011993257275448050536979609893992336665462455880086481024815918974168385012244509001096357586346782287685515533933185378146630845938332738586213717381209186833709654598569291559996356455368697639168770390495859344749276944410377753600450316848711241905513796576629173462642864825072556336017870347420289175510731447796838912267715714043657169122781860219084236656611311455238445213947402436237156523449277296562187478237255487966105684378186212819362957901061825649184705648565442929975532058658945833425064855226158548538608659644321225748510400915966736758713286316161016680973684324857695563397603409305174778627039349318925326173104967774029393261396134362985401831691400404634317338389583089278049279123242741720953828034646869074971028485946556411451870712570676498939297462381182275779458910887449052984769396549349783199736334278365763922632966428360159304206844126988026259019966183264184823974229644219842021194331390597827338001384104191110660468236462856919315476107851502325896586176661639544731298714134813760412324504989765254718510341691142595797223222001924745192526984504768293718383626941815681659918242968012590628495337135357465431015852415945031152787791839368452501067014065625776358515479127269251502077548065244327142491244506594511583426768213483602748455439839480692484753027676879243797422987580119875770953668783422462459858590125589733605398160360467790631207290438158795540369124037786998989475654132472820631219507740060573922625886320694689532502941293071185872188427851538526360930605378753432954334479692697106649849849953727061013311045721061926999845126114733222823747194593082185574301904199601540815382092483318683340448455479712445825238796200444267746024385990798364333145941826078653036558969274315684254525579807160104945664620137018415418791026166738047867294787036943001315566985841973415551728869962025006416737320631168031965490838994967826765120686178810269467302980231713702655444534916625679600163479645668899365184369791976119548699029170599192311329105583914856510022516284102140389485644039164229942486480840970861265557074184778879311423055022285924499055578989642490874888798105841984546806119437155618028005323092330054122559366340637168053262302289912233889766961064649428960682970856351984219629882326888873087929512041518525513170947803973013272652611103621978867424562978158500942720706508176410712428595445134929611841608161589704822470027577200928136269183361679395375779206049936263652386115108799334114469150534218533526305548274631645836203392607953638264893541252865116018951368485158289376757921602477357236853913759574564188226924319462287552050753870140718799432339114029030773632427212092152762454160680421632984419142970573840588746759421848775906361437964375916160698704128875106862645761947300203228494241183380298853317036405168263700906810236060992694966412043403542325948343795828483538361825228785305144344900679104759179390327837586174685844841804473371475470506078368900298696449566535500365709060617023219676124917340338106661449225142129049254061581415718701788125125254655913945933991930367665402394172794691083412584661807989495389462717771184460870328965375774311238857546818736736699197144116627626022631111936513193297285156307011273931567552974273325949078227888351010082448791419969536440679084853624347203179611108099917514034972931726454840180706496729576748074683613218276439791886173819115451632584367105281768542287618525533901033681865252013018115014804269327905393644098846315444526793640929257999024203004826657867417134262882189161751668954904273251960700897319558238808134845446551207095413166840217139871158506382581761606224461282348422869077585339057937174241870704693592167489004892260906573010259588537684094906421645786554360125275557259065150229168521809266773812946351395392354472241134218626736722060947010641822313735902021474865287713752947493465591305852616494958742409536265808600749943037342619317983945998617618285539630059818468901112806277457847912722881995621407183746966121283925133729554657669211711060321902401340659314370667698904317343445361461265258136495550608033748767774408956824625573753278707476891150756258348917855420704589805240466958614294752689338369058611174197593055797012192489735980461884897052369983019186499912869396916917164875384985572624773029625038733943344453418314725269998283866994257796999957965300552376394486897016073534949551457370850754767319553245488368774820362073257853671525525664226502859847778779376960505966359624871466893075633751778867808991313455856516539374817233006139179780011992288555883379513565058097346701287040913854737760757410548275465982832103327252233912322418982841117434998091967180265613312491806177706393790961789860941158870823202682428856491702692367563647463056100045911125960568887882299927459104443982647098672722185572495909924176634555235919962307456130375068184141652220356153095828211710839199674760499745430229925060918191692107756024967845214532759596984299000493705533257254405886075338464971086455431976502762150806213550713541405556443846135960720921756311158162537325739505960458595712526071143951072212729953073363786378872493733655405504116493863381087983303469465762918174581169398872269930212487536245143101118731914484618878792665869580915556032236517187521375209485488084664698540196641892912173940653264103967631943596563610560773443464871800569536438978097022132981097113014147553934720685196871171450852727512552962247337352072234055076106630534660823694882989913385811015395412105081480713949316427416334171512342276821955000802336849773169023807674497800837946130152983291719666218712444555858185319845791209603388253003249644014239412711525910547653126058777582491266352595133039830680201765034162768024945523712768211780125678195401810883452270389869985963225506119194556905571369212200559474327699016054654900066256838304234702163230040712162113722982977885585596995581017261757101210545668944211545053620140730592635013401146842812030732290749564672039274699614796229807533303162062327788545559591400750770434699505247605919226258975057436659968525388031745925155314345387916996175617817247015802380706357268871070274763683580668208643963474280952110484482419691329036884966319851992975876368205904888284535831444370091658511843360156674030714731613729552033488860250538560087905635080285107034322277560506861877058304091974294200432301862272101101831083983969025124804206442735806525586249995872114803895350154501232360337978252948676533760104757623545460126150295494263009396050094426667197671253697302121848311627342671128680873536134713767282065839535497711246920952347993324183002202835190951232925527533476395213933887006843509177876944918799198461888449889922168093389403561926414838733893694649289229087168238109175246592410333044425325828242604113902936277702150754166230048031008811250201704694796641888922675194056070498101079372894203956593647359399116135785903236876553448353814726193826578560322532071525295225066195677333539788005738754374178639447271095314949988581111031814817139999487238477493278599416574483169192707167028702863378478420744928753497869006457420497655400771426031604619866834383534805780335887342042224696788493446044277422804853773114083456943672184886042211102787273565892776137279382922296234827213174745583750650701427494329177959573293960665717392854632801882274135930864746405214877601193884097647542739957559072444370208170422683676081114821083212487878589291325622645708411002111588328628416683755929936711017762438167483259645100702367766297592959543536893394369433434552722171659822043691824364547627033702964602930477106050098903489113151350177275957729985725089802914041416194580186847394678949493247703258703612407952359364811632876226317405739074236552898987486885014830365109637831163498044086424528631934712402390113228720859489795046273585151139459821281571248384639027004368574252973371633625314839174514974665405197488617421252817422342114999032317728931947198253196311232590009618951321475910635055483487250458277751064499371059980727591110548492404073571556522257160062386476187594032742184018399634082522985179667101718366766479858114109901123731643380248332931090634144237995495050262628956916722848610696987451522654460253548656723053095810398690586094707808203975145427754286914391126977977771483635547010124072774390743340786210931149171358181784066338647160051332955110316188475084968043533058973033832196954284511179055934402029288908490804876986317437450834503504326184185235501996314919132856375570377211553935265200366635173278635883061066489708217333373547905966166627171099512279096589078597389767695495681861139004764286117517276689531402617695615503528595319666130424582223924592131653844168172807937379850557101500457909827334030538461399627965547460425280881097108012601561873138945582260140450015633304947605034663916733509846694936381971452744902888622032303511579782354203237014105766573870322441258573227009368342971160195047991983449121396094145894202987299343479003449899054461345940447398679071199254286856018304236752570286208458467840026529850120128419335448235761450705393067992549041964375386037307683411453526264416538917327153246257359761329836035817889173150253647820845706048014513095851612439409202795178844690902467826105548554102055174046681944184130407855654473020242938693806749900844134531898909310154763521812202001023012372528851767739546033430429611376090104094799077897208358502985859021155621239494932453249409555136910817210293475042025260800916187501258393853758584294362116986373857964595625751820087771436427982402401949735557884340839949160750731045115647437695180574453454121803698490511908813250100892239738608357073939690242264656456634662204965763836595256671349678738164902586103987303783593705794232805287776054083074347301433408703997099572889229028736406010403626078136155980993430143630609979398450649480615473904038494094945416584092466154662870071051773475521881985201540890538423803457031902681338372469126785483620649953119828835807273273994709558564264201545486643712920469576884641632354328411485707990710749571428842889519638766718461989374399233875804672203127314092823186265224773693153967053609386541807889601631307820348824059849545376770005641629515495636160005477948502536773551061808377970453784270925806771977715088800065831702350123929710826680733866453402629783458235501902588616947873497262136911558373601863846747879279804771439716157009127450219065097399088556806930430826431408655325115382687616792151674683252632722053377554610257869054338415574573464022159650002175515500648309400216831239175788960553477761847950707800115166815435547303156637846737692975357618337859932694049613175242935807584890779962447736450604130355152235654800322846271043801211958970676972640056877591782622184991261011356791354374239031750357292984678309025584352617921295378049775382908260821545234915412830150619625765927168922252446489970307463890814038105225894678186295190403428017922615245805693298287589310621054469291728395432199017455309554118144452076954725756240368120010396732075580521922360696126449099920870717238225421946528151333403662878674924785215174069679334077023102000818083021117018721962378347595717181254881879994865034736431408447634444190097022279320879853346480345501511218888767637414292447220011453505210900311637494017417941304599400695218350258031695849493314947274697037969402643739017967013177609830151759730936658384988151997321618378313020010837925509918831791410815539774784615515819246301905592113598055215973948466802270462450383569926826821793491123715336874709354710306724392070621881688954849392734449474782704101562740517306566978184167853421117325436812671214225461276394600122530701065138229130761097964517366715767242912203234863718986741881991664964525288413252676390466892232894715997962381396026427342779878525854006686829887057902993570631561749060789980388331395760144923944973915406296011965312291832098835856989435035024739734866007829129067535974985130320767076838063738694662665287813015055044185477035528260029324184883146150834738376278512242807775974155986108139371642724308066893952052928213586062331615119178525738224122483104343801444131390709135064536997848295806181461908153250747010332314439372103524396216031233421443858097241681232804274962441356112119685594004515504517646376299863917847226443315919369491476508546628005313619609073071410814573527786995696227464220908616724576706877430326518135886575900998444500106943728068548466050258492390302065540104335798929122160052347562335651250731907859756737477396843837284933323128180157100602105544871835189022351841103933032104688537712576573730604611912937501485074520023629696719040150221793677363895406990624849743362572377734520450601450126870702531885400703100883815189951692143711855222332150231921911823509811820081114075458582866026058538195782488402014812817165164084138501320122841216391227322342615191732333667672399526250287814712640790026616565392580765105478358329011904192876561587636618457794807433325181521244855174534628702901434109678019350846033572529520496861085161467686671579699247600446745489754669340287285656262863301574419989940927123500353522613980987016031240888640898695896865731835916692901739296450259661223387631414830378086700488905950148311726384703358872136681808850683396936501242670103625987759615967384513072475772366468330770494134806898098371170229941393313782262165823982797673232997768348467726519860504946686240212761548396564209761794132262387420668015602077935572405439920566707432373101800492717856262482212801870583247944145766888953474128059156123452693939324804281753371863277423688592447298190062294958225097209684896960218738657497427426899262086212827722674518388365884302049849264434506539774083316644976340181135093988307806541006057822136502235785371379724456641817039479602966585211866867911943496929107784135723997727836460028415869405117994451154814757986575766612950989906626761049169022294670654687711125015017644682047587651192553407747086459796856358167379852707589769107675621532889122958704505870754130288829564525935621251524870115350420009721726877743745075923706147578806228077434236796487882357106595629354444645745673779371798262940480721621209665616591714205729854937702343367459848617532599009214495747374921642906905708809935296583797591696494388307863410769020239340604387349321643797087989516218116900880429780347373668215264738365042920414942832415985668148571098049008299811312904106320619552257345699545228553405440481006359683586066446393028682076453282533789180782978520591303010968339609657706266726267926393724079319400982162846407998562574311685195587192306035254323384484682090355174587541852783237342886488314973688340318077364570003058343280593851976222735095235136178194728596068926892989340575866697685109976841804111844747740996611692460033631910090500530938272568436475397882110995703235729500311330231493515829768088864055216853190089881746456937611404818094629409567063828533215032698937914538489428803642036576186323291370454846631862060334114397052776326969785830648534793455488236798316075067620626767375244573020223474425154910911143070984260138506507713593137362612128809466409938735581384907615144164046524423617288108755995983085117428590938943067473700418412395188900576494090296009629870121426866197259656922166401352638456885301687632926887254218099911925784088200796328202812205795136586428185030126378547853383945381569627547776297042930550171353866291674101447885796891436559816450798314525473809298087655443829224994947394435003454429009080086492244500003801694539131156047184237396895604533773568770566030909718375283335420295351583158009078067357748181437389815117306693229782898059902754835636188581167556898238352978820057254668122809445754123524157060850241915232926386322401807347247363088358638803069755264541273607126259868431086594399605576794076263469127848027850624691538740052715155891174785674628750631332957717501872443599918635381942933501135585136080236807103013210943157638100570695604325417497562944409362324189125266507855282572396097494114129573032622008115313328758311914228921699651362598030541267555360847302243938269204904163344090311356139779243900891573011314834585659943971826181384521133536238912597112566627043129472976545258570783852512670178054888221393796106869964750362129673984435393376476765281886100702607768073449666638802108585527078533162722582965351523296242464267844333233876214234448297436026821686605604043145623379834192699619696950447916626449135763763897361933558423402200141147598931533598487166574802588957087670046681781097705925344386014831470450324447016897290682729778615119348319567810247905203127016841343066722428581723372377156208158002174364767912770249930391302076997779281456648849022332898458636099498639633888880134586488834201334493921848088505313902064270463790519620197056838615178491351638689267118136353023152394342895940342423715868272051656249477809843810424975402556659204568719559747016870884465185290994505576303146452978634459415355768800618060972763249664370466184834382097536705742225704948595761183073145076882906767060447994560164057530783475523417320784856564821829722733016916638535473412886359619403612400605473288436100277645535039778641742241099797315725451676649001602685356755208544476687895048698014566209169569621033111438985726707343221747531733115807203853683674974156078654470877763721151622871142626369727685436950127499239098885560947236996990764419574452559662204382957141209599929261132339807144463004587974159695050456468386877267793329087927867380098718737659910642971598509995538388955518763633661267784510048199861866048593464219882674504546313401481754291329134391213650941254826887836748004737554496907886448475992302880781531041502406314834961763420879510227407599465666419714714684227402127083781742223202808685194385159283421378044761420567734710796298234129208349866703183078432397110343521559848768623342501748353357910526274392378014248721006196323822130458984231513156896322117452189719927407122300426690268606908846907521866105283701137307334281382487201700597784315024659468193504086291202624158637844916317119850739445526823491717062271449935851851908270534438697483189773353227050336104605288349647449698560380148202735509174518656439089377162074354038592204216040603041508476689676494727344110891563791327422948784863302780766516586946957610345273192852218855374718759576686890557981720378979132517993547424521536186373199999628096501112497543102189657357931076517142586302903871883811304395569047689317165635984265682614178153415355574539709356058839527885225751740851416905379398022302596627451610740911517078364267883623651532006498711183236447530097261598830486432846437448097479516139054419632611440787090042040525837698617469558671653434525814754233317948858995626055183954239652881060569182196665861431598300370211059650288286720593095810164274538851150849499829383533167753373215150341745761783276821679532023660796090103386102316213550366293688461672415570529725081503338874400454543995805656313033468562918197801495270870531083261774545916950699439052431832124339472013710440950349366487066590368935071775984385896957491790052378231328861831379085871131462212086467617214547795470213855511493414725299986687698244997931376861805907006679872881797651500162356312811051860236420704780272599781188249602624968326382921726076484677442703451439649670497003402332104323923844972334937530372206953499769489793726057221137736610075106718416085133900742263750094403092227017308970921226466541047817823300477231726322417666976285329779097912261348435930481440075300356948144070365236868646421416022595979662267533853956330364737906554088984187453592082929855999812358065490365547535548918704626021198401881846327723432838071391906868265752677297506103510714751606422190451794282927477498748990625803578891887824496652000426293277159355402581809304768558931932824414940590625370528249280437222377566592597192760970039897245408920528187998493135635414512775675002288088653539851519454694164253189949112411046248566306535882175793120151084609243648078848251993885769668126454881469989712380448648106676991094331991611498313447192204700612068765385486389234278631705235074944820857269700709537644314280352727535230670014132663551837580062632463888871989317137764209734750245314030443114340643772688562311606573901620571534151000298820803449874682900487130800321848928861700170994140545950559646475859511273293821233418936289807803514877878030931550469511764000228116812669606832599908262415566160183012541040045212721678088809728729222420971665117786068356378399952072917707534671562230297800998726695098561828561486308900119350710177654741944494304327642139650713879610051686059431046644199604436167726251235226111664244495190797699701268603450167974149721954262358462582051760045969350666997941402666165025966077951292514896883152026973993379368711597139513907352552267854553219132667443085418546430180231746584770964886342539443398716539415272998866620124512601592775829517696115317051575553903693666680022830160461143448259829238633313341308162481284824375939374528644330674464492445143666473908430540292821535082800996263185887626907968629525435945073034326377273266571562868394658479832786831103487690548509500252597785656645449406833655898084915565992963187160770759805231559011253666749145928092884656610605214755157307486878739442006283966831966922057650352993031449082656342876681634089654792694834920127251432138505852144881564838483487254542293031517944568109321156789363355530787717136349047048459184473467396278378604662316324860131133496565836456953777371640040894273303385782999055762008832120760512100695819726668682900692520058688156856167893053100641728003662408206212286294590852912512904606130751584604387488835142607250034649871801180549690640919124154091707065521874049056671989983560208136973925251150648847184249578105071953450797911612406185901327388527803831719997088905855894365149649269378167603475041840624366756465255444369497241285130879654287013300888583561943270616031075404609006373244575060111387564128111193049587972865444870442726728887869274161091426861603341680458177662380667478310201903862245352971740644857742026974972236808841424744990454118331896022213736363073577109833825395182431862541683438570254502629674824032704024496796444492023501392993862466962149296222334690637280394103918477750712224758280807716481562850540707341617473913730014349993313722940743423747900307192614410682106923687332506740448597473010076656600113467004033906223837696428818983444687202246147164248246060260706298936881818225900911699792340169218153598921702208951088206669703250543740384682412298732398896398256904369398851645376848684179149433393827988398996923161013256312531125370228878638040857322478581536398658218323155098470822255899485054407199690962070850244847406417060770348737054532620778345332183113684861528982530631507861024076088799809886454825919271404210237065253761025172468082530731782262381771268327672503904082568759275245901221362104668061616523446332807549498082989146140901100164830790849629548669039908257589446019007120578111154363597387613730029518604323808455743971632596776064006534283974983270337689779418750205300221248666085593998736446357383787050005473938625889573333095022445329939070218513557637189227197883520883933427694567219227489385023882895703804317449480041149345083158656579390490407955150268279139018143239470234104573503420290812840171581007944953207740940173838451345716274612977701295990714950926240312471187128398419745335189256639460184597383459872332350557856030188323858313267150401166197506945721395555682245849132336464455783184235503088856544240965724493936393713556556600090761045159262391218719138563101735200309980763626764761150650502628124902562987576224541711359952490150560638944084510419164176251358348567463190026096580874373244815528792235127777891922490749654256326548531415787792317685348416235030369751291576362030952155166983761306126858234981932585990528026608192836727516821680876083910524962835378084714408677417401299821543457742655088733690264725326936351761324829818201107038701615126017940803188020027684171410646955605410198560570551167096499433391841260584748764397136109026638958072718350815025386471461420388343678275498904038154707600435027381986005529283646518852230729152501975414191324677195257454171271448126318173330580331223738812814238435437670404936094441001662698342058810748464974906899077704018424033272177582873215048735579651880419964528414569851517167874821737482190924114205124903395138686314928104458332940013276717697464894394672670573838173364007585362207752486756305916573500341973212496803743633371802677054193307496024073615794914327361033980683285745179396465990411210344954083313516544003387480451537138195969321781690776504052353737789040965576393565739619349558185865724390053113690813005183812541972021949519423556106284762438241219096817554775519324432072617874059201189244085387588056558782128711270121960823937379720588433009138423773143253062482350567334602164468261572579470079629343440756499965327727738726962734931194842462506040689116414901935734038222731478201268425558043379069185410656055776716089509590740300113340680373419056502926167358854087541435456276383657239277386037384692167612612420548287455827293708417864981859640851864347967867437663095516492120387349224481806812726877258679394195036625494813178441751073875514351567090338329251510215981006719193980832045079807370888852478746096996647708906762756393137853480767614684694986682035974635948988553809072997758852678928603568801211052356413013558179688332224260944378204301234555242152483165865642041650399155038506873948523749972487419683885798351065779384575851608906534922685957241140329159551257962622976203824203976988350737470530981548095483280014786953895287571745791455919594990618942237615498702318117139503175458021713743171393779134048635155976599992465486133424566313043468184412104280498083179213271950311925141327150081213390323527741571484077513741293996650689023444159673971846552899607293598615675364602892910241303247769753772307235207009662506093707869264657419824112227325770408654873844840383983288943830578885677584258506035110517952857658224706627557419231256415689993405312880917916188685194234076472709030867748453858589934405567366176122895707550294412648064807302245525696975305066318085517560478659165148843329254381874459269149033782771306598089656975046948102586206712287515358682520210867444958485465284841852545942234058065812643509722918666523667004654621236999162765189300456002531147252165701528598854363351764386877090435060250616991640645895146656898893721272597597559198570249529875814028607063202913488897922761609850530720882536083353493310777860103559262503352899593392520003535241726898465636395407569691515165143727432202064967926934633272852336989457162383171653622395278096648833696387165532933472976412645111168394551965860574980635536051424846486756146854799073887732816929694272798411707149982725029544842761587448009075672083067905472611524920621649810046125290789171698826045763962960410162214762885638134252175231433598246039581534363303941634002122547410749373594303391438228173294141528716084412807785126779507668984852987122734322073232888603580758477899871160151160192052457329476909852202865600357859544591434220818294662936619456595149755850371122565401389419166707751102566898915676226179419340589085715418808788785384013508839514042328795267891189519261272199506872551461747849914779971701252958734860433127831000597395502460136967598708947216719730898500097918060035761351466177691730310839893083004061875929504051288678442597068895533780156328836360913826218096136496662574590696411106193990586179456523726302665710218721500658438484417410122612684276922996470716904340371493044590057258377012626672181358493860336022757806673966841147582061152611009925950214836440271402421980180181233405516546531621877931333445159320113783596840468490111310845693892692503877915775223902371075369302893666120769595373244526666795080505377212969532359365189985042710727231242035721578415659012123686913161870402320947265744623732047787102419572597307012544603035322121839014295512027121860812717206729513650006454732747460542662341981580294319614210061293351741692814926691580127637324716522858936141197008919547606634396449126388167739705051856908943109127594799708594182082186631174671904253541421475857274383888142679068368462798725720147163827634597693471766563414891804834238713649249664232435330121941189012099211230020942224281821399372265338128339439427406433501268928524509985633356286031520770790643717539105094231979642072976135127886634933124626171156251697355714911281600391595247725882219269823954873082731737698808708775582926100059472896698379980201679071363684228809304574536734893401410748211077131815149752630457533780584297324144215577947503589570801327470659373383374021754230334797222327965159117886676302160139830353922467657454642487701001020291121469942614882060155848942453045242106981549332439015351741501162832129213882765503399032676801943970641824263542616828247315012547159294195360825813395661837634166343934055542817269888209741926024007442702927824218493609644612095178761833724752348574733424237048942733256063991258967924941336840107605024008177685853352157677155860199339935125252371937954596616214739573056707732622439989615520282899948122480932349493942185681426125982979636568129503907514312639049399694103377216728580912620942935342772018972629455115300828574200797347966009307734327394225568091838623880947199116646860252629769154313861683281875696254557105877018879834007156975522064587642009894411287502696178881214925635763172198677636380965110976133220185166563555210048205619292142773202704661374982209397943925297836944734066873520652237001686737630007745659064799021473605328553545501107690697831808262403534562930959496376498129638829665256105610862875069671427397292862305643983170767806845229659877237456665567272110715370574521148124082948559934905508035748550272670293766070695862173817281992864888700428225497401476793339144398428036886909755839783114666554034943196997883703261601209810732001013478089453783688831241176066957212502987989360450369133680351390987527033051440562379538647894683080606920312260482822173179912066368660663366197290219933368637125678187436207774592585812685231499820127237370119149182233149645815980065149224539489310175542811191522844847201238181732042101476944412811341791336257100918368025506027795125819106796990917861071471766526269393761362504885043329183739938342701893780913205073465892710899101142469541865276746486616929521210293615450681301616075607244850091665003094487426330713300049878711461645590890114875418880462658877543303644818843309713395622178391526159072363793536713228700433459056444712347945575969985891847337725078491472063824066132622149891027054185205848612952321275002782687145015033629119047643814822100847099686456583168264882505307820398150380995992673322944345602155207078645730296735558095781212285730831823067636504424869543562438477555399623605977191618610451491601565475741617236136098541937517443504877823311845978020930442639525383602349764837792629042400660322492907123642447798221246783122731242505519843905540212656260612045372720544516315516039717364257292023069519466472519442111470082455192733707467717209159374520871074650634882744661524284632263112192850604155760986562227004852866833958234941446618158344824419630033281600883260577085618273758840342566945578553971255146558666331512247264635425389112070324387846223370137204790808900107754910348364681054039833361731248915588391137082579068558866592477423330404150628587047372939612396234880403748584256499187555231859798531333542343340326602431956579303215375967587498229378000516561927215441916938185382656741109882538569798723459658430753469695625983902857515494084669060065847064879551865588240170396380043761599086960445384586911892527568815390408360705438083391461117376696577619954566836141262176197738951345243429213580550141490019330810859018566192154272518396921375824349987532011605635499314213334763584375506282269229945989535070556706044676101954066429474470155295379331617426800948980823028137749854746408123647035153265316851753523791722220329868287909972026614988027245068967951394853206784211175178933232881212463758459659000458208938312342300141212268078389931337621855011633335668938217323908320834407314984643228106045471239402091517838531211367156284477213118544821034661476323191376576861476614822192906631484887895285920532371779232935301870874723214731009857985456710874686949887842821695957380063234380091009689081902763206389094646255217220927452249155225233696073898077092750193195807820129563188315209003250452040048354381015856722197641686611118012290468282230018434733926668517663862963427577745166193407827722585331072734165286904255098485319050669066137504356094572924541120219737509898162163406314929052489751031529774292163675471416025150448670638215572083364157079619172166908867847936677913572841125132373576208871864086947282953040031365888741397603256079969245523141087370108454006461631002197461873084802262966876470399228927157163742057311655463856583832085147239805797553138552003510004958679833526669599993480804906604862048974029776362528221309926108047965560482534335913274363211427027806649354318801461826196407539873701759146343346846978793815679344428786808959902581996387128044938678354231712193780516977613361624205608134391386315965274147552630810255230487139651675161449806747737439959634371209235665002888939950636627910046355756796205175443402342629672129513002889513724726833853478901885607784430240155784907101201660438878803431781519631015857097877989705353235446318726939451786499365335801469849842532842780821482113898699838399791452562551604236827246086898799295884739990675173105317824960480479232745792938876021362001251694283924499970551305988694715581357680945431414116152707172954468759492109021065683078011712021530429547710300192075802440927380401369479404875773072502516866254653953162296841781729793918767403084565814107865024244629299690361856404357366309158617710690013880298993322853512013719870738958710025423403999182504113006496200069576304749210432075673738527641037539708570515262517092468075963725165263809892198302160472638126372967665312634039464235624812000334838206314089275752745016301709975156723044859112430071923924345076795157444825967718880054353703127243735482751530628502182388741068961713336812444159416517311497947498817243729645191251702581980243237502119753347379807764682195271594935110809997494119949369090658511273914315699327248369007923526517212023508685757935262524690320780391806957365857483804532210033870724914481449787492893608383758603911171757037033643922538745496039749811032920586591785071197709787296976613814022529286877682764421068446813188118765695967939368599662853541144822460960177297134509174851218364756701951843724597631909183445441257579825797504664407344638591594870875870693029546519471941035197754916151799300867218582164866702173803406103951688522173953731016875989159056505364775291068803016686388894217069984972269603454535871238534785747680416362835945647729211528966373021142887133884814273666811327220419856415581222337513161842960997624476757282405523757216022139053594432086949158147604205441230110577785419472407617948313394446824446054573677219594938202261359918698932924062650111004019183726981914389511534587411450094340223451279806060600663880232006503064175901635572633798766258532751872346180282229792326884034135624500192108561256788947019156790745840106692365521488607795629821688478092260609271016216832767495764391199595390263884860158614630946910764904103603321410395955496181671749296620492118477634004769591675924194262115080880408376346189044331879165487487972307727247782401982152036402482585533282012862915625881844549534141815182755607236189069398987799677075975936072048910684224748277617805007689768308186952060941834374958120872106877705826780463397862083216638054680464700378734409415100642403910714498946704180736662108204013955700704905457158676823026044055850329995047683725445405618215337988773198262439395408771519848768584472962493090400881493361402669716781351733894916234649700531427982846834418818725795373274416291696117352016946377341685788925042699342288561574391065101273411587453691345478601292500608305259936471345102417747931941375228959751222442637609110192073938266652694218017344002120490755345437001804169807417911910317379438751576622962128172933587276891027570362948087285572121501267043560145579475288549983674040615911470598440592048681495553603630834292364842061845639761941603063571758359400821885169192588820866215748652120068255678209416002708786873645188184256779153422542339827721952452137211006022315280534835283745780795728693403530600135022351910044026566362020479765104465626717202214139737543156616648142609609551025881311101858491636306051679329776702328327061424801492216351465862993591752887569297407955078669521058208942041033152652901048496927105661141372952100563913629674104124624123648882645768849063019250853902224323651860874508634708616873573528533320635433090635142107339342075639369502293618887903288930253500065096533958537004426568322841705448709187815525636508755118935592230949944572101972321590146534949627774078037583097464638251238441472804699921189928811909427422737832255568514133152911341335344189690538723297656683851843451850465086531393603155125361326422446983994945319449954770657670808804348322287092115697688119575725938199792627545841311926156966772676312080719502585461965584844236430430717753396220720963616171735979643341116556773456804914538689008323357548501390067190017062842062694068583365695120492787793787108902303797907189635093124201169211630495836066545376741142137825765490397617878776164290322980730999825048996210575723353740655024022656788077944471193169058451076047311303759315372737052542796699691103894683969933424101606428467169311026462686824038068833768250832072349263890702099450947133741233450176258668801410905238294108169440514154592041879512002147840253562428748667538100130953947331275049036815801129052107703864010870011831422251084913064821505067222231639312303459801563244868710943833508636723665344082448153829527888286584027201532012689463357209215102390022269934180998888381195930131640555135939994472126069990730308602014634367968864576460154167958639066392260020562051534652425213603629907691799013082876518817778710952580639743180322597261373011848744848698132225505962163128342191074843229653300874070289211640738150320662834366995696220417655181421613475366933979961981199719282272026088786816271590702677561658026999769641211444498222078464259507566401642081167459634004874508311491095495316933136062959152642273835089251895746601599515713728268527290644924941772246787018996604110052837364134027151114015307897289227691361284214549853709098895799807011250897271728664769377315766127490166577869367358671787626164470299655436023279393534055520135138491270361029053424281781142259771258952428340628080504830984762679697814865329901926406147331031427632266889859167831191781608402243670518603412365466501818296662765703965535045204255991325999782436431316704566654432177279213879647568221227699827509885938699359963992693886825124356045882103922140119124043539707051497609509884073757504160287002078486245118353041355551716411224713036403089122746166025360487263622537608361014766154415551474888650930436615901055340530587727726296617133901836903035775822438540231813905895023995490909338013885073588741906307247311038568905168090743708395601948458396244267713549514484198414609726507619265379275284014660629168775612939965704177078019855443443646233866860546922946011597231070814113437769429843021489457924691813650620441249724580365145195679848229144719453915310457492798058857078372594937534619618600731747736011331099861808341312131614712710020414971364256626792362117486720931269121232282986102891129002691575674092796954261096997306488841215513063689816749510668808628720331324227618752308632859666013671912063052828858822732733157205520126695629283370023066353884777737674827899676427608304273871135022642277988760837292270703711419271002875494644833009974542056705394973405092552778323199481127109607058914130417469665531858082369623879807143519006782305206389033902404474581697588468551323821406636163924139493743375941620838632228032853605853496495340088531597026146517770825218049736762411924120453705622931430088144876843832333504969464811348462584349750114373030057074727739307062437089253611430328304543032914730127061702643286876588937009344850465364491042695328768167840776290144577611915352079716380556347988921626166671964838093376694428203852385358901300028518590812984506394451858532098523169129458200080391835861666491921030831058593072222423198219756906232107722924299753309972054113814752563831285586969719307236493378247458395693974797461830025673978868195261975530422592970547937968522592161172291555801169161907401887917345106571015888369735880118337722214855477928227934382825049576583532573292511087598605644265308443948900075396268677905359113059995715764137471211641718605288678547169677670627880250572959267444878231884184376156394420441718519048488506684243923040023398390822637583645876294119066240297078430433137244604474107790752843907683867216196272386596906410894240893190294642235938354496464243373381786987999833719200756573956750793950768434883495517501802759191918530199836004844910921766748697189377000961152570666217747058901615265767166626748903401105239447380495264722461185780777406753100074691388500529269188015598551728680350547540001979917927789067503710407098924695413998973552391051663557212348200394700838825179709234297446822129555996263402592178197830844875102503801398361033940856039503294883447832194151848430676260905493523293501374666132403698850707912886537925532416140602819037870897108373997481400753781778407580652854450237648219728098061976316361348608233707789014631816395556250282832176002373359204632914911857928783845368522627998997004381011388926216084643950312450681427880314012402199636199848640382771617169549498714658959081033421243484985340883961277913668610863403937816674397474023670531920727982892976429010920313709254125265038572959702547176735596702252435099868995668994733807781998968561496330083628547952078580191783658592374758778994607085593582712867778118592559193127272451256024150152514907020603051577592349121132842818552373991174021660900911861352059648759640755374913259761912338832772317474759738551866050229007897977086524395688857804504679569584296461376993704835594215842491108257796570071726017279938758128475565519085131297797275259462819266044665629000282822860048938853672134479019250154164985402912914719169094622418224197593802875599200666471351434824121905445064505186519494701698454920157351944048570057100358981993180117790050759489726739881501562736537996300726618213845313497571671152895658705272670386757870812071342299789211992466225205481368872442718493660185669021609050114519187396704139676970139738445617145692382578201538672965514698190473118745132192191689725260657097382396650034854033652291515497001062281810310481015337732055037922346470555778803373749437769010408691374469952134020185745618516632194694684172231208338321771973643240618657149309360820790162202451762192878402281525616217921562475678523205073708031101910990682912744662893176564129183184440954564849139978527437138569873268697211792562039524618553023467043249903637508926975754286045664713337517384858870720617167041009020368380743234426879035539771244800186433398819316030383689006609900181331190931618433649180593438363433161096092672949565280877260437803498419916485541017789376340059450351151826691995727641851925676078732880482774293110096106041086209066226531062404949390788408916378428797058563776985666856948367416423229921387082716930660383538189399013372979303410716709549925846492210908796100944881260311686111342266713480673270208311887860888653201992061252946896156330340460618348905307836046723348164225613613076373970908821783035402851077842682464242460995964511778486055822170781105113481822832537783052057937133306188723996185987923882383327190414181677228015089602143112686997596746532071570375240846899561942128432671345243067111961782104610569152765614161090680048797022605639967896184715815455888898034868288721204897806237796277285707322640317362014373680452333543062569367120233271126868492830405195964412585441157481778140044797699482135043374038918534437408357235278070666101553417047522695275353050895540035264262311872435464259838912667788134204937875093899795777767311951657730805335149866169111886549438965033144523015168777584695982480254695962112438865653044673685173167648520049161768794227066408054562081088500679377347104444944488303187382920713317232207087043355071202947690852610003072716818940519323756581838240655915492083185685900477884666396244556507084286763495094900694826351607720557208835595249533963717838357753678560998855112062061829453538090967414521196931237864919144955391084733045236258379073998992742463037675205689265203914638595539557138834627562169489366545358026907825964157940954789556380321897604055375485658073735668581136421558039580733392596545986065947827876312020855924781106580251813643069082385479348302523896501622983555700746285004916976368225431774536642434445331383445590736029788860276612294327109131151981968056710353739064267232798635849005041008428761350572825609677386845830075876798410272733755347288912874011673152981329712511993299063294458019143600899833766168405062109098544932202593304828496827811840575075812909046153461969846410089590440642266034479281066870472995344304405228441413994441884599827535328927362073974661270531951145544966400595411665080857999628626466478311697581695528891368628585271291835974370732290450463740596676933531127839344102180038822171637525087369483086291970604706591606677981448539958442073344951357341959512298122427083022773869598776664799266015927121120531255193843885832207811705514395221319829882283722798221141514008572523447984797111418965696255433188858566158023288569359322757480902633092011210993166405609038197451777503906574108875995468689343725787588184027250375702774697076113045181805339816634795346501145476382631044158568607858724543176128858266509433294097793675372114334855039462376993712833892837585698839817308605731952353619569769894658733668324550806098921592855899579421210244141434995840124111815426904730383054325880845127271837299091471091659077836643664945813040496943838800633323889229824638828734529652097972591928760210292042561549299861854946835865442723166201590515713080054553235825098417686508015972979766613747273759871777328396184032059709803143266486727271432608501170106281201793998329664853906275867214265778301420872639763355629021856521913431965743733250263587816880335127272990152906198809345465518237247095228523696646100068792078710307533921984175829749315465379186954784136070389132663775207966347797798197695720963835207484804757775821019764914059998036057761125727930548122001897711195490459361301338319708935145081645653076381609673437650843466308946914626398743201914497258301437243215356976710174726105826448948091566257360519801222321837369258244522197847529764027234873724438671280253078459747543452708975250122735365381783877408840808770627207509724068205877646929447044287602045232309250779753779048870172439846738014590928385723893483934160868386593103550469844318976392678571757085226652904698899232285908497244584201401758436545189616538429255898065641218776265842785891560596372754357765786768053434852338525260907196378978770580203894113259229436598570377147554197724055554009280730269520349006457162914636073061416649146350643488471933742622302949871929959146352183840771781537509448683515348516573780614995705739173206733355256472348278965604943402745423695797069865383408505520449349340092687025427582914520681754563443914116877610327538259382788486531334591760279656682310069092612176647600239672784371984467958812655642422458227397277830699789081770805263304118645093406671542147787375836312733599195509613678275667553513304319737462433585775586384026408003068635434291187220028603220376987631664072095601730941509480316901357840424564393056254096858446518198508031527002097737712843899918604212841365628153370650826865150451108979493963159207007758430408051425904607685594301990864637211574392432549524188127510402687864207442329271822279578655736764974203890936786302859755469719164247507452958112636105266776503705480158832950701724416573753540624655482509951493132778142380001236556153798772271547347749186465658928566998913334761286905495318483951366550920432054122341016185613098974637795237078511688939664246773276563004612639731325280130916590551851876160196197278011507268820505535181959433975689500229990796260857971115255014986291910380934580145533624912881752514792953509119209282987279402351658086951192520684260356970001087660412705421507746510775875052441523220561933456260901381353002015668747635189068367249170650794722874705796770861805805152089436000820602922856060499231053907502720452280779050022292771063150581054592883661248128563968117846402243712361740014714925981709695319059796002553252782066193288379788694673903023449983343615364931992876930116772043259175784456349130659312786590959742793190947894769275848604212366898478837312923949148889237505087871705537324481984982108647871602065237406141234276640020846382331040472018443907034510892143888076684402945461158715370877339187742417717958920502218266264413864273258859166836586272371014334867992327159527973814112939007177614770837380509742607165613816389945464450678105813656578481908322710028611614747593988932689728741757565992292454548433783915065837732941464651977212732905673449380126984750781391202462611625212879687447416134024376162693103536173003069347867868239916177581703669886260627500811378467829939077457645326319086058335539467625576197170139594300676785318492132954279556418222047143450500588978863674538080324842027600903431511324925767327689708417587360829051993022119659959323088054773116996836439640034777101967223343238883494893251697958980304948017106509075816299382161937381060324685217198041516144986907576770725919592147953414782013970885726155824699333515044721536881581825513162009295799020904683162080985369132447378637157622881989054448555572505880568314409497654927006735545578538326176421231819976381239621169900676090591085755088702910001448172626228123891565973907420222986036752111183645885009267683518726862391527170618856679100697007188239881673449882355755924467423595831584666403074452327752969480439190882495681976302422696641159972952235363735233979059490288968122573455475825684539344631966244686083571875975151208362471425404355646860281951202492691444489672038558510493128648387685921249497377822570400290213979468051941891069518696673206110718564847774655706913231887795357214664285316900581155848020003144159733376044811859585131080284110611466627575659460282547544758492505029851690658114625021535595558868918413553759436718703315526383001574303409813847077414969571006847568685928142818143775070600691934096559586701255721180682923709556368430838868308887470531952030224059368682072367108110486029920269970624784217489318962618541039123157078082382882080010795465345982961427815921052956884042449543837216641772177565092279696565301540272219084421308062374548451965153198145761660372433795055948794415855595089385361474686174453323609774194940477887436887155629391341926646064608667731551595296423999983144920170434672132913677494293383211951855261448841303321826373082580108903535197960772706955358948407685696672530932375875592232317417303656054052195006502319744483204136898900060103388109443182883165822513831344781787867235930585014895434895379732129374536715209387482199609009676125220872647839205329873577793836940165491104266731184736399010262163479406605701917540683861206987655008022820137637489175532051388809121286356916276882103393389018426066620195175704495487755395339155352826266185864487678340936841008502667935581145992696925416262349962635007229589892928699195766864886598036838413869229395646575849505323759495756159201210195051186846267862650450278301257025134934160385438751389979853006708704113361579725143701536624139850745671344889414223410986637764245127804265356833636564013052415954190406278441769121209574353285215855698854348912604776638667215812108892335556217968506050339686483850095831806985690273637825435819203254755323038225152352954734385522187796010997240321527553934220261894858945947738064533894798934789944228196901356503210469930654437681269313918869556915933776518500340547698153088922132908068065611628489707906148115974767051508901777229106560710549362617143059411101084113829902797074266474231839871895498570738611016834704354982569438841078473711024173723566321818962813445637254626688835735360767407395078241697019681870052431839447720650589598206382799846857810218551496483040594664655782182230764221718601479498510048497503637198241185942041233491849175658423154390234681776976394786806811314851590520160311898420539434221299750167091253679394727633748199079799572803945765122958342937803156066717123474762012704573765990917901278176708358346626067137999420611908177710668908521596819012118176708494766409653352651003995029991170998273176288633692207601856074982384561735038950780995319812490990005963129771356902100344110741394331720336117647377736104347624898821597796788293142341984596643269450930007803067970113773090323653317150037033878660759058355249291622213626000769920364467125615713794353402798407638046603754876206566602028688592360627795993369261699301151656449325485468935544544008018664920359583570162393321704684446090774673552413739121772488747481589148289566867328864138613832719993503147539260820649611068419762198130187435251584851908357316985613957099106990583126513113542650592953809317248192760872754610810547026379766856891204737448224776247195805598166109137526506854260565137309082261332949451237825015318439924746330988365208888214963781411986272126305590421797836972027499621812488562583856631914105781725044888799708306204945187312048596167122570105816287020232483064478666494584471453721258458421596348240573339778905403200623064065077981325530309081089296498032260897231649964176159871689225343797997486325482273114713632003404396930824074055345029186379025525598286360232635576980115367431525181833831017643936263852717732129772404568713154974390864324370718517085797476063157858793053850231702924481939112353302993383144798718000013205572403503936439809298118415083582939760956581551272029339357029222986316703233841918251439766272943319622623227683563774686418228793781259118641447864913847490294798616115814245889879516426974323028008492556861147548715491536656537700489463034430590200248570747250993156816514754998704132991776095377349213549009842525566749542037149234476959162692433743727655929058308981938153960167908210101865544364461950622609547951357781160657229090487901852271856660996809803483310478386199908274639475445201462077682844253179268454792475357757800105653854344473153388433712686362471181699958913538495943212904682704821259135409882931047827244610774441614999804564130495392279010640466086555027629206272768738866244279646772385550377801152139854082807741988075741568025307818411611479725107577827638418617484189075413268934780933454858933745213533177947053050814192490845688790619877518595691176785331025511235462855392681662582307865992887866168527882661615790708568544771508982176802255966864748223634105645030444315706410525715439078536816542280494582905233298645612778851847059146861507322399473596924254429687438242551650275659037770350115337692214357549204656581766388068110664058822566293543516514215022058423051170624902056819293035156166743075762607605266834694850787248964834717025328690214764975965521748743773845172995242526246162071484979652048188681930350787584542560979168905325988409318899773449544324365670687355737902584058400538596715806494480509464811387411995381542800366283063608191254146119400986730933747962633699022163496894070735778006518402498300050877641385146174634315471374952986714753522678524508080409843535753837272818746414596812324275969265987064816363537518812912799964848392148891373772604793669884003073269178523566487929504195122938632944502266735479241052003898193435213231548107816900884769482954410443435470734342086838118858663868862981613176385126609663911397610791779459975628074731101281339580925392470397585131722139145844151204878246477641534499259127270516199532942662994719481346065916584834812203751599914247945819715083684136514062973108148080787439387173360536185315376724753613361517392007702556768687437130724039023362493864342305025818434901228633086502198437716565935044196160384634756145864520945587740762150795469017311058025989354380927803464264719810246616135897146210789225036121234321538520440401454464125831265087333934235584012784672409076140680665904135994276545615375285523244943351236429088876988129071748363507989582476348029254563981180569714189185319766501829759874814712747403341149432151257050957450211506619562844709381127242244507470900522175089891783892393105025619063247608635813237051824849581341436362418313254875460262164853483035055070470792731569847132215468745377794433312842191614239897591793607833717339216170562250636588520128012838643374628571380952152310716517910007255420364782310195312126466917277600946503312307258691385860947941276893685347884572039432766306142993010482112953206217578279910089275215651635706525140393325487217831126607923422926054382048461463660429462100004882235357421358838414934836586970585287645499344087673178549296902409839851405354725100519144615038908753793819952891050869085300158648513492650199047627451885016296422742872234400515812572610087193487741698968442986281015651882703906833395341091585193975089699104061010203122044123220367146346002826641810645004997485851294577890689132475040127038625552120475706882338470423691879157875012272677056647324186010419288315697455054657248484595233606211901282766215196196369442660952712137360950902576083108585421350329085640475689721176514276814156026755385930980155231362365025764553688123008223472874121533331035950074361613403848865997641286749643723003918630154841235271431572052960583985493682853446318700478519317181521439522798614834954991475023203498859295052809099870824937103547295954940705460804527879382393968245614911725128976588436698992957643725118358877144041101515950858252576397860365419786682280607048528211640968572193539228224195952716288244488956412533771012794780704490554012841864813116943519705548469058414621642988209080722358417707472257635372881445350187212964771428010657525145964120488019883121788649340258370858622342084384383023106696696068444427685403407121159446468212230752685582457521359789803661210643144945601288644905402728383853464039908266882902124088393475843569597110167109945063492067038543168338086925357100432379880952360667644585537871885013690132711402447425429284412326472683097509939124212164813102685238834228369509550516362888333004808553306156626817838331040603615123937764647259502047247912473744526863220821451526480905925051961548891863047538843402167579549208244870503097779596110722544507134942100812654432480612991762548417736625236171766454123533698287249058856015388294384647821326842556005745916491435567138799085117260471874524615904349648997800681019156530441315836775487488215560122814878172331046188610181584249133481501508659426172864653187792215984509331559541673119629483028321900073974729776658674656524377722468423115083184814363095042010445167983632954374460579960577263315896016257915439184568947710287232358247258625228474033856720790482045966676788875747099438683168238363254013222495477944259499337020451384233003193147546550222357940065421113961469727495328306439124541886076737252153253450893969503572995988578109814825003487034521791347024178169028985207575552473218788209546253634986394346016162663038317179582240890790075493500436926133774803107485747200674620623103767966965796250810160704616122739969260591708820687521765323554567535747719005322717377629239872832628232886152567460844789206480585741556343943918732002331648912012422024954417337570887262930346327845362214564189994717807768707911819016670716208409076981278783524875338211369972156590488772534385082160465631713253606393397184270180355319670806787117589291081185800160503850093522156420611509613665113087838765939454790103799172764983247117106420135781780445916272975526438833931118638395637210838754376830040869055661147664838898256726839564702285056912258706399336491479171430490444226163774752668772949351378790827703407188047505618115628897196908398013051221269795974699429153015374640639227706286001868179934710949843058369040683398655602789788744113755857280951443169124382859873111468291166330752314641608480005363658944064473678450345179203807506254218812901763156161067069803528632241119206692632887073244789155160638130863285290655909808982299218162538338062601170421470994074210877573710193828049253191153182726403056323737733983677428155183862000131964220346835240310196818286981528091724078212623763285800340238205014245049073660222394022088020938325491430932587618932078897622787703520248683726336229011202563999868474170402596133587525926663751087566610298882564327271908984856842089905486242978084640313713259990983059013607809265727728406843944422293055266533133591613169766313549321390701304488392666536617371708335500764661602139342166968375843609084976245078298025069107399835222124576331438711792391118701934870886765554844104186650493372679582815877126505226781674789861692242331626551382899869935930275886228842769722818803690086569586931866855325346173816520265769905269350734658999704625661225841663719500979357323213404966255450002419442973584362630565672819853667069834651369469282390976057360466330222453967778215714581170689176885686352010313303078764423824001525627558557422358424533833662237869108103731839540538761838571584234909919329716748490768043119093806610352193903853229584969852962173619915046432969275450608756325935044353285292966625895546246075021073530268954155604725444366335618105641079543203738142244656650609303528547381285826775127989878823312444582432941313518324824540677797695527410613636236120909286804661257610619685506955173464117469980843901099747705684528389894000380004286006987005751363296129826720984176656618745911144524029159517984605634026104321868212388281235467761391282799249137645519685695828738138327518587792337394093574296312346392944697110456747377109970268904723373438870032633041797484873994197555488343034558414498223781151443622422351920705654823799886758409298305105753062213812460079358276147952550970390639284140744160644552490855585294563639961631068184372529386408996061105969042296553881698127972097412717037092381001129794765645595160852187155210342136501805078602170774104669249457355068488448306641978364290447303444065999488476524292217929092688818178464639484035671818253777491735825284535586869069222029944689255142151234326798606776380041070685835304535180879039038589387759534023336503035277884553021676205618216563890809258358701977018093278107237014741271070247299810614398592533863934287893779279879215517447106670315290746562045826843116784145279914547974733499765448809138638326479574973557807937389662563344808977346540409246404281562803481184515405464785801656081700511505200701525229654089071873070464023091176243284550614149631229045385114195621228577745449383310919601053485451757641166604529030099430329595535474087057192039928035308333701517787113993643260793741194476042718754325314403276051128284897217171799295949770852175106174804588480968668064127384068383749684813113281639010724198912465497682513843685090492371363144462273127084006537454343782782329572648656666585816417809919338547325789984152630245499879017287017285046089534974606639349573467462002462348378370759707410958278343065137640519907971695287374642016916838213549410871470528160977562625717187116392222020382203219252549037687430859024131085958526665569490573986287992283357100251033118599950369053850630561730617540908659534962197243580633105386791940042937286515632931616497413554210300327515291338659973132532531468493383550394123099738727505758956783002782969426530037474341352886881905163306897553972216097172646697629792639811587119217586016475894339731749854249841096459464762165405908401588293154622469116412150617018545902305896383708745855158608838791403059361965265693145920702880112971655486940190067154714819211586188747625160048808155441896480883783067992714278095733989557442652764845101693753664911686380075938650300577867302503203409539955512791863269154561539597914489908518446222153094915622954870691218106651631206771992214410791960093159430330800198273182472293237432528306998757460848254954645421889520591924651339028571654909666147184743637524727275135587936689120085253939345777252251535987693268672345867263210906038460752848192515935010756209260967312984361383235303069575980003563375211806853203184354450536199530188860181302835188648597663532043580372047481544422815357164653646046630990423669542760316040346084633302787828819690047730870290083462139590008103728506517851375437136660911555154736280762371476543992723782947275320885265622659493128469413385021446259285069828833650205162306068739360085024017738644209878312197814033866442115940273797804887435187448886856496293968078249646756723115409984525259586083025029960219809635281691664795899371490596799614460903583114172862621222016383342536855327234063645840102206656556874727803027692994560359389437483824063587563383373759905473068428686480174098269938164554758423093422267483947200344673401633021191182943512823347093101217795195015598655892063916605157159229370392798444042950826678588953820067907897506863141411676703890408916803625204619406196928529295121393009956241768445518254892743804222561133848712794963397088411666107849043912667765254545505571971301767902330864825207053152442682569512561438882776420827040007705119398232027519886551866345439317263620593288233371144703250097360924459878739172124459038448044985712493320647528505445916211752354617554271380055911237832300994092526381577710651559790393684312521669030772117064787272077577548209343176417637997804040212633798714549184430134680390651676758646695737493185041923156668450332241748250473747235543540650583036432878868683242335438747406797085416067291430506936004483429644209951100452354459716487453107753734536971999638998754786463549631251911591208890157308317469443487185603803406556175991459654283777290381028551669761445397869666274137795873117046106971933851123425671438652549297016186697767763873754969148686937437877436993079277106117098312505783663724918552979108191782211272147127522154403289174634599468732297630324875360062541861991210547423922648841413146098218367753440713837203899763854002868890105968148214490116294397494526670386847921547721044329107097217265122258464032680379979521725852398038455415463829308318874442086688131657531252091235917466734685917977512518781333530139587439734939039103420000451070348424180832278100309773849551635369647511149437651914990165909409374587484431931040255514815523029366902479903108036692169120391913319995965137124013295704396387198080355085962609759020647492137862475711770714642055682399789680084291031255328076161633736563428352974521668931153558440753090228434685574985077138287294270258496828592283840118089275837760598965604907376825865422686119713187794417851794154342735821131333655205999586258465051715571176496891312421606629819407996405733959516919808175067121081073710484117967072717188381285003528393856620990126730221677993771020814153489590782724008479774075075742457213125926959900019354678856802877987159033001800648711669891422639586551304259100851501244012385156855625652896388089740029548635088181565941944855775970516452302689486801315282550905639135537264861914727020764041811216855259095211308116140599067880779260131829525345130114395669151414785025288172341101479791484987603750927221446077461236227206004176059672559733443620359447319185040224389153873397127000849645231230249281333374263911593254661683579396288600123590065110859880754336147504214246756369358258827699889956987631382408688822163665375252484924122755954697886183721646496459267435360105904129164070867962020493222195553289676614199070064869402967205909986180664277592222565833601539978177362197883420822741226085841032962048023168992813856943308629905099012352282104133231742531086005491748003916251792679697162949595718289255075650139088485473636247227798457992914294254508124468747085363615453099615252752633187311672904110011831291319398068180385073072078767116989433695178558283039088689457649315976831871906577612346377318123001258021627556355758730106436123753503791350828044159921926038588427761559168560108829848714486525650703597102631848599294312435489109168497914534722095408934345934118487509641248108834037265231820346250367771903329375912243255597933259398679427163736635682474304753363005283174382393692064006409801968029349674310513228119421711695925994324508964364749973460358426865345801858489379574598820358744225496490622974628165289173375331759827762201591386890924691785344731281956950259981604231553384035122574502085880021139617931365976116069504973180432830715070447721224612810905008433500079632200731249899266099346864053913758971172984837006536416358746318832549381401733638098948569998667277350444536637221527309350662492903583025163842692377575466932231322480292943710594981495666009607233666525128900750148878783196689069472475292864650111529601746823952164636576449770745485673577239344344726912438633949888740819770685280308676547362693191661374694451071175600291237446500244218183267378114000732298079903178886980567397065436611979733400717762757010456431026362174157669401363258310062550356770799656025570011796996968084785438865892264381731393377688296941268720876161295266122330198211514061737356507164559855884832907486996075235294917457084401181273262159759218109113969330449875184952460149661314437455262007889103071523685081569832778701097513129159494786517827176888239844319963436192278947417777167458050129283557665238412799004468951953946532920145324981300178324945766856935445497992731059821881223218165558832372198430420714543328766669435174713578610741373698760869331831647993530412101366264346176889284374686285332537887714790772189459324841665114528657543647493239047268094829921053025933350937132975804855214166103176698276020651611097682183460643194778627734863734419811030468898347906620507932309668650507453991818654987387416101228270157443737169591453805697855533647638899936684924587421746368804037589318626352712989223782794753986894781561440671166133552076138485340775034693807460170548868136610221121277070727862435736787181020348626847434826983367262673682659527214448710329532619801604010733238420461853104268536799829193577794123140595413181798363993993498740787115862357413888516192415376377945690553242847674263016076434830168291516445207121154580378195721872260643384029729377936076133437813609837116758304627895002927240229414647411825978851686909725573894487503276630278098700217979311143798408822760167118747924639261319637494423579185719092592653841804569443308932792501584719091992961051291663732275292543391447154406076069799283435318078733784740782263493689674257817942286078221016802628318498133389850147764510788152125666131716201625291802226814494758930880446496758686039332422216562043831613109026208373617955373736776787430466698023577915032224441640833521517394764456057098200302625820770540885598808343038487774591657718076435935027192704281568840121583254829077271743983713240152525175472750664181576824935344021579671818616421513814927116831188438374067947165452114476597435689086246187673722768222447404890277375184918598074891816789964271599388334561860237270197559535435273671369098174882015211488183136884734593018065400185893069958383305057851400825148545594188097049142748179103476230396931319797296085790655489567688808629944522310763140609732871247560263639579909114897692817513942927430525470103291521148592776193035629520841412681827055940211045973796983000516829443038678731630714705311317352261207162371728842002668715703944696581476241251240523521640289179160947164712312529428748236322333922060137518581892639306098644286736564134712104532920071657150352960698525613498812400718866958342266245962562551389098190475904569185033337709757302821204154932586602530452530176127639409325947595565140943575255373218883737817498181512769176936146522745063156431298788713782076817410681496506582776807560852478983640331230267494143207353674781515554301969537886752226779762440418829674718989422759261677489858535324285211544202158568049270760904361239576896437320822165945466314291164025701278192339550609093931160972180047557170672440864791730490915012778369431659965685427493559394157088751258362217123669700558433279044784515930843599761987381315304257587108707948330690454284084134433397222339179573099152936851018367848380098162789098753100539149103570733113214658766734801509144658791892739337166522580105324151094478638021863974300013800506367883131969133714847267109873955522699683130235088294610331321699518847616345543225533129869577997431075392139771667267392849433988268230304825196045039346898282899958994480513062485480147258302250883186986471335993275235254142642065730946638540329686814811659413696431356304731506016503591219300814968781098632745175746601615225334853498925156343722982756940329668237353263631344368128067252583186460182574954422521336248514217401660824834838149943529275852648980419066915211589845438244110825667730411598560616263848724865649721683184227755930990415094375217700675049682083755257998391827885750715173916054630673488694791240349227134651397053353168148849577507328678093096888269723066531271697331819685098597099768446436952091313329986204877543709543687436059287262752805057957900195104773948539957038955987812535741403675730113351281365798320573742029366430548780298299849415490049904909492856773828483181200032363796565727245093930128065096336689702020364912885522192570974161474606027167701837217126047300673855799976252674553304254319685544974538131104366478663054347997435804576512096773877674307130520793573552804878590179279922151782007407045730248085231785856594352931489800953384810684615209305698047007135459255673275541384179879413070111228487141769558259659553022185347622392188544322941967042821118315863070564111572733961293625063488528274352436199308530777237780227156315208702783500326541047528269799564441134160184708780117170575276069642544352090989475065538964446936768160941932068359876851881437777797339979009200185721738947585770666290946982683341148954035173846371245616224963462881001973001191393647683484509991452922448022307312927080995041412194328728503139168426564433703666163230615879787254880118731516277756213604263229286903969612788734527773794052692937408198015907644386132287622887440374207891837964485296165851198334769251050698030275167565409604651535215317283618161489051010521693516805219468435114689915669115794538725934710808087610914749848094418930826830746397984559599881952308797404992205105751751104230066319976978319358616215882760682421041880099993497012310361678855431195324957549031249011327908229844914367996586740429423255990680128828708443249159282728671981280774001581716783274653040952932423829758864428032640314818592458861276600845794737124334004560159526726189094927180873438970335944052393189195440290481025986594542760916955597741506387011108339069660344365649835559940051169607061830895765641232307131058589687760045390206203992527143481668182316559917234327956686846324926873791502654382221603559156756389946274112113654272961686034853377664039838172004195567917359689250108850283671880285926985939745839160757538779810173955631827060694835994733701219294038018372127173142921697655596213805782767231559088210754913669528830919093471661192999717899668389737102743312648899050371046520323225108265863475954848988391372735764795420597123555691418578448466419818154276420395877046253699157455172161053094682924078986464308079013091575590019182641277258857768614116337335131948066142695296414280838547064534935961329092822274600470402046890005397511044399229649665375058267029981777760458776740526896247316029204960277808215643634366146042160556088199798864444449321910238818464100832813721850673368855813575234697447627810601408519330552049097777235082779398849075271469063815826786600338128500121734027537798474913985831520344576437463327875278257784801637630430612968669009470110677909032365913670987914137417822263549575490423940860328660862200740166461508365888590700668198769764784759453969839655806989910237093821513270582195724913029678253623419582180657228125082076648969400198129786851616014616033309501441483553120258064287106779253409454586944771285953308493504478694967983441657944020830625583946066962399510260374106918149563171971994665590280135078314235210529873157499255512946648394749417556436347468622840119826263625455769732198496971279626765121861550310555549353757672543500570754888436495995279865841619804602340734927092495652354540998625995178107955972981988461524020019821704640776715866038023554583388594195831582693458288382079909430409915984610413861729552810411814622331485220711569165048476147012417650089676621975267840657129452935968525407833754173645340115782693038842270330936146960014997428184743434034698989963347239459383598263953200218926714165887614948568336954620097511979306266080180270643608396056861503002639411760095049277250041918719949271312794854794700445906696703032602566408091471926691357585117576042277448217032406503668806262448027856099519046354749533919893297339985492294912541814145752962178712192891108829952766030207731026335894699093311396558094048011468895109128184811882205399145059060960060765511106669563854998702373352948445638460544132505082484523048739772314876387931117664713387452613388395643334497358811146322018306396245478744366168861369375999161727341340754604305334070018739796504712207061110187525192502869804217267846404891757380780252830084776955393253319262464067799540655402802275545936158790966038578628104581160466726723706242867196233740624860929180810901286129307294151327401982396687677169720428102374983152455564815522330273144621112754650893997627148319452820210190292819908135595684094792782029098742783651753017648812650991025106607195683818840888055436972860823475392556081184536772971898608622552119172838965187881160733372056522190615491598857208261747120704358384079627382847945834560225344412354005197113332150063232662499937611883874441557900317432614280522739110269042526231886091366099241104296133410907129558715917317737060690975731864620966868959676741464238522328625044508957108198892580280589219259384929676392591271891557121805356457102162296269931865684711203836890781840693341819633045160377796744766588427511421505764016711716656819777869654254146925611423234968091889872017563905015229424220811549072584275818910236273535357481864474159768721230088053380464382323921983088142496239393703394047445007595734751621544379711317315083780118519808816171504309843750524169868558058097066192668760329186271860993502482642298398389243902438946278041293226732354585304641497906866471783311659309309535149149543631158134464154587200407406986747534810056712671854493257911705139688916191555185997509528345244569119653308367313785202499868808936723159955574184349872776671222244317422008191291025275873919540892018808125771064363013711345442022670648824036282944122670888299883766569011908735866109374126419272718804016204067495623244102087792935771353191726899223133597501195269516312433712550214547670200740654944864434565805331484046943888055856039524068222570175545026118604276179894459239491141736225934157594673651163014516500982931769740448507620536296332721675688680032305930971851193065953748060924771225245012076593416530946267464496814449712328701834691615754394868337076418904902960175582537510277294208127839536319099079158211766838901441700863256964914814765638844136401467482055415589187890667093585284000356892295316449238755692647787128867648697621455461409565036606239432204167960215429460288860450770631216657370975198959956730588040439640490419656311132701951342466895071567113875626175658722343564093796148336716873582691029237769515260623167686721695479992885071709369753658083538656635045560804093773802736615195625493995394894532118390578558191533066025067930538781188608743341203588278889892470615077706383966932609401990355263614736297993526669605649969395429154790224152486939423627896157693476626093818989645396901840886365000840141436940994919102561699516257949766378477231644479110639090840836908088507397490590179499474682968667984811113749460760057000349233585948931804676119573548772626061994970768065232953214520919840022433183160952959802186715362853154704478838215608937556399060360512068240789540791581290816544181255961923638952469429488786430777657364292164296715408394014156063874594873019279093887498853448878473751320820716588233979437722070465181101501933228948055853783869693614006273071574590108828779543388518255694020678991394019221703078216562132254736882382625356508570036659559823938447616802564385256593070846447828425343850293729709092994833639807781056156829978417570434212290780145380221848922517808648197313520929054854404244161252727911348827050323587480303682921655950079640610177782603886731056854334105999128045928726699666898176040141126020205318343732954651805562644825432168703508545875761974558554776411039547347419148170972635613958787692000173190665233042113811439324086171499542606301912275903649236237152102036638870538731340062885814651868837548480631084526488835665686092872821774724274717748655849744784021971493498753853527773490318155195167888012689887643921971134063487549740966741404604124838791608150738231670293463642507444273614879902958911483234049069808047253824778003768503525829888473666038221338771519762408378310050156237750345342649008001144457952455711841383503507641769849734240251817333401289813174619244624923706132585636752970633320901115368441815909336505854699600056245915955536337250410597562205905364423336826299684019005706145318436259648530673686530421882472034969540944891493695292071968452857074260838052983827241806371468381721810341507360553753222908876420278671766552918979353888313405463098786297618098779004970189358749496781000333096715265224930690540630438144184143173642519970162125750875336561454075649633870980431833058686001131826333348040366490380260538553070549802527440124729916387746904725062390642773596374833464810452164260735946832244545031587393836991231277872669426551602398283702461026104671834980614099851752755809873117327473687497273360639310579267532091552868529126243789688852398222935184231672760097230139560031640300988380474736609195378987764735159177221838489048982396653664300335560452727598455920561397707751225023593651933843995721142421138820773913173659574602114161605527574756450451946112374922499271680203618940536139505666144575141608985242303881598027482155041371620880464512806245383834074734052195017125899664563113774355950896292144295624835842995324526390851912437901474935347066181774096445951983733855552872226393657076072989634977969991928565638007735592371155671584229291759505572164709126217123706933946073456434066116075810635437706077949430090513267725258455555793379946493217499543668986250345722602660737650471774160453292199301441587447674724593037326971809677306302984928181614043434497057658496229895767422157586193522808106890666136333608223818530974387184037926076020132929711922242118533295018613369817297294787281263193720592855887869154948979759301644425012838089751004583094420318179719930006311725162899654635515899244311569312414967064427365420121567318367944174426557773672748688717174143292317802755149395776284110175635843170673848024323170639778641276533716217738620517028171032297923609720895323192479818584379009935136427997328710150932752853439069213828236539335049941562867540400726801706374152924868268478466370621367651901409101159134500097502220777132029237574545176568304027571823497785115330746033157690512088596375672594569634929423400316275367439294039335820473172424809314757921013886538980343726953264640956832568951643081829742911919131382673574118374732741256937442989598245498251481501683242848128452942476236433268521911174341035674616751954610720427531211381905815685652505602375349995617401614132847239589847935216030889626247697995531857566510147414784924837441947687942105935252578795450666288609162337003817651370100353282185684575002988005693812517709043657555468528315671605213590429567490975336653753057587060792764229815046864514919553052707318249829732106949896302966272707166006327186410729133679244904458991189664491325156259725121881273507779218950302879830711165196701071458943617485809475415048350094180410512343143545862367888443996134881832415798046072960524810840897722202560427187631526117072478796140341469175958973790570261166260096421788897334864766723139370011372370536376019000968950160036179039298807230950239567790635942357702760231879851073358928389016167391625808118461215162915606031066568627086578765334476065797742444195322298758047786898068454788965726878746357516488410920717351901900316648065156534613497469196825938973473426797315247961822904577958356966337491795776779551201034552925530705524098694909378308706983934102972446971595585637166291500657826692947756173952243086214135350935732295469314523895799801538254259960000192717169578310945934003973808038265364232486495072184143379713368945406901944704918824192842173385238296536480174145744470701669299898489467938273174859660936382619622826051590101825043059996429626295881371956372046125590862227344995783446830982330261390324278531335751793992129198279476954238940439695153165527628450132241585067299872454202471750340918806001842653457203097989276905357138393660610347551534379425270376828295388489394284032009633969537721836706911936649624149694439694663369575207095094296792579686055128264220921647121198980072286227645184634358289956444261120203182602600961700015411029846507944196232622202671509715689588785253035514048080057488752386263297748901146851448979886110820885243244016969894025277043523967164628877404481830805390374995678058389143590788866438788632328225033335373887913297907533349488365411292435831371918272789294087687277711919532218249237043387021499437550849615275079406315790767989846908055103417808251096107076918144244999103543657562837787386485781487137399112102579674302614059705437592416803716481685287189782582681823988890470802823474773960480154080519740517447227523371913108398657116089775270736107563722308780247985177555469489827312272252625554315224966457856236445482811405191680633621445433675143273409755852452749478600735580718032824460505606748719621092870059948381787460523136519725656240475792091335845789572795466659963897325665012669494800939653248196644542522741123657113707343490780264610439682865892963521290264314889014555851771716443645240778835704988912099279713218874835878823919143946537520010444448972826847026085924450371233646999531918989007066139017030184221094022405810698409565010098807751992314761638252142889250136200534111932842330224258634727136203859030450502838613648618609920935488464572385765932353016810188727879439329494321778472318770587286233737117460927964852245212413342672598292184696647166048666712076428828506845316836828965602940723964799393925103190910417715851543187025014052810824702051683907313040586227012810974424885905295268905552446416817428640711867148421574637384024543242022069660083517899765514398515957384362176159448069266162822198222675161849993675272428234517096855044848921630120061464193392489935811625023339555889679244559279122120686709048021743345225119667059522896198146617191536394727504158390774810167636024364663822529838166305023694048982388896298456095493373175348856362922215993439603203657056981332324954888211571060848839004496744220451180370808404458787336982761188777504863276022881608901007500926646702398984914404750576111955666642871629758470754472985873244162137782354116540215056878958451268059308300537524304403672380406481005154811650021430771762675291988011229150400328161286203464273013401420638962039928898078511961015318575549368224916932360906202752626760456102518872049818769881144374872192413821699694327263852113601876748939300823724016588161122630521519513147630979819691046441815959016453121848825325722510295290755169929826876770985623577616142831109949425374930187883837664519834941000146361333370696464284590308033765990139006838464386135386629737407157613513172695597845490476430243816348317449254211044698663850677716090824711573097761645200213074790263938898025033319652826552718311024303972968770086396434222418456245848301455637716070085245542398110952941777469467287803779588567873070922177280570750719343722290373684191707735807990623763412992308876289984398517754988790232047975139474145042121625156867232473523397824715942345037280605493880903109976861449065670127460745293696671246856337412036979086905416551524859321597756587377992695351012573894861896280615124101577336887236928061075397914242496709417637151591636931842437067430283093503501759652976463326241907173218435264381063448106755503250368497622298215583633384412858994636530693688695025192622931677575323913845615161013619447583979286467876542576368442066728777446163228612217650198158130598575425138034821136506549747841989627137498588211564050657735451888059332098439925572622941878988084743937480880337658618853742672877718395365837660350344040694685043064054508358852246180268368216526045617126522060149599972816521071560724600226231989391573289265952011082629528383745152741315973021985400506975552606600491542146321013150003676934187464407964451659102282391768751032320249472792381466130816693092160230988353677446207403379262413711253946891062311522724905892540584524368434327301313430706950981773497132317739929203401758561543458902838502826468838493920566064658584496854112484096195874095375462750990901530172942491924168122109170497870175531077711363714817810893914536293963820256900842530394173458570793862748175070685001741529334960837127799304567028253622868600616568744034495343106060495252740752311809099968470285659853620793019932860785966411193355762366977371021773148904732481584335365488425769234562027887392706932868529032319564705492602054570384629970970798115246401307302054959874311706299021535749863777095445485541302301162682529343582357869713894430776706029879901463752149731534960665792141660092350061196691588380877595164254635738322618278542586585535426033110334838682421886169283208248693071597957864242170583069858242747625034380036961230512994168979757761242485735181953971239099994688603789209270118477729535205751273658167794697684194857104477647686233224163958188937081538946536488793632947235881953130943651148451825039876072877724839263092413250657650852434161650919356803802623985953921059241763205294472518945261326491764409682885912704066637199289919443700018216844450960990245170439956662533670393587924579335283193811502994449952390001912054692173155341613945260348150394993374040830326368270447407469143526028128488975945500285346202559179534250158008741509607844466284488718112143186051553074910380485477605403186167993136627040542136600894928780322355713875839783131588197779136382035402335171808318091968355214730643366444438402882590421826885848238357906854831969020722482803185095561855650269706799377328134778055988373125520772382506529793441555840581580346363100225418602915967890156345314317900295869792107115507509430979466786543717323483999009597957786663968448220277542588552170805324991009490162063705510679510330285307184136858598865359982687721931166919064231924862960293613930398539051370469401896191975536041398635309352825910844182053364715085420142675884832113948618307866740886576301936058824243325136816820732868718609331827189460600423782967957989019835383073477380798723423691430530101058996962537145148073441695544187467992753086642351369913923795381174157935673886614830260350980575705706055607978289399395345573995237788999946635494645624516096191373090709578670354188763952030289287341508527467252351511835034645455090638118755643528953640354780730793379749628059072392321234632091092256026893977524976982405839056750234106997498874008365217790826536011052204367906425051926440235520397821196658305028989178359788058316231308516661667193025981689102295327370106850086247683146903832212621207555179449830501107193696549868395706211481352522971693551039353317074870527341784410493231311738228193692132127971677580607077153030766269925938408886739187743476651854386544557610513651357125140702888649585474357240834673288127737155753731327544629867493316239707757173684005522603637269170083441475013924506668326015494707077043091556127593046830155385286593822744058937112828074643674360166796520083560090266972167370856747181867065706532331055126130464008803364387818671336376235314230362225953911884629314672072787776544527601030174605739128206325318372225435499875191638194052382619498424191271000012329039950817163554295261891307166043488223503672755640804814024077013444325761408737229128743826228923324852295217510839695829634930488084328684386439537912302438137413431293577653811792295986730438110838912099104707074314087483236712892982442213977333498174077941637503297220960608910524398030848152046561402345278269710532895522172282719251054085762468108330499833809595418250260843240921145115605011248305991387741181745739608033024666228384625402975662378829519683964231367826597061513110114374917500744768203507723881982193346073662620922803991704706115359197963649820545882268091521436861380983096990630865881006518789500527571948927033095130924736179557014315573169185942810388159850145639967236213513644064728050931587998656768107528553517713401697295901713349369832430089697856722188500289554734652958654971281857736440694564666040439284313574330997334075945139061834483175460802700887285337777143625856211684872314053135214461889604985794480946331091305971658183294306699076044018404721640528601411573494100585226299078109489813340177066915717495818734159888932702383729784574271304476778917866974150070727869633546308249712327547441895607823648502920116873927353727591721641186069742889544728157258272547562561915372551417627205197323619465975918954237096491728179021292582681805723481338036292814367711876254145916725131695436214713265798462057138574228935365151385609310441263012377734966189168291600674420980138300929689992153995139108259113591626493377355527191116156998268825589980296302615255964280156374505324947730238120338692905568718307568044994395894144277155930772359144782731999301492551518595871542973784943377600380519904656663917242388868852480714945009458170555031818772220078687209818018304226538661713170548142199929387501562874589479666910859205184302977476189353190231852090594876509030239231473234446598341698300224251578812715806011489334586620630193187872844679751883903752555066443481560607132272933133122259157975199558479190131642845717893813240649503820262332588613555711149886760380336836188560828597108968662466560294447986621578307525239709068893174173874141660793598933402318270363952555024083662781355251942600187375552945934651631423277641405784559734251703975063956628401062218891009147252591355798703500193371616416978932167835184800891275415756234408766855276059808418211246718132725473032538961333707234637737740271402609951266538787720750886811039388048688112658169069544089945337841803827533577429773264342707003049212146057399787896022282145485803780993269004873384589474487438754479791535659642954780554590449014883013248661362018618505575239569788174039051909248018387559325835105237151109826161267441270922080506227370944517210914131688332927061894639652793522815817996121629996215131575542183022770341531014262476904123254411466593544851067147298930929686454173277527718412930283584661785175022081485643273779954401553363186590303033978112741386256505108061926882366507477198102799399125660450202676326817222173981265981717276861647295134068643804666763587247892057044405790795929523734531539580452302979802102488322054267342777245969260433189568268453835591644440679425163232470703880126075746234861559252633706900873831583014852464867588289577384741272376932449431339864665452219319137281200585670744964982132229361687233719280163281480988217471278976558543423543415629128581236244601458371191148731748752940729923463178009660799480889906380058342215869878150349984872801891680883683657321993847461045516465231019331501496333935782090472580083572235575260740723524479336454400032417533713794810529354269562750255441204416181302078303057126033368120375647867533193143448526549091850627640824178518727793652436778057120855186532162814069420543578147427507044863865991070301841947834148310678664647325317873424646167111613128408031433442064183113022214446120500202613993374892918262697223959274900923828183049619330591330448556349569968455207830596920430449449804531002971176170372874964443522545594643458542845159298942440758093236706520019317399935443314142888416916087885219674875530994135160948791686864794380051075115116393354598727338806713494227926686758000768591825157727568388700268485860540768953243034083804672951338668420657485617500972221504935438185464417559509111268270174659551577656023063702302803795536315836143255071560082637310206517289215052428910835064096072495646160143576710460498213974805201664731706847230812949817430170142598808052508111016544621741266830990224806838470746788607899629468232205786487858631315899807269950108131665590545904360775051355024279465337312690414060713656474523794160992614814831234099210306069582126965816653780278316092324032302220194163593496603976818426504980083788428669077686229836536978627328569610628844546650758240207243832772286176957598340952734131394101623538234577109567741702397400676156256002232439509300714337182760353694395151921598612838042263350980562551235561098643374730235553029111997330297610038193490522350800868814238195426928308288663201579632888579442816149922292785335249253813335169298353732238896548052030280782650776743685525305650649626710010832875484036991293439336274657351265924852299708927339610794280376591174318398948171986145651660514747190231400514713992812637117688649147866828853396686840053931813597397400474432342062274419372883789409769511629037076192014234975979577240947355143028750615978360080292643613277315756513944679535006739026247986953339071453602713965771276010633564907651598442705304326110111626742637754834329494229511237544391534537462174147964437260904200114910468245448314357973459896765251355706393115631766765358543088973894293901396845487875805173243610552554461972450622243928081744249437001932076966113539364607475096144457681205793003783931109071062170236978642713337644706884331765584455602161289608161845367469734769099369932631480951934380235667769361526764650592006129401195505452203004032269638637486764052571216056154620036220157445917741706316404859342346294727147712183365380183216122027012681095970688083165034536378686166799966899828709449188501193696046321099763925597437471488752752832926638539993715639371424313123533072767953908223347420325227100605039413200856300275779931351425569522588670187685334582153034223926061118534429886216042360672785338359220819279544539598201821445709243137427515771390534589234473267204993872528504874841417175725964173595495117114166955445899295225613547739980622618090984778582236836808809776137913822427615029344288134707107647139086830985466059130101074688770212215416820201966421507383834392451911082726025420578186033069888346140533218100145154133282227980785135135798821848672376619653112799420631819468530932850531174391529183087983113026614447263989733762281307332611012028426006664401141118865441508282613983891231152632907713573575696561798021193840808555889738124299085326885275835202403267416860770715455083850109368850763776996980093497362665263550201910189626580459414361920478143023089180518568308179489919324566408878145614010997034373898232173717578885391470309014851989043362839594584217953226883751742470443304435481684958481357358514639274974165911795404031694177032414825760378368510934766969877265426687822378301396541144117292863107557581414061488253979158727644721341029908015472356230306201863535482692517560878679303192429339875782445850643269360510234728594381689400689908528674450240470160934181742810830990618311952157395319848488316467135884334733073287068188482853619337566635763906009120475933313826979835432762796189499765925218170673848595725401975905741564602427754024868415195582557921876789927489460094686979536895249386741587848279644729964068095583837073778804345712387519982068115516773992130281581623245915374580899538497991902823898721639431182196075494271196572291517632007246531979618491327712189200557619680450508878725210163775950244304280978582138066721968442513692212761441474677624892562307584293753607085296088560530139246979921372816696160174318102799550978120550392534111350391299256666352178017723351990578320638971288694598316175157849753633294817674439969261239877599813966319006409846835135009592698992191894844420322135791756043957426333177570006192512043332928698551168946032220963410924863294880427648079698675780242040843667442678213102469730550402608895665248160775548316609327603889592937956121937489684032790077614259879338209664652856085562933752101808714405236403223487719627635695514454774576447502451477501607923059436111427805442236005179715128832516659163467637958617109998312236292899643418331066176172158408877663450056164805993238990692307878863751694808799197693243105728347883925443821532620881735605780984297347213086346073667010640536542264962226111228432054216000768856848915646943139887857942645653678846691667467994670465264525014834977459786043582858803285890644040183892747888964807980589036431800629068857538221376936109457570508593774032660240172072048880947183782220351079205343645118483029900690618092744717130004478873533768238021942845062713397131941197828512480278640759022459356293169794298491908533420055807732432221426831947993004338500591045291552709270300673810828837050223758791735221328325955477732695017782630655894037749605984963327344565405474149116055660860030176134094825133572490777729602432110398710237362709703477471085242799699203576818740668871957190279623699430176148968018683088212586596882521697365477881074543046417210098784878426391616582006387819867062105736275508728345829728398897240220716707007575191392389151485937184988403849924315233350389256848800450406158654914306565665646120080394852976104710065774595087829658212738504331841427619072440707369874635668022384111146416743759501021935329070607202917252025009782574659478556133928721290441404722947526218549988739182045269457918087951360543429493003365435801646420671750993916007081088052071147983997489467058411771466488603844394151501920842399245885896809697756374132008750870095060672817774629992435386044858990105680505471667701608942159913556335923838837694745265733540430717706977413970532473369783145209852065571455648465303505746301566538228894117601586246925612867003050621560790316556511271215807821424753025354307958247788251803651895709771057761716739116115420705002412741821416097262657871677307637292860072041912568333686605726090647146422364532402196808948545384184948044435285588763741819358320189961008170297864669572645646692499385485114582272947420476739116082773767307166594837926655049548458561584348975079724224566088439281727976504222273421903368278948915358856844406369653190201242316317824109008669007696592078035669718892334362138063214749543809597312098740392244254808031045185159102306681296645531571801078517515127624032331542721668629445157622180397809728249192263590738810826889369780478806948387835022572428918604361177236518518743269687093831575511525341589194904520030719206461600346980399164362738563816357218918507401206559841083787072965097641962382749050346807205528834517491677768389033959357149451055938851959928032868500398668356093655687052337330107782639028006106406608659667429620690347665575199706383878795577939793066910754901162917476054100224532167929706309782678959483887010656215133012249969886178119513646430833591867371212479357422598621689801226827359696133252395896316658698754923546545436487708387787485283411894157870036188156213682169576270896633655333573398114999836028535686375042891273532056963990639453561085791016787007357730301531155865361986463546405520088625718384729418359611159361946506129294780034614732751003791016029983416393451073457568249739257288065429277376967183636523236131040975751900081272997177111340746775281121855982418438068911886551640286251048795025821714095048926754329794539086884499131663148549007629371023052764764161501761800919448605299873209679948913681388714128519037205672307791682776080280060846210270885090292753903598082430275495797394998836148929531118031716179231782433167062399781563984408971958324616550057962845536075719472912623098833815030549027049868768144492733768964277657667591051440355594173740175160077157991386900422517593846846508862904014121168820092098817686269629105709791786988861186011284734942972451836127231233167167366461582152717072215073928479824494997963958026999881082616244285312317199291238369623320819566730169590341035533593168963878443930254524739896281044223877123499470984593561948154026994491107476028357685855340363988592799451229700744619030509617762361320880502785065776895441886647924988354537605149934235020491006461477896791555581559295682743890970117377449481756294210151943513478766273193392229257291138697030303646337115612024620610597170347337910922201593493348294154498284851736830552948912012066044322001039889053599736440615861414351099506228676004482673451902497122097077057904974879363444109534794008547966447425898446385005253256575423047242405148409222685732691886855087386417537983483297064057697892393419325814285897946014905596298984848832714901995085056248278544427402111373893443595382296066608191342461877003322632313110636429464322792521399889893695421788595113388256045283060279978140076406564759547245595095430047742438548629468861710890949733076722032790855419634079180479983695625897273638676431897068288914419302466736266085887111439077365850073358618947862617576805997632162030400639707481192490486980403603355796726433305603546402302576076392403153951142621367558139079687715997791298255603103969134021700132919051999984194809704910924470691781228934554744917369357132975364268659254702511924395674586161441859920682930893370205259111719951276211825238376353929378171440942042599313585249482554980152084785431362458342357933328724679375254246711611866354879860923495648735248017074719039772844083972883583782439334871333434495393640063158668173689615110889998829376003400698863671781517330850865135513938803417784266685112317168906386035079445262717098647442967282814815433551068464317869235542452920171089230500730558175345497967795048685668520567155272845245470143249735516574240168842411967812598933482285411185968816448891491301691301113891452443361768507835869005923248905063180608753885790840275707074699612804633210480368950833973003204706304094788763393921470352252696516245333556257559223481239642964275488567738370568855128072125187216785699173946980922570341829519497599296984839338706858340335869590571513315221261333440657956229246096018889387414663218782450216669145286830901380715192908818843850999505031421604738515259133008688802054457552768900643023025571296933440935505916479794744711238799879197100193518837246280870496193233944034391611086006664802789714191907819451444500894578147257538444658898406748794584326624591364367454548590289955721488076084811828537325930633399332504339138653279298017214231162413874444468890504847665617110809839724716612420852505650787395428942798574307503980011686130973467843051763587654947452752828388422825079444302916990201250186154545185437498026500044415373548340247555969454872791099342382038695157591016848869452935819441945981870212317994501208846774256475577617921562928651689722859293444594927438713206156181215411763507675021333458604571141188359576722975180291347217218159485087021194193977473322394811209702795700542163683172343222881585963139083681822337035804766070643195405443524488563220979194399722128091828192454495876835419681298663989559940680219545170234009347136117702877074173607901763739856995173758909239257551451491576013685219389368653769551765290779884582205448554873898739950223016726715724513092087586227699887664019201449883292423492690276568552881009435748195503126783068556524160859407815221434998512369831085404749339905875795860009190109673601423705313646993643085402316514749722386973360796346185952380054246019793040619491794471842239434734743652417062604741093891884352906415173285631247681143414055825169172642799482447784397867610815239981792189771277326213349799611014688820534967784900981856960367447752011737830300761567027231983773884693340964773292746666220837447728854759168039121624276225032577071622214661032814966275667937864169613394250646218448597499620878031938191667346403772192776073592220782934534820847086782214634025430371836210192368016769485827563613706170271123453824050667234546018860398352921357492393047821540932402376095549388748300001783872803905779712806706980257417493512357511047479439430472361729019764293799253360543991064354323392706608050455335883654009246926484575423786537529550704435176241539736898074159751956272492309056052724412886590529709291766464982040256208299943877577947910991396552181596226405563962242406116429419693029912336666953349017877294577995834330486731958459219654864895669968790662259325619146753015326161762243126697916549811516327906881287279068480093504398747236930558247945329895101929334730068370042551372862607672834794034934976587171293695708616979357395056721995963076796280598022596754910743777382516143427706727424547430599847144107858839231038643399842348341850343057302441820761228882868505538493778654901751574011632006769379011494776070470161650189165483080280340262254019417803584108443299144318147501865070055720215429227022917486765030050824483610682723596500194841455156125722846577131820705132770707835720311722038320714341154432454704984800288241525199314915933420066514872344763780099312867391677188740592921912453474947845449570359847327538661850289431003870387723809668321086060270321424965871954626784434649859322112021664508184054197427737090871813878477108605069180148491090454806935626099609748257112366403611020244958567078909364834027084204565984789797091446948885214392948313082710819408078132370949845645071660310714683214006807270998752767941274490072162418522615113983909812667949952820320005478101967356693158599936245764167214542199676693824377616884538721268873230594701118529937561097873092390910624852089353285409661874080971337270441966681631315894035157273083122129835728747163984553437123215964778206472203018105890866454586792868849507397092328720785014424080128559500395946141890533223784246296234092833475421116182471032499708337025637896549965839131469305517171473324875518161628998419486948335048158005680181503863767093152998829851902267116623083642778074998166048120958439537643018899489603559344611620913500730400980886351223429743538409188294039833784477876438971919171010624630387831890448477987582303739575011637669161054145274550941920031178717265394051735796002742512945457049982611878236927057367770258143141302388492199492340255001508952361883637205980718052060010392095556692287049162878647803929073519911365222438191136332568892152693720091016258490627953439794072434639459299782432950110178976424564446285973466740059430887666165537751878494452050107587746478593085651255853138836021865419680524633532522763391343593962148144801645987028747055220061013751548765789943602407350418542494280143926219820225257267806808827167640706153280964019379560614897522801754693258610371547709746421739633040334087482400430679469666873596907512401145984555335114720162385317301868785223333859843815518336687115564261643186806346069357252276365470567296803227571324133692305958479223202307431290228531265126087957348474702059266203962933348633684868779722026250724250002335099782071026970549543480986471925029906987180167634009288581005045369569117701489107494841519610155859876748803559785578295941175344306365329362503061294625439000769648046957667874314199545161398835762327078628610781754813047808085050904587812135868708937697990911611224460782154681119878839633356015958152628098885001543843050498549327009060274130816837996053390833855913874859713157535926693039002691458915849577853113764195194116154838111899706454183539288495635183211182230306405843707712855894801231313685453600462501655234339189654124484471620903705641123166852477936664457796250004527832573367802389875930991836108824236857660773974667371195549134899577417617487507818730660926863289749298715560075422742622457101584649831856669678932100228169831486237261014903231005966805120669728407933514713494614680117547866915231268352737632326011376926911748041827766307433557942553984431360912925557956583807295920930163569198498501293024652814921114999290127176729506435682320650028073829856238432394659016247653610283974888815332932448120115886820717585931665255325434315870140556569434280466230132980992416508127895094036541565993128634417091206803107482259382503523414278462244186728627947512432022008197118209237098749200896066901691724683294355958089977028253297850900507749075917615810895145599857959855602406881947291380041934140481070642157501509399302652941218996963061380383694599900336333742360377337739796615288604569977649741010976098039958663508732035321575358652325812706074779297409063786775523731832181538904807070668043382033463466986943128865605199564021809896985681759267546794229781028864760543590409364462425709765753372671391504877340690354604428111812866518605378419646749820443507137624939424755545021197382046747276225764333691889700215501017933826239808558548834570504325203656447839268840910109189994062620406690493295184110834917632709842779542380777491150242846978598231642114793785414852394895706504886612956969881278693916605476887801244546670912469400277581083337614635230708035797390536129988361362003638858709489220833313529942643518572042696633757623233418127997777081662573042971260661569128653339493639652928153944940044078087890381955049937498433635321589759147586555152199289399760988979317527457303925960128946134672793806121477463670830653464616804015856958780528637014553609528648653401771664631782689892530474319746047752287895264935052657975340511251252065625459196749389578690120153076221400336921027448357844217405483275107459109136010788393265618952961854664529529847603119216009019695448677315445775122544664967804781139902614599093289700226071709221376047315846276573905943115094947313357733231561352006719054976567358208767366677958344959074094333073034965272768581972071286294944516493096439102985229640797488153498116878710770131423638253970672272785772104669819168968693352058627306889588885965449990612726452037832136549995781470578758636656756308211336151846502608299135282372938015838756757244563648947043173709093049039577372047249193931229438268333418012921170600843730763118013805464489323903128932172423872780537660281173542917265883799107052380280210598300920315876112277454291056286425430733571250925125764654858524466646690520666432767150417035733798467591680842125872153125559744209089976765453052034562212764225415941349615460924551873729673683204041275606802650973737160858117725750660532285199220599598834972760716585249690725683804230753206384213170614168924591422069646441596030478366457081402774447010245498894306369452271580843879234648599449542137311576913298779493800051833153074975124344738039736064654460423631557448278622160683274692945821912207019408449656217392727501860351729846070539530729680662686350833585938750537293751219781285406479790015825208711127137832873753482242521983934250548979804356397465545519019375809938375499659077352985247719707079813659866880799592036997383670301727948844176055227573068750408828280848913564713054464400696469804392590101950863559871139575738772288268862670606019466288401024573305657568710571007472448421446538641147359395657152827151640876001035622290652761149703969845906902140771572282394056146129687403568953288046836681162425897564394523078329358305370360488143394036330108008576919030450490876581456640647203598106104460155471955450610969975515143089814268122167388644683990126660009439044862915555660792912089688125833330804026425043463435390929768957887108781727515052289919194586666761246148554717513188927901043811219668334756045131010394256225954814026579490199004276686462169901317972070376972357323126994411442882069886948261122366894618697817322088992725018324634213329014114856514190682571860263267937396269802703796871273834755405945362621753083960148137701509393973580655940931446120712829954248114922017442760857778371602976678967590472309551280786712146893473730563581995621355228448770556027902823273049994113118386141782904312367119639968222499784104232687940041860465485154284241536908984775128736497825316185391550919126208466677759860102686779611065908219863086894064270724023272821766351111100000987760968015501021183534067148414441454004413179523440086884605442257718726467580070696119187327549163562682542654951508479236294728482570231986631263169063326334344654127922872060649683731681660143280546108211009112383429152552313160715254197392874794823644869196531189994280552033023254364170686874650020312277470466962935885268361298655078179302158273397731349992392260597426201239689617187264879070292503221708978106779524639632612752022593017772968317115425642322652122062452956138519882526294565453497607710625505872967390991521796471224374540292905602463225816037354284918873663598936342281517126193811279468334322479819484825339314128776191917020802451886847462064164096477814829247921096022526526708654099636827370357699368284565864789898151196783681878233815453221151825646573519120895049999466103086082693410619307873640458752976467593681813660747539233153102713636400170115779189429993632398537139333874450943665688000185590913322590935264065042462914538273134132589328886303052214183225827288382335980560595864845406692183335640133641324327225381440457195162492761316775396328883587883948604382954693228851625665086226615439017914438977502688536448412863065309215941005513776852727867306880138309597291124423132104734622741232496592102873261289470626978268796062099816436313787364333853385318299843252991025044893648334329752652247446740489214075616374704539877466787797964807187988380123420279277116430121688356288783306424620167176343510929980350302698039299202632562303069189000943675177356138903679186690150467723432255879196654602798510215728658623192219147725994122777156354873690274127960160573575452244733332254506002374991428639471353465794506177550514683695890346752479718837502254594006891483134294668156624020353478949186868591045650533165969067187077290323177311701606664188603575511726473615748965506032107144709267461191106385318653110103494807509134368980457881086554994381129282167983674265782534316776947953630172280880857651583105251456684447100902304168069488066644127572217064546678429799043446996947015613620832062782159401417071977196595268573376134455285511233953336500839597282402421289480245870608036149442290073526400370116913457934165210059823524818579666809732899817408415679593649439584330603281912229553926079250146411143822697084963104747183960284606400674737369093690276920336511287125243043724564499432015694605574533574171146471593411369394824004873344754270032202913436428536331859815466438676135146915058461642750562208197793416707113524528235383872589605495580328690587914036947902532570245038841376845760881955326728792874938040824923636634024267610233065495402401540604787950660332700012821855278624792545774297276318907727693292852442991625980255261325749736590187113976765550364864228932496053755001242097505994141610251053306998723260536413584813320633455055075674842701247790770937489354713939275101494285760982616946559540516703145230328234126613588590882326499408526239362729996083003423909849036132236135314275952369100999194869049616876178891368373642937150895182959585586340260086943977280385587548702452212753609592338132845134166405298563306478202397107078644933817410376823996134853178264537390483991538812558190173162925177825849174335553700237237685276634060934608712090973694997341160003863403119140157805820012920510796126315254203244526477682458874830571208633630391992194737681986713460011731666677027936645317629140734288037511809274120955942616696763025402260717484358781897765890589773910602792734492376184872927855083229536155633663841116420709981133341549178355977282723568768576834165474082786086655928998229546096048987787672203723739023024901562472306145227941856832893848991698298592261294326341476082057019935406905690805897348663670261770364604476997707826071758411310843172591460889189013678885861299405580330366259977067060155437081599047229816840586640642698299567731705958755741847417047822525900084983190165528067718951494853232440201695658465713753027341257094168516835434574402076163320781169534466455017529133655717956707949661428492962756725053818873460466733133384889291690016097883399033013708131092026779475017474534142131371889963728953989518779611024287402134051245679493680242755511580489994592828115613512978281751607450425876807488370700065645571543840108273057900926621507080764792835612533588282435805888399839982975081275983612533769620551463981897098443191687796503007203363274538782010076691368240298934342533191477177242593523838035837916489697855269968979951806000304381407347079709752975453548126039175341851408633212583662924780573843989509962296696118418939818473384436921669028537529442779965467600926186001439941266138191652464692263603053400208207502333546490852896286425483168895619960139728382303744919298779411111992345773524909941488885219122812048296276438066360580848385937352692139226827106333988595146814865933676723628762381234042383152707034208281718360031577780033175590376096882984144771963276111936202950518475841391891144423486367822158076061747585481138966456217702709245360904169868163332943597721294161999912200603562781279008802118942370310630806086614095650424672869502253627338582332979437237079417586033425767749696274982074014458850344101390625322904002008042855526466055376436059324323325420384190007863872418736114698269399748674519987901400062331585148706165390077401619027797660798682834902376047236005284938011031219418364489290516587381226463377604757041225473415069042146875067075123164082633036725291043350615843588166350232982815257820369370722361308178213809832789775580365875425366262111627358477199070254172616705709902660390704621254584846292582490856545018658388295005376009000858340956281255616260574828177052713750064467715198268010646018218312518808975884372013402321876338080419280014205097138842228356667273710860455396138851900852404026929679743529081960278976056097438991105025079602924768729763693451790288945701077875581870883340321301446035833612156374677641275082000763791598862633378853799078456311857015656304808508941057107230115952513680056414599226392833913805676995657495910333297986764298143759935358196131516303540941805467929910892406613549607598984606206425605508002970927099736812971865700073578128581409920773931971644353539369150501572423390314795196025897581018280446091044279520954980770114795804472186539191866389595460703370734827523287947504446249527407113246958122644751092360322595360265127125171343629853637822037333283327326400890998331508108705636006700150513693112103749568108660914476416576566916271763726092098180448576591455773843486247110931628844002573858949342223867609531568198272706006994426926715116432291935306199121468646197927045996863875893571783501170371358652495710102415461026444966258660881039058940362749677763377190071813583536188585847085597513480696951885884012910562727255378357165265634141879797091660449727249824489032726574833835322466124383807086609256139224225425533859857998968685765861699782090607869057517639257469117207613941899732582244618365029839789474516345403413991181366460655112921719895914659895384991161971896648138146765629053850098969500661188142032834557637484470776934961336119930374833943242372975464410034099058313254926089642159971193554613740135187463423483534753510976628131596694368258101849466806489799302417822091534233830673910363059036600517453741806741862894474934093389446872644753230223111403713100673437887106884175479086211916944419651166101777554333415818233653481891781610491412307053385059883850523666789417286407164751688389530417357669163827034718122882268300352455986686162286897126242424257063654144483599724618908705948308085143593270462233194258107196359727037289413778361058063399499139973377720612507810711193149668061273924968656406047159822239065467053672803779678461418086571276003797137974726607979012072313939554762162421307356440232126216264401710131475060816983965744018708541099162710221951036527845958373886775225366894626628497540291970941534000144693259989948796436385706421940434314157269221699262545553761469692651934885681653801761318570800610432183460958288975446071669195971872712971828631875755096321365848146782929155057066360955922019782136117882606019725990530875800963136574416070999699635199258899778426164177566694835697301341515139306975051871330711124891610965321411021650511735236880843466175631956424335392294354201682054253579261886059351385173217477712797788054805758090612832102619612271673133300545164293331738734214401013748467753057192971558227836535545219827458590752509073072444621527982595080982856119926180177719537133703573756711262826709116515533337383581209278118293622396174000484770895397812750078750949420325540864942989022383325122651660892509115069191450245154029007032813437209459460515434681681480486412296573342465270879504625787976628660511483782278134115182938502938919947177778367760817897557470092964515128368990277699763737558130338606737124716698732638637526517956492843681871338482706450455731526513986122971197654364316318066199826288828252895199992035398747365520224724602202689828092739203548559419935012429759018199371313050235259885121097590207022225415699893530648445721048129061365747806111241864355209353719666312296875706432069732776935104750642353896039859146972485209430412494786225953769475541379309856033703870846046998212477960329336163121874222951355384207557046120522083168445184805221226037075770055072162210240199934130327593629812470400193151347727042264845899328048661361299396269387098040502739344379955508550563114739319716299101453354922791614367982790305826526228321415356326087484846082810716953580546107775645049076131012033613858463105169826855976303773307729731300253762373217156187525426489333104649056086094140866368553155602836420070124301333717433317981114772890074981742223089136223735648334583172576541980050068444181755223185816275679954045143093994028660189764511901878627583468864905687257308983289429641442024985566829317976693974737206982382975768533340318827991759378766099929851574764373532452118998302267980258185565453094458626136406087637507191125722784359265351333583583250824113262463586944551688479015522783533483935461827348339420774219286932464601707487701278864867121502603761842377202451494748204147882319057389949498110292378803438623201345392734294779773748555968957307092064905810859332066804786704242282643991387122090120982510526904016844993786851603240177654044071891894886164327890501711789434889103175200831645156528226898134900676902456279711847476810355875732448814722388180703775242665046790294014659923977926320495549414825442834202765224626491009218795751569863254220026935505773494637958661291961674669352824366085836030156062533425275927490160217349492350497270110631211264542960722346331941399634868306153174462857486214278764263938941169272457489115212323373304121691658483971211408346404732890937739391915807473909584662134997069761153255766439783397385418387371211988091795236388829274899354130870312045932283225174294172017744684418907025595052802138951485139929413950004082501006813027804029607881800430440147441620771550103475686129328212616538307784216380869746928216135021803477177821729299135983386757059857464494804649801240783127938210431348569481420330028657845560449167566044776776557911124466780388773940401393258817058703056185834772716183547795727146451996894368763122018588252001878886145645184258100415741193297240086951937654583745878339515684662439382348971914638323424958434968198983051395325429966907229339102239490171617982114488912305353735670195187771954476948893626675862033586229594527739676282378631996288028315626168152359375286129337719928214293920133986342571336897710063035933633527993452164945146810052120972316151099824277386288233879106921781376331124589734971317501246247368977965423549412701363177965582015873739915522197289832645914141203791954414444842032868874720731022091675073817556791901672186189119518802669244123275076688757766008182792482992227297369114320897708732218509813113393454642061635223630997244569494726687560309796806416213248587152047485662795355557277797830082718351597622625263006913682623293368330594213482928903104542515040755507641384726595323937041484429340920624578831892020075008190404954507801530733711015783469404597380928788422365825148128034031400135887358727970327258046409047374685392301042252553718445648597344567112024914977983989688561547440980317373014405499026368619291292459306504618764906110560304768673228863332991974902539140191494309011450677255137564405312383002163151413445888159756410549159242089039382674863552923414661825014951422814720841508488684217709336390168609002738099289665790443565198954498637283069224406995289582310191462098207735459987685103104453582973625791302900382036134217319488254434703305854600586300768497263996996961917226126968894737563937972851142938054013975944030556619492544269168662327981781459306320796740666257229804862429993857597919622316531284535207658545434264815305015728100663760029471653564645629515412846124345495219283280299851701353741087682954918803120292491589180474836018739004859182642680274687412054419750899043934489528769037919090092103795065460169563615175231390992106208624090441204751384534169602439710257417841598979971255440858774020223844217181080935490221940751748298916515114244703194216717886036434579972596623261443367898014286136403850743950481714732438423420435969737649486212550450351037509064804905447503743973903618091057802502723603626109077145597181712241813122916313373951450616035495705391766524263183257360883124091101877580632952159467349659923310573092311170947198223266915356567325633802087004558838048738987427094829022791966344295464882736526222272116211659696584090086353552912946645998859288085607214072084413349347892265517495597189219634132205237834788495047895433889946337230677686999226654183517375168490827664761068699574478811451405300872961169597244690864266013419296389403052288851237698579889489101065988773321535491783755773696175018341022048772699948843831594800117232239221600893960678301798948503788615290924685927102547046655883461218450252284380810176685277985447260213031439278015786160704463219914439622705200029385100592803570375376366034682802386032875933847013584943927615099975199408843264847078755516494160513307915327235599340871022256115604024947188181064233973167850866775314230793994146749233726470014720460528052485269994676717984415942562851276445509299959266738546375562115421507416722081065690829445349046084814308749153123770261370346572242286070651864258513556123518226898969963199753883834689850470760736924444236252925037440345019982382824929304924767454993304550484180485829409867129761314746786369556299937322683803882577264467372070654955068472644044917630545392648242834729271453904502053371166798030440925860452939363950566919229452876891268215195544112447720715811503444478988737676029854326051479023872327985623978882218169286900089361683520410124094890300554885761888342375666272098375165008321254808243482430085891279285225470188321465850563267324012465670340670078036470291394887485547818132753920292993854979341726819255095210262279821751914348056039242968385117378070753037958952833434796188005802724772808598661011281142025221259914927254785735229397709220822639839346816250160589243921781477553745607523507917551464659459784435221793029268128137463506897343316403966455369043026835598078973523097427764349060434202604633799503972309723717176124874514767350104016547139517207876676204486973909912709942411592014858464210995915455925430377027076041970030789547383208885386077990046910977824806450196836560431900645821081490875837445148312408182067206676390229409782682834677498501230284994529649975888750149212524176527560928426274510255952575863432424873677809561514652406923857279738138896100270875865858431690681872541638981720743930513230599891189984677375404161407854813890555489394921320723178839564375374823197472072493481471659680403449047252286741308807539727920925691758729115724426693246967181550719827310704993034538535542839167684476291596001846195377600780076953608177371808171036275971518021555673422690303661136493096725748306347336117372890269717524900919028867725655774937267611368196326961942393484598335373654926101898017787384084688845887414724197799845108530679517522722771526021853270934731477550503548011393189596879719964281817449679246523872870244810233659116342385421493509457402796698173524742358940948446686241301147330994794137953675420117592656631949350685177198685013564108666774479332277420552193527728166003953259732459867752797524462265031760680265730912607812280072557277556886371913126705586397780063200736848910572787983190314024510472896686673773478628037802746192288941347252896459791395893275110609292943729861228453312613131710646471253519082620002159350187044167315802121593875123658221223709991541414504836557258133585259055632281746001261532248635711926413065522796761894664120952079802594682462497949434326605912280133544213088456362225104564145218448720059604484220718766887817818236422250789215229839960241042399741048465906896860827285340052065082489372297920640910581305303447628449947466346653269767119719909561608079733655652177832104342729217755046980162008727734656900298282303846407125360494202943613538242276564528670541256590807691170427704243250533152414037154436871086133335572664903451232895671025323523234875076008997347848372570542272857996635962173414563284398710527129656664914386284917456833721838722480612620204332108602055618303737228320335842850221490304846150305335315214264351799084373799366783425860274640106448042559550245498880002929251705108574079625956929485312005983988129469162568993709113819370892187542106202575864738110692004743086427196884391817010640875635046664246442842583537159791692282500852900049988598888663871103881343478746243637819566839787477832771873977659193869037467579833706892719645840096340435779509271877522477103844368460456529273074937702360423867432456739573928255938225241237786247316854969392220594203994766033041904235267241629688334659187660313586162721504629142489797094426016082492758774076347332579191327282383406661547228843553834615373555030858640467886003107629003796041970282726508838477496340079110939465964546167271352437470870826640522384458139321849327036089804204033504765098465459502661261449901497180280422679345663960065076323883611791033513168682671747728054388288847544582889199027688578952139256850293030289331796874702281443172267400259996785842790273431280420769625337015188630048481863457401167727041086580542517201279255789315307785300044185316209220082613764018596569772086142982974994462726359660790426671022472291175031097387371277126996798393494531252345702547782800586911519327055539510249620085704025524154603644639889145326158124352800053823515319257954656836091787439066045133310105194730109066876356084057038230116166520461817771985313346457910466872335824402907012402300822672940396492875716618577571196239147851181557343692499375176844451941111217090712942453397350435280658235439587288204941575697448481813375483835843839998395583437086666468523373948072603468086552888857025436310593358021263747098035991412594706777234979328865574502869878437899729741918236344258239715665423728938690528930019432089645655499270065852556850271602472376589788528869063354305541026044452498951407121489784606711128945509998947630902618390975526097242329475114136557021160337254276139802521901306550167898240133652516824157497414747337773431647630847714016378911360731516411119478431835066899375051164380785172554400426530263802222719745741492869076228062735840634913368192867201541153668034510118046107933915705076866168289341755430821081951401623072509879775784025633603345110752640580863443628522301854824900659327001588094682112443874140727880240837609024228823861019970129567549706158256026990377843010689342570357953728657659976485348400668907270894567183131036207259880886639682579171721318164245645765358303961236143339925845379329416036281510227917529842447992258048922618829881860779822161700621474534002234673371439006714369881067622502976394399818946905873062519034265240559475268672300875480827695741200571713846826506160774737185621972024711053013161902182130774707073237195290270899532026879012860074929979030225319738910076850897781102256596831784378158882370917453697820075460626214682994887461449009721861769377622081971771668519650894139620576679568798021966570789500420206404465032212817458634498442212524420021094732217687680528145021642928093359858138939821365011294612229183703079938487086441303453643643912646422353022652397439446537158271677906225084638641024490182465772248420750891630049006721268949418925758018153238747920394231869128625462865794889063446027002565403368718913346062630059476677727691010341022519719618270929385147388738585974626266695542070288508481763323317001968759290937287464076131484304906659112296824044105072303642197282829430519175163767113810430332299613397285432895698270863575996887857523665450520722599591318979439340460568282123923008136348529250694534517988066179665375453821797022462854936349288501402535593375956477834090012743286212793441030931223633110702163981328602977654048256202956020980580175832721929623570310066280330252749629123379443006671037420838999507316113598585988504938532314954787130057278378265732325712300349872920885519767577262532368609746050892339326180283863188514232109093703669772384960159487230164410128249903045462455720680189564231191188495160919778756300730163965700496821011160186866601485152326909686576757930378235279410756707156395207682444362803554548579919008727162146038273703830372509209308944985861711410808930412616254395157390017982027384452429033429933477758093108672609408301999052236842951254163932027646049003707506228340271387949521608618928391678067608261624117864359476367244565347356017144276331741596340850943712113686483133731435156766141421971742687513911822799319911438918521243499588479627348960546627584144248290725606511058681428174914451315370322044544095864366519119966354968171581751277089830692326825144075314622654494262345457437187480265826795521360604985502777987649171023940169313941557668169040979457883418154864423517934436225816241781335497636026562871465728540103686750488669574552874277686251142823803373760658948721583743909569421083095723805118716386272106016636733553025731848337472289558970420491646606420711332722186868805610216622622369006608487321940012851989621435194905117129202902024685885016519927596398544418469916443824556791872823734711646318496415515228494381810378039875876912933582667386478573400660433354268831955093379362290713777663444166877154127778815561574907368384859184706607711288975648245172574149330854250548851392489119589831283934320052747838953743028743796851503883302732646099611233617321357243067359649773919949489786746356161928533209154058797966703308401082332237398232900128143375928511329114024203094394129726396700993216506725928334765601936636942444306641006949327288176446616364372387459335793735767474738250188994431253917922671144985528152036620111213580215002181875001359009852906733595199304886824644493563154353826093695593399263351213886613635597355669562233015351123039728313591004018939450424878778022369549812698487005480314497425636564006225356001956582077681255210097688918469105967422866500819760202270357250255501274248925584011360466667878204984932221886433284656781819981443669229331121098210254211806621085310187742696387633924829402226213023439719693979872319543637297396125295604713797440709517846004867805162060053492442942071321333471520053845709471565264510664235646394952331914150729808724739911983349933955520106752765471214333705059853663427795421419151312541433524198042196147257001446337277742173305136294141694576096029671816581414638510872201968720628871934813691617150567138385685570169748526583335181918335847059805277159870986406778741803160857971101232633390975644857215605079732276744934582709105003622487247617419054138493187583069116305892415361906285696425548383720604072891667048753362781874763303600171575132804931166998870872809650771107717178216487161506576318141465293764258070248004607504153303638998747610463156342859193555775156143075971574259305366139935208573904555314063187123755660353917256950114716829712309302163088017601084582521121537896855287215992407107496946602234719382232140128756396884321279728543617543515357927189431189274261959081256606759875117904148865260282521284185789548011745618544903296287507122936039595849820268359429198649715692182919770855295954374122450318562491151971981613207863140161122171366324160908260224552299220718770291132234023209624940864040262947720136472445541903142517653517182448148189105007639310216563172797570878982669770110628882226484708308813956938237808403094747483703510043819144441379251262392196560029918777250979090536483946550822083986068150041934094148277673318763862688536462438700919299260038007836427634526317954116351960964980510868349198963498235235109810951429746936183032121320547645855405167322852609007701435939552414344450151865997544862798729012402140836225302928676647188192692931273249045096213541246765029707519891520902841558785200978500530049822629639923287156001056093938174483933314372716902459926417306813522064933969758038431972384748682878858221081786499999948437689294924235081528683474809045116184829244649283409616130142332617254685365567619902225308317467577015785557642277621311005216982160409330003156337202852174379973740331296066738024244438336786273756016026999709629954699531407016354539420195914781109945150799066398765727352934520603821302127434077098272129749309436000209077258845009060591010107711508811274147107333705297240652283190224711719651106354202748354258891669659967435327612783980661350330798697489192339452392564217124180165323482965144836054132863814638796856047190536361117339456513138909467341652669329235422184099445745551163503576617939697756658427037054007586405679264682073325801341360953004672202001109215130959617574717652151674008550584951202130059347036987041435974134532000726035814067965160836727805975473091631749039704138817736555722289761078711856651065122170795692292265047323126467156843102188058836799157299319228869439704567174699521689524998160477369449023239643734873904188544663971577939705985697692358484783454403689136305392856409383560735715336795767634744110531381037952371697989764485724999476684053586284476567761541246540135924547261497116686943336801200990051297883666747176861170262669619411158899078905846848106891230032142882683435355949841945527650057522760230202160535617643602963833363649832273167709286870424232734762446700497715299112348029936117387842751886897035435786670487326159115019207833359836710722234399853436072934957702597327099484352851074544653061711342236859278980121946867966325838886829345975073629116970913136933896960669114332155584697446759860055631904808475756257151495758851383834060063634602092561849864585378226989118778280648905927850398787327735104509640763892443495126438492997158257279817902655646507912816266761945618258376727007032000719152402794984106049187164801363647912932973104395832586845851217483043913034295245897283462274009144083481682633891906962931843452438851661602625826045590170507207708328284320699783633591902261578886895907016954065965286821042162261585196061162650417933745298642622289539242310655068047540541718186289865560812806153524373395860252701495621741791282890093658297811792419037946318072962736469342976497865331816135632603399540365168582056168171383910015889289785209841113019306211933484808549613151349289167152076645382767589169606852449903263972405362320799819810132400047219314861940947735043096839142912465602512607323253245942978202277056071958540690936779668055395372063742031862157400626949701048088773661677736829934903225961984103611599825453716912863264908746825961909315917861374307374408437287835734653431450188599168763962521243656288637124375891961866515568391755800710635961429762424352834376094206903587779095509922182848759100293555763772547892002844662248986691837761340280713574620735955400658878142698938138253536515663400453711588457378861783582737719024362583659797033378738614415213387129956312379657274953886891623395193673065192997518286784108516814056632111835116411350193358801633083995306793553642205127706737278969869245386222739582805772011273382374342070977113001388974904832634482175248362613164717741890872090621291636523381932021611687911045476484323264439558201930906082398130514081738065074768812700035320018178631572667593116989255002441205951211210760887201340782212894951830029529607634065923949917597277093892336956549010104440874952164419097361478633773578718349281209037417958092402767046750853967490292685271876117781320722132856120308287007311369798077017068135732896815271364617030438296803993855344828803392484668963149600576910719037620125622664895304358069655058220797363418312800835536082642408744132415387652336908383961168835234909571496252112274243927264514048975593612080907325869974279244319373362377505835214261000877299852200619469914098321789874938572586797175627304575208633890840542455454311069741450785951293102582051523466684472822409002537109145197173790707921981651124704856431192186931234300219895120220089531263817080905085993438604548636324291586346649179869112891864760086226996625837724152604630324402368480497907446429928734514602778211779549516429677530255662020633816374406915524992464964054990047472722402041765897944312919147785083240230987020671739632887967007797111269171519028156491246779755234793868579994127676818680187039203056012302458144299125243323578543890508717711778393765606820726107321156019750719969156682863957908803412649816778077940505112267303344070961269442123771386214395744223291450489717649209521507163424116376304025587701366217125364000855793259299481309200893964986023312304753626748015208623642353481784203772384954648117300643774771815427788488532315154346068855958430154760392175568320401913878505141437630540883204009593305925363307858949053115285649518968983591616984390537226206770205810708453884733146280324574891210831699177687133249154278593589328412724844773939426807443314576345927517902610286818282432349778258614410618602146224216190859008133228412691771756567566162239305131770881580741844111130465194679131824446515049486146655738853287459175454339700188128049867864521215938421086867289897366275813160804366692664359332253706521489273205762967769799679094731709644103511582149909317012369193416740846537702613491877408575130981014938728197942256835940523586719969674650149625668865335229156823740399492046213634007902455203018813208078911776314205609512837893116128671500265337299799371123982982049367717657452303030935432434266455739983037332525246678077308307056052083102080674893333281181723600232098607909737940092596547816849542720797423938487893310049069637146603636253621850116593820848444753414056745436865427934144736373224631876106505093538719956154861735900928838965849866589263532309402746461846969267078980332916023746686966559776013349856979977205026019370986195739982737083978831561524793247544565286390083039008313995652940034781456808431674376443612512791505182827105127867275687764433227213635680203415985277645125766039434447074137060963499504420899327082290827654651014516927292547849975742516798800293303352791263682733652696737241250389284469574300577926220304221587808484046293533115817695864961395560806971907368572137356792733661402468581264998396868622023779217016001905352827424036109916762896160942198369644026725778122035015443097417200651151582000247124841299999259023645514012526400735957315759938870026900232985995537003966624921861613375609674969434449734558031790930165486840144473242250173009958125033508329830689278984915697565953386081903373745653537345793786370956648689891712397983675394092238538837584223735361569365578317727305840873997178933769687540920592334904999616691381741499816627475833298082983106716013965879978946045945807848082589893712486018132756044002659633856837342524913808314603824973528347823925964156339406960471640962402040290853836684381433606763331975441263162731324418372195182402467999739550904682903021515746609290015299316152296478332781660445228124400712089494465940248462658207909179742967795051738289753407436235019784225003078513969262051400471932182487225803042491230360925616059646559183310711492938597446413499429873537879593594949268593435880540276205010928819991988263294713143834964248024706764354038513695484870994967363779995210285505970368234368146573146979330362944744170224355006710709792476735366579312589192438131516435952346522620187768370748371938137461893141556354611804585364792159148492812740191194280325401047564863113434520689079891225876824276291803581916957336995378669637895095942066473332206995340609446003558717919120008879513591031492379104751562868094773344419753901974045179619515621628654053549318407353869010436215876441585510512397913186330360882038148636835534991572013539322102498940642384886368254438455943145329488571061566307167234569112956563271386453204395924267990559485649963679322881861135833955340713108941402285824216279041122441921597180313192526928229900478087281742168170586771905644436356462542755309414956584138740490450292980961403830182869515481326294820287101925317194989164993693771692114529001716629172615106852136533006215997966904892072748792445358898785628329046136228779355126814918115284709294640992691267375954794634106512241260324520723569284248221643585888839408301355137627376270720562530762634082858732517007452667332745376808149171648399639758706069296947630826016747175048473078772218073072826757103087309915317012860224209928566639566020557422141461561111336556313749885946311823633013733355821781371053502484193547434445184934865791976634287817253212302910922698959869085896318164434085588335137138593270983739500942867132110978487923543738586499098735061036642950538714111470478814617573974819729043320493042654533388509801531390266419956908398678805259849838528580589039526049429706881674568082023515309794796153490498284017765595139114347507337783005117496559861940338758743782302426716567954058264380648798502332117222572521518754703355480815190714441322384019215145179860538882686928226845927768585002322432607584824061771546989820574442080879299006560290550171107713917209287312000235515445434624834598515169112117907752871116507103946222510408056984794120987566380140897429052001256469340142433138274125724026347777503810155047466143408024810722539289176497750364616378884116942102748443824740610608390617800976752550163186307694202428720474914261003518652808601820387138511732391969685230332801443147857743204591642353939062960623207099590846493958934021276977819557054324081966274748709971524103848678457982815907844370777155003106873492047494481779729407768432700307458848106517136556037878633512681303186522389795729003672983623077589897643154622865358250310316713490979858757373380813190004903677242721928568208639611086878428652895920344520211412862368292039335441229950624054533955307949243677128581373255377662136524387757759156369618392152630632423199520863892505819347198203786946813512353676148871691689799166983929436885893917026791379841079183330472501437847391793643926850688494658792755756164738891770830894923902834413291036028010864852825312856736079028242034428205946349844324736310783345157784847762609374314266587794745657368935367783104665173843923971193268811176406898401876916818943036598558613930396370890142052937253582720054831602576289890492522866712550639160674362381963708625326985318480203315459492838989365982202249151726870381228343191169927190422775435765956861428780081508961640667034295321518920825179008187169898822322773067040643382139186086252084347766016800071695362970438387021500032981295955790310852836579120186046575648315867621247859758826315548283595976754434008745101241139950342257443162621272198810109937941349109720448303737117318474174059905108167039978521758092343024570884101822254391951048001548222847752825751055341068879946031128779061590471971562033448532105217208590546330848239529816715343118944314646312312602725090905303630986681890775578985605154062922985670974020872082810081320780331451441888335723720446513726354770961985601491052853077090376917883756686779413620809688499376113635007030760360454787209181146371894457131530690865346629310868162829286802844890813847390319966190075462451948280822218763134724260240879716249494986389267345974471107235837310927418949844984385312159002810982045044378913332437197542623159232776443307799199633050106891754113506583010661987174903249059359492375746642719207508649698667259825864668903954031959800438015816531883441252775547715667186206869666818140615794395001510762341217611277516163594327697988756852441250826034985562087105962276160357138885002112750428414466788220011006742698687198707782129599226942043933972220525098076463090350305492731835606551281954219754498968571839398968755694734962011923258603358218245203482959415907852255331634418697599437113383866090286210945285445954167063011031263393788271044325242099351683520306970255558636540493829264514952811123541133028872664151079218352140678855558314620525725537070171425600797044028740666593802720941139180094805490233286194889895342846419988645917625994351783744443205515803104570530535312608440208556439538651563394533507264105102886893721304664715220895155882525643914037339313553882649398535363585804237179378487276877919769903013986719920278036882303735512331283031110069352683905709366250847912808470706242450059478232494357032990407216146755384249718044497269507722416085271641852436118112255096559840041708793391937817452626437876871521617378857548385501596384720278555813568504590750510833589996635217263677424255861576466572200208601170394712701897788934721701318420454509187662914661291517852534051530366457951659398192317468040376502186886174908061225873975735776370327851556827607300522275145259541313685054211563247908770199979958616344943372059188078753186878613216723500424565580485993021829548984392485157442582631775421654226260706173711486547223517204773004150034227022415434777306148557341387097892698703113753110935713443000815350612982285077549618475169285991446820611572613012497865211199027295101610186541471395030758443866067210735515338864528975404604784450231346640853419603923556409063528818635881811366450412034961720274661809007008166079612324958385850441900004014650272958741145413030469695811622808313004764719401845631297312541928019181197036033852847620259538505713317162379458690212702112286274516436253296845390911297161410650848577422299834488971073453341864566360320176896410622599010300641841152832281025027037125424775228367541977450588635035694801999783586134095788777255134431733243254390510752743296017564291639181779132873712770436393840437483601770232609585389441185801849195528278036966645868235402618116986378555361696619724082175613260336264641792094616534832720561034008368267655406775072011977915677480938647516942129165859741399715427199625162196129610112553294729424559751837829649963509223738523084887691894474963158716309996146216126843129946874937672503843145019438556524407540881303874821824338933334006711294862088620740964648533477533625197768959058346129001468935455163136589513526871600233335268707766413626078979442105050023424312360230103823763689193971387128396421073842685407249414139148805763817871870933695711260082363590474963986362529822670815518254888105472856937672316700033338414437476103406974241033464358357965423159417914579501101936420071636105607952631883222471483185239914440852666674584308389567295132776932411634210774387093311244622301791159077928443622652284322799520452769383781793978227352241301319758323723066404724664970591637377733052952868771864283177317907393440122915962569751714936289354027427428124138763686868361067526111984453334333006496935965403730938013469497985924900686958631131639119041355356526565160294272082282528910520681469977770435033444696486677849780668420720839500724039816568255532661366945040608908706183184683156901098293536454044487731432859515508993757963721312231422631068122367740148583453796515694117093463294873738255070403723105621256072722621546051359677808040437096335406375643444678593627840697940586580578053564421743631689275584062638186022332568358826190068220749790042043829587606382680732611600530830598486946921505129773298962985049941240533326178671171047184629470753142980500197184751730236123381561509633992599403595422918231373294369172600287344516042044495061828427022474581559537996485115654623929555244604415913553983411112608695800080443393623785548613238440625903235331851622263862855501835301796245233416582095389647125226351330787503916606186744657717143543141360646188832342084984464369512459015740578152273513761130306154841761044962115007686441556987821353320927408134703685358813621380283102126004207510219153811773168728930839474203791182403653560686424999962258370457840190496956337008423215049925158825202220090088895251719112907592401301881366630054723346563091995333776308023327542361999838714163312868232750087573677805745452368434329458884209017756874789949650110828703363460180875660381111017531317903103071113262729888691633851660165585959756769921559863980111426426385714764205794943832363636778852469947850621038292699654192683382665493746454248757518401114850022721867821636665037705750243304108534770835492718746465233474663690388557124448286512029267519399808023151606883566559611438793968977516038176588874486266085010787419815453528185127652503091869395952588624274734779730890524593185819461367509623019092600046251214285512439566937103002373074397991537234049915301380573333937202386795251410368074507440878091648409689017765390623171778781506123409957435226100020727536744405201967292246430904453752047766168075165963960041116900955424390425175908707329367638085643002899762663397816769739667682766847573206822319838750381480887509050305918824578938996175675541071360043445258294361029176703890490112105074315654902204258710277243206760451209206498773299125633449294280509264065898959806958086890148400378553417231940578171933054333170428495295731581025744003272279848361667353399875679171752037421055915781220664824664345389072538844870182790290845793653360637481707170561293725828073134346521783448720490378779317192379286151447050706765904672976711006569000903008552462162539604311128804867216873994290845668155341815260358109928311842562246844571083683055879802559926871530790191280972343368337510573246054711904486143907826717789449395118165352581511676533693206175385773467760148983969978307894067772295436286107193112443797616786756637132868644830197994147609648315929139569043614474070651569513391990983163801370097794067396358321555339382610587377965874414684976545814145434303015329879771712345013763453110057535040449544728593124760510350778206316898152109460187925395463560505870395518393254539575522905736875392846530327946789050116773614154811743910201703049510023758764434397302466214712090183227256585245924713874890472110856688046572174873543491297270738541412015135854075599133946015550653363797179097319681609360702066182299013149088748412271923522577516371760566917658010564485032142953619824024917349140096003356280314533919282474653979424861523623208036142300053482116688233745649219956688168325435651974510993476338394556793258045094370084353701191433523151685167647863932225406671271744431277781898453081121244192616732940998072647210130036687950274183059229186536563401086884100416934329249059171301892674615852682704467215342387447819160158424640259056587473498499081427031959561886687521286263880400486908630761923762251076934358310818437245750331165556977353828463585954895613416192540429367563601576346885008757080232929112456122041012163900567440200201260081389770386922874177919533791399277034462588630139292439741150189576011553542732695640162557521738536226541973060330885990326638844417770242209239268178091043741356364898091093863415108485602096108440655844193940846507255257179979133602569463660856675454410316448277574586308941818394363140759240575261030336868415554843098434313311460035122473665039915142792769658339292405243252021029362021333646059168400221243397129626709522352314125607983835504183701566148305582611931240619389010415334426307972480987720810300927908182852982779932659360998088438956556618862859649286828722777628731177266951871729594088079518101613529753361077185880463710136268048184369422478249901834282916868643928200254811112171981272452430400528677100641004122461724089182829304295122396365286213198414691598822685904346510103207086641861084764439822007706862825621205776567125166223632061051607108921381779628957619249659239698592278480387919897635748862790684624202635051873848777641046775167261880534811182434572915322425050407541228277106650874437462558385290620583382662634799080333564087397811111260480535198822793436160102483673596883607239513373428183971633004748181827089516511322731767076674491360011142304313127832416120594813924656855827388263743227728862694318974843384411121155330191108090580928080093472560564064007311308306654599807189893995590536564580496360283088033586946997783819094254823008097355448360230418787993919657675258684610752466951260571707319607438518255502670218969676344306895123406207479704119217019034950647301454103422688068384163971322940085919519047588860537095013517375350689927551570268935779933285157014547903583763591629365416840911420177866445706453486169967281032234545864705205220903073576173511096063692902358875567876848129677759455559183258072036333741068361711491867630144136413654041917226908532473968297771101423207227396951456318198940366591161812663426032864350991945777362050554142949437508299756858105101975550210212556202977742195666089185331080897724614343837515221508428179798183452141836064081235179721645525399495030345462521477460712723897079721762859954449706157268578970581685305000259526305549660793909020630625522988783644168355517782558478401283951466980462264526254389894707767963058042649761717693638397082954720472723899215559256678376842351626322982042456895719828799935086979895831531866804901915080720474070152176485857737909030332783883863769009840821089346773867753154513574517920887399790153947533661944414864123335146209232751588385725100656057546459885342108369679780979668298236718435575499158429078262767129129468960728261544272870362489877880609108240690619112732235758258995751202019793460616416869017150933827988065587886534094559500358575495527397742132557604178488848601976416237955630106633282122325008967156260611089896777194560337995532218793205866624287778861313132559496512242925945539619913505048338119552663695287117807473519674288753212554695052659252233164583814056703635950350909081710842988197865198514636960808249567565067181752626864594436647839530828383716476224765928105088214429950838824831140081514905578506454918863300734018921376179240432496666940994477879788710076607152909219852369839886141574718141711824532958495651888003840937855312990820969249332586153026543866449394597155880311808620298663476691237889216012934096318847767502924481781085836102567233114521552787840052110029482980538616442217943115016007531937276047297046648327571113078936365694683213157232258989200720626357148394609364301729316643083700980880792262976856411196389578330340173673727757585221930188671151707720382418119958213926282898420376500790990908932615323498007769685650176264358362055492935308939912104475709781592164894575508971164293898204448496621459221987396627117040913706891181195513030885992835490956320339015614485663223377157439535038273261247258688092032760450013843509186405891308412774457300612515068939801008151164156072290408241245743798434966208617861196637280454927145462869550052681818299456880719395604389474848348805069225097624929622412119998476925224089975977522904819940480878161750494629968629101814126881632871804108303665122872080733734176217146346338964634718446478055068070085333429629462389173683529356685128467871149661113534676761950788499355264829384610605868507790169858008024921324388088899611255824670165658375343202258089740336219724923655289881617538978342568266236625563327804224901785668813898586369278145262058655594296270309083941366714575199442838629856710406746241433811154815377020911279736397040665690823234379399723572196846955514070743297883422990790860154560586101291340395641421135982249530419703020517579683229101597476063840291228692944431196595666835736907780698815251395661364126764021697263814580018484382428065256272625275707561804695091716303517870384345141342662458694259449241559473789604311111410913395320035324920488862037646507734311404604898557741108926473205430777409194191272233396367330468880007937468242183256637292360525246560581473884871321158686470606582932205364191731125192136820371807271544403839564712943070346893691956257118266125547293286748560409717651193822724245605309873881871229266643680615457693316241191974138789888720738281883884346275942427158466928237281318385899688312781734359368568966237305677185772678070970080087319121486333173157933683393049564888260112234287596769646209986699152138087000757236286519135295831750166032001531230034452491606160225872434537335731364203577236518870904744927990814861266748924430499419105995782836448194140413143448676126853848113117387872862887738820248007825746469279000592761368719978303518753690335408878228438035961342249996937227519560728943678485124232887543338271676764849087537981342510261056693064170023192228258638858959957457428518917830330546819943437474494977837360142356672675589144171504507715012087352547179671498172281250440934688833557543868824434107961456764361376412522788116622443160076432316186793777938584549216353348446084374737624673806285505089547102977050148486529283166515763212737019657556054978438983565225368122970451319709081222408317463215241287442991297835928347305347206116078188565201838226924827729790618388661782933834223803919575635654646341685897021827178592916262548235647139569922298998711307169410612127678037539694409772680969970386901392954191822866814433647317846128480190201871658863674463417529200440855494977940816093209170449854957732189655805010025594712480882581303402356698484163042529513311886584071180174597015958775306102782973215711039800802758782549495561403369947405443953455796036523952346159416963562030470132467002146971216815190801143000133453812634823300134462219627402863577016971959694145433558971251452259361864960916789235702221422135041764635520603472711542450180691946408658809961432606790508541701370411365529309025686804034314979152025341182676527719855417409157681600512825256440412056919532817286842159572620311604745620118838488374427959902578355126547373027474296350169608268386565410011975645069729215947502403788962400576185841572142608962568835925750223532030405167192863305619898475115859287432929571173107720323480209689089957404182328308534171022793534791221436189046090001371998017309033590215656890894012515685512390323659569919272593507376145533336908569665639399761114364133239658337079452269705938213934759019434062973627690468683217664533679112653978297487194904729929967994260109105437646388296074988663705325183034890861013083559694665680209203335594317181060645076609016413642890418424844063322421233576393274574777703213788660571650113860540862101780564282448426178429333849801246392490669990945558166035996699567699436414331255661467584750176243356543337892866457857645853460441274978350068896652797685246325463381477765242758760318735559445324736408643964539862933283581928463497963380826005809822284717364099710569841910961895709893073595492544398031188637284079309746638752319381569086629567841638421006139512044020896468979574221704417788241504346877294345270964430721045506706587270159075972565225991919717395031131777279805163796770382947815394302789487736259521403963817056025045017393049862615525626336462764628344501931192546692775261503514860982499355506793057438112267143786222295542234116697921931286576068357822714447648106594328842236378068047908548665089458341310614228650500947744607967060924765149732829011375341941396595067323229081707517172706335128412649856761061943524576560243175384166108128994194286079816119282647110894510971947445495940058472211347148949727303374925445524336825152123722189744977565890552433506502181817500626720418773470697002886543807047149839818128224754157220892271716541956252651446092225236536955489247310877401327632626795105348782292959682681824273246516005144714548235751467583739965132011144815187728703998999959421918226228713708195991525098370901109112662507092335367432622839080245187560153109767065722241748434776005798857385633501303794284552095381128430969811252512229137231524608107738442601655689746365931796891321406421044027280327843857122835591722247396651269666856985685897024877441146173029783747721866622113561407597177814979073000286677570647979408244812165553965575062548844527326161782555696135464505761315825553404714709825572859842139060037622053590361867827781046353754580019792746726052095955804940379865463806505916822500377809504124498040625518845640421754168290838951235788495692445631528765251049359062174261736106653167587085172897266868828052565798985850166255888236313570572393708781282898287424611252191315824664120418474218304771927061474120528068658520069481569757437781445932607210951926168284902226089384228824999932688607242983342696545310708727592003497855876336421866922247058755416957911400027337641138195554620932958356629346045493059521207786007606712157803055629215668104372119969698137779535520203238094852037819238358710413918278001644672211963807547210379245612759219696366643421831454344540971466544616837231854450034859053884164482819981942626488316502130377485206278543548846269774947415285001032661267516936936040818802324121920521465406176798529653528384147838949469169066062661714435762727505402994953188060080834959845187703860507758677411313229355820665942462316206133721141990631408924926132774965390438927953657831036610533589509237521867102991313168378159038443512929754817432354155936765732569913260888947646299221681113779437338941040351127054348365813152877725799980830260157774780388731473556392286641203819796275945042206517969006195578223275475479126071277715081478915408434791037857197994262333810089620855642697007921912065076840964565591808507780330157793786374662330562044859642929216517060993819540390109500920415052501707066240617697959258251234465254723862153899097815136071352768836978985640754272900511347461916555825591885470281869935956547983105045653921967645538710139146377955298385529315359862483059555699879994938831027658203363152916539118304357240844640868397270021198150164504204448741683895089813830788770643283827076736313258491642522448790743471069985219818001935628076647728030445445641503587742811883027696814282014393575455831578552530394948249071212440835370607155449594534909180601799128722024287440440910923449857963881744349695972025720999707291672290494089368921031536170319193014246126248689372898149573522310614751851396279582139457285716761847626571832416155462477402290845991017132632142689939647865305096083759208175907305610236170510675485685261582634484289751340446323838848354566508171768534044687125213779508681026530201895902128604347190557547203724410107680977896851335526226051254957535126841005266326869845196443309112629512743067911075926359053622192016988395063781163017599235422764672143701483258985798061883821361485012602041219679311240585757136949048475419952872318003051608501465658493656229913060656283058079416355070471221328062735864487707898175834684318578899345321786764386126042441083003755484960338299201805276715707259496381339410042477793053978898364662162577125281146993959697216623290343540091658101382684459056091296656975158671225230312522029600494799823789887782827940473246377384493140846290040737992783371068931601525102577366028962640901344089634968721471543525860726385293486739863360006729259774133822738741655503127449901978003723848032678535563624879588903700749664501483711787807466186622563736714769690577760572675804546274935304110454637429261383982078125229864960609152543316265099781092821683679128009396487526065698106863811282081215436092817616175016567426715290482265272644839903814661989487410374685848060551980935900289701217057906115026003466237777054619372062500103828921241942129096827694993847087359734613167446833911989444301491018899412933961747233806493438979220995110266274198112362663365862869192593758529747134419991203135383116891225060140971514553343489977113653383355977250214818867693879932425512301323137741414205536274215357835111462240683461563178227170403905772080322440881132055216722201016379139073332708247894325146108152082785681418225046747915385546246516721551664797500652204835914114736901513858506905331883213450363392691624344350392876089796200116681790256790394882372752587475613618575790245120997879773272328561201621603507431558832468550685068767452737323711067543196362979918559803888038971140669007833566086516291150072417179265840558611148660448914021934779846928335552911242944511215785301899343866497189004648493224251357557855690381163092775804926071631608911717720567173507223036430692003926535711108783109958728213657060829513711520560565266477163745717493480414126812692688916250714755011033894553911782340565042813219338364204352682227055012248181895600939560797571104274105599622738041423156170610286127054622591109816954176335801308606678842667224915656650686755519420299554359172449332901538596500866011098341956245066016427294186514634650149406022575136956888284477240988624800216071706108274317500926507317312073206032903176094042216024812810782277509910046786829410027733966464538995669361990253691922578588015306817037771640334125151571206194627328412619906083240877246821897732433404113281089644139207342716228481135964751450035890307268440272422087869016139255168464270225452039295136886831442148603686070773084309469089238461921385431119639610534461506329532060271209471973755803115395824339159977971415750488158337671624029126186905333338481194082491426341933915743396783610587656165687984281209969563981520941873399957647671509823818300638006183959493830314521875821914348755653474010614047421915474608093269499756618009240317777616842499687353808922269483973368191378508695311312816588229637039832904713867336845061668484156654998590482225978224499800476493432629182121957384041648818541060991469478573830787684385156146198853812000073882874631841404791395744445977060177769485818184221244370263531787552054303945414667243615065226828599182298326545607992394259695444170917980978368222943486961032311526979895270798073294011618919114638702789046710361927401475495065352720845316881238775555031945991637733996479824038867096320136556277803530199338008419241710553738021111481711379673873536086748255143979325200681072218363128665697156664997761117758645269461276956807150169208510164103646940282209048343570001343161370945081143580893309754983853558519117242831894743954002856577258267750326793803767714928268089533849975019033207449850578387956238543226884556633369710375918129337648843594551484749360882504515331817659930176259611522595995741145804558219745225187426666520379223341109611344694626294168169050470853205638065379045521245692896574403556173375247414285241486679129766333616046330457706377191918212947458647404603763911531947139522843530696665680980149954072098056387499800162174782742131397165909263047295968789704068703330202740141066268634662858622778670324835965686818599854573742552914866125009483858543473332492481650655514149908645262584366248844258043332978066603382196188325713286258681091845867496748067809078394027020457009792733768774475228213922998397389952356781747149106907170308876501123353723104328105559200495026383023728561008647276543773689789910290677333227845498710181863395814954430304384043437088478645383536864384760860059205261524666468756067054856787739582438901475700490473060890868695307646217796427688127236379209964618571435630423926944981227980706187094476772703032516778047439698720258562532958992989472626949153099870149930774948043334976455697967561203436292616689928049837946796369668013009919909936740517290423526429019158149547617562974425699693089336220749600230853541037152149680186735116817870160956473103772436598578037274079239475284505801002360654698262043006108206220924321089360556986837357159407362196807356952641607288585294260744617572370893561111718528479154023974715396709078955147372922339855132947753162350000936343992666659128327747532349521927600598394379886873595846536946349419861761620459667408906390829100753051111626038551218128866436026205699739063606609235616457015474703624000851278790442149262267707328892812865928466462207590172742062221091911878676158326218318461037419504729538884750716747640980480935165319650508406120853888979313789525249738354007047443789473943954219481268988284711924562948653179443508719040591941972047154227658608088739756680822098609782653358399813158546509096314692342291160314315144875341278101427231737865578506263814920240980343178088915787998277405648524543999599172423556900798562792398468882915276826752849413627244399826805997321065379577651619607178992413426455758484844569907627591944310590013964635260952626237005398471246797393964143892167140958383937072402651907763407958847969258269748512158347050409641421072322895164927274868003691451491800220996581963121184698266454632204661211900405009902025946783068210825607040001881706015071653552031184527551160367683917713297819442785287725777607010546313829230832781106957453755957738763610524363447282060550231535919080223240459989857677800411778891719158253964330190033850320989351710652487197894563327942724053166430918464435026666328303396866398467126008829356029966376049882409964356745777117420995929980523057609002961705796078890777853235607399503124973346252715955148119254237443286028956059703695441916867820262175200306595210648274161889729442351356837148135305011603938383124563178345262674989217291655744401688449697376220078613050510081505769654635210127754794118765296347395996476646097618495224438422880022830669007873054982041556590969837464249662535497087454225452448189189527028965188594708531667016122873348707640257941584087797430960480161213642787306233692170391196199742635046330487312691283991725158503200013480814575669403794548800295029836849394891155104586145505061036448067826218210130270819078981446123082740289935573624606613623517701400323827388376044265167750040730259853402053848020708000939214718930188663025666707723736080037854773450889475605757499769354721435540440899254444517542701202357601497723661028704500450586645288384967033341712502008413901500921321917808682882550433397193013201975510756974337306878120062614256774421195093123370050961547875584779277607323226554340641565738624701164473313422832217407118263600391172934761871178257583926984502521425687681174894921654455381839426759287035518080278541706331761264113825113103816173650621785510284486346410441119108683940433426721516586899720503096797771329393231499616242268673247452704372395716149798121642501363773087859104483538628721377294560452357915792682110840270784583788386318231906212912634446204875669174316479048542838957679940389819564594962804836551869886634252325162776400977411131823155532295813232511984790244623001455659908937701940289785884673106670431595151804280983503578077113767203544207142940477298647095686774731742198857129802726565153472473842781983386251878080374971229150612949222260901936004458369589735046605014616317153861361027507553891187482375824617793148309108712359173040021387175159017428068773503352784435194325435781691735487406441238514597274332694336051047282558161965578828655125832805818942457532909582759761746970023844072693771993231774096058971911300732975504146750003154074164469181216551672055290559793807892776565091705134558207298964319085006071252282326028687213306178301032196482397030116405462345954919128782359884223573102297274539059348459641137313745051054571455836140924566149600158417381742799792014132777795670539368465464865458700731924086628080668089233570077276660762140396290334573315199418894281116575736590509575163746876386674826223648161703874188104052346720650992777261693317598493519885432970438627819184217361587855141316974800227684280066304024467468916148549071282404463460146693286758257415943145326013847994922673013606652123499789231823116155274050690198237281743979915490372137166632599133261591831132869491763124668772998516076716130443857808585780165687035609500996322476006276550665385832747135677680683290166920911070673315729564146701446624532277855749675788661950164470361781727824099495029898036422934502520274644590518191976648594821538213928516758093241864889079655702037984109089217178857795801778831774028777614208765453301521212265895424860804661240363866034931286195592141314805960609140798399650404387796597853991856893271906476630483906159224503792930165165972559146789787692555409168217186754551754027818481562661365189235017396717115891022733487710017859011154374340748365537982519174063471449019857354479816321247013154078458625105117622691684005642599240354175538462732383993456790152147519071719532982178299755734737449078501026100818767163500690762883148585232261641775744338410271953696847348577593555291868630442076435916532803330267817477595013813370142004535515466933233922993395744441466301314147369613724460068699220344616568348463996709505274444567524898781282232337674803034172504780306805507200820715316523724922262774627271135826572338782800689418674025128016095030059233537290071283881457487159525642571615276426406916302480034597085071326064348538549668410149396595304055119427011157665124038637305419188325791544513452722915322254605841371499222628566324891499670908991580630951962205797739920008053420111682861282388153772382774711371909762375493066264147446502996327481372701641696173794021500173419895873896630986008877321250020984624890833604990637520322939865675241559776467158955950345083369679503155549142152770111108930750208042521802633964761834293768713251449180105565399012906825623219229356255496118503601320373888411071602260537181256470781272904922577700568744141775231263812495626354409071607468468238916212076882667785375001313865991951127593122956613953587262754412241657282940023085443739849439194041387017983159282362507688365226155580858324880123799131345560926250428516905811518564581174831580517470038674609038578593875596315084174842425683509113906794541903669169982753980439601454203908761698595670643486282751240202400513143961904528042814535585260399238775556176156850256210425459252057382266500721142030483877683578865815900090752445289069924992336367735436670834477732875974561406787731623362765438522309558920600670055720686155603090797809893853409594098019757556167524154090618579747765763793169891156659146279968513600627859845025158372685027127923156060267513088468693459414179796029189504720864974086937931069315737033797528345186096760433838370304175638053656949192769976495710844187047554604820927007995609992899298280380365568335403597752727310157395326432732783768590584098257489587875539818366243614540420283688614250769542657842196646940846713457818664810916112846805902001127252483220390248631188858911139404170039267704353131477620327088450025102859296385906314333399087403284477259602334987451592758403061147933308583876246263334200339545482648424306287934604009022536793203946907513871863313112358272778330297516963019951247623075935312834239848745851039039551777209972923482463947048779058471389311343390911893031255220284344727664226046377634202332907695512493426731639200834038216032901071457306799309719124550609442810494373553993685248178500338187258839511813924364400333286784703037303118791964757618866283525103956417876633564685338553394319607063181774965671658625619740860473067367877713451553251568169181389789260237495726652961706120036682047044128664890120873326650618842214684648191432814469471138417822588673424192541470425737586275631778970719112706047145951544315618392199686679289783227502370657184927520105892430324233171261980687814159805884269029635839546024288143922930363751277312951870538442108982175183554358417462042727878864754012856977668795134163782593315823645093060773666642741960149685302245886889742839188461504838149553856714484400107665229297361478471775926606622779063013251194842172929602513998206119580212759322470973008171658893246312180141728864844274878060690779881723863656130015572112675003016763422138180243807143078347030063005286241130577268759327810572418821505574001421420772852234338205708807162144156686716358992649867415719236373132087949037739108689199777650513902905710965256035259519177857673758329633106637491069827088200081089592808546889029641727956089922488558371997459838701075142545907165452087259262176261356442642462803156349667336238538211204955955085816450308259440762025457778238235056150358063344525537310787129414292399757837524826177837771497446547405094128810696722120499059105457575189230420735935139205195423564015218847569933995500405998182413335400532663912250899453925481426394311101457302239845349495236397643663021416743623522021080105182693651531952302545656230110861168291068215548096605500398148683665472382857300648611908851730418078463834975086906102312631360255241963620655462246243554085041982520976858245347460124163740234360518445946738471615856800904327777041914915166776210409632242665004874284966197632723285516901789497888758662281802263037576119816850746353350126723523778217476536507071280792777034135333304698025267946423897107455176791449097569589980740996329234063739824144289151254559476673052481182738689477519626786916523111059498359975254950188871755382701105900448684480765869495655463352563000426268020509613919020348573027067111088607886815058648475899965759437926389621623964766579133050094705416361360319698290660560422133603117841136877282797536259087539483210339034539009692575399624312458827817795444757728853729562157048812955972758583160577207373766747848956970213299722984691959576872298978383467275206212482659644202609785262236512630537214702151623710504874659683621620615219543713617398010323457414552542409212253736746792438008665712066175730668934526318842772652381256390463896430834165227571663785607662649283233470442779454177715602182981800869429126214329345184168382627815712885701424306820716765794081489890517923493114970990542354094391419461854502956031961115902665874313089817308706172735933927050296182907588858526674037627048594250590412730269868352460733898264820271140203558997064322506714827416454845006148494328875983547363284391723014113778501039512245792360949602728096113554568691934529164910294756862501779483870223741451200842744683307817631392954814649919510962910687211418670720631874257447982250937262667917681744570080956825239926080670616586558078909249040592010835273400955246754639326643538803021201501233165652667828111385399674271103794693440635818738410877121394904935011345262191140382918456000711281185653681128102544963440647464429488756050800636721114566806902279300178546491662350442669305768114622457973288006757983763690696781661670192625174679364303338800309772064921981462591186522334914516070387023963325581228940564608067263867615675837221873271557519644854462909395657012038848939368423883559303923452078153563386367216573071917843041899272704606059591997070692921241313603727378895227284634535705525527840048204584585873650349774186467971811916554596987754302488422777784953535460538256362022321774881965633368336378193789115597812734896118814264976121750796953755652651049419512240860192810400712432389953163720904544267533002395183128900172759608071381822942481499893803170921547858103680725529888533077794820814388497480325461598447991223268787041384069882776333717880182631955223023734323854181586831781697366177007513438134963340620970418991628796088886636737661479026580475033327223999689252820969689931239259562602359655654323677019828889068753713392930066844223999176344140236121200285378996777320593429610467464372739799579165374618902020115022617730996974723654429718179556032279932928446929408089604118120213109932741906532520628120772237980234474600683187885429491638470255595200228382158337528532046740386543822083694380660648393643025810977905841354294813829238461536028202154508278052694251562935284606699644243906523128198935675854335164208442188413422521337195612360423418658213070079942527409180220131886462877940814497302212938892062296101648048073602029292981413560563163547102966861029973202666661301646027544775979036788438354629100020768144031692997804629036489248925837185478080940387962449447958804320918172333141660740409602181150237490210800308099807382153661124965827369913639394654213129977595750427123850956408766279654522687755746151653895692165696340005236076877571695515418873404158938748068338467005291322654175813775404958981775485668744336172409662536441003858919491450296965636020165872919431806097740025683346633852659171698971892277648849358078655103404186806095763379229661518539063085914600150592000171389236734591828154154100946826628858111106284085640834936116527810812152381823821957699497338756020190118306323311844196240269336991141804265342851851749524688480144429395526839816327724731563554345273809426509057175704363123686730071123101811125659541485734295819439907857654295925436119173633507687648136724849490483554726628405092975723015795016209284846368599224445181399771528207202243237146573453823655040391321275503200149357976923100228494724379026847751505611134407553978570916208192718011001577877906394310460556647148335547222672631817817431575363570029739293895646242718174933992628335011965492543852547552915777548181560465334654806104852793566687890277782481141948660178180657453886988181625216361989369661507324993083365917634276245888564851836040554004416402742902138225067433803738732409152974447850395855378882367777255777395872874488935338694417638170030739716276109076574385022456722378928547023701170051806167442080397245320067395482425834714377819128339622635346629839942343833166767587879502440821983919230215816892808955762361477740023005943694349541367494702217352272898045969408953136421157564129798345676159729174201539414849271681190485494722614698115941513882670396775655927055367881247272114006144616726658783249626963008183202141637401314066081324201823697128352131504386416546736124058565648184395712894063749310587869808503332831422774990416559133711249097668368740766092176671138780395824789035693605420207732486061544599387602236963384460636611656110462001600387413572596333189036318805792110643062733376298018621862009406681864645198847931338495903330768141103800223779041129255624341806137426731655210577303359861739268200882668690764463546733482590168308098947918591206772225218264852148022140697048425899038948630373851062116723878340601469610609067016093896960799902437552631362295160479105699647136395437751134480891539572061301211628687740723975623863604777424113092036200430523316017276306211943449257936586445374617481831503621358471016966703014608883102048303154364495752452052707368727309028566755065588247711442308670855786343740927995025393479741151701301260005630688180170354615931349657692459146771366346547497134263479100030900187278219196046729436039543891224826030596410308088718838400138150151637241902485039031820890039985701576175830208919540084176168418400056612702551353879693091899459187610226234589702715894096869662884904931133485059129848049952048064744247302454955441605294783257331766545451197626954174093234977578368825520318169400967841156807125963815635100127944973380375180918645795746204704136786988524573861504858691015085427357724991401012696572361278018790133530523459909831608184405340510224534646509807476642806275684008457441452412195042022549704656367073914328818034952086253880669100257034590341590854505706107042826569534751061550067884779616726312436573681514222914711543826811196790773407012765935257119767402457032583266040888039389647621788988559388133779957768677146325142824805203750284954205332998483947245396423694207094932286256622179027761249261317174901063001063398307603520135446749840594342683126648917431156850958821242933244987748943600253392943233814753461646816629598433152752053377566016727102893688887770964778434095261685057342427675926127220031119240985336821901954810098165753888470243033297471643412432682038966286457363642721565893328072900269246464800631015701134909381373735130703503679282300692858802336004096948438440635690688878109178905570649732878423968375975970727897775850398035320654445904724103218129956334386242452594527607398381540367459712687359490462640631404328511437216549724325386163089426488502709563832303149929920320396904320289083778073442734336239546843923300102310597488122811078704270870019300193955402137005061384387248677332438107134596136985160863532925667507475400511337728433597776525885177199553214181863682417746373905382030899329198291169323270736792840839959972785643535239043732175968120679477894811496150893428731940698234824721905075821193069041890525554945884137897834140880763469400694372085611857858574827081978488312954746421227102842910475383650879462529338967153233640827777469661032648743379336639592423574664008212189650519441959854801212528427365216063867407253406566227401119918268381981300885758663837411634479246486259123918853463751227512305717846334618624255711917903753191160394717787354761639120531166150514189774024013008218460515511956434711860508437458136005560203326306360660978628651867329633149518343459590821257516715672604726221209953019473062451057932744478861080006390960126782238075553957922397404209985700080901959567292016526575704468392508657183593722049537490686569595176332281092340292623537610135517561521325453476145512953594589363674352350019870207319823520828567352027877062341315460484833439587986665797178238344480592419515707690026252518219706058517333832327366128909557445131576294008276459476875301518379442603692133938229084220861325796173988073515632562541767450619965944839019791190292629456566152678594835264671775233304942825710949166139754914768441454945384338240301952285747484028059910254039999724265857360290317086990573503801924041715784137098044153806089677974328273476987180901577992443559146043007887910602842383397858846015570337830815790590705680912195940511156259620550596775840617206639298315018707570066578638072947435570390416420723660527819072856033941370319027625882657552386271440401710349589147125234951495436000621944119724503226558781461110303630601692835645340490088241102748241494053597696416403916686101779810679381504221922064428859200761332752200435337580469220535883388297566392331002633864093456697582039377354521657695267598355396282169142013873276440420103446458082536277166034215157943100227346817267463159989563127287223411753967448199312360459617128503412759617159747246056666584234502567852195465902365049047133712391962017892865418800647481502939872849227723404931250826937896136798511629628796941609781195922914240566261330691163483018704248744881046282779423317988573222874315668084308642500090590622461287722607141646473789432501695665411130202288310767392162178056299977570652863505310701185751700530808708730746939664830861730589018401428576515089918990807400653921275695984809105644866824307270856171161944081954827196325764143626998032613202944063377245669980037176095333679350348373772900144812125103980939740855127362952863877602767861099615818848337156185334351930203087225870024166581807002832799190330130762496988935939455628753104866699651929699230583631760135913836101928373998089168175249875831571125421161679460203014312130901210998076194113125818262490983544609835961796718842481810518786235724953331658769331496214980319176166736744761651673855523129626049198726721065140551425792191182631159067132190976115899043063166465418763793611331763072335197826646687780354397799299092895370667532186245750856797585935767640289774793208538167633116822227957559257343007209234597392667647097305452402336644285552200969033566813543433086454082866016186957694441483425903894662625088816197111823146457301572110043050180523447475820914163083879366470707914682655905300736713665995059165927113592212471067658384225085012557762839574553231133925996236854696678208128051459282205224380374464710426831600162699434571210740213571661671747067561563956656348220245289285900500953458841957845511270355456232345845055532305456203631851910711456196338129011331432219395056267126496588421541127336087665223127402881670541015913402848766537515732438799245370932343804627859275626012804953416543484099245496464074919634682799532116552528774375994424327275755776601817116495588507769641325716318750811483008657170239185710910944647810771185162695538411862368996919222627555014183022773896806072899259734228238662364257667944719243502420171900658039861038332133140441297016177038002535341663247480776743529859349872380901760149462897118636344058095605277611179935105851395540043305558731032397438045239267808544586768363597136383155577637616569497635985024382238317232521771939485862716133151825030953628420188937112135118372590229858341658933267915381353054043653347815361315772013550673628187456425079939525524464987257939790335489105275775846062810161480546153824145970896359542352782379216168589417552287554760618316108436305598698603849383154420225770649687401899950970897775781307517095262849574942446302826128297708651205109277434216000856013094776692129906527967138190561921656408990717204404474356959949721318593117479466804942010477819234270309483470667833431793699134167488241366564909923322108591613510689268911983929904438045892669860481531412259205768389139731614125919243441417969389372807469406618306517377883132883849004333850946507342780997166102242213934193629907660855620588072729027712289465432021328952597445277263530014487876271643640536435597555767949379984159618648771107049922424232139986098791364831463757284580756751635893711266369231653873876259478057081238379495986208924599880491146449689335965226953113018216590972835217947787502322971141169121258792706193159336258250992877302199478722867171035498522274585785911954312850235500808845172294065141037556775334327986077452805330131358081204607305193610772677273175459545179565839406091317455952769891970405850958493040135197117434951663376471749724415833013213621525405363316889021392483927073247983532548686277671113182245447313718939524259507972178583280066373557736838423342926145027048942712008006200136529527197164811970360145516189514994200997795720109087425490756263084642741003581926631501010576963626124629346001455117849200696234414911812883894069871406708709740538788447865917679692414293764346418757106499652712315474973244570766915820687231875954926441841031954134500913300091026063750056602003114676461358426927787951707612065373050495299508209138270140947358066986197172269578656777337012293363261870818292905254973516218097264520920405994231407979618656130102394612052006246163753207379541174945012311638141067594848610127426949366395037385197076934526282697985899267700615846323294763409966330329299998568356820150786000176471257043880986642992387638111528450331265739162426243499153150647752599721819472789686944172687774518587253906966759537340574064680431941830473401598113108025752864655968269679430555901339170714346143649439798747459598947231636934216349771992518543011299126656821841420095690195228849394630115275013892272680481765139937136069513787810722167498840753348480957724548295696472715460859960794820974378053756998126129937194637362549647915822979427176980743380548729956107364732714533047012013766227235533871228206176158400109589728308021794291684910184960574799579806341977480329401001836100827755737676361863891366854310900495903528773486837882572835068029179728647178315086349263954569628656690632023708693454425461757049005379942700182344663406152250911148553985835148541614967845720683916214559405541324256095258465645351628984812318346956050111609422735950035327401555149068362576168085789805904095243416345196158480549054596935013701199260284041779566658613544564887285291469791035982081946269514872973080607879060600477751690704423047624857183923555785315100891749409925286301467529199974287357927091673636849574077976014856863366946940648164195306101733149568144668040153788844285687647889879193976476241923929650415226242482602430584716700706239269041028024153899024809220964876756072736768097866544428550582780074694110207130695804942041002827180485166119004749474743735110661142016944127032178946513237362670849321605852349950432712293121164020347072035070486214411727434631525300101211528930324712385622431218346619944291181860842988571343347045406711043082761477451073754511778271411280020313002461969609000264441480209825466050793636931913695256167753652612852376784805400015954427198570376204048219362731207305398596198792815683905536054160416294605892550210052700234969388429358658032023599904949017464050175344390203784140564466898135859613313070541267141447407543010889301529692225131230794962754492722176003849625868314049583777150655806942128229791370165731521792216857598289255890773720119447486864240916231553174737120121264959132416141752998357717817408815629494937985174017843825706615817123988301062452804433243495118638892307394357603068876937940879353333214302756732710041926541653337346640080663343791774605887459776925118459195624534342395480927306106066894683163088648934239822352000171250452135109169796344819099661841379432524666964025380063040336496978548462271091864908720245499294216512450777035027524458433952808286252532344979808875787345346650012458317595713569878944736680909420916846117364842869425306014048208970938295548278371278017556387412477962460417017992100646565397196601024185322091309607815415773105075657614608910126901146019484841999861790005558898716952268576005713828170290501702810471144158219464716771688131990424609071359060781728085794476731007550274345154613753214532181450968655747676010103284355718536900691813931009081665787697942863516258193481527927813509866972660949824872048149151407922542412865838301125273249759598489723035840686170073862581360192344177551494858890173092774632577229828581100166817638215566500508006775617523680516405949682889705045123945009899714428356148291197340580580321633505299408881013144150735043766897621658480368623897233048698310162733231523437798781893645027294936944772255789353309051316807094778326401301967298564011532182086898792219235239839948659021467479269258000599908885080478285691176301368519310742546458272075074863007930274838350383604962763647239753598370843192198535262862285209107368525473093171837488080688653034152551201753919413006339147129714429268850291906410399859361523393868726085299391575558571646977428061871058588829677927605739881256504362397907332826723122795114379189668679549286668296848247810992621367013569519720434716768760533241338510350405820526114194715760596148234582762996857822047631253401819871211601684786748000485142175725386442335785745553374707888511219165025531535599397215558298004515596010464401248671588800851674877180480498147192324592379191038762441762906536329315258784509560192928348804481381527348924383143115230712802469444146372838996116166761741161624448991773425014141014113507730382580935577640478909726732304628357010837310597036195047782667374587471758843138633752825621844021931284839939028868281312041138198488814025170669096481032167126786110252501914842680407918869079639253676532115442264312528728136503422032419366304483767520343372211905706212739500318193677130591753231166066770252623382106935925409480203859908387396795591193076221879253681440004951116572361665745670740928706495200730701525380270562693824787891151654559512858166038466344002936700806855554228573383573354557782921869741564249201920269536306662842473310164880045422159858986658719539481708420054864135889622145381095191164608631485756899929879515995718754656476341365594693192571337879131930275914507856429323792459800013766662483417780350532092578550709159756061454246876018448141647166536264235067620852166293171879346619078379583917365565703702256449117931856487198032576701776046114982553966856869211363197569072350228799825142648096434220239044604327239864221778973816784798024054116800107365093837991087922013347583475656631839246430009475489802817693976701006720953352809257075577169459030885914776316444515832626050325544652529468273193801769282140685293854330037102115359538899493527735287341892344401571919998577460837304085467765823234350145437067449459875794078536339827722943603784269180452702700021404176209918053035202904004030877304360206221373680774486189637065517090594601233291234404699904944596815614728906847207964891655051384850688630745105868693049247805169184385994809561292051561220430180981432732797496392973832834631318353856133636124186052722935472577193266916244129666840625484904278996818471582495575106312462165605143250861248016086696240943957971372618593301417046047751399183788230799382932703334483705813150199505302634728721514510794217299983702055443282498089848031010154924712517926633623048037998371976430019609096208056953552428672991060273260266942493574657973132259030990333156461820612633731265713256063185804224586285447392032942102794925725735534517981185281111293211839261027953314849437663567496030386837424159789635448778361347011822850071274209918475775462567071018125974048265361260432153298614329094216202901403185117894503780207623892888292608761921177292946008313096867302468782866501216188503887589577018342382696676753946981693781934274036488442352726532213395189831797901006072153995399287375905962086274516640618371362432063523039462730401444716744419111027942261853438718461189127314709499722198623378381353380544240427335609193391457174193863502194397403749811181400789049130254136863850226841359153990292947073866902964924594301875307160692959678198996867651262012415333074293094396615750118098227352210873382539612339576680918094814531641480064538957204063998876732691057077471483727984081779235440000440154070514882810551677321189500320998265909049327545510674610966193845564102255772821399475394241671362199288068206733901693200751203746126674830191500200285245461912588232352201380915331000309819809703711185805390928767477517797444568080567144659018442030150530380228942519009132901767062845337973588752004697836436849708053345230646542930529928080678739303486494291913302761838166424660888152541152486208156678515865511456788201402802685456734617179366574177436199075502287126475011723847927163091535597661116998496414300775692993354727181343641712091108420997123279496225528727665364300495237650337421645284999212032397154496379270804934852547948057064719443300830384564095393167730989304053137684298111403054228497921065035035807278935187911934028455997842089278594175569596972106848897325604802731348847949818872726542072355086358448913292996256266382402288688520972146735169057478101864327071240058230772464390202076555533220532614499102779081675897328795630097235082712039295647750722380228892320525047596426419418890646845128991984299309817377890570960113802331994401929809060790205266384223030221175736444846853353172427307395060223515145169734671944429264509955191540416334407584090068032767746300024038058149991474851224056684733230513980764585441714639386987917353665014232228627149589444735503796057783239713483901612060082583950643595312264649475758050585634879212132109224156761473139561029948639367500080677484612906542671449346993823960086207104843891187582362403601696057078812141741848873838625768015078722019210424273222909197923737884528272373696349393233332920210089910246258596577218886379088473152411545186686360459497529592160927119761961450305937819049411919277880778471505540169255334699156852276896969912510196187517749437942861839940340399147064867379046321773676275241713683042272952639744115527123233579346369403855388481695020355722610047719788924520878802979047108022721055565173956354671010794736690173662030980466107442441058549305481120005099055742843877009170257707433119904147223509862111183948244759067129149853044083043587461145619336851278979552811210279987865071567428488264610880278154818887813968484573160345265599565214258747742969078313124026617573670006373668377071991138848524341810155509164803168861775952673285598419256960006075469050712914027718953353197531588383701731803684223092815000912795392318394064283772255782072463507357602628790835636187541745457607272066900588879177520740284765841275459322384764349853244361191955835965555381690455916561320270675268264500634628511976736532118076341212993798859257951816045447066017877530130744338647116967521469715671133698761990147869676653899950716649458968936091082305090067735083120214734465032463105819821777471972149589252665240322308004413384006044159228312697996954522872865881351151796201764155395995774006878655570160644985628797121860318455101375993520384786841542070765446086239526761724627775528462707063184312442636425891968489095645796028892671435094981073804942779834874144800520955285141014276706226714190058133308628171184384155713420663404203638984170124006533055102441983891736442767699097304209698131168301459312922565232286138973315982394753954624552217660058745366057913942975203262657035586653669397904711642566144189060684440210078600311143318979396236929661215448374959352782475676969474173773305499401172599178256024666302914115116302450586408540830191330528882073333681814161772091824062897425542183296388231675125263182255464577693054981929367189425076708803864063709777272926318370496332279694136134581938584404064902162913991487781497551151444961732819097611714933743302583554032183894003967431259319066531579069167910642283744287907874244614528665907861349698342539323785372463162158260944854065308562682935659094941985057552078716056459931952521117338754209669843464580404740737451621822111504157824324116317224385031921100169056439504056003789306033965131239808526569523113298704576679664004223033477423219211514384940674305498383078008009867190189063556706468377563818989628101094381452360120493181881934723399017614431013108330377942233802039060914300895967558113901476384373200682785515979558139865010689481787980667321516284695824557074967267512827029473171311723968904255001349612979196842732475908243148977114336469127953585266830356499950474725222796194855594701134797609413519682435745911776652190870407043938165970457552911880309107885789075539429667812289129988384137859098211422489839692124814156780859216234272337097353132210474744118514890741084987375842668131663192670830773353829505844194656160708710686320768304893925764589302515370628334607944660643438442766756755418397159239464635496418008010783550719266735803505147172585124312344182080564111766475782835150351287132695525178729016874093297201850035371041275278579302674730564259583522296803801844621224788516844479422356175066354724516496166788128304357060554194662691441837687459399519711224160759766796048798921327922663469430046848836310144247568811009158655316236374563677842872350530332601016109454089287150952956572216546856813110741965944862074823514618857274031593726641565190454375874437998665333516295055438005969978273598014424867612123201662289091021121643815883526837886278661924544055682773479124063658920405551489182043111507372611227499201251492546514432291754188411465470406825835876546854320608734423602634838644640148081919198873460099609935321210376649038231478695467184132908894977621544665433430168736469509789310439174548425483802169469405480997783168889024848814801691935287513507252472316478809594540717162716691600849932902969076790849718458128550746303458069719064274567274641849408864521714458078091597909386639468383392735409139837559638751510347460295459130659280333704591268549036547528985446316980590573492894084953416234792269873841461098916735491662070473518015515695148580428802726759610580527660836725955418807684602284614854913063476753716503737328505695776074208358700804968128559018560967903816506808705580663139749808812185090907401290431733781710665282753793702212932236336391391578679185312724365787561577752029334964048461238876132464953105013249430759533889294760580259464516486949427782979048634836943944371141367420066339344182474496334004187958986886529703492595071543423452749977755168828666310823855677522385633789467170106656567097846357955154959038976618126213466792640458731465705948631220810776172847934776020020209957171884205023196743465104666187600283455033837689944502642395439637206607946312005925728171076570435198398569387100875948793926948962831533924301576347216389176849655526251465435555748231382124299724285630606802655815526108815377562995602158722604666729940725814866783179373774561973883154508808601116544821546353601198881840076155481616360485661856595972842177378914994159685744889253862204625338310986608897044740073582145833628249383548780309544620088725527791129787497754304309452074509512740236344876289080117080993287079556873860730212314246861889804664633287524387949568938932973683556050423703051896145781372742696667469887672364514569734352170354627999674475398255286694596537203409969460904028598930474783169453971260710507200514671588835643819648863250112220804378960217025865863305405358071644657695407078173567126790603277751507779324929935557918764084152918524622249473360442752112693210126297228052978389834966569997367960314053690337741017287979811545264303966581999539358236760048654698243846781881667319976840032051016707695974866752973482203717165639910754723204288645377596380561796145187440700914657845152642417595990508317243568271722023245433011684378571469359980342984494639363763158732864731194596062864412753217793607532092690453807209072213827232433837374143069585129427275618208264487877780134430327389472805402518645478716611286761509830688357732424917632588553984548255631001337632845622256833527139187015427666001563863706354991876763827450213899063434812205695252424630982802152683615467610273259139828331138260679246696369508976906781267438109153105794121422484300467457421295461115320822263285117371377280145313953333823354138291970380873328834434543251537351321273180385410475407400790255020906877179941315421700818510819285034507926957999587868292711943138237157508244388832039859474545283774222222460454369708396529820212014840964779643310650590912218027147826428376371365666063024181257311943160451737956902510214497830174197029773899258362715049961797017142183006992045588503887865990889257974176942206083550456469926701978317459931262417720743873230676129174704413523819003303423105234526289943742752731062038144489083951044392809541763389100891512780809085024628682113035904229402966094320660492940398044245707011989594007759653426851481021140988596429258594435339095849659318310656068354085102125433960959996212706031942392856472412213178228615213983015904471879735567165190233461507331598591665698178357890798771280125392376755993200443726736181360726805255084383466968401254615348877701960990174420200921841357178960762180143109768589204357972927613440646092847146956645993185785425487832979576066392345370834804047173317172446192561942889024506884879083021678606790569538454303325843635544248996199639200444326853332204044861659381095433672984173129889599816183959728564700263655694460994437978986579432585485510995054381911760632777833401024207053272480383621187988311217931164170120798179362877537970261959356516085816472663974954189244758611567369978427060690008494730609367077560811552882920849433578711954523122855457732719820668322380537563398019517514180769756765540890034282602974474837344520382940677202077918521870991171559836593636676051074319691616257959845747619953931313119715925877073044517994056926415235587430659373705635852283725474623295519613483117447802619304675652886677466132417703043769733706162188839638221022958744549358915026019974679766026574322932687479361727752575830719336206595856755127734743133219648574771623271306277367544627630069857924740716397171862589796199308879121526137958493864361097232944335510172927643362369377142954150018343794923222629037766906089833436776320847799088370217943067072537813193047163846839398837277583201450769891279392154419674727864495629126781465123576337206733884283138956147536618217799316645801502622716749127730825318808757533965223015273514357246231273862608510776787876625356008391576357970505623315333501921046087160768494156663987666669162091252607433419204698490781476823312369813572850385827899472837905560160374034810036049662850568596990170244220168162653365925959715623318433134659346733257374298971514913843112132013062196819665938761959723532972181899786087554482383371360543265040964790074439080248394585576491024419849265590233081254358703194902663035677533021589738722788705170124585064967448066742090941139685349647377060923638243404781806954735049520847710933348186653730018446321553854566914926678353881928728551293366769907884331271611083925664590368947303877713766855110002262370411514082898027728195418265822752784394757855908057957000362373272114483922841669766025883661933941578452132815818142797625969194489643211681801657369068104490036367984123567630844374886894763252810052584254438944510381578540493899634020884150972391961339520829267891509142748589232281798933300866737587331617225972894356324882194226760478303666920712319748817234703688896674887754011621905566236777487337960162463069516750909736234407657130113732071090615641451091636319177880386911871340906010145359484922777481786514254769489172572745450405100854968084611093376754432797438760639458435399906154939646422817334547713422879276218095966076601317894446354835800460063300072195565967144418039985883542400304089083563197173943354700365961853038446950486452407112900244762379606086251953223055484562239373270513134953141609875110719982995228506553547669105298782589044881168055784373633459102301877183920383748199765259387868444050761285485389797796799687095105606315598921170314955281609920061685851050225574129404134071150170264727273238372717673430837638119943573623884017464985813762632564805604604576283976870731318798288158246483176573706792194210134567411953427954761499463316592635866630869461115746965432718210045198753127510933403633751456083999539182610161463829077905054682320350170598170204812871104555957069616377079653076925853286963243297514772169056322666263119163294776823554925019936614173494291756171435730288922117201882496959311780137186996128326934996304063748798334169450088532900410687865764147305019749333018440232705531401351561116733317477829654025098071620446867210250073990621979944038607672046166527778791408614334280379309167535775159277730116796088247218122458333367794942504852686513582512595858240528272385937415412573402950275060341714355926970961128779721064019012376710758773378621181786693049474406451335172330496157910460869412363297172863067196222625371516376650162020774334004881828760376391694048803701576431024831348368625412058887234042192818872265768548251890013162927356559323454297984776861268831255296748593356106321509739167461941916063037304042756391606734602125020856582840110435265944902348180588946068080767069495702032784517963639687236753816332716687840711744590524709082577989986438401043382318608281301769740908431627063097984028229429026875981740347224793458475802009220709736331106372014174208053765922418941160356229355876268125698153045215008613666099345139850342012744761960375770666954087899820172036831487338006040365222867966143556425342344192895702321703559452547449265107824665278688106843918914190742058585688657528778475460070596507407392335930771117798677655456310908275918080525354943296920240714555170756619555183344692406747253672743428038231095961493306874090344291150152646806303212718029504857103948570443336032586608594459081022746863296991030276359596865867492881420025593207810389389963975776690277512783003214247567141823294767203032273762580576148244480933690437325920899643660600274746628151358724262659646942897781496287935839206663564819176396699054396733965961065226125240429512175955463279788145977950669261947085773565886965879529296309488211356572191312293620620003418897697695045785312597491409555760926400064682393482046807394963560317905946414017124088635085329150006444672045730545213229733287945875343593604145835471614486062661364273846791056899029223732068147923826864980683851476667387068179119766306939121259178268596424931973971399101690969089886294170202261813759840768952081837755149310953859697566981449237811476950837865370658152975181349797829970812520317946415741017908060300841557742919433761930202815053558099415660864510452920683342400135009955865033097859778871415392822420614011827393458123788219683276920947749828874864297713678174821986963449474718856197217413393964636120514464977991898379274191298977358341672387335160818021154887201720587515981211657511357658815052215277578361342880895501134619569220288803063171544446347529101699578177450046547264548961376296674925675987046171558541812283906681113360689398615595748576478618718956452517649508519160544635914051574482497219981657276940637309715195403773986269653777435653035676789526772508195400032724064067867615516774453688543698134084534949225751578136390165883003013779679006842233230857578570968932257389058815513920905140031356232527609093510847457116365810969686151763716422823404022726519495258174241317558598670204477567116994069031826053064073300354239495687168448238634452485953262598281280931943023304978768823070347453306406757411926878795144090145168511673808994624136036208861968569257304405453374372294215187302736793863822846725170688122585844773143912676935255607705789635334977308982935605438154230204442762429823507296609338709145587717209430965605787414710119183524704987567869633760634388101684589242410869838204766499213011174447800243620331551970163302919496021855902156463488454774271043608039565704101782625103160149366113269032913815617406875752504216732109987502320393788186694047413893467574007548406721710784722208907840548453707273617554574621428812070399112438724566298546616280051462656636797278771782117310813077220191458583836381189408631273988206513137343405499583326385786646915536579874951131014175420276376180550679991028216085759748035688149780754625600134063397641410612163514325078756250135813907765207335089199522259047610477319724755995995725023454093956017327923385199878674169418988136766311522168095267772271695455595922635649836039146682085098653928071839560140915054379195493876401557183501977564971666597553687260128772444975228956769488381335232809129698694935248909403548461363656314956432089314829378014160506206936366861954150677337587791745779386115916873059061257898507547521598023887532692346659052043565520055420230553281717243730753513172225942377590476823939652969557075411896121802698987024211956666955467186140667287727008493860958963083035972880936321846931628659345122290720074941672908574035398825272131370630443815183556766002853441462117117228691367403998619895840821124147282504573136054236118923416505227018784353538263097926855311805300903077029347182492182157731968580154987628149677874733626989631578820290966021368299124062772591039559290536284880015338203364272979279531080801985132479725783192105473628431143399298956437869383931914604321889576925772873481783070424277912370907373178576702077178618737491987959241184827227821650449269601930622962520600929713910672900667480475633348721743471295416801448886970195359975561946885728153586612099072026745612026290838808565929230471764727438518559769466301314929962081304363402733951625035928489587307276341697994045189616156303262993691222082226159724153697305605650588250187960947720659003076218178582049789135387583289056995949730803061841230331267495824731916998053256127816624567169998129330833445575776768284412829470324079684536857290236997402649463365779871168699818988222499383403118715452956750305330013450496861128232477891320959099287099267834687970398731945461891345478184335462378726536009117181481078168479021373861853702580264170821182535639167904870187977690913206014060216750278348276979861669832031929962573308238716332184176877830182998924738019895374512239976930299718565233432956978232335552026018204665951150715800207219017451857181916764594789947266978875888082652657998676892015290322719479508279669716350612043799447311852207381044612127187617209447389498446067291033286947809521099434528661693413887471635132997391331144355936975621267746969854378596751574349041938261756376730798124694192516209284720781232066346314516349845608010227630652703634275506169372447434219529590499045821362980631556454690786380902747751712892166257555581749824156821777863662721681826168112231267968851867939103472558754561387251916047496216996133945694946657733901557244089210842377468995406150547798570689049442085530127420559330622625457207633950489391980089980656274507731859601727887211645703588264516864953332149938808114497873604287758865232229995056835775994140795978247464292471499037093716080308817027918992306415880182379500070893850038687287144608526938610704920719495362677039259853885639081436456093320374783749156755912251078860678031359182781032772280851194216852028735801526606526279060799970697150442459837588476932581295222028710285655495799940361608346122961375975622084074487151088959721433456914179210923599205563316109910409064868824685451815039712184343628005268656646924212631197008229846020115060571717949079487750686739156954236796981554317610780563904967966375166755360741165025227768243961485680804876643198117426106548296917861571468232906357841993829578441338744212138440985781986463660742961330822506178948193862117056549381330219400051817508234854264282548234014195471748124774673438207407121507463992867496608567708999757520290972623675628703593826542878347562267173251566028994201925117002159848914648413351756083185276196982560284288685081462625207068744086018427713803803384705711446017474255793834476006094222821992893697542985027313709209169774091839428609128332522278346940350386288178222942979339691729365543456519645545612889416863533854402570603270470632380882026106106254256524975897783772978554409786286359654115363468685249039598573918659610924211116497427215365941445448811050899113258825453495314269741276645303653431710872902522161610349739552684418970428344282394958847865725667788675072487640383450911602745524988104933698630689445112693706899739283888008324013940069393796226223696386007450114345215657846159742994485217451048829605710921589155425586542560793086431529985593620416299342730270589834036033318998781013676527818960117578767290017300625633859399298143841235506957435394201272656801023920438504397422474808903551999655095180922499839778613074428275990652882925555415711690985903422330088028453922054747334735546025510131795281859595279102979347456583423555357038516572289801503515125305122219435811666642788763064506843477212036116224876014070306807641087381983196139371719404223888526457595770778276452943885946069555763920658481861229660291059968508932324707702946487948480964599394242670566657355306633254062640681085679259776454542276861698320232715770676095308532652303986508204545412423719774900891912953956851879712618395898899252767441931879135711092401390080418156773336906342332082964140419977903620695995239693008058696501341951707693298874445281509189935618622156978847598986167667728845040879471645766661771182765979989392399693829770956579766422069953511060891492000920270736558514418327025699085850676207104496409648980405160833483872157005501564755750669726858598230598982164677073997198096020444669054096881201189374838794495217928514642499420947241491375571589716590394407168232025735200625399439316453179135184643361526289569542748048494788600099902435609137821536084544926390891571075465560648243554995627349873273168875469857838956479420549350023060100882676972629569973374809599896081567179705612460807470202306262163447226042606348553261635939295530447832523432257228231162827365023143482355940528455606418959671373665228555739380952856759156681075452360428103925982104620762725487411987610747643744753909672662298346422794495327296805394310040793619950192324636488930496102255982338308949774983258793451390534029624680653330362323931278078493949943201233131547580398500800336602968036536236452388601738304845376491770343688283465395740093473147561476916670056298575435945036790299519343522031947698729596112152497201457118860861309199698383482338401321496852189869355809332492973671192558049542102386743883178173353259450809704128891551745151450706398491273591571944987715147270326136791004642651750349065340376225049807725365166754994894529349720579500246578424233899151543794259375689852532085573587348176050477012416705489158868327688647262597691158186453753165409869667630517588452361734444251680997931668734733855291599512777527056934710090788310161689859521436518694078018007829643968112799309179125869850797279464424828901485852985549322517249678994414730148989126235351621913417658169526028987938034548600052594402058149672932675535564950805524353406578044700862058392370443544472553269650433860409263582376489370157795620988294061057396560390065371773501320781047587377541634739014320059252666374015169216915377170916335723317692929572840388752948297202153629734660234449805068518653661394691335321115903524207904499439860714396754005606666805957584652863440773395681365795348589300710484085504158074654899018125497557400186642843679998440330126134709647652701991896180614828886019853574256908505008142850221687774628107641083882232655240367792269633301333387812863004137153986492117726147036595871379036051605140969200645731879920605483150806877528728163329019743698648980289817790371635582822981920682988819096533670596845145586053009110358281897233417330354509038436391418311559405982887699671301785295807907794352474080085932333365617966874267050651800380527251634544653708829608700775873125805496494152590937887915170584015455310738722640503582389630067066823943515318440062632401986244832060554861988954876817202467366270709538571983225372763508744695387859231755864351021678532753559772023435220408647197303202431309049453119482786864368809298629457928799755203450324331695052245119635581123927005697724710927069464003607682964795381130405843550323612244996111872455184368452660639706151393704609665367542077472146951522457361288705818583173495972046289430441775341490584269872250936931281716508287367686188957818346741503465620902601399415096547689322292303696419570178622710407212806120473958346597398146577070404588622628187465898149524744466794772861479632195009767839095426233057903919402192500730429170833911097612528699576762716012563641097229323251663026610804719185574331497847840023641666902814541915283138218683236503485443931695936234937619807776520383958066133761280165054586055219630173179164196569831059452233634559743862506243970843377801901352829335951542703422291562522284328964444584439171078107443969270421432188254346096853131032287921286187381914113490785014501617340926258027144925570076121724359688632259370639114790003587352585153340593364539122492121751920217056414487056350473926660318122213214756227170132938218815266896258151064310060629594228419421367282597511103233705905501695199752486770953228942218512377143415704587935521926554453247881235906289871342404933841125044420473204903085808001817781597818573589570266950716306232691613750426551265753789154249443450038002903092056075086124452685768296252014523786160990500346045780643606612805009221897771841973734530538421377409137082738539128173632193143783218205268079555784401882369274111105909325700025777297315405825294132279796227195276264438687162256115118640547848385210739617501619571071304346806827726252266952818956099344174704878758425307548654463464461262189176413056581748230964273414781125839163636041773360802100230401537902573909955725286814631784665214384624188578430730680506368906025173948632938858156262398088694342495844098249443672391605032743539316984533388758189344241916604238986885609692666782414482611950874389335433914675313696562238788826173136141767893838575719885201330260762535775590963801744070699631360963454684297009680931317714502889333023013994232544245982971052889550346432401103805151781566035290372279018552606828346489890546361279983170133381024003869876345222756993273348437786740183450934901578561245884721023836362455758328417901793384942763601416672815417828601335601217023139717322295162104823335540414473990673370790022469800044868497189753896022568458973518447037058327717538581153300936740037383347925764436994510715961305782682257325493734525112264012656404504527730863881780290670599597852953867219937984462996848001142539624416382578330042150920441266629262044456563186808531889437100812469954243857115479333441852301442197344920442031871306409638520935624731427766819745117136444648077089068923038376253997606691086965295726644950436466617630425788790279151299591071420710357591122719074927850676957343392134302899342780151076253540632521615708071509039992561677445848007854571234620602902214227927559108174608885006250832299978727149077360420961160592068609423158909038866899805965310437346551676894497661589054545118162878829363786116540028968947899155896315340190274126659106868266929200995842693934266523345978791655675944501137219737574345835851777225421888973491531415477245798000492540867319238570298612111037884025950405889324294257802148944222698064417698185440040985008956762523942754290117415341570298222053423300232762914290781489147731771824674239570474842131483510051308607410645653964534779887205827105384897405859525890717577876178045040282516372914288251909759084606011423193539001163146828686346221626567260436845760025405687140990698347694948449254656876958109924465460667224111815280916760129234510186274882037401302921817882566274633082040937861349475761593461628604759897706717567734093439602443147824801576514383388477941767844688243755234166561828689841064088049446034837675024447924752642500203910772446805287031756517884655158019814212486374834233777306310515805356211479356649771570604067303282474910230030987258642735786989205366162873411769350517205738897098571254532038304611704083717240481026887087474518874281967124083790567810380109831076356549178097378701746686975223908148858914723263793331254237278882068124732840416795249963748606636097615147226040322348199392409669392015478087798727401821226614156138176587619158244106269522177108681228483652413560399208588741213256183407733695580703798965160513937422619715744346527974726043171084687716846318508160239499215937191009369844097575216065825957016074452049611129593909165574613319392705458155215590731964504326917867749554858460464299228270680451746861230233214430511335354064083346699946998161071024885540924709766826278235924150374006906340333811345066833149268640056413927254842414349884899468054301286740814296281883522266968881245631881839964350006344810740356374049228069387503707479879610767155917569801423576464341789110619405414333938337750313183669362931616492525001519387628859447489815103441889427782029658782765223004168188618298225490169218964873229102758940382032331847016736098602893954353281313860814844455608300115083543755911125079043688417786005357555125135515233299665202592729712146248998263103233092527366453687910147401324272440387513914942102530992151059590906048741279919729758171805802051485888071438235006383089384563756770856762942953540290879629539984598381271655502519096138477458313434643543296742404046797583022357558167631899128824401031162552613588036154401847887414449076281836743384280131798800268826729628674922111334269627188351657056267822427990553964560136554198857185952771917370592960007997712880643201254247489647313104980480682092041862251528966626256804424529550038165168855651734573924645729414597157554026803167714985070226211033193790804089989772519395185248080638655648825280881045279018662972335824842094092250036740751024148379874078998307461443191258079948936219079094757359446911260153746160997388575028254387781802553863025517235922717434191537621358292049297350363599562809211123519984955137726378537402406797653314566774913522469283203266000274612661895572403129667466204042700498610888371532109727543858403739547917970602283213069422181683365767063004866096015615646837225084984521977666341631514501988906908234267749767833790842673029574763924751866684905021795195347030930468685031985519388949644564797639116000143564240457122729706687499399502732126947575065869332789337487553068296413012756854598648760726125567982533807933700360705149789933223434351430051758175365344565746688182717860648268160704756518348898095445439012491852365774968404218766683686400219818568003101296756309072043228560126083692673642824319403371430662803205673622823335042704645588942605282757157456659392598467583425702667297592609497742085196363042869096438032578829942546317154990923177692213952693655906082946706413170625920102441030762149138396396735554581846124341319745154359395708628313742122295928854471323239838965373156367197122569551910526092332769876587529014985572150730567161543434334046535415418108272915689532772592768156065463520758778107130180846976556869465727952224323852531410263937271158547920835436041265912840820285593920459749538321816394598269572740386263631377822383826433330123236256722728575397668323731607726668378234175943920135904080728796518151673855774865880046484806468961656606737536873150900049116443793324263728221601368859564568443583891495808639840205980280164844150142519706418718608045358769153933087317133426311496032213705929094389468084977255776765050720432507282839079638159026407844300141619517138410324431918974303258993876124451227228917339375309210677105328129869249631658474100667867759176271043713183367657001998803084622889303603182253998233748872524675305262025060368767642613365799535385222331637203283307167626491747690760851188926117808174808940857707390023316934293592522866443255307112924343355106855898132284385977920313904523991660877999709934784522238976939518095754614676556205623396300533369635431702030140018080946279032652544107284664106345443619616575993631470788937457173001390178738901671768978025961696714280645914492924012330297353265995634109317250095340259565719171829421267118588853265965230301904666391682300478234589521554190350707729908397352834149275479219093974145880567646449010922128277009922291723381450991005325451899770910694693512201530196494420344314297156831194653842223140437462505678620873643840072934408490686577058624160602658989351016667210438677726859609339569577515004086569912513113798093127149863486402922954550101563276508199303723814686352832777834336083743209788187432856588874974417213523549950825168168212564335169421345935743147122824636692672991282679223386998407012007759191076530842307615535117335315964553767105295488191021550912798369524006134250190418517874601321217267903765892136845689107326646753997803927160080221035124152738223635693681500855142348154920049951093788563576911403451406286448330106936110279692355985229459667520012522199119895721205340683555459413722473623759922780247123822535693171338318796942362417382892236570497673785800476877855905914412627467467815113880157923487778318534409006492569973314673612394513042798929839782883024187206570905163313196284127631889547411122253228948091029568727728466506115995801288757542608393494932305276588852717340182414107582219800361850782028215193704297089610196898815745814023244088791712111012451522256669696981674843115638048556721240844310466838527780162974654958684264861776649751984651658036943064509285671497824960168015584433982037602492357967574190648060231474494490116968076865022504938308935592260106360019313681857734026326675804189551961781751636060996310904489079587555686377906984980973967047600936234696807763399793321613943021902531087732240531937000365483640283867272456544670596676876755246377447581947925057309564812356561458081323593230215947351404592193336941623364005337916219361908378930706883682042747134110846817240789418808845051464600872425377852969121560931239037085525986036630422131700208205937106038816071945979554707618770279858126535690980588455082749874410338436474533782566516322430102802313655794949735152451545036243894618700915869466971466186812469188223504220388488576740943436195528329834866838710934774651140177207872107370234015349609018709710199021901691295493689357606296588316707489863516323190789525144328918311641536951883520526738542122159068271640968297854439846183168966664715218938939242354725608325121703365169436470369864163242156164646361719160342586819958689542480176278961278080440414880529769899055002332420833206215298333779901253185431741112746413836897102834930006108201262067435887430913058986831389922821426895920974574324631924916945366781212246915135664154355013501697438783996366653797752484249524269391146271478703671544004983348141391207948851339720639547527201520747279167171187190179735638132276418154292771413823907339916815129617713601579101303925962631072488413153422224249259625946992908546313182429968957718631330614899888449234097527621446156817190023471694810632482891142651081785729016652371449084160803697598126347317756737920991007683099145259608537882409920883514231728205058520177432370876931471440734261530514273302231145351908817146847010243346678624740043429538137641898380041291341658052593108834990518651032327629295344716740659567373603378659141367586491056987729379226716541061434897012138325061226735128859509235066649564646766087358199013128299382308174607739601713220604880823433671168386046684129397965282332920233363246254567283755201571718016764560915535896977875961774508363953397950010767189297234884198354376085440064329601866220725379025557820703413877925833573930161342578918531163668314543663242569989083600204470780850572455707616613897143208347208211597280091742783733567934597263049841899522414560132612900102085620789288576409323092602212522933585763604418046974955118536869907212507112602618178732588845095014271620064363825076651770544467732748547206454773754563719376131918292419010854214434021003160324144397105096101329462428498561009520457528247760825217539631090684904226483843226116329767683307322148293945414249145719180809013198086474877644045866683705436993924562238381909776661408523668810807058475653161663946997488043172309650477135060017126287513839274913710239738484758646392980259786414365154795684021912831303256095466821735169654945435729411093910690053116980854934101908735746308528799274069648765606656111054607554864578188543585277977800904893211634622892747140452635886744099903506641782756710723593137859733081854030965170017626306227242144558184804788477472906562513036883164442606080404345756648760191199454187585520136520893756469928615382550805152414035788191303786394515070335324313500421044540694001681322447322063701387939284388250320236738627072039338737265168848955749346407950272620248268909377046479019675086908961165489005209382891216373167378094092298890834257952388124821680580871478914940738725220776874799006563638397094033991143063644354253786216763424946097689396236448387080341427042845145754506347069206194199008013864750175791568218122704295427907416541980109713871853763112681223494705314934517549707677018217436679435382694276243674255584393155007675025762499668294051456867802294990513630302528069609145221940850231256114718301932520556006956428944674103689979479215261334564953152858518457507126347807492523310979714116025371592753108902732741986623177334208952178814654500620626143870428128690919567883547571858695142546641169285176904573049022274802980800860167985615744253282327965208353646114125499477697794114074037797911582029227251883613394952334158952712707482374185109855330369047965525849382023378188417267916058694890026528128546184567480348945864497938921552086943488089093030237290889491445566815669417729948441545452041729488533876273714563382058205299303225271193032610799048132483198508598716335070608971897145471023942868164358162341614302960197582062588679353609208377547980357558610220979353303798431128292916629714270467195029868045171103193059212800635594078681465734581160543874813105827718908951294524623068384046939681087101261172245206261710672259973639459748262103007777329585409266829900554393731702068305865680315654889326707074521216028355781850111890248349445602920351746210699321638152557635653018725162153876817934899331641469443240921664881385872753298836635702431662996986028584632130643244515120576759396764059098814221156420027863768103680329573752464167031184562907353859391041352414091098804768375689089608685304518368210334151638395238701435975678168596523623925911876208845465236625279722465140845157507611604564632288203449012942471903031606996191043680938871819344592430712203540538113593568981378297118425817842966650213737435200371997593295778466306886639977078898658578513064512898208376293187288173680248154741992622173281930772559663507117377783492206352304255250249391605466913843932355557587079305231101595740354895812029275622071621010983848315729390047221808736148998349355482128765904612707044265313101922017181814337430620514603092818930143256955648289541677716265201959514084249588850140291729587792873412242584743948486060250107000604975904826548820308834673031351531655833676649651682288146599210949498297052038072090678095175889455871301441010258001364143143735045359765828720495272476150262475152239816596948775269540787257802911884694881007620343594950567106424073902829464778170575521037218012799285064578718500059331616451114331248003939271111689437215216727963852272249069228609739672058155161297221217950946691991679884212323296989880932747028914798173830550771636831657884334830226556963134519133003979282055481591546274983131534580025473243003918071701234485414292941555345747572643108213117197773612185607559575165388591100880054127309569233758105854403099194758449159588470657422921838601181054682813966339427350280866062954812284995040639136999698573033292797489323257353138460061210686965963348129666480430191001060730505657933079561385466364139754188396879281769176555825087632927802430158750743677898061336760338698529643525698896064145320831187672276436977215337641517219807181120055310880601630856078299242116734909689381035285770405267711359873356395377625733308328105922606330316602905055393259960621194328849778513865329599312277993841663909519902585978918670404353573592909015545306730511667576766453890120773889646220198060482869657189915148086864607073409310804792964152276270270823940284068419407079639829433818420488251041962778455614750360394070997962681370398301107001372497567286819586270634768929821136527983834231800095899159787143498672671601232303388127641996253239838030599258310109717775282429127174438996766591606561381520456460887951463797097799895227068925214713710945915725475775315728724140125253680212252792398180394469296321977990018299848132631140790510329233255800455033318353927481142134150664930691419155785186261641597382471382090778217267867329374827188031250072371637944250555453894910641740513347092484505964259742414400481814103046530024182155032412372532844065461411423534942304083224237337462906843465318808357954380273794901841251878739643543456701444001315868057662930200488501685473284990400224402053496232651723451510359248555493014292968662770167424879986437767234535252891700484740565876959692057548040212263945892966754354414037869732157673761920290020072151018171461724709244381962305988995750426388524024385851653296619925476838860333811457871470400018623891038391164259281445191699643501085985596059564955920937669434820090713986092666222201755802885143467252842955334028676129860027760102597766434329511786307474640170645202195203511753188152201291367330125397228133028223521184445887158479486869046446094544704003896902703205187459504545091299039033222234873205840916808592531506359254578586380316518592799613897978488820868598207197508797268107803425860018909839078448303071538844244345220380614678284629978406403165600739685247619466211861238561769447689083292949115811152675710665932805854601827351779440977446748888879240114380027741612436445100870815871053444261550886711762195827861040246536405571703799530529256438747565088841251139857123733635355702384453381237976403958071325821865662561874268848537787664757800848120455105257794355030428591972383912623491845155165626832550600756850947227124211789974076988318949230444589969845233991210986177598753205796349608176125205715270283215286917564128970904858082501475965680079269670053415383957261374552273273725944295213664264265167346073184158622564849613118108330238337037244656919387139737562807494856677904068104595253048494807489248184314574703397655064674608800633700793956171955882467804207428328934662746970953703236021189332690632346443749060815369913357417573573412342999998622474854219005452563776039964161331104542378496226788131005211415085199918313375146661519906586946355437062355662594538014169156886803551827502229421000162478412318616583607943096244964355359240182081856576302365434102039213973594075823168930785073591873374845639426580854083214622663913980971084424774262292225096546021214334862662721899757750654977772254141927873731762662930466409864656553151070332616856109344832762057191151417204563430861295649002078482989150310318414841785811280227904377749573095067980274495501514599122175021857758129171965784001109828280701872353124843480467544297120671514012180450148355062759043044754858693797546780769851207579137853939378648985875886237491112815502464515778413251784647711939131104749799037528855859542379429950945150415820643657314965066642317738888525693010409444232354468051586511266988699998470262387296974277172374212344623193986137087363314936558774787692026543736494003574557134948132571350660121368153284930800307785720302143507896904629444037622602547137593622374251987712873660529611806177791123340876979768257730884372224362025093045455317771790664529815237979015541346140230169404324741245562758293011738090956818722344103694819320348132797816680954368072011390316376519688785043089849705240442540538244119297090817422024449718129114825042085800149373610651629817873017024179779310098531310079203061208570597533490218483247908551833928624315292050276742501482326309210546394351951840179050005738599291549587207325622679423110336265508363676973377011297154972438910840543092054405385806924549411227485743883455895225306800107618761436421192457686321625029829270364040610731420455888104748525208387100428014869881976502952159858767550400638058533743566293882846941203456473044096689512723108475347009667567116689436899315339845140774939716174987084342375653903130538057637953709930474646695794439338830296949731810644545577497758154878379250299750050757704541487744967243432605692929006265194758935777416985996789073034439779304865018241824109540178627438320716227821628228210333401954497027706461013173579815958400555779576474634250256566010954597227586197733097257943692386851263560207609841727349456736975013729827447666702695839686377624272497772616359424306540156056944058825180637831636960422521297077515529541650009760264186147631965394228526324764198374532131577860765497981549578396936217528796339444085565670269851933395058227227439933483671683647189065360705914928349532837669179010837688048364404322918466873512944441247518610336045494319967483911352612175902643720396061515655863638372427205206428107669393690970643265716205984975860136956308322121275118180180263013429475581307928762321372556826080857137208501298989523886739717349687734677273558769937971096356435691936412137905455856616564790830461960748334448759663930248269113404413526793525289044240395940253380559201117526408497883934285127824919129607219616942748366254660491916633657395165796621104616928422911603585435260103518049633535836381199539642807406470342449883588815754396728137945340236310906768367312136701209069383737180553300794125143737344898895084542211810359469981494778031452664432287358656188112721760606853191502584925754287852564573406939103411673647416034517553553834829468809440778019923150629123385213461093383023748655255226290669096329325932392707250353050719135603749882122056811791680670065154076097605287699403574753116420351002386433597470744516208514911030791061917215577430055335519656536621139326328825973570227404268197718931799603595507792799230728048616384305459795502008895602436003789938225344501907979513281808704148200708728372738019849968994658183514547606949682317870289957790169191345376225869046891140705642555631124454482612189091362859305227983863558535190288523403594439278364506375374104075131994791251026586099235991028149728385789560999111122250051097816379670768583946617025770430325533325289869294440883644371997234342358769096537924436288920883252354904567957973583549990051474174772819335634681914010637813961394518233395712466574958836259348733284877479986426028517368248585654589972708892309025943409299933872689669404269706883881436112154966830630409692904645413206432775904374903026196299799500315852777126314323227526170264930626966926301236183002433843281608644466286484543148210450513896393235579343480619587945264104564565710041834402577916216902885232402765532399479138234267243053069834483484897923937494118938083778035114062043148699512271116933310529470174800769301861789365973360441902512588362605860605526273025608325774544018128887997843715162632985600025425426961913686894835560355262621671001467482075051832079321629389181324493508965791985525379087899567832763177492627333905097104505404593096319326443343663208034317856947265820986271041293813356539857182886984235596255380179233101405148375377448433906640955937718002400033049885038208806450832708865214449369779951696898196798222908426110930347258324620550857120970210302325629014858461448693643235193380397951391251895143220748963884917567000162191496873033492802839714019657974689763986412351208595023006447708026161160030287933608978859943431294391917670857752745380151612660633912394540180252841375015769528501446432159495065616012751476749475136656600357187343895634212805958360568124137297154688784170578879602374361388201756187019197280089529507242282085784248290218081583770316235141880358582972363263247006367405627621916190534137413548787269374491460514947055402156695521246351753473554290299225492518121619684135320075187201458202863722974772191230452644422903315156250216684365153642830682357343777123170227818077885769595340775131363247391052275690094131579514127505523100114359823187116832652696733599249015868938421045986878344274788224745292744895306736593927982773495346364922113334472724722825930656956916120810557812251539272326855891988743867452826793015586987840097453711211270221303781015630188350513966992368270563614355711162767823603497559439411720192668019298792787579985547037899978819423332021607957286536287958140596099194497524312828581838247178691486801488960938070653783113652742951168219540020199499390955488799923574338478758376234555867934676149046880005978660436626095779775026147401106345722784811432051463488491063321143899322061554235645743682497846984481207890117731404708779408519047758609958742973576509414435846252236061957848320077211341637314064821414671495235105557015879178944080313751049870118401748841649183182949660500176943290363009809971688201680833123470337000915929070922121236398963174229448189127996655820203550380810300820544442983817341177886063570712142408105320708604387577605576369957145151405694927926600808673636522327032474779605799309298744059305178000795793413028853917680831026564895134305279044794131973392425755586360428921592580281682620228529981937469081534845468951464278359525310441782916607527047530258896862719405525115182065741014372130002954962079038472265216444743313258328398984148728606637991021302015368575243066484060492763711733602142432139744652867399723319404971018428417557001642640014387001959728572310502350770594965754925253537402134828079116860179283003167663908005923987092576167331929835761774091198423751896664087345571286825611129591865393456684369803359974143943626142513324082392637459165243532234099637092565231275543334508564376619473857715600710893428964327990837821083182062034793166042219656338092854561834548079157745187420203239198285721294187851922880121209634943245995846167721206181231511930120248012968757754505745035648273322512460355087242513986423473007640942915087331332956476701456368243353425850957603600724635756337047492364017782490211015681633415816393506115862234359847958807691507744226622442876353464952351354893195038002825324325547839876221915905407673274378120941989627062053675464717718490955735475227396594202193378333456532574751155857376911810600670089417137795536498243178163518095960930552222454685615278152722835595341515216997957384048189356642395166579293292926278709316692426731041054305423592580046712774801697594174476925213232361808022563502535387009602876926853764373308659194296674626928134504727927461069729032561142211276172349351731543395328210409452405008838631159836021131012078569097080323031625833101578401941053428765781391588513762972761280720773610790448203160694019959751588595126575633370450901886797141528383230975781137260246363121744134700126199520616071532447400294220856649082320652392899909385478374621493955845812850765466950674520621511552269305423686664182258392054195387898784020526490480021977151709655458454202812055072716642474140885419413509622441739644869690489811585347460002699093475089374164563418210420003192964844657087610337235924229316897767182479694385685785571767807115391296932236038339958635916284416493494591722873543792349997406688058815578952336200752529922035395926054515914969921367677302028790252822614171543548413840058267319152961425470251475253745012060335359443965337689706436814333463453713668721394132622206022005925597337719937212502485933260139007533048762307801844703455839587767656197630128704509465509952735187831202321703220871474052287156576991643928761328598425637187663201599736886223042049457040016871923188335312650218909937756853001274419125349365427790107451070349643886569704493284349321408900812380193074330697718283856069899904083409029960464583464914453880223900636165952490962366236956373552447820807681524579687785000144701668892341279159493112084997657323430301533904460893137522908740420936182677999960085322259175580925353840972200641294285082003674334914014011129995193586037523815390755195412579136431891256630871092010663002654553677666760049118617106804260994225651675559778121836118577999514649715876598952793681753755953558370529790144209435671089934408285198747282438017465851304243548200420628043362557847442790163779902098851395094151652342324618754042548294220795075508308387680325150061678594305525698376629203187094761581148306166693889263783273977892099887509313857941655556288877835965798793241634385771552748586629450458804644208342044336631312809637102270131833271277421397932511509300380055421111892186862966162089581661166613137555724846299422302417627261000902834747294266123506188036259161218445197695538760380379828307389707828022668448997874847393087810650174159354968815584876845429955635574540369736456467783417198418286476059258201879499577856242086512598180875215480346531939445466511713015178534899016124654419431241272799098347699361080295445384603793753219912037294949246304908230644625581564867523562084343361102338262902175532658169558286833937470809869427022607010529519481525941342241403807185618796651687201200792295510425432087294881584372473219019044720577341794744868827212991231787872687429523468596191919269058287160725094974268970119144360606014939272703773889293554874854078358295087968406535050346125172794735425588657565220691566496391083957028467138789553116612253600601587532487119150970684869576469094103723417352999753855328819913557862585949168519782534356609034343862795880528502802582494256550501897758529070965155392311039641563739384564367802352321626774550027881014537852730821851796554944061833704616558890323723829966143268522571106187340641435566391547105403687819893956233054497300851171033902622010603351714949670856635525157362423255901072249818459824157030029272567577049896802965608822082035187670469802972336429003449208705181334036208861827396675439123898611016192580023105561786654293734607826769428401675778418221310305910844462593378708200928459699475997883853787810517609355085487379789917122044730400096938489274702632199601227451717877397826064237566074948094457798118717215378779618148323364647327277939761775434511285218649600715511072768954475718416402025404257705050324556204338602819305186810663754851972102828732768092499108851310855613196321445409503236628642525844665314627970542952654740099998080002224159899455737108311420895074264439453441778991989492018943049346332230241886622548345003525288798537063559822137109492745512761484259111284155177418698198906385281515288841849076719386525753230723571329110685960849419594173480829020832159925946266571109525697331257948201518693592708181123405623974506733185814001249862265557053150080014836062767875857442046679039635075308256461482069942683746589552861616626616107192915109935345103855184175850238106669870126659603528971007380831240216086589853533705844167328305559212952062686337149564134662444489618958600136557487672993311934701316512540282159313366099998597799380439384687759812771697454984716315659616286766757824339809040132269750820246130026099403162263189701846535995879099085561995296574127822274207567692420518531219477176243530809606349322497294000339194079836169061438124187992879605877332733533168334687608571185101354048376107819623775342193594304192424541528386734551643041775281234441919727183425934242464265140492313534039260788687177175639818529714138973387692370900448893036701999540566272890153579385826361400672575283214895711430327870731868930541227839871454232172385058215241705660520447222862845268895193214134783178108488484018718430571378978346034781584360891277418224861996947144226326442805119146781955272247362884205884161769226860991186165899550833108329344551346487684599721527592630787154668031414332471577380592310433761935520060973300413625418253508417885250435525212794207389233757163960666720393816055548138910418066922634958703646984135818836980418995906196312205466886186802534157846345324208482851408541502102177492667938225618608099810446605963251129802486147844174151196080928895967856251610669674921728211970012815152808289489291918453634866282945836384340044430822505073515737937243651534947703802229756027483085530380332561730395012633374121199465558919291620919128108126021135257899504170736660659558734317231266094648231135517032879027056841179009013635287727591946054791719779970289179499607965892501033708588511007058237091322930566887959297439151926425884890558193917117254914353273360162395535059879320696346202220408220691527328537016486944150890633338547019062006260901607336732014181469446601139607739460005964309409401001618479162700292180764808357657324743107496866453753361689648096233816460090433837809070914277907454932921023117850738925575002384979502049913058924153969539451591834846008924773633441587810331090977939921082614549761110055030129509087300913567995955453960220404161471123588956751778876499720907394957956671679890703922509139357179373115566026061892074887594935301086532538174109413304336893101385786230368585949345124508463364527430327351172112051441974117807612688654444686645668442193916207651939898539196079954321010829138119579686628265934733984988636520610284948771248363408607968195752012865362693972482091951698246242341775239569873277111860066192845652401586613028045429296802194389191059352154258839994502138003703250226766688603272775923268456081862345141621210411489764092860158834950167857894110399035236415338552047136421779203018091180088122876771322486377517753462039567052906942930148597523143435901088627056200051402249029531899503055210907838653026058333457974992999709771463193979716289860784145052861247946030119103775985422185284514838677287189577917727022478842360145203278186024619240721039617361602903552330300977407911892848875743407830432679595318398846324664055455748296680908650209348736394155296981502303932386818985222424367173835301367142877665695552886075594232824505285900028484103474759799233559366625556331706814238669446403063459287888395881434607134813193944927138905774526359304023790065161014389614723899093236315744642962567102759485962152423540152624131472012515001930103023234119072462445587182674654790591568969659912581843709929778087197185609215626865560374224970207892991120574408387056728904811620978491931581594651205401611846837466572117354890142292314218316948794346274733093435551763770764577445357652401395323534608387018681865645967796188004915225541017406444594596849891861372772792289135187711103298016936880205339054208312144226104173596172873131764752817794234447678033671030124224547219042450196400888365792650872440870028942452862908022014630361431027799119337053120846322181905707530004141509910529916159725163350668790661916160768315211524696258582396529166695925558017232353396764427683867661152459433100526927795423895477177891195548591527832361566043289857953713599332759979182334786564186620689562827302509974258622941386314229901370099680708254370341256085569283135449185117091819536443648645987812036932576800879933308616475888861942775246880724651908344119381491147876953064582160026270242723467635342249463585286209660673598343473007930877057432007465363351167196386332561107832735709454743588335539545328033656067990097001920055551370567820061861876323567024125534183538975080761909049549446883256110546347055736286046508113674556528996858125392732728114572376009809627526103452320038506274587974455487373778824263337193668905258531792009614844780353294489494976409329022145539085527325582656365998182941640971042143084777910481650254765491304622426176123066181437986385831334724217129204145949993405261741054042443132063868863302305390045113162584387891295015819015276587929890973382739322307596475409054458282450885950096085937751217300241053224814776163987824914906028689356500573931103478289674779005369861317265063207118339180810724889594645706356462363029323838941301940515570910812624737459601953334270204154837271894609064348407850116753738359292978399085370876867205229241488044189739752870370893295238423501917978806487296999021868320289538775363625951643860121652901401858210161365910258291991568289807003748656931165817699404295448943621380822572339963341023128325588231455887018267125658125725342604342737886691335056033682631819832209060945764952650623501354767716017434425746701386104708376784326436873732032512051577790754237778121094197710762975580287824940515306127789797904924533607641588990460339128004144608044056320869342719683578940365273149385239443852756320911716524364052987241443199989836719833128921254283617067326164558593916707630100601175441235734546145237933061427633107268395893356455478490512866262118364229651643331062036916221188822660618107562715301961631372531278531250008537838273063805336844811144326796618562663465433028444179477699202104362128891406663274739812552775201976996989915002587505676218215659874540404959730259329952363354437322233093407538915583292791221383022564243080684603108622756539439452224215924219692104813407769908633594510121913441739144263511758388314277874757852559572466246397936664884686409896200108513746820223211096253557718867617517620538715130398784444573744233162494786173135448157080804819240887564585723375276821197784593767008877380354252715078951116140655111259395948314625842003345160178513638696112453370516670862152915666539335789481233551031419771600941650957658961441743060759015070691811441241218215691279297469757406578910020472826647051454888728476417561722463296853452612358427141417211119901221411184124708237092103504553251487272415109034869594545653345133785667479988362484237425769101594325465039509459692166574759144064283908737787190822144150716810865711452893273241765784065107425271640090371929089795225677367218572511788627602245862908266551189222867307883694967051720609490151420775947790832870024147434211912824052316662279107962771252182843659616251709982051716532256619591259360745715903531971892329168692860994386567114305585644963181968873499004373539383625787268971524828499196609189795990383992568522443103761640988855230347386958753918425399092602826716037171381866940290614412188044138664874123198892689518344846920427792261870145102199659657087685439770985992236523389289896201716060592721928473050743866214435220281563791807128398253046098135914662053771287596582181971133208456575920191679175675242760854728066301058032922592866885611296082694237866723470032979938776606288187607342643594497872374647876684103189377008198305682092874754217909155875599843293761428044133799600599040281517379559465751765313758381828740373953354592137061646100426537264411302464287087346675454680115921815424216741840139438979173304399615171465134452950356345645878315215870522384826942465371833356913816913180054158897740514106147626370069641871825204801554868974021297885382970555349576549830620696483086763899011981497976231762411596157981202668900983708169622810951289974657526051541863147104697986765512032272715464220576426720708485357643198552558435413747950812088714973218809674629999170006442359465474405206633607049763102850864476138694676962979551961503698313763383509781763626468697036501658239036225264162604464424067879511631495281133471602472827224821543382542390291776582917623286664469444882748044077113070277213501012665738676443090809516333810890594338532902467387453567366170818859487881085673559422947224283622034838125952490497846313194397886444246608929534260054798455246348026879293991513461821282184152664282276255736171657424070893813778339548845417433675346010759577285035933311767386588349217935545903504276911325457655818143115046702619030566791448974918063230215655118783421475718123047619061701667824976633348017956165340015529346463817297952278131131607415487614407692125510106687739418008702067085374912811192640263438056549985356969589959645091372627119063502287312671762266172873647359707996943329071126505403921066649371734204318884638237474745881139469478216476129959739108525692819826833800130183482612888932660655845164327434396407104636510858397018401276764497528578050150256350632849072550460702046690029201652318073208124852254753215637768759523090018270280005549812933110248280542092887705824870846397601326752288291233923559030554745874676020179685609072081611450297353058930123914637076307132168285182778441817665224202658298196321906470919629817817929739251626083310351270930112465524351935214074324174967973701408757832408202526594590965061028115320028138081413293892126933672490706188132671674445847998453165044832891533130408754969337540425084487841686500592986897922382856574164499043694637407783024348442335999906684253248607739822485546817356076537623445369290672393180682593543664947364330370231285899377057903318193513963517040375308466398953625921790875894855297943144943764200128023860625402985576399142251351155113916234040045016551581100816586373227701850916790520704413839375858595946932345377450014320764200067762739558852326624865796403627554605094521913431565685751060768484346407723044162423020218643254667243560623077100781606702797875026110367980024703979736073747171451114210207912470323841712773350600433843579287999556176790270071721454364770754543503148365749291596683845769670956742835646118380526814024653302367397066900014909425910152355431721130633332988745030897625953190599421030655391632118921894958083364083785296938142794739029478487882833872609377021272299062747276557836625921356696544076266215218749112327958954578220547738153176643928885912898196394191991172863357242958310290772102543928414456625358790377398980571831157104384012333284224786656547592923688938374910509388918589685780372573791384112943366445315903241361146360792794528042705433831390975184066350190548665770504972742020488816975800247237024469185031684427800667541669710463578116408055003424172710485491456339975125858685041868978056088712589423326517860981999385088582034342372722775918687887073820001660673556401170794622565194258209122114384133681046152736791163850843341165489017570474027806446753812536627087213666589518866699903089459975641447863986897822678769226352556864573624573015840517578578760247134753638183907820818338392505881002236508136988805506955915499718600876035451555261816532764057096356774164897724558751437282737865085596833887712156832525557939592286098393093028560029213754949756879712909752359178739906779164037473472402864793777257232047920441063680376547658033090633960623559228138712747216347669588955960815499587583161097935610550174573876521533517131287081987341503793867170222439060145032289815815025257831395763630667706023047430756588426708275313413662456229060116494697804285669195604026790124228303789088718937272357755515668351907916822188561870372596730104507736860847487419318636701859437055196204782751723028931595640217673006381066240487762019732819177616036245116500994249514391856502036582016209809226678010402298345199462908898215578647119068657767675921747505851793057100353094037464457764622903769928552872970996439234458073545182439735814044947632318704456516699938146773618162813716567856128199450798016887876975489147843823642603743222003722175855782669415525881696398005125050790105106593819906936425153419883704147449730177239077715270636628131442866107761102199810811664324878065083941976405183740641674659639869367393628731575538463111793133000663581721080392863664229142488797054617119138039914608524604805960261197307581433234114055153446832990809682388313982221437565825785837593795264577580066014487050853619721138034269844532887276173723266913547571743437777188387903294146569051667715845164304834055115133225142719832849167235676076053689590401787050414590295900185656418019313358138308133804830345841358029232527691999292131987549686379487672079051004320118754061144822378709817915262984365262490386245235032861955471905176838164932018721148879332538912424415441695713456122734438527385324389879862548608579004571877179133797005190387772524817104941785364631732377167436423754532276935857491191200244910626484335133839527334463482271682282133699478132140384653155522099786117275558341783566758744752847608820521118335545161523478342064036442025647077301533213319333955325253898353740507896219506421017377373489289349662765217933359193532856563032977732101486153654183808114152704001774992303811779241753907234023135399778816013350541758252581237364441842001950664100715343328572923652016323476261962891007797675061699805798583651005524128680637518864104796802183315133937727586145091716861029593807316011124152508712762211797635634303751069888152595095954981150344723490422728301364609206300699928710729724069789776066824926228589833107836580016960405732153025295075116897854354217982997799592247037988086922701935030525494395562663100142552730573524499168242075222317655879105153045802172503098068047248445890629520588997168348985663198558414553070762304021447691904338507320799288359413329966920239151673289409238713062525056960812549157872548415729306666771160625990970776218004928568097841214233601470387267805480774872225587426988393800451473734896247463351802209015040536066215882595567317901017428560953443354444937794437827918584933413754427462816057746895679422707141141604781799221891569009851672603139109389390675305629401547472071703743247460936843563819983003145709849406095035959992460774350614525996251450545980403073285278504723209957204026491055681765095081875721898674376611705627379994551894509527910025730966523606020685695213856786001685137631394411141048999181918369442820569694150071371865042064108241716263730628249503694009485144906419824400500473553437375956383806013980989064926875118410972671987402167455473450292395900107773228088386565851643871397117535861378529985236442254303841839447962517196334505568661622758165653146640983903752771923003767330378136636370417397861765868940187182917213299116924165504677480421560850197694619851672828448864681183780173980211286591717021279864522331664632162949674097248156927259279695110446629706189503298980587255238849745283197163962397234683762026444001883475886281056329315856376695046449028772294227704902204792515587987781482663953348800615218118744211039903437999022094365149669106822079498819575146907066062300521924951763802112992323391833198704890019442408390659293855596605234452356765079467010838533205910215208416433567310533072176563156947531258388014213319396370562501807467432174609705423176516367277964673900663543348825727796946995824611310409632327988640423814764537362849773585105158877599344024580223223001160538175916863357142530076878285419125246059373986076444324408911238377942723790206532014808610449835273765670159260884696311928821323789617139509659017340922289480324215748837636893963173359868565082354816615154813858245175714743685641491327624908514346821662426007595742293364649157339903694265797054577339127051250424072353402302277806568105291269898206821169311412037807270571501529854634537358418224503708585615118352007496364385243236868789571115832182866732090747008542520748563829850558433677569941537543047764834153884764192742328092454375691424318667385212827265546377916807107068349582847531036996364234990624731910878066324983693077296945173266959552642953301712160661625743876517089554807929505819743824076598784840079786151975271335996117947881935839401849761276618286664662227183035116221125427628226764817916591897487282669737535071241004320010040484844269719419487646117652292638105529125982616372792142861533312940658196777684486345358548010144011697211292591203568632117254476747667669305712476271618113270724314380925863693135670328019633664343587026140640255388361684241377352551050668958800166609799659087396733031807908957557865793005093315615440427894107696774694157975698698709849592260324810722559307358375653675531206972322531771433619119349740206339400814523518582912530718248053362241504797775200943091135757748359320136174442731585534485509672610765992211286849913176947667616177488157793841208715064461767104491131831344973957144875086395833408248688612452811617975151603915468613937025572366103001375142906527564698070980310734923534681333115226492454172311623128049961372432325261719380119859368105774263436805013388549218224153744136621610572073157510560030288532330940952813140487249259824272402777948923453850209313719138670746444632473134546814018867216203587937845023853657959305490744905307413612979069274258081903375323997202335267852298127716473978865736996760589154565400424113741124984327668880631132749576260477912815757748178765194375065361588060305229833027875802120267486104381885964580493449704028093597967555323166729543230291464382739713182906611346491472627875097324809233447770947295039674316056092736445052293957486974591743406956719239625250376841570303674110379247120088684558395476104571600318982890438407938667755185997072191451669550990382363307253454419514920636352205900078124395341698744346574377207557164611718970267654715889213903923651023490683430631384656644507949583737539172862817107509798275800228750542596800010826855782145650607551915593831928860905847187026582343127237306122966115324206943949985645204911823632806877527154861504702731625918489018690403145852185614692868925089997954290708397040371963608891208350987595288110628302439886512474195778411729414380714365128669667988060511018174344367667575614953006414956655085549602307515505060439160908839088395240165570671677243098021406066642091794443441811782792303457255382282103012343958476918764206644383135772171468380966803853032387568295216745674278556184347560452124411322183942512321352630038608014071653329166215711952936723627643419941554471171884299819557291549835433338406240057317992274168199933584414471246570174665493580677116470245433418009078744449964254856905398859343889706327993533725605892509936706724998447666600698434523367560499759063722832438991763744616947664424587967577636151902648345231807360560963385653394580406398150598981612587125370957375920988181588463006489646765676301752573816037540007060595917238127671695338812935349615041089344465770268903818497066655900630953262173164940113220740429272422722980618604220493023385856633800366273144567869304463257850872370531688899107915492177859732763906156012760585263200219589855336041030175252417829944201205618429912380158745171185653694692413024667797192901569066975840089676625658539589323189005194584182392609088344639590567221812613647643793451206525076058199366933022742684745530226375740615221288712126495568372090504989003935046636039353649807098589276217729639766633481383724782176303890184628116504119565935126968338017283452247603406276158195059925573703343822138195159215547916034248419702521412523464715793793009839444640465074695085298230396196378740281172239465132738657028527060525863661920518497758204198399965478541730162846410109994965033095643126651252646433053029863019965774763750067428122925657285775401867623097465282956809587292516212838844097760697456169821210628706700075727784339920607495979438655627462606822760850417387144264862151983999462160032879651485881669163785029328839285570177191977580674726071800330507972797882566424839952774628531420638701964296375076067207255310550961748242341601478876434371705863584724249940146302466554768189360817079799732428910269123801163290541682047940619969443431303884465886548217277277312389852308768752097276351814803433350333140851379296482701853544495423633700958371406185585397391037244466418900237236748451759618622804429227130602718240793335319719389271137125340517943041417515768088469928736697352398942113647520400644109016287478754691695304789206659294390225207504064256975864284007406137132885189285154766746184187119542979420447339380818447570358735715154607825864735985536979669674276989234414537177612467614071048391655861661512735469611189378186829411612133375973126177696941468078388866741713178472350469129045515110662768071379032871393666615620355136718202419528250524893536435105238536894301728251213554785022395103308839992949737823843696360294288298345198261191092751743114121094084744575881748504469431664466786192229026077379291882048365779967660649551886453090966623146879994737425497562180315161867478774180346055776620533143142492378036521224812818273168226952928422130666611402368498338651652362703514919390921390930824659299224416037014168635842287395196587964364967211133595341693618325773335406491027195670333073318693359072768250847665043479407799316506068144298860823815566074359605585999262686312203914498485374998513671829344532389600293346262355946753880418888024922411198628625792439203884474554216629597023699344254626664643091930897946295804423620194158647554560343495553959843721639193343877896331682893909961009748805870536019107281130051450426364642216753061707354207476701584642292745257158362710065612396145616044459702375694874811128970799048331275459541388990332418721881076609280938180374217978927587832338751230259469632647838528590198474326493125511055954874996426685515918328932635048499287465067786596984712299940922119383509633046868979042101505086966870350720694135846271551478989086472370971185322345510737615762835302982418670343728793375966167941966677361044146936291032941368643102104050837108276818339298691151662361239184385320747898274819696376921950181942931904773040823576942128650058790362206075093641439725947894975847420958748744881243344792295293533510012841256541593731569857335265060547998419171010386809599446906818532931859900241779182672351222208820844620882159619087429186831898955540561245043635196838457716946452523963390480383006945702468009810795507255245310681269894776788890558452567356810846836928075682791352172433532688176002679090301803418546141663822825625447244625163353893782099084977932391847013376465244359326644714571467665614220679850307645958665110411269396494989948233691475381293241870475391309386646388027916711513876804557090733919076313527600381115311774639490882095014229282575506508269678196577003961676067932191048374674050144906841229003510561722336252281908230965801415779580352055087775342034462804682522166359562921635931013731039155678997686046348251820804887398096047795359176415439210190445729889500406118447291037668526102625493004093466413065262792646802522234047300761932248693915192293249167012792402731512218502857853631573652036462300837549419936374568062952112738779194883530460758026321511232004537977220884318344926565017242952012032950970151838763592327405683313476717557400821031342898711577989933464935491094978054061255562938069118093173061879072961602118457373524362074009120939560582063352413374327538005641354859249880274724040083403609163159022059995039096199157507160408746016217531596274428504711447790236972814038790110344858888945296801087435870103146802636927306588201025422327589135954094643322685853430229584236056050789635042862764002679674607440202255823501703683786700290580302335069891165315707019103409996596265379233531226241853245154965003273027219820494116155435514960278960650437409174788053029255344502696055165775350742075173637092389206109722200947408521800369667078444679173861223847313278997765299234817714912137097016957479762774161821373365474357214514719360163118525993739113566429934584700479099534982383504714691845692988082341886947174241966235187969383683040808663556694349756306756444891949020822341851937953392477035929410845809838550238180681217171437564453848337737374410074055870482501944579816041661211973880617169874877380331106121829614249117516269100833828317926383685820528949884307541088403317620255210480686681355967112828061181814962274799765286658309093755854960329445195437093091236087613626180512733603562766547445889156957495408304193798251865699377289397870135199368810424682829887273198889105168986416877260881697065665386344519223497518554332531545181136037102434843867413132320444277948357069906975493003608511841481652847413107877914677553598292960049900557654553561227748233320151656750270303446200896300070528551529640741209137383504917133637626602334642621762700564894690156192373531092998180310055580923478382319745841663298358529976996074768100834178896859288439111456493978244213959069073270168933867548499024699720196740291635607619592947900954483870290456889361115401580500068070943618363010256097531659155439050040839755643178194679365508895940725493832179928561565637199842951005419514231814448925358802321221011008426854242163710029807203939109223038411681892206076090877052407375010239423921137464718679364761851646478077048741140639795279000028065294882319294474561669296455611819282031085732809610898073616634480175528147789520626811241352163213828338486022129397852854821104459045120430651162480395731048918666093567100014503723837700268496676261255851424029666743149000430301868776347055166889319711773986069958073937138930404048804448655897953229932645325621508917138469298062756968981705780365357232703636713149455832545539825820102080575230256756108351797500473874473780671050093504832837406976922604588415937483743558732329651254654465714686091410553313215827478065936968084676944653259176487927446975786290582091243363149852013296673475858681822628852416846253176985153761878896920926287184517372182046653473438142193660166544007767269199671275429976473677000463674122338669340848690275141319351548366059545142275840488211635272255008439284900506848684779194826387150580769674164820542245203286654341081223527650594793375757848426810462695703092300254441032418997265739978560567004276340599068214053681513698990791754130129978173496104045930792688044633655877942405061232162988112501111911646780550832641328278914650887364615638086869062919113219491749989027030123364526134024064400801654349391655309147942559925369865821433320082729615909116810784108253621240321410678401804738241855228775023776013154192009639678787220722678790779166685971876808501084633934739336267226923553027923207805494096912312387638871463078306610730523771364947783243286064893096839112118926497764019554620254142118067611085710704743083060337368527081628506529084047830834574691637412269247775534468363738303579521795705516094759037978610364919744466476967520943697309242963344406359750008783048037401779910479732791996933527146730582043482136773180261210202123025485349508245593535676514960944824675739171911572885040818845727170189258657205132553193121259785870568550602911990921874307009965800219562109056745415311149033289332802568448946533072588548502528703157144529588643690120543353600178620879776007876631772826964964275598937244744147215143848323273270461383175353101380248147150747182808032974870423383741668860968645955506688280062519861884432161673761622543049322514352975162770265810476995827919777325365215617196810542261334278839792491106051950919362567488079851997336260745092655661854030843833428129107853548028687377461508831945791813790684312949732669625745174755757315617319089884453747042024510009088116877643192767521045915625573747236122626526112387498862345826404451360023465056671113787902984293498809984451811895199222152394360391388363694358878618855328323124273219945592330150928150859380261751349957793618196605156528220145889316607413693352978550887887591572360027183591885285506540285758620867503913111163727554648531766953609247616108994239180432989441707675102165542589723225563723931975323632376407348338803732316896738587849959604423476356800613463581074569469418529048010223931658019220162065169988349658477986839074184753791877050528749462306418880537851875321134624374241139886761846635312725847617816341665320503298253470628336681368645175890655602397995538928100080586047362693474988951647012897407765528049471316586407279798367255146836819923490086479274436512290620334453688707293730986101234173623768072713262911208354973605668896034039368580254850171148495640210772370878474336975561816833887040911932104772838768404490523533513387698778204337275634243527314333722354865233308432418119796606312392207359551375246204002089988291764115615540414168092235210101334468389978348453134535967072145867585053675506250847289687173734847689394524422191056703740232234625776613286472605015234451977162063748195204118815798374061137792644358191599998310779861133661147468933652797765736178408422561728735971498403802191648275980255823625347427665200415547224337879135830404998269397637530918758544866916304055578345069775172303083708018086419046317816215468824575861308699089057152114040167970353278263815962483826550603628713301577847423231558104368855233733407609166451449005882096641127239337924475781229352698085661627930370182701260367722259493341822970937119031235297115453254700293577314224333462906737507277248888421166565456103324452230107512299640426754418311879017455218212794801547670650757388506106973321023657984870257544420250493141312522289583740781994468938850048968169218780886353197953240102998062032019500122863396406300417985827475407157893577618755423745765734647026711570875060845357156324951471156569998635634353699000484603556360543250660065435347186089462982574172355675781605968603222286641514279011518331809780619657853235624406275840159988344114567013972936804213607508822141307217469072261029540312293637775408993358855438650260226998037981152797556482514440266282831206923218748853458622927180047388279488717352853696056176289225478113569110378038349836679466742448075200611997785604301616245233392361026426019764602528713780629049861852405616921453584272390243795874566665455130221061814275085502196527854172149795535359663456748486600887128432701261051751795429446554718570502270264489700206576940104795234529032054947286742620928557652352053592107482576624012659190364719652375195968539466283197786666158732158709573180785312706363406207483146342980802965902794424122423540446212775195702778748801026841549291482030005436742956508576877161570050336488961466922262811150566062818818983000261409471524177831085108040097365398308774283617511367002560415772502198961427883913404056760380648805732684890640444873492285918585953551325356751962768201130272712403783157131040316041056508421499325152491758656188033388643200583298785817929989277901637429357105220288812224847398561223844806713585166023893401958420521273180405770979228819450846163379852900673895960084129038824829718613517520336892523256627934462692538512274349836917358085770716519181278886764320383312241702511018150366460282953149331457059622105669216614771791251413120418123641157592044290306541817937056780938988825465495339464267988942987648255788264355749883864957558624895636244766200926880343948502644775333991123139992548674561897600731291829112386319395662442648318361928603493738100731336447256815980564664221109505603776239211831258028980349894175265500607853775812376884307662454935666818690201066303068728349239277278742610624662108329264584955043330371806610873138925139618358403939578759958205484333274241582575954458935142745762532390773196825262858472666796214257222873391087435290423549391335447345221684939474722590533448130959971086364572322258263528726128009569342687568359462910012285210603952313950540436879745589682040946716155999248980229699563764343468736275817143996615590297503221602184840919709141137879755187542520046971406471514033534856626817951748541360586681444036923262721201735294313115712287377914659958629033557696040781531631689015182526556649335564258608696736399423263793564993844643954359316255971645248291466102502818474119536727262955946598367370367057834613932021193515241045200252754080582833013642697013074168636393043550758567371174519498948811763522551804914871558681810555586865161856980498030385273973565100563626386537818531484790506902028083861567415795283855677118680697365886117043769663916503185521583375835398793387980884471756647934206726063823324305626003567730120981065211789722048577152633003893010689976149008497899382550021558398171297200676165643693486099259095109240101132464685727816996908785541609740883245180770254085493186580573149438017140578428123329785239128415358188816704657579419264394234917999115377549518857283665182999084492345032421361542943572298197987972278873930676563603026197602987053805237211595481754779797697016304277190851578738664011566547405137294543369959988721066686895739248936448501805332645540389007110697691464894239167256979857303428509384143547418705656222826792483357377946112332567009856287232074685837681243954290649714037332743425765043016699374266083631043897652102334135070164589326734504081104119855580260416747384644872778328772456766427817446089556864541574122141423307443002319926654900850186111672426788733311275332305374239439779359378183419096343705806082344083276065404664092579736997961965466449642035004587240971505862249996744864508143124387126525684897057760817578792279088780922752436775724916561535262070321929012759336427442338478346457823156282289522634700568237672269976848622519714196945115642529752663976827346715481185688969937965811458453816845345817176411741257648099037608062656358594673725608857947649547479040104267098234740640031897844233313644446028435651779998544575871398648611874486243521192650914438850253668292775835690387337097209529889166893482371482952286138966526970230652488236651844583893180922298916556860857838784777672142905332256572224636831519055363110155202495969099324399906492555842842395276491338649829230881475019768814040570041283660358275033121188526339963516662706260182661360316587083932653953737690955037971205375984180436961768706016241557655009696335905365587389782538404493251768067150426794640614111358935958098674421226938578775742320772977737745437406401338001390352453054279110607760451996913387235063120965063023508064007331869139588107415319208003491589623628499259731717928414174094309076779240387883842107573724644164299566432256637699714257037609498227363195539118120557382486708131186381414819798388213689936811678794521866708010308456680139181893450418137464231339862832984804457258304413182244235709310087299362715700885789702927976152205391974046476645531026648669884729858999660613570584804024798054432867430433663271781951694536869471556284939352158467432984028286185732434629300579503783225087690649451185765984230178686084620200531348388496015651508972587095468292284832260056896149640052910828962877661351779774975336450883241161206000637696030395338835419734925295118705205061166963391118448957592930333783281331415220448233645710120003494826383466350881562184451697828960704100317881414999947702617120845943330040252933941485467158769746594168566669804050531609031958383538645734751649689994903825999810844325902708700197217291795623120311838926663299534865078583050294423860443473568461911771142291621994600258497077833019116675835428415777424672186798511891298512157391933305286404425163989484978202724773995522105773220802679740366431864098644761437205752457076945689330076295512699892501003275123973910497521743892015922935671144400289656046032563434236880525489626097755421822261835078750179693420786697167295604183781559160820062561374733128119545451915379591441592586218442573034318211609345357809469411913693080392929410943809265827756231669008211756403517637937202088443019022704033301942332183904276592347780051077449945370271057828303460084300714002649275789898448274082864630850463144204258885604571539118559763028747267887623701488644492612929446059419753674567978685700062617687536252395975747586671347176825371825283914316626991353569841006730080703831356710953705326097499530673327368933854254858768327451049604351565297753025460981959257967738791438565234276555558973344619236368706592420593242861146011168251019456934241726646934156656989713146617973458111554722881679606235457758519007412501074938695269139895388064803885820577118950486638606090515277742076610506690143076768628965851491823595942819351215320373440618214281508934061575154897465707273094027534091227392278790013305522622254496366877285528801851753842797709995771038565043886413572165785166224994474093418698190596511552112632829261140449427488277273285954889437864272633770661772097650825508992895876505019319940078135335090852095994614369341537833347659228984106802011705487176698477573970094558704114350590344323794135483655780512935507019140786752989290296391211985570281405857307670441591310044189850654916468241713197497088851625326893075353199329859508404165608419972527911500517096616064274874837331242584830829012675450478390664020375454705884389214922203485409362215551419749993141543447264056667288890331738045877321499328057898887929576909506862237466593001042019929936200524763463149977671347089900131017492582896969501093999973115240379874978031972941603599294932310393035204205485077441551553793146056713421376449549531449577076811627171825788509098551450959842002511246958378271866233463902083350199668208683900420296722067700733769103261652750533616297766687578871526222238967691523066680795287629850101469317416511243670661667787293375464817664284393342308502693772849912120335479255500377519817518368083600981796875564542537006510623594423752402375272723001097901580413074519746811822211654746818621044948719592322478012931371730718821273139108074367374113387546542950714347944525298484675521031820566685699953695541458989197017700467728991350189518686160398237287749090006092992563372797422798473111841660557051930773447686909927969013411191748188559952578309992217165838666521644586086958485996782504218799189450666230215288892792437454792420848983790597398043655450783448936478675721693536327108114130922302901594063699475900403632180330482819733396908582223675879628138633733944588164779253570558341680170237333507389527351447616676170342894463709109420133598142997040777185977914917875342875832221096745497321211122614393718640259921335184393211816057832108650135486586472250743632712517692194763631504295313486235605192593816787008826742062755114314698453563599062706233666145338834887957472497905369994760211220083762104589087730729681593357215517702223642575104338357858813718595862823490569612260618392271177842448319621417975366197041990559352295000957180245811324081171163491365166983762604136882325514404743062066868902714589216210717218899134128139397185872857331138302087320744078929723380203096500750637583769132440927254243103469741069659321568321305687391633094828768124939023067414978497488648292599612949051984553081313835806803749803074675776994352857285107856812781290555418897888985532948269670119170779722374754453765467659936859337079075163754101012089465680150547508915037863925893950248365736662020985808161014178187508810455105905276594925962614673278300513108987244208355647170781568003398183611265065604767569720116817933418267677111422987850523821760155361245959974692088087748072285542760217880044605392949108919917493630129050460093534005519976670357615359619884312477165095280668121285383191790315220586827937197958659244942356551284871605367414140838830396193913787973599696446790376818084022606267234707941529374821610900634066679381721080110669796245497842009207140501185081943928475016068773209440943750297521314525894302672531514772208184489053789671888768170404685641105352389849560209097399460164453625108693501446173968251757568832547820480791257097115372021142787488717749545000624726994213422774454638501118494505095720898608647925807268406526690873278107314813585604474223911444186350872057112719916050724366139466895318384344138524871419365818866304883953074790456808632750217679714546016758377308478932457662237107442290594812488852789756780086265821131346089748136575697934594658594026043820779974868782881202969273683518949694637622249275170983669607540797865069654066798776853969140761160710668311288355595467353847739417069930113803438709594310018108542159047583163704860191204289123276338761828471283641478873518330053919647979535566515721064192889102520908466363798306642706963843601315249511063008535930381788366252026398247231752232040115629505987063422635638068183800121261646534951739264131595903910828081871388179289422964567481905905872389817490482046438367115141904703448925003700459027555414648768681828305373135334769771523102867103369127072601870891162922524964097334672682370522844382404321885066142821552423285543707554955966081349971560096007420702867842734258081508198227348362617006858875682020777973291516987620944353925484062053518036931122438030844162429970351887541549891783258741348780214254335546471186705760681028706632394633220205387353276168603331557709976571585667449341697385382765474201597306713217734342493899449214286861184240650431749606786884053623806726632457375998128847775998304161464501782990340176749819697129945836939078655949049880013966570941507356072071482862765080842087661152512842576595610492468905400744764772015557344691315937910265626595021907208654837825646529632459191837965729987782697989631677579824757114637683307748745132523868618123608484498517050728301516765471837725758256181483720922903465207428373708328097215942057287226342456799300628207572744054608846785498909741989218197162031472969948856348683878867387701906436080066540994597380409433366995983252665455363117789504745918645410473675707909962633277578346197482101875137295085136449118071567435361958306861116726336944512974111131986630106647074017622658046535885899361461592729907405371969787735611024641506968505438642938041072338029599814384082234051931440865831701534393862659065773403189714837944783977279684698512161508170616088803117739158882333613131541002454788636897167113831003244288289266482813260060563960778555150811249284942521088942608848464068609896608740576559209358358606530387517824901383184301903334348506865482981876300979033770062473509361942953556266038644293346729781495721188377070629638621212039210068948514009278512845240959699279498470320096471103453439124274763731075508499599312778603652448855171762643202053618305949700546688933475772599033339234554369860947083113192165074681342032654834822661063832700870175876448538680044180806493366653828434127792038139529218177771758227936993098168091698880739283568270954430334344504738768626562129048274737364554448453835269493564870358804615823037131228228777406077549468543050071664199149392998808756173846766933688333576264208177253690569079519589405490819493231038113970755318348464783296917044265620107635107056987329306413115274598653600464778895559842542094090388954681491913382269071277994517252753199696965891495313248000859763488181824390623321560711563378297264321864574998874909850887747197243644640532597524585680850325218008448646861646683424992203362325460349734771876526920697108864245410503216090497274955639910276426186680410278124490266579156887436409697460929748034953923443555017447382143046982683126270294687554382190595220697131055529812133614417932345932040690362781513878701202735469532355648305863768449039099351548885503146064758474013951988087368094218402068618328263960655988690124083884034883117666666895143300228889007840158947790001714470166214396593045617705181713576676759326416190954275972398548107883366918748116926053348667635644484141465458351443708984373085369490090391900025610016760627001813610569655452199728595017722447187330066899332559667883017031429720645734055183712754471748331645915775370444262130903493399508516091383281188749361237423612257427451070585209658784561598982893968505298892139992301573719224405486107300348874344628014996712495544952027026583231809402258098879315034106394620592917860262642188342739110611550246784312260909901168050070905866509676516664989368151699377910571168699280017104815942506457642186279955147368006478738385114837807498139914405578459053618219218488962828854665050766507838344116877497312518132539388954735782251074404332458034698012432552495502713637434604089020487383193502590211882074047742701535734401474158133385833434092343336198824404398231180492454637108352107529926220523810986694108108093634358367560154368671668027667725913311184395418882101603189975491163292196930039498125373131032024106180073310822870457586215292581346431883557571169761629546579590837023878561724732397919632760670797395410318381317755973800671851567097493493627350635666238744626383657686626637429093715468284560853051072271070822199367961304434071748321963453752534294033591179896737134005760769296027633831208645168042765644510198429248586130371737541216557377463700506809446418587142192905271290177281378123302831036796426087679691266570218103374040366224901706413553715312406353556954518435652983624582618614093803532369316490995176177165544708897897288822210968246199807065930227339075394321362902578848707410358337724142997752937381623571872735141865921258151846054417940145237757941025981441541092577001963027327909524343009534362386781597827985689622937396133540135536320497530090029159339824509637153463377118163588207185558982615279287888800732188998632566350146330432446825995669554359993625518689563917115946287801426893713264060715317484242352120594690658644678522882981704966779842874977376294740835710678565875816592301794882880174502622122559134501458304383895052522241479937492873876353415113150018022531320494167152944253534372141226618741351188656992124570855162877660033748646055080960167544013252944501261327587727755086644295337309993755602084142384860651747856443685066060718332116620806060003004597993124643314665342116431644646893624610428257112983113526533675457920340578269983268528318486477494488560489582811873271915649507099486441442578163392484697267324481970947958698756786882194665191481956311323650903579750060721749698748800827671759882333080068476405707743467484349382727691018902221953980955733961673818832986916994048778335302113438483723085784674021426526047811404659476550456139512876670726598121547874933682121539304012401759789316005706618380544444730383776421848147493678046974266366140941778569898069454356653152055624450548785574087033739111294726270073164830955886574182463601823657211287138874073860329454495364222889541376111016294372743031701220450407559259443373327705995758096621696438347401230071622169516121331959803034291168566318306270806790357209217974983110594212592218933204961431563582021504685684792301023247492230120602125962988364784167441804344761377948518286705968720512240387173724118384623548355812610212250507769016003297269876974083103908142847329740675832522967399055735122827047132785460766106548045203788850314865755470460025025742224256176753488952126663833485892215417451068052930445354038356296811033037361357869927278183217456748088611592919846166650245894211794210140473905808021228521063031259113331184008226210925919330480713863128043131197131869286094405611114319448399052248282280920084841253068995811770483992463093695485046246987628900179277720351234341752109541600199544667292048269279542565275907533293300876270000624325793311446846702261554426312746391434935808748448403899662520400636671127385106766936258677595499687588849663241642587090128292668467133702707808195672516864754852801196067031803607146249396014203862579143636944316876808645557629413278102691918856911293344722106909387697270933077960030388212651976843644437261790495242060954709339585866625674389249804082975313456211589312897504094439793214395636483035746337720944049068599645682547335784306330290228259435694793603440443724922900633184807570534645076576351649359923979306676027690954816674153962236132141652589417989235611594396132184505794335505100448160162663897743629025152489966669097270933295875877790939031382356253810012159508938232135944635753626690575295685786721682605278088721904648201348101481373965202377031818620593536630290883464148330407943810409934454992531186272254445550769336527978074951280694789441954259839725856862001503929938769234156331725342522341008863493733056480677966945502154138874462231851428494278920219598824229959184712010787124887242511348065987745354038111539354043301923214519307920026921736821749854331432105251425198278033622995278111870310487170314053349660450287506215657712614809633922171627032417318883651044009279349804541169613985089987643961800547740150865793162951761363758987558492992249519557428124557431929944250612277573485443996934268173148408739629404255383310471745518298742035367360858910272228492115314041840666691948354014971180545434283343454206057975338041067640774207965505457236559652421253677345042811796496684148699815864290017261245736652219527864463760536938372103025600780692550908961820039745303905755332704653895889029854428116468527180667782510461200045055768594204294151055701361310895296865299879616553579708545007493499314490168007218226717631814535643928257026512550634853369138481749972159915130232786565049003777013590931620834390208793615103585583895219419742067605909859866016043735331853573131593947933407932369516420031443558199889503185763164262052651617504859428210407935903334175246956246464289074155291112999695335466631705065307074876326759144934211179714486398823686993138498045716184222717625448907991526108809401066114742862482573102649308209993416541552445473408257437374572668864099873990250419701114142400598205406144872071529326628579202564932227827816029028052871271089922376249059295061103244265275457041749956875685113994093163072286034620962135111063904033629236542716790979923702878935979760583346741401108996424195447417460208543916746119799516487861590716834687901157241583940332179414636244240899177265514594802994927240447735519880717495866543973224263671114490683725757848945410434551071980939442990794576409706301944690282804457189449040235402698653320184395188929106758958204076366345883389389632335127492504081366498271382875901449255256216557229577415958358911859776079368985540958034906384504176313514165775915222906126462150583870101180879220917987580282990931644465293826670306786100363838465035202176827901755036764447102649578755943598676382397459513806328101049442833996063798672490312718848138365334106251470139933277173226473864732282489234348676737106376602242104480242146369780768989711438276976829071957845130173524278341683214719157265632060191399281326256647183399487597120490849535867567333654424208663542119618757531355897288203972960566098801909913380407673893436379649665164780668477231710951214959822761859051770204727592946342068293103915077258170264819487130467597135912773443280224848269066321399912706868916329838965310932069915579820297779381157709017975096478091767894302727877346377753204264905863358973689027799366504277797482525300890959352107890358527598979311138029756321311790347379518335893528779489535902829039489403689393338031702651612970951504366427737293640831462506811447085227226276901594672858328039735577922503490163119941365785158773027154149883052594069221299126075337111547652419784006415856812965161371749637874362943996614532173634674346139909620277153541335757623481343496023708088747197065450828836319016772571334341548101559175861832271898177577796439819251524533174479230801058818513580229464055606318495169796184228312797833088562801032124721319081137324661724508578488669337361846657159723956478646961043112226282469692571472999074762225562920692358467884185447963299952787707216695164358188944969221323073247948594878131831181264753020656424979914943694967553773493638800748735914344594468788265284208590452803076453219411230180462980630981882627810766898953116938146329784066243126918815594481878197430206584032661126955297136338037588370504230765019462187040543550276478909951788023398738676559236510960970361905845106857746415063218924844772362759146502586245187205758114535520965756055744401770921776732611632566574644585673082814719426481173718690009479147992931339503521204658688185255774965935477242950712111818504725228113854302813389836440637274481093369119798181831219447082870631982863353303180385270430079709677863063468349795707960428768731621886797530167405215069478258534341122966505598684541639746873436280596277465151361999444036414509216524227251359350656996961918614567409635327744885785893082960390977047583047228304120630021190448679153028312076215329952241137499843383801902569873236554205014513128012760074160784678157625983703480985463108536296276814698510634370241351443264698535852030579850498830101508637196125411821839051358834670708559817345233898230711976219639622487514969288443587437024801391147918582240253056753405395188529028566899148372436356697403366256604415165453303219950503699662415065552217844577332308755278374839014905771846772034504696664429134904055940943181910345654584675805682519968858468890705892692174977313521932641819509231690491122461753694847526867833032565070762253178126048152331437241684883233054013596890829860908215298140822940856361192149439040516455803860043822160760775814714995767128803573076875096818573639789825733316599100851070930498519251439176684056307154599285001542567199777909066576735594988037599366100270384993848455687252305705146869348826840229757394909450946208580357658455752873442429569396045069066255277774392495903530099670795072830643602848328754665732321098335428741217523359411672712133393637048798719237717295214594351566868333263363939733871404737975137360647823060312455864392776152536916284327917276863228522798021584286867460860334130199747702934122865615489122467413290179233098493193841921795132782828241394270289519407332291656865148179792526752472478848383840996005644482300228619516256551321946385845397079974539557889660817115134117971526415907521904739042032308004787549774173561051295781931653989506996134747596989744764176267936028923061111527071430459229022042593621324796563117021256154584851923001703387411989571946499522938591658430009140478197479109377639320366556181279365121608066692185882910818190001910907432237592984246206679308686092150836724317749965326577799577574751411202097392264884834567487316081519926740307752557298533444271086591142858852876185850589227309119891273945143693587695260387616779125795605688728451771612197890308456692559644162792612199703728852352428389794408622672784571801719972188960547006407101790324289577919805875184946186124380031725611544479137096958023759757778763155938100840184251752958206217289650269376832058113147211633426080904839807426441079182050855772623149014828949308630095203753511056678131849518144174177816112441290356933850422730383580807712775350908917349536955004825541093511637645996671130594397299343116776380216808456178368216830527581624083358775119254024618906821627560608261283330267693739627535989605383771675251459587056261455543624459070101680618163296300311357575877652170867271403760370936098283968826862401289800219737402860584526094193266665461047610177205911364120717698236759693147745745795402729771573025760277874711899125587021549507286743507371935373698176472259435602181265878839754225079796285713220771872960534064054538211983465389152839876139047415990845491521300235129760473129649869005509077572972165591504026010460118643051945303869029147021869551986671660901164641144509995775689801874077115974244777874859808243614400548335694406154075177710507143852016573334820572186882384545061736697381011418170870254844801283627116047155013007543776737669494601875609771005737538762250626677711030958992339341134504719919509784165622001403317398716635688251277946148969128183460307636994192477120391569239081420879826361205074059208875481862160866284619027872181000781507142362502955713329817981109200936312983437637014389302565238058942678023120406029496300706280676393997477379878558239453927736398400635960104427369881963594121772216248989040745736858651421862678775124984852421639938728144048313613846477330084094703755167280502252035378105576795198435716927916944504846362630536090799943448402228080755145005963212881304775183248468861270242298648118307402666366621405806673442445106689269188033427272117510603163048548538249253484223860828817193182046873875492367932555778585557890020508352220218320333986111773413847850257479046381697636921310739054942312151646616443986077021830028043469305573167972919520558823324789936494682402811456701115579202178721483305704595510093977535813424599347537601566412660747588672730054550944243430563247521117865631657797452893898373917443175052923944822927595041822049854787246432746065000756555402260895946537520602502767903808005919087730424687931557241394168499415375866310283648974511553905328976908702574740919834580282395295364503894085277051048785403005134947055290232154272649254596093253766732554186294078814573731367035242645877500455821914139286481119721253714403238598767453863887769056977779012580089266723019870596730149033202017076361562048470885748331845069451315704465645937810217024867681058687724013885760246588592763098801407017829479928155579596763336627224745787104423800510366974377565255721844341452417384599692767388184561766782671492646524024778856599613628960339818946573016518268330325479828694389050912571586414032059682227405971478552635141997066797991775227684186447559331464104453010273280914017884402443248009226545993393907527032092217863733966513185602600324713992597674368188523646859188492637218719393228435668020040727624865860867254654453749316392994251704567766441912383189949967096755969784530701349604335739385610488274877652188745435343163109532390648815731463582899799609612944074297378036705260062362116844636887947336766674973177488104936985023661213430799850137239711913596832081453312163370879852201749364666661196137793867231788807431002995037576731403284315798125529375600649836112487135082045844496518831263786983351797990506603347706223612544527082949485701256763540993450218454927963215524780668114495284913363010904031485923829357459947639187764339929834206742825035764654470925314740271148183955973563917791660624460732733816830920004531934389880474719049923718079300019257519708818553121578804715914775310301866881414709734013129512470026948844643209985299524676062783987346083071109283341529594885679402705830061545984232964721323860929143128472569201490896025803855379821179524353804052893870964328450919195000757367714135581388131522149034928167005215721459186698245681191551172384878936049234220577114327596618316599230142075378854583370270167388190612283379830771574176391841487944141231662756417144496911130883810321100687488657424541190383729488510604432240201725284169059959867754664376605701134665290110284316791537862457710094316934002426341775616872483771981601573156579774058760385144647543896990931854848847297267199624037271633349521042751188139854906393884900142313264422581635897648244008080206140543155802437381269176535575468137614771603121322200737069948956471200551663216118019310022585143434793807773225431319450716052148847505980734253142862010411306479628982468409743041489779975519525468041309581826229670118476301483517417537964072567225556433381672949338457631379156934644103885092626016517236319527284845420968663276484266044587064973452379575014700786965384119920818783073355779586846350990017403641729685862949534595503881287319023971904280387446933864971011584097252884980613293766824729123872779669093185563998674342011840071560771781516013469418327032312458592657690482820720448255882647524421084253300150940080151133201752871696930329910470324030164225795309941243241754939967371859835641843599168889949991090208978623759513719710116397451188624242636629683844883574833687228400735449020106027994351745253567724700751543089852415900993214468906038308313953988516890241329164700825417293905366360096097720377610746245945571420382072105837778583512218957359752023205126440694683906189783317900176358289854483222465892084485759378325028833574356789281386085210889306870246484625776562543731797220942620169466570207472317705341824719696733334035373489055941201106315147646579049559374521012399087891415750303064881709293969090961878072924409463520515509114343132032903837138175221666455851201847536189911256332159096190728534025260637385161564440530114388340818050051312351171024560602934109554322057032563216208868533324905336921068104137376868759442095704661501885403929973367137736460841006238244690070175105793388542031805313717464125647965762069344745263309110014536877383630078556887992014356863699571811394610983827570320380757830910198702934836173317363706563776423883825743804312077842449239805061765964415486053838541631690415244267274974782384940680132372125016332461291117679674319489589907852957792601293863861737543976011782524281359736194555863108122377366535399464639856792663868349087940081565008993474895390330338669161447810337672728705605149820048847111099656606027793931100455215427828499756250371851122146429200812092377088946949258987313702530535988113360333497093133349722990211211738232630105280052035087301786646955170142910921896887740980589934535983822140600337391297426823819520202118850827539497824166288970324839771035925363739372683944848030753845520394993929812583212680380959090346576179810751712507167257220364381246808573195294856778747677011719972964422073651551276146367631570959307824403949530519052505340440236477185547334563897859144254466872330389145523551427885811755199611451287973888549306290583889922988621419217888604616473835555755750531066573592678690972180717113318460771836902212666042132930093404437544141432486917961705433166630379327988028118741124771655943111291334105673844247988949212353137266793433601550021905162751082563784479819633244011068427915091946759913787051405449071585831772771486856233113884950919043232336563386729290791077793822540254560538631121019180303316425334755554322840479772960464992553434666219791699504540216094685939872609002441092734857869395988783616669693818224665668398823942524949767388064037918027517716457912983768707292562390625156893042537155358176254488226315742054033803373096427426165449970943632381158537656721477959173010917050136434430559498706811813184696953579945274372975761325440852096316528776416542131895499852993700541445994583649196973345547000155678760030616045483332759980409894276539083232821240084850039876578024973390262905678446130267817267327733357477124658376281817832056814564251275608430840117894898343658251307133514401094341140497447070803621541995697861941394978248396911203919034821986780079950605506450494571775975912517415491685226652110517880828687252278299699942112893008608887379715186336159259115719792534554414829231342162094604297643445036093620255221425122670918619485832604479401623681320671523872007091824879032975295104196125824052992120035240395609086969319437435976556250388766222870396328849524055402038983744584774885146742374656763770286249377921901496234708465281570255668143488775311232539711038940054509357732694725557360389269361345100552988993319791464615030097758878312686516660764213278165009718494220961150334141967869854185757954816556465125869769908135224363357777931657439225750692614447900255923201150474866117578857466201491968014787899708653359396825573081673392085694904171370861693967419932539381868506335270144431646453608566564620105487294231626782204359170188803354953293582506986803319790197850322331233339244565132038049272641790746893621337037632187143946133086096277570125893496032550296374005816265673158453073137160235154381875099523953425501874001723571163520758444224591290453450241415894661573988463800654979460769498378910674680618828129986564118414131802970039882929809500174536924712957715248142441503292173205330659615570437824781411131582836995327330325720855393930629673084530899453010627307341561616481525036566064942302011452613632739990500108160041518281620934664567564224360018360598595293646959663109991369092661549669056425020650148039628899883111189016029454469676921022714320153295986298972151550328931196654320246630468729577890041484736064547548120451058637273607842358282997217941556726962887660265563386899043292672163373071831335113347771188982588424807037893893624112093320643847425227939486930583250236589984239397108554981930519582530410092032445877001287168265674924707443841907013828444792302451830487001795612268839184042652454326070492068105016755180948571531490332390251080013756897943262642068769767106711188462276429552565399391358453929282386138306227330020565916377003102180258756621851175329788467915141953212074197624270086874075280463198589624125552290724978717764235948953748121430645696442338627124970900814304369602477803327049368118341542136759975019610332107132523644137137915459308429539508809888075265410636737203171450018862137532961736076846414652427341391875482772614960824535712104032632921684034989979253516254746612724954284928891835412272239670092876527820132599762351338224088582508465380404070310739965380996190136575378831387606327652492594889333487947256287670137807122218366235825962708530080618791476859783949569259852649403812109173438779761632517232717895922308313721930138146576171661536208843418211326873297707736954896624338527645700397225809189817267258508859820117997598038163225605505557834456343325102298117037855745003265114320112685096736607875767445505020633055719835619269023424319903761495081170365233154201356616572413882220544433842222237208627698043865797409797674093911939602590521115428240934601864478252026793597765163263664954461195734440996301233815018894879992876372874900068273791606730699081313371480254336373405474879625792770335827368299067801123699450003298752507357627386836432567446411221445968411717320592176265586818584652415760943437064869286090827084207187250846725419284300801545441966403075155816655735045035823127229394380923214870157922651846003741636863961574387801716817043797476990379026513179775253088280626997869851052228815656658823073733828459417622158421487775226452605647955566640141635546567399388723801262208871026328717748573428302422818522147581824528707450722516529852579421152703572202101995170624771426129420563182153564262347012878457328362703283639775060065320864600234971686758710337544283758938317790341788511851721850363708080508164752406089808835800667700063372522311482857281804402741706411139414730797207668341776031296532895972273865499433189011583788864507909674418019486055025526419166507467408729810775913672615482240332641013406307282082253415509545044420405603378493214403069980369424931954230083068660057651676398910854853110986308739352791943926656715719959694232358315069324018576473314092550949112168049655586343413966272047325411250728745597330790653262220528592513349296786220337344349414772302643723370285826700090336113094008335670382995699856938184926147950725980231484122191013815660183079281587586781224669707878847231494781097753896369981711051604849618894091878188375568239229934403690771191020888451656999807494394651647564268196658296760172793731813225156808722507430565843866374565708779691124636406097101440571478194090386198488243761994783447265735103841813080980533210637887829928680467256033409942907558540577242382555969164268827210579702378071745404387866175227578146606745215494357579617172562836446420582632123877287349840427657853923499087154449940918922475101298097638280208539375264340612430376882727692233559957602660400237580636540507810995263956467659095560428236066290577749376566423153451167437070660342975290484949982420675932451953473558976186399207658436061613185251649825768775676983776541348999843529143614497524775101218347049022939606393291353642685496763219669010635220365855215699778444151501406589323402167198493539140674430945501738854130769251001482786952069908855692945717601206191963384192072248015809480334847582259508443108190614348218364766091688047299521309713581668705974656807520988042922263581670141043914106785744841740703654337538235353451151672729115897787277866809967534836126930237424933051392785173521580406951183618500305602956972576488246711308105503377841376228091847027082827891723224852995756162499374272978702428606502591673732607405067402039676292779381778447836944667351303149529769850696828187617713869658641987051970520852905020319518803914386012651459505422559316699668218480077026097730261111832965968644376587500548821980168678828456732334275806822539212748342922541772089297144557244209915729707727566833175298644351205454376949741704101663137672201827423503457566936295755173603237418671238275102135689336193468605328936288381121257804129302145706859259147231309397540328029454201254448928575402109129893864624073756031713080988034343151605411462411794097769115103340352785728661436377429495759004370570439246741293890938842015491976510792361029634273071045461644783894641176726596322893022206826686273330277473309581802550333312485948307063397372561580411078211103038676299877062322158849905335663180235209142177061975191463687675487915699564890367081950348621577036314547801046726265810455684723533411451328059622898457809650095596991168403997203074292447189408795783039357081861816057299485942191479310678804390875549117578460582149340066845307424520902049009705197305506270883045664594196667199521152245163478083661970252727338373764251558610258715417090962468387479958472851132495772806086170909212821599900072177570641217797775099736574981146295953133239893414132558648524374004567618390906387454691225133965450574832224239784327811975825073665506683099335660179620731008776567291250871969527876987554319546388670650587320905358908415643393284889738352487792424918046600294743441169393358913684983353391202935259800748114058857928151848138542921137631190540061965341219906001104042305531891078325952720072304739625236505878280547763856569000637675528229536860687288551246110486968398428500788255548737356864970080896127846122586283797826650991716007170090456465577538816654364918889075006775061921139332280106095038213221969860588164472537688680410565605945401379722970331994008402339586547448412649458864773002932682861231785083124747996819807027942756698612387484553583753060548793357247012921044518894648850235759366097234597079836769526192491271298961656473711389265544983101585155348713421501077851778916437298067003750857070596820023814699972097441232867080153093230386497311939961965118104862050397940927589451664522993859353405245568948526351284618540398122589121789523907176900806575383868295530997541808695759166833829801477200313530551331049899800550655445213435104694609007408817389088860287782739552732480728970382681566491004457126116655641396931056369223315556263152500470815790236526001383693031531950326117154353048741943178120114152643249567347627184956242574520710412314410118507002035722353689473671989090764123152524705211242176616296781590341960551544049759915548417307086982909045824849876573930235293168140291752459354213801227009761937673602879917633641102319030579839603928765533740224471375396107231935768099062787188234814264053539363525009224646727376942265054267893430384816322324389511918781295069482322991921090366767096798762417887426998105847908170267266186176573022447795541675314294734604744658516272362993674420272977393403320692068984786205752597170534076232699164050045982628451036559398259999187564320059033679845023778397233392623122263024866968323041512743398029359623891681939762532060415058131124849026703304571254037706397766094739304580173531034394797519638007265946743836458390746392687491177173852584509147125242009807097938862197645518416045466359226041644462323758480240972705201224979384007790665010599498421144274885223190987563006384833793266718122900593908532713460818995342523074477599061717444480723749693058085236793336561459581531682961085953044480692322468202394952300724253121901158324833294052360810631228128677781457416403801256198444364384986514382618359782971530241581038059180755161051806981437093537800091614605588832442083253721100814542708833090968576442236429402135135820680709105642453455019734123253561070599187315724533988396454366412749971478071961299413131915550148145264418574788550940889518055759189905030581485205884761176212651091919068694890138935601254237622250245531053345785017658675998457097606378983815922871693536106057204317153182447500273100829947740077636233888983184719300112181376252366706799005947696628874413289234223530478687211705767180044431738812288977194718900193817757787596002702000534145751518429283292117884476021039189068668342178066002395523903215754286823455431614165106644057467670035757674751653458284551724077620310822807265004606711831065712386272697915346508552802386703786126840435704260314409138878623325711056365528000214125008914375491014567830776676911374287719966675636440396604568751800409353298337693442695758097187266799019978812802575806238653353026954660584309695997716622501816676715115379977431795023880281143643977268606483646323359948630719313525761397463357836567403361613996884917397707780740133439167123956234217448911636388895385589471259648322661300757904759746451776202249451924770380147644234323352990330031866523858288191771361956934978078709012208774123282709259044480375587618469957084881203259864465824675985387988892443494789981032992620120845830621609879699631772235267547180296759874861828159595522265942165922403347596426271536415432475669771295799144838180494250268642005366858404189523194447275603540387345010191780303921857235132401517507428353360886208360850842992866955479288695723939562014811631253123441598103758537458065977141297315803382203456128655866282009043634137658212979686943306923309153284364962648685971336650377957448640696278719029812857825441001288929169721760441817538244827868381758191089828746046856074622651833669017203442780589548929768777131158985083422736716249327904140394758538226219451566640366547792494550506601914904133440745828651452187922928014818263227615688982945385521916881485535169377567770924856024157222368469265934425632236001378691266480051826061361640443803098694500811384360819594071778842637520119147165496588193024713986683779115186405838393285756011688782369781911936354960291808434004073623501000547693596313137731103676459693124095174341050110605700544744506103888095159518549548965398309149899093504137762384331044864385170951309957312105389682516939479775739247381501843671297584598851010884756847330817818767797558713469287936532556220029650855249354757178909297566121721179989442575152622395106750818609786939684369746865550607533015435492820836215787193816415231398524934049327349242931026438985671940582116428566233136008811296027176326654007515509087080612487510954985923490216700576272531820853716987204629405963268684464000835931273143525116100178499818147024309082692045173682184043691700078467977425170971322714783949728483359405650970879335194013239129191378594660458742511680992462042491588597579074413386336432905902571788955879234298120838181422480273466360609808915721966691767133288019213226658457192624594410994133466535126536117384811030253197102388802187247537898771397570113179459798020217280114458688853889699897669885259758621973343971869479839025833733285317027603874536687155457135723200086390006315741466112690734351712586930086355549667329493028730783842473763468614524607777369427182901145980722547960510148418430143404620898757248635211143452719880589748567837832633135933039998658827789797888850749646868764529103453027811677313848345588598396060356045743028044562496235873973619178233861286326176122595011642568952337754941575670230310085353381300518828061724054671139490874838183775472910409829210052671360230385171064500771343542170322644788583853972456875641048390842576487218624448287514562670926420273742673354994880965791715015360568193825794064598685288247119206698028402973146585557657139634085533156609924429326709506886597498964446894811911893657803533992402893364833453440184011382531536111476732824655636664979005492900715981786529178334942726083709966783845469465894470801508605892128160647987979390170857681747485148720655564119092479115641600979286873352168822706422098114905230030111201020364495727976065565534457204616075757169718007088110818718548984936140429061862438939571189886514132132346661661558392293275490376924364459178769109510665982934517863087697149393632509365252968774308036558924937383258242985604880219348408394268267324965208513144940577412350812431593608730543048154948278096985336897265286030931506224066065864876257265986607668745967516114960052044786157677218415100028539365266319546067985076909471004543218782280715523718438411426538039509854036340218442786582496698412520810629509541545138651649805130102543567780279703681497318985798485621760479159342981634214048122200785517426325274781453125793881680121575417376321183335341868729720746996957657613017102063407360247440070827091355177368276002494599380823080030332844108930889998100254227885657002430717746042688837310368339175254534271068300832106443933145578901265824470008705965731220392363899347303998592514511933156623002518612169456862863046054299921746139378950059607612864339424955463291123978275291448913194376944059182671496917496038716213521081738231193540904756802032490750236090777732347756225950187224812788077653484171576197544573657374536172985736040391251660429448549387167897262404610353140837295235957571655269315257787833209074002573885429027816293228372610538781878483580449685260092511686938616245441686707777202387434701970616786487177764162146598404560251427780975740317097663668405188094873869080754845240875334648872273536380487939214371829885730982783635993288994376967578427242690423269917680081164199963493121924678564615133216055682497818570176206564566319079436033679759467139134449555352534762758895693847159949341973701748907351763049143269594559505187007102748646261501658059537924492771016196333335922005656334193287674658883598859840057836948093249504803262491321425520181770755795830865537214855455609384873730707780771227301140790958876100725559143282654091759113404492817151843121497976547505434655256335818219852435823253670969786537345181854754596772432141272572814798117037332954889448458975930593387818005801501933400647525741245273413391728227743918429857472764666407887389270433129547570778679576069083093809384037118741628089920139542630635599097740180506432678862840233067035155792711816615565110040945304322615658877814873621117052316969097381833281977435052039128645002241093122597969455957664176349663090345134894311695989958002205896614660347835746524732020882425800272705559172664823314971209655337455718468894974916676417815899281054633269133289084194917794287990942110630342463287941939163313445866171390058407914524504444535491078788564268619315801573640462256839329062592353518255657935004840188991249209285079707000005050062831414594741724704979275417307785088288964028333627764439230044647826536788831582520629436865825986079896884156443921953566774247012747816811453133742736145438397597024168176018619416934090539051461834353157730904289095380553631367560416176523341599368500507316968436723056887779709669939265344625593112903163922357682457420343847995242511468092298044299263417448397107704207656556954762680941605207350038645547655244321078123468749011744918115671584927789879940138739078694934813943019349424178276885773860596323751414485487564753445928995429913909412983097304965276873637801095600840575460740915629416417652956589304644586499615863332045361687181234788850773030459977672012467361258735563183629408997619433431640738869293976747593222608446200107328973906298569897030418670864612397842081837832369679611966249716779582250514069424523956596040369489173786250995941951771333801430225818018486682692138737152856519309471659189760798737953780852925394567315402685492898149065120838094895488518396311683060208149774478370955193003939948465618676456041522470671010947697564106003089115533180781956240020548202839130423882767764356016637909261694919746384334029490796528140157547716302635304611268442640649067570677254223781186359411533683665489111104080776125485244796232075789239409178992938367459676440732711288751552574240565634222732525418813075568306193159032991049836462460924008807279142514263952339355262255958073379037352857339996109061373005237718946594161779187244266069064458456498332423690480111443879415789561164307436475969590337657212994216266518178844184017840192932684975967423532212504678682923203632195389997806730080749571817313119122405977763406264857342457332271933766270827817970888571439990481038969272718023120505776726092016488412241601520953454340814701431363090837236810245593765929452421677753176761402092721736385752878509447100204175375092517198899467130252349014654100604944170658959531466681167000806081293239148452647519440010329838145897751302181930395779550384759494417441342731588988271208418058980271581832997083236630767791407954253835154762851150913953096169288838374137891001600283213484888384241168981903968505462252987425556533869479186160367173461503696374787392907029077933315395929390823556325602051029560400722946346187031890345002718379439342216436060665625251192314616495657882084801136106157324064718511469707693383038484655241567301251846370559349788785896966284814426595797817353569664775954592589283828368868624314269831133086474797466407682896625824791446281545814221235923247241748111760026335776741130124537041548945622176326548262573034445472432909628638388657930681863666561087408567356480285467231369982574106953028645397212213092422259715418834293906838208605245026303635389782888327813886721372678513192781927501502923822266310832746038724627125122862515229054345720307584152670598600044095760798943503556753204219717991002899162068704994994793172354656637784703223259344829443299239914987186819542973958062550266671410631550412466517419657510051733082802203664416307091126573248004242913545536673170720391828643699983537498206497093736552121519017881733534481859514974326898112832444498461345582700417353247388532795496930805225925189485302047195649067512544706075146566833128961128461712706451163899261290615173680969580410998029628849646148364755040852217870398113100958016502219714082977419138035876124327390202078318867990844904873362205368407523070184344033402289899391765364638765306624478384190285587997308115752611192080068265550875236452797031847083781635483282089532014615640143062770638229194025717565229482175815052374027131227991541262272650432309077585923163210712090821732316598757303923688091815029071790752353197692620773469670008838950067964043698512814889325045980540049758626908882928309044563585282555118623692415446597294139092532648727381068707617378041373612704120649835303281148565626192679027212460182087221506834116734929248626142278950305823955772706636053847843483841840238985032116036777176560047440584096214700462041337676130571857222784145119921718931755341725280096023047952152258474152520906385822033497716693138849313856725291506704179498515907754187452865694807252504482778543668156479695494809591201752472379061216327384903897510308464779372880171751254561030357087312126325804609203397860270321255749713079696914580262056205346701636218691987435106960381018741369492157128458686210935904046149987129440146437827044968601820774076138756163097283137778820176264475985137208992211339614715219624320602327390542322384379520469822280484647156380457321665340192543763777121436961224748873620480709200431617176221915583573195351586376234021691942754002373404408251711703185673644667251378856605580662733801058704752065969398470049876645324313516170883284432537882256505672354157908803166755332911411312703574505957937236703630378124677466789205165036873251329662824793876182824927292461906248205118513158407249042816664792268810558913300629092533466218058281562597110461510521118933476680501619177155833595616877213688176962758466762942182051048477633769824721049537684607163299980640378571485676695029106307010836805049261118672880504982709825829036338201399877761051080406600755513755921987265232584467767932603388805344193308406653292169164429866928510429171936645984085253868126353330385264045577005365553738744158412322619674230569029923292637839929330643331441772213770789814822568742579014389449106250210540492506287619196371674528376772039752933110005796698453637838973778034262000466690696141599396649666107355687443414614840638179171515529667913687824438638190460013698452204724931620937149221769844075211785431811886602226330426827878325862043420340791497307231463666318563678869895719759802944743487436965859613427944878878738578719369463710271526383020589256897380112144924217655093772471917377443388871539507555221724036113096791718201712639737248676570971334338741742575702857369421607561301635247484290385061058562442949776597775634263476895456344773460203136018444928077888841729586664720853655847848902631685840134035198304274679758811065488573329821762896532766871872058784048296962003400980703593416436188685840533586201738069160655161003044327715304292324509526480508486708274511413279497788615295315005140011673104028996836339719594768502071778652033001083343680279450176392596914767467015505276989617330401328786134610869835959817775526517060420023985261885409008033242404504062195157344503118042293887168031508040009966947851902479450357855341244798683878931727438674866772622522653948613895225713796645765751321056967684890570385326781096802180215791073114246012753113246348635439387725118188631600998663433120269342076169229819658916128605802731772229345119776181273480607131779237302003520818565887077445693231789843811705185510900572035591947419584470337581297851417656373388147445645722005854248104432479151059236055387476427910656469862373107509793742866720105278580610395599141331157390781399134667696202195676215091920951106099211400069553894667963819841790606371409680186040196291574380172015740298078591340600408502923446906839566321511724825643661209518087437039253890071119072818593550458924556825034509603579981225519062649944759127203069079783644868171242579708898099017302854059323565536059434691278155419538896738604083496200820985916053238290253478737895092697364853090465371149294314866420751159555240831030838366101405938135788344028914949766674280750503139755251557930444275358819243304714749896434493679875963619936992715731708761457385936511759056677985403479084491938639900694718195432125665830432827764082586234360775564901455785891403172272332168154316304182776256634503988846525342660131722283792293912727653579887305151854678508678845299441409817426141107327447684250759071237637159084140475132862562709678353790531325288862082930582668337874983712919638263869455282294300832339795436356197192466872548215341954098675684938238074551111188613864469253735021861822516068103456030598889456464347160016558075497127502386163088881837927591502560120788419915686545275342324269096655243704780572154917192288754452373503430889241596592275506935047995681958553692976250900707571486643016291221932203787414194989387393176381910721440252973906789217606743409231770495237042321013571941299368155834388721007002506589528491250137874943292523054040434254672820643767018207741356658826763501075753174003442226950948931479165663867981636498227269778638130232615188057318762104037493922958542514106820742080254246865940854250607337078100056137995897284741663939185277093582920556980051154647240715294230955701786360611061002081579805832403805085075324207057248420854978958882901220035787564223541436085263533388557219140651253318277955492449607178365945710569362873325494392327007281039256536083064209942214409869895399720321860910327133174996056152432398291197307294353911804046814381329163566050927506128456187660147730913971853583637070439785059156263131632181578789468403724527091075563526609137222204229821982138087624414679289847528163079867346637553692919681070312583114097489190762854210886746597397350212337138918910106243436750690289922313258574396896479666517739540907872586961433563257949346514291990368510671050395556792222580830024240691312109468322521221274322580458925860950584604842383877258593430730888809604069457810612927154434778146678479326542729930273506455575817731429856911239828395542730878956743521780716873266273994785334952896921186040234196407196298359718886999300179256884317416871879675857441899781484462259994596425637194631513426106925155381800208040985221557961634397520604899218887437920553328362501901657732805904716023075124527659232865456037765266903692073953871519364157980862976834459420413718519037529497567393729733991049019859968931354893496958783122868603305992904471923526036691444242764905349234961285296901292665682755277380145847588229092262792617817658532760445649233750962841902593185659935715867621403629439283105662199690676426205895964000387202350829841976409960331260395951585065381637718535377004007226611374958214634291608790102284930183642832680209016220153553611724944053923872028287210237476541175468006331504710061995327308875154346550858061063353587148450137189630573653618458512965210168004755491515332640705963214251047815639584915707072149482765552332169236478230851797762504005144678770135020150392260861308098251405158598827676530270951788656633126435436089476000528927669866385017647896792131185327236794587952641812040679625064012300249583337867247330283522490429063934447874617356848058164005821313378853940545463562122662451885353098121277696651128845688194934149808638199666105513365712375047624803308369660726939244904674741831552538307277759191591941237868688025682825634557465224794796214750229301712246268512307810539961055741353432933691792071429987683610147555102609142406255867044921285141418249572636785745757843664989003819386804382942085537552234386339493139780633535659728068835677924157280548676916727465555540871099778573322001601591882795435017037406909121063853506568736461383472771429836392219942378960564820634633369342009004427579280716046577893438476853334758381946740339100344512417141315114025946206924988774363478448051870213443129956935259358482717375531473041874221359859802737530151481697563380641333810054514060358525284466364866962214123391817909056122556195143924435036723944314297834146374437077291598141999434157842716454091064800848736700460399409401668134999675051370327732220833738290293264953171998153479444642621691697522189277652030939730390631016466559024975596375667928928017382411500018765403134105670212805393358961470433963265309761737227151015159699827459905440969314267569535384710623769032648386053091941635351524675689188652544733213082373194458325024417579927574848038395517477962475406250549574580059153143693751787028288831124051974605139911564783184594754727990018065232677320619404447680132315524855535414315904802936335974771136782349658266252976020831090443538419004515700490922650916339561445334606666926182145105026627546530894896393419392279779040731426191813127538840724118728619085934364444531148207998714076978027494167589716649633564415579114113093430681537052174734577184318260274180664220308340595533175341563955894123595589396110309188962940326477641639257892215326572949370930273999630053545557374100697691052244769435187047933872550820036407581538042965063328085802168007419660269820657613907634569902103361235605108071467202089577012180118947722438168847630805947053604792707011210847097179945962860769264931009710450434018527740444432247581379150002592505618050445098743337321177913782963567232318626625934534427000621870953654627528314482529378876947080356427356943357687279942915637554282909221728867660001145618955949630608603645510808751716087672739499218389919180246267240379016097328548349586025629445935698989700273505481338778746225018241936528203532423514194657444144226164627795326491501629900720838591227503879099189539749805416230837908404421007333493095307306493709639747965735779651626331898304517032278497219219400887527855267049685451305816576124010140195303613871779721544149311857114154578261264885985513471711840568119188065013049027406161180956651791600231547167994679538881595075712750850487622541857999106693495149804497028452026441581935327230818026525359465683139788569392614119687631418594044163029159141345946392514549991070017346698030053838633120657285928187496520213630261359398194786056573606244512336483183297302359923122979575810216065888995205134263399279667727909198688072432053347267653523680838443717250878111127571094046701843006334617539289354190379199146318225454248280130802275854333467733976528074829233043900571185607708959269186103398950275966208730593019122227435996749536621776084606187465912050394345733480683615283169106544917611210091545916079404172914453318701638208479052579369041482531749238270206566755159537323544352615238099475086398883402496810936703202194240289516825437240743263411804863740129538509294624130627674185780056954312062086381342217783200572992915114206239960009261848578546904652762527019943675455444012072388892131601104759120841030501581869005697357267772242362010927399308445032530670995635787194477565356742624894463923443097432491595663488079264926006012846078176165025761832585699214560707207020436910586910533467522228978527279565594745056203843295811442917949007038698593509549391897321352001357654538917722200485112018575864148030879386600723493581252953644176895038982784338070950395370030968957788344084437886106321024697055764315501047351888565839088128877161279115904568363903041961255458541124510925323899479769363190277647222552506162400615873740978197632112775583450968392030740483045419793690095010138839101384288011151174106907007653120400428834477920715915101725154224559313496372616702825237852005595304696626806492182091696704364539983774061151629007906697473946420922584174305393420917838738292153283579995922473801462347566730244138665742341620115739615933726234875222190749573395502548106085804426433565887728423920612974170069316966557578568347663049616084176666409879531441182533416487257133283972552461204499226085638358929925162698659076055984007645280252447241889511676107768169902879544986464293667998518412358558374435619065021136954249160844718203953291440366214788868312482139083034795885395436219400095729479578146704227612074589416034899809356170962603586399221246032163487647851186541135660096085327688831744981145778622132350244477976768163044928679677313187975259140579600658724758240097499531586179801461880884855809627172491082164434171964886552405009931888031008242334632532553960186580851049737176021818314517461241766716358665301111967155052110066530623317105927278208773976647244276710643584114193386114660002575673069286348364163871347084210525902598790925530972336848722589287666960520256013431535815122174147934418736922847530538745225009395690483545395835991619493221035323756749061512573323815114653880468627273296789014405299358760628386352972488189944263567366057466301827521432688250740315053444152720207785165488171221870945243101690064529572548116998041655618854584735298763910330103186917346190479120315245740367944160226797152180619570572259232235991307843908080883918595022746782178871697779539619670404471821046381510441225785622252938877915453226051940262105619905912629662029237542384537801584240428684028453264158205766080636010413649583286225983817053708735319509688261910308694761821252588160729527482905640675404428433020292025673143082558433258438871924162024166804083699621136161252257420475880621977595038001390424207212960124330200978027473737416371127444409843195956302736458866335985502988433408092253285385745217293165632965083900847843704957799529718261842624757213624162925155789154583423443130490500028502810605334301084889504727142427839907434350259004244867944615110329591921127268199727583565237664388900063197359757699961036010327151711344072250405078023818634974727040467845332985235203769375408781410255887603821146667242893809085269406486466960194980613277617446748558303051555928442332256331315120057309389873846018664515383584004227804806890826365260218208725092774371060243102660706637158868056069742499239022347581845691300792016796628766462317793392473065804401297087225890843258748454609911650076714997875438642120509618616536156027896342222550315416729064932129350799929413258728753470280743514163376043872729389372406138112278079921368851047390018094826980210641014704117577870227404076935608275601873129956657589416674619751638830766226188364158072674106777872040863611961117363495127557845811218293529515695316430736102282574487683594208040948772846139992758372729061207378101661287250655096466816437572323729909537491787695930845316573563236991449599724270011479673295847533434892713624923695791467536197771153907902607636479442209309961096469621105311087289480538391697036142821712719093077027210966394271125001932345777160491827794786923806516911986301276731216604094559368986486677777599579718567147608601727371637732555350174860249175381387351750071460615262191751358839830101864419455541302409066054245422865634313761699405271263134730893123707062504724681582789821012786754240098997300401524479514110639847319765341838773307146255864886978199063850684221487807534521256931348550137357662567464995692533261978951489895342334674615574679434181095638887193987166409097411010176695023887475716226527805566790746843386274370126538802454411345268902645816448405071087736198566581622584751188480961581612259024695052898128867049085931561178685372138674392674604053460349575597423836041758692506288580489058753084030760719876399682815466694801678320693119482163166148417111425737536481055064201030320304826530133166172316840421221809252756568132019740320514612030168360086781943719415782952169311364744366582020236833976709724113092591850999017159947118849676711287165587552302752933019156483039977768279501456801799946556757993108842183841091944818638333418524895451564482232814539930977190654951819317204935657755720738562716626309041943129320624640478417276409228183683236925006492696299738715667001663782853431223665092371988319980294721353328924987473034794245024191099595897855138883120647015525079534650359206763444494873693510628034787884221680330890789423923823341208377175321709859658520666725113354911927617569662160291898580002161097492718508341197637845734182386760926215997210845065061902283908503296023987394431624441990511791516128827398098042983965699862676327650824762866833423818281046035558053248672743605934918851036758861682259779306531185025914108640447000760682168950493680459465409143962177282806162532347416518794222373875712115477064446144157102366974844457504345223245750442839750849897045782290428571203095588087041289665321475864382776219021694013656017087550490735393639987584460020458649614843711736613443505098770125965271559172836720487808931757344435737398824204105731142360667242269028171755059882813779234273529354864193263103122479356471909154084228961969228818582613004745684155468450869885972536671175888726490682605557085922997098762992811390208247475291914028767647514985486442902578000334549467638505653069604884907465736933642113276545045071783528551541113415685777652206668966264033268930178334951247966051047888928660689766119932836372957820438668403084786021500513918181242445380290881284340786683536850564306325898192850488327041431625789078200290984273732537371813791330581684568855415196837771105135365100222316293947049159604112280829275931291666534113811525664334426817628692557830739787320514847833168940900430082517150581600752815976183217655494340922657913020312506071314626721752333962329318778297170465881981484502144989671679367788652155401031397744339606575103422283023738865233931933950513946218034968306284345492835367549633058938297345013676869765311817138076587920558410374560801709139404458246171285824157913469588588774722877064479154195956740679479858931167520130504640257690162843161433898442041243496360328532563934998963948223112066619390018483295473921420413656543694770396147146400730600470536348297025182797174658395106978469001337107035005367659279928840092359637837373439117656568635417748590541777071914489633947878597110513447287888719304597006063612938085590803377032384400817991473475534722161701360077676285925380216026045332446204974187123115813603226378499704249174791503871938088107088853903202999634545235924410713568635921010328223668886163451564073297110416549347610303604149389381812499231472664463965629896554589096844345951772194093562917070816605521558142938018281043336104425304478727637025455882940123208225096278550692488485092709875820745068045848285017268806767736758047683811346690782563768601936557127776123738413085461392492737238417857504004286246099491942247981619728572222643453028147016626245175763169875958903156247422753936677220849645605591177572070943929282668160823702646030322638166117145653427117748108443715239608764726245909168050118853471449638032273379187597072189159383238504099987203589525760260673121735036146696149318275364469815120100053040950448899403079337018126474159947254412367130484498625724056667098054633336984382216029012572211296270865401402394646270829447231917416513429139644420143989578889784772859745914583173058958679483916237489970365291544180103025294538013323985347489117782667304453698105899652610321648023644547145417733054929883598745780635708629006564075060458363863513356054400686200208913434611708328200688539776825627663287613113860749367541149224871088523220771544349188223703365559355794094215964493262462278362807215400555427029053091485584527947951828356332091785871591048134514124986995908040977268616666712128170977028066559002196588465142886814655669636356364335907522083786326492022755774617616517904588126367551603374821225902279512576858902487993287689461050873523957380859646017530419906357412929514314646952879839345737177847207831767190111491947267188192188451964481839503542291728046097666859521261323677207922971064437520838187595054023840224294999998787171708356354575401974627797950477674903056404256993926544895879480392238220628775733493398090864005239077740426460585431282154495795382629371668952438182110879042069063684894307371915357629918859672754615455588404102846902346837830473595090665710322251915002442519641317487396237392500398181535748842609605599680591962208108690036114404239187567450886775663883891656485715087028080825918916167357457940688914463399543586699375395918421301637767827485732492243387280186289259876988998672253018120205260715994566630380827304089065328694551592280112792311511847311387904650062260127883944978801890667880002409351996924117529958991417081552239924822887110353135039101750211933394935257426516206402952691752177696326941752320731338869407149554414001449148222025442358600790185475854607541016601170751140556721508021735286093400834958113331424580908198727830392442477437401315854234463729753569880913974608710853021910040593750659585888213818855251341570448012518434119925583335696174815856158167842659194071340232330195848365846259096620652038048364501948506112247830556622363762425832900030610819235046671661135329422887464911812742285830384432201588549172088935427521962759148590735816255873403849714781629591407706847718907950289901469624431829085116586402166336089618747991164293326257047660236362297535219581453874105704710737291905181982552405133327920231721073582068855108026441625666214845432865428220530792676534580397771032692392113465137688705830414321932191550415051519439959123901554169114580835146367464884832883393601797515430162792292622255976711861347157600128002927741122804542691629553259090212895544328195641222694600073767000136294912148470007901831299107972266956989004047264974114385285908208282945715489117446618223101337025563508285286812419843771094551121559019816826196412544674844342530588927265469319581542985153976600574251322099140518007380966089990163701365532299422310659081390912098870707994432616558689513802674425606359508098565715366351396807427555522643331424731678377645984267516930733817880763103504674186089891531261991025610646405650074967626203115531713976809346559703106082561120341855578584356259112296256800168429444744004142279396913855850856390529450197926273972066531365377639881785100493379667250908288323860705016997016452898686857066727631625158406881605051736826944169193415202665760357447542384473900257991741885623159866200873384987794695986630162648674365517916289358261271004134243195799798135696778535344485615585314078356364476451961102840985925467504698967081245024068254728458840345598170493619691852494976656613713124996652511726132969237527822843693361910590695317298075415380368441401914341977356973003294253556165494934667447767580419262094118888059278051995979094519266193929578996103723220538637085044064213728209946465457912649855937328639322269408657000206732945977635874982986021289807750893087105745423413281204953764794347631159268150191074984365127635638203687257025239391632848195392651873744218180989409685325853046446490034403464647309512298111626973926498219483403985237404013839973975007375743043105839026687378333911214662775143953252262774333739060405404110561033013377866839230031104865931057036908174120506936168263936818613699794964027617236167526203402569383817561478474884954099391571524907572599070872366218202368427780060482296130192332273116707649211130899453831082144173886362286767575867692020688325824770801210554964283747638771860888705532757676471717231806717657170272736164613034943093252127905790855908890237391163252589236652954270476166611215366912492397372883824850183921732156468347735392739930099995826553892382953537516011960126671652703222115595477527759674058286475662587902174981710460265730098706422820314495034000899062981608049375866554793104305723254217378063275674983016189705163986152924877805927256272893806476045668690205348089391580942953266323061855160613775358702830380050027471324893248442334885942982816161016673517246517912131111970910596183659900226142252711455351149859156740660270891676032221011983041520670867868597906858570115540240973521586969093352915832338584047465904879690396359311259899911041003485128496241943721922556695147972437352595982517783377011929730433644210971192918928237347110506931792999742898468288550652032268527804161319514311799430648183853769437022030679531442677172398309826609387852256896675754777731148211231991732943277017253596138612822242516775109637650768769273237653175592847790961196629636531433277155192684038893677421609739373579023429490429765455772058299225157977390431818096805193163315915110643968162302121297426663725142923547071593420621603622737898979322516559610974556899023798899979046406746594357318099175290498347201913474975375682525007341390226304175820899582356523101572170328077819248928831941781225655490775394736393694615503503208982691584515313432755263093235720182527234912828853198189211926901628667290584695704770963097991964181987271014523372725826427031981087870954130061995063783651664178107615452984536616041948552917268137278222551152162676572322759965178129352628081852876932797362971280410912555402821323162703946172352390818468086517147017604945042697796792136357402284973383753458395351398776453361611927899335268970193547089805592236289467300893572281869409415009635030323317001077871095203636732555349390485001783218505102697191496206650321737085779821340485744726144239527773360196885946846436488331427581070734438121295193195324788489569794315059680728314971423279963698152848111440982593981903811378893920729630255456737681745691443843001463555994876673177285799967786898701293446560349117427969195691072473758875941241286303463136275800715371688593483510489430875938635139208772025890738602993692941759625216819299615351013525687865881139133866125458123908258721360185631899802813900820290520594982266112078550740284026490576967668494829745018826045856364504190399798267713331996713989636648302756793086254219338641372714026246473314769010493253284167501818175215930307204400403577640280820354487960851781157913690755913715439206571424615827425309834187613384388825747866128292704394008671495311753400740343566573099655666621188278595180597999803233682255133849732968157904525205210519777548963453172251135558231498728018933603984178159369495718344405887970867824836700803886507901160236135115062631263132850471163904655851880901805310459037360516986752257416215331605418771729494960178863662605353449315492882750747213183041849896589389356926226883551800442106933919577003435196943542423632286262657433132702776107187747523922753651975114745723367753340435224384164090972859198497464000741003047625778276742764439794348336415781377285449726705625761145320724263784389552370040012763517450804282500344973353204589551772487204873128712660114596752708897163594921686918461208382223927743203307718767624203116151259110218335585549816425790267921444144936993275742313193615863203798962806964685689061862896131493367578512735547221529855010241582829333050103893885606104057458274082408804266428388877906689428756135483081052533278668330350417448951069395445213609193017110728946660620580293253720186267817303101956007709047206811994783595984523503536739230308241357980971706807851212448064660936363219524030205221654261209059259930017799603617760742583431676821328217131013112412573973775196637068920521754378238252117972350951439647342539508365640101525854038834479422840623378514783995982448753274887425591278736996656934266189032256740566190387643603570456685277490099738900410394514431429304415203802403013025962485870725454734230737581203568943469532916223418963230013816044679728906934764696088927742670572488963653483915555052492294861120861985310336385142496277190283733245447499586774801649596240712757301220647462984227955188882474701404445213052620314012347764959569237236031656556288931005961446456425673530852757555792961433018827145200394579945846101472951330361980554656507925212178973225758859269811026359359094516803918321998463418756736473381228693233741906931519588054978252951294470761953762473897976471262032781708154902121725233388304978543951911030656740478039640563149279902047857451787700347272665033861726157917123720071851250409561366572602993418509504469515626984786364080810501686641428754364560299569856988017350559905836389846310604009476587483001635055002976930494346793279350867554189717838082209561353665934666750722869963916694834638110322365355425620450113108136797251810543546953752407431686885195378438452370654199442340910847306164142642652049517935102225211520340855740112251359669971877418580668202796998602462711751478215288374515002625888477774492143522196328402914096214545007176764862210872234981089185342892433856244956876839617704845892753097448440551437324707626986213161855626240796172234375528284125881766954044768309801675088714098381295994692044948035979418763884034868008799526749950187885970310008662541977174607272553357625219301665901820689278870543505957472789195065010693978587929709024434022319029700415369076925819784576525777974737147591188448390373601525002476053060234765347113513443367087893480881311644418386161611941491463885939195049676990275371767421885723637058684850267262121179204132103421858891154830742330318354605617749014145281809302323451562125097984499028229218847191732652372254822451201515936912900858502682677282433187322356213279596439427069555395213066173002625599722676413421046554755596201439157738297087047963234668529553829478166817817828031004967883495354352262809582734499310389321951050284425864898545006224502669493550116513668144998271977148023611210407147084942950758886433310527464550569558121886957069959638640347650314050397165095418412257619003306115293974016745023171541419872699645062380625996178454226585454541674616839376946188462612036889042467102595906603167671658199166184538745292554193053353617855822230353129919694280634693161815101177795527934203656505096934756139966295606640818456402827836996517805058235730360561494574235749400951566630960081542783325745711705283478960781771490440521480975351008834425584005781049447849293999610349161017333904044132890498390839587848310196651158376754023018774735876424814646178222228246760946774944214454903703980306310222953055096345405344402488492117546261834965476872682850759367432511966775445102817330648888126783623211779252651504829495552201659058179993393113689857267759523982425019161420751993931745399222548084019147180507276655405467021389595667547391631644543427998930838559265644160938399910685310416419255013742936858155062266941691130571030261258597797266969804733980540974439174284927440811589210437190646450565311016563593275396677343258830213578052230291546131638379808412300165778421295119667615540676609473281754015080004551360600794040644381140564425905151875927684802513439434316017190451057799043630623183665840243435997794562146323199640094212801927714767811678243840017905044163285992870742982661347820170998387160464143522107765901345368305454713504344845726420856352699211413078595545781890234480005532020571298627854027357984637175703783653059100096945456444625683974240955808049027739840727427604030466400970435672332652644686548434010385628787899637915114208841570919015615662244728067963818396228734888224717879049583954556817754331865072712057032235728634914492374899688277334366669738344500611594889371570551066547621828200336439054178152191902759509028142011249075512463015928096101935347581300825282273554959467389345422247992766713815487001836682051914327401296053087847439419042215064640413285953902055112976254894612347445920717709724626044695963056302878096558715440442433504793860893260906767896879976904646775391583094087847988519465822355545310285458154757382828578985136309826768523580728713263245739578142025475694717708914102708238362454844864532372572799099020078643714869740383922138595047178406772272664479693524681988497383496472691362321934700075154407117421977500716502482045985264550026320385267153168383396579260271638634106395155615579730262363984649645632483819868284109678545696026965207506147528390525136356527361791463499682253693348055310977178725178795103807038540235809117104086197348417270100224713132245207080508036618764504557116207385038257505828496520242135586099332218806802283899243481100435232267467490989951157797516594350633880717330691964390336704228980969316961306337119182893520924700240331558062183251350197786394459738076511665390296657158494286249814860061100901183488377026546886418753647653363302298910409675896153783813918791647484566968324591553932652873020407137339304561472164164580867969224838744922281918109027279385812015874355456639453147471949857467630380340254666129749914617644184005978060860444761376189922575156808839232687857714960751912227986289834077228727149179421284438030100277611985334431323949877498224051622774788568355330575492516692752719902113328818354102738548001384202947088889060306222143023171656119733832781387253651781301117564285545417328842919250770741003437103710377209703320246713235756236856393770634551435098995453283367858682104884621300245843411352187371198627416256927766424684225158043630762310141233376832773567428802126268393637129765610411978878444141724882609759004873721072319402994573819355188338477309751158186949568211445798331970235102153052336711607115528697090466245542284068160726510627718747160370154739504690932016249387224573584040173237803634427463751176650673169809612549856788115385289095380880939706737740653038763458825232919253834956664878619355602573502790665797497956172522058981117440440711632677282139238005444775686976673356155051263927148824424091747008662321563852816603981122840993925486743163799854364949104963639948352598056167432356456344876986913194401059938237858055331116341363585707215507291051468516192525884675906259570764057790335971819031257298614766867644211200468439127086785938496155908825055772013843706771334873867487171977850350196761470011995895718760849278480761009737452716457821087500714264626023092056143063384135828040996125141191335760554980064032716211722032702453683063400308079651511136404039152559534164083871243579563944297547731682188583351276842527085481862446798218297716532800560108793346732713061774351950542528838103981349769034165445985693363708661467564486395764978214688072217274742261610914594448550803991580697765809742471587674830776870531919787486131683355854442414685353799308880639247843671448667883968315300314103463632731337733169531420600763562498333235141739643608323320338529906406318237219525003472939135328581929701707055425434142823928707950419567159008774879388874883393926265941216860619884884046670656344786391701339000843303837395315041856339227871536010355278410664176038202598905453028200586041507697159249355818842333337800058485125796742187173176034480049948484659614165443554970140916278106297371423338297961650552209936035660600140707091549790518838554885763492930313630415217055109233029873715942391319080528188490709705605956275798437279284921171316198013803471150048398876085194857994279802656251081650846799706670630553382853451253178980482601165314419533159086602233277929863720884740974197341520308368578657351815203678170426189758347790067616599693630751798257692133720175741490424419786173095681733816941149481364183558545423583030267345084119329317564268150864009979950022249524118673627140049086849049343719377791943373332676247483541064919672892564868061597072141737035085111114790078442164055460167818635057788469215136051164797477299692459719108644575301392193891506476190694346561419691528757212140325048546281944656344471784779619089037316573114899165934500686482563877119698586261269119378964318000277877590677792094837466026270772905266097419321927606411553120292021299105062720203285608457861278613036982387243191459283417159929424006767830152107909147093565343699017749895298406911263380667951704504670384839640166661601359702098075568405883121145543294915791819110924790070077630076057970121893730096470288916766753362918659021862329619596230606636221558669558384761961844505063015251058812764848391891893391911638546723764580454410878010661169833538877227864559469172794832098762895744661178061841273173815999932835686215287868292055810142935219332048542844443873092419558764970946972443014552926619135923316747032056900918102453266366033246287361408544178494981739705857881668113219480005914678588142915547343972826462242031510054848459655034440583199897128820282517499696549635637406539664213110310441312555256317118589715629846557720691822437369661169684943691599024170058260144881104012850675759176063291777816795909857798420813812420802137192593232303556911998191983526919056232877123844701654320261057986190655022596917078500148136134291720268453567851746825932882115906691662986493462025246962286737915758099788816132082988660129209162555852386849629508124531475755276524046249331358091149314227922558945419767453007127148632683187852688337262465596914782879239268515989393055794767927787837450247189252251348411310692446606934804133283464151194113686675720939299711617838568829531486590363124076204603772610415429217529190188223394706725434284372445579728948466870662553917958454851282001856898267838952695665305648714189811385224305015408382459588369193109263053157707949489908488184480072307798897754889933880550793402587256957556322375564109338149572875413462625136406598729550803129148924809834796893975574565804976305333500297261836070084865990199806689669925724567251520009623050189699982912732319374189087003819757579149189574495039619159611792850090147444158783658119776959199966207414684261066262530264753871196743800245058035917969322594117855077910668752661715329334797761691327962319120032151426500275443975777096493004544437456815135528489630815676017221792833441838379416370954652290664501002309274111849759954055533837549843187813809173165067302057909503197677706145969353113878431034786327363883072895450979586683960794005655442551820900263572915783621835260846611825554719884302807936727862539992588944022054953898208675698146662286965984191923857164132429627671597150894425023924913719250378397717458223674602311249769325009518787505701639554376744841050345870708052564678115357064940028904813539580767237425544818684321408335503568556704138641393770480503927293231999070323551750651486754230052411890524546424004355241961978124714659594760528362821896336505764192835006270805457667697490751957312792466373373070511542199818403568078604266917673089385089398809826094153854249143807433560946012388074968713515831279925614116739243192073393024041447441471909905714619363513362565791243345513390200420286319017624447847673460670890867357890315435606844265807442103154066642872978762338069520594128056270611015823285238804068952818985732494629643896372833249135573765202021810812276871320058967809669539891030826239682039760814639837686825042588756971439372573822612271170795623723848823659440506308305640302309518762228318696587735855712393692398785203520957132902208011047574027148904771981130963330319840273094655750106247506704915733563794538914783588258872501386726113082971495390575192148107124935154838902985335440558082754265287935452601078907307115724415069050967226151662286787142503484451610878660798058244957302540786516406197386541249955540380071142852529508911899750628471050592672001833220029549037116626670625151595228455624938722506563593888950084834864297380838003133747306681854425256770262937243494301487556800547861573340406462008112147683288831115828137083900188876189170967182057462645176663096612811136572957114261563194871667267793265063030960241437013758361680557317506193760319343560637710337374028228545039396450377910240818074350376626021628096385063659948569387011881993281153317635564683569416310538020511024561295473474655611799233984766459824274861947929846739661209682865995425630669040892366199996983887119914948103184698589970638534250064044424468951105873127962126474048478144387444397897729270704041642123001941463590865685047345164200418632909770527822025251193608630041186669787387205322591403405249272694951030366428731292037128106488555123417682626533453999753455852641156290872350159290644975849594286217779991967790606319996826013361412243814707691838821665272178102753233592200488748521405666646447397149870719849050717517975921102292656299744784249856779416753463832159444763511446202179387442736633758466922047525917275486052324777676519184576422722570742801364547222233114919641172912635625923343110645365239155489798429786688481021557279213264173906917587647288567805861915847064221702746825631020128772582662788964089667470889950727561653494780678221953008488130020581523053495337123803791808554894634991920142175374493903248815071420946219181670717014233444668502417970139765342112748206876080011385987039915621331255018299022630731273820298036552491660108816487761601020709386892022051686606898784701464662556307694637939875374234187221427925037050332261249188652990954958733155958646692008069246789818573020595485942209069025894203629859716803589200158094390006803895866170453392394542455866955971117852353552385288475628125535784438995670400512596516730399216058657613159529222776266161280753034133037460026954555302660113650969160159186686211649559964125670965089298936299766473845986708867555260909592321931373144067591211276389113214954777158922816528997785170591719870485246476554974103822887337391949524761093918658168317437157514109829656993964826211859555283397349916039286625709296053457381846987815806214546104605008210231122428549355340921542082448969592698397890471074771310597192808901674674699107064155511647210006306053959488535707313408098579943010576048922625095816254015243339779336609216688266888482881364690847149340705646391197889692882344650223218824433771179287438637933681211696423230015746537085981255998364844682683987021769904012961011454962505982703900816524555749380744330739410230984288969981453423765454780883363128882548890366248570108070129567301671599480588002223802160569781958861456461741320210770572199219473937167191269772464774009873477503353896430922583479879158145067963914320205139353308112135406812747050429075711658690848253351240431783571306429952655598922880132833886519849769755333223270869731735823795643236748197168861028222672277557853673016990895427663821006680903309869929308061277290834602526694204682953352347707686613172138335595795449463035001060231417508466023892771858033995224294967530607345826973950475658239167730347807718654760953956334098391545043434870382516404003090569593071397139451465089980021434540008973026088248979213929881599774029930603030923703977945851104714856455721645248769551329607892513361016501720219047410900361528662803401375622081380517967113680653585979263119001574866090754574225195927840612709006182537333001351780220403621037161664838202820108106606349043526728802652218358271815404787559197337310065957066061218592076413774368880881810541609325532249901343757424486442544941497154918463768571014078605123531233924869595985197651996710634886972796061926696020872016503965710659503814720253449463093202262681459156671623131461449611339711729111497169572158833767292320551779788934215487383298515608898413847843244729904697594789602458960487859964241828734178058645341288993618230096907692521542821248730697141039742025717147142064129107871452926739777052629515448141358305712760203118823888839983202199696834800869118574256228657326092842579101752505450325595739584384060671796480247581895252544936159551860132079364785488563347747549484908480950165203888901811511127249871649116027019772189821413426560074294322992818242163132973841888629109596089008489118465314417452356735774348349290844259442883881878806606009710675653799052567264688346575508950476750364209635616398924087968198535182413360016412772259909560986491430613018922807778919076996344828616705025756451338844437975455021911044392417218060420841799295035635519813545413936049903409624678389433701751974715910107885259887297710651119139309780262530599600049722706559083434498026040567307483916724418732352141231925734211008404446297702959587464281953013338746033783041670905300078688794801230569734076592005604619160695527252180498735719133761697870863565046181207102543426132744550399071425253733473320683122646001315832378305148659482389007212082879405885786080955008530467515540726850017737985750699083744515403991493189696257973890799087424920733421203345116740828035420797769998658366016011291054879110347051967192859944134157445536045613098136759384860766642676259560351357970469629253905122902696368800290149503291000012889832152497432146657391559178054614546182545776261564187636022235034506678933175947835561259062784196413664028504499276175084745237296188407841771785709579865291197338831871218305422778763446352158866514228186686945400519616831238753354496143443723488563544038032538822680775002198495582976521518250268666889365563249304146117614797670796520492961430082691826389019630253562449597962863182205695327640420134227074224183155106912383494951420086618632918130785661535141018489306458840401420994822459054060854472336846739500407026559740078372993122624872748911351876425137804462666460807446136614889087198656260469902578648680999031203887978981199722420043577425440364329373468893791435069792818688321290055487160379879437193081235301699804940908161743710393233816525269328987491654609301019633003812013119863910814353251970717833322402581733974063584914793117559264997839037071369810935598219258156633337188395309891140953609527542415482334061712095521069839776678125789882938981369081459869013774507331151998463832848767403606652685274508806013818350426556836576039797492242212876852910960824709026810543967720159788810257388849242337385679816891794034207999986153728851304502198893799506893533542168217177101085328822923450528342365918018840010835815532804950081262820996292842794668694979127347289922206772612236037131370060242652614982468886044703538013901314448751657578453879799622921641423216864888337267014118291420098021421055687003933946225956434459607093830704566340278629864979533738164872196052814534868359889857494538016982202350811460207809694081262249397599555662888595867109413411412487534170042170756384334042803443429686958044533790586540940317877754791878123957188449858728725132149153860201980101379333662134318860628344384165011677838976659039325201709650472022160598130806554243298257498749237348733576428103617682403359271254095335156093312790213235273275043594267707840504639120979548724774313633700572487504957031627355051156192448420571882669074209411310638659491172513127679659570290039489734861948707595869533874046339294541771827431187726748634319978741462899798280215806967428985307701919754202086361229595991258655249798354922873757569164513807180933462451407349181248822139605749641985557332168896201720896686945875818498318825142512695660560089969324908990247962837835844968880057152014298947778208860467019876353340034059248976313946309313788889106867943981869935117128967541058239900670050575684506523627684049779533653903030786229750565567372796811250107148712782147126179159403210554719104714776539713955601171713624941469382166956531562148056535271027615591726612956780775865413241635982835373266525423681325810920185372235544611362566003922401887571044522881723866263193436463054612934541822322293688394709741051667614302717420979289700542007999506117251464231878736528060484656376511539530991419959401211150827161764652011073816085895762569223567256822914170405302091952101219223649511828570327172140496379706600616286617149210940952601813575686499817373617660868200933877303355480548678863714193943761862423166162391314298260294500564853622075670050681571989948217673524960854806609085823387880636429841429688901619961469589353108896176759268474845137178766353275158298500914807044379693053356656366041715105246434362950262024252905739809250235522293188630179421308751079677463652068157958894443674071814510397511825736974578753235641105221072329317085190731357986862869137688082436079967755803906211913318927456180506279626631183328249524653608964294990479863603812170232114923998710081791199641009246832280277504369300901842944211992046786445771832779794336414540256440498565172104681901256991912675569580170879299134183773362028782623082006192014425255486484228915914042202826493510585241442201189150811427711420481307051578142847382185191003424063586938952337070744641601476319281050090403925403023758713646813269036056847978470795452021609132495926318486470210883965377573859328147806524650231106611839367664891248167098902576000406126053535411130010862983997683217832909595067518718067475876921817644107558093557829182608064030328323791139768145778255822091071430408307681395277812774440271677667719878416478491834957143235344461269003355866196197821194290493184809481554016719019529165584585781814495713455694051166280875881883218771464422629529359248677678283193539357519612655920065583223437762265828097332463327245775129004026350992502632288959400684423542812952619247256869800525684349034172775312556498347928987964475499837402770055536062746760928982574962715813518795235310164569180602109200967428162699803613049981995858167583373941636867714929598436958667915623693787682391201673512422714876596336718911560982431326660627007929342059329984375209992007383444327880141996366187872539678326426026329802838525870824546357266210053535364615452806551130480135802014107929222375613629305988530604234361438749498502419932382456434786441480157340864876644979152061227448882644747985869800104173849552312111693071512057359923449558548644717138401972209204188665765587802741009525193260977498294195597465117624301974627191026448053706771679336769360438138110286675235864684604716089498391461762040115226409501819713209893583524935588683612929981762299354588742428650770569295831658907908304281767970611027716028017594017030900325405855430082999142972628949914014564676646185558192332896514329749966149249168977645083940259732026109077767856962013628630253946749035744282110839859525285445131185382938899742667255556877212090454295914996766838909359411299827243004044013002120504742764409906148447055801128527233128983414211831827182080731411723016155703616013675854728328438430923575266289086252471759556717825542036132692989864444068644703209254021185551223243774938610017312873157440905296308268142810821305187611099200010830089469793788110964525525063208134113578600431699866349220699538577213542594088342888603996076093045686549033816422668463669087040874002983336787469205881659610651440093680209418323466845315092924778582558471870971044114662536107522335633187485987539878467242602115103787331848352347513537641319186065475227507244142937970165906054937914367556134532355981471065753584086890558615062262181219818873630971285925958702601341406097965707848747799894904987344099781201126347649185830243522506547814747965130709050609504911494426837811304890781835201553927015066918733132749638501812091171892085565775972061631842034905535428074205938798034296818610821252047752992820627505812506137806417374425185538846803652885721681518048577455022865173028459426010859391250757884784024523255768119660813749078669913450912300849025322565291818621346865221141126140875508334356619930648310999186222130055209551376028619784837755359349451035893304732379076464375000866232080477706850667150670808466068366166569823782237325735648676922818211938571203602456167966801427676482386205963317031302782668203024603055080967402385601866773821447170422474369105956563852560824919970136141010955466073971359612176130415859756691867229956684627685872404861340689827233421138023038308362091847059480182657948618919557381284559710698272090300060187372888608753592522537174057648323901574687586730430880806895614893511935426971504874938712907963127726531227519113274161809710666726752244925411495974921467113535599076282674531952690337319710571870100945594621108985276734932183212396719262516363431715269866627846585423633670350140436386476500580150615766946067965369915350118338945492709922631274166910070263198799427041461116229660051604070505013140209579485512446981184938987212595009890484158783923756986854462788588870801851022356150585965799177320435412248809765344710746276248521367870553933219864529866999352519662900962390506762347616489224731764620225740105855018880652854655701061969357809091382013345932095180063858411409709425239689287458257169891507757460590333078539215252239583015470440376820567211316557918412289101142301481473971491756798261810589470409945701661952302752133812106653222617590567054087074959765996601007508997480433367759285616393510168454213269174035841373069169844961439370684182351767764803803737018003660324065202406318106401019357940887684438457095946956255349662339944798071253117631137744099562427457954387969794461383785356362424751166914911233729054720625863191260443546764330950517943175603947848387301782672542017932083634745675561905205274851416304523530506916675830569375874764551563340426442921139807346654708438331626022094302047073756679204710112016711523314539286603974968747684581208491110388803594677493130303842480550797249192829441664281434615456204947182179076175821649305452348645340389168761241966332707593012550085215346028614984450818377621500845767148991843059279104376062749676833464392279961742281186282268669999677749074831144840143130684322724254005247496428063661043064123075518298686637254338366736374087302768572222795540276435728453707309132969770127935498178001254188742545630981759067138581128480608114924434300325721580061739379853649095454017158019392493388628798154900390760451410415616820148692874236737496640092977853682016763182898556432409304566149914114736871737622831805115531881247257277380644466276156780960140138472406846965356113848960923104502083075632749277362935908613210416843018627631058965091954886276230517698036422158560960833172698584324165524069909443158812787487661413942701812749715130509930270228757125258035577310325942450433420775414317045376131150979577468277768734038063070869520543095612588131010395997760810277937184178741610114633625599932877035882156040144441388497547543809432398990143033177375764260572008797283179728155995344599496118932048171064962723099955242330560817883741724276346075519778659751264368745716555419536338207303768535638969674353194114618526958477468618232540569246174095834216675491540175479478164498867087935156232654932237072587797030757441142232545513494038383012841732262032452636458206089231366351139800214715486483471345903043523049462840044251785502406700276244209674669399241995022361289412979965644227339855399110168791282997132579060103417534649460843709506923555312340592929402178862424806094851358504199585306300529914293552094248330643152794339293704365294089807836661076626099303598907059961036964663303138946296432213001017319421888028250220928332749084546207182736046795747061765408365998471579849785165337067996037548093425702843011955190239500446259592341513668991533237400447213725427057156238773199735573620481211871824647730931173370023006501821952576118648946185261110666072023188583174415546545547345227861643736847593607631125285985080783461195518927876952805131339961211772483289635873147351228550359075296751730667820956544081795330015240226706895197219204907090894162675494673001265160777109388491532142422431412132905940491904796555208094126051666116597687666248660190468484691750627853096722479546545174030538444689641787434352871871943507645614947940623581674742818219255078459916837466750223911578228097084529850726838341191566492712641528415701854561525892136957550707237345708358437674808989449400196408724041352158206893034658599135466268505002338963401897930053738699584833204396648566765453384287429327392145711729702594913434962353345142220165491926465010044801468014447238038019126485911200008590781312614237213488494925987227284785365910803461224774447210869968191811096616357729562433633386824816469277435324829480661269469681173288321357835834815517919674193118667134816520774817863004768890264000763899215185308548603753050085940671951964878714173372895698765877650732504413859273814434718215758582194324703920420612520079289737503202736507526483354273843306589977659468975547331787184220252610175331758622540828667542573240860553043431641100949931061782694096607273838626568083966158318751543532556791379597128869934826195465140950263607189892985146484776962254447032158652267217453648065400951862965550663536473700804181959434196100112474021346076955460104434694420272826177083134504305672562973120475458819876809406649355293925346013199308226425916591878864372108764568899408276097831076365398939939733270223736380103069963687946265838249749030843878244182783925064078749865111773125070251664184788065534099292743831127029034630104872700512867429789445948841258256794287375828448938389412428797279860254072936215725341767579963273119771524062029267290272244340904851630048316906924763985408686465631774985907537420213168155201824642735911148223484092663155291760823442939487124101225910381732886329101102483436415127208673996560269601010247026941396135882617990807553830514842321849324846453626331744587869223281727359336710046730612670596554774999265296698102306760964400828678004960895639790582398456242533413553842526542705126444947821887794747656313771634429155613016524299913010199521685163080716646579592567328627638735065225944059527110559839003080796102215266506025635156313000778782466013423146067066100495419331745527792887949028704373412192835285712211018298150398962295995337143889881071456880732880678881089971921476483829310347091906025836531809093566066540167546424735280337886329719179581661775223375456170946260468383416406587615377996387419872204590840895832715733180623270750499521801664665703426898751831818975881240039316289777848595889319501015826288638491289307427014900466597387426880978895944666735466417779710920960040783998340423402408069952910856626900126620677073854153963547191737426980229976680876430230161995409949414598397907965164703574705512939368080993374651164960404888755042454366059790691268210280656121580472025031612842957678821248032184716945210845275178064549682435676750774491939238419561962125435167883129976732580798860900354901588836915520651721953277180133424684558452120686749066118893537802152888546421823260863868700103586818996048487622679340378508919738634339524276665333299807839118860939908820507818973607358941743955067088518059117818815450556175061892253404805582316441372310248448957099059503332164934543341357220899071800961754269574298422655563531895483035725979359767940335049439273136971085360786344005446121707593031283932228926410803993753555104718868462206529233837148160871307792240056707244534086903958346223891522168100348098278469669044458079834753109116232332707088872159940725823468133239735390034679684595641149184361168128331283513155027416303655838977467172425797203399352756419859652148631904035351153773426526945406318378110315467080855491808628355877755558311970004846382039637919870721020720012228662106354875937197770205101946754331198255804730327235112848810583483494012613161882819432129618706552828954631519900986904614746503709133748491009280026914043264946040425334463282726290493733538956038649053105421827001296991609753016407472459948873514061296361199605134988179472524756479054788305952877422518412704547915367513761028670721549126826506669312912399055057641465594953781378426326417413927799549927327539460592370234900302719019006123388248773822533535315430135687585059329728591575136186094224165683247057663978856494153448347212557408862223020483042570810243810258289243246835230260693426126725768188845667490811629167153154856629907533624371477113094606600733941753048145263463744148243016279274576250816449630186776610044347099285605869158867458228781259867896042426252895795249088162656086756573589759534309133992552225318325370733187089834258235964171046091170868217799409789876660379756681264247809272928977428877788091546875463423499555570362940975804563573572132068332162785577291021215208165862189120879838792268397133953537066906436386200339539841688263772426696735200778319424081734728956571403269624985478441632508930710552466081262581925420840845145369660900832196484621517484630944593715658084286863000850013567018707703467600565425653451253984298287136437507619764579234438668976002815976381525204959965336565090432549875937244300984642760489572084064322746168784079222981643964767081324758528580069819567558543155457575218648479439246307743372226811291521138867595162177152090835183923496462291596602578915500102384310751885132963993781005146655398897836820352350430044111878407254184961776786352828663370278762747416693243998942050818894327550285749978363569678313974634886902442658112758618391700971904506745863838154698139851355999032685822241845600657235894316472903228734606891511862720328823743741493062430771130264846866517935262903258234332948202453975153094899380778994629332587945078823147898552233403032753360088629700756262509302322407616478696996206693883796302871475917477219341367929345147604482640698598527756589559419439021809022674954883020661265295550597756128516453231594879073109205332987374212700256349452446735261396776540306926881327043434480552120589703412395618666367214791558910016569473837332185040931830910653821027545353273189460141906345215158026105125210077923109199394790238742565113097034585972292139644154410532447015857943195754231495209684230463640857399160916158995470392038012982622557987672468541248843192024780088679198318811650980376753896032402340989874769158863870434497935761303415034734664547299031688853483369015996133057686717840471746605776918382495946742993175734929605913499359044521377806009606111225323579101313308991280551224790949152463765309739311066689905886645930025683465309205215636526668887137085490929198089523353254995667333966443935770662777081782285906824886778764328419939705697748447256922371972218648082057369618799854136020932546338087504727834874591171392755974092154465308758573502205883529042813947694920328449260519519012389756062042721221145892058742482687873727795335504106165381782470846572347924500520019986873228911278623642986266208489889941748537036144303768800518820057101394914327837937874455302145452363686698147984500091619440093106329182427477768054110098612431526081024752443004044964566136625669212807397409268473471212146888013423616598010207995014498832503702245417931019263424005542819536290205003593754170082306529572197602977120189891814154081396804384831148412611486466885312995873591540887229370695884536265746179674779917548644554169550009713123691297115148555669221873555874945431272628587464344898025099888011592598264950477306681563003576511767202791890147723119747043175268258726742514766116931684351342265496551646851147756554446245750516289092186400820581072988065877399667945670253986903276417321131035190526204516481090979468626249962826107873651362134829970488909587447385987562477138907660051857554201019606494564560465138769832025002839708521883211955194201981235926481317754273118446484798497482332911514018330287545775505548681140248889562768026314197475217557137970125330699723048830564361299386706155894127905630224843882379043786665938252378920884023170519914275135593463672247913551321210162657448233849010643768885309220227659504674786786414800688044936656779431947066093883242100808787338097091207514831697697494567585994033108932847228517286843001227803655094396920568138998905020082397258675084175135810610515076935158298102152039884629245583678792998450700196623908111600792035435028989528684566475593819265439438914788118233103048508786907669592947125397963916731219808770137454598875843198106055452130564300823155932519512318807405465851394769293970094545326432213459031215067908954150183731127038271992295218823751211447865627005483377382094155948261674631638826351315042811170259720538099353939324147937972897747063321607916772277366101273281540542500677385163015017230326272145103759059059918978772924010765507139891003511862921970903331085696883094455721835551261726884740605632221198381972256395104981157717371825157934830223655105682202070041458082780979392447183213522752390208800116918821756405695669278005759685516129025372897617795391295289478555775579414609367431762058800415845174039716965165652182556574537028345521688792049476890744051878402875263130715594329151612936996453054156953123889826803100046994885058883542846417553432038617891861912419198788003564611702258622206703056460352027370536262891088132174770741699685856225646543079477854064542569967399823118469527798759456636404653518484520807574774306435583120279228674395854197939362189330465146497919473685695767829613764058157577364921182318808916437811319560890576092271348165632971892640267901655308565336160451716653665959053372782572530567316893873667417847451200675868831014805480048828511919453005013856062669835730729380269647903725326782718590890662865556054279832743514149250227517859369835177659230957838418256492964621590759017552603614440336209695673655566700247753240315727430296797419992751806376985610588743891159700859058820286293055941375674948223546939680005938249232291558098314627086288381250290684593831275491049290665039156910925067326535723076817988499069617352655573392750454898291864297341259640895818816891957317716579329507047980788703571848609321656873029775798786691055761824121051904177663967469689057018337862143796620626364157729545031619817933193856924866786165488281869498625282908753675643408500952966451714315969143713685261291225286992688147389375812095096443266419731029668316051053590761410156858085318465320983539014082290971656246489581642032798061865982321600263588429332666357267051379920525815754999882773802809375224815616273223960499953693978338777454323373854456043178263150440213944171503932596618370606434566165102994438896348538000140924373366898984992033191413095979274505812151942586377193668560628926343481498018525848705195321122293646844927238699385449320211821092859435836144810044665698793200083939133887353776056695363023739237818718207254808894971647359734419560236245149071548464971212466356427514224043995281545843145537228782371077969892218609570716479236504904824404871438943636502597157151243495467377743130333044635355841707223077715557892798994802006557330009921053945173200631289780091915164352678268771381446817791072618352320219508773531364199311427415655163149053464466037660375228433940592057755597004064423037322225698142381663427683761076725362573797748049848861831993154924078223611455586744179926943871828721149543571385040179379602267520333050694741618867838981713734620157988326640427750627629807591436819009790384968958760632528041027939358418115467089089660901671223785377609756838177127141860273083684669337112816166606422762248181920545904189299646021684041699155786765131896502880002881193864431920915599503976293690467874837489543495789705051744295250247594045013242694771190818335325079195542273323852369165029343570795551133712771904211758357839796406499025448537547781620847857759845091170252157244082866280175494426423813520550281551733760607762027605623707505603438135640085314744202109647824875309040982003970785348864083461606765362103139232995385375013466799266001071296803405593943052817575989978603652986774063957199562074473410905425976668648485793339963615463232723948305075048553434429198394805758414054138885405244085202113276315831879405383655096033406954702609758375574107229782808125152926169728131887662305720970138657438763851000859483919481394192003573080450419847636523060642518823506687935099225554032835937921120876779859530063017327718372653935931140869887699074251648059582935469168119394377599871852340645905690201487906094028104758523666541192450873772681148435172680036088298610267891898207260994618769570049726888995853350690683475587007121857441282254160102964493019124325539604596944842031743637841597021285108701556341122809122849155480060423112865550363557173987928056820859619786600398371906620515623998689758611030385008877080784605212839698399627797056962641919848097275543202329834204770793346252160497635733101873123564864536241425991625145842132613056660979336541464140796334076304203201487772484494904716485597042825319619369696480358569379893855264019172782860127560576396715008468518430158724016306673465522861247884982619606527561250258354933564302829648006594576274393734557230291400072064830278716211437230285951709265229567175904395873245564921179386588180938195583106141485120236857152155162222528590137869699632013573654812691494140684247116963828395318109451745016583591576494878942977013989176185082400553941408122131985649690200507303563969592577399825823690242544862639595311837274023431778588180786344242995047279715476043571616115660030143621278612151705171055303552679602211227832069958622241559783379465999563074455307409370530051101658688390996610404242726766880048649846870630199509144179608078844792613599223894596271490915065920912925131652754748576377952282836176710366615074817015753079557128552085919515296071385213166736336894510902074032535822457661078536240789272946480271544020887280846771587303034572117526180172464397154728475764888053416013273362029846582053533173747807707757331330039307636646571686545234881296735336072172785708650987170476096349878546272669339061657180682751094389591252228368777255706026352573437919064549613149894742003579464127743293569202866518421471608681289651411594758952803531667588834277204880894924813140725509098097624435370685407789431954434248326831155168089448966471866518703240198127888296410497412047601925501684835541441215020877225893437963049782866003538000802845515865939332687230928256019005430445734991347254991441253440865591413860739984264481328479416812776926681062914156722358247817040950928671341953902447506831596640216025423980054465144559112083749647002696359809925311038994321328157087689109106285842919241881387045815848898170430773296321946052543186784545764800030318884364052500658778330069916636003745143483268223758217883249650538369411116242347137055437184198121342475241530498560419699196751468748256416717845752011601334912215578502030361400204994266163572588596937959648590657476428461313426821668710456039132385872851209884309325640709160061352119175311354667696541348615205370714031268727492970405317731850563771687458980431544089029458331806723330142651340690917714353654019210740922771633602094048485558949570124783487880054019436180446656158018813967752025384077033617030076247669653120828509276743835461403594677408786032055910176492824367997911809824568617844810738571674190090713359647041260891681878004913464834723550749012881516248495880602477878786835990679744442678496356881710053905650290888294378776959151626762340434678326690799586620937234334990971159444969876846323293202278716538577846738719358259763271360202626099140656288956142536311323528710491580313436686541355388029946071482724907904252745163588748898977005369905155666919297615882634164239284984917551647715770230262474762649493523207990760313864048613927567534588918780193964855292626836522598514266990502557117363771484203050557993438212777512637241266634173401841153062563673407353587491961931688181017363615276990183510109415914249950168021802129817633992378017318816287761878788582889034084041991213618095367629205129789937404530786480717650005572991113242461662704769708490683122645406418388616040144977823475194252131050245902539747641920824820798664986553320394721816965768774962605146626543394066652360114639763210648055087370365616536070118111220548434325253423197617725529562962041587163757906365732837465878470522647012296893263971609882114537224812425670173892408135328555310478165844660115154703229287811473863603212880335496238411858205335438693574124527830515823711669663211742173594600711161334190286054948552361832155065842421049523390389234280204284557721051860466548064072732934442898121055151687554430002250097733112255448008512702883849446718704328114100764690401144440883495450650903198674009423473163593337913139022161964201248510587596235443120843102724018193979576356914534123149315373009845982477617094517717837438872919479951540396790870500494054360787118548991537376162408963169909438444638774318164145268725797479753643735907577170151731947406188376969207972324373761599116691735925785749163314641018799720153918701792985846095967473159606625734909596742811636726554029591646639623832734032106373000253817384133006113072061237055893369645716081982238405602272987555741764771449748989957609179337722024365843365608626709938820964880030124481853411785828990161936312639457031883058127059936533623307100172368843094560892473121965079955759291217586447316701894949303895079445319071204523823524495642184902798957665189834877660126062990851960637276416520214611964615404940282187877520261780755074948754280978365129846319670115443778396674872344547774055681853633695124667692095980257723375666567740486419369860155577243555507347218659407075873200851234987065727772559559631035025826824104637877308789250208171827135802283097111299637876440374575710761802751666134444901334984959091668216935936317128701031384078744132673217880350940776678289995992239280307422862020914998068681775486964325271241212512645452344263655698050789578268525638955457166869472173707643171628522038883753746356286881794495237904236917129857616433210661912823269061406612184535797035681433724171244641169978760472934355529591719610102583645643387459033689162501337253953302658872061393356559193498298924583873789796269092901870104029593026354086278845615287129636048987785661951010572706761508382301816065420492375592792436436511930514410402452919894249167747363516588203681374807769230710391581839607916323355627068438262317360155154541295875205358591090402085775260522469434149248074309272243083653038685825281462558228379802433496059570027627272133549983188305424690881811049172540535594347536462578893612499905308212334560327959866849017192639808285968513978835699459334079569124099939909093664104977151042586740308859143489164451032681212818315081622665948713556134556180033657561764883950819236601365138858783229253351171446235855749990470931552284154248903132864198265930282776326022400935362584152768013926080217556250313154358554916715944625568770153451891110314476586606201377730849659303674283621484158617075944940221766462854746143624714658933697049239765793695397024774433875727118309345136168959782257907845955724606123709571925874491679467396716127138763754681686178707107522179015823961940736108636295133725340643206893723762898152855842049797553552776255071519534342665470232949605209253618334572986707546885474929528211964906464770701983590913769326435120632324828458547870228650953641412739171670075185662547649763579993954960110274171347869999591131811406862965949310658652955712517239328551470703305781446005079318010179604780146438866639296280556102183135994925547657482842415672626241032090960685854140007955636483194932668017199075601508961119942543759849756022135246286680618173440495731343776654008997938284873085392479023603476119822874161232775391866207334288068922446279131346786604255449067033577581664465305084103180449455014503205013948103446647660827610182394878060617646137755166886383190277178137137784858056539090775034888770038631930839710110685193137357411658042478482231144714238987318123201272857800159370433582872100201591188511452456282529240712720667742632383091231502067415530568826793023273396734437594048204245632896020742633687433287592771941102513039911492329484714816730213660860008123343904527818166148917639283358683117018907366532327644676973862224357853639849018407214994738369568960063091604993237073667129493120227413364249946444120270985028441406695223471925624389273844752613722824262039515369492301844832561838553406533041757340502594564072888750087175780190864537229823748569664767379076419713386079506888782383375709797072290174202826936307731572957422740374813432170494524154490405863096555054421306646994640103084452501434790442170978486330165119805898568673801302021869106395601154219141265298441249161296051191489123846114358760078777198219952194919808536124443872776925861028431558476292304533074826747501291824347922982560985913125869518170917408704427205773976807087650194257376745135204962654473437559815956666283021923337646325076140720783411238762187064934682068553370160179565520576583100710397428271900695742558745916238495883280421257339710435905751840529519707026843775024660618904893134758209964397647605795229117284257181752839981172012168327045985643536132288671625064970492766616587338717375723249602440096913967058737838707019462397873615329004649461808365404395459635578432486525103954752141297245001467792489158805730069490892545501386625091397338719429254046342508247671493589264587550561466897993418336330400047165399931262273557862085120241549270946408045293473813304734130925401173121470359114163026314757008475277129924869007892659176392758091082241638345726817393495705563263276218779901569795207105411871144882449841634375233826012567251009028732851356364374612122777424366148679562098289763058995640100242395870099481743931839312033208261123182182121349828456816497349793257821363348812888249977925825370851906205971351168769021095874238495058075575102734377687939174817668001552643252204505087290586384407502689481260463911276920476189780010886670236068437709004460358214172315093558054182067286659224238643150986951513052159796507154291761450294023586959849345368460078072598867225857515625448556664956247462396124512439253078534408516920396911569352392267039747899364067058347118357341525130666436742356873455469816962892065818291551647406089474227139128446103717664208289975906926572849045713119320626922274099413046342855987507392169452192832413220136982930141204179488980330729159867878436223066909045823909684830695189160233060887577348432890553816361077753732443115441081809589003905411765896698282697983554999224958133649426109928043703722515062097820418562817382291212143894703860466218081571217986347398533138760379982325597244323837289480116696193580683703648784405956503018766057096157366694146517583412058154113976481821654503293075727422243846529973555654805120401413459773143197601717433704806950397443194734953032834430705261496245660609388317828288221375035660221495989561727671289102228846386153745476341428007704880640254305207731579574852644448891824458273049485277906560861868334896458980726544474037078093380827611612500305456311223331035480549663575750656830326447289023988027893927836720282212603624235717779512262221574421180129433339608382709850790876519987829546483094836412290157507103431289154339684600657709184161138415345349669146381526017252081674329060941340404624630651680658851491731138753302906868237580882497829203446537716338169589129351221140250619659045080110612879102459734770022836239603135871260828731647456200023944115472976350256180780044203503808144868386219622777691128609775935948403472545386234179151719310953975137543583301598761746190005009477437277892774878774691454876589025088892969503656659795314906189890452807142629163544525459591061741997859558039053078002412052461045597219411501893291749285218641909562211100640573017432252483441932723722804214723624399031031516404190464959550423963693386564494749717329201360851610440917456518575692420213911196615778422298457777902557020087653679410045098370896604315192954232488833233159296665118042386816473701642210210996509333207998490439293225951435186026643315778911479877319301259351745919891956096017808070053247059132873589898569016319971917778114703023671608129884714228347961563276303489601135021554094083517762206637214490743318117751373143412640985814707473606784556846235072960203532680840684521946680254767604319670346046555655512507368036120740147565553928965224306858785954631675380448407506445959678061445726292000263176942508121298415984607428455127738334628149585920978896240398850834641614164006894216369038561037970220424675480563563344873385636950334896581518834339480288545500871437184616064300997000741520328817714941295103258371645494023231545811894012558750571124754902589251177843375049308947073569304554874046943252368740008911483196996085025807083874426353697718941958109725832554072283962096750089547370531427234451123111527307568794378098328310864043812048182959137429555642641408495044767812508822929810320255948415852754889834190575992210228453608304793292323309794079405599385447187330677989297175550637934057015050576057025805824788591830586404521155592792515180784944129560870614891379228501427834734847239894723587068375473946430500941339822182528248222684530243388324157781468322464946464150466392178363668304277670263003603891004800583832402286380051403831938162990967659697010450054739092596174963406819508096031697721642521450329847204496040515231663475041481071571791249287055482576981558805056245636076498224313191877742706111803464065341488376012781129064214441820441425011855953730763515006724727010387342545738675689187069243737683450024053670222708970025432307340688568936752475939160015668713990766126255300910843519996410855198148648043521600375184416937724478639347395898936686668062539685216996523903983077558635744089292697430191653430771075856624462077304196897534533444117213060498495661045917072859301974824851918723957193286263040771923570460550759360302414995486781632636640886701673973300198423726792060932380496286769408033567606952454851565769264474979661982928171859317647158639644844666150003738421242202404612001433187090380593941267651114561822458388376898240953503740266986564749668965710485148661483588490635239354960533776890857868120507576536749637746212241355450539395598710873710961665375056150982982921559159831982337360633586566881850702391345578093805158038549328156709724441165451100997837351066445770389087566199574092863631801899135605000988421399440647912281091691656432731619912445157083988346713976711094256915881505360430205561299634921215103552558177703125277928976802445888896040602825554238742278228056961198184081890642152330389191952614193152574100845398319432944974669160300114682744930030882912522111812003758676648028044293182812148163802419021174373869960315007256463921676229301934624724793002123235380376030427465316631202877381068959781725297408148105408398386187861371809497204599333376797627621202393240769227778684511349164131429057748531933907826549719948767774590800405662652689575646464826502366180189718269445733324189318656977655799138119953495095783379924650811494516648283774431252565420263649011295083770760327602538648113173205035263437517587717762161273530649025505304286379299001698425649414411204119613070029408193120994948464800011954141800279406507005264067064257151490574459631756140335656700484402655749793938550291644564074763293799102220714002529272622682726210617015759309476812094983479733781523155012594535499023460140700094124785797497602055699044089273495761760328896297420582671319527286158780173790707215235337251257264693708418469408450428842509738936736919106866863437870514285312225030548336610410726522753848109680926059184770102277806591244293493233014812373580179747523337787088800255177552093174111565892175286754642734520570521376659549757113452070412965619859653488044422461809549727907314930430389824238945653592291879038536562402480265371174155232015423531987959220400760543574803182008148748425322517885347189356854564237774050843319034936757775308314076430546826533432509077095230154955248714022750521216645548271334154567114295186430700310165523897369936391957565753848083373167290687675182754658717427148541520217375960630763222850859393916002133864978951649257182997780356937014355123245278860668468858678565212696411619485822082215670067907605669852410804045035211609753812024877741206604684897865844048663807563981966479333606819174995318292112146863379575261640950381260132473716582053761767199362219869410886142345056811312012462076271290482285084787112986520823652950505619830532098952654477600606818839828410508219142209626090509240527587366485458950845508101057683827424420439791477984225399924721964099916739393576962393161904991208575620116675608409025602972221053528820989173327227759843959302848437683080601279975336788648278180217443913140879906899741663615184665028420916864353509185111379994092479621049278647241659581132386347449245088937737789751525813546947299029220086314024388868770514860408085064678589859677492325633913815537654303581085375250743652276446516841278853896379422748379285357541152988970683925291488486822126041635478378055678807763835280060416194219807786952913151224009739247436941356652172713469574880563280010704254408233945438129997062593030846034535446969749952120257821569225520404290493866812577659130191358542066567023311108896134634039439081197664883161473151214579554566624102627174812220180559843892779781102621719178974744701021936370731380870295217330620351100637351814110367679610153978291071747471516604761273033737888125231804812871448486196696925938594206359286493964360091900748080044170569810296708886430964749168959462526295999875293373528701125648270689591735726720452855865467541502662025677956909017020583314968067269502000993563137610866523237462862754461676926214091213753533532469858766143435311637171914062150551323813074179517552961306260401999966877729270911134204572004866069455953234307947508526986610442527778296766293385997033612642232484508197422503868047708629402924715191439855553600702836715242821541615409993728889615401292430241491564150369537572620757568984852618290894399662011075745747882119577304268917055439832924606604479715507843070264975650325721902644109545412843993522333315010751006375678344559882070654264370639182447778332368574298183247622518114636296345748195302660023031916733338313647873270215689331585332480639227846009628046337327585164576990229869099716246966656485305425461284409854083488987845437723961441436768637841823472654459631370759320954901545557311204188568212289027464570505048253473085287971457835374094192030762067904206649846771467280216179731684017955502212070089687225359652438622045330719329886267765936963058136613549101937984642482366650135478766469417249036134505425452468655610201000939280276459286008335458717518985431255241613788105273155019270846565439911964174777399620922046059109668670378430880465286946212088927965902375947902524281722128973629529540044979453000179867205643401160981506534821632097066252591068452432325843197512354450664014049633498657357463648464203664049263256052348163948504574472901995062262601689299754820070286172181350518516630907532494912801957200773142012419920434371994652257475459222849391088851598610304266014584115480382910976514600631059960807017923903135307349235698639497605541144662047035963976357964678447452318241361518900924840968066617153656268422159026877381178467560273620095200725464515062754844871082052250410628463543665432306955321953398007984217107283784445474059529998048134786697831754094206289385214100873731442435658071930878578746025670482224917703122973558574038703030298478872159540803265699556606364170596183362837331961819937996057770791670107841160126886262666803631687734155423145109291268010159530769901085515937883529733976775753349129707880584250100855246252901138906971916711932740764042878828491093940359877942461006597056451986859307915166649655790558606362181986364335389782883282462897733583312454564338841673076698668890977770249911473667175865272844695358591047820712776504655910809355431790102056497531656897370809551869526617952414840350733949426516336119683114631009169148207602368273494347092074259306596134538084127876135957015947393132570358360695635601180572072502072849200954443286110672403813449408116967134572170906634646338542072547314444151533521099361062874133013395613725522579402974939125573086277078654279060639284465519254601534458261120460684674939329507476991815911853125648449806307071806068414450155793003944118571582931068306424794120873927718430585588260232256280382457705450666911788896097221211129697212877138286725871501294458063807740420532193722663936231334253248421090784613596976398135213643318793422185548600919889600400374408084506113261638217864740528725742069716910086331282446605534407655150588023812314495494292979670478200306818400669848611445806422059593427160943026737472920958660933022804401703528796870019478697320083394056131670052387388295291025152565837174723880629607672286750500868772359173604902179061419852012838241410136929127797605509113707873304567809841060458140762938473718149378973969391456926184955586780995330736238181940183432606279170991825678139777723548297150713783184998017162244085073474356992347880633385222615239616934454798250337686203618182869523945899252671034693386802599979067524637100806897423782707241811114761045858559884368556059248999826265289904201538660514764068313922452407016299183492197179609408789257585423691934588307309281482828013893952392220578444452293419975026661664258537002566702657685019599830386748014442926984639056242061922674156105236563466685042986983771293342132277273393452020644847793782991503561548088793900775520619432998228199122252759029153632580456585946029877464386740373441934103171913592062759142279841404118566683012020592092425503084248361559678710902208876144350920642144975979458144395219456572615850809385038800655901895994109418717599959565306394697041832063797452331386830216272381692219653126068438850522772760146798148630994862535385637431075947079572025193079771934728610383253925568630876069579972735926116953036643211055780387027157804308156774484950504561147254348299645134393253281153948171510664473162549827503252407538214571514790512631904640842360260449466639845956283674431147076825348952490688199390947756938648040901597951669812610053935521850650664242382625324556001191674607560563678170045541830220197324300800580533785081750154310254686724930644872528495676684688764716333705789530709007264715856067075808857312177719679991997704750189810046222418415103680868321143878348476160207898357308510232355426119319208355874629707408088418118278746581940563864507753598152974596264973194541596583469561395491658579981068143766207512849196197609421557512133193902595222600421299640396287504556462324696412074508555419520356134597121491301976496299875319630285911384454583892734036238272343959207029216101949103780729705207188408101523324388403188642045278626060122037793361625989649300253337779243384202102649753187323971942994889912781738552572328476253112033252655060815157725277877003717536364262189128472993702497456300726896155806445464559562031185829963200895215270473695472983964642781121087985140752975718004893205871504306603632884847681885545145704194248841124945595053211621399536123290602305057042842258838804122756983340365574838092082256740893163123499225886725577440635732176594574020983167444469840205892908087108836854830154518860385618683137296790258666365459874443793416464644913922631189847342663126119374044115112821097678222458150872808938724943291641020217940367901459020833040665460718915073689979790421064730068302245438068482297009518427756395167824363673421356641181072217913476583356476825082216879093553670038981313705061728354249151805113587749635387939861277043936254148905180111298588842659527101252958449111217978613656477782959940122473159494762331155161271051299639336216226103593957548835047534829769441147183253380013246786200122362556122844033645966483015243584322509693345141401248833042310758932403135743273165705621523931100846902759066722567156648078923773599221628571549321953657578982657284222193949122706992161157208318947933754311842726872613881759228717809421538694032660351082881468162268191635032481680113490007100783450236027202552044997737364024416329121715612339972787995040007385794411061848466417088753302473907856269312379393692284666297777822157059699820872642350213809361111597184513239867476650268219566339721430708740548740977722880756268241537238937080788220914651984648887609263148390382522866978791850912287777487395645707101079811667640284545862639840432023315110129382935083367693512861458163373194013847184737942503190280358814547591436192235193747838456288963188527503046521081892062070981492782294960610667046526258660275067588950020056898859152544494325027203428586560878059469765803433445525904910815366435177634893640266132250030059243416892075095377060309051689695707519483678068501894742490053615239991747439677846450825760606461698821038521754403501753354626045245686360677952532648159324848401687375277589610104374501411306668577161224744444010351907806867981313641905471948567303056475652459598186690607202660625790114144349425513775708491606213317270256526154268657598775770992437533231774855934714956717946814940002658773613064554759530294449847287310380464836539012064980527625883729611262270718074350952634489186154209156815062098685402145686130547856034874153523695621393011769033439974098803350652707848607602001041493121359928070531229509076961615432676911338053713328859829288888569656732817729523741010845373842874064179352229543219918481175676305071267206857047615544490159954058953752652381695464239085981689758858868286805592686805325464980024584999637455088890407200738560758264998806016395549430621478256223968809996138574073507400721280136621828481482512146868188599337358041518167518595662059433460952473211480718123643721468394448744721201322713992558105666221613408008162180232757980714911818508287269288626341716264497623324341997469188159574719432934497744847622152454975918248422023963263522114500671492583101489287741708565730575957989688791880880890318333027942171396198197502268932301676862204818931610054013435141023693850320377530718720109443273639027376266836322068681138501752006362002173386334557297090869820241727945615594180195286241286660792578556782058693906286192359283800301271690910162236940386927188375088990451124944677661919035770410376480629029865714541121735127305771684875247651721726271376387021087051241395223447712587347290290568884237142213834738650946652594418805583521514939567813500042727120617698093423510822125830729754703165023077788586167882034589824966170084131860564912007099517693534684082601080317587479093862675866545517611351790222452370732935773490642959073497534963733367109788432451596260228524552502200368377277194459789369861374914977798751771747419631998217149672043174569807285912368711382692662945151503934920923577853613006882523072153928486148271297927621991319365090335510782438108231283211116892468204278896739421264851588717695887893348003823086617124806501080221387505677768510360930180329144797480165414551132340855773647600722731850581742753556548219291513136969881923984191759993070803576501894341354037805338768377910717827543801980775810376906126078355888791941213375308010374178566797393645568045242970997789198397267051833549931853126014341742645039196009910158298803206950265918130003104229175731404778745447579300943277441114555920905619411285203462857074313825923091317974590117756262457980212027334034080351724229204397655547430423901514878688452316458176805611510464397126450501798935140147365648053129775039162665898791634377700833975539079066707494270635465491025038160190887826968437087966560918623209556004494648458933884024271507888412656153005233554599182095435458639348335834474273496431850713982188715794279005596911896728213995222636509703021957875513833416831722318903203659399411532021222603813206582128085360075933968475732281175395253418095455536077875123562494271436236247967768805153921227141089282856371817081998506579477562211018304421079800815972960313587653105886515709195817344886316333596635318160751164030314146442268052440300093784011351415511099622135775850729277913492376215153942761497133926445823435768590951404448652949666377112449705777828793650712094787107730321101535846246551685860054069368453489335174917613775168453737401617200642151516102920294668355470234304855071624989220344298924489423809422827746732269377549880412401968274735657977682895155720448518728441063651973988965166968267319316078082695009756491229420964251234624944391497722764662119971767641096233918493006059979131098562350841510314879946170086822959324285239207999526111944621085872962203167921828961130076198031354505426352195165140862791204519374192410219866573631703427918114286182491082144622345605615637705859477691357464600997293420733108041393387767602592036882285016909032641098843622570181695032868333115025945634803146355388785179685265817507304678091695815707534195109368015540783386165989615351616589520293891579006578119959600017973325607851404502370769078274046741318040319628496395083629727102810906739293922021718598303016903316877540264246021522386013332746850796016571799577504652747204895415596795408932837946830690131580705870416873599007457572468367382982791834625126564088736276251679458837031540754210965916533347632728306769357603552310956672464466658540562148851670151589115619665328410216350157460990763250376189160976195898457330205446443802053623104205890361405866663290386137282297354227374307033922212188110781993534902481512412836606974963306658272899804058802607405235641225353437034879635402069717708007836239424228852186506418661549743876078021613095852278187214799646234551860663913903437657367524066713103534570893243316522140267359333002544763096228725476877935064483266983692972490980072360580703591344970841794737480943876028848178247955955672378591606894767630335655330325443457963597925513325783178853274558967721905997236054642144794194977677499935495430989550104076764957712253923080962768554830326089289816592985440102739799489572191756320068631851770460712322887156719148825883327216052947482085817406866748223859592320498362927835376665917622685565705386719571445802175440602853558784572959246461336684993596567312209090981935892929484019129614343032235821947386453883204816040028709034792547424242255806412337555281281831403925583024155689198030721609503834598607023369290184425816394375020762889591552788481542543440139340139749452761623352984641688824625201584594448442640656825192000672905136998871492854805093489141529812137629094470621575022579765539130499131368602232664372529014074085680773175209070753745922328405139656349215058968606889609799409278337142754752704246350878631130689445214466898476094387127830399660200830381055511641154467945958829467428219207611079148492191511567153052143746453003651865056284569889080941485353773167208203153928248370451385122255802375918826754612209550256201383784522871784053806162686840714756007467443110001555731163147137386394684262150607731538392062194217627475946910805327084845633117139509107388506270187940947028292036640719234832828254595129436206412254146003955456690137575269657630164058561953941799691224899917448011176807062832756239019926405094087350816148371349812312383080201342505269231768829087466262373315083369380732475334296473995014563279297652770171531198343998131677533359589699430735436726431306961376551415494978540633492492854225889596930963509317450060419383807941731405616104667767047492956780545115085279445406934402257098089997991692944860473301633791217931497177026163958745290429507948580703307778695313506462947312205086416585036941088749968739221861204571028251035199150009661983603750447584056035643141476200376868006239913052937054867296732433943370318984470727466795850348634487585486651421648188665597502040410445100549198014847930438869419676849346473675194248106419977389488491223694963971505539293360886845094214910408363437006035997463523781805513113785894964102681332793025513020609093200629890922568754196539848171742284648150977333204174085954521256409603957736047908968973421529260403705326220836606459114434912810237371464456410599435680458894587444573420508753494590228686146531094146252026463279679228208093974873833514322362725868844946101244681561211067287100250862487288151138477756263762522757230296250633787816567719536633200111140251692562646671351266001676891402115060488700379804870035506880766244992840841522647009478049090777962688034643076970476099456625491969108125350584788025457526078116112285005883491152698186419901655768609504216808716901527923450134482615018307061997611160253164003188082633192302645592278265164788063272529043223789594756618707115986037608846985268546514026918966637146160563138936921610040541927881477748388153286470321095450276771477522212037334305470891512042480589166491773120308845532220348910906927283408161438925728200624156525963474932433944258058087576128777757494164828964424740415860537468165415786739624404516416021707266587498330411807688728167811348851551844867292985982799223003604758126020030563436497170805714884683640275733947312223790454575827188308408403665714650807463427335324949254908296712241769674027616638061053242477714649496769861801678516758715501261335963284162630292515575485750197561499480746434954580246770872120309682165258474738235349059477553401379630076816018836633279080692067899214878259519426997085008452129673418058327840711320722702550967168216370722140158846802355973269616886689321871172566575743451470335359983279919454866465539753237865597723583648620591136420079094185375701109829478852601480716920663855799779392897380647683436349542538311431577740757571357780240054799155123031928715985677462338691585237233278318868659409443753560841342412492036805577059344453689237995574245578704038169929785145819065753157052140784127540873441400984645569419837046214148883510805239829755224652698804851404983993446845284648060653700558393056977246698118051348659269782630712103897207153879180797742576229994162773393313168309057413692826862522572175160527144423607065603188889458185749363205098827925303704604268109451511046797949079822532756605286948099012978293957105139129092343995943821772234390191373391452997014200519911543527056241027818431141289159596983447641168370878894218303168685275440262040171158144399840265431703443672414635703961833044663865524754638878538381061646576648862511137461542023223786769110539244028862050841152600548355307977475070289059680541175613637700808068243235259869573578714966279689432400890177604199796802069350078204646110954975492457932571904247535547918702900800170447990904693379365736286589042639698617119275246728422491270274313107965958269960102179643298800575445423322682246667949624773860213771264811700180078942276813452935305954540049490023486640291913720585378017351484534923785713772248184480082125326927586675145503881327923387317592588683701663798496844534383747228187996767038575085978050752428632744729976329465318541213812333553967917441869811898031125851415032255998602472898909009954343899394318731700347831990022782002372649713529796433329813714847624591970661019767599183191192709032661046435341500948590996149659112740241613200691559201693521271659877595317792416795134666222401018098996660526646704689851126846609774576644078132285815017207146620909485591767347281829326862638661412580828186502080386263008487992791479577518100835960641231543364548824478491685533117696267152427793221766624188271960449638094028067609461824707556402608490588864363371032329854383265240902414815171098014603038947584360351567365078872788715322139845345157743050210913802110715700257414254063963807665663274266332664998264177387487700335348105137972848649320079770734622188491416764478777136163567113240915799129135086368977613774488367909129931567588248350041514982447553284672530066316741448153330561963128591744134197878203317845606869170470236521875177692673886151832862539754241292764120353788494083585417947010791919929890081507037205017254885280133722333075801789228545146400623398275747740040570665468644073205888468517081950556694518752316221825003367781716893029900674506579571055862525089083861502982128541622012622468213369982815466945017653605189051603936703108758778563816198870297183329170404154398828549018688357710440719238146761332062781355478414167469319732922402445205344166155088516532196230543904479719283893887936131600849672102944153195258359531801520350444028396693576532283363868153141588149633925918339140215055893145037071189431872232801122180171758327719457378836691797084045671783525870158759384431815486260335301705639769977145299168561440033876845619886030307922681843324329985025254511273312098046181698022301704121024982321767104451735763719031211113466910499240822004175166823520444828749342446747262833490042659015637006238584318913980329991682276118425400644402183887372282267901490689543008499039461332740532478983285328084166141751842939758793019079367884019110791846574126645203770136937576300310575050111008668373109631152681512291568696706645681742259076197629663183288817574207010354757341652962092823605382444553393755561331020410847540112102017913043661159441835736768496223533724884346968560722446132937514352624225777030605402219216481993898845230497679357036118864978183615274475633226190000002257661938780323789955276070270152130220947416452560907702402309601997279023059568928006336599710217591549910195870243843437410512393788372685762398930747638024849618094973875461136397621236965215427287052587260834837785311782113138117128452889416301677580863499427193449775726351758936088216841681118696061716190352607552078666193168593528789533666667429433990707766652606544153359467483246301375603716567147743315705883099037073161704575632952627879375963014109969044117653451572018388493044155592058863333527721007656951731966642171430513279411062076652512633979244029962681293526306345876561323508946843137259186532813826459566629180369225680773822404397274336685234461774548305893928515053652004872920113968875464725655882319982713315996316679617929997352068427717499697292446341012729823686659130684895435526185080013564408040424031357491593725691777077302148615187357419035857964816011117645825521901767075226542257213698006820189642728967797795688446945785205705097979680057444093240770399019389797284219065906724398615733919012690558808665082098689576629166338758931174615808366288734136999199226995179978663049157972176376684391622756749839567152580759835614621924111510957666488005953907788327291567277252748762770937946026464634214731048704790740382713692990608032694143414979043420269048020298303701915324703653017781202540019573408742478425237194600446480945282073665495625003190699960484461059888605222297206767769911418631608160499422388211673901857601738088969742705597478879580077236130407895917831609742907058798452902498616106324034327702259769072062538963509635280434941424651936632768529873608726157850237685011506437643480109895722758492642623216071940248406537557382224639424153539649963136986287746698349102114109566477159447116214506087609628445688027005500614051781699209819005936256803139191783749635056655856145889246816924755935870213727148797318026980652027072796726578514469626710342480025435792996079821521961923743576426248943943161342065704297011733485464716940127582781698713876608944577669938895726732103549628483476387646333270858183108086424901260308468861430543841915804378324628604280899476297122470829218193705949080645611930627963391170592055425640496443106343520712492065236633115456433549885465759615921501570403583763348917264609616701903379391594638989385696513661055834565812561352956242566178791846852270023140620195961833036103921802603684709302156281463244241784773138310285431204975122675299051435431065222772304819649343105874322991299876205241595771464179453759498373810639730729373406398649529941020591794689628728880652614725710494004786230776841143211131801432965099617839597060769298213867525530944296057504489610497383061508927669255859869070379825999250964769614876245520556826641979766138094051697438842844130649496645841204232534866075024408188255643867449018070914424341860182278385873124507866828402220978451247217210137997836529514001112420055793193060996071096846057751718363294879234101483976998986047641376454574189782385635741616593541415510153744152349787879203075423395222031673350706127169253428346459367916087164966544655704400117072989292084914704626436151285389983684306633347706325259710398411862794029227319683429403144611037210240583994182137214898472437822178581779038091320659762066926677063599058545123221367497801596798809484900560092300864090858001990434424579639216792307185542810172875165159397301813534705356782844965805879232780558688004688851706321946260068609707920827815326627899031096601999374708253360916520866619279163624585916863847548785887800471082400575949740181545918092973590409611543896505619103698014490664315191106138058587660528462200632562792321438983619333254897590624991186667405439539554307020028088080000570644556585710040855093417658593235255374343204572177890332512338588188263086453286976077054374692431544715156735354498015393316315679870507472631978368574870708823678250911836662713019454516494832609121331277293671755292836742900847980028892888024196710840704997546757713970806123010549876475972413472716892597153128919246779143644730138866937695378913919022794328483081255858265400517954707685518323469868351522051212703624077196269042288194415927245898720734355861725902149107409002967169550254025589861327006989498604917364610535335710213749920049078194828902437989608923930467786803784165026758899503324025298070563342393278445940663630974870234818615979150319908605155278028521899267751785687404427285575991710190807277747983439411877565452787233540445352156781879020709676627080857500990592302785445967421459152764795326032786734947053533591342845163604118395067405550970829247868354408753665472111561211436927733669897856257716442911839792033629740871333416742021717838573141337824572610526515744082352112318744190915454114919068727886092190344133180531204869089821691215151168395411589740752557761655377680159859693705605002659196321507951427096338701279445578436676818858307876359811255466751593711386714523425957497443226252355298672426385621235078869678082792704557399931801393364651071755425236314215750945073709727548170758807560372607179619239982996921557962707121778235824126579629567862233928774387633737262413459038841449508265685161045421478509184777930834306266152764967990317906049130934968742902097222843468519944369915363910129215248432083047553486796766847373200249960209046451631651330341212714283523378876994648852830097505209271694747587519997350172774032005856285175120823827710554127080818631411332968823215771130406104343045297305915246975019527730073854897268208468411891822536218210932018247220454524895415539369871177384864942455037400405004582595387179949439133672346828004888257646841991770526127458187095598804036279187455813896073767272942178253569229468349884888505362504352483774555892337908088808100520054328064867301991241458223014352375685579936865383306786125821718680916785279738348978531015523538791921092043067633592107726696140599098117176885567496961078124962700688057970764210750641969928666399121451800841295700420920680796391183522958331312632727123988196520268404739633745125764871074749128868030444389113647485046363148754130361934669261947711891394710436673016201575181360996640055417293728847716123512874909680424797179523167863194923400018528402196629409271143727706891098714568540998130012133679214050439976289729066955037718021130189756813499577559617476052873876271855371846704799210479182871154451285280270334922755432326723285838292581233096273683149241308655845003600678602651962947472570636401122890473129598579548301818615758823421190284421986146893174870208746466839347175205455865175755061841414819651018485695619361165387728451015104815261445194595052227676846077461336630085206239998567871646695712787938650871166639290217170371812308208497361071247554935641851383294915557363623999293737627987425607276117071986746591166493460606140854332689787126178261727543477314805394210092926599506466125430003595985982505494705354433217351518990778947807821053975033186851394922653200200768488280210658536218297770321776712155551003484817217525846222349349907481943087323606687213693610271653023068603555853805562907164477253490417984122140084883204618083013315212419159168979326946944900453619368030521159059813662631157314104560611143991735314231256610770229345052425156901963157930725274852290999362275107045344186651925728389030548939820168258220890290431381503589902036124554454281919780961510531580558965890347004723822696502755753841889417114043394566145908229627447050117638637182593247252596722832344018367611497542828013211830719794668263202339982783885667469517125588210074655468493838171109205143257756939598279857310764052519695529822307254517386600409067695531110364721917728925504824943622250773499358039459934294084300406050852142988213321681773383448581733838864944692798329133606933654433713821562542964468931809032331599637092860517651767532629314577562587859546811720641096174376741044625214508026398209394176006507207823270632017378874826896628436905798413587379690831458768478613797616577503266083321020986519616302209688426165306013181902569792635461999615541427958635167199336528562433993965550396493163150195015002873579796352974069526741500831855933290410553618007782954887811147361106447800987175997629574872424461913656006944951225622920100633111016086327389369511828083084571667947670655519160216443759485363703763071154349341460373902591064677153885398580676791117775826499983351305024666330457610077011999606479792055359889670037966292871658094535211577026594242454073145713299167610341943854482373904372665263441989658710540003696517119824675776350544211216678174615239882280155514841726945874144118783347146564200023656245382483743578300397669083545620202009096455546126139806628247995771951923400488253195866853414342430299477478895483669995224012859894342863651140011502126916103337940753430812924017593588497068190263211087194161298939722811963836969292558640229152032109045626258003430936588768815115999435845284223632770713880685616498653180651418971138073505053836841602239914723256767086156823470187295577719015370712123798795254518745290213279962522207880682861271162536661926868652915603245931406011006902150668020256088637103527129849429071256500060710304506069432460973030450520175232030108711966609896763224124936013232710475805589856722516200110539359130590415979804315752649386393482036031140724784320731676422290668356039400425931034441173662899647855112717162543075050531703948908533021208988319022486554225571831937174106186039521410922624832591296541646259645698729155438488562714235313770865058938239344128325509029753331015774445203924233472951377568772334127581255804731681298974103313759984980908397171387280509389657128966718808766502590211260446909010953593656513763183495420823542421418945617916301759139208376764682529059902347567204579496848448452813715466627030462487539826940118269358676908731053646254787752973614079067409771803819313778313582494171517364664356287702249634558257704911519318348623933238416235436786357106240899551838706069796076071362946760405079358926457350615703105923506186340275760676414335401560967472623980300014772970458917241955402654515038394264223631408186053757467753191041884543899404476904900211448320412029995466565224032691716781923905433662209874656116201862549995913522169503790933580201304847534316798296132359278430480812008472410310343434867222856325991142537494033888068769887543995051377822993072761371409054244156990206840954968816999344056912737553129255645713435849793537080269720797735216000236679165307601590800976164329388624913389595307644036711958018174982196003437442500035520902198466833843574906120766792181429197669332525051666268482120529834177329538352099065487812633398964235478999824388557462165498525193583810475041919034841926146526600461397006245135038284979296869911583029785482684099997120767784932081418936897514979166937570370329226209609322995215201686759961802663145061526800230396203257474764426373685531558556264527897700625371349190089812398753422693120639169147429388064738090736176328474010002744440971871766374627847127488979650878914217333547772261243580887831298473135355688618984522678978443343115395348303815651110569527321837157606678774058021835424605737438820320897396785490479160999480056440135417629246486555565647726399888052111867338169324184850642796561400735581360918619071933682122933040175168827875849855953012210729139004061828702205557315589401710621280603363072367718452780036319620998671180305654845330567681985070804854136071610766623685736366299184891830520724333529223022416686186684382563569415375215018416124512682412120321327753677550630323777105017261419419713552418244042799865064199543513562291314434042247614611844234557191229015772557381073865876316857801825073958812743332972747954404385815692164387845410002167442072368144069132957731945730485525702643117767120160909854235207451352758096464421178178396190657725540091788247914729199785005706711449598664633005409296530249658894552718563581065601204342615041319804850928421821697232023773963123185826100602846615517696641546891414119406375553588790386772176414714998096829622902084786896324968514199926206439421635860384515472261929750322228080436917698525999197508500961052365099770584956083980812620500273420333667032678258623183429546316246141957310458535603354759579555024022494054306485209623512085669900973216609404847314533364857938011105470296301864796632710265287598406588473481841075737817918760832957370215882897428954603853378796380539035096637695371658776139545091303675148109068165718030992327542431601933351444701603471439026706305401356220653426988847108357759919808191492713852171561630721916614127058960936761137347867399002738996614589549644928250846221145972022900571391974636568028459148413830750558687287987586775804897770421167616335589036881946485430579726784540251730322187109062362449735512403601029824251033725765437020588057471479897300361500283788110445033607049251956988091457484563136510453728858350927027187388576251578626849091817027144936642802995534588733194582727648514819682997255228125752911273741248838604468176483201994000869816193948784714986460366067934625869811404629745645625785925234946970821627852897875569597003217645131788911866065737573148844605633756658981472257394525920363789505099712693514226739211505546364688265119891050194091013661716937037915068025815066435874477556992226392561316320835761830593623746020802686738954067681795642813028067524502149626757049206027158394690182435406831327631722464497548868705072386776267314394911711471089534148894101042343657287157801483476416103371196551703422276182488916630273076597511312194803235577742633771040464266683389942677209024512021601656452946766585471877232091478755962163706593642778429766284160591134427957860138417126506792936333660106266483410073976258420972646680316332411665831399901136859795524329849081422371558577527250507425091393603896622464128409579553802873647315756747973902580981486302080594752097049804205689379165429725660616423745147947232821938338270890322172366476613177498914141193633677374070396884066588055364532049620956318206543102299415361574998945784048496937185583631336771096488115916623867442011819692945906505617213403666232944095592079964458398176440938916343932586105440364836544191031895961961616028909818922220477387868712923948705582788982249850330224339162118994279491018469711905507900162765097797087444668577750677304704051684993412467341454747430848474791773539471657168236398713482293827048558898077833081375095959997842474982517267863959374694067196245594390267213175686393939640712054296109861504284697344815353820628100422192154232258617714464893241978414557176275492186870735226452409149710104318951058194555172408725780599939941815119604892657013191213885265837792825865087848386001715132467217121280763417824603849669609134011804396852007791077554491483001172846108620254674882250164039998828664158290612875819525475114375911087104979536531114063072289763387333939313745559638443134647291506906768232256961213160271842650192460265947074870233549082432438261145147303036912753740744229641357303689486775908259176396598007328209352460232853853813271311641777608503577889724997335902773963829301870714571968589174095233457180715350604782227761912214535469800428823236186729488471826774976367023909482089668484079557952704614545830654350557207570088027607652365975641523668434236617619509631537181707870859729730968015477148487941847855714508401445972855489627603795418594668590662693614723054838483902826935797385257032162354604780984773072315697774978818969116353444493425706640197703474224613131918882677287723723104379853996106975311193540091939816586690491786267697275455065530424123087996132854703829994136861307865523257252417433443317134676639386529203795081019631971509298822989548143101829990118325551073043182632654449901655834207315764160395770402354358232329869346879117028433901898808428177070998975844287721262187263768750823652801387420155949135010851238032015022533301129530925489748542249689845589619088655240253860624721692485239722185894149769516214436619298140754806296913394137776503789374079479528241379387084060353651125575432502274995939346650320428275951547704553784538678154454834468109740735867912033670185457969136006821474527503442236763269090463494802320115916104618185205003389194108916275373588626192638917040770383490632110604168513510367584232471217533770673482278529107220209062642374046489568145438555342682373675465546121103427661686727479558436896704483600086927436422559232209780429330551518872207938726953830783313279276759871583633081749425943351710507725014197872908825264495628772373262343294195156244022166553323512137217982690119176339759862274849935648880970435509939745926864212057013211655079203900325939914159840720532721411918596488633946393958529166088644963219206438769033836149371856712398384028306453687823422884684045497020170023627767255616483894827885162773850579367127064086320834534317522949608606895569022973679905982159437553384005932493668138928367517526561405371745066080270245684995816528071245962308175674573358947409276339314435580617850342704894979645675217422984421019989630549865935515710904949260009133297804001787207770089731140723124157384701040542615862020983999825731161798805447690873079332874412550954219850659500501379741858014030110653970822557799098931972740117035339693910984011127396223947795209742409482209339747721156615437835164618054546503335132321085706928988131360840990515576079022261233724273970162328340534732274716901499209422126028709845853718015680150316579824183043132590718333060634479580981358685707101578973757442507823633188945879922913238591766848236789963054792035955150108272925207915873269646008987678386189984903571657997028676907932355957511396879943250982263502104500026087264958612337034994329335877938782579862809548185629751026688277852530867072066388111707535822428748968896556621427891848646311386132814306568232226206798863428620986805042804033604862390322299961772846265905258068673058500596658477662682521613854483328458201693694878812302282055684151823752020949693748107007127307292197087609710024110670110263336693925330952164979321607558679403345005973037926916004317185283929664452173629012485726273456558007261827152915048484654354556164942746367378039883347469080026724147383342350273762116735060836937735713144638656821643613707337524014199152616354553799673112022719997076733774803361734103110244282239697478099317722099197215798492898019390061711122065015429215542314170845771761392202759791239449690427416253950814129724216086428143406916003342340495690349369703258411361253491491883618901209391818038264755338597426090273395113524002987104036103202627751901527061314688841546668191502915440925894771375230684698840777210461592978704426492208265954975713953686036629205692896959869408934176103745439356941939061558792360080929093644618651895079159203939619888411173911070077995661598205090893669894376017518367706470013471062794894314811891168360856851445364682845763073829289377147008011225296486020228296971341934840783136742634606784504596936127764379440681586610161155740057477013882038872545670227851020162381385656982100085423305537423724892002762319237911869394661566608630981328844135836056809060809072275353211512487383486525481257228725469634888651225248765283271615467962119574339095580328656639619473555055283609352878082307576622916025219714425990480016451242529958970706839216895633638408978692202313356773573369734950120808899272743974941846555124230274490009354505371927512481763268709606097663499207081298931097230529286433600230569399138041387112668002224902646355970263864047631276660329782169664097647842015813682195902469846773982092584601181482597949463695671845889008844910744141552459499367308030269751346725640532924156313414637834110533618748513079119109990489738165285807027365675386073818060153201585094983710515642198127013806971066939717974420843838157199322012318246013828981844676617712474904650807852474338250141024513784243120629534338774894074971597513316275209985367367984071518579328962429275947258990638866093112227789946898237011383892520715940941134816633634244831406917836062196872192822326478087977606853352252752625431418787865277792349121598166837442251442082823976439869955904320453294935081578433404960415791199715290258394303000733467924982182919142704881615085331730507677723725613958580010070416590957629641554966560568236604850691214771362029483306954636724076292956713897594318438738685985326943715540427699537872276119235272525314474642736703548523748138958590824877436457412616507469656704830572577456229413404260723584121321598324698723289467764226480764100000239267985058899649702047861588202649017639358718952877786069006409775216428364293464593786842955644119256897729133676951929097640929126878693680745641959787924722145001096667138852729751307313045313421769021773128410770050886363458187454782181933023607089410211749621020036748741764790265827006972704057097430299585753909219451045584095794037858789911625857746240774270558657637675045883746633494222519403401148274616220267109553698606433333576009782057352469006667885390671209964225028829672251102643975906623752359926622005934532361265898666346272581702800357639020919144015304937648157341370008479625436203520896591468291201224059530154484930584358716481646463518865335912738128481160582721054831641773136813817370537738560555695293847863432194944559082391233422759190320700100624517786765030176267299383809177853932112424323241777006648846759474785787089156132111094912519797428358316444270805360995854071661078877999876813281738593194091568508088585684449105959223353121643668200501413492827943968145106740193700401905001830410567270565876843282894786812675187624081144927788943081787996045924394908288131644417053370997819427420465351307934667419798042799620433801704292660904300051548015429665328373690102575666060596778061170869220554797498372778994036803517294727193446057957218055423579609248509425709421055547902029201245420378409959646879995747512907045038977031450516252343558984472496295766345886489789254029578608101617875648949964930998963060126665262595311818839581617359943709824168331022135445814735993377497829725703719842588175938473392642505777330743709238351515406401270614445824023834830171543484554487881553360213371995787940999406781354320877984990872655757634369397607175279704702450384164401089699214429388191165822939906819322465582471531116825500183466641840343564457388352641282505445866069478480233360221488255969361271253685733679571565152447673691257273543034149158390051134628696189419443563828606082143717907192411694646233547035992839617106567051359463904345389826907722404690097287556364585901432269750209691723909604931921782325960888996325994392572797568165607308101743971838610946166131383874754081256741399593710468018170541521169274449990616399558741086361857361550165593791135403949272168105208363360872340240421986276222666764107065055866024400236245642009253527707220718632047341441808940870669640957611041564644404331960356079760846394395226924509576902128748622616961295998020871516954238664025077941396757934119591366601171667463382133398715157952950265170925078887662859891571964891608097930751207567024943106194592503632235738637746058246419339034639462962897675954770410716789177311847445267344283825408844129068363067211465427142102735588277428642990314569737061578303638697878173224134836039018828276112244410183388918221225702473394686663640059807533444783917115996955247778746191463011438140756115337339232170529459944310540789987380790802250428057455835771565386263626990419842022204389808235985103255294808072400124428943252895498001982095518756554525855152290473110140003812728248354169584610186152199885540332524231153788632301879785460189000166576144854132659233615302029165282073420756783419382923176351372168389669004902059349252364235057456396950468747519741010125037491994666813591347908866114760033503350887646787907293701191324082901885656584923632344062832054576589309744952606950572806443809024035018872790578271934698947900392359020722556106391572580097178897799086224775971146633210981683523369768662632951628048678636065063863507455800680644570996046742357247217769468953112526199986674052018185648350010551034353695521136983459298806082010520620835717765934297949547498920990750315048747163067588916505555711456382346934861129640046354071417893133055249238740858636451737874556311128893015982279340738095205746426771113435864359576124332319159681146962681450437252404568346685838768576499112304608235674507299650806163662129844444461399457238495518254860785468207378930688992261385259563759198437122876715308764342447246808833984457189596511864955468533321135845800683892416682274331779030003475775758217660828133403492898499898877422777431550518793005509339920894419350146476711994026308705300549728376394700731220998523434268762266526097353745857612635046745514302538202874695453346603532935274236403563874537203688598594755272840623240904806801031263796296330020120410316575972996957850167694884532299945788578009025678341520881264638029647261279205386538222872400606649947627168301032744653891440672924993236270335143405939511296668106087469964726657544659100274512551486304136814680005851021145902320312669300689950449599559145795449898913374449930053409351669945193463035279422018609151550329819927034052400500411079337267130775513406738300750101616608479427365623698673630264567712739085175061585080539419805364825228412422882663554670059559252570468916750981160286503461772351183122295071000859763888187126357334677987424034023974826161913661176254734508293037513788668419017473994176870488775488532192868784892048207399844425296450440017585810182507806358280736885942495129699163972342098971447228103138273227155786611081298644392339737034678887904573414172265690463825566118135420870199373699987620904431154548801394498693881237191411133172710328694101130672976497477181141764258284230764799361045715350912530836751594094678335270674738548740515662824878917638205277241633286703086048542100957563618412155277678786839329041837922272572310944311895024880912704324812806075899699855034441685847371428347093892184052093875763452212790694956648827945802784974718905948565646267552442236398969806573916219532788783942247888698479014783467094879355917950464736806288542903504095076040057870594544672600358726142679049490685193756646602167189019229361793465386448249046089406395215158172368797452795758600902505009590866101317394946398767321384622103673436211104807704428009565908908775232960632306973165238302948169099185059195734139770045965050123227440642043772171726992935488244056247826484401712995747083068258977227080701139332136660631534986502696297405359041350735789966125056566836897964507581768010459902679179265758084935821116161429112163317171800864497744147158655305368317881005579164827885133038891026481465622368957326060942018480671389336942654568859479093588588841783689870909986073745991141640904235955759412947169268562699186224943470554925252613981956195105535429844545469045272243825145220485882202889165834413970278573656777612557821002401942747050450556459439434882916028234312860481665690980238651300187684137821334158814393748810370372830596115277444166004736692134476386552075413659726993375504108078186587875987696718609351434618247704600503004059880843997846354638359715855106500371370848556277516358331211290352226454562588289062339330037048012940264883783986954960526465115097796314827629825509911002635312774857192974225728398467284352223274971662467247208525571946464514955583018780278641071087215453830140147350067194556045911237591969043385328248754411769985392511968475710592400698840557226389396257704037434660084115411689450738185586609577339123732346248807915135375072991473404295629950427532635364324617277844455681415269039116291634904600406249416461780433704484500062654120709392310820481839273446118914980167311720686740122697924688671720215880528167765098016573983981857519268662760357567233983135576429687880921084907521093986207494850711408024782269296861733936905615955160913370702662475918007411044751323883213022420113270346642301420684443120961626681959727620361446651972182723236982550662347218367693110979978610842266470907248062585578694210700583209086069047328307970353237497541179050234984650327568511208906312242099641438900745429519062389579885281171532402978622474253672188668401346871307705489865295888675031835418145401971259990886579524339588485785949070320191302350721553604134344702909001909355714048229596283446526156020750812711682737591565868184181793967719924413097777682829005792625956516603359903338066823189420676684606807169580380604941898356059963087191493745983314245515906319742419333449564547717841550132151432794338489417355670152011025989294384392255251694500619894824770902433420405711693924042623559802932048079869207902627983062891305361158058327040681876303966556608866519133519024067457952717077609661200830010687646225663824450180053791635476914034723042981529110034347834438962367731732560372437379200941997932373257561797435660203977734243018753508404665029082904693722565458288319574839311966976726552382474798412212050526814534664980773100985579238969055911180687735966079850827003300733034885923620329747660400044392298740860274663949784636163148423504971975088338882925401596409452737766344279553520397052586029917098249030846873240109467225419461278237426516386133713011613185675162118783366069889723071839226346248569702415681431597812578326135767174141339599175913907647429263356612834343214077358915204455632444808654756162735026951234666063056799355656614713804622008371436841056732796601528686265633413507450218642701115363696083364192512212652499008016839614081303006512838128915274875528892011838246369385116333404324956161310939216267685273670725542344603122622245497583861661896006506270969485284919875518753376837186871849217356559719637527002932953194562363702020619012702009802979699431477544753401935574320431593912869970329595826258974282110761707640719800828939182795874005855541430277343755453492985285654674047433063617431859736718139037578910132755239640709380304299851813903109912250731000392371295060745458958449275925744540820117999453006454532039173808529758597540647216110462555723042125438986012789580264758095284338373343520009665893097484045625782048416723914533211831239920551206001681246294458484904155531698416877973497222921590611121344670081574419240138348288398370875371081930765331450602550620574420161055843262341216253024255487432073465509957156477133614554632346867598044081577598631338165066012188842161664346532296517349808508970319184937553703481115226006900151880240740865829845168862140194655587611422452112609194357510163832487836562023336568513981687894644370207723842297247056323295173072414566226132134158072396107492591569673509872239210434405791656712179570820012703487587610101273340194065129261540169924843593071218337403637115945451800966441445943071657283238944051965743057166418376274486775867573658663345570971137923009445722784093005891404318254188572060566097617737296217735268269047661106150048653837917249361823556213693164457460441061312785315035997981824737452413982122189635537262362757936980992265503878012105086937444442016236221316370967320021502953360811581895733575121924873225176933782177674178458232817947402752222210437600900183964766647186998742305391826311140927040995778969611629764795778907311985885708574655773976250056216824305682951104532320122777202823859470921198762302157983986161057371686895851026937892192809767342338460909372643883332509777258112390221108395467652736869075928885926510530711416539220167131227178023994782053758059071556907061990176526187332975854630404220902721460984076114427669692473692043618458377643593324185778645605489495627698550816068673575911070037533402230438316275517806913208934384757844823153862303934342537210670016545225257046851200010178370112149395711457537475818558943368072955769257888382860189377918638299700352444457552519786683497208091428666091889907793406421927544980653259755598984089444632897902413550831479639702582436373321061749847368065826473586610228362339806231454308200293243261969762914480956641014078234674990989378709466510264883255899015116202559033017322440610174646016945638521381592622970686448833318994722422808838614522863774871772417162872634725461328028307067845547606653358847692470318299055302292798622919818756450454259420009300891556739491138715384425794279756285120846523461169780592459281544956926905203310310256115472333510507187663020891830588222751837298023770642700975770374952332862532195920023777035347398827973670599867087897222498816002594554091935943551132171594185782710007729588666799179903051051650222926580707926296043187455430438858259705522472062546381168426427587943428179993268907296411268862980003926902865857805605248083835820013820803135599179032985397241088062565714237445724963705998839002224905356572354079329809483045444260490828390199731194217157100550542340200922974885977538140888245851645106255219313054602221715760034070655506316087885245628683289749688599650958430199870772416333777716720901230290812714854724633465268974943566384435112886415608730623702510884101486530623623400567255917303392840066329842391934380773334731503734260774376558951385842575427045371236113925599605215151957235858761608807169960967095188778149523654339366804565460146440897341363048799199547041157869457095706091324379296169272415387163676277469608923408356477778370593139765198470474422284422330577104488482863421778333172500579702705700616141671831975772811826314895174559960273095485912894059324155273306840684193032765312314108533625985059464384506530753322613763567394529481395194596391752620244031993771957338796899692185041902180424679884978203982119546028627272554861957505843045124799694341254370848092702224259011910003612959889902089701115941503465251261650478168625271636985195476929918970557805808661376212282750696943350874552716026544368502336553968814370736323321203941852487520282713840932585246591796118035400407541832793980819916917546796697573291740748547366543733850922784325971313022786770069560437080081619923934424625178693683030917877433390582469633787036871489251558888115468449122485573105565005813800897621271642918224906166991851597905325862960639523071014646916027638589375192105725178200993910784592137117733253818759677197963090673037278403605875345706640326538098876217842675737968265389925929544819886924376983931872540890582258347910506409537117779742079594061855720272938093711199719726108791484651193682235495748256621998531362054398721287928830779583697464483461121842012676377694226269845436086654707340155151457128939141188490407982487099801758498646315576490853935823950404026368548852951196929056103344929477279357866546507055750740953939114212964247536502144035683836267188346073136857896194664575922369598797420927145979663411364851902299526758349696669140876292232669472646405431249507951835513692175653742845165004154475803801135854232864684060660521070703160531333154277089567383142088640902093717221880854731324129005430869112742165616006414288400258069220158554385820705061604761940100580955425461908763414354926155819572440531563432672741058070500079056331826283618708871165123882643912747586573161435156061314647309079070405406814051938533841662036188900034792881467804725980906207759593809675517608691436279648279039757857467091164737920096954745161716821474699013565685412654078906150590309645253980962472983776820441866781991218631767815445702947131189765597448850752544378387740622226831769763980158755427905073831877614728544059312675807181644259924624402114890477779609861538641937025657919243241350727079884159059038117311692923510665056705706729613981950075083248023201416115681778371692281237022476915117443887237912681513737266303297007854382794801774101540963827971850816441945983580090195833578417491521620106098605970593586808474771348529438093913075059843266865134834343867224630959870094795677805493960624121057435772516997739501185539016868882724851360500702178412433397168974800121478779587765565865959196385568581735516853177935027890901607176169225457073351645793966052762893739940029398534617135166282704193291019113898436942933168514131450339677447196938022381040429890513500629429588266568043392303321873752471044049874027029668041476658638688724528479466639782208356799187172704446561137882445786568478403152516868010867028962359897184783420989164205034221023992544448871841008162734311419152450134819446191091879020315342910434224668652790642790652187118877974972195614654869390246760873313793625409896404814188505595670267713693911669809802193792865679723370119318719798352437709183517156337992759796118139960973637616932257327122046731510611812543644715116125057001310958363623809084207781481723226367545369865533370813824884672747042183051092012439697273739814850827891344213839190773515781737938286702775115036287019764923166542025434262224183778008227827503108337625439687284854426879533275709949974788084885982586247329873362873489595597659285166733271610260589898604663132124274396242604450795673827004259638718584352146591623302304306244479551499360421015527952488676594610147997308698626629086900748069219659996521104923678103870954992293890378123316397510974284883559087156632136920024282944692329041350715782719147875372090998997285908301813398692677990056947279963994909926540937149444727645125234753700940626856334201634263252614792301350650947971642416457920188166649262642590063453685647449406595886090243487799216106709380679689571878842798861089679898032987099737193909869921720954214596250980967384158461218356983409532993062386521240826362729119306271683228957455283272971757493417949474826971750696903443746283008654433548833242986881392632619305288108905496654306641562419057982266076295165369350383470219295248909086583391917497536864092034072444283995032899182044663886921420807600168859952764293069350726716630024676017413069709397727497689011856714634576976461643437244226399434756301382722604431632556723933507530374037577216815888992616413807077908961922946872837527388658254067188993687449878514355317913085441081540853941460031143819786915893198140885392503247167392345494284372254417118745450110519305958965247824609213625196126683495657915927055038125872677189431355928747945180576836577528136082296804582358678319663499584227336260922294395195545794186787330602514247842762675599599597715349286890197338049856436650614589628181982305553612150443304778056489770344381215070751895927246325320450617921196733599001314233989794352123571008771878638666816770676132665715431790858438661314748058963674060058641498698619998858053281601281389669742842242175936237656117799533163562007693263627484156022208564287092453065713841090114055168142730742876673574246082457132609787542705832651287054889626688189283400102174285064079329608494596419686699272589161290970428064033441491804569518014624424961491030695076897013899199966286922763074414574253994300979199251105080237988603909591315124000582406067902564706666920210672197593655405413334053225215836777562683338175270557872368910472927011928629020740428210576983619544996319193967908914320836415904885542000673058622597862058180554078810368476212792140437980645299258682849916925833456891419656462157039703796830425532052656438453836410997445002000731556226645354437468465137667596243786176876282927188367002872578177029167095582898616194426133587417801341323201410608665038258524435361415943018604869673873052006211822140824549922606056951083508870961779389110699847571913792884229090770090864555562891445380996293609202421680238613065168540286670121026388508738996318616114136967465353009738253025640471019675847875696596476457329357524967787603162697806072631801414423021397663493165151919784505003096052938729308528849755259271774081238027935145816892732078019726461960129923871999179867189378549479133504205902891904507135772769903765244590005229768075538019115952477413848900093823917297853280117818220338424838879141020052078147778342660904932943711367800965053069841961365187360396931603624449761782323367798899542222489773736738008190362310144243785921185255734808244460665307904074482022165047449028766724231767109504917413664038259620532217148309863067695634210625378734174228252982654232721678481660614808196914346795406945247936295870663571860739955780898177369027971092412253033713706452252130728472627983917994359521569999576317737884911353417069031617767193732141324329723508067797119372162128618424708499455331190702066508005872876317618966214453529318686977759901256232814288248337378523270306048309384406447996393972823415891951512581208758820004248954645226969050625333624367793259327117827507940760397342277427225110940713953048614455442492150739519136190976341196252517400848252131483884577285328333094189153194291739149919065573126649493224881261887613361552817566838150893020324505099030237284478666549098121979180038066020020796918836334781300542884319072437253472917208336774959798093417412128316930672834719779068320654616437011710186075719013656909455100722349404470579163883510546531615675733524803901516071468544664694178460045552267096428291925106186989471911258270821735596899999966504773461810092982484155492926607637263115720825662997070126462867287848115823457415305768375181524509935033726308620717293186664485179166916964038065221762180492769891437464186220328238567198245159619416657448838004770026837574812392582058877191024756500222432323567691913326202820863985125525683491713910226993708429635790523419401809134154861608644804029102269038045828607293740947414469156796135516523260765708410476377634471836599072969740263438078837214180786709123923807314984340764900127042790630895663031717552647812826370491678135612032945842019433157802131749880697384984776546672224202996455551785472826168651969999101725891894745434412544755920633237827706049691716007543272855926118351117368553409322580598097764412678663664517817349740171185069199550842064613240430622801875836887935698053353113774459940939972158559809790519277165942716918164266846948548160805496965424692577441043417607595136601380378394886391166695651214662964529246290139036445325201149438990019207918273231541326535593439550406366388014305709860176588875659513471980475543294260734460155754197597827257740483441653218156081036907194864396699287614196447574285025527493037379810099437598985790182918606664663818065281456782508352238642161451195554987654238205113161077291915666814822938751699072475167176682683403879942832444390972341561047731008267442486846916428080919230266108945479470206687163247066065914944162936970658342491794212764811600611265672096986986227397384992177104387688242455716429710802031091204651260600909296141129385822759083052318954821172307199396540014916980208505911676401071742941760502665093414111040115605843533292662318309198205311204299955169752950525280533437888096413702443540371149466796858124040038551158043135631953442337071515953335821747933240521955628458782323171287596693451237661421668893809993591900647094013672110878239767206604626505322881570944998481482278424972364920580964239773774419959833383263493313250254131262066299545119960149688890941398116157831174711372296223862985722674218616089721855745046176225639452829450834744504908993932002458922274142555145101222033441708732912776361475283830771296119162493437316053221676887197288014345104159422932366263211547139558639562743529560962345273679981455058231968242349812442732337167434967005249528919143848516645800604721716759553752956036351678221773454897732807339361657849007231254132848297426777495765015971610931813928221352203668728704951942508320454635351554481871295906815843370320293039731729283807268536190614685609879301924183956055752069096318898907104791936205839003015766940919055252809475078022827501997781163554928606925978239827166721483060137799642992632130396842792058849993504207372051789015925469848641194355109816906075544367772502867304351765342414059692104047996438234229898742012316230320237221751659670981479498282614735891679500651002176776574588791329070609572100408684374110574605346852297616387167654021375357313375552846778117672305174005403281961717597349415280705022431918918284896302330223352960673076025179459542026893708875869248363746165767173339369696688665281931712058481770854193309867684479984009007052770297262924486830982255771097329503758305912039636534411095879774168420120631753950440898089716606372039655751283748554837884459057771230845537297258707343601985233628438246778350424620471113697321306916309229071960245770555003938727109342803162473038917251064581548456330614179649901888582071677729727241360269986913945978523396288021865927730471769970999415811334744948320316345016138961910778981156474107213280412147660979291272053127800123582496138694770327598936836462672332064701771397270503096161312298719865672973015581028415883598422965004280330983862797802453547719512555963894546236032755619878489022658609107374115816743878160173034068467953679085132119596423877216884284878544418302521387710869547930412867058351339332926436646962311235332697262273865246134452051977600659888444071217430395938587173497939960544007063957955838138845508532496484988340663747902579387856961347060091269750904340789525010866718186920660603912712484930821331588909667643822343218184908092294339691002570705062119642978784461033921228447028451725752049772677120792566111703376653435840918130445846129475870793791099314127107487841859499371528357233050684897518328842598585543272542597933898194750107823350624467793130900670670531790436070303476887143338468184728794005879013655947953244260381329314532836876095980186332330526558324328889670106375267242608682661490243101326572570497337661581041332712036016653327854944713140485777657121978713255053576437939258955853508132587425713921573839255768380680962639633322112996408644161925602453074682796442205090228252511104544371194670385038692870623511161359796938610395014452051211281162026026775867364073833322454151171220915932842283367724295223623033596348806622404594255489804285434258408439082592072336050775345257678510702264660352913794066262552010817070829037309517683355587901137463719934891171769369733533391152945064761728434550322682670335230410298773050515133210932021526368707393685293163472804912889388235638281869720733438529518569313593354569615962551367801097160831557905817877131386370595310332577108318431415223946836345239269818187959189347452916356288751214719646213274173692862165435532008727216329144695755779225619665705619347962952413705608576556353357632332914965763260276865045216964411655096096816084329193128471969669831601021459393723837681585929969128652764662913503840929845684369752498563108280937168088165335297769741831785640632634320338827400373072992713482694074429513345722812843770321624898657263152771801939954925044682954165465548712964631317657512201801603765803150240324800317122395129687928370890279141604028409102419828855166964172138071247620378137880665785769733085144305379966795945318084277635744665668786828556338883165997720080804087375996768731403510182528587742302871198524302285219455383431341989292866375894375707276372538908837216955862652453787494974898506692153201450681659631603999449076115754818706333668059494626535265551041803117246150746316441063040230085779439524453393542346449261885366578027844734250448054210866851786195787580529614802151637458342327836871855780237837226117706903360468337949902248361265907955988114043431564853867392780934162201534701063155654838602966173044453289971874826070199100570892807693830227071830529041441563816291051464687497726109436649835211180096153510106181827626733596534566835378231732283443853956288120510899314442689541023345376745431066075153473582905505174777754765633774959063480028321875788461304853320820591915219637627021901353310451089647823287005082601000295761456889339300522568036920273746980574473686743263516613361977076228758002922598136171298182273902731181286821268009421638178991302869642212350444688480307554675225983851404136523230238380312430977713981195987778330041746258168483618654487371410207993767181264276309343851709997677219427875294956967726610465220191460467261071524087803297597408170014572089567800897486596590167181829272184757053364048922001489366572086098305364170754535763541469450149993785357276531749859039027385517450759254771749309585352994868539741513818598823207936144923484152574744336018744383806973763687808921527099902358761119325150378570931143126766543420338189208399427926798460325689774640009214165688679528579621710556224706759562605871622632202269834252301633060259589303679542286446876056719672724461456888257525788738102008707726115061131811034892897245520860345606097849991297613606869608463899221845022483952598578655298393589868312972403906483505921543859263721435485275130589029202265719841778888093892481626940135324818217191495009801292799558526630539504731997170170792367804801602217221867806719480146288348145322904930779223409588237784245450117331041774134562344883010641631827737128123695235120927809917440677428967557883388803088169944811218131427491117311312155336207334030191701375240138313778811331619789010532007290194619807365785658705197351173960514869441859233615109344237666793751366145795619938322031613510636708746323303940334828051500278380061894946832491586377354438525358855973438897179951524578157835028404477136488367333876225905420239733135753057184026767552013499292227346063122381142915290672854473651638212175935653893739262645535658019145271743940557884910023961988986638688820709127835488352115080452981877141715170705511003494580225884545003962063430344673583792330409307523928518748081353531744654703448513528321338496179308112984286102967737861800781183863976177840149417140547964462905620464004556437159048090521364739820333161954926375006100847299173897882988677474085951017065373184095638677097890753836020733408156079714884992658618621504457770635740515113962936721704262757633360165436681653423940558144952695295905194929437402548679719285341682508415086965386129414752137429260648370559336087468851957944916584012856041128502863561388624422710234921268156313049497253946215509195347741725843150076747578676559125633452825635015951222473432526163912429031830282665976879792444718987600189392627006459643127578722389444076278255942946269545034825837451032315846614499749988158488148047717652846755677721542867289041097697146335425809943637571216969229462079654560522522880870680384240634194732998589574293699716571529104213072127872675558964447877039108104493646995334075422199725053167249098872970942672425717787078048624801446741571709530997644803789613259007453026415059851156806244903519616295089623845396623545887437012370619298851398424961982097590961967725962303751822078636594132604099346423024066843335316322681413185903147304511646861041408263600274658175236470937683174160284784765299273498326954508757226729038268993987890532232041423132695249499555832054218157938512164290633829319035186477493866355709179397211118236604523867559337780582216451688667913622134676448267520746997508481912620835074193091278745999047379535146664395219904969393648513845276156932492085642283097598959109995879318861347319566765027220058505895312522590031044609951952145606305383675056361964220093830253660849942557816036691772415146652306408483473670504101707438494095988266074075892521220764426964273861759124358582701797354095334229032770711172774939621040131329873735275059933336526897190441754297276555174567441278460551121893892269094263719965385067639728796456315821301533633554362922712645131699254017963134173318337805391609131365381662365653982861545940015881953517247585920449772329440263378334855817511677144986658094541145834680017007594213548894749635390311878678019735925271823562029601450298730823787177865707198462804065533277213662749869163393388928393054081022144463632737796398652435332014934307561241630953350147049278643233914299131434069320416705524098388923685331933269651623623364980731194824121622479642211387589501595871743629767768046607305990946924784502284672802175365942140645834190240126858135498082506568419207869820253876348945437039669229189033161479281868348918736484407812763255195773640502915480486512098518921299907075611933464969585515905564055488757221673657349192792809508348343739716990452412739886292522582689974908592250822165766158107791040181357847746090662729385441040750965842802419073858595909329713017231988742715380257666210741258077228571772543268467386593956976124168068181663106733442990923623925143969832567610762919612233147369650789783912693677460961287926275068646987330352484912452603708368767034684975118945138658163030947531687820182984891029356294061826908151735852337647858678560942100478791996207157258212871218073761955152085178191292034828363562085597949846575723050307276783095769245309322992835924931140063196744483523721592020931478323689725808669675117477482613931443934042479017537816521601520503530727179380886464550748447256048851525742025068945886118931970527248099320471311844982458585528864269046426793639946071694929582225076086535702935874348184913716894620166948833436547186662190053885924639286109848300242746299755850939673730265312702042113470692649709355862005710345761957933060799335690892870317518523288471350137639604655085528345764997611764504060528321376489702407820879659576584063128457925169782630340501799854569954676695023175957807121286088279317166740578276065000831995284461987214219589901279088744192078840615349504721472110081652717146291281709087079546070094303811550570918060851768021744557477787616658156529385351943279616698640574708008690825730258648020152864358003910512068947367813807722655287695471403177353837068259791649633981497991459551870551857646508602657084686549388402373022073231704421904728112463772629297953820254637638234675147256399444726752971222284803074509251511184215014705950221083204264981498679189155445199255783555176679490283679448536173070103816794549180430475367536585976712384847782326372579918976885347666525384996332893906913760909629630574170874270699664674471599168653922148042940075307575135917488568728896941926432559815313953908597491583582073664630948952101675981617788729825863915046319699491779610860795208810007192139490533437025881128689356015710204529739139531053097529123884870669063205063102533515173938216400119900085075693178934346645246826495322341802044516257999089243363964308635233531030643447819705414718632633885864046411901348187373374436318243778662336713646840602845287137598138069422587715496454322348979520179738894653311911068020207173826758571345434457490841814092373125609631378657480594117208460975640213437380128649074497058616892052876535305196446466594497887668287368524085452404512054782129790486662579293795588712987192166033182747997431526822186766992606923592176952555692936370383521779024695028578035364794562207993674371110780119508186298682570359176703947012498055606036802530576142821156321718710985716515509512641751579962007046492900415071686285905560975996585116370743685175387973783305218085251486122538496215083125904376466625066734102697767295476301557948540194215342234272483359558711461375810785437198116596811829635093335865527664366668282977150591786323091554318444192722656837748812084774330292780908380723476129114438753581701237871094623259147346100116221129489261769677348349100242722404850000441619997745436100168654078006274928876535876531974296374389937890802759612989494166948722954704564206363530327325060073715406086087336973814745387253278624199104205470276757027550382353741295187948437337216708768815304241428065925933755620102605575605167595842387281775014715088597097617740250569364388598338456240004773781761234848210638245833425515375788132453123645822266789169264513477723791795940886314448168216376865581207610347487759731092405196679783061745654983516242000577047567477455905061079179458425805527776112650350208516924901918626210279202351835368209754273416473399357554922600476925375274873697483301765462164186197434964320211782789662277214301748606924009562122727849489784231154786011214808627978552872697644323315730204744657235229490297654327027796629638811978330229595558647177209595574550808934445216393300432879253853817733794747364557864144068694374657123836410269301118769989874912823115192689040002650145909475736102880401914645092015251398824643217652201475842159846108228425476249674931393408775906462686934817123678324086525794148132143241171821710289874825028215321550789069196736485494319310120056937730840688179248478939507377808783813711093156419091006071082119522817089100823600189288564693899220706887707599507787037268604985539620509005914944199116949628298038667608890831352967039477313165065597746583711900478605673810746577669802423309414791571323910050738325131280740062669104556775094095273844502905833138826449282595413100133899285375814186683647514041854327849960863237118355996368560953758127277403467649386901704931649021869146217328259133692046667894497726355975215093743359192825613904591258616840941361901964698432347091907133302656064625936960602647955145118708836653502969842904614772345568102629652030911991185101093211922476380704100086851365133120167863805160967917584198092884188643010374606794250616072950834500399966707518649182193114013386238505721677358659157740977425578435426054756587373280067382110459238885971907653113394739519335216800503869162171126322065932698009146775541499306843442793609399684364128063741187480609371928187613808599940290380592347124221234971094934326206124565931496613187016885994485208203364943458543227872333969345402948715462694342794166222824586041223857137833995733720743855588067110442875997576750280299537763398579898026473418587256577654518673919012309748657095231013457876086180549277583735224944945273254490974068660348378802839377789274547337688412645902364172867493768686962355976773676860524772717248218998988415016025148764039401619044750877423424787420202371907448157163096173101590182012854948770887011140879512467553318509150804272899964959183862304356374523133399381860931796665753485577822314289871091679184744393355969034133884466675112475018212972798435766025466022441135229696617908417709582801381426608874363487990474601934550621208135174606645081080989610644691539612621715692322868137352867928640774687755611283973348421462689056203613641968406386385851386984403391933049870185562593141741843171745953291726984811840410561403438175418779167705449594197875441019135973357172068906203992272225952189648195626756781823684115067912368176725038786389276233667477299693155065321595425659267026176590561940654786581425912355317091051989860979197782162606017946366220718487513556557923739612968719528841156982903567663919380749923462748546790419064058681909288078160367016062223476651929177437347848091590833053200968015807720594299766234806140571742284913000561119639138480819608610274265635097655740509223083064245059176455751669591958265919077177384341775702136760847773422795746756058226039964814464503206478093628475357227808297860060294190601631217790786832230789639000778286717131620667561261213435204600646557645321526459395021720996740781954253469794521720473580645422694886091929526608959860031815342524038562850770153889603461640895956195972787100460533967078640863505467856243637653625340869236788522537356337395468631187700139964922845381286647099803110520784205429319604870236195989438929518286957986498143652920237834511787556206796777704928239266099698770199144065815919629231468855936818208048021143556082437449806423887537189140107777137791269531088566823291207130409036409335465040566730488023168871496952967329035315827973213132798171597053508436035853425346666994697367571186521507939879767682013594299387792994526637596883709553860191025447255417782833937976447323049766719833316694389613063351682946302627761179407329054887865873166517162082402205113076256247778422029405553104630239112425608173049123798269411827890926883374679272471395323910340710347362636204445677890238016929341801797142950979313683224249882812836927343704204571358499782042811241241059259449080792422437487030020091135495289290435721784920133928418624710557782441613248319812840416827502321782433511424947969392342874786501889427800063929120843529571347793565981146790186964786990565240380274526147031725146641513513118353433799128294236937923248264029479996584038472518729527849537320586255066254269772847849896733049194247698394613434331417717670098438422654534660965717273598887299896667935570960823472262680162867424357599500293829480198632116397864598192825419869073779278012975290527665519023074423982225810497853185389100745556338264608047191344527179693232292959772734661323536950024133219579718434063806738786403729775876015049673434437651621535250928522266416706712708181287397789099008073998169959598961060687841600451985468483645808464574435448857414469737358989853406866327679606371193056586726054392420593298586074391372684265285923820648562449261145443635367382685827135042176046363029388170264985700667816817188653493336997456565515118007274627656466988302746783334992635941501047131806544440479931057715508442638664353455260277113019341497528890975794967825996812618964436186846177192694455552036174745681965031286691117969989896913745042059884890159592931149159447274801792100333446311740717669573254563353176048511983597003802281789846915034061040989262131550730290747796391657466067796688261945459489877507498268443869549223179879584816344476360710360483605685492190754249215270286435482512654629130872390483868283701173345763018817326071561337679165784834566030187577388499340061913057093652884610078358174557808785196359535272990255442609141081861966883157523613308130957144480533338901948937761699938583096517718411736443423451256934643534837968096079926714472960934152664560005909784297245284892315588283869699274602242567254220490382885848979138287680331460459096528084435031247689163302756875133082368794501075106323246182648932288576257289421481132212990910187347354801601414651378691060648165111395570516935814241870971324405945997881476249515216809134083394935507718845142731881497150411041598227255429794514159711820660431129384583759860696963140610478933721121563882874108693133733193494917088432810302974967512849397453273770475981253492739699928560794887841321139037414093430766502795419477562274930369837274751144023634176974913461426187969460217725488424908686204500418148363774735371346930942538366047862411753872822941780434834808047289711664046648669442581852939385719179821016481717004766334022809528600599192880739162517183574964976965338405736242532979964972283575724044888722272593554270376704872996434332063574373667779107585204817978179548499871763345144218784831300822467401123940984496495991794406873427079781921740735473691943735461710865832069140402831511253570684515134553942073919842041565915234789166617419737846952125549420390283945127852390036431917560196799787706043633998275678567385873331478498440085997307964185837846733906086783939702032349927444268566286751501301197866760178520286469901447722960172154950578272572146065080004867600431766848804300204507738003622961441416714720861163055763659563983765854554496227430515607723769515405554309471697240189620353866686879591531752540669951575251397756490876554897401905829762520544370748889990524101147997259496094480493020509566201543995242451844484866964576236260164128251860684010447887031951801784385923360639433971187446853314140255535510167628450251408870620092924600179699641287975110426456113173304795062861999154641376166213695477634277818327675514249803824030804015045742755168880928650130009402129686351940922077709142232516843228397046316570122145937355019979291446957803215921841498361795282550408860451491904110741063854876240686111557639952323689786001581391479447646381900371725579613472284245566641722533609050034438786852487932053543516113019456586319057508118175500337286472629904739288289130842896563012654978483853765890395596628616041574226556886683233720168754306344917180863731987910905122011759434254354917646617068714843801326274767854103606003867215774373747074603571561717067983610201524482014681158645392874368553721424133415422327891745713062577147725663037203885103489537144392158664216100294473140745739676488251483600765932037999007002160753638190245314485008726576268340007121975867176767895661846571992394400897701843343863385305495111520850030284618811796321599655708432921316145491184406342677006267401877985221065346468855110379986053137269806847827841360512450839024292884629980723396870323954516598764788974896418458727760730382488778748963243108132085639468216047320396652073938144285404546321162173891539476979903050448159532483218143526959194535302593707202217850346217786182951634022908034743516066120071384351133763303573083246913091143421977908395818683077428609208942187333762284470061984985720473196284955363613138303735011937234889152977764004659639538982869685906110171937899065766707300255754326185599429215863345138027002581645065647105017690962872874774052503261374523000167378550463901721559195431936510178321431395440675071396928820800550847085758526655649538914117401612224366441922045917828721474511451599650800229791149652545448435437660094802269551834559114825443438035382505443209196429509380465775515721393194788556097460807523588054253227496932746749280324628549289157621417689521929137438726168526647628705846648938561467602707232571032319513105569623681466298144804203650757264162549472864343246309128531524019824875387062446312619114495262938689260001623401895978795513413892055622393084314034953857671253176270947714617740066225625201435487042027197240964856628084361340820160449038580437922109587378515438945168451911389486084732117456798336217729171495677091415492469638999188923628657866382369254960240978703862196938352915486742276098650322349246843390712819558256112297472907135373186265513989303240772876044908874525139867181070120442287285115792932370546921447084870773936780795402079842284533253541152132444021748563749821376249045981091312106995271340156049879919382678832985036518515107648357577960145202005070788707164258260545260170222308427647881101961300129733145094848595878585285179697480994464808639982169094062933002939300173018939845953153128100746641428091597368228949786885393257385198855886094084904028825056545652669089758758622020849793701391559994038565253993578884971128514824300624991334690501288591827851533489538817900257283575225573213796103171032728536456144458995063295457147329906582888620214680114630598926254190041542486815490635336845951569664933494636667367729204101471119214170798284287197872661127150577981761290103341382740924662878256294331265786259836087319983357537322086758963248152526038252806212729064674170738928755372289875106512561922359506035890956282981341564877057857090940352400598160925045186822157643553390366314006178663733871554917452152003493517945403567520635487652855387818170006750056186768951076216109969838463665384232674801551871033773652326252944792320848869200707779839897935843279754169231219654804946583373805935997765547537250893549673370619104655053359776581246412033035475906851379247087991236007750280440118347401859238102560749167220648826172655522990198391426874781815666215196697859731450867248813419952850620994557762758297748606421588822682833633599227757582832892835775279443483885227334948466698427997626206371696541001809680676317922668169300806866820479786002342135333010718716579469255637075626194529899803242469797695509180245823757108024019702903493694609739647957750975849014852876708454528645582347468648006419050730471384270348492403711705803587491269542833418669164807280170213588323761500791365044586844545991182989575424509199472537641299668664269992474392979688066822912692793610210764421883041654367940755579322901860886120343895603677864569729033723773796154732835209742449277840583210110697024325563671014917600015116403347992655827215407166779867875906696006778512789295230539857016860244177726638732352565160240678841229541643627893440429259217895895864545387097647557241277203789562757996192441120214644572812467258124135160475852977742622713313126304888986494366082461553427063771261146224931344047856113450418894885158704627040626237387065813753428126882809685051274109517904394743176600330392054795865517663873398440545938533834982331658204316560564101866409861591805311955765542340908300807905948543678480183271169553076198089786450149214899636887289017236763195789055081970382434415851228091297276549874288907558142176521300364885303400473932162581605318498480122206402013816637582619942610257743225028980017738142928408313058301159564003168502509920469316860141263304735860664256840074094443080557384404010444093357856320306584754161382938244338471519519724471572865779071179990401986699658373654205174094884410978358330937573801271706424348434748913452444854314438544891779255476992006097566858646706057402313963193979211319832666866158801619007081123021696586079439834987602027114826053197957995461204785964713863600317257604511972092751746121320988157414851755218141563444022005785560968688806534183872906007542891115015884735828492173261541062448050038011987112335320481788077470765899396880376834120481949959676506066419622461282408370900665077182288882760522308636258293079736218148779135619857086264630076287267735404708406724626658784679737980502514143881551162504221648318562405121411435149238250374233689145072877689057513633480668391747473943539972903170152816832542681597969405292742582597785740616465845587548350226030530300984006579150034345124874462333848936017700476872745621911989627090488817806671726106604850445167485729114296479561385218299974423386960514622535597795657516723444167269708930300912768474141278970946491995446706165001026711412081392023582736653902707381905475573580938554563064142780275507764444504288792327765069956265510787282935059840656775746796527457069741454801580340585039624809607721280367125411201931571654436563713625219694753127161026457113379342097774298404964119145446067886616053673995478807604384617305897694911108163056311219004726100136731041221469969696373721678394182868111048277325406330568958582048978204664055551393395698033285230409746024373471283289493813601642650330963620175036384973545477429098465459299169611773752337199868603967818377651487393938521647965486310080177261801511049485306724252426841598021900368542107290501239675955118804617510767278182590491592045933277459774731700500009061169082012204431532577144239722176346301232599606114887312314601221120942195102541321113332048524202350188755786561624378694588806159556549569027016597680738000311248515799159987182971207023890086908987755425141632197097182038969662353168949168658894891910762663197727660155679713578069466905591200994529243814023313436405921217095421868792417832844289901041807592646909378155777700256566649885604931922250098043667440577512897188802449017526614727736729101715147579200277580941151499535964960955637054232888867972936525007467617634052157324171382133899837713939135519927951913978573689672247477090322562829707222862236806693715018296245286852444237607279604232808796615602486472494824214379227634597423317571717757717831252615596684039126796154495360456051817737807120107316900204827626071905474904687530614048634350746804336334950339421502627568227886612358087858236704300526473779388363847734026038174178386840577787238098631999469077593032911608199275978436719533772706218647100296504026137080261306062343633601782117363532674856127294857292849412959261430206080379721959326722083825778250259298673701430839345551976883978696038884303411920999465904557264127544305015223398009556214590032416989063418723951663109984568272166389228916853472610474415569760043260412982023689104390190105105611244629135031157405262032737146030019613966167622789421653539122540555284847261298637391358978220465479672603158813444890608791747873739408762919624209902198486056633622689445514061022726728397930104241097545626574336235243647661423024033363067831429566918566100338617220969464542465159108799572858468728760098520874643907614069276764333492859510624706645757638828961495499262963480543040089536130510481451901184050316216494863933761604230071991437524068444853880190682638109224872577583497048319634182471228949810704053248376429161353766689924457229178552327061163918412314504683878218772330300282065844188620172636541318682069403981079173403712848104400597857567156385814806410668030117750504851160311441312857705234512793513045903210998654921984272910239080315426226358518680559263604336790930429590143047579482617245772501872601934370222214665604679959498427465318671158864476902944614063157600294623378346239804306826996848843759063609696188497098244390492315017037969960503126976758019853872292593510212929418679512565955016267910133365813639366149691837546219853010011057212351064303589638123865273316046091016432941861032778844929533307285690276132780800178157738883887762275004112873895656028574893599459162530935484474072405770346262767406115363018550680407903260247017567291552559783815876253828071112173642176774520470628920852659344536150006492009488567061528914156878570222697033927657521994662326843513237887956375425307333876385005021872040222880778242497466011331870576120239134542639579054086191606502679745417094184332739706036977764057949452786160520112426713218365806570523930543887081048360600443676970821266103052367668113501082305187216843615982542707786048169972523224427436484223967275382752764309049240515578443268690284509937462045190072966474498643742423672758811981810717814001607988382526723041606952038535614455434212206559593801577285221658286378562318601561854273794339039504352040684647005660439314676072170416818000686228933479300940045316782732169938894657492376106366082084446924263630797454183942870553995798396199021310972042933196467646911988412717208120716546993179113108527068553606133078617264139396353527059512440598840387949519447441705210987312522063180158598764978804082816376355790230631615505277899923599928181814016200052994858163887254334515996029115499107879799761595911966717200779217899522944312879931730396130681410622106274553863921785566820985543985725525597257336643507464981545274829792265941550076774999633001455217104218293553709359232353790571023597491389496088525158882322790451176829413742396502572044134532569997246642488453552469428845219815811089614517887498804405774714176406905708474543157808401969553800972393027071302118155044347411339461034184035378745290904470733292627127766876208617348607995870029586898519806387098515876589644692799712779340173516565916963621940097926923568085596641072713596617256343684578397324590185238759257011128518040447811867238925570832680361244639881756342961949196581703232679301535920789647934694144695850205942431216769797120423129987432590733264739378225355459356651017525332632952938022189979295563207534029548524264094466697091859447983394802237276008413044199983552937438267425504020747526021126384606066930443273714386597179564572063193383973767074291702953902379893441717037762283749238555599525345609872682177787775512601643995386474601054926080225703048375159915779603402736613416976612882963545614960792439751642717603961053370351390660850979787022883833139599023775381099093856536185078835819766770120009571158939802698329910691105580785738111725223041305033317246614978104607374270951833076757162964137759082360412474549241415919695469374582101908575882193085382233947439085696337202659129462241213302206298371893574610584030628836466190529600473619262201319913525028325859130503295429788116660394964193100101513565926093607942102237541547207073741949533404697924401497489748927215338604133367071348861543062943763480000168621348491604269174483234443028497285563999514099526446128949141528824095049721948082795010090514416544600454793993138121864404248403646392157041733343493021210366012596680454154935059073522683593392018222810437206916148063379002901244941687151507543382237818474459400391588435019178073276491152622349935346616994362919141000077120675753929429469838901580632973885544232734781382953793633629448312879822544283917009482543235772434802183172942422927894232902634943794913896973243987940519673311888360541966140442436354079075111210027305568651215119283518791194946257683104661565135377989684986670890433884229152450264387006855365864068772084055811129544007736755713837721198614609165397345613571824661022189717727528140732705103656511307709447742082916454589294513406148757421105728861905102303972576386218630860934298106954709589015027936260992128563564494453343182133876482451061006675227450486607147760570097546167172617928131857735438793873428766194177207078780173412821597316134533899952351010371825954566777059402901400331539352111704093614519129157000539392626110766264758883468876116879589058988287488159701619628627969483990304270070625551390877244496893902033682681412263784252470197229689650144778606669504560677074422837124057021083667956679575784009426796693727573035981224905892367163950941905407953318562246915725535036506991886574450016668102151354989445269280176337833402525156201869892422670668630395253454397627671120382638669312142346734148696695510947253738752069008826855396005111050033841989127224124302632492956830972211927177809029586563595228043568666524871411671886826982142880531833568340596075453272974196039371546224791415284158581339607520837822599067390359914479950480355762356384828117353160476097979284687133137051416094844706234833876421524386009838393161790967567854612447137879013894532008456867501224986638186230213254612948114341923246353238927670653215505597894191812400407608862147741426402813090680284659773169398988570963363145069266902082225757629669561145738081367472806961636808611973084025642732516619035117213107813348989753257468404952881915429391075269201775040702354650297703352363050972606496735720371202106178737918936082762926814150859081247811241533357309809407664673145928838060302508562933288167471385769518309942927952252637246999287951169797979852535541357579587769288312764245274941315565651331105409109793316395047062882112333579889306258105780481517013596508570450536132341971222000712529126646042619083435642042431453553093377734993037107316574536112070373922295302932223832099499037794269471695938795933314472733061562928131521385900517288200361293978212218753141616822866336639046593776741141027231870988918512564291039770744346462243648419128338673761036749144892833335245133382816527015592821903809545312847066312592622656142935660054633919399906478439814686475267038581727812190913046819949080322372235115607746823677710460325932160393629356608416078211608166942319185414836011637033671153857567609196180898388243587516865143478291752671145784153736059185324051046738041714826525258638309850457757117268756578488658684710439471702107428730341729492919874579109421012734325067649855933693901570252267483858085989655668792245845022607490351050503220341278748453255538248691371776250750275508008830024464895588980159011515106196057070131042994016557911748710260922443930287193710121587043255409972491921510918708487721100263340041925696137737091813482445008592310996036941231437839037258129756534875204830931579383608130008119391531577646248356650613417913565300763930980201415377161061305707695392749374515997595900866544006977973227447447208545380404978446311336616602492499358820995607466356542735483308685884009646797322195741124643126260642488496787381152944778461749175691860485445564603241666879167566726609112740485727949871673068869014282319508857830766912308983327476735658690295833305645253234794950232374617709452597082769544098822250202625683807729409266627608806956335251520538661143748525307193306373402598611409586116029564494591760818735547851001022381510354493989079363643527405128839061418188794332244178046667499484050233153393015097290136223847200622486631111547078826613383322415756583339364455636703152614755717344674012790263714002041757866992026531613619173094994407482474488188179889430479506649587437707986991886839993939829252390568280094612264430260670109977088617703212220431410887577129913184420077454729180897980197125003091939695720226173128645090244620721034987730672701806549664456031542567119821949463470748534954545688113110365651882040439144477009574302723409286464999341752171484685207407271979870942043771336673648727580072584217295027372627569491138343351622857323096318512914544155635309357575062505020135139979543520892671205519774888119841097886303102255451748328443862910002481225202478984800231139489620807061522183871785816747220701728828088450799794624471309803657986506363449780335131604790121455813837068659497580389497458308061259417287986677720319408146080005108881599034175252139348641766016125924770679833753359270170897468888523732540886435445405163895874175127055642771440035577242452055784995649920531020634525429931205934650851855709860871925582713004325529758845824213156573964383847080819223408395307695547060567168617368857804282779466735557118627684176431093428089071834949503730568841368014791717298979489376860410265463545141130214475048257048233646241736178813899400361227048421897918615115717335118490707012663588940111228760025414160052312316915091635553361195672771679315340980715384810633238069049713448996898050615760971280687043170763528395560860307080418492798824145412803901806472083422853263774067623557496253713848972509506915942237448483954621871318076760567417860488738736656354307441823580061379423851973283139029965308434049932249649583929412326908455582227288472022523825781396256804668237586418856883362648560130558804797414679517015633999686370445743883778667307092212965278533872206360564832707642937753155942415895303744541637617658352058986991008599361705686050886915908686066730892890883491063173521823723194525277709192240204709889352614151156573541550679466654423828507383436034273826988691557850887100887475005083968743072374766925452932958662775176936593846484405488325218190008982521260534666952527238985851771743257079978940558153294047160772958279825686808078900339467458272040253508030823931523001361913433048441372038786910182462151211632606773880166383205420849022400602423980758879024631816968970525850632900608626255726902834938009865113979715283849490787595895755678406644915202392739522120360485086942416963072287785103451652547076549007112236602227833253203749104956033675572975974613622695314801668719826569307088492798654848326983390146387568386145559915581067750379334120732965155192870747956419741889927292204012468658696859637264009320919776017110648484826865322219133380233631838499648124058626346578174404016067919702231834708628038344849915332401188117290880995505839266277704031636957810904918782586644153703940723285234700776818830426956227174483064303777436316304799692528013734109343489434380896629724977475855343032787381864666981180346261897769165115933395668421182118647621099344424465652704204622646240825718643994092448792833356802413682638486069921919654788387351862486349641363225071287766323947840736075767043418897002153789034013252839537294992452496248577326449137095987268894554575584361992918301691536401119454400890924244683128907921620830722825098681316895119389085348010369128951498000071678894187737198411300841667130367867579191059423591531563467539790098690934132016676060399227703366258422711780266028076611718562645070143874637637202380364921079430031412691962756807225114729532283790207077135911379987554035203797681513001925640653657495111863693044058069822392341758955006713876494541828836626025692455788550113457100535705230023589847754692321521037587014531852799735828071196892826716037803591617533400587552267815953632408879427575470814687191396801436856246437725190946736904562079501968323792173159607681863667199125975501910603250518938930587936731727652184124884725180523332004251002173159688821710599140777159039377904119162926684251364901109339605558631510335490693460886233679665237987412901392071079941619846868660308346535264223318478179649017606870620601173519426893030690918184127674339720257882752877318688426550183689090590041377298030898660184945528020357439321595643784683315941390171339462766810294830772977696949209882687934536368115987408676701997836903121749917734760528922075215405813663121024393008272867790014739149706149467545134746029057704253288328573696468593109502206770666272210899434645191079696050612458168484153927003214676680315025187431107095078766116631375707113609211526775338167018936279498837977242074493283115983012395574297260317207169949742320201632791763807297873800520836331828836856540909234650996166890548649693803677657001790431184226438103988405050225460772002888132133982636430926152867999685832292631916661926654559076657574567653774075273980781972830537345263879062210016138125147865770221405081474565031109997381689236448581094055620427054604899825902845422982511857320866367228935847394048709486541832393809190515593970913970989584748988207600217816090367857955366651808797168208425446861074774672933814613123471173264696329640642030862335851953199226078598894679058497475946331495070627534178246322352002054144185785453663880050115817201744591959961781804834224963574113735821714920752010454051040221062362551066493143706516417625010316440621046713830748921746011592338737677388503365371572671687164062392200775178118043222423661570204305182488698221624989799407032283967758344140577342878236357360502350008459359869973360798375588488817901974375276715914884469722969863001514907941133124170569506081321048514116324014636364103510108031888022498817559706426671683612083063631014331953828870374211540282614145363740165889763606681972945200752558558726322584607276645441267159304652635879068519364211673924242980667147277552765735855054287539303125835735224642408348613224717508904652798581907985803740860952418128958905084604996673475990131175159611085150378385165587126691973422083512284135530660859545126239038537473660893942665207644229371241050382803385644859114336360858234265447581016278595608823751488427648796935988380488416723891883769125388240822433125443982045149572289935186251081354457628302040990110784696167937289368689060372440665522142997884268732876924729787831562256896235278308729748806616185354198122756772069755188916216928442477579917959586627487650597833663786422266143036570743702882030956398850859387367842024144233926888185794709753154822434829953061536208422031478892027935597235943277984063128002609331169340180453889609510120594121948364749451837775287174790445652770213916673529403520039101406802472307395779626166033098154525844915876516713222253411571948362125360354363560829720001245871272342904553267197455336300907926971044308081123012291053006428851790990517461738965365220353865451261985439378084464939862454963696988971214667315352009261397240761049061770612232156820105245267415986997054846941918252679401214716510656599369740656643727790313050560103116929653370114705757899459021733845962339962179761269576192572801054193982947708507435127814439679094796708322697971229413391111577960083931291930917915456595260522334446911916007709029652898880895962415670283706186252769800775308255133031792409254838075129945871938163426552711706196415952304150991123934475682014810510322883878979524861030811868593239524944681275981895318677365788542287458187143134741718361965519651699513829476453007098626671811979959349477775141679385967130307996281221114999623902824056473252831729940168341736265034710419615826087903436160752211404269610949890946493736495225531063536924387851691527356780306516021844519294789570119865732644472969926874155580754500404670557243575242686774487382769170144558130062229656740492906512683041251898985409382065427039808174701395046659020456468212414549050012550485949710506228518518567373321003398812204562031292883093258299227300533202787765273642910180244224805705752584175726868055267017885767026461026232802168374545812743435082339674795169131143559349330681761802587528647940738731504479971519064619629176237260360190568592324975946385464069214973864485702829417441421324952992772818056158619832602437828521988557540828199890416079128252861912058579817609238484434132979974750138655917976247707373254138681819180540822543399662199193120731062707351954292808584614432008050206292362308545411989683403442313518612322901401744629761698920924080943268947926584202509390065851416842003233976335793874121783872942888103036403292718967779672876805266722894169221322171503404153867171072918188892095759042465994256114270342690922212450525649002127769212746046184251805888212319279995114830971389793312598240535261548760897517673698791778618484914125658161984106175952978984956940677552833276120151491819069385871793662652626200380176524115268719706782140996539961459798790481844288077787827219437858712141653488103035485382707843694099328769647931216165438156778604479027046207954204499809196433154355726829792270049970738422674487326801305297553248858785264499501314364807060076451855589875524287818938514346187283118210027253777616195898097679882426550920492891019968511778985505571013724704787220276284216854999695835156568897921443137678657319045597185305933201076339216084111880737541217558761376336324847040016144307104521478987647461800778522758464278130896260076821598770922662014185429075549020036924574018284736171497995059871688846283129240504521721567418434299231834665130734032832018925760576442760531738995207253751446247744126721557918923157645399645066678203757469532534713231270360008288665621048571395928358193349288872112872031507229137834488070252672120615335369462680375239318579956575586807561604598190577029689116621300194129801264459472959020046568259899418703087126824781021336571011675041979878765672557473880086400819305067698359365716980762574210745983465558267536591742813908715626274426345968352214786144867407327830696522859764421657000195838763773683899681587248398126992431732846668115595490489311880767098308874731745083171752839455206139746053079821945406993958903107811680164011444831847210745293076950474117772204371096332315666346474337334673327393906709999775304093680360327327258934635633577589811567419247633794595077251489718446953594124683703516429388763727427946954517658487178558473099874167303889346593541566092412422920080432448660730507003069526193887821892182766457129688673904713265234977088695702057472090670664774407622690756774451671060780343703256365413458147595046810520071527609335583890891358445341578527396273819458342382150646584602495758111506949008859792823807228258335623195270662752141117590805501160040315468556336215624724226780779703364645512236394282638182552191640925528277827449561565175301132846285008757174403717381721856483402413599060653642908992424295196290814541331676040301870963282828560042909524763275545144987910557599931932414495260646401644851158730305397720831024386297301382331903091841396410147804084543459892740722678699224159333365690243358996701766643624995324277656055181942802612573558669868413177851817565193153092761373220430164437791034251468952400054834191383086721955842995872925130916188810843169474041669451426190321208435270118327926695055235018782199588340020079013854067255326377378598403820490978415660195606786562804380796249604429561237505951809552718129370662881663578847897073804418490465363466457146724908795155467181035981170258469077390485932426630887728361418607510246468693642900586034832715554436138905655576535759173746593186218711542963744828770551652688980579997051409590056672793579095476887557268574558782044829936606597245770917488724251768357959438896212147779238806759167303049784623209370819280992715289779064366542696193541908805913066984311113933381804423835877505584780343785765887770896433319955642066437554456434797147134633436583759186993445218744494278328420740129196918659097082844856657993249675834606498392881289044098162244067980075884818658507767728781456275436793143049798504094917424170968477958563375905807708249053075548152572347723922302467550799491791935615812187418556069641636072539526176806902523079798863756425852902822197666637874104973846106429617018188804400374053780672438196029085724924723405984750521363167361715817059317817190017110573013148301856130417477396504077918719481410088184705940037043252403529302722948377571273569430498831918265912198689298763265961576323602766090206636327777318941757907705501489378651648346619134928781277020809095768873118742761523768924362865907772158597972395675848008928630751815324634824731037007225141637476811102610636665665612849000278382190609557281289973443527308525309952269688491513067968457144645177059151320908908978642068609623282058448665716427900963645393216926472373305479034267900668342842402079068623613153006100525727410086814979278552209610441316353090144298313095446848437571441617878594375688281791095433082477218679311505901642194773760849334311213985440755527955679012004551345025221745659592234949265714427512898384496399371525850479437495920022817514385132641612524059819478182420401732288819901541863693496398014652860400243935516603265764113427460813312133669767129127974496523139587191955318980330382696732235980302368279803220865269990451552744337999718964660356299468121449095102155836623663959646226612553143005763528601721585863298591736756280900759207014315078039658270170845368102892888652015124761268962187503036813022134342562504767732621042969884405430626472160107061184459211981116501984050264064525474098773346436537222340085872454374179533721129036972094008678518688986569076148169407056524384680503312950735744703844880453806021594329990970377635591427011803850014475682689611807436986355164670328761504038017658127654982441264265276503255191915738407276774269785474749517145608658794010689611072259160749267271089110859730327815527725905367980957388238602306292150110244104752423948587425581421644114380620123295483796920747687490204806496980429495251717014388557437794246341684552854832688815129342540658021058701406031075701459783972564480373180368519860394004502693753615342679299647969638320231512216975181751509062397142375114247189902711208392055228355814743193531308812155555377653686397337960238191692759356821591133363126845114454221300010043456702591796009459445943980482536961439261204370976618843364294906252320258415448064921521485852091211478876488631830164498546069436974799600004860121623986199672186945058456700536970748374951314902218679393024413243378463171927134041937790084804030237452589628501658555402326690122168015248641545762211800021876079838374111285319000506147433614799661811315424412413461084364422985565184093850976761346201885213876962702388080845350876180998895294157278317848322635076697048339172829100139925479971110523317312170398736810420844461573718505822660654658493805429346244871078517228739233263491201913196102590645300220682449784419456555759294113384640176355492452789527993572791691928675263443464642306048895094696801647333884775407635523550689162993708811544143644219882053179350759238346798680280654477036037573687366263060083589837093085497956841558070824907409864858006549047181744287960436977680463779898437578289348959794165710812647377947670579497592527270270762286182413414206731683537431117160706384907152680871173988729839273105085807106000230219657422088339056975844226675715289553162233967803168977385424898632653318493105002348331996808868776705064402683214050188038575460939467766900217740099510336819792407335555779788696301195012060791502925384620431432101729754349297037774918013164472617588989212571597313657340412975242598849985961890854105924414187634261336963291197197347472562864965982558039654069074693210498146115126110930743296951128670754295083650384351443611294348796056733112652786176188652746670153960880326651194657738376218532053342187691569943610975947877804991054031503623930197532567428842387762408681676749330614585950628921170115458271974726861779352005010228922490506402101515992326417628959941012387835191187644558589268110720250637722419172358926552604857985210573879969462380523094543418771177955867464730326230442376768235548538748225888645297698250827503180645345169613548198956951591092523547836293350132199380079681486259707565531850782214757333820614185197447054995651831809176382298799224626856136092838029056947824068634443871890565557960289701227634912974033891393628088697978120054236459287556214966687029960321699842370107250508583291266842301476490292953040065420735629957129947888368015110266734763983898516730225392184519470189892349850186007901184087684530561413932135121611845686054592853401730451175426549337711025768638084793043460221608208619254165216337904241183551635680654693568405414730855736621736793596207173828193946479884911482804435970306164310840512595637081682089712481283973818724746776127709027872652818804927840917087302226743235563031979987011574701697107132713907166998521704899439279665283463800509239687111545210021955454359881575351681350488355905173339879965431313805161036234228573842987028554266659275189658506083585733498102577474996545335589970559865853599948285554136946240455106786933535631110092147449463005020390143532161092926831622011793447914831807313690054795846821419621900980774599624740109832910167018360461116037797193341419212024679620509759734783270692365635738226974233439575411225593669634844992838421572647247887577323742302206841425352885980107763696382357435491860978417883635789658598211243070046694891097440986554833324318354690663713685209429458763218663756216970132055140688093901277036091902714862193738944214132716459935272180695536465258946571439718817714901815347711261436792141748948803241737055968855601501089227198588627442335120282876566489096894275463993306062885036619073993147634285568222634694882247747666725824821273137709923574016562249616556638660803757951814744479343396128202046974896592894418826570719668264724229121608200919744351298531659456035896012637069067805288305373509727222589811315225578362184251420117746024170003021427185046810652310128243344320411395634386801199769475394199530384806999698999955292648166522838152728601507040042882271803855438286228626896897348625169028175066852462179561883984902204893104667187446526913373727887212885044349177964928304630789185756453748228719968432858005594326647239178564207994314160768858148337883586549238052265060943159718813464005324442150408724379867517456559288122991416561203278376238724114231388819245733642480334787256819251598651560825042962895636632006284874050049434019929907129385870511578281300529757048360860339489459469565119476343798786957164044389732937972636920783425352964325238823487647509941082484877475243824412771941595646541424332656646208724062238615328978005765199887713984887406616082802307289680602699222153711846962739121404252428195849209135431873879845141068731388890003467379708890113057297917279435569116363680604860867851953568052557963891068428623007133730863523975593777421904267843466837501483366022076746184893436196419584860051774614517611212693151299134794407458006185156157549236555351462094249566831524385872560618905351108933704185509698288237435311931689708743368951519759863742090123821931642732976362166189166159855942555255022648939437053625937462770764110355450831246136516734266299362828621281522302284208970662078516119395219499322266919695624418533209677331141256549531332262669227030996728664174899449629672142412911262963842462132668915944740724336205851611657928109329631453184183054710576637536455076095482839135605296256640943643306564616020506959503963172029059260708783827103358684172235607657644459017447685654292511657223288457536842414189893531898391799670383883733201074269181708784566202900009024069895665799044969833246703003798776538804676847861684857010367678946858536522224062902865417820107292744394370496172076129204403746070480704308647072546889828903131697227966321819039272041869795060595370924135519485176689279898296396295776780030930868957719496253565741024833150187504960821029317293661151652477267710152559315082255221051950566407626047395303999788354815826601901195589455846277362412467189738582592934721696941917645506763283706889517666264930842502800096636111127992864218723102387419859100279469338939089474410592889140273325836936051843477513521376240358639379771151885767033928835294771091635919442795420729165138033797309866064983072807232423440638191785892064733260159744484756914850648555406920407687847596168159236335683878039742966567849579958882194488962378695665264933594890270172163874970974891408547397514771388713422867440136532722904169789278565181165455462977595802089460238161393598881047536723721879789766878469523416131612319391367128925509236789908151449421365861648826136882999981255885378213370343075919102497402305374428713298397238916806863853512752730649710592786989850035505333861767072368365161642018381433305582140185368450700304443262346973028710635579663761371799418483616009596341828262293339431623973353223465017263868933818582492716145715203878910520016677886685535052309154192378225520098914550955720788036583502765630820724994735999053788761954389767510974054916397115972536276474027600294187091721809507131091623401806681670828850076341721300275344756845153356296932065959610305218121602983381020642540708652958668984069907503774099032666579071519746050964402408227936116860362455191359433952144459509972055252120568892117991107687439487440598975852323688407967991847683340913619141984233081500640464421253332498272080576422991757113352996664796252385589154660795752242937239909360653922524569900498122887677025335539986993156298642521216446383093735223216568679717326523484040845686174812479322995381811547159887683353338330573576322979906468187321010271660279840166673501666272829637092342261896539518983231497324451286426191376557214727355358712012959772591148128674451153396007285427949630656481757873727014209535566506528797451081307729251948719020388287280844006372812362403553938215580512310178656991687059038655660415066277947134777907084528582105409899268510354038044194816367257652347280331558367495589090452662225393851604466936732454091238408923604424411703845320521154824342075994192599437930499629268785548176108681020970877085906589590350710245948371524607978580195110280129253132984707054994736397662857504009779230749833342809234193173068194147689820273334972073289758624873639227443309923945951259351779148564359849050085579366007688236086024246287408907088841415708216333385222817691642744415442123515860976713854933196831531738742174073107119092166516325454422708677365075606179715744008520552603647590462657665247982978638777491688469178563883600386416414713111526370036757785806915367092037307282338208911157026405476779433724332202532748096792329723753370126319761318130874068178921475557662708171576790970552807193590973894554004401169259633653639662489379838771172688960578588680954754718582917473993120776078843129963486379052912622638893891754749839490358405014114990943565728298659389814193183703294607349306279083496577854581955612548547319298562788952178597713432199600791435395103739108246139224453065671464065120268728471176797308123751271779719869646397334349981853083757972411373616308904648084441808198681062303835334627336251172946717685422929416323300524631667867591029506065770982113745422217901150935220730015516335717171597762701612690593026918880360833471927821332053830569795587416224969984634191871780143092863736050605583009788040961990948911123343321136691106978457212459698016185471005435264739694493599294856109921059795224283079788126588198112623668442185014320203702326348887017521970605138746358805102522301307701796677170359301302637212312356353546990236833840687287861457896535942202140442489215752872203817348901589366617853999393695038682055746750956975638553036609252379705640304024597942390988305368663061422451453094126505961582294049156213272731141208655152384575507592990359174310552020940747218628041198279280475339590451283247824941514957271399359233191015698156139784398173510587664613252560120731749955301756228396121018269860275740952825432358944564405652181348062960414366480963680574403120155263659897539166200893596401562868981392730893817136464869752796307490417782158549353627803120599563811557068238367020379324034021737624765034554232212514462542808776352165063901419804347524242302533275059144077609995940754791558056288296314466548390644719874102372212985820144442409114624905497422459889419662393015197685588761491068903796588294956419852500362973923120344444615086937194317296981605832380576063007094685844824822410899214580221215385673172946126240423422792378868795794625263939202680836055905904842324509571222723780468464885564706897596366129434991851473135296475644487737470755768609358409423882056359744986827379542694986141295983521381112482898175705495391946642067951823493161205737040420802466701284962493248975297217668552342555532841115008988611843102778352153153124579641510383678621380439186589124314026570886052037120208141761212316040942747877745412546365761939539674271194135046305318150324140209057810122454987243925779319307058743931755664314077337752582534193773226485644539638078568648507271823332533967615662440968635649499390917049219900554089825531569986116915995016352401064543694585186549314987064728331056406180640207473946807067587481918138182950533043023871634025569263492907481396055361317753716547850521439382820586696565723242455141081062395106553488897512869164028054062648027680637308434450102968385317367127230477232128714784486614933110711396506232782532670156465705780088582535487360469481462096324024131322510659444903249640740178955165438918191676350905021673107567954437364345070000306487951509342197973419499114145142451930534546959002360729415467024121994655172673791174626563010701484497950153735071530489324252325792980513983985923947204026789653591005011540009193591604486110307590884098318006975388143492806979524181332138574530950022996683530605073188546824826626119530010617026240769337279841669109865519057358899623483260464899598082686701940217635187334720478143371607552261815524891228319207216285657808972387138093371775502434285164904540680749270361058898542478803142599171402770455920743919156421224530193648756329380651225048464569870309673657257744538975439096432395508765651106995601495003239916474208449202181332120206126880977876658182414883319423047045664380495373400020348963799238024579442758744852602361579885562113888886314108459762449647087713428564785309014110454693842928253802514203501984429123642334517046926145786033446528543697353322970340537414854970124497573512958261638845781714085052852304640676672393490788288321089905484998918651515241698424023369534136491525282218215807706690912103802699365609970179367259241359429040763969057425572864509006367814530480256185886201990539945662911694195242398134843235317005669062804718235480733061122389131808969467039420592698556637824945399852935089555689738606000033034861578698619649870936865087540865964663070563158647883497702087673418407337502752438295775915394800026207544097055872409805741863371209553533430957626603801730395568372322502617618868097044574424250144007020270476501053149863965044628040236121225450695569633255853048007364375787196779347997490216682942200380673801193926537944486474543296700380452825550405634015547652410308212881541078536078321218628327255710434072555631490157650048935816676568872881744504617949807504045100403196760247390649880356217954658085226597377394526364522641076476339691309128884743413303779258700157160520511208825910187391902381061591370084389856171361817512874935067469392423660411456503496922266088292741431975158829470529859187912611946535452169621439096547169999486254464826284334879988271913580605384704124372308804163944420645583060999511981008865604399446419629981324593827511901451633806934017610831429797709004870687324794293712784207719146251998780655226710095806206784100572475965512548191151481652888278885892112188524639192252524176994951310013819811646053114408829901525240253270390626595452745314574251527428905300378074823434847403218672381083925825620304280855718968272421911418490650685884486091012623636786206895808655844458947891575502784893576807214490798524462464727066105386077234342759218962355483024586122273525308230749855114255295627705461474191866634630282220959603855365127027387570841539573906635554070702183060501495892730088441233405391794467736507511061375383144508923185711447983637464217227226822812003876736131482481707913065966697732722436208926297475178895355160730840575499011187565139347302636271692231058615784773544534474731854742191611848020042437398284990043252900299567577567212999285718544241360425122930490347180892661543976411331412694522148367525723500670786522599426840674973414059499068486214961403355175000162498695379009571622921490575508966675375854691317678825894263571591710048272607694185592081786349534017382471207559200711385080604303995394781973145691844959073673599614899561098715051910290853027688476890343869236457230170668696960083244910996338523467595149928655093441300343468307179367158176837095958682700061460180702770427363236449441881140098627009318422756394493074451022676913251484384042115714270919424205982348711448173740666757004357527478347515971238558567200434904766210988294031122729267750646859371593701620792716288269914265278537420515209771017110255814563202065657835638679130704008459639527851567873016494226665105839540326746481983454041940961092898240961713704067228116582195655460937521320388373536070423289422030799816844471870748848907524589245851151041660551370799231154675524549231758186534372047119468340174821088820167792377569417886884427971373289904325979917311191417099487950365524941395242474526748924784374154184231510963090163206717549954250479575476388845815242729500342679010910881334991871017348558351650495513803877264008600979498627007043953734634524990128925671145090462004270384212295370596346577070105758805244988114691186475410172368888268327166374441393082831637361641256036982509019067037211421500268267315550579206372311403133613483871985927023338176503545375798041900303505200573624851875957865644227067083681403233702454740502727162425003742440392141892525902330581987217400120888494235232942995892161175469762272323577344466835889027191432670558453055264005749401317496093459510138962221407918193893555329018255940829473649095265554832255396113284514049451775722012938329392839886999988262992431113916369375268151010343351721852468489707106351753616890690366149433566869555275727257119350578640990595116721807847906999117764976182010252752246241367724222225426066818026254089122706864423713647119566767749592946387774483681084143633664348324563899849749019255066293190368072829305208534824402430488448280474441979647934097396954135175389191078604157606265081817292745117315680516530228483597824258108798461784763550337871213221015569593246914926599851938531467079547113116956173698598697078780146670112021940094326173293677292410222703607278053865604893085646040295837990414144739199116871308063215263117953441797296491786376023425138008585201095732708438663559819787985585480772182611337097027075496732573071110673409052562054133957730364559882061014011081124396143727140897100424004401066202805412234133888384709458760437041194948746019190234516609027341978734839367959382056440976367079252701412710940701763543986239300915330802759217202320546288273895686738200309395564480501359813231310500647879978334791462131582085994141164686864338598902693632524157800091653248603527163795152952210661409772962559993134376301657650882295340472009230764545659184500031840823651224008723040839700716742386658169591867609235211251873301764007236479096568771584856618799168743466788565917940534755788369126247167144390797571018326468171942785138440780868896598443994312046390054814599586402732926541039766277421659234726159191726854914132548435896096443954013597919540705047956609965615641549883099380737959283723194647026910484456968644420595957289733661612600633551359331418634552414254045228720013581704849081963773662701938373433227585475911244304707404067850862681203765571549914914135292135521183723103064243436575178322216750632027360898459219278419057678607772537349718735533735259401662166663281861759333210339963107817402063894163872065288116521922364309029250526401874941476562804784096177515316234360513521405224117098533618717059260319201417293557852135029574150825845471127029299695006157340605671915853491623128844866308380653818114983596627138598424513504731316635357485561542072098534659365040138992323627616661959970644313957751959593354120768413294237502286955014930576856617012651287389726488530493483366521760680632267719612025623991617304350140703917701632026028797250918801351199677896084197196660227765953002561903927745815860483475838688139664433217253748650057311056097620200290603817502886848852237227313812519349715172224067488363275178284722972589209332968106862789623271111823192928474756517030995268683515868357879108035432605321306819792966966606431612804347935096216085913101257802787069097199641420243969177093895158797124016124892350327396320524519589518071438538124233613025082116200860022850244187807403987556222021597322220529476912858304105314328827197808888611842205993912951663542023934038599144512706654844845448329810541312478625448756921335919408450325619356218808397482589924773028808846174466022706499582464579191867923023835396658340323339053011563928204350043784806217276640497803259483482838106314509177824007443026338850563918489832776384468469149115564044817951869893594370521008689710158861375830257920523380342644371470646316673188150363830235950125560266342098648528056017479635674733064920908174832280488185382725614255200546737568520770143646315287372299028476571289468401169492690009887071103902996638027156088820519203138667858702251682289408211128664511262652833836469928217126354852906054515772434137187339173785394574386916602945586474910387415141748280909018275167768122732721788106139664520838315295081231672937592665229810555025824744703812148140811799522390545101616137517727149463956208336003033199547756163245317412336543908427965892498539091649917975120247235203206604799548351384723314828586382403897168111181375698314154534114982701700934740463526098500478152761517864873788486925047866723425706649596747270206940364580507311975276641274235033529639729569860010957930419264438428376634361472284291283719601554888985722173268851444212980217672413047797282681722552132212448635238696281078298795995485589514577408683934503951385131094282540400287202323653908823270979897454028081277765941747504226516690819423305537835478981551529917613648070752719939542356724569760702172998162846718186466929735929287156771929303151992057430897653551361912683598353662538092979996853543492061621409793591647334753247791362900880589330365657605903998826164463498872498461721448794320369692222294706596040344949338636383289211543787601365984269791069680642398772080351476010637693677471780227511253529905966818088124078132108325430847420913287448015872145141988748086805084517902287343717043904193714137660836227522501142575620492868223226545014328583113900468435478025968606633906750410687786776608157150747323204735547986504636812010580445764707286800707279325864281434453226090096745047631590628941539632716774969173103810957378007179943071551918157223145650566336141660272649795715651855919672745108620877095827154564872602734726258770014500035939729390551780937109354209076270482302343796343625852682307090267913547377422549750412008676133779298769027878478793809883085483623917538658714204323252867925966111326598156480369512068589118250220090725916817022373198435376128342032317928730352385432656800695609615134522196237606125671874399971554972988615488888537273267214007341346139271442502744945806668480006710687391292522565473347283497300614968617362284536807186152964839548369402430099250003709439907176338430155929718097218646943691011638857121810752824671721142075388899480865870211219387480077429290570119143310566185830991717112548693083823609636199344284059693088508826466548588284383234884652785792159096214272138997437095014823382054190181417411987807975660546781967128874583539768136102226351960820790290550222234723386908750812827364111134913320712627320136262638658480775983309786348526453104925530088362003577065069749893033718825541729589591581314161712780964780000696553060420855937865037736024329180853392741618492437740827418068862893539951164984798090858387051121254406725888617087983774189387417046016317757827833367634936891353046997176257672332482276625219203813968004684281611103484198643433836039952668448318404676379830553423955889179826629833553666786706832123883601066063525019368618254975962551653006841295525986925742530627346600919157972177483856814474534828950503345348087591956956598918213752088599646348975546127886389397623745587348790334467963554823596137197257310500245802456800472851761902082187554098284949171288968998888273274908251080538138731518365318083153437338024429921702521583591693468632398400171588912085433410742733705235610992777801452229539684157789599946139763531506086672854634737208539508605050496362639287879328702013907535987318179715948211993606331086078458335936101735850544938751113021143959936129659179689138054427718992485055464606084744814438031366024786004654928247881829227371129285337405700375344667040911986846665684706201367534728066153699716094758305691388822161041483552347474604957549002726433007137435319780155821093507368477486539437949422531597625468494976605562019785308035139902625874046002585646215904949005035098808500005394880528844768762065865029489138412003049130660780243517774795640411898358154085481147875046909960767632036888495235227997645026610782153074314377701485712791759485390275036867023243075647815080696301472290552709572251710652654085467247790590448914372518694054668910682290576296847308741150777808343623224663774003815268676661771140001374598355387676956809098485103899293704598936764526488264556807936376533394608222908679554359856853735591519831620164957264802263546566490894948164493496538700781631243055625084026353626809932576150390832812269894685343300908977321327140195739035112401758980331031180551976262925674780361891492719247682609499437773741317917728143260362618240131721163872395372445945328080919394498174841701531481013418436782340042798288147659273847919539049053202331292859025586784738727830220115137724574588247770676605825120192230049354502790048952143947232090278089025140560233085550983486584933615592602196894671725768281317344215918690328855987611566878803998722715729065104687366993412704406387927960676165543119568591160524955855537981081049255888240008995153715214164187945334267292558295509084488322700055021282968133734902094773170707535363960540718921941922105944131496086991896202945185717443556609604024983951315557089422396041893361787533987006654011027429893384710842193457165049619541585568287470132707592161547787698206147762680913129851560174147994009565627139947167109068065072813440744441289416245602613807436110430592373673669626066998003095543803899065257606479369753600944305107351511466338226401611859433359833248584638237272945354111006116780036677823867151140911098552760554690093598814837161904170010105443805954065209069688269816303882946275186262091271031734682688106724453797907340858461041152765144164452582193246866511026603380658477207203455256245758075549946864263355825027246117088720275764649371857138893277733541425430909100833918988457865280767992426796691804192638124826924736287077335233310608246691894306913087288050666770268917902970605286882851317754339498891204969509538550315564073469079794863537564093125871758497274096620736268733696788664166967038311508134081407851568432496386844074019435805844619386307807281764024560159343032141495927681567215428642327430666834024379531273533688945276124528449746839011848822197203738122727927221550425938596834689755234399539780483207565055662753287945219551220387367749434862515102377886307063738604185993519810179612183774040673419817674365675837019383265521559542786475178210388868046165098505924001289123179840753853412745796777390102279523721914260051858930723058738583515537134740033727403496085374980687147698938523925781138980326296387732067728758221661834487069082249859464728665926420559606261269708358211182873608108757823807224399389913391276965290730935560172648681735130157575677980702478349784877217415241891582014042970228624299884301957942997704123692540295988650809459819919611858515950171987221191054660488545259762731613224408754795025955144804846962974387237955962548963102524900965774419649768535914624159639220993331484201474273502461323928090721671304584581459638088345744141882098282397174443961618764400028211200434102874198640789388010476922314047829109062822884627626264585180973237137201029164365067436167684988019409749429873125682413889725403433748404285653730935130922027248729219119642104860903818669192889814522229905268747911400000241673498939880433897506624470410351116554674828613216051139185338178306915298882958877802880169611537787198045220692413916117508492423908179774799487302633043486611999855252322676381958243919639479552493106080382171261806874575161159019492975259886981239513831524302969602998275821311099132143401792965792228493865040252673319874965777057099829048599455580040254772539203426497558571005610126249239906327395818827403590005889677634309230958498584863162716029717619311542939691765632135656107581021811868571366048875687151978419330606296339492503128073409685542173124607875206878656103822871094460823861704074517707076779144577719807865807669315808677746022774309341610269736528086179323474940199127617600004456758363692009554656326868250517849250180633336246513115220052774024268563302960099648041508235649665915906331653981547540587298345686972707397950592821750264326738908488014815086545964711411403824795488590773702649504645528792841683360247044298738985825498500514649640541428585312515964703085241687385779562865989206915917477811029261438886278948225482790496703649589747650082723306517721858701782396267793361462439340579818075393664235125404772231991284019292398508675711862512891282011812794416434465256372157104766349378493239980449271330331547353306027321908483094936788491619114535710717869273565422493452029054156672886096292999967249884083605724817908447002298897553171886146790774307909520592601628718434818937202334858808004848283099669578676876042921697030415793202326139672707185438119912854459113722811838780112371993958884251035231846314621993752409638452563255901976626852072334747003507792265858119398045523912504779627600729050585712085579707519467143579785540170390064202775913973621058918423933117697650286700634493842427018224124376540468010394927031108978120330893632215827969267821446879529453955212376843376239477570726850605097294234721859566160705290842960458237532333692578267964101900697739609926879370134897084381552143470141643718783098469241579471078430943256308738531927032803201623798370244013470410587467621591657578254364424484675578674778982667145021099534486793612833077292615738563005427898045145334665106022678219477603463978602942858710168480962882687117269368802942764314143277862329252914785780844287787671638405870416607041160862655574067663497454388241911867381850012424624192434046392240514338358779106462261407222830954425722467520083511111782974258864327989291122431547249921513386943246439825582414929806801466266549562080769126321050571262692183500731203646011357726801136074873514246068714083270567120302659477737718795454275409431522987623319754397996558229821877763730567724301488687731969812076406960627599945495593113725832505015496555512178601644777810818638346986581583496305199144244175239473439937525752262850966232661869912010347693661856063625660414691923453796461449091903265151792651793916275903902220359633822332837147760299613403404749740714824623785056888596483579892965872567879625528556582800332872008848909368193422516140076002019365779680231579376311454091781092952345538105590810224923730310049141905391963178008819992075612383811858915883802302562017849731358988381128684389533274830177083497742333975036447460193976833544594628979954653188569858934455189402332000834291939759258427996566285774594116511454475374222344064634360411174514775346981918780578588622084527567919795581056336050101918816651000840265505590740359523902059177384768029669883059455166971564574181800479470089471454066743629827532642302355127976369020247849942608964619267429646885648569957617267058543583268203906580085901895107117531678192125340253070033607501282149763286013101709520725764231637467270690108880134473936681091944839838783341371148526301825783750328260196572427720176299298095145009416319974525665698697039447574271318569794955969367880988961179498558823559181907682624300476006108368815947325971474697506798243522425451292763890160820784354593507212551897432678102130612280943946383352868075831205954646541999118957417176865331908521026474146644054837965607381262171369016794567495297356550009810967738217636849639852610044328713212988768993826337122445933299171319512823607259130464385548474912883988500171386556502324916146864386615689896570641902780938796660558713294135511465727161890538943358946548849666264590628412818984323438304074305208325795197674827485098637853976464430902918884212835672623222196497769110930201600301815386922733500260259410568436018678006341693695104136591295618871791349728247886633847550878115473985017702772314019045435338171933066153307762701776426783187502732183330109549610281836714446865058122341816950628908938415232799987511431302552794693957427658422170827973002617279196920211048798480321136549201575543206876208570822618186827937381358275571255298571165857363849205821103541757002146326988653161030172924316067590484372214688870442052171924890674408990446786079582105791736767152743371997740139328388408672151276969721632667402228811712331154736714719646117292635655946713898105344644232877334243810615701818188682514485072724576910348507476075839402857450128466430693685402799955207521618445581719980557674747430287733228163770814314481779020509156531026347451908481024467570268562582868473757560608687970279963489089772092580606658027952830078752523761037467011713432443572301396517332163196175333041012578185136994085343849103292011051154891718100335428989908319055198685164327844469001528932207703602890322602273481499575491196630419255561594570686087966927147418598281567937419399534711187307372413016074338393916707190590584745789904626976322478906771162841888450070908519819568145271880441112199228628995585111917964019095220100152886327633707532287545745187360302566747430209128837393324737778111548920384338696962141213898031803698138050339395677807128400019801749990860475923283880308787462105064102212563911354216566945724695590593333203509598712907698523563744295438633735534872955378931365625230246970815222735420931455071176809228101660613297947435673817058782901126363661890567984873437386077572413112280196702177235064705991625445971583456104183417867367413445459489368210104425716672149713912805448655193508239338681571686358874086874619445901319462192392378930039282418491465085972372983165642444345467462582599780524139195620526213017713124584025828083089783833287895632076908537238229211944813523505578007718923107989215339608660089346591799560598703464714995293720582063931997204982454055012541989034289849395003233339756053834790516526459260986821420845802661798469488643176804849208186988433283330204138846598114746683655283705612793479141765550564070239719744261471141854604208352121404928590397950950488968794438392315314780431152240736840301537051948324696857685640352819409771575085587558753542728966280240723325893987216648149246174771624373952447230198106886489619156399497991142196279453723897248715775191467140306555824213066022978649625960418351776582372848654734523425142635412351843712660485048845521439457340152793453767305016064234579189524510450021940245701774596137778298793662802135764224804225112099051328970696314689588535377223046059253266400605654487512838312083016173179554282385166411534306861704720121848005933989160547780319446276170762416241391487808556667840368803887412523810920198744541287343634648228926183144493074475864560843360852362026574273515462705794214253083300992548927373836673675106109751909876612930957629355264388280652072252034043766860810980181586183838627797195539084821118445331614967455031601261660769372999938384065735732933981484913296986973905828752600833996520846198192028704563712765728943845632911440535959768892465250252820655447557321405083797463472192401395065406705360869236579317846716514403227025784581620313819886211270894198797331997767950107067202900042539657075121091908892947851015367044996428102711036466659052293884467837230873680871673473777926278048243573415010815367356396603716717676716766646637563399685269838919279324192931320562621996756343694068363125856039474767858432260256552139393345620289672169728446381869766869089562059199296643033393127746802278897310543929689407240622392323899293978816759754722697738541680802629016372480241019730835435093278198901204718611438454088009641706658241724794380093323424842150044371611638565050445281009248269302917071262948233041886826885398986667189857433547854879193380679137966204287087034121855614656438118286303736118712223698818582695330786229211747412653817201933383176283542986294266552059277385869868657298727445065223754379815153742340730200065688421390644739047157447873883019907846536142134990597394011562725570670363109112971134957433971831456702046264183478246658826411449484333921700877001235905027725435865604391308186889277760897100899970855453535321322118387577940959549243314671849024062051983370776574833215840721039058542436892020834842038811070789795395601699967156244653293566699135592559998162603645681517124913648017296158878089524124738761644528045020173599304073412343666992937156571548097417817516016039672011391628349445314853829798101331097047245471018880124213746622504114051799272316987441549171449609871376744033848008177666280820160412063007006053580344742886017273204839215016273561524317786057360112387820460655273304091911395736749581661985700089403450981193329784285352994042547054607511897127953231414358222587166322012276989929186937174312356363704386691612366739681021000080226780743442519274533969910371163373636508648223070122836556224174166673606173453547215045837678902332921449103750938475529348622895861533762432095975208403593337296920943434481574084003240048805163054020976223600947258899666568270188613958174398952542156563340817577728624638194066074231648452832255712156678693172119235985184003455437972317063729197959548951985705683480539604395750048870624008725874587170738527063854849968166730356745891551126508633749346205178381628895685486700427302192597319445760797032285116822873716930599468518834030915608329410586063718106181388111729156447672922280395439335730919438420502937190470935573812295431803936270175534902281412772906412973739320029297850580414169253907868214136755662142006384866233907650790363027224313281698149011736626747137736751939625742793996644073913406183800211421120790731389827960703281497140005942663688523499616916691882465094335134440046927158228549908224036132084990945814837082854862495327234953770201140370195073589659071150969844524694749158244786179955215643192522158247344817368928075885208270166440950565698410494220614146474955837956375437063179463587628251236316038210404525013267927077483719565845274445417445929496795583044171900210183130315211782908558058751892627803382097103400200141981722705525390010364243043729810590539772912227868937530257510816899123052817486197123925882153288462308149328014756826724848896248911809261674675246077939198526761147553424028710458819366921713961034128148082719346797751072574724294918252280498366418312023446313069389445382712327550942819666942498080328676014656424549084837037772037592866555646403085045594809902956352691879876374527062962865010594026091795842438444993088983485220446948452836458473057129869651388235121704244181202771912356933844735195824414063491820104954991275500790807714714434381156755886570363295938629456329810815516537049695107937340763247180480905236418889118816046378457248051620464574397044181630669518505906537458060273638317667192849438775018319637329958484980908035251428537972374873232122731603384783858485999947070885716069097856456148445859020202163370089600941966759091954346971092422669504932263865094647977028841444074269185906711552573267149845035928894516630102819444822913602078312615802330203385716750579490251763365418551900743581487478975376159804972589772011049339031310431388025502223724360785629062009857397263740225107076572512422126381576625003723206376395023631062375602038361410001896012949536960605364454394708487587018550266701385717596849967551078527634240659111216047961484468418688017835208395462694880030365306714625517783007374056495580038473549952071686673747815208727342126778105901519447674845091488193835144916941506141384284378887596687977768540611225269475910957543444681226259231499237590806089947890406272765631631144772182930371510327211676490805282077315358091022027673082195078176958730325661147579325615752845848913642753583150767303858227008434332650845502892589242139969303728078856416520430321556673810948170813483092938980194936671290358867104889869613021714994139663969425912550411500512887354279389355193065131292015473759620421477457352806343440278926295737060800563944002495213658361676053768313125062675454083785804881710168444874301609973270020795240028970824350025329447771716969543511775763617419845122409679944120127693277571204805844339865684468636134923105041578460235162318160184320650025332823784755940187578013394311457067413478527201760846575444256899179784003293052066224578383882450619704882220126859986895105550039157994810142954205156052810302296046252367931715587465530400945784939065286285082147072941484387193913949027441250485525839846816999104897772521883038600918961856834306776339350380774596015401710296149625643975062312302218624344358422819265691860660432480373125195242122362446462544170274404488852795023238624945706806670750358632004462957320470478099249420042266934493056292945147552099612592434307127020921879493141862294651551275280703488052402667760270074955571270523129525298142654431629526769875427419728402580360025402842283364206817462373075401263862162817132211820232435735101483624863725010753395941136165775652785709135033696588450898696375482978861771843080394144780494170911102981110232985328905097112487007150639136194358783640492798222696975864436872281843845037524866958653055621632737084580044354849255796586790846177757824027793015214188735949697110174607876403889519518328808128580997701390675062640549633708790409477980678286888020295415716352564218561033587167358401223258270765620233056679699896755827546022511141202731765303910236801854757034851258457870283982541596212882752010939600457272538849400594412527836824019177731696950426552767586952992969825137744699376017777514370159403271655644024422509123762229009670144196039218098840207772126128551860645450262321450432343050146445584844690243292881570122923112141545530004505044089292867931922979916510443032435487567994145358264825371663354592994537326731892805004466884846090367525045728414915681647815829402668974535939642740249541277746402888274253385669655908504714580117970740669115622408107804080377096788977030167587803934107000057945056434687417514583191661775504939298929460501181150844320255604883168610987667984845809353062929224628707291904832633825864448463580882378843392838552029874441082003335083024493822679208738048684016056296335646133142157383723307624306481775115578106033912108542631921483139091054969232279656319002156997912661886226771323074804590507962862669317206718458442263604785529139174638713451243130772344855377865350224731490221718794232887467625378638397188307722637935548039177186210165666769844095781220107288463376900942797588735308841148565921213877695065468487336838894359760972591989838514893698720226793336575670029884987476556540951032118201350332613695767537117516483491953568846674237777221436073437458043268789684524564176380115086593880138677137993256490658191256283186361755459543970093181814211076420663120800002196708738757104014648588837980518003086835002992951571842448003510506811618472762557604257215555983170479968074149139175496481326801202638143524543768816466208597206828702416119542709102279466161872268904413991294958491350747961031506415684971419914047392436951534148801050582038807348998206948241579463874827863694502182309171023247416211474802273626913789472997324833821068638435541752189480463168924931890078553343933335043188018490547717552345674469032464648712690193257405476422681823937948459938350932786646850043353520410764602849583453477120213187167587321425660848721742881720453017624216822414693469304685738751902320971319913116294361179947803581492069716217866817600272063135639991431195614697845513119352534804936857964466811495172854011337945421268598401392746163650550360039257424757886747424862103880176200125027309783506962294461859802574224517003373349793733380018477998160790829455546885788201168186357798195510964769767585517493521327732515613992304912114368687871034217565492920787595202175102645476259508199801193490364330801199080110717197677140188497139033669764551279347461361105766595604636559000485562171148983510369214713148147417081954949468229103169154627445712218224360745490379900151506033732129556095803307778228059144938915706513904436839841800311013890398383901788575209752893067646020472701033820174787786715316249265632766474613672453240484481772426148908930939180330723779292513714496704301962495576297163282830955282089843188274237538122747489016928048900855316394127599220515649223040868916421848194784281069512903077049988175834590779413115074491130553957093790991680920264912063902898590471233723065446041464424326496711772698318785045878628018608938309131565689792804709625296634457841915066832155315831583636255325382440429552717076699298665284143118685331344361166195176430177334143054238468598465759728092310111349180471447474558092830208797615435760881402823430724082623188309176154847471074557042355777614144604589969273402409290747873971757822637068910257674789839287999494486589253121845742970500318236956972529920964253431166120414450053435409447696501400017959393733056517394954429335324108962793454652861598636289854883990923074686660679471455335175906168449635301730010128545048831312940775773696165092533471515106836458966222460125405025358049664018341897692876396989597149605680683825063532460697557192907422941462040708931356273291746223570822651250580272115504232493466347736275810772838653708787548631011600675376906774320935451377414972747262071398856264896892180827522883881457672245904748449461335960806415601850806596304659917888967487485658584392918626318307030698495679888961435880255246190313483320842180166930807461680997684328752252773084283713360599597939233740390813074901481121732414137748593740905606841043767649052788613064580386674504125287750149308103163378812577284136495479672626760046693185158896566274337563786312089632738892089730853015483835653480832941256565215927919432943799223170106498050223613802341872859557716038996364919749994137524818550420561834488983868262590992407664090307576692408303585187097748705749924400883766381073353469266233431984829806322601816127641290946335333378509327010914143686519697180167623348396935671604085396179568652682235954021121615398791283920907496128944736328440061581943666299559426955699974771783458761985779240653108694072465751637076029284293012332010282549072428256057247367971264612144319114538059661407726306214059362158363651189311723836421072121303231410670336243891028732920937502527848130031264218503906003686558724704374606957146273055598940221552950911783054607624574989373531760157353674355216360383616748858360103425112543173193785802437569270058529318039233968649741104214070087731830763061665177168052703628707338628147384435655146388267616656412771635463477562327093070347596263105824959691207287684062506097673474047375442907563072111261647035677923296393303254500339493190133368565241290748256756638556702462565376250247568359365168206629545725916070759026039507556166782758562378326545671872749882020072205037725808564450032653222068964771066288262248536655440826487034049727971435981264389202539193344899970673532651959739112555682627462823394346444984824983026117074256340045789227271712974243480725275939686415657162625306265510406532861253595299545944299443141924633584938759585975260928509816891232498566024534510383068714183409981278391434244640355032777397867605124371649039217086276971114546996772413925476566163547222952375206711425002325158485684067697846532487874010282744856709263334527718403503087102190627550897099962969999665211903498049672733315386122977316329306555949892262323335431831794645638982914184441357167313120371036892246796495228461581053177533159551001688394371192293006435150850122150090280915097463181027574614986127456565224823775411396472505885720777797317046652332824159422275199765092390691848579075328059503104778975399519902243453316197427384597949054074751220301409099612205377489461348480097644647362907551789297103037817934610197466398545369858425837966513359801271242914799680064117161494225016594945296691492233076039560872873616983638432384919432263939872683935378718616451060229849856697437836188857095556705738357012926650933960996634520532133222431138486979421085800942314858841109513660423394518191895078143124501394259230584724657052460955395988169993554956851781619965548957061829815048508621895839775741475513205575091630758508361761411969631055556342124209085589141256149356801284568155041260656504742525667837350894140951803996438307243063070574530461426189149301368073960744339827928598308805971196017544387055934700096683081865079268265895785746020263583492413489146049081945318843076369326852200576319420589257887628110666059214956302450727005566899173169165503940920048115840383929405242300623405860472229341493806856666360040219942519286504927070563982034227762319981090332260247332777869886592354758895994508924406670955623173069746697749801054535216060339735481138063514547918590302829870840053655005262904341858613485939213989566265420188567766426834608724081603680077564781195618287682058879623820080736288853577698532219942516969035394054329967763440288821261272885384206794414414646326000241273989693109099970577761042292587032975887695064169095379147912008477190306015106752618330688120145642713115656031726371311411215715978927186996426136590374002452058418625659597649947314208217944645161135063130574292312692983140835598949789569209628025489567388713272699549205076148385114067045665771090016540467633451852851198723445928736736068585271194813063489016786757725039265378463445721278396806655706455175141546722881773412088382916550812983328339195930023728628092534911682233778046098162850895333873503754327674447899882551586829492878096824788196102862165987418919629108447644364731844578474032476931971372018672052270912448594193043326531715699194813787708646028765695681758920994407737815286930799917733502670670059102647568529850077830171963890871944034635463726702815071937397307034421447941840320560688040216340130413577451465237458196451830120271176266323063678860819916425096351049394113304996873460896141515623089488851824081454732589425515229441496556021077524931368443429316973967248715765945032577405037366844402028820041316856229706003160029478895475375386429152893061254282317528161399788323828668923238409237643171396868665642712162078803000798107108256350392332663451604136594732364638769803074176773723430097041199187542580453531356775491631130957448154126105476785536238795759020303359061743877694548565511782178278887857726443387489950773783155079245824898310086245122813963664356266920441504923226511901196318955179582550083357696657771857589351702583065126198923050077067724622963129664489920681572022292838750262024458984671909591874262965183667052134434438340153916792057305945388116125409250083237615920807917698066104774816962123730665871722363393524798268445257770811050550735644058602770655501017774159276544320411343521783986898073420388693130780612424313418583083915088146367830831302518657939978872941305805124483889919349229001375166118305252206763645539558805976967679226773897482899929623297125857240745746410426067991804621726937239024187588114386928944117224672549651002428671723352831248199912348135839273190164092312620509239079058069598813511730779272918070908034731586588393934951688456074738786495674624308707018068707387906545713499063677232457264119247642697853593740080030145393016509059763254617524563462973965807270708817988611345206537707240357666984371121494945834472535184178328709185237407183362485730579121060350260516440946435602027432089920870866393147716903160486336598699402049494114330885728934982879452793185546389746695969842443657666534738011588224317779458805990016444188045885126364408819636440879515420519764282637809248200108891717144590608620483086284200298313457837733805241642625553920818614822656241624731771018231616455630612628709870101547237611416580575571237051684025841441806792849246433244297060285926933153829699805566560825778334460193039432805299017566080583625144430954630645681662178741770389683888126978127178018581478374004328838156131539960130130091767289224216386321599005656552135294978538936069109756143943247434077542462367158544842080208495294328523276625997720036801926179201529955843130047672231549263172962813161734869314172482484957475447409941883917954853375266283121017418155112255056686792948081774495169810670886587413177891157372467230251819572233071885615679754246526370439105644519686913709500889850136123003762935503402353047321507959284773055489665256871799581283414413975652699427448210322769117299259909617479186150024673460598048207241623456547826800844845737556624999360497207243293820731133937190643087630604808561675501676333249082780826561963560562727216397750819364510359452584357257526840618702522926939577866651013545696129647245576181293480892602331769435292187299076593914487137934850217415306120282027748189224213123732758122858150664050744782758965293313102130724381013083934001277100230240452914856761737393104127201136955739768081605119556004632844154308578478599655693121434900895797742187815626611053106443695308204379527728419812279990835892317032011420587036366903770581943097510905736488522447711213409488245354755709159220681453654551405663356827319991443820279786834001124469308686629664588565802515639159792485742280841156967311504577936036103074071324544608100862610910467832644300024232013874343439697685373463304315506326280825366970553489183826805710805910932521372056924675411971092255817258584832617000403541074658269233359819490436363523789081045468090757124043418425763849989103824527612248305311900629826737275223241180436862350154813077168450812201107167750575795460956314127245445295088829131850391459700020385143318738115584009800683184016391928712464052053117975478986731102165527938327505981477148612214990463523801976080696084379586755081764830507188132943405530499846078883844886305714793331273938779047926672798220036167991769109990913270490475938031232678351496306438055324166006300544922559893860613178478527681498870939001112133935927871222569532864750026255163545870069285590415856473223562170398660996864225511757963306361438984327230414616421127848707298202220845840088787963357740803304866985602070086961150402442994009799929401083468566593878784371166942943097758476445998633409785648225205237449768738289700581138634429587182220889297991435998325007648289507760814821566413681909460826947933482913293343866415611562180892438484699295875208158621453325895301499616509657310075307704571315841137357661458406428755359225453954522847091258390014076476961077019782222791316078776211294175606529351020468757731534923201897826496432411500639358500225697779826332312882024528908839319444309446870302628553897139460227135001755725124755457841796152401668228870371172460859193609175271323520964613388031498439904493707114772468624178711787235255394034655720205518919602763465546171950176185171926237190737165035807674552945212032587472984849675610872233982185448001915547219801441665057629009146482903823815940688694794202804574371165423740887691020364448806682288904133818738657332356954530373648329686495763806746484499133938872232778114867491414412934596808061130887184759866545401281244816110760707927969927711153671109292101209005753700236398078888164216502392742648228864518716788360876453826893109287133696341380922021704234457498942655901774505151408653506005623874568683973329415298284548702431089812461969463917363230714037723612263073608880931355199718540707118066910330315527581969747349291951368919760524197266522812898115201177926694200501922163687127672196496986670556849730212602301497044723383036862461391908984929650076071976718941458730531602646600616053298360874455636931364795419128202209313908451880262504846078563974537463036802126528970676851337077260595225337979191234340558930177584521070594183574474722169827157932590472543754395977022092743778759086111329913578622520641237294955719397656651826168574993493232844234150809281700229351208834192076709542927288833945283097014517829212449201108771027719467805650828996339190519226498305598993810599859964173024376954259230850824478462080317411276840438962967447953267549725147954599737744688347212462539871858765594002699921626093288849689045333609060876279220081731814292407307873099853286582548494670060407183888514202981060831545793138538517021880488086835878277424763923473963834218610040565888315418734375063926531331988557450943617516639084176065832223847961550259778382513035853708992700390498356240609556150527870321787907823831714686303531247523474587393148366537453863637965419518214197627124834001753677893708477659451164573367019735926766594049155871744371177006639201853545559936998698443004780409448703257520177623021281153291866866430736768799017179903880571319074157715850300579049480123535282433440920313155763576695509817843444728139131299347706004174766925664841983698318571467881013385356299922774179211737963957264390507617795275464190885839903437779979767740766436861741042275520940259231247222946393604255920912689486000100884581269934464207504405290919882517085554493509493457321162275605759563890986599316540947681732286315912258293661891209041671510444844288548091937452988590297152855545127960749533315942496662525049225088907208683114505500792585941897419223110705333119205265324064452220869766267926708700991671135069204105359249798745234356725211739050916133205980390985106229006748363263985612741202107812079690516576404884913925455192768118410583370122245351847892705867463182863799643631869602842191478444853169479204940046939269607014458391227214485695537005740924954416353031162048470554272874352243755438943024473989921397162727415975332134712636244145422178839383277991620401751464544179232261222390998848754254279337340799479414771161434389121481953109465627036229001607408725463957644523155221292517707134014774360277523940662481001270976779037113044275531733884469149560104551805786106560227801880836754256821476182950992770034985709617592137996003195204954364417183836818250382951049192706606662153814104542740833307367741185829138439973354345414332650949957060053582498606034902797564531490150012804696133145707534912396567050717563921597794570224277644753307696060532209095669536110245171402257668513258315096006167052735740271885056080085442531757204076841181062737500067870353725956366157686959229229107652125356886486123788404394470969637592684066912572098911598834199940331375269471260362570526436951866199753767021350453020195791971914840030382976702995062985289830455408646669788363842956306998517563345644910669901727321683476296360522316644926441199019566299703244016018566021721289150094935345050387641694471688173708306906914969011319780054105488820938917886038381730344266225509171628723672843622774940997353197692560372086719506185491462939672239972382191114017585146036726553501010430552683955793364362508898754105753614776093116821479363648208419413982074022322712041106475849931345423272340610238134091118684893115942634123285244613974641661364806339916742411683198640191519411464416137575467456653421073024894405578499140401024053542120389998393555471515754623694786749720826183232268457706246428702474390832593313203217316207212480790680886266454021127687093559338222826980678288781285033879224548557054139827616319973136317783605999507918423864538330362106770299814009237591023355044870330658489620400600396875529799361056785277895523232033699564456149358285221803308060122437106307232028662508121404084482665961640123007676348108788947640189427034912818200970051010411769785681483231690115813973551742157945689263197828999746666229272629641095050818875712352954094765854972097380761758064829976854908344046180663758353935423717561183870553478153359097407621919477311301058484105661449616485637191696186930549876520594479737212161989690970501666540467464819922317991072028889990315432073358178511263866703717940669471270715998418037926820644981967583032322402918842553833807760999194786520270224612604500519650084668720154821755218978176204426195410355945337448950488873976253221169745181402699899107908602620010948293275907969590503246173676606177719072308306416303015107587693166748393223222787175058780019576404014519279113298090566222002522154647691110978791066376053019269193885851150599471674070567148482183287140637115984807136165635677954384534664284813787141146565085248458606787647596525605906176690241034880652591024468627859445785098412155624895880511385436754660196404813532116621873188287497506780687913845609473142760553075805190151640646191595434290092443666884327781874058563703070139883053283499566324897791277001831508185235007505586355797651984484558573395297439719185449871105988759649427521916435637104667750168091918891668528134511113662458447587099623423038487167548587405616952640588835035260335206656213942737149587019624382770400149317560269483729931199024865770351601557626100462939311797901634863774638383539789937014142359573506118044662774180312671472517067260646497731472798731544833804071304280196451657479291353184173444494300229401549154076201533621988378643474079010647635934880079666511075068796613806633154943875931564972252202852245996981961147095251902185903903284538439889904098275094299152902090273969932338823158419087329871214834680924101977022530040056217755803036379538518598518122723491266943306575591848655535875815726779168705570629251843158482221719511339797991786668972298503608635444710336522749316066782818838479962991934501428081069501403641021803679189000612101922413416653952808176230229373646905393608687698580894533897779967295921542397910694255524493680907707445335114356314174698641643965321814619778156847472739406527108781819177109142586875448668214035189636043169635612411519332082017188890505064071555237529360675029957845544553767345362170559774869038875945646352816567808286336334982329360100518646536190855684757258497543596911923484825847702658101205178839113894535404713588681455717457088658580350952972193973246666113357665620248855389034938335737323459857961400362856450518532605807635871443524644014879670312128198555625088575090606847968401012592132992389000035137782288977382522132254029871715870786199524366151047812054345047574602611686336846199839033312062098513911434150301440205537570535658023623132124906717951674982874838651835676091106673829114353459247704137625771726900450342866433866118380921649692336588986499853373352449410466856626436640497942265851279775350864871701939368129445851697752152358374307242019999236255423837668696399266077235544063970813210739448525501290138259937972787943200487341591587834605786998842697949750778323609653753457523646467102793330669586766048777190436059840958866950442012218881285796683291085581695913925801536092170897441390841832562684276687485835281706402902171666977001673566617833431941514549027029044276515990801860484441560056293972670750972455052769550719383190044875868221311431424505069703772792832985181010846116332971520564337145976742416232894261668485816696685929634853124897634734490362558143423860324963492764250166475840544488053775544788820325948817823204472237945317150434194266439076440822386476215794399446315585748712256073511904514261893142282728751327455422699463431566217423678639052908749843746908345175550861146953914791425211440867748574370336394618376156951672769704884361831951043720330801026347351588471747037997774972729339065674152083140322268298161303414295690616533722895553808978799156132328199920084942029750747199706343767501677731477554074750891164463900803953039923919865918871262304814929124236514336543785156867582429421888089388297348886250313566579522962042671455809232255660344658241383050891223826972456241419724336546943598966319673268186621558269409602737262150279700987913873328529326120534542457202718802140019193848173354181873235546763974015937541831701486331684775940709515157609777227963125336497396239975330415288022310323682651757635547416111319429221940237416804104227565555823657721765330350020530038637895346601745679682288255478406871494162512518406435560551081238746885481609723592130983261823252703132387388590965018112488714404087410540038074870233046816125494896707010573079346162198396100626767854209951233872876047502822085090001768756982400267226666709753908079326784619081654692267944146016142916078242013602511051211590559443604268443012313670620643482210873855603843041936425366553615537314276730452206946555713842490187086032467308159647101080476999817160913700376279671189353853231666344283229518800837634808981475309596061071410665442041820093468979502963565542515202166830895786097138620120984038827431636700374869367496020418858073997376702254288377936783572474094307805843342420775234970507012408274429325543775213960748779467680128668913810207439044393990104590429247906706283606213363944879493318285467517952240167161495910321553905788722388612723138798657681532602574121049987362643878632413135648837986394843854924491207487253361085014145008017773709005411633433471920169330997518725382625685269837586769501435761747676399384204902602503748437596965695070956757679494223387945941681063368405084466940174350267992584536204630473683703293476689501604581823984508284026466557513012658551726006587023311142358958065044366081908730792336018724396930854379226154728974946402188495273812146236181952171609273284754151377491758543973458445015397260488596293588895540779703412092790142414885819503584539431128362231805566788624122588351132752409284103616332439125346543394652970823566812846467418373991255930102548062643666255923187127217939604486989811977922984646735892719177610145448558354795819791974506098407959114352342826215536990788489172558868499972639672599165799079578937921672327474232874957600363046702777074598128473899067877833095754037182913938828970231397650703741664791997760136907188238941631726642332632672796601151764065776693203564532476235706690246307846215884827520404346632750978774246500039324625192166302657532985673379507532645488968039284496629193107421943001222939804391113645579335744329939899463622065070212521783693716152976360748531122328951544528555711894232451212055436387417467928403062173861829443446706881593403914357946210748482327432606915660132083886809886143930819646090152798740262845997760652054466017202098057683463251859699645300173353798395073570795475351654974161255398900083454215916592888230587794290438859620639957200416854353458662044160897693912949577851459524654638345594260268665629506862087761250676538247498369242181588018150896784331814212050765963994954691114514919504878098258155797256508498686978632780089805280785685030635501137542627198730569282594239212048231787242132104677787087123910133478037806388571999375733362131977458171027727923570180230315838645543314353690364336749201036436170002704391597643784043884974077393393045253863515619159328427329800905852568335735031468456320588616672656727250192139234138320164295725660129053126403894549516108491354374062949534428191743259620198570652562161946438648078271549298766474278405511789971214085543444054790515818324981791895704653938054646279801964573344215729018391752656183141484152844498926799505631975495916962100441884246395662170230706282666530923060081497831715345247091129915778622270554820611899893903142864040289439746861439315180803501327774876915133480863048949243350570861853917836541235190256174799330417888748799217510036994248965744937149458023395431723308978925785282533561936484762189972345371482302869921066910789714611895827389396375157078008820704658889071598039827944088744825388310000791086569992281412149635768957519137419612757761511789672526478080215020010945466553513470648779386689869007529242599312560212466204601627263490633411063912844483365719141585222577473703315232293965544783801535894871114970033331516925746498526802466870026458581110610332191438254694568274476835098286905304026362877886157124034827691504167903374457109233676712167611837066694276894859577986772951018213466258472303248392934715150301195656895500706648167115828354926400131361952522421972495054337006572033575372962450260708946783313869457173328120391458991167080722745928701928476748449235271353642688882328212627227111176976974420627934484145199202150474719752091923383095068749055415666928525386277885234400964085776621997201316499728840113161432078708323113347224805728784381251470402496724778831188909706811535122901674712608236286932221369970238045471761964237821170588088565030805524967829305335457166465872837419878029002328874724171962899764566149761096598141794321714877187570814056503568246953071815766061471048190002264735556460160754272657539570748507557083578945853887769830383994588882873034099999633763277578604745821404455999917218179249586293324986590078526123001444112962668446251341716983274723959621234128237265288455539870035043299792892818289626022954539071584741664827522183486686895689112029871002326341470197520007013032272656337690607646700935949271330397414331123971121611762129695789115135214271498946112722545199809614657255476686280292473813901202989958248656344838226329667246258550989878995690918658681477014989287550990372046475734844973489348239584303636005736306031974558695245391749511210686943474496773654626582413130075934665905856564468243994460126271427088001709861650687499216587586261846683833687631066240505695483358005217721382621260937860455852376553009462707911664709054274855275961546242515423780691536462951192409694457605686279015818950860682977424047154398767260586265546427623238967289289427929924803597704266541561065684804229960482054261369485109810288851856100593031737319122303232313935573606556126076019756080933404415799295013108000169688977207821627469284674905096332722198522064241515609176071911805454490092911488208647950444885014045406916517050416330135143521378008508519270873072177144629640030302014667232862930772982782125419060608401387902928761475770504835286197521603385306966950097186808876554457212773239089093740516756200047451200988423046196428674505213306184556961126276007957852742299746890514026293665042360855634933577685261186453830902846368191526067561505040200282464966436462829670423483877129121924790443466866849555452530539580849231837209006179701337675560993434406054451974686589012305979402568748218293043092935005407667306610591765505723481389364968513459789785324479617076233055046445171950314535539686486463725882339948090608037085813800877358592021878106106301465625185348656012849646859776197697935197016405200983893196764361666522348987963670612001106870052996147854357813692850550165763291820702471921272481560239372125501886997816486502168881070164592082957690371926048313107083406873846236205710543863672556314564346325537178111421870777724598527450005520792626356403199280514204541032042874390115109348367929801416371471124760221727998192648694688143589372410570192202883166101073670282202373104020352709155414145700159925691481259669613836927581455724939024378727532026345745701791201569387741987818483066913927465111103644635867956958580843944087615335982574686881695783743341888026811320119332518863039620872006960846953301959995182140334358386210863556240544719402600093858517368811958970938180963047773421271410685965991006254375965432936649815672751950775969964694976921965985900355609246493425994166057022788009146391817528144707325978671723715394601114099303575618223623921991205798219939867770608664225698319930176018090086014188775476960756628719900327705215520127273673795569529610358187674155480046762323423870197756361599187008065982348214934849047047872308762709159565979044289279809369857837386065430810653835609390931652826675553816828498807400607381052405869450718031427683548468514829399315058876524818419334858649633568183090863562691758158666791666207133734056273016362198377615182871380027437200129171110666567091800856906327556809889040129892801338070303333915531707697024240232136274605036399372083363358988184295677479519693662551605222017012669419951298267493479011110869695361562423618980138842414995123529564040769024953540124449682299980317819344308599991574039868981028255865473334772783112492278833781370873200354414199140556584368041207319752913538824062376845341776241993081952321938079173298232472561766188087213910062707021501705611535065558679751422206618591561943650004164972633404449572966408651547711430166486445514203993807905236224745002119091010175733408469049978547156436076967093010047539851737560803542703873907999694559938086412197693900649543198771532668429100952692605904093078954438092330822706495140348664548259249930342553296053944547984752965647915618973974035453133584206408172567254947954773026937921048521740482548772764034905539313171725581879967058569367956377160001814780445817170460325660858623477349175881123728197164950190916356016912190565956938386599461336222661170140459278181560858558864523549150861894681908038584266468830677217192225795307255669422190872551007790886050832204883850239355101068224450264301382619176491165238859620936230432459023053746975546219507388571088230976302375108097968029395874803097496028980776015852072000548272055096537787351822832999255207261048488468838676165476120216389418609322748808103119051944986660050161974231073953170562699686042939895919872031018042062960922542845550405151526501579281137843689030804884463714426723555945202732369203401095478044946890491908167593204451733891365528660793649007800709977364360493277068691459354609472128004104079701306364378216936032812612899543594329084130671448549682542986791222799247226714333121928891763615758876295888802185339208230371281920511437889397913851941326013799625669220929882970719760220873099354794665634994322443259477207043568669693302201702014274761948571742464852504051848809965043003057742757666505463468085317355975611497892320524984622236043829102140222897140240946247971198070735243779668116720740465134599839875898895850800295738656666479740377813277912004645115779063619104607220936347177249064245518777051497237217532641640808304492543834518935662635517336366292107559229669232189912759228608500642474315497004125744202064952871473689086755289847151314933145110259859786141719843012249298331975432100224581754603330213094615491702461359968377105616322269190845306761769837151839282866301999970223445685757684020992280599550479899526009319635603251583381723600730217295845163976177992153341087667379000848500196392974759677333904971891190729275344703941220496826388780292517092575031736582601939779478190359809475903621089520969078558700216689915484874457508148617858813401157077315338270228000730848966980864444501218798821952682811273581302251904758736177097104061894091316390935564688542990492704270106372994246257905127930183766232345724185377035586694877859288275423173894871177908532038444961084981997096029028441581645954534361496250874168698325899518553332429905287933592789426957478763448252177251127981326169528756411611093894028501406633687923886337578092660932213016256762887616628172780550484082578333630446716088351789570613186953098532405928362039111579654601859634440561574295945913342802888384741351066434364580696427122703393984100956164287958280564462139052355303190325224032011361139640599047377563546752874587622914498329128102203035278078177665915954758078679495303785384079289920699820363091329221778578074753981613518087436593515772196155102948193352721126075689708767026400203752977933354568552164151953815561528658829423181403177616191449092943240129931556551947211118014454987528424033041029636127410713718662813163081443352681592960825062220622566255861076830387312323831888032905766603934872600567404708473515580355391230764248547118534609087586678040039051796586242550028428085763307817768378266809679417766043714913747445983905037364664281134824408148699358775123175932683870051657416013349040834455947819618060448134601828365112533071679266887331285987122596228505300669363099772336261945228280410699802014951011079814766164197111572355645085854642358046975762147302803835717670917627266400859421750465442557151941528175879333559620512188727773227947925452405034792813376831785487759064287542271793017345659883774175474968369390881644329081782757523341613443116003142810358328744172133770551072585328026811951283607803010923457304299692772215195793701566974074984044778106729623447298593246001688760740016754489674864629993181223476320136157244986568901017951323007606910428858992601408103842643586441460284497314924139735775501621529797588467012481366376383870915078664305770327096949206876938062932090009995955588451370464167563224770059216895054950851742660334074952886425367157705378208386153441679237403187102783035312237434304464584214019938002289919210515044672465897453422228238416713049168640675375802611997191966466206892549672146909860828623806490278476721201122450444324571276479721324897350086474035948921680171881021718473083975353648838796243552944831087070091190260696101613134920176778403368316200504400350555629134525200816076553617085816242223922478784928701573582035029471585640042160569888176246224095481982227807563735415251425073486182904353828099966629842679113956136439901363701561572387994556447820700007617202130451984112419493362879564584606341877609653866682413996384491376994711110668713512458548579270626704521852220368748252774300788121203499184545653402756884189853657068148026061881025646385890073264297995118827502294139067245241400867447583437139208792837947990983827189632238641106083846513049499952286878191374675413209307100867515282377446596577853387036768102903845372311122896480050060707989594209579804295181485036110266418103438876066219057126961724329922167607168312921929406786721981599850315621636540504354168075926556157929073264317130866924283431511541099326711466182837698422530777614464210891571154238290061896952479041736973587641643744729065687198057677925784111056213212907936515465725243621157987379639456266414405164943741012109859368984286768706436791382189131881265383523615429191103512901309441939802385623363214162258381695747963432183645224398415793099001418040270769954399549259498982210180869045320220630920276111554499074703927861053733104948320218602746860960475576471101139815292862914014862358938386173287581999694640195015094373855555424237654444341242451213068069556725963173093952088926208748978964284264124398141604907945413819683922525130878023615818798047055809525957079287527951553278646378774771319252976127550600933133289509258570369402232661518018963862174504686926664415640900424081629791703726393060623162170264651955198316969805744224646254112212771805308379110756845086701633181657538233463423780476148396505100996575295439339508494459566883063818775597869499616827745851873442396855166553529087778806600935860236242787104116308320929812412491856840090022226181275409339590857821123558332103640455836781727298601754368095642782670570138066651863723859479308018419855873539052785437328464395144192140760439648569976100747224936355987234240719959805220194633534600350355846711371973814272960030661853769409576256609855450484836417252367450065448754409681718450160184054294123054545030439256131440931330754012487799696953271811511496213099206904441826172723038830684965997267261774778479772160190439567615959660871099279709777151289930216758004514513175679331110112346224452227693898166687396469736026525159068318254107753535975862733967114084874439016248505355221944859337808902598944994540389386274604428034372978879691039308530487676144673567836856112805076928723311107090510023317950229325395270955243943448195287862432579002230727568538772919811125229605916734492179878622922103549406456970873057423120158646639868019825000865885399421958748822546982228660606590488287150176643462843969166366973878468079703845859001204626756333629133155424779743396709499513272217334977663253293078565908153012673469438007719836784139265016116848232958079363311792777756370668367890886429396594370777338235926709502781854735618510087882828095702239881413338794479137576318714882409288460747081221572001679480190268322230810530014571671592356571070497526175389209673090753605315243189243614977564478473051817180789757864879595626772362662472863160778031289781894018252754535209596394133373041630312547166496603381511996709766982736434964459971523016441955447658478068570286208902280770229294573512099546661916539122756148377184703848434919707522281644238725359380012194119696644572491563044299031145860593407551490943296845723109274116643425885665054361070484479682658245785399315994137594770084511082158656410521980259097051207581734997982209286594016522603453919528560462467953222185929777702728933284408494711836227493997907646626712452199390323426429881223150159814529363538190225193538081276765814573261344452155712171744004934226694766565406336409900320586010114215308986069318176668874184948516653082810449373121453398156929927588787330669227660763082909594551307892559526067790089735197265728627608517439111431488886915922749171057680943552515612477950323407754519417363677508846536889859625859363970937224037610321546768824189109613713854875915867096753266330970757832758539473239645155170854238307527515215757391611072041736622531089702435914172024309722562866076190044723099044133398883000320803939940294721396788444522593407336636929981431100199225068903970324513582928059114845797355505870826233827436712035619207405560904144933336357484961448305159808270889037574814273011958030194396833728076707201454277651570130123151045104159797199459105801394579113083283320630330359468643115266171669870991045917952773979866055648909801313677232939563917383884160054126801783771577624535646854084708484083821061387016032407455148966070846450030929517331763026171563251782321411317285540461014073113842380850281050221462392449599469375856098759662430479965854915034994048446477561207683704903972528040692317039114105598626108394424376741260761280571420794586440148238147741314484813255882513066397984970453087883860888108133048189838588700733225245352300061487320843830109660852857635658870665266677777176596406460634635905292745087201992016721410715243175805523180190421145070609650824670515859277120596428707714267798686760071595144683530573682731956179474201152320407005018419529211404411030368125184438041004086065209184176031931222093006568804412551220161057184674394779724670640284538611666672627317392477283339914747298249997764850898877937023536552313972981169075926280636939141848361100049182711757313647116757518030647814356336263487055420213373215554112462499949982952444334667049272551514176563197629329929058985191496481543717800659822790574344757976104160271415055022568922249025998957524146644661716474082216190364770660474881890976791046738120885148911915351503078247404817517256019551844703889801911084370741319127052409256443933678452030713712827293551144137671437336873345608019126860360508642220946450913488945266118459571269420832701021118948018531177591331685065599947105452423981843725541812479080487320984248062144789599742838456317181488630621275731332333194766185305071894425034884362861497432999771700758612983903883243343360810226697986814414436560197738780825526026637202324298315674141637097948747975177252251889787728754969476046060797384983403340146436313603533469718305026821024968393883696806166881938588358206485676393480378142597904319441233202968079835610446988518566255784097051506878198921695515824321669108904017098211464957010935921840157904472120305096285270811629398745095662512212648431223335885631969609266657680448403767753160910760351876881737533243666344577826468561096264296412840676064990852912980862176787429580000825806351206801806408165902748091961085342205744154583148333094457866166243862081733671170296235084710225194244835684160359929236567220362816874806561081285001089154773816045179104603579064602761436621863780950892921106153432011656682368849881524062295317282036551266413593255973553354757598071202295312516175412349740614971436921547045607662411360250615970471609732270151281189541689315750398798584487091120889694716322174374755430817692436426635662785269215747156945373539909390660519375769937633437629321772925136417836644149632459112458240486948481654633035856452180365094554590377841384592612246013428182214170544998876732523247369908244509035020237104061781559603316655338169419618566569304873299343213103998207449923997433138323764628093111189497875800562003447973397582611194630122267297655644540382193962944085326602879144158967271183203806755175695270364100101935342139946407403334675967149338686064386080066934420951526003097896830002041998280578091551902805492336951718812680146849423883663833956140992005708369690745320890352173213815545424919679889380073301521875897590533353439912819216423706047742127172801830462892414061986296709937432160565991979260347872368005407835885019955687825617744257105822703966748798513392239322551124625957853822058307480681938597181583648922726459453704866154016839137337940537646443275692665896384338504860994282113594135330365639660600013104535448832491171943139521006001460678252012459283704447407534128518720919016568947090957929125305756225761251222997135932119820602785102468976008008543903327310368582163918325429983119170172355413457897173079578923974139778805439110503569912556869851649397072034576296476215847732666331282070750210372629094321794933521191595564834110529541418621450830665855982298404894225305545289302212883564372145959649446727324219810863263195036484378184503436248123034753699979426541005301003946449038005021679643558664706521461179336789992181895650153064565144617700720754978831702450734766354604066502956220980413808155919598268456326398735410516810837404451202239067609382977518997326418365314196878729444692018377930970215991611859373103713694342810046769033560805841486413048098255058764900398252736538531275701650042932677450607408847894882205408851723987089138401745399903961058357046418991799668386352373833740955074512496058710899094341355920029912885501321996562420800357370032534994499272889110652340433356521763998809764592501333979286181018885316120187848322486184834607518516609844602410873410358008836691528439253909117819163872017734278839049845255848978311179604755564237918063760162313311966181377696682480291984702456042774305025720802843666808146434422174783133285191961009420770061480159212286357054113863566152541781680887605519164012116956472012129065909798642032157859832466016347762572435827875591104241743789188266640724267574824967373451499061742199311647558323970487435907489738705938138646031595218100721045650610970968644817147045849454679364268977751533653910000436372611409484040186754949889271389778709283061549556019699185033384072631657368576598786860448018646087386205982359331587305292026645395098015647814681231739941614171697611468483632577689124810229301647873198409774258625039644178320319528028707763761186854716476508306237712706505011892509173621875115636671649248623232100987916799398665569888359996083775991555832150355261970364638007494680834507289987092650050101518048583112034572989215057143736898728846954712682566811537638182381082977309690747319863858007944863795895217684810115049639142474645141294331010530091121232854486834632743960869617472278025736147327034664528291815187763908488489852593048722489126979866052113415451969448821549700781379688248617381542788298917405460925272037687950891053047315747222905692196978798802922820773887231530708980079649687105276378127399886933286119128819345608639774614514344136193528103481062638957448308039954413685668648803796269673096075549976106186988869963474108363089710932982982121085240881964950570548142637792964528184508537469325598153619370049343519348373554896958765481041319638519830572350446155701032149851431671629008374776052250793482086283172793021255800124617926718071022937179521780899630747721445853841901021962517256035090318180220069836101255497683598419525796399228496573489871812544688001126295761117069010906151052791709845133027203797630994083478996027971345379215115258901720004352046708983089219521141478554335917800481922258281611881836036988858852000825610549715159319698607534662814609484820005999836544240532555857159914872750856348179373674882802264317057281203507321260717842150302069221377300014042317560050439946182258418914998426530523447729892622111906745933497169935992797797073264162865322438300804248386793337359759596410349934390596063673779268072141562846366160402948664168142627517840418916620987357423413451698828486527199793867911007339240315925569053363251485052689394240798490548375623903912743863165312113612341137239401822326740807617911593624175007690840630417947483551911833917067033344365357298099642244120378201722240329478775988266841868155879435470241462107180162768026116661468695360126736656872816814364813793810905847433307563167522253123047136820376136146158730982909500133206726215940549978987596892708775553449181845702318645096400859968522815771559794076728698002328379564480472368093048198883019265131173202289368709489983334704073853394777086266211995357625674299469607628432639615051828724776716805063168433616592607667747940405851135202997085566274974251994261147496194517747877692609904824002774917381512047613255299458447445533749725882536861599094636301282883670636774401440606954537009478308581661120618194148367700182751807070491464213843454740937624141425912734388716065079607166860242852428085217892241764078092893723626577989812703552136371595491424674887174832882293769883558986154302993190981925942095329957714553022542770008365758533970340346356582356377759137922442735153741697876018091722425298296495812765056072927410063899069242817949430172635365516324336999528038516519714249331950176035577517657189777942316685148941905374014399456429610927839001104151867526225060312404890994797066855141590023422641796294764060019368274101104223065185670319071085687236502278448428747800583634942697170980623313577651592736442639907379420016750401296036282918858099798219025954758736379400284366972484943211334361002015952073128141579292026196470375069581570726579706405112974212568999772801883430573260425127661404890298481679741750843563183277403707170533105021815552794936085967713182553428717752073644852221998790590226602697429337743342184514626185853726664446228440412361847377650517980654684818153226079254945853457245819380951171032857600803618192334518094946644279173212236920496141989376236893064251842277579926303009926730818925141597908660948900120174108498238484022092822888209896705686088536378700663805917773296792785315429237420900349222656389512771353131067081866382706224767503054093467750062947766709140393557109894459995109473308164939368363156979279814298720820487866716163596148406099638397757243725598923985277854824330641774306139728813975137981298009494930066678330969926997424874545719910009559552294121629172086774435554941802347271226637423306494926950741313355154256877420059515623567318615753841893958905126319143791849458513985913894167621013065738205246640827449470901463075642636919002266264910890043559032313505217090291367986188849075520556642966784613074202681124828984237456627117869964677870284992633226755663887318460938941935158758127535918667039174148187002328328442132592686444531734802419654648888871351589005315139962025978116286776171917722197022500248934825847764601849366719674492875538173440929858497170430591117711736083351027320669749351069992827240781631851183003026458627684696688815685210419862611850112734841863805547227473174201385823176570886259631242544365283248951635320256723373235132052518714240051479820317556164603305917262692419924247486839814679743816923337314749833818848384662778447643729664160466672206717020388879821678567155379787438757854462719502027922383030436033225903579990731488211788744531819703326300238260529012276720538668370089376766873774620807874477960028127776696209601561638185107125891013803103935561816352113792491893588140844878601822309277509265505211450064848558867258319760490880025941743366728076543310676018199962317381260047199427236066583953808228005522404005489988226143934338116101906991306959116075367278987781048915921308943246590220333154141647313109166298989657214868266132355558728977790746629864149128961200531980500764349227966939428506380010633372761477054429677949388230448398879259519559582297707549924625316756381643796823256617796626052116424053562200311224602592444760241558874636911179247152155716817790161587730089006959219664807710769780763368373151055613581024414921998721727954968411540504041212029239746350057450328293339490308608474915763232395655715443576216459475226243136164411669835158095332947061680154197831536407824677274827796048149467001925344580552833383231291125798579057995110948657072233146889860047658645141258254760210424323477639425726238609309410387873582234927650909950328604401560928773199633087224680837901409991425285946484022056037049735911136405902883656375666772684948679370217783119047288457660221523987869271760835636311257803003480792462268861148221705835454858155804897209546108620352609482094459585573677108346940460140610211911851727356876083989648752959335910177829567686984653189994083157400219415208827803990154439413105932211640776002071332412535257368893298971519053253466554410386994289208573802704589881447239258226486217580893921362527322401448184534681969354219148150737546086394822640645939136815732495582332568329862418080550494670000583887339828589016443633487407183231587404715714650150518694623189775019044007667011920856672903901232720325730697984128978607256139231786243134321359459309094527367497756342401941897755856689784508711981991440566583451474210770099688108976748164301581398514420000733515699713538818153532772340942185712512605798847157279184416571010849706479813101401325777302960264215776924083471784191490646522902489065615777989591280307953941872234521173136873966237051782512189142814720257581802960071137579875657554438749300579880348662905360336276615348186925647902501523429942662938330295063319711674548769443339148431692366076948321083082840485951823914655974543008380347758013218286949436209098463667789466869581288178042168444046308936462884856147495362271616975503654816867762727550745451828379951286266426921053681659606773894977766616469165027660634726287391821450456571004020463280656791974308583215837440878827842551983666962980392267028967904157203196054527492387630849473876626685743668805914928805471802838778310437957620477905319314473903269943651881322781670476340085641164095601400809779099901639432157882396379591636006185062467285946216941675847986631167926722517873574402204961887896429017727766465941478731215467904351155466822162608092420447219757189013618818184365731775485529120634044134482194755715904317722014489404805333481943518680364727543163208805517696989140126841465109554179663358034285840741440138789486976562323973796924162059355522576554973056716999520341080547666292180296934623993233987583494347158613037675669998887443388890406524174961732648295721902371202144785841404408233218645235902675428931685788574532383840189035073524328294901031867116070135121359289774087335905821666442538176561567277768221070144803197675161059431999668319816772924547546078065215825262425669938029897952712762400633380216536736807651526198365375528635618060688023621577320224381189832704317401206516740179426625697299677374387579681308276114671003246169943476243143640506618300629194105715096517706988684743176529901209698954622715615645586661863412148386660541913905157874865618468931768752097572027802160855198460254804090278567230788582431453776285287313167517646479197467949263727391216618788224285348079286247235415774393384008663647628837489107232170444200686614775459314474425981940229016420028169902138905667576378392985801137877117356464773646284699889397998206760246043172131393483027408885611319556905224775789166698890388052705934812971198080929777554876671066260618150631737458828829637941159069429508388623568744060991854438687284190818427447093498576386657984301207452701009958231010068778862554000129939808391201322547259240565646946006735547208096191599299503804986087993375746808779499627465024015546146601559424866200184059268383786873898078914482120286990586193996590067825764753287976441275920744140025975116993311429425711283003384531194792758282694130586958698164052221345664715639865919439394150682256592101961469174295693793039746574761973114256937596296993677372912319786713255000217027409824051183826778327755708338223352040135632633823955225486136762856170847636053574135866933831415045679823330953413268011459869125900099441514101189150017128123104908342811768784581702648080274302427102465814094584953734554574307343304220623593123883472316860822996252201758171688321451939852125921472772248251327393722197307326227423271942028174241234826602966366843934629562084957666373238605146810894614110560214301707104305423036091018029820727797986011445981054535971885349899963779487228482928029493957526894179607666607219505830812777293763596535167358142388851035645512395609082074583411410075646069456389830022997709553707836083774205143943976389976678986011801545244237412121023689536166887025643822638525883296444032445978785133020041587432943266148370299572190375163291539578077606454574666343104229900101156998125327277661737002292524482621798717860162067265576065246683612274173826290678078122311719726454767257177861256236930764187485881614269419381400050040927242510846029333944749914064532933623130724636084519788521792642320051577556724498538060813695762956146268572256369482229099259618964183950100305082326812754097410230981129942732448798460253492137472527115098417583219952470025418712193384478436390927863292781313757805495047666443052565644660456545121899781571491270970424187316133973078307349012490388583361970188067178200510127657792093905633198180841509740987943600731376169881586203915727096392142269092162425873037578782549035436925026185793650982296007807520322884944629034214316380477541831408387835411309303820813502902153911968480050664144758108577489201653209308241018761437400820834825371781036122397228017565960937644656657157587469398961392143158364748190791150355306688349929290418129899130802122070038991706973328239912685227145671746571454026008139671919916802682464019081678897621563748708198266085557852504572848000106556414174604710819826972676429205623560678134758328884723293800510803748914846420021610860416355978814246944278390130880915997228296648937029116173786067961054719419640815408492539151412104074140786931248119084834363205573353614244601210805792691328739414322332527083631071916836403547708014664809793799412757140564727476292899759396592606635957174499024266214162164242293657214117754524360700071606941125741513497950461996560430866368292663725244460734158528914232829481287113245440884957053858891198307353500425089606467132905121817340792188368159894712468175729136065358892891575695041406941476996166039610723976287653124625905880677353560727527571431998767448596703523876139488602459491150654925947224959110172959043311423862576367114396400835685034299546574344550239244554820428437564182477395727466911833081821309726865800424352137707291054195867649774917467893177670118871936024331990306442438952873156967318674486222845769642933094149785428127323408933429446410946832731758962648592262411526870522435698555731872175500459141905663229540460708775356327212114360468241506747589848606752422149952948138273533266984120391687683980293340250150934517250689424920279057255125265555552067923824845877175581194837679263531254458943266333724889447451900342568243841850587855863189485390267641061236126940190992612321396263552970874792507003535279300800356146204372807646605002081617650570555253688735102909783760203619672890445767173375016907686077271674046104951625108398847110573627450771005213001505642801829912558398605069274346139480349446497565338125500492631509210615213497666369017556138494054643752294808590689884040152431900869383613775001086767836166850441558112749455152036976441682867042737478667315543382253499430252123607257163752568005964385062270350844103755568380150093131913802750379896161762480485758102737307733858046547977336652835757944660643321827517147926996601873324339236342674801685917559290514313686063790374685087680707199194818043262497441985392808458697597213759605685433220951076212844032378919666112502321650864568607061254295818255819046000393610125865566730457546488590562777102229159259989307420386124536499532601380153359690048200817573314866775168819986230284850405020048553032901674431827741534496269133733702007043368520901163565802344083511977469860472309221251357102724494958392021130097232036562273466929802749419740700907754900893383276451208438072392301414989368090730968058123300650105910223052900676086186810230505147794606497787723055825811029393247141268721113534666134646673854040259710723035377736124007997835735974266237377573736396566102437433891236726617225918343892878762742794933181143216591953757010492910225592108960015465880538046772381811629746899932441900911347026022909324228986747214155911117229665604936501109021296066252977772811819331307142945382999559818668304253126817991540080874275628260917269210799826990472265600967707397505462831194290643908057531726612330389909789334497199631223556713705761343682719877199581871851172302180668420337976171126275041287501779794023576464961344120975479436643581270593851959415950389843746489430427520265386868373442779982688610771146365162157676020419188103142891755655553059448942687073189270197742376980861572879742426262319656312237208367439001032276146524464500609281532094080004480493991296698546453834401173801988542287245040364657917872991709077814310018775891457422535174590738747022532650063270850647796734533694361616819452124638492254947120493972035238490821209963227826879986735417321929510896727253995766898945814810760476221942188638269935269468049615107399644342393739621400919113136590504223440903834820646645028376956505654345984070197476132657998857097417614366259734880417850017041625465927086328333526814034456551237029920565346297560735619213261597458218059038656030077356178144051106260169796163176800968619264689086419721369123531881414557022425850931985009758031052324206574270603039000808633875562890732160174118364727771610427262778448741296293591719646537163517109103256236106735994077009679018172410283101878892342766559965090382126706127690533434928460143053817359359197140798493572631319919137992421182867443140001260744691647931506460491377002472763164088818655772396592487362725747822847895175784144243280664057360965064042948512777318559677372578455976197748579345444004251393026647480721271112474582412871059239980727758500486785371869699624840158140990073823780205276193334238988289432166718201620370586381032924594078088347589531429429095098062948292886100900355572878287660975998107498198544750856274731331442461308914782986608846452285830091349293833455177465547084181591480849548107393526330832929755573577346355010640262183955786907915998090758227579559698880206319609227336155443378967986626559169587730676350989648245776153402064979294785336514549532206607818267931562785047579355599682557891886254284171903441849493410883931098034959405850392559991169828547911331845667057476017411312314248245195035534192729737681174853468295917669171577189483543805606314454051844250913629779488018667537663825766258003143937124749297376721115237414491959935656175004563805419650960572673589271569806645477716218652315038205132209756604697668171616443998594865757372054405624753244556682571928106881368724657101239939347757028995334009345777561940185332703902082968890430663564763612454114928151236325428285404422934315250224215024384095240179375940827690722271923342395906462371811925111331171081833098375881581481177019035217693538340313211124515344533464265366846124112074577972786451441636998026055070041950166964626848192150243152724315173455440339739520798934725905790897573738437768592441580461501089528139981452250688159313199710661290222758240116427765896608474299051442063532275906555510955329773181316738921246839733216130984597624298438517609300757339030776009249430675154176072115381378249334545177986644404403795488537034911668190485343352885385424684321135766314212101133180839467366363537457001651300281565925225169642904309084926125081439528595015876674533778025340393725712800496117573119650467333638759970623105686270055304314594657219127770777911020754042317019890592372129481170165163506407372727789156148562615097072747845781150091171852766956206447568872213113457257246207226661749280986887839697228906630707423456273732389369261088547005796637241312182961445826265830876605851545733557876811821475709726129197643177748488581780002161886841820779746606747531769920309092465518199445440357831675656362524046726816355045863195834143054484609328983267262829811438896235504602017404858641468943085700282126966463066481769662426096822459916655351206183266471650528375103652725010046482364569527259848796581495442095696714788276958835834231862598396624300030961046593172711342311012033139592675022866484272812958221642877392694998243513439099154169683272598417522971874692040994114831318995638038382668793581149138211303776858174559949616487242628398800644882811633397724086333326549904667567034713759595022573785798459951906771036302409398046721218207620851697978040694930458366667360860589142932226414264980490793862449814887256189132870891737831693649880288848488919653352459291488538711540497032343140485241765751066507786328756958956983898798639166992142215020445575976810959898179490254092097680340365396271878948258651124127234524234105266669450079494630063791846820433932609332002951407711188759253741993644367684454221651082119678923420052413165387481089077797896326608595728086835516765657277855123987256037089807812473081842761674877049825745356513933964205771651698685816664451543712641823245039280536568751213604892937232064921931918483535702360979898015325016545685235647604882518070603071457090671246107647504557005882346013499957560689255539466099715056075382169591952675610995558025488740006223522241868965630188776160267005087638834734865754704511776419708850515310058110391837868114565200538347916514161320418177881435904650493492286307280697993810231085192080978149956780918730875376305862848742052526386350910816912734371736442938834956606318432143714791274565012438534103999816420779398394759771682105530703680861739407875888569490054995460567240404980332013572410048416459730257129523764443668233378317883189447709145307174824789651522015771033668883201184553094575471232414430885858425826365521380921834525667697563764457988204018677264483252755698198425663352883063310678606385061779433417465779832057995055327861153502502561245858548494767029020415523633905335761043140612687608645069775607282375082578164910467364331989007264393615982318780383293106550660247747479349004230988140604575616432391218272057353867848135611422551109199465360227759903037769646393546919111068183865603339319721362809770163834369437468682195459710026124712141400616958440833553524177080572102259010958233115680920382153973834528136474058450231784654109962335319078646160244200642670262254750508615729301077728667284081064324741462438262788156430149415307775915045575172742389344617975412395913051134032375339539824623822563317608994254497970651688109163351598484493659791661260218922066093428396160716058379863026117777005240854018894388164406341829900966484784153164594027526916383675075698225378658335182193918967246893927897763141917189822270124082553760850651796867979422224769863355272312816992766057068316836248874277282865778963160181408914654691467697630128666541466246687879215862813628961688986843404227454804134670363646063419740800932178757784060886153293800677042737597335048942909925387669581496216372857734635520683777392905502312849437780057741887752382614216208271477667377563668966532538010499096870902595030090967477188421476693830032676855403474176236760038584746939392745572038984545024181942153853146019179353834676671276004684618727121482746648013433872010326733172734948554003379764625617436162648661090472922448184835410178050344922958047707947221534388020216124935413482511433535765852768895238654231142421619217314973277279426947188695848769692628207744254801265077628702819308703882822269163744098354495608609866860139554535636740660027826323767542626595954819853453504522602659743251310296031208782335689525611578525369462704691970137237466043891535286031656355562861647630745455165197572583618386693730654680551999740073315914212902245979985436796147355614475961882300073435223176197741572445656795949780940570409313814687365441904635423409920086990972974795662939280156539478097762346591796956417287115445584506211902710914838362100368952096121845737710802798912201396648703923455438981399673299928409116830137076199300291821055221793778745995444455437554394539275451585213653896721127184795736015313996274785500259495803075483054247457058956193597138262058771041537193758362533197292503254359972818240302209262745731501044061030788970483337641219278684952987867212598834102118274363902696744503893940542784528754885379679514968932683812822226370570168540894456893098037995828785814238770126553955217533413859503014783301911804675969862727711452645645826319155355334183581676473159067614971723830543698430435464693579996106744789042105578342042075440554261334604270974447883817578651620409478120755330560726656972603515476492879229330364893682584535099640796236163863740411941807524124761214486326133485506477542871484908460486835568420973313051717002774845208923631859566830324906302680885298389219628026066788225173916786593979587071092082703396092015473777888848496118832669382465635655445585331023679261582950024477399076973155229083133845502877810689652455808030080866274799185711223513870240445456965278076093985033762933717636574600229482045344762297436665559748209621302022279877694256775655084962989225697568394400434764512852303555930211840035734598993842893595087303452436312343227552484785664775341562810913182117709491620056236958922527925890446614972648247622847929616940597318836337905365999129667139718275464617443082863914276466144700271521186593941252020770957288257271248197921818715062646525808418089431231969624609808903751157531450106198872421354667023077168326817692278883764970098479563601768387626190367184789542182695266011125289531300830007464087530475112530944051126951941832423447602610002589933849149204551319060787227611767689584463960576743751778373847781021542173010448991230550792926130479028218923492981997706168653658910086460466200555822039526526006664521072878589665642644488684661830281079726868103890339917728668392757885543585135462638043461588779543822525109178066358753110682494470449888125328702164490189264852864975105976032199241648675019320853471442596612700184906112637533165259908312022436719764323177079435550731240924590005925265449116950903513279182775288205728960694481589435181373316241796855467150851050692855486947612701364790041583801036856650247431541637328292913064137184038235251019510861180998820350845937605101300967004545316544144369416034988477223160740987502404258535488630223404181592093917523043989154878843407919992837512397567969886152701366298404245560190627650562328206074035636907307572557172471332827827088543938066245453971841956549508731772797316654154603884617657512908455445612608997787371439183134349462047444523182001117732656556667853454589171382464313534015736446952541672102490483634822161325445340756544799586767495970335267157441315545495201989676312500971888454123607066213269209488669427918790714375067015444701477253101233537223465752141600739663070539687290625047991969763989416967839763634689483641991215157628316260299614609849643244050835517026850314548799241729240033786804614215812565578631889941035646376374261193747702436891649426144161377402437191568434977322227090251631592032991332376854221984811826827889483048208787920052892762915451735025236837027773994845167402665531964508737956712480819727572148281777392546500270723666595438511978723004843633347499483929632624062591119315920317172110519415183275418196574515317527422805402310091404097320221877075489337206035509209121056930900749654222242269578796864922487583998744696420825620289471024026412964356087838137552395889026870996888922123337352370603061518639614428911375863440596255074460672988485864567213580582405943550779910319328232265833605119593787353627560146186614159395834936027843282403726793121743470864279132377163442549674708036603446359379503538234336267607330789123564898759279659164444404131692209394196225363734698223408038828037742932901974187187437135703072802684254898816108452278043168982848334394774627595918632854025937144397690994588345293942864565537795385842210248137540275208141588174658168638311236189034244030395300135399201221305575891781459362592557182966337972121327132644862575688260228478747210728940452500243406539407123744170217333249920203778150830457189040494498875364459552428725429725564405263370712440057152071152089976335506284020687282832252078530323130605971107758293606773360265254597037513410548005429143089711660940610171157187025146187286210124309882607595102017876344578474132524727041369364698397748861575386373666624175699940176193303783733373546898368653768483445076598074848392992426519955653451584563216406215908707623478670739468595432356627232743501774583467108652418778649406453387743906818961998652780018004867882767476682436398339954434666725644318924723219963999839122620389648153863993130473623708921011458022394566793714268402089436725131652068213325166087138423029121440626566706962995557828688826864644428117265265053319241432868957423237926248583519666012731575311002461747148548814608065355037469115866068148352264217667899348853420475753457814404613755516414664235192132781256369422218726034050238842984057297691489649148212711471310396197330418812749327966425839643788571011479111455688840823935144296690920680847276456003016291088564877985276409113992627816175226004170133280703805137270084376327816095075760955443544672511951267280252966301882996581015358089112899326881703580741932247493334421800438339572209071031364550821913293217704868849452205185122675299996169972248163308800672002430836344111361856680333372252624710273243653022925442079045747113961048174174324582175994550939338830991872263087324048285186923741518215371931022484068455844782574467344648242433498704534321970242461677471899629503166703954054214741664434071137040986955380159121538976886962935511225772537168693588068048304206987950640426141351487774054089345013314523146209254420570652850808222229340931809864997437836238281257537955341815352750942184409681251964599743495082540483721829364408154387801947257681919587800223705688234150881897229689328472008553232912969674778062849239428965645714309484789670866049833868293465124103152405631244329414516988141337228030830368235939044298827866146732149194955894793375997362807534578191476816230226408488135338162305711440094252922257604816615081352553875559950145222083930529201563793751846557465422105134961527879140233926601614816732986571870211590478215284788021537142838705807984101758932182894101644156663023146352812210023396754460733363871853581429844690071747557582769042413055134794379934732377266066599560892462094401505697364911351137146968836499361716741702382613800317478159871969240759978912781774597515157152318783552889460800832424686311712864172489018733136571327144234065324163324539125442004163427569118610394382640623871297103752728568441958568230406721973094741811136076765970172179388608106292672031427870444173825957773125638947907882593596763712229262383348750360971906869217220733123030897712764193677737425771760085691052959141564810180583276036864262343420108309865564136469868411735554744722423491799776471810485866141294983452140651745170163616945145601899861869924108708653771292948479019702003359413274508714512540023574621422925448303445062631977168142542153221926754365505968267803243916836408134620673120307916978532882675693571558804226443558714866328014798762303040691419359685756787359817117939473329433815826353486905895886755292082843251242664603435098751679470102162710871071177976752393845576387346368684248678469164583582965875891756749570478922885337143067339652289600210824433171077228668643080183304659346278484689269229685033154075149810647732962204129449724418466835187842050270238900512257385916699307349676636982164835725536956659758547839135973113509371135767874574544410747367404743382952216145185834556501679967119761888157097204982591064438853761393915579006477560583975009283249455890794930777458536304344537487935271607006083668579324930928685712293630730250532667597695068294549782807339254598597038245111441640624555689970045271963113894940502979048247560384026485069060235611718379352922150027540011829604913945177175199578351544930547750312810575738258490966736263337656640985588441158280958762408638236889679442600965517390796175359824756539023842021219747544028173021815421639776051390575986238456224675375119894118451882360342024931176900141862476050095988403451978989916439457018784094476033228735293556688250356476426786658998940712471939287204667352401190327936455199447464267408447647004183144233815592292434933763495818634121859388544975174257495644299736646920048216878696762711352041694821595510336766916108244746365131852198367649199863590932660491774190848316861661563163014771447897338419857589359410760766175629952783035092172489810727229919434017735132477312041753427297241805615097057026304748643868983620534805103343610382852576090591166221123683233558498390722528011301845015715043583639510544791495577044632883477596481775158772911184971828855592641911314415586444227488441039102567861962735197847733833387752567985447938198901986033900104358173104093055736187777555332304072385942729749669287874399908879519045599483151157531763358783318204753066844520540386483492290447643540362221696811888388589702256962655174357377222639306257496056921482780839549901982824369780705301267862707109052544959338770721323559493980811853748714386744008789705727140723906005326372425079811182777802719945776797965228436871242203252515378495428202871595919403644953925540874616199925324529001594625868776518758993940653303801825638080458578939582928054579321427642181148312878428837512413832333582285266111447299550198356619653223427470845540346483335957451965691537766321118376380037146843723747614811687500980924863771550930158203825998299320705960399955280166139508471525525452245721066517675682408863616813840474582364280651215052230478314231816429633198167698241663733054434493249832209480149757407836610013207428951175552255172676368192892438946898648529742730850819840414975737797323457548670591968628299939783213677820697877224382651663541704559959205569230031718078484398638730630996392054792750263516646255557465872035672926767844037814827814333614849390841306790193110510131160069429028681601486343336549880333213351763988814941701116295948001560588557750718881775260052510446252883108942057775652082559888201041637227591218451010546129736397821415569269644842542666082744336018380839356461532524959580315196664799005339672859218986405238008199763924232186954939953950802718508425471631078623874009824239878875524052485584888074426744118194998254258628980233808382649010752107875691045871402021835539086718711176833751053962526355327379247584187993874059322480823189285712922768282230086627518479014683461886925197143868330064417078333810873755857921403652527445206833078190184309521888252627077398782702432650706141918963107372122016875972446871227884053513199821445031462322846739137544721158585076007077358372901865190357667023842647901740189286070487429776427243482534732028161756508198560083663158775430951731268439056285816769724398294275315345116954796334580912363736548020447713717568424252142408208354416557167756051584794356885802294789452662340534711303513430938207887662292874326129094010095957227036130055378450727565929603321118783556873045273796220704460635001595454737999325334706646893885972951392824027960262412063702096187613907915510153899270273068279301631338404503745636899980462850812532475508358482693712158984071480677015491253065853730390536532060059691311717880267966304827117227500376415067471995234291962250477716290201535979298220917897818029106043234639129817639832601748878818506617927675526219052098525237286855784194685996635713098514552445941546487868766568738016415564543358823433842548993264440238690618355749240281229225899022657532200512594311049140271950361824157909222789071622307221196982791203924422308855007251448125783316686657762980916502352301055324380267001452147364387162968426310983302520199677601783657136165700590303061314999206739046413937116907768372488617761593274960370554851998489780361451641514539321030736704454439343377100994120551144554421804358400223523389596623344058507607670432343880840715658143895073618362732229101936681022613845102953125334354893396447206263168918437716706726406373080719609259548205219124679231608000388305513411128112809556493735750355618430487638410831329116361584756059511225736168869710459067488542138955900428666206630332619095076988535101877061479259210750482074814871917208514200934089594003386706486301140056748121130265933689945097315108851862348428533422811691380045668610573832784648129757819114327164902584770645171990515971757887239819994827473307729662791582283889300864145540134750292531065566501163927389377060906487262718674734662145036849678280469039089998077999588564433026932555426221430925688929378831279680897398871684172450976385264879002963372545960576193181439021612272922134274277057704860539195868859637067563972152375974583356064913319344492363994487710246691922674208620351899059974232103857696400303280287492023774140246294215451996426380382153567360839385563909914253951426684813625508770083640834018084224410096689731877405754874251593904380239526076229104449956088270016521693205083974633178400463133844313904362371003472052478337373105377081712064246546075964835627181665195775039588324818106711111432343311954112910979444723584394651191859717606516047239996508965079050431725525442421260323467962664045090269802392352774339413075602276056217170068109185952292850856271955335716455543763680355261234731123069602946475310489884707598330837367678232377395698806444899041379353311837564977933491095133231200244754424681662983103114008727737334216731484097633862171248415111589434259093211004017096285616598751088841390484988009773207576061024172703708381391382587379872185493420015170936144557665338531797963637959586798936894484953865567671020166299142028055667683799391459696975521987955447383082768775706819525878438305894319752698966501648663097236231800850567022354932323600139774547471445607964791460497369754146902329261302965649185786467167627604795962612525590168519650750508133475281814876636286267189673587610708284886977957908374333618168525741181891718864778215728307975032805674474720101200160144424279038673423489902076783716101846875307253928008398552435026891386128892315666015922024534755404801614816525578865646932287257404998539934797661282629696507296232307697151376965854026764861785166930484547211514222978698277161738079834113462573010743508290221947068786014172669665702263950297379391353229376251470864221551686566630058054646920601488014608642445030225128073557506673891931045893709127468440786012106497669712765776852387835404236347296225052063589695796455087001253082053938017144183904771869962274762158354928241622039714193605890016732305855301284394968197809996412952363356858778548741376692495015988371120846410558119292450280678868033121484754440970884763358291123967097733770714635097372388465940163649074390242151457461885462134844476078209731416827193061041557047182533531113139874014944519141111725663222851024652652756881667045206167071571931601582875576477704635889654699682733467075061194802162589555113445252087291621755827445958024575261818336613300242661902971938923244621004668695365548008243089354935517166678151743783123018194130997356752005427494729845550682311557921738454047269336689746689321465175152416647083135152752922087549769534849773176324904336433045431306580763936028401397455717863985053790865686937588368431369789715854002998269934495065309528758556334792686652029077309643244231011986468597575649007902315964458385726270749328275729344160396843599735777401617276655506451555189952468186139361207963785251992979367179376867561239618928625959959512756840205530078995334993500022469494775067342575503460713054542816441558978825231453244186846078667242687327227636462654069838129127756385961889375259596051342361842110472490676213851918926731754061942420632594048029903792806509409112909406123955014322461406011731021628382089858066756141458523088931615522202011548988929379444161432159122083205817519740825380003867633647578655345204297304561878768686363273770329606103661174547826321610202306817771221672844016111365793973879056831365577086399176360131355714856478299543925888790265927255544211304107294590572591019837323916118857400119286415714836325072057883334822888572381424277100096562349895084642245892859608903092369149630664984752252669790001830409335721071957936227104678734636399532610142090734348932296102079728864251556784346655869574436637899972193653614537248161747435255565429868228955541015516628540235066911495809160393745802604478002319254803823029926120644586794096302153741573601549592795326308745079540013326484852860784212446140322704986241871814345961751860085757868288911497662385258815635240166332287418719688539815056417666179620516179081567672423511332317518381117100544055969937435983624124312390316315618588235898858160593541366923604842923373248673249303489940649079147657809364618761972685701861451349335207002573309304331759856650927407298573090461195703268747379818035624626122121091022571088100677544282123427565798359137000486589045450626100548810919235207417576925562202573988077120835963196190202920429634550823064145710076925155128316757964770772285947929340353579343862501564740721749148725276997424424191234071078465810299866494601561858848485729214822477839516286383583107771718609151595529098567742163374017295987609126230641756442166434676747981531634719217567285584089231639995593274018327109939004738608908834335392005197318956181706413657601674025788107531780819533085044598766009323212660274217074111127046210385854025447711166780216077973369049434776954410871997525339912031625522057158247035589659517745336883593470677260173003271015209715723965733047492273955079985335012408129920131605043545432778603825965572951320724267138663205495341614418121960507526858199120617166332593073665347008775918686956140680456732688721864462283749413106611195417789444530943282000539020881765561743700313626068177507234145978524064399191213187540300980382945276124450729146092113535383614226957795825471684917661780173890398289314799712651223966574455207310632125009831104948535836637092102968673757650420525541005780582746614310255900244011965186357157731767759460444377480154462760648523135844691560881061884767145266902173134211172362967333345004818624754619010378370302650845691965016491991287240143430485760381997615845515663881090139460294703324280728184341598575948449728496574285150075801888610859856233936866236445345266949257478053784411399649216676141386394712196583322928473027585609629504756664863101870277063197956012544092508343687049829220077279121510021525561335670172029805064805895713954648292809960596888331694609644509864975311321517915772903753742165005446706312292180376485734546241078167267884316668644362924491328510797731643019702364076386184646236514760504622700958060215606900138846835132099000584702264509198228041458427329871517674996485063170633689283027623959020660197214185003774434201115104023965640691141381385257531119520414619710476847497557978886470234487615017874195476813050423786012328711349247921876988981470015459746606925271867991805075631295024246757118660211410748074129322266448441547192109217664409208119118623956270834334144876824672088032958982645937675979731050405577192021370146527414430929306954858066033036093810386538012359899118678473300022635669343779414088581321668198788679186194866338350751723949251172128662284478478974533758402149102669678929930635166852532046514118877150096517717176149215798897292006947662084102570197248110646876779509680463830772217335288352657540757657110604964745249645444054836645480955495267624882692913086799828601779671632813823395910155664051804730747223356546392728298386679215638867401157224135570130249103740238395983306263656837263319157838606708487412144960651470448957716340961571818935390719640868353065350643588841214870373617847602883737363213247873384323681256524069371441582215008388906673001383298917163238051219618296925866725427246315239370893033317126624078474572774012589729963627444079789680820872780404235689961461999039991585856091157696291693382895473272871946121107685441885378337525703069509384934700314033311473237997666331444962776628438514550027828056966362506068579562963540291147275468339412947219351190071176197545233118108641516040599782133222112225785919391373474911093587063316841787268721915571760328116748577753707880380571704478203654785851993081862460681163725573053870433317856407026951331956149801036966168875334768709348449076458404778157497909242516957503229861417502602833288832623517308955471611825287393642264076040484188289877490222792618061677026642734869988426122707305556598585148073474384212553498439607390462047580928174807372925975127026344857387924496136303651793406968331124656939029935091451332086289681165136009763249295340090144868236555224631484931610311422701265293466107654803728915135537407799428188195996218499164529249660767851388146537382507193734344168936296541426970986333832987944071792255797570278587260594506428076076324876316126919615269828727079650761586638870736538280187291844548440534447042344881467803739296774398598946566131249216246110638383218899095427031310025007897600330536171227716949551410183361998087072181666579363422206159022354084332435740442927060195576599282434013092292743651535528210819480138274294214287689446957719032155964870053650395435704336393610580135804746014395725447139394372164088314604290419219112442075769166036177470434484679167152820144526866713900072242649302869253616325484828939246009963060532363711072292672995539777392721504401506262892405063004051267874964929253574033952491367841096524982323861374891006021720906274606683111504005176829178582012230748379189564553965808355393823180082427291363119993235627853360592277495103950089401484607035447510190103050635336218018142612825058590671014652600627289321132373466519217057477435667082641079290650747917125402654122194565398052826450521358229331280963608154062486406981784938620655758921820430619041309834844982828920979202461788643172959573669042306857382503508783455773783121190436326406612542790615790457397100777489317220235297287894793533980369005738130991133655512771015118966220461165982590479202014981012860973537787266529771509043034869778910841747885339485591211791417576228534256986809705134678736930100163809395696513430895437219951288903752072333054653299036388946936172413099365423429842102842072188626929041890939024014609699434709081521769185667373112639243654132395153287379898379419200275378109607314589881419959185728775760026003353991912614617053487083872636127553875197310144450297128630548283647757460721680744150533539516938321478549672900421215607194556600573125570896581081736786672570111972782232476529673607841802105494950357125304284344233218635318189385509105846062950072127127700102135586105035143878254987636614691332160735509839596316664211721765777167933339287723381830511902817245027213755791912842890537581942399504162232429596176101913630929759469000061772137311774657982524193769560647678638579210279552868371857105961485502577390544089880253425507252259761637725234174793599475703430354751925406062553395635428693271605713313554169302337896887313169507866423773429645714805582457233803695541461990595101198894376234926375493515808526418099815373906694906710154210218018887074256834599661299665762886009197231527388894051788261565219802251196234394816906914994580173330014568104486313258682839010176013072130935508130150753805992905111796155207340793897141840475543833342244997576196575639201806319968591004518074104920849262331635553676915504772595849383006270896194347861929479174545404385048571283502500474294949519063220188319334387565599516468090375502798720767070011400446346396015544168109048629176282998374812968593271331485382451690863118348699430257359212131970629874440289680982564932732297674756646698583543621466480550162038067992772893519930474351957033419485033937540875713029957242693849203547020840904166595727606959589273238665974601686317862112031595458022504361453684740942131963927829939211154696454361323093985337153827024394584825109899148985428182560087263250541068051861583617749894614472023777154889875651764381818520819504535393930819116356754592225175446660959714658006713660708333724351716724572042411055699840859531705204779116044944406406765864403019451309423601251258248863511059226065895399747743753275223839072337711876851691173022633919054437152178707162953013871681142523267961028337659177716904962284244182274830845022816629808805305834001753888852292968189972128873031708957880870071232153807849272792963400840777883095500123995872616006714373166591782183705185491630965791986481850383787392677460199106812529157890688973745597639037168010440483883288728263889798891245565712342010892748136844318766939167301651353712678516160327359734252414058686474322860517559620398011724820356728052973140022429394990732429678913929027062197516325892396751071755690901178784462788901209777179753534827853281030152833076668966805642264739774494930806964157816366767873333840624007071464265045271896405820607101491227927025703950640195172607141818495205601556699314104467405563594907273539269607775563238339386595625707301276996668410221238787615292984771281360984858300929356655449744935215096474237162281857907794385657983399462635963004017607716687203714290153318153993374389500992726342866747635456661557683137311314036732059886108636636765724502746535921779011972217655500662705012472754050580017810561254709921676236433234714874830474595620065226188189670150374204784217333565523992258282603374110698075997357099963492738690262650048003598900486968413793633348009506917319687298744974223158402212249421350549661082850662868337990799184512485878079812664030810850806145782288413112347413648111733648120168665445326505850323821362362186609058089132507399043822117295805793851513772468525945386359119360131951868149211048902610591074347842745806493829333173886255457187730931187465006054240785753961658639256343605189912073887712824633306355907801732630298887253754548014116895870997454413188919081597857317387550659976514641273321419441613759207631295760549140118167720130872406255211209978145800333765893760169246601591163145635704743441229306507837377948270072508867102716795112723149685872224762109456324251446559283808195096960426622253940824299505943551915224541655849389810536069301577248710458922475820377095606993469572532528587496078893036555471861213021837844869987762078700006895517773068231925802784033263531331371608700390795806803794035761706968185194367472185994079614398982095853663566845639970313465482709609350761205991708327764353953989036117352857011217290866357926925256515679070129586668982265659126006218038309560259551104925600919160901063428303912682010655239256985745754519479184657931191860124654310488727806671696581036106113250075696818313343184128727823697569183074266060409618444062440969798003488082503383386607037038512010959035311428505330182064302220972179125252178444642325434107872340501111103081636533139786990373190890411584604869681909806521242790763093873887489683899414768707341347444090749416400603110500579268878478348931833090201254154848230105973836795703308762149456143107825955497553436390206749402593035836244692718709536665909004248267346514333542364686813369082585372330838487588088580402993708180506461570550137434414703189082504249044186349363602140440573213357962536767462562699939634706897318271363954047244194675239520858719862901309705495935921298821995898403718312872556041372665034761542807523078363878578089909612166684945061470124579327718758170201320043667827662877569264547655075248927024699359151936018850873711465081036251722106276623718145886285674007712812148835864911014051605627181548651108553984363898013638079429661916972106249484266404325695267697489244144441979627477242291896599742379536193551108457688400558080038307956293950150033791888731523185896405482015709538768634358743869810693675854214716501672799576764797492576097401275205330384540172948921411605544385609875374553770289713800265149718202923975830873055960844052051615105522986240741070852899330093706339392282803457125860969158374406916319371329753783529156624016836911834747485128057748921819387298959272519686076179433779511889336473913981386958396327806111227126518163282506435947798730556781992305357832504573087699529455272524834781786068132568485410269193563257368929575410464397022396390449879269640447342536044283145916381270791711371578516870971086281177891883084830499276913636777571024685363112064171637435407820561012455673311027905749271310835873060475795480094628322529487162746341189586035022730198352322958815491062111522051104156263822112873182928073955434646737138906054881706416091378793269297836272404090057349637717143782397919442729845621658594011560061669063436169694821710605359159544302805037508923941359674535857575015482191806840035884927000020816558551897712594375602578017288986254135455012076966601909362915788012256707025752397083086549680239829691262857097597337198870173537466728625217618155114381878035759165691744315396031852804910224376040328777460375125348275341906026572825977711517533974493046815869399537817955938263070209941355409965164148916181455897915686156343277110951262606190915487268545071934140401441097692698255207285936714703032749474829096399400688227563973116228163167211025661355654907578639749484163629032926375831133014671401524311487233719559408346109892413593009323961847324615116691992644644458611607080012598338140848967498510654310146274635303846424889477985574357329161969157150503404973577541788898000900321169649841105300089448752645023674975082705390235822971770897678157486068380100563449690214112793048613663049348633507458688117216481497803384594907909385424829510684726553024023063708563781799262032751652214148421510920442577413835177947126922295221808229871120854088977848283303065241309337622518720179448598871883843759933352942271134910471888698946413446799919059140157845757122276400701543317488048977077033948944550736666894902316924768852611958838118786144157908863943510541985287760244054563670643529347491876353703981038809357319089190283795729141256312637918088541968821508699453079787864185019896356882058478193967267027765505719993130527491544253478151277851202992374575693669882198929686884616464063464831018460991752926489734965841167572979995937578720106122975524997061954457066000282174725220635899608238810277894186822392915650788699940851255652484303166376309091728697260522547457022014258677431964119003361732423166601897056892310865700677258359997572464915106930539376550107495475298066054962050407817304972390633982882681152681746303827256840512928887600761859837652712686343314414292457003704867491031100822361258855705173570326329756583669808639166447025956769061720690045194981377696665445231050729630686724225357647288699218214495412275960795445925013917614780249354182137978546882894230321816440948607197957952352833078940057334668793018592099418734119837585926964368431061692222857655061482731022580654745026143209415940390390501252276686972376783112961178574073935166834501160692917710255519150721150962526382742908963160675658619032637721706742441030295614158071896681275747636773894276340455726670425298367387842295545474543354421941517168954285395324084951588699955508662259740003292054909732838021524205406691920294695706811799756306892552736214289434925066959351539407825657956514536565263342916779829494875814575094782757146140284236773957292089917397846978085290520069883923911010662893987954346359235505148705367427715048246961323571093761584893278090502132224076574022860902492248396546989843747478352148743221615658573175927248966912665625883721378876174883164549024106098255185073548846045495442547721279199175804076408495041857241382256290822809256593178546842472220106577400187842473009593400128882020937249229678547695638476892007197621376811795907899126480159072356729822297908017402256876111157641069880798854730728060654378865205848641889006524704226243699611710706333579400897695263546417505033807716303539317436440864415694061381404000282271080679737860783647021174803302208832219944455692519612936676760431915931727975096786804951584719763359946921294121316486206926058355885392235399620371471951237015599568944574095606726373069806428892544845601808227796013671902494095160143444821247512403509806007178048056287627084609466837176412418807083082479778738119087655153180509285293681522248980649569500300478670541115618538267405957684040434953155382954861495353772693583918992469632658090713358933022354151938203239439813995895558901096370358699135186384863312319232403753668258118959836451716914197360469575298199643634319946807020314732520394856085156571462036904431368633194481015955337199046661136986064901640103042867286385588280938611951202120040059677037356000094609557108741277467455371715906182608011309216272219980136507453272672503254723249362163786187406407307331950552414156295857232119184669544408214824938731845083233259007165626126939437630534940569052702145479147410247977430403540046425986877428075360624290622425185803769605744568305896363507145606086875908736706921779295367947646643787297803018002893969419372617966537474522221562175977183776805092507067405029625728429848138717092759937250924669462777971087683369292512557471887197390733356195338368446866640878894071598744280000033243044237438935956190350026254334539901736335342291585227197928511494891455712973601787105169913739097073615414884158104564425647469727154963152128959912820198800550018232508260769103859184390705489600054392253918343868063155454764040000714609286505217181196107976618510772593015099328799404562595175074504288340800216018334185476515717549550171478651529506043389302451167376076228517496153619169537921246438138189772892435142293696624780305520117856901999043275937834593955730047029526948113364693279154558250480854371381203841149120199522619585204104417239080870903569014870407759153917373261857429216186540431200031943949556060611291740819672081192489547712005570653301557176416010747090720045441416927463249160213087158558176337631798418240433080524492380343362785970613519020732071898242467517122574700669512146581863560126676689027393172713729186561696059777633747680676157686525164548632410415643366776531003165329347814930383115893531401012409199731510579845026288281532244449559513706758488117351430196609683512427827405086112309655088576895424741733167477609433607143315535064848358385413178659892639151915946700757172731027047627578748321625669066378712172735377925331167226971275058091106630563897338708801571188879847723874252565835684093928675428515211024631629299264760959925327991005194484573907684099328882499690471516700999672235799555093444291697503096446266162575700809153336325756708984761800969455180028438812476986621465896373441861968712133660658405367798363446711635512634666314260578666782004388523938848567629484460308780251407941200782925528494597623830640345449830860080135194263135518542981171511541786663526937943130460886804643114586440715680790884598000458067025380436177016039977948521759177651940023504981497978824062914936661610124729101110217145337655571386034641159240564778111540850166358582038454034815938369184828949783277784647457514212863452341983533165737901219316931250069189760689477548138969719990184717968856390532264654097816000044249916858564547102123251619333010928565442891915599196935665857175859028775471374204755439496077605572123433661178613659753849504082134120935209866295105093276843127484661140634299941150177869949145493522111340056504109272445748882201839033451363559674275022147973774858783751195457101596546444856452536942044150489655647048137485505001524412619125524035633200838191503960386633025453912611741944384652674529481280736522077705133084298296285722508293443947796797141757380139977886179425696595177306568551469318100658681170011631912849005283728939896036629840209342114470183916857053986034548061797977799250112700820395245143865483038949014209268696556360526768030362195815848985569199643180810062911743857986142720121972889025505558945348563203549857617245156672211203976418040973186563034560749723643896273367833582079772493958205832108038059806928823423469469813146821627731659473979232740059518145226365504850312042835691340177962110239407242359050305582824691147507564081413781861609789959418718932591646873620999543816241878866465005981841912832154641424927300470109999603664783131979960964999369896545770158486982996732104449671079405554973734906402490543068562012528639554786879840934827461039126103585153157568458633249309124874040336455589345669075294731820478816950211341440369513892694163504918368312435505915133403031357571296660343304830990379777828374790661048647185924734103929101432767221437739933018825187537510767274666373218607378214105812813960285892937739807774794316898024706883383405106341371980072958625619608003199791907304041899992337006217561154143875245496690597385168491402733265923951130191812578391089830948729406463722311148498790682382488315148685064397626488351454571488836720648447384095611046088050802098689817258679215314169626484993059636806527603402874110637935585048689056574360251421772848011690745544210689301131057368088789370013640559609045905998185787626975221445674564059887998501251000658194875185615540628650845977510702085372501217477438073975683370911315229123360534985237007100026673422320471246115623602998412565718890377892546319409407311247673099852691784802155560104961911701408788717653958436675446955701860197912439257264248963923826022456433130527855516779299454432527536447090574217534057103679084571307062885535499199185408799415907461093045008985025467214704369997657419988967702628599207494619898595795912940445477911252010911865053197711499627287749099137069145738904990252299767362144085478638519347756774967788744508664785477736918618804760472078991940172054203864071769178179929965606772162358020491112551225008979314092632053856542493238686709649459625099725745476015907337754571542093185021203525421142812908444032052903674593059308291292389316793773459558515442981495776222519018358168191668998944286496219150085016592938784172284522755695165887755873036965374149579696818230387912496363402799823430435522156135882763431203106918411623272350870585507669956167773543513783187492739893978414354323222287156764009207641923114012135496267994610742474814266767150026398204818683095324242405827738754944198573567705049683662811907924136659038002094509024621976468375326160226148309365161472538481197469635953531303061936684900478852089848443959064219278375420447204720905380365229748504164631436074580661923109398788980736638354436443337453753248140840439824496933848129546610003276618819975851255608404601768242513678331341950318298170801396212247813339061952175904157104575218600669254455315680944872441605823382765687477998293039186973419049805389026470183197193852011911498886754957917214958173625396793912773554885969578134008644891110536119180715713238103282453316326303437200858732464264097448686248569575359059939326197721229318253804633284628399903463512074468313442582929517041635663464170667889371383964867602321538720589608100179385795119524761306941372720063599333202473873041340177944393248760515040545013629911969084661898607021625958260582392166124624163092838068952964729549376525713498854043717219922186874071492569674942862116806179426523118078535885468661421964731699476446127667169176725204692435930152506550009278589819273689742822100484257155259632322066644100367694113223866196927219572418030985428893297249084264992148324972468948109245179023167039494387281539117990613447852327886708309215930791441298152605980100203431619271513992762629091010523536344905839011190115170504810245799175106051791862629621807148105478928197563135826121937159579100175849495467609349941487238166433144337923181152028338785329988109965738895439722519350934392682709863969475606815677409481531688654643878323510567787183655095557305653124349961395457352786145748278704735677969378547735195647423541874239649370169372224748090989251571078134020555068269895440580041042827370632306771419149559246091682150569439691568493667807667200545548648050760466533858008085497884265319618818059868251038901513499396390800278978567262377610712507375983723586665870035313031380787558135479111337077677100559620397854201745343181788395523902681379376857681696359079354872528369962722090744614474592421927823989685308664209132808394423528599202721747549590060826085426228519387885282247643062587412707713295570869622830662740846010171595544577279503493496987970436333630184157591940257827544864800624201856480326680288088001489207897440595301054718430091181348298901124361559812607074509219222292328191083708796820376339669069476777058398825471378662321198817587375455507103990033451222952455928527667328183237448350655885083085660624333031696836583302818947613942209959409019760892929979306762551287955825115090057895614834838805770928265853282018303096551901486112848356037863043906453579119268269350773489647027613183967360688934251609196217142597429163282710057013001409092764574923572759179029135598104831505762057922748571653464734638747655758332935405415742360853779132239928659517065360445010053215255014054157137838253490052939011456859637323246486484392999397926792621843673407867269339330300554945860145624105440909240241530414210994470616591888426830766508928891467173496486604953786825285844242169119725463248604573882795305081714163189296509163927253704951599552976398595933877050720898986865449655600091949774432342342555843007445349048476519017984997495911239324501574048251032868839271246224921699697422010538455253949869047192244220494425349610443042942078620762227395899055152483064292559814341706324255367186175347069825287608943926445994524576259942960106744087832896347557521314145543793743211554390385732083025271797229302744291347407420366458681284731833936486167756785018996481453091866583276511914894639475402419116031419164971114116017247114334407676320237745226830672631762270801178330086337387236455173321871251696288199135732012221180388899840107957374616151947822246905729958927483494620564444389041593013775557366871000962499188341339089017034278357256990703196717634348487559298961012686019923481982470741629167269189210748217524582936932853015745244322662758432254566469219244632673365763827035050358185491395096423928182668675918447238036437188668573871966085097882035480238153220470863029077254779180574504767894441367446606637879214169231928444257142529472603950358814686522142192816245101854677895710005588104501919499410275610086236169901968028932927021336499661461040390389681771030925567623513839804645737784281337012768944602186252780083921669213126730045615337599392342157148016961432314434996543242928612960008405821987208245372258554860568455487712754357378470022424927035104000909286305145343354269188040552633216898759956984531366122176195246353218907438896647454179510014642328320380863483684458157625997793580686899508317707179124422308706527719110630431697865367069610140373099414217746999472057945448562628495905555201324759599914676817684927540627447757288383205627053104005967935921351013271638439772648779172676373648787815434644262021834782306626116395851430062635553149375697823661270221957957649448485079771291021384433785693741545891099852158913184151237380339583583392688950630945215738915799112465565776054733845238691305133309251376526017589589230836287100565508493239967748621981321011188835219363908634810496700866727930426426042153004965631032997511677201797034171465294023936867728019537460365929165038387565277938614701763004519338674269754197853494055286657917760560296824880455034116795661393718890552195399760809091648239039875148810896511090820245945990275762245581789601404638089098305217190409846149961290031692516024703713731757184376186745226816523172094755471954914805140860491438933570473029929408613893274097588690715840619158463295283725381476617414473688228899749042088955266263780802429375322921451201298637784004283858466339198585083119173543084670006495274807744518880400632112129400986812606648666372125117886783957689359138809089657189127305900795464548702631279632406600307861536668011507241404994043433469223507070651341987555291961354892794453312636920060388403056402876507143243934080932452458675325573272093785998113461007147091234156323287300707829287809623273568353330194138365469265415601033020871162994601880886522048406093175311334451597973466094036798798456673204565326040700682063493190556981839576482764681923682087244469061430405488973813454282580241446859717109154926897127037003355301162169820507701332723370376948828889234722190466623390905578525013892567354292694266856295496723939102823236233412167868109459639115182468457129266746825676992201875123287714022555091970701822236071429192942515926680724929295320785130447455209290665792654660717750668304453756823469456099683818030348362851551353316482798049321619059374020784620795699867576181191040784225118673385301675088528302776236112755939101496115332101324216922444423703215796204533260229455536573999205188796804086202606351277042583831438963536346609880455370299698052289861722595468638703413666126429336041737000888243401453599531314815042249639632584778366884891224744976005906975983718433490911991218537252440718865639135206080335971608180403871791007118816116999360078356431037448792325654539271809340069902473022411995634015757513682870261389137846409879947357296521263792968736230151288050427669559812344317161577332389029988146553401722063485064414210674100495944991962773272761031279324132286016847230911820905363116884447704026078172501422549458036095827681629726832163449770285169082620657425537362108366786110385662731008632523526850209185265539409001743028120006874799436564824226326687280749658754592352999909732042270194897845460695631335136529616498643233612806986300514727390856492666549168060401344530064873044263900931315389141249544383257097760621628897639936869951596049314418123274865144506645502852441753082287964661761209955493971307971862198710483501844466250895434202022493184795754988408571698602942544067218438349300135182255154261610856706397977054935924380374830371877474267819852031785204400916704948566079917647917618532614565756023066945638055592240968985553705560822179008384984231298450702582807815071780190509914655274886743551002097330330321626917899736557534391840672848247121086381495997827036030307826795308984810355132779987664950353605708603647215410200268090073354899422263109686605609685095356974733268563834648838343472143933024776110469877996604796352801995687238318078285847304734206767031408688034785689916020735159606667729362963454249587005328281558352258132037413402551464209841613189502467776042640192877151430366708570684664521793534665666459912135973937698217782346455964634457243159675284212890596515017000380612479328157371864517207968954558007564686569567035930169315173565957064918870245129825109409061924477742514847395363573847674408567101962215623608106053651797275964532484406631315240534677428462576813744423309040837511509457519834812884505921146736399756223066413675511923847442095456446899034771974841035513573433949774097710116790734957697183310003084207769110282870421107313822128289278951537242385954136267494796901341114762210734487603943422422299034239638621375195178897779231175711005428647595032942065551100444286642430690630546942308235539207050624455515766973382185588470485882002468105944504745447087237993769338062565570409170425483019135538188532211832039341844875332985092274647477988023377970450565920978070271876350881266768897147325469516968811811573731913743254789511572180956751782619467102734950102193644427990945818634974552506507330849726402317753994225671374552494037234165897473657454554400344360551496777980459458857405716872433714453154182319773957367271196011222524392331277856405168419282062059372144388338164746979084718377569475893846523613072162899639986226392449796557982106693070126012814145003038899433771427781874420045517669193494671659647837839228430464310407640728730273799830772989207467202128640643071078432920172623431302357823754789072600682654282277511963319545323710118643895649870986892155324108575005159308335368253832896041825068212294846049499592370850994629336476346161478472504793922719881076200370144804991031044942354085819101352458474319409732903092059756826163383220434137417596662080525269776398858083008889037601869566018424209996885628552368382690830152238359188311467589276020033639513468178116365928062928124834501194199220414143503932026547053679936600438131398694439702331588541903066380168337600372517584464441139991274657020565316272856810749839172487774788089107409568908876427780685885005263396573015326447716728204350215301901947075885817836880919177052913292659646442893822451776597419784939822136885412578418293365540893432766318518069031358991955284776811219546058810209876410610348545832859954183334677726842292401461497611923991922217855787636620166259596329265601863476798390902900073736151741671567854189485076018629181209297467166860073460377671741120240575302658326139563111758214657616745539104226466232380302436790361111650311733539457476338559570135617318668697624694072194791735806176216565472005727291990351695932518488709194133491707317667223517556090699257674191587409659284300941383088442226092193098002841119993139575041907050116133878733194754111213378981913841574792663557033908606378287317875308087226212471394981237402705742608329538479120490031956493434786164168439708384737991564902405208115506752660119544827000641225635625436855197778437987884510644573418324160235291118007771034299453283440487784586561600679886223097618388559246944968860253188456282773075474228655778825879664336290238253337097429194743049875335097255119849793471260251084583122048963198081371482297068091875985167311033149727460226283775133074894792212814527867030736161774452095176297767328778915927055122221131243906856280966702415574354337367146401827983957233440098006674477498469645102448459364140450005280874659796886189575790846335728644319440948341706199640942993513795393920664009915584665127086115674670172374099532951692363591354253535738498889541877937154232187825528423878542387900038702798317287489380577496046316376673299231420325719018120542253488961403800427669456351124945289903369429661303653039397739081951526312078006135323634589060665584439278407433604456436353049670734067529154857478222999080568136271656388383249606627391209809153779627461828071666944928459010073544891039922002751607699225399885378575408428687662830079083053326790776774256577313691556477140911866584848269789892742310342791392793590183259220217537105300180355006036366941536743702290428957939915971009775536054188220127090447985120694823807457790405975380844565533549853692899311794740599830937627123656933656217050156028724600490320295860004309422946377055186247015599104238293463937626698410693286960195298712924587761743135911594975073463930651578005164516652770195731759812622430554155127345148517132176371779293059579483830937715841682977044906731462247993998246652773855264562296952946275135082341501760862945735764533586983373052633445771236818386244724296655093272212340146976007682473788005292040175780963790645530202548717583972352268481330404698465929913382806428471184396925919220170112899599269297217222595092264329894992566956813443529533563629827884454066562578761242128569175740235585360337535047736626979588664394653832489831285394507908868372461662649276088552390772525863204049563225042099732497253048450196107118702738294718078213145453660820266118740218110794699369987764560922465950538626428114284812720001962284034964059561084117563094846499480940914996565749153458891167855525160235877002113116434894105241877089184511035118470850701583000386671988700294517513637373436739580603628765037401742900721802831291073729693032963075808060186338668984803836845297242618561497590485164864403917929473843247885274532968856754339472896334076053123565259485108772976782508261437542550272454803769768629259235168434981365640574435200919124583172375688917109410129843161394835568698472938411905175786026212651844672724359462890493327003588416597740439815848614983832736176502814261147001092975493808973219105906772348166954567458439106992738079675813006176047063463129837333751713746427619888867242757792870012722515971297575897700130926415822464981744512656465203490140396897247600893210431584006802491603086868988036619683281360978089371637442076537583483950706363968227341773842121954471698738738699477408621266097093004043601446327918176332731766867107052509502202294414311400436984414896129919818593346958501175777727232130828677359771076489329881219837903491555955936081134301960953272367638428464285263815922631598656709450434387884705154639769901475162664974825478665364476232849530886692482669132913654266404284562389706237616692125535802709466737802239793242803216147425159639770451181656716927425852923679560616791763768872666542178298718703102253117395028176483147782331324189307977391570256938108361722099211671041553845203973641925895869095642804618399186251991171599472410266813118616371027961978824953842739026132009933341013428016782049600284491725483058864888985551235245345439444254101220020892902359427074645969772663552892811642264651500446692838782986818746770004547961113326940699911599007500548428795386067278029900190793580340780016180699102564859912630059938430715222223519052975399241419351167296366967245263045873560253087402301530864297819196805332201103424293552504600776219982008363984767862635463690448180001222158614343547873678876754595637852427680558367421028724406334836526256901969935803175899389996620440514580870348653089981108286853890736692323899314925225584678873403508336785965061836867339557642378731019383456798093833536006019909442783681783030365508958991108337693384476599358268675339463636656341239016571166419457238852626727203144575025683224004297146014331334209021358745124506713461434749417389139283892356604679864997319199401237839483707452622137620501032884463508078648858526312308248619681518304473059076488175207541049310995699251176467829162820464006517249055786509389537041313627747892163558194500634005081583817077007860437516130567625587441304455417882316420528773409416975245913269971224472696995417396758818172982805885369942299969240527573229271990802364763546808696719129444926907986100925409101247726025309748627328263137042042828687121972743042676447495560393817312423969245796638108088065859546638815756045877387605417884774749880275021899816746483177564051989822866179267306296492194873709890960253579587239688744795993366152100954972912385464587665664338053774077734135266006791282961365733176435740210587843258445831505128658433330045643507482948441071084219464573624422235128117085306543928763843909563888205006806414484155758211951343349411750970436340277574269398792678743441269165122372221390931429281381340385591543085993906134981682003379346296237533273193565800415961289918675087370364731959815525913779053072009765935657571262043663718524351013546162341636373312448398651841396459299494047230156988722185404763874769154862005528962334166726851693576467037303240364783737820102889572361000361918873473888013668294063680384166966216695981970891578853656081597237607020916524136145122129654166228917577198999287360457743232850947656520638662417302068869544941340992248397201329726575981579861983165817371646043546547644379423711539431044563357386881959239480931901441075286915268225626393607981208845367377712355664640925521463933609214288227419189211640736846016832651834742236457932624591104575332048207915252461506590976127037142205994370277267906690482001386487397132660834867055363764694593677247305935612009015266534298069472241965312213890284031889411453551013431075660429762845084079757948140209125783424889313304173778681849967199796814923065607802633380023561181888203888077259218736467065511299598914067140232264607122788648699916924224411349140629915369291890493496876199175861216768929048453820213097406194515760781740926911947595031906339013678551710354432241308501205615366595470800819906578215470862378514244398122117170076852250318036883804395054095185082261908416884737569865627354931718652398617084566289231980156186601093286557300643729934818588424231427925452237813301810834368254080030003182955523420103574546134408662706972827268988273531570973205456182953553997886355565000572204258947624745234873710012667318299071062343822622048720380474491611500784808453614020117238023018538517793756428093780445506436990655934763732436920348330001554122873647807722135014524331284300913520995377048354119601574141749602978825131559734505119905104926161798099639502653993493194744910956675844611049657296117814288180741972282031485202906050470522865105190097638251563166767438468410916074195089990188497551776251848490403464235882729749912237108064960067311821218611186365046493220044276836012096753556913557307153329144525997498425728856879613098436388692057217429704732487056720305548372501168705313929958750672382427705781343399465188589710763182474113342238116262699833119263306003301054733983911138516017030551872601664803965527792677766786812484173199715925814590001570585374148394983895676843914190871354528796149182962487993530439783473000078200112546543462134004075927190193397192360950810409996513135016093287083026303447480544868708866136201893524959234178753666377049887921651497135697477055249212820601091840691538007363611892193070946329416223664445951421296866790910867946449332291147363286522302802118546957050444320664814565154917454237992688258172094438824336632254416717859729153365546444062970619351446150028331796077819453633597939320586455971650498680743284148300221711348947956698390975784354309683172785625776329933143711936119097601917974826661267256354415639830887276823441497665024138637836475016460984876918724072404981374507374468078813795668054596096307400114768768510848539948040800530859988499947604031448295211270460308081787441745056532591505580978141739386061176390125309645623973371767697100762129179913410567307025657842871341780900621490386455657641299472037655154602866112022056492147807910977985700340520214050560590977822497000024258989339301065571710408226210287453131171756297639807235896625582819243984397230269562408043998066823209825324556565537348186677620635641467145729782426969767091296875740993579656976219881430273664359894578851486590705255757391907106134241265698494778815600266896934957588707590469296311929839014213545392608427766853407156416022308449834259834304796403449750253584257256267177487899998360292774225015623628924137678578837724376248915653400460641196469884672123057115644730788786553600557029835807861279628110113419168768836705141781492517110353334297111633232900342708131825371029577134754694066637516891743172205594052691033417551136931422113081548015351039829469368952976122011481881286099206876312345211098735366120114993101676335918140303615691128678820734296778590383603219196682716330010536914793433246783652797616342815392696967875451793583500593053629313933240185154539683058012730644607675685261897928190117283465128893580764414673816573389621150448636785886263736316870665988231885000600731676172966259123436532093437383875228530347988105386861777552718202855897546788782720957693529229692500416489636521762131700655429181449405795934599988004652921668743852439473678866888619694424009987959892302758708332864764811069399117257615924848030515570257004139399312844819209622997389506624413531240186930890190714178085650255237824220145652693891267229046322128854908133568253890714796416868117042437950232836494355107387922229971992236637388596089806288004333284851184610951897695952204119480886889844797194732223484547864808992325504063000499485323464154561071946824000524200511133572049838508378684165238471002713081145699218589637347997605242142689381345900529880937505371676113987753611818771856999927927171575722562556897162342086118650681323635195563416439822123340921964714495127185131921125541261008345803536717487160556464531592711094387650578262307070946041001809079957971650798936714302692901181926235058421380741841023276157782922696108573547706499678493140562305678804297004083631525234348746083228216692285980260415123762097153561749681006704976322728320869052670577153130648059018382737126045134610096027546201182268767821651035439850694484813884609471071688571794168015104375301997130974946937077651337218361263902835900189327692241462482830818122911853438133701422312257810547622765898091557558930375693985422340819002491504783922608787808639436374931895948350907484126944292796364040186276003134981336761582252810278503035797606682480883238334160860966362081323788455150813313116576493520851969100806056413504544879078537159981045756934343037339169514928414216511658420491439186746108747661378784607964618789699626944780069772139656774070980959670178729171061211905772843890404752132898687383233715614130877122778866701245274555799712007350218285499269015479603533645499551326105103882082592750188768594701761533933298972845949157370578884955347163643081288631661888934622819578317395903584883635580301565734200159239195663240850635017071790852695692367059258230727303892159623378219337803746439882789128943877327156841445135261547809475149495717810598341863131731080089031789018083283109261593202652504062115249338441942131655260760333948078122064203811894742313720276634675468197701686676571498940794112234193961646968013449610432802246160163747114889386088964102005337206843407153126319038245897307366161370722330911558616021738950890810165675771928889147112544396610951658350781818223294658652515615981744157845084277772616498869404663577781518651915904153789328343202980474741984516853744338407011628796870221347386876781928867410231052895944704445990670908163376246858668035323305886758036872370797733972234491603021182661098193936735937438621977680984360976252795689438300189482817134504802635466406086961568730976332360966287980687284213779888454396684804406919522690073102030096144869220778516805138607581104350154484235217585071651137089685324879650124505265839340520390718996026138205444262264394443056217256305570371558131515580334144562028593966134212407832678383826847441450402936661533409112120832191680553554230131573690241248216464457433842131921113454603163002409978293020770173110122449885201007680889345210788981458499100981980123641296698264428879921065295295766712154267698066805904610974691766279954599490826331779013397302947031418039665578003961309162151946164316121779562243409788969471789339005967107770912370046583209970763413549637947284941497613128003737503216484653746399727378665409106835417011244123738093727946473562369593355860852434444117073872310420121763362251451398887683227447135387487339261487651202723623337197732844324672287576824353984816468639609483821992545044226640353967344748547801847020981358692390873124741717723808409138290555057401408437812351262507404800386342478445448671871572115107134768410345710442820361570230100369781549779261716181230961645855620916012182616100670492017703440900980119336950863595965048911701032931899256508804900993137174447563813667008976788422242512722897436359200329398304431105913123420667292609769600832056186667512280372272238162038812967072757686562599477245880971579378050557295456777990224360613211848831237330765184856619801767796421694590439115886380173455756951201641850317502611184433625919509521394656795196210152076644403774201294686836793036572459188097629774238430777916124207866983717086330330956583527240157835355444810006537135236750368757389559856718128254703995547915577411996917948753002750001219244715144635583984417059150522332314561614654579217904723051015236779098417474094859525515866425474242042120287592982121607249751465299869387257001015572523393242016047540458319278732912617971148789855624707079832584975671449030489008730778682334218942563811402127651635884286257732890173314102660990835801737524173972773035953595604406348236374210145391618489860511105672682861077415752365819574675499516670604631912881212482911284824178518115536350299574751573417412914213821470355985653721458827410528201946749040511754063140927508055642856545951371123003487187131488303917712438654668150455618653788568687515792425538938658510142746039203907041820916734503816888142892414573793387777921025715789290714330254096686842869335562667478572987112363712811721208206557765453585682912062998575534190659153155542124281280880380786492895764470931317767615878845265031069970067422181806269562693111384070941873106748369080871043144514213754090035061727881629530283239440233351914118617649322280045067181067098938974464271147328008627006568493640887830808355867436703770820453567791299671051678222297923478044204537999154098051781819798171402711471825551275993389998818608293011055838257404697187842315126127155688420883477252388434026406142972625017449807846443391947467123058728626651924796495101341754907274693426447638621544002462368331172367238639666976860019664289056860247054268540836811479257487772661382667974867995117296459211385371544331156545117156107144622458834753781015622968738706853859160698245807349576006257578530313260950861437658884047979377344377573692889484811533542384368677945563640244524987936283920466312269139859271167439476497908925317173777958754945029582782672510241424527259354619992889771563438987704494425755271284373651470485129523858139770254313626015349783283144782562725781361318556995677358543301227249358625102466701855005093051415017180595650742033336880143883558125585785638447750646375992314068938418557494890564126237757790576061999179861242274949759677081682886489093879233299441997176505711602986257654924636524888017213007799777674246343176054264755330928945703048872858282597308013904843812049786993317880944611928437136327919092589815892043929782673297003962083702949694042616691363592144493485842946604230924294746023831775006993652762073038537966566932384981554574451412408358085651032474433707285618699149612570660263235198919993881688229888872575282636670244850876515225338029334078423972599431066002715352174739389457293122827849890516086566655220693675782559560737868173041205235120403087691173821300775936262700615398430193172088252635154034543677290440840869553466056588209336784843745832445349823504862871951399487609640840964950989824364218805461414830804172575377408931083163404835425010313858819979703330618858179694764721948351891044910994967712876346256890582122292691678761680055297779748425043622893809893928497463407831482712508366233368683528435590399211497174530541062969890786177961189677520691856040623666141211969400136168693080256095667494930855170653929766578924353466632997307714401177337483638624336557178446813099803777342646581599714080958512803032305384332470981009681497212377799387022628521248221941634012216559977775895620003438603505313357706189631489182333557350212940932513970126085800247199590017606402982457742253055196448617157265794033872972644537018678565000289050705797196808345024015012137653542494317741540819126969091430562807425066169009868559152313813310027788636271270673567507368361166541091049269726837453292572750379547472797986091973996555204503807052067236248301036783072391184293385237389762589700582982536303645437171691055401904034876346082320720081646874064678560708410467408130607528213713897383946117994689876602925962083448239634874345517687003567123989510562863433900275088362019026989156845548854166148750114979495684374867643682726793897668892972875855564773057584121338210702410313023865186097667950888474868298151279207325265010688721005922665144024579769281623622967736463346588044329278788101798540344792109558916548483652173733391022097194400705899608939498527822247806005528832977021896030501479428264248859054725802588890985253086355622742187178517736125273510633176997278923865130617626715917646248976768468793651826317407008842298924884052059907654717899065819124082053802608513946828250602829538060190768001876669899473285136479646650556033166566586553062958381916881540564056383343376289659475876255099798825104445419229435238836812032247342382573977070317022251307910912748531108320178672209075845913557445775352473240383896109182834429544379853827775461090613922783099850983372025566520741681249161378937233810425175162271296128809896818436180369352648363990109538739563845804708100359422952808513932004002494164619843446759841435941809240816863776922325546300695930538892729394830744079307952395146347136578343733927340425857608813430118218438522066410233903301165734745861904964798513967535988123147171501617340173373426522074794488300055643689029111300727756835482209645297538819167241469627627463757438431471310736301708498633765773260698738927955515683225228783877432916193101868318955934326778907141980011854746442129226907238763759502054225597691640451013765089776701838495185273476687450100904427650510613758458538742766287008199021502559393940525012776671098632919115159965401643684702850673335284289948200925443989620840946320991571555208092566007781768379356415669668001174175251268770695133299106145260439131488744973315822565827284981824048668469062908997599071329424287128664580360215965450297581199344371428018806830937443723025352960132670961003422874885327511022570691583371782591627121247662559909020192372935148362182072023602001356861184127435828697676211781217657962257196437538845704499155220477217635150020947370866046293703455706556048497139407784498501580863861327021002757572379153658321972886520161919486878496265388667846653792410323531596826753146923331466617774734863688275945327144840949429101334135865999590206734484620699056058283706840458673482133465991417246570284904218167350425576724471427864093629472312890293980154860630208600257038021617366357676749257306340381057245860159677351127995886924027689565728017595147548652957128771475851159007298625594067615758109852002840844605660779280336807216227299919638882723602818229136805387437664339439505123652757862973039439727829860096034808695999107382385776697382510049792486576219355767350320029545433254218686102610750263694394786746180343576132650557672368729856432404493609708670180121854293203083751176688048905310001656399995282012917796491508017474844881071636863358791634582514588747807762823917522319450567558911968947077186156128503354452487471984945945005971804251491581018556724590887426760348603287771734959440450731095566037041054308025560119970960702853383494095231345278927382301303547591780840024642926660642042268100746626118235167163251385676912425902672086489762242192286134939555773067583181474793387685076618237065896409130530182173264372713530905473702669451674008665099449960675364053050506621232023666621341078462080484775289232025519879976487850575611814501027990430447199185439944909338586487405392719224512567234303158648607117181934680664958567803037711977033640861397476739345887171271451050636550422587325079234068802527767117031515236841266871257022743308244723149728067512131550487320518110011303732907417134777053692416674954834579747449122774963884001215879631017914952101178938268471185721514771942686308824646996590059873450479194746268182701182133118905058444195791244713141050629970848881235296797035167112723132254115267740972418096532014972178289117661630384981903534166821887752522935888004073135531884116384269648142429539609929788733466481833104595437142014362451941746344151501826840661150848664908633134132963961251778203488806541004879321012444199525415648421697078980972636760679377684730393572652390598734008378542065349757760310368041407676145368568248773370248694394410972310537643377666086814566993825604240624085320323056123661070109401887214259253055229704250975116030436844118950226101885188718142018459532463504119600517599893692922488390649323268819731637286699065089350880335808300518601052320727785433691336503760307834705277702269880482407973930554732233724602525014883871689186921900725109623319278681995544232703066656774468329844404221133448789492176366915910465769068613025776833901762517178236244116749882793049129959686681984435886210171276111923321858869725306009119382515101334224353899359300784581281244131702371031220241055735819937380516600708546174020828730178691993477012001786985162305479808905086870878549949676200883536986517897679704676521475455502214102358524152502101358625460262593787814396123309605919433989755584643881025710353534497239496635482030140574477945958912047785041479185576954377449865823115239440618065328156119665550942642537328713732176788772699326796545650783578985045946456181480823879527536062646609490658257196698306583511780899563418377446501151366681276845986500656457417512934638593185931256627848795055301874126236947324890584138332872552416876234758315571129919201752512819633535243514294656958531810013933600387477096203676507479976362854690121365650115613628911650608718688499607002438467298003192786666325956410094488839985182767501349876309586692675587806031500719132488378746398457913926917204286825325084083140271849463693805154257200179465717562956659232634233097279962630989598624082998660331095249519256133612684287853040321370586690686752232146826096980571110499465861418082319757977608291613340247765822355863136717494451302187273217718681928436841151605782609283731895794915460394152340538250373108818942087153097101063271814473289015901772563202321442822042061637724974798675636856079060959819346561098030771005184016971662365097479476603987740004576532225135907648714437278873313575568304562244330257610666095535800748414782606043434835504981608587476842815961653947144675366384370855369728778019171553407852556681934934483359614679929270105627307328306605994083857699528000607454020639153713497951065810202959798824485651583378365331181858371900311875450041071322310365103346088799908080830663575694917015016204765194129621084401286197603797351036160641524118995616589461495590328776945261437178157227587737876000130282962125702037103526482385633499642793707168031981938429966009713399147840934874136067521373950679655868233736378123047019107377713645135554496176999326820418411235065359926184250353874745754913263635173248013707265412552245248218736203060845110815816072234673998688828316354922974105549991325864375584434878232735046956154508683922043922412165891479193271930439211037051393483755813856735211470761952909379673481159488901655920431394671227738919564517760979233933816591847242491312832104759261884805549147942655824577876001232682160601354537050376171773514132164190602118214406087203223166149988106406459027477342264648921144530271307093789018727177450034085387476657998580788858751137318278430092340115249649332254816816053588298904458760917432081543479579293076537214445020527601177759954200301338284412263662134554651001708349635701841921955667117540039280559314557614618143694098288084294750691572961340584612866741445773616921945024810025205061848888008953517320383395471382397009755953592026554464415389058063615286453450791105698861790352333074559641461037874717108103389322118199952322836493097149430657481252046762095067079809576952835468155004853363340036469607697628885537320159596238491958962087598909475857695257313547275740004467643325024235861772762472725232870523613085731643333641753752822426128694659519443545684609201949769933546449355413493199895009461814667803038451252046857102263759606341752295986150522690133449633505950548610961460390674774744426110629359441689128721996023003467203213702604533513149184606435424787986864553337727865950570287240195717559315897150225059661123372934607670582097673326882454031331640493795526481822527545765760265306648126515562099279365706304141026535048553419683519079477031389435002807264951217575363628618449605474866282965227598832357156478899039921931282494780857470156071112579110643657307951421625578229270344526327849624680654379670101996574831263582413764301571809752858886514747454736067857872793671103995094471912355103995927594272211463593688518073911574999207469066284971308394403796872535780011978598555980984598551281290953789920542656515333613815222730191579789574808600954640029513045603793706334477965546337262437173079124288271775092797032324021231003033998336665644896234320238118092231556693296662721639782348287801715091642547313374531443889084244348366113449089158184050900859745968343349931928791419596763574215296147195037273122220540344313478210115117222195596668132354195851392005186008784174959613700080940462373576716312959852324106346476451765489014707710031063076566599697979369867916267195109383228815125721251255862428933278272342655395272408348954881045452107094933847099371581247924351896949049502201317877092528962414049516204670871371725634209709436222426680823514000565755710462810087079921602030789041150761234823893746859788665854752804164907950676220681402859381723609714086465414613804704809501455664118871555936824956035926332394152190516383703841602273647649166690088548426843052570534667959711142951686598785376636761571331712205515955270404105115087864958201757753191554941915452641818288871250341712413977551430061410113420769212787442242542859611424568317992843378651368741737125619683925719247028925365483912070347767880845723294382522952789536413574118079541152822023314891232210912141865583738515638518783079715259379268261121494493292047774416019016783340497815434450290793170995514220128285362919010042369114532080937862569925224109190436113234437254986910390095289100554464527299234957834779983641632070255718660649118104116932402881897743428627334173337761888762078378017008837679935577013935912895384969791281625871898060033041571056804686988135723491848674644115879461384686454875627419657470626181138331419870575308591242638423878223629664505460225408868501207540480223575808774341408423064882107255514990669956968936494856315663674836917648943532550955227696819386604582010586938867491463373223504328089499859468800652729332049631881833675294895076799646246077903190949167327182286844267263337518468699877244512119714867059667591251176497908199330611322178526023376522445002926041580581392017380024312832131012968318148701336153183676166421625241031107671332385231286432797598730125963042167494729860178442770231554838099080535828995423315592252965942669020476225374206242586089848282486440486403226466937629167540707858754119089807516010410249699191268374594419019871618644755862897727500629209561002953845319933306628238267315555225042055699720666753820188679347409324458266937401842214490117304573343622258523986902529445062765373377282240459717919961368019842237910508180459945498649501051324944176787113098789855074648431430060987737208962910199877788227108157971373680560528881908622194600376402486664104006115901059369783126738128579935686800125220457875199631489658887818782167539249191880822749081340881002182893102321045633197777279354240543070988099938173225606360300463354475616634875051729353275039605376047461937880906494580551988269033561285147638080467206835108505678056698585766062883782392821788386945148525795078396393877836772214382646431317021815415735844672424704726265722217651300852467871154890520099217148869314287220989455852372868575317966736005002755958194935854673578472272899437591299952503238377561596279240402144905789565545712520842907512670562774691956583589136578165628464868009034260129427928548123020701288341520661250123829995633892564741839064388439721934789293613987168670915943618024027780136992888214750098785074898999261657726562612331853177933690942048735319864899131653638604815197451359144229661257311580980272106079034238855191193954874487449378819703918442379834175274532919756076409270618445587097553979717765398448108308538478458498218870712092671743017652285817990147591373385919407095973725863746673263967500100417642148585679528924632300335785503672999735007944429323063029626479420304509765464924849663976542315910879134581943025481924627105458374167806298690368861485894623853573733521546629228729920632645055812295704133776912079019488309134892261138856101382063608309204844372205522544076757276734157146430508811934784816762799747204756083685814022496241918038129046143213820304016633194616505295739357864024167000488251846944916375833547471047075420969997610123656406879458887480519876992113887740520327215146097470720870983006327316003288086629956594122600608653235058890855828393800393292613686579263650454308774463736234240817708678743697203053096872548034945758021312910267137374745916375380877657564929663544835856961938542455359879407988351248596803376541743979883494957919970460830390070779321170637440987733828585501194483216090177238045421311139414436169580933175151336980702522111737239240758468669189851880782638974194663701472851443668701498943663943466312634833116431997787015784784280182080999252383504109958675240202536246184705334308942393980192018803822424479560764492363297042232726094264508733876623804598566040419114784406316884149296255652570218383407391097399688670089367748178922786623300027666704770728891912607338394704509679557086651243205076420543762800387649680915292318753731734273294372009931740950850824288728627461462998534499852788867263600156326762347217789252163352066565660001136269849561213950679133698758482458202015552082131488283471643031307982780010900474639082860536743795522307201703752316470664280019218161373209153756584238990138350641349066862404967987836410198448560417677954893685868900738961545399336530907149960911261250501221129225587005023794116558593885424694269969193876913390943959539012630577547217540898073423044937546992895207841009220159776979274721905878665551128213498680184309937087475752285312461648880454742818276480890864498997853385798241318824045613337740258195152398668458518805549255194361029274639408719220032210183566887195315806608100585643977802869116321240765266268873272168484977370931247258228318291399534680900783466658463600832693441626073381910553088594839673131460049735680109119037665647729072071405124758134556918470119794999543110226831887660568763382934029946180261610391858027550564044104063407594472066866977972343370835440151424906995026122431404355643500149646931728230276030983687337485791269569650011263865859675490207770259135631762027690673945857103603296562973266762638864703181991135390541788102940879837002268575991773709669765773813020266502364848163087322901665828099893863651023945934956288659200897827184727340916844236019032920894792775974323258557016170891194446851638493056016036842915529982037653990794772866948604153534149169783788828336261288237056256849834823995252643061012352755901645811558143016530290809580829521413397384182894278547292725544306009259675648227635909664341046136770012980800730737048301125542435256267386594956684367293008022418070417899879030711643636046850901816902771296308929588643702278208962090962032780704953895698018269957171154268021883044854521138389369226541542917997660677404149743067736146907426220009260502113089775578055194518871755696788837201657907884028342878249404300681365474475314122189946131480398298466144420028897671443730523963145229138629039752115437047283805088162452929544719374815008004354074755693098586708066220260784730503568443805938491138955432930046769966081770806487621139813511275518630529848671845044073897901965116138820119702747753693239624981372064748639240863317912889523789125899136816085270004600745247875744970250943130656418950660967102000116194544776262558733378097696156438262352479637567919609661656011287845488143462046607670223867554610590580110678879255192006381214501412946627297905377713339236987896679260106593814667292279545724626405377160182269641398608802269904918231071084715182827848762097847093582744845715550270921343447421135166314380047870333745781930941363027026553396352179134120169303716342935414017314138593659792552533340904650539247180150442015134121387311423444670979126430773015381723062390540565713055669452928947805609870088461486868494400521853322837787184849547982831983819636157535129232159567625891680564515355811891466773582721854646291125817001644653942113271342891645549552824132053728714219332636306541153097251375549917497413898139056831105789491915785914851082925812060274827105553999120317918268095330090509695526791233532405555814448526618325299322431814146763136123141109158362160552312273941009054039806026237808650203637879996756716476921968367322104934636572177794816649971631606488674891569344824114086044861355153472136816628707372252641140221953905671782529252509631113821793932453034184387124384850323667376577541774706036856678769741610626397219737278605423855919892071387370208300569853784109856363210860402978038709846205583985935957503185803682195615361979665637765006642977794758261105784072615593544241611394382351515779676698473027949813589945406083101100893384992487030580138519780270277749894522842983238560616163247351015803383918226695164721824716785384270509729572873040488697515944075638374510539701424367772785723475271214632394212920026856636631630179585635908714762417768958986444962342867430571293812901117923708032955897090266337101414996235429246236693554965710970163244725034369246905341390975848446131526475399389560921772933451849027586252170148484150147518267763320187859239621134672230506651500590313057991185279011876715511785804241812867256289435421405305811664735013102256888651762982281364476034459842278800033107601544308749560000708926862637600281329548884644813632312059527551490789283016595538613023235148073622132570067405975381797813391542959512132594432435269827814706000415934557624783712904149169539877989520739461041003959897823879314653824825512610936415214801034458813917779882384752320834676322967093523846642489908892702524848266492957542781623106610774249720817372443912553600247190743610864197879427665348773607891632238238096716302452502244426776535440424923382261765710471874111816031546293397599731821778764002966302997022625672383893169774430622861628601523956926108302337075265382051623835878809328955211576884900678175257902820085875809432612605104783111483644157614939695403999660330394257124633484640014782658875218286127102800343394758229074300822671819724958761938261152052555259214733700259833352301143425061017731434357742233984937388187443436792679176029942163263298069468855730195268698777078650537390034113016843090439459920419930857589447429376355364854764125787304084395110771556085746864704905865564238854289941590832480674489161380710550792490561584969083824545836487635901491739740457328217983506215916009755021035919200899286878374507508473979374272508318343839226610492494985823232890451087737818680942541670130641428822109753499816779757499349026067310598890611609738972105538466315704316848653302535225020390019735732130595144844372766336871369858164624123526627383166899880853934663189589566455432688807409265849193679819084514371043195878270178564223932609739914999434584442718463468531328702850484891162022222089918709657098579763768780639860529192240901678938054741812950870758611179505751844534637603784721608591796871819061989587808246251037108968357787476234658411967007268657404462255963207283777772202494872043850726153993328640948670123258262654706221463043762506916434240915050732045824420658975921978350543269766952794193864324246503216091320145132448168275835245657061963488958171449906096326212423345426230746603635149464057439045189266792001257828816758104536113761846196028402180439246259774491060560688390139359538148347463968617782260239771926156816378007556218655401647975190163999336393801976919406172610845663656248825396885610894838220111165930390702711996005229410789563492199434968438270036057596996621278147670891203735920188473648264226957574536476270818239583924298157913504063481819788097054906987074870912032589234507601643455946495779523016582427415330234983078434046078629376136573370520230447087681993465944482902057501191224479428521000277017952833811095444619934404826648786755564085001833756473517984959241611981629709582844084413755526385208785548835453620332452807659947398192462082939830024596483410880394231439348608708797240313272507241899137489656389713829156187163439062009861503637215048228433076157007281787324171868823731361917156896070939709296866132089633875732871825890679550895065784327097977294305388397899060922137741517419089010302613831666746684352870433191378232912361896438956750409129151525425944593571019186896767096965311092334017972686786493591622248139934129768993885266273414112040370044344027895266382703438045503504953983016328941900599230295963073225754075851633411817175453437391807362537298456234493238187535647817910478715986402034796540470926943147277839475141857342616167391675740837894933119739686515346149739377837293202059509377549798892039256800734073280769888329096315074967301778124363192292730847561368316490343781978480830727164780838707845548747660380234926423390515905362153317669698579342503518787950890897571607304425814633896232241571369578713635882970330221269628844528466822569810687996921421960570324345515285405711173887802641965023192125886882846814912386794772165236799673822625165649729193925670486274763415254750493354407996678685761808001299948843522292371839856437338937864651363535379051531725157633030427474603345344246948749811165130660365674527614030593281666778094453791914302593583197600794846139753050658463448128160222219953755625006264392473130407426284818272509810163360157027305148773603272234588460982693725776056744841943960865957162359985892754704324560201665994416078844610934752754569799614550569502088717899478253779903282508670705168281681768217195252863837149045878516739016132438534008935553186075950153477334774158680751032168100521616120598270387587393137935983047934734867789726577558477981385030715552608817330570103764423105690445161745829050417779362511745478639055282148693135367260317414666069003575377640985706553129255378754977754356779980844325042651446493627201595148285141849037341957937471265928818933244448136033887971592635664056723262348482184073971724067388684719870396595667348254954066655132933257918540367561105465641159207804301156079691621730291048200375184101754953585953053623230393417037372593943525193321548660654959994911813936394461952611326609878919122511893571704362209305767784417041497579129395383669657600548642906686137820902824656473341585056044259411098867279967063206022745889939789778780154900765294608829996451727178417976812621219198936645031497194829318188346205047115369030253826398284347931155344640004060696192525060647304878596975213581915179198087625476424071148435017728809549693525255514825940978929450038468561497124524921069572465377779156384327445694710036797041232670376099523236273504604555492476670210830621507619669070259469834712906963652810670306963320564368396376348457990580886209326186420259637108691582251553757035483323941279061498090056469799872413746115113645745451033560362234698803388830104601375954560995763630340105451422104848320163039810306800410739963134644653874545284106313348495463379428468879719895596025163212467128116966366348797192483296993865239502433600116433590040829667954123069085497738959560332700477661172608275912449992108866050388295926654812596388524555603636172784016372205253164051154584492776925406077557862572691165835066480812389937616115118908567861477245017320655460079664253023753027384351343736153408133934727214845183277720866509862165890583165287085952769019088204311150477821479596360426791742478595305983533820210208053753634700807916991256989487172352219318164827842449794174248615327165034188860427733585868513815510973172784554531748081830938624842315948468520711823506150376231689043792285742362441854460713125730717510967799660977706864328141953042203341813781369389891806078949599417292462523322853356649190530405238055280629712521374265544951662332807155815393111588025702309616707445264852658407920607872202627645333017805275038516139408112619467841784834835017877411619066047842927584771713999499504787890137310264473952180904536188675325649016467684915932814633352034743343426541712741624881549553411402552791284098400267306399790293235313336979598988800536728556764860224205310493343137150813464468869568224121153286992914116301207313231901617773527158189737176735956820410024322207996212228337567590873809410854624008063331605819462987989919363146845387178743087104557351141929815578780027160263907989368016729559363917316101549907183935361032151613414792906967669125690972099275472757478855531312601989754309121638125244820031550190426285951215029378391639728187892479909941145006066207316604630763364846463633723684207818251889213407089605487915227974568343710127063305045778923032533553232894378265234163368689485143253865868090539057740040208347158399342588298981663483792521766367177999808852116847355690869468434060158403952565826073144275121953075633516919853962470328734175619696490066140529633910847798585388552385651599334218883663131911357461261951999064272492581542704882172373079062110257001455690826699468429648615831431593348539298084580859946127964772161439280113941458560017221772175709595065112898022174660186980351093647892240923442096014597420002498139976184826214161236613633185035484796066846879559992967076552045660684438507099961591036675753493542584475911956649761347323349532373534189165507332511208285242127925241059001644974189055758653035241017872103993286617829300258756864786682074925409311704904140006513168208267421716119841626873471061397352230834617909040354060700849091523616976558317756350019014323418643606672082201732304849298766476684717588201497145705683571914826977902546908392130675795370547377197954289805429388237763674361300200030661368610438166784160594814719781663602231184387740031853406939164899273845971997442023808468264869292381853784362723417401303860200827460771629192689857982073880262931926247462916799418654859546449567284342904070197116562135249112067231993385503350178424148200303823227925501175036384185533366004712458708942987983793866476480859763964525290125483311900210326795745837279939624249717263043326420646272477420264874518136011272432505209559568189248282556814262899891663128914941077212528193991350461806149271399609680312530076313411772238060027156901908714550548023119440114292580179632585827810167875753512598983684616973979042349925229530005655228534230447349034180151505709005840507482786298576152701694188182383814482998461806523901084685435982560467073641892424442290768467747360126448784638183010983564826962079699471042001787623378627958829787124701573199689226893307515832898347623173792771318691345586648324466841755149735493138380493646424655705126598062525908663315242192422382739717321449334774336163253033704514772488108501999984320417139380030318268525870698303214014781074111396312877358078523139496813495625467321862889858931702718977385998205264640914927197940436511678772873405864110495916454512328545009262371013205566219083785489028427915320432232000811238988105199999865254233477020037512922682802101422207030956089863875654637992117963961787789754355882630894448489535269314825917424751460983695635822149089607227327662172696624019038720729260524313488499160015113375576778728235980033726505389763006442894825000307609593126111140075078748729030995619283361934601902061634663028954586912730599389579163430540676300903204085839427942585916964340431911365588360726703117049408560871610238323305695815926465320943942703708861963660229612914312469525284641141854457126892190559529871249882682343070250850227449799972884999054995583413823866153897633551156010710388666328528854610321359991687867576685445353830044213426667007650909363237603337827360072498381218201526706421909371507650870696612278506584065035235455378665647445279531896919966669232819239349844192259602930837500143538224897351237733653728021384600046158687858922953499154965184334054257172606478134871139513466899982631872450034050059316971381978535788144909964302598862821983003470031174444432864694116690866100728878831550889540570899384681675933715964130872999747653998715232436081959350149110427078916183292960304004109680235789331008219537458723752630121785833840758543590351354014318616637806227075560059145723012841543072895449506920789685849335468953867653817191768780365164484133361416107320463263201835816763424233576386094767171100445551475389249008576289941686423741230651155952219856024746535869959975262549002510208282425219689255695298624242379519584787286436412200965542852848724780943841591802357237579289210641533216383690114445077638365160929269183442192926193116016943531901807765950486439475436142206652564268335389946323315497197003223675545917838355103987469102348444064114758232737991519217606519620326489916411230898210784354008242782875552146776800073018982323245393042844293204609004694618438598105221079165731209074030884892004471206377716214833962421572397424828058250951935869766812022386958757047169529021319860346887878519978717189894645392708271664619651919308517182492621795599848603018609000862536572768888629950925352867554245787486015816969305845325212432147264650552050892333518146923600967865649601451650790500468280694784727487855298389532799382586080443170181733451291254553652044404021667067412747493784031430169642530125351222822476233226911369072784157554854774547859692831418570446490998436152810870175675369408484951308546463078801235082027776087366260214074853638539074367933911103088543935389695866871660693517068824415443989089003742608399461164003869768780045028640169823252054248973180791228830168033076278774724413009050738971407589452092697723453517314855324414456241864816104655776715208411824023400714544211397202558572849257037639778595644244918046581679472923716264328067033572281655592487551693234548425998292833471512910759111253444675033173766225271446762938909410620158745731665260404299782606103399783934999890027541521421474645186065850613110105175680875353711057523144965897351412502061381728893422566022414901398324288063053911585556961098274579935685627875416935068120370513420377244726078340790526030527156188388965914679456552526723660676289418642560834150122816772905952499314931078853669058245700189760721077316732973188423793315534509277194923048065948424903942638795340778195126409581990410731326622527881597076297970319400089060307922196438325759116145382905934507471825368929454852808739976109694320681911316064994208908912858768195006053855993190119076146540126816719754690021019591181209092508862042497979096388121048597544648660519209401729512662711670104426066438932697605013272917174717673916155298255073037071384216789507075586099415681074338692473763823242979675383365481963979457422259581627805810382944891589309131885012403188770067894793309130532659239443647831161857986039603748849652355519743482989683169074162024030252950814300869233933904803502345101092406283408697086078796184783146319568988808083092716799857777989408469793649075439351061477448591424415086376041875787718052253845691026795798979150757665203042011428798915493154056894821336335212317875970290078085706318582012151572698157364461788661830377189738939441369857906172528833361592821339822352772260253691340180521327619531293276000273460775147768995628620375435168525483650075326479441240650606546958800038387485846675820267325038837701648605735609203709200793357458997403737165713952763563515858078068932101977375869286824113406876075341287725481876533110661903520744449676134195134214413718788734115530432757210182893691498478676332879742682074041381578815665039039762482071417614222740746309242895481315438777376832161331660578165786049687427738492275080858967263353399666913620147072162870143720078712706193279672698465488008586975971541184303804155580098483816509427175242436964379217677692412333494038537827895737834505761377251596254321728008603878715259283189227914687969855636596559746226441103110984725441553942895954808336229225359675399400216034996015244529962392786164435704177642279266998012123007576838647857773310725954527122383529275838852384921875350435614148631806925286602760746624658305505697549324353697034401298118214201681850682823943969647897544458823091682977960998635297540432468501297401552326965788314734776829060480263569532161378348819870457396799870701645466592463030270969718316254142996692786154933230888296173461263167535529542577298921972153157683510815038478046871178077047042139648973724477932801826561165055772365383404157457218831025458046990729573178940424784911444828161832094922197045175105626399986108937014196822784348384961008252665104643098106868886663630361446381440661220554900140259441060990356456401206238059422855575182340836925578388116486555259860794225202528303219236702596231061203955145839529037152810536645016912583238193043762379068957013887352615400070679912199771608075238626941466553675734358716589306071488825883952141206337577157411567983011500436059863524411394941406882266743361913180694760243951394787996034004850042364903088886530793932088096616363751116125200533327630369716668247254148818582260614091670164022879299511057657554803405697102573374390271066189210372251728914438769917239687663778920665110534495129973629602049066464310194637195347780421536550424363724911629794288499650968185769566668990635255700922252377301665669770319050672869061569254031137330555317526164931944104707472437171195596327544010715140119739418357299011937601600085971369093229374367980046425348456652547554291206205750595353024578093449137980529685220996106462448481388441425291179731955055725211436543892420211114107247648484238099352164843454480268034802091359268096126217542633274067960955770138856035009319212408789898991404077019935604593062431819523339316102116130252820349397872534724514678370640849946664678032001219728609247719789651247518297150533850085277970055445858812205099252221095618949829129537956316049474766248823479214090621494978519313589897359656294892999259901088018139039555765572028645414360488284070661156245674630033390189412071313281436970623148719537716393919784894093003266321889748240518736202025366503221601587875350745840317215084767377390365777066427672390521410798852331344142608459231866283813997177787420661942189280925685917106901456424249381564641533326936783836086179688703354692879170143197372827777759997204310745305516531128763551713547511173639954565156338934728065223699501226949226218560583074474079178828003885630380085401192311998181843509171498293043647200062016676566947982638453919796212054852844448906592448140973093880639476022284687840708726465449346375380133317004761680486636242158485777132757708164081127411355684255691748203537468186639368142937831996469149325693703987069985885015940540835076429996960210632816026392919261611204165785876162593599505740950030417318454978208005548695195299082616396426416223956773169225372650542867738327402280252958354317801563216964768555796292965142399440410722942679669389643712113160844559244743368641354893453720482024430186845741035329310598515357170378623869049743502110906103304232176786923973079865705831671864125738741756925464884575093610005161661651356026063500984384572752383022271233796831001703499551735489598219256368252354836182947967850156992427089749624341011128275245777854127479426945961272802025162648166433780895248475030742039234451167445144155932363424902981471339785983919554919748954787415680658438504323783446544346236466228092728154934135458321808988027886352451536591741570397175115768047724958654616965466788685420399045307051084282466282473651182303088188392331370050434871187522321726096129757918593055556475805832543816649738593156085559668135271179502337323182729944263920221805133183060543891624968347430220499940766898303963466768212582392201338317654182302809092574779699686605835057536794152189915414327637298492091276057190738067931197011938608588766813064054970935154567098188362064340228384510061033527083275143857199758137574089531215354249071276195799960267028573324443063043404616199259262909177464868195045885849023610967646384091239092547468337179330934306527478451256357584722508009873581586876165833394668859328682753682214737125155982809637370655794803489025580598720799790954986593416634608772454648054467229758992387610171702335132687189789719335879667297051091153933619813120286949808376462494488817689853667222606619274789724671483205265398036737104181183978849210140966643771199107823219886272528567311332903666564157938169204817870863915588643918998353039352729756198307429378988929651657631274639257628008336207201588262105004007696623109769947703402359751918380329424460301701237199561673895358191075486630941118527397687992859631859109405935740371207572627430845697167388935853535737968254565449035838609179256627919255147025489965616220085335095992501202542178017781381060561469060773187873375476068683554741941963900498804699734385164657343505322845566991839664084791342138931987441307334418486088120716266654643917901107406048306029129473361737163980014324084820434846883560140167522769487904053021808422985433112452723256034591216456658930257720994257512651076004152112385812703747693470406484307665499298343705079823470570878547305069603989049207831689433194315993202191777692118216616867732597503118383382767210526545663786258234170084724740522169217440612663525787961633129119603899079103458202155477239340229250097818328840563279634702617999256508958556327511322654795011228275116926342211193334746747549735547883255214638736951356191945907637739875940627288722486181689947724429586443292537256621878941199572610163419706421665140398008783375641004523240922483122685806033937068293121266391459867265031334551105375217603079104611265993080312092208004904673533272100898841386011394381053365506224839592370096368756222947918134484313787623113809552173775801836877288888141965336623898357310608487409279100663953859614043226217751310909432073012310461698068755863016950811561081601140142150415976286843284861558401291928558802717148039979946786656957627811698444034086461340445575348544614453583193241871942358629912081132986502516758089774149621048148027458909716629546185808059049070124275847322945175454088009262480249178869985001297604677598075423102959997398854214710590170574003200590305541388715036351280354556754439677614000891876016359703888802428612745632619973885596035985962708574320383834048758445359359165082814590307972050822130597268529242917071336209841485495742517447455520134349699400192144420834995245339294956538081756361370041543753082470899991479526287488263643873234719017724907497622627453052338419289466703145267390895000704718817524210551110429957562712522539404403926536862748924714197500745237966733812010527191942708919254744588527594493241878975201506295837441290732887592502210050621588102050094438988734515197078172285911328238005883601703294651335744109618022332672820360932684551128417026436599836453913421970373700395162366338826172218975414099742567919829940920990816065094287228540466599024662451630699139440435103286513692411574319161974157894222451758177380657703651594264958350752656444980266046175200174267978589223636427503388658878604123128558366402384737585661368424095226508662748680475873909746408783676848738576911018955078318512175354592997538263043839499840958346074935163922908687159043689309766744060129432140198911548650056185661291328031504314985757891393519451421451267722294282283498191300175466632659600573985456852734727097079723188386121853373939828301508496387051765429987965252823774605053898578310771632895681938097929853401005160424231315256659423502128990722686909735575427324928827209021840346013081184114197188051682812057301144534996841835413050803414038845093654202643242055149288558509684787948886921958355235022816380513158430853515855677696652865394863700187767515946527112075018832047011723113030387719076358073139438880899249879632534840563221263926696329171610678904862476852531249781582766532217258453428105997686447522566092512525129059613322881783175316449241297447342743546703477438501243572488194369930132772938547372506667108065827111850595528163626036981734159670092434667577521505300637105263443709702974643396810298251987865312041739163100673039274939147420095977896046976276373641513132213963616501009740118969974326808907481088995041488325366534089367969749884657014658486781730091109861933873552827778922789614936347466817904861297235827902560904169603416101698177401718606186382428227071481329911246006953812378552098934222889162290281067917200051188136460346147215831621445344531394694617942775219297485582524324463849927643051304750992229245958955356275297919522270301159659635536337637059566680207368233387389430355449428392488498436422750104737680087720399934076798791854606403544341275906889242577402570521843158942453473209473323194702181987292075353737185936713850553997592321905999292503194146194975835414339421516135862783982798084268254523842974457145107330058966891251994721632292373730295712296406868914813028707583873612278274801157958876150921452637326579014735820033887958396116876510153019439631119831818747828349210501558587576767386319261280512439179138759239883068580358692698268881492919544615533156716822150081065447505838905190112415682628595240288994350372892905694810558972180237706222480544053167593443791671496441817503590223998739120993028938442299250582942089407571387245096771868553734668897605032772909437016744167624381141475880803320814019213657222482289553407596041953204556780985709321109928169667233695521486677621137872295130884720544515142931445467816754545900133700089427068643582979953169809263312492399094984490076353839985283753878801481211957409507217298585723479523682584067927569252803956742932509185464941560499946182350481771167609523993103730882886494761289626926875197311872098249928404495634323081409204086103899703700457477667203284698491868315352721336796577367311209424999969703667614311257194255425495032341887239442609949623694587887143444402469812181193416655156251097707926775738830211682920334839166134323303837055629075069451366387346006041424235576358306132929127731831160817281841993928666519543735770950281946755939987537918266004974613556511656228191112245136439163564575767372285191189993945714470995872644508881190058551020238311886787946088440247055685774997990779896161294095087497387539704431269664627150813654480794362793252936431410211229217037687306545678346228976231968516343050337248497251429112089597489023260801722033992969255788422857929637300708073524388048986852742072826671889392532415439249806310780484028308214913191893317839915881233374044838187899469409320638564422308438683439111507696429741188064870852130043712951231337525790621057519470630244143279466658046552465265494910642577080398960468706474616264338630228704749926913308678667098610832377954480396548643527192387431503401539240803051375029422405098551920342590110078170665887634177182183760701530234723068079607887103697990446448149453451663318262209737447630652472662364358957049628263974988980584339924204692071231858674406056154795687978901633783300491542116403322892086201049785690371561927086617072756257077113100127803918007023383026688289038307929171377891094275072391361903144784986478096871079410860355848111353652022487229144480352784862134586773345648907883379269684808051747648159873708022085705275929228801962474249525825272665138060185834667977855575200624029492638110124379449141366905246962169389899244290977516416160490687027972162546280144645097241595280619002321493191515653122953433473522601358943018380929238681678759453885330763408604067199164379747252183127269906749072793479490096711747821542600222263212238218686042198068790017461109566185661673908323417472006137727530575927967344332910918209976366451301855003581936569308208956983999115486209241910186382647996497054562309714422605104010124502136986080816583968940450361284766522854417207685966601426969630197064449300092408812215694976923472790594567717617629711677966092074492297511876127435870968995036711153316597228353645657866151564481565629622638996526494061366227097507763632316582899916212204304033275380899204032731039433972395302399933583494884517824435806291556774477625999047401480604516217058690667373305996373061208194718084313037435944598837405806253618512798325217919361935663646352005086407553103325327681389679785989124634491606018101719926629922148430110585386093138805876331676523241816150582962457849925874944099362551153075169497526733985953818425786741997015875478378266893179832596001778798900886815819293048589079561383146132912981991934352066835891094632399908679780959568966960441435711092585513276637140487207944517776535717315665970488326561465403033193431767025586824615153707061599420908926312878584020199128704159290721273667207606868965022958054353397003565421611451987192234132322630836521868015050815332783173215962788628593447367574499490728244469421825183342846710141164565128798140301928088731008849532735141465953715666082750412336188133337489894633486483088999490504431532639860722382917396816454411355134530718392021728799616181319184475140698262631882636525961402443269102400163839370977572252271918386658600051648979297819594794564022325745986435173741292542526766295212234249481191151432382695887229503604277969221444329814385387999115999643293515834627975680426750453903685271361238116445396869300146045326833348940105286794653603891081807853473670445371766324303835477819217797647991458842925998795132921546636374590815951088278324294891643720660464947156066725289171471457612800052216884716133131752514805861323036775356137306471838216619623750732863430750739845987375425549293082533903692453867951345013565566922042503166957765051357470078484290255689157191424291742728440953066801643576390330127803825627355855328132029417904186829627617181760792061200347368555671337609929344578041571764272748283974928342966751769176571272597508388509195793762177239998082690486541254539664985780642548491114741769787097275361252959795136444006879036215365133234560787540852676254932751517999949287046313323310990208880018018293304832114623394771068824676783255876037515857988597137414836621556189701002600309280677406990151312078336295179788877639606662653973251669004551411133997750334842754723407021066962307371842864827616294939116306798144410317256179730724547347175512517271926884968409425997175216637484436624800226728650078472740198502209846680995476405297631509388546165132477365912902897216188368248851386207220647447011681997844478332219795572535562140008373525498772384422481599696611719373378556198290898901001775639283683217512097231367624885196173709516962748916695452758458832299114512777390322448521525701175148672030255163440999059818717966219164022794413526205109084276664751425026509819475917788618153271695954600355467947674385984639151622420594917640033764093875815715778256478165222151045620498385795143250076650473844907829371954672093997813917481227311227793317976095123699655370543213248482189084487046494725111425168114166559064407415442712808678708163172389267465106395545701600191749495627687078238128502704191296576033043784979124501734216583146970526653910487693271954996400643786965581160458554914638165531787272737460786257660699593033869986965991183291987911498988682519729099769846047746715122650963167248524241488624331368749098704207402732539908104727171944379737636893910024648965692346775175202010913471619012224657956816529846118160642356000700721342507446042541874955477826706526555959757901135205129045739122316926019001821613947371247737282731773386135537276267667781936399277992486039322245749051966660024030919573624406314795621090263771174265476845686329530532385225618062629610093563454431564015648284646052555638182975997854910870343639102374322515457100358294373983883411079984883223865274064766505950967483158110149974053327880343416452421761350361659978002673816491594795623792873086622023986159023933151606236173541479830748706066287982260415477036880840492565898685861352289831945997587972930285132166751214398117049316606577422353435518692169556224784621026768195297804261457827323659653041774154177814804532685309001320354227603167001050080669506860257121470940185463984681547193913070839800912459858979172167836566188765906294188395289834680655456789983026596562022200703499303703818833352949581022220404634171419181494000449773031813778925798489099142023092873840931910433476830288598106696629461116010585109110372575818623645925650240678142247859911670199113973881733900744627287257369276935411269115036746517787584239160376295757047225918578891219625778303484269988635677846683980657535106277184154080715761783961337870816123406948694264271852449046927234384492045262933971752781026113400692401469704722900362006332359796710780795850694766177831489040285611342370944744592086238343033897526062383489960014583808955486468115105961868594905325268193443647295586122946206891255727566543981137803138579851193838550473563891017221177199709006121989742755301934496996736643533632052903687807058041501350284329953716248487039694256979973557506602432194326978950527519265779185047605483714789104345954645416368026678286742577697365924983899967043687137987647191746744964684395244054363181633125667468180145957264927900609005021594957295805764791570613393421120617466459542960761916004960491849942780894232961422542641614155513776576423313397040501358648282472778878268914525960074143489654834410963713712303285998026510137047601753300221384240320387059076548026580972509641793854445400832876391189141372156735847411747731883950336392533754851604065273600204504150748798947190198264288616436867923009913929447403274934085792479166483545017124073862799943040993389148183987062068499716204777486468443334392827401944177101334742712198174431451691672818953769071942426717819276053969242358544500704514695366002206158399470029583778035443120575124773269044997807159395057014407403528612192798755680019718690674083925711976588793145772883270662510749173292683909363618365911180946599779030663716387832635898242835332157117346459389522616594168809422343993793973027675743740288710935434025387671780077007160075294954295135132309244738003168548238977082647737785895466406292802083282397380408563277448351486523274969889736792091772271735830851062803105640405484997446862840954699534337233097689765132205439285915286481570406918441390637893242092918742163637985283768613836920642383081989674435074527833034717332083985424444750721300315319027503512754548652562886366952105168908553745067564050444143493248146681778085617011580506826228079518016132297520736388226673864221535471351686506757314250288549349906155572391372668272473674464186474899947428359304424420970544073702232603739631971220393337277172200323291351745260325253731114016797496554269841631127638384160567053137076931425068301037575140157070281628916019632481366933106012225169427281333995966231939353822592361792749026232821707701743696695054865687564731559499146370565093426703767273922899179416325607748604265373180086283896317351382980263644234418649352405482262428809801002910512270689670460658236416523327940526669182567372658506692128200277156116801071474682073593064521620097395215435863261694299307683227944919345458828036382731326365857032846457179332656132398877274061401896270916006268959428082771430499776669335508870895266863914110898998312054214901684140189027062498706320219519298193918599464169020606902505486328906925115053895271308200420437250501244598050333720569432355139239538302149353574977526794483170018194495636803285197430871274556660352356753267715722520383827755117969846323634938183349523828179231950678990541619377253992298646881558431123479544512075669706363760959085042589859899128438274217882345539902389232624454076544334616516002607785748380570225348669112239663031653804816516327249951060394563940492402151599585598275307261786242019973347975455644278361493075069044229578916342179244073076566582934454384575292221929204173892477134332536515371941967478269687968775004004027695496681439803484959284636193750050865832907379118621377069722358598795002023218977170361107831482867726638769694015009212660149616575723252552901832637408788665244885390353517730406763623007652177758867937209464182719042480841351017231817238676138592043221680355064072962794609326136515245912677332043317863827030658982549727986087334290246422349987507518278403007838460622210254577593641541763046747880786043607558531387798586574194463606381463419264367057072399726680158081759487660275445764385334470053046289168998199266782185502868677931231624766128410678717035525089283444907748525393866354058674342343203772854527202148326492665726956786269663734766263754187767471315544848070610525101679160342100470821924433448027168221648093636533702432375214561171769615730855867123760351880534873403664963690497502670825911578285692442442580260641139642176838391007409526246451005139687394833133681843695919595475423117943684471913353488744711070299596022349033648342142270871591363958270339288698403832985652692738468658470332989441281078632874067592864998128517467789066229963609407467747346522989012298824712524350741245792271053016549716203248596575377237518716194922984962979674235242125203976472111718943731990850040297534044810215529034581166103164296896549093208648800250191836858620284929360076569517887798394293899275370291801197455519323720352771134806830127768990186796107065083914480985041474867727614396740317650683356800643347163219222499922505016928213763647357917985455070556970236871590113492072901961424094863887163540022362704160150574965843910298235050696753982312636116271973174819499917291367179582666537514833781336213460044672377226075479065871876619239069589809966988674957629197873571142210585366613490370069908669960595633935963665034090275661074538791341500748547945422207066463944395916399202466055577304123142167389678652585469090915921397497349910378984662834968058021963217702083026004354423525772086899530292465780936298755440799180850727226748702241008461837047886654821816277564316996109277878578227391502318166864490512211102926427928535433789935411692055603505198830087291008707619175260898977857492919950766264224208025741234465053274869351739549008127565482533383824116323591988184599206490093956909989788220176277643383130938981630930421241562830144302488082729784397820135072428730757752283199945340154459428895367530143601404781298064238261936400722671009455229887806355019732073110816177442183939297184749669868497226195302348720012667156814379064363248381795746344984958083418165087493667709855170655485575561238546089243093627479131211336339636426719365942779073847847661233779921827852162085774555403996532426507586021838339745924030667168694796058624306951591158991608699325688763633901992548828614640252000525835891672974077843358931953675018685223548288594024096778242487085662701520582532981225233294404078240072297989145713500238897596613095360995723475542962473378121196795593211714925531741454714710681393738260941008711655959048752622675747529155535569900730278104320969979101112665688477073966706084308192269804996672577283691697774715155145740414765527994491545850807567068222076638204061461760808318277621902799167098949182675794102886377868703570410584596790534899989301385150242360752787437192814382401965871751534417006993965128957314836946045744193502184677366290445738186503401049834605371127250572443708695758329783097461179944562362942073113962175719129564898213525570432913732985573508884642596078336869025449682551829394423032185718584083583488080101624205901633140891544055432325550371456050246689787070947456877109796967085424059157959111381725587247783645254828522958516972078727914252858595974225072905979693743588188936451761194872745077450319199002707894564480318645364061444332535424376933467190983591433901770960246541072919080373580985203985917860254462623340958280090747784064852658165162214766417380740577741467677201450674026672530298977819749079774774360315225223866695212612624423040568867347995695985297013545302336335031847434767272987702252773131787751738544881142164126246382598250932585181897463485420605172997531711829402549527574236135012740848407881124815989877513351682476976678162023696768633495698112563015107762701228912057773573426959669380245474977609253879703374100569492705244294646287121382450184449490979631884816425949329247616734519802890157779285600513181968671311651799624255013121324471981479466833589879309029766037402959505922587443132525873298380388190681728963586591809498778777020661031680987715441297461636006701750426078312724460479401540782776547183021797215344415606346038595155795585674608898848991875536770376322311139268112035518846218503594474114135724092761724304648185016898934328096985821813404314464366763763463046486170274670770583196170945435206215905497755261691499487756240984864914219015452193650076369110342015948473504203487375441736820399858633127793110460735133359642428545873578918158638764853489452800933148275670455289454132953540292089861790256898287259746416997892826475833487620103765661956962339637459573309252581381643180654845168791567483414709852701545617380333603394729314199541473634745644947217393232454945520410187542962838613093962157265749217019940290592076237470302701273795832935928514555610612010971175506563620646985858933950672934923655285275087164984020297608763087801872591080710474758689598739823255883517486012373902066671769647585704737439294387979419311105476968288420305274480914882082459518965186951190796302359723022982664675179713411733796223514090217951304439699685316523305679306687121171990671799097132677088291130441731932234596697724942671297017942427358607348935186805757773772187051336760209565121127663016847874265669490722375176231578309874233212386317831117601709520973841570227493893917193682551388079338569354067778132963120453222018036673963975182801214236187023011755469525074695805055604843851072606139771603220677108571292888980528514413283852805146827550648621972948008037115414334983270569833514070202060920877227176576853522340927104407299366613700710695017365086698271516852124362254306723328496485027515040533233526856210313974529003448688675999421752870949694811047897017561597409731747452092900145926729062933247306579348607410748813596094412199281158888626550196152333045581031943783502587102726148942252801198641913999059362124702026264666860063768380333222277251992165618576496696191100606495215130658007275486083951161862185523392553334997061479571600955132030978364273182067239508222944129254565880700611646319902547768556036737424553292568987870470868656420004113541511296790527249170018220281753675898710350219057249323970384615571995335738023621349009953034754399454007864942645860884771183365107194774580194529890992243782580157341355322775415087368141227591683914568599428992544485966935790136051252485513606882113559177959639448045264828865814193368701964926601940544000846102087982492122826249641891172468772833573544202578067131038898187853336851252146441328992210621946299097037625837664100748972975546196052084407663043193337660904434685743158353775966968995355491207015813941441232976055832815163122496225074345837761478081226372197029692642120191167041606484409881173407229094679412255550520018855080579672621649329930995949481995114100186796922362371160960262381824578682603862526668478004926275224364656569651147931781466505340256741578269449209987716499477266950840290183026190126042497445762128135885369771784465227922175861207412862918545520039250171459070837502377629887039099309889163154115114748022175961057655868408102105472378477547953118342598397397651631038593870935565596795394129062231140740550216608356037064714622173423175646858654075321523513084220176307549573247723212748877294521420207192875421347731965627111813159618067953616667673315475763554913258371035014298733332811833678031071477041270588016959023918138289066391984647871479008514444901030794940440982340578508486003620178350190513820608208108415852476101684132333024772939232494164703906027050923856276148581941977711023116881321153736874660383463645766315793392882368776759197058002508220367354538552632978183665121852825167693038525692855708204443363307672212454549495937222475114845718104059446758507432707446924063052425563752120925634001409983255045932648761838584855642389884314009160827652383107571964883810673864933342969624483404489974366343549381230440096336489154339850029467516913965434115127773007287800886587553166437098139844987321539057306344285203181728510744442432270305756021242065641025097518269994388229901876148326992005347418456827396665071532943164200506153354987040274007178082157124394719906261140317841851899148051532544310084910307838888719313839475108753762540143245611769822316193933768990366990578834178217150286481499466567304289792435759587552908167398006662248556387861824351896824143707065982744078864475148956715207193586635435227844611360769770691262039448434608716041683858406906484256661029306111284068833278045294952709017414514851934569718444171938608477428171516845170079269381307707937593892981650958408823754879247369793864874273541961146535863584682435754894034060285813592423649913817865374301725194435461912749591020412608176225451761764247469107768954700228005870819877574044044793058240512830564827321658334757225598061847252756829967163321652343890422999879162611974347051501108252619891951920752024458103797196432759238811457778638151016465383987366419267687074115830104900847597457936285905288893628945777468135823282763747296796881828824429020324880327922871593691663547132759708466734430340351769847991546087302180846074068314687118261397123228275327796888117458733067186759154514492024393695625436022839443416115931758363378878835979532872752628462053850489420226183385123047189122864078107067444910838138761003059609547588738390864555361583244179259507266073383002885333008351273112157477345794802010498722446601882724237436357747563057207042468669506998107611487454345874952876172527229196346475850110227921965064069648444243707158987366172680459944947921060152890376425400540710844824087743000742047560110021607198429637456868720396683795986768610279077061820421277128523519979663470098408621709197691117727933385545354871348119359770755374865891885822376346707844864657588105269190863433361095751488476657804730182975383631062985152620731515383747767002577245030393654728842461737737030456039464652877927510898885625638760481064229903112750312475677152536687399614800727144394136456053506013359459043171399134692540284429498305695428087530164900175637606811592852793358846892773625708116893550305000673575422583506849857169217225551562129800099119719661456609102200849099594901643551283646491473286891653205803503135115808625470584355197596707050160982978575709666418965632152936147896028198808893608964478944634998561416129254139894497780242976039608976185284807490464213284324127257448575107593269155123882376595803425916382448336598003008267618096169515841540347210703662856890957187245661816931692185662688118391952098778959394483739974383548639828466617563517070027505399072453586072453991913125842583570819404335926421515617682404903524435011220752545883921944612129477593099902653627337147657614297845085394796062566347293289740692722587970888698756496191972278346688449379299090609473246244816056480612867229709399099818567443351920382954876879987492136244677737396579618518699524472233939989255803723284384801022802557339264994540079548538336517282116255411779224087469689321899289028850317526638022201684702596194295797533686922459784577237445965145158773943095138318451200544591256195624443243061407168758921160790478264991157965332431707070047133598499223166793485229988473378332820804962320267701919845395866542067274816720651630777272465873366037788266866111739103530028950950942143520752482259527326859940972582802827115400212210390250870317243496661413168471400872472474258736252975348572058308169537827277521540086492898080869077679900198899964244319103063609782736915710936817161302663405774470993311898340774621063368714314611189488475174296756761005648992800519401974473557756510037640595920340715845200202133353879480415983892989859779235618446613268773196525991094568081298567116975503892244641641138755635962175914344426217145846035374701890474675699446996893138792081921534126440284318528098275328570390177280413643602568690919212321451493742574186082306127006122795811099546802235898028655131020008193041139110097776464365305420694154522488700235139699650060890021335462415971799448198637105742285603066859341187128016906802801093742994376407950076656890536180061306275855723502753526167357175922068827848673232229588552754050777305100378521372614775600272753402323816984819068819728632202375072856967082280053086341492254768464741320773573064002633997377292512396706627395504553738356913027938558565002696595110730797504317086630830843786323812035595919737490007781058856569315761875862272016563965151452157936000570900045186764477464796125077338652108670419893402594032260970842604174900569855100617671586883998703901392254604802760452210548997257853366699356848744904777883946865562487659159768575412606695789299785763959428377559768115409429747311543008125899438044352179816685963636091004557721528265504133734165089042324472196836697856127064513378259726862822508820550771169636133069449656787929712110535685607238958457765042814801069002388344120397370522428051837081361694940561406531979114836872224180959252128743969111009798702533798151363393491888315292343383890152397952370018353091390811226860522726896903051141209690982233743464796579459263111615051054905363520175565417694201470029432688418515278224460979354622526612669798534726140038189671065917956927814737825230532468251969169349394328124589698504783955351529059781887377878287732543129927009867485637343779091001370383770144925551534399769786564507884950137478684927747233137614147110963219779300888351273748129168743480228831889410507466910310617690963101398895496630006062878275717980222101617026448175071250120044197218707178100801964173270394336803579716480529376780199272884903037814325726330922018502658798324494524522760973524665558100896882657224079314394741866294463608027817837955167104172043073130364871467726165436571637481580529765116440550992157251259342106045218597161104066092376910320278113358323289442101293401964950220569709343106219743792299555481217595190312487223321800873221543601519616817899381122857305439400821764124704622381562646549192091425952306910102826457856126712189141543277091415603294033025970444492712292124841210091546003989235972003052618958719848865368347906893478524478449615612532890461867095192385826715643595885503989795301755242781139366150037682171595729427237879088253243089542657816949443898366540086973516194767984510669338962050794451711821672718802296549342136748888587316959288078623613965045838862766401473428796151750159208869932009977918494469733722623732913618406308870125948753567107468356635288427220185530473694077438757467595065570715208435519416749654053998005964788185920034843525848862614845088508348882710080063480390999728610494031453044605091156417790212149271368405540633500311331617134945156096416711942557991151729663572377022367737049282722976182361427890695252692904140574144806646643490270391337861464683556649395479404008660298565119402781445606884589649988364763378378708009063218743883777568268929889018164480133285146230931307394909521963197570385050671456602829321336706168241229338034843398829159176155242171620903595557674050976254033017550421746270314370496111901616641668623986388868725218268047989697446514623017242405481940321369237154049445615212452612914440089653433472935421870037237659570001395651326251236234412254965400546114705846062981700658330520687000527933146759496233921381254397242313251316782981710065157722594929374370000319712178439605719750356260682560525646096969018075901309693612073274595343134321164198034815747522850556086835380688920818975985895386503610155560776629567522997817187350692030103102585242302314642994754730544671670207613156018476099764403870042292425214198263636171872882766502980522086381038153471996751929023329357288135360609838085367923662593683599488024168745816439151806595598385849512015956245291290338650521578121722292091378794793792139179842249982111775111778262092635672792084181031083598167966496025289760222595151942306152145196521608989031211330335828504797765345364914374904573037141992591922788898184926961464864082041076202592726417943188207898898979278859185339546077414819136525498262639538950550537783712014751021449291842556783301079014358594411075126566776416317883271411231381985869420519748048063377640328817698220782690833293920445305105928929385083720543307514312087176432126441580727983902838802445028027073525792555135558627033687699281647171368828817694314154584801074497443825931959512076883305257114448870474923442861585826744166792644313351970618792329989240789452358930685378154278473776101878783039046071166465506699146280139005112287238228567118010527879510517029961373370944817213640829635642369954187141732180609395465134915818941278892864926044874094736645974013588712765085547475308465178146542548982920892324791104134939080102520267262219541138706209991571262476104867869625555336376828745086748304268622168985046271360438236735825786205607612388350952756032880306160959443273128979230392183413493068364230757863628444417915433556670853165953030439870652578011050841808380398296605806864723332511442992571813865700047353077591087338005606682952679727556883639234167695501511047429208729725419420648118060928649931284479185094499392041279849232602744861897453855058700208000530393006236397855314870972228496520854751882607913397607814691239516827079437209263997691099419920993890847064077984976011332056502805019319881760649617325543378257384361876526137140476694301861827425826829013661408509412195245977510860188185598523237772596957779680870556484999903776315450743287051881094113556655649339603452000859188392601360077476812982726626540047445355903019864856461020156282073353395112786741666679098955103138344741830410660569223131470604614842329330867042176832225934747334947939159298058091583973558535780579586117237283101811490960728157030322981227561789391476950798534729053172539892414095473707616965413849466110385813082442422057636356551940527134579871711383729832316518840957786400761786778024043331206456708408495241642366380500303206739300397658189050835280267563538898859090874818829208768998759686769781892385981077453858498863988637218508182835316363527256944157928598894750384199832619523223645355376327373480440197721777983944018278270402537794883261578245913224298334659360390077087753434870574524792764042953599123460693695877283055867652935162226878683151702111790972041690067887814116705538253975493884061373604764972620314537279207617169828795040064669399759963668520395806661994252311421970051009152286611744123282101385640077010093735994431030849900969745741760414993356463209745444224470392364077426300166671121372482268747114621382647544402556531154237137713683486913555387315905200719115738505494416870107840161988657578446881970913677379464912622654574723545538365577576945973192358236884244946224501130571172452693677232368461520549047573819602052607545453966153540502793314181693385862677788972188187867202284237276647098680257850455061700380211955530207277005681318785236870783307480007397069941853129440751761757570010148798880219161449819601769823096340804276099907189670946360738113557352302737057930084422196811485937856961369327207419167123116073488374880190605387582260256146833105641456946225930976036346943115742170634389135482303619770245305145484911569489499506353996516792245387193096175319557799666760712816730720746900464199356132707188353332325864612284945560201878684541928303171555777553857473206094085640854085319428031673900707559220976714305884954807340724405720681756615557664222684904488881229953708326896108524585589666107898569669133451667261770822938035122410205901507255426815403898914440619288751706389427410699533235307039259705085413777929688062783585674037884521938249591543416009688302197255812425135120163464188135760417537703093803611298251641838953760556915096678702620217500444000282365911756373569107222646909709189742173164873918920690383548308091995711954606315301757783112146967705137476095577463127579348924814432825995178150204893945144011670699607912670862164093151832614067177181992767020913692027560914268745210075206037811334508164204236979508566306846018457332138660965809065153081406805832799975590201164933877953976098643329372195830975828662299405582882260850948693261774801913555357042386362228548708786910207281341587319545346070596195235990665127555799340148335215191704453130876716265534004820573113227672421466868658057286464479603108657883917288461616459217786997809142569009081995370773543038290374861456998445998266824060218843698703824424434961526675917897643047569790022186742415739914070596782713197766237419520040854470488964055729598229474845769988987686976041360473653941793581852555462265867240652707870901824136863093551643911176485953612251313772778616919966584082470569871002189750949049136789774724905586913086608900606936597275462103580425543545784614671684536682320068360498609697077918090525188646363214084978276193516759295199803041666498388802102040355944069840127025727366828144135317287085375949267764572224927379727408848045022677814361495628774927495072810059545135711935599683259520582256276660963786532992320749249469934319893520928920410514933286554065839894605323086527196500145393834607647725907699247065627784115042057730545631426420515843646944658003899408332736906860977753724216489705511734324133405418688502377796102190307780069673665418836059066963476964897517397298164436847156155654254876490040600746981038451698862712004400269696850974260466422124159969763394196858412368172698700284559233964158528979937890929606848444128798494961144407893565299051707365795868210252878593975257650843683288325362840366809172636132770043957706821352197477642474100489785493639173079585955935402119076525361592761597184874185293475505993379102006578803166228672183911406057772193088963909245285602745813136549019492068753171265149526376539247012985180911652580557719922405203506544630800044739688166054419424048025847192066174229737381126466771835560878475091768574498060329380250514062516419668290002615166569861916000423687236595004355567803256567914812712114899072289978345248683959039328201274856709223891804241001104927180975092467933197302057404295288781287303377628175779453947861055097809141877880148502508443378092593163797427745556193468569026592861713036977602347016208491027412573034518521765241599948910515276226243482593618720104163423045153991771436184068725049671368615131340149387500047705852217642798059576024774422347122084698602556177723771058013837720775202026889763029441527632746018885047451707651741216309853398355876829527821356527513977760751345545792476506284714826049836886714130634536352133590809147091543078940861846570018832154409144594989872873733585920734286588064444393929289443648430937861128266466685978002556793156056289487026860355542356546236840985828553949924176904772561559014253240460743962167048023855401517097611736936802527432830560220361963238327133774657384701241818515895991724279973026257049145507616438561170653916114951509788387333400233818048327494673128452001272876876421360658167348888035155189348012730921048536819190712560455457853924405682999948659924781113777568660999729124254180846594581725066280697247598177937480831326675914685842750042722110828310215210167782209665926920239465610650265929656702077397056849858440142921886747288888265033995240089071352031075702923613521382394699233779712923168346927259593372752397332246530558791149722677795698882819474609992802178923659013134554617431566656850515997103397554303295351837055284976154588567869509500772503728675740866101366720810368983776303419046379679572241060170389936868652102658348032741373884071847622430004437146776277162560784791398464909190142284957067955899967626830508541637599544846755332331551154915609582887182432437905808206083099438379354464916470182980965899601750207989086585652852345945507996042787221898263264433083497016784689232652745647378635062872518459560940771980098539667038607355755626455560823875849046002380470574425118830120888279895969983095566321028351210588449236959669970557931018277251221109781766296328554459310608701029298553096301392370914425173479161973039342649828461798852306652688979792198339110763933403336008637474203086842783211967287186040617006596791625567901627569331586503999446242127317619063648581606990259195136385050965487121907295204405875758848084242680286122972008624694969957073165713572729163926798001427941880494786451616690894058441016393460430031326984245616615026182592378646148283368087622546074542162050741349031891341761050087160472503380105814786849339763254329929792792103825568605713891121000993794061556683824219715109701005054560905010958046690291002447889259874827093612768737874551361711463444023040118456629141817317752205352056646059815529066176345374748846203860071056909481571177145912313093004894714924413212902260317027133062964571923958416663605345602527750620886773581356803602037987416797405197524221640156951584726180753058407488187923383237634129413333695101703905874786692342612644598188140557401032594007380063702442422229301777067995673635144624894152686706566247439994318456022973894255889750229765724661052359001827220731111408207044855108406435756080695381332920792488743328825390197603647660490683349989376148976605912840626739466426054231222840607185724954437502375350054545721195122891297990898092398627540710932425669951706021176280985017530902550614427240256523352431483093687411623517968243977169148371659350935975089756735543121160389039808351307156216497441141264245337516274792242189556095231000550336400037601430899330317417373029256010093093050652560479227116876902824986430937325412177784048052735462688606932456115039523791034380566411892916220997593998991738854989542576153045471235374535744248085245544128317420181271198436788123515661937402953223725729473980902720998856520850684982013223416085341876606452339788053004671760205623919901854286275529673550215821496744194201064316853204043824699827451268976202527250302481008016870810907990732025023084117337302309597940105653054189991536335463578156986983179732758543866562467600891731690018158575209193152819713887224950900333438491220839006729942914368522006356146963119268818735844384893292431312784832847305205931646340877903572096916717373885324374732447420138706700004757385047880293926447560274373122968035515477029549694814312208220412485725404418971622393221291407160029711780824822251189148329112276785943638571838703485053987002272343226894223438839687373764357693526655277345764487150071003080747106218045919554996439164709838768575123581826856799126665723631729646581374216175621275407304206139005754745961943863233082456417553938517385560460745123069994371487841238415842085533682276990970616110225386437161546353306246888198170047928749296981755110194194557430888492391538181239244540884270534249672758227213350837354594019999630877980691508238876044231479291172049809004511625347232673420036621078746666046282250086414624610245161073702644806127780475921434814744092340812151202745423744302523138223266031110981028606845983759146830781465283541612002844637602564694743298501051904927957631516885373203769913788340858355374398153062413576081325923366587521916584075730689053993756378307559944406014753585335878126108910911783921937348975697781901648218740439546476686453760470485651033881978984629981889290465917738475327082197838628505047768026083604098336068819353046568629095665775130332402603204568615864064353725381935144254664657722460353671273420683561787239437240060766126526555538710252363638036590994875136810904726055789877172326328802250551613643292753884694566312848285334412931195586902312784684917977876752797973661540378561867066316670500873857144873964495700628385973660940971661314266076435781479471588572034632925400677338072460284626994753887334835778171330048806335894474516614648919825769388379394663739933070069466816235533970663052592697239625260218955289649799391527626628583658209953407692718955215780358192485866211586512112216693851204354328301038870973365665776240956633825638079332436937884235809504734182612124147916432280020823677308587779441885282960182259095900301275356830787133437603087362415677246415957544941536350280828557246842605671543905819623832449806558556748690157095866039435866618194920462347402766746296487271244747761522825275932742576477801986034865849788610330533415342110217348642676613395466390391795776401384193706574159393446945223739840095618037133261503624159527496636503722262998770456952348789348301796207440199837054216201102849699377107199053815836044440366568087524030802652945413572003261362623005407151711967367660342809930054248623042577713335527602873737118823212748333491796805126688763590306934878740256010766630188006017624918927034503584316316917797504626488220604373013141577539535169786761829445990851057460564212124447817988077898051353132363730437927421018871817790779175132723105488876318772628387776294600521464717543826369823069891183694904844955425146024260486582768261147429393939765195290946746498809491589409483374334269001293026751452470008937472547638818427065164484545255606363459831878148799659366107329022504180833617971989321563265970342859409634067980625402307888849265591565192208238155613825829765649850055358580150168687021509812029551370113848418113567071287799410464542136070229355985425363846720866448570777496044308877204211631977918236755244433332024477884666117549162321669051903599047385598177663571426361489550992108799726240919110780691357109317685847161368116504089265895430327461159161873453359122022825141104103234689532631417677518720871323565379886064991996995918423576781331212334146047027976534386827394848079350480627864585973512829912006970619654525909756206162771386228379013165795024174632870936389069455906383748425933430478062477443508679741073601940205523627712210645102337422269589192943946123605900956655128799060450406411392471835281184220036222201623964043071146151865875724368161001478338680169535950390462679085571670424301874229394900205026560733477489589122351342159541733472215291150704556421236941889227796560039777308816676472183972305857219925703494295315054608843984173075522003644188421225580357022874374260048539568133338266764646207350046069229494489093931872167532768524057180647481853681763682003457887063515758070080980678499398830223420780072511707181014575223021342232527913827255991305074322144821054685098422782936076081637840761322346816848313492745997579265567794639412847792171876765332744869822456715345582408552980691902238546233495273851398209074750888589962207243640940699129757393731620074717600292831409704327391891943447242388492404403789064576469966745713000493556483949869141577036011171847140424136291702143066421599725088921103735333947398093670297984163094436986919789422081921677154769345573219021580804519184601616831465453801536003257345787851473925298147755633488750433080970738988431051177811120414792825478162945118242229096343869947476553694829290746343317780396976897344844022272706848768979413525118424186098789471583962717684898363179328492790748423819623797905183968061112915915024598098511271541085032512715104023275998022295580690628087981286054967765750588344407966502619084615862936179168774429814877234383136437381915845777738165146751776016252944726236649398595306500033086718170938394187002465572773150283014860301740830475988378086055608563268829700462329461217525595350133609674567106811777987427378568754638757547758993944827910105886160540716200342657743084846530448556202848500037459216702991517382225989442098092016803538097251861887416445478333692419065992730007280509676526245135374228495118244759465743947150956506161217784838313031974316722561908831435152443979399974807775298263638388672473997439543806295125105335368160597638329278268432961149020279446009466061689769525009829716668050860678292996382047585767630529964829360495385526291900023935824677775137922455182470227766424293710391564814186805878062711191723599448130571770758635024110617642262057442123573916842441140260864468562083973258599188329947680251642867746783719692085302096650169429923731188974085433920856846167620502199978657410411219457461498396681583723431936008486307956073051836318790383545225475324793612960390863626113059836796433081740313547528137788389845950712155948722452741539861362789960838892918022519187925510107739663349378450996144053768228017833179193178206751238792948768782341983012895805709015421276845766162269503073664130389471670145089062814769704294007363669203965148818469429950755557612695575399127504823200857950629904022148548450861230952111095690128132731849434403645458875206507922964086638891276354982714206648953874960686325659572590347282411375624070630732461102143619007423871125201714443325474613382465825617107631944655552287348371920034449003396388837573875329176513082740066828095088561701697764173284368395355080060043210607997070356480309930999005503679548207320029556934988835016002017219083121847121408157278433719097015724631749314789469346875293338624704416455600391174996121128057655694625758332811880545056822704493056696467670134563391083633766876777309742013891525281912644268598539035111486938239238207895992712107566903513769689666619106514954722013785431824960701766311641948000910378616799595337595079818417707596856569385176545788053738368403729951869253844900119757606799814596576867042826329879112429708306302078808856346941530939366354581659481903015333707130917450068069908074179535630524969252154017854122479801401801713395834963329950581253684997370762314330536045750355838950502727824074572108790592012588592159477809385229814148724882912563923964503657828848537926380934608588182493277703781318779941304990543398114019540694002624040012957543241015174291847422802199098319223818462990643386946382225253312869557748554895363988813615456690282202829057412534478044160297429027698899369398668132882216762803513394398984859866762419981699134687338767157631895417782475163071752734398335410286439447101542237799531368340936127927851480301479434905491465475341024598515918687413782913436622061780724418332555490831736729411106264320560638015677886604327258002985547061120415315071262618986192956728137075398886436671593512158527651717786993592135676445021747214555797225517357172318387153979246813698888647574610191511646488210289115578268152105010179685964651200100893945432888055084981886829409661587980576948654115627320463642950569832846653989340324283307078426542417457985352527509331964810910157564743444087761006705509588988669108531834192898749044062441296025920444640779911337185849227924909537175084650502396501972605818102882730247850110568485519255896846999426144377661467121025262631416899760168264048263182813743999485517389085929193458870544456402383999968526244531551623663600713559487255987687713666302577810299961966254853112308730076671491812217770156952200086269605877561872171548505546073504546357099872550450491590179318485570101738470877104463986796548518377340129168320337664728451243454272658796885957114779141935304683466965008123889710796096399205183140423653956415125095310631483542566042726718975913611002188460350737740745841433384514504364011321788518597896686663674551936991794708880567827272940317652269084100962291379434770815658173353927666292779302635581962337140188604803589691042334219902091418314086425508090927716247909890466103849232083110376620125928553348633709731706435298722604548384774343786854318069348665546401249611044346288935980402964086278108584538284039598176359532986561602393470051184019474548323471742897154505455697709828901295427800291736455881276960702890581456192561962585219448357874777289024486943681439710320419000937019706803367081576393170330449578313845772944449719456336298351824828305272955393152419757946362086567854092898549234666406234010719429955355731710056179188755365841820171905261996543768078292933999326690137380780099659346567128509489464536537750346278066639568770273183365474018765271946128358257262251486409828088716599527670480811544731827780167296447648622212205005540921449829445571395901743826785246676574371195127744739044528861596636964570383176169019263755091926435797686194997964553526473047634123229565865077133051704019146994078150978074729418236526822936820644627030012280507531537181505936247633091857196537216593505768292418726531255052335789839540292818836007612988668703648253867570290927832993018613683984357962108924036230555216367406251605948643316039970471386944404064539871079318160683683319631579815927362453503632078244653265140571714617904683200191230658090178603395498419328287255234199377079737843880713904653544258720981006839356760664492393197389538350400729586672159904971431812162624821480265324918777905189944462048761501579277121746026766636500731960144714492740053327581436929640838202507281790922543932792530733115532450296053239488170487175424826420184134653894620632533559241901209218494749163278724877568494723566810561232588858481793297393708055937210475983310053282606108962950036425961313464272859651286094003195602346294014774986325443590011233977551206288324876561009669178053770070809255065973320252210581854122076404199821529166915160986663719663811785691122482373411868772960224364960703728390972738582882752397630474603521208923241708851510629678275548551683842326633643609478211462009621628659318675519024698612073798857659785591267146654965056065071329646123703301811072282783236688854495345822424488316275388877997542726597735114932437070872960866443390899023414744027399260534551682996888937401153492416315445405476953364802677236581333441527522716674592187585695134376882898696970277073421024831237058630149204777838027424974140011927853443828950989734065940744213233832130023763266590586235381558291271328275383975757440472714327478131827230208830330391662453606435659809575948543141460764857207292858986227753977620915058397428226586361495526597634559331694622034131878441710498842544973399336958084653759050778076925976219176635658891712833716161655223298896198120958486653398671368880096693709503936590668110189324194818318420736095182428026912825983455505544561644146722395126397089379004233920029890730012916699145220173469089488986518768264100728286878914123342446995280065535842230583268802170537473409358595100327344631767584907301875361213038691881458349965643712018953919076549313204558611748000457963471723437525577641389380583033588166976115557288671168812068698015857606644830961857964522767884531187732934909849681089974161905150060043184662309151093080920448968986078168846614700491161468283438774779626545426502154250380204231498070782745731709362356378528066594251018255821271390407287645496205174706960011789098214029281527396695821586924922829030380721184047278583226832551611160267797098790099469012025975651097452332007704900428150579822714793888233090478549748419232802786391890183288586806331912510710446228924050303431216164493028931469903835049590688804267469835407711352957700707891319111653490164395306418360200633476780415742636483102714474859039392387968813910535492956892363889108099209621347836230263786988320349676159885025157260187270270832472740757698898506644322688504976453386489829599979281320946084499834534181574982535089199001885044871231129914890825763036455844315883780685083625319994444905393915374613759965166511629566859468873119338077796288153496538535545875226410157054930066218652175133663031168235993305588964298366018060133392370359724942339926184230673740152234193864768732351222113890310354957226618588437640292125696550097994605373373611719560549067609082062378116144020253479224371724083144603011916859265336965031868420206885489628145678362060564828741506560152105731204817378579570619577921144855424913848488361644013853282158643124885180319909479797060311793298029794513020752947615258670569741889578058515028812062857860794310446708846543317820056585718117977430251746981218513768196724916592333555709154388363513447278535562081011024813179701558757784702473168719164801923542812138529514826173047995314936996859559285006775435031749337309517727414230904532264281524767509142143637747275452464706733203240837695459630044650514913083705570269137411465857033386456891298433122626557399683670025670842145914075519572980904879709810801292819719754977297877674048291880659341905851571945000179957624357886800789481703169092060611237448345119036159420238677901326633231083889507636926588736134679995776094180472936253647417582718605176408518451389787033545921635581393090203065723336473473341951508413904374997443897869353045685561029174463579972072606500205852817977841277239916010997752487980289558380729153720548672497615960587712058843096780388105509602474536930145363514636762506770787151354111858002935057641888594997580423521446806370099166824534580980885345879962992440955191340351008752297516791710208277601944491860502215206679403271480934384663648038302601476603259570782232629234942133545290800093376194106426906305292830861806304735501168966716171902372509072615776207013953649313202696112147253495051149431300256541354860539554606025312568950429478568734292690667827896603259327016849087725883385614283793593208524697441051584518356792563214824253897572210403135391253092293526842033850307998288004491638470953879274474261785198739628391338504515555427330521310285580905042790205368862259549081645368474872832048409640037163559489072341329119423648991304595565325328027639032607624027618343232985550873828918584520927123846474004667115830890539322530921487580164306657416043642733981067930682850847272855109399073953059569372574126974400494463956371620724526490967872687831764137757877494410452400365627606265606591762234478969415963114292995497213675474667823460408101774510034747401850284995451368337434198102915726797713487359438061692811409683123986355208927941736461311149783675555255176995371890525373278869824170738248422307993551162321023600892775065154280013238136963104386965889179476679541608911462717296254327136664216438811117524421545531400236016466504093585482659558623128798868118757199543480059012297713704344031718962305599205585247687789827789805817833242363550741884424592318768624108793688231009345297401021318300451269778811363893282340453108308376898021031179061288843927774668491447016303130115026966344441422963249222825502644840674509446477906240923032985681607514871223003381991202282737031656725187317827568854125520977606246314529715820447508979155873859576145936776496346560681787973627882097624224548187400288792237394569524940205010134781789243288896447571276130387102362246446699657920860563547588519421700821407803152835935453232699579046710844006382616253184332049233784992712705919735380859470538270622391948162660635153829179237612596328603861255182804202327496867040819109426255847326225853133442229555626226667881829747465161593971972219136688000937442049062416734216376417610369401752973814206227787956680065016913667554383012186407311631113975461418421526482978997100462735339727990063695218176888103505782808940509360246808294063047015939070200253099089051759651875872855319795008605986422813035358086026193324765620348622095488105124693475105462438069846116441654270476432380507308504023077352333902818575107841574108305015175302325153990457711710086695408492200759961753923961264305001550532075731083102391246977047680760615201012343684431711314266857776406001676603970026101184210621575198131437622161530304596640918841171040854621256917965098244553955925898671178680153414394164150779463483115517758622871251271100974253294463097991246955981033193121211392533715029704686299383806994358422577456919227397725571313773857670117812574050950793497701609284418490687138957814024269752752023265501479093373128451643003325813852836724860820094180039664652615314609440928189458449347914407628096404387079523671325404567934935456871873781935411408999840516551059950639357256092346362237396049532690910737225668915866583890805745366269378238587970022179079882847531112769831097333795204967551809823555843563020078704270310681902555087151169427116881557278973244414896393890591200119584184578300821587418411540442736785411986291935637235993301820064166788123519638128297407977287380169230867252223387578111335970802962757343445067438607803591003071366740077349332177658192198824725456350394399831555179388446898479878271402735770261251085998150090945378226223408245426029401149759336293830791008134389812443375012175497265220992885158830721257198396554325006064948867554996604928127659688952393123626138380118959645885086460501768023521555313880384524700711233445616838701048075286035364985202224083624964267600485594956763157372408687861222628058629080735036744687991345355364045334888945249267522697079771365741174294874597345952131454611834736238963590112403449809126298606383875364875619429326206581500874444752904984682544712272848137625756417196176168863129782859376289206444380006661376782669517776649746880726043113253929541181735009129489485776256869522944910513274046447623828730017541144038711464964706806960094326417374956437476736583551788506527878093187705926136054133079401243274767870006149751631392891960891260254651686196684747774831666118856657825238778701839365577260722192617561122320381762811613978742678296515025372211764427535340519907063631478333920160022810929828539270884956027345445953278540945941374745013924239865588690441534206754153056164844397858214069244904767799447850338784860495294978238315420203463524495449317352432943570621802438312928841159112219548816052990879224386077047322598619822969263024766936072655330275611756791454176218089220482529442529049840622584640463606658806164111367985977294968670825010557047488473745604729254275657886613750096729482095613888024817533031922116237955735796246619367754983426316009798288903596471562865681938531233472720748954145273244137911266729595719057378597345020268474788631305645374555300563657212411793349900574448733681371994680451866618629742958460703575194894444380571320071148557191554706287130463332421813280302212384988066456513578118613220160167240444488540194999513320302992166044701588774751266921211762650927644063072348884964533602338583456462059876301452031300587888316311747269830043621402124588977187008040917102750262033159400535735224592945877434869179851699113753949071874183803322428179700914346141161523465520563148141912524892322362896661935001499206880150319523872083861592650448901975239178825403913302074264838688157552518743103898633476359823105681616911941711138501704071466758794933593929527037930010529683602502872517305200454639802684370071052977717005191110222563982505842658500943293750252592047981347099905638350969730060344291456310266764045582866222004302719093599569043405733666179474772441282595348137521357658813611679042488799129169804215790410335487226238388697962125721445890525686186364087956309362361089257168201279656967792437934654867691889326951197950594572644167261249943752720932522229525354175212346097482593002305003815080860048843347568006212071529597933492366959444879243196968660269210396901489059569787606003070709749047291671294641885335465208350654569452420731134557098218031072681995224130529008382697302994427373610150654832266028678738288741268086511748734244947120664669817442151315341194262197213834556822176818371581847853115053921437096235178144822320122876103205959545270686810395416597547390685809395052807826001963697776856654528500525221195854007347751872201017446493543066530931162226338021103146445059855251542646942523699878963601935005627546736779511759485564798095723211605481370609919008404818502768473933357978454278969966013593866302276911114269722600480588129341801331347212078653572597444752641377405294080764805488429767867652054812100482276519239697110390591332436770334786951555234358410481502696603949755629068683095155913243953926405823848260800573288771528675154428281825578624644676346140917213569765972530554876154313704447457261456144239880381866430449335679684178530598153129926171939803264544305104408989304181802105038416431958036491283544441858892206183976375075305011688121057847406373126662261254995122037903117254966331694992752403051280056777936535786354078132891747354368427424868219580812555035046373504370851464279920067600503188895944550116881157514359014904208996825419964487037488890660290834571113240890499878468750612738373290553848450170708094811216474398923334795508398535870018191954141446275350458559661540100973516067179200542654620416632083113491416231535304998111774703495973783194884772896828369745614211165864683128572217760248195666757441298992720172534901466990655197436771978973723313081570910378268607380217461762535978269211042670667688411123392475750649900359727577736765068861461031339318169383075829698504366047763189657262034705753498135016748457636105798673613170701215247881535490014906856680993521338418319123569566744357756312121921190854279446248090911625973724419775604251048589982490573530415924496030632495185985197042301113578222502796105509676497954586587013345492378221732927615535345343298449186970497567051840214860993726609271896629282458538672879664803760836803068629914890940750771698928805698826544315594519056287707915169566806106930863403111482847107001403585256223367341050891915092393192455176062205193162850270130546999812773650045863046888749553392340996277269127530790099183832356404385381299244331928730307070981736136566324401500693984904864248720070041175869796146627007186388954851141457274097520375820320533614630114866711969489146534944525875214264180492187794570110230189572069579860001212344751941682575801239165504829913912176977139784946291241121947644755655103966645033198094894527841585693425222614027273802702204642951948247869293876164179710837971731036569512876621363578647514366047034431156175356825433116545748030283467829180555257341927350741944910787379349388049271373472776955652488714207312999434794608143864122659440630745434424283791989185484510441057030626709852881334923813620673693365017767841039941254065597421086850550978748201846893290390856127884825351392175563385084550461942566339992498166993113471610164754849997172771790051272306688815219310112218125471135379607681589199899530363626318057262573531765522538244706938481826017213185995633272090595270326570003189778226259202809939252691907108086825422851148945688757376516034181088145552047660173749962357085900135655404557183027096669880994324735521660494494282670038808195055910998361270938940371980395182844957368040659617885138889581278154297672416734193390813865014121950445648633790747853513067894953152584965765276275639135594804780192270853688870830370760539659994611285783115449682068771918301467127517235379460210682281275514469296691534277262990584483001211230223822259207625829634389960902454135384388356582024396534631425663315154587887909484382624349706797026777270239647847827089637504621010769271213870683072313379298394961394697272137877507229860563590980311306902485428766873776410583152199759448659990351777214609718898869507513093450511454217109165701246000434059700106157515217574262835690235837961582011299012986928643930463892863463242684224804968342325094106225927834987872491815209335738075439329998944788429237911247059210995602141694822644578689493160168886365764429427366226782492660008403778543771501693139789299504884216170608957751829471879409874919208309237211218414419362024104878302803464311495412851283231660968819788665146497694647317476730684762291325897690329133821339029513112506008267005746251952162630451712167404356679454539352356915973907991484753454885711197042288953830524744557778139546723071764292820207472010260915821930972188691804662379918820557091153817019903134008079205250968485214978298371479629049678898846317081727197242878353629295248722670794442931628861401611327385996642095476589117809914926993344024898611941660874308215855289213910234097556342242407053384461243549222363377794032857042066530850068884162975407127652490124972492951288062069486488155622147473802198300674819631984596340844087202778195578617271975317878308113760341813171235562557958695254688790889324859518062047570321831695250034615985385778131206835180322772994773699875671838803635404866842080376878531504774618301218822449488162971011711251392876905996420565361572387456911076678517976705900725847233454150334981854853945563104577427510541223393493612718704781668394791119494732850362770110383817876944151124885659670647703629240905549720042942340586485389313383314403671606706866500287139336116359447670933338878523574479167882290903188307614179739009218959320736797661584502268979885531062782676377722485285156344644037866627139425882090847603668764713210645864389508960091093550171467458924843571145293684780468075865835973243527524449005641703717021992617084932364985652950778668023708525293653120340302597986146063104236789655506605941052709349347188074867932124765347176114112964402414903120522548979588019238801319187906039170083034391222523484825253921848645148846047686936662976080477168533295155783378533897389794419964646645313878514763740264416713293975116529062763948826468360237219866222003186459490332716956107724837225111758807511510051640753410342728578497520039107100175407616836695498663732938990875840730505377838740007424498480984559071097349183100505770536074702877204607465531945951865331403383209999666329620817586303048683241833948635458879646845498212681409065898474064521849191203720843158764561733092336670504608412731569210669803703061144472685548029759559143181413070423419812790484091670963563527658926346314649984495499037790635487963036754399863753533166427590098784407117548109424461884256848444690124798570113440639945877301389873625108537230361137011355536591615340404966886074366518766658354146871316773775427120810359143381149274165255801025583773087421146121290166851792310440042956476755554274441150305154150936262428262063760343630705286580318791704670817325295395879820891160436104639137572789925033634967834863345494296485156900787762982483564659040009345278022096389710834280813947729994797467894970235626832551767132072305162381463725731875642025362366148197408517760924643770655806632990874988786867818269947422170467357757056506433585000345060101742438324462615371259763985475856181752298607276081407119180049073105156261057165878119514079280871054327787330938978965923685650556885457508447600901061916984454660323540338346491412953746707741800870345616743042613522591152449536951601764833058129565620948857952480075621823733360718055011211590661284930535242578057904849670289727308999094342656062146531845969723822263481279023075764481498338702316672141742171580526109032163474956009120242594239553281294526584788168421436069899761903970434241956342759489380747779068224807393598868422853205727194542106424997638846005973634397550265805271342703249995542593559161438294761581300187503484692107858858989606420947900455226212084760031812204861284563955187487356681686251165588397272837293860340612220469275729426328177473401752929875082336485613140742450862877296769254418535083383376742525855804604622023019197953911442854730829275101191241835728282441555529740899813087258226115253575897127385718277892276731622097420155553471827509687710222775033885622708828786896958982881793909587226989469881517508611896348412944608814356761303046282285957136043991111622468471668123170497100950874590581863088083431114475337897587984578561390105178489309093172880341124534829545175016086639210853155046590734567857311249915335758954221062616629773278294276892188361297284845812888783318659221924743642580491745218994551815762296986993035967643142497045284687491964797940151529821596115831879005517980166312238336355435351427994353339803732697084486211012384093494567953444887454910521298820736865044605937786753300475120865051480668159267895605089360001259627206692383720228777561289536068784461850788968468239813765764672834791517528055754956450699966047902711122720723564444933189318147058810856689951673217212689994218906345443676525167120545923411050389035153415511707920668587275119768714645930427350085436672031812074846358306057725927726889114554135613174014458876255161430855226472370291969462015672794452430029728044973904402120425001088218958321907124050445214797649531049545942801211522544134844047203821695814797843558291257265862705143574641674784783612670597272340733127251027295790812562133262827781701030708999206736254532722269948881567975840985200780666370082989033331053601794103793175318138578504589847149506556569497406162545790668825611533294903780685805012831148431976638540842057182117369496783942042420745289976330030470997897535877024445915092799535039520883541479103494357671473291447985098504893385342028478457976106394654800106419284333434994080362751600369238234704789405787594228221748699825195915682804446086610046534222636365754001300079535396894793689975562104313884176163022759380612928456519647900173190692595209869519671347411232238747161808564670656302091741177920108625873795623028220838173876433951959631831053976182140134793603167856259656515838256818839600705177253644259832929076677237373484697754610052204095410937941689501435289796166866942721999966615615685286677360595010096585372856144860200329236494652647696196094225708304127469046363430419239070775895118514959561718401901673203392033039575645364907307427443590399194771540040627015460823164505536164025664942144118398450845691384707242166809184382764174749691889243857166562400289463794017858869861993391752256920854627728408298463747681509599677165042113269160564683765183653567936450453116700761256897440064506294812808413314101669017496475746725340792792402286214402138707611877488339597915382192757397288587192698217928829264339981122868447788475806107328654151011131793414878031053358827390887914420430924298643169113364794315853825882817924212646129052849473738495313056282335425941524507734617184922594887232135571253198032136109964495239770634549166557715471349118238588699947799140114546962044870999217089463988324190783410394782694871122199562440453562545397711136518146365792914387026174303756451205318286950120886384636832404428399799334564277577302883429032930814505720412033042303173896997206585977519970262030825321843031448073684680861773750593851171727015952204363155153772775168857148579875183677715777150949858133971847141582940258911740833945717907745430531749177081358043796614033859044783984043777525885755254006235396332414716085080821170125147351652993263213002057357473165933256794951246369060124047719321236460600603181885096798125908036390729034122174254079352350418541667044156603816892392287372127820310579360622976871491374349312644299738773994908719417233136710293053501494013441844860978781675726953959599497140999836705816997860294378067616113750234119324375796855739078655351841648208495453950928334174069478507306613055925952894012063946487763543497834044946475936947570435879364023342005969733609432955868175933636582892620447179128483444602011283739342933720414893208791760249829297554809196388077901613193414266064241364336251872087984458455097740481594771641360512176231373655617709316989325094013534919980534573714501867647072162939172986350461873896636899247413222860103669790020599152399750968586799465794023923508341590726619572387427203073694363398382003915202630471810459577273050020565629466300260792564638219920497132706648436741574989592503464264624397540038233266547959918239352576556329561292295812129748223654373899186096302635341235346729347849682916174191529984577066562107576256486902898372781158406907696227414839819933285694278517272233347046483192210967112654004989448265698770455039702675647468034486398408037805970522578933369914122305883904146784349483855230590690126934983285034123348410091148679828697327589173451939666152898359718151389893973957774171194724423738379440208067206274466077374578425337837430797290307979871939256177389357359590881049719837561166232297051561561634697483158165164150029792048034046623548378980617441695574958750313072761494374975652147931834964523499938838086367590893617580913454264653219955231121613775045301646185447180273307164703503020919208602002035624806483986302668476566841139230498989232195858553286555220991367148147984632562994595833316131284255200971684181300126440573208656269151463546617962983915562312342312633356816629125262769420679077102172630748248936727985132237471122563788885978217224171671785103324857705839658405296952472260409531488923755889622364521790067235342973772212847910681774560461037324683910623786944887510813905913377454474098253538891335105668624409631624700586546786598361442359802450347514672562886905910464217225792632006666763147788638377116578735774912790200975483013644451125092788299058616938069592091275871748670864183282586225164498576383753313018621305395357061363153178272952891005337815623501572996423154445235527391250395572030143386365251630592322298885044627352786915340277699678387172662022135790940504641463224725680256727993068166776219298188178968026445286999582810044593858618832423678532991494451606958926519400786341516597930073820051486850894396020849094064477105561216096111365945068735263248626893983119927324873778065207233773243053655944742365649092502392444118503324460116309531776601887493177774994713314548954675234333106816392705630957133771273109187853210476877354174944741309956340079020724977340624885876170847577644165550901713478599052395600551996248931749186156044834692498260443169493154811043114570148325096088444395042171699152261690798256961795726430414661946175803594252847190038223497546378733124282240532400334871471491632203302507740346947215811155606186901937926654726454176692210309944398054528627609622216942317467011473351220023253613268504853113049886182111851547938865532277487384914432531045295497378373364669550736464939049362663858423300684259092830412608654627758205255320469304547235295415647382393582897609631761091675816824015443234258685234434805499711248725513532693938113083939683008855750185186897526921063221020021059061720379725363371972247876709789679616704131969228457137006909758196565756186102758723562277821257658385922505523164475854966514944473136857017952479694966626707643006828955702013925174978676548053889405643019062007645193171645908494096750778671859406826298503114923381876862964641458203648857489580878364682954758602646631675195787035191043662262124810645252930811970752469619865181216004304463866931891949027897924626015655280892805903487937188907351514582854008934208840967881693709009792185174884682650036191957915721892599293006396091963699656487654958327375620573974521582491026742624766328387650297600607628987035124067497047342708693180631413249676357824474544442009604041473744253137376702325634091096757297188173002988226301460775821148566188599079809996063780864874780046059477148872507333369640502755776742388193875085069819094219890978875425083794754210525688515066100287774541160302552677856717315709659559441116402081378097435978489641918018403152097224391835853600987155599839635768175297460377290134362835267069762694386359110463934639533098190259150752031930001948749315356878308845769003120445237598313882718474167237368672674719018415805592750261793352864846738184046302948622795422607102609898349436295120842058782722778774944888938247615623186761034121163713398684980465297019372027502336948052456826025171457530759737432273541169541877547798824688044607575587251506441704921287418720835837597264697005744447776870931520993919663018011001450914294508047673488232649673741318390284270512860041761261310773791219281019402819399570229467795904342209734164205782629341457150907822421085777795547574197626981606909316622828018483727832800445850353251643641929087152441701620594248947879374089695290903044784848875473277376723421588194159204600710286185431909242641782995167885739397439394047492447755172623634387019650689624765540705698471372325080628274325027256957055745074258539873072446631052346450374767504753732082855073154682377362064026132080587821611795680382386228797691621784412881805955641107439014551356898145244331684790852845980643899668095169373951831611565751625145836365080166397864092453377223840793342303137959695142545898977089627661443975955225235589415093848362264080871222815606117436108617081958309762608235196783521081490115614747278645144065922088517335622670184848565647717411187145997968664172653191182083558311136534469824264804226940945713407152043826340413040545196085939000605370242197551375446923133240911280764789391362157367737780733125348432099393134414312568888508325025311672157754972872944619616854315385028344739949569257793977183509951157224222798294451522190922449756796132797271312525595051283721366423982563390912178052774415706009845840461919356328182496375633427552526174258957154901014845214905893515408487973345042830733235924924033380031059636417306668880155591681414667317610571151537344687915349247236653726229484907471285385288703873489041617468540494264427777870025511103685178334869881596705019580629137209254274630936195562547765810026427126257902985529540401337479138345454781273611119573973639533766656504874546902546613404882137878265246330099862182662991282890945711036013190291924566847947271509689211861876557302784800535688584071294368129185419232982443820792148324158994073372771623234112703538514526942659514157385195798030942662945444389204596054694261953037554345353696204950041465507240024570819396097492082363465686528520616052694504808893343222602820363774253101237095673308487574275473997392934580158792295082176869450747335677773794735427771918116875112651045401858380220295808024446720449887762960256267937223787089123365808221159357981890296397280224029529543147569139225463207245651032224924884348815543320105658865325252788931764447411182144066440480805838175013136265565902413066855271064156630828480340683155786763930556299772591616398512610200105035082745069245975445970158961673560233729908051390765524011996648833657636121562879223027017560158570009938130091127875840829665101746131098628836578600045823587626064456263656058392783283808530323848670941526929998993337103779041951780696771534093568384803271282129684563897204365248890438723232858457564393964791232449742085457898289240387025326169008928497964277435737423504263994298739313748682287059681663894399628082494373549393154221526098198051847508031381065166102997772677055219188205914523021852289833999211537600884398090872880786973663789048370456455525080354914727377243628521098062967558546659915430535462000504338914915700445488819791532858697285723098900364248213247798047158684073436575443002345536641942483742234206381930113487801214292513275295766102797408562557468948603761912693746489083470680608748572826028163154728244872064130356964132848150787421803097003918544219187328147949956249733756667918954733067129490850182909273778071239587602221659508961783756392106215711284537738213680899355093066769941475432966232302617005308013319086614000804422238800312029670044648965622501314184122056234642350789117090462150902492920966380942478940349505803419820723750113365559680670040398048488106202542349020521107843968535910071080581989776544631581476844025454107208885275116598983208257754612478160884171942587735949813883924580551811032980894147476854917357714875049397607962265223819613458854044903107875530349318252824109453171554909400428682775557316087160337020833563289896759987389665902194293895989655836939565189466141577225478725168681164979507777241105105107855942658567258098797942342952181758589853164089595444763736110617384121098751227292206011812647017014601968291042745097350929779534629682415514935136312628617345279678877676534515210661279140077636818824000480283373837792162510142346547803108314133680668284942990975233778020831683905896044438260563980708011380560203323044462154945019236446119354407533873140458478731617610437171469731449265014297223716951363406304477875346403552327967014100047009218393372505471706278549173644450251252402042910333363222798398092899033100248384940522038113619398551993151111659923588687417740346711523014959190718932346937332506134553634198266612944036670263231961152105462047323410417745893183564028583401796349735703835707967890789499016895561281471916316467012357910351484905409049224600630147622742988518901588619070938977473776225049541471188058441786953827863528839660375609539843889419137206442276522866900221422215007349765684136712745839581731335349008354535215329805452092741328278189166883502059669323812575591249048242978095724264899419931553580027864346528663591329836806954948328397255355309678401174422566643146825102379053737098757777855976933344881551337936165855711072753840257948937286666230122359194179818997041499198437515280042099102853203484816314102750814305982250092474753122178820429208740737153282323558612940826035456691036930112254093986737122214106327381514948866955415084371889657913804208452317328415750125044846649286530262426763400542379794925499934644212382767143335050067765850561072465282227118663447064738067734681462739094098464083793077973775761875981233118884962462574445864894739733400856612059165276972196382457935712703924739047715348646809872727677089072952983036136243770113908418238105919898055430386965308953451773962671001833234076623870619661241963911529594223549354317051582962210761192986811904096752569881105263925385231429011339612446559481301607791854919922576359018946907849469720308984599583385096634874982988468226607134248517568198022598454811411713596004424613145843325201750878102620560187562220727574215076759882903182168345227258101272020770366354993904303441328324744710881687818501981131405373149062731136793904004185525086959876622823306484640587016009293702521627166959149704665005997025461436010743355653414788919668612180297766497988675857306863681660650451358568515987971889255040565372968601614747603182592708979163625753005323367956950870860957461555957269500035032852684664771489696866626257893123648333186863874946652326299258509519244815459771107828902455697139252775715320958600467145862681508291239121238417790004347483832335422759948178251345429627096848405260299990487152214766111531282864271095494457911752685369436594918249879353582122856069506582984280289158890787248698884378662183309881244222429309647672669880830218049771141044083393582299943290895274226676444089661757207989282868712660981256898770003514740180451021057908464612855334708454390224341907921959382289479799208395566671756958726112220436973708584558206456569690892921792082796787237398369143130044559880789660995274112502646190790977634223565257879269458498696824481667629767359872468275543181198821546304301641942008717462439916974519722267101154927697562621297095963321794678168559272694348249941413119043482417521584845384937690048836039740613030199276408656494285641682966163177296253037684518377282656419917014831227955377990266114368404024675108262400979969946030484199463159021591128349966261334245806736517879515563006292805071994926954120950812195940429847346231344316635102518812223203289143762206150540755764876676053942019063014988917303155737354490151124975541277109806370853954812456687221444080114787938655570816431370321348067858582272994876782506811776445020094515636612568670639449899148883373469513824964519600562598661585905437658573710198789232752959171780891232807616781816417794544052425900300012284254215707621232146226014861561189885898558872162020364489404130735865520078281961863918514427630930064000353818673092132751534066679760920420462159336903013758418291445228252086236224990245761180183021576189566078228148925169681915753471358258545715537298950013247345465289794090646675912044165772758282304703737880965629357967353270337742472815423138519691427463077472400596062781203566119138525670484881134214358738816874191586727160340692462278893154702171150293891628153599620839363911288840385289920790707745122097532428665927464609314922686672727006182350437663769475918140745291187318428473759825211755498946730537316115758046618607056789505076090245234442080266302814878504265628883910114116726138513795078618112338871343590693626193046254216037572161380539268939047051869398522606837374902103490347443617802994952099494504719839726322144661079385636282501859710940838959039620155077396342827436212476385705873461104766429425597909130542607387015202626850198926036164292436814328182328001120558537833127984903753445310146982326453329602410206643384217006403611404017243513552594438358302232108060126839296172279365385699238933705421698987790248596136330223763299303418011736317050657223778173071323518338482552579962725279480538151612384337854631159626089410252977228045449466427854451746961703151543211162911518321383075347484879704752471906682759683766100113911353901199381928743114174472954150476446265918746838362029575425618510330504165187875679798754260501301994156321749718363520005983511244636279377066723698286565011091229255097522708989216392489504008628877604207970225543209823931998976418761339027294797078542054104692922594061733270071549311861223314075278435957755376872531646648117097076590751554150574027108834900467585583526016949595736026370562724027204417074887355408800153107365474917926609752471047528521866469020249436497245195704926100960583179148954888717169381918827614739187448718521473314068573241891612870704565595136527761971051160329381823841308705914557337653382131684984162037918026792418208389505630578470112759598451088837012297059422559145938338959809821656547907308255448260500469525352251860996932980275049777491125683736661672986544379293756890088795939537536197556583636483438852985760712664630963626394540977421904823421388135227213349266855165886797636188562690339259755691328035783651191710230799262896384732341141947275749363296336082759940148418516492164724264597004195641889255037825816239159107986734404515488616285598554855626973736352361222568523160086844823805518190652199309881731789044198402376990933872011860215155999531288568608624423562883432149234602990246335242853258318319268846586170262509846094397450917286768489994921887315539569308039625783418334877046169707043488842433226013527327084853308230435372594408988021288201118860511544532703572317943468888084912054639843152770058180236483923785487179671361236196479303786117342257208219184572698714747655343745728945254960384900802404162090123667651338817332702371082719030857421407042443949552132939700486826955705508628629128594363997488625950810754640707150719194442671568984368369884315792242711069715431588501019605392875126354384655594311185775708359204163212646026826092953203386685011528121226661062699219997642309827550360371467257791421258889640449544567369598238716321685805975821392983394492775706441224638301390970502588584500710889864539924295306020132983131006803334130356604737151751081726810351825669783198931398768293781860738137398454819439626509233206458351229650924382030840976513181445061357704925291620714004781796140435300298950003079308590101916905610292969236651220507578985158323114471371808647639284954553098566597209891241352359902557302213344856490372320657278492250571089907984868292980962523468366233014353564128887477300006486975702118744908032850454934340805055068136118515543665351489893638514580466215684882848988921585776878137354349649837100483455605262882360828748346356429900148956640400093954061615341452321598896958539506317366021644266939038684980257955846141281059039664861219075323487461025201147577723720781147346543246081709867212158048556431948162267866494435672712622208245876957721869490572390395141289410536764329819350968826857240288588866277933373355377611562655464557630787706440401011028473782056155746696300646777564273461152761308023245043221873668975691315430330477360359093450548022101700438341457271693524831165334900805932980567027329862610389437635451537727415295389056236107434300955345970108079323765612037141688801414524962163963439032220668032420926988120875182011270758042202127672640718232614358417721825663234366024749968774461859121710174599585877234303822919132214979916300717549923354682919059892579942300962917441542011476470913100282560573755405196543603225392482924796416634269620460732025084922486120602873457636714765211143609524707707893133663244485653169611557680643880036281694493328297159268020808629134985627237153687314238760299175548027453818235866027831622188047067647597007736430882213934546855952343771896931577816298724201968319600704998964492391181927618889272163006209551715258632582660824812996006987719658221264145241598360037518490815987321938510203137740684954139533891749656995728026593124795726237471868462610975733572179038031308882421822341513387434700081710843694539118253763018933320947057931453735182558715450034624511009090943226813996366253815177972416075279741640151563347873773081873826498307374884696932659679105491880467108600510725372701933854741780501537906718440157751388030683206436659220663367668280337586117199495475927236094952759176222647443641331957942246084125921586753595876805957429720161319254474875457692397361423201378103589498940182079008292209635920137011033157976086620545909865158125987318385876048609419689196860625514270314688967476191037353543932383347354252782547269570717253643229973631638304928787036138008020843844171206018357029699312082744003491315703051991712907771863139509240530966268371622698641475826040726353819713308909116089290986846932307008077379714113081736261376020953489018573348847276038427292396462498981525383985499769227483169540505721026846160238050747817607776567347635101630750649385815906751277205398640230851477947528346249842557944048908716656527490695276615084825729572330118221162391526030290605264739684045795285553426057517107781174980496064572229386786238209534548545209634797562119283118438957144074067363779593841069640234410029356271800746509346894706415279810775474174860445709960896618249947895161133805440799944093495478515724862162302857841321901154159056326139975667073960381085779842818602650886996686715296349624997536894241004830082823826944747374223673999181666718481165610954107604888591316646958204118091267732949812330381568114532089999448807622443848965511295937393135583323354029561071895401308975524400959516365378937985275735563972660829346441381049243667796532641033407745004853256894380591803786986841596057130515435652559144408569131518386270110006202941529971525126713278423539465476145128021150152128173679746254187852989966789030616386802829386188658839655316208191008577509797777559559885395227809352760826822387441871365018915999743360077528783928253385559088314799729765277725378536003350832724694140087117261965653847882138531795367467403775854285677729435754198502262834857669317810245271438279937481691954349479197692997946495865465272841492326451907391901327249965482974538988199116286154478317470433810108746127320589566142515252687546649079366200313184552288714189357752724867897230171580960600968968739893666791707154073404778492002101814440522569315143658244771419010323735874819138095021524140275166549504349940915190327721298626761809918702786938970374376684346934201400482958451676101700020901741969211328837661705978286713784733428254244288169551882412478088294195453793834932046337401052798243258409420869109191952323302136590844809906145214095373684863861375278353251321337857241011293048680605371091273025280451183316730786160526515563202931265483840865004522226277924028069467785838106526758097608553773983177479735521255416398546763656772694213908084961018284725345293865229390391227809192532211425755825406839349152491845212595173209688412118843039951997684734333569035301999784474848054861060553042568169046657002205345926020754696070164758073889643453224850897728108089812547010217368820012279268842929185910991025932444783331109845288414964084856801551801485682235530751413978181235498452096076922903826621967865913652915135167652406320913818062288458677219087955978621774426388167770227199324690565270029933313253865809946349650672730185503859333509421610784343900087212898100554073835546889297593476244262179467572859730074242137848860873480100445084946708566077485314625495542615460828994773887382133156946416460165492271453121656152403309266169957346487731477197799495806198776502001538131509746086571974356061227889140790976535436266691449704316273892534410922803203928986059929018716123124620843200717065797504102612478047150779052760438320560871361246277694806490977407503634617632594470933289312260252424162812647724356720012155973482035741188897798687307220135732110013239887328433971174012183497084714369311403594288469844024314699861854860814616174526897441370560898811261395212133102286624713369075909280565754758065992491258498223824824198698387031515195339931956785262202827767604558134377395688609102191490988532821978978958807103335590322694962791674079465862651208680096970069018378379610659924723269982230952287487964742043406739338773059164528903802020069413469039866249748603015950373989535143920017243740904778878684633583215037847279436650493401856167349056721304839579346589359895351253206441990237744523617627400765338996644629348903738089127528299247799852009254860697895880685905500604706916008384374974129526582436380886464421578669095295984096584495070357387060634036209293246218820477663520781755753015852763420954411195344904489829618626510527160016148420497730457861494301151566133770436736779437718682555404340223880918139200691018155383336134377139037633083550386924902350371893945442578787685265535368338016597364385619268631430757920605572322084223267424025962817246914892564115524194461866049406372003516515766209831698474677065445941355177425887737390625649705649237184871805963314342739151884215242247065853864376008939700868713603462649846827987878916624767865672261527625513838855672672835038127785543310995329581710053520371852638234651762786807474359775676786514419274441297751904396783155583889243094567435236481901421661383205219609086273771394346385255653329205037869771386455038579241141837986833441847557123876226429672164771901357095372261887349406905587241189218850219247880391591036842202139458511892612056680520040522578405332320981193709467572250508106528049616795991408590239492137335832300273237612757081829833411896082295545305072355966467870708029267685544693763388760202802864929314965270250501394353792396583609655784182743235283624951552230277610836042800922589774053238230719712540364316297568918057944438791856286253663624351836723267594667177657473727879931467117388143404650330468824563779230711742128492500156905322646883781125188347416586260921189742107835572818245180661096689643588723446075507800694887980376395524990775873706998553472294656274383042849074324795721675506377277850295442724201735802450607496513525217352326620751456610230882258722515042314084166755835340981752544425284545012554040205519111556525505658159390685392632788295526231596788920800861965640253025216260920270158047600707471501771800174899739488978198941219446364125174589660024638432206763402497108595567196867412268416132497276701924846743247724495586092808405699485534612714020105794406737349773907799747602249404875971100982656583815875366938062173180992152575332189579703489861829550684296570041808419610201894007471388198047486822663893906288403972348866790763987595804512802608492208243681486483979777948446140650104474650124882324720179661305311787831193047715498396410450732355565436038258240132626968256863562200784849707016951579741321370918408797378569748216074143591726984790768277842466745885992446350845967735361076105882468436742775867759664070189766183459279144215140967857906920908194892771189053970928972814094637804464497555194159656699036156488064524401333255160027318331093341246202173765742067185855232466446388204850841446877198742354118520718934132491799449368773305051636857285472506011348086766547960761666346798623716709156885654092571564671696154682551056755407138940313217469428895072708602091937379548719516618821342132685736060105566955516790887967864284309836643812072892722097212475810757458737998437097642743195063151792555567228263251512235519475431369661635369966673100064932878908244334920278728408586387057138751942932265162498844748195638719762506854743994654821968990816729174404374226404797117626923116170351130408853996724090825694428996813159582462058241418473398726684416219110276968470678116263827791877281779096438849423715590185531946655439649822440270124961664486362994187238316678137191243733701184904122578142373226213848264650683109864878623061680955580542621747814698497715184458645588270520662882555072583511990529300224408651723061627018107500775501459704110515989378277457402248115687989760865553837823176646013921655391056150224028821570529492120797460575615498475013760318892948497552281462034630206583522706866186633232532806549635782925937763779496691500460634780575185217515374712243727126377324161944369306617078779675829673251039113442238432846013845319994785588308894429452398198564174105061820266760146659666303084965040807525625544988449395105247062533854555845705291267556847698729115229127238942351059666926129275293475194785601858793549578159187101570330552443694427269106631100015763047985825242443062616330346971826459790198557551227660462929179866537759544704565400680274607080359070487994452915109181132633355174010512020663892215314925762030763072175955085879388225766333427759489806065804191085110190334874159773957654101781560192653329328194309121047989418393577433561597961563034669037936295340984389311180289711769200941608194395118608552502337326351713015839086924858442756740559957508249086823555793480620799531366308241619278433009929228803671803621974501342675185255016800573408370057831415255968807717233201155949361639900038395879719482446122901139602647175576931198665237299962027253650320970562563561201806793872369384417040140182831709667954773714579034296358849262159147395379858543655019232031082000556189216082270087475224974381899134244747052795515554825839832502481382537226384216531958581045496476910661138421569655510381917075511508675146551677925132742572810314669786731491315567648976637195272187411558629286664448269178482376516892393256770746225590778492763217773286082379508155410599171382783540433721608834177248188515913350756985798726939578083447940333929797327916714560903553633190942889330737691086389449952705397385529938333774121911455104137964064652508046754181249101225811065794845609569054653204195143862316996217782002669843810984468064569582695556508518178142700761559057102383993903946656917924327466165904000858077922329758071982489760793184556736368498705271392940767398854179136158493572953172055921180034933339990191329572434565723022782971299047847991345667510161249895875481244939235222835127545124053656259742875242068620837288136552833807054555658013442217793572842264146353501623500453820095920231568143782455486447290603909290257653205947090713290948337826434110572094210528337475880952559875602450739392685504929126469758371659861304038722599797321142972777127845653387704313786980013965550542881873793494217058591477239775187789698365453826418336298413043423162042822844077363819007022750790002317200517766219711751759934841424079574860597748658717634922309693481963554800821356818003366302870088910018819777254643470835066062930533587827275225227248963042695077183097567247871198000703276957663870415788149770762865185568616198553707064748475994410417227168564785929383396683212517779338162843644752057609802326102597533883307467843672988351815271566286422196323979198869045480935522580462744719275488393289380888287490263496618273825315003943038801053508332147505332201517993570467567268074816601439717633517260873321591913767899399955553445227890600900982631650980734422159093601752635430713262663378090118066777548567212732124632189099484090625098524279738935023375105145084087280497961570700795007968779959433039523053191402579688954620255470466183125778559725747729657766505124024733231171800291505222924322727717353312789753699862233512413421642673152748680856479971055136609058479246377643472694650686821406933498751325349008164102890630176540293998841558400561173380862912058084218894019433146765247913594477106293604418672954068339235831140380150844880943166351597548646839479264728088675669204731767711451031933294570247000252409461479450709018641548695223984453206439249912846098857075416802687029158068755882809041837469775214615139366469795814738192808688528199564667504468039421814050011866004055905029342385609616998798579710561460724813304737001702035400499141982801560330086227276446079977877799058673453039028025904000723976809665356928477318175607559468559337202615419263463111484293962059997045638971492210236511582655708235573637252691546676933985166440534441869061901882109647583533995769588332653261894452502818076262928017949885342547636610558580730808277352465161120226455910309583620176901487324575038766271574477475747432591983449840008550680203545870698364123723120943886138698220001441655858253145645687466052288487997203736818078266778535357565654296161473133302115825880046655299405652313182589659756595303018524702839007494024427121783210382038761978225702740969956062925060630126770348053235586578703161149698981104514164364641044614075956259043862370563429302646015011062629915672342099249405872415414451382451745839635120176390253917586525589486285378910212542648921842360013118028434547982959153454544260498918466308599714405323791495271793847628853310455196005872246753115911965997221317132940599755699569435364621241732183502948663748338766824283235565185362378326688039711295359752052548219670611589982303309818160525508922782555712841202534673370925250397502112903026226889037120688256306844358244700759645109216334212884958753682737483042472974990436587808586041551017641067890286624629063257246747708148046356387185352158805137405634773965469538193166331742892326816853414788697493959353188974734670105353973000770437191502413659799077888197477447316035797077079027085515602251506542537883408376151925571685852239160042895837334293866052256191098974409574287839183762014098782228193236551015980356041721852777937319088773255031167097571124244972641898626313092610324720629860746004734340062712147599071717469030676073290199861180962490410292022071022341569041658873950349346702229160232581331256327671084854713237688428085087902461398737591748438041122101135541439292076964322455723599353591604812196842904422016035426499096499511806858618399082434684386880284644518624800251834777896955123200137516480079343138029943745298933826414065373387946085538197233162277632354084707080765036175384727867434974389052062217465257152272224605982515827585552659839927942618368867447493402556607428079576285047097392345815018654080682572644583941865517444601428517790451595986484614908807055350282879000029397478295392254247845351637614002136073836900069144835987665946199813713021817862665790076776877935324613770971910205360035823381890856595412206229500357997790007030262989034723696379875492497398675878819976247508330139883643592298180043444434858108678732632404600436766075792850146032760954868430563007645713315877485580155299458548645491669314537272087467833616560722433180675063476759352996217586143004955588399495704120072908145371930758587557073245604301255042246489106776397086259426227851167380675196297740004484737915292193306006724127867812707410917797069071239033440951784987014424081851054626219605590035976376369331443940136750399005658461789508781884799259316737767918823425841383926979649854685787950734137658058918163368825101258185255583699468319576243102149774265498875192860336406825360787776835509070423075477573996713269074066494656553866169561928046583881438701281198281025077160765736362379460603388008482811368230572279229744083222029440030336737265054428554276031036248300423618514895978259907979287420331602814477436476769538403019835175541893756832535386668293938477917632653245913393754297297882243234682183794250789855475418637656723122927737369683336341578426698337691223876151768437336521661147971241070651648269979145513933005002794474502376559772808858230496581458464409142609657913042034603536252169201439270894108709163591619072002870828594740227228721492527127202095850890687875010037433968142711154563744579645869550924635717756548533808218014893870025590227555334345120590450470248397147465929264370931462935524983969080864012427106040270775726511048781737116591014529968884729711840237805853034871869873507748261585374066539754704970263494232735134835704147395679460698693084008732728417468425433373161657994544328115035171170423761106138586357943854837885755868481797718198402171198503692130486525831340112205547585368674359125247935370382253150213641897662113969081548117205547237009477924770648980272374499590906632285744372143719528386732313242303842797769216483383768236094419565740192712050276685428207987330739712294894931266666694620515655888858762664501410323435300963766616881064511049390130301961122720156445631297528174002630991711540269545547881117259896602000008719553658442713412650599985927772360410846680225920617966861936527559636738521359595080148410084570977402197340998444091770237910776539113199782801528535432060508220219801188236029326208133831085733654426085790024456107001103951454232361286011167923895058022417235993348000522877176328104510697880826817028978143847407217937106077989062898337826784438922481249683100671048611040100773812563448284467216297478879962115793090664692967048246604805899866957753757088972511894778721997279795873702671578958293889271931549798727418709521140493158547199204036435356681765092532715009442520860847957889840049805438002134313949067932778728379907098876499171473719585348379778340541865745187731745992981187567272832795454354150984480613053808136840492708914642550429019106686255151414535255920531073771270631236954629290459062849242080207173381399283119938189039915551051485526660900078056178101236518355858065998134208931318316975548756101006482203975451946072580693014992489539570172510868740357886065580597220068195443095397525422023049636224749911807866789621377199640971766189819834490863883908960177315424423780732343097096635238620438379318183941867731491760279845317377964484524598482809474964502830451369976140488583326037312045241483455044884529888422929777451381550762681083111418963201150100775525744997350903252440621178247091208532675418701733745979753198094715686708846854158209017304773384686857120433523423879265644822944835878453052853441118686699939296657387612221093740449076480121725057823173377757977449726521259992745390030513070650006481687282980070265385306248691406405440540912605265311000506662423521644774032974518485570722374510275574098713252398153288854288358043181710475885517464668912220865626638609610992468992786304400873827346251738859064956505019124530071388849829981328915027892084695637245701302058033409819041642476470409618045578182312147160047394970918661289297813247536060084796800431141904383424887077913433067150160460151578596096313734845896627329263649710926204519202040526987265731827371978250470053498661952050426442972376504684198768715069287577133318971650544677066878290540628103207765984314334987234304954501342917028269249064053807171820392097606792442633981694045456707813472132184906831381620982938656733452460145970172635923394805678791464965192203300512648102376585966763089681696816929304013085922810694657587142556154636397044359881819322070031461085480916360767786891353201658256847425607069691204032191197211328801496901825600871615530048203320559562369910177098945637693384957630414620656522428112835941636365288148918107667125358502943420392590634139680343062797677695458488381204726012132491432443243106577403776752547667339477433882790642833788562690720687724316324183858434819473214311770566677060605019154556893103428509742585748505982145670088175477947670411536862881124995391645004624297018947154158332661842205596978291003139897456639777846801241003631204131696519747525475410609482640803904729819043768755029403450659297818217300574275415819419049074436986960959047577772167308307821419035332797988101245459820007903041922080300256658008226656820634891508310718498190531383309954470554255114349353200650677568308871934292532429888233112970958325793787750824595747137665642771784319510633786277626040615479794919568580707368201298863645473832564408747877066746734535051883388343428195258912954564631233093621133493705590935778162194663582479882059893686330907851402370258596777173513700993704644510552557338314137424309735396658538984392523803257181647976636651016952967996555609281772395340773172165312101719642488685279995799222423565453189844351136462451601812789536679261249466263531164656631337421971577126235342330948844052231323061445793245243013868131836932794055177663391121325367542767789168830397266599778280254534408510726417903368245085492198604712120184981722560952538600290996497909147595076770951596890577832167426748819746260479212314039011009263538082425311746748908919028449686211971419666417145614843648536399788880580836929211647942605838000914511153803309493507959023210889461792358982465664220242916573376844780619894003783440452215067765429926540529736042755525517668433074733492921641665942508418092566838204118405775778039275647833947763871565756308135377903481872644189090193809384537418675476949048956924381376999422496995660940975388735522557248933351204789985947979645596970423384882187649094530136709803745924553903179429454840117374176010753471502954399319546274851252993570852611014398447552069670035193614376558957578782061326112233663379895635096867145072321336833940286201281494149671531977612406127239216545168244587272077634690984581536755921029759895707155849666459352407441770519975037084373765782389288323079776128632094265872861809238585014436110693305813911593514387688181962178893654215295124188829802225555561877559452014603691261083414663763914496546036135004571054209580332078279165791683631953963952586275276739864176971258384922455537947229041143779445271809788847778324884337685501827368754745600103942365804643941079270545699762672621412060320630061477985016794365233702731277311156274462082528720909407665640591055483825908703256292532151187616071960315222992893396100246400813590014204926647054814230252916116355451280863636068922475358576326635140289893045689167368531099383385315380463724440077622899774327516489435524215899180168487226761661802502620876666176608387736609882840296703940466038477009604254942876390009804445135152174115401479160564682466076567417086621589339469591863080555887075409617546975982514609525144568220018442819024831071289792464058641939951173678477118758096079554733254627440703363200772036039909707570287155379454188011085078829076282229009409886588745741677102804249197129021455726728108940626726376997624668511319120653275864684964347867034752319418902650110735317600645435308952557720658101694232896242180531932584224129103980925719720787265931808556533315462212657755385499687770108568399236005148548401291612286097729836217843808546364336186164371489274459190812814462511646415350788063564466590144167742143939515770833803090612390494214529809446346029335283755654787203489822476228561976142543585106259840309741050133494070572392718603137220405868309993845156937416084067085577705408894590953372535899320517050436663247260749893768804918190034976007109932581364732100226075009235029299099485748654649988869782758521036708427295568166882513338144208629655987919409298390826425692425221096344840887500704109220172670235240624617299334623700503532366441982937402631166986703761331750051264627111507690092059196997969562051489416059825917360625994344275524949065283179850092474195814239941472482762772151059609200007304506196205922495752480702827566372532184359166700375154239714493901297646710875799356185775339535142845426511409699009378479169037797739627187804110319883324847770635824421939958291390229354773437276696192584548087473761888068838293203017851127917879455744099935716070856869301622304592691271544161824065228254870926335922103860621660518404712301369466932225259556074144111719757359922957783427347641682025727521474201283825053439832277378656282309655998065800713897781910280314496107443456390855703739720078109950234607410781723268536449869310758393264680319464361517155279624693833304693885124298795582959232957236195507513317110734629195465933149471717755575852282933171654685355585270261009544869083854652274487334142518691206283918669673892197880778291561704504871954450697201734265800672120350248661637126047094678824119274874840632614906849922851103221266328883950271035714255326457422274457726902485050334581390256075054928187153776289185141826639047575706408377820577488406169550862805862101361600750452908575974923949171054820114693514670201590544701398024290121961372656226516656427716474235752265902219183553584474664107597986193843737018096862256313853957283896433620290290092771805761788623966812591001543683943747125484208658644317169670204049834414162797668314691735895572083989338485219593306710672393948857439480863024684356970108142029194938192123729198265710014130201292480590209481667114598666825120358777975781559812681650215791823215843809980535900537819917033210502111319636038969542050250226735596471486675531168337096276265953917219625616715887350120788357793336985497683204365528504245310895661468928965792056832336386824281133717929409139298155404593196390660790585547152467958334809895090530415518726373980851727105825913667249495734280612454479099524192304009067235340988395788038529492517364115615301554466890139376137869905359302266279226225327942211064693473087105842974893483814885358364650078193321987150931238340515074404758148014071931596907173914881748464839304390354268929542300353602377049489729156860921248862813900465474749697861947359453091478268180943282729968351654983085894051931310937633600958547526060334894002900571978299839589655673446272072231713318876337160290790755704300629915844166458522367195525938051541390896644279960546564362549111563344090704503470246429989509936432992036933853750192593863560972953434929014556651894558586535712688587649781550648308121665987380405144269098083822399788699244457663561750355850204837630331635213226285771774486269596984083328459619331471882546476012066742851707150276063924305744853545995161253968530705948223154455275203879072376445386812615996635710620091955054998617042075363144945227517585866535510553103098507362989580312475173394808609203008391238758624244851282068564218117945633275200826630748960463253912128182082606902483054838987127374575836651849468173387940267960514921948215487425980115828098956977028900413239831872112348690256734320556989619322293285536865230512462827376464285945467422004445796183039408504066565953095965579377290321903720755972034786010554737193171097765358544556996768098601159007519153905040902066719404390854576127236091523962699150905901757788498079594727461335373504284075721297040301918955905628043881757331440191070540632684002934230831759358185761682399755888238340175034525313296568284053857837483360569668080269621634737118373907881825699028220240318886775140348001143063711645101094229850547302644709984795936241074012822997361154864603761853038146305803065009605363218925816466142344148910945784614079109001227499204329307269805791149419699413585969044412708178433632791025782397478105264613562911842443612266635419787951825354820443714907687073464814531396024951742820003368430025645418426928108734023234224600174611680493852184980034491804154157529743033609360827571655070507209279135855011457494712084826431848523572701301878666395952240476022138565399527532752046985941133034075022922507094692464292029851461912582428994439314695825767133261487880237650001147079603994495121945272309783569674270841636096982235242265059761555540478544631828885085578168104023107966978399055571562411910754970966294053776832114638152611395786399974777102467372553394053882622710694744183316251240224049242226744893420538993794713991478301633661251787445346177514544487550397270829541365090334755735638037205083043538125011575790165694330297134367624438592022437824916779373343430893393629493838231240066510439037549327158679855837660668224214775128319331480873654263457816892546467306375721491891843713122280341280702973399506678818225180772211803986443831426698515750261723049027961416045827136606140462433018670391032195360839953482100232205428774102934005974457538209179387564959886931922673925418314925982100837658587451562479012517784323805610610334000712497720381717905135073704666774062304811811481527421108718983068405678850868989280413556220786234829416128662723482575295934411957652831665746883155672720757123740341836028211273936903574702584891670277429789643718230344765024206753461698939950304660611116715994315980408845475257801484373254919834792102534868804715745496963220553039567788465601130413630942408164351275418344931622706679628775866773255904003057142177163385474537595048602457861563153673684768224779894506100147195790249678822194044702224025768420408253022168844624281615751385988253712708200740002357395936245363196017278477968532630937189067580395058451542393088969151603181847836338844752211719304280650440201926396100293345509221198160618544369321324692142248429413407849826332859342231799479283470277914515508872989493687515098445107632985994513557468372469301417546822720006109430353954529856190471857597304117609284575892578050472962208044934931930053932288521055365701598366960361660566817939392417147326320522764669911901433009911075289454997217708045647773116528556298004522506520166285670483403776777791835793409377134897175947731338575267694418555350830274120236327200191785278895058273927722547142032920953591862002559835928976038597451881423254315790560762470848808298194606844553157936445235770773768920173350228372144716141500136619037621404095915725246239484795008498642954146753310203868058845015105651097757241913728540400503370126232474358702399422322506587220831500517446607821585969998770717663649878352915330514220408700473150930511798926701081298846063495761031943925094118883538155999131794436979808997010486383956686429702687743504708570414080226924173609863369717108920094638680946470365794407169400489861428152999660577249140986665045653405554105229505803531469946005238716769281418218613072713109714515044216920793314816339595850300545913225744447832902130999656907188847672989019271872399644037400146407843536565854312121631027814569772998868810025020340836999976890139593415442296570610133984571571328534272980837377809909834132427468020243191862960443102724590616761883317583996334499256336503383969685725739107450553776771439319211267816412323950624712752167231758722894645787605179839896452349275865591799539048057482808386377690062835068641495056343502812044391726736932096895638142414516882769457190019683284150354143544359261567378265942141230041937701078271629280488265704491695700045920349283580497046944689847384599450753554499970871648180967307032110298070482282700468837094083836440617382776815839757353817849023000307388467309029935091401243659251653876617911450753230275788807291215679850291362674848295548260794946712480146932122797034353644888172345422013371143881352364005882673496920621667211022962315053788651800651468958540832685365263978783304889811631500367653684301950248142550572892709486229010301157935898330891772590120300026176469491766659499213904637815257312589759615330576509570098319062167194951654576871680906303885121869588923732808615442072444108927152506829133866131691710188502286571517726221746413375709585386243110341636164449994199235210331045617583784429634862661813833081448942829289577437349619692103147742535380365165919324531463345328521896712550658991073970407631442888564201083082226709674386362933173392420548697117636394515387528080908204768798859631353589841412730798080518576299172421385689239280531605746339020636961413565619276018598929468416629719357816701945501469509735927614232454129264118695910498131917514286558940970566140967768945966662241924645026252934148375154945881128611026865231123223365532843898992485209959529069053926549107231606261141040328539807792608123586361460785169734814071541637656488135825769384548235056995924343046319518423173649433496231831263296379695601063336732013112673397658451077362009367096169476836014459686860527965621112744642317511715408801862369642204084643572175314472446757628406522559926551774571615164360361488248226187706980925699184649119605874160953118082289683943339675626479753392104724542239664414226757070149099733021246450777495730140233873047918439851619293190029047518034458183220358218303174601793534811356470521225670802918769562052989383878137248076910301121561426142482516600626230124718670982336580014603807163226444189519747426072130745074548417511398238866531025513363945202694223627157528104049366804662672701911816862689565927299774483359794892598634821493593386471078053984445021943753066653691688906910767167507147849548232967498265117240903787133332280533796925296083526055595398655539128238417435677374204472406416060727687733395484547700933212212113137237594378167015952463969015789366735106203456869745997807825362594529978372770949646143076165715776986799448325223494330302859790331540180281098782185334623934555347512227127787149243940271270577252423832038231342434816635182007164855497020301405235269307063342920058462319087585213249157945945823381907242870134856433454820433859108314286371010505518009328937857329618302926914612038632963654112290503497425107947919561192342159462363182137097020714729338494351254766818409125278277511617490610949889317490514676705008777621432464389913123933231783334211349787360014029081759142415177378780787927613242573243821104012175327951396394521214969583730242907635403031254140113110730250876486950797953950747289472743013310861138348994985711515325367211019166409963964289054134446850182807574145416655327682106535722984757330861003262807115380181805117483439872790750406008334506578516807341129620858724402314522164795207413027876833133899871513232879812570337485260104701765504323329007133611391630606609655789296721271070868112013643848913004075979344684337096693587118985558012659252495676508656069904216593446110142810471379548497302969393039583074858798129392996171838207925356636053615344742636492068195029965318345094473082837041514824666368647826739535926102123965956583384680222009563170507801897449058995603923897320029158328872672799757580533585497183994224037607577250743061154070834047627137203051871315292242223395605292608830984428667076846097758903490379774721235986026488633905884310911407952215067833666504373343608316829717473012280059664961263662852650174796316998225968555864471572104708164595119288903232397615237739980726036377709038874234625142620538232695275309244504335925535909808681956869994460363143021148651531813528037368666534250500212519095782017720217706669308422466036533828746439826081010238462391520726376049018953033255096379634282312672640590584031929703105284780413970140544447319967719342363243104933071396648884043673009592493344718496840010372517140146918654910997139696107741823370834948096075169739948547428451878244077309710664241340916483852041477629779358631805858113102333998765314227138818454778709119742068447368760225664180585694012358907419161695315428565907436652242934171628261431267579379067362266321374672010833502726335383270308696808243205315443549500409980518849181261503728181539334137821384938432493272253915371943534713067470592613715897839205299286396922451854578112372420701293739687466310054222734784240321361141699298540986435506388967744569995172838854333976318057941339450973294603594869971394539952918774936848941441189455398437530424954774452336656378797565070388760349815854647433000901902670820563506438945643160513196001923501484778209932504919959268474072199166719188986954910393062039710829295202871263939913898835391120312478476101408600212086359674829777499770453360587546013451340159582140940828489384908870502151237194503990166622472514426511784844032538667102605828053167792325402976945457739751256937367791066642036100370372795790232265175551153865490525708860678759439362558719927049821737477322822673096283583558912896894860765238086397126110146059831229474503472193060222665865529668630787298582143360232466163436388058274113456573931156524546741001022770227110371764118986151411084420993578111370340381209485881208644275781229632888037448868755860585976548576454684121957832896533055005789429421883693721586704835622178305786471228277333654779985987436643507336308369942262301670374404999421419878014356750983590993381928584125484489668173340203653950826145804426806168297603483223513070759609751444844607196517978558296241936500226947989288216720190310404043171259398235251089050562211259464073197827222754716801976590765861087886659118769895150817669061021063121189618033546083452662372432766280381906339120473173142919164988239643821566495092941695262927140815508401800217255664789648545942556690628892896034416250609363185945424793227004216684269966856428374101495196942394179778115988484164763258329154257225952460350292677596173922379963253901100174492744171724064729384045807198379116541641718267476857313790113291246881549125478441342757206518020459939681513105759876200502594910234518633365639815534368587585774329964598600154563330954834477294372749034667086216311862315445062679077317110897657023750401693488749869245854113184487985402845469420859943850979222099142276030850036731390420252877252318246781829239181154682059211606090140860022936845322150664492787991006113561259801157888620091159718574948987897470900024927294928236171198113318604255268299920158833295263606469085190728210537495904305475985380208320015613388821910674695309325641526043140207709959129412027300640302315664391055720865539979094730002996980758185319735344381536647190225999826865935651451393343003637420431893327019010529711534321900887936173885188661856896215256337484784832635421201737806737460483736308741272737445574969522919299833210296856280379718961110096030211430477041191681599900396997626544523702521923543920875842389762224787643097301093712896232189848523464834505906986626084777417928829397881670884287886113186477024254811680000661946809675951024443414091177829234637289023469011967594796672285107138170010808016572410630467444010791137379541236860868051134406440190243055095294636539226134452581924131627900773604567568537624664241663235565161045165438334486542860807084726456779114096065995196947326297219852304741828251923650209179679212785703609951631434678997273827691899823938236881706393731206563989598778049732029980008168919856649157791621983595842757278548564412117971242033395858644461903692009407802349773942583001465303285238503671824822252754503944323142883041306686304398314142312286076653192644261584434074521858991714435763774320319369834717981641759755005944523711698291396374958794827185169362007278184935587332979187469458725992769313828129280088448596195025504450021972873971063225021259144825092818394629731196535659286704590968738147101418814142272310197105683313382610206510673153272480692236168388625132006522890730387337258971678740402546532744961521512190142229754959482210970823900634687113987971649732804231473325563324721324398180081294632138592968151365549368030616804066835857232118431288088186875677085453582559670067678529218492359242926721099660067902943849290178585286867452880782529057083283064687048248005357594234819686351862681587769727400449509285640178086849736746189163462968093259434278117696051252515495994157629558321019786469166201092365814669848330160941094434132293210792291008915833563906770362059452250675210300727727359914815159512003403053320120601914297823246497212264915535516756451807047414972180941889971688306843689367522353913845563548332772988277876589537926139465913817645568503906864954002376778051896380348174465048488222684929423650930184318264183795249320869235183353642544740158166907767500380514715268529685399672592975715482185082561453934516967285386009025012959348836766032624968457923671014431945756386149250445261661034006647137701770598270903940344116219139872003886092426397542460113142414311771915584635488245854211924936310099515374821710514943272734653603133479162412475833314130682817357852957858029529067172200250106456857067291651148788198482344452401075277797127502296546227187876591973484977538740796371509867606974062305752125067306096234032331855416704703679735476186520652754764671157726942449915333009013282311049347901711293797571423638380935917796477543888147107094936938380744708764163367299237425241200951983577572478507549919258466857906276854767151987301015678548244034938758319744848325512443312470396765139558167130113720363230371984421385888961541482048456887700442907421313639213517800257998884745793870394037378019421510354900170553095829187630135094733256312362731161257905418068943047762837282934197058898019447919485879191203545216174912079343318672420718153986551589150068623567300058903136919854595702464911220555643467418992718676491158620813557742452203771543799772931349410250293489756404870248592604991788516300429440041627325703492049896274549032415830053401883469673146140821892111989410475440126383684939849600383941324471219655193929561624306941538579549572828207295541314872409487685852149136124762004235012353513145763059311836162137270978816981966422196654509751843065426390468549428485627481708045915055473674987406747559920785973882466497858722889381927862718307868762983998909435014606673412478466105093957164328615885327798102523720415754539174802266203862075559762374778725337827529589641645297276019140237215665978992089669904392857162535066996103844683139161105500613587012242243327489958944492473819485123206649446007619278420147569561434781406034950816756610288354801709902655960988430890578083496061783550841397970652850910748950728270197437681741764721929689359632089560311244152804738619203746778228978950265128958128108652589313310567090026272640726598057291747270356731422595308222917874757899405555154334631335865119055206869847727486265120732262116680906470858031352271974945445932101199339380519178523421574234580048865545419412394297601003541466580485768056713594466042809083392135142224082857305863961936356005922812355701699070527208704365020494852934992824346685071922192117156966328845268877888860986603710487196189902758488637503144127860738698883108859195591139102146678363277643662119210103759073891667500731671906082025778304279022837741187265870694964286556456219105387847495483118616778650359783482551735371315366177718872115144860402895009215127267742202094798380659873482616045823911129276098711308107259781087853813183912330802180578162986504655559847464937590092525458350195107370275734797138304436766157305083097262439082201281405144206726916243149971758190070885744630158873342220468543616217543258446785621579973099100338056522715132953496524151505817773360342958979137206619731291239935337189041931334785973267502021299923239128271400436217101294837707533778250564703526579397828521376424117635593763652303328151923172825135754465774430998815353104039257651687082598066279874895745730521859900498884873950338863769426760623524417339128263102816173481218472764389894045929227208383157079597582353968580089181623207136646651428964357714746712162423223222773432806361758858973781078596548230234826942465161468003649740992391144268671115483881571265911889226185850503985150022766950916247034909213561045346453965469206163648878807829053213320224376717295180058014632996925228037263208143248610963255445334645184659685693175365481156504636569746122210192655239497603143983063211201490115772328059840810267002422763072699138558318538072409700799979477046015437286867499900890874987016396371618502107544444324182211393767887175699106875103822339818961787216028477779893366562233698899726393685205126976381057492052864047154455276467872925955453610506443852049315831934784852752336762561570964196417353039510494654525123342905229442289785221856592385279823621778593513650425053843151971963649310725767670276164710896561989398744430650105368083447121029053323748868930191276566356759575430555605977476170638303345848122104444849732167683187168969968048181384360118961029039727067416529010004969887749775554487547738573517640717334847662179461793953198774560483278182426257712075218495132507602410306682747779428909450882731181562371593457992330787043001261434924645185736435957182865049572441924689864972120242898157545354986361479196018587224656536244787235300597425630573816260480033142578028916942733037601546677792630157519090570164504751846333459140475092210561343987594509160943413752755349739934379699009482167121873241798756751357895478613027200560589414928667414745625331723272946733853263960832019521326975867245524183542409528562328747204748875992203795978162909680337664529598607813748731476185853717751547157861470308205298670311681805355380244246340158736543204227452108518473612282748927215277832739900223444888641378298184240574605315798053453500593668282248127989982414331252976868828293135262826725739877634456458070688771539886602640667946838927336331710214399608820889631664105247160291355589447434113557871799094722916012842570816609486110741263900205854200225245188926139648575344387335537040002923888736873756098240821391943001761486912006743301607260676059733831959487283656372624323082326723359320294384764289098531251277688914501351819410821923163198427868135224484324494760764318021592124497625678768959531197959624984746982297732117660805329485280321722629906766999168489751494350618995812459296289610057277565241927064065900225330428334497368470208878143521427885482260018558710490418655301471141987615084403610618215287823926088525904975981781386594603155239976576970609483765198130476171859951051369039691977451096221425545847191608133141987232951102092335061382905281761419340161366150779617558674658312394102335622294805846611877494176919692526743216488352305992370668242628653287496689865025390028925765748862703676636166681552557982840955387746696229721747551593756024368023838677217881746654020020763340532119843933855313815884746104387657569869113020336735501593113081093465696388697374666482471386408982341648739743743632141527114418167910542092231420543385658452252829093788202472065418912783325559328105063955446888234133529290796767055576503447806922205710458079283071491678721550513773019094014199610918420335135341491748388868598226229598923938619885556578816787383626276735686379878964472161153911789294982319097477347116600405502409872085236846246875537612462034447572187085250566858138680356936557276239111137772910680898572928290585899296320128212677746112063139683559822218051569405321236667054255224366133363668943937608810459605987604350505723211437829923623426964604734439406171528478239865862148821124995519784121619155061190360620957898510969201492521316801566836465385912684840926198478203204977381039242689633037170356518781475790969945542515312866044143342567570426923774635558826277325142259458312359665171220362904708522184219568787075510674247272617525618678080708052297035728276537267397326393923327174310674388648472427295065287673540818820935889445630488524960858846445165879536963209642244041213347187368051357894593777690565926680759419429922183509940020262151952003917376708814719413471426458477124420034256756514339487227939302410869011885337358724565966205086346630718968924905315906747363486968681558791612230527394006161792561806117264943690331111165646076225094381631985641754118260154497234538946142057068051878680652129530666268022804479077065739635126430879338317351901911009010847462526887587652432449627962798647319785657227424268292287847451959042863980040369582848818224468018503998782287129209252384022764686214357577143770800131930889929313344347082705799616199544279204413531461190213389851855481783537868461125432817826066169537405878219364478416203217220993508767747874089206726432035864753836504704529032511202327376744954759873695707824334292541968915299334495047601813473159450091756582832974209549290175244373551522215616424991118398701426154004842713618839847526260075632237727746278116424012735502103843801559160766497213850245771665799784963623089228961368709585715191892184924836664168966673116384379888029744345640699556511978817027262548198522756007962592575555940624082737209363661670185756660534564271439637511124253739871989483280550691566345551359872542146229100327781332370420451745796003609558131154218699049952113368641368204779526734657861028518147885141941001651162811651772617957385889642990728494666940791214560214667039917043620565157934519315164788991463303892389359911680922653036705095162041066157695987297367704621090160213133004287608360172626410562385141329411613365807214930104475241640678703934976098325650938307770522052379460973028939950225771179618418976311569049777020819053569625238133081527034715944230011598004720232440233001187327143570850985864711432676884466441120605617194293568419376575283420352114988759056718753761393060994439989970196066619217441292164620108639611588659696243345233035172597750961165122432427308906745671025968483956092696384834584772830664748594767692390349705664736235189422287854340470571685142806452798658066734436491632134466382515161270636035034820092921231662608085308077692208136521176521237367068525523549896432583836823887335594194026922068928294037706944303191354800668623947710667920454859984533174079532890988496561513560139279845593343379419814556416634125107937340781259053783586201580429709183074156509043091942509983791542786224198718339535147280612154145904591471592795852353869583315960724858868847245381789231028416049582673982015998861295555494888140250153395704028542452190290396560788807972206061251749305116850708674447495866298286823263519804041975155256570390694037604399032434918136784141526962495105907099347454814524474029645714065221564891001913344648359633436251155940483464396696282452013522473000389192275616006488871148033231500474893547707896361323423214903885633865228517151975917325334591187990095798931843782549460414795179588324943884669127679377434472297815963145330353575533238682728024945910733888639117940021226403299873073017884883438865776591040412909135022355879320722732783496463247701078572515656096945146211864154782815487325311482954756620559326602138722778247850156902944376785083119936864645731055309662202022122141106061694603151464557484225017896923093855155716135314963896635900201085702118111874246785392026444509244883659650388293947082309029859933297719652372325284941101625743630674687515597482610984806521127473227900934360248895377345036325995707725283780898805424559446282680714414720056990008541965939369179004904411945899261518252077624248713226988052320129502157520401845125089383479202418119695121086448201038621745201836658774064958957370242527188938963434143561905551780330311778628172666676464725595146613340304950620913041716370265105385789337241675098044375033057266709846590342517836640543836164221797394463648400413728249357948066707795600583628898087232901625209422935888174509756473448195806436797738925365193010505347589906011379173852999258876168785940935149676922440771025029878357178198140478536983337281856842821498265931829625341672684876538530924654024336918663165676180733912121973864193483591889992133132301848394595093515285018364700241171262380765953341872299988494825651026257532151245668710124638622619906751017056065967449742632386493106998270574180009840559111422270353949808765040895370588421992905274928572537560580296067176776110871377624689866939108528152801572742743480547929321308219600432764013840124278251496355781206257276568687818039762273720292394134689186783028905274196612420401222442762050838561626275834796295930873568595150910296431994057409542476563532616452754610723612901631963999675921551106175491664704964783943303899744146119497795846605463258336933906860860156672437338048190932626325237167046569085183005663822545998052104528944545774034172750199255987874008412680545016004658962585191176689084543247118375127349474550791463548913688435348683565843109173416414340986387449643355389393236723394566172317269484435264491682747535488842791432420385377650373671795488711009301409639160372743952522472713206211140054185002040801959278083477488744928382869668768602286406961386701658783802428089484618609787944792962816203429197469189114340503129619262699960874194638189762986846947956805656798853344424179871928499805286850700588546403916046070519658693941604769732154213318534340470726171911877385603699906044526933183176501079816640132568343526902903989793454951505030182336046895437895001222022429182186727387625741795555515740449607229359484169434171820081354150504012092344928032207648941968747317661893512485887820383889121628965448500468165614483323883565109993152414179360512348969706062178080890517252639301752489185732233994632376054639085545748236529267549704426422462996468320096090158490345381110883079136570513159207946510093353642496207125037600893070974402654771153870490565002758133450296193165215026105512411754754620215241795970250309992984287527853948665778971624833569237684940688621977036395199991055817326180524486820319124416114226562188714967711388825778378856958740162721732868658642193195519479722487155610445364654107699479708796219032233717701901329974187384750498332695474819225943730726706201538160317900278824863072569331225613100351524717845323367092931146832115731633967258416846459009168544357603734644929021099962406486874175909481823470414479409910533307475727785908473178187843863498629837124951602466152208037012710663451401965656291763839362354213442228651279229709374964497314749242891075368981036457711826518942423406097146545881351367537316873192294078151859656404148120338923470818319692554928975806956627305746797813381288114675449765320436556291692717536736973802632986214190725597729916064859907125616762185286044888077825004386445277259909520725630680883992640299682391958442782991008339456550426915840779941293708635753133712283365658235154626672408844872697006431052213309379653717833510237891037483372921138414876225953993535048717035655602955226662083681242269292327481844118682232122033965885387852529553856799248219207978324320620400012453184449253690302810824764003910375007290524765472241972866528454145487681422949703439453802303252145077670792336484016513501391197873421618252650751238305569919641339178635545946192393774528913452676230597086584143430984915196654640170350833029154385659041457548037754349471036433014539516237242572152535576584734096423670080335062611490485304666765555754641178410134218892080361664519624626687488537340044936785070774381752908581031027009574258921835872305292547664127774981968481966227868001449303495646133190972737531546117247128116991677048503640083131516498809966818694947824008419867980891850245538388937031327900961379725323035850676321410767474568532198280528422075200379295935459902380959185567430318608477575210278342038406593381862130412001184638866389645718840248732546526431624218495399100556893482772556922146535001861392323412970450606956505066531780282586581862164116660582615233276713956303859517584975565735544941741999919049932771979494945398400079041407349540584605088857294819919455504570868565952149823160494975618596697400083768724426826901313730404300035140715569028690058887022479567988238846129728283424933115783813245139870833379144707281591970031604741222230266124586736365990129592259583481922090547258358513183583560093399212436030478421266497637567900370132579614938076775478594408771144765910881562008989993721471859957048036681428334697702480728043987703988370365442562328334857676071747351161172291117786467188389149839144284578468626998303896910659729020874256333996009709026970981837681615242090435029605643532930782405634450690874862856308259486204171517872398511892815330079992127449235435462703875196376885354170344176358521194306823399237549054391695841353330819263622147749975388782446403906104786157164777156506378928752398600638675396682565330441762724604712193856403712277352054733231927630452218125248949432713437666884448242552604955306252438530308979442858377632013900168715451927999932473596292403046148904876750143372100907135409774022526528065684473031717804445235463394250812233862540209451944344735322853985112385104057399098662713019104455586727117868222568734593654986588795209796917135828581676209982197339641751390005204013039887911402155602989902201358282322160294187393987225520672846244005044416055342779536659220156935380688683362733186120631531368470850425646389263098262201528961800159616876953267528149856225887726854338419061650160551289542704086230311405868109192618403464814560180939700411141189600189919857033523029242043811480519794780197447789681706112227976628546553305941795974600309406331533141982943860485599090891244166775089039822767819786725617588196396473058483977946962515117599084015102964694135632651551101814109011556637375397858203002601401654354340268648051164815934024044693991744191788310016036862858247252008026165572121391529069543394439788847039863944659856464967841797865630619154266929437908172715208872541502741553640471788397485563024198973423032142986245447912889554494264733071801017093407885157308150762961419786284891087093801309635103665885294650945916820771446400074389904841681047121526132111142895581341317283692934631845647293890055756194502454642946259426387159698462255091197336156566115454472950842468412078494517880915133712789071635190110129522355248255008393644977570763324107157603553595672369730270756475966591279989779434032365666449315152491915060363596494414938798072389376044215379280501410750145625937239962811830359960271451268967405035338012186536211526123213535681712965456547451137354170036603552154841185037257941619117586372844989412598963945137946922253199883593691696483015691699368650747729255723932840819454082989113582150314826741691515979282337192184707408357103587131147387923078241375350521297585868983699611287983542376853554691194713966643795008770727111542182932680917509734084251376764419455140333938999243769209389352768039329461481152233131691600808334393384357476533683019175774911236938065017433611844585980970097399595820427947097596187594230488453668338368896976731118034006700451620234404875168369595489570835021915429307146238932787696394009026384127954422303743331215148404328368303524194196930951763473875916626826484538414562849296328481633171827645424445510620079681651957416614314541021949322863820679689784210522345414514996181387277116508605724067454946577068756117397573357178168638311393754871638862402722760508454212228575670261228793529937525218310396454708757820654439497981678269294516871261121474570609497980218367135227662510787379777336417902058398246908738637994406902589640355840148350529391380879449028751194364618982626485241124084807444821526527642027843374041731372897931226169452136558364698286922626249154218400376636990340175831385392114509409522155863831562917076605762839606332584554674317870504139975047797314624186041279013904837229286362994704593381202404155561807676812870616924335417155410024959544367346916522740755970017809294977248696790071753828543080609729605204390392156322076651278038203340541082493190582585753908446210929250467478694109955506921538648674971465453175470299555351570048609213959897222351658374799119632583022872599288676844340659637243329352034289739502961350605234870607270194782405309153185613721514398846080036332295518160494566152464523750302615150848492860201589376287728663044210634499670342229048955539116568552799287988492974373021348076346487147571250229977524836282817839605426788685779206175681972433183248802851382714195934117893966172271978168467555292996676054336504485807712748112507120826760115808496203801248674406329723605670593485830498035832245476327054916377206052606787503996798016382848888662163174538004460237834799994925720714545198192858156022168505176942825324000046441117857811154705346943527058314217016176978394167793734209911987591145353169026087149700961731718333783239798496509014510252049896864060653195214146562566186441246280106383822805770171536623760369022904557897894797088596302586200645285355667669219238587405823075772339388621703337959946636945434127261014323510541110309437629329550799655698286282992628851332899917140665878005356731553129187348713732182489346323367227079083672212869618443573225476907604689782976477757858337306662327952362414937955789252260281999842275628404655157911724269282005314988303602913587502135064955694426324908653640384362057380230064179341380814835205200514928310658137810748597558065537305428522824224992407533540103848921144220345458300853211723483973003262316714647744835297305628087249886334847578453092313420384031059225573759490592516223625190009694503536482230318220300707534061669747931722277933087586599874799602723303308289918725722201998076509876898726604598519652986479466390707904635961290146075635006845177554411682741978607946760579851347232509544250021728598733302197333808360762139334012372435352039829352218761345453761314538680561304371572837451216794115168281880290733409605240055639656361092420893898377739395548458858271036319270400719535272522664226138612470256973871273765072617538046098962007411808445217266068227987170581939153527683897474778612742988090163355513140978776839269205646799131963368867829984525642033013053664751945269114044749424200289481183241825516555272922322629661895155153415068210904551346942907846160915410653720362775189932417454804510105570637136324905498772449662766924377838900951147147958221497582430601943131166117438095493509267674556607457237321280576854337232873820588926334289876210849454121098063008096096902886647950506217042663597800629031048730519214591394065171874407102989709362249917538172731664841427035819996893589581091958988750597502452487263490700018528356295014965565821170202759157320716730885743103455442849799196707711681577986973268367371345602741155316388497383700371967818761957810435359395794986452247987844405087199353484534110515008470637697780278377866899201210406388944730291094630861439292955277498249311052010829033230691349152403373679937657584633061999045650498096668331211950644533849309885081333187702168849368098505627256663794067184024142386153022153518057155559979230261005551282147198122347389449022785704905492879275613337562341482498538385306208802740399349732732590236639876747046211258944161734313027106323308706618531766753552748111518356155232736259244013074321579435789185824750345583748393088877206267893284737959602552265439151281225895382644041310677580538773429098798928929698960310817820265715029592173051356044127044218749995117291042451609019825273009033353857946065923979188677035690541815331583409080933589087410379554396021683537902661977811086572788829911742770259510587004355907519409301590259404032930582047356071454225315944386310264898320114843012878590555764058368947959382232662289973001428594359939211562967685475801754788407089259455930021453743186717055522617441818242998852026055571708584360602157962016226204753132392607647173645172880345531583680853528987490774097138411855795230127079169442365249943925793959941044376314019069779580280093370315287840327297946333954314204074993138290092732171562061134597479407188153045451797625658573313201713559807287774045802958666215679854020340406347158648343795492882762054761946472413229139438884036655381930019145618053236249715493515627139887324885315403607017742846908016785263831990997257060656471771593694702153585408430269817858652648435479242437888060442591475800036941965440059833138302504680877412482706733675337574983172271534613499941600586022297818408526276964092814955023498368648353573159570389206248340195277340499716757492916097725611818106971638949007701691329148153204043116046615433143915501917237727254746121756542217581594028207301505241004222712251699410021748498161059262170703041705579425535452414725007795827321581980552619925579381390989701813941493391309799235058252370052027512292724938962644713988023452315301773227868378881204784234299378664934656756080346646229778423735687599467521623863778737757679293581465574256922871707875993815679156715547724503898312670613584964931474515910374806831386223304681534414258724411047018462992975581859443061048408119775014719816010759321948756033695337362059075904641646389413811614462576680013547863208814319134141384161003661149885975207010734120688664886397557780417502604358973319226194119153161972206631178735491074378343104536874374516577893412881403089137337166975438093325775574653905154441482333882416491604898152527248120812931778543014757782052172162621983350502127354724440394278023721827852299164186990867017216456364077337660699482766148834686402646550172130381226203955213326943498520747158645953380345669808280529847743913374625426480081897621106556481897697625617492001368921542137253985011378821023483004999210015764526393592344225038451528799383165807166785784315479477248659118644362710280158590078240673147179896041227630710669460525456562429617304345258422919824329534664356614276686475957407463169390272840525943986715273431899539099467158847734143880112884715938679544398833347085205974890495802131444289659160141881607035693880212615688902064218356080703148172583815700964541379134819771270478852433851538945813470538898746459905199398557696895752325944476414949920446124737634646168561520429178974814235399627120847802882758493382372494488512252279960836807344598622149638619662227782239284160815137029055654384921278137092535605445421945737218489201390011440968519488828146124228440905808788869745656393697733513927146730581102945745170662101581719214262001445123447524544415090094176434628535334786939860483904821159384633713938399983031035248930773722568220947375791920827703730734520677398743755919593478906267327656935204506298637351497322895490769799315982390088552151534323211552400883567882974470560565948259842459955729841586477600668689531322073121464647989598321995467631185937149349234724289317315587483249180566509348804740177639569727340034554619858838758013522521291922891497924283889819480719916351796611129494253323426185858132071868259869321282579691522356823052868906910699943782966263334755039144928509220645326350131894902085407975255938425203234518228340274132135430185891569784618051578985792427160370274428627681493717068381285811799518672772181927066212500402309568436576170169815486199677763956669359783349084967604604745884703555837793244142516223787059694333969217664560053372697867348195987125553557335150987414647519949146901369725873376879399715393894261891380043779327993566921640614224073054720625779393474344662293341122654467529766939593804148933395375753987748706356093256657577193080654622178299690915163483874835776059294960165414477307279739445629568064761798740227548410087305903722589899489344318220589122299048032156244321594895329177760129437869272545428071706504063526246880858183728291378005777020195962339298969767775767179339120966740275916202671648758402535889327178672800407542979927944233416790559184475019263315912689560029908955727674781624126677351931964330227414349057497944483639483971399944351822335473863982573228784781596633802565690819116061611618589264922511161154677294960513973868419326036909144358433383810497533601276123142143348410049783392376567742661900780727568951572072916197181608964695276024616921938037258838558657795120189430374232872393907897202167784085205236957090048418990116043364754251399726904632794286996913274109382384795127084217497333137663390458496875035374315385573017652490450159599501806124294748689192192891406744339250106562872637836203906034680966151720944708515237964916194033733396852515590105027349457367814745468833432681824999241511199399365367399140788833180941802894144326101601547335544261115992400431286165174215363483109688660251911122479339016846781519015528029943407310805650165418656562259554247621763463354447824086437475132906120185507645478669789915375886351381331156916515182197058062620716134254300286940756267201687249005611151358156401892902348744903475324160911715465949258343323304305190184090130513343842701214870626107042239576605665855785553861105097832745813412467729879422043217004173572036993145740386818119394306306718194994525101806808068664226508084677320220107914751526769947498936485374515264304070585197851754067233090436968156458587236695893039989528813262402061142706777540691185636955406926387905465404578003110901997199620817585064706743180946505300853471035525993500071839185671536133154003458908509210722774247682151127263670967291316486200398328228784819657021903848299851920430750626545111638589238533504089015414839907025099168308835461280907700516532582636743201494806264795542986324238737297592402996886125375779898722654659011306141936476555387452095220034590210643181304795795713562347482803843003945424460895759869445719188496331622988850417340861194936098044690353452461608730050928671176970027382483377599107291537690951367084323728819716407767237939137826833328787632021161207706243507751950830708775902660340051826699498843708055174971558952470259959916366015478662093280523905283402978001806954344787814297178550727560172304539965322966753740729955013097835788005362417390073139520638550737512874390430784517222632257935047294365977657256909244607398201782942553342262287576292294425935395922070352398490896350555687836288984989871997749419652818407957789491018502084839230599904182959573591791131454483338147160214559256248074710250659846436934725440875231117875557456928842146255023639603604647853829627172816811485751183570260032389408698972567858945387208523648357975575035932178784652079240762025860343446795351764098941136636787652646714770118843790447860754792888397819273984674231904741626212880895314322206029993287353631547416893663742648795582014116255967477263895103929021622390299938773021460307537480911362408290889211219649155357707901048007422968566245432943476115564223933092842304416565206311465687832140887201320402793562525185645191052265634647972047941333384986994550116490484269350716281017236337926470336072209696676062624595443324708186425971971296323822511585418539000778019927262873812211153791760464386660830849364174946760768548211235782451470470681090970051921257331450575254152445880645049762228189466063828719129212662303104085797666921425738578369391181970440554433737463299352133277869617573572504281992983372858507250106780403695260618783586133497995096620221943306882642783891807717832184995444976573062607518754042164151046232158398518923552366058578480709941309113025073035368410766930698432756737303728937932712666062854635851288829715079305255893017021717640248913910148823611868162475319813861155314615939793639140468306568089886401598196254532992597923767116876140516547412114358395128934918448835952535700947980732705804531928634455163680702604678642862924512232277936130407590408622228225792262463950035910426210013776206384905178453690658687192565792031706102832733405667787857633566331420085115117958599304686341375054877534158118570288851002556224759156035943466911932760856246396379440927382492502753532588908336654354572140768100029936873558231960001691486953482199812759248012116398917032232139045122927914571964644748710543748187795569061482992922854101780585536572831549991655155270921903399278632033292188730367997990274014561726912945758728591671168435680952000750066016531710238292655096503182706434789823694379507140349060032321958424137029424335076486465468579029683696992036349915261106021587601174786760924703594118149938480785021185727731492338075704072149295589343330214708920068377844792723610490529144757113890530725626415368887645285887753920092385978388610777282032568385450481570885617937153018696727506858016068386516550215179456561905102814671248310799706623523750588688584531668472678838631285387659079710151936900855214490279983399757225718824552770989305408334993928479812713502454938257025539264094498771767950683601995068531305192946864473338161200205720766788655937487868403572472198655985034047218667749852670158526330478135675132841971880769098622728241195478310274536305420604156531560997169212172423079912117587911760270397096493907514320386404012389279737389128832126569681869702330927441724901750496563334856493911689770293012384626248478357544498205889409857648414969941807606510291041286510641195235291220269321797027547384448061655250838676451060200021721739315816789734158962771289198686862391266042771884235913951000465301382251978711086514216873124232104657666992311945094030240739380605538146818793822139472223786326781526540896982106209233983183063662430063148025148164921623050620684008123051969003749641237451631413479065534142327172106617926421524608978077125573885016457962121226758175075523244293502000595278818983462024678475791535542978018171008798967887823274625179093524232382094050917816129305171509163876833426586436577415495639240543596890550795072765520676904792194528156282694298163981579514807863349992066007319736136186306061308361268311997702088848141137164969344318412885911535819008502183070946602442317411391543994921663246136556307846890456385039151742312075721938627680245656229047989758410245166061312937330263166087694486733280703782866890175172238681841893516364443463954502015542677383603261184164390346040187865372860711037884090442962151048960209315711244852826328248912206121136486871031476217109010320556897655308433366512148254346793980315985390860334095855630451283829292310410124772604899434238571752438236193890329899610882967815841151762451693758533927716536692211505048719678557307117329118254984274822874891599643763659419814398765249054517990931011618242901854985617977070376378477503307254798847777531607422634742440818864191949844724116341440077426281378524764691214566707983421554983889402709692029779503967806482337283248174693736189245499911965331968555563026841788095287703619661776512437982641053593593499335243868335381481444676815056961226192030608530768915193041712471067552824248850570050105177231314052201029819672017841241421183658782217714490836625535134306628135364083787780225346557353075063085226030161217255522287296223206018301397997344243082873458447812055792497061529864286272082943973409126996218940949134152739299134265465694014614242073791746697200552079757929302630309344270878301651812283245303740590068528010225692764655945382105413297730635197017732623009378098669891827215561938881099493265920628445526226204919606134640258070140730925819867012936963370241426251371370684815995338504781533138653748992667358660022603292139958902574581042772245526209889188655480670062831472024986979671982144439159522606246686556767901805008226010620595736403269539231666521380405326426844859540294987796517389441305074096913634241266660732499713535984794833000601462868302172760745141406794882424010247263122611098600988021736143234872714764909860453307395191039501166388044279226650485831804091881892519152620951065409939930127006097957718918149708861588681532761843178318298184213275691185086186846228028537446314527710470916547023802061520395101091801819702691198350900028371218895354418709601031603973981625775132514356485712512582506070861950314586537299925440559991519144206667900052319913551609816378468460117640636403340986880993757296617733006277176487696810683482481485031620408925240171994417594436251099146772885393745949545276362245713987645862013973348024276101637735316366733632678264590141075340290937094880729230579158424611845602969841087719516780179539870150912848076422134862704993917545916360276110260374114684178377937039295310178800650773605974403606041935829948031592543501274018434110755169909598490699465988210834273325067124882094252466371567741390511740306412921358998140489381002409606437936077033274327588182714866117330907089245048137123068768364160095462508374165069606761698059729767817704213884225426401846933258727018607372681856636933547820319692158825482183932998941729016696034491580911001430470982870965139821984469276413345514159330701309499467613032288619782224854835087291154338640590256823900130641726859757408567796932107191665012711476982333570393274028537592121265680759679581488368176754821115549233125667823020792306215604166498731893124364357059115055353369402126434214595698002954242785669000219582788526293343039978141498404746132091209158031014596590239466727879849642549680905491022942236055442990777086987931547623886111880287437964054515412912776878386834437975306090964545297385178691277702690759129295954051716115612827962747540848034915283092490355005265417290117752632093057950440200001813997034729685151627562047995293260319242508424767890479824554928180457303170027319558839002244324919126354228506788634474682801158161547588972190320113198487668979097135625822229669915775591017007849451113762725021548480201476173246583864756594636728560343299617112655631371304489071193169598227058572726751902265067281335157471239304765537198624743837704536554332466172621326834853914752978468664841695254617435928488624102273333245631804686543817136033207661441840385993391526561902591685919057691103967504590048256705374301169950055246173099924910131486681268105261180362056271134933630459815053696705041092742653999118042357218533582653048269782544524359404273506593003326540686676381530321794982037917680159535411642004579851265468715988750663715064394122502422345178833622115408550586190919109205450746026527886438894666209020666263629000402924567109294985867028731061124897049234858195588729209930601920006170931757207030740405742619782999026650308354862250645871955976752772582631896412373811664353769518378443674124992511841255196764311943227951385345263885619358823246889577321371074606324262694336157298977684943426870274971479672146173115637689817680651860256072514435606516386628712847950695984956233651503583689481478904005835511381873579781875635179424301019739812554556421263521029863113933751920434447103419351512503331468294285035512021979732783549438669468484088310510450392192678403847029755849404527621914431008625841397258641127852813028268466731476226931406105590983975403882476242972747866676000114838263046948229397850940708840528118661040893443584188590634380366667862514982603660807745714636878105516318193700853482840066167754737155740147498340530194109083329294679549821312455134941713632308840249836881870159489632275299991092202460222719033936085061502482142482537949513956677963024471878912108793124699797714695065038036661551224016856186246537246377641877754892183694888402402827082440682302249814996906961589858873563008085004421300011199006611952588659312169812667265297806195010641550338612751304068803149636847865683070625477323003279724007111966014383823910168687580384667900370249801604871643597441100733237161916508969984803351309457136732234613948258097310851694671021784933172878696647629821385268541049997019449690727369802168659951525321519280834045909286105051915872608338179105619630306963246912499421087520667890496373369501502799245879028359409548013772513594624368901719171939654975791154522035119110723928065186086699800840548856407605304525714062848635098411293212724178980414744088641589319392832419938791172085406876090296536779682661256383067274171763456892031548753768041927143823699689224149928916967818947451980366176520058561574816071492930605333337368223969810971495911415223822643997383352758343564312938077818676233685787872038374006491199429183439963139547340096091703897008191239362664855419277595061601692759060584901204222540706017526546420031126785764608907042189226147196247724184243299055585123450778112691009280360301655824672290263377800763039992231684649318624632878415831756520492259577474131562677128860221408592785355373374719535899039875793361021949067808943699129821982616454748058596041495167703143399989386036748371742872080252033615470191048634976466015164564196285674398680076982488714740716079273384993322233129909158471190634998808483362506595896740155933703480122311841896441609138899008944046893767682593022629067818762181481383066029349639487399863503350961994851865545864715697009829374587209411885391711345246786410139318074510301010401847542154730128585415496411764543571305608816665223993118772374581288598369757028781670049787673180656590545896326746629953662433974755258305619838878976325632009848937219096018905241595457097263917892406127201149440551409578056424183789170718657784261576694479708516654690930005553648731858460453304726858703045855623764082506048695436931165528235850956685906878981309164216290693449092855503700361509721487790826940728777259264185272158786175864502372901622305901612419023852304751436498197216268036913203308341782953299962291568746424548556833374028025538655064837847781029141296116430785588690483749338381535062672383713217752996334795907393695912786536778569828088679946565873519993737375280699990228166555427258426747626142634388118746217623419757777682289608471483952166826812857590591529447954684731697307954845049687176205978319428725504526699924581282080936221285955836391512782783343590684524717705732403912945582843400167227471125732387381765404572966989309440905658358958068343924329842591437819081684810087974630578252668896596574933977469611292405174703710709818277973295762605985579976844677695264888792020195713865704619548099485725899553640553095299628581605445205837304314780621099359064804818375393273848920955690510048376265196745049061038556280538791161853493889272063405549918726524414364805083579851196392685037254028708773532662915448596612541074199049199646649147471771304333514174154475144152987943385990810437874865244490953010795998161053999422186597124778574420958773992477490282728962939638535442690764249943632646930041497267006793664492938479184276358269914682847540652857867699515280375199695309686555387543843049763965995748494781801909862681028933968229139094401014069766983714954525673571293923924315928696906815387393447766247542759025200162295322016516780731080830495899817820394427606675237664099896840398600576540865766531529079466981216655364165936927432269194924302974313888728643160992178290383944932195513155487362355531485211692932861279661651218846215787396605888143735797011119081789579951790915700164969037170502394055826368221076330995807575964481259100727730697847628178176385221386943963474889097135978126716849776605927028987518747899267689807793496403478345244262549340108851434749457190981802446377656251158850667209126950471452005399361461091556364219332749038058800419161940775204063423477477556558763767770291977894644382584106603553759963714810994659440875289686801978677148045020624912867099399372115826158230525644472624837150044071764392450553435402564452801026821657555420000062639955130738103657327672281428173711364220663997476439354931433700027489697840734323801693601252577023158188407037533128976764573533834646186441720684330037116149668664524923558036014402016020685341070596733919424627537866600275871305496915954578122509202323007006361554406487922395040384865887312349520955601896785182838119298361458794214913631199544903600646831197343554546623973146056663298255841006911447245125412133466642254836783021611580003037946104660971775230880428137841133276843600835818326343868467904757942034985759806058049812838202752417392845310966827115770242576007129167057118509642812624024574413852251985896784382727802985514730486204652141100253618691648488958773025409723314129729101052177029803878498420458969627624256858713407337172237985640999306371019152087223829927098960692035227781249082777768567929963515702299218122516919962269311815847245582426982913178261305152530127312705195762608033534324004758711087025104538385778513586605062967008244959032643582264862711748482349833748637872934923886573347314105281897473575431386925034803342806511453912918551152573582810667765260816307180923327619732396532731001429890770665216363948895555896522279829831892734476819176797635086760390722693553628174526655902014871101133615420563053900338148688624917969365888373815038599239908683196032859377353098044584202857473447991459859117895712294972202292333743395473747902677492787999290997816201562149677669140678985129266782325485701588841666428901600775823078639694500766016726132041456114992201333553545706571820791547855015548288604205301420474685846638402079211760978643802320151735531910567931927036577812454855457119265995084001921361401497558867371273297048839683977265774908236706040213784549602179228822839274775318828076928498458418581091826001009704890950227159643951083562097174422587112566005207886887466541936186166783221358564574296664422639951539723493370419190421657606528488465418178574348718271262074483728854905784535547414335738422527757835054854772814528584569927267389236610483585895377478362864733309184519824222050703536129622190375690896248882230788356728055343189987740236663584290567698307434796920215752135768973031725052097014173700806914766983939297131721176061682566508040227035089947589945332452746865293489180948115934860232057671877827611771508936501489020255216876510367993505527331642851744257008127428440747888926306748049095560143796986641606413287841654364591512715226660727009391707812136851540323946535210888232702935610254790269511113910319790651711798909814718705336863102583243427779621798424510782551485948163543583806187751354776155086251152452531600730775555176968468800520423490003338478824612218878064647295323708303440478846200572392428745802630749763058808286517803319892823673069408004163179162408977023951693918734767973191944669345173064274336959139098944424786382146667971912105733907663430047294615624972381955390591547724991708998322318420223224936099821566513055233430197036344305481507304860961452666610051545452914379360500964636680154507127060181298849671647724734133164037221276426062310228936070378372119826271691380517694374326529290643232465688933979485723734008613616258473841419128554400661506464800111316754885953263662783348372073881532697982824106699502307305164421403723155951340261919642872131795192034120214426715391745678019673730991424829773835201859411591763049546813789029227826893099812865880767345277635830700978124524767827355213925082339589095566789266272403052566165618587973473545958461486736194014131969914224855409222124567349876773543734497894552978627332737169700006403083694633780660039924987695979644624710425485126539456506995451310030047577564039514240010748711196870062469715445807534838839847743603437724233960107748144594537386709582913578843424868584060974946231878366417011414421661942670107273387776075602781594798965665579246428986347362205271947414697516281910759230726452431223709856375341972547292017968236014075849291584818790129118976996796001802873697215879993698902833419934656469622926247842160666788841277187789243604952066891500376350366793205033377943764241405767590462257277928266172920463847459600477916778135725147650965275289909366881104558016724516694307737388670504872016059723632590481895397919710435786721901126150569846151670290011002659944745810349869279078419574996372752188969081011698825276248924935294288268953460191207998934317852983080811621082696122997393990602686568299974312495255147449175790243865767040298600375773117657864313988458559681108071564697158986725720793096945073769975235241296080104890041156953193754676200296320102222659766476744120690657693115714080245301798408032904478002877079530356430827924198849033199561932010591105315647038106247155413172107996263486182486015074777805485979920060276113377139024238220906985908134641390515174375516060087039399183203892143324714432052588385056618083646454810753769988775804116749164430857116888334242072812512073755090881774568030383716817239060656959073135076005611756403616788431789726869209027468700548334835180289271287570438803508279311985354602190978910705648840916188346341180503404756039773661223044284617026279765683621615625282934418123939768449963143354556755967483122959512876038466849620864151862423611308105115843157585054161631832566713130501970226048372602937250821902035537930825987650232236347627310033251317549142503139619256520714688336313140883555531000242006209298956504545328009502487883762763651253316073512712277873222756035066787653122685901176639035815441644802839159805498287655598724402414241321326158322676786186264660775526924738537644502505540503481455734948775195840385893390416459706028564131137621047748597249252759925398299260106119985392350839118694473895283155618824128309662523303642683198636334549922880254342742451224817696236975903976221610844512198845969350892743773421066066423327769029852545655981471322279041114573859777641000697274933653044461669600550536097864282334544249421566891756792058104767706066154604525129380919807387145455894198381706234545291653076685196219429603920147116053753479343313643833902433708611578905962101667454205506873460038815440012917675757833453311968140042783051689739853008523784198714892929140462730409930049315955031473506698073064334537765396759863370307343955471925251950460519804631455811362563422695559207033320124510109712068216115491305123999194028679580829096612221283922010573756678775500107138363184259844978126210286969700016843882360443938052147167928203746885332292340395624560128848025690003567000646692816380416133850732117045644064379631571116995474833844910918762580571188143856854859011995989463541328402237760988568967006473851995609050363835573917962122978645121723028455903273925822541767811334073508999261273391698159295337785798078312878621752132605083567537761549297070588987514885802783451916254725615012548478368375286245727736883687971583851491384205321852761200101612702154153162289971146727105643287593987813379933874909290865898330635523233573929188274723989162972345966551186641734698935448987640139580629207698071154116038260889970050026482417323170830889147048628919067802670719099172486002626510174030662444491517424296812252227297501823224818373338530901266422347912589247592885382430841604683541585782922885152478421583268158734773825711741780561369015833497975743415753121945991374082537029783567248509680576283684310565369125261098321134562372873805751006701724677742775571981651150261406931517880701473132753064569136927641215690262827973710169717825842904027481886271071637985492084377206642468016466424201435858988992487146192692247519506849088422393220271603656713105130043075084224016677905438893143891866846652411336227458063426947236555951273820098870074993494627621935505538197365154883223899939237990862129641422547224685358097251007152914852469143461884870279132528636252595582683114258236443285230196509813464905559673832804933883773389457582349283179595379278905880962267983662980131532594015550785928114473126287644341828448757795174508041561733054362541244692673503559301267462189362533326471723282110980983497364389349926238174985446680427706146064081414811797534438667947673854507432227865901998061751296388830041953641188582489731789562073899262482888958993479269312144974045406530879624549452547771290826618207227634509920889802855119893152158884750055698345495745108478277854591269303583691607630286299943251996715433720546750304055210794018781125448158255638660207763436377316466671192887039688271999504883067618723653700958681712439674004453493498463630449097355129707846471439669260302548078767496355580327419802539969271645928380172367326512514683426069546337487429141628141963522069945381933305334858426000251581285658711723044506233356276573622080120781874506688588124613596147181599732689376625195949442860640397385147818848785790698355953647645687205017984273846879381924814185469507098431374122293344622429246934469099606080635613217674275870440455683156913912378308395258393706337713794423827484943330177746636564402868482026737784048378452901583137020222899864081505543003714698038736924795325324824580602931876825600120869825851481796563203426016035845828273797519887129205015644602875696695976604335446471094143034339851341748882648984824929587385569121488559491515222579436401315767432603290371347974657346459361622466141160795212795267090226046316570958928685295147999437861892799589785034519736803959502413288798457525064762148639210567936647924876292320966638788633443676285649295102824083914281088035570577274401567783124967921517612772806780610020167039718839603945743357199267944556138462108907998388946761828681169528073638578179838375402610808622700038148611269519934243612691158352804552167982612117944998602504130620637107717599862246492030711922228030888971723316426915919748209968548903923134918782454266186796452604922522843846965691253384491316536240409666398007923073642913236559069187523380735099256463660663540681349067966285978107457578111486644939076642691192859618903182879737146294901599968973202823491285354915847348518505998984865862177357286519176336339634158144132689877684642962410898869619409881530605628702181536152599787901208193463899533717254814652653416916736504338406376831829770895147957747393244695276542655601081320554445185000276366866500025746234848456968802119492053573405746802861988885190441083973106104566482869954862442385628641017392055552153470054331455497226392514089649007176683082123185128592696521155683229638499367226683349030063520814040790229610528220103162123208308318893777857707088160621843215342751539799711529916955848879597235196263753188645791191831608283182225444890651288530062618422960925498654141667953314100166798741786063160897397235615197176599085152582238324346759538165906534058014037521924070765120300845086577045502853897683588791987088247261116460284045690584142144672241067937911821626597564185407698024691626027347902535641028431174097334640626424172443208021730024627314655656029126228271073683154492035536412235155062872300548693252321541050288956119774378275110509539150995601953603654587461814733385704653785945912791102138534448831863293027412666039793164102397658910096813149909454176376745285936636602288797857189670917360209486685516996548552191663184960219035887071166467391972025993887543198378313688888891107776721889554162349432343066732716313681639089113600960513142749386360558523593927775424756191396983645966326581520525832275507886604815346349863536951984335872451944131714507483041554845437056844532312009201771990686995790134150575134515441027505823670688072232604609833371946541932715330531109179816875197878066166766251552683468062224954804295042268691685854788962709670623556901076218620653170840270094766834815344522737953576385552749045573455984401572516697808703736066129493067787610770249754836418345516888843708722376536475419738434834408135688200765045452529627405956547439518071602435542674921085019077606846738124843699164071392622235501156168948543917535489207006601782342683259908866110344221775191158894199037913543141782531290610982303667882773537854563089129032731116835977403899535925965414473651330646332180571588687259539451588649457630643328103835902854351813628167923191762725624369962207360851423480008822243916858666431402768248155071079167411184617794372981359835637338111962847362466157291531606874581923441896520742480300988336317097559955946713338304733356479609892975054427852609782642895962918726534513402314634965836436787540577197801713003664045823986037297754396972144513083629526722889052229556100719104949978012550908603939219842858274714270622434141270408950493850970617362978356423889655928957964937423920999557803957524277484673239876197953779297083151220329147288319251679347204407668519261515135418865151879789985656289618169874052692696895324437454389902363026302512404674887752639458884038212276101159641236639066162652485952045154708484249973226764882787445361725372837615509779749499520453638964623275771820615065480888391728027979814948080936242046293564106149474596340292902658260878508105779642392350921838445521130709391389220427081530097299764438646492398450311888217760033317163047038581790398678893219918786063352808930586419477884563671009697027456741580558113013617925638542555864978295240562788399573484016624337446165726703527712184471734542246477290835977857440189818470485830014993703451094769702526360653726646533334749268288983331328464975565832804623528043523621901233983605075594187941567021237269171082172577690521484586162767308223602357584415149367835448801013324485065674582182870676185562841049365118217883601877648606454327631616931098580630646499124778884360323529351053002126490458271324556440732572227387244487580532674083823601503373812533112337442320878718995317115911397590978684805560279848017328485401184479407202472517594273977671234976619458167277162228278467399155324191191793075000907820816681815417153891838136617968196181184360938053963718836441060606436694946447942729136175349325616882272692740170967547495596009448219306205144360596236275603572606203618228959499647813300607183430209245860189993162893016395354496154737704611866656285409504090812485251088546554759564966501133356609536685181058031783437486346988118807173794448160899035722214832735078427826178238142538252861749504599853021280031108731950247271583959875421614197880406579446924743444851605269600211985218678453921168231146685938625760044758299979685454143029915717234972661263984519639012651909024385177585882906583454486295148398149536161740134048040168163461082987034311763571560425930661879665905062958010351237636448692708494624573121303872849737781497862394594708043134805532086000607975403537095938870664991350086561824604120214872140665074775656796606344112139006249663205266482303007550862377510004455491565851903530354132718713474487934757562715995332717681530702270610383863440936671023489338618025756823344396462141521226467290712645376915089435538028399075546243186103485178770665344085690563084205462138528873008412716386116510944697123310955730438063385593685146376680811307690648662358263766657709410507284009227126446222420843459087766726198754372062477774790925734260311532369301793729539716368346039610383767335989565575913194480869664364737185202719860515115258660360162828981602618666805020335598913524450444554660609026706035754153179828727391020847249102624674191399092151925911691182250895570893604597132973272836598941132125968643092353370489188291012774933033232689540154928134077143116175837750560719636717627133802062489094122500143284907739524859777949422015401015372328175671747846945330941266559861808742374491279308352097665510443440772365090655319614801329882137536366822103596544600930573248782052683313606694918495189610077129333270675893779528926793482489844967366526300564006033780226455728166107355107024998494376449415166372659924297214109380027507707257899732048440454569711792496363770978393129275823944070470283036378138355277895352190523485226646906712010781454568267098540493944066696875015983830119211391041075978603860278228005437308750869610391452835160661800407444678353406299977510606432935291338323198621455932147643384354296396138731085990884899718554398074355010847120960867380304015132728076181841234929925705467160757471606204353338462259646566588419986593353546264971207761838919773021481861383311864221414783094448711322777176507801572332351860974690487195393258803409606782459741886129386729678533172861999223456670336822334769499004285325697308395542126602224475344234133916842067991412262538328527072169935318335479063012480301087328150491883493401191274047528309731799317630372235036697487472964925346242684113635684283248884678445150501842272603077104928679029509580868506099400768903000874436068300744753588074918309748450699970456626298175980040481976052238082852011153355198760892035111614759806964505699937818207840752392328982286388639028651783002186278839405155464457523051971257611680402319406303309024588784210671769911313026531771501311541619831453242400932341867838814212726404249143110005529942419204826215844177854713446261991748646209769386237789253311101756868349689399875966140686801315140950649968985031459704200720292262435235395678290347842538764153482377242228493338550816757916005122345327103918057212911842269723909066528612865149884426237391232841834329944389771454250494128021604047498691008015869246670927875727393561294659090433651351613586731440509206715873284585075371460809902634125148326916730722972680204307690922834523806073048115913335361372321349407860668074802940876841216743632821439700657797079257514469196134383202072076214952331213524444477955395434903059228242378692148931445136796607436542380497133994752377578900303981737537699388174941008626790412730638248657518471669067103895524132444077429498458427728064514821193975369827573964130884999611097415384500828880110977194375962836489274159282465001159318522913005673496395709212278285680075357214127544241888766273410400752112174803801890674261122254528553609367578594660651487598114995824926298825485027100916042788558350375871058479332862004820873220802031833037144140638275488491643206314822929883973746238176822094742120079447078689210120208428435978645223458777192948398806428514309487941863041984571171649630691395686381595571599817538662513861422025506826738334483985683987377942694155208629433127390962454067537618135521531410618053709569236554682268733810031563782111126199968341985121748475732370231643203310955880100298363025571249080080266620671374070722188914290281819890575021623881816028880156286074532295957543562455805767764496746596850307015028216148089462545118944832488581362484819176025697740794721389054308490526013261683439580709050273790853657979321007982279318110711656238182376249470285854825891741127663743919367576731462392794275747688857974232584674518032047835577686038685588464868634190614749458223917563434201545216665052160490404371590834506060601939921169467108766291798811876657703765510951807912408544824080344022188933271519115569372743428707372396934807262808188517827365087894742013849746768819592742656689157906858155217177131461399284571762408329501085623578607274663922562526270169449846653748680501761705735377006352172613431965428346906495005700923614598984760451400263432828807532422815145585297663621048981602355053095197188384386379948945573133156922272068759062708432549739405057119891993077652927513353514597145572910320111968923518687405849947622758020512338084742053798532788720935287768538281710179593854004819766947400911410597402322049307954722013848429909879588211637548337969916881021857806708758873003519642998354226632911218904556405567697664702865024096934490998294650482137392831439456053452942930793411121807641628674615318018378375681240887450007327768585228205566042120029536945328431647941806850207612182893063781314985792682233448213235464693312740476318955003407951815213536865561960639649483811206279304748616098552828977632868159222053098015222690582204616709707976743729402705970448046240093727625445775164760448435042085445010939637296007633016169939214589047024350870742785807402208107595177092512220801372779465747586579152890125258813538277708629036640468132964400371110324665295672255248203554595122127093749638441915171528270088729859713452781270868298195657715984229725862732138330847853752517384040053932069089436861421405916551410773364022167057450478034192314266072223121088735820164153872825101318728556965339418706332671023088448843217112399683610400901107356104141435761484007106901653778306740609076966966371493713402697604155739254590369333498263369384705948790271811118248056312593675926816807325699590282332552457524628456595905712255775034521241204274034586365203550648977457298868837188145043138925540417138051316451071806854078494411951528418770716837586013076365686207762352027418247708895610176910603692174059746749441428190524888535626484897801259288139795774038351588806360485285439029605588557686150072501017369328973182017467649404570514972961957566141670147056318573784250287459491136167665198626063032165382915200499540040048934581908859257451783700394498018768287082720491827421257979195794907903902853367102379252370702131883569011514803578871724306574421724738159124473550000651767645870964568680233066912522334242646795958372016439396516072211767992353149924020926943845716103453046720728536253519519615850068768518309184028245247676173292145335362216516964956054745632277741379904002198240951576419215586511721639072312869271058633606877387250803995131255163437364027483964633797689363293433818865571400333211640198444595812522403049058242533426549738897701293936512998268116584349724829780353104722040597734359051434271412729095478359564262989074180195698535963405228682574965608036340387488843393616434799320476179797701957107077458733046596998016947927558302895160483140606240986468095247563781834697817111034445926170795479144075033232583526947985913457096266795740977800878562914917706141298356437387687253785368274576372168516167986869370216991274697411155106324882157162869897621538651639495919553671717277103533335019724029446456568358444221854762557418332892042114135184103917555596933567221365329750885927644625518607913111127300644801172639596940676117607936953920061883113231192471489732339705069990186358181424797401675524999362108801221287625991281580276222106891332286731485474241002131974397622978435451571203361789573292065643607663951122902657204915979653142903835935370124657775269641463183536603820361755030127421969229359347630896036753219784472476984853039531586351045966972643450294627886579873836544222936202649010105214373319332416002788038885079457993905492228884229026090762942953808859772541562941491799526498908532002886909321286983641277542209481175245905929895054359122984395689783419857759588263802208530051761837761836134924532214393857410709816693662095326125743117409610389864277658390180579598630096875878384992187676889225528536446497837564675991516658343878433375584427427535103924371462533078428367077503252995226259184997651613408633259455867100011159857604731289372379815101796512592553633503528902661325689557403167532291357448235047315035487847120038531880091720523370322336872799129950776079872148068364955362530775864989486745616446593008972615521048596801216520178432897332109631360296625123985395293744724118868995379481493061105293506672084168501207379309673148475663064988372297619656779133653078355746692138054547601012149830060174733789686991561971739429704964585526165115683707761099355281606958079288028029430490755558741583094776614505584148400354405151140511592379333283187406386667516438754783729519287428389878205432772101859369848605359628347153672357522868725257150785479271236665086922179686337112820809743495353484360075118219262759281637980926696221033765592742306355587468309472986712115492837222871997219603546063638922783453267023598398376052381410408918507977904970845058124075901414775352533979341788681503824721448163942009341488922712741856828022876720176577519265160335981791251205517486605023551731555702441407808161190131725312636356888375830198160921468832070317604374953488620393727066233348140181648978215345512678909205596515482690339080908255338482246955466040096934073332093714866198492130071091019739706558070176793480944511863329102163617133986599651496108638094850979237527667167615710515714836057956954710117401367877849596798714994789510828112856643029279049513140505029585514692381710462099547401612047852658906353699704110515707990839671183896688839818031473543313536969864649410985424188977884863699922490329946746142234010209953789458956374767497119180657467262150714949293185612754536941151454042875527223420799269066942712106196102262297530141806989663399051906791303138171565766751070327178385451442044441906099834555704469248561053375839312562401063532007665742758696498913160746129846002207113213695829064654485077313600366680792036579062033299083812684432094837403999922424680151698975967996611106616404625937631649171049495874704019521028460257791418387249185835332020014684381292624235871484236967046118237205445619287611936963315404112875910438008897075162378707773120566415640102869939952199013795557415533159646246926083178263288006151762623284459435449068554298772403287857088827754885912006155360493394468790471014364537941558009916353703402309401703602940905513486650129675356645730442598632759669706331911473201124130069180037827815878763728536563326070131977337410465234228680383499329944730961107303579264048130246671594746442752068247252633312021139419752136775192576239469088527168192581978737457990505343916329794598161432555576347449643880114157480242845111367809607234377475057211599143399951717557861078207100740433079166865612830219887271759817418358912713540237003421808552853887911144435410794271112030509912504883732975415589872467011384600929620332175383176965051184701948725960910849129909001072360936187019679313424338909178654410425603341980163280455891799576676064678456444112132461602137513424343179059844998122630214189645470593692501100711942937339607470072570020286508342404667272020737993170530719666232787733331100746136560884298309763595404256946095595733428603362564854631075690231190271386786000642837798712336051006587178223599355900004227605883890985836050160397143108405157917023897273434306745946748130618042200426024387693032553844863898021054748405310872846126939972310002272641292454489236258226791864727582573660744357830620238216294432798529555826673503915795329084726581572505343209823228120514261238549678710933159524248692480731129853178655812337257361354258427885206872723868544802586759747221253592691273939635149321713016727140975920582056415240089043154768114181315679271093394874204235004262932632590563354911970209842210038929256589536101808881701950462921937986175893826791529306010611517684267335507969319363291876900930825892566204367515383729428408086388904955636527965896864131865064151560534983007759487207461411568056691863929019670159815365508754123890078383716000393852344810209243541895691422459111634411665787139915724726350433672999872264226880944824940237827022813501817342311241573582865131871708022870178744154717059484082465230577162757915150879644766622633084474906274638676525689174154513184497935293351098517545900840780801916870274236824193221703412055905356547176531813265308456756298976443719670452862508023516059672274783825057052195827811918325618470601676472281813916555569111792220135647314366186175636368171557592339749607523862654482147761098356499210919784645312495569266645393643456566764922345120040347415154053088765480644855127400858538636727472479853137758223541154000514538834191354016834808631828637518393197689748349326186773323830963296557903238505474290453739829540943669651414430955600793896991063692741749512256775194602050193708117048510791860293906568311811594954902509559922145588063343913197950918360965233473801682552580412581552188888875177044412882741752996663054175232795361310945462079721087714705418358954666355879578368477398527757776467966903685344050125727956325152725646355942691417494866699092897766775569720408479004861830697086916102842935505882494647725985799566634112015838960877400059687326412765350926738040220970418910541745808948258948291171291143036010683913842502137735705349890231484176694467334565663945535400614422922992624203835424025248828065956859153270654954929447676080615156027940997818652984966295664101120481031107763332503520120611756014488794389810134332622384573291149859319371670915094526360736017585095459235424831777301301801372994666787716250040669533668866196301912083298943262348361707402877662362260952831724274136481932375439209503684009885363510726395347486441916146997596664003385174246752374360446510436604645086186796564380641546927176656215071808589190779143737552373444386795964656956277937085830150065044808640931591354109729329519174163064982297272599286701214087170763582508213417408799600349277335692479675947900139117759426491332386622996351478766260685946306598235077087346392190746205177460970350594256895305244252784662957825595586292030484858284042452399413642115938915663990323450730952179656846475808555361508551545353164063288735994408309483385647076531252033902369574853515804069242168682391820135310580662431839814924662687180107607231411749606598901850644675920222340720351140293575029999921626420279855065495328458366769022078083651940638253663614553027328880477763743277628600579132318141600165218797850255822205274058462448239647924369805549687009651601185851763665015916837489840641035846144846840024291738911708357445436837527106797032179859914988323532345960887890592522035945997327387447590690833300658516387336877267605938338248099631068689317743866413275863403351723634314784326873703155783062582596465895851206511772488293520723370505011936447819254294473168596792133552231838492046183581019837654989313628514249458617902836638327660283332607706823329151527549300685166154426033708600734853030123628009075140314520678693716235446114102734926715587047224499222905740959292603202239251359284166571787350487620773136403711820996376109057706942670402614298281397771280693267792369880858596177561865910840768642117116251410387576047319669491820444288664837420496466202487985742981203793778070518335900696543666765098135338892520207332701170112151310113961096231758662971636408436700818147966275149154305678364965606460143080566168755695336611264114052454857567807385960037316984734867338116573664719628836904492238975956194286008380493586403647141223359629854338770630197613870281038718342778403022935846876711300007442302230554450274614022018337776705703512590322031356495562974664328087456987254347294611351211830890145186333131447132502373852226539462661941546540878538659703997904041862296108823236056468513838821758328493697690241779082112395657557399440645125526611457993984276151559460540547998183982594615103116330886495307070805630270869641139479788198246075999988222737264432353815354441078028470528171349093488987514123177380402971364296891112514006824148056997257432206372708583863141551909613451867727209163688834823726566469055137376707400027703806962846858988207050983273187587692155611063809602069246831560998640043446824494014796358570565218276415190640130228904011986321458398900713243764509885317223792775888318313895475032902285623755397095445224355162248259025873003860470719146560550516977018921574798069365887940341809547176156043108059702882440289530622335952817136717777653566900407898152874610016984605754458062226555584566265762225384089997878129815965074358031513904062767980047123656853355643328653135224838015291889605815444526506559763790743798643095852772402254396722581849896363674657571473319908922646216759450921301752779276345137751507041414513809037866990896959885664015053451760036685037697036125581487431350585463477023291232467255152939245333284263099800823497771511961992506307341509375808680954973127542047557960655217289780169967841189949264971008828897305273874237282405021622517719597095588573947881014126550195432130448055259819244193787460053638755035684084950943037657425344399730637665937420761305308405368468762088724747639866836397550609897486466095284309685773870970516523417879895988552929351978657875629665035743477042019054051925742990375235088294330089398271538770103652939892431745971833992319745906372971590332531175235232574949542423143697441498566633701718304318708106022737655292868516185716447801917670996391121768332461439002017450999694414084950504527420022171963988384210051378076064799285720801089441797553461556771403525892609755239220783318620412353594092158496663602763711163601775879692041796188696524781650982759357536821861456893877045571994769993261327457058345771252136184534631081361589675211523622919320103776019063591781834954391358643728790563702830696379593301306359406077632327534095734651416357801896840072285110453340475898592944078929141162359365285819693615022499183203777429923006398160766330010334157299488490364495430219833612465903944192383766371086406293311136206954005013431961776021576001214200373961384548062676887369256597778039541379766311890570464185512498787675069488742273705398243324340785247338960916910796165151793905088150129431896178186329028685486901996303090067113543678020537935260722827978601937532742359602722031008968506360363392373748673310477475702041465094560313315025946812495553147600397729563062003395286039677403370893067482913970767215208066248780064154663174162079499264986079992920219058169022658468037693587098079357853798141691913943180120898533642833668517031318666883914605846607702592343983846625742188226793397419456897378384653163482832769212807395668554063826552424225112799033107582023910432342225286250960490182766760664846993368402610779498829335388985805657929400878098245560827350388137161578693621201621936807372278962833650216541572392540365511780882300411145768577226567247116614135074624266875670437438033433478269918687435595825114541214426875847796807783067100105258375539978772723366425889965358523414966456871438267536642931316524205312801944994789573762417238859221317589124300581278651738794097012481976786072119522653286124667515219645642579971896637850681032835275880633881893345059261640986287300200400086816081580222527323920719929434434956350479637453898059001381708418298218883819520244129371806136819196584253434148985188471196277108725291053216323110683820776517738417467925387116425038653710754707345146421603354976190635068285520499450119771427231020821849408801182747019909396507088464289917143117746598183527386406265695670379200270656061908997660110425569551817102235751089118156746731287972686722195707698242895879449474396911454569496309695962997520330528428686918473596412477241673925052537714999742657029302931801962902145560746892068962631220984628635300528426718117397941306722202705840282830823243061356725663686235123092553370349264851235613441758996978451855648729860316074416884215957713749077792075670512731102129184019681448914108968567973303051488717295207073413110041172550884522904161526792505432417761564896352998062179247981163233379468250065608345326883046399339629714760881173377576032309026510709493770718577758645360169863728924586060097588172927885848416169994686578308412315353204963665195233515865583460990675918219333370409143713947090865074033743488261974374452412154260426060914708669426808605973201427363332651025488750309705636660396464424174007925532051836646381050279946196340281085000031940353838266266954559673972720118034599092362577918692279813734914766554606531299252884493983102297365331371756411270839419040076685775288495401685948584676641697159640257355027735361483699860455211986010662772217718754108544027138520764014786465801300002662860185643474123053873920839321998138026560899526415560462149818038396835646480805704742030234518514794971444166786841973033427256597849662639402195276867445650719523108656754787805981198672527040891591369188018165567316969362082453648921651102276563640805744396353504159798669362525736092148446432451725306989188131302620120561957544367959578889760887885746474526611276376392679635160402792076794101539652122137095398753472167492784629105293340704885507773576361765056922119650709534822493436043222792716291433720129066170134424905945102577488306065594685731708813987933822460149145392171086699300360859530514873209333746657254277860139498080880833526248707908604909284040064867518423189936853059126955494408073179157127388665584561091883641533854628921043193375643633818577473899751083789828174662394275237128931289896674983803996177832645249301409852475824097912331694493409266659846201519633457430617076614019490310837397998948900190514725257796638258984323783434271962093120339792696426423517597959248609860377005952826562624756137017773607955818621178750035676397498077226184401890485292100312904701642525291991271908552939943775325766757893626379155205809010682648573758009862625686311713384414951877549446638181285743702228140735539257654125901788604230183280782159219577432291138572564879507038668872087285075143073554019407198642919566126779608227388282043326562145124206506710848661217632913310978386634014364783906245694601382044888813288723867869056930021130342440231684744960062743165085542795807436878824321579870488984756489270330021797283721395142048223459234212673734977494996816132715595020897209349755569621472175413769172256315965618456406907331663352897310099443905564903944026996084038529384259584865963488861812322361840502938164150887087142073235430469587627048220303725468010704603606099872358144949152769872742678478070263433257123090420493740781379536444337207997302174670545124678474190064272497545685353992141092914334219742837810865223361393039939631192715444359132661996189144883146914899814752625569972872415196383757380770460813334713821060619534400803328679924147869769571529821469891257880974440744204445673867397933430206378497746372732427692598262200243317883821634843819848539835331571401742413907718752331963833406495111051822939269604616950683653517000807524725912749266557116587700483099515509623797357985392875107087016710472714501785354674368320629203074286757395286598251335187893969538743859743248011657267125712932111121388039216063109626313683869462366386932033743041430807438176786991351833995666323532132787822214611673776928902105110712816846332547794919800626718935157649283170556766291490437705569076837497008248499278500783625250669388957020891451253312840740598237057309669337690573030373271169499482943806967472484488092654846046773028240114811491603050567292462669189287508903952927870906589637638900236126782959006360325434691109230381405864533056363164962442337701827915798244929766134945480163374841384463143123797266648634742287045808502771150389164231533120730377194532013035047794790409680873026215599323874417307829393325035657381130064670076365164455986278549423009832457874294003283243109528984237257154755503202674713621390343247315107558024166906636413341405263352955038330527029859626156559596769516440120876193243223818168940125049829854537904114873910491706437862155595252180524865433710469382970539744345803753983458991087177610152471880725130078354854420597468482663558881054001664128222525626551442054868966072009528780892101243820273986373436514417737437893127957487701312164739645751491843433175008135640222840445500687967609360748808735030910283428248517062638954935633673890354835687798560782302109339257053972873965377901691495808821128753627845237849478270118353887557967316876293989010379911644355483754786387060469166156262008931215007088576165254802216770741910421902184527113993603391429902943864139211153840808011169855273789057600472671966678107633373323637386100816583693963406358175603364450718233341229448234196875515177035458833839941397348509186920962759942594280493017142457782129077530648208254280199776517131074856099303688813044371723121896571599291833506713495960397371731300746287645177639340650696923208399397359326622228494956841497293665759266253735293221407614267352020818610509962692949445012128409922873151744747496990408534547657911651447340987625842072906755551586190946173144710137245455230892870674542488754303898254195752162999791413726068623956600255764131151250962313753223298999142031785355410354324839538102071687528531241120387416953042043147961185624300685029711518401287482476832469512805876499974766097352650646896154006891427037213595112252954173395359789461509896643041998176102221067432654055493893945587068229415827263698608635356013635323413275182192357833862547742382680130018245422441885139136767873066593611999117244566652048925969498630081597947192028798651821195405615424734472352905800086249837156877534185437244355487836378257540999473526600087809299677814242272677498312580535748106127564447668722467698735982805435882547840019559308623159085318078477310759411053075932497634834110562392665007348218770686098157976042443508066269140323962208493000064866602741921106718853961427237437508721332338108398393312423626472990553763023430354468093793502902641912838524618980505426629272083385759888121774754212544318944861196290270056382900358355928085152951970284158724850552050512064330003306841347566194029895309234325450359866493249564268266283413955907948562101506958497031929174641240072305923918425850827023294030634924249783513085795731940055881117523694414607408248163223824011758647859993089440772118422363705583973218920825029136880089421224768918265653065447123574634196395888437546710130068937242335699944677710043007990709207417464742012585442041096348816960363040319897573198634177315011124198396869929975470915952067306902357965693815557084436082688012252244170616358514985706431257853123403879019502112877557564007883329357094798505878642048492871647993480396790882409606101323321159625717639970329927816777245644834491654993708282495905204931864523592993353062792654738403097366050197886556140973576757923621095843199455305508331893519459771250683886177148752678765580520343172132079721830279231655728696431925119676236947377881006208130432015682621420181594481083753430374408676118915765925896694401668985023345851320669224947722651772682432853536140843660268936410835412008896548177336011035212927210586838969073432407296456954992217391564555302016365910960081952486579521160626251968566600130705881851920837965082390389053334415466888462879691951219536559350310486024519630509838042291322164149710477712496582417367452209125612784367249228626832694778437285094525605075645919418296265438256700594004911335725818466647096244981468635719378903252384625989832658855481110525549917686791287950562438834124384457294465300348887992792398316169522565980126341911019573567583031780956928936922269954676529382459881650698951121315512453595993940765383643041658422089729529561314724264462967967629107452866240058169578575125501236890162286225733684438287630095013719170445311982795546470981259744858732402463848283631595653504472103701586068803717154745499557894357360748194593214704825301767764637633315160061510468697839824407538158447413724776985284420559687161126012561211771024472477803112524671990728767978794735494371879274078440653384465719042372367035817398614990357900797207873603338747371363773231279608363774695687245341567945506999627830852654736558755400051011973021268237636244272455872945150663619778082771416743490890890473868778746643415959564904041318233832437580115286053082651460332774137216567039832072456018554644805106548835239650108301170288087373723118913815758191573525368757069189939503026628577674195268461195560660669734934365165189646241117988599391757344438281655364209054416938164791199423940840914108675680456443744498282382398296042215503635288508793810205012895046077786479308105005020349602023710339981564304370814133990111173010710781690898510563419028034023988807070271526461331783964642632931138900549075626048245604466971506722664327272493696695803379646670616607401812412036536186673264920232339790589044498554213635077399587794182756583303083330508334944286401239210668387587808363844841243111255449049705208845660115483756920650766976951484874121026682439520675598316896317408820912887397256925879986594235800985118920622021784028944947212972183613795690045952211432157724262492671418626620070477854079888758765048135960195230231294782333015990934246923205630307375764650468529652018271071465836105982966150059037546780607092166590527911863646784912907820805371794451431806022173271789316624815200878928134151882295681892022404156943863651642778499304648292362533179157826827333160369347886999538855253823797109459886781819354167801229116950941167635251360886450196857737477533393946866399280540975749582181398672944413535919345736731478573182337327627336015939203997739636493730383866141729786903422010491761352119885453020182179428620886837501343261461396180202342100685887051676569002272749296841010725403301534306531924296121225961817613928060833364258604706779357215564983465004212122120190013940908273539216851911769338138439044863993664191713710839790292652763413999317029772676926804573948089638666495373169644089614503896200334781640064559301729811920590803790919889512452125524252118023102399493681256674715552456940718789800632493550136192574750398947509548680228990610935173268275816696768876225727676054104795661309592946871719556541730336887479731926120322638937365564834332292119796154545077156843224050949737172468229489119890367333684836334032885565766021326280195234784854772089416958039808953796845280750093162224107820218395438775787311518690019814742846578439951779646190341997440429741579562434329375243070075566868956898387436305048439299277341598031757392104372278596365925785728402604591215060992310244968766631535550284598447320449958003614253563082270541596272773374992030731159696123600050479001812425951677909004589461390746330865018325499606745475831110968953535984652452889071404101578077091558305786803119996804375463631093887158160676838208087899622733667101664966015967080351541281862181066682481847561493173506828787937542908371633014194382307875713977106139611813538032001906620409675441261375768294198987475595408472043753835076327008022675863723467345388763274754255457598100225081799016583401455998735756749895909368646299856955723231177390621830042359358114814664933233284258460502135261801930384128844457649874635832436867068690855027538580657319655255344835118287968815945092728779035747285418150211697307688121126068371734940821434201357211993330805861652016614681358607199679826493783208882502670516641800887217198511387704220679017747915920424900781533846690829133597298486781188008811186981064328491821227854507513341319933255261631898995464149736904523121975720340753289452249687343794051015586441498066629597464721495697210521861447126550428879211205106135381057328740575948767323327803588926550100347630105835116310083800145831730837688542653878048708307108329582376350962386893135788543725136915826885210601086362736309961418800576054296756081054728577829033221826027137824284421583187671689078618013110671360733021408586220637878723691980956131392255812574318651008817509553093404805979867219231065392082476880296731597830945767465238996003962973958098784409052451703853583366308513475329909364131373174501177026551519061523725286962662370782790278684990260926485720365393810420194816732513205655344942372599648040056777525180491446285686544131645525896320542176451431967620717575340718617486878022676431785232606407470200243783477936203527143884561077148016638761800107295098172141175141061878420182560819550941335980023309364874234516338194809175969186217674022856298903101166769425899767465525510500890958971763748185568568349753786595322490254199976898248942425390520767492239404727705440191626718517416018364351318905455500583339077842926813533661665939788029301296754343337954963961956349400518022662825711175607898592331054067326103126203615715401857520698822925989327480049010587509107063633564196360186274400759401965254302514902788183961531675365482560008738292330426900093222202384364016329945746543426652638640856110053667013481365992162754158161524976266157922635692663079344811915469059840149867264434908089861360530337670178688246789615889533044245300371879269728573551949641241433633663836397799976991347122060365954755139929470404530864871049466588947170800390695672911593082612069860268040307939493804931105814792165957244009092595298308336593117521331304210876590435941805732713413899793448360961943960178460898239857450402365386358996629877002089322841134750923716260999253032405038297870875872019843607199203547980030971561137521360786355252976244356628827088621302771401006877046113897232183517130480340447855353215748400246675046954756048960160211496804678715296889094850738825825794524050096193794421486988589220348122870064812168712611039250635664270560442532626960030318002238132315917098781986724557268516610169204215758727257604675882473053241680924639548265099125561885256169870630897124928731291467273339158823531233419760320767601513374977048568674081092490896019956898194102845117608905180669349009474227462450016741496657171246561927626318425176022412209494396721766758237118972515277158647977189228060932349798366606457807617339143620204379352765357973796209525618686953715715972569352054486396427893724215955156174685791386649899292618988773648099322963468496891977200505879632503400905854322976517117750493989738904472946131820919322797356628975706549693932165576375844558517051235415062174068539212420200955736815900177152682165644730416497231183376348239544695102368576596089271967945748863495081375036495006302128574826408615628874782124990039535226281757602665682078320386773445813436290772403051529982219667051921913426596930944295360904935928386758965665046156284156225277012698878626444028077937013793680396265924516788842533813328384549497127285748625038841372026229287561555294043939523051406658796614841466902445510717550095942357740782776209617122789072755261209419235617580711750060396461759965716583069911509066585976381422211236311342258610688025793900603953028091773555818958066279243083761132605436219550245333414781500445698117788943714138842805085219723043894120399136833956868250205361917281402023098069484848478500921472165439306070110310700324645282888892772930818942195456228854900338371014820381061598591282936222451781833456368946041510758615295231089236087858607243793913245628352583999987475507445359855916696551017777792069113157901609157376875096409691139402079889412397067770454663978485966750420612302968358080062767398272727397108427410704861232990023899206353352005800342507523138915372474942533925157656693474976394327906710163412807981625400912354929630347860152380620646604142003886588731859318265407943799678352015402786795812111000042080091448404095705610393059699707658898797991426654642601051997628593227922084074186508796566403148166247621396205115832444030999375671559975503291198602173841397000079299151905143319439851629081978227167771970098054818958378912608025301511621845587543266297920085743107607974262738570395035021476776765578918266046723832938886789632044166927569811434666985159720621332843577939602626239074516506454321554806338193863221958133030869694896394731207489582409736394866048650231197380906810964117701503582268580420615830690440695436356943831708111327006216958146350179802177608205425187001998275058651771501719084980374680349711797485153312318989610373531792877165053909917483048614871353357301456298918419800533670437858788778659775580990653549399695140278695113661486432174255387230662398134124134310671642829325246438408439573981495846170325259855953157504887104518728987246766749996310379829423137780768492659957536506592451314366480499474719139231190848182039532120844327501838310171719499923793326595948590876171562320163322675617013252177107941449173539452880745224131077796085728565130564002996381501518734649754728037291764372644929432590573281858280937802926008077294292238223628338309273454158945594261873198029807950961189795643350906805924393729743777617664811624358537243806906280505111956321130544943804762318690465107270321963224030233415573154327496383568187075460262557609654213524277865696680566523416506126520767898987465971848136499844808504049238982565756100357716112634607930219534066821852822712697331593064151853931858196351020788308661238082935823762778352651663463915265728974457494426808443178937487832168955979823573138965957414840149476811144066217704775662211073445186162928149002288465211615286112440203685628733980731292115899084789945866301092625156375661836989316094164217803095189605874428868317685787512704627634629946578973593153107474365442593873603268864872480088457897790399513826085412495138576364723559095308863062592249421150100090361752661071138025539226397624297530438465756085571461230495559203130522797115269997985413717800869545211456712633376679209766730162773140690606561350511929910608573746282185211077534702292875982250471964395853257494904942544593832818060241486844120092905850300958652873205315721195335344721822077579311950444717148350250379799707561280700139453446286559212462886574567070795877740232454676610739799076968778771279128677562616157433107411454407445601443772351687303118150107159153018301759898525936992065008193811565130041225708815154728517999019554082722161717177320922732430466556716053455231709782518080715772393099954227481893973501805787436763435842605502512531230896135493856742276587183349588068167337775658831238253698381114440088543779530203229920134616896552382628596534921522320692334994432554874338572434791741527697065399359306134080448359739202537717365452006352587583124914838502351105397647097871138780454558818880604170724699357990377927170911211049171660270065596097401198295302611473470405819779889636686495019895608723070943368296116385933460815005812516125643996443372689446895426901094576918996755432925054641284315555251808026669851696051609797858526955595854589238799406132796261212004933902548572924065646467215467816933985568139031164925977012133001501678578961887652742617548436560973284308473665325078179998395232693240357844060973055908548007549613148652651598482583376118706101946287151395381348077656104008803892542014085139884499195205607039601813212152868417635157592544472639931974329584550109929231837632281453123666420571529021508563779516605442882554890684979956419907264749578886716218158762752699202306342001831457330619351921903064915072210702852817663511182786394717894648967013940982005215192330825180385153115833514675317525448253521609398901359182024652247061564482376465567820436386953829513621128603589169566528882949643766193548665337582908246274008153400858239660333753788435299371999814569181825326650582348667968435004053506851656391677908384156176694645878459681257370507985147629080062390645978220941593858199827798306293658726327383139301198654379239113393721436498253113781652440360388227506194528232680332352451678377442690117374717567179148271031593485747269677368289059447076835310967942075059047960172651367985337329684769105384266321854180773134041525594906325398061765335575963190401457379211503524653901165411752753827538831609094946671782858474588260065774875358551970937740915912736193029636407256214804235684358081144583192788800953688408230184898990938713684284654822733402223826941466769144829609630635873700866259346844389659667555631733912660360088431076606948323281336914960405854071369892192265683449028695638736247802121236313888324712250917087245809875420633144696704214387489015955909761629907080799366854008770707113326510803666389934441622780694248182732226889778080634481222080436852409183589254391957659491132393265348080179395727338442868178320626932329640161983785436378683797394147312605628458551951416093119271445240270378514451260722545698284482188860494748661171553534160427375283075076737368469726172569382619383310690815777788937239581734198374780158251783588802211676316889873473494955258982276668171358574898308047490095811471951887024430450458517024300635532771987713874180658635568124815859135871736159142681643822142542774864926991496533964431507110658806318550564129684294564209173670808729796309773323169282286202671963887345991453033372235893937779861458917667481779700702593514195016619347451696390648499695201937465715699011928516635412097843823502000471498534910691347833847248761207666859181995016466039019378448639738989378497604107404571610432912921687668247530563548599349258265741755604332669615740095290530416039996584258247992479352063384340421742981247525706120692206142188612210419698877035514160556164328979742892613544096096566333083697968256602238885593295296940681440740289753219910598219690230399944366944634986647544123751821386431149302348579601783798290204462231011559174913962224389823029457237745894117370696077531239308728900608762716137151415357723270329161049402665624489773622972272749690588127021611524797814518967626538193693703679237163973602142067781815358931490081314400824961661131249780444095438119224218543248467072308190455355748115766104594983002000709117092397104702676373805807961672453597699150178496945937666845773500131907338707747090553248555610605138004864631633706156076659919208224921986850848677831851592917648646358224729083718592947835045524804483776572091412824490725404716515025856662636077142716360447158797692480804271399648433776872899440122689318372300799485937720593678537524707661182157869882296193093527882951541455614665615683261802453226135329771705211880821819597363774619880673434282465384970605382030946845999064490877133683202774797516925571727101675673272999606239895124882436411070645045872391916333041263966014631539980642455535137516197705591653895632160915392129948968833311042711359052034271623340122599356466063778481509932968645489396338842989173003641716429900193512748927008825315047761971550112081912220610837074929141471642989758132079785201388193976439648235750589750578038201167183838463558388270105090469265649176005242301867110508208814125017209756235577810540482472485844527053640250352714290777928891090303745026920001435595216147729420157975877360471609885780111161622632346867736481689113929356122092725013101151800293663261567577658758896242444166581579560529657688254432002078925917843393732615986491875977320027141652746758336539958706507980587257255231457724360122114345344729483471863368875689605049009778778192801785594201301689414440705482162091210524585196193998917958134386291204834067541951058160992190625769753027264510819147246920960156423727165119178797411146638138063025611656870624699634213214079747116431743178108221693424175744097416559539254266346852917582345038418494522407686249623309965406325368542675014581827749766586994990793428807997418636291205138033571384898161386808408849858229137568851537942508211805243425061145761134765654698926479954583930058919193753981389506539095774023253842965318324985689853694360851784717210045906827294336143614628777180381052284838033833386750853992862693665974956086136681418363376626956391381856369688758847601416476351610389039026498077175119737375547190064191221149106391098367244461169338372693709978527415807697987753107256982968758009982062565110183737073560698538468665276926803466799291066655557136257507080374279219974624743758094225799640261675020594176946057766210328570335899566845581361081093851768101846198013985194061648834562324482910093330747570980280074988606703482022877440472016234672972198886998552827525642374179577575107994804028080397049491253337874446159544243901285295277345611683928925453141548563726721193890436122855985248546793207163381506434112240069076896453460011930685580170098553771280493236208856960588155893845292939508355086117931728412211177762138869399251634939459602561814777837621178782770070426875978278994917368999805135449562128916903960343058759547484460366107607152351095244212272268238099174647484087425364773046937393695399203611020533031505120999158672300058569728494660808643356414005440210367658025806743360444002243366885929606150375732974633493995405744952163970444598426894114411415795868471638085338827820985884041510988753534783412422846491363019155357052562444578203588915948193867127821577445016046403600535167707117275530036256263228442763333709765803198628492505896796799492576039829533000322311072321823910939063264374566685387234501012333864495516220889397205294459512005393158639516118166647120018635994844985146408604701281328980693123334366975263384794684285883526219889353961111314508082132280454309180379131137333543796743868297898907317936353958533787485456532222718351915785045398095721555975936761470387148860552332262568417290614265655479295340711368402275466558934108945763897775908815995768322606132378637485675229615634617110504935976972118518381310157658545984721364806293041838730893315095356936222657201999361794761324783048207717628361029845179329189674063624591045812012001028560189402843135535632014102606610779472610569326835620278744499869413869679265602070175708986041067376976868891806795711039727434957069132382258406847521503978568063888477477886020961857636438344975981040979304505269630561430222653911436575388922504270244913675465587773453076270395041236992212288342731101762403491020825175700459248219550737755609009152049027261056158156923996422530268773672717946952453715070497968549559491444885590054620211039998985912191710679788853802181781174855237211472210204467354432338846965493165093242240120865118770497461922753492488905953245129278571886862987060877729978170762619185745817225591287714807905558611120731177280471086413601939347513932997508770415329885873366944570131582986283492668191043936010491816256614620935048203427120132793310717144274376551750203976691751605973422103118223523909449181204466089646098133377377376401018219080421839295581916489070151927792119362042043407869799692356861826469952514943644549397056807027788994259245077473858380392493279382327014564906677453118658145177058238613528768669508126441113905405472867601019043862935368350510033252549598727236259622815989838233494079384558161836391309694139996519150421442385075294628352322747901470803150910391284215823863355390780400958693155164453365446631997033057157042075776571797779022922125160721171870402989686559471240553583971907667102555631646102133206735617718820961230049167809363878588593545419785368095333027031268430243236399788658683102946289782157842729990334873266782178403984729092939927684329760502302013915753430917555932272078209806429941439051437653496328816133063238956959332267602242371909943033709976723237028798098032127580954744470045712410768803480514800723830747225624272799735802979045995480989374477967541700593837241281934701342637804035838523969660786949922510128786368214544941072894768270126863856057594106557608841805746906279221892847970683243423122478381352630455444401891458416858443900614458486200125510615198741508050238256928894164658450571709387760945172721623633121654037247099471784057251505457873937134479011501114100137520489256603598602466968308531437113469697608429736022898128420375248404886313329071544928223729685229010624934105975181313918227683273383390063096910424856608947533090538079763574997993187973700952491513951672264637726556947174686197561670758461017734159117373127029041716360729283193815042108220612653104342712357693058910203526150914969295128367193917148783723130802514668072065425057574346287955305676500515618926799510408474756281339650287725592679622726725426865624791367851882104544644389093368693845883626193799500024708861400230280594325201885165252363689969403338945046355810831742907803512849679663405240209622927131251706106553484765042805391324256406817953151403559844485740691722289487502217584992678245616411050083811796130598187657792312252205585237575475298987125634221277788387964068854957112087696672574335466894283068572255288696888664897182807888014976082688806792885791289980923979600045337925013377153599232036315910599436600930331311213114187630433564523713953155803447769089263290441759149435413928203435589833918627343728037598551204132773522477060305950644949875183355113950080705607424912587932889426107536411994863889673749002888154066489891479893594678400001715751088267694597169390612750619242972553158258693341843119454657297330058307817699709008328989272881221441389091367912016392221706605045974112936891565229933290350433047992887790444620513808075858673175025128504074164095630053422487454616190411487543228239739969796793497853480442559876192927010650177728260156638014424851485894014398221438160778491336585207047746031722330392738974439718640635461231664670396430092338052341802147649647614189212491561363713351735273799349262747561203003548288690130712055642079376084251432136992340675517952040200439913628037266499569300022893689617126332680238655973120883997395284154770845383436750458228555840351717976069378569541284862624336922342094260902485066592811062703946000709065691505362539218446091148707975800994595990734861499765594820715538209829338471010237264525576590033339195900590983427329856358729801302041010736584082754576198149212238547500102999419319184047346574862206885078560535837444345621750567721075950016955304738520748060190653986780184894080696162990663326016057566014560243613675447843735147094815121866405828133301839641117622942154753760064539887251127276250428458233461404999955510315505370058630763438003925662402798484719533921719859929451231074840317545856558883601910128921306303072376437151391411325266369935743817455068948523831673098130776807283074189634747369541813784962417751402447676710251544791137451498359262649537481881824533446004868833942561248801249047375902132290565904560556944635253903892099036697429211175543935843096444774485758534879832289090141276240849543026994762488359531575312570606274605443401035885887168433717398205546113127562769615540371733917967753055538688980862716253064344348256828408947532490219920613842749272564439639213782894795324029304355699100985517837505129786517443646365158601565827433193382280814706576484013912095583729794352263736182332017113401112630670211700728318258130850192523985392736052279823377530618661500167386122065354907398562875444661416206259345094954284737267324586421894814119672677397512005248227845737384608869728497991304096164214025129493584232918323842144069538398534117995741384880132631912665118259331521845211553024492101439855280763940016209478694621351326730258705056806889716949976791237846604413050684234096773763485618455915051570922809021759604692427559572618095661657406485094902265907504176286023184507069967309293389665130004958455808892766732438273690599556211523723854897191197995854310906374898352963792270440757698702854506693874422264345240098439703579121754461951517575953450070491801264766233554656655316830099452759536799596595430019417743642785598454819188006113601803635567521963178748655693189087462943399546939895797869103933293953399964119350028936769056795824412718020691719610443381497528435610435549955707139550421280313935251915787216877353453257804995235170614577699296571516108439203359321600389693008798224407284323160023159655725455356689474896736148448535035647704514384951864547693444675511376083441522550527690482475238157841969109104859775424031254314275037090869270739576307737621345453774656910099387949259410565392436653749055830164936924698116332012831602325649305032381926456380291041164199444121735970701660366707397457434310255333221936653692733027197487312483560222766235117542516518656866518849791580908460328880562095568206588770561981208983434811561534104888195763030892975738184132059947440974472485875433086458450194767968554361179106334135890121921802037166648489793054695437558443701015279165985998472843579051841278330442446415740021645635934013323287333245568919782114893568881068214085953751762212833617856333351318060937584545046901721993195139180257291315046750168276798169550507440905103684372444804007360406404001347384545567638927726581602438762562015260260791970402896599228255313153776466004752335426621193047075013885789041704438358304812774583638580725782157838224147378685512939076966063451262573382588738218630731262390625480699369012518202423849218198938420159906733774287452798237225569323628887696879903399414026873837915800664178723426474565591679284029748319443989338245880797455523575330246624761172474306090006939964680624129858592119755313038647812076198542299474366742735652511715943684066743226321350310633819218782830012307152359876003259209810895202486094242892749238699120106122602115865521219639123074456800117302541217783759847309428782847053065641005233767731215774607426796221668334445178590277747180140949755056438346857833544004064103329977111989929836375242793720867583217199051953448056517689305771909360178509371099276679224648404886478742829529496095925439351429204858945373069146276174288978427178703638120734024229500430850121024735316251840109272704416519777411792569208052164559862263736519205104860607254913979140454997991910819767238914436105680223839758072088534620480557117069051542084359344979577530932057032997459357847601533190921797192227213228050735811209693882116350579919522889093728250934989028179139651907467092107391986655749570841335923844011674724510678008314776882431219092362395827391238785037961170018851775133111695961399924799425504274823233740467718183150894339507157318469849848128668448691428740714824604552892311505104091327907158813562999134124277492288296918691105780459458088407295320944868283307252551732805958963902660560265926634419560315030968094944573917345870969011325419158195894446204305877600686414203021033804377920530087230599374170230036393825476280213641059161588358080511013166507143278553046255546008226568626178976141946049928417919610985597742551034115588648104844651138504899594574352119745703857339906630110874292648000812690180645858879485885679872818140168296412331460621774936636766757588228878597536674809371011030574598898512361594875351049064939264598514901082863123329844751940697058373088811053601222111204317605669932558606465338868958954943061575568002041084801248950759815947193967341488352442524580110324188716943289787181711019949280704682699506633721796372513304214887168839198386525352682904484869850876535523396807879288579914482404635514980740290403223858096616043525788721851390150435543267889022295058417734830737363600414922166931309283496434630126888146013678752823949448925753566402372260725125916731610807124188320738787091640820103435947388347651501211203120750698831546187212288464800531328159984161213038510674805073508156584805618009468612420634657884893304792921978945721778721716369496329606022297368507106704058696154083301865718414248137798560594848268389480941340763102472051775746058594777606587510967907342622264591437807055795132892869154042609975705241417462675842829877934109954774526455231568447980294400255079482304184895110922684738168312164872027786414984171044140791651946490799972996052764020551575140056261042777665868296176892132624037949443040953679045960041950590034501909722085535157381931002683175949169403725524214956287369364300190589953519663972496606062857438519100397187005871451564049638535996179785006118692573311674692329210930593329042693552645035859932127624659498577322326007632216428669282480957823973916167516586460321301365298748444437974447718737975187173389822845152710142921678267436133840615692345931874950417648608973124757348538414856513560000021244045903310258164037079714613552931881689833001379566572469325913982859121684279291623859668751124193775104270917014031433342659043314804379090056640535094465170660378451992122690267712474813994378019682536631666773199624979179069925859030088138016556953721181979607462610081308921631986905023658563069891585575986870535864240299667051702305374091234923806211239614270854988719370440441145847923853756572727586835680128823184577566757687470551027744770356472950325462001480555329267464206683181525310432247720471897935116517600479691707780007324268594422583036090728714689752913356340928700024248543812695420157710619797730431742134204697700776709227177456224457955134778698791764633962334827988592513360053617743430065768476806802038842561119551082826286814956138869082319691071877304778042935464565898415569448766395848963366278589419181688441903840517654388226541349676709989797923931220799734850770972301028054320239617795637435131716994636729277297433706054540482059358465553637834090702841787029405221768990222902002203440086703125116806774263266891661707723996771390599370642870074406284167702326511451743804218690419557689433582750342183824057651365185767844646873102922884090460522015499344191358838583380470025880630862236484425028985152949421819492198644543889641187710358002752785460065281686189749114340066477179354538640238064008580338195574270548056674411947419033642950785970924927449035492290732910653095614646704604375006162447710695268857259142933139220804393670987229327712367673653981838636848463897353084931344347605532297566353247310395426284211177760316597079447331728405363643673473774865416482988818187952206156149632708038264354583183845896376087005077184204896186307764736567169335391079117930894258933740045116843822832703599675665785249930980220559937007239157105567759364590685664799192963568845367534840737728972229697334243165581044339054719538213656238958039500781642289177604546294552702795071720336839097124600402649976967727814113706819627343649051816207365949618680630693651005631100420087091653266024293139804239305588045667810444661954646719505260358440513700029974410911884063050239502316716864060854018385323807166223442420463944632039013071798004281376489713272372557718752151499831704624274539909453595648760328161358167914386428519993073139090957761090693995486091518988106192045216285282211102262473939810400577829302969096519823038046672756571546967428029290674618307555984244647322900841817533760339342511978954008520125727268668576630030538561650667631043446298294314071768721018344143805636372536287940227079578410624815768371912356313964439195611583074544929804146572119124534178723964402603576606626494461724191917988835140793116097885126816365463032831936344188734843499139838690196299779869329906162679948704109193528652873668021216829089179692185810917861357172678090771525727525692058365152629392899643026116727105641279264878527801197866423512664706609821666947613673411982657838844013996630735340196034762819993917231040006222194677401570748517499074402694941654748573166655925080369996882113215081326763797812587816555206503960456569961036992742339656029684136394929157169016997133676523127924437656362441233753282329405343793156847366291467165330887655327185209144283710360340408994511915433315649092384136930666991206400138516943363986268918647230477782555829750264174789174826883205405764178187826724641769777754912505801450950368628980096381274007596559829819835578722125569796158732330903797755674008686006799971633106875760222601311455819681408021035481427210975662478711565268413115668165784460374019062582553722142023615986854180962905438059631737188405388883346928226977163015135005154694236453917242712656393595910389638700558209137520648030783529442566606806377109514854176244102452025715716862796281889538278624068571194151243939150682383750071329918980077433022142156474855279859756341619983125320257869432675839655215677575274497724964589549579095999074765794886670036123415960807197899598752260961967912636458363002157536969881620681330337516032196998523938287870292447572710383881961959617866065143609097139236462461645020975447266223284759010301566881850713835275508179850902543823648479140261586598099188366240853796783534108864618685111598903552788544745573032167849647435966441272753075886154034897273933394349606034176601353633405466820997076978118910269264092380093866482406970645021833889410455723044386236756496599821716781668823668481369220941630156347327021097910684956489664141532963813562389985284539965363341231676937024554426597499047152672525649881200099130999628685723290892279951861553452025104192158490652842360972650762932485146499351830400704934747764594433968590724956740890677434438424051813860352571554625042431151929251157045363310336668381748249000209163940600249324897517944600335317194271216021383548968950084679404438090781767377479711303667722180504242519902987840428218426411159818992740515210124543181139203328644034991027009548933422875895515578493662665069895716012088664984305753876242164429324151029130310228207705816165339588137826009667383825040911405434696944817939578012096097627254772337140838733960552363602967082648238385031162453827264460899759279720406646366229096979529797090276511121588323452682779295926247911673917227172933043386789810472791058898777186367651178096620542469021993045798411124105419025207682481663497493561220092608309404341141157268402705147755888971319914668120760328502734175436251629698419531614854608224972028658640179263306235019772346444030804158617854643779075517917188344998550766181216498096887206350197733337882080275928163769336758946339971388106601051558909122386512823665792785522515319003607671814677251442777643191511678267079112507171578052756235863392905233227940098629507675498741833361875421278841001404845308638403814823069187189163107973461002937651077401786158018166668407366230773063470621696648097351823301407347347620330422213416633722389508086436580236388847321768364793320105706720683658943912886572546121219238237204176535555573878845896741472074232392401781065957090161064771104980061256587877834073605913380370502672652534103095308640684690270270836881148641203555071138226366904488788126061462633189286536955562346546203097661682895027864183049244551020112627377612370807386346319280761354843774698211522121949323916139912836626668677829735418092717320498798224067022391260378069429138988066044283742612003486187567367234884116941353033842293465435310890098552592992166656553325791403932209612800739143764780258079460533342378876333980466357176894914856691867077301140683144919428890965438289753950575774350136197566597680048537323097814274607418185368583759214211226093509184276528116461761026622355359539145173197239118138611574637979312587793674493208169744992041256976863556563828909597142015386485712780354826935843035146475660363197669062204254505208661937793375052804217877981760668693853611628127331021831253656114530396433799157699306871624952605382206798718991743178219664409984242366592555626991745361792918516918376942250016686784045901017034651800863308965183663615557016820652945060253151377282810715691119880439066997488532725456197657891004437450367961559692752277818464796323729860998960250557850045205416125841366912422710684108039742150589521322016474307049096601726640584735011756547961353038500503604212635201350224986093746907427326002089254606538876934292575150627095070305772330162936192912418072526074460021991532466004400216441050678590983480434984749798429713763018067905172867771591703632968855538198416816565662172127801793897999347917079089279768812878201612206233762518426464365815087284859513261200434141126465811574260200847959933301924676808723190021983001075552507596945955672200122471186525698198460493657795922996337251472358368842398999970101290468160827307566870815042223645703120661361287315637261036080266767371279537726940266797754799445736089853483431179422022271892737416047100192250249115188112900101252709036703697494781108380494550706556375183271546594004908754099550428204026164682171677411877230401973270296985053235180864731383561563500943062315015344311845898876845178761525444454996666681373909827863911530626057102106507239667122320018558504897767576026368669957272448612710619906010262765667022993613258059611365041369705988879998407124245057480053344013777981225385958311447496172620540223025602931097606140850038873542473194504161005965757854934723876412885719767406193968436825186213280249535365758419125933585600589695815064893676763222854375213878747948020985414387328503201915607227952863285942968941797298466787010277293061072237678686041054033376318312048055895274635098106530042343117850848743092696848605975440151093787063663456091900956025425805737995124045429240946552554413354451339130243175311264508890604250341814384410551136675724683413143636185887564414073754121698807612496701948555717789122173813740089501582069662612199186668211188630129789219680688818742689523900726315858133949153641769528345821980205947359266605430783527468949067462582363861580323404099040885142398121785019705378002776122459040104369822217097045581689070845394575277192680000262616744655609954288768738551625130798356727047641984738478835647531565120629384890763863331435994325491623228027980142405091925705977546091822948503812018943242729407090638693634356283773922007358593628968314876354507226449288931954810021059776103844184101626711836622170086895207930244753746467827504264728732899259398871015635447236945653617415116575196986655899071988642805920778952870830696191730917620715067442507997059909232499050504451332836434931185560151058115712046351635695971653692930156256454754876713003682479256263608983691775245917043577294878965521303883139693097801298557429332013903705550782337988427335327522108782730207421505128436208791137766252504927889002135575670332797783745494079851581049058692746733337068521538210431638474202339391221422589373437905825285203963463350062778298218642134716783978863991132921759339394198574898428537003871017601513142371905054408702227729981435503142283711339052853426232362267441992356629901840519805026391106438303855930711591207052673820482370242307874280350838659581508957600109979487618568431881922304557678017452490124298625112584202907444840444613259855653976240541529839510637827082219985857504867165863119998322042172864170103071700794331318613937327616095856039685167441912164977252947258010707123881104445422628230864839529532355625492740787110733341756967180865545079444194521498390805838326019546798530793379019152326842797442364295857064215785182471881327097365377521066974002736955930468337717186720591354235956051366560396715364485349173102069830078155542872130030232828573869285698104772376049353637895521062547854319968850665146996723577659821533733127315929870647566738138460298456789100659317661509462810326166565198599269521781967506373163779429063364800017686302273532353303416211371955978995578380225298787756240465327409945332379244854824271853619554130070225074359622661363958751641726526426718817087853489731927690012221707196383925178737294531847667946029939040380609607991879881604772722539292668105839832818159331874301520108090075763811263722636543111340619050934762318274441401238666571998286539472101180913550731666541656318645541612942651348576238437044846371715559157744664339275072770784007435692401057500319812069057036369568592782617681656865359934231134506472632774043257538794093230325643137021073906275303332489092600574551171235335361743960191645126636166984854652056722182026220848837208126388771043093842373020948328471085902249869267669755395770542509023606817501680808141537126428956405372861889797644556197782242993485182657071440176372490880288629794971681139230148866554492479513012150501915012334637467122688787376168834063687028068582369842389495629492539582476569794335136897485565068561523291914483306551305556375518875745358391089071514473260416962339052623123211161649415987691660597384951864536761442316475938035830907596698718426690104998317879159507769537577325437433145725540237605198538935376480736112677601348934826365863127217826753365715670708377630070701876155730645818499981647817863011479458883412952389710632754514087214993151516493553152351958881674882948696854033749467377051022674396542462867348975770277505273498359648186713941466881949182839849352169551831390563276365178510716075532212044591520755313859915834543670755539602685283910590084844733497510206983558718827984659925598390031165646070747066923917980094862396886115581278061825143786900066042201552923220200928459710965194970916334809320617652699166292051473640481657785301677221051351303665258743875729977872008847467692837411129309119904921961630933631603889965076515991010061287619054521908409966673884483142644369978926323559536221709672642011713098648295512317852837857104856275648250592245822788600419114744391386518469441301769447830497589049981698039833281682700049503346758917219487552772189435293060890241679487506247902934509801211349025426814510658818883324777592344855248098789869689697368243289801788817756361936768670742084485675940191545941434310264705902233667712203949416524033143329182574557262066884345356236649572857539536906292292732024479435268727720408124826779791296538935462551874327769849291566367873555333543048281272541991172437603551073426267421224123917939714419052523691559729435704042755666003632611903551651929214270470778346584692962738449888888803973129417259692404376845717503949378070580622595460748017883388699051323787111058725632818486785308266685546680721810933655145736429889470041642620899032325223464125933283316182749999827217541189976475677143514094914788938166843068019060250906215271724584231529003405724780982546571723868940885739441781514514652672279961094815504375696562812042850201530420771190792234815775664313602884793066794695609978873049283515853745248187919731572991954155837632416916518305085251614947527641405788382569378568467041577457272808485791259039130617796311894876697306613196590638526786403341891186792104406450757818943323002059428124499688272737904248633513761155787573916239624282195770364455870796173533408560827342642141141973045015606490451508652725895141150230226665169564625101076730390094914084897479703202020360940283665974187385198993665973575582972059797516650041227077722503514944885869549842921197379428473316871906381057624651978198949708210278961814656355352097844733475548531013285345439768317390581193043295775693018592365979989799965580094400976606535472910670109900468137368306395848061593230579652036571876462258076293871088607923257587420746377746238284911865446097163217485024750693355800204684370025194032057155523559127616786680607671119127718645659682580120023669423271310604484054826538980342739845569019953001109494423412915470279337399400958038165825603498186134776881062752241809564845368803141654935855737551280398767482974121665992522078253231074002985972404095317272228439664926749279658140668237262373705802948629974756024204828937173049846901325462492619737044857027460847290860183753842851003299413015161263942414125264743105100506154930198491759298596445077247864013597668367142994630170351815712529356178924334118684266929949370250718429920273390603860142860002267938595819762562778355486754399229090759654720292152504701452118522665610122174758906589820526788339671361925797838672088967468801942543224966532534338325362000598892785681885194122690188220593234531620797609348545977007215245055384608739151790634723686214564643056299122581589801087275722764298156499412052425697460241311225117551365898632250806742759411788131320546599750251711275768058244119348351042465138834019589479443586751121392749964524391605398759871648088555001243854089976823533517442081074222521984193137209462508884591881908087585877703451132946463043900657602946755982624374479802482176207069487500468561793836788827028617265204439170945740366286310888580328794211754234063082246383556939810903593737353035057087768017319672485267063183546872580340589715720365753330095757847595380703408148814943885942694299099814548525680179257296600825201294453511187689564979293490290658129829909170746621611162685885981888223428828655279265581749860061524443048587408292279523087318140060464954054453573551156863737773321944812574212028429938199900617673799100455697759090523178858864647209338326895535522078950489325900447295605764556448878861778778834221488055903070026658408463839373830618311440006262218077409938390577559743878282201842173062392818213030703937205751475801742084105822186862303417286447302202420647571694793706489047162638431086813065497246008523339219110751655235200372339460654149136780885360088423801583462318048300820364295241453791219818789882847242642735980310744688268844674694737316633019576252225732342920278062298831373742113820078023122625206624871163180421348645498252860921449639860882031107191949570899486769017150827331868677033565044254951248349649529632143324510044445236674563943078463338479721820501128527687795677046725937524080884965173671236044418522778573627728812382171789196887231521374688091972593499120345668675010410395599117737632090854949798507628204901853229519066479463432976063212210240799187155330133501861655149507115536172495227514214329742435517348497761628841282837211702598147775692758919317176662400660469589090790949299123288039262081442246795894062651615758611297059311086628757976226028353185017791277618523615268562999538730534010879760479690169203564149927689879512453434690045549622702552566602703492632436067979556471138075087658859036943579863815908569865066396680730865748102531755363090651910278206057553910405573327786957153907282649180556320361571407060955916597156050206851859804206341904059528462826886840790351098951629275998794985327898611403733187764437237495206626610101135587451920111984952787699271881166295679505878251183007179246281239404880313088363008721920781044409988444704844935363395248672862864022530462312347395086465703935604777015059137126926348447060063275583680506295606058367431965747314777307620519545917465154832185795526456497756216918303382293445697175845365143946101302685772161741692742465498251107570037356435329255099050746686187142752594847076605839075370104807514324196308980601880070210862338447891108213115594824811093230765733937840750527618668505899318403916985769352620800982019392219341419669447755200880878562191162322283897395308681665943666912560466622999478837633659055570976923501696671185703035219823880520049561759578724070516223085132310662054727985249363859211079766885550478891480807910702672322381623029072763664660160758243622490554854169319807432895650192848645213677482632137277313163521799523826352342522508761647773573974820582015085736626701284466136980932440370108556108127920995390257019510388201647393109812458642666066726987534063172835916200398102497245484449740682672977394151600088613658365068292275095084413092463050800229652854808904699703376329956832459687630242801950730534256290143627923114124727164893193325891246710324214207605260118403964087129080885633669410973862568773564090241757905586035008069184984591859224318342382866619848800064525733638195677464154011429464225979164217762176483393732224556729545365549362210003833545553804805084275651938947841980693432008985687332665916051787895050696036498276344424098905300380287021673903259058466022543256640453484026362196836812780120221413830579870376929380920970833729531019196960022817483324944554577222303420469726402814310791119440011889648950569341487044496168146077740111288074719264242713577983670676316191681670654433003091465722437982428048020504181107309586505354340385436160327710596662098719086886238441969491773710974811380643645287807748555910500454600627581846427782254189329033339550857978273690956776524416540303343937309491380085083143084271426059926044352838703094165278724308734066575839889327234121052974136522717079611733957259742034807970486568069013749231629365258275566808578473362524578708829265393281863362139075539087997799356312899737998442020834129136198407397592487372374538705759725107383237415441562125570684283444871073997724735914853890287371553358728242301549192736171270350320714878100326216925912485432384081878507301131091294640492936546452745653083863013677630354684671688742287782764436140842488252649753086833593848822575662499906219144358225080998058034601777116693151813702592210916349503286445518388519238426828230885875702323634852727637010103401880269274907756670177311485551491262977368650582236405400628889967888442446289592344487227946382998435348333069104339023367118194813373064600903468978009034663384892500274695152231080589793799994913513582358033953456312335551861134328369595930875002962387272529869612031487574822267310372917922517513293197236944845153328199246240665274838900748432043455033764272488260282179525931630450628468429222509203141122047928976779769591688776009357593808692045786211830713137863348173380156448503792226480497945693316480208116143810068920387935658907600454626186043216750493176308657981962327121833447534904434203061727299793567792825615188415862370050902799121785700104247532059288250649859672509262518104431647727129216017618636358002578883431876023059957728110975289715078547724863940036587517133631982619316767006354870945418321405757571527187657537900310984478460360772744146596248826400793092321453348728179565434594751041430880815836579047615448593665041641383930676258351885889373191606365226234068006220077682349840364608660935933199070611305112843281112215733456553518147474126296534426979827521052463742097842253033423516024178468112164595302783409260418935119632988144073897969201096510192790908741014128443894443817305446964952781533605743601784713449618721746388893719547400472741097748283938334895516274512333671561622744032862437631467749618494877023768645731242288919410710626530777098430760634697009565965344313200108037017140018279205036893298345417486216625699629857611996078845653509251163834336013310194419726159975401510842180008128538229315611553040822805199764211189746227279013947539650528997550453154316511496993317056549960112388353334259283264035659898212714178384480077001994855524539052766429164268693757621128018235709131144608110544829295231495125920297446046381429572810594577903274484198267750289028717960883208380918444685210414141464276913441814058848124369050756182103226103936503473663575210614775096402002437691454956358148923328252299256828891946148315423019781028216881426682653493292420752330812838171327521203586443777130052160937677803326927733475080247999609466359602498421313077069867637104798692033204295757295184128063701591906427801044385227565872015109412286012075369870272376261727486525245210714054760639327940461949661678314900435697206308270757495260049745439647028471351930272963855738155065910574690752025284277036391647598954792060852199130182418817949362450975830549368670107522256738319807875060297072189427598626903743500837331928042920458512156046730022674372847794227055468779085858776043713452637689293282213785880346212911913453459476763482808333499168540275932222138187301050567511031606862815496281908825696320776509724097759496584716501522628295169179112173196980102830898072446701271931197583044958012286436781511780361150928274722196257882646414925484628902031323648963294970516113566718025729968771581144153575596873467503295546351200538333320142200050436140189210860819019566430278816670621826962132568711220423331458996721011121283249668108692578639275014501757163491084824385292845808454914874496620467236827539903232389949156960792478100637657267672077859217466856773966978300140474339293326565268335169426745213740772197620689071790075173406921445265610975917323346900200967924828270399859489261256189025717312991867066946300242316596797516808679041861606083080565445135810116088862593565608907783973034963978520009055518563312455756639357453588277260332913866940507421075785027089419419720006443678394947500891314972045497342979657841367452680909013824314285996360674689481454122368626141514177481931753304487522303254125191838330457925053123562056263877218371723144449007600383358410312112614565666927303326113021501167441629583782476850225948821702018980166427713823543388810045085032060224219010708435384240189608766435545039046832436650778214883102419102048622795033557611515918786463350478099362853314088513223011872163486173302539575878349593883026682243737639418026891373620854653214866171396942021403815664891879765286405115620326636377932006335241783719064105537622590609913408277868773897800856451863558915631878596992938489039919570133052685369504876929215636248860706983745141928673110251467055844814523242177187223964083388276804098236593111300400713613870299595583765261474908201809327798900143812140053806357317139815418196207899714813186954865764225667134538604339380924156420841991432301508536851684451928809376095788356490939718459733605922189705500032547629807891820144489382424887303844362343319375618970794088905760020662714037549278959524553690624450221660952668864143675187346850853679702177136569334683142983690053422122125179576280542984930369554940150523175202112762706760798231602531385241715923233255357559544764374270782373016642733826387197376882996653743818751086006248616080073146305120476298852783646752043752494500375167101670145041125558273469042661296898124888099820630906503404269952732471933896210955069216132792092376320888097651149094835227404280999140622575706924212849649272982076269777422765677049095213402213086479085106624494494634871969867850173296217243088852887046321512093534672428894310856256916718220399889857146127965869348710506338163676814631683915131210088692811971730641905656007972547248268921895686985600523583394188266444742222755085425703601809769125069764128057146443618331383187489173264688101690598378940606630919641387228320833627051598392366891096266905907000137161144796781819418245941049084520765063894531864018014726925572270575616751503532118915075531469934763647943983011878939512961864717901636007223165178871032959225979687427147126735083227702461165810529780620660171163747231901433973451574315142610238205872240581108905804887053305566702838201506444854592595494242179931047440067009830075831560571742794333184481584272868615133538466183413736264018545315067215526793706073118143229275431784083755235709956355177011913591776601240195439636413270798057002664124953377698021189398781828112553625457557566443670186908560380525955801497484236713066572037833662463669395941647499479047725909780299615722953463741613486826239303947629828954820332655695326078960742955273798073078279299899441404771830960625044068741631806751864155581467659062910942098224774939111650971116168785986759252279017881518350941402326254659623172136341087268358289806186240556169789773967946996287646607145679967994899501894288615084425209739065790274171724398457070807230344284449922847865482485814329047602126124565555366042563506367154640541668557914523932288258452479779597126656250866039589107928435764876809197459273775916190477829942757163951994528462604576339255509545126497925800632242700666380474960169675201757771814531335173697438992811043332663670663076202510914591822281786275897383769458144469671568061949811587454032184421860498896793142999810845832497001685618719408631746800709368879388961575126201330246802210855173132406932107951343818353125200301335090529491458507924329321259863409071426330503695716023703414755986569863930607848437702285556277876894643531109930886934498210088082309723945614906783915456545884657745988770420774197773883506947884974062939237117499522400350399699453087096930331188996068339713005968720907251921895786543357210099155072355582610288056066547057114459156269809597500530379604689874771217862671761906782589903130338557263409844658535496452905428864368121397454523645358197038376277126446367854502331524659694528590041650374834949057292396441916752238560511106370961285296657872316154601143813292966293688037676773096025388410310350510820520632407595665792009164279814910193494907719293163210499472666768810469579879492147329203090207401479108168212776287257046800356317609979477675841898508421211179206356849256827615888925185806482171684162327553358851295151578327803412689050355832368834538465987727926206960787244350507422013331887815888619796043080164058384640679889058538746297811393123668782753078253306946571236375485519356929408834645828914577947224898686447158150169179766236377532403458319361945990140883622084097258465108440652684444612010599431945915945513694894861599136448266239933625324296398220577304747335156148500706459156987155621801561298328178359102924027484969962822832295257992717596498151994833877459149380390011480596642650998842678767261598980735476850206409044610081458769202034598707990700800880067413408783809724721299089452251128732091579492732485030386350393249207316210707085171897657932995212181393774461037173455947211869220811485599884748611076065791721346829481520319909852930399491696146675385827369136553240465120887795180418752792619435481766013180499625888300466206256584788787139492818286629456832031580023229029908104026237835457190882719945550503582305665703824823495233144636740647030543665787771296571566079077091145824770514987621949735026057394499787672775977132746802113614545545119479503772908601668551414261710401077446585724638472290927771868152796591403027547314380390765983428801817838254504630027494836164371750574809832656146642114960064693695797629586631761283251843963741702270154659832487019024372099089446176049314576839896838239897357141052390949043855170369511015938490879802747281548626619045038121968845019890254339309095969602122903441058201328546441213676951995792212973670330325613513366561253169102091960317392751963850613887391774594659044212438429005241638989659681515862303477664373315184865270401812849452666347676152794931416428767507441775654962678379841357642053651662472967342986537461825197767823782561568091479992337456191565251448887705411789177693998545422334724471249887187801321131552258374239816202684025071020647832544840127510989102038873980147421764050374804873786210221133074849665944397901897714927058858432076599236761239310126638254675292518738130672054386023264661808245913104381683500199201338106204337960074548097620653574564690409568682201520510828298804040700163672280221350592897807701864828637558440450220942879543461919177461362825179926673893700835793350313015437427502385237175536892039067621884928479960960062121755363127567316862881459660159094582356004169509112831917371123180539335323457276038357927746623137373269452708168112793086384031376050852965826594113288496855106364804876355483474903635354597213048545646199315333116718594861333010913295972142296436237732180619880956009063418661472081098194964361013220202774844486265371927782056255926516063293209960121943248162049350746297155638658564972956497372272435721252301854639616134371465887119381863765724943506303747448304357905929666091537867995263219685017575320669203320660697359218752269091584625487905456160089263571725936544822133416286315069316552939851968315796613145150986784158211892488653577924877536187306871607165344430066909714526434520203773953275331661244473042647350147034472963974075996780495213637213601947854419976791437876528344531902280339690987751414578579660762933612749562449449645223452617781168567124574050113595659673998705760377987094949557098507080617352577410129776111541433342688373840568343132764904351810828233459428823947124045169237798323189864846739952086718628930384257030418356600935062597927673692761641038594608557634792875752400072219008805553854270544995698974152546458697572214252909278285727676340673642571783829227980700514500638246274512213603780959789703108929773370104199981040391132485118641453369625211855760979304641561694091001578642109019538779552890364186294397651333598315116499424264641706406444244154703852380447776994911431369710097779640994388404766011927988162307971728371140339755668843234011645695591960890790569885954190722715346771763071468048372722805430941614752585376984669228510199741458105266025870267328066861520767104822247590300992460866144736580336078729704633281706324696539830833702796507092158696054366942411241488326293044103065848921254253561723228233815785069944845803036691820802584951172721201833890521097698760197993254240438606723700482722672356028897304217850328514745844565654542862785403238517921913052131583016003901963608500026184290571262960740466535310714331860403298110045330894612799573557143393434940159644340098964052779250040823188068604131302527407783529438312101206713787054498882447077940495988368536713633714192600321671987073633263465314074462583484906765162448149610199452325839526372447518924557189866450404308146813559553497094763702431124480010673614195635850173159863714251009777235551690525572572499084900313362076642553034567551832992176952320398840745169115711591481376938802007053428083426821865324773957064768708013391660952566632075853554452549190649105254031922152153571445352383378592780961132983154337569375772182914155870536781675391522939425906377048496577270251711807735571243241509846832179089226487046905578721379050670823246654986812124739137375350435475594131269862271770207107228159886028162077789479853635048369345602400509281251151686548034092359284642133221190804120195901525697083985108168765731201827670445143011364450800525218300923091735095069910632953057165013219835442216534300905670330180162578721282281612620341743898669679465694281056319112960975332735699967900981375389443152681948753126910187724933865088657269861926502732557786206890130196829426808199379953998580794614678494181612753371297772699626016916687774787733091376630120943723902711219606585013974656911320322846896797367520291717145552937900170973589221962893327709123362484324945116138888661231269888188337417156305677108754495580878500185033640595966190981989094190350274249838409809140857407318810250013569494215130568280591473440150710653002716625680769998460299885259185599777938298057187403236088303159338070717549453246308678371290264777306252227252023814133582152691022885959662087429765360552313092312288753683820130509378189946533937105559164198260776891072025572825267154239767403497392386501049745702118422135214352957527838535116745515124884953282127263890425072154741387566897533432613804674632695718545911768613687351384775719142732327718932110064074772185611446166257907432005335738446818162764780240308438073813723082528119816637727840791420677488768246649993836174817294853135185525370121325602113549610497371980844898034759332324979803128363530002364310020451751034567746297360597627402047312182657858612369641351437595341665843775760363506201693342293271282629061395286294906403737153036261551431258157547080270222124671759085939374955271121504325606736090997792120335312210515392891393140351717782045280648510356946507699163223878714654604097453416514331840310617801832422554730255647529709230647425589070622505811144677680399772940803803158831838732395350937113074357884364975784255261044599985850708420084818944089495977987921904160165638207899781486885008413182878623656267010933145912061996010001946573392978332092444193504243773674003165735465348702383057466984713638628583458956466313448621059705846334485075575426091141090577723502396559184070924401488719141777547080139809937190068909041327571589464171562329366457882233000045742790250207088829857295289018073710222951179394093805222038034326598036635253786394787649525211327494530640249828687205113621014099559940506010361827004797564116824667496873950380083309226996925941230729390256814424317736578282896341437249588873604528554405221289000239417052581740894125495692267511256253487938105199207846687025827438520526101131058179005722294351236273161579399022397887296328867709096440047720911018345049133188095846242624515258192458138918250782353672870950996514119213859662154510782023490269253859800939513188280436467587815757216489545505968175678229249612102742704854105566516638579601215074728120859047730077025685120047606450179131008423676639579498323042102155838055573794728387859851331048154470764943632865676988320204915780798208068260189181040991182132941822447395496732404917733781997815577295130557478590854214309249918711601564366529817343467021906381040592300063272923754844405075046712183975377024346220411677727789946512570777662703251576585158330608434440592165909989764704041041966728167318677992570175265229978109745946710277233344633420892370403750916686296933396508837540442251186217442071949660068321952442601212447165230286979170477785897402553194410483988125341060757051914351503999385852729655012936267996785984806257991659417507437051532626265284730087685510661601719756581256844642651894816212270533635299169173270065196722042772722363764487613777336255876718453486527405853622384824112292030806292570596458579067934084222639360350723099429900564393198155426255381629560048420162698096672822740350364231878550043423755634995382721323173301004149116430991411863765145248776482083233639899080222967074164798682226085229974142945581609726104402669682025399876720445082804833846257769266754004914657142314841955539239202660909653958837186463824210038702163479782668383547705866777328686999700571175406537486718299303756081980507897491839784420038143482649629885961869608132534270614491312205824739842781040083707885190344697631521998770304659896823739301345628625013486574391715689340411384761740955982967598737056542915603734417190961951768476537442030042902170020342692219729264843535530324010069709396070015488678153353306682541819021271716904526242404554091908302226090268266867427056047670301349743841434895185710585052205553419097349373455618875240984887690941074001824782046110296640110470011167901408184676290459509389560231714625859853361384087007436310258994894238102365757873485721454105446798210870479964250947959119210426547325828500533983182217632996405088906819223359202901738873847429618647612168180878550736748194464406580896110490921280762145826127445722919274844400868711935343698743091519337721997177024359983930038159940217956718919135870705812178425608547166994398124603971322340058202140603455997647978391015497384237071562827560906200498559114920330051142322763486093441959512687627152847822593763961953089145798279820648303840480630192435516197471326589628362468236685336007897132727445180192070802950848608188712132443340777805070909255800999506235622740812617587391618482784457320805037076752798331869686242141864750524273491585564871809785170413129753062885641868814906073683944491029209368984772655268339177046520301666353373320943205002926443185983861529590675991049842285935004995450037241154952169633359123353065480516443575376118096801338902528071082797059536164628594870281442768117858538077620070959832154098484268345368122041916877418507397827731449442336398864773347566116512758445533903053353039814314834007042627326721722271334238219353496039638639265205483609267287141685901835008616861622865880562301772626019948794888723111210834341681722830764590467594593509613689131069032911361668454886598583061393321632244196106687945491888487488358861005521633418537398217959058218682819575745465951514454825797404355512539890873117649896069803450009674592231811220906260738329860285202443368312133841306961193568746592165537302530571887707108902694176321556342468103088558443716926157240257203162804171652467227725078987635615276651479746126244944510770802005282575556768646385793860137904996028682715809610658922517317247925022828214775985458406216548199153791646084308017522088669667132791406114748766450022177574610087844667927601380930805177882073456545766865308012360808256561021684419831224306690199359822545891870128679941468641937381446869513623797736045106266911202704577156138800835480369495172012069758794544420528123883200789653631100224022625539483033036519955638460351510194930537445829922197452066996671032099044266657910927351029775353047596736417373387487883819273867814611197441708658619956268179076277572742287461281179872559215221971836932228637855566861968948100339752421307324270394184144322387072127863490947622956646324880508939708823418825319770229328122700095616853257820691079022479195246159225420959868435507174759808608850740693524122642988097152416082681903323000733217920847967689571039280510401391093804027096215429405451814260339904348065006527890578325232745593523313600611631331344453082166135933099340400217559974738653403766059778091764943798748636053566067932639874679388550985139727248452763392222020643413174973936412369798334959959603078493938555855143803742714408412277525428721916554401374683844049066193464452953474298991910579653572548550200056919777179945218962411654879974586295545024854179867755776925178040399789067909407905989172191147231671770594822120952301469074704585854623554006212340039650232100572013196473251834225017078078913835896065803799405577883553167886620786124386294818245308740974049859743735075859240917939468122564193504016565587230813616091812959983126336991749006248512171004581044434919028305101422383248032118931629075471024903755919998657402056706868361067392064810491872918173105763802686706921307063404123008902286193681652028979429336898631924973102442876233236607130496079821081645817764572068664798863976291926334174921045016688857546676222919298540008476621120247243950235098219196913294563005776648043104906246854269911141870269540404680559642621309816913608327860322538631475302840732085932475617889631174897152153697505149506081624145896303258536027814870798845463843818720206691526568818709938668289055007892765962428879456802355691762673272197912599867067837449071851279692754008660553385975054243724777480485265857264093969600016617938021177280340199577913541245819138282034426697526977825536379517250207700845160048117960222095584341270809343438821689003127108117943191923073143395369332436263742491104804629158909737814604101634758109967357780909376804615381539317642906308480479694463110648996554851766907589863222368673760367519173874683506932989322181592123189401425474928954904814715661083052260710131711112936204709288736499973219660946886437007816446714523912898721066911348137202684239588418349740276917530961740090694931553266494084750787266337121161038907770051140275327925627617256214643876285646670241774890627479991063688602877605425642735833781083275724448484530397514162272562343278330316376141331372607459434409697712162712686024216308851364738080085677043225731879709846723989058381239863998396007108329578341012068481518320165642109961285098026295531769005180654587080283812984588689760816846221356599687816252981267332230316015063979890378748038489228664028953275552203876154438424191869385391086087648045509099439775855203249955970070612798314356090665043311424763092733929712419453874723159549188523876976849002182899390268611387465203631515531606682846939117384768413300008297766538292514968475039381437791057419288100565358415318156949499744185652411327488556993453283747378845115760084046786038857769081175978414051903670510651342411372461549212367563149411742784243423600596708887346308984198611536501163981507359604867230467371526841286380715552851810755457981112761921387092660802004470592021109453591399063855243964139262162150756884288370743583778619286792117549148112015205744372039591368399754781354539029810659255218679500719704175544828109237498730507095943693753058996010864425289193316103523131969131522412834495639335124041723929363790521413763812743615552526563137930425516504505429661553973863403392587274891241382097346306628672551978983525895444127178509027282836053666615015172586682523133453966600770297391362407137805904048780883789553827882084471674158881194046046780815205049021362886733306064606579111851548741335067551400611178118413383243357781001706061939596232480272379718585425920745057907987481642705868563000081773796358018262154709730249390806163482977042666557958546505230624808723158424663793264546780471298723485047745745376241164040862457388589479064698249469438992210170299525325641506961753425059835405129783174021077107538840110440773924821166320118692844726494759350635372926388151249831923642174516506198910807207688044304247695696333914314529580055608924655890725828728470894037534607612639945143891295498112678116731297764750989856088246109955660545879002518203426653862362872737527683776465547334538070620873675580004220992700404576245550771061725329713088099712366307815918508237193606554101779031227221784506044793964769205375592587577745409356277368897291908816332155089429899914583344871825137024568458202803535058910571431162872333417946651566568910563888930683359944031772836789451279685800783892021503213319769629018249792931679732640311525519188126177654150309653492337937469616567858944119055881871373848100345857959276547700819982309424026333798641808894435047496351693643640103413794821412115057908588506274436041746625464527446669970572221818187560731548631908143166755375127075659145348527963546620526677157402523484771265465516640228033309905640376186671499499563651804612682093707453775538536231617171006551958412544633651283730454484414608802820953003547331170982152714601404879842123158558900770023129191622273019939603600884023435235105227231147934746166187424911786210020131039465997305380508947060897553640375461711107495210919570515339086743975230474239056792255899312345589603033413130501485574081912682980228575484976176119403922826067751173482188671076839711246238221288435351762945158042699195979012140282844683199417775775448003505071179475672926374997806252289899562672594033225927965614581040517573893376746524282233706815517783498598181456614341772788357206355317512911541540148885029021613187051349275584294168411508085181183276174015573065473595433484637603810248590733181362509962509794695740201057412044610981130032882766365984226293677080243211792964928719574077625458809909387714278542225162065454487009413035613183662288824952681943484821518243846401065938480507384784016731926083084663490252467246527754588492811110230325984945941234647598566118697774606732495957954894089755838528414291422758025262189505960315286860556320093681447548673872172357103175113775014546259336973069779023322439530871535491120134389274625187988371384623423926610544377902504399335548249486447880570235062280468373395306008655942411645346048353509799589195548422715323509999702402281550346266541932922807476108373290051302198099890490750014030681862577101444310843959866966241869001353679153862726253833538658990515523121272439711829109855848163244613879107067305113979348987956957897866913319892646329635797621371711204624575321729000643380311782216576264417835795164206792087043104268927577461188090326576942671049183604370830048052522776130344500001537246575491401889552820697498244403013715638335408139690664207572309332678631094183714187911295159660817195746596507912892132937650353010939437174776505968225840790712070160165867663960949486968815788804929057745840865209451795345080551567443058926072833332629383646673418886822395240623145244222699564964790539977726558689738263546644317366476422978089462025056032518670312576355275040170289207255354225087459721084411298885129569073675999183748332128926067239886260562498962996725239731716275613444968960322751672526595592082659648081159155461846266407580426485470742646729492741008571105559518583741031201289227784066309353848539405909354786963976542697890319678437920777112646621704841299721205802263723612962543736094130847906074564445919584685016531834712526366401112412849631381816865201288180457928587207427761352414928415091522714747199031079832005284692406752140438857826243129481502668648191611767331432140569693079569488976789270716814650586926743390742066399809649803824525019019955734542826487824374762849010875016574760483053814000772601389012068982494886144155487330465538693667379904255775529664738187650764707810050608951545003739636979096441250753348066320747177233304215117382162382559497026606780245140634945031081478681156797526651050172888770068777049459606630141421845817517979125059005292586213860163744309544469666535615695122753613010961741391057990779419845213069078560183023180887846635552636519987124498649579135553807590162372718228493536910476973278879875282431841389933313168766032917815499988624595473458104761333399918834008229865181373077532107886008306473232112000271319616874140242237937407716016631727535914016855846583288930702980329684916860238894263667919311381895943477263497552365748152567266268346537793381813419263452829780890935057873277566781506100371988656870059869458966328852773886780749403148424339130515979712451947984587686284152029827447393451267063789719321378323347854449680078212288371657350825752573364445795750437313591237981543156089220568760388747219122686621757744742685880081671275506661396875244586425710175517277935547045107033618013366042280753541713982710252158562564331389540037074542160546392060941322811955333896637561798043524557676883768246792579360352265544114824900658816768269881047211009115947447816801819039857396676632559165621377861191556776801635792745213657975202168094399978699502873699185150328845685805156649790709275206033230349836254851863980888552301640186791564902851903221653945446402207395819926319866502263987899099015167728126530977577206251520329289719467306400855326259012135087927256217727480478449775386238390617458878403876102500138470579410226058188301150706924385122159801733360687824992797753758507352839002574546432573153316844005940259721977314954822782843458129268476345898278959115646040041883886276818491021040905300174530342298695240649322604176329958058723397780898630387830206179742322175036176448835598096844462929150519043271823243809659464296357846277573364281876347978835758514805652271103141905158830409994593571209579912307159168132085793563840558306983321347102659855735854817484215197581748488923759044499251956262609230250175259169750260908753690143345707347136705281399326152352786995451167622836116399541423856895935865787650658946726878472083387762192345399065238850722242079219511172232933760624035025988397642996508903967711506705596310575746933731051366877497138751550502456826315053122661003819117439682585032914712885051249415220149629215140863418558582312375400674447600621910014507168072116402879199722278583432253680143049055174523842110512049795632310833135159351452735563966276585778379339978837845775206222819891101402318153935693700157082830532959169443033273434164822626052667797416069006712724763548523198217600094447177733161328862523069812465329117691143724814434275282004426991854509511163393328171926223010051513487519008506385398407888321771844899429178909528517727692561643954461774070255992655314552009045690782107646527509706762332306719954411067747110452245252876830174225106686058631157428909817343126459475150226086181136887203755917649845914284209098643948376982988972500385014448306405824467670354158493061872439092612419637949406374088932724362790163438510472719608659531678007941003082233421913302008049021014906452715062688432195260109090611736872378380632450677150430701236453334308248237853870561896335756897887981182210837963977961722934541143289009930206914424063804263887017437697328789673224520907258919905344707734672509215537207015053719484747310945937324761715401472588763278732473214592117638927688726534426528063460522615279265044207393766979670350806693961199015889564314843664562210815822176088652510225400678619667478312151900105087864246643614244494544896750719218097034423959377744434238301840125527247096163527972991900360912144267593668883055597367285829276377408807387027074037901012936274925180699607684318354219452578335161243712687946478021946329953411208133633408176812494243764399860744036922852273890031051698698456561851929875247529628256094857938045559303472979256791751015392846542655292556226183593010970130299372080186029898865381859203553673499832975619478376699248523653700236759139631781708801509717192748862004191029150524377682567052816790591949655643413180307287314160804110919001365183509604568081059377936066658492116818671140048056429446116536684723494291048100847553145050740892438387320637105668491070524187520508701105073413433107391457624446030116986641809911598928896754230083526694497688123040050945071633782524780450586159357651188198443555798886171929934418828944852139585349430853302323129781915503886859514202024934912953334047148610494717227247362440460942601398770434343726402868636150639611206057454199298532326120974134708358812347962850670418844260059399690624257123353654325635964274048774488473173414057015975985804254552736263417529205860983880348134036383543675686655797267951940376886046261397941560644273570398054301488214127880829451067187059668727917141087524976849222555848482551162686829461623537839986721027895013378453445219683104426045748928776998306547299089385366243372585248082763775886365974289557774631201013939097828422602466621797782990255915488321224603932258492154668932110059143565761947411312150815099806202731222759822687251906253728967884574911429239090719629234863108654939532522421920692833475443037607517894324349852899907624125804661670849606396926374804282184832790597234153529485594709719502432755089259909148049820161157897621064088927501837012749215622306486176043760122976027172214488719207747954616474393470237868122571602725896236070945045679741617420046954861000182365599233157131594239851811266450882208131393192244845876855070461084750086307122150827307087323787922768269864963291360353231087835442494016493313780639666798838053012586420248847235678908153194896160317239461945401265148929122937705741782792093250491629223220139350205458026857204847575084282268344362102609221016924706032560983358771484156719597876599758376300877920254228495237575949016067661101616403570396039456108162637410666645408466394811679374327776906913555357606551065487610053688737476004660436823595778522851410811863083310472382622311270576384871608956491979967736028643687186740765383272889129303518942227505584350103249449997748731619260464700569195510552255498853487529143129065665141895240908893750410513825558267974692818429171355312969423925122739465861475966214427608323703596403586888845002888679988304663750002970677639942244042376606179099331645487812031318118819995730119608955619608906127889185964318194388999567342415373055206854616507508695195924355560968234920808601182182422701672170485126584882485294492948596988127500100049571641332010547840662450930556911912028912696250947869282409476635807860695971839130620092053070812151825628295380775571431112279329266463151076355548582190425260769494610516129548230180509717239277367705106023983820140082248278271055470975844019311254870557306644272587070522449054003301331098423903143109166865004089882049563643814640502841596108838057761229064232905930993591834997938456636231250234079485577696128059430342716541539740052146595092239863278258759027649667156064207014873014384045056662124923983022195877219425064988605024946992080583269103200892513354597971411768811530225882402253121042470904309879621422279142116281456589946107715251112289262750755614762302025831908574258447139650396873506013652577177104208683107211249138662041506069516785402915391208472271222419263947693934045603629821821624365390317265223204580047325024435477215808514665528801596476405832607692755177675166157534956085716911509846791516234136659129264703400223449100474604471777658118739313233450677831871437165583864533224942750907931523284830906725302444447767450565072894603829799414810461605335287720416670084006795077746579567006659202321761949662727747652789398928013340602258932631800641966574467030668333229936674198716214571381008945353284158131177274195237517749001167149192690477990876570158611864193614328509975960911745037599116642084688431102810975061263541744064265210795915037932870772895555147335161363913828147816989144665731491678375496813327017206434169277241986513643398669951894109412248565839662814476460504039405917280609954835388630139763400646099430200159099783897469910209791253964610610028359195412466854011396193061066803650261520829955024912329614725329940924493916165771228061890367926921981026510734128067730702930161602989729900660584100599869879817787844595330167672089695051855457113348377416661481058523093257805308356436394545743496603961311408471967302735469975189773597511329660784798727804719715870965085479636993758080155035662185585877371534014304726346503316250818058307619138572374934491305089414029363330330825966945167882664633199891154110513358620120529917739596809430194311103267628817615800501271411954485913134749062842816637157033652822075622255329032439043242272291345506772216563213298732752815451701466277694493412489354236407054263915347582667504157233675289328808825611141941138968413870043362509862065530667718708874003009708309129414710049513929884863272408455804420337702145912274578421203513462999388986694886437142239471301658422608008843788187744640267932463817003921963355458250339834893006473135614026341631049812932294936572953874491046255796441264346183571939461373551533773619855634624307552765840479226600124773597148123306847658586201526880395508776855592305857460171483887260354356897148380827441350150936039403546763602197663055871536514391306815443614660117088896377602858315590242088842077561961446776291420896976398985229745358453592078572257533531422879035865532738583805207249893260137540605917270312565921547189030745057776985631533038085983348711304845229098972476148654995681185354604652244555331281953273777605237380503328086409063990172909564503171174464899217285485342309425724027075178936665030052914355194556850332724877178511989637867806536044548800314154150847430926471653098032646614870070253200054065006211314067332248327575807036186646936229836841412196792214022225355119579183846534173635773125815213669289948604391372415884289349938176080002425649877497415416950233526260141412756730617054812502494378646664005705775326735536333472391184417236064103227693669937323934153757884062826655787998771154132579224955817709538118835360477625989807482875142073698338272098084146149315310004665644209569384972742542532414814737357358772491062305739047317936797458285616496144108434921790092743620038236041532591600027207906106109120894821814505173013614591191725787877436184129899784954386699164285373164686190722507008998274939020901263485706093533526154124791003935333782664606411602998473547699194363310002672026966383638025457148680825843129856696013793758135269144240164445473994329230180223182613710872587566596707441168651636438665179320603613142901455070866254587049391653988029389340052102474462896575679101541372877225810113021932502822650523160230171473834058149208116441643861504853660483309841202855659374131695280351278805013344216185097637412057988092336381194530149952443272974486472978142413094243696576556076532754309477578523838870092812144544336902463665069676017437955439866779315118192431519591793616069597193928299162327732731975879007162413032849197910161089749719279724768617723760422332980623021490334085758159769257764096425401181207725610881279226943160941365390688163605299245401817038482453538437039870200085467766987144259432689433359900911640994011594513249305802960738075036215407270197175835833682295842060313438603801040685466815274196538557555899125404252743751379617197749713759684142771813257021848196198117054756617116784717756953425886173524425909745735308163035601459868222666395078103985931185154750057263841693252391875043859998809616265941920860512876535788902015491790187576927875748298781867933616967906027559788664632435745695040525213741414002158587393452591686691685168067439583757974938747190387144531328525181344765002550358683163243851508769377657028533096044954114719245879380192532373695484358462948335404628852808218284333241181326886369275008412330113650752385260538525025360247422258453337578472091236299415381439158371150521658320945541272229798285874632022267896459558101588648089195719890066416773174171256903665741227920645304255845329918409595383892093424755259297746717071234188180664163141876507849552069191501768386662120460265375100444783698787880310812759456316543024582894518373840978756007407783965535778130720224823930094076988813309819875643211631107861758992503732960552562068581002575125238625041177047779951343318389478309293238184812001435592129176302775012189700215116263854173508648063467315532131998113647333512706892564772584195268550517511297620647690637644415931979441475266049805817578102270364864197034204369106495703543564218601382839551956461782309763816833564213812031186858905806415900106554194465722615372063502698598459048466164511904545210558245920564306368517350273985889182923872128626935540841657572950429504484441295107539518288424204629638569247465843865494001089985397082525186071416232785829921535951714713298932469224522589960949044781915658977467452124669094703845077780839755340873581653564314700999378049879384954941765338607004025665952698633783143328692428642705526084608504570480050315401334988789169924811932793878647741315293772780649358112673518309294003483361277790851654335434547577251393863838589953264041878642687135760574645674785952615478279095914328254989934391860006957124940158904294515905951069222107307523209850271201761181669153455732846334688142914422873907370531037955704934149948416865599837087099308553937005483404149310647911546131717226153564327102604332067261713721060259856386015174858827012145960488483860886532087425689774340163521897698484211636424869959996693257248134654717465859601689541761020393682570747384025125483554030412687160675299391951876400220773616505461163098676722962135171958437726468970089802537726869021692718039490844956654977211395314040874802168546450559697688598238310596940883530804274780755332988474565223699504717200142882810843690599044385041973274570283294204659902220784141010748624120326766251493623386150818385149371878825162893570038762025036222119814257884828475746277515650299602864878518442216013763420150888883598807807531372559715257136330833127218795508727156616030781359602601561243848362200647062345700491363648918416041591281116404325326797031591053830030177685225590360441568724097596838836810481559944882783261590006813214013231976165385697431263721576691359668741013307533293230003296734107607089867803893891229850151485968561274010255798837263971096121761445295803563455943670443230282990920675970580375219845245732640300183654956913580395652220995135121067946613444795951843607532304703132124863041020317976760556757722938839848204773630804011277553122042786095050098756720279954031276483192927525744565625519713069511465147086169559635339679934332545939115188374050675290993538535059557365641509847961914589607008314574084529589602497426090979572687353059297665416727202364988745562749104998811499469888298736609307285585204637742195733228468696103560007493285450051859253908370861836615901852866698600799473204765354364243698211647703234229645622964482969092904494144698999093294702229537606222614124293674075994491550741305656482421322512589766055668074179946280453578206705943578102315050369982282647165022534047466806758621504285149992804501555679621660442909922785622908822368861299814783128884272738330102598314003638123730870990868463056671576526796191635513206564376664136402978641564519289455945937397821205848365883445607753355611089716909442062843214587955549547636713696125883077732391488681162684055523059389982281391055676315358803605204020120500698346951598270757688638601952424660255898822487044879696891091863413013644202724961129964129377296149036076968158824293010343631190800656177026127473725300742087516700363018619289160004891976830183842667663400642047361026303011864864325911200498038587513546686610156565104445483926142813054400572876372749419930762284515748035983013994302769611162995636531761613882782720443450053782712883134630505718691311161784848304225024042262928471553067323730495987747028624852193819364549990714109253692917919875825055805075049375673257594615331552006621727556326660097292826825296676068251755545643548379673141696008928742024325927354630997120435880988609223259061625159584847820477124657599676520511863760494444082039532785636448898057140815174973341289128049881876051000887679103771140907074292253774375432961975786595031247874068069576620435330621010226202507642075153908777046129334400645590180913811243350013608906505311402639975651547957703619234180565364880055766280473321102168331381651382752335455518334301578477883004941422270243139700075308854455264972710695778642729483516950688885185297164813392454583248791384666008203381323383949156664829243377773424751239257462816930153435581526761799366393411593096134954773630879554260312838080820097939063700820268692003424995189822342833321477458853966110626647394863167492479127837124793338177840990317614105969290160352230924020496711037631772970138291996570630132752224005107278077631344279739916494465328025282728010490780218058394705012858412497626857163371036228304978422441992417505475000113852032819222703386426388726861573713320150119624758848286324595700363584701427035639580663618374393686286268481729025534896767705964314536288168448742948843083570601185433345753898991653813487316282282455750267299235821103368572034809481077544449889154274865029228505787369945887646353615730484766817868108230172747789419744587291185086681588372552302816831340708898425060860585275249619159678609526264710151277495284707871411615404532386460974675808123865548060903863154939252371020921094679261144706844512872235083692159823508927617403477056905371951146856842475729390414063377249252512022959898811499583122464839999474842560967373602095232985011313527322593396125862728588502577855603205876673825809093851741942210284165387530518054314103204387766271422077771100888592513575277026395068112183533744737849061770852119388923594527128346670440153543717441527802307668592324631019040940081881979958761988914124926272413333495524579932548516506824056448838691299323854642272255105105012953580643533245606010702734515244085910431961613066246892871183375622690912198211624956401912063528552347819840373207614066026215633811564853429079955186427499103876409258104781317344650908125355870008134552592937640947376814150492229580223525718577420100335556564972022015436520776508021559627098529719967826873793706851613867465010849954253264431512115226215826294376340946154687192911893554834317126840295768809090084628935065603905942847125582235704429036914005812629046006348247607188773311238933548222946695416230939396973957730455436073443662466675611397484632313489816887477536356310889948165249740910618881065531156014723409506906252398096939936244111688728053784440665257699336731529740180998441676963301536610154641335370191366329522217864784259988491142316580119233345624971446620914334609463132350650353466970776830878766175158221514447152907289274769679264121897672743116967971611681837397561848096903105623792183000586332137541690962886829664155929984046910868447816598977932912295097751522173886922924866018229623215036351665868366158252915580290568385586166590191889824057252560503640076070241481232520393665459255678986963115638585196083380802144491064360417326089711850088482153725561637907134371610637337646387059206898923518192336130893523143030862017582011227756538712347382960985090920729305987121225150621244514251757527655310230016249835550334208103555380808656641821801937306363482375403589931359144823442337402757598829791409282079414627480564113228525408134052065423192919434242017790180721541426211603959963288993947412491440257294705225781459129756071956401337332374354773166727315096383482108718077806237608994014766661908475052325421754014031162774099585934089832926878008104422368338685046470367086523587353785807079883287425443242450428861387728093444390832114770040800787830494701086604606177191058364504134802479924068197641443879743894403156380265240669144720827814861667295791957956851714270749267262220295150007996119438248710039050595346075094434865670577714756286842564686828209024421398604645060438137934115394906883795149008598074779149644923258597248875934227749704490097659102316219415624421506851520990579817309782764438339396377288967012392171644819563241254236347162103511436651644879722854813979372672376563811757210140056970004953702062315392598384274247083301455591468276597851309936740665184731965518773541008401378990757899261695060980175355121425721196063178640558113601209265136541035422022068542976957826640843854561785957867130786669063196686533703466945298749207606558752939446270511560248052310027056581405644625855811604575832395812496014598302507505789647590953539843857653194167008463595914008112588539554413411728454291910163914401563248341188432071938394161339610775927762721464779428024015352436925214983888271250557887132413893676146681529747918084210004912360840038827750345983923024149454327126200667936721314374185175980661244874758231451217302705976468791217631291517793469371204291600478830480264810127076712282498349519280780941479611654298286188676139218695974791177257456795064850336128154692418397127106810228225162586503846975440412638123898007654393725615104671190178864578254628133682871431462261371824555317404669513349767932231109912670527238243635867286552258486497460601407805972119062544037437122430172399436798089556415368108721817817736355925292578911208431473248879100251231227120499640146657539625036588350466912652184472298535006721262711987702800810670782113881330424225766818395303230029042409693924080224106028011970664919871715794031579199485175421177266160877462399382837998579794925036915690995354692572613333220486280445258028746934381014835836487103573941638185443012201285723988109248965529810857993640368457617719181048324767101129397273764725116619697799258857564522112664348487934050466800329338439904119272645222953080355656722399646860163339253308791985462753253692564926223895332291046911894291533447114375507130196301000700979733341103477882407494597223856277833811914792642362497908342245987388784148966531769014491173962259394195116088669263380370358454271674007047575600441007236494189228719787757373558276399683195843930064651018345584349591846047905416322789839125369487945780754930880731870160487423571775089969441520422068012170602852480668592925794685968284109780395916951021253307661169878694393804089316672236764410664323305118375402815209124604299117268058745243650553901715766244946321665180958059750033178833371800633746188548489293175562088649387344897852597500786806421484844766971716316963576662363349546720691029990995828325145789741607285563188832036199630875421145662940818555750926625492787779666193419427423050181453156352807325652568208453769712147400170083521697292375019156973044159591938866026114293359553617934897139411597552812416226274031820725334161575901156132606140562320640856403229112028075084166592975889099333639404971924654783913331518441368178909458440161289680125716214040602779436701599907101596661689660226703896284347207521419235234117137851766860561968524376673639124011175581325606241822239032820003898775787654335065805175822657243891745555355093704083664790518766399195930455883225317196889641762585661032079090556139140633724710588422503176249579883224933732932117024360269110844219551819742763894932976528017803893783454903281916082411389045668355734988808159779437899624680559235433497103894623060959264752774391978666764917170514094522898549490320544078451507549374878054558651841961204535856725311775634228265983834801918872157268831841299562946162741734931405835241103500445402676129411180566797725910208593724790091692050240142093099263005660360238002737679538733918815377981528545067722687023895315666036242272667193790886180693408878253222291274349579218273456691846171538472317618522698413216145377909981844116519489377161029147035316194088059735167835916558333852470516712907170298574983660079294279864080008931258607808407866308382181592742385728661171436375314637216658125259882997759211297373162551982287333092474321099802787017974570058014866660960110290017326870488970656026460429252625843585234689251811790223948379769767844538759157932539093121675221629632785063831538092895394043403247103994525845623555950472007389627708636520207184589428634976925121557865420263152927421355818705175771029456317736266592593193239824996302105751687144443547378517806059623572220013273170491457288411622039547537570904992005800212606227014095624852531285814776076285360866722148868908152050645387541639751077285698078435787720605364050386707501892255474825714257886274465176870764379010657442791388875577069001926025969792663719709422754981373939973838325214886209671903347648123202091481944453118952356060107060029942447307626062510109629731638014927433984284713140101984927121521166947811526629874516497566630162921390261880998063215793951342858196942237307484601619747297184773518612686226533865761721067185474481464970088432314165537204988547974237767914877200488200325879852426185295691144607324928530422882918826244470996060396281441140085879695978049936356400701028239895434593387071938995443653584388948338119222047382475576849582512542771562555288914978202854234726788606756814107140758581168675388323297264813457812699350678756343258307804262722787604447819549186379033151282935071317077409586336085970202211971035326130821051697112907502026481964522663148012460071344399536444722756964693116425113541634880374690202460074736990054525663089903161276901659960148118022730387618552373182364479566168772272152762213313735324916430448632428544620746989240188536956622091604671349204624495664402572628762955748778266828905579233063253496137571641993159710051716323024249814499613346950956427432250283322569368406042099244205404257959649386059226708163195151749639327629933676019939606261966229404930413577429314133765408512355082674092583735430524478236204855724657620506272510035469727654471913221946789618725456966087910619839911833887566511036248998368662065955810852046200903870538674701961311652852693303439162480066226452779692918813653646124719820369856516504205957786115128926833619488578682977391928001459484074220213541501443139891342199441056863929458164005138635881434151753168912738725593001678871000495248727896708473341691006395962913804183354754140818513441931714302245943238290620207117766901242637400781799243614565014884174461900542332214069510626227824522326560701310625751543032368363239899926115761348287177635396222869992281338389733785843891280853180692314681496964701074569084476165765334968940074612126071987532892560275285333476018093977836882061753636557451658746062015518133614418797676708005033568686975808749757218128683368709509473806780110756064999962615560003230589677094109433485099924975188795540107849924429818364843868888236171250012640273577989017696997342136895444509470697626209721054060091224950525558497404712067226127829005282237523627557666158797970547510489406143856273857806300326355796610516348596202167393983445635869012338049467386943162989553061274722463090460514424019400397026708052411276671074886864708055230230107526566953190951378247050164167971499354346921181121846788440333905088354166976484760719656605008556337228119203544210227633465630365602096262060704885146294329060617505683692820179186902316304992019321784050928903304924123105393064357500396090625814436022527610960382329277969123544984909155292014673006748625991256556801445421005293543679884443646627577668657852575871938704355542403186970236629818621526128993834001977906615185113109275005056680202568528911809233859411628047659208463247748720040694805988039579408029723974451130288813480569603324506638465909869840187834904421644937223700149867586336158898392588576160906039253769592110083175668565049119297594910308821769526453751560659646015486574822012497687913979326140815094849454453152460053330739915351891642280511757740510330059001102636493700259139429988961177735762875294706933722946889692250673097205881731712332547438750039537159067680031638330885510284509139914353236691279919030524524598770527185726154514795965841272722104462718406768116054643279152163273277077650579543973629354203965918666720418582883058930311472111761180428863323832290054933580799452278093268461833849357505981243568459958839437190274958956763102304440800753109574922855732954787642604801694601106906458425153392144986026047170574718014401283494889710183308737635287590406626936102065450863926304389988406599703369870841501151258141033506849329817682683363044842221171888253803752727135023011870081287046827414479041251755408872950359366302682272999027705483378333229540425714645485380197063452936512352187006501618286044237082100027511211196292279094385176635294228195322342922384347011851594716877727039330703118089839830453626789041839631375869443872482813832772929159667695751469028872003576277887452518353189142173995462577348043112595372948788491264341848475911987939132042422020581910094849221436321947800967635234970811365923349681141630286613164567830123750048138082766214016557758414871876634097720004767438777749164359351554709937335296673009443725092367192896849687758975007324944209618294754749622230061286357923697093908265244246219400250447798659997655982913815296617069405066448881213201634737158825386349899569868801614744199492980025096292098650764096656675510832668782946054021077906561152211306366003043932829942878818599515906046019824124156069907243044787767168150805136437913494001888852732026241235182720862444031674709005898068237835635623642430573624142475250022868673442024142649428793317026266425695269399250673785683558749343803522967457602207384572773722666156249183847429897113171843091077929608882059268810110115471203259638814607635953702213884171426765444687548286099477383945521491562733895361341915511909019049676434768101562350182519240944389068719057066101356779422497485751437210141272874414852458990722980964637965580941926963231840611151488569994394715499902075638682239880941941769231652759077609349371769316788238865509436228950530974517600379051241120153721527089933260976699568018963314975437129388047091062460345795278159906882991432803539988668278895639632366823307424865280861443429901379598715805549104519121785353644276955465272747716761755201139263052694010841766815359431274884186702779401938000224984068159128474819269161802477617330402580833016981168414766129916915540702525910958725930191975054842117155519930148539572468129960680016267507802559270963026565187034453351974582058996088047332369174796957463828318789356977235886826274374278661062491765217952160153422137352333848894812212152702501637332038347738300032867887438984020736993322888225436622058791171668410813256277008321487405047828151605770897960828536610600659768637536844909985744711847374768361724251487814532002975102604051695773182798523801613007914088927164193722273120644585818439132715796834361616398965414238462052354894884099183055574610072253737472602509347161801357437818048722019639979477162171266779583888590100303934325479835371600910191230917232529544196953921061705123380985047845704664484127198401734589176949694972248618146648878761090171174034424957542626022832867738377184779467878818214366234398038755228333791417041373234185206698686263446834425081952164573451090455116665761235822751498177802554015676296768094926526012411571672409201809115130483297017060319023031685243863114940684321488684620289277026632103330810698443480609637703989698494650374521444497509598411323059355173881603167514282798271864137610010193325241427221391481340101509344967391591862135237752655085406853680030699167385337149393214796007895839891061109300608025435060850649066008218017820545690814990045684065632772758343907062404705390947316967602601510428919156683195110145512289048149632734988490754778966960992104612169499381367203416783762796138614080036621515090952269507461419286908054164531245714685121965321061093185057725718209249627248238475615754382741394847178640320385541356783479579403543207760252196485711223673906455288029955368198276717320372905962098009709397565655391059638279223466557278539604569705757819527888606403624373804341214171837130947955171114292989143110172391425615656365220265945938865816515330412570209326130846342545916345963250560342479780370302630651955527693027316384691506866210397778043743130962418549723997610095507094099863529161541306333586420213475519851515719273487452057016729786708315587653772159272275514882317270827416923775660848517414031266659943332103051905257673107193214051720698244729518651768962121403902616979050825211980441238021040579314518397471196522459378445047543120780585246209387881799744213827372198996358062148100336701377127041760207710195873114484898066268110849070705723193160232065718143121600738119897012085293106714838818618904730261559095919599853216311232121129978181286762670587274825402749211255780195154852137515387814323323402885489378649101598827914169314546535737124747567868811067671853826459607805791527584986108325637907398667334064345280648867600643633328236309304252245378068999788206069227915475783668585547884296977794721597748282359662400368574658398084915085304608029485754421247748071228626637322271552341822898462754216215859231842175404863240234947793373722819835335148340049115816401131214851779074759264707947459789194942105569849885977342288555463574311893027724749713603282583151780916024756862479936649034962452700982475638348144367153664980445590154615761716497546993579861792899007288892752069733217602993483664936483912230647197707717881160825851649197393105591158064358744515391289010616250393243672263934424234429981216188519313456939478329612185056122044470126768974210470881758459971381574908514883253527335991439200767928385056301740631000200946766257146065501669297781853621460223631134716552947620563995415244646285597097377944766884677219893805916032538933032460424443703672933544461283826322828990813447268667061406273621062760508998208950319437111786126390970606294348091207791999967933245828561522495778326824117909115118353626842496344259505456785225533967301613565219563301589587088880374821127293172633908563892929520394273836324398381724407324429523192885792585607658571835925692749056960581596463311419327275420379448620523024271500103598039400465008507079667764854365157070280147765518785267916217917010728606295784765790106839688247170134596958909755841161664016372771928641915596729651712389593881745117360662741662574531740838570514818101564656187206777664593605404002419816610542443273712152151981624212149381887900233168587991624743992895530807734252449709145488778121348817556270403764270661438256047571110910513271971267882063910743718904149284365859434505315760332630328975566750460156564984690872337383407103495876726063269820091869532211036582824198984055679410867122081637050071443164690401784287219274938013050522430167993361797642423150884993438150282730386475432182585363701649855686258349277719684560694581877162082540587111112820261409140652736934736261638996152832018990559200514120779343749664992690971465719015320195280961083794788743075389686554282745262022751868171275092836365333890621318757358558217647561402812865264973374981744124853532733780336400886905684704209953872296156995866697729962488902396155761213851191000409476655608528033918458807261921119455349119935228713129902653485787352021800785290042311937547477388346547621479556592810700051449374828041732936173105234355311747949107686778377000588765105336181352346432798777364569349763207701580547090961290095045239102441586910542990365219604881855218163015195278303611401695339516184166329455100974441113532553372211614193050983769864449129058569115314214536441739399600580363443934900857161236743874867976331411749273312444781255471425130410487171416170811238411580982399742016618252919044679230062847862578957101092043268642897373855638389723022548468080223778182415934955109986425415200674132936076328378455482587070118152894449305321293407540066335147289476722110667419441867029991021725614437872284077969477160162735157587302220803520148931072077253062017327070022387222506347787936657375817777017095537150387128862043108407606918297542022010687050899526936074949130061219576957253770273320711352130716243031261953062021091507987451828318334041825557381453290880919980447488987099476463167396358133297981159855527577283110976414216072573000654357581876896080287583507282393381896557434193042542741045890705452130455394716261638802862564562249259093461935144223686684836861571797065208875244729037641399451368698603773059423648123281870147536858786259229757218652324381409003106836220711016673213389594478156627331519621860440356179196376474228808067677013772658466351295651245788847623796434267405689350675482436046586629386875446532395058106388731679294261131977373773960457931497873321897205594796347547997733439024168100010243058007644489511513847362995051726054618911858122116717334563391339824946175149236264253666818766552139043595799279136598443528865051459554825366258436906372963553310594850882289286962283917388064537686579975545558417854301125734628819973316194837796705460089589025750203241756994438633426600086843086786391268585954504709524411650452741233850498418759960390472150419264411372478595689507943384376717058206635432734953038822054312784196152949681513835799218050561183153944544511590439491410678020598545169839500365237214176693698868719132762184603342495267061077405234031976638569940876226624675489946820643535563154261135453819531917399631860648148143087299375098626494898928531968337274163099085620975195218413361039099969057279976103355388698745437257932679167824632059611334770441996143861735232761822246516750444624803674598859769025071674224803561461093918868862489552435516148982871605385776683846496281116309142562815142335383528878912319879403708881621924428220071960732550234860445008575555423766506380865809194681074475568769317973941112262008356141354631457438578394350157183164944722023963980927245901020773084111845735084442715771492478834052149155690141130699060257968027115117960542600940462473650475780632229568496879858142495191980290210542198478883807167402490448343669141060888603002032928247632957590044197014770355241670103610869343228519862011109203429522086475096484792139610276313727600719230528821747622543645870586789902032841274867479062931062516706122443786191353213399079831545705225568374695754810919817871631009944833208023775286876808292233972934129014935552793783493318614305331528688989824318699051004380551685580443360532382391825432330876897784909519251103285037038731798900675853972384928171032182387169686330421007186382854626771595043369804540692365269506659793630519716012749004387224785506109426643229164147950442232261510859999508713902304954594083556567607335552961995858319420198471641028979443163130319119609313904130468166056729253393072578092314578723071477273407772659411783887762123136607397918330864471215374371424964408615408858331921076114123545865260215717706026728437389542377791605219001238368250071299330701836457870975618532845706042613444395696067508158280326840809527725744956690354197481886479426160846423918586203496953474157709167122017202111621727526934252040810569572856350764661214902161890893627617868051208574950440905650739070940568304997168821228666011334607397972111855482952045806926351111948428597219723780170269875312927678291590754252487509511384277966408920425187829577659687334364749112480344566133794820758345204969500982915219336247646128653370448941630290774848272563231726569149355682698039927129038340449778867943937399947990102567327662666421501442845719919816206619333671806285454719238585652684259140231878354674940890989644209276228791739203939676206900594127652077917744582414009580248886228813838407260777134938313849108853128377882286993191841761515692669993500233547457304169903591819719414379386067862340642846791093054646215152479107407328478323281336465866569456851634065321785900249970417539386853283193633147428934351751405897010164060449297752385780291555366191523192014931847391593031893471529999550270841761464578158763880671840759725526453868907363184983262822649368499376571871372003518099181817337658611054586856352934699844219812340833101261980752958379482959215441727483189379575182103012562402856617018596960360984194869144308083170228203991469341950400152649478236573103541534744963279969354471055608806327211189106690744469284386831593305412886480898206692718931317167148566225887412655262478801188123945774125756359014578957426021756969221265046041704541292761688766595805206736807735334695622080526204842030747741244742094584916436949985073597738256830399011488120485744763580009416937749384031706707466758755303433932316236289561006783992316137313458063074050716115133593797215971779845288648342909542050288388486786285479952032958134590639673717348163855755221664194105732606439360861684993438802883093401628278586920507778224273955127122616750733241857773622821383670516726225657996627682037571771262403137752799295374514278195896358570458582556752970864179543906753720808064225103217982859005907584945436165017305619499131872886040661281849074826089131119714928732743072599345829365147260034632282597822530911100969305040071951425735205758402463551154509529604925234750932301214181123225014161819087235853044841636193033715569898423632700115213041865931604529074648149811677731293966557179205148607974744857495677380511041969582800092432486809627337368724423498407190063791494994367329341522246614259505496219269099539674568781581338581722700916425969612480344675882347977637315854343006094713366451987265599798306206192504761342022609001568772378074281213415140407866334735862272823935347888392762810868614404314529068088736939235023071730992212268186676585913922653306862044601848438736577644718287764729094426471129729800862934244997827615624518328293100897827309552075052905194189906749874877799907533957895410736890235131854262643045490001731166367546204247874706874469333547862391378497258674312940826833788176340263238390464576431887686499894508402638061200021843276678512916196346405114262418266042317876260629674510457659764249735706075243853223378051108260801641858299515806452888432300470172970922884625293125877346792285809603244205584414998320838590413108530658526983399470066292350298967344577786203975044482516885479573699293559341595486630803921307709593338181893625610950858227329439803352250508544390419304146703254058552041493738733328779647080391731508495362256706279139406849151569294434645508327831095047952982609968634703533872834671194149079586130742385506637066480285080297246006259286350609553856381128408444308841635507140136954858505898592174806839817460441309587354906539661949997828252260436310754445612519529524628526817338395201647509404920166382080471908991208971468733984665710840059515800549472013842456437752633101640034247046250478734064542218441319032741939924266771019519938883352395571059791243670659919339883901377173509605417977612698007254940776863151416690271010511989785159671682719516629805533044049523660847476303276909982944238237192990870182192221785928370641037885958853054870239130076843388359217133333037888216404812490699093641601636386153937066797101200367403163590356076250228259358926309312667649857842106160595154717257551025997254687775180800580459054749886602576653473649625571871326106914281064477275731811179438838834297163183579867041557915391865649341830867788926319904344874846388092302174727809224613532508153394081396266519962724085191866472486059463042016868400601362837428225107331850467731102310818161572015216050880050593299343487935509041426793980284188784081283500690170043810492140885992793790483498443930876277574602993423334803033013853635686906293820758041051962470032988544533022694471570407098347644896282233359316186970464520206769171203496093413005676151037390810966476678207810370330885951802093083852433572829817115732714528710994553533173000300061361394797770540487396932113265606195586564525889283015726688150638373834321022855246652826060203748497633528213639140988549001790430863246111537293607831214353839370197714627090016954750624306566228628949858863690400093256371992452202736835468478798835421837087118965746324291628285592533924325095427880300373351294479752120056824677615200155947333070125608154110263807024126447630423868744601418363391519735398513527303059173731767781799399354543361335633424598008862710249873276174826711717707892852378545102115743755096644377414930072779822938242290152264973199205814073235049833921930503708566698871622221668378055370772635562637792689321250587861325624095135644217790482829504318658479033384761021791658932709890129363637655929845265735588541371028524424204288012741049043808107300885042140926885014805400800239134862841402260489726452013651029837965695514057168802021005950563700853476260562748050234242760289302715296743197041381188789460165151043071808291969536306891720546017790232273059983346236251096500363497209794364974754895473698794881999490503807894733943247208445268927504355386015126641866134272976332004759832576611469453162484196574545368385632561513832284834340983259358957663949238386909489847330575056106433637166037952913461378515560459326591996393376909047763272801751836897994593721700593298303216301388990365815739310964260185277555025591483778478348472037713674008069071623411532406288704920067544355860095636492000167545979778550028346901424291214932126310974187590089776409399889451181695264078725318918827768135720844305708787297563848226498677695320281102850287334133982117689103134912598007856773195843014552267506026920776361488499058346757036952103578247864231506924348649013997037580755013230165701122406259980527224816906287078210755150389906318973204238337932865428407479164174792196750666770530180653562919514802692949025502626730993091414754705597349505666237255095895871280185369025479181188716237858901118211205629643521500918505666456440905942508017885982313163517393093691277650497618528499077256150352845251259663432960303526032063673847069334114202379287823568033274549648815783307700677058778313237602637752686968530435575903216101659522484124000355446043594094133310587195337669528041504423953332716199502083722794428168442987809772653829657405346322194534514800624845518671267757434949343173369093207623805859465679732767721995269884207118489014602054431796412919540276932293846802181662746821650265228438130869201471887052507860850683978509146643108577040435735058611102425176847089756072934338012950852185241806400890961062303547152200785323037873592336058436146007759098367254636233818103941963802788511053449708578149826495000896417175906857900407601260398012937807826624816309770580403172876998145156587562526308201731283239162987832024308122377740809173173772445730244261086523920941190694438678231436807537593375882088744379693218045350527527901080696042765263340456527238964485777611878937225865665688850069335940561165412928034591012031876104033824763353454175486990024450245446375540644413485458190111597739780112642032382650615983026615825284894786006124593984873963053415453123563934932270261592358234504851082430471005057558765996851827977787717441711911870370774757890211215048318346285714029047107560912860895446340737875722204959662485237622902795088971163277985803571630442393207895741245675444566288326588492902912214104887604559988757046468558149398685392422639489914874473669347890390135436900717184514076072782165418020831220230804949288490820500794307281104508865329434055888351663210928806573173513653383832982430895640824396453373786060309916444816088998104417170193182959092176692824710051737844042809045419874821179994601822376181914523556114777697336615584426655218210183478895545560066920872644434502898865401269101626757401602924128301597208337928911084866437276024893072580639315237804372842383661724742762580553484539295252097423091278100344695174590706144344440158328556559566609582664740017214551348279843530843998946568515372992485972334553882150114198991568259223382018673384330436723878391594836568666711457283725634513119673772557979464917041317293497717302617733363440863596280911837618292189830630174159558107528268318861851918589417066592116704944802250460078728433820081650274545433078080016275382710150292917363361886048031599741678980851395438288058168373596400275401960771780008687807602829422230445345041697276570332202893506742462699367047439990709316937098972918078848973831790007198341197287514652085582951662066896639702962273035901655085587463930925079207786507853850240285151542123801892817765002607531566307517919846306412558070792951684765671872360644391152047712029105569209002608641704363558421117424083177655216228027860948086274700858155259004862182622008104271608244048617380162073156191351430261216701634633913383131676817831847149122516151790423293560237777682303298407682379807900903594512166320018056385730284396399806503859372002203061483650768887013554175200710829370739520611259403207619399938937243841005854115388473465392219265320981987418620659831980818499376449711079225446629669842211793999615991068593396656813692707493972709074813261971773559640211689284672724250306080209275610321216462021171838265328219825994417651252942279054932735361189224418589984806526803008255569906486380980261065087274899840743573116450599873344126341105046730674676753722141178414258403043183928995346612005603182414003084206286052139141462071106137855979868369994667524804313130858683630286606943074429905660524302025618200128184199161700629625386789700299406122536811653466803016456333969486556566849742850010222533322510831087350037627947241549327186511479683648132452148414941535935981286719186167620384487599956961363432403858149700683354533037351448401578894578347082460998115222372205240784766462406747184855847025817704049082588695438821552032025874385175815208129182197544370721448178619916676573227475493986505247334347591366401071337196132209729981444102006883144578292012814906328958271326059953437634827993135296456891718850441046806210581941630556634692468520440348457907903990027841407526943628047025190885520646834169289914630583971136230480720733305078016951956652959144217938334776115764970735053286276227911865277328606815593830937133424089143807127131146180817686109439381305173304895169067403320408151823203854330407443057095701810857913697938440278261523893662287972713972273066144871161725121517843202134117163767554933876507965324152651195345408263785322250109751502174721822242682099446967972411177999106304045464134557106446793066626057614858857724020629206915142474642730327582349444794540349760399185504272909420432160186358341616561765293685010528179051399363620470633962247028879544036639720677145601042344246956604764673038133955244673484008402070639186687584414979470997543519231985264497268358745815179272704747013950744464366710713461028094225513391040875901292687140717546487491554922457237249884889805870155475369015281351503515009743891396860130396266718342787620204037084569026001857391370874903206306948375783277224239222696713688031495490586329967070103051371075323090250192288256178028436610246619909547744835058869666013419584619712466115325544497570267200335523489355697914301832408408292166387533843813364072227579361936445661616699784160628689008099228785673234514329073331283036856025174146650122714609346779071366419236121736188691306121212509937479274117351134192736426303855076509710164408937617334619963115995112791556409677895435233773483298796770170821543089755243886963521545725678181055900895033110564818050492977028333800574166839329905070218322398896732038265845189767925838867662697077959192585609051870162833312819700363144019184712631414683849486356733469475738321786406207692759257467283758423983941254192059600012193220330090311913955946231517171514450650003232333130754161251915827254840707082186362652753409195059082501142718581183534231849669637400395514765573290864290892565284861523287809712922097035188184187636362163817021101479225532407192620715431800627713434886620035594697200162793638707958490247197782084955094524056969854779812893374629442520171046612753794212593732178969623321421840835342468617644771591003520273945131197641583193525132756599804716907798109190377920411903746016571042555012171749621456507567311451090315460499423635306260951209204759621270411725777203897192474510239466428818404207834647448865621448998764515457554130533966084633488734832790359687281533660036565844005724143696776260079475138476246086161839495477202355223904729683084922972983582601387619074712141585733612146243734884260353712223288465976200439191102453137315359966913167224708409936882978039609606644589984648590111674284225007214021434306152186353530593015612100725922485822723772806649021839481093274473995886609322758624521249767786816369710192972364771068497066235688824424608764034729282698464901902962867692397244492017866619673217289988842329968888824587425918141315507663601593737091798760860194252717987476922738027514278164648753742313787739198203701601832746185239886839345481261305437260341995923978370126299116879713835993085439211695079089844156490634575477118544226804741485906373277082605014778025364297269247827622712405880032101315796274644807353574921121873838566385197374569325013648668707111540577738124019865242692126006934130765396278092744160934547061276545109617498513930790312525920546941776563283725662224318392469926571219085599907741160106362767430406538464485041299154625315207317712715506269796268203346032192228372118009310418849920784180829710147371428453428068645535458173843203055817719681535118068354597236176964279382876767501792050911780128672209570335681781508627589993392848084109781451502977877924416009326576092979858347175547616537263245953658801406205474511703942977819948845634238441441872886811294999377672143762459732144683901535708977433084236868137537106376166838596574089007199281022006776805010923570554883188010002419002497821699630219622143677534989521026604149181040881641293708336185952792801618830944295833767334777966827833732333354769516147813223273143456522681624437985467717916357136954787724309978594004597524839275999760083085779384045494240331652856110599304088672662742054381489533134881983571784042926865646049786711410804316246752783130024145146096279526278484327883514770935366644043839118346312669911848866609594473762381427768777098718930171275231452812678282208058268682427861190736685483284526254569796245463466840399775002299332916509766453932183710440947703631456473482061096224732132749467505801517597302314637099396769204114538591561823153130818905343319464195211402550701432232974475765160279831868762372192308808035140848107397758009799882512329761875855665120382261827225788205764024661558302492019872651284298912920208144183934220540403817796736566851063444006113749917835254880703270345760377867572183871705926783751131934722541002214125284030099159592515268169481826943047310431762254879044034750204619761145898612733575428480596632512586686248644987304800469140987130794222792754305221693113673344173001532504536101181334155344629757389912742818366087193201033468060604117234392946756296564472383094435307173443655144611687453354008779419914757058480937583364178633293166486261493091680878250145793152757500273232969586319432746169053407892998144470627367913183239347650185038883551258560232036965432283787213701806837506290956842165619531763034217572680201695545298561879760273202205926716060839340826167528661994946638489066621209069510881721743404359951078347658969786162760898420746597141680961293204898448922096484373055477993069616701790799691876569741515756829366291458374530781226195060801130289129196805008866332361517699731992889979540114504187112996621339398230837427432817807706672622159202749450947739428690502651334930896354562341520874613053182503239733769228996712338311548729421251214636164988338122428045303652611801303617996331848996662167948210537629084311321352863604893236826852865829636219677752085133653552295622361212396371096580569061994914445855311744705205901990614205870330489703206294424439236079036042854299355648288001533094003481531805483824387454548675182445627162147600269875863204859823541396208797614683229033979938389814462115122672797418125169061437935634052362043754173034598552561363207960369967037182519439334108465139548455151042944724252581420842679217000860766360978523865089906609937920821404802605249928428664415537579737094146415662648257216099989846488838143079640646488109034516417912501018227173465308711841683583927399642998686500114756821045296194915986666497081595273977822511842716081793606555961430777379184044253345702420737466039505628827920332666628183250433926255711933288936915844995905283234719895106696695947465136925049566462184971412218914155377773915265319499728324849078625458538348435212186529733041321523678251842568089751509092484797126869302455528173595365596752803217056561037399568978893602262580391611001386200760185285009995083940139575505093003778768440281461416077970148333332531935852448840451817162342183401153191103140768431527238788247619410654191355681569675765119961620135389465751404218638385545145886280352716104632859127101132973799108829360121240510188877268841463209009997273963097337833237362732853543273590791792311130781904880880561754122552554277773079234987164828967548046770670507071600866681356352903430743869959145296207254109415559704946154125574522371508491662111774516487177255484716215094186659151273244628864675018561878955376238479464575504911071721238843025013845488124695578312764700422606586752240114183957587374624537834305704009373845772552868377618212584110991675853877574409816720124603519547331269114447126538700839741972331899613158920595999191874677585879032375469637498613459670611566022986029016472199108948016855550332366709316961855957976906065262833661430224367290274940280389433149963514890895294454493703450805801539905470201643035315982069653568398915030707411565324119721736778899910716098793394745698497581362620812576905486134764242843881805299135228085352500141572837748869896375652316504172953501577631440061233614617927656107202282381447425675221606755005643403038790518401640735355720292073147188461256007102554633901487686529641255264437017924549377542813159870234573809028037872744347788265949579879412482003142359449167794993015277537212066490746610007209501080556223674764264888285547627520714147594771789702609631953613713270887829716471114473988681770610187033898876501262043648236999984741203402826815898965363164370661618810712738885741779535374627352428965955418286733362357020037686673681649439895379186520531797500285079228102988677185892211270726608456425761554208809874211575800086101677649769125397298931616226889347399509258981602280893921213306143266577037674793144710830415789863424632788209209573077312384958254267393776741936396930279160204968026582770415484560880072597110063578747802478232412040056358621209884885958656372778653351862095807266262809427575261130477842047319328734422536778871133657696409370247826203967359666538076049048477331559638946312452040229371755046736867605466745422500811757077759092750427703391210794300993921824300224579195450847429239012463570963722721230112755635287698806668764089011528447899548998778983519773596939514031970616852066129506180091167205139448714693198684085053424496905321673453748633312956812618024109783843462863646294681044059584368669883905223328437726946747598716507625728659842206274967854406114067655487335624516573916138052074127873896329767199096714563978990062498623158163886993763607999599694664056118753274228439223806442984568729867909376188048497045073025975378456556318200065259070342786273875947631901531102862820297682571329002198239559529215296156590738338460978580706533357070188489831076643972446691395155983731611439948858841670752272328600355905099592752955665738168675785589937818934053829921343349359232822166467341505567900581477933349009371444459285265212196640744562415869669894812587447702567072001509592714089655493594128402147402634308659822685424871594091603432592139495763740822992947922157585333876086287535115300227884645903947900458248724086626353990055637545164516319072468846230666159946084603826872364266537819611285623685521008883021222443019851881696648321718265579124090897850877459844665601464614903364239315358373335112478153710411767406576881582989239937367873556639445756163163365928074377322373705931198110635037805920795801807799475361210265663258701832796827914385006107845598900237274255401491502288033126846340971466581299730445779417775678435770565166458676579817396672496477422763725427253942465724883753221570630137837924690525919438714788709400659318261141702164001412759914227939728764466739357320034514995483896791593279756016828083841135561223154879610958750116251564614726264330305156647552294918296567994173708229179929122911473887272467017502589134322027766989441069468675367143794658864828469462562792143567430859851952055099985485895845549386881493876560385325949434411692855782963842080754817724861865393919235137322944907545558044920591202844837814318807659787135093255515076204064389443588766100086767150056985364342321356892045693189131762847082746694115944176240891035032982993244103579660203565779235505572228596904472849731521133237337762616009158856021424412767941000536339732805232328468077253346299852403171713094949743027655415724100288427270753008261183429136423972228347402971770896436460080156417601821159647068795308697825847336645072206534703800609822808509806959320911365983049584620447074325334557580573513274010283171436832508888260523453063707250803315724403194711494404229398341256779352763226825565830014733394385425001419743332053202933194870885378975493690264247039603315817256632044269526948141664521543470790168160311407256477724517081114552456888603465116193237039245737083995961058851940287046029118863765914138223637467498197676531297301913632958730009731646227062801528533185224787421587411632547231794216683856652296263539928349805970206014586096267906352576537798811789576661328868651062643775261286588442458849530201718370016944043771510859630057688687739455153898793135411088478479934517042611496890318518746381753658330773896963066010454341500476169035950090369186650197967762168153048517847407192713839900466794505597345296768917417753606482281977730603846775004143159405201461476297346610435023482678038169839857885301536899549586624870315428154196571246316671782323382680542943739564730569345747916952054518036016206790183061569279072148088732374946979478346098651451331743835424139232869607242205539789553236460070288904611150659465246543632408738129515751480581343343697132711337960804579893919313244387413084338631019029362136666830284387258317157041193098255313668177674706930098508025073007476155534334053682688056891310262022126121126701391214101591029610110314736324118541363204262866843469761031443829640384534102343758091677319017072835298947751310108036063344655576210333197216883847598443305752430084344147053941158378874845908259903131261271349157731308675495292530646923394802852265344665273374942444227050296308393267437918965278726637427384013092927526318469896620597269115572625965016826498345372250198977551949512496427864321819642198338963978049165619802954425406524754143870123819285633116330238503304071626304550174771291991074139278080057007337567494071698279363997246538806255847853235529939711326028499560329088369747496186676290303651389190199548046800688993774593342886666911136916865845876439056979745974118486773430775655757412466506630875221880273417535988064380546098893883919816029780618154010476673805153097658889440897762309401949966923489710967712451752118572989152766216777194760198117473658488292873645940407149758753951109760556304201143436563143231171395776814939428580919804178860896998866399497441560456658099568877697737910218953925780703412191935573863677233192987168483814290042952554769858129534049733337454311914652794087866652621537008042014481137949844055617034214137877295856069367526704288273948720468942343117056924026872215407628727061187175418600742312391267490307032477842117887551903531758155580589083960598930245453480893946810096504765758017234124757202920911190776626094324787177834108537214694112707233273461165521970404207655554336889428419887108694856420965290574229033073786278927284829483917734715002689958636807704297160625549387485124292673117866047382550367274293700450486884850976099852365430191333516126810238694328148895245905824313486995680737309601818299401984550524165129687766557302395854727699061589728941324741111354216184070544998940019571037579265314080811830614738836081376697390501894931588002047738730470974466389870766029617902905098859033502061156857106612504584105742813545458262778823008325279754424209136570408702911205562200607406064436566845115805617271203305611993525276101600245609849297693060215326652395573841435064145705628838911215019267926707716589493786209062071597205039151383914500035482020840492532938272092912519264666438745335807838166778170961331926798081283820075076125987781722841571583092247589839126822519779878457531944535051205165033106729873423014691350983605198983715193824900658266798851671027574652364537312457963418629661461584719691282680316829259809470666514508758843758895676457247932252363467101267593759194734515487480208206096673459563019001646043103382783227633343823488125702923408101126608967518931249604704237167765212928979903778424253243066058938180274782664199263251530161930228066581822296866712592730153479463392522110557889010241117999890579486583623608610066104694513472630173094506788015759326076130010955447082371292163247424059709831174063213815274275328623451115504600943190743309335481071017784938211530650092546554309454066044904656310301758457925766910210808359965536665431914084363384524211149292657684781061298010671309556396725438690566994546338770039752393061599618404591113544276795764175412128157791443083569566203141807095415589857760761070799275818165243432496222787348565000663211982054712762926951306203736835605269326426747882702459753463716386903886100906159470854582657428241174374045863946361335945597745419422549742609918435054795361945769804626812741906788527412380249713263518621215291140239261197902780244766047114125999656699653873000244848179781053984496294588100526742630548447415446883789221268855951152340011245789554552977317955525588397976699587915666601783823692154050201136993039085971989195221522223828586984965743076061773168937582150350064505347596486984678213396608893281247864973082208175192582768969576889370054098758050347894736394368021075354662633209824247200357141113523508423791921062694579625261335954478307630436991840943021031090501106923977760807892596517946806528739858858185016655907641380824539748712398926560337923209615271479130557844737795445321244627545118074136323547082825561049034084423090245333642893658664265469572445503843238404775508951723062392980842147813358571492982502251400068761452208487541405358254575661910492219175484864102804504882175853635110477083400023354094874551422567059226298558345447098362203207377088066462622587174027511174633794548669360147918258742396438421183317411098171661443956498311551621001562153428686473362956945769675555240651164585103492349221582553587362668115530551660813805951636310976975307442676302299991518811617267472753331299611837664889370541641718955336795830097033886877130962481103333544113761147251585147789139007675922902170986611932201617983478244427854697588781461536220506160455717528293642131073171753432981999888365031054732809705491920060129415164208622402179107893256652819031484269040296280715149498827696195659585368449169629469731916764376476807539210378765509722691364616708872587557626466558485666324964594018208217062436690125650035723493438397524553778935885223566965037204669047057096093789404567946452461010456634342832156973550171892144408708664217038419684897602325264143531811755332968950365078397114487717179492071209652720829758356304984036140356499449231282943543561097644070623890877660671117340194666580364607362440767076339577954474838663937844628040957353717520588206949658830400371353461506005137382180143326126034718709044566731243203691640010911130701186706367558695764305608656693855547119365508723443847319828321970479155242704677361877007218448447038967646387880916504208922924582224008832880767233494229864104927742890066078326919780054982281932403038371864674765547471115289352033067859627094156642286474213805536540301478173479914567700271447515689782500966293617572409416403617659970651899743126503285396435980701196062098991527595529476671345679449054917054416342935722557782731213638049134693095610480424777115805980966179430682981030082694232406213230749531834946648587568308614999157346465482525914971337364375298573196858834641944675548897521779663695724257628254525383102424327529446921289294391400957151150598103302330995050903967205196602532903907418239187311621626838313386298888686272035381456920086525622459063288716356817434915514009185013338002390702949868243796856093408460261222653603514204100801988778663396698365006509016098788747327877601294411441063922340903922815342479899565440928714066489509875331724997592683637196787114941168143327046822381239446258877234873758643338085441131854036147503360262686448637657739830582937410432788446776732110109043679753857798160435297690796730019931773448796724204952722640111308944355923067008884719041221347886305964379975323716807596892152832830367788955966694066597727125110605686523041532115699718046393774561807920545093304852658694072118236347187034996011283292618150107368655862926562341483096933609582185078640660794668751681472703698166687266491757979851790875201937133179868558847694851624818207230098587917003586919267566126354755261206078537172213259233286161059262910840654731697301869302154790711872360154853985489368737427552864820350793675914125434163819697964974177935055157217055098702741496218008691640551417953811409104678493907921840134014399410579402256829093733897632237190892219539773015390903745035541776410808144966690295772678364007705048983217083165182476227761857511461169282926620547701116362047816527656139453768293095026479998480682936747567176558439000391566631472063718798922731601101042845564895211111607205751008485135786514685497418910522584558702968308533284452201052155114919661327130971520020293986089516103503522539803650679015833497979132125895447476749424002222197174831513594589246831688457553428837932751355737057535881995125851706280154522600680085901257748542936825413105956043927618068567712296975329797725169688845277093938300234000040847683231043317406652326821683883814438986239085548678817272191777654831235712574400572871890910426394807039058353951730032997181461454510081350704656583607616753613507790312808295271047208207747036262016179802843500357843176614137462385398850344571835341645849219208506297281073610697812391364523447716565419971294336707591953385187630553663463286575606715540960101969296317033585446583243663651402327046060470236540734869513429169445363660663024819982647661449439766931058539544431541031009473109316644462457952717646942947624187038958702836514805282677999256182686319016792702899167564352564079652433173509738999565968263500633481156142627583177472087914032603587813916533588871962633518810755277931055382421775405821550984925772828050268421955278459258675584272264431357981523373306005809800685611052519317843760831781940735402865562110198574105296085323266760795625662863449556087560365048218064636689539648641768719276821460687158347856302483473230611889883265807289534119606165220536634138892409682133281763713225041078313061085202486415758511610176907850217696232683388137711181321644879246162517301859790444113249867761620712523340865600876160465463082513695854701473170543964791317134645767128809346780081132676585301871711811405425647878018465029775443503442964335365715512629062611016523452131613076788804153283655120935635370456377732527143530936551266174205289022275646280472501060189937599380442036409256524066274919906111800266683878067960941976368715646179458565914598910526889347128318516017696821165439770581477410406904205873834070260467103258312169416017808599317176022501475636409159377690010805061172812956049985185770403969005983373282354434654102656927858635499538064164653221007397330343912380716422901987563518180864284701166922624005922121642349196489324906434120740892732906634890019687117195541296293518564297319966103089484789067426223879101216593155039836261244887301272512670292677359340889430662976230932056970098010318747237261094599805896896164721438279842336246088796033266923746528047042588742332495569099870410893494309104983253503067521017202314286847208175345829954903354969119253287711357292602909745383118370700193340427463905290848361565462020951000306604194287119600474659283592843435312235186557355641615929061512750686197108140016668707917223230696091468287760086022206819360285417610640945253252028345012191818254542829066959213623731042294562394875399755784340984877396295963071065576193893242271132901568818273152459733138781972046917326757422760521751390356103209276570696113105917518317678954303368780066853828368601538879615573348556201836673594413078392875666368815479853553820733376627766321941712345458228297184069137487224058361434776744670178684897711268193336799815943809148271180293893418085881988985960168195982528753434797145039476122359648460609908169529457796436976223681051841494726218327813256453639588941388872491592775131370801665171228850543374934683797793555233205336553257200778867734322243048489635216192508638494930569845968504703212628753583748011988946659454798118767171112705630534399134112739230756609754966003442302950146141179082225501110681299153643766815607436924130363024523577542288672722065503937452370705639845509770018560436489391098427645777712077875349956278697525483389879987569384053769718887219768512512367107812143338470599612447833747055662398838100835429191908720889085180640176096590165857007246839522002197991308006482079733647109433237230684939836465854160028253577984664408803276431405030614567322307961371520080008027695456723451808336349372320453481303191984999992798210090809947376656232223487415748671490138920124219531405843368859109220538437640024499819000916071047306502303048704018999005542125729535321844378067814237627474484630493274427446683693955371099152688880413763537646392738365160876787209585348285881575328619364232048031996541609461468531129102150546753010969024755446018694558320561909894824711274818061952268481131322495361087664483112630366127803626076438073395181674404098314838806229248822040439283198377703777115781350866602913865096212496310878259452848590292559647712556455840868187166302433976657450030768269306205056453021791501243890119100962784746755962639528084987148255289960021413035122433801103414704412979897630377640386527159593366179199032782776636710521446320097330813350807202254663152615878034210762430804438271915004611296048419675295330025574499740752598974300607797181473038967456190588531200611596244382022705901843534253073520921450540762672540507454113223714483646999492164391792817900795977153082153226376154454839269931834807880299841369194218703000302847330633558621886769413910930873840974319698610374858792693021145662594340525066934204798532475722766435486172246749709765001475734752094298902412370185341611021766322641528751242663733042241510532410190611110784423561747077665926810208791481788886095379798711853145305523238465971354101318095637671099856381768659969538593587781647154948226408451902611433887116136622875506804876056392488636542869056090457012808832024179444456422719526384808293737104822605136925037327141904872127042289304569092391419963488612114293760542695467446573513960238115556926052445308586724687847187418016966564437291123621499857625898391754025760917637931276218426706330243522705976930269665335021411740634703729271684565938627224029196656439960045088235526414477758557380622855932495102338856933183171534116157504895715548090636433507848948238465649911616242418840538992368727751474312777244347165975613778385117670887024181802703379828387593595301702991733550170629549719666198958862056596892773096603183462305321208787840851335697489710910581337709243412897429367716446955958553589428610193751262894960027864102349541294340575246659122216644692261978663151834649124041337286041051073501808546788186130357397313180646868164186243562500447600145335418686617340816840258101632315937299842305352093074286571960684612380557822912970379180935726115229241928380054603456356209707261995659312803660129296657909001725894955184557711952480702319289636659466157760627210567952138146466846498679313996133879483248104766590180921715020310557194931267031464982861366836063052132016608021808172782592124691167736248060223847869587211317407811501911027657479751693371974245558746257414347628833457776338695826052122402409443428127389023393670334794021460340850072176116769606815967033784391778552123911901100344823926937924655577872633741977862581112010098263141612958525933925631204888215100025910620478232034863465951832175031570100074667036208109940611344627919481589968708526705910077974907249432181387738572271999566170019624288848575767818929792749339944132426558272486255049614223026693807204852346496273041839262851043714008071792139801324624783565086146495277210073279509832084279401031309582047450900052792625947447684193942047724056941784030601140371139544686770488828787766677333159021952245435180048083266159281305290913399892152866289444139999145349510205581601105847486569228210590886999293008134431627864005027777084937200470386348168889872926878743805985308982134977970983916288811129544634347493905658068937529391538698116866942347026235936153734003497868505290730614507484331522403035529389220858456407485361822652542812518186962256880659100452113055944555738547019139898161499025247412484857751779714759563248308370738755254730257616523054542926672636301208203091685126518598020621542959114619564186214433842965835936678409501599137978755747130761103931542363977507137573632857170059864685928258759123835491350018700651183290296272134708728498836410026654219684958896673368190017715060679301101269369059597801871565011867840457613289965279863504057621642604638909354951490402208455757151310097512859647975289928319431851040323748278679676055387599198078840182372598618293896348207429830592683655739094974944120421263518332450706891244436884645928348374730842560035748207136357231896042947932470810650937723450146459997547988646679090307260823353880468742049335988612326877476538361719020409258917597926591992504233390660527750044212393757927515340216424006834092984337373898754579066928104733986823506222377340698833247003804212089648753092417238242798105662790682098998758312970570018342802692235657638115646141194037323988025481713239083806663706385299757514465945037142052867797055682257403521391294060450178792324001927665380218516234821399606443561064510630800277814029782066806151250482784185868831622340296797893812600677999377058208697997134334173255663005510380575176457876488430058772639908224635132582880453226031268545375349960689783036816735749677759821865969321259960590003616758086845516070696836478152850514719182144256442498737177407924508537270260572382525227566325340201920601187977139717876895776255888284746587320083283479357121908403235237118763349231615602597637616704124756407746197257208019822462408775157828008154480340363021510273052262686883534608505351954644672476625836816991472774315394829622657320298362394773455120675302827234573680160822926224694428175229947874753429634622946551096858131826069888858701624638295907348607092929172285265660964088563125310107763172359405567515550146955508123783919619467821029887961389849095915716216797603730387942542965545213296390757345008538373038487037697222148494638025450371488432239737976688872396727019295851572865481330681618692186687978432282745402499040872833350504173515940406633820764590596043876978434687549252334614395417206499524104111750689292623819467242662059606508461548519453923850639076754019754788748415734610143758186572506000943203013488716830579453173642427548662273137353061856833770906153276529819598663257380943963268311614591360228472557989046200867553613505691021744205043485338469211627747108541315457695445277300854318703408258683801906549097076045448558780636066331414150430740891904336543943171251092452659818467856115146171793186488356696160528290148450922120365245941936248593751062250756780492329911273743939804597393547365893887346335650359071325655898116015604427101519297726440736893829193488527754325773380564857593582799501933157771815023523942701386579062235856086105189831082247013899639000434211767129043523657830051809109121618065156413372320310071770463331447250400483751309510599464154317370314930115241132821283002104026095842181399387579929307253876651770883470230299646016952715215375213010693177732165372323013403811012398483393793211483051812138258417967366664889931166012224475484242086931996382111906497397633584111987805076329069981962676788504738568826545162243589602653072252244169899991213109357116252915907568150363304070413709598563147217464547731376960972543981294319715465855334520427534246296692923448265811901462828778156181663815328537816483781554334448015030589755298373757223744520541913262436824617189769260178207017380843241896131800463761298042135392632836157148164398652453978228689607819508099876167083959258003424538473581178280148038627952546362994092589482802640262151982276453701968851163805070785620909719275568000575317681679821656410949162308912234575251707564895116692929539571136727856767212580318007132082366035130324646121004277324056768495048408999617045693463389983144723199427262553052368884756815105656227390105056607093158696114793369958116839391147708736494032879137950188292238664448013242316607917557825483786471524439429690949748912590900114858745796126081706014217007526644278955554286486845906250039420328486488160073036426723102674613538497135991513771994887358954542337097136835906256414645131154383200858865508077817353216971830388295367942124690291621300743561671725999739164410142947500045805887063384244433331663799627000962049460951796824225017599474167950610580716952591108952394428892597442381197241118219272679880466750221163197859640385155718976093488286468142785488503431980157110319991802837692684222546682437080950369681638937878685158369813490643203323322162267039150956515916529578405957387182013002726744183251815692976341894160921808376566518210241559334293771778222118445632944910399655996326537534598115295624202615826123392682508426799458073831362475748928111333388147289504954032039464167834485144359931626726657439875881365608630213572975176875269774386459297616142092380176040106831821199370539699086151925485024842349315343149158776738454757085847683635433682685981492477019574040960540267200721866980589967879992519850031578736969343306088229985020959337790887480341690064502813357153621647820459486705568603818827548263135082678643776292256816305430651921971665565249083333633969860530145381908644461296878395379057006863593665954079461486978245824491621748760077423084731790101683101263678942022514727647335891814793093092917678658396691883837786222408643491050673952261596485660254568690889415528207548688985852225663601563775178776099553556879415280999906333104527809715923313618269899876261637115544136524940981257897324566962348504643808261984516739602004425853394177026157301665275375985352875395058748411020037143251332911625523169668133207275965016007334596716502133772414355853322262464436390545908053577666190433443785292427707695236114016185816121946013515400937033930542774279231194779292690023619389177696981532994651372225660810332174872663146877893205481644961570995510718215285617711496007811367114327710031990123534915439952024667655110515366163411898357741916117702766611137836342737438563614108621900859091587697713661540078712479342583040493799537283081559563833577283617445606950244098407012563288924590644715052292908609369341217146469860704576622374674638342754816898510528888405855858761074229967768063215891287506000924918618276372138822402503650707954833127250631177898180778784002619788592561955675866866662617033885960872969690990828622236462703250381631871932855022792966824048157660837711572377066712930304101912888915339785025758588403306755898144977120751685010947822782713516163218954975875810194775674169295846015526696830991726295455817704479284061305031236239981060752745372334775054452509974465724446129568577859881317916106515337676540566300935428344476278964003488595590524117353524590077369653769692563210978056024381242011523127616182351123458708530009717348499493835083240582963817837133219557459754197625082384137829245415386414883819692652468448764099409635648468577579707148616189602215000252059886666817130703630449548887201601238053243978716166798864751072705109155675353478761523982390871630177819365794056442774500937312250966885514701242956964797878286240886401698412484175994174395247457572757725690289235057385342296077387664117531703244936862231170142236918404583891818143971039436104547069892715771693549574862739669472969296578921578861445733976906497734015130357665915531678853852490603461022701099131102142727724068551083156655870689133074478901945307218573808094748567519798094228051685470563747975961267992329386347243789399350600717808719047629337405549046619175039889130221774851742458112568422605592108787192228890880927734551869229543386836156371851700492455407603243894899407384585156001309448755151793542988214683317724738259945252695209978573731244900049382340791149042244876159673965501188144003822423016000380312485869921136420814981531247757591728692853854501340142859770680000340888940116881302761336023180980884325782116588338650939717901634414244458803666388323950493160395255997200494963891979724103023449580169769433976547811489215036372858657594598350457519443004465294601537286293421017775808711322775330186327186065787877850430063268853713144426978562404035698777657115086712932696283927382205918407075336728412012068329639708356112858861799702861594779816262065778992177694743164716276183889860684380752578492456551377961771426571736423160016698768948435457347025202830541720103603436231313021509388862523833893870220337350921430785482350583443758776929170302968081299476104773874702518721203224263621260698942730961873290975756026319979793808193505793403711271928632542847700255083890454700008301658408848094973497764387215208514214241225328525333087866489797880105370240953564120317468071236301630936606002807868735765486545988586756813531425940926390159667810113530815132588711849787928442108350853121302027147336020896704456409043515534170414910651449241779114307357578757909572129453660831490229099158145329544465923561603687745875928658022674595802168722329850097944293332345382309924751247302435582469434388441832032827656440934536765841909628287203470906517066115216258741394115675442440806972883688601566555220069557392226029266763421174449080646346830505536809207454002112507376478126036586062507977308764416515197188401102400147056748362379704593343998862645512764339495942392011468818904343719004294835004012120888044665621797596990633519935873782622317701646293406796220637200820454619392324337899968413077808889775465457550015861038410604464588006752995228047691139740771408873339697466422290352527135882850676289599730941288748801465434686150730249285227000130548987656307901175957628486802301715637104376135190899566299115438618330441602085653238621482522043949387336665479289176238343057858906296429420782556733954089976463672577462292683800373443242185814675968878961457291852145400972960216647013466059376073496267557456398065610284396706554539172947240430677164644559913943577447907340866130393159847414741018503054012856735703217604778489815227957516232688612446145198162829338745614643797384183040873765722539702422549188298154727583530750998780486914183322841919021118760253331860852513645446503181105239522723205768052193803501930411089902443615255310346068183584462186830138780678780322037663167926321773395982179560956889620316356380737746787706726883451327302554586702854008932099283046231483163957048753253588321311706862664850560902975763585592852613508691756804780004855112907411999719167157901443948372725941226982941689894166554084715165665170959727287898300312627965865738573729254995451718427913775875835910701473860718632288131433303846513978251072682521371940680314608607734021230387743865302381747798863899078595527435109757736127550421301308535075476853915955696515380544154184525935963678146760066576749903933647970968390944921261605037860940791871680275340921233299911208426437836296323712251149711407667372430114774445935046163405742693300419921805297219505530783695790267772081555275772929826439950860320779452971109796697418803969251496321532938858232017033260052213592659266978523224793059646354582416841626686250419093855734931222491057318953917656728054048037220596754426868086213779591782645838049178902497705096577272596953319369904404227189521830335981320228248800823225224228703707987853213799485424779681921017363573849522546756269892970649325160043828587556258004018335873932738211886010213674682592087946614758563614452242553617940984496559639063743315141194948367603353269148854148308460713640143511552112176425038359722333099879657062895705243004298120839438965959165068216032548006103104793065818642061344853305388618627464218848936182925617800262890506547538403743486995470756955887638353795170985575033870499683563259818077176640285847462639400801764699870720332746036024467671843613388294605950359969611239570454937946450217952476401847801651636634015914222096968636188462102043813981484763580547749729726654067926458302510501119389919382096387082336287064522666486587790423317187231139147503449217955364189807361144940358052995599062599738433616784283565609743490900239967974059334555905486496468526126624558306948710941727221610410419047320876020258226404100010042938112156073355768947188814304498860169679567730947813981376823760388655776904496441496711666813945237256456992192635091397550113561589737261103738518026822842174821959702026939386206285214658106394999010788685561522561124144801604896344014706100539688975489683606433870831689295518600145603251348258958302777945604636913252896119169157932057270317685752331205112902704939566190633504979804480614535625307917645514172949141831635253148190281983760860005355311221324866367660419615696997807204171740260151948392902378324698944970547283624129314806492232919933310501540218384340244339469211890263761633123438560379133128494930887280980784388966329432152029692494035826875049643637724711991259953139106304505492944236796398353408418574982953831146125586284253224701820752200991270030750991700696334955922961465776211182321741792526939061336703130033613639328966381291907975728868561877692180917948463852092356737241576014131618323154739501725348283635282731528900298021982913383084545096922643135738082313701973523809767700488787859206927846514659871222899781027627585531842764015096638008669695059032963158801281214712570288486151228827192156313762682038137681925119412120733860336125639932856737411067914611157873696203712653755333749752693736359271798328831511681290753599543052705681317714155610395106894774905079853341488425939320451012512387341155588505774564603844775618061812745781990219155068486212217529716361495467030768895133630498601273035354139515566653533379725727454641733825196200507494941147262896635125654176381387950870188667014092400522650913623181181938642147990034290394747491149676541143091311626454089372033892487851315466638901642682749954628326189396766101637864108867943718752990230698265829560026245651551616241792447185701896446414929806578716440588143404050588524998433680425247097874723265716361234982218132249326808313024734830258963800803329791523355161426893492571953694196706895882465749073292964355694882034186703642045842269731509507650117655864936714485544340398963371194141812210951481787288979062706887829855899469348101403634063795941996327218301685343121199299492840336221384585224118986379369686908452144754387444932382462423738290701232904848576916814336139799922464603712468738200675366868080673868638420649325256344390100013273197302097687215979771482206193634383618515642843656592526033247925618964235876516069689501944245797941569819641960326660177359466394496777828947757476981835811232998859214147478827093669167935989883375578065735868296061492320908977951654596105322645407868940500434650717528920096855632761222170011928989367414507194483244679565037781395003918597812237734412221938583308969556766029940297436300846340327610707591064513503288610427841723754110546311747807737449550945450593298490527859655097247954812816823480929835023856138284745356222364501615465753704668237614372268247576699223794325798203405162449329678480783061984275069689021993401222493802225998379503239702788167527672722945337469046878506354908180741493340800726673249141911511346791442292907939498555189334966618036144175190119892512033559479800293554510095078772206365987090451591627473031486557826764192890506909613395454721104841057431905782367820150727780674017031054768885113910453117427050900001016296643649049114083352959585545240370625696651514270861819899969748400325666195230544978925344471703360547568537913694869519603431648784919937964711077594945409416857485579955307501670486631612359637531090970900294675366054800296941181375855139032717715500950260108743290707578387515692121901797658568902585404830131620987384936189390508200294587683832929317068229890521538567539346121697916388052299699981541673311806375772573900969493682925843113839530201627111157547236089558872855812534290154302150669707576630720418088939292292230363301881676546312372038799739765845586079291716949198417531373502055851886362155932690469584435360616274827363224838723655926293992806910841925182114665924805299075939882222982471764361428649140242999835873234801205089273484444214333844715849671957207978110853678626946943218193661122379140774483715660841310458900315210037760270835646712238413378348507477539316336797165232751098233950682371423217088161328799802665735251435542804359963080462483942244264739508557873718368318739390703956890313086566830354078853420377045168659637491573995833490419305438685884957890776159057838157209114340568991834155462530005100856476631744576361357824762285892824598776710581398285596173926445366347439138541344943528614209905457074648104458534477356668767006597419392015037261266995396753823045616232380069884530904032700015089468965506036072583577214753077580458835070717345663787664949808826624891195374904740350228602219433781141512611455274288177194714014979341612409292084760583890288114856466201201219939565210278098505561473112822718595918028113678740519137396635029920111123859728071943609811394780100483919681313429701701780689801034142998436397492100924127014671506925356460842619043572700904897067615351484087886746493943858312547028435071836108579349275827933773389871917881220774454755277805720246566064138365076681039958273383438962712221595644731925103055297384714157748863304902466017060281412864320686306891705988626363267961287943300138734602661479957157887506491978478716074287660968688597518731476002147529781199026982181347790563967964518271568205471420270272834617438362291173097603003220197402789761066214526932008584557275109601362165619707625576748188571860973990812168416304035312389658484694607965339855366038876956262715561929547907649661592758363336816716525699151317996017283543089181780126925531476257078210961820321803885532919775334376163627745413100697251154568280593858680442436452364090412282116608954818695505030616879789102316505242986835177385711645989155322763301000660790407626151478064481790266722056045860093525897891147866890546897701228711021692904189980575312324237130625650733588363360671144235844691429504069345578775935629752734735355952607963381363669137734934703646457773381882353707739878811407494031308016704529601442249956181824020765980302185508309242520752824253194804784899297342819341994563088935978524921088987037303592447418392945266454161855286722382101526742903152461075369294172067828761689458424067826215408087348370512072396514694814798766454226734736873996980698897117638369903650868145730625732977345450305607149873282761450377439067522611734085976832601390562469964761926080522826575344945513247178819266301961015466451556466207623633620670651510190816908218432581618545331341256411465141269264902818059158569203956341552702629622231524321816246962573078289114943450692993381410292456672003920397420645112355956098971892378516440735676250575126943697430017334462855693412060522221712843379220219932830847611476105493462170703331243804964990363640062970357411236204247314918566617564071235828279023695042357585187397557595715205570694426672198753992150298219383243956706461483295285184057814559584980881610365372603519368665676389461914826597925917193828856623545419373420083269625720964655926749385509841242414754175836969447951990679556545253955704329255851855704957325921971593035476736469559662878032307929952051461442976053697081557032158640766375114129652055512341473894348271874365812125707027505006753909290379205789799006920812303665393431147125789850742089247481688873304792550574198101911427790041350638181310479574907950136613631280059537423422560637968837673535076584735885646411571693562082759645870525571071459196976482802119699013364341713517534108469613119291628439279673065791938174515295593597012944858976093485783623038459700279961781174462192514767736204746252684007688353703899079796009916855960832021889284843017945735675494883588028209022399329795706041300965517686307335417024908268385833362422070428496838341664994653068689200713692738729471310060460804856689011807102126864792052680430713318910137218781932481493935013698808096188559956131889994254983040908461150891921217981977046244376353413638251578677879583904307497026101174955740654738502707323161902621110816001311451694901527602273863312050516493306047361618766617534365836387137835175348554754405306859838112085833086039576580853308628168598666161155459564181889920220093747605471956770234018534136688421310746208652546861476385501984550800601370230282051269862727752578606480545277455118085867711997618835677111774389948079892713442947664417524943027283963804643527568303424284540786601406282557413896410572415345430288848495876328258028340452894502027103640231702065735015251042214569631669388526863730758582896455634373416938989038773967988109913314547054248561758211664573085508603334238484153001172427674773359080428263456642445625642095962480412918843996617490519489632365198183680908762252400168523249909564029167111753697195349715437927986883417541360418595034127286306904667331222194273987407932165086969078203652874568143919811907007328099613061655873116001492672360451204361746487645022645706744791220642497016547081867016250309850208636497797866665257920854510833948572827682478093976818650223353325379127864947824372341632672151301477958118632914854555085471737838073537223813276469856735355935783222611666618267025021934530465636653181585978004340819680087821243601900275970295952555494529778164724398851196253465537465025260386418731547067424009485605657768371158119945511968649077790027239135236357887393636722065458946095600247900475762920722057964294106962272380464264121713499470503208103014313592454894449482277695961217293416771187255008867295374136803376195029714058246080870218159553963968822300842284824690508648116072828827406459742165893393394805158807339325011707947739052812412421830566493384595470705621017155385628185665202157437920765409640010996664080531151358723498002709133522015027940230510848527952002058165105522191678043855656209553855849724571348824912400464729708018264557318382529454783697466781183648058288002884155759345340089492416160380895858438129562816918502240355154254347193603301531804418271100109450467102543660595585793424694674086445265298357216622232020941215489632225296157665932022392901799122964351228454360428230619264589650444734451360273989955379700096688020080564105225755549222883089580550844994492340540156226961074416129024864173608202174481617827374705011688873520947697835393078137039353813544974490472831008073356890845185400527811169079112415803340305268898881280801327714634674543873925838156876357279279617941618133192769728500514332093453448858228474164874443187132042615936368251089642360948749967631268403527301407561375807840590892302604147348493129279679989862902927575409254898080674698675102560377439914802871805260517442308320171088861982090252517886511531526056528400062615407604089873730543185828211340278186638653096663271387112998359223310557250595294976871009376901146437842201850801221718398210295753845665557860297430123733561075322234159987603764312658876397548855665972573371046218190562329715977808223743702765611130832688156363228395211163801264449846740780911973639031845428295942283908663591225380101635988529982360408270906997086653920749491632980862793846727261555487767345798094387253659440337086541257738496763137511156313830244357973781420417594745561254944014361241910571844481617771987426061053277760641455834064575302393296728915027772297655605760710514267475883027172285771080275106091241189092877414751506952617308926972006351388266476641277536626391584529081306371040355616183472607439780461874945578068589358344858985429111380469295118201997432910181236212680111506614994006383396534509942978593284718718432935295322191397898377299398741079485921111164233729952978166235046242941242427973282364602928035246301775667571466750463649676155033261970073113861696841543516635776974415205639928188828983191171725748961391580862234440041196098225302811543146734646279614389837080147057720584089905238974411895270898691644004853156420352470785408023874916775057785609097399986626846187063229401620489869176527771394633062622112507845850461392107526119916649026822406651871888359968814421830510388801462387854647265315526008760587262791304195274262432631755064460151431994740766332383392271143791591878150284067492918913192051347975690047694111988373141793188660278582706803864606289892350665170516504384770993145233570266237790706569850706918371091312111488945093088103904266915541643575595743821784197048110458197519105684937059587390758054201488678767406430183122163988824613883151603099725332840637136355470748959666242925121741616693057172244640752096167104859438277152510351308224044095711237744816822162954775081973255199665888462148087116621095719504153740670087014309374267158390437988410526333804639603569760677009871103445852478016014234540702988831737278221437425884580543219989981980382416656406497186729506861212980391822944986095345848379388917064522981724258071555271980861382971055031823991345594281355873190174547495250298987294894885849936736025085611491399607746666323346145301634416607431177182294513969756629922043392925043087627294012138511364243808161004904809537788031795563875275701423279190988226193666851161580567376994213054352263260209784911279517794943781441067285159845260193933644691419459656056994664050410518468692762717244530747620482906388115717326215354820107034857499429058246433319009620036319347589435569148503296789373521568856486627766097685757166726858003931041497625976531952316112546113790258368214465892708808588158987745643877470956695040688565604039180155580365899138225520632198170654433842579572665272754079756115986259707240107652916656821702324273168758294590965650632999395209848501476988182244099717459900426559413177010332012671910507023202481195127304191153646118648325358077265668038875664398238876512256999414230726099420828950548007631501775787459512339683781271880258255321753349183208679713462798538935141681974779802878033828979035645567570142693924016403320440048859335196721584491894725366401607783283364041223147843755212573686321000930883424489098212927156953764345204179102556972442050786204575056947779785936332269251825946202933940061448915399307725100030259489000953381895565312898937861662096284533459269248965508382639087604909844680495913940894402970000043102239146720077680925299123205563925730451511170391014071733063743056175399591161266725892732967944194590897514233981091071650545142925944282205379868337911679203615109783182782306083458268547989891475061204211546442846510353005927288712067415127865296889056486361691004265726223018162797679049198669565094846068721528788631422745404670414542024483886659955161908939655887868873058486585084551481308627734835821722340523603078846293565935797758389614936858408982742718486086219948164783747476161178998724718504480335262563899827241820762906397991289161548187975448932433221625412616523101119090581379871173068418846950834974348438178217494269630469880022869149263004354370964103404560856808205234931729726428556560353521543329224374752208210657644523937571601781290929675708227681218139744908952547779802566681645874878565274035408869483445475382506654506950381348985300153650714129876110397224106207382754322114748725695869879058847905977273170621923017600483269133090496482522679516843777398087531986272954234187995775123356756786200085177587270434603130577919485068762052879497185230204979560770477468804156734932604984724782936630248738614477113755768941028315986156034282300586562691964173008235456944327400833059942480808761341933263964761845493236609378459026785414115891343268958169087449229068438990307811141779540024690367506465482761463334641309880359735494444417017205550537450257621584239209296015777132826304011253272551309765382920635839591399959431433781012955034881507543543925753950740660305354735024865244879990127010464612121107978698437349843981601261926337685285211238827085687956027378630702585396311968280768839329085817390395042637308413917299331881569550901213835133233611401317344582761867493506811583051566487103265439729994258817673588852256854533806938720898068456089017658265287854090169947675605329586580857762602893711605908655726673256790708208745599731155469973307317653395711750430029808005377218712311006665605625072174077520942559006812476919337503720837960505461340025654615055928999458742567565918282986510244498902957573190551062581730927048743796900030659056519262545028873242257870657944959166039155276202206571310773314421865413903589233076274600952476067705989192970083420375857056676190048346970926278639855756843443699748458503756017806378651999958514771696192767122393652683944151513923755906905614680395720687431637478159326876426687271865770909967168777818341998113781298898487953380249668873106694198610053569983334923253801354998603075795400673140988484059760506822570735915532606619316766074970487261981845672845425703825885245357532225358202742488967494885286180701789780696141013382342567084289257518978451154835937130540935276401950251486069380491635184174147225816577444151783212258514737318341873438640703514289514479833134753643246514226585694907427875145808032378612426561417827308070175208585305958922265869391635351441587918150172033351883515601313666701085638289067800555039223792626629292525183293997433221266757344838883968684914901935069351193232339506633230020578318004492025251629615577810426227196906376238266502392209712891035067439083582896842028788333677935792017010353943181565622615505617933842810459869282217203214215760212143973378941780809771611659295040829123220875888422269023995010131068249388731976748951881314413283489182564943962528255268303064723999685651639407924788427484751186456182911659219724171288849532790647661958194795115473289452300676770481759477671548822088761806915124655781035215442705652857659212651794121852345315669166284716171243261012981960216797932965153131006103781434715242855275101386360881250752836649427345500324741279546841226853414935585355838437218827124484235527086254347766770135092259119408398986114623392037523830455356813685966064922722167063228589286451346022261699562176775735619988456491430391109790298306650940395750535147649546479723423911852816629034823934029132647508851437317380901177567303102861275643283514436323196244378104016857657886363908994206928889112275711371241669443383040400090306478539054417052148151428104052377008395993015694608551448337697856254451681127821969095138346534473907521699148759024320027635286596448752490038859661435268991848881583061265645864830230838532745089023537017147764238803787238366301434881310093897482715924267118131978467916853092366444083963237383332867410652254739155177069424106957126227405643514215451165696821290541544064186312153380373654028864025920370384867456837307211258935949762323869321808658295556638589889590923331148175661070196166519294445684054709278690313084015956709512921492944162171916041406080370953970445623168946550410398602482655885946387925237229821843337536692112581541409730890894722832865954159466088927340139595932392029326296724292863937028337040897221080993621010741723305069696944524728619702739322652401877091309026357068600694239134925372472495080375874981248762791764280994905251226051857823345250492150174247074103028709442082032921180003460257789997647398794905311681321739793788712362386086940410656778242194927552936147701720393522020578720063808790255092564033795031514123708155938288649976930998682302718743555208023070852189288172376035001753914379734211330472282207890167946573097004855864876854674468409503079414865077813502603181326081699068202930496092651279829986229875162171763464727099665428567315700034592694729662431606828403292172246319783945001687547946629533778346120794108756379312115310980443284611594380884285287009477749483471585457751181149238018514389507040029734825709891427245321517133418958028130702835664040973404720359365200563948550840906231281689506997828871241502507383090859720760021081965946365853835611003005947511540214067105408554494717981925108229111653701027536093774727337543798889821489305963520730564209151156859254399044431637215456971565087437597856442890683577892274049171281476606588764121870106538813292489761051134343823404529534119109822697330578543769294754497370152962222853455212029265083835052784415874318092642843342331423780333869354734291949105474750744718951681632204088215531370637194401907114169909806394512541038525396957515284020836957592475981753280870349866424449832804949852296511428097136084686688397883546160655013171432925124831500838212403295699354833708578623837218251456371902299219138463590235205102346625059190486292820322593257078786043103298068994962195782095641470811147303676193603139093464993822463347204102761349705191937080121735369862992490772130760066523587938905537045020222911964840161511816522348748180243647457328346402741252717723620975647856668448398526396185117050504204588894796392782838795160122005479851239679466635394201666587217065761711184834024042465154370228338265888705007386601401724416005283788231941260341221553550577708411708374071250093717864403349122102819779915238745379799613575781645131006812897298253088424865013920507539292774368772078750782530377540049954197730819402103546044653657520002248106504654866308559271662613442107913695674138642962685339289974518216456241422713794268626378618492851752501890969603801806019933461427070672810025212709545522038836142365454529614383279112911977526584526819125618426738354467319956159891254536599266979400521505788049986049128400532440371705791038248201972668001234514193127086688983675025177480463037880344385156759272746286710386732074695342691419241723063234129880768442816058834679335119289282296101314842670960976271653536220953617166657173605085713975767784743214991579922463948436657378905073976561092488116554814373081636997146469120974590420456590973337796716663500637519744017919466415868114650351451686670410243582276032595879909050652886960941458368257603633226056369571329056752785491270625062339947311599610820016740475478993198115739638279598284882624043667628119779405867622291127250307694828383500132380538932656543124484405783735712840481113459547412845531525979852060877054203931147306821623471995773277275260336443985078856177035556669808507485935409822090815662371799200668441421340819262073383029135259188909587691681621871650713392659174991370233981385673976076797833631998785470857710887586549017254360547655660985115145983843136515605269040432351373407692138364025641749155679640964940454603997083538390973133928096108703927827361095294100109621042706584900901228716337834796495735709335113445752053499353022483368770760665819747552865801582336389399752358893115723590381223865738423087437623179741600978554481746392712611192449845851271183452019124184054515330795504225312514433296957766235202340884479102903121358059495117171139576081043435572158600824143469166669865972218099819490972676173300668736868462973352427002469266965645133470940658279297609921986855808161418249944065535006573546984221020235961396609337898618761300158121521083759556942905891250647925580242134816784231449357034981694237289756558854300700878772426059519653460815630581003524429652353701070685409719642061526074432721274080658267203839371206679934610352636647751745645830982848031675348071974595315321627655522195284025947084864591689190861265258699118207694737284081334500757288093670656966421208359792258928235493889101676868054708021304297519553027674095507233245493845453367792137740308990958208305951385761164922872726510025018016602999342939253025033587193721500413463845231823722754112323551355826381888480799323762175283959861651574362156745078559167891205053459095899156220347606726726787383979579346189829299192078520194978398970831494369610006980502503853360826307313986345558716453203898993722344807525774633156308749539555586771213784242474612318806622447410709832509534294173521023596431154991705836272133771885474524553766210272650334136186572920453280952670893688085985477823676026660844867059553429045143946194185638307996969517354662633075617964409415024777828865658459702829206202240097297943635202208819880226921796719531716516511007819796115960777280598823292187729052650323518082699580606714239000038004399202882703597475348308003755354806076117978685171373163937206222341715298456342841820939115596956196503818614305937053261483388177267285112122357999982339934737464819545149148404442650566514050021051480343960412802457117745356850077564058637923634468786329417447935485313757267251737325759112074155291189053112840103045842052068271795278104021728168985638627028222722494916202923340077177619805591021317900040373730673879785528096341565170114614971560256903944938804483810890233373183451749876836183671904585659048619182250790287491155542297917271927930721049630424229003900865903089044839209555124376629154633443380190885278239783800141814918089824227277736592397036975104606535162785874914239664609577491304575463309822025658621228228927323571468599337826297220406347826156451169095398466953549412934782592214969887127686411023411920875291876679694605949366379810553029775925218867004322546769037132821643326916937375012645140934579449040579728408416407220559304015245312430226996574326356849423139693699224058881323801275098381023534312252048612349533101184949918076864704018774846358916700071487925790823695885083010710409399722929337378772838028643370318516418616033341940365359602600276625913126538196641805711110995780974918088946865627470000464614569067358452440355608067109685791448216165018480851251037998901676475686541636880406422076746967135746758074228584482837950149831155496759357909675092839765210429093611277854207266438787265185083733001800381451352202921294674033700818734464609514326350563325154553453044579570477701016011595466262997653902652853628869611740453956522716585000139037792851131640590729843386602108441043285032909680986494182040520532125715741224743885359116975781185160381463003362982975574277207329038983493993099289994885099190177117403263083547194182499036137213059362084502885519419110509470644099098454560720550202989818268041521876605813463246327013240332814100421849306152427016428419503952380733460985758233331644121220057242723830203440201852764426690293321954525833950840060775080517532269692231543908777056999102110440386783316860174745869065768582879819542982169062818889150656611508317232916909777967472012943021291054651051350379414705473995627850916504547792037029112312168457506093266425905356307197591899039581276420941994687370985952535033780977737045599323854890358453612703389819693263120131031631967733578215535168547843268206041137556194870283765155623989059176551165869618812805613693141503006002319960198238110138320870883406996508867609373927620951171618908084252766876743613844906501992736817469748751565774477523928544562968643368270214712253955656390612655336171734845882240511700382471264075947760217785078590170135379977981272662752177009328677250335297136962651874466031619317611494271585306857417758905740119664285563566940002901338158862511715001472451923078501603619419629715008089502150301555770982047689587393674768426090243393505502014856173614755305125847235403527546988337361599178307259464336331097952966012558731907705427605863193742332160610619559762771717184469229759192990518559745836796148520699261180798626306038252160175055954594910467212320993810054290325810848150708001963777294873324569376388458652999580378501764206885698119936995737439509615292798643628636725490918282016474033141441427275395077573968036989657068476648854848848928842736601837691828825625307347864323877847824231064185481427017716722413970216672883600428059486971434382711930922585737089074954008469007258262638726391977083208286032354960187795848914726091525635838186877557230917155314548262012238499729428783731913952595624666814803243772465944421392947728324301211275071217648517051104840907795633456832320446937225676871398496755045030040558964301092155107266847389443323002857445840054263977115325546870106921943126268764091410436194308036456631151653120803788879540111434940985810817724565866064619094415811609305483834357067597739843393891533471988195694620859727904092443137672084760562895140672306374300836135167250644895419129968167530299300362024489469852191260017150623385073156393044431108652732139281575879390100869465068936281900887292647823892274833016048799383520772702060684637876663393181933466024559812432611507327992094744111753999069817695118959853673645222697780603109413412322225265409174763095082781229365023475913703844734514165431475145839234978151387916222387203430126862753058928876446239963187162598596834806078231263278724650524510144390890794779761232356482103692393691669847584544406498322893366855265230651129542609625973265051756229162876025821000974120580468762234443523947241539678062850078215653413767191892602297523888907174916175318093543851975913438840600907772561376304792680233779729047864258880803092941357657332610626182503661145701971828490567357952214563300955548160271716366658563346917597661426041220858032123018550137405623607666262873736944444981270758258904867559338109608849676903632731529700933661894755537307151124571212188811323102248414756356185848810082918132490833257010975918073082107313073106101201023907083606513672719676325008895056582235430950103837094615027516740139501364952393405869325016493445317994859271209852836859046265942187494954676098622613131482456447958530812527665135939325591298949723334308422357872504873097598169130619772112139632329610081409652210726017973744334243287820886868293198108929407447559229664254653396338956829805142078470224362852834833595681540190294602145648160665573258108182691451347862062431939135174624152299640465680547424925230076029395716306015620543343903000544152924570994349494897641700675226968909583806315017646606646647966033546794570130466821851445335696736156125672960364096449119174694132486624131533368409739218497069143250914576813053288324987762082120882410718845542686455538396399262595651472678138949992308087712015978653573092706884534056579932298139739784502010576602196455766204745692345972885173752291814199083964046546238590937997760771599281322678497609209354718964543138646560851587011526690049556826886464183972349646018000847788601282481564015183709088052679347548696916382474965102192987591780927785398944358876952100726250571856787503436456387672490270143341185116888051649579336196779600627205637342019405633300946983978866405415952644763778438421575152640360408261756859181455067637996950274207459445132963129144631663787546184813968178448550969123606362996597751683815213552175013519051078351378643841234851128975036474325392794277229890495739561117965236002957210107062319823579026274464353315865221774952410653490604179603740227028980686708842917906484489152407250525153403139306961169151277085509740265236635798848535681867137991667783351847099549542619821242003855237187666375138343445548439594028201621978785426948826809442520275881428295479470148651748737840224314050149783777622962570650065522726341437745192970603909212832406689131167894007949058691856130812260052355352349757740197851201069766408432439884977723759016983743099049075299657853869631256524839289417414213805858407674886459401034273868299007342806433650936143682664028617840414851186522192608472463683963217897934119269654948817988560527722873589434873633945794503948334903846176386313774968217571924843669986802866809410645522857360578313663574496722242873728299124464887749088786485771631012213451803152522023683858406627928067813423758000547331817142370105893670043999109509715157599720806117238482944810603541140255651280853737386787357034831884160575712673605526037588987762007704836294736952177661780544585994738812556596367480056906049159352904890138191506190889312197998471880897266934297519578465636709619906750956141140221530913662078956772918231260636692139429414553916984956935445885859196308568809178675151484375966805330606434473325146747683242057518769281066635135699437225137816286661020036669411281310224861526917421181330712797340531426453518398517804673969104529334718635661288447176306798884452867404154767104419342277558340322236328307464656877950478276236012566679217534203477340272376342288353694809190989694325849578706803919550983753968423904582465447824031256648593667368029507364387555430220370018296189989066319010560331480266967705606532435006795741711624514532406052276524342831639648413374231415770593963574268085459389519113457401776978089287346783670550767936054274586828282163280527193699463458143725669675507025558618371333922240639609170925493423942601958177156526057619551921479961867942071227606847239436854134571451008173359486620679864139816060154060817895365728513157641426174703479809812116891442377597157667315961982048898269813224817011469014897391353791208150378854099516872894055698472897545019859913410338386238268253753909899444813964906835193834181764065905011572502278366565700391569508246129071469402866184970357132971941802980503856381227952451186878481105506668537083309723393489134520467138814291199617806016001489658885080560471398407277246733476676662406891825291170496630813850364846548039369090986924379085264478339932650767526150768818448890472678218180252762563571663249343088873423337398799379262791748451814040860680729108329938562871840558306257269404996003113811328835654674561236643172946739426979018826331081942125755746218240619387034072148672870602163166905557177374916883903434740727567913341066323975746768851305557122316465802871846449934394326252259157193181262274592046384366745028013014573452061479537472957762619964590483756489419911689677924948832988666710273714401373917307967609345747615505255156482885838271962923814837747421293016232907039873727787915986837273814254230958421164200202154724454337986313034926133040241287757829407579383401235640288438083596631992361275957491724153913011909218959961415552690640539867496615580295339495812714221849114053583919433214620605375212449731228087415423551966325958055248960399796733608829162408219965925144659360233569825162307968713896259732600539142649025415978480533230881711579355687991430598945586649194718383438633389309433913646829937996100800223079474616721690039665339725033035761731259900785610864735323249868322038995008586005919855444994196458717205349766742074800108609993754361592928181942947767826546190755994219169174618657617422231175931092491580279715856572437569928427781360131741154926737740891285744539583803172611958325916653659115477800158846813188624873490174755756977968879200535600843405472258145802115377754742174866934964274985583464347810587942600011261534635815859088315197127712335228262242018099661778496525595136966994234461976255836097383101894860493237358174095904406454964800061079462051963888601307398099356623444948122142683585983026350835157295338526684685967301538574775986473595266488072346358457101084442176396657656016788840377370718971694894950967761642916097791703848093570458216733133909301338072239090942261976899374412854229950941872873996656919463010895646861438155668268306762161516220069724650566955252969858665780768671943128638389110040655349824313890796398637495764359469655864069712289738265908534116809923171869313025635343168096285442848577854114117536847423364591965607000725805356840517585411869711566708302814651926398476214111979067059323899062580550522363109063473366276341789406459996393929712443383658945716606350262151026542995862421836987089718622572419911710850957897075518110360001130967402543721700102794279257712065228251451468049305369920448815403566073802232215658407548529296644433281599668691768857655534301059988144983604204061280382923647112121125663811691070521653582645183480390563784258557889762500662808479412997670005237542584539357956327263568735122431091499395505060667483032030232908807443373547686489804678134440230148574466421865284676650281648375305188808747696881781481451535293678179957820776690004827694272899159766392906474886543669542033929799707494378124265030399463807971552608931503878864163920129206741448257612190831800311451966611740350395336091580703495316711511469697652982413616555341986225953501372785509238202904361727002441606393894101725384977395299918587728005148730954340373119103454174389218293419827880123114675022263902186346282757928707510778474384930367618379784777239483170403601799789490689530697401719075893679006893108451923615573235912447161467092867568295414657929922941707940906115765045811463189711045085661060078487482691885851442988687969357230795409767560931410023042228467405729384356813339595601580526694775191216090480972570425281929002074475828306447689168305216171883631597188774316992761354018040868692331557914778452164866664265307375768684401263052510989645965537112828030144278555843496535456420772773111756034568171570039117535309386076841311612323774711675200417217716340903588055959770918851662519408043090384152643037530108214406707387454582507880954252667677869446079543665600195557217603841044805864443627375928613373312934741145830178334853276776414797088154433548114747366374116061568567848683441778842130993868013571682923179659633903899398566349901998797038145612179443246393593436920431755369212168460986270858019908877016758508602683639253580941725185147899296414032073010715578235258176822117532442375638884196780953266741740494939130512669894596743217067964753931909998877689692120380877849760758485875720508532613313573897783179113114597040078518212391366531733746723120927130061526001176890587051864736323266198382962614985284296621649558605214168338041808744624753939162073942030995106042308721256539088912384563025784167049325634077707276597207621426238874633028280328804964745426492180858975076790743639070363171224022563024390981085423719892271655321819712148216279151653382798347103782916906584355244767761168638155556830603817541366568346152517706932368059281311492345024493962058109773658324624350247859311327936403166228486025293398015889838159199891083923749817951700422748758572496059003538687829646749649729451363825585787449171141760022295600553853393862345390162165395748225667426926407897012463285135202438135395139111310296461451446210439218386159540844937757665105383362588300367298145877439564504565446946677194737728707171085008192945849100832558853325345341548078159036875674782406366221315210782880070664478825819504411620704081230067378485276061521535581535393271110804978018493701216841653423144141415488023896869349955856093909012169903414646975541867172936950839440521160471224287685035991425747060256776304392397001005250020762477939675242566144570479972625131645809460599277752755686104074045245794957414775010369561291431224645489089334360070397828181894291745157315430755441916512421794387385416436000173845241223681553137875320382661951495146334266017361473834649499768582654613261383452175762733017384437730708306331739390588438404096323411109511377797011300401623972258831102346254212711155551415243415958019693417407337686085585734228082136703838988935097293864786960965151633912478319621099924213838716519312500652955369430470758906952569237032195896369617955765685748744204491867659143229295351707982563971846205865837348088184461622967436554113271376246625060313990638766978201764129711418636503830703240998266152796828124572271898145944165177450643420939705531587137410966621136037558752649820837743197656145814721065565909996329394398584791534884013757822264477420680806290536218716890464994656163468618467333511004975366345475007962697590261637282046262151212876849463080224656058718839436910585245884095904635571397024240154838687770318141269996516482023092838362293178248241389028115302067862617726869363274453471606363909316050097635994874111543344796696238516190213381939257115481864713092371627688772828605416371684104739636140047388820114501739363951371212414996689838648813119327898327377593313729739538050199542624078259643016900764441403798177452884391709878467226786465837291940402445798882639418904744316991676682629512231232408920961431602569671581852204829251862241334791840728221042998800006247965478327155695881436120493491044514390147244184930964634765949548538908771331826555878786529807555610131463764877847861958770016143137576021150045612443917459816474955469973615030784284219021030887981958794373948572170851278523050771514770157257855766277727183113624657365900057631809565359190064081053547240010773670543257774003952910074921899682789060268645574238231426015912039625877129963234113953560571010292219836291690903186820339631526049381390853949322558145604123083148423030192315523608487743678167040802741351850522343726229778593222679800612383686218790366438324369406810853431842068823851465289507320469099277505686104339499988737609937807932952459395480604290148097233183617117761745706109569874180097045200395591225994276278702130590244093634249053323061820906767717564604874626503261850157772149065866631405446068554648519887275426841017493295366523840395962915529902249005913432277551554707661995929862234298147436933960756318225647304246821861017822972176243490483775362987276134675902603029771125652981857822262640960795006659810256248614412195383509252646581447277453371049928777019822743492132503343957533997388304813635245302868376845372179288513586285061909311033906617715817927876159222939758957499592673740333880126630392366677777118521670877343013576712559571798569928688281145259912436637311121842252215227716717847697563615468829673240015436193906258958639449049879176099008948507563017206743448131892632482448176017094050562921900641950468192202751418032578748747107367702961528361852596449840398417905596392608214544103516388642505769687719421752365744950902221057227749486429314124486754138840755985146595368737155046504669312637121843552524495997520497908631798482093393721772782202513636519581219899943678696797581572426921016566124933257611029359559891653707067087026053399530267594192905319909207826052047819588049486810963958603664917451968283107603049059898496088543941621207794969538035485235538594009612470373763026302577106645998704335705506261190583666856425478398357111571821518777489821681427440116709552552873269718861583839532757486935737002892237080851898193314506145371027251451747181249551050300863730475007181794934934383943558867028127569427511531062610854513150081340497705123720005620714227787778917034708062313834426338454922778068562569352260491198632521118293163617908531755260288836486101932470561186408442023932445940850001190284041621331495900239577164278032906256471555213490206261929816500978006769792628728877692019037293587862773877953419961183624843925370757194130986205192073713733645348748106544354750520646700170121580140371821604996613444860007385945336822570572261205724671688581836657086245579310051719445816847622449681335803372507928475607454576018231801829779593273946274258315113695575394295521199599016037810231135158712326708429202874182610914312775213380271279720956279686555792945162007464383724647501272688804678378055961808564325669991671202319272213847304934072241802330982810472304520644917435410044314177121646214522826700528614884961329031721987376349447588563185559517379298859282586731398197813410712831492309913848162038153675761220582751507270723834718882344275293529059526868706943887609693081309758000777122783726073532926352908703138619694342941708946862834705937411984576649260663292873844056366018909446819826361237106277529181171099616443935283962789658541105455897191340624878799608491072478155186511148070585351939993541762669510170613276916434164564263360865340803365195534090197209834126654567531281657808490084371799009243510618857459117535426961937388826429832956761022405378282971560555134547112778780540444867070297281615878539000230523354525042552612698687499935372683063109212391631329466985615496062936228153865089907625879714639611407587244114961990517102034641924675278971261449510681202177682554070710420544297008163635695675409521758768371372710489237774581784623135772207924150614111322713939044814080965462916276167755585568672211974688612640634753815073512058930708570552692587096418410266941541071558381775424878463696074086072484106342323837538721438887701494605398059512220699641348516875612782568414983907664263563940523002166305307360935758667070042608296618060527307223579355750975333662636791707636228982555092291207166267775413664047011181124088826306789015278436910721244383851358228703589665645758993800713110031595449492261907314352989012994788217531787063195036908237887812236567850318994304106199753917898916969451317027724676093812800988106467089398318696830564266960508338312313979151168946208576058853527420947295881544941642053471106754374169668197335467279826623783132359462256566817497212202723027625419726294538579336950718821079546310211761024128483845375402827662727719526973363110139472937341814127546019695080868304033622868757388277243302057235856111944380717661341481683428117014770664915712091250916808646610804718829734940967380009757768864518504209671476384267773452456212218236608587244380360867644699239667793941617496681938472457729749921718835507901012963059038054969034596775871268955921876554012589847835369476714575974096051669969271452057109051485296809572012803001193803642255868975649416536434625646993965263852548410160989767604746594588284738127474889048955258018937656353517397828459050211864505247461174053955038314427712567774444982230670903463512658260729112391409540788254934105870168804099331658245851640295229290958142272344501952757917881711348828131891576844873557719620643720819221683878641033838524603727030681281450318177518130371279304780023054798192333227350531190921770421425602047827025088091956154652903160711441657743348695148549274182226428811138171094569505167874162943437689148052307254313987752160098946109829930251494909356332540997365767134503403142040703721830643815580868744812204439680103952385795043194872037558836974832956511594954729161693886245714737576350440456974592145516554707155528451760210149136816725064750890305785738930634894448524213708493580066541231582796455843069549578967064847389217786671868218768671396834457041009282938758430290078519772466294920334423189439853989966390986513935513114212563266151535381541462320591685718451582838291868109551532995985262212630316975259674935902605655083093411468405353848204981716390629265458705259854959624998596002255676165934437008962305896593135178926260734835684558473503569063774567801969207100365400769146519491910531284071703757968433582523542529566200531458883263435629345243377536153451821260508269653125389673360882987818440891961190422570753613092998074163638676265217085018023222161126553304357065349445538673004552145346723184230878762889838405774246727166039251408291875271976768811005524454845492386369620864668809436099224636998787536414905121426729497878340631162258174238979085271512302549355196092683715175127346838059850927930864478155751073873661328242365289583542518187511464500288295666595567379488930191958411451552012160140418859383455031065264289775354253038471009059228895330443914855042396329104224854449018264103695568050843233684858383406288375562174197309073238858759292813412568039846445694712937297941622201099692726816238081464777013668135434916387332681599434540432410220969131692097414873248433201510098884130127144076975297352622975823127625634901013159339354844769682857495071504421587858202381399926038734418084871903217032587626539627252232610867147076350867011286957325894193191853934413627160598648482544840519333131518526835973749926134867407506930189409150390855268923053990417500933636586865162969786069927782153180654895960324444530207218648337675920279749674843377251486628800261528306975878995511621782004986768698863343535232323449311071529366911050152409096005238015912647133801091435995193688406342137449768755554855031396470957886550409438358811373858457296792520991795382545795337696205867282882498221139542024845830178621856035397290767492514425184658962317198821234376537125032256480316980477016098042996149369363430286091599158245571309150796982193917910877225922874316947575618440877136575288743393425244179333705124662806769416475067698893629553400877719460766265064941353351174638043596774169000261417403922075242137351202054830142480550598342816092197871156641597695269860289291118196737823976329122920942044729515031752633008606535678803945252349397361640605037444434816535005862255896892650718470201530339235273154765167036293787312644547908155230090597391355931339836264851465743615466189205006063861860001652059053248981367642996939066262379309869410725253293049212225022507563023474957465269100220853669203697410893358339665085029353391283633527774043451917722039077345130845824222012269625829776615938956749394832218585285326389111959524228460751670851649261689401383051960760816813880563476785735581047009354277016574075849165124125139550291615536108353092341307461087437046501624235066944667468852336460296293560485694989226729633990483199804574856990778233727154033376363845776874327984288002638244580717959100701699873668671179754845546007983529225690642928097625670584772945392768574601433241111304299190360051260795398606134892513439358487039933486954775101403920482375802214716092068723263112314093196619695832973745855278164180087691682975819220746151103462755521374319673125962055733310699128861052961665719006719770599376871079264923089545390018391671409665202435568776474872249840752462464209187040046440612570805868590328112051893066227337664540237346598321871692559883649708063547568444892972871206350986567273278036860537548908555448285451633546938389159915349123916413998685613602260459207780323968103904130565238544719142013268214578406809936251806672392885257993794438790435232669713116414155611788589508946380761067683527072018617692427583225282956129371072511007954438739164828700583417177146539882373538478410173233296680545217883930905553467919055185709593068865663864245270541988599617437351592724889958941052492255058824353632297412494750792157798181639817678191034949339130753443304705814743322727228874607082909323339889174553515894068799712313664175175761201690033752617872234772825010400784928019915711855154657388252473558391585798126195846291446236005852639008328522034926513387737237895495042082706436368351822713941902377900007596496145767835497968631804190406386991320287941310207014827572905847353237568163358611912230064781867435108870548188798478155212385532721210227849255690354455076114522172970824373390507475763224651696944133623006894561810051047156567246329236251684103982958544482476776539358293378647262600960330249253429004172413314224539640766233525513727467331404024834624319513305752173447614541062996899641956633862268339755267515216329371278019526840955937279258968167672526154661160826197405026966792998786676138900964869433064479157328349977901234400700989406622959734472859635419628298425692158689848545261402842808505728146875159992049990603258614659429914684743387500716759035440464517740437034160046067364823559301666628375173975284282507885998113860523086693654235108483161055784246665702893571197487383297930504461086394116202805682149720210004040857507030661345375176143730031183304049685499071735850687044813758130393178135461818326417528192692567324030984821433938803052950243400628011941692034006406049656184706943485412638959412951143507022413975380819964725906895257309561740465204041037105845349159041814366774533238323271443560753119201360814303721745458295244095459032087056245140487285627940258891325488734748137270865534011845904683390928691491632681230030749305269752069652753634746636701225687868935804583678086087721070491149466822190504000037520201200170068516639166264548323835008653152476061979609554755150192643799440662002596763943296163757354338610978095674042929519267764989031685145803886274929650130243955780278198436981462849649515382155093204814540131064267782447412962125352043809029276004618454625220949281148254102851130321816375857268712217913164781935279031465918266345092220043886257288386282795003704980159258950172222013605823363830127254912160680651415048799461215547270934115863436274133032483065512706024951337456106230849060200067775331307397309340738152176818199352629902422217513590669994014907376527724304900609934236206277283264290719040339006383377833747697435375020159988574040993163710766884741168185709577459676507952895517611667355429967937586223942604216812244123705664962207418079718097932994875694926704907341174621992959370175139039688069827227059443389783323985895195556645792616407471169481041822607406045156198067715186813542950310193228863001773863573197337140341198987809895524420298858466149380558205050724937686128984497418797050155188095667567664730801626016799358525783448214412612101338624000679020866345797643922656682530479215732231402440379281390506813975114976317581777180404390749461437362117472770477116109028231541853044562451670936005549371821887286998678355298507228891402801974388357934954971739700546056295286523694893675790841875148853178411152045530717319601851714844492768872191274702000406883982780949197506101845941805588181309475759691549283890515998595127255474128960032764608855978852034868669773917683262740694369214123105032763539702248303298834002160630668394389842450287442495817866114698840081948236427808036943556182239308079168558646171990707273725875094161665549283512292779757870660637313908163592332542677674348796474300899951869141540174130225600909470361972647210779415594690712740945119142859667998609924165395115430493602562825643403785452940404444930122829623703113597914256681999195974026230974994270310020486102452917020420679851573184157703333303272249673790870371289056809495788730600056385754467087417679845623710322163790685045053321232663767700470729654367304039245512365727322924773385116542188663986833095742044058027233003829346694383073669148191622249796148180378764458253829915875146901374219685374308348437589048584071852693143052772489932927090072344412844578583376743834385879949798053731235538352725417592615018082790155056759755522734953904409111852159799883935872026823996580391816687969833547974794723286006401320109778096051190732597509186134352662241017670863867349820542751956389004155357169834155763766963728704136382475380323311788604029129249842504245618146136492998716212094332260491293076297885453161051818961439650572356621949547601557084281570631321350676090453451202718363830384530423621805080754174575058166857441767443653143529760236755079273804257343163564414440113611945138086605703194684746835879127207941332777641141493686517872611042597216019719028474843276653139369119523988507202138148147734084634654983159379867655506990801553120835113506247357292488658416205254608549136313385364086986269921367868747002789661102054028032548919688468314647593532688033101849677285209707922624099084140085924755574710207868794007489980343730744742878868839843301603342014419821551772393685338427219361726925098290193783499208426927154163093792724502180885632352557173500577553058087986657051667658537047023126487462526718149249068063337458611655253314729110407595925566342364186242875998008824646457737287116646782533801200215184772014080069860654907338225431508674036860207932189499429349562409771942777300232894241097308494956348613692905550301758743956025323223412438691222005439564787363966082161493849109069817156446746789118699245078899025633894769420357261085367403459914811226200216328716805218688111489661646321418078726345026260341060392874091994761190149312351543331175794815253354203955847528389977679256022915836935841704982062545888243872091279374060063083621693901670739347366054339423654611958809132177464227644190160771485549487541897918825737119867415915561761109535164354787825752226587492468232035757993583295597170825502855413225420572684635413278087429817292044325157844302771978399161056019248298270154438632431344350398513496558489681295808027024405691120043109114942995743794077527048730616903573783108550936016770322600346471527328661792074528186410352828571530535589532865357075348671945128756252052422666115941469611300717040560286569448467099480825442734508161957363957636376420003383229372862047665875487040069539166771470908250041799126581831413498643410373477046137932902079943674812635048425132539744561397664962452660922032675224271480939796863296597065443965523968398943634994806536256722142610931141447272027152165647496964616409988963461402520164639009699421389253762368505588017787247764734497179081658112309164326095656848759066475666696994841605094388000108353479895430644204557589695954173447841463000959843396390648964009795445974103497445305226723349288490735970297057755947852978413281820400156304249051805315989220817383585425335370617810392595826124841358309755092891158567426670633439956726305106569457283994279482381662152724394496458290684976211034911223208976857432893814215281139219774728131667615281668485904214114604799200772123908564839616286110322664053785941678675311987254416053541854746084976223950404580771972712652589849175457383019579409961528974124021392623073332915664626441554640419931222065575871438819044976943829763038739952926150371537227678114150297491407477201186406071028996662955213341132499382972071736758222700513886695684022366737396280294682828103186234100642873840776423939064051519988066898452494452747805252763256050455797105298298598362840135872591207241178350288645914085602471090400917790673832332912049075457648354642979640860282763595959130293193256909860345156065344456876055203714910503456337583972287331021443130762058351400418079721401454112502153459384457251288072511449670240538524651323099554991439189624297639501233150683060291062702122145402078409597843635371269202612129427992033649784452149540309419333277473430536064717616832997864230816039968217907362480638406823338330071099019036611168363283802090542180248405316308259664484217654013596746568868740414178944609860719426178839946465725019611011109697318314285138637549709277232501815257677357292216920864730242102680794812501845449263853016531672100668638661444432749533019185333732058108855714349572860667392852166232515918465285061171107847836999144065529858254202586429541508591113961055952166692714024361593778563805537117772462198703337890090901983830248054654581913535796697022352107803857922809440677983146381997269066406467658162076206740245828336910123289339905775499616422423939708910128013878354511835586751385525869130350528414829753670101336605390847395254392615664753424580074902134703777795199025864969996010545233774913129919359912595391384765854296259252448735127503584515252604346069502657101882275093850256999227712482255293864041290897776846498037424272291664941429137478364150416272494962855034900073096669885134153673356114159239488866619397828022414578210518798249841308728799034721680319434128373935548396840267558807226653558244609628810789740717974128868111821798274641786274102115933352551893963522291440424216250983916093801666264791902332643559716934010390689423657532016667902990424095177345721280904209684530013348480060534107228183493185288650881033599588396286833697307626220006854899448012325984422100447824534593547050331420491937135869909019867292437024430622162928679667236349185512180260967066055542973390245212680001079974206874446422082112790519597642346045304109924338274028674630941469919238199473161504042244883889820794671539561634342145050020198040963939192121730996407072758414090807261384865947231194359730850644766089501462843390403170336334276456604769396952585732096296468453051443492730879688068503983203032138363986047519068458771623184425716951422754815689656997358971788089499973548305704023152073754005305286621412831268799587747060058123727298150323354251385430825090107165409437927406755832328368048355526125333090316261228826060584925785933792236572254508519491041630724032133652473259904747634832569254913018946183688586663120102008660791218653681225218630538196335217527039404318112599726140348757244935719663960752421473369064415195815956127933985467140599575303525311829687570700218326193925647572851470451513491790486974623340432973324512595507293554832589916155463794753196176403586462749271526015187007854278522672022605698188402182060190064961302075787107009141392454005493882468728383520544459405442209146813913937170296037477715784304381638331735917438836814298085875527658081042313082503608775568779237074792868003463499079882792025532003957790935833813773429423863904917660922313866175309414731895326593497901544242906027662379843100747270906937538804445629836750346315379911391471692284091904186666426116403690506051710207526485861918197121243472496622576351771854262156283156475242707232965285133594495679369409689999458945382787459421265931653440174825201303330738673847561432129859192241613777407725618511739264751662985568702894014839125055495538912376548062050404887618700532891855054238086258849740525775762858488028562567134837606522490736698081192240418626749041815611763882562828817402575471953854165925655112370536437338291149461523199035100562801667496513999521501373140981469198187360461419660523886165806435480142818532569886757649946095566588896284981487659996920288990480352875407718340436826023947229251436594901997837815113526400070178447663627086966844097565181685691170799275516270364785263766133167278794471787874508832291552835603833808923318293528519316877962257084137486849583294902342470820952894602205401819264015554725295484025428331862267440112811549572877851502631831367771271288456571449498808648052717736250142112404206669875759765822083180673594709913730671579385069349225540873730264984360684838349406058465429574599628016621904328697178537526408827745413806005557770936683433809862245311536284161067184411059843404168938366477170735978875410701998272565376392480000215721151577917956586025746206595283798164245613652779731497859716692230640793944557671898401705900513195068350560803282599068015416900409152770332123626581909618257809649945678858400607226145937598422644284947808547835052393600403565911740311948527837378125741113247455731245548638325404454513631870269442184089554662950508447921598326162555991572517090886164520373598508522298092806081006393040135440915932432145883051956432769472814199828651409308163057433167664921875330132689365861404321656784616932216858513466132078889038407081002643798441755284796682328435947722842967858434034616213050136623603881657428401921823503222276068097738642205457718585049662578769135627658498362167302165075630877848354199845197447338427479798372168495748517591186188453634897771357059473359902679658725190302665964136360060352900133024885277636142741859701889022791632960335399773929367215281150768666370717168198052802393792587399579963832563517778923259879071713045452024354669024966879684089115663857060682792268022948248605002466913040340056100970968061175915943862132168529007376715213177699417755966791152890466287325852821708339065095114067635925884617662597905745164561105480668870035820484142887093114984454147251870837595793861326527988704926506537720669534467786814153222850519194554069720466388616045785197620227484547760712420299123293202975481382241098503095610549459065827128308708981018794577233971498630581996427027090917783508212614626926966158526407540282428048456157839374983585950297787527334351690396179502783459474361094895560058519490860841368880186208240219821427441399353384524621823465847162517590114545677344818469967178774399556436786766658428691142814141258995985760693036492040152540701422046184633499377441295779872051817576195376112723034492975638834057350670949502051043204530419538175447120690773050748435075421806835148168173918096330754755884827086251745398705190434529457138493868414131698109561480307211881456845421377294610689627310659421330302734961951037306216432286566757865337421135738800262187893268647609504501686332355964206589887439579012037534595280066583224392730055499597985596217050160245768523891308149333218416648546587947951647225684867498547324148277411357692006594681716558252727004356645189325205942827104626015707253712675080453597488062068772681042159895453492880092482401573466385600132618374313333589361580853691699094203556384064232265620727092898012731405954012861814225348348748578145707697444541704639807898662347659613938714636988278872579596201332150071853239561153627732526263601943326178433660060242251381260015833003293045232851788225613008525352015056850814580613260024638066194428719473421528171657262606698992674822649330339466581976191103719684038068667757688398075884432448951408060545982253729679915668719344027741747434162635067541456910492552240545319464183132691380846407608186199002712239411525599661798023326078676430080590613629966369821287994435825608078291303889525059088539847990629257360615715193552368927681049381360366987897409853032410147213395299419783267524314009876829770844761651425498347895164992971399137625798751097254007903158818426996733232992139387930556192190028134720907237449160546824286622176842306580193891395314458022848902512208940738228858823488518243060216168451998545310845047699100554720213075929567477915608074008497922493984118892449974341502796216554413339666716335683718913603836590791925873840861033788695576964646510228324197294325576471571870103482943415491734474077445345049358519984204031819060992526334799037953411781881383994931799123756693328856047361471272624102090143004906262802647793464319310134790976123510778714836080840710980741263635807434614587426986835006028188104682541835847398573929654630668898004113204118716846574118019853881483794583183815169836116970012160178408861094032920115041202725037236419575451808909143944704896874900415261410005496460462574027243982986496848257548952970895114554896796864091232391034339880017761540790615475462151022849973715772918665796238099161438243036233085585269173233830077106229542312103804923555930171250441651738428580232801256284730749069595411842517631853502475149518988670806766264963503749803697064003599865569894816910399581281959176006185870274502384556837726597850375470148308177092740941064213455559607275739281862455642472763586454853461225574464533214900149272810333287221645804358086829258711057594917760934416819528129396460191376197899954568377701330792503994792766327046879506735676611137311470256558449588255319590573833542902785104784044544627562467151058163184221457094675113898647724293068828769892563530362236337067102979699467488973730629346179287221133170064311244397142999043296530848320968478628280017482556190435859349685437703350334735731153758611722513666642837016348852663235352059593084090275157203966933779022690216902107601056044966538701823153133475453038315527291633428912057726528444128272510896933401337368999554882326264324744006932121809068391565359883227568977545242380357799102207603130573691188319861755299659192862406590737714507114564049707144804944736863558676678510458639039036038749711857925975612433712851098857434441438803670738068606560698895028766472270360152835470623469937860596652469548869619209990738482243799419455746695924650602860070899655647505078899191276552786845307799801859060797432103379143605406388494251400201940060530375634043184608142236265557205889536684351734337402952832427151685924571057191803556208114207381344521774704735238015099293082906668276286991468781612496178179674173019205520206053763823830890192840101471240543755837734039613380788676586984635554868575372772355040473332351296805897926344828183514084396725326020199865414955944603440222988133639962559438996142753510531191486623749463199997422058418277709280115484622574165093352649375162611480563936318522856185498825105879863367720781468638944056971693494244991078737388972721849250188217674832670196571800197251422705007941368765398216733543042506183405487602708519423489110454353991057961852455231526470768011583465461817805012607733402596130630298644160060511911298920655696781090441567763501090035950391230533577615134091131792244955298244122707415475732370532571151781437458254406736636621052048848223359535815509499881114943758557336132049699178758432923759013774518198483940787426308527750977145382545111779310957251530946989378673599039638606367035292627931556978919461877179432904731963855471926769091406786726323306089633400341297555433298216352540705491725128397692268309565081588622171155746572612302535430730125063667753446181257194369120332206058622798576005941020430059216321076350055599512422582512626897720537176625185456127562938893544782186841179463870011182876953626951106021252925388365111239633680899587783072883814336055305214581346186799986829746744876540106562951445472118794947563626799485123942885871161368690188009431029728033401438356490342316160289136834928212893912426423686135015094609547062967648280510740698371954034387177014246801054517870834096602312761903922704339095528105372631268351770111855785638563627311207554705591753987079490566831880900771558259043871499499313383910054433774833138783881621227018296939237033065498484958366123031966528689666566945358347309978205426090422417109929401221030499870566070489875762201684709929470639609757814461023017844098429697074061917186523023045652944916548170932503917099055552349471807173822136949905670901146075704365998615929166693166460845907826488240449611784529403977949844633855336165158131453156242058639350920143542003292924245604942664586171071131410320473822534845411950622334714189742880784590256356276452219011282187407839103171922963978144788597515784707682751280565979670263094353211150616873887592264783187612011606028962854341330783540686264426509737118316239312787305507862070565123009549500801945289468801395478277104608373958178347811355737082814605575809763928137131266226935619728363856389913936460705709878477461862668782299429935245752292470402869406909668907056749989487551599950190177880551124886093080405717919009382331433903324001449744146736568298483445127329078898658494861723296913583417140942569829200800808966677937215791014820063664818237972006761478663814476524105415402187159270512149851426037164338848817552755958098848536329251165593862960328828756387946807153082900893643287658772870267622480818951383830436000056603084077657354978476808083256555457546788775093417381185547637920361896492817942572607173888083659424662573652135297255446495168808920365103207331586931830655308268398001922117964938326566858162839109695767541104560559207868538437764812171617026245311543510251478898633540154697696096786950394391425307061006673304651564343184273924812517581410231053895668986180344401612540648811946306476131252670950594842345180985762509696861869784899966931157701914951666678220182940015468878014322504429676407054940128087484346771238553091856724643010057589537558174286800674666299818961681783888610108021170003199173505419735226590942916618323515790871330511271722004363347276537217515490132884855873468782831637486656435100158550452459193028521570644736325638486215796511945082688007696890014240147947492584310830979000443688460943581121485535237781338837645271674740856221888534801932254414549319568813549762667598815538017762433354180577171101384114081633528037303580961470706934811691863622333204767363541166675182418237892335460803351909085324816563276367287578131965713583791922381911005540130394120499468161154154677810489301023496055465672527775864786079681733889034286793843980144696338652891250190115163522867206610457979942094934325971640746343930458354093428371474884567698449053065651779663237708740857638289058102737181717471551382526825951759943153951891708637650656803732234103976753958550980735984266229889472768457160782302100920989214331259598688716677483828110761791953399027713328957633185972205526023013392224707687140439265628912038983202655634443307437026580390164359850541001551575739880873657311561310516714240416712464251509117801610330321256126940771263752316362624237867281062582646127470529740891038309414681657511428944162838700090359149070954452993400009272080776660582139224055416143724027662751014326131688571844839283531116574939686163348192223828118570045688158167825011749793245052038252246111172190201326577427235663176662208749746392622638964655933045925667176567168355796878962776285651188416318680256158298468128723790855203862881170028675080934517757373749544785137764310187134701437467645396139194497195213927775871280161758273128990642538283588444694030625836019026407409377376039102442211672269381688436564095220894822207315431713222484780888709763918773008980310989501328346466091827690955172756393128676518117486908258325828544222280023501349992884562759407170771677343204938656597998931572347698831688461724195965971754151257203933102073004241065775781117733574410655327768783967110883366567873199248162219413260654337159977669354617081802191564965215080526739637443321140722665057019137280148119663535426303522222053270352617781757104035513950808442340319640411353665399312837793606726206072946222407405416576627991910827301796275883141327551863881124315251707967759743781756637958892898344703979493774174618064837568221012560622356982230969930405503974749064723923369466010987817713277667028931108054612265554466976230085222776964957517693330421754305476269635677088417403815681913210716005585875340096961045124561010592736477649775525106345129508689702782545809444611848490300115096412775794350507637991560847403823422845002713843598544356666794177789960500720577504067703411744923099853920306092059580496745119065997916232105947633821238965456152611104886909917292000784689678046267804395974036021532956963255801444783103734234765295122295104621068808848050215017347525842870715889443530837847854940146265238933032016582705537264409663753720140443155181781442597142978447717799640243266971820213339749420077903254139183197024743918989876087332328362252881987754386443646883249155800655708708731412104104869534832188327506952942920050969394157213564051009251881327841423471585509211907000224810868416036024175817202580860527505252710102585571927407899375590503647109058642675752501381626650849309507637186936060822521014033542172541706595540221905972513736335354682126101828908515252374162705278845926513257184695447015728664912714805287691696361904843758557732392363672568163800871059171661867051108554155501555998786456880125595954597422254858046366480283019554863232094904718727667890946807817269829216502035863215030108521436034213358970638924640428316747876263870379500349151641936897950064336652131565561953663171663281047502353126689227628437394598819073373105307765566910695507901386699882399769032753367390519437209021613856042302149783541047099772105713988623445387335143639460245003303040217322005119055757087690181011518532727629158643666430128496919545922457363804849393536369417468657792725742987608660039857435280697661113375374380941779491139196220254722667959511929111898172306122042477561942398216780149143045167671766783450307297812836509241422574632515870717131180303576135337761705249327152483829308892147459105224581712212375477425591733037824309288176743146627082976039420889494645947415648381590345425823692582496805846171062847446743944388475171427056080504936932353913919245526066342223358838176792599547386476808654313318560159548782712224630243434166865782002319523012971622035086344349783664308853544281649635313144917665586580776991106080830792448082090575126619413643599713031779336642242769193140776083182553998375836592636371058855993472059459410106703049982896179870001598129048186522792894687895460919526899492846220750251914562802890888262025270165833523635196879834559600142241827234228153365501031798568267683804187164838539989417994541240381618424811959285051071075118267486683928436317756033538237048617600929275815199039434569053335588653643625984743827440243923014858606686015945040665863227882062574873938170238773350999297356852172964785381906860393743409409686516892526171472603238214796956787911720945805502505460806669515217755951614278668734442731984345104415180131548719768190982843507056980638516502460095297648655415364733979362426741169597553201405194120075711457666851021288447011121418105663022387847680482627751875954544665913024746657039414709298292144036095338476518764094728630256313102227030885901610328129816412540511132663625693758049269567867734147299174206630684397137694295987535384684742165159823485989902803737969287920188316960966706475566859280759668349763753619752209805934016942511849670572191074217050168555003940319383041785594488482824214763423055127577923189848027919215493394335652244298225608227949855935123237796514450024297219039475958115811018430311751705351145349160774706575070786570721209895093360078036262497534299239503819008118807089376774772747234620916844343196656904311956002435872670313723378446357441176544409637549460884921040243901362036736077356577921364120784150925360867285770745197919153341769417498076865379786397903260647265199879244179048862202740822837626091356330614320162228954740448491787740387862689773453931507605781710275390941272134602886072981372545996125531164059921649470187553012767107138460789015495823368853864909399389649773170422828698781188205973342661205065202142686838010428952747321667571091323571737095933887050215557286382281726882353463737002065921944169353914636887463367773593860689054228266857853978777617563271497626111186381372695860882222442237738746712627540072040725861704934733610874852380515185876103111856870484560393594105856019480387304724770447423035749998215064338145771802545561154477904042874015954037294162581938872127235569442563329979985464786902215901918635708422340471612582099542720063417394802986436800970537304435235216149520085330868130274639557945346731362037443113547254921161753277849009140175215792448998388735056416822945988529860978648969056272391482478270807937813656514884072335912510888232262290772211985469464693797271746992058471657795353127911216493558286836401790543287730996334973657541607555095106833969896782811325476000018024667425093488964047831286549978441170406490536165150190798913379162570857293628770050635986238675647642953129672438477212697406848412514607691606206249138345920983150609108264876589837087088062892827406197774735011499247324363075580627782969435134184584048633231735744564962194052087000459407430076384496799863037805205291772971882216797513724147453016254621200218271752860833676255508861539080429718160568814218297983674577580035755266740684380792242618078119357645078949146082855731979251578173558738212398483648898330657284129951899216453569272839157928701920671575184772370867294627402420652532573733117067139669839325117417006413120458698312629629000158050768188536881551613474599694305021866591061029177100587117773173881087427422433697763046174627189986583798707887534377801488439274827076651978293240596240783736967356150464455232194929530313487271276330917078755496931363084014925689239970225812056510382553348985674532596618052562469507647696567559302018731821722218827101267178809413585310948232023297862885348071077806488252031267755098331347085774530918825992452593506740227391227146332590406598130473826610788107375995275288251346072611440504671417972793361529615390657877834808695364144835436178992923322995533840265991119680961809454795428115469568135208616711102730831201960258263620052187033022746725490018883070038685866346727678107733117690357877104408789284943050711633687560468580558976243286943532797075434756225833793296971046978828402235060560772748775076165061929996057525725322522420158190345183848236244033943894366553544736407869124939716439499476006545355762168898272182393158656281541832398570461880267927159435442688152328110679315951827619790615779440787382038972917945519266792600886463031740645767488184499173314903041113435059680935239032647940860876598025476447519494854576644990048327395609458179731307870343918659239934767174906096627264521259405327340367959992551633580519176262501303664028775907818983629089960766667849577461848163312113335885407430110908121909976020758971405751336549571832925733544669736263161681984754841497091693161975827109661971468504944230825873747252424146124219407182354272298235128307680771360013345183418529323335123412071523493464879515148758417481753220605207302981166161665995468955701378321966729303206644639706856484263458072497477754254142207580708099989606352879759862410799078619299180887410137012561907020528982986510755117177288541244072018276226351114852596439585512838554357387428265842813468195418238642106643787563070443219299924925498919448542030580536845831520085741374496096229487109067836475725956477180166343613673626670437492569855443135966383228035925060455808180120114937063727534808690785740643457565824944826515442331016164936927937574785961542450667843069018393676070568027717729207197742317110693413454402406864641841284463737589116075660797152807805583098066203899761708749450134504355840030575730575805087346860730346496375492807238490765280996987800743336881004499731534990886092395855048152156546514688589163363219418505593886149415270535709254050612041721249051848967746405089732665810795827296833012914854062077235204924580477617389342019433473356844647128661809204319398964374625372102482085539287339586013561437377146030174825679400463952766758939892657865714517982676225224165311828242216980738608701482694496030344299529864584722871333500116026623543905415765231621479922439077767110288836480356241105468978115390754524922140155461437663185084245013788545936659695225719612102788161808966863769038032783297113222109959036911198782318824640758899043975427321888816452240151943196800573700447946589480382160076580513379090412935930116729310009921750750679728626991410406341114842264273969670526180716156399352997917304476876556047213482478303723088167590928909568780407810210329401217320183113064415779607309155277284598399745211736448335037357359001882511737384389616512208696639738254240318600536492914254990451945422813140938432324953482997271262494838673334880003241898196602927381045671699312260488550911008795040495053009132985348756958358039593386077471619462887584395852554915360352484821855325526334054100057759754079623241598777398985298380377563164354151130231881007051440886415139525425983136002848196379199327691784906815511736007128835989172168088251965247249392292135610839611450998161309632047931670018925779059371335576489050423500402725179486800623264713879196576280412568261686808314135872537332661528414116336666960334702866650589319244203942871553781288670077991222442964302968442794139674684031878707378019387182331746352507532650196040305801221882171641445915668133675883096928312931391172655738402323277271821409287475951855179227069717025807536313903832684260121016762786892455427570666941138754497666460841459784643626307745785863695924510447861325532839632574727773117713271089323716025155632780072576866958288731572028092371801161344062087133667243917066418485083202187826917089478121310423104805740664880425723575607592411052628778729567263767513566068490173847215064728307728942933523347784532773705161618849272761098573117240690116121930782991191406519481203235773001244632660557051291790185911511887421781574974899327099402683834675627555537128003572158762070188950111717642703448943792448827406899706234253520674696503812880848659004239933999049602379168364624386287613368437633828315333399602992564264351589775394996375745933289953961445865669105781302072245496923711234583540002653454026504354016039043417617950671021794566204765882347704053238189801429715372434484369535973454931056668830406750009931974014794312615102623891113716249762187013864950016890940582512862357662665154328570425316138592903581929682014096572870143310220371011567701587945275595326477156354648612407041144501388507051402542424173692663979595525668873627026402697230737248604359385848853463721463962140188306207781503386042869050087076168217075629797336671218882412870518704171502535851158767340426975134806676009605006505170653182597663475251623752346539750445886481420085457140315939682816767090745897861299092580597772155500113530899082409389218682958977746935336677117818587934885651619763060266997609644130206783974429427637444843245305738022844430064269119373752633415914845397136534122916904254083125941589379119319705778844451112762393900428836575819660634260852317917888954964950080523004490937162577190397447974103084536916282761457780674675526312816864861739866202315006417595340817366649413030453597134966667622363479761570063181390579859532891676483596544985174595125567850330681277618033214415473713754552935601688395681178040230405207966010177690844388932653570895186170242530966001260008089629873570930842840181909921678951651458184500054595868962197672349522848781477850129045475959132036675654899361032346646581417992118260569317132734485987240307449913063715006115580860661273645552052583091530299595440418699384863578517936248202789766738955119026244815084827980137734536541847980438588075083318161491775748271986398859027713744427487840561744541427043412967885448075224729013206819179805317791275721873339445152576313892156467080632901566110726940296147599793006252295511704320907153669507504276571495757612111778152724569537841607340219180729749307054288354721744786860433850245912029519831512692629061747649724658739411998296582397689058778080307512936022073757362322967561319156604411732578164105219552401641144830537052067347895291431584797281680462794410537415233970323025754004869843597637171782026313705565832980197371494766081228213184181402959087229403973445944220862855104273480097667411042804330240901991576687678228012486277149605065217938333801419406211564075249364770572818798229324351764275418997294128306040535294054339244087669246544905229165322170611892181651575459268962525589535635169135270441373807296362543994152079136940357620200431993273692286472264962128392910307740748332429885385632723295093467213233284112804567033728965120031667911669060267771022975556343311725224359508463137881170441606101413133170053432388020436701451985654087833827434201772786895209532671257582918887184669977798791062708702334457694291023240998928683883702273707276259695924916199131430854087229603087455026001302307978352279915942351797377825352015824414057112548798682826759872667031169934009281867329938009291351248436965046478797511012393935742734568021706398441462037392867678337207099538803604683584402858111699211004191488965362324655970499096448718046894113926500530558419922172555800041490599571227067559729265258271534026673490079582415368175905724678152572646224317540322364353980255139424753411806419053383513569416560458633514472519195292454644151299552731425773020849595153497140896009245837547688831490714208273423344410931577393391158045659329959829646159249113438703840054402944288038558090008321943112451574165947168543149813376403940437175393204498672286803111976084692934512116147615909032157196940790779754277529764912528476845273703140247946106845478032725600056247029105546232397590202686434887514781154841343064155346380037265707120253298643958106783251877632065669355246563143263341644712187755601964915501464073358955793006807059708303145012083355106639569319971799496745174316528824097782187464868101279789953891267955111552492764908817316027037386261311274574902535209179265745299843237261109629772837623803626637759724993566757749014045730531869127592050408569862701630226244659238281936075410714464488348409384038844462588057557406115554267480924424127246303970321598463596041937631716192506586772097343422907806126963660351577942635380623902849939713138774495148302260975033083527297646688082073852803881811568874015818460457707754591140995188377049777986903931055445494292462044870297061827897474393352563196993543578128671624830350201345367076123127105773698781835464518919400424724632762424391975493950919121230180249888403795274664654822131319710841556590516557946355088642630629352483192309843918841194563462560004104508618505574288823158213512908759595144881840096911129292684888256390885300018532091659609182476287765113456085018837684655320346406011227646198961607980761378846306212219210810130627118640388621599914828726418037727914470760449313999446518351779824470439789718741637729434707268742583516784795033374987839594514494151131869249060218901903955103808864883469251843504451939358007188751297392775339365386531768464838312818999839595733642901581173677511600254224711323296109244417884365207877989976450707015481932221759472805002882975277521317486572434442261025638146834437788834210783644898505102921651139190097055669903178784936521125939704481875596864913541448254312074824345387847270279040588712518719932979923434292266239779979500844832418987394178560325666227056643156126708628060858068736712428851389822240398171752096863626627966040051772701504505474150455848119371699627323209775406932618238285471112534005500539372023499183219256708401908484578997663090172610046131446768794221248479301284785903084232794385586239763786839074106830724629884051538654295366373156599262023214556058579347290538103111064279158820917339205549340491530636825914549337361077238520566521220283392042292500344938732349220978929013799127475549918791007164330649758347602818259750630153804490755707288513018116719936136206239961349895847458914043447181076868731871348615943216869943343665814144825628928139136739876613334203771075714799446139105680694279023962204389171770663926298522633410164315100099617289177239773460598420804338331395498601395193882126824011058890643011697068425370689540955661163576422647849980800627085489204146311108717452413729437451661113904272657742640517886902792282102743414968768340932238032315131480839704636151990335047634190696581000283516837749320023117930462734929599314337196782840997084464734260486518150250204565712180374760697987521285830728867713309786108625031281474316272068116890548972024848223179046176776106855006352180958401924689123711778511940040856405235346170386556075692034775338836144844797920159591390350667255741165399487500155725325711173437324501119749039000756993982155414490168628697840936714059996848049452576506325400940264339244476323527115728206307983277186547763868901807707261306915922910464163343443341392620329296753835430213134950068035891836234754338285221902240941626448764027950279991424898463918323181666768008369329526726227792749272203935804539437480190319115900145118974331625683673428062207401595010445700647373289437456129463358281397720460032212688700913162960689963897434877884733926566355967066941781513152872733787310927486914362574593998278977931122532480622641065084126709389117561921920279750911438500449791921134929675617022976388298708008284042502251379131607871632206149536677652604638990735536459071274505688539313187856044803516099915404558497170109914626456034476964074908492107159408361936199730710238497914299344386297841106707423159583097393391441744526768110987624680386228591127971090154617990551527310274551228186025825425720634811331978928437660994812471939340243727145016553730202246440560678070482951828765347440943869437329172000964635363005027658614821970481243881920365046241243540250241123137731943321954650613289358510994687062132751047647573343324786724001830223129992973790000383816902832139313751992248949686687765631757467769259468566773420717746124633257744014692185389689535051826367280702212282515627677230690185312207048975061295717588376139383646133636696208412661498965831355261047416173191850017226733074812689867710482923227304477688934842857817547262316002537372247899779503481566538662119524114640117785944509027530796558411075917528448445426842391553720699174448885412668016374736652657884363800439595432763256211371969687368488606563085215138331559111123298976741424939930410425910619723462654477126232889400862065485897755001569696551627253389609712031877770758383742968728579435031649616808783536810353713557893207716580396965920140084419144293244635300782078175195641291961704576725798596758473534529610934560891356521532741761535749247851986824117956278344532502177102113025564700787971245235811655667273704207312561441644552600207690228849495756184650478867885905911776253041188629186698262256556218999362264760506422043079011259436478266633923289089708897604282747995287424376874485222071814875355876373057116791383991326196916452030320881693018908787763080945490784955872322347166120824254889796447939077031597005326362500065964916002711875029902100839990673858764757533457196694829418550689039090402887383262270690939183499159577823043325754365962572016698367483145838786836511717355659909761344585785561991887203128269966422957756159343904732400332727074389785858150082312664414615950453120417178976156924680138854970018973037721433147946591027488508522082212224234918758719608111215392793260945134238167236843593674572732079388745510592710590776590979092837287658555104799353549426484472682024282035891957159035238466122111280297801268159960755103464229841695782911563798443319038341141702490399434163261947123416848930688965438950943892154054984658718961635864691853404648784918600094561958253418131078203660600221031483083669456949502507142006919676181683623376864926776144246506114473399094954837172356041108044885106494609327153747117102353542513119216363821652996380174961551650537610636984500198400805003421492778666474274171405893857468428945097612407614154798444150470418637896192253711009109503769831738321391654748091369528774786434207223370972390922426480807271118021779262550194939736408966823120348171051556263240982664385152812876044004531893364356775825775297473356197001336938506196868308865087679871432534479967336345757255753751844656005215484498280269920014251286153900232730800067412152457395267941127003051845883712984400780531032631160241088474890182792200916373351255102752567887754239480574214828669323458121752547913799819514400132004342089908998455860669644795016747019015870507630693027822664947321311776913092659030837973655455486214902620746656201496426888886077044769045964357041568379037524146734029256590461619187388191452416863889198212057336869946618539587585257364623631421532523322944816232839660954937523184991221325777942768101412688210318966348866520384728418087039533346791700150982965425427201198742320682127258182832826559485949319774497622690181089081115705451369470365706846955823147567630927352599172003916791350837127673212062689692491456875870460780416892920557928146343578720668983017848625378508615452249453876270847870391854605218020534699455854967161960171600165971777238044576305021344331576986676557827871650640983021641173667113198605622688224801297065813436279267085880471179944238947364177224775004064886205985676063961340029956169374411409478015462459345559663515669676519903109459936248258277190516698038508870347756652065315535404948160742359406808344871003274907138002754594201444429644388979495132243577448959736998732175311661383190730720792614777785464378629404258278831430579516726668241013024017121351464513562705210585752146893453139486605874154239774515591263005643724736440914216004181175849974748308581865008365802413870715140683677348946792778678669986971492599551164187368754813692633316560654190667144149746151447357689829371677931090994783041945419089319429509471553200507861981393448546118198307368302819538687224556655369758960518301003320677060214565150688475184206335135689293833433415226795873277230283662700891129528613860923052418762921082071247850370337497152384103320055825342016700585951099079556231393601609877061108227463961946899675600225552093381264116264137281452594746495361430535516862662836621209118480768350497939945787222423834053217774915777438542117182015954421423978181450015495594393363694759512475622585345365814568701842531950762651332953054157774572209497237566700431491249003113499610764995562379800780888037074988207745165164203447754150466649358654519162464779279109576059055123520944243396085163221745031421515790900252738701947913982356090943102002337794090908096808491835158130324558982390787526004114896660948675714965558711264480849341176511990585094719644257152856858167605067447857172562313977637865624203850409125534888357547703911929435311879992214722596014189926698558891033320259213694466275344990854655928230640631207852218630564522739842378577961404351368757241817370796329957686158713289848042390351793289141187344172227281192053134516672851684986085780328933140778164074507804623910033914921834588779009492775554889369288622142816743872966051880160964797799630743096911031561185444199649254879168274819310974043607194472647904473035252183696004807334971792717685679471223140234528381056436635606836882470156924847814699093840200105934495329739980388477290601635767866100388079498247857931062442390317710484339997852517918238920167881019667650106087872398726521169140237295597986362598142923868754107803344301059759271350993152223753710477311121814799854427118941183215093978005966363822027466987682313934243401531665140331965858779236085149963343608768107294444159415986178864764697484328584928615158530533790575338743384551556067601308093830913589443766584284909190798137469693497589043556576189468272026249228907970537303881831241070154239967641329312972844297397544215018377493620443912357442546875673160073057690343502369882364775633237287729336202024462116796941473506381597223434518620936600791550121482314037974955624423635277481740782000879928534513264072097177369910672374403312688985655883752998159650132211618144489137524328028028932607676873200941474068385278657827778971725234654947946425489686104476164305521817498912643181448351638388917623958055153045189635670915387352390976515385893345636509716543014244749840465787662966898007519982328240914709794596249028739398259092988481916955838486453925270484767803717048502208390939097022235947448579916207186776465852534718799016538639868279386163043044045087791284714208788252916087287223811158070715042625393389083444519006432194923587806994125866287271793960899835125979134292731553253517612581307020723536038369620601672796391155141750970293708422861962591718774404063074638311195856983103080132865211036406045661755507027586873848239219135152643544206949193705366689383995409053359314262726976425519918785960431127695560660054211598761185463041496338236734025553588166246797598503971133233574092235505624596612623071170956319631905394225043282472629919048513993989492572668719160640425137481057465254674820085619903993982570087373412774177610105243912492089754798906416421270067888555845617869859036942173726284230413501173883318452272101997671588563798067379157838179755089925798193302925991372815435881174125799422780673392714863460232444876229991983242202823385665338150705724579173998860767207655826059348541046824952039641376112276594771720477896093101094773900147256308484675549520640658965187984226337681814638263803836668216001185618821328511864091691218844425453875659448751093790213722691896726681830686873529994165096159659484186050106158524626903800766333334293914221450355691665371746788769615523350405089905463528900265118052278521148690512793348204545276435462299277497729078707351511402804690752578364522281145345733470133520990292079050182974667427965099366567130605887168811149143357351237992300071365266885131193460407823212005406943710774082493712875220440464950847381067536577664509697002251099583143404356898669655967750534135151179511725235543966988886316929132464838960211895966414727931882614116765578205994781530624861164515739289766314685303067311588372728347780934747142423228459379823769270940962351977330586349227387758870862714685908495663151268246442982309299416535951687275026696869440163313478091491575493490854369977335411618199973369113899864963245105917320189193304460443053048378836558188702303852516146927832631961787968265725219500157973476857690406173334945860486355261453225203080585095302860290483389075029333210533956116573336010762182436220899540399692235404896537559133095928927174012913072984488080672058161814782653481835997929806863492889687524761018185759591489112311723908463532395045786535627885315802121325440106048942351916932035360007334075823576796585411663524054265409152876515098432609439985292415462001252993146353280938807405064577059822086901570767609056557935660278596130825986922065125901469235084041546673480327729397641764638760797033571141641008086377051093276378432560422874374518345024776272127668600396203940989135978624718833143382736912585365381778153424891931162727159554883182706042138701554443436931178485003131898613193795545195188874657324954611172310779162793440993755556779715508763516226039986637839075545328707682764109582394358077336596761669469496025352855023869237819350480408148493039436193051349601872454676540736990000173316676696977565060469605571406894801884434361781729128586066888381564301250406671561526141956430419023365287131230858868206872546600426990236981512183224285489261143404458774617231866485216113012523659728693047738040493977260612373750046887981462353732328318996814153804582013353291426750950237644413812472671478493002881720331992506962125205266556517907778172273654127014850120451200874995276139817734319150702039186170028515532070743437930516038519178447880168460136770610769098517432933158863900712581923006571888852812092814565180099816582088112785043621369591096206945899493408251872400446097213561250529883390771407605122393219150940365617287317373822619511218610208548493618887827139050304256231720220429204120182326784234648280605872035387188554738613557311046545891042244560391622495569161756492657536251259886357181781781523885102033050533638074174195942801626220189644949085868016327598990243934722299494695146188772105852181085404473632948175096668081822946650288928360350416341291354676829585143423998005497090550842946751980501210493673756116656633777876754717294731855269130821581469705294359479841013501405386917580178466444626024085921406348758645337959964374280336756841745712905723148956103783989740771910664233052779372874981686847634034745904144657302280807562500225828860314160496642583276418589326172019110227308214783120190756804504122650972096344555629088996036364700874269798084968144415889235826904483869599427863775844389697059431691635840096862550586548839368792636524777133764205515206834847345580767507349668176287773849186308561928961968331879980453456671756482578279892703695989958840903066459562549291346944835988706014805974288579109673366413624235325546033322489184719098789676598850216176708293419173984908379881685978763401951465560312171168869360053641275123483030045627264515771383980557293724835704758493496284003546658754226548353915364771397098708337006879216553474555305040076037739674335618204102207144526661249290716327890928040530961339030267714890796864026772466962482597188669014051076352135275264902514511028845518254692963584319572109541201887288360266230972780295895713556555207376390391888838657422116247797316970727175974777380703651418573815449195597984972440406135409827802814059823384797629945027766616330112157190866007719244942177340120259683813287024781749972575230462883609916209765574361137375691027592100582603075972594679898625448876647662848161617139197164376469289405581283241659018381696995738933198825599387851517190403261617407166144981128092627100317105502035349506431077658000528546243835445063402805350361557898381889440773590753766879766084591915724742832583592235020003899932151631986067327004582621701280864602655106870675698765752160867046520955985352465623208220878886302252814807596671366398004055419209527483706032556788073241625103689536740280586080729779788483980498825517425707828992718660443599679027997672383007416094229260860647670378043800712181106963706395154233902896542371768596263934619926971472072084402916008937518780138268082250773782245784938304200436762473891343539342262046984476580176061703543329094257735003157104595834635884531466353947704730113287416748641168852866916622684576920061295761800610727271222521247812980267301855131435008340750272648406092924700166676905249766503284744848875280390130087590601882042375900107469034418629361875592491888340545873329024663662501078122357389499671605945779666987655047773657136524183837046014072883162893477814571418978961535083721334088890562221864729835915115466473669393045045441816426368656010948382643560962036204585971803306536592198149843953716574778569871118263076344925703889287614822940054007954047936627496820325598182960101662102846024294480820287052865182661560309167956198725121409931206359552176409034081902836599769746816271862261497763807224077695878213800717739732431245251298135690165701972725254199087230970247792648758847629294845106195629237744337375810197266024284915695637864939764445166929079291789546787467146399624075354666865387422669203063968831905864157025393652203060096704113343095096946719125054702831744654748521443487237217013907195660641376566827100673909436530690672191042406589831938931750371221407137352723486232114736670634528494337113143774885954545536346587234834373885909426068123200243156415525569118441443704308939572721045882018215289189114052658140858982698691618232602553970909113704482243604714127844826428367743962303896326070869834800981167659336811605178343847928345264998406059048114051086103045110353854518681877676656845846790217892324843526875653910962584303736218396805908522476655171643906025458590561153546434111314781071040654591084407084465888271189217343426898403295781484399070379173975754427654991852504931319268778619380442480801813150993076240999737030244591994425561057469059656928851561576603314441637097834632233269030860411383582455153461117868351666502861055595521654492042048475031709385489319112579602456197930799378022477782431571204413818180924413788628811080709037538166737284726961761030497898639098007233741737720721496008057843742557539298421975698443839172582052646132009353937897092975887323156217914331707839898997289764653010352297477434934818999356114570820726940543929894430548595029605355345696722916146562356195646943876653552270815637875347300550832740941661643385757857461973212519730214530490305115591625598431294196033904622811492987298982723968116879931592414855315576964424865498783159055598683054009199337419344122402429116428204847584401881827911103505979135653335510064609261509227301316145772381987464220837639950508021295273347335685102885643785882192614828982660036727008830938531753819090619879879337281673406372381902307984854190842726823708985948692237612086420913508729775852803184453548145544158202611446109429201467570693519680997104400790526401082563848129540924066743392896409471354888250674964405942855779433811325998283799140877779107078177744250663734557958250870060165609549873517533508976316708695470074719851860515611872947172053136700751815268057471200176886029228107044139556016395891343475224479143151205262637938471552857352070341196585975790834182609929613165032515645823892023573983097682671408016233460229103641463799432264274335148596780102514135862994175680718352095219237182708246698665939174545631213816683876679573385188555255794800880999017962148617215679914749881249235142974605567560773538657093976910695174126371140200024920178004442653061320124134282293180925588490317429370465607353499665564131541825907170416789460007280214614999498640529708726496107082299113073428371142799403737835720515606558259255055606346855002077930302242316044598467471732928676642130733195495744237245300534957768933135218794520666939242171583760246018458981117999730032762771964844109426084264528491038283666103195637716733528359970390818701400002459394120476629051654405943957512856616841435105326228492043671984190215936744146627269037221168178217619496311348973498007685286646648047294240422884584789050540291033063648968736490223525172465832336297119806209861869043904746246329277165844904685714038502175448043474439022667153119759910838943479734135829545283909618450070634691721412346550981939700723828252967015521023865812734284504175981431568605124507290534996611612546454222709824469470414759996749921708361792368428943558009819365693607442723414026582862061635056071348260335189180431525813143231313590107530773210223441060525964847034031860086770417194555134723384172556840743228097912780661709971508083127044667348309469605037860492734864353213367902853639150626136857591159195482925821872585660721920780327432791023539468497085805034728199905496040852048338657611108453899132271376354702537047510297036597915254248720069015889581701520448085340581056113351110654173417148530422714496459047586304532088165149991358878693270545318393537621122427900842419742669426948440939979170233788217189509114776751243044973061607005165235269674763308673322932799522194475804304376884055356098827961292948114438368389325637126156324344894296826469182662783195566961294916162546150712368131936525309065613929234135835793982439734580673309284216438207493638517474871634516674250865421335528572570773844792402232210389672181902067984611037563565272795769328610681155723736917396067549950467221468976622612830221894997930614657008802066192945824600502113051975797116393031554425825397858481114471027355489808289264057555081713211529749210408912674279908353604149144104420936335329425102305490509048564057671724735061648514807469029300193040513681642122634291264067827340529145749622824016243231185495158434289257924268968693848737044556080662133744185772305871698098918219352586661092619526515595731256141510800373158641409018592109306070860482825505786780064954671884955518804657710166718873655798743402891610671247573183556825554878129581475489626914530639112897764508055798849548908389154235051079926346471922127968302136294999797901678166354914462536705938600708248946390180977013499105950192117979330070871706918210220502692141379275664917133709745228221959597665176380250320007602968277527682891626355557126747908384787396324207241542979382938190786697369656330445930427666035666554454888088420751977151935077676562437911357471264963352547427156270323367092467946893387030214993510442424694298701629241539665794202971388844877194509746090241718004306497512625136414740591452496625401448768918956231023375849608278837046874333278775971673862543697656523279277752423449155221005669213053375474056658773953634564941122159893726067636139619482618263143000697964288190657443696407925026307905873300660212496873893982245078242974299427932555185217834585305907273137128543350504449747788448128950800190031474284697390179099436476043799238566419105039442267673097148220907947144966666699000517917816272413494676065082079466501418347407479178706372774094148514512250693997555623484205018964280521551878368392603081052217858254577730390233923272443124544518851178149392733180101505276793155155160253703847220564568170275206938533345365074924545130020063975105880466583387759214070034686943545116395507229831145361725460682109023570453316059660382621991773606721592611733450896373514803186917325310980940029729499601553726958091709153253667447201702108126106409228085920536039537328379167529768285281798848085749216983943891766446441996455442066137027795317756005385459043609110053579216649485576669963758382391446907035497799036052129610372716506540261249666502087329319412633761256261776564903995676913116903989446733156529750005023450255267029580829406897789695578774458099726014245809374844214962063092115446337160700008215715398428789402322979303098444301660929670722842731325057663694594557411690500926381056343086459938444798527334551665632115988314118946856786300964345137033425520402087209119204328797772945647969634992486648651310943479941889322975419460389360764126546760780735116689906357663653209056066935935690850874337416010421030277932797257842045429599638623107749039268146118989548165739082541167899086229269851312706914485361610614624128620873122380459652671258550330721017067465156457647523105130020941338775367350677056453369670109182582159019172966791109966317160391958003776213334098548839896032417619700457934035727845047551015075040653114128117669621783499302577878827303566553476528683792196379077497368781404510229988827619956645137561238883859929998061649715591922454819045726989972143127934232626509440543628086700065106302081226399067241812053680200188871720081142524611181046758012606781612143403294451367024335241156913640982637463835764329229841951124677351933734160877726202560215871951109355387994984077759400534820599236327292555984512073373075981918024105291235441833797946692098620706160917346132943910547794512391801453383227364187262211529728594278566129849450916004341941561731830199289885011975132498857882907650326331670883677408723623110949457992851715571163573194873373506523897445355505907102658301425750167775143899262035343322427368326692762448187664461807304284645706676915348521488781086873382055537309545175972465172357419791012059937002455612625230245524257600271455739949804699231965738425660613825428205917690630152401278316114593203238318458750780508195338556748799061437896476426794999417040005495328220802746838729775156349259771808926840181020185497033028847649838591292651836282137980867824743919482951738331387779202705192201505795189627011380154148118876982630026349276558962925042361648507733845677211946081942722455356448522122729383305817698383698480302739647697857637034848753385566242344570049775476220991272893707610389344796117316363805168526739299394610056263360830444396559864709597051721837837253306004022820030682275353191445155243204695487695384209267402104756757029555785007209477499353483774573250050124431275918105690849095426361651013836981261745606045826341300781055568378614362961682062787857749014570578350903649230242759950300035880661819438800096483788536747594541958219823121741000661561499055462437115664372109185375589406283247499766080263016046009720115573818595249687372126345746565414977852936493918478966668878397630894159606325451233381288612842881747173165359761550104657261802238493535085435112323603071021047235134105729831008223672713439988108653769914531809626980705113958271432559789074691127056338527002944067989299590413925345140028914605057570165190674197965299981918887802750041864459070587883011625893643076774040935287976163266508021018723806808052782550001029487141615943141859835323905597973118674524399017739727203251890994141226023923910409193351284899759995910388054014761489727051031280055163099817965915397905500602485715695419328796717787766598959035007638544671522275205504738875520223449880233294749478491192200758879842256579493586853426745914219191286722216952102591176246840221493286599637239650089094558828444312050923852515824877006614998021683312996337653844160500552346410159052811300266756552451349110066239500156650109091922136457958091900734716340116239626336013848901498027610179687486691311194755228149065925255183644695920990562546864448250372967821492365079924400971248741862679783877597274556334241952819110822011080530494234311894975143100509897457492677544586555757854127713100481240484770892325876935517274785988297340692584050098740132853736873781355218942427259501380743295709313280156977347839220218861865548450514552844917014428326027269072296939709940798481717775262834821690095281284735792275970186554809868344322925069596047659462681120230024119442224292864640941323578136875824222644044423129757529420315142754332945842358341719809751136225969559904698972041199452428815078722828926581925524538260813993300328915571420906143893143895450320209749301103898727286701729435234004600459049182623782052336093456347466418139279239328832635423906983816760759253406205893667545519793099624278771752702568726335414445356300090614326256534539588962996824826767024201045097583710878701763863774803261527697825924715840841448713589234994906430279975524963991595823016358840378250628631862137883881771545637788321484886908857223158064869929638378097722778224996695165076270829514690301358465395323840655888939889919669472841086275872538959050586923858677627423981864881226351222846665867911870752271741682936086524412537102839235114876279929543530048266558401011009280078230341455030231986955731754860062128011759075778247807886627507532334716099615640077410768886856284940584003344321554905693617103704202444487507250880182663620406038338467846761553911016324025786242509922811488025151526416667893511433696263337572960914394416543300429621834582792942317412127445581919011524623946657604389441630419674966720130698737691480471357315980451900510117546146342398632158141646543577902150644911478516493252253295169440950344576405449729783264465665822681497835081776577884843202693088842659958482638997429507631020629161511851181681481581596630839272126778962618601720225293275196505849699543125313941423232809581473238838711791283114235083095093751648731806819566929204968147380377302731303360579233409754061387257386923185424096299771866333020378310996055151708996998618148640407384029223458672192970392317700693659084442893760903922320388769026125814323061782756871372667350154684565141802738282845163258335314793878505084806386478744352408174999259868448616265504268825625653217831733892001213093321831281323144077555773405643897770936397902433805256127622452873641306805290822676206633200046062173431935099366846503097058786492600131974377191910627139579596160403633132290411617924801129165654568697970286590980609805657079915060194316549177193660009830265243940390970862011117636575585060153519723731200686791184586228145846285326486764731252971087768714753968202892542706818531061758077009776532243264453162775765291597919090513248209122837003708691264804103283618770450708813009258525390701898501075031155807009601596268443511608689399275065215511240557788812508092073917363955708509352911916849358702551758382816274147984622929942181967231608700075689332745075725408543680713562148180540396998524913368443098473353303370341940218633218947148418149475836953930652838585434556288821901428317191440390805672776821941661522516289691520353813527764021653177664523533214377175442283744646629685950322939563374458282773502308279801865083904355094266257603022512374892585573747003224645044668492487161114665827374171607128195350928254645373753017972345888502934412516994811172648935457440030111387731818481438706344726991534799010025032542628302349896324606401097084969241294047774245592278469791211059426862771207295162209882956964059647705918297647098265810981781406697474892398017540992249203689715193449646140603840448499355105959750380053355269205211378925627324207222247680195403581490607690715241341652947533040514935787527787770140773162081826547025720581551412217208537532929626538306719454283644864603315457753561967733241384314435497183543549294062241553590434338492053296631624826919158465133786482184167158147456190695190189222456731354411497958228068984956812971363020923430634928185724458169319341114757086241675481496299397455127644535787313665556660179699363648128155355574731043328995095796241658742424818677666009994171674035789381212666830587400745747788178975384658788049182200783507731585950308387629377983764245394147000191518697571218038633124908774362796644980141108347425966288418320890141162353454383477510892145374538973158473429608528077443114340475088333635830020798380971235351910119152550141800263197192061941017495854047657116198427925517406135790038355236779646767692271418493485269339087411409633111271721918181220993564538608103419118708233482936681290356962436046642968660841393945589358161426726744099064186232446453617059516171477031819488456514779195079765273469143479343790805307885634285698199394727941386617264283860610028145344855688637286705494229561383275717536146663876720642414480614258870927114192296908441525914498410414896900397162228808378741391860616549267196438030726699053472332417334745195067406158359784699534020348649268506808599634284342763463525301192105954019315293912094802594664773903853735189347667740308745011834687246379830486718773468713259469381643742052515922515627652598573578563917974797249584200047886404594556221317353070738060082689311971924152477860221027305598488796172612765304512194463928308075614889452171313380176977986896484775226642122288272346682642395355533006282606300189031175737056704875873323754705881680782609431181613150487012864293337291145591323088684303498847590056290676320894391549450083423552572014874377102831547449162461408875109413932165430001445351774793909109332145860827215553600808278447984539730536961395327730617761175388871071304286718599919986582480287050906862287221288619047765136938093718502690407951938262984108506739363288600500949482584457748478467635688849297745613086344063298821375662964621198604407492192641438656441430463591834776803412534232919165235911695008143591867284272610239473041769237783498324208655451897633627372734782270767311824285789924819211557380030160235924557786316693668183627888775113416299394238493276722829728777434780088762042660739772707603206722201093011762022316763539371209696178895308730025471844200371476283915753764905143562733726163344112724207597104287347936884100888240576714048529382626857789373376120727349349560619330502816444573783036425223442805386181653346976054165436853933975906677603993198271426052124227810103762611151578230220410285650739331124323628179899285069410096197377854689191945117848746611086268898612508082100231282283790233155897225828219371987765242399685350341840113426626218618949174008702982367390286685991826199261848107065581615477231697122895208172630063437602994415078641638863336689399100641688377256514884899044230557239038490428666900806450803278951409023154790494988116154953247324517158405535528779783056473719361696869120956079769348821916932675438686386772138003791892510293637884272711805105745047065848544690848984037534118760362903145148243918233347313778038158892721485916346745771925446474378992175517202726160909737226171509456885358984260620287429742518386262835068239679571095493886576779427935594485246644543842891567435725703694088830515353975577279933415052541935368709055648243605507536582617700213411456911975663005974551310098210984529669467362778303354982717348731347828546149543134713536545645675295032254410403413513702742079430865889663250926119314522828689112881885347268079090737543777096990871480839887964414492544491085382294185923696564079120798600335604520248150262594677285691788881095070089234787225554382420648993678569471702875331699671573971678345726539320463948449882828066896753217259820987272559196957338105780189542973061232733471214334722827672755013048044541368552305857767916382774465880418622749586886125123410870678299958470601341383607883354923930842702320388653239354392302521146990486567486829224632983978806828060155974292255585887854378136846064342867647800415988190655413761842107103545960195135208215761764384967702534326265079844238031192306005602211355905117779301395355306772463291037317451852034655941203907151868299483356329566164141540278248564060027669975363106074093004667791701908560632378397748738137183805741863328479415211883523075521782663635255528672482088090268646285452240381830824101654766898016436689418701493012038872573449476025373781184995639041914213575629776035906451776533063723817180866550099096758561737319956584174825764007870226860492302139770448046003853967149523034172719540007766672766058920025479831753195149884125456050664526858084509127587678811067218055118079994291142863364895248197072045134406648869641929248448254049886304900957173315080487396022092353419080654360931633059553465000906846974838921534760201447213408113175435459038149328169175641847381832656204319590028514741616371741200238269887285441302843918596650630389558271184048414790450995194451380902916483732768304522465308304111496368229275239682695338331301880575200031172158878692590143852220715006437360810751449313943877605576005379645411587721626166426776138147360368705087746445605137131815235324095353917462169619901832386784042786250977262530278671610174852123344286654149830152848361815235772175851354761835222164721261576449234294310441518069372141735442965713064471385916652427978803602701628395890907523913030909030820500081492620191152010151719002340835552869581879783252241804992297315592662787201496895144950506378585899259817303135810563281887164438063146393875754006610062642882398381811751920705361298585319519046369288211982927310614278713315775755819457944325038917451110945665198693535572079726705894467828671052299072663037062222078217719276736141173050067482686428488637254988298917490425999205637033993935311821638133543521264579964265478320900899088132961996870712471808316481431562991387035236458410658369308640770403789599421216099137172476276426458866071494487125506819446091003817258804631360181869279291822104300851638556527697468554130488751516639909939575246360090577847723290504069088246549583840646207479904403359602381471354633551165879768338828975741867234385902947999147045802115100385465531236280967330875604233504093735694910496958851657743508306162432438793279830463182109441697320173002228153711859638081332536386042063923941967215664718831628359332439156634395024707653997678942986874377585365066280915072530306166319770697521047007375573063369454993433017192997582555421741760602759370977878589009835598699945143778132102860886338734457418173937610678074247209804931591655920685181417280162817195989030734147507731447830780268540067525515727119654121019031857100888442306337957533100136430684296041710147711226753519696182107467896068774786174165874938925166777578707928251233237608669285123660045567802226280181965927711277021648796587160447349189647961589932141495781993514836560349201744400081772721174238555297452967023195224356030497760592920300210090312899504256168572986029795792944523796459829694367068380600349858840807545768870910201771214881915412634519192752169962951857285335719984048218063373311745570810242766078758893134692283580639053977170318314049921699024217032894604494978549897331892645358679726996831312709149652200804768734724716928631230325478183501877738233031433499388292255091621985237320340270343020512476720309960673368261059030403360382727229100060352308194603564971860243770177008749888212263608580470650197996032030016020729133577463273101049005870293520481282812167598007830214862642439551857441646170369444155408527000581654479414772217050611216183236453480057928207037236526149676413569851280397934266202574863629100545109506252676130688091890462574224237625142203237022625887985332791383299946143348691590243616137538548017059458346779887326293000517924679132420989441130973063976530210355742696366161868552303947603076718610450928066625240721486870852333455514162952794832995513810993244100279878981991226272536295843977703336852907999176054867316589543339512225099688466167877996861637545044022106299666649466275394542622190709696917464836469603237245318425772728230133249334372675946564099752078075805086949890926339999154422736858728643456844344072890497783333463320055976105792900567960453050367678761245662546542684561672757418108779459040910574189145960020200462492670745589321883897619240259332829109016716597443519122208880550547142370708168491330863471622738118291377090680151760171579805405042784594946428458852926285281698711387710083320649458621915230224682847111552724100432378069415882686895992420125540330681031931398519656500450577876298430166072404383240034581408410226763484616940391657757074970954979224921018879648883382906266929906602977430554917340640958551293477412382313702831245612915012596614110472222704406380537518269522174222001041553225317831606506473199094160115547427188550848301661062212984764044843164820765044897332525770717526964274070952050342273455083422459020315156983163138972105906303091506721494402888872305149260756353244706623241910322812004989202594229248714614493586966421018790851251649823398386989788988629775924844314528339063124215067165249922297291828444231111516364569468539199658766078284690045926338864324683244834038494947792771289720403186227270323033967716796448232697911833698390367581496714063545801494187099532704910398897746652421979527602733415747345248243461409007909560340830648120997334505972928078520250494016341183377084430561441340713201766518419382673962039579829186424744276925393254049029265305062149713294112207833965555887644588976455468453401286591185528670319142827907326600332561257278720256862981640083747696467320118416008858117839001984644226985330453587250712328092773031575142176143410175928908894763295325560324236339035119907697631369363246603447354671634445968674046711668399607317072088863844849089510103788510677883302015976923842668608545203664794959758663845180112681229591452222118413044438122735559735148655048048528632670636743687696519977589521044000269857966254507031789522692096265961636177672059329752632941044333419285416991499271876483349696532408331638771742438601052640661253988396849383727760123174678140598902897343389893020961281078349007128933669030771917063069521588954042725955873115743199147050602631717001011842122473293808669209370572327180319492824123112822338237492406143870553807595562445127628202224643130007376576867955678431069476649614728129479827146958949206825767059236622741053239319515822235120663499720076747124105614540708016487156516410215751894114487371220262884956474707977158091212464593608765300757848788764890971233452159680136075358865756794212215445945259267855662486213380407679620416085436849121431889966448490407595191127149848034267589130901412062259447137158887066230536286623812852836740896104744879505678942754629868483822189657336870498682397228089137299415554180536471758077743218519682678173847069809523577448084643996724430431745233357670252571619508114308267901267790520208120793069210170070591948594462750690748357499497346552331621925624808434850166263194687879408187521074916653114947958057245791310180759388631795137450519619404551472204218322624038787751009847889652798945408307541637414539913858161148568170081179348332814645334176527963245842366885792092956472153043936839925134060100095834438284615401069730763244420925200511611106942719998993050168446239543943067708299282344038353486699792341279222101930072444297898955643261278966512383391035639726467531350811973255952755954132358375057984048293275259464724322032933233705034703940062999471874049622986939343218655663749053557426970012011741109508037548793743483086536564703052971911481381595006378590157554172212327266388792934891375965305626753044570701805647704845277453978442137803621078264295298502913382295782480991461990988278518373167993366625726469652614010816719637146675383496837930011594238945502882792692633454753441584314769107381040619775170656705753585401534242081454075615045665809036510225828665827197194743142862882868257956155296981341098993237911553387040333587506271349860470524608488094617239788487291542231847525053663001939324772993732806746819550697698080065091996020938239468646753901178093111368072375898262930787853209026796117513948098394967595591155900308660639656756045139849843063061594832362905402335767032505798018590909172783388186346333788804604225570007381233357674263759639135601835585443068597481151004775749835095440837658925378690526957615932393393755324701764598146443591524057174906405088076832509199753922447353958182194917418982745950595778843304817881691266291927063550939742873380254358961798718212284083995856868789587682880866183100144720223015446334190349296311249269568170620563625836788989796986511629216221483745801778217985571115400906896364164121436303309328326168924631890316717747193818658111453748629761703823728724808447587616929747997373715231297544123200856362583991097824698421254460111125591203183091013315230569076461395332148939837604592654561164210087817482879233305605736264290892001038901152889047934846882822850410643613835983886612685900611606271413894739956544326322972392353877016626534687940717944610834795650206091437465134841072150853537317160403740721622906282644951623326038926314498527953014242769625730932909445685636846021339108060320889282458012143221705621918415725074541874476595597885173480904560285650370012552009373226168836535987293552052747274423899625458958446326056208800464749522559601673276210446376598274652371366561519202250946256271393876715813359657127798159674846659439917750913873814947716238182699293743609404076280513088947886450992418355338356024801553095812714069930663090866241530161866537273044028701720555581038513387467990712721482969420352217080801961357612216596806995324231974576027906008537966459228492849994228202617740309245323685231960802195465688561599360564692159038194614271973335989790911000817287828433807741777708434376027186682428711184852520655403843469449460995050199222505721768258382413410354960092685580838377578267127667510035590437050750822815341408266649399044396138486681490556445377221146651989995475983385327826208307958792497776649741456097095124823075011168430555168953972467213718159133634869748719893223731244645447188367460347464439512618180152387751626055664927358941111729859676541594936463947731091506454205931846132510251667273874112916956986612641262843877348579788482256844269300371833212081693591606366971499225450601953700167635201028701522659004060740290330396240266226895738881965370247318136812785599942549184385977687564690100028835203312337119563828355524390938527000335733807095278589816341245157527316345512897093330188105245899392101581671802305885697197038160756071430161486272756958134251296968431088414973130668726604741620654862887905381546894154745661028531866222596488472115553156647595278959798542625518171224001854803080702314814791553242296958798164955307035092100232530091644463227856241302492044898864809915610632011705732561670393627931419842134041781740273656606974992820945894793538660412863864261254497783539479998772536572495382998871306913509092625814123573541267920437727069231404270316116219649187632854806950085939466854191434849328268767122168849334761528643450645153816372704285618467391882609610577549864046865211304379863482434879507828889702554110884377018659910172684163545646823273812647177007465871381930180389100893220128821160782003157240406330564777271795829405207867061202427242766299235899823222630142434141990307737792081643054525111294411337647026234424196587162183490591214295360567401740085287392276317043324088749457596390297470906889035230623138085935014536157456090529398469578310997754988013110042649281900978484649205872845876366383787384378793069398727151756135982367859396979660579268298810298474245944338401761616794792567920333289012205723044201105083027434071156394346282647945417349373748464675413379495640486424549535026013655084037757675546502370119886730587673463562275510504636742882190410097328183260506302939058713381036186936308743766431646920455085051640623902068960604522679578113970365196274058938473767629075981429242725768060457985469473146933343276608687180391356592403153835905467650373108065872610133122853370865160763766913287768170109247441228341347806397775628446111811822352487131345294220010548049133349100942663945390571860167629210282283060724879546431192098307284154861355369194668502090624736400249041044788973542567966691391430529304507791604382483739699892770579026876532504338453254698383633042939721766978426550541139737836347569765219084419664472196457221645014223085372412297784403267132340672094597431817280611770181130410609914051849432164150081657711094458001401910551016211062116551361821805519061387619251995209815179552660779583155745450238195097454306112845760077698782485001235754306254123477765681431704526370823847326773646755752883669807639995125795023768757806954961018585109472158405391589072379739218501753518898148328048744566356718813850070645460549705527701016840371780276212598552870965756217164034000862687275137675965782663689734962324049521257068292505663376316335977816191174577277813304064095881137961681698735567213138787076073070841685026710120778396499569231250308647878001403619570070693400966814025732387454722437432701354400371096744153823879481820560448805644033636280029873200060309025834759181637878456055514499018543560827295119650465512792313961204617347253266647693540424983945199129337246381563302630929454801953324887911031533555587787319405827164269582934202106466231816410365348875211818959271224401169683229234358464600835812168397273668947879084409804293358786316255793066295023547710275428083797642066514895726662361705126927401273911639414134596461249886715826244085457953350323559076176209171362679316859794506862252324016967984211023218960285119109759928679088026451538276111928717811884193095324121471814616134913596583749717765354964073841791496099657610460774281285384773253334218367339001574109901441383610016782424145617893523825464676637332588984066865897689857012804019215315781966434973618035949809490866511405391370558973006613073512493754148508906348294064542043564006850706999000071398426743417368973100305779362032418380189306140176566890784036098346769642574227969210449684646730967185807412233580655303848874373136058825954872609202691115982783261705980357886719754786250173589406251526374470960621551794288754382500064001945963869387767269241749107859516930195758456886916247792315073810168848271499684726620635652822429980898694552567599924020438163866625283514962070860262984659585514211839398888057973877969548961765573404755725640608966803032943804481837558594181693030586943814474047748031566178901058465899461042389913786002875535347785912075949017418375589284020280024914087347170850783417763103922622054733947224673036119140678754111178827554818699113958801240966601481703192522403204825653771463395476349297630720519062852311344454392085597039344487180955281729120939376076726688919261921956691717994699264185686161720375530430733626674689281312719729751651060389424928772604253985045338873462341504426971780912038817796269036714054984201158202845283660903460156980050089261479511154973417354742745665412920822736441732349981540661052613543373442311078781972574899243957380347296833631865026083805528144793803431371753191204251229930782905976819704108915162815696762888830559560118775796629244168623878462336458135273928461387415170094386674208271072334416105574187160372242045773027453151138907920209824328056458287410242410287036676157408684688740213476281457026694661780956326036709650907715549901631342463875692949697932476551366612495519486592133064041325991419855748699500930300936830929424905647484163822326576015193083607122776860679234139310742209466753753665370115881570798570586944473980682383613088338351766924744734848249902610471351221369720201685366907267350262696872956566276046946269596543925291829415403853876329761883509745950471185353959970318737000598552727054955604568083982313291530528680769403275648300561011603222286919151556402358216219715070486267382362212554886584605029017943192752734112057698088472540481075896238551498356166499836118214087636399806532475891568663878225463978801739340033842923418171953391098712125276094072342820650118359385443179506834453463085593126929419514149631313572549944717355356638085547788135563906544437147728039157632236772122461771912422901223118079160267918519877343130820059187575854237488332274726280223664567712042462673265211457045899134318405153709615094880139709679684811739031075473059220498140580490320928294894100517260425039324973587658396412053542855239279605383174503783782030610808737873908104705575958355226879559405315353866422464670523158366277423471413233979549540366204404226515464919234361554740873861523910094179391899318192519602799813495619349487067580687789283017361939614207722344014789297023241549714197575552476398671593438620334267379728287096767290778723988478817694328222854497518237455072982899354861383531477194444643840905602509095588421839436390912791953052188137917635568143171268087152834885029947149058676438870187539690097928725513023483062096071891112212184723699549768025885053009837886308446045618432963237275043034850425329171417914386605441520664069448464877299733788345304835496890505511285435072398771271945258506618051519220187693585019669439095010060710797511915120719587824367800112185838291965014803374300630316017347504829909955882676211705014113687385433790011439930037583614501830758600135867701104998370480272431451520047446957318348121472189348030624027498697435823923068365584122556547130481241949847772230424346968263494563720595197104526104371619033697045394609925561311885509182754582736400222905027110701870611917600527234638292094928047635290771874565999158747335218469586049248787750781546373342028578962549398564306859185406611996299648928893035649412562585408493568259605245225451908865200503194640151929709588084345394601626399886114435175519083404518382490522802193097252497610805697510345776140403230890760896783809552652445326958339268346893613140049771716007500077205267271864789583926298242366710165766771892307423623119708398070303862985248357517114702114400589187903822315978931804785860525693995047504306365112635745795017518327552303483916750715716750694480085552233632798028853559151676737658288788593309741082719867574463756735045359111593841593354866484894474523183112857242303575763018883369963025132970667108202470605067476641262594342652453473275686724357258144326815032833315632457812439484256784579848339335252674057227203211562319929301913736275471446328996533914295659952210486109357931940788255554557123813459373720608687674715238296976241652871589017656720569857608151106039157281470849920445197541269135599274633688911513820432281925622574072437361773214691079767059818050446785325056214336925165476661920155207090641112790114831902332781522989850407223860917700549606522054543589541152702604911098341829202668144845582749173397107119655328532974354562568706114134439322987276929160892751406059772561508214517691761709769381358272699806597596486279255118280438085477082985843006791496117219229080160254889709539548432780681115163004192099856834842615611819119898311836009987032090273970642739833641268346919892916313713129404950547690561925941351642952804689136198053468253616363949724889082246308849308177435128052175195172993936364101423104868138356785238313796132450602004344684280144301149112213522942868979560881549539286013866620059832395624196520891546673261926057037554931479530764881909420711606250901721775418662231987235583966635707939528167553069466322239618181913442429428705533402437907415231569234774820119430243058570732485510796420090059484506488322610070943872881022981174602687878413012678488771845761326412717596831939086271173761173722925281200281554321360492894596364231844397504010693664655297090115635779004697644512124285825661696172987085558135801330978674936796690638731760897696057702642040679912723613540548736626596120708667158793539435137573061373347908818169370241427693020372846906355851056735545406329391853930821856436113519508690265121861127953712770485440132637603514740205089614850197915137110381007548396744378875626415332470027250176970240444691192350013757668083292056932788286776661920421262584753374053766224459740469919634983624177993980560035755890048766365163524923038358099949643835316574588133857307795234195711672529647714106170658431763769972922873555530133709017157985397688250035042819235350338760586446853361881325884269982593554001162465873386418746257167957601160751304895181068654850262631129296084881954391515388289710495550412809004011678939280995862873878599137821900588877834593178449392807720732538892253981158759719669026272466786449596785806272484578657508171290918309381433410857466706612805770000111565915675016699757100437389392549470705891316036334784369668745685187418500970691970628136147634795820839698518909526130399936960168121799642791096489933531640855371063637221528012742866234521905246887644752341381411024388570711617174434676406806229165518374564837688326799216620903057192270144220684397548035634944340471151458861138203029813248044543112224013846044453391214588402405628743619508824454209329871089304810877922977639226543009921047844255518376209420656339008654699009742445502149012214064492063433225856971026196302568192385653047866180268699669036667356413444354288132677290096568970374450956648288261086029787018191071016139272758588270144583153927101237390096473749223422410384305510470163308209017814520358906222330571378777541067278856255030920485116691026764416916897058311746700993656015528342835510115035560862480864247057674419844068689823136984820581788331480001498260377760331767641180682584496564558061533171620237718259833877860601451693268530252969665183852629425065484944851719308838711836288865404347621585991233851573898894003893733963762912706306324069798824251888987749842060042406661863337457913671963993333094249961960555216872600855402782750608535015304119792630587722856842861948009767918877526912914246970938434038525612160262486858213736783777513458357130953755592153771472827827634413078405072701152463037858940813410751094273847055397218202621422803157297730812780431663303546784560826315864916374355114817845714748261031686773414236315198996019237756866021590171278514108748933207542008292426576991880206918888240406362039642085824257587695549720315472134566487261379943206517114988033167884609644728554416207068517410945304527668859127529102313821476745382000008559842019238514495615160844351437888329938267416827561277852771958419689255780659973429259314620532242501792042990254319799898428172713214767307776115661322343620414292711383473032897550703578224954689220969341075250136261761099035484509751941214398020841855006625054617374407825984635221382450876960971342008848394912517587286214810148935464271874056746910227696279901235417756346454657473647785436751942870200674606451148382938689064035944810258859561821025778368906163130663166876763796822508608675144966184874818085957294869615706664241691003516311500530481922137725343915359809606889905198299568135087819711197718906455820777053245487425447185507716628602345391681626895919257845053098808831621519736979369219297270585459097698974700329186375343252471908732859161826937585009661529205527692498164494424369319437994028020184942174254666084950946590932193416874348136291408365724728761675261058531425360470756260299512701269588735225892701944711255314264712987120380151527256715503231803215950855410789108909054504666057920940107271837492001467371655911534724339578786016974301025408607705360878895969461372803893869359350551087417922210997972684935411606427893157003115597421327109660612330603736399361779623942726678032665797718229009730617005319560180433743541861775880436799634551720484598190287010465995189395611031300519747046834537185262676051199492140722694087564702630432617274109871482109794896076785212568067036874757704987623816985587507292105018888629570851133090741925509858411284137493295445513986052956224629838198635589414280177511242445337417299490187200602577382143265160615112955018052368199670342870324463985267539790545559798290604266280229361046004084487233764683499595618325614425297189744870862740166102766464999060891000294300529256369534827570085179890864294311360082692364027851478815190783621979213414387197756104846636492461690173120310826222677805105680251624288245262463402265555751788522281902256933257423368691851759117423319349269264066240857546032293862245107564433928632438403807588010857146794442334478776882258323840916820395599440850580820548142366742788324183263121714373761068329548261060587508092087291499296659656186588812959685006510659245681507958535599955064796526656434675247752411723447565678937290154651185609662682399102837618356935160282239965278834292897318366388234857380211323930187479899007374783540818544227228940860455361562829274526171639145662128365886265624346810243885592170298683131256098241666671178621387537816073256738359491213173729755290129330609580386080989291425544365004279391364935305873813110732457199153269366444500260254894601266957984819867973138247948713268736217707003152026198345803629395441404313627285563680951984516933744026093887937237746267635825839711229938248551471732492621593061001421596081112806062139326056458700264787055226735403999474340636319358580468499303822897324840259749594742540160202659525655051219343727347125842759627388625655718804384700866580830414630773859837114128044025392362594196686130822832904605008383690611458623088045455387791212420019666729941276264634111530646901203042300790479779798964168175652304714259080281952905243184809877167939131941816604164483453938797770447923512151279692349316915625391336638931572540546599312594636382882497739650911653303117347221976565610813622624697472722882005847688553135668646394822323015764582352635849158782920180534365445856522008334804671390166565630856481632122083908547447893432620980802537323984126777555377496318178256860623288358800025967584943875138706162766800226650080755986548304598911764487245709841877332378053084929323016838410947087844344339349857447709815905270740997614433808954444092879390521399749937960555649703044102645669696365054024743483921875608245917145823650179222050908891848120027546044718615054675450045054074457669375106554277479896109682316319842991565171445387592264904483537521248469245869646583937776609674077949611290434373224866685837412601406424026568496685141106513639044509819994150162115439928773807336644673593155298533544021747565892222813160637981599764557762880144476812712045540562764405274794100588353627296956290408174936401016395716501885440041149378698083594480715516105584192143546933080910652966343482098280956875183002747313880787768308474050195804965770980427854268835032045663262740765825176452326580058561729340620620505904450417041008649278204641672399644528778420269720942827245735357018953179308612784352005202650242047039689144662708066368944207442139742144619516348255895568072065163367791732516543446577813831822541163787752374662203413417102106079356107376321151865773513312671746825259688826272131290339548335533179502868379157009920580543950470652216099720219605815459303789964880753463223371466366397759738128892268975309450911290744323578378569371000277475768938036554184071444274060693702140738125623953926600418946100579499189924633569808115711466869738266952868945647277579332504132256798178776545877437850996135810389330341678247280904275856317877424590285756600733693810726473473143912881615275785616848784811513221709648957419828161335341579485031243204626270243542114841073114712541682798331100131564610325078628365116320336904941451449181696455564141071033907698046381036168327850787819536687697773172071027006182898656208324922574581641056709622602838794279222918690970016692924836997008592063183329150300648057435948835358773341299489670408212311902985923839703855699660592544349418314104626813867839559633681959902662928022891067482327964527587578980271091134407924843990904345764741323961948411351375623102059862590704114388688975674449632119985151177764361374740066205882200827664230394050837463688826500635299641106388839826069220926911488304081499141318101941945620266466452753592321217084900482767425418868891129184577893749275198881258444066244643533645771624656090444824145464808915988246476661346651144209924138897570402931169750667555742021135777363668105830399455822078849004172112640240258637260244763983185210587535295184194665636315307054982742425172074197397419302175253352072789637998293392734883725348155939666489262413978721380014191900473404927106951356238066677585418738310080773412941917943007606514213826131866303549154590391964902144244733734880112147470165044790658885871563588585062608060844902764893224259886148634970038681484246335530613804211714420623876091391862558737372921515937686591655836473171217860926715843644825914499735588684674239836448223143392596591526167219936683060047782491685835072771761340680978768923625901597784042616147457951792087331175896233759905896442651807094480562339933753512353615043680121817346621913265611301514185174964943490419495558834358059506907247874722026451333130876778886616601076095603201624612331071219533533768136099564949016039110946168720429187106871974963246855915917132885209500911549637222677202108458250509341910017782775744781475350729346673930966903025107024532300430483019147964109079608379792619529935324093903721036164794722973873887417628824368747280544169215610738203830847395783749890962032995394832288040413284630297701422480082471602440896875137031105505651054748716702260510661743384373088731496504961624553392206025646045279390331744790363840470836294928278903955642760228763776670500896112710357137448027516851646428392600705946003527212545496467775443153786112918053830156279910862196572542564863504424406377240861123063488221124451299575673011632615103968523022951709829787254627706701120523114568065343657603898889977750282415619044767540787282269770370184317798289359901769356086005993262005392955664678111952797695448724687867678518908120712323104285272304915995584795311016087443699552096949234457812412221608925771426215230854527654254398930159284517977557585031383256232772203774587853955120403082487606203014301040964290140664738521622591843442392250325933047074356838415515076670659974695682872078643144144774881070609620541562992785748531089541200198926264960340184609276879269962580741016258908520391135714010833431355800880800951364957910027399606703407841065131858861173714016633927359222030616018059858771939045085158020846587756062064985557777851728945587395223117964279378128659162021589567870584763186180557045445195010395886285826802151156684149887233992984919039381302931055117301066701292085900020062138424036031904909038360644752835527867602980382623949281107328542161069756692202990054541968080506937655373521661515215571724721273259522729854819724686358221408168816309782770481833815315434342101589563418174992582851274811320211611903505081091601363957621442589307549672962719597755111343923404837936223773712580276096101905757215613244197150515663088205812583839663795088217657115190747782011218123843731767831254899055734609898903006815594599625803550719315263105938838464222849832357913222362289686697041870921107096334346940357411769838193526882501424767738203516284505979708824694714378136334430849604702815988105904188017768814339158242004273582478408822371267374067305144832227596102064716179028680669894378374772474043751234864209594827921713337056130249176235003154197831614140340858508133194168018249129968845146150483561697557848677654754700879364928524650358574709273603427749496852346171951540595165876238628753664134131040113773399908182648213281005346501280123089399944946667041923260661498081590241192215779699552537963178380138845374608443141833838307185187824516225333217927612048647471100009648439214991325460944713998666676787614178327836672648238897613013433651681500657969063335111282982558060087001151242292304521802466050878014730871443885008211780369213520911849256138048204958600090247566013830925598526015271777302993196474512062896600019806168851314453748889986983445329162150241991664108776998404088439224863357746083924574652219839958168886129086836394767933098824008533884170217050578030965262689798334588479042870705938309396220609611076353334957276720041117285737972056497079352135957920878043418048471749030674607326792426198862771729242785797946873397545558279143617721316625834009105905859707532794050810676642221278502877556437566841879785035787332437585087121327510207882014558471537126952611660235996498543408469142611117413521028529896409974213568921880674621155534463273334630214219599834444921045174825481074153364824822629373993858886762217443643946674390122652313684285396683067150566714651437521163363088726589193752662263694438449612097998761587290984257168268593393329836498635777760780007275430768267277113417766028663728803973631472111836159610798005900082815006110658515298737157532270651469677030985544352518079852841353869758227810468155777562922204653420630362364507281163449265613535628031648365840492766726958960809707496326760911161747178492521122523074742114570726135835954216784962435342532998542711177703867459517857612840005905846581998777661474767972930181427608642175318653492999346657108298295782053822604528124742595516069726370304587812594507508577104926683033489302495095580205280581747723348427367519278090911387868727523297219974161842366037209328743789338049310394788048376003308926113898162804724386124548978628819123060262647044902526083057837953143607750971343816864937889890473983248717986077083259150925288130594299771346826127784173491490771097989894695432149286590505068050851839174494440464698883895817560832676242875703000397816073862207579358129402338794056812593862990230296271032522983799534702590551611373822793204263046826535832324752460807704214150275426738339025745983229980351189861931040866147051566441773677863070273261349905010970941932681449117681095733754422454755725736183533385837863177928974740254444931968846544357772889772628240654217112033612259844321170500854266277387988588147652009010497641101118924780398144496578925072861885540092351176877574402287130762898196350277570208430269717739960246023286696589423021005583102911746474308276840796852732041181239548889514706343738016391973130103873075027416297781009381510690602291614361144286668861388176841364823638132572668983891902270328930993420150502166071196582186489588852251360247410715721472659521453663105877209887516534870821623864758839955187725942281756520571893520121264290575723672165354208254803723748841589463428180461495557373175110631789150389803876830614000704807724150492183076376295810935099351860377949106010718846464472465648199069915600164283916875519857977773041273932681274126291401946045911692282267486577340289900635863866703602380631894362058793230186450045450586731150538703920828976424502700111332277073854058500414526900156929809726924066416180198675324321531830075610075229717115157715120672190287402649331386477726690462268020286376356284723963468838419601404467305626272646063521570913657574985779701853894673405462617109402912927634194659863598140763068551852527694561464747729829065342508976631302005416375718347407433686171444312682918286571966656648160861865958020905748582652864730849957898218679946935909825231585456859650256627992622531913843300964077062285648567837523732563401190103569530495049490841131479212154651902873198618838799598650302139283880256337025322940848344605059194674251492571465250985884231736918346445632025850461864067462210306280133430370773986802109384523994452466046297376297957341552601616511671769008623132860435178058909761676575241163279450027444998259666039122194374013550476846042473474479737952798894335524787566257869345293656400557499098117533221346571866029904296121437298960187359322603430848672964645841858939527617861630200184214006968573658912645449666181488772654017577051300093141313418831017293559124304472243204807430343151660600541385361100974919250797884280890331449498849243713368841995535604305629665391847920194162203325412057534702425034107192860164307935907401010266662957284629527175251207180607564837169204571124827253940336110634832582221696838517599806367614236739579928347865777453081290214620539655046945006417588473073651651104689510343050586085480381727450059847044613009567910604910324708907040625714193170610281436387468204684951598417714069895816987097586498130196959997086103791062339494347571401902937258054062152843160264660679013857588393982080965528205250330244825522755749720185401628026395609740360120003055832304307678894159437230146977507294258675774548751798096618459173672274008120425309318800318574801308497352305484596858715408377896288220578316816547661951549160611296765091898261283512845602787941013752222468079850115537578491883702097660991206453662780337674439525865710678143891189985927473347255012199826700113653714725391017569315947305781718782023364235105079549202775595505705920577316710216286653442695093084560317495467222000933147232187809865073847787072784669891668312230277112317233034490500034867341841014758745198387723170145008014301875218813084372906619098395291833262996938779510504073722904076981695240835840698183041302587602915800874029617087502481921169525910381911843510344989158162800190496187599455570820172189215636962205220325569841802521624609960514580866223446015902159657955757597070184596789415628192024919658640246488322608551940649776003553910325863790961623330491760455138525540029212491097186550613030272638968626258502385074114722832090666411379476853705760719282375153756693548041770509212339494356097962694502659117890120525141189821686263293536183733776510109342488072235169897062915204578446739930523939310736126839637580374593156549944299900116920809900840309836062461380339272420516065736342344062425354915177171044083877718972041913793130752204073615428865180167341291216474103814411480676142448269842814889545070281105375636803098247300085958757910691218910597508127636033822597981321491052842350171905429728858755832181400322921400424610417156516923178755243369554008676107016398106543913087148796861279425460489880440694359456316048183738136089782043226650700392300282919066077184911511184950254178581514843371776906349868673349386342667242621766731158651712040230514105787830364203817456195896846625289266149239053053526991571573120838276109150706918794092957388240642199213039316568600872717877432770451336635074344007166847565910683064684174389874459565825604171393895177607964353500272101303153550147696924805850062875980009734646359447903342663154182616603950154990043321713176960823452931774899490904857841161771977344784258487043269339770590131226552954619679437617113704715616193731107915722505812800177466067950801340937368088058282002123785583834627726559896702882025721027980580173041359221237955079494687223665384882229795008475412413733602133780025674305390164116191990225674214262842096372955873046189021739896928569164871556182014029763787831000255954267833981838220382500559937710383276956276325391255532607742841889596747888944898817240227978457766797937484729388960770704003790242790894495409721027648786658216522772618829347347008793552231498754206755406954579329439782414419462836796094921884167037159914763765206888322800200430570477249599062016338480405807500266513914997126870945979322624087047553809068975257613458647480845328829815520768616935525634253995785302910926567078378532845804614506197700666394421300210058268184489025971970603431669357095801341813211222233315034784493581300169603961111742262005568588920709883369977983227133507740721456915629928012776257201947750923178251973372264325545099141115110731005641909164877974747728929048801214252245917108247114569014176750922922001507790820242227579533717629881195674604477464372541705762515512664323808453243189005546841714200834587225828975641560139410885426272055308799022023490450999175630847639277366342867584494790862313017112348627624172395982345545977793891041752052592057061201181226811772286973578313501508318434631536857187203376870081500001544555443422547259913433866007018269703267347039643042958606865836214456735123439396230107718974349180308726581160347296958105338835343234286579869470933456106270741728937824625304640930529433161414782848315182751585358108203469573922708703377346380744967511540392004196157612799022697601632555112553856849213920773280887960792994601817721541878520375647225311138273888184955544022119437972363787199546806159395820639432304928443556416231313777742396938863034632452556188181566151583223173598119346945993262398870942482645875954175779410444182691854381813729730170630422464098577210018739656424097783111376380762904133097635843223661607335283900936257271928606703083625749866441536440143627913636795602463109882604349936806268677362862282163648708044585368334158313355714115113851540536327707947892330643605137724907902733047952637664460706642931874530759870842582642538934422075903295735904079145320296880471007964078494956167581700383917702435356815934483651532876914053993739351326027624067863307438082050693973445154973063861553829877442773282192218255080621745783772221856559804495281017723911354605691425863073579941000710503036429047543718998739208469477753716871033808589267860382943776593745521480069899565310324242030145759667025962668347894308696964901001533951273424526794909865251092188597665973183832982668982928513659984554197684913641299069605483169924155770300740959132162836220947187499173518215975573264579030997849277053359330290918734007609782556579151058110696850795290612236125173035770894727671579182905547148319085739306209227802622900366763459030981175777955195179010302378642051322024019416894954415637168432019946178071354725816597033542041610173028431341287399645811692708524757046908360955917608284715237817035520530039203386847691325819551592979665027162428901378554717469205659719445755153620973163110353029367904814002144385458408380866409514484602820980054975032633355222078020462211249818338773795922272423784858391102087129760345161755247281745590668507915753625687813272993775963647332921724566825799552563427095233035858700266574808092065392819978743512226768257267642971687503775374160208548175807125937544696596112494608137234331945167693885022194888327481149749862289250896379032797279559314244867785964828690305305826685544469270129270244260345332126784438520294624678846597711874753706228226784451782068737662957326456274422235563139562907627903220561009926106208952866345841730030876660415064520371122616215373000683682044292917927612773219268251197924760259296751470263780959460672098574650442975891597337883507711018962311536353863443476013099015247232562529233297739489509230878495691892734479980592873783768768499096677082258803521659656197664250179930791355894871585620451656194902965656480420779642768273625421671303094425977894712651614326119499342763835026148186710313098149201498815044401741722907048135928243806401553435410307125432467873480474124896062053660261028840773253337051088440565932884901774641752060505861090059529653204395068068901299366573571892462238834425084516767459746013026000307093006998130678613250729915351443555011633862985148284908115058452037167487487388450484541505551368502821521087869185226967418154162418108105729263521062060412509328105427319657566376967497948408923617441307163734946525257881035440010813271920617021083404009145933878978769214610089621076012563245954596991284725909553326145082827968601867083778193317066753734466715586495273551780175954056305248704373789711676298229483159111967140090752378908148287700251906912346138979050904114597186651307223555415554425142157294067160102097876224365038220982807860185252630595350636108126255075392173527052128802004417963144567383947420571241821687934527613422975139775886895055946548328232569432712217772377537363819437740112643706165472183062078358495101563671273542323783798023282561186507264915468945752954627731805717193429279892684037174348919041951382060152334078893172985850244153221303825273913991030928054540271021969901508313802064654851119045215224488208015346226769029784546996607093851224211371999385452462179829484388763088711881659833705790304404946686089352955619575598543530282203053634598969270726251387026083395038452529130888299645707455146486530110436513441901521275467388222877079666810639580214972057375710807967988820158618732447019320017639916332596275175187704245453620503258362584592789469575171321444885661884477215086584018225382949587753644032114409077331484899439537359281164146953518534953482212772847335382707007250134276264944135430554265360847739223181888686363455291360251369695637924690196113052690280423065126923636823739668798975223989856082657322780419463516040559895129043229750240534740251526011423481331360753520196884861497655367086194965918354177772616542232979467144383284076265156390385045468138193888558678851378956715191503519380692063613966040757017333762996942905734948364543799242489276134716030952884305675919650730616657179710844640006898024350491056560606447214956513534829937457422178313867134363589757353874656623254417851204707679381246013160240114684911933520490616884604619854266943784043713632132159058895564737745967491642120081162438771903572954266648670796068837371025104955022705826110414871165702292622805296733105613986051513439098102582937280358494913648983830629992088436396181992315512877827153170452576302516593187608192477065594030287820935481187301365144230083473732845261264994895029379103292646267929177177771558822714564508892456304609510348449098222659412170079660366549142388784935693062093682747404938093598226617829928577888413001609570645022331355478089250948979045820029253426820524230246164329337464671929683379438282428728332947045008660382900347367411069532776250735678975859310947915986706562158274693147392129239639481855201675128350720517858755942129344269403100798076076059556109199517864232638071633518560138190317130986658338418686843073816374092327342202444990487121265121306264387224381647696942924566371373945633254183055015234034897297012707463177931074452341841742424608065784604518342045359346027988471281122317280510090800065911052465556308150675071054553242736389177147019524764366783526472190478800549704131313962505873386539211158338910584489159277422223909610553182120224710501483770257798532934584109830737960172298311933001973936219465907444403970428919851708721485208465151973832024522845118837189767234978983523306339726216667752734450543676808180593868283015651176199713667665853336844899570413355113962215491498377119527133653975896154546669082976735747805897700288938956225523695196580149724317811331448435706234580729200233646823811738640382027903741539512618612783020220948699758043834280659990714869959332140329686132775591346731971215499019946401314335257356088548439598608542367509310187063888597831469839729930255806692952620189999807368573470646900195658782816924565714405538656078125883498743721610134427728068545105612154914546170288829417408825817984186729152285695594898299696881735729981562533886306611869598530701346613170667007927433244985701756788957332084974290562867134175005765734962707458058207415286661581045716233270929228412457486478791743360210208495970813809888372552607431541160432750022182497438403487007492142728751100264676777927419921720128952195371499870460013545059877076308592379893145882691520673434383364914502471757628606063344245177944110820991190327557801553787192717306764441886010378500059874156375474164075241291804161270060252665925456507622996393220200201535917360387305908692711570905546880649922375851625333983663063154608827437617926086868809806644482537243207964037695527026964257810922535812026895988886004063788645923578203302343388859494414050488513747541243141912695014914400860712154341077904342564457888012397925890359555520185021196177771301857096692273189822599615272857764099520647469650367815065693757844933699889040584298892743193030480530826766102728672537754909854031853775486883207507667713689697175425418278741425517238250793646013971306229902634997516349251148697100886649805187742854731154536040872107930678849145907743425408478993834161853735565589960391183628357774555368328157550316344822482126257824054289214435076417596771592170662670297661740450653979042715186460691292042964907181294329667472067189538475712430727203107540462027760150806964271801094308108936082668346753628226438095420164230342426557986372104535709878094148471494811351805659834368858768353876269487271402606216801951451102338291945807472799495522925316215754759225774503838130179894669356184648212785537881227820781867479368519043349574020726403487415155394947275305720363981320775366068058911445444271525676045922134726496663567566825085267441821648521500745526003820368079467956120947461911120204877649420376179999257656756504514142575439518958284466083343164955411148214944528515226396208408707145336173599505097596701142859982867384250719155731630245107389982070414023402776722482961549162437820763835585593497348234193890837663164061396245313603083254136123668547621294833851982255305684540967818599602234296858711304944537816947494028129415325656264456525863460912733216474131234810452414373843618978053820559897556487823749752639276218511841625978463964155225344469539110400560899814739185968319810727220482951013887791445801413114488268284518570062060801188642324017414143313450200165787414454918918176779672100380089829367316242106449474296696094317997519867756747025755262389921784324102508344870997091185224676586007213260201882808588732109333180165625577660941775188363106062310198065565671122811659976493537914830137533664474226126766043614739130793417623556097131582065455627025873030660717446706639868543995786925162110990707345909421864988773943675098187841484485195210410776764076410544646481666027716051778113904702511917138934116609573478443319749374276636726628412846117766359272137059651787866641296712210767198840132518172702120891560663589746263250492528314138770799703469922828721482475653800178750878169273556615751296814864581780225684055060084318522552232477126128209831106521640802907508281674301066368304918615315740067864422997061979038019804566128206444096571356254877284471255424577273979294040349014520644311877217666800682285146079514223367858181964427947711081013564408007590167106886726429839676266756247207914865495520659072423920319674628143128672525964426447270963122966840858749173560214880288409505066153049467015973821925775580739054135371589035396330350646335846728506119199170773842141256119717793095083466461298770398632402810083868048949382178549562638924992854154663143729550416147575886682871895929615183860607089175127462862519066480466807569618555912352978539194723415456989029163379431059239742880515961179249078403458336295896652678084911615780168851233215452857554869704028543071784791517751233552524165516314433688498934956153276032616734592077301488978914761204238909037786437821624829614526258098028309511670620061151643885323908754650997876968714517982674049809216880898684540580146813780623476353512678264605813265690208374277305616724464620847179380201446163757164521918758656859047567996118408632664904870440139295204793062969750728242355352180423782962426597295897302775468507425860885665013659946786994301742104765519998879678189743341918905063023516773073446599081454775186860754013783377997668573331357698254587286431865322540722185547453341166939829864494449393719251568246235841634911747941609220128449904196461218154194552827812200639900378536692024296515825987916076018615453979846469864530806204089494215490936205548801133965876944877140534622534126111634702704092215885717500797540067686144392882375979793253412454666389156905579294082976126530958863214580664163575215530987251370208407937206409739459171991475168563252449023656606270439812280338477092419502700063413333698311727444975507432697828428171832391736030845228246485927404844425481103913658265468065470171074073596986246607193369436690038201020712909927911363966874671354444889926055316757477920295263529168630061038808994285935063496768293653836652898551506041165333075748405051869775017808165013649105881853522761105658010637656339250719007393377159903485964221066106878760368151832871911793862791591597207276820282293912147479206613814864309962116924728214473024794608025672696732881902825077925508720792745976770179493832053457907816279038869741622188539278778473829356321343916993684628813242222303290124681167018674533507458594147565431634098257519456111440329147502484236646592570399048364536084116269547849815119247756739692359558005538315924865447860830328188808349117004161628548881880665591205731495033969632974905561952190425739211506762768412849746056467225104152720287912498917099413288573249451517994170023779083069531853157091918799721102750970207189553243189639739481371302175108856521018456679704882020700863245633519155804557465338570139435370775350443732134936575616434239121504931464808365735080966547463879372972874433381632864296354877354166592232722026714966619511201285417003404076356120860199672901952603113155863827407161900798142667287099808977317896534299902429821270182004012927220888143822810225147509561635034260537472839819134236717582316372871809487601766727830041605958181850351855590317141494252478202916582864328915698194590494547579241342262649460212730920958373829348385407964639815110376373184168786240625784583407072369136082142176690758483987336722597414629840435933117481732543458146244827179057282531410132442483979400621276066514074162160342192155915326333648195482032646025312064517139083669512424384628906673270849177512697444563959944819912569736415843260893739929048396036233962918352167478185283051042800961718823809252457880596566571427624454035815848973836311874098492301648567348583270534614395515700824222472311136312147141945036939899137102189884656822728920635857184900645871322242864038916446379862619892330488358323623651085020194558871301240051049838063845115480798046511150360794561509354054700821631171826125597763223901318134666804980677664847202752175482461830396381549160076130723811755086789339702144404619061415899668710023342209976020297887715447309651706892718416766475877592414203454697387709669636209021385275710933218191203608170444875474456035087332171095277416093823338825191867520184652541927322564694966319328646652176114164585209647654678279422975999264170685018579230728057370836634217303103133373807185097478051432641872702985260296251156004492031484218912341302086148494159562825966379427346528081071452267569071925168612522191060387793329832516208715725194687912773549823011225312568750040473863996970091482531357639345302252269613153025214699634982038060606239440061713621739563624911638271580413932528140077191515830651288844428630581587262954909923027868015834077801502760588649480665809606700690195451734173284837326797872360853826342932736460681365979596848724131832907290674149924652299460373448875640767963334674523967047191418802433750557309791343513647758667072933811967241427725636623401675743319857688180513084757499983178528757296890303140329564617235746397905944792683999511612986292652900232368022356880885673941289334285900998065312400141854823663985828698601064165990845801830861439194606594578917218629944608791591715434592695096502515913350714845215239347197788109371152980490171610811843958110576800377238749234701463507783262323804852736467229740814379051861804086263281363772592621177562258112027475952288109688762327584165603811713129840923632576905130265321793994618782361258349768501971834418317866389684877464315111903220442012531432603248308784992802955913961631077751414621544394632310050231706881454870802012502998954363758415131020306941311073064681807880202743429036689953226718476673031182635666557359992936678317943881579133165552789521941318084387761910752839472930517675944119085814929473060923247438977190670750437249453785905693854681709734095901215292122493664409829630113550933552772420051395075309271264619929840172113889099313194979100492610184078987651193545713043369851326760588321466036528250472130930477154490059398753803629259103245395327339110266396160305310165884548785669011388234152595670404171073932151218862605840328387379822257972099836621075625920585961058978734780601997300385415802359575473717568502933246354126398494919251454257128866738546936832715758626439824357022250125781791709957813460065633462446618305733821206507635609729616054285887797967767433013162285781927444964188584030104483528479370135670387183405119561254927183103264655551479176303713434552521262831595421930741083256835710597678720972679036743855862478968819906116243298232603745445537257021450778367398806500833292508693105427644432406791710832013550493150081992583708549986740205349199950259917380613297230549244648922945888494644063711897311617383007688897143636448383887765623947374311375864217135458087130945585580274540513856793396042740987983138637863824394605166446990502673360214165795118378039831817514102204091150627725230949204397549750766156937431994424187398115329522960031460140235114851895900521013353811823316791661529277117068527601649788417466812294817986846592803987288032982518766984868057916496209980285062302986736797224246459604508003475983434094730017224487307358084138925761291002041906642113828465331108139512154281143483900270908113495481128674015307968578311431034398289407185449764481153310982163936450752366479551716906036183426620295708371842266290393808143211337257619434172669029032592264404125132741529729895971607272903067647134436189403766213363481274437997881505581658870884599973777946617763724002519750916086825501544815389152034483635451715124919271855234788171297098994998355397453433001130397985715054233779143084479311270741193492260508992166161777405946981772251563408152427335414298824661759828473540063464492858587597460443015595111353911915728501781420838142287751728059489456075391584790001993785223137544586450822912713332417857652879033665210745187222010536851699179456501980985964036076759366082947359649988595462362266380907882453178585752774743458642744161937285610525805643965988082383492199388205084328168898259239763901255733773426960276921322699550723329202236306543655919501854925968490467241590511766657709633316204856018980513522403637844956807368058145519825028347739079470421534302201962265474863049401315233332546057785002899467387351123788495062517247236252117129597608364884687802511064149486886820921981242666692546484378295729337563617013726663167434100412625633845333735816616210409037192051908738566665499046077737782786718598126004155902185924696778220939222871163990352882520137285531652803125596996207486686268371886446642796803906752507876169096035030794063838294528764350497586649407168913118378940038341798563790287450527209346279010549564533424856022589411425111677747295157387863694537729498741022201419830988752074258767449658908758664258281872837396010147071755410245411475444894507094903494872945254485963967795331107846978470766216617275960368617286933535408244661486826753157408042726125481776680253075026911257950770691265726602432003077741107921658054942960238578289398905823575677895023493660294752996838011464053964448151091531400188208667427742821922126143049389967782869881238113455323516410878620109598605792304509398904504586921711793693555565449440513722990956300342873790167878764027124577377917312332766768804602039406815408922733481875539738867885762902510210843195797956300276943133697603894020258116907939077014814073923767887577472408569059088712548806428601546107520668803485295751031693478926370282422966846139040919163555063682494537065454067803317991352078227727722616362417239167048000165647613950113110665911319569064671903139885748776309549211282982754036739158127934584258115730017740715858222623908881293738676836980605334832107514426389898005575711325597453451512715285753900081600731249349892732069879462964000214297912496395888326189929510967571229109598406759270517398133978110517284286132877497838317093218477393339430517304861809726801379646894501530611986641462361198789777900887187614408091190429008655462524126447381966975120279048230965495364072270346261495487057013193933870774132116666766374138921735633668681562356510430635319381445996098609753292411267575950903421889260067057976784006457477549014563389000569762962618277021979181187849366479264426441281516055131974580953396358684562321664302510665258570156000400600197391001838550890315159419260576439594776398646962859504670364468885242174400798169087453082447903945128428243661712344881253377109441633089382679962798101586015103117311565112630759980443033531719536729487242547139356658245127415867755059618465936369814631381761400576782686264955080645438152572748292457535670775646179398841392627099824354539073713576982095446907053537892487333961498954434491260922672498613427825073638577965927163871571107518689429496818673130476301040387158035081857756044179126470464746283582856945348167051152841642091565209679225681177467144996152134909790988402255509041469098905329757521947241056382255202691861509668414048398477708073636171143528051408533226770172968747530405305024390045216977932738085582106818724544103607741173900671010096228112308762813231220565363205452403446243745424955281673823007606050805361913996846321452664098772962341729595157784750555772212037332145405110586853823823146960698886400620564785114585666219296659114557133742931825449060758153909610166640062653681407784111618700187092372252642548111352433253503966802991207652964637882035520453030794424980941311018591869243494853236599591470040151711983915464186815800113840246442335366063281862995006744629722934345928558964938334927679150846604492889005001093371400721354297531517639363891959667112743799021907947831976630625715627791081633464219994966727002086003642459751333375225685299571312818463160429196975268448671158836729164287791884591081857497707732988642017899528434690365103007304557569472973822875512447730153176001059905718022987053918431989844876287592218716768720549300702158313338179024631364212824276248346066075520671239560792524569177789070338540410750971650149360954329308207521053157133096263442106156496556278477587798601208564884529519164894139153731825000509777105073075034135219900393008747143960401122259165677885929192584642085040430801576852812841981432671885208904211942816519735755492133822182985704853601900499235738788636405239685156543948285444153178877504612928920508716942458484839407398630035768146927387913520678280386397228272856916631195433967179279433408763082018587469377807852010240946172547205890265890293068836309645859663164885939084291233627359018526823988139510243136046739563082243684999431168046426196460072823480164923911374556777125214843315971357112094689015247894402215809368070319137657893822032101923356645823540653701275822694986446915071676205035467210512626155245470838485011210005547928274324029297113230267249741844166215592818112691886702520582091400905908780775249889670413725928415079744829393229911027814720966141042956242165702118842078357578351752925183769757150499344761065113527228682256542002649603778148490477037031271719703668416508006893347221061748568860969614926198020305653140920819259679914355320054003956495139919448262089900166757224632809627488406144062805138259505858977523856885708718977549856399316282758772278452228688799590708857245456575445108274763540124722841756153013995843283692231270822349279846093254196641484032354037299733261175372900450855353275704114494010187914949671738219320934823967580959458483107630621865636632089733412663865950865037406934588383745895085410396643200876064330587448873902315012316390757468199619052862684513007574652285357687784195418908900632580514928579403222853844648532056638341190011906164327075057027070300830916240680587683432923372142085414970371121379736138008276103822401965302755490441774366788217917981968902589866464623288255495738270111660157670554771306486769385175443951785301789875479144096040242186614320987964666248808097864893418425386654694349111553352414425673284120314361433006681264372227857424586104922366952103187432252388789223727898576327795279729436037948194604893010295407887890658715789369302088017782858405222205383716517770997396665029446355259819817220381039872253206844655112389719580187034461295078084040611857957462741145233080983663014928110381437522595006478536215491164692094403675242420222718918408223432727081458520553454562943549803405319749614097645301976765848806540613475047312637801554664957832263847676481555105936546355936985003538592168063937889112774900216198244096593837542127191595939642839753817285142418276072931438063912714081907489010912939254248004776385081439643763791682719644331642692171269675233559190519557994712226589785505202247850304391758604793966487279271222068954794020083604956152413688785514202313173875351868920840100672838002764461912257957809601250325440246584766246648803145470693289149432783765040921353414601162135548640388885799304387427020823459570692950044490238221698101900376584108894532997034048517716656106739748140332568405144336924786835820742606429455809983255108014933935328027059431508241542047282562921874439367378148758067492650901447862904823474076803697380692044364018384280935119397106692465223789562987764742995908398672394962735157101162548417515604124648164436092642996754638141989571645267922127708474210606573874475374450886583794054741108190619058550224895801844869704604881754311638030540283101856389413780802177442198568154942688813870308550018915437139845078959634532933748458600804448970542151292986047289624678885628977272083153852328560958063905163895559236692931640934679699732912785926182967045060628339707696747955769588605177347259132787075839985813647506997907789419591533136591043216035961073383685988700956712334069637506865363475238603892858767376110244792998802070222274423869125310132545002033835825081421359102364907570377455286338006172965029316606981260811432676253025887596265009018488630923627667085028920138563668607420173089694122822257867957032592106684995617620299943488924667196062723813718651921842768090074019552811377570140083325134827548487719856999785927224443026410171827484803733490717524645496683200083110153352354846403557065114229544580524706233849695688166477264423459323822894382153246526868182418451049661491156440872062174510513121938011427959539878070751810391499569619877408743915888449330271209251854189260348004208716773909574069145215702735473932051435196466287841997635137109929064537066252217037062105634515049074569747339250250030133932997785655161937834671285380089328525987859544301725257191735260623517115285166516633290374540759158976191222180695415406076605575996801909217745787936102189627926620637016169319557648902816528652854064507119437194389750842414224879849638244151862214847679613088347198779192945191040297077215736996491615577214349478255318709070265411683420762749812447818991155790341730464984326892362660485276793004187273079338372108104450937410592868179677851948200132432062729317673952735148869402161987363230605601926805451366823530063064874779170780769045218725329600767706484579283410737380035904874328116800396484270165602769361480663069104882130687347995156506239103708595920168441287338131560870261887807137386578300879568143940216293517859796368920878292529025464615175147070558107560006491119127798459181707244808301253833447693629151847946114682659721778947564152863621391571853556561338494424339771036758752056249274892690882994318313987378065840554456196252214275671296051320254671827331622712060924516380513436774716279280381788028781632198703450372692896225057180995152070936134207136527314640200689066984261353118330178703144477575032858595001807401372562759035951352801889847606840169077930483514553515022516103514143415516393169898362284999227157320962098629708668538160064266717136603082863018260526275972944618790188893415141744773485253126582778374045200399736250797738464492306445354125407046505509613805927579634507017561735837623619334331907572175229153693266719902688378281602662447456143153417116116642814541630023275502139198949426334881223245621851857284082674552459779143031624411657806964271695552782364393307404989383889241359359897791369445978913955113983878824670029722623257511374980142557382811325824641829432482280198698102489116927253239444441579306199515474617230532596133165961925035633675259187733744159881725650431839956302904431842134062261068599761453946708540933044115136917046020898369768305146870735586235589544717081179391868369019024197234841469063816802762389472970618493866887246043302762029338825549745208104627414589329391421437801674996858194466044849211141337083485628317343030557893252439694886716625239019205656076784248131319683533161133975566285614044086443713924626070492181461748481065852120299043229231406880229942948396902337260541544455062113487931741188919655335584610628230222877090705414812698131338383068565145312493973180766887443374084613365838697330060957816442635539751621069834126646121096716280183714008369939680886957717781443676896767956689340631570997852214180958990314063073664763262552588761651470694717447227514817548095063612097040890172355211905160003041638360605407247975841349722315671869822226355390650899010804875303739571127245940225420133578827276832205914293557093740947699904956827500471693984792790631075334456261108624701957711697191751389221357633819619494991599718581850276140056177300475564500986327643782560264224751714908439600015146309627309390171662843829169264167326109235729347130510327862746200809563131739078461720577502675634763443937548959377026085127774485860913808997563052953086001237131626220103380454101203316628769689059500495745788451012123715596790896550077751124340553033120562618720590667064573484869804239435853076052414235936160690901011394774583780300717390094460623392413272297318132932602907174206541479403572473235664012291504748566044446528325552172056678905638023005875327157292852535180438985163881280403788433067411903052504898981288704828342212076710777967879246097916410621948051966088650969638965298692444352440119283832112118445904921673736631571488015562691911873847638033807166460319888788796563875546432302786353193395977005804990538568494592366271330273805021324147806267618333339649752125203824314576205544662069973045745116584469946146897189000979899936936557687413457790233752998912759158582444322893400753519211402871150389628894611436497616878356213749125800917262707503385990203391117906026361028599056260505834679672005993509152913775007582427827288607320461212453659991237838235598649438918355537331852580139107442492556247628544345529783209991686591671528530574817078001732691142259394037599573947041744246667451761517050683212396475243008012977424406922030374765507149427053492092203843204914659975575375669975286807498492416077402937107374015007168612338379879378562698816367132555978879100579392149013269253406525821449545133646264154289230181975527848559049010575383934351764308606641436378788179558441224350134233424062185452023194877666373174836383608381143172734719956706660253412649962122249184784601494860754583910243941569592877890531589677022658533227954833809697853022696494975489203754629591583272619659719559357297048193789305535342654147850965750681946595483255729171041319534039863055987442945499626833697793106980241608114210575227976799565278776685336071768243503518536987884593415364946231714035685512831660372306230728972503583775452151094387135694668901244416655748650257711720643975001497629081521058239313244794686325487751581041052230541265568026325807695274619072505515213795952761464094721612492829134864571343753416203045310654134190054024865572702810714817009336606203926369041195135788957017799404984381960971652644763273004153629136926708154864074020038246319840273237569637367797313150565541632993581531834151649936190542663453032591503840378764384867816140935459431707115838864114824834461969266749785305664595734423635589570767826974165457201137791072182373070075028421806361983191157699834485377852236016612461278503268930497264537324577383835200223802057755482029844382034180573837012160778647960644093410990705086405356537759507698644380330310534525779439931322322994235192243468009180151831278623404535626487881867945422254908163177737755314470420328302802680138124850419253772463343505209271180944349956504079524671918472051298496055664830165143383230851296876679438964107679467081147898762504523094394040010600668003217538526418824063930087720704217607228132249665094478241841571647825255038797329814638022027105505181559466642400009372524426403080670845249846088883963285221346768882008633920716049286283433906711625681286454452770953259598606127573635984305534321555144542692359248119206571279693666504433768315943927029183739938907218784845459437156906981479225377523919333686433670669049021292135270946722497412924051918993680996233364972991457281701384215372048691582116272007239712018680552623158032963179235170929033978356160593323174309109882465838238650321572305831899929126625113959139941889785160889023232482773546458061730023706666189722872617146849870397147843620279722558931720100089095842587802972158993210336733532733797209093321052443412486784802379440177506723318611411689649692083809089784448283026280583921087038178025611723146806148831497866503521985165825210354525150776955462545724527959795209697138938117489334095978398177996166601863860004452948798561616986169136750482224966431344856206237978109252780341259991080729351712432646037038349769143835140171438430171663249738549694725723187809345819683306219778319244156787994365773748682148093981661830177009457092001878718933857315116250336233746641149045767411746140233836438294815310626419753882500526817336667013032403088789533588851288695401531558055371942704545018288220913759667842324264379475498062338649382025153588020704083649195902219766952935841015875761457349542053337949993763359345813310453972692552945769721752494934268426467377451039152710461853838637393984411921781994797352535908525967055195128487681367397541094173762630469946519036002396455819854560085129277776040045087565253594702077505980442331508673377451375669227472808004459284013283846602010088390733151411266905882878692805974306632243943170951164476288354084973271721488899045834058806247290959006761862762434572092995993786150631376142676287982570706137654029518886890241953470956125768846025717992222041625489469828894842040483106888172464159124336674495040436805733724040322451845982958737846386401084931698501235824165803922430645939237421811304901754081309871549232497046838925585963645844490276320166036775040118987831602581205571425428199774433694728404898139460027507191987705426707089038702275167333732203512671675694878001518152902628342817024691693960104992707348304358743836226472615305505439321234487760983827542926751719667385129678280875140330542988605099923726536084591338439486604149992265377161438375919999658945431536300089086192134561548902876612289606270513263978371620092723661332208535911545804258765833424466499590038067631991922938672368533822075066642853153355004361940356013285567644349531319898133863064993733309778305639128850815536137910111285387026269991557030489042316485866264711117195557087181652704385709859935210827517054739982018417585562743606751125364978043739498508632760109609813967455627058278878228761906477172668982921366381388847867194003549519100005987765078784933604792798027031007909526125333779765137557209451063178782254889737905168004832476656950677722098646778082788609181753535123554722137440244945721092391829336215662605636846875272411711729249255399037028572533522886451467574616706125689034646256402655228990014281215451695170091805138124942992056533934268392979735001742948632265437035155696716207268575111185948662665886067646512540067618388260313253439707502146354767300116818957696347382452995338274134299678647958227584667074752708879336501631634121797480442050005379407175584588170072788789750879175087504307753373062333657735601089427259673356610006759911635624940735825368863765129358989965847325242546430538112716389135678621972046143857176236626268024433232869638460750396241382377867525381901400497882446793663024523609787467458055285943400459733087269051056238841817122426518682619077749661789070436661806075987325732565555377890194159682974756693800925612895080543640557327238936712768161879592705972373063707006621002365361923965168298897937858159158739218024697102048602057422726040771099473925569505330880993223131650594289751573318658657199173996802586643809595024134965349449180606874390833670927400432381351781375963820400506095884596553094351283337419001142211319938495959728973896808032831573448132329926640626770775375311245315592139159616092527483115853838951660149382291744963384630044659682323699306856497825904694257493017566670983765875131598035285934355612482492303195291103813910082997317000129878888381469165880308217559195876027293912863522280006625718837762861038523112712742125030086603346075999167462430546627387555504302831570148512796014342985221521252561088073437797753371904290511309409511503663802310416148227189342807770742872811006634203242019132297046203259854501960501766473454330051389664819367098656920195440255391099467303537746814209517044685926984065451921374341543988904358541879468164252060605386401486668002298574950764277599185974261927803652566067740006735947880247637555630642776039554787750624247450570197248665396005106721702682825917135077064694562199960692009140154541302117260694956730428792336358956446194299918519331927760677984172437008456684152442406870918277145397788842820543434606096981380256923922735693850320292496688187853477707684091946444091507697675619643050536139387073839583630317907739068970202621000153826061375474326312197704856134373711201852688482581623305039288196619366267993547203510884155640571686403688573097654449412709555711647218437744015522924520737150510584035192096705381551061296025313981869203103540890829633809642180157871925984456964300562053407696224343438605899232182443986364707241823146540824213484563997926345965250757629770671491832075101349512327758873644431656105452005967253098364392459720795097951863379708448989522842824859383541421636489139533237753361848107937411335626364463574344213552717490539467783774688429195556945753356820771649794981422158514498024735039661119284842346915157934094247510372177051042851600782501118108237611587457474578035160410390324509440021748544332298996879738501041694715894925023025692201978322478560207126764923443046302805095608126380622909000616640090876503956620935803153981619463849314704645578355381484806938782568640253870948123148043897573144331766754122748496814642424532404496659052967219346481841097867053415959115118963128634311585538854267029822080206837043177892534723712612277746904677453294715508447378535186719656633711653636767338808150573646582477497894550410677661633063466155593813403794791494974995089283780625579107013503690304790119125033003503956516592744960788892202161396290071142590214228593246858296394822044081105691022394905619120750210732313765822724617023117979241758183772384898559654353660112877320361022148191706155828217186117304503330485868372198816590265099185898378223191965238619085964049620132264043221136058041550844823572758234568903970791958964090420005270267708448218088365613131057197822053082903977771535461434585932726463518533033834662139340864382835765651983059316142584894228953624404445818839685614191185686250727339278245015626351926638893028162133513704218624667889450317641257084072735930334482857586933469864954247513310540250357318612242030223866769244519378321064692135553484619381751818556756584088686221452284025635763939765219790776874946339386117206508654739830866626769472353168100643199748487175588213823903471504536771634581964194225166014540437902099368183101686744311629291356194675750048833768793399587684933052656978308500709308748892698953885890156722401678272634819140751001230406403301064558493556899840120052447700930962771671641422594210950660106632937100504294124957179028984726490578368613855664754652437435311953258205854073497889420108925477928138365161809710034518573001578555513686044108230037348976534369193471537055096082113540928605137177005465582897704344075248436517821922161638747191615790328093180742079584695642108976707472883144627588477702675745386444380006261293091869090610994621115584696213525678731042468043737266573194883401369857206422309077142293586159892408168463528409345047879607532630424348424162869888621698762467612044937057033382765711041110377641018432706298772154727855055464436824639107720692326727209072225582768373823796831251668186551951423840869898916527491030105471313514711841481894718223941075237750926753966092675939930031008751363582912451610873335113846342330831306945638244279390039403404080823885833087393677460652398905233176757558337630616317237974233397656099383445148761804098326453356398803177074608328367581278215656425512038779582539092523790778740617485969103977739493549218006808423164312169579565254388443856271285658596780965490975657059122886465156001489887426011846268174432872477754054914726947598340483069604091486269316103741426262290391454661965576383752428044082856476210654870459221437200188582651663940009596756163286318649699051169839796049313241280674624992154770051832323576331918745254702979802347235050331585184196690443747631790892331967850881048646032776127983594501100769862282744437254852103850468675779127240430704289016106150551505938324685621996516260273870810278195548475123390694017044804579911784953851365399070943451724699118542960658835640961613838646330630573312074705832854447117831390040420474013061235487849641996975791725640695476237848232804937044726236736522346052299040017845973929415888276101260936672094432481508801835032749870225443532851651151448898118674700642716167108760024745686931725855382813023748031330557453820849947025174889617621964671232702635578025629842435540061161336513526760049733796447134396919959351086589263855823604362931947213374520006055567686342865224860823185581455951131111398712862202794015234236894635047046703531240548209203924408515959291004641564344732924045375149478983552463502003948127239802965858897882988369643681079548756534106269002512792904510176723316305345110348202882185679994681441538368056048735738847456887747101473246355412287707820400462132201463181799220469807023380056508757270993027024511837930853910446677532070771169303362929160335367501923271851865700112784555738583979361488735859166796967850821160975398701291260273686221211621179857838076573735830696221323553759606788144880055725806403012051143121589216713957565963432294259108262544571305363262368485897786921334777898571875339585637323395577375164074055551248888308801347313287722344126328944332930992354956725924101945046472807297036407203449538996164376489150306746256379876193558324800243911180546022154432927712040179363085075980995104021629833156701708052517859166198810823079092856914553059707639296071321901212258177510593421252121955955411074371982997650601950545468877069921654657872534211726707911443732126342160196958511420844002832580836359333224911897636110054889730370922754029269214139552554036087369591226720760611519700563740966290116673915263908683791612585675676690432433128949168128508882908652555597085183195612983210322897310256979366995036939855983517568694957597899827597615341826050261254892716252560114587865219676870608931513383502895252934644600070210864271076815740974711307617731313743957831714763096375484174051943870221740649241092634303277162102797964218908067161316072738999073479108750045286489401670328942474546516942651364165348561930432637689788535905258350462813387813950295753617468657101580016016159164237804898558475223908535080836471649907072184384213191399903886848871047911819237058154212238991745313460990335207048066129312854183820600543133712593651553745295183863137168658025226683838940323208327797428942618302472596446398465764016138758399163786443460846430319289151438119782278198017424265696320674432230723624903783542011484060772573748414861812462343855640751849030207268340089689716375834693539965275805904328613150896210587412507911824636644634828971649586118273593465979163096668133393139143274369263258003886335440589718527603278979933798831440823548830121168482568694271697723000143406047738840482665099516671306202530576048519153474339052876520277473558125111166900302964645588139896404792860562079457562285725485885092999491853171796585079495454330650460821379410599053276519141009503669205431660004427718404130540678063430106742482585406581320910007789773008155798122340414187159614854016217293369877123906481813061237015765001178072405136840890404039296341478785687310927984120875064233471467156078338844952566832772054151316841953142819698025324937317708293279822278577349553650015247343638946936796034225516671364609739470010757820164350536202002268190317325651114241509037195609581265458554501912395988685904768219644937901761000383001747107496805870914171762195208892517072412612739143216644758023961490991291979676767429230475746349465009396719540701418148335303797483398498558143777408803070896893965673169745913485690318607392033675575302109461034587845924914136005756307318200679099567804849854327196445146587920071976949141404554063314308783888264493284891114302527581651202333967296845225009040513984218297129910997287768380875273902949707312607286867521004258789362399693923798463059956205336152671269635239514394682631464602102321662190382772585172210057992412906012789256425755553579280414911561093624574973782103087419131285771113736096691102571338776127317806101631791567603824198161580933473055036667807586561797610888177118654100880894169787711074012590027755704774416427875968547867373524759605051841513386010942668112924100230485462836778251419089635784460973102251429053380107193255976430708835568833869356823810973227424547794970017882814402193063153671606507107896836834604968744395415506744214232362707219210342437110574805255035383957650141509672093020351265341298730332971675507782758314992319457252956044727040643095708070522754632764964386657691564515191990429303205689558231164798050557463261947351993613804781310806652436493116501670705156127964757508315641155209335086786576296545403830670557518561695878410606834153412028227572275812276510605722771075988126555939404872796217965636874463666721825721608941921807526501490325291362183753993191490590607672374227276616259394048692444265935798107413118547497110786029355895641621093129652473604548579727750542820323227377709567902249346451240160152417360227805828810537696662007212304141287301007333655250791215792327170655815656638640070623504714282792121395088530766520162336709457750123995176383032575554338229205003938768784039445728453292893501319683988275168721888802261686493479564903780603874302540309539651310166078816731194870017243316238424884942493040026458447824223919944681746637663199517096392952711734742127876534421459705333234459859776447997762071438361955845286026368333258018124622540305314769794951118525205045562994845770318050550217683720831300082158258795567069469110842826357267457802551277230174873066001865803813402145298802224691257420163173489320670918515191055594878978316669776272304246628443006756081748435031784473305798497160628776452220036576191809592152061516834883051035681330686067407301517329756166324404489590037479180708900280399596806719948085285637562034334859701731078070162630355361710361560331941436890318018582930993243786898347672808692247104827288096349217019078308184909222483963775647457697245873336153281872058609520014409828548886135414125411359407681339558886598063905048539756406599573796224038398754490521560060437898327622296251249508511926379021097697374955369138729853895943511692096579534219091597734819851773615034051066792212619984865128314758598763337169850124141912665500092478604374240896295107641714966882988189151961574921414635158701651742131421254076413845551729539196926164502663443064191916591088553632863057108315403090204823472242031298322756505362591889850408614311863253075050484344502144348650209416202601818520982218881336912404797345156664588440744596985247947444652682186873602442658493619465179847725071101845879876766091702724299334168190928795239174859274497211987177379667856519996436987154213458536545605944762083622505145678852280627550526162845737673716636784332021021586504075198306598182535755100204590853461907575021423779264528710518367883225484473896404506550138863466700221040392228008506500262862458253232403954980614801950333872315836530661446979484191796720181818309206636806408029792911626821120634760498124679438563653406333638820551186589276180534898170939624885478926033184052266497255703907976537944139353642448183857453222987988481232641846132901937937205128328040276226894132260438828683354884569047934893766029693874944157306864634328475647881356427625003488739361909693339712757875780633477731422143919488453394921666390434100939947680337046992226250157480498949451767442695954303593274944690352555539883885868763979042902601878500070795970433061671318659618306555477621987812260517573208823723628960027175291927424636310083896950119797870346493238497168433219412323442548487302074654273577511434505978970819104739580682685983466836367056431636429785347053930771351233562948523832396743943360211888110641332141345779256919053991567488154358628808483376756489037758960238248893675485207061311441691396035499096297186045009444514229390099269085807581823828743935043827601937163625530594212169344466600802224014908951482677304590354136280932156484673588890395824470580550671954019542074795624996550099822124634007022256027662271868885899547517965530663801177746665212021606366800731654420812730302386087109032949367298356656883043898106094433728133416802918598288095078471704669779151146057520150837875527390767294580826286320447326113829920303940781563901803561696214162509805900896560787650940421462858047363419904176221874200698087809189688227527537886149355214233990511371474492880106530549915800527688902518827430479704772708850597745357327719354394616430046094593027258771103018970049599916370342814820496654460204176332746293165125006580590881116200531672903109991901358186524660491595045117833976359968171601084279227010306273988276705441028342615953991740035956655885533414883748610950378643166657480611625260881163803783121375676550732206153718390270328823953310028063611531852805608720245252698479816271205931984471767705639649190309905871850019191978077938664063663191002560661908413968695455342399892825881857486502783035491917091866352839515939198975112476880808549542921562840203697534131858257956319497665535155146666983553250799627573524570102692240753618636225874514110893000021070419613372613046080798662141060965231618650948321049065758099263912220776303256818772505702558278370706405019417682590485365078833813681677440219220233840090062152754551411712874647343450085639024807752467569650014979735124735230710874939965288650201213870171567732805669724754810893224869805436423005428423186438854236138340501882321632454201307803421422390727571623619574826740240831227107386127099845728721840005099719927122657647032570273232357111379562342831931683831484783343162824670372558323604369292099256129830824143173860839267745376405592448224036288429762383782873927950671287097376138412679736800905495349703799785033502698393097302925919977433516562384883757540476093448027409994219929277913028053288321518662474815829825161547597193904133402005177463766085014799830174157538506486850020943375082580038667602671975424898016856552214923994883468829335414389381435914583157625007969575715766695740878143058957471745506492127542513861999025992533469153601108669515384323188366114167783934660026647962075950728159291516902519411408901528543444027969904739871164497838026552355504160550542201991169011226261316793472324487767336175636848388201908885919679754461962460976643521377769135765863701132093527211608937815504313357837125223549664156284795884125350834599857574238263125631599912846610920309237590712599973435273233650972924515659094692651243296637629938270014536314057807123372852595141997209248474212205475123154436871769934964979449882641827871132351339243626485003343687860038554825986610893866891534861131839014594465935211127707156974313839120310535831380128134512497915882108762832971795231194750408323794372658001983824766735839642578698901794932955122675965980299296098142054482999058731699662858363909318296350155621064114307874653735450418329061796482175816041700863114977233502321994995755008361189460041173599924495521510147792804603341244336739649287878214639212394959822439864416013779012364882948208202688788581658539747573189746924943208988432208791700550282224869444886263738846099364007381902251752033344393268781233985888896576754236420351036641324660004361645749121510107396317115670590881080081687954233242607568038242613728167568988197225618462813369519937301090575861351867534004008313535347749979266483948504034807585864947136306477298039788246517933275210900300327657820389744749831016402478650152561552189964578316235716214877012992883282115447938794668700520471637985445335572650485368834772909257477549307542465439724690580226933995380631184599654163481421537377913180443591465894715094431466768801386725713509449826395321395954384870463332133362191812339895998371135959636394440971256893244201972206364647096577923133923439507849708688970776492793507661786523011016858146654475090768411271936672094068194457030344346644812472632941081917580391848138608969892191887643663142255026953859657769131242736537329758779135924402895747638757980287502011131109710611454065734345112666169125780654325452197165893491499835992739459003338877250070947910878530491150850765090577592431477054555730323681731429167806151730804317104508166403059592902826602786960181078184191674592231331399622002797138402405899295279784371207515725041601579168621996958920874309684524915007415455733423674300974553353443077475319535810724160166551817839096628213905155392636018158928623050666273481399586283706221465805745906123964382653246736812545641091480775503836994982071907795701335058771418077314448960033154587044345339087036150452555521354787815586749384223369753924397700527717925573453326744554185260276818707337708359849698691378673494310886016139381782321960961973326609562687561893710456843116596927319540036895046992313889252644721564978920052433579639937544632909675953241261219162072288275091752276908263021467265532132231262344091896576666415432275776158132725061260732842892539964444695362924495948592964246009444414345966664042532296750789769935203588312719342642964391163753427117095731813335053688039085583556385792957073937996772370107543658282172352556775236980526807913834034396336276207228060161796813518986492484121795647382597223122252613174325332105353459050665204916755094974028143976045890686538024303908692089343691041306450693043712052632481998102635129131788052053820714335485615155899754047247568831772700449782232790643521205611750409295838828342838878551140849787400365307729171336965658697261097659317548452473981600108438630666274335736802966465180792584357610740880074998557407539375643303776594227984155649642329701899095672066356874571494705386165244795538529684399814530004770400103919026060748018008292346983267290616114351977722255779934776028444996307248382103799730372140776625205684085768082641301786027152541056193348259625921251877468534415928349169379058063555696521652589500997247540390873144166460767244478982817575324977114973240413866333681503421537962383515912629912208195254786723774965942199158079762648839223404755720697337913252463208995304902258974057059827149800029073766864300501554184888379761408559563130610326125535298779266317083115837463690189026337234440233564406533988342012208825566675339564278883838053483511396852005864828087253767309370989696843413590521981609116681574854488154226045646947870006827730875233574839036100222654569721802687537390751335517821208381534316916611282383027426826663244266594217136137529974395989293503181940469391127074841429892567644205316564854571942488811849280881210663689302802627327912558113017991654704278828393281376068073584242407112108410292450609758712996221477015616550236033013118005178800698974518514167899970309223232392202751719699491238845343902664927461233669617967694857180614202693959847811205940875958632862480601798369380589682994627081593431410058597751571967677970934931980616733052547463907395980836511554671198256542706120669911272624526010781374406164042469344115384678962351680436254909745394146395478453483066945954139459853595524447524521917143780528807113123100681860697672487311491228775717325445705858714973884225159990386051543324194032308226966081378695703992015537135887063648653831942745435403892492298627092844796080345967610318254656727239156446041707342900139227292583341760762363824362750220180537819006516795148942000820136190206211100825732304970909961035759483572111060583628009061628747142563299397203194340924293512614888499190326846120597001867104095695971597500995425022355690131005927106972799293058735781334825518036423736770987627724434945225391622206696558483102574477981468604960914990708539647920775351203621867580750485332608541245168085343758026124560979747922077011559456961538640741907848380030403826224183889542709123359957962146540696378891913332971848158518408987185344677170787248151969323527571388250737407933075739349822157213605450414901804027038394911980336910471827700970749651367783069458163829630765058138104161609625799202528394016002066619785452026720642306260921752398007122148653305626587891739157251494848439868932795231418632998602388248438820552759962944485377387776392585727980096216360992080378106954878884263319571294917077299110922933103584773165779204335670615329712792481880031797234948984372169651588614981535111454686115356157372571480076157891981272366590304408576338726834144516754782080780394696599115958432564954529847556096658760509874866589338869070947237320819949669631585930035645123308590565592803569360953651450345195866668881910621092643505455466494119539339938935110214647912221443927558267246734681914317151848137940145652737324238271633732669798159080397265359498503899841399597457703784352953151140025008426194453978731944214518006897229747090177647211836595603192629032156088908359042372547838914561260647953450083443221990108669299448351432910423328862788072478290616534090430254533937555501793839684366407688182421519536595937465056921062972782060954599016971707315664397310159895598382220961563079843106531432344900604769732028165752360686873646791166869720205280777842137085796637934542888400000768122571269766205487491120863192814237725464711996036344133446396535185357019565236389316988536169010728428537315680527594148207485186255657261475286803942330189902112118302822564162142233510859338810379045553431714183364809053437333206462583022359916947895991529074447579233799009614937173619557413423174663337154039642337005599931698965350332949946251979380523548045523579200268894803775399223455400365804427144792753883408343625358982161089954582744298189909508104586966948802760422713994138888478691492527266112071261956630016690699036226243757645239783997631786486017309601643182722176114958583187400703234246172761165176144765300183164220915000097598506416539477150554281953772720444558628267014575071175966053232773951744973638130879403658480424998982515119665584788778999526587869207429450738350458705349847730458405528731886089352783997968295763473887309917584908723383729555414764733101161468905971532220428660114083078786833807459601067365579796336994529504662279698423637103907604156911639251360772038739211290038452710710380541405375860939369719099810799505817092016175464015227371869223418098340378668116775744145753222026175123453715128947419390906503020568747748024567782132813352116619930543987774796075875573230668192732092909290041730440978510694870206688957242540651132801761844339431521839064603338214919744489428978628689786211727925754653730693474619717740941320078230499013540583082142122985474207424575877503997186993185721976588326604590558392143542140937108877712865676155390551558096821715683314900635385927190085616720426074734165392358582085219436489812979689539217165179726436451309270470013996773679329566140290366655274138391193447340743769861098375261932374183229058051533090470915487525583906630926443727186556786571319392659264598716675669908316697765036720535710518940025007743538608317575341810119115896814701234527461893006358363690065188146435793001623352566005767383826124475229365611259542064722830077689082215520317283375963154107927701661369868941815408818618106762553834134614632725703073636846161936424950310727132491543927847217337496116554646347626343224111892652688363551425254414755054619546061446945846787049476215819724007914214449168724800142212148699812363581197454112067359724261767344352790395784904218374552918545495598701541033126071404213133753058006913405560122998273990954749262739002758256991846320551447401292595889534650450548139555190647599153022138300257872249019328893497560786259070375932065538473605264897705285447091003567190069017774457137688440662465263766027985780888164106338716731399800680515034372839828391752133931898175895688877502649655751311617764736878456585821390333095792561743167687694481682422074254669369437606752554441262828622772612348978065581762686254344613547559198791877106933551493741613415637571792975142489954744376370597608953838138674057185733632349535792486317079025127083731208167460668446676623191025476316564546280302153054727170034980717593538524863103794893497502832502005395081903174339887350246480601859805788631973718126343156682122847164583886694675524406426441521777064745739159926922491101942817036065143658143826725145371437229296868473738201779775986826119884584390564632672444227117288732088706456013683917373463462796096767028769976904774715612237062409322393125227666640000896397122830741167670866908504011205463393525458712559393525996528704538263584673510268736703451201475442172031468789489211082747260697353760705347668631420782258625718026700890306165227495852982398501400060066906628013538693825506617983648891514499402975166352349890007325922958808431097896676074140574995061036287658494732043255423498565346873113075762346652849323747278003314497094657736211690236245190087351467759413919467393990922371346471045396268343701851120801906111394838136170325717754494946826493106876765115479771127854639527272521279151283022389706337237231927938239995698755044115862857140443040632245126142067094442246071863914890839840601004469413184771086288568814795164314006608045059240038873621062883929233770027043403315343573230651567555847834330942658794296321637445787111053382067675536755935762627645661758501884892636490669181344849835848855017371928372421983782019191579965046934330260571594790031940648604338001282888580033039166221035811298263737228191691496385716436715467961520180733201728736622742382752566452731104342174831225398403406645465696657673465067684475418484392044368226849152443808458859913339092798024919233197844875045633229985966696073225282147028968398218188342544548294963776115827119432192629967514194512065051921968861537216956039578684444022062623104010078118119312007869437761612353203934793042928298159251018277996605923254968935966532550682445166180694351481317867324913375583258951466270446646304036768742902586932929040641634878907482713655082052593200048219183812070726592388666302914901880851652801776038473410753802575389624852229993236566786300071642013727263111348656309293264066119593138672007107615318542738881472323979872323773329425932251587553960603223954043690495481303811851892778234595886340787355710998718502085673855860656209194634222174928821603510571247464734191084458535908547315159247398441464931263459369198018638453668595982539238694925392027513710325497706277374476719329335332946477972289111907980918830183004269439592661785280554297185836310199719117718380807742161890185244019101473739442016668386862090809985608425080932936308838180335983558742265662386248515841311479615318865031169068733619113804343596948773784690546065314305091734581577345791809759115006327766516867002107228918663309181901128485401058118346930301510666558418252636629874545727624447150728063260420854466004248758118292970742674140514473115779916507202657793308382036144689529871805016604716165836887979530769105370491722204878709500709144411030675443152806479940249439087313553823192270681227888513539309980352416305609729448205451916825641981421856014827630688486491680679234995566588815615062092340850289132904097416929142957027667682968239289485719742718115442377309585632957534855479069425069689521187022726422944636938893168531561396098520392893576252604932491029540244309380781565977568692433360187763385385818157998932987565332801856948632457973361496230282724447851615897109151588849903968500152653772988462824780502189078370833106235601620154179866103372996375766454726373886023208326476679071825752886708092135248435211864018026308043840328031897704786744090832283298562013119512808561197582540064957190342799675899108456633357831962215655635673755079727283754456202109362030786006097713937539194154937300602827687522999385607771982984040882617191450314325940882823884196417069569584921009255418159681582783756492369868582881900263923919312073150542956711493304372077555220151189065501853944666493053107260094257716374695131723961956067437849300837615787352278360535546563217954160129153291513390388454654878758968087136016527432926498542413698929330778000818583146344279884264267261219368960623714829213254044810151405163471262389741336579034676589359147404205231486517486040138490817808512150698979291114507170409762988362843594776868491419706357300472934596033068576014321849008454445937185536059596322784438071985920468406934201896986676571976789706335755904757096382290015388860409247647410500959444637219327610461175455382225300126755963643493232485598310375386000224648024035549317565656376031249343101663645601085207248406983877431108884123888777395301559240662366827537987469497476347528400244646908689617497333692271256587064883878897969162978036421761928805111914085813621687193973035789098703084947628753635626758792379137377989181958155027135339279053664357307842826358434822991414793368704949751958603492754177921665328853751072409798257664465992859142997063003919382209870504187249978130487518766743140660053152960628118362048053237706289732641972150534321767987912616288295404207473471077745958494016907073580886537461264337022157256493195401756047930194888161692043116866794158640199121125327163913972600463406125201444784739589398698504216809829565513812573250848061744308064910032269981496366850082967141076102682297682993439859390526818534216060862437873677638082722229721253163524453942237822801822700252965498713646106451892074142913264546193185494790280163014428597092869246927865076566118570786596252235120146153583366423810540657473591687328168659952650524181433224321830127089141125960582727632200059260355930569516540597189343401552605900870377167351444478312789362083032176983926818665730416717666218689512103970366355701098473213199485895660139322730743280123871255003653264038911380019263785006602417763329634887206554137534785054787429399079248075009629419556581987402046731881463220346835773988053132345389266785642932422009007274764959230554513446389612596431462581386667725398080498421174072383015709763877869017880783568998412355862952877447384702415229928411529882248718843653945751475618179343308434263707399728454315038719795382774702485198344487783305865471841892772959148073850219530445190963366551195167012345849023929735075502631997404187917064765212757067475317424622182541553416534699041880606483559109296176438499458575240368902025497347467520869225316565395520425761940941705723722275395103484273587034332382932494460420062851851120600950721109454629936955557186529131672831000329759936328959685659906975062258946142905644186914217800604467263920762221079976888451299164798554575134652072253431781079311235791108782720116750962263423540815849701887971031024740164671692730471262681083058104398273739283739650595911448052030199814678138749026761150983705278833085621738240866920400807251604374539939272248383363802450897176871044461958281410123902953148600192323610188909502865006625028554455309373555887564158437069364491739296809290034763459501742367134365100448008848992567982775374842844478542939970321239268463086454069714557304624800623137819311863814127145657436240575912430451591384091059581657434687162808440439045929118738714040308062110205372215312364085698543442164401468983479021445200176224192721469486448269412379271824787080452136662960924041467590240395856355913067464733303924885446868468699988831188969002495643827511984075988094650221675755635706709252542969507475006261457723913171967693796314281871040065918131652369224704998256605007737010031018536031288914095518089011310487362602622567066880254872333875579801383700563652092864352424979166090664705163701775672742954774739588165584591668092242311504737009364432324112111655976020606054127617371065628362920855924226104838198192702989738467017700096881661924059172081400597324218675934329076606439322869137536433772657122825783018920684224567167879618677116392044845417475284910517747727679746561113813821106527785980857269542398023671912250377693782365918773187748385326716962107756706687526731781453951574365421676876591958639320938529411789839788048413109661469298397906799426338154367139723970179571581236567882459973531852901973937770008313025279663295034055243122803149117916722926807545337668842723981361862187156624965004406389423631007146211717744478568961911467528697326632008156344554918691203464147849190161045807468711890304532661999148585144862488732638379441701941389240816710961671116897009438820934327548021792546155130395027784916303569665853030517353429806616049743315953712986610950849700298854157219555893214279348509978751852279429789470784240066734599459408270454752809987141187026867735231904365113599468553913781579352067935519833684821498259516582208267341262640728207904292888527500073916927987887689991859976458691862262474439564819425158434713231860637481162411400808154354193033446515604527483040559545243747180949658502842307086773725095481494941269107354881182976035989560371106284682435775345571166656466514457447539591898269175416823674756150155687025081786630799225834175403076738796327920895286785593820635041309953021034124671497981264759914667254325463736697168144351191708934458448518181744365413579025248388684050327992447741820046959368770166030823445991218258497475873643660593361112382280793520177487946913054192266113329924896132667291171317719352588443744467664159289958822970346602461020660914914129191746009432926957184487852370088333510054951323938545923024900898043694694233116188959437595643249090078207703217622117425124843510585201724720689612345996904440539363416225011196826043301357691135531555518966006371068233216771573134094517849758815422976990078838687491861407907936274873405643718873242554286480808789465159236003331675592973421862900253779819294135322034362952772046314143681815469271133440426675510144756729930773590899594603632508632758131395285286916477811538630825146623577562127648747839317057337989850907892949852936833453971213286667751842642981600085184532569442998572783310390880529314426609441432016752336652829311374400892879948679531537225705130384040105434466526905946642495920700726334161239911417506772850525544292018969247773980120793731676093502109696179111335335594061350596698417729740874372575984538867819847302600877265418984481334288824588370924921878975019770119627863747125506531004855280232269277155976629312293338089997155079256241192091629551029878233328745263386726731054338904180390224192533253329642200670747529694087146179171415149659074183321435296885201610576620996127668705740252749466109677475082451204063678205771442440553096258052764680904985634629358727915780038894803416332915720210174002751005959828294641466548251873255061191503442366509533185387641161170223123089714451467084232169132346973003429574923860805771185830295949842959796403309140312473932159648922377402628094561103587542902913496482546664099897001740047105653195283171560860239043505552488346014322590383940267967428657422396720858853930692780730260530964627714085508822884683604232845941342566110869620246637609200345850673646166742372336189130847230583345389736846938848072286528233698888315215966990805386199698757510624820589578024509281642437959745749950799821018754334176291640766026504840929950029081990301469700647746870404492970623706654886059667617930556579184576921896989059270360486832825555220137091710492527504491615844742899009087088236401592565436860306381911313214150729776618100651481935926458099243244583402732565205212181740906852844526627002222910138366492255614069291987229330171560077530479173216887436683589567432939365714903918788690168509725572494378531191294820360732083091096212672534833966375144478178676832919010778595750879396279280600848787374730384242197749549853366830605298439867588565328497899135587033554962471380869320886171549529869431013290844057276135857002189104772375239557087442482677159116961035126327787723869806091548927836173425946109553344975847435581732174009235541044966249811617988946947788260615696836129331126017152072640066944975726318555256721473351089996414295593830184231312295437038033319167126940087289451375970337595755978781782143845988690195686800631682444151825857469645975506243890820742756651286625917543271930502064408181024923404437615537066399662129177525572733848304057061619400866650469989031767006101794658826259737479164104726014656940682002264307894608027305130781196202624839536926697985257431631504380309101598970812259639050023948816450107894883655898031198273618623237310255904235303634492522190675951566166642473168392401211054114454610457167795901576993189583300897649423690434988479953135975231439303469855663527152650570793309406292929591062925047227256455607821503481996073650059855753233103930341287395591107971925716981258043518426028698059347283672320118787074575208690735545280888807918470290222556570820317535758197085213258760989046662598648692212323626103599641783403590784369006826452617617107936514637325613521315510843350014942263020765220151027153398350111170129599070543281745006866328352752236916944048607368482661821042663520932115155025080427597180610832348061426629846519361181855940351013409190952539474510357852835191183257147066995367891784916216096762951197848318484806154081595537959674088990280462720139071369862358859450968277586650790925215476067696162441275208834331686537343072922437956029871640124511047873442360307590321619921925094358518916865933606066847640757784846884595824352451762704864863328399581283044304282448803420445168046918377375153738605090187096861463832525634635223301361943018312876204573787500942595762940430032477084546412410596752942082250498869669520604117144104375056342308456144940908659808893463682876221209062583122652500631568705570253896282045833476352215027286309825813198958063536718357281303643325627318624203853336035128254696991639310047392916362059551874065032672823535085760510898568660062129365842921923460961724987214519176429424561002890621814608666239471245940348363319379211461869282821657797452867270237346225799794166673018142163242225675732556089338730862186756234400743545740801009049055163827643410773122795085588897689840046569198273619206387004495742347551862132747464075127773447543709674916466292043596466512305345904910463952976170372733986054564123738594449219875693432409747495155818294348179249258563313897897190497664274750941332093457004284380497214983667597470047351393150135925460604133556875433957529951757245005099922642507621502642112988115297151600822595739102681269868039541560384155464541785727744822869960918617186302268983457743463453156220540029694642006088138219231370871314783964472291968495609609676362778002928933567630969562543294161627114795687746699194577405539060205687941765618897254540227464212677789149996977352402402847567524441584837800262691643591849903452948633758107544432353885474736106099336415176173657877787017504165178217406561620889693795913256278323210294044024115291898020844313327593861930803566429144249165048607823342001833661796196023657915883010035078097383649161268544001051591159512263705961098067694948034776230859210086470624767776713040290325330507301636857091093238461201228748191610870224972782149983636929839495021745697549111493609573543712180300544539438509395801923244868897252578793256195399271878044728419474438138557874259333675594245176245298562657003716201728073938910727978612668164486031390886695213759292614253252913493134372568472673827806953873106441832082402558492871722544242467344502108601803421868234116435725338490403032393154347711452833238949679089401728936685695061785196002167465141668000226453330354330607714379570098743775414149178223400180729992269147128038372464077863365896057041591933153273976965988020311855278759253317916969798472350981215053313111101103758735308359250041138264457681088904873971383392433794160564071576062980043009498173627962381447412219142616128241059697210739894047327214714318765834835857682441038681476609778005015774418031503556603835172345109054967471351108418911923441440884620400296446936998652634187836731001445445744434480698838349195772376546339959067266659507848426066986753963359574292024282131122708470328499146144568181643074196954911432748915340008988558795848645019076266675204453284062733026722187809504081246728839746672231461008009179930082199481696754798057431419711214432462541358414111882512676352382098897858935319814096005226839355541993955795715108868654070258050071399049772786633611655490491847508969395406689375225682920179923710331271438189505257917500635269931967727079263455752007817033485195162089494534799883595577444454071849120551396075752892384277697277500968996394509932763531587044789384782798289062278866691817238578322747109405662615887834628079880039004646699195843092116860831209064400252724080895188895196942008286935133121632316993856704028515964583135970394916324785991598610433385904502214759115478002561591467419082886393633065288801779551498906626748199497888236459457734138875019443327765669282536341157173655380968200851231870993964305209846686183871340870512813293166860159684453817335362812396922230905029105570294884360606464510449627892032906522213378136456794367949347194421120826150992705587361385176597843075598086972688024123468235260095649936606589321594116420545876646524320241175959303020228731818806302243174221712774096416673781511158802082363765391237281819064370438468986333141688871017055682563212559317347001795190163950664999974368557831990167684926657324212554881633801659197082654110413990054780956823923559966508801547423976308790997394216233009035771983125898370119316391779738016931773088176172972207432646542011949084007001180371039225213529808429360735165296090285048301523508720070890063880559591551649823845990615559179387452043891006023688669571154533621133319613780353563815992341586641895119678177426271173727428788900660476708669483496391139248915433155795712177821968066447370433087515555231359790599920517804402122656878310959949142082085123599042748181191826110011839839507615431675243176221898983702348160603194083364845701413349665639171359399996715952962344441288818729944428478457963592333386163480693993120463347594211991969246794660553304419006465593245213547891232997984945079774380013477043637089180034117944311788615844305527617239760303554480512183121489968464043264175892491766998759996964205831169041924029105448441137850632687264190096381774382822108427312120751156953433200463033407115712592948462084139054645641948010730416448223213827014589887217700436657810616465842400054305433075759116001133420675212689672328716735733923225542642312489067840100721743066698983465305176338422612913085124050331768377572084406458011950113330327071471210030253961345074813945106219869727221612864058220248615773501370318038738396569451162315364158561863079109198568993908241861920843710815886331318519125545316201306702101731750893820102283443820507683235975591606825754315167123043996703270547324632143947093116834440253166378644302965639664351888235254633761488644295772645113269042729763574873894651016164910593828481093278061631532764163539641336258258076177108213940242318296862128530549106951750662055076018638488223373726462945512957785530382939553317651459844190672338872603893706105116984860307480487521944336533669207666074738365264652455848438421216873563634614321659967651990857582376326426501572569616472928342227625268202239524882081492775210873975267665187121706408656402148263678780927782011500229678022504425014182360693932585847302010017112914827715879415291260213346094151723580181732104838752464124011971226240931608473163097984611875157042369923834146048217255604766827666869482818277759195056689111652334737136243865198791538522792838740002966737057889520728931947814421505739410356685071419691010919846096611927079495638866806704730336584618459025217487362971130861397646641455287004872283733585218501305845282994732696553888966128317023440589252401382644665933955920021093658146751983626650411359526548901060505952543133332289963322246686878155576060532631419521703742577044934774497787958741436354461098494453949255194091519599768129804486845732967964409256415091237971133809101115394894057685904119372283783981822002071293803680871276021877207214193921878581257706648783705043383255660323041694288418548442740078611506105719176928771688947831168956260893836334891088400619617296498916833089847715391548596907220087346530584657062000183654527711344175977224921568879130090547675123667050508491544553300209523514281076950437413524279848333530919119061052563752548953637119818439113412744030281550189270661933859524698285481761195199489980998797900783474987726173834458554904123420165834049034391983511600096877456549261317750023077361340117006902941908768632019430594940916410557962739101626306138704885191431013161056269001209676271384353156441678485368437893499020446658589499577409833576475150494657479340956466217154067003303801077885097286592878684509702104047973275432567974700284831648466023660130528706416939320685874893278354574824764881863340138607233809976555646986361857286427392138013462550062505494040130608196986869699173244431003359865087810630188239186001464461327858942643015172994177700255700654316199673924966705660741792365653393984601400863962322493031646888285980689901580457255016014807002908335369851393143201888387592005382681272484671096316786844071046057373268910157479634347714097392321255783458937422627882567371905420252700642074307501467312133041704240454645707780257250012490418801078299689110446176741398930660541077707583038040688372592142577468488014122347262911912029005651348818215287005487735694443600538198980363456315853140121077155299692705767093610512548232952615379375518456934532205822164704208372326008861488642411183949595978015985829947760757953632858377331415789168674125165607451956974011937561652138828801039117288244701536861010677684119383466098425867287582001813814025362049853803627544644885012924606939565988000774454427826047969457997292624886435764883714032744497362017648619419477598373014921349856424206372367034964174482310798146543347337871492498216799808805832868986563506827964001548384371870328454728440451199614640872053104014379525175452194080652556515240253004797251711600924263418678740396936259688441738085674012872540475590448958404667914106574493087519825715349582898604547232882987324637970734481492658499188791335326389030141531491872632494704810001164249099939435459628984662205400326765040094581164412256653216744254918168025963714262784899923151935727498209491688435605237345314339874820179746294179205553369261744689885376043461177209561711270806257444351822455675790086212756843351077413848306223333088776808859991319504392476699248422775629104791543612766409772168020979095316331613936930258160807747058483442800575601095802093687998619425781656364480229288718545159584015715312436867536384109890250474675011683225735438232161740307196811205727402235486467046752807868942763770686063242960018752002061129041196812762050180151113192423860696533440659874980335676368316257203267448866909583989691081945981749879391469612994478594341991675202530407137739496591539998653357823309091543471046334433854348087433922566992230892531248871182903240734861835326112683057490031275288992636386195718847326356167565844035949959269796060111261281369875870675981455816733748090857231495476737748115479116051087345928701040521581116681401748399542153242849858361952843933789261020550855291544898629921026154815515031785740697437956188017715936376577103082023424635703456525714036032108622277305476108926746188198501832844315890568378147467741763746352252660703644125074073426131822588681301401061882944004721014282718405360008692031144476282933551015277456854977817363414089256263035016956085794779529814064530402892146657305977349136611405149225138782749344020476782634364154241362965234347363450610225663724391619547472583067433393833873379284168126002929038651487590291004390680355371130561861732188868368031576601616157336305667479698123776190337685320708100327330111406299096664459126453855492797916389232267516131301804795472311091292923667358076505694490546312997049613981821367910348173649975495806391770931015668533931653830130391152007885320040064235396700893085550039683348322343216099987060543035726383055734069736817069056396110114952248805071528759008519145282593271116646669450222348002553334666886375217848836368129787021928043259641651979698631553029172709144914083451880099174512196375356008153104482203635666928411650254019107116636201985356147026850340200284514248617063064387364697427458546189316713579360576554278743357058870056166195126442343854609308296813984487697105576462224144035640560021191573311786386231626485109491272853412567705691670074509136208485997275860407421267621333120794820987188560028577096332355137931392977507722196145217630216855629180343362245564789858561510663872900678971155449926263487318810403487835599837974551670002369223125817071331678553559539004420151252965645432803360783221826996882889534271906292622698985929324829649336557436366367909030911104951374542942306172665559861145113286603699936755552253568023695936961149546712022005163483054094768509247629068727471628735544454005232684913646877174252506590811782504361342238092510862896469000935966095746514972448451032704573663202384037759623896550272617150952502026128373572529491190410210361166620717769676183182000392961689692463334801915913817812825264768793141763446183710683463379113149654318701444315822242953227215792037150744497800378143684527356710770246899337424618900405433374822730852441290593145653485236927585760388505369012272232957552111272835937264727740922421933286559583221595708334542889576789677707030319895225102383640465344388396010423630462742999963892065239567238714900209835133156445921676728513130344427798362449283587222354801380208119009501479971986574673597452796791946671806974275078672395757970348735369884276577123325468739188088077157515051596373922158957443133164834260118968948523776878078417255456435947496874432185023471897500577084957360941672849316327338343585899883204170614547755516957777754954637713405954677806625467540692783115187315908610365211465023011530040085771364580327317974498594223296996540580488548322234470086053383707316845210487020715684220788347440242835319885186388581812500460255144532525256115321375125146768789811749948245805188451932572719650895276718268226373995932729414566611564413390930058990667114767576808295243384939260162069786984665089875708322101912909375635089747439415859193737071784864751793497421117797490206564395108672339603150575428207879604536448151811304255329330191083910391492788046297436449752411071200321199793392228688231678245419544205171677942256720008596983546426158123420983862206289940532270033181271770715202606537405501056167421973685906341915994418213549402968768311598181402025523656910443673054831457501057501301872151722371818490680014686996925552142292687386030708167646418225578655863936977753038100239523136045043152638914523692216141279723321699312421120197319709967278843686752806776949047718662782524433987821984015503392846688644505428602648483772023958065738494133059522045108990103872456319967434246857887713935394076429986451890467550454972981044065966600324185655283161023347275749774486123334485990312577664360354403864919817354597797778857594754969811967116526175955535592680769725199096781202734450193197857871684912398182040290063564686365523457407167862477769663296308677171318407756887217287024009112597086354766834821226956327312962674085407079635071660173119970190662966284329702118343916160024049516003547638741581675342319793841532649232295470376366092616360601840310477777837077423059356691759709621647050925985600213740911122080057150542309583147092235953360116046014410278677942669778874848401686492349108360651725796994015098870851427033639228085507746148254663847398248308635692813109297269839102680095897818337291667455828651066475442623397817582036686792050782753806475553004839380875794588889445262561192687641271363720544204198897562822868381011447461116882706629674400308005765396077849728101032497860133988657237676283626119278086902566115368328315402225784670069224339832457279235619156470333773922100261480431874260236293840973692775579454060878957119879103365164779751692594420140122186646487271774784683351552061907030738506316189958072445037438521094201236486078933216534942414447054284263797570622142982874835148338006688801637623980504753906601675353476162530869432624624298019077048842133749338654587222331632767773862411342723570778861602031261616975431501966724399081993717312162367381293848759831901652280335443940705607225970588474071196114017997072367381516237281643844800616815840207551651182647155904358645196550021336893650898489515381521781392254360191738952877883875958577909099218612518590902016657665613073985162916212003951642853956552889304301114321527209466413983469272230674207419922029176569927225970570181717132720602459237988812154723209860348108043481781875193760343429762039250835330409131422829186391941360616980678627294764464575780099233728831859176906336384796017595894171418783057961136419495253612707731692938479129555181240927965508494222517903997208637204658486762412511710613907237182834179819392146343004588262176370541633425309561204834291794037505929307337716632835139587639265982304424362624478207567424364005414448353302200618560801599524497313645675498792042419423783716946229452553171130432526835654508394294987222124371615599956538431629846779202099984114189130052206342042520283796107938100209741928039742447898160652345771236829490035566356670174258607256296876797200205573002642076437706292425349069742902068699077968374369443046102432318167246659223240682255353846133307522175582512692753573743411732950235136929649515317764904844956293972855545977341937190193474879892679345218354603514772282214036394375987964621231368073123777809667442844519132284894900376089462012603412828075333883856750386978871476456459470133842596368377048805341360196897138732669977301536509840785858891948444716942674917091956040168180790161614281836601933025555368504734666851983567600328180244778422123091835329696318279626476299806248363123020958057317614867437005687923430929137558177108818962877001487275318936885270869671087024558469269795336129752733243565159753587081854719399137484594492616297495988116898917199299086510720418508980677621163405004643343211521523690474101467188131868443560436341422285324174898803004314040686286701553364556473868376271157886048669593300587223938529624783138395726120279077378537717533928900907473935748940325263053176080888710226273301017409626307767405420081527407413404666206836027118230112227073784486135053376879033886930720619719527132536329479674775401030125989123296954357993735660269967992478797398539430256505845405101284869674401042847012217111163202528928995300514852108300387746010316173175536310005161663297085421415605695291618725201443022720982350002172763420279092995913232031068544749813862463691726016027803042244553721411480911732873919963495307260994912580330052317991024558824082806604085404496433958157415595572933432268999413030637233081630370975774679448148851614356456955263151128007820472972216851952157935183755855073995148166857444810141223408559590850607827496753081437610230758028428688669848956228963317193727455234971881210424147231979347020619063359740712809878473451987263088855024744086480344528286061560432613931352181025392339227028089707888805142179673968028526069744274857742008350683164241191696137583095370042296711795299227060336211221072905294498770123777142497836429007766158449617938552077333503285874068367375484718584003664213187758629744312201200714290923590936270983853303679111386395245395049051988138673476758959065976674788177168308182189615879048125134999320649055826032229845321834931625649131716402085132902303796526812720468448563978300108795109028916119710079409538476442214107299288001108322189418829328210615848028854881834580620202301325511866604117571202087206322385554597939733294008174587481252825811339273752922059648068212586047234414860021240084604418096764252812719521548281888483256824688222349299450462309701316563342169088797477466835938633583982415486390965553379189232157183583529426084322918559679218835952634187609637889981810657611496547008682427884142100840410270983998460268393623983322552870203095522018074855178471152980162647888504691665295956859418098577103345530471117840533627368732377881521148878854791986637761271797698122868564783185249397588960887401396690109270794634061573897792419890524717993311292319125088458691641014343931634197456964471897888201820901528210644289095385684493292540340434475392882658592573128805422555494153683179291263162231853996977989624621596614107943388913138956450951530932153731524750397330945856303156606907302924292465525854306942529148466713236896088163944136451442647894300222498587295577676890197465147910532260470084302423072523137520866150598665903238515762878609529449860244682063173541521907486182726179667218743882946489718973352298842437040267020857207619796467393855305358096100215042146111654812563839566987963612228659346831736902682020139459565902492474415557078132967378761024473209776645605785585565206103378233865016233798145400636384500382443906786954401816474791507558676592741199507171633663857160739403923816064358674677431316837993705469329724747490248112626880536576605342605429316218181726211022838389347047529754031296471375959739955142394047838864668058911856419147576663591618869951218823226519475702598905222587854344282745743498023980483088020415320208900393655714178155261224628796119330068608694117775093917591963579088838056615302784310175314980605891177470096362802273050777087549501815881253220731851311260503735310706567848087815259805987838545200189540514030695622717119627136839266526394367596859895463826412220450175174079907439623151355978485918751585271153228223557538096190872275416824250323156448326347333185255144915932909600550388686226235332759061211761958189269166677120059590823481692092216796501916521944447424433513029934124142086900664509310342889018815929140968277310863693111715651708551424674820484729542200820847041012585858230479356324570400321822226778556588728509948663044502246081456274851098680429365210138848011036896276370671392502753451713144124452272203798687528267228353190308995991693186549339423095894661687927257572473060434481647280011880036000278285149036167826892175187176853794726194012323312657284655470084433531149842518949199084061004924975507097136320700982025940469142790715243533109786951387743463362828628495044221708481033307220986337663017062699019902745673245005335590302586258360903229937722290534297254300425581603807390340415519807945911750673231808527603874087734913429805638736667616543501604986531260197250363940931798107456948832072527086550140195957988615499190232596500256176503772645300944997659782602243939806646308487435644832384027150460535177945273361371567953710533467993048795347033360943710814679966637984273849341405886460827231237255252240777030171791549418409462489805597108748514863620463779967162887132116403886464563963039972988811050277371302743434674363411765600722079213203632491200254215065684370575857340893505316137566027282639049216945851974743359487818293903954512598302922065008938768090701101695337705353549235054761910065814085118675557202739263735682718077259554740115429322971265257873056524825414412181619547783805466244004101325838604871141947857216045707917557931284456734348793425266428131993493385298432154810393290171577900803884616790473729365098890767831792273059976012166338037758902106635636205056121986223045532289076232746907104757450538675627807521884947919796685475449234990053955741341970565354605642026569139430481805963699781408255333844255795117583500604911285054196075640640385664258511184310593596225414982435916313521450695792438037470167374577505174900313657548316780602579813974625981872227855652388547811797055727533504687337294995749916248766305202699027778952952407912526345754840636059752520104707740711864633244551273185604267067942658334459050910858415784647523038675705918267397221410542175579730119264837148745752310076650712829233320604347225664704504951998743591496702698484175663041692373470583632481138328129547954845953461521799024940652078232722477243630236788728842541102550115107524236515735251118305868106579763218613111516322988756272294939610152448730839081012494400688117486731062348905306077599642513624925202651883493472034537714369193375669680435094540096389210242172694436771913871797027817129689183200912707276889614414778624503586053891392465675703097559666770728494559155844152784855948721722879421318867294811919791534678840236967607917086502144979814627589381202023792822051117892497645697883689527472392009786980900053433208261796932289039763923210258024046571925251973298035952235323604960376583717340089195603395549840882473903047071731430843961144216364395301814585958467044859869738959686073544482455988957292151510872688276048408006692239488118905686021909071739036828441159137640492006087159955683020421170571520762221508504793634061262484974937080389137570869792526850092062599247290384580653304669377403587371075602277360454594037333991488518943241438789531306951211775131638085642104393570907014991638391612307836652806966385223039369611945888568799719158169144023626710426349243891260900773037397294892046429873385623359101699671617245179898952264442246802859808873006332485849265871847599148604784332310878393933718825233137630753391126037971943312323210845757748352303795547794725137502130139644205484903575120731382506745019772582462478838031299851689049793552033511787921370748733452989503569478290356530913976875309520017041477645546128305260162856826064898255934049256274458314746032067380644294092263849366147296429853498308793786151276962157803802864191761876022540397477879213861337789699015298978521456520161582403566551012019914272314828771525236895641980286127301762537828212491336430515817044029923317563000092263246494072757495550525407961512066837693081295207288155515421347468228029803641349178723358817560078358314803117574955295897516552220016446167620101860675341293262957742006200827420466575932903130743963616166752672168107026127262811065636663994591148573515446916868046836305194080266819659991874377336828598571399805802724916524539180650366048021414890209657541048438905841758401041459841677553716217156929245494158220571045427510135559522676301448893747073919216077249010916360107918176441475305905394556593764302450821368847927519261275594195948701230753447166168973641807087899950134148585475516693826853470077078878699330213519668911040026211837775019519211029540260183426469227454108295982777131539633574695651503130843402423400830475474054028014013878834759432820949757833456615030407464977812777267577401389370180949345905474311621413826161517913017704495936577101603366689973875636713399401853322235706256955905897446144963594730567747725087030922670375298620595178527559891466946587864267280424725674769022660904812833563795854618746901486467528317245654243502894232294335881016942218965609156470194693177466827939960500180058245936873567837721385859362578002143619843234184507172271141402543111586890263033892610566469482448807113419568614821645104133593084687129320298679027899982777189043290353536884642675271877986816546157903020103598212229886580211059153584153047046774315120337398371017242599496728712107290284512645042022012329762569048875658267297052070744459981293451430122107912822177000074197903898268452016237451633743153805549248288540149350902880818604270134028361156612833973651605312882004018301805625645343037854792908092467536138333583762790442715088913022596012236708723273355657519241085485473226952077139102107445623264880716387594270602477095271080421643348234826974910152052816721915307960713202119490963642440575916189406354070986197688301847117846383719594266048466030528177269869745347882074990032393532879381029092874142568026295282074911096332221270081584665252382919370222510613588785016073839827847088123250207711719864654975192705875254431892642640052835848587153242003022844341297126756501584914324479461665374848804936387129823525498600723416966217262994699304344075888978913018659650876549927521782336679134545445884577108629988350627069214498456682129539450059889508564731464263872237652597213652271026384577818514774159261629038064324498394048481903973363409038883607443974828747649261336998352325097906963828031807638844746753043326439366227202965470381791965989144380201224909947825869829818562992705855638481070874719152932737578512167541769663054197165027157446068082972189279285020263614803109233056446372291785088239192944629219689449193702044709630814560063620044995735841573535680173399704300918187192925852060950355608532556384712253378262569213223978362071536770979972030866004203544460741671259277103369622240995942462946095564246507209323501731414618739037998328287618855745238595625724719868164746951100240534541622202406886164268741078384389536816135412589136690727987372303268746823512029780529980463708536739435616023565748665554841258240383581397867343945338320446118059887755664211696657120352982889667460754907164544215238843989961864805225702847410747734540918084677724848712539505626264994473944075917106918813521092021872559808910638368811480666666629795322409244911841808391566690806007333194009656859413016716087235169224197427884978286790372134959274454363537606515461449021872218948260103367996427297865036397941308851678861781924219235078732398510982320758762185899015613040473874317019661447710549722612452679124210458067131843359821261774481510620910763269011725381179952431155138691256468812365091910534757115774019689693334942403399746120778380188072810396770252280037489794072545075076462249148605649714353335168265438009787701131427453617952336085517674304094823241606209574890441631623512041744714667734738038652128575054314720414122118215285035013744683540599530733190638178757709326798657423555787458537192624292351632489187378751569530603160137209347554875369252187751353743384416650297149030763957644410608260898632896880352927730920304400727278339013880050034092506483759412211892860899211488181025727848409167411651349824916680793082813117265621145216416868530740026855387955703302828673279191478789025229769969305996935313906554427296604171510947010829209314475445898113186933692072854713130436997208479385241439252190991599745911382340977887048462964982357784067952104357457090861978708298011563931668555152069911580166392679058155681155344040655410001081145932593051400218019339856592403642063792923783527511051270682024819752779880926452220844939149861290680215994746739918575130765222331234125985926716563543328356736156388693223444412191307792887681773332060110796854148486175405684488267245390505281873723397767206377829756793926848179743132722629984186048130832547222797804941067741506090106554563708798170275605442712446378143069075246758136242866175770916508281100609125111993784251237532616906621311516647900338079090151698781697204350708365833526323058100156362889716704890250308476721744704339676773103551375735518082291990611845617704864607512515283606147736786911097949344481412621105814071138847957939870605016438742789822061485720582336483524256669394282027864238860721790331927279858809560573610484254128498090853705162026866616846729799733489487407457618857233509541367861586685065997150368347798572088487870510177323708855439333639513826948575933106217117691547334823520995355662432354178442450818994816940705794413647790533139741982084833600434831863531936384177102424377889891667472810465937415165368767901408928157480442070398799522150247307405537421493083098763929000250812901697988987290912404022605955639839003861520939188489608009391758808627320848917192888929993312647068913250780969775403929602655347646731440688190627783047713895473294518808955617760378516441509724575099742981170152619883246740511525466271042078103457880982156976342532085381649557606050967279971136059101983865545246427499384468826136054282140409495579926897970645472805569905646733928735219433360805701908212125095041341898237393573964459427507955072517031600058794379681466660383698540014475960644990794232546065898526219688308677094714553393833022382341862458790913208178464074978578054036329187429651537855567256400837074638178917665466357521878271970398407004187987714829363373457389726473520467617497395270836953935547619826325925987804247943804140367070682721077789890270555965389733310176433199590436841119838692177164331840773779623221765842411695832139781604840175471820500518474098448625042890259947687712361820573151595174313883823575265585346046680204005674752251174329722428830927754989080143186430001878338394409691570775437060005890440107135352310142130306952442887188486078007978340213392938783867047309485926285196874960935215312306311360380015046073130573146964764393804724371145451971806961980158065176633784188277132828750991537909811324606699616289590405354209078226761029976752556204082152657299509189293247243627161541775585090755194725136667041714654779270083564732567489009795641345743008246910097862385272833053359934147190728112225073048532408623875313773732968817580893106701035884294457183738252919065106440123126110167574493303555292803221056031949877491313809714091400549423656568049520379237249183829161981786990084900236251383721303572871377139930788528752283500324857172128363343801174202961242589891173406895257069454816196223703052058908470755016831561208079767408947289897504359501543004256082898986285276278775399543532387467223523140175959282145165344640580477438178256306681688195309099734373572580566725593492192455489818488886589351171501226688521347347800111187798235000659663813427042083401959463983102651332574925978347611648043066433642651025277305538528272676246092171523629758779454793610888993144734757049983431363197646525363115563336081981509145215849308149294621378988464841032420620818214860247129459658621106724958448191817519697644658310642507334979116461622317719608888199740074360528517188765769751545994105006696279054503562138398079495824971443254568918461680949457263574001163613575979361366399604697739365592429803954476653700182363139776420840494249648362202018658460150898198661645205106541998769697468766767716122036048590102571145039323433307288692509167438645579833788707026748074790962797849468752194306703050707282829104077904630123997250005066341041763801753072908024961244462660463348687755878361529519976099100378247510360871867754172600601581010907839709961040977722549798645713572267327580911063322573377732867476658125117274250858186136914107259250559742639781841111322493199454245977947964857302163812044682755324785259269746858470270758012164403123605920481899351061300527700135544347627475440430452318968861640261760909778643218551820187139217959218651303605050611879314950886157748790630400491823448522028341026635238134101167691528854908185077993665797821613542817562307917093234262490238901521027215935865399954384607483461748125007944939130822967094345758465608653757364064608328453329788500750997240315382159786001618434878787487109365375415663551179225079279845932484323826028428893967876985834141846823776541982025256974893680135574331586334761956820350730373886646110203091007767573756944577885049075293186920757315046563761613456848916328962793917690287109576056293024658742692540379645412112329158994014598985015405256066123446646552213042369011000643547397926937791405771952412720309605974746826330212769940555687694083394067227770355037089895093356725617606520303652128351339088713153146929040617137019606328405950587796409191675666905699011367857626790014931610342258451051663652632974912797697003816723876250392886426173940411062368140637569161492157555294281151900922838342907999069237194510341965862972676968231555819422491308720889934770524567431548658702678399927962789466937662522661486504692666382755335811424852805407250081747616855990261139772641893427578140325607360870233342063294882592384562771408327849882499370418996516229610635973716100381214469783998855202965290135837839811165553970240870772081217368152475483520437782700774792164978768709656571838215443486666594116692567861878289972380588048114947611651585810467680609311038660175868986740652661636588099753750821040630102235083465092103281621475349659230265249292878250883877581927080717156608906979645230983696184262443860787798051782262955093759351658379299791456691884091217178031068582314288906668948308553692373566501490071597669401541214506204085623256710295031980854008860841059131305678486507825241169312201634325618614187432725915214619420511366197687677662058764799962948851848303292619107706225777944209113736627483081700090291214792310901202234725677566964165303384521384526597092461250820888066622083964355694945367121271801016196187894820597731645702298119850698092664188233683429623585589299315383719238844506324854688206651173701809177977287244720826712713734400444296527170314625608860639991000955859888851728253215321951705197544360117685607227517275905154074037930142056337647961101595406243184084458433832240942912654302895560690892080100037663223279279163523082135975576047001482089414152590577077639935129855356066174646888574347375622989351528449257276592038809914532940198802173521247967891725211521427721411282832949529680497333812216247301043503558338632362262483338477882248493390211317298673201713297139665158370983709296110541367549330172616984975001928032594066196351430482552503681445665089053346264823490883332545090755293127400281569415942617450938931918351235026608231978622966239653708514125450042835163738764229230444029810407530265034994801304299547355810406808435117262805802965857424040567096121510853671711072097215756117250946538023174040098870744060055621912614549358454409149266947518928770943880898701436214332798750664979800298418068125427072757365958179389476668261436435810123407549671404490734167944751136474111222666541236021868502019952427247604064797197623307239706220528040773548316049907980232224902576608725084654178981315466925400763987085414815327505240804370962764035346355835622705711118291964697051006860015860711420421181962455956393571289615886023058737646519914581047673732492173775606490642107618781599228086561221712214948895585252401134854613176422854439250760302050722271507450890493699608518921225154241883034869500427737182362980841153456669505049021392239776285999466262046636308406925705115519198543150088451835820921986300111441372873270025168627459227778771167474979062148542052445376289565153784423205333931960555230431123978343987561963594904735763615045344559810140092556111376285358558925576298499418268116859394989260539290055646195174771974679209202713369092495694901918015401658946866473422852452781854115703060998724467677805961505921644804128587978671836900019536918801938932347689168265674279529054165230843881330195047290617445072363789393103344473672120734502810726292169287478100417688128584562956523901740353869373685865626959790102796525709672882216874073054968161632074911768158840154258079630033217959053597494375365138965902558750343844822379322443391890532955094323802191039684567025579585630758760752606825569284834130481286366253126181773700691774835210939507817401714566499528617641724955216062688674874492855215599580773183771381364987493515561823049389835544050138190645266902273030629002270494912801616336484384813331655509010619790106686327023254001762381916631277896304126376371534328059325905629852452569997915551647196412451987220859030164866507885852895869356525009003471685681115371801209232594967326361184567209050030305454298331840820474164573259016582547770660382791533759046035053192843125314874687930216957272075599052759306283305810550385858565701224038519474195390567414512687674222810256801994923238804479845966322652057299800352141580419091886022603156653103881640101466600368295445408474524839328539100416840960831876590222813640416052484423501264156105403430899167339795647351531551085519246510812290739133693823615628404934283833551383040930387197422507639772327331372998059129810373621413001910662466391009271216989139593913855674417124112555403421032798083541621573185292948619786969663787916064921199826090768700069961243601080044797070362713898579398060114204354524263627209760630420959888745990793886239065872354799652603651225965877360981702319364917834788402533396889976539344610447063276896393810476620208026829521962930413159941386609322571030453831103916125403059903253510312768205614456555779141464664934380085360301204536686590483300898739941246344208480867644026374173443495960326111915497179020322347524026460598260216289574462172341845075911811950114458715800070843750300420583988136100025985420214694319619284266783188939409456060653744358652985179371703242355708319620110626346312846576334923969474565264040786244491966678036811208211456515525998302874578480945617904950171322122619478302808328903546177958705911988871018495784512347407569391442904268633103187505116055730010297263359029550569159248735180946127474535605080226447148670387646912414212626747716786100339854611446199605376569326021849828052645369869891324356424504040831093465507094297869382211495317552758026273501703357485123585386028710003266603656900027497942980388722115300202882846660587563795947395325875895524532717647495068902299046512033157548400632720481639424852642457535662904761285001069283510023255121315136345665562396061275492922814764334529960240807362396843985121429153237661420123397552331730384910364141914579133289379578796212979686752922063224759991845657081282957492542062825968926398569647032713628916287286554860857216978912141046029344148531811264249234695767353316174257844738412342274142216216246949141376553721494698944424722247031178381827654252776824022319553937386887107385726381354147420165210869886865146445644081660426378739039123039738335592956147833828117337966798047659781666534387064289309859573376641888229647752079636286059474006703062055352269155166979038819696525793331504268644821772448940004957223472591332247282862446666430670465935043147717911646796120883556403072112296780112427797151797633033164573319866341482359264101038159646896362655731323581629429132152783240526088142513340005295194746156535257306874564917242027152293063735730840730938596210328675592080551673141133167989127701906976831248170842326308752071659393715760826866088929626115803679718779935382135418958658705431898863929884967613167628714558996048918760804444692500566302667306337575672921704072187595694107155393455470536719346769941977580257474341656910139611832496865039353733091236709965437848783715297571004980107663266185231380465911858811981808635458333024173342608808832454187628575876290160930706263512985299921870520557178563382205270174847212617673197471399714246081201287006909589701126631621291924584982739499152082161673371006145185142135277504911998981240161087254986930325841626726135877236464791659953405070459813666465516042603543612685195977615481757890945798901873417795002318353587460093739482509311397410240995742467509438203606249319459156643750319431624632219497670021417755769723161399368086165477439455222909740831817908169437444354129584725916922680253209216974575795847052600082165982517024715497160836907390814430015966472338266572172564044811373127811186907411697854344203840204056122990792656133941052413393253917475717546399123634751421553932114363061615620010694640409037512846234331927827311278967383484219896511597842671814037199275474204492649367463393722281061523587449901471500286778388542579353749323250708502367793064436221364623306390483506794154587688011371476986640077883670148899594561281586700039430247830533108908615703605440332568230251096722963820558354447756813534876657616939098476500264019189580841478410693625451094273412165726194054380117277128450464825678722218700915693222396838472371591774751271148476044261372261779737870794819474960191455810864019960247933711243386991706047207100100148182091752147462316119175677501635826259352500104520794599923745830010697739452184873496686968737147265145370416620611122911330864937746598602315283342103773187803672019987076415078304545465816021543530762054638603195200890329029767863671785732046045982826924450738921537574064712970868077590959450295303508834115638416223790198601792677982894338859767106331786706173267945681269446365478570980551464396167297755583815380992020411175097265645600352598055130339096876929650871615620786794067140542224140128105423908587955601658488285759441032955037955716975203992068531175534054884975371876806211522735806377739170864829296698814180518022672366133623633039006675424470612071745812476196805318005608212298072277962498035510471764521470339999290281060979413593983839594342594730072056624097939375134659142639075425256170550273515747326757451051930409397431022275362835229149574733909454990721087687799874890114809890110598138443918252325556982422587575680318695945999600380620459235760512398909621184393386358498527561606587926095309771953614853696204300975523144178133522179304596308981586756362971777510567118058885083616474133158504511729921823891739324556277897323895924649807808645334079840403607732956652324043646306774233976510553171013175336345614518938788458564258364468264023208208357367927550824195338310715676927518098022056547613283228624074614428354832726438971995829486002406266305816629503098615008630838682030644092373908686925441093842763305021370706743397205802340994691444827244950762462335837766633896794439318670373966982010610785622722770815540699284804931292287606672382554361575304515258359429057414349132332388569050714325351070109197389321002114891560655864947676175871677197043600983439759712881303821684609728198000658911806533677484359131792333213464821933976297343674212349109856087122599601377306307687261436801872873503656121628382328984943098474158528855605316846978870443953451251307702308132692243386040991881963097851191400853076831935992722432410436706583105318129557877321069685633395614291964550527937572253612582224063596208870815042803376209306009936208106520586966583347269478394980861698468997555371205163073021665562502300880509036998237712308448416572757293082185532790381719095172485151426062449878867053981547981162112167273339465548738730833740426059150288490946622046060195653259943670135945680484784127318302566859782765596810762067446958991774540854285363685392359498690645142637367151924040650214443571304968631821567444095962871107916349755929862511473407980883167186791774070716639552734160560416009438651964725646455354597685721088072024105736191235376132803701573506618702225653032730349062413465649035353138079751330501157484585283453639203891400395280581535311466262924483366826050718951083870365123998687522646842421965596638421232155869613247639786048583746322973430290562996683473643741815248803048549889745910224852126718653740297045879675834557795566676461840007956633467047956096538641192311369062289454141518948349201207961513159832563704576342740975967036881931314219100256720030496129595635232608819067791747869823979795288554504472971246688165329548266188296586914460443811979026004434887046508312433217543304294734099657511725387298069260029032732191938757656534961007789065224199566932824219321456756710184857100928068171197459960638291703593114423041837318539782665348431910994636316558696246059056180122289859103902709318288607991457626798956880950881736933286109415532654468209024840773911872321356045622143303150612644614782185218818835410926201459438252681086883844819634467436321175734168343734948609432259180112598829319886855593847137071397274480639856401962915634813213245019902141034192203725934659350890833395737270333492627867304833429293543652208696046882645115058871193890275571563027486863030967561911747561325784717997651489011086145077426344629082929815647181748000564080223061766913187477218360471702726003674021742989363499086345693668572468820389241073048124053032460511520482534517425218703870154129115049655424067247895720587670646413572321123488687285049589352277923010926430848704085271045162611763964852008802336408824034893334061009033419136331247977827786470804522675762224045319536384249256746319220947321383632185226969635600357353264176554182527437726735851369681253554303130923318023899444349766064810382571502580847661721014805436904303907019031541909506433857916145239544827651912765767253681484159527744194623264711792758999612925820140317121122576250468574918234695017038914666656721699138704057418970091144204432537652869375058706862663657613346191317976128276825530557503782127363704951557459917339557665638655259658474774292201862410676515639473667776194134645699803404824445646088565872426653829700508543015368102546964940793873946376698072369819071578442894312737290574581656232106213794262882725528579883321352416308301154812515166641496954684593944419142442413741371306893719387954709729130155860384229765421429293100789668228572726490015217750201815703785663236335656180418574360499868564525549509298715710984431468752275063732227249488450305623005096770898625531835512698097827246701074458868906520984945531051502416122724984344066531045781393525072280223446416203595578463758271752848511804705933606982289638018613814173785655150687954388976964000206613328162858355550249069757064116522145355430916089492892601176642121486684746262980583674273685943376412541502575986814211342522602483350239649327282146155429783178730234275839050304217517454303113680369339800183426966009320151364646161577162598092938961844440764090401636517669244337661716043807704986704830056994714643760786761492639852503033375920078848835387329062836541855075200257151102994595345266869297695930274611257234301863455525781239628472318203601898590250923376624408915350899042907348886026139459964179756071204409988816859117826572326576247374140691969965489284182595371019440547725531895257562371051954410338224240255166159128934555222180601605928344550876722105262706888183002120943547050060692996573690701073908718235014781893129005464638955845718937050495182140640859406704393481123823841892239740234055500842729932692719692282526573082284188135045320185210253872320413411488662373832863902293627635319684936614337020662104900989478009350639810375443022086534417070888296724618309720625404227106093844858533086252792932851926334494075353649128504898775116417534814550115388628351109402975184979564762850858769324329802195576156802624113926939296159075343441477806030940037738740660893411201684997096121823357930432561213929071520001927931982280711585470665400139899932738440067994962505431940252140143079944436327000928053976113047379916183949211070685201699647651094532876930399539504363795408023480211332709665785832104272156954627668285950288310025104282898399287695276913818182108796604428267765589326790042331198104896513179446441344292514245782804092511004148168386416395940596909513148516825462959507776532446357916214459922454691313384941118066537718730501978984351323912349366686262184028919173147977940322865221285588274248204347224267264256733101098203320163999966084064683521062889747628811348481956493638102542564947558014146890708135964800610972275901512229242232071125295379802688848260937119297897464264063371844313236893630128085350810562388563587562944360015911601087582998018084405188515983501353199385392211708443031892739363036476922681639941148682652550089991693994304512458854255513369243008008827296513734981258414751339035763228218317837077777816495686291204908319627680668107443500541749911993191516300934108266375174238854990259933639640240725978096571523730378309418795766791589295824483129532709812147935359229749709859546751329138381729135302851064233776375576905456725643167684963965279751508041048241103908977298213992356421506572352335969810873719567590811312717859809689696987045277016503194029926803836733076236261999096871581434186689407062757840825426869382862820859339776830389020787433773483121313476275495494617569338803020761519612600236752706517558512482915022500604212823248580211882427840284440450142264100933145317647593900812976530478187851735470000971204900900799867396851132012127771825754662114774925370991943997372201768314778658198362299992028233491516226237853912771220067853442882890766727284019000409845454529773225456868257778507239014328773502468951602614277076477714443691683389317191235946385405243813245685008491202391165265300526736040029858337681076840958437073135833757192347462599303717402233856327643435744403767960028299739792542894411157159507255705139649306938651871025821916851846005788836566916051643939831007594651760954398317428885300682404963648821373981995228093800705987728192951192853805119634619082806362112131243928191720475182194100147182491462846052359932885483912881420829301044922770078042288710283828426972628509218320210244731731615683058193284836101150617094257489920671520094792886406655322192692899823759337637666179383934228484152975971396657360786587942248631475191393379751326777538994200771145336010998902121097036451613331015877631582769450134039656332726443765625079053631382492693140003060386453945089170236477932803660346117891150122475039566719045969345944437525020277171229167637264011523443877366582530221009771477233997923354756655204317564571814807002759218708076498736003962921372576494904065852033353679006720872772629767319771794311350623180717024618281817780373871001465030611788276892297578083361601460849459454419618744090730574972739374706392109157002208234961422787901087660513877602354668457338938441802721482016184151871001061415742890897613923375469660057888588459227591780646495124987397041328400396254893390225191128112791491749371852719216794684943055096185983283829464436240853222394077300637741371349400095251961698076458883769393578478775736943881367456293389079296405687219772631527241358680267977888282217434742845760267271961944658047905333825344169526048329868850849562759974248310420800974114278230407435504199561565966280336983069186674443783213381989193597831349977840643908922462124768470844067528950003000846767507862098110475017810645357936674876582967532859535189972942490702204354398919847215189521792177688281927909569729938980326776925573729365907460666140641878816073856439477459307314575263235670515469093013997365745462010155423219100889982006106895370374580833365596214776087571374455878542643069103133555373556999420828068494789576736293811842413910419749951793399521438700732514957367884196436069048049318616623993304716284299366649157644719657282363823415208773947746264173506561225673816323251857406964356685138240428013428647097006017519401864553976782687125162559364715926879960400612987890571031338059753545724843899726468886096795607716091796174615704394801773529313779980461181515292216897424605593771402540659803788781249964324981645742490737673180122818270264562476909770343997826059236310578583970052820589736690035711830221725669441819852822849371559153217116340682524253809854194214987680588595844855638851281923908207003552131770653915377223248722161000462548940816799359591271393127210805346461038656269675410292121202671321954799536686027443558856610070356843721062684454446701100252474415839756173898657168175241295706260273392930984685172251904048150057296940893641694840828115638917024329970037152137868651025272341656924677457215132179586616324034100463597640375252255656583875678970020299177210542591502603033733631869143353137576584434104228439990342519735986477047255717390200405180881298630881588114524206251261579287582971661405534931706521891087312844144155698764914396466873987685991064484445244944604314229706020033173377727466667132806831171695004234478784109036120278797762902459275458390601732987699493691047269551815510457176923895622293061884142027840307379807646450683197477474641499800253823645733985662849231568577896615484794940528942793953164910826063303863715549452835023421849022023903309862503911243808890953505912325536251935622066743845148125573868956452096582280849991054414646908278054486264756176089972107095310105330610261254915356649730669166523340849132266805578835393109925672012359219741805818005488735732686141924180676787859131551619631560677672844027894703571863027837204101284386563308971177666651376487148953022790305426764416926359002571661041891497236732381786947983323670851636220249588131036370038994352920335575043909085189475197645510957385661411840561712127957326950482366043446076508522651384853639748759845665790197266407329219706088240584437861333407488849324613354683974429900432695415162663050754097142855569247213173541352509666355995700841427823330866368963526621165742604025677377438523391008958505107889591575919926010970277299998735453793617829042611320020525290580582251553971347988052688742047924914042275472540440256108016943488678166233954748162676715619256781068813396424544223669453412514901899959093443050291089003847594507288896266987941332790317143039183883273345652486459722800347240739755613232223040747848805139122640671779898397028362416145051536732627667974773670474728291410383600446068221335987944110993115531742840698986715615229869684354820098105023943776591568506466106338323061045232958752798997031575633361938619586189269826068572446571149586770743264272336880567760075073998616017692555407432814918037952028369767959459380944311716313318844208830626257474770481132056121554850615602915303239570690577174701080490095135255868749244157063348335682751964797599021110969839003311765619927767584193016931681494192532414437370422246188761914986144579242872432457707814328984583797041874907117585093460070602640191648483529548928519609958589013605587185543551082881940331485447557501289074704993804321071265811959139765823384774013813130526489784600733899710227243675471248716345257920431438674865068615624745147800315516091554710725958178332948723169858634429299305690517966527684022162173358105873756220092339714433431125857480031676643876892192222132798287828731157395592801004327943172095064742307245795983701859647416492267051098482895924237985711694156641432543891826712893543539059922520541878225343868165273985868843582647685488418892048886585578510814778254677957537187150881008086276977150339515925881172711506266394054741882792661785239268669970975184883767144035568845805016698337838489125987147767812200865229142701972040967769798855106310626697071111908141925378473290133583570852529905872641129119666468473319524969847558308296442478976632013635873809153596831280376585727568957503891547394141692056624586782180492902742076526592462208893028917127591498394202727319433404618775802924316356897740814522729498108222313940988275691695522857880640533612407507106199868686951229372497136249568173767730940459426335413875541238243374492683196139920774217129222250511904443478543722392701097364269049421773032351754112497353089346593887824434097256563674831778811394645422492446151303564816733297479401292884287844747413166165692889956177198494837748152472220641375879721723365229559659370252543301978747897835945684947760043782845954214195707448415952767111767294085352178415224518771912781859278949396396707476500148905514922031208866808713799111685330851032996395265028588719003695450906700673042658441083492541131026089166753547257823823245845021835905110301896822905926571691348456224931773777370192920303823932384739627426935647379399453423694780879934595104189099848087675254962266884501450610223247912595557129140423947987404275233409631420934946380727508930535910127450674421383586590109346424944636155138977823333357612161135802905637061855520743236383937551914262572278630719091817340006081785907791400559624830921424220840698645213861651904478461792366029052366575564156309248010026207009981519097460348247904811507422431883988109565406946712892410132152738815113513681325189166856738852489021350101012158946628173364673029037149701062505505280375389904305364779571687969548235998561646169814660576917266411551493678887412798515316173018577911679077995307380445549248352934081289087676885934614317170595880673418358949627160558013801864778372148268092096879189253460829461037301328961452167794248740093907750433768539637268043259327916255096937409945182584066045513696770404550761962316195062140059866801138978337341839001867977654994750689739910862301700722003948526725620929478863148615414159312838106819085830380688616730732293648101149266308080484900057915544315493868770149221632699760345862425251898953543723681679249489998989378157254177912417244976413786583216884831761882259770929030614539118662278109695942427058087745383016961208316273551463354085824242343863149143181341482295352888557341126510118867649052865061211373673537365615421285141197567773221181291620320509591200500478972989969179628820157182732862894481096054072084314981780136453441433842216814465536524746356636687163316176349500568820155567409642796978017668280578738483911439869753215067586217234436045402523842466191580551608290884133690890247220887740433958873397059973310234581642823682185115622129167079656860526424331038905200310117088607674505139436830552158751808073193976454125556367682503236055513621266286984293130007172205650469047747200004198989562580446663550468178707784473014669638217218675059443026892899368356103687380337749588138185623239510392089009299395048573100152398629838244727264557967265331105501899634945921283128443862880578134190921111133392862739099990554193053301856027417718689704230840967717710330632792362271207282082591296827870856662412060555170429842701377928707022598000751331922255779914332222095419094296061490461154675489241267182648575311281154921418664459152032132130559633401890140113862070661370529290671681414224277512035575292200258915626977360012140135282088161382439177846150616273214930627814755598425900020266004003240630801906153070789927135681254534952720762958840293945412821542343852053432269122023080304558212994343642257132430913305239515455291669697885264002200088366022074186180803039291746553063231260907926135994501306466904195515770542913485730009757640957708067338655856086306428723299488029218514560287456636604865157110464128827097910427687932028661086322117418718826441931889465789495204322538405925798052431124230876593536986745032200431648777294750467807975007345393529827943192807765372467590354414797764584833791141645054639115511301531159511983407639503482479372198697951660185894576822487813579350853947970314401043154324360974047515345361464240325462987015477353130760217678546581979116705523901659160742756622861608737872972533347264791686552249153530723394898625277275938124232646222634323270669052929803465060605617541272518187784387537761428233546307295554778404380524841594818524175507034491288950120655197755449830321723495442289600190348764572888969150886156867308490467409266605290887769788002183967762812702908702827822470482796076934704543946395651611210535207482380852743951000311924278168319161110359101375593764780981660427599138160962242477859110416268530398859048705259217996612640079525090808324811094727266219348399235145714029217946441899742566139747451200779613373366374797951555924818770163080279346253059530525834173583328623089737178610364677974250032143150201801450460220128974860555310908720271590521587214084859877303237337053345699464001532598886641437928855395609626256672986582253578123186961612558362771892225092259575006193043990507257169364659448024733996001056780522888471980235019379755167553568399469793235609725093016484015400342439656782072353272670266185182185991327890118922143578189940779179086072947875398838498717963519912725032166368116129859383818386187343531729043770719299767223834352872657332321643056613648931366546918448511831559291452346707246851493085536181186694255463854940210385600958478153748620934653769821354949614147103400327363249554890565289996300823436768965083730764216225877209146182382729739777449906749200803624185118035401324397903073121031998783139307602831690602251539193062065927677445598197345607015416682743015859399793809017281868096980123437355624850464202059816106866765649046929810835352029237469978273536218854688517029177999084508003466461291857121550239373590330686078143945888618504011886264545420503533203714349092167705387133132366471004150860996759134553225810226815878024325338911976385537440287816983752566664981908190959886669222687370632148093873992199069242494046115048159540074395936407166883543225396849846487628344804130692150967499490069197657247394570316222359021514326204793658252318907414793249648585799479250745444490742551302187955507193562859026591412366045178252905404031765093479489571267981725219572542586864296205933712436861379854278661197188784876714374404174825873583594370997187509426161372404487269762210339269726445377458712300446503102072658987184573009111286734706146756945924119097029827862102456888435884403965032701798766145406470298055001375385466720837858055035751423437365664475500400185087555532653925097000206543218585314616758369081175417695955115719819735654723430208694656428846828926383750268135532123774509143530547763164189962676463592167791666607273605648207994976036238425315851504217076446483484471529221113025159963590441347413387425286873003462130703983741687103208202010815483788158028296560993113369346564381679047908993116507046640386884436840938726944795158636739264815770632325852416484309223172940300645770905530988325117720370389237459755104974461513147775468492464699502782248251190352441903972804761092274339362589798756827215404723050898911327627190258650990974930712038822135721134620033780306368862586838695037012612396839307954451564806508323915330254963519371873208010784583156144473709280981655049445107511254834962406622012894558557374140539892696427673692975726221903086767145421975017147867001755316120714609178525999598896165115869317710763861780322246728575407238713820473809291152237503383543850856026616826803912466894311232202812401739969980270354642320063670397050355158183344191665584487024311362976813996086660111612099645709173179403101753196585856541676351247171978213270092901441576921565841251825525459974046773271125272947935706540401617314794090426285371789487703111533310140632276224175510975208362760967840220173678293176425531468293863207723744430702321273644941040049461127342297320282030641519361831014391754677289528010351190255751946292374427116597721980522581218399643800484759753495642331907521307474057899097920828459048676397687787556121474562913201424148172126608091709723348221246873456654330494473696346631668492281120034224019626086902708427733359031644847418990342655685239995424618066307222117709798035618665856899155090239507821949369268734245162162065404878916384048420581764047115784704960103304307532459834455104504760892620756925989550647082089959128274920832003271200678014560593208816321621617751865713249723661052349650735719571262131109684005760687756109402188389587261673642370703993294198163972015063771849488560715935541111266037141896320257541932650403003829319954057141071430641728210548168334697157701761922310776398779904951555153366895846918978637010897284112786355794249721408799551621705716661532811943180925550062987650768236385412498534697824875371761772483175322920990267335304500721108668288258419745016591853992780105736452912202176508099989290340743094064801754729646073963691419978869676217301361004854233045961521163656245589865978225182305888174126317888222539788317101197232877806513672015009728905752976691480268362240107627634819263891858023650046482877459120742989171466421267315096425871159383196809629340550883316960178887131291612459847759590409456866752392095171206989544538767285971288759871102023220421186889865603916237506235858201970668190677165557922579272868350374629502710992722880408795218801222436906182804112003561426479173371964656255037317254040493100261333234900472619841612662247246983484815049797806213500041629208368209593569239213504461329161992019294019478403601781071576946833813554379727157959423135960249614188546449541451258918388866219992429019096094215903623451587521505897913900499993386816288698965316223975883454420926730279708257637411927468869355007801503708886418606371329466734016006580219488219699861788754256381078842071422961377780536007015772002206240007002625415968593585256344927198190258488513820881840906160313563654997933486679354334741667035859202979571987981895498869227378688267479397883668323343354066820418353714925577094850143264104758439995129889006857106374046894312709809776710662235968689836772429363496845262900475005574124389875573152383483723885429087377991310291464696279453437459366549833621858136487636654842720377241991916391482898733729714634707529900171143257447467019748390035138912958237182949887343515898578378873039167680267257025926350815205581575092294625719530402716494265022464063658892677535925280236464869119653162573676254336058187857835142829155981643276762367924840303591679759007412342733090927418125797193292211798293728409066605660373199167454390332991857525438439692894493599788091698098377376049268828752889074745403477381548147689382429193435552257083207607450675016296978240888501265069287381996218412523621534991205966296013664468867212232843515755837366117162751567515181296004292344189420882882386902323034985219638750548740769197069731830113872868806478433143434048692492305282647148553808254045610945148928091401465890097307950985858418478182998288721637158071915587814091111200887610622771668130631328894398619506043879263782838954934880830697863397222050760082548199324076748962233094924110758885504923455039232351162063802627035746779360341499107387196823491249479034374718691769134551108768384989766603029911073402833077225034145721961008264852961298512986592905583439117117774473770545656626987808997344798525272832808293649431105940750693798244560310438985664734539843080934313775295455299713183726369253074074868774346037905633683900579968034064726864291518740863771918341451098993453710355247995700397840970101294546660174820089804536182974625320965018670327385990715870079020726519452884279135474356825383905148769592431161539192701780974146573415672647373512142905176304080116023454168091539138629829561884576990611890180410122495890034404187594849373160951928280086670334562012561741772144247333054168575792749985924091948382213994387644177891186888837549653556637455239605882336133157575387668304063633108353737601391544620388952017798796912509731049053139872783967793194142731926982016889691975647298584747821098679893818968529630002796950867489520549334425973008416183035029318828653766692653502563389341101221605000415945266932785315905274353365614638502007859762329323018162897638254906553065145014056172599919400919823687796846451050939477717959753600909376522749588594906441096936457674263616553599243439630093058565559868986989151838066324083858985074146746858886216814433724203387067191848887440204228943418554921816531010561563238402093310016605425808380981122963739813153817055986731961550699519918514245903921818434567878739153813736126631283625123981956464682344747406314925050857899796767665084983956682857886482357012554109805120091937853333567084759871599520947819346801337475350994153973288855250289180281170150693592999949735861417603667218992868372322551354751249048454143394287738015036983955634101315575672397755960363647521867241715234648720010268934021650390188781516020946222463434342083344460326227646265908316320888145292842721120066895819668443265819568158516834366651542251059438830387032523906727668219904242117794679892893372630267058399819849060880394112569940898566874384391906133374856609274505538372855190321451659982104784705664856201520481353618616611651928544444020917299699557171715901674651176362542138691766930165411242440817621769020005927676394836737582601588751930578650025985367003232053532674959353931076796348056215887678709188187782949815707216751387755733634092251529523349357045891353764594042865682922074031050458100176003895019875093620106344138021363682306006367886838435298889697210310336728907972288339537171337822610293736073686452009611285251494456259343567091107311283061143400387173735561165612351961608546848184454112854214105210358082860118270577822894425203483291377229952453547308122369198716182179176242847013352211396403434655235846421840541662496248596622737126448435528842513715735533789898523015331638999232824169490537001119935998182309639910083554829642536512462287094017353548994976626850430046979038240522297394558789092754633558912533813493033367948727447407194022381686533443241549266069742847660885783595235408029762728238167724659924153556845243129824082427814981625009689165734392269684624822445815742961200046181048106178016899608079043182532999736375331672725456300883739978119753668925107338619713799219529843944018325765663295822004098157661233399345005430346791969050912693930531444380068104093425638642456246299669340228933072913850476849095077174488784828950536838305994527830877400970937679504288095341689641727100596853063627016814617848279427364607820784479283791001211783235522794366053736168206769703948434196841800220120963946052591076220337601176499979122472071713830115166247928171434460035425489115963011343068226508105782750174678113941596622959899885991325496970266381908978901452983017224661461625780989737909144816371278019121131584946158377148597899701863628510180567087328451850637365361787976535122762245477976848368101016094205207100813772379105521513352526782193517334158969472750335258870768437028608573729319404174891718768395946021039558330291062878558725999389679405532875320674268751129740306972287238953868384766938089812225243067095808984143525642328713943795638204995179803963304594677127762241134984823953438954036614014522441204956582786646933888861688782184071214456847196684911526309807023470563915418160887609388891116373655908573934821501685579595850438303793517943528256422734878274937721389781257739777571404855270283375546629475654736468087339823474351503392402804715427698724248262524256228176732475904547449370763007390497597348736620115823212305107363896864052549095499264730798122726932119941678969996591250157876353859524960586707257824448443061537548405013700988322820638895339440821554848495650871790486219147622204660401902087441491388294245560470852205568513065915511597083817879507162115662060545791151385363144257013750434692776520363452934551709734858280826897104531279547314172680857939205406552597522107511470166707885718127265566779285025534105053968608963477145982202459485459397836452002477823924977022209375429598092381449408128010831857439372157605987285737344956885945760202256294025399261105247035081356979992870616991681744907179621806745479702684615832255162759796272692170963016655363188658991375057821659771142280155854073247585029267657260027458269790877693265165001357164905490631399301020666353719815415597860827088824123347049750742330110227962873043486376238576631617124656547868228376277850399447494351856061999256687695916953088125039450850588192868032293628732868041657692198047519129819041060015749573933714425178301501503522561213434065717040146249571839760742881116232803479071557261112090506810232025999904114610780460845382351802480131829888893261897097636445657446988973611702077373800421211198549272659605530971294777398138478913583706141755299330807300311378839210978861839618860053097207045270953412978261671804064330316784361391084792063420947818517047216270092309775557190776515992872898581889182106693735198429047726493954867179250099619145450392934856811763551534863690021461462861720082278291946259424225849324783729942995834009261030296493424411862333874161021902109765201780189005120817939155422665589323924095855823853583121580057844168740241463304059894689794595126948680158295417973753353263518046635374867198782747576617989102542119307541768779951626667563672255863443673999941948215111939985750159426019461951882133285168045171762886082079972364310662649796176692282110312530349314573419420753519760504692631082884073927881721097722204222624945205488584736534810573669016033570236516258242720788100515278789033690242354845376813762540360141994073755437731902537601157604143627948422409856557199838113700710350117852840837611958728302114034352801055021359678783390412099945680038920942817280476690846401550828547547008877400395129150114625132982905022554220649107803975186928128718862658612351353001820706443576222103240656258728704309705149873255488938458135870769635030093514453949058431263560758176245316638080056334181309132442755442400981733396720871443022343315682828416870260311983492115488874547660032550604747560129173115800504865929446359705387326672256307633759956295629276536018861873468552163987237052935845476265112013862418820011738552184630529259054199136317915274348573953897848446652576525194812034697278927198550878484270161861284093614609015096849865180894451096776154165127713296083167697686919934809158164587209548327573669933813705533280057532080898380777070213257431720993588959808347344418403382295113824336670628217167671866034153771629641073682738572640616245888254328786170872855305426347547611674425109243995548882609695529955074037030370604899409619225288228649069287440728829882444908265162012186074589584720268796112216231155355620832978426565957967694365573920250505903781657422661318038610651078356016744828680179671355108149195943847501622449148227161723909975877768260015426630931253496414735293317711238895828396168985403844171999033868865735945300993203908882158803214510942545245032852994357849162512452404153679688860967782853568924471907467929396273882343171756376479715428721222834353581508625727401203605335367798919641843015271313190717871012419563863871959524303693716396356999191383452702548888681252192296741222749025351756634255845308870937085737170355349603663966875673551134982356271611122570073441449664817524489864738056751333182829690872588162833880373500236157324805860376545707657660819271106703542647228190578543563273151382572830766755779699223940949830890233026858973329572204173215150819695462348947917244572271222321426784658325239020150203559196730662474204493099959614588486700513977936158547950777792453630871353251699390441357492412303886154893899713495244299198113001386482937008871827619421992185336657667915550970078612338213227462585133479238853409372582402670238450302191529407838982280800126673726914370317365509571676835556329532287788390496348057979932892616484027252234451037422036818931819394798111677898348426967085973723752974347542379571819355215616939655650201986658306179895812857255669616465786762850053744958379104436338815417278936789435773935716567748968473654121784731280373827240303347422750257349092940372023069380615518861089316692273396722229082416422555717713363543653000570892252299217634788678132734534823282073474788900051987331388179548022324062385103737455097234322636669162188969573956919084597633240239166260550518963411566681254495418371229025277630621448831865432171313854407671569454576387904743934441975159929179066910161712374501824610072206016071673365323827035972100364129915155842611177430210086820384320337979483237956962580909076389768293718916686984542407694912744760735384146255098442029933567236525571675906021170247605770233742775645181581643427879265115505626799982897624368088135193723234395262642927362084201689491065658480142003072571207449961269901689087653114213575606898225186958371102356100195197759993048131819913561553331964600365106674881274946269432093064773077998658784922163130421685710363825404991139072924123055300653097224966781210656414791934806726600787438457896773470897246663034461376626442367782968457026972286869758171088429068560656310945329833804005013869726694639851002755010939268191596662822318934605237242083159533567975650352857178899306594549476221117879808171224020570857698430895900196308639461118618910730378798884318498796073441552323788031965282099360421369471877470659380219810639143522300433313251141756400980505950067021585755377343299889365623725951704310344812109313609484497990530086534476092227995853448341933358196063518819557565921218499212355642720260222330103653214600685143319845497794317614909697341659934993811184923198220041283295455806624455624274140120206720765158282823708344790675984217236961623402746266432237951425237610961251946718679106905153802193321590854775803196910103986364577493268132458023293587817910067624333308221058310996988157592123655275559349093442913994161885780634845641214003337175363769168083318569387763152650677792463588269935205238282449326557215405862639233525633190131673204008430364034992550399978095805556441081828534496447408042519885041035957094535729327590107142742620214639147519916583954445580810201751071182260232747774729997210681435340123689393718101954665868563454710314906854969270386516197320626000859875803319689053922170966104012063120004373713112901159135973730725595608041991686493136517528884219216173266909847682350274649798782088093110918633747010011118082686470032060249851318898594837721055190877418801645789579507333311726976310959989667620110945319353635214395563509049863246035985285898895276650915668893299582717345654474124396777555230318251198305259036880121825062265331246717350374865737022968454455758561091352770308057188104357891363416164361653941327411856306214470052010344342096787375597039753458026239961348667602070276835940166894323387529523748857963682950171427535406753635425506420320583732243144477989404932328154241547014584170652828401533558682932678482210490675862248027214599810011315103830197046758520973051121993694101690013300196154477970363090675148980652335108908383613214521799603423054691978023643452839549394742538670672102770692595593440290367147659128055420584919671534169927469661690338579277850598940078619357017260150929565486899571858105734619669098573369405080166792515057881811810678037563282472982842208367689835164864040598338640299494460532296309107497373215741624107760213622261467385483361347454495216178984011723766315595774632344708052693852484670863601603702232171951287606288776413394953814016524536030731894116491662122169159484327855719855727982080933331214034493371170880406185279598739295516381705294084162510101002375907976874495922311504254330245732366757028517940329003140346100859634655877460665696363695421138596332168651394814018792970979998026131452860811421599616281387978749241410204203414931287016315615486614200496282643367606034207373326090203098936135592455505960749456614906211202002443339288260559979473019266884604164113852662294637944284750078480574184822291981526827157539823639585858350622838851537215279415866833887891840692731476589409027594629827633392473234810228008557995274029975630670131785992633165564514395240635194893305190283894641837232820309268313104301131738392828099841849147748815512663253739869579824280433350037924851774032844800946201289961044436386726535621596672900470068830237282855956447876911636301729678855458151860754959695638099162403789615237643203097268927014632158168684894521910270445889459127146250967142499954943542028570135436091473554558754226315731812840819271585859787649240754574573569678068290682203943081426732276750528812267950033974227967793300532164135342248050636419020303020136772508124754271371375425818142229124328862205790335482656249021095792239679842234276168729086269256266156806538187656101525657159010206557708064027329452687410723519967843894520880444561995663745264101913374952329789166137722135226723619465100661089010993130480649390840825572587820146738033967710527635203708920048946879141596620445039013389448717525605700648224573394270082894297831470435041279894458997166460040282541193542690306747526817990857738271260533342633549260205624618576913291961830675476515119478124868916572776905154957937046359442387309945855218287585742163860106515136124884853934494146063654015331115567488327630365428838548154455110834087418671038959024190578426128884937806509199469225979176146656901889588208904241821895053030199059016244419890943914669260304979177243251784352782454844171827302392889934256284677288728449555305927939489895140559466840231251298665132722049117289571398242242312516810535824319927757272427633561961144877051637274790971539548082863245857590378713293108649473953927411423103182340829077038204749362367923629696966523427626312786132572761791981347708224916310464854320648098319445802154224158131703377284672471163650573738534542883789248251277447222738637668809068954225903016644493060062719775935471076094638016315489590395255287961819343263218183908639928184212756972665117743716831889171944893336523172146465938330506496653021627541877359067762821167133750802818385833624825307823815940719229929452308923720806527642280073289394580860339560877201351393660324154149179314115903692422141952212292280266870890683509795901211006315410319620796596133182629331047609545905702194287026170851921566105095833392715048029977312963421999529202308413266731361201781906204087459556960662080760963481698293687790605575015918375589185735078899348107598528044286634625045547368514482478783625440120676568989489264344785040004512853099661104327584940600589460539067331460152023102711934600039657077755592159783580281691650239470222766835748647715922034301752068522804005621845746029165456756426513610488185957802342844090390049965604742406810055224579424790426110552125170983960565254471388622891696240228293261340725188206483154589782902728370741258212976055967320342368466996959185641623819703823859594045581971904259193713248039778787495644095832795864177882140357186780095605113304628522042227373776511918419190506017416116904862561078841748834596036367577994767535167503554981550535796713081674898125597369331710056720161081550382113462575460879536938211991856879994202741349495934849862487580469427235265387093948584453194151097481635420210443776809062715506637352319005324809015153223266988508023317079020726506828272333507675495385702670720918355124542142120927728164767995359195565328618885072717814196484754865083941412287108231523319773294589095095302470290900202862731139428145529674349316816687996130157553982081789504922205725091296106081291814064857999389255464045394045506342240590875358277817199007726082120115562972305169144233807065176883809837525261955081104814296683880709334142220112177347948960404008853029309207033771848514867819802798796291503700335779767807989504071144731445903402987923229465668026691080646859936266745501024782345728302783365018735977030821549957363010390078201750859497737723490288130100113341234414880848593046486710582310157267399496535258074342701844288556596456611905660173976630394404226525509171538878597830505413852783835623596916813745610440467548964395836350175135018326910409023006643820378186614607086286756276112022569656735046388975078081465818177108802995534107789982419232254310559536737049944119753990417626535790070400040021901873015891154566136298542873014400788553324528257631494559151185720056376287320158439240110863904549713947082933349374454423650804063550942501961005928947983254954036151868816790351498361300684825166248349969406491375110466070323798597664131976372397609423239500135725545058528954679363146236287722876986630054395007490441959302351954117001451191464048991369081203636312432061211994285000825368610175493523857447619859522434831846851492966402324902467760851776312775241041256139421115226372344382261778448386303174909592759384026435883033106150136129982457698112181545079266713144690418139119738547413192214591706384468269364449179290918713096119708766512899765405555380823337316181434642235590530875821246720807115225021882980463084567499979239782020008048221506517200024172592710577783982351811396803295955806840990837765639870231573720627962285020374816880662683704417744404357705237313814812692056553774947046450927220751527120543195691319150550961022806402073317827466659048937075787352699399907847212759513583598204499094518456352239131888441145852323232916091985937365209634556588054148484419162083106900742251996816608560584383324106420149535120557733102184523351685934034594757342700725300075543909196505353315116797306080966570527915545196298786803835536605266918408907959250460983692214898232885729371991064948381537080596295237801900077425536987670422301855312664232992141618666466303819810493718193207839745440167551659946547824471966407399418214510615245017813383589622006504530341817311625047410266175789518822523651430812648659687630653442996629063256270558241507500253398290665072707277199387418348244130748396748091759859332779286762989483071153920702430149531829267837748401074929197666316144846618232779627220392418112419001746024285289325335017978348816578106635253108486436337336986860191451130502762893966969918792902897792661559197133690451413390570359007326838297302141613667793321661015167928224945087624471278759755982568079612368172008551158018879132749140724038432924702526097771622672828946497608996862163945708601318055945849238877102498399402687663259186967931892796358480682743467338597735341478784205908622628605754528123208367288970888495650128372280231793883352668803544221190807664537432813850945381699803187257156303496741177537493776241546467585115554909873614163901910479905830739240991371108025719177228738394901392513000632391845624557327863751122911551632473294276030748486796040175080892519812261344620745870483235173601766221313995373289829290979583393867094296254923916223383990666291588318056155293056640047682974943078731059265064485943736320842817805469185011350195524508337669459993010828861584746430117297676946070935841677931816460165576750840729072868423612469384940908762632679779153703145586221197194631476718255092000202800645507691802994545249519798603946382397628314931759132041961741167284988522787940654502017688314173707634130252010054539761018334334577889995829826006684000183282477246800184936283911878397049828686393472984822360901916037392085845861379854686241674083850328912585062869679637027490463352589796176444551475396461659511501312445038779876885727934708466070321479171072211607511670371006649238794835502001501893945116971287777068435126035500564854204879965303564313823890495040751922965999660406843176324704073263571808198167449499048387768656990729438675790704176319916396021715504040432415986637586500716955337169731588594656402305612251292957174937129472826180738386285683762610145401016731609454637036131468973762984297654280783272276042598597344498062977272222564410576402616547396891648108914698615483157956650070186581514867752395054483715920093660493248903005222302738775533413953189569661851669987058951135174976237256205604198298533363172948638624297694174877738103903272054274283714042392917413291999756635077465770904643358329211063107308072991380142945172683456510199574092681701348212472128405765922693382169879372880611921066477678121345416647094669573892906575445162398148488223318527653368023948321391146142175908282816124175305904281682966940127673815008383064446461502024818245783093930475185619163454418035878727665893176156778495555422032501156840932870546130334786584401056693018786392614428229242952214155698234589396929305803215299307615279554219254982585453803152460784081668090542327060278770515305747122471291645337840450284478680846011616096855465862226775067701764961669567763286659174607356337330336229552591835795071060350027306798859998360724409616278807872353354439559047814109457041363618656548413484858993043797665264526416356054393271194930837874058856526915758489507699836037651036867312815987236819209434823156474166581350895129741883655421378898221188331038364579216587718145765613531090872626004809509024475537840137207749423148260298989204723948466440634004440836913471127990612258857371928280196761955416820576702448078192819907195423462092069735667588547482247463761220761263980298316091624248695964877322654507765768425424941540850109250577961508361118226806311139997919707311282189512657327387331506745939406346428064767940891947929307652516034252340485877084806183975699214635203592886504533532254704635369873732055498824640164044641613302478322095846564659560159620142061217077422876035327520159222564012265326697385694322136466575968472342529866549900611982323375830764869795595300265746802471625389155304587959402679559432235096484353608421569397124193376843300559145415778433931169493147707697770898918531896026424755073736427363727013257319083609066486028926810707206637267261879393829674204003552774686017392560695618541824010297984074767062631484068516869594436956292866696126066149701574608043106372779011304565201784660720240817522520972693620889522989741873398829607836164889878310905282993059569236181489919963898924014175069986626273260355027891017933485284994011789036276111712088793217455368082588887289963547205647970675756028384435297158652892064369016281307134701340653946409073442605054842054446838937701788718269080736146079406283763613626815961060334851909376325402952370861337187631390899327807211836268847825035074166671452947195827311870062831489483501902757446660131917479882322289790923689172680427889967771718292729375731411456170507056064062668389097427712455352170689028615965936600013200185740550844555562191454070028449146436407164898372995351016303074598858010327770048643562581829029283888043807926671981484805886121900634445287014146994889206594668041984597549143825538034332107120420636851672404091917355698091499516457040951371045389851486311083415902732228981948463849713557780952662943703319148671317154436952278961035457549739339842414249530695690267530907729740404147720981624010827871016529967083029756988031412507088066230389100384457602275603442812464469639301938182882027910446025952118651323407471714962958743017442319808880900154020606445770259911093738311521320257712445133279311594296149774450621467978264995739825196381216521434572642323825603464241470137709803036805537808922502039101961185567031920287024877124195486089221005237749000626535018731928480349658309028219575889336049411704925409193875555925914360889809184013346379107838711833792367332633131116954485245674816021719753049625817577845157532383674106134150884736853041207476627156848885549283391818367839847843134591532328772839291875788781552098770010886088006622046000397314871680726014433350980695472123058711715908004219489195511249494417467235936680627424329181176303849220076090722602072123664470251839275546543088375072123399694570486458184380461441004292671481055524464017051733540078401139770229586247593560058441033527097543592012664553772310181217799713853813788742485560321381494529474597272025740550804423879822300667079616753864467260261839887209005372154278852907108036525828999652997245649820847267592085490751854749047771499308144508958689825876606398138289850690984841863036202051802343858512584605866083146330142606987622140051779920268196166364705469778695351744975611572528206299686159708155481914127300810801541456346785278546955881996767642197001857944717889432013080211135916120346176129289902802657492850758045052435533353554394406860886509483527785943059782466327746979982833315994921508886699822595576724092050444002954642998470246761468303419690318941199201889169402026396629027745950059314328181939716646905342630500281701692460004451995041856893403646339409809315312089097133633796120439997613175130871663731540131266022118027211383026156767461112179732538437213483926822745660349865532442823362623003926359691312914613535955723218246766411256535607044894229111711743028817318702067229656687307554136997118456701031493815158581312247327045903393607446915164976341028277718727366657720371373883592467040043359977348968715258659587880167352214019657426056252311672675478832552739059555977912139778418588746284862154964805768921668283933870079419243978273881590026263579249869728996913527163842856635630748150553385124649021592544342530337777926578705457562689705854518177355478072703865538389776148123770267211341148114332042660923678960730190413886502490596676529720447790526537224402053683007223073967363316427991545758347580346674729837702627664262942691476508639549300685112168667821614611071668818181941490945513267981190329189606631966184267953021998491890910618121964724861126461945976267492091404388949474809235032828832007051567167890624107985654515476326338808000457641305809126466744707560354067972988748570408899451634352810604896333894101830300190959410287073292891498063695355834309496845918105006091253135335546990055650607790731481660516982121021632293625549409807668630229203868983952761276613457089357253516116786112539423224224829642545116261062253137722041341575838743699310006924967172581486104219609803226609457494648750269896027320557858505697182367345698246713183804339421536138439421157154788120447749855796737142012910177434873616545730920251060167889882554473262503257416997474231201254714820599668031282602958353212657718312325523508064261087038443709005609977754485699735442767629236290227575856349737123783428336442973802071365302097275458575164985783260458648095261895413890178254755452175327470632524847649794866685064793826677992388490524622952247593015162470581249849812657446431856962299056439167786484868987037237626513430246314781921709041152658593178221369379302900043724308892756561720259103155883893013145596176682972505527987327645993043680363487243642816122598385279090667752368487953941593311138290312438532223991297657622350961452797518294699491517202339043093762310114814890051417145207848268783630716629464074364558522245279905464138648307242110064046279034624771342823141432068544475750778520492767669436596355348550684115588816417549826815155159558613570673146281522759372542940229461233510449508170582237599867501605216707759479332239033584471034536552981696720873292927914524821296939059012735158899421204337902814255416165097587223663599859659538050711678627117748530082942796736494831736968958593871240847032657011794518781600443639351413942784330912405451912447571385088033309416326260040902895677738120437245602424690997838297847429886003114882786771680801918739606383678396470930148883521146872436069184276090631749421398912757041165037886113781943250114432392228308724848054270230940611320636441218233152929293326793295996599619624307465589460133378297084217120929117011041820160866406566873866030526869124236254460393779750127216457152872034703405730094489519701647055110369970867210646056442761683916772484167177596905136455328358740787227885339726561832576156220390745490459042564289802176003907844140816101366596269105267403674323240077331256647805370388207340961355859484152139651684714685230344810881059142142798631078468238760970162393778954416252076368687377445009747217443166437767636139194023693036929068712417348435817032170666618098234743258904207412006359596039236816055294355388979228069033281340587294265364708827559908242284380669555160980866212754707491981186785165008342438688684735781366655465842136121087350285694404672310374107657500634743319437251857864091510189180921699227284135338515667295888119267397563344674149941374181127119704825887590972243248889085234833963886747597591199502521526463684552260476426366770998888390272693970443230533167924969456274411695633101154439019942065674133892989772645199829622196989596525833901455450405970326448373895276298472039390574311996566193713359249419825716140687741939956399446446575058568137558981240327614785043436447819735824927242451436488015333310571111147387738768140571566393827493769745166456381061553785169208668699896183233102461067185851845119146083269022050882901567089530793761013915944203206161970703044671330470485143555608103227370193021693293805912888443084226888992840062216929313810994566970557183831744022666421422510731237573662937881930047426882623086675078001661846907488544329266751828869736802358292377276887528349813917418263939453834266646942215307000648564420425819028356298005060134663847474267284362019944651866164481015150841925733308928744278591484438142257720759190028894888854966002052552214171674404809851797757841718884506391458430588987776442106373401146551454506058595779358738744558076650065066740103550301464352856741293931815456245799629192815875219797588102887747799067171171292728429581440228616640015511481332180291420348225437511191585420404361713562015941405625953784755765672874500465173728283759222738417520064788323067836374331162630792969609498892774500477634903079415163296223569318260099567900026339847641921804785385270495243055560529794064802847841799535907982255657218333845623943225260595953648938566879698109784803030672296384132665935207467595627310532797696414159142499912392894267184385284401695148266949237067313455137110591328850973036947700768831547927707007111454227333482471318076378262695425254937493814935153206301602383309734345608692737698335989316939601488909861004328173638306251242428144243695150623272979126482831295859468789455893385699718293377040007345251012728678299336398786207077226997585368375257918264130687224474267348579795393731141414185816905664944617952335359313383502577356456086330390571572587197109027809935507676992575328578272348774611248006859122579496510065499678328531740373569072743272596398611269672389442325747319692145095217504481145332285435459415902023260917372095533181125503767448065358621916349753512412047120186387205289002271527043896512024474487234597965774200698244687580423355186771717981944969520258264390881123027019723530045424708090967481858646999214539141916725291991563925605597697382564319709223044913329579674143103316281834693972899892482461214156509512475493714149507560450584699465555363723593917184500725117232577012926920080560219101054923460894122411346193427557819260220991937153706639637653489739028713215672261701608107073108583302033400304325581467693266664788582153399287487715399756093267224978765981532523169895080368624507646561702860991099903939509789993467842553887610984461383735336668817410322221011469430569522012086070524568080187889009428062449026130206060493055892948936953349020526214135062736820493815873101164624280763694297946560291365160694549925053114928656432596288888624088335988362782258940661700690354626541419563617925637137399436663016352046552521039773897457725664336418585618955495543855541688217523159069435669409887179805963561710062701137445236441315513282268318723382235508513468493131825323196146510179027195378210177905506342444630732499917437614077817398131859615348309732845286811814345893828695101262283154730065382312939365492847671988660501991888681709244773945043457200536246398448945489979779530557278167193524325205704970135323820416268497174394320142369070705821491943487683595108036987796320644635639612354200177149830041169010905617955427209008299420335571603033935359795223248591577518639577308004814787888789436011908261012896841810768786942003684833422476517485411131888602968575474336418615995555745211864055649512269673006278552351319185598440925128373448069085950009722420905206944573739874390173866528718064240869521565723805943636514121145608749513935390630352666590423130686101872495222577563694204334165418948474131339121250290160311182485741248662680349272944434618023972852969391507047436946121030479385549689707156109500561775577171034803485257740573819788213499914494339993562938422623380770912546430009069689214501910995876758663045161274843643496857248683816671225835595056709131906556840780772184793682323700450463039264159973391909193305068436812249674819963648927711777881129169751587766332097489997936798355650276429615721579002112073167790704976286128387115402570956011358939260766490357370536645611805504405697360186287546046211976265936241803451587320826670513379486570883951086585406088015513588730325621053135220193925957208329372472891160122833272259992538409217331827650632724247225461358840103140438556028740087915048323740163721636607354324043098556343961328955351927124389128988718264387140557282305399580549544052362928830032656760703853415124424236601507090052767743021898905755645822015849696210682689873232412884207401067565536020643741266583665847385319774776576309964503895483797110935529309496492501085116406221975569719699093843936626542500687816790653556948168943334945284818467067407971850802220248382808602044117282308347338285107988392785459250844551502561319711013778634079677582647665254681447275957365337660075277858715788183873602428713819665004116896960137119088100724841593245516599604756400672682738193364309240286570120750536500726988366028496079895916440174781324459638938528755025274813969119792206918805809232942988343224748482230668404869002055733647788579794762825726905127078809279262263769493742450978654169860929117530250142207725622188928988592481470755701284517481761690198208473546536798727576497845128390221785627302277150492172944232542408264972538234062429771965186818364013295265305994021528825286193784228220477419445245368726871726332665483418960578671291493374702890168086995107352385425425709414010418817874428824827592349236739767751216804348700568157404854451117693455286744296993608198493262566943255817903649707418453699469200888087524333101985617413719512255960464114818787972078254828497928623589039219452796205134237023978289330297487239011043187660456610699954963394049311765683601351319562833931430530503469879599083466179912462295475680789298096602150392423069524755875174881385586246751510749884792612017317802285957866453309644646077530510868979240873518156428870018443153318956285663729831356049708589646389872206792386561064503317064694903188833191836878161123283628889260245796525478416174616234511364487538500331800594767573268247158894228365790607627322777156561237033386109336057025005346791225340760648431224634674878761487556705268991312839025405008735148666916664205911673481545109308793269383221102015801037060963796984826429093171550732554656180945871616840767745845757150021273415503557350868789229066845904934907228575539645511961269377583255753049957423898860659948118503727303251836338192797560351150541302497035970611525561721055741878739352514960926232881310712623351550835774306718255000089057951279463689600582185939125124135448819224452305274200067534832835298087311959001250193057477772344338718883183713413435649582138946198644918108431067633636951332944309161473035515458311470758981084908196021007632671834475448005044329553573747983283475081395728993020881436944385888412072853087770358419728346087874298514219457683178285686928306126707652976735506655639225184989012505291375550182531898366684769195418865169008136839718113858403500021236600892826223234644366186310478222830521891662033459199549541941622146198358503417218144615669161016743218840916017396693285081483630017435438282525837918792103723237187851386855759357046343088433151493918095700833988620534054302060717846506291369647503846140904325661096869129089457873018806601975428976798353694142952981043490419463546510349003120964516322944007132051833851679986967694377642124379919073858021004263825954265539935452290155882956990408878723740748292580692647702455933987780398967761013062266651362120226586018738678492593594950689459223276712547233530481633102089930503320399353406553973667271895734026082219006426512494678650971712596163338709635638661000037422650035301845567449641435534392822910824834221948442430480388234441900067334785054127051470303391001561327369847421166637571084698853123472142299486972935344440434233605467813142782909269456718227985849950473404507964722510887168489857199611670241769202728560015309980558340389219921101989207182237726826444130265272049163494979486859866096079033198742443488981565339388370749311856323252396914637112352670533259707368059272709086564302233395406885015551312659958706607941747261500972946771899866037593179620464140386988731306084396515210437027082051555267640244933008212620444145426513562615279628753467826000625895992625918910425680908848384854545159147751661982171109745585471828095076432439552226188759826881798586623194266362206867361482839945075365064674156034173586899300553881191058479044313784020069617184954502406798703174967611102736261182729468954572375356042246664841848499721344575370288258637380779145170496193101648311012009752854378423636595480230229214777512235858362889321938647084227166467183843711204806575370208518535723165646797395456110667492575558497693865623657890274526151509535062146742636729313305494765090910403270483688056041868111657565335793730511601828192660899303860311584424310996455360410523690760032265184662859552215696827634464406697251850970699965573661389749347404288976657919941871375762406736366729973567500620065117120255995865935752499155669830331103468058771041343667669532575896172873147178935890116096427731942803589174515163025779790706272678249090270947158407278143656545378301741852817707643732475064356516755665404292449592056521755147147121221022032555639995107491035161944620247237906707517403664204605313483765951693030161580614693351378952003830488225867656588108315087707662309768485849207519568066164484565579078117888556883590339477593963310198404982128258288485730132932482015724121156306331536487562211203722964229060056829831228342045874644498164919965835127489437730437348060107375981579676836209473823849671529093491555766985204017221272193175040496427600695531039082664609838713141791949881857967308033508948266457847837759389893755492337567901586190207731593862810123650180453545510287048836333593207055170547634196666624431528380479061526003091173074320093578615371706889412981243560102541040657728682659376337888984749044012317844164819828418829405067730743044974558920216420850562109810092471548105212603000954467937471816957603009822562741641363113827313159402228828637438773840807811946979027413817990979136296447440559075165579967029249571061205295391759951875817439043225987711420432683164870285524449291123356276491557742873218441331345149217902885748513174867120839719150489669033601763407032699993907257935642962018309474172391610592676885815307911987010184159044413970506647285001777172666911768662878995491264337180286215421163163644244030183525318871281486142582597048808157361452678225810267879040018036178854807578987695892549017590488009877773751797553203617925028737796540378612526335066502438909497186723362453983075421905042334631215000065040387167777613740925056522830685317495202389970442375529244115822248392896007844271593563610269793287150240943105344357790647950955249955923307256267694523965352749765527552304470147915413309561226793779079501011760842970930058870014681185253120658733585844008258158195927137686190920084526830765945884226177380833321520456565998137283715428556617261532544644651903124617337749207975500783233075271274148865089520667788111881108827083527625169009214240122055384880329128641994468577481009995570385973367365738258017511708222978685796483420838730071140270543800134530673458940806907786129047522926386083231492415177266447543989017269045511379720455166448029495308390076032077641092075385485441428647514797387133289323361312976919205027682986857744974668131907922500596832245484186434628531998747738116326583367306594611084933678000015839210838760264055693370900643498441471465035084191043882966681607517591152520295063941392534848023523412486463092397615448507724135829732244883076814257686499435601591781458820217495262968376029549302342977614078950449266559424078395966894524979928470280567275202682695540197554829667585325277398264114185944507615550916598030263969956535146420709942083568691705689072512595961154586475774073748922830367300597167255673536130614915389327211849290313977983648033875200781094209193747103838938944072935768437053062600798009104751176700230491540948001696048416201158124898226438859786089310469410490131675955950468777916955887728851666587323606498170161978389144987414152464448158111803830373070042712381336775411335523445049309143254151015981847906847786492846584460595524968792772867097802289442413639760076831454144202340398536111654580666957313609080623357434405870763547839792832011310087728404097700578157065336177541050140254179116683640439754709812057486654317554662185219319780187592150328186334333076183079131690263424034536793477213197974180654373226154417586370807225278788526368052212696268083821587357264477469823177573640947168453812921671727890329907601699047325613060528942182188873511166079119309888604393186164003011319216555123244388007350220403526580206074136749313203548855998561988777043749382367774055470526922512032811327570544120527667074027687583242251423956880326013716596066318134490103822003680362269731961421599744727877817018975017501941706829725475245960406575299296904692385481585304425444726518597518961646466574121298531716181829231460607132161218951829302189444991636205236916662967646077050151400034948997010522615914799040410224035290594114070066200180553923803013818221127414965035171696021569004482086085093416687179260815645386028325702228029198196522741586505599592465083336011743934812034936838184396963308683873453354788888298485065277548701266567794892976965060831255964166816276801660778712099032034468916163781125655978004818425480822498501626574833032022062803247460386769285575016116164529018018717659836162066803793693980027552136603085001393617050395170459359843642491444169586081454513514154357133121256419420277406377738441173967950995849314543931352847461472017790378770706731289309549568680564400686076413990712425831495829149912580398243035891741717033569286196140530877704306601212410545711977257729034155850405485428979103483401570940336867949750532722655546354673676989947575661725524284798418106478347998561264720839416151571963218270571780858605321156740745201144194862074805009576708738633404782201465685940915970097800931342910237647710126626961511582703356716517232322424494747189747129139931721258436623002489845900752414804924729940387620602740834300663070629941695363504298142274651409017278347947827085852283227300868692966968425649964468569322494308162062708365191347457893649925150440153627362824042008896892910200317130525717206703876697398065149514871318525693406155298630610282760416436910699265633071965074754603068450435446424742866033874033959999287384500356730211554220782148376953655920030875763393346138525214835055654194787851137616371411078917860770263517967538691579696798282761043645191353302424690501606575032847978435611703022338823914596749201993111196125049906663138037102415458354030372314942618419167550358094111430699674250512794444299057483490081954126119349420506257845456264152383950894068931673993980015783509894395713446137410396478631411324110358053185107515954704008543294931170967770592595407760530006197410687661432357220262902697908539988640796477873012790853910310822058427204120071507532888791194388732680280995800906942466672813371567176883374418800382650009650931165825411641919439779916780502811175214345716393545569660697687615297278821707030288471139752648856323473891716475996860185741795943139276476905009927118923513222164306144750140164151438611438433883415914540526106765363370566172944427610984698413426966897174525887302193794718202438476172627978714437002979672021404622691374363361247466680596911025632716116196265344572731600144186360951870926218991351224771473268802524817697279268012972726723372263016883341425443722460808907284810715763827984400627741765654001053914721462084853923121709163684787431573105347654020400869993686180475179914414658526218858393813390191827943947433545232931291758333221063680183978531195842462175001372591519732087552616294812979552279158384038052057825076796810283981584923248316035029847289788659241677605727651392680535154457198096429135935235331703699390744793548788291459778909545894880322088068027186222736618958623535722664647978850285081606969575172893856048626729062805975517708932323504471332083346121928856661854206386902117041813949640423100999027391887107484280969169111986001132418891651944309876444684172161094356991480313455228993910506024312076250737490372062357793693197817224049957748019543969105286232384474608399184791361827699697535175548583934728660564745973223750183459004935780866326940547247475450726061508546484470033623273707683611485104975136515074493751216974787712498923213262741696597836181498377649666053037922665072173901569626864107193350045541087482755627627424635113938029509253288352095412312239276193534012012084478000232775496317516967737040537113644103637681808934965336669590270896765295808367479149797924805013388788462694784977302915544975109785844809767426507043376766268013526895069891411083291323796463661046094496120811951447049018719281083262601427351624876411457413743028114744680415961052360094309566454931912883607232365770168909161982421950688905579728664826478711496450109555058840991961016787078428987258654202148475610433337899242980750650203670006979181942341765258954828923768686226967074240654711591167648147411327996536315326453813270165986674467678690791882270556418275166519521312904371409583440060588342852171010152041459841895291846110974080444396795028911291584173698440506628761974608046871506166311426278868142793068452108425138982418754230755632311144584794378408926984348612811769842510105810799761466286333330098902979373561909448968071882842627298599270041897418496664633500210976026885311269550866625610390390954766308382023121912060648937164065036528045227968450333236978337360619137205848030804509255143334034713713115815470462015376849662085292044733057121227573828796827348511846690309271549366599610525752802882291351030738086119978207302659713506194402105294962307329635565365749392200871767492839797370638331418163636988885589850934344191388605519000432895595447012948263785082422301269679532318695241661197300026204712613280266710891612980475546511688653140256987448287860018609310160656326763041163651278240174255553335810709201472177319916612042287892827909985190832482505067126015091441043737289073168276280157349928371397698597535519952043467486584251376303907941749200888233941316593924348175036724342446890759220023021712079545476172220512595943023878447326084009133988128050992234443045510040812581841003350367678944003325046861831662111413708058966435333372605349022470062354757010242569383365400555204259097022486428237653417107943255051570271752361002331407060241441607838315734143004856510605035642773968219814762095727567749128130313746280876985470153125585561941267106832176060862561106510725887404655778678254605811477194805659437392487404562427382253972514922488046978870637835504439949565840569295130567887900695690533261119975038010782440616706841715873645035020992015111839407023880195017632097010099066971918846618272370191393207505817564334030806633016603421472527238610835757031458937751872717146804936378391875139814199187140350488965331018037678032483646212824260837701826427705948019778715651811920531343637113075478140261792332992787690451357505185177103158392836094219867794645335228447217063689634137013352023554348795773661729165863632220450645662227223874131933970668875701635387193788682436067497469513153546565501531392705408732321623793365106443925765522904126640200960952537494256630360023577924545258514981324699657388454368577220138388190240744620110988288387451517050242586736837687281633395179292463604727831117370986920401483443420148335657573798647759473478743773860315383303301972194516006413985009937519492078938072471547381997244073387874765066335712917269705615440066690620667193764295321361297081161976398522946656361096108787706795644980986463756325569044341745991841378568034908810961100977732526659249897248622838257237929221508780419945971129191746951977683837949713278659112526817971797857554721186199824330194185517204718735390826772139479435122583470745545589393807324242895976470339224904679717718862872894247312356093982875108464046556153298768919944922610331511755883967900364279645768483921406264155610580402388451491500376610442402665266902731831329170124924483528922590890414637228813158397985782184896876522266238006048627517684236705410237537146903226505339038458578852880031736735670680490682828177199500790992507167431370737431903406027604924004073420870128097681842091657153242751725429662456992739052296623354463029732931296583465960198500146352200392096370214415894562746948899145035613803829539181636536328007729108269137421636898334111789830176072476771081061240083620836583997565522135473395228396982040317763647395090631693233445780516358593238449478791983455444859260722660695750741865804496492987847539781428084052845485206215538083007764533073734919937151798027638711183394784792144220380483829947595560711092161734814840909551959839619705781320599885605845520287035464330887522849963350179230509321383483469196547142874002409585979028427290168198592309659649961154577702176512247329672021502351342846964079751674509670362260104165720739227385714782137591723119639996646332444145665614381658661825851744753184910684682505504910017022831420183141513447327781187178315370763624865578503087488329023588808772592907814878341614531021079523495747765150017087239570082573459156902874399048589309217727857641389906376398528628197322218706716538377207296283055399091935533643671973552924518285327184133213339693379169110706765540495604272072832311093028921290395741426074587524428860889591854808739373894442249253638625961637876306606876751325196682297260957120505573691143465269868488544130856965542701616435970799859135686327151312832078113485238695285622158755802382123841490855862982856119139567702426661376943623960465438582040764560035078009256223772349368814803394041586069009649395491040371838971586674349027354197943291058323552371244418759466571400211529386089321468190772988990910405556641114590217734720088123721863846367263519073050639670354920432767956176847112930358543162000418430792387831152560655443442848998667236982782081680495182084427915258339395408201936514558497694527688780084759043137197268574401280495171429243886414911689918429987919420653100472548599565981756714983482831732578074956514128835030620218949576054631137997158035116217962803340974326442426892888821675274067274074962386468441857080676905999097420393868406673624197414972826609991994058632103322160476520572294524256852908192010137953388653009005227470005519029135569450582532887538090195021249348258372802043760356188631649987240361094664817754255929480808887964579211403115211556926983110913923334768946866759992002001215705463173708658520644731011280616255300805065660254846936267216628391663297662435387559641187855213128109899117370087273851250300337253202022746919429055064230320950652935359979623647751128379162648254423226803496803089276866289436440445415823749557220131887273625092808304982186420480734545132161774361787803800681502508721451764722093995363298841002484277441080803936191799987962647416011744076624075211565092072161305965342873641546639379666985642129121499036732701344299252772276160966796427259869301155507139081100651279850268418986086893320479846465173808329768891874510186492621955100864111044530595855372515635685981356073321955899125479830901208961759725625398550902824834893944745402845416014679168378690879102597139899750176148742561386461124478944612367007229591373179814010431539651962912874918293703287170418248526118950358524418827883450828934809865756872762440835935417615850220330584750297509819307055515522397834870729281296849917533174536076284873648516806923109643440358208152642663398414565633824477199578322461990809979489195304675019243556862139736491613599943890981609588483766850631591486510848659312889739558447926797529268766073482866668904357401354901430421253026444827948031010469395025592949063134369814675283653095739885982832027531157701226085392015079391074976494332924110212968386147944354293480574302172959701855774725055687272093631696925384494493660814801057793946290563246950793039114732163933976576909141201368125019958679092512824838857659667545614062846836332950379788065462000667064136026192149233235311389867672393746835199691317898840829999088832015851894920317280486759311050842378121861713640019538170425025227570513198986782567407703181140730493063180547834317825238924613324541120716805292139286669465643620245223109984761952866722217759863095997587151922106723779891990214774565608574806911324936481596578951285971321891417615003109128673473847944479608266530738380779964626563084869673471581166392974885402288569821337874986553750439924906641208964252498256745836784119763478614912791553963446670484160219140334018977070103187238546406096897099005253708117574395087772616513583339125719959134326803051681943413445406328380200614653324829738270084190294477140687386364546673379463275740138986364602674480487202977807681617513647093536650379337974015878812925924486216007144602763136932279894426419714606169484012877401695600724942789741305044397593434331551965581244940807785541166710740475893527985619833070639561447887076545814719571132833713495985077441067894575647459052816271977619699109636916400250257839772680624116785476196278936910739544641464802753498243734367237511304526472558455713678647381184505348851135996967582853836103681307237527596234806251401038007150508537900812310557949529674163310702314762802524086418723510188414580195998099600484295994284973904401972552797707921995240546377131766474872806429282900663213349774318531626652860633773079809000090791462066279290197017064889119913727815730381643303027031367708002622002060638174700826196014391835298452762012709625700304187808525291556448437692092262127818655331400659391862023964541151026475115140648269511742483941479345875179693126120745815264664444258035657385872231683392637118517724459412038822838836685960081925213181749019225715780042117180421668796514923980597924591931876395872127595245089369364154856179624351595354474817203435980252806697860347429794626221165806274205447345846868512080950536666102008275032159097672857772984570753869086758739880673529932823669484099235144644244683178232233344673749079425570181898398787904586795293702708716425434787232098875745002793541856804515330343970426291082395665744376566412313316916021881291800923053551309147574478478862013668976072076617076545586651196161283220381900466052891606046285860798171073897166984103480854791555546691966672141576633055172085866635283261473138351556874526235530214535955307377653817267691477415611539752459267048819487866816103082153500610424940757218442956199991124088271657731743612971999422889661384919157624664779010458419551887754330983469007506988530472793132151178061816175547861792756751170214589123902913083383265976545594798289622541090786387204783508374206181078817836454718780354684841606801894964749164448072355506110866010205384712049747526610293992461340588086418560876533407274575854882938353004257113129687553940321532470710699720023141456875022658530864620310863233167983559810960992300586334941930942627448808743394198669948281743917360819082749048937029721221098319910469879664972946071446690212827738197086849039581556676951842046313169930409064684581704999941308185703073855891950214664981610624893744519589026095522381091821743260955287216478503635491052915468390121890189088399831418004137626482645881616855093682197785210564209324897764162835274309687974982084705473047174535145655408245000587374582706753181235662665800917640335054695278747563716468546215626642091941517391653875788592824172577397668363235051324287878553575203408061712130717356986340301133009533581526494759810584843947315238318002710133498403904077371851083729405379797433224158186757326775102200750535097913260975247434996152421617770573520516263323688556729872316557548420963587583385365988921326365603629362690405708524047660559734556162987066095675072500442849090070850155543294717807402721357941776098776095146714324208099179635351691988105780359508022002646963935938495151051917003335490597919005598687286306171454098830764032818188254695012966359196274562434218905822691424212323382307927751579726891645529548494591183621232320087267030200891114141784560312009972235489246065545076843882814864778087238153164591309919739742588857758886708764710692331591375939179857092755135638051541608088748780039883669979482337868186182072946218428560271729922064918935038967854624318718283499061723339149819495000697935277163680408834537183860994513721806422001583812095874510969168579583578070500585781571540374344789445614871103065681327680763141903551581368906349231578150572537052591629375133074901933723034504499320513065889953466929345472056290417772021826492314918099140297952840286612332153195434193604010424384220665823241476956429262450744007164434386489742099368905949475231688109696344397757461061285761873534563681794972589645329030370910155116650412086793341121645822357892340344067865068093298089937526367314874228579087318310633995523318964019915442494615421444984774383018963890618979677240630508964860652595679071039438956318038113529440417206218402537892074636653779243443832881227699003126359105781354300227400503079155148078779041370901736109423844616569658426671498723863747814263781561652317368804580853439519900471277840816374311917965018017184680122116231704129269939321546049582715632828677751670581985554131542922898251874059724955096648130048964287620094843187067835024806250003174909299755314091146948558497047115137380179575707760091842964403351854303259859811988800583092220702835860205700973636593974853460671450230243528565207809730717809215979543296440113653764946709341328725390679971190949878762212487845606843742926808190270652302546631985570173364530839973320966058933636259107210749497678156630990979567506496126152025036559152389101098009845429262663431359256055771911045675847940816433199714882866406011314299518369078379921766162431573028898550179712370880650807982693224376457573745021293479999773437796224155214369745685272180357371604156607687217375649769792868613399174838946536961046516385878274713814767006409248167519502524102492417200908428922177060323463555713543542500625971187339721463628148610541092254050660943336160257973654862494394821326708331244101056254643677519514722023286871605410513981159121494277345665029954663815379080265187338595784707773902217846560697752041609604316462205600250064180674788089658522066794533577493786460825833274983811045472573302239652892718348255836314529897303186612711230620411189134109981864655114911622818342840247388857797452508522808285168610351811437263388239258228213873193639533801264056395813866746045265150568293081383581038538389899116547085788397380128493064970690780965659833919442139631276315338607080370410993210025436764315407081031711751244341742393020824370841434738139890955226052334384605015679183443250294648674611577782132293630379235624338427798696542735075496835988063749783592516350547168591662159297173440689555019103028438458485051896410627087715878488593747744639697520286959934780839980084310306932269772284214698572950624223538381487552665494090187861459101735058082084905108922948018668791025744478549064054963556233101056424288045509696905856677891426891652122044927849932123430513433862916140080812521189802299307872721258264659658267631274069878123958303115541837978502571298648798731899871279348281023276501374648982578130362042320108024827883362561608715633556027533629381999773436349660517732504910952908119713925676508977091833813851686717639070213196910719912350077430314595878469778636320848698592007866446474969017332328412265407178329737089171431935068230819233804567506965196390684820734680150224532595187318350235412371335428858359935229476240706388051672068863904896402273506879882711723301438152727164354848338401398915053535200769133150977842829504612094889829214983133495518161887941709952974893257265443003025073357588502743711102279852893676312051265158059301757721811176254866198223702223685115512609914292379150192885151301803739257194568513097145473168094475323920484819420459230786460510747527582865998790543858259326314003750441951649186043944215982163046490789465984013995785443257935938367015719853743949685977292664019661303231303829429214803365838017662701147400346997846315829748440421273431714156619430753717800252792516985294945764842493720224794976857275506941724118781852394309387364579895961514521836154520036175013598882180719668691239707497336788227394272702096157897817722989580415601362269268629500660570149770822754548210808071418178837769367823797899951341152507003475144653985560711363740895462841743979745127971373715383025484863974022709424605405104791056928192824263380969655770423500190133310308776970845722399844519600901244980594190119098273546198872175291013784610820311973480235557917656684336459349014029855322542656816904561078916774605443431940229802400103515627881471094509635291819353501351691865299488762716140463824817857398293753373534888091818732616092846255230459769921829120130401211399934403593864439750322963276520982429815546771098174486683800885194493078121926840753929629610093912451409420341951208977390741444843705762893601256101103803482817712554144928935547571101966101699297990081942754812911024966651420859878418515642174565434237450620656091459369235752517820602233833150236745754133510668622961665431101142505720910726087319325175849053883054206182371132267364982654452629139174134203890646361904857623353650719240000847432586668262406962237836364367315770786998489881149977072285437534535045015630767587677232700600158854725708779695731867849814205408911334302599448804905616884491899414315426449883966649659258306696314634018963407719348153214904132755792661422023026609118641612282814200745973842083107074974424697605193020041458198264376558016587037928479285565473733422338688217021713899992184660322794946897865712222091715515145572976571055893499051586465779039045971636598841601352031028957593450598526679702605753747211147871165235260523927877263828571381903036927029585141815188793059334159604490978931671654924746313423018872914728802980964305110733018921711178205269332468539881597831565469579967675606798163316929380342613828372906440932023358970846918376794337567197954475166243124749901111095696718781913472786507173687306456191253911437663540517418497902068029148560122401358415283318704576231845772672016867972749154753359807120861858615618414575645812667080393734938119860502558005345045158728262583154737727456090408248840335994859276821525651237954570582086818981265384388895427405413396834321905175431192169163635339282409177683004607578268975456357749696776336843910442796193832005726926126298570334188821340546920199197654585135225142043773910565294150882059631230918940598369570901994239156879180386185344693882144954253366525969335971812606233106359767812521788411984757717874107448966872467696649795632798669563993118059651713713179280557469817484770740448160314300185185096892087964030749163709815037991515836433227734827246463947467197804758178005124434361043590853554192550152420541972464257913068636205044748262676949488655737793120422296364445033495082289315198662084945580636981396399879920387823997433534934697722163649945820455126555818195995423436494921134858955065456202814115919422555754533570785391812511623349630092903561741521311120894230734423229453472215515446742757820087601823838592370590488837883324444223474842444008763885583028548365047067343422373979920887298974617589209422690170919479940869445770045536791574784566946931671998568503990534355636926241468972508910729334736196478666793193047754046384033625364077339453932823109369535667178242421604418301704755717697775573708080845114311345528462265777257641213010740839830212812236725795712133049349063255597963142687224787309949510754237617675446199996015702038426232899405523612832717388899443886930109872175594980750489346708712772586322976282071232492442632127442628688960389791173143520015549167338594500530768835516533430064384897778075647310414977566365672213623975233300099159260959179018705493848771160617376401193888888692775913437020689659380750599104164021646785999879501035006029073332193460625206709602829493658326021667752417078160090580044483602039362691804347334547430264018719757613673321703696034112765921610462248862420066154033040920347397109941106833756428029443223854293228213090588495197801576049948482265716260912179880687099641983699118239039873922835249118249961311076906220034285584614858118182129815135156180356303440475878271651279463260625073210157499210455279433762172971147710681025489044597801253070889757933931572076361445631146692469038911981157748362031533499021604802413966664793143669379071489259642784987185592259094869949872182154274661712182775494602828120591687102829319082631396285006041068665346982707038411708250749504697278177941899093548444887708569375950899773721178088975420883219767146664406962796322842461494562855165837432980521311965741282925715532593187759142817853582707211868656070835411076503483485747056452793052920032443147792407648619020307962394621843601539317286631856055098372161845759257175235135408041864180140939897861010842291352987184107920234346120124331133022931548460248514117656581171604070509652112890367744342961866588786328241425231567812351560005950982837003534692495270364042466797276731451247884156029603342686549518661645677340239449566679006448258259105955038700552272422132635835120039796375885570696809639169959294168405684927202651276823417458985686285227956719912662691260441749497197057342737404444319728289690326945061400504577775959322169250574377934521203154691210823520533536451748965500854535406297068188163121336033113058747129890685858797035789599089530456332177567675582455595260460191265910519723419916551819682870433197490596627013065606035338948945299175563359511634117546449206594504175027367667018362728987280463095410821342816415234931877771545508495552732397340264646008036219313838392047404676708931861866098058848206259046144372402903873775879011684811522481830034100861458804984329417138459052238629896638103030306614527973645667664328738707710781816307612727034821764665569186793319024437738513187551939630896679236396850401051968557805038530853324550445781270276138691916814137643395979940916717148080591994410795893869317721353210600339342398005982818702177534287891391998804117812796520019916218723169759125329425744709107571377473798723475796023657591860976300473869496504613664274626540314663699639141958485687143801228624273982933624651894602229025944403285547277539128285021874437008694187236564785344679392871202241857504013115087104460578246569514836257239092298150548566677510231593053885598474045313508542834545007820635383453465598847629093316255750839238500806852108685982130981235797266211097140955356626165066174303355553178342050824916673438964497890130366372171428657554898136212896474998575764962214613970636520177403846685721325733321049469975827830083684727657363461384597907328337958985176971498612823029248744610239801393764673022377707497710863098888921720477044285576654513485427139897987895413733910018829212503217706753161030995704517355667016384380854935641471338443066570022535677650720932768312329564999536432673327160313457069358755725286531994682759148668730264714991766892996267420265771545616756856317535417937677334409871072575322645373660236747587644400290873714927000746293437215901864272217305477584508704802770313687659276625662438238041169461211848126185803800313808364845300381230943320423677253352720665782846927535696755468062760398354610950834217288833697473166374872566765989447165748336113136632468802018740799642368375000299017045831020922153473318018492087351696661974001529562855176448665068040470026203593502821875337041076791869352222743643976025221334566084805768530360434391748542424144813578735101182646107148039346931591914086936833791873150009396450114301216859574789456501618836335988264635842408597147191576080032951282474191522893612657672145041537934241056512105234122307980566032027271276960860008225592711134952717646820846266839844478249837578710788109189045101120668288019239309889702576859015483561984861868346437766978972824827348724309379534662643238945171830658773813759596779427004461725908443986114071991817737858626780069964100509085757416238621200819389924339624941738074977766990413744152313239124460706523564234683126608440747465234528740534060217901785792762667515798845277833924980022511189672659786576191794319288607636659177454459877353176110213180003235730823370655920776741049296802319981878109647445215974539223300214016462882453513392836145424135239613333786416349531704275419661600013421302786629480211300465461314129314738406555450225399433309509332755832770487366787678588959815569494707314934736859519901547640653942741615018285647830419732145346996110024641335173747234631887892877599728768680836195317486138080167598141541697364291573785116359136112147688539033554162099703842995912521060102745667451857110214598136657678233112614857720601225662442275461573285918391061920083581217194729123995472418386222293959128876261468483216873824931360107287172966713328389765877798524494046405453773700648310642871354890603224896439690947686607711872288719122564362663725956624003115948450850552626058106673147348096111253031831010735984257086226294067322337544477031334780621252023621315081372967058215415740079503786702428339153278995875224626410313214251357127407088301495414594979989923992338185585087406710443174889111705097913807547093966578609852382047962107264958356790817202403875468310812679436074601791212732308084080266715673768515785192877650708774736926359205945164675583558211073978647344259178368793166301146249493290990663558268943825511645603232980374639258791315145025767076214468582844954598212675274624309212010257541083255580047162804982019041963108185920683222894008198799364935265460040455699631504595259764738328980126623711771422415154591389103073585128193752248968931001588048105506698437575474615099298636731809844749589176053895703971196975529885009022379944260281918032373447302496667901433046775486373519043473291986458799035065473906121054725487743021308328854873332143639018696152104599833345544072170748629371818833158016244108121159677232888073872967896054991341173974194543930864958849727884580303737122524677929037629414601487488906520258814808910023051986415018377339913221642023247398005698107413140092096536215149776703810200453024843379722672303639891388387717891396701966560633148611516034092403684968578742739672116427631024841657862994891236472583212096261488911955218888427202519411049549906056689406823250290726074266444912150599146572447907708734414298242172071244288760630456986042880779775002971942927594039877956614716885672251654610172013708228076679918250981523303516114616328486080127706121576107660918798686838792520998105633958551003922740652058583111863332134244448238371958448823545916036448977377671551519676474180885125209116653136850181519765959281987172693380139840084319335474228631850252336912606075951888678941473762651007560979904051589681471464324368243096943968276781708531810959785315989766565363820396237533929247219949912627772263053001338172517289885182623225289395188767145586828225312712574051569291756573727358873121493619951476649818421051471133930429352536272028633450165128129765191392481749903717131730143689456304091614783406520531410427755753041838928861440941240992575273812123731439296293456168516288786916420038297986252684097778865269240751816578069238600335608347865079281713439956238235277692277235307520721974294465228897446318611227405836267092918259882405931559307248345807066675652478327959867624964856837525331537736478042608525515468898421581667493992784299380004318673177798444018139317821617834902271295421619989625975524721286529394522533775525627393722105592317709812490088579809814017881605246990225100265014356974053942180311419863880370432364667565854174268279140566904908953987584408279300776708845574241229422218389878298550976862915106072919049282502882402014202055409264662393665233343180839898464432465684127558865517470237434496606434833033123512381878722213636061889798103789040256963508461513926278773493809940872604593879309377907129826208703263649779676561936685253267959815702929217371039203506199750371372107249301946949362448685566324584323735426605495879321542311903663474636672115862083643384795788777131258077818253891209649085394900397263391023901005541831429348065173324556703047075915109691105987259372745416105528141168551175477502375512206007515325191750316244677647757800507763059157000699606681070797250438337268331860917473906658023281765166407465124908939880484009394891236302236384246776806514618185314289414434408154799823021233174582825844244786326153893648404851261378409106074077082810234455789541520317013774007161813404538802341653266011356333172429177834305101414326545028481232290795255275217785540356575907271017080600314823049341917799111506297494825442371550355297546450616156114118663609543666918897480981855481511170942338851342519148590994361646485118740103995120492013557878240907577760782322893856923989153720928630803521256598054893534884367663994728444920116707314592126998046411217567510953669609530209454748966737724059533899101624867266170916926422641416936980175600177369589916552798781580192285853727578131123153851962724609987217237393335375866658078182933031507362488928395323953213977414158611742241749243889833321229893832583095225087021224589336613043841700292097212385993830316836154647631913351931098219829220689430027306876000481040756906103577058335643040887710097474602601354349152162359428471573009617285675171983014852290795971838054866186886699241697169112764612078837075480104424777066258155655517680204545641476393121710500036275472521842511189540145267197798645598798526064247409661027689763101689311640886866457733618411711785547898500158908425310428432655657002877711215200348063202112421728775907342645097502967022163128440214050728659845227022279405351905611017883143472590833615629568730466907021933220549316255635898952047341763198430367741777782719730416551501278441885614330370899642073761101914051776795598320014203065354109884613919217291499745039485273703004115161633150148999691135364085307447872616151150343710682628227790025573572926909185264155973580851879165172437300620728596428868848287796399394388558813283065920138181449870267472998169697555603829736416502871150956101286745619963307430209272016427494813098055889064317933536186731782897752484265789215934367391155544617634487651091525156741645563085995838854068223735555162521137450944539890914388650813227286096335776647068850714681864000248084255558743374881330426727309525749464525523665788752805861868737079323600566235651844611743484003853371024935184747152953492165679172003339369949247305911175539638707796767994606695250738202639908067339763168770812940088414473963074435017443044434650780694788700083553956772658089090417204456686788675080842305737467710222103675697776648876194065296405866342995995936633929433637339436694254001180476277154805120182893128913401170738936288146662095330161418946805702151816509226547898025708105738679342742813908213455527212677218543349481818347493582640079735958117203699431900061118282002599195072069735969417293321961795603919357886071838158449102152211932464131118482261172005554469690732287851919356723222364598210364497656985764121763296955491250550951360498970593009918839220810827484730550237903840393909725787942104619434278235147749289118782000260916356913733199345955307905321947051951600334187099500609613613955625418642597033630884824831642933487634530603312938783405851747779685949423031659690176764516572034374319953373616516982967392954897178935883725593185091161962838245738993305093461152557931542672684765016743805638996769418688067291607471622515258331371970372520528003669013539963532704589038425779109372727861822748967773145345683246482273383237116857406940853655557547976653916275364501579350642774977828090123082233639687290741703721912357946657382367518827846130187727648835499972973308422224976687190831267764590486623805577125313359404781182519334074309970139931040357696561123170751682954385670255926620027525373453441729312457538079263426368244165976676869220058398943542096828390052345317536774534655945417593864358062722404018742377015687265746232669738939400120529855171708231775604767768684242749486391673983380819586951031056381199576038617360467364043487514262520183890258476273400939154517175477193338324093891659231370951805270930765240351479150676857177852232226697937323177874020622218331035793475521387237823342464060567213486915039954795619632745832803025376527787564187408277978624530806546394598981945016052253070313837975979529102045099503975981169498480537048992393563277103206967927213669122380290599999084647274328067240843178169656003736061198794127321412322622323238520777546234711816227951739689912454435594516090923245307159667193755572574810293843918635468339991268308669036715767582612417588891102926792165066297481679501100304309222573254431782438885874334184638875603970748221333832969253399844087547111077237818994057559872410340383960954803010702506684094935540444025105431083008868336926000815981557624302470850160972742122956733879365537234455442605260850627716311817088561336494251816568047240335165591573733614451399417818149589515770890765358994123736081696700412833284000925714431091178672154399521940641252677891824513752187299047007738731335432426078753316074787916665633620782567755577985459966277907706373682789966412821080665200048688012874047780416181312853255456880507274635641652455279664021182309947757501249331421211885327711751908583732495975834013528875054798221614547277256274009472405838480087740601083073848555463154362126381734431565493303910099581558292562647316821739448989900193160538455936608914082658047376859006594508941574974508528073158731854156473460977297456243751214620308647518001458879066007694781903032500288522595879715633006419369025589783809300039276256809909853613588898441445243944470875884077468003118053802026628500810175632327667986549967208529869664377584244027647836058978942565944163966074161165701609165447566021564257601802387497533076866178951471023491997560036687539017187097022300114655267222585614374845689833523603068599795721404994482027459431112442751502889094607979518269026024362418253444448777081793144711431107706616666234481412607197032686818978745301374870179810211975077508562459523288606974626405073129565147158200428595116351242913029460059971202378288868617904338636049360531486168619964116045902023371223594388228797421391421264515391031112273497576415381515896242675564365323452766657592566498275146662852787530170383359035341770413811599964120574112459159286146246909171090264950050190700275871465081787620574985776908668272535643867962770909106628272945722596135457864892027317419086755910015013239072030417201202373655756598868217746080841531927172381091333231287039962110612762474152418772493757825626681773638870549482028644053248393006424877530414579744100768025457340071348535622107242854555293761724498385057801445478337798754399274124749678467444114984788922323781066117959666262194971645375958228859511868172842511955411777927032830421101428513910621934300746029814342478736959741145984289628899600432509264057217453218523905149957242157304760532920310920440863157214892026614886629346403341456825178694009627837233497522418056834604145198812333377242061342528061151787102947081305259158774843557391508224416999155831475523998519126638182748527514681186988226234948471745912805002819532849618752032251015545415453700247867135063684017454538159224960818010165949995162550369037805733616988571576378511352392503557195135174450550341569798906465378817629981857713236191539804306321611234342763806877531952082172605056140477918128909481156923064518639503287533747371804278624059550408168392740246885233374570977776594988343460939574360846185649444208542868664052606208091016897967597983189095563075852554017278962431233573654919140393619084705547238218555341501075801191702399380246728836920735308826712993953885887854678449828115050981459572271570286554905901966640066839922475655268121285648484909724887652164734668993675274521480484010029746769390640994142089320690384377107597272772052127505614883750012184485608123039416463427175991766309178748992905429186799710837299350574613137454669075529736246514546841830263201994056840258979235537781488860196782784820670010249251372148845461749369787594811440233827255411051985892901279111414149877414083759517568127929148532126684764200859035659778015865592287282347431055527482787348070215162385237087254741592338129354149128835708130547742817549187952889780985225066529851834329668316343660729305830308472221169814452632488542263681095537876363892683893299101613306345920184278892838638131145441375095355166466872476395611666776597459838216454443645536832485116623434135013130888484982123400168051326613592026693524587926112529519123652892130867641187888443846459442370302661845148193062383793711783998777741468001285467546093212652991945436449705841993571932506146949431012507526199211650747687935909985882430324177580878612463667669299859580324693705102382754864724012454259642192025180769108925408905435023785507296216535473650697140967438768382375281648243135639849592940767404284205798523016116267316464965483587199670234271526066458248384458100489154271173087298642144947687858532263148593448546738088275644139112917408573885288058469700082996096432410787003084623240632426996406544862671320907881207368855003077194656103251050189224180708456920659483977374586624608339859673110609671081859657149812015809377015931825177310043491174771341652167710921014177717961510598734522438169466195493934461211620067104378192313551875099850755055664311587051447323947742835579232802035167515767590104209107407293209029820156163434703982167508620741748222920355435568524742632829732152252819698113501704435756528768306465399548851515554692051642724046453205382404110239556945636066673389679678847966422242536584642516023620206114461100835899501917500739963091654211725293043838838060038387554579076752625070136418512511453701050732692386941831606356468353221972083327922673876904297485451664135234674229480767762579972709825859279516365854515709075809226230562082945306263615475341597799303707234258899890649380518140729484904885591130056849174423294215150892507547014113605046831899079047624271629865767948577001061438209285372017462091178473780065362354744248014911436977533755770676600597430830066684446481530933031993886037230852802686384974519008808537766596923934082960297093581568918366694976445975406409300915547895540045037349517404894891131465790946477813802122802834209277931941439655396079260902253972597590120182854926975417829191542930770201081809869331216405964467545313473359234815198163403010957530144954738389062460990345935979118767947060358168968809673824672848637463618776321489778675954635829353154630510295045515669866636748528774521394996861263042438650177048867421893789292687456141872988358669264832368055965674617234710229412006687239813155461039424979587388385598554314759560027929645768922926261737062803784454224325121557808369729831281770069926590925891677109688303247343982885159399263173430506672739913936485588359380476748404813904413766436238085710932348657803551820486512774096936315283918242594783970063751488099095860924820878861326695150296399684194623188451536153528391531124029040772537004700347884838428265558585146118643728701346626205044812435441459155397195764892971921560369176250382296106241257015912405874710560666606380818060121932791358125570570177296308833051371275282754206832945176459997575992882055714310191079323132927916079917706751564848922463468202830330763644171820737814488969613184421026034089673134734431737813384485421889540524653661416093953918648319170829063426137653617563592119195910390395451524112325400469906718976021481149719261244204819214828579981237676506473450627727013084645532461784127620753041873515309525747696925923544498188830899563622878101214763717956240263647255278303533040085427085594793238544297518214921036928937526193697680917879899178934995837388061438244297947589704416866779076935451615198140878720465241857921784115184659736912928261641122479808829459462204602479978720608912250688261549640775246650132945228761957980773365696425876152889237500036255362186610222264786634641336208708640469094678420125048411235303542609821646375405842690534957304998767592489620746867368739061164160203442538008576603151590654190108068995371869799683605949619902420661151350746790614297830118304924693728467815815825632453793711718017247942321454201741541983521441324477571588612515132818905792894661192005459224969299270985218536542109593389158261779688813317099901138453454966712359278226948705109501621679828060709844347449493711830878097268464250483671138020025894383522230226521143142754655579508003264576902589704804081733350730170058101658393700803549951421397920574571059817908466871864052984267665464409124661582919527606517855100548261198930255709581520802682909042193938258401502050925035985139014908963779302527692849082212753534746674940402983222248140152263866142034067040843178065808704499412448374295671970341272633937416965964106340172883651591118450634024381370304539515125562792077293279327467376743882480973892671365871105675122417792673963371878334911664152328152012905488439607400025301290471919966984488025968041407711930040835913800221603690680716677367697188250462029870450451718216511023726612049421757667241994475065250338575439814625929230620449853854304156795840158519427108449495908169902401475827433499087209996974719349186660691955963226068789254574649679649739644194584214981493750050107425697581719966389446357239570294244375258486540148116780558976745194485434551627707303343829251823366288931489674917681739568868766017776413082911218688593104460584508448719069885889036775768942164021414578600656599033889334644638167382060798672184161536609300247936784952534499707601276272406518045494507822002412557330207547359568278561556918024878947921644937180919253530524013203035331743943954447440857309958451174494275594742213988916279121916838966726297445747797056467504961469537235102945012011127126224030951773136243819357171085624523054846200209193671258494627083755598933713291060761295446142301607607218583840403138105758057630084534297380313317738190979938683345586644822641905416776869517110386297099810581102471811247316599294175185107185426406983277828434879533934100531789606370445174594560147020420879011462698044742669586634361435002146324818628346275554755750698770199061781836091538290760410764249307084150883456890905305711604459519211738936946689402706004918359445615132673658134228161333836123369011881904135219112878652768557701345390851216159655507763338388880556661988536620992500326899210444577973585967922149444226813468079686411373568929475281465954915684990145915947194981421404582267747249314073548694171479316113082425045000193912013089076890528078496253190649989415067497980466528672438806743245806166422924175035474001197046385805061216152735441188177737874710980469288967886149636620830722763652609600739998819014941345532278144560849026286609418017327634424981601084267967937788763536366657647665374986026562549090841514489321006217616995298759297319923802558370842236214511915672650137809007783956984593339577026975921164473282936996029551664244582818450922593686644628757275892558958178884315547584237221701458330644438816408357522482063123388908316891912972798689533427414574418909265407229261187940771166276014036016900958492412063374400708434003663424484394500970292685005168146390568701295465687977914280134941755486442091370796436200957950312197048477932437002221210063440228623569486028483007688214243895717329716022948213145504858111540903500659794881452868199833917712595064241018579036854254873210913509395290086130229043499849872761139132128292529475283135425990035503638407428606390936673626143523946691125464383181818372003815232600178612620071871444688173343056977314177461622882404946504966572420674510859793813566143180587943441821213205405701796268271891271786800181656011011738512883058533501210952170429576980887011732472136033710851299030880345709421558456831696722325266657909940030740047061759436740376084531411011610787653085885001860413510416388332535878390742032598467581533331583035620839528068904838222258594043490705541844188824685713233200308451754633875300112367096047704405514801714540496017868572841479561360375765902902713407125024469427626073386363481431051058078131591228959003364023547744204552365050060454568038392788763142994736550969271105781231563075552553141213784308651036071233412980021664401911487046305488285091968114305512044794676741835517956675110605666905341983871823924908840975162046277110217598886705403114594825441488321630615213800455331332250755469505931453298382072865291687585240652353571161385636609428066249430012178675530360231649567767293504241945063808977504254188250469736774765193130950235151644111728314161427432289701238852998627727425307735075230175787957047243341594064480445065640309671825886863266046014060677324806139634570125452497213876084892522254044764419489140193160808891771221766431571754179750633316657405484476199647847590880679790508729461711785349999165272201822955281398548668617176162150875040218242642980883999084034620395794099854555881066051921856545623934258065747382672144200977253597817389187986095285597814037228600139029505503758061120796963214227295139148900216576731685900769384849432740466832790420880623201932101670550256025473708881426144967835206275126976959627934242673963793995753317529900360776932273862906462391606759514247702401300783369041998411737211310434052772228145212397686847560885139861283747012810180572055865956467643991046596321886196206277104650999906709096811316910716062036846611642368808077626167686969267446856385354059301573263500875655700869946932660466547130975657852021299195301064210062377859654237274091746699950917243028597306965974927547238226413145575186482893723147994256166021137300138271714394971443921618177988532219007816863702428093286412185449656555292272557535510384164548662747658707756215575734572326227204300506458876479504931674914581289366559049360462209211692518294212537168203355759532481014840230868941019753891663191618758039522950321912540474112737616010121560277462913579340917134906129782114374603760805673668487603102978459167570043816935028510633554198417048200673654733478421676622006337589118706204300939825932881859988489982929248275629088400447744557005494628119465051013008145828252091009614871212498199831912444244218600010078244652836446865711170638529580318678026676121572206154148303912662393294920188170168095247275309696783271137994808915991702943684946637297967788074100041477847599896397504960990344876925045269192075724420488095535358008922041678201138978670472041157310209649628477770235158285518254778835083997674750310478352978407638120670423040847598001760396686523554805129515180782812222611334524794868686605404988561028466936925770230699271994883410111895997728231161229489908195574288342864849124494326769139745519482888703359599794460079916441583714066589224458314969538642333233279196800079726631831622119356588313035088074909153251505832451675793168908840407749066896416312021077507637066990893771693387640672833557632444204648248113497689868527952846642601884237851492929785100894715565172001066979014963187573906900713259636971739386054242412648456690067468034980859831739878012209663227831398497290314867957157925521621040563153866791325446420424017371600042823536399311481588798516793113353242533666520476768925753141563499980297460211968207628566347883354501960786097046115341333580734492982724721868812987720818211107706388850821717318613198245128224345914812150725063994441831236137997673586578326363068348778106350625062614344031644362827796291749443631794195901905636528810343072173321866040328247821678821627702327053526529490647404391503660424258894726140441936138456388358219360205900638193087080740019232958735908740202530342624731483423177354886906626735935452699269578439412435876888051194514840252246049953377877705406492248183932644989545369217704333013822548509431620454977671517591438014656066172116593660633971180780529206533368259694654731524730618365454321691950272314790594303087217136737398737107659460963199369884017648740838451821755209351152641882022761554412524184761832724017158712285980726210684062945403778264920161228953406874192604777830062301996576716627099446028981902293759988802410672661615633803655992399448453838444323777699960166744644479871376140872464327409922946668957071091665673453056757471287668165493126922875029659368174626487249501148497041623336588650282170056486358549676336721864528378992218529636252150602369883994434917062722776618089737640298406988346072411067218300750642410583601168273906663223664367561982445767725794194318368395437754222939278122016262081133543161921479230740179199393743207584888561352792238045996644978543595950191229056018951504439170223575882330652645001501881854100448358800069512320906394304523967602296983401179716640839224291408513076814027002905862570088735161533469343568848100667848340190277424741106201755346593899709818908496146963288786144967372589600744602922555652402679031614385038679283129117336855242206471996709191225819439542296921991366895286937338736536753822517210015824957344065936547237207630132193464092344117147276350640963706010795113386834020556889248531139316879924918035830452407034958467079040060794982379004687136092891847649938219833764345954148535351919631323768208985495930001764306224950287193861323254493778734032354502149790363407014427950656527021838765418949510233881832816081148527175697473674948596679812601920616218804816047412778955428228114587299899803624819556801098125943945507671739965507251347430023545721171872638078042761081078979687321288095290270878356442916488118264158939768082630093076396653763138260415600955106845503519585776266892357856682154945350286689479632140275934049468107444652227986992290106938803503162225062391146276033581357985498402643077912223371637979221522924087044770836786760430663312619170669836451437221809692679413307383623657368125537547246929370947370925992442478752262594557471518913044680393137826859725517643830535572235285629823326804440730228042405601040998756579657202053805662991436255398685621590295048782678304553307602707953380735137825547147312487576869562100896130453499108944617871434258471867177331935002459568222699231469841437932122639689747861252726728600251313808913416626966509609005569572236909570129877091911169864759201270741200097949507760605946657114757805217887581874700527521446675614510503340311352946599411420791247248273143367919174673330457990916359029804898712212762571770782568626186463815027428902050487611388212937271856847994166443269201514407579488054358914115998252986365408751340826796057746501167049602671738162522939840965578843232967358738043862367612163248083801562274046272649939111964167373847572531666543179208475145041911558297598753986655886326974470990128511252137145236134635894283268880629891864636543081376876812277306654087239676039956216863788767250026514578369394094109428281326100957923804987162724490345296104194296731063354193861353198530473780836225528906767749227570069615813482609636375519741208813745662170066404737806179516108232455602512964966830360054868197134886880256163725546462396227956776685755550960724559672196768713472656886360394025422413648485435388463749290677005159553080497441039362985449281640527294731797882860680085309431868525723073157739436109053249551096419429660851086748595284445320134185357185982184447261817376471967168367391250497434490204449575696303284478545153071213728372315966663134208803474029589437741849102253432023020982933550339419611228091678362388044823455562127049814016967149179833457893667315922218612130750553732353216709533449127970290166844064126775679274984822413187250253542482839347121755746459981838519699071715561515401268361475614944932238137037388626349201762074580847552452794220654960579805303338301867481634926502006738367561674741422650079991964886175381186414106660168545867630898655337012486362390357016230787277182782850739007138495410432444813441545277149680783508660378635358602502264052254139092507055743764034897457236776196321565547268041360834579839143151699479806173600512074326224974753146463203106331077891639114206455111481386188679771572619472401044276738820541755596515956368104306490109332090725766679167607005557586569043665697316099902992610145915072407643627668563906881516620411800809318505770592583844958443191587638660296583755311516699047477722298135476804616141366667457762762043134802289292664321956041023755739118802290554475912488291549439034853290247813380991583149059732430789899610453344936830834284158600914252701459132699295742200088917108004547054724052653168409369991642965647807281080092948332547461671669474923060594352722462920014914084685164068446788111315408460686735722716343275492019479790237291834032985796998680635253898949868694491671604448214393868536395078112270360346598080121521397215694409285515341718822994452751757512479190930791314844690641165652985106543230617496613007660898621634299544332520137530149790099785877376854972479478684999344860616834610198252517592147130925297854632224877300576654006596930206282249820130716339174638126108422863205642641832982989788943425078008662629148760549623835703237253106867621775754265940309642302652880191591913797821267478303086857248928823389324331758208646095205989792065213223352243670531815041070743503924475031524753329468949634423750750209373268414598349848167891673604659365662340736563532789824449097205856914078277434266306755177179002125455192992500672436651507035415284644965914818458388724207851594476666627757964859439203908404203578795906277486792856594999734309606553735291910743933421628369538419617474104581178224821098652211032609858181939798598549964860426116640052112608743305019496784821552415905798519149331813604098392908930905514259230243666985167330748750136652730915899634718186380800366757985489486984363811302463395046874578504194476862984764089911872100400663036183682619720650034884527597602676387897072541828966645721148598280168702394149807111637745408190293297953757147120652618315809057722982616061240964661614542857506662439178372805829786104512829260839819597583399554217353841814727320430826534536723171237443181012943290370911493505904061405841549803554487917203979976926138207878663075184562612607020233896503553176417209612014140047923257412137965760522574551849768460183969563168339978760990106277679117356127017062901290231272582212836810537571766786954301608633722350153133031315836426887574957296413566596155327412671045928935970168575317588596116270551675440806550352256905267651583686596752470165237441253379592350197259190734208330355779144754872348441381341970366722312732968559518691913118202557753543035003639721893674204016039640632666063074581999905036022044901259676299990345361613104947931537382480885226428708646676161152896077823994928637627927538490956711855095907921874756668657856062259375507971247692639272743432438324284402311546194853838041264014333084683300051573615740768905274591001350508387665008370054534386274964678625675904869231942354699990976117195229114235234345159136138786223008375454080244953620617261533910965974172573799628266147230596642923316365430548890201585724878869055709377301899101540337736927159198551931429527250987962763949498955351161390851026567886251722839115620428488769009994284131154417477580325714215255083000140048137042463028261157279144778931684316253250907666054471438000114986378123710323758801466401547449563836683670200362328538133087857970881124736610016253178155345392236903260198026626002002419454503193068652348560289770984970324967568957014018717607425133465391615833398830020232453756294847333762545948451533079944899657384818631649680393114973611951178440529853668479578071158754010442258903298007990154917628036773070600766564170209339237221267893942483239500516650386458408753391675440904646716923560047356187722433684623800570518606549020364962981796138396268333855409030001496681093366361297280408475127327947680922839244564721940422800156724449421959981022436893443563243905094735487193397628771732540091077379754967433574283165114590553164103599941173373225431465400055176358455340189684731533297260060161911778667157849366196204509385785037673549571272505304194101406935181269130773462235448041823734561262105841254353765152911310869712103246091699328327530633072765620596498965146548350404271248977980369191081381318124763615530166853596860604845963992761376952989287850969141416790337426807935470768847258170369872237889073013848907290746320882935961978942113983534461456621717688183459270356712590031721349025665555900856900794471528908746466881858268751679761188398107113454531307510282595065806679089350835441273524949836916278335547247318856177886120792862462248906395378395173391435002701765637785154380098672287982622663645172642387178864533392498844574990068915283149940747809392720966060265400008588136845118574838043069491695365278327874402984733360347747329279651585782663876172865980777379711139329762240745600248478848316256988243028680235829869605967291959577461988765801727521134706920454458820686754675130085828096058399400545762372248382809406715165487056032742143161705768980341472886851659320482779873563153789506544093530620472251181225441777507050414096004868891776347945894307455142343240590103356489041551952159529326017263252264692456713927128597423326384319934372867271736378450870814199266085228318391013707680003238721823984848772325481463185079681374154653750636973938553007825896096258909746543029890025380651667935211825689321916536747684439394389110328263210701495826408799436965995129129200068653626084559007125442045344575244089358592375053385583142312698290590812141576111223928516208941245475391219492992595810480137005697197779135477257983431552131867022506602816813808670814176230163320831495913762237196921681727241905347435476566564096781643120644613757228953118043705106384286483801755650807043333812748894008749547840118897214397134796009786185628793713556714845535132269401277158031083326920640809416679252482060831605601946553734313265082969818153401916828230251066586740374353912596483698061653886402217839314302619485269247817005876845752044874110611675280077741853993682592367781333977031905164819404917374200194211705659699214302159662111395205856562166459813148756215092786820245824745973704023347708815757741031866994023160408179511879623414437871598256619487262012023588239885387536544569997189476537325407987107148730450298387009286267976821376098028499761283675284430726491032887299403840778382227172206672446464936536856320591142103375899122187761053898882832651645111771295323259161806527282935899948124207966342022699086309668983068636274477869806388666652652493242510930651503005958019812418368233298253295019540877256302777143189265135303516176515813452011930987076563457398657025361676583966069441476727456982154478238986080239604641317994454560196059299784286478743013273535212341374457801450210504117980024777778593802527466025552766181980688643352352937222093909123390115572913468226525547844914697796806314013364782632882572735289960391890149267805425575723322052492472059052317311446437663299619788606364998353640414609217674605270658031935861300590565347799731790769054377918605603864879002269109920473907947054540680991347010199819110275887322333396572409966488341637586802517607943888431170719090879486800814640754490526291599947654576771928172698465111056167328618216180872443620061393197598965894106880447236504085694383563347369680117246590189293669765472770165606742465909359225819495524372434696433055254322335208392835090975420678431950419572783462421231557638550875410945376092632588367399626240626740467494167714049367748253319121233743353543401274814390834321023834446177401016985289152397329721607836605274071867355188700153486536491449306742354364832152355531505593980582804730529899331399445320957560374763777881874428517945377371951740699542368244323978211676349447510395060779381605754399921979243544488599015644605665974108981958231708040095976340372130023702857468229338080697045359937011258951698561321193610603494584132398370955767300490564081327774105183005347467564904595515699111572479661620462497380697532933054640816245462716203150717972112212887215962166302583148266708611710004624125692098241231143539508778551995510422047393966644450988953400860371167238827054319877094451594966963620837828904155697323155381758972975331864595784304994260396228588137970537382668118149344796352104978674010633375874308354738839241560967635635980096838209489850489703421038926398340265775828867558499345330642681213949431085453262475609495585055231602277537808759149234865126347686888719988125441116821449760263512245530787026542045643131938564116335514248586397182666605033908641892397151355000782533410288264924799213662444662376838321556160647436076869420994730204133432621318165219778410191143402685473765711709460762446191621771055475014601925841182569468600587254593018067020428301998683948181026756915634896432675899459835976236782924343317466141777019698641633802785171580438720905511139828013163839639742749149732742777872959247109016053084066720611010020264901400463130992173121807322347832333075711951543611155130393694878327307166154984246313735430296206407542871222549392415649573787856839669226487001191471866822388473244993228806476647944386366344081982808045691523270268873605821762731540427373125981015507298189013050426351844548428657621427963728018303449518625581173349374493212596148118939002740728488001471419724954008572791146300702357243748111655825856512099585289963141288791991430973066887756411502477391410285394311513919469105505225982018378283196316476399577283077570935538993474493790714720021854803067015687050348771620176776630321577428367082692446545618238381056904526084874479189445921405393148503483280136201697995872559885759854620309142057981709638364096198601618095432085004235366683466538531673097790492616860925771335886634345770395827429584323850258211524862561413286211892182707765305109571585232661262562994586026074896593161332076406088482761755356455071445518355917939774247005257998919482002824162713168008998214770370842649183456782571336782503770617262671610786525342869721947567092605119760361705922255015056127975909367308241431908206703686259534565767661562586948694632884201202024335256141914526860161460359768551851110826926576226702242028573451179877588788059667177837731463806035511719602512028773359629994808592959182681868936745388321823534627154298885236592411980326893919069432583080304784023584095398525920771602579522820274265868670889245731593045639853603497910260407574926247165842660778868268393125073856041258447792169477507648359201270798811569352332843568592623308485339956106954308261068455521213331772020833581261846757491556099581832208721942256764846332302274630087997509069224370721729924185290284449780074288452637635179342436744713366255452527270377648393669525981821792294912063416323518889449378537034304771840607586271567736523097770997248489232206044966962253697449185684690041335775209038210926405496016796564184652729894358449424079323144818823437794270222640495826497198497188409247291383514155261626329709496247718619812824286413534651006925485639840471631603911575909330073812390999816151875687457501060662430840971176848908255724814079529487423423116437196024921185747334184332897383908671775642473184235579039489075495990020693838991877776075040793753229306480471229899358172924935906469973865867389938225315340159266670866267607606198909805865053687731864799450120801362759694224648166490960791974148294615504130129690705677004240836443078263862010054177366381920188296290461039061085176067153843559686730853969090894358875673874940832106333586766102034085617459387929847691556280866670218559315242038712167955128630327277883650322811132795930137495533968353350617979881934702762482982460325475171390823224342520084817288850123503717523045951327438721394206363670071791382634698920837677237352487213322467358626492777760786008191371879087246342273765923712779842040654081731729582999136084907000715600865552802441992611734819353370554285209993923777491486938449023585613223994114778266920561068614421271274017220131028650136514580657182933194587137818949767052009858862048505066742260287490733337469753230005586323284664801436716675714035511375536297847011270268326362660183711382466273410678468318594306457213050226585059372201715109055923453059893322236022249465326641876366205189826813396689439665546569286842780486722238857827525661067764053796010613121948757035697421951569495222524033222823691558493504203569385310259540511433138513443654164974922193760616057873192683935126168788142809106889350714906889918360634356219042629653403417265489190213369366440270628108529311807951205197849493216441071725712932826179553961486327338820174608228001221201556940135600753843104805295559941881301004089585115298592173001049074213240364755401105599806488770436900880965460117212015026307424870173352298674640120358082240720120025742387412734820401962982418429399880236757192933953791301966509160142425255786003826705366101854640733203472989924148917991990310183766859518977213362772043117109455328151852545445537119085305831911256888126253339865719825049633163450625948903139640980689534497558592997125647703450614521047705402938801526310222825221287503441582349568279148277978131468939017758646546739427885677531303885468865837762679245746354603662409811285889877598279877421987116434801515054526345713536007556996730466435422836048159605460532032635357654955671376993367914729389657206586454869747176857711467692391346726413212767665415973950943468685430802800550642541613351076723274893861194099742837927748083783912703729324708735733994360979180491695789416706877890986055862160662937174831464208359661614609970915515148127301540484537082794898301373778966607236675194624013285595784866206954129648916137486183147487028328218500925377286432504396217079076274728058307718908239817433367728729498242659473723661600332897403026656303650164302473844631258989186358638910638516735609027027447748839400785305743574526062559168469187449233594744227232771372404460380335856208277745028013246658523628933987371134940455639374217606818312210694314605380549820134666609611599333533678394931301809779214232955535413037558777431787758021787584351575502919028511263920542449309875939542600011667379582942049999226137211056001893544297577401601976809419365917030755474527853767730972901015913897208291489013161000864994933508669403349588362198766591499857308620148319131473769745968556837633790187383284764340246531570925439447540980071127431106198009418988315893636586067019565933457057080187523414081974684457334934874418823450518735858483463579609963068359643444682075368526439147600631162750625363882672677605586647243972798133054114795514360048999378495973406262172919364845318172943379886416902187302690080434866653463027232368835616578807274779162133239192949309883478307174955426122840379224103107532872696329213680982939031751584654948741031714921735912858630901544918266155304314142282183566482319750607109827021861487867742309144204204791102203632403270843451709438381494959707359414033488269160433125299776272664557634300145023561217075287562045958657428650951914421078030029015130350803722836389107045317791997861480918663002897434655270554334135392367276595318118128007085858500150049121408702473566925887946444396322568804339354724251745843107028452821149364487040148421225717858187650692786355705787745022203777775457529553822026028727604800819652517870058892361959744605784291121051996635437600037618881295789288122076472368270704718622898633887050907278327538893376744795151315104632356245571668312773404146716419804477668771816201062495735802417789354728024985147650203075818980382513059183863898514552684763500658414565395552450443093711773278894170379513515625002530049295571082924039334231762093182378825647141914528165793578329098721414712269406995556036261635194187613376621875303216101232304800954456321222915411441505977799565180612806868550911538277405408627007277434471716320143709947646429404945746801436531606584589093204722626219571030248365476927020577695409335843402798091529250424381732866990765524846631651087295064749326447653601399883449972505889287180635979361922314832187552332282209243984821188445138394909666066300089215478804247004238370629530969241158135205161752369646909704911058347939626530882914266366911433403709083233215702508553632532916568641559804555922861832292956093225019673746091225758899936154246219554342933894205764321637434266489437529415565004409220486706309902042815469447247963715132734684734903491382154885020789488781658576515549745834793118557729351549206749322944428853605039140384362342672619831276132163022817347692049555272238693422816383631239196129895819734295984337150966631115647138440403228071592763998415573745846465190318410985245271750707411132443833198546116665970029505248432858414319071498326883208259142359571173512515615766151531111086341902946613458471982363112138994261772332443451177757719487642082217847059237440680669852954527184463167044835052527859201409613319330440865529160596345269135330901871759824438146434888407963868651936084268025298943234424166079425774312596818543973409502403181631648213851640007404747664074798962904763516830534309871662702507326787398412675154384369341449635999882836769432800576998255313515577017229945478516189326760253534974713969637076617628582759444273931558433921460359948779052869561250051454523086610051241015624766545429450227862070634348862177515249833961268289312531990497765928756394772035393953192695931688769265438839619486968845596444514970910478097628364421105826624140374573234611651942054486349354522217394177819310153700652505506547820640698142259942750048741015318531644962409153602974502204506174162771548454541042571399796749107659321519392653624037427205090363027003892756940254786407651903836199866996446507606133443755623233426433043028180942432890859549574460882314596225427482619301890762704073482449178899924922050780159875942044008671332776505511726333710214019987235893803225839331979825458178872333712468828207155815681644332423927124605856811186232714952520954878234195748888478587787998754510914560023521179512692568557347896339729833857756008389377390861141809496208791887248143202979575538808410399224879359616778479960243752019863724949147943644481970295735350686808448893783534148739134160301120790093190184059845947563714736380250355510432052299981383075360408939493784155002299244517337554974088807105468409908636276049342764625606309856479160380905821914959207263036206238441741077341831197850881570980644596189553797660797273530643354116761724876793298544990388187916708071792260321992026245217299345044390096081785933823872076156892173056454192685969699040021334707596575882083694497245002019046110579708860167144043678221316880586883241527724390923933464669573310506464862208645134942913677859976727931299274097449765928693543830385855994436783489420309525761588295490823381290356810277709690060801838032752416925480710182454376315714287916149157573207018026654039478883925038186597851674394292787012827253491974192473999083922215029423950998469889252784973704963068024509114667685516527619866723377762781680911588439259640612178212373898359356794748395003575360767731994999339459806036425948971234632664489578486157805344386664557890373793263120852734695004846799378241884192094030873869666031441731508853845751813564644304157867211659338305897331037613567296576883234718650799145576189094859734921944693580525329802755774302292430506202150298479252655480483878391983032490997267919578466484532069806941628216185003495577541626779852649767239203484249310756482355107032915367728369456102549580035686144284871122303547185768717363701851491293037006153922666849399326099777148929354705787800409066968366093302961177658345846533585561750715142770098523476432669947929391443431669322409361996575341953259567988992075566153787920319773270054345336621878617560691980062483347724069887672747012882768981277768510180574163202470146856142887701988058766749598696923619651554008028642616741691573526666518407018123460936069928826740380962368083508743749032476452815685571846405774056374563108957576169928145433445143700603034616098914119014697471978331793640220077107032998025314433071727524278509350570791083517931756732771016596301415891394032942198267433699259350075047446551701058917081180696155613767848349994619528648167715727338934456976506855535584317953441909007435874424951102674690029483573374747547909075609604912811184833412324433517850890540255596827048528642491847999093163665289743664600798701435296092404696114655442818755703210546144519995538420585765878205754547484450782697293446990592032251655963498362264167780845393546781751776864288943461116418716507613487579112592608288263009128579573350831139888751891813175119185642808787639069642997075870115800196591031299718366274967243749266649654578671467231585738992374975237295367228892454803416302342833830098545592577026647751601696470380588511958334337864605856957159556152431208649009969656104455023394294630539911960188484372667407705322943083984444360606888888070068828662786905974195687929524988147313151604667453225832635994152478026293101888056328935509200446945560978125896508924254454588944260632933295709684787013084431108046960561014102127488506586196675059607185522414950118338129021477453267700400202969848232204836491795057288691351734958865236764106006543318835141863853126815261031097725576507525627761120643892324308326203919946841829731690852183272565028941084187156072039285279067319225494918383546323651105590800174278719540818430995988487253468368655620925832372848860995300270517916400444557602998666796109549757541276274896808028815805401141380819073554210693951384967960036575704208175913408809736655145131020140084626684898999699973496901767136071142045947425076787633225327417765276283748180754840873531818697058023885635434331601276031289519071502590972815390832501910168187799778974871249352829204761864185312830873234433367950572996789789776023607235437867815235012409455273849922043768092407104913249338749603747919538545805848773480590821540872932562751790995690502544992017945766725042271732428494524226212535533376574956609532106462150514140933821853500353912297570325365793380648482007538933868840335304857535951514081303525717422508049976653865277236568359170940740327800225697938032007468558040284935227722803344999823063110907175572465650393277620732967320706940485641835359308783436362196050754151739662101126677477706369052701871653655388518755024164614267646366052398442751775716022239486281171188625257078859514419086420597690786153257785641287962778240085047827509620284995694130821306772933510351320421595441415757749630615468769823405945361651909521543142691691560361866495868130728227658258900011680067395440937774707176996709972521296784288800558574255798532356542152577039553187564432787907501705976469012189847295680858064582992310091339396038632801796391450232529305527770046864300452631963486273467674015779659937933522026868405694652914530134204450884646988373012386074182830407983069436534195988838276609617763481278230651393591884721368060148172369724037425740464271297665019740988756120614299873099095535062857806397768848185695767442108179619313109007361842838485738029783787247070649086598459518355054431428958238203425867326262828526359223139750672417634296216786986286515009388508314800622404718217926271643033232109530360422812054997871766494408757279707698090929384684891051461725616332572165053186756266913312496636544471025944598565403830487192429203344081185421903147230166086715713750316789958130818321500861235601962171798730625834187828295347508490818878794133564001598532910560496503376960488773859516076377443656961188271334009706105310166264437405636457240676390874563340213148207859742569207562428641857347473001876375946165407016801224587477143155653151150806786330035431750183479822971136029993275397794875458619804568206261805501221391105955073690835399548651400730586156965348828794076731416528726132251536026818064282133641354749117927179778212596608457445639428792948517970587159784509778888058328536897304868513727572355433301831262966075910345409666236157501709465638888683702912748799834166094038927099392278322151005346770671409322005320011836212742690007691798683661406368298364617284352906843383506901922334706363071993261136824689705878798538409149814144280651678823844523082910090837671950135328463596963073598388252704804465701454158153716525499542874154971781770836720544024472724688456477589031135434585729478428809789008188107678317992973713566065636388527260599533748211210271940587275084682112543570950353761042592749533467653165337645409073354359838694157004418741663010930996173356278863062816726024791720665960283047772393158425747482229124515676925550303954491333294754184258130988257272188713692580551556164327649375673307718344473829721193089084643962109821479000285427386117166035136393781867976229986614487342298044420592331297492146289899454503712389483577677399397897110672566426225997933492239451360259467741785117272873221581128503167183197192515641503594807846707667854649715045659579898915499738005241006068609764777459075389706104509647195653937480331113295916361330907779385886093101320122257223638695158229063988501252587819580895277577146962806173040734495567506533795872227888947353423751566339904305144411520078898155378166947003407645502232289541338419762300787148982201188875531264574367967403399975832773533153603689729585594498804831164968600575884942344206464653908746661348179537989165142282097448974290589102880790328759367168576223352266653839862714960733956343615713190848679809177629895120337293878505944187084235377730403395080921549961192956082098868077106340527315846479355674540824401054035948917544280108960691484078049641890460014193129810817814868685148125921531667751051172103225337730330145255268919116761061201129092351476018336653159849523566277030789530382609427458672647395507755915528358403950751131008971200989530304199517532147365573387334727534852327143338683515909546579649579043140025760153888645147211927232229418922214432087360838295925023957403232699312127725332410547668606269140735426869767811930036073212636670613304167653507738965523689962265082828479162107008868519900282650039874350361208354685056659813904946795548751062388514545712878530444107043367379817598788216410593477026508754449087601084371081607508756700231057509650775441567904245783395822255567621277174647199391901231536446967215239253886353755976421043628043733665241127282633774803066774888226734064254480472190586684091658616969470457293597645473035118006305810180918740246650515266705519445630233201335858266526947413994796923828951521433648099785493418882797179117059924954384458102610909929611576706604005111132889080158994864050174596936870445084778896219136364591976518897364739835886288250680502003691767239585119120795144856989610146975184491461883653466094608638758111305956757538097962837578860681267323729846271436265552073172226155994735784669532528959209968427379212238889785787609569690030687508381660009585320424616172974157299278985036691610577332047214383046652920303883205478556069854624066010379308632381688425195573663126388441700430045962159832328563994142867522924139496087145348203490232193924185800999670036326209852545548543692348621698682045726465723487742566071389808044508590521627070139290080248332530057593486458730951468582339251855229331638399122708612972697529087397791674104079368061752225091523444731272911226300903215854677039123002281556684756094138612745869766434079023631058799924195923745253112544111630317683834864223991817984155681900582438673251494614592377330016442503815942001728830772623753202906699550500974809969083334043345939176539577949523168727696184291836590941851195142327522214068717879150392082690379224067165759135892455381288314952982916093686644167515503569428591517878879905794492794755294567772566533007057667584574897895249532613606724561058229924946503479814524018494905973340175598291460940727292345593156120722561591429449213993046504583244519990409715325358418609760549575947224600636715866551933929081619847145278763658621133365521251792481783113233826900793789420297810784249454879578157080225793580951295628337902028954851660765266234696625987125091909375604650635350955841452744845556503906539787756556690488078091105673879242873937808901142134119061445747171326989329642463974968568809157088265177451851483962972006687797554261026290695480300337306047832413165289932930894115127747284548142738208252040312537537987704753906020662116053208633595565361486795754856274552127586763422821127369058749255074047050320029907958027204005725822814972710302552649947451103197440900046516434914810850668214566275243299308010083648456095185446329578241263764309176818274267116248931815600352118832385162774359457835986828848047752889521723695681029609140635340773008898896286779767562629997413900987281590577027965445628233058007012128482648022149544974714557245760498865823947595932790975991301091470253240300718567665703778107788066787752363410427686391321835748933557949487317449352920953864739632027159477257365181865171815243642996123360478806985060683413518745063194388883357597842066292108620220751974787411020253467699625694069728850767846947980683472012742432360482371772013468401370839321987026745992244337480399862466429754659250628355709659983116913155670416890686957182566497244214180011945149041165866284182612589524188787707594288425257676236366255749289152544478170047438659562949272499231842460319476283521254149927819298956622266651764092672906103117997526751350241063872281997311334610997703332865738057351369677950484563006369206271874698721067311458313499193365728696061581468201929645686450117773047668683879973843078091125580110699574605922804777978662229209144066567899318801847023118214591310074404881019483203894716090692984482224600540874010665796880020580864935672869116982850614417720539986607355647490300884415590975153913845299238809809081903587630315819788071972887946101492214631740731681682644529694893309334854471321065551469909296718082923720068686452964915409196558881625686866352421147186235947339286104477986717911958479694406819205611879078306044879126823430025746940992743967479239627158610214648493354517575256508998369869433500042277842576183014682416769887185402159743303682372940478073032040207201657274689498522343010896729315995201990890516792414458351737543698734310573077738745396505762404923982985175855125011139424679052193308066307305318239100568364470916452192108573680556518892966398183338707202365788918869430918375809679398563927426994451114962477014146686432939507484638646778882841021818049913253519219367015366484242757381087992450456889345005802727571033180981508280873651659000093539351054712957082383394679361949256228445294481343651688618480145796987886842816989337459318339293267887289990084592124517853797748104725116234410398581152986703233839320959908834240997949469279131843622768927006661541449099167677107520499848344549621812590252399956062335975418977573706140551523496387634564298576505141732286044400926934163794233034815426374769862248661360311867188693789921385791830621787730002513057366388569989836937885042473167044061619693669900462879098141194469811184193638859408938549855950848775057068668833472676145777559492105450304496837002182039831921522699582901621106173550979712672785119829003270140872130634128889774251637114835803074776136083072416672009663106197634331972412679751106099359205377134846374824670142318807262601450053853399081938640347540674273665122385868923024205016686809150953055995357965904981991241256319628665780308838033194849936958070176902130888161861241450969895316455268960795956811984138523119339522384222898976235614907897482001651954884352943367406655270987507904492079928645353759488289032592210949890064581131452332451751340878169269919653986290961976708064291801213628240645760704100306897019642844200292759544503856598129105581727073505198801316383314281447777930303089079768901486348896913740608604986416529938071652486543099580415406119756128851845497552824524464912467663870740049441930356319281379487010303307978712786660010829273789597938199425049649821268039144768941600583537156092826510543337311491938807934579508420911605653832132365069451890931351645691146650155081437154366758068417506245475501849429284248968587241213136433848662184934645827577451419033339456037603897726924862860151880535708712240705585198291674038366545118151754441966694868570676583725941469129094223687836012843457946950645063645968645271415405465389435841472883085904616801320839782927099358518691738613121123644095077136960306069249036026483607613493675729196974358391212465554440306372836985979122244739746777464439804428701330922658946619377631278817627103361312311881677834797037423987689391295368566491596625623526592139446619358117785166320407730926668863136017178012659416911205268541809106871377527036065564074108548204336452967051396932032718011929007839148394930501931826483300523466984162509742352091318399379536250946053720847652593812445011880928844310076556530503155517981843599438089264415749927274564092593262811377295640645176732393823986373714132989450883077241309004834479286627471291156544143081887676428418502744922683230584065298525903545912165493657312639494568562860982240491997677837326510532846242435883244605080083349292855806899163162974534018631150948900922209563096325750458880877506442955631231337328023261521742716682132133109434601737263133676137285186343426354526549997635705073007029696666725940112710535604041607745195093302248000608779237893423062723956068572720491612850591649548618787345336058235760215431409277872731154440353000834391192551176297254515364615375471584957912595049946059396323159091905311337320811436958689522889326201723617402108098191545811491533889868385024345944629140606793416004672849673249142360670551461786497076190820330497021327020515403536653328619339159092455780420218722620175244803533753984285431668001277935262924851482878285223410104576547731766866701819428735083454007953962026480857808435305048857193286415121485643850449016809307022177203004068880340585113088221394007916095401784812481083363731618617946811921467027108740068696604583553101861996253816795841444239797150395469883272915547953654953600008288717506295293992942946006265743544982460213444452680772139705663431221123256591496628544876055364060115608059928761949882768033784748352726180433457603195964799065566502482559116036231266387842710500932400783827063386233442904729152799444151667664129068146115296493238228285364756567702961488065476510019762473175662872657501111058603574197969552470275918186644968114223700130612881963122980339346110894523552238278690822001267588910366318522237423831117462863994565027212591668636646346366789301652267828578902282996509984791312542669898708393783360939955935622738174022024396194069976313328252891449882245116587994207784273880122712071109577443711980926556345116638584483332670830564198399387556433222685221146432234039231050508222532813717020484708582476380704245774682733612578974696061777267164653006896479799432995494402616421803106978892380198132531194809495228372517676107138113798879252934967958211080242742654280776351250825111233233554323667665318237684370944628045256825306735653122763701556384327810088516524210129826681295751239535180233985247474551619304356725603208242770898759885281952019258734857063609069615959362096740648033487831903042555410002381245260239154706441692038580144496212760572360081841396386434594178855464130903231731731398875270814660636126086079766584629476819434671902038937913073851480301489300652859392210475728217260520240137779258699503079128111681061001118285038837253750178197435945723775015284586370492122208634008447163412262717723593174294403842540686094380473146653212065817618773937487069790646317054904367944536825632406962268847414446313776268634838824289249938989902102211048248067634971443135326409450346863145238672438080414409079394423209362231945534681211628062881094215308001936098369941466414779674561008025850144606745239873779476638436482924236732982928102024199750598108125616231033288165351982594982971896009929835939974272545757988239859464002057647489519497570110255703336712770720484057555921837389811559620218371072369232809618466480199793256248453405049091537951391017116745125795977478867226982753337515994421359283723632299039591614397724063636937080515246599833310771121013363226220518427526290966693266676197674547184801799358688202900670486706957054520946949571627379184500513781086025960723095654382224910756225072072146843672956920744987847621482201889025779758690005289960602629142273459538483387973925171247260119653432408608393473171532614780874222220068665839065418045851600090303157069266630469778803508254411186622971236193327556048803149691824926187545306307955099270765974663727369348296678964788337302250660925490308584607195347540240142793865754568705556594850440918729963409280972216519020052146647058399599769181877191453952342554294637951244881910306938964061980804982006438144298079007858886338798164170791678254595221875298289035663206803767057285526266824809317072108106923855319965619994744092439287895020328045681527837294566459001801379878497912709073957054350972030803631572925665711624325105832064333162227396630897380650066014027915502003681684707770255431240001433155606125478343463124754633187012131112848436704379578190498017096390097567738197740155939195307476540525847098474522370685431626402186040038062068439643146560454918527748378284340390370128017561971328171996659137444891600627713935172468860719936659732870170560759749236147357311459293519225512421458815976975926403229849823292797235452661195783195909207705155397071035290139996318806591619875984459246424364169264708681301768695071176660946350889748641510988951713592129981688888323931427022053969307419086039303506731599096644347472287725790330124475947312841058580039628735606348382939822675819607582147503680671147480786387177838712954180301586178028761344497867770567696339872809055976970483258297747952296384577408580088559363055314646765444230266916116834131256594213566032904987138744751571863222080093501723409683312248264948278677955125804769568556079940596586643316719783745778344837750617828897160059231637883294224454484439769551307396144321297635685694496457427427912998927952255748062424024360710505742222834999847017559759845439935874371311257820247497931032827949898524641116751681081326908567495308906207320839918415128456999584301788842911764681683883442093472296205731876883736555329961858447420893992266993975427804864753373657793982412647851633345619503977146798280397020952820383492356974371290037570793065413918071158301458654626679445534298327229912190444076875410525646594295959584957282157914480879669762450916925368435158173339924033930416945399376004405632914542342597654962151466199321254618558339032210952565227803194333134151095654674956946864011048525618605163752828068848631090388787145357394801217468446361423629279885607931136731601899296709673083472843634884173410516265084314881338287688861029351617258931019305531572203137602734670092337388887899657918125467620400474080542011202326598212579257037625330374275993406568019556751723226063587181833746945198228149233136103437966815917168781719413802312557386205532886945840402881239082904326884249253645070699967572303580089651534017071376178721919644875556178652702168680467476666232598216899473304355804182096820957669628386015973146412845942570520511815791816248428281106225507407329535835606743367157482624495501425467237545029973709640354009106803972944942296544101099924220315308601937128252038634912610276761401216303080602758581829852093832623704439203820739393190587324489839683336694067600375070340697375619640712902154674770776196428646351272660761463524560934795951994922284877296650016292282321619348750248161053387864405141722788476073897807617912544221883689647230549282325022529168618869957008159026731381300652922217775930412223961666798979701733546074683425531588096392793499218632619153418126304161451376653483658616764540450467091549250087684105947282493242245206533833169590964358251831952273885208938833484124222221585505484673956024574977257012636694218797025674091128549780078924740085261959277316392924408629817737103946698009057243307495162592043608987984840871137916947198344191384998639139572182487085396069654880075878462411541058822778449532626212365365807713061432509022985276726928324659393251606458782928033079488162311040358538897464734951653002080621017149826876576118486950503095012080746113065598643621922151405611926791822083495793923777403699900000226018922673240267798311945005718904306009915226792928647643777291481483366001050595726736159188576764134216360792554597690529975773842889036436320960940302507646007744217510642596983930944041544041425620426237767978856629811210505760156156080925024753203298659552953153372665996429038042956323575176027495793089778748674578231118449891010324765768509358991232629892955103785779302954866815911674378590852504866724060905118250076905829915753955120459381123635608569594746707336647648596597311287736419270035126396793413642872883535904287819537824681031732237597802330007741729135837110422940513425148463434054252567639220786676558463413803826304728503351307327593969897804812473111518443109634115112473609367533975815186156133677723843799348185046958219971545338908083208107044139360468757161556688245125128465323480006023186370262634174233422163404251193986465534315967136749495741006424623593858690210489314436904972694786859486346741310716406824805953701136041260066657144388848589006555336502284130153028732873582800345088209013879134447365986134171511462418191582473489625749552102849336274083138099746312369175906819188649321773222889919997914418274004654797822991224477655619740104230802561537302730478596669977791332286557169928111455050321411196704888042957727993600497610241788455437008492597202418559110108809753517351316638901453693399586551153984137176113901116386221355224060926987745404995286364633545045328142161904398292429359773479992963508280026849659677695320881239101337918779670427136601068648065307086709581863014945681777902799913325203024238979057656196128902513810095897033101478476073597284810420791204546410907420827942968630182917753600668497389320855429545677304055481003520382416434638721881324952871134265453011582276253740382534474015773883649039292827487330073071170884974401952666076899532781290589303503227902286395619090963906580068718427027662363235347090020399590503467120844760154361075434166364278992647669397498109072613751823270738772975146373415706956084100566285650506412334679024894390122116954549783770287498738795318177092809980868482209769763784726547651401961469302294836868525187902093886575551426229234047658230020693690355039526781205723980260979765700043890136296021941304353500207936615454747253016898539475149288825491014267431844135789320031780921399455019479497239756085926995713642629901431286554525378908169964818929455896756356659404123769618760354701263411951710621048306201678184383634640903108184750500966927773338653617575038135813524155082904357560118118015749551812622523675169935048777957224448384529055031871828435104423147975129605833281571018263913995638046821813865367530759086608546494754099036157844757681569720840980585806489106151314415192424367909610050619028311881363217662588449567207231112873167727166937923490034301650521319475564971141133495825074854876679729023508943183326233840428455243231735751920870870620372006887945109262391386678230378068385091747267177341251821217690221707208638019957667940601246591634183412810411246961534497395114682019198149273781559669664070512124142926928313916785850601352231936767103499341688211702116212922999632621566003253699933696471036317567285701133245019037116006494422587987909864337167450474303809537744486755102122031261297453433269211318203458872538957616716055630038830180123451982704574361227196292578927225484055889260726750335136078035271806772568806311964704672625331855268139129794531335367456873831562399247670419140302831393433802103548888516094134573542741204475080319574551313072174623146329613661253250594838688798557194955127280117173093898841867771677134909942446278150513052432677819478357319719284241838658050452364413799635272258650099342098590279937951841888343394828980502180263568069862093481412120467320280312495670569990729872739307381140065151242186374296676855622823125507875438453154155200013291707901683705922603362430012908248133105961027666229195523684735513565222449375737985879168896065858079135471036518282436304882237986950284936051612552000854193042211882435978814656950749027152893048805510582703880222448554480701123166735655554199968537939128355602550794236652500698289031358197246629721566520067130115857034780630158728000485745554032866143142444539856713763596027871653531284830797442653744642026297212329070274484159683222468676227787357299408286981699724791360900751577951796296790636167369183440469529849613286518093342568464846132546771295760586234453308333709920560756962938170379665327836900296491202461089474295266550250193239932205161649237633448551235218844737080614682508795286768012859384144971088685476384363222429905651804103981494508782269007732347309206411213434889971214375415302737939850888071345390519249169796420340946557656572442512032715576335351062249590687465750513555548688479630877205225932859327325929950037089840302351154688277903786134290415226721559875096315004140490082488304907826573991689344822694158540798137776112725720557915529806437511755517307751663754820487341962290658224007048045030620286958360643248251806434022630888517280945760796338687337885947115719201601338825796338156416372070449569919335699159175612842870839676464019431431528720526907258580894928313204568305896788455766314669514545443182031352306797069937995777277896510670259515683248234159367505886879049476869726876714482138219104001664882979876945229663891588515823116237026575676012929920582404114722788795790663710353455143660879710358797233822185682598562628618261087568544827367499448134706666201518558344380940663412841377066255787774069326286753341436452847945052862682770704419500461588965777965509308448923116416432411804285376749090240418608301046414479501817054652242939287099854647871287368400594866769384882553190043346217429561923120560683378267975180389237369795707656549829513517452405657161633430753543324910823809111576302368860289423656217020031303419391738023371704776640735160070599492750116475550793718101236827346387422759520300042007232620660342428437462039151266650775096828016017281574513731591064978202605406102693190953736564416198834209123754367860422005825408689683807439669000560287504121831712139421281559049491900049314963359777575542534613620130331667746300180566295382005203082103350136126788535205506083677752623194261227874310439517628656685420259182693360197291651852186830864439575524263590669811122985582424514125773636482341449338080664903668828685844692651716254756361330935742778528962330714777414733727205842257471400133258093972621758917651166355032173825730093730342209955233395848647242743920919241053329559363129314702993773590003731781399644660596228365288755698238895679326498188277926178645269216893069193571709380923657222586896322058676484654979057803428814916934391971352293661663476438110514122753908733250530587307809450060809633189928824323918912895939593229110212025530016788237324111765446331903259108400905421296707718596922911277564404288389972493801807193638092163934563719099392328438951151689054939805275396794887472025067682636118074225473657764024371416997074916058297328081399910760972992965645253088750058981412559570179239036283931113097668951526409552870441092024056064750196356105137151827272076036874094239616937810280040774615038107070495171051380492859387994189206508862268494211932558490710610709800109135711629724175681201863418960712561417374119368245926897633778384610170767690705659231938365184892753972532283966752828773711280144948643466753739444925385320181022831086351611046210177619552071171853445418199888110286294809217410704505842419252103662292454104292065983747022158989868045715421517698251675756684777319283603625679148866530005943450759087576850838009416855139665945104189112466562966167869332031019176908472382490357602929142291527151404576806598317104657891998253982538120119894249557151333528746157926559277585776302991550466010469439023108492895412165302351681364476033850103421573022906647680343093333285810534546511089964181838427752252298728298659878763050190134508280378324578333018646923620247126072475812454445206141563926052218278820081310625085035325688628280469774550883786636203942219418372359960357851817308891189795927731023741395529737636613340751114475900199975170267694225189525815663480461030637322767430030662500158761041509663138063125081613478254196585951689120318415724864776650005976610946538775582076154619661895829063772364566098291074232667232809581559369833382859964136512886720110909763763682224758722978369976663713426591054002195292197612285357071138587063997822005361607399765944851339933852979614639934385418300220662011350605378974231924108668935998157628081147681184247876499169549771832955044502537350223037945521792628976135124572313495375095785087900409210130132701169603101632201225759877310432416185479253426343191634377149279974914791077941862131510467542233297165012356833466260389158976354302436366528835372876827411908216595594421429217167575790857986555176807489734126244993490093269365649767767055952044410808699743833232970126467974165324178427680037845224389737797285792222473507824359443454943914232841556101255679621566279376343311532141805477738333785573096282559903997234316865303860203777742819032315080516084043746295151610123095200257740950656486669721274105735162072095030224133674322276051937312431611718828037593254779919571587256207123607889648157664859412576131186206573539080895232861547494301562759015301044580948423683964030735013782404576470825343182568794525713840557781497353551324453678749405175376551993781645647424512669731199665967798692045001770545998735000299770933401081694192288910344260453377654200983604051869768339345644101078822195327269936691145632034113288203847717863679728974306773671010726946635884000997094670234662453591160473638307774743723692113370925489713292182469923524475551011424694561099841378071224551869767766734269150702097874050936031942182172416830460955558192155100928890484032620581622484153693580300247389563186650935435446769243773694874820509349962278565272387742871931975219259242172858390857615070881091979274056267631157974804782850907179070113785299621090532724218342809496442962538867092034614794009336350421600769861551097433596612731343083766625506395866838684421287770693380624642463165223559142287006991624789044732134614155331927165042703380081853917401133609477012148433919302528618367843428018740456144059001136796584029242172893053494356634169806409819727568855926221261674770108579952055742512775121537364935044228628305523824333135548714308270844168042238362579145151185499921552282740660330910978970904318046445082844698730265707284070071979142554311857688160976186255945315955228280217886017047172824535899933475461691661980493690574389025027654021716081650051180259565996196770255912388616837946932565632307973178129573957972403380744371817379252228753524824346779580463742244684743408921923858490754212189751460984071163371869587450225375459862694580162563493908850509137077742494743510977550884906422643926935298945217542058340691185795956073698072736659733966710782980374788698202515717529886909733363533677671510768918648290368346967454142034422880950765778908603370892924991234365625555584712243837295389242388764397444960686736122317490558170238937426592517981806275792347236065262631734775311763601659638932910061261648128857578005610529321034997472198546404658496248557375681632970420664658981111259322242829452194437272383388516561658049096657217403898647330054781672932277420857068685932066092831396104104443841277233680327383504626706057363164571310822795510184149473510880816250817914316656278345534596646287328066168960334581684259293795945621630279018633358335811738409193687270053884987629137703880309776949990170355527975441667951230167559897641865450632023576995242678860673611630296166534023721781448495356165315890628448152123153213248426328086528340226087565533384058187582622792261334438664997414928362949842069916736727046764447256813961310287105159812219317790796795907008297382738794997619770423826240224060667587392056153449329494275156977716661844032352777881632788763930804751333297475581588121748442363502050702119205693436792939675678013805260225727184325528464252345066936160714164640579239392815495983214541959688046905140205892462110991379914692317006293225541218986854822560825043011948541350093775618690545776486552539544657337648957670622683163891891164334615574788558628677553702480415803297082617554941785893920529325489733417663045663492046927085963494825679022566808987992107167762233317221265669263297912996888966821133525267165750386379460490860821679195997229857413912946698356991161890463437630753750304604186625409404841992522822091990383276503545746924804620927317405073339358741813054582230047865915741173973427025229954253370928600228897786837046731985776920892309655734128451430891750156649977242231530819466633794726083924622960797813910866356629802685276039764654924075293680448140857932989725027856626772421976239738766948457300768181910320396482689276819923454476956151069803105487055841457511483827600235237426610751576651208266749683413927630303623351687119837666219139424397139554968116773321167625527087639044244513501742530620659748371977896279717354807573708501049909969052321683162631409428453777121966382038376295366245740004311283338526420984177523750920316216705802261162793603845775656510066610612857324626175304583841569248691817482941161782879271845242232050821044269070849149082089020765194208230720298231538541297713406057725291555978028357961824686863139573312629066175244878422457493956962689977420622986472202671693902137189807528021589291200643700734673239523758191325149361927943089996944064054499100847932472079704412503157441538843088247353339403793431369935535302214662410779005973493331521333046890136158124418117608547282606088922884046168981836761081957402033799772245627652618095904346368035314430080588438928222705430648762455571839715427351449410273737319702107385268439399852364184802172469888314906951139230082047333631821411272583028238195782547283999596716652239386978795792893494459851770502501349338068105497361743770069392178205389956190869737291090731773604166205444728111146874368349990505396420303477138680362356507138597049326903802569786581885802884503638221074998622464540430092702692708417846501531544282629492010899059225091294194430924494772685213608822172270432609943027478807160216830688876690486989649573376921786350453300458354406487733353841895132336164794962624403996286497126861991669613222848399888103243953446199089000037378264468243229883421836715326070571790626791534179403748816699649809222416533703905090274603483679335791518967221074531218531580776855032609362360047183225831465498205200057151281911339305385778653514105266971738657366199798874903030918686399311059171945848784194826465356360465464149431242986453334497395202813983681867881605738212002529365801388244405088381411275927229240350942594698657618690684148367435627174236676456376437897622147470079575850556813624975406771860235150509119838156357368209281382991873622456240572380367471668324606473135336793105329014607776126410331473366560639825050800608706011744080222574496875630176734054568043547488909610141078794686147020529317784189724925716454844757298723881377656371719510261008895205282158107647743044895818731957791929136843116492069547764275049141353074905688888489828645487353924443386078023084194174144697441766690701570360474780091739406329855531811536730443605380958088185924410108852734271575382298077371450591711599805128711750350482255476436690742272059614376272778400592565266716975906199320680738288877184857159460738289755494040753203376893189382813067109445451032802622722823600611096232978783644658519527976236705101221599517677981553347087858467416129215838386250210356182380656102155972482094220553440020778310083858157646927443909582013440003327962874245884219400850342382625612938593538975550326955847648663212336126596469806293285960675429373765150148784974427201238305894903649317444827157410375124034436746976992753566515463240210975311888899834172462160142984584314335977532660264270687367954340426720079802387146229484549700796777982784823675140449283561419284650304096795106716371828500407397601821926633405733093506784385749824920940428771498987607914018602340111420918570873050457170738675699371500209845214724904045830169907753462922845310586387133848533112078973597541241533532215821660419143819967429679874424149381442288850219278733959228272076351078693376854701291398814105688978427192990980271496522861928431628098023968900493000482828617859418890295784714814751916788167769384809075119975494950948254709047271899666558460183807095457237203694616047076524727409253317564850290241886193871940384622650103955117340721842853064120729544900061349305380026093785236068632027461767634869383812833855634592548078332306846505100540749898305749972447471227957509462095868367009960725245847051902345445038898425701226921588649663087978793235436115525643053424685134625825300894871232453861683734693081229454933729615805961516591787326926850505208736368543927691086155577748780894188769528228601648446661665756252570723835305289177098430577925365972645632982075142846071913795300894905754027489304271363759093839200136291655859856216750811203197112224964081335562612066579340917945348456882998136187758993871655063133819114258212103004063013260859146920454821050303577128719490016963016157364945508917079238859375585358377882271195336624095104058854507894169725364226152993949330060911004183616141099467713341393929733837484704481977750563195492845654672941358033085043052036138658979281048948549394318175405458680226375612871261296600978588334437773336475320964789095674340727046164930444550221498556179772072791096216072055429884797863062810011431901773841266398068481599531796898188040002741432665464587593297065742642827364551042892877681488038499333968257736851105004914169173682992590158613755664499847013418182912224753357036855276310752347001914932872181387198712643181731281852980874242267501392873919180855315976842886108955206065524593216298893792449305247125851422607147667350492064817976167608615837976302018127238280564165473949486419568392781356585746688151347652840684404090741103231809151709880265755139306366728392837127617283885428821584465609550353462699877246937196808303899393174693175232011497249424532753237181486846780573730705244068557350704257507899986167741493835907401275001119666212534034960915976998480370283444371512534750303818130014865527118094201609630310695171967078357551610987261978959474082224591871725160554724475096211470207605300108838344815960143889997328262776093756561370013199747292491878578249725483209555621109655632317095111887327626280295456116563827047862268038988719493830827356213964348598126436068331351902046229472775108206838738179824206187362772677257298277331351595956839099372276794161596889815411621240869837104644449772076919011941872311212123478844526140039882887792070467754895418121525552131014258795596865270712026355685568896347141228872952313251204951274038742489814103298037541822621672402353851995312304960947529088865938105943171549085636536559113121274296535599965049343472656163862445471640711785515838006377910680748314121091966180104872349899582769395428397249636985395790310363409998784090276347352721807230960612279067065527494447827296325554133450587404755817432933785909216171283588466623651004957398278714010923396402459436583439019229813477698594012753501119086661155467260320737907067501478760052977414826298175553123055440290660001129526802954867529935412648331064956022868670486773070054022379618986590510085671134592486295211032472014770767064860338656834593575226779755785463190326988292315030078162353378848853345074779252013853131174935942574066797412459845254769178170290404883189016002911912477452698502868739765139369477956183367558042076505386652882681040442690951670859812992557550206911389314212933841300885110362645260109912800761045046178890047460207546846192001841760325388642838762342206251919890463259114325110887090157012297173032802246891928310704376699515156041241215796431661022754641469149835482338553385738088809224885043983497566951010627435248216224964992928179535682726457479042087664181578052489577492151105447126992776066447811895515273103434478201965414916815256632645061182454672540066770802098621863318105028790695084861946518010416748261311139949660243267318277181023067145389446797935194512743691726958330071133064297902252871806836208695314922889386249069449003119872121264587478721573105272299985057943485348752673937163809919898105572742203098488862156924136017981142411737158866112320384774508121126375266919255580809819903289314598673500804726827227412150890836625516309525057504027094006909652112809589882583900038398610302162695453288725525054943881345040163124855339111970413876312204963009088510240757422184877246842103356642459108541719016000761749648184539520398230548845998341147535215122580902186264339641436349809113328016758287554180636442645552008799654961333453477223871399092357551460293149230176801526969766048690115671668656663766384121268134052444931394638168535662429714012480062814788722976553585404067020476108056310348883476959098909127845036168488773989112274589234705416266022258969092471186115317435988374917200765277504425286199563683227326063548927335359629309666371112064884812220433324780377890155357021346605517712949955016325728843408687563123887379035843845113581220076856944862556839946951905340441516642626276795500599691728945841096621928721341013810702013351693029575449958695510217560659059080687922706947010888667781423949162370044862295544725759969842118987953783735042835378722923691540274905628576302113431699378816723200554707449264519054573088668074145846537711355342469026418164642049095922016502908020919869891075290217950698226956910689621465024472882498884862882979010793947733727158836597481379950832897619696078742493242878152463635547728970461316247373122249769208715322004600628909881871843740046866471762857866029799898474174673143040081096617350102780539131166220292350133976474696533742626737826450549872252825991763793499960570238335195359314533040354851091177367851183035153557315770519874108250346462628065427980316347186850831136102321917021652267049160693456037732159225444734864546220896533470734369560536192486633432605268149506700224959241295511169630183551364359350522818172093275331875061403868006396027049906458847719636895418473000388326181549853276369357428140435442826317007127817451224400069880478532846895978647896469267931573109563985090286702582611994254761216934990359692002346317905789182741481361665101960019662276898906880059368018108973944904953523404238191629013354444964075249986403192776114570173091115279762136532608272125015983029467154915379138893379343562634631711344306877684980423510256349863945308235073242712558593867773525083178672379621744243016921865351260923327442958340793255641742090078647156215346339861135532195515533275656516313449165532132309606005817071331796693767692521233090872785215000649668137172772706944163699687375917613456572201485625392128732305703199899672371558742997853498577331161420040151729620221468269976220231208122551918245051118576630124287964887414249139715872406712253927828024264586734444879355670867024663423596095521188149055430728607584657987137004947857534042593810317889586124257399717589755976109689960473685552250813038415608174503867817364890856474196707326085065595742249994877377724396864547964003344695446760165821378525220101425642729094140442354781520969463825756833210159965734194707650522159771627061605396476438524825555028618733923199427474132441113243841652290661661976744303430006455850265479981609443231301640614919805759676702122089690612827176498293784211626831835818959755821769196762259044740481624037706854293370554872844920352924499723056153043838067769252948998788257149856771773785997159119478355115138374876315433704969853677189649729814888920084677250535856236245789255001130161758694401955025439609303407239653808761888491921331352023248885687695991728272467592978416312280193264176736486687544933938562045470594779190182705965360358383942278783548789399496914245087578402514030179245846134221201966842346832594471086739594078916578825069072066896691334544944354757809352276102183008510974898881167512236108366175350120896216711960235046120172649283822049525664047436259821113160833746098342384195957892473775099999179711523036610316919353227351669806982669792867105403063673690752413990139867232628252801014129020621394947956416608624555170834616633573710033453887956188651903494554160513508838098897759068029229287139378750834056914402601094101045785162837908394134379109446594044066928530128421051965101290382815867109900706709582798896746691265112820192943798383134990052941311432818740253644653580110986622254465822720623294472055302586451219643062191076459908206772862774103630997109335405747137839100351716179970691399698480540987408675490295054416932204046145876710159597523390108262985987636545184715691258430058129468253534007375868355713676588661874318012983319326832257806752932429170925587769186475557696401313859876202508675777044452248219905152367337732495332024993374124577013910219902387415063668916715770520258419670813540842956894546728209963503458220558586967665539381487058298083389163259820467992034726576456173637760332466045348536593645211747644745434102067205115614007871573632953403936330304871758478608759462102366473280360155560184809660130813433076547164054904284662009318260787306957407674746874512927099678455033037144982711889495723912209861675329320415802180088705658858796528269289889416362165244244879525967513186678612540923440085239505885061250868014718230271173406065040215026954890653687305066499975625135546049755555737977822753317021553118679419472172725675373120109162781272279249227874224652174685007409999350761404429576961150211101443805711999563116925015020539368705930940675419794538797920757264716457998654448340296244681590405215651863923924532791693412056422904923435218279300007046592972561832320135128929862431015497906124862125444299430641611278044187110195297779950194943713728654730286209827327703678208006317975459149459886867313345998785296369956193410399381868656659907644686916948000169718026389018676906198550482851042806379309046910979183903536049505980606240234099521785007992471969671674639911182606763750653955727052422813092270568194358578966935736097559384267296578249885206331424897500184943751458248435806687182971891682270360296422194129776338265450968283819427414521910430168299642977843896349237530391183050576454101746390921805118594063173729401839485290615118079315853737155270661251490051437624110231769717771479086647688308649564026020403813196809923628543331102973704710976787685612510131381180530166538314412498896173833759538393246419402213014050013071393137898935565640578813542801596123023424811487697369035025896426823892257356176507528497290085320538128635396620192233608907515715673465191945002233967911580523641213538028138091446085310105246460416066947239744771936363207367963428778726977283646751185349141097381213881354548257560622213361848390237650506188277269100470700574819912268525750986564876937111036888301273370176215691259245948946271731635732531255810053079675778181727857929189988222440902080279697925031647288930846698165401160787169841594155654160020843694669034391903320744791088158144467766028828544948950649576065753533444829382056555950613808952759363398552482511784601656997998055445288323073316088590523108245518996812276563911966417894012321138269352140021510634974687472099152019944126186591453323843835955350381418446973272414603658663276314809255799200306782364035559296978314204326183710687374654043810035219440182574178387203893751842076835930717534553737155083715243517033595525726449802810246701357285639931321654370174023321464058025596817823811173172905864363009931144171426312807515925924030752451559609923365199275303552309555398836261282551061566055444545397031792515960428493871195825169885019674951682470414607036505298562439056015287530990257761770479471519272661315528010115033069239098826324674538188093026285252367226685840826476433314710492357926554822437040080722230147781358563099302066007069157777282478492381108825282516710459323978762431229670378928261214888823397472322995513716268757670879369430455266187270446739812235227903125570218891695284985084772066004405100172642314862763991319848574062320814641729219242613738704336810810582820431278645984852741566888417012906890719783517948701565033123141671261768651555940917324715431812179385871468205837560843115995400275541801950439872485651929840257933016144236431916465131968082530830042836570537994280002348247448186523574071908317041613255104805218212300969052254635890567063029185592799823350267239399974862249871245324612384745915912069330530589233004022812767209755541726969841680096475033428984583475350563323062804753334908375587282042474918946077069046568039144736947992238077227773272246447344667043654860461667704939477053666973480873302592340386070329130947261894256828859482641107040415502017625579137087363666880258206299685346559394761669647806677202486664739563109786916624980489474412227397055472233562563314006635199832747917836412687818549491868433911697786654689594516448191755306274999977029475605231953817562121063577187473895189854402193092597554490488886278164410899243890951130965499737143332640495895266673525820404366179955319916719213783599343730531340411641118132311687289387723515313884475620871810291749620219163912389521614428592398208989230600791531532586136129583955333369649406719506741227278584369040301877429572714751521942867848292022755857230607551374440878075059987067545371309270106888720967501838951203183169426919352965039544776750926960001808830425278595941591026867366790845018022461872449587351890435364274118927928713631793145908835006765799183961237466821146808047379187828842475655262215008316323848899622697068223353344870375805243675997560608877564237427733447776951992935349115649178305654027202047767081856429853643568688248289181902623866762857129976075939983402238960506947248265770956316920848290412429107021570338576642002107092080649925574074763752707292836606532175617853014639701374160419178183731870356566464707325416685377160885766337312671402441943294508663763067164004785499966343055659026676486358601202601729241177591531276206929482470343741797282746478384321599554054269865885528731649115117153492876685036711477016353869509810496456207020810404692807190684540797986521917487636881721839885119317389931969617790778399405584177866693148260687835648593011059841253791868913644296850458807532312286113831297616226664873434110818221225737594078789493628342653647491648164036598870510476775628139022425906542275432771183507394992669210923226625609993537199366187202529802771265820555199022047331298749266341399913744667772259214740762520544203438327266077431783852796731370068738335141513167783174764559751237483531936608880801763758273981403889719965410161675220422945019427616991070118749578207699585108748227530950220496179618653326231146931335950195364161608731832966577712584064638882660303943174822178090511089568422939147827119729535403762837338092023156558150412974997089105064007170662324089043540754483509973874247553867603000303460564235463425540301333205920864679235023152804646826483165996566887042166043652673335278855655368244449003436222708626068402379765622958013783375998043575924997994187664201923578116092304621333493215862015701224650623169556306191747916718392849906442861472997670650024092713165667300233127906680750497131265593499001694624193975645183065405688708858470175766426424268138325479785463642157719107164318101732881711974545983360966144679666669126536966809511788331863851974943486616758527481536011410904561817363414870317550301634198465471884462393793165737178081824066586399091111642380462001008427880139618168579415749504533665829571092907940524090782722252596989235635150508944002931815154078803281876642195388266125146539780825275473298253898035464945954647026079455506853256191603905618605922743380661194762115199321774710039609862377072950303082335449041252834129243584497538226305462746571703581809604702937150867483145077720554152283264448366077234998707099601268836115747025215039917401035078828971930964162481087824635139630372892919779593007468866418744894448433184823913984626643859066067222360004765524163666217159800544915413980922057077635082222276006900799155550224827249990887750187700436300446886416173266037189525427816683388443283846576923072992728500786037935740186106961986110686898652079794462732741863376545945832842346275234515159463628561561467545871056606005390159180633165500846837650006942059057914626044180311682552325896258928415551284846623662281631062710592051987237061949034768022154999036599257833730552815649622007985894193066776108265605414895910378095474458809041149662489756992481645080190663475969391459479556426486561021092287501131296725535471000717977533692739431031099675353543604029679366036601388845594233139992812585428299277022546440503343270877254495195053952366075883551289144414944637031910427853810201728996674314939975076281171828593158765661266362694812109953058588522370869729610653353586602133497278773175119723575430610195470402274775690360028669618356632579128718379220522319401944738958213207389279869133556834890696553551493544438589612629956892529991219014329970851114670527448026689977125347502450303065605449444728816192115511294769343595452555704039954243947139449879292132085495189715571161444835671875604486886984911700063353924749217672441302971248973988350944359978161343143330350778380868257306686489371079105046774284724445399603592927086381642585772030036231763504778044124366084604604544612072100105543236514873752985479551006491163941135134195509170904710764313345070317994507554930656317124645694099915472267992592237276604128227691745434803821902285969266333546879789259716962190029967445322065232861000664026345769467692778373811411050813123327273815342956000350829076734686174746883338075992973977698148262606624916251029053109575236422986209821001742532599158570788863300640562910721041971640171596082091656056287318996991492258449645725474240720780477510083935490352543765453853099807030177522253808028859544626929499338900887173655149108878129691571379235110447802507380012595828779151120944102955302568168823744012681880654026520993204583159184444399323264492995323208777530206121115037847528035832773737849122523051714653470199756812323247659297646363085932886494534927600520139588188705795908659291996564611029392884338656736530549984006377081194548113497695056614561878750976764157314130813294782969160349744153151608710334350394462770041240792948593395022719368466835902829052214551902108020666671514464553238864205985546806611332138401200897381876621144277142801855077688696086411386323263951039574748296304046094177239670166204161648743507146207664275257773595086792613812611416493326428040046955899686127186116521809988334956178316894497939082987086228480593363438935339447696111598540843221460786786650054163945128950544109052157163586409831899724446532458563149848668384611837846832007734203466990565220123088548031797896979882407232913800160403341213805959589630254599735522991449440307871060905616666464730671138515114036498208807960492538564518878651404253042045793485599249567780934967481187377227985689895784857103891623161796222855085764866641951331097235437271763677696974117816224986643154350318021958287646235857693619476222721729333169370577165719840343435894655944595303388710113587962001726227895923261112558563451773195251230213315194227476150442445549652017648204555750753815061546443076196324401101847037649223579289647939439117610232045813753275761624872887267128447418011317990976185775878362155454760485785097355539845319427005628349150092368480684523281772291627585080126103676634068737810722846899649706181522123949868396114929297400881513475468317382053484940069019787043433567327308024367537196610524047806401361165101149294248893810208410551869994449918455714024465113013287237730395583592268662767309178824307984988478497913653118978726164265392630271310432413684568026381830703915022342032467508266513084996605110946384636946245152166287400318336718784637223887034666604671747144726465280809116522852317014512440388964138123440680488359596293962519475430720419576580639016213640812462296288284961786980141958245271573361245292086307458769483013723801481454182379654471158074389518439139804329214932689560505953732761228999584054041635460540997214078395679883623414163571353291179966516755870751413956668283611486200155813662492373023787563714335000422555092241257466583700149162916159807474150803821027583260865178423336685851162098419880942771259880611096914567521087422520701645643463271619728497829863070403774087047980007123170592833368162504463421226358617555881107157931966340021899363240915389429294879378804867087203579448818646365665397874612093786264793489872892921255535295731994759898347814871057505918731574587681295653192908185248201199479828908396131632034428729374550073424056023395640198113457794963957467727241758694224486916657556142344882771782654309021690046417160305669308241742068203533258073438168355477631667261623720913923016187980940553542901595478102072131338241744492515754649126103954763845669896097044467301912946135914584762511191373073847957862592566515857710421107199304399863129652292459080876825077926147478527041422653637402062672370161693159784067840781590399397351800238737417348709098808644201680691214488393187809525160005778652359042648952770018642142985497520599588684053595955597896189115158859224194096117694646257179825629600284617140268665118143297403633403208099496628287551271986498107506568912436169536431177655246218934266128721880031671259632423338032544957066399662818589755282607466100948202694034873698784635809676976365551932403561080897543097625502587560469468879340438986684059151261120839416008743956892436497236802202459552482582379164653440459994659362259741122590273480209003055458725822470231100307470345246978278832498917209669840383301909759599437423487183495051033976807734915369160248841048498990830373704172747792859903185352572197555883072909064708016359850909335178086354891972502020237775161487952944219990924962186886289492440580580337691043735878090184552179249086378430908420130904696691875994256349874689765303383824035207893691974660330081765955702862937149234846587795802745418449094147332666028908514232525578678204957436538735361225736670417964033953431972331597103115648181149680787755956650296462493055206296909609440307720620949080866977717389278522272187243969754315403175628308350265173914362340525422351934699437174516543462452485903730298540569732899137179336358339402536778082715456740992411971068862587706765813445183079045825256919779460411397353404982446075517876365437476901587017354210385626079835434020095710764166997058298451732497034517227104996863161634241161437454414111770630416684444995919727784335314525218528197632870335543263833958654599731069929995750060132394919399863324036359257493369740031773832770354090678688279537824405754252444193858655714395565969156840623725279347257019640338260509868362842732879482890992249625788132899935845738123982967897754825496356821946373034796454332203888897046377251795449159975228761558365120649635447039792378854416766091607028964974991710037986372390618684937614005302849286975839819306756803207709983061052022170658785891690332916926279928947627725755728971758752455419867903913961224216033849001606746220571554548880061175964081012641762480181109814173115309041352882435353277086806237084497263871057578368490603061975948459333505169502457801441800197042875214350961222679935055383880655701538370419613522464639479998931621693265628267027070037790270650579867256464644053832065656415111971323393480213135114728931995264907411730416587730488905147224188881388934727138851510579276607331400602195572046771180445425223508656800327384745911956161048448842651115100847796958367077209232273990491556527092647348865227390810346906030104026784227984308530455956331706009807415251610041757524491219088807627787123718532990297242593515187423258611162424433784991136187286734801398890832867371812825227126142360371182828797864351785249625330099863063714772108868534312951043946768732721033055647920300870550991220693896758387447203451504945997710837319368706899968262968279985666869837190737032589711190661405410121798359379216417520680475880868648377736433352391244495319179622478575730810435113411022688308328340522472846087875162379970827541727774402464161373961411663371042265414513440415117720436172312631361617882489318186620983676764293822317665080980811091220831133945062649562099010921576766795387657730137881148773811173588020772646182217473325888329586569539839762387285250747841393927783515716501222161762303219629337325960278139706265032317516555716381752762747555687880155658130112408102860270568357516108664987000106610438879177210531179113618062005548729945097778197913262512175633187590145607287303511366582774472668620210728755848432954876051569589623195023444745400328758230765348893680401028772500092409799189356066847775050246602499851366500931369435413552178776422035892953339146425085131529083771585477661126219186642644977641105051344074583779623231105206982012314317295082796575923718609990177153180738406235798803310475673600738204716265570068775255957242252848164205474872944456484506821848980426100087830515389148951669968747526621797270270238718373456320676284563952559471383526266348622006476909391840803159226529951842340229202578422961600741568607367025701835179967471216814226963650963818443753318942220626275257636065674573606002236617155529279379788769891494596942417621219819145292528271585032163541355046773158205275344979452695289925941665812164174296834959120752685557261878004186618618236272310039497141666769640713446092636958242973037162855933263477031238975325407524508639495604456996664823024928479838772994443307083931806928983339754707551102139802942246570584026627869983463913629373713911850093965321973232004770551860707510480981432327629695111151751040082742315252297919241227113262867338436670727066228782563304168824023160540817677854703754240489477639303828261243707211850664170363431656905185762085013091822762033668161708391405021318879814592589640079426459106102396534082597338908241009155614020925441507791958496654622492362481606468650648215669782574257256095736473172719604717637055672328483191894746835389906508616354584598500720097848399874828152157212528789569786456590732551553761721770106973232266315737162339600677027040181427551855475755059300373410575865010917484211136279082016233843732752919388577924019096605076205528663740114996521545701772793757726272862082542263753767294884137391632818388386986125221656229316393154971069785603786923009257725875307404065055738383571196747696139049880698186040527145696482039030732381452355012419892067653385108792671585324582535306244325738160842042844960429867376719878817569515272661178162913017013459439954018358901271853411928600149480737709936944106541965265476195355811603687897781835248941660592442248254120168163755850900442897136130726498914330280051811736731999456235240373596363408456681165296928738699992894242408593069407863996973343224422602584176792833231260871018068176446481268806199253412682067892237572708108694889892309452357976102143480347847579381054818000845491972999198914998957470845897971732901547150622459724551854104083001822859962285019276502587322933460532761388525419047741594458786795119206263154021654846901266450545204026598115932356983138417995520149751655142316254999918138422751479886698954213940634830679584078620397831761146100333079436911374297395371253317589280071946070933267891933319890058837763437589536167001531714463042518636280350951964797646136685687016396284824518322609532556023966956739151382256897494835551866957651500202683474416486772267387248521046344883045063271235955820481570268474846468804192685620768554048092724439542446813395843585925624250170773993164710431040737837703836916685562690052240800124943055852261320381644527207818670003405876549814698012193325453671944859790678031136368070571760310286594924817076074377460298104768056496904206462452539064357157906995013069483986369658108100160097944556522298835927621108262232132988980283592568491027123205325734838388264841235453854711592498396307533924446904890678100340155910933922815440760845417544139899945856163131247053213382262427350637639758911196251244318466393677958494694903880367505742369364720807871723400379207861035621317939356472291724831757616384494876062780724642442077527530847142427773557620534247225208903070780620960563329994615823676673608916337142199248769305144794967262878753096567311135522957223130177047174969822452247105475711085147667253889928221090665001970257572101711310082448116053447036836632969504657667410731086475355287762272469688673836635291250186435195351890800858335923715503288118320518278957991963604194436658935032036433225489402810986139744614159968577979767962765172278234324526323100348984537300956498258840837612835510192002069740222349236623521628768438413644856567389830899431170946178515600333180574337311052300310818188694555158022900941830081409919827183680714463368000968311096363231253137598870992995401408986285586567810172002959404076914301120986167470477166804444493047306698379850345781318268009816052619384356829056651721049502482226186094885009552503060203662846045815778071337577559668993319032761507111533995972108875237673388335615533647405815509319606784320965500930766594767142542197508321707944299302155007498476427961471286315941177455279743277958874386412519173656995564475700495892485732707015706335909628332280727940110509298970097664857128864141259989443476528579644345990263649751181687767229930551037342073726070347999252832995600417280411710363836022269108686792283534664950733338377666163266870981112570761078124730797946499287678313806560540553293918727898476038035933110359039531535333331672070919787885024537568897309808334647922991148678290468871685196086853658656205438348038592727601401325724046385030080854354289230490995594416435911308703751386275578313815767421067069207457458287985369672543905913769309235425118171366126114489956826843105666102307923699067754618704002665996002717532603969979953401008995736812286400578664612208585980634353293828549211142417447193193974009674795722943946671023230272913721988912908213929727948521081922712481651609776056748102974195842204460740301594896895587853031763941709403931748745337569008513810764700983929617332776317023225845298031634151565563702726985497235488199561557949505845066323440777210738909072505896513374844490548531420579778161620233184591014040997363436087324660331544157518727260395282235802426594450682981184787888398982711283330225636189178448090520998644987218841622272378757519325549996346746879458278717720967803104395531536538738192263316290549840325210277839348953377309200837656740589405159892807947835181685244437380133817359351124166704293826486964541041788856934796589917766778572392669416609368205364620263393856717571772748309421599542632230916559145394728224522903633400459371521417660985794796112581072043401406878091041592743149899655013082803146169919812399991580350506131253356684516133865816491075716143217361265679988177678423491268798137007748300168412992110844949879993657574817750891457266940211373267914146508502424142668839948174010800980638687266137625716477646279745828851186297233357523647292629741741327034917523791562815817617264985428381990311334622383328895291479082313449091906522123931722010693357977637649575446673545011128631719966244721124095870025123546784174570851681450002796795897839458840741416753956419295211591073836239729404227247566750050397407980025289642835958311068393362968258939630361619698929499226294055203143348069902378385201655855855004287331901796782934170252149967777385351179184394899243763572785345755171276265884045076653627239374202217448507485364710371979048490723680096680040602505352729390605661557055649843789827181294750851450373771166034690545573560371901030134216599333107541403238477721842038095734572101868467163440234531167022824268811528335378822819288694745301169041446743910161084248428631624452516567147053046635180241502464296035553485672141835931416183794580276045353009527373562253240260413373263214741137022230786541058730908448899278632503396869225519613100747555151184360141040199439544694230113014471936504546610375957739617895732044948077333144014242087974623380351137224538294014286741163040214067983056525935881288889395018519054819707000604065247265435259480638128769889699500830027839796971985198760954473725875002564022842586773768754175383984428350102975649813912485964055105942925272897357434861690190775446549450152371569659287757602599497143355401079996022393162497724104921385694904528265710568380672678444231767910012797932984425076383739941170783425950782284438996778624124525432825652470345958394742510098102363180692362002139752630596601216707394032210162057901776746547083407835202131384422038902255439616609208550326662766263777408845678119008176351305799972623266669135532423394763566184938471147224775368842647192598188267489937210819068733646742387015291315377177866045952412262360597535335802142341851846348599299750103436057091643500280952220847473173019476138034991926056195283737207795291331256095882978282842607428358357419089131325251326870860883151290617867156103749474423421044143483441215340293086088623221994832419162042411403650822698544782334374469056411043974023389485396666891689587625078624949241307163842051566950056886803073030235381571675847146834924125824669109836045443839025642387436931290833900582515794101016457169913858465141298230478830398787473273941362202998941438452196317510474130300118547816473151593949556607283311039774241170536786531478686825001245563979207802593300053456182834602168337781147742538297271531206833207484514246161903456242163527636611206162425646903372942153388361408438492022886452906676982999450202398456149859391923077719374734188326070371899538257465298662265117282693787513614488609605916855707631861754952834897730126419642880066612437857047308699507118771872164445667100832754961957431922399364221982471739121200609469799564963305176144791081509049797598230065694788987452879672720080966034598906356995685634143592078435532860448624002460334294619305614182775794401206927920028043185175536894654035444834881949096911839446968780997995969518688416894538139004348526173215877506458633465774475748014131003047716306622198618171436978053465000219988623864184945024834035133788630494186980870536241600207838242996288744549132985057869770631130758216016265681120650327523097665761603505575177733953139287527415235487549274046236569770132617947078925829723908602247770515379399533676290090213089771851319552807591162863232680460776130865247569202633810205434649620246931868067780708294339509128829422015361458975081239317782255530250868278060251118485823541942534369355437412275975203455598577997604530075622319209693035799246582818076347688523640279039799836939448585902845405260530140012886493778385867578829894118342575140713457341978205517814882722591400826287517678346666296418339692665371910376995528636883059826225551772837453402387289779701030098680940587111864268903736845501002415558486119760832422676669784489036586871740706183738627156694570429582436977223039118424763519204520223758020263360232942858096371064692213567816264218980649278146667741716896540305202923850009788170895577191869612746858416799725448058914732694510184913556694481931572665436216409647609735890880255576908175983646440680756691884191160988348417544889194766813114938066717928838052613725172543966997883165156697905782211924406765255794002613936931510895217526846169512594785798732338146772063857450622325953966455332277135130703074851073205848551676510659960337209508718302448302639950339837464890551478605003822133661148918049547223244787293014005046687421054625862143989263143372941538787443703232793538787943404723010860934427284218536614893728661142480170132235096169628697551376362423792990513434580090958444848761933001721755383752094178918832980130421398384375295588003865421361204729242209080919851421872178529622888543331285433461123261955095765005857246723834721973578324749722559738180264531013864409309263117239638130974632068343331930099164729134183822138406407757935912555142372942400165997918595649309555948585452903952203964066100675498785446562438870503271217423269330743928478759443156383341639259962483576904183816149449926348816075782713068747482995834100632377202067970734130829318127233347672649447136036993466089513968512551872097071528179140950005416466593921641079643554369485344674331104561772308263840285121039557913178733217691610635263240002483929062659547952586797828597526639856998051661753583668353918921623210905809836246908857017939589001773773883963614782710383324735994379368716091562592040156334376085091497525602580031332240623501545876243006608724095017741507801089987400711661433052824640305410887775780558436943716666115696075099829309060488149411170768789108705997496378648699423390344863407776496160432211646947411236940566061027615849131604383964612006120536907505566861695685317938327044893539253620447888417095671272563564645977928361917536253966827557053111308546837536511991540348729034349521502690345567569592196822108404556211212619446837275067109200051882028526168378505127367169847419114850663083962455610684080898859844481556791711518143562092832173809509814787657657071217991528293354307171348552721935515222737841523430604010696696927962371411267891329323208840302883191733100713741225708208516996546097481448218430539341314561510251468079777733200516175372465853202170323663906675649790807199150968001282192345845668149988096100312853076041288954996321554991353804454775691637815955511793919175589379024437503421024277805941122272292829904301549390012802781341652427514304805105844630811933809230703802471797115579019137299103431930908028561028666677321545418393550437754383308485416878147351514932624690047962276157336965900077575935757111747201589039104271121386716009324841100525941318633767297181246566010846324763835084590615584734038875074938338919101334383771448593446546336669639103995188252719380933436739407860138116323496543496769703101457811434282823777317918993851115250971872892483318054238728627494764026515447344443057806720758329820104444377269716970499726545392141041262343554086446844070400087484091745217269640052542157867147676624925092445640638923838263473894686613388771199840468989726896924657024030735406388401206741110030245790265199446085968271720713552096548917168831350773482879522462063304042570792619740748980753008970370057903522387324524382939590833535111102039046242602301570635742803983423068659408490352606760515825092190403715394404007168760767893760792835702851066169679121894108295180926047806591933488099043399181291508229747946627058060398543911609064650055467484936540871389585108250289289253741707692822729680169800987192515932237191911011458891410883217422990534256720833909542699334016083711326936610093741856363722397467706883478598587469911934261976316385775633490131706966352479029271031161519376698104677681505494483662562417847165424293861319143776072212736625021294597790859634907725695263823880296159750369450056497230517598119125787837255977498360580021489134309661696768089198642180531586648967464385981066324613496324727558309620861137238875891425929527889412004271064492014346522928240210377210989114794833241579242804118509131690866603185728193360780827226932874904859244902808996516662020941540941538150849683201398142762704604665130160014630102100273164404614112821571945061803548097430029460138531598970886462729704541147613578337496357655004874273231706527524982074873160734805329851831684757924899142942842921992571791867934147285742409832233473681040585444846233303011213267520298192077521448839777640169072779445552515031405988238893641522338779039409487214813006104936530651739881375322498391171853921886579148501769882321880154728045187452867071112381020783539860664088042677875082415126994909944463280066410668908520325970908403327479608133695825667072429000663435584915524108311249129070715992555248100581984254829990726470405375823498145137612439247840888929811568400968478597823017381035312380202058242177311510288508288686044763922203191251433402790086209361503897790072666802361635753127960662439097974689120622670474127679432872543725658636547264068864516980234123917778970275198465147883368527129554610823246511382908955214750648511324935106060382939545651475215568103150465418572384686640745570379174812222298365011936235734383075333179578470892801776842970954322771999826353409159348759282069442977317359082035071810108708368204897790262450671461118814458421605204671526090473164371704721123210862561461258365788149996337843177304747868780613285618732179827238350836141760915784115519561089192729736733172681692709013698502418149345319174539175328309819378508678714334221710469744193163794899426798639675085151426893831722626709770254607495943207918147643595429900919303395651851936336270346526688394662599911351824392387709615414716480185651221465301031059701105481048741862831402214520537461807406319753310068951610600251436755544532034294450780416847930386775045103111403221302393880539663238829501003948105761872191777218311896271955493406642156609491655149982460067938153999753845714814314002822672280146032705443629135436486729233957945523514556492528531588218246170883213182459082236410310980884516855237210291265908932895794308031674184628413759272499842616937485352389074779501796716161687732292112710542138693541755231592905365908172938140409332199087688019429912851887611515817082328069353128458827296105558421930070472153643829349711034504761513140140743536166016200734050082282735208059936634117294503057475955274634734566379221258175313177069922940779447597836080211467494184013136146391601928104414904457117219135790159991107277063683370365445962591283033563399056698794146658539035769680948210779154082214852903192028700673702272808766582542615096807929986289048953730414885207735726247886206658676915358497827408577031053667029681411743150094995544817016283061216946372099268486021879803794208974409284173030076850721042661490882171895079026896394785791099610934186710215159473662815328993209395534607355933907507931928779395379947883304585015491712826041041333513217363031675657713508995050043139196367820988300931143575871032562715409495477811546380985202404631169204395567946864633164142842365516900406010882678449744944523083285188960890199392803167421998466389565103005613484164670822413415138839464870615753238809676713208148911997563914897760296126078347841463975886266468909680388543539407899209456322329475225444192750980243744900906438599033098856370591604314423541159214934850555359271092815304606767708945686497039620441666623339256441511528020396831852913130126397452055038328320472208587418238429181923825752806567852654108724140175211611491640437582166993654451189247926417934922477381943154725432236416710532951856723306993882737673608843774331729028129301453011652059262339421903311826222862160124417142533692079949324133191285742521019069200503173812413886289788474127758207920531841249521950888515504893608753391217173786435723912181946532272663595291211856019795634512691897780130455316653073574327636349071132659686950143091264631735602047846897976241868330534611362952858537620034677798473426052005006578831229892452712772340221173553424141296910344859288918280658569564948176512060963922989220434960788678132053801465929976269864561016967650868087885858289894321657454483954137039335649716359462718183979899558277311861974276556421875665840929638837345697143024688572490762612642293338093200456743357301048985555410115332036840769471033533956898636790924593947208749464898720339761408016311611576415254080671144015116387240538134906466532596380793790149012257853562624708552798772029183258132163166706599051613890147321262301414420718576676501317254692033734573517035177028034368191820942694262540372617908818976788947261312255595403134367878358638772906886985872023817393161246112489479552667270867226785442034997974282141244677381686957722988562986105549063417497278861201348439154142841209831642072764516848247754910372336997908872323858768169878630425597331334086829770673367114327086864376676061499257090189174287465438926729835326436949961355728990072294882104916594834874154675484744451751851700776046186506979301878950147233359601981083914809741123098127763866419631841241156802600042851793459105395081405085942389556135743343742870008793886926809924087991087635470575108359580532440815079347157848103216417998625089591508286716156210136594621794488024759422282344224183247131696087632727381056492200235687619403387802092908730763582676949582462847343073582164457984767604550142057984012281622172348143722760707580302902475561947909462828536020995835019981408907632547050352766741469350250730928933494521193257958394570481241477743617514070470096075945344029701096087733838344759247046814087360454472770501946226415902703000305054252207318060510893275184168808660137337432788322298195623177780990873409049380578322475590177758612679212696899347918859335351505509856934947258520150211050201513757056170501306017064019417772075391830335822254347516121348527544903825745711735047100371412161029809106689378216522305020953503975007540157549544856069524180938536174295349762183007918718896483660134327793983827594224805242780842169941475475236892580805292781152911749993051671106516569985026175540751645041054595115226394810546434231445076515801329800804103733724133607240351849709394403015298680434366906294131117767724123328854067944754266626157601318095624029341847193400847109812918799566066895659740546223381423674852069700495370575346746340133438439951324396200183932465358548832924743544876313445435487622627353358982081033216184438514817318581592410553019379126985842204030726236375193789560929284780505721866511065078945462849911365276515302895320999653470576490144191790048676571956180469004712519908664000626603257935691283333216987398217767766507815554730831563911844439530545296034992811087015089687783072704818306545852124875491238285011807095984595504599838348815920811175380798799946197408696614642165553530477580836075323712750599907923908332742447209977663933365933612546293884791323814276747150096690919192090314126608280426304737760599204826095844914481123599863562492335152284754208109803417943470559133283745163414808135103285863289910626295348830300913516799911779284984326993685827751447803446600076819788353711964605194378019375485689328100612460633515359083979758653632748077502996453393434381205968413455255374102247944106151934804229558086837304181379320252597206545961001650893571836818628344346184438812380587168575543838125413460946602174912878877485903994864980331701044947072100707550821527395933148373222857032293904286233461044578558369791240268716079698956966009446261029557738148428001885094533330681767915716362320992405972771631312114034440192829052698345018332956952552422710133682952447557910411654016872069555959429585816747898078790531793394469396843526875669017330378327698490855622591281363507636375107125750576666075416517257793707132060713750538154944452230949535736563084785817743009930030457106145247318773817492774090884746432747375536103916827482970497820417431807661914750201809686350238219432576762240276464512973375185546527567611404628247123541795134632751048041147537197379654553245084134421100942060288435564375371647479812930404868083618354640397765664979136658909657072876892862305697773827277222147167647593305161446647741896470945394053917102754208399945567494485209689779500192059574567752868814210148784643200644721747519387326828781534317099867671192411922714158042206930166277003339729226412490515107267456711440591360724832555391703018722567554038127661643174988729053998263528947946367371525866229728713828455525480370273059097976229752306030295495665164717608184669164006524684802937220234981597293407703624503373947359333930973354716230841609795652938542080542438680153893796255233302106719213763330118583712103136468912024150406848183180487598739348424226517531523937752433012600358534535002202587697818940265939283986450452591725259356953574436764774375660349931240767888697899861502533732593710676476021569483684356034430412730719031011693395330151798542516133773110322308724567576419527103457818755997314137796862686309985148531875206255760890176330342273979297800612495450459003969211592996841030699748276668228550393537528105697508658898477241744213491827630517455289604724215990628716378191796199956644020431614473183433303170644009550565561970955028789685593881099311366720086644257079233550059399909132389633769721047185840520671838736894882801348967149322647348275563471216409057292666576547704826896702084186085151282276684189754457003085616330783217210574540818445578344786400607117148169491834707107428180083121699435054272227482425471489414553837777677325417630415919881158974238777726510174386772431829737383436457707712989765982238954895769624205636912592410150653446364503679526429911300160308163833637878278687620798934274505517925897927258489596367131202874123852480640806124609681670547193574058579431275871430769799779766666530052162310931764985757275069361428692419660522998306446358464255003799191895972037579302718819582580441428130963693779275885003482150418301448439531241615540165957088666269710935570664815451965866049836831545767716074657342813572323665292857778015846580117791952059446876891458160755258587572513980748526101382643498484200723199037723449860645872435060022520897269246909954025395180087361762673319474239785008421984624405890910981082140003332344436454650011683965299369831319558617192413382442104354799186008826842901378458397449133751883591186941464004576995274984929528198601503248402657089662912937421153694461873344334235888334648015955719386523440122901708995047457670625068481319283153050657658131816921007983018128358301443279523534557700551690677414957809242865815345255896923257648435641349539731805977471204912389630772067943758146719454314155005764071796684340813924393224915139718072666222811108833447885250486575366444315528577544002149691142735270322634738496766175151989882200155374996887299413338280961864126172330269328629053720698322029127833085400857827313207149035708290873815039108572768225733974727799654157167110098490843838936526389605599290291521900275736564786111294253655566806789419335779473877790535234457158232019227083489023596202244227407758375831141976648962814554983569839356289718240337104916820019237525711133128322959312438743940133293479053743303079807377330773962462286907485145741054321493783373092776260732301664506480201475469936598625207160228230183549750533116077182689387184021439369204445545442697646943999948871596416802616164060358773755971887228187890497940909642349752585805722767270825731509625571282730914419941520542009596645185692102297214729543964674327877542179264575152256468455951320199279027534000826983286501641554524468584027755986216908024964928151476065267987300048500776907418422332328056068129293394480541999273386453314592759108918126964418862944087158118299077245423246791562745601782829092248885251693200533620676140493321609271859118707688884037197374473091687801171064446347720530318001519438206788817615226102973920422159362610650476274978188102173790374729958570739334195496035613974517071279252888068728685085106114542565929961254819029408392228258270561616473050367269424384740088021760507974349777668973290234584146639919282109834846737843398458115757992034415445666606276395992138476282732775372672659535534508154300179221621944426309575108523301871546505627226607559725569550133838553336285359655174140559939170430648670478152408994412668322896298748366030048859674545890133656455897709447704131635477513460603259273231243441251572037855523507989406127283671216611385332159021298829970118977686188562927819679307727276920864995735382535567360958712565520995829434911674496602165327948383757538445302417658718718270763873455126711873979348977804567798252523540866878760786906440811304197558909606574471854362180844421768935085980993774208774057241465044055621154627442099431451954879779932750469953921022089865763223941855594167431886729471274344640263569490190488030877772539555894678473701187555046975570673486774046554471189449577317697673873768133819935934597620907484121980538011747611173634558805356461561488950020099738266846915511812893947283306040763083189722956057515308753760927398533493555270095142251745930924990932655714013891880594485551620080430534194048715920696141084425253892427097490212705251284455305584060829280024972162152497361646372610725312983678270599658162917599757780859831371700300250507021784039428631608562666505105103295928656646500392776750188984231140774298733007511302812035383450869416415178749305936774939279013583592345228726364271904001075567920869414159186650205243254275626933194752112907350684464632061767431985743649142063986869239884287499887541140309786582257314483633243797807356003482408920264039286519633949212213875787955891676016988577424123469978117471742698237474872428946857659003086277180631952004987923926353069377775094864098582510172338280297978594193639124628107668973268934768983991629961592576664087251705136609837144963960458668495799721370328487671402694804979464554456048307986016995410972514150186907596922207206319423182733965270225974169090273125554250363945824371056370814488493289505224733359150279514349149401732459865403252644497927876263107072403816303577421308660896718874505637082140494199148945182111013128118596805156270793152128409120276761489425653120309103304763769030492020590346152281273471838930555701354750423972935496603604028854933867955358823242916268709145612292021897984332773386160418688431083331545363188566198909366325042759494315162540502486662074963492294022988356879246315714728389078694933288127430228543375728218923832487965127734606703975815201863418936119031766449211168416782512250915790581798131340593546691862765346893025170439219385177155083023700183208113624728775317339522691278224432220893922653163539021520313022513733971925741175666509286214559697696309269579974573853154432424415585647300079557930305760973876042071650723361243458134571508706840229512222979475182086734201092957137875254077561851572042090296263981436218703645070732725484208074605764632155193560953214347685904935046618906746589704569166162605814959396542914150180318764840327329169077334766182310131245819433913623454569922820745788840841055305890622555456785943792973150688965501889310856769158388229037653761196408479466123531871944648459552187166019493119656215730902176374970648190386319356887635269886011412937538852976017094413232016075636019556985764546635396067194433490950303577650847414115924582539201348457627644297133228012855239015759668125994801873588470861758767463542267055230106353859646278823999457482956007904909672805378562250110816653613246304101176746851941089173610334622542929696231559202661653143598758062609874032357450592850802575871324111677704492020152550955022913679701341362247157716733662549218865570210284058139382171062980920363699853074605151161451776608632898980072248614528328225022913517588089293121460814693550242538458156606390437066566881862387005587809466505865271554384780751282403542788626082423432281180833121673438354917638899238468629513558388064060853692763546495413633692040132755707056629630674277964007257314341437241451661845533723051020147101679807089565477709865261646568590002073562411513639623754876630336537517718770536236220581882739255806140746174014050889212157946236910812645336584771182438254264482485613531278820531132587285612672645856382348242722010593936173579805796752091955417619118402221273308715792937406768988238666632019385183087710400440650258826254123959122373575125369573152566573491039105339451794626398339932465290473447449944691263692651503712190975473832729804842996050325286801710964401587942236615793199772660251175644395002829266422622519937934432156810424662431310452309362094243395616276780967542261528106979977749420782974857539486483005101901415259653276176182794688380558732678514598197082431439601474972275699435453000938340725772490677978158253742727812339759790698460909745336407784353380410795169520376777354264855197780061087268618287284975641110965725495014286599258865951718915648316427635293448828118142566806714022319679515000276572956060272796646074044374263754540918337567457876829375672019945655536956821895851998857522691834474577828157094727271819878741505845348411871892220330334661941993272882418707058743783167653744311343237584527360411870535951797143465516132358306463198011990765189553086896870821168420488168600399585833513073589262794365309571465774366745546982872776331281007347860634582303364170267090543557806033675583155416304636603239241707361912103056168720798525182988603400157212460328039270179903526929734152394069670756261031074608574781287721774984062238550287508536963513961151101013479898401052056816621070587858168376314924305958875882710328136628841831256753653915202603989504198847398486040941464267620143739077435283999552771945151872258559563269960205249163884909012232597441963904579508918440647503220847456065202649924441159972003694666291996094677273549703866045931819005887186492533210349987242942465204513663278723121245409991938011840082339351778128497649535398077155457848653460045831217719590881444944031536254328356678891863945370122895211621717803144760340497623912632401446180974880298249859875601675315546619412147804490596386564622762403355969944752278570516508695483968148280846286611473214653099181038031039140815660763718022199584663471680506578457415281389054504177850161376055402921650467735770998570528052465426566411404175673700709721979428337859924740100843474643918074433613494041075250751673421139862533139070023399656488926719928257616936843906273708142560599203519518839552033991556272662412346931744697563923563127927289077022225358388357053087239199864181635237028522270727177799518935348646881431932757307743126692788485593631273018130258024397461213595656685417477409687404484459905859984850883900711429193119868874681840130714385779592066517843391588851530950325340053584508860143686936824246258887210216188014086714959552740473191328965880175984533272428300881881400823370637805613450428469752382541418300583447102655689372863684130500663224171474914537146325398423530712350935271332722426782911515388068508897565562368977220419867184660071053337443957874204692334166872190486146796238195206727725967371526076888532664312647211705814800741159520258192908099823455241865245380342240695693046019545873634044592454871656791087117271730161419734279320021011632931141906374294557562857980271328585279361155787309149217696582552504875552670156759627565376722609321420676915786252527814240194049309685726328187143240380201693366173427513176110307032696515387821036036817658393039265018259316501421280092950226848929123353450071708558195764283867754697884993207625638811386934527230264372972889968340934828991117052481288728368068972242709283616240345139119056686273740461505189095120433645586070193968471112913806427420077171140755844256209677635412586001589635853676963122029555402762536947821509379540668724832551240996023705604034417397869733803014234093005255402865516942052944722845331980356586038457548587759593387125614956058710507252594682826772681640536340856956849823949172511198223231351535661039773976380923005086561624966956364714957040333396476388661422323347345102960878469054300611260937097248870820537196120855627733532164025755095942395452092167122662429350828710648927128691957474499455036083616528057172453230065588962658865116834066504765556470734081137202786875188064570669591225521459195163164072074388768979954850093040060879810826960327707742883288442849570331621654675057933967066724052391102725811570772264901296265358350629588759739912975004001855075376675927651889974290552029537121577087136102861565890194626642779366893821526463088447035781484568066343211128923499754436204989828379341893367956823289674483132705553302029268313529749876597120989959432241210750553965703832999544827196652555718860524615355170180596781923117320682462560356776413500371117036487307061447065712256817985080654039475161856750113633926683262486089576304450685487611458004011263064208174390624155981624006121275724470168426683493243823961998656450008637233593720246305688049832756707021820371292503948192373788685948067176079640482505232950718209661293974027135890117896276424016045533498677721773166747796429337519832197445966847045718710117935488368284720762356795571133082271224247396482035773364150534381797147226543381674395076980306603856974841866521303841158698400252748298172010005272876834006228969059756761734157168909364689087248116556211229554258574110684602629704360819729564589489849199160077200268999780432281849163245291629922882354292779220254844272085875504548485532989248546232406518714620648781101127706081377322467982653302656755549394970803353536002648167865061745406085968692272805098370425366502792212921215563951077869892904716146572198675277634449952988724187792061333322780457308314069390312877014313517021528581919474663820066313055892472972477161295976618871781518017161386977774055306939683142743842808191533201747845630863663648396177047656849548264464713217319460204711662615358737063560933634689830920722809625828150829455173570081447662939151753826192256381850477247375356868823262553308411148762441837980968846346302794513309565183994877945728383683562250080512746880624852862509322490440521640142715034219304612711822359932908770511087433608631939511591756806528766706895220288601044504922417561825262853827546738538681252572224764711847468297154048421112886627833087696706201595053522798322811218057075360643378824599639929660468181243008581866494074765606827095418140495835569092016970629441638579653561267957409188120107666679766693986879543921743967787044318583802259024593633653232638468149100111639818795517935241806958770566827643717985026515316404691950001739638173112964208176178782407323546140497689336424839542966366006825927628962824548472775275829585056620921352342422547867081168173080220012256788654261359501328973643049860300099810867405369540785829636683023523278726132714797854413651536479667042723790725595427375489468822290445253804215975698754341502275871179270100511214921228616614241670779060253920989597490986623026598799424512769675928131103079040694918497723981276714736413617944820659444929686873444722029990424938683773652872326923746857025040193022565810779878694493291810821770375702485219332866217623743334627693572546064425908851326428425208572269689348698739079851208611861386079010668132580558601874966680451910685948716006869572885545908134447349987359312630960407142133425535880016841462587362912555075902226394040523375338405650084225051364360711777691156793988061366338692513009850285232990394885016326027088572389240444160162506634300881684213735462015427748503005084080627018834287356705383035517943130246971314444852284050236287517018498132690492306102859010886947869939024980160032256328699676418672445503900668861035539833492135436932253450694542828847595498938359898368533656538669580320075467651890980482951549470787170310789309962191647475522591567146130135460037093573540656870264409337942306822524362939842874460938441458940418741415761844880058275202491951723920642420379493514882083337656417323541146625500321310415468256965066291783381748504744158011680525805487471280544406675030051178666557059345018288651211672847338992962641436521084745249609307139395009234928890309368176808218566055117731182055072051545314207313613218668779918939437072364008832627928946440478345138318050308082514837500736245656651543617195285970086580761913512628571253115229874145020290601389810763475697828319594741253766450900649122580399089551820775301122405781259908372890958429606525796424359238057596014287077102423993672418783442322917479939798636657441178251983369511681932179737501759324908613106049469983095232438389386173110392726904660380356579170203620241185252496043434526154448934998629816889962231068946760237810861957783656861421180031144748592868963818975677984256962718766320679967872701733234766058283847093964781572707044761697122827270438266907917386377274615068070429384498389496504914807988811625346920562662860210283029913432443757655061598740768035860247946741290951010524868437348982834299457216700282426998558511673036071470628484622696549364175577859932206096607417405485412019419144667831625187206289965394866805167890888547016658089575698440567146395802709867144328857396561055828644015915917270502706003696074604185914250658000989727398910585819811513667508799195043677125159125229985264135828126877638587810097207790733089518746597043580317418562507901942467279924206916604314374105022167370767092555715756474638381339989367397425983368119526955785231150875549114582635053867956723649812206488866326869736677926270741902031955631242202691717379710145535097498931864828560009208317366014230137760270264979414430652279362822048453085822069656443151670585353540143508666161988724345781307355807895679118582804222545113930558087522128221775859237646917801503074737733396344020434633305303859839832455474805296006814674888629132174648305808995678094999068782598585778017609640202846630638397220519246157195565928453155120761977587555725619088820780117301483522720194941771352156945432808044633654374612598087301645014074221526771886410052183725997512408451021282762256298696952501295954570415396419002062736839744877100022044455298473918902556507866162466122654032879342231583689088743590877991073281064972418779014805485444630585510572725474901924644885430368048999528182055941874374783062925509686984734474084762769578915095343485419633848281555454973900740666616216599645599616477904460759759494544062154831959575166532563976292682272766271889590454060982786861484662009922889251088295469060051265424875112682159877925495957463006571328775697760216450081077667300319401595379596784503342034892796774516545768157570611822661089037971419986779058075624998027380347044905197874781042697114367998732482734526046986048576839907659680419808164866258071496081472496222323546758900131257500819383758643883174117858367630058524645712514269371702269533271889469469428815730051416362497296804353526539950760603111656568712573973417772351636515617049305199958609458546931246907469547308907279516033255202312466450354086469508773731425999224435842965119656320597054556057342541685215994374210743225218817375374481756516992125230935560528734119095299171231840972601911833230713298656528476874697899851157149037153715569723304151463009484884057119265784663199891295732677614940010241530137864265719290587385215839828371828203960747365304947149287660961335471943176860369608190964969917067898598475935642649207949861765240917604688351625447425879789109722837410240332373899231793177224873782814565020744220151749370498191097783713612678614485444358106864340587930325622173611588092368822746258079902544978629311952483049772851737586045744453649178447639176806103755886903830662616401313168785093378181630256077697581145671231418236793488818847923333855891956984383384973075595764011495746506967523079252575171464562759598644236877928688794044410833051689833668917641709907054749979372381503473859450254797899704679463730055624598019509500470551451153144217316193631630941598749962756069110965897424006273366477492119173026135054569811239539210664658241270786494326776471603935026318042640892073632127833029562239143604454229395031244685561450682964962520464196469665212078451805101755690855233490195665841650248132367398717945549437579537413190439365263831451477816045254031989951705500707137249381182213660784722940771570674129313269252862232105326239878836030300368503670127314569431407496467707328381489950251643048475296171505852980722991955691449139176428673755845559299373448703356054757366928590310077497094466002560927690482046028735432563050062289781674324788611174463819487642361031994293027726058701732194569455386727396653192684881368155330637811781392802891436705005068782905785491047009019346837775976447442804102132537844526871041486083209958561854148978850745607375411635340492547566242358965666558468620346176558354371551106739412962220167840468773191359319425960207434554556958306290985301223480372231777649823801215409750609313323386178629306926095161853132398536851203989934632106293414994819502423652182175431338364844414200817324030870797318256046854508280781482291187577406237147595562806415510788137124205906145155768882871865759627299587864262098601974433547818097709314822594251916881614175921036757631725476817460094478706837678151740224048966198116481079218454679606276374350979943156448015400497099451773580050505385653901951246464996165057586498310642711968894874216785703563329596279095699321747113960361338109455617960784828953310962618690956577526640871874380148466792258298754555228975793396305860743698182993739037025800838222509995076764458635060434247463691567876663833529028158233916459376584128071926043475362558782418413688230357134495169333101118394371875856234439104531966462431227129888557872092159170538199746254471080578446685865761370157654088690468021415331212415003327212650271231959549478620777512963958083929183002696933834409893460326461250179060630367682950144453824597214859965258613259497620151037775356238899160645803092405122923968077917352510028929398146773845307633409728947455467046283948386418953761919320441044533655297747483165678610148994401033475638975055517678086760586375130254331423375772290846182750666276551925567792652182330255429234049164098523579735223128718827107574761389219473175476314086043575159165440146405095418782155761050916784759480916217738661831394678916461023523946724804038881404450824834288082217032254731438038781897025334697620240582293109594050190854547780062773437883842168857538378328962701641028934331011658282372978497483446965554133939615854230364137100899610674462925469857064414216241343501548764910497435710698253454564619479741849032465720776007650876482422950326033074357844652731645042556213366874330229843229384099730020383318561613492568863086093838432224879794551790268501673603346668728950962830013589819608660999632120110009109407997294631168126606094645936769237461527476170056307800341975249601440156465806061992136072345282128876978898362544359076964874879556538943169147307841586423870009201001180009717697779035974829812193508058206047808157863638928520919305739269072229955348476467024194138364750156474930580568980062535067799214592896984873017940834602066534996941970521167537657512626814360487887127582452246724428389392541517672487302808905370262115759299241691584397509506126473651788638255417667959336784940090708304298561219881002756841017424600867047141303750808630282331442728717173014926897545380133990769958932868429797876997517016205369272995036254567616746660423424110596353898794762335900494138028626183042037628634177445219531534540936996379655688692112528082172444770663813911318001558405356836035914442658502403832004219820132777405503039658174416302658257829456910952395241571321785128635404135441147524536027732410177155303276451735576622666792132330727387985235682315437184051595751580937840875647259053432798355376409593649381411156648440855257728102032840611506440273806983099710025668149009834249182445542609360764245701815198921525892469857014329472938555563375079680073991856544429073190050766877688831552604261908477675358021315271555910875763278405260683248118774594928778996634787598599180085688956317965773614393144114564507608662160607779338287849335379715081468968786210107102011453413019853586052732637776205911564398527943583910293371779920794894643349220289971004473543626008439057534673912438174132600682178072052178102303718570197316347145266097013693201800199390921086015267601756524616199932872952666857397400721826448253970112870570488115288233554123264143232074328829261508436936299431934113145981639575666477722422073552424585297515062073981109445945090305113944569186278903633350840993351512148281804092465427919161518902164007099186326044027705436092044519663160830260243829230942525391049560099185742131510358545978648535576356751233081412519091095058104778646431118467222799912412657943299423887807935416333568225518948611019661391724944798099901625554753254634147221697528843755518893376674425749874038194611905891389889191512803812441994481588210811690526586221695356615901680889621196887083940094658772816072371435938493212644513169624871656927054089684534994325008434958520691908905920888652160049095079721703791940605670176686084550863355249884581153064005376745216378558932404288490535576257650444607019857704511126735439433022625499283612111942701786366194906047563043259351528946051981482335841743882574751290628311353505973561388465623922381108252266597582014313049895276941840579965766243438398746519940268023523049870816209947309847852272527607795210801821224907373363864138724465134082676223191498440861638304001288766064811358537098853855188703509757056154356535621387523050871620493929565351409205332432456950369527063499740162399670251492658135178442681508407413303405887082249368688878651177561259651710341448801256015891531163710436875532255818040886846431090406927989429825280188041832170857833460011685708235055983289319999874225606541977758481541593699838232997834577782111916442125348280006812069061408159479548143795815157056005980092544654486392407961559038149292963100863594923399008449088934828366090117481487325310161817699766701280365842754638552848622465047393486149595736533017800335820191223191483469719162669314545619412662734723054116756380640825814405595650602562341338336880375514560367364410015138201542180620686456303022688625019690502881676190333707068399393241447656212820252284205169360776177788346163741307988566617468683246488056992794785199005022400510842949371472654508552397166250926059757889818245926533720145222882857232802302742262408327927881553001703268537090292687990663493484039007859043199607697109542726174082196746328942208241740699892361558163285353985118696841136287722523695898570874055627050090447715892338791523775228040896743081143790544820224909923008962099113815658453809110919869813815834322030065524162156606128586850727100234413474910315899644618650736741282859708254465432772128465254402725124570784476359322538446099359744558497137893520420047290627654795114358922059357293980113796121905102675085108605264983758694273596726569524780536696892673723068500220404408632185268756686564852610529093578883933652361970414924662878037665030804935354708015126842693983184542103392080108508881598088461046424165946483979738516919400083599166776387680959859232298064383972994314166886349497894615388357700861400659919037167562143480787626779183936262344778219718248271860087040917640454183944555701228195990393443526263594409407905932877555267549458283354612620045348805974687684505021239004016834010583136183450610911007095292492453118749516807608720276955322352696068631509412933968003625844579337836966498033618400687288117506752051568690829466605737639403711538379781025434623306148084093325034230375418517421030882779884274629126363851307216041939091579700269754139310111182183696948982519460459626968095089883789301771992579914589721639807220091357303810623834718560258611808027833568517840236849241869994606441062858690697795151215222429023761483471616706769804644964545010845930032996601602300957545814686955134022290771142352242600325528821374222737078055061341980920300774272564083762806334894580821601375830323614323997656776244905228494674106759187874656103240470051324194801249001164419206223502323109112678274600919104188655107988691508624778424354737182663598620337440830148316357226629468412261123109477984403457701621109870808136987161712297501239880511972386853288346777023035801909413576555576095569404971152822268302912628637697875427872647289168294076454184656368380292808116569103755721627031859770736508741754809005758369060517336313710625062041031086226134278914171904426163119176619197585053571319063870478451394448547377610675910608264721312259351147545137919549323831564063016909531052795978744999695664997971991498346420990474279616835761704948088340459950681167508237232172354265542576858717637899741497315746396531016583141306837732434801294885833798896189862115502997026516597219517845716180652566166205273183748459461816364179676132935065439693057703702398159785051488735633756766307240973088223775570560723880758660931071723130833333451952676280750902460964531976504152036035796897036102748006500365101573026190167045718553818590561797868722874532907843961790134883393260877779018700531529241641449616384740530836547850921408621565038333535069398257991207003406252603831622800490751688834657087138329326647790849877349758041797848964252147721058768581066157063076365651020563280163420952750805772022498355242370761845886946286448131797319024522955625336565127944700334760156399973127802922324286499533813641906096677743801825172125438562407557997952651145999014642434240468109993876638157541104103752545623343967732848138624149336720424057852672274625402592392164689471372818478124712146957879684792517816623492034730327143090872692415973681075177315820809006238220317921206691966952982185976617618856511999142701374521768669953925423103833717538978678437890083041887813820835604474506955051197079220845470171631892954824912713605144331840306878434840034308833589436305217480792177221561774984093930827652125677474390854809667237662490721235882611343474671607098098022436685067479330193555773772171432141543597453930564418961978624305874252054836683256567593630594120315531873946974096523699810010310822844513611059750367104205818052271163727424766412604191258617561886991611405936191246058008000531792327247781857190818475644549221667805523668801240788464538405014988947047971777016274606699032344096681737695963493589538778003841810695897793748124836985650642469548419954186506651939524623216261200549323913818714274411898829676211022309385500602051458154613245110864408347324429765844181566622258838811939705947079888206509998928106579913250362162173897800124168584131228597889270070685708219772606528427176095629660142199521125468044799744302593453912851977925757136504500218751902272326130067427421497774291662448733557332021950713817950453696484716307702499358150687604746188314575661080449048733421388702694087237323953741704400135218323586174965824947205499273682453466767430691857685671734319879237924356979432638968703594791698720988082259907766577248968939011453432560874706179201141783340881465737975866163283159840217020763023198333550577823296780755686460783329395960164623161854475458692972860114064238301110992620253143389358650170228648616189969527647447093562409788272869907071755435103336476115185591429470806859653229614122285469266387382024708981216998713913022890552874145934782755646059652096957137864419524288565118116587183663537022804163945681344331671297145242125766713835793192118112667423930550804685661854762247637662738989152785101313022897913348556310050596934753100568330163727286522461408520256463005682044806570401319139100361720555764936630304169179177463166818548041419761062541232285730639634939976242333621683628080400640372726180332915742453792908847893315921545123667194829416763269959752599884471783585362462704630172809335316660877549277533909957980764057546954371781937405455770832167059550043964571633061334936893851712015938558301565080153326040728925752161154903804493332891829712002725618663611069371632852780842211360438102208255213306741907270694357086969708185469322054940357286780971637876769266297514648683544544047919873509166604114774651805151847098681614229326274381697032968704528242379909803733958033951960348550044654036284155332037907772939053276177383424154363353711808799392000550268361816336826360320661582487158045786096116179641826160053127422501685714522982344757170268877353385686948619834156520113541924805919141337918755417310662574734522258275263343618407156443736239447151270013025479109257156139815102184922376297851744391793926967161770228110514928422499582005169473189420868228438219487012332824641563893893555953243917972813468861681240146719830227867206447437350809306871761506607524625542171142077508302741336020266246115574442985147078812405899968307715790811902454056264311482304921077134511265743387214473587014656371012222019728650637425686195460251002855873082881348559210232981681362622821113960207909744099633218180437621628430532834172989713738975493051738338184947988450273698854556608837578746922360304502177309539588471442663294373322127836766707783376630651005601574076143046925587532077088092895025232804402552849654764097715946780036814348775301443416475659243393176929197295716325876773318881084794984196325569619514976442310207038742534216787306287673676254033533949761940974274696205262514175508261916925426880486154844655191914595270362247249055248228012157706830032523945698390507892379809807911359522410208063004206032458566835101907456817515772546053866442278345663327916355044790023367123434737302966548101745721940733358046411805059212461057987397797585602895692455111024425090806347517821957446721015421786763099650221426068871830533449302276793421473804566193282408746144568290661484423193921303165307838319666922539113000159246890175600034646424424243073283212711870667845525326427462949986168917874175152984233788061272255649551534512092745285858317165958865930318292106615511084628681342362644239817986456915673958077128187496425139807463619353457408744927100021055339496463771354800548801041612754656942470950761171368078206000470413200644941556706874777711851260528130119716918773190898638282140939384058410937676120458697725247906082477719935568672725310453582594339764055530298419761410873813936514546251213490106194551336441383247499389740664412350547316620223638157447471982337761080901022044408458324711052098581565532843581785817410789822652531501212352224741561123214483423349742517730937093262810223885952695177066996853558330499872958636739281661857463701067056430512721185281250770911194362526658556920355460000923831020011109316769943184007629598259826601999428737969042352839823522113128111786462956602696609211790804755354377922629515261282337936303521834117614421162004037966377744005062567232956551220674955113295279543242190574898784177168249323429980182900054620284978619086933517111438288977009057385286440366328575873278094245200203089863574426550507898393241854711606993540288709706980916497981827054082776649321331799038790294638065561685299917057027470120925231517337328000434353993672267213694924881444081801820017129729202669316975463599831105998935269149231160809202544963571172821633545505783729299061822644006904130572857131439306564153081751430641966447814720725678614212616689906314057091112583860095457632411948704464707970871952805390753820065531845759844099127421240498960880110640021582551573063744441995819001030612979116711695956819445909497885332920536700929892371646439074453987139224819258909379676857015768083258382513116795329790080671431003244787293980337976473629232466608075444164056825746515793994955527828553556316079664018421513471396284842691498202150393477073542188877219275409947043855857031613941242869350237769718759368267211059130160185633906604782225601253229110061766737259878944078760790923363313779481585859384565404822088796754601640581751388418337153695328072818328161221670008595708537701222510820167084087672973156462084619327443969585879319569527663181812326526481580826773037336635782859711857782340051741177857600577616801949577500915817257947933208695530757323696530980115366678393701047625543860191022426804517141889363522582909010315842395451390824391732063361258609906738833172328117738089485122187628231211125109239761134616877588221780832960471567847614327982399441786358060933276492697609240564047425129612847252350451755832039224865688145367437308069101005412902101215047279988623796699613702789020631644068388184352745568024142847814084401711164685597518061014362921537137081934045618868006041173955546566842149218649404016896081561040936450763651469586421728203628604855210434200435785450734065000317857232293861549466244898434195061206699398438449667056693279735248957116740817990584352488909920595357273506232543799479850406922428941677923010361637650008511495599768043527297990373710573704420985409901592427770201872892619669358932548324684508377746830046252038481386636993452102798840925932079285686107833092221547153319156141936895651809093167601229934758271144281540339851299573290710397144890609423053964901123620698589743051297372076637305839273480853884809345477811680037125842120251892922372027996556493223511889270320581377352662805296253951998004414103151301211920652365044286984554482331633733057070787162524303131534226097077866090669507813237418007991224837968465943593296947286183294461089956805324625799168444986008417188409142844890068787878145462293867099931301390170137191682374517353940334749550418918808622724473383786241260431467620562680831766470762142778410037532131360205571098536112529244212771135787015804568521871642319659281362776948270154638685743044337766733100177793812437064575972479208673516362381414325418434667844210775055433533190728901607738728484536964948749057427549191880259407008712875084902694229297381157529330761515064614753507883744933011497307252218484058233157254615878456078205139850198168584119903008300890705262890828766951246854877994338971463177522942018035499150217124205911379296897375795797582689449484371704428841177966342802987147012704036743995836613698417103840652033248803306118441953838727282944987422089322424593645370115795049876649636612689361822111487515446276657549291984612639084677105254854811566315226119321587485353746821060225283337701280924718378304493770463281727433880859120807503891495411274868563336209092821907205988435367699277391630656450675725601552928919479804967286146730056448138051499183690572331993443915071921650736540633433239756508354606763423823978301165676545869607172081412186125606129974884881992343889253521036145371858512873081542027155779247820862362244636581020549349559516246428486978351185573136886548661181771389342827888504484708487820335602419042258215611427109310962148767014539330946948418798202561991811164955240164144667030861663343325373026577138681467248439077274064737541385466174113770154656967442004876369586066254433486218983059559200068571459661935982153270387869964433185246427304722333795121494356489408642419686629502780877110381125923644817164737914230177490425792925997638164507966761096171509410909802177824920442281484005945944120393064686835947787144211036772463826961887434364746970263181611193352072193055851145314521424085506841672980920091687428396479708909097425218690230461833134064415886018437597719780488096725812405751008047391995047352576476077348149539398137817185871451992133062616754172926079008855444541679694745099077424723700601640463912021270387773168210167579494082548197694667927922536829510767477531647814310827231638480059643256900851560286004526908466409937119914163783372630276519054090465065192291035790266529742420876195227956974767888462261369966737562560248915813844650512072882987843647595861098275535404080911719991739111615619995980042053436359667154881877865934397256752514032286649090045304592294796073577470887046776262069984067505684586545799483554150037833885733061748075412188162557935276419455688606041835701853346910876802693147541792776390270133556717423095306414768791871614284337478476412774991024265714938963990177140046992787335432931275886165887502552035639419403586591911314160085026459629581381471327330103500484821116222397494869449909769792901017348295562406328375858313049790709424502861611877161506133231204435738651106067305905993118240171417852499738100430401910817861422997812205510168503466008864152854086681466932758035248449258908341673556836605875790638171743283675647712150267543242193402308098915721822808403804213891081502849300468374736692205622665172327434966894830503152498443980740076910543423159697564824790149124308822077780990651779940841688783750427818869331751397859598992098840496117224747171708052600879003634691775159303550998796564611422226474181165765417836328408543571558723690432442427719461624609844196058208505756274424043707573920372275943101861707348771002817780177310970239149106460575341871083484651087435048479181461051878324148356367227901806745011850295659653808317496340000362735592439730248624820221241729103123436407911491359054349686396329735579716358556617702255612045403144794198902722808973256981405498156399752927280546023562012941555827379883330193536697850553710690355115739503014387054276795574546979031818464705254560545490486348998507229521556444983184089129399613284349555204603715762936074331401877536760384688458764174142102869386923415722296567845337195765661121527193498474161694929800800813383077769783090198662152804854617125578600959343688383728004572020963141527218347675570271137153294180699158260196900835746555863553683309132479942279342108736150996474311440129137736065756704056379403441638479131524463718918424782749316895071446891523645849827755296650964490277261092121104684047362912139528202943631966837585578599680245043387311396643820344595708239706128285265470564584981396322076861989527854118064886698527961807203283119928408180094748376370213235380218344763254369888412833532248106192610157508108004166891454179975298516002382641693466537811931668230677240343978394152150440899414553872863269861673473798061864326021890025145252300542719471209404457226461145517743256314955846481653627735698933789495424255547202883890315732375376804204586347528146484936376531007907073440258244470590679610347761599211287592134509946770411999085474774558344300814694531240097186779417230562110593834731718458623783269349882381029791023285571914182462600267144477687466403125607118879548994837603172306845511979167430380581374643589915997790104368763950559224205530569034839947523867779138822578591375290347641623710160596470862629854247121701761746354699286791046939477174555650930515765375248893702547678428595976523390355962859040615293751278968326610947536547648356882828915920766468397078151406405978582165858656851130003153373176123155053227330751723324217015341817704715420404967299582345653872853878224786630296869590033246244973594777137269470459926866240449500902144974737510490956247380545232499111297894324101842258945653688626482526870153663823135148768291733977902731454136694650118914876047952924867299594487484579498263071043228458042760196809767504353405064303882030178128034422136858658442853957795259930800163836857503630173484621700496966115146154459460532208068381887789661225997356293003152860188662145791184120977567997319081340336202221769856735143637747514879047397866027716086936749225597566024402019068742342857549466986062670159299923505431286653462251169622177796698509915280743577667782652676975028779006832121417149418845658213204231973859792878481125237058397670429427217506082250773916787878101733128898492115362128304929745812917264670672060240873435305380989579190062364971676292514261375998093276575963910031069286000819102757502127836795348157802850323110365798642284723489210257031278279402656670646342687763222768505178654294057007963371477763747172633570931610044221025318214569096266736943401985035887340949322979202562498900149125304174912162044491314047370134422193823512949135346650452030204362132153783513028117515045787978633310338444892423182563718950183569413695568217201188159005384307599427283450447929865588885734385345689695197581388291407318146405538968194373470908606356411621167274658499132622515611008089950715513715493145576781825692140401850461624277987510060538030176738741311828788588085423155322431632139674837791895811122612682119860896159011230747320079320275425410520633594927115676072896770770575191447115523086715164540530189251944335488300190971161835875227706936280541119060301669511449422439706603051876074453612837976459082327479374269719211008358198377795653252656909888951810851598380297067322549093752981262298855806660178883853264268637416628536644323526333856675063781276710666747269800892169762398833236753297611137131871232473583823850179895944678139477668984511465710874306702955163768485975155598616342467535943730923224746255367465480837777353084292666024786995555935278093651180167048207387913103612806067634089242194847977342279204204079362329232108434039502248367762818086205727040182851470241146968545061320540277006500512632358866621300336662068432563003026790894596564664660841721077124417950759266325276605217354753796344577951274075331517262884909958123338583516110120121735896781247517327428429610763386205493860219407085856981228299390385389383815188726828644337717405911136787845767065486109848551179207790295293292018244343278850392016241006640211575826113079965535854806571309253337594872625666006688249851903381494919181417543358034385624772055489867608321784443126150197665410819898201337294267386158843669134073840413013404936760639237009895380739263916586313501509170635474973950508136693459252965663884644372303705808770993233418880963229330857031099928955710281007197687116195778237700257926377150301194925252616360095056996599535831092717774207644918696686642017722172897337611202594613041076076020802843141730294661367125354887792522243450879924136094104073352115135056815395873969613697266283562109897116550438570998704763820446247578240429309536605087555249006253403291761834919124531076814623497688405778786829987260540176170001586210540632066333018207269659205026301439534565269735820567978443333236040105315567668759299305995220260568039200627994117637135756841424415966501360307318043611669684937806921119723132231186586728307581784342050143236969674175488128490712014165455543735837496653235417878088734061847464789778966818282409134524047614778028587233521691719336338368500397798718021633266831371501695952077179699233383809181263622026697324140885767277719748869516632560111430808635667011688307866413786531888423034475047824118810727570145951346200865076605861704559538470441259870992485047102394420007810293570675821277300240415834621863781768752770211710071390776288452940544577739356626089257946329465191295336994430729373683007648758524689439144742676780575778595064716899377925963337524219880103770504368532161682653511201798344868316989100208814000383142158907685795376551726487653102048696909997187375696093986897917021740884802557889727185822843501055462311995228240517709226026901916368338925895560827203309431390893217418876693910708671800854203110540228318418940792010554153228355219479570252810105514065936317775497071183653105461808318815042388700871275524418271479434410326852000660742335972845632534680398954823572709594033181095071369502664318076445473281623199999961977410753740305194884902654990217170495113284485051308441737221727482639348359613511481067833270723614752947569361425907604239965402019083849532554581405934711145693751537587694683228404510415609108153082213015898256536520979183146811463784576884266135495522050039043408711789348883739713396224273610884355330659848795990826848896688506667229968820147036577330250045621548313998560210371905364163796904877855799764409239446913099855484770708616970008364969187064566485975853450131854816037838947729521704547750889592683970362186792849091188029418791044058911080696586206029665018279711422894525502949471104648354049207258115420733829140762013481114253487924551844756824138222147227375046173718960964627980482059805277601150478833945046524167654990549322821405443602865566839892618034731860517008025083802443070997605131564228782687454647159640650256093015144315434867840502385387772390617976063901444118034543765353822397614437958462034362413563985241540068767088277295243689981587018751811233987009419448570831653053210105933423455534617155417411085663972481200369333706569001400580441217047760618725500171773702881080658569314681357423712777483309387946389750483601615545921709445047815846942482266844811552210997462587134824263081899619169426814899619048225462393682762952851398218237151087214370194781336744917955829542019805342268842549673036941203719743234474146478940801750583921037238893229073864645304927250736955655892051100208925667096919266461848612477389487957775714337348644013910599128981604463664385754174573989035765154357594888719217063477867857976099842499973937294341116407508794878369103459420293509300607189956135391151634675078194958061779664925247793957552096915373353032174947120561581608379951288553281160248809757768931994991514747802625706171791543683830722055191988910919164521685738491789715859861613338163460214787220854687168120722375381962129762856438108733028501337473478884029638137443907892683417428667745509323681149350620468303343772586331767975571618152634008406747083933762508258684101785560953289147877628516110483871918820260558953861109977741108590491599006541115822363906481839591544519426913270232653836377098745110995852622084039257925993538048832610509019121887967614794077667024258415913711336066550173134430093002642638799937738423065507069339894098861563662686258487230360797606524835231882417087988929876301681756038954655851214644891661238107800477584583792989997292405805375289517831340616916427797762171800811888594868378813193914460831497387397634290465959600189006956699868715284517703734420329110324737447128585856374481208073739319266946610204388148652582608627964004944211904470031594261108047304843154512042530498771133984841549702746162029032497573014964924984131924353336450582616775560024903470748278915433484008984053325029618062972058129671869812262322781377218286902195539929005381072679776648520954438789899213326555238322696437426955334755880521309410153003005103281495762954241826512762564209504979823367785366222413823887994525261365810792178743866971810557271086355528415672948584576732494427111781491819447356125834585986472831564291373880539780720173950744937115653611809736860850786426763487259581708116347059869019134318267315336600842630774184335864360668511148415432790972824092059533229989782363475787245147284858727500366065403858426861611522758309739811870610383039807547291175469076928437157940656918490593158712432069170057425407966101218417234472469469550999643707911258455648826505836059189454913736533783313900503761387646932512337920701623100263309751340546807457621810082753055676996804351029196095158517363038414048646431127888575783371705161520109468599724860184791235818367984344926947613739209286598181567892694164892476364091102369899806329816488421486588952331330819126002237708714706641601922661525599638358129366796923121496904749007857551776945381760759098548073319347914138187424249522000879038765683966424211179194489714330118768630092084576571946586990073624782768413938856023300106048632805568613045207702282570722962030790533571523434519048740855194523231851750954115551240175304900710873671751429403053050555918412606082372634492723543775288565405254359334524730829908868876459552634533722587938708512089433157672812091591746794526278625017679154370517699160810227798604620325746555451383149272570411783303576602144952727457642611903117416185372614547823089086017175981486465424907991705521578145238841683152442980804494330505200052611621331905174021022388799846481067354161254029967044870894215664439764288641069762467253679499722424825995181075884480078481121417700412007588359912995030337640283196387152788536463613155872598177442510609658893894254866635532992286958538526072132946035092982610118906097773216651641929998547537774422162907892899300171885685461996884665578126676931665046670272214714633834216328718371203904371335797673391286157734712067534165011311322859449107137446321270675829285752410209109638359724334611440638165875099366953635081605383397380423127624582849059278992757635693458812222518986033319435545752179017571808782755847731875052684447292522124862627820536702779739328049892826986375245634187229198879881967403023018970704790654953813410677762669277076874890782610656845726949333898750947187323030222960078578882586617409885842586201453954767335618653574845993890203353371896667826327354774083288919567789017034287400178669737923973040100666909042630284056938187876751593038508605524599357571404742127909909208356172725542566169134907186001070706881404971541595568708408388578011443252072401460840417810583058992765334466779539961468319222330976503694374334566524684276556559674152472298096902724244990784412684163118747031567869940498421012158198749524143913956826394072680186113776953432519485193976997759593944675541042798149082352581898790172272610302367616129396489932232230729462948019202892191312124514004800414389659559099525733191927448554429468484143042729058811456041334419310992887811914102094847537734093587873625941293831821133700277145047200676464812385202462131511536003022595107090394724970041786634525979436328495210466654341144311644199169540175050573633915102495830268286926581622101067745605065334245617034586416501830427935664379641769332693031583509704942478849854791535459695538173095787415349873421521899769109171171023492028438760073104236508946752303626613239352337100114165821104293581368661777893408857533798733266794130575319763752651984242020726309791837597774288451073720600554153221476456144369063151834818558096276810348436498100845885105014570773745791121153623968498054800286182624107097738544082560190703389821810675730215057384595016465104399844807469713660676758243624677840079317267180410863445822957863791231070184376240507786200074579695498519640367073779157496152464361117553199782020285409814954986518433477409032934939844352441281184746515964212265465773553361388201024067705881830628198732235182886838994201118984604796706241178469620099862954721528871609612526032115084598731596362668493620340515702408692745347914602350076524001138015984993954991960415676718189515308609845757052270665560367852835035464551356920962242836135776207590014108959124523259726432507030102424599556454033648767479124234606129965474359944781802372570349567208946899112878479308052741445429606341969667112831870991588710876199225449701706323709663379459577710747780575463131368531591098850281653175179197455490389476335994847003735633773110817413998117243480713555454994636286907507762096152400835147020566080133052160746338570507516416447510317420417729041209382723725458878742382853765275180012831944450532779414957408382727199751802629131454208616440262636402143550122388648433294789355556346689748186312958390006888155255210997164545136928334799774986535563734677880483062706395694107668365547503391762861849552838541370366092621331775768843847001622893864040564885842175028963331126069820059219136520960210694983308951952156562753386864174614063578914180581441397104241375118705930741444394157015279904733974081118192689988464345576522976908170241924675154925169268957789053378307058123349837953636347444943873739756507418716527590867239867294629162986881268422376261953692023660894905954211248702271583912541885330793226694016451927342322499855285479899654830943399773985676358736781874021834692332094838415685195840279227083994890693255399593094669652976388451787571258395427592291530112450937297339728401872089866533897046815237079691012726386754000081079944986673262507344378677802374020461023500163920561351585678349400627068732081997665848507035697972118797597247508470254199778367832361625623738679454963166843523037059333341234691594342928039230300678777426725314778537093097805806180069563013187651072911524914150079319331099178430658012965194402023619243836972668638649533972874625239609209959088129706347125172618645713794362010246861652671460817247302181162385013973044291362545716850169926971144851469343506989017865140439320680264366729229080985742727297014789128900368585194753051406856794750576914593911983994091645475331575395482795734514929668727575839476306420170160206713512711311743132856530577371271156641981545064979635031051640336903216128449911948170398475557315520383749572842722735882626859353700866883893997298664889432789750795636887574732157486769817101445974547692440913744897356985219388469057688553485681877133313639342963195043915546884962552480808113515712976499850860934151634792650575915011132565508027475071006107721620681975658478532793243592337457401830261396537769918186629265573310064440012381336107630626888487692046445972142739734562274857643139454738314996332716554259768275539866892175261394326809194229357243835783017828113347427648266416154241696841033321327149932011893263234141487548191215015875975346906906512587172305363388661286688746222720538831051987521262121703060074313862564186534078564348271939820002186289056066334494144564427488273333390374353943403815693358629959903908802139392531142391164841096916700371348526125401268952299337765997523384724588645049925804551846869381016307056462835335084047888421545119173965033104729804541293012592732726112416222037372583120899087775405375055766270746937264488027072814057051293096268416386831589175219049235723703363008473906319842232197293273242106625162001351696312304662997589998522850716315690462057313820668709984432541227092439457288955472782745979194347260737908230441498858098253717869456523897396758647911374461530001952372098621865909026154920624771416604828941172039005504380558934037458744812163611562029031617420451467787894960060805231467349915083926721454185833216194542609428810627179966768460127332033417313962034988755109660655915405677833181944970371826381089877898153104095462338872817907804413091847763565519808948768953224357880193975031570023972878390872363865295566271830480379853932960972375599700113841270730241422207478637702290313373420524388649874770087748673432641208172759835628286735084764807208318590687064143338694303043756081149986300071423783641437283922904697017517571804282123252703453940543399418431999964112777393853070714725976756838122881586794597827084416160333131252648307184176443808312241618236919828342113584610213407943287755118927095513706361502775161326061815299607175515298534499820418459154746895581697965637313505610943056615922583396357651759075663201586648194830780149092513776860175222592953218075175656865300885826079323024930299262507514669901377352772299684000588064317386650505941667813852656151707977332327908706402239910662054872209782954199196900939921101384784752089527227395313676673130018078922280070990175526342024970331673382800657621293643289907737797747571729528068418607822782956800277042538625435625873731781708037791048521213984998162241559479355099617162461045746074099827605786953125470005849055903931822833913665381997334651822936998189462621393167102387776692293699637102988112216972642797826735322046657914708976388475254550222905161456659254316854550690065931440490856991929285461531062930179307544593693521195054778847693486698307359838243130739063175655600330528181551199513052942059591318781734897997088473655370053403376388857677186929117982457484376250953662439952465443657694396142777526056879012813093039051588663596852904218974849057977423362439270231486112245574470353159008225224131325155350339684891542053978733801893395195180723314225997993220691234892927502798563947477687377400530573254106380865209171346331828320999695676503808888241191938717842663439881028045160405944110235285613031275006710508088033337242764278424579824108879351615089791496746586769266859604764278029191267218453372185263050582340056842122044383866573719534697388311028956943153432218090339869386383621315752351959954669086932715322425567259717894315552987042675929058858134636096203830268245024933019299552144438298770377539530397386633545625042849902064837734553728327093350607864014101799266466467695780171784825087206195068721958235679822958755335048302476421941985711959043331909832938531230852651073972005393686137516177344110489951192747224396583282122151880707982554312224897428916083983920549965855411241724258041373514186978653047587216305233384885202397476399604966887278217498658698922345002032746813512493798169983111340058124922064408285765075191414255916801868507201302748945419343161871885821911116447533239137085153397684077157105140449526783437868655101952959610134529433964359070935305716902308691102431226565670018216892418883136034762389092517686342197345079590694687752196671086437797467677789711464817542439750963905407856293346055121792859058827923667073021130966631044614676449703674313889520470658702541517650013099846426704432159410080517251358091281511019452108368008723846956737609112890027436196129316850922748447618349533936621750310716812593774330056224265632522042437252409478671983782760912528341571762163388161728140202081265839985212436083495726480520908983129767029363671962206567379640227515887249704985972656438055091400086185905100039812826808879420482141123678343977674568698097730625096014584262342684438459211445623617025188346971661573730916475495669247986620363685532001936892712200741858755299753727624958501602576324155593998518783146052305259678883578466985737246522159990867898856983882572720888132377440352990719220149539648164350049584570910065688051976013937230032643723733387692479951436789151313176068336444030922677553463051165384893991320320702133825502324536459170165429378208390535489411460271934216037393217797380928539245156473984706862805713320794067589837613937407510683216778265215268930642203716398916677915533383082763044584197272379296218687642944708586053471247837893038639390596835522884197207265547210692249997407718564938950127683680375194138955971689059852469763194130915376380999359906639414833125772654021760926813983127537874657583344023298382858529843247563386801963637803663731591219430095650363097941275858574693116943097567530723300925763553653867730358481145176090444765132945845226843634428607062994079317160854024986833852649978193971398738628652856112504998750022713999234904323227215546702670106191645085201576395337573511442165954300603501087980523172159732101899573459823994298919753493925531674217514904030314431832896388767390527107983487520586058986000379550016261730462230092609451582501140334341111342389726953964204983160253126350637213093684728226230049679135862482739387919663988292934251958631919989882060322183409698766119436918189475850641685420848781565299709317955501867809352460987996827884503634294415590427997386112704348398982901516855446873280607796894111680924344260719678568646665325934944701646529757122620447476620564347479892996795711403842133333439985783264443240449528116472796748799425988959420244273642994373934537545957253173964813954513539123484970064479183149147526706148712790421026453873157346589557725757738396659036712243217928989424101428007067373471516827040250217646902909777956707980944965106303007743894642182080941088373322875002115454867805963412638324840887489393255050437823427292776477759890623714210191389799597323059803025874394949142055793963382095509589488770564187440514027364256976229063403265488379061339439055938757167498639220643234742493816254044954417744904630931072008254151815765201456216916511094533911724254610272580465315293186286899161967337710020891129202512616959978646069536550382290877548292341044309119933138778335497628159108500415053735936741050897595129095327261619941128829244686976630041052383314919706657630849625082676946460176892828461149434462979809565270769368478942797759454180850857005443351836466241940076909220480798201030684210877812395249840802381085017363779112492606036417877142804726656723134252854547342437049333730533199244312273294404530638071942054109265540312988197141888059297879658381774948919898108194333108255361671238564662142131470785194187572121166252100174998724910083945645658650097431171252788647792259271055915539211569077941594197459938164475837013466686434973663793289033164195422101801736285306801219410663185225260842192215282724628943249360774676953713526422290568412449834973729716919791415973730649054679095557232048924342247643694928173764976748702288164431512621508603201000417037758585022290328906843860323762053166450276142374500591003790525579704023146916515768635214534788675001421168464010575347176096996514359747383033144102122016646365064401682575024076694293333641885459474448448553393339653905383861081558902122918969254090430893929455873202674086622775476799705136530783251218089980171498669817419276490142078313187610135034419609238188649012408463953279930727134660823536664510730454654043654616280699630069771078469679732544391691293223983655339496151304071341176204965254634140377999798765502211713273767344711430300741762927449680216825512765646155696197329560960591727130950166644891217836337766972429752790230837664548309499984204378795971078049535309357963548763581088960625933129757021363045661462130085561851314215945564177946366104005245163550841126083097697941740262753435723978537851072442092499045591754490542936175547015339349669790786244997893523119012421887238966521619885063002963074561290168034216144137928580545792342613793905674865629093235513126340597572981072581743816420610050396932860195764474782246712351491315448600953178617025403894765240236036195566572392740688419369425988122113514695402293642007400388344840840190553683428980249918842041066089101723574356561777369318063423048400511234321622716692942816117584828748164134569038956639340161687089155067066196056364209543841353911785500093888900185045939156860437469240526531255755674187724901045351104845360113395278424937150879925426370850284505334324533128249667401110263288805794353476697311977978771830914642330230437132478911550061307607091986239267677193421870475648956243522111042819305740965812995907235342280701144902108774514961998307645921656180759795007574053512791083884150716479989932155017757725242588763327035340243282098668636532090556415392553495800367264170681957021669979084518014336964041332978092536227432980389918067542740963408653894462136485312832887866225186185911426065923595486019736135867758790747116415469748210132993202127535720645427099613785608528859852377768970101746278659595389598965872866989740940470762472014462128185602701595266900732878522460081873754490018726544326227422951157284214626435776656975381955981585009213655381001801821801435944790897851562936894222467808188096073153841759756888895551874742226396408223589797283357267908125768687984808935652343691091240483363970079210906822191959387859937558404380343557881347259287374445254479341000103494550909865350124638749024659272173730615095809811543772265086257688450699209282527801467600145307468579079856102807005544692786377139151711082898211760412339970410470086891361117378549884086155163707863715877807657478896614886569827560338686391479981080026312904512825815138073666406090664169064283936841338592184461745881073597610533755138767566730809977577680063116392077165825486945778582383294998327837208440625873615500165619527337459500787437351630392597015480082606507262352037977952567056620280438037631405180107741831972030225653141989334749835927548312177232862908811059107316072952482375830119282139568378227174400799647604983184699849567356783125297883666878464569187582453168998060981602974308950701342367208723864197852732787351034746509522679297246794768437309942276779765903895601489896862325977159304856019853769691195081609977537340125979875741089046826544841213415578418988534005971540248497827620005645430506992736763721908676500729748601687548144330288183596161170503605554968917846475254229667462301714694083018676804169034879644867284801949248292948685718332775193025371291612616260951874002807200647124577094445803703532429509580506981185079757887925120299526822532704924022114335199042767421767002983109229797818576139440688964903164581742137686490777058507266412867494639628638022084437672452153286093396575257582019791561804905669328101859840598310595474096804936583116096674723614380321930609468511742292334357083948747542631169511912905508155318550523848041589429546670659191689203710082203320474150901305740232897565284185680418697494833831913746347974035646436242609957993705073418690350869158857941837106863899415278912327631565439260699526126694242053254368664895341108674480495247832660416186968083711342672091102687705021866576984061303037290905628957648813273727827207366188908863970130786188716846628056708799925205426959230339982328649847921684971180725119971790430930827641083774568085633061533201674032908764469665074600119229966300972815860197034682197499438867488980952644844722519037546472905044177600944351326345981567980783043413260604508494425338972032664687850235985093981877312427592297171469689110278686139367818334136828165826100686608210506115795495424173554647758006011762776512416627097590269591822129525925629022681261604985059107372898467829898050924091884772974993855135148414267848778596033713044992961367172005041846690960110341539423016470139370971297575200807104786298087488162666922838754032632415592505509166730887659285700049107715740507664673237682501141872353250570050253642161042756385677467405556668886449556641054469265567033951636635545734259997485716993696991907759089078436913663134641260831814536607899517352528132453030273167566831365350258155800692741984942618742655193035700801441596330162474393914217854724412926753474954685577024776272504381412675153527779419053556503205506091800326630535095588977442414387544537430756169797399257236263516955453118827137476589099045126424497214381003203686037253860989330097454485236472780446197849532760479574159457132300113443306599420619617182163516361200560652078241123253933721018832492364509422405523707505166326474689826884899704044911504974578046241898962776793868224757086873779904560829982748219631111386483318425978550697587896640957944119459763741825411860453664506665050486720307617397529849428725045291563876125120737407548869639590196020936198584173964882144460373634895005651276759623584431961931220816012100000138226491971107293787630870490985397140040735139177282437106327634635173207438444972457268682066523942823531945716417681226130876317939391348740067411380354691310207306625284355200209272334350607241527229867233933462104153578544614983639561120838100077959423344153072989667470961629622940312214374918798885681660285552238111193603282409804573685752095825794148271148801436874723020705738086592459895061669819285583621759194367897138371672308012608284596285921503152116202287931373189350960110317190684940216891855254618572036222715533316384563179147004521274434953852155756501408976368899753408491186200685516068439182413939771896785199289475991453374252555403245926873008573499898137782733918431808796965126627576472576115447124859201730125532044419867600307417354101814376525066947373226175053943355618700040159437789644627599374599255246390134822133345961149419145786211758737955092581573142736903758840839437255439307440633006842464599662174251725927765659928341643933576566918545650105365173021205153132896283532814016858316130937873614906484493729837523548319222215848046596616076916757958530639455199181417562605386414971712142470341255911845176992858615549055096822960598011618980104974106602662805076873547755397341531309191476431529633470436027343163645346324618244738816683500807690857940662288635025024053887624024309901826409740802391344042478868153215733469528702177041020298091568340436864544573116710233973509650013603189239511888528512442050806546467462367383396221309978623255724077437151792025942165128724627522981801138490050355915489571383242250310377461105543771747646079185833447867048159418134563040094727556189335150760393795088757830670343058773968002390820435711595677397989204935606263088728979034190475369278657606858211999358200415273190128515073393321345409486766267653080074675408367498877913679525306426115655571962080705845989433130552874095290851178877739699706948637927141189889545806500839370852262782723476795850728148389738373765434111710103969295480359224988672037820910519950577756248805146502648210397598068300265442565147745068496427199403446618864407069850773032160768186593778917188924162030604743486169554537648029599213583942349085955519764526542145550908798291829107305731834078382100570277658369249172314969566488012950171013874553042904162589909986088405378056714488187334880453752655014785749214745595315691036866592996287966414016127737204328616979685600692552884266405954643284846094062744727437989559621051581347953752229832959678869962490512958846878295932934973803545451011402825220835081695399073138795747476367539232157863183577609809562675563130142573515486521312212500031632250169677441817813008367379369362582982826344318243502752578101412876357379023466222846534764441003284587270482408670594975230649744801144732332648474377880499109185881857642287388085694172763532049439623889709921930481817067539904725900350608402670686946398789044103922745920472619383157394101151698854843537133524372784011617177810558361017451539437134277753338379358635150566874625968430217448357694821332070658607025103767889053440081839145118644309338567299274308334290513126228451988192899936028602341324853375231675247973000153665371106249916290469521171455488650912813847257115749663836066125805821838461187742595165783133947513839060606163212120059515399828602409820814573075563730130629850967064837166752610144781943435130078433939724299850295230867634376632976586308347741659446816204139293445469638333841245143171767671816291359936931374630232177866729668969812828869647454325032631070318777388210979846763959374937387822317525013156506061634141432835281446877238696802974100539415963495815895463394436473430555212096056661443803168272353149650337193171288075715685967053665390199336828370422304391959682090168951202865918254623427977399875143155172609487404884066331471099607938108879313618113559340776623956369955149940376419032741006153661640326190355372593362055341603984688085569735994844102965307957190679699918998341086084458162864749520696918601167413951037308700443562665704614746886455774664345504516633065931978395169843375234583597352499834765419142629141075181436644912943062088376620371539008672560338697698160189491809142765092861013337581078131992364994301111287348898401824622286068350237376159944907173371339276545527082256454301059064886308348240973839157880747977159224207812897814578821073034364685721674311004679784382385486895948591877680425001092694744158212932341859503431814490356880098218101009669347171248110348712319117324441109579173003939068119695171922097795040259513275724978460954391580238555558686971416831304505899136707501513578169685473724827623805262187052319996567268148645960371783454487433485097127382809038123643329221201081214078685037234143202543235698814028668769271426378486799761868317423626379163084146110606162259882187409776357710851211018940276595244273502422065134347764532816132734265198093735837072453361126063908914935953536012163425546436030200880921127689483965245479325484270947640418337700829681496098688118476971884795745181712269537527611674375556906987045673463233941002901672443543205471834626062093941362094964835340320943061978242519657306806669685212485432995092959403088595699284119009309096402903554335319524632378569545930454855668989877230508053573446414759390948520825971522002430518402493229045084697286214211725358887239694144058082439222350043493725692813055201274021443626853866381208015434765093775439487622631220300674071774729432119735893925088397699370223689057142277760050477929678475022330679607204249947324641488146141722408312444629823078637395399964195289017264413396447957986437583832674095662692254385388537198766682018285195469841173225331072876579945235904794113184321058557728872079217670353419234814136389445123751155609541673191407418456635294546338597945566689107564334345323987169198692345498344360947907294413226901796022832192448727525530538328189249642780567527145777084624109524243072951678465697300606548084329185545467884327443417770452683465066504335081328540767469192171910552962664418370223166755053412638688032832324719046294848886684654988390826835349826971282146235896912423868217481323464933273472118445046166837552543488271451251563039189706871640171535090606459853333285246323170300723647701267452756721089607320393746675438105721177334555364387855551341774589672067284541534547742146292008365969304690654733201435426608513040346535135054941844011118591218961723658857235489813972698495468180820147123909713599682677248524343741215922758745318507883510911909095493249850989906727864124892007398549445884867819536681228461845459543858433550560371125915499734203143487626792117169206527436156732303853097446882687078407361204954653128593277961961001974131229571866844255648858440101668825961850435126398235397550371863071586368778215433322198731777471135520459700259138817910053172239613988286000361198301261130328774146899074170536237138012698292318494391660616932689832732823645389297386372688306760677870784140711037012061779070336662259036159017075038014129260496967537801294508233913770054209496126282491420266967475980098232910293664512441486334166294752284078877832908296094622108314809695902777675104855845780364434490780145312861413745336407236041412303897860742489524535665915505334190542446641072863004008297595714455677930037699756998606606934249738166332372779308204621168872255143223447167406811848558809066273856378616106279037894769692816421727159358144318743421354079619395093775759174457410176101596905524747296929210079993226723375914204810222795768672231039477359215984426251915905454343500988814461538653862136929176547132149147676358628205488540431400825442266218275329967972731275962278788362118324379735591111270420834265489106997658275316794802744491233129990103359561095991997972427323789092499887295275491983311997930971420399647767743133810431628911030274615393940433991531817897719587883479255964259852046868818643635479550471590380104257633669986064354538832236654438486185920464476848193759680783237941765994070213196204614208494686349044789806248833634153421215099899791753410303452766410757144716936641599353699427247048145874547671153613741380915895324265297819448184458639190543964958559632412996810392906135982064777005100598268861942822447845346945645848721604069276911651185294817723923764838649486998461118678247202191069118630031867863936431304913249492665922888219060800880835954147796716096811846330948742006260627870879767662203456037599981914775722151815766307960485212439295944613983598655519979642145712151244414706225051161274056091709809180468416683620896182077018337857540726051168012689693852342388175055206055949580620362653409146685529588089499226750894410114245112536005018068043117654577145948073968648826766541564597388120686954134961439099458414998180276478995712580965341382624480727786780143962733891333897993479313821371715994540453654003554801376199481188562142522415339545636223855719327647572220184580356972030386705543123830310519008451930331894150470858970561255058785301402339503459412129098358732398103607900397318365940266803259774422412722678028722202055581400621405232069837660242397076040600599267676482925618928340530743067885433314654631796884200486091728719163409810309049706236231166181217180638860985046636833984434159730322202324780454857088073980898753191864070315526604186767815375964317876263585215162405074280988657592882896230041723420338003952943485379010719843204813525558498291706587976467909272134424004205659340367455089512012472472995256790603334576731993621009667880430788735043487397260239200100561213385424550179057229782973090544478854276993831970653224388918205995822409010962651150082413095694880523519445641558945659111826880203122063093947345625343471607220681546367736331451875686202619660064386769601376873244703070592607952183099959986728724750524697311135906845554739426776999758964437796006922551788711006352452561601373972396450250160552747165029769400548637005251260333372634661545042067908166227352012498076566038598117398878195906348955384357564744749624643938863553691778093638077089235434800383388436924284939335789912323784894234270078097301554447553779798063917941406045764283998388143804366294663290167566975850756747980721724383921155225185906360078386779407401319162248641477649310288198829685574546263989283813763537838448364489102513377997712890933007907285855447013882385886771710199110635210488397615843389253344287141959331348528259614584686448460901471773801062441852513030012303055008881311652545927520702732276331917167203143881354977694064157544741074420972855078637015535566396495921626561401603616416612461482051023995518332062549726408287379767441143528546259508228882543414472020505161733476152126226578696553107611372866218922562219540249008517421816662262971988663141828990097318351167882849590477711442307453261511081609027847152905344339391475060377532046585150790885124138990635495138388318202937492263516461545300206421201649810160157868873463318926169236002565522978101963745898746999680917013882076182178117119279721254971725597980994398239741290701153637312758830378581999341405776201721407155227724276509356787008452841046423189706804581502222916494501872317265747173790435362705547483685985389155578481532112795149876523695356461167538187382554527280157679429946942968459757220585547551909698479200409280481678646470400401915125924875379181192380298713599674770071745176107761527176362490917478131822779505299663866912421690038413064580263364234075926724741583688648753190932281645750335468312558242329056559713023096107269955776525346011233745113690260070624813688867080881133282341898203370604269066394633642713264150514355539088994754505443972643272288902747358220848001272020168301160359747943732150559136968679877154806397996817008987977723448144363672553884368258814581694825232387348513069409724972233033331284718736445600650526022703974851612212775488655653568672526598255361170221951717413579418832710321851223934991565709392258183295065874928009928149916890107652439418697678919157181820516999721094933127509950993498331150947075088841183689764832869621353665054691483238331643865959429500096142098593604833860121512352974788532725365221774592865213068793056993839257250079303720362342698229751666089256664107025882320414828876423276004028443815675504779187859997533429725448460073646393727578833165705140694904531313971798099500714375539888422574542158654750304738454778900391355917971878794545184768062374040478547913074784424983037299756083622688542230035976724458688189430186962740909501725679363717128921994368638914216977521320141162067042616004597769301692084441398313055048864215887985244044275093913591053777227705803730636507484503312920156702549388297408572013747805781096442470243209903901991269684183674809798131492093862453048379384945934915474343848141955223612657885137189943993445928797997975511311076717796282002680016630029764540565513034770698346723127395526979498121508339176201870627165666894182674956999923676333981880677517839753065824977045079398497300157593757433855982236176977150617593072998777214780612696518703198292544778840075674815544012172427613493760635666269398386747290344353859434489699724613016597842140114504342807005931892335410727930651846201349468086477846597123628075124820527463707966920984930732138574391175249323446216402209792109719497085662817228124417595260910641645780177876422032241687407523774255765205145291299906911554689566638257526161313278706915208718182903478790748171716953660662836311204305687803272964929792324622064192565845064001010588075576269632260517828562643304134626520712733400462841152957606889272762229030740902655373558714978481832192593807112585976247527055048751769877531754512475401065127471097435951509671645483926259435462179191571960596604018728250622341520667028462688656987808301311685624886553994011909311365707178701888969588949473225489567826204560593754301054959629271068010470807821760837231001151938035151757001223895478085510821053834696803710928035940747663047590024151049441294979512745705171334741135738169080469559686529672267308786286712274186407226092053710046435890752117954171781150871850613289239353972776489726667089572434391054379931020187978752815240954144615797353140475055142952678638474076025176414443999915439479260357391474738700057543709228938189578697463341135803313620282038669758087369423972556369345393564548275868776529016877786316271977784002890496323495603561456431620018420129724116845678480819605549277402260533214568918102332157266756186195393034603637183948521104115290837790135366779709857699153968341390701148298506518268089403684894231487177392314112821179895808889652438393928625793470809225408535738899849641614944568982385651820450602845896848471965135057061289370816025707863860369815587248009042656864415450947414003957341203445418936966205584778958853404275603033645133380298648528979480818602604215043584416066275006973067312570354916101907162068198251169959270019778756940597544353129171856411212619963780168738409238128352704764786083093674083119187581100433832590959845554200334432765122665721983415874327161496898870555336909301655571753114108932331775761702873304718757733255258173668075975499154473614606808950762681781179021142967420191383398876892695305082416453368515106164268893279568972842443574022150363411541233556031993980292037689126196934264348767087312752842937810138750952028257237196604004836933905873298920822108852814450022631929514735476322090988102096372570425618963008665672821417032466860918318996667327695120826514893647950706591012144338446900135125742131982292679644028485787293884906807854423784265353671930962446963375519855018645319289019580059606205371195294453689887082516291445152384588821803127711230454653884272458403388273361932501903214011950529864156820596959206058311715165542833881914427562851886222099841542626073530827137284410147637819079141070597857591076264613404683314275750283940816164696731793028424921148692210848052628313509836589862300544581078449755118810914032981089936428983200852336147997467049469392544420245305651992518606203508780417986833183789490914464582656025399165645590659239764175827780933966072311599714005168942232172395016493053830446842986808846332766112473130722720694447519676312750573443816199789420691393597689622701371663420053965545248594791953256647024385356415918633071225394123865441457682714907494589147752037438977720680878576895132326659539199017604482351479359602306085609045854970582163460651693119062440185646575145308537039408920202967813811965384464981732761465673307333526076426257073090757229482875537288807311572907350090889873699782698544425827434049209060763482100110677366030514778580218951935784985688813164143364947517270724738404145329982983786713311450642254782963721174842549914206944404496380627440977290200824646225020013487444841489594618160551680969177669109223460422849124780598200807076399388991289441756499152696323694591478223072895873488830787571670441365971654903263770647455839125271500792274545790731966322589212990825300674599426226117534345897918206055217564605939371323551089187647670857299873222691536811256919009239748711596884136285891572635065559459840478082543956457208606651296955066127335736244292898096776210709490062009479525745540346753127274385150639926240434525387057359177138876153081943691220819288721901437554460102367252443079828026506869061115033645995925762354107940045386225958837578729750493548321062124525763729262903883015915289362228305849739359556705938321926236884411692737203803576257616132646983325646806564184353998976248611442556106859568211760549749637462427538798046386758947975477188060302407018346340827196105991791205360756626930490756903547333276398791374547568098293447449999124461285864939800340713449623945807422721607188684364092022452562500375631843784621092019791658799991726962608589270312095697874864684034429938916572715565754882042475017402743467729409603996882082315973695048078288516057685566535112645568798655354598219267163249593398862882735323460513867304978535969464447316207408709321720908416745547140366712782758528983503185769673293919644341410850643819597661439700961412342048801066590670143934957694739190745375178734663062712002027459447034053207716652291418921493913174922273423505286636654138488947435372756814910754221299874336541297189305430037123366012363183402427313446185744191512625947474241277368764644344026279060619655145163459622397488059423620619101082853688134940843517387717976097149089813003441791846479142925200547472408033460942303141214786487992332464083594597060234635460575832697861253635710033141218962518038982766776294323444819421284205389261806843252784059280493222568121275995798230217036929764553511192948604040391090923875880370952178301796411733681643307341368140691580783853677711170497485923173233614226826067945957956651579234170455789895960485711766521797862401856316445505646745424501070396649443714704000158811951113623454235014435314915642126981803814625558875402265038538846527440186886564215707393959536052439201799190936250808011735825972718729407507674969957896553253467483993330336118421967892319883645850842197627769831550287914555383422888852837949098488656794050578987486609755584909839328280925521647449902886976963640612523366988996317259128326797506755805310831645890776063782358200491594840020282220059004428610658253459866680843994095817441674481800622360575183114030689898165698867751755114773296501586926914536939990642301125412359225325890130833160643211592394967312796112474118048623540703622556576954215579637509522242995740656429208711215485813837080412057233162524796168420477487300023604474348452535279100205135850511415581052659327829950890682938353364341089459719429934854906407027302787504270905322879990518975278770916431024088938637140729526170187748857450950650747713488375078925961031163324437524188628272422838596522217009372622400537731764751273344490960891669952111387973529886565419567412449905041345237244264538880113068069258748571289107222649480176737323596185645736326157902483785631231235005806746178108864403423580224656551601931514111210164873129380947985540475898677184136764053120892448645761702883467613602336257001163230257213477477944516004247091478198476623092075233981044321284946630515723135130315526869233896362091580370293185634057357589565616815043273129519352947164058241614773286186505214239655112627301454736849963118305199705524012933679565954538361188835575606851271232205671014416514835964179351786305033515363012320778262891980789046358156341498051673101783622374423634655708359765761809859804284848633482076012824906597769504107618978240762035789881531634102917226230890316872573600044211450943474533134843997068293220665479410608361695764958216932739294626581328987863468798542591946399933387796532086746362399847460058147969929888507767824093445367867909948758141131665197851512869542872003912221732133584820482932958143851181837509072890585274085326963225934614267711752630858340134762386007859170147472443680191160195343598672161900746042256680853583252861839800517650321751080658707225318962354816915886127102033146178484896374063414110483149581678582269747307681445920716866898751308496216067786867831752035343949523383105308980378719517721369683588228746922872611694667035075601947576112542589230115078673302142715218763912470367837538528253740642325673204072640058130429903909771292673486791026196117237966502507251686021208215898330042162550778364087275025998663406576322761636687979317550173856284700721778049939043958651569235412833388391768683064412362592827668770982656869374130358248255964367284176404154635838255068935782898040977827153541877662855188502802949721387903345962527069041165089021329761641840814299189092955265236108464430519905749783477047333767244660928092594804135845734581159746336870701030221119692282079940479569304841473230264003091954845175110741693960553710057175791417406020967286187163769497836800997848062830023877013384966314955608283268121558608240491144221658117667291052048221579743280492088144633843992094255869380724726774883310733060140717708581754167959138351625132121832021383739666165466880018331105346076518985982438835141532197741050426815348978678122269785350649123558814195705738072609787878415346820249390486131091707128698978105734700656354455553960054439774585565860732418199591944563478390068970347631870702257206193920297237671606459058106444205605188954823875429831645754437614351092114208738516662501149277631166431503543440633853767751371513182345238609847723837744466779822845070667119440680978192755995542374838152420198395419262686641190552371489355382961346577157876048044773843791610560131647037399334851519631537589812967539030306807439892207833241539517575402519942474697073762556797940390156890487673131896958376654078652175508810155191673068636893025834968443536647855647883460945609253985980855885248835314986116140666692882000797683759331190694227957146121492509735341287059514182286317242390356143535534965551929421726165675066815404297143638160386605338028239554959979847869940035789205208722705928434390189958506168107660581139721585968234925359503494582470560733497324262381902308054529419142270081521076673274400707827564335051760510205812805674979481093529923288326779545696235387830940651867191340801167644492188278397517741334010032601412036630300238707461202236744230921603477572251848616691413665417948852150430729154976733014398237850766795945098227964264802987907696162806629418871736315307949356835540275075510170913445364694138552640507719596519532418598366341437992742586123043394690996508260751171350867472291976228797871848253576821550725670803081251890935451912647413402264901394078163209802991005880691237464325630787719516542408223277985925088605073044480304583996395516536827423338849247973369598751951671814604314640537209265062910341295287931471265057824345951975198474699943670508188823842821883266359945433510131162522016659245022843775659823091482051238440750127776891983339638658243650376728891285360144007186283448542985872177960423677905213613043643951267755629289210698338507920584116025079223217049003816302365260625078960075669599225421665529901787963064635282808370461179991975754473803440723802277567988413466381480487999155076431781707946445244602747250632774495819076831099551063106536090699378094310870046766383260771482568152316701923109942073195002172548487530830972138482399611099398542390080410598887378393382043771738033151353269420664027198140045071273778452971064685341660797265885599596096219429139014487585249514711077940925091898813350592945641666732798180346126592348559250074021190657843890152999428369744937762770108355686786103899002537798080106595425351183233678469683151180863711214191728416112760542118274251804421033331870387810793279723015469050847879565339256862465355623006432734749805267287397496229955284697033301625205277602656123848934466022094241305542142137854936559993307377251230627463260666772080558402679115051380147520769628777040730416695342983079303161979950960838911722018115148472703868375300451054723276787171211495107388188388120816451575772600834598564545631034380814258438888742066337384514642880729686569744772081880861354897582338352614210826671193711112687644217241678655462075947632937290770755618857291530448911727188298156433827367651460219119993290228409477493617184289245212829214806094858632487227813432479612077826576050395993096461190677665552080684252300924358616681967190133896410494627006468650036649292282248563344183168325366503652245136475304275759092216798563908833209110503736091473227805948148635295118110591358198214289662736719092142253867164616109392554206180954750612544949573401850859775571478933298290389631440037069051844515497977156462189236719700843708718111446445628494010229549260874166928416607801424589951101974511154642857999706211558427915524161701874429670762834709702265557779296823373078850202102134481257361026742426122196894298176368762147549955376939350703399784841823208850930055159245579270257456995578947452758367041241159257317764902475631111991110181213487308941001242115438517646814748287390256922472519690238013433770641214939201957681943322711195085103205632188694596467987153634795634243134332053109788348739325496017699970157361374464059336055403012658112123074892046959300025041850754257753765939566147856383121046282820106594186577072635181094858681447632466152622793763895760195336857965944213352839184511218509084552283504523701730798322740425324765263725276257271531756862991979120282377687681426382057202065724180788513767997780546952162758388827823309253500360154566009673980427156544717912056269861773789923370224534020851577221433498233219099886890160117761449296922001037541105633126770407545300868788471346138949267342256726505005184055296151430090920466164194456746349558026319784922385705582242267508338413810697040443574042020647826765424171852173079231759618718100007835922885287336239302653251398581495986147954766409154620949044177630290437016151742876565199548534904508496719236801819165786458955997545018639759576716065607085808942843858481288756444226790462417566431042780590300293041664609227586443347030638429495905460759906854079284011604295960683356106202297802594748910270310570596229773506537348182364327667260949637272584658137428670047759425272405718213469520549146467773081250606237535127795390289715235137664028089438547578552148440081679580604800971342067630698570347256871484558662775376105859329845822890523323120689957171636296225603882228585217542471222805785158400260253266582089711540819724227352298966966866684030957717773233847971441133199288394859956053877100407019232761837621994983728217286541180474755211925473439566326379796358688799765475649960454378174669322727256210166728675184749621008967554858106374842871449422280083901048183107891897293673437376159222504625041020421101137936768620303676569550649664121392789616375629676045014034865446354914090763367911478836170345793144642635242977460720127610192789099185834058724480643433682097031495089600370461362688467463463899977796056088298410955194451325225764363742149404142545468848594051291727476412300082592644396087500177771365011652711069882078128836781348559968839504421030243948588616742362391371564076311123390032699685527990410646752210528944177789925430184677840561755142474551751139064301102578868843885229881941764789976981244098845124566766396157004534868916607449923843146199176776128405409916400038439433173422318182051474633986651305964422603925457264315446682948002249623785420265786143737419495910543557246975167488394026390809138671956313616811958766040070967476844220830220161745420842714425870318764146527834873933140206420698521371588277140254779380763561405872710530385149758869231454640684095069353707517649590041259247234961810451219517781546540542442207015458893634625104969216802693768721006104600354898729008940181865730998683020443966382600921290786778716978352053768502508464646949680005927597638115760882649275316089357687484218426861113623430735908336482247751696990778230881753405186602862523656771689017491097683271121928169395876826635827511531750212445496153623564157681444884673539285541925409724154792079097846597657377831794323018976155305119119001597038747208735776917159151457112468526106520524937543269357313648941846438757759178875663511692957083401843710057593978293307527711455925529829389113090403242990996261471004686662833127899124905612967879545163077151355650366150583912438913124420251601273559568406783792311190308258013392990168467135605577513534156112374941340418213651342144307658099342976025312685953903072858285067362342387915343351404632448473747922039369225139910562304992867996854514653690138310828143261834652272309743957751742317382683106388549874469840223851724918148291811063919721753917531708546619096975038467838022755800043165615759554352410264344281533560164972114901658402620392485462421657573357995485100312607161492062113917949457776904935712616770080209958634706031178707684163436978929762683286814435845803791258808720583656872239396368535259420364842537037904846702102515182288557209501647969436164900977364433318036058377952454794618521256141898456212184208012185060058645465456736555906387727337429222245818041211492634702592270099551201760482657366379497533100503149193247174951417857797219609559663127203790883641375427181494190469515097535425819221756282545202465579213160561986699659968299350358150629836571879047865972466848428883575979456046499774594534271355858851981418031137480039698346810862148706066783775528658741863325801080674035513618955542954583364914226850204915681719617993835919152363324167779860487239719610758111823736369198233285866522688416509940023202147548804280845359384242707427202366885485684406653341179366144191454344600495528778343893014760490063948097639645376601310623392889210388651755540711330007425322310221805458500603926411570247157309060401232087289946359051646707811896734075897298783766937695736414131643246437934826443892835179710912826344308731158885267118365114029737696965435383517632094040466177481712057734770393208918265855411744667105649161960891391478179206645872157952589194590449720614125748188099913052628093408292744830988288031624762405272269433756856808908474152488598875398445721087627596069384732288260778327450600998460509883964272929518000845828004233199840167370479065087043197602127168308518927642193967711546977994010420047422197747689047533278784861842176444624713683403452039872510161150471425434338522064912417218942793562881296263118590358067640408245891840689837570899573606046298080899448245050637909070315324446288439782718658457582673480730425767348502070329557145229291158579437855656778336743707886493608036573250842486189426172560404274919518929884940694748834410182121370715247028307924736441901451280540009198025880956683920357616182499695524225392547034725425660039706034673857544636900450996487814902701374572408594949649838236533381647547581973524055329359877113068144100732979653842853337243333269117561262918171446547203954432387728395128930080079181450012137491329814809026642575028239440062954506210499603969829283521070099403905113001165613982406676119960819841387312963031308031960219980270320622731200762402608761080613471926994554502311093175199323834386992653050968485279962459966116038294432586775151979103334643734297880982037743907816944384767340705493204929795977086919892075892742041652559462038557147515845116651965986911132137113613698705737715958418524272281815220876450104011834083506944656898634905769661289852613215892638992207118225300002865468034271190225282412092320212487947907850405397201550532226830780941121646245052528357592866695671021599596313704633956593340484695891970387661033249879431835250633497196842960023726935213915782199821330043028227148796310756998471457036823350485566401880029329066114214055801582418691411574302044065695137828808743907861163451540333860095943460841007581984802520477154772778240016352823292573880561423819992866744693989932666110354774039079507743362037522624333942007101374453456742336846208996578153811923611628355360102579881237473910281167109532129975717922468401051970922056377070968063426530695713504636796522752172721433807851346069554152244158867391587702738963825508103633313298885722169314036488015534886370995310620561967631413089092514458230900780621605860889270879447549122264195636260397059764457932351142749932786545646716286929726376254898452563481752004007036824760099208726910716275300525418518601529996099710015317561497741088884286143033409164596593437162241345285143569191024117444830372969450758097183721997987124500304369970423680046024057500655810459318638414652442724307439652705834779226505729908933474931019298509547547667741005895638082102429677110047759287467611279804034571981518917784479700432924489671151796280338054584346685245706027547350495756751564531758394288161621079974421339642339115903578157098462621090668437879217363553172273811013042033838266208929397515305917745634797424147337319513790480208567963781948430998429441654485674943017002709345142026353639703922946037269459172997495943198417468299949066613408665162528935886802084437936904182689058666666389328246027014226693797839531652754072386480656006824506228823407990897715642711256317852012436179312972486449886026108026124761809935483804842717622770215606196372500848251057072190907689110429643421929870708319520301970152962993382646097842304334365271318331033504015267450763494424064987737306719365651785593843952732904280953072855780746737321313972385218658185240574383556565845164740607062032946352388146691345782063498485980306497096203552985224042186480950426546307845808309713491095043579399900546150890885946606875058246094669778455778330597185636276222416828677238997892517654165212930710980478377375168864264385440687983464091216180581380976909521103339078644508597730405777690984206287017147874051293429794122741840499270959585506596128767101370428040953177694363801508936093227963587877536179613959818699859206073872652050615147460572464698541729650222284372249958689615308504477002218500582212099409922109907873166937443782414937428215160595911205864610709252218633157789946352690386887392611423870409627623546662086882262251873683596443496968534263523277167468139127964402664040344088482210658203411990638045731386746941698294694923869755143661756789746170680833430434895457524777741926748747958647468302692122628003087069599296669559772708829051797129175249456159829522814923746583502631540220793361062270489312423775938710958721360365481914573387291995724725586896111862109722876382538458093412670375649629674562023166928386311800358996103247479412921334080036158767098857197056910910264045704518813555911222224389162450967077536564574863849792926150131368233976942537458756939592910869779252106625265975201132408680165860782765534417389361574968632700217176418508285826053887912091928467628562184263418669087227747618289866714678017564183425883199895598795512542552772322576081610379793322653120290314294573121809673927342452399553898407106166222542580675825705364270498086032012050936720682445301554905797000030092299912349485579482212846319727508112736489374887308828755612362237585650107683389078527246923613640790420562694649457806052772224618577017759446927307997806306166154637451894924151707589879410398169312424219662880533806381201390857871596750455382911358405365021791960028075520214558912972076714011125909810303380995333060688804493679776906780989796990703146052295081148521141697926596075550548180729134937007605393039257662684488129660845551667134357533656846718388853910689207512536980554971899934820886172825040892933812319463545123609994753640306001438416354247409526402503970380945117938618254086140186304083742367079549591056535625797465163939631810959592300140827478470803732391842519205155877461655398739751558010334055068269965063731423878358202648876474873558174250575651090119221397411455642276905810134195376932694084299877759035453304931526495718874426409702309230660380200127795155417088529052869908135727498576434876772747425533099973812533802092422131642630202827976343663317575467068862975321754672083914251206958586143445749174261259203675523450012784873228894971461595160935655187950238482756252751595417292541080354532554728798274123375833227314406035542768769422539830727957755054821907741615623266859996738989607783840806548704480262839961372389017462903183046266683396538425424979524715313808485031784408201399301026004925413389503177920743684850232798657823909955459815924274308146760384911381743225589619215378857460903982211868739975387806749681038423943893633367255051574168135862401079454764940064159602392622333868610253341986833397550583317090985767397864476111822644304080299724203859881291779504400757566526323877856857955130704478176564813454993699633124437742565126650305164725349389498273131565799313625238661586598560465033930304452984884313348569574295002168366299456392543446765248525724342623654910671017115690727689756539617763944209927179301425451501401878807654896651107262469474648411342197185178928772339963327876600158536832936480618700924346305271790620775941232004673916311440721765003678862563583325322251066872161986846840828310555479328210333553817076434520295987642322666153308702891751671103574140251484015851503349766682141185388417484313477413741082246104608392844576372763393045566565732415939111171007039585209985279498494539955577197118804348328701400742143117436190926961629901409534491082106312062377037002351329485778164624230028646611500194971590513878181307635662041400438171887002550846211019146034551718100706244160323542282047876880414661051594766465890521323255215742508816573652608246532617923380226858906913670892692242317236281006633443064214197020683923930303254365191728145128703590878378624611641889268091394818926901421892065290708146010456994588892793372722590647325844754505552741361713129922732565586165597459438228893208716237405776497510941975169462215568048830104763973955499189856385831632862065610455317785907054249892169753765443203241498083110766284652630123537471999014069225823325337030862225146646402538704717833151084645556878908068865325358282358746893694516174726410248978479026697942778365151839508895765308144646012757752992449601310892998550768276402660079239660824012735660581561691591737810943821659086599714054534818073698476080511589047947531573014775399303564889435980833684161611281315801864969409204480186721316935268130584005607769493537802817125797913931567015303107322432716986682978560341988197647070138790207566456378003236963516792271610562812474478593440094370698155721997956161516065987129349778459291280019408305015108580475812682374449307308590719569883531345721590524288346832847691070296823115209116142805468579566698737459493706343594619134008550948925859581544117730271875901854944120307309922759344843768922260173252122140370721779837724212198279298966666202036005297875362784064074958257607721966749742187497801142362098587601731927222750986311238724752492668340370809977539031917541701024429776232180112046467923022367863893236596774376150134748547350459152099454799964054764178839580438328921136794493367778887427626887424451425320697668827062530998477606982559268576222314874973482958153780792704503921092683618296959374037016667875517184892975466587265973014966446900363042612695591763624665249930526502584765546979856708947671875683923275608595448722499237718042478542857018892239721767807649054980280958529673674159965933557043602187296853395205201449527980094491611523930618684422328773118911456667046183308601755666249881494174346595467317282607927552350710913734763738192129676739371575414798583117752078686905168018052612716679804719552424908823157905878265974747452374696205643812751574879927284443577784940848857054548033963578685997379766148651012720921144007956065932485339401237606590230311634856599188817316967213620152778418773026128533001088116126746504954860497517801941531854226709315726052828085708113381772964720231580996182483646005822503061181243197874865708542940177105607973195860291218809586458756565483996424992049667933543324172402597990812668563781094556315105278350027621605241624989970277705580164020509955508072546198012536887128180934664316085338960186978772654383946126057187596484967461260796024125215836640893582075034307041056226146046935871127964142959186893559694850302343135074630568504411231807234572127141546426732789709493295917876697196150840013973016463273729231331270634016601939135414738551906582771576268762246983580900954023529719622984594499500673702777792331249968741095559266849477222496122169218839298098915733084346950850465203645953625819570477364045748345704993896980546188683895965553698104836526096183193530080748688819612835163802662835303138669572747624011865383919352579837258050080905794162994287020399284539523870119989147768761840733823271562960809436423730235355208789699315842780189429193549880124906747301764772256616569833561277389729470933421219990679958218332773581051833552174255551920195982899738238096782163186553264090819138953194436546620519118551819601611851065303465316311765002292307741107577444324584924533298744563752012741713540722423713970520475776744480341111261343860944852312321809996907963027290103577892271903039673565809781590565082166744081442782878599901526681435675419868335220282811293064807494708687518054252310320319298208845532165455620310743665097827543483559912419671936305415728710166825012766351524692250800340600276827379073865749937511150961322009903023463813402093960706361257522046618661739594833220823309490188219023273672842285638710353425595153423862499909472828074148487098458774065114619989814532112075484947093267720578129266204731241933937260687014718904208757577120988651615416238849688502881888489686224004332875429501421709635908136384405268405311163668987151818801250301791978920422875842858205799282351184071939646483131579968780446696332128869832664963325048557137751770250413685284272033859450135389530781808535642130595490132388342728611261408801999688286882833041972191518751241830864900568896088403609691625390082249837437955789469139754105400531047924128195642578710522679127934315826874644663302365096306132162728976029267648933863398502101526520949797098008163214570932533834451270058863636428520767176944734971068898490386683277770296481757991263242041590145944430808129595945702527624936250035438203384501110863419104573365016382181241666553437882174501180562729578068190954365836500329449015257893518084744184409522540754606828792355830066461610917749353787924877651713875323934113047100169990768347954985825066303477242649017738791524305767678589968358651124995773924909061742497422518034731639233018232481168991523146442932207835198455454735882494325539071121139066406336513802701895611870742229464963034849620100758467286824274330843437015615562791190863701191477526955885161854799432442752497547937202726908071284088134859759156260260657349004157079316421051662268431926425752154683745678866244121513693562636812311057834124078877974813295639149922385718061692056492314168547601408187452458661970108808349835551725932726637456469118986084099898348762696879468197396626085949083516579274355158493918942833543462700872235901319787951127682248174451186220283664162785261143429170796400551527236778604605769247648228116043514016921965190130951345526424794628948309447790136787110022394747972487747651273518958382552035843672693422130333506062614876254580682848473390642978727765253808112383542394792728174129775953197415990759461623279428048557127433680163692703929542627141944267739190499162586356705983387967305951981427130883449937571795447457736284508592429989062727712660363164888799643903846315372736347508627632520950427190811321562592137791640605168278802683146092981759424429839278653017863620030008817485478250006400670136575090518333700844683781795994967497140056495601106257121040838551937841122870553881652365895884421564514419865301086393859881613583766761008786119608019424177324999325147921491356892222541210196775710908623159562413741718455791517037641137152877207213332802256555399229338562953018557718059263976611551405433251551222133076885789214042599632096096438333975513721763962423496770216593698280606438632902332573272355921500565891560425644838473339946691456595055904764263946879016626576479216764469279312246595418745134567321787713550200897365125113173856994685358366618476813344424862550240303559277001872066482739453725286227053902489094055878790663841736723437895372017256109528302200368686840371310009580026496721040348459673192371753847327176548203648254447379318410670259579925094959280102082505448842172961602426817823198980056972525447644692494478542014899504355209004601919023160102802765787091263520833283444033677789379360262260285989291404516525006829728634160662537409679681531738775298126951310634639549921744322920252443709551224305418760958999575230377553212927214571904815921081988330414283957707140094804677742160573041377394370246464734134340346242963938975259099149844194534680644182349944486045242829764780469094294686865405462165315702172122102437234596645763334295944504769661273381762114190561324186585462449722148906299085506494460460943880665900957237868158063810574915856883845090360248075267120798154936514827733568793650608552164951335175025567074417541106299855530342888213893262631808850206082768424307824064362861194960058307656998385545933520127808935401973971982722235028142270012245100375113317996216386866232117143976289330073903316625712249655695848137350270862677443469241167357694739899252955415998051439149626787347606903970880900193309808948087875613687722915392430495127849517907705863737771734551831056977573469806022480792063136504551968306947771690030827396756916576655523008855247519540803871140166506716118548189240918960782180467160734241225321684351348244733444457493825274347946173400726254995708578282866221744020305561564571819941197495445425593902961860663852155905045108748141209725144042122288574512402285264149067095719962989533648036440193994675183972125454454372373682023869296143100985760680516598191608564886300487088646532111012781705538497275002805744929526610622467757012020786427002153399727541003559000295213542904444520170530220284455064286485754992430782987493146955004691071168274891979545971392487414894007119014872520796631526424116584757487040584390291448513030450211946942618550981376263894939354706523613667935819155745470449372390278139257272137025163057063069062815890799876156231749226053478267640048509662026846026062006704969788613778203685013515175315895229157956731347435370603371150331238768122901762380467849195102401724537114124045765049417308383896997518360226659047398904377766996290839339936998709360711035632878722469137673016717005721247177505606878360726895519842768342105842636734963973075772468174744617937482260185698197048315352045950376802345930339412947742509498968492063626272797878494979817586548180815862315718737572774478018522847154224403828998627673816912783119005322014659731929874819658871714141770579040874068272589358936662781168506628063500797348237860383841527764900418412197898197365389478502724073742679862096375392646446786947495669586338267278136388964462301922236509140950902470430122574047196250051191929105162252152044321774385143566693153246235926330532001838049445331799743182998097731587397004940852626173690654397204856398393362622030277358393366723191101018786251817049966928382730738643921134993316894294937232259723986147293197077544018557106362265143541949901742127268990219492656735428027478581175825971211173842713556408065690899685556068413299560316004474082664391516738103758442285214701075814576148758059402265958088570732564060865505321638658951686625798477164247731539282500466142635339674382778925362440214522651538238203069961478618535144277424359241316212834830751882973119809480933397072549137822066099499792271360463564017521908040108460250242603275979842959515382490123177847428698267916716138682265050675488897312613998598533015361245888829029423152647019657140707292469242446488867709690750827265600083015716770410499432187140764860821865536334427516411013927120501529400714840697845563598564237553293026626509361368094313356660468513795787421258612343943764058916316329820037115128256881580795497350233478835693883087259031077757128411308830703055961228992215354069977071825769926423570054268748432362592013422640380065141627645351076542022076001850102198375956169173660286737449979456014892189841660796520445080951677445863922608282701779597304315401146116287587625564745496004744266160600987422324142598003309940386257471867209554148954192056791347642106720349965990721670814837985350657581783316362344413484904115394926730669662369257234392686861181546294846118108145233180065654629150573658255231542379932321544435315375672873503179827240179165454169257554389345642037654769505628129237572433761861668106627128567049640868075514516947273024182836594313603859333869927997867779812791276066514223769356270303632923336231326240530605530036122618757216584895783234346559263444258046641206657364162590716006861298415619214696990209926086640304166422889486939585608088584065516286279134905072412933467735057008875395681526499139918351319678135917485090459176253644951740651532095427347851321212812531581893903222180948493606438266266892535399196915095520403125565949694392729101413151596348018727612924280120550424474647946646856766541343664230642394846756969185051299443329518145732864363728385302536625161765789880281897888524780767972672988056950721445199852939196363607608048327085078726464978101097231928482328572393224576113713197564131213975415623988829408516720997797261064316610754266308631255778174610400608744644127287642619616737919661306625686575919995068244370060241133725889748806441019275724096393533901785453085414576353636031241194973460955672239885024410449521600059288615342961852245839099997785686792812977042043012861082644690479771190783037221787112084786712047613231909772515268569853949401381517826844834318140567737969822371356118455602183034920500419424957018846895200341607977700916161962527549194442178324731661035296560620468971915590617991001946499186135613073336111762189664442597866548588802319128447113055756395872272083287933204516376367063651357803372372337634233622020481971003043291652768444665209473303371127789105939946080808271254846459308926997146724404297397812424074761172181096905194057392509619196744571479292873608234672016589074704344019125613894052008510824000913094547171061112661150012240375941384196331524298576189689457122359616907863450607221055758687234301899138555349591151679095902653625339104402658947683262282437755871925664219307402199708763553181920439006870101075102664941334151970536459631037524308632337375154477497600236938736174972127236812791446688933766123970282338456070552790297129151574695975074992887526885974945454763715532490469092933479548137162335373149571766221330233831623352114720556675968646238875647826610609232296612144270042831651226096825568228100466805267066851394007013056274652621933112251124605062904257456111297439464753167399107484980195475935535952065917932169628878546089273084296317718651071035043105591404518836668495186651107084152274829094573411880572236257114798266782756313109154719652099753953848632222420377269408135391746260386887111876366781929364898571430353086645777401533499567049124348656618899387040908674982680329654634334661418742940856974800193354246317060192536064159015089139779406991127837075827717385258173867301873097783556048332422951187659600163695645811054699228283600470380524349696060282009940464684707978398982660791480812380065002558341153202514811401028158187361480360308553509494621396047400789783021168853979003223294180451332175778724051576742321593187734354260524964680987305105669727371397079231440514310564374010280058827635646125241938253607165134786605182990160502969195105343146468744759105444164747454765600695021101058897823959229157620972554679306353855999907287992465891546819960776208118843674225254005678331106846965890160025705700811291867838512366794709976993018405870244110435970369334283718526205860882022083446400589142736903935010308001162880116158702200060649004401722578141821172768365799731538607320978081116287225299065399521031914996167252569481269782216673591836913315826368767402668615824177820233152452747558201516359580547767908976907042124578182300893437200707445398472169639534686087893290971235437955639275486072174653856125635928720284706577276051841488524263879650948141398719481327671220596693260935128679032782033337912276558590719372809372424789257635616458369056144595979974933167520134438381025780616236829429229690426760995612978515066827935033667028424942078079830672282700009376479349688146158543522999383760291264410467423724466371453199229874432782200533225418199639017313120017713509235785962091263223626554163777260231992429618781940663934223262310434503604944434449951373078005729785586795650998086016933300045017206158078522498773092229162970187782563296536944100028809027373451058096840281401752603686134447638217137432621923309217399457516212096376759658706199673570286704560251051309727699007195644777414354020201853260420577102563573008503412710601947252651577005376641801473851686608395801567377048622780816432626283910556976023363098498215731306664291118943357662357165343286548128443266404581067497737878563977858072791125370950769175928534986558094948241098258611603501764105656947704831390485857150193903254537566837659701467994373371753178956166675533041506874631527528191886341178697069433749567374000696706496602620156908683038609174400918436712472645787387868000461493153449578819142073227963441783299276238808543706619548190319456698589150870091205574472744648862635599508969222127574792340606803370426673694436940042852490205076163396727857180065921598451793011022421961432841841656911495970374569231973094736476976836619108433668218197992582348283889551037835770275262868183820347799915369849135336138901502062980772037178915480143237107039812219643310139756381568414840557880050207670150993939077618632100785315436140621519479569306730847461860910755456625628399231081602712323089768114869376245655510676920648632146239420515555566695633557315316461584568288712872288083395261163028017370973234947526861933496893012767526838780715945876510153668978515099458842278981295089300167543576993053574970180788103835633609657022541766990068664610089624143981314191712416838149765901428063294655327303257795209294567566046293392325753136291780948845919983685723750280896741873310075851794346381928219484092139612649904591465482820854297751413499526720520247711252859182315840683655092848288248662467361588783899372929424611987824358392672276127574712600235021234730609467086927461456244011240874933336853741435813850826427388455986017939520696709323336776639964155783529086397422296527262998783715918282082225960617311976356817774430287710506802514580985663263157455127637873740085546110621923744082756837691213267494926437549262385345156391154234461547793430611097115994116120042601117136012087238526239192087395531959508505285455880985229461815625935699617257238876488894754023545019458075145099229130320850220558943003559789760445862280730516398594767619153934372815793542285444122187195922418222453981342103173777722156565370557024887000825460911864705416593985423538957484949320477686295056944157090150878915874977974773788565049808480460639223969284515413096439447034545990398435751859374525593475157781080533860167895694096585103599987332846181797225441914015443184560681654616938928959195367923598728644747257273599234319618265736810696077663256069247063783424213476268206411196865252806790780348179212523750468760811623795592279780755031561994338799162756895675044364739967723954618820032986589944384418494190084667545624463394137982956749152197565283828086275799896721001007916132620607562673708414593618482251452075218835387820723768365211930965878040331813738748061898278740547057204897909675943450675956892353800344983549444987945676965591037893608025922412930312709769863273643097202115731309278949318858372752673322131098754949043463480976387001934450161141857454570878682764056279395010790101846002432574219418707543288407504378439066419518495395439084417067964362369289161864192570335522996873297063787939581283308187938809792005791449260642305569747629189219426277064414964515961117814650521376319538141485299900373051484459071496330125940417899534470263152289458438797205742957503568797112288829692485074297753491309173503590393007876946752769665737302712096552222627519280129830434504364902527192334133388718083568825456272253274939353192753324380649056882789093106741916764978339661027342085159000793195535948826748157208972774650657305815744438206927624095423618411864849538794349471292828538096984571420641457356769638753422911202289256610202533194107741247203832485454953023917031648036732921761131845781862987582743714842836127566988925636936753915832740913465519452750619152367187173961754009598975238435592836088413923249785470568948973263544215878767755086000829077975390876875264573798543943440421944614640928463332703721027998459458370187400149748062075518736103144476190713717615340168375708241291770030101677313382494744777759518994596712302843260823916781456891482358770353702588327023864463145290563207056372168205877592531795347665305482212691300270282887072399629946713980673303826263250377207262783597837747939411559751745853844237665606649953015446178811768686672964844004051847467571989502857862244150766656876130161488159515291434211492583759746761566751649045969002360666976420985443945744189677583180394271200480656195917910704180904746257492894951757255397054888649674054239981168431082349407329027093329023221472255202761773068641424517307782096166153205470242621979544918020829282771324739096911256827395419248558725606460398878788787000468845772391135105000284587587992809500295562394527885468754446299642471339836646880425051118599615648292990886039095314096805487579417007245303106382331492825626171050449226529249808893274177269046370739798180510677310873787988364741359539142541842464865317385351038442008547500829390939085098250985999041255763938027202075020124561772021760993743903766929557456198814969638312478101639233379163394757783987217977313071234230645727153789226056621749031246374261127681826890344430004298827897623555976736983798112058588934356167217870620085852153391985934297710218431800962405996399042941772483294986459125506501520297496763512487619706099469187030656169370321655093193499578456546996317109084200492444308763674285530215005410041287063461382335060481641369564109313044039513334167367389391340161337046852139653080594862301476243805433005997406081976439579932405854699939193307989225077811751117338388852897320289390692689366440774177039911206638184151713636104777937251406318874584813997187192314891516308667899473412641232272991975917590981553672538473454692138947211372796649139523846554071750089623313671776864203277479027346370089799254683815445236569219592332978942876386920232067992584022351172971316888351055670319167343908776680618015952026002571674158624088873591981052779837744743001370217875071449102542236066291691361319264745795503342874617101297064668837383196092278209452905845052449810461457797549639350792032232794271413755691264615036526020928328626502292238624711690279450943704650593731143013545329225427942023629019559658589491627424337260523472773802609645150251900723219386368558519304504868878172135774738376388126096875951711241073330553596621031248791959047852579032681243796212956106411545455542085224550566867097885356216488962658804580637038448524744786605093566422727671862147852060709543985971129897590743934935467593093704467483086639601120941463976826166897714209338675295886195759789311192976065649397355259396477955255560988603408560776243240260757561022231989219112633156579972184900658514504833874890083988990593965000950688016633610613150442811148465146340424055852832729786845010632332182691123569406783026047654244930341911057840219263974917451868776300724771582282024324122273215613531953068816272663606308570231081863137506303959847324018117162914948317257607330471168267414623040689141378477793051156033589891226703972985064087052162589818799407720464398777038489926664118311942241141418453980340463578133527782521363935159856641339250059042943743540772978605782576611120513563974382936498638631827440185168615956524820261725152189352810869582214543408333886066593683757967470974166160972799581926248050416572242914448256603931848944901642230985112689499288789577063421011706103308145078277912034534217486668969202006823232119085725714106825124459677294523659541217491791712939848344347773274478288662629056281539422525623461426566088013494491077085828395497163223400816780190807348871295896425438810671097670514473612003656168605509459666635049139872246759789785094131413259384766800524729654564025828158373064445779731137921050543201773521517526825707345397490081002413057051818014383230740361346070465623648504744121314198246488586633682097552457494839284196282905833650036410327864855747077206385762442685211969394255494904919055265569753205014362332702096592950713873816850009000630927783464520497133160425113625215628969763241391840831257114749880396114290347287128496747634589639626871374535143141219401380469208487086569098224522380494151630458559819017185093718583937332430142617958508808362075456911006727219140128886432614168736707547727569590794533693670504447684171188036980896921158132014558308097517673641707666755321879770593278837183692842997700929621661014917101997544394240741815705598076310220582908765003308402196762833885963155742803952783446838912433502665649661483661781943342162436250926653305274348941090701120613160426309446960298715830982717764993019706883672824595477186345100625497612949250222675060688493485090853337828377631146349069790784620725685006674839599388413053477395991050046691223108217252849321992341667514283386616133489984685142146680360452748105467823502666449158660862214731460478100630000811237844322397522410110678171474773791999109434388120207351241408088511892318579733018586480579988047448474587651516099865685560093654542816209919583585323491284410155350376478571289690219342217906164844873222051807600614924586397041417260025584800466506989913572592275545390481726778485869969473457582461734087670753007133125058337843593785215432554448095966603331065362802148618050010028325355172778826969095302589726848550627172286205455167072190366775222427936299761411240458870576983976173219250283701855098916932324357479824407127143229052936548136961855878654502603821503057939934194811094168294793637323668351817445138573183884698928676652521010629061789292147978386953467655442022849834931481053551467232695307424883006345115898412586864699786876982165946084240088331961877451171591947989162863891200432189492882338957054010945061393835416463110789823302216186973732197854275104038640251517684355619635022836619392513835738704470105689342015108661762386179650431709610211636817164800764881493756170156782352251341360546061054495543471474511075996080893395625431618323801771743359210417277117273374353070062431727317243757514309399584669624626639430531546588534875121236990999670142630391887138768062668028508835484116545817283552384632467823474695165749488453632946806994719744726497481849595309897180948198215147162481769553833897945140834112628646722791210407625434424511452211488899525171002393471585348189747736180050755717834871337620356828806886145785879027054969180956448684632587752982660439626787145885682833623672466426417427578831379469486647861326736650179164634299670691225998327918201309312713165636974743432121472181768069396333735268879110338081483976890153391279184548664338534232295770202533725409072935349119891762096049773433043192578432115592304481453904191918364751055933252620460904335206659550303119262992111758898660220770787412564199595012254084702002297491543993142915141504607939627628066006861954373658004004638869584762874393379668217126960724539998158273752163091214893206855886664703784116822547489139439037721152806725138677197505373958223105314074841281534148713824299475293769088483868927044407586091098995438985931421306542961815815558308200549743756631785798575063668725460361081844428926847385982128600482251634897571474492456044382297223113841673123347042403839539979567100180194362124040601343637439251801179257435785996556537321229199787269804574720438446234937981093904241427266641780073370111731644565260006083494054993610821691164536626870181130642454049824107919916650858071919502610490355385803158454833186602362379785921870158371047745176581383639503931671413060673328207893756840115796961806542261667282564416126455144000196987340069946566785536234336614894882062650876426398794245360950342504683521597424651557274599508455176732828453490550809038996514125237941719888459034379227639304698635944841272255496110047795097222456345644035462832550887541909588219004072803301022259912449457787264024911465952702483701903002467592966849608413852220332003941608890963595559019835919358002035814657092088946623871405820408202469270941845594534673086564769849805154621153222301370044216397560604709950600884994591225921036716911698242065788534592593096107501634548730966517581891671916550013376847327184431329292522210062900850264017198532305334180843037196881301736406799184673202962992210417055381898951955446093698103722120703543580259394817505444229113660999991064860365886995312345976762611492640360195817774336140288195628443797946500995930064117248030462102886941039856886201826996526329194304732227626085335323556422233634456120078375782208958537816268276222945827668007034815868568776033686066075259154269896526626391971691164992986328321143558893538617830720792944265288182111586812735166966665188789876557313051288727227498516007219223534295728300760101757438253182886016787294868006646531172862503987503529650739359845228305954698121343958620323571396235169780273022316231541393923750194787638691141937498797228079109531993776891015548480368732977792185815612664700523286290997139607787747381466017063072716040393146403755794904747863794670277876919573961709933671100794920804699370252488432209838837634707936010400242442864643939550213685332016663431090723634978263293945869269693866314817033219245637612518816642628732845722675427312071736697708818657658836651013576888341883400963666255920731935726944300332055968075569541383836070109136377535366648329650110423042342105070685132697326115402997543932647750749712121692631311891217740767760630346468967541708539296345489872505839056924432596928630349279171655372994613372067266380062014764892673567682285911199872293235047185005541127274876145060929053495621523501619427278222528220862311453876581691427848600937024132968469276580152913694092076400889208743993072678559396818666664865111034746069091994792250029008955041045519404902607049806372322654482845714271984444855746938758974903684697542669489420105265047505922541181703804283527279195112336435042107378862386347340130343021045176600757276064546841202348754508149939287237430636688436873077859656610024692402446462270158698286563132302925735110205238559904163957534113595319982687543472027182342794461980643017599715132503995973910208145404351594522693755706409445397648178177252329940889140843109760591839823412098825557050534761805310809685253341854452216299528787312834565270069398755174258348635815773339158237350347195723073230446859631195935198407816099832027668473925682939794801325772786144325355439461477321553405951188818002608836403388621496167290376054822028627298251259430425039394056505258898369301127393052010908723675903781088033042997816885371226554612338896578276799622320424610921746760644689544926206622665704796752649609052617214553412970069747342370348438622554233647456951854432015418589401977254034347816669583507937079835095825261444585605032077819091843977958429763717085890595023691317622068020368209753196887998217530213709825662798699777383731052230617329854118820398158994871902813977441787159603504429833648967334838212510874446447526680626155736301942135973196446891436539397227880649461370323496885242732586252340914246161558339834036958825497610880087463970852895893249673039292917718727355804444102633821265219721061807670782965940454031412510081225389159510773962030574744738727373066141975914312527844662528594028951230477775519306431690367097298172151414802524003996693876636041856235209139682425930957330609315644029247004495228261946221761230249343833224578378935152945716074741413672720118934495740947399319726579790449859341620918820013480628673396032965629902911098289222411407949172072373445451348662303195082507631759626833430796843123327578132584684725903384377255940499895650711058227323209134308526341367841461258739600399690026328615541875794662520577136912837095619421746045814160167617907040032106427863235082482628521894026296070238332813735814895671184962049128966613785261524138513174520009016805885205319362629163783234670502983532857267301759654842035837327647726020194870072106834830292704572639178510233566415473292387286837783480736641668843972964138510932892452612528715079690032834683644834563053424608099701543920588457896986223366103056114954610097507180274832020599132419953416926150895826824286535132374554462472559688424564460292278356775894414191495313320844431829747268661663260507475425858691784742339293403160785576534898930834561296487483912322508329094018265780574919100342874883245557283247328138970412836576536374132385282655964054449642493423437705865111090116011223838092101125402257851426865922910537864785333510029008480912963732023460750556453837723489669134334590823535045995050988626923748224564476526237988792841035672356394996227178233923079218199829688712782052152760893473525614514011267304281438452792890112709179169493069241338646657840378711852143680952261687003704286623434885900364548597117039997502088330105505691679561224492013736042735319101138454745292717938336604440972916849615330617209179963549633732422426061844320807157514149002262994176244297215460712296591690784669509576071130349586281198497692129674678006843604017168875615179768535337969745727654748856251657949016116561093558582550949298286476266766591370755660683053400032119163413495860994569908821203021881561384589235439621428444020383272676659930332774770828985586061739057035452372476128126179436594928380795589855383070305480872026594027664401804790662356566309551880765816659412945635481847223865210870178658125860975036767280810423333202277350299577871333373067670693279988015922379613866138700189615488369813852935209729545558468533254755578030732363187380988679022554440096719132350321129026220645133369458516010384513796535952783828419921352414543922265269319653483517023472994523229151066650307679160014332613757908665148402269364964348422478805373299461595569176892552044397762856414525124312458918413521395606534523919015376370168899465216703501921109809415978274383035768093943741616205413150659446663943976062918186599510348560289398913395476744683169381106388229556387784525805748978955448490945337847169271280343138524842299360658211934960792634205152488832226077831730529779038501432327019723929444871028627382929123479870266606483928895016071538633391128387210083648644067968894283621871515860288419622688932879765455765772435243009053592431389641483613789701861191066838396460638021726982456986313224094978120249048290629038425946986815716102284631033617310848333546912247730739429532650925665486798224048396547369914986543886288989049911112605082032061670189633111224857668338908426811179276796483174446318998281328828890796113365747064713707696193422146137634687157764507524026504836207046377509728986571408821925594298115558552419355471966484880544626632359306516815480413496365498325758820935477159639508374049864632164857082382223074639825922403412867640166325662979345880049405176393282695587211286123605291720590625200609998269572709837369351710989762274974905999957214592853365212375185795787233608067486892580250245548317362494152142648633694362369300332207167573078385941948789548012039408318382600948273467629230271945226303845316527522123270232257300067371130578387345006937072745488723028511373775656976058691453770082115473800360182874245737160033688399588406442886442100329473797363760694663185777966098285316891124129630223631424898577193117948491605126306389731183000433975896263855919738876467932311710963178435686868943120736137460730453254264195317420841434265684010423507276247272530585339387103309685060393391375632981092967433021211419401079110005213382029450454570708398497734174155668357818962992371403471783016044490647475413273465811509401934447277782874802017804994007888302721079455130664339995522081500927081011306288509439952679037354811883730613167395340821016879441417316750041165084628216156089765773494657652539638476686243845530346163754481679044367069278496315402316083850109949533652858651016704274534562490842972068832335460385215093165884988678706283752075801826112247379743961796001283676730411544365158214061686467113345688484486996468107358011311683918862573143528130330616906806722392061323105913324913908751148037830198380368115846382483192978336933929812252141982481790192677728122919952796111961695515169598877492620876270215382216406846246026663374765772307135366586269298690835823244973879156157777117055699647999909817293666100677120216770671660446315383684202124717735791008761081323571647247443246454652709099634428658886880565593688161249518161046993418688432011334666128545122213325092199147948777696507501003481930825353575288649304441968683404509820334253156472036580820265529276211667050684199279629904630208040262202228442787651319866156911904188430320269779308121554902844992432990086670661185462752288661378839492672371391069617189297350800292808816567260154838232764789867991510684689660430251333781405975366800366615851660150197539301383545847244034302291914485391384791177271772354379795072017612490610198557169078426581399153441311033219422316519614471043221933360295491103132256109201719203184121815615737124005930191690477515525621856068885998001755973308300684578099355198563577812571347373843965651949791055519022334033597037738714922571874625900193387485366346536336458634265548874885128000420371259101362865988786723000995319931758420146874945426247254784497950205616964019179586166504775913306445035525752943781697663044241908259967647018896004811962734497738150806209927170363915159200853056279538217721193331122866968841420569781208219121845301053163617716108600817920995846785745101231162298796364201900192050564959945610338068359710291745945165594282720762856453857393508744551213747034518945500522779605714402975535807040401836179580526444326747447041257875132569590080283708046358982028945341768593199963312919248912685117794088660709084964124314233014369195458206054841818215514314780365751244811490796667293292840093605294018692276547722920799924204588423632113771586738404228167785071267002862814961900749879828744899529173000147162641537630987363450683202137627424999476603612611287792334055210048514567356239490450134476206772992277054177951532088759020783272626233859766016937200042641548870776600223076171263320432996921286315406072831821288671689870984033611215042897956423976699137346924647722581644692665302417428374385267549698472413238747238014813866371618682843805526616440679102504407730400030470073772211636954113209808648344910779478252581211836995089682884056611358391597109057268646933730466944376801093876617780090807380383502757775948860109846496950264518763448401544777703281597522688912142484607867176564459111926021377952057482785758642946165087467012865416041167606474193364000292756682595996533155052232845554467596003751922075908002271920577652860887923716673250769078570094462743249905992396920926087657473061348886175169580548609791264732877737273943707805307965118517270895434955204746204270648239929755725757673156923543782884509881912699542859678774132070917426136095650450937529579964853224695909113901378938826516378595449344422089121869730414153486896394036294765105441833001472168502162464967233295178551265040594201172320898763419929234154648788908952313303646692035456314945548815178241313466619990759562944656765457174714564250732662648633773345100568210276229899194355828810585601707387193168099343214282724714586394898573494707419705465913996834477584020198295365995518226050414633071906734374950684943947280548238924107405612505534210933117246166291737667248400945463673321500127335808767193432048096325516179329825736180437464629517393750899878686504609105237684322801004828665733802689788062587023266525173047260212131282877967836364595757482948463175463728842179104104808842728728714343562581590210614137485110334543187591254141052659265169997956234508987581228465179710519979835274766312708683382410546911852639102505491697392305186484925911878231578701508636127025442003745404558451834374784248935835396579991010894160134811502875829643579732010567224869116121393967559718097156987219888524306175999788390394951199678465710678279804062718851705572833632469045271546910931542014811922173670270321888939002843438291748509807017247209404725398365622039680110055486890448760730741107354163658523017706048334012122775295224033148347385428339184244211254520863298109136490295239819966480891895370709818726737194678567987566373591797789590893753419792409389404293389281696394329305753486104148364662512445701333095165399706145839962340962609826515544486898379121185781138595995492846634779453437338661223002124852969341694263187540421014942973043431338661177632782143651440377725278772954754905819198575557267259680409353420995522973980628926865414540765247210947691212832565907426557197557228770841485227410883845647155726898615253940982392401652143156020672228905109907749659053398052857839579007329523605684107945957991935053741056577824589677420852120647041260593643430090537294707618781963026430082228809393345476179524709237509642091977026668746945331505212982497581204586052791418056357611380517914914170201586779141066426584812291096571938586354499303515553368280578422079760520783864593081152348726381338792825004017222434209462427855469353188610851568927992690415283201485919864764284786330237859824192049393663799247546389065235614027962709108362639209480763495452373966558009127615170692103142970377054377117584878338239265927577853383937818710250467797068485341367817350999419354037308228974723068434886511002086611655003626191390764099212676566895506860086507922912761393036350066902282002781242151415986978403548843529438351513147308974369308472832272178235106239311264536543960713695119156962919363367638249289394355493649969472568348558692223272518678524826891127727361226359950927226773256977072097374736630931083169952635897821838362856323058549707341297210113651816959476352392525374199242369218523775138141361965215116972820796340444118286089817944428200309821106847465896545158358697829626459833853641729861978278285703371432701101403037672092347223563797830006551701178119926803968796516700441381462603734860683800422740105987861427004681271538730845458434985471732831240047454149480018002611646103767232645138389617382782499689913830438045622922631129725446315813451617155106365767188121770885734137489230716019400150147674039417456764925990689416366054842682543534236859917420596404140181951812065946512244802124397600488463945041488499763511678727877449654278342621678354688103539530974337605381566700794689124906601122891536352722621879276697644250842162056722985317540351352602319216815373571040655527374694561011591713501033458140521461197072784755715040931324271523297716530844137240292393072880941415956038764946961055771842215014547945082590942438439182684817986094921637114102240505532423974583975656974642271212578789001142210172484708862036017806070327455903227295010689163235065041026176588754835938160146558026900794864029151985351289439342171102715969445627160045532667626892968691467892032501056107885592271368219463521701454772147728891544944573818915204806701774984354073118810203784151435855183515563087722285226205424779442423589597711806573856728647613165610386542709028538248323838635508342647045136794053487006739054708489930588646242124161553549639257710361961924753078652699251532503812229998567340309780937035329377152936646596745205292038468871138932564648396806121984430931525937002817519635106589847818777630701053630062181128783144877713066891970196263663771629937203748776132490934706413444144435715673057480110631272254684108245919509141212268854398449786506912927038087213654721925269493423668234368573924606426334684097108399524783001026361920516944900741558224905147402918498093133823274984720968729721770242647848696106889399430697490248083516921067022222456130827638349650646602265086623703951903801616264141952911199259642622988120264073470619834103834884160658162948755336215285312135835041485298232693585678184509246089285026935471044894808499889167735937217448151459935130339112808241096149496244432295650344570486868081604193774980601013153544803290977169688105211838688537841478118292719634576454543095860603151493603267543366628665859605946814827625877360034081305619148014283492749758796827618710128445105995167016905211733390591861220939173472788681072421964602957888523283741020006503796582020863801533879247527386118373461311834160430948846179909744836647954261292147473642336701520187365627232972234135619589977094740958544641108528823383081490895879528515706514966589698399578210181060857133121506262572236504926817739216627848395465406899278367084096259553035982770622908167672949211050549652198249731979480876482821661588135692792239350938776052259926622633994127787449276064606331135025758002801508679130232336253108250313961238581389383838745406726852050230623499041674212528757595669024554033095700765172882227667258657215170074446401218994749476584436995303845829831966891609771273277467822882686152476265247730551332598970845878759797901880518076019559679832430002084372522841001045600924566254814751144020635871557715168473923341694845557207647922806760677273778197340858082326143619590603012625179434047454537606345705035783828011553480982359849335368202526044716594372188983432467269213641979664714137336035695384155216001450639717965890914008601041285946053465228457419983611851583520859413422679860649624634986037842321255588581517353809603978957545450950293317890847648016446143204149519706439224870667137947233940250460998720825780786592355153874148781729563333030279992456611548289666685253839143143721977177845084180884891694586024806796508756738446747450915938241994569846406668402023408124677456901550461180665368061520784542912580868520434701352614294163691405643207525630992641970397105121058611611218244514992033891577197359444855338298063491073015533556344243663872828145422640910111171310339416649703000485301168280164101569766250868756210431904138254031515619171647668891294866475624973527356116662079507048365376538397371168470785335297689046988970461700815261402223354429584163253413395868005869167765489507367827810158717951141211212714323969493085722525481986669491331824408552251826474642519742737823732292176471864944004845193254598387049757304770273665759874678565524979937447306052050905514486811202845288339553094772365974941026812216306588664995120328989067262583123355729301967611122219784042201840816490404448218784782970438974432070645508906846561285041343753154703370200849063974174330279964800028717420623932993227195263563975512022146269971672375790276517833924223420581957586117618882037489136325445788303364938367749447073091167049246671805649614282406196762592369979849888002393884886770843479027648285370333115690548669570709393151410971901489078181361350088314599290914436955809523278241418212170926190177185327408313220955320812109752346122811919690234786353963328294052373954564812729190225034914769375605806460815517564373641388083454825426356072177825541940281041375399562950386313949875647080559869748134214994606155956118571338851958850696251951479426847311840670226310356744898373847358271038784171725855365702699768686381048583468312942145763201871347379051457936977591627073004834315711567925364438990083639329733040818075953915731197232303689208202324354080202806315008818621922595708942622028344613550579525311101452845339240963495996999880856404942381387005404056257946401907831229930896263317538104576094482660701647177608869684153626167165076230459342685445229435698529497629601157936410732163670628641415671966529996163550821765186663985639855371659636932971437128133330063126971138706662229664578271874958421413000607674845067654956892113203051712644567635723231235590365950129585849702299323471108928831284417877295999985181929415505620950842487578784503742529042746151461262153867016012963413267705370578812780830059480960781072362967653043529246271485144180864434620534615756343826191600300994501805322099832708115033401207860096488277433135146892663335714531835290382663141869459867332758894736327244954182966491650407565293247467188929414797347970380776041839937890930347233684119016262759362151526916164204590002999913149240867920570941738412880269562689753577272793137827948125319918482697023626447615673905955485635163410418613183225010404262365260812209884514249896855100056389873943282830081100060532046966399606127175747561917724661571362197239500663829028306719532742281194208365192618414994971614914833302983694882636609087931200990714766546734242217742156328559633193122859293892002190348525343737932349690657358764693228878279907103817627100558307564082577321065743707064484877523148692660576397254801947772119474219072716870873537250626111445180061513791465492020734779736189196923196040600691793879761740094202679092394851383981149334067939023887009893432705865704585489052961230248007094661477721930874194483075057692962371244369661966775168329290672387458405198750427472266465767101878600869605320777819302160899881427914689226286157158739413424659177911740653747448928441403893072591999368351848567952461840984014383141098826647161680792120886888944524987773663168405869601547838448006950206223741439474311922593842526223945792359397182041057464063231802708757322578225566495659138106522885235617753768082518352428259259014767905686983402837493753612548753883462218827538773780789429245738821200843739113202001028440452084244532266040927540967957660313161005979756338798778296683409161209288452702827617334335171457559893065260082172999226431371486443561321558790822203278364176259451596480223905923474838272901131484032319170236480254509826153622667498742240463099906175143751887094239045203401946715340716027341654047705459093836715898485286006115294882796217263588293064583516558368038974345972612622625169526396365803920816169737727576605802638009530484544435560429420457937074831310405243781126541607560881390767387753945523025808772852501059413573313295653545654292975311888389787380242574568359097638142289603421327267327177644232942437584181358319041871430016235050285450973052139239072005933600181195660010905670742349873380274112906451214331952799094386605552024829333018920273693127130852145627279513203021069200816875077885707119479641167973819785438893017390206789065930802775990483209380163462912052683013099929891712204251028445266555221539386491973862305152474449800897515945467716822680687674804812856302820993345461071079645710970740954495202725039669749552311192871844054322492124978391243883456822754687132347598765759717460048213026737797620275261184672441590497215073989149971445515596493539963647925126377391602421093283113548913690288036994435364697518892801968265359209532230943813081571096836612831180340196781730700386665121067942420097996387329941967267822532208849705499550183631418137886788944589005128042817557213523234527601037164445561001739961885747453262823936331672055192330863804900525012783529578774117816667202735714715615053320190432892399584905375263989000793992521036464210852117268266465357646225571640063871799459157042926386711422927314784071103866071077019831549797337736292380280510911446551642402016192435994198964163412294218382934811117573307693395979524707021850274445308023567177352308100303509591505667136670841425565069935964682652761251665446173655010683332625635001474420526322972493160364285021310091066834544436714921082898592077860517702006751043253977636187746561179609053616706958279926642825180867913304683702936863928498407133158249489003084423880831514655406583612767657763152543990018563979149837085405326994778789064467635804292541515950795848923650033701963866638930652144082443372046204140435928974277958437819092027742757710117702906574195425460392214057915946262858997093576305938557920723125747105304872904951253504848086864711519963222203070197229511920287946582136586015296087668182896774837921672832808128988037839513574491827732383484036517553663571340328174036630308774890038694685567116222298604590296698735331145144075926711937801849258792117882426636876711142280696326670703568477809526802774967514341058234238213686212845801322278084110802826204896070178779114701302727507105636262972717621666453795476664343417921735623924089968961803008098326885799610061366738979763010930128775007913016195002277957772213408699582721457429484907206911129613831277493681702290141852126776027050854838678601757079851671613771238039182029060689360219494743700284973146492353408228769855193245205764606672194626190573502608286641422220151570473986816860115228103449489567212537738333468201022875473856309853104893673113168129381312406327471882413577936732421471318447419519342825415595376904680457864063380898823337062225743961453343212725790463267214627492330328389317475610096950249452323541344562017587490512496899510801181638306331362447635327497612779680729780937939508234854865251447786778300660843296303456415263560329700169083473904181206317265502567133018515577539737767439665615451029516221549322596355742588162321577906898400866144268918729095225143907457540980765805850976416160662881211709465016328292449105373567530388084197730363734679609597957277029840871067391440998489060592107098809631492454226633939684709242113150123226827874018085075072926224164132749326326404760368480684864143324612172588311574905039580636128399555898811457709908320700768085916686941433079148608834361424996640909383267818005396553521762859918474069315321855122785460418036885816152185458434296583370308394019392183125397247647882030756960236489762065665511529832091611167604903192884838618628689000247506845201657842842916014027029963092036030556359249240947874239554910393734697466228064076471484564552856683139112633987836294108247836222163783450055331061001377378231777394192212420726542056945729258003788196928392301226433876722859654466275766949893144657679704428402076468620236505626932592106968626198587797679874107645126677104155858241972039224803245527047815447972938915395442815343246772985426958469719927419586491500601432441750410542032740985465480994268647955326535441051057977193751511030661941954845344529474380299988342988573062035858430798649830428831376023058171829627292601950642822867139605208739396948475974424699683102118827430483811052628420668228783690694597236165877327185685023935146574665232867097343363317941565499193535992303874256149148539664925251095732983595536225123519079475982972456640018479209925888174524246953364060814302801471017407535957978189431613950523894518348407195059472242846871791542039302696954017376752488445892693079877630016169527205803545547403133135875817443748593154244386965309105532133698859748547525824519440074385313819494840953597668834739810401187375374070554410331919211914247448376200480124708099327455942795645940644173997756451839438646820651241598560997591144169504680003328473287214480141458991952392000124968935101563331031697963373713210956229060698327016355763899874708516270962258313664467436097319998149526130996080391035495488110414947798260953062417834028751609774236693682317589012181172478359484176196634905039933606799911043225807031688382122841161207622965563843732114976923456222102142843506526356555431276643219267953134312936886665639691869933908729444965233053496966690378178484482824652649072781066577438941695934037977562455092641039921154661841199034877436582825111483700945796450095645086339508138680400516082880099110594126970748071534817943072158384010062266543582348299384827327817140108658500360991477071941801874282909181046423917916199675652607944190135209580849841281213577657021404979323045672455464248554602535593933939040668367307584252801539351012652432377712919904584071546890331850168514760519739840967369057515384863705304173198074055589662337216436323305652696503106795598928762856867799960081619749607394671197322899247344498516293906155190434295922499825907105521718251817285034620898850470211967808466735845248193110159394139077984221519263103252277026695530219037488974515192194406639714433906886412122622960137425636699613604994178111663528232953717716794946906546287837695006576921310501752495187148729127603772375068150542869970227744003762685622135314639083857246904901737248653982403353814269366350505171439801555302579933756024331202577600534608381198765056401987929792380938522281049296307356556274534948543563349687050138965071705930578624311755021431857288144073801683476157388824886811203146740545565313035658254527660759820423973536897478251474971263796057512683900544632023861507931949606766601575493809980805437608803594874405663898454533045979971516190781165128398734530711622969037603973655282239881870228741570882244276113919477483826758730200461087234675557899670518439817024425338627141698631534885572456077247654223851120407718355519872469006247717641789465332128677990580257235557037588246256008961596398880609476383661481683900535699211587503545511116108116156356172863591879926346466572705402097798266731896825799364202884904627921106607021897549659199063476524247275438024790951196577961243792758721762445323652148302205283990473527381681208237980119914951782951318254485464756808030822152845434919733273692982888568343183825728704970628882345658585017255059459211560336468584758171208203877953397030390225253957044159938038593128893418201788660926791499214733325005321610641092792516275049183326568957261139195631890584273543422922167790035350521954677469593062697247328528182304163306240578578705295294487656485379623556124128031877363343332062754482410076962017975514513439275863242890347931481649484289543722503121301034085922905634958275031684660844269247103079486704224216741692462860982478778980904161302538127699549472725045570399220756467480955711006304787684516222146904811211326040194332291501298822065773765325240988255973622652020318102686588934792373865942471686527046336022888189074502431424614562267388648076966725518116709030023263727773761589339591639186450023717075062847148010645101473246311886488662136662428232366833351558427811813370047688395616938838628766162975676699213955787537713282487781368237584825658206759529820851465570957038135559301477026458464939961971107404252749600789804391460995381628491939536284044042182448898732470809206941106583203390722524562335876396200392848763134160794325689858854797219473111549402197126550740554431850407034137689701146070102806297047470574951915203377260706697512143662651171402522839451306748476985504558124004489674318511338166496186967181632594203845969095120963808444335904504892942575677003016411108145366387179907748054660664593024277245173540706989748726826979389951450728381349601069509981542417148737917308371291756927224459874563023520746932900102924925799291851459918474730043468510237392991933580213377223337819121972276755196676525762758175004915913203142097047618526032629130618221682437323786250175303740322711065739389069415402302985748810192000860478024905029070149117790816708149991951975038546957088528848977436894639000360239292649615691710342246428104796494300370568405163976615424301223924233852199747737214713413320557465541016744358554745103179337207543160430189581236961678510548798996454228386675751939839853745204427617007934534666546923325417758407591678663542748031378770014144033959155768167362708160393781033515061661900759445144651391173317019559115566230026103385649162768367892281262841211144820053628630686437449869246796176482816872178060093096728504313916566463678188892833970866175906074403394893849620780191747661691120605507509217953556184226733902373953946094921673478882853417534341899170601526809028824012139621428006114137109077514244215859661016510009564880800377876335811531998555090501446139715775130981770694475860915975460258705096103062564039011022435609865509723471695520572345822475617692775722265909108879117099762121359216670189183258553542505798254546698429356674137680083832921651188507497068593919099909532694845989803299043144286412422585759775677722576864535622323587778780088947185409088037992809508903793291765339770720616818266051357082421450529709073220884233604136987543153289610319223343533312221139036218982448223037080000521147288334414556436670109423032098706801814541688288228649658795230152910217586100836605272025970732591892984627118629486983622659119862029501124541882708448195746422454618663974702860704231656721817563322814724661559174092292656626504556028049239441013633065555064389780412600392316050087643592308734849572593958639232821455879115801304733310289726597178541140390472080185642270697287953198505662420600521941827810570115221336891680598444016086761266880086733912519746284795284455522642387657220140235601986359688883140166664031133809510475931130507369003719371852002037956187549206256828027222863605144640128233843517154395720427581543790769665946952999648435874952565244437250259432253951937665246546496054995192913669076579960490393798651042301338479693000672116503216875147402187489904204321243797588328874538571675117090153689560359883575005440661408459719225926869121950233968512732818263240230842534159561342526046490296156959524016849464680939380461203553475492886821710840943533892961580029308053575954049744029522793225407165086696635784967379932198894397294121934030228506060988477817590796679484665781352472530421741772636755997334920341642213276000351518105162755210352437283188721915739288579350599577568999060335763883025163898102126143836960104188698232977592807080474038254622555471576820015496349991382072738667060620954910971511793413033493104064930668363230122461523345080055126582187253602278235043545391420694946418657587019119990977069413473032272904415840738318577338491195713902061017395386347058441303662091450995439981425790818586832304448335902783285970400206104607315570525931294842888425854746038323850292195636727561531270252253592685316789751043348025958684238418548463558811980566608739483027559532670398110379328937997109612103888592415496603233350130097171685585087331096285654850078878715009639147982209424777517096266884492659340698569890387266194199822304277628681772378849323344233741353512412533761640646885273356765444569855176954730322465712126808547468275102726683208161036192027977420134622733919454904583074863663645552837014018790794025435036807417913176321483484058543049515235994279799802518702288572295982493638227381520900135790064058216799463480323511673267121043534763772469816157864217705796332334970540637147081932418141020658341654034343103750596655629140092635774258167844527042308158341163002045361055723829087931681129753681594065018451516789934690752517538586183329780497117714337858304309700516526866146787416461742210899335634076295982095243825367168138866236040705309630007694984764051979309927963994566517755154548161959766252252431148790187353345314829187396697723046575453096531761888076303817989828780523954705428637607059548602244536309254541575807699289534506877018211313794054706640434638788390175238091023225201834804291800370528128134525817724768015785540517243932604765134146123434438624482788510198401630840734300621436594087904377306161053387146259756765080543708675943965280900736332083139804202038551934896959829413992448535401062149686637647985181562790588130681842503517042071343335289656032150892815230126909984380640144743526967490732292193108726159579836950810102712581558517410562509728105107669394041644488491847568945891059417390286200241618876373492650465113218480293148980104799368436263627485536148687757795345425035425051710650485843576199331101037282113911688934209507664833495561744429087085010437072162114566140974751292650907863093716723705120992631617418420802807790733892234812969645442593014167882265608088337666265866761886850918195496627218559616552734419459745646492299483710755321157413327342902180520466873641003469865135830623076878654720807522671946159525541744831990554866484649937059539886166002372198972971695264889480518792015064697552041540824412501591662094544784937632572205124890203384840051103461957756447027133661392354460877318308143851555337975211826606558495521319689847286260582731451121348300701367954885822802700253010868518898188723710816265857473611296037429671287481868633677572929203167180416994569861962010486630059039628955880052166444952577515967743684511370632043136927302591087136354307753925987129050380575001217692615991906302610119377182779177953304104889972424656016451762233456499676249565040120680759827034052279794378754196239457816071850502487682064958142023805131866143253944205151818108671708170599637058025702527834784384577639082478510253141375368527816235094911668290278735334155608612832438624484861255253661336161769192384299234710327353498012458258216968452191888280952020261874929032891066516926231577653495198048245683266615416177273795870544232136655031416872048093422094489631624923743322769593786895741637157520133167033509192048615678471122960107056815426987204719983073242701358604331658221869002045174242519702045560314774194257092206218061903586589262722702582035686339051395764211145416954214860577345346864026755538729632754124205871304063627855074762551720896578305359017710785977750453236725727235549548013607233842508332034890127514965370660913254981340378659975433869804211803203096317473592463659903264729192189662853093527297052936454336984138116766394556819905887460998266360510686914406955907464493672797085490614499480256096663244344441266855501238856469056428011864881935236195169734880671732148360270498039585529987316816594178808231491271013466814582007495988026904613374946202651218644968787452133286061571299464499645923441108557051747610102556005720469615500378729696600375269461253376526167176510820223436366592491067313011102552851461530773953992441995767416380705402362337815855155199232071202424126952977666778286488115643458501045882411966838742835196119902068108546522423735887350779344691850535098677388227586730644547546078690887591580661047248156345749690104488362674732754986986059613821093713166221932655265955150383403734065950919581476487528413396895251707224300795253230680909051873052248022694543394272256342409306440060277007075217392854495567262352761181928238889516203452065373760972638170392116957390811029669422467625666229141403142730765848953656045722296059001400613542956342925777425524934617498447641771434324765898843100041468668858487445242084309278875829880342546448171081714823566282118562086045098586815694920967616500010470889047396322334718101785952734042057193619940927518869782298525435037661791323373504470023373420505813888101267250347531787282157383098025811641263718740746963819146025654329483287100137052192385657292722106059945127751349774697427987062190127928911087476610323075974274595213531711094895241767984637557265643747252221819166037855755246659683935165747050484539736490150788820409019024830397625968677544602458174867196406463716155494795349237550902533153166197546366820845554143689982230065496635155640205192139791083736961405519905249775587053581442002913779504215804798373607879814372843207529435086582437619595188899870126332395629942170639277213341836328381713046961426341342055053734229775535387659119231222165838355224207289013409530642439363220745748086745930948770434087870838950947227621481374198421997686892786869434217465010261613306807367017543745742329294909515372576773958952446751406658691074817941037828365811514966324775253838895364389683007678246132211910642379582024404253114528266191461091342557877333088533918309126477074695425325700253596936729548748747613833028362213109149157695194309237893654018107764269816707100198178450988976597734783189345048892114691552642660138925817970839471167850469532923525386101684963281118977285648300338275396782592592912930572479205059522254609401913245817818650381492094818946162917295027490210520484024232771406738691975596323012810712146650097419612828448175743714149205266574349331941925998577950493253563597587448018410952196586231609715617798535283505125703011387564452008141020332286990500921258595478353904197397638843307035256132497963543918789801706494978105221105396938308549939501225235473466696924469458822607461693403416781970822941586029231535110384801870783045404861884556419163159804373973407286422445084139262944384119216216694348615142304765645752070437401229826677566016032904366277635442415284160992559280528051961924606243971842016346614217121500227313898667602299686077169414869225349995362552196591659662943025574919487824664050365627695756382339619458411648574736302197459867101956244800051740273391823190741337879483213447232455834343581326601061966100925631402968202093604018708963010794024536647222043430222381611908201313809926299294070667226318022151049382567917824098219165704312887110439325644218082255959690118921550204951988099777243233005441645875698405231400925111436431952460222693113372041870595303390148770101943634626706681781547936440032696292435878000093836509684455428478384619889628297573734962060502376357917544299478417748045832099893370035779122329174730249617965778135022841871434349881296028717816008940594711299751494158398191424677183761151640078926159976881186828894394769305984712685133415828162295305042636021388077551445013808056048818531189651891724703276406262580084387614705131372719583313910430957700628563715706624786988662419870910865693304000592946060672980881370133809181246187634496857126665388615342350074036730009732910474454240121126203569439964012607190508862137987219290215447743545512610922038989346918801179100874499002115320962681255071907877333670353092446694769519441750628889878791592247887943094388935163923614425879654349672488573888325714756504893818149358789137464772234548569878578734621562540725833563629764946310776921600263348569761411887324790561120812846719984372863129847999258152444196903954329542207585821769209925269367109779675032065893560271120439996951971977517469376675403167251283290155708540750229132635978175679432531029663891773945163830833198956527075196952017738887881858450629239159266967586121430660783555190129824661797701083466396333274060046254615775265147919228864552682243471869537779774885103147822579318324784670947272468203967820137804913394571967906957952086152428642289479576599424728120146966207498317163388502168869457014947787012084010329765876241737622231959637705984423419364658998564749847554926230941888434863748727160170396446413165667661567548019569740069241348483132786982702949726719270715349073136315840754210538439328623901198785023284724672144513494783779220655776525923680231919372256945897691300651205258023418984265991476431110896660036768673395092991695502799559350923889556863197098836813136043360834367511913553461916688639288320630336766681301328103965255832205573093842413898740181140260004963213068438901101596655790081188296802144614403598446841597666906077144584809616538974586223070783025000809568055191000275751856986003303253481940582913983398666984363254903364059315995005188224977585661248834421924988643488357370067343502547827981056830914131964570061851201170744196200464241847121545991696929212652550951393158775481166345842135202055069617649958158775953417881312488330970262053463076810421184610530333506840899307522718236323654557455751564450829880356958169525909462385091803830736336415981337727283895307738898438132476033324063939702647163075998196274440646761991584643830261762857026436724177720247802929263417760652505488044281174266725007653069222827315396681691335531229001483649178951910795210761297528294054374217067931151426920658021162430003281930301378386626427651580219463914053806150534189867721937544700485546045936750500248094219612134790472363227865397543410430168843451765136632644566343208981515772680669033667792623737561911237995018456367175710957183817253877254048637603662159883303766104137203635933518190692667281241139497119245876247418746285915558688211408109488655472188772458064997804435147034279744742498149430874582468190395615218687262740342107577414674958639232994556278704862064594261200693591236521005341147949836101959401796091391923812466171540681983487667387273955883925678008092529087215981874450197952092278091333523459879145055198823845416419253782023665610491823511366870893163049561829734612997930559152487396802971266396985898734586344386385730066633711400205848074475891847910628469013468677070967302366780783043405904832796998081948688049671082006626751454624376374496352146841920754394669484320884674149311861447658840745714753970302353492625368547484963659072093213464216865896417825579326519019123132365545763174348934572889388859733260908215957072608791430063979537267120374489315578529371046894511054746879014004528633867601622287901829448020383380000674847835540358484136416607632526867960674431246481318243645732257623387336382411066175364723884019494581892760128272776811105049868064767908531566258904808783732060334229038393076582255331688081157304431683928880011456624991736201452822536032098535463548386310227290006558651881199430593668503975844882390662958645956674113389689994557159172862512287067585550507923659629404925924448411252817329818437439196783182105995030813426413313958580302255666749567007564433990547814180497735066203355115816655979885882792648537891875715279847609796011841976885703693721819300150657224844411971812617082531285095862207435312365366203936859133261920684227664494744769018714877436265534988987882039961834640424519301088488014941283022164566754443640629373434225244815297748415640728976462878480674767721630055365096557770894559204706746881914052742544442826466573312773851933757002805072422553724093173866956270988232222651631563859347050742541882181077212928013193466377965012853927598542645867823406579507774905279494051167266275950629325412260211528585325468024187773327686040655306976114077918520810353598804674864048444634327373127362682239678268585188552891371443257035211493087174607359382888515105174118747323178927723678504888664902897020442935907885093908676345511946312490141620330189545139752364419243371768775905497381884856969477234097805207554243526455597860763875106506639795756061037812763834193938535324610568207963719801979954194156596314666870817963606483834601975884205401958872406881269693573105302067666880482174976935147870796251540320380560616858599746736311014256321679267652967584422654582355523665044011116728156163449231075207894973505192659513689111265493019951425548493615364963691607418791042318880021895118804785844692205852591200605337256634655891977896758717737086035443951307050478480072650803135884070183585325454768458796726493834738921503707103924531653142139379898486361153271854869358283229725420621746286237242469795095284925637110067430777157865402328038433648059622394008035142400081519835097622232924494395564729745198533739840461043392451094809277937300525567868039363699694208189284252631687445905460394891978157565125298877295051470390861204521841434337209312876915357630718875376493053957237874237767621241154550266178861667839811542690509894305159909974562465072739129373385612434366434128601623430965859576402565541591652137191260029381174633708978184981781953258993405200836040385953774342429631138511778604364088363892815803989302974738440724979959805547456945899978814892111745454048021145320859245720180536863639398045745065180479411282582025303657985330560036532619841502629248599343888782243500257525559964123779976561933446004383198346915537431193939344526996291174808372360303572806023202166024935668048887478493542527810386631394136268418720936435066227742233634270506803397235846220175695921997280423261499144792459474135689310020018719044351843232221571363054587026973049848488359661685335155949982689080239418338940436091076704676498902608576427262250011759684109900780707981513894811423486291147500267111330039391070086488690884274690818884070468673416921727766680906112681370807661541677779179182156761605778943216787859002105402579964260564785391947400524782405808459329359121917941730538375173364872979968515381684396006891408086301080801428075321240413811332985492547522096061471720148937588792286496754496915028009419927689023789307120346800295635279175367268672483137738834173574589930145351457052528261022094930112926788562512734501727519536898831972890946719953091914476681299256039085866408841198487129998739776609267711251726446649109270123777220159523379959688812927003412016307748663041614426752783314114673420109981632112457362142876523416717312433473836975693891722735399538243616256387745252846233060334713102651734945423426506257665569859858257500807003167581780036072704537485119851640305582465517110271900106553782749617498751349057696388945278803260781282751674514124492019042265761969670683911744922289789977555144069723776985974359546837726558584810748456786828871655357816509064890304991423570289856550608177446354491136407709713290440322733745947386153776925176919354373727127728653894828137760282901621668818903889729247857072477390152383509917067234913828764206416577636590324501105821428575373069634950206682671078483309870381528207886641920572617993769852885916893203465510394914549356120688035445103329170383699818684939782235589122100365672494637303409114771190034479416867820300957689367743377064924193168492983893899892071500342223903735877790211708133217425176468520330886218766550614576485480766505165501797673796208760917371642702489753574415158023362905589794987393746502316507592513676735796054106062182167736299594923002179812992147199833192871320655237768651546063843380259137826970074509060867012259706166924137994859717483967538813104888406454358127591792977342534767598968112538514923785333811321260531107342392986190057744012434874083438238333628527738295144894964266713850116919031117342153451905806218302735101770673374303816576243369522295327284684704645325985807208483177353625777529603948143920024081031395870320303392314575957095343443695348672915309403705305513028561072715482683757506886624135441610917330818403241899903996099401195267705549976372716807045849170156413303093861499253195278862160482964836288573757533317922498067549886047185613555993539115373203120346557329650129641835878695412490740958683901512652097181635120644593272486657066370957606746313416301827791963033850891459290578271020534542402364479399341625545189456356964480748858224220832641072083917420875294083702493656448555778478310113922196676816128136349262586776260447134998802379670854929061420905347979997703251503477479815463610210111434499130568263054258257547616085651469202421737308330790016588928082545714998041921246539039802120589913225974763718033152203794153922649543397467992391887517115832018972203450328104924646128679887758394894245991400344882407511422697282895037591686459333733418191945626456287638313312298889097996589978724542623927915079636827932687923999912216899079698274232308907520632044687733109914869425978134467200578665025459421689658208598636608411386953527820618944762483307959060247154674397328644132747835706899976160223028503930047911472946721322635908682530728663193514242585357607717067385768592405612872671739143317019269126718090397428049677877050235321834694503932062432950723971052676453284244356711779744692543012076539598723131817098893341923940901217924229934625925182192276223464642331259928151317437859103904493377782575068882034188262383119626095350537152242273321434780228920021623503608123459443362160814477747533893950404182240146528402440305517675257745288541060007395876573411153596731153858042721996605306960538921989212702904542493211106711265530435027437923365702886703361811857158243302919611489976439534793021213192623880142405023574815041098505263666497552642813708107690582988180099597689316884901486032143972527706159224699446849200867211621387826861467293885098087060798400164507337869344004862889166308087817456808017733481125424626499838427588310416202787100493707836798627016966172917502747939845187397251960529241587845609137378266214540019614506286855819667634905301082731140693203526562268425945993167979247784898523768886480569315999068933264191170201298649844845617554723474133870042243525562334392839049653568599270196194042876319920438646501621387431318706140919448243731601567411496781812792736458694191375004553695346639475595067099705847886867859104565878402616874426505693742543235560966042292938865654852362406184268937633841981718323495930387065380640427954530096910216378017808980167348893386525549621065200084231185516282606083420327304119042744925363960750219377100922344464346307326804089770219145669305562441977509723713645631663365748582262849055201185675663717381449936870039398092968339834014211173073020666455199338400307443490602241821371065944033271560940950121179575975558467798214115854470499187144635907397871706839328809171368845351916421976521965589619139017085297620651883846655839050732545894810923926617481440998448472323465852433595465681752834640750819226448551767158262868376651049551012140945156451168932408221806175942228539932039747912963201791373703128464641686388036218595125269975896617569464183870478152877255947754792940277849274499517354614160915496015020816913199799531200875094450872113960385303833948575318690980383557463390511598834483345100626144799845531181195973047314042680265671700196279041131605376128134575756037172328942164367783018103282529598346227014109856924859986560558811096143598652712393295993790636693960114433773080913266660095554435973044338921289488084430766916473200733664956919513322831766312914229226090237154514027276385411640602315427174443766347870803421884942824525697688025706196783965456271902027758581323731510011131327154646633067744295561052550435154613679236641425260720822584173259062905590702472374770300503154912153831495299958886586872371736533748803178546466827088031128415074563147282461023340658313185513407569995814288865895520886320966365704167592872542624036778964588120698832965051727258829273588286023280353651957103352584794484012888808887900562833313985456905705538927359549912703458000831177025062986091529602701754740470619391390906969083374356872647802972960227518713372609371988649179223375573044614090100588704963792660640181462979746155642631515029935069804393682912004634573275883440993355548028811988764662943025619617885077677894769254938749196856537458795659286806852895286402310673020949531138607212904489353576255888200902797913497252441414072562563272766608644141069500666797790990195158961421689386191781940004218444238203188350239318111523773464647967995827230512547545507803619193532489242353878820292707064434108330649159425549366258105729512942531089638588175714355398656175557060845894555848221275907196900324185206022477834205745860789296123672801416397158296004414207938413701849546300357437047863000949666213448967993196151223145891180335600227048101343696002012306275577779703718486686713478175685979762153140024237707973801694437700173302000318178354940947193627803868669448962075418798072598030076752667340084838562948416502019971855025444378232285109618595931345350306553788995026937411923656118978770470286376334946408321146204414421323447968841491827270962074933044538752743408441331234565032497913548740711960487362407061488538049560116560166135823438800415710639322568213674274718009492784359223838871530797143065808900271174806564579058689614253706841848843677977094861652311405215511043418475278827262234024809495391127256813696074880132721361072840734449222858516909573045737050116935327676329701634212224740926902075909362039490356529929675267188199689942963890454253800455971246231596919108574681931445016282884152137946015192803337494958578784879725644626161082534010925661444151531585891581162189306457691274654847912429453584787861330549617239850467595869089483095290875904950299789900482254719591351704445160736271773869716411924912765410307637445360847339159959686260062019317245556932233578792771989633352769618468517690400546194387495257355792461566287269506154651440598792625715114365699961596038419586857264551688957664221467139568694361491907264534061568471818284929368965498488958463724996991483269603608797449382503381080480225492839681039030130838087651173456109991739363647773183637482271803785173813644076376941948432910679405435327439149086916853889587656211646974065471510294416145078337462949238875405262289430276678916109366923306180160075175223590751742026542468794782873580063496375922544176670190751346973489673490335907364516879178816442855804259754542978806388753465677458359529065391170558421302750765937084534455500542083936582442499329204084524029883516640645062722289098973863997868973313050138879873791288168283431717146647193549603632329000175739702217270160498566627466838542344257752412602256416025911813035976509680738232135670581650941614983480654980264043656407578324066631807897708873918879964531934954284775919244821761247588629027322124419028775214985949520685409180650365686921974068982032501832110547116366122698263018564480559939690640718674742225696909144000433416233758819168669587673111332227163229021410586932758093951099122092164325865948900293414717254685367816440828032735238229918351237308108737136034943887379039497908570719097647890173192981033060861847411882503652369574740725217630354439037100320924562682859909431416726540942146797875382102792978280990116271217382494082455699727633508827932145412212561950012224549680269400372200795420660681451256524472845420156709647252673853384004521096868387918122625033598792608392233501322860856809103255632625924179824841817231252120065829976995218230362994626734407059691360508130635101481372694758987248379409007459125847782589716548207547713251026379528702756450488769908044440115390186755815058784105732473030681482875844747240777974506523362775342100187901285736077885364151762438712458757075439241389613526416049990568647530644526660980753950225345700407740769563986690370500645007993859972840231813938481734623888016262566299016725908093619053248827745447842462594856791743783806049465553770278070559422301991826125760590972749358678852148752558245480406089787679416664796574780204158798763518070123338992456931649952429215643445617774023821115729263915171812084802218017624830724487091697681119364666900818440786115423183443446287463604277454756238856298943927522310209245497624754459027455932634532399705744543053923751692699702304413668926782181627365114972551184216753407889436287402753238777361080731775518989145141252099360300373907262723369030463405428536956389828059406144000398789779220935160182421705569535153909986291583427588981937476291821166018507901590567461625961339028438746323708804767797291438824534773492524647432096147718010402200064041801610223290459807358913008258950265869176088117363680516970863746911076646066913123592711591388805616667890134310690839450759651739364288814231146381743120376960184348067487111717124671172375853214263308317887043646811920254651613466251308862332852962714418127686347239571236539675492557175229344855839935763488193269106726625330437937573482519914327699321410245828540031260231244917198679841620217766506037166333091485565151150057024546096819438179804616702846989866793077254560078725324011262112825279836433151227178027909602380891552090054719729478350925970750633013712044429710808552338254474384496173594388064868661674140891402480889968654494582326125709465161774967908549007779034989572909158603058971720999583844856158241549723185928592554659269006853963928278075268437117298150811636230845644199942832573225875203035839303774603399666554296462911689260177935837788284270437209457250069491518600886256406499167165587796544478518390672822227162191027096226047922337461397190278826562711973138069540676385250837359555335380308925474805238342928876335367127690277265994358069868854829434379747919385939211065730605469002192392615915437891919320341117888583629225311628845242458658615756794909085985956194282467110939252385948335480992782057124874317693127999973321416531907950817732940381177253977097749824079680154467246704332578552251797504860514067403682293190458861686761821433654430368420123974674727421316291423992825164968092522619113249208015588386842627414357233523716403513904842463770410989597036097897705469252594247411079612130259450877100846666755489464937434131771271487028783463567675505770581576801293481759299945285032708988006523858003544921578062369884518976314692605760107504643895500420771697698571488120416750553373990262736040409053612364926956037884540820055475932562398197845493245200057165422847636126799333049040404810544785462932276798868613975459712316466289016311542500097625623784966179616833742583175327921894332943773847734345251596470213814272478863859229044381037192447076871620778070624717263161864988704183823687451530866986338586304555286211631641792145109707713265816410811693923717258139520348721132782622484021206387500687373144334352904412910669011038348255132436218484287871169617069381920799063282038093837301613010670451543101227388137904105859677713712993780306632225346077078179543565826593950315900236847476726370342245305841472631732282832250698442127585170004189113322650933839955728894219852680822057132947277226273002587152118381905256430456962361195273683634744083631672654556477795181566414964716096356997647869282044474707302870965663932735240863970085159925677245587648100840822490616124295896770366334205489091214169831794812345327060535274369989587681767851898308969190582770185357628277004730810031938154221980600984498755935104912688598656254898676100371684854609049975254180851163540020976545431143998989784337022619596061516988594747574483982870524827547919555493064590740490385313960288533208232957685372165364407130656470068284344178196354350730621849715955541937825365335230734873991227471527236852606947420105858969938821796769966812401583715268987556776553666773001334266926427045214611704664827572169367518064598538145036487482874240634910986575145114118616154234461370262690244764690871570272039660034884819299582273301220927862884604533167884553290954847042006150952833316365777838366862311033201560537092674008456632187209565980739515192439189056566138323413856264208727926660410169328356249222154683473867610774231367906291842287122920907616393437531063966400538444950703698494503729850059403066832198526783046847168692134570247836460688098179933678204889784125198569321831366187517804509095028992018283931543733627302600456080318220001316897944198187232619416165526086861313295428531011464047153346329355618429222595581515513101879858761045054405623297582020052013022457571507090308435841141844828047112746049442483755339556728105551620921491379746299656032916665317587439230453324849612140423476899674170959867594028193050204093277039246397428021787353661051733437283694224663243099655567335623944522490969013259894596788563671724836541776102456240339032218114449609389285413667176811487937788677343044051242410859437794874044715854310383600445074247637584058222562896842605691764596249052185014155054401407249810348135430128717231431744268408650649495869303339135500294934940020470813714977029977300670098490889343486264824049045755465844253575202248745233815197236766116069679722461728629000960474642911988914006619880341316131578383946697522269240409917664083793209245351427453456167168666851134606553632788060856974995636023780555118069634060489940937006572827065978620770239502050504172244303209727217316689671488406581962204967832471904288891756976983834185690147262818366506065183414125823092117971435283983062532057827730868460861262542123802060613744572547456834318274311808366645708000841376655873856515590316803396333377767598481891793308357582779357453149032124986650613204960163845876103717278364621108431426582169351251372000042846083817447439886804027007756408070797757059615048554866895878502177456629235699269969464569569568268807018897552525513480540811502439712322581002414982819474330217680473714116678263341752997814153644791715513349644890092709847044131508587096736369365433315682243113328815019299372326584952227841416588293324004789376024715814849007442916738443307352906514356176305817931254043174423111094151907672756362122802989102854013835474406063050637266376195963001528993328256280913749942421637843894596653877355950333573898366258251371264305799367748576124018085320128829826335546609295233947298159006787348082141372589792601479814836134922595360854006124742419123704520707103577879092272293209056222887284959053271015988365405437794776858164641888590410676710607120270684996836892024454071885937424112478917425752800341650434944430329489758014789433229821597641885037304679314150645948355061755256788156669349597271099526210628269491833938447396386084954761374410559738366757973088413538706953864516925943937724354693559511372601619031856181521667411958497879210244814906883578305634661021612101278919505900551383140940191490160890539101697559292279812449345607135828386501883578726795042354217447336953286465864086536900391202154113088108784274760713427559725217755464826390467644038522598787783509623213837964416674411992317955515945902292816160647858349528864671287544254428096483255316766683973513482289591844312524754126778935090695852780971890761365391424071655599532947284902406822677418418981707352756762945038772688201845240866803905960274108051737753737438555354069375620659010494043813785739296915041440872271851351958172599162989095729450593591756955137482310093015963439321807922313190600483975025889358069685101885773246516054737185744629182701046559728183004660372196861107993493232959834396148022176069598305748706282099546049081071452187412913061890435527416158208147512635387959973419586916868316298332181654741163365162594132329804948109833338313277786675644730828004692200532741913026414510546536237943243011206486573514551396037603060369431273289415459800563023968170572144485415776714227965209866574290067565724996637995151791448757250450448716122935098444934986961239665140978986053562347698342916349033296946745106311478008480278259772858800104276572652851632783602685730709696805292491659639169931623618126087375176585053244040874639558111587180683355234057165886178120923058572001927461293188324965980262268489749670039559995940037901124253465744665089213538965318761130408107623057278412373886189514215037892061285588441966164041828100248410009220724650619730791183444573605385686775150939071458684883037775827279216579792341624411112362622721746795631057649397923536620624022059703483535098122064860896507072636080616550470662479347381348493354345330734046282225122822307233048359073784676925639859252579210251033897375264917333226168326303064488516226147562863802570124407381962318236327925594564978276267360029928299879049996279810116457649787567601162259782932195122296158313227159484097751147931800383389412554563846830702491416442353366373716779521456907643931753393605939458458595134561980718960070805315021684413203380086923423663635276679524407169018580910048102162645880146968653820375890318117996923244119943236197877785323451669498404308191772542470383292291016598871474497636951635617773940879187517066136904777570883886878601526803517068087791757504002502683767488884836066319172988917563206440096069264187600439310208165698676961064767456438102385360136747295436802718083606105988408549375533005115772913511943705000424011634898819455044464861955648367194779639513332924711983208840208725540956561542394361154758579207748757433604819864543297976403724144190881246508191984615724876473576000059802599602444450113606301564581186725772513644090390957941203705277688789699212505280705741951119511377700003095219627365633474368402063570816901107875399928440870833826430213807917040129241955840529746442641230675225473344553292829830771429417688046737654465408138987000919394803570697752439159409676603019234488078064307753791034670466203670004734380358214017986709178732841292290941799409350603232034632188949209909406403543617634580744558702473453179326959447614179162342632839785227705133283209024363359844173361859081174888968209649436696786985281058998916257572845688539336908113037054166469244436586097533704951050495234182892346102363664596116829636594836892968051828091601490619798327747838391552467891099386182373272188512747265364793948839517299688059705712688516128581545479262614803838082140792762619844267925715922297864473596503471856751743022952820600073045927280835290042142089322574058491009680912852003757030357677426479791423157049938969261005564528809748436362564571520265084126787829870434996155730505250304773886792854614619491290203617640996773404882721950405772983740164729973606567757868046234435043843124987458052144915061058904820554155154004561862654411167216080172117285016551403284679067029590457529771344953199307527898913266706173781693599279786942705647090554164959240237683377447222269643724483840632120229934653931449538085071102692382815526456886980517971345507509399337402169211888666154518108267878082205318426770643828054379603361639904395540125383863861192605778036241762763996339519215715579106708349601612397344973926646566822252082877046092757910121533232159846284247611738972703944206331252763459959085824595956379159301298156517192344416170700880785533911825451800048251072358493568598600252958611297330991592923061163791962121434500926845364862831739028385918261508174894281411622950820333641139942540407527326887690461076485139756325804265021550484951133145836098954814655452964599697519350510616898464361341348497736250333810265238693134512277194412035037485083308700558641043401774985732825290613311507542537614661383318336442721976864938248228083191322752390696287491706972218478787272171650376831995491865177837467264666986977857723515840999097383318020909084544145592235873735932484952868253285010125423418914441896033017335630325145478351138890243259941396639333878529453701467450584833197952531464141484622693364937500393800618850061457985915267063165197565889437424746237033486776734845130425294744839240021442843137410864378165251206006155715574387444202808842938115594886993121561860231936007576616525364114105474202142347554339095595186791780278849098007210132244976090720953171252893140471182231521018424383270373557762142969077165951027899590046623033208826173591235770380302579499024358289991178820653806705829286680782114709254355951440817101878651801341824073241866534113084472850660495519183298972914308605689467218666360375306385581620457032452952670802527286562126619155178434551329971531647833919182774683571130515405631041383500106427891658084645535512554821504845092662078511775160651651487810241082770223138612798765829127040548474928063652891059851007232272056700251076733598195355703145165037700793915036657443469463710256177377712046530765871483344442402591383151413020525843965547918699662338695876623718834071913028121285515475688261020068273288973082427382620539799942587979170083697098923303653745424700477673568450162431790375687113669143586723270907877608283350704696604153741183184091313041800994179295676230084150543722244081081516305157003791467900008959243011972235995942049592016583978355355569457268102354507009299339543996190070318166841507359857566502368523732132203626282275441790767117150870472189416771705667902535077969939099129534962499415345313586085715540853461228735097486231048532559438403594403963060446248624370332003273147425956304316932662155297853139107305147294750452360307357359145349345927607418516817830906381462370031541700174012620145312683299275588802601541505630068252629043154845979133227470098256226243345718708561907878156542823298836958948383582756226956491033454294246593583858682607653146517941428589446133214612219916766402329891241105334927010771700030018828720431171677601032544077666244941948872947931930208817239378176285535379038153853120682852749696732275930900744325278419538200016542463387273372493515049587664653349790667598766627248396131901260180883114437589435669098848146985073462449107670893596293924093109990978546132987255656966481733571606307494431700225950772724704625757770885328915542542944652350485160182809949179393212391203079590888683690843699459805729246321994518089664146035765530979514741910558347093800139417474318580014043624520556239584707112265424909118909239993128265883818268830114781809094718413345924126400692788943606428748829538832052464484088544184428180985362743591305239325482256132423779770947782222212246641697782631939745117272107828887736678383048567889593011198023272689680515142003544481011898429338432833464829415001842448011149338459120527433717582856993513298680264974898553273646215850226385094221992958308603353785701110462797454697549045313559762083278642598693131888028278762250157464270979772280761909315315322651989892780060186042112550308383377045383100748891562240728581479864420564896603460692884249006833785454701767497894252282609374705677181080155390949721983354234870805361688123339323644031764775268831503382148063793745954539372621703174614129389985012183681043680259996038144126126863646291177498192130673062253768717375302820705543345399415109425840932709712746331786787140411757432206472920433060798912432817973496173487301191555213766774853146029184675044000675062122105754680768079982748747626472905946596883273664163438588574114719584713966909497969450700601331619939862194433000159129225752922721172291096146867510950181532553874154923827195047404478660571323190438453843795111840839944592435723572028362528624893321034581452693479614422959038806334276999971061893276517705953603571493041586722604715521164364561090772228258999982443105940507827436139321146528503580371543371716996055545433915198893862561634367927669062981794085307084193407685650916511599666335330980072151618239690947729495690302325742024348423268740864693269588854614337628733337577640317061952930470115017892240702179697687718103639520725279212037580120050908640302939421294486519762829042963562656960768322511244991437187123778966082828707138745965920200240321742491016492020899703936010518440761879877941463471449727332928111032888614079936020160503490685183182947754751660991211856289785482235954581248718665530616796927566334107791774740099996687518102470557498612012975518103076290068418632742532262855520145370042781311157257119123569306266445494394799211865618753551417019870058079684282821767573510262268949036672309593468624750760187040183529990845758618650275989507996068040360692985740690901312447756462494338127929330512450140677960459616811986787407005891355274529319237569599624094342014089830164930032454438763067970419195347656836205214692834841226154934482307638135178024792364517173158335692740609461280433349423150173623081080467253783779424741785597539318856571756749161259469692201525591457989641551732587535200650845115207767852700037562619711239904756858894582943596682018461626059054444358055498258255492527587077774950095461192916548968651336599060048644083612125133710004907899602625958564643984968328461849603336552214202596863938984469698634311018739469767402512811313008220670225128862639789155759567717311663212306488175408510679925462910811457522441409370911964488784390537149566847949549569486609546758224974781952882551567921496291739855610025520163982586447875887500794355415217287417279061487000497949392066622910639596362690510931720393618089911629723469024008302404441642320080986015691657733433402573828045075090881645186511976775621571872220962009365606407000664890219901837260509749050935621235737764635594754791685411133309198350771429568931601008051940617400909373185290748207852417641164813681244064523848711696882184534369642164250068646810275228693389336512887277396335353416438518121029864997480570641062348555292432741459955873959846365793920857204919638119153989915960535274227298137192865936494010166921240026098194171549080576303759021352088913013955084573904953963378352415027571315192201546696426373039049724846958841213864203351582297817325763893328513876435222298478886604130758128581451349014554440526166220528590273586318194547296911255004627839206201545826493173548474306711265955822977059245171846689504896305688614112267125538973776687663806560728530018792564706841069024436366815847224223310980002048636536506062199801088977537039566756117307891207933115065934127041964715617187842654051385350442787795454733005716559739589255956880323053564539471938803122852275881451341409655139553769647971718631912984966910190090180805091536773481842672088277381771523216537523044150968596798758812565731339200090995409565545786662934571835296124050208849226369832137521490599188139989986324804736760089685215346614803781736339129006844942686966187778802554745176942220659731849313564036358859882568707135283786594746281786221722563853717364315418959189912795922862949924440046205613314974480046091141151229249886606327626415735866625112267292615978695113422240914362209487817320127594953939011455688179015170063469599502738392128513967958077076026662651218250607818255435579817815693966005203654526859316795341637809262733281870129113976543631083556582932774899194351909572514438256503053524051944605716151155658394636400186136135745367235946202055279596932777185515953175008578996984094763316394849391950306871063295083917848004677462974820455721444975520074737996574530298047852715510853864951597446855358059730260799518885031641563460373618824469483746126858528798473727445107863285734199767572562127224626114864583902889162140796477740836297481945274930487271216949348389013792318874425104868102568899456580916226364204467821035484294611060073249357085585050149316746795612214506487332152791467891959941758314206205316950254619999518540949105107706836655226741183904583617874919726208227657002211231915635023872636058612145708808503052551792963774796034178134825324459340887880342862111716385381084653089624681956330719588989559279982074535616387906562177924150507485076071323207171192768002782658221047174461544184103658236113239095288061127870361957665330050729265659431457170454792179254848836197609950941654257213005319831187144517031948138916412598501667132973663331828308252518606807023110440088211988552702526119825879935261024520226208032991193732872634501046081211508566418590806084594334806929629918336035348120985142024630667677506667421411744266038098271219494664408611428668688375666273781089791930685482857855051100294530332594077782507736168256828396899381343407767745211731576349517788487756414266730951832893334600351743052541336916591503395727380721440223480067080353970546900449312376387160976037221597142473813185759568602596329559868032289572039790450713945996972228034846159553910593423096242104561394891854480733694384979354351089209789709269204437499009092266937359090892713263012774339856881038410964115102692742098756231357548395507281684189447113550961831818302689966288983004396721873700791757184134129267099319670594285468698441838942922212504528341090125247113243632192546523391900500554646622089498148134129609111371532084186686541099843577768416345283168133270514235887106055742500569024618474591468958955538043036445049304923347927358216235596009062029604031143581153694602213315620751606575814684815006600811997154412718686210403221925736826595847479486396648296356893361760137671967357325647921655061730726032663723949236223460200978325295963669857057513325873131084040036511128829575600833684667807542537566881195759421961856731421007950280886793979319403691851652056591058592983207403179816602777289784121708223850628068448608215268223497779892295523206579597087250352552175330400890771104454860789081384003448705916344634821329453256674410060718307122244402154652990610623225510096064745695109440858251280454751736412479919087116923664081923519066823238865501079141427554077566209090292261577993472807534859805935102525275262518682092087171923070153087019012418121251481645354626771152175185979972279375110261856708989282423278242634050735205678943823491241558761401679878038561551078177338184380175763289349747542495625504509751459922088783823763731865810683990673855841593050403562088977441495240822467206202645945514401596252977323695450126890634557086256477457219390139180228727493671677516949314119694700820890348462680176982958345612609810911028641581021333670408936752224225917602897658260940197097275611857447963137488488510945696252683943532129433671828635024038319283628979268828756714774346364399161121938968737711109606918819587429180344837759174525455344130414641692278282505734747787743812350819498731040454222735562187074629635765827350876999617997766602090330154627501113768930500362472952646127152914211518197992202806052916846658432341971197406918995359318327500789554236527046330180145258782224531182263818209589768893644863015477273223303882374528501938161508809376446941431921628221654634574421480098547515497102579360240558541968789102912817901754038877948197798039580735118827162830748835015343522667585151340604654363158988482994509725327851563046082515143774837325866936259240803250037913103898918133798847260503344369745718508658669239221819766981773783329596832111050798686052678685668087241609698752475403909824832682849082248471340409899985892788039576302925828108593646733080366131912333321511020578776121891570662050881512332350965309667588427900049038036305649366029421766399373396990012563483014835131712016950776594106814691172864199383304286177003929810211991516043355569153937261695297128880594067722910056465093873350505163360615254854853927060271647322679995509863213254432932725325068731883754168516744440583560607290485504868220477983351660502236488803195170227749449282789579528461553201772797753002489260883389175374932380880742467945674210587954995372143537008603466737844738109739752838804986347405646908618608412600857865866727662632555329459368352335809302396041109761091671231164689187706317063087208236457439000346669510289580994078077154425373768233555668345199386814799385550180936043641653933379001300254344685878599460822161723468115257890618010908720496721037490681342129330495331511281369273544548683614343611328966523589484400587302032693650301438120554447456064415319455716455014815695824234954065480577987148319502637290857684436030818925731996895342190151199510691007288535017010530855501349320508013056483159566957696951376740750837694013419388938301877702036724449969456372937092160834397728325128099112906039332176085717910210497247207856935954600365745068788173590861365076954062693683590339896885897564158232240139268203659180035384562611971041888459940252674361945507248089730729061877661108932722381544870751879959186396482749965389886780426874972330226911096116279129612805587512707859065824075928962616431266038503567627170719603587140825345711876865358843534293287548921292324707857142617875361538645992504851890323997790259839764161264941986209806688448715578518591984284315972325109168210993468559173109969340387294007026658149889422277463875412382750532343129559316772910946142868038827279493532024387970550411977683629821089680931102204082440554827793593409949065902424500253523853534835151357602433971389077970496740576292324006535211992726303730726424393647958421106214691218186600579018344893784921776721015962431356014292410403129818431033547888498579775325295448907504347423740869586572328328368351908992046383355212560149127507527167878817723557845770330550136508891387214270224548362775141463709840901090932500605843700039065171469385382269146208583297143854381918490035857494991633425119231047864230127720425591000025040618521908970853336318343359761315600546546527574684970364131929904958867657184221386964613368364575818634411086313946438165253194516737978763352003813812613732407485804656229691254680519554159084970135712008500649389335940972204725578809025806087086015875729703699145026495821577126375930009977918456878422004074117708836400185873557329461624337678301345091662878942190694223815616107790821114617234242557885626589422662498487063490886201103213445129888745436017036515139423692250913182473093345424271862876748580520181709282843147621776189535709718881764295786010777485009451626291714982493400390192051389818215897873447322969916650190602599800770534834486272851944174448415812233857132237396443165543199845279419516417079326900742123674381442182745898546309871966987157754192560264277350406133951158539442729751941587371304483449108473581600068342677490534681574563065490004697694908658528707995395646898079906003801381086529122359177483575273092884589039606389894982681387192675803260343519799074058129355023511462502674874088116184186252242505637972337906692357252669628909322884240854420572259162170895367440477066932751785704307849549102125734914035997733942821499642983263697746555389569285486468787578711058007212642489048507012532027127476752145679736500796760800682842095139313192281352914954515176442413413510462695271738338664771544871789883179676032740019953949487953245894652847518148817778658085240741389746130584533266170648520238532559765708414191514819933902961304332945354651405582858633399985515201354042054612536077937957470031583034626586632718193194773091481058291875606660118097341471662728525044330811002678176279170544120274302831133169008182621876391292618693566404856946261391102886411665135056636411515035549516552501780647118147947490896888050801373853524355233774944389589690590336454337668852818446750080314305708614232276475352017597421093780545334751334654674100984033528983565406122607741912125163084202584838377370912208498305189856118653734767633551815411934078091526098223862608253227702163817001334540718608592251287672311602899598712958690759094380788228030789005428569146820433714210236319789839749283932965159879428531822424184664711622339160384627231657313704623242501580698861424468743061502787278123993668084276647392673060813009304511318507119384965244305300140956665494291113124516990191952351894110471087654763789108063165193175245292134760028142583688871628837491622828109401626875990509079030923098137033179919418494992199465085785133099067969577780134603233266493436449984061430208265520786291139712681002229322238785918151715948046273089225498432231263601066952555542929572845783111296330457654068317349046216280783963552389839405585302658732101191870017860815950066173708370367713427827993673820889835958000968844114882053185525147329568079544166488654298457255299345199353685452715404586765724905784402902378109433990105747144096615858885139725725592538635431367402343960318348975788839829125755826109107954207706008785047595847289097616103561002962550084887806442679098093836755054804067664085217199039383851022339898227336200630907179832738202556971360235289037505453148561323105769208396421249780337254503383485043555439753725868533715865722621297397837324993209622925227625791441730169262503163055979154301009975324955861112464224577980515134099899748807391253377729306018785247922468443669832477556205900336648679996802886611883958929491601961924671914817965223599595322072083109258115712935574786291934608448452954862272998511741245968758147954435540258589198191154828997304374112166101595132882155519514711149411079075116424064213776752968514068277664283091853939380375354108177850030030146720712571741813372315849295474271141860738302927138204287085054584759723963113842209664494291623012097035410353444551848963971120740274544143611752363241408114503365049110534452726165374525744697851260622449432311864821700267862104200691411862440592698117131943858350056235262642714672606616329712510925650433248551623174812913715696198087316648834303759952953662034559755514130476464517891200023479788725916880897522628000731804133120768919194404301063946433710493414128030773819748713532370380443563300786823687060729965257672544165674119302543339977212545828986890610236330680307127556903971513050092171804389881371671273749877661132864262465222331763418885197126007098883784840159248179760586169579125085832840250508908289977209951232132835040972115101872278066651009863900420822854776072742840561908200175583458272280586732446147249844609367494888756399460554931125574093874820931082955685455851198388698802826929940118184464907951353564243847530435183843990605015429738713748023473347454279808451638102473211142222408379752919131815888107987036559181824501562962710089462240583529788652726870152862400997476913154953044232480322105914406171040575622543468622260286865758577768954780551190981529549739490307543760484687347533252308385704106231732010797695286265690297487170076212350484655403032403586738278741468093494537627004490840129571671410619157901105442053759022292011413202273906593651001067447228468359541803272895679068275632835667101431903423800273206938493018964536457324790335329850472507895143457860287447771107579756595442167934994503830977667383409460082489881967997968512524103414023160124192662350437407028434694845626406902060870175000368753907657226921512070264689967939538058190422338145589886299206917477747180213121743979968405715842415996645002148782537107271196449665775209547657360588192258268542553172684602589149142188978557494035838728158049298264578210127770774747774250403556879055977250541491757713530498179886675561937634365657138787585643254223089770332302974167503200572993787548747308777565975127325580943812736807645180619255665755116603995477056156463789123030782671494619849897284210334450948198165931585007312805304516633588410189867673239508668085067295058701512614995947823007551506232155233268756977278647134604117646579663033723483909290273805881628356895990748176288582698954081561584470329067855086892347169025576373150951041259101917972374229036979042968752908025463984340896010356128272855655537192292585677732534424579783562073590474092926184964327430775022532521561158676390843274548140397931127303005947062732432516614650518388137787258209359216953037409482231438489533744658757629196515044013336787718266754410088230289643293507177167325317309936996864318193633027142625370306045536243059472320540927228855154934212793858221529720761073961349256054869882995158107872295954055540718324166839852595872674420820563279726349079407325864318195267373561332114694269266535087791980228380271143485758464003418426214363429414772469582216933148741815533672168066435747917194339832273644733700482936986108168331615487656507871458143050867456094425780360635553575377716942331886965147261109496427444412454535434401100394735461042741650611664212023921866830141167469144513363870042765887711318368663034524689182443625139435599014145861302510190048711022122447165090060681584438623393449073671465720093585968258579073596038147615550583174527778088581328689213096558783405557315517024673853227340540883674694680538733393876256032952909342439363522894590524136697539534769792136794986781549244585885709040545321675320261810324384531004339356650030451676117036153354428116095437025568846532629764568279681578912947078337927177478355468379958222436620486990888898379190550239307810019791630792933401592761292507774705757452934452880703442213425802413618248413549450370627910170888919192599987103887242290765602853815261612650972210940240895254997191518152708051024233352521392608382918309654091396625311135040908873623731169795262515744866692840359590373330179251596995269838380701966613871141292904195948443281264626089778857147004657098901654191727533391392677693233620145554167089980007403888593322606766755934623804107174856570679589936676446812662113870305373839136588286960558535024393846163681663656701334267614000460361411586156747896477039453411618053573608459978200485777483432815346643192968937143467424052100775136256050544663313231682637829261937935233926179719547391943089262404414643659008664680023882535368183921489257540080298889895891393061709689491705289226621502602382513914621232072205098657886371924191221146804469205029828339533808431773857594658620894248245608110050488993645677670269743785672110740780852126684426202360881264598456378180710892930368259977574944635874278880093348702548953841674943633894692534869657066523451952063621877335541329924216919238345181054873448961510849384568596200549208819107296675553660580737211900590726613762966744015167036848658105966436327729955235955818256181266230008617703668650173750485826106626317639964221526520359109663794051031655635211558251045362826771478904986678259516139326587714988389606394567868486303438712381695687389789810244627967336439744474690222715341735656057332082906119568088579554618332469885500670918246353586071078422612379999316688647980613953681340675123326891737989543902471366785010091225606594058252804429338275170204602326507353699028393784201043181907557361927969003103022807236387695223680386146747968554897868041516569194005507718922145734284346771478591302519390180955116676025042212368417638518586507826951961742168246635422798542533610622896551922334777957757763078800319419261484068434977525542481555303075907023005144276735921858650020789437804823624354191895059962537257907209580452268088279583857542684881970753010655184200696346473881894280029804550890427233183206892787549481751873143319463025358076073802792722206758388290179653062322942604352465463461169716979084516572624283465698474719168974037728664257609074063843152985905935932738470073804487418638033664147203280824641440120394889548002313626024441129473403888659241140543493350834581346685644546562247293812046737355216658876642707332736314323631255509592735464020381906217549244317491037599417389040876549228104283110091810873590292450868629216466864207514439167294008299150434503718855143739209514359974841853888788562909248493642864047859122030409137009013478733202897997702630303294407482206572293704440493219019677853364841932992135476174465450913659554839011051849555135085476695589469941465709195938351503429140049847056922435818517019518058925113109717075766368400087648070964426128863940493290649824311576162650631732728611483825778261843091184044872515295143345737932506163517598021142827271855985309232777696390492480605561598541042896246319761922928942754800667307364117482301167541909633079069824849237861127168242448876247123989619524450660012063340796805962250221571426732690991518168708132520971759882015970242179684818655158165035588276266208648117197841784883272123886175536533832645603515097641409690702014908624844485191206435047328157365413262860488184010546808305811697764125630829822645960840332999975755862571231644603576220563226576708722096230688338363182382995997938390200132051008017976172823473874719063206511927795673245341540240415296959274106088150600163581425865567363747982128423892094134881856174525916986450713104526169581736559078777388243413592589344065996602294508017025475620670989954759428844755094239815640294501677707073601842427904338535684915076401151353068435045978852860303028942348206637068631529765913389886863338812657645727917501365361240324381358690582648569080711364070228151968011019523545562735313081559665184990368083434775935064013522743441561216167398261041081591527763380568916537351374536264060222586364901301104206935197882529026812225284955704657284301557374272723487474676336496889940233737688946991361940701286058950904047817044850686942694955385263476980598447964771784473067949772569779068035086200321209242061141337473667998815165176861179893904195373935211507673316164638908746047912343593513802685718039394904149238505912323110345377197884768655654096035805824019586148147464478335362830706637333843119749645772906295359453457779871107970345049112946315325478222004917638160311364265663145011253331456503217966597024310505930323539571138299113049441362977653222409370037859936509133349258158707474242560351560955438689377167588097487846282171110964648402260774583632756844248285461515391306774579760553364676754538796540327876896781285742359504523113129977170238633947625725865632077289222883916307891834648059866327368708583844837595615532959629005909405408445469522141767269109590817035527002378551186556526805113859636075219943554609924765674343262787444012565523552962835866247774963503579489004606234250983291301369561847990644256363156820524581767270135811326872105170438847565867755042651325048783230789250220310691972222014791987436335668072754690046073001797458530429769886310811613842277534017416648108167173254388213898979476454369679743060576149917458434717273960158793255344417265360641540672713792462975702232961899111309937918736589417531627482563148394675700124033697705852128905074057221923413132327722017201208905176448480606326381082435452158001117818997677509756142190796150197977781882252737119454233232598599774365669077521738097538682339917760985744900522459909795634701550827773978421720071279596491655541169480951504308621762996489381333708216038674359976827187788360860838067237541584386122901731304527978291393156008198133266494770053734562115889784259520363656024091694244555752017890702644183484979671981805446962718940500618893968404911465753613046880927281836321277745140632953657290385596973599458080957987963344986632559338464780221769020502868813233675222817486701583494313879081761991927782631244554294320509961448459642559432423519606186077582720485266853406410582459811985652415655841476322590802132312142659908648429643194567515053574604078557886379697439447497769071964338678567772072113524998141143552170417484194059596720360465448015416203837184448754987923816711633600852258870091661002730890246441391498569853177268274479684956230390152313292349947591443002625543715526558248852505168188935770024095693935407399450504617148785212670804407941072826138706916570604371945929320037610803824923107690354195799529575316883733592615937119815114951291998813493138214820402296340669588250305086530053624219358569006939753956490736660869194661171576367753390472489235095895949714696349443790430341714833255886799092649063510755153959078069808747419365133401645291808195575398388618872762132827519688567225132335585484709270529758928021228464611112840824422092444843594671139808242121644947980036545479400848062892279687909184522921669899423682679356192588637408652402440162446709405121772425543772747379698080885260889245140066623792878627445765095261428659033933112786350244705511786705579057133805278846574087785958714098168967748225874464545485936030040326647948316008677394954397648146547667423546323654557931925471695532382048065204217226228350575193018782169720441480480695989197966625187042174102886145489663054602902027318203601528608731523179956591026289385346027830133509711761727546263368186497640110379045565469455796245368221217028001486098394332318208137420868071046660860345853238444243093715366945899605909322640807576575766121261871846480430090461915461029264885545470236802765120562108356978940890862070575449697925033903243093075745036410612658585888552334397238778681873458578002384535590768251434422005396778312748897674478707891208496102245608280195639226428193886864071365812334226326038673239638572818232577216380544251308196983483546638683819686963251006819606803718183322836331676684855950956606437253383334255917925607919181107805509847371917293067857057110770147825294173758412649135701544128561739548478561763752382174082889589450423301316686295192684916806189510611828189214739534470354425545736301740152033165441768094926857381554644761444115923840197967954663155293746409425672512212079267626848600583818240920823665557843858725522155770555894017291490750896241986455879442399327614436328145403095789910987196116401805163343473901679350564819377410687080680988252192616754729627318397685414726341934414680201388780776750204178539261708456087751950009650776624441887479407266690172039621388813389701477245376038641248799591904246089636357299431019869119012883554189090359829276924634032590508876278841006553596090848777292968856812555189516109832252510937580850268011125639897387325358931207700404000904989459120794699599652454581840378960419531326071491030130352349713720740367257558643461548177783855943573433967337309354948829156689676466529136574295254308395056298261473419007292092248497505362551240853852068574690075193099305399699930113637304120328081479299299594236255949302299793689587865249937888347353648745963710606324367299940936362899001240666108581277267894305278072532649762366153160180783070697847244019097650292791257616473219328538387729193522308064475467010969854510331078043697431448585748435457471258685330740931360806907344285664971184756250485863287400172089984939766273782667478179168593733591546558676501652634209337887482722638715552275700662438610025639414143594177027660563865883881460373069738108284597261142768221394162685654047613764204661619190419143992173061219939218572591089312711656969977299773585055103424600336594695784662307988381687386372699347068033260547517885098805882332932908341712931779043988987553519132306703281617716082232510060250611320605425866422498602230847456022073614514615449088861776558434072866598110957311376463651215362472907226210839930294303605748461719794016567033234643290098906543657609587390018641803937288712066762250617855872827631227621941135821330660648806539037481395271463664960931573542651629197339375078411948976876065482000781079791013178255196456291343037981499490787869390922434043853477682762506704370694765318980783214363991283034713000565163814265082858795402676281967094142295472696000096450597210127527211805521792637344451397258352451428954423412414654712353141162559072417069743180558603576557089462287349746524748611533244509227908428747859094123012304128675283699279412516099985859774844509963426433656585382972078686869299880583818203691596195006907867096422130313858072377533336777968378153344619606632197266416640715400831336508123032651559803549396911078340924183318803973633802845197801767602985774301100855610475421734779226702436637324593148348662916049769922635162419564876736679835884174215007031202450600808202735675803423420493889231711235669555265532545447653927619736536746325756733382410211587143326866125264289432183638070793677336262496849057247225772512085358441621540019164924825882453767623148237966643311324336430827291630038336351372241445900552779102689534265601979331598381229847220310545799239770431664954845795336362443985251736584368155940896426749013716197813644291427277719334580591301257013279397254198966017131875396943534506739260306031841585070354932288719580794011902653881321615410942259833537086136119044661281079656534431997191151519770109969845671047181222661926568970925157245545672693089345032943570296505371573115748256101297468600991173244842539418778751512440270200426821689289505198085950082245104724122621746949970765969897555063830840743883318464253359862932331127977323914604034132545949690546408840737598233486642307214734489988015362144484796829246104552813341632658275617578360641183236756506574230215575944054221850318634825619853847513686605126295810806692089357295381339680314626447835517659291839576605489786282650004693144028433921137626269951485856928894171594505924437331766286183069687464068284825508263611832446500487579023255281406067243842611767492174031899935653306146997980294607071154623022117853629169228528980460898809755752315284968840933779943257012100297802737015646212064496476781543643129841192075519237729573240654893787792753486849965159540451253585508507203768493050471657994523435010920408673797976971244681402600516842397302381133872890547293195416286364057073993429528601880109493937511421208859292303656986309147949617325504770163613415495641525641105728417897982747831652902282130074865535455253981516150818070980596052038956018294304782531947583468695935726614367610016177271305737780226511837131259491802274444275773356586027233549864760524510285557332868631638202913451130840054517716756903081076063422252247883730378194667794078452775916940466911424849371857063941958970575977898384750699994707616571038748204790711238470352863736762759556467564399463483533102155645741882611223493701657853805543298127106374845288805669221544052103490727088218434321599633329963978262948201291374152042927418417275601732775666073942330576250872218309700230651142562044517549697046762784352530820981541364671996346758283061173438443464782359425539922025382517612268844873434195732342849699455456672764507429144533062220044506821631339197911103271199070812509430972177549784265605214750027174923147478318680381497224072643106214408724043451738648255186630638895901875931257121273908386479867484957704721453415977718186340833654747027363843016584227020932315346554373414670057733275143249951099355804649752095753294954001354670197550799535501505516646702605741179845528197068724229586636585497716552165435209428513607814496357613297950748472200992125542171733405086307085482370023694433421053326954335765923659466912112716450261065719143776497771616021867919979053196935284786213150219073061340882457964734623488270372452305603343298648575955578538480809085223464511413985293252289328169320930003442138615204259376827175671663707326355590453279523452574180803500999582214089880556979222973753928074256489949092697286525375272267167189289246233370117165586990285773570270553534123049390407835845718011723611751036583803426155047980923085553113155626761256371200403265417932685793718998846513157645440839838037629585027138974543759965227958482846446816567038451572276818066272956312042250434251430425272967460697545736380790376365007299837968765647634213891043500919662330115218501010605050795010650381753796904699443325580129922500592691332501007174022291379692814907879577186536667782030612559783493242641317354336692470480734220037516050028876739246017291398984421341062396659148327685575133803538252902512155739524302579733315004117357473311917942814919299629792865353196173198779295551810730385595772782451993515114511421661829955068416455135757058910459744880801905881748982059420993380507156318935770719971607066775322456449577609023674228844432582852282241843086736801898481458886368361031378915465662107593824965627460742523901264852837056287004119250331236259211960383578141488340747351836399618639121944808187231530544373057171346064955811507631516118401233711553252055176435382490353295238704132163699315446653899373207048202584573241681164729468306538626249018334153666110575110364122567810475233158872209885142228743664024223953750821578609232300001415533309328619352350294802514299315396607049533008018067039744415947429863356077466890506194681469896219811324612825237329927301793558440786473257147459005526279858310248853937166994500061268753493273292786331874631458304493212355417174879550583542574502508805454421665026228785454776201700786962683130146232150936615204822692382732439028847382403501568994247383173249943746396541901134694413948869605858013253684706551561893142145237995544310987968807972561700554850035456924862645924830936525735249566375938821389948988174531653909700461283108074714449886552229198073487519119862458087234930003131305293601846558836135537626730905544580443796756017867044494291464993132116610958532834805926437779287719343041480409313358815526116418393230944901598229978933654168566072098366715339164848189165377933727482630997230879247618519369394236791033281057377956385546372902045077045357406382120198043916253742233780493947612092268378517630501704734343662672602228446693200865531528787785341547767725222051099898710315903782884246896115171750074383003236975009018881325355581981054898327114062025073336096149121414371015876677201558755857306892439169987091678576044113785426418467238576846975851631912595377861996357420824337364505175206797502561628182254565396861711520291448107199657162966131564301865396515284567439078893737077431033647085825647861946248358414995037849795649415887966483655127096229159437595602343405672478038457092943610874655646000472779963134258368071301739918453621352690040039151235752248094389821822231421774684283773474937189721639346426562666940380699337477795473492148500086691967317512191097273928476919948831992769329505352746795977098201828005679247211715099780213650604461947107386903850178402318921463457589581497250701189131043684664457588056702924385799217051792530792268283772931643724736207806394770860305673008574014396267059928779575715245023874703078977732585543808667553286569114008993612181535110332863169328986990668757053425577578499257296571117768480605703838799049436720411776598535220323957621365072078833281837011002329543605089636724945554177011771988765085071243276379895652010055929948770515995943884848177298666021555834022252945764628514397454510229646120893513796334871065813020493167844364135752244164331797919367931581467059331324822332513182086246428327224320995751043951189084123566845310681932524759623701325531915658635396632306587311961744377864090808631802197637830730314119304991607649861691021600262001638348523305863091036600520001239198685732833438242299400256779136271594106314950655053637786310543773096299586761235543859612996510583925015345798505514322305136200765462357719749696646978398735984582830985953102865684345715168206265939931373044323953152976142473455870184328573674216756956274229569649108492533796188323237642090620614782882383532142702883711220046556890523412556787899310386637797082568496526576393959606187299094113278326699213799510906011530934217597057288845775720686485110441067046712967226178460675663217468955175365193768107439643118644298582333342917444794125767457018909991956014702480251462462837969803634797563002197543992387988259327807689985084920008437971745336394115379869277584512572009294351874841190951470825611762390529829565287364787951755427961264675535592440322164574630518298243446132913928466639515752061722738636217818011420048467142313604013132199260316773579463349054442269754771965369908663323939511169771475558997180746764495274898109624393467572360098720427993018910795706812025773196483265698397482818107299576792822394377970952309617301461766221190349962261327629493119462877007091160191357944598121111072246319373371496244047294278587196061295814901331924012169633863977029219542904461667698950993286693719141192416111742306270990539475276457798766121189205662744991558385770311141793706227902470785819707202582174482848031998641728360923712022976629763081429790109984422736160782397870871925260042238882861959455633656322438752386282110701572020027868722243597010264046811491983158783067259957319118638315111479846041893201568433675915071384327035614027799803193522661977490059381372285591690013686061404134817005411935836383490552035090826005057498325023392550319536277899960188114089001509784187720329887990867264506852700340351175940970659174200065255630306993452431099572144339280288992695651847382742107698015869817503776351751633892385551702958507017416757784649788102796861305466069486954730783382955293490947637426672676980866200145938153187794463125497565239104743840835695235261619136075919235546090241788123437715035026114564994702315770082614132120457883811333132504671002040906746995992991669179831244067919384802382819674607498019449280302244714018511173227655213157290125027925015473155378137862153183522822637155822977543561133712125444093616096522328765023083271877455093477083355524886674555116359938561605161714287215957710428617578047822263125117074578453146556911603392486181445032341467976307634687944756337793255589395696632186333385706643189258883856406690666427532102799556434877449044673569074893284656110915274385576387796070883239320151147854134684850494153064570460059881861439862203635239282351345364529365561009631435117399895025505554984115748172162136201297166014363781781957946619502589143115841360980242353508467029625655689542397275375716305996908664799854109011038827091176747679484218008167359279435253471924907939414783975375852390906945060125853309965617899387184776703817485553255263432467656845498017755451970911605296881820277353814184582557883099461925557462018804301570399384581800901983905384870663137311932765131787031503042061107180763868972476597479996411310071611793562416834707228258791205099709747957426720530717701969342993351203439419122265843401941297101763958339551861291640777974053439823538824880942940204914047031340582742116969344714410896285114046619530142111865351477854127668222911755836964805647047766068020541154101225413574926039638853890168147319518875132526683163138365024570374779805813881359878253305821644737400130262640056377668209160468694221542379812865913802415462383219251844642600971523719876593296859039114038554344461038066035356388477745033545710243960070156262878773391002660185578842891065177425856229959186232900782393257953799128769022114789078762891805378802613308767307110895580750456507404227357162850764118083252504287249277223505386869286075931228421312806878328137251911071512575741676308173520817324957470872514220338100757566578672612976980124823408513558259708544286489769210603646219403977263041854360338588429741135217031534315790945865549385865594706432550468968957239504612879800988547798215880305999209108642327566460329527020915893653902884383558110646335533437104946552218291555707681700206245508375009214660295326011645466253751605198846514969265164634338079033996099203312667848919915698733375661467417925588121846254522880810161619686394320626788718232088067562994417890080586751453419235902960835820551162736907048371109001816049356888191145411172864612240605782746972657894084315094585988444038145243445233169656171017212700618615963888137127832351353164211247979484102512384313842326743622891175950117915540626089236671633503972956768089222935227898660428965710432240144011214135391974270133997350069995607323336242598805592894481762583733534493014323939053382275467332021661496489608375491873209723828670820093665815160184692475620063430184466451267248067441910671091641993460501185949190158431562408168141071676325461510568288649319815557964415956800920574125627798775188092456383692107434510178191946424914089276766778737612275245822543170653214836989539551403018882034898696543680075098326239060592875588883343571086121539825412215173084451957100618387638977725011336250923125596321962972577501593116899035833327969431890632826178073326857092912033061274805084290672228710111626428707020272092617786960337116901132661129526242381026711089925207952620801773991924610660950364381999516788606029219291809995170014986470923481762029692305347868139376406804049677705051067569334526810213826979066684167860459709692079797190412336709924596018514121609935392150315387974004752262853465183526228590816848133574075678223775429561905115015412376642532380202834572242011177425085687200955994497577849494864086961418087118348439180037924642606240099341919792162029693981187017210119225515729611819493765292885587881542360370231945731686778048049205084381749384075893090601331869747311664377003702012329656712362324001345923818106954793845310872204568575071449080388453909245833651347620819443144480751560209574959958414792593986854501097389243982870433946571131807506121711343345519176364792704410968553646228295263210663480812302995555618681351656702398905466440211751525607353843227055073756406422702151096559529397619967654367710082266030963774062729586474501633202299475480530897975860713750686133580822046481831986736303285063369218584832293753203334849243200583138141544191097024925512260492037266722023018274415127152893640039680886378600214939530194176781003198054968616247221435769425613947088150064857928518146592972664085009303841387274479376706160906762167080410861506185795044054768672080171398985766712427625362348908428737171518546020350368509009353807192088234580940597018754654806646161384261200759655455124496492782242520603467174200162169352234920339487820956066063184762268959337831170328706101422084355982188119592315009016824598970090789051467007572505560106952242230597056144738531307781482027502589771873147985783027407248369555221311571334630303687689440932874151854116684243590529821864103875770842804801282837368688585654133560396179004476682370994905343923938791246206922608611037376896346967117503845024680179511290603457641728910471446650312801469765096186057071511648775697336978108567870175104265965994557185332353346206199432142930854120710279630375569871065228563733701982280783575294845843077846729910279452108295049689730822308643924414348769693688396104262802417498424686766368123700752414013250874400974868488122873615254274121975027069046828202897595451528971941692583926860121894779150978862724642957578757017390014535322065372721835590745765081082334951100992709255978899263971828107391498027576541953763848222563518306019023476305296801044490190357163815767789228293198601452848605720793676907782670129369909294926242657910261394789628776772224724710585358751042731563651564159404864003666864295444736109681853281767277633487254191021319313470012944548671822533138035851562240742426144999756041571083433929768152931587460857761953887264040390704894115819929230695441642425414817453765954964210226061289375548315994263040307747351770406164395296385115294038053049367056568546165239097866816658770172118205264742015807895210126838740109884847527416491516212448605636518946030976416779537468790074653301687390545558080580458263916500946128249942321699679257773007616536625789080502253132192837618632107445734049167461221854637606497098940132579149088251321380223748919269550755003075080209634826500466377368375383651112633487110772099270258320501649122543805787171216657132243568067941321128035815760824306185485535214418190332322103741852621150089346303091269605053214355233495189166072255944632129896541222593535347826595626799004432252399639402927075477896816886174376418336951091483672129381382202151498237952361211554600531210106057024289932578813130430954565049601217525273364305709284542269010790330301312006269960117993365065197132626498037034616329736709916353988844643032100876954451546096486643740538486757976349849473945775544321441817594140212228712110290010914350572521368395526700150159191555532183842959972928892619434523108734798624015711630995180669641315675659589640057571786723270161544674937840699257784084199018927966001665453556294407186336212672428725220862404621323856096086126254158181541664989055429797495890085025128929914416223922135517917490822615827698115601959269163014509825072262951293159845173097747506732292210970356628576755081181737825667947640118202874315173208928395992815944553876302128658169538880858336116050905295845692575693331102910709525504622913692558619398024102231766031739157086059139564525415473080209985084132518790607178705037576675826800469261784208419713236182713605952460020535543170366161077212853550664092488047361149133138529518649036504796302985356334496464071517141608911499829579246216132800409177927070820110749793067783812482402903629062029204251785240563432305490603938848329195821831067074533773918193991659537245103017352191403745073938956310329574648559271356874477019937936215821197771925421849395214523507601806341427137250819313157474764850879128650968671420494364633702415342403169552986524765926727191592004079045541990879742858264487514242652538951975510941863966033759152059239813921833956959169443481244886128914955944841210999219503241225895944795607828547601180107827056876317031173390956456257645170850159581026655451828596395513906183189938503118659873096979922832643402636251239066470452947300787603539187041974227419117560453134570033413944847189400268392644258906914340581421117241439394456316355435614764005281276380729427362813624900219029600373025294570532948248578143011141558995798650371301084905674064070946947875790656495871061273716862254116768373357909589779498051211695111221676277101373949457854682081074557944259641288455655784646838231135899065025120768500677741542156639704958596003810011790939941224254708723163680873716132942135434333423292634761886437558898123842208476487715185300058089658409417531772649953039760799225442513209886406232510213957523284720619336830437946178440740820772089659131543190662097525679524977300934816867267387610753277504565907059276341831019531612325975737470578308149032479412383879746830013564569360624082099915157207925029887194265958464512265806021352083280985675998558883777130621264880915671268956052399369643724024227475374294342633495266829276680971428418726525020434979303368190371354010125209070959406014508688425045184630238255053592737592519124843320036167107917096647415442954190672465564731721092086729302795959813161036264272326872426837088865287844943882817116152476420862327909443487286154151633621606361437690468579588836227606538288067281060911075516467634592470140928785283651450867474028466673477312715974140419799903185993326801755450566680892085102083980021437320351626035701527458485517843752840224506033627548137933671942810346974837901095917823029179734884272799930395751154162756982098814299780902495911179022924461526852362444497894853219663645885842288924222042994744334919466599276013341476327098121606303731598243751076254943267384150109214548660268791514228736392450015387527079975945090485399493513328584924933955333724630218693810480027591688441936184991256017765387181098690118330351596949535521371589280310833929972822976075419456242317699029490911118383638025219655736658065650756356024753697311128888207225772402883209589050270746956490443066928165676593682510655580966945760264569358654597311022619917082221749496035242167496740522408330081376900278988709911539235894750798959232465525388062620955468441221180511768927775106579907619551756083607327130140270856725927247733924081841408469333528268707278900218504966384498526601575458096131159977724333267995980453728735325671798346091136852864019896434482760421871576398340882988569891934487552265678490150575152146259221199506810426394700252634817360800214284619913725604941200934938388839363090261290467662402223090348489943718263252719573521733516750334187428656984722169974471032295432431902173292388820740791671521969502786249039664471120323644453031397217090870146550475212857648573713076588016440697515417736769735422296002257516205856577533251257594600143854387206230721224588236050731843747573240703838616560767467474706458893499614600180083905148266485841353362463815402368621984087266945448463720983520063286355818275090499148652988695742391026269862296562820770868432804985774960926892163743431972065678681952753893517896487157193967174746624298320741813612543019299523941344054932278238227447336852502052716969223204675498835792251860141322254530655447255769733731893954066626173747216565169272147290403338496472469936970246584990136051409300598687395050496087993040232888082378699005620684943059428246788218572926541469212589195100277217408673908842306869445122079381261237912057453288414762733704056561057993143369523186835244070048351743981602491107393532115706858866062156141902506092583052259562138888714560130648674355707371167653290295498561660934367991755840319934620225731642469936953927454669531406993028041573610145682410829489249821988154601539286912515721322186053346197593270079378376383240838096972164172723583935411101177532761581152153665587245223804055027053282489104983829951736649954516753564400310146741447712073208504788347651787025361036122825635897395402323360481988451409330826578114695777321105960597009507147470547360706031016545886647354047724560359770424706197132371601449191071522321310225449529988269811048948742108319148456784705476845973144662388263737350843100193067884221482612801824432936065699969688804493509592040747644954466891723921494985429776736660809954260964688513561914302991380946706067010154249396859160104762632435309835058257991110053018638363660717264505295899298860312420962973894905514897282923570785235412730909689496093694184291862361188020681728398768419959423355512547422275563777101304482608830504153709969096919631958807633687177238060371617851508575257982861720739692296361471407955261316081071611967761211929295749816034631616678832038010410453482359315186124167701955387370848426280478680403938645676395518530395747659502333688610500391407034625756917497921840080633708996116573125581038749612708722608695363974832455640777144349527562057546558799190453436707132372638437615644198514204139067644816967594985860529091279028725747025471433671446681151961300144232284643358870382196008365889379197313687915828614783936323333626016436073130888225573522970722647310256767454057035183445637396201502016628566107289928353346276886562799652554655023120451460213659685227085626717397685065254477431903182259131304439423076254543961187013516096563692277172887319753786487436592883144541646792289381507921368295976333603970804928192887873772393167912332972081661056833099316807654147425357816488947901997038116346756496032897917190124857475234727412907298211464870601435108143299656898077294536560528225915912289393772148247272781023585194467104703704019442741887025324599246537605473684144496248148298570015676951707918722518319099904918399723976690224267908020855705344443282962513534285627787430878694007100940119548487905942843263286157577260869222704952631196049743648761385160606855662565555989448634452895818060981553830239033049307989022946987807646120765611880318775447991402300925938704645228457974629466347158618271568458778295562954460198074991185815366736083655607807968668815407517151885725213720156264279643695272511847432245327248042369383939365134184909768073044086027184361261819562587503444490222160209220359143928326388070884373664106804134570832261917745563529598099690935587004806085967091728917934851009259559781447401780568095496617320190444485472761907547226191864875969329604939040022743269826332276778375726148007906540681870213614134392514296211650152077224290221639410298425442191161084713495644726999665150189456018105548846736406690082256883313440957237965526236533691040723116637059521407549629770704788969833726305563126589043526660021290244598340368432580755452775839719942130116977233607524659141842227334946345987459791668258310199633259479468670724356211441854887855142269287331103778760235594936930421500221042698438981713084910633373381973144200582165146353618923876055456665854183431996197065674272659338776218820044184121088221944583702460270666292490482894384406178929359247794252889736833809374005407636329788912902951647178633920476267585326939687610646760366477879776166373912689538751219343788792372314473285136455417215827993923195329995160559085025103878713213972058232748952828452399885430898210129243474529582461333177715052966414228331088001418506996222338035976019589942379673165826779058771645742338263860748559778787653647218212100494191110150651094782200176326472865365002552402797358854467909741668200689694952199809752601120690665111264876416447802970293663768425273772721225510857100613552376295913585274750885030332723536792917063157227916979442195301288016599101688512087720344171898541915111022511509884920475112546224646919402610757221611960187814078540219905542391439030994828586481519306535745949207757816297062833607806577855529590143006463766536126630072172914392670176869571118755580342845031782207182935687554669196155039618788303559138327852691160662713808379019652145720164671248166700754015447384764905863438534104992106691900399616495545314568131675449566161290719697169725270207549622124366063530772082548673563263589858437842195764999952003308339107243855863563117847534935467343227004199241946506531070917853150275258154602051814184738318812366703808273260343129437232701485070096255055579201380072178118544331017812207637881963621521124708027066137848000730043082472422549976862124678974961214277638893737013237486272146453747995566681302215445856427227178539978809667453878286193757007877014302657411883186419382521411930161228108770220012663356069298733914896270820351262961755993727002862875222340447739885510066526732271055241863439251308238170730562600764164533447491738936790771007998816567943920148966490897294140953396440022938595326926947563221468355423356089437259696578141944929921739278840510859877650290161398050599264033908408785113853637539133831357317736017598463977005348837123462059590860733419255741249364117384385707526436031963189047065336086513545073869104919987078912622636425823308886077025856869629014123192087178680013141162176139133783809283322193703082176052573196513656083171965602641865817114943565527200673504065324303855909435217513999545606572496688884311925993312181048169088952104179223869609785679386541855952224946511486677104883406288991704106925278584130394419317906084643381126108801235875672802607806475776425444212538611810180010199013675185408433065054939414793415348046964045428309112890520919478758970645449968661148352619104777411297875063007543353634855071417956561872148147235009000179151507918614781269543442356883428245410687327817887810213303374957527677068785169897277230396285148762652192139549056695242845059606369428975368591585472574418619014339350295896816265804545179577877330922411093779058351345809897124695350537645488980714129466108237882109625762319974387134621938660690302420150031297587061161747241259405536609399510567328941811638581469165034369981645519964804603851686513461719201855448832270284332627708391242778145214805946206773151282636172823990358415710432368363658483404378792576808396245170426635765032701685114922842507993637873306733054697100766165546919900498928916775280665992339277211468514481536051897281242338722792223504108085015240333948628495565546906909469565671691346585863296147914928087445202531190696570034525027094522048866372166131224794208511127271532575384385054967342767080413651889444289265428168579758373442203145606784071755498045898431136430718656412693282135183433525192961313416957527975816029292052911267713544070326638421614820026880852437106008128904678900726713363179423078241616071159489337651550246272617872546729866052372947687504119986103741859991837419171441374900029425441638182021073924404778783515686342408128963541210846711394649422711049800731282607976986548987035050278231599108768675712844898146535345817643277345489458298067219126861855538655628887225820283355425132004906258145365510236118850422852360220831010834548011235626128633645333453488100041870230433935951425571151107485900113264027103430594375999923846697754216389075882347153271891314866425701258028743198882351840002190619903616198781990240383026794371886119624243174455171506499061027053524186640995944757390566590998682027196627921411232143892083952934246088829849024041182747127108247189643579566027169648493807392077266516008151304228731103619976849744105624154260582657012349570208687232347920208974534998659060875467217788695452075673020506579578377440268654379471373193809223884442914298891944340493071040468851067205045207482697265054357468317405096746552920443990283682355347705338595393185218213398028269089080869077644955585629396526417665266821025905593709244980069729932829222905682441792685583111687119287147645672916476711752483952931728240006115401868456739247076980535552123215269660395111733853229232510056113617381106950339981422082448259405335648908738285251653109213209131927824748338329943977422391686953501013928437069188798158544844191937673048076695738955657821482936665444140793085346633971984650166228905928046480023630709590179060195099858764866820070181326714338931569410272121829487297901701006288580451946352344852081121733018085761790664885771189366978507698487443641306041883095007831449814821238585078166130512999240799691553430684267006495417035577764345758966223257827349519694197696089099792069361567530689107868725874447456562244011769081575169082234380950189237236981141818039822801178667474958256930339103079824226213028311511689904854395944310509964575356312695410812780410625861495518704752802819860427165864867020593193380300597058190015823439517081432068818870492090119501372695565059903352369851509318142594209996383747889819624597167552248450785837688537885045718990820474605267352824913391796686064200914243097914575149216163923479511791795256916177675403418070465640354779349692796797690630950977543544668955083523148125467268584221896964901337843780164458099304417164950571943847113458539441099953628533908061477343580034531786025798903713844476171651934703375583816763694431835746734524030698829155734876516013522617865506155184033889034458252505224164157918984084828905416525122459624285153945480662052931854297906310027441577777359186258592398218620829549089391717799866394845390824368081524936419925635582327369152579426071914101549913683638309078604194714046184128808902819390516036112009145011958956013718267685308183508522756057855290915336731315659475590647807180605159824749372656462189144994257630385742855707727756948533572392983382619438935155743267515737058224411143202053459981008917778643382049321097042830252232116907750875324787326377614085667721582719049461619554368847934268429733269536491367601592972684294770416719668335105913103664331021040344302207517202747111685866883708187584889522474449432363937119072509531599904249043591147226423704441534056785045843934365146105398559108578793357326132256350309991046881845334102751532362643117215161247012599689361329229593966044389037203702122157829177816111690500294086377981929207604319857378192362393318763256885252383346879703900507186070360447755077893800018283497518338191473481972160191024620131195509796464392394788233303915305237851452825420741234237528390226365748105827989436264698143042760950974551258440780066470117504440341736327118153029238113065691530680397589001722056324048819277410177342689089704945976297737295520116870720526064767777557775395797896167590129513367396670093480080032280495004315449227371985192945591667380202480807881533960207202092040613248087650983050425846573095996238483165300901341433082884864603637670171157083756899742796068502233244458221854579334233480636101278137777668743208686142661075044328375728395180264761569573585754128053350279617259626737166767510370863715084407375043173782241319852990978951754121613990974148129418223183757825485163390560744628622377451896538102697138503487121353658774912820449487040878692219610917053622451032013713932464417163142978552728224599808562490717828397223583627348828267011267175918455497531152914561035446851172962771070747639682071000898157840368991601893311558270700995008905263084535009423336741124282281587388872089836676896602959066996989005435031800046497820908713019855564476351565113532045314194599843692927542388882187593983890651558162897312993653772234189138208764499557235824982666596361828132377354167134578807350844384174508962755529356937894411575794100698606588835776760220954572712347479148187163290940105284974549805674391583071444389582696361945704987216761027809989840988810769169268924803205843314073265653397421609842864544700514398672790713800822962277991042028996467638153170887668807417436009472878429325842911461303656624179860018350283840906830730983853395265076265072358480305689046201664141676428064775719825203758598750791807767016692175492215226160668336624138411432957649899325036789867518398498521614111398673920238797225264091340942007969575342641573270038267897453540897389289235189294276547403851106938588070821425168085294083485033809011318665930176944473211148704419279947071282521386042022699621663086421351754794492576681290220133218129786640178077099472102954859597673739570281153199676654971682163652784924835574533321825745175089340225208877495417775825102558451846622239969852130152683621044919493289136015520581009226296272474307863796024507275163829950791477252830864882070001083739269897497132298076383595563894396166646125521797265743739148864537915400917026479836339581458453963418669106850644180006834573600893385439340702466258431005965025533367961933094317288972386201481896581816909330831333937609973670119045510830162048143756975303545481421550972335490585388509821598563074664428201517053193070215681280270434357392891792132998239131770996685125934577504547360248117498224537851750022168784005615564467264665344912245659198179708065586180914006712436622022000483679879223941955833440538498646619724166941547899431595038862421758138621827976816713166619050621160850515549150379205398057458144501180583043846633493097812297530846329656174492374162469403759715144768413788504887543441318013992035218181928328864587432391694731375148264133151773396075190257660595326397723755259242982051872177645828275299627184827742976008361033352715753964966215398867016063664096278672655172645483319834170228059331257478728588058761809035132819869795587704929754601117020293933030428130437631667881924799406552442491182398402335224758151983990213509864910842337699310376274514335445803557048851981675255663521127395441481030312210070282023587833397662213537285176795141691924287175916970683869193813373692618334887456460485926638646525855776987733300119711903945109989923440591688500474972548708277794707621382259001057111146340869298839140054790276236454889455114738266585703009138365237394655803044830673166654754544683740820700730549000403259222116775669964276857723364978115227521623947957604661502434650222950519898326976098191961231156550818678331079307686389148163832136979579880287507183600133866899509977949595783526384341509452943375100392030526589650840703687631847979974512327958921904541519852912391923215622629182804079370732722113321295525504262387139666856670029777545470890913392763207392255114968994116594862466365627355796465225998013072619721450468674911675673992360006458305776544128872231611321332844037101192155462604600209475019848668829364111692239822492364702378045939086742560278491487732526498255615179385728485659201607335803661553730548440270589439870208463772965291137067277593111787828121554262159286111748782511486116872506352854624750772764468157261528865038715882806418660596722928941662427051921154214401537436214172335707980130370410421290678645091275619213569750149194623883564929366592978458101474464194410407268834894485125771335856455593965181807806494587451889736855558040943608941565165463154220741836842826219996829567582316411153121299599055927548391557819251579379739190101327139727596612859314770266648713225291527241117825682951775077288258222363047722711138082243791710974889694716747599238217199713085574225688533070502307567778328641095649156305198330489344539700763768470563624794095187399616370298950456980136824007009215647864729062030114128128310812905977356646617554450630806447318626164347108499611494375719413494710265724227502582105945100980637541148355113428209273635056683432400283678405404998212168138355519421983887903291078990963268654345010671221399742446145260511039112938209017921218398436622280526378405673799127262563715302099680873190129662612434593508249079373901716388850409810248885481204955135859163829001798826032724241506059138589840909432366309925350576768153640295688553046106479705469205699934815934889628136034722678160643457089435025947006448062807384969141186178957961267473384922835402243716635751441467163828449181658158059180267689156621926446770746798334666992886885595615740699545295135558170727836223115414367966178207924511106498787309419268303097229286169306094956316186147247572909239775251006356914875418769703618690822609902424789711907354765800368062352443546373740419559774204319839663660965739026489402201241893358154209952450895210926576266869039928444780996994785752568518528312245528020952619081255156294613671835026337921920465326498905855953808058444077662541259105021147456059679108684176859235201222716832934660529538672312826103874943723119792394821595112866119653709552019251468334203695494022182507199177864294852519298676764823815138850093579486394235841753364831495987243043521876779088604774137592480169593330587281078112393389032337356172422669423565498138778634421441907348776219995051594605483399574447554766286351934791421084615653622480068551227395970737388005464176949658315871277295266990414652113589392529093331044780951006360670247874274261384427030097199849326933393102606087331912472633620975671738252920115469947489964334205608426682418043963268434949219522773434827515634195975614054390597406171229994826055182483166924746681137138386821860280446506698470583633673673866144602903149849206423491075460155764574687632943194445323475123642024578155840285226993966053114080493949830257382505508087199781795209340396455355735680861301611658412651916198657326796634141042071932996446446001188441641179690765976918286931558444297540424966991470842116154798919795072208982648438698515956003816586909140083880548960627897363152747874372270575032811967499543840001830510478530525732397579684351050748707944590714031498156940216338913662582467394462790581124234975416314341592950869083768257334685387182903213503191287161424927625888847951733577184242222046745595455190334247409433470400656215617315509267819690084807154856788939243389850675800492526373259326906024635547502558094424878779375582919943158157127809498076585593155655960370930263646594068531696744767889923274912373897746657690196435027248390787730302936561074619743722426110976191744390475417352933207556692789600644694744939263205336801078582257444170057785552579184973386436763755530359486227286380584621138421216389146368011168418040043875921339093247964303242207934719251932073811124776475608335912460828401751386942244146023820227565497685951435525005087400165662534662409498887953732865171927207320860659545292602467995796266390643096160200275913353343313012808790133468758275177908106435984142049969434791509797863712061740936746803155144922080216097519158834452108876550566304721498095227303561808268408423224725853001504936162333223680773489412203078742615540761711575041568842717088374855973905855679950261564362224801614147143210224019253596738193878389572461524430235867820534558813196096865445201554198674920803510487246681577612282669384663069818911461039509526831993476401078681475916518436093152848317659639157658392730406900211002619746569486495632967572542781623005973798807752257554617164266888153496842902581941727721189175080110563500857114728777226238085833095794090044467332196165809347930170280960400047127774107608630698095242607433595776955237323181732932602622205061335007426094440536993319800649388312805426412660219073143735747843878282682107394413732911917552207961195569549874750833045607170757625505059285272571338017798385245413946588722063276498693242950354237299144375283512281669437414478249856162848613568962258216042120519179745867159905200144892422061570185438038196871261971047349191712405950778936756283328304474076712473460178294236960947212544651198275917591585736045564468059213626297560275669572984370050561196146123324316885850708585010532156107654662735670566222294652289568366618925951644539686474039032958021697641757122092781226610765242343414303294479542799383177264754821008753684258584594900975691421117664153955475620867458704813356893033326321381131794748580026072266441410657635926238963472040657374767051764612574721083386511275720229077307829056895454962321754307130723189802641434713691861194994796940766734941178691304472120784174733143153037219503602590351066611134722202662491227199750252444163955635959330717893284562170822485219055370093264333765892440230082199040542741910579987325779194716888470046362168295655705296410254343774524311357124284132660308717208767072007755714433548698550166003315444736107670329355715081076888616648114169879821999805190826802740309722983831446361923963020031975048295083699727727712855422392809406998221082785569876833832752578612776325306432291297872813906421095965165601186167311515241289114870307595801452179978618051909630792908619487531531879682757184844225544352296674323034260220098118511431101624216156328984420841283612391839043945610553162338524515214211693221448135950710472565318269046510605102009325646723451932507590684436587539729231347952546013538936992199078202935780011039622059859348022273908154145581539640294020384331639099177324435300224623178103092401773617129506493491734438077507268141594986303244279338184371654136690748625823750773162449076835889700946604819694550008848264295953656408954556850251797739912955287255699639301196916162367190599916780526281474408931872591122473432535583354310516308018608276258212921678533568656913619705958766641398814019173140370763834900606040862253109917841397631510843853177659416041260889726142685677905670268638201124572210923337496978447067780644849768494402039388056719460494743705204215049061858119624416910783404771125644125900369139675086534050199332877269511576068508887671534249004960123887517493578038867866172668149953999722607445235837251399773633663644246284246872981848380926904721858133620585714750217761497596614318337724923886863721191543916431167236234542715597640694400130146806854318161545705026566682924769627431455888178542524632315054406524686657963302622725459497082422327996128764796927858162813769142158360643264911379675373170127264613166281131261235671831412504336716908202509288887052474967189426480468461495211986844305714017922552515766629245540695866691964647910308482053118139123841009970107993831461411851685327924108954255663202816321624165831815218756454845823078500475854695060213185192898497760283306936962795203038882586558396697819853375588813688566092591382147235265084164704632191733710739099412426015788327830966852641603285184609832434745134571131508187691957093850480926832892513641882291178752756477792402443068678598399002622996138865361781041153488882474316316679806781647524852724132608500796542812033328752575740188449543933304699065477317759159729641896627591187981408395791443181306826604907715670521011448558014383037384443906001922707484454409287085356398374018778388441020272833997304863053150147871956005581178267928655447642924510409085500511401078242661176371723979834566603247935929460070484297105715206629807687509569489223268864093378706001503785545556498175636823301013247671083781235394196638778926584338539026225492609392978828320557045375926427023975530417131661230886076250306681194006108511218297885884734323206217447738845094497542788020234916889306127343962953348248512020372508027323976506048439640549122052855271668780357316483335944331031630137006922943744173253883159511360853536094211813394624268445108906264935442518129425883602466090174135690706444074107113076067766367442578238263113724764110448175802228431723043637339908646624535847364003195224735960570463996874123918503558254662985446588370223218203211290495164810429970695610958715468014412387558890888064611320719302696942952904541089435093522111103409559683981477696553299953018997470540423190397808238384960074531771922849669301505471663608310878125708104323048983744016795874924907639204244346385969112260369939745749201460034015157997999038951934239835644624996831966942473561650496406600805197774999036194809908747726973978393170830096462510622087376563856007417042535775398969549985095425378169659687074344179893758857863010805911017661152169143391411331514282165983333377252913519912842401248916760438419805870979321124839173684122404606255511927932863609772018472097670428446644510837448210720157686314322324484070498147932218363316895927937360183451945582786966173359848704926307508221049595655165578702581841368009661018188816666932910879327580818899764246075518552737009606293666239106937235408786453358693629314850891615319581401343056786444245250234186455993684991713160907102456787754922833688072230292478932505303161867028632247842117811393745732921263065095563147729341611556872153402506531973372334168072033240147305630136587607604683488311037285684852317129041030032979277357919930596926016883555543999639845678967013219407759513007456734805867422394699306874498163878194811821169861524681531892448628414494260177104423809762144381355970026071253184564381008272316156268621374251719672752200813152476853861291407941916204407701577836814800313954193228317518393144030267020180902370318694143774968885066764091442690882281635097575136402926779654020398956059514531150019838153369263809859746932089938747079259724730312321884311883813469336968697217102071323660213718450297365852613967773405305125077281485622241946844780161206093365979893002795351136832822528997540961633101239127587069854632053057594192615362477512678101784536086964714355450621260594285865019595017231168826603411052483018875600515352445644553965654943315519312049893557582742419571257733983613809116886137187591256456373798970652432250963253652105759953255733535290451314081240078353229912734272162256160973464600373328764270152655702020721996803117579943871415773974091313700846749267544319476034825771761022688320561609412948760313444093209390899141674920060619042415939072445179319158380852191512409735443391982364209552190865374816771666152221563906381418255981330856506381076065816314738602554912163543357074152638106777741509640757346288706638587410962349603678023343603461714194387633175740775885589373910126198529943622224865572475220566689126236529851202610737762526833987605215441354184585658434462220177525646275268877279917689663335581898984019448080296168776441730280243757844788635206411448440579659649536587810200881245542330005758683782413986468739903458081643548070507296396350361514160988928443013845712363628200688766371440568450085949009093409276173426297365622028885504564737856057571909048616917786036690214622329395901124415642564675637010990218481541488525659067532234578724102081837632873777150044115029921875198369170606869039146034660809600993505968592442846249768679812862040774638761303988491970830432291554818034698260915516205230504594159238178967197709672526538314236420160139036515188569640015855853947243767250386469947394794250637867870299620823963735525085054531633766347931891586478070621249956881864675919925045211429896533379587789720978379715252801297357965071524125046151521760633477796560584718867062304800619623517708197295261732300784717760308711871958083583269787024667134810055933960865921871355922371237621312141802057222842916727110595353527269200939694614739041550962740129354883511955604930281464571608881304809106347271580051861011820948314740184267969930778323757118015150013193711854927532033997182659846383404890875316642115597361252706541402821027390952952365878224892496735723485758048780145576040854583434776241267645086342355092473199936398234601299639376326365714639521111683369301003299748513551055360898185847878388803049996232615980731759178742746448621932484574299483072590636579871776134071859099172089251178614012399429819828332819808115563873265922966027414904262075707178355365964389625149169704660697944152089458671390944404243644241850273505206812695609932328368365339623439895608840133105145713049187741092544332891159192019632881183614631039604017943039703387138453681962770105388916390291968104752129980695167028131895197356386466652388220274539198065085574552152350507438347261555786325139624946106172845406489248574867890696239010995236769796740034773305008880317668823348080273980180107395448973475710731576181081507739448728707707915112217965441656110565338374801982458286193430685977496500492657554753105244044034742472593957159161690045913651766547208751654430186973878806965042186908801102198661700925685944281922695585493668143641327263661260384054525730118253750426715467948043547923834287098028278552166630552677572331655522701952938925767176411676473419565685823716857479545889993016217537209474078077199442986245427015772273350894590691337294060772451984817500983055127412196637360078504109028807726804506700968842181533483790469398372737735981825026531833958775588721204139543437710789967738682478063495914791064537689976010389781440455973579444696190370985963807206817548539458238791012252923825061393212922824481584712908502068866726043067870028402617781793017098546555342567240843016506939209680222440946151781730984755244841965957435355614698295784485272185274736152177405456213680588583600416673147405014401667372953750390786144535905165709035461890775157421493190108650070598406615351254435083821005611398508080834396903966223090944885133557307543217376380126713617640947128464319385547777137369347542930498218870022379406445765471975118743048550503957283191775655233630768828364261048642459294285867370159059147902322379107993512725997569108650185358034491817369356242953308214453201646013778723025599485845593144240039858926643855484658040378482852749900064282889829628914068650335225660101514181837307832605734858145406715042180809447311954585810782800159876034511747740852943626824914022128040411528255407052512751178788204688997459490561745121633618597720111417362329608038025045524798099012849884583107504833260691708352486174083202058608140736266411922506486579014596588939328486626794753010339550616745962049364294938097138168430139062949685033167917171899583240529514321894145190794460300767246798601820708789268099996782214268175607376501505935725616902789165768666428411428644759201885403072035742388115649637392273766072034067066836047881231719620934482756960234697591759030428243938582207112869764971871565826001744331098421338985025710226003266655967403829304583489414584757259719406527952050242436931696616990976256021409698824059467774790027597235778919043073047761296784131612027186118833282614978759516684217292308373205259736924533444417174128256464319576027874066185091879334792884207446207469267464438783481286641124596875608115541133006840753163312186000250138135626351634114873820439956347033873835771891189158821068890872614272774353754834975534417088742864901712235741533647821872197282658129486703443399231740291506965360744080409750910662812324410978842923181721246692913330369328311653978881531016418668947531548675227663345218883494391989648781891819449279565579786212473620650179809403059054527270000312418754993634085908564332895801091791750594519404409669445592626626574808250053374242467492429716816132896550977692475547554568875869363401306497666104530349364808847008965879535356972343571890174699012644350462897053613668329147770851022565365680574973922677156570354093646576339606652973115582357453091186882941463844330395195254123726008345024354558426845088486564322330495051765862761303700199759427735356499105350849372483431856135232893466540581980351865112255415092974293907193667655210376403462134405891709145998905421946224714741951806240493463650017969464965368242219169353049529337228879509952014710766172589263409719056998701647997808410293368552622640997721347402609985094281896117643051195619115815002196467315590405310129352145481119774626023455526522979614951727457082431281986990891408094764441046679391555882072717198868933003920493943882639057460468706391315934132850585813246294153193858402108327063418454385271963728594021551568812532812144575255083337507189716460652301236114976213803235206285817313928149337141719841528133173857904639476976948385503612741586650765286040581283243457057805669523129819172929443643259660440827272382533824680121265995842532521600556473573813266565220352533261081847671005241675323267523479412532943686357921362938845851438385719764558966662149539194337181564875140620132122208382026498204895275875028314725700918671078381562876172002473964548502928979595911921402018822992368813526874810278759466715258202644531738093879055245386173830439437068679593840071365489621748765573189219313551295587530310566317156757791549593821646906287528097797055659408509022886544847186422150687748293533387468460015767750582870034118173271757856193271385703853557715781465353959667176863924305639049543057202634544474673322757342209592123240700985869625170728952485738678335790083991784408789216760826787676743268642733360384908325329557705444479840514149379574683033822445772947797039290948231318963698444967074233911276547385563925473935553038511651377303392949776984643420859298915071363324040079944347890233550848631807568921648517767845758982316681950344992703384374844476193539485131912000051277687419751898566568669617804371133926561516914975683870113112451843517054535797099868431158991172149264732984929425081806727030907682584318627629237565527850839300857775954583679548186249227233643158681761360127369902114645060934668180759724198991519952261274709258609199532087251193159200318364863253082803200003025933569548207694073249102226814415249508478398231254697925577908114254951386349659993284471391159847167712970925394362990025928369539607169767673721094085123712302964358147798268120998804610092131022758953674202263559125517300494929106509081655471332727056701174738786278240805270951425865345171655347672243825717376476624420019677819331523768355088406862562476547741249756370433512327893584582354815710330634991575313171585795605165815136590963715861251135097661511137749910716047095844850033901513011321766978249719486037009665136669671421943382653344887057076132673399432838823432465158125586155274416659273220091790707971946410270896701521175126804468992159045114902033222571267752917218356150278576577344447528889552730927173869463930966554056535424488957946530354749528887523033111211609874530808030245944559711678487901913224516030893107366884965525656373972939478979539441490095114846563834349425314322256563837215436621680035369489666301741421103387689385961510781469591699549501636931886609775053739842962369080795743677580070923792290037223842079225693161751032700040691904627384677805829912983493673160337089192813966106015679831063604745300664149443654653602036743765717364797504638312181888008281826801388324725225566739203772217756865891640761668318660543781205981508420203458439986547361703821535086907743592451831666320208495551513908318542321531718040176691722978784230875721893457959082137413357399334823283290759059622330594673799510562731194540537799761750279856679392056994363194366658941644152015083417351623406505985627613141758379632452482237945323953588377584565073295556648376074526129777741151292809656307435269234045164523155567883851077445698600618137094985705949672370841464119612277800066374661828457151438242200240166477745262294027462123615845570104055680208032550884686488698011711225045867216942109951493805030334280310835222185020914409600614663961218118184900816140397359891170561448105220559702882480202653538932575872323250022688488554885492397666398850206544345620413469179447361355046047274370576187399197914037129269759912304467516373843235409058444373797471218787377981364439220631442839412729021000496684117090350001814914005557388678465615853630913134774908556069651679617295433511020410783582755714451076467134887000593626437149925444603539840462664673307396523497742994288425818012613448911961058885046509661013532499586195094199917968789817330161153763890332579987211408291133655986673047563045551888328938721768503903160980468131002123600368117533979742169204044513250418614537854915113749997060934434575709227864072029379899450242252216814463369253739694410259682689715841180759848631212321912664685716059099876158589803849378356298909006304470038599099114582994425321603403718224022636353205658630564691858902466840876862023473290471059111041641764431046098118321496026805653627265093789268542110900710741912315042394202835702124336084988055333012153886203603355464965369420762800898693499165884712381333640978466847697812241717405679054781305954304864919969392607975731066432224168635520518935471344380789405975437587429822810041306004532937614718583622213181487846501993316444502886319665940467052725919309019077662276524719644877041601480252922268903858750064967439283556676685839712134359050300502472430295551918171555883726661702200558483631220570875556401780521226856706070363561426142502196253265528629912282150630344338539174971451010475738787131627583229167284294725712174383716115392879581594470732330364627440021757549937628949551210106772195919390243738142576892477461795024073294183733614351828603728024107535745277555316899996113731345529568685683566250301636153181883825567637596225370381756019167665928637683621100400182224623851819297200280975989772349248450004729960736101612898102172454883528478252561737805233134005224721017342483958411901197376459033802160940965984719152253156787699753474150900509053094900140954745281275940699239315270978774836005322482931055063943005885701440222256614193344362464359693202873946421799512808628921974160294339667932649477974322250541364563587244770536874163564503146451501408721652359059300730554353020174153624858680020258408170989562754495313816510151451480636280709732313022229003004136373029767625818712899595114719503286659278241805470979283427746413575330202668814167347004832062955776086872470878534630283420557560227028136674441844901198033242616090768095760791999182373534805054513484913405244262197995973314846143150991783689725194079685080385702962702906815622928221367906313709188065135355867170312753017693767678224195057607198094184005991684958311698712301414341842535794504568750809573287699316984885503738811997643910420083723452939821822367798477324176513039844735464397320128363472946851915685785411510901281194295319538537281529485478029767661987181625645837768120918438148660030741472383756417214751142553170302010505486563591783858429070548962848638109392046429299285629945899124702210643006271351454321983042647735728323517157730338928610302658302801228023464613320783962942306341421476058145895391128641987541641244972973423503772910804428662444711281706592792072533221392351905070088473943961633165583566198819082325923017328065381137215950088400479699039409846089891307625554472351951134958811529807531503547951048862568045547679606378552312787854410522818848029574646789848531241134196622941698716284452974176901112745408993637781880031682975264954088053488422457562923327224702387763033719533323586337164415713753753950392137072927801577685131193874551376479669354935025953443908063797122601179698243215531874692574932079951570841019724799623611658856041417959329663879255487330935999804150456207150408937545254039941383300261653429087088555340795195218550375086071011673277313541549417144406256448175817560052669441318421442965389914942268901577644957280006567998990134043669837889968265797200018329153291764467277274591113791787458133586994032555564941509625341016178687311990991719833963532213294484542649563734008253983505008730957601838211824973963977649958535330925080027449858887995179754025314071929056984798288143986484518429545677540791424838492897494237827441531783504437278334238930584359222441100453558716407752764196049787650323345651086329341984344062149272148512813475735930777951733665615415392977440273798210036241351212073509686249817060380600688959390069075515157786672402403592885018273812328843152001174975699333684123315947950069040828906522920543373927665613791460959913823620911081724665168777552367229168115610245971312333747083849613497967142352599348776896930464995945749544672785329315333497943535981071503270830501598115712291626180212262497786063516346641893119753906372922355208213953720709277850673469222868881896601812149056742265460498384612306868935413017426124473823147076766172121251933483576494551325717941095490323145000350755782219273605168890537276917005323618840511415085690925016236671644818820392576672707684024291749178915850783881715287470666422924828669504453000643109001010929695202139041230294467035389947752219444955299640774706883988375574044168859716998803870791625345490755229748735249972398279885891758268271516747639582343820271201432026497772939083545141802608926138601402913405925723356630398816776575194668323092872382130906466063142834637836837066563038984040934582939960914204285840183520720607584535653641665919003728932393810440549740351335047548538581156662313994919962188037208901131120174258534605682890960948707934255696073462446071207227810520073437211644887697206274868986928114402087745394572838262753275361470098613370665221269103440198352402436721365827197172445632385909086844129306514851291708260436904596379074339510137167910478513609383586004619033397859199275816541482943513018892756326161263283807632650828548860736808506848512880925670996499370733918552455010504686859226948769182340982056140463206695416249443819546887492610702925795807984206058068724793038533241507881994868675640032501764424421936722414199828328452543580519414712322580197540838757981226539434293689036866625836229077209470897561331406350420581344217255218575421486632075966253886080182557636284078205121103976932737408049602767920861798963327698244108506893916285593057093088870109927473600653564880270087710992289079664135947384975583663080280948622861637906755525092872563469900542783598944246295816359221260112793567098463754239012317783953991419544180386881380006424954713097333129570069086829704424175735955326222219153038090259695985566469165656607195594294978486568703825815012644867902713710454711364423165451078498742306117118581554747129824408543760593903176627798844475606018132746955896935534101759737704447046817192666476184861027425339022570946480662788043745568533891410068399049575015681043206860649226428840852175128743648984312656885305053512334595629971809962491006237266080748533843455907117914052352408240318311410921644827530641791571134803095037418246774476721581146503846492544086731374700191712909884775625469162758178711798213539043144816437043697290937319805188758667886976518185635194821725402960271194825469344158050048811287477352335790443555447325063259179249105660659800464016676166913078745336097286215801805370500449391910565245263410348681488828723688445668294001077457794055415677407408145514629912151124027087254612640266498966026649541980642228108402102743055096141029316087793493239977183304479981045893729655395336627534306410072103447646284037024146872107872305471356620033061737315678133625274142978522044208272603680761152624000477530667300207957784288298703363760562906214560049733364387366524064869973330140662781367549158302705884829879211459107511888409220316014341598484456086844345450155913621433613958458312742416814811835629265746033813738800759213243704118646000637684723912994528165529773248714452163997837487888974517864447816870756309199645857418041466336203485960291425181387481580548680200672396320197609860077485754128869831621515573296934042073579243030151262858819990141151114025505211038830901921687614022019778741701138054336954614267892922975716433801838548984022441442877718230214821876045613684119366694824125031245452037383488001419586187666947195753638550040363230360289035576795320999121085902978714133326676630092013575298778963178103006492154659095131615360667886271774205279407881866064062735394076258926946056354338871350262197158240388485030552739402427810438897444484759613194520115951854848103683836734771029808901142922811921059314996069363744966118160177683855016112234421819614740862654074956187296525910199701250154343039604919105330664093131834178026919147740421530971201584138603950014016568247890332815404219919997227073059114669759411427093682735223161207918754774210099467231785831604708572886503010974167830628632381422669005682357228485399263801485588990580484937985694191646185097206570709076705355290750272544532108727881095428555559080095314463902625930300351448107580873558720791234234370547959215065730102212956783851195115152716473019497465238672257014233193425959275173772556456656902600921817509445410275081194947241222287476720448599480697941587513160532075980005449510487984069293426304897548381505366729675263340678314493783317596127299082655743526276656313466802753626873717980895051553375462019679207128089742354838831394595346260402938442742815416904173165279691636531601204045033886310986929951606405843367048509748859313447677517795288419136959469304749934285755418750536805834457350256225992625182040395829178720462673750265785675484723942838764183160225046470023461556628267010352520148269378583064226347348095544349486846573643834272561935289152853333264251059075346249081482544380685686772364778174831967865693309995749452493622769852661850334966536997023882352423133819398394457094932782158864966985744139266590701280630374887971097087154451814043693789594462031017653537569108138224868795999065610710506542299141340755016939926202213602889297933586495620126779748030362739514924995191162403554214321139914249153113601857911125502197878267292102893789610189077585231450298726616547671972138666856079524280641577815497217999350470856815100656695145569949776261296786088266463630009618924534020307089034154690898270213286684467005020062132843369861987538743417944900451408155855349672973332552457731439983519067653693436827780466248740646723829101639091329455992711853855525227407859842677670100304064870856687402236905091962937029891681862622682592056952932549296517140086427998747497201016163744936044285852853125345404877438369429456070236918487034694290476314993341377459876622586269391042948248886914251891174973258697247519182972133979028083468432236091777653424645589447352186027752441849998903573645492521148831291967658436943943592847093121263873044690497121396618255153010977261383731483878509912077623179504521579287815487224446185544687399403505283954662042486718585575251330507892289665880238200989103977866432156590220256043509889626141489225957886194929607181722241932281442661455607353025057031472102624174590417534139384119915832873876968136994168261284804981412771188960353139059905997388021643447864196954431592399715670239031211663047280616255627200875669515030267992617990792380945327651784618298281796869741203615432106300605222641242862348800794961365507887867816601246915033460970889803931787261732879605580448237832893688265625203888604555882273003236912675539636615706701289877438179274586377934527968260303055482772970727022851857373185355270571789571838280710566802823698667549389607200609519419298163034130161478035436022037603877712341478673846129911681511704553585562964498783987728623249588914689813502307817239260310435106521500309716728950347886939089255676829074204627140582592657900835439439483724834341629414657533131717111311387827158432937299621368419179261627947319502504933896818157171931726799485930321816303697489131683324178023477948930406463599359166450367585198589127310532459551931808106247865731286798998086775075094053947215501414152116970347848996373407787229141864657363802192593107130199695982711810083945606760432374713735353722157920780585664989060511575027900985442726605856076238571766596262201293183467846144109845682262172980996840777590647698734719860217288934300469442901404518277277816547873671084963967121679551617426503903712596780128326312930325884691192595931290349986175587352989358904785914896803753890579817745849638647170613576638819880377238360520567908929349520964964357304749002934135072771856126679244757170856932124564923604610403260279315074345910740118079494973621762963198851101708374667193736172474513371263863516094194146568229577137485363812247205236461822944054681091268762046930428833226004217255154235782139984687641939110736663595028015072259630650706832655186310320084355270059891808135934875905030283917982880620152786643051518207709711975555946671234750011402876940136142220863710352596285691651642496608326480174030578713501981404222758571354215427924359487228279847715110068801716292677408518030968969903066497023472347934022674334517698682611860932027514111213074424667258361456965558599086615916457032092680064001194615407388645924084508082404341618403500096168176489466151392949350995093814615435991098223860613527012647169658509561494613666877446228743386917697149071733842622043020943077705184879245829209527578614145697574543665544014781465995418598045619917628622299508764133763464767219140784808228162343731095826330699831789821748019241144825252289123070965542022827779177725390844833397617121903106702407728872869975891193005914040697370113152019318923363247283831061720054417286542702391840935963282836167722455210461493927668891302794269060739443867451102561168559662359487375902270930976472726422060086763214126509546440749043807321029087445162879362762798695353586791365395458480004872071452302826959299999156435929705001927245126714060333990823875340473647771678144707583739182558604892676653088566670239984516384967778682000426659330908053302604211812845846365271815260588927132725001167622445458005724411650449406324577717771781424140755599495149659715154922595859638879410148063134884984615763635411351447675685411532070879107894708343697278081980865579197355195309616630939200059367375612977420621829752087239081695026924406775642075515672357333087738743636723844540634341520343443067480578188920767422809463202196452561025780621894658078377056323790388425765652107224994252184696329728409804763681519785881304228262080841299666665485645344414503322431853647048357836067650972387803471317228581051419229796263225878164252911140306067330520379566441083950123095212966019667435393605667445721391688900765820134287617347725131537280997201313626934919972768755057281983574974161437091352447766104831520808891084935210869985241093833294925742643097218522170842122356330254750942245782326859548555889445769528422877537845383013031002470710326254173416051676429587917479042182603680648221344496980507144256120105628837765236616860766201356608553891989844427236833810296383755513864081976585661073447516808441260142330780530071505519584483939261488981844556094001947464110323018542849291055342076365257955500823092524848504591398701753227567347424658010174171869262725605841822787940269773643724443998093737730161232010297645035351496393467956933428609110185463659160886763058162241362436752119288567954581095726622312711471964391381980683756010327481341958780587354801348628944700704929240980673017796509232044781277745956609875297891565366031725637729811569416725347072597329372233432710790196865101707081324598539466619959583240441132386310510128468346575943880690416663707269093412779372784608984123353595643402173420323238734532581250163512887579905100613844417544916924959152231416040090323595883134683525759487395621922492856929405478355721594334498874359703894744664649311826033316778657983001708647428981723318946505782892748735249571719868206160376383734139286566633485082471892028691202639660878651492456224870838531168659426656570441150174347211387044308941192687311123464136602384387278777793979402233707422057523264612590817469641614865403908786828058290543208662713143660139491989254350756396730449596211248992769417042668824115664994350646380607418541294662219821274987943593469330942337286467711773877683606934162646974462059919782459525008414163022207678443526034537974567391367879699879229989232661265630093070084699417519971595926430866793971442740714171202685305602478264119130557052074960005361747917565887584474241900674713788497581308605340884891752121610712757358557686789603919550664062589002616115854391041994332262134840461136441147866516081773848425499515483044412454258079610867122325779697880731490789945881468448315249708478373002031731404281904342541422530388663223520785495269171560657630213157646224596618956800797744708423234925828746941629564269537426994791578864789241411188567514946921162061747485576818851188116911481056133896477274252185752862599870764402444561208237720770273432983094237737543552151673276550127565408294878369335011573725753166786289194519109797362773664050942049432881039666227805449093904998492646230853177755275747221915402699405770593667044162643760622417912304633841669467997755036556795790343797947505402886713333515906318641913167408280426384482105444189344577067354997860679576890641329846631991577326653829372893176554696720109725360360378609726322017624626493216686121875153936057067701364330647802893067050064106353631626606920108399855305457108470488334734461836776123393616276234405875517749932059049938746630273838455250628359246048412191701321012169939618815031913541394127503004782228692606326157801285294335035413113892599149838683584399764583505548466853111815396419125063117105869555389105899998991037583210201591199501048571834676747567798224747424296493008705127042383768065604543633381818480705603408148693095425817705077269121382068184411739495294084609457806377129333412306476691384381432880849736996107558737760119548844013934458798638644679148156691610152455163745587603492593400801859415247681776155520759375541161121412061010878821324805292447620306918836420658332918680800410787913071842013556431674864172440008342943503809028408590766616706130248652801524567460857795685733822515652690772828033715764716556964745796265038981885730389483671513481223072074442204071233492232812071743503230894665322000718705004326784355785427725734850323488141129206534879199699922503248452150749215073944327282652584477092604578760742268535084227473125938193784112409467153194866973034282598481647204385377479331846667732431049973872517459866775106264470667770625130942846953900336951126454312679602841195025070615062862959450435674580132322796361808324052333096650651387749433737399167892068471154839917133568141683241452716605062236497192665834575196667082970465723813869241177927542055061585506265927507438602119657484227947892474801838932959171864043789473591713790410466024479264743844596573118457562277167402230967597406643731605279292754286868666756173552301890056204652384436693118065468426707530009220662953062433252575880853110334461427697790337182366225301489794440873296339921701126965694594215204905653226921437514243925462160345697013948368919895048886735336145437944438876461354463515234823887165921185602790982546691414943727132547952437586658332152874681724157946063700256361255181771054218704216772076657352563882106221233712451010720176058969688190848299168566220116617210961795853295323087533409236670634063496320703279701895269552459646513026615240269772133221270431639921599181799760842406981774452458054431564086832334514772972050908151874164570792676003775216045637904902345495148630700711096705355338761077507844802705765253808623173296654739362588980320772256809273270743369093766861854893803807102417100440097390286872096199376743223716379538426201632926212429297303038447721153229367036562003103033567207904125239057332351833048758327408188477186170952034133365015061747585841462308564790733646193938701790455682262072542317351748027068462745189996071555215600934271826974972671883906145123280950579917735734277846111410410991968915779677584066930531342372608329892122494360957837170357706435610227429130611297552363885256079833942647024962932319226326990939568566920313692991042235663235555162400464852060955669682417975559497059301599401617305374408401203364514652885172331225707507940510739745985957294538631025044993931342199970846163711190458683614869156768373599935993253505856301657131295863932537353312536320497466821723902957925294713052455308566728922601963973180951977593055906501777825290155183158717971109756616551361294063339276499738438347451912826904353678969241308027763771562741120315062207267398786449527742803959965253230355653231471282134456041422602424614569661069360287103049470216093371382552391411496997191038489904078412919715720140539822328503764025972497535959763035965694784208476459424577036629461240265511285384150070344392357231047450226931609055303330538528767160509434757547883745790266239327776418798492533408453431699416110436693205863098603822748849097114399707161049635173331220352390757810414065733402896056155984832935022312213743408309401982890406545826742018841366357498901756406759868375857324254008181434370838231685599283587593683620455794821401461104124734273669275694526303286535505690006022113961172915734732072347640981423617439840300247982232682422114644387241238329509479238071553417720636950821356129224893759200671871016655875532490723410872835082927248297250387807977030145245965013837239373723326777955711792488142475463234507330523590136494141226202556055989346258099454723205022342071645473423644535100804315859373795882219317446471999365307616429863134767753044117251781720895580348336480567319743513944318037758951325666170296578834161284795478922708676815670526026023680074934058827160351289224289557772540113680805133292742593830634855225317177026828605130117932633483057537457916736160116534053471299977721164322755633213565027997822918803879944758277182958298428694449141715874167205301208849864846751525564613479351002144522007297533834559134839841446480530136338390550184084879421076558800866842616092548711828435190067867533626726496289727961819750298836313257065103827903762532779683043833378681311186711148247667810770855490485058629556819561141586208278768341870833857671428206404945331528568947148269432014381254994537379357507177124576493611564493585778029472762834082674029675784410626878320398368226792053480385626656802725169697382984257876493398440629853083877325929742088697485989183504936168785334794350674018757744554681237007147754280634023437968945585362900755396751250134457516355946637457441805968882213230147406535197466536099887648541325303614634235952300754855343851080756012828278947512942841139452728591341677159009723754890679778653940716118973009968764170903974130582199261907718888093990926810711854625189742578638366077013015541852948032376960020824205155532684184705821092422830719669992691178662266506940440363441074064131868483200973099650561071350289591267639860530544037734745544672731735526563929724320051683761014127729303074090606839006637738720624402755052712676976468147509241607725440223804067254721162379229706079839811960485868162854399596734438026124708704487663575911905113557011330183319490606675117628061355874994962122753820289257381191666984361189914777492243722525838075141836484083703192640179096969281831733369365438637203179519262023046208251265069885792760922840059915967486984660384924658159639701065028093892212670347035379810324629705220905242791676819065901409428278283342432023383692275909573599478134500419628231086372563905057486371324359288102341351370516276453605958301404106269780744187682348769252159489824382343461944091838921922453872702105194994677586556378194523537641172757912774143885176128084717501116789877875485546356574772434771054245014209469203561962701914398771379488523702863913835591494061135042073466662799188748894630455754774392648832493297897566247061005272550676425880057747287200789974570902798462727911548150404222558545123834615268078617447946015240085002613000399396022946843792531392875998182818897088024268180913406704949695274907480602142002604908037439709221701157774259289853990256568154686935272576391595093225832339911544359300038563543078587778586354899046665898904481713851221942344758789629785054073553593166208050878079943894703340409858982828453579566814433224854812280623298476323959484509098029165626185144144228723721903679762798800357353952728046409669239000299779750315988137896148977604215533642621261469304424608788155389606665659859278142265248539200685690348974609411004773031975651584859231708720583046822506435870021336113731361794149754251456604997867276033096705150074375981943836657522390007948686780968494507674562644817041279295741505761339727727646868137495202385650070998079094821812132093868154123153355712893517774878614716793828786301479057465299051815538210760285913015597062385813275644180006471969085737923866823507963307847166002645072060469710170079078758756936577190686984573210002075802131658669100655044448175850474286537008859550485904675776384743691109196040861182678703817512991620040781390549270486624731652137122693152515712925196478712977566924329999247449592668457067284815309660504915933558907249731465633035280897931332263569543290130872805754829009679921335637525109283915891157306769780184695650686509093138409962969652343703882149209232258623549907225420596046978425878675905323652289830648912086832937748104645276759219062976559289349892641027648174893677511113380439644738105774845220068293783882732735902139868777887496867461459416964334645013185904719776421554075239519572886835067678812111118723285982411882677907823546985798196272948663937149692834577921222758361419509216709306334381493944015949562034406365975955332059454806006596759004436517931806879209625768573750417611150358894627429653438734799639195432385881720675080238263526568800502015173498236793230412067889292494146487277561550659251575687495687819103974846565562320997365963945502783260858222690931976134240269286170959943960479360548656492606512843143842292617863621679137534645406981043240644314519624903191940915889079393806469835026498036979012346489005942964028472525279160625088301284471934688594063279932293374848771542182543950822639903276964661687698795776115549523969994563221427246079087034734358372711041963103757052874585880184277957175374886566281928460673309741855168100725100308894195542666919135762596337247187285511601545634015915251744706660999700986679368511678201167577765918303309982990999606641310299250113057701454994585024706881210220245550075784730520323887655069086484696930123526688613639406479045189880448288246976892739109683338032553765132418693748364423308892448759701951803070887207654442279078115867040618920396322420132672586565308671993097857797440285956494097152405958091156097741780918835400797753923307270530876401502228587874105630969686512535097940899025655375911116465230971746008007319219141825278107664322443909646509391694472060436986557912232643308000177783477064774780229341888954866938409301341395930114297754928840663676787990828390786875576480119635271803864968461873556803235771979106368576941209641971367758941808994144035706130553510305696051265304164974264113253004781553199827446589098098587580861471368956616232193965379242564871565612028521693012670176769856941472081343269631614882420526814466510530376182738927273381021395097122558637563920705653351327738583945904132330140360172075586811762147845504300889250123880883299349690839617313719695851180492603187334572462990626860249188454373279403281740300890166068227569893799162324391128805806858005100350905572824160329876679610914765184659146918902232525902934210282269992887448520262022159325714535747555863164241065804954873161215326584393488849172194090045840914100401770887684285375027775236871147802903956345601761118522105177322707630045929527992189686785543125360100012622470410456771069377989504233971823990154052995720694720274650599522689199413745225568258971756503038058568044735425692729243670652408631371080817955760521142707590444936355280852405114762757546036101447085790900524766988464024469816337111017675095980266558055302355167825897895673137349205607807357076584372063444346049478933691054018192779092971003244488211596402409919776371456795352369668718298508891011108394606634050916334451126526115117072047321453277095106058796397851408295455456866553072229458677842581172208041510423089962185152020594526216731708112411891689741300368985721068911523548607543777398484917548573204277942531112627650239406201810869392906191682633243729764064560386155220631333433570945313698936614379777348956800199341159618306387393008935745055531296244891647471215220944877896632974300353969620426422516324168908093995250936248245407602191310123051828862496831277036828814144885055499169020859892094300541087938670749128829700879949670357197005363523507830565018072117483629367672556769722582023420942329197757501334274903273902077145397016256122335970986911332531110312919906273544497006545075881030511671438127162885861450049350906655378210237066744629371060208272982641077603531315872388800132142446176351052529441145624638191862864549378353393521798886426985053458960455965414796013491328397948044569964681935871017447837283063348461004274338589454259718672890906596842010018091516490124861474342294367966433984894826037602994150517527322396970545250844457557869120271935100316413111565152447246769706456944707356498522234188556266790024750604121867429131238552874155518244231216020336120219109549484779124748264394884045509861666004868444891606426023370814421890278381563551672813429425943481318731571776155311730066815352184074400448098423056854005493431652224662645509338163835394651129725769188352236413307379526938368970210664610004797742151546103056886264975879162996098387734285582742816627605897803560186030264916171816689848011408897124993935497274976919691263487380497201903729611326226155777450605107433242700225723132711142564689890351234176941238466483932738293741831168700271144336408916492778171513942043593014555412720068208405626132188088867823380919355916569512572958308895245864250647519500657767121669523054485623642728951185150363950017487642172296637614572134488699830361160340503146073730439332245199742029336260654271901310790519021787429626290452439698761625939367628883592772221479908948744269634997226566997051287910540264317839535626435409326446987803036908163735163504519755821160353614036299874605027718905812349916946926061008574953702236635506891791385581417386936235764139630343681663973030809343261764720271177529304870347218390274405387331057355353529746821868861220706514107498648865741651515855543412817717854707989173562201004211557018991227152715485150778947270079791517785689245708196618848977142248943188218525171343755755150077948991673945486655558000721358029911687324973751202744254841224839635994451097910250413557486876061629762020529778089304671663058768256097763484990758372964146835789022406812326505759357671662823763631952529522266522452893161662478003222704097330522997473236730590781222465426457556892320521970004413140983525770748031146856887010936789919962816248485165303386340805552197588740372670447789919902394134035886076036638504625074439113974672384045922295270459572154212482012586438882422755437313320707912574992290163566576768432768786510302375410916369130416003546185971512334486605665884245537036409205128868570091027394156937356651598953329756544785427245669332108145476495034567166345846867465441187930338203548157287076097014299893727652052955941724733110015762569800595327371676732933997159400249031934425767795804863348247280495625017443334593876274409064942691977746136150628598237291197970851689369049058864633775237611147477764691680302761346270876977350074307595182857238233954489048870286957010453106944140274366978281583109296190112087154996550353041974849623601238070110142290613598646550680904044760545135864945160072370616071601463074140696772330800324811664977566466621709177001546040611434152237187509487389091309377809421695414231892278279689335432854164869251553427670258430228937260538707273519619308858166824319572546372774151141339773997032978993614303699696871937089285004472326989696107938757982345018503505812464259429525274918922335588981452953449427256671157374428806427199107231316502320089938739404477701678607286107759936460785188270842946344421760684265114821099782769935331852133862669375909605829015235228494198520687783507315160070867066353507774528914302599635893941626019423616812820535717723455314914889351995403604123591176253679537419717904820796130826037808148605653687497079041170888726857268031828269848250035077908848519814086223412772879013786516280413413206565710990472853081732523305560392788421474396519509944897336117895901093709549426172290381351320634037745076334882773992469191338041310486885626241192699938467783781648713381264914909543410182575714101775481427024743638961477322639421625853275331976479284417330483287053663317959219177690647005909356640313597515344125091272484263169028106442886177909506198781608915074219028489911965320252711266410360412757623953728251206217177064345234395349135264409572683648913404484435155771090325159154945215258021372872011008808239610470962807167883046312071434312236191259946769934735015602100499985060574396682314503328085183009922874305979054205171022008079743504692352235971266969416311921881827452275894267137106707099406360735548992302993707197496382989749646483466288275306262294591870932912307191780556924853959735775803955278107813443719392897238292290686360344562743588238138219716283102578558596571420110756681687945845773554939140211588476833808201480323773551784747664769322325988038743075248143114416991983980679906158492885887852911022848333442712813010563448457091944833294480750081268524288228552257069233141101473683626741220278726764866801099537945719809451858596979896194447626411649883580990384456183822017659202426441486004354428394859594933199771919650740448352299239976768680759443683476664083058618307838000646495194045092710138831461633195352600401888557809476155949136346725224612179744011506018984900988482120034251016838280888950286451887730837567787038122931182545010389931597460976425803977428128472634984655656288338383225360121714182037866665547763221734630390559944517595102508572012221879738814084671886166541183777765174893278176744907942006455399684294632567565070722845912818348201286098767023613901517451760368416569745994871976889975318675735694038560369898336567021134144881993343597508073706850655951955280016516838423116099352193837160102030705715719691534392997610428629268471666548618485113957718257879697400106717167853727634471144238790096750665088236071184689332678108901784181173866408626272702123436796916113533302512050709947500928208877362300686726397501823802079679642175337869983339347948154768728880675828426382760977292467858351482355198485491914574461141939835877992668459445148704618060707889501860892125013206432498456011748661744358071361574261973701098978798304687235175800849109587782085303124744723046283908650492018599646590474213477947641268930442484186381471155592648865515992628696188153105859081322205074253011805609097144533082030573259276396298318754507989072037094924987027915962994697727377225406916196735724384354215694294312872216321147929671089061514269645502782528631607806727906392248521032985035812593831194223620211514587548717312707983962212171434946370250751297136139617831444499045528208285028258618464534636585879423081809584060721456933046428456507115633669968706263131089187747555675304540865150728507714959251710252302971618165275408879690384508526120710647391831543358458793574138084775618271829201032904195046374027744143575407902482025168507724297255543921247122455218179544172949714826232055346266674450535095588490680344794454557895199717078014854826759852166352022734498271312799561245639844342853972471900118736709314243142643483608627411654183335120572187206605640929774746335774223105595061713348164479427827556502047013251951719762082220516212319379456825560755420175585718170379790558117148294236083468136674940151324368371162432124574413674278805353742673418158013711382040522377277320584335678390297011323269472442061417792863294926412412585371991259928996478206431625919615264261806252633118632371452577572481288726043081721953197790763647671646972851685764564807744645016974030566858993227979903372619909879525273975390812143617272435230547187622580487120926605563985831795700827166837923502581120694248392058069251779444326917116892492939030676203573751459361954033368943109994952878848964139143016567632659365233136197588857824169078707810899352121506624600000610462592626042648858011818734625527174086585478906125021063853709514336850882542572271275643109738995669588410410379194066752517458828856128373371093227985067051961719230415014611843695056965605430310455892049507160739755501469776490923920813961514127298308387512861413549561958359320470466309030061046755147407166743035965703438329694231204124163812961429950797491103669458660066704239657832318766251682870095865905824895088061233260229153211353184518304917286268670243300611479228275996702154306069730682490181503235265924821016657111175138424088411916719857329630988355571234758572148804519920436343947871824183963970931760129928701883990023944541937348572391156544521562093117573997495840089412854875658721502541217335874344863062705443212563258435767312958113220233857210044068904767400016250353583591375654691858453625537664245337701893799063793624452757056992944977976539182436657105734986555821165920646856278887132203736407242044699852329342348578626602458906441928983459314054694097821100709043899888712596030087332776313699779963068421412381167442243974120876161649944822171903083386610355820531233740927586768530494624800136849513782208336335155612444672151488252248217533709134148505537739563492941105110059439733678039821666731194988574833576669957592515921021611037386326699463997792240962679672312723417340999286411015899335928816373028274639871818061615793986199269443736725883621897901559327771755446750492332512259942042168520256384136530465680800753266841703735613672055406827392008058890013253740904829126298455789486379896093762753090267062955451702306284449861849410056680042135968542835363773013556600752688090802767765556274613091189487475994064035742311211544697539519122239119394302348956066553096827518198661432380129171074804898230727301450922180916379348121536775444499203031245745619355239377945595271317931642698452360878945994630297534142968361752505896534939369348040544508009943959337590048852894525886058815206399060198649625714098600752778359878424315070277802204824469885994877935303941383180823032527466174439616883128452899732475026305281916235102787002531976300190432721818316522751635402167217324922570448236292638766327178076079566776541521257113814911962325456342751520145583756870899921483036180352469772100656399660894670879472527417139591560903802914849493106742758183257479980803898932612669423419654426647634641842442019674737673828105291625702709075729451550586845362869653058510389980045214092927190167347088023656212506932699842318324752189150768127630270791177569150969829307478392321713320420820593184484404715995016531326158529559491744075394157019147039756161034023196363089639773999763533348008370621484028849649659861520723863377293327624129441330866699861587694652377786406383946611761129076068532382087782090362851730026046528203693056860582713641458034463891415655251289578114405001655310454323707607047105137148749704654750463424147825064223799422111790965265162246424829834459809666385225577974720686355552189621376420265995453676646200347114583571543139997304245317457818111257607137935403935084601603602963183721561461753708195838846285303758807285520431301112910383070406899313211575996415606072710244729515847074187901999515656465787744302947623165299972386148067094894616236222871765667482142784765777209384053049230747721713148714476829939967395954663539187194126563784773686102580021983338221965320893533125060109357944442694484433266845869492204682316258580046400045579296780506401941683183953904332583176631543378741368687248069949193219650300906131876671653399594811439143346109344991162757572383758901106670081553840013676577113164362941320112323774215226065168754818017117499724670808436651217603473806235987332888565525858791696818473312764544119725888478340035823522818417881439586357829171621971289973520133071381208479826098808307612261905047929887811401789065291251673096899126143163255979738179221188538524878501206233727973557748235221186876271989793333159511908522474289399492257777893752748356107292450600086541308315879812659684270304208216481316781559714271935042710210675242126484131712893156942114853833491498748850490508290416355028400233389803869440965783621816615639924563411345844270454261507717658206772996084754818360586786194763265569512977828291588359717398948018257313342584041808952945595924826021920905218098482653859990515572372155982040446020511340299091336232592557167575811177241966634883667018564733022338388040854653117920496258185730344382481471282109608842608393487442450226429251689384689570951145332810781871058251745979960312577190080122257977975114046773347248705456566954699931322264771889841545153183922848908264234849571965202659340599372666913503155296604442984540472428790953252161820801301006547375521633382798716676168801205911937056538317145178813240563783322242511334208733289596119845789194248610663356900047534159636848643658959746849008021077913791362445026943946864930102228585668112509869837011587894931045177972842804217182081539898510784795238647397626442692684172392119019473193518999442401151873216011038591001826313235596879135271844515011308880760976415248369524064287862878856856001609345906526366348518435352053508884290282781741089398849944759099063652214143469764284460818338721622556070668299380472357222738453199502949819760445947522993620694541707527644181480437625710358161960919239990356933596057230208348236675261052745805889134033432432830745795107412751304045194488869617546860639485855862696704766343320666066554792967536147178119775939966663872592388808926480751109528342953322339389635621293913402802047694748569042524698554030702388587334189738083344533353826091095685347629217665161642058855624650891952328707749162828112873734263727863610153515420438961692055450963890000918766613766733113958424410469365305301206646274207444777712443767210007364578039224825723696507851523321163888839798778636934544473418505829363344096030762730291458628875480983819113404867841361072839444313623238736614682965638135516952001203741334833914713246637609499334847731961559471769472512939743676345594134471922007692573070510558208689864746930777682728719486531247906636743406873915025627465578207983886272019921962351079918964491458852780718268215358816274987765521439589943380929183550906534838580524034883874598470289684745491749367479397825160398994274012633956250256541003228854080184066474760879434997300375096958778123195444077207889210629930284773842855493835526888572980461831498621060747696900222324259285225189741459914584325302715549170457593365266170808512463538588934321271712607450970146844016027875292521109091048618253010589929381461943125277917215494966887722987524670665000623206538508773197482487068687797944568988154165434879321937547736489261719843790596582592279549843556511972610464857622141370710846534277226970039661077311865931620702237810229630544836882443316339921790485131705200456443117596191889245373260096671940561843971803680687960104231044612382640875654583508192017431002222324966574439471508302066422521984297721338006961313333216081798567951943386550268596349932882645606440919385206248856457279158430190527706245464813126111779968055328134523400064059858553954140018508792387598668139883354733999880696671471185195720446132061809098192958431937288284983593808494910478718586746259566220257201820885977654841893025294977310909526763114440772475081487380469165767258419669455509944699187597218504084318860590357685927217999097321529209754621116461134425835908972659861562524936906263957582166810983635980523007531790020095681120670230913630823972558473723730751080211417723790133470874223199084520513889987343313051663011715972043422287546191092621727429643716140625374020285735977215430238830799997024359818081924344482052228351800667507929737894202126672455196367633889711126950032337913835364853823540043245991558046015422604481206468525400855442173407967760639696750035968384012979704700392836707282135426694007975680498690463618131866243102611593370082339861937847221600560975381119597407239852518746930208424724874670175768515259086269084339741527382031604730346399410215232719555313622636021872504540652902538981245847353221689914689567245802035595014498790096558205733064753918708304267815942634049136098675320914012792615018961295768164112845704174912380188005351370912194671628697484231049006913476576978868516235979098872656690902485756069196947031787166564795602108585059121669528449456498660270840181992702188112685591802992227784720236599275482302540396895847127254276492028998695658251337884346141798952637998482903630777825239529763390036494931994888963307910079274563177414082942936885850951203864954601339462605449531559720466365734153276451750373331682453220747773581026073791471566767173092754690442681102100137996742642987561816351422154935655680622926318356412487133441565590447570941947249184824301045817881078358181876549193605827727584692966045268029130354917332360856391628850054024349866185095346376215328907234799906950100335410277302570651021757636912866589264176686184098532553786376713866951646818165496084397224071190894581403458341598770364505208910992627466310158044570094909532461234876371696764929945373247599858811886486610333524905216213842577325321777904288554285954936062010161253817105113547121844039359918338532951643593530735686455448603031099064754598604431139569160104828032534100594165492685395684042238154217949781981881915216378668243610894795713242892950063896932298643142303077446658969169898857619263137704137237316860461916874715135305870992093866975501984991941524099246430411006360343200215164352160985284736099170639715445989441031688122054894602974247646235842328603747379832469441255636660176567978340386624698790039844886050389503572958656970161783127660864111655542103743902498439419106419958986101212576971618941253707500156181429846892685239396653666571689998327488236996579133464892158191287922767682254577372534905253504535783003962178107780191217755851416725466471407126374362371302331026233072498564042064234976162505000415832951484244770105233724721589737099997000251861510796434045652255677338502567380678292848187458634849316988169794307581841004246864989520132746833159432902011421444414964956638523976494781676313152329719906074152566429527759993490570557752216200585170323556851523283751016883955494745350728677967082426795914218623601621529530372185656391451498532834802948441490193606421228549584633808921286738975048683003130417002456923855748412442306573913920074263952227037672633581996972174392921463819651006277906900516724640815496973722529005136661057927754691567828342775123407419112281734184132807076040875987744391614834195336729802607520510819241600099692538326242710143217391675017263000439116467106508293835915703849039341640844734470163101803623021770351953032288238731827686555404984223390819962414467342922934346643471714550568671754322133359209933891784249680845095646057515759139378959230362513173918574744117071917869424048897616166292298123690023424049809525502964845713435568420523855291902825294907178859362546456483933562713344404184030751266973000573660589085716270635963608596854744546565154818029334819840808530466072591180924919803441963932525562972285712228741829635655756572444896819341752811383682754851770933491354633943868197271912997882958863980444173232394602043806211850944283490221387938895960997453658029019364712763311439021477334270120220638968372029850801410723722767059454665810903529911286365333722764377117709230747003813503229065276694157615793022817879117126717486838389883538587636140685044898275361380101895513450756950401464727595490381409407768287127697660583150261004052072408323829049947123358026801306682196393212566608022666625314252530116412559099202503055649052029266824340062878644545389903314405579571883326103011429021457208418027535697477388175920328248832876251918045715038882677492185840047793486510381142478373446216258287664335503213672991634509769873812888593401939996674284789087802624797438596560053345171501600579044051521866478076116685761787934059316935051178309160217437609178808789320567821535512482346652344514878144233925675202666504679368460194910764520408011930924331808878538173453650320053254679261904639527330205966902884474614548776430848801845662976587248820679310824083945052152385587525546371034670938324510404531694406541354714119543142780223440124305828724283611069753968186509486243760349658170861668022032286518359097238611058635887012764835087190355344597438502636858152572580518397191547871152998056067208349096236811363473060098176703363139518192415580185875370022680667743560978196394876156317176613393057263031506703032225007267599048522202932013279725044817111547237877841517796814669451078474537175443128662649786878005660376072533104610860492176563632015410567743788015376431649197816253174084944883186623245901767425774589284238275144529584486559847582843591751459294378384071536199834058766289088957745435157852740260562113066465111677932094844439133657618940578455637974705901372165570604872118478069935050992737583852965246868334642551890596475676118642074160455094302628202790164296262625392264122769093089396889961768393922175735398491691278924529372091755152407368270667072793729937694362552478444381984131475243785942478637537672753106711778538653837189547529941202005389745203715808752804188652051471330602907873122666788322933370877575274899926035353180093043037548421837793839105072095817599400093709914009446612360521786050510214348594002316011244243282430779719902487247505606083175716647998213141153293034293051027815222279133765774504291015067859914077644556426574150859706362682709343476707695418291965670312139905961507891534641028355279269248189377962969792819244840473317124356819707512954794163138841683395733786960522926142554018569381704015805529338762110657662410550988160572961565413770745786860979054977058695441778316401402269905949650670704803067509295398307950504341593520145036935579683499413001783549683093157886857828427458175968604578651551762605906417281450701450034428796136181829031369327411254101342554758709844347027446155612846214048319425793663531028469282517734737532930195195660061895066247546297135196597609895216007741998224194069103595542231520620771068675032624396688734267407392300533731102538450856857041779414078225522950348305507415279747835708649340507390180693628915648096156455821397339881804318404189387793864910763094233586553727837099576807460729008709340710335642442130942136650059852278034093421125942688461272023854954904910414608987800228198672280252222763751603123133095863903642836776758657529826286201664036775790453251044573441405850608616948937883467428437843692082304144877588643381151953095210317436868858139698971742110221564118816900944045490290567898358939796492543759968107808632791217446459993336321096708247623455892494097891768244216201760063780869011498997603071271942785387915795802556551915217303633203854538634286623340975370517866411475350348297969765924478361526203874612690277549380121156733722012484623936490348453248761258226317852741722429805006366818017562460666417964934960227248328254028382201474908916190250795630794515630134769926582197566946106639205264629487426298408576166520827157579081358000288586106788499288314352861291518878960097289125924321699415627457012154615909438448762604725900171852085567139169666390814841020288732946186503252301973676294274392609272542009259101921613857956178662796737947064634403877869843010912070236711873358653428325082410946580818311950412426031102490074864925141854554690543766579545346321433301220553832078156829681798944760568343660545688412126115349362883881993777308293030924601925433974813511156012865610162411951702563908024825497803712120452915069823440804463824942826903804572538265253487962850189346389742687310250613499851535666027224643987096974860641988181680164038177832799930628337471138179949587552155933473342884635007193346694676409198688551919918921826648937983493715266770033836345816338060234413171774415562880632202634318504061509701126471369963694312844414411834847781299897952345394211214489483730093108973945341322923337230646576994285734363702562846544813152122086352211844055688034295305726369489955258635539985260380940954582969715470295567826556010862216636387889698731125143474636016529015855138201825282395245838453602281077565623075164409740397676921059785569853360452784014258999958800143998297075140378933486176671374255159974705273183574148648902250140745484357715381852905464716507913386114814720428595770221702839328804142409005002514764190474593246102785328316447752456647327098061190721561676686898500942005393807043275235840378049568401298140319000825347865961107656415130522539986521719349892161847376595894599189565852463473118169441885293705355499602421009255761874026084771150221753348722844284474815348556018687042263654655862931068311930012378379393451387745245388851795912889080460186017375625064213236132149265487036662437628664454348225866988632223231451045760504471106325079288213593539067770224527849267513336507734367730001646479827648479880418312830584002908171714993994983862016426528456163714245340833215247814442724034876743507854617710829596543208650053556834351737441648838976268010799254608089538651302062665648197678691957490912401088625943605041400846921649277332356464134943168749694982948647350944462498748022977027667801382991393769470033975734044433482019746948258095650857839282761997274579672133013156103980695106453187127919389245555465971448041243499815774982925062529563900084551490337343378873988405779005961308160947588599355207431118405994253384872737597587678522659239569226812217609987736723339162723437976023258319751135837597795455928326463135084752820846957740538128469072562792936905196519340216193648811439237219944403128655498744172779186428278519987616920715779182693864421494725491287451461936113042638888649846606743632432180302705849001550444684509278555182492973617231394080004740430163697850093839266960651284559632744474745910309845851319960000976203417281248699257266670357238547243309915969441607470077049030735438777886539116868441676745155813560214671006543366442940006125555478312115501209489297925421646388939622732764331630384075924769132780821002942117203730796034113819304918069421603505073215804794149723987714744041572303022722767587251971732260167157841867883798000097076375401902250492004290806872583683269090923335548936241342632060769176878325510758143771047863631562405329638474825510358056991245252254403412477597142857716687664913354574426832842210104148243132719846627740428137904746333437030501407049939167176083762973948276266738190650652285134389325443752919584857465964412998218785761016651695651156738569807575025594494293619987035263039221091850993817273164895814367579420819665535747226554198711619683289853157343075927236040395940446120060028661284104919505691471079157969192914197935725226289422716516562492953053140064502302309293078565511546903412203961354316410607905614247209122650022837736088337494513835526149288511205313358547515030335598825423994686816622842550821820607927502564277345658375996437987457041226721426402303196549972470819022741126742502963074916085945787039097921112852158153395254702992358383704247610366766900262719824285216786374122188280794170762438482142225168574418335684537731248986045867722878903069400721100249240979361644725581768662581091879217384017021244016787027272796541284607203713067390478907254143306612726946185158887741688426123121124448683726928337288262900932935619650205850188575029386007434370128232249833559680248233236435716164489231581017442991317369839213250303878586678608231750604927394836742264434851788225969114620613214634728381690543859154776140027967504478435840010743512021842156864144403471638353258276141849960169294199719479267871125097848767129097146585286072383894030299445313895146304946508278454442850341112869163017921416424803762408036631530277432926380128169593417456706776155066409976684235911788896475421899674803532929773591653179095936368028634980065087186893633524964626101333195100235217173249392111777748079732777990754971119568750981183687139565566529041983348584780253568112821480537495334735273110964339657912663990883851628441646173314992546845663670909650296721026682290054510503135757748315630367186145744539369776349731303994742901923739572524099178226873668855226653226416519867941621924811285633793173204921074713093968180969715344885795542341063509780412648993501485361868128785506360827299184874548220438506331141195085359908050893165474089627561594173999136701111103578361970070108063591062380416486960588425333804238321805834835696660104701510415807336414082043267050783579760107313227660144243633470160544621216314482766154392272930352385337865695359415537961393420635689245769097167068643957407476900322702647218771435035826536947730131727786328676643518809106850821184384099585482757186847105569101050449714684431359085011760821963993406189886380205850032296186930624145472043924076466559341989397193566942554685746924249048904203346450092204141059145593320690149490948366050662766084917735907397637502697492531745423278732927125556520286999594934090245740448664563618684286000255841070902752105285100256547921795508151263558861664696678459189392202134264931692203879960667839197735086444803500441794990028517910055363134935352675920683280084592780932979090713201063215156055401137235764052405183978705103684804807401952013101467410202036280841737704070532342125494039989962736890891023317393810272896974648165872768656540323022679618837625555043453527913913258013489113992143188968898373971946328043779207928156656828020469653224181386973947816405789195698261764577318980770610139499758737806837496141199261354716613790101268717558717855012823585559604850215126429425512926113763338617034590323522585549594445313287087187073011086293962757949284135055501241339754386484722056669614510049056744419287099859921621841895623623901425435990223641197832796245749703664237092834893403842686708692578817163849440381637467379632776079556257702186577484528714383340150046907667500281168679074161488554962538170576547827861695336278172221247658447839074972796612793772313991149537853207006650630688007198013344217482617024952814655171859322031827616043127568210128079065205268953214329654422476582992151537486529415195550828039279100748252987352831155523056702958820493463122106526263021876839983961894965330942021638528221059582464726806573970815313194117907254847608235807709966439946716107878331124542051497285944929711489034072882529726964415049725348382926834712886947908107573713623100935357800315067900880771486725999837648833947140503867867632009795365817912603921348321942221691369621869667251403420304513769518018600708172516979416236166261355032159568959623579797181541754382415351994579614357002927266333613188204822537303822437422480353064828153969729041705503872619999844730935420431888795293129329930950796393173820449320552598755893247451387604233530304722097116341642953756987619478547055131234820825877949740408398292828176491345715951880367381498432641870490421944559496228627589991959085752814542333844713546753633364263119099723335514506290362041596978729581139955157085077886633062041523972683328559684639892948426886392268129963627439048768688638565458733960566725334875663700938765947399454912514806288628003550460688122622453265628804093910015691652952086125592553594255733306481637591714414067067678242109109872445173852390917888508552245663083801066166829015710794805748772178601977486455229503798678824586682023146346577998812986561800850423317137545148747137967902227447546412729776342224865746564013535377903110986981043919539299425711006024269536431633679345048228189603618472652492610857169522513548177137150606318971378658319797396649688610712016020115207104239538134004258573229915291790774654320218608919155581805226400960983495276120191405366130828808282723931648891214169776535799010079700150483193149418721231637689680054421373168510222062345155716264165954359550039472663585466155288311634202439452685002025647309422308841929065290464939717286617150560598718230359374739959905455296126218315362720872561979337495815823819322487094847397712135707267355077037452997983409849284940030157223640751480126684116892261991991521684213451495983555121165359054555266381059679461048497722374395786454935415098992639248336278677406555434853806059736746049092720344331181772374781624879554724733653029312497663341234943451516398149427902510180614932035478881378649054267103627970790497951525703242236058121850601916959442905129225236513531112134941134606784156771278119528480145644870109106451558032324125415118148044283623858873664776204123490762202083325425169524621313588802543926033256029519597193223178821337985386610648378182678780195199024205810098589907603285607505711088124094068949273260802201126704651408552067509908660557898202742634789862828739081156588529288310977169293960621739299861091128220658400962914493565216008813144713903407082822367663152720049008608634353771841793743451357094897989384070345938310034069576458747553440671089666065213782057718883442027817326624873003030347995229600001202971252116688306708619330970910597320181893035554129441719950625744600502712691575069064500975464962481651632449184151287348951949928471529229887526719933480168583069211930273716884248393695190854589658843053670640337295548144702140977485338221325719614994707883676293374111106396365194067274651071785565874647834858770714965085376101970803380350429499360227937140878033051893852173439452536430361402848971052061972748311463479364857011529610748305224821298036411803093992183381221841330492710040481171995004003886113099709941439557764877051840505356441830711117723580248455026965937881420040983249158009516874320435469105902622600339084875532021195843226450798992825516035520518081969984255766570441399447134718169876507735766831219866229216575565303929847927833032185272370545740054532630506153886190598982878703104778689351852142129353022028532040766569901020579959185575920947905517099253524898522542022683680019869782559675333063541774135582107994715054612677162840382831374983523228198406023915982417896256502451930771774460868501879623266084276946164763525334608799596057776920500953121878773975460981073459007723077714757214888109937449519681633970372447609040763513415880955006216403918491250563474826875791872979007270393508902638210097747227771483667126742112637459734769994879467464468386262497632020555837176656064458760165581644639763830159333329055953512540135941411397451192118943719847810907027469406273439934574250810815758876029916458628030813313274423319769433759308155809568836034079893249162908392236440373698628645182435488226147895103529161023347969062626578603939507831176026129741477989939014346773041828445887357608726506601773361632062098001077521040312854095442095456182079497190064791434374838301519590237569121647915999200912608101785842054858011392517345715383911870964912704362523304699343637418439719813670840916544931955853123254196755215460896642684635387727769588231349817257974745373645804618116333855263421810782919555805937806936114857856116450094402590263403250323430732590732726724624043285441785461058805939704828854667641069110621469164635148526580806989340312853478942068190357038847250361103397300890542827712132531758529594773733069687350533060597914106422668222645949886887508552165951406218881087632425998385840674629278841265733759242196040962278068710684723081121736827683140847662554948743809493502815389837073782926731443846660324298977841923044774055960988078945440377697551729331547925222824197333654451095312972720400533218156655826465342658002770234671663924064589896062779070143935674423647761702261453648920450046492760624872942402832338644797026005460716227613053683727523548633489783108519557154974461500434363890180450196608549734482656929106274136921669446187127120974782328256005476380397151731642943822211994566164486028622254859255801208764677281342944905523112819974321004237613813729976418812109378485610836194633000448003491436774117153445203782239026113607845961869999670203588616904741669327283189920820519532975803734383491830883053459626860471749857401941897412090273000564155024066340782842196398914541763395938727790527372663139816003277007028043946912724795377052825294098523589417509615288982705441407616060566846040533344457187295843556355100006168438130105225163498775769079996490076107409843620948342982572273949524144050935854165008660220222036743715475625136867834174054745193255889425227862977600152177068500352652538895680939196317060013243287566256627677257525241958028741397564445190421633667826854438799612878566018388467349913556734673156487187703626305248065347225569600430600435489422545796016321061374545391357292800742676906548617867069423892729370256685595424787652335589560655747121301569478667556435424769620571363262494503078125198340168035157493064206055794948909194744858228221973007463870901329013050166401994340252039352611973446654774187340984169556201291519488571168627629789771181714010274296054423486759018823465580627273001336002966020199931748390888925855817639867696580629112802395641488024701435444273606683555483258973880868838894768319611976094472254158858826054735051398436788912872915459990555720876697234325207850366687658257569800644544804633003967203809045398784666309034920893591148468005073828629270233141970344811435693641731956365833344711168721986367264287075199003809981794085608264051591692773622844270741796540111352402436211141386112933517345565907057295337736560846254570568413212423595472686053789005015847574598385840347438940134361937969273387136606766198830565511842128663156899840667747269446449712122376953769012831913468248613201274011926762080234407991946831776959577537581918928805746255857153078434297825294167207648498425780730344509977066167768413423446150375701512911412215230738745154289512456732200184325009096044862418360236052133984753715541460962526123927484442261948725074538745228476644216268017152364781691697178153420307749429534699036175628581027615692546868151682181264481004630278417674459212074422736359973493222246786713784730166295217795185542769592220067746143856955489243696651051685514036139659962230617496478519125055157552855565179835620520730808104633502463185130932066855810127621389649366428562957790379506106851700827414526635572755941878029510751917078139322628379188479201034481553500185747151492427919410938893380716347971333108216832829015323921194281492227787152452359219145103895615695088995795573675698430267008026501531997862703151262276099489901308681515485451309956274173018361394050324867945990277017906315679557183824990371501806187707160766953407986341262494205376683765419100148150281495414222213948049367953158422331561014058559042215219818692058274761949974405931934154662088331344927524030805401684134498975800119344929519532576539280297242888352015140693366174994014903145738642832193604803725034397182889048199110653411350739118217356785374073550737070190548648440802553095849967250815497010762916860153913260808164884538600772101331425296338247360391630190991318245003112751481231937519596418526878562763369189213755205885546930939023985299346857780676237732256365685212757565742065098345977310365758220327682686036193201568556146991810281815390876580944202725916364117769554068226427814084221606318908868972698156090255167436943755368082810994429588331526472084633991554343449409706514993327124399405893301343256659672868282734757297365937929336205176250216115317981585737539939917773540226196786416931501147895774897019697197459773855701971253517383743408568676804006971608502204600786764802559493544825035345281097365072227810067773045392697448590365173365701252302943565313760338215414655924090996858450548994938474109563104916283271304682227779604283464046428741428630672368673767551568362494572332010893304196271132514417890920931651468758243177584860445398491347706641135030507102935243670646621205611650023833643846180042836429097811299724471347644900803047187489503359086543460633358878537462966460548759636984524054294300050085413097604891273902771576378346045079015838443877318279581469121933828651850820076988255221163965525461994534029135736600143481621576444111412123488692622703961640248665024071924775826199508898479264098177132826249999779607551266272630133890717085453030888720970132720553541260390917728003839228732764186590720573036873335687373993391354192515471485989741392397054812664840795541140139682114162601146566330520325425314006616603545892385939130863874503535635665198977061524206730926219951918449273496568062771238942124579130325864857596204886165459047322164073509326629423608757290194672147533581294469895302972379850395716358197839726876125816510032604527335366678820848172680655467683287792094648657396778122942674545778185011257570514897901548742513502412039429261176304887851985215023237777473503708293723844033936061073181633819560364022228135773894850892758985681865782938879441673091977091309450742914146827422853358743940290962265822474582136799960139332832834129336180314821614973428582360718213298115545877248868293205499478563928924604261739094934196753405661029585767169043483126930273271107589539911227505880380890686419192637968887996334927973581730485370980035098881745224335956305980650818840227705417619496739476629208256920681454960988748450655429679813435551143152258036303956800666858450495392943943142723815515894806948453017291960582293702598419494906412644492675510672629978347657404794554346650183962359116701988023333483115398763626986516731078673156385978732691408473887974954246454146576847660644186386770310202668517717280931044533500256616572278071769130496582260511105580487226149384843871911724351015532298847804435084175469954155692268556890587097209862014581097659524330713419396631464895526357199226240068123728233684082005128583787484481515838814713051230168319865775886134462911349900324293492808383915225387672337286371207777969582222039314915839861665697439325625924962505642821271991772915333676695865435454657462984117033946584050898801608520017669430264182089474490607056790931587039861153466885277451558272539853951992490734762932334283874700251829884549201208974156791131403865203256333557835425035695184349858323574978480480127032609668102386852701520904107776068862980022457773372199911589512344905076043670364872155183146961903616991428127380535185142911416207691911015849401189553579945824524772479009495806140661151349556028813554347496224641448045662967397809273894636459035457176754841852017668825932486677904424993001581336347109212084548579222365598640454874104519040431557939112696239296451281067899958431241811684886395975352308746052213692443124099537120202852851459120853639618716647272926193058183659036906045442758203109125404065234507252047492547231627005178811594926837856609306418840098734940878007886365925587284373709036723575708080496437756725118518774133140427995576536068137949295884392652752909090026616651089736924550665389560274978829896306307803550254814596063682597973238746202367713441045589562326982413466346599559989521834262664941474930182905196845584096482444080902104950239727477298482245937552697292916704706680164456213678210532696486852857754808007982026429378056918359470019708394761252951686984308463252713532856727305742321236939186889744553847557632510709742898895126880885037851554348181403996996988175374097446772962410863408909056748731384483237268057101055122845044040133002327468780031902674787198671674621486809419700057367857078937037411662783946358890960612246628825018151917968600672244267858242796414382752359816076137906270647238929171286499059235080627909130814159445244163052871371554753423123911775623650531318260739333513699144376308067126278462066331544738228291432458100027350614328857432788846123627507224437704472926847016142649432343401228071842129976630058142241958681716057531145901227977910824423530422779534781075018147694466116187669368882450376117756650353836628428042863749220543597167526902580728145319388307363209716232207217755600654034997682554441599020644335866152056694211546395877314397725387989895336101974098929689192346566342439850586358356614467753495606211357504091622798280510084674486066685854315513236119540636358330836339242549728589070985792563399011374500981196739817057783103954904700920474257151205982032913248507938877012102244210350411414325289471783680442032492170795898645496881954355936202314748840267075972131587375561587604795292831423960548620321552155447171935676203447396317402644346570079280279087339501196274686999640164877733941873218321285647482186115154950771904955607162423032169877362319307276587216842446514528003089260794532910198171618755549230830571783205060227845797892664474491981054217681699382642208431988026836140479357490849721842857582390075215782111755882407465536378011767972412962073870157739791518078410612060683418505013904801454282255021256760940905906345890047079075391527410460594480793760958601416967623202974088250905170360863001428533492910573738602792270701829936375103116517235057148578302258932649176044610277092381214308860281781347963660837084423897582649049605577036256192026940334873280274585774099766501662251783934623633576899247764863466791665948525693088496338539971798629247149891089471971548294239113724371028122018556442980837127033452154493832273240928359175868749564023510531960765516558885668125820764618454753306714727181755316724634991749414089069414536608625340206071114934089874798566328345109508682422645702378546109289724990705510362084497400160261388617346840848226259368052544930498436494684276538485275198767563903817647633892142062520614765561479429566254717733937143143086275397245450484648925960484957799006829642604162382136298122794924472341584092382108086440117582966121241294295805259858118127363524644822566604860802171555904510142582941902820560988549952234168534068838120823725365751336956528497551125439048891112200460292431789014908690026506327933222216153885046960520734480461436691024302392033224176246376842829602768430509429354645581577520971804259473977600278508129367445500313688697573243051199967657186424443327465619329696470732792309458043525760217244272910747178167278901920558073022281770438946148193566733156557004397825826738599290711156854831809444178595777255130383556021299213527354339841513990821519114798897553515071955809977955470710938798575009921646056746143635590502515361577570544685488779534713151903043057704702372290970522235224983280253445506407441680665677634029684672726716597866377595787646812205752060977637481312249748982848243053257346499247975742787520721092222636119043927229229248758614225665426652627365235961714082459861893888708018287724233924632151540196802869623120204253229966475528357753573511382720172152394697451666655216549436335523576716101069308073227268522973220928907926842965271256297712417460295850450017008794366601328955644780455098574223674843024029322806521979611966703655801154834873688060977287446704885737468480938919530761707881775934812697131337172494963623818214701436638202773792159745578839191797084035132157609338538560903024215810188443499528034756786648846874147014691240011520961468028921152824110965729341474050205200772462176140525263949359052820025040788094685104422740375738937732913833472777126882760993336852159120804965639963344335523206005062266512234356338063291653409882811872098646884713135853742063525494150429070345755584353663193989495978266514134289112764719347341731992170805207020759969676822523375890916896689768701716732263933170878926546461711876017094303018800518723992054582170410417479273238016844999759455536240330566125291633368616394573344327317990046409867448069862891821920027155820826915389961750440610366670873469483566448968159253388599143525537465945465706071175663218427160309791486317387712634209658540300437819551791140856139446664267798904694645334935745539571175834825308780428870365201533005266041061998997247166851880062037979762798441298382386353266977495830601311305368477856543153467785936399283470409697190592194028711941715700318105519634094252669043401217062769837330020314884358620822028256615077506081004359279593471831106146144168260862733199400493771536029600324595715366259675548443460776203477651689308248059619137241009760629711558151126567671956565516030910704294466099083199164106381346267800688829652080588251524249235746600892567254017898960259329571675231849139769736822920316317784806324192317549287868239331846682829714776649309862263188821864107651193708310716533316236421965379903478268662563236685520266736257159512468916898567993517510123595937530205052483308996171181008015918569788700346049218455739419930238145835225883319963680437724209196307627305191035279605068944473216212529464278682211412052793071330460580707753569381873186560800705591492953381957401120434908503133943837301141711162851431960245435539465233525032110376846268764443782966263762066873189396995078558994479036941418983930141281439528008291383063125063972266387969253862436061866103337830264260947545515531728757383647386267394170349322185122382591330891679115858905657574300449352720986378842502611961742648060302180032586767638723177537482202492025334525262506516057042674316454785497015015432985926471265404159358449443287615869808425695915334150133295808874160033826538036301863260167781000276800844986377788822298325767883242220642124145654556796803721726826125913906817894712047287190070224501779819283096996767565299464359565619667760815883324823750618044876427525258916171849594190205348379590446480180673466074971024228327458781839599484415017244262508854510569690875721902856199729169888080965000826621958836970259295762168672998691541740714205697764425397694751827905523738646797787699426154539378638677219699708504507201789536262372603608036104750675869297118472360561928267063319905113335800083626604849795369127400753517120699447738280827080233908411492677179668055123704053747740920544554944839515799783915220003070281123111346446383906989313478245474011762900727896269399129505152672254654257621621375852859694885410393652451344167137835930179991664676882924873692157234093152958313308571583078944709879868233126371896043167970718811314902663717453086385531608095078021556440239239002061685258824498935832009237808274137641592714847046885384303052911984826927017246252934837264311357450726055663942108988617185831700465891772206306942665948472583184540657293591581133175984221556226800832936941058710076248720167407615916271018887603478760569217577087891615883710522713017344724672779749766505084839693642197035682039937138606295356646158891237701591461826358566943533773850685166695952867534528909505114362065024005612672894880545553385105252391878785449485494054149995818904316583540187739497961339528678258626034891737404564166583294428210650650149367743717441923682586788661483710516772401072958923891913954591385710212135130485036670333215531969620544325714126146240753344947151601950317194400169661863409996094412295387627740113096329407398222228977574134609058927465006797883739481610109085383208146609248144754385629010463763899521873206044594863144978217204768746930841840475763703077790068696818093193397691924161786085242168606323509495851371690743258791216703839657428524038417425895104524420440820093104439327160348400393670098856278388420917831801096563030724486678975002458031210777266581980596077663079847121158426376590521474790780141238079070657456899718670664091429415407211821411715753995636375139547940277531873500042426315302981015933222840669882223327711664963276533873074404339202102937283887499850399347144202322847120311818552655571183345368368755524409789059396285757046816055705853737851025314878176459683442805356693041366164252086469095953435478169333039571638808150659612781461481948715201578943177471336907446729392604412817410719543857076106342721534064729659859476035281207487918300980530328667483112311974775369805640583949833355923639164223168928792932408263703994733091036710997682255120440601710128101319638224618582347774572044684714069398184171355254199116359830428373677803913689419187551905250966415342130155353962415570664310516996530466868391017841799103420866779783679727610534824809080418490830784572743590083747467245483317114922677638619994528616994663250117353069823916408720835742681849028160663259342449230397522626539376901699484834212897497790120477342302016366791907130155924418424524739700420164307062348192877837992358060467442947697952151418850273962660760820731238185998447261854244451556951077667879893271855121145545396703523204809833720361076236642872633532515510079607781755884021264248926658377683441838601050946187166898470411234329412799359953345916169820714793929258869103408804346635710850136712448266305880277557751324247153234630782895132246931380400822048458256423938621789855272885457932806715434512509340602301111200524556794777801766053909851801179336212614289002878163996180490807615448905456838293249202570895549778350516581031993839405872097627660902803118263840815669648325981193201854989841036605454902491416926741097166425116820611463508675441260043926673345790480048338041743509608229609136424734177619422477777180521488508449587621678924969404968243989887851526294009006419814942826522954029673349546527768629067885931988551198695188727954487433199472136021027110476630551850385600192185499958290821244568268161883214128376044351815030097924120796349733621147039257560385303418334304707164981120288167401876851854114366478409304590172098750280116307288857805869947925786693669995853877059899166880504760273989724193035463604754480333691960653999798199074799036977739441972931434328351040640592858321926747089271846691143085428743648335949428068642920455739787085566093536136037238997227932725214425145858444562171173025339246664561249316084265406069875809214244634593019236783687735773065525397680372386179166918029025650572277848668481765912250314949502935645120343055892996389512863907447148554837109629774299849137975751039489312189505269571779622811238369366388429605197562656803425797447015221094911226028285938664597464429420451598734718455516062752382627170577589274602157556380367466881928525980481269392882089783211115580062183923223270903594981938124609788022493670533765068836680904569666562937920590460906274312018062212785549167759747527206176252941758987923939180502886220940685792313597708687005395535153126735651538331692180162965841692895233181325524000570881681814101260360127265093907767789072546985783423704795046783376660946429614085625544898142344538016736026325863644231089270347128881012124138234401698764924485783762064776247721895482325985793726107623151539477709034941288316058552423010918848630072959942847250353067357088686646332989051774210078296812955924691617906974472407066448508130791704865451325901427718876590824157252344221993623029441823025558481243889337005860529973292447852510589034318548466086950301651666125843754719702172783361781069692150624080743468837889480230328988847500128580713944701948490310695497618390710699683914020610333939387500044336932766574139627049994697570971600683757134531873854348668730921851671561825443579466969974540721902108525782963846655649450470812841958782509349383527981682201484583756290421238336252559304491441483576364214353248873525233037740483202519720414463649306972429371480836012625201095972585508083418626233053949203688399707144423105862698880809401743748186467678246367471828447511780489765101037960977085965193200213895962210918108604795517262939141126498126500268106401730944191921870278216819599150377751115813869805367755155375814647105290043925329733488955151821665994106663878358852733197500047104209066523503423732400858605500861438853976421705734859223536609922446409591815813504509986183824552621322116989283243323982267361294432280602211115500880171635708900769183173448682225604750129122029162062899939452593993891299358223675723185797431383006982755278711668091630496055148070043096292725846268406148222180299607720002522007697408987917276708507507774743031679281351290946325623347443689500193308425703560725548568836707095729550835167953691820165958499983547485799490860148137999236748093258490890685735332733270160007442081059157174603941993931408225789999598576409135132025241942768004003978217552881797684131365770744573373378217652405476734928660211640076143384218903485545268250358685735960613376208226644193369379062146376289058054390339886254861644208434211429189395264130737195923768545801362690269552644804684288740820455901850774390796518439473474948021720927847758258909262739917575082798578534807244245992712748750168164247335602968499544260661724180189525029118009621148276233773506511371055743801871404871734620219361714120691999587443283313882846268917732013649326463407201865336228607588931320508471378259398853984040573673673685396037001896810865651650974849340340234150324238649033960019782389121360140425523808868887825579684064219495741295131321020071061716637126148163207323378243248153105340779362010118361187031479044864645059365504905582214890697025279943663616814216818866778822322355921989961240451261557638901202072105307278436346241833509654968063770272648936355106598745507381785514624101967151196290494200378657931094370465041724526195193448652324822853406658471705413521181073749352778213771008546787817248714957027109357697768400199435931873607101113893684555445822498690282310350186850303416686228946732188929889490494230879088878601498682278488490607327512650966767696297407461624780680400553269909105384273218796279108524864543358858247105794338329811889619801787067877297600705498732718817840925509181451016218069283226115957741328349013332713772684088839929048768774887837649867970957538071787427709847657392901232993377655337147557435133954630535760283363512604241531293303071745997431139184542795185595477863404234827551534365578842960065961664509609812013996881807805577539781517597515646819760846534084980956334838137402065416042872616672882073814977943507188420468953599929238251851607312743832313301918062300522231767543672724699030330028563556250063257906995737492621534969107166445886147846348524558622807770058173838837621472991291208950492193460116543956401944268509467503080791756947156478356431149264208602208711977710690548415873644130092685600091354243835596537875983752090059649368808270664406707563882404610817264259070773109966502471616301995351647144557905548311021113115043595098705092760672424809725479858280861837548230900914098562187544735074425872925852059434835106116030422821098803635538778814742741842079055893266363312950721086173545852318120839530548691527716061593470617795060588274476072546683726873420728514236319300112513442176744400365788019716043115823934492885728355382304965557292418852974608175358637244625982501688454901459805029020926328351790896119717716330071298361806384408462642213253219157212873520319298994250906142610847977731269657040369582397403975976809236484634582108894983929474520158040582499214954059972117388785890509338127652860180194750490177891714562591169794276846629908585763575860709175326179795352954252445291719063026846926399821724134469936877375644779419310142522303510047102377442398603154097906248130236637205223358001655227021683731561716492769646728583145943609632083903823742068498048791582912276352661741250158182411145508028899527617802126833158335339935155800493937628164549390525097918447366763925400000692134214884329687937165442845791250751631258629557095984041467681113624295925135952089533491318408391357866608925432375547220647201244042390709024327324636614001369335289799660404693912300503659691842617733752168134457709883985649904065994583376041063910292390074022415490303579223406127119690417835194650053776387195865559820317169120482476548885108913659044552932527083359575670152775641803926519835573982461693529597128033186070113486631583456694035912909933182294378816337699079626088383501564108696924302701540289942801028903461051906705309751643656245122108923361228953249202398588967785343657668719491081120391916132397223709555717868550008120858316215690887202828783974039081875545099595021249051668385902703432144787199567380331114798333540414470677969761542953748883438417205313393792470440568017479211080912667476927408864067931846209455700912864544409317835079848833562688813888206676557930492238246690896431213665033479641395874793374895711429582008880324636941074968732633890297116971626246721487517260784415013546580195827747303116241353222286137769872041381971179919952526296376232364907426147829422348032967264778852666223914011340388016988517086702838221452691774607262988257347178341222287511073635280111617261508929441993285548787831213684179265494007593324022301962668123245336996080626823178301981415243621555633952780721655168721571226356172196174627413145734721396458664590859837092523281304473950516358322345792713952650777934155582631820984149295761302103421787018340993341282477901359393071697381425852593693609577776493638493942014257857272726417190314894913087556758665653018846379623499691418881997326430078960735178428636652551927640091475363969807282992485519392299568252839864459143277672493307027001922411774793599443558792200372228442189865457571133042204060366506851831087564154316106775700011282921742776269425513656124789030160170888461846575619701189595554899961964910104336385219817818025062706267477335370830637415054767970117755112086662621390475016149670718078664469861835726622264116219968910327336188028960818041795325155742222866679491820690499212359429117057239430718804898771835487859942283107179879662736054104951209104974177898809261882894832983190502839982482987513443911303898086884280150929705496354006785612715657941284553274947896014941474426906687304167637430271417854597562309111210354853605761946856041978728423609857520909677577113539324222087324390029302494229622685188281951666952080101334181241631272294593655324938321308823931762386551060949028484509674976808156952047683965167596708273515092644833948758381689109632962800642000427530172890329405684031395476846051946362947528900004599921714858448432727892551365202702506823875385752430549759933604147702013944534867896636536464456887672456363087854660036061616508046883655560931696522302515465496426679539756259412949608850483733264273184848653483698740304796825697150687159159554251630680799762711480944893128027326035905760624428667607373701099522749683546555730929297853038494795205186915914362868021914359061264813810751087241833073501337066438044718354346122594659111344029304175158893642131208043012080546611681010608490667619143824678944618092133137514796797873519187201002813673921024010064791527049023935478233282103607213922358331959807151044772166351947937638152242032372711120969764869695271161668288528289757985712280477216743746765691343038263962240471632384604633436021291111428728885280207745068085533319938209197259110800443369433883462529937432302880792819363599146865506907885073126686062336750842753998069831474174937381485941314877887716886340974291995526497617151882574619000984764703378933646692261185550115517368285242721679580937077796772027710564793496142026339482944906164683440789935058944534973836354868717262736328773730990821921942987048648386683859922155445757807548890952056546318924669006116685954463209038748405700856729482077008171565579890208363668869835042980379092320054181849805903210720996021451810710253276956342091047616527629033226346902022555323101171520739386260850604451957676079756354918852677718276668366628584918018881193848315722049729494244707220312902182694223871863718994169547577126510374646000966603679453975804697433778732476548854942217571310005110595149033926246040749122301535456341457964749508684689575862967486388879101965625086543205224338859635297190179414065369920049680769428437541674620801080900779676447706538275554227437889755379931581195603609183142686180495070763488091787395944472513613227711960657711591731349016198284979087807518601140177546896719685530011521207438461927344634419999195185948172205060298112007469477164094173062230105697427598502561054516156389089420550007790314043789927096988799586935328040944310681284231620814924484057313697014688510254530122089229814665335152524081904393269195178004728287033370165356723076751871341459798202337433781768771852501478933287671131818008601007690819726920306642943662110818458770108759233898305883530841880416039958284724305017220564778614210636679476817798516261748485752749896648824345160036529678967873149660067833191338532438288962883964632991026283604646324782422955244673956093642188395555066901876741725188032865872510713038235281270627756761519279837415652091114380621221511044936609087899625065923867158746987733311318649128147624777165010861568253624036131510256227287415069010550493473328074634660811568857527705093023931241995682972828510947301618783425733957861814186069993527976865846343100006891495144115330140998510639424948228583175074936633074806497513962667091497080864794906704094511203519296725641343906852572718449991946174143952671782887730871660851852377788779638623778393740483109550900370307139186796314932675795097425546762511291883494628702996166209846923796483330283642004185776535515317439740081004649665319141951224932881683077563811444663551031897295754102913314266717142118969635067633037907508886360789062516788028295381948899537020838362797255993925353873921981107751211109278418521538523253408787687313628954006136624847004685560824149024550285228149193663187828743613740107853276899248394085816526500651331668597694932184311145572173925640751356724252598449585757243022150801916344513652648817419922460261849366932642027798978970930039710985189207311374860451887271032820774744740379970132140853647449267951996375137765985562120159622480688596967166127643945099101226925876504739786500296103801126767339145048213042800150745934322829432125528091694697040676640297175647715083275207771504515019176200699727530244425287170526825370834424063487104594186408160186691740779507920904975069673888018209861587391794926653569203778033755858810990895194594283106162011010123984155113793367087701480638679969515578716759499235014254205353677550005081371704625420471284575865300351694733828628012875432584455842904132610080934099382489728220243898580224122524370287963651756085651946531488744697406710190540546841459755309765619560515185379952099165351088020013201486441027477754767557100032153454911723105139025796450742999210689126870381262211440018263055944599305951554287782270586092138211265702767922354310214520633413084376501094897744322313787766435897961874435182188285593900560875895732540803737731033772298668993705890335972612821298150733155799772125980946216446770436964851786381301521362178859818435582963375687789971541187988507556048684563425245608224510663295812080630772580498237882592583328891714875077288274816892047249756705854839365978079584087012804408413127192166913894385453140449921226254366113354870289650051803013389530094413902998403623746501270677198768917411285409472747755341346944844849386130809952968571847845975716743144032830478146193534954929258210976138246604814114416980871960807096167603440492752891180502289722420840262597868613561621725283025623794715111876183618414706929533171677988963994514503421896833564563144373688212232621944340103523558107296222082250684939149161766170907976854525084452999661547343660029780673655663084774383512203594165721318029711095605096872079065423438498923799372433048321052426667304213544542212052237548927504427441578589196438526128961290360958430224820610523923834147447950901752549632259799234234195215817528233025087996012701666770096926059783035424937919988462602731567847412227325301536809798674184762543922382220181442293420968111177124072080678901586838387307794441621559741993616939051565432836828380035308214287929966490415264023125498824419173319680221213690541719155177075952699768342448584131455177261054014226120866121889666489595902086967352042340331221087989818804838389227903429265450404704959052983662452321300049390678261678991726444365894039582976822342250116689136996488673818056364537601614654533894741191876458257502792421028454579929083898160997743087427301726046708977219726302970445170626691619496047188833342419680439058667153099725269460383575941630853554401377014352862536723204971828544206040853964317664669748456431759339175865469956500478469198853829426473705224991378997409908722251774322076682775694795309388140360561465919404710070462841252449498160921231783091820705560808204882203709912630507402056864453721323782919900528611064620079609801165454581787338919121285362857704690039524240338486895933303933459952492776432621569964525717719228681538388984980988949589487851350737385934181190566020953179077345411277595533007693129538334066275420250466162274877876219284091051954573196768742840809148428863227577731574064669577442857301407613634146483508098289612993767139784049850501261388007484434400071738194744848742680495822755136101572130447322055178241058667449608729112776432892661908142869268055798928067659560255529373405415698306251200366766062784112640613297784580795270791859301149531522433371259510663904785704067781310520541937069408121217982112810771121610006753208332492005560766886965255614145669039177551798382453140899087085081561725617617163218265637636994338323116740347187873288317873510565502581633242739107868958513254079680960091507492381190727957377742925167768930372757008878626880925029533371447970830702174343566911571924783894510387727540001392866183261556227276758960667700354969565012935985769001944540162937586776220208904952379074137521213906816195447887269792864253764339169773915676828159372981067482231271669794049569062119558766257035328497999721158444321834928963787038825753897027080825808943600710354012076478370448625214170610812182068062629492065723739042650950657052176767260380717911355291295996425486645351627484408369742105144784028630617848045188521963671353548342759291275551658677941845316085301015573728143864670705817795274401886072453230773201506287046112336136306691756813301877252713399397094409626798542982185139695529791982664580723759684067418066554127996535254390968487825685039372559051520399690733623058605491677387139143224959210493578316777250904008016440332865709788240074541910355201110691538280282818381132894725385587135337975352527886818263212559868065803999340768906394872379709606135626106357238434894849517745764251064554960591900891922971004798989760138459455824278458097955404402515312083372850957416163882663005564273416139012427492599436443768705879696944431373809420488736204659598971773262595872710929054257658703602377845230523308974422114629431302452487315862964832330469382636998434841450745470409425189270028852782641355014872860013418394503558672714452062699143362117861802409039521758990526528561991474370529117406641483960883459740897161325748310114244683130869952231787311573051011818044904985776620288770101633417277115268161160880870917107013627557995389550151961287183769357464519861155156420983814685988271221237377205899114310951182422296941665175806103735537996085195356283833415745421605418453833143172312655275519975882573576176307953433548967606929266069439609928736244537854170577041072872137170323139476340966054542215132033825874980685230504944221181018153348876341059959491350694667429250849444041754699482741997064127731157545666258264632770997346128013615258309359933532216261126276926892208438926049529607780197991034839525849010392643965476880280267951715051108268492365979329654879177409627577379754206256027289178949628730751044125741774720846023070225917881447259376101953824272718662223444776193744609553776925202487098666912133536425810824256775419454715279756080870184563882722140881023973453418410175777655460645331405303792087005179390526902224318025998010484450128619976578637249870148383605097907353027342648813650673481212317889284719775641984585441061914126169243154688424646476485226184477800233958148866009880110327857389766640678858380771915654903573611353965624815390033089462135583693396508411720148032106100293493504132404517833724516284174667319927602036658445400316623600396340509015416385369774148783173126646248666205326134643593994189236817723996856267742477070844919442460189096507201835098271740619072837552491427545422279758867793240815758472720335960665693325244200689418015714256233384452711320545886530052732837429712692523597520093426014789894555285073196373358085109650694196680874628648177654736568287082221192639437822067366638799222723997301973000392143104192045553656592750116412735883294328715423701459725692977608321837049907028813952334636947429701290362959280982942407328253857825109830806731560416975415478565939388723931982736587366573971088346365661404838450892445820707288182244315443762055574713819778785264346869664403118116326183203098033335823451621799742800417127162611382619340043132904871122793713507385933619142769236351405541153885105330293796830172225594097729739319450841023530454922565649220351494390800398123397961919913556467728284237363478477078481250452763382474818296143923533278117785068627441297784517549046747111922590259185176826319032499490009122573269615315116086145337315095634249575155208550036636013316159580252750406473024844018535744021902730046594921540254392409851479594944508517880440979844147970294274849271436996801794857865309419901367822481895460329808246013930174790349573628093180252800517357212583746299147620711634967340868237684766266706061939576685636790033026278382699153643824588757776973649732893362253972358544104757670848557430506091580984086202093273284487171777552150980785498835025732161663007468125178053218910322986812247997968311744509873713601121581939768958344570789409324420176902082561494131651577412548999161930492440318106739674693963798182607197357655155711673198186669748641018420602914271602648575823487647346536095971766757057758444733225165927219565254069205004957477485675369937352434861592614434632523018005499498670675704511327357326708459091228107099211688540102782136313843033508966690098904932615678164687477817663847244340065123580897649811239810146388869936938844951187851390408625136972548060410879364566408230712047999228462660061053276036980099423388390063850583988226273471821893823750920185697692801844211876640953825926813031502323498996853760129200244725722354611930187880159117371953392780568875944861458250210239839332284650437833644452927172172345291993371632090531894431804307777165870331161853016142230999027609590835273775987028107814452657634244078036541510004659066301892238803502986949638633093241857456608710214100630429205169301028462523324045197057027540004493020516462804489852377901747506593334397588261026753216472067647353198012585701523332279290399977461466411909973969763705512766524516363118423407015227052264280406159714976357533117777410132073197982914504789442561221937112292747152350613599043451898659280116707594262307318344971025405935256647832683482867491387377969991976162559472976084525249138239565432408374292406061611703691669857874087263982574651692242353576127483842716419726076220742408124041586356888915913433534104614304654265047996555671591124332695773272524601922898644250748748576208495929751767056816971178312075968122809072586911530653325216140057999828425023705115942159452209136937540450667955875767896475198350536796969049269585275330158638090700439536228511218031563178258024396430991782944680724719586558727221744412843482567630114163156786788897816366403372377082753130996766191123724340792540100691442614547309288175316552731053196550625672070900304035792426716865120450631815933959141797262580005837605676576342746619430949436855851918695506964939457626388660481096870288422115976482684840765778875998116602725771520021526305349464346749392968608482232077006363762971449360972702867820728323626030658295561140859217665612694156593470575845517570251763273434545686407413242909119137333779171455176368261030811820708426766941644086041836885503650524697243944153320540103151996290897716445613119311591678113704735825044722718829409063016331658136665206657180976312721972778001686678168276903469244871407411107227579172732791756565479280615728844568588591563747728550914549181179387231811980615948847479619460418422648478518083673777478183228775377895070757911057130305082314431927559674150265859803673688327475772411095678477797906268786003937945128383229468232232576039732535566408808943547168267413173643558155081424669673073167805758995731543636751102247975041733999225379155209096973445754251247266515830920737858248033378183897900111682786170382291392833893659887769857325208750486270398349487996504636182408150720039168974787189051791207077082977434137241900032693594730263362329027063941316722498829399732666186624198235821569634315491412829766080070558608696775081726480073939947958087668729487848073847806749164122141870040649348447062353706585680000588625106622557331625076722530285267248231417576824957578573659669971533758251287719127645494726715463980809912636446985146262408015685335986258785168302465238848032752556715997472745615889825825082702754118335098216095977604096026139158814952198634851737180362631345986786262493971471494123227052654446184293021432767192106151883872855532431591160052973325445841298747996775476114166234710388872811534781553921572969587486470339822501616643056792254204650573907804139497208035255742661751748114234265367131699364961213648716558517292109026257830503533965046299724733784037188605281650497269080560399143914421328688040814520818430507541913717519980510301981028934083171930894844024289149090616777687473682774118188421887939679835077260464084352209517557467034125960442404461167632233516069808961822049583390051157235483656680302872680545789944255228829937311129580754179753768685707989848575354523250578144002821786097202823969072211343626089394873875250032312224781877390381476330249661470777772500414745002110238673606117349263285456716515815304752504733801165184111919911900489560346903823746986056210145926830539606295360342930249890403778739879776583047763401614894862081085564569164015707382612065777131602473326347528703397566517193225905944546425237711305882098125685169537687828371550431421527835312491851269209082525751388087962265819242459629641197255447733734937072392570220461469748669085650934740974922891303113492072943895308937623578590270335730461264756737822088976292570745708415481307664230821882697209491697773936699654757650339943533006519189608382859889212569093064210330696046268953568127621750417429667755367565191406881034634796932840949185220383324554761423299794460644732019537138075107529052481446056836472823469600683563738874107125179661426659586077124101468765805758343333709587336576736684144572188121737930356624430030973311696606486689712114762484018860240470052320309993053800885078591441459235844705707481619557373487371022656666820028323523121717087926941246848756792186413337808699067657701980909541887900136896134522802231229252276955091905277768898140536230389259731518641845765365725137816282148675440950129078639058105292629061442738868717774592529704592479227354496871876680614232123940546949707318251914255498500331816080949656228406616745504441665187688418647442356974596252370889061639987332810912593323039660268275897645893700832290039659861157463439915666415660548375042184908191949558406304237045850719745129967441141936829004254925268925881876670904299545654173635107037531451662807576021270633035982590395940895145936440037761446672190713256491791630896790311272603631267605224142706596589721685956292242087628919534006459563994797819927237201528040244549348307985284105638218305646135342041451310217357381142240269794581583667761196306735849355755729426253366746059415690928158038160135476298230821774088447034538922391167799263336635491190707523176882850466366648670061558298369452966158269413272851653722978826370960437517300286405126971732553118110616852013787985776470194430257071905915947251021632123875103564083433389578609889181724244711103240651179288473712890507839188525579670118669060936707592625212896936122204673719574774318970487659486025403569832492630120961372362816991951761342556062224651877967470167495700641156140858592753918336182148249279356906846764951276029432135490137238726152930231451156665992544856594398151238583623290330503274358266754858694361117332035782787588451497318492967799453489386196401414708332996419495460351914466677826403348486186700442183245076224028684788526728800417019522619152977053144477250135514374186193211514984212380090765958154648313259441459493349985361842016266105077449231008003093862197925119723734036371467279828914145776292202629039355363330857696591133006696869445237477433697641382789779665180408106239480781425949121480666577470441527380031378567745191646003357222504167702986202308075054238086979859423431567991903766178369476116664538804919205670055073398721512134996491296094446567380519248414239511373442986202460675229392654116554840683726480805930426848367200722714058879965434254563488089598171725668564891445971507627203928377591726933083090572906541349378695977335184660070598937127914557310783970579814813861134697112807250593840008126101876182549840610133390382605035115201739639982997592927015414044374290115805635930455930504411410360960044175051990197377529660815158475179939016370686254862251016430445606937482449380212375955201860083545146993072490284496554026610685305858024258712491449466144943931462043665277565301596228106070482404468275047888879641552537208108435705333139210373805201477244770879200914033141869409517150961463120958937332757860808944459824865234119245558151974687982740408232287928001654119247639641103968838077878225361185439121396077457090836384485157648418942966918773808592380271500963027702192298636071803679758710837140664581954309437904252229187672403658387660660156710981971091945608106943400638377270065927391539506015161765371148292874614324680832537522648184619208809212833248057079279080525906660909915318180685704154864802614782317152756409442467070035484138212757773445905621492415724044259849786642205265134523016097773213306648996928856390782203165614539117432869185206978721506492772270056536444347050232740611645009327541923565241311277164533688336918008786450677849195683431460849843257027983200471164887545836809624277897591763680245907283963085084293808443358641172639825279303886406296396490567744084364273339160758782755032391511250441404504196218147573243503560936207184892233556728798307157702444850829752565634870286679128773712076096233313018449718191470557207099572236824704512409517970764880735937399290156862362498282300949930608550175704752362193500296528149506812966171293127686179287451469926598203586525258730866680217538531014381403756247992813255116207297166406092664552428316612324964705730399262015936089782217146028837323178188659962463078726727143389853368020808981412349218054334314912981359092759660600903376627256020010100593288156332643737372781651113126579383752827376750831684749574852539074898961533887054893333238562683314634445490312677564158500125068443514463564960422664863093756468377450348740028783716136658499784146922076239178384856417133523887807301478706800054950816520394527200532559628729413033683562495588899932032212751913615581640336293579458991317121214482661704878679520044153610371782781052233542517952442951792190003135512809006090411686603114161246362232708891807569074954568307915550110777198486847604415541078036479754271641692282494139992253238227054327198135497311304365601837115053213245174472642703403058437253849000425824011022603532289013798482149582223960203034012726995233030589160509449504263347721812476390656103820323876764227124746860516728786118228812712230214112049577553060356418268085606683118527916672698773860262011162969631706610051627301820505517040527775940558895056884932648792612820554632913946502366230349993578406516731682354956476659753771235316049136446779616021592719128106677556475605217653831283465760540874747791377737065824955855455735161828254938919444127493753147989382808306353212234758704626947569474317873811688505517523561643233321512155455940400396344201761101476828951039678176155802892418221709135375990166863059101835826773975988759730592917766606826762052001671053140690403606197706713043068953816301703899196106485622138907184824274063316208841144421011994005786055419138187862748254803519491120800626567308828214850535577035983493567902979834110449703690316017440212287947903617540813607849249691384747643198203991508961735986349546512905672718245156195457714319279033462444904580747727505086676209429513922907437747997240598676964804549414728496048540338582392589990286657185587594471746829872060852155117602295912909572448613942406186290648368022559137007398474883388028646485666186091918580618188582539030815602461801719815645628023141414218504986203184672747173478230168631431709507091592517551960944715571500939947528262835929109090061235526179007856294406091619176506817808372283515980636212038758553150728695741979510435947431255548093762515082640293379454570376655881766820496986640173720985934100994850637484068378195791719121947787745218700383963598922059530108887972154111334379714799352078683701650693688814186147218654865918643060424612780977221716859865916874166030985641594974840459673100837412424116330047098517543706761167646297245996338252563713120570737952534849250020693086518342797777690919648675477237575064087208963473514514989995939337115031413406482494812570914929308905506399094928352419177792138900670749522991890795776954102060225950506590438394582017131745495867091777136965038822411362218200306274058173817953040759036945163256174293814111550229952354408880258856117820174642584904981176592424411966952562376413655648623867439876995490425940480248988462821100447092187430237253013843529218246917197973453769942545519612645524778029501330826347260074838619311460059936315156401481302062276484487410887048232236920769406065145234874964215166130251328909948076216786528978342719838245570903213420593205504881851634877627469874677278756593659407099612262032430409677059998001497383008525217235653367828424393171393121908553877582951065322762506089472433697778535882293951735830559106690123517790275879289569510600840995816643551144823752807009526947559180815851864125966968786506422557597485534372413607901899949478203998688847910979652908047915781957020838834264683953618300741892978560419641633458279740851675159359390035895235066830028317421522905090594669465621696917322252128340487404673229986500375619540019082325771676276936612637860218500179008109806270795753866286390872324667545727855702980769879183263703450589972427661950979989598927747918692697622297767087182237596865747537934602968236763976050010443085470144352097314394526645214445265887387679295244953260066606686988800603469785438886643692429409254420836846830983387654585401848453618769285053889950715983999515039996383361677619004362154893110910525238614580579561958284806110533087510640080045703177804313847689812298162439521412622280802154988953083120296392340631144665672842499239982990389613718769634986369473852502715401588433895018315076323017605835679573540369531469368112336923503031655777027584865997644288308801500179044890462411087390809408931955802563602620552507728665766957701909443920838164213629445850398283578352901101901738023354825553701465262817372797483680271560430117266643417791301563041416382780905504496800324558050479931568950461270375258284718774683392966213859892590179340212032859680983262837107475272693675019981436773424922195671667138427316210962029194847811952467277908233548644106976319654476519895267054250833275394462274784282133532257295922235051812352022875114756176096915119258266408231920724405617950728413178098572933981555983262475321465279892526591548734989487232637003028532222184643208157826075562219046997189445307061990672513709992167232796946003780905548105723026025124367626081958721564490197651616674973479345928941201290025781460966215102057585548345840570931049822954743661604703345015004574821929025572212915682019756820545695539219220115178553312164087312327620137692060465873428213670958512664051084464103399646261603836175015250615751302468884969468934850980212921920266055539428504025711616648042480015349199393860961914042013212560678941370833960738933087780239423907360931135186471224259797052935416465399226885745783105073978788380717782557586830250653860028404081033095404651850408275227948169382601393873040893647538911533559443687523419643561257684023963736331298289454282232166985830205861820614912165132835652364347491567770151064904507150283418862616430407935743123637788042083029422089562664942918809589148023252117633219349291615023850387717955393362949718805568759770209507667301057181078551522809774676425180919974819085801194767924740599872444399472588545299960291437927982312052260867459810914142413638315371591119979469340818554491671528276968448767846232145793362585411142825668368227194768912129574217275833669966304058106052329042601068247773124670052537996236696389942915119470324828142655382481154056798216957951879428706374292351889311658452372218745546522715485066936965144477330338198374998619304266291871697093836996631547570843924666151401391639594123809480914484879545504105549783029317881663124124894097877059274260238509109214166936819857121802626376113357699543384039255700227540884042066199171130551484236617563707482717730061840163046383154915403023795505552472955484753010153071977162896384087019411407715549799430575405017421909857181259977677788094052610506899476870873194846498825124811577692692727305203831169215532764410037927223595515714717184031544652580987106278173121796251022405174993460997963506305697699082313038781752361825529337725522749846613652407546290975347380118106468069368049613053851119495711589617121048446793880512916030529111463218996669089180123807148361045781524939652443294829810601923548442476128165037543982055952176458800181350829411171601286106960042421374374310816783359093048106817107910248423004956272132327253983461684267352173822823329474798396569491496190682854873497008300318496643068056120275767390956057475818027973078486470978476956315335495278226707185372358821493754770707567432537914929839835020507215707553577240611494819492987183503685335152354484680249707939463530090202319215264978868764538226463863930753537137017131878671511565126883048637638716507269037859590791277780235837740531972182941992517618859731044513084380593854174088204420440057592680118464574621091669320759434035976855763715924665556062017960688771713536031812525333882646736847709014746070166452382136703811308531832664900679522326434761104284152460329960788227924667826192435948944067052127956276334320088598378565743456110022123002543248629561112108780914697139803524174723837652970310543875483690308365380022871780954812909016794744506656354179399964584567409277776265153287500229122270959888235967690407626210876971848521970645879650056445933229967106058545684311894770825574039065822429838300930193597598570701498973542214395948568105657965224778427494803921030798974871197607600217517974044622783039823560632768303767313570768754351742948478072570010971074777751265393138584439842195949096518196456975375055049356461061197912154496892505265253023513508786522211479910652680734453753129124250445701630635485147111423010958395086989735996502015272151332847901544346531388175702871345855277112481938484957796583037026056057118364773371526344286273159745945815218509576662022826382892093524583517712928580629264106178664083803013743141971946998829654115121452662655791238743658330762157236520852659921847851418814935744908636782323219566491081194234181866942801902193771889298074277214775287555724330959723394702960454893563448597843435809174594733208685047084904558982824507030572950683364517065467394123097513522623178586669060346257849023684155133240420493150598198838555646868492365072832881036334259882393036065016268856973432509500679690308272466545057352887711949744471584874092689746387826660196707865936537831529818272378672625684512015623467859703754940702068358173292891884004171273426829934137816499027257098522619794766402903875113606955826264409014404450509780696440964396054839186697829262736885187634834392402623528997029499317089469170596068639310876324922640331145772235482284098814277998589917297305405374326459897678162408320178430099751174839800973205698562106715653418499374761281827444111985704277247211791149900921037480780101868240933606966160030449356082866587331451405997484199922988363620577101445901868050205598383019002445615582085419964520391356859959945916574325828596849525181048308937870514663655063065313038391757173487435911428491433994873365981739740326911700052352109242847731367235752710515664419283566630506157562544195627566795346281722140686541627652400597341698764903871796715733150874588993989753566500538355386943839205462690409030130080013557232971495366758585882104146201587044145054259214264152378077078431853669306653776947115820855053856876870500992436662385712656295323287150579033981387946760387755500743496584750840419637679326301934046131242503255072673929947278907178528792831646876452817871448907353181303438641588941824468033754995237245940687658957668225342244003477785834861925680904343138001119840679448529288676580406708073664136025629393379134584283602260060205692083896681477455924977468366213717080243817268117625671377252634879481226705886705576008773208071518944438315512881370982072051460339371144972869048317555404136800790367598348359057861359894042379186827157791315488054733081805005754103038904932448674522237638874586740405342333759506625787104739136560630341134300973098516743321409363482287825490486883428000760571001865966827643624641381756401203389490827754596889949660802916799167758337217903983010549767168583984148192924159877830085237801226065538143270987977329686686137038770827657783551253174657273855194999827797460346788315095565121165808188195216776541476868166674858135698775826606416105556782836123709787523638541603499075956093169471602715137932966320551663002326888623269702096883984657291776398362349596798375918767082101315661571822737841760209583188245129582832893698965960692275399554111745947991682552305867048893537560064879458056412567814113101921864696688594767875276981502877157370202564546422951122328310466982855958983290626936762494570726325102064158106727225911970226848517829962354593918391581382273085930645681674830559436968149277133521979648081658537183878348436301677463742960762440029416706110325829783538355776730308066601616179242790250549411387289413049558082447826347731103352566724068965380608727176944935092817882655411754262222978548628576725649785556759427376398866139614620089387218050606100223649082606268407460498851831933803273528830855798240563880238883199972400881810690289577997360094769995084961245218475660248181928325182809057142953621405651225626616311722805550360898661921950491053426046488168474693570864674426753626504680137689078167422434102022358797685602788956223668444897673631245950128417837587335281702310353195015411501418445109325963894508406882523236897629964984575461901635724388267638682256705473832497130878331305640855106389583824752956485837553262120755299981846143210232784798651095251411866661195500822955347126336193670788589593399389057808923645433158882713900239240840308236608745267214455024942760311141106137160276472251912357751254465284017255647890348882221112050006056797678682457502677456214161965189680252250623780821733752832195868168821356045117148384085858777890913786247280759409659669483379770899581227971270412926552138494044507424787915918952604244411273617816547136055833433033607913472034345136437622676906576338667389039709032088128829577659365756082467437930309421560900315931266356901163164599840742601986568202599319381193139683968658774000865666422775941187694680581342437867806026631952262424957410542514381674288604750553000747969398553315362960021316484273523058377930042875309752813648467806316632278947302958209019697246265143739091395849233393134033314076443698638768526588556658952284373478132931372836348287276975119706891716639157380721007640093709895582609260874565916003470629407390392463402131857292494490048178284175166200913133243989249046063924466681982039393003685613519695203903409701949550351867750006118362196628312708813571068890833707703906694045143543121335942128625944704965264647062836641587985245092309751717337006021957103527272813887261093291896582388981337390743958138784976954839172700273600431307041444077723700632121250089655176458992048811037295195948281198222928014698092814837910248221840174902268762316762938685493989897812326760893297001221885292961799058681015078135047991555381226670805101611783260219477839436096234100094576650195464460938371089531296747111719181812215442186465323363529059449711114460613808934423111134537394119378144829491904437752858098867005685462066161108664276738886845537225995608521920290499674874935824916953393141624759075131397524554752873823620056056629889514449910092181362999070809436076809767782242679110587363293047553563782363467279943428465561873712203569083189756210575961711215991915069088345420931054260667995295399479099925004137303842151511005969173703793672260572418357385632823820375345334239215303163702088581006056497942357053789088841620157482987922523582219292026502922812445648700810275898961701506478222085835042975805039477913772906857381998921794700598530489687024729748970242523112035019394584255087887602123169430976998242758420316865234180635969651439807831676643561920896096515595081780152457798802480529737227021361471782567924369941231846267651746261197092641919897578095118274607458803818362218904496749834065073834436965530448444493206743419996674932796048523337243813372403858713533907260933454016912010097270508530891016394452351141585656366804938345279854717886604671345818251736627098328592622754110665169371662362779535630789664958207933006579049217643801944400017751665098106141641545001522040862700410602599754368149882508445293522193072202654059432764424629898895882499074221437432434330446708377950791285326213709914128729826382323035267040748242340027917581183958999586028571356399578955167287456595313312804515524133498878690625246325269074723970570894580767049960734596378790567269161259132292277258788012233370039184849228995535935409478543840904142480783753933462953678566955927972307088340949201157464684275011637603470084681363569766878685698451858731890574849306414216307866202322073499602482396639316870963374000583614630638225722973742918111657384901477165311643373654218706804092602118843455673749418571470854996194700418475179081331300028527665008619945676523465378651183469007404950680326658524317827140328674104939445239139811256263274003310704014528555225358459811470889205385723963567599216870572301068318618196360184829085312253824136864522364679906616827199764250885335380538658602814333809692712403536326838616419744564223891792127121320963433678779261750057653573818229141263239622172194436608207400898747558556706987536142048081958205930961150937721188375463747743258179226304092709909009738597153142879675240389010247943234636298489236409946670738391305247534224290137195898471065202594298944287484097197289767536326569128283010836739872857003572509977117692053729316286087718600540305726705903986217099714573177213704998466334788719998052248613243284151649907990349685593494517254372992575860331218809142720229566717936005157036004103510610666044101541769757221484297196199231079781145329252668059244296854955718896205742847339922074840012940469928033333706887403861330497857962839210475687429855532053413928834324982429038204589613819711588576835092093292299697591948089538006074494784100191907817085323873770882011923952105123717440487197741911604422463193586380096421902522291330780907152880050032276158892315456331961343589099202354088117541825627985665089560654086773525581679522678960171086911330898344689930741162196061095032815451112616055158940481552167346517794894844944385844093608370063374086447674553597830272816049818244892769901866249435490633874731110751825770230220316992346264160322856698782501694259144466943172422627288874968605479435257704872538392236121258001830197498304050928316374648956464842861715872734561027065766325697364419051079461152918331281850230044588809511398779826425122893211089977127153810136154386675028163668524534411687294101155916429577535805188933216923201387708522155610135083512520040901835227356953871182866860704090212841465524048857071097277457520920509834069162243463354114416365829921054807140220564467360528886823656478639470168758092830663131227681305773040310871781011404599095333926303576952180472088376801880094855315432027695381014655783529590459554320113104615577543039892777768265404569201396290188183207390175401470905955794377126942686317251827971528294146105667388016867353253391671649800156999209591629027949460072862587124644074244815903647350767453952382582021700647551639133036450927586543112455162574036994564565459428691145642910063354647176517655667908938400288048248974336297133741481895784089292727570925112785488503903170941288368553416049795397479626547960866992942873131383772156815357932035100761128265648024183934693088373317867362006646738160423540683885266300355697363081380886214121812314224236653285726457979365382340129429800930219578487299214043379650265887297084453096454509507365849148459929215440818366236566761198682838871581822644042252214493151112551494878916626698800217829365789969700695817634924646064038115169412101311325536150608163968931818281622292560706094801247047343776667959869554240671137755146386308906403820542016391268238922325673202852358188270499717287427149930026135404957885633932622447098203398838499461448488986887680422266792003018331124977262821798401546757024828022442705533889660175712218751716061406945386129665992240118331838697321594501011839647208642001030934281384403729393956899738025203406658932672784440584404540137308664715674015125121547052568414273393608178109400075720798658931040219433211109044082205580202362514364952890617443861345212007511508108643682910393081199765928698276083314624059573982023533476055636281705872955703938810656658479776298966222239874088785535496625832861032607223863433169832600015608398036100208704599838000727731235586610006881051124562303795785188820561371504714653393411125168073889533274973136438440198755513715084264033271831046159529865219601402936853375246029897248261858360016868957640616073256067942343355007800798670282225380346914839139746939797014277429573855812622603536745147926829335378736251649246862977483461995355355793128347116469423332429298097495507490397741202702888130705504402813303192663468594544702802376836389582236439350809178156775598301284589243391029060665783687700690539429939750232727211295763153113779277071078591550487950361426265183332288519491548538519139195941520121429290864726490557476643990560724908650355347923256550406743501909590727282954681191542165452316278599696854578071711394304964511732653879110592386619537956342875213729280826138251014238073122296385266628827004510966148759291551584449826717956324646881639761495004074627629588143049021643246561332167004418166541250723363628426978619043987493846740421825327598220698848386728138617245798228048357290037287568178943685790767125715116222268903436144997902166357862395285936060534639494291115681111469169591050251095166677895779320444015454384865527768711793517301468975839558115297822728622778586430181428376308520919604944482363213420731506874911182776162575820847948014585357134448734414782999566550913487057562198256895825436713983675555652000291111245835508886758513832103502152731644226416465118211104198948554441576111926215277126202774038883969462561753626652556989335312092748427424879066799476303527141035556838689647243244336403803840900716086886446592906362962422698012858521202840099169367546772488119328304199901718604088053656602223237862164845485381094578761446758919021257094787614516526391683052282196839269411533043658282930693404583472513614379679386981876343596151548458768856869583297595613085415561795941003540761498519395041900319085539267122133154333142386866018253783694280358355849436937405714023114882075379775812476422835726799796267715437508356174645456928889791138953020250076853288007580576023259384352591386868149292294390813458461466070577255995644758307112792283663823793322314123431796690558642678178944984568181067777792542731460319090840986976325718391292432401862976907393572896383320637766787468388892723165606781394736089138789903700803870148575421431489624272907471182187918411764757878838503656961430115076851022861904334906538072065555445398925225938861237739238131300586107997632043923045179072263117157233403196327720051442533024552040431498299972360945231447399449929330688751563146364995205713563892702276380778655411492949217663734036918841314955028123876703921800164621371183367619991543489148075730834489908416197719465833543459935698251763881682681478033015963798652369519748883398579853367506067780859308695515257966232450081158334485213021911071678779791194611954953685979071055830658487879943407702314205678662595294630679226189708844513513261618432988744217190955884612051916899021006816441980783450795511770643481642819459650277787364174377934542415259184290119556073032510388571070513000447123157479564564293193283120570645907202892654391073289547151326927538872109162373154052341291381664800332540812825998644891456194854675585082746713702065087993079817486314373862654139874463411100445207531795587407164628491311526539675678059803926664330206104102799436658120007124591995035487354233544756553920633681084416897473685286760068331976743067539333131463137605776100687703831308193331398849303030690895708312255518479400094662177146465380556459956677859380802771519838785063659410134032947095789212974971099641338435987368053543303143031233139126869747983258962911029261410106469095015889628876329483960522063708565798672346069194960912442984119623809041404300172351964674897529035359786942378980024367140323173380026331334514708074000872657749417434604416291743914599819746556502539324181349275977088564841948995519605012858639280887230255512528586829365079955309725801169302735200124834595641374766437987725275717261693876031119045658045682170617766494708803684915460261087516478803995621673402110498567411301050961422314038352918512314641037164597195402509771421297996947151611075455957645426719647779625737724976087346537327276338318571738750088951057560645319215206118974151309468769572232106053145786882655063010042989598093357398453480581901271264565941697568225416608553339038148092643173756357892523409697832317501904015324863049443022966111253768165925004798263415751644773119248420002916482492838645745570560439517122424453553503264236417422006876420578658262729208020940526770706023817429640392363138335253973084913458085110052617437888022053088845407581143194193635614323646840376595149667497218799175048047624507647222491655896303395020450010614846790193401875479591829873076427502665200270341113188637057610994652727934381897388331933239552150587000118938059370808296984167161618359952575165293366776385247302369751831045438348489310882868226741800106208802950138818945099709005662233744145465491328207319838526467479119112694726572697103777631796433604498688090733962625719633278063098942812836919027809014898400061494748122301569268871682190659390327802768421429881572498594775012544197362106495157838941869341888754725264724378665065997683020099397022439972942352905601899410923652091999268233826380099224317699769990839474602341980597425468231663522032072804517354576981126835838953793595405645847929728343400146667677883185446938753983593954040559796693159021503339516793842781388899172780516492181576326921722502363695002160297733862130790874248004914556130169106752065041709862585370874839913994110491468238879836856793912716940406459994590166931960601549826447635105929058467287140543920420229759760485380027985226479342164015035117655374879720706353534954791639991098801848904522834881436214955712257841252418708745639785368907051470404356910221963528798975971906324845274858257423803640168072959997223040698559385113684561520008142136163769467335774211065730553582316707039119191677102093748638990571820497996215221011790583082897403998967655224011334499729866227863762913501834030484036662882399796554180091524911246585317566732179926321323120917492635177229284985221343328791999742586350603614275033523776377452448205188733651897570637114023236776451958410807327728028270282030770233041062008690918788277359499524403088798758671924642450868756278166566336895197506053031217789107578032061395697228354890484063322823553634849692930380774718156940539925667796443335050161313426750748864475310739693999519470502001970237498262452429880439450094042258955740451364027536185532900116864257432052592694365284358039993019824720317479481427566817841843190046794431173709062676944358342001075611553467877833466231081903970224535873855454048277460878969282828090928701364229024562682721362224390708761093444533906373442544154481884398796867608581071395044110615343227984572346986698465435998527381117961139706361397922901996591329502811909777151697312957427344264182412825662920393883095333469540633423291991978821863694061788648096618973992079322370482542044787068053909938901951096084487340218103347818383869114700925359795997506770075516338317925963659948817591372623580448506577524771437490203801272891058504986067397027372074555569437666012364609450129928285981629585485743967458613471618431817603446834634253544162869740730402856751431750204275727279381709015591628856310230477246334732396764149213768603179451638655694485017983172017779062692784789054213867179103945662891864614295294522387270055388895201232569118073976299085640958557615307277570214452635942786111988751210267591040827038612911219507697336213406420193495395350508218880532698614925691749761594388976459832182752018639924715544367491403028878497155794359867710284367542300165715579304427072814701081543534143440183268020437789924523615974323543061379428072393637765599672960350188508144208228125693371202125913015268795412917225634440456300059604011123416518098408008116010526753860800642399799386862602726094313335083464006351588405130689358091507994680818276907825691405233307312273869213882697608309592607713094267742727141325819239118011096673002612847489970796240737085770904719806388668210657190258661231192209117884627467997865076677677977664544908603684374967463752818616098013862926976868576606494419906985030225789662496656072263023968088077754733612935268601720018889908813577433702393119602898259854595182806018497418623367901702984487003542773922532102075568778953040548331647857992312587906235699550127422228515787647809327460458593689216070188728842722296756119259778660988476823130898214847979015090756392903316713622628520881701733776522627595422372886935833721989224157932986140098083728235767634097588329472752439271781727255943281585103012628193591478177156298571694191681258541521094376033465251426855724455558920483665729565911226766340291046682178073255618103810410426569091029864849781131006994837830900579101770099205659201382433433051946003630859103955472059224180695404411587345535126749694862543832367910603217209625679316244367289573681354259821226666742571300667418168491236951093440741574215145178159794487036631467191840047629063127188758996656164944379290114305955365975875702109904879712179622793989710447541869161976400902830487650187618495541585440467623354121596124060315491826842085163918233505327050416157341472496777553346288959769710160700039137609220459785043331882175427826802779639182366171172336191229949522665471540034015217160824394922477776715386999789772693520559003661403239958513790744172523501474736217768410473325218829017183352771827474190504883735101559796364627080359036376953745872544693336706006890367012205069363946206390677364745329022479427761569283537311111003929019778343645187722650400237028939624448412348226195059954721810981584848306168999789887332888728088247963093936807136383595030596089816268503394119713803184527282797928847984661023663759411010481665237914203558823429242950588009781800178573141355662706589329427694569408654207965252644913029229746428465837124105693453674040216158657128652472766021387173272445972259946366528118360507822389016408252257828971875360864911711184326390924779797988994428783819315935106798293832539156753678398290030505873565000774712719800072845532644256290149745114987077749471334760542029203039974083651888710247380617235214191458846495573800711465615282598913808070637910650249088852487851018484852698587344718963679595664014597370980384166836782799045264808692622452824252569740262551043050824489926013664649543795712350928211374950029749954945571064397747904557184000438188933206521410590641702430501673016954868516039360598572916836320219612458743177657196291253441105635343609214462471722488456748796032577913333562514977195981845705923147758196376844993165004129642136829863283982933448481911867948404096887933268545444834810750938016382593200082175040868905421413783085405033684751558983675759562966562255336709346668668406172756040983613132454145444040240787869797236375565669652678358657616443479558230099278305596350877217146392259523731240682619865818674187722045116858533162948882338681273921043369134881246934328324118217483810438163162564304471477508563286980416453384740398210160336210273026488891288045141191840069104765906413772430267797203421696803373400497792430054618226141507340694307925939704457395034450743948807909875546761584012239120253038616434111412289805109351664232676183789523557965127996302803436882633932341248050808679957793990252797556200835416058697185810617032678919022160736447591758552190583759183913631767825478179218210391879041053125369487034835414587172327414277995390215492269146948018695504548289195732997456816576116556508915652420195816324293298236081900618458529946552291883783859422741310811162814271392499958235583931729372526880410069257310358713608900680422252517133828038144138011930364777534060953668415578141130173687070098612487063841837809599111226511463318634621267175761959911511673586146670558288580739894657820110390087014688589429894599467040848907868230533067137005618002861288379550096994553534492249790083452345732974179614078721072146024401981928808342436689201538126580997911829994652266091838265589286387855779285100557349343328117927438738034454639710203217466367551318636157411547585295046575231121689783840377061682298125452019915910894802038317726515563376372560169568718232339466406180463363342701949738399762713624089738227644674987676134240771443534258391482986163476850405183746894036717472857533540884851195302449168945463075616600696735955595807200530102063767443818364200564639392121350767177376566585591188996451053067101400485290632016404708151102821571266755633171019522726373366595954768331385516802074709248952810355868451712801997838958073682261574887067865447862257038886464031458339258631397697587531486890986738511856110373636185306664437731583431690896164611419194349546766939408701757721268784122147683105404032332967603351574593983846637720767445446573928023606484875114789996909184935028679799625025715254873633273510278316110687894649004420217065149190486135855420434643420286886421643940641425959408700283453638337861005275298746477387155056655737374438198983126851449942427063414986308396636305311409650168440915528823713565896693642063951981380403768389916345881260626819513873113468743622414599425529315056972626141897944360059927333456129260771259657076521540708502687290395327139639201141901847263630609483950499236528371329301644994544755979637610312831539604331163075325999375777848582292218737604874052421666169538817373028056038281302182682712364976448085555182919289330802906516662893696144525870571817248991822003630772920363512042929562665263650936925979195347548552995875951026535195506293438084880334134440098992150025988095715838325776309534523472320337553789713849723413933166990546917498474922196947905202869451422926585338857798511741203823138920375181086904393210649319838550356677397132111636835627961631601545348776234468411607148080303271827662219865527505662458472132847723144619344041146655646529698640996727064646084061319604092823329049996508175374558477353552491223922456853703230694590170594611533431178485911854124161591236571454329660525310241239551050404709798740700112123988368101142096617435925500835457925467153674962651862979097237317608534771464935402196151669915536185484308819932837430780148536006915841047712279924103297647143281575675816768206729045245551067653679720763262436132309671004689991570231254452445446212923719941187432432794429047149677362296877934004431140883071470831203895944552213911614848109191276462962369126092952860340739366868761764783730273312106002155635509584204422713769386133648699855947165772228412968909860237810398706930674545620915685495709346184296421201109806170658978839295557894580292055945392463965344106964959160279322864979997037047366851342227881453799572326567108548466038886675028484991070645463179324809737802022015543526800100615539034578959959740354654228192687562274713314541983013523114146855758766966454526314762408719763527211537904394289217161753562262159678472010956431242795312440406826166118537519809085357900676393787335096188905992958646974514077939332902780446651236084310164768373410553030298109131993013869870661536251834563442297971093809406164221359866136437494979079587111215565020405728790369216389127436576363526787527751429384248116311951302301880105447124496066869478708037715582618696293586091439029778364600501509892560801545463622333845426521917780530577203412884794368573826806596291941549216493932452069737336103093345186646550306331007587505597818281815182126902129962545755588276234198556625121769453090656876022647593440333439942250787639334111915548824565034856160136902436134077482032225391581666411031519225372086160028670787191729366760013285471606992977913372335200558510089197892983696688782927012367041595743526456264468912564525697698643367362605777060782314862569283654477591935792334431457211114960109226997527426922566066501666577288738351783957298573842381554387163877583910369169803273028845818535707894082091956749591959927735137705110828670369730200767360163242205590998076929447250467017955293699782433151073429869357342330490454008910644000510614941927360422124431738480411808579126178257494842543987482392325605254385117756593538752913098445715689980731030966562281870442783681028766054847552861520281655281597718331469056790376335805473267496169989253307221000860534301903835880627790690266845253801314050573268995132781121758039370831919452676692448805547582004451139053770423443245389162988489033863326698399835078647657260932149617214165619920951119009716731914089761504795249279700856911797772093112485018816878940455718041339886636982905420208263615675755648314033646348384784164082535743313283059346176597864125492779867294286625284692471192558567197527546665249369136909736570721038190950393991671679854224881722308576943447087916669386786730986525527276809714873999177099335050055907934650908010960090207209071133806472343300396192576539965955246509170640928290813890524572770553077593096074599226920943019473255354416335108436208637265860718767703433779041743780102554892282436536044756050218987161613797116184048575307307915276061942124197574775654475131972852171102258650939900652769712581309211480714202510907456594251462860410062914435301935132100377576277555945049812137188939441566591817131537789967333707284424811009565547104642277493487481503546816179982510658053723121657550776083896896538670947989187064215014159655376708863506643692066559868544625633222085864985307280256801357774616943532751414146826052146208323975331542455205001164594575359120212584034435344190331083974295312205027161570787716954102792021270318574593065338960223071318716861244948905153610632344528445377587941249256488513588854838709606971688762399507546263009556187704218767781998418169053420464930790703191400605563695184257683490313903765004589414841786914966102558878943571487232690655731515761465947241761080101239745704513760739194168146887566272471417896958909100509937389997585615295967263937160279809812110601576021402623164036220072032497918821550039719722761850035753965712929081426396400201975436405163512992732842935187954695001882637497114791236396200696048359259849247978020635792243262324271068363406860234807194996692752999713049150498089139219621945600627646005361241191327995028208024298909832819591005569744912183043134069021991319457369572051323817492667876837913188106810739682108111390394224746740258636594736840435476037557906260595672904180850152993860730308005493191084654856289795577928081548653721563578140444976298211257786992649181693266277762824990795693276960669498625174014901516141557954842447025834969206574804700763395805318856987389471821976455478214629799238376832240001641210710853518601544600177584533592751175941260735972619209624139914035451709075549587425754386596926472552895376151343330037445020308372175223785312071487144973031461812409499431227052559556098185609174229415969425780817304651018402789094512470877925232506659575398746572401864613398042043210990174836430077482601776385351657408966478034934640068748079089654049281842909026515529007845311435481027658921875635769812984676408231029390089929517303534675322571526041897957375403401774997499411483348467884434862777702071342118467555976910265307082714214451834385385932747080252158920215738371464004279492984160343050062034486817184223518870224147421826083099183946896174257198073734924031820348090557973387476841592593051955853909198828282187012358764673331013013468543507269502663999723057390487222528826308331277619613090504464467696313578657795378624867598665575581247456296210997069424554035363311671709182017114978948079007350823500145572508279117737669523448245281042398891481591329814460485890682140646270710372652450959951276104973578081030411356084429527041454591279880401927067158168056012238803060352420292550286709594176751510738874919047605602668446881463359162620391784494416334156126271339457425833549841199924823138320292084583744613510141036092698192226638886360498840173363957355266475540419652621362431759071708778993931077169318366951421471366958052091002308244528719484652838443511083557718632268429327466997325341778840108382818769392325561441892845357675725362931645598486678440983013947482405297745383017501659544939297234343429646199673441452818887070481305257745925839487789254266883091368674229830775075482181362892733339885468467177970944885570959316189827914368093275205644616249663887268785630215715238702907993211879747801825611681649639085667132035412115416554699365849594845870653745180432335842676695747152369888239710037448459674053900192747480695323300190244363200785275223468035021780357929595216017081458015931757846853053400886359320282932351730387531836115439423915697864967023959066882465765554485604302380337468570073351483526266304897242418981430475774964941422166823442833109981242633141986670990309642153849681621303706433640781714491843531010781238286662829633614427492425265168357492210046333324944282206219859381745188736760068367099954294618273746851231941907011522871094171667466421523658281858832385815786788506453113223082152430492245410472887597596534321626589328207465049110907878615704911957243456839796561036898385436519260115291943482966134231113526831838370942593186373299372397809808744429120752499363027386002658866234887085732699046759060919536669777395407771797636174730834445794572651766907075021223127911086810322345062930335596062327077668935104408910850182813759128231704169847768585287136085169896247585984554122028186456856716496453824328170653635291839535872386092363645559315507486445724739867085730144557275467292761952207105633367770340735665537534059032097967034092125956197572932997270973460014705828204741420792678200286021365907743737935296218290405473932119646494998081036645744266480163144965546956270856270015531604806643542603947512359536664559925134609599154239625749312101945361005814573383564417107163966811642992595760217248364780342221762052055444823594400597942810955406930054598202336226967398678479826757586195661099976053186349723200827142066053886215290342217874031963464855712291944689910823754948451768578905944680691544175283953781032760762643939415181891595594232694678143319447916636519040830674523227230494776541275334965470711062877014027343162503573858279275186628774538431964860650954064915373614361481242529926256803820481041779688024554261545020776940403240628883603618795775367868560908731730928646212120860073863331866630998622391095682084380038259607387900742656463288202236321337242443554902702852338955498960092514327170292459128722558213998297180063451104030006446214339949550729880632544608570838704228092844374347256543301798612400011377791005572832874140723610005434346239681199787286915317576579537323803818589085446712350866185188613001371459378552294740629843817355130189812591108170087958722903732547256932948171752551654968217142646944118362954647421144475664200339672570244872969481130907695554188528435744544330500416903544867197767632369134225559829705952280266144337052040798256980952716959111464010733857558776496223275294458672821020637345738849892505151056979994025040509392758240060761411276394632739219759743505647719233335830008029896739658799488268175954684923035874701834840688161799754595552920681989008926065200403293702448984218635350763949517200544691059683790070551517333780988032518508055103994499277400388310111475214517313166054592689978515187549623344856339649708232184459211748624427125716069088299974352286236445761922354650387337147587707670664823573167998729675291679679930906463374939119969569939155460991479427817737307461910165472880845786235158100111565800620814733064641180118190341607606551525443014360140911188782149052249716002748576985552056421303266287468593081366258763561167410533828125546977334983478202243021117961991631021526200828526907387750141832816181212986698686072001263489359811201667685184003564954865549022387686293118057329424915227257877571653528716303397975020688677751405874855644356893900667145017757500047360796010655892220761463266362524051946704280323136313736559179852930995548395581492096519470074927380825966751026777081069243103261235099978979905046538549169541643576218472021678472412342445721911475363852432041526316040313524287782417939585155263930256761973163054713761345359407233065647570434590573488671133056586164702408345036930558955985836157488448994709718120882171875583885426474168199710857234367071293554630281855012117502584864487358123011746861734416361012123004873837849310114874546630605276960264777849241092302377161622991032043323308528866045269002564420246910251867619431476905271747413437880794413498631603023580644946691763108788933300717305765980373953937075670915841590089462312406507051441305339391678679179963632793823298162803291894093526698554869355604403010957441232966845568572114604162552866193898761445482395146493383816344794973722201130506018325705542484640523853669825080899545826301089881294686401537365894689044277323266966395138818739607849901323491160899019422672301462139682562807478122459722153728187756780213024243965295146215674286906161013063405737577955816057438093939942444470283399779326239028031828676536127047070012941556720133615492017266516462368262001327662452373718989690515121499936323490559854113434166679597831874837645786401181137632983775875231790376081763991170695228820448813722407593133383761894438875164946173012995285791945852211199138247687202902119501449145982626258654553521426404887311431092034581583036908859173704198695201746045635823479027210951001525945391498015617166748847637918045123617412862057015966714418807770968727568613539760086702978017573854151933630173359271864660398711518756888207039192469735423656124808688952842992124978807098763683308321142930499289024568945901506827098212896765499783510836089535764870199613057124318415796812156875434960180367488183097208637670387093607145910865323579246140966762365271074661725341740765981700349404107032295023214258519033663833026942287785669446080258358324040532390709558557768754016669859891904339602428941421194168525589008564283307749541914727275742547200785752746408554282274757024714585694333310228688878325676869004073502509290214203429891237171746522380700062097470103692488278109778923535258421554370714516778333507662381147189806934060648804894720459367521212238432490804964814326371924882638358740556119441287624292844033142889045087031506444503507497214671737676675314818437265559919261709171004134092980715991231701107484005317890251394549376422451577926116682149133521166362426291298912887271126643650437128602524529826978614998237698301473861653705571498018725954575567602149624442519830535880714439665579231945801633314324176393988433685911502610622405366411391322715467846840240584557706112144551901672246301006169287390406667697489046585321312660942874517681065318779018176442444489180735351405312526217313931579213497928509993290887108363471749294131243943733826390122509835370526587205586967660210405166290618595590081725678778884329378282009924516051519514431755397717018374288617563474657212753125068132717177623653274604546583914202890904087573895576835320484940078687703024319068235650587672871878665943860050032777904621785503838968416037801847608132381536011432317011676627288829145363654905008369303564183208913192623251670419566939482606714701452224395149553374811750548728167721088920200568531270847307379239800277350595683522164900969417901072668384605019148870112814904064009188182577906184796383145903749719746960735510110667533245541117670562975000412687255319589302090049254821965001597689023647638521337966026393611588092299517238123332179469967271458835679931960408433107008125915347682848217500900422291581602193024653804322799713011898796661574046082823959774402345919335808136477655109165103398493582217857779042965913698930261177729791402199155915308796789741342267211690122438341433348795273351500791557671918921030751208087138426755759639607590584738310877266994967162701727563350577215150716455077041531016277249210304774039833726982497347012186196675286130645610922069065854002654682331100875349275140431203058806135921080239919994796629735190915084990048879065327389886735398053069299389636411266523708374511144092316524341674863794452024042847151419235199631048681206764571412107388397157513139362773925332101625633838275216921676425412753504136695907957053157315265732313391709590129574244723383027729273009092976290187085350939681948696384587511868460165992356624950883398190380475083443483723821119503967210129180493006496836616933101901510719450410567873869388430091082100218841636130850575136184349644726713544934848305529771216144549303888491333635337607396320738503718773559973639130027096895324820569731102090919074850103231946070066550540571821806948825258738097572022256820022377530141427663778233173441181282014233715924672459652984884459302748305309697059042480505026457831258862412198148864505818147433966888202651415357805460248273226617494755804477492629053053706820630469537126043571243031029786726123623824457071501397544479642372663826693947534788213617542269396529715920481659648224931775858077609204858265496375615796624302677560771768964585493334589820318619860013966070639652973004579291351231662094243558518540951318937361250555956785250049030601641369703615677375338743934594697115362324956318564729301954487030425535848098610237849265926691471506581409293595959781077148669078844713465795281016477462628772474228796088773441827153695477585656632278046730434461572832430010810000631260548027004928200954126339594744882959321372352850695263435321659023561299765200191896584514305113036171437059050673933461865618846793411879735125633444293746662973098041797422783663149981456266747903327532539000798692275420103684269201713460520155828233874745338457493331182013378085586794666594419450354486120362329552924265120728567964124984017124666351103165045453247158039686311133942895855375625286565533630890083860107873889388463969896737727975889291830761419456506609253168381978676677488667055205599189110403705782661529202706298535437385453711895760292569835841570420093842173779740740806420570470793737653973777092577323452502926286972545477188206263619605305857747747164688346728492034882703676045453089088795205487263024737198479886795959596147020520949987385927146721001796401674774541313524317424396363551798804475135977963163599768182484698548550579143425728681542832927316632358418337090698434146254986945343049075098715257892627186989833181534159017995921851058798868553282813871915415546123150949077796940553624594080206326873637551098749067729804361582417541302641059128755474927724511829457286269845660343742780636820789591321004617155826230215978089522185970223544527453075746884889449146481680113114975962855518010262265878683588866367528673131270795419743306782182291200747840876996477234515365179213522451650579578826695917795785092023205227562339500575761406577337938672938927800078970694509189793009382328232185752794272387351449117998682275755611810357820405700235054058050430058736973054339264201391140550791082189041337582712578406648200037761194636237497003047240154559717727408268024218922262499982748167671076910810300969355219688638536018795046840297286752855366256134086211306747602133451637101014768548435528612770386841354476167503736217649199598714611433611218738856369049188570989822828582548498835680056198252737695388329218644803136932155399788142421567010716091395410069003227090669924338699404134026769663916771597819492316655137963567939144944857452484469773846711211702562466218547273575174025968168271832214501798536489863468926054609846090643319726345019340818891759160357677411510243506700439566840485214648027026946633374780667357975483880281049520504578089728655578565918743905801105902054813704187648850918598446295384701551616828337066159121197487278972031741249462585737721388021339241408984564326930388549079779400596030149897586682283589542219117331517567101813351694958847711060420715350797716553604850444021767159120209646724215900184224510472293307213006370275747134774341300654669949508947565862355908223649551882132012482442024458295483411179512542304322798662103901052888141140468237431807783103345423348260686752653458743329670819725064264365169665012858652770084458782650736703868418770950618620209230917824904822981018570159700568626092263577653162552736969995519982057407545404094336311969704401823728088348625634423060625430683623864994333053917204196349622483890057052055638573912574305785518748939311934215713872382697232100093514716528257257656373495740365173887232454846159795619642489695980746257378630792859534394583577392713785305046193793745297447934461766419661870349677076698200485849962862281032204353987332966489883279008747223073503413144827933564163635092155441775145777163954103032748199207176582908056167388191848200615591991465521788650555474335433463894801955209925873062755023687719525287799061561563408550683076249452699328799471920630991948582804081127643581277073662111068417160660864656061401348631152256818461926349476367650191726473585668953299168269345382509334336600095099325659984016270563811488269331673891322633573225525587486565621269023489071733619113245594603359812414160720104341912692170182272554353677345612073169919049048284474255128199650961345226647385154765134311109988056870275463970922175394291224565081033166320084443722932357510118930772190888128556006125538590273526472198705121655405348102893283195072531780711859341806479341171162725359994042666432146684569496574409141272863968950893799423663333225192231104506439736526340438553049611931509024458994726899788979357004524418597307614413727026495974590998590885071731196349969545089089324670430174383700299757133202890245058491893293325059997588873604623388051551461615478573867755515050086352101050092372599132614834035783807651374185212826592966014997760805346116925573680774224963936412730851813924787554674610031550911279498377569225609595339647223374441314812371443427666736718756029484549208539259182454015447917434116828252484629241382527931650819126591312993050184280917488377446944600868213117281196615829766080451206536923308883522569743796365530647917244933333810202181922607718305376776957464755214940447933369867894702595579945871911651397205383084232925510542508534634921699155270654630140496630864062384276834916945766482491363800216735442004581099743635238084656692208326107845146554633705961487704807348889760204731208058973429139150426611878778131095292366914436848607683617265449658438798154562526276418038219335519307216203558883752859329734843406685416602991896986779538324332573949325384577127529968504349951737708215593762464503208197207858106212386896044919694419238559276625575829554174568330459377589675829874663306748890645135216474832637761957511854467427414860429227333978752295091579629042575109577234070050831081748092845843951162641821290889187738599541636060970322772873449207617920153376002910555858808589298645394796175656080466803981153574753423183821041227547273135790301812406182239517076294246328399119585202752806740487790659989853692543525086372317607931295648236208108862643686217947213325038728339247227293696742827810247423143232807486037689015826141254257055756583664551944406213719024987617229987623471173196816968161662943859477953720336863468378027196330127814498279006573277405817322706535531929602083660590980967719149272896616571567908025553438842935149326806524990375358467996888961333249841788138791311466189577128383660871735507345398933961574345338075985493600850264207549889808175584540950389279098663524575856853322074445387603046233017965990280879108037000654482859950680554736103257717096518250011597930681598653366484293630383834310303802770305210100992990591130945663272705999649461299451116504260086998256004648429143312175069997059000414299132555019334695020069659067386383515728624440094818392958714960356768983002866766524833526912491430554729489582696136509587355976532843199640045832922990664019516271620772795343857384438487356775021991732706853441605886853833911037079258476352095544937113295442713387750971944458525426760514079948859377579674081191995137021194091780255464579817514720803452744723508867959807756039961001760588610887556119490026909732788177254960359436464946397644614009065355692009844970519180029985344606583377413620971853221279030301537269518872760247319336030670730383349768422193502811461706453353990424263276291387007406181615861780287089547917332497976442140980115697034514224122768985499261529815543098443008573601464007724283951681366156587621147024256366262325433378789127602056112437735934293629003447166355723451149077466463271748496481596413864662217607574681477267021579270851670673834262314406839910096947744541573504709443263206640401244047996105629240287177214691759750788959936452517996066675191842215037393339272977359977788792342901365116704709412035585732065559770139463279753760245956529029184664102041080980374601640527559532296081972489700885207066374937547622736582012080547200162183066514618357259936275108664121345957668524852789896293230420913083595162982883864841295183120313584684814977596250185474235046637803062724857699793382943506473944031686556104586668191033369253430489201343954986185001184412776466643388850607436023632370723680344312678117332584040635601740955915331989204716104895239410563461858998961366944750945626584445724264492131546082251045838688260118974315259506360703705545405895836160049497106273972254577708867418306381088783371973269606963692631435343503875449108210628870832383074472185379118121454898438505355135920896893987435074120951320401253758794074937460612905254638783372909198807082028629453557246318491378542785266095016426362367450615434917253245053887657985737621089622672890156401053346391501756791544844651413826796284536967141290824905521885669063993584909514816984523568182914088438758886964644139242605014952706023351302782196717999856478645225452327410315344135905738741351673163820117045813089649789269429539189226358976948912636611242590915749086670170332877509769286069948886126272053944633490937309423126671210257918546872838080942272026016241396847858140542259071777973782913870176576291321210638977861487743417794985398042862731096414294978385032931485797493010630412967801918655806593436992074654312463169390550104259312768739509555289852319929473487951348177596157975746252428246689759171901793564265205728857646211493473324502906425454066060518032189041517055111965007008455433641409399619876577813653845846488106126228148039012108233135765836619688753895950015058281021709065091096267758335170900733940404081526456992041272747891362186671062996536163927087341634876060145192219278611634491150345499480042840049147081086711160676053311138595116874879551457850422025355041456026219064802647294541334434992180159198371533725524451064147034393897764738576357111653245351794447184597883942738715245678242044039038873940318874550097649025142223327980028315351281391852389822851440028869864077085441719516594731768912272749149545385608326340935965412629684121178940412811497347039412370450587539854987885270211302722022708457652103541091478234055294286149566182666523623821562615526467101311536513554374826438826759374857886552420773524757193198710224890376460985549452908178110660865365210441862430919691302782887781740767168034747282426958408195000889524488514105114683375290555917280594471489195450359933225415846374251101416261889176092263144382814265724312545601594646615927763863070174631514290876538911113487422991571691577064225729728905658097313637834702610019994078553620615692740913140490230594478512860405744476270919861778043547850368027396157718046393970859962054071367743449909008905274710448238089688736209913312425711961973250073097442275913965155631968037697779532236024060861046153344056241659945226787988893583375421327752363412097104730758913787094797056580454887552449326473071965695274022542820001326094151194068863415672223451811413758446349461538060898204642235610603033050469445999421444007497933783917664030382137195596816483012178196385305737357480099785101040505489606103849855352168878026070209390849265564888203684391675287164542875044717475559098458278121770635241176809295130049371855328846960135508164073473487600615385245517325949471349023638481450803859012760595303898253267643633995455832674108973616794370309016004689000485185727595016311775862305267431301754772050413027277948919014524722087903596940076320137224496054198192776526182552374304639929930384306664552854596487111330961289409719611787195171392919035321489853514296058975719525943113689785012165909282173682364463449672310735563278561233034238982894748206449297938671837099738826080984733021616116119320186804800390443540026206274293306300150534484273326999500626739576141014114982796253191354748540614348280624456833468205401719380043759624233188228964257085440045949268429674046012818785153357515951104560156470734462535063599730760391032623642765158413729449347943326373134456481020606991743527235623477692921567334805122969988434008286687342466073246065903100707309222061792683588584633380987237769760226843888246417996758116102176150141066675518961109929518226264626619045113136509619006326619789418477759324448346546697025962865149392692023206005707640289479983369490168378321933799428818018490773596456841739979089546561252576339491877635482816493373546197984336792295517319395172203358603164321625369565064242382616332782521095275856744411756062690707595192903534477173369538440161432814466757625276600456016945198016331027958791083262339604866525937598183721287492824012708969822879475271076159124742017077238206105413214266949771121621286368127144808512446732665188446522896707857785896004811620385847115315540836474721086370148408857323939034959997717919991226119086002285890570389293570893829616372199883185117535957771668398827449469999003327217605526644380458878514846008562900376086395174875367446710791617353555659909782368184830146263585520503554760780006082251150589562812941021678944679541897601751310128324342648298485578310908262571444503084288368423042858469416506323665460255580384668022549474615077210015867485187150806035838749325583806817352991566620906077644169767330237815050190697377033955583944705998165507397156841299735114427529026995796714537712934713968514177930670503926440327043287557224073770078531376185226239789891043280461271004400633388020561762167111060356428161866696581565059800765425774927870193484799220761280219034126572558060533711132277189945228674577198588408917475785506798390245363402314925012693035248779138411367282284822717081783863914560759388809891757635002463421207917903178508691173626123006011856178095280403176266562341100113826179501165203700003503712298647365222768513727835391346205220562921207350996008265943080438790795085754362900802407406128174521500973636866110176973293791524523118508275997574107379202357188189900490837189802473420474865423558314490191413106856773252662917932240005919911661636946355795555607716568018954410769879239462359989372666345292422028984980569363323881556925788730008282503317502310416219817743890138992223057750055255894805489658134533360897670722312334096684595371554241414494414093495938620722701726269100189476220319492278395750123732499926912613835225633952951454659327698054469152369643743074680518414184410795340693442895804612653316536371617099707936244213033205331551046248764117510838182546232198078023405538612633756533958366113140486965707430781191373485924801836750189391875684095477786428714969164955268132513252475223498242656884294546486476194295922244256897859757957907676241788320058588944411418837943316566730747017957071150026193844790823854836712966982690767914861464334710137516288808462493652684511706984845557285985813052057241691599703968773127533311030980122515027469794205126137249285551572947526167639963611914257198229020647843391885774438706140630663371253685401846781264361181114985130892728331237509161416785311796668223450769745474287415050928067116787782525732293345740562713966944625254640661824224616622662283465964730961346068464039791134499179299151191204005163160965976023484306923034347398726324369507493806650342021845267363348342654624843572075526406785189294558986914409856749929439138412822767116938098334195315510012828658913672684464926028896073538568827384310677224261356313029576737673227953682729274008938484850900343883078871934176143034301565615925914349437319377030827206945884217423171206371204154804528145068105104447052571677479526791263107452055281977212559844065317839924321714998825648414051336370871625878349793260082487772425590763425863999647351065047803739172683612050017750081070850114497560086115309343420539695271885848612374039923083385378110898387015257306366120318741814184242885199967643128288437071125351286894320227715622460055891467862516176491899354286062720887432130782579755224639934890315716463816967373412596519664578276285106538029461068390262926950116978278397490742007088089288960508628868042652888076545635342251319501493962703332242166071825772527986735042812717277951689000994318243799730022282208372716388516046323180225043824942374936000410713419023070565721360732012469512102871159370636519503620698840052946234961122372183494581414774944616265180168766001764824011769075808089528636142990733427809425358878712433749915472374736163863522913940552039786370692983458961653060587205112176744661154901096199024635990438765301738533282615644463872484339265618660831278854506079451988522025695941816633276860546372131476425228688819144755818028618681457819829811081260209561090975625048281265455820716235148484911803536055329636713764496691623732666050842655301394774415911709477860769475245368053931049998281754157845648474329942817302662814818919005471117229878041329620502993267718097060621454062717986818272890481772178227018031891009479015568146149405050732384962902371512865664330363948281757485655332435463448069420952130008366863035617361080876561887710629358646920911425941166248354424369049830004214298369603866720514692371233928622254356774879556143946568663425991467394511575491979203799900374144414683687945376706431288442044262926691409593393770893238749254957344731106015461243004567807741255826223507910413103284350881183578874095642834875011195852345548890672346735614757023545969419965605389113716413017026310310960998898279799249486446044810878034324977908508698686503274760722545598071774370581170914658042478668736975607335837181037425019769433896701600574138479005020991623049443346077022214823382605954780469623421487874343920615351493631539215175712903478871343934194716981693968128742225765306048331600657464718086283530621599828253593684717572141386135203685573056419181468869403388719962912834076174234128178583362633334099260870357158568464516369832945147671335313491412906534185955988965125257865195230738962395788466996082493515381698093766155721053493889599050008832573760952524172088364753287463872511689102999941611191113583240716810810078156999166546896036346431959147645621032822576680916411038571700493099023481459873654233572883272677696002275415076460181402063091000547693067374375633037809264989591126131514895830103681532450712164565414481203491927014250718257839251698716544431676248929612280160683040574942440174250609699734836768243296192423118894400743775906579547931179040551372838740944339024143230235292704307988286769430135017621275959422246409886795677906668688376252483878877675216765125964709847587756858322124882187776969021589237898251789342670808131169422514237161939527115937509411767432878910739776347212220337630107413215719142001517207235385963138440738429966563625329850631721501060415516394406962228038976047219474236368351263158137346056539286011235627357591247720871959266576687419541159049352481045952222181485505196179739826934645553441333681140362780816246383439699371148602798753038145750704675043961955276148513837963691575675193312001137667919084856288155234240223233445632573243696955878584813080278584419387804840143625577235273753857939002397194561368020937766081754731822879297859241654408758935953005810296880710886270909689055442812865015345000552164604040674218529205996198231201293074022660603518443551904935271791637115659005384276646977837834724679367620034700519509319600513426455224935038730712322613751924731468806838358599439589487583811819752025544718499027920837919488109166792461113641733702753999571548130198850682498441910123880602503019814185286264795876694599687819766257047656624131781099159305100837974875065531706750895725766153064540929990275178350087232050768330095789656976881877206222019558000063159087671393570062068560596319140515918562095819875781223544902157493733475059456025923085076454568024493903284337915820765164056552734851844968501461001061485816939840937337079934386531253950611088305235931501107190966604073792465746990194694541428817670487733044818983825745710442625269366491813365042686889100140720823258235369275023001828071543327552983468126207543999122598459685267839315760245103918496345290378382622919536794653955729606626064117389173270999917834392492811877582230076753011000415789143123269758760948231448743647187887031273502488882892312832121547709171572067195554673035055059231041447339291505979920461457114284297239990419637916235258725315387543214998080536139808978933035387679327378960366315056187164633945838547419113978575079831932404694003737789124678070620113931037777787066497709437078769541838531278346434480287958057799544004373142121311134052254033657195814748564579967858788326561654457320101561237225330079704458612109755388012904521837939305801019982520843754268291334653057629461834688546196987811893232276227464533468596599583242680473722433227450176270128046615646558349778182413147316690858338915069563469475689443381440291633608583915745147423663820518224983671216247926494694134952231728712893169922070537755757209963919178216906765541406787500625516051558506899751683008643260612166151417714951598334347685783048371268054669016081556295290139573934662170804002927527901330021289649695952260371792729492562062074283709293693065800234065891921342000313574322241830012558183339416729677135921363871980243723360784321519784996524643043693759225940948342153481985124261724180156520412669412013994602441291126488459590101569289636759791704453581533048019288996323887912629579445012238930201320362634267207447147518213382453894284382387986922634232425171095824396917258038723211176150311310370533032254595347572367324861504409980281054893656781307421174121227483694943261341946475817095697488015039599116680606422158487167743129634740939277222810648693828681387035642098509362370864445510667687481775850876188024331532424444954734955875157699806972276116314412662192199041793063495200993225289077822839963461759493480730602778409124999246906565788376982742899341632726115267706641969438519284016144783532629995767625187524327979397062811845763219206635642584157026515188754624888824340220850128701870271630115707072653257070970703032054431949160995460395627737275183121566942361948361243995534526487175717259115336390664499725134487827272318536173022249823328589549702237502342323579422150023800870637535221004706263041206916683778790849807987739912675444480027417692846301772280068407811898791680046376910726604176363861705777829553446541089921821416336539547475114130856647246778301827911148113267941652118650760814735650655406867801333142481508768757344713587351586457367781125485071559694969968369809130783368166307280089016257416845233966382958452887302457017992161932604517276217243010763551760825412570286178746617021648040332858872683108642770787205898123520994204558923186280938466949689571164452494106078439507963489129975909494437217617606011025682092780231290293799144101958763332359221643265904265133028554537073823064355288480270653965485783905225142034244789418966512011031022045450058672376850971963973372031089347501514865998924519953963465367298073057622748247401135283962892083110685567540115304878165964952874578797371445032637410441739284006313320821365579351457143383446567480223359101809734178256607914474609582891856223429741018115870762465656082889685048697406422469500357074917371679056404305810054002011679412067108254029720983307882651494980100309055075338904858871934288300130744505708251792637205969937696821442784855751143065605739158739353770860780300042909625174170306165801002754736875003663961554359022967371821271909229779825914127431351976068021767241500237788159226723583148458882074946446322510888216339581294394440896207967483091533682149186340753001679425647470319439811934234809826278600492600628039137476691769248532894284187581224977076560161686506599331052661607507422021922121602263073195533076794625791080797692029251103967549282173691178800810065760782589163189812278542777364179172379543811125126371192415568442854572697760698331087166479748200307500733828861080457931056810239227475607512006516002397442231023399808965336139201008045137932659314974721691062348190712557877740389271919339893816778744692107602400038441317695923718673674547640715579506721890623090782367352445121917194105477496748906060909304449859248351430067243690106468072541862465141210652020196647026763935763640001668015687204913223036329135025463471292399776510506096998301904358660263667988923329528436003914916318419483635020975182173502998045240514556219359165187186034620422286586335168742218794110773835284096050924994375932596345189439848728626388237820883984306817799992465067752308341207853697760335961146974586198046038245716285077042565935232172469493393821738092176074837762722461443770457177766145828383582490262583409006793584452737711462415066652173252864489805731520587036897589686775131616611537366856856910116956801045282615713442593635821133047814704227801248313638553102771355969529576674119023979389915546546076703127512057487110483959930231779279371872755558945553290580254414391468216896080046824603032902264315391050171655566712736398135551286330817742990870530808753791688880017335898394023944142399037433823985958325045175959321424015054048221154988731565678805047514362688571739402030933406501771854459847559285295442765339377771315545286171001076741992529468196119832239443988422061819461308963513279472043065093100605932416678085528577895011255411705390991969270824672943445858882034682489864313852265750340396310266392947091604526745799642714529423770559328648812346397613126785213104728100926086992140164152834430566334957487337893672692566272154059977123617076374650799474246039214671926244704178604775034196329095176454593492678819357277566511687713597975774268808618426536300306958211613677202302254475749206344090219932478500472543482601578471356998674754375435546982862364873980749164144011593213352468974235506887064342028665436786701708101309714993737328712111231292665335798610143593281868514034871903960118884969404702884057418610733674124271081739690362478558582447470455630513187340059123092891237920127136250366317193752376385058207431317510945202660601750139758783493100551579511817524702725954358329838057871862063522816978758059835249320868868750467411013367538097458578022441824641936809907516827759578230544825141098862257662560424749291600209516449413686935193411044010843698590230250208411662297159942717738327862898323844385919092847600525105063237190591507789521227239270323492167220989130004416939386778182876292835994119462913078884649766048747943299582272631486842098255978945009829093675828194878013036189283120485267421223437423729504164719514205573897674981053089637336549383965384158466297490027978896646637075088263361091216683698718810584293728843336131495494334607108284712109863054183990802857907417227240310805810622983762957950001814246861334184474789494628269142613257201157491181325166236217220840056726074288717855097001919046490136342164804545712580857948795712563818256720789171232154552100814814403002704025321895702518751375944018766236955153043786448724784507115389134837983337935358193180719422975609010212856574166921205816613351732810013396517909716766552219483687070624479286135952141435675490980853603723716145650264214662777473652313924587336839064362622799201175010395409684360081494557011862147681320243688163129900242198465401317819919165934059240530113468800148378481755157210343627784625813485346103252165792693664436013563218555853258130463345875707939673312799903015614491820731026956989958948621602947148278854453952410887571322453746024820840898951864005531546644086268337757079806719648623822944286398666809877876508069341447096874650565440672576516065108431394078953149015732992269378557242080326917041951059420357858866547175949837064020164159517471072151408482571900300975461012530646972903341481616170035371861743059006185403808881640903488654022173257675377582747633518354188985668008744037092355559783247682516149848863163131064628384544949745429469169524221770449197126215603637461061644086254748235648113279566791349218962578010848754223545454441513950247804189766501322650617099590715079784786618597701638875703986827380109977026339570973663644536248686441924061121656995847659947845026953065098584427563529875672595465642787960296502955812826976114609220991024553112765416826799560495151538726554442108617642126931045091465499630396754665850412210617784088854455329217375366705818261641666656755433209366990127655883682240635858991240666117957275354455826013752419530261501506275182135563317718406889820609563310081816975810707403566113293157755903789934921662037886188148340138267278250587980015091249040239848685274381667826782441267342887969852440955008475536813602557467953376608453459787958666181161281425561865307347199018958625896812308444944019420779387975730671506853883724996144866130064746424418576547611860313586548657149907835282860057390336208198861758048543773458545390747857276173972979905069990061268166852888672475357417443614838578607482195908285109011495949142019673306258192344692501846142302861002549359601607699447129434011298098959962416906122463845248997908572838395040472846477252586270577434656373068954875650641819746439524170932146642319060916062563058267577515742846412050999372225076656257214550788620882139368340684794058816832318986550311504049789273266907031755729733794763732766999697976860339438595274156329923654330450343832700947170030184463411997825594981300874896703494971465175317468624427731401597343696080345366926302965750964263903090252153031198219593879130431324794331792813659115822649940284155228022460851216364506242744631554700111565708213976846027989506268815047082708767739212407739301895278227516199849949141753295986387770203856979888851521511687920694953985312447075743835973075085162027682391942499503921181920341086574396087353471198278366255207280707766750328061905087924420341172997648131312344651845533468187509966110346871882629548766134579559806682308418305867843489845819421666838729841965251512185653275286331792842049947458402952887707550059054420118111379104729325215765321330515790616849923984876480489699814814778715999678596093956495180866033494976846421692779005692247910314180261447316005391226679503848105470649030672512263795249087842730544610998279774992520944711874782106497057885659125145604544215975683758132639188240616795726762658500119109492001913797072373439442023296329412692064033967556031123490423852547927626709370851395786715693940298890755911781798226410840519088711092318249630845820408497455249974852355014750050054631703757661995752067213927224637395415266139693368919258545828242091310432195507604510733258544358220142395557654553646224988391500304350555429007326271081971440020495748452102137619293972536911265147461044838618504513023448874544873275455746447928030912595686629809968751248148828076787513483193861152662171531279648190275513760167726998112849526501450495880722107055452277095152067988647640793375742210500038466315252033833691313658697858806017185780920426920176394251812525366554701606446904916952810687883770918227235482290302294967036992165345493858872301899830086188871317730663286566716681480889422659232254813612107867978623789696470018869030147547168024708042873339150743495416963522037144932335010930163690327077547193937602900337450641791083478137248141591503604812242281309778248870328424908865523385418900475530943362501787918056711093641567495914494444340388815345318691939120903194480299788318104322727136048795848288356035042724381347384357522524307166389497780003033615338308034011124056050492419583017219047011258437244214024225543977220865107285902532118546013873802064476841597888928368180589401072600959063059552920565182839925666462110891436761821459457080093321554391933651268069404744318853145988840026297544268049154672419054567229111287503732085589813312171452789344841176205985915196718014286928367726977897545457241214754933966349285523028148080175525215385708849176845125255818087940261618187025851451182996147632232036474612164066656614302039039663739158670925830433052539029114134541086190441446529594651191693128236863478242332960276301533978156952565828035289833721431574149476175803759475460351080612060329985400642144068614840927349311900586937383274730579134336041156054933124094586047326482852821069077236011915692098603934877919832307193921569972761128013077166725345083315826014279163435168258342849003379689163787597881965725882169005732257213510852189238255570224853236985296113497269140170439841657163934908461091740115598988158313221059498648678123495074149623394904397141759505428707112683610141898401099453859404584154047386594382117042021981996147729307180833494800144199542903371659738802435101795591834147798421990672653948377564197262159540470514371933694517193214010925570344391215644647614736311393691754909508538014348628144416602286438320893667709931775740931288008234195976718732339119466260798104245535520008535876212141202588621247992269584005364638621643775683625335559169698565732181395760174763311898964359967325647016163148075961517158219248134665293931665860076499671222301537251225629556130300204568885250348210135773068695517950556921658722519335021514451362537402340512823332228481090222270244595982154866735127204736286947931666950981868256821826465577410510214532175483888239398269248668182247514135695134606237730349302216836968574949911815999775201334110693411932879156989962279322176773127852957377588051532107001514318954504341944025623092022540000578405366479327088609793581818421398213156546921640619505825300562142762968024708064170213340974286948143826427424669753224220653242830878738793227032845549486001831619813478058314613628879642558849854545967353030891483909837489607568841048670410136154986212506389518519244713867340205828118367714478558351854558780358637429050221121002637345851320532042687807410346461867289081011106204523554150725304319694268561328856291586573350934890877795376475953106336126131814403162598610606424764863562551164601160201624987705948511205077506227268552251106921640295668947636928194320774537939372143999179713910749744146642280490587804909355536879166811944727778752895583963254469059968370495210592627298566003158946265329384089433948462959367490300927203105737135923253652410275243435758934442883589549063594261511383340114296470515927019485687087364584155058006736139131035282961972409842188745305118971648937174765568817251258224376744709086946678544141786729954910780070180231872315735456995586512767382118328256858376005357892867025191644244180803152869615500430824580656464587008285584445795970364786300400989554625386638133892483837681007535996476878461851633030682407328260828247133584928614449303932490452636816933015477435220775330167314034156618299628477252349857129081432388691094285259113607724992558564100570360819545508985921506249930434449991186456078282603799881592167166856982785311007173334216617633805502278706946743028540555234626142397492228386100618234997686478971108396651666585366390076320417194072483431363286485659752764913240991077955781389516678927882546747402715243324538297496875805023981416375979923761773146283529473959296342687450453653098828558981018640099516183156827170407062948382775344264689645117025715782588343928498917030472263416709206366391910376726908644810756421260787860255070853481738079492272636043893746887353755940935158967292491361616210627083892259478109941839304700119450655313076626271054009036896233949692911990405736718461108534911906235959337197531309591776774519519703354294677980046038102313770717801459761369621542398464359008526541351717999160844595314346263054355001119847881182358892239010248351416424749349190314786304167070931980526762005727767416222153810912846706710884994206026599135262755453466828966479020949715217691725163925451858872390489800580262852294221394785574035690806037538678471196935199575374467724578518184197733790931662620178749494427556733718962603559258944038435218467017178664055608893135347568596780599911622502895312219687053770415009107926581260551705618959698740151994061174304089226259416173709291277846278478498139953004259982237396209319367107032802898079387530129381447517111467618546526394166225127659207793128437730783659422796977598897829239960654945095655005198129662461941536065058504606902482235756596253645695398797751146936180932612001446483771504501966104468514529073176485422057864643787823264562790822227239492956828927388009449868960729721606402734734543255948425211344603410756608230543733695218673025279495749243261972672855780116925308449821689188327298078892104710712825355094670003647581390589871041437929470017376289276566687461116056964257446865906704874509838437313449991207619452835558395440238610301263472314181057223076756792267967009106436933316655288676036560445355440947110328482086445778170542211978846201809380471917565461979913875919252765618607557585995505978439669447703757501629797018548162246925644390301765451834955703727930517636841865939443500828258886170759725866536090001296503249999187918449086639435522498617651370522283710865171540963270956219995319798854855594203774033336340652675321328121822826428893450594039746447760674190134826786145464656889378116079352758380744435532322536312381651839440787540739159821353015354624720260799473084936436989421647902527905098727282228354572660035563272380369299889749948307361851059483429857676939657612660683428559904418724523562073563680466513300929970107709898555225124602120554668142076827404037396889859128756848801991792508333332751457691419287808758539997355800366643908473379227820768215327315312988253689079251980397777019216800771405088842583152210616907632946272827904457039321729249169915707714993680193989263788822437964942036511443869776352979750277960376359813282148129742280329821955795650679593657088231323674408219260046857867510094241150868427283516188881461856188695416148452735719497244506544197636278237105830343831509730829822804780738821193852533707547412315140642040243268493107495083812044382100606244968505370263382970821775977300698047229719270244804689882877956358551665693743869888302481194600041189374190875027440405733688065853544178994531392403087294660035280084468307438800265058600935246045944272149440353817294896436801907909359478369280000286351458937789018133630527547253519364334349981437364219258839597523527740653949901389227411317959628524958816602816997977616936779977442362179283618446016788594843244035911450541918781191221246291329234703754949195777750096500633665761952314281537013122325531455531487462707355856637598954080089867684032220444785979298570814023819717974921792384150069863461609810447966619685305222263764826642705880949788917671533593481871643309863418829731020720585453807064739001589476162253539497750082855967730018324014717303576274365825926910329396676893613751035964696699609152687451450248256330816855513779896686844537787767671477292348282440959611838813783652206275809669144222041762703900394814397791684260494874588840543088089908238063095610255376298582715070022442283038978107646941527640731069565901335076367243407461689450970691324704792436668308093322163347911877083745162868681063293981455435193106605110138909206861113208241255997151479191120595118019888805153738846550973061771415411990510010347136844128272437813449694633217814182683458236381520934454299450145491579929668755204590103075412473993617304173524702004654908378188918552252676789386560063056060121310874251104069642655447197279530843463662865206759662315483460199989279196614604125061356047221490454310308818868306256404711488195457347681504562441300320749588209565660980780398586279490672576318033448961493079611524028037176262115932513560543598200149318988805870479957412361740871580353565643070732941041598925335890177167625697920975952008052121047460283407456969315737193137280922360308438474691890526268280544556370768504706302636855064333709317614197911392604364880655235841257989828105611348687481815751595347221165584850109817680997619597622373924258584566615123906893643173874529288791689438250004228881589953039108510389200119873180613999168263431864778926876849635438543628002641696504560870207268585824100934067279916363928361541263173307165947783113493855072279191129100765273440196053133827645027122919078545054246387327339902686137688164960885795835518777287818722851934695110517424497879395775525723603722727106993200149634937303432210756932202360027572325886840905910384426935788045283901130861087853345679576367489950794957933598705868275195690435453795786901430241717710208625204307961528613369446420440201342696543583381950228247673495378907602381554056197681951575476971573226103845978761677701459355364137007031488869653332354332871484867026789479847604431276744062478817068030048447422234274741720423797125893461244452933298554379300314428415048574142337559177865742821422380751393617762179105602460327604324400431647142195058349769025898819146594197234804658217840319357812972422761944027049792266160320845654367654512981317686876132776651850624898935634217863342462738340273636545459114262857547948065462639652772473754952572115317330031450521710246530588070474006751617811429621121477168216470267670411160917240517031220151966347461164674420033119574413484720364880804730073212622638787349377739589959131968097309131571447637973879074553582355327930591915497330322178140326234815978549831725053701645621245336570887496084787132486143825478072662823856019195351994338743128637826988674802112089108108403949878424492224270571650603192289728045318730961362711330290588150748423650650125961038653602687469099009710154622961415037917434447499788751217598495858045748212525833089664018580460041768794226350321010358788502820277179249172096996666135792071393334272163067490974450303290370594607041262294309077553470360861490915414055572245605454967236533246909652149754050700945287212417957577425560222990051117539336675748602146003240546010402278280179627413734500491821286333241721520003241811840725087702828409384885873535626451886574521075732970501043093223651486575257069590505414249281644072456946528401016462661265646594966193276099910702677262799550176098353319535540852324116135178517253071055769837237818719076665575285337442512961948929993700479900346249972808291700447845238996261090284794796374762729651220411254303330446547599571806686296917137421880361404678669578187633463632340393030232947610884046551402662790284387141283570202906625301370891906664320556967971425125388110252100750777861777058072065811114139173665624729136271817691405998284860350649871096755751074823792397604548756172963114277533980963270166527689846742116809877352370649350977966834411987699499177877091328365315564940026090477789321209499924188974178432534702075209194910492020096098065984523718851522227103357878685493216290135291501256988872274731668366217287548950860713066899673278449482623033726890832233064444203683378673438354945861471396774412117968758056842716369456598965119888211113302825922562077939809298145845512221048328008967469818560874425426632420292931974245113505136757722757098500805059393247758129744863700732116113383435176811936242368222221055266905726541426051183075061348898512727404995041033969710136140795843538797638436113106689216428784508911101404591542179230344193632395868563716752173273268474842178209135774961578744995039623959531942210180866268603969482134404468315826521898902929625948549425274846322546465677263298812486853572688902130340340517766887591290663202050038778829140495316891888865584914775801387642430045774110348441283941582299051065502832719340927070385165044543671900575216105642702210201383840694311241115434442565494385511824001568342451811029444532834110554275820631550530332685706394083548170903033156137239147175412486793938116859262865242788491803223736259755768001268677873260868773792569351206550128503472481806752266804129747541434722324037482619050080162777741208583034808517267889084973339044103959146124018259752350468444424839587796809576655274987740085513825898010848551302749972454733072008780699077144970890015069252655308305379794921164788651897575248312733653756903459979500302779895439641707659099317021966658577620007117981907066930064219513046008486247251092049503321224367693774255119067191436401571183405932265504492618796452929105649316102030702576561893483284567068766715138346955714774085045653065000513053652764252182050427996731680687122339350475591885977421594948249137664800848671615588864253257531205910522089588408229588363614709083557506525746717305813236483092532156129503536820930727943588451480417052877616697301970499490802936293991689160021970536535406314720239090204731287018431959605434268900210842206277987440887168517897884095973308353383743987614518925677644599948880307315132150801021607801590615287094515537523435362613929054484183416327106921915612969191674659581476606386438621891426908382785718064855232581807231573901041512582472648408585935212419850167439986976933234614126256962534843405803003281631915289456980156558282029606384968719120970836536865225616842613008281460235257673064044029929558899826555681965290217256247920396154627895616029790566390978010989582830843422758029569632836790580072307754057184101104418958851636473018089314756615657868926233756357797206043944320999881741854250560377290262368068010730023553858863498733878406658181510472613137927752302702153451646196069411107018714817113421726955180344823886715443472853175069984762654012450393892950380393276430305379862179397945209535183817299608328821738489658716733041997056939924175042057894084077287591564543037367448088968815176530157076541988979764384512341712759832370404409545248525736998687892977403299186100787878060357700356808601597132273649501483646775741668044732580994602966980400365081813855774854217928727023345979861377125617439125932136383835666878348607362220664560738101906778200512787226497011200629689881800163120183829153088484333693456872300952246483083712267135359021315795280154647567608488871379023824725821125413756889716197391636400369689341826225058597665971126356739477619433145558107492906451946544039821657863461277737475082362092031593364733387353045757621626066045316884800125574707648351175181941315131797566095732490665779550502723797866394610586640985276663634760519574845443988958602913977185443269479865841094525470214577171404061097217208034367713273494466753857834658027990218657282099270174681268351490822161405039935922438492300494534915824549457463152248352240860639748875934070169952376418555520630531109461013025341546948529988395645469133929942751220699867137478096167729807320881749734522070369877114735277753145791251434877219564418128919858747696372760366908470609720878411857814825783186094409787680603292134516466620844610570489938847209457483169496929102610946113640129758139737447527236968742641680946792790655117196399462583511503427856023270541437986731191426492548023561632516442042770298644291588759391318555896440117708380189119511365751404634466269292450386492765818802751889214918824461521095000746663090242845775893359708041249651966241207513952908337962823648572446587954976412806874406412475318962824891841781006760756781436447744556279432172821906531601273258204034900654788564244975498663511806491273490937156817015252886684747616764674533848823371161392961525591948300627627607197710721062208210313764858088020938270416908067215660018233015726812494787970503652827312330942427280266357438323009606622388695559104704451953638915773354375037437132942085625830188705885016030334116931128377515582859310619207002847592057975157542689835886919425248079130989679311724636422537144423921838649752316814026652154778273157639449455489387901853348774598555771654134478675735338263627006850342051709443851361363969528023072617585369533840957827103173090738821830672579950713705035417011942332690815906018520861738088725774641346548660983196978306503843782771596929657899049180097446286011247730414340716074216466134548733460525662918006171036183284711220227211771785949348239387631948577784685385453306637040594244006774728836557942864317707260599999118168910166064427781725077339517455520680201854193361840133944690960857457890027524480395959314270401292200415489728921155695480454198051594355513281694197585965208887588310044581798645168944345792423919264551989340981317959648705328861507517397228864562131487187973701187651689555956956112590757688152363540136480660344437753019830238881940683760976037185986611953755616612907548496295832489282915448367452501971674013610117121335273646068668637876464588175181522349283755197406332215909136645463138482915309880215671666133104039186783200999821093631299942046322777436478482065135805684630714092175155405075032586224751135463479440548028809563739505716937391075153523174337564007850950543209892997042759136203839373448704486199905929014900842065422751182474375353617519214322502135575141370545007039461614344040808380177972169748106461738521871058739186230571604570690749840277431572189452931451315927385916494984634103218446564388155898334154336775471980061269725273019209486020985641957095063736163405778058824831983183916185220658423897559026915385962508259952958210112301173860475857239977529865616868187798360716692987185470288436119714615212661468642182253710791106586391666158787141390598821213056516165726464948684940859392986667470214213740175124343715790714842980041247679601480104181452017775484374321809568510582989995580340068746066072500515196648599529987056939752477296086379909148040391403405121078246765878362357352015176126728971341913037373157770096343416008181027348770131983624215399983818956463986978092958973680409543360907699019194834162162215020739326458092222446229424435302053066612941294376595614245512403057649351686296364363157000228957275657282231446273920131718962687619497917759336591057787309955996282536806113391941574605467918602170906449021821655138725104249630148998590037036659989566741083826801733963576349281337823700190943373458782046170258336881317457987566632399122429335469640322198297626954855051828300918236411071116830128279784629308218969940297713949537316381372606323601006493222931046774199076716723273823499188610880149121176639115861667306058872164495061268533112770351907962280487557102900390099502766277068120949789171018822416892115727063585671280664133816794532747984647379741439894006357008804162603609475152582909297575883337910794548278956639355953774958434181620813854572711223751585870849723538516544055154472344828127232175455426439885400710735940906223223609283793988880688761834729931989488639116930767145127807821326501256499477249291650187677717587518724554463645953307612515716406023641760754191990087078815812279863470038278250021278104438170328937602402758250758167651518734038754123586752848052207063087019858937854499628280617951570332528510393161778368497091584526612346701785794726486823143245619076560534164893189577849654194851051371082681529731055577039357591201060163630040465117279855061310977986370584757126459820128699632926751312345860509168207293040020378175711532197521784093821395264283039839071779947022674054260236829603959395816478525245549152636515380002445968082950243446179574154409191648842074773619894316134999950586414146254216460719808217390237037457081591439956305290873555369756114123520089056208320933087348483589002080093686671706098069693831214095642884808986100934217638004493619255059342737699810940179354239007032567159241285946961587878272456406277055795797996498787406421196315405149996534686037161325032627239747354649412273221517171045505794681860219502829920113165163764393797548203030877671785171784154178603839808322235109338226490078028347221351109712066423186826514419845462569593333780161648843544493722527970773918693833678528244157824390892449174820093515758706763542249388233421607755810902474677899943891743528195160293628980595771439557975858964255639503161682402432582075646898123479371019210158249380522280446824113153313907990323180858896982061114450220545483903552464428647897038571396998645916500181813758192396295087753869112369842746837544631344026569696781982963354408422219728240315289281724787907773379467009694093433526570194378397219221394064108520958771978621503266740806648686457598956515508270127806600323457225955707566711187194270082547637822694115328800099044667039908550249411716564485481489031555945531086255416272325577752610297563164346047923384262755697661381750643738756067620841029084362763613905670732208151300037866390666112855651266647370899189503053222131851899690354474639838217780016237891199085548158013342804288698226258471710832675186515064497091558888367701563398041504920416801613480695799350419645493560529623552825457470753859955217879391318802220803219692386165230108753626711740149855721130200190714917481986266038285589609969444124062886561531452953075402355145768763352637011667259648102187195432511166611965188921437688798037995929556070806031283108741583675181356730414394937447953783326521084409407816262060453395093539125143426264609461382096446006624933400725644213239596767714881464976082980049218719536048099382146979373475934384863447411656006034548665691745964916323199013233042743800951630665183506777395669563718576364197451498595929232175746933959807940868887728783961420955641252529002196689026230556125301053517672337925075127293793096758987188539766040633436871002161379656808943407153358013240059199003307198458809418973959010261955333854891202995156485801902555105164074230641560579991192467725068090078853732730114023254658919323138392324819190642944620736607662293181892086414982878601684935837965798185941383940143893912043648068151816519998768243928244125143955578046592906157379368159379326866994600595220154698252249961538776641558439296948268279564554758715254312894001456569394995054447534335183997786121130009980592025158551512420951921476483666910754257324667415025517985684486944964887807378839089100829861362910451166492833428342040248621765954719583850761100693806169880125355962182676886512957678522895710372712738926639288148268838998373290765695861868513844979790225038278054471608409450215351671440959444527543057794972359330271293270694790408699292158072464210301676711080773466537367204613395912679298627604397062501620405368378165861724021368743386481240646654947877247895472942466472790906121802058238274076178984362186818370777801303980139027058079021356083118309128716373396107191446725239699948111102786494692658893306921018017448283838353092155870837226163458936802800160275238076665788573719299343310317436366693697875397163747463414824244902058956389701999799956331698794721776042436926042099455933454460524583177005407301028763442940078210667143302026587312560086306254465828661425525210264995504664547592454929671419562538465808513607693303574892578970989770704726760378689614258720222847854785597738542293167844756415051686143861171728142979188596374082383635914408935356105680178938423600443133157069354361941891506762203613407064555901951361685166937509078244387333093564984357465711612517542283701233223192845745535859493328469482943405675970565865520754764063360878020128215699835516353260903363356697754409008550191271134925093365323838459808990892820757142924575340153307718145317867487279460667261986439720335671124965252923469931163564684313678211229145161134929547335829824344232010057031507693975450455229559990803330941418116353632101684102652206434496582150485168090728563078346878797713335812258356844414208340122897076306176826934928013288567881053066062381317342205247767050909962903989616489197026459952679258821930032535307075146276075836650652913050334596031313913847002670441596788794257989768342821129476811370536932811129935944800401589207207903647533228557517834119609611884292329668595531166785063239041401724027613344709660416946351732258903142065787914466703448276139928282467252851226197031215990852998120497422406475556692202134123273358029406008355830173381337213613951133847441261180320363132420270540934562628220137023707482497951427415056806751998913386499819205073000008803668360894599786126564046323188123600035062574709490577850098823093050924544141543248263915139365132964332080971266988749422811255389583924604959665223557537491383494180239225354875077329640680391085478485694589731864048978682156072648756586134474319933506374223793338884703448133007818331289517392741709802966532650856628690111930578221520108654102727612237587632001708651481396293535555846862412563513349703229740756228673936369485073133453230844292028931283782654494871981239069719992990406337305143743832349222137467239105436771532481802282906317420271009953752325848487142962807067983974737554018033256347903754208522837904722081613742450970143805677906767486867027066992309675630609379584588104790059994473290172594738758355570946530295318525139322816402565150605375721190233773451239398105758341056251179730304026381533848359820065919848344415648125662643493742672268550601252539199321610534934274518154686996056087401818903832393480612542661873902587881420429855267243743421821574594881548765483955555410666633888392132560476681396707437106092037496896258566549553771382241435590044861220976354827283947472873301734580144009633569138145267540657787467662890793979740575746999595455555255887038460736975262997771755667145338145308685945324807574055645622039972716443626918662639687084132411056379080922625572474090771312326052435768899444973471406296600901598408255954971414579282978315417511255458516949866291242938226013535035862484039047850744368021605616401423518230005823978471326765668793714428800197304937916812942097631528498195717630665023033856418691069958818407371622969291993014935271439832872941248260980539495467211769650480716528292927195337384058997060254116617552921239912408930355231350160714423108376966545981694268670231818406785935912612967063148831476624035594420919841271223968955403336508982655823286300313024028819092569496708768204780963241989246958110477602083021498634382966573678368181133979092740093949724724509037765214871233036105917466982522151124443932882672191221612226077264459621172998444140792807614448189735683153727830083862676557533650846515155955834284339934087314772739011839980546328803834769463159926215985992250112784715387980886233557875190509417278066671232606585196014342355457082584914369205236061726541165644437329963577175109959185966207552444721476963253745914290300242424693341969802193093653638802025646682801838307028352321936701976023596546751794385362900330828888800950587114099048021307846133376465131827501529009636674210748380649828873398307777903404527924053473943654874340373278302296807076484033479003638831433823054630247207976011110078276775625583178803789416064760056466973920788378926876387416499179935172938601025322557473203689369202734667759624658921897215365106066563019945882763310254411605772163521792153503169130689334432209331940667018570277297162095745793759397084057884761819760371143115210001641104589206482878815570928168462070765995696955658085712636408793247062302447643978868487818774177622695901341907116601945230091060844112178794898687611097770428664806929848448293963783182852152769006988212075110190314572626280946533349064844593100584703996718172637837655977104046021893912866090376144407073644957271901180449908324711704261670036083819185693265487992968378520044612487549736967322600244319278379226407109363778224417592543345917334858185390564086441274335851505260456323671323533340652050132605970214809918166735105045997275229964129454922760041100287096724733300590219946549163360525200662972391502917680707030851154545742871281889410245600786441949396862460850466456198040827877017558028348943994102261757182812955246431103801912277957053992837236435805886001375147877878582655316895304084932395377747077396735174531166187503246255435878054613053719173342708364449314522573694707254497228168456509780454747031846626932293106075835693429111638053670409588349867767338552192123213491575903837786562329851242441843351723966762758613747132572897064453276370424967750324326309835621696881064166153292910858189932740355607103296934496023890892855178829985108121439647263130810917166710130182958620246911947385700207425230449721975442273044533983278407335571420518665267884301761913896271563302566244824777968248085017317626224566313574622104193127856123402900875240678706394081161186175536694732676839630405232563832152752080224069007714469287061489509063179621051635425042739566159983266081126596622464230175104053378391330763522720771875052635101294696039012544688926469714568550162438586314701618947885694490959988910851095882857827761381275477655439425889286853685164743214974020312146410866570734278200630854067909889456143919794313073261767524397940272147249613392357210552801150586833475730553849762826012173176485714715074997071469864589750638473326118355512385973316503648451052132066268997103835011091439517400531040647735990955729303494048366145885261228792786297492400777352625964332519196448877586247287058588055605985890865839655578530614613878966401662688102450507906308305784946983629618707997800835482717300403236895404018258762161517144269541032350500033354777030614561668105605130475277655071140987754736332913273230520519338159313343039351177648941673608761018535364306151715023736920281392254049355549892501511827937823262613115686855840818321560688789517216865316692918496478480005222720100130014659859165158625441789163752463435538526211754438699549985138360462727884288221078356456905174858883938935250435538688228813905191893524806606875224890356461240486901245615508588611626257678376588737131770730773449671770429161170919427032865666196990398949192857186809238994475607861066458770980600818214847288689548339194816637340594897138175249369566941490779790548373396522875035534434362452967464344886550480536210793021856111344607694747754002535488380132042346341817171888633895341662405781608095628451743229620973134834480951005708878225202073593734370402087595637032330417505940479216587029136180889643343564610147975609011706536488191457102998441357705573628432823978901985476493666149875190983603069925755150127207784024328077553327238383472706374703607779512846136857238898308204658288543955166923076279181617813675679303914644135745152538867424328747920772253793988415057910944521172846384405479041518143359397943226393796615942445410775113741960531845480111888554597022034246817108268236391539001863928174392553565305396743066481929603705493967964702944150997044646242001149706744989822393564916900606804772194127852092725198872371358433009203219344205526173741272073977970549556177817584799264696570797828588274973193313294776242085738719757631059559194231546777500688694628410219126675230654443472031714150909062387172009558232576724619470446744251600516207621119126736244689217605436710463324331386152037529252347276880743540826356115732446003858126476267947322457758958802662120920666282513319732386856767804052989414079819978929280550496148824753863765599768511311307612698096118081672258097092676033016330749558158983609771779247209111971477414844651322050744396909191561123483534008999490305458860724093016063565331942633983206727305657185393036335562419137867054639170119273451578812302160884392220449821921728802487118876734067896337344295636591550943678021652952776457009485510851391321611053216499354406988767739405301255725988707186417988276898995435184395123180227154449960789598968257986697930219775555153230461518038167761752279332229962965434050234056947360385769829524656843089476654804917575103228639668254062542459426890683594781949497377087131944682909223952703327124623202211949294142766022461981391398045592329658981842581042584586320428187776735358899077717813255880895860714408965542969228923834094878846092599487557750204178250012366149183358070352839698767867463065218113876084068946515967899358856101476685697018460657398140966457769488701595287085682453020726207283447888437296170268456052170544755915974387610558159425554339867356794304667400745305932163703184125054132996825464797992827081366874573394743201006397279701387654976460107372853022302619720204046061079160194292386525889897380879494162639260878804871954075515345256199597673117134627269257951916568627341762278216297515640021844637303661097509118860220498851413689985772633897538200056487479453512534294498059849039077853381214994799645014697446472759007144051515299324299254342859591000426641625144739770044381895418280768574346399571746951723757582994612700780248700427792029239285263416066777125571988390201445013691497517603829924058438966232271679711882716394794456972205326335322474831173226303822585190011796108230316783417032823248909684798762065465866434936751715620706236101954025801912239535772068779349595085461488948148497440972739812085659968839707921808501502189255997718325762896040178256063084441796714085014121913958079786231039441448821587993626600329275597199525393052236818051058343996951142527596378221034159780317416666966262504331068992564101760053521278856017059845282150026764061975533838184042243556445525384250109341464587049021544197541921948897763154017350860733332629953963631501128030860466833018334296848565593104540522987874482077528465573924785576330327824910187322083152887048857887516033639745528945697541831901835942097480910960206634140387466364883717974678357049767788482165893223487869442345789348236093819634323354955081604913425300659780199384096870289266355374607505953447964647551559150571312330802730995467258967559051509336927129264744395949376685983863944647614539359889243914115046080595041549523289905445126285559040303648522168902811189469846068368752940138579268241667560757572564408754151833142164000809121845332843828766615639590366192649659548320736675647882547991312687827424364679160319619076633575952701776892230364164453527213715301716488374876489182065352514147006097279709005025400235806727145609547487432933691370915702703983435036944410506574798816790123146691592500694540794615352082243449504110280643589563126255324793569410280654383587458340335911470588561266391228076567945986645381397923348730821912252722720148841534077810113421254036592013335270331578714042610290838027437003863590249635707981602014042838481077338425801025260151408108142665092470958896035760536103154791472434200159181244490815598128698036723230087448449922179616244642442802221767209693444535866548884959990893177829232699289135204571006158812836329227596620225253632126885397661934838464917526566410770764978392199862572487755999099653217008749790697599056840372619326290249834361881221109638602399243362993691535406944067648660349600566288081542997037980653737186355119027566848439409360173642872827009885246243900829501184239063894654344417116880195975869546080052643012518182205294217905422919308800834978063566454172353683921017263654149973086759108527190530240489451356655362075295775387136154637665811968519336014031944230589129595927094423063919500505547954074768372722048798517654973436712808317466604113700039742832975500086406275880956289647521786661651261544907889347822504510103838937908789371937886799699924630062935936468783415500866632139332253766355381250895368322947061169835962051664857832008050220275380707340061030681732803303450531424052140491492558330089770191883511791961224906868480044933477786969759043963842952130541515996612518888312965210317344033283524282737692948585166277276675324980275587860288427093874630297885491115862627601513093024227391353507151425070028662310747753935571247181673472473792136165410308445184168294690321293533754518777080430367835960502484027188015803979283841954390774688839353958661969544704916734066222692281410806215871169712243268000227388977991933951190264075235465921344240000875983441653818548703722147781882917682669759025196427622068792522225099218582258030440230614068755881534779771671702285812126450949831331658286659679894075052986426461647484487398520127266353585718881696082228874518341404197328231978823627133809739620392521062510167702367420012343174855076915928585141252816890794506418679296304185004259654202368806232790101389374260476657431692073997673338066982404080063863690450797250641350104214820842650733465428796280186459980909020421309204224403061650219145486585714253214618066494052582797595351774604031086963146434701922556113283503080945794386222940370158351034676827013024730388908934264739696235503411722355884810218797887118515942110770396318758454325392092872967585274981605121082145855978898762814044916451252150059825750448257497687565911837278683428573392190305669956101184023669147299034322203274665948744525398161494348756443240796498173927276043146764311901839623753820225676280920742275936481641593977802003530676378768367518852242451463790957028711880501883329229236230064104564241527045692245203239791467258361397766356973208000949954249752233134207163648215434246200442698314653741433719366187269912331665554882386107850566458891391438294034139578669013200727221443470277425494801470442186659333908080855687703251989130427072591435642241728454166570335188688371315391060133972952978628148904592009351326292227091555711988619378423542741010478821669804264832585427170440749748604525405502587715254203266684395413041355295271913987675632963832124880162326285830096293301350683805997705628842137428412341409997295657094922950555837212369747446468262012114733521712585736294886579454604546924919100985144475528841089195175371505085136097730711950605334743388605673284400354417521488856108593281919641224344273626027018728005086397940942485794059722868737761201750901621188120025615679968387711947305224522568124302433687133684566846628630281012795476382957385732758810363846394983428097785093768793080107024843894007067999688568341345776066910161462259989666712481891543465430051809988617040360631344629840078399847597505486451960051676155315850974788792115092864167978749802160392605170008802327688723531519819111678387818982605733551856533787850077754174743417196188997461642823984286901463522459467028268473026265541924766461291518967811583229678495591013392696940093159451474560543146935546380683089351952124355079047359321167339408506405867636951424521415121857106601258156293395089028623378847866654603677192242273221806879754955610656363169667175777502927080688840694946039599307262201621261665872021911036188705995926779619342137600392791678966786444866171474480693331266103615816412654464772763020392441381042192552940882426761004598411982346174898860994881789404454888935428456469443405854358188165320333704319445149517555073524297779078563376971054647538409627876712917763502778256579204322017188884033740557186787152433485802936449682221414600968934574721595166188216052018903752084700457268026312816414116798078081895718205015559087855964359379584964675407739221976900681937260533231690787115452488057846076064825522740683454312503707410940239450693309660513325431512832886371199766073309722426787380550466011106613779760659766273269950628994662999941271544145376980886206238537468452691645804575073347454675093558109842696792502475706941971624864130578661769508936571361607141936894781873443526992387492138098937329839141981392173496742886684628720735014418988543834326042514277936181830385372536222027380218600903802202671540189364288676498514568817728114338938265376610172779822505146934088994438446955097338772508247490924292061604479152387133071425943599836696888820833835404073133521159731553175603950170555111912291509075341453940229861697162414840320762049522067067593895964042740968045336534751971308420733416183289754102095233960185941783969746394120405869326499421303449188885984252158560759974752247534720034495850638050699565772943507235571664059982123045352281257626794500818431888365340580794140344035378289126437926230309378222884736884850738543197073273393901479307863356889815274503432090333075457333866597438825879706223063501035930639073290968781984683513379957472526240245535450979845084843876124773971871202738459703552921297529406289227273402132203800463240946764977740004544363934038642796712615403042780905241594525455922301290866409464254284402452621515825788944673341354163660254276674798482397681456879647739487007265022183092681626476000012842138654135492453028008427213760189961925723280266663830719507297572721893597710035078483458740969824673336345011380238079416634517853904347859709746368905495788718670423388308830395063768810760648942835502027218706114771794775958748683503850079289793992824621436251746013544947009496037806291291352757313217916324315395955509895333330777284447233252335487503418102074887419123202379210571005037231774176635688390100942849136658810838498313174191574957280956744921910244236770519692532514779395670097187290860512618562762302937263802270809210214425836719485812120771543083846539743718207166812596592837971310875417486250534158662979950572995554532885490427802909429631484964122262856246591380705494039751629218726365262875652284368197662844834892777955281846134370189655618138935045942775274747008320187221146247320167564403817065027094695388218810387664822400881824160439023940266730407934957889127141303811222285086424849223124038397181976784703160980878207412329950823628786437065180029511445721520542764839494470182770828554142531381923927746697027450007519879723732343602059076053140684525781428872381052021430201144581861653111174724715834918608598751130319017313322190895221002672898765265429337917196813769279019486354482580085474341310713688610943919769352807779660338892246129788326491396389878376349355366120960323083301477673111260841307368157577758254177719756388272287671045266204421052245947806017458111261576774555026719778057501829452831127452416810945216871132545935294637004893649104410516512856891553911622620338935011352057856416431594582115232269575851960461107547071848486583768230630525043617016632517218389122260237820570748601018363574904175361482012976970233376121208974592667173679764835868849625125994736968666494481674969642417431066439020118314803304735874110917832021840656740247606275504394019466506867722311132494006757462931753781427113800730676593038358277983219369868036679517675444397914540835504593327628861318673180387353127279178349091142434851111019146046670095853256160240149782515918255487508175369689006713070818388647228520436964468355877513044566526291475515203577488036337502989973082378348942610298616262713138762593042285547004402777910229713249999202915121198307156153628561230020420472288178761588152813423121211582286265282533443424883872270704848606010478549528124822387646614348458588005189111160014803244589119510753787316192780547150861201571493795323505661760238173688255445143959980685363663095464077628486585514014721577655475064319585333549664012979908649089908339560085680035681739552818738321777934307324327591898555878793610424744067090946193080975999274911109496847777610466759490893094267320525626321992169928061994953294621340920372531642219257117333537885560057992016890977262556872390906089652770603599314026705182712945990873679632521907441119874355099671339010620734765313270215460980537330491454552031908013661591985490073991671244217261094147216884501067771217170900822009015121090495786912594144830131688441881777707551028425568148024839823267222064319805322068211574159958021453219826273708228276633693222941098570025124494265985650435207610631766949747259659560884623406204871633816716409734560222202961680675128852222431089752282210141778660416024062401892394765612782265786774205873730748449079952346006352556048934432954276546354045929408195441392852682284912971288099596821765231997497018622315881350301590226807298130947143249884303733145879312995509905651025713136905775716962741579820008569948252962228249572520888967173344753046288976474450464789652265431072939477573629505701006626685188417888344918117982329593845564335002500164738459782430412099021832765265957122024281291952980592289277278919524278345073651023523758579013993161756561735455075556886594422047859217548770074870061135349262861119989734714865348043434247646095726181228076634172292477567833740715547005758144053160282248808810954647790633271869889628991461606083219652593957737826213323467753266272771414273664170897651059221843901654085954764825457391551760961452086326474265609957489154700356138406846171146690185306217496885570331068624980097896372638942659105895806343194053709632355752190230282452115959090431577281381974639132386113299242533084465519099463280271856587670135826155372115950410860293375360647765193288472101095968754264802605340103047437079553018999293702365797219586633004446977211289032490808152012663374687374907703642514457627374999600935208989825974754153080143054705956906224670386281347119216775755640607834391509136252458317777950092433456455310361247314788227770940153807361243475937708042084536944712115344435084645230525138774753729320821510372633099554891234869171174014755599039929984690404421488396246359451465558333990818923495106327237412916402403688284608622828585487430374550980419250649043988888679742334618368205735564118525828151175198657960524436290349842544974664869626988183363024212876562315885445827123261617047626735621747194655480718165986112934331221311866153907728759628374380835287706831045774804394446304227266301141836590985133797008296525932705021728183051723935213686125782907482098226802860046783495298076679771559476877699399913943785936102873804551075848678372478162930039025304780961238140832105171091668645682411196616720683487665808286594940917262847646533443817476247898348169714457063075380500777853253311543271993294681612676433361622045103912357674070977314541465840080934881409120326664844760461879098235825101560373877883556635892484008605640623103307446160400698015926927544924676152560024890925581515002515534320993475715403813600811697191613769503749232061538697733584756717079285690644903409757619558098725831812388064466556468756716569741303427194812088019366393701568849502514765075345208571803001743008705312449453970140790542301731253976337181349174291550044407234948120478283181737702450111809632948492652554152262169047385986581749275256240839564901163793333540360970104155393429389211116310044133031838150405433986839364198300441797276585891682053137902996129861902581655255102030047256607442124496458464691080290712439587790944484647772478192449215643400023711929693045470601831049744582004118809573025088194108226567150036747166128632554039699504187053465485061971363791484915981874604796781604874171542662464618874561418250636442500903534327412983125254445988937210042573435874332220244309912200476873595490829969286855187116037263601571901770941382526933507626125538888277955755631221635261283747082095340734935218578452329409016408807813694477247630621545628109596419805139865779350825846108093954344665542795777953658098046460756207590115617375802682909942401118935208653586427839776985390747931250524155510608879596192063835721745129517076266281169372876740807923407797926706341042900247058851840112554327415454013114354304811457560900755110941477603789663417812778829672120913397020003186506950574596231228720004590599279564551784558689372261793300590606736654456750083858271232096231501307640706668797107324818056133208272143868906538154717832013512372274748337930882129144607210332389500664632616025932491807885989927954930649043400262059934526302633621190164692582778569682832752286176410504793488049008210155598804060897679617768750995063029157829947164469335702223298913856409412197543331703474274716552393894354116992096871192034185827096567861238400422195447295971002150381241614349509623245568136134707933052861925386344470067840291240344929336766128824126151476804015690303172292762799568568458365727090975150707101180140810589837758988000632708331514571264479335445148680963869980600926735655557607819964123066733520653555494125963791057974540237631341216688808103693841142197845278660775312736461669974043043134051169152335282697413125280314416093704919534047609464715260221632922550012581514851455827922168291182260789997880976556948553145817549682426550422880921052558265922132531257344238608993385356000832777489433760243452017591457196180671241044059357204063327155441991519619815602670541690588443707297212568418984450400863945964795074458944201626730093751004875332491325569712691237706944135543986362713886919615092287528717318924875715222942366628409884664598639131500560761377342076779052474623541917937052904927452151159031078182008951551133542681244197119677686668483546342888114786912265022467296062799239169766322007810888078148758283154045466097561055256469649370459977664731806209131693262602758664850453580191747435285608758830366864562482348552218571153763016515444740299385746453041103381780961866953282494034397382870538825993375105899466368284981819319151123252474288505990240447031213723666659041900528522703304542822022964851832799872986952204821165017219574483759845220961213821612821955585864116894555366484281818716656717822409274374240465508228404305176839431984214111675295687551834183932927759310777614860425136405966211827571844147052724399360317866020269401297185795664044985804814838742312267809774185815156764531729698628729346190776888561295916319822890377022837461432972503086352263662319712123660485158391400286337782473510527071482537880986603753521951906019809290901306066509145116872194135358578258488584844727521190292757476702115507360079944214989818376126118930976859816978138045865808280719563190633373765924331293106262071360847360976033091889957890751005681023684995899377486823792385850429111599509857883443208494650745716662103808479803666317260095500907813997436100152344444557700508077735255317372029945444113795543754528071774245721156504197661438239862277103962225078310390960685570668817863997544834506913535494688681757609021278281835614443374717180612042447409098373801721974387954553120276215146373231968965724600053166609281778899398722753178025050188632303680826497997134760347391058091802560730719631540760330804323587674013110924610365410122751012200817867863418629406833952043767439179747667446979430247220907848041890638194611896133580538464228394758090690982671334036496648990189162050406766148215996259951287299316301232709668858050365457744846015749837159492581371881273797034353083773929421408679706958729705345546202882985213545958106483827666413830218675225568157330050588686418952997561209647633889637984450184507258385225269460794440981703054466417656520772181707176518260285055027910661650876225880438585176893930919173037983750694406554414149814728458159800397577231743819595279150977831892568540418049544302764311041649061364668791495332288921688480770930664864559830351444359313032711693397076701001059208360199314873989199015939509017211099528329040344096198000567814361666913950754806654701088046941402961025094240413726958383483252846530126317966284755188004747974892239044669072935858264152146938279284461397030155931498580750031015693702085524088500812719856235427860427256838937185845682316328489658207437981151340668675756535266802786107298893475761559523436087209159332073749359710719980656289972263113277247527288201133842957397118272154789990092129535084353234058299617481857523280494319487399401625930565986871416410846657644898543860564355860606119266870511066456134563992636340188168088155781350773490452190939734108347346828333017979376408295521023516977340739982729080608499350635064830381694140242352118120083345679560529504834250611480835288738012155427044141602083502562410433957364779947121540264444061878538913362038912437042530575338774366786358072234716167509698874848575717181399010916671551252008007266215876933878170612414891406088770601179069746263072768606542229833601088310156995747960359922657583940282450171373448721519290452506565775952601540605704250558650718073185830169147427807755896862528977189823834847410188573094432372235050539220541283432751558954025790774349282152981909030844585307912272559674710795380989123877756215583698480989144676224128774969708296172623194120919426224878380082476066763127524274839560912935522254942115914277585885323701425878149043208181293460379530624459754251281664181460818854400556787783756902177228792108082061012248270016355683403089746888932403997870926231088062395310147110224709913593817780925694415403667605449355668550382319407384730974165034536613464229912036229802553707008968119182195944087426411977619414894845212194747101773934819483873237561874093852126514641325009564276922935142732817453881520212873415573229212050586158536176768671632064475608206300366556473685209749735512680741369593118055275020387955425250525264206340344040579978599232144437392220781404437482838606541447119505532573371837587359812851490086046872657538546233426728519230231875875975927048052799412857393208506700133550724027083008303984802670221740575384707385743299561142112564498428290609616096049954220840924217082761033987226677642734753971507447808329437312584154652253658188271691755510565456065516778916180016704187748240953035748482753859826495308954449780854405209496957707327454987216967460069456584432933226055120987880485900975800064020770587316658319890548387702313087879875095859962936222540691157224460680839428270518613096466740817951390914048597430165278414940461805772379487937653586531614632691160709914238852202860476217961373034273677289438279111681248269872767802003499396644500226094236864993840256953420126469234025817426436538855657520140980330395043568626142769679701296237096884553201551259988553934422676074890092159870538065552543495963973919008324837284981251651547129820547920986798550952459296882786207771254228333762443749999787594138274623759795730312851689903342269802222655944415827568869667954260963110841432597372396020268791400841844927557591906106275252532957263634231475397512147414071859885793145255935726105108140873567416725632772683043180952168368438670533768741914836996403302644645641529881393779640817823140388677340000630989576729854280420032159878730675659469465433384969072946514845049711522185884145862998589737967767366992448849354030782564850021253671057637462363589757581327819679455967884401084030481180337899654346204507373589798054064401947249718788021651059256390400294304334963191760164505154095024673574477329530592911048036373517337633084146037783065527461787187342441655596372315669556795376116006078509476112240183498121530512636343976920915797150303048230657289581095012536984960418903046346046605092989631832880004291907678651406836032477038361890597748532095043797815043458083083986644829045349527110767433121531150397099529805748146285311216749130594414393759400986595505591930414530151298099316020605096267048931011178360506295932948930005898553964653773265135859417511981233250023795946957140400335597425094087116016672730712095924043934355545289176181214689420717678356556729246426567151089106592494403939544179342598236377509157907529498229740546557895145188295023160441814053536009169605768789910810664775069085682199873492457140058356278228247151986447151414479926484379139628221082071832780112808637124936998163767509821316808048690871533898073709655921935750046599318014464730968185606185999679669467988055822591401651623993075916908738036361586722990271994412860019149008015301636648732571283025047534380955617681793810258189243499705263844763308676876117347889685507896494687998472098534482428779805671737156332547602536973903898552452839885619176795928503588542315676883822736183320261664818689311071787358801763331721300428592621622017200303348443535198772307749750648504621175783629066056928109748913629983461414807572106212015545117317463158963033824834823375079416863656440368390348531994149911007734668796550156141403368105086689327333757082296959612490204413739647607697546246231306878815697067145671175160090219453049083080562240493478947275315656884649239227553165577745246716244756009734576455783589844947191308214181608373456496355271050603321196349359523072182880105961836858430705828723926760417689917885977378624866890522848871095448351272701831777069824715028132054771579617987262255087754011436095408693897443906209265953124884205333890632478219052932340425131990124589870426715814118703457903490651211673591871327730142577403794737116293979849892405836826769713351429272678229915564763831548831407373490520136224536754354900736636789787060956264336875616168089106274780133276807262354421133445406159824754817632546980198585919508509950752776622826424563788682161818555294053105693241872805574216391878862945469471851356936291348806455950479766993873945399645889041936367286719929851251592676315236011279941736973653364092660739323264305340749846165177637982198923499258192701335205095351546954374763174963374863790853066353453425403242417395803209412433681476437364704264682461415117464592497061317313414655260824341489663397313462977493372879181548618072906252522697211518794276110428470396853626962445381953147866833670194900068896182035576278056578733917853042398564897254689095579762566527039637327167214546028304635309972970747812049920046782787945421176910041559105113429443026680975787865556047112371221836050810467521251527961288883093955461465668379467431609479433927653495973572116943091818691201189278685922601330105462565913115582536404712823093732065848912975388363090009764765453869929650804536869461244086803999748958849759443334626183671487729311250567754563471794649453192967231450484036186719147044342089936618372217721985148406199285872070006443294020827016177525287170346923494207794839302934593702639372937597679239562663374977722174587005067176571443609910978401926499997247331588822912470987472093843691871844673532674373746693046405673119111105643198877666977531947648674650346152787890718623202569894369496924552944167203048096842108525589335503958873652609589404208194590525926630152609097387204445363004956479537719966221727483070839042045320015151047864643653896351573509282123589179558668335225399153602266164970677493443709229040140497660978363759648802630754702802292392760933840724898226616221961456841281427802008757636653895629035522288826664024071927742757991894960606540258712526575579098965412026818306963888927437439699151380216469573441173278980052382733146340080407410452043967942025077599820838192472231297088032354948588224493340175169139968789158162207761180781283295309577134086247883412585164605374303697852319736277132142193463663071415116859124185795935771848629748881032629195861044597646552940532382467251043302699787039696288341965591271158095199965788989670446974329786377193633878934012118793269242142063356130272287410841167083529341388019352306042347105492456391631381316941789921468410467715426342298581040068692555300895804242909695050388097116166440357972351983645254301832026823343281824781056387302692047653571112801132483786360906365077916156790731515157505541918013555290048883567849623545399787846173206670690042053971306841429766583809632447793266102207656612007704700925940676245124184639701511398217311504640681146980118875950239503194951979730214380975588226025347019404191081108998950278810845083826958882496630877326351410915364384388891003971701419750757177411311751557344498392799803164045564281471770706281919243050629767331579251607806423956698442979743677052709489428077185438204687743872689787691560817822094443209566853466973053232725911584519723805367371122296191325132184263496254223105632345690794215983952497356754659843807677894562700558659158963331353432008410975013806296629109579592447801401578118928662509776437105512546820824696625747196399226905115951695949440791485983414532919845486209412036531123941513077816950577942278732801567235375869997003404645106089275236745345824096513671767570184863905650713841279305486047188120113439770487963049219825489645732637001332195438936135671975887498000913390491866792980234538669308686844400416202224785418742724047663891010016914039947867946270175602686256976928620552870865947143347230463481459847565367850672134410826475935523827814952800493662798851318559364989207936762565463376540271719671740869533802946949907717543697597650742043990538972359755218770033375146764966871177211134633815437462257982625129387001477523876687862417048590327066439860316950038830623502314893148359696420164338928102268423968948117318274975572240477164213191027741103927549524387235289602821764767922987926935257722780045122979671415762522757177477248720632758553052583814104042416920258977844334071901117265401967869865237579639540526964930178763012833805547133637346311689864965898104730751935510973531919257329668894959691712260979985836891323201973070954145997491839687329941723564648399595367954361670692282301799598624854053925877963812450273018170796963384724292197760441995246312341390793605333624827004852124231429431130553581121480848646783947756718953724851824295644911153894902402695895099803899184365162145212649837971327841564048280240082308560877286573901540172559262900006492744226538926067311194926086328849781230206396562184329775577150120298372835916323979330938055994884574611658083925079103541806205423763228595859327704650262209445039045317564170080492190618050065831046999107072192660441054983910245523342040189870459393058118984050231080159474271741798650900700831024335394945587188139090631175919451337479284484652311016838526392966136204778653365541146965638712915499598805285874507158437587258029275046014857296515753148019684608498807292700114741752922669510681442245083808267980547195707642626550517407454389596290350968506309714345957309601029443754454237476146770312638085782220914268951586872126914528791398967867332575606599568099192817531190092361212219596180270197696168148608223937203493955205052890201697244259811776097277146306415511812647565156097306079628303351944309391551746279849261469824324894846019055384715135168785947493614299425648315627539406393473494874460035191675469090784910053871856441453209484119327965417795755337377339175752211035671268281860269797996208950993845558406372953908626751101869182110467819901371877581926769576813026638594464753626793824075599964078821366736216179171164799852513377812997972478614399313859437868631387012977566277824636016005121140229032981320307809444453586364897718100299045389712791563771854564569226017996575988096646680319068547530300648734525629304327611231615596789690554385120253229196770455920404907591283638793921726446597207535724710872874449584709323600026538212739222770385738251149862141526026784126011563828576181510139192572900135477171383760335583982898289989218261968310345968320106646037899066861446735936839060775198519323072587668017729822292683946189028083317062508589428996314894808489932066331217822325941506302723098349332736650735610268379895114474525092425833650852736531108050308014544243226716331526329054607436032523139893806642300876449026060377468004046632039186504240401052665171116401844743641728297891106857978225823249647060974805699454102331592092399022216062917911846788061236074045489811001274938013699536000239374101025767494008739847115122928795137139402921405903814818213855870810987984820406571188262622477142830739969376173945260412598728617968585189692887388498658072538939268537493894076501517743129881698184353989044266456065028183950781563301558802294526535626887780947541883019755643936891153383016190948229102733273824587447263380283973077111028096486906284674016792809667954961304710517927755540746430594198686743434146944920305794752974119587455246294095228300245431855480292237018962375018309896262665826163023313775327806829771140081042117614274199309717631556297846995624313322953259004205080614118871735226405528996808808974049131470971492258438672005617216283108967562635077047410986727422983384102006229418389850532096107790124672845393920764085313384732096762829992520072258980272139916663340019927013720236380637737615619515821964000966124458087886576537770692615270179082490558830751663408303872591229302542672161421739662120069821782182327375617234339688450383407981041136026638727173286047653164150361617560491207803363574191862077608119755875264493460505033020149583745946458361893189566481505473576166575276643280043721001374411581000490197324005597007422481186791033929264858036208975740516388628641610958794463885301602148292479884544652747309265184794603190308230449155325425117663179649246946515133614180280658168160834356663655034489014447079069297815087362747430772000224384926883595675721264545701316613779237580453837371767772071473388148132133296844937656690286891962724269993847524238611584204435058735135804911715558729221448155254305997954049777038648846044592841786624211862810650321095878829273564397428940736573712678375013714521930764672127860300141938707064664089608284954823538614866603245380300556478901549229880075639816523354853569886760277237999184988226438132299367572782195620852483571304048833980031914405129849268151771843386339082158033880182608026690527436907643546025592572133568798945598662760289691320931920164160123667324896911150983069336473482807519258331140807663121153773461731503155377331107477335862951961256573296987025301392963029960591261649168452397289206271178595794384853113192043457268206988464033882821232396595101652379925161813603450687128967476836127752930976401418018074363328522719281178436243302615348046808699033622309888180417802562398472720818550698614483517604669804306412851647799433812975865788753719266308743962799538487289205896055081271823433479458114631896410042596477706921424026709324870900910793284554788293736110742192254308777034692858576615725628754281567017950911736480018306601490529774035864462577519119388302349905552984437230629435312044935206430566010911287521738910420997387419260404736794694640303772712973337030241610214863595189531457700746054849021826126614541209688304724123270293890337452099708546372786950217035947788541442611114928294516842497833635914852708016004797813109417942396075141696980776558130589579646137281640017507883371145871607601321689298557662599219115535795812734819457178004950005919075839477868967100356077503362145029307954748358719873451060874958464615019123127613434563429011868384388369745163239930263755113232573657364471537934700408727067403412160583558326206788762185937131075078879162331016012164791469056101915087576369230701012148669736998459466661524413590106704561892567072219143915500527837437464191156347152295316325545706762600039286304095932066915086514075321942136180280660349899126219388885584881678995254877358608875205221693321474042545583140264011000984228607864052595980700240039107246867381749068351615066166106015281658159230462352621181069769717871876865138565118386816097306370105888674482369652465983933361309115144153957086293980634341934457884803105851901972922341210297082819162559307965821892444506923301119295982385158719831015101059632667631731276214833594527599379340903185348494986473819758885112896404971140105060347304668744008819765266160562732998999640894989318340583989258022107871289938386852446554410973381804959110980756321577311342065379974520769022780953579547120353135743549080438657020935857776122641920730251396493970500011380113240575727914381306478871298529863216717005453069179436569454913342038112484171976324852356072416451204998985130032076857472153529374686884058878071200391098120852328625508097892623412486268674177254209368975277619553731194638784264793506918760927744968936799192444775400893965434296261124440894707436899795382920783367577489198174548926405152857520454499430757595916257979851874901957982686077557996067821555902126998553471749770866888943170435758530627609935808915533928468702721706338300051883635038598281153834329477072825455875531391749928387029110153502490486303248030007832987899116680705758059605385273472504854675812367305638145642015892454399820721580550232677817414269125468872700898877628303104542764047477370516006246478880200908391436455808821078897511373172519024683345126976605283325203526611663134074247516691446233753928223546301053735508257221646958192102187983033570031352585298277271218748936959825773536108083698683244097410662559990535020478300411395834998697988949541098561943919602155743149574644647457839990119096970742118597999309384474442654439343597927459522398296986264633840841337713800338103551832324122574186292095945190905715218612326798740212967471372301976973084466774561137810398284994407033332874767354397921074727669906108742684181481857977088092316241770984003039144611444538887427754912042845291420987794507720439136091738064341677000457129625848063596074984982254639876897068409356818078023103163577185709847183507494957044302423564311586846780066628927061260539995456955254595304613048910258435438206443770389715228896898624511656420239349046775354506965462841979563741001421550317941601460528216526401419015944680886812963988086396083716914743013293190367558290788888785280601618720490601943994350916480870936993885892616173043730369031408487526455952034039694976662352456203929177929913921347800700362536179048632984848650607906024077421692607061430581067223527400423277462119418238553949148148580881324973892831736382859149135553489607474155672738272521074902968089933330393849201269100476517945596666800409961922462782392963295994478257767758390887921506693645686058249269412614000064827713370757094731890245102700322434740536520912772234638765468301378720729377849541154710116923916795978179469738369228926455412568913703839949999483587159622846820123369124044686925910113645440630192670305512679270174622742687948868120542832368728267249023962926675618956734092179771835415002341702301359671231365336479140829896448082878514616381261785082862045249321596860075993941195946444007989724246069795761504253750974340191794732363014183297816327148854777153294389458406120344134707580245866294088599732514725606732503436035536993936817493395408775769401660161305217395850585638050446666364625408339829423377203562633221609699110085804422649454819202657802306012435428749298684115430618264048597396592413972550456375086492639812199941123694624297677686068616380228830989110518261671984301065655677799579731780106504025908978018559643125754031602059907217247507178644059920944497748250295878648211686730383118990534669715783597937033933802436585406597275826808649837999335017918150433059984393957108514961184008342660483060614074582741281597687485673065499828212587693622517221486041153218744708632735377026875070473258277986559320901510171359947451308397063970833414526774070537247160647415337950081009203435036682284660011951914495166340306449949174705663487461587283692757215113259918300463345101735978378594030505815116588287644358596359507310588225770153117478543830341719100427079954731804137590989830315799274148086800185225173601494099310932462883920079534195578598027063844626703773805585348939352472136343829732755624379126324511009427405422267078314895526140594164444473167299729791663792391922897530659874528637699904686863973299993814879734421007711903716643382034489541990000280912432071010052785174615690915987454604500208511602296136265065498686232068208315196221562319591030374406156233419447971411164979429648826296411067235910475093781916661188338018172244779426468476887576831964695351807875592875189297988227472726665438630655107969785888408902591666468839935755018199731618426656999899905144793599940953513679673430886011643696018501764527425669215241587905170391582171504063921604951140447106867157228490844865356981945903611945305682805323997653898611954992105179238775364456044202882435022507390150796664970227903658510438253364151763568719973869980390022793249137269904188129873029745440906820841438360185448879181273251772361207696422502069080401916767377834860505225266458292886668779579897655575543665143806208183749582059485429355393159167608553457975527039952066229541624918523222710535256206390255036930053734328180691541843907150739290195493168729399603718657508990537501862940735408313196988378030423496978384906885084231415022104502180212544775564344739770344023147129553249314766035736466112790816361001326268457691038072603879471015208725657286155042086837700187392801671252684068367351953014769632506995803858701378432096816590807196808622941402397593799546029354988885395235389829342806274274449647107820368156489958125086631166008509425513079146220072737585154312535829537965569144534404298590999514803393522498509885813182878444105487846135925843911330636078601243990164321957640429970318752264083642246905880528848263827045538861742048664851868144898292958071562631791813740899255154098069513315833733846093700902472306011563046456612281737338083598904987505283213371934407474064695891425407410261552278512413340119818057544110722564132690349417039844108390189635206975428480336781361259449462763394160003552611181713294463495583971332589141693825180250945862362798147732406226369958899378223847205437547683443327446603518757026947273666602214881776904825538315722946437203106090216558257901123773700967183096099257796627135817973053477181604529046548042812732527641904374877379246707895837916577732694131611082170543394789330184050431595200741530363654491044588198302999058248019565490006101310689458436301764582788308383119531497923959847060280330893299495567183245158209021367509758941954581051262271898116279955656386645888576833908587510252484455544778856985557451121292096305238727060391137736242371404132606518574125071035989249952474679280745786171059093100775685172993978703492724289188418502362512913407059002536775746138133303419541978780115829720662712879220692364194489945854335943052016393086062004818485202334977518676696634633646401237528752305103518001702160268233508644724925171325564704474538820008303855350570617579893128130646266149060166901847610493496405492944726513668305633827187690645297130955130824934178715834607348201315850914577363683577375011840692607223491865535993826454366179059468963838930907955709451403168297410553510585455520408370432612302580878771240770606460145979821529771237077265681971765939067082594657983335154022381419788079108773048048072449002063222854222105985669625777516519187233377326368053385521626943397304681059277547151222998594748738935377726934385805053540861177975918667160297097561311702104286916959466534658839841584218894045421749616542284933927991977963534972838955134248579200939826380874696728934554930330558557499799891355450873269588846066324852735955911699717061870210892333346565008733988718162210855700491612678615096031770928924636947265628056404824187284422107410235880821300854066452801293060940809462893061774013210225264275821271389478749111958186648843193707248982288519262376885498297726140922204507452416342145167615382495402125592949996890279795205324557821750503102303712147330248477736735684338480352909613971950447714908276953623417300561883300206423833481962465142178754089504697175440307918804685712888151026117350813322983629559309234558840381412606280546655375002901508358653144860886836736392349705479242144870813867220127923619823660009579157552149950639000917574791522598429125132190611335093486712519278072144939467683731046921246697277511331012601179494375745513521638398186619808548684218724141438864167116827271444804488781249956213722106208597420333761771987327797974228692097074888470248575245360207307903556315621050046021213366851022925321560848257580636889287285707736221322424699244589223656417784330348437641658910284793553586056390021880856849928726680653876832194575690190057559031544130344574460281634392235310815034476225803072300375002258187235895332726254251127537003961857461603626194202966323925135098923218107091653735601685896112630186476974244412197422155409848604298939937796260390401311655652692153255373527706727981625288579585394703006535848370259734282645496827285416624465861251882401449026297079446808406095037051385396413491760862847898678723931337025161120421472682792850829706739239242187970756611678354876646796392107642718243567560104708986280192079871522680465086887703942404842530976563954708741531946493582130923802455501553474779732595309662974772538062903451268319734214634122245617705189743576824906648499212931467236885960979698642238094188712382361300541752240925546955445001067424261695673172354215565799272903481840165986877602986433389160884004887043991637875247168525994537652122763936194563837821622822450344728794902102501684441063236976258329208153068877141124352537542585178608643607996004646009706695420346643566785800694777338085909377554407896085984280915602500900861505503640135535123682707113230932781609846452672119713966345061802229929039373467951135252539725971340932524898503235587859330059519733138071989793456733976665658470023973951865358179845607509503585760700978671977252362595734248397583968897422281280328665336684689222351045233245224943819139302303294768778461710140509512601241463319577307211736304000431369738302945122401859304619915173410327895415334901391776617239932462308569697508202262391615325195502242024471113671603876695694331094530754935179806870411332677805768623644270919254913353363869363981883790038770164886192513173415555879343662380512864386437145087906254761243799514973189102713717933038367096304480338080139512187830519653134630832794514396348105167403032324195951604499426914025388161641196711252208124215134377647651671364078882915000095584370185402035112844638569719064101526933781047082265983018268985949052728499293172147695238577721498803160255872459598982683213045225051808823134449279028771526523768215143539937070380799560774686225252215046271562096612679034558954837860803551163830172207275130557954585259140460805086058417317632706436773828457170539594316846851528107607773834247407872803107640460915648455665813536978502786712770603444714441098866029947953600476559517971716191481764185446370008937483656293616757147711530931626394601682441110668626889254870457854061499056912037519908293747414092162511517353492215321832218252338885822627071034553056716812381908456430375301903212320522894358289371530760613349582133298199147060797568960685079616876487166983961125194326267737257086428290838330623411045355783559331850370397458585609831024412731905528948504557466522636528940421098731378614708222790692031759435916784582163251808676917808381128849555889694430547987340139650464552995677053115022507363943765074539036195986519627463552775742674337647911671605885596959878853561214140929724175598347622225412810160119996334037192141778373296183647788890179919622174833321106610750533640703702508341282497936503127107265962411994205928127802450312170599648723644819968677927357650299235811985194149388706584911517396014375333006424269256532048521937827368808125622260724020972947633754727669380229441138851073084377671244571256643912773588153714874930794627652142984032006535804357922394560374293562568778977293235926187447682647683493168291108906180026265558781710228122395104030678282987575192817740805859825579746473765447289755187560057536379572156684556326195056775541122873338843118350885221125891871685324706218368969513828656829655711123071132200662664170769150240432520788883859093246972082163216839913059397057635864212422078315556296335359059382241713884348007072612919743971493399764114712128610346004368596257722049216089954565063216704982051999696237784963266231536549768898203551060561381104084000082063635271858609147191320900375279705661927817776223351383236981400592137765559697755201082204318367886300117546087584398987874481189360035971992937580716950149044399991274437542909919414541612729453861633550273559087491875716992675733531352459225768728077856702537287546061179771298166453544909202389073817040002029099147472353875239045185067333889604855447964113194023471190039058995931909261376545904999825973780517552931541473335957415832865257823825320849806234858294079052304280543337245051521555444193810781654353278112334780348299198115641220090894969791895300539958597802593580702903267612756414360350119053537154667427926921798054414210885086030356788998257165147545927353368304413141256392143910098386509252002732502123701458800735678606516518814091933545433205763941418455034999521837894625747759020497756404123871584713479464925299051312472073668813678747721431454911183872994516408897959746081856286512504825314197603328171021352178278718945999036312180905999296171914651797516713424212563046668520585346579096612198060500536359805057615347387582847664767109418158665318250799136753742625944262506967841742950263173575749402766167754068040290097975444390546375604205905672093180017231742126408035130406097705425083492512705012831076780700076740648588374908585089029130296498867817520004381129974199575288915911121152186799909357586212300982153682515742216176698170686395895344216943427309799289574161782712324126981435187221467723736769868644543475351477146641432321192478517982434110725053993772142538203053523087619679287188007524879706540177734619603812371090161564487692954928389049340873693989622404966507731437203388173159988115261058267114764901521263173141685897891885125430301646379259949169829092599292026308300600926865655279181711085842022507898747639997641284919586963624008154476199443879610943338818572228276863262686711069379874897127756367476343333724602534560348902176928356045496848947418176191443876865552258219628532972931975702332288355861623940168612786882907909728689442280073963339828885206206733392629703922914103360873787793219867074274107770861652457465871090678046653970520883772525289233516173690057040673743342149749272389445637907481315093749271907994545968903934034252189147145991544601608775723074818227222930197170966029222704485745417062251068709049840815949495643824923816846134564656669974700512797451678395924621649858408474147037278839531393666505714351093524030961709415933435508146010425409168491196693859755411719823632479937639712925577373093778671237827567509175354652345043149545208429500585287902585101651156596380749057255103090829232762358221155227160655286596731074832728295475686079962532665795681925020379656614532201274686791280246100644694096353700571422319759778120274022129072486434476367664428940498712731781462345558059417393875752521085358796246980881429908131574448274304734011004100752804126149062013094272703231598286055769777796469322216756324006408337381259095784507054534460817090670354354551385773794017694940047955734662010330913794378033984627763550364521158520486115905134860351634195893059726278499551319010352364289689102884528342562558996009923256365481060902828752596427952244992079762697475147286071216868341050422278685020518945436835827735369827053697197406315980870357992625480011580667055124578107088959681152604671529639839431834704509185293071413640510292345394881218361529740866417992074522552672450202119412743225763135563757924229577675870300789636451796624219295542871286307469433016824475864279534347268303624521036898893805121143539079291520303118500818790681138229271610879892504800740668579289432511847036246818527712618152169180869772462153344826461347763467436575869748858662864834508164165680325026117212978240811006390838740803608846264555517715434624159919307917139362418265298405460951951309273432021970211725636645985849599344619573188468281914349837213570795700630538479570011942840619176907114378338340807495411795983128623358014041717769422621085822654969939960131489763981369214736213401947163668456977479341738100071986330451369649416279703060192101885582473023457635892203875311668793652156789016219575420754804322404945239089053711356022887363262933510884399752694789683270003837245355385495166658819177556082367349366696109745497147480807408228833329303547127957538796979143978240581341149841841787181815127255303672116251815346803622363982367787704652776378502550321658724401476364275586788744436280035865385131578240536057140192256859439236035008325042221192622482773264857311788987127767809701458898531647840652755771687590296338793049840546370125966001268187397979723128203855170425999644006310087341260758718828328401952231664096492285609163030818511998075558068200405737570306022818836971343103437346743989992342477565362820754872815855866873223585603499991792388776733943560395852824730197056872484564877006884979622042268464704964707477239536051875773089578141562653188877697409072249328616305746221523856892417969590244194983702406216284831107141367490781796702847952171806057580024349676408052254813986791980142108322504435540804066080771928875018076365548000418589043910401673671818095055315081205609068552889086060391688018422395810916901129729328212464530146904750089471033666035664106089134944617320966699580281840707379632264300560627444699798155341113472682330895559970205336356310120644000846604445525252555318947545771963575905920979735812623420062052200865427031598063992570428024807379872871086105461326387293580462927083107017125833635916232800853760717377684089202709127707678452205659173801015529250024957290092804622147406205234625341603508644807552282214274404584678833575824870921630105365682804346470477253325672015042848810559027568081406606028282864279541929588264547049880338542305774120936789704740651570828829554108494454927407788055827339633668226581583315327720213562947496000265233392442023646644015924110906376074109070297978142525491008116352490618765796652364496102321106783784056322578970150495759599030212605064341263612402077245887372610098870736795897559012038914581477675886182928612338479394265654707042169502508356889841052811523891920404888648479279006052095626625140350039480935745833671594235628170837112516336989423164814691195937544551199232555263688297952545152925675001414846268865419406790465916875516816652625299486762517646364598707242987477690674023441695344515874307769348593076030432316118504784052200353183796828774777618953405941919914331197027741559581755514500135752302558788443510497851059256112026202788383694978049112617594081528078456042641368835947977461954590373521274935904356638614155868163772799158372120534895369327906355833457148459585964510737593958369615242075958787173529022041322599620833020134658666505242404598934310965553280893098656549539799300498692659024789922671105914305662627546662294726207754425215299292027544052672039534580156372400671210906197396785731363945336127239702728534266660792107034622353974631472558536544931111680763674959239080751237664839930907655425982611702871251714327505598019043484457986552078268744002136719437991771101937627081094813031285998405703589948568999277682665797852400947396848375816924234817934301706472039550972432768091095331782197974044876272485974718106177216533669850050037556408972857989565924393801002329356409155155570811830483216836231155971888421905860983167766471245737670490598464953836927971058667537172956011893729312171409792001932225206319380181357618840824856487398195060983478263946298103831304481342158190571856489044813449838722658439652799480643996365656467775486212672781821376427174420374794265792931628698314120908826535639536702548090536781973205329025364625247314594622151603342285429720036220984443279748510685100474858869654510697775305486653585549711472050770405107503863746326269390155229718055501144742407632510199842195459147921209262014629825491463861663171527641163072386774399889975599468536660774712469529095460206628488566884007300511732738857688792742337313038776976235339945284682182141726013100592014572561159267993060673675357451596242126769706727831251581881664245332072434813265558406803655229030284010325858017534008117597406240586567130608977800236637460923750352701011403644683442363952286905575476662003641241920823706641026553615463696717030632962545318356513671846490538053262428805619737838372896964580134017238819764690322434131099662577301023658301953750817018870492989857372383447869914789067107067450477018755387618062942594758686851214760652167068500329356818785801919227481939798823401796634332688451678687817305822852057723172051180052718953319962766698747995688937795317502673540078593969404721753040293271272711118557303972881948871959104809755842891713569775931158707992875425054487186469630699072483852512397700750036795282044218405851138131925491817109121226302372855024447459280794912114926878871990874724932009822755552199456264742273715137403216630059287742118858387070160560643506700000480605298205370032767287799130394764618719408727625227488568078022972018231866917338016356261037398223300387321064365409090532836585515739287529497371591889193804837970921349555331289308327474783735179204601399828743127495016805383113085066144674819247920442486131367406210450149757594047403828328802841988829786424168521140320988397726311281836664488243478603820253694506603557348338126937381750630667897781108733373886322648398815421823450180569058115120234634858605327325154942399601966923026951520180085143551283306926372868043645336074365049719056107229418218115173913409734074708116008069235428051462241498113349504501003972464208806444558180029624037586610529845093441913131252097676185246323798148161409509405102448222774137151813893332983139434047025775731338422031280565242497832896627656935613355184666174123355181845992671333912188028820058625402258719617226160102257146723538119428499428797739970313214381095860169684293877231218474445123588505732445660097549385818931977578138636349940102632868255629683860011256929775503754255206998237552772389573004567506779468278970565152027656097049776710773973765675398146863737196591973750556135949747757534784764024332727326760440269791835992286715074736110290131560481966499967071449285101971237932768236728955634915684128745207788151128579778088326177272096791295383082770199543984659253471512237596920324505773385074374471232482116503848504641627398508431320421324575799939770809345281398503106401616388103191795141370986118751523070072083789370080681623353719008201475526888151168288743012819598787545681456192074441918167321805718003924752914396913883726101211502575153668171472444471000940363952776292816616853983809180393824360516240445837389709113881830819048504253965321717989931424628772022120813028376368730913106866391111960858837614150351308148738239373442663977193986452545952960600807290646336538447463925173916510853653931097586612379393890706386158868255382219864901679218882006131856503769295552358105204198920613125591593713846195498769926925317740546723739081261514680356688297887276166471292912870112903530961663074973149246249518828979340014654166671134756042141031610327152142375503670772849624974090278379908368882718555577877847629333912449771357191601232430276237269059121895777102223919193938049097198485021504611478643915704581788728118881732146267723793290259943806636540572253255753481567367358477859342741387939282953633802751540030242113767321765296918389486568062359387045334376816229866187600892610431316291266812566024222845183293162188530531711767747488217124914612034213395552953607376840296045697353504911508478775947100430113230499705263476979204213502747322432738418232574779136355050907462882831803023684010885536562413160716389245881886703403647874511371936119815743858896174912952911584629991863259002644085584004216845583462950167911556194528938732846294883478786503799196335685471245142116848335265996670201304825847377592488100514864645709091087112819100613424961788813799106012955984372106987292661447650191823046425974820646423255020318948276946677570316784023184369346572492530681462520954023385308789360538578295312981718177887559692787454671736915347930226408053136448357551947052086486993928995255120236451499386939203249603197961822256559373142327763961585284315023780728414232650956490376364841619400106536401537667158093321805869456743069249094111902803675935233936721008102944657363887041581162351946016228953978928344275266238493953828895097225462543770963253197663217037890484566163454409041148833391379351943120972538373275816762155345121640992649830898108836966031753053900478404324636913632553816345845274882415364041125209945068626441276100784490284426361350239042992307487936504470426361183820085707002602666291859402166286070669023758390279481481621648391299285142523414547021028507469831485658447518042808426087491657388298403395210990316414336416276995381248026059323951433584492939854167111638091661567487578693590466700256840329134291855654263477493728096478226486950201957175508296211765266715273170866139561615692000928142820816899797330930380227381008661444835115237603923103119519208015356630410853375268927516355053602928892973333474928608270965289369139127282988641603840581979475519349938714975956076611522530790710813078521739132583009342594976542889284709345613024145507835358400621148475303483093653928180172852443167295962495007695336669852613228877512885238988511882386958695175097957109687163988847752296048681971977486570079111267767370266825781004161365972609988904010564032787519619533725086173491636389230115540197301637576525207583951447505251452687968376173196927321992021170111777003256473090232097116023998805059333050027663673945438307127969279782951209263550006894892042628737488967525825329384395745013951582801343077537595992627609653357365550215806559115144559795445769942173299502492484259986573344646101690389967683470945331244888677389452792036018987581595664776798568002536426966331168937218428384349848123050890036756382380296868307828687788252510101775734997657388991135557633653266159401078410536673411899193595176019762784399531299463806289427582825102219187230036513438107247105955569910105225466648181233573398096222281584872752159407190565663374158678709600924165924525291081235609919567583794108557904530153924117739034906729315129940143886290914390857446340759023288663793825809558717599390806361694223469586264051906258163776386966238554162362602574643144465721670147165722291319584444466185885898936925990646282732646008372134488496488906409260985558852500946860888648954090104676707926952358740186334228564815831227029341417233010880953222220300135709745771484419110099462912572594601526706580909345434458437780714943617117630817317265206415121453702968597848169634483851336539245466260046376848358506799122809765144048210635271369077262109280114127645260277097421440664817529986298228812464703683097191077761720157117734824541112400030102049018818352937800605452810635762135458004598827265185540334978793651946004609517445702654344905371201231355666632095155737912950213115502819916564510931184204203583663377702900469284410955542566680942353231463787832277981243328359073732972219946016380761246232651906691154240202895858211959919616890853322187566952588987953792683364653852291998825020551903766437261391126889164420758165012548200150870630559163909237398333860785214618568161962501817476481736735540183217161810972382928062608635435182736764663329528665146471147557531181957479490887278297906728099491949292166937493412877333464046727645866055533199816569215269310226041943654960660704087124199530872762264676220175192162049328102987878221899835426949649014698400401026146666364391951630408504121196427102747733908430096352301208914781464147809084181015717670980177687146014924906027103491359252054515210114411752606461455784810741067953021460908397320759137185386607977339932716315254946032191760080482785994170291294478547105324884508201480566608895482220565779256078337296391171884449486414116123375041437374780330440811410684697073893334263599442635449035552826747915333242637275638093290844118661863787768360325139096093098768507133329737366922511887105845845535077267762362497145041602844768684016514356742788917433664096743110573093032460435882698810350713631298596065447662475468794079614542958871097055644850072199420745228585759655558185738105384557516550564144849518865642603093662934139458003892231913710070574648323507413403334815682774743151176022198080779860503902166900391166401431281025574770813802241950487586599656609112941972747938732714984159157646683151489506364193795774991754996427701604948067386020758983930836737676772152795587098027493693694573008719501231016730959088798253832833931619639671364663061349634146371618979424613773366185049267630539903298015851551822794683045140290881895256704859798831321712297419430653331318902155063951076983263817571207677636578442503609634773212371793764530586915198294261546253798820732799077198987376134015339564536834060756190866337612062201668595267825572449617955726529748112649508409187906937117983258549385157132385594624193265946835337576193573579284738476633838047573587664004685695529728474018845455416684297540656313183119867475993072818529147853522061553040640682666709815270528337729850769044345416007756249726283655755015305322571328080415172523047502450748891602504993666281572905788757928898084664520718020291397440977970578222951621554302134138764558704388946524327231727298907664596664745437123070900621108869234799177150620264242122556992257065260812862358916190903808947890663282239881787952953575939687286093810915757978203066434335100895338500727520291789573466651748448473742127548875377011898869665537296546419880891386529303997239857372711057194295033188092952607102192504079959498182155780057801556952313371922690799899194307203149043642552252075787813044770462447623882392089118320285658781396312641320143626312311208750661584263307209368602511465945410774242145634510431248216970645101891440284441560996570463540276437670794823366368032553209510106641455433945960206186256608428966775652278470612987190520299827254057940912598189568249448505559523817748102415478951695726907945628974051594199116648961052774192507359914836478157379191954350859232152057031658950376564444965562034809428623457976891370791037979713384814812723944089910398147607945136988290305360594065497897678541411234570907750519934044307870966167240706804107525021824778903312706798532924144705837190691414713877705902400464413879718270622600551935594118810148183337100780780757714707512387028087663341540266740142548519705592868535234836664022683939215785003691700793143879241213644482980111242252182446624836615248349730006376441901083762353136760487904766578264601312818134432843367300628489668242456402465852291330922198591166447069670531621609945467410214544019301699661994829996780408648938377776762681937549926363190050214572424305904802025098387127195379853978390317346665051572837084866605981332528278837545289157174877486103169103658515423233962998353732281970119641614912226533743788842105670476705534818245510087640614630524442780459326762446516521796834234194484350442182839656270367559933783844710838764890479256983887153375305823731128906189067883370736201378176563550071155725240656331166912041700597561553733058902192686977692580079802734398367546628317219423600422865452979964639414873162650323471053248610357429829569313941518099493998965786129102741797681870261877605351592788019121689977423189018575745892325185333931247871012574637083973591844533494586085891557716272344311161513458890850773706128904557591323723398262690858816067844510562878459521573481863068909459159867772765712104464738419426951161988740999382009855443830755066273272243416642531903076054061089632882633301045028440949584467533584775322565130470436362896456955286899864417773432588907629582756906495184303314277819192770821561117821476808082079124024360359058290811015404794381580922801423567359107823969403381293012231881466603170388195422576371948572714660981208959532404473517334765204029628245161130235065912189580089237788355456914261387036169551265086460400127245473180770286248860613024248126140223370315617328680193147891371013007691712049164658870574628828512126677785693540771978433197578791165154762053507994580117902866129988214787882910340754718797071336018689976906427020265843621809957662200375560129300687811570160151111624972446369324047460718959787433091404970790042615824873757665020998235603297114449559753839522153128075387727202094371202933573439007720256692356059315028935590140578863639936278223219526382658755063585388069392791876464229113607655261551002541999654509494634067623122045979913776552763889018550122474178415680515937180139281875651551646508638442439159669771469286242993419046405471496410482352406447220831866606445653059004144042801405665279010429857553763435693193513305969606571058689838490254942177837098047763115287712650169178443845269645038308336793080894295057558614628264035948754568972886438908741185710140463663605920952378173371678441426881611093526418355535850880357414982216575535957224060114481565914090827111931901346010502864721738513436547808332074479273337799744956314154140895283918952220032029493376474319943535892019718091957229291963442436659084068209987705619450018959186457913425917949273645556112106828228190210903997824670210917936862854399599177688876126649076138767948834116025729310456047013345294994696766326334429039169497980130865493466520405294007887449597555613718960724967059232024999328969616405926177278942679691629714912236342763470084591162254316263656665348286947259313974943911217141993237331423038549763913319959719491156248854529356377109638879829432949498713602348320595353226092147195008710091205135280694128966512142640573829410906835713755001168194352006179450152349851240497518778263621688889565113766444467953151427729719733268288554350225374558484260784184929282276357461410688578981898259403945162372420320854291531326507957255336325302448928507282696811868572654481538551795242483783319342708282601887014968434844079041985015326121208892623226701253588883068033211986583580412447401010336648363618251828566993223180555585005047181795376852470630261967838179608109582711132620375538992848164831745783067912471025222163167210960157048567290613944527632105936330588020575626395243146014307335597871540231080339874177210160969331841596118636750867686391321466231989033356533606706334925784302891972505330903261598877628843329288111111420722217608235485715941389748574699102014387933145950786040801035692702307452252089503070825196908129914947400809412752743277914646320965951616325143268392435772840872902066345358067752237721245395774988155801267180732809003788461251308258311892926594081110964839741856730909649080632658955210641772717039738774656490114388745388091876442544381733662054431331747781999869354716890561551072824261580948402931339296758351042256017628412058990902166090096180955364165176943235869435544823219533172947812934962563521950999940549329927476148037173667536990673597919089855972691826936357685064292325647452163965796847341939467498180691051763311109864002203648766523094190266216976287344636262878872437044413192398634830110065519934402029710599375296074857079636693752123108332730552593212116687232546044937975020729241006416956812413206514901468871057783446299706971627984943540501725337170921532277128315390837429959981592824735891832695233283177788496100492841792672563967329887421677787672552365110866304961549442504037126983324703040202039318488147311351000113072720994836759045317449101750242474302005177254639792935548980582059035087021346339479919906807234669784769696193950063626275173762927152193511077963051609098379792672433641040986478808961036760129881421499126933817461791074888829008779534296352370355870090357619293396008354852346442754147541602894158777823099644084102358773621580927775776906067863765341569054148107224567915405175066654064066372707652425890565066221001863884837312508164051129683276507947271547016554237153948571553986549639041819712352083108449641769009324415890914669634161066129985548051921989478142147795305982329560114402437480517482709195218332675584494672553756212431000441506029393428153683401569998354067462449905129995360023842176607602973386517434228638931365178050457332778397066924679544459187669179848781471814477426769007665617622972154688110923013910371849132603497859368963932359551750367362584893908192132417300911994427503579592357126384737312007252574821420749803078502991425555841485986464269566058358488256160188719231894159384757565554209071196067172687168759574505622542549549828621536545300479429306987524738137462427385047342780507435717460902823963054314906372456601107905887427269823346364426012167534542256097949764875456051425550780112154781034766901950412182527639246636056185416385537336573360493668893453343173198016448499955045663058279895214255194681443946513841478997376272268736070433032988720722865364172026696740189210519606062047660753381008956266913321751339352834286152324738390753357578151959513975232384038790317323898897490955781130094307709792380242639322464499702962672022255782674601449427360464953126407466046969914836596652566996395130859482233360981726941202047010719986682869104696024557930693537827258985852287976459511846822795406946000096933515548608687785541058727806786769918259307751183151177824031604674431557905903444863393112091832893751906108075144833782779683479883438199032176081739895196402010066841292647684465249044781490134932429741802221732497564518266128413643729759155553874760776501789070478969329314055087224785709852588158544150624146821540435531560734585045126053520805264422392544348139820462294792025558322080569226615387645536620612985955720007781273304020953225901562782412970049995208241332813591563178760104629972293731644185467287946503737133267227069560435998627642292968026444990796110642095915464879117527914796125199162313375755948589690459475361261874143512240990233724146816215277330122627238729476782735882307250332981630394926580970830499794204635470503685042681377799943118686620363364863564369425653978357065666419991403933570896173288440007755025507895960339812451999129071520001882822525281947342128570713084929419618799154223070409055484042943480721367398642082353112723644419319346504392295158952489213039736845832512037271804689440647562595354120220518959111386578356472609785990697126181431691948987229917259610692653930013791901505826764625634465937002636885811794404047305868569876280589000819551254143330534964791255035551709035111718850423597697601816974508337395386568908516037615314995675105783830444516551568064895482760447783216689515805402814341853783153234192442160524197447084009740368768170222942781361654602382431021599848478215483675328343781333327021127356681588396574539092091683652945817538069061956911996531578084684294575208795936052863075490821886611200423542282265171422017462251099019836591885943783157868402864819791073790315336625031477361285358927468279876847810143487663454787195836657947771483231334493585048516986394544669856186974349569646168351754332569989086569502022004417572308540317338396849409031881162220006593275304503473383262187578826416007892288602829650653751561557764192395626965642215231887550701552593993084679812720290313586834593669017598589853092625055062731738337204773099613473481794371762545151638354618090983981576737901009865945738469127776003611533305462434048655267019855126274877063255603728224938223162285132243910238239352563527106699680844340279798447056703080669350363181532774747276509942917406298570662988817943768066543639201236515420970135937992465501024843702929159401514079087306743207715344203930330582812200700186701736654947554440371417555549017938348534946208097694270438945318122405274972772473586856138194122775229317857934749452830883104123350343456922951111687299989693453344574489456712751728999903649107608354462411334212195315803589262733064762760850096837731137352449937784882324954544763273383135758667993719669227968727706015672762417577740200799346850652600704340993348098319784623246180280146211401805203779206848746213315221450886185343166757990853612184921056953490797637299465688956502460703605793818687488203633883598688302729897899670658720389161808950381322531307260899790569020355038144650228197531193485373965955258959341958649274904447139762187759018303565490415823575399373972609763716910582619938225163780366132318267543249400060270096854187457069228391937905114374003967001440353887600964647700600206640317656169634313235446924452841112800451807863884700342181557381136820609485932918954224311929751315286993642186932999915873569724937516917219847215574642242838299674899087403107594750324179153503989662084806167100816786966071632748782727697564597152198833493938283261237780250088894152722253262370501370477778767165353292028883002158517827380436557795302103057829758232851624740853587660523731800927858432764327106764867065532675636796105916197414896592544605662806412581911856276391955436296213787459387719231454884595234373053251105189975448546736976771141900387002876638239905283307474016565821462254560729536770563516104734789301964400239639255428809820971029973668385097997369036454685283340652083838519436032460623943065317438757302310499962697676494252261871613474650530009023848250268932724622893973729893606463456809535619453189056961623031390317270782814364755515611876478025900711563374585260871921805900892944276789608407971206945094466432510151330406610969147451075052950714979362406290871168492493320124560836808210976942271661523249264182363499057258163114688856475352124447120139878591202689851742488078305130867434622144157113339259545754284197138105148540313980925959880581188153297767426316240126844972479869801236510192639423931679027971867310850346680718410445625542579384756949138895342145796631900985577267491933616653593378848767093689609843049695948938576000400467255521147035478584846591996979972025017587956512012942610041850348220806658303034355816290496871808370271407012574365730511846622198171945269582408673944216870116224421502516936364509094446724383339788516325273140183960974874164951046156982886875495838783484826893943667336848943373114171859853645280028939266489665606140103083880391768121849671361523553676867778386485500551172404289737569254430074647359109033195390834665117169475210434887299365995528024210023007958534012136445392642759593784399494829145659356214246037848190660407092365950215378261469225347923501546486618645860740868022491313855627202141483576939618082908250865236423258553929064261648724855663531024760154050816286298861861009418578238357547964945153568187827980039131575880417751318863963655736121095758724883296742707979991708719358850967177757523167323276343970901882643008144089385386015252056612333266675194037841396834398444017354149394967389127533774568963287507407414431425970215806369356566542726389341420188263951339034232004780506343837774915648078896780347530302263904053192359372047430375483000333530294064616013828724708222656748242081260049812320239132941881181200140478994518928829187914107990176647509786141014312635028756711921320772402294557960648108188245283345835744905427916097497719486082584814825641271643722854054927071043614588167876899913454836436930342259729098284543551651610326565505892599584061552497449935954908649175298415611611245756607956466241267045913488619186577811955361109392412366641330669842456839540609745354421174651435416672625528230043540045850884889707445805075724272907110663710131988958725813970285639001440426776350619483207784378309556441686686479908676142118371496924032574044874147588390569579793943502783765327633216219061965404779664921417522921030586570920056965428938575151228313815926990858920530214279212382330113651047431431271043678812826176597613183157300617931884357174552857979544056406070937938203826487491986733137376637864646599831276952337860807000326501689961723417392529264743749844040399523355568321631947847708749139269817153871503885219979461927790311368520830278716479308714203712305929937331357786491790997094634862871867625069151141957860613653076677750945038515443857109856212056290358219248941278215873208931479513319112819190921562576511787613368062172535251851420204654770113639139559380613825631180708194830537572866716586026029072274581737741684681269034445337087336007689399944806232378422326553591446941045455617510546467860514885768830607505266109100359355817035774049413201362186730918994482095119195154650972169338981573887188514820325901179750438446181762132568967524743968047474096808824126721588053951514388812690905598288406192340240072778381403682751811220794119405855066660183385941204177141857588404205505424223568225931472877024937805232193758956440137598926224858186313429464435314280753496302863350394298254783542156593463721149843017436133118259650543577539029760567419166039054888444010017297979464813795445595870512548791243792953690751723920729744822616702572238560497117764208724307344408006441554607727751162038581931221175304581421565544949468698682468789907291458042654821790354252554013071502200019280921354169411083606001333099260849528654737933890149748270934548829620110293303877975346434156078142797353509540823744530416526804761032545933035091984248435965679071155223845375632549273650376248863549485175594610655666218251940452611886973820993965847790630094505740242955799000860348583949060057836337003180247150865766338628889130277949565809644021945509167603074831373743556602174984877096532983898458879045504549685890027344471438960714780250756172992107048851275570657042941478892763601280853211973166420000511981897448783771505272485740745270556011545293968564614339454494456827531700579945014605842529977304027203403619956722676181816996457677407440092632481142420439641316237178271259472110562701896799648060780129138323425780815214835533417530695071507990909921149846278579634420965602655972728967848276608867410736712278758870212733553169248485891766096794732049420834784330859102023218182152217711297831233755550683811487981772176560107117236141292075101948983327674518658245815539588060689440627873656657971892421975044283696959056966278925759374970879101107540040105312800436728860216945043566148902764954503306768219451386613826191763850800642892223931648397785832740887169582636237801029974739783066814366127587583957213927219131936667133682156280485840150328132233209981912412931773635011983280565191942819304476807941236249513151903462839776763217496333602663612027214131022000844587726576245317473399808640302700961810699825929985060563425015497805406565135034408977499614660344937433304687547685552340127546387520161287340334932966246365804904876538825120849930032950789256747502627954041909864891167647598535560733056911554404642976695594788971549794337134314780562605312360983183169009310299816569484508115672652556036092757311670175447081013963789040071084576790268245013811861952091918602073353999829956053079411929223971569386631716090177444395975217548126229836404212028747321224542739620619973435416062307769956103810184583529018506130199852541148363415227345208555896339377076431793743354284642938368507677925806332159914036166396857872751211521095643205161724614135239044420966523231366895084299864498630904986403951192291245596919198435255220278960780009158903399358495416461898208223010776277603577585438208170959568365112435892206380074024427710329351040446666724787626753251170370837060552154469243435005067539867006052409264169038713639675198793143462144432787593277073711805628287586331369492159972079531868816351940238159512339097925765535284731758557265550733457248594266994203113830049594472884516577819092572786684620863643914553946436748284273508463179306004764197918207274702547212964664644768053675932256771715985449155393242985915662777383867179152074289101737259927075828466109716837761627198389963333073802041383487332606478283058514809347121228992556690649873810335484184601725659460090693275170104102916885900795020009064014059879357352725078278874497099921883905443492054144601849279914813891813094287297012704664840333187552030158156420133001229330297855955951190277391930826578810205396763967684060322907449042372328361997109023302825485714955190703252357940901111275612860396112399755598391868553167476329807441044314847965603788621324882157567904995246436812854853397601253340278319245892914715662117101566319083161981267298014499264874530526231013713573747508636763837912739282261593214508695095480136336721347406648324640249965091044462216709977064134521953240848396395982638277652294620891000028391619153410336070411139976685639694297209414406768074994098472805768185678920545652585513223796899955046963227160685339233474785613552057359717606810198567200933681885391007466783859507777830395101985919611390539200951088729666630053047871106334768074278615634750320399725223172529286360338665025036481781542250701070374634464829675979458269884230304145823041356317113013963347800924248082747261575721434867698570071240912492659333463528364087430160726672239068518793317133224624296361040816890586887995269997751945516078729956644981341814814492596542895400118568636413164770567658405160645587247808176798171619039584801056862437551126023355599396426470064526906219042967642027017770377844645550939480579798552112540225956550849352685257818433381099901514276467814145821177157468524043161108277410480497600429277402929557322785619258564489811743779467209124714037299785398924787879477621103943980646730682764047096784771067708317666118224844341093071145026944862005665270885212965119501735995912290388480256532934839750939848706733406583732997833956195690714683266883379124036366301048153661945973934733209347878513578791861244124789351269267400613331839088933108379791048708768674817413721352918900432315143639068451603520201051722074003467015101383921801999321767938136522027862160467092364346960368371658929909977261007558439281777583109530025346446395704002604092474925280287854747488572918464536122311566510734889479434405440877779762169110566010857629763957111517477630002759184964549013892442880538458719457744410240543982703314491094251255774533540919140008621915520667591359826154349249197562428732473521609644506287283268761166209814521362380618691774795237648956108860375342280559279464238379562679327506926763718535440218015475520313147599758685015687494132948682413312577069443168835361659483597760743954646776270660732857263270862325507924798100306100001093294002808840567685343728543672112309359768376860252186569967028132445302270953703782720042578276033871074855955593989430501631917319016859375045175818101205157100550032536513221150662034953368056914350576982731840888861834807471071323680240080852461305692148244306269215599897970291535078092182419738405172883497570297341126934772165630875867082485079501345885001130050319720522387046020028325509528019681345700855007757147868667138400144229396824249700851768166028229832361369717084272449843135921665876502233439014756367368692936285358168163848511210869764519191315576880802160650892542672772813280247037217046483199737678510138263435385138719328823678741837314595113895355949350208423965421773807898003078651296882472525524853406531012798229646063505146254913838227632938687707926442371316069740222831286398741784079433741378989841239135438975914915838777530473603292658744404976122330923241524838062320028527577797802895789407615039493174904820722476139692853799709456911292355770157687758091729156363872931978075050428469300054166727084634172865855481205215546187085821768294055177041214314044427321055113339465104622058505702373635751967990512070813716972501666692045609996968028670558408066308452027656360100237573176662778225666117448651553741891546999468443503754155402903678994743932506640243682518665133376860117412725125604572159135059872384204599498370767357091567123268400787854256530772895327744182379750495207300091789384829703471214494005830652390854612811631455981870025531241024779251707626206053049874902143239124534359471146588898812002069094405036205660234856695247328813537838339528660859518733840206581463658689266250393834255095048970702235080888072184420718196915790108591843712032558302797776253288775555528103906708553211067982163411866522323723313357383595714726874390698895530106777543479625515841828317225787147844968290451336724431029446676248576282157008129677738929636845308770638020071965800809017896875437809821613025956752026738147825042373470304825416860776601495735225999676578982563358116397735742658888874082550207002822240264703562345768255602813800331333385321140579904257440203159956851667715972677310050689824392335232586497017254899090345800725621998605649965691503292320101605821602955211193045913769426972737412994970775111154460877171825111700784031690976273402571405192041269749150408740536974430964539415691559514035043468027870045991570506000433003614820014008368899754857331027116350903795248639018781979976594355292251289412817047953436571878832755960513781339772765811957694990344458331139704944089274759011287669382710548586970415165470041492628804365499374319972979635944808839444204350510710837005414272277628009079369005282661931773488792333898218369679897409077913813190293560465507102400868517653501097026272940174075042414514202078822086167906109550799274966827436816383363361943141850631071174489284582514695169403757747452798147591482530819764046310151492119121182574665354062519527077887251417032262804775704546459731847833117183437179076445493649636401699061866437721271161398381528897443092522276643262182856435795114526118226771078491260230093340673489350540571500699299020257383542298444826630945355782420372969574700543851046977188317177389753014771124083329378342939842291492076487037360477766766283624096568418856817349820373258139131664200263850591441452482055014999352549037620536117094322883803276603382746318672500756845426119491775258296796124073902110008576295162188503199108558107179334920696411884449831296953561287263265148661450304541508353129484851922888162880646550270873037849216557933576401838857226070940871755856853920399974336862218455761437715489900710399271081769119958348230990516514180487841818889411204625640028968679514145276028133344052048600799604819969841069192497861903956907782552515827989335934252336272894685007670375092687396185677880726012643003733147862400032028376313681467820374236697461026792695741246091995172926759603588845774866057414321150512296584781119548373697802182335761169288845290493082206596645341917000231642962158034452693241317682349873451316267804530516324273268610204155530873248927706607844976318479720016686384809391456573207198907459869519206120280077277109144599110322302860576488794882637572714724568577747554372822910953293911827165697301603856878270341967187023776465020374343125035079128822670931949611006017250948581546129071326546150031216961786134749359947118836538499208940921941571721872322964427646103774407953123406336254169189799520720317408213710907511603516881877496553782752686023154165945345270910934534495493805164183013543770300266124365379276018241780136493996634964556908911019251705499605900136313082296449910995296764206666461848972273723532121969698950962900413284706941916651543075141381653740023628797270204064896194507488365771267903531711674932765399719582324000313660898820477395037016985280642350430033639188664540144330692072279120960092648356850137020850054341099237106918951697855488805337864633216053423428579320582770737705157161123184008838951721368126275630051658328421077590995841483759132966335778343549759323687742455640714090229688299204967257693836943099109612122487331420100735132750717181802245405145942440598437112799047292930375124294235902982981299229621574815180337592305605685614912554404204395880576431395042117407736009989145474122501493032100353765854072186202640986403941905762350762756137862540496601071766240665877531756240821338757139221807932804967505980984085843656266605203946735687268000152989550929904322729181315790224346943069770882427140227004948125461618813576347797997827846172212534816480541324212603611608720692923713456478156351933867247738224165247234417498708465799290634244717360173143907368402490664881143326051587720990994199547339481878632263460190738342758509163292999575078218671719184954828445861079281677042602312712295817455557891283474033029829009778369527238656369811127264889755932016496642719896237280830066535795334543231767124100439301335525941717586074286686465610112164407770982386250999160668038103531082720952252901650756012335236592260363845093505814827389272207415442360196908261819344640874842631571615491330142163080453693480013858990107734686966181671531044033424287921311813362982004727005193859450453900772620006005536464569848540672712973018900079101724216013673467257163906615157790259141407432770814219570137238093125561185606317908912856702317571789480812260017287556145039504912891443127615102504251518249848959370410447792729049855032090337719953083852442387108820360598884085969350327212946141948858352578677057706347554587456620549955554547830422415323963579093718524819006669776749638690226904743964588245459033651230116027036773031896699057117243215209819371030714999769637012315999930700055005512162345951319422820194600270852919523210869413884280847984695814447488227752093249089230444724076276757966373133290102992819796935049363669840776634028379139455319593375395395788677720116222064043345496299796777945848840794081209358893307861978827660823210038835336548806114852196229193205635384061719935250069108048619540176888261369375467012754835681504428352870901134112029208862387465807590553696070842379702468185728227407124084408301452186225137519391227414377452217826298098853349438782125295626700075763375258468502103885118107106238785766629087106002233287689392930913624723105258228961357984244669811805274511801885401654592724729963809068951405708537884427212435378684105408056859591050780266034400988395435182490286039493014457951571165427576218321027133965221033495403718092378052715229111152915254849329821740890907882607024683301957299108974374193681858522724786023155136604560973827300681753643807184064899806027595148943310846995371476468113943494571139505510100396740647020233784868058187733377680268565440231494869411026512610593585995438958610380879990233387832564952620302471341796825727210647385344702322749661662323889321024175904333467577222900900124313293690985335521825739748017256095822034099137110444455531672283490278070550053692226502120645814334734489089014077020896697743194255036560093343342025840290390738822979526875491708702968052014448985369424516588519437152362670988516280445461333337654915229363010795165093309105622354713636579103580789536882818986365261875706822876137003091680827664385109563476632528750244141052041482785903319595499106079661927036819360003385800699905562488333309928031731893078347793765802194703530924881355798431186773677148245610742944506841038109409542549252697185087819650214348645460174523230391651115485907434640157638849478957033097538603532163162266872068292171825755181187995783277362301038108264116279275978640883985362094230490203135876108234990659836570661773703161132304843521600759475617894257617696447970967042894594766491454179688725409476777489245892470035003778547330587554357143036149585521387331308638390314153487611048248505488844138092652336435056475737302002941565470540543325389431097389344149024895925890979002286124780683235986614036971430267334087985879802837076274520323386118240021827952073359112884906317451017073132258209679014304387763359946869500754040548053668717847384855343416678227711332757280970491692562070606928277074446325898897146576262107457933796413816310541625574766288803584831441448349024740904925222860192823579731316580456169824934611141635643762143976833402290843234488500822839688681560693384728375171560039204623960183636037423527911962068488868795413161233387689093224727086095084411386928396433371062416377647895182196431430708219329452588348020779092991763712731360175566459760687036910553268589578808980569292703687840879959940679339357958720796241590086500471124712483233644985517012946276199777254110942804340592202173857094857695652514656765231786706381778201416720060916428125120502486233708828007127768697277458551802304001495058134523123948754417604424553262753566841357040882647003748281633571273923623016040882446783717639407009088459763940644198851991134114032782000999245419555483346414208354959076585966261096726927354690449762264811030634122918146936533208779363424890783561802833250988035322271745564195295963265875843492049708010094159346090861686023494221902851185807195997786246134756689196041478311524470742885808490252672709203731480152426384058290602705657106791145567503589225323366701246150024670282349852973498730500561606421566426334106464453131107366872809916633120100534973991313207572291067935348816453047520371589951546753861062666588304184551435627446800156881701314049757013596238923938772219708430544013467863570098488613688602976018391388842202513797453028975013372551008152175847296086060828254509507730691412941167547528057908746475353266933883063810032678373046652454727486665734682812078811245680015034101296274186997422708137616665253203273763942982693185352901948311239425517356883490483750822636178137242736849528442806655745360337883654973772643561176017332981736167650288737695771345560229851288351423854595749673355133326732888208399198316448248819427181293838394115089414436891928701479520764070427548245031711412912818857043010397794382839122102246850411467800172712184604953495275002675079646581512173367578002175253542702324911221533831393260366597779868892213535375462492733244068563331336774858396343856249190517594837350209213756713170085209833373936227373291653060874180312570688447256609141117751538795010397440570918221272683867795003864188916345944716897793334588463322464830011156774636634825219550677622368242030807763234344459820961084453765816093454578691165430256739791653215151934057643877293144167849191224605046603585176535430932791461079890674918563272285139369875362433871661500932989179883171603994020099254508874441387375653170488871967192404233996582170014544150231053402279717442659065609801907108530935420183402424881257784132255110087072785467788613958849366507340177432110608323785485959837727497819183585072193629668795755852038590663254118110157339061170426918828373364968422348947525013728713820509986102733929607019123338827758830903980002548467899327139072245173892910387876242410807136380905849494883845470951192830317081307804092453829951510825842564979123157455483880122682569139421333213172386915600826017260133151122015689298687702680184164523659525478022058784240822420531117721547035481182577306664274143092949207224707837103151900664299748873880877311170651726953344398792359657686505259354419698725300617649999709904976056724621488635764540079633153191901882479748463504570780757612387429506056532887585553135119243326306526920600740569346865707131379895338792595229025490532325490637830133377893747530442294916058469495315212776251329727855310504658129188189466183804328457817139855541121246937945648254506383597026980594989790334766744895609076978163292384036693812599571838337629424971632257143468595347086726369529122474206972641426726514908465799747818061831309164179433324797308244947212756025417842694976832588394906377432857645428975655723678840493024097309859442804138349448779425096894333871742891841265772834488305651604302237983041843028682919923236179528670559431368983893867152092506932855151438867347385115030448832020035413127517550075871017381890421021308705856190569701474871014504319371213510066010062423783785203127457025288369189007687575586901334019100665344346696076167278677015682994101009132585169809729355155659229902441834147390616593970361889908062568742179333770752302599751751752390859197469438420434608769669128807577527623206455919791733371913726795028404629733878921748234453186626396852816646171389018779440601129312764812399530003295336202029159245593147868085920049831328994205764010805994379097504945685238357124473016597962308494955208847939459720139641338271512972586751559525204917869632744324690370518864871744965210067756692244002953668506816096010923174500332575189711136473353419016109158566278495847775419268614192008294279469190870351182947993685213506226292848317778052949109493763877571100513225058955264227272566949249118730994018535425070028489664668685610542979425697329463026525111960207313027266912624472348847934835013677829126674008934737823688766781438958441483516211979024557743471303187911121212493752811392420751787916455106458119399919304885423623360680920218293857742862438114080277460673027452839464614035935075154202213619727412182235179776375830012905598566994887602618354490334506870868500487896316962403872164983951280870478844696486312868138750513837746825111540336405766131467720798905975001335435028822297736360969751552106435750057247656727531621291413482743006199840519256932535482613815045777214783712659758084712981486794070667657708547358785016387370324112366971992640842222678424722054495993815236941451090731243393934715369142288864894212999952442963163877941062898779560825721998303678554430432733187594680257398085128216823939370775858708610774541235938482638841993120642550805361216566557048274926949819436371276290446178976266581893864005698650607305844011995569919706455924035391421316432760931353461201406882072538958302645403498585868377146825651516917788655519163010799245042755085972128199205372892962871618737269740969257655827982592794759147443832299831546587729580649766685726943376136069872146874262008150530194202987433390144122385956252974889690311712389267057706368495339769614747028920750516894906176866276774764222272830132341633905207819871230606693039223444660252845899987244940410323191341920369328045397000279736064797026649342575131452365909699954654058361239707028401757536243071750284948098106147267293460358392917449307651361359607443824206196825498120587379020523531365229462343055180530037303244611350378950604230303475662697523784442026628688145547064842941781883212213067986165663181084002057145000398992540930495561494082085578584760626105470728975669885597153038686342553509940644569375302730190656584936814135406557433539594610807962193112596413815457554921590443371586053744802515685043369483209045100277121207882760904238352016495549981436560304930803160288525221542248200096701002318289038799190149790045629358220432575852285985990932530313795347915251169658313801617249355836028219572518044466115096686630343950071298844858182153205536544402164219487908606293150082888491031274624949945430896343894214599487410794238212729409072693134613880802810681922410190330866585825974125880693262841267401832841819834239052384698909872194305811722767003984705512861412702718539630511136262174155072442560493798969116990186720262578718336368209046105195805125626258297474046436263737084547501856442794156816929316857917695894818782483752144024516038347012370492211081379901518219600635180654116436354752745514039934727282649212098015025816148883195782433862112902237884287193099035577268296412506708565158076019354355793196718440929166689997360158326961062241740453537782477436602860261922333000862746108142500109524341715428293735545140153248800498870382352152591040704193005091718128680060455643799548696770664933774056949049502007478236914904749280679466982194971975913125949166019143498375339964789249926407606874014317926038464243863036351698975774103928645825880050660420664627125984743536727980720074383461993711421564055270112680125855394299540417328932486485417738027891864253861279571785206876604960020407261053734310231172593700313017261523503342820561823381686840457773834880737837659558515496568325285430484848003541537393120961112557778851638563492656930625997435437068782832350064291041461787124560144072815767009334978456104572839079265336930225469400334070464575700040316381788241002495528628967535171278215280405236319819576962835539018958471967325074379829376643918531516206993104693245023356847134891581954485916325878690298776091429717743593003887833066440011476886356811529992776225492464239244184137725236735390650181153862707810415215678023304396210627310685828185939033239620197406822836598301951760795525597206845173433024656698409165150495849684095010316308978710456373944539455350694020932018913131782652853596271430781167050733305286601479637438793411466681375284184202540977285880846190980764028883833951815762594093023029819603995876501457912519339168668993853683451682041173804177375481601883060436112920544181935041932523092975754881896246038429781140609263521081638904136681997333599413068784013679404416215779623525178480390537047558636223741049225373638816807601782351022593806823872797879007767520651266286078880073882394694277721006701137456659166302258390672649050975989697673650119021326564132443675474489245941125123396948586519478289270426467940047934374449865774097097527249375379158579098465488261186574829788290624834429905475892805681315425220528800752346048038385371250705311754056045682037011092693086713015725947962682959558553406886178898860840378344954224235299579146231822618470046141580064034268127771733233470683702650434752790908440836404984663553080746259701275841882068379708754927486181601493972451027382217278186932550766211884446826534231213181093882546311609739095251170886101091321160807880867637966088544892445076321330549006169755579014580839384801779866064343195528172585177504549397206640432988617077851008695100580172954611556493420153554557570031452913032962013918168990059673707493553729604050953038113762935700467034006238482923581181118752360496689313132569942700462223825042108333176076125102052809425434069782309987588076742566132901109289672525485487770476282135980557281828983627911000169794170873472663925306174934766016616246733229923271847799904833435631112982977657939405568086941809376157656879112508670963825439174422648404699008169376561661853306479988835134520407977751777192588438898280938209714877825785792987257145340679709700624060415373011330792421425105017051956754414550557275116289906512633398997206999060841875967049955893928069304488568555106968285575833560634332033688442705017893441703690474250406989091265859940286448277764031550193410755075757184861627666503182366762956031084118269383351473300048190041109477505271813113870543407393603068344160522908514525591760891904532929813650126488689414687503852433656849670260382088591324430819204038417437144575000957404423213623730528024777479417960286606333195954574188272582072051763765053038614608343340559017803144564292780681587670526628611366310497597642949231032797382738263876257096160812115775397846805183119991755212493475570976874080935775643603676422392213360678453415453446839426779519414450860065724424779965211054331303014816081868033852451652197096376312478632964038345685637931675525399714157436338939215514952407293555171606365520045417087039482627757322296430882442508495163137997512847347934849966578689803455811997557384363948303955324667738294597790112180918937694981939909859835921360705548724437947907751958763178464605454738213217407708556720869451163993904724708819702511497015814608946807114008740300064179380841004249315359245644501014798584945307867173026732855262628835918516205811310447072717166221178352913072384217485918527375181704179940744488707779346859227851555520484054719252234560057747480631635612772161391690851473841546575253487665216742414057442670070795415555066478552012217275839863375374066592110740693283102207730593185082993536151084212121190821422337357135198602314862769961597834517720197426906945812980071596047086903036113082095809385692825061882040700119283433069203277804562573606749758798102810673071639822307400217256752993620316673228474830973011485180008190824102955666523716043600204156957144271109076589854636667308120109348700757419873223443297279393004741693725173189462083308619148227879065006261895669026471839726527375155444004226345286397749428509344368682641821860691347791873397958706826549705224566538321570251313992792638056511084263122453380511426251830412322959470533199765949593677132320372968150400826515231168690676099581748801442892658507930161201089513480307722073114156879559162214404046485165279794306243017954049447802702018326890057915142969507495232490313876424218553137627845715109002514775219275033325220687807715917333543949100391035180076923296444602793862042373652422091056971241236835454450877326151845509370812773926735367981295575521355786844376061851474604475434648345625097439318350787498229051222617320414079685465181121830074681374151249247150625367308130065386797499803427018951234479260696615633602681456821126977445115577751488747626380990311165573257936881489129975804391708841160644641649125481970175604962011882410294417816542266550479663917943138998479783982059697126272944957173314448726547854931408163658854965043395725163996499052560267481560107407222560976013542520426920186117740202939852896824749689293082731228708565658858688828811801320386779867160809431262489332428966147886090812536860017970305417642748397072436451133896413708455993963905235540652801233860995839159530916392639912509009776517628296073240119135300534240060948053830541160432559068400041114395796279546792355717171925811773869725820084815113920209205495991664220543775319257427446740900975630042702019987487631028076435492295721535919272273784525964463999171099116325645842728507995060399693545534701279560116845995144398860915578697994760335952436961185006840422375014679401614818087547995448937930132838454881036746503774423029671998203243793806655582316417322407604669905784719617936517098962677373462438965839797839340355767547181478467937331605342931171297456990065291758123880687207352309434262043865301365375965223707392029571518019071349338930196022329896514945383174400889519077130367763226627272158017069120542579841309423283212249824124010736727167032432190643869069297553485544999673226283973780834875478847742793953126187617465730291875059090960862904311006251964899819086406430438728049984993360516532002727911489989756739215461620352559497034282361162514997749493707924001281047241025631550343808418599869839811344866652652582642791476956156265594097051427132428818993993047965203403653423491839407386804784292982567557881392930383426086306791314450783848098506391721224078823140611221598461719154443439107892808141755587231288684068330459328415795197546098581353753966082448384357579582532565354534307470221564227155477828826101729553022650851907339835550814858049614578556723289370111973128015648142053193601689841243403101338717385622174421651758757695188929572052355572801445088080588857688993379365915079612968775323512370651783542773501002586125527731425319861766300661271727984515985137009631412002894712292864698361690000610279615836967160508924555567149450190367245526602851878553098031877758507537552276726414527880420586024060391741317092912345980284086216489989536522779413962873474754513777824230180862999658800225987173581352931148744535277143434028769092938319213307122303699131697663306573773021610218589577197448027485551979561606956391376871284355795500943445181113098090778970272407354170556826212195597594065752350057767655801903643660920791279117006392083139650816371977957524429774329049036266534357793293838428409121448341641153807331436851258347285936588224627581939891162487460163868512332926348622468787605901234196392638757638706113078405266299425157361083260111296237916224599550709004444563763935612358578744888934629553476894468151779232283293254074825990602091580481425341124308513830208798716251236394564727058032088955835023108144081187177331926806686697382823053098134369070530733850998370854715463905382743076169574157332993369892547706898802240126921237402383013564194695250126680797572732199418124799602008026509159034668844050148809050432033495246181623504533366450059637937746116203441740819742841049795996450896449270627539934298157127901220321333122149509659036866131221974130382061441812991953820333440931953811874914602373056626200439700932155805153470461001365552098917214557228492781134860737286609317332109655862296407097670351385004835857047222535927931571279545467768568175837006501459274955904531938029668493299017010735261542015855360865554961910969882284121677077796987564340289558139399235880120160678551934625110922442916010248503039811646137240056150973375570973961678404279535758606481521993191152200121830413174709495040234530189010086686696512165852236555432332503329017094936926098049486280325689527673174812449744396739521360702656834193425991046725131667587712489140660618766122278343958534412001935247336301138187191574148346968008330196617478992976264204327278952302615562320202188405226598245499722101108410631583571182125481381644816650948645248032023243855867054800422510601380884515944409160731110773886909531772260203599304433959979919069089066726519794790473494515435824561808245827407688651671048657921111466057730128636488730892881124158984624224014448961450789823506862934662067386567001330577287948948972175895342359279504238398074244713420904514669278296126747180298714136643524702391378150516825472406599797050069775480127434403842884935732473985216641770496334499773574807980325405745499482483432345091451621935161525110522544937781028756902620594128088565439533122887508256450320068313424047798027340480466553675491600608927268625529252856615728349362815194987156991030397108922879471018043253005338066496395097044901381931319311340209115956340582986675637418566489166771121886997321633857411098552868484665094509523275636545287392981135502764832341640910888358030986385227215471112828088209698188339366382346762940541585206492302250942096468595877737435092090512254550728439826610356264462566638295261956289424158386363485483080915240388150565551820583412795720827563661489991558373874892005488717142755311913471063656138757981085244555322715091277450388937046370505534063659022914360019550335741561741247064965227709859646519954504318876226260921841228758617754104009723135700048534790122201462360501981480634597464693708809306296199239031061876414759007064758140734185401430375369028479255415056303996232424877148081572869214428515491906396970940516654756568190425768942509473305971208789727321160929275451830660524686499087256167652649585977778287239216701789896773214469289957527376291844322200649442981418415703550725886619961948802077420669651748374543751338301513061962431837563468468162773571275028523602869283714093757605528242665728205477944399534273043124519851237073271929633668131295735631080627625975656801905373294038382332460859904589007671069934494328071312502772852254217139351040764785827617858457920250492419438944782773969891816722433024923907439134065506721149673879959494575807843933758074394991638957556147890125023705796542539610943999491114721886196712945898067152447623314948321255602980179494500893738174996103512586589044237149487438638838806973368583616448358573531073141156806131945130541134476224168819861557625368225841074252255402836365174082533219185882864115854683089556431249273875142237042769372689667639873976322306219523186591359020602346782840652483464361155227275245512887089086611082000404179038484416405026571854261475162441598218605465446087225342883301388137062113665498170553167237211481208978110986317946606051892577920545802455483732401930288375930758632946820306534142952500477821383882649302626697631531482254386512760236597545685447722931635410785880848032253993247699400435214031165719801170168365377732270054481032859263945755852390919941465513478254633678375695491227329418792400267975147415676977007694655284784420012710776635563750307359154369022772642559069839811888861190018012877259541160898074493104943743459552234079529880384367931701992576193462660956260942541413237583627237850692207639564322144590582408686229222417007256390192275210940454776674972853382389576312125821380082771847575979092814677364529487332669003981022235490320618493387637821302896353130182826908092145664931842420338667579608515443488337501199796535528024275859147911002340575708815452890602188500425419532482190271974938343084231441081078557427003424813142756885120232219055153931112151114873247378585400741750019233196860025646484532894391834146141726540731272534190768077996422968584915526032640574998628462195778688643317343337854931000471673458143671757108024433869857904041938144353153269128079915592306483871091502763850774286217196216588071163912547566705905816600311550099926992501052482262101264978549299844527058914336834955670549156367427777718327275385103472545467211632149555240999873244634021662778881466706102883520181932890940624948388859194005079100257926889890445155236404329440827911538559210641455579873325490210108767614208045735899108954885227730140589972948564005178079795663180413882237929424328701824711218425660387509301556412792589263888360592723081129159604606604548468479150880009892634543742171774335136704392213851523152270811805056160544769910141624019749564318296719575719734449976420130761095535799864581160813790780448944378678535220878083428842916535534094160332702844289102023483111736145508032675173337489144094281480230181094251240596609762316059227289938209597247640619655176483709410107764752317453701039769024404910495511150954291938486028571552948962228584935364830363469354201989094863177674368670547861283949528033403820434548609625846336815115346049322400770551215741785382605382107018569688933584240745634528101524598537255649445168792631570853630958049931831172218533350188868108285625024066255042122927793012836371333639034274061934180544299993498142452277094078489552446032389177091739816219579482043935876213669618517120927282828221213775473574594381472938525463019300614971045655522419761564596426583904210735444513645865660597836350723194658165805285219763599209958830246789157249432037082397343128843680070033026235266314587388368346300703329693900619995934703248217854452717609243741889534079914818161421267019781830437376070560074592404101409668904572010610296707049917571271827581068310807546454828084517684877489435406906207459953638250569305503975886391638297805246784385688991479388359858729090574101480620576750891634610725257090741895476441263413962917544242814156260073194025213075058134058645471773634614128391106456155283961933814589901250755379009572408135175492942267684616076436440877817278717779724507733153332690450848442826464354107312025589375199672513389072322314682593234785558508304464793700128500901640762684885324760677480570356632953739933069451233413713775391574991802446602592544362455714609623254650543326525823460093994269115098384308058624176431647065226617999606962676296444783884975142921039969091395356805639132051054307910864770841491685966321382857233299196285040319374870046931366445665797020061688889450292620339582337876771831306500527743782657568804337368781684576811018497151484204463380699790560020459766276954195864743030311373377720906990662510092440633330681658481945740681091824991825247621873446721586185404777285228212868950240904878867830180007141409572597289361187263388824862158069325261646739907375167934160684004946518195190910693621760816063377131646681949142400899323422344332398330250480358479929305085742967479930372995776439592911402180122192403792207239483710912074650406830246200127596895415775476472856343016037531805319032804113349747664861003572533432605995200590655747208632969617242141408887404826177635990093987557369939794189105960927899052443599108293363406591858835314409012523038141794432424220002923211704197762288699890916927804113636618732500462837496572092630473487863561714570974208605227382293766385353471282267411804672961148571782598891589208658492134477036445025202390384550158175713838963467003007297552059209537220767908584452556390505754091607368433637586849573398706727922277862433229119247050006388438870879150815241272245147363833306216177223277446361439542498502968106564055346693654487188575867160486317131436041425732868634870443878284528174831301621985338819598289063047718174219938372907922766307032115033055829655841184761429681242865672694942631324515620467743788720147476209979829886775198104980321025717039605420691522276679277121804311812379805384745904568805957656608895957508613381730862616311862451859900226811810950829210155687997576594019737519511842181531941535290727322146282351030627636624324258106730899988062646129934522980579417601121048205137828560615736238073744404849951419576263223529135739414078561466956071795350827192701977544823280078039233624258519637751201204952898518873460355176725760937400481947108826531670462511069968282238153570046831988193724412889046889533669533927033201942825963022148044273216852412685772271328315360848631242571269048149218712025025741490307593158308003901883909655355955315692212962518139452329553799664364087367746858768137246894007110234677170788682736426893671473082157840121169661999238767061621749493250547058567558105303151585323554709161166501433903161925134436710764386964691808882380470539310570311675533575132326135751302530622912253135549202525944808562273165248758073396961397192877645030188718401537651845777501625709659200968991865695113332096982045944389961541154139612045048653696611661181492511061006251341961855999835626927767711608083062850917753749985875078352266324519813630191274632401137786334744919144697251561500135761137691161849813437150612102234156117120541118873666902920897656225129581671239609780859836884367750474793851933724629776161515771602528114524710598193164223664548176369997022770569185073342804610377101973078514402041580429746795046054857703780031092246123701147332959886860900148165310806871281246577804674999058140855762531630296035322475788095647316078831944480005737081511079817194832433673930792922786352784284346676212270471696842489137529440199902626738299814385654130195409491855833483794290188300370772575996735461327835960072349623368419017086754515507827769894447572274611252088474416719224224340630924103293843931387388927822462974670919238195012117702810467605496880322782942921222070952923660291821369008615247952185599269962897294125723126411799121398016280731539931487755246368954645841701671611426623640226521514820081564756383381437639680783843464675339727318528908071644936291486589072327160044753590091125062833711822945817444196085973828382219821982624026256791316410028979795923130320523635755371880278137797827546615408327314001965070161682748601786523012872395515332887578480017333362626594141832904466879993741709368043524697453145934595369093497200787086673334941185547615846489022378529374218786906745692346485102715223599779620569318173517981080475248090394792062303101374296815630760689524553895274054046053382067376699019705065798475688403970841171614125979630058976440612727076392612190371193521191272452457503242610761557746304509985688463774860713504642655364544052870164434853065059899080403586650706993149404154246958804010951082715582060153542248287025561013220198937783218219833822432401547542487216063611391484148616312623676528598431648589803533482217250667639817547316618945311180401366091096037669617082514810707544891998061864954507645341140014690558058262326650411523926874002679591389447443395789995469335259489631690847594476115205881527937355396116649107235442803902168425304808062301775556284335672331372895453274715008973677044863126873095082652779059160531221725982520590153827591593503150406411239232452713265803729625017423742482834213117046812282319487091617466552142527724663715739951844124585118698574835059882482386035550981880731636063750125616372867817381127885550814546774264075649093603125605209712242282145476819965418102760348013810586144762485465864150720913449993591487158331400166770408030410858329110213778426501512250105413442151085420706725884452529969965135018369323903340617448532854431560633473019537755675725482896481496435248616156024841015800281020456335577485113942990440345062165954901154070258232225153364458454347655141305894440360946299232155827447736874415285106353105608265666930920463087349146279484878038541565961667622839810490301258838332728196145276908026232354428556202482206230800442352851982248800172231947429093695835420489522610842045167884291045080086281002550767341772035218093584667283664276998075664284649262919972206563517212280933551636733594128580379414849325656534400026259953569520082521721493369929882155215295011113637138817248912854443177549395757828963246663087662661825617875494580920246361097386628599022862347093502656118782269245839099131746963409390381161502093892035399383168434997567301103482140766820793366502705170543805976273643838066323989316453253523634768734266460165046005384767830491489647570402159659061733158484179884125280811546500297393420745685572353745753892384976586362405287331378169088534618328995693838809804400737260588716023320078798990212529135163939761357815989122752296270879155399313112471965388818521019465891000246303288863645932729476999350959639790542042378048844337239581545369844554436516796361069793593559863039386655430751637970668969934201798622643240074800702957818158117618144119889182883347670949075052186537359023862137240939636839833417434177207034441515448392154120390704875780927644586999980757186298459649760728561924716126123452878184613941221615316763266201919481210921319662245777283642380305839676181901929924652033706461628946586775586766676422457590337556531792182343808099792491850948646196988029258449489671860191926729898536016482969218573397219001814123334618517659281583139524038642984562476286054227774339168939089268287158874539862628621882047423339591509779111811874282035379055714799950367576843785206903105748502787734698120016455568827825611186595109430845642672030880940591984544294061214096389259694859409702275564540520506351970854888748275891973458805239798005462654332742539792298250684803657903037801045297092108310127455065085391302632415287900672004039011526974014988353839310801927319117925822613983352173010103186733610044846339246678072604079038524924302461285121470564051529261231741593654213503923693160314298213232269292891743698363205109433743362913462664989144785810404740538081038724362811626647075393448326381845186069922356511123946034549388342466444647621405571793827687764514623833677674985687048556228618946451609367626816633355368975267543172871401883609793635104133476247615101680360434524738732043464735659222249033091384124678407552764285267043666975552816086495152665590134310579171163326689659745820311009041710286864793636970088972253194324396113646973000289613085683708957550757889794889009805121902704149545607559315066162015124114222276830742129718103307633170820247850840941239717180203532581469395073990490640199185021333044121239769804127275093686165282471776721508656657979268567514644766025536578084347466987990902366249111983138638167422086170106311376060372057414956927540010376413194750636567539814695963544415876470541407271447029686830192738443959225810797242459897380944618352877651308771322081608512078758325488159982756989950372597642501078510846549166858162278510221084140189345261094520126728018986116909447361225814180293529818925702936587260940003053175004670495178271034072009540204043784953825706539307875165576553131836611651689039598950835123071159924763839246776360733872576176787159093829542806526507947543763081199981555712428664546697542476993234034466272769386638636411798180833428575307921665409402332015797047297809189503301662629623357686026817052285117716744589326001300135986640764749443355782106606576642069105055899035769501620000936898171538357489039435572565990047999652455753986001696371919510948239855770607802900786960227186271257168332749955969457758404087025986891184349561320083047229367316388328463532256728796658235259131927765735816862501816764023496110939428812456183040437850451356512034383271351944609268446523426428047177159115520496905067566769700498747525810617418539049639497912223999220921711614248268432143341711203100944987665407144791929895719903592170495794929852004105352432792680630799571503710353789063111572669012774148027260883305311199963479171295865073434143115157723676822589574832769699313982799430334966130048345166259957282869751429098012671390536102076925503333861646917609050241447342485693506139450675440317784793202754353041058532268013281720148034370189836199369736219648539059193875924749301299780927288353619405928852870928828529317957920656392782854765156646802810355608100611334409781959559201903427212413538049962829969721912436717168984616398208213813436220415662337649632983293511699213153268620689114309874618395992818991676142684196195494279095688871260595434128828214236280073412044318999220743596677337632000214181573520562715269917935729144838207435924756817213909101222276212637328124198965752273664859755814927686517010585241517373540069689507223536624803087441414811661228227487146876109285728191243588643206632094595754400574919912249424678758595820628775302413406690057978096179262787581920422942174523910067036217994537219754125124463022669407701058601850304247926604753089356366905371836594154742643774488492459343054199274731218299184544020557340664982255521121456028615746859000304310559816559203674843896949613487474630742443312565657087028047816602364297626666367173529870005241568820962162905892340868619196900264569782789917389142881220327037062124373077882504055657893100656913143825614944358832548810400820796664752263914331756337719866394341787402516415500322006977260379576089452842208244263469915753355612368519004086591553147123954713423575155710391846401003004543943304181059292664395791525017583496834788323538628333121011312370072303571767404220107312824295761223006383943693955767998100662296684567591050274722896500831617761335222232139966972654776579234064123587274442906950755982888250593174389304683924007900635305554103037710624222325803811862380178877835808406636547797634748699604124837283186669162759799169702012822710799623898083050295831428181313022318283755290986331498010542127843803946376334862887174127536001159580398763815084833794083767295630700148686495632500545971291790754533061940152988667237861080943889900604294494389120528252250649172469119815558671998805760701830291997160693157679108615223795509249525362965568973973970202277381424652785983992122654662830628658626564197016631200652637066560028198960242652541935800244654687090013745818339307990007291457325487324012580307693442022831558554952412585141493173446766014802537796624787110160330121700557893761126699811100262700059814468691529170456715036655187286807096804484273218699753659195316149951874302141572320585891892968776701388224929640241907472884995526693812411472881721605755731553446906332341163832993471955286378070935839474060848382191098373110377535700339187701665950830232518574360287373229607381783331339079030074475608056679101434449786263280029051727286254136789714540958496387226548220570271702416519742188970530843028131508671774733429830481552438688635784332801860323644770891237346367044929931934799407175087641299338726549186559378759796694571750230395644488950274894318472993237573066312348542978524799152525237226727542987180517230322049270459676543363394105381029975414255799443888141366881662455956118286102753910187463403491258623568887917085272720340746847949581597341780676566434210941149576539499512601508847291456352688213210975266692973274194218419867488031234499281468416989633059168619076949816080098952793446554317684640468949150826886496957002266480991592606406465085294135910503447694433601217795933361188991735505896392353971104192132526978899772917162632726346696076334979889921995690659825105566045457612677162270374327443612912542897297864107979898200305744641997251533567059975911258329344014044651323015147610006272985506215025995647592937909025792027890744894207421957082114803183815659816489244585310313697482126438395778243623123402491237683113461820193028676456323986832831209556470427090560314112043316509978088796464489309773379901084572680134498733368186998951393860611722261759492430749294555902608216665800457306706413103455531378937369738983591641894779159416553107281142333477004923445797368285534884813428696574877900458983012922054617353585868013883008741946332799671091686779470939568495946093923661947096527236969181718545903236573621830912709220249189487767901180393871451703870943582498293351457296783489463452709089084702173161418453704069988719143739606085295246995039152114132297927593955513258440768709934141799582762650668611721661243521650452297606277929947123002516218844487835895854729458227670538983741883296684804754723343408096138943514107175379095782503094920269375418289209664384053686261248434597042681898243476964477746083153651873033440221578300268530580745311674159162752982822077146923823507463281526539083439905588617214286396235512591887663398730794401333113985243004883971883094082877239183852136800650235576553898126698900811144633979039762653713476286710892212369184940961346082557567502518706315044808388344982003070060885717509656983274936635658659391922496768133318535579538001854000062187138907519579254207543810698185607011215536893424465595195781169844223265306363403559621294654546875038077443903398052633397513311569112709522101111923305695534319803751791579078014625191699821443337171792858077526305626271942732336781364623524007457470887856283602452779745830701840855708294573248733705028356866233148511918589844893503346729174462084001078028866047285783605929415620695057225138987093426022342902989991595456222953986544853577891015226172251951271318488323300753973005915162787895834721589306215136302327712183729580008863771934966831171220233431039536937770790634606291465341402636620278109677254278188171422107026213530861433532030535978345563232895904379132727028550898661571267128979359608798982407172189978804208785951919311933865112066686706743699836339326764159827836512743931032900280479874233712300087738606888321625431352381397234578334037870694480061417422974054292871716578802339364413063584024353589462086451320993780949476508717139167246613068196086095631866189876029200223433816970572258626840061960410130055460914291693341870537298355412546484321963269043847452250838073683912081577169487237742724489673760348501309989403748534406094936569752062306534978662118548115465469554017494509805996270489137175060292336221698238878066773741265899308028399858808897590560673332504499285730862277397801164286848902722270494959868402822087498757089490221120135606053062191368207727223230952773440173999920403023811877946630860888763241071500880552358225504996610381311434160293111173257899640347829826126116927897536242253682883114437706648877456424145392503768113211244035003765573901494088475716290329278488852949284835313165394908428740288995391860336917451929321730892309591249127312202030173215255171299069902984205220782196664907866696746911650949583784045924627764853633377760393749353629651652867287033831033112510697581101438112708288582346094139070462360743232280845304056986674224919857475600936327133044256749147494919184299434102188909300540892635584780030977278800482855058967644673976638350943235250731868705312440256885521579755479475796202999636661619589646312867184810785239140429328544542034124296831395540341550033228526190397019677949119813005071117385323780055745638369460499502115488013855890833167204378583866214934075664995593267165426359744262485501858895238713180235882397344605956057011358328049914777757616477846429131460457154208028277217944824005122405444013591656557716389830425678772544551326287885404206267544462350246676271565278002740941447697203820817691375939681733716721605850044057746775046240546908683933242567103435691773789142713895240141941576236797790393561600345562130735261561138777425897346995615237501819674686858681664178402173923947855135078650240350879466493750339207630799376867406411101609470231226297172954432539184836203151085489547397269687133096123611850736990168823229075827962111824907112096144258925430811002005415831845803339608301575465986525092285920626426550809473293510197400699556985557782653088137439537209255992971114207386359253846119191826083940413560791789347631754101028264160354448067210422440330969390243228468877533532171687076298547231057477064564379963051138079845438369383270436104577508835342331805380987594184174122397184688738574090011956820694528156304084035391412836161629529034762617031037528543863729662890823570895770975222019608242857652481055330738682309939957246337159036596351498774781617576643633857334341014490586941675896153949072833201801459614602867710526478181515148192254170981955394720449379523788275216458275008734397195677036527990554011187268198084479057357374563489499436826803817187339252114543132640410770582763217473598537090556678819358936909002421434763269655739315474805545158013667746526740923077972727882390525655950803402424696451454864467602198591506283085506077375085400824597504796181306698994020976858149664296218270748484289011243668873468285191259072322668088920971758903674488863138026373578402825755575196292026145048650880999738538672181571635533312450298850626043150389187488522412425335687112307279811545834977675473613736669197578165667978581709114104482369467248013932224105351606678523908315778340687069722914787237635965085213727118585013335775908498651276583764470220195215303496091566848123518294747276508878711099727949251946274551160741109708342698464275550497871087762547074746399496912635105807876486663110400072196424791286557712518930323722506912434290325957662875566145002374491061165043789142822627422985755357342045628880405314274562897411156682000472672874468818617506221816348853260726773054662616383329210826736983702395902274381653883139613839943995206790051041808754187645614946668764704298529653996231463448800988790248604125842955576842663978366474704986215189548033139941981438332333876344249339891707265703587092191157564142536107993325088353481526672798221339065331229388616273299571516662241563690911974503927896528295259555974846987987105447036671499464955642371524255808274498130183384366256430370905594035840207875766353406795423269482675170430797632380059494938190109004954031675520980719053764118528977607123239514461365292797312060204341827552629952783987058731732798913514030394180789351210287405757731265484328404951297403607903819433524109125108822799413409594072926347686918656071830444606304570477215894325070638522149665677785813596817590920399192904089165865004288686705549177185828698892408922335981071669393210564353714328105861202943975898111731126631636099896220719710322225029810102825156307096628626897136316016809812644463050245640775968147162626435595268719976996280845436974803863637189610342720654699753986218808034281350330706294468851443083150879974782027338139156809122597278899556521079666459470740773872500330254668666182044236717155146387406267902670835502322771566927034815479347060858407995672769838254525324906135057772473945589165138968589676650357871131460023191659466660391253782490161156531578390622624006622652732236543016528873089694373975483414160097696618302557402322140284086699662667349277166589603018413943132887571320320524291055171768566407305042188381015031991814627601468555597795778606977352365517757254759803633868459933679386040748155586960045180725105499240306070354652818653234962788867472255310536490416875259700443410109299524385623851760110025588954695530908162468275732261993183092873728135577599460571534969101829588093765336382490973020199396829987114245121382043410568093954861288935700791892983393402024736549985112996329228220668680150609511453578227342667437944788646030447082037578360757794544031602003564253022007204745215802730180019464581823983774969449933152486114119095307838928332441774136677463913627608164495561211642923621883784042146100602381897509837894393573058797892702158833924982878544135882533680057227165141883885814929540766296498598285728587843048811526876892259300112031037413756362971571507516248662640391240330805404620734048104595277554168980313964980262019478106491159755846564338483580810670483484284254382305570050823586300010660321836144913879497240985990706055353620704407997790293434932647785659889711457902418250128174770555273010406206298518755030866859986889885168496806138943305738676831914300855638527809103344696301245725761279657333528765303814276239378371009069192361135767395584988003369288678636098314787921013480704916781268401805729940543866335251741754775860392317399370283207770716707885005822136029288296448514294876740891920818941993031246343479601050038758950073492271636242020003958896357639241749143277392167475492852101492190550430854885440685606270039967444027631961964699318993697584102483471242990053592848634940711597730444216067603799019422414229914706905375504841054623166423001541870084655476920096682189778650672607641204240034627238472947218366979520661724335520042007314234269059550816052135181911949873540314833296674211422384609724473036416517673911489021581335294700177779196469402612861774536339173625587644177216749147220991695435473828699193183530113129192038700414455807522482885314398787912586544617029790089895317739539672565440798896083337022918064256266933827087836518708043280181217236221095326421124512618064011932645555859768377822005942564403511435178149259759600076920276976035563231201475536621680163196134318709529931069722690160837677980997116915000128882602014607092148843311120531797562099278682128193320805820470001638167736109239462965189151405211515138527733009913004488276556318293735948919449297996944120907623208108513697971651316600891866432352501365980855742960038936453237934326302125883033383433055679399004521359286810337364174637279803089533642791979683895484969879984593186224142335441911888382099860192534041825238144133699106067117687029106360024145195064291945177681045536018450277027309669626439547568104329239327901983947402331676697177146329776867130911452713680911968391654526114674123429628588064090862251061460726256537245905887165629665998686081463885770574559993789498330629958385755994842939000103515596997136019623848133625443503164212169592811062808846757460426709129669151041415933209148894980771500250555666540943109534937106375471197571603129432702462807876141342998683477949079183715670451670331553578737986020257252839789082059667205293916297425738706899537897970344749078778926214918139886687492352520201561699009538140586903180864265141642445103342558453847124051303221660140355874076512848680924610271438880165323072879835017367117408137217913885633574053622827333218609685788886237491668203122681761928070569295133605547435855349419757347184748073492626538516396300597493651295694369788866570177426736796442698882134882016232064569363650766508110859251595327452719379817574475421590025988867576085913684856305750368795448664347332457291231484197399687339584428764357432969856437450373114037279877937326792144738927760449503964539879919654000423608882074707753823221209069907065721361672085712552141734640284958405055804983964342046513573687004166316644394828633122152444564708979847185979390082368572735555998925024047586620425301231074596666809184460789786658372898307407478933327516351606567634368116662658211047318596440579117587825555496176740332704350847954591570386757225890388867266929973030820516652188647113525913820965052556706994612774998414037148473362518417084896206359262687825674951803527186087291005961632830516454523956679275923561737119250097272856659851246445558739702556787669437031825286993270312681660240198858166514784153875622751343243391090226272845709260222675821188150356141536739269197941243561892072679241518301939470607592324997803179660929404583110445997546404161098896035111124917942980297509825962661795956962626848851857403262787489515311495135091751318037268411182554874822872049274696208711227342383774009377253904802148571333315160298528775208608604834319326481713395962896674359310908007628264067275268649327090189861937077642494376653712172319615092380481941373338150264364869286269293808286036973252598203738481720853732926845067565371783212788084970643553057179914729866594486683278826816769350181339241113405634162561060078899486785594377952374306649470561136722744064857001283436005697797823989873006257100982735197122502512122401246208335497155220514419715561713936865440352201731172988438489935209749788297310315985859257239419375214585582799193324828741868194349191841980682131777017367163683654908621988201652975334840436112563724019023092396098165045531712886452659325525202575888989803738368871826332059061145205113214981659014651240166806374139473540840633844194890403136076632903794140556753283214396008129461695058612880311841043097121281374118722025727969091316317081143413478030283575449459268749975897887148680932010945018798955728594637574155190934059211874851341801525134172504172190476109923909783069007601446643255204283665765307831590067803371277462630978485511282578513545272035351475482432966190406661973632806050289771828950912036422909917123087393816399342166688960709611072207369325378154622360286930873928156394673255927830823012942465058931628871690828967806927965479772167655189884452950464529735894610523781361756042643052575169041566578391458803764069728036231509585134232146599508468130702033582732839346170606278049705522026139829234273701971783425517832943384382459640518496569411747527456783023222570302743607298601095476542416835279231991886968658836026145952362559491596092475260736691430664871103329994231097083308630960322236492645474979495271432842307434077675634072271555515570251822654132482634890128496514001763899311313534358386096864105303448745448726877673296370536568293804644605318659674515392792705914926522169987310568436454462678450377887783794844014560274644118988450874024177805673479333752662778297107422271327602512159435763665983960106484363334568217382179091834608421550036912471270163788094266482784738348749392378016831256273192753698107390918916973823667984779851018195930817448217062546837172731457495074206771157491569182303073036045713383027230396268157127125342557025794296313437497546483836101891516500117680979750640482362638912183117138620834708868382767687707561428725666482616490647890731153858116655276641160185241204904489465564740438983490969408587955932170331926523922652350375144483100351417355375047297641934295678196695136498426960516346266009329052694499816064898501295042196589900065694619255795896540089272559648442119096546961184177918574837631044925203553246601297845456640637643635438281131192682637231973999705116355939065769403780866921426458538499844674095955026755779385409813287529466157996605059452416029523203145836893296882368639052620849037937176734667988183977612563889030285693994823048745657910534191392069599349900867962163047579514118633103292404390154364812357539864044711943103137164870698239382018435097988001340488236278837587431065415282696990315851505829906651467512947863756740656847527006593009483168984454090018486685147881463253365861260827210287254704855843198124157507913822031758303151226288389029250131264013148581613562076795334781171788161430151011276560093973768367632031395611560613965703437541045650013477152781299341117633553455648664267959896422394418306542830055782236768176924348165975985618228615978281233015094344525080898097200419337373701437360621010903272650631639113012385879117733812908085282161677414774650063913669408976982775327794275570513940462176805092430439160030743418304725813523323547336731258958737886405773525047897920041852904358591140038529047671458529514008460288869894507427157546606370101743581921199296433197696494839315640564994087200359014026244780644492602103899019456409433759640042466078239050921958234742982672785539417963300254512929323982702144826073053820853807376796065439511430960769855807729485972316628633320040799220998560777947727893340634710657078678417862530894499336527862644436484256155750517958228431419905547229288510581164814731339615960056780006822720715838796475048659285142581878670204749195675619604405729439125661815227333658622889511901637318702673484144632596908732117481464290050546822241200690086997061703859978880898176559976219045025111788187947053541585292695972400755534624946603596128657426268894067017386281862226322937229742770625265467604018920718246762538137047951911211071798236958965649661573811635131617784816972770713191276183279053516917257667527862506625840802019271979905342042269314793456794232293926544470248197466110439647048587266543304616502607159459053963920470680412161968573459169560754150836558524698187860045320858171595221388414009543470830621510042505593054502506465559322316071268371765175755864366271333790561458906446679552583356228046189321590292273828221058152472648820051138467442861857454305815565958420609409078717195919975024169727527939578568365993430558914331034869341150863214372010831795948219763372910735873724674107577506499396365830610481795476320149540235686558436069869632890443571813439376273862676635647192358897578924985955503227925811276538047660245144300323167830068776406578883201932398508586692359632832461710585629486594764994379742514634088491441620405861044275012006919171864410310720929331875390044360526468892199088017250728197232217783680377342344586937556517050565205238698216136440917045153408773477773421267568087940600767100174691149694193096519048719096701713256028267528667084945648391799767077313243771315867608144795099716762185633872367625565839800639822717679241243173286341218894752047455257323552885977451225188433067015212445978220846082552017397953677884150056036234157645948878212388735584370678191753022684760255000771950987270596944897117961551026151471509470435151094461566056034234766603466543302487100815686104899175525475346247296829310989553362453911514436328628045851003953930304707290980847914007520910942708957255554576208535964463718993214651140760293643468799698600458410117568597802916713529802623452017738901251205491981402618443772970346004120532232792169536922522314687157393357792490143695497498588917340644781702591047122540465457831162642282464478163861188557423703937176773758373875102242063156018194921764988731350833736321055208631547843681959105897371713282916042974532707612193213525319381206401898262593353009993949785374009983235495041192770573977756094513817800055866476685821009219233705459555843871506194814836682840857214465687096244942423641039492031249463101106011793991040678470037388993358677704030021625987436371255703159634496708343004151632835896311661978109335507749579598986755957642901307975574091419220032526268524581403352959566353604953237636810151355277163617022362369111882385403473959370312502483413049413961902222435398576938254342799669722420845086122507947821890791014331581521485137208701861570585926118743945487425670129827679437219455306595914160727602423389141748314929167501453254849909351117776990270165905881107190633644504481616345659333230981788798535199967696238975279856835826597462475723089513185742182262421626947320980561008602291842416326179292464162639920699335958914584461798481248518691016009696792644119337512527149051306156057063896985808789914064383257895746462978852356305836046645547984339032094208969924174730279151008540245285149356307264845315307156779744442255101561150479419259180789074652153291831115458951664261298895146628524774320395651734940071464092131205735971623398148988833558942878367912666061198544892381829011159989845032485883456347896521929022803105716155668530064204975068850044776314744637908422709386914956527842123647398525560410984191198497251191460704668559100271762322143584970175503373150871461617941074941942652759816319030132272769449727299955240298631631914299373061306403440916408535438344295172192826110878223524979759639495691813599235430761050792615366327795797269378147161280776976988523821878598229791758355049428882345613446731185519808566948084037462721980058427466208031197983390048147323642503302256186733256018861366174873889323717098260966624383517655045505015690345171064142364744819945741201432672082055708116350886535094689340791450361311617575591044998594974300759717355605228865458141443059072564109877758046078770794487677396877526200619738143432113982716997134979973925469773061666091276999674518034009540418944026213974880122120286607736767778536888004330841044096424145441133500618116230662414836899879008722679043639532624386987749587487847636285504434824565659512869226289868706687459883697745983412394783525351376010526185360460905961417477675180940640222915564820339674919078284581194830562429155649123834912821328138079583152855154063093350696569801134053052775519594759452149161410839233335796105106753342405428722845765087513933808040189719017622431401760750581739876926781050484158044130020400572184124279003270860252757148337203414231997482806960431612267566412409429995520130732903851636293283195042048909223681634393469374170549417977067718989663460110710093795420919916054136178178145370225494280041732549843405910659050090514426433703391882882153427856144663011505392549989163888678889556926480826676976295253147252716724072421642402811558638225760921706706900029729202930790574209110817840811242788705095152456343832738543620698142556812040394946324754103783377289893170204931707806560668262064314876482204067335261082101593167309376547518922941390980067742451944037164503933844985802421996775647239654960174291180950139837493170180921883993246012045427491551817961581792154457690474898158800937301005399420083707978533221726483106265340209661757795837455698082766774512259597205165785096575139308005526611268266527486321023753504755096574041926008535815790000597582765832743828430997425742946252039673263109905072679464115037252553917862767772516065075950366466548499781154426828002210895916280965888893787828881395564844766462481877718596915033992645348125750419242833272806910738627755298423652803972804283087715277983302670611451176468700572052017901873262895790191228550157324119946408251337510391473973471093424574664709836556801647615794790674428757973595770030456980666751722050023841055450541348241021202070932467806802005935429762743542847012995841855328848676918962319411510268117231606123099413517918113709485785538306219180295299493677157386982414617658376924099453439363051349739666617596927998728235176570757353270901382683729543935602451805233249975119346776744448026810432348714176232175238809435461824507972680972124980313077052723499843880502629250746511596789973927535592349202779699102360275927810591829626454018997180739511225445161882131848114929801147350075816176905319123656337249684540035375871355842291257683073026293155045572867562464061301523519328430815191371338908848243702170270715776253497831367244694539008725339603833128882407217283757494161094938487384936309474863891069484302101261225747016556506523240879659395289292592554620868033261587998607902188461094565641971213700869479729013668664119688347888168806740021996937966460732082634589125510039140259389064472670428326546643801591153626669201165684472137697045597325932782618037343858331098043649240590638025168481099081846052613842303793688520035283196805381252290850437545233019348836304437766946152780702568366691437842316349104503846610932323855364186945345317154766551616916914908099664586408019564498672384938853131554581598375851732866795388137670027794156381848120558801810497213751279498362595913521278377382464254516716382690985334895170531617331968606167478949657220413680655417436729477489409091003705543095038271057118020456068674437544673900291505485708307146612986050010956269430634017627976055984488701566332116034384286645829319443324452994033722087950183836678974628415205297964976499228020030139793912619851263541061332738630762570745486779213361305994209112430568267402192718198153145752330515137374075771539658002526948054671389227579034750702178150379230215499669818856578534618169099289514233904422493275084971176820390481497851984381172448587385208018282319873365238674353136634912220126191620503121446990694366022024035915565785404205367602310078016511781756765790587511364313753429026633265280036190423518569829244410050526468266014318655056429325127278511897754931347014593640313862631525938271263508705776052147051405281534243230031524070396055965792790531268745261597726044387489231599127606815001661910924328734855419934013917550111960425253868452143664095986807385352428289319709053664927752779781480164995581105190667718595508815315070876489108792098399344707649497815990847559263007762253390571157202817744948614409332649266647118368940117913071012792179187204272437140852677162618387199426049112548025644606631868832806205384108234347538901008736280214044372464491197470456754621871553698640707402628103289206629262966699410314118291774411154385639474358997203551036021091469913208250872376395880967289619266971268859771050523539333751315815409743661082286930369857733406254364670913289408903493792278761398597253949767973493334554142253284500502677510007886010257128758571993450452023088393242883488255228680128790606060968252326531819535885895581213002838298012105299305838391204583579775793163057165796598798282535052042651992475789724332522857334713656736578847259073526886001053564189213658202410653203154845382375914864020992964862431798271270323213440664025511495788788049021922014637826056315459827623069426483076322619249456889534249281225771183007605448489926158923275739700997467492294341647321246496846012968916330731411834034864292385886289620019260189868759302903365205633735102387066186091639785436921552270639451251290510623955248040868033143155037120646314007763390186348519743401107216051319129145207978302047507929489556100255945248764991481956322442526781210327836271069942948733005850384303261015094104646916442508828076969428551842483878695431489701196156258532307827447115657787741437842950991890494089029016282926013564698865609736764369889608327711827452878683253194980329104333307606344185297824366820862626499368050594146076729891179756251433896214734203063932119636332056706350592500303777229779394726098395073523505561529832343596880000682013067894240940540819638276389193912256579726590112274689592915883847527429963132246224811487046945671068645554518346702495312230356930364896379560009096065874313477110262473480983778407331320126349749537334417791522028780126420579257308867338580422183789630797438142875892767814289267128317992016175641941260284752389797962954768191109456897671627536480000365882397261368409017632673828258403268691997888464724380448437931136668031158917486599073095794782678061751697162110441414537413668066701057633573424140196810142752440313125287841305930626575474309735535252063032276476272455786094018541247075624221812446512990667258455647694281014193284428938760066024362326476374708330934393657546806322641689400294368887909354200743471142049790347884400596963283184678711858863683522719021798944611039095011177627423638012696955251806396335325496598246181110610412103812102043083913558171520424822927075893417626550015776865966380625455382661536871620115115716734223683300351747242959969687762099134297171498141002711119558063396726471391793853992441541572587970011101591829079702378488713293501701532184929532446870209403801641112777612720307446246277517566935216244688622328930648193551178092053787860284516223910603433062276022354265119893601868068601478091258162800857377662921056256992264103145453945051167592977664133317083991216363509588939125997234480212242780495815630747734179225617957061921946176747857326955008625668670512320841642242852490487635915058187252942632521758573667099642810823342399215757812173073973116294554116561674351987442898977652716522580339213423568297142306975039654098426865320102041914554097422883365385888642604309482419202009951389000432979396744500437708710835420010809313216609759232931610941237892919176720152293960955993747197767642110035427031277655583165863757480095511723200474586027402681345355630130293891978093782865863677769070093173812290517528774510164346848772996365049017663954173064832295669797748585059322878665512539082008593037875396308818624569202890242040066837005680434074227691855435360391907607010973084251624992486913134538289783943402761158380820709551082578362939806250754848868050500925418443297894031768413130481699323869034563354479917227182157792522876444532869309339515436983300528363385137437343789644988254473492002769966981473341721276735396328696705298183046757930426199109037060376609195067541013994142563608681488750066291789726461408877056981185472910719425656694613752985332674917749837609365290896413978578542345105020616817074472030705979616537243827930443949398657573611342320244771473731925176752167282750016248148787307774601482616720604099026717787961880522026041566538615815292892600073078219028439494445283140549355663524846991904168140059640108246844410823207169894087087303653682801614333122964493055840131400899269006178190507553753670538215093027299074437219903745638549484353619195400577343493228697446164606915750746698063965537622012881036535554437685803533427694321540622390399764570456013357033811208021802736016336848559074419140601050905657569023305625421985060426871308574071637147216181364368031605889022605050260345222980357760427603621501567506634712263086588661389034569352835894127319135123739385221671175490991315641215019679576546716386850991680730550941665813166964031506421891453718486798931387174496776423189091289009306039636702219023895681042536657170676388032622961482928075909763776753404065108730076279000590376769458777376965145663027606250714124316793295527094235315890120238070752482153199567491379036103798160510583192293334793855355701603500862548304380794515266678414950098482308135784900561251423932098648468276766827814623137560845824234477635490513050013166206219265953170379326293718103319901840763848457406491099154344385279797058605164730354501532709356818568994152864628095544314274052739088445535291663038486277456636362014202366236578146548823107937642578112590581943125298216890561733254382104783046686260669038867832606925935312785029014866157304891780012260865925840277251099111694075188877724429833467423547158665523639614562443247303044897566793669624492783681793715680554909702632195647862112078649613933792335152495542097547918126711347797473988786375945088357059371407725910892697952726177854323241268741728403940919777025808933696043036611600546490239301852492528631579661401599015190158092892594423405393853633164629492437585849385181176821073593490281104516599270202098851603875015427701149226067715359127404514104409293194098841902017569198483395568884130714026904238560553473870188926596176037254965746974449286672264113724488634627545006184238123737038848316832454244964489719266152443529971995555299164025620921249628145303999584089637536466369986905961970212301641896539431466756842796616509934128971961247802059108949420820344616202704773931477137811731697134484634082366794816285282275661181666628920704691363192479983542696215483784645095158541059767549885050419567338462084382110519625667447139614491377512523919959052916420946907331369112124888893545947485537034838332563778948298230254922894328293710994653462451075826840006939454244926052200666964171717061576314488813651930888130239682500906074335334784473668855046282917506031341536359164476504312877982487649533672390733947985824234272665792481175677838998846100848254027460280792687743169400721447433385022291758992614990270963861058704646137262481285597686155885213544020144423543493534050541449884807429613071780644612191621183849266645158483149429565549177871737313773369427367507619186895581170678233352275884252734162689956204262312495499708846720879341285591238365322280460071561243302850922762567349630498019881640872861039594540749764529895198333197251895048855953414619262351611120645365288501474882927452976009519247957700882548134986480068605153319415960412414275276642721965543499343756385810192647720379679361344393568483213522929788597983796046291265448907120918461643984356128140700398758558167632152168277941323703368492499683426641074078794698013983568184959454298096417373166864700035917335710781312466867134486824277402423396397236392714347491026678014935819785051141869640170566995535660206116305916139317905100966353260178642244890158564718153737799079702185140614424293564667052511183943301078363142564372378864459833311244807941759218523267839802602117736517575109184496562752280064938866785834632975900196206834551328835842093470179627361005971200954476018092523476676947630696280492920614156814618699889527605869632634884084808245592682388059542907204091121173377932422859514640839398943212761574624597259301047954021744095011078654067317059000312440192675077891012321954640444026877257467880796381960593734696158151435563958168214730748175727368203680578016696905499921149298295689365228718238853074199814761160899729453451605952012530238231219350001552474656688614428993957149433019047691829969253602971351593001113653918814575871032349758359090814128227773556871611262210387033163852245783059987341448303441654391317395725367917380353738728554053780784883424319993162972604980290929469123697296863413909125707208621350397271784795501277262671885142653306845980715155414343817848962896517307101582174617057137929161482737108046345976205569347735618789316241498106229671727515281772937171352451942135953634548280125075401638519354136378550686225300097827019875206607838193399154483267718481977982499748712647688472357402394375791443713787105524604351476725745049292156488617737590803317083327117112294505951277660402720979829701973823681899687836306772119645578550200083634834055243675907004403180665515502563413392056301731046153778755861793646383638601789946157847509136615573206551816099901170915041953662006449033030072097631161479239364073926649666379925424946442041638852813352310071470800422236324832196796034974511864211271860813508999181614038018860340806723699035732362640753561232099931784083964105691170157670663728138631704145956050712716195848251877045325292975138247093233495951913015838170791649428796510274364482476900294225025670526847930014471905701224069237300118014821833156130695377539452614559179853703738421946950957331238156995285831829905543496602137549703988309550677647533979281148543991378625845568833753265729910906823518642362242645448754669047008790592868206745493761615982057587726267633170544996996284941573333450904265400966202263057027539667457002027323557799187980676306004018773058177509464676057772342888420735358658467457986915069847525998915464599967490496631153755646345327731988852269841409084231412118287670599347475255125190402436829734285889819177109641952751248643692193804029243080003067581538800541299466170994446180021304765700174257442075983518127947123892755754763991516944004149657689111236602721637912875751445265400147775421414826295238207109522207834565910969412841805494295512751709054348337194870056963250194664342994059230596508595725108707312679116186264679282596293864344795542171922027514751865023705868171287235931757062370839505213512914900875975082188863723551792198650349410870973440711909183939339179347753204355420416518776513183027279865910525178736699475858434788469160239528892754964676460834855773168565198545324360292578227260591499088931356260891599827357086005158691382456572788606078000925385445427462972713938212250593505019060493738640755050740400702598897863270300610070634391763724385871961371429841245171162767858761545308890474443267273584844477607872392270715534922004658771167403747651848001737521296382122289233494302677447218589356574439130832798860983235201961501932075970842259292885977808631404033059618282916734958114040531231613142652079594424280695111360815910822745221245108162455662405837139427854064953278003493920559471616153003017489488365063712733563281377460211653151595857333631700322679202985811742723169892145623376283793103794904922907289433595438370280339781448804227440202397689722921289608876480348423938576489037250619724871377477024448369959008623569827112603642641434897826181065023963377127863467961125061700462207669659886210463414148460269001677750327198581152718362546407568386352394301687761924372791506500480134201677870893285590719828230465335673513373931124445488356584060305410712694774539556671989631172777230688719851683416118684225187500199361847203004619445735969136185778791614867648860674546322199262873190675270389229311913253291732644410585194443751875298530799447025367536011136049529345817914434872019535256947886716842442576729242757752916154017116615565486254102500363453996849530344379095944238948703119624195190143388883682601878524401303246469212074906503108590307306360566180993482382968984321328105726349089343745414518834479708153286060860196145697448517059824129926170069020062312474497910183238876443809534386453801481203170384368635319404990191204892899846547277889054406040817683071993135912407014719824532640811735531815816570556421630668409575660559859052941531987143802568097276259984038665546724281037574102081085050089634380942342047998740499841404580978369760848635607544408738829510273498196694451775032365023549111904922173615798067610280304234589442171277015346572646149541002735428136508248326990468214269232011737622727124086405124227901312103898736141372801857558815165316063415348215357196337296057720410421446472799906878850095909595989487049330811051112749542122918650786047778433810341918739826260497338900675964316136237786653486085951934532707048283724987237637787812395238891398873352418356699958207807409333335894847640599526902414875420837416180406440595712310095791254488784491120665100191824785812707274823003778703199272805257094505505990079360246884835884943102460214949133160970180597636228148956151318807534973313566008930249581364524851774205160335434103399645880132425225091405760162668033706619322147157800366503607064116823777260210997973649481913953899856648438925217643592323667372108139507883469933984861470029193371424628737205774166483537580306365647087020850123932214183459062308012073027800950610653079250755744372086342016107819961575592274200016340958155459017605882944125586191941830767665604867463347891948962465421223306660450844088823937330146341567074195583310735821213778318898724280836493794872211743036633772164400151790447606361288943936263828864896126348564595925384510381951419761710467613924490410720105183023219456374582343335229485842657302846361323605659930267032231464672427170802864651514448164792252705575986014014912124688064923023374257842598431816092561603906372381156379360468739398879011741960488595186585763774825396691727477864800440704946110177551126301521438165483241833251350016275952386572940404204007349144642571452465983324802614839404113172681663197791044868168332247535837966148904658193252600729865914655932702686462948854440126241347787327968241949343073784443869381662977550625952248681505024966428432644532129317199653970241513087781795472246390457957364808520145791987594627974746112219431380910666243728951667454027689111677104716018713442760962367488585647393942822533856982982712619873635498241767844393003022007849339338607367925968360004896470619036925784836488400643321759692536893969726403026684324105487108632314646425466221477656784451625779135148646385122035591197007384242255583604654728275553105131272729588183306629286230522628533960585137166338321168676823946837986312368940126061574838676072741449563531076343345759404298401737662354260386223136645980163665725404917073521408067359171652251229741314575151888567248903149950028563063032476770990483719892367185031001919704899092819680002706917032574704065296468034309265029026443296112824806356450359695745062687529830866802376607052540092435822712119864217742341568281155577311394732954165206463053120064875169485883227683149852025354355510713713234614099636180273359432007565965839750561283792022208866789212838386070547778305916390951599000429188441757583953996697801167847308172716459614087225159000330066081185820305109499873130425196029203524298855308192305450816627957915242247744458248695458461181480226214444969584000299954416397504513475861730633820599876138083927887366162231094743387142725962653008649464376910654315560987802579511740589127283064737990876365299767961623392017635731725922914734122613124093432724099551573966745212746430785310983509396394515219190805982579005559807806299309147390888487019712320779128567993494569124658897885170306883125832461889775125324633868696856860064387701076518630302108162369217756493802548531596665482178624346588340585891392364751397494475369088198590776910559318615584417773797838872990160226858188376477448625636714627619204326069395913248514602360389165918890591430244103154212141786674878357555306858185196459415303267850080159622225738288297521449826661752022836728018360606767395514155240125181747392825765795604510540249582631099510618979611560509532135135364868754369741202653985735022757666695254101166381604525637308748429676674920417130160702378332562461146415182342172792387356676031459139722403106166621475189382975566779216715618363229772665896334770377684831112367413529362448851725777234232167714613913731690188991920155280752871092752862171686187683693875536668482647782276864182079068430740067779970238540573206104052043267389948221842632702056602622633318714604498667248424325590451473053209157480257483047422556536566392923139201643073723016215648718322776366152649240198331731524569206313766035583691636118381711508764561852996871633303519204352225078850879676632949153373040647164782725772043172134316277613629966278572520385688778186283479838336515231297183867422776908053752499423691519632775547406626931692701547671609006728898153372223209758250636577551460444123295416811214621056509781663338301803586616505712623921360287525412911067775175802937238209928669575019434669579123166543403917971816038142368786074634042722097428350968010622685394612650572110237337070556603898347036450209271349651307769835124699619289305169629938175538495812513009022976667129713237397284099143312651131462004753409963924311861243981859181015695465740212050729373738001601690206830829526615492055352479935001962300534468206565111019826800224229136301134869110483146026162355331951636426614860490823263040879360679675143074645447706105630575278427913181755916318394531518622007420354358315470782812955645262972262056915160612406965982655645327632111958870206247700806724200192612230887642132689004642312647890666091434290824836783287248796639717482118473543447828598083903242592485092251881502906548689662304802332979770020792941709874269407096702778796272948629301064759883004580779751119126139350400473843587755237502414862917121166554020447824247225178648479910461603545085168804431699870319892257246647320361772328763880858712098349353423012340939589033902544352416897109151388124288373017872591253543060866834658431893033119505948100455832629934443994736891076357106307019945092401610018223633145841887032359577008153840068297417198895728009065313431000253545626088612478884539240173398400486200391418419048816211757720101088803468114466776796379000356520171642292922360397076679677125111436147603867208241800798960694589904884259578543592786631226139896542731696407942594856024908437077728860308610076513542492679696218063484381711347929784739443595947357713904515208931743826049427491097539321144131014669167688625284465661058429628389179727449398448496024445270007954595622968084713493253245773264671696596630690770175592060777652718891830049612141959913109949113140259485755561278910363032659414560867603478094550135288503201879469740118861825324158107061951290832394552912231587306907407498622304651270304840519878087847338077397381240242918212994288720840001610458741034882537031648128674219974213310673077566184610100477222094760310529841487036967251305600148173665806384729540352642468693679676898385367302775268584618165684409362139078624361343402009683253779482490350663169332743094128220211364840551198242556187076428412425928473325612398192066180318891438552860429054188399845386943982368074635059814663681821467322279164619879799312770734288346615883968449267241462185043195754080685976153580234095269016611919774397699500673115137318373551782460513149047294832279468434253182272900176968105304008642795441134522988165882914429995754684873036241737696680287916209241478752589753723201398681541560146536733801175062596139636421083281431828552943332674463221098160829568025613026588015340294940725727850283626055325345792130405423632254738306848476775018530489189172363765418111885206291403219203871111092251752819092197747170916803380226509672154974003118319162386448187298134064362812453924335662596728035585309629497746296597204895439730982829652686611010393110905374215264161085575097744122175860964060908077640870494563429282757893931752164899933011151772363686577221479248615260214970285687552688102267046021323359984391369046398240452313667596986020145793178819154037852207275016350129090084004511190395752098420039792751766535751727814406858914445228180718939895877445939428768196614152558952850480067533898884638409754068516122915581251609534052615714515151721009009258707966138523261223210148858776973488638748578122174257846182357412861731846116076045399530653905545321850173734843821570145731749367153103661738932656991677591488702854383756990010114449497472085021234937944000111093163435666211180136679294663261831339521494150686063872731377694418937222914168125066143546027082970286987107852063478062381968174142307581233070721598862451901817134984726141667374142060271137019866273192239081922860885064448199839799752566729257162491970589451908640952680059618706340251353168905034722596408092280865483054555710883411648984078839272739361719133662884027713577260954542704900215057039779439169332357265085434532818723573186236614758889085504196761734996602066459095586330652977915685413701807926688220443251074364555579534696631635892469808147020516233520700093221025581047260360200552133109489696612397236379164352686990309078826187520060936310003307209182629510254420182110750051406256285385268123385693727573633547291053413336569701517945193352931003699263540925970760706717809319081116891190010362176630446608302790043720931750921209849329798959237471301043932120555271642698444106334207630131543858786375937465481983634820676276339116497862801110527574198965809396684253826773093160800805808909920871975891593074204631676872784169832340103571475522525644240356302172665804435642950026125862093229085334242425877022643337532625810539755017024802468603156302351329455053548685956837242961469918915728311447492981436808033031703519410375076905825173460055915882037514129227876200090054476897794010253454497187623978231316920520300743908491026910851107040977536751536202267630402295690430116368918085998633824581536879244670362549356415402268731491235677965272277891046659950448572355779342566307616969798034235663641029194817065065721964239089025463966487767255036407913011673594959201838653231195070879087428107007816807684241033450161154600219408529901002535138465229085766714441114029262203989994280402440437871083568820128226313543740101273482281689914141041090714399978789151881240920776710650994772529944381802357709170923986967887838719480207980095963934578730478767103625982024914810474819125303107302969306344079204749238687092839444170070073225618575551231597356824654204569020427081447346105982052953357983336135423626074068819344238400914058432960203972407439723383908398664336655604049642300113094219070329536960458770427570253535494021648402569916572549434545928779982833308598738951558813296610648113241999710067039273292327760684548455005513702067837461590083079196638560511686939018619231244663945409549136760656109790699218731261463011463075017265225106467372474519367780063269117587074945377230358158010628927154757737100140445842505189900757078313631833889997772789853942431447319130879616940703633848519715698064168341165223009893012756411306357435555224140636684178219833638377849487977258944519323507810233023929998071425005976337593228686696883966597054916852009085816457608088658145700359229913878427604715405810166922784442465379610762121823043500101582752549083532385527804630865662447056816495140885654926457345705448573776920743622482233851806468652638950415518798685144367299933627162807353402743640865758641628450979245713469515737016708550555800536771255992215003023470586818535982908326907687006814678008722976629347520119042761755575239850890245382481376594657776255878116030113821384183696961961441878483649668927048785091930553408362884583268072059319227298151415174488557570429786647617795448723305553280148786315003288799854042863854082637581449920240952938993848106873489748693409200861778401024380866332873485057449053343284324540497067108978391013204073368188218751717937630262820184558047116654107840304707544622457395036037874731105108336918763861574211030651105516103058626382482771919802439921402046396889431803136954882372542148978094711997342317580227926740584959832517616992681624630978120682823475788326184793541808475158039599275001063467625103376598882636535624115363176491169413588371446195460666260286116055461202128602335609518358514815760927961639443315797380448954251426637286330888447363924495904182711902814695804556914578953477935859439137743960519598960156041522256749271772547179290534477632727445262387969341498026988505548375873186395153772224602324415321794717098662729979331198018245493575155704376966528195118454317872132370006487500842971869533380178296096123001588730309424997399446970201390636792926198300315953852703214773117248608419339219546428030375388643118774394985570429772441938398427776406131735259343132043310540216212279853611303312179593629386029759138704798977202494677523846800735794099606250462805008053823221011109987043172110048016154742561669729378145258607543873579680088898228620777234859695840377227210560371629325805067093739499320017026244228451182732097485135710447423857491093831338506559485267972127118968131038334492297781663680943026218510567125028765920331720010949301070217145435641875678748181606182949182227284187570175800899065838603332980189350300019981977063443572887938637592076920272507964642384943744900121817891784697772814454143656836394806985467931946946905113729706545146784483756077365515250834935649986183079430648848941185509855083993388717352512495605184997913458427840441113045960405501519447284346877012729332214499153723885306909212197233766947866497593245456663952014690977388498466024427370038826713861230628911335546680741744483332219774338507104061400563795435778685587904334264925737881007977831926514767466911255875869406114205014194480269897667970052569952910617414807319741973629727223634677577979376257398745314474757533402796873394151570539829273498171538024254965099832333381462123856104037549481939989297245369375831461674305219252194122089135150160709635366048229701874641253221433524355131236382242662656896747754811461021158143414209045825202207894554915409769591606079245936224054602170037135029860329817714595920691750727054026394283234790912148631261456148296317926792340382576638786479426605408521504357747758417741519494757565946007815922808801493880412216373732289506194543260797086557875112213906815539561037497204052465656671292926907189775667221459715810661021893119980051069403763564695207953735411955070866216260651426027430326227181282888315744273195012266796107510310938240042608773805202673896607120285470539795574125068258236988471280054808322356558421072212843813233513985762489539847069679463151296062117117758200250730995159047159748276099828451064674416097528561054642541665019413712560672987247134940540939039204803903080356002145021505446221165816785167042578943194568978773045177866069157289347386011911276154538450359475778001465604419855769179150165534139894025021919282956586968732507551775274520133134614371697789268532553266952061639754784165949887008829552980290253129789919345156938149559549524785026104216910035744231540400285739315513918805603343453175760913596604025912663986784893247614030431018677189068728664899393053734602173097994674831843897076186499518148436628381824294478038787910790962859425618598938819021969064800810519555188924549309088877674118571313569362019935188784103886815097933082711421882974173576465279154795163007997569068055233270738815858378399046532642151238565546009782652286497281800885105752494499988444688991671207578231791153316711643082664598768516231604787357683970759207955377069821442540658532925724955845776071277173392886495852651600052073903346050400070849999972943897945773310056643330446796736335053908201569906312172952074746517378352661831649874045664597268414552707209829868816535866057131622984985256692956474682815624359140850384221951730926976481271219260967448421724010768683305041008373757041387367608775347552606914981068296264859430441745378467144650504984179184427328235122127115573082506596626427266549255301274816533770094125120345830323513526489711011945033218655993663942060870926683419985907575859791265529689864351273461453029897917813959325502307535782051222580437874891743959923349436708176300828814652517606695529203624403288283412263406597513186619892586832350147072794290692429857069401436603497332549888533133561067505819635906002695216705056366790622700962277734167382641583219434758749754837227636077627067266339582150395835739661058605122937739022316836015224123806119148843080456537003372900267307440232629172972647206900340035810940277621462645778142698208709724730137359065957701981602396748951723911573027975926560216792199052232077876679814560514058194248432473501352057521063660483678686849625806957226062890055881946641210274587354976509202853396883112423421595226861951749596390449112575533656025442576148311912398163114798555303592857268293153288263522302617344216826229374330453971992452833914041556463679621830029376680180281523430943401620318901370490982310975227733092574660513348028251523134266304873093061997283833013538543614068187823246106233529436242300859999407943335488475274559412898682461357809111690532138523278001443587891612946245250532033810383819357723056200213960264636765132496628149867887928927731292329821035323714657421381359905440734862750450916264097643159224306749638714256188375242143994531163951279838882009585794606688296616556641387293129317497308348609385534266166165434892771514500110397576225875459470306878949810840552388696903788100603159280805788642483450275303023240902324117057573976891493817479643975635237017346673021802499833047853947967855018124955313200666052794352098428210080741312553880932950598085261598624017190062893122044792568206868941162504822784162340955227527391114476281474130025455886161867000589801053967860882798678153234038370429497725284624632539225145167477167186886376804486457542655153567203193295626259482113787157524102123695899158649411623473574906135064384364561220215808631105068365623601385510503075325365317197133768527662813189889656997229237521978491725265114481639551246805723471275301605098824747675610646210146575677908053715120808532185071637778538276064718050928371226764229300892877538844249979871866571644025652418571634912671368446474085110215458966806881918031059110714648835810404037963871913839617606427870076953625903662909212479384166932290373145825915305809952567635564334959897211324124743520939845396958957427321790822820280803718056352359851082355109850573234113405210338234863825603468944328940308831413504279314191950994245687531963447711662055104995302555017893671552324721907585016592185584146808217545891669049691326824154691072098837438250289754297743748663394893529364686911751703195048630470914511563790548405468582165389334294485369319006980802218025225972896161571739000259713562255517785292410845589107490217839676558097680942662851924824405846271532937680877731058240663959665065742478670621201411588517739629409548171136396237967376775979068767683010229089783933995869664556943868773777338882839931525694591906233148219134940784718762297833964416201013125515762664969574323578237474675843317074823350613550545868061622646850154386795123250766154235844409264010574293395416439742747887771333291477205501512665795379826137312319646949221193248040970100919736591838839445362226435621212838033188275184954574234891974919820971017252746045304209377835023490344248363809448191418204387142651919245337817772026907564148454392721145519146990720706150356639066284397720315883109129768124005802979307617606648779040523960162388324497926350251938069738175735218027572306762221263239551784650608667407869528812308225897435517701941662564279064521852798359584408291999835457070605329462073978644093829154615470536981343515857760793880096615881569335356624034671544752158962558199590045662962483660556213818577576593006873133945215256331595479313336825366117984926401668427042486178956915192608968932860946737205854493858251695134986730598117000039152872173866611259885107524442660038702358967728549955405803891883308813987981678693629262014473524115431432828823307458739828490358034039676163824384724038964893741652168782194979230145123796836212162914667877821556792234998348146030337274804329235228590852134435912527712577285423358958175467059328358612451325301801905820802102721259127547888180906081577040837730248625380831508455572897729060879145561257206829896552235281026116213892263660809617408509525900875405432987897080732226084800724144979777863997298651020198691518459695531286825506721534069097780755100254745124405719687348615443650160295448720781389179329494732127440472320801725808163537337519497674798579056416986629248208261443727309705092227962052611165105991482039620110259639707897306824031199617298271549678769333555099682305988547559126141314573641313071787642425267254805464327090426208625295485662119398234117447477501266854507007566804826140808351919370636511017424959251483861715562275102981518720503089885348574459364549472287781556042620702786801145810010440928315261556382243119170861854910268649009418271458383660576798349950260242453066570475392636319635641673471064372602595708475853181716670540502888849185219675499326769039486189307818148684357395051418962857909422008488515866529519522819506780186786725506811837063956996949532775317330706888259699653364969960485878560078052009743555139119442858600849414683307327498186744532720015591127348729641740684452063911386012441309144096443165825645258625567181709337171990763332001675662300291271177572409949504262091139232625942122761440886681850443232781324330296919831152985994254509000166621111089387381585652092041514751801111198612061235522730492955630290129012722533037506040901929249331041499502377904373500526825090042360791354220557806151897123550015757205281929450295223406750129021173446614209170843193646754847989307963904672668858666272613196467835035890849461275638920820715355360655180566114154615018782395022541586311105641501503601339343922354137607210290170902878159632361136757417428370420752807523545428214177427013847947625941276545834380042385881044055044945115743256688229922233390109221439803059828771129743663375224556492695978885751537290816387780155294674632131198762109875342826577443435269937759561228840483815403369721444724584959372028344413129168575598900592861440090435910024979494640013808669453447088328201271125689372300059025192805437578481663571157489051034515734488788463949387046046868003650867330996857379476930439296056210170344938625449242630704438920279706973270621614994895063347267982768185901008515896048519902902032036756585564944042007686308722097728038909272804905011290330657970144543818042602131492296341696138693155049577426603044656896283662389343238493337667751535997039904409262588084074490443877634546622042528540512750567373170761536868070984643690145816959575222861386047815840291337313897452394355046224063136290264128460684623067937771082636589233270638507714606535452263648031571510255066725723443616885794003585680908789816949369320280081634475776840090574385762778711992278289708582399083472465986013289249534265916993964279589623344679290240864581972271995377470832006998244545051108314163016817506107610829483358387928029541726009562602505488250783248143512037621621443945193691441797610065739532844980724623333195032223498057525235271502613187056058453451520543816720893631871792252618798701092141221313231175565909514650547410227570776175726031416498797643994879998363966993260763736342860216815892623302816729649599592561498096050666860469656133180607518802187635000966910829870414078564768371892739575020806054834988580002301493965815752857100793169241990892125569769604635984380990435817923497071303535969542006058373676661032051740936627811843431437405956553454273611310455939268552825042061529748822488951026577128332063083720041139397996856246793143880254428444446465435572584462618352180816071221764799406719090898705642022646704022355168051777199879651061469645120630833099010659266398500814403834478597432804055231316055701151656862721642535372719450402744094934128709868550472885232476949848596509384329417546922448657730428639531734260143045886328541954043358506190670538982285687640884723342770746195562759041368100326968046729346594512606252000023883094801653425020770679353218044951752802616248427632009409223255733680382015902006804603763695900030149898484896691862075719451073772797109472986275112500530827667956353885921650228020195784868392178240346132953480767117703475373416448517612684697949404241994694677117899060440222422561959973391767749459858530153801378448284255492532941550117649669265037353470170947514103615908296910277447114923038288637724072642221935015864420566896040446799868334770893725396165900712958702657436125870294674699197564133935164991191135539674882329875856031190396662422502911811301349798205245579887651433096407819807389379742763002707527207156625191703580396718240268299737972760361115648933009769836802024486910767093363111768348335474266421790161531942091371115115800554829353818436033801687382563784761879149976872997521520349256201293329490194955206547746830076198465271487434082899037128893177682041950614226722902714316226723846079842430090497684777957541684684190356300391217182282187541459909557621368830785662178281527365501774192126852723590630797015825734032714223180672086540563902801004669556738762948079267480067496448723552706615961960771684268963929286051962997568651870784913787975334258573834828351541208422996031156398208144867789372103129962769889080332447914081451871350411125765581826909056736324639947371929318749107675527154731132403620652638923931594353891092794387916392461869289783338235018106684431695435388270071450668332377506833604529858457120804865424630261744670170359004267993310936220195934526577870524367358063781244287332608794106036190455364808566997004611018126927020348697116754455867717046087029039459290104001660122651802677598807702797747361156528263607778172002206287091810567601116208643971505819351955893925642914395332152753586940864424409581569405128499362486806633522693580681732300491937506053670396806678875816559677840444691753883880121788474520086572942725796853261194891597324120709633689570631752123773870664637949217591066040378137575808696849062806072757452951575254700567804779478339797458082206808391057021300568380731948517441705228128933648251354238551889782671463783812702471840816769738339255391864063220281425897659542588847773315275748776975582403645078151615829837083833756561483972498102497308015689228396453152633061081061030075777835993254755800376730909762955064670315001707384279305435855358109951371447062664873421852711599553246196672499578530707296204212529544240281893301651709858284326433991985851503745172844606153237129387714452694877480945105488119402903819017019720434137863211682937359441383924810615768519994291564731751229986115300733859326858197665442742276860562238559653185758886628361075676541007934674775196882011303547258734426095452841309249633058044538636130932049004016735259232326154131515306283221425994323705124224951231968209659907658897006547971380741387296096195507530537395767953911488665512939650913997209466106779685224736918881198203857776871462229136366355552265707374345185091860493755372926130953477076931801192665275523779912843727166871926208898924283890341552914600087802778790573014680048002196996854317911975033382070701763760207798053266057738292027408727204943405882574353626340012911668754323831851820441960099515828302053933006517368873269635221704635723278943410208054061458128123807309234939529361661530747374175191684625269861984288564659535802208369253064326820581983442263871390544355304229832392185502073335096426646845755504160683067493087819795466950834889493044945552603786769929099066423901904691118611863401624907357687020379375983253434036679375204750702266852556333561721578244786222104939481033557213766647003527872677917698253030107335773651819854457786635001617825013679224784857787072310540587503098605165753326032083781636629617484363631415221331109610285017753834749763196723585029063945265097694138281493360835830767989113021683610676125176756225163958279585964041732906069844763780850418383494707418183683661726787432904325081891693388326929194772485698666546099025545569316276948877969529054185698407534543007509602945326623798822758441124868653580993364381647851502758209029492747186792968491134363331496719500200914285871963046814515918625965717142531886412852694197448044954305218562255858042681740142400636153731800341464163081320198218605258500250795985148505918652626260725698754352581343425963484418557692701519993149556378797595834197668540287452079752427402896145713095115022831530266699756286344835609686045131085807012329931737210621227639159843941770504233315772100756782262395844384728210195460481024754561967200717540468322457644584360522040004331499061306101176368526229657219068567186594676101870175979210706075030204702848681757903462516911115971102095693474482713943887764978596351309610948821428609307474021305340158343873544529249427958245897270809528808252007750504232157945079144536645713004746463731209225187222565885253754402561030937932022106026485069460063507660847690759292045389406259003887096232759724439417476746969280557802366990591707591291868044359970659517598510334430063761387774392337249824679025395238991779590876048022522603830369166858134987564481432928563063815885850952539992032184692684294931711866329116302448255405463816146959020041374845815747647869144128200745611918118703905865954816506624931092119334607819304856972826156195417598954850850754280565309703997220485822651062798742190096960177161948332579928373633230684164867188724486231267028301230579002524612748273665181207368498753651033046061541669432707492146038438013072578855734465603329457299990905644313495018039574325959999120907573448078819606577293522924195269554109663533837335741630904304727709647435119548742736856924054124859163939645660718813247820171846650683415062173276592988391908734353446402914866336705270435703812582805077233033821082398334411121255518018972925808810787489662750188329348769535850878765126506379557513701089174919323819213176378976661276378959960047666795443639317151253849206688556148090757812656932734330658229052749899907888871118913085131321923538202567139477945560034510309542042489020431427346606773206541148970983295103426037186437114187696066828789779198524631359420464835979136126699223145865299016374791868495389391393610862961282327391156668774564440354432421090658711513206150150825960804204475391443462080038480976371668248338541633013915879671210329680141101217585545890935281816602966141160736284215597127238178980549649511776259903399858588194296111895627281542023570444197132367679845463583203281977740763051286817374078386672856151929931174515801399737871955394270050720331643466255284093548640395029922992126650446293365298826766495573450628896120292600957587121300476837073261267504748257846326845209090928269378336025775034182510203019748501596151410447952200511082530326340903356782400607596976599099572056387520551708469212993294359591958326646699266049482285832432256145525059185384869967774334638740921343493502008929768098597173529885911987775180800624698823669513481819858236520072554817101980092198460327700598953470001006395285660511175638903329043596954123226853463701338841427316914848397596178978950736715123803019315895887694160453631460020783659602559030542225708497820810999220639404674899524917392957656577660858370916611450807435497826995515685210621969937231433548435471019949301013423341020809985025815137358176839122318586510617888588187240387293059656429945317986387167422695133526477064486359032974124175746781874701175090520250714772317068962908939759399204545178226242706335119259198144295134432117870996168765554697048398730665890542201376133328892412804674556873749627061552037667726831979592188031383127489842916418627495707358740565710217367620214461985997205501168698376983796196773421082353233069362996486811135363461410306769842717536941408586380618837263559592792269356098397159284877888159616390561509254965097258488482939047661890408337897176643022206074426240069976884678460572754384416484428101427571166188422641313205257960010118792372309177844476687634494238376449144986694146643476927997478111873510153012653863044983050539836910111055853896060397646684888268430991380119350577402109071105484596914364451320212255965232688283808713097179255294528107053011371448772850997768167008821964019800739511656063196759433161488431427668475447408618111598125550819038711012911667628687747187601856435198551395114602292117796393712764638088961026276315946561107081531397230638052247962554123012388663699768704610183724853237189462688136741158841557241917629417123655748459326308426884991032836695969575958723088545060750519718486426230052254589238757304977192359709465274972968837387462551551280907909113981474214140311243596802728925432824687604918512176378968089983113691335088239657874407707199322863715718370627852152733087638172224021739590233556403867646701273604380893247908106527550215770099215241524473493811698565984071880961298940113875515512492078062371779072061722919929283203885572811879910008203065142802343453457748335188926385814556628477810966259999341457904877101052826075058102725352332080518326048538125890509764002806530019624381048012690231894933246089401131687877796957223409130896637963373191505548419639375987858273862254162438916848203774600906169875394340842370804212851192931676471784639525935655228642475467128899939941405643197248764372576655822416722188538303473141759508704398374390535886063775444512237317255652722487860774739290108771372381128355295931249013594445066747627946300238019787490333935031495181300621022818671751919382793091574857729570718727059414928278856805679933885435910500228922795558387224084834648569013804938998026889882624651157598901583250371847612403677335497097614377576442881222551678291501221092911684864922706192599002634601674123480523467531052011506137470054357101321628883268405297289501548646322465868796765770482778427725321189198274387486556503093218264387865035570923683983570054957796116177568328848063438618088163932983443587432213247726355412759040417906873509673443510077284108065885756592356237356352998597187221275746488339240655605975151743936044411104377119283972270592282747378789962697394161249274008175428591628003119098312732683338150877812142982605045949029401993670212240968544836564150872094702958754239324136132110729578866458841104452927845177659033629410119458327648678863807453010291379718409376666268079120258950265504490654327196291750900924538165551295467728857725052321377366827926273470478015052004254959356232446293788344709767965945621304764070786631596525803161197575179966994708959033077201952498410012357704184187963917463718833819870143040102078374048178234394662984118088474022481645590358045148938540008311646376903410583249840790979999087275111217661859074090563537483077212279637496271010619023276765574812064590086539921477780377453489277480888979844098856437104024271985156449947953066818179381109126616757078124983465648391419725910749147145688930231467828700846148782418234824974503899567975760679329284256399360302279467548033299350241063551035095536344452010147641177451651630214939046372684764115054957217552654622790838555404226922852565251925968635183487249069309461867087302415175561289734449091742463203682608483377465316479282501147119285274668352781939029602463141697466484905227277978591737310625053591813650025036557272546420320747670053462466987316682836859174351325954649968509954346661011229181370352054886314608879461623026733747493711014136636515928281066767480433565360170029879440272927044344630271848038503404415935517398254888398434996720446584365726101133660259803641943729227711103310184283243807837293016790525551563425643441356890932649632446671119494193068227501914495201929489099304508817048357174427051653631530849506413380318671535678245116495126934465772029909550833394416664105517642615564801095742844831310072475479303160722844577818972440704101016569332183169539071117833787614153973662028521859909999645962841722761189062536927002493133766809955927135637882933230873801211529209614822479481905668465728890901650876340714724582755260726776214915559446510191814329098565880504067310309593290334765997389967977585569341069537229926316530616149352935577999884842465343564242820286345907330507071506483055034059499564576684551901589183235528863128872178870456428806938062243477220164989535589678461718375978838501682982792899349934903251762811839503810834217267039314817276816917085073787239309491944650151910912204692291499932101214638566118643225233621907980804392060979392775336149590973052939923480431750847401990815774729563562834127138739038244256717982902389749643573787419802038695938508218056137004800213563789132869406872712152485238390427068453832402593491818899509931486761235702690402962923289023849812382521319575489627300708171391084603014335059974803239596199413216593050433284259803213231695503302983343758230491723291937071344575621395575826665514747520672219695056431967407607611752695999218004209639990350920350517767005979566300588999872305054266461844117570218957684932280607603291815300834245204862724145242449815224037823151310719090189640059992066334652499179425184354961607594689326860286899455823806502146172659395148668022802430940231717731648155786938483857717513887285635895694455206985890185685657123238569084290925450579489703143151193598110627925736800280779060999003491827446885916569526824633951575356300520946168442988186813491600775338614990991588821206217094297592583460607320143118316350669970876397697494887048631175686330620883734125321665711993975915629956161740893149673314040936017808658776728170258125683136274944496585043464129022085955549850069746707635981430038631604154319056820042857169618821754339843879805852355067253731494921484656009209375644653571724013923335911948259100459170787847542103692297496053753123160202438401071044852901423148591315574128966122066330144332124019561558561272399569494705880343262023129494915131196802264160363272657828833693480042626124136696067195072228427619207126052566897531493845032643570366453479200064653012409835724577139830541615351815888111761085481213492614597868559230311485526841143203907506835734538930920124822773674687253900042941088370644850147024356618682238933255864473281422294927791517973109544702162400354704242282891324239201515040685165530670767174996333001982012159883606721433127587439337430772699390876438841955100790982583929626854146794503611207108735189717591730478447494701690348056593093028766403904482015048900024853466257331397070625778367450415106407861877164174958202731470110037400482209632539617855669169492233025371914702990513869661298636763301421654899366912574967520002853529066119277855198654181322808579919420229067058251455631057577030055848227694200162168164004029211802309745638281624918568227191373957625204848333272026296090787668928598685779166785086419758411415450715153026579908409859216048097314284298592429767599136408964048274191757659838304887821083278341579880393752065271672382269342595597496792972974578912645779791398036975130543878406128438510954814306697209444228334453992924579049124993674040435047546704532287672235405319638084788800150780569620921620402692759042685220192843789782607063203245637241756321949261008588128275019534425320542825249913413272078525675702521566344048659741074587061574971596265406623172456280437654048158183367679803927616676052140796158298385526093794161047357578498322270041100510949607675847093903304480828420046617586058189437790074260448203751474492563361894040546611689862732126000342262300566322138432378278947823190622898865602656404998295117105295916870609547822103649344951472774919002931178709706243573530868627689107673146124914056175888839370531360739784082478007589510436965153650401302545762846894902244087803117018625740953011887538005867105813756395043917417263678679063726786167718826139911722952362241408684908089565402119321741876215437860500723630228363572639091667171057900532911267037603116231250848215677077522242725889436658081978965824070940003560025744065086925424792671063769815665195301558432518280436813934572178852793810996735235406336066246255439562405021924296249806982136058031785868372909928877450086758046917167010142733056059240961115193045016620409880436513525658746184280211791163004529141218484450612693007882988799541084756607683670945199516462738054283739558130593384847965600814888274437095590146933769449008587288959886976198598394299782020792021954773656924030865830575156501338722628660789514474128226709938114928211588615627383414185497274973358533225130157353707960289582461911749764243073155047233711425253519657168993851092488889114597310245351901750563459624254381779401970056205620554313650759011101304195320181291338362596369647228567159378192212493935423518599060829778805688340274522274805141173498766584670309117544784166213612558692314649448330813448761389766042282881825386290003111334234127125793348480791649909967793449298456052624893652973471652870142827889485423350256401253712814236996319388966956416728179703959472804812250442426408909976417901011356930545699083865152261628373979938376753082070664734484004122185290722606246328017631294248805890536208948248150870110779279258491221001844728903608148881588697197657440244640505718394226484388192557022280049333378783360315971883855686810624557193647406609433180544312971378336612345152734811918071350319943616351222048488552945478097416075806834512381286574788975299463219850575363958481530017002674627838845798013837868679992669542960637522550411377730724525377241757371554456980802731946166671498870602451485816422113740391899079264259822182000431625653019528777230044497466295586138175052825136039110961741965015697528634113047716526219155595740176673756516812898152935088442890202416380050871118889916819849775515544388016270454658802223991581271163478484835539887996064460289882813873974603044382594857414409066349991164600731750359943282257021317710643276032825147787811737764930338234517380298054064376889953800973078868273649876205020813418893304484795358041351707272868573886994396801479626661934259960729303084950691022372498232722927333831919901690724171491824850508934918602685457717343993601902617365991765366577754025331035351790940479804692209285736069760967005654469668441350490807736212699375131897523582543813915092159939670685342683970711999864162477192971375333634489258282695094106748354879987954735858044371538761453587118688809329518244892131089789594690709472509618560230839439331828765306296486663005874827368294268723787257567565569953262809410570331264045020213057529059961858975642431110271368714516860627876355455983138541280661719428963741164550947351294361657767230623579512789198570281508814965489236975900004257558171872807404239432855498194219906658671529525944923786770688655337498652219191480209910485820521171501719969729128136659738905962889823573681819179120648239622617394470433700130293992763347063693216673671458708957267949903873717807704391950526194573837244315523622457140228247569311511216739709368496657181923193735472900082542948658752100399339223586574209383107572177850047111863886894166504039817177480165839560202801888042808564223806613030122922695224248872078471210229313318264394723830108841330035456259490830939117428634073735068068685726737608812456078161509600279569573231217927668172560280972936005547412895640349960642733353573363679511739976849175036883194145436547280650395284496946385654442531044105000030938450226683772887933428531916427025927927484750195626437918027946056455041521276138033795776604579935412403487753561038547757820535930000075868539981768973564460107842251683292495283402111285170048530524087619976455238106824023820111354224924402132416293029576238046160600715257026909303163165414223190619078680924834734150124577830667589140652861876353610293011641831259940132305858607056494321356092264840591994896089419535510854552694284661877219439469746095198700045181490807649391718377923367979918026760992385368353051875730164902607135451505695041194962903776027343608398053183676348515306354104974425812438710918798998339613943742184455536684859451910167367402159991632527369379713386751207206529642602286118335490555902974559369312103660746226028219008946032477121065584846851555781759914634010562977272784192220855128823672564489622919039045175410932936275520813203790119375899278843848430082609604827383932713998284213002352858322913609276972547826243652448987459897461115983110494561406714166263978114289341524923547713144872993039683239299387736181138161927550276925110772741790122814975013620430451655628040360644072158377526104278426141885165340116312030563650460659164987992473419582117863232579112121671451727603456647311260414241513402454802648364102937572602893061375969564525091431100797714083383397391040124872422862585334947428443941219877027424281812812281606178174732342642474783328250645726130564915028908694850489083028926771534454848567778518716061970861710937262185668451945677242929463281554023904283381208284017902836110203406415262016856889875373274782439433405835210683990824670134125804440718107424998138852745430105133324265887656861702104321376716828387351915066994431476614000929391485077654742601944646826268861208018922963459430774384410446714695732783407406977851240286150419802363331905686172537128574878993779664431882683788921860113143177266830098762962450808291829121045902417853374678891017544668597779523517775407969047807518675442002319922769390459656181612645852703308874764157202690559281738572271628996174213110088450990450388093086364490156962711234882386755319793752737256629690570611651441928529144956839688412555144259728578486488336232872409271691449534988786942505548537039017785163378641709140415803548001865376100588174681786065277897232437627836284372790718126342910215551551069740684007026652692929280774824274866633748401228156472264839193598119752160678514148493501615384181239311072793689378304788191369028474095079725854529508943625316044508731492469800949739480690362062339846033170772275461466175485351053781622645966179053466940870149297419985545127435242102093475988927703975362144105861797016540843191787352215234962122024847863322122923282466572357643947862541218195420777828730465610882095342794905856798194041357216082172784427397521388211912059680626793575870383164675114261522282965970651015559198601980723503952768031085222216883242075580334889392170362740868366066332982947332902062686406108382747034741655540418925938710567888815907386646059929408473631329176447868331084445418245297393392337290150762347846437715062017359045209791454227034851945469457926909138600271000966995554909240772325142062251117381764217080362047276782024249822722930072620993560568486223272129982551706282491919653477790606428417969367425651893910122145849493848210752774679677124956828500720924433330590232087675226275860504818263956307379110069860175453694921314780317066522460911416456092846134199783516512463121651514189215821416257417196680346814851725401161106390056725554184675003497948118875374422339593466651353397802877888709102853647955686129245502518177444665993029828534061361188963192413280780951638287328087060350981808458415351802857895937113716283722294593660473544133645101115320976217629267772087533607577934296454493134987814924835265589618007616789682360799231137632450707025390139037655805291996423170135080548702255226092357266910537015471455237460414609396816262995894420048326050602882326729021310208184197668954972499955522551282232612207621478488808022186624442449303004780753619844466949734411643850645937697022491931431558410060921175780733625152008417333517344139487045995872507020135051445093839475001496868570611110989785535933509149100387147762441925348745620632885853474531612847570036138608396406948320168824616565664028748479512021330245427575104165008329421357948120540329714036791121235877074269038878130643602428051390867672754040576180347377923840505553937059605482280338531064577505273083062692357030156315151185878857771756163820786789058475371143098637275158118501281117932329051798887970530308233969052158391244098420219647832817233354658327762063892895425849304682971053809318833875974290634220614571225571789144492247694407177907141242652557510260479839380106690045208211664963449875399015821646514254276861770483863785782225337108484708957981746731908033740444502965997951082256755661113412707372168917510596882677341419857208512574768793459345332401906604369086369062277614044958585990871414007285378126107397122438226059265045849187711476199122014377910999362407336790246797104242631563216254160159210011065586839594581452840998465682885864542356256615900735823183662979214833891873313234539396488109857821051475415139724843040249278209386378831491125110657916824356193253355131339872744770508340027775810351182655932878526420847124631395370020018600385420189923596513759989359612896829038077912833014926575057148533872501891255566968850159121098933213811256929652268914008619048085374964797516369785239270329647777629183202040362534114378432752777830087425861716033401399452141070017471504104783669380817206036910148542600626641061876629966873509993396011228916491897077817620043216664975085212628946598396146796258021425733798725621325852168386011633314486874743565237987110585723760866667391367646349405442142585582445171293663362391972903842714302968725161921185847526536862495060700647749861569075093792276052691313924671858357699554775456363991038054380143621521496159062634255151249589911119299679201007561275858010861891941926551550948516372169354845407000167266913754235870292280983844584975694179939996898420496635615068116875448471285622144308779324417960286207086095288722912024757087727768603305069903388900885895984665903206479712808397219049316090890360945641810773819823965835640782081864787083137706261843379351357935270424964834691501338333317515760775816517503538519031652339883078603122911941241628828023604179762661701739937373655906662667774763420687234484503144715056657462018855270446531444406239671060842179559638357965676243555719634145272245815310352274587301913902269697209290164617525473750443732694437891978332721352447657509645823780360444234664718801663805970720250083960411747585456259590635938480614002826171588979334698001928267211726885278101658347270830899357391365691230633786938489500796397270752756810357620083479138387518230239190552697341837655444251223974531262646889147835996673203444682934369565700776993970448336265318525296571514506568979990503013697420692574907457725441438603169446407276179160789499841570929234110761023876666994365292785696544357791958423615243039510711978538184579460115460646354975616648583073955450013002333831812984630506493861443488559124848500408018753160563358087614026650522215347742684735923689249235248136100523751461147068559069056196802450760862282578556918515613163829247971854957502210301404972102006553965018350994296186106461348631960097730726976555090905746789487966294055827226108222767952061089918542214639063016703530057988071054793629149351627220920209013203356234640147927397271671597205670515516150495090128146120274222156762192138720660279050534070493186622538844644169226148335614277949841161787304933228464151741684924435468611990837831623309201865869718941600385367517575744785650003912707855132389694919951631036613240566790176902686134812632532584503383670575282835512266591730159094724051384527565129250605866832616123874970533998152861535809930549649213541279733547943522588796045799247315359508643715308967191846607052388200752205679441500849422382279760331182160253235009944111877254533383083268539158311848317415088548716399082930445368313886586209141821827182654864218247323921645946254960252014330407350960988064617769692703677691118223833323264477505668605612192876791740111491437463325560841622680833713011306968020006129993328308322612018731497331972689696849659150474951078445415726742307279693201413757460511262023187531221217976415644195992794932694756306488998920652977033284848100052802017510973580060337633777711977965824218607580989498082916496862767331019004541476531195975241509648229229974998815321843088728495549888180548005724737769979407086133027022461053124798255092349210246052464713829291672402480628921841841879941042704937795796842129115945485904257086443373999024432193619702816991728916118096940725969287852151208658506401165371318445096478338954583605950702834511172495281639210187775647705778298791499664349670013645685039941059213084396682824755924857067455960457433647663556265266762475380329756859683985817598467900944336362929873953390468386405570267311446298937572358317129187037955203764044010731181953526674103481682046301652402703791758718585503493281308989533573540977482606814965544967900645327316408047712822166092417785485182062224280230984579500312991098285779681138335102587017332744539985820524192646627894745832073107212682772737008826289633761499378329342966642522511885446712811674866903511574238167444438984725399339136478121097682154470260933433613798657510362117353431584620572532791449805995458576126945391826906471491804442934891700674678728627806036529134867648622893340891135391546520822509041293773191837292560591997279353677942712833747155490316392580696547552814821793161330855387889494020474209720633626657048486736457640325408777209977257012835282989437860466140060455905220053030301445937962997417644480439887417196792218900813294771864197969993491185604783847780219032848022369794110288549095718803723792541671999195158317077033543154452979532742623778884758050329000753434527030280272154245945371469680201720330043335252675555339578033324671672610857874015725703371594506481705433333928939347858359025551648449745962884827264235802040751270307282735081811534341888920096103236094200716871771298917098164299172220844409340196140789937436755733171301164959594759683577379634136623492936091970601536467292233286958862799673452092333505938561974412101534259909440535947743237592728376554650285691054683497702680418403986731725806046551821097356830842643216618031086487594542987722851255398120172378891764118775844349921204979303689586881272477898243979739655708037150842288742743293775098439674133541985878044670231579151405300669250962076345677037260444022363752804108746380730910098389102694359081343735460415241778658717045503345936549637267055583697498524232423643425143787610049622650728366097569982086861086021442087983448980923977315028530342608981383639661596277026227818514027643469924720018724940921646889487461319405685093209648430152901763118888103358858500329293264433797697693095459786532274138946046990894481315111831958399042431652814604946883116246366890128498974484503430743363031302735463898283541321631983213388464921029495750709390022841445513723501714606081460129223193854167180496411383675129793887825702949473587460370350404161165319292317025968511999584359082233492414245107240050811762963907287110304837875083910759570536573176658013146989248153949860105291990536982362093060965861356213913152766546310220157488156610923721306948010024643823783766740147720213599449515674456772957889897351541038675630966459483448465520912940081930172828056320194966133850873813166585770339843293151684964624399955193589650114195235222822419059587728176381158474058306822493754680728320291420025388668197096802965372086434288106660469293508178856202595819509419585004958496372441505377509518500954335787286410748910674918117974373496443292796127719261935238902871805091846629543248136330220970437352955391174455991477969268069919393939192741308014434641949222988753899159615366046726537246236333691760926665451717854541255176762277307874650929182204509845000986243725003646562900137699563470075758309090154042345636480358021793825953735460248316168760361178826505991496665523144211456113769567162016196902718098283630843443540133994620779303356713409274439052199359970236230203654190689629634662640833533438433447271187002047855692896274117157940367365895630109170797267315081262815648844009713462418032817093557001546680225304618238004330507293148751194478682177260034912030912755670548354910249463932948601278984053865942041841946836723518395691998634399088278916378317883287445309205514175999497375795720242327901869166114902874411650491224938256375284769405119678229417731573656271450157038697370158438421698055929791954150452361045156104873858144279745677515205010133663031805847773767283186544044135155861653244182452128080982287016088441546083170217920249110041157062800618604492319882225233384673589257985925205233347193478774492611356696716364765309138565060811008385919026438293863570545885861079135659909291809616363198926621508007760721796012473236322542100762185223396274501882912268418825700338818595185116118122057533328227514598595687978114025160287192433233212300462720912117367395280481624670318485814879639107860660183944410076405064766398392571067096039397881353798728689622161189929830484075953588504891012042842061099380309817126048797561734830751496472467614847819269390334156250409908621568810185072177390836313484842383241572949294026730136381065129949591004875945752854148777269168533208456056393219087495802494420043144836868664001011546651980460431606983527175598073601581214280638140823674758369806148344803078508826607641847198699478887164361371567108909419966136620633613800412473163954322181308586495290284871988023401210966117676969458736370527472237082209306792857453680658589217084717307428862782958232872685048555676665331190997430235477328292923865105470289150981073316873282227576150220407814801312714003468947244589707537284757545988703782429748891307947735630110852925974071205699961677599744908677081652244136432882326831277759393395099014922715373062358439440217897211469187559457918965365417015160672707783338090970214773657223801976785527253756434711374752783117401508804314104048052882211623853055125841570505572159056502371635997641563377003001238968803215181976658866159101076262253038393725275147167684821839996107637375546570222129823301763191673980199321712455173019685202373933501526400752997912060369672497572767919366008131407561624508384361957530877374224040439848629394965290325914029711234329722422551293016123113246599844333512627368874708283274748742118168080346676550668635110734979190663459834861928258018167176442757594912104284963739437434742882138854330065319028072264611661770382324026089979168263063848147080073869556772012812597692238866665343289013445463333503531552226142984446782038126366528686252407559965265904825847741896809260130499780182131485162877441537335909668633328872014963054218525199308072668568955544214169978879836757277774876548184793505565493775262712634405642075968685071905422949672710279410866183227554476102825892668978351382970498740248116368051295593421557951143252001060756463184055886728216914845001057639324639159947600947369129378579634189481864215934215899676283511366513397287773751176808832102425053936526253681695577527700871311728939061481419000887615972378813672680338934096391555040290536724324082818104857417018485224775643924810001633996473431225799475296102223797466534898895933256710824932129479318828669673333189591418196210529353379839688182223143603520709264891159823814651485338856978242595711455389261332201303973112475599603716155023811092281054669815371826253725404344218691297642468228871510301749230493840533933605176985011490278097718810950733834814462165796623391639661871558603069449603508556335016116823658067304636598309219283457935864633044078429386903577929811465594522920260061821261990766081993845724151812240360274717649499682617658655525002225589721920746782237997251008381251837558417629846947329357064782536175629676091865910263683511297319219156952770161639459235203872213718292638932659689214574410016561323104656979938075473894696018238812462067590116305186581214318067421189206059565491577203582470265985021216890791038617512432955582452064742896023047802089930935134033276033087544289496738191703534319815972854922906618355845754945186503030249440344928661034768344432248372996570671258287509469832203510948375530504207555648111516520911069348827383306209708537302138036575381005556289752462173496228428897117532728620595485142482250990437159233575155248159390660137301416124738111312431552038576040529174447448875552102170575614814931759845669769785136840188432113528846372619962586603136716029786742309282208682964641073544658712933994108145231081698427883311418944765432991164712878971912989947118695473703828015150772278592769669988604227084709842560826450033218003105169893152416327804602621511469975316999586078332027268065699707152232803792345443284861592387033703402895324009922270993448203992423614973558606875169172817239439932946891578199960936632796338955799236583873112185768735265848221704746440293717469302195504913727666627531483067529865170511731506445715262700825603167611432750788204076336475545369433762761746070752698007289139074842945297255497525107994387275125649203893494955918520995643724314520921844165915006608655147098435631725371138065628030845754985475417191468994038456833774379995792908490351773671208784514600612342996502010691639195771020418568790212711281002243660959721775860310133817766552941516260690878930168589536831051675948447253473313976769339333403439532244487429754092372983820759309995080864734091778964442096940920849053541818799813214831599062435566568545448269107862417707848553828706369432411796337074126465113700774748759142486144912786626870646567216651630084039932459559124717736613808049160109897855680695094795720611516251522453011408999797798907447170229625486113199452286837309587790320508334919326495434598253423115544095874710210864885298289055787194108234172773898314543382489344578338809207471162046205465025921470043997743911824401653410080579252109745242116999804083474638380468332799980493202426234738175695318569389569492253290863407727488890152597761123527121972712310519804358727988293460490107442092679868484299519064470142499371244070054750019887323463864046181745705653547873018622019410185988385560294032451197955567637347654340836416423672538961846703662606793403260711652937144613374503317167580625713366103635723749940884905771775141635853008938363319649795170213054586272381948862484323218467328492642830486877043047224990685546962849296056871385856846316159950872307458574743247974193577942994790114425896884378615982277999944424932777347274803557605590109992684086798914988500621779271954186590855809235832914210655673736430839804591830455933139226955303208467591972111387270895867634655053591830674788079290072904236954202024912611369654818373433740597893937156187640791193186325770892592432073338380199903517428352252603922850517460070825223843374594417526391454427964098756298552587945200104577408211596307365982472591022922434581067495237327122904722781565038172435766932321879887002556350376646711314375259734886389693568690227247571130439840612096741442178951999235961832889689282465114601460305292709730859809025208851898361339174676049933962002642735062122427159091287360869186218135847588613007978331674112140420157659401859062231115562920505376247719716213271768449947069464855383339664998551705483035478746242635508799116689370759094491444804693837306722179611594580409863528492608898597007122676517135668362921354853195767767803997377837384610031755573000234767299009642307183934654735937085436127321943542008791378134905887231981502476917614000634276972529259751627769865492044914150154894553818180568111083168706338283177115966409125623207588297602063859982807948610134542997383798331256891945587352012540973527422766976652743624585537117716780843275342939930692046130142427300718915043925400906103637160014601233876358224910935466311362889328989740531648841932341094647370161615073019115762404518856793156849068540557800364339832191048511144377252692145344052265667332781592223649607321021267194599034779252851486265479545844114918083419341796914292832961698019557837425070987532425398633555655300051686315810108118610508700108401520876726312079439301783294779720243164855868848924565995699766311145715100701962936820743853692600970433038763244630235974115216746795898852326794943594281310679850468584664839615248357777834186793505277278083933486035583419631213618462386922273170346392804531412006747244425360753911609915140754850360821534237270156988712456626877324346585792631783296279686956504697134412111096127965511997381374203318684968000592789365551223040592214800067254529646074157639404609885254482714862576685311019641549806641456400256622770541417290184561069671076013726515740348218024924189753575393097320101572143727098645796373136917603396802558376187946977914319938396623642970573509235314291626277595456666419477352937529099122177213944449358669629042356947687951107707281917345749554604492804441539686102567103220382153195761108629352403757508019066308243499679102875080959852694442845862669202813876202636599034648122951202754541237468095957443433721216949910383986112712684250085414750527006479434864552298395516383703806632945432373184716678013883333269650245524665126309657378215685874673825624211512237283990417213698940040836521670997389924517315258781664022177757050697899078876079712783356938727621757377759937654782546943836368215762014041010089045489422268118724088852904908978170559473492682369191746345618403731112192365826598002444807316591583534588748977219353357322565853096527464779749879569132174775901417412191937126493722228144654450706854836142105872067425182877086329560094346658818942401291358187831518106625643202717668051782943871524228037121950365632506197847103306848367303317480151381160362856327957042091652431100791399729693782979493848355180096155832248671383103410125384771851681669094195656650466938588564925971361089155592700291209992574305435693412995265359483861777467110178277830772047980896245115498517695602422610189040361893860828128740327285902976568796239238561185525512054852677936379757628736543766472990419173005951221414250097826894280706501062313369374626612589800806289632524872816568003659677019828267753176451654561061320794747331976907217513423195744357310004456329385006059782679186314692733653676258816820603699926484209307450764239293677643167788626752124848151868366250486169556044414195654936634580293375067316943039863333562254234819719490159599426548820385679186869169494962180185606150661354769637731931039208996178874243918877191676939044546970661003537562353230730192599078312085850587268068968236084957838350843029886596934335956262329390439860463960499073526793153878813058039753325738060277798721421174638401074201364401705215064096111959976308125818416515698743002084574231321436330793480420595340842282303271892971253278227446063038491037489543460804588861899851837506734224097602689548928024185584146576214071143352460740118722135816091849486885868083676445574306436203286836570282483653620001168185872719789857798699954632779916337299967865010731823012492662747922724843870988186227110310537713204282027105973927425142680775402256397469466974894056862318957870550404698349592921773242040647771898311551337546256091082714451589255931864508440249956181395015772494775523614522267546698213485714776892015176979168073978926210768851804348065923208943933172954595865738440623771170754524803902006249036278838060166933782447865794622505199062410719769464048152832472403636323183570520803956125892656972897582060694257726742310909308360423981357974849473655539511103003172175356741923097142587724158652470799070428560331801296890846675865428050588545145908414522548363778251994976245276868767062218001032745417455550127179576602979177571681967748985588298583839743976229249014931620309896724514758898200516406103793332648703569703276200440878106034140050152235662712926233661368931383464121707420144863995108552803817590559686201458698578581720001010219863652586328792309491109212548250721095093783238691617596543137968939852760545960406357974203864476035675986976647540665921415587323869863983992103358014737187660125664781493202999142334533095368429542311214412418762293185546213378548501580354817060609224558427411622781922732654541888257481997293614676375849994625467540714512552569329942728317211624572921738981719068981169912623290322389438633870845482693289153207087519718697237319219856318851233470372908809473548557186716989553828949214759743906441424009250380760454145731394285643863947164675887563718191872153882886993028855392786033984762539541704961616183140519077820914837588976972658070158488317685237841463151549509943417522318169983957846614523988838237613826954254137035239393783368397908254867530963655520531595811675747444044983659930028251756881698510872591333638147740527292088372126962090737780970202254529673140819715321259176484379595498616679074322905502884426497823520036910473888893058302273241171151986372703787556543302820922269001935695218794009146553385253424635653880793347292589390786060849916793727016526198630064236625450949183002235673153889848512854828817572980466223566772250606126978699856540810705349500125286223331038821682428026624375273657494710614950556806969867047565608241106973170001250642476552317675765343275422831117303084123382559950360189977496031266234228714582481789442808376133312731300492354845329324511085824826357809434504379427389623396155553233177451912693344666510631875794322072974685297253273061825612435074050930493772668433079128315884909917008203546463181663794667614409657962293871057173771470005867687130687287581767143102394987662970455269897150609254865723908680875896980569821698254492143118858621459106544521088235433357554814166277688626022327781923089457735476368528592641637462077471381416487590115185840502646518834310283191654354019355409057596404160197504509185151927148273803588262821323210973910210969554274370153618535621175278778881742299661337745443533226142035093838664409507916512187583290941407794497396756122787659587637458549983377095857973696245107243101127456316189744281659663155488095689490093806082458348305660202538349806457206569403695568066952202675618516164762811887241390944511440560504456432406684346186272953661838610891426646272934176253814942092669720744495244517777153524121781127156031009233249683041444469429859417350913971515125368298266662471070050119581677061269731703307816387193072775955136995293009943996041161143615959225619247712307165716514850714775377021803683377342138719418837519727523200430553047029492293197119100089620767691320317389449220447426050125933838128587568632255577559197110879107298135138434089597490336708579501535691008329417491925151515018583887159918509452635155628135113522887545832752092634896570097485296319890854908596129827561036995561225590042203261572135193337912750741086868109366356265580470100705540385590947330800553415594683389894316817934406891926512618340872214190574880170740180549672300699821019401973440397471513946675923532270821193087084282287415884176062026542300829989169882431195989882603492502977006166996913934589732648895965971135373505450425705688680986097253153342034063805040170965476197746434816110068643432006697332546243411065828591786724170948809754969682071443683736921412697057558581507603979309758433307226107751210748209557479257573877647915556758323258022228532529884266121898336712490152117227783465358014968437458598746674427023360267702112210408027064642609552222719246116436880781678036708471057446430623360990125506919080357182464821484161800519186506556965737202124981177400724317139971862917661245643803160405384147983414439798630456207395683020619328572739903186935396672430676413181449633029736674900990751761294951369535428947061966496348335028361268697971482994647609283307593122509625546589787815329060434175316076014667223763129710505294445818703106211622338874719801137761393713024691172305694543439030529394751700858333708394748677875759071022712194707466440161316345062406166489575220470707501420346341115743222228874376663768122782641100621639550187739604022323921154282268274498450062449367693106084780905905627782573324135378758845221441536886214239604024042439896327762060021907585094935100443498937202704376475747740166984575275610788162555497806081287587336807457775590233782529050918959981215130250559970388154269281573084559331888708664586343591459204491369434944061721120746132961531875535007497258788338172640701386096009852602367477872912204071784334084484151699571204074810637233053495342786286663974221814123511477018740172825716327105823812960505664285107574137414479671498104559908833524317395333292735023533232054329631817451802890009147449796823228851278064332267013253626788252967684463859075462035326714085941342619167229428451056138944560604352880362495296463914715164829052704325026533434824369629910242255281566967051843262166582130962527884542086434733875327200782048426560862393656581269197788377405439092846678737801575741465576323408780192924109642297974982626428507901566741039615319528913983785164893099755069956441586107565203373988722825929573319360356909849623029688909174802381613007978253943961391335019334017715125684691065067586912735064308992552711995150059951927779283997724415324297546757641929308855191172671075941053513413751396727871360070710154392426398087389663790448915543560878602256242099287466042784481367005975815726361955906900369155019188513215763190688177795657817280500606989797733962649877815901672559379097050845827896666069981378318870773066599858692789446615713011820957697255988530916464419962308138562723792924929729428831179165296371138308759812947622118556159315131224319272789246488772851386326528905001841080172285081149389352115878286789194783068578811461256715283275944067431908867673923349223602243657050724554254366228177391812889276417064773225956356327294406042085013449704377654155183272236386489465694681946932738216819772840202323521059757192695480923025947090279993866800244862061043172881035136418006772762467118252527736489114134612676803566189752393072795408072221069624695586372296888708122137015751230635199303443396897627520425630338433421350985007623588551799355905459313846173581449750347465019199330531844988175101516978164733441382857860495755201040783557104182991436879560757201729595526596107108853121290217038571470820497374475626035156915221515120167321730041693749375115457698317786481311222107437836982377363946082524994769957464030800513769374489188159002515543426750977497688784056537765999788902643786697474196317444975876658602542992187431325111446581370761500614928793484995096638755695127735096486722779851448379496291504561772725134973640528993798661549310815106686212162535265792612992404233039188186888894728826874363788635102686002728853076685103955335909730997593462088916731445390318882323129035248593302958866156802678215826459754563275986124174263872494233067702296477867804203822809777840559576962337473945363032044616104748992296501396238580736231961185848863290321031723715762246049189643146302676343346546898685608266352746986348675746785434895060344870521140186096173614939474261225791249408465596138232630976646145890512142273593676331664485754752671777379384870383622933166854814514765307313113454152886086632761585890559421746638860256254968815169574779949360410214748473790513152082437406544945957398408954134261608704096107272772750445869274821137342257720704657560275083956756353611384269842053732000843335459537781572640038727369956839499205362888303879693465911991680026518995630092208893074557731774402233090568872396351502918180752061867168003321282669380570615407253937626893241370175255617593425296037222738395888141367792869619597570814032008238178276868015695527383170846709860635326823626317806001868893321808623405886644948116775997353523105424420956153316256179736308587938271414514625373497439977023418294253393640867195391503070131643201180521391620529489869041734032069985726184188158293283338506635240161885858860017377281617218139378925942750339660042658438370659273347864330415916097582020347346470326022307898291759207393143329243969810852601982934358592133593112647431428600095540088777012430936042302016272331562386930553513915761340205432090405821644980772813048775898433919384956399372213925974410617610959842611556111344638618047646162902395528405814925952880746906291821548428550147580073403196922540201882208732050497418316590473066459730479794311224906074756903319372400230309181906999448142741116484883320584582821538016070217040449403325024047702230517854193335214323377393098213784019435779458614933811227566906849331691306096241028614631561685864824557909791075741405403689144416629774468917038460613178606836043775784538352346403698941236709368175734480859806237002237875270820317270438791933341513214873819173768218292503160557248468630273553934718721238614848449525627463659115060997527939405249228143996650518943860167510660124632261505612683999726485347953876203429857825392124914866525560627390110484931543237180398281906939948343631057805189932598424286340979287869421584312579516787341988658871293139566577267293829811553433388273847525302082694422957312125247512727626510412002282337570019561092539629832987325758627071742122910674924328885692541646599023325376135005429564461903090465227587370459325313070852843225384076749296616296143820873082897846617323780024458917041865868949876279429959905489732624607091068014801743760531715465362315160273660137805841126543164112278676656595907300240574816246965493592553857503406035707748764765550759240111569325539262198683965620434636235001789467777497143591629767939227702033014880804180584953861631384447639300219055294662035388459886988953470945169913966590273994668752003342422292152634573915723252199962635013514452081659723443709608303890916584445513140176231017841366545676622675172310293762748033136326437098815653126679503054038416888247168059296074143467757722271300723370423416823311256621191392529815884483462223694541964009249094095328229987631406334646272932006819791833252400454841419028086630345713912341625788621912259471392578959181175832525734012374672840496146519667645846905563780023100398660416736409779180927824384882914633949305405267476329663994607160726491096307892371416588741010500368564217766545718117311796394186248642335091847451307749308546906991277564426462905567888333442037735659857960396813226774721010550436206836974653702140938251070923754665500406511724207587337739770069852119071399529337876979419168946690409764094824476124595681661884449648196495968620787934865208504716451862556129791345393621910318732647284948866234115707653079256741734498114752103232166919566880839189088629231209066712930641201204100652021591753100448032774673671924548258112003579664652874741997607241848985780178416075258161821278777662537953638962152990077872444743934935527222432814533832853755869983213925097148628663104550607675667188418124916121371436703483650024780360361360855188572293493810266837549231494575806030546688157719741994065844384372114660942818432565251124839221712003268330384378732037841977199815983044665277785139740537557657380848308250145702781665435878267958871109668730929227400707708482451678767922580458118347571471312463499983136605784335259517741481082528804352944877463909351403864073831244981204210579319021510176667089657887545344574275619115551408475156125513097421898809231667376293726072193812500123848606533617631956453999873463666053023160380963495687199076891886164426432691364658340475542718046597468571753663497517846853357171693479283493574431426794525233697703548587386284134609744953354970818023358486489860154957317725309763816617714029487038497129604173182693485005102993066200397799827196965233399842145784335968771644128068335635586133003657792870428878065127148905160247768959334438421205470828353957374576841653250208450852094377642169867513298427605101650376921330058249528616312672010962542438192968407975407955212306225130903732920299430047010939824679152387078920787234473086251401844877159910535399065489728598112631033419950192675870004375713856067462869268613322005803125705517617744053299629109814841280864569835570171730035644815577390258575349404083607194290946236758493116292192367429788229643209567460031811879525662588990360343318721798495558009765650305448308914168897741368343876710819368865860285044147031944240953676796085661776563275343639527010025329011882843948619896687761645949469485226397976373170586365353990873547077843397886535387230578266319907759902616688417089392686035196010169923491651471692426588647576786570991062516417295630915384272293582986534018284040899730270082969246173383960238970242186677490745879116769591336925960436482533968306840704567558476457371298429086128092229127632614012218512402655029691036583908683610906475676928748247121581575697462199078005487301273719922490275007549847145105960521834648033210951512703099018868348044642734424698067547336190597728473715855573792635687699579127701719625623723335513493719003619724880006695616360412266236682835431384542594200390884034167136477158352096008088254824986914494618417469659750681988785906852223580661426779828875778242776368161916792623217605251301602605578588666149712068118115700193504609684061452917203404577465214639223512457536452088540720004379260800397214631941735643372237284011641883989430880143449885970294087735186976930232528067114728422808793902908998332002507280848962275613621496818439765105066830199647929383577241297480806817015861587336000013576049142143807275506969113555968057179623703594235661581125646132605626964324243130035997764685431409536747790789390207674707341590408574012019557812669390527372697294724590264672871226906945296710480617705589012425050846701716675040814800039258461828351302914145924337456489160933235768765002251078353891211528911404209435410712047862013803921828326601664818931808821379966991352246128323665035509165225543602826403564679153323425849355925537271593547183656256903036647317431752238650902077978256490335528045999273510060479971838410030749334896132387518717022364835362355278013124388610355052833184602176228309422375290818686267080765919075597632038156167036487993404441704893913758501337722341284466929081536265488209959405460753989894344941874200082533331663485220588887104839284343939026732919113424706898568368593440667873131310702190465177451717257883700672735371468263906278142992597900209219618271254714271817268751012695834600436021504290002651427463108518223726084440011289678764185552451901369915862039174036010573229011735522533586997095831146051548734437363697985236542129365828372048291666265691160067445779920612739815300230729991957086448982410255938377983901422171140503823009346539551750842009546033971336666420052048321783831904639735091755976405696874993963938047072418534630352422742403156242115216027572244207611008302402907626948226571242234003509405959121650661394471537333577410234333097109442435039793696754148021598605863321513028862684349048233867462566851928028373457854949613320979174238792974031769125074905057569433174789710274937683673588870781421968873082421448611891809979271534951863496470690522101213755329333484093020488938703199953524929364872725532669574645336440101548230056040516733032120081549691405665808244588172558164250958519316532842640882159969595089797980728777932668247642769045737512424714434238880960975344908075874359869357426499585001809844779598640074686403758161644854745771407133202322602274147863347469911712241732547572263182526280430383884676465949860074160330156233847405197879939908175637265799157718418268584569165484343947797517989708089027105098303158910744337285073114812796283557904222812306486894649735043992107277824683856840482907694846937615917249985953279711229759718655888170410252316078302513864500394332410144056511404961077653521988645391802317885057055789040669480313979270767218601217164932563687513882527847294439954444862303086777142922854758333913018761323958913553989946283466221038217364327912734419611116156031152344035769072229837621494826585840485504270795099411954860439096760172690057455577638780948434128317871330385583403291829556128192160404870939022196015878461540825430239739411891773186505016103816121275233558130606350958278260244282995624155952990071353573692384649435494741050323880614309260367951492247107491754692683135542338891197210752961616140961437297602946977133981449562148247056398661430100431496823109688454692682700935645074251986235013509866039016226827096487862339886562158277061508168382636994280891595927502452347083601408847494073565494559418829395579497818940356864550978706565988607948200976935890159601243851063569915154796838947168525400631749444510900245854048752048193113613614029543181809310664047266880213205174041072027219860861883307631066004652255436673780499733707382246954050743747273123374300274561432773232529933870078320660831413397086800718183735147634750570496379542138639278170278705931776343161836506935370126686658583630561457099626343806953065609591889641252384019826668897718338509516808115642398130654168195652282003144625679132547106412689195213737249151585689859801723725827175361658325853848635996662838325215245220645101274084018851133893326264178865846614495260652875521386661852698090607274487398284000807532901831614750695466913364368535207259353805908181367758937265993225163683183956699535200620447213236520795247169869007593718020697454050086807890420617484555634539613613307026775677222116898619286464144996204329282491562992642652972141774224682488773974299486488799730339823569895298353997759202036680726237905892696454164641203747317319916036209085116052237278644706266612668277941231269172368536274838653370139222153667606132907494120290780790937224344880971795628053136310191247174809406893941694261287556666362307453989542236168404144944999970048979649823591135512021085615048332806515419287928909518371270435829328197683520262315807217042734509750800299806686034781172009462164518400512175190327522672807012664330377395507608215492595200098575030635346586396760558575718469383994010737409264476184529832979317445714492000660372691990840361442762203649702932719394917207389385949138854340539543497661262468262702670433353265843785333907898878598065334007896792374678887180612693339976287623452951624856239595737210039669335200463217525719443565561705802600666801063403986455352988255519577576795513071032044803263703150633067026647343605596630626219347539819153564392920368422416515677246775284988253533565897844380199470051533316182447891903656976295320801097001967316570011902509539680028513672583891387830856861850638799986029575397652746929729674203949552159642032258358228952558106043350667180516273825227021023346993273789293994676081022177472357983454650517152598090444494703226127205968975876974675926946892706729795448251803010848051003163613635638750475481294865729297278903811093275186799781041481930240542386565194721196727709131402090230174071626720302148059977963309911693457074191647425546916396503772110343192567099032741295260286564738284036339774942229654372250619830562790262297837690953542827873759290128568515850213541438678630561312079400848124808379476642283113256779186126704782206152071195200046009973312314809555996933149778727851437078228922811576554106034755367572368674656495785471241578019309918643577835560650425911960853219078288728758605295945243603946261210638791371580742509405694059243657530270660867705459504590522625005984963416711587057798488600377892867649110085074795640294905753933271838536009884692105486062140503465560293280937887405689609069846966968898201065251269411998454996556689338822811111777052072650870011060970699800568874189673039182504206272604429292856216687127150755919267922547680979876429741871300564914375713482308006120311296275946702579500993166316973994650963607972365222530903225045150763292985783570474849017591024631460728145728149003022453758700119069420879882983372307667106188433320846315359364751571316757530432009938057039887815758012410333310025577107653861726277717292610307624645985989271395718102016960248032963885610814375769076916347639520008398359625417159943183572491956648701181807389913450148140529749835439856345624051866831015921826915962936478699287580720095797103733330092538185641441956084242758834723445781096429487652835554403690958849650099199787262888484213622294167099097243252793754308102973870615863720000483380013075327829534964388199653574652805915087845384908570622678048424968004329687761769674871642731241888451605605778570465253627342432648143592233186422189791634633795155484794475777380979554900610482544105703711067222446032424783015203676124621110333308890479351272160033472662908835271802465111097413081560800092500115618283851290330803997913816799616623062717419630514939987729707269800431701009776712295340352543960916343803863899675993469302705349377446636249659329199850418021504844936569520137003053751375425666330373695859181430640977571208954907084147352804477207952901539386623293453261479837840843792937607130647255363489120893776236800501283769524338865396815160815633260443253765832741609779767937997388253088059872535152591766109764705765514932989137692952411513594251467161779506899393402594964191118231686032684954482942192954892445708405725485397859581199149126476758108322891993379015082074116405398977807493157274002659669022761138949826305743008707924331122136647362963375549274369526503052003641889465510178637723531539758525741889638446632660428947743367592180689965368641832076907166702766679896304013936907070629095719740002274849051854202257967798358499181895776439762114873661163679738283817646893049520260772438702240359153194795401241230585026104197465551760742845312884268531994535668240655057669865259975662075902881790385014231480208393416169620599727066801524552123544388327018374161160478553672234738985527913053877373665431231611097574495419445496025325480416894405603019683144912547133277020853591186015966718658707295131414739426977054884703087587370014502529717878643151526627784868823982027764965661873295996688872676020118417913490693919230732683485811423216783634104242413919938669167102188880020412026600455764573822161174729542079974002319151193888136169337993832460200063683282049019009827719091697435901266461606025377082535526186367778348682617263406659313195392910501924158820024827739989634836967254316261386906261341498805089222916113513043798640702628742185138130974592412397112138127321743310965228668403636840608409727315564272091742665951350061006781889667903109007723975842986195969770423167363460972142352024993656326732875012763586082442014752532076780969014882472299713610731373386633692500813188183683573021857586198652379508906660465995007372018749511039056917329670126666978567932331880649188215910078164967854444578073211273080230358585638551585269012439497552421922962759579834688582645804095938949365412892250622592890445657910019247035764738292866258177866169141062589387666008755814344776076643884644284155658693297632124821159033295507371652996647174384033886375509590153746781428153401438995387216763282331276806237567185121846958857672813201269348510804492232239237680507742741102863955177872950622492837646302273893433480388008943944218432831684099432969583707744312545873924689236280147412289716690299291082371498836821790362760460131521520518969124639069688948974263117047864788751956252670869981354982209398052272582355234961875314373700412496003217412854707715350188970079851541134175619348449638580271912109005562873733677881698136702016473773942972026460673074465991945415645017659643184773911891050947551391624113248729878908586286461982608859591942764458076623826955247442700586745280154679839296960677744658766287562659230980067892946573178662589917860149268020739687632433709024986898874171998136995304898891519698232487847409687834076090882262390361130756218012981238263028975092863291609394758108333466910224922557224209660650646352508869494741739151476470822037724496092091022289246006707059224037405097625994985576541670847518423672379790890273422321241006007570358131157369693596598650554973027396533001046217938037051730119223438883247889354100056791777750613285530570576704734373296120191857795040578983389251048257225041610275261660554501655939065113973872382750114115546929465753874728755889278150499273209855165826045695065240593544354369084903786004025370958318102701213580190935442429555005730134903822380150707897020535826778781703749136156572828358741375897465564730978732637426546680944693749957874649792428050322419487966729589383463745388406826123244572537948471624320280045744742041971919113732699033481338811435205127521389980210807009342460717942271951146827438068220680242577677589939640666937936416701115991138936370867913232901934009066810842194501285875401614751874295317866346571978667654156371438862205051703018514773953522643060181020654176608848888500009469309811019671427551175323909748252636761461509472858633859842258430849175584784611146474989977701334630756087765639998820876275759894106614389933863146047271153456504847140952109283760786016228618597696595379099730799899748133715589644519449451104962436692522225142512921070883317865428538351700312423957972807643214491795906311426813463624878930029378262621354884634065499804636424422923289966994468344069334577318990199672024665206757508879190414159894090903505892586213498397370330833549526495526867514053758061957736541472467137753365056463762293712832401558386826976875715630100759352399614124358174657172108945188930395986684345582787798264455000772549393121976844580318220903378346495785143085800714388039803561228716434678198814679395716332915679599428593568652903832822813063867222598419083902592296929503886026920626701627629076621296072270153060979212392774000270831333696700378236061919677162150409170468550705938597420484363988462166854232546342044126187708236343359069230738226630140498644562709555442763606374223280045470140085257806074271489222469837297027055838954154030559499579523707970627338941983547819408347956821298038572954191522912232146076395526492298592366568777742475425856316456484086902465226859314984406914504127375084692315318781265261811007824284371132130049529666022183445306314549347076978606462647927725114369912154174658727355665709325305788310538705921426255609820129577345580469949438765088922050412753101803404004348806586519479741575921045361366813338121317889025307171108048434737067935839578847407342818062427958608337199517286058484977284392988020852466905693310933506321334675325081741974803184608866931949703255967896153765242026377519347180184072169318469382063546461694677805491867031728295736566983079919744251185301771490565742285396329278947022434313828840094678874121431848494386059793065263398644304892361978161109137641828998210279047474622780854753595104937192959166170147435756158944130591833739293701407995361352306767612052868564748114263518111471340768445322880746060479555934867281481506234602738381886154594422483924155797653779606646021536084254980189257247696865110113463373260788850273868270571598478747579210273711066374856730593053075087616191050957350355349321208535454779754521110165739294330516906291726874210845553337507598610438214718567472626397268247849078431987459347082111793987037472485760910522465588948606823616040962937254186505116010264353312546716302743182608442081076202523377185791656740479246432382045973882222951145192337182646005132323605352247484026871050263034174681578175604309406742566184919551158931595845933814844511834696068972768578498814924138980922124177784801612066322848846129572742661962224627777514281651097982920162620979021777696269415672563062584931743394045205057669411941910852711014207524530476834856647025060383711638552361790516738343499847200599731997499412120091289471258613095172203065769647750477843154480305099142231799298469554327791318812329046708746325556575721562996771883312638379246309736526511663735741336379431466617607767542129052809440600113946993734839392801668798297497954364233582241736686299501908859758775080660723605134083857380121668003346692170138353927400824770140705533202255684738982767850652843682976723283350090892687200794533385584207395864317908806014718153017873262895016084651366749509641247407475453878246502833140107303972310842640284052360165033989462588677636841787067440821901575159804861862954545386742280094907084131149598870520061786556885140523607747360055867634829245839816066551237646249822824271480985169515906654859719268761684248208511311773533217865034201111375188639814640534839959411727106343104020462074933910648054288431295382516369714796516095241267379930707403777649743260260134174633046180332117381441623106715427714141749685047857236898013310709299122782220975505802697463840708783255096435396417878009161843137568152981582377007466985912945483491044316750166639248769134048813626655682078883077714733378002793461725637289013060660709746496627636616647540600100569887648967497167823837083113763804524895271182481704020979083210010319286087182416857979291553230039242375922582873490609840624565268966733100731463809877033498409506173618217715092601364033576352372335312851748057285269575063360751406840825149008854920875322855470087540564147391703973330074752894590599502899917439092438717398784766234799608112164482597819770029374729423911838173414521909601217033769565165317496447406500337187022571682707290463844680389148983116731530099140284611905457949631452351065081784498337472824221346810764082259434334484410802996736778731184321152818167246716293569685874718553772238631319627203381640511984214896861539687043874012271351377885526567047545819438885136792199941425104643476046298711706713950004934008639866254707732808050759462113904009297471196555725266569986602614085247194430019595649382323457707349138346917966329885129505892689605650066550924347554080595781240227264840077306923082964786386441487673677862627268134235355612300135058718819565554561231410279891793086391524139424181568497066071721646285743546822844339390024360185049552457600193256370001035542989537018537474309743769971008050451467468132938181372403924484826661262315586362140790883650579667746258115919665043792817808653522551642755887699407186826683402019063093883553795684031246409143278965703368663098568468158280853110798786768721891247303401427320666059503643934002168626376337091660631778345923831364721438499897365750682641967074408067155798785586338813355945041886539515062703531861507452414977264236742576923297921317113618453561834653293588588650489450643209429250816455178477289229196695266028261171959780034858182741700883788001029663547501963437490677699494032488642660510161638771770465257153311517835798946777352820942646774466179704204237019138932267743880397317274295097543066106440105788380999671598519631619242899050553414991890476044833795675744240442312028001471716994737220416147551148272207543759600212412550209346902815768205211457183906701523762171795944222836017269000752650810963406874323616129103864388407486348160631896056388360277789648965122417039162937125862545865309848792234636591431394054743411886831674614738837845844802872957141193157997483453229067856048703149378299718402818736312368079536345784159667093662940212216888310004525095164416440327440234612248778501788022210959049860352385598946391357371539242812794273447059016933393625466469337452633283026060119317772264678445637981921026710183380779661857766362336121801414290255320738676720027166780847106242314059740381254533265734613891404252689816715906561497331396856823681742471895130982679559976478758693800720850477793785975178702708249204569514563265966086020815857908440663724106867925531353590136010221972485536960539973707646116167584002182787914256986482105074108328704765563100678189267941963110044434074622049907852298259495769040085929688753156860103469465322057833461749776532133999330274541469082596105937180498560239594104569283841690154887187906175545699784127398101485206223004637714644301156767928887811691898382923631343872509221040148308657868076694839615639393082244922951884968209535895187347224122698802363010480409485032944049053511543506088049649225841291224669416558140789097618804569594419318371188785387331154164621988518635637563457292841678497405774049654266928873738325215051511350085218834506586806104061977583869433241196939623159825753616234075131803204525974133207511223200282972111004122744516394856088140797980012697967266609449186523337654300029430458110383666534276653187176370989892211726384794615771117729707787845096184703594978316030351271848333060558263717921742843769567765412495447641023797867079511545869763785270371596072150639450370693914891396330995427761632998670406153483868010500682264084913040505407069957213812193882523411835686493562899992293055236550824257249140604668653663788604323692860012267209493980247233754658032989037780212189903857103794036477445970072213173153671885141000290310418576346667115313486152364494585674560143192786851020064061379702006865507648143442958180285020019979334395688801549628649447704400226949016763316209886097857738719740402254226036283578285102446187727816590621722447118443053241882965120026392985013793712670185705643129179551889434615205937652279666401716566697740163187285024449778459070947362719454453008610434173043491394295515781118496619654062681801394757164054185570386010251742610869637828483185558420479506404867575292556884034714101739297611328504925044181569017314454396278434133749418214453281061017604103444045401837430757094140317165589459934756704971632881300016389715763114652624341307927544776597346475481662957715162559475752914042038378500519698300357095972598769411356531468170328450452141741203634813801712280727797577148322421531744344678265370399352932952395712855499766298288183861063381144857106057257335236114356580220614115481627093310259286254146739018307102050892106784556311551211172721504642826439654261200579671008992451081927298198239447833320862397671533851773523876099627675425236144855327302155839186507217365072551686897500835975260234144313666730403864240613985506566550441403044921127112131340010867429542876153920636946048960132578720876134728972358626414953168277258893090555861440820796710020780764462736663670823595354748183405596379247234491645895566273899663223901036496669430989672220172236700701492964442186062431229981546141382614325009196906909622829044313018420113324467325785773334801610036155119769320833225527252452949294162349604067990107948170725161891587786875863683695959792437800371542016694892654109037607382619272328650298223132951591524358202672847973840584388544805177099467954533123424490839475814105217426977941859493928879160962529571241471075419002853324501144648774686577136587115860550857114700197570820786164673905857725271969183618699621278922208539259402926919469876576517912127928390429904293528891688554140874221623665819279881228765887000703364131387668915932331403938990019622116572519682016921544873252278952825530145742194713740739890329972410363605411664460402144996667464957709408002466631741082059561280973030890455202757285328874697408629167621275666348477703523226555306014229073569966606909699126196555621743214996453012615252629471012667889577053671274033555800776202337461848434020194531356388693653608691112608647233141714073566503648210329413784436353933571478797112599237064072422769490331387320464995240084667738445488539642354577764621452464708914770226673386271190200388712065594930624379006800200753060976331355636695927967642820497490920201033538021380311260048030889514595856065753799317399386473032112394902762561169931736549908659904480643511444172204103868974790821346214460710061668742119065074736789643172820694049390326945051650676849149073600676607253471008964384910173608968328679026355055439076388159458091302883450081407938666425040965291743993278191402287712623141129702495107322708652728055519712056717395910691695034396658964837445710723346158384952478599375504483367427246155376081795320611085753824808011570092633035346591015484589122551053398615386936028140023055295782646975405555225864190570187893614981480077907454809607009057245563407721664950302062228745483106711563363162447342654892667928825999980512860850840385427491607590260893731891606979514580533354865843429186697985674812540026923478744045400557380612013981184570720122112443051243324586182789806307156469003644398821561185921402193207650936954113498496274860592801267638012493584157073505902387037299795001931773337566452006244135199745171147520258469203158163572396843165735178599147252516353680611274126069139830735806352637150317988529011422976442750147140425517917148052643594840465603140223380904703386705538965031412358037534219347474866702103691459592143424975967820204214910915069696820184964717025712055962198446395222903348763474656863249004462803693769020153844450265523629785941897014038739520563831380779266237762522026164169631600686082987578769506943481335538781445437782094829305591616501145517724082938629001632884229144169821464842953067145983837658240223595745009838075310990629549739546266432002654238162194545211323041318646123107575162354288476884604305143909578039686016479691095265122161345832827201575133459038177666256477379880122262747774511500647409912859729460732298889498542151324818301474289177902496824244905790129933072592929098647113973983666645576560895266140538470928791567426255718240887007216651450858013866024014734850829039796697158609815272862565077081260326139119869174687087920913218798263315296611155020581619438902971567472258701948150824445387028729535833006072491071313185292301425054312084028133318217185836105083931685966183564808019356035425696085981505786369618622956523589977283077572503619634353910563586495080396943248769505663118817126006843042194617646562324754585976560453732081781903579492183286466173037780516088658922027711881487446627806749704924110769711121915887438506998172042556213668847043588304086677565059452508925564957777628661609594302727032344106154541538414917383733122300867001665049073096495005486502090292904218715251785394691539554044041493844176073338584684618724818458560387966277015654790841521045135577567347234486161048585722039396695239572417561986183536324130491274959715661672786461840807081048142383363071349962214242129669946022999894886166244645389080724067644688137842405356278383061789343821418877737478640860684033816864780794138231415080138243936672267985770659824917258947697969444901646078728236467297583786329461148043706901797525143683913259113667701594416603028157403237704625137803795100196474348862253705698240656897952843949330158232181890697008561030476280983038310467705264283479652552127408838731985331180964329288344225037817519330780554980332526556803008704342072968248982405702960135722862593744903017819376595792374506350794682578010538493442455661310019251135745601571119609051266577628405460498192217126820707490845439816976125058709808119078240602648457870138145876209408710198833209437050446773546216842148949219449334720428786277945858135541406674986300171400694772273197596008723986565684570747087410001091299806977263531056524333010774313963116204455392435764297838072866992644717142154398974578260745184742003676020090631018089098014103117130643664570646649558093289168381355327630986764268984108926268984910400338890855563791235028028486983246175721694424129462161570044140623458248034748135586717572543283420313019373153464117028745732929403630541232568070259131101042171877903155526235849974124468253690172387847199412925793532402070550230303206468424775375737516351104276259929373139342839378820754433573832037287284873648316752029329438363673067226650588630343299974729148350111741739576690115156908200788560971485723294746293058031404079302694329527519382846911059512825373335281252690916406317841160531902683921969697555420748210426168694882469411060645270920811009973738951910797223832253907447362440010458934838343251273536784356231227375308440643502895319382351843737865186916353044658077275533451238542362277476041018869835903047569366685953333924370078106532225870806956684490444944115327317090784557519391917120290235696900412092888461331312853167516746193888545226236238645427440706845792122212874501922202265090826995259912735906674121254334652899246482339161125873636751076900911626716106858062884653610335551787747007794873821002340643729019838577573322834176706634956046561102648487310090065008588902290292340976434934090572990561885504568064013442029325861157541431825538895722816145927716833325501293457012604570883471816619615010078056310164819367747928923751732858844934229475397911734055639647688027656891886713987533735544903548613546083747420443991319198287792059760505169677704691885155274965513011065160316508271532885335585197385652579790679915335015304551404488867780045932929592542799016754542595904703213830254834053100353680265415351838802904123127865816331828053942897226662148791474911450570389399674656389855385587001348256868916150841216609899719936595366965187171047967927192178423404905266463004793451298090373805712134225911736955975790356889983823308587948065260149317757080098719796488059757209656421488513780921931737312146115796348752081359713072963548772728226834490223384600761311635706583519465534341013354905974185067515291999633909311180636551644890986020018114181290173029180497031815711789906009725060651660653683923498334196280928197645591408166229762697997762067503066347390653729435305186094385357662173348970792357175338719061859617123261791592266191085637312296058218416209685877537089389598963802569444676491065519683121507059094346945886271916675490979960605861897490836819379524109230534242534990031389997652116921916928006981256092633342947763057169611940381179894476117215326335710708127546196260974185627322732212436853209207758813432578245421205669038818818214262649506968932727411634450009425144387538659368603493248842824082465701078946283932604398178857873556238021856951889364278244437696307390878012404948794237509046950790138410329811434316479583800112005588803472750249330287674684035813539363918685168106032136861431933450688633519497858267069067790434323531303966228464154813217732983396310385717892396146302077566921360880763448264752821473254375984453983223162228979611141762458994043695531622013942370180813672101048813199084548932171573706436761978014341240431664731710130635459229955568314638010119556816945482368689739672816647656431071666324380417624932924792111473467864323356309657818737977025683167892975477160655783842073516697735719469401944021997823711942183686760879674734439458698365047480145088782298307573580761509738150891204883347619025154869725101683650681579001076148704103668358068316223218839834146986087297112964830077738856938508706923484355529418752005279411400812812472695474212202972875695105453208422894090405136087912184815700527616678221926091694253549487417295988411310063752777828475326812593774418166655870873773646032804642885554777442672890545252254239753217308851208047525644160201357845270427143614963996973338119504356933285135131483006178161193630010842662976104377186942420918510390740186207068812313385491372068027957962017532743081928226624090740164424019573750958556844350624382197849935232286504926729478436750914291571516173090545140522303104705643366923373771805571211381731015765285796098757670313389622085592188581174894945403598181936230393601991453757593138173404380521319566842393660107532591419084202659432428072162516752861345026102516439639064872961389690799357295593422366869037700349294467274696307188939275869926263263530928440454233798175073118260924292704204880964634579991950180496732250420902233801234762199914153358234514793030355766284585903625940632154587505427885150020600404442381274638113241037179361017921425919421312967193274263142009470236411296069836076352797788335390764606313638523328980629630428743567540548121458521342328965533362045697151915599421942073058208109865284675184157768795844663304527515043598612128345771556205669745523729919181751266972961182169057657851814924929943527162498839375862058622932039931583359851036035454187763399686026982694808403471469591926505318902832830324469916728964373349119687056484284032365767308011358057943767030466875248884267992910858725024599218140406150772613911478762436718082006468231693389580919309128093074263355947601859635616803195402310074559428474259589311743376662495974146996417628797032110226762349691657423822397759030309488743125022186524261071883176507308879476892541489979929142391435355384846857006932549344771503831612776455214619679352314389295529803691175923838629486061914107463670728725144405363544921815632177027726952994368067652546628917889835490261598248441560390687295560691608891001174169070447558533707621188037914121966193330013953245765545051914790471912179919569322917736763737444582488330987925998940965908509402802480767530158293308932311403999258184217354280185455418952012277236365625085296606675354511705266142973013510228327967457446928483437838177252077070585409462751423747154532576563622338505843223541063016564095095313146638901543031894623312123716188510304323054715081465192615621819696292840580561352488412484340068594660736256942132768442074167277053114281352065264232215356514831760439840001189265517585468573124443540857529276987711045040981243161253750265561359543683076881635768702093368625972634791232091519757460006171106457025526422818364466083486915596238446703783534848294330932261248033647755958303379668348197988072026089847189924430094955046490829679479069212682082797509685816271506195847101019362968880057021109243971551294358667435339637040525650882536839063920051915834349365492855334496064736422682499045296556899923798185074733352771739024259044443188747601189685063982007658764017003375950617263548514880326908552626941885922285857392415073399159028279699179296333885540743065894928461521446044809822976407604344857190531549908088508435482647708597343373769265753990842574588331818619187990531301420235669950671544304137438339688646371971006724197252246965528031036591919035780640969903969626434892755018778274276496794826147746470037404199250559997360452460256316167026635678055967813614444548637918870912477314774564353139645029422807615510035645260642714313997604651530679358771843159019264165695446338212235451159370542618554732434179848162315177902946787997136883154485995498686034955574874037904387063674252967866734210694919250724188214982258752059926579487723542286163477723659050834652899822033121776574349638644008477437429265931981887095086373620447371401651947374922703167470467322059065052520719392795486201752703162869195487858070057169881646253859243114682465077844028148618728926844113782891127562962456805432734787290973642454238605658242020377327003090867100170480048365593661042438751241372320649251760704411361030466924526600036829652287157140734684181570500899365008671566970753009276259005849670264180899331547031763422773082670485005908528490349612010724793068571837583230836546007477192496143154252145471315630531968776300073452297494380745626199708111366447498207132689050271558460057280161357464998922984544907867584208686712218463939165418348728837025454059893530181891811417943802730068376770825791502792817623319350012360837220014817759647034694215634569794292438790131575354092189479718942251219800642513993124423471528468432460427917941809516292760466384351885426957115221887141350010745062471911752732813716458564682369504785600775848115320970468871918937889532473136850418872681844914882470319475639178167046997971779547185722253246537143084087705197600564491470171567443183428530183850463650859151272487087261127950870524397878539257222759093867738465613100286093233798695693032572635600333304583367407980761881336659790590023989981924853362004612453535925352926658262600241679750371043998065344378123161401627920566163385219218246920124150473809663411361814563234096524019227765484900174917245873689365031562367704675094700221543944460154975037398203090079921223560048684126880284738402593260570583304216897991020848558645181051484896177154996680822425295965758913086737704089682269330532736114199605494987465187976484054899583582838673380818392536495062256146529047914164096596386829041777349367007118461146628515083663241168971158245867130540299273925720183493828484363936916220505662059971364388983506261687545743485692400437222158332307384901080044666335983021185647320941091364938934301518928732628160188699541682525412443307445180651250550711123598705008761767333297760954267279914196057685525063761104744704921083446985880163213845637227263127511155304932322570898307118056254478237039168262241384934655073405643439334283864123816501377839440656491467743710413396964604126211957157794276259229369369178309263370048412125468494769212432899723526709917571906451417480140174021511706056679180769223937570203460178570811959498077714998012689180939698377568014462041511926538647694721315302293900948438111718166639599187945574255491557382205312606305255961867308072133650138558411232432500771729541053012306444663850597612962042664022744991953046364321942695987243953021380593863777871183563318781060998138615901799752543314048364303183390567466951432172387464592181870607014039654286233105634708623777201480716835888032127656427584553939781959171086006869800650200629945229953320693284484401756414316112987570318518841649491219199702010927239040427515548403870401450747864641300271713963782272991464427046064588425570616217375313909209854669347480138223639238777076834261822249641900720701446933879628507525014157015423132518977583269148205009397151247182367691314521418188826470057523565006015549985504788061906329127078166556683294122069096741176807660107295359750675410223289935772684889572699449375547074545125908203525204459953031488101344676750925675734182181199836322041573575133263363205808443657236947257561687817516293870738234611707813030948268445455893047899328545935065230872148189047142131172423034033197947368182112236081987015973737111699283134381759350281915167306454301273064587565749867950206787998033398075729115746855849581920630424810856712963823439967962148012991903949564846356153043390735222414013144870575303783464368041403514945677877040895604851949171957572827891368922899337766979671604767818168161787512810757208961037573631349167486577897053903799086502601471966824663357875092551589384403510388246923063554678422613728763882882913052360953958374669068279621966003722099182824225948610628811942937435179182074301188768737202533433292287405948622899543393179881690103238591636004844584807767904070649334380296595188315593779830078308673545279787144143102904894397225298563849072500239624678060063494924276362731176011377886185293484977031201598969256200383343455312250547917659558445868744655869208428644459984410429811304618412648051461881749657281927893169725936659169034409238543523130045636636552536488692599465797070398629897853899894508104404030018220932375861373494861920986211510318864934336546170652852495718479909159359088638034547166436770556743952726363848296409391948818853956366368522226064081294939342452641531746826161817417248705444278197540033086564535709360111215215385200151593636730235986279402089510520445483368317266906508704115046735145174809142706569462011889072456662235858210499777405628005392691338139530586550482456414384890539774620042971616606620319856712123783681281958949688550104251236897054372910879092739301888387764243810903391906788945497957414825648826515776510743112801333131370716016984349799465718757490273679635969532775630804602196243431348273066788974260444209752756413358573301895280801303765142702907366113028313943339434243839470767087585776181268304205722454680122904328941413204808198092742346421163372453579366215950043545407927623566479165036609274755110097627431430477737982667423091180364421501360516099375032897925015294703460916623844131199460443424031509876029864504442356059397834563892706544378332646736935677619414910040015838343873016959816993815233405774824408994022077157592577837322006400263483948758885503578659048303689688813513913948085679548741106090409626217120854080754228320416952372810671936976097878941768499034202467979871302320469260753586891268269291230149159425952797740733720447700898036659872772331245962117116270792207430421266151483179006659384427312401869842065781246727110949480279525654754166138227659136712661284686871287872330984533361329631916895200470519835868791123225883421958454613854305104123896941950465967330227698719742006589785989150459016262869916633008847606154219986154626730779805630425325999946803622696181240352633821836080984973546523324433122586850795850646701169373075814166426804810377524779302081062883730646331445079950825813612225625953876242038044602676348980425651245343009468928638138768724200734712984901929687861626392443657771349709200769102082867782618426064295215677036583805683737334873541501091971295465654499714142126984773691692634405574463992192748205494044528863717967701219249415133787833314467292949403274295564786102536056893085438099443697219012634482137124625195126291032505820562182957766243568934605819602218208407920777831773177610932801180680117851828336040396711818520066977800698572384499579500143964655428195833390910174558416196505333705610930486891708690181387474506019471568369622351148591731482082912470858346044602139406177420636751690962714963046394018481922236702579074907199042850122443823335941670574985459342198122515049895177893345745164175721356749613491542342012233616032938848505089624054878964640818206888231666196299849917279906635590616865937964030271096832713076792577006515036197246393007846154206683315113928639381160483374837306878755152386284652570644707540783082696534187507832509371098440611957993918233538276924961332651717802171075445107367288749218774802029494628066908924235471213350058806519518762319673767390517757505557052574401197425327119407363852106327225918520560330924981478295338455123797772433370620892268118930583986521840390394859689563344123711077373152926954258441183989872776540198728373180177870777431652091521094175711970675097595868742435964743556256455144963061601731037301777850800923664266490129401958979452170418252055079320642336902888835904581830433223007502536753718526468552629651768598176239665741768909845261228143670277192065000457085529635417857818673668554623889761869690326452850177538138475175745386573819239611137149080474244287816510738304645897056846881570040432552112501674400320745713014103584045616258163764811757732383697242001156138403982636424152185598185545068589607166696652346052688983041576109102564630431057775085135209497361185349208470638995627189537235614019469969874825469634315397358726573920418942857581125875214936687463745007741882325678312216824122673770983624913178733629947710455954883858075468912396277537417177470441466276159371841135896420820718945352606536993904530685913980100333968912297736817590625640694278123423992459787614622704718378608880904637843241905463024914379082109753486984345092315130607972585803356054683388182767919051275865111595017590340514446011840631522693250369806633094011684975377719165855016292276343367720696849347762126897478727356888735900326341664229698225209353666833750128959427194862609031604881775094065822136165175944574768399476078706959177761087643434862388257929350822077831826290070167220982842934420671951278431579033986547949405224154919458476132757557655713823062434096712571823284112097327270835430717116800548883882714529938886770994730843669441010403920863244907846188312116048919425836623991269402638217555604642627567438832632678550138215248853987351585205950477914490684491396331212306117725451474903112006008544096090457971768805809789352445770408600168957088692895992181607623617291085650848373506303575857427451873500464707037115913869163266990303163135739721449800436185499576962182731194903833484399790251568889301373036365711084340240384018017439949799598859737474488454091370994634326505090462387214217311721762736951831165795621515966225150252992427265003015555457712156362428607308743260637216496279668518800153110188347940829039106708725309225930493169403832904479592851365801250730492185268643943798745014138965859098045484397663110752763435189594528601290154215247277508616663039655738826344747401206512016193104674227812786154589960789624769152137217051865217696559201116380501459146575245868736962183737837021237426096285177802669446896915205212146047759051260147627827028169892913443540224898239646748093156597688731680130939500818963575346776996613131262406805810228922740504536296826470116907485625790280420450916096097080499398859832902651055761844878423295148840184709884811351138811548011037930426686709867099145051154849208551149982206901756057868223521523628231869119422223046271466806824047221191040766964518666635533048918959311593123855553425570243302665413213284104603790668397925988328854668153546316059669932922990867068580349644526682584648291078178533127908184451559618920828985437162193104474475293103640612111739545706730258625212835168760416046516422977789090064241738535541543939876898220907459974984696110422489740713890663092072944323720079343000121783341618523741829529696569950875045726612889623586536007790653472582468561884937559229785623971799064017223397669846051806585290770971081302789212291295498213802141895756689280717572914563878778012422314296358095782743351147565529764911930556576097210761137470205994983173194500010900593305626575050402272757297250809391597717377629256363594942840749240672627301007117730823694725260557099752190937642812582785741214408431389942813827747335555093435676575492881244626380339848420572661402726319625485596508643658684924713840988754241628800425602612198742752265481967685320312203005175257303468213649729834836179611288038722302680577392932141759526904656165571642905055936378585389412276947950563884994432563538171320610719283986134490200537326694815011272454098983082857391805999292207347272751049833671263506115563918858321029546181649857904060093954212564588657381358475177695382740837817374736466440705261180372065486221094599038238546874529346094787610363333179548772824852378384828569968633812243700618473702204692423771791201136300422852024868123659742721218063749708196525630093921552371075841023785566430707980540290706469684943856062850812430082652737740254969303201606124846297582162943266349415484008292125215053024448515960523135038988924047820990374522659610774029231470898176509960838859842358422037000604620458250242600471795542013188779939136555804616909182104996189977196944797524518692517037236990913062216955866216214248372006170484548600145179292844243362935601903628269987314716731360046213574556806758037727396834930139529022664486810327680248581884189710473843380217975712243182045666356604197776833546644798912439665425912806694725505923027568299419813630170846267857496302905145512849343798714167487799727714685089773674990633431007361917799078064539402311989799214842284042047874630336247674995184879157406122086212415256257875359060136923232397118954033022627784248376465773477695428756642907554471662420205978650791224885582805337486344501995607772920576448459050246907272071718771011589047197073146919214924414894432681524331838775787733045398647420889767083706656855254642214159749284197552554970456048975414508204538870578719399935066227571330552961953407177217598258935386720733199830552772278937206464359459395841669809330162704705027658397970805213767967717860290581262126614127131084411696480611007345468068163928066242834339786988006970035107364642431788979305571927683716439090004583460463358802374438304934160921926410148248155647522522692239163681574784921765918271471080645339359789540130797927322616544192831992094044566126713055769829955516482338409447037910512444701981255680775355840047537599658754035445649101972748326459571821448710581449499136332358620360140233965719744938122364688872767717885265310455301980166528976644397998576954531412695086933108405709614270497502104921617948333963444275183344600077461194845016320343643948342936636705839660252050085748646070604952764823306332089940364795066564884074475998663477974599900916215524989335197853587820372019255060248717920088719614888403357778307103269325213423384180655954460389715778088305660395638898154075104009753439525821000983618289656022895002905032830168452689308099609943540649510659428086464203237704055312147290934210623816769988496392614879914122418168537019374260062033855858551261369610117241233968856414218072038430071012398495761299344483029112805240883064179034309089878292674074681098179888906991682655336155516262114233023942625153018410879839049653419795195296218327660800422143742587441262622257986026264375097915896402298703788530732632200689915605418101081286706687774332864154864580328137246230824056114726281838881855788318050422188834578151699680027544413765721325285645168328833241941783125201116187756404768157224869630511722001180211443077772033086657641326968642968243621039463486104086713564558445827062607343383304234279090281444979385847487658672411666193944695099960861052730912923924423795629304357562523456809654116638957475504226406930697812215904563990240227965246993145587128497626728106554999207443945975500973009326490788811331125537693017379032137634948433816016602212841055253564700347633930864863007419794104850459331816309455772320056512283763464358517455873046069623361335158943662284664108348577496823930157067107481657659607752057194732734221787964514534925998384123949655498845403333987003771325542807469376291675160719141032906944569963176329548939278253688416181284642453618332949718713349262909766558543196288703766480526348434849563240073405325178361342305005697089566522856333447069477998604634499127123790453029768332958937374615664252373186143291262620338923378958958202718173392789761021285728110517313252452143028992412453119365872470090110061889302974827472738096132220488031473913717678058492538129655801571459040883530014878822663654728104325236719226046870086688624667257761545587201756165506351609469448718397200584602402821674880408998303859950324789566331608578249507882538047666945100869192562986177489869982003585260018447387896677864342007406153891832644302996530935879701786242868194128557279515394709401118290239961907249679120545925444197679553593073502179770288552501374386923707415911150159458195082925601371971166106581588297994210479148092381164734329982641830474731709719059512253415744901264749581398327968216620208158915230159949144734589593772115343892857600491025157862894740121782310338882088449476263501267546310245754025555203643275824980219601555333450081116876514545753950174063825022435315105974780178939654250728809483192111584066548615897765803632576887711815778623043698718554864460156832283174932778415624659936725374101792832226012516577884976015504773158785686367073242298525342823996464985036413323314385929450847796722911410906427340078443134468777182672221666906357923756472554004074625900497875095424064254470205981685645850034345487955100074319253445350329673971955964155851169837977619097947721423371988244355889449580005287188925187563525919515585622586902191141665559406440397514282625756608501921868222114681776360859281173839316488177899669967868060843132621105319336687825756821002320488824087676065555045483390483983731998315567455082259814116082212763586469277053529689127827741615575767892019176945491575425809752019850858038905910928234970678240349324502854841956459890365281722370725569526933621605661516502996092704571784061607839436121353515861608346638247950468191888566710870759920698741214804205194135230025027738737714222047774816146287931876247544480556616076529913655640375470242292081428692435997573180606141089009927069416132113422662544639054365198772436482184131404383500000815848105318963980926574589292749605249066221554910322785736690782470683374802485788488166020738685755152423209324634829615546509600459513600490094105534707461905035627415736026397992553923795446315307645466197144460348490052246336531848944305143452343277749150006280107594204991116292594220081903567674366629484879868526594008730871301601016414836040551978751276728408333327260641232170031532243460622011891533935273699857128893883804086755954358437618062075426629019939179829215501642814350290152853595303182664834501244362802636352950383963096181071682960452828459004837111761731089492574813534081436858611579122782217583389796816893136039197605815060749154802479863863640062085184481037191704208260703634135500382459023179056391846503774540078629262325720455130697073242364308753544859502152434683729218226956679107670415347253370958063517152128125673899395724349700283607675193579319205317921014576644010486471699806916666874720925679492654305739451774733554140618139512256830560673694143116065457584217492130149344914077561453102255452754168356390106297208480601121791679815770211481447374751629408413090273232395030449135220589076239361408562865519852018214654867256321821742530197131804296886166007210107061285353573847058625162238819681718664798673148385660784926628810141709077541414232358630851093874476974220820674004913134400232683854542607252701077709605715078266429468842926403056416120394845349837141206843658933245382720940083495055149114633595437504621120082514699885040930106495257528583748533752561311262599647060171176772035295231245417645738501248924624969542677693674923011250221767247191855652485835236044138111599121972203273779889713926712094994490543093005617545800744531590118628152668152176668543906391041154678733229232409951134200567705074088873194813804235376550020824634489099552060289847602381476737195619364160933343281619980213104588859338763379691936291308107618359541333834313362153400862838658662172851676834671662188395757160646092364986555972095178798106885091976175214426054782569043919098819962795654868821593502013513902503355761272177559201950327357942329819431113199313309233774253444020291431163407373848099355875491305119632076721908293227117524131566042292281975319353333486533134275888360144561157602547053810780006523808102201175628327988453028199751204078512483737539893340527641854885735343488337594918748715223184698547393632729403392594783051295927237273348737309777848692281244466087260511277929864834284274800245627018187574643529546517459146969553725311003145882824280364507001930245144368204248022260317367336763175399067488441470500615281360235111197220220541155432291894665416148276384512817776611334521715063900273918577011896498239945942748517815923290952812426314105132287233950432871270925901783601818878135296257233494199353437588334825501180527876353368733275311227688541098686774979286835405973382503443622515608021281057282950334717952909934827730791820095591374895581897906182168977579361860674092196469220489775822928663926166983964677032578595676776880133329392714577340113685985698397193872999187858295339862912172766871901159819271605612243494016192699367102683993998393742211035532452620058967882223299505798520184470710283418595380230839270601767683715132487265137568110049766150499885705906582954948839912155495018898416352692790673419227117367867067613373442727389159228577404209217270218766817529169395101671519978142303132324677543643526768585468932049821870322872348311453674345429796376863956198923447652546064509926736131415330640995091999789223974064810876504426662966283154289766684558828000557407574929623808743947948201733839986547583819789729326008490222147526710885073206886269325110733495256773048917211559906434654349394249435933779503364993378171294637231972891324023867058948806517743814835583112336797199887105881960065717736212420167370718222083982817207324749713899599138010744506276615294096659191962079872103616619477805093373127685459987604909950132020027742743773483576484336731038372253142629694930388309015295047290050614307040368180358195099256231442823116952948398957219961345865503477976826724466885428206413929037524374910725260857941017747146242621166294717041654446422172525207120117589215334967936110723351423944065705486417072396161776884542789306982113328770614866232346436879641334683427094035099787711693135088261151048392126920537658560088286771190156667564404874865418227085481964110160529742319089776878606901921305163132476805004839903120938800386634907415931190599498044839095097007720634417046681677023712189054260028973202658979743685017852835956039737724392204216630242514001681108986476912832071829984332394665549820066237698838311121542011077601545791907924058794701918046109871088952110377964604725846416104847904173014218762476735829715946765762106527901410312753048936837073056496501775975782682224550442407757822538573911214165324423639466611443324622876283934597579545676389353895317505674870798487500148731895499875321260763184346675513835229997519022702034033909187861243209873845649596912856307092025823698081396688958173081696825242621948127197556146695940834766884723515226553847812239448134343898937777090863382051722365531937622903922082679401642377280964010792378010401782667108921708118034374835988228888990975462053328015880731275916400982339599908835266953920973262219620731436357434354383779647210062915740920104344852648153213544179471298543454925419628358416364850171682184694237547324040933840302149364583998716485095809577362814959339472648341564908677279235908451650645591873250095864195390910963166506144268539581359726958006288663897967973839296442408831212841682707377018948165352999705595502274324147808506863289781236502694714479487145390096573858157901773962673602910531162225925177738521235879197273161661933418673533618473208016914734361755412139250189267591622209384631278513549299275234108523654772770351343383915077436149081190782564788136094501590788115108169648256619444566641685447145678374275965044138451319350161413731421388631496217891425394621581227365202438545022579835773521795511192281968916399478689841496761182175618195097375195568187388575910822298538617977763155562979975993292929882975916328411607671561834533272683957558588004779653095674887832473351872921733562342667232566706539844773500535178729917847015980535365576205212741639935214049439668093690251022307505617983432062044193343864596450282873729734077446570528608679880634857464639658245744082828458845486850896026593697155113604558008148521273490766757584914560824915353986123317369782302270047638945636701001559371248796426570066557433610180885933378238914298802542418532612818383255743687638131848196614487775368412578046230714559489319713528389185429730500978245391103684431763474070107762214689836373117027226430002717786988014437558978530977365825969940419640349566730657059267194619625533316247803521159000229650727817976445923676916766879548763212480434861502396959973120248517470045492024434193708837873830483966102680149398088026271862410991815707350070761483296025969909641395114378977448429955995410695346414003594300522784738588729427606478315491135271667673590004243665171443081022715979993081128242666712526353059597100143202286045865615998990783781752627125250547386157537363686290844818871959834813881372881685939176471493890077378024514457141352508677057914370150418375279221629954401317414150213125613774016520608315515362052581091389675756253915444560931158257027567188365793899444315792546805973563317835345659992708198634495238091487403624281890692167483801818634367445585395181061913607884077449139618230413257993266564397484394581582329721687790049791466282167207247997339213931228734265930914618884009385919297575447242227162201804084536405013862838593347409459179935935379440365779846409895222100541490826141957577752970116817389762670916565751672381340477941993105838197062093160091708428501020439615019115017296828794354277715192083711904643400055655382768718502033796405764183516654320245921577636560045849553768918068228336004690340291676371143036798997085307195791095456400419322106456249759648527380135107204086975545063641765868272677082910722777068878212695621687325363941271098726378679231216813326715652184163231408593754910176815025830303534260712919801245449449101440163065545447080814321102037022279096129177392029874037294817945130529186968258173717131104933377282056021446098792958914969524122534593645120672496650041960864272120627014192670624798726879006151606342647040631813442260339263372042329841032715681643570385682584234491580010440987255976282666546317862037161719296077438163243423530779032829945065283332771317563732425757776226550448012054844323366748943072229227521551046312773582508510501470357989976735644839290021986544681204755614899221361906220043459660604743075944707498854271151418494352030291622876521344343235174717058876561523876696476537567175550216163562308615940662295704036524404737113084448737781275709869195531244301004312361084811855230228338529647837051048033770085109162998934888897024317156546136054133285496346727263114808447297730638265995526550947291159404654910704505777947158404081392450477713569209031120320358662739321075274179147988821108648754804008150957358186329607425125006113908400248111717324373827027678762056869661119170263196466369063805469540163300847255792807363275748109789036460330336762872924689509667584964568038802803112613835966552804348901207764526210785635639469119110441030839417858150017228691905080377921124189433634715653370754933375460899138428239303338594072022276000209617115797896863582818351591621146486615906358949077560454301888372838468217638520367373529631639888469507614271377005866746306514261877073526349180236280896932180533191271709582521426589547423123926397635001814760610220825233419876534993315789770175589066417156957515980594889999551490150404753992766221616855170817854408920876344896021726880098254503561831266924850765246359402898948750451410119687958293574988005462686355479923049000237099809135311157276363140167148631777739066137557090528782601722161236002187974052384000803067051601486188817364907580310052703764559670869897614276676002776103582686571801203308950099061067756996533979066551650794811086845968611456524522976377981949247073971424949049099086388906363103711983161542265427753907950754306443380681700907883821233363002762585293646910751160589373612037597714763999471657262117428829258723959212894472554815281729880333855793190894191062249453813118750410275433740645956673694613266301534676659469818212743812858558680241280197304131316270417174459637064411754022314260732306894487188112188804371585969083914526418975330750672804712539583715135400386791390027712633830241555246636135489705140671202953028829669050927776749226104671670550964798118239691243431751245045001658457596349418236834383955815023390121774874742397345967824648445648598426558404048849204257913327034578444237199169374626864187086305764603926705309440335973554562212681804085619763661962122612612930802017781073033158080351259415484037518752239863796634538428899340725671429448617710518200477300714329070418424997891593886857701090700579166469626831100098163807975938723814124619568449863593000634772707719581240995488234109798830524693343716856239481940464014595003210036661260447648470705346702879839922931065557417248723189545906768590558448026286885871764022254143172060037748766325497819343815452333951961521069791860292467405068225670545102170716412382992252334302567788608892790077297067349859280869912145586387221197471095750573134680585966314411676790769500961543268564445182287085494774185133286287639446033047075362490236843205582268862306695457323846273849182835780387220841980859656227077530640095471381956976775341501282918391077455537787353281778832876544762641855221353927141548614800092367275796075929861315303950099839032614499448316418414491056534364060910021048389845767679816089763620025140021072236630730279281275339984251427250810744315022329789279731443920770443576055965242313723531716709602115209847464873540381000681484501043013345280605643155009752954561495531973911732543233801751113688333258548853898519204331003374768463035195680468316904202951090009839383919748218076364489244306793476988149219559661742761162385166062592279609159599698064300116357020017019713853310751435351899417287166200275850964384651081487083552926826013847016889253404502465262594277528750858458855402817167097587948300663383504259133028320725341677363837618785299844975839942634490908997834430565895658519857543665221171797825648345696966401739543835862317622866769703603941215931169025227054365242159313351844456416674242724428418431580041327983155156112800909949022071769381052374060238150093014291056620794701362362695717450080914996362548974419801269049700722668247686265808904094228637320124173518620291624193363269757396013805981023589293216142530278605410519728979086068721523145209737629429617237601795346584428674414486661285841889580555071632696955573857679092181404518684727529403588789551618847796431124425100738284491415008256164404510408028145680494105540386614831531725545958387650182329331597959829871112040207962059276659757364575409250137390946714298425223852096927754659734280535272128087273840270945677592218308981078724377664671875226773038547025441702368292367343272598083659527365319747001714681774404412665114091747330522546955484049899146174132080885169522300443678108865332490332492241083760339371339524434266442577169538746600737313700021606225207805814858343277824512143208732483516845070693473349894484990963256504883481826069226847175167330715878554891180041322891227001017689908383513468820328909096513809373764079992363111043513404614995331449996429149459785491834006449597428020854999186827449558803737610898240595940331711936781660056720787232543612663181438607263323661921511365686669575723718498222656278345138297638377630379884285098052138724172126694717914238636501251798247583676258083736205623386236208720957969149245479011836123727688921533659593914693868948441334836060046355816362763232554582942100442092859001224224575150912976446444386480919193768811224745956992974825382461121444497045035119523282394815087326871913124254282660992410840460000190031269815579815531280517887744512841206084130101738550462179128553656822898819142120079941636307887471997431431407524845185020757637654826470972348061116611477462936810792639254941423569070245977344362896057648983942451586916039051063134190688024249229735361691375510430081375735136384641013508720413121102652912207076168615554873760277554983999070734580240420316360590163671205056148825035462810511039024123861991017599833753901282923231910650008269901160253334535711398834604311534610070281055875884024400290960750369531462114116467871276401568247407732774861025764164722011570372769346659656138391410996625832691805039232688061306135704186324922672850182919815685051230373490165504542215875613213135683038642499938862227805859976290521813401704508963698494752276650345040189363190678103378068737239495619062382141020311662850301831933768031217461032099557088342776932205109732583872609267505405856488140428809798865591191446019485633938148144511133849970327071884682168480607197618145472000038184450573546608157215009851576635977483497823331152494325326256468244386697288918152008266209547631824570441247865672161207563279756833315964165005988181484344313731967860868080848376789979561127416394776711216508190263711932063078911370965678346325590752650966065293756208390322283826882204039495749868854788514053067180239223467856277348483685703259015454245231902656648441523177861597906605547373045432244762898336964689950915163041894732042555810265417407861895426816780562437432346546889616551988551355863635125149705886325845427614490425153265254602709186393496441625994912240992067112523018859679484752427734953133678499806344936720747577298429736563704844545682448186760627743496900523745556755074729609750864817702732070908058511245186995400026703797360611341514150041735779959168946829085680348561364415680137713804068317416986557262596201227910403992048511021034723034259376032164412090901918458753082137081540922192037952484118035168541775516120240049873285007100686126721088366507587080527795786011521644907310233453435728446028982045910838507287655478204064432055965435118960612503124050669985595033907359110292205220269035426300160656528780689523474959436155620686149911572250801670014478916419915354886804444230453053637449113099500611460942455671895696763034833638725226661183037023121030296273296973371726065256738065117136010225018642101701283547006223972838911176762292850871700514864689139419424216202962068913221552529946289836647950167694869463342256343960830650108294536893746717678709131082485757769451879156285195930280713792118450022673962127988453796178135490279951018511913906416862996404423445714752306830441130162171863519865447876562584245215890984925992727203626452548726060704787742584260415654320957116096815533254561682590845529350438923302055984058613417298446659259574408049681107270699414586833470494589498510406600202461175994194987064097857348492156985687035384600976592873573610933502246736467149188065179925100041159412810161476015629756612055076176033697442054168961885605362699938761891355518397030474583606855283063869756663047568109408048335874802798239712369259663000390580760896258232928637372487141984051441818096944458447395734608937266450315791388956916201361322095939735111304678748100807704641054906421099457616285936096912628596139010419274336325369277372725803755251900744305784619526220394636435739335618448442529407338432969120229609246520631171623897205053837613868504893220674193925493306258580562485097871828856088135446478305746992326873658166418769291861383395075603295019724414155839250841734666777926403093533584643888748827810435072018027005718567079918777953836837556964935943142598964375991453868395566790037359767246184035369585196588236265129099877990956983135945536781692098587215485291524566308644787713128399241495439925015390310502763990258018772719128364967309904226955045225993228505663068738729379523833171757168490236208690236487257996734844282063657777759594008131573753882630929191986696526319663268778925667818105159389838387139978102852754770815971845036312106414833089558928588301383541651994532360931927817778870786498812200263870949312249309679571774253148866465911735268147739275416197463611669155649712629337759988741642429810236525085509591092584265121297147091607607295291158830192379176240319072262723711124677698810459138547999886397758508423604706026144672376464463990248733829639763477458112193615915458665557879831759776446248824053880465484260842517574710121609031654556776744711641937429582233793470939477965216273039285450917751467262166876434886527281768810655383143227373411230756717781603171138894889936299206753100216091890572325928567725122301431363213493735367071683035458684321776725321775688700820102616027107567711282168768137267680364004844460374366272321991358356226241629287831106957045805488279898408314407847798711371649759980305828589793801883613170447036879846989436305108428407586842526038325783029840207342726319991063884681189495553044897006612443329930591333402692393443171632014829402028253504246376820057584717741966735588762493951713007824841291020965937245886384535069024864761649467710780205166220293843254077009698770611809267964350713837390127511709880161603197778127008613136600299964445615600647279904931059257556189503233995143712313897484816918181696965439031718491778906079635822753621926028373865937939725122322057671177955978329861649091223727239457680949884241768367584903009805001628207762645096133412038448670054008656100616805552038216004583458200133534663488961927360302654532101611801598539006083198781846221659783463100328676898918071456540114785242394043382576570406606023995635881825469917961598256405272001428562307113728994895245799575432782423118154946646627646461313682427415245931880693886530035357104401320089889981384348025865835998351217080596056850088832112593526466833609448370571410989602512970606890576804155340446710680061279654634412579021925877201383710310021374306952825707084531657821326203262069129018039231095992417776481625060830861369488443494769402694973310589015626949302758424737499547512569452994595026629052120848486319415699455230821397069807007239114989080867751920197518421507221147581858898820925040783778794049900698572951337858223738266387386969398089753364379485310171944257435108124712402440585321732042338644410988864438424969901281401913928634754033115328039901901847780913576872780022260663110981403629465814168649073713765735061993700810958789278954512581676396923810018275923877030433700713966302264564085542227116546715455853026456762256560233583718785712781612255259938031211092266425670512560771656791094109985575558907156879954754876593376117365762945885398205727607321367285648673836175928724173271124142533492054955518956805083069749903986053365945557943530799190302210304972098630830675631313009452176999617974279887585654349074469665470507694542515251045473336238186375463166905536901607452451271694542714866075332215779950099424414481431841630533329799152529545561408801445053806197192097266980083786716864243349626835293258791099591198024800303326456140597184916006292692379271902561165923754230131515978134372410755346075988830131429952643056278718400912843192636675282028285712799888797382825248490317774551026955082530836832903175853321653845364562830402675217266936749837969883851055995202336470402566584825595946322319597411734092126151880563337816233481194970520544251520698574834222129643340551563302638340284651680689467871294502432239597105355273392641390111037265863786251597497181116613141506803697325843894824876864557517391874285046694140704726695570903512857985878285756658628927784477613840118385848311389289741903120206881223789410101136544869024868779722707757799898071369429000084027225459356739220937719702979390996060040839655767125947180609134857142481060872841493594186300050979244465213614389080576186313827566618780050699302152232041353815567874270847721424736996104790768020812048712210234926229916365413328580864698214579252294366943098471395562047682319315123459200554484506616565380707688178942130446892671856254900893199353882459635031769136740066108026420901037380716493532108487932929050866279620396094696358763775921754649604136102092186017668597512736308229316378982054193151377717498780854753959213994575477610467057898752073413406167976986260303854452740409155915711648503240791189421514750660168843367672455070190060690141374909428240041450515103995622101345481580797668585276830695902820728106667926371581612517935810204070357226416965133396664405428522051339006078526318666483246502313126282611887573754382175186579425060594261983991165452978582981358927751632972570678631228155300859903878768167300077078761534174651755433035896765589845698607761739162228144813170369850243815396791298032025230047593722380366346288749003185595051615975289282632196453207783159819387288999558935044100191402567527506769904591459949750413562488318162399246969351322268778463872536933469898378808643590806288020284532987794362300410605776966025313618648102311339717331191508292588500460885674940157607923418945216422191339029191853118979332576652217348380584933091044730970278796210227274196760002063012096406750392013198514693143003035067062738379016591507690132020419599107550519901276219668856238270995893170486762942821919901000705734712975826236114414900860357934223939796286353039185044508642147152886111869887769524890088803687446812362912784930376664623129033894878886662826356576452102972069843777044766712168267838850081130344897305806739537062525817884076553068709530642267808518087984542106274566409238767039797176089613768106108236241319524634230221407693660299217466729252643897984528914122664764913197761210527225127072955755515694562868275025023442546838957938067604169081090348890383645326042475357047390214916506249454663454313049893507986729047401991271235545079397803648206615250465473314957197118813544048823206286116425758515725375523162359297757295968950402799594035247165647310819834940486595523344296198217899529405382119776646207745351235476898988635535448347082896374747069574837014172323842022634923047729548877997775229251733247067526206869566111326858166388466224687767309072091716318873473820155529784924141710965889084585041029814371478755112241333773767884349698583158806700454203900293182786974918220874234996709529776685995671381165932377612059084647122932484314415653944334014383307184471505630978572783017669464559205397477591745300442293691169404071517044870726716436592741998725864660017905949249902846071367552669058198218329277884334560334401600478341127227643237261215971426171403320600408550251494072110276305100500060718194012643540324450224632046846377984885671869634114891734802936590732204874835968389880494444840692034072129962372837289879996042705672138002331572432547099765788659434419928170979124205803572090951152747716588176230703901571342757695373013747860590709100846285021003178945576211989637203967990214364770059524910250200321523256987104711194182712692129666394831909608199285105349214330053247180478455390723131311948229924938621522602191515198898327191083066501843377809049746736312812208372236545589361572101301780020269346258429622270018532522705714356218508824771396936347434515868853304105157828579282279305840069083804648641184588416295519480831221988546767868346568609687615918562922381403250794716987942503489983489381484095976372615686845089392774361448707277595588554034750155548306774806333828693641523848881606846994328542647073879031762903817945707761949840541462284031726446853553167561299435510464497534043538445520153631933777898954758558626469769950294731064168099546835953139925903948836875988531434673476758766855917539644661100524492409323553320461799981751872705750988608827948358899563939819616358219287534587955694672842373322156252430994015871113971457313240099808044595401015496270616237681062033578328121500814719551343759680855100205940935114680753325097124272543447649381773196987883214242733231907007928403543587429007404785797463333837130584980266574691970519796466235038951420722938988313680168154837543435108748182064573474605787475092978388403484225126180665310944152575659977130164997901446760730033142793480957480175567693458605633917855621385450753798813693957234559379964638776982549556980012418724981508679503246695620890818040368507098224021537891761966498528491602167392415684009993322216018729883789194627265370156032493127674116891151484412990033087031010643077287968875304339207388294140122649440017706126101088938744391278475240845912407523010762732360141002392430973604573885381547612289039325236207601656903051136511122502828785858051080213492464126542465834007922478417424786773229222382631254917992920718862473886849355007227435206145608731940283573729981230543714330281498253303688716528581135405411956477063178815643410640247171400182742165875786803600108865733390278308485329894003456892785718202777949098836945939498145339665315562344805162431254774675801147812818450618273345136059643336951050360762788334088293958663994644987578443952662538144928061874660385192422449126943946337416030101455338435134438666504487916656778988281364643378063975343609875195393760844033790673149419442716217971109696235609653596051971327549975537033234471082030410018032010527716620008183356941768796837262756567921035212229030283915820508103108900597025626368227816122622233215368034811205302487997167834200601007230203328405942003661929952982337588666849473980272755519974201271284445429267999566677251376380590333010105587958389069645543751376478445485259888252898240118053057136705619480281597513039508658035235095407644013575911092358466286263669010821452377925328708524567721035782826021633860303581298354309346622622178431323094152429027033690015881330050013497848277585064353564214240307399226057523083622128002695224282164301518912257838261217164502169697793401761455617136380160792135524766877321372991767718939437213833544265751912591234566658221263582335960343366113766299275041596783280452866736265481120014563240121137525761452073668678980040305212135868681258434118892179247900392185284862531034454293279776285244814707305112560945026406881557902280532393357763687898977996016564510397017986487761417427872227175979284255695178459546103517203932733824184868902510226016467108418626934942757336068510027415948374962452020640500777386554242567901449230502167247059802459987562393225778877171861310481137273198466407049188279555558558725987452578709841058633118901458203904118359732034114249682282680263339751476170315164081968804339386438162558210213891155157140424464122029217751725655249107176746431616062942829609526785567840643598842242915454427563728222782887119330169563874626679685430398118453676631889557947876102363500784571666123999240453115277668451492549782196528738441059132192363251947634980551292305711907340270134910869726518932016032299758126226486690520442727288959816055729709007777888378117708116882841888635888803482315768243091210652663611245811819129924994518251489086492344815685113122435599760239224161210800513245406586798337307641197158538248072722669891825787136032151101196618516214981939825293089028009204015868070369807409849285325609878639942566641112482114275789487890033594592372308999236912831380505209318950887406418578080574505770155743037976254201811491286788430273822466528671871906897412592368238282690179669872202516852243064559796119631292791537820956545197733032632728762536546611838369634493227208577935368847705147071125195287379345024332046191286075175991613442060173568416846616824560070545779587792516573335276185279540524348836683922525254303071491180043650937518772040365610774560401597441350043822452676556556774146872746171409603420677725097376553608101956720973578050297935809419911386971278622576786813705340491746592371700636274706228644030630502857521400138574022436324542680900882274536475602988889712926639218730964399729436652198864400066259212926376294489869847290683307854442436866257903711379872312995445099994730764200028388858151002470249666742382861545700777535950336386577008553106878725002399339235526332179678794529276638058515078733580312723049977934641747054438717351149792302341492324040704804115082421999825642564458661127747378222117885392014253108744369391642999630665162722071444526044857836337946397003491222771092990172331695234632242279608356541519936043543656448967875692709833848310017868959340265619729963073222302040185804356121321258379465360988598696732741229400792213899943663914486132680371148248956219616568448732707123359886498215184627202077594971683870165658478880465906259404991306967962866453581900030846363480440897373714670012605609779012216771783006907910710768336841805973252455902105096092418491952340608329107186625140173386520628319485811172744050242737318944346887915099513860002501928153219269614653956894154151504844545418893767693915182555178764609012192167419373512770471271016630732324107065756926257290489283330881272974094653461969275965247098014632022218800706086496374044697485749524590236282281079694057121579367437295285363346554319542106953538268167353610052006340839157443177589994338711676192005188068620409399854431697942038319695689530634690837977727051788165277150621880003755258385412198282572025142989957218269452047827421337144624780731379057590595538136175135042949814914710050852731204935775023172074950253186210216706601701065421780568856549284806156876968508688374155114265157186757214298905192364920560403002068843507265422633545581647737526203857331543624317512584754747252254696072821164485957098353758872473299935628509164890357818600886796101363910926959836732703094523703068684497213826271955641377735342313074043765372822690805102813353106586084972129327621300625015067469863706817799172208166670833945093881135587698322956686137459025236576994204936948210147475982413620812648752779017391985194713519037155799670285414601882485541248381841411805405853247854098693197075070972996375713986315755769729271044707654609717309309068170933762817479549955281574760157067936265163508408135649550292116743099365854638855092639472759434133984916234855213172162459408696866927521674884681219972859060733261710769214443014767439110546353925418963156386457073697348067316661515878890145887055508820402205052521617692698722798055513193528982430277528028928620563916968740692934157134427680755885299432967648094014298386525957543586644926657980164507716587029124984452544657796228703672812435041410226613593908301611600602809943383540061611079248999456792522534639274128694017620946292762797473108715218639560869777666613072113919060506457315976291588324266137084557738382850684146078826610803888541658085848478059155967097489918137163821272454074907542172071478829940266072784874167786931342806410467462789337975060766977554963312944216518764479586056015870484624896301801059938356454178183269027920505626981304428787618166234783310362211864305408511356132336578104012849940281636080990670226536064844791297692942530141213346962695812022942227875393143048006462164455820385704178832313989982853353686292925465233494628305099577392811023962784273517311357791807919699040964626609168525213246705111444361031254263823421885978626442049436756676866793845430657400642135852473145446962585886657885191677428161991700241116109358962109059734941382527459204330521201915183462555321854864082844360565436926780955917446778221402933648386778812353280973169471817312180233941315675783194902284976384260473552627299360418577773336108873425427757047133601468745270856481998589766361357103550556282204334853703294624624350008247542964178794385811982561266553094026313347341705591499086324496242356026429129428950756725147659372346921683188809070009036084573840084166579008454538635617617014855743990822933567773877286462771567032955074965172414837552177600562402654571420956003498255529106416095306237408165336912763108900208547996315999729996629331481371284008058101945448406388430888213923799226375703744565396563843042032320527193084879813720480390369716906930005847512739617042369724951710062847395472725715192974574338330024253778833777201535236637820366638760737813884391764449713318843386596588358570839571572634055248742755412174661464303991653445384393330296107983970187800169428175955185611064316559165597872179714639437856396782537303166362651627390546842528000680637487817116661024381546672767940842753439298348184585755953083609661812995187593065086009529854797227558390229703732382115141802660293303630089786863523115395481838620615039513218297009384975034348071614827582799353732178191287999572842307689074809073245176385545925746277287553802545818459926623915156854329249594513442251742011251510345986487110486368027489514988351801983387359458852075369621625764629048014183196437192188104656426504591618199922104174096553178890990710701220312931142288450966522627852551100267955824556920347825417834139783831610508717073563396272389568027381457140873476065276506350555046102465699329112221841455574410218502791905472060248840810842641136829925910064377013756788632005154613104139507074017908592052088199879057146537924993012202478058952778961692882637278014907025026947580343270298703194266330785218061517473585694195846935476060352856441504263154187446906635498947105873732746867338723895120186065102412268523475473466360767748086571345560231999934677838798998705058883190549356871620653425222403191340860159644368477443944843557858644011277103212720841762178525345863698304787017592776604928961982021192456775804353337708752640406954848798386948948547216189788725738289253824130517848096653920835800682418803827293862710317452576474925087050424191047841567873190006306788771274172165334207721728416552459681116169427035582867174319253378225802061360005690484984561815465716593664005464566322603496575355005289458631209059222720854728450829628788395233763491637582518781114421843676706482400265698459606759385956294612713670119613130315436836477739920070686054832113926826128227694026728823205952608033552331005431644898854365840893416609175110708278906544416022442060562440407867353768125507410486324692493894095828689995266861801847081442541368328441505809472344794308526786452992558908248657902348027085065652746758079961664445736658192111345777968123654528970996170625396173883305297586009243697020888868979833026382043161651758963709850699505563685521228729974584293828347326168704166295380021298903852369367930642708740856086591209629894607794767392180368965166767132010900239382287927571864756986646910083915521200892878742540514977445904938204655125786897391925153701280865859652616767582612487300688985336297311456895032795918652456466706800928012080589485703143029924054425829294944856568003906047372775342858113468426153919311784528302903933417266466119768915637714148981291383144788972018087769589552696010261920967831651512904558150731564932979225475657337421464086341045320902314363011535882655347412070344903749532846392258638206771583453399717463925872014999352576420717771936252886290659834379584403798945299341759984745486014484238283634586064335366428431839243080167099576825718020162275756095398919662168225146620215825822146728528556287784005001250285568585177242554215455428435083552137227994855487975010152482802352445303973605178529137449745378798900646537988791157328751267907312582494781238451015643525417408403827530050098708459317208577703269431893781815495221681377056440394298645376776268325207102367581653468109303240509925508126964397118946869523213138378285449631041760895574721967765608796871097340257831243764451530690883031988911924573941832659121174871051375001337817799132959160385292277904215679945003846444386995439562980309476605904439805495655126503438730720511536590383762559707300450370212292668632131116209671875592461185395320075540838529306585994962664822276626754154648624742725309622204851181312196863940017587382837141870441996147434971868946448323191522712336309392871673828242857410947343711856224216769993535800895146515232158485526893614397125536708736025404748039320677007245399084833390937486791145549499854064078790715851122677259946990756678765885334473589214929797671765096637451213125616220922069930108833326073605461640317444533351644264560514067972891803695478613288569108586393987348328595762656480038020154835639633479645160975062852482318577512213169260934672712859736422284016615207477204550020731827856528063548187668470924147593238005654041798044478818412755836838796326967747093280956282269759626222329486636557528541016729236029565464819170217415200442670931192571528164054374075432342993674548056365355612523503335959163385426316769710235864395558480083490575983273005382206782258900764288809563019487390983574337765208035124221778945409757737946672188376337796530988758511761756315024738099060531905119525449978664290691019305958701878303857094566795045757555198371304352779260232771639134150885318279739167828144489380135361022587653849443846192014522630163647297784956654189203023004905170991835126376149976497525370758725524803110758683555383870574996551771149502996492667056341869239845114878214003007320578700552475148571618418122762141875109282294205585967404196084043820706132705462202037473675161984133243661684081354538161175942047855533936183829247888612191903482659059533047540576225625744577541501077849980357777845285718543243036525197518057263257835419553736943551998083192496692543122235277245242704279253861871307669131163737500137695463900129299521847028006821320105211152917533299675235992228760934402278535396892884721021043584415053040674420925668630704574175255019803094030547000312767170200584073226776604769630564762069996825882739801018660422914463101591382519300037556704004841415661499763542678024818585092770221671141446647745778369653326354138809700818475791312349814708367355905393060818001197858361291026620142190399443180401728114171321177364084142742737372301347626068679210419301542206317885022244157234365612347825084657522759914589617928074844327131258618412482172457632224250033140344649702780713508433450225775696742793558322563041829420730553864741132627776279360729103415847376852464681898889099202783651031808609200113405402372146574812754577921260247770080133249522538576799189582417175649268872442345703374186197032921447804563245602975347403751057453730112331079318609322605831490527983495640263561703077028349502449060425731572421355989094185252958511664617302478258223299039482456132264508198765319511813378185857708174916028374655761062070206280463087488860001415451602654183877006888882661559892000787711438677339619691502926722864086010186357284588769387280417893117068657382564523994991668009471557938513882020582241500837620090615979035709571364495126849186017922639949427231194477422809127684900910957642484590974525293786334267143745377078934906902327943677493379846972909112870225991429257813003200368187681048177274939436634028722726764134733152741703645205907084782278917105936017513117518249971297818010102961791013110816995573794840526999666708761863295183148162352207624961352820399070079155596204437643949173082781129834142549315102395510339594661152723956537745513911596682128268603625557109100169865306227848902165892538969309616729114028180170634848394729747046710480952189038788538173502640462032045150576942475264975201462993854314089547593739460818753944498415469690479664232865408245741288158829730158169020508879496220266102175116371057015325522320343594118059326140544954846622897754346779175006765885111058900679276990256648134733171404030852238889294471479133795391854497548027957433170719971963386112947636819175642794603584156296967087092786454693319982470428236241750018442620272813272954733805363961019850143788547793980103723515757109771489587948769372892420588792275329005450963597167690774270652663281886257352832272230378560714762577198609109268342225273152044652251510634873062523490322479740720360609243556775701107880418788678839962076518390700169397084682297576449177394956843558712876090536849680059931038390378969006616577907067985209565025651292929193905456138029886461319003624923782146083828738279043585149177157319476854403303250288701401357231276949515816233384569079290857074464428358960639548769801816734728192861569136889841199763803230230977695453306351247844315796618373178455685561578145595808883446954867621852033044552824583297974238129498038965236518712201954203332342032223634609057018006200986875639337607271442860214048074182876923691358478932957852224642947388226843542480575723705973909086744258193408015047569286209178615718485244709989396164523519461292872673044713553789058225449798816561000642905966411251073535558307822813207434799542137616963874993122463392784176434880544379032732923930121498763884651026266088859281224082891872748799968687936615857642091191151390875295774596880947865620254113626394209615795135831679964646220866729264531381826291227918300509078387937920669195644383669283216235715133741738942250905979568082628854160291151623396158596219678294667328711429958399449623173546136374844974823163542114534992262406127907888305095699662021512294034976683741350445387322291861293738090884962929446464201326673962641285144802326773199462490868783263025630239420886209452218036650152238428483040931678184718753795287908554321385136102782152971493316803182874526626374721898987059596327686990518113524505342568773516443179364929161030382550806564782207165029794878764865399500876388686110939233253010680391054601833020022100818608407601732320375082606127729057428477386367074160646664072559850450894976783275124725334784258945156613557232087137819871777297273745762028675150672047445920243503608091206121828792347160852880804175995262353603172543337924259014347221416337208250623397452471346332955720999770063534483567991750390564861126877979594717318690508778175926969032381784344208539280027141418788434090709992091500382274429963708367338907131562894694727627689105060154228760238649237957862779883289555916545706753239489318851172081009443793753815263669751587861166711374411244015338061803962137176668471553824561722023181350182187045227685215270648794523218187815799693810419545524482366769597218301745900920582929847297843108285034658997673607965362987388988301588439834062303157658393164890713681653699472803379725313518267234205780203625282464545768969284502327094418722413450146254642927741351749966066570627937221053492238286438104016970154864216322360476337275592509841850767255326417927318217107906658068965144939831991320815291088180009564502398168983737173970323983660833136122211946859856788409455520362906209118311144430306598291191178702510572583041018924845365019808042401051875134633630943883410489299076847878111643583411898959565037339388257779987816859237294662959132217468580756913014934179634102840897613994784814928302185089663992129174078878138064599915115842715461736924140975281255155113362176437355933443457291164055467931201875632531876275581403685098482044120136646585745305842002271701511368796544524310717027321589125631452161483211014326571987449854568537366163998625889440877219941599568545894570654655798583111769379720552376820081519439652911349615801860507067721716471754471318472715643863143714966512919100185624519316368454230969921597807309392274263419173989858477688387843612446504707196155637555284213262063218212607472333926305490004299193562876245144849438101897541653519827803548831302147148892436231917262733888362981020205440477687176138063419469525912095002097003932089804757296640749593948904176453567595999530961057801533504010985517189548046334513945801972518947588802315628776386400926492047245263458690630381683423970392639715904490057207262593636827173106341544532364020197581851751887880710957355007991763704145809000646379866639023057641361910648335007271415024204829848679643461549776642566906750914187816110803341222616271252490664956728269830596362718404052271563163867746350594176766184192582278571586156595171085055166363388248171874592636436147872562168779831480889015251736195759895356543422728712374661479922104507253932577808162744926921165261885962784678885157945100746755550075548142508801341070382953177977495041905776671329602238535868496307579799036171285304431797944692986854952910112803370514121134988766978467278220456481839007730664058420200171587399312934675307468066555431385408438630793588063891665250880458789678324882696623711337022745161144371862705983554056795744113256283418936310646933150179328051097464246621805268079327502965761163902164022198241659301933330940280174589701948648728114728915042917047811214001822058989839554324431719574077502116423244228990284397469660080216280517167256007974372740479649116076593674532436248705203158424188259775344573897999553747040331324256754060212860809239570557835332916905451820705094113628505100614036187925098481482186446908368492391434552994845545127650809229879922922197951632340949600152491508629192807872354989129680903539773812317570721373140154884024785954188536925745692017392114107978892994198684390813440244804989049863968626630244236155672650467606623734706445608975343883064222356470747483026299307825411436980319642932948351570599348398310405992218167777170393227505649814336913765211754139970992144714310685145290562957763196989346926842030622331749729707919973515274808952377837267985929162732796898339380767317880371895870820581762994233080349682324921843892533838370419642169474100003737574751667245112548461420820460597297030076339281534362263957420498869750740574462762529788133114736672771275618642047922220137305786387926504670890011540115231315755407467621042641344659306525634530552406756429599559788942274910244824910899974427168338376027868695955686133212125269674662666867591174473136843178051717110396221454828332571740365369072769263081255322337167078654769833779087337651404263412598222259839217548413961762114778249294755827331327117119097265842537323338644820597115270861596267677317817034650279920326351475779020109236428031582742082249727960736935935466418832327068510150159683987181364091282126718746709475385119709909880871121547328005557895784892329375290279180304094672457302884217691653267653016914995708651102501359528493103813256843224694661972813342056856692753458015269222625950541379417274215317182523511642375073726579668984543315804958566153047964669430618194717081231976536968573756742940814169540438234876978154400127375500675352044845884261132522437042514952860175114288043929867040742837326425208338861898220527238880587414791954422454606780786630945506707837421002255690016561159481481875365856487765513932088643254342111554119629100643131900420722936235728040261437657019381926945353095038966877162202685361764603332636121398432165064722838201723993545582862949904740585754765386776350512985740178755793987114398220160392252319054540269653590269106317317422230006277223046364860129608380364257653835510412484613835359917505561397974277116134012103204851148636271000202056150640151223598657223948950824338071903802248593325652556211799019953844304876417347312476532666885529228149661465551753148311841557847275755714531101018725967950257454108414486010565855441311436246106203780424172922457123260831721942544631576050113090095895740548283763237914332360725412490053495878508870122248468046667197723228802312465377528556938288187783189336022706696013177120583391269569461696036860058082514192209218319653258420335234838441245034870365530325199281776194459366868716496480214074489247525266122826045350022592718565322323200340775376229613433851832062401934336555945224358308453530565003252451730653101848677226948699230451029019662081135638685250473499724565330740413341465486549604094602176817396108554557276641367741603615209509390671004076236682130489873939910345895952680095894538899187720216484129307675044638886164838781871048646048828570807006820512870655433030398515209453026516719804604542035974508579664750744852594007034799128984751056208090635716170313467083876049905038417964890007443147807424551171988343693094143017888616050889289933845292574130695409882602939156768996416833657393937461499748013578340988442294691395258337483872838843132413144441445765581989507220572109782500155602416374184228779771780298852503289452449713013975848751683867789356009526690084754027489695590636288168409298836992762598157216421071669406143367085199054984250397442073379571516781981000930582208099192243716946359640585635131113522446923010885236254671287387763945066265535311465679720106416126606912699985702911829325835946013010596198100379592962591189839554509941376962258518727989989417990694581273370728008255914532191013548010708245977385581533874790740733283367314002847047931509187779868608479588241000612636657193851978837401365709752587280121506279904979526692884729867680920122880164613051605850635877897936556641029242508479333252119929206358242637058699129310444231452248208572017060683153914163685654412910089924022465134753349665866203127170188730242224192521460894884187137476046691245194418624712321280339395239368886183612756690875311465574820737352750575018837320254714496844625545172582278454435406176995207151591801464013819007504036254630828643482791396090348971465089283711548848012803989266930642993582614662427856996984920846774332338714939732054682913515650054040097401141462445256734371574685900094976104661676728604823076006975648942689309005330247528752826485922195864432596690101855505578336249309583808071652756117010257961563078716759861666053299069779836405747741230817091113057541895194983613896186090855793349835848872436394396388050341645235226184718638511942003790460007295334880408461464949954220342189523004266679914612863718120725561201965618315094721084319093304025699149025146184569116249482525038572853927021218956733519091392489910198446599045035738138856102868590328001932403069990997776745240662935954308338742964491204898486855209272529118123476248042852913948044998658827043331956235426755984639634375342134840476196319084029258005387823660343864103302400952266764541188901928857567745694969814823518411506770370177186605846850624859745624147395150922718343218595222768424119948976743535694735980029038814143289796927386175471521372786348132428101620295506914499947224075885247639888143724025797116706264689820863498632757917141520729803541728551560932856343489284754896293445539374526604313745435275848216144112246774033016653204696554886154505553534344507549035698049730687805576659657358459201113932697730520157755335060460482851078648826009584416620427121849351958874204120250060443097175603860018014983860173437143075897592392584037034059477687078535391325424313509537527118980081521461258089686638507999120132901918547923716541113540642668692134959633637951006489625384352427895372674453206339865457116277020285632287633169760493947953793920722270341184363763212169522760612409533613704163916071706407527111766005196239126889240989543883624444961372407039200346709418880246426371843938371301522176808883098890849468274062977672305622082464529348170700513695641859234948781972126406970635314153674818664155923317430367299528828972413729235974794729477791743112214910420968715131864498736107934553025132533043476537540639473750057285740656128262002485265747610314358410751151252891607908708247716868054115586571090991735772051866808896543058269990838140474486922532484124605045014989197672908498670130156251637863218686219785887420922946567945839711994401680111505722335400881026770800477401145590531030651566704760641979514397106048420759747330706265580832003033169675789645450065220653153911524303774861255802497368525174100183477675952080561004667904608355832090387141298626009637485400722821820584544117481310791524010673329155566413710594106652026895075892839590757900579760453180640427436881468555806262538825327612333327713785676170603006221933857772909768909527017262597323251469884518195039451519331877529962081692233682328892766781161942314035559336235486979038558054018376279091039956292750597857945668312574211714746344309983761145815549522650682171600302122477620353593048600741342685159359199259413109047103060489496395322185463550479818463916001324381799436235021360096031272342537091481567372720984177145035789847864577189461629856079052718359541664950941523547814876436123048959937356698387037770657548930412604121226426908656761210892139640838535752091369955348160455494201404084080302612153305459612973721489880539288942045522261461396860307321047096631299147610939703397424887976463412667424580001320872556756764627534898769682126142468173213397376743294488451682143009516128522670236413378564987945333573655503775627458152898161400084640028323419502159558389700317634183005490500505314594657635994412514812329582811685505267092145649199916974268282088480822950168448864381333350377501759671561327196369815002856178998557450182002472002791478589319782671979753113840025268607780321230971657052776707672394340622421038127282784133744165633923735495402207728121077142550401005559333775826144155180344062542956682367150058212813678059006314800370919059070112203450323326393347156757436765943085980743670280080459339221960397146189982424285742132401718804868921857569319514810511621860059288542038202494858522696896492920914496539117688794252880309874422556237721258199013509093589345152294174690279523157129672047362978435205413280280488867683969649172394953355789581654122877145722015778929675593647287910438691269579333748961659872579249024999564427075133097263518672238139204782872437014034700568730065141189361233488155618678713195383028316688314686722361058973088392504496037712527892382291791844778053496744244780024673402091576574489581273733770624448314410521795606810462083978038133187849921585211844541621537260597767068685461420411925824596272255407576663985463848574041804595359806930782019492575450667819265028833606964702607948253723759862252016804412518461086841048052673800506950920126308372384067809168808348311054904443138692717060736239414675841232789821100544059348072282704702950800481405091909345422055483991428520378752556892324930590384211689377975632877721554263719074890848479764366516905863894168832794617138120449187380491752960137415637084313624558795279092338837151764678718302798411971450935754145235895760321150006694832215578230143564907116358996350871798180488037672161830016983676353253881165574760526006600752195564756290299535879291041477410686447543313494000880736897526537136640155210737370665494444858506650811610128694867319805027217583805445352197843140065948799406188996355564821078387382002554534085639236291880350939966054985032974335416312760573320265488036487721390426714544125083980133962902161048356747823059381487798458145859565736914868902880156161368402917213545785128204963426006113402791601030557859142691712969516367361206101658914440851956981353620982989915954128515198486468989420056863067758925537731649008256689286302657403157153529597042174345093454768905492413155939088285447927445945851809067156922871466719803323995128329213781899780659841259627031883876750117635927434696879118910239030604024901162266241625687480256334786481570902133479486468307027256442358434654911524551841120448606191238143994516179206981577455893898282396357491702489846365097987131497409322186264378141287649341249647869099561737018290694766331402555605337406027312236116958557503421256602566013478101756890313214080984159027713144900350278053218079165782504854545392713102054482497808102874892195516085256846207028347680664347238645949330825954927621996714181201995088015105824434871320250333031316904404656063539958547523128541025220975794413890188953744115904842660536054419739015014694506733991322949301525478750729739213427259520985566362787328750076297904043622161956535101168069333439486792309275517223963363238556652465622232334724646250154883308043745346711266572960457953470166533489136959247297606062771164765699949965002466660859100354522103950369057930839606600175171791186361196672210240003829434696547197662714011648673716093069148039597137629337127225800773132783504833151636881645058967884715972771803464155365408610576262566799330443194684403290214005588306460299959596714124180234635199574687110497628091056305335399219991820309966608475730190341111822870217484738042094806610627196828611720334993373631152686066977160317697984651590365011888048945575573501292489571698225023052042145136106295720187642746619340965863648501825843959377733057912754681524881418942070337625536887277200566297273326598745536668809555635589752570575292479960721029186347476520792275558740221445837964129833003221170667549303134547643193448501427142289243095352875119205120258325011490401606031239409225451265064760481567288838197256084080032360593328030429228998235331248563030106500979555907533229795352408170117907028222899389416996059933669374693507307158029921191854074860049058351281604062461928858341808146420529429482908649912017163283731335084765902933190041248041092341348201826284348196996020404998176539566853390065017988321984518588350824025505566769787802789610483445653888706543802049723887765842523647015574022777969921591757098716264446919626871868227911677944507399669389361372746133958190637577005151066284296173570921800829378212726383391997081526355584338425344287347545673566657277420121341564964493087595573829872633155675593420947211442802662072809288295386215778861641472111146882675917302437934949659038409448298555150991817204012999934871999126873820178384076617992599195563308630461592099107772863853809415151826470619620020914178314772892290363117710651057235693741884891803436628533185226800263724579498442781419590036769009072434850291600930523079887805183277936660625519091999032347919665503359914186948638369768265843876132312674362692353746659187812290485088244192085890790556931106077851912962363841528954002761740540564880806065098031427694287146594328888646606463106355951033967650229409450835000091206982330020981369602905311519920003723981238705378282694692491809598209643702952064685422333580774398220750678546573437103418777976461651797212686833769419720877474813419254079065961332100876339418741763775555555120789234798453973839607222912549697153201902321686912303812328473219709491362534604141328940451335049877655063529413062856400599498349726952742231630104019723357978720790966484714760878502872584681213539726672676963873014485959320865681482547399414319147129590961413063232552251902694676498786156317555620968438918999738050981224404540782986669146524503272067848009631676500291925163878336263287529736985729473530436814152368957512115176223843285028293190009260677010845578465176864542885695943446247703586986708433741125390730275584081470279582809335723010279453118909512653780257931404079478573480646346483389125512387909555203611247324775566932689205756197287625235297701221045397230385340291109763920289086171549637419808566653206921790700279981657661742455450634645369871892504413113037375888941865130789013593665039676680254917524606093885397734097628216394136177913576335771169087659233673966626039428239610412308029367571598061200925569107410666427480394861816233548261326511729969656166869281914865183151126336685330866705421996290166525862054644566437591843350258008481090405689378536598671697358053408483569317917154231331718898390797756150793987030042802188305650373839551319735759108659980976279434816702738923438361044271756342223178619577944186611045374709355053919651755662109005032519825323672720224563604274454069858583977902976559044386546247327864821702533744051918747915414177920119279252558441792942945846725137081388484079151045005115333914471410629826387150115116152429515032036140225240269854147878251491222334894421203860646986762036589820073465846514400322201423209516628273259589557025522915054844534513040391791593098396855556106145584460095932181594483557036672940699831168805609053859136365908012099544942263945524519481527950590613255332754366660538921294358179983272776269623007089090107980097971077249850840488002551670629680014708154538832390912621882031515737441438944293170352076077348295739135968562616039503558173749402242397289487426675425881573295743822786287097830316387684085579476893160638805746471530141210677224507242055909279238758027860373950233313358857090059947215252192825476048899062483618657240640433846686821083203109017004210133809169222364790512623004819781748340139997189095190391766850298020291032274210755904155294958149003150628357380785465328563747986795156206895501607263048639290242415389417008229711294392586362871206368298343669931348898569833438265853704035644410032657780113038697835865770126569939771440382901622988602405903033536708176677712051488766635187668521970503568847902545183393099436504315603302436302697364881292064814576810383459171391478231474416856890728283391322955817186824947968301067331455357547497369693915953183843428777533469655816740254328188152516793635768625485402610185899310465975161099013973477385874498140761880630942919474859693424266958323835872011187464698847000380640859025072227151881365665738506323777522262186330640178745636933972066484533778692079239204888526576039551167468600980797965351435351133147985440811359582128716463756685036152564618281667160776860531813103502047604788250091160815876857394629535330616890115894628269834654813679244396549141550211779226143158956042576635289143877072148044281877897024501247907643165963495223113537380094543873244160196574917919698710698119253868221412832857803504836373251874256668422380095319231390117423142755107030445260093221735990739815949013621148348720906419260626382292177361585092155584112580277873966212665258850022629141136561519086999239790739310268976109043311402063396078964427367330415628904334212541750806419458486618246544255701230529246443456101319526994788688737382016286334517492862298833044981284188503008605812288361018944424328372635146253915665983326303047617232904714480766605417575328517641915317999502651278535241418433848613657165259382742451062100089508020924144676020993800692115591549985689335471487174569445159569783384141125063229368486235766362953767719325247299537113667494357129394713560797444497113186542779217627962825233277716547608779877709390305933342135351207416210989140811865817235091299434424601937437635775228836114298178961567446512197076221570511647446289102753125750560139862699588071574981192192409019079363941024452869773512459298742541007414804476164409910377627989346661559953082926881897289341257096865956666831681100543832457159867817199619200327112109249312004947367418839326643574198877955400658575503535261785041290203143863148829905967181883982949091591500822085503115209839949147372670057347708686766931454861016082333390303688624629160732893064683242352056731952298776545044734794413984925756270447696383447046688240777102719290858103486928863272698827875732696288308973535007349502289923564569099478887289825622301407773720883338578765141280453868118828509775769750680522203710205635971697393347685250651664631854800099957773468996915911304728877792101455842524823110990477140258622040209200872150105715723599023430848924852479427675427947024400960948538108421325395609541123680282960180258242663795575301201680204767139378272380808361523379894726539426226904562769636269828099236337851540105992100641290597727680068762023021063618361766428259229748821666239273885469245335024200038600512804226669646487755278542630156545099603743470689904856229288218000587392350288246850030718355868192552025126557201329198338151708868083454244959042550593598720514011592134286625196894893712324017091241534234344758359009612205986672582993763302270479259320463875191479909360333322030226552974020077502718295826866712993487621679160917517913600468409123397157376489712737982494585471796662699948662036190211340179257038515587213990051394634239797358159454990059887712982769512423566490970995019731466436821516581240850926672584783427184130400074849180516558962401545253047027234333393181507636728730692812434338648734909530201916907926242683765287713487855016213836923857271842847240260459183458681895500846546088165720662179256748913335360773203579851012675716290683568467710833354727594937922037124328182231092422232820086438366640127585906137858616730320276818234476403002583245706980361862328108099761018857829440913020311013475173683184860861057530627902444104604707708594810284863426517629996809581227759223685989949819928969783439504279246293799750582856070317310875175714473230278462592797869268530699224279123547580357263599132046592223785501113547607224466929197369634754298066373432099015684841672126612607234843941329885731036130133356011580279606775841154832352124545413150149432615491320158472852758008816224001574225949672220150768740040999077142624802295556904060347006380258004385240339561919997891871417972451498795418332742995292650045066194494444694178571173758841648721571340980664923119365141939789458508302120400503125160372971994201610244424654852073745229916466134234809207335558593316079667403256347581475325710091093521231747192874287693744766337630057115243668891630472854425762862319040708727465099502525272238777724467706801224362110556762686464592221230707787545692638807529204860023334588675770504845083153975115058993302598316965082442056238862319796707030244115842761796197077209856531741289094900430827091677278113142896214633284375138270083069235594338277497901611635278436501973504455117062567442646290714881545493045812417597070223582372148389701264588017766637619203789407266828239168781465632701966831231014230461404768369287321741094964399789404898850555026427298878440235801839067533509413282933425981794038327350111721193970965988106250757511675427873055291000362905060010816810015610901681339769043893498107998443079872637325132747977857377964794855329343860663610687209429675102818824231537794777231952204247222899536175335449617188091640190224262612560826514613696351599397014071600156524370017989474767748260492515024558366656362788444087004165136746655279568113710972195955649505013053970945731391837159986682000284816478642789926129808262098979625891838546957024595813764801953032288389794435138532629974539058528199081488036105941373563479761240261847999053701752196264587941932749310878340943389040100260346530050378965076098679734881788152540220366868947795265057430078940610130711272331717146010218039780033299351965213179731198696564769124320517035002761489305884056841654346479504353670061420163389853737899460466515173142730111652554050144362633714779547028705974997678817978060090821499350559179858926274105043505023457375476478433000945936750340969774043753333995128693834499362820842267505626247816477594311509156069023476461852663924438593545424698866054264044262785353350747762170373349069740534964952830414963956414091479879102858411692063250181300614193442114952945264322872652145851912964684088169606620729667536121185874906304915625154593124619202849390422096800966366861051404583463249787048089016769870028354632388858117824964207591286863160050346876932431109455899179894107157890380772522692161184265397355720289540997011708178126332000645236397499936067327663333827870750671134845500322681008834974713865890553332569722721297988374963986862893187855870897017894565135551152074560454509061125999099909402402995500857274191649376487994174409458267247709864420880809990803158046950511914914677758707103326799876010475997298166757708308216877396047038303546399621629572652680335509053722266688118946923257365886231594434331643082530174992068244205946587550418512322476206953885354427173874627767180988417859676714977331098472387304545554610855698881207092068862074427363050456169762636786622558321172224145305079221690734677665431012917444724893165464377347476961620540339510613764470819314493026282570840357727816489628705647906579887560082304837239481007483899701105858216274836778373860577088327145645868967613991034343478353612833875903311455270340313844277855290962780509724025779122668808710137424552583759327756839056042029692094185934657041736103203583556612008624431434021942047842478937657051055245930753683626225240281866605078154214213485026459276031355224739454541755997684226072957506858154297935218698022060102416686101855369652192106475320616272111039857908470741465410207965870737345122213781112291184683459161810082162113531785143486544238192596838468903694193627701770389534295454997262128743117821460685756179020236891641915208852848169322248872825054644631823415247863715171565144448176703097859383655001427377453107712262300152217816271244829277237679735924213243440146494069199892447992162689340801671956099832835879696957525277043657821376862985191753988601329126140604732074001757836043554571204874530834136721077913065221538622828924496942034038525268057488285553630536031328843583392862135936089677786887776760697451032512016191986693810244453457245487188444321174540020134758175447835946653673844296859165717383209486963073090087816823934707406179320631043877231685764880228861933357182665925128511514907864826584102689341279722834730955706187116440738110450750505461342345404238455263404989531496281589586676199896920736289195571576862805506084256213068177851599639643492691794820801956455176919499887298105480188983704052022333166519992602454342206003315121570858921253399862458367909043248043163746012874653399623184638000600885735489491912829965960176195374443728079433390381494480001747003283974227061634401869202075991998966207228631436349861707617033681908999228670139540523254378117376708015466691074961941039780290166487852053837415457675417893499294683873988465111655366694781290887070868319804222694325441704731684299246073636967788350979747831366809005062414518585494279846106184830431501405468889223007027870100944551707987998899940224212504592548532977795286290976987382965064668759884971622733509232915232188108412119884519663500294967191331549167988420654227308671128730964708743235448971029073967546364121644086754734028264728539457822321788008351444850993718717228642101605822802174224628752407738954774998984274578927004997082604127025023945897623390839006755123014726028409822750206122213833631878018290712840595774705848698492580010249839448187675237847961583855914349663343015779648554168166410691714691126610694895720891837772933382079147494372346735584120384374698959235714196592609457359352634491887618787561268967139167909615565740265026472754609258532247807115108028116578077852636278581344011334386267787205210379404967940395330651028680634691508789778058340616800216665939748878417514368952750304624446630639786440057526322266206519469974736515041009024780187004045022547147943159384279695348621157227403426422953293137892746305773022733616585986496496073310563197448828804034268211630174268038346031418144147958275370648492772718904629054122290073221168734496504924685954907237202838572447838059432721262989271087733543301476003579117321257783752715624875899002431705620971362690247611269739610709758163885734627135345741088144687571164095847708855023490963925481513160085428626044462142586285567242847024178833379403861486841313949132040827071408900928095831083050133445956409359103351057978848556919944010856893835714099070390815765539909076680178518308900318600760979862526980287210205474642479409579407550899197890059077677420457421385954356566075851681432276931770649065691826720072801594642779945810807434216055647442911112506518482928271745262643527750135440050980693608895181690109044690075166510949497996904246542783383303377013420216243324772713839878263928780982687732546054959923197553109948357279967389446491820778046385267225823546445473439830474977132215690707599615853698122710113271989315713260461619023557081421139812158532693912231495359159645518852546679320623670611900642409883708266210733483408525701778742099434774544352330254473250282802929353481747211494777501743354232668420135795156471195932509953211835206335520016016540754858396112983927976326007353746614492047926905373559680838097487951046336727657637505382420677607309428900472159780662283801342744753187227646107702203922152312893800910497444462986782114867018410040953948451505610521736107146676449303188507023701896130056475994893224759389283669852907097403921565495000395315373065907877164727350197933085473696535460687573600951672440066552018069557968533444001904250771481864338795380976098947360818863813490948323222716365511844917707722059258335838477724389709815889617053297352616872766265111970558945414454295334117515535554320564915676473529421531769528688776602402384310897100461564183927632447763769917481205343952907089204558811173700814175544967221579900763633949199484497552719838142124132339797662003047089359538144704706778491714137439029204928161465333595088048191383809341232346558267311317621203304039691599786681451301774386565583874154680165452639180927089864297574582856867806948747259135652285725835316282102505011882843555711582268888500584587334218889717297568215236836523290095972798981342752755893569256337492169243918479498363833874192852993776894454913003625782318104665517911275052987628862260198847930432191497463838003994272597442263391558777430397602098439607045613705661127898017815522143291029355505760956372673318990782816092559893298535869516438822416639315847612193887786250203341672334952565164217429781816911379923753840656535967301698986391818257811383255255998219443537868193260609807391104857443874297144204383486503736624472960741409314678657041420904447533932899320780051463620934280025274982336102545728065903740785918245337340095654859666608115654796951754090141817984322719743282719301079563624212411248049960978195120639175548341988385173854891912538964438765507236297290812766508658429779550313491048448571890308674401712683064095033574253437809582415229256078434192228894789767842836073035134854462689059979571018032996783782067037599864067615519734041852274970253420876982453545185439652494546683738197236542470390516637178567677609681546848534160557319325040031852764691284914626226939187811906777637443818967427056220327356629435866693073951704790979892284052553772368858975379882125185367894629634574276343066914029578695437967144847380235578812326159479216382039851336234936723211599453147838643889835628788246513162266405772240691179018093262704617191472859479573552639860756439666783647086774386853518321325470091249891201488896253216877815101193385350530983139056264251102249947596361554491870066808707933550484928827285269349633786157263692986887836791798355074998968411752828474245590951756906828973770381798083429683304470796278356312816104672948490447033072911671746689883472879971539328529250155534754244940344581416648487420119573818762736480257605436680762564721034134516632297941181102044906248119976942971134523842420079221491242306136180006673009483128134642146288253644586881144387597559586564795034941308087132587402127361444088758584306016320726216961119198153538043317456515714973466487360314688232613146992518702254561916113960539957887409755446840854470418458229779874150965908116175046670593234601386271680815063112377287403030146568174601436604706206118337254984589630946611064823213449006648806849604336943615910380659888757956708107385600809193877695575962785747172369755612180466093039872226927499838868641173500618016993681918285071375159161852460679947157576348117477914963329606849545553658525332785621830161266044609747440545540713896495616314064452374817008047199305596447458315171230544276647038419190873658255686169311065877973540898753534875903660893399200932591818973591447780576791197945549283192263838985521350966496690770802020948438608890238847994327794545784295010552595012561437392673307517400876694996113436534466213055545060069295611131644176031189274306512422970191200912668727925489531913454554466082124528935167544930593670310747052381324713265543561405301877466018858072780229348533609414538035191113790626163213652074408165634402769687336156144036147211709724986640978186625477657671456308203893284098306331272530082594278338619609580739683601562721409594127270566003767958166384916842133921441324943820052890939430267055806738314173183168006989312310822911884698806577780745609373582724270560274462746764723247892423550356809233104723727932862929783284936734694492459906877626194141143159306939809727124140352786305151383949464094177931134155819641894959046470868192874332204971895094290430571421455406165965814940057007625547908138256118071113460846567268509939706519611710956864128942683931576386709423184954105822941665107820423024213717958721856636820778058668169929708648707893606956669968859628258584000263582946624355958526883655774441150520893508878539881455798851546385784158521744494417794867751229535698608725712101621229874644642970863292675718642042377381708304698806733943278372767688257942147258353280043935052476642762660080999669265087644048881882149138892335846852435215135510469963732395669399574183278232572645977031608472430340913830788593186188524618967138831249363368730075328298998112014866841855686650482951153396560525960136011712042954714545808595714160529268697392037133378044997674200216050778363221262569819861206481206855173117841329577136315779452345983957977097715409385881209535820746599882265162614365436600203477165383129056520735105650036203019178184252824881988703434642756695321462959695993131345101650376533877626221749269970980924520326364289739489639524016827050234791495407766826146032918005569526943946584059925202901885481909506057047249322912066407484470114240281213546252475217613420046292817995785173397745610563616831407865094846814203450014828888026685071751224552168307894466095719641306862305072339118459203420305753222162983052163450764208053288693668309957410349749930308109052454196629686002604421083898339225678665914454383961692524916442381993372314542583987015682312532312512945509200160473157730725512484299975997576406633064697659145758159292111561441950246259459674799187098285511899884153729750809165809513694348942311484583904506235324038983443453714076254283134355077158755343021557075133341097701911208497568446760606054056048455236350332543318561044123038631477627355056038336659475229684256923022151880128363237199598868429187224046355665957789461845553464958438559086424972530826285957141861687054125369134179617776725759600993484317817206026672105046194911022100461885625434542161048005685698007756937925847410237302787455202582804043923626552030318178640757701295564263389442858895531745580183748090415096385278713866203285746829809117814287640342539920883055514367710372348816591877098582787608732773570568322463553363757435690242531537909767803877578209509597790772807660914442106190922091875448191557554269395835976271846131764528808080691586825613665250555053434192580454717586362915907815093067200610796354522554600505866125514209789009852654818181610761737692818137820763855938691084899571594519973650404497719722429703820051312268771639572714970838742900464869499751757249709170968470502466863143270467756752069424348350274713876921842025240725120335548075870745403862530429090267979227827568018650926827168236595000399331780689215005869831271214676370531448093996540543043223962829209651198839908693648000577643489610057693589582586427639715994737695306641301162322600706698808021337568766668286746714883749030974074771401859759556590888824690895095052835131058231436567581549947057870540846298570354186943500295949776163721422400759439701679998716490738664762141497465798735822631069283349546684765816986732389366231251533503751363329040381803647582715755358205160245053057285577138924944774484284542493594962392996889273592550790665681041746297566453441907798732416501170693170228049632721328272789374969958358831825976442564102665041781585483506439459212822855032979465736973637678781481242302092682295234539610670038081718831181447369130046960455674494410905285886504946641269913839298325696913089804344898147397956249605081866006696545789163225806508622943838884343514566954428897581610323509194589552782922966249838329814762803980815649781405843391859472603595347621203409051462259319027987111588570125176945476400131486175672018071936389074306548134694361276959136806038941017724283776649311852313257109672620405327341669153565572598966757312408257765816508373418000260320003512338764568865362552669725314894619032025752115375368268547187099533642550204928690075484780862813687882945999318948074169730952582708949418991661578713196169786355862851373818094278053699657281710635396727156415964306538624818266807587263144345078959533832419200093856971580650656259629815431654303178253483919442207420940709045442560709772639680824520642439093603975460712603886301148745810633410261653948936564850387410877430850944588311883707966725225212860453268353297566536054025263229629871734611639455469127976954435182064495498646859137791284868368031459217482801926933606210800744971602688879390470504151500491648958475320595276538423360415364101864914931679470077926582909303811343321482213711959141082742944904083152603214572613260750644818568501248829926666339180694152543202793423408906857617111857509045920820320097249983388309115583073933216542319105486677466178591525861722873110176062248422065688250374691538489452141271273865235614160470178360782977469333790596221054236945039191621191277667537267404298464713879637046583428750118039049453138237355181600110645703598160945671541431498085700425254297562748704802285700700057910546976970762560205183496885091564093140889277320317335437544725690992867429847583319058599670653114457522809633548515681008611728163910847082678452135459248046331198087201454621626905325007985464611235010753660148253248503756303986621633138908335130992898423522462775572662453799086687005326991745446613680636548881572501539993336806123808545422732883244907555775428815203045336165976743921759770108167259730609894554388841884720796711018743663823755410674956036736018505989759610912320481105397356512240619398566918900647075631095969087826102208424580119952713023448479517779503273684769167808469586822842785799713053004706830268432335077329683487167286065426184861822594609059862366312564646661917487962120456335320440580251938830302674576766746270382942692369827514529209971035120064531155762715971334811330904596005492091995219048933229718924132742637796050865702283821101373562340157178949060109011370974928756333252879531948336213388313240638660312022104763819758884899668594845474128042468673596428124961002332342787922463533983551995636192774458832265433804401485076145154750148415677730639501309138480270635905926762939525379223839703863025914800595186639605408795717433167699170304945310246039851125125172562641332024539343287544096933443017761498933971735947337350136650814749236323986183550236144077450135252983538940297281129852844093183291896129867781585827164642032705935619639254568708489465506935388517838297491983975299552197131076182521926017025024288320812423358385557474744327986013482828240988760653212538431409041338735795774371334944002158545385785062122171362436041293347905965875853253986060451150401036574199019994765935878845551271000530144199670913663377685814680743806084353365712676960668313951861972309242790364542112286706087769190591831866774623433232004071587611196450031693836522276367797351682281773873611778132124555277722658403740516083950160098957839834682634762656641150590943812490753165298385806088822630239805400212265620982580787061223901022429392252505569898949005415190876300728071641880931946445359748018554484221196933597804580639798906248219061015307336187430329232297171038878886947644159576861506467907087602215534847522697881977193308951023608142734197292132965649499998393616137869248990917059113375131802237935739497500781032723691233755873393746359291202631575095995352236380235310973590190597445562856732102034372651614995349605461722888413651012648338930110091257283508617976397144415794619067150190754796888676553551930876018586229764406342511398427350601572362785379441814778393060111006230440630329849556715618879452903745682966488289762783560915943908222206232873228653230717405597564607261717831461017028781527345571507276635527605817583457285281039750663262209574712711146972172957840583285774727288832451653312702742968507269842090849447777529640512413684683044511134614356694246209820260150233057908924041935131702892046004231146725954831920506108332829279134975614696421682594536717386633752664707254960849983902890840328494975419879390887537911308403018536672038204547407146213939770424643932968662605895374026602536874985483344363388446301701892381214202525618406475374657780904591590213070515864351415285244932851685113489379773552644059848706009937509190363323745532195440183315719190604943125528711140948904061758848725239361929018418077478626913236182752809870687489365558789196749661869452971144300077458029607294878470351767792552285723242124301583080239821146064931102541004220414249123269201726613986985055996205327732749572031444895870208041644581731694197719103662922314632029057084942088720184666450168144789315969241257547627775985548723577017429115973264433953803432240156969308564662976368940046662865738695483567197945462726615474256089262658077661667437345316167032797743242306892040431913134148363754089377973965056788603089624656968826763605482480318482156360453562067715626550236525349763758178172825938744570840183855933649662132586641208373841426977845500319063153796935785264909044631251451686550319286278187103071982242946195096189874680672978770799937650757592822611453048972644469151214057589646751398340077192790533042117914593021569312959199024784450867151859611907832027637232663837531602431452017182063646163529157191387264789118842536452299156144696853761724487770449999692902914795381190185478097225012383152990761655293511309711582407359360244119288312128716251240201057304028468320926896651038143151253082024388724644327192957756955022897127349217325138179800222754889836463731795590124696907425864718965543518955078751412352976105066634256327390539821678849060769854817831550270435056265916743538545150123853756621972045830606970294908191879774183588355883012394113354981249182670633497309114701642663739681164334730875460434165751725923496810413129263189401002870943133801804071988853789975332876279507789190189125643028568054257375236977310285000644711959117593537411278054440697616601422714412804755913568739718812282947011364189054833742017925122349068167816130806681897037115793712858674264660951654930626303015889318128237021384177542312749205055087579624697029064020630388657091436645992087908254682294798247410547765253164289773419762493842242962800335152462069417374001301731246564418076930141860465174199162435417534306198073023629186347058732675802150957924896614341360235299175024612704863972813891883055203148658592030082549674575445118634824351196443274284866131289920299417502089639243682271935456529059635872710230784879711722257311009138790146684794989294694439806925671563880636511595839873548652571637607782960907371475879805483504506330411741747660491536949483637422646706405506375807641711721594525601024105075252656405824482383838743222672080728198971364426487184363405335643494615861621850047853262952382295744912442426357125695636274327898133658831940786801649696430186878842365235083627206551569113933582635355810105393606311389164609250628986978251295079128791786774334126389983940669175854638321974416492407372940274156246187105483901154769414570697471067131910179645231386666585682008745967002329436460229365981692214112072317826378637065925057177445959952493795856352808243241130488788680992864049695798402553405156107094086679097132077688896948111143773311404683820969127488211907166597848941519747373932729861696799008957233249745428065610930828318302566155324786687538601841738841068134509662771324453321474112204405548622255446558340138100595552945413549745858929422432873731355073577451228780384824305655044080232840006005472975531018908503099793522201614527192711814685287990863817933935195798465250902721957169814084552868295701821308250580385073343638374028982892359333185089292259426946140812982790114963486008021087684736216529179144172153032357016902272846081833831016287461089536981028757000731354947396284058146719788106285850835023087114057409900681343833531363787648717294698430334462036916598303182872066423357410785558345814145024531435813075273215760472208117004812610800788740049064518998321005825316637792665866227416112014037680204659729212235817942411393404579535243848511025571392822516383424649118384509983376176394752422495964299970086630535874041582248521377231832588305837052609434639793339959847007543637605695891490551636649542536808082837399941152264460293267061940858673282116325590959786502796040753744106038907439237696455657547266735408365172462753182216641149626838294455514422617517063189502390827335210593839396016500035473620968696401386788724219382872475814588573681446613316360589135892201670672301867671665772686007477008000624298709881817672195755407222546626260462668064597052090935258132459810652200796422659739487108460009022660217749813014202993955711617337120716960224909466367948344398690755415131267239390693065408214295580181995059225511645448527388221010496139975105163850097528427719859130872163264028211804083592364037066677920297756168082215049372449768623867375507109711767284574342357911526073678604017633018392466727909153813257942130350544344662660444745626596592257498663660921475823775256312770256323054407585787379220005545271454726996159250915000323673578541243041234934241315385783657311953271492577594396987872044075186229172377849162935102479172880620753026077515334223770580728748050105562015619023393974966151803718582882566618977310335901851021629051012155988184498125841921275248349564337199669830664943409732029197643190395664254749509926214275553509306481204236783709429873906064185583197639318769235341174154974580423104150176990722648553828568802927420953010297060009871442963870802913707363464679517883177179842315694823553901945666105427257429352604854650844589466248997383412248506456502087339186995560726735826062717770430573481506640084297128001185886363642336851853115585168742375358870903153699603291923877099447933244369070161592778721918943929405639971785837436450809761698386251191162114679641156037712496842042867580642525533256830625832646038464729404067975248476508508588193460101191986408098448961739522613558304871209825250298260859375571916558131435955095759807491509518465448520137832162036776727453041985696364437266755687924562129915985026732566920024641768394147854070790320609985948912579701420157242891129044542730195533665802341471069116588256626554487910644540288529100246843111438814511006271146493394150432620677440787905917433403332657436825159595837671628751224386395447107651152848092580507407369957846710252504237297379801053596604474309649557020471199881418486697559871689666940062835176827629790619256930175311780933557426372225365953843077848849185979742990986999246498413758043260574611742858142724355813938287139997327825071084337750506714249285176370963978320177722963988649476793806856624305605454942884317973728950513690336799009093297778667056351417226106008804573777383441896301169944662342503631615911575137210579415718144997693069500924644647730812889733424639946156051895052491164369208294341999032099612454411371168333025561482197342891238761974251523663735452324100862821888733917636814159976781832686779250456421296056630718426236400655573087681536994435136558130988916522186114179822185997622076461819469406171879978797263969661642994577756618532160662686565661962562640675847355149440611144695044886530266500824947139695423708849624964926424692495734441307740099676470194042352410886233520533665148347315841003331468434368483050891023145171137410670765040768618898488256998644861736261769414062277534625159534571302533530448527389669634497370797572698592606993069345504521333065813980895557212231616725363619364835666592034762730393112114233219384876643686789102279946152019007612826759698726430912061640518664402188607205429821789842257635091020520865193024391222489642259761310369207887006052323259485172621125382427196712331080749041470097395833199303360821541830951977644654901353058116442050105872193066129998897034862668214181486796231737733815966939609800723142992820679350016025961145009502196001495236763064215260662514364256096403835089557803896189751194656699323456432709395121351627186517019533260977188750667558909649179057648098102675362760314395181420530062239313573896426625159618371458758614658099052480873251720974696226709177785104323937439937875418948411251719037957788323871798311530962816913400642613285203630018033200506960190834016460497423510044394090393648520335708907594977659901410192431047723464855228903023654312787939445876241508364090040259841857247557467351560440628419191653113386384439273323485389610892300656925950384551174788829864044632631344316827701709832161139452827976928021583004919680473896012413535339230658544269406203079749815060674650403958387463591194779004211499844440112891166412541206004146195283798586295800169345769056687616461769342350276840362269175395366320568594721120115788196163733340615514063229772224276642224062860597127101032166737468729691023803373202532758568809531990393171167480952911060278201801177552434613530306887267613634524404043961413116308769989333836689099923539303012962810007863642495867418587832198881240866460153424238826973121214888825052374688987472050955945055504201313806628548621728483975279476845669862470487838672283702371672604981030895423650033477173619571938809720458500194128165988459855276306051777055191062856084600661447011040031487523833249346462521706360231872318885513165952180444281954634397319693898276203323136683602104045547739160657289749525311685560169815744296103620157831454109652851506162165820795219763294636066758448781387653738096657467731332217024405124602494305991181011282047207129484950596933327672464441952253163177131062166924372320171428583227936456530029918701866499032833072601873959567617004129788027502961115442429743917880129471312840947422557856369294641211216567280906615651594518427573874884126284304930137514536714826508959748679929073784211929858335063559694228195817179324499336651135684833378796456866064109274571482666860251609089748710024763873290072942617723887948619802212774744099966810265442323587595581130839336150415063922583044513389548197021221747909194408361544096861319704684046484110457073667969706605823546027377455388027160159972786416235716349262312103335689129988769941524402095636307585751773135349798975974984671539884975928962923440288715466876911263436491272503999044554854380663314901417913081004146144449308787420160203784030863995476596620476749746761587925753451562400170782177712951592008261696088785072686094762092559493733471850704442585466714495026108201523948205852618405849276728158731303967830179123341845558107933419076395279351452544712700488731674610183823667148985302616659075858554442167171666262516981335679382888678522856866711768712979507178263248747444277696967789193688914297872258483201632003547009821632315670737723476103087231776833972303480230703928572630387004479779349278651211810432758229394606229227637755678238900488206045716176056406062464858281384428280888818989545340413704205379845378704427063353382380142762385816981599094502153074104328382360996135026443004452610492509679219660626525793296517722228883813159654101287427457190018473798189179759106417414378982430305255468133506641967448631713392814680652802067213841076068873837399981148466022394594155311045173613287285560471868892113368312615976391188239055173091535641256671976088481418237836369421049402733268999436899208752962658443984881953562795222657847208316531581576828230268058422244542481911355845528709498113273851148102307296085519021499361653612115755356805891937807251232834762495045802061092771701856352376483168418068491710851072927081193884729220532832257808902883821544526121125301297055319347263327019018183521778316993860257841867918316205248762008934017871187277456808948642112686433437180329718871639985890723009318514219779742384495585493910990481407348619797123361652354757913601784465909913103133328807637321035056197839729180228746794739643991556592981474866436533525631326376610746494780101499489399738202834751342274062300661359525792659270149374729009160140284428942067751061420286935184549520685158521395645624885836125965822354710320039001268321706953449051161468160068705811867515689822027137505904868678203846348798765583298949243242890687305384703952698937429406400098357307033850593193756576733249593390141625369866894689782992282308193955422887354580347144195047684614528811341241078078262439592939241095416828820429176980377800645696282910784306517845056699209314939891536661726420199909839099578735797388712978605118457878480284072102238499078225043920780980511068275685318151087196056670325942010768099441651167838136366441979810817724517979747022691411982467881823849899703971449773112739122547184328837440280017189847059427839107467096153740531569850398887399517684911254862609399725945530260269970944724210357978022320036971816000163522033981069310274081493761079932552516164613897014186991092331814692424356864164199958779678367768009339282308387308823493258919880379729616543503503202541194262038776960239036224577722000160620079533944176683799248831980352735353975835193497666966514200600750744466475295520010538520431017021033644107851451403565476927928621434309182220805810864377503448725928350965206667105193501352518010569766346405787310534710092136218770038719765642488519352714023404534169463544088221118263869199035543633270753787523861867182977592436080535266226737420838229117494503912517026865430806182496025735331567705902001598949681216413000448815208826555361018047900253686495002084012228867527689694131444218066407766236369494860768068338658516866833389714074275175616284081392780300258556623489513154666009993062857890577682200859577222384720226765876622980070579389271761045393974297559709572424196457308814287511205804362047775773545507488736962837817522621202955702349213536722870775448571891760566688441065739054370739431234219529681002624830506070775214976391292481903633536068192689887560093369319973745589940917812091773956591950436006227608671321417974766429592607082793146275340670724216214561542868051059309753759094384863662352556123408454275477437503676423411332534608510315636839410800968659764762552962205763855246498357717134535414197823879001676927113077019826828993204065404926617047065832747880976922308526173752753536619342316349322426188937590644485235901991553485890241783100181218725258226069918930759481169280627009874548356940983399757106776714626933667041603876422720315344792701348810282124086091116303533518389835098087074266420136254787388874801431845492344924964404310386518400684711675672084550262239264956690496179426539956328225256575077667856356083809653202567684369626453117413711501599933492744535058296945384287336873468901049085722815375119131500122752418116874462241875747972473137800610571899337244295463325133513021293704909537529737605196901864204138806759391661722367575727568774419530010731918710215485478490184666001341688050332378894973007190449158462087397677055014340171605958711483318845167636847245007414717453179132975056925121357722095168137990873912247029856284662950462929194592300337196345862593807094545132600012117163739728869267367202976472165092348171854814386015578068262663419105051029248527653249812027641582696031503380833316968366694254261830316069927611532652028662996650584647809013446367471356628626780084346865382199619931186529189989153730542447438218510118447354668251366580335535635707923756566651315255196108583128321464113367941755830727930990284402150963194845064065547743233355862913254030129974318572010413786639211860496678256760780313935475520977033363247960100406667670586390824206105910286679722171439599033389076832485648183699487197887453635141841210333104222132739641098256726926725136736563370196773212129153287110246084980571200304176259948004406774485689962336111100738848426097578640553972014153526142207101204636932911459439094418582367925629642184045869364359245507346489802333301368597487780699805192116793335743042813901369169730983620293335727167270116966982432875400533405349585486359186340411834562607066280675581593521280092244133116994367594980496244729899696272694669683223711636059489177167371868116504758521923330850007174448470768669849321732838906667610398627942536748389156459096385712083052995695209438051099658093954977471987679807713295067602257791529369722924920390348288338136238960877038123932037341726204479853048672299332933897904258399728416538122007070320964348689154443695064177408812660571514682523567004492521051765244049726045080488297108015346651404754382343893155503765821775695380487787612764226719108260987462051010029932714358727593883333655530613571581478270178192999597672257607499086975615014577916621612425195761658740912312113810849874374674067697430750867804292919860496425231338293212410408913879129519210672555032499490399966560450046507931896338014418675549043183805628596827727663170331183407117911152066041860423975461637415568942026398507823125328106178497904420545342692026379479015807138101019946161121492678365326563271808666911522721592590424615533331327847063006646441769024666428205747116802402075125067774869491201738885655505538449292804706211574568607817403903307021338400714088124042865941865150385609943097081933462897972379343817194667262975222440664068077397046360290028151648078754679166157922586277484369091459715673447710586485882049657963137303294672019153990401093509733529446937143025960636355920839083809964052603597883098472895424304827349644938160569331918941441889801922686529591704232256964178342001600234679281681415216158044082998089299777647441044021714687448572587436858542656704905836225686790330735269919436671008389509424691890843523456354005300305450041794869648842544167970723548586062027365280539248497479380468762670192032967787587283077898054713086935636099246402428108935923230209876640635018411661387980797025512299967250889723967174795775540018816509582432595162259942785483716879924765518404358454996299234262760026351913814555189596671698865186927944391502279821767448504255870282522138582984181924733703943245338885793018623012988418156158356492641153310913104096226690488091212684722999132663830392479578529570044479817526524768045105316909888910289549854844460270948560695113533284918885178124470902498409017189875955064836456171760188213462079045887274915979579879423031490138135704749688136182529614152885951481582525029363169150747621465704593699838601501983561384498076143320646933825783297972245835535703828854941706124528369253566294733071501705634251099211569511161803946754395846707279083663331493092946482746855574268162591002381389851445592928937245138794262881984977078028744029771607238808648002688749553530996942136681649718836243948041814891357767860789089990341527599690844737954996173482070209033869112649817553535681126476206564570895608632583909103514646665894695842846307669877886014666604047912098593829360552907550474631792642637017978714419606464831280742821441044609583333292107716027809212266256446878850170116477038384834531582790630591166230533237943813489926235603868142516932468528554835077925139673670902576518467703215792145197145749565068563463658685709096107032564272371806829246103308664614899490838125298752862192128825156062064310071786370106085287389701904727172053861859345674855340811490872325132520160188673243392922702517430403048461333451261683795467377008055135222030911102098817004777950621062999853110992701574981213595860957355585650415568809880453357191725006518050051541610640119011879402001929514630886660792331556437857133648663280611305985067859985639559043359278006674472247253251369098748311540759894707863242645426378859551713857744336807063299858599355218776742857234924279721297060960403956405846228396714522162893495349412326274437739218158445202273290932359726509901810783087440544425148352315531057299904407346578356069506928413059189064182146245013664596700371047871656263385490284294906783735906516430620559359782078482639943019035672051528075770412995838152167434506246576558107769496274039809504171774001976888107109561256508362912043838792678749304638548243428881741597684267340052974296209268046456412419846566211190315957148238656289263635047292796424867462552352876865813357745508778542815441768198306191092665523668434528492879602785450548256099837426223110432446473367219160770268708073496029538181488358647075169684422088078263152622632723482708057701738977063413728379917940580517591528205314791947676304107518329284386684386414497895286124947402089181400914128813890141650558169816788288126282475858789926435210596375871123643149810048148294195688244615167818493377615310426992810653160724551177937711394924555378312055967370686538049476048140757484490184591466452298988386017993773699461329841281413092300947667443226430167956413280986595951553909697555822430551469971802029043214382401808493556981994495955493501792695151794746517268809916887320221564322690213449550068043188056458653250793694248451124116928546556222404720427353644458219549250483668570081088402873202543066327987671677199305605461559295424709791881932509996934089868887987896117474076891153083885225229276784251207102074473298444020441346893733855539575269321798394681551022091710000297160090239490020764366433098521731559645643737489245878708207976971431008605547283964178975744699677110386950342680895993306944280456705526721843113004249503956955924057636093068413873796527020495485364828118412105667356643556794278385564512735767691163026130415780180515410662641660083365429382190477204421022845850962625600592241305738260825750299488210745102611507489887392264084419982873356608721415798997519379263997001728876161103920762199072371877972579543115254763932392828496317731887224364160977730374745054989845877899046206600192510358038426386251205773189004849251484405822519890052061075407259151083989624119398950542654112460058520042087651915272307494234888264363614531814320917747036292257097286308004513432659821560152514353734388456062067317640540414312618473750402365892646546667491810870934454346504920411654399198546537609655886897122822045580033700951859047177655206527742943984724970853910593970130865808979946752845397739325398205199081124786158077440968133325244029044708083724815677378980365044862287581744907575511109722145874235167658177581677077957044581709291924002759545904473604052727108584873551429629829098658301186970459236095114755166192928157839926824334467498849090254382693885721981388871352250728957417531508759885298082849887332629147899401191674440749075397013814601662151640695900139297286128536931057771812951168353884642556658388498448313289480721969593568702982203287774575850666553046198257618376392652822597943274115248924442253830863464873975125057249707639569382819948182586953769725154717895281230772166983556819695259496492767123809877115532282750258502381301935086610021352827717861983921312150371311432566914919434121739850078422485767745261516054086064267469228488652315345430446250063434280952701464164309733397627943993419754841064908376098122406332979701037712859021226610897887536803511113277294505981238800719536929910436455085833896443050084217798781248168532096465166368962312343071649009743662803807541770817468303030323504159146586916444763394154498987856104401537919535443826323818807347888306239052838916529542424253149001559382553462150931209578693009410809971844918587989326878423065042780196583900737700964672135664641226561120540276727761665784373618550087051755377729126591919721140498510843340605507748286465354145015339900600034239978168317823174553143241329099778712213494890696373322121689677816225842407466707804759862241657798778216963046025519784499844784228767070584591766248699415513607829889545870000750186088853409789786943010839128337536339909275022561238482324319241740688096972700689725133652543881175180534617636708397435633755950358750622918271639541091234003322366533287581375376517570822841413406300266200390357477466148394891502632546513401892562125655561340635809437526924671306217245370694670280604446940416189140129593542794613689536158783428718918147419660851205454297501561069893288780583965237113286476914092414152566995099180300977384379630982776211357632426437534297756817103162323352850685666214563026916393723063471692734166178897136641307013877062169621831920092915413883937151010640103176505561377851453820584587936663401948770721712248253233186936782633314846634319641904205872379660891136684177730096486611359625710257523813989539110967180664242232252866203963004568460691253626210941951721004395954115089304047407614840240701631963260770096335675799758663862847405709813179770130124733489632789420889195601915774624576247613996572382950451441088487314194615797587734953793739006911790138601629812912636805206539748786017601290142532220061523108997738569149383175686159745938975862931630690210846794905784071776938823627312151307829404413643225028744327442003795421695899858559886130194970414882441209727902416397846344287135394378816507829550158871662489583867269109659735367695513746408453571591036034217016387206529658533076818103693303540777101590640242837753776303995586790788716465795334833344096444026885550804618632889168987715392062167926756067261139465403223507562809661091863658185013769034612278781415077132337488155716346568920831431094130484966045117480250566574726612465431922604147669728834544442731708960505397722766825668270815223080423463682375625644796393290493351533748033706915285984203437701242007898230539781475272587860406219303367331614542739138261616488023832380726237924397574190548889662987872954981899016711707136406653096138274329933500657744538398230244138353825105624234026764162015491728532268538192739368201019363758737591298416139150699215178588906783367277962082685859346160816573791929557367437659368546382000213094228073764084193858065467960620343328527867446913897429371245213531416962119716469940596594349887543007515692124855249505509127969902232924168587482725846735527308491615591627871356818585304073567906247970771644701622767529399296465529493634980924110203802140443618983190753939795346723927583650606556745502247025939433128365977784296751439046471623298595426675618697563775121788649945291997468850402441041077294322488457202859961143046314861407106203959663848287866017004593497370639908685666435905361845236641283379528440321686297801940727139873063155601999094548024492986622040490737006986927442044430855847648472773223310428204905223498371257153746307239639870878926201727090880845571773550837956194885930421927162402300964587961069699930672048332398879872419850008492625825653620576653878350751622064778884612000512912479103622936294228283399599286220014248636590514251331800726167899806981662516858962867611598497433600662151815929710219835809948644683670495508832009084464139746414936963631928066207761020422136747695076180962929628407557002409229573869853352164447859346606317809904639688099745673074502758004127886692060291173298480466880815333126249698573018911833155658994752049595601842700214963590264097353756550469640981581736273104301155720768837679465413463407043610295293413131267370897179786607295458171503478227898062281946628169731653996493140373185642863942033863664946379763165209426999426426596631680218506751831751557181354862820648593629883656561647449737084491509018436067897800029722178920167347601307047718809020562655620827514812130053586550915671280559265798046229486797673695044902587898298105088953303435542659969153631217215642504571420553915949800493811656569996065434929304908716840010796317638032069433043369878177778634879149368020237405905930500375555375024234621349786380772590750834960838715259982570778752402274521252781073323179702647658100325146548881245546826307079857906391307586221992264083737956350907535525297946879579735990349044700344589032707435331418171467667184383510701269598807092185457383231726173684020327167833652132215321614268157220078466828805230876926520092351685194540953909997657797513692314597917538803046027349777657363037190422249872492267334767082756873044951483799643776421368223351348994333033594476663419374378842550515086940718284035307158983028470739888497936860107086078414938833336484773660129914596039121881524960672929316323293081185947085492710219213620343389433193792207479831333596736395248287989247302328352115717530494140608438904579104018643834337925706464705613417618001521893631716371158798235977953847528896494846427093823950947781274745254945380669049029157035409055504186954755345553077878787534060643902211556385259039013096867780463699446993231198751692701693689302549839611799905907573563588854053810445093765590394206135711387384653280193048958813344236927665390821417513776868694768539309060373824567586884743246378573411742575181911646780918695414172563675068469480415504495983693103153733347487093020472022423994018876091015249510370817429978881505011281873972430790655895060751654803067721707994395529063221711524163523172957248341583850155031596853717975498450177946953495450867414772726111194587254186824404763235833839252758188287670033767649607052711254777479527670745019420424556474163859742552249903897232932322421918577910078690106132786972113096332720654963010274262101225074569350184819648873357367755935916351111456904098728810453178580226544577246028799450664760768870745749955281570143267307913145830811731126391871759090528787630351837338425642863737236858439728357902898681245943613087235638945079633727058751699501777673524627961107723811418709067621038956456637604444900334877759320907200828239096373074838425866776847229825493172651534219074342386730818719175960121744977515160967239261012983978986807937967775803996521601644733332029772633160570010283483148061205926018019836967276900726417244331350234262655525241828647531188393217149863978430504979214374135701632219087958558325609022298510447307208434554383309521541085906913794376800128986678404698025904831150530945443455774250675511302658121630125104845786192253946114370691571847384979907490479554850527892603491437876437938919265479704355953830956579873754820944379409947139049505115664373246852348580652229808673982913500841113228435992631592483955768430545676788391044012869891851171572859015012985618740880083579714308069933601842145964157467779429482692820164875239792754571653424488044808292161624827850640499789315097478927103811329234221313749980039713725525926440451579895022482887678971309745248656194177162578176695376555311476755673549000576335281397576811885209027284827769746877626441216720206310509181546479101284742525559497894626146305450166238923229622093434508864405348200281482598679550895037700130988580976732250778410090813198118738051169394418456446694344224516157679210050453279559164491166555962448229826612831917774156841149037969320134542295951830587611734762056112994060025087053401829384327776145627456070294048592586673290938419429857637698226551993323622909309189322844233167177655025321329546830782982025025040578737950404148210427893151062981260912697356787717263855653564799592516278727452759544420260817371423317384450798001314957768696305668401030997968966531950931146200891172469944037495733197333509448044667661012153297702273453668465276336163698207932304936818270878575324095842761034042148740818956723113664896272280421775903339378456604218023395152911097770303418657577685175209708439971888975714339214947490529379994691325050847181067540704810970428959863719594114434306378448903623361401531073635761690962163320870456761962505650190131698900975710601889897611078272048322539769685301851194624737279654192417978012728694252711249495104449146938090329587927714530276584795879212017357266306029194575752462106744770558433915656804272352473294660584274584807354216292299892379010420723109255373033188709123290253200630489680123107198767479491723729757660347973913277653992554649384339593761068041700130579327152525655061577506004687741916432646731430428377122214713440226467353987507193427802959399995051667325202764543433423699808921939477633879722600998697293605936968727814180544571532464393833433549447711325197136369158046954502637100487824069633302839980258054238255544303487079880099619529155894677126766652466819767404630513350788115019030810547160921183271177250749961040085202699928643573491703895822438723830147333451020348162001801002276732909829742984938595328849252084911314826003945049344019246620376029876911176765625840764826391400040096246243274472619064790469259270420456627376578893221363309944768298393836240904588357658732351270666812125250863959723081440994589676551728873560353989178034983587896330308140510224860396123954888337481111899439030204788528707660990549772735769728091062819263219090226929127454258163280024534074683887496501519149613923002918978747873214738026191886299880617009379748046100706110315643755676828267569793145869896493039543794778712819931913958326496394831984965428390290004025290567655364077077105020521966628713769300859904253365056431703718263896217170773314542571246435312787097175767513707581642536766649243054641364843824931269398338589239378872948999059873464543982984397545712410741330232265283261046419181681457865341603512574415148449437013563569411622333784564084654952748934743371133374996515637641157118699315505955342320946097874955037527192440216143914513275271063897583113422819973646975839793233442130168864726176946630573914238090552568989719728086722696370177957172153843704071411863949547146504462148415619566137276133812549840444160650351110412651804712581164071062751159635265862704430052996717446427221419032381185269445991906781677182498778549835691218688779764138284136439718044343336678435264929563854937384292974215973251373418284043369779987298768494488996745227643763714299566972293201575822401877052037244795439882155182140463031252984086976955228457650374543357945622952935064569400518086889739729073757007930112927603262146044488077253799637281648838118208766163188787772698279943759421585113749576012406505509700302756534851975730551136999717416721666414155423326382445332656578304244124530377895538242077867321014632773811578135262363412136939291283650051946732161834804947831670578964615251799708512890781724599004938173266319288617064381836968835990579449573164856929260114770977120465193379470022710018546886328812022333903904038651619765537000505120350582244641476558169753393855790866462856315421516694196785266623394722575301865534858378234404262619593344898345839881276084711642347508194240733520620410855545721941492866834700716537366579235581770726510346564969243739718924728005642502054305228258319657577668839566944209722521767126306940848538806322764211743411939177927265669695670683114458448414467620920758908742012136233075685120122806203158229407489741359138486338934120971088461388280293182152825562542234750288032017252269498048042449720575623361995951450830054568837219792580570618970400759006860418821739736982335782745210087219413151444746942995898150664702890912408727782578453216826680625269281277279285793498069565756572175276301742162347137566151264128695446055515959849700208944233933631187939407079176083438295366406650843835656549755142901089097676521795879697251954475428622187256176472475516690029271172774295126205640909943768909139852281023039465627168831957665964635100383533678778448191779631330259404600612397938871237679267624117148031608099950183503833637828386178199109824183741097689658873899536333271153653366252998357179428626991640155902987313430383654122822554383538851143610697740604426994826659261436273139647641933938303645986242539038119405451730591751231057196123812097308107725747740175223596081982968188441999544369831987755179695736577903655671397917176289128066765235142922420887388888835001091528609280797589282710644176283319990103054364056852098822429670880707731023779552139768194794187234161222013244973986701958338301191849569318610773202149744087571229223126092070889864156668094459962459276116350039182623322717049350843946881685287226910083269866038201796338915973342188267874790304101463640137543395434164977952579194895764959130131906716894287158267586824757990236667762564631102123875915668819527394250826898443009135316025175641206617182766190507765282140817015559894547471454581901438803067367326821716907904350982407451622840583851695954380348457042295462920743655190929139789057284646747394390929908254177442154574689469872591462422241553785155187773410405149551965104363525915806188954978922352297065862539313498242350196279242680199687180211480086360869513478393911230903794874119937312902258105779451098795770166203153724388486234524285282329563049000535509710592498856156945162302270720058942185754731835855160788879996858288525682884963957140099757723881442293849288558981135945308244935780702653759033231961845769499407346366387911921225368072852303736748267187340074296419812312551428206826882225017594697099816059065071999540286347717453542702677111039593815567326816965651054269417081369858817244571194629356027737595957886863004498253764597987589000517511413583295152527509153682160287743080348923684503804263089783954069207313333199583008905363071447232554481649558280231437183125932058261109137623300215988233995073929575771326684034526470009335312790312478646460326968736429081102155941901642667419402874749367921895734665756208876612041888958359806508846232108002966319502175517420336059422438703268186049709831222121277291048943859936777667348428887457939814875711045806327158291359000732567528547323560489336385579740635835539653098136498981645126188364345257608162593655749637674091334381472501942140493232744999594270324701150047024164928523341336807162072788150929042094013346677853255417295404168292651324911328118665299336795067621029231371473630630535744326816259292715366191444729405240323931432564730815461136334021707028722438487817472703357241792484638656106399383501415815089433324017151555896258391812848677252190913202085602141470171994275635037692733403524993171097261326493154442080086627599992895873246103610088895199727776606033012058273942186017753143454297459061993290760952170627445954254185636113930184918580985195443920738929206164423547718932931937779463733140902988998630953311434030867171735864537310249382488571894092731622136146773484319738846354976800575304347635990736544896641041534909883635578926623811337408114229177315043585170171742899252725754486360948748270454072736583500492252806861904893659768933059222014659805473152718180839931711245746512096321984369458990754730662031723431653818997496303333344163456338959402931559261419491389119493679505174554776452884413896790009738452374247415443824422342953993042944411531526659274417441086673346278085791648334226080332198278923207807197048624794610780181378162416120775804755222981348483577195545911056534552001391327912909983743258287560760554700702819426204671676131796041487887805281034912325705123195013073610172020787568654130268492301939790310737823727920509993721952872245674045214290870890560622327693690825628367978720617945214091256355459729896092863071228492584394271744559049839430463852712326709181732142620748798998147920544693503046800003408973794767452754299695754082616798199258586635150576476039796335351600550707222849442680533128617946466638508063491160046709725422599271922402727858591030118816993878800908418952650742767937523505038942324259330428461782976730214557494504480412009875453530373968099821200245863358438565656617357182617040501081192977873913759515489295573085789817652739756969534615532071228602706930056200256034458467547009537963245872398142666355581086102036668902118159181761495877067813873428457191680314417804000545834080191948167445471736862090077815621925021756998538519413330314939737829283039080141784724605967089740428800741680593736342550656710190934582350860165193464359353836959921981700486917552132174900085708008619745027264881242014141482970712020822986801902919923755773991026797255383268349640424124763980386526740332662500019206616506450222448432412361322404873737342928195141433256226959385602955243040057284559755947057234202005455702703677070419910503713856320439795452680365881303964762570001275784328504002355038423645822093461806104886156810682109270451650986820903844933223070527184656325127901559809437393764030868324160536406389137047883260103834687387511594191594880926704992362108610420608876897991008546717101107881604227219966566227012472708307308592040584941182194789008674169055716048616112166363686172241547320662182568331552761016015822228672134564872330425683329920237735433834863749847079655521758622123956255738606075778921694945933018017336726321986862460001163659532346429211424928347541322777505482996612252919559106549169530678588033291046371485858557571940321367624183260134576374454679623267599013485988227068178686645181477378660340987311864738929353592811059507793201219221504405166103314366403168292074083223595643090605368837577767250103359185340299184348262895014579275796625471692040962193979731002834377251603210107042860636220449742789976661098561133030471382873715851176092796038820900709294689785866436332727668483693562583267501401857291930134994765764351307679430200199294457167555960817220159562662193855755823678553735628658405112719850916264653314018380974871602713811205226898126123662278230792340192546865924863460952119495230263814844255759916630094282126517693662230307758868633507338820886761864768887527712030036084713929100546978613608787674121031052971553913541341701272329667587989874665162904872809402132799686790564817190217236907543549415392944298542437438716405039862549150528668552624775052194476939483581575490744755717267691412705186461272485887067043509858887017860763030092530873397532827970258289157083151969996141802765344076271795262762215192314974713003467783048346858350872904068321712245876086946873946294214969747410242394503909982888850835089891126952670079431787398789997640520957765210696540250176759793699370800471724878452963204509243664123426132732861786778860423460900405808270983102760486311758855318829741652500928733427355803427660538177881244673850057672680289692287285083836907388408411494517015823974295042038512748023368355553807379733628266757318177343276528090347618892439099187604281747441197550433560960360665323734718367120393479160233474620590985356053564102926091410699850040351201176299165197717048407599195043594225148320320178004539861744891435705028028464842953656123195661139706768071064910287657506710194057663381694081351807499855049130726746634572924044036244261582151256499829738806353999653020061554337630862752716201134987681972862163121645545388560367064532318377726413989810745276815051930934578370805444737968823570647971529967619599864459294788922832751910078172936694252290406587910413083866231107754328959594978107429391776884424876967835265663055213701123343316958444433448900299125686303748017946756754408870020325293588747121859922895724452623275230753448087335584753740218735038747291235070999311687253240975186945607619787877260156716281571567284573517890117956442067982982476797462178597378122217845290171001522714858518855018769993430665912787204521402762158623269684927613936313611545915361081214663575952391982149286726117899093380021888369241809795528964134217885536135026905373216937350540152436448759624808962765249615288479507757360742912217218020685426691095239385188685721441363244194372890110606452373182744283668590864163327497549351429008700315459080533116116479496836443058573307725974197210392829088854252677665310437020905223196717476107147893538081281343117984903683955104613780537381033540768682357425430947291785108617462020519101456277240818142397315215406723390832965792081994663340055610473705275602446198146516450995447299912206387414051979092499157803201307769858639377898109029376699842730118778284192700859965245632109384767993191068258374123067318089904271408779388151841430007138919628035760707469102762576952256499815332817110677094124726498590133641986127727500281656071660228799244454643404509980694543149653789783133173902266302849766554190328337246691547047591055961663334761012502006957771528034448390862971056082980233144791851277263955737899483545612939210015869890316630099980933172534058021491659020106071499395996481005302210831518979140751211406159492377573749543539924461381536270999788446507150468894287072277244576495119047285121576402177004939264485076979049247595458668724375646686279053008495621299350075337124594616072859030433341743445803292351570617785209668871787052153831629443507081890967143238902354469963622057106606404702929088253779713738508995534435746918526659449193424170936839900980082408304300131187249091696353419340006617986309515674499398176189554274759856122783075210518789176395418488821929138997296016568914270401720624546760431159468515575416044254182015249284009703916507362200525566675031114455675239181278838494467767343145468423471041055478103302792543674587735498896863857658629317781522426062024358895689486362380165170725542648454767692686281629323192417264935692436641960354186703790160035320518075156410230395609419399209633433456924952876269724902994512226381983674287496351339765642652869762949447612819358489851115199874046224444201417733925330792450759120913450176782656584531648839896337408450833209938974322961854466204623544005517119580628235874755691714059367973045063543283119591877817217728120381706811453391775611456454581467442868972834737072951260855714150579792370568204003344758246425444396689645192949112948222730175661380809841535875872732674970421017024295610688230786761368748348733741060102468694097654524644601477395085731210616088108732772199360741540969723003652637679048642082995785337977295648426120102210139370679835355795925285096976802069283419397654998260752440414173609296852762153414017704212203019320439002906670694720389751562254326166860779702091961292847356722577124275155646795064198605374486255525280377793668790807499571261859977915758434347532771448136608128844478363551478638833615156593614657748096070880586501115122670484309456065636357098079527658184379695259992172090560726386841415008720986337881462995544635776777078186405527362412704584069893324230835229094108582796974770471029881722741632180237619175968690753276377519914488399634042609498995923227931989411050664987011247370655321319655089432164476840817725881587979675929392082051491838360639064565239042949376967686674774942394753502581652899282813233966151675150692329012440448925946556804455395418297664468050312010678284728906803635945807094655031200828263425618588317857294539516026076164206638439623944020845247271621849772782231092138544981023395411875214049354351260979799345373001590199943913999042820359599535979420249311404947876089200394587262768578707941428791552039332077642328055701211897523126614270529027158804614490659730631949604538183316832702979926739864865100555488551073707454319004013250149775132714723244447494416759178329305954734891239548098966239183727642376573604613143985038821604675330588778436808860415241253853083264706980741638363394060975917010364640257641138786465803971633396602529564615365644269922205512250576343206351956641087011013966753468787909780423657363587886451631864964816316212947180482105315133641884573437781323900757055519569098483536808995020118398507737964369842428550838083400904631092527407572387681954294732627494255678162626367813544369449555348958478414992721921336254225782351878440808482504823672074710557476680075513240270055883529251117959905971809147337760427886940791138338497659245123092026102783876787981236929229470152388643016454687081406397962103534105885348648774153441894714423763325717611320709743972811057669519186266033541352426897800885094275838819923199069333788093462012439015049641550589587361449383617844790335198528225057277087101529937070864806203322577496827274759670330287925296648049769993308086084089207877275153639502214100947563278122489596472348433303231975414055265985913512513807189128211836590862309389241436447891309720995843764134312294338268079308856580785889846294805651830402579331827476574932472653701024732306723108631224918386381552531701376961361184418690388208672658639720545066815666134960854263938775225245397281108284572866879045339565324690716205233079128256780429012040466782991692744181931750069957265343901919412819914662216378779330138843808705389225893661981263222194793347210175123164407790465526198090564742250172771168118213001972587639992469404784659101550096883064232619601891539838497223129176236339286241406148782759271137503469987832470040680465259705339358506157421908871063624402089077008536577726205884183171975919322829010543042855919923350884500814489151214393709381480286248201674586876367329466558619638754929220775471102321922734366071475668447008624634296940079165231248289889241653994150716488382848655020767301788191918289613624526001766042232286494415919398225394867395470226677056393042091134645321522085682157433594138900222921542412723836363595145625189148851324364098357319662128410560075674811108251966806445991962754463888511075006242769852468678688861409108869767105207248730032054072480262797972302080492598789563338127930356014666279679025840472300375179922025672590485663052165298191536542529041312995380717949401932499734659491145929662441466676059489735088369530740368626688950999876163546845393946153774002568627900863886960660128344018920171722530163766391670397781349025089532760327147800232047358890882749365426590477860549164305306896896079002971130208488518546226146236369944062056552095885755012896908336155643973963395188206773549817342198221822543163488931158408076591203561751811583192588786299124238435717162202378326711911964885741763426870925592844420457840317129120334693708268281010158934919591095004138865815088925046952452894886687846727259839296261373051974425685214042698621794270733032215594999097601906629232584063825039806022501029406762045786802166170172505028501325240758909348022840538871391579697203361015556420424097321425006815859422343000911334179820711397644190533402026791125588752495940607871675635380736905805908946291067935802871076426935281116697241412780630955833677638434311523064026694091192582004614436847058983292170223383929278454979469018742871751282762139216277235061722159764249058097701021836919451651304094931514013247268022933892958438726531468691036449168668842236026412500702431899467281790190745398686716180817807731729171276509170167904446687419083684348282775420787019153717883390797014836189377730581849127387986836491887923675694966465559614804638632706725517559949347294295433415898764101427041623402109770459694775428224708652993715367254938213790880132811381363217413726827904498101377499678729475264303624938078807624750163486602767831033631679757225637370517163732911492414025005859017470457229992281726164462203486723037377576842471269250951454506267396322399126192588362020738937056042920676868743060423352986804536933844829437391757190019466538322800519095933535834217910662235073201927443529872595366378016055699727011415934196411017032058372165442228404083285846065795535809596136682753837368327293410208223834683646807797402163750455798783397419802559120756772817746883823630494892456735208721273639706334260719664572528638378699365154379635622719160862392696961515985353521864147640566163995148295022502835125927134030018906026033381346863625203657956928689032730799685234832812753595258830397569775955092269084732952335145481444674594221219239342945146064627481992129007410001091851941907745694336789722482811841231880400795044941852774217040783500260905614190088322151666034041491586717741921718017168178615358355085247097331659288659795944187040718457938787213046803721231549921635609669493147171829389172306140234028307064922443830931471311642181446225354955693616265283013680176990809921478322543988207652293956004845305947385029189233627878523015774284950468881924373185840856197718158268084480809418053960962124921009553195301403956148609065733742295743212728134810467302745284010553520799620253652287915182878006103884686526691762590449710027205926949828196123359436471584637044607219850834365341446064327468420556815705453623165519685361386174397726436284502561494390444949160087872528646975346555935683318921660106411077449526683232904263155295066244341826794047994224974839107563490685727954613915095751105152454969600277462848503743235410499318247361344854078798218341973987433492275931115147460788016004613090843698533626085571393352347376019503492105698474613689828174492742885202464224510916846291660305527659768980823383219001275669707893651917099147932922643706049235456627561148774220744164816042271042467590532773668395223265182240920038928625425657528666964884330563963632434644010695205197091206558697542527565618659391552109696843394959272758057146868952919041325454185948419190480353859495516619412336884303047687504680834170102826132234409657271458561685682148989974859515572002569587009832890416028555776981653915602693084799654615932101805199735520963158793304511889582817500455301779550697624926777788699661850312003379727435149974135976507150258435515471109570399405270459040808325818531493513704478258029123201899477401375087406847811180392619720888560363471337838463779821567633064713358209346757195897669082605114026693261789384079843183250059018003971932276732968145938510561538357971309912314193945936242159061584188011352924226178121100341502904496001336146382236803097113305629094109900278564294572615357336329427828555391189811021894237372057761624537814875739765812188913578542876397009036480684811291474188285601820561028936758579294970309574374142576090454594816114466046042113576468760077369771962683770054136635882648789483807142398221017066174778576092917429703313031729087791339010026081874519378415885356478696175527614599057519133102193439942739900926847660718846249630306170925369761886359225386298294914727865404123166348759113970683833142200429515344694333742382140900802670413577005300686900995621995690955318131753229309285032833235498158141977773469952814091995254406475358240929164974394751362144547972502843206253182569596065252274271665094713577915141141793006252913803751888764538062421815534744604584275461723769216846847804790960057067192905473885477534893427677060340661757346052286640165680046569957856004575100467876849745905126328837794855452110648043676492723728464920909196157320376148335360379701350616434344273214724022948787943542886564092995938516635829899458619608772860246055757343206844540251844009402262267595694599608641923736356924847407252091690358674817326943444611475292087148653145056705362968793285633035636997868458956523506755856385529877609903705523355776495076832587909739531620330545039702252091492308697149009599907284434843245541519387286364391645056174961781560595226854857007531197355767630526987841641062123805774316384105098127134938090180559491116937249707318282317972388981385405101774600329753996549808004771189900081626466509387256323657605288277197032781044537958029237116954594260546575980486550652229996969287322511675509909858116870140006875377766103783750241672767876959857487809319768302836601812848321573443524359376711914355381949614706991577433743052623873338274459660920657088196162052861133948015408979700442825021710670767678427151460576396739492311889399617960223610951270164922714751757459850036002223011937909626676652325864164687411232549064480129251521080790199012976359330988613211186887946679519323591111925570512344965106903648245430160543138465970584637466798040048236627358214920348384719106166422858757680945870790066853355048194268776017616006980343857786424235048542663784616489013496435466269737912801321511249292392113170919859678961242220536491803814854148789575741996334075973590593299555109041854577678072818563970626860670177962915983188023498026330667771579378246951246990163736583681900092893510972251739346767050900890636571672300330968095411323512174031368799232716599095671491804784825611052723981527326615830833062421648263053161301364618331494630759129742245139551855805714681029268236266249031711564292008590134926784348297361697076501018464198471203864853310901746733530612056128981811184568061873060067075814668298273840851376870814202421737496461880074805002384194635801301672304457571300123376476516591716068967929605880829338645196281906712665446589794675987377341756729533632174165711435011153733550471711807912272281773685986781221529662114021582230177951786323098805669462283377054679075723902909526341287200901986569293989345379820004035592040208236219626236783521386187593673520584618791551876581744957466486074549537959032448599392528740831549169755217501313924041736974977280357342066007200421523646963841414962907660780015654163326041258695569538985720509191454812679133976109912524905723078183551324688485356331726014914827159973143945746947556906084450629774762517583336345751708597905259999179330623477209692070996721235629181855941975692966369033173893215403863024397546889508307005205862819168936073759784302549464131385551843833428929126138862486924152753363996882409621427764226964483907451202321748812148145525224781316723074377164797378655343351409899258567667573950713891455121357464484686839033211318478563277681790374289281049269853363116094777690742419858277462365431070399377526622168333187429982084966412313063163414714373408308163169747067208488421122667079937130117615674533197867100148206487533895288350491497656624784826316605715664549516995073388929523230876302462345814557324146768171970333505127616216923766463428862574565284268450178147649183573802156420379454387073576902282825230188517027704317533292111032212981102407271115695106864487038731627078224354794814496414576241916000400788723848543098045736995682540449121679202374618695919902860021920993258872664558352323565555757789688606684009795284700654728052133374537652816249503489528188788529528208198992740199730516786921999584115198472016062712996585319799485602550519144237313952170695200148779936306695348894728330288569235308892445903995235549299016037939483740724572756898228160320444681657120214007613559908760626431665844277718999110128205476512228645475135913094598661350401071438118822242887342662494634573536633232077608031889237349759602633112206673682252100050575607972833722502919543306628336499577238867690927530855848526656410881929176291014959955957500104691399208683875122721449801971523615118003167965197529095025930537333721564225623515022784544322703667310396357600577918851696634357125249237674180773226847403677670333605502987598986320811165108252372921406649573155114761866574220686613275612114044766678938284566645536010823666478026916845890861884209026738979359631691322353780384857440097683082367968189244912730451467768500917566679090900094067242549658329132290614368681301011261605931807482970082302029528470695235536626573465251871580816163675395614009305924444093888266695339356153214725107852104425672726173511947231700339809999397665036992493834988748923308562629109369117546710961347729553075423935960676240040443945547935855640378515342802130629123280167407404553416466316942163950501834380546121743111185914220501489129521990183636477707359591147065149373776482043498357205935428262507656808451186276488001818746628926130150892813720325312836150244349631138061623508275708541242288900651089785276524037630854818949469199150880573226658128136174207533998796058108796596435934491230403294652159646193386619483279301957478294229661514772948016779912750096214731645979624371369618619259221473445517523884375288160099966214201873973705155999509764946517326701663980232907197638022815586460415134191790294915673075234192381353940160400582217771431039745183573696886217093404283168249185443377471450209937224564362630282852869437424729237806940212726532373805808110830286319044321592406470383137083747645801708438220697836371722501364002261128901343895837148358727110782897017292827772103416407836064683346219563989212812797503781610127836840225326872613179455381547163606260243198074803448877084169349383637379339084603719161343949178950985197434380690421774994557113023082969888375542400934303622342995968862992484474634677214131183821143277375654616917075023495700144945245125198493277901911163104673871404604483349766276828086720873836066959598515222127682771997907769328242986286012021543831546634096383970155693214074945748373546061355021911801154155962062965287903756436859370566219759654197610015994490670348833689862692491040486364455381001520191698567744363906661177757317783619203561371441133377811591324185291172194706262567311863660979584283735902072315566333781653091877267923210450542912643413459610867077567220221443378006347977961383710129599549663481093935761359927970040139923541146954164912565057422059943864226175507542785448905562329825385897934312864326641138049184798179540483392869652726746634914636070271571510471579927474607312111271901507342546995949070062113061763854391102456211069364087391844857527788295267714142795597943741608609634446002728602959697394838138534293619493253486844576411967513387729099707800201314862988476784247692753301183086606800294291220393105275976292080267066394097041178347145554567375651258464824795404486164905669636915465970067893336621171846932532985486805948652234662581339925439329096745033177035244750278127099992756655701801895023472542383376363851639474900914514538898481859368686069155761241697477680853528030789761694750520316609681362480127276067567011853993044553716836022841887473349229629123262876262430471837296703628779298288254116560381199887732273930747841029495504262264955765202707507481889355529086660580848897726835221373343468011335612130783098813202877475146090339347215418137592503341727882823938758584423385781883903694920508002950619620599427089938208236804929878469531496515969031367130596422439893029162340925366066499845670360077365267011973305487291613954668272954474855254632211587572890365670767481851988548932030078952270482643774967786994038854442655044323330198366651382550644067085620140282058873892829864878437729179496392799782111163921044675886917312591462007347698826057007331164005365278685353602753596001719836133558827668473460762915595338611417740922877298615667951622096855433184367273560756531025742536606481602754299188429865638038495879404316360706126389503309025836557182686089140027311379459733746063227149356575736220381966431218678019706824266828867132876294577324399279638833387774004223377871530835408908619820032304640950267520729715530598163314035834676867910151775211727468409452491197197260421755828481967775848976890734733196473609255573399345281723290390064419749741981432220493505909127826878610238940147660479903814834083179187893865182809981300673897168599802571872895921439394632042501724454913800796192448855899106310884713346622623486161011209100340297455687139980033538864431846656627744705020391292614241768363701667825754929558643106503843872639672030125325842969924667100361525466354695672142741605533239260087724600866001157033961989254394535214661149240130228622918482553513146013232396157006562272738690627601714834237898905329058844727175034345313076304869250231492323811626372699064621586603160586956073939012331849828440229437477559814979758399743709336499442626882676367485748097857311316377039611408496867013714696506341853876642248255158193333431693583272576497186860840262806711474943697071139751976232794551529529624636889704088254164659599208541678338869891226167090518258911507401068780108295455780340423395410679063604016530363477374297218835987747386912639184296905461121593753277127029793360482852484716812443244820273592548100716800155160255540439098668231608097324108923228725153347787334012830513034389925564694746730598752131757012008556476820446759309894427665573906365730321673488402221971208238732086643556213927538316567887875822556259973628883387499734881619825775267018623446116847789773161462504074412995059094062587515741517730499685384411328359685676988976619195680862236714670759302618120282935918855264166787174106300234438613473441416671849974996955834058490484227704872380374057279375654681102796225572787734427134303340529581459448690568299134287019357628707947334899826855219673035718510121590921911885913272110092625989924243328371088240968320011778655703624991437302365291851623796807618272350216637267364479626005675454347267700306867357532926081429581116739935238203298172425363210407287637209286010059996881996973350931816035384061468637973701815514640155371490133475724188640787354434094330549293984772763716302403986176651515635500748362165720146667050513073051452860534224505999581761730471626486291165860606234066893088039872517342874591419166251099815643804506597053014488068035581132040408315783561733066512427926065359761282673391293752864729230638658397381964249806866398628478850024647314590487408619737759785134154620245487805672291097460003729943177717073619144405776481818064892109341599263696822226357304587857485653942621530879521783812343563131220052773867911198675388894440024965594450255856288078169948904134882588983091928562126377091086376870381595752008913412167342234643454433744377540085045089212197073513446212479794304557594685045535145191695434179901068657396427660862782318548211853789419095458566460378335402185805225020384215410565282218449064987334871974199685633784347963382581063099591444760116703399708685199361046359265950515061993561631457702848104016501296890859097846572274727725465794614881192750513134577324495860697797004596875005044784273436632085994890784349272056424489489183940426280406845634373722237051144675990872391728528878949565725193654402505884347384672059257450910908057594218540726463162180335218196050290677071935589629046896712901808842455239347304384883126791434826256506923853690871453363442794144191657942378170628352892709637106746404734160032364950775057376217133638556940934195858061706908224360606615872315580776605948519604231712677394128875996812829376091414202724566437110373156568189764188060960804437153162211062894688499881097138752910591980662902452373310521247098410026156275790523760056154259611771072167908117536719712173368797836554441406172899415116916031927852896823252749062560551877895714351007303424117633182536944052553883516437242901462672768250242946949950798013011686131431712640090940188065545508618952961217466965474666394206042538347839666848422169453082276769222935310013187963587786180816695278641934967090526225240562013938060217501313271056415431121240968615790381545113430988486025216987041116736631109615820463901179968357883588002602964341763445634288524515874452540918073556860110035024921063450631912941874391873020014194915543206842962603309926988859445175640588789875251198286367596293529463598420518499053069483715729079101848178703681125212314279846740733258848726115882856801591998472458136079519275493784947457407151029673386603700864811746108388672782805414775345523536125988224442561376395589385387831674491438865226523222567638811911655296668677076692547530467766803825901167937240967626505932584357840640665166338838096696029450309103708361087711275942766299531115117947594320539273789837454824535945410344799254265733704179891302152720275624289257598312015878686308478296851212861313126965591022884822990153847050493444434742898956639277696437622440445021467847488159749366205066210052695781150324609229326470481369243594562751926507012575254901492828914084393233328838512421759447583483532319913954392888192846163218169089337402223894442881453561747804688124201762899032073345453409050470056218765511149281525981420127742726261783818772005836746063242490677976937188532625587085979128052478776729457417794106496767888459084007924984771352791681811562038179320959361385122703742843985831853143905120446490339003802601098626308879858129015756917542946837392382457156066025472971592099359245490277388984996501357825980446492130581435583676944527608931484689616202063227387515257600623408782860520042397269134878850821278308687109438608944802112944543043653771576627941958628801939607345723167681561869951264173618492393352444883560660795092365966601942010927921022631464625386485568120145627495104659502008551889804997466581947121014848596085115891920030336475352826128801308316562182626446231504806990732912409550334754756403745747820299204355592130996845168094759968425473820507237776275496545314210230754503017004527251028982103968209108105865017925861090009117310179682943207070506429117332321265617149397978617481447044120437426185024004927647293322940316137599217792839156125973407890703962802688928828435819975928765730111489927280514854241309755359064187507380917711500076611107947782711103239430742983562116564457399101098761550684016384339027022060738654711433150791444959518035445689833171669871428906325796710568616393553569559507729788632802026462959442425193041431641812487955837974687187362577538713442393169958228399740693262073084565397122929482554044975551311481623209472907478440516835171264949357478313092962829165264766508340776392171625048774205114983913231505703390718681011539662188338227622912603082803837998588634960474593344034845862127628500520808911000796176134636063619914162719684936182625586066970119552994491371579089878666036542042408091391842339806247846831981087914130414443896513433437383138815569955499634224451503846651280810389199053685531043154705797028969006219826735362207119444477636144366975332173585525726294891904059104649766806533971453583256567054835324312454399068455599647500590553986159466869415916888077213885502832410857980198948363349771001042902203987537517863313447823505852609139642821596895669908330227983695337637265992218196349959464424132507149128132742590610916277162884004538927504335858206928459459824140411985793798551399877830342482395160530949139022806621430529676177728004021741293117642611755586195723287825406430218887858908696724278913245804989319072589588760790435994968142608837879472542959202918686758459821084767484569347351066650578019183909613563174332487364546680102222130250506703931395849125670301789003577782869607545009792204992447395009321327170132858921959561170205856511438388020395564148421940318798350392209038783097411898956307955227372010746850667058340895736370035288566523303144068788721360241762699822669575424766490065177778321296169087927746672441791349692431769533758404952812856819886344170032986043435208855844176877744382639575699397990164290422468337965449222215320559934945052630584981409186972020707244435312609839420095061168175169720987780249231515953745885340500048089074161094730333819052002285629237903134924182750071986397156878281714947748869625587501998105992536737911807169732957488370110919114909359818658587023027343599857749272325365469449367217142827285236616998920777690572216411323915448752960318500410067936531541131054131704121070064627659998196918832342574612806154909044304842876261818997860027331447741321785303490209325470829941857293438053042404235798318610030570619966171403107561160253523737743995769957604727059687608293246986131112323833265852189010685773381459891157242805238903126885882621047015697814380371873148290678337589476157000962692964359608581435514508250982757566624532019504529717479806880641578775753443826364835921340126836167401235807993003884498710342669059902459104925998228465714394408673915634874840635855671162857652393591774055920787913161820583483026534080062798857805219655582446580006852506714291394427937283154075008733389311003361634381013922654987775768630264622964926650216668908257280734834218843378025694164230563856479699438536304897176108287677936141930080679183259723904515686191049797071401406843852639653455393457707899210066878248834560645495230942359595168920535495765144109863272192586238081410521343874401165473353007618799776445653570090055716000412659542964843692930564904313437870590120344557902877477727385147530283319401377315071172256790033983236572623540256893099757749801919275777147220806334964962013480105347069431735424233401913545180899443133956678386850768851075519799741254048892537082887669275256349566484701734176766709554817817507632535753878151806737520677908502902262249194991314673560709420293640965809265011492887597360074005208346599990798796103425931163790312544628267416461118522221037295928172371818268174886377605646950881584073696717009434858358894540917562309347940516335545946960531302007975760170339136224028842151989733317046091067789716552769071287776815927947028397202940113958413303270916713094311260733367537264003107626095649730482093525001370153862899066394907479608366180101665649800717129151364247404853921029500971782187903630464248932080015157416635830270091811102585034540138358101156377897032785898026682735411763915882079847426028960406274264536434154203689694728122071438883982023454560374422782813956802469164790435443169445193799799256224094551375760908440338567897313362263062554162333399748968615597842042637954966874173937896771174476020128145535900681998973872645782273674215080983346636837909352366451555755798833315939232598489456247566472550852405619520118027612835395243854746903290985748296947750087962153651162798025527190837800958114109358644441515800234644966296279431146240259954956046744373681059701064050852400885035065831467987446324026976575074164999657076982361545042568627744736654238469312282462479899524014674736828864668391657159332395578636755544727757427107465865777204279777517879598388766170559089320370663170924512001967834812000784790181839295095720823569252408714689552071528757110035757229318754810484634780421100877571292792743931280353944977417728773889695200417169802239130690732568941424024293662327924398636141690742003895293625161858999103894754673629695646424950296053582160617631266253458621044806179337442566612851455291190385345236018479029791385250406645940516347928896896162568124709895378986935973927459110881697683870000034705619557437770164808730716687529723172834997790635238906047256834374218982328834724027574665291808392558362045653785978530042097577288337431940979684206025983535130897143952284383860124498715601573356956596289286019278639285371040955442881822463475014760369822056474493358773062251005282877351387054104569903027636405947029417838614015706673834660707293697792255875272809969762818926364785972132336847090378070754441932631265295999446644705841845615610759724257438040479200523101071441904443305880070763394727100639331735952980707536423533607111695653656930532932939401812933224165623072452039088853060904152946163388947460549817544275578128296800004653263935772544917103317965670538331278113354243872399139648341476957947751447285346260443051792943727830867051743102478749185197758231251467699829414848585514949745175048881938165444046061170462923387048261817455572975925226957938395753825181944273649472781023567392051131153634735735604228168143182712545536509847618385762270459994650233676918165341318411261815555733498126743524885072733584721641014738960372283045279323832112179055627075439552726612487358600277618324612683934089529485117821876687304388294677473978859544194418581060520107156483160995292274722114488711337547178795000002676433960269217003808516568862890453698401681720984200279051202877721539942022261955994253584912202854548631344192688997833407504268501385573859515489070141319019688858602363896121684410978109597393909779513610961303625769391601079639214740402459922639231222027446933926563435345074336455584794868747350212682900218358022662719013308882464922667991568924049885272944236852402030645433220423986082817460944150049919252137921765815383097445516183743732106785702797261088160820215922748161998554294602329393343263270948424541743552671709058856107363780346032971022985050453415010739273020281950135932756459923029174077819109077390288774702203433563606538989032092059501759652901660163567773868678993630919661261565943156232349787001439036186137202982235815023191118743951113067491872022479404672567511418817215837313536536943415665723532041024584276284387787814756302436488657549781469236357850687792223347760363767728803481824635092545633578779620007148623103636822988747601617345208810483330994614588442756680543460509652688143154945414974473192527609698556859259408844917065087679406408656096722897530767446470054045379285844965652710139960657760892356356355168240303651565834286933642881991394689023745974268062972309274548255818822920642404352193236822784341353083489512501193779934354465954828442750046048827248834505754062772807261421954063919049341795070859113780471856371781833416866323784685093485263024355583156342097688794303944953448737855998165484958769856953918842530878097011499717734932274614533412238768559658028195700106633018585159236535452265133225548826174108544601041443995658984805066345702878635299832098715976778076977903328351672823649843627436062635565438990251432089276997805116365902298615355900432893376935265761027303052124789709718848810512257867810126290534801340256753641024642615921260129723432028023846239071115102087396122822334085205759353682292852680234543322286560582355177965841188755502829806102118685580269041933656837177491428314400886480986504189076680635567599512553739951286865523655512504813390031943677861552808679199924253558121264936999892479805320308129928805654558136045314411758378750060228788807296067260697351989337408648330019139273491471110627823380329979620343687632344678951535563419071114824628441259696877445055314362467263046510787383279255782104909259732866380961853475121872731803508558335853739901070659364820532153909828099841203735500171204229181970632413361490485569804728991056055497588700177066543471624150264543461466818979682169093536349398395699220140433921335193544880042808913017836940230878724759390308380311880967351344408809221860951383637722345459376235381282455985687650489193203630947365276204326514457760518571550450221966007083994476338206052683652392568093439164608556009166386663546512553898679270788097944994758008541627518198059383926689270456722219601497292458866842684866030970306924931195853113821512441518685410243380880287554798860332339739960672759210278557903954568066390317138122848213964753614768266257603052072641648665939654795111712886401837206714783805334387116865204714156531103369795623157955746509038120207605512311325257014549444192894884341249971111713101065514109514457709000375232762131169165513646820955084739566085819117893220997930453956692671931176200591842922785465184143656134886231471881248697823046802970170251942398715991208995621640202911228259452929446990846868978011965830587178041261991426579936253014833195472103439673214420958862553261938613267238585269155689052699890635567794869543236516055481048939625455543448985857026415153805043775892930824462543032263724093857357337991141330782276093788841171761083949378880275877598016483743428265202783884585842087299467525270810654623901064914364661378041608594935954968317977025011952723256512979274000727590499554492437834725011648266862846543117859433869203146765734225863589625865516433909289033546938853192618612002775895583340036054591095437267452662559177841953274276605665115154781842930228747508598237225853354124850152801998410498486674333800323178175711838785404778412827174689285357041419208337869048401307164452748138128623158555495236313125060659333886188186086635640376330470393022407431247753775129276839537272017739121056767067818051214168573767296409590655738999332055160446068626879757278090339562345712617976599876048161729862817781971108034871798898266735344857269766858128667530826366365007358518988907246969316873453760593429793688302746902984769358366782429844910963877743408683459459962908700490669046283856810549748685224510214714449204245255049363572803201957903859365821186474664415318928885211751006851795847044239985219724709688398824139633452325978423246325458250098228210767380078498453308195884679606343623685930500714285599070774262656728553687201120381323466389084585384094560249446547543882138662493127987864352855548434040172681002306577282136301111426212914506636790454654705092735518310593375877712838007377085725105000494323974021544295789276844309822411202110332390702550567787791408368567507439780340194978078981681155399001963746971594384184398550605107462634360156637849246557885392917382120864864861350043574180754142036781576849245552759647153092300369517361623609620091606616444250198917315669280455476922935083965309857995662421699082064250111702341650706328236463637800270592971889434568732457565170402963888230469144313420492417166703371235207811208826472700917991391467802697070824007064649074965818082579834039064203206435743627849253656012079545097200255789910344996354420007700818484357439465242956449124818726383918982120964299134898778351517597300545395379618810420313352519141403774258270519739237894295384393400743071964932549855760187965301799850068874751532521687356641608870173949991575631947551646582190744159764985654572466244882691726859451335021381589763009625074634967144858622775761276009533784677696419557429202113692775632236798854471089232559238268174305806665368380606674457560337375809747633207541014308874425819512387652093402838350252839184987490722407662979474673919450106407511877679679910068063810016934565961075303094658908412174529240924095521318089067451949068764008907538400066227894806627883093993428582257043145280900752393493594878242490085756674628043318453667118576783375260573926623622107675498820563317055248436683610236366359971143086140792656773194797140015107483910391218851140796077313322598461133691816394722607752307340378545887957357613479633880910947739431461042282370630876580681126094639220587722670921988531523090369935268310507990116793865234159888457398929937616419039679959182138913795263429120950019854707725899913308303680453097510430550142085050617743928231844288041524864609473401729189333936291330314571538701748235408118584481670050835478001724590640313958744934555472728704665215779197552120321442981388210221410381838089045058270194494679505034498902916961667975930742498442398812042731439330228561152938705590025100855239314912539346156116779681855891437759533646668884065624059915876581038144633799202858365515244160894903071178810337845208914994851898170383831567701054861431193173783622814915156575525137987742076572916527181918780718257266148463282662697488503033297549252779875991003251847631135027608179697408025243662025814911936267821304798431637222294273746879406243803807980203145945632175957213629652000174957153681143677138650940354898069437231717235208836458273104346552881983987310838919502750092563112974443738632104379855839426308429218552005622888953869358806552362369650337120280637660804888659495146667011140019399769594446895288511181527499165876749890725844971663222821330824120789442880318731841901385901438670649165343629963270889746891205834007689376488736874173498774053880040763439156522812805432621799897651192506710490007409493122485098979858078435518365653455481613127874797507474567028908148249259775702011347262569411861796224316024211244038465461093773533090551970414685673109457779562274072840608011893465945308199046673361939669681005650279167629801078989223798418209604965102954506461273415880097834243861412632260875895137905256487149971088715543839386591342558255393709701414521780472101105352488745964504892744122086340778312415042068587560420124588552659335458154623883088951606545022970985151674879938063323469015734452762265164384159275172304585604474909407566895527690557623324902720193969596273179844036392708827610227486481438124211304046414899328135381257339445331427076121543584248830764220300171845656279359904774483039805037667533227330809816518241088741347406253219697569791025480726885223477699553680496020386647119027505572021432523131604234635224452400641248112222656013788199524348475033708327395564083701900753978273522533267941047745920726765883395041185237884006562632624269825350608544825671809285903432560375915233358613209074064042195301695086008484599885115042103750706731731477764467738220716350292713841932259952317330310110722678741203910194987730813635917098339926793571609350504748712803980801633803304063171231143238663501127509451353477683568925642371257105160224940884972706926379090705146021914258530336831102741823133681047992324253382790836168590870291207817258262793087296780894934567958379080597732816044756514864323204897550583950745022415211506817525072222392569569571728209151574246012558511397697720567711881162441975677981885213309641152409036701909948032814943205142944577802143316133987325540405620514110294386259729266300045480472327260298166549336322662982131748983240485924124888595699786897553855596299943592916003564709603910067577132587107349414283959533192350873285303810382968641777266857845022433346632933667635858301101757390306179692372733936447931710237672346565297695144791839901271942726924559035195236497785923459543927909856919312593326504449333579895559797704373190573174563511912954056453948857393092374815589129195345945913161295083562191254019633887994871415243600090847450857571082152402354821892472001764339089168705421576902395918421118485206599945375290289696738922199428904506737756867237964474264999924089069259329978771538409635891124571626592515046050520558735394559013428375941222536172308657629908741435173664949372087126744488144259072390439146808465998646551788523708359492375528406050995234020841102781958327068701709827098586442700810933496274221040325865821043840100733404801464727942053253112079928247878792070064101622668658488420908543015810984638910649683819473511470895239286926553023542381600516606434543925072323737661919534579376272697384234911313664506129584427475858177387717449951550843208665974214182705169744411012718897218298177709009495382049373235231162077167680009629681673474401165149942331178255928928065540337226407532746168242819467010746568984177026085937186662524168099856676252286554659549890450158954511986674396623631606382229264246223227305932644922637399276777380978251808491834950493748807679326809934750212677571492696288738612476238581446150772592188343490530855690221417831279363356249759950040272596106311142041247951174486619074555985666555530441469737242459494086488948737142091569073553964273911991565187718292861466784636781719985311366205107598899181083426569171472924107218428921352084378739143790367206413306608480961980333163109209277707383197585582499140369069687213605172446725063968518762424052051241758834412689362128580926972073198332949192804160170022782665276651191291503712331331185408026524948196836428665742648369081688297633972022540769297989708903341239675132977618236374413119025531115030565992848522429314270544298905369747650361226683199765005229357909300975192122050488714260385434218984165254071283353227422360002442685539082248002677891312798618854208134174894516661963505825978866055336554960879106142418134830579996784398621684466785378303745260688506738259584685605872473439900075194321525692129480094982759913722053319701057911174757982172235769298534869428558631046498265081133894662409574515519013276802467455009944671181559117693768278885080843949027487533354492545145039438217548242177714763803009644947225011003947122386820918293059178268911096674317373766429538833228376967880369845279971686036285685771516971994031607144722302632860926399542713101111649783252558625647126201068980174924467679117346673581004289853653793048754649381291184502801501521875518146138208802329021595916590614037644264853350104315181701821917800461047613257624963827775950434367886542854998398822270933296691414422669982522631825819790362368521918215033114631541773276412172857826682248418220735625267391098266047903339270219887562466356667848642234054435207844613444762654617292793030222985860548204690322082975234378476603116223291310986494724939393399229965379188010244433200955582686165595475657695336982073794949857361729334641485650572863126666590887549375181484526300828606476428409343805020021437853115425792281056456928259261556850499217314047815642926845286504889997741308735374025508937256622285015897961320074038526787309052049337124259844305157956623789098184629854243580970086426135390497423888915723549294008674801037801874963328381276065332198988484675974968128274260366081138981349529892913242928581961322988058919484334623465761335167985538759433084003323114522410573898999465055918798679686046429629047865426911964411198047603575740387804151273974110534873577760550222855958900005485607411773512065625473228801915371689109081979023261849364503857224185370955238714209715948882310248951082686609292574552551332047294662681958405038007814766934028888508109878788394112783121915031693457093389933470664201056678021418858865026211858778569479930330044838537054858166103517335853301543429479837292269337887132223807734546639444362314338658939921213417717373921966014887837560950674821413161651807068785271905298528938643132139740630157161460794882039007132535083533840923453922119796871469484654316741448507340466109017107021653864474011611109978299484773306513018780802974066974168377639732253908113153926974870605841440167443587878413384464228682879289387224991475858356519031378657342277832318411894199047072684559228360563168603140895677790024024396672357605534972185916079770355916838133158087481819867655559382523254388903870968000214383602671412511779336872275074857455071385158234436553190135387565649097911293663921655861508899579466208844260926021669402516176945742603146502543650534774660114296140831650083581186647861085896799086872316911007853777065558150974013732170045039312887674839862107880828819554737043602997957541160767535892445647530881077429742975796134613702487942437194436287306402501428711884304942767715268447726335292805501153959151982223764920638872863390410717360017595413753694942490555688154977353181572500831671931931251018701044618728468447443174773348073174722269699200844701142764051127675936591812630673326050991513209022536426235500501260798117797106228693686023313697367755308135602004608797706907743045164051614286011715222400874114639980067195680722331873528675656996899369088037014623120306835823164877848939215315848005126803998787801889813949703338070510460960577993405669134131535916202776983852560359012770785303726810243678260548434242472233644697643058939343961682544847228000517642373064550666615742194361187733475655055329730486516010724052412053497606536349012958215754284482273893786132474132983407356402760828842596895902631676252721828051397212288496887491366378142905664620686344493552513628374059781761393464382461457076563589393342090143954259579042988620439755025413255953731474651429094942555014796629982073661696533165442825963153813615767934175193547164689200279696068834886088846348830234508079113297382194306700599418720196176761351669365419182590910772167407434360238963541096628781996248100448963187627257614491898101772526489075227941219753542075554830229314754618939428005448072947148505343486195356974453664522581923505244518254732163202458433783275733198804373503195304267939454199698979558849655894927288015139695578172585346184250700764885790743103091680615716881928834103834649414565062527565658166481787881499687308220953606488253291294311649800600214268286486336758680102904675628817048134133720675712889120230188534187050842119656996762689431687692090675814204639738079959764634032811213818320855961013817801549102857653687736742951410331130575012394504741193868116246015294102016918813581903301489187542456842198503972568482513522619853037130618328750949484906168600129430801798208329422357724283057504136090086811995281589267954002742338272660742330238435435409924105156764630067897956629102095632913408057943795513345541990310558730293132214602256713487391694468464707042184106502758152470551608464091479761715215695129988049557584503224022554397122174463033845902578262110424828496243978053870232731349384958571638102438337856645117346739175150040861806186353635575347037540240271999208984005293383040454796828864469476655525617668364786139337014868906791970223402469735339136502157319062652489358517533219360626350879219188573268518882029401944644244867604008459822058458157126415261658153091106232975172717614392348587197733284036701738460744613593251569423956151721606310631640438712684343442522080913668006294155959830417820077603247414025432138170860201187732570917610687451223729087258218974668611503371534931958666924220726844727350375948225920683376565923943659587684744095844889572302908497537806058750528234727237398062598005423351959928204566683920931356109833334755494983808287281785597964098447963875906624289187530060005545628898425850502454805124762091234596699478958916643115403611095095454301012955175271356837545017194213710056781619898638397638876237111318140855863743073290757742563075631603212131755924887132572916542895630318877392693656552656084626089235864130690723204777798555741051940944262801939911731569012737030706404956421243883747563551714958252494738156900392234615420282068378938264030882509330512229609184335823748267633976531746428428711911897502867480914828598260752837298841300268055292563049196423652003916119252885406371933195807891860409504857091843818814426012860372161939163270985184160634305230245373373294838918215109985290466926711619542318235864210163185492338103541196362408845173129400852236797487816618413618837105909611266287446254279024309778013215006301294566194897466105390992065663887031625799526441144771103784883435641856850347144576376871594984939834780797198398347073960805476250555553540611073727855910812890361348748705596364261652078934183257350465241613992569615904263037884370500651839847368796804753883617469414178371597424509053485580720722338358062435173763818343781728729879594882456421313980825621064104774860791281756022400686394399406444803087199045746440072635752138810812878639056661345088349719941390078407399160901934962770765362786589631665453458369861454150856507183201988379323538061744165157730398892607977336827106308742219480232678142683687408508783598375276277490227188628368799417543112762095352033358856893304611950582798491792584187680854447456109192906093547571518097429956909955685263370800103151669124363982809151983927401741496939841289931071623487325868965221571827405454416936035199270520576366144123825860295312555603800993714751433181445364849937355987405254263375701872554892629976890091002417834191983021115901860578706027858330979295737054523844701302381822066108515508067984395936620605743745074238824786812221651732114358370950447278158267748207819857205398292678821622850770010774219902710133756230577213273051141302457969399388856337353121428510094749752242670897570350332170557701797578741485510027756835455054173879470223479365203900997843439362514458896666676447255827685008502891883638417708768854239595912829034464026991759970597996561993364631915574214415011586011423416018098634184595870448874075332465116302511687295943416535423298293345362922537187942232781203405610466976513388859883934703923919976609097218650917608627786758305824282582060863978273498676540108248135450258040884443633438247239229517484215275903757844091985171040680913941025931264763422740487144325564851910572380324890961081826500278713136958436485020324610363720763264175064079091629734255210171802997820444884938275636222546585016651410121047677453843589380199556751807612062785984227061321178156536849089930833806741334331490327793754956673206175078086238269643368113492954570555490944846254735645496306112966205703287599316366610625749028460756800799552269641830769023534406003406411356065006128691848440874163023722579383304807751545084695565077006040018198040069116127424225699555512956133658806118494527079402632692638003569735907310473059821228610613442070690726374766058133593727578623320758183792535615040497193385911962050888972940086961665984206819642212538269369147525278599671516809530390203353357403017475192142700271294964461400371373198686424721092687814733687321612524834818982789412396998227136460246296852199035442992044566088413223622261643089992505876416007107101649496651691776794830054790745089392123766038733169497285343023449717014533643779964396340384767614819349766529060317073396473867201328334930471227957993221016857599328880280720420003290221059909771586291900326057017935727357324983796627652225646236842890531006515395067880049564019481328572772577157340536033041125087798608526630114112396754782461845016556746386966092218539169122182397373913224595623831112029648585028987683378900367998196543888470091800683204342083308473660581239200213386055615608951336158003473231881948577710067354462355425705377343977148336369048093743436597598875764729555863745404583366324210461198187620275490440760560576504241148433627790430489147619354135515216646469900871935806316674705721513576573163916546994996092748355290614523725601513935461424485173795416740283137446287379173365814745579377392382504786271244957363110983279210739296226316494834648713852429791939320810571285496739026006335766593265932269122776927519436896079695926462661598304331918497735216065718596746643677147956944765730998893607372466625744640984855659346319106583044528708900522580765064290751121042116684873932020931947471293125639444516693958274366659133993149257806386056374557667056990678133622630951843676499234501037858098554172483385466676611100746647068600308776285756191893061205863813754007444174848592629569818671125640422912081266654852600040133729598032003618013740897872951842979748852022766359861183998132042174259281961421746948770516353719986117037669171803890516480969739464673687002041951301506996157667151180131824863869066592572525276018122231042659727884135076752303280402750937108042348671999220278864791152835645206900504393911171888144785829039544245407662185766099781962682245872543816724110420422550284846243988320949826648026330609323898328879832855837830742275315158690536282021528375605331963283641077680390938867664268102431575778235674255783771471506714895044521708261197422575452302874289426665195842882501720355512011269716443858757701137638823551725674522481054879746276689749417519391549968580572078070763792044905345756471931566329050202855731558408583781556505110318487130293279459920189192692288365321757828217289753282301585005897347100156121401579786824829553874405964734725796178748121220897397986591860324345221983619995271298750307352234456416176659181213353353592508135093909790263966899124261122615939041215535876595009129726575951518854437581622606203808600474711936186887555883060163234441373031468357601235623199939077479281503713732694993555091418992425873836945727669332601555018306378970052213061976758429730798882665339784036571967851890287316726098502408700881981475598232955685537369268688159273916393740075779553023716857136767059021301962014479048006694179313240063748615329896520269624734935383941598768983194198959631835586659066607809066769166972073393831023106127839028173106697559602767914074551130569007321360126571144571170539981491534727593868917991838393293289061189449437661890111670539930161898200596396723214783791869033155368049204579764001915931603617006270728985008782361136892332873935584838915123671242438944148582352594243497582948971347840720904109716925419327695819640386051413696841505169131067981831943264394210904437544070329109883909646901772798374907017119051721456642873603885356876686837596494486463445747319802346806966488513532946249081944970604191962175777953135332801997118409718325656491168895550923171055581600661575080426246325464202716058575494527457633792114531440570681382698196814588156710136726751041696006243584482298896296613015856520796518892969008966041104148904259592993991040168750837152514361410523862942595013351218100958585470893908947621992559138865855896816262014520369374893050335128003777990467439969156768564911257025888796520605099716954579055336979911014270736992567344115677348757783680187805133208043184175343387657463514388253448561916022643650770107667520112410996218087478216949587483212716046653256431209057346257873839817059000352555547125968053340844679729401328837344448874322536683548158807142201975696969862019807721137243461843492510338792596517665049074417345498113818081711263318159454192788921243334335844555617229221601745812333186874042054003497955563715574083414431166033951416081765727681162660156432599911032371226756850096558244202538115513113222810948399880183799016168118279049827214515929284039658148741071268091859742553815203657693687243050522445534740948057983996630598753179255670429995907788130613874377349615222482435641126885808121934797766834779952132261279739618636545240939347577093202842147284344136785552194191930741752841482418981517780504121919402416561373851261737441093010892156230133318557840391353342654628063859035723245282651083912242520198490879566193762434156468611450034365893882636815953846216154644152088804194050101121240330500743667640986695234785736446330224146827937464748570814082880372867504474423915026030652897614176520519395413868548097474685623387321897495583961151455445128506214452869630131837459187269934403952720771361421717564786760413034007324796191220208052159161040875158715771609603323772587811395317339572581421170663817856982259165250648628763057167964182913703969535659269374804271075463702018231840732601703950645593737776246274950209328375287329406037902546420751430084782960172194063818388849165198359442216346113760108916153933031776345082997665006689279870577505691258629273649913953952932891064199333888168069068417961574113315011459684807610951701639731295365050159127580404241148473515676476658578374997573649610268953665439070101146866934609715459132062029375684462516371474966084652816536111008241661181533711453060329190508222760429504344387681244448736548749240473824671110383666835606461851103496923013108114992321610207123383223096487575459400604634408129519294590142284662581682596268149112271819525390307221129365924475766943507491370721621625698938991804172175174523068603688863035714325290423215015229466165525375802702364413057274498175340367355293370198074774393543447598033606010797880866357659861146964293616078067524825456579599937822641023355949720994368588432210996422895909797960343309101463824181030330543095895648402926005145151638082534964147027963368864722428567027023365762254611168512506690238538867527102257101037192921078722355306482938421243056892046313137193404116893678052936648494937533296172827521686536241577621936186620487979136608190125728191451150333205136463332370713308397923206884050803862654256631056278068294281846703365528699700590161701544416397121107233365129181425570762575008953452869084779621522073406982155275508217981221133052127424013781122859880037508224382439992727919913749023059345655078972595372724320961369464202284842464647331357736077922138632327366252991295691462850596364027415632924576992904874269733039073686102814970103639803153718327865634243470820568553284588491665851736592141974615007886787393591827922846374534859577484552123975752262942967484795528745330058187568377704103951697608569605324731754845272116875266057473315718470957454074523975452940515630414879415507414879490792625206498370167112659449589467242442751043238162980538205018627051505080912819694316213431719693417836928480420270730519074554692123355320251148245606356091935612812166496853232552742073141222627873371853377660139118437892891866884427886976205863912362750102406313846464026509447613801875145618813595906396182347953610535280468354508594984486663503994495645376628112754484023631551111804407714513755009818407802312818000305969943870756898509230625569133021915746858469651159548414019710854230164007633142380606209021592454411487738607872135655048843047382467978102137849809835947889288133463105704386599537054320466029375220112508332417921520030450484541423950660283534128476285285931334563332145129762332904024538188153170686593946947783836784585744182994420493073587553947857091002041535182332565572431048333422989554465170653554609380527678428760493422227508225737053867823571552652380348529598968809801733098537263136194630002171722726019837373930434566325429436059518220938299795188049636198077706933556741756888079227545575791736331563755411623151845151667335289131939689465691475024533548164569091075749259140059364307394056075051452710614099375795778958003196351182532161231948026179985303650207690390328352661002764005018650031303996040770201291471889028672131875750166240488345497536634828837325293524918243058440796809080048138330465890580038711102638085104213924030332627924799204149473695813887247578570912938720037393017766593873080469114806756564519303232476606732482022598104664927695555918314442752643600826362209616823930314395111900054505514048417024988598579867665270078071953822587074277385301582790375488027036921686681527112358820264556594093821044511498359668031219738330081136556475336475764774513812862790281882511732816552695749626820350462392624247140296776220346309251024540864130516635726543349172677643366392292523032213360940489568056724924178651601121133710146142805160488495436338015208411565815887901615312387736995166962880928562587874647747652185132096448676376879597980557131111646233916361941915086159075951184022895608925978919802855380829056014977260562895671410674865761889366382605050106732006024388719730230177812252251358189727951510488784010100481296235905803692918172173405039045552644468346710396840999105600663104208434264609509554210211319078967434527591312732601825266586060946348742758346885120358126841016586572460232626759629335526785212757072816082440550886818339439890632255213923466973753318553371285720655758530095944300585243757086145677023196214837119649028351753263938412520466397191182477459890828353378331863423898491927855135481161394695172649169023072098805197058886083666580709031425588034536988652093377701487408450623852817507111088267800418665561146113501943887935774222060771493088319303696883678053905643073509722604932478484806606331914638311532609348201490853465673101013262695786584767849914882967535556171680969921337931383194485544885262322026245620127557970867106632011222370328481132239066803228488593787419852489642761629523361484336792476784621144847627041956050137480492882679692924875863860352408441507837757912233977104843933027354143408659393904661103713564220835896624994066090444771543068991869842609107113782167914990992574272702651751984592475828271659247883408288621269469513747112089728336685952895662509731789407617377518340947436221443647042232972290718285358329643421071937881445947917805715479059430461964577807878149258619722543249976141205121127825478928539524968400322902172686994273785701833288484264175858086034726326186494406301601192965743599454263223913875057970356404041200482805332405608515697242397162653263641861916632735680777380886938558653903753898688359772979241475272332907371501144832033383284348203178117359197873385145181407089686505942339466731487294428164476304244367688061432103782352471853487719666462078682344923526160296462273890907624680673236597031956565614352270600053046460140648015863319626221425540654733562721791046791045459840161741555834063750687896477295269501844795557659071862932669992060962078663685518803185478938005034189722437796930078992857145422993048708075459851437627771033436098683787233419955176660136575325492959156613917664433255615502580379684946871121152609377287132774960040245142207422983850579230673814583252218883690078775640795056168447919406119858966136199543222397262807731257276774756983108461244435904680651781518739300225668813260617177642159840200957921774210857368077959672626336250911155610184153092597470598319302913325265101074904090693944476981024254074869937662676655896630448579876154454079139027481460400176366322535734021789324968741670202158919512031951448280687323327979156948668995371423902142502653575943467866948912287855485995291339331424120398316371906796056941921703317439093825467189770820534610068458890654576800364653128647669215583796809469608738109963274757420865651003340293708673567703993615024489015348898536653894604537176702475777507337216853949694609423957569645490392452372172990688666398472747685438548270155168602027948183404201471301067395237794885027920745295120200471517926810382037598752602477386022513488968704106668005311413279642717027399537410311988284985466487089137232976181837366776533740219534737181181272204942900416017607963740515813829080965925819541759677629539095636001438983124968295968180292742263683346679921083435678842216973880714420905859730697680761861722798922156614716227129804278847104307263811939205567171798459392484800058153253949157944265136109023372152087479425934939687038577867165548354406177667346851992110800602936686894675803611462240999745958577103290112765200610161905627925298063352666357097224625620586436351209959349531646454902275373025627480200378289615593251072163375704819951677157996477277857815570843280541341404632250533080467314676727335585102886614257623272595896850505385958077091572925474137651811996820067229232365245869328886124153730086329500302218451469483168852131445980494712028304932360650451592923384861656463330890022896762887142862420815700574524714315618274640401366397082250774771553305510150969567340808952001619964847110191262414643556212317011995550694509402286172362146296858187137423185259512346222924866150120611696323092367292853152188855693102176683213841827769863828939087568299796524368148497513293588726332725643149112269508334774938087063708934739836725927717732173677053098108187494184210546931615745168332213223324840053090317539672997386903404791204638944190937089329776437835487378433950995208401533749726007584595660901635851670948022164680138985296413937801401873769459802644633818032629020493538017149239062900120135292572302709738562049368636132455425501672507560662592365580069106472065934806756489434026716945019979130119286585971331924166818412629445863352045187007073003573534788158117613938539862457305483693861631552550679415526940381094242778361913018692869495732327109707535208384626047371494309389939444821566343562793777464667034620203303062157843102876421907989844821734969465734084270147974902955269751676592806087003927529995815414066676347895493295238150134135643276273221545978379957991089479687123401434092411306831007214667073441797931365523952137989027645995702667512449044441211140577829441068211516905207871156910284755502212791240516572683463666953399513468340473424674376778745608357534821799443119379886720038404400242387008264466039298446458135205001895027797949095850399710859449066729010185064550783085423577160622136719824801024269795222704832578807813986751761056106942726098228218333514942888503880402836715051629861706466096329503758613998709337662935444021126215904785238917832445380563808005598584313986705886888072595404638236970966346395012423893880476116810694890399611294293839634793262557554380864063586722106891205506673530600293387874509680432333034023656170436102538580169754929790115578744107175607974388731045420035779218204577431502489959059350755261712494783056293906701673444985336237001388678376766847604161832728336469976711797653403784478651690463762830158089553941724010885822093935077135121539154850192653723765408738485250352668450472162410437709936620674153220462190473367290324840341851695807561000404755969063011845911750969015331550967691881512391981278388304840270777971649202585011011360607930939408382869812266061148548546020455529982324226238083327470479400140804781816618004589324757655658511620812805334767681137725065583936500809783893935753698443561691573614533904762925739860826264661852410395819852378739774636223066455611151220500255899298488497753506623297644131655572590133652920459623771818816158425124286387656354500037951692188761908957102515004363498998625773193543533921765869457377327609832287439126512927056371791980949080067519455802612595283485018358058941083431031616454189653360983592487270474851966788098868111956926532387723700616604072509238395926495308977084439224936070930069255202236585591263476987670328845660059891303445939869560923512293108733790314456654416072394146837376439478700947663183818303270264862408964168951457971859124510639444306132125470976266998863455142399771647343973993284576158408255570611733403540887852660853497840566617780189901033478026007184541689393531185462843681152395846956528707090895192731492372447668557666516055450906883786220291797690192494256157130140976507602482324327194789452736842895383384358046901233083791988322478986478111603996061327144039462463547149157889582260888501254408175040776203350596998115118305987176557657973213472186987931876428547610397395112438852577893571007987354541245432989168241905312529677415704067927189035414768431307262300529408315738855777290753956588148350202710082605957481171862077631403499949069077453817969118268629688391549314154439738448262889293839052345439087740917512695344967207059340381300574782755114835570240579525729136656281454194093884475038741228490303312272530277311626939827840412579251354413186109660523763908585069064860565387214211277483244029779194027244149110927386133268602832133507084362673634896554247968872681254182440649356015356327916548480527723388830949384388475629852742039254057606713494568684578121594613285546387228215569594540252086234713785124021522573040917465256763791271848011283518315600952247892457373122273474903473414695951124999673039753776816203624028134811904877604106801436283835704470939421802510850355505458912690840818834715902918522994878541033851734935350453378417420456728827822981877229038855809370725575798219330745586057092335703067178107187351012479307112938976469764290262628608058494032876629170576822609071541464840822059897102597649439104555261906928082809908358279108062760437949785971700104188331406262695207123643373201957891317384222136258070065523174856803765663010164432767045167167204666533778739008311898997914921993023364670740248791590405240609508702771804915049548049115180692554885648508464788732752282227502733812156942529604365056163379645602863202787201964912975818744365964444038469438170704796382553096228568682437629670620660801043377869324240014735283596077311347824856525150527900555349081571659333075719866619060656041009002386183544882558497087350941648186700763915682297498941020668972007901424034208188439814090224569178641556586769282872880804217556702879337103663576534910063617317567544831139311448341800722580014789884290980983419823424097501552631219636244481384928213090728154179961493994011889173000971033089426428417128927242449694693496105305650186149995930564657571067663734986474977938431913584599980288460545679365437641709086182485184702635390551372135191515829705904423324321457710334777784022111680953413346772733766784888578095252340637378681294660090884311461776488106362274990469740616577452442569456500445865193223437572051428042764387012843361499351584581394052384845728066275753568693664068235512757570135711963938613610072411602653891766960331614075120322050647894680558664551431990634157727543704379003331525536049973039913505348006522509847403319138922901020623519026833487016135247589149970137307577125468843434341174412998844960685997395013249300428215932530454501610685163972812749674654656765527417650472050967140577096563417796184611000952198372353020025224935709902700865568619566451003979501929940833482414073201197361168604761156377872025115651877019088378623832707375523099859071813385639113491461991187527412614689022260431761627802347143183902744009723265240031675610422962435310410861766495023243596618371965763577520645539929143341988050765017922142446908213558545221298368573627989815361342893870309183410263957352966313074662442771780725198835032280508270704813659440453807776807454265077953191268492892469931640002137652781580806025993760429573565676285383388351692788907470267921218196298037783088345529644627397750841044100965325998684573308860416570192295621424648762880825537470142516918811246074715523288344064182472168460128720649236879855729560742349846534232964835019340366893832663908062118012099247602724209594331348698248388160842537691679164988414298733761957628224120415629304132105550340972266226816381584691542852458078119733007756375027066966428329121350591613622562367987258771454828882279503590611823852976470566938808486056105833560101086301153901596991802058295267696817336563351243884151485267856881650731122921471765515969158671840210224491790523820794306584247521973897654149201632132660305923357347133928205097274355383205452418637230993765934958705258522916362867936592817319567536512245541727281056160495047063339130874970263584956514889629870045382819446069980015730337963108211896808717426853554825836387338643763040805683048282935748902769105336438438611918967972407138173746684922429332751834403163891899700237058470486510825944355547994183851043027342047690212083709073879397032502366669530374297603597187772973215380608936125540301256866801822753680746636901967338405314501222646107530953195526505639764694906260161336415597347692773896211727067420499174787534619104916179742875127203120907209895062801202632277990849027350710201969701367713091518288243729200051171845241879794150858665232351806650086023023782805303941087049734669004626076330407733470656230053574029201011177240591182845821051929661751147825671814653626454796725530609377301691946230399907399203244338821326853376099329871344646957670159568843268175118253527816465202917452609923650795502499185403775406365959687477165645414139864170227495436846274035698787011245746661247784313186651007011668416722086129839929396454594394242368821360979226833629304831486253523555699037924072146463559724805931388181086729969149731856917952048684904182411461937874543899921416400445441020661230023399074124439426532537580562417921144709927403656154138380121428848682416551398537649991402575024217330081160564719941587888131440600468610113225821917032140159648093154774669584030160808669782020405896043296123102878814641831355468874019013447207644902048726155229934687918789578678385433090014468110842839320176716207631655459823768047735668399173428136585597964078659964779354543199371297497460340101216039720882291158128974284344278220600122489263573776865917830075783919196525666949396926700007847855222233421126969662454607783569751704319993013689117754028920212268793195199164941789797041452753903091314287079037134529706831840498907911721236567967475578099776892675580849505229790403529734794404466212418063309766841414051447089551514566369706536271049977066933765266685757306112493940326750377315203082668187191238981600004911698724345125139300338258938256697786820382609333723221568414254182314359869625493915732289847879978617349739836967699340551747436114075422286802331773927949104559400460464966351318653671807512678577176618909628437671504826967148763165468164862532729834234854187796622341235972740412824878302889145729753147684337288809394760715652658332856991151541212993872127845928440411296399430027229463998793764369101550064178388680282493395536486030936123239394674466118090907277037140590413809958303642759697496035672662616239717584385976888441016481254805954353388176160256346556734101016095488948458803789593367004904529174710515187866640785270691508765520878134374098872735660974863825979015837167525036974108703528875492996117571514234106380313417853571098775048686930243599201713098534655078677990872059338694594465929900727012100014729904376665688450996724764518534722271033436344472886930323054442680895519449249011016056827509286198500914453202379828060946443314110817292322858286089073790716020319818633074252597468473698384665224190656921415099004601394665294665710378174989655321504718694366799129056270652602216408752355999647585182164591022009273605935501086673110558572758114410486795466117462297372950936736054995053800067858654883096236268378718814975750416363478362405260139860435743388895119111112160215068363566581170270089376123456776393345484018493336868857289410723294071312432615729963606991062879622595490214233738640078406732137494337355729729679492364431982736052823572386824202693653186887049993432369821188817239179909251843842558014241427562308778096692585006666257459770147807610933875576477739289102071178344264061894426139809494187781049978346175979733536666241591274017848482129394596187483888781250796028941859457835243312329126782965422986713629926445332774915307770568306342710777445664746953341931720138081881059198368475814851611746332393541644807196357643694548010419823275300411903581191572972533660788624179937166659246798989784856103650976553932912577886628573640430241514756154416223798817164797778992968184553326643411788839258382113898222182691734378958496085121471953179585936940848357338905038230048497894843382931777965454049240061558378329483640605002726826576686312061732122381608098465375396522925321459385756074681107708909786854641759416914677214107298074329717207836805749618690460512437882754179033233061626617787560089407514197933605635857119981230849192952143121338138946704343086897738559736001121298998494579133191619379082046710229285710841075733072713043259512990885548181619946673930112346080672296093119063016203567303525643018849313433287862417545033725898891833931548889791444667679672201223276387200287756146843625746031003764575418928297458619695977396260796296341482563456572445888696536187515956367238455100577455397480196584977011315610831441953864840825290504133521536859979312464704530974625123145388271719554942488017931149058200197856344807335142673384048460074773440175288034778720404295433192459965449330521596653635377951376949340305268538846017300792708144838565198018651242003082418607577928472060362910423600714090809023079165658630217063857003285221126595749430624126567200142264131895848997068909740490194666789144264161299912634682717683446937614801695110758280227798695660721638142799909995860028206760574069720174408598675803756352268472224842371427426527439904815466616445439580880558954273237779978792993838636701248830816413725872813750899038701402247735505863900244684683323735402347567089106645922715800173911499832410015583959114131445231268131131587740767518032885988858515220336035118537184033951186022936052346049300789366262942094400393817393638166323959836542907210777042375922826724078880112752861037413654032058943517485963829855478449112671843861062022364662677605390917901518657391737934472802479607298534067538451374943155281135227941862305401792754768026242245999646376391372348401738155245435140902402822365432842345762234460030471234461817043030002309008077964586829712273674247788816279994491715495339822544353126078465740629414721243284866252566262226880844041401732330787550622940313689233094985903499301350023840285607510739208271613819205977569096395673858268882293130888022097893206564307890547753546104672158262134962197711858344763089831466550768246369238219068978335106794585229649625457958396636190872893904947673517108748806123646305811323794798324924658247850259494672445609573969289328161358661813799404255566791078394270213226739503292127231253124687557383083008364544363549670878588553597043127751545149537428016362736044982926817485456504685997460311654632165809702655293394794918640425495657958010977058869566566397854419941339932930103348717435684912859625315708170450544226966477629835949358350982774909405235161081185732949455402524573375563797397978510684780273930354529759442849646800897555985433008129792214421068527456037721648258260703990110175593315621033079965459291674260285271300895081267531635670570371028670110936940589918004614722842376909115170544939487542736355104619600800566299860513049408692145740498182701425069043203171444432841450418989235213665165559325860719506910983916097157268145862350823023021113007348207157191338352032240799282722016027102446718598207532950588713676676129885637946577585717094319460759115294018054038807001681550731634254838935148176353287394929218587002509012312879502258456709039959454520640864120141887123314819838429948571048596470133206080173579753602412977271163925824163972375231505171640812367225864488094656861743609497146212940460852261545064720018853605865812923255441399593883851072993646104750834662868672829594510298812104950543509576971291837712206476917686434840383811856181376810059857676254300179271804877631634083070174009409363043036438896516448930529254253484253001623250366849374733392081684909647006716606489915756565366790917466423968451221837027144619248496972626494880007637053908340193038345623782807532369945336952150427195709626795625969316832016573642221732257041798067275736763366700319620992835842056533322465196457743018075071536542772512641476602095712980686420369299002037231262877784553175498589971221232490806929888415047400420753336512448206694814883182807720142429382050096740479467438122311565261453725381465004491558088751016975409939176079972175389510966888005263888512464083896941024919658780459170272820485041671356354073463255020257671671248344095627571537105281242487089067345772817214048312722059079805578246693659503276568278213202247691049839859133463957967895324721824334021836400297768181460777806318605879145069786371372460845774729652180004539862254772882163772233127041622670223664275721848816265523776149746055456030618344496956552620113213308186539537072332686447296262205713541464703227214447251138363795850102998331404174265909352917074143649076488426616579827672051830030962068683231536768811286899705591202769743648071585596045976578591096706195287260873939036758631126071760989156224526261018433526840637145419311883354626380742573707733513274037716977516710090710941992895153026598973448127042400149155842532731233898421018092523533531194952878450584883078057514267554077269817038883414294340184715394983401651315854576950489847002151903805718277826614488441877275004973734541148466295003653586533640450568952292407171284004757895521959237144969179996719372808210271999151243759117757788618296398059843613671896305690054815424910727141239764844767385885869739138388831993900901394682645998093168757275112693752255395075801413240094646134334300867382346491143735198083460068410675292288586496029485900342793127783832556789205422759690371267361186072383654084071935005379608075476146819281713724879438547943921681829425438531404004700598324076974208815095344367013399676666645328655017063364221657565234096214436690678106699240742570274637995152573010722998533637627233321675500548881975149446184223971484208931865391399904738410790754736552515248315112179698908911519147242702556383642722386430040176147778818188902018638137301247719142925323922000655861955558404528270185414756491705653323327364659978307164578472889955977023350567632970679169459285044141952093692030876179485754333735172680700829658226093785984418916681511304855383152725795007201180159941033843404597379431632935015232713388492490145070539926201316554702236106121997393641796461295750005174863957405497016885089654349278251927897951750301352206127461746235445920487357849592751109755522734642332545334495108620459091454695266213467104366042885703684016036321342056843104784650000262628899170407374281934786528958798059371542463685736835532232723894423573093816220351039282723344241432354176346481812091320449537519201754087877753826911110917083543333758506481655469652795473094379055414264519786135735412118798171810894184669119611109104562528435965962677577376035089792504897444296243502273021335123017638885033208500063701445426989198249632935712157906485219343987926067681618765118208099583993644671660580695969696305164422220386363857334615822439195754990999342770014591700559694525362389232436585834791716752434612037378060988586004032355638062133829015069420705299612366335709186175731786127371170383206127959550788317155169587858119428462275421609757697269088124721640664078124279935991550648089201598159225104959252764027961884821524185215202479401081016207799114073881326238949249458526518322716675772628773838445141446244861073506391341521772166813714577400144886708570826938416566810586796224160790180560890026204971211299449760400389287586353567033403624825468774127233387544733846253335003620494076317125556546028118375789301934479572422914082250393415598715872664163378555212440474696284443943380591543481674063720578549785314487923026826606352321993166973185877235592522247669862252939315324140250747018595574780882564925402941222755315727950357069490853703735859719343102069940134541014629528040801519200102541678501719304278789593197967249133118608205270091362400630242506888006182107713239611465672801801596364969889214321863701209137799677188402886771859690202300779194395381853058198761336029340848411790265597737653882711502609402861164018776700052127008205982992232645803311469962488651840996993159937002779806570620007482491616835827808973836414290780375523138008555834616130586298694602404901783046824243395642275574270969422375649724076078211959357889813540431895295914671288646167345032537878335540932665228509268208569171562293749409147897353864772027695455772408711874180561770908496069728520744659081247903678973500144685650566970011236329712867399505069748318538859943801955109208362576061044411893453511570282909209493330439585056358107673654489859708388898512954137740734157265614567042408367595078820342596163127658691675262808072249580607628918262231092016621022803686006706317599617533108226249195164982826573183551768941762673037271488118440527166653322071122291463081737602105211489395331128290451028266060127377578291309430659039140838383221623495922184288079998580057542079521300838557295365441850177735654994555438242836864058059415791584066807923273472602812316776421187966402896461344449754731199376796334637759737752353976045393139938772004206193462319297956654978379593018954212342643533740460261611586869602196589782915703608379121240948759355554047859028528782889756112926036046937707353586371925693081619376780485029934066348908285896319128378334303641122962733630326035627358549322263872164461323807653484981677867544201519367249015736342545303762360881605273723108821986439897870612677024618195270505909930535493644013054594315920211287490027682125946279463172868921726493843106060819741024289118766676695093681169461707635541962738868116828332552463740154767568285748324301866066654132791387527636381565870960378820104355247072235234955769090401726459845699865997381819399404358004784680110398767891484623516372112269070201535907391254455753212822603918777170718313555256747661823222768433616994506495406971126678935312201671578904412804712007238259933729914227566265147797586246965311371957006613270945773125423695551505840572731977725675941060845132623259656040216766693474772256818568576393143189074484898223286288769920787144043315961798329604815474318388750710996551818246049573714599879457927267734790038385616623394314688006718274742531819520198737261366812121462592985077306432862447036148808541607126904759778928645564893729462144260502963419896354731731329730435548005182657093302651070027967151894839149846334830539615405282469937275649616788596838704887014667638748926819323785549187853331436068385867323635846966012925694299386198690810436617523989714790820782575292255375460208070509243593264603985983428529376996029331097417868821596333487588693024105207220208659531551380828600671737526636983774936924438745010456426752610251485579776491992217257526610984928498730432235305025643332738989073476100692701903009969064010336779765386999088201124151067820100815022170817084537512220767129917774061189074078150080218456035868223689926696548097368496911637899159658590159875130274106525930411880756706634571169145805774124185287799972189997412261834718190424255814799216167324754552188031690755299419299059462743803325916159482481541287410058890783170191316300570076400074845676110588641356720021160874325965368019766660246390852126556912334118118615925950589354537400326483201920253289009193228239742391236823456442401482882678058938366185252964211288932612279837416759537439284275701830149790191349862604193076264525977976338370498622301152014721991284620259135861451276305483831930375693523807557684276931317464974073210976150099176567779470388261130881260344345496926236827245374261003335508847340619950117817684132636335211562203899347389206922172952772755465528068667927262723552829846615128052098832202027127359795921417983346086150776901599299434981130727396701343790496351411365331861751933124977156606268545113153261469320426876071410138387018231223647754412887247520431942033416421038429749261078964894829632692570669062142920110987883896262487932722373631263158092764374018145889283878880712542100923901175885428118738871454877342546940162162459523889048044467145207920970562304251597842633655393586742084231249349329519514216462513248672633048807250138574122797447827432777706355459622154910242451426095008769716639163655078260318393417410991120938883075324727641310763626491282512730589637523772099605511447903074566324511492121606465731434033457200027421827505886878586365186832814574527992620753647442614924961391712839483389979824539379529199118171683432046445625297570182965795862997752053656040924551765911951858833613193845708982506134912906174141773318329904272415046234332071382245117389625315364589387638876117656229844636166284929510341799107506592032010973277449578067957515761270438960567822913102268447895290202246464233547267322111772390801270886316611248509330088169521829656646871320812514800186380053522438358594134281831554710152998177125844702651164453712633488305190374094103634348906466385573049670089811270027495889274959516111583460194188701113915164527891216820209544719802154942726013303788519400007692817767939383815063640853902925936914768984883199382192004462703805405572954959780498805394537560125713557840807688471047074099295017606003016484139823605910990426740066726577044992339999920427672050209536615099526260702388799557271875142004841872308825703437900812517635035790036129691710902241658236425544306749254045608786102500539994546880804102192032235004091977142208918519769058499760830270279053045821364607885465119347647981966884636069247002973740472562502960492035600308589024887334394829864117024359359228688986261142683096202724952600278284706216082106907006566154071082236256802750000365854443645556991504175966149744557951514408643190130154460388669123399090447430416839023258839772318368455470340246493982310624466936031404392423214614849963040061318259197070869657963451374417181009697614774645657300565090267213415482513916565859118548163197806838340690520081934669287565677727735753110130569221797062312540647953667835424210752912928099458993398496569230317207801517682826249383086998866048597881464698804551421418145803762746404878054151882392015912196400543609310488018321329329396040798799530924016977005230258926054826449202998322854539142848197627119875229571161514438512972372587436723115273934493715057238480578567321808422481766175950668903495437890708372058493962851746315203350182060035809119178975231484571924131406903124680096047589176679662075525546768241777699023650720964578569113306020662991195646198295899248078103585168868561350511382877910063011764341858487604305753745027402701139065537658121774869370711150664475620626387316409593213221562526139176197826059069749496405992214046819636466743009183761670376958094855361112180772641354562585328068128915675516431329777542261869022973827470748682481280679762260533193073214766229455939684767800705399082776327963929596991035579733292606688058364634198880323251786633411019668513404593433782684493315602106806053444290152791896000784697147941187725544471260472316743323329713512689580438580530535794403117679451761618185242909001371924266560812674990882764379954492474931286312844173026754797917343919308992067100725291211726707591766210354157627288588542396567090773718137331707596332167268875965084919041840620151922127319665610456103700187584667929637335162287346861690596178658836802427340820108520666447406915229772352624810656239906567635637456819522270675471217607676486803213212517438591707753998153935067530509691506136886982231337174671723134566972484478713963775311286111000002904765095995539243658693546558732013851235097430055225825692871646950969665266164118144321315898085362327684098804404924794402575537681364286317542512770073802724621783981335955160706526809041219042367358286391075038277834718128433768295134425397067160657343195842646860095568140363913416455233097512381444850698002374597776368536689467913578226169835232555359928092847586692486981086941425225963643061301129433010197904000090139932001446440567176032130515051952049778462300242707429691336104680187980502349386603306972711495714113445287909567437279115445003623973820022429223772599188624481259726227005501453060215870657037347884644029174738533948786313651868273017088274028747422785762404630313784169924760959230207612133579514041097331514820577575174278319166272025996750659858088096045623612309724896310303366965516025276646499774514010623991008462625602134930162794785248589834054609577851209767243028321915040261843525866805465594219291732566982543981898133222290775744924930844202510731732165248845960911283208908855040085824283632895121195925036828377424465563180410054781493794862309190681852585164730777840435660124658460290218240412413820929900868683130079917172442321199051878566581279500043594570501728135335636343725340780030040150600862399495035584142069607710494812780019029129791894902595036414683082961204219102932331884329397773771183416434246622660744055527185413298581457104739407159514277730565645349354814619502371991470726510369955061800814194838570656913003208388495348450173557608319677337722401268055432417889680126551839295188368215262603742986100302179354968201926546986132209049535660971715489702934791479983016949071804971409977993992554608981259412147815469080202562202805714130439620688722239017927907930196786740268186996042086808256906432105237007538819499908344419309772513523041032874540821121155861908149583610520230354152464140447692355289083760312506002756669421028768400210749566803360086512471399776954549261537507924293988547785002357678973938500522868099806312949441638900760815991711182892439723731480200196298881220181544875003269745286604699331811951573387310995658269491794571687965245019735880251664024283851022001795200132451851360644081513605554569177446764455844278832558552611526609201303852619662158258306354139081431692720872114464862077149846388402507223692674996135249694166635596453045853507941587417516977265716611698543907671609584915018305056667314415619474354243828045683927871017869826350925671122031060002707131933356650407978524363675519533521023001444232774801422759640500974974031037143019861856810262353172668281266356977830664624818393730050062686778440164178690115271610118199791227341418985086961031828950279120543916889957488960249381035357564024810111490952152809629406040519848444907949732589027345102431934241238474052380813327081067320858370014592271014780135287883139765391841633386951461571953067698016690295072149067369661793950817994220089307739671400955350020410178626878560619538519198088178183342355417830144660587887725508984832642804895392977576419454625675055446894311185621528356907704539965665830359686306273999011292043493491963617901793788930069272938766514073437087134115278338143009316950268664838693971259346249512003693867524851118959779062604764952239347373617208100074037900546209131549683055552717169487107652849047076341495484676627318365765477731533978543193019379488504765028272682705167074484809906870108061598421324841220370885953832987227193958506254312552074550817087472143036648919523100915173126374232987465648801438277246440798967737123247366612332633228189979417001267729200935237569183766182947994677761682127274060754568551376702140239922397989032698561596788485564158227397615073742568129909016604059845918466617174867577091435475630178419256739852363638237910217213996036302530659080354472937703692842811602378551596053884246073980237793658118207747458921999782413504329702936324278608799053625701962414555118298661224843897453907853304945042042125837507104022951652468381848959840159578829680714662459232246245297042224515119007411491207107906948869653384621510271621702377930364385245863697340331366085587129212934143973050399940327966634216363517489439250413022123572655619684229704847608332410730129433641929365244396444311848823789545918335833677907561354559648412622153167412399333313311086333801910437172328737900087239625992374854127710242429908238200570758533648835212036448609533983090531249782306018047311519160415157655608694056417348897635704002321338045840956743756826061041398741991274347919631016218386825482728023757194548647676842420108489914895678968918248250353046620278115142366054674505710219903192300809161900262904161170867506491126244108089210068604913015913789045162931770368914784447374189694510533785863125951866334449629909373557879080954952679860062145218994068602332605036819305402254608397006214846299868862800093505742298537658687077896525726570171640334276853628607334013559606058942404341832079041831517715489601514722812874690645799061165415689300052342665364405388284404097569807862989785962480736092946036079034187920544087296761110180367414868147039054067290490136568720549897825864916319607157805745527784870760751606160586363801076830568856952524100276505106694846662462841955003176191116959906182784464739313583255720545364815305955188325834797268935408037204744840396081589413242576811113635454989848522133442607037641838579235963477668657466062930876456184639405001490573609484408528351779242535976440972293575882897761121685506748944005316513265447713833209665509828806003830888145180375638340435008075218156654513789720154572783303543829026510160981377241425417885152089267249799753151410835897072277640852422777389847055354305232768870279353977824707981306160570935757313920400791635040597343663154425604797633447043114974140025695177606141973624706095306317650420494217525138135548246136848303020457306795802469032467288436234017730652465448782998388508157108483446480744388928721582078292473364721785631425408564404320997949124401580649400486764465569142411387222347340863224039759504163015546361314653868171846813279285162501005400080795838807586869711052878441167528083687654765971634725624099775326134694962560144438472026679592043564617326451055041226506414852312742921559992949004658846200527181978888463470828233232799126055734128590712081398088171988424006944741265325691383673341330034717617903614431920192473624271175483132593491862438395938428587390843038929325926226598254742267211834202844327958899983661118665663814380250011990868855378248670952753148528000017239696707241202886592848281294462451100917442894650519487950316985861080259448994321615319536496770060332547107459102025229126012332557793706047510634419642521344894653725029200881683256181170275249161425094716299814288806118603294759355246321705308300308285816399961637463582174500197888885688677560149181338727319051217318611306246486355477039414601295142037759540417935365682232646589673676133684772059149814086546305415116789027399216449752858615465707775801719658151958592990850166872218795984094705147246392146674366261792950368140867590154663433678330848129494939789687181097284889517255237175966579609249118735773369034707350401888396847031467855705625231909282212287295187863563200860841619401216400241812684647189699542812602924087613554040801953693391777654717756290085116337493536746130102798167104196806307585351756750999972190600906897090850860553787587577390282436984166978987971501078712954129961055259011334040323514076900862483025803627790563047037313397146591367742025186115258777874939004934577425728681280632965361333358292064529758609019482636765440833134691107568497754361564733516529506041417545282584458982471472586410999376115503762935039306612569266410885873204713413307371913862964571304089372511510255271909344048461503303034003293866097189791989693027389774191889880172059819222994027047915736981400085991745833910352447181573592812393489021863508090161072167921279964838985207714788100128047631052990685723725369086504234165702121210820990600392825779481869461131743803665194705830551514044997874274591006447255461669953409466216051622022512304833583877456898630832951347247004332062307891450693271450108764337787520735941741847527089943157848556157411721567185693190443044141966397086944667098787151567412639676905092306009541439992046138249232511363411711315986849724848967975519388765162745529535892896078400390992122828980051774940942087666744267938160543648409529591392656054500348752199294223322954948706910247225528936734902589326289697090515716608497297501472991002742327991931465975083843177155457814135873884819402029418110319614392015802867280061615816872823044162564808632185564009552119366652143573452975032334590212622837657831044192795655273414684177595538293347731421392268257942155872307838203987201501112125709584414801415665703348799327241413035419967859150520235165385111433131497594613701939348262650589067305501650366235599343101067977939120451997041935075791554588460018525915188945038386281519292622829320359266549945336456678926216483119787148829911734992430356572218475604706457081135746466702928786859935854636232036760762285218819114111581125363429649566159615829237368385524208843434043261972904912695410457419293331432652705504117314040034783280379889916780577965489897797933910940924563545927915981723021227214014020440915717234977480902110910296070618906500343929881675370514466500680505997174995203776586430286752337059377237947376872569417771466415925473552819939897030407851487680062699005501581547554508746825772624555586100213646910498501467493574417613765716936601484959942402560710021224275935018494467997827403611762976428575334178775225003663403815749076010655621011408169990587407009690725009893626803096826888821036082821075130232423233291955285845339063261952541979039272746769981885660998281670165185666756639711686303563177578777453016452423351649765794128712385131006000852222518780829930393185241072631008761643285125644637428577988268255720513178265088302157868992281843687534041668088268968299960084757671462705973122522143519912372574890033084962607894516621688288478937788856025942168944414678124973134094143215120004219212930239920633624250704814542388851460264967443240490932582207275936120084728008432442674449625791444219933005966849877832717563050115618219735873782673404591007240791127578866133146531648522524247398812196832353260009118230567160749974319364002275927934465997243040629739317382576034152300524187546876441427880853969199956051588309482513660376519546857668302298423424129759980387861694522519677668005491114379394512056519332447036013858302797553373465113272522628301870424727951256203072394555498532236946227183905460994425336581437533417250131927411592789598613732667389767678737083518855392519821581293332738940189016111364294210996189436808952525837263813162074782325365072360671149514892758034011313667234364508157694010838958842733020910904271275621969466402787202616412464319885773243512314991959927032865515097495846103091283400120544081867910171139667127793822698236170809506919519677270661016859593156075844986011904882222765379892537550386066256461361515270058825727955019249876977571370274139947523567868684505979393611301375002040385943079864132413657556951145898572611139602419750435048965366475228268835003975881889641335358201412958373528784698773860010358132885378725571005895404476278488911266193898783213165310983569016202343713236329486774205647895961763002704292096470537275723663931538414376119707299483201882982221586759495375460579491488784060852313637139252197094314844013272130768020505380842311055358849234784641003552037451836451854038208335653960603883662972686108073821880097874646513701749599063620281992619707597722833254953255008291841517030335184059745590249222137055417109574933853753844719232876425007337352878433281098854265285980576862627185981578773037027891089204384136004529285941124510631007262814257644110511070375347143714288675713023587175950515107940535390025509951497822235126966459453351588953791065604110873456407039141000305562212132230070962661009171896827054579067590253892122249364082111773909970344814013195317278632881007969696989042587689443561303728148999913859488662353096802800400649311221144475784849081298156631659320960589372091997409163110167564230794562295508018081203962812619151709422263837593521518357729574150291276329884681523309241188119281998402848965519576786639555299418326606149229327568128318327146866844223125227462816465324324877342081642431569359398819894718543177781664861764728752328111249934537739931109685875829614596128942843456849130542877210635655333520680839804267156421493314029022455579374779681720708726345994915051276907335536869177663693481050860116569911422874681654098855219238831005426864187297556166514347154956274229717230812731909844222561552339470953521922098510138098633260260488590606047772492931146491599765968486879416589604213820698107217045842874709866231422982322855952432211767565903931039650351897225400415445517361024846634168004242453992776660290718376945523079796731532667743712708159224357587218356277330426707811953328502075249810836303549367782299060626527677113752231518413475739090337243863283239266440786771276343050955390701722022919302085813440310833959256465484937268307372656061853784547863310444142154079091378902925978665353443530756539760029904219198964586064191375071812978993722176812490795346684031619937489046583555051246727348138976053504853339756593851779572794312636379851500569091266598410725561535974459887933452161913224961818611825948012764397280488129614114795744032761500865682210968675564802864919058925394329295868987263241558223244848209951727479946365846329486368018258991973116660995178747269056819395147818903288832837737554593055133082683872128068689108331952653868833470798754731536259420845060470550050968710288185894538536662346659676571145697998370399972838603775525082627395519390912272604662590005910649350830903698405437624849149438417902815751678458473201150217816740632601196749753995356577351611895876689577616002605513330571554795778126588622506380527619795359728161007978455672455306969252858736285553147369796292369177812411385385724676248629284581338543969405009816261302389702684866006850765720373966141898755117270208847027665445209228983484231234649206152578588893558064702450508156267450723799976224627710567580242070883454832256336205420263991527433284180096834766423188948719669394262003579991025710596924262466609263613760374065529119385518712916179077374862923612290340174006378065197790436914716699474410619493314330911221249786980919579386944591719173661758319932833447975434749452831155637591118685439445409245938219231971817362492064220276149911768189101690970055169103685824667917659371181226701825647269445711340035057761803081660025979841302690134527783520194712178429853201972183292886784054513942211801780806634874568878998588224200315724516379440299215577002578338391059432885258094414672061833522526029860900203386699239065990983563732186260333335399839574869465836399898125373875029166739654945694259992460645200204152596439672519502337503977923663326676689420433414814847634665256683748853662687311672334451359541743913689998945384461390114963366482001148755439955748509881302160184889349909388677836675940601832388493548375224929751537676273852023628925905930934817387521037730107859548145736174097985586748248483718818719027114867832518526948592361128340233499160803649241010932715476045769441651288630469654660130488919998406998282298425972055753406110491705117612193176613053749430446382040707129961569132101738339679088145884642799707017735453720685172693204104422833426382020592159540091754431748799573729742396049435566670576730763662879538582671370742853047967033608134624781103001359042842449160871222177584001568587940554215100325966417723731120630752961386109658981006343736398578649675915333408558567057205472323576760607975665766187896958177527589875771078464999839483580081273530105213378941687116994845590106904577656966063242546880622524301360571124619273897121800624136603353471356875679254670449817550782400720120984036335398844417465737666237511639878416990323835194390788468199941864138805981261513025245302888173246556839813943716818660896491462603628729721171967364793828497781717453066843021703498020486101495065577291838032053840341566740579729930005316792702582182567967283322799239114341948707569713949626286429446485656817614707454141657781454443459105505313688414629744014852367449127597893804953779277519188590274810751281101160982569293637256808175987654342921350720313802900563261673217390456898122279154559936032358292300878718264239720603923680858925434097131183184847901065821014781572733676282365031169319229970927334903140754313301170766528512588100223882252714320007050520589457922035292255042965721854354311919689937992589074975686011757051101360767090416569270651592561108830192535509275274129215714118334332708373682395363044489400479254124790722468371176105294049466001791164929612649677802256201068232144648822404820404861944187620208906908923059508662474831025387282714284573746598859568416237053965304816029030946029543287853061348622938239860600675941061347415686105077510014992097804894553644128328849996468215274558919230462839244249172498027064598029857408930107032715016600495864696315963876928842713429023759667606849000390687596458218062341333293278087716068335257470998245203195631927405607486435871320170232286171228487409342264131584577906783370402886807140964529715594496233322932513214915781665298895308729469242506329313040628396117796015193774287127979202469921916411706168736269476992356638680937272441364821280710395721344265743905164205225037987811341952459705927041806171794238912284212200114908874136252688549351414940838869384958401858896002093623460800528502676242847521045386879738298098974757919100084817969938389566793057893224134137220298126614704626157747668759713654960489905908270011095939330265063063098739250338374567901779964723572667408880182620077029058484462215483928507398887965262296708170004261453890486374341576916659259567223431390159101761459970398408347367968862157467130210272379404853610731339056834960266341625979070840458374684587541875766419016052082481310530302683086980840171014838939077333631379020226143617710857925270942472089973250157316353231824890376737996229496375301120627897316597171047210979129838504004451698290869884575160741733344397483238196600467529056864692029723004124853076017130350365034037018546347631298619919945457886916372688624124649906394144254287900957707120503012404812645335486500244047863518432936250498087464562081091600021374000750155474289319181151169477248350143364755440956870873895119641176256576025350404062385164116559319867566670910904715148245022816099656485328061977135398618465488297377025718757403562787439566626450725339181509214922929460000244780251794376887558434608508247152249329822661820767536983372472536247018708542918693489769279660596963024563531391951622426152225213397740231093517307429239630481011911308245146771922508597457472962800855690474013654751531120930754917581331935912722302580116594931744558830357505138390571557930757020108874630160268422962172579199841143863942046458210084670736897547777514616322349737227698293423168991974996401117152406564148965314394492163619790852421283814403257469396191517470507236714257048397281527242900023346754685548087181133619357947106824396757667323688182170817741008057914054517389946389030150913342273400375679341295756972310406476777313463510465504651357744830928919078434007172551843526254548679093199725649648982123710482408099633987790403528891641062335765225225057004813415787509951662045680838078618012517741192206941208912336886062704901475880152893166658624416713081166340089310548655429879825028529738475242818734961977458869972604774432239649921974127228850617938792881961477073191675014692389027960233797654135746580361616378468762695354170868396316786587632420603617239884462581621829572218499090950193674440531135594068839084707881413121844801033703609989444833117921340517666621280703789016672081050348617970076270628721748351224379671492681372391617776293701455043621197005055890470590356493062995062581623468551270402520061062253465286276283565326688932394529297882177439254333177081201518169550920943018125118501907285513224756733079969334486619272809179786703004209223074969760446553817350253522913482837506882393958852205169803636590448742831736906902300429588528599807327894038803872471797399901549483076031687335978846630301782977409660819536601192752334251320785782233540040875966419472749436930134533627146901826658309393642286454875848698936050485064245108554835090740306344795165081269265678273242295042586883049908619730396075125450351639814332796962856310398519678625167661905575960683442283846441314003340828535129896506175501888359057970728786526302077302735392575445981506158134626669934092963188497769976938808638495846681164335993442421218166106797235522065255297730241324776475392348491284281974225144890028948375783993580228468270859735809056524069517378703377025904414420446301435833409271284996764391996953040143620689230250832949318106312314371779752861331177136470385243267987520078537817410908760357746540883849671517745089870306647228682553305427217903599565987454373600017544335105137009375679181406823743171117725807296497416992684314821820903130308521853643995275102344365923131465907445596254364440951419210168819960427486787908782889049508459441095970300167162035151653013343288778465293725227909791900078241648268993751297177011857747031625647006775035376906434150221197014336963285700666685214342257959712563427577551267401210479808694643408386986875532867895418799549401234291727879625618445287024911065478473406962453648912132343930347831049893818348840039111892664966343874728058818643306238385591956193498861007453843494059025782877864745816855925927412579751841517750307966912140516831046336413539426159414421823551810738616781966643251599948804950549629582383658224412300475903399522729593982792801046362915646409206850425682873983360094002648204019068948840493192082440339630283900361330081008833695727277508814117278158450654752365468756041910363307589753842380571800546199320103455320294505263265816652108255638008168700848377738879399497352570481302353958672306690650208686438950277641984969789825967240365209116459357619979165525724150767621575354737010106836056961704801460384097488677056196566028533391760440095825030210971143669626796038735842568328208464198771821312701327837108974092103715525282426209312779756144160988499537960774125055240194728628820290999449891376025183377674693196062771497049410776479403204291415779685800879475302717541133620275846100900889702871235362269672036279690531650899175097557958956778424731213029090333013519441086648136519390484685534823542674946377801036262667940282869287063790193630417938501562914441302664008125842779317962916214890023321811210151491178919059084642569994650882073758112777899202070214872243200852047746933748190629050401817455944803801210212283590849621323477319559310032483904263885891085305730229773215166321689685958123739877583547628061347395933015030247722426827047327906764308883887072278057860225500230804540664308876084833663675779609137583280230052815695167287656203671610802852904108140581608816417203576941220551745934023626971551785321514589826001112655530937785855896940996349474423509309926161698519845767558335135166353861995856031545422963010015183780974979012537250071614501492858667264270952510304393093233032192553914326658893728084636224765630687127691370284742855210770131220580500404900345870539737545259466581680310332551319190447416385131999246693742033092204565662263646161861722531421405897351494824043379749365391933039949487904138877839453461087826471787271159015003441076210011911280955530258649129385068406670692909133661780915283432825103549832856863562918975947068149224728279229401376777296477656531800340786770821884389749216067281040738427273130834882199450019992911209337172666218027513260760668962124007472534291655131328947340389506982716675231166978209769534421332624377399907366735800744836117726463133170198023636285672401527109298877552999280245916223365901145162951373698868206570846717445072774786070168937276251581098786753053495747579326150364823798437607117292870450559996240321178153977245665664234254760638463989511145639887857997900067605075009029159272417215764151736166163428766068701832719551786123113693522243909062230171990066694031375564954123343047812977791381608904507543942536452599387936910636842343726302486807065377798029913579270502061757455727033623543845783996148224074355690096715856656411510267312134634663309526205675508685122836631839695941987038200209597667770091225247394827750726608313388170499071328515936184004333340495818825800278272248263396654486870983992212605147318567126346503387086185373804863062403968194601458853357328686310501149300563163812028375464197822612166784271477681457761715821815723103638707916819415686175840763752950770188680412104872709277121636311003112999696103377794472730476897765266749270195799466209257952821159432535281600550253425514572366826480235882652028104590591706740667860323773211946606375737959379831718730951569816966599459047346250152883359076373907980904164175965364423380285624977786095681290725849563534858544017997805967423260973738201792868591180080277496025369705403725631726877885879654417901015671026904654363292902716518946419828190256427401648308598959813343347729359460834475934730772473725266090139775289683127613300433248496053096981974241970046124440927960130888732412749462795050348394848425498935340043516892585312034502256609020063640466615059057126870540225616950913074762209534383754279622392162435618408529463429002981431536197854234385599519703754833302208675681684455984767272193851372590206309052734346558890312420521506164907069656787660573796186354334415760413227771610101856152042705695340228945418474597492750414553927083532409819898389671353810365766654756366206592736929984945401872120198069065715946395210702056964500701450212206429833019731941839769827839132319091259642308418541968093365912266987405401103738492927777915350373855514974259332951982560985296555274391073604827489011998077836411426281416112159736099648629206178667619968908493349861507445721971368390470216086007696950934028703130951712197615018420468756390729052812813687998234582185118878559094939839559419574295240558117482959213769393690361082769747442814095178127238677751929690530804971533214757213909032172861791560080778463939752269099690852606640945053171500004461922183766779977496083715222691653302217986221949125416225232479012183195610022543017809878424798123410461794531503903770988267004614775283084307039355534416017552505974599767276015864285043069457935151634139817868384287537502975950315342511548660245643799856750816089292778329472080538071562824892137503161665326192538399426799537549732815655214467977832182536302691936333286289571589054346594638349146150359183415168698875953272781229966234431660522193943291413589205032229982737109077920435102990822277194608697186179157237926502622873218585536661356156980903990410573429899393085081065838810146983755263660613748488862822468985530458107683969938244734324526991658740902582319650176227936896770703639278422549997620842052656063729239077189151005900295052935496864738286277328083896213175650767204533383543979809215053648246689736384196480473291454403965098761392349947917537051503084339925876713254287712177926995351117337350294375030076022375109238884004363367648921587414941756439180438747883683265207533967365578837187761939890969533523224823296391459888060740469120586013367028145173934825741708265775058895236970690832285588151512093131429277487648971009384021328506209453757709370336525921032330303120284791365984349037875564334181105508426840470743132240354142600533820996333875909464549851713610058504993988269119623574225841325132857665266371769056969698386798295487043160406793333002375553982102355280899308176082975675886897990039071938392777309192534989381966770764476748917844804727855258608257403301089772319334155565002753021648446483793754716318414730731461549401399220709845875527584712416438673530061481725126925769987022594460945192876288236802121893966064624636772858361022864931516189571101242630634755084805305173532401237842618411396977977458783812177640885369917062561633973512609236764567100383427257572728531465976142714928402082466353426083099739275065550578759021752647268731718330542801838493024319444408572336854052560903215358934279072798970386100223235899239639026874802759044152131977170451106831711192053520850170512528689466992833989151727662645690285709782613014826860801570624997429976888164421711473814157952145214976953964944057046002015344563232482168327545649734530239293171047751613614873273670762201294842463837373350531240464270101026748437881413762237541334888991038495541773621654959426299758971564157248917143188455221063869286400877997036873099180261264318019959445908695724813800020240759942437603589353161511074396195815369232881521190409278555936242507144061235192058782788183819567774727829427544444102090194287252091445234901137861857988470169291840764699235831379037057546916190494031591499695500217122026892646118542600426120263519502305233585090982001857579430280180450361481805501446397562371813794182218186982888613829102705473849186201783372654306805694656647464554536729881611178264887323278171221929531912353933150620479921505975839065956247668275477991344501342221627970490343070385563379233176260872971014706300382023282126726259945597619788775481835019400652279420344872884219072461942690917230454122956485173066491171102073137282789608351420099232890993803111556788181191877893719760244456509446822703269336728742845067676615740653800576000083646690605105649812449635746928734990186321752623678234570689752784388513841066538910926077151439217847384044808453858941693867040419292956721115926934940467392177294314948610156940958797203144264046489672634914943829834201313494845257687057181952159119496474665759613706258715615470789500697294200252683448168476723587204300885582932165920082897542738720844799841806425697281951208377386801291142784552730873747578487084432570847650299137004646800095265548146063460283993503860466493104440409731203683563817786879392755342186760826829778926545272602779344548459117329727581631338781667360142035755220549408642779604895562875570002557200306360380714981381688982347515116321466039964216957037313172226199534611989725244424514234324641330595533182187669118816493299070889923314829827597943443933615675436411247099847010842945784866123688956131671211275477707182051084787331771735324485912699734815180084787260476593119101154954199857258101144732973656321248395822114466282746212863077518433294270030519333920343167425194264621626331626218449793964113595388017474810810753691957838124842241363518204436550120427614241783948936823667482389082177000055781205227364109145059589347057791508267133092770081830348940454840017925716997406555253137331668502320424112424911285213100042926849401368627185936754750609327993608006090244122868930039162930765015804703162274059467487860104811029992688102712628867243378457638679303867778312535940083961622117574365136550010968428168656688487086425529340833646940921373359786431250636508250765483518507152005936486062880164077701649505739881588865035465960588076157677520498272598986243842144341296564467423581181558939440406669123909808176295636644192057095707774657262810489104515281438809881718825285943559800921980309016497534486597730618995187540149779335900505017320436941648121979141581579563549282577750562001577337050017409793009512555167370933949754897658579705789509134603738472916486146419838974898937680893574438150563125323444660609378580411053751129080257826335169481065170846508566779296252320486451802240198309491037849192731431633083977736245530907788165715857396827975769943522508210213785770027021498896487882462576021719237004149175809420069857346046182392546783923543436361695016629979059633409394219471429004693161444447262176560504323240977910466773775714224852638499710874489277708438869004241713688254642954434676347349503421529484900746158950624511619539232500610109592961062020135262158215923705039454830651637468555110034123305678893784742684550242413183328442131621103194187644893960290284355646285410494555662533652788326977051380436932256300224203209441284492357755488227382474478309475219607652375814388827153956976584568723673417723680968509155294486018759672659858115709857964168703917502539503708482396009711854307112439763997492577768026570768469253983221080549570596905986157997521096968018650676166387756259783804529240959379660928868797261512200733396184381954989256548098401333726674310428145856419927963531477590168144844759469557938381710526211703311266883348715112188630670514385049914397359445454743512714155977178676901572725917992977767900138522915330399542319469871832550913756304069456893584598248126637506822004825752077956528266733246060474818707577478014571981966371980165978204226513643648787390465712937466201776792987516120406347848995100332374333890668648377482449613096151553747241651879876233828107642381745765512779650892443382612437576765006972816457107047877346689793138268970905928746714989730162697610195280317408376260663048371681996396506923331007709379467943935527544733650679631252246056236791486050693351351502581069628731917703203701134495852705092582546120608772309808755812243733758335145531593608882224676179694012435534124992359677210699943557640803979920192367869896479049298588822494222793037695217811925290331221485168160390304253584268536898173655383077659485631308862900387944516435919422391453120587865603881266045314951286942005685220040537128045063188399674728422879628287752548215789570949557208472519199095340431461755834985978060533591129943536318563730230007413649836818566575393227014201268263611902855564463194931307715536524623686331404495170003105752764100731650508641726431105241613656251907057269291139114768146687897328800589388868876762698256301041789293581165447136721284093164755549188211986762662616786059298091375352645486644859139894658864684965321083568732684830559392192617160399777958591694047676764466418683856362097431710470738769198853037898935096899983734965527063811728813935932849154712089647021719160686074128564522475769883583147255808949959257809159984643818765450911310185151625049769446662955291875563647909104630870068230826667782011592747979655906086394937286055378918487613486570902658495838042572914487981878291389774452019742821370439849512901691961064058049760484201556460557896446217956251712420753020550643273386770736684639561824482751572096840210152586635718966447198618039009430831758652023499493084588367533033512660263956982856145821858026345790921901424077942473366659116278262190661306342234788502809436566550499378334758979141216243666389429872483278344177373823930827959724893071596009076180219428380420395624853100769216986068072208523472062172392271734905844344297573656603393741513496842488867943344084393713442031403714428604777771484106939497663474626379672349295394043881002565096928520567292768987951214005106238980334820083022162590976294757975904474762116493555471833631947575334420302763467396496387539634863862553406684996077148201192099446435003715587754745029935574251489285191549644767277300678310152381043488531656138896333285128195055649705056726868636432073300665231585816807203862638394013197407533036956366544891864956150736051408288129931040983229427080730116705505825225850230537739286490976477953678973385353977248743889099040645844374648436457225287221095036914668376264355216810739156792332923192466309074020160097931949724781286162112812300159481682105564815475054908459773147565862263566355474534207172618021692679520610968480632807999153573930791824981249685847907045155526283925463931635004640725193670404125926619237493630333473380732620292556779820533246471429808733538885750661398863214602185510214908655739493584617266052389184094621642459503602787731694352194861738235422518843859729053218640539142022240993435530000874585799545512275574750406683602792565332130576195416422953830852640289670647057829888013001725875800327314710173930190407759165129957226576958603198670359536185186853014417465560238196097992219347349517015173997976988977513605694784184095262948688394627832317158057153578682991286071781261616609335700397745982768794100606341879192967188101212884464790877282181638406166375348607160612279936999532000965527801427669742436364405538661338901836967502031091865877866078489204552486246832038642317123729811164548881851352395756696394153141911228457983481998556325633409050712510297693881549666223949327152499810245392023314419425869111886602934948998627292340136598057875210223130591966835677559418386604168745551140238628523692441454795422654807766022364699680942581329753559390065208871278239381278421215338743745750806919539661542277314807953866054726802370665479199303653406831962013547988733762991166801694154704255163268359722140623183227176752568991760064128190042075634095128064002903566035889035151342582128431920913073406518583765494767124584530330650850700307493482939353720880444753441175203007621869844181780970637801190115861494044387667866929766142967175528996978557202924091926539400920943946646894545580865629603292356385006939248252034431157139804483206171668196246506258351795964861432829085815905750898189368886807154904011350925498851671247659698331716920805561170792231349438167762994341348206938736492198935841024234295614101000230433567783226393251914089160708008096361458557888445282384246976534154709683051376741256043666090518413823665528875089513292274086456111625789267170858647752712270172781398204488961322551153466729842255872635865496247079163869837236326920488449840944261846285226012745290787441641838998119664002369762966560817959524238507745235788817478531256360876043128595902738457843610547429034618650731588911597873080893346706035664259124470858263677774542022953797142798997665732111149448075813749931478629212662993317706001610505662196265519587750369848155116300156385629493752597917589578605139916053069720532712618105337202860406793427894558295757769553257626202146992692099089633735259286119215514931512543669586619135555935778744077362022777199889774119230454974035736407644084662015643247932443350178600697284488296298457333405628472247722897360409707841157383858364003059081879357953239253695660738223475982819874840651202781587106520849233399034321436927469588812516444143472217685170236562765039505908718587306083212940221838788175496042565655057789863731448568698375756237563540377916738666078351968170626750294367255419050713153900007951439062713549108687571812032627408855815191127013609438418074143939585974512657776778103440373979667655260793397203279741376968297794214715563469571435212211047965638421267786219505639362831650804317947778571926060303700860462816635144061003890851670496136625297915565701055393271607396980394039487769018945332671305676388783110584435034979702220661285040326550738183621938292407015705863415579034566807114357593268020210716462182323187503599654169368724439618126730073119613200741540536087102951369904761018500200014336433727834802604268503345804653513889193169997253175500118868308552439918449172378982516577977908564056592459869668766882054624015734796391484784429459183329446705404257813919088446938138039868200237601006683859210185372584574582124616880058092338288396253361744759181423329774958955500032218051868853848277372494810733772767086170381725792700615446590806205275244078436536506660847777552614054555102820883088266560369559374507940376472741063047226635022638967214205048169971472792427929526150046801221841471352203649438080595773859015890107191445694748547832975050591799960808978358696701082446419598990687290930815670059763677125146021078428757357718220982656545913340514581912973167797690486478823385769979395388041455844643277680129551367378529979276197339880587085263119422358101082833093348724735377263095684115766679021914150584821050024723946674348298682706064001376892816272022871753826421972068513615513431978940406542634018115134771922214374512514184446118050120927108584739155278873275254081381829106847996363112841522855176913234841430766559799152932564782312247052655164411616057432084290181089609634509367566460937541067707053904161401095924647173468376256771119700299696263502297663461370083602482387585683137977777900134676279791884521217290287980396659182238940728609740986976582311823248526942620220484416343619265605740564818705043830050547744444170477423082017869196384327798376641032337740449213294003530360444249254092597191300669115662447629042352644326080255922357703889534378189859015730386357067131524606511691993835462091044382436877349531948057984041380940951789328197694399853656187725160335554690918176108576809486476445975916655429542458797496909057894814323438131261478183277952750505071935336643068076965867856375210726167881092733013853415384071528364631461549402015433682879082867598300304904793203876308614353316151047723935790700958424034913551551442223933437286498445773557295538222415770927883416161233920854576091479130534350636598492485799443836203679997847851847835880201657215060062888162910872176986062901541933083128805129846329629007953958044533453865177698620640175483517882197802660791869166982844333606457251616634471344625698804665202906552166655028396050290955030007339958865636057976542986736980538489526223241959599627420133742454316714193268306997242156927987382803269272857399320992390326589192295673672652483547467463741399734711832202376149005074751623406750809151080066555204709132902173813307687780810003099845582427449247991507114306400578947728602525902645460060782887456342694387506987527455187402410663575186413771475339913529289115885873483937511542064224286128489707294785152024999791495757358490664403475354234618866057227951403604911196017742008198379515989894769157793714923840387006119229690451276759475510629275246653594191912671458859845801992257612687196607998346543896344027956627195142648766695623304572502170753427651226904454389466450683658324050297449170405288854682158712701251510972463411312206142200673008588737386450039770501909976147789735392963989370215841844707288590874631340658146183135544387788907339952871681589709842423872888511676698775295475243983109649877631101676570915249540235249932438873756778713070274117822757658145636867885699970623999406477366145327197299918964134536037555589653571443986513420063771525524521737106118517319122490207768759475117176253038725856533400049919120303927175900500011217432152957972026311680504862820659093647439552930994202578508515521116045127937767430682539605452757144451341426109271392940190898875287879567210882222573835522346964750454498586449121180123162551839311510431823128008658702903480836025931043229262172571301193452616504058018917592133224914309594089601376932815108885507340270875642053439132732661740814189168449370262873599733616846429414532210923618250051437459975569733047983649798101966669374913255861805681355055346348826805977479573314750008183120799617472845151750778031610552936197972900422529493988289895017534240019753647911413480897141750458410155877760826059643320359809164846929460195323930394776150922618623033325342946398001044880047620894712481963403552166114568372753821951190139697655496236191296136462116696344754500147833393853626163619613136583816762893571420083815405037274649939206559937601423038865798601775314539349997919378675156678417683976364773990917605671022932672043308060613848355782165680334438069947443999713751317090719241147432868882448318073145446835517576232821023910113239590019690292533709713591311949044953239710966275852138644895859372280234404280314339759727847227091416968847809541664638640183575802480668148861355937266576704494567103801339116786274615522771667006415007258666285645348719689900865539817115604685789137472476492314496909170352276989617009308713909112003026059338029051928546868960411346290478070520818035105828283363138779611635459833564962444766298656615711227620649899994364495770531861242163475203367774158479137270507200172412793953126525056298006981593481541507977207801355412152765835160373804659492045430370319064608102001542512150157799081121627708534476903430864613978226883622528161998848482657916194423765776392552210910333281156456611791566326910703550905359058765884490601648043368475868351045885998596876352052661198087258317875988345109842933672117620102446407794425909468461420936389579399295027794882340607131825103769627236927822127997959169156163099357119097052802415275991037300881538847238081367670880311715753971966524963718096421255903112167529471245606960778166093155959435786877120736778644322895566250592624465254999381680147625960431011200076095990961768790232929602505714183352734680083024758713903273835746759910653066399190338811008265647234669513148733985074431196250325751560730299012974943478719912652553303984714677742295879932284027622956717479030018326037201610801912225753302015427578387442106205209034279240929288627955681173303187119369379862342116985765113409659744134095579900571153859516301955783683689241868800490492046388075165412151408414307080427415350143033058897580047292504459660272276459590263853847343573129034819006998537287193984708107476983548536322192030815445880833822457869012184216185006110388090322347012408372265509269983658766743953097829114103805841449627369746920194054890113181504561299709781530116056893446431414586623379370772013806383546073592296557429261129163849696028654796827144563366849815172757836217082726925959417814150659452614492952076010837916347836883831795811883292081897840326319161154567007990608004322392379732223324410109488147354677706653668372204462416660028885340529479446266487586906903335256952724351005644308077708254673755903116923733915477455262665263460456116103640585551431851173170699287325481053940717481179115608641225619906596151439708750780342416006866613575470301015790500651790800896947777115757132543661597386834094128808120987047452487810408752167288430652467129028122119176654750832140834036541597851845220797669857683297996393318891434770928784004191633128427087927639188229798798511923028315527680805309911717467757472634259715126423022037875547904975128708781990625342718187897654919000050536952977146398328576326369937765434676334282788535416674413443650160261495094279566083155575827627991608590655228350370590238377388246258422756536880727844909437638240423277128817475815181444646930888338831976129093913960258930164515556902002645224682193400315788942165262282838081393320529885694660118035773038940668952914671272145680242057653804839651351796597336757087536858678754056011488749084290319092212903212492043065647531257754508386947991305126894612903065746243000829587018240566274800828562721671854365734865414343047211315563642509670438983236327237817956459304872817063797348591960604099311375477776752809689499640497666546202523592707268760503505116161532544797667266601608478767050639238145885907009625557399383628076204276266545771385079116130967132883076704396790610150577424652570650158201874457816747295368911568904611383163784184983770102031001821452845701262720960140261317602825206880861879597256306150533543442265701913636264691316486261611016135259525370884476146535289154051226230440672892805014157053957879620954626433452812707431160159697534877821667107616903303186404390772025388663169449457746038245159077197372686726879646073192561268674210226654315969933008482505648566902011515589801716740559436643286345582312718958423886240057702257292665031046056144615123730305401926639854617207550362421555959334057184374938069857949227050560124136258856653901369845546397438990166363377820996677967996666739958086097046633651764409736208096760351370389544258510870999371296419617994375506337497351936095576565071832470770653798286073773865204766183249008360881303884136104222932944635999498902897432106946398518800848758804073815822016696230754541138229391467955693501460502797361175947290572143273268559496982770067765119645408030756431425220332203334860908580184203922021483832379510878009991082182996769124915809832106325828946406499375464522712929263152323136989579131015717489221122251693356016895369096652772756889095498634231987875276865374318428090637724269810297791697473989711389213925255147620399572358730828711323520106743057498680841090549759077396313073513168985465752230044457804713905085247774642479575216922671393694151290621042243953705025795368846652686045880912293050553526274835691723051910860358884674722351098060150309917563494540765718330570393779546699158160373558581728348973476414579184283450101758494342754077036952926954248000893066088954529287416313978384469974229632371876333993705708787579377314122394653562486446147813506294903305311939182594429876868037991992395543713026575286234772065824932855819836500025055290858303212440068621832776105155097817479438225274272426266087714884671268246771932411586764966353640934322635629823698154316880723885380504369403551133628796751135516297043806080636375718324990339705630778167477374352552340125341277856742083572865344073647892528179365208173377960803601191427872216274904620673180210383545935461755655583983377224574283382569107126938816520648563257840966954141841474362071521208392511899590812025985791165312590592143847366761459394814552229838076442352974353181992878527241667149647120489900859947349194714918816688524277202275188395494642512494780859848825370846308494511296627379207970118392857095929657697914505046151931985442814891470818453913085070220488814113665141420424439281577298306668706581758680443689447161481884509088580313231585501458778117736068658295781939354944421626179677068477001683888894308392897602054126610996353209210749592339113818593656353356549745140049705615095501268412163789025711620329629978459721868552974776459898188196920335965728014212179552743333639563984453278174059393891099397143720875943063715156254631322575379809380389279984043365199917750568779433517199094918699928480559449923187216242412181974069003725616820146461601010108769390664421796699567050741355949163033647662721357917121010978266872200582234662894789700135544095003207407881123185716782176492216610219141889778227193132770379737248537612976016794358915393456649703742294572355801511639473560974838507176102478850523175605755730978711120535801689381595522106148321580441298579414242590898528782776795122885623644345919177977240098632503855009640949773234682722163610523036704282981575827812858604624708170888842697046703506838438363857003837142851980314339169350541927342686248385258922671243395721360531390451165545014079518624707122221056453316012579487424280144677167653591098267437521990375101947622120774334348294247122381364258506921516412630848703694403804128433863078352114946870379792342257215147403903207490841260872732615368110126775049926798911608239352175936744736441822627219424145974322846049953979115787476800504009676267621865634195510898649665870395890516078563669675409389837521022719873026674930834242881326062500433598166450518383117647644538580864685852889518171815773897906412502923339133670787380786113584912162630047783507783000555795803116665235072512592733616642560493003085879459137260822450695340280434697237228273424521737306126775770761120779794384765753510673424271670115848615715939599739475277765395871038742972111448682985559531223825457617360333739698584388160094671706144552238664640416498395571421459416712036319280947671274603276006346337743248996230131594406859290662843829237794850272347540334624913814099098821993129720909167018184581795936706247320729757509176596391362591962505278714395688254181085768718243740585251807766182938234569632672518861836314749018588891892823752882044914121436300164323549909071318208505608329177355161987596539223038912850717946613955755958147766110427141709565013365401812242066493961194421610665670541970773331560354374610916333138317225259104374753241373422834551884338063012854782030939059074153767464271961992276081439762181475924858246414687950444322005122811861942767571528538822734437408532737896047235060326868242300416412590623015153272647904348008659879299808653344255298323108193423913016711239782854370112611371487908437619355830326161825344234985026180853965125812188318683643775809338743508266892433527070529815141634458204724409283118251778228877974752355076800129947289724921411633310303458146497473417767041747580513966421326605330224725797380732843928589968350302282268442615584588409995013309068656662681738426126424532158147308333717163132518082093231193295658642210317521943212453121103934909538740884101120429510043263949785246136983568353466627155149343199227990481563706646454395368145923488232195406108991800162097782069484420318202207407010429428744925205733792969434063257119484275861333642223385114336861943913499836093352688245271335652045847116823491284962309234848522792947334321604212786725363376197885177381646958053403381240303455676243852859723325343891971840083136459946163800908954509607154734159988623183881348836889249854025377444757757192068318404734482956989773770534433729155664775805529161162578440276497774137798883233519805928831296523328075019296776542656596105325324284953050903403052477040969979966273456256307901987495237948653312619182628060583175119044085495038672135067648645385436484137557890899468844426245398760723161926556797185483185550356652887372626842758006893910997437261803867186602093893135693893244057428340035885931295038159015344102792438633796536618603080568639613565787816838457468432592638208110235036256808214776049043838060536686380839233624102933218136078573979077439466905123357286035802307230573123667416060338326701062497918161233494733486626501775709263051947813593470076320778222315733530458539805223985568881271308950890990544566389462868098653123153535705715346148270463090363559872455173004494209196713549618400717931345283646440243488088331992813132857028004566389312727069666723183688214876800720414288062940526132733157871529620997332224952018048863995359174996265460848909346826287357131849005681081561995713162087083003606115607435771104134726404665906780181984433219895427238489718787042521779560213820983154331328441612605743902506037582235096309605551167937559698994742991992150399102213657064549971389982183798891528804191005954596847951914402560680606338536071717996325350105098828473517901013495551214390310710981594732180713561310680383303605915737096498609147039327552681192984434851690520681496794563497163447393032024617499221885879255175545728858444968432587003892704830872554604244920123190111947861684598516538795963799860833298456465884005014076567274120085583707937781535862111848644818692238929478482452591161155022727069466138373508378421304679821432425314648972597780384238785347615715017726410017982689853250356630115802913421547443426613288840043083666589853952545420796173389891805997021012471214734905978615735020127127121470169930801477002454213271427621508215517484436469054114084043199706446255151630330627953643771585325247006100641831539067494327574826052718533676375707020569345588462894337614741429981064956003281101067400925045869561057430184231654435281828978863007143732750561832982747163159346100031758065163752035523205673591218369097982501257483186632697608650338656315979080203170136870306321316068546043785381991857278685784095333884905256753293959759913279941845544394551265831022103915887352855568719933639563247129027545060623224512005598820248761722217021668803461115247369665929779231531441761569935488857200379306856608985413856783911201738342275377717159169256957992202843831249004655632602875593334077773203277841240204581936838108556440991128889359079298565697686885006978366962190711505887250715221146106680266238084662150489853783156096447983680188140526814867361968288007875185220270114082167760469831864374785482261673795994277586778146690141666958630151661748357084323996509600204357211535670290426540727313361853782059954216642228217909105088539540983236176750727918718514107066633190681833360623373423472660135742720961395695940144033882600090576803195074787203136330600152125729657688556994994920873734182507741147560213037231776604414276929563216729441238826063760375702349784270985532666656300510330183683325178021951281634180845184145670763001665984261060231863720876080500191159089279292053662302299002865381884929836866769707323426573426641118133155584620217035731496262969009245625455844784303070987913558053682910967321550900057840473623544363718574943642047737311824116043310145788895481956087966321189586308213153443089437428831551819999374875342728478855962273502763265760523247224241152128847914970106904086751303775511081011709415586812873787962365995846639351874580656638502083105687130557579428948036711242040448285151552906056255080721436325120360787420229036561924764432924924553021519237817379521923963294933588303345741217361510752506544347650173116068833434145951233467561766878167168257095734645192274456646311518351863995336636409624461424713479986294053854189391142952445666248613065264051514637782590567934200593523996508250608491928106508073287589424636409115756005118426611262014824449068010448628296058712183090906011861367029092367198434804994587673178712088293325243121557100275702134446848503159981022810970405831964726990783458215787039556862655116918239630758267551983513130251428870837067123169452155992737807933058530013296129908928219920279204812493371302148306432177331866729125992321493169006773097521459143171670971325538568107709018767506222867647958480953238173947839945685069180846308225140473638503476931785250057185632229640463802433826241607295249337519764499976251571407189485711593571155104940714208063295320701467442218142948921097622714588319520814919530576321956367685365787713666785175102879787594637055903074988153437134812202227442003225196672049618299076907123634591090060726137608996850247696119933065837181411669936685769387833921681531811492454208618552352858148800230579958405850140938203080888792073390928025373148055752284043668087773566893592582259864779014315393702803644754528863069998640373718618432207602115991902249690716406067909417782385895154186544873915070768223753776403443794959402947194575049902496738968626441494624752757048186815165592783994364239129353001082225729189581030406534450355609310832021477093149849311983128547818211122259007438346931969452999705141726105783194454533924379256527744349394151595399501289936453873962059033737618716837590647185668689565153022882308038570978328126675978652909519522432122126224242632654983760693963631276795636109701181144361182322955028891799396303610675472379147478462972128785636547732657308461995570059483833342864482868319315638298045555537482077982768475139507977277763054219777144729085218286822306596542873505608068441842182179444708545157757271979078574757737450550211370129589176629763157793184675454107472413171138649771767996771472292885921147701783417524960846246934498932174412859758775646776702793183613455528410180106127070859549038670451059394860926573683744805349223495863600068976556251813091737415284095677248953319020496836759407000411803268282248133920028521306526731460451516858658849010170444793074729823623069396754792183874174553375824309947731914289095144059801912049119208034184828025564403043944103100698030728795595889068438891992122108872828304398102982703081585691610995168066356265943622457209666171224848914294816215087870580580177035226533345258997070602399067924645495727559738936216239660882410320980110488450001361303771332195554433472889078432048621654827010428243772534608189764224659120326062288761994376914907025945080576864341880816334436841031244373849461100290455373756541243716290060541984712686339984062507354692287244183825029674868908286285926020922814644890502162858460554049758754659723183466708637232811346636978807190937800160322938481323023553872969515938644668346332517874637963116465517165671788351433641593614778782733964005737997051947265299221307386486468095755097927309356603898985468327102044217141432623775315686971288000281207405829344823487376772355270362758109871757599026349959628947224702473832806124483835926893326137352441260143504508059046262667992890979501871579799534447553715689921504050455118050903873091680505367934002138168092296919849055355699587960504925845701976242194048121485749776614882281559354038413048825516655607553365361824240906738755279366014766943592362092917561485015797796677662030208612082367411386067155767755344553980185431124868318965662533489512565506524636201648745366746349209891284292536519977196054401494446600276540536071960202003295160888546168793863047033170831121972073862278528886202940271774833775488166350462103059818170854648282342545942930408259745469769984466102588398711854757394865332297638680495923888705537272668705759800060277744814779007135371660228395075920110202118968320897208366555269044712811295277162920102111107631789776340886843889070448710759082496772375654882414443168180850622174470076897342048157818965932082120833049210181194646721859952651759665412761299060048456107708401293343959304934082166759125167907420284038293052421819106300773330988152958999013010425418281704565121100918749159104280764304147628053637431162883639782549669176477393733484471913612036197776521877363789475045042784059612965146018272225806024759472145008157634620414805628365801465449200685107504445584736572274932700931808806939266892900679837091762481963077877518762143930674031365812299571721528652199484448740485392775042558429474442217617452737277839616033897810100786237813044650026128234506442680612230722425217862486063513929304892076605342502953336698761100273456211703143240313951178255861673712102732051686798807518930281099691195609076994674369093571169507388206351772963568395423593309956489816125721871367132691500028945778501948497911663904678700643820280935955177644978181092650799665585478985386629465656033744099761968043913676596702631724459051568762228669125210468822889944461746116395155979002361225379789804023576637429835124334604393980558609335299397752860280011271045641624506359354408114086942863440370243296774692679132495768986680247736346076069156319977109948936269681655124792900591981091183764789567569967438638474496045654080613135431119464665934756795956163759060968025357422305015078779430606713851263495904349707311513317459296235707280729096396607004335041276105507295264443059143386235683985436008974945636322582537248302413491816439945598427603444330194665092546103313888654027694333320257398992090669321225115991482474465949965985743349417375331307088453899317782313178801711180461461889292530697683580694834571582794827872946509446559861920902362260672109860076067380127402311530832468428492640677991236436439094808334389814016339246127040111819600042950758380039856436798919445628997032019595056877335042990571852453897004307739577687455009190807754545763306353020645875673096785579754690836619084354660823465582716695472060395167931628573235012551501918720691494901181858605055665252053571466672708291140874784662480029565953128655729632767252154215954321157505522539531996666207836865430888239743297581339979662652739278651382469878046550755200490151974575997865486607508837276432939360713553174833982096257317536093894157708126313708773276416422127944621266288384432482074843964292608835367024833150805770463670351937017668969507777608573600313408870551932047323840215299035484743626593099534788696804693611780341351921128588201096081868055756592329387627722514496196043104308732342808117085070504772270393226117949868645721422430953013167822236846133317846585641761808468637527844614079482866319609263481960430073682159259353138099168991508677995328126883051827178759640960584737009461837973793713451504852624482891107874121981945616001321638887297716206180084542609378495434242138777521554434033072762779131186801866597756427217524859634119999106437460595863410125839146545525554123639449443556421735762027014823337416665812521896279117874629435894533269284147527608618058093792224985503598708773901517637329172988261473730572025214547229985745263210073567020853956183381504351350411884410837211464991936254246277483639329992884891910875766562704115029825779114198567320667003675303038069753532603005619555266136862868278518683723934319221797953554702016613349646149368778977169342022093724719752490826874208309954123382596343605701464782283900655705032239574453441677885747564515420542270540933391569602787598576721416030755936111941783748872941924933351523206541592944896947831593692752922103026533500164944197403019512982623383238966163633802235977777178288880180361994805098492832756398345537276757410092620547700655171826863508079985835594511015918040166857453621201275427172985475268512769058198457875485133970613588146041146441609924733294146937056761410804301568223909776073115962701883723405988758364337926479003540717882593660591048709988181881615609434925648622629449394201583427471156853159640016981146671732251557534166720250669831281349106047009577024974281211338045877211807492412372923835438208178494866179847638260858206342233418424915931322619319468172480318767874724940002715469807644320159434029663800537766347041043899287398906023503842933384831293171969675187091716383219868669077552616044311564834859094689693953799237826529605846697526247546976386989420854747968059078307819878617938098319908761176205637725182914239440519382408933323804375266339546424423366442480017251546172609789444033518626724222469684196749350584001194410083867387544632678648463122376678100214785458352306692015728850701624248392932534380735292721576567494767606910641964574477948886600896817862456791391700364366299863473370281294674867912507810206153093071977494606298440478220998938327148586369019049900146068327627513454635775875769800792017411495132854328854525497563572726872897250510958905694122410875436664133849233676111291632851430956107536300209053016184581879414592038437986657054152064781543588917723633303701258511187631586110404658628343470556999389419933611892601444989013278259038886750545257299660321574308870506943013095975326892607552028439895648016971484133743720519463479478275561297729417265461174082384533551360657627642677722348068460464644473003625399097885462114016590409822424906196156059991765090719002160046081563510131747387942409365616171680341403399300386888592442850047384232267049545590060260962602650088640644761096088557595293322018781468033994256802605981885007296500322177913942703469990671175429897537550883305184815749040280802499656827431307301870790184173264202731931158517557239632637926877193447583171117396597360377327397388072700998199514458399629156637281981783677916613642660655090886321694840629535594488681590666289117153980461036375076313652843755353451305870120437739205890165702356153244650271469494292460975492791831844023862889762988358173382424238593943713561027739302999700042113806431370927063405536645776403535027767437281607713501889252425202613953010079930003713637966592537012172435523720381351769754240745557126901212958384667677178752358572394889514989951580378472971763961547631698484876619663813263564309581162535092637678261895800244994938220191903634281701137229005482263134237209227924947537721458521210174003339849710636578767511862075412271370079566379445494758905648133957998008202911141123156236153317614410659461377080490799980294352628071856490953144508285397965584326705020914980319104087951916301759288298077269457565509418366098433907933871332017024177157597284591530948946028464363641969228746709005908657005613864594836004779763681053390469408883069807727160665823702268384311926704107807961730621407283474229460726839977109138861587651733958648628760492449547373234293901169159593919000477107885503923147942893202274042752504013255664585575629937868859804774247852310276026640625162610971344618123559157293954755116994087073438903271843816717281562236437777471333957010561326549783084141668428756521474274205269079675347494502721877349022601477891178359703874126046804319905298221008544306787748732449835620193311840924811606950794610504313383571669516706375739745631802721964929346419375148708836126194414541951042709192043191151008809149372967456361377547971904112426483128639603893264550058725507517895821041898864551506556187426360107958262634912394852626838932769466276233131942427533400417249345142212580763437861618657277575930953509012402946704803647595810736356945288046739067456839685906058317482444756963595840010323285625717359197834208299151392350148990552852631049140981544787449016258969984626437426286831857447411177869872773448511884194188877368642971218894719249980733064444690040097213622508692400944147074850863631666232912257063714425024129049843394712013550878391899456742712238505246324803909477030905472100418216651951199785509823920030955177369345305177590127158610243795750805223440598518071487504421914845284210483024307547116343149317807806109934015041569840641894682459266654440918995025427790726948709315712877230054073171244984280168605513638159721786629761646684267874949414146429649820916490792775663736884458411524732951361934001262788565448082838174950045945254470651454446185268206392259261512804479044836877058939718570976562007297403762524973833204242103046910282262366487366426785929240144821628396401168462844953044174671348206660685295155531277498684870395350096566384883040898382203991063931144462038206237947931948956637207676266881394770735102970070669770005108008711825434437685785469629319563427088601890900917945214776307196371190068276337691567680325518250608231007737009498408437457256957568036217768124565723046448841038895187621416538576676894953387144022855974948244505714402063757770860681895043496736830276265864515700776363987094418568587990686966839380252831852550396695682880002272266578047956942283135520131521259216216577985970788146450147552614820121420060572597432406792816726838681813399559221227968878561558208673948738708250785193947188839400013612935341435201343104328003471545924091219178162704874866639247332311670647623767764543943391933873620377262566789011752571881574874113422144740486354958248795140238921916599496070594849511246073517156759343510090690233308877898249989397071095835868147401647571091292442662717641940891881953359323768313455199118786801208937420954107855624706374697939675113904599154833262949181306070630759989598167366173837829229582537819976183271091169155853314017876078761696198151102296905735449209499798456909383365885025249285930151127945633613556790975943206299833332712496248069570545881900571516670013114495851134680408899377205883141347383910103198063697481071862255077203677958230071026329801975617611418874856597781507158785365744486436141455085086629848577694661278828221802160763365262495354828284934253358307611937568429895945265455187455130425875801524226627245542630380724275052315243528585862663087832910252430100850616232652559738200933938195947929745785262536580165123501653812915089939316221263633308006013293409090414466252524353705095980379439198948714507492084660882771636992736505525854515589257904520714481370253114652325261744515838592847797643424713226962686362184616742044314311014674325469411010564929192307848890374393381130538864371245316573003234170886264836028798366787369463352935779764348271919210869436990226485303717034958807863579027819038968617251336853117079450814102995393835028294176387215699875936272842656713855762424851725104239195316581212936426131507005605997755246963445875916668639952008796158576191775549850370100296030980035654735697856031082360661013481761357634070472820908951909505639113711765942354132305880175164231808416352074470740603137013473758331300002637531835706209733924490627392075844460509582959298050077138233541402995571199107685818433282069948198089984771644113988956767190023330034523859293142405206874693920308365183636356705240801254257841384438898168998992983591795180189119273544936080984000712413957302695931652379044964071676532915481983917818464976358508482776911796881906914770217085762036050961942804739176586660469212951395689046745190915691253412179886909601476416132073412838171913257480574812697589026378585872693672542699242069094563971419319489596424832353057231780928072477455890490803327814734986904424521215987793227174143243983206896862238213690096149834026514250757136417361961599114705510809638231216409115891066336704206375133616210238767025980196527137414781896735941196833082715307810468108783320589830387634362269194767879583089206307680697804901732683747498283410269937182471809875206886057125210065973063823851611018115006430128276056679227052072263861851803371845788590173998673279879137142819615358427709029319714648091517008474662757774243899254921349738935249676775452718743292874783317683432896867607844534413565722789520580914978274391079135801664284558848510117312940539765302399429379880306699930752301607922383020347389114111938345930860612241601566319022841284594727688238753846499932908369827869223651355115497629292721297436785165689961633412956322849632622031207471868722446023487338019796726816141607130727673856871782281971546713924801684803448973722909604335898583644513298907188971309727822964091967340420221741950372280586024469888174083621878715093250526089961929115372916242942634370243664216921340516539334260085391220571866566912068557767994775989958419398137933168061872594424456722152612602543681313552979917167377716465212928010939686709305770731436807085582886725514826836034701030930759832897141613418288394237810406362196795762464168731921175655560452255973825185901646125886908146996093768047161737199462596589310895854034841965054840492188010023581039988940979144675596792866890631639883085800378875757975757138581518957959768673957196093306950610889835001631884375639127421042403013636588177315981040230784686941433380874527473706862913818166413000950559237532801758258090662134862712258863092517133001037725408967596821494185964586877074100121289701336438026981406500761446517439603969619114050997393938995067535796671153385121655569658801047338748878003788963254474329697405747168100864130367550666155517303609508351649099393412105031168856541944318704697429165222510913950269892304706745436232201040995685172531093472718052827657522415785700756476082897400064458285415683188552290148104362063750871645698867614022657355678781586152078427013214415835611889222709646095816721414141143340647201885550049131296533219906420242053112087347168715839877641617734644143999798747051316057792087449191303167128962496927049816838302908251181582959923101393335194335664476999537205587858793399127758551848046988734762246669311531933923577401301867994353768089103971319526062260870861154052751806055152282721955117396643336178120746793029340956411203551912215075898648584359007907093813301131054925747445512404692767489694261658402896766424603656680559909182991644050945740246001064500419314268530315442938851689720309981780744714885170372839101583652246731064273540345731115180805175221029259709617560707815198484320217083668524178181099765575637677981499778062844174904070297434098004466763233083088420557474374393197088057826976610796119832199326548143407787392944775459879355345089578766849595586462053440380859597074311957121186546784598336760460744802296329852440803238261292649074977889704548087367133640014396185702780771234605813870861317702793562335961257517529761013520136760056677480361470532285412063684706425091050411829908962870106457241987123739028390131164285286585118120081842904421380039395965308209492865322255413023619914227533900046172960306434851994697273896250697215889125588423038249957864298521869057989552161881200879008234782329468392929895927382581503702957061827218444070375537449415792288296479975716262733848944235683076463207074275078049068912133122622018649934060933474160402787282210795050332566505574618197436855671730495142376709980851569292912927025748613763650094817957103595862584155863721716190622624616514413300977505988703530078364898678228440541966010657979194445661359461692578262774786820617051007827138156600754044972262603508183085245357411424835183028659979842841248155497384381037857839657168282081832862569606657365966288763443040198184416412160890214317455203980526140978153344304275513217884884615595292272471292535384529497754200912675272689570456683441618694287126562261722646150532965471571416698552052362060820524449644037679967591958243820543679095000923252174665650738508282075287749231217611317506794152377254045465080670940422643157972488924744621559847177778151375981778474310804945290877701851850339474470328394012802639651789963466927331588144537227059229328475514348269809132003077582606416654183352810511563595789545790103741783386169227553696477774339493192315374878628256507381332279206109376493400816626978463553182409258559832467681793503838968086639393029225956852070744820463813999372182584158130312688978841281772276918371500642224975002730192114098626650013813374625351372005588395761886761065730842866706176412956692025793636799666745423441243042634432306382238265975973560057678085095545307930940517208055792958915658816945426288046975260006277902419923477806992030783499737694768344116673503979983622510804157579991866147734648652852427989210221495142620848133954088153486743547981042214185236176652913702108122186130182895577202715428505680656606822508395059439092398122807531354010851984814611084069060451343416375407187703352859490221933765224849876229821262372726654360132043973977262636358795250331976528982024802859631231237159574043813096139636874935205813509056222970803810403858826308061769878263718798978582643869163001683100377270407352586725757018264014738162845987607079402528724614340734783972191596431090142462794086219049531373609149553136795309565355141321528307773436427078266225271596505721786290747612786782132943853891397296426912143460464641038112077515211624194978775465637370517856724212057861027057316411485540408277443676323010265035981110954079972857663498829961986977742557599873655549172603251224751614947263284467593116480719006194292258920119178890368154113261202232237996425291545209833100141755551051668641164453408862199072859988807101276870756645828775467012046601038118870786712213418327131894003164416742793571345494517765798580983907990930310973386591885240178910166347857351695424606611909004916613272853330186981820585555609421923072209809874589489302125571645832942293342918512027980279981410596355906844372706452349566103083381031692505381597683892805866560075855407076078386887768567198750805116641160715967144125857518399413429353181749603386303129559473108071546641167527359489015879528903182220460147645854549070925781344208418442661268270635381593726361117968911671033242465991615744179291247243702202401717856549658632079392897298625733883916552509890337488276210750537651709220631902571589734978270419336682398928351082429808358897156472922877687972343494112894966941902923236499735835561344726915339390579263166493910224177308242904984698575106878621276204124907152030247045171604696268946517602928151970594100270133589703577329731188868999753101445214568715884998277643238097207884036360843277844593432326040961190443886374458336244588398791717358714255407720432836506283383530684620062376518007927634871385619295594069643731720469974832203732184314835448070117305254045564498789597121543595890921031857876646940307339993423657001040044692603451884860466473657074638280704137287299458007093337794394129028703199914328919440973569031978020299315814974316342610378183375296714560459938741305723932955280225943702632668012821673301447058447095984411301564255361531486799021934583264377520166257303322100765938320399941891604294127664137664395530750550321909274424635227532878809359539232849734732119479667549550073541044473432298207433876387763005280009838637199389785042574078138972150261667011495070721583028608588989850558750052116391017955980010214984575567527511551162609220245680759257439821535382925046348990388577758140402122875455618340689241002955176895098537684368475225829333053582794749418049736845448926819611913833121542338405523565401872644522491692210751226662968408856566104766520020479369015689050373265235347486586201927118799500029864409859602618019123251250527895559801688594481634455443682002372862378418813989414696979386135972335260899504940012911302402786308379745850607145777291380414060237198365242550621664530811463442416133769322792338303391262669472929919436512270323437528598559798065005794482563029503196654733296791538361639474159094697903949022569105683827946488418764293410954425673176567182729556233777646706144046228341894837658800375254859819422980076755947777812772749703487830485120139619884882457092654672569408554677486809746276751165827721755279430898416243043142420402655182070433085066627124507537286637406463198111904920753478164940055056241329954355108497465364020720576193937302383454606716180839204068151076000070433708932232686733968153926153766942070298289207247264666913060569100932730489781480002003800890188229464032589775725958314228813718898847512131851896543772270856886468868043366684529527101918358121958517415162957063752672196167508497847147178437916470856154059182007639841345261604139281199980073412017224339761691891687004425590583554393768275273270199951454246226850674106122873102882967422804845967870817178009700698441769715799483820277090430881229588475476409898659722002025183487555905015277009227710976309742642376874626282754940185531769821143761631319029281057101548410955182936881247425612078898558675425848779466236242499676629290198957909000292875819632806660966106071491412777731437768024974358117005873923558770108554365179010695262365035815991847063141687746996478948652092508795425588882090188404043993341748281916527008530167860845615131765901804126300280450467258615965597628215881290827635207662486413928323201513893358950679855809477877538075687674668786916306773841535249025709218410696581527087573558895742129616195985159265207290129870912299535017972088952844815811142866402335176096477137938275636112558915448383030342638153897439568569130045795448536831441430103762853790155589821769607834064598484172540919476417726166027065385406352669093982138674773643817664256243761437207814496106152000674640039864964397102336594563070712914140854119385309892319244877371977238410789071100585458435996482253968102376428923053051482073609648798799469342238813250375742203246950666851368385217295008855741718193742070445623847776644896667869776538104927928546983000988865772756183093347383316692138501386016730958801887145649651297550635251749173583850624391284686217086293766136537674756033479211364170590078898640035087006581585620601539933260323558719286525343228815867953690811871337223000379086981235890380998068956031156807964411688225863801102607921900322811067114237446132611758775841120811022765928099090737437156155926367478692653342134842876533432012103777836771781601776768211127745795860857799377947459014291986204324353384175191935110484906304175004959321808889292179671756590420862931651524787846823911703059615285639897777774085432235987573934014155440743015003005742203289333026963195100988058596982697801349251978354921689923582301987185000168876576803008433629998220772687412777694004448905831898993590367715743959680903975511873313698678075256575993997986940053844741413636693296881874181329428801801024547736717593009975774472244091123134110518803399222755836891172605338613195403547602797071376714314297984761720666588186216926062803232165210469506156905399277762624461075844456335328446582051554039590582387900841992587725787757638998271611158799829178963413151931247155917931487563527288322788293259731265484713287829501530018057594462267464925314518176018310564685306684460929811171964396023783779711760369290673987063756732307960170242071751930696999459956888894247231935387142226589553701411781418511658621986745469934611395633210292556503058165536867959774730012994662864022757640645526882798371764995257078543726928011706910381014518301843588159450629283799339516210079595858039848147503639815045818430658134308200186221451151420220891347651149602031267610630724849433677068284055530328675820410865623624401585259659439373025940793983746754952505068780283607685422653208668900115681859669648979193987256262964262333518297304233015989072778595591642598570337695705344948568907690161655434886416425794408261006241873792226954721576103294101228392797952053525912284666586771569611365112215867215008968763719144543025205283528791002909798335744432128123584112153089213715082430932123108480640373683572640967454177079924348446944910392017193235275715238527412297478391545120238764749589158329613898338572679171931459420941091154269743151773154069200949696660264356012707558904422990450857521068027726742764785941850126053850693567063413719745300916588020699834846527057005187177640921155630339848820525928290800734416845440478779849175531763152992384768893177742281223108168574938152872146901126607669995818519567858140927080735469618709228967063925030245614532152736960312973131765022594753455375953099403570908461475786651860190573922389113526439066033752124272330984366585720192130729025230737980556759295079127147157861782069796945568051858329169490228326283623852850214131562497371188588733906464462451769171390178598738481823191534378582893041735256848740042929989857648264328793676874154343541198427074183377440605153963022935711926621534827866066781384857514043522964253459978975611171677015481551070497743933820418720214202528014766574718494740769055131309189079555240908554105520781913640207994457018385147104296198940972721897079970012667956496837315016674822298096185818190082054547242817590898406167910692622680530714534212755885769131733940065686614353268318503987375623181155791843458372235746007909704280601527520051194945070504268642612219120556590463908574781371918936440105136503659779634365650099032533516622416010223062922232737511391762033815590665382673226179264282465816690810123306869259580986585997209438872855809517487097524933720838997512291300307606773064465371332435461450517422402415376878707815556591275553876517504840713533752154364668285544718608016044648216054972644854772889130419023031199869876779857608051600752842339353555930732441059452551341541615406386930897150881553870130208556987966072985884873456489711638570207624581125055120095365755335591768589594987429184327578854126453116941930511999721253655469055427387046821344930485621463818349683105039329032163825609127262257057506431087183980490153701446126107478852247537985815838362199266888782864098053042672083968622380266736742189473191812767259639066586206749149804710599310103831434896709258610686225207797477011486468255157830915896887737848159287627996646570076808716830868090170082459324762420593500591121800301822249114692903801813899412786533329052497858686981393339394297936662707205772369647148234543430505012710778279318338726454627754919483176693669681492497217558988649506839660166163684182190008952912112739279018776427183780028276369502274880652036443617631001402067711469222266982102655827266876661521739048618913861743005055340139559531195645688179442147119170064161533963087447745593016873242266791548992864333600181758251715239107649038872425665403809794453576694056904438571248853250715532749557628682402139430617056853590108376483523733238919236266244175863156482741640594352719093136165426843514423848289157432912550493365315394893452915808499669962836078748598336248529788105980560256173809866495348945854567409648245066118143292530766577811372911488237728318900395750398782722253099633692795343181726991716102771165186042942164829480006382622376300750846668571728626844960605609160011872352831269449503215092518200154430661853600871272109698174990982002631500031606741710281711023409832698027442600835439686134607828174451122007361441647937801210500150594427379400059587821067779155661542084003149084205966662598686713319405791967940500166632624807774168614600491446178391245702919115673934728156136387757271089134878614932926969166276806119849971325680542312646918318289971573728337261179794568273864802077316415991055450088909015959212108559767150736009664442250622879949176310045384408776037740221972224872937559643758642498792142124636635421162607975193552457698752838453895211901275195535739551795603663743840988756911394801162625861299594613875674430214830505522762327771702393149908361807014620567381203598550216354147201123513880599172997237736483958467269061159883726084247534467920961275528464100560926380086385478458984081830428886490114152885726957350209704124289320158485865999985894531922534644275825653201941697837162739562859974990999793208360939858865626601779182824191859645802152078197451528354124437904121615819333452624831909080323687051944944234179480921038623442782209672458205103231401643201633885618738452856669995329579552992991582963713951579582347308289115457539373256783208258390033940400834176060662149142589273083796676514547357435627522845195169005229122979631319629346678544757460853438077309991621967757824646004212055904323125974069705465373440503616580742184541479055156515844482226159441451141632443691466081217113439538762853482360921526338679373081498639460016354542536608712038661842636143876892039905882770093269820766025991698571548505284303123370585813761257940470502109032845661840431605528990824618437786798327852616523444761798059425580199947202335903895139343586638559591659893583782720758315501280966682481384022217509411648464749989498279685896017709684372357369374468800778923231805579926633313810599225967063450476351622777872281777793305568921876910005826538172167986738282073630659773689294088133832566764794287989534189834293982657864986916283172211312802587798565971187488289920537693420923995683817959782522996021254980226333513490737563637607579510137359018212651433711440560129405984367355496279806672774722125948657745209643540309608205093003285459140698399792807197051471726450598196516953564707781313407853842188484526566133240954489904059498035648870813238239637742339748897562346354765331784342128281921801403275844915880086305656971790094593978492808694312106692023629208609819748305953486689592951162649892044382750630945358002831616782114422190544562474300490160042509626559585153099011522454883214613946516292006818792701461376204574905751175788594361238847808362898330507181155043350520225833699965635137150887873726688183273547837127172544822608755678498173437392779003845399880696681019918341705527895561158254710027565447683934701564466354675544226688615957224902158923172883401459470479929698846204826255135812790205539976636218759798501230295725664654595115998831497402366198868946274583437043564663962668447086210830146366680839072054823888258504246493751586916913265954217434886072632576287081720482783646655908570805847710343777146250843773148411482710646465914367687793548353114321228666336927950229880769987247153400253688663410524913342182381788315826666332654291845699032606996222294545735090497945239136113441557253718951301337265764530756279462034979561322498489208725414129056326808033766632471111286354780709066984281532403207642099732536097011170221725957962073743393003385690998737650398533414527660647748177641089845568067182165309536847651429055970683394812277488968363540689367620157730373005976978380477417146189647250624501312694548833112222822703944126612085935852077858611898528977941146913725589840953934537845507258631285650151692102994036836194533036747596053835383489525120658142066883941287505659204521135020812320532052338625708390421660619523306930612219145644531840003135887181307747419898743235773067591156291836432401095700914278044930277962540826530536406775634855072437381659985731062028972880772795615579025310851435476436816952107814820145641664116129619705360168258154285869966947727079757208814469746513653459936569676617177927254708336311691146420654803493659803175878748028626126112584198649170371802473759894065500492443972482793661774873663935301785697464594858505234747672184458048557707066399352579278319347173721374106897020480377913170743353627562950830892406662412764545194883065765540006605648911621787699408186499754734419183032334260471290589616443662517671734705984172273898686804000287919846959280744934488631758159357967322280422784861724903399464901908531631955673506592759186500349511119749062481923681341407031620135482319783427973034586991799389006969344941414196601703373944453147583250417778573081151791313705268085855995387267331711788337893994706604774865810991603499142877226800063156791461403989524571586654231863233463128862166422169307887310420927900244226326821282757101646330856028728557777715166055194180787356259600034621680978138407322748796062195123349296560043084141231549066246478059432032137739166796085562528206347862125473004746217984823647010097791399608500329311264181308775464582426928914716423552321105511783424351724681744073257092212076072339234530931716326290624815512733439548588969187588587259812892479406665656711084576616873439860488800098263530461972162729983281867696118729878994040129617977369575919700619315264798243777757359132003693753557197449451305750284473917639718283925251746325989595568022478696174194122078099850686774323550416404693264249315481363097376642577453142856408868960137029172833828585628805158174293983830841724221050282429836654032663113534218291583214760794662447817511414238018482326189209668846448741557628960900444909576089751375413372971918244743549161040682509743786173848962471796417576633947771466044058635437369535029853209551492728042252735390754202044977531010842365762871599921859000810402377354690909243184172890223618104432611979800103734989326273336762736222882004082087093829979792375029436115438641460331394648756743502772308703613238641582421037321880549652228717691840051278739472771371559627430460104521493688571421378975714882083974653414080157495846098272931356124360919166089423678066656916399052219468498112955589172603453508334379521879546475287398870771576099296601922652227837765203638415709634849901581557256378710746657543787890767804305442724561211656298150837378252105489621014162988950231240825625033959066351856102875773463319527819331337964361710379100296690163567340686213689311080199109248641459872141700802036232025901547982448552596474377168122425543670928289492287481858821081462043753287634976050577756465843207551790491034356387936001663246902309356477431352550112453274509114512343385238193175323864223174248189128639902675051280353394476835195551786130117970269405005777597070142071756853792907420377833077766748313189714035756353894442290835008709855265112856139295304442170164493362788252771670342630399422033301707796625969179116000948765066874261596334954945166735132148401038232810343090348020523282557936820170702196714195251819278140972977345059865146723104545760575662190154325615582031294832695603198083210878819002949031214103843970440457729788808563455151231169067174161338303775203947923879683179457429105589539528995373153894340060124037619820407870974240391565819575934813438868646479082443501657315779963958708756208594391575163537054369724160652092272373651052102474009948142538511800506895767526754062784239825998900240242098436913717005378558810596055766748711735190504401720897580393004525296264542711469826234059044771097798432787530853523446976746974863875748505508530882591626708779852640921031373682859388280950850929675211644970237427398098473102832562059641398742458915637736888246765732807118899441898176668217682422198272524164509888483526983252829837152779652723660267799004245364827403233525800495907195995040025522224915799454729458875817460043407891504969761682013904295925655226303023646594527267313796079364328023263500034090425806576746796222465303276168573736481692608792930947445496201216887613103693202843193961522635915234256122264587851316662066587095610464360902144401755621982964350010330453307422968542819936834957560862003177037752547083622062701186027256980769363312337343414412574284521491547587339057767348835531029421477980579584074252413852567235976384785871832229316824554268120279605349121996054664761575736873658028766177124888381879595430307709687256048957392131522308091808042247939877382666143087319140952763017647669914896098111318151366763503293939055886267861752412864445675516181680047423222901851871406402392428192618678204588550140454498090463460231868142663546957551436851496996948921003224161713478870444639199440276287603513160999696949681314439613551691863439804207275667779758136390238185678607990771759852022428020286747005330928103160776600501522863523468352949725736870057845155895641614946131164968385191955583592573817706112125829618001563450031332667344700976908752567756448245228569094096473126173525460378635589431190657616476661783748706842887214390819667725882683045909976814867383204452694637882739591314357189310131733138073007229153567375116082127035373383977510792059722268134869305084675535811196006733452826497982203096862255391026657849259903920063742522616484660124662341703182402178014547648394592535810313720806280869432954319004532193233164380710865413356504215855629290670327905005354483414329567714231208336901448749794690461408865323146349789814751472480148372359810212690987994281704996225161219519499848645552139880476167723566984823260961458493310109748203100292452262101852867844381323566701924352722133418183117811389692564226527449568657240896804128182915115681148561950588166408018696793710949257728241717698024384203875922631720197143464550236293069056858169185529786326496284369492590236059296108049077974089930219844979573791824669889328313178377191623841921389890760228912476721507748559090590330072395863875417753138784233829678034992862225364525594034182326386903000790259248268282771017002129268958462621614930576111132389088576960641772299189947220074349995823851790921904999106586279974314129367032069263684704240751214323266559522512951169246210465344857530885213134475052289584648810271745481553670864992028176486977324159936825418755148717598921756165896898744502542137820343779094559227714115915347819941863684838758124464966291852616306475022249663336166888954958222191904087144484098512228984205312239132025269029672338470750831359123734366691513030842022820858258620139036278099919333606502289247446842099545295128791490536106830898648291789958011792670049912463754712912500078358915459369503455967318115034600738170992409905733826593878244828986732125039007639631702685722793532402353636818477858270294929062825045852024618779210748638126122744811229158156645583074084688768275010455360552693710902871918555889663918329127308906648101325525065587427416871762000390022896803855312068087745658867838657667459110758868137757095532181589769220337145039351537644141178901488314930874431097265207145388886989435358688301505442984485000252788417674955675340795471809974067304285963390054936515239004243863093619897506367808063623566591446134724821553735062346780084065969459708841910609810822710873978502499040162594582895000203939738668682093673318792483996771684954550061447030628665011194379893426934366437074876059494054535595141320733985455632432522891792793943287527543097110106482829799084615592377402614883746287664194273131051234362456813064819832034931033434617151573348512491977402787985337943704071751270043145238258539264524174210384558373122511028137325824264633733171357675222759847454679523659058619986161737658732871492779665928619426371111404106286700667695559653379270292157180366633040550426471080716258979469857271280029105168832205010655922699061553281314139341580616479710522845571149576139063251151029491076933990341439575631201089661655198103284998353887926058785886868029707782463845708498369667884457169937109748757766762723886364327489711664899687584926422787452035235431642677655185346381369282753397287144258249391858397492542838425388847336081222317765415589181931733206825135785876919349576805225674925219192193421021914172945165716422188709184562114336039403228955735299933632504126850244271736100938144415763490992219368112717536958024323537781731345867090434915941337797918629939460015003276294472742927136569745278765596894257762940574820748227932741151735356589605942148711604132549397830863711543890308134295451737628456317291338301312637341764000672714189330113063132448878387723776309562946604905290752647974880330680077403554435872218361636013662203272771476283672627993245452257785600885904403946967328263071628934542215806432896197293848745993284620060587701681722308700647101834761897210639942196617118264900826350422616062085771349965597744391794350364158772793616278369312819963929474519125924361796709579913142595978609866284531289811355698528144545032151750982151476429601384098660052804121714639916189234999646539485659324242359358950715701113680485100969353555866773480769520445230053627988337738756086896627895845285467010868330017387433047203616493798814939109766516062526327068936461130011281712349594044767708469714827755337832641274994980109258032156975155534449315812199067894657954210070855416312477978226456239912408501640411945726938525496780903346992743709940980023750710054267170594834062691263177263022202305526177399311670062969667168982086624352403234119073358876909395289924792172712130577809908806921106598690032687460591468308737961692513600518814151581895932208430589189666595311847048572196998172401458502592400852796196467019985551974441031945803038068620174514798135407196032660171732178232690037338604088262823803790370776905660607153113196107771264904394560474915816087017453053864477373601724372811254754544228575422064884250393539197036083064102179350478379125348497510246899010775980391144926438911018350299727297520356051152270920855246780788122992227951380422918306917008831441344649464611494384976842317991154332124936643638095858186794206350521865403757088364697089782996131070048162962109692820314191428842419000129587731809907026220443317760062898197071453991900909408253138685847335252853455558191090902577581404814893511952282690310803785164329484779917525751468011995356410927477220204078417071413299024221090672368718681380866199932098209404356886158498155007789059976686110090070950005569312816159563219914876531724513816451360870050864732896581263374157845211850683402890126061357954165233004495985877086638005638485557579760000819798468479548482857455356570947661207256081336610358345300797286800240849396781193142414409120133277626237070543569923900990458399073695848386534653084441271717257758095889281812427898083204771494708005943605571612212449754406919309667762636176811023903927032532604306408386701546980117476382311343652280675177117494413722763443576140759097971695685408124886949999210869327363249426262190351957478854178241401529916484337179231168409333330166577594637212742441914489665663946339800162172163629827479881128373252886554345166886115866981463382862227409598770550853319332358348319104519464675639528795658554005003024954564231911401602751769381570084415658558909090901805196051040751647981736595516638893843074606126036122145905318051541810252707674692123911689375725064975521988207973084182254373976270393287373776231523870525627235377362197336424144385994783315943816971003423471962684822030290466169031431258490130873061247532046508016430584404880733328698885860660449892441199214498300130958314117741953564339105842000248875082793088262503749208006357420630967799351581613709063788585858105924876936371121403753385044605040819463609702179789709549589310384260990644508933052868107409370561635153370519856707002708776921537533532854137613536262012935844996368508901285427907051317945997390917526254683906400713565967205114745206563098830246368362034064927410567135122345426095609139785310965377330015835488103730349929213063585079764131930561901048133247008619518893513069898094585434240743636934719118448499012166790723795057508101032392450716224330088745636525390461951238779646632084666408066723448560746366165774446897134614945697066656012412786911894161586586889546777792855691131264392925815077786405499764335044550978116631003238354238014312136590387437245573872476880144611534895354884479039475128266239437247950801751757670192858447996962360170295239780619325758646040215606810067969890537248133047075058657148725971582434916213856476755156075438702191984421582885729446835817912249245793380901233594750026939621118090921465454641134399627199680978992771732822212623282121932289284590858306907713719760146804584828232114516677582303055682351490588890187759742037398973707693494955593150483370380413925760757512074467738609029990572911218122230264079393799466159884028066769066096959998519222237269749883354920094557083646341252713581715567816223819087553580153029787974961293154791464428155243870950259615461489851453099639189427178511226090569808872134050219380367995883000357907319171967986672155528531867451720359715307185454386658865589321985842238685851621902121579158051485821456234580717253564234650695655974873006907503638663597971478076181064092534048878389463249992761391631733193193405526433173412490334809980356515777453355385414949888486421387487326268788952022844679552722079843328745124354050926438795770918624549501300983869658987959854988026607818027450382945354656935898022274073463888031812186969510132102061134064542732696247728224556013199469063500772457887396423501208979558320579576412598957643803345506235012171949087843116507746457517099624149196400674690039865769706235650604714723090179433712142684350898430444158835949508867956409568082075929488382438915731034706865476834090688952310212151167824423974380342755887896145742559543850939656509664000399565381550362181873787577845218529117704940785254529494522638171739732024277676964602633926450796878563198949896538577851799855871954716121264786563947157561848350701570333327573090110914014590514175935514152741047488560425856329364390870864539899643563563670145890529605339235377911650387634845862911235888045447027315609189998134541969392418568853680039306448578635332998378040481847357842718013507616194547298917758163295040659773969798884067623014324997367644615931509258803080162790132964916924534550271024517079149166085794265962082084917902277551749769207824301447331767942333925651183655302228719763676922883709029693318335537023523844961711084850702449535919840948836682869066922385532445293526697714356147332720506311875673358533192306239091966434278254728434404949583406202580278372880655611112534087171322997518013655999470150868244315008353077219924435690388379407119965903301320402838933025943219354003451417848907275866769293123982500093364509772950422599896029493010997832014976027409702098397120245567281852264548657555955425847291122780749142261309864012899174736070634440742966231970508666878475849085140550685251833894157937227265529135094971786680094209155461296493406657066931138651270831448102958450449408546913758494308391521421893922383546961677863415776089909403006790154902861554548350810590222048175969450545705773795651622598935186294767577859528240425801468367263159123915142076292897782595879973744414034097676038606775698114839589031522425873390669572355346093761069046043066933199744987065639049842853778411383386491190847904234091627455064343364448390684554170834751207305374401225180521518714562722532143587993427955659134664726426804629873877831127247198392556249482921540587350675356565035117569590950661552623390759027645280029823680753207127671741929871021608692478383903167103318945605172867507125561941323378189982141310143685226580188292756592192222606003811187221295844568365188125713530335892245559506296012465658537088860214246485503108624979797098850537270953000797236784892556403021228451223168606205201446790873323237187169451986657252057565461865728382648439932724202542461925002844601635974226115848117879698427853689764347401145264349283318685712123271576015259851653545442058601737866160412745175256581639695486693653665149759479127985924177364120079896776826087183500637313078573966800274107523502127922676800779111785998830218511429246113671270976175023781647248990994792978630554178129158658100647324678658848512140350568030345955360683456896024895623295966234180875202990899248757990603128640296070858884085539274397662213018060932362765664228183417339048389907354657454186221350622718716759134427627171747467516460577040130111368473635376178912754888890389939650940489715073057661971280810788162936915560104636933551556035445950337034919495676935501114780995352835078523141814013692917575562838630316926426668362014496825474744000509994389704488358263933602699399823139419527489633283343767358940760826845287219728206261025225419779355478598307034175165574836421118674065472156174932927434841775817172417449916621792482381251682229288256001190907743930989853597786265670520992572437571654286284899276830147368504620148101015330992543169936180802006421576519480362714771931734094316217680646086631050075393105225895870758552192253847470989346239861179234038777704150774734440675766637999161389652348004220578424452193762053732226388395692360047751231246630609597458554268572315282328012727277312706850128671799603858015560819655553680396334176803843134800913248682167177470367989216682105946384645624691527445035879939348010818617352111925062929085412658583766610942119312054702443478722621111087323960040212275330213174992308468320977764474986711732322464679093584948372117063422694556079313367114051872691860503585452413045455074470052915126315083342300418444840422579068179013134200426631619151365948043659392923715243570504067195329504165251382292314590553431929892839940776449719021141125255152693304495896185836352296461914198833051291048035300482916182641756595226455086218729283463927516480610787822780062538394090816740802064752611974925264470839419039941428504164318621986240221038069875283843886631148437519167342293876681502016859564885475208005624070332710053285473774708272182489389386124044833446130063824481780567239891837133096310476613317410624581702382718669064594106202578780585839374976480433082514915334671755189272264335356472947248587978202947375285466550806500105014678386479919524977666964765471171850522597963463343453327681350106286163093909341828446286159025568073545476068725316717562329946256746338849518272134416165758262195964519567347475647943304233487107213186623292510005174451420155161051766784246836173315023366789083661325920027079116503475000560993183677969155405804406004692700592664639326354861756075151830656186464462409434815834284486759979266269261467697790532888417241085310227915107372756424045064530451224987015088666630804527644798514530392602136485595590400289202915269691066145548069615557447372415756720761907888911433459669311972314694123552238063026946047476577911019112625819560310470915977295266238652036805394386875362205162439386924514306049316278125237696368135762736371069433312757390198343764812319707210051118613634837537742228066135236266658398993622219498670454937294112815511012106944724611209440216415818865547399190410059405259772736708009061551190851022300402853579708747457237935852896055839712409760802104934700075216991645654341965301564181616565734605338147223404378827725130768442864892176230924809317163710490294597471446659390480922433563902660333169831871438475063979721624845679533704924110751375848541663355229996355231581790988774098512070821399121659620258448265360730370365179091950117475670129747251325086703527170851547005334255621381919938455641843487289701549590236738966422316097680158344622164056989946614544520703102465909180358095189742325497027796682279365923395584569140159941773531607916243844049747791063354947536842246205451217641750857414066507836935958002398441453660836766926607026117462473817283745585739631204230565414251093145114452698257313586823805309559661818819863595346214123285937071502121963242106607695122554178699227919295440803237449330790039841947951286639525031049716462714394281942655936124290175304020891657485628988549633603586575734833659506637065478633109902586523014403902650530596336503612836912282293197892472677284864542045856969011189306973634698808290828888126922944971703048363900068885486520464268309371335764865949060499778466908021463814873741390556692791781600417767997349739975949629389961937978591973152425199538435698417799393712925048620585232081788317368055968664086215137898749614717998704575389836479359663915765252535807248906282055508827376708349335086898192367397543023697114246241310120248804623319171472382378026204484371463776816149359781722467632283624315907281565744867776924928903977565554258694912787518237344936711509720350995325975008725864005957039367367789152315150482730630989838877616033644256706580116316787620986982534930214888596381689183996326835823255854920567103067046664515801811692335290774207689554919811914797656203894133681111516740930755470752015835330162071055075235273235872358787330468346348878107347574022873568959927504937025767778214946840284182247651042493771571455037522120650958428281088205654149436483386345910304720365213176544946262817796748077669540919279549122124994039007151641297814072077999308427910817937566713560266779377740712154085961582002430544937351220828940664832415469739378533159684085321108758536496593357937048951824249213752576813303937760079034381975013216200773202946999836345190025229012595315687680677724453224701439776256658435717819101275737300535081426874066837732243111129555983886832649981408402904494764236027134172166446691191969312751730584806016702038756328698022129040340829682835267628057036114691857319342192752749993366749110165761686790246073006913651104053252924345856910385564563696028144465816316060361783989065981236026487139814322856340549967713147974087851713912263508672211743382237328908554632738417880153655070267672749191789484419248912436893536152010644048675927697628789024653836753066612261474575168438915411334135413686734393837510951377536496913714057242977107918835047899138687059884192940988705380002621701487646447008709732225476052528027732000293515064884749018036775097509434234830415577602586461124812873661163735352428831241104741205657944787167556334672977599568547132990706050726233146264062168635829274711408052200642257126379514179099122213986011538964201154691915659091874579811910205673513197882905740545458262214158512498242717327468100240456530832899013756509050951802572176313823311267692733789513874870755452745690896070975891977300808699395159590300075905250358779705878564059280002472226947881936251066547300989918126079422807077041585127932179396506237906146972119237538726963677263167475111960248775035867963710415408923520853444412343483775904632732745908898077207067928806255769701554462294737749016199000536864244106296746870402325850913823437275118505297835464247722149388571191116544177661365972731946427617164007773777977244679045794575960786433988647619902453534442244800241892467547546227518188337980150510012356807143821599253448512949860933278441941866094405087955748090814111950703986070982233071664064035252059927670455983885836965847230850133321786444811973854235689823567519081608762358967523058104675881523484730637042023414794538886267415195890276511047347093277404421764080396955743464627353861948677072449581338046511623051383025943375668071829823012261490658742329012092228404646370222696641614824690250155309739397197384437483794907772153883466324560097549665058104276168226955756795819393195971448952671346357432873522545490973610427113039389204576439660095316343710628907089153702773036160103941367925539500108454657438292338928913789910932832307429142070732405188645862623267971734792506517765870652572656881159391929269308550304129580473348876623319381443213420007276115758206889507364875627392470820154789315743464496985126847652341279896424483115856122112897229669453933983804328608735426520179498743556618341180459175485723829057459154448768866152169990298269505089132245734322800607613687438822403075547593057916051966143241439216102063855878783817847131122693872277027693614117981511845126470369893512552937128148497420605676311692461994339873090936362345974030334059295345083306746411075130906048209384718364705369569962202535657625149241307888236180097699959134976815554118840603435394202258165159874404782932054383409928056450292567768778028847857043127734168071237674908797701398200489500117202486250279613452034206485500083238399927035578266054674745199839680824469997744210923731141177154425124280401842846259014759540730071041406393213179675035280243519214166764695708139679621935174930877162894370661956752960598562520671504521750065005034116050909148710511962916342075535542037152614497164866400828502874491392202461077543244270916320373008030924313822867575757034497953805495917376040345772897315260106372681427921625268379697384534299959637395411134678334512650463430773772171913680102730804054590243872780410638251384965466326279862194442906819606415806612352548276503436637381783962296460017180495282899455547848143118886835012785743340220190163061827411879219444076523062671351848257179487480610909008280122119838083128376298034602785379453463567635703891130195058656177326692684851965260396957357804158651994360753111558165946789893344804530577132035009313418861395053787733320209901667678712656711789290035133429010843801966525805629833923287040580892329585586327716207888163673319877281748001821797830942047395201903707300493193280056157666574845533188572560515382118047706745485603469104025465233688730675170142274323448188910430076806043396555657112078289887406462895038949989520278764820517431606146415451438808328287584366431711791949806381110623099141568350567390064166451340173115586683912632330646692131570755164058840767496277331483318452447545323134924078451787680725337477527138901608809182291899746878686434578671633328414605685101173345723223465399965049973480068489432721134825300420950236647785337827613269574892465697798802023651897562245042379340804776285679939228807984484415663980831866018734839555610426756544680423597409744146897861770233313935532941027803796949211197523622406671060484245675711615012866443181366548044229824919538271666662249919110249258160159703935434503149043060195893261026609374760939708490535670841117178325142893944115922815557549486820671149878829388790876798252500790484738569942249788940789714788522201173883617937030243856075368929053046774015714099493283305054919422449600137943775901920468466692145148870704147041168003136957564911572759618854633042448878153886888100701109873171786133546240502897305340446969174866409415271167514850016408714245130661430485163203565520419800217010125462959119536989838496003166054574993806544486399225076395611029173217537995216739140543138773590685698954034009903292069788596959102492610411808284581984734328287766187724612070466150555937868097537604004603442273970363636297661415567219556838734739225371335144737477551123180352136829820089704000658016245641276523864309322682067313942772838178244686194013635568238026025390347169885955350834278222576886357257473693917617897739723462506637195576345833443030217878704667132460076844431604125581489133291890263647450445263142073389559150944705937848575964286258846146695564162603846021045373833732374019341754466667545172393997798007644181406546431663368101982482752681862123201417666118522990683071423610640962309931338057941647762939882209859469015152975879470006666766745861322971526534157876394753349350355733689135310859830731220596285553620002462126877181317190949529950770398725295283667660958188405319278324476795547858963522587912643578120992645412481173131141995816695912774173789668616963075593395263593078216012215132963860501279296902255062914903984111085454265087965658989307567589731160383737110004482430144835963804711180999129977396089391043861616600316641818684585837712157283139658826033640018663552271091347163165191643763279190522385994178147157641354837055918672185797976205535427303103931966309841664746405143595738223932236971622998321449434218164724021720245663628170934992363527528183814309933447107510557469892610316144027614307098064202994798562138337730645144714124562610533545293598864109598897064950981284001296770665738952516617511018096653210836582161450802866560861574247919608149738644785441481158489588363254028978624716136433874428093829977118265424405276671264586459676908025210190970101581051875374675518733256112706198041670588519621411045636771268640586298335094522831249573683061287205443435259780765476014200541379218814873814100051379643567299360557621218421015215928170602097066426611018989203809878272905643876744587380280032763540697540758511555552160002637838762927295208001475358201814528695917805040101104824857028924489987679596787958231102665630873661485108448203627655471940960007582935612819365983522646348939671085107447042763882430686205769167695572150742826188977834518072250546799651311468996133536063687016869030330842754190131325428417397148795127403188228423650843712922635832775103608316027717906147438932992573247860288258398181597216725410412966203612599310110643473794134955440850951373364231072031232363397263319104350361830873674246529875792536950927617168120625864157844060600993745987305178799269684502356922403302211329311920377986848465918828540136889198862460583811269813873493249187614000261441231285548317979622146688052294016997806760209144444519823359719791853841434987368852410287324850677432588183855316868944678320416418089560725105966456784835597386353970686108249620633059644855589955374588882632088898654624648455272172944025612485756890373306699592159114393521415972960697817418932399089636222910608154130129134743934849679428711592775915986463743568012287062650986011134582401607816553124537761868261129543370686678043269839262827098763486246147154214522861484740794960741669409987810810189642606899347216255190564421906077589803236511514869415713920369789376729636222260071067851194254633977214812719210130753588489831374692510577091309375781850056241603973224798144310150776173612372802263731117874546464080958308812766154774707058469728039713864486851322065230595635693652967909120196471875234713550915665300753246444665230742524550031792876188420602123583022613102894042958016557765256748114739511440970783991976213657140047552564787817075922165687821098431734520427682301662359061219737268825162311044949727970137774973358895229114449126021147072605642187187332257234667379252662581249426543848584651380644674156572067777119512379107757416698173277159883171223006615370360025204278746359764402772257283333391642288988271910942205387010703042500634723308931103341211082755015850621048255460057810147134368519189132824142412926044666249824444327291119878608483749043692931079531575059312106918024553297243945008668947452452372242696107812334701160102284238677248451461337656317146220150811740810600493950804272833454842896613498672182983963393078095673920784675899603274610032293969222983830526100718239663344887371182810290012924019296901805315862456527874851563494772715575539644113423085614500225667973974561948283931383154630290100892894949134060906021981242276905100456748829948102953806038438747707436477015966005157810991507548696763519270409958621682221853593555496089105279236963468302767931181565077903557202316482550218675739098733660407677964683140054545851868244756108098346388209268982485611554071967075091775716623844481302485327450761324738276724040988057932950206180786631843717012694155874311502853399587139018859769692381490388566105740180392417301161262586398754553024990213899451263653980354571075358934204778237397919725980535500033656689218927530566064036380335674112026403978428641101590561279837280229065194659801045717873196629225009270514684202448231427388032074495565086161361432795089888244265964881272390015496511587113112401108443148065710660501954743954681512349945483913384784256072986385853035245232034030336571318579846590942382958706343346736738219374500186561965668158662635332162440706744128877029618263755926265350357004515063365100601546100655437067988071099674513100236255690670595154651000429642233991670424586996954848110682045866486045665994723217149146366234979458504228753263638881993984094933198321966684397825828932782162477758050944012802689111987589815758970236468241459890120005524388697712184835505566608206880566870971461460947819199676867631675327794109935468502979489487451695436437701029859700204772557202446606648672305106643836468760478761329426620862289203409822248526440796567543575195268903628244020701300250275313356115834708608751454184793246638428290062850616560958540182854676550519358231308465291857386306239519422573667560336315462000285811658234756649988169971157163308531411299097132373224517706648384928877320448479635640005856155160578939584594051370601227443332217309649230831111384871027654994967233279704784172071152418987345151881251479078584805267922876750669393103339218114421717096825406834623599851950004447765557449431586550181077872653560641036552504143362265970386423539438569629257382738417183072241472357335108875411823551911060060689649732357292359127029851916001088980274140889045603136371222056306468545095916969430024273884967411455981194294413083327259208105311836749493678725834678920818253787167477692689845921334611768131505443185391199342805039582000827122363819448959386832033874911733433441880927970379402293865123027226704840773314842923631403933569686260850168746013872420432615208475437171844795205751902089733909551684690244377222743626378201988702521396404281692646209672387965274033145897736363530433071612583633462407771205934301808579668966126376259216930278948170368019334426580459753980237669863702605037324281863643764705776960588831810890562528723849453473475435036242433411891636074043248713609095554948004684614224505107191806377034176297037807257764997759662920840546161969562547245891585114137943426389460731198060960503931930595657237984765336804727494302834662261679633824379731290164289190160596987576381958901139518218710601296918747145296649430839379323318012841175826677288695960232060802223354050417903885089738678439986814554784792145507076876322666917392410407334991800721270444417436890076425108973597521893601307227552421346429958467154101560237205846074907298905724704972039212737816024308437099060842209598562917002339565973007506355777235895014411624799529836438480784054877503484329326621078567894802441126306126952451831844803799830867835002731951107681128484021114717305739411373309938251529476425073089072966356046484863224243882641430531264612816555425763445093161965955163790494492328704617013452988251723846286933634659334086775051674591819181353903818970880114810029105076849359484644985071231524174216765680254858606090724600076301209777422650022826366075246269746104560808842135963938709407331857203247287008390524922032230753984649176722198617120548042425580039366066969612149401310802490457009291599259558663269891240232923568508093688532991268592696857798246092849251423161436671176904313476497414542468339202142160343938696970733381166213377796666815112158184159179481878970937630328017849600827989483529008432760812310348074759482134401701301885378872043418798085133386061905596074228179309832489214160094162687428995219547613853655574372694559937143151382052302721133515276249177846250914629628061531181717799332514190330373743389604807038828558773088908918886307445329787397028211723771477903171010572481302780065691259600114117559221676194281314261813106187805857744330100474992060404434051346751550188370599299942511753107043488611982273340276017076641573728162545572832221968082832564616070028961617864103709370409688009952630642212874172754259987518215218491595842637920150488013546385127181033416182807132396304769299327960286468014734435069251299025259748580603487605968293657971823438506068225868628631214379817631331687608677101613134379980045299013997153545983339244623327839317825655984061733649560968882035568451269213308389174772562803225669668612251208431318571933960675981277866103503699816337632272759742128251223847571789235266473517676296355479522550753123567390184356807421684052537551730552649113842201070899634904495908813973824951913084433702629316531382329509592455069593397891135320814610170678416390359099111324691507269786374500771315841694716348155712463367545701664704074739926510366187076329261917553775261053031555857902839128751148599472394537789764893956656503501810632629027489144509240283144849368855397699657367886696190607942320074350427761812301633099776360238869536534206144783805502965828261921994877275308570615529878786825941479004588988365027043141754441633908785583322705119017096290631370697272695567701696696567210090753109527250090283568939071780744408759232593081727507214275968782398820560973551176943176988308829971912909834981423530920934453099788483973650901522130989065155493155452727597587474046882299041387394396918190114864668154905894118297632119396634075362822464233493058702502278348937391589430711997311109221896478996529189599361712162604073662460959469704112762025868141079955570575149111063571713504657739995005774033371266364481508369870460210856283863625236047823510977098507815063715893691666552646294567819930096762176645385500456444850345039532027305014480845747224348908383887479406410678842771244699351508257056424459809240702996763665927744791021356773931077034825945910639824330272563381384554041240658852302029382404246528303079117771877842839933750323980480167348014835216657958759133319861564979132529095088816842705207844965473048805045410858997579700326624754629787979664437562051125008005878734687306165759022716570911908944465644959959410616709926374097637910789428695424609716868803742157496948743429721313440322611413481410277037007455575857431437739166094391417921015898411069481022702729115987571200850102222382934981208311975195178795089204551180528683243705488588792507933630673238990874164548458879446860494899708779110579907253634105908209981333273238131950218344467022265081633787564432052596444997173789190572339419373570745330196670120004722716458152237516448704813259141708783735481109954068229519185198339722890091025173241577671832880475604217728768681587152112770961527966847426362782129193410948001815905328170491845767481336247494974101586187981301118554100281768341340774205599983218085784377391250529944691566031331800705212792052470497504319029758253752599586660420129117300770036553509585174241763494662187098550438127833502274830575562861095645309105328062280392723043976576996320765254522371379299909890913180088555453102525447219653088675200276492423401014672500146340375404686571756764013650755764629707933950900384705458055665871803475466977186264631651910445462383192260752594757852015345778365056787413533439387905934158388208284287362318354135010092427676869268077042913533061437965119352809788126160626486061311560605479047467336234868463901932895148699786226247548432878397831984310841360881393584289892487322199629866279843389029310358005777182884748525536129966352066665580463645726355311353629808182891528860153766397414864525102257808395457947929934866747340155646885364553337714483138118069628938965246295742923429459978446799559730069572767132736000914639403958558310292657350382343108670362194666640894564860538898155717125990087696715551417317870381570962710699858038532902600959096392810406028881020401423301766970587184320283453961204638894547133543641753009751152011293178703472626599308762377531511736186042629114606623843847378312548703296213033246767211230412683590404008470044968853703812193234109247326822740043089136951817025701222978660819206761833816175526369845821662096720545170604224756237067818418012513297287000085150920345582250302644917105391741419107204969800372031114641773333903481317669384748319338374413947847568673338275317413012292987274762698797642808154559802065604125848758439130588763638599384548435778938569537926313054488362903012206584781050944662513875597749058869637115225886452240161429555220063688065465195334459060836423390000773790055487423392863233492639798583140907485955631900605104278519484294387450599774913621680529772118203971290778345334803163298546464873072785469063469425262679832863805023972276280531829782631852560553321879316918809583508231374299724362276484815818651064556128214663392384728570088776489532550038201539749824778456127709604876597458167072535553176268458698327879369967172235885206988156040833066561647781362325918802512506571403323408269096241265563653142860936947824116054254559716491162690991094720860460696169002200962606611761637405330845733752933445170804607696093856018260093649053793953133114672603891796087227127776618338995075478088246441137716857495036063448348711014334967057692536794201004431505360118448978126694219820122358036807564624907774006343737108275078777962873627332695477407531708339142669245010598607587682854876488570330511149974342476984116160538611028583586600351742784743817338095907248587115831174100859724740982902864365899148115213672447143172937165679239899514997588206361285590074912711856070315255700857546374876352400579835173390083500190547781788529437400613272806193946371289445229689009841727713692138889313680206259635354548984235648936711689715706577781868777641345505608284747165001770047507670452170212696980150444345781605987655307640212910325810339684610375358384215713107691605445848814460070382382112941094847087288065182806614464559706989909186489373525157035660087842274882836011346559688995996988190950566866979254775848835863096620533934927381965785050403082540967938685020614840561418213848534568648978010130410285226643745793104745385215761885477142324764121537786115608772182282353058848779469127608626401758265878338256071213979241526276691917855996558085747948345319797360048369380342672443059757738635602116372972039788872475367785355661097282761701656421749434181975984334584318418210834514390139360029731737115448135523421273731643178241309127908373853516808453733207111331651324985214344450136132421408237564800534932371112288649847637969044397236450796280927174676954798019034603965424439491042861293735334055060116547229128222781710001612795780434943783240822598957109229106506688319614926224462508682608813169899167252698052300411864944430422449342329572534033623841999729483484641766219781041362677515083818224539961878565529237245026597497259525872029555791915671794760381845506132988369438075369190902164804641910736964436046825634400179102420496564998504608721204236202267667983751226631533363695619622357105835825463135846810360485539921038185674559264266283806061227068038050734306022415799953924647546026335392573863536863898376677814293229413283326947171280448265047976357374519174243264119251481543534065582643195695347172000573670027161220198386262389441042889687006938275067045964488136041698617566520285407342886743949379340875200452349729397490675016971155145173418150113338307045764302949842303034043460641737346050721830875794381932887419324012802915752651060775664604542236672919380008518117993193198393832070138187344823133310635387883201738817252276526541488458581950454889381507710338608563719966071579045350704670213976648826611978894474669824370653909057636686173301508484205518925130644417773977421898157309744382087520410175556206864384483719994503692432954372583439109673830946417542980598359957934647298706292534287171577017142043856889268284553084752452011378686445246819179173251471981316835397722879258068717310890475823205686351876333553111807720239791499683763342404974852623506190443878309890343411301698171489067973255165641555657090375174316038319043801579108615376282514439864346253205079175317750294177695508980565579980592086480258428174769002572334945663074234990267410973150233017808379977647586394092621749939719206312106347421342547118241684274286293911231821743932169686171021130757103202518944327101623839493392058849820817189960326042489078733771951052529823688612672892896409405987003093654666292401425730680827990351843720351581669867921772300997786182624354010396289818821633874033510138886945551857712085613491768806057946391338985366449317951325557147021919211489400780060754249993662705979827703463506897011069655593138083289852570439833666119831491537261564416797721737830247091902433486785215482665355333794524248005455989437261929039100821481850412379871812058481173829253419666319693427965262746637838795364372136285767773493849158272608019447868819916016800186083066949658468361521538022766025824283753449136720889326382300426441709612816508448238760379257247134633501710375533396654745984637358439820945772455155250484667198526071539763592058629851343148955485977590098390932733162080783106749722853921801541404432240640765327208326778219644284765590193558347643575336149891877782278715975987062980082213015947228130533941513574765594804945772710946821913826292249992417029463943998214671968140819876158776677784091995570792688180545150485041209789812683938430354111225203274211490383922871648957888523759474087483247859992393896262238614857694436008531442372542813284501087029401123210348692580322059494845983901334274179078964951910967525492006337393385507299261333718134733587028113960709490536997091146071485560398335866068559309655885535345996655705885043419735138221197651936719896100963991051958172659679089684822722263211875681570814063637211458405406733842188545954436264643107188398769192896273875859920753908620763085161848287830557966731742102227419955518405119079698563924598501963906269105070879031554632146529526664545915248631890084211356460937551333772861031721385572467041842704504183327318373343747989301293931131454705434374486645291828855013144757900991784708403565901504080190164527027411275313058989555144891995231836992126830589915992319703540439741308114308424170444657802414199706896885780650637835439356638069873755877251276155223577967154514834192756332874259917585362742044647586193225342264370510083036398749335543501017312283389813813445672149116255161860334180658478925948031491395851393143181382788881211521753384435322411418869974208289638881162499804750754499382540137357835814615409533288345569384290261999483466129315417765435185192355459447257421196391175261384293126156705925199262893617843739337685811427154949018188046634971995418151956441231089709497707482852343417167986069427735485156196503987524604363442119707889909942402234568275022481354035220530401863073301387805397105508742909020159672994685305184083017828771385853322424265083686815662895790253975752584143479709785750072465066639269066336711666859078896313308085922498437443386026800763760683647076030901641036784560401677367493642850674335928757014755883091870833079770645055821473557274526435050062195442062348906144603475330822116476407402837977603517990409290638389287991279584788693295166069770858437587674802853726384991536715383422048129956349632001615094297583289914346413130026828537176346967448052935404793089726305164264373007647079157613249255399018647560694664336946009477830291335662235977792726279325065149536293988696099369613529149974430427488667127509579358690320211538601331258343045776039561227953892128986958683946495771799686326713669243654356653417473504278002402263631146662963156580963849803215113246843610072902155040558796005987926170370445166152405054520793068067027940142264685827157276011136399861769106827622355423737772369691408789955653050430927331890904056294155541150998659091317862667692929013173165494389927547442060648638181142526521924716087532472154551052877620682166116247741019734826026090604668179293514955509177228359674519051047355568430517879426403126374775253202299637902403932036604963903881098034174674063343408358595048452011669103135311420870957788860960282046841376167805983249336587609272277510523787892784278129364858315819896346815854824125845966612752575660904647360860235278051161105480308227017646077826867829689880829311189898550019120992178036921507286602743389419909256810038257753757295193806811352046131814187664842555928495752661969455608041344843127016887232961464458252626740088895699845896260740909489746315139866838998755027745892708342377394007366726344878779476048284516235514414191704786639729672045833342264770220861522020349627037282554842778733890761571004071428632929036194527520457802301542462061651044829082327491229070162910215069090157164894600302008083964616461767233702723349539297983527822474910696764528649811527072154966810129807920392413544830892859632738872549364445222220194751117381748358046472909250857729381505251415226400368026514317473006187811326776422064853771863003486088420806981966751754469115635479163947412872736840476893512593610799521909833240726320011017111901076948553542288235214141828828488527970998436904568280039216755687777553886910402934865106351935111335956425133934858724796102237890322923342893537863741169671231094751301629881088563091101371325707770372521627543929941272243484604416884254480690897596660854516002010897849408617073055987717585559311699625665415259613789285708906716844173948565639356702287173775179192781800766749379229357585240351475137088864064530294015391103812625878317982233748784602707079064824401787816812661835893514777187994161521784860956968317986766975170901555963458840844209796493528978583790810305515839971227330898677505053150939101733841595136297104944285041599868584162776970180260637046045368571216234968166088368336951005669817454396387310170691791336967665575504470136735784886345608222343270841474788223594398243251379797848394675946077393493799350164286193268550224730084900990728227779612245590749258994123390542205213984339709822623821479181166770452608142772187811205751321025056739931352933681117922275836534212406552485889749733540080923463137581410052450223252576434398548434615743744166603967492922079041832804842868935911117753498465898344259381963601522509471197022737656293911896526745151800307966378611630866733353033645010337919541547196581982677235452114833265123522026700992583668123731505368334561877829069047337885456539682056879896264073790804431004455803283340914381758545052637041728066518887762316850449824054912965512491788485908807055136362616140832565544970345955161083832655414094963507253670988470526295822031717210669990729425996076694285039151063749259733946357463715156470761422385246121524201947738029230744409757223098561549873486612245808147570678815509725373018463828074815018187810475448537958727387886245583938426324682739464984711407959101269591902313791717923334815098484245701422080943656258874276076118739869228327075128103059493777526004428987428907948961832593349697149750608259967344607963969366948150942333762629858376878152934784849626742922973779493871716412998565686154788539596202783444789743750692997940147267652491474244822462529170183456912972077119591566815052556531379359102751964420871283657859464210704616393381513526307528329851613637681016604452933807030272110807568994757770619208659940510600261662693905208503407114606545724001262542692705691441559733380574399060409233682285360446497910627054063046320936560499376895679826522550463794626140106122755498511516327000876040275975912973313961540326731422194186304172723527919742840436430788762934933715172036016917325499942096129249855714243020503197463657813318751422825980581471992579586244955106110133036911084908063671358054831152874483569146063298836363106977055571245578328672567034611003673468151655861446519765100509699874596313656683805407598716928793871929341981188199492388400124183222027897319410168027101965760854945545610519415776107607472778982578932673598358750314100546561753370229158645674547535216455071862156855710849940259024618660500778445616183642676253641381932741674493256243636655128530329410457437305306575291450696428704686299580785118005809632434461895346197000091894488477827595971756523741248046266039648339381308878019860452882170462428543011632754267676620341492504198757052144298561139080969222575837705459736592484854411128331342517466339535375238164658153929484096110283277670216813299665602889918493445671126289236389193174905303357375434041588155620182707306699210424210447072973468476786715999501707484276066356061690994783017938082371767274779594862859361786718284771874171044259278146808815242978770088405176318214000019987346090499202765565125840676016672354908661979562010437179005403402761436648529210752686145945595120030258039014701994276793769196245147757233681964280232820457918050403919555419359193727401592766524932690119934208357761247707677728875004032049340236786969804957046624824436420077490413617720272454624727848831111228301705977486660290192301024930347370574055333537395745335206240132384290246428728122686572212460866209043643876929274660497341710016916478635899856875701783864232346590383463384039486772779349634064491567362578663124372968936313663953180272114269477635533921983211294704348254908624212220854882706880580650391875653352133530224521512745145251139864404217650115693582495680938672267703862570994105937360299336902009230253852331423188464173512954380203904941616223073708733029469189810302894248990617855609463325601359556449650725728849112300238955181501623706140880402327654218799238460487375595517614331168067523905725008403234962679967719207980918509044890768632708905577560632067072238710071319758109416447684804753281659098237011172298623635931806706783915554895648718366926906896804605403518595257090519034528803127338720810377164180465168227168536892027364619036989291008081853731451965508828306817680906954024488540126764517903967748360864652345568713167330891159559220608994323686103379128019542878393517420255531109063760289467624293469416896013942080453345498889504988250545446437203996645399103752035233610308039416094303920374058563895911004547413174690598694127730630758313938470863837468848678638626755109302658292170083054505244233035337068785363511046906229062213932753689504550590043306823125345073254701718640300747459833611769050157479107217061361628936604762105019056934927674795842346449415576455631400012453702105703945813834659814881391462538035137476528672325434538074314337321061146458975484130773139665754730928837547640021696530958254932281984310693364950231595729172140256959792394494866120713256070738517519490125526340291072996415700606349131318981176847290792932624702683135651523558488137738576977800399574706219348847522604040314706859648791552996148972472290800512537663868765442640883926312823239393394282776314948922674114156864381745892643973161464650278189215026136476342619787410635406670208232865560804775800064098402229086838328646207193572871707715910444309535555750558717825106888756745277373432590108821196640192250805718107822817582643837202244973000502465117350198828701511025024488558647699611298371479752782558014337337589898103475380443938299928840620067676952276713261626101951709756573426071018643044520624479312095029926516012831905329233233489612008972822434909687656658935021505921316251207202996626312782603733327958620940842289265172510044523354792665052761870462249514585887605965703883861729418619926618892856474462932914098403291360264170781170524536435532076553228299060406798152897789971523476536737600113858323758475183911280657682333543436525261860826679156940478899518156083461963507390800970961221066087816406945539359808920116859810342978650260987677130576406438822924700467843313514203981236549163070867994313769487017116318520467700460463698574981068269535179729085852353444905077404903812670897022962480926850086415723912628849444475213373177078100895015391348167046303474878617108613841275417873022122648700710124926851138995350867824314860009830615978338202533844479390403450335085270529298107092412799476261454174811056814134048387695007772409683327667216115671995512696399776846130314701937506187329052273576907503986947198577096500448757133400708121502063156794630959083214895723741621552591946787004132263303664807055031890093888173352920766058874843549644752222010284335786035955169752241544954615304422643800398454796886392906696491021674338491788060945116173618119371348816880956853540127858278094190740157843908837646868897090304234797895269883873740237589386508287305389558258606934144360145610431785244970136015964123730420692263262318691502836234398225719929459280799796095261937336187942506082093348320734692239140287572047610745874214800713848257215605798838186592546001137641282844820633670674535064459564004537792002998210530948377317873257857769029280043616234486643289418769701921339130457097452033408313471985222678641733707241737474528945830820397397449020577259591597822444092022869923994562766298804792010912148454672858441979157936399325955314927524966153703433168615178849778118782151338967931829685463741664610535287920878083502786178751970200912595789540879101207661873196320663382770291958768350872499141056822500888206724962642057912377929248788012018386867111284101285437145005807788360587249927919742030366619059653126473020605703930012945750329445197575558278626739318042103845217604163531323859991398649069831014529972147044265732879515197422558100937603907382140269787251432446663296738716240162461424351277673465936068936319645202977621888718227489647766395046168240694066541763588017052201933785997282578182306107101029840332195020783526647916729588584244833818112005811924544284657133163797703594918445769064336010691746335197811030475463229559165716302758324178209509958584783458040126520782446595805532710196611558771156410221134070191059354999729480269591943028762676269721595962173479844718387124571242328498162370716505141876742479281721421386271955835412886623380047533946237465368681690900502920427848720347192892737463324869880510381720315762861296621216281502554988905417951028373032839541426609676634906666998596818410269618489880011370510889893640849484016777533779320612610386487910552980780811829650074714665343573736164649532600400998922551509685983178395991027023581615298435450252932267166330395986322170403535655020840568606671499769929350577977813367152190777737428486707438978553861972980622681418548163863394157753316772200744159242624733443094520910248732584929004908442657911230586726157550789274757432907685741535061127763169467467935649077895019095605012330515251048614876704064926143090303699854363295133180532850458269089865211569898160524122391414075232940839996428630702835667664987303196841512365667743457900561100803107595581996137297550818884612236051783875301963785422662332787596104628403032630183514533020987364953986689020345220419941482194702709641372897202589740766043351336464357268704161568282565686392506477911377365837853019430400769605668443431500466903098003070331491733419926944924524512465291806223025995408952543345885186415743190340256263546657271875996452241940771006108653029425597710764710737383377834826994334555439032142231357599848419183342473647362236444701007658075288516814799711271648765031522726895059088619355191301381860885231514904520395302690388652590467084340737302729226839707842234761331638644660242176911211692330140861013176572107709486383497238511046318581067208012092104728030834906308427111359337583986237895872441845766330371508203282233660428452605483060842046142135010405258992493308500493846646908286271304911324066283069490394669014419997696951755722587536016647431242697279664544307869035150312908307008234336584447952951418788274768706178492751143857677021089767742830174526106790996169964605800826013320485709496428192847100689473637877964893416392069045233187282865182149487131042405629509569600946657031478214804401877152420455832317464806381459017205237111014170499535887352823283543966284571303913893974494490474684005634914469526590444516325153506497120081411627512002220314620102579987981195700442817802048081139510659711337844378030450712216105501997542501077432313198788361496177514908151526784350014278431662807035129686395075190442065019426013075267155926079714678634427410797946974711077099404569719620407654599199566647997529375099688202145800976660935400432569656613313537226857670810936268298528623253335290344062967837832730488880025451063266041421695098658485448175650930472116088733362184985099462376589164336312905583644141990152847743541727166685271265420777995984057891678078145358598386648599437196926566211462591457180954378325573877509327751817326799846669697559819751455107037144305305697222880981341571282535439961483821239034601526135848124566879184343528119180271467001792298783696084239597514250248116033985617506459621273716586806520444022543891417026759585941071953759501696917545255076603128943799996580845926306238222537741002982826525510076095233510824648660602635358899566550502584626239976704099503539003845813074328445951237968479592615645094053072941010732194974937292955139637121114523055833495290961895341604055427172623082192623135836006805203002065312664880453834116791488294700971882813022658313624017017529136464860385728355511794076347066066876372792759833822130904418665225529610785853931623559691321583876078318881705184251739883462829315483986062531090245957765599360486637808668209896852114439300721836080760630502921244748544932291556625387303614378816128249306041179259615773488766702442810393150000594788515127990063936804804409204058331263773857736623377350328326855865145322285564038214495616906458934351163310687076429597313570576284920966085080324284667313858479259051722383957780476596795621788426493808680276928814735371759672170145407439770729943107244151629175340790879140968225195317274854231862232786168784246677067018192736248745006274451984137210908832256277876200252625810063507259553843319201568767231778111304684632198990956479895470907720172808316155745274740467740643356410916529013370992747099900920998598229190483441101467244133400033473081415424368094088949959676694808414326653402888540112451058293280403253946730475618811340920988050941970984704598837203874383348463341477772241502271276603507421157311148472720852587216802690964775108318128003229589825222735054956361491415934684044636931699162626617468273189150648005853903883417596757381583730698915903683621067388956937571919313226818783367653247904847573107561582298805801385008346753918501476049188543136428189541814482322015718091535179547288666049963287725831924809376979671528564662724352546872314218313223851010295993984841182614299083218977223781127178046266326468534929469724435858186958745670493646019908484971345608625062454477248840242733113741415402598754755044015592364200139821507365174878787711172750569717754047284374537600450207411377747419967487850208852834912451557089292385536728836964901652001885371019588246376402576137369389667616296216889820458772361720908790723259519525697097147227597754030486996926398275285962866482142409362102747967457956922837435530012129892131129309197390938185941806518902120038676482331997678962597114758300614734579872453625904765796881177815416696839008789566339277317495884459379865337984016951778516395617947804536475521884378893485349605671573035321097632361313961239627886914960090773870633370983450092049268880895372077250596317766624973703712178797645024436143581755236724316249705582336062320261017436504841572691629322707032098113281246422443145196135367474688315243823851839840289456610344015256437430169386586992447583678891764885200781477869428265376322607322380902146541162857972398138018225495151977259692775063868675823011728214199047302299255441216267084047534908638256626961615255100161594611848249382688405725812035355346996803281036839290615568025317128214906325798065904768243870429193514163999656028975883490185970059469321843086483267251156018656925064768278757576234045192995690932533852215619935851842518124863041178770937548445726727642706892906766069080173382641449158005372696999093325476695458535716524583603113473433083759690771707196599992257899448415790613317428542478881642695938487228221875575805306386304754317004571251251129086555955946771770616884455711671388834045506713812836607579121501679508396042885308803624309332374618990887520302843282645260878415077044757869091759533454586753525028001173198572510260075981600953466107883767369708604664974838739545176129190010856810112030227156039832057594456154255413449822409535585194159439308296894522218004573237246465810138354523110174330125049146536702416867343172801071307264431552736648665286470226717487770764556842835010598650031724001680500531044356668707218534269705268469907285082155515422937875606343333095602951644427247196793313736414432666091492258077211483952916301989550623183087752145908441180233106654392860592255385930137093148874213321872835737129391585013501443109114372625579123739067932675744340490188491644475982346165210936080146367623824064440328820294045805824775484611544338045995868388962116605844813442497271837642927986353141696692704983874689396315403263096190765742972025707848559589634274791236647286657869323172116729892151102358686287100104513965476730361105665839101204323496056616480740978986226180349554770033615329815807940110780622199639447211981705681622987587940389514522505401064986069963680141912163323950956108492915855086573624441210636324266390010826552112692362464855823895103510993603219001679629841694393105938190468399455548830531168489344946869565223083025426618098899723059170867054695795558605529804864534671893593658821378864584840902218278732840562796035078376354322700372557495767815279007939561517493744645958316087087987464485436482813747170525152565386686396585553477489635806111608134201004515972871964443935607152192823476447130304936013612825694574027179524674232496010923802463731496930609956535969799569693356960071760652113838704498183687689964846660357638773375634077554861899571066840597476053772078953685807788071768982033243552291732385109140116878118480630962503497089893063365571921923889397119900512708944833103443263870921714157811599578544777525929866854423678564243786393832133949673038335745200996382307783217827637644166055699336074696899958501713331254723265104307362972485645777651911477768649254300119605966795757862937912240109514180246276394515995650322391762007914326569619391637038917890666889920877012559413875488886889186481641759651208799379400120208212724359260662369846124451059151847170248384924296721602552014272922186882735050933104369686148052784757308122174051056133512854449198621452311202265510545624768495094092516252495232845205848160691211009298350055260873557524566926137516070321149193427688078195973685649095369885669143095680801367252108249555135067583433777061095575509874999027337803183263432828578607999814525992558605940446901718230251020524772076237062964662619121733726295929067985983502016907451842747229277584462578620011433114486039272274860470311873521818200201088706718000213132426415040848498736920889936991963672488295410015161511091234722008639234888072960259360707685183273349792887269846882189183290514188930225520225691314926882271612097022012462723637376242021198737339310236486391162533347189839897406596525001247815621003626959728677360210478812168978577989383892592986426522889460795061867817633706137146088501935756705276016237780416332928804081516640128627782422316852019906772738307957881757836205977257108557095597509397117111935139697659256002819811382609351093498001845072386141510122820760145894807648625588043680422483947710513653474855020067044173607163727726229755959266266837631852759789061078428715832188722799345499400329181231120836569091719395561665760800649111308737119818598688982560909239265255915278031409184038014371655127767345635921678002764430861284639717700847850365846738703754465880126304401122660148283499686765721016162036538422133942038746550031808673721068584854426680318676238383393827413464484841994023268394974843482580435133531604233728741698824518700957111226151482552484229544353795523472408736020975309210531323131760339771396149509732915212388819900798754644604455585768021641477884640642122313940041171101639579835868789922527916619755322068711112978887649906630856054467873015290418047408060523711051908191061006355480524266385492695411540838302230590159824676278707126781100705800592989179818538099760576685002937815585056055164957913263081038343921224445432185275067196628648680988293649288424434697412738212788438833327246409662021394315680302870335848337630224114789240708968563093502459603739054019133045472362096255206894203851735335317636117087046519041859001014197023653911205708483396436724554691250498677282672858505872408618598288991586723620775174427832628421453244661543942018687172225077854998188429036152750986102546414331654483611747081520614432494983590700718385635577540151892533606820962374916182728959880272595957337322522600875267125732190245207561611155735110983594376135273926539422621764294748826089601501699519726375354084400191352515853036376351808215772798271994937448883167140244660588004401727530242069138972250160921941606327657197296870464802800107535965722426756639331413677479663449029763323857397142376432854960547218865599990238589038093664662709401785561999075178516089360270123657028097526898782142199349374470360746989537527906377642526217432023811720818957216899187920780681798299579475505288194188315244653543422315624718802693094769868091139266410958009031454706940771416710441537193467876605860380762953304661214422911210240729324449938486914345181501794753238773867025809586152958598243526166431268300164800169356436930778300919206375335540281636629909653485229592221014000104104092318068961839513515705396163135307257545145301832162394105359678440379108391504458254288318934673986675350277311552958572253160022976374058679709381991317467513104465401498368687203734539887406911090886926156681373984734551374297355193884333130861073728675292631577409795967858805359412081391324301577881504725056970915018679992986357848995030162597887649948517503563391851415414781579363823075879692697384850797792098169215782769984383523711660209274144042051869343552936832380838317537928497658508343172518930892937936111453839456151492953112723667806821871817271257586327414168602995071229600758013914156611358384699502443162054725294439861005228986591702377007461159841436072771940988103187974153151456886141709998591656310019866319546249338214603767776022931648581215698302059619227419852826940592700719534445178716049665426265483657651938014812434478541492687328344161446356128212382726798655734374444465842576429303949800265484873111728772085856666883735477726803937730673561685956885166627704310256777011550441393759570188368248013377670477902697274588695945768818595083687032435937070232403179362282585392333708256201978810034812043683391582683872264035291613978735490259207387570118169706178090991404583419528790959879087417290211923469498234813435136833738628603460246462555087296333690804336163449223051884664948981392311330447335306203489543130794173161856710422479136475443352970862078228669562962990035746684372626213988093974978628828271530018529244173191456823422967432566609830776534699662017033049791317921858240400681604163828329395922911719862494614329178416284639396971215047039359982073020514145476525170352731498779803020131857537224964312686070894579668225932631263033092333960079336940975534733392508120793511637123182587364886271637394053411076560128139173402420796350194301325601113713168940610445248777359302214487280112965398850021949243643536927891219947383488610380555579583699025781717790006544414785659838395196240933846865899268407269814830068590621455755542742942600132874447485750538583626929979349836742646584829350608047111241468531460465678893495555997490871588674586207981708105754121052138729125260793618256515599465844328833518340338624324128635070227468073712108597968375239254681245150101190676872023331490058119548216604202739674313687513101163642853611613834501664908227156303270483497115500415157640575023165310694278549167754304450918577869067162212490529244094434303531957902136149312589472924665627725931542662705223845310528035093481996022327934553338914299615968861882993593168071769713510357793082454270698626840127451882478941360685087572755215153935687877517103995699823037890422430329016752831568126615838117150181371440004431093945876496396633565510156707835023734861188122721597617964230307842645303395301430598531599242339038450146327374889358880525416000147520278741677005040297614261475985493540158677683417106731709841965695770697840039553204940182183531672034564309396743953508273760693330796988869240589755797484521023685623335287172301640268488218821492089744353750192566489025649812264290887255712321714749044659794207114304494885625239155193241794970932979070983818579959437132403568322877331902790909412736320092922660422127638766337494891730251468135218802456951114825303256373572893781686053784716306414266484381231860365316189332039877960515960925956908403389083265902221965422642701886468573954312383395535057059045408407479047225446706840733387299717399511072365099457360211890455090091625572158175571524886479569007987283066966027570558163424563687670771150946265529689436174069298432683191904748707246778203164081749269376959087049936462436095193579388395040705668174417807525909563242275721933341267850281945250093917218849237581060476236831647595020840426961742118728975701639399196560902747736446835399678521220635257140202465059961535257085931332752673003457932368749734687734288559057462426140075995342063707219924428974785191350314275144595947511440334251698523201211449359809723426419941145048564021047071635912602551539963964821120100318952001971650712546603668819047249637516296135086322612799574037914231012629752148012794069131434330299136986344102862995918945112962439760601158517418690309170261376303288649018195180930505242186726814176314033834082413757497561615147893828940274161939531802411753740858903437454173056575621388186653994886305946026435944873549968291014820273720375873760394890404374248866131858751991498533991002635416256446810747561617688059155365134379888380620673131102346369611996354653126221860172739236614208339354189861826679451443319638709888907488283604505917823913875745861314549854041582525019456614163466006439727512134999003944610151487935250499580139784459896528400778580911738202786083193333458004144793243854081466892516307339679028796156148208277830707258247249050068021197317821180064278275767335980224321489185430110153828988243867004492853250537058465383573523666826847886372809114977006228744449935052506397648002112192086522609261936922911396516474456486633365292274799807204133523288723744222858351826845560034026579035627890681403666073848937740981966261058976034502958631025359999449899411765385140896033415590866259216646738446036606135942513998075627926611135941487535295502140959090446627967804820761677086103361112225829197286616358564555840920926263122258113777819433617664666899964962755231451014805438857445094552762308951906677621783786858861106484106386172872748897188579149115266576871533598947051655821440821414345587458609095683512201879166141326960227679738505273954472183483308218102274006734386147954053983785770540060869996046393404940968290553708609752435478127741892730472958153340854978931417936195842314947915664013905608591612994878863202480753882435944084151701523755751099047037056051559326806180598572575778891476529967232047586933741809548266487537756474744364407983838740315563152302504583135163012264848811451086039676965108120470591934959770335788443476381134957503101163717443065201967832499233183061610474036371613448693198327774254602347068494797565226196099568345524820303496997054271788190553342277615931489738067500619392228036877866203393995014157907597077038514840874336134110932143051907461117714377794899135405884914531262095468329758322238080109397374547145673637517011204468422670316051763528218118330072160191599562117546120667649797250312890104576925781416485408042435997475641825948932832548682166985436873661168534448134867186201549015386009515564092663330402996066751561728179832436813799867811029983779255054545204438319578036881295497216805298188240891673773360735264105971285217598059991840657165906504714065662121321929186236333757667862970311847915299228729500398202629969690424993868044270105060572963305249429038127422888947339076808643139941087259028523826037176081390473564300468142313789065883083198179581609247545775118252842858277001947904954698714091686866130294260073513919620901258011468425630723372342066133126773232535066974836676002598444259936228962581720268835652870482800199735667273057172369543680834552933195814922919836824874273716942502773535872984907761025994606044856693784562438273118492050378689494227547978595437301796310970273584248536733381663937078194750732824296730733530265986746305447949925153433327741233943973497235630720467609796889744781316201276689219966461751173805789419068526321873118977862848758805768928637642851118986964241367972045429883697101253981746325775266504715623997786035014930521659751329027219097869089588872602139061337463687345598733831485990938772127274351194645152821466101228394303161324050534446965946182810816523343260306974010727484112827537520422219513147226771550534611058045222515398883074391442297431718803472031297958305062344928255093602492287049305898431262414628399631638574600604567609282762936911533180934143067294574244143137364529841533691228737660275883402784700816215254659200422498120478121451874502177664544266339165412659670737476075234204539155678006163408906259213064964768498168704371739322092544152764000124245001002830349880757988375923044594162370524569080708389271020651340620367200327658784753630286888708867939190976606995042712559553193897562122687014039071187646247037150763161357427782280265069312538954170643272999027236767599410273390886333999351597447932009301454913098716975176194933514944964499352279361832119743049479806922835618335381420305745022058265726252937950376632335185391949379403882575355658775271453657935186281432152250629778038087436247992689557690969921193495089925420816139009367917383370878450166108372241623947432819462650853097652412263586660264212720402477293246728080926299945797626168055032039545477113797751366392236125811657244422499918629457950444425046132327804974486400242695460314747372409145836972345847477198769549528003827206488062847355706120590789665376433768233576827107148382143290365244927698921456930178591171584209019605699402610283108100976359945906173323985588653292042768403662541268530785660224033457549162439075338373896452258288968604684947632859655003019165330868679256597861117644293846422072511741946702981657097147914443211788638194014329393964590394359566468461820160189575142777264212495075682925367424660703423461880577665835920441217396370747777680437213311586092641954646232156298073440620304333096402552523172404113617496222041041953920819825735793317228974396730547970405912513422343049979794731933667317056971701413188544939426660471441092616256723423863563553767181380567049007603387523674018313933831550298669648237411944085140245531022750327479872936471109488531248632312630193860675340380287094208045556252282622384290130152834566567540437509672496555240935097324903420045264393990098069699692180730942918828261819968361064113026973172486692038709302506903106006798248172105833406882107762586369189656340831020321768472471382386528978029353649648353578164883503035631200555981223059064559428279200741888099931065246457820227342922425274221788829378838602457696563390077236912056815130369248931460994360633852639524356784731524053723276438204894742134616122253811576307284903356882819161846838684993756064666061404244859535641592248644891392120725007992592756477825711523880864232546369188403012828806936775951066382405505140873426769339588131366458084234660312051499948271053335127854493057559445837350589774333727310766009791588188247277065120730764104076288543605851190011458487175555812880592081866398986414801379765448799420327353261669019365723262387262824794685341625190659608243949772586655774588205018035314582514223551172416983762693257033927854070172262230643984704443472688373288132257724854936948254366130571942397147783700506220447397350185497759248588993530855220940717373865199414060941816608741279452631754781434610820205472625794387123008431663989520793823359851659717077292507448315745666614398568290178047413647277407075608153990956172277937688128656911145535650569842085095865229462910534752981125883409116146110821479185059178879825106666801374117755878642009664362543740649160278369808753087266424882988160371219372752074515386620654349035614061874544853852604453989283613137185976414674626138628304896116867675740311305598275223439060390135116787611441212195615314198070500989984896192470260764883690866337677365610070433272911571264557544605560072983459428158080166428918941658022262976082256678045047140112433432542424093471795582489035552299921468379173130327079821976144931982150799541840297898488704331531251637026362367823787197701791670662667513233565326516738051078759365438551792072944891410549755906059126536078794425121791745590940886951804275571303268093161856222693100976760622511526894703386781798408109525493550979460295426018685645500543130146901020612417943811436732909778156999504110514648477242846387323939528295366993197553590412998872479430230100937119103443485077260910722048399455332492264555671056771813048171801483702902278614556750717651750079746523561503068745537603700015640106479425392250319362225341604911716345093562444700024080118482728694258093212200969004947457338275440400819280494014951688939648508953604175201485341070842433916824213590994421454671917112698622431246195155315479762858305694438469217351238929901941149480539538518507321248972831339922643498368633117849852029114123909376369469998111821587025068931528834238608864255009970852829876905502554262429732305688854904256468219619832020377547552121342332811296114852664311554529796841989452026035212292137573837008545976925752518067502517295886166956582463181703659319785553494534328388567772689946980061395741548859496859237011045461705962427922771068143653571527936367423758587357787140387814147188749898567111731137852048648985304760010487647135950795084342459274187469833878574334916779411387221710328942678410112286022903408573623862495848451168504602680388478891382275309627361205258421894302042077626771681557521683066662886216465268996105917470161349846689311563199022871804515388819958331064499226241215740390538789619905101854933603546799821080994904128605771993579674564377210761234708553531708312830847619618353657075799196775372279679560926755363995230146619467227645751541848205568171943865748620413181850164541411653004382912523312358228732674646225262789449091592203298522107457130572072723173767480354277112082345279732520954174516163944619812349038035704552974403403535758155622302676968210011486986462023792936075693404079636182089087674576979497730235978165985982270948262057325186895691496571105702931046884249473034547625848645878070147379546382607258164803601827967336730513953934806610283292471030917611563553247089802276593499008139397265386399524997795355748696134846811314553500354765440117273178343770477572274735010878696586627759990965990036344918321497858553359362304242844848552963200233582915131280685554674583954296344429082707519014200220373309444957514806993577315139429838335732077424439153595360508270086259052048898908940749478509154539183630329396341292030258540001485746743295307613693000072258872385146489230875513779451960292413842622368019791106968391019082689288410708354834090867847969776767740637765825639507922262997003648965416241877708597128415586960000578240563161359893997899752596642002581043364952242785093214748672778638968435747804512340433796032751336571242239146229633422796102791062665042060179674984768249362571930490393798434664997117787894446102291491396268486253343879922861391474210130970967594511081553295965887176430531931717386840601215898092617328257913447581092163485362890529274183778529948635311023697320964546817126413366977383630703400586464334200108669981372861509075400734224846017205453969748639701047610702417959065642922368862527032417837528804029573066113106144425477263895322865610018752460464841084673643900146836622513646252863208502042259568818402848788065038764251118105392699959152042151833390253609771030098218370934468722681620138732580844303750618811979341319537901431943192516946001844826822369193061619665505332731439597418454829392708089120378627305338928219990494183208239530958465724337681543651851109891598528811163322901697049063001474997465863028296401763185506282696103912324816475711304215155084756172131842205853781925298658644093419469568848454257794678658363945199957661744959246407180754416059739109736480208693354753036607385684004640290242599367688055970793731815750703645995518519576436658657054989289283820779505508339558973299427242010067887498555814866549753040031837687904141899108114600852126486103508526848139005449067825406311010197966144585884313776989294013226996185100962440064787475451235437701128268735421531002449702842945218511301792025823355933413390322694375319251674985465464112397566024226150337979000737326752139874554994816224436895975239136657270757388043487701483618858765566639901335449730042023747936528077656830315545572387854851236138883221072440150324711228331156104218880662430620418762320249671190489478368179983558479858386126488181334599179366153523377516558963398675414454394825236665400687848085768366676394659978136006062069272178460993544693939735762031899363962620977334631293871571013214445245757471524777252894120044368914355423587926757663680083347879615648733773740761296578259365116464588459164331070299473451634723891098286339119895913943248708855184583927326153216359788217912442432987782841398755390519175967778861832984895051230512109696723676663460352097495948925755934844881185390992429722351912941417418565985091555001782562820319883142072967510037602489865409131335347206277567724038922491309713448212258941222734391916164935453520650480907382624701444837923389201610427508165757123064559580792130152356439837154071564305928347100561477281182884184969513047785984192526213732809895934928899813256427315502104902165116868535258780091687377216954846840885215185596783429479748709314410077073278179616260544639976643704258169870108744622246051093400948679441226556526211954422691329956368512183532072169670177099589169548120124721091683385575109837629662088603056434241588495481731628156250001847479237186537943052852363921249132899884977212974065537485625295842304718284127679652365108079576815937413627222791880139186446039467450926350386659914285270289385922687401174564138076394695987231639267259282417775944271985615109159810772605423544468366194242160507900941978441512389434110836630940936227681471647835805667899008697070915413986908743672017561713749128224712219157270783096421804963660705710905070526795212320274310006308524733018366912654215723415571399258340515268284625532773116874164567510975886839249429254750512936206984591063043066456912238118818504842570175626115758970801403678633614228961133832006013161380488731397590658210127947093297597773325213859525165690624690194607597411600966858687661391502687412824689339369865761487822710109316118672955391385092962483697947178090248674919288944771478242921514437742703551433848662234353368175689644867179887663463510706437565186115394300407522090376845959591937103885183375100166463656284073598585636198413115489415653948008244705301311020172539790024932814879619548258602840304807282975602829476605823087582136379932203310347763730623492121465447560815026946283652841907118386834442698051490275952494086400006030968290851690304950667529925133619832324751151755559043133411512251268957495472224139608339899648434901592281594325278965093968544691327433847316582475140914526700295971073096337523243833576845586679665082671092036763454383590560512082106116106969207283626902131659833398453809922702120567113803492172671175898877814309501569643029786340973340704778843411668413565268302483435065228094080466833183843044117345758695683721587047381407895703426125471522397969494319730309151694756393148822977557295417311766298690076722816846253154977132013171016100951040608026720269612442750863264324494762977407775176909977344287597338792808495925241708967901357289021891475827616742273265466008596570671057447737039126688488402237839489857876581077044064956315406970266193812454920369694671830055154712762745217759805632805624738330466772605951494729564718833019843845761865841453912325558792044854324350111426489314919008870598486228737806178751071097044066744883187363536635650759319909867205167005621184888531608974408260695621027780863519931620263816407228327593889269186225314034924273722575599970936165802892999718397945361947901964243235684962722626674021043105027797770395116650601644885699845257612384273660192066313913067892452895408105538008800111571118759880565815390861400726382527072889655878958400405136451902278574319787650970988883882503782189273331167398866361974002526720050671235106900720710207065692594636035176368893671017898238868934204358465117614717621777960269324817145212108407378951284412994084952498432687928144181028111443518161460865696087625492341067034519409348599259414266357187116285473278265997453615091505834045287778589908305217129701948744497318016097600079977913000290125852886308641978459430323331440625013124519640860424210524806808213332356139628508009876838336888979316817152133878755383101656112579708159239213382998573864115328177743544216117063222384617654476111267558289972215745740371262522869131365248684607141459866775947930983769514271805788934237988094829175709424814535264211956060468718444529808871634425809268086870952607663875789036450087323766266750830182797711558355791684133086531071943369669895767934228194324193973902935800904316966815757591601836982195570400864365670275776531092912398428739282082042556357372649629297440335032022336356172867871484551904273077164039794898751812644361191028463444256619989460729643838782231249012282931533991208249667901949464262699434579944115294629661235319788399817870593211615807197346609280542713021620688753907268548637375642193436904540674096260421613914515472811413765878737818472388201058434653470767104703884649007804064603090069645792564178591411665594628460631552619001641828208655809267288002594323928530273803543859113062722429489015858992716455034096168892417129718465375654723775962464820887649277098816618878607441391543771288100355598268531237085911586288504938750336592830778519331024552589344413857599140768910819232481780945156799979366421273795513662115054430687792780712565022187439409272723345612865059476757227396406446341767513069116568953426565618911372933718448917826508378731875629302831839702770190637552319702498116951326937924113767055711544003631571368757765241200376699160708923087225596242136797693422406949714118343839670580754768544133134633856912113533421040051880521278272441585515423421088397426380982160177259296819334602167987825423600990380060074986294748650426097196256761075590600253409786287152288027318807378227682660230371318735800730529281065358889922746510626924727333454342847650371325883212958580861905029681038102141311443561786698379756306515528779741673331981983861731165971832343147603617874220696864403178209023175496228671500223805509768412603360341834696914720761180914467457371851799048873877284990423133250427616157579188929420948205667840331250586246361782442878369977720301558004562223158271861303658867545858246579299650622711008388732857122491253214463993693732700668524953389730840691873224275724871600109659463198493101292982579554463450121239122728797777590271628736075436213439054823516465885069409970277469819810224823819122052070508903378468796019440001326768069581437644983925309579947794524852383564669331763286185390407594671660631147838971484515511023638276417284542771964938494328082581065444986437678407027610210298438879643058864297531827436323379258394160875769689432144970214133562600437285530037501049885551008168201968016046008704968947087914279057699447720544219740204743172787872547253396219235335942170524332752175630432797093796024410973215878099849008728096984875025614735338639317072331236901017577205219646906085047050850952356937990165707946403843581185065652501505775436902944550204165390124317813085452131278814909655049497573587133431073864392824649819861054541817726938350415853921788716225469242004417924002386729379238852490769567857079511729129498981995348432449999389726190354230909316343970139016965093716860648150575585033714756195579782747756116683261827215469304617403367909889568997141570262139333295318053023834138984282667809936505718084589181116455050458587354027115814972930483085153855686192190967460192958554038601478192670065004317705816056006100418303309434123769397942408041720638171672198981572256828704441515179433363709107401488524818155200554125841052064996551725384410558089120158573943435337782880186528259088716313239898263230897526455233542609561979242067219898103222014583205048186337602500753011600022078292458830934049301031030052011514884895839523493032929277796266545401586338073520425894519630909211418949100256390289321209996964333569220512236855197486601686994134952296607473386692350404358106043428888132866678216198845862147676155734573649325530233772005930856260656474806374095714118506799408326289510530327768897307340924004565953399802521862586081320571456813171660992783976158800378726556810815271961903912619676944656440458475437759741379881656839927636054022441182122117354598822725451113132412828873438687555052862514655376983503076580755329642066353922102717726189914660878250909187494757565917376602457528636104131521601627145086380606140630465699122608125974710302507778029335519297004744865267995286842125388421442149469945397480047782124457395874925401065095921106462856383914880596495585688401295021863293650528750756598108509332831224584774976558463144296692043728159522531039845032417674018543065117995136733017757302923718641622764192626372735169378968397795517132939994667689011745811912755324227191173705940438165879057463118929611395792629316318195729923850162481618272337525754094136579865267124661546856447361448869947709532299112876775880800950271311373704300429973863721690403172302084107255047782768999512076492363588096999266551572559104941610304112979846246487268933882547481210288318846407145081760099582865273027508561252024560833414023264428446385707345801980149428236589562126092883867276270421331714362324512029068939873378161077885018151748851436183749415117775021043373464569389883011543760999902432195007876718112410364268980022319251033063414190692763716519859026793665527693514295134016691368272563295328430308429646588441958025317031466869867501861191941210325310848033902733772237224415040804416967912485859483579652748502680210448468581435370699230662598333275463303860278723520814536035263250225675281875804553339017376806065632203393644714733851012180354077323450759495966242153238845068375527347931217837088011978679304633674757951448362074513396250291251844231008997299479923950521173030280818987383094088641270356331715990679791011693105300442534218931388110862183817679367457088102165043493408092551941641446284839960776365071369773620588574646170214762124556188353139059340028175804682327687596022860733876521638720459567513426484311567721014732993646583181149200174505950355122203980400882982467126390130555497107621513654707637482132304196414830386290751191351098019773560538462175747460194786469073438355100196679059850578868297157632542660847950630918002313473721385537358203355933958208548301005028569936219211310309139933495768834401846420925300061981218941044138045599215928582044700651800280878988950970634364733306426307342382053062228229574317485547641130322831511212103851098138100811982621900053789041250407703516263813653147636110971380091432017794951473853471443303769940962854715862961529950163903452992822111862324023104948676899207162927338634513286197632776403909472365509244495096233361242865231137032554832567706969747499978517030242169060166994443944790874949495755372930080469904807982027702346834181798852154305321645090749389144631980886493612948529032004119819994876172941161449028158333695319158767145199504559867853603473712325644020825106217290807788235433841334801443552231073920289899656255283118273564363821767340118885903939819729764486152457740658076279568645909941498624675590618292714148411820094522550866159936376970006355271571625510623833414686453327269814243712745988503811236364499003834639589919238812883025740779366839574775471819430751792137837408485495103901371932427031030095367305752944902005215124967958760786754227066285170827721969671378183980407550196066436601300003049776678645755033648458943074564403655555150464221276755475474273095125945311987476624297150403105717477071054984019319624414836513259903700238193705135688887749318251790036185680376331684460840144074113341118319594451339918606334881540462864711710447331678232929708215974355279397577083782699818124205301559883974420804479851110573356052625343115585598706177936294802839556626651878620715248303579511153233508889054237094432025968061439546844582100145024747041582924088671918578100181419022974705698508321327716798502791690942385534149569309328114508561348906299522114936673686021139564275367119883781337574912000029289883965748382323778881546149464498763829140892633146513997601852195397701789707408056216258760923598748781686299941964095098779581236098516039164752726442763112519213600120325545187379212018073515679598494476107303029056013239870818686278998622689701444387704659871800007231965838682755546144849638509730425751673213004418515711083259698059959418337356961223408299739611763002432040889752516872619097782126640499572451405026968540053081967627280069903830712530910351276403461136699561031455148325315667067229999261884942831567999733471558659564893919175589936216514276490669695640872267734750786640752670922672544550842728362315784046881450319526896425423099424730147625551273140983028224416519626508201449428737672063182124765086749365803568796771372938627608010638412345883133788476982983020074400099020104169186956838233304462333608011195314613694204861025598282815244792082484189464128994585047200977166002063757830498925653487678316936261529836001479959362824990526022782003827988594067466191968336474825978303201582910421590594314351818086507387406514419520690006267926657437330499144685554096697869648748028439783305028859435273644085741382020202112971628129334785978267149061479636141308746028140447484585314648644609185559925697537260042246960222826832499711294427965747808782798917241750018839068161958800777547186041550215269920373964812525138402257545291290650463759620944948864707693041635782832723551631375367795990480656787933353944521165390764238739680236470194996571519179421244479511984739308474588272564743702768293623003562822602389292302153569725813434273461963885797535239920186929861931135471663087732692253802965494053265202383741298418392194980513320964855382899041146178645751585675551883615633804384177450120319994039483767550889272269228153322185809795679688871847448833992497914746507877867199614706582042724685330461245234537177494384325024598921957910594185439190965284161340065966823734100365520544023724016477737562040023584330320419451663949669556280661104988249578312271586014951536967005108900852091062902472510388087670975632426528808837172402648347862636441789155260119582334836459838610213639682803620739610979344292713046930136938479345859932252299188632685137354941281796639396113606749393967539995863698966621911509825373561258424122306361295686027170087439424748164579988752849017799723780168425096888175530150011675650397653352976435217397770913532236791312254544162399047569587981109457895188282651602636466028233576135825344876904824875603038890640059942961432200956588912516478159375140015938607423082811239506104573042171866599993374351027923599842852564364309538591588742633719319913048442194775305371460705031393496438126895831433515244398833274973952599188727233841780951452751806585337003120992542244297499915316359677476320679734736224627245310208199210787527711373961153552185512357305215131902035716070642731329307282013364285425316869656853245325547310677360901555947807540277184984665133071136212037817543917863020070597132724823221209804921391240859761791201031576773267933666435670884413394606656147570246248594236736583793101683404128871984000990267846686011760726403076816406705926491642093464230823967565488093529226607686489731510075739340536640574695525405298607585432941937031700715176232075522814473966117876703771752680425649138116294755323065633443756639215636607232087525889641925365896497429335958184669981714625585736761428102088404301496228419900194298538826203440442328520878218389650290580735248020917804227158005377660466131801674272929655258690584330875573259169033127077007512841609161676005775483909769950605361754309499681499557061472581922790060024298899999849119097142950685126905749817054812559272313552705772465185738939324162867817765179151699950549676964478664689736126183457087992123681136712197246266977305701456352980470484814770603737719476624545013974423766849083523961238624253535015877822321622915769782563580346845779333323880956302792984045074190052367626698168081090779611999202138052272783338197787569885543010284796016854010259588678394755865243364374838118737221913774723083175585336289476701263186054013522684603463423298919770462162979375427149002417885751948544713562997824406686970201920545065746559358015434340630744597726896325098879235710673562406505355336941107436108428013916452097594629940917666070474371020997036741951013483577309425319507510486135770772792105726305790908333533323904891316352021253953930133563706160346403910823900505758391632624478784843780311303338212613416198659659911259761675836749246462019276633961352536813932847266124697760286677422003840473900986199879768118383555758274425554696392860810487167778983931174162871680378253415965770083797336617063362125604040573245712587507662064031343935743876467123307407425293387927017322566627326985003615760755608918796122233393823474537064525016167429524897674965559502138370356087518844860753733388417195207856438438251282762624956193594221075473571816045998106478044670993014214381258183060892197497631103365740592443340883847460959741149696970354216899659876316054030833645696089710075338573612124405205965820393248790239450816344247952597516696497610614055804998845464295068895373423565754571042548427250890379138121009979695221190629526084813511600858966036677454219943311930967504561045402922540015668640253781056436248543759259602096895507241829329029733481015625733457067905518245592364823934118098762768795882686216241455603333890745014271778546487268579933563881177231961213690712633787571118935284126093296518482397566839058213948073788169459844327952906744618665135485957592865741389140100374306125292012004719096646749234336218307505203657747834346621874211594693531605300218899876966829207202944674591664375222082034023267699749223451794939991346381701943444143695774172524204047326332066356509709662056279333569773428426640627612340443171334995741382812310477973664984489646631208579261033086549027955636427415051605945314260261562996621329987672734311321916684604470022935732708512170996474654967291870233625309331799336136948040351032642403880694613807109421473583594688177436021402714540262077238090827019770806760317184509040200854809383538972470514357047435021806070950585351236854620919326557595064410760016479342902053254165268617208078590190322354999720193038062222274810758165514830614091270528076825452581139494943053568514060359827154609587858483316096365263514218469458954425554103423142877842185696917541541007994260787942496664564217825616387262862121920979723353696857962599032355372943918261701228474146044983287420248649136578785714374090765956481061167713077921570002769153861021101642747592669536286235822485196718456694054298465619791838589989571304710769328573516922569261912307470013062292845067139361366477152942558320497840080180459811416122412732782330035267577800896618539625640475758115014191620631701307199090498555826639681716124044577127844232367212906745717848037411970443322051079714875377813308707045896571940205577455763139102304458821077431385900397110652688026079151748459086272202426587707161519085302195757794104473873542780729028103051519098333851607173617669858135515159371033341549305998435507151331709844438683267230302670226112092252552797677098825159614890074060444727487324420517806230117943176444259058874853027336970243738115747950725039739329882636177108052395450493879807409929936812171476027609665235559078787946532876796600948151313617200410895472842150003557129256706949741018979932993786921374653976180549908668984556473136754832006750173433307465222889068575331785771902891810332436845183192893649747673757972771878062226133061049234811730239637013851150294338644537103871923629255869463992249749139146954205113224753396866673484811261021750792655552608829555766832981880887128131337077665765810746127879622467834516813933212683446011080739685406593971061569737664232303216111350306311544414515295351373746865953137598271472710490277862978784123778533121839660191151666795402835788974302007393913188620734849781795972640117236866789019914897474975254297349397935371175099255035364563692948925236085393194236033096812216098517660539778656246982717652678419907728062238549463034687220408261179734598583657535390811671251310060602810278029888635061904347651773320016205664509219603369467200781983291839334329024636722914199381730109147117316800097938866115623954464311547293928280783714468715026999402143977600771348247233397750542901787589227815363553576276678945804203138367372556206029508592315811688597821960565587780407033260445909996520582042711363181096532321519677332126571102659733805926116298343998434596742822497792172136335190482856772789411213406110363383972430713198988149794740725265756448778427537165869127253661691418070974287301117111384739861049775195867302718733034476321428748861706144246720268542773026518725292250587743440746064638744154932489835062242033757137575126613575188526714919616278451422588226746754192564118189334119862687655141335040423804179887992987839157512752348496749779900352657227687203635656130469797439508973543929026946321748006126412704448795000893702299521570589875861017101854428965913691685515937071355349805502973216361701122077848860937916277840673601472122634758430221524367155904069702369253882352866284488257870282473652809098357819300620755207156406579795992579919179583754841844688242345615103752089792372859491335952845307622611945801933774112072184351916554260303527305575016028276222276457391913907570908109837559988136741583389513505215207761269967945288897298717424669074773390677641375979737822646782471854258440500335853187085739729375734559933836560565507098601812714833216021561588561927919233442717510630990648771623153720414459793128331319147846502428062676399251021720473354145767296290944660058202309190515229394350080179590808884254437932106338548011256281268878697879430967047047316920623533020492714112203171200973469220192249215957159576367110625750263955086368137402317539072282578241331106595143589199436018888457219822030141400467839004429148650163424009982865247502997014745554760976418449698515306525405960644381010718271404915851805989801638458138476958047398349013495544623686853129085646204203302487853879432617675345399504908523696689072165701727518782507139950156988895707936958167309305025928552162682310021055754079651213357785492757399336340719246380962830368701451278930014076380098624619989982542055680183662925674883418368308570867982504257037844047157511573512364193343735525454383353666041950807221887109464225120235319333658568473799718637252007252397998428480604359867762485754728528059418168197320692122278769362431661297349570265007109801954598327064098941779025911570611879359019093953425211165040128329927984181355261077284471551528782119080214580553509532413240362243341177943553828886010115160217663068970994129731190951509171600588450467407154319873902034011465692767858106623717611531368221206860193121958706469215428095629617524588170426446685343334103665886729668460166392987853026267188278476858535924620343003448862554232738855391611086948149662247853369174158186279542833074775891214902843845490602310875779249615600164170909769172659108445888042913076423061702585337715559512898370256895086229376243533473321787547432243653620086375931160401710866680032259591181071113547432847055745770580608023383012900905926133845964096584237747338657757038571306617702172498229556519128521442588495293446404749936335764393801671516017902566226973812428950539783771949513368046455253807226278212619892002083627730642746197854400129479559860629276273883134403650962603110711357779061525455228875245373439810975962983664341679644686649518677894869340369243710504860858150200172742031263728772371973824601804351822005059303241289626390835968970606485990691410138555732637543086465602195659349822638296909235572007840436074786883794598654922857934588612686627210628053796304141073173350124819213288614631585406280342058683308125724500560382922949528656606450769406781460367597929745406361685491931181686524861788240207003562030930241301783253790671301883117178633421430051380895596102888549247769074457766368319456510791776462620831288936892327521474290558764586782679661672147420711631864791728433762274553628954315353806622822237860895148520282504596884446184101896166181079457390956854786430321046758837613377343671415215637343694578541825557630444753537358322918556669050058339386455895941113570535000241813127610303618070198410498875634487528377178262735332601710156610866357332092632801561115894763599675360502353528590259959091556179882642957463741436683682677231850072707395392704635251715464046501842923923628721907171557451736201531296334978921364895131663980971942041929022930474433284548229568946197235248534044434197156083184959729073975794844986959146976687565055171554841864954637302156103968313866913842444702803023594994716934548612763073908876115522405880390739284112491872934202500079870487021554637174187344936439557455146280697702208374842440304420263647807479993864033099615452613400134456709355965249712622715386163990495448206920205295453465211480160163529252164364385780941250488484860080401551255574357445850880945583184148370014504567532739935366484161442948920728121082437016708260176103405319692070831852979711786950192755581746823779293153092650107349955680775666947125663173941408834818671283384739759151161286257808139748445642490859373257396300986071269579950621299519081066611495512049210090827936662810002610936642050682075911145593862681625079327716308974871664963951916351524762161796279056072624188140665271308375021249916603328572364881164459280048265236949991129966017517023325699028414680567554143220362350842526213398547225992287610004174233831875719767007748620945734986880756258777264561059658527985900210790109945227867785524155147662793201844798717264797066141218301126021634591734979520466726112811374471096557081896220253440839836845524250031014470832806310174709991260898914473841548812202118696860589715474380989844112004415317150687279255852862585584175892335055334657175027141254630126664890613745763451480909655084716251936802540113170864691338066352627701338568453134671802113098836384934649831806522493803271219171434281788857558209810349747191776430385249061330899249619717497932396602083068065433005176218570196070622183556312728047869229255002183111821398246454920885898175479946391051213393569471346215205526327603514468250686803120207058480748865955265475694113781350159674272121507947597784619631836682094683351920668319433613429599384764998858227060887255544097263284418834455625056364350304200435251201363673769342104567014303031699635830919951741085042121250744335459525983252161829734421806949625673170332173314059810578100060108146628543627407487375478605652776184788558478607229086256540513337307425884803471220571451949177983258350040858425417023405762607821986123887408972859320245812489287421087317534365269523903323985261122537062915123355871585466615404643227720631426503143056584462655458208905608388895996534163531515402192918690029480529618129689739544193308283202453951079349691514869881410852704035020104635752293176502721098041576562680522174939866440869908423265649178208582166389259913404015666988454139878045546413069722490050069597075498357581282908451633570776877583664326944460025827049648895706712958662570170343949696947996956176138284269626263506798270296328156970561192695192492598379746188874707945988689252160827768848160939209314133203020762332438287558992441238015974678278702299260922163623747151594424766977895621920125283755061957914788881685694562100306785245758730679168455315339749335267451015625945188967597527196058147073749307092084328016434524767906961446252195197781612207770025870202031037318515835076189485055608971341507849450200619172622624667003034659273407377654819602017892389984573841442970325437109883934782375933170498704386162973890307783175752240158202963119229626022871363370080664644722496543761684309033901956731686909370249058679198966868579160334240354341272102740324390764169151799087936498509835762877205076338393905140500195681492416388493362536352649999619368973590179253429160176251508642222790492281304616448600387112881057481294843878007624349677002523278748915458234285541285417877720578581302667729538815467417497391534704643639368354740672653850049590727094775960548315960991480875993663124414738115822693127189864002289768434260056141871843197899969134962404988403535149130539961063103724047070069008895338663215700579768353094608503918447437007935421102113913684221542763498590378438405362715505884725455605772831119741089769937663213147938553314428581587887568811178918302096235866412567464858657933508600654757348158315547359910644906922429638041019703787063207122300762299411801659592933524425027245089078401159921599214657974347444545200830768967839325910418679455945259301928817090165061505126035074406572065705113286850377955146858017115125866854489009932307544876388559462179136752724645535381962825984116071517091622807921213365471358869831098130793668189562952846008286388892460168776936425959882156499103729342397490467529077486952160028613629996549374923367598096852230323256459150228774588189691681363196094927263402351450035183675621409545701437010262321590239539261077884169579581554655774799434376222218202831056673873064031182283857090312668891367023012032390372234143001983334174734747413399429644542438740165881166240470038165006908508340620887040567406199889257444540932049763140738715108483471036646321610804000643975099680560183779918510463778859955489825004698097064261306148374057635967250193770113245264240761015406742224661026342246573979788554474460721133015072637817508269005006251208150670620960595803008105154716646813385490918317606140936895895143026585637002416565132468153078941338968194777338517925415860413628950484473882314266808428423395850080223974101682504774985547073070535214993994130618733095756632257593791014430267679369087963188034012330713151827923440272791078859551715406246051061215636927801821450004157101713378897639863123863574387003895074482060809687607091203920396700411019344295275100645360312441807644136377795904442856740239817166741082305204193506595392727582404533240743586724988130947510148079520278971998816969983250959253333471874219139835078845559601935422263522128828614557865154710405429661140572874218389653614801890039182629932793872642265388943419138491893125263219647929780835511009841363233204508548053833247233748827204179908153416368042986185125310515606820588469472576161326138517363458285224453095095232616414846309247326826541017603498712817786907288433236387085360642175621308094008703491301642810613195969467136245472289971715771293086806024836366378903392585743778852643494286215826566230000809602379896964046753909213218756750460568750437934657282559261175708183997971467484774239616460767173236403607500757598779843545587909883792639780413260228437288012690758845999484373725872413939734500424727163849049062821246313411581699412684389335262591771108714697610916055808805393635369311151691838734748958855195518896819360491666182840235165386053266113707372386560426034049147133975217876222601117346826516489846262046179870678306147298738211275005156037598947705071506068841465307608005114185143737884452724144285061725646890267082861915262294807585661947350998426056735347127487693255819992693976485561386162973194263696076479920656741678017985035773614997412238138860324602669519646086211944169136258563559993413934393863008525094741418573796085384518760895994609665067874997048035374145145997478223012810736542149540956312060881590721897130438226661855140033017746694595068729600348093702503143200153274054538554467876064366306750387296635487148818042701123718247357112984271975076754890035651874819720575151547975790034233419222154998001037560088778768055343452304269786828718399279860662544119014022230418588499231389329448211621557648942189080699460161063888158324096409282602786111348516767016602500715891461110580988839344033774775623252207692616017724400385623912238203762766557474930318509807567974809896077385476007310806653746161061445614022792263435928556187025835214131806739961528278691504113817602712531846155276311597831551438420956928046553611008872726103849578540287497684737431990010467752818427326575530526478226483735670758784102900847754202614269016904421684883561863697610961917403795913048669228007669102887963088001826029557478070554728741471635947344611234408902329566818626347808868480560419224821130322012949056135941430558249429616356540049356274799654920079513802659023854804098981736769701419501013454079962673723694299443868607587408197743536924617632041064399727276889546814562815605850238633075933515590315206405901416594962630356455523988832304441231569473251890961045116880177142826349940175192811751247190389090287050779210434018456936483463721613808001042439047749181590907281194041745570211719261472730869955629591052209777431759110267502698838579760663302414712769155396034208453306946886065151268495965607749187902823295804345643706106610900450668357208580334741010969882244884271256989278369611489085135471979146643890163109310339721825154561819407892319760973545598114247484334871911603719729504512063396831213629838863427121260400244080713497447260698435481512613992392974939512198936652936544573942725599030839760249846331771019634081463784446164948203033371560626424078776724273881679152467945430401430681437191766663847446212836862749362727052737132339388356110620741225505470400225628209607641327349838733167920919498005364663523591298076085846061803899033606120626505063293440782954887674221850898888403791407434827704932577123865780010867652784525741567512525867208073730827054695878056797978380754636608834363050389649006693540390480921992142196042897129235880702715861521482154999267491952608447668039508440885971570497311681877629120073165226522367033020160815914872193373759710573113329187301826712596756418487325782138580752996994002471164621415772459306154599908638504057728596732418604657489721482038780873591591883174776532015527960600427679475187172063072229317032035058973699132649090625240284902714861558860734385856110135494049083355673778270919010974115161369051218402690399458621126595010129962309635847613227225057180828394423689240585632560512321404406623222381290058400190246181371911384065274671243161457353490420198505180393588822916357118654738671649421894967627769722240425794684175735444439512326467736550372608142019691292820273605901301920756818174404879776542741790961023608862817241038963899331654363405816711462633137014336538206895157479597019333199085227600836746360240880120537319297843325875392843879301566146035184322090955718700078840153164056328738188471791803758316575935634589936894988022727086589674122835725617721111371273105054627107994394271889970927031932876344321619437788046786137351140187161979082717319718687684915878541135416097056110872940718703644944081713308959725343716095564779867693170426077643849084460221814559525592622967429105749177258127287702674035786634393131716793134053400250247094318981549905338138016327474996951000684868350521348176268992575080907274028192176164755989518399539080533011310833720448345066921333890334925977275708481461207182896999734588327208489893735427442144033321646798754196381937854747849697192150907382096446290983765278523365596397351971043218026980781295117247656889944079800116381834880782495026795087342059501160147232152551773449944077280378992076458029180815517548008189144790491127619331315460014561875495803496499583695217066382363353846633024280242586224140587646456263076323943346184480286989652836340826398013298091745693653418366039469181062243050970558371844437643869909553027096057120722077263971734612778878504354925840581014314608159060694394467769016473011418513786636970143068603080026153100091946224175811495109438293886608547563070287432923069216499019843617225321013062050368458784599680108338915431645558263233104037651239153140896905483903004556583337738114921490970967740974803543696821209610803883594721048797082865909091758864406975651334476810260874941220864358588206155180220006237379311975601071775003831554911531075737435016910669257111955722892373940846048231744144898106586611047940645636043869621462279525973564637358135995081396719152158182871428098229390109328872206935890743238567175648472294962640640955077046832536504875696726786611493691812014257187996175931228892955109141774656611146567390681049639097053784085836112665153489236140912037093859579382071275630764882171461799009711224973564301043834822434748562813874272265401492596936258013153459404730686183099813846071280511746174674562728730453304008640170930029927421622604419957815819715340832147262628686939673676613892138108114571993274120145276135502895308590195957204754679977456389591733012671277969423126851936401374245358666912137212498232211921093292815258385465803473968233307397068435899248120632611356112086296529800889918350349055615755647981335299543072189380053693006907652906426345137703975385115892195493467424123346120165799156277993546661158239051613132174552590124603984067921727592646125942518450547872365755324244998095529249490675287746346997001531154208856339591835682494831088107344240743262867312579985847592915112249199102590212604452891236918485630364332615064945611896862739472682995650379796359260430246073375467201747136542436160217896311106726771991259193894102047662569015794260451660031395954239330009604892371504908676791298958496959734782103204483012876831128322151069211331779938243647314969779145578191239052110203021483058110675859209754316818996845680491912769350592285250842812830810274157820959438160663046842047128602952261750012473958174263905359464371461335238787875261154439073831975582340694254626653844145409348871744822420700277038665328660837939687804766438840883356620636102066079629332814966629009918731141665587744731083820128581866408109126658761941686935142765417491668601263596952956614664713110156016581224546887852105380226691885426548225918507319401122515868695682878897506708572459891440902185425670565427980449390625272114413737256118353986793378949511090592631974871272701747810903550347361302062799279250073843114973393196959596696265284853818284629253148567144060219874152188908522923371252912423337738036752436069217871747770208143116248072510129691306625635657228912584526968709923809561794460081177049015655607964944432126498422369319007291577347403678904426161386750650803870709200094851756901392874990411970589432420919509422544734747744393322635161704196341892386482948951040886490050222957756332593670386875674591122279290062902195487911036001466895104268117221898431848002735457761438503352149091271151162465737492086891497829325477111432790947372241462548101389306851053015086465835486792672871077966259836423685272300247264041290686706117668416518029771551227109984539349410676591984775818919546417565589285456734294256154288611959513909331901678155690984079177937354908875798923125684511312202075567825926892273737838356741876286894141118473725066324566559150293177301437225310030582413656270220833618213841291416733468526116508249145691963981644648443356630469533128880515825563714231121197967881516947608598712821444630608605450384085949900767253993517455148682282067916485981179190176842711699776834731657241519831922826561128424008034452272045568543530584042280583198861981809749192603526023948414950987231946256604086834998142462561766250563372183768919412814835095167477053898851443955602694163971467865908573014913292820809292953881832340369420802177734333602199918867715940746699098289672050670833080633609415675858318521644039809669870979549795453538805537527750369857396926558579275460841140761674428015740535080719228778883180423558725977458331738803952415781353857775158073475645103339490087433790159902791814860887303681774569900833843314048288282180855200416305853059249505142422723991792093010318872408380003500957239353311828043613465470147908281351371358488451184889335524216335049451892125109409923205497945358460824001283640489384207631453557041674737827168610685935166328133819915379591155584103508773842874565833009128736922944279762288009043590351320239620695714572112098177360342123035603886747164552205927379844618983099990607399901399979571323811206323162628110379507341346122631464581485979441104787264029496395462825096418433973067732791947867735442674185442299098394841218097377805454319818396359164950586395358071356596188505650796949742459741195107608615540003935489590778138666002765546624840589610960714592373306477469115255051902626837976198942589043992980057785951031554046020211672711631373860053152214937192141975883872535752281227906805970878935470533380188967665492707989053309234530576960498838839743365506951982196263878017743302526119781863754910642888395513061905914548822859848258798575064630161499594597610296397025208534815069465040091588249303306049438400397148638977679216307134118105871823868108677170627363022801048214676246110737220431186381749273644808901007744654013294903243751042297269239894994015513814221768070063727158324558291763356918763189785569654831963088857474084906364670300451268634608945528218252936343208839291755862376298859933105730198478589661226711041945887300462429612447199716816052606676370547792418161717838474477831692036452872322012390556229047121002027249822860030604486717150193434476749728011047794163623017162996649595711990073973750193887911450317975277451317479701296149161771070188023458882138751400150149825873053648504299566938638193182033767411198017258209728812554232429606670796505696021701215715638157125148250115425101125556697009739642324381671561572866801721057845752271215450682646543465463440685126064162300951422517044057970506576439460502729988618720801406824324999047983156056301061149078414911298425980446089568626706594004861170815703399813446861034925765613212572581842849594312713951085524293571486881246735724065971299184750044238355749810896395727901605983653444030309047356492292278258464443568805637364575855523838800921247001763343717249719449335674016859198077139833994752676013123917199707177534356372026312082983887363077447048991355020055240057897589419023600689998346132637885153382354224205225405227758438199258839477739102931577620728398339956005249848352790642392076109575364000945505672352608086996139442810156214509850583298974323152072590358387548719394456598634708347068505015588469858140244112443357705970751590972621033925394827641217987410463018275589141563025604136684575113593361193326533560412202215174065116375299400681129767666266336561363403769604502606970184446292858673304623099530167955338891143215827955257748201762618401071505844765353752857640809588637629428999374008115302331694000208453176597140521287452677942672287343494211552695903484757227216220815525742774358267541646007479334502093074813106160723028206406227643361632056813221083528050536922878760147576325139661382472182496829206824910851981007667421150776392284668442286755447522253213266201422447304128154841006676150897442163490906146007442265629629424431970735928953824401104776507958816678258234282008923508344746236931968441863889670351630986467197369276757621137389105811226637233050687158974236752485153370821662667647241418730260431289927319737944385824239099624381682215252549647043404808860650124418308568150193063185087829211468071016999796828631770920539901713121028509140486888052594024460900021332447161147922941276393372588689640229765182279198936483669526254095132511864925419167410052245542646836305764560029385040200532460889421910232644040190960073721673548708102157269919258164564240360500365813059433548659294378664274950358237929759033861467228079263257159598533037922420572981734077559547877214201251077222917274195395717497678527197423659103516547960801450251982809918081553039362794383831526514728103693353570826495597905828237570347371798933277273633752741153264003378315564923018622081402340194181397861668368521264723469723071346139364629743484650536281646468479417654441936543981395444699869088779171296499069579109924861928120511320814535758212321484498440132812534080398883573515375889282677988581373297790183919076079725931508265053882512335043748577589381201123254823343861497151564826698816101633780159295782564214626580786781890980078863870619075868443521621182116639753613427089310707046868846943184834226957175884274608594907884701860892989167744105778153643255185553303233922574981230141379170640082501761016710477407215962857511971377977130136266416261028657364302895985514905101220275278705595079301189483035958170782517874411518435527699576821397377055108678852261352123590432632773606231677811822991477374133954198528839666715419458818416844228060833308419524131496483089562360237493430503269287569490470672552838234462662614264804050324557116580157971646502330913013529943907258722445342233749658899006577817895329448803150630846873182622608638581336189679612689167115575650855847940466292068427331671211100274803147012375985451847810231219329322206721398902658950427715873735074111681676947184559965004954825923335015331802786200273143452147732182075196164645517020356416121559805907521813606655437255214577044974080082252779035673761431182765712810050558976483944744883961816627544059149131149469700885198266401255228617783948728742478066086832309804113299587087603759573979932135754386658663936409214386055451739181115123599568511697215735263436615349246143692472239265087416473207972996266149310718706009718911521673584860990885137177057339472301905711444195454273076670525435873434831235792026889064738604420037924581342310286147148600990161986533627684890696609405609756413200925921269670681607845969918783586666687908181661856920097390776694169021778520026024399851339377333136935909519779971066481035896074909090646553566226857521665417572575583786524458373778037526082684218146422683979410710035646643657957977113782350809562988575193987190640932695686775060306078908390568498557138968118104254028452884570207193441863261168863519804565470124686912823681930436146262374762099708812551190497935196477678149300723155446526384104849477607434022043233008634224171484330332613304510660454458412619228919968022128477725458885978862646242796658843566185827420292903519220752678511236414657226674018782769403581744771393482375226795041354801724702463666651477205133545927756855175569718528267589276273908968231989576791081991336027694525436404902165144087587155897892808295418721198471184837539194968199355695763717737211116586535805954964047036836298919366753038975961354266381021548089304527979076353626088822151212659861276441942254678360969463764061093668666319442069168837657168074882448986842331735580738451271972436647140282536639230251098705097835415822348465993050419334888538555155557164099096187083544673602413722456184966231777028854268354181914428199102410373101251098142669773775094275299960906470189063941048769156523553448450294526368151712584788558663344031633726566534070731168424461868532921834629651302478217326890619955380739226241931951100411647508935051643621486693024667381408029360031373647419071077048960697460337722089697138559922936253951061396746518287788868175468490784852848351777031720814376539700671160199080800344409560247238367387047728608317357298788876324623621215159768028299441055880571417267651204139181763265413652883256797938972465424744788193205375919865052704542757190377252474368346280821125521584864646523539664317425000132792341771620221502284824914363189077494512469837617381322520236439069766855201318245768928802757106709304446275438982071187420007873857283496228162775736457146367485714241168744862721289294390690096830865245847620615467204385545715102437443817556449496743024258327439323996893008302257383917921242788599467828304224112830737932737366165129023033107567881481491376163456333425057389751396200908762453609382016346268134427387143599791195874121818673254691625613262309828423178662849039579749585953749673704551018426857256691539848844883779399710721035059203586356846441971410110975580293514532080650425932686044927665442276828293185855051967559009707861480744689094338688352898854026742268364327678387017713610559141229308541931008633573311027323933819803556676441458825241154527937121210310034023897384910610921450536945708814116722276067960403033400033425188028376638924798672377734098376202381355173420502760588276966597052846334305664100919581016237472939889431795109000091149658481061759048747778773897402980244570714767507607210189406004852374473038672799242623375568474072855503381088114114290880067492922119672918089885430234292357684731972434799559245572046542920586430446637798983409521833237678213613691812424369163514341465240761880267888681133490904948725908291241857968568770919561911244756256165741584190727917993782629654016975328442321597469289210142496445145482879513780711559108453001633621777606649200465672696502450388570518977300991869298983127879576345479395727968281360915537417016904561132946328892252566114965928201649218055049789486986555693226531724735981898259494127432403984248706668699488657449522859312561174585412663339503038659562364224506277950844378344762308872029646458149889293839531804749996156507519111293350402082738355244018905406143948023022750025868985812682245129466666693708691802000534983946410883738885572728119867150021340906140811096428205715029106171093114557905415462221241723274456975149189108376594637211659783027923542840066538599404947720038475484540701473024911838457760110255226636342173656025444193784351766959290687310932612435263219860615233002366022327647373431084399126765744784094393808142539914757603580484814261755918351219531095951893564206128785735794275810127773772032014431679143277952270779827321770776238378521141744293004879658845620549601720768495416616194843740724803059486907922176453623570041844427716347450924850556754333175770481072562985293099663725958475237322648799904514595817302423449939570818794128368012797138964930354415605843000174178258970370635921541202100817031597991305400082096800650676783502496401845552060448567481748557080609901681847836499911890397632259893506393755600833088144275548455010418899877658945292140273694998556289007458471590533887803115200923701469994475568130522333130659937057691101687376732809534793689114157287697919713505404606401854713544757863330674222183519640074265329663486338567821585947716167928869746461822206780812124139144617880639562712024056714862567112784911541156393825837133479383020264715573702582201584517536141365467487270018610335425569096169053732400837475761026028604606018490273799360181383691408915348089811847037746841987370864185967846245803682647365004122824127625850790261420530732506115563148949266278424565849545755133493031045967122225406308381009416110885551989084731658480692588236905839509630239972674595358428792947706690707120203008055762386479461688641818620155910922855466947420617262282733032270454850233109226799977127554759521968481678905596322186676394341777528697176116171026950840275342791618667433170318634710445442887558078963914627887537367525451272724408792747684421342949503625104259101049443675511962867401213420326082968755014894339661926849118634099193627721237673672295679242486156953868866013037305171800363369352665040900658040086955544820791994672317543866515891877847118634556163325103332441621997971032312536782751620666861982186384421214424086346796426371358142368952168435619421788053033409334584798178241480226909534562995427428524706068936566537356588744297364867021046831504929316179812782659800085280035843235769555890693443104296641543531905539958095047413895548048933023543896387502710070830536305796364129970060064464792192602989615785656363618478865631584302033106838141653043316472154635976266840933584574134452415616992877395082977766626837813330247961502914901918674130245574514180702756513890548817652692730863700575817740477883487426086331075537385944936218237841584049948118337608910902773517802356027847049800614005180132595395445012537104624668661439939648489269211442122675673310670189347433451678942894314640118688726069307179046173042271164146933972579908134273741892957885287885126619054245853192949268706329853799427214830062608075679134447074386930090306788245940282797132855812467796205316993593701542634179358362707918902428517443173002562416902351199065640756339799978571424030928445756644377439904039111847263839874529997129980118846972918690813539314013983200839304710204825897466618148201968071540196188567692149102866720135732090209537715271588183190050031061596147580101343006440075201046216985976603148000726447758090159208967293003138718996074592026811292941447121173509098164153224297411534158322094475051774440291584741245193658299887745996743347631403225255017521412043898306444074905258884140463058725272569690022282930528434694776839011425876179132260787779229326260100279440570604341872243264973918330896731970736451061986349934072590238414398099693245414739019298269523045266107261880543750590743247729922747351569590244578902833216198915805472388738452199833377341264755738588420208519861574199073820168584739224692804628559768740612223964165971600565090194395786778899058689814175969767106013304236190762447972318002353682264027759022810606939112269152544501628834949194449280032889916312316769726506264839592904047697037417107292216603637308814363628630459456693997001793030561748140399265124131806233489251679223368133254552732041050551600071191580698660957319042303611666414069898383175823993468711026352667823439577765299881873553705991658572603414960151250779308889165423044866279281507082768173320522061966014197044599012821726540134574116709441032519756437434947930384128400274590787108483173257498529530068172044271757747852963313628635363912814286243193870971201809808704688713864270414520413031993455342507952627127721997622036760384282046546190289092178527427085294374360218665742737123551466223213778918946166302117475162104202793284878098745371322221860473882177518053966773610267443051786159788467723578805336731483870540604475066540425962382360930008385881712496426299852979125738080207322231866469487718080482178506798729934735652858641053764370692293085234813331721938982474383550983976666514629643190989788420954679879263295503147436025930870998175320121127869238580479089083049702852264328769315531427480329467769299452979900082887657333364835240504179248918271035923235863924225060995987535992524207070961728336526619508118415022305327498879714449003621117440003499745537300388599384685790198828468355698554302683203348390069279150982937112369285515095779403916239918857948998259630207109096093849243888749398090312435295042919078736636158333353312003705794768748796228055212835322335148538774461610705437832142086806618682098719195433860710027864883403041062846168260286766325953537922730804784375021430053998182651197870055236708115246545632604233471342533949676444842795343006892259577596936945251267570035795787052003618474611505583856234238137539558730600171340001293459389916959385978641968851411018850210640689464152858203274414149755490844918041408436250957809793149197599332464176075960796340911519526988884281820360646062927155715326483485731340556770925529212570987195259070522092859035613162774223770579404032789911756301419791880079204288068187766229230091963244477641496023356306747667020407042579873655572150189232952476739167022030934691705298855515659110617784741914910778756810845407824347541789154826854107515989563102911477816515781131895468338813830599527482489363064527351388370923817224630429751021228246108259484858967462012344385605983615167448083322936191413919838181778457262272816971017320224305836438056008104597965311559033669855728345635891252015608470064379246513663321876454922219841772248948586354017859496248307638010493196637698499041010568381829766985592796829021905225297352749659403442873606622735895308740805558906945983567819711592076768321519329509755548740500113593814047477916919112968978305270922732614705556734488024277067567111781679110065641893187434901102036696891750462970710194190934724776519662829596515590405839202686058174439033559568746195144596455534029530292105545643000846009169462628221973257233723471098545704314467698437224538458763288387951254600808123962821359290745159609542670832852799235068535875419147533929336352168769547147861327049874681307988488053467922436082052050979940585722689353014648109127418762570784443978351951172192149041357065449477349006482875072980472284467938618887220978020377564778744818509879504686082948767704227571615439726314045887630490373167530806252777877080581118077375087396156943195445858918775368634979444292169137442892571255776377982079573217354676985010289706414289276258040848288442888852779502159487764988426145244089991981306590391032259620949455030433419631990717619558349558813332657387325111271167734827873482789151360024370543090702921389629903959700233349680140781511933235453071064252902014071282633863706854462588573016405982108617442439898536752585623583574171717860308004993343961607836146463850868848081006809359459936535767072319236631958134655637259277071268117378081670437997789540768974910486259412186130524600155722282563781971323211870800754973720621411414183203319090573504156198307453286539373179149654506003510238155490551019837081432555418355764788815679167030228314657274746944357444467911740113010274799763574100634139075529547026733790358023518374700970152985433013801972084502582793980552235149586946377447705353740720151569134854270941286893759563428292061428500336422156454336541947207027337578832769016449237666935779170056572343849388952083661677123696233108338633516944809849337094447833310122163561818875625217109720700414081633246766813221597776651774980782387320582525592009139029860866075829652039550039342453257688281309537772809702651344781282959342317356145134253180356673362198443377885361708255855282361185025901398686423258445466621577704442492222507955115034571033706820229629708011019049010257357573720650047590339455745976945039728406675207831597376597222601736904373266059048084473746442039696684319054136729504910935210691423555872483721200827183413357165604410450091726626769668611444852123670724086046423501002911715911731643127270454411714210511053466658948382828186973520906380326046467983306694350824977977394248483941034010386934192110051402985155146307108428628468292911589785833563850527539378635286379156587440356385959580333777014950129697163645070328919496761960341829048997799993770715444398274575387625958235710856650503574294660190854523223749846736147898469415272443835077536803962009012299916378682959097803306067501308899033960061023021883933911698609705181324431685013639139507476150618709343792310140860458329423618279193017006931944111935292749958110987030829696877213343075846172845163621579213162720109566053707151165359963928082127697106364923091818540203547401371801018038687189194766099596112325265628995942585115468589262623625137914562121287449113678479745453038648642127862002479503952856286093813331674990049631389697478330480909155234096411707764452921285805003687210935971956869260532510525018487661606879174995063014889966008075215342211210106628847213828565436663548804346961617930659161481603587366571437157147304276151282120830501806422147197334288652710681717786470727697487821233164757021003640394232661574767454048963767865553301077638942103381618167398902001275565736999452823660689525311164766070455340071368958322978788575185370868591451017743081226909468815014728372897235624421491302725538871167751281828272321684137886599205536477332986322968322789541399332492967999100978953958434267329170391249553393619509762850333985661347223447586109251511741047994532605335208199195450134489604744896978920022073842466526012338489714503572432514937717988636036635106242377603876854577373803273349649614704072019428839695000383867632873434563455064327834439162033557533705031889278841020168003246826150208811562712727596581410302995941743711349751509764284650807786777657905444237679920836504732435762427233614581319418305984862656081857631161320601255602929811571075466223397920800016064491628950219614745108837687356059901724718676612722259014266590950225043535729779886395018050164199639069302531237661205708187843597561850618802450990792828674578530464392710274962601598324960178980545990265846734232651635954558906335604446293724229827271592250935637732557698744443168875391575078652162603747403878877599863112251075306600078251805410714503002084576312540949295967461579577529164039147156768132009937591204715510230009357212416203103443259121286472565773211836774368032124151573805009372663879407276595235524265067086323586132159808519753224134375191284701670819747862061574156498780047192755356651859181034897057440015243501449681229783954553994098586113669022569658076975680435194049101327415566624100865104235296657960595145438147072129344331550473201118398908466403640828122906891825270100765309062521954008194513988809344467334431474971134388989554067952597564840722363375098213137152474378476264577334941210929456128876036893290064168539609490843128143259649042558827450495941220152848368028940866689652558470951978413683307175970474440659129632758753491417888874609538493587944266889892616123444081413671540050970030061487311700380398516385973747586906564608717142098450346068946888764560373896443679816025220113410291680879071202703831102065812579335982958925455153389626764697710606987530432467825377838127296318212844051307231534066877676629831756102625166460515104439370372224941332308255127402477175344737224859028691352152708404198342377746532145565555568319357562387621530768510249598508874529715411559089582256573041496445789452616664338874825220984333675536798249410654853922801010762775045073996066196885895227258092500961292855326180786790213471022450781592814449688174487665418337462134770811104359766772831435925591355637981123912214512579999796649265702202522832718034721541144097510558016439809405872049867067567531043519079466382318822372967736122571367826393540359369482854869928673147219724833822506085843344402690802000421199891064011331217861650929241852821889687715928371756193800170763024575642609066030626700479372305134225527946561721135788020310200024219118996482222546796639609284277883045157550711965256082867677679550881773792162203072520389653614882438080790998834783785869794329758351424088387448487118949735315163609003586066883644373435074371061236233770160124434899693176563491196668525476571186973077664620728784112361217166046864459466369395528222691734815141062669327831332433166517797737026219102575923261936150186795538074353427369902342886628801978919473483429321864031576784933853562032339579586325539539948491090762143543777948565742495257105807583933644938262429287718056909454745917852758752892750528828238888663130236841708103269838664730161570994741429851863794185321834911308587958984649818181339330539226700234179864466631363986589831644284372671333998060081043312752871978412479235781319897376994120020135792323454351684227324299401558432279765226165387945721740466613500469728901384535909188198766468605575931280474497284883637197860055052238627683843116058449338586286003164825595733514085150305458801404145059595430299418126325375443238255081570935776893422821276289914065950197111318232016826144557843811320524937002973528624520417440105561623002893885828033281840678473020985005268476764428541168381471992489495011499496377794083495958212818973522837918105050494439323011491892634649429301923849795431166591177799109111343185181422718077215142513644437633708920977991067830776281640107964791818504754203230775524634729913149305073768531191628124265002197250499519087664042149408405918613462772006852868944123267658818482629512270332462550137857735798844129757133292084174245910729800791437225114625434351647410623060688751613376466583255895262415980537244279274915003451219129388943323757131650231876741911251175932721310795108965543183523636711816745473822094711268742676182482819284073109212145237377542648089078890964049929532568908406879940115538690263160506396965668595353131597400669989525904138625503416521327673392702891720533961096620586458140580881731610903785722348689202537299037865121080148440694994698388960725469163219011043722310691752913453713161325380265956964010336896857810464182593425631307180083725385984354963935785504550516116310416056106743473844266749489488939252673787714566494172097030566458956165892162306962664102632988651003456428761715250252160748262004118141054770636938425846853219799722924583425094895995582387144330116863662708195805188602237885923045479909321034539419727632883367849097283226326503896380981663544912201397954360048319925041704495015102971804696350507608596001919488222734676222396003255052190512329345865900546393395916817961950761736385216483883188199050105601067767859769017317995520228100027744077650295515211610445220784862056202570623368187719357087732840843986612877693970327183541616832152554642735016876339806072249776557672539115771512826455476155271466484069579845185248597851828518935232546571422945020510999268717517698308751888764255698669727433648199655856687749475084581831029095390007655495135973881262240534487359669768539195265605828484459989264461523518130989716859431796881777639484045026549762320231876505192081984301086205838467187605102131103949144316949907850641772646454796721890973210562644702845293181644017562924337222098810413809566212974238216801603846188028141305727816499354090329024569135052958694332549986486250993237630583354287762934767006418213477421279360221923757267105899697983398571319536763425467262601156456695495287892151718392640009912415116905638630673059811814144283380148177831435485869857191187089773224006117792682417175308577502321950824019847925925420471011195035574931807624015173038369775056936975166410606455923505024081892863203733490353262586327956070085177681982175630427812226931770953922310918288679363876571671619835416274763566937403758208230593605775168791943972502768192348342763241119786033573288882835020829838717966050805736850181780250045349983901890734059872082510963801242145920297315921324858398191341579747841142550058304074568904556941035263122274886115247604190879995997977199179739572401942993534210793014399544852012784970923865212769667046384836838142098167191693636448260865141213685961954469158111230113489757003797476307131325787222665784338989080400181961462528728499852323372345682775416911940856515563567980833154207718145815898085778187834072465524566166346335972090043687830945744700851388820769301812195577444579299130652480642020732517665695731046634158484113801456759240910040022044489126324091320333693642163779502457970784984830562999890064571458520411630522239154778258763723781165344111932972760469428807985367640869690798364794877881419542726182374935670651927771084563458983334542550744757997185914556448253757367009260006812479969499441614987894456089557372113463867656544957453056438061987591511995894734413846162676978985020973412329383545490673445711487533879234234407352858528121105403274279615825614764271270544960297479491100578910422982019166922275464004288424108652938315325733257452883171422846075558355314047233686418906754622857320233176964649317879871390311692479487291883968119329760070972192773579053787408474521995084724302159278358307139028327499881190836430689255845917286187138709121385505314201164534413299343979910916631303136863885388832962154963437916258337425279399371479095884092610321358707422711228445340343159925580215824769159598470286067361786178931631473605508212630509006408020047779570895927856370733616605180039041501198038001309556811071008103404657605380969602269767656195046705633179902044510504136800200309366704559196085201788926664854173915439904204514278949989190140257675005990600845729573918461807824512672641820051192330721181177585374409492592193600323590314328299113696816011910806512420794144451669097940205299869145048725895863018838389301616908689472973392049801051409482596809246722177904868636394203035286127460702805732789368976724272919935206153789247939836646021687252974681063710107476238904456797378875184650793286202283836358301151808556756568893709750234261857990817076971721260212509337855422630284178521213488015878646218348382733173153886648377651493316592640105330849669798780864511185814457617915302986263967556408866851270420457847504902410028892937238166964517323230153393500624936283578970275040581284266989407247918297283321480492697931726037931624532861399265398489448321782398226688839290271940890612907019490925610208794369825091072805259534756431648999345945877324926678821301529807517464989672716448486000397039136302935019000446580308171061678494455045368017292859239490130390469050399978075679326373228915592996466251816349386014971153876502607748659415564604411339038596977416847122398288798652414113444617442607745848445684389246282636934649663130530070500924028895990569701508446077467238921765986253207643396551532566930793233117309350197995981857760956336835888025550984827082992625439873179411840219956903930262579324114473946311240501243661227438624752237514220082150234031034496838999606581804449928334938412237093280756603785200006708025835659243651886710092438971565287222701933149449536162227940531157374310149260023851870533071983139762826150711591193673464446430665023646240818497077102680352143461346886329187258205315056816844335978025525015276246809232655909314688869540184347785586289315534871386315645988821290700596183920534997456853328997191116176303279402449125248309810982472621135393765605354490353281249613499285875343090137958693210730914233929954266654387443413576037347574019852010108583669183582080356818813359060795054259565685886258188057161905403904614058418793492596493727705682970131716009004714014049045263830534778560450001029718366413400087292215014164834469352824232461750773071661630567094085539199206796474598152278093902094341583049779395611708402210975275101209174261356835252509272881349223319783004685215600872927849765142745370192400546569210995893114367322668391707541431714287278375469132938883740282942614927198343572053188544054249528915535191527391221262495652996930929939919367579644700709935363292804411712570395017784268778879088467394750705014371592728021752417318587714901896430437746221925626712310619343404145869596317492016021675003065736171329909794238611366004748988728446615268622751610629366353215275067935078895163040177574962422793308081584813142809060312791573647566955998651657340136977842545699613403263144524390335631254883274589623182318116479430766345311174277885178714132168700129326109524632730949233896087848634400974382527530068455846046636193681091288251636583252354727504568500094746821729478810549449505327414352958240115691380514204342316423619510038818567648101869584849239851243468407469214063255948194698158851869103286038927979738785080444086417540794137971181943437976979745152252091056549490418028534486897131827199616194530092689088887193079301125171067307731061411449964922715954893084073130829518528157850134374816806163766051189837175867919780869878671081755982235934106324383829396151342651398279166132349014299864741650078678389427866479298017754012393847615302811357436826033955364731312759103552145944218586089143700717158699605705319657885478886558926926039242299772759042670188521420488021710334924918887100053573012531379560356315196078978036701147136941816714171215635126593145734556391554697796238514762524078036867844280775812409445311282536652269086008717052080439034223711531758714196519099594347116289364963716769600432172214542674775994025814068195798811875981622532696070036523931833449848233135042045807482774819806013778506089134771068222814100698801937846701222557681877016339915741441789195039199260492620904476744079899548216376650179495252652505838947773906186743962897174348941510469302611299681049310473105858269018461129565223313702546784821787856748261552308689351330655731283408202489862159173446582207156489956471514188992364252471798572422561702966242174880214711833655752882410389998386344399044923858144748570276869031821882787240002541630952997962991528338222360063183388157004178053230539194796051663538274601319864135651898562272889448991596000440551916495249159603434782840592433432301278990674029416491429328346082881839573917268205098679198032164294778577331104892174782162019645573320699417650916583861717335076153826418800523966042909149219785940336256869278351300772173113177134940603090305248842534867885220112354311299975590948497911799961912220307259925796911447820356127431881916243522330932024986010342213564713052310731705413312759077165103100786251702594230961465756402416870053421941952847389354810643730727723123802990282907823346302152452712195643623966990481762016841283142976134248789609147120070982108975791867350708109684378558262759909866427616046486647964651474240571440028814875060032651863895360715777229498413216755693618467418077039555263380549087044189186852217519710846082683395661699318580356735174114344265592729719289072078302124078476764504407359018921509334081609852503930555786185515997305417850819474725694635792736468169780315682059340382570957780649111744066718580831057629263329682315059949844525540842760287910651988392667100089996821531401259509910047910382160718291301763247596017878951443792379211334187530225083077541538865824223562356853353099071366876256240986497537996119970938756830656426322450759282799871356367826271888209007600448378146042240246645984426892452174594340035060107776551458788410211644351030701340692890705254936371539249707902399105339291496418177789606337832003213158287831780645829719323659532536357489042351141036310068957343350200524373357136301447433169699116427827288390700237913301178730373773343437317692224713211690141843804184198636182065430915244227392547236799137585173405032231386058223844944948929572753200966190944218395344787857857869217650674192562568300870454635046291366390444384354003090264885647068606446578985934540834309124363368884043611221233958927705037157238494369710504837764314323104201113449300673205363899882267743285391354808532917850539699724352792690391582706897344634342086985008194527598216631365860339410547669961846599770462054278497933705441052271163508258073690522615515589087421338780714627302563003901900846403106314617054484628590687383336647278047796287497456819815460975083864239831792171829543888712545756184762255911914200787252578367668584459143843497767479614395312390513159299069019702111104680169623622395523180599165826006064872566593055270936030200706571843261119909018286931793494118069251774609393600325847373771834112725093203155224086407551063584305235198821291213857301620897506394187277650294498830661117079327974160165094787773607527396598042983304821311959326007070525528241169309024843539158399208488602403718215202194098630574613952475323364586168122569527756199236498903756359639016692176030529150308092739772204779702818608071021164790189834136115173951881219161331411970783668106344768629418213885784426210928371402715997167450746750665712782414671328660600122421117139923570515832378208171461047879297515611260705855660293884907597157624192070740544486499170522076105124378333245005534544931806272254773646126426859195322510123958753800467075424647433935004011106198045992634724643442853401408713881419014085982444904679414114886729434684677881042247056544610124417683216189212564015330856007212291166991402815986404135587408684197828235605160005754533063058410009631195277651570746991895711505473399743565081646172990736223030032453630456906869994129890067868724330925986618249293051366614754241058686656093739780679939443637075141754516107844395105010340275025159581186996686868709448852790835786811908539921643850624433984643318906284877598979721750567282206706004377749706425695938240453533669721006979013901308790220644052273165923144500304086893773842730894249204728126740880517050868935015984240613001607885776866230054026794554640965527675941975485250973949043684561085555096865237066422114738257149842270839903434224585957423352176928606197845065409081647110941691153651569667722610063500096805900432746151305486483330777764839717696374932751157337564027196231418564029929844111652001843586920702064824397700549908931265803612211066698381787380743494646991105821585081352753099957689333735045222870603578958141030302947991820337973927520718297461110121249517313776306965884663153500563666529922888243307373462217431974940303398875838456856974155912147952471078833464174447160059101060402648766044865157083494038726409819554762740805393491369006684551304781155995580732033347311769152666435451635726573123687399752167601719342522732128812898346608594674962908071609181723810863488665562157325464254718128945376176882291454370225546428213184399461131519281819153853972321764426556985518021461632972737466397533573587959092969525522439557115709507581334931758063946948213853981697522749531737755342191691663066569182419763797569394806025380406429537471607523304940476737654630089014782803664091520444050491462722961024694832541315376218176519870832193364387767095075641083120381169430844350722251165960187820876298107459559970213620413630384425648006863380927973670786964646649964483251601322939340651619088640582418920568123645766818756411681693299122678653225941310828570566148232719249058199944348253714091342570551253789130950012398098656153954317768708425770543000379338790663255483832684899032352253202003186158694301443919620800957157767270395763683776150888880982474354236114899185006322821651921727096434152564169200799923689061967303425701678944793931051570569556161511646851067826346033981068712573842504212518761287844646028784303350448064058929765276916267956274422811494391103371379167034767927851785413581606479433160295168615301212205413045429397905672743709954238257940023154367970092783298077311211261557107968891983894926844592224773635618392034000405041805119237505303110520596689815425409516421268287988378151990505630278257543943397582660446975622459552623400576655110770294848702415732156500519520168951834971940290237211562906986306574253807020558596443417470608905426646447724351383922764798560512409401490257676369335844338742327719250325361320814723004414639607983530273996075160362892394330409706698877506797203887146892974147960835991490180533499128489941422835172790326122707470525615510447121287469836504003160784473081842544617799810619261130940152552592078454384303032043035802174950687383413417512477095642707558591556648431227981685080454769263885151290590327892546162761260271368395312096565842564678341300781338539292612373039902701056545958328693957088422147046571285334755252969227968299763593023468559141693894224338106679583743370774213542084186912364808912037318055718935187246383022246276246526450606288477443782113280831736092838994321950962691545802460739478630115115732948555768199820689605749740207156451194809938725220420403724884213695517628676893206735404712575096927027224091675158088727659264011210295041986857395150804140809748971942324414132415815202015855658571025193278549024690494898200171010827724947654512186525181498436975392689821275005282522457930722931425405600056340572386211195219272799099016277685027308570867176508469502782975024816030348137366120898767326631597479104421933069023174056491364252367386118476723794527081981803144218014949015097865292329994730468003497681717597374716504943856051953341620356085674559794726278403587501540192468679200158762205160790795854356419079419455478465399238772540133354457310329657187949866567349454761897951490724261696482465741961976771756579667591491497841913198375244300370991250747579973665122455840775261593376649179245114067821559133920634545216451724653624477460827186769055403776242274440280661489243519462357914393696366702370526851522265603369088931291818196930440751813338616359136779966776523947445396162846469245780522708612125783424266691478302231043482212772490235973656096351118043946506558190337603102900891172846615338049999666325549072159932884093563810998532755858073701725170800396043575185583297612003685469270883731543392281793087940147245105267540454301036972244758617342940342637939113534073264747911910337685530206525712712300277855267157081341740291331530465006435302958881436606050493121330108545918078415448777092319563467360062758939108428990407125002105395272417354803943603006022232197344422222276151640702329008546099782672860788315830450897649267172718104538825326547671294005991418697078934491556725733647645636934811264223045140566653686875933833895103145246574764264079140393123103773222788112480654591384130880627649505647147222755699193671793065397089714323383707486794600344627170576192399254985464247622935633738908402661682361787857326938204631649156006234733435400704180330129379780925770342391845451322326554763841168908580857550902970827337958871479339302548755534149467233307469429757682729570377056034959069310761831307354269136537907044554760445703155733274268561431777834420856986228464193915298901949600256210520160430469668809890936802389506657096089452639079577135301341290184585946409728350771588563129317876025569346237841885921727552542527533593787907646403402594910491159706845304831463572690042833774703284524866634917278260431878320722571747521444890808454721496345609274432625313093351291117744439580451449433050431051015104794788588382882220035002962540228325747439802946851885276676779935421929058815333013565449825291706483443591507557606407960299893014224118401970026949628555360774544112986429562245350748220237208895380484264458196969897695155996147881733968105012454304559066498406183553186501601185578774280372756725058890363022592484634240903751478171507121985091696770968040827429135324209043792357410559794281437224520708916073845155494242610608300973703803560282382539354104311683796453346094123675619325942349610364645262850092167537062079080106161037829338841627577089760006092036605371406683075127273460068248578670204042131890623031897994954704942737483495534761961636566399678761374064947260581176082289285584345194604428064447304316986323767197108884169281512942709038200052809411308476757671891172513438487703519533556462263138018714442843134360170319817434352564127036775494710569908487354806176625742660142154919686946376854087465758269614674137861880248975545938039351627606448292870488211073478887957299097883492230244271233966495623000172417614466327154311789763579223670722434581971942633111630239934249360600194442042672003113117418142416502541683814315818732206459578813248809764459450095469121990521972941863942226572408080811195917844509128143559992869773556708450159339837845362102541007334702726373216530205427604485710565941716537296326432052635297821162911285719974569276632646291258354799967213198660276738763060467525404399669256240119394349792656461858364529783180205919240232003337881589355806354524872689290561958595130022242737885890304314644781907746800445500953736314833734280462064449160810381222734854686940650286911517411314449190255186815188476376540479048341854523676253947056952510198581045675016126327757593378525804692052466570910855122869931280229978924994589468037338409946017342173550742295783233934602672226284370766114009856183183457496721821259282519240408010610114540011249817393501195739520828563653155249671110879343709866497642321355533305007511241741611305419280504770377763109611625263276813863315114485065908310159642874095856541253937078403987316043108474807131805901695258409563030731904429708806513381917933944520220561963340751277286589369246256781444910898566324953120901567084115896521320404575608248037779701042141525388169063298167560306787097118727065399648981623702250943952773907291256666335113281623141778337531579791957683738814749068289421043086779569878681354090041038439781082325898439414085927090795302678384276463849555961606328657984646811432803788444140975645487806189871604226859907850974368041232296227027563846911426318348366889612305571207465390495297996631119422768293775844876553669459760440698468363599249163619062817902784200672551673245044588564744286272351520307304202313189943465456518270310851093805048346138535432351550171900239389388386259933313394966109307317693579129631886909501797339329821754952482334910488114409865558664094083104189261463667690937663598402554611699711172937795973829761453392805950397064367121305128953301605958333721646128743879381610983174815926280791831851456048363405046856519703986483284885211296845842412983864500481765100503436084010565373924114151762660846409143775468127000814921794792422745370993539397214100266663343094176976918102851725602813013523005505121441547335733022235183486598569059118967738560788500125799477815852863230601979545067069149517243861895393460450204229391060942539600992127113423690943284293026796203330233135111074117145943227653270264267971430378919637148779293306770235589228370356581101453515496569313151291722181031103322236562899744848436622865814667897136582897672157716589934568932076961252347857151134408947241691756568978496258557990696827014281942021660623873752254108041061213023899200548736865181076913313375754230412937153160121590184797334523090686156217574657747214492156184695262257412702708244321472825172674291230450593079708880005748716059573891469440950359102028438965436205566178615629764905266062702993569148076671504587898212719747062519580649865315508149503949510929055409963949772624158695527987759710750136918986801512789843796297837173106540808130405299226049163474273734029049096613844105372444217944244413283596019544656357819845758879559271354523940531042733908686825990241368169964816210901742762277299694500304935495212926442539466185638581699681461803629376739612601353976922110287655595014034327309537022819839703633829258885069910430767728516880662635007466574522180456869091533941872421337631265029252293726828870686423487139250282779457216138253616086912874698158634734099159637048364181956200170275501576342294815094997888904002809214027728590951707211854187894566122755573483549465840179017929688241769081681268197297302710475639527622763993099757296994703600497606649118654001572193119986864457373768935782912481435741307885317189434127532513178002967683288183493270555005977497168962984052136886341611572514337028726946653745529186260867646938306028630204028047639635356075023100200065757978521810635704280236374729358759037238333045042024532628419666802973854876340106381365693588858704252274005623434948849280145907991188160205216037472552816667367514086059995460211134242267698791964080762236387503845950531098735940462829989739156971351663349943713079990107672860653915546368661886889406152340921644966777432609087906392177656122318947781842169504982170714246610459843399487456949128035035176877982614131338443992621693953243188342980460918663896725747759619228738929607065700670827196364968000859094125775253884089554076550867734426932524432125464923694398813555269362673582472009581176278680191758723343532218980340542993454917707550015902822589874776680251830162048767253798849391310937062290165350587763045655819735623916383734439636123103968727511654776744095140058087532087504368705118718823583842320993016881528785895615932507689393603113381993866288899143717230410502606199195891222193299877238902499690656750801870303230058778400293017636815792065143432675130954589739025892553216997598910430530467208568097560587900416710361854872110900898131757612314779528186123930095866161789940542557815511765300528858107463897330833093962952883448373355136264476605221681040820879893645679210900712794894629553558099272437076572968307934331181954534873650703478631131457446719749807056987644371779888912441300072349533244778119484283990484679543467984866251180206314638752586605793290036676941174329362901433561357051605748896005601436475781232510694309438935284490722253372042349578341013837864476942058362127154730149151262537239510044751259031350155916962504652661243994453425526692476980373683037453311554456128373600350714784911751953137278378732189163312551869603993427622222562304916037541963451153794853398051656097975117352618182804699987498094322711925978839368314306871402691939746523312955109000564866822209753354285114003225189676490709168690466975131129622733005399502762664250052672392256893108860789449121014996738459775463819324803925494953972288699917593236584742017259204759583707617814834630671416135608117342261075383045800750362513636077569357903668797614035591415333918682187127668953695252342306453015799942085276425436409523051352014290128886684365956772129900051940638950258136734463149904825917178005485135115087801176118411492270101117267887696630200069733312447633394474243617064577143953633272359886634764626023722473540243503687199514018498432301686832151388075450008596148098391174308103257606336852727754427503828026888090280231432330572787711527217718537205256924178149878025272598957104629970350435084878694560273275691674893467459958345621593093682520709261979605485611650042035380658727358575042314677402238762633656088590215081836533307591154109416577871821527226649166109622170645334435638867513628985025976955112612799366545550362110747704640062393650330507449112879457277562812661926159037029572347022610941101060256169463957929723603548037657301394931568919656215177103374785515581497896751846989174846589594462861959919079393267195356424747687154712398666550170557458506910369166317225387364482923840276839922285454476517204240281480952025071676357296424966638881420152480775040815357058008533598260487564804716609281450479884738002978977106019261312137093484721602443919577536425087921037649410200725475553388344536156608443455375402127521838007222735897307480254509503897296975230288938507792801215177410871503052759097642586839595116618354041300880870352045359336171740833821035830150544044343007843805197480966863614321933449060511538882057244738656603791830782161051084742770775263039415841885873442373315079742052964275406831167742343410993054905893595036479910280070918621112179885382189800652207795295151496712701496547129809698728601328670083573903559195054232054742954473471172894989323990137352326829816127139986982900597054378267210550763382892236700116082987137388648582025981164627733622775928516023843561812124165737176395208467561053152380972608629711798004017579788028689458380459323287287446542739298884366239288863132032746617974630059186522876856312496495415324823407979469524464259343546947954844191993914326263096811429962732627522739952355893525826403601033686510319035136936131091453383814447788709937140405486193414831133039682681103739104891141203380023277788919338201384313003086843671971703438292396909149324883430445426090607433686895843676285014042602364305402956939096129358298722631921736640700376165989873522122541551436518811995710500936334011472563477652420369275976897817299921776834190633220470087280591165004958572410665007436382623435203898550355343715941484018552868219437606909593112090729028397305074877394369265640817257443052572323342847619059664856964898337787738330276860732354319753228199763465141842759194515394022972337961896777244655577948196757881768501280707172207925394664866777230022308478687151226184666081766818829804724719494710631415906280682261295396783136086384779651838785938002110118597703754140120454063015848111068107348058101353836120042799289205481729896345255775243698222402978665676907415033913517168752518676661537805223838771859065804642063592532866707091809692512143351358293778397296722840032776697694354893312953568342077416662226150164846350028001680598067171560365224260398913468592043869236937684777848553207458714941952757499128945787214893771955167073280240410548532245330905960839123209192948391051988479491892755504130028751799041553649137401600484510044552077859680900283303906006912867984620254829009535624100163419359829298871200919961141753866816589916172913438064054799742021597137076834972718893603313585444588171908579920274968459192055585720271515721845163986529626007166750277338509316589700436683771066989411524612000585970035534494709999749193508010192345315071881621390417015519640968827207283627731119025558315440784105796599905152482206002977574895637557274198956690068482336663969625890498507651034147130441471039384123098027807672639690059624752649018643397184452889636620384943168886644120405481498043876251629300495281428381568788633005269775758466362989625076824860448175086459918444184645441689275856890663530501168951738408335290095302956684140803010230871935186066251220953032381947290750756544675971581302979962073423489365985653348665823733883253458819987973212295107782971698633596761195961013228046564245998772930461851549616616433091740905777447555217085840612690519201632213555933778407385958519041669502337983531380479262724938613209001950030345545784464480863319609919024564852879593881399437519523173362841338875290975769873897730373247185413562243564279238250216026830309056996110904236142771209349768265340978945670125701926791452725352404412760098730072349855038737804476665459271502296576130639812485209026228245577916501269999104715341186375360407486288590802770876944052817281709977908216816195538595675641632756165377017035575489815965506401342075970633676410852720522960521638017784611056831685264038568719349106897628375362742877942853143674136990189307929248683675026024181249188400759115522187860474120523069169216715123927946184587599288515351744206896663529579506469426236608577760179116531939645358028996090114065124785482808832575698735954242124073681758670663752705109295463148955622861351987856141892343043299700489810864376425726321783725239513565618269496573428486918422909093861668319800766872400050666019346804181936633451811655993979802579253298155431606941794566985002480286388233760183191617650000100187234148687880722008012783177501427598966835773568995430512083666843007159236233428470258372086422600621483782051136458647932695681859466825657607465051533303648163857150477702162834701226214641882054696786612936846472948424706312483378914071255708711033528359126575030492979585217766126427308451497759080878911586587889945262676825297553975501192125172358261613190198839851866278261430595329419668479693285426405670807410199096976582190089612916776618882197776786565352857891888617629162818719860650917129040063058335270315643524600011892391755420703023440940329837468516877461396435820935265940844618026345140510508502995731838083961137497731101669330123754781810727402399743212772372959074274744446134805953205176550460530403906348882872127212696145254141972494251896897382146689116054227266704641673650994517513385774409624086842126315119177981319771663133971841053999669095183136527054253204306160915660578643879324146936050865247537616832591941329746283883565881610656799207920190721630120211628243504758180630690504743881891518350448209811560482229678987345665294117538041895677609395970706417888926659785304969899567680614398780945638042391762338353761841602894309310849497689005751908064758534237435503018916308424051700619320627283370175188480498641420250878641612249187672062134115976761384040188745969918963361127970236337011542453177774578145704984702588242515501561971078832136712927517827906824000924063713373335695492034145271232881693014244495541584458694771399368031609268455464421473059240741698669345536789369906730427620553715312611316853083548687525530299133589045637701802689665084728512378448053560402701227386854908520271222866312406912560350653606263417147981240985189344752539577231288586753788776213050874396166387980477032767170830338628650660866665350612461944127664186889075702430500654468095199432373416401531914353989311177184081163142066583506066191435664157506217078751861655412010642436625744982908265409395812215179718240933407727900916348715667569501899473656900585225256383453699029046248268870834514356901019001176889363762832151420138207058543939400195357832473909427121041342600893944752445779534042257692031305850333210605784456978535405117881626907506641011510796178409307335731025068094048486638724512897170832422036377342332150745400990616188925870786222451811090479380424179525610060801512376509675859708591678942102404973075691660237136256958382679596730184440962142930542301413087045189329049522530534149526416968971864941963734787200562508104490739552549335006301293672189714379437302893226790381619046678203292808681017126738922645925287049509289366877588598047674011386249191324221055964714861621616198836050129368037588542615199746513691375536179061378133539014131703104578879127588771828533101203427533590229236302499330928992303470972451832254502753241311869827384958146824062784732472676994452389569880695286682781834985422198413452973698781458246378106079116811466162455797190307482121649135320171751340446511456216230922131153065257681618419647847554785942052625770544325003202774823513812803602844119321485117374835651254763862922729993680488132852628385485063513275820574555639217129242423111653608722460039499464731487021635692807153795247619926498014423512373865648999485491607080404663627800357240979945109597327266064905189460535497564923358628008239055430156724061285007608950150236090433191085650050270256076495557212352927520929994212524831828043336813399525472448716438450571424940269802729286913730761158930801143056656879397586254466822489100093136009263788400031981165641570457473370881487028384125332916960113759944271793869165700411870985476265345928933595748307239830843835617617781434570635849876769196756353417663781357866575255850270095987770729677956699209967381240328726242768147686210296233472411742841786037194616959580668280455915491762899959423294870261422231625665238808150059297161499442778811315673197221148033256541741122986154433234093665929154525544726769484475948003234898642528932164982193103595220427853640767160589310815769027416478430419651566740360206285895983082239733701879486118458439609580620799235132454205438680616228716202793998187310390546478125414131928786506167371283504057347175915176443132917900556174200186569001689631737248994455352084428558763311313826193943907327605411219417915543607018761866042140910419631971149114251124277388353342597649939618998075677221952625713649838329727435528191975889667204409707975848471859179645221253257800366898942875897008907728516968714755324869435033507438979416656724923405025767024560690947958243813264793545705306015662781514244985424141630360347883916467958053369425073509480167243858354979348630350151215042036095634564179895615107307593282458523198744219462965420583166697503680256229205581158864311018983383121741842884422371691013048867953162257398593731824117015270041217841891515726198217777533467389007107331621348793390971792009080378457374744052107546995802696038519931510813289752286533973944998309272238864643434241058423334117917370736503980808345909890385638937738447969088399442004790540160254805586497684041797039805973507286066628813574664446266656322301602610333505100636562110988404321622024975594475620693706848386458303169678452519334864862248468116628496918735948301351359753798197183428112273153737901874344774376750182577134242926294224930742287708940919817062499670457301792388204299102478979555182250629732743251215267275140267606878189359709883109897508529633679666847865702518478442813802020794498232651996082932654868120124979222557724625189861778350036748783197650041015078468440004990119834124011987906445242129435420802669781394240783345078884235069533411835203554479837892241299846198991551114383056267458587552630043017734210477518413571816839357402958013694760611160395109606190807446313243687325890949241595059302869534770394197614479371290713464876655377457795309765487944044177110433894353978087107490300240387924772021203151068623905846976029003600980675044908860214147068223249909482812216640877443080307726958904642081134488606808299575175764076422419425900647429625610060003522595812316443197356734115969497998676972412482533268122229060011909507635020252898114124583754159729213421205129193244597742757285407551548701670839871281397093524169131773973347414500005905519012906725078594556934188032865844489511668950549517785572823991579769896778520781515692011792344161633525545342500662167299439234347664070384329394388320969516856338807532390772114406840793594970287864456258601230721484698674796510792278691857946123634603347890909370904531967090248011854070471019723151514844603493847061744518486365437398997000970559019688183495739419560538888938718244705908835973985677472589521544306333215724234014296595308822952813118312299152338047639233510656598498213875974463772246475948715631877764851799322063059322850074264219247133189141317548089211487951516726502935978509616021589741291018870752663786284462059772999612816159817762822942926227866528782599707035223159968709659079981253782933752313966719886556103239644015784023046790115232909839093441140505369973895631074590205025842813061648406166957089182469678421617967660230821969815023357363189455543914046060861495036924690496729258503067495843942758194827883678025658340073868992456938229643351198704859381418658185992122798701965433380267962985474285461658146094138430698221096098906443484618894636074088764706433592334968323637126654158825186870737274228869584338461475740789092657460216858939151618804649347568247337767695434041599410435432737380821548115556278704970196864980284723625419647612905961040283845833056337603432099584423819264037150997162139817398657621480824962541000805677715375327657528251578326729779417662165500298482491117628160355680945538308484474729294636574617862941773247796367247206272937796344305057087001421409689326775871850243824568501866316898516325392648196175868374715006856837038449837444814452381163153626591349573952960217815287592849477223765533006843102465588779457919362137779080143936053081512371857741793524284079130971130289962849932405721554807326992236671881329070055442559778765789211018799209296728824157970584972155358169331668306843192167071592828215772614224433192408805879337588019906468877012097129543515411095237859291223536084876892917655389772928556203326088655418054997470809909574600311329132629265041560435080794087592011610223063619328206447711913723715771057030398336254526410995513608573394127091940700773500775011285168383343936459884467444102658389296839018601522894168283742588578654243945645305781046951270884967511238087312033488269571773407284957915878030198933982763261017041229478645889487550066949546139918388071576770204721908630714540908999717125056398131778464054309754896973655128918505640807093071359570568192115296370156795248551882429480653159031634637806095546243808037174485143277297667094870582221341046277432142181595441070201379385928996341585746842680875458925293006747760081256270227657009920998410729626929547445975279751217411189900501240247979881888240003375221462688692717681969551900446118636283252740183406627773719406889371165575945713836794887782492288369726987282195954462796761973847810200530947243943388319583563645164144408763568166811167940908785757271163865774037751620123578940651210005333145877156293251374675767439687350011479732980219754407795792908137445417621710295898408480033288793963674272109670446528444729695464245089665490926533405797437342989969563282906527817785139941585776144164253031949769620724141837464648370341630816173277629269506926323294447720436776713260283225264906484473321054397597187063575883004461154195773923968503099230744958585505803496152138362546779672277608284915685102600778909805252972768523843746519582502112714905758768285392871765532084259868575382001105590326453375681447859872144118416387860570923401086198718103776417319284263728787828531487379192070111745280948025006539003696747849914967895566168115623556146239379572377106435347038528423348050228851361314551095163254666786012203477830738702131060943374463536414038320205782103094137231221014207625701249667816818725451941984325970078957788078692513887781425109515494187524847450173054697021288091461135917819893761505667615804007741317819596336983991010254608706141170845338072203939601471726298785226921691791918379091000396431797292317638464762253209315247825154594823264811599625563495360312902403760255503758448040344777439886396644183023486903431791584218876499324360679318113133209862210283326675512580882315462599643907222341797867308023808217053560008224293562617278018012703647155673589507522123014845069813356480479163153768893248007476617134751377049526398256691718651546598852414917465102087693799234041241911155334328646772029270268714452166332870332213603750269437785336190379215319920236892841001755062097170844675298031852995509798146832385275237272712977078995792013604402082007304554253860174902433534941104474872136754483467804774708241256078292097978339865232431832853532838055515832092846484469634895914155743029215054199849506632837089732516741925431589164449996247458371183898681322298304277874617515108010145724356870370341166367064996707454005466846699696274567993060136677360437003509047421481700347073576670523989624716739177081498409978638983832790231603895432247115872363655988232077581243833651525936443301085828989054436604878010676708520786219936813379530422973967946453482475130521712769343223538883568113611672943032191121920560801687970210637209864357951491849865504790305204882763919550574656558403579268124178098039981651091300039513927329331362172365341802071045044740497635267277612350735453423597818887383708217904921786792100866795591046587455684074797547137945015997172347858863459265837256806790694994868960917768776576577348039793835377130777908503210814129956638416694424680931122969449345530400523757437387093577449713778033048964294868154349701908081879433662921515451929765863398064929298392580121333262667983230234012178971290219020518629109862594025340101034236077500821876221342163138408966851908616223656804552483558485882803569178186253298370761007171054531185332650216836803659849636373481305266328647369332388752319572804533743084696397461440247279471297490328982890781318494683707736817588318612350064027367118043174875141339449550297879306930629291080992931361056560246403919614716674783320293046194076733525101065696974863036425937141253259561560420876014248221359300096470580727344314193833464206918706961542555077164714945577185602329792706968547425690566628987319508799368707619451048582354919163405546362485156093498038172282944802289653088494234122720915454500129621756938329562066875427543954173577205397646102046141109339853617551207245588465051827629697658048014955519855413267665172332310448560149076589300526617989317229974484250504574795192991727388176696414733915562949885793648504048506226242535365510784655033763068649246082979403767663557171673793808793432150274091663076427247304471587831592069863183007097115888885766770834532218856643284354051310708444984852368919779489182509220562721143947763359087734597744186154310367660382262703308633992188071822979278642929955197038904920707848884474182468936095932676390192750354470046033579765971348808592260225311881884970915811293733829650635251645496324114631025884312629221963227003786703189647365026052885876550773522471869366174129089331173953294207368861985248462109889156734119698097001944833731827193271260913255510130513864761406132022536103426454600995043149011879583077626798026284386334358929368196962710800996193275983570568734663224331441916320331709804605179751756129564809137335115732473879022756123164399431984659355005587024391895685703500338589691270548474962410948562491571714588845382214976702228055793881678133066322728066284752152039114691491626091834206368609034667647265674603625257015435225698450476818159310074423244703135382584528202267922848769979847511012947815560924274589825034819891891014361949530959828540016439363324248295431027764368326138419167963850060963256769964304248728419320690620674518200513841246686456094655507426540962592514117008518646515221030353697860526019223057662437579140117751454612515056108042748406352593730330633993673121583995280349552337594408449301016011274698059072282835264889178140995187061446471013792013657112057852783938673104146315210219402242508724696666605320064703523508967080599054713076371886817556276514408210012052539325105874416097035157784852246966893760402049493940030244096413396683514600791421907288255491106810929309158109573393650639773003142012088162752079421252067913857392338084100240243913271315911277487364166516690992552288692191215836414984482835751737753091217102267988273559703899441251041850964648666935931370226195164784527713360652576664908879931365239814303701880944105028363372279165099551017429465202302564665647354522052594866687960033957892280660779803550281128994863512133044962311918200146272823727166123865411118467501397634821172241420516051726472421679162406043420617776660136781530523553044613445833570652791975509785206494605519844542465243986962130476128144598258183191054378593568140475703301152301188558719071339813812512849394375742547920435772774011658758439143108174059684381059795113657627263567853154446720027599418541323397197300681043286821113248994014676972392990294311376806588729623427486119453381059872425806967828995326316231414854262768896590200621791525792425387451548614810269750093999856096847926134186045565267405174005281568770425621167089224094897340537741676159958806610417730444035302739175776843290785390328887609096409229320179086980292164794434151802271363566813305407472911843385570792967449580853970510517558337729529644015306838866018533467974749021374902546108120382503770276955216690160152768475622846463658097984337361307502873016578171964681676867084982203365645278901320400005046335644754049326315645744000047986033484564148759071893969150774632326645847652395286867267852112012701560083336160373730542754563569338880100849426785216748263656558067097052262602831747533208253952571742958933658736863671683330564305388036046532863342270677402241262431407686647264658263884151516406271034557736464388382042957892881833597001630227315336000697810756144913405134894049266712278877669362428607510244235166685967256677657731567719290950483468713143325159790425299616210164277876440151701888329191639518221778781905710350873472558042360520409314664596970640021133199051733138393640997916328655615380967316868167529882390650312219651211906420130612386440153554917051323139198531124847580988506048120382247370960449934764021424922889078887802043253456290383317390503349450530995239119939294190195290213682199109427670947708395911801117344489400234992553702012038954547429788322115212177857649313033154567049284719228267612542677018339258818248282524953207214502457688686833340503592258324803757857346730532214338737989940754771992184425245243734902459213762030492499782569250151670895541797971312580273355045838371298006282182708325583231017790373970561621038209525306050393622380992916114386840554567138809533393060367614516352298667607794058780581307206796806416319339783884084520281483315065337812361623987205995147442647802366865426410071005915655114018133896093995751289391367170412773851307546696342238238051127752298062502918141201023747860231746120423530270879872207106820658243240620246998081598095140893215996365328704491988430036808973146167754441906697154657189319932120437306363470328187630411709442818891855933649216995427992116895741287857220509972514521502829331824617686473870745713820112580013524862473952172186590410884131241961022590239836190125240999214126871509893581797195725032968598192400045675682938460361810166663213717855781117413029537884797530135721584970159131853797176166496625050391530464005612315701347623597510418467892297856594191153297871538424218375481016704997692065522353526739411705688474259246678622180298690586481674599651917650354317600502739379883972689154243257501904492317711944513593133635727391526278996356324098550652866853875406333447613664873450785475660912859474992613139913329136734175903954513639643589450050644655650024861649420838708098257333356685171489041444804658851902938057586159696484590678315568062438303754296988893396906997866295864817179016466062737284829879264110508430607831481541794506366027783476426606404451925546043491756093604154288022346351323692931495320773965142245639819974312981096192600979458221639886424967031921239686620694234948029907171842974901963415133549153967164200336418780846252715766216294748201311517294739952439207667882928346965388230713347612916353896358442394977858245736582485013636460530359616184088193142173748341682503765166910538906157184571702951367428909947727338591509640555783948925139888058207651383867914191281447637290745210699511444077354104073193567487823599063625058398954009381150007255254439386856370264721072761159843940845831111483207200460316387135132804499939317095246782084304117467788243973815885085683770911957079247558673667606651632152642253103202775374985274816199991416366302100345805459105232536594339852426464007071654375017461637974921221595175391248696289340014921485305559345832579280170982218508814053199281074026560020248690828162020079461777631627533430833622405014669223850514886030567360090084599149928329238691374063511811962239755987900314350121233018999182921401904973211040695610783692272910959639242368229629502616155044836383385352664064986220107665522144280281244397426747073911000562411910099245787969559387756797728854418077383221556949909386037613016037117300280999884031639979347422854155658105867076716697495244415197535947263708711338900831703489492540630527252444052410806171308016837849203161859856950440844381776639295013074264733199002049207432009211844763229262993494762658947896673142277417181005640568070742366552199513560621090475062751089714834711213132424740481558151352132454014992114713983306721072246792391151131825182006083389638298717548701445117419836719551411543153108739905263877960784013493404277707654399904869881813993979607560107328976953783378212513356269876503643631077716901546253720479156379687573624545641694107666448361868065161483183334854188828495949909950186993975956975113495723735758830666080417146212775545795674706030779146017054182662175276897401012881503334441837696258898019150077483497655981298348873264403516532613461419229319149791777993426747212940960289751451178065770780924454346412194921381912492393341006731239579021665261567387984686030192789989774628887991164007825997871062284774917501792045047474157404957607187790988888856773725905889695926689977714850845946772155681984344698121514418521633086544321153884773077014182998804574914978422026872504285196738280199555799656566764967276550598459446728086284304148211104147307633576097390157632382281531741863807325112371986167102941030876764955077248944583235956130643904523277662265069688006059729910493974970903420537096306906378260770100266642703788192105754255019156291627308187070593321980003823568526794974446961966487198342249550827982537253036654231503917864510558005383108252328823154353198170479597793885445480811834918923389454458607819959884642954465204471232258392377880819341315072220229005454550494974152839703767789072715488364885556267022945294121154306241742294746286597695209548233245592581845443136443885213303561900903905291878923467766129234356846494879171261308160715647081414079522274028078198874260894951252424671530825968770647032402044680270009916724945720102143384441901581312748120320367086340574893341330060598535309421314358390442116085314821878564388797655935863279884262454058224734257718569761253040210240474953810330363230738668388277773662421879978774650731839352582632454257091408860899189836830311088855849514630300860254341111233765186866315367800179697373471778564925058594942412578785709509509541425775451479705209332666305432214426737967708131594568926997256688502571773263799847456633632481957389384875310305551614277353803056907706070106717229662104718689024850150006267874651540247051422851610303433829174735840029321803329096067970120309221064631414769075252477278489342542559119828586491676182405927459694547887344421177964648714516665366106240397624069442922362669941978132646144389041012894363890886845582207587330926056460640904568225607765421643488745017445243414933009946667643576159797915338866894595123042045010040257388978098194289513641598281689373234237944068808690300356797711417796907860330520946388582673681265975117919293161019657848271895495429979996032556955505883499555730508322590039605259907211567174096275512194645235761130018564315169660240396910367877528777179408484958473375315966097613906461362440921020140750850337273665592311836074216772649684448709167191735126884384049648979903936093434819990184783280216843438680809147887751246655103473521458531658423544508985081902647875517273706876675943045660909612078374777446532865903820351752874047720606328919615244063432286875331259980830600666693735596919191967957438893107462029536237125666733519514891639450377243825215903475120521871653558849414896214692385836809698780840052232630117444347064623059315412921028642049476963507230267610959653454073343655235990781705478201016198438106690483983953916901874494772354520584165070487882879784254077723764303672458343696504394868058758770485153989997918002607398759467496894038482266725999996709679703224771499632231095938749811843571854877063896468664007210338555544265864466221078011668071341736985653305905070246510479698901766304781814611430894128222974223240254199477199493397593344673882849622482329814896904082011669475972050875536868239253379718781601772568876913054035705561762213276758245161545010270922582998187933541977300801938612335602083262499073655491829450118722742379105803289008307232099933637102632604869260993616941555975560022208120056180202303168300137371788088220272462413501037456904682932822537686241008034100207955422666220941447097644970315000675676105413789626691031628160942845268822847013190298267001135067468267312835689578679187968085864033931064315785168123453985442694072573025111502157198949115749444611868695323153128829325007617851958301143022134847773973727336599706886261325404094124060615918531673356388144658643548097391255195505946627337434122624746316738755852975868965257683591502764025625064722382069093667718415061860354752567221649698570225133714786481385368510812270176711841065530719484325807669217107363434435209336292153687846561415736476375186287039514843130949122021480522313716198499643676376747048762648374539720156068875060357204381875884151370461314206573494126900682604140260099829247175963899937351892090197643316385611487834757571014924392995756411194190177728876884007827036680568386546818591919063231454204171463935269466919179268908754747669612087558451019068584857801031197001668064220627942065040600257370357571216877679795417805995730035329106041484358950918270963439482311914990556088459751780775565861805297289808259045092099505070088521712840955234741861967763407341256824023333286069381861952177381926251146180415925300979216586160356008937297231043469558192827528857061466993339393763088220996521969972327289636396863309308813661113190932562160215109450425376972483732536533152329711289513775534422870347210975238784017172045977021311330486744749805762694810111974023198966897618089380193628088670740265908095252521746253592132299598565577884329086372087434664135753528598779167155137187339883051726538714215841565657815558724874058893630232482358523374692927682343490890262501360660039030648306372779422389552367922872009775679149446187280474555771676810257766278868710214250876390893053421267657294014560588445639070629743432378883888364997672642111294010448106349232720725439791279328644292553850493345613944603997666199025904227631645365650138034193582473324986454147280388446625282172356087731527621682751084512197351140645867894067818313568523484300010434088848294460150684784645141778570109298072635710308898409468802981335057168534183615982462124674081958561437417278176710818506772699456560834629363962140753049653478905311375601219085714475721283322200755787629564291449907566150714688585223418725695670129732199537103897481458012266526146197203850558337234669361285889796079449175446277834887946409928184146885560444098401550229923499267318462688204455028693346222312938103402855357783370218971651003866441438671444276709424172296389967801327252656421260874805098236023834482623994287145741769124233715378045124431758501712213359846849098178275635749319085039839087166627774871754689565964005173380093554028797997531258178074338299569014457147210178123581540360498435876909713226501784650500038514017442399814361071206085836969752986036720009370080675101920463336293072121220836800706260399512955573318670687032211308629027017665314821980333643224083608847721634744942246266280327980017898325480564698558736486828843108537639791068764941730402336955300576712653767265870129829046747299291708594029130143044231808934667812428322730080239846545249776633567553646736620738328311215886963401445805154399711759051520734598031256057448820750495257389792524307549859491276031530011249032275670896048939874950941516529282210539702539631511130121352516118967759982170103380518942407863935261384700948510827352624827168473030094338068241758771122918846640915447333228244113808945801867895361601450214121372490229307732707534458737065380247440304418882774348759408609312370552477622980803695066587946528370704308017030832472581375182784128842465456633653997368690762210654232060154865286124221783328965993508849942060586235467412567509506913307060471808264744786651292044628768591971117817632574948495154553255637561315270762779566608960724361323260648451684543076536382262051008936271542326152510639475338799640858240507924148477001162503017153053316194098689662771560532039973674021198494333432213266272381526946866364997021828669272444840668208043992426953940139929101705353721613851290441618878923050662204643195033807933985631281018433669754018186191687658716726007539324827649663897709796934131938507075558802642886600208117660494573957558627999676977469941269198989999023488458376211287780682070709382974698340288056928958937260031780619315776589648025357529464174772199808249269357257342370864251548278269837310001950888659465172852994440450507083136972952952295108093301498354019158320031166929265516168155156218340128542290084979394820406970526390734174417793539680833498415870663100545589849959938224417669582150531973898512144761958481274501563645217053899901722007033903047406501338263856193213892794124799948624334240068442486875460677973823609295644266885458404217709785292192577423111196785396249037019055745003758186725478198274094834139771203930274756040809842832880370843172887577650058820308318544118808380859713321448722061297147074187040594327222765722084067292389705435521451167267937903143764827023006742607847183182336183875934253956105383056137136056594061287095384014158844296843971069221423088051546250891781729378525447970219219236205455490480345122883361751930295090497402343136374085709926006129567626921834891720958924280146290653571988913322162236060782581677518766692082030137779752061697888467250330233671163220988816293175149548627722760786745906683112400792743262709337170606046472344680262947345101386928683949245159623075745612710444086103449164551195477058799500351570297548852485682445360078428875122784112181196559392616631748290085062069610553095273169258986038406340106906470792785676694709754316439570238892104133393502987523512156493697119299646202681074556538989518705077135685248039482838891088781101162573677747232201185312326288849026680527156002068540704031797439580610666122647352040566478354713355372083835480570431761000791458313959531673575014304043980549104777252282618404653238907862066624546344631333935193730196438773091971486192350748911897912147566079686746830650115734024682308629135827995629975058997965659105141776083342343528755977301595492056821077599871465580761191846288674010858574757686122136238433251377823022407016172413398204320479582427009308056702063425734978131183776540974249266911010218560279039068369768051489076844511506010569442494322667894624547363470442815987455302397061626206023517678043068026922179907766666857735467294647013445416666980008442993416063740987407025571609236275081095830411239071213582646909692703458831569284666860606521357012489355390852787515008882955246969826021540878087763979209034908368839864697588285029049660795643341945145630159013293085467572595720496211292446941616757943140592552010832218297408138659206836825717757650085683968563163691675659007367551141026841584078985956233348590625214995998238149628467692420469959946907774923866042058995705983723367456325341993818993393859262507010499807007730777560991238322100726324202358571432821038784475443227737213164220980708402043755495518197996717653829631952461361541824134145997011735125766266934995935867599148696145212952507224529725581880048550232186458995680839205089998308862900450665310737979481488685752037177156578052418862440335348429650527728351457087514095869202696904166937253534150676244142589089240613102074826282392202228641428330138969340800699705346982197022205483434003391702382368184576389838253953790057181193577547577852792652583720526544531003625172778765051175498936655224420682951363069962079913885546380773832118469525260987511324125230011154600294137725193538055690341890945418419486679321580043448181638245481199860402336068175612162868773239364228534655154260995407452292109899117647003538309253952473353718963840986976537961552696123151130350201604241234909757634539434599338132712063890992369717873867101766801199579602726863760256050048389347872686868181225749068033809092061116339244720480708823901971049304249901186757473588804166731676811932284473862037385491471076017109333572275590492924888797289287528005833767656427802516805783166575272871257918703034954743519795901110077234061580124457005570009522817762889404230573108550502814206571466204438346971206395317497865928691097701609599527020296505970829637967837240764762635098636123723769567135085614598434039078903354179719108987276318811259547723864147886084514413343159057626629853839711209310924036224584026747138927680335198215114066866092266682146006311922974068408488094123196613137755023471461261449616959116836787279267250556653237142731646170294857709344411007602642163625800339183495225000381162597068615389871761605339375915979735057836400424337171929398121397961068593116589865961446204114221389601954578738885708256017886885626021237672334844921244507403197002954915771942176686681122845349633297930593426435883291534040128574023255045696470457816429662869819834745851345106978958613673006935550164143580570690305301932824000884530556836742878183498672127770246401970597222717072499444339439249338103464613421211014768281620928462770101395313141416765819003003242584897810176117234615536380261943936153797597339532399433164631712667275671803101212106889956360009656895467198536228453252416741144875120313247455530618102512489831899182473627122242625137829400896159212783659399533150818962487138085817018883908743913598482419501324269367202917524176890412797386790185869671941827694517484867558600670907325704441077857376288240325898916595570693612088483759644778244771760813509994022300856083061140775575652789457803734103273202552630953855160562312603443795871609688231693700741774578577689515145518252588078600844481088609174761475862179875817629781517868906226119260127567758683153904237708468509162050195713753500377736193957152345283108834227766826282143670659740478308708131760311874730821349940760917437767813954499933470591817027363805878495190977183214830857672396449789713786847345950335001907390837210953294544569971870194011655008447809297590003245695349040861066611340948640857144416927711353596530261191217387748928148868409564658646374164086411958790677142163119824030387337491439632028925420937931973856592889586798746730479435350042677959238660618886309515420091361906473616922580091941066707795759257917269187950819047111901938438964869023587066717659879962965454497126627280914961249282157419653967788723286147254550924032925229889097466436462994201544110035421718797036477547483182607836650252197563823859299768675175907846282811198103640552941338376461550374099041928450263574620585950264906222910143669355539093753557209589597258464743610344632628776716998853353627271928762445901493684007939183733919924242907701012804833775241700338665569673018769130538417261397954884648221839482143958191874437170826048223603341008078731126221713323029125313153326003475742642536615645916184450192990631531523266612093080737025807416311125616453115523968913908255229643342410230742726748779962065074610674536034154005577977251382476775754820216715892414343597306593716056660840253497899828365951557171828104531073425617361796417270778325822966642081130947419905742318662017089465009551472424001708145451053826295440611351445133418024453035666084541570054272942396653921682364215808592582825254259904788101126192466293429098292222095420436976793431522326128940797909323220810686001553080533291432498253195223495717206850741120999420674615822518825363235002985605916414084021609503993442328987166404993932482460730229091746033536435524865963298123963722568335843297945014962149107857136842664212685560241323681962679305342935019788059888549566940384024699195370789955136897568317294743241198992213949384082909799020718736202127712136505650128828686459762788082786156272656040862531297265864379409096198538655704902670523765852967114286396892660876414459328195838762628268590342896401100896449527351100430109525715536508818752091070725527498668574493146411557687988559115677238025960093434697680137850109568114444657288168887708084452181746505812754506676884968121929853594807528835074033961952036427292618850763010684861157772492225615638696521270838781333829308604857031169544347353399233963927503048891926419150691774391160988830347650537822954927652618223459445587320001281352290403439632450487980297485272113836575175214536177152060791186615040250409988936834936183477743303799085783262594517060164243488413077868399114407891259843434729839461616397398703243033909141994258777524543833726229640545211321685677210982339651411548229587524192372706319371219780002323670570137496668806804705664794185205125426925977646990231105011375766046245452387594160471291672369985090964897899508113723539859030103930877866434065962336013015902959356459009578591890396979433130861794000754006602546943609516870437875251919828683132956051213636012728059296952020164395423491121151003060930024237959414018295053695295480940235605039430847563528950858596439490704957080251004394808972506509389187034104044990737041468224091975081584798654233078977111585047954108101456028369357468834683378514336422297649343995423431776062372441719259820333613438539956306736188345342870631029541262842517244254349250099877935734254358097064845746075370623871679398061782089745531100432490170124888675482416543720856725978936534981889621962604479044884073972648347934133885751354594763901894682516878750968265581446351863011330267693242162817660069298053838589162839110008197963775789443921526230373578918625675073207114800760455764205315519279352238999134565116556072199335344860924080124768896131336223216748962120971462779536384032565367631360379494886191383465718392645483469373611313401818132090806676437337242846652933597030787705144057635817218985544102692623799843585070008475772293241012674630434314661837459048973062670142971745685161934294450964851116490668302670794363161994529287969387260494379328471720895067849029395946738976545902576254074406217018675620712643204868555894101055148784768659783027402055501743484687203622287794359210314695380991993822384602464845661872643035264895385096678632360337265495516747462211186599049599003187815574139963482969080218718462458512924879692508288124476466103010622560921496052943603432930710445426072441473808260191759568007465571770675307205119296097540009694448657579371748877071723747606105821160268530298897018510931469323427254891640719696791522314280240686833092116510588838843286133549990111708838612209159706828994762397268796795939316526817099174587130115910455176896063410853381045544955023301457131797314957326026685025122295695311673857248217009291878601900766642357019079779528234460695463492413995716576135312618362964696231066398995366375856531815760214657846892288035681617549627185993479098000623761101824354560938309910168995514811991089998018386166522406192569978483904932933827384311671739896879434842500832191136887782193856892729459343230576520605527187365338424606930721950232614886690470689699685000543419405054352338292333216780744605379256448601965643880558207593249347376379539152683939401553480262305646807916839039923596636288291620860242061835148449159772688591689170131263420465829117465374858623395097190308513114924621950404673650924373276394698543819664310432605376963443068083420092658808682617208361819805053134754350361555307408494659182090150965278273887336861620328126192011512626913281551614858326618560811007207085325696559555722587729440339261115092830161646217006885955704678170604148230335523625998373578853022470251487707171675213618314225765727602644279268322736383871349152817065730106020427658828689028357997179895711875231242762635696584955570427639317714125054009176664374972126267197125797040549623188751054428759088365119916608724208505956828299995702115116912634600181182246051558936850188131131308923331365499346033733109528960378941168722210710854297843394952501545736303332852992756869075162716456001237081686354721595988489537109891647892481181565578168339344625594237605410903243092025808915409826891045809820100849538005063987184755469651219767783916938844871224921030780150992870502456809363951232561925555665145353287360148846879545948163944365002047285057578789813973987889191653975270099527488052099917979400965140428928504654076206590642769600192544704054441998871213763060819941359248914388507409721899999858881956947956307915266635117493560977976544121542846533611713827485264831887128486243316787349212793959560002938740295019747501760000717773081078992215836531806652798163349730422457825237692057016320892798854182027116930183115988996154442451486962782410084253332148101187546777928284810082106815019606148126454150947385515397370057446910022264472690168898292238127797127592785437479812850389180924807365486375198978381198398059230335586228190289916228186635572247060878648088103430434232146073468994465639646394328211816264916150263388482304611071950554530207114183934429556234315395797238293987190096513103959996578509140456878830616009317533554880835726027307317911046841799139805654224021280635709452807238752194320874845432061727172863242373221852804239910622420856996054801667819481562940018727799137995914530815285491294019402712799237686231214253241368067603710596723819297612023650905469317595532394271200903401594784163353419204292595267350872602305675707539681014145651475317661725489584310630760026771617206134591242818803771980121337428362029765893614047538749787606697111739877574912092264794678232228847904355255510270291920090356738033412906727311360088904227912317982056568943492514518066270735145074930638082972642715624800796265402255921541583522249408475180606467366490400646016872940693068884559869022900886217964464175079767859345911246504919788173844006797763591701136545153062830770747176663966671288829680031324210314619441937719994354398270953543537970346766188648087894790905514158505193913309537530759552422651336595555341290996922775066584202182968927698588278696895717408581908633270408955052681385193928357963059102720329048505777983040272565108295842184331769832195627779202904283485332188598818984978720576467618070950865147845976968471299328194102126435282329300159969438713347469376654355478196522059300984154660440544786130749239122968947510014398727074460102801114605854347832068209185202512852191974237501204673779983117621369823845659964682823600809854330072470198885647193390273777957344869990913544806237761108859324549093541525026501556723069740052560238961987769803696199209302334175410646070261986901983604447570972820424450576362779755078462988315518985436661252543169166976338206081586635447765584822647774248011412922749950959225265067778876061516041261949967862877503015842721522084103801043075775207699603631584604786076644812743024470686245333879166489085559526893920882426578731583181224814222765284104106183550103384798879323464578967409675276077755156715458467072833312183195777932590737290269442450748403852236155709769366463054391317405609217662260865401609092415353506268182246001796192482676891982846265838559104161052127600175045998611488074782405396252274260022521693173860589698892661112867078542123396340799608593824356192432877104424656103730999698896217335821949831879535228981220895429309198807351894009264786224534198632376990498217139807180538526570780455930819566379639520106351558283533504464298608497388883716541450040413889333773089828204227943363905495729210461648443141081086675035651157816563892857698443616011734456789430017588525635552745984188062541381422644333944455391793441723799652023254345556709253700429606231616549213168982977526390223204347867311013088887451929627407301165035258325019874608511572411037392745010051022441769589731946586305655812969789028023032993969599493055211315840236746355773665395729287324281706201105578330623710168749201113699764729972595104629421336395365506652431577165343589009376169182328875448651105823268324308134332955665430983802747567119564301099215094899720821303810784744850177188347323290537883767493994206707741065122916744167072443719631983960263461335460035647328690968860999789969251656572282173832085559407238613689281958703731731205763808015123087797420862981138498975203782317359654543202775080880844659796998520883295120580959561996870955060077501689403680877949110823445415121392496663459088386079293652496385938247595325412792918594000273645642384771649147728884465849214825284519361914011252409532837551625595507736593773789705301208860326242447162481147439714441837275158470460176680608750377842037509138128702154683377134863408560099015652927502074057424573175306850739818975848473798330859148573482109764614395654618840285375961542428501692008905621770664776049392750859288699595974388785455533021240525994967187111832638113698352469215485650914226822405534688414520417837569536489822990394366134394288774509493378625449042325579207614413490301725706884831289099443095323090383746655008826919307444158540040725713366914632119955443108160940513425547185630888416163565762561425189729274580024889406096155591772131375359503303706461808547746661843734453838648546434339071993598742622348372540214895398591960645725106378729206142087655767026425088362111922016719451236064821057268399340773877328066077820132168040006419762476088173582740962664333917359041866465948714183161162907678822366653915298803325931626150569405451893340391039795559705879883916147280731511834313143576532802390750676637206695376811495854590278437016162783092145401156774904559750454488808595668118287579447944959835269750647289680580815652391779754146644755352073669334682815681105425641083056087045477909693938626406802078835925645421358871490064955517452882606112003887685446882385679096563699713258882544309701290624899594168837406790807153557534027824268130595396258427609550076984477731669862276685573216212297511490163251208919968390357124552751776255273999137443696277964847668624245435487685017400906474776723195430235312193073828397227676536671671407416283919042537130867134304247347182763106862084226289206853570662170301392658432394992960384315114079531805406692350735916101132025616906877342067170409288150274226572813858024887541993096814062301764523826014275753396466913242585720508737905429510569577003161894201831662828424446465736477217150739402848402469626494873350061262740990467826056140168657819374598265584245924906385585328057582152041855936920042266093813085821834733069992597034039640119523328700270161791351379310715078438264933369588469018836250246117935929631261216192846533388038871516321995022148625845962700969217715066856170410333546027270875993353915019776174064956115454706445356889337512688354632678496633868055821109264814031872225321078000506027563487849717785036195701382248514503495353672494657423450953865963449323521519118092653118415609523967865908245033054876685226216270040492911798285154110477399183669251826192073532723127833469929700057593827757524951738596045626839444709344802904163658527524071847510292724952889177201581271352798701521508325897046344511543716539344637030251469737681932855408354257247732344468640835683739160256082222686928014483826025322480905818488033822389587530258407151203977260444566218280954354910595567766704518006267536538243063763376838017582476275181178560667426463962155057426381279204519549372319884794308713770959224049213199028823038240477906727264057816596158597829001995741603443894676512986435492271231120857967604788532803870350285950719469281391835989483979107497766770657366116639026476394382589393245712692728538218674378368601085503831369988226279762384034831088365215251294139620344508260467667514495321950325018346534773689039598272142344573073054283254510030817411486873435631724090395644479441308572605386793888052947325731810267678204395651144663036589090866903947555166877522877455706293170071808209189129363209377935854450882185099395634785541013077810616805616152552761220957025327765569296443395658835137935795584517068378834408499148167560055913567963556890666358260797196406011410257762545567782464367447219821373563010596257530515525850755090512000590855959009854160452859596329900374654854906644146483107917817323399170381045916553776028112879212878781438326662805188183210497731530489021858807579919653641067207213222058959015743900119241905480848616876143251107685813947987910872084688223088665947463663294371218947529165069077372511749487506328807483005887505379121891851676452154687823455117855328730628050318583072830004048063709408136932090522545552601229875070709245641030685369010001878680612662191478829137283807174458960084923688551913671552040664923232226961315164355003007429632483128673474415239144787120514650480235498286907902658132367254312958744811191691108079635109302526206518710849837343143988544107431663304441460795617240801457740291800895416935904868710415718437956487144544477949957910021012152530039051352380015199988749152256607329362361412172362089781823401110096889794605238183950573590498568897640830218811339992755171306315771451444330779084713122271718253438204197248561559764942280852861445466678445229177233023920317911421559585023618871493688145268336227910691557130255248992445942401112525789899285245630353475457770523965694942750177866087202894758698255728241835736261300225467061525139283422593022452034180573049315015613615465422299662245618946477521016212397423531510819508415658672023628182718766211118233124414574666289763433699699233749621780810581632445547188138587298986209357363250145451914975717166909815305925760842778371617507394459777317953312782156651467108016524788507337944870118487131181354772063468553649958507846493438008094279438875255058779816141336976788405046921421707539350065954107631979394647208183273430775730694566573295719825117917150991370289809030023564452916769276441379786445783081186618597250677180231776361731634703907945508600018846430130570922477491799980248583932640717945085132766306489498462562168360699709890813849666729463954758994861854751654785021028361970410611082231295061963497337870194410017225620011364686827036274043649506465127775626022824451122550744779121382822650343125041512639939689282548033078176280717483381374840909050861190850702490403626144933403365217008060876888656505524898076383683403004879572809286490806140269395247511215778533203403257013924628207799948855106000003557297851350317598711511652574669858684018052212987708815509700696667752739221658976619304774186974177931464581181924763883734586176189741603491953204345313091507656432131285655068468970691230542420479262409005671820552866456480700789623824720755323358413515509462656192829562070526483136327144187595847319459229160824770504713377170226838915810186781367091137661687952655481255743883549281671692312505458227763445710889348789296981428515401031441125477657537832185036208110932923548914472847559008088679740883655209843040147622652927372738995767544916532948280123880247567883711706145802110400225260469037990243404788531262785394262478785396580004373531917306923627949605556471999394261077297186120126805338614075373029551343270021110255810776200260924081320339113693135611396497708972823843907242083900149665878879809331075045782369253810302760035252955538983619529715581326359051857404310935157437372901042109782150819769836222657287723992106993733505204517687323924017394369666234435730597418674223689596128781857708564035403750200447716189425701813939924592496757775474194406946814440058706974428046509418813087568701751979260868587090535424344277792913766352612550178393927317149650693457650505626012914964522094611723004525249612345455977260995520183865106704461626054046359909688211713638154826128231434987920864170068790437661278173126202082906344616130719733507708603525079212837789370354218056247002640198703586185589910566683079010088853125564910544867766321372994897766338865938216229469547415733603025733378318546247547738622458037193090637446939167511297928552171377365004981325399740730496898127508391624247777720788701209556369975584112439825572925775742027674834062926367848018966741866749544930694733290095352206368028445036527934070799696010818610161452971485098917872260498344282432375315386755721430688488221570319139814932767724661682625505908573327720969864597116010143970155357722029014917363704483553901457467201038282928153070822770697535304251338906697412827228876033533398926133445911438466924209799883289599905906802360403214788792873978294537131889551965900997450623314969115661340809486695218779184232822269633247893592996169060100705899603428765913586170819685551827853066382815576225555395062576129972646595838639529843593512881609321786171395736126786523072769902586329602097988753708175543779423270387098539005794789820720850789480375275764274783590914583411251985721296031865491734084806612992566466590300855219031413854107531677355569891292760536765046351980708114590215880727540295218416488556440489213238285103481001365030929168447289198450656916179655626973489179119829554430549324906829450907704953645922553994960292230990964324786211731693992428386814864711196258437723207355445222390556829250331512508406818143416200345379341089751719152980116884199610310950520163835551757250476647738380993632196476289519643612832671148674446737464252568156480401192338914851826722505757114014549903703046598147494762258452500383440381814610863864012084623482339127907191296958531292580895831279089318920106259894921866354856782282168449203119287955078170959082516125667348581111971214380460470737327106216988050106169443236696450412771528806785145947858173002555027984835214459564933970821819813674521995080705436688910081943453599647936142132841438736683453447798779046963718577464445289107240798277250845139291992098285097015086905944013464547478088590059841848526997516485827034022178776389380080413464297850970127217095903304456366971538043740862676360383627432302107785338973694477861663002499619610619329893582148966798610357845546048258203092658639110235640564983801097625103661609849289868336843159112014568569126588353194443266038504826517906126694829603646528403810977233740642125758540647914276787746649276669782697893848235916762253427796232817569720514386785540008534951521016543481813327190424941221335869125958727714522343188458792781206220969916949060847223819625416156935418603029630990387050891542668996490546639533531255264020250493594133739686695657838752336471925487798488169640496584287895369300182268694864851186232291340417087982635110086570460728706789146518515005966300634699940596019342447651716870682380119710893857573220802985364714941107370057390240686148807378374685708554982870349615745357952280243405053832383840041602899208971875487492546932793547165994532740044827956750928898393803740172542014420286614694278928660886730136896692540412404741148936019152797843106471557552779463333348779829290969356542581561643254916009897403333392415617671720934514056449549931910665625502408827907937501453267182828466496976912030838271913011076399369769371294952369531810921888696547155599682971133171314672716908317564642299259100904952247506990209205947770797818184158454472442997660239904118905761342238524470186871359805567142029515524104652120046612717981852192868915225725423136702798436063965424548844296290855495683120028611903568213355610957013861747324943627608069757068072032354588837638346897218538123774148809469813899438281823427830039787130057121832773476674841485094905069938935985428434382971010560503867005211166461858538221179260878831029575447816699135749850012027880702502240608533710106109056191826953775502908773893548269087173366650206330324320775913551984336060124565205691527995355048950563467182614713126670203004741996905282422097681219354616190490073446536555950038554434814129787856908307093977557787686756224492417206639918905286413319540900211311588834953503703091770972389186398191782929671913437410717441940340984390799640556376951834040367420611926583497199771670472620653405481260347056350742955895772733293796973836639261147771657356037658914100657729276706817435169215088503658997939926763219438629642888258044490401413159278060861517345830538774156866227541201935438795420410591270840759389360362705353397410624371684901329354423436018491697561060201615656720908541811987368870589106393572883827023417312579012646929663669128156437835441431102158445231356619938005117166298410599286919376414218388035370125061353739427879051407252153343336063756357707825132407940063318467776548947676224397042960491262318465403221919288429544397663817744047357363416401575663615360586865179596588189098461233378969366221509116130857783219354071222890277702061632698884072358660293086920780089147865095338211475081148055239790698143793810273716371400995446220093907245288002188358518646771655175539408025024219443996824841175937363144255613969324025855111809009578694883982747555815247603594569553454769560317105002104825315610898013540798364297765460449885157182934602510615855184638083026208989429575651898496560791729269729569465734326606209813620642363533741150830796986107900400115022514004039491076343183264624402204510948935183906799474011377607148540695150827960817142794373599243247570094875316010130229828949917644646823933842119413633402663417777251337452129617879251866458085089407005700091630932403599249785442922816894674795305817998636402527869120288809834141469247874803367650946921974661281095409578871377344688662994910808454177124920904506301180982470077738581774020953024685733622854549631127016866464494001862203191073535725609353729533878833845785928585650761084750779902299795499624637924095089181276332155811608972290872518467689649909018901681099844574762654298396666233381339635555091230112992742334171831557425461470124739542724956377032725172059996534822177798611816638070695925249489528135878895865248032660016578375946167110255807065648532178094762783095364540371473498331563616824466779674721204244801540832095212198863925953346863684911044264474827967575061166959108004160761050591949935642623508617134852184414398711194280515947899949693943863987679141754164625037603742113186466485324369846227509712897748067168306763713727379347549180282565019838771808269159804042378764338239954036895001707983098036364853802133729923461756284964459513021721344197811686889491414537484804287991348609220170576920610222619747404532519375957525518062715324078762457151889746866392615302966107801863162045427193901619026084200989414558952679157946883278085854734439866096972148434614011962063335926716900160521328803637680597576497343750299181031123057883512579717970938562776882810933166089789201905948271495645955346742909742433922655744234099147116552716817090561988136704115104139195409917713970599121458845501203248094640178771648158999402548846610254902214473347957722194200558299918643004140782963535493328319580380090982714716155217634341667291578511986674127990338517378356544030971268540073516137801165483566124831119923443131962745628203903767762868751283547503243861818927263743784940345452317670662711517903278987408533942925954761943847932684111616715416028684205057446457405373752024472249003883992421725566829324515660687868014693736284417742101749018868929501933001346587375654944181587056796523699433650912076625797694394917980754972409177661339498254466969996381129877379027373460506300121171781190519616882940452596335089411749550181574148037078342871765929595844688850373287749560871677987044519517572831306374109466280232921178684159942985719338065466912462580549496073072745871939443307055596905370944510551679207214376611799466562934750076608785205850825203542230683968803760299560428369564560140169779397574332717202209187122645852870652266437440464067192252293522831606181556641763618363396249831392208003377541956568300067404217638062064000308486790458462936943609825559324149476941761180721999185343702429864242213483901020746520463119195577343342362716501976501624283893153781155439444005541461746132892968795260095190024890063993443660625777129760491025246907068308854330172818990391611364327708364048213426938372450967495166854003909553350395043420742313486082880215909980793794423437540768043202576299918342286921332024462707289858165820280138638767436846357242339878953320427475746017862012567434390398899132050908288476639249500660284466568860855985561785625516576081949490522003943631512361115736633017155301594982452149484889068538666940240059881796036055696301757432252448012353335704312262070544868456932114616378970140918237785773869639334617780352640379009410198142903573068215657339350373762773939712165384213420807752537890971026712988148517279389862746814324214701718161999245505249924817987042881080591097088488918659589387003607387559973982199604233489754755697631786237096369765106192454476594526210672689040523466522576867019654338526210748824209565894202750796415964058727018325769751099103300763842253507474597238418488186023384760441106785739981951158281906715351940176285667576054631532739279366485165114584210274415819152244909933725860655012081379273263402775936835563042644288301699847449472595635016518093688900805060025906521683485065605530457022119278499742341433965143234065247744376280234084140916462094898521051326960496482874526456190319571698720408094056005720118660947415382316124596954749366761864593864870671138402308901875662437748468573968074695906975166585748469267103815933991062313205297512910029691789558142549869093683755133826238828269966985414203378540466054357423710492902061442377236498513869123856430061769909273936662205450862842044536732092311281145395730510533116432144334166957899515073526293282364620132662608137472777004854883374719594288709260813410274329036337946166301169843024642525104584965218702814173639512549614633300762141555856623591254062709565440746443621805291280200909985528790645588707355959748525840890128854224711728083124975444180172751433800644988698343155365802999437323428847368010896536904827550539564231126770804926440292425427760005038719960517191770861410109564385565920642078316691873465187115869668577135562071128334521732172002132544272916910474931514741123341906105522090959798765676975389068337435098001248028813532323368656627575019923934209480436556728374395301436343143315049582281888749536793263092983352537021665218239971420227001074633269126699853368530199639225568654140031938723137372913837130539944988517033356265162455968016875285286788773363699767956978733132806558387509320210497749655330608229359971316928232869086502277737186768210624836416432911750560975550559630106092095631264640393149167632096426590909739845471087422887580895454317803177960586576937479741012186995270159266126508318674241522287137926238229460368931461539218931405300145994910020354172212871840854052201549545611964831884690944282932934516370688346220364789383471019083747908628615309456213533513594835810324779743855158449784851868584491945714966058850166864439403458389455393175931283486674824757087470539609867386359134760244543320992330718437505661777272911861934285652800408869908155038654950178617805135579817917411902230180280843375641052204591089887101544865565662404506004144082772212474713712241873630064913092517246709207668687974844519103826045641084550978625916071958448485725345115764626585248247118665423307635924221115943829897404099621116360118193158986741097457593851077848380584913620161253083735719494910538927628428892048234754424217190017762558765319948081612243645248598433069841322879271333527876118616678062948370380290896725591122841628529219348565276750334314890099016045629278476120046925147930735035874331245932864827795455374842991990435958164633116975784466424142031763325201691248305323126440863646142749479122025206114491200135444064235902071492844340580891429554498637736220222362032603180025974813735648907133101169143790183702353280671078813569536932729814190561313095411952223185765038604092440346723003510206983213446822710958086667722382849268345454646515249629624716601614168436486377783979043893265502461575387707337681121333417992495077908451035397512959896772709718077266982055857001935147382015213478888180056617202494958131417859625714313366263843941970762231298730135161244149510143007775854281678770790395129430558083750416615324953253948568141657034234721341422269686365623907593088343536872636331455849262561622093279457410691182219876914385806077026016235583419697929901929662737697100165479343281695148449160543782238304321867960147262238979944691777179476762431051572153878149128176619685797772370395928316347280131181122281783081724846318382156051046590399683575243618407869779330468442011573021229355130364155852664516799853841473375275923446093430088320944105223418416225966848165415889860147768666514183504860987831247815868809683733692393222859762886498144627906033600030242921025375194747160931884283875450871719615208714599559292632068401553883979112920985139016355649783147611354899989928299538793024524201865849803593369470090131205965756760729733390542456461856467609101358789368607831868044131102567168961687775431166805338574620040249991593716215830919376658590337531798949416310647392278902845682322321145149996980312372302817934995596823783504296581533207288776711714268975873443912211062829372417426112349482433328918785657586605819463345172334750458299953252025145150477323875077145275293240815837907371631059529198765016336787429389523650416743318120000114182359412021342910693511351336279701134540291670870980086926026670834056266355628583327858147646082640558546350530586642640025897408201161299214429007426014541352508873601842307159993431644661909331903939962988607485686709042094747398505854214461673098217033480212108651889542451202617349179414952834184619950378611456915791672251058051408894255946031578258849691907920977549843513758344639942730575182955784548334102650975871325607046161012814795418303283154499362892401559463152871481910561454778070669463593717432163562313227550411369428949881099976982942165538425084772957436509735163540838653135591847347609931066591490535214850933254710486051006411075319176811466648853191452647096639935589925077835019417882029989170008872709803160200028743417772980195352402468469442741415719337150231294963299816880773148555234915772588252170328216437520332326048875524022035171816215453237503686491979751392814652688757252296571142189170491423755159999551048640094920440086571200244403553419300695528539863143549151909836927997644790192081919201738868040909085632233523556824882547381437827484204061339002910784477429067251268896954640628686810385428791167651494084750434638676786498820406328462394559712908233888317392269716557736208445536747662371553220868362463673503695550856870116412981451379730517862635081797350264564136564038796219048343227384320728900684551419230435840042582380816055225369408839951952932910219066939567817027736151703885027445893834548823190934051610915106167365002106731345027216531646640119216106059743944616569292834630421451318977115599887432427078165782635704830816996762571682436933956968462974339272847451364800870429176349450552180608787226187986831567257367357947868550259123924837642127316072556138037919897115663577702269003387182116081141679164765882509688951109335899720269617634947400129589330620083406584654258956980127849521541871244658350921588306079711157353283254292647915462835098236742855859187862609993535465978484978146493806148922257372181567122249326734523511913494310664631198621036478440898214365258288573217501168665539739231641007348790806724360924362351127111450648960551493682573581161475828471785366159448200658404356732759857564995595988437247637537790221302249596954016003960599138700112269774457300610756900363341086548372509954481859535550564466595197553909237955916531953190939315220393187350830963725431535690884877120904212839347452509819951895656108694196512628175930337107265898079498637935412882240967883581608983352483533659039364675452092864673220740583933139926664368560903290773789167651656093890131452409182743603501877826471497651981922520925722842733051320879371423114831179794273433898132934057364125739950983261869227270648655638787433546193590805143742652697660427819566188313751723753314278915447931584673750115263628800726190507373866552727959036209976662265979427216860976892061536814469074269213309839591147483599669870112046270524661270412662905719338396845520034161655475884692747198386692498466574452229780774105383151789216518875494653900921760734026295613928565985878358142582504162532935639484705318129376161048792917615477267237702870356908858143537574183523675949841137589466547424349731404229380669134028869142396716575329999524409407344770237428698234606529863226970811295493530325880575940894291993301905745121153224490540754861628244140094055310659499648198238077385801663161292666364358276229257679208834051813282318871331452737389699895971476762257003121881669840333650492881039689053578752584667294073033094673207257391268351559887371541751886530045146827534742569936615509421946440775486900220379145227553517481010749380494831341628144081719164010363598785768165364169672176195092378997400871055271314486442799308689186525430502406508186837250774669498686659567974272544750680933127710449998255370381765055555526120856916261294837399573607504999886442620757677450103395465617688824059504778445934475676971149616984457865003300125937281598402655548324712962976870450420118161810789931190536917499647485435030271636610902557498441945752333006250140736568334215811912673235012400838415820935315942105420543870942316718938880853434213111163469930823637283825365399409695926839370774367938182309629132210639376434676435840702380447118726382428908890952249134351546945015400492646602932823844630978789976711943330115051668316520343837860428481949616133325298438514465845908809202944506396992511276061774489352602669864408555930574984656095297435397916218309606033874496747086271977944529522011783540064680537737573259293403950862923347405436059499229160373748621179066546493943827986991954694051529544438018058511239829245934041528234860445889039439222207082724711082094651065799117457703684206082795142520323157813847911148980864478557263611826696987946293046645148351748629545419366490060726166799654164006256096449769048033991094845835407901459409944457195958695246298326518305952681618311534511249268037176709218429040800347557418253022091775213890227392549879532433235605429619509180970627895348364020961636425918026279257061028046825391036236441869620123159989279857058704668109711887850201028070947612368784493092791073444688863313553979338455613755398330660200351835457838686692815529451773792844941803993406966685216233000044726557121726917612026783017797943124499060634710695319393226588450966865889217948853511313650996660520234685520309848286946768730679472483568232148432797029884674338339184869129219155205063200544890637514540808074798486396352400392386743990487467711727841914736326831306184005719099757025804318738562329530199274321964084993428925062954821739026476344728281412675232561699637264639666376390361572394118027976651220524472008937048222878290771784472362357773872405472361947469443909451121327179564587213399312553065475076385369646961978732956955571810227168023686466344638075988107698812470089655106065572294105614671664194655853945159733840630112827563677611888316987273187378998814425563731734463252373364939793187193639702315274716989066471600484388692279040299726326126969394684808389284384781988980250956507550678978677516882662229200496128569271603501743325449056250066008840029897545727525921911786251935200944986817618692123411555086272507193167071829750621123301557757738784785632798764578944236282898613885359157737444054825901964788809597919102509690851396799113100453467262617528169986953469468764534176135459037236202318159917914297150974732148070967519878944646353967130837263073398940917414349623991581433696777013506808504255679267295769655481745456602219758208279713184293680363135743109781565639032203393436346186249754373475586520531469256304989178903376992237327062356759973092037979819248462329676131206598716709512134376990622742668081253932423713803939446982389317144486048171679644873076571032198012714429046606003686526693371993931967333636075622567739932454579385875440303934446521501637748396275102537376198881028801800833450701824535038972093575406364296147262210079387023567908610897362304265591074665953252530286538437440821193272545160907309130668464725311140665331523837262366439447555590384439595114006272248166894376535634348479856106030666113807133126407876335425614478893380229873278373649329221748762106947913385815778048166505249133533260126040968898459947539839139440083367597739239378839330249976973796275289594282071053519833755414387518069583867326690408314417679161381683424526545273801193315970008185548054554840022284543966028382595698425407800753135319615175082530009655889855576171131035588137249358936972000295675228355671274478232403864287765891403279757168622906568073221059359292238615992017726855912602739974577134226300796761585264729760033766002531272843527960264091821450151410143731744926264967194184482799896567823126368449881239718681006826724369928974481526765604255355262955208557087964492406953300426238613831723071759836630006862851292213756941520063245205175450836052616988767116340930140735149846929713916552748610488207877886466410981384206496601295734196046154938978632124183555899773200634601799422702725362777243726663905645473865929316572200075842193783114903010251995718307846344785705708202898674038172387056978544492216518041646393149815615401921347250249515388154197507529281950478094362628386702308253320319617968236332999058001704809528859910879133486363448131964090922734998837867411895338347604284068404767977913206874410179731324024099980547433024771217596299987696447225112848539235461851940948455882014596304282177493413952078966522730761355976475168713253855328444018303815598595148850949799198997144406611428742636948938209244179625333233209816253054048786905159013745452697031523655824521327166812806932133653701892800921233312931169215859522662407434499085236753330219192707836591950960333256184550157139930970595286572597434953627013544411189274591525523303627476866063124904441034033531557489542830775675820343813127275415191860830737441182242197349471474457820119264934477090258107021772535186234852146305846540043751077046241520109329435531495922584217150262878542141376585308528938456337162263481787257205575642807512410186334940934967314312462950569086425499111754488638751129945258207399005044674816466753128129505434666035050033673231929263925975076539349094415575986282634683692402424084864651651030119259100586478346983232651733764102822255081180324191104992404949872707708773027200842207541833625762285205312628817368146697911893705016803434103325612745658924138228323607227777558203242095373875644357862814569141555249507828200347798200707012578280664551735662032058269580330915318743295510818909369532439217681955634893846850378546507189088380272749207493913385249857444436486757559616544013202904004210226529214814104445522687405115461201432164217221795805754989803719178559881414004394200240039831780199504803295660766862701303846758482856687560002890075441695474509332896115070617168696517239990662249842790244687126718728465536198029170162540220237668674631795630748495118615332490795160179643212005544213500917067912761785127753644020902109549260077964588943312699725114270103988480065186023446409089969796953532009242307126912878392321359505851448001966686439262667642107483861469991858587773378744786334629018747487463372600011959603088933097877899902338821815010280485631865985573047898101456403752419313243248009585818116264074185738473039625202051610543331061376804909174633814157027154179200582676832308412596364773280640573736272615882253689955831546715872835476003475754769490060863998096894452022534353020700864960844815914590824099875220698213696410681707775704609898154950016496622536653162420340727072104275165162912793874516263465925298390780587580560942392105008887323618338048961660675619507734163692033270865372416249248043484701220475805783470638126304930833333314967946951849032431301424921055036612535384314925947648790118018211003156819050374798113671902672465060943544282832577843717337347434286889011418579804709172251012044598367140142955252586589459645650883248026178811352318127084298523949974783170101459083527613997918679344873011718081519318591939311678433059292489422926657652542395982405172410944636410365948826470955379051292221708248080846625227219048513927921688266451045962150503913682024889904404970474875067957369867003291981188695955586940599623668886594708731722943267006335596456163378518373170625063529769651982813873895824209570831482834457797843356967221106817672494353072333179277769869864503143602899054748049579614834344702357418546817186335256580462971030333219447998316334046445299840648960838660244107942044820432285993204936847575898950565527178490533623014950141295690566918048944295298426031655898869587516666446510520188991023794569364181747690611593097794304404861361324183701325513264068813216676354322090470457119366974667058780324255060455559577733781268126242029662085639897390507331428257865653731332547819277097061597484968040573033385608369684352732662222442033355089906729231185018568004135351161679958200319557676331113205834910804720529252644635286409003112694914763129105485621582392524792059239248416558324876275811087579150626439064162568758143295085064168996182453186541261430181461538571847163887091769922343311253277763808826501800194464247549595470118060212844680877989508461861928679429105424323026801932681076856185433940346595666623576301803442942501237282331512504126447238024494663312270431437099611565385529715223699013568240287645028060824013397169650053841239910110819863606246581685822997479454223836588367471289694746355250123427492622047619777807850961735955929168452665224230212299768257402950481395809275322340486944300956230367028910940107414631931242111878071946573734180138291133025041785829834239679556332204451550483064183944912755525228607634750922931290491781877516638021044294946725047585449932982737151555468130767009385106437408253868022430226264596291854090688900511220615998487194338780976191040782719904962875914808758671915640760651136796385609941738880952564394032287882810078050935515070130084571743250596148632476286172251492290824982562803702679328140888272457013872755206527672970096459902309742894637773467745212318818124400737194300939878359833542637380799934078108365860490715242269359176648058361034095059741081210612742370629991710118830153212483211147732370506474613592037653987387388228728441139688106418635358488378875882330484780621731418489401111698705149315026816643027567062442544612476457875239243834422836914023079670203647963396499473339889749720933093355096226571287000502053531366837875505508822723514557409139966069080268325058114874587272498713787251867725105883252416385309315488632735752532497101332595536543955760767360785691067505852118245610285622006899094838721692679499622076711222550696118475166647708470918897991717455238462731985347059753397797467572597025984387271988506077624023040673257825205204546152295038308269826243303354751329132882840258825567487288804247055929599477191066007695360252419642636393277007925684104152353370312478294373820964326994422758794800817942225990756027014783200554773363566831071637473063706167073683106763824029364489879509385389420560507708206791663546597123792905333266165459404773024342436290932948951340680717630622389404458051528425592571064472924577143219545246741980853200929697636953718609147623861730452890042229292014245173156288634825191809329374312344371584685404595510558495466100501558200888639179832704835222816429584657474713381724930903174249639731467225026519567910540138205566597331738637363636119503160707307665088246346153331906866785183196026256504223115687501681008750373995208075834100181344413971508892761592947533004265195056818948817945332062334885231082168364795544112015645968627579635001805672281542076508619344953393679172989578434699333881232842490792012198530921202093996723607856547820296569856290521913133765391328715110497847780188583639858011537123321913885754505886596429773814007060040221557117374450535136248837936231003019220189913473040591887799538237733485516581522562410583190795155062927905541689620035218073295527308917759643600675700877872843567683521535108895987009960097736977477595106848642700410579579339377427455147152812404414438744303088366698776628085192174458491656265415502687142697615404089627861684643375859570592403075983523095943658775015983746866969227482530186218938374801105995531206995688607531202725009466231364347703888574021399862096656088323752296301610772595298541424192711599220758342598047070497564103825326944755982178867230585725540461681211538185005351912637276450186043407568518639869448004402286247855494838669855495147888595052304509938258646062158293374788912278039596972123390044747938240227022653238095889768133775572659565802411829183563179271495185226726035954368776987687208404947192062136755731027055187267559022450480925850620340289068985034226814774988803110878942029737911410204312394466720279498373776419377281075851108242304482502832597069584211113813868698606567611372037371671501136569650292548279885605852591560225606596028062531994232824509355657873915138342283261851405958839270714805431513946563379306992032463695347475468977396846985045250052882731197557673909083408394479527842442287741632949125937142967028520041288188819063467113740046512468518588069476767885708500549083847377307092646791337676378141631509574992303369328975555086548465353587489762298094982458326342405638940103794346380137613318033197416229585091241123843481401855199807646376304311604186004699196177974145281786682131305982984957555395003998032670368252857759490622586439195502824519374049370025609401596101152953445244706778705799713298699530384631209129782348665916134084768787416300711058789992274013748094291701350954242670119201860151788706091681672673894969627569491928166405340627924727225073092773415142939766748809624658892110642251909660478949628967560056972395856123787818112665982924726910613886878237201968257158380909117581548821253654340011713903803240369026371722836430309545453012968823828678816736384123857645984735141499720243247316831688796359893409861088604689953874940410056629547286495540939447809107743126644327951614181345399553413132464001866571847253200178301513081542699336753588681427669318348858586294397304841320315612962066885491764315650298077616989019455161503270973334477816130103343007933464083865759695760401735055942998160875116092958452660234758433609524241705520686103611731754218397910668542358295492447708026933916369322683144149365142802105080571061959268088188393752170653471280345275357524446212298931311013852927614954234688092387891236257338908710200168722866381241954051706431088414272198379730168097821944441057903451085043982602990080258925246317738472659345062043254064158394693363761474046346947829017975187541417459415155246092964242435243877451135711437315713639849997687139450518526506005254589837518535179621761962079238420086203941721341817090427489272819628709814004367052824288000168689193974235712772964814768346062934662873242702026363335964504338285326496188387209643057235469039204298871099797149425842890060337018170231399879768670262987085745656291241492989599793919666025818648913909263863214344151776381697380296842167892578938336704833159209254901088771949484508619258270857864666409998575798745538670327936586066606543239679430942686534596443742045145678075327796427375025776624232966965634093392880617008133532543881189853054916279491212209747313372388910386045079200145508009258621298337975438238981236077487666319005834551173409036412965177238056276351302042103765174594748845780720037616328645437090112692337925122412682411789644246340822994660048918572255927367247731285657414616899137571962277362211936873499367877568648595492049363664982217264192842504414686054981206782020997920201521913553836475069352636151507677892324018096809820843024557931646251675219281978808924045388342601974776674845502662420361003063466997605036207224334333828470501389247932965745395177506563052633923053358798334721596159720164975959678095179373644303162395175674437376631360648714870466298808143734083177956878378639806433997528404812430175922480907216295491583105295025304938041287900491937631181538881374637819703790589264089099510238778208155893908758979784112711452484328861003507529772868346657922524294602386316494096642784332865600619650897278157432478557231588627362398905725405906846222067018497045701747068947370145449566809163451327076531681108084344924387747678023806066079440681592986811442973794101955660096994743933645654415515960136766554635709345381761280484031643489387679488367962786158558164238327032195771032424249846090590550112671317195702292193914046713111424316041022929257457324222638333799417678362172019001547225702708706097688893287010849536906962189166856496584312994230250280862347964066165861240180160034874433038812827316929497384792985128031551647844257014817683490094205616862843404477456762524557744414675650258446857756696322188679002424931682294725588801183816804645615606147031197118430912842343198901493335713845527781387797048735578054326829798596494355389081828576862340130247348894726594824985365907117828032154042318094670626391789252037751095172539156641520896317570216204708356320483434778196992518945808529205969102505746584752185181168877519111171905078569352810025722453666179082765980658485742376491984135883240386509354745785648772415671528200487163284592726501753015786215093770150448113289690263765921059034968393274753284366321303594403185606761677931042106288242714855827124338984047594618277299087950485484634475986247779989592684087336128004393470338639220376151881525452789030556140744759552294948343942073920044467361603466007841608213919656919506771524841272358100865738045247225182416891484835146187919722333916644981348233729263679134948372211868628284111648168766003843855501108519871344075780108013089115449406075347134092974339591375483387519145789670341314569934307853496205888822115231526658074406874286140185643711104683395455146228141667983135793979798871244214108180248636219307928997645074920683296257144812384122020251261241551994501351469085149437059825102103043558259926866227053800218580059096156717640744853470503196431550054714036528821239780961970231656606276707281464037494295553228424216244284590794179895050339638239095666462830338558981795091397340131682574828980631036449317279427601868652867063222377703555832118693237697744602938149255912339766547071583353508691553601112173096944965981539618909994634785543870164288952434771078261309246376423373304890361349938961517161858169789603546404040840283284513096295276333842551396166805330863592869722798127744630319533830885271306156598080949844689445636328146292347707515777213729893474564884879094410095954512489436340427623482120900734509075568587344997664869270042066228194331669320985922578902498246327526301243852126299621266144101918409055498802679146003619537689381461060822514290646642201257367880558130762670793163486052824725453510963345087566912920908455141613051689347817004664329889988214935654243605631928976972052639172079176987694362616327166339989954343052011328512210081872425234982014316349701967834998124871062301171570407706601392138886198764248869527530630824043013970675565854560260333677890187510874988760345149690091492797290288540497012659989771812895790189584342709323423268008592178137776614032566754285633569971336611651179791099360370411501190536896444657720888206104794945776601121120418062458633236644308606935683395988185679905384579260794551359734427479354786676355919648774228557975123849565823871119121167939662383166597585158370175065164952854985781422110402022414138417593481308373434502536203794468183203710363089473656667427141137401133598334538722208355946772816155182546597914525985779603457236285426946097344771281947425588852921716069933154561543240383528099479920367396613894465791264042949851265647897096386316168330966324816027661716721014998445229268951292723713086890095949075688105100102696767261524276453317684561723339357123382337858777722301821818224514575740550147385574744727371183815895389067013287915279293792752166557210988031641064176803499912374463054238206461992107822390366500715903280345436453700858307697716116939563285639137058353719648705427076438276568283270288703583370521885491856802076571864667795865544858798623168497261365649514247913773906260235293900833930636219312665969573929680956077728567578924976222762394982938043817898967509703325423350227005574163399618720215858276032030073080741728222809087293272025413168662996691359100176412882996985054734195451389485404889397371922004590086813766539398765749654206689105266255506660272002067279653967956713570105931647625653269221593241273562912598865614774996212311282111004200933439771355089476827485161190956122843164092503650878971700425719373707613793298306928439689895568673542843861985463711636271264934818140073339382802241023232616864349920800590311617716047622015327376183303934038702032827746929404607467983842069204040925377860200867652945991992697594512966520421942096861707428311195434672957844572519665636371470498441400507178602674329361098577529521445561167054474266151809276400688619050781436967174379852302440054350423456682306791871706940535354019805887272708424475508206784862331606199182110846544146192256511436898160380059389261398953687941281464459621665879249233741381938995688278579112334622567754792560507692851442875014007389525754204745034587282906695786585644442092945712912657237783056309555903348815054267295036953224842264094299062892345988297321564795767625392778716764081596488341330705882699479979273658884578032740207484594508516613473761238586409206862495126950944653879989637048284596834849903411734387334476474178393988271089391250675883186703919381459340550855060323413919947236410595646694693605119384781502418109560083378359751880101299758077498497585784821080345484528123483093186571107653403677121429995542141042944457324407075970511503194048151998412108474460894898253054299731888564772749759485827402031084981376643678082878405523411080008862620521898024734565075763185530578765529635315850088703330624395199481750650315484215938349356162244530598512066770835461170795557135746160113683352466029978013421523657124451654930431141985752525823689859994981657634034709645080860674940142857339047053723651605569170954931462915659882972847687852012428698680556233903607868408534929011198729373019085407769658947915429831492619841873484391398585571509266297416873813409089459178759537550527134833627159763687011024222487313462236552083303082943936660512196596163653072101072394152452286471924616363188438356390869988786652719657756985753678877926454897339397394869775545754079633940941314607730295892378476946937237519897890371824611172788229739524699426252929072364163555110028150191508963767482849798366809700543684292961604883518057692282951442536537712401798674790037038021555816450628937539546462287097635683628712047510724394501344976967527721649420666759351407756931056221463422616304002476576482197135723480266646706641811426716128198763084324045108891448881740748620525182747112021108682024244399059828005006546225719520949879818537221160708379075805205208484175066001533474419849219054562521654214811220146096413442547380306034969870073067588450479165230100472501232550285355098642476199211452358190376549448863641916610311621519573184472013187826576298217588667147223579946750736538253926921230870904161205790268718465660273630778288246229745582080705657715210967711323845306185048602749729626366557375343875880884481768627680221586429869628279912322629120171426528186074975255832579149090294896263961660258701963095999121050563000783411917112050047887271549882187055035719148885006984479561285778479387274071250972906321135858151423055439609567116601667252632153786094807512832744064516985049201529613065388800904427538079805798350515422047036301798110881809233385091701098280460880054899415685963292149282135727708347652585593544874464881937973311717200660783967528285286922681613497906920161224128304300786357770490521932921930797641268966561999868994072549250947499107694870994688853954468157227316362628562554471068760543339376340306282628020210987109803990397687260088545329289226839280553500529996770603426786500847231530972081851408111968428431083674636123705012103388520582432487543024974163083638533925517477841358964786218133301350555899350570965018035199678827579916208112284739413678503964717233635101114388132063261788825470269458691475082671037236306734484923366487742938598452476688517258936612199040410090715413829665742555290616112245131707776745631055464911767903451697349926784837173964598015871270838876080761334230839045322717365571731347738897389503821117196448436583870994913427676443750504432880629241598044666494308445874411941657035476655606801492334499906310245150984981039374694602821194358791312949785578447656220623028237780843106272259423947376458786250787208854229258197003480475649422691741897232066000054813401910594586881968304898162102370296573356902768075431367708609264653536380854572905490304063800906213083473471858878961787454337605047188312336577385417620428096338162529759393437574675181581264505610760642099510547253573799824101862316261940482634572185855772792420877552608907375242521182549605313926868843353891853329955310818244441345379634712281474777624040083977055592167626921561480484635784363974799031814851725828442459161286765449709831648324182425593584530659883904592876840088433225058368148308191577134022843388363588830646254145562934485213112388162836779916226062886632541644846177814619815637626088457912771514213974312243678320386500841274874302626592499950207761358825394697596534688321713877789614176967018133565804318182993270649778355098331327688796507186352409313213317089414076056747104620700674869086466356118726707867262013582152417535393107543118301093427149596836446105049977629306291835342652950249118641671197595830955373952088971867194905871907855540246630005713143217947667767493842198148338305389842329169590101896390230063090114242089430197271736460343130530723613992076730452931831084303038767441479242097933510613650631432133748051287432277271663700093722127684078544631173983488724663494231467063790972690955248605191874844292816452906288969054779697248622612245532896191034842850334794110057265018110453453087128725709044602442205776883998196386727165899040052497878949770828787531506637795060854934853617628768118615771920953802658975698983526579548182187942437222563002647171652173066209784585831881030609197575821203188673440741758915317570436310798925665806470007496650237152647878589234614866504658085520374921257467706693019652839516530689669606539764523599020564644724729076953344646773265970142555135928270097084007474149320308055015778461247247418431172573006158631033288491462702197861804159548673434937362961810822083681719634570364191341615459913142717864112461706951272020765946041030088765565562933777095189662011242733417798802020977572131375156638237948540609304254388595025302720377324294538753202117503749358802702181735594877964886395336237535852267960282424066983900929154688421136948263291688958777243430167155680652748241560508994790045390134642835319477152442046513111057837891801323731062090733711686202489166373673180363953170020561591010690525547647534598633012783379891386143804216494597750781917772307948636705394929939055345960143292908910474681763662675251351648085130400776865755582826246693973176340502151676606530576339153400957714646643848866049534626771687768538242478844112988860310883972953385373483014587004796391537037534539183877673986420017549224073482135950742429614492260608971279308623132827931380567230482744830055992560342868618948676740346252594859693397996065695391150494440544353308374642755322045668270408477329552224882904462721009421692376595563408272378466408466747038220591041864200717054755401745038192958449115043724466883505539521534922830379958984649394598714721128472492978890233227379414001952493415951078246618967118684010440011976099851000792144739044710205414227297572777406090773467201429249613436770717381175422322448166369379008726943744691565358514064900187133222500608445814651223180002981392935393083135323439823675786469625766513456802225473031878506432901271833867627355010546337572910479195911263828395790900040136765424109302428971916527207399818515505331436919954537874789947752369237624330318496118998283671047489535141755348121773655011448667217305303541783279848095589416252234837341567894515356096353476930457787392712821756529208002759540791036515188446226697654075429670215831968393886368897128571188499568963825543719273009503085924835122052428877557592445694915184317320281728715272837505487485687195883950389852796817779098482000511347288399335810364882916422180476360732809111330002639472618951230498805604385768861687473395576357555884934861917012260586365332170028048934603992707941535641598114466247320219446568977131953883456455299742530614877987258598802914420170672688927493205907893679079722953355297725042123314993569505872206757633526491644130427513979899466349202795881572019828184217041778151977107168731664381352595199082165403617280501442759370306944843371792339473179825524640951987518850475432195963616756239441582823265252895739813757368128883181349134592161770646269950308444747107120240734525002203877525684534686951404129142861736581596904195176240108284519542358150080415072380101295754167102329061773730069548111430202203164844062468556534255910914765612620271518673244819842488770375016344967302824020387644648846327265631843362847751691242587832048429509752011779674013015250238248264267807282258274974828276936271995181814217074039574641878205164792302132258415189256199252585684201626292602064641326562248099367269399527371670532801151945638286363272136366440767143177670254588091883601011858064083207175877707687805558952546624973376041632236311827803131841226244459850079096441062869896974494438352973200256651174764538586385693741862044194380089616774736625165104126578389394430714929761606547651707406091596912272253025080333732589444024072216541147288652987079870323217773251718113257803817072082422750690118883401421199157874678636936168426638821352757942736464275795971098087682013148711773932414753633483809145562832760250685312441990898824152372722921179825116261582613803177163779929904402768535084818866813102777989777171270429912152132593706028897455325442288686764643619543043486345186490890119257011311649914605233835044544482629379281623142980041836296678635683150984005949111926217204183461979521953410828448364993825650931629292955426808292211852273823219776066010507207390913281879109700165599620385167882719060032996659846477839725938225186646832374010311467763842836001097039493340830370124338979351046454284069370442282755088307005944551676893850703206253520280234031951650438948967340850213097426755199911850829401510197948302289522360391709811165423835703300584596364795152482235806968793691506361262111999961045542586249328928366092533850316404164993525489672360874090382495241885131556811997608007017961090058813032944041662834978250756747611808105589004734653101163113047347199618193808444785595157010249730481515915455375645140578803708168976414875692270070212056002788412100509795956837524543925102320523594245187347433651022858712119204339676226973606618600762678853352130699921537524787967247047470099209603474658722691531416688848538565193528224057384454034894849701781789549848472275805781508077677745166490055719916429736580894669188275536465380442716786814235849499512223178132711743116040881330689512524402036538219442185068184230475277829546240681933658813308495412871678310472134954811638984841998937924429289489468795765322936440700337614259485809904245352404434191420233494262031116799173821312872932527608563731519602194681897275569666080091833246273542131310873928018927717744796659529938445689774627876225166884055507071831797659047017611689346744833622520049050445389393501632241771237301383951419785753113820813697448968364921675764525758843187939540326024571513409766425580522963450756453809951687436582126714732470466413386498480004983023968983308479524071438701343440633690018764331084989372747164778836274365892162905412711033385354670170259095100719733888005745850111841134387837002038892350838288390604739338060880084048416882663350288396457478042830296933861081315376288242035990791458492586026411554910936418693541840468281819410746057724098698073270795970633654862863568345815369489906642538322562379434607508479628842444390205078695811943354194616926506311082483698928443105089402808416871962781647356721277251411382353532026528739285707235527502296512896029920464616314730350612860538424971130195050809529690207217062167580556361848394759357774040776656345330022028411101580560867163696431447379152597834286549179094987618887630118762271325863214333338876481063769656963688839827202546706025008339908526114638478016943763254962380435937577574236021261052066464737138931809477439562590177209004851847363337927693028148684140859140451718433291728663438223429419513386175012747438663558242059685931146713021322423244718016424422920809493783190178879706439234295546003750913385159259322448893007171341550423023435791923548196027833130366354438048384286078514833033999243469824948481842896135128572923011532358329435007749903554676257960570379065752963107497342568986259528785937354287512857019426087488392468538713268493005881610349997593109017365137103211337673332842651925752913320260020968015517887321919319266238759936753667195804744715822098258582763261590825870245386570851753157099761554888219372425943956876827250115735045076216648778423245224177256138758682020978325333855509450345780884091220408992831740446434912209083664618528487838256640577306095091212012706769756380807458800394531089577869297150994025458264632633401301536649234668107297086982154877294663523859566864524448045896986097187250899040715937312671414647472167690832568348072993887740926335374753619246077885250168428519221329150832868702441284039832670385045482438222211862489093613331179518095180557095934393042359102295910426173162909678165485101325553658887329034093705383418467180477226460096151813589609811922236030593860567604734584992489370873877182922496527676073779444939300340096981977457117006552006306439277967179231402712491385750662658073958026179326374636977685711185038249858921660405062412234080575706126454968108779086349484970787036115936908153179096233314126778686115281065820473941399898207902343560285681602971857555026464497957208661419275853246335801757644167633209920070097118624353540810867733822958038100272264146678049351756896679441825303124171454004733364833609566842094248885465489776468228014746589867820168890591738810026159836852048127789350866746944012104418289677116064810677979627253456299261434629109433212771209405766929620108305816519259708740373912920942275082047035336038690577847713501842856225174790617636334554593994198050425244224299964992555050770512580879706966888784069949759840520670886613565574696652200551709291923375754595441280798626813087225585573256014370908559322908837610616743238345650534272711836261488336203166015185367599506623167433149398750008685816491540885936020687058382989558537078698044428907121323724758342712221587415247725017558575137661704858453402192057791083561546373102324635585202522821738634240165116121459938534657773764403823815747606389372781855793138226394310212404994148092792257904832377541789926737031325804330145438849232431251003334505668475430317925857986140719618682739209185062181013212956026931417464271621514816420154585523343744881752480773203076930054663991222101483674686665975435306183646863463098891850122154938620258019104757041855590629339581989765597837102682712395330780068586466344595089520043063131264213015264583141394438392480875584719851634103135289206543617165773293771984128412825122798868146802298702842948541837945983517419972333691931447283165195101442549833473671681840015017226964009309683930925355721955460452442738791560265323594684150881435891754166251267381813173720528457063539184140631527902222733263823855377962051864895235762919724882113001447080926937117930542996164262290645547752040590309705807373812326454896497134016099746708385812607806456802896173983367825852223708220289236237185733242169143509561387736569427146734436741443353745844989801135785092311621692539288882704855950936470282872967370490411409736419880859986467489080402421481911829332317146869135086721741939447943386529036584499076320498508662224193909221018177680501803040400735905489674673015931311996430906106152514703472089856991781174330151507771347271456531351482652222025137507014878875525429103308460291699953580364879690739753039681780037730928795718618035493061075275166368933219650758179187583604630440980895023743617370222620949601831818051298331407876274289020845636921601726823267203049088669645650884311843202381549185751434909597746994670126533082724317797605031570472290290763795033946687413252791372831420512748917361341554604740300743220712239395967096902863659543272740256631402966144535525729254652956662149025017952763452635716525825258355755498648145805211886099919196318550061868048700218356280435364425233458841312864909639789335994863638114444869395885132585292796272469360742152977745223704025132473021563456666973921522602660609083476101252906801509180983115049834803183490290492042767568301633511456575220793971957223568170495870033828389757752485290464544304558361862315937776075840985919037181842116666897772058647732555591451656890272037204391091070423633188652894419230188590557626508771644322237838703915589617125326012950997672839299549662453426363373399704862120001655877383439268825918102740403590131776133791901362144506565444667226299046984600252944781256616165281994279662249540948582763097717440386276290974331396505859122429538899194797791708446254483506795250249838960091171508194919274972791491262182870796610877967688188762755769925747351023366385499762499654698083044989184446277399539028670046940212215208554560067192524025666253379054850068935941949460794848210225782616287924553640051518943510523622223812004932617414049790088870162476064187218957981538391139132572705134640573717001609849778674571756283975761396795134002715145547058315010378885850675242056525726518890397015074383797091348223181762528223210119608773175261433889247294789124015213133929096375070568687583779867741370589517834907123828383935277799118221644942253330475381594521603762426096489997026475863407430269861391263348780433149626931913690440822348202119521266955278457223360326799195813699457129389989351915856648955303357141419729804925781488361936821238910454605662344189712961090290658392152331342174257881733744570038033973882213648677950361421902324548592017342853489253835562736295854784182545075680985294837966038420604687469916946021505713162355638677404217522916648672917617269090778070663628081855672378121056961772978794072326029911161866339983622431506646022924285051744096070966755359076607351931352747240022174435423470419249642053028215467218965975015476999152361316029025985816237381341878387054449706444189468015212192850102355099017186786599799017102259300206177717794569406351183253667696557341537204578148628002548199759951537391776304553400054154954404640730010552202542691365800239463843712342693264433943271517613036370270027045648911210768626828656107113864810050666357043570658606495978034854702533636269132362746039844823681057025314953810651649302615557562361115769273505788656251153258247277077321573614418232321219745112430780021740567447484656940709955322490132029282053164823861503614907518028811956046684540556565396045992993279400380182804412509082150128872283180581766208010084924125666974021299879657206814108369039420192734503382193270224779081508266630627052099107623760835201581327037778657245823672265780941088664485951198220002497039421668441693232710842827247181484183587713508931858537673130162946778893652865126259607341759118817217054038051933091940526745379214263540415191374158600575750663683900682698150279477551113191174987208142610662620876219995505470800354178888711342084921189533446737908821607873677016213869493122618910893138814611785087841300665872726354922443034991133047346227412761954797853279188856670496725439819359946126026132834965791744848494372236256975702335464698313084291187009327050054500367485534513154922021067124419954009247753665223234564009468520718301499987275008333562560944209427367401703874085405422889961019061973400452537880377990535804680882075341078978841630914769923149640893823412471489098803505647607246206206423462339930257921206652859829702952921878492497816888280420912695159482839447814361566275083564548125870277820239176274871255956811159563078675555866311133211760537757085226511986582779147204462252554252118498723144357883027541266838315998301568427508570292742325930867648380400145533369583756102233836411998839011021660598486309442710729272817259567555778329454422442344208806074081789351205670846561415411632350069310945648776692199127751101495129430393080059089866682457558808759463329652117958455052943355793024059174430081858606577947658536319606045883458846685018537001528490744750922888099611641780580462207839534219772519907911469928361338232173455557969916527672604643747414173327376433136401913177644311815439406348872369808870797966059600104422343768885641227737102301724914805420614947480231236178723688174704279793362174252920401676645328204427596213716396216884314661435367240961632476911035498465563526814239136777451363115689171383276702422511295430547009531064743779585737702953206341753397658093778052692257982742924437313361833458888079294319060593809045903222398060117099787434969650989367726032402063722624615280764542073661694675080861862490832832188241919422359289425131157225253440184878127677166018296710415005959761886093396418874137970054782806159695461627895534937215922445415073426680576755226077986164241810958446316898771406039427717754972760381009846515051654566431398522112346375938497591694022564794964051702603401401039768148560312702619461541575643584328830080872425729223548752610786141997171204721484494539351062297037935041092382854050306332014889217035759638321848195202996352177324290629766369870507582382956361408639894283435783513128122989884306823702165262205777813460724358596433976548916055552604391614786616279697684840246838599845986379382528766015621762486089977448978548814426064693250913187876348517079138121800866381548288831304614131354811025007966707907799000027244581245343615533390465336144326891257472364523446785261575981680183201854743442494592366503830688626709502488124431590560762958535597745432002412934769104623902427687174746713880153178875958694352717766058451219961166964432454758655133120038259083732824243538339897959726732428147050866401064077082923372904201345821496697766764697502263379253538405493987297527426152997947549717360612900733044136877360919743855507344993250467036338515549569907515952302079967735920298243497336560037516787474639699223339939623992687051014128205307242929954213806494100120279429779480400367141057971893300415520092943747784269121231065571722306136437710552820713992798688237263043280406626793659842611219104418363706957594591200849076168083963282893718706721920595824378058517469275148963773650119009706358459266233289184328561512934551577102474566800595163333295880445936456135008875175266132032908749888583071611765204727729709590153795233754162617434134803994522857492333112187321363951937616734259570327946968133631486071562200599979316973923800277792564894385989679465004236678401444360510530687813390920286208202647487672070446102912097946150667520259652497555598523080698683239248929286608959447322352646163094264074891096602946138061752467415983338787961647991616228202903009637188647961797888477386313414344822465282239183157034565369794770111835467716208270247441145625742393435004890479679880389572106121908421201422817259167930288008725186436589067758561927990518127980887815385727759484489396005316863746018654779096186930658518827739384623016265493672831037452638062311893991187052411955630567209054170573148761938430943342771918157489245711043844196138262130808226925686564682937359762725254539153586203178588044957045449596150477321646171357053538592890368591816754656156844531653653046706276116640864139483854599959927728586358969000992869305968204434723981378114084181105213614385624170502718633177534801466116278546531131732715576012442088242867855176031279229289854173485922130241074638506802674107924365491486219709028399089353020188542730006075568067134684558407649294261973523829207909560254500155474186459670880906848318282768094819492077034398726504345924388243857301242505715113997033731339891295189052296806233859430001104074225703061428802593302004435151935993218592411817068923178512147419359142879738484681012040555918477863527227796832122937838956389864722224817924076373184164637707088394982384530020230190872405068951628246361336875134203661242064560275284275877034816609592143493422654317446277603989437740772746968130695383427944386590452145573461248404695765172220029212037105629452728218509806741927731713852944961273247636114110004499095025908046622648135002897925918562131747140069119026483042436661680105554431706961430316752040156202626314763079817384716737544523130168445899812946531073225194754944733120169022069522643990904011721196979541736040624232214896862387044532148980588454339356260431356699210079394152235742214060345153123638043178275276955196072618604111629970026985458876309706166329449559341990090521416280667282834004358067403164071304251979788455779432212245349462858428247304924461009394429054371338302607036034136860914112390733610745728552573523641147737599563918219893891949807764230709619815544735807906660394081758884230719679931736361947167667916240937921097418164602905005978407759934236509769577117745091958321856195906832255629819624926419712115307236195583719461657650469700323628861586442865658671868907164012473433970998776317028454200487943725702313898979234085939029024736364139769423556102891475857534098276356553250371035295921541845873266847174903205764612536448688146560386235503953813987221976392065304732015681081547709729156222788709968682595948919932912889667193234817283847467926373643655988334104952472200720465758586040835134386980243242186623214018222953847621217893184614387762301751642358271109691574953301037130489466844582305877722411444118495652287661899645131082036547874064838071191973001657308765753503754381091524377252408983291537225646186828400066312441507901598271109736620985271620355232257766265924311264122172649401052938055176430783219831499484747043246174519926043201553844279562802784648014546106512855381023590111420601345016754370028961946578558668743761777301757125222727477058747860166938961588743248915422343949221673911111303489101164998511459640260286825743954358819155543992338301073748216686163266198892999671622673483698100393549460294086133207927196237641083530752663081717854222136608261415135703960978780029558998227472554847285156555652931135086916137127054214695634107209696667238089584636864148192968263727858316868787365403402896240566447468651244431675333622065493546490592648723168119976365284979151271511750506930609874159412244763336865811080180564896919997300403907131085960049458269386319747063247137622357373229669293837337821784236647911488655085198231214230325823347209393010310043140061141920984726704488047816245143059007829777633568913146058785546600976677425555028647465836844426588152075346922463665053168336280009955809824578038395426922762127378366126290055334969719590236844748183882931176083716382072621686714340882920012052455502004911392668720051660943833008388440298623264808645119447831131495999236615591855639417730878713028714211202785124254137600349346294940967327758792440460560654165132901443676905306731330663768760428561347726160297249805139024912537645283802246618401281398736665803157904292339229558700202256154757722722286478305860234286835146703505284292671082991962933079393818601428389864716247234300670212310906833372154341917762202114139021783245922879365094436128796936529061054009000220673576877189260511501446411114773952114485672260338291141968740954931443844193589371428629413385846975117860922007468751917967936847656378667668644478080611675154932024250024522684978192339194032931640194080055460732709813494841031838677228876289319717680917451496847016274512092994054274754826115248030281147310166044669654299807441034254152953510646290665435807410411481297660878869380285249249864083362236733322003147183343169944999594885696956106186729260096134266952719057066143581931586978994462584404511614957309645165966914808463098553888810892858887075003689446033639236037112701949230351698827057102494628153266044388717430137249461811044462039676447084746994568678799235916004532968477678100150289220774307348531391229208078832295294062910012775482182956786403019785645292410154336998063355633123427448102395484130266781750287329741539037578806437877523333853910804210170058680443858022754091859493247608603963812144635108319529061111716515376433997809299914618647503088103014397084993530750819823310839390118502314699387697905740494143157547944012520331761407655479984551843418052629646592268090228441748084095792828281185480068648851609555512100453125357619862454740516068869372211444265169284266849262387572444039012844850236528717283078248312141334712875172652571129398100305469662904702227961025566448498612816346020519493618912198295542632611024296835468971447814246273730381115252058448136159367996635978956384757163834590814590832128895131186076520789119757390167104122292897924640538614231743136517673952842084863619638656989327292706022121821633953048068214785345821265099336801360254276856560554867068108304197707246478129985928924338421901327335457294099448512375790294205211638026796096063154543646224107666897382650736715176592456383061306370135337357076573766005509017649128339942355537041963697969608417866466465878149191371598117701866725928316928163593438047012572374031275321075107406768334194442405407843962805687354045817457567493005911667115249856950488997461676333963229955189553236265605050122280652724730043266152578789461661131585691876087684965377083489814748651852040889812987566410722316954395902185266931532759694993336220194472569835825914090170229287376082030412380517496400364112209758727966437745156971898716980464102630258662147986492957641024619168458653933400708344438110975447823425343760895611878784595417035013982402885249487916344953811440800287597754216413949961866732738902377822886643552069385132418483613644708438325509945301792786539864295078394052195380237411372503876844866451719003054933190268483234367565296255368411103546159094548976011317790795125165574844990866495864936601449637362292927740942219142833083919480073633524034165472914221609176001279868669663734799842581003776938519910739089116767560920027637219320478920536386957369993828248303984795470869084018423028670313192552005632445966089003530444621425869482038737109792393503907632238064431002742388436005858090426523036987646522565255156916464590360818532722455453017872925962279034681855258350270878363024823598849554706170445133480286752570274270673396130508909673836797069707172918652362429153650441676771252505214184514378343031697277140971942777776534820603007456020016866448745644609535969675699230899545596614188217803570235510890644992310828451968023717365497197424866207939669698231667962979707421219770676763574954099147021128753115178259702196332805816523482456823119997103413196326290486112749743516466009996439641967061692776420866527050621425059205204110855680793497383262965342563132009963575907679079563071431315095870659706137525485717902275330522821664931778814861452825362061151099941047761093169129803105062074219714745587336073774723471168541830507343320695664794973351360347064012958526121134124789356143804945566222318358918614220945464041828988368486209408540901528128479996654668413929255824791536057035366657033736157649735788282674024713913910286106348049572837745492453127843539970777999775320698978193472821646304262594298757491603813504727235835356542222075495183043304038534268774598893315934764096911974945391252900716845654275362786922679374559509520676086940428687032402355673702848123922393614639236224032825179145083749417285175744187657751840249800957090328599374440873985807994775497949792355371474350100191467228929131614686919791996627542370267344269706611530603617579808719322254847008013176277589281486286851045082655801375387507033197589360188620224073015849716805200895187101619672371109949488749825007425408892154618608694493654229424935319225803108085280555679840898639752361045114240049535347468886552681164946355769348230792626921129945131241024627269295313028864710408149693894584877061383237746433436421010136023042916494238827014223450867763104543474879498306542963492897608372642861967020128774092247682999194493571481520944453737503231736008698526352780037306967840183859926431180549686920638945816286342565821262100341131697150173040730541664364492875064465260503581415763157455824709973901224623332050717112883386301575347437323034507371361535001558823977617033314582511342843068524973568410027667247008012175797330614402130805300581929370307024333307055797204862044175794387309451970167038984108842754384786089549024496989511902644888549810812513155739305972941744631104110945201261620372004511894647919159506412042343571377343714496538244088134245482287326853352665245450285298770124744119989532991834076776373789543456788308908234918784756265234292849835119147998153650676747095501445264725012461485253003298676142493182449976580053925530776263422526213508542599340928634411307258296190275189277915898954873559218530887333728034092632068721650651490460100955780745815841036368791391071074834615624306196730200641393224655583831363208917741139343105163196580855156218340473678418463235983574448251105071856358713456725413615017350845693912371684202551052299164538114985493641596264408542583936784227634051795671430855571571020983341042247990909733458406253651446286132378203634928381074350226566163894973081042477549101717184044159260108275009917907614681896529707465238142038916524334606422323999012344204512335026613338785997163731340435599151600865773735178881120828764708910250327593447189163139409714615436485625309721575366252771935748772544454020914508602881417801983377328499098606621565729472462732552357463626904439559653475207652960284444574185628066900593847192418916100639391791287456283078995482171539978224712399491439309185201842431940942777450125962116095983588955061641448939871117920371292041643784005585798867166721721678212818294318900250834926674504318731513122901001369105652009190524718933012974370102909726874232311552897602010309882917362782174931372751575921895653912658388989943806315410884069794501697629884039050254713955190869522948040149959467928838866448145286906194371740586086754425070466162888701716462443247472716049954822259941131612643303813548462534729109164456090985879063294799728790642126942022356410155381309231286930854242141670869926629951090566126660046227471180817927010886494088813192756436932327370550931430288775608174002453346515981802809662957002049682843072665426768672643871468461779158586058021573935148660289404491003495589699717645422161834278682143684769074120524342299474573005230286965420469196786917859551929103974365159337634874779410811684696839562415996145563888398429748107150192669449024130392345593606793549560875909656606485550856530705995362787099870434930136796462090177512380357722755138963587454347772951074068974856518900793796365310148587410981066977177650838660389937360240571689817750334843469314102434635685301706423966252759889528412643536565995037341869020322875452547098361679609647216983971583287998276227046870082225044888761421922333599099175552423198714729653202364241481661413542054702999785032431380571004037457511003310971091981073666062439633882722413763742928614023172088960880119829550170163277636345902803115261285943535900853443988626522397973788206462175691190760893136956131844728750317218422450709879390328871742549960461384158664315233838730126906473285387957953274279310708669864028374339639500879722150137406847372875137293960777088627385863633824432820231580140729691368006305042179485316319851236264458886862447186568475661804934473823879966569635960298520831135334440483743575780834905547724211684806289376312283080295401967264178505539755286298683845912127059023947961809003547312267872169210223826882360612752812113183526104892696393636644553647414649562936740353019584243245888739337291690639526787974421474769796994083981694180104479848156549810114507005300884389576654456191772978145310698279513927621104892717449674931732789213392829740381301613646460237760887923088751956115065662135146718388898961910478987996828138767966671711037553082097945713902497997536333161823223851744925638066581587786800088924189605296372149166264038932612542480982771265976432557186813557996326077589075751143575519877647717023666367469739520403394752558272085112521432289056149336622323622593342967746644077802835234319238643393706774912929544327561229619849068069670091129927364726962546398943139144253861886469245388887206968547640649141852583019206988231012647142180029286145925921519150800344740443720591296000095242595837244090386342527228173580393483688776162517673537657847143639662117498030555445090032605877327000401637882602510455869971262161938368071692019160208576756420138083571263607093981988007243610631943227713895633465587723055255881258945802679040696262825999606009316458464518842688901576954444997818320532015463863469342620308074209474842504855346412545609936337263059310277512255483327176085339703475490424242090627978373774226347421963220682018711622972079620904452304666614224000022568050074836426599632729321601941797658339265781149881382441420660668213034604051210342981915213509389017397665350686945584435164376476968003763550756641792851161671670783387811339167149131469418532446305099673792787543028292727418420838710824865974707658000478006519220199265752793496783871679629801571810264190722802354016733191461502001735814134137043169672070440436664782474251625746140248550306734815004935315521893000827707090578068237275457867870435887963320251129986199022942924239915818888031241020021139475666468971744853105071336389921479414199715284345523055525320571600384063773305166625352913840559143187506223944603492129544944652832281706204377130254564029898287042193752838691328613788351417566765975771052464679754704671620733113804297824010306707162222893494009215450005477005779691247048700683982492950819104646242227906919715970763377200344151210850283340806539958408925808550246849350262001125049779624050597029759249602566341017321058530470726660325366966212316839432000574364109351131032499829008742870419776965030266185745092041075597148229707767582940955426547815791002414537747596223855543664447221778683813219926005352727318602432738293525551263899038734046303907093834392820874328283784877989219860893006845318414302654092927873472383181821232460982855609631293516072306595890002732621191692784910275157724487404737138905246626781826155546098737171931071027358357647743037760742964745418949293404772200126167181962883267751514725871401309790753628948022012097684454599073192654858483697740300949159393973107319549752378469181286351689130884304326142070102616289133621251692187702954120531404024056641819465917202562441446875751680303869259951468206725775868499030246609958902976081969657024502332225499593238637429130007918336902781485687304763114743761487428216679624400025246399214840286271251409991688264252818265803396113755726466828807819322978657786340319885255514076017192124000459680197950441323577488526574053613619706505739295638792943853414634392552245044915785876586379198014371980463432319018913225593032541322620517010558627483202750045910261155935606578799277089371217408718906695185181742977714866850468731370277603092072722719356198122764537308197296534474529877790192673172307345511381020852645287855325043228846067920532363346506398653753774182355695121809936190151384981751619187803499299100554091315401304095241504540177972950965507484827288421616385243953987422331853247012928403492292976942334944725271228383668457244967330818499724941679129768400356934203593036453057848247697892478008833404702285252814574519741787697309623999216099056564004803534436096713264431159477903326720260284363726083124209119638457742390140674184426885554508081042421800665315264228506345932175287988345921176370195507260218350529335404780876967689048504885595421763400624957373702602150210524924684247087329917742126650300013028018645985862681771856636335271860845419935569290777710590517531384785144884629600670754012880035947618597065334461473620957551631605015385322157815424505743106733745303352895098302372514794158821652936300261054524382310106699087401324263861517262909012522295625772062798730779313446926399100386842368025404743833257383369348395184203611456604823762243147968402825706991343171831165700899106216574813670755903888111952067233561108096166751759800433963765301161638198989864443433198918976346240409641076864459946879072758985720190198310557639986187235062584837328442886967874709577515480745366467926877786343435035397186070580234165984851054650723292831784267858934246577137965094479835097028225868120368862309536564818987923182474829955761969680813031632857096211052035879435568793752806507855729392185611240512089057560814760538316311662775583364109669143489223153920249175306100399733786310377773033170125052342559997838543890537125533635709810576160878188175447721110059015130948262730750285388309733939468502080679668485485816398399580983821384786652014007679993833395855455935144292935120527166040670792249828799547858652810842900908293262846775234711721768830029667301793271244877515963361520783322584583470225478538515652645386787232030913255689235764082195218472065283135130858974045026194595829652927522071319315349127766134758087664722914575923697586507775036234862813252373517029953271559856235924230161430045140241625354335480127305537384085855641290677827629451348163898287756028882402397547655604434277771442022198196565405972226783253936877354614002210081239568772734409857123061140099625265574706547267610126003420501203620493631752397664499463801679616838657865367347265871383356493544312757956640919566548876727175589224315506234910650812973319149912038048924806234486874856530909801203747479904582744111050730366396381642206899960434685446265895476390776620253505514887580443330862226546691227723044598479647952176961717479182927653423864710359927566038570073262590016180842116242492338643218574736815679407112464196299033053837954720141315295768261193611466862626584094630792302315649535711627457100065773993462201378013354108296391182350298170869394731745228120121456658594800826697878194827094162506870358847478858813932997936537044255460664691143638160353357937447350273084101550577399867144810604320934761629547830432672988344536409429444810604221757621009317786509809707730737667510105569630436271378369900972287070976515177996830272963095635279055622992765112443961822705936187495324920997322306823487316044311906459133195716405821223875496306003445806191008245691642074307567561726883888414276257912780258834305693060043007256985120079821100200204799184418851684347333370574750132772760347299428266490651340529893060280504001832323842207131257273577288884472415902942364673672402627626052719390139573816512552618532060220731991056780837489560402242211165534125421594771207988254161163646804088316131228108574970717004420569137866978107745998715472841025341018692318860664455527637767258473563858632728398086966237055059441299712894585958972410820774891436457753941140963525070847182313353897362085774489905389927705957050371303774076793542237464367995432392562014973090745817675491539119322593484808185057399562999261792257740183714043168944307919661777714978154231783893072529328246721534038750535958049919451613837033380165927086959056893154551139040679562079599323479348969504132280486533914695903184031174843827468725094442028877686787629804442649254984855943426437392279579879560505220732279079384213329489500836509373324777313624818709843082870128635722069398191466592671254198240527419105944693595640435104194502742199255032070249400094513228536669055498267597025068737006742200749580870419645817150236978700811348343725530088314803686776490994753509711876219897524308858290455394156171009438182801519811462497526921114860976367244836116523226719644994253689929096827995777972722747432241663123355477384790993972701621625888619707667079946253108039543533504791000357567134804759916140815900388985632153711679005184177741907573930528209002242076164870770079746642668748733044671328603354446114876454292589108444865073555320320041244627758596082186744422759344707995886025740323297129156747721615515756972535692604733672275737510466562600147071144083943088273719004350653465475896115856033511813341976246028309817011942620275951144108722178412269315271624065851557228314307258493735179563654738389476097344251143203466891392060845553496933095607366102859113184534905878499093921273153286942296480284516528762610128661994257149531059991298238162940798680984853732875303933954306948350991605984469904633443983600965580691514246664341378867358553463327619087640148372335683780477002733888169035820040343350332014620434959321949150687908199253657936972636602237534126614556923572486826729330911545072958002853799965431396431352078338186606187641547230393286089478300244743348557191851169814952183516798751109031326731124755550160316486884502330538705317366720121249109446567934918195241749033142603587991384026460774587555508695012566492756923302820088706005044198438625568004328931696778511676128298475092597746744856813130680412606311938182494620398276319702164104220638104248281437875328587259755860193141706078555340438008830071230541004233781799537381390038034533053993191293126338316920510540600058064542257435680611595673437562324097982078782500860695470884999986523493696823338896165785900836264604876831538606018763207296249902143163851961796884121122649505340301091888215266950283282183344656929500294278319680247229087319141616132223324669421348446670303863935291698449807903604630044322557446024275843585466535554807582865987314923557640182699629926071381207874983790979318830692349224848191396679274187076316010958298238264505266341574405807484940591750431253678487165450017213660996698129679117620880298972805017549863801084191071082194795059148365437055029540765892673490544065874003899957432940552950660197468939785638948574908793362393880692230450251473697662910799721367578025797601737438428255618183065128408368497122741440248315610573509780875230361150425712325564512630936706357379255096541493714858910483894908493606770130145796637733815628172573285731224982036750536107643860397244063020829811525567878003589481796601472097135019277319115538933929364896063231311763335589519905902861927473237100571746600769674466169485689650104980405001368297236776151959297496761105217649525004412850659109368277790605861328119375580098017443827583432155405984530660500061094079112592671903996251560514130788264832495682984937860508249139745612661161747994980706737697512318310345288548641129086562768567168561317075073055562713450261555796594982434819344818743820814706325554650424679681659950191390133097169712929266110247181497245723401994190115215692715781587825443445927320355882904515295644577044238745582424590328277494907325042295580821454040430890523937289689586841023395819333463367983132009948956904482030141820233887433295976124288121652049633900513857708648284099319666586842320352117774109817259552341542774991927495969431634875200140223018118434434974802076030352779114140630687151264485612140324852355865295440394987790710126724199271884855601296530866952914983823008169957179667182882908939905870195385248038735252914938339194434434254719842694020975210616892986212612820235038096329407535344374312948736594561287461202515021371771996529943144455809858671803228418869990134047765473767434622980648177777747594316279393148595308716985657758815050678256107737650057773854985253310704825316947230976561878473398240990988065091456419417990300670141605941283775637551113688364100951842954652150931979465747466946645675003609529004582703888791454416932191121960577681120172951909999864386182613604422796892527037305558281003942853572589407859097715052586283904100595844513352928580112623329742718663327919856498435879483479846554525024794123450785086718572596957052392167824318156768108940568709516701277378471961964352325072696232072914803702477732604603269009978231845945884663791699411403215216493020329061120035167616665023139373609391297847426160073351579113967115951002703364564391534761478217281431121206634669674086672905471454458290590531856358546786161999213528672784892039057042217175333064156681518684627871079026888436602543545193514097100193462590488559094918113418047609602895397079059329351442745808575645840645009029391827132967090931156084153206787128969483078957009120811597280309047833076321659347024311600676029561592028146402515811420787494995645035405680424926532698708954758066316756876548276849655200636955612955375220169664338185696811822063307737106159996897185934254906279681044491477554718181030537131457947340865461576539606134070476640749766576169341310864378165546328262748239986962096156287022335220327398017237669891524246202952859513019653655090591565448480974140403626854790966841067039864068334814275897956864813163401700181120617453157106159047849034717524062003094441294366715568536837805502437841530954231371911080294348241048453152587832250549278990036048652387693370626589765056799684411046660860715733119331024529940578768258821783634011423134723455434243268380937884576333969011243064190740561163357319345769429960500679608012835777384490291184315093552581893406176091255336716272383903600447741190691107101782353824236547419617737344629725830970290052517772220435876853568651153222882978370686019784654933647596347939370565762717576703826753207663003229084342297895534931124293178488369257699777016549498435899500855199628032923563612626697329045135262726549108900803913932032335530838615659912214805388592810464576828827662568113319208729744035615574842934033401852113945364559166245948817183247434050695824227947352936110094930659923271821715968577192548069435417162764637571722169895718393682869575084369669661971391223967195396533027267635150121341751988324447189863344666551084583935148347942567551471841002770154848044119938103054486891987616709531752559646952354179213772012318591706202825284175814733525252677353852587890784838425149955201529752846336946744205169749954055925288604202246821254766301401131851732263670579297700208841020149706302311618353249326374724417382786384258617926753903774847616116443933472762697876699622201201402961914979047162774742895485575952309819892727025581321236962294597822039913235926850594174293071459525112243234093393308355443148596624181114011838810021660903785139287845292594025356862782562446611900803392530442921816633676583986045866997098355207203024689013984294819261361429253938187282360009019343321328100398871291735103221253093364555037148098631761417653522379135042367742686433577361076651978705114080030577522038848885428902813342402514370473505594197346770877347021146887923711925354156073383137163468768888189156605897200034372040072037734611052617130577529361659527643105594684135352103766934848580095498890939988129332052098950394407554181468498856275533190463934080134167532514573046302247320992461091180145249474406605213254833566654650627360959834614938052439675710914712982915927844890681003968160748663469945178074887479436514232504803748956754360833150002081534437471964943312155964525807163898870988131867522662322871709336880332620207196836836539614214708799211484391558702248237705807542458295670320026569516316942648919916136130126242685296209598614439645632361370594130376158706923510301804119397410236959990466479120549730266306062374652493469122343573632068682604137547526702185889388609202533864311547125490080422662763931620168517002912990411445140425980222118010504263230359110984798375370198952846215903101821796882083703897680527911422687694265078429720753467370915262793844346293200469086712695691222152365826689029503452762901554334357662463734653262286705208124433784755124804278154510564151681602611147357972421525831250986613491968749576559045398325282034958178052294045728673247899939163485397906866476541162924933486983733271242507013105929387134432981893497408273996070160213252370762019776874399579271992673585885941703248613904130773316948947594213020079293836270711871757779913407363242921081154916782318758790061813295638210626618782251126707698789777970874261712591252757706144670905512206267684447294612618835801039951682201089395731065750971111605270337747194324685679487893442226568442403455902826211750877707644311519210240814840755103271028402193929486503454265608688964454573862477803322998420270514293538957700901542834418608152774558204341263029254238440151123894428294444473267753298736644732276872147611164597904260742557140776218086926549409876713184565956639406968722041052698610964276421750745239206463422193156172123814111405596299109273582095905819182375566078760558443508487219489486352411140493397243545106550260915965340123559564223096787276804545272612062851223494244104642794924124423544445260023253235436344467314058866190187346076696372094391684001989786271412875102266631269514659101091353572191148343505169393917590258371541690745945085261621773977460315038165831554196525868673470414273503098042182385979908215681441866975791557758015148824032797505614426098011913556016187130221244776257720801436257294529412345989834605728066414199353115216268632978759566421286355576469224709838502059238076718526795620957250502683520261473919399385657789315958049232588256245440751336401954593332377290205598776741995109109809482767655072115173380316682401955526257426787860221289630626635761020097198785971496083540836103046033250484900487260344742441891115621912488982569486673635648438701047705235885743665690399748867390235891397480220421884232254714131181439439115945955827291986670567772779481996743265074711177192745351106461461109210577831498268989785048787223311309640702295047491243471330546532215043184430105843572415471706940197441555819091467495242192443123292807086450710617590475036984061218529857519973114683262913884089629551226623765018787911269717837240369445345144297123901512335246198738620823488146532089558983514926491194525201390985735943523170120141905351546513385558293609215712772495974777286187267342378749389514493882544401387564195970692587793889259564439863417283884372283380848041321512184039757462192977380835965534330160249062835346053117982039006730713103716059554949688126708119750022763621063130850776226401163731655689792909880797049155656793842288418764314162990515294689713823891209447347724182933526336955938230304690965183535657885117100029334533284120830858941425885904257370259728673336706216324765908712542414970401363923031104461485776685813080212285576174783145537408708220644106163351148767829972034712471260061143084062478267134137323096020583207737754289083540286256196219772152925844756352951857179466529464222843826263014466246644301171776387319228798610609928687999319845495485292715912970542431326687206179641878145923368986390360806187702590384087728017372426922046743209899867258777990220825569187417637519248394445861581571886183149849183904312083859315849247219005856389882165335806053215550419242033020707818217056617439969238006241375733301144200181160760486862641781577414624852500770375294290980090813201896738216205207752284544438941817020603757334422443799649352572900024777607987549151435420207661480857365974869374237290320115389488931816274123973050402710216850767248410496880583671892766506055143778538181257760856808632495265290255803250963233898808040024480351505280732858872705190812324966001790864841524118093470745031199199717623097817710013775128746040584702816214974860399784999529519097870301314694765871370896227411718427073802999773940829472038536186296726050587213163198605266036128716965383122927862746369586909810291632180346133483414303974004269070992782816668412404749915786730853664598983431571229974427059582679565448229315828476036352135321147734202774036868336288708832665841814607297778171512291116361094049825264436967901962588984336292330720293320852957649870364242107335259000881110267539523783871546195223496422204880301721510388244798383703668190760643376390669511353863066813310409018588569871316417577757298199412006081324589610071256506750161026606751487871683515462355234572629699286937910790772448823708751823199519786913313328173708118733510084616920608164974280722997236513720700432669592814418752028029719233084415121359744020976512829930573487512510443720757752495969336168129379662335071321868992430657310611391008219687272615303328288284716369856850451447705317875157711832250495079682427175094324528501078251882858558181833756351441490224178895246037175789539756094955220366675259248466411224182680837581152065897478411687649718423346747509453777107482203453024197909049427134750186922424873059496465061533934872134653013944193949089395264376042509703421308216850427047633680334161639741272520381808588563786735097346941687026397613935006685893481881909832479081119263587193885556943482771013566476256788728881316161924368116920120816746785065795632828080098140968898502078310379088847210091070496477963109484945338578956015340678175893671632163714617657501376203342116581047368012554643597771803186784696505954473311532192271902299928130330245235717499197311527581315456038169803196040542777183812274188630464753884048445832418378907426669564072424962143665892272940048423910761448809072269539989692958839418493669470802835764962131026355797926928277979645555874227704475420267431631040645700404189407533172861305039966202458121216291820541556167550416216429705713688588857453267373850831179835871789489885882443060362527515656646911493143389689311142910936564384665554049641934172827859333627460176915520124728008240768272823671957658602574474516423955040360974607280807471109851095398244375348485367036172495828024740239416942749964113736797459083981308398719144955767678577296851168891062301273172386541778837086008450393719233628180664875682575981779985269183065372557504609929377645894520518124237380017264619526787217320051690836042748346148027439473162650165147812026861171306645616519238556772078501803373783850592540677499085439986358576907758036743612258567087242877425150687986745529967719541081169389753178311357028054056658595543570247877626853519471168426833230430035000821457133613970087191465199813509194843871214014472619148596315159033379376178547131760072991358653166716411621300394929136911166586851380890334968885881300827192758291071830754933278943427709880718929493788109349528190256294604762628109275967027986454145950429750294535352683032548461424790674061049911830480153037907167861930234145490127634095976408182192454922731210504370693971292393913899014452731043198581081995125490843658350167683967886773938775799645683172041712043004318299372005338630153962353478687608632477911323389741764474832217811035698938739269154490530408763919737774170170520656683682545923351515471811113739300836633561421883775676292518333546426759448393168401130455632974766561280893913810760414593314813623816404994969442074718547309443591908015701777054730788797082622811626653527981257888765200293380197909911258827915894730152198393752372476527449187405296976639245494257639070260343713025897295414920224100419649855175314198379973668798192797191932418854119676327517857584774357702192660248671396194583229406123199229836216545332494964151371354997751807559166001367182937781527485740125462497420689521647459421701427567898739772909829738165817529474286853240466001616677434895947618947605024271862607541701430994850499343789681374455988122239961745929743298124923794372784916728927802708996561953062278406103785780434589444563778690052328187585134966680183487274752808632708944455728527723555117761441071074329749671463961865978921912804068859980889160856534957026850703773115304941964459278704157481560023226249193721803869644018321187933681434875000998156461173128034604733094688856610670577858037140509016403113538069511038122037179689171527835314782197098336407413248420160440626881033088742783750221513036013085783545432883293213045358079803918832641706013628894487041521443823615718386041297553456862859259551019989201345393510302211320595529388701281925796182932575513824222776358748046069140922101379059153803037746748238709701164092361673450157403439399875732015172145030153689348018529482994770228887278803278302182281369071926249801700701264511139648695930635826366224983883572401029268343611612108453856950871120409897930703352150474544817325048878461418699208012421409557602925096146330526043590561922849643024803290855166570833972820677526189904868244599888467951865613371891386467863720692358178517732476809654121638548108391849441602004620364392346128450320857121212746273069893615383344426849736813937055025580556207657026168756782030284685630412281094653548755867898136379847500792904379296347825950960896698209190843348134529410558091055554225050280418679582571049298948655508233365308272765954693551157853717788700630800280746916555489992071245908055245686825374608144654586432115825327781206202779600924283343959041124149607053431251372297812572836637017205072762507427776126274172566383501135828670091198520246343132298533890260935935094615348987256184870488201666792583705629183879132965699571450810337170480517948098025496375332275083390185174742806320064411988595536893847604922049695684693318391790142348107759152114907005560819657533203931359223228754878932815413613674918578556769597173792222510120820019771421216677097466770048523938178321861631224020351583414884236041062143236839283565254990646064322310158528458679813639532406062834219852984334583472265485141802743714361203411887080790310729880318775776187329886241522034484248099965005686552896080232275470355788430964541126822258027101614435901726431130670974330171165569877103653991044331072347072513195135108574334041448187896758987871388209972908418942336859198073979995161340349984549012572498529730034091029987223715115843631215432457902353505116348758845088079188518601302287492359823666275810439315139835222983174798651327305384716749343586383305373873122227608722912804979980333277729067642899095471031454686669705878796178111339109172337319151027239876775898871606316720068479201975795000290059405076097330007733888626151385569315127720609652171378796068501104341569422236847200330977396602498776189601068722054310602500106216360243550552986088814915073116537484348284710516486102075264536043561916395146113325390387101572775202560384298004956794529503085601384689115884638101032363546430617229305292184579814086235722746837150553118217611140606630756972857627324715628886144962455373039535192022231700068089412234894741236524717002534754221222532404314121482461933774074586569719367698948647028402933248213256281676800988826824233977779300942344523972490828166586218898493755920081054346403798616180434268451281890079708408104311157636032126640113416009036085738592516208916411633425442210127190236227728341646477845686605640967641675872162846078248937711482132213373645537964358226831580084736302290601934178687406424767406361179077764092571529321099125448868725133298679646028438947230220266541762200436081521504218646874336327474055932342788537879049785018525309187249106176794628838590588657962616936089790352936223113438903150782006855245802028782199712015595369499175949806500858920010001572863777889892091062645527839423791484524738043139333229001295868386188043422332314775038620318541723853398180790280106230910037907135598695738484039085899733327083400565936097290405981049564893603280609821301416476483013883045463495209286625469909746158029801761574794748084322872493070246729858091875180739085521357726024791219565074410098365247181164692188796304015477958494055724694507291760725688475126080148909811124588939078928639848023740366601255438676780561800117090255568915424413355189183560523423599099301398036758558188749789039443886753202914902806885020054335580433358994609390034587493977795462689256441670609007036157575058074313655888725587826154602040237184098261396983172796234733288438199652619234010497573560749984289560020410096158579049636048733319347668498689152473213392600915934885827225323738151645064316989411396314099045354402381107114691996722994460656202082865024700904675063054799915544197361844208327330623358888110529929642657356218396866541265837013851704897207803825927943016847478556853665318399143997601719259532545067314882233526916675066324614134791769121245397151810756796951760328282652857043189234387909641698048980097257250879373373551740343973244390359467254708150134754944920493572578988361377603961833160952230302318686060544287287618817060535455695365779834646037489262037842451224819196205950877728815029756114089616565959104600485851896216183241017098627926784539812972304671168381885861272576577688926715908001698939680044042434261069139106105355033934609105591254472803638737089233638239201225534831122804046986895371831350230434991008102936475879598245000569807937280168490814227353765107292985585727363454107440525224340956048402100538548508149778779652448382248868468482769872986388578592612511011211053545415394564474408453748764153468014369281611037099811452373009784405811299129079454939597472395652791597793728870605741832331899398414669197339881076298624775495140657912399049643089753287652279394413057982419202375027847723671072897468123713651201185842367925212578706842438950706774676570886182557840877354992641683477356710573544251984979415647938830320728897618667070418779681951103765752582149502189943991455782224386956128732901125603878783500207983002993395787241250184910251839454667146933495884028253344910876397222326936473800538322182163344037618661406410493530462796504443953383917157342428085576509187671374417072912354420255567390787025420819935362142543100121770017121502612049065338399373200894879280486501683411284935282748451078406755935540961899621052470171289993984843056828921013184513100525222784087871933029516949967041927545259325982409255120751535264061502863310087693034277300382145597564820683530805414261757056309174676683878201517991365794414564149275255703006997178408945382678207710166306776941941629404387789295206449770831709601508991855471309818377908559413524566622771859081215603385755213708188038992140411596156066235911821588649912253910790944679427097526530583181573464529175849781590236821339164753153580768591650437228490734456660128612459385729841308482014306407035330081964579913348295066101268494920329597829524918329645196356158529859944987371775585413699679071400482946995490045771120310558553802240758084759359358951169620974967586427405594504234088167114650295441375988443527443864389827745097091016697305045056652446779371567163980732855860261540129385635285267555803999608546663167021977285808415091327683700259815236708728376009230766289700129522500897835232109766634543778982911994804635889729677262932447945331124349172096722092325078640943294848498237664444933759521538691548649474278198582667196238797313532015011869765123370550944687801549500602884510824414716769330025531671355524301578657267248018919434125802305677031003013721524698302447630458424606021264663520757214429483611743733515722653006562698012704501919954844265492059635603475733428236927112311025276712014423054484577584340968663573187636887294077886052806809201868772781329837423189466825894681186988871943292152055714299093020886688254280642078463201794954039943785283867594406717688093835929976284371140383742840593862339197403430815506975110610644072438240815377137413758857765094451554776620295112066105985319903327330868704237967743539597972072651286908493446390461993714502703741525964120943932918102174825041677943977565352678314656672143831087656027040693668138386088987576127784378136544313754226402594378803928451713231864986745124792971690648919736420904580607561960557158824657283222672230467651771327041115416352971041461870763102223083865831169656475858847583024358006430947366254975284473957465924662520513493996747347753092706751709345076835135404720043003450615175448862694928923433501027511990960121607054311166997692891026890408105369932889282971006228739315038982155562621832070320313450776417512453129317993509018719091524629774301658161731294935425123147719575738107701089290296742911040491759526014781231563617526518814616353756214464532015420696001108513035074947098059287477630280968276311091223714287977843974726270085245485781981785779642188196145274348023589308960113433422901832270819458552578354256544117624811487856040845165807308618641302266649315017049260303219662462118690893647609092512638456543953809627366044949368727378121803995973883438442189795787879433983934637479020407317512480831082721333750303852019918076280426134089611087527710210757387173955737657412262307245396337937133429613047664164014809620843754466735855030533536124322981087685595304602849131573877692188483148428992167919381222356867495710947685511468689693901748875423584840554830782297678275441716249846936655434253290402321455751813785016167008749178756593998193860555574395224337496494561057686645441721174556312587966684134941418792506947317683035746372295168667636784180235849194664564771313126899206983737728836942174669410293748995097878076460135800607710632563829870380289823978543563301429431827460330361887445540450015846255775991342913486202935222231137976879802294396279579380575590527275802142494122690766812085352247337686231933036659611989882384677599908468799857880808897759686399957672854494415207208134991258873666259294479518633723374280457774166466486712407610598109355175225847462065631567253542150650903786332587878725812225616740688162380875714867238835062054860991127567294824874755714338857785838104421004069175170838532656303017262906900982451457066216073353607261507194034696052411830276319702840090000102946184547353021282786621350840315498711756643459898575825694150116947848360699418364624256584097287577808929068031237001730830024310028795322423840088370938818386555037538373706293296148834557786778518549357995381561547390757593432427153635073881433133296700528453293304774138341493595793773724243199777651033753362808629733753854168338926873351399588711176669447857250533663677804618027841302374202642386266209117888289699367369568631484837977751064018844874374568098911156314087648865566750977707121046524475155505688961709975678140047287489811312622730970907045970360758696233769575510113482251252107865872694896852592801617851384409499479223047850165839818929235287715735389119124716078630105878987688060148068816470966458351637628613781931531177067660185795440182773342196783733283027189360429016329647591503498881883740377620037096851210509625320357577512264809910078050520912313341817878008110572326511025622986786922234403741592178289831707574086334892970642655715642394940342421235331177958491794593256679565592577581654290403434673359757396693807811263239291858038797357328517638668291333761605875642903412653536490915528252701021476784174788246142036869095633897866445164035794651877028264889630081556644096480368443834466463839891259912641022526833631341103310627297897136052868024210163731849767146655337355262053500994271556517202652599550059655283073555582200578221647404423709100785524378101657842150076404592657212044166793000798123127233683264174680402721362460836317913202000101801256976247150829625064055649379256879838178174742053620110129632127246652150414849511433870166413507209816858490199819994729142115207290791845106379673183927068510358871835964475653073109633510120146563417748200837538879404705295280125163390965240458206246634339062192891233353501150583409957437432516247106211459931432148512082106672143175201900600117562291292615851535757220540761890128101041110589212545797623727591847992885614059891776554206319999526770423483543184284702347382077148925330934168706675705708724465093473326428766559453385417981263753188252774116379970188688599255089087877513357082664291757175187425940607805647617137926929277486604911684246609009081847910081744576180095573577073907838203611078622860051887645813803600072621712041002907694966489171025182551456273419287073988089737079685803226446486112100117460505833526466213145935250444947527461701495426420503599619576409232944272110078655994109704015963016056384260883786988962017112283069412092275247069665869062808087020197373642952627550020732230432511070422040232276362390497921146510926019062355321462625306711260879737097301646234676756083197610144708764048278875655382390119323361324611290168732663094794102336303023581162396870166786340081542981437671294175251708067068023911711546152177052559783133425855834858672390385513403256425863096101977266913056605147625914147494924397136926685543182557336255500355732665171412774157379733754903478974082849661252124463400268938526071853540137987499678794797445282505252355405115603152453487121176982189100650739567282702803456957062356968905520776002806026817616206381980260859002067724358343296485219457351916785478364949842849902310788177446232571533839628373791939224471900032524606727497266574022731493896260592295711307860930677404741690081603738489748369517561873202083314984375894995745354687340295110893955260159825943586406338386994124396672153382205571362551675086872243221519697046197770855432809115608429860965367124650485554819836833118313144275352265734673278342226812231719511806120848453937096219613121430493471530844871028143676345565934420534202468286035762479973927256789395188758979492979645728957081480702361374491289924690620610956852615975649767767534094852749814653916591059510042903827832136544411495031834516189667877008526959494542323528194613470571036334115917603009256588477017928998215331268143498988006052756903397557486730868035505681877804256345176785231252425189245136641672182210315167039922612727064183441037747936850029148988448422455026427314808949317752861228964078786317393322462431695028030897936995884890640343672838424408659265561004452342705471265222476394810014316673290016923589395498697213040967240331972254443187751102463894350316244874274177547195175636334495104845218024504844583417649432903432962496569689617194852171462421765147627477366841584147122693884678250717290043970506654712691896427781376540056398338441654518770753391261963114929918366889199981149665758999598130582475506025459612554530341206350057769846372810387200574628438937831959847866314543478080225924675298022745144109694553951325814528769195009993893250396180711476611185693640764100441848631970667993256061943067358805610256186594314158689885203727310235384704808630278629385465601415216672451036700191423006909636200981198983057358677167464586804457890343359731159397959124748250923321787919499285259926253401724892308250041660614342437960463642098414610121614636815487540027093629288890595458513799638403804790522194859791229820835068181587178929712066057000694281059075477896493911065915407964109915422085814660827388980993035933424698572194444889462296347438917561679517230353459282169869573466674837555200690495458656700804430404851881849955037577124581165479702238431859207166364350611466798952158686839129982901348131051804392713376111171101225881582129660699171841859783939809823444252310755969770395606741181535001328100152667311017567341476594048015558908836979072439361138577793217942716472700489540963681648004438771263221030541000683018198256497700061253013597325505749751597808985536504124556792480569587260906275918341156407327899335807806621712263685404796238008411482414459459484240403695326396393912303339781830205172170233855043145950087805394197216929741287168442654709749591148328460414264447329039370165205036624718991595106701848515737895865825950724387565165562601522955452337402401678983521822622475399785815429181280308426600292555443468673350465350476008994365041439778480775347410882610018695798548870027755513700761047926448143106759025969015320736509830045661415215455363734257137926851216563326811225600814048906458139706393285089736034061814745644752647128272907271943224101863510225366376456749599213819315783391188082083339648568322733951325754744003889498449979326367240130547703737248357305942192301201776306114932552557994434437981695565847746846815104921506356510558914232388432005636630295550925549863099090391620269610661501610958836850019113300257714745100360410026317615469065037779443946822286340657354412594050291237638734212167584880227002556417984714278210552599076540936152525370363227852239072073232863433049205358071079306247473856286439387112366014770526437181836856503903444000783749814152393987070930374831477859218222010792498420041100410846003988180222575685639699258555508001421179406415243852290100297358642170241198492620901876530410043114662531772247784658220978630173571273402701949332112336513117374331942340214546183412162856406390798341972753060693937951158682044493885051253825755355405412402006419540787512537147392282592686806347473463615190319110118944429813992563087321526356855566578126302485739639882489347530245769783710933999064507177030661467967236700662604375321875293650732586378751541262092297545391898671401984232365489874724900260958720948252440498727686726727040849131044266856900275743336951155726309911071841158589690160400405223018269503496932153017244757417593432173822465310117104532791263716352316130589254799882400051738736705831088933037465083868569737407519907391884440397169282491426618384579401652408219772277741396867990707949159529737966756710096976105915130188975346143375766891377541636671324905080562707858500822677050064142178652558607270775500006271187734421235970299838530128704487137742778904171693058966612551132506806641322505486920370521416929077706680087629031209195462878366051941798695034574361527383430200732268320234027522627985939255503141358998440530913403538340113507574399644372304425677565956321369496076457758237401632671689067273735603190420956446118278191924966903419551339714989667069173835391382184945967908851219005308485617540581512499456693662862041316924259379721507538621221721692597353009480539601573803780159538377210870061123159703770315178266105621025851714017777827638690757302417531884329114808724011909495338265976758870572439127375183949689334134575026126465104399305189501262309063395185518794582319781030437513267380619655204028690005631284744798889584103143844106922759523432889751127984826020374234141154868383174550640742461683157083545447622625692687099253806158628360806280514532303787256940587883055140987331938994487933497010507366112479714511044182709750447441566684743678792449411648769087434737130880583452689795722144213205170877444916990767151481838710515274047390986522626095416648862976069521538296917991716051263077701779504226815080133480205325531147170089685012185404128607146807123515102605490154246393394281305365548672203818294702291840191564930322503922990137228714852493060376675370507833803324734341690181808492003090070961576369756944447734832949966515441185446973440946325889614941598260158151458694391956630032718034767079395385182488436380775194611463051596942866516150054141225676660874582498983765614199223922621980963354350311051106234101402115564640138121704436518807154451893858544796178406001536253015827549256783967338933158998801237978469758902618592507339633757077550246923974293516880397607742129720989940163313483592369157353567257929499236694293186185806584585487757442066176017596612194815889484345772729058795197229599825486744921295835755696679922665477000757608477412923145226889352724991274784968891995292933211383222509506074867491630331494696105213747632661588919580109284956476188308097396160980257773832837260933414615994097563745002869600813969477231040467765662505172033807879775074890126072420908791754795170932480935398127452485002450573944510087347734784519816766303266877215563122538847679781503690062216289790631066239095277015539190763472037580188602894896509974813138167622282059586219986602461842774875751356199063963064626082699342422218872227228945884013681949092068955209846151427007341595649639852260150062338406258566510688167607259609216848077658800949733477095296194443194797262245051259692299906606944478151830039212979261396273271456355512709207005824967152923210728352617256830054643426201503533912685846512212019967127215937039137005744780648284507262613096618058839500475450813544335849738787602695936501142777734129141736640467310285235542706859214168705032325798425477356559192271251489887581326852562817625756926590490766767369624809466842646289310590447670762767683666171678914353417894296874968529730501588128537537550222663430722747077712776301935483217234853500182001809807471984050188025126997344378700609527522145874629325640074761196705799212795892107798729040644417020625577241426899202296686904328909545985090029512283331563232985421728918458386680202792994427495488905092351762382680114144502143084561025624715290992601155133190857091582349501650992509017227834134876099792605899904039749601315056195435669917454877269802705134358064989202501752545795050567411936768945505329237920168997244678099467419680285226011113516523341349003490008421797260560302440094503755789248553912936404762652140010863767595982847664180826040425062079271248638529150680388560375051127366657871511837388926130710425268704475864122169869911290422959724359713505613184259834944407053728061616678383844817555916411958240408920965048613987186210053646890220109460679034487084371135033042913209626817701791457465077732134894335866337522864646279055325628959561047424548404273249706180210087980029254725507014336376710406359834644234329613517552245606001005420593066002130424702471700394158516843804463158824795407249653190963664776807385402485456441876021527363812955238480218932250811125871133802843208233295741361659192341190342694709304898749357753846298186175300719810400880352508764273396877935430527291757949878308916913488938264231067703037758993327528191769126829517601404075789851951130353486156974093825875830852603623192513613037503309836474810476852909479641634916570283611858087125631937942298923450694690912952130825973352223004144269894283334656235981254143336801773318109221610705486998272825966274210759477908427499994171077950603340193524302238284367829968866725145239894357418462776042627775335657058954690501007905738671772533591607962062206258102996070536529926441974644947235710975781597448060958393653430635596517212798982712537073179945785949549724100920226428617200130066206056315617867449345817482461135482189560851353957323319812852835523721360525486033213422319314214744697150219833130503547805658042840769687294386766188310503610597695308996124182615367785446324978389739768628133709689965188010024601876456151878936262852410862462722158420200796903675819480364212083090915557114138877663166151166734253097970066693995444712519513164010619686561589500284477594922081921337365638212967647481477173498218387419732704613950193939500494069998923216425387587522795991333473502253371465919581503729932921172138118014158009078448698095869037002969931237506681850445093676294780298182198317503373225417835471974777102886967838390440622836284718412196368785704498200173257320563164651817423589274902897482600901420655749166339963333214169550605461573257758460278028899254436120997461639824843082535330800893702731495991698032084787606666809019707173468004976382891080893460146174508953160762698472500047535843981252065037277274437333656885118997502575836305151294084466687779416636984344972980070247751384183996545549363902839174227996735742224927995903139295705386981842159226177291374628051851120381518536882284832368387896917616657722855091246522787346965458059825443016910383510285521104467423647728789129614694866191355107099731584271521081041313653685033930126535319799152489315544752365074048565324871159964393074589867519603974825044334729422922921460695370142000459112511594148646145208072574625962588272822961780137434503729945717834268009214065374033710109019997003819939090982075579756949765043847532190974542473115615605348828842056593178450493163307907702228138451471238539849939253718308997469249511070179483487082467580971930683352485133802005006606751489518663651713336784634294709284300991284585582409583009005785729162880861278031424092708049020458772813612294296711199441182338152853222562413121380595099068266716560965840804486979426176200364319675459401056164648038364015221540539228929187592272606486956563606765811981863516877120619427903158168948831711652816312325711696918792235509638171738735794538143205095485900566188212013485798397189237214407790494313599758327024713894849544724658178454811866713451695830014340554257457441007925595152116550679252667553346011311953552733375689110917406067997807362871529058396133077664264347867826064288489685031659936125556309974522715276979188470930400688800040510407051859788858870498644991599680536072607892507493950874435535774125062272612554815696857410869291333642411010805653488693334582396789421516829841875168557712192839283477022455148706529812691415026126164099629456055383558496534807906590003683458153809100342356922213423763649677428308613586582208237456822392140374710755523621669240604010159728733927132843800993068210292335555003091251746705048346980156769999204865105433943830392799714984562405311720994413611939190907873232952940663329600844076773712290177629416435906799631726691467820128994091530706052073813756837946530968341687904743714571723411866047267823210281249628379164910194935905815950679467835330667142571794013844534236660205576912665357686309837093853480809557459122942937464105693108918790953221694811788689879940095818409975476383506237254031554944749113585047711952054403427812885910211764206363506005898278130257026475373971081846792928823158028103499350007361844098446689786819382555859444689716330721412072980441963977219736706185951307409476691175911641486375738582946538463024871570827933282840037153223849274084802438368339545499617750515020330506471671403602343256927542151790404710914962590835150343803344275004280254956474339794292516218388831735112744247063860330461564044331801455713038504321190725530448446481881586353898673852105900389591841214387597540419920819325295138275881539363929882575077632314846325738233588974135697183301063977922149324216851581125816642583407912947233173134218724141211607514561034405072495783361355257588233475863508592881034670053712368040295999900374845913787194502344893536396320710143242899407618003848008700646511350321732328904119861021772288630357718048381716016874802039528029968589955334763285918274281431648499745454311986500098568364718723921928896947347206050554182882848498616203584071989358595040115401627701966521417446181604684231468554404094924276103270393769508654677620586021434387325892879148126802547494637727247227829249195215326233562121689048344967840092989665360847003885765739103322440683214343519760719292331763527640046996101728176355084890287349672499907242046359838998542602481662789979248765075545449448619901154584952094570927611673353301757579103927617953700179733869772423927957320528921485507727524328174393303576929784032359223842262362582638829853283833196587702410975228864201624264754018286294768487326513121006524977478822613582500915310074938398568470386109598975954608998071756987575738084137657457771003037247442739609242249266392971650472694339215327554508719558085617318748653058980934878665620151670433664002141913728544209344158165077377672162851532228829230244049335537461990055051385042508328249054567020160498024371564044718023722675707180049722957444283838098746782872842172219984160388657487338056689170062622496147972122698181042762902571294329126536587322493114176441579601734856069147648926356992694509205291441158717359720023211145435909505703944991248617190576196490202308047979240490288741031108723342993856165243103968707919003820726001479326714050053627149451172234000113178645434855069022632985172476698854625488442991648843438131583578185422353431990474831127930186815668677710704000960460097246113457668617814014141209328045442842661679530121264578072036330485176717310591376040328030624247445170586990717835376326459928483284312201622445072789075741184562921194847178232499844140917461536882778484970249956718669620287271251320758008443707784692537053795140550082716371100270586943218910918310393511921446283282433307655905213870688567131868638298317352194025523713326631280658420414638349091706506837545709348100154940047096702158644485598484849568165158172252839963634690731039337673258697730029496833325096744266743739065815311775750278273874561135048689190226202232020009246100263368214569029815852622300094973738611468023305928654993216661074548030536914824776923333884284775469500997994403539519186496995739437238231717626032866248055987903664429011355464413181501691883953480713792604130775057526156453781934845740243753423355431326197578066951173843680862127062176718968062646247034376798516272223813061221907588578103074931632778153911138122415028959307764734097697167311825845918505874400675477305922793767131865732764969715226528499261857446690687310334676299692885860162963208205869798478325440164375787301687347543592525852084868224227626803718231823890623521842923947792377653677007897956182358551167609995655049844727587033996720263278608279064024463654390450054903614281182374557452799018628828309286240716586674285996376105124411694228552689080628735574722684263169389009930387572201056831568023753442466662954895898589583942579777506186094102926557366756806459045075814021666415720921889406146247409233377828004476742584766913846479740870825753425112075178426459392400688461504728308290902641601057974923643924971500282663386829977387425466189297329818328850446082374509203823966910577349491265031710086426348033724705595828969572735788487502156785636756663315579387150429700218920556612722782530827359118787296884209683594435246701483277372739161858359676811506183490137938879203856140567973274993637817526001241359551179541886243436683381406831697650205642271009880685436317966853382362076635108292113431943375151834287555205206297976447470250031435431960790670173664858290539127806123900662441578868897572044163743862478641022881781126129721147599171051610645590554490190485438961569775611178542617413399420085920932499430505599262869901843593205723003225680633631340597639326662433137156348626948704986922373831635782527271991265395718253624359067582796453450019822028807768693381043873538063769759567356863311444736652584225230342709444682170274658568269487502418248889915598402733080022753106518199019713460569121830237624252093291717113197932254267886799970307779082207225768354438529095093465122078529634143031664862815236135341082606364829482462938438094980385620216469129710003937187535128112948288190963263438097060378211798249289353136260557336202411469243760302031031081616623703128895359157167697690198076333282757577716587110711302359440993461535002927155647043692847920435368115267896462395772935322425116896787635229130563121209688065306434095262531467577616796176756041557233904013076846929598275246912712362315438156658028543906970537007680541633059151562636317782139307062957006128296428250521586277449581941902706799866535403658503509052372311154102220973641042818444393091965093643900219457085332600613297453602666838804018818535729911019637005662691470989489904207564726850310689567260436464467346504680440939845126881391450470335345696918088728943254484642956151196736192842204666882731703004894457806442974112731821246591792967394747808328502611124465880442951470000549506004600615407990968138611451785043107822313862932512472785256447792466157198697841653615133002393643217732887643542583099417918119418806204267437452280220451720115337026547214235714784599501035884429123401930816068064306427699407774297852642295193076015270269364681084436187462644692148974887746933190474460773001761153266813824301037727580106000080775409688772576867904546554906928999684958093844715236421408290648534042711048963179514281991030175418883126765930377360213050051389228219259446346205293240980320738921585840676426505101643054501862754823271392203000831831457284918611776692166424404939886985861427812625766527258863857102600808892530306228814668683872838669111410121085073693933439698370580957110640820198870191189531527846826447686807925161525284917915150183449519513010569444332465577373211794185835006661310216054401529718722899769534373143980908457358816489038642325868674429012267885330617792186287870636183264914597917412767448024342842926632412236182331822329957723532693959472968277205639687791320899031605231881014307974146705785846625460094298195124339352703982149261777541932276591764057660880022121926935608250170370525758992945088516519689242645306647647713827398069756402580788432354926984829299772111243704606755267766797498577920067788451019598498061237467636697552638580202668736895501418592950286942939129893654352874635977396126272193519746202634722979977922577481343367345321963575683120594179420757295459405292133974217431284006510019366813567475783009921157699069513974509916407097594456656252586240035375761560297717323636052478685907904789363947254470444762259442499118392375030725411034247925942091176563372302844668355683215557642416702009451806715836420395748789654964080356659519963660134635023047672717460906421772847109725908638349048681674190168011792212583078339147301910782467297872281096563325752267902014930195578870999834678852037903754585638904281706794301737794791367525361619661829396928087687879646752767347448861543232626633043540314613905088392800296409443095183453111476462319914556530514642523729797408480564119015792659628604204829961593710000307236437107901669696759883068905336985109074511204223312493842856829909157550800397334543410268781979635042225364650275084230892803604099201460151930183032350040753227279602387543196874248580629012311593467532775055539562303286124269247749295537864400514534533273580657457035170154092105165910033172082339294158871499296706044952567735752620327317294640676035312634243087159147542026817559174472026816018400985661034751277887622506888965930405933229782554123043533538901937164700024896530365532184175589457135821503414018086965740348282444985768451217337916680473779634806534753414206462432868278979747297304487176131847235645069074465019476372118131039440490771517376014485635933285236688098424241771561279388286336496484320424299545738901773620269983762946645325281094312375826178735040017219488259056358476392262587863783101468414772299085741814739104906685854247624601149910540951028017374128792038308848059441035233712369509847999476517783688060454529490525100412815250612806926588819213173722522248974096650957564770304290832747545156225480178122091194905705574880600586871960920666893615279631684386116810143536192629492143084313571128127901280973585505956730030111539656114839793045763880712382697110766213069281229334858382527197125517177547082318475224717820120743912170163170906752355760006887826515643805657570024549137591834752417409112982557060550996640565956409919460587799599021232999651239425847913149309156365479952537573103230278565081626988811435856226882500901212531026145439531636063823374813035074447927359256449675368607714773725583035197059114342735137445266287178133694289916840751435451680480609850360759737823921046348810768545165939969300986510991891034822957739011051205885669203195368165306815078658599580895515959816941602102323935623200567110055487197736286297281325748059256391970470009394090969463542310876725952479777099805898339560439368606974609929591956981690959785126024409599273651341099009255708733210182359570448594284600248413925427028112361332387781042479126765591455535331681186584162503702063635161440473689606616418034676456226211660266994254925139233813096909964095024753928331873520156902811266106003761954108513481404956072659308471054227597529638920865548535706559429060350160786256628543701063144834344921922750538286622282006573711501446222027264050769974911179922869733344082803689029907445812853499041698331991438677723029084552016826051299919285137933265157621688239482216044682108984554697396424489540984375734019765456623190279351019322494618985207487240391882867196980460962710542036202775404417882933040209891146459617032903653757222474643242316167195864046681453133473827778023735194667662410351481653915644909650523993905229532288393734582404627488714253144725605410879340065571088555146728373420141038459455978710429140655940261339688582525654562293274086162152740501930239894036472698793778440011577135849993440721019237310276938574804714841285341611155963178069808595347305188446660213721021450242388720920479008921706481387370857471371203592916746256694350004484409468104537539230829038212362251711429811802220546077053445224055263293238896657720806940925544731334557911464349247161956906998250653704106118507997283083131084802825472133389323008457476154837150145239914728336588630705338263938471001922139856620967226256711522129274853384821347199134958992325062260794188511389752858913626798825691098261453458473047906430610218882522530815737993926109196647399802669898737673898571138230457539858096544087550957243335765873886521386731035791349029041037744501519599878697705176156507801538721206549626546200829147694779150074120606333951970822223796094108875263149932295294302927017753948433959768518586014410364839870941816847867161186368402280056421086864045945640224986284938007961453626190966993200718352870977209258629700069240563259349509837225336118205679104345403727833385198568791880076672423509364405974940991859231794849747592452941503513369747414894503672176291473124113900686757442693517075911105517301549950323587021123542936818037327831663073886562069438828664669316919289223258701822025121691072900371005593013272829230408913982535891908475833512678759208348772811676875531550539174837597026609633680335653876623495978432550535377342423916144078805620043098526528019489667845787406172631482021013624266037816728913788521861417476227255701891748425206644166928657585300396423040675278916676970265730568237227118989730549267590626594413102928208630209181912288919465391021084787405120002089733256733023047115382024813247821876808316120747151763434530352344668397057083536423046491105712637943348346087737304850283696949460214202818350914545684447562165229442598478373332650297218819841701509913875291654612126755342478295747041614919395018777877806232648568965989959514094456982837874700133126793654793924495774232466202043289455654365422829443267587439460854768677668578092161528088267710260682974726494885509676431076588339619119692137522784674510189406927738327015897133067058727580065087853024189808471310879663264626058800012889157019433295978818814910469235303769058869296605244175799116429383355272743418902600622967002932726588749554105755459581933788150442015597529241417056087725029602733721690390359982223164822635813968619307379673501553939010256371296229466087830037968906845837163870701451944967288538208145943724053425405958496643593838763778684106466065474951112828803812486352335256152960937377442589723105285769734325706464081251424917955549472417372806300064529397727783979500707885014997017204253573476442249678083195330623159025702940834563543655237954191158765491481029710738302187441063884677223039005901698419111317164684165310576518255724728281928311011569754213269981457919156010528538845766946273558681844713386675276596399700449292277699807260812693865495083234900332445192148618855189717370216389427285573498940952609072919817209194826081376299986502248124923601872395905460706369508132009204878068114571260990800755148030520724241743796236301779308590303210648097903774433714424455534592447008069753800470406573626513759979035473616103676789049938037341168646786716851845813511033072203599714737995951760682534864839094092237197445564289111072983075429931434431583470165404393903309651735041178374988379176468116218793048158447599923533894035021893439761345261259582560542832360330576152147405404269251795770977268795226715135260885331664870061694894065956440526473320017699421480050309349712866096265390369257477445695167958681281710442681016266858620271205802495308209099563370335457278956188917529559857285236399547240006887200901463544879637581697019871697290273159376178867944179722863276671527221662414013164681125192687918633898053490379778538059447508877536290344064606570013158841141891990959865895899110488246090375181990546746047403391716048008766708634497642506162802269290025617695204518141483869207881992040135687058170295377617517472149980363725962246167526819722478010801483304144671935964668862412862955831662805028656104617128254428602598063430779440668593259180304380655414351112183909459316119280592387200784753705801258655829821562891066352082959251613909423208482500086318852108111997419848081364705664721832560314332206424495015924523506338137124873426589894549964831005406068669205621031350719967842747350599673352411287043593272644581505113496024647771135029521843440074798349414490775190671982680281716113028114015776055172517786553110453879377805522502907952303975520078815502700993484799858785973673133359161478641914255947913210065823166315480107190301837489735425959316595023125918261071606813635836388416671700771944640506595600812775434977657798446677993918769653470604498352528667813376155003115207114045638559826000429870068955008503798179984258304999672846444636209019980680632125838552180127061618473775659689681319155355325229970099012743760954047710611158122007067968437423184548212701518271968848676718015355595552571500807728808884484596428206201150358314880588064161581069592056915996052334420560895041327142464168318010976595514516579456142709469113831174681226606103694549119603196729409215997293402206002277069738968972738575181771106438223664934088291986207909632649078152908704833260231215005939447029438667621414296973915462325995694320913209462173760182794711085150041137862027994077015127176032481423413002893290131762336922959406866286015315882150992719134481428586970950778728084115865832443948411547328951462069867379842694582136102274921993930126515025549111695005773776588033637823144633496506112299104618155967207649894188609753189944854525711198928168081833932152602105681770356437486650685039164825603796335971284403238781341800953996322163169664131879665663592015309457129408434387988524256256937406114479624764413504279629671864522352800364780302605908099777074136213984580617740147816261879977688011628328221049103729870465476943165111324116505573891773398722233724994720922781983706980288183166028465204056755727231091874619832862893119536723013599239296570685723628033124247329754917368146402167571115376478343115844781248881834997965794203780496704029696665216530268658401044373887656665524133753732031448682971064025549661783263041842511644169890925361486632874396578087437126294333795911701571452061757973388784160232779105472148625702948030535711761624844668647640667699154624261135094778313823993849533930004549948163329015986467240912397429401349971259570534693389423973251704429947830014746059861928952196014996746946610489198917702227455377972940205359594547142469439579409913997458866112003662757556176529047182275333571118775708083950773646223019978473949825384819753328028840941816664862564137639834972056013366440815540423379881290816720503941779334664649835395744745662284163882341037484637862833370621433665436043341290659549667493402576360427173997901674360620879516095090816209080363576901690402353732479766360114456802402954470450178960538837920915979606665625006616635030961136182156922392962486454917801289206742353707396983464227837088716485040557090941712652691938742704440341437590303561155381055226314671988459445211982620162499336884461778872667769990122471242177673741560730431677974882912048776361776592742500707976170427513101256967144310530049915126016208873297824270895683711265038602296784776985634902234179973858529186086418410851279829264116411918452689226658163932627678805953123006368186388195308349402292023971179571218651012635918915765594580966126699947602267378632260970848584032635172139600969938398575202342390631942497555326512234269881430706199360813098773818051163118988543389717767722735668549099320071940653222048327609579550374792220897637585239986339515871381493347684213900556940565703263262266366774065337190122421050241235217723877151878468995078612435691414278820904266102554770210885407558363550223573206592338406129524386827800941916923094552911860635973803309405382554142245360172605301298766244311102882636251648522775175788786482982301106167417047017823724570562493376974804776202537299960593867054191042908881795449421587550439857183869589959130397717960797283292857999795536422410892237361437316234958274167576193605758044276482980166815334908811346436863534421569716761154506195978589512867865050496246689152491330518424998871719611188608468863419780845898439525116399436542522517715476635061715702050744258492853145946881459543755272680785723977952492164052520650546018879532985587142339495604172291534874733330271028757505747548706514229850813483105037443155484088127933905794459778477316972311976914955745069017808998734282554746153636611521054968516431201350663198385498319360547532379209472575402157354051211515942710202788007683889429616789510643152677238029171077914917057523714792341615500675459204062990552553399956420816368668851536615623941909723266984228803978522606287497117689983683307969614906694210098612380543827459179614543052191569278586640349517155098817280704616809792297862250085188960391612748970955801094020174961375608277697441236166339621517067292788217984274812154155449519557009504734488684339630908241204059660098942814378077435586282615582517543268856302857000876817215153263487402153197103472560915379588848604129498144818752417390651220504964400721250350416669606908991630186710999779463582898006654138163390883702107465311714193772792602563864525416498216170570325631448868479002908124935250039818382341334039296989250115164122589139041841064150434037563379735681029492610040842842869706799401636482817564323907589276604821204421932078973977969503414274320259264925391181040670481684808637994024426933776557888742707387104731021409542296215043399275549231601376694417531122334420941498860153959569196588563142796768722943068671966433953738354279323616018674796544814244410152965888270753355017782851971324641022580928559784559122198527280048645208954388644243972937656431958673370476841594427111255200516922873106260633430141471955809146475822551406199594248089858758020052526951740696779029405543519448762171302121454284367968092922513466561559689421859421877651905965240935942672442503449756632309342483509127521915768870289443931721658043552980712878143360916617357603399715389369882624241746884759633930885531105352413920018183018513714023921321707231733252727230546182202417584190123085724407727438256992049884913887870371658569796204624350560167300611843918415287136318402129727136940432516822674738731212399890053148325948585985527754337768171274240006576559753269486920303313128436586448310250020643281524031568410008277089121286756091466047144240838852076320634968712412007571430348931705246670755132967412677928107971397591023071640614462216908232244076840269948805880367888832671749877391909013017224364656057093804954143148536910655066448060323278954378336667081788096231255701094900892734344457365735356796425939681074463533326900308193367084129888897555942605711043048107808668603737764188798040566378155712280677444853418591442293472148605821581906014810912649154603617174605264905055149728656739620411700823735457492101222083314054790196780724945744929496932321835691711380076593352807924574146513287627544540159960667277410570800095288158891575005456778044140974279321226399288543026625317487742845523962390761217957149883432749822598264083030950596968794634403383693227718166634354598649652732694877221495364307304292628486760000685452437862533059612389111646254126447158863453612271067834452234048221009655701170386351867820741108244312453111648031097293937316637633012828266848006198442078169531903453728187114221739560177529950099316502544020719396640367778019767861700974779756564787072604188546383812571909254700067874667924862855416062321165056665633650035751457661306173869188449655567780901560404758591588939192701447840718244209646461920004914657074916240544293863422758856351143810660995491165319531875527907468049239837439983288751495665622824544403253286099191346761549338759262115853544880012407778007325137479205184087252207652714898832482877683983162562090609850061298265285017323223163231822553620995338740130313051110278059490980663796398062624107167415418005401542352362282408388854118254359576527225128649135648442119418158230179679971038679456033052641249680263591905830921876102239384700601739975383898942674672361255768468378467027831551722846281668378870194638546514577841600723649308352531783992690976527577343397183345070600475468817146873104952575630715493007540785982209377463676911527602121812797593470155708736119660109096201625993559691140635538606061415662499443481671233346749602358972581427474094278495337118429976782843984100963659745612531339414417566904748302544154313849196330421490769382483940685677869699596604303835187008192633701905494816285189471575455083839518639975179602939081267412485716009993722710437967266015889527239914222501624568170442682349792480664841719066215435421499787206309550948440188597703904322194504861139222714818754900847093183409639296861111132366219206351957296051849789563942437209102972945346250921029159892168055904259546426590462761956612095033500663695060977998495826383733849498438238150831459226517127567906090438848363594104114061423315000863605452157071860711325109683345747548793296432424065975117898528682884491292777704859206545151035974409677765760666528122876586911271396766603856239908533005326330191382425106875083990194347721272279615392293959283111151622069838720644842620813095249711663555131350066307902098745169729014855592824811126865282790101693584775311852009538833841289595179851861145558627172499110272631604424874739023390720574527772041671290967023197506042036257031079731800621417270906622323367400570128616950124756304423409099375644489399269346827607738266296364116960186314278168297000490785178451424184062573665606485696945382049504498984989956799646010715481073280234186987524318342106498253376286046466718915037420922690710471788008608950649309194445917876981805552580175619626733728818099712465008804850889217988402153276646897293858241906140127481592863774015940441127683597502700827008619075621178677210626350769951790586214592302081885999185289790589258261545234472403497431533399487186766002773520696746577494109406271962851592911457189275340012373193738129144695969989042502050262734918915172909873871095697018477945530589062540480899230683139888417389401474919710844225297625779325992532134401839943817809617360454173176718224136638968633190002423770746197205838356990049816640482087974468444167795525501770849372109094293782895508848989238051771344230253532497457122832005467425879490675026356954222551342047835077190651813216914602235863214792977486335757067518160950626607033707777722826963925263683552410466087018844664270794443046661105547716004795934102326851805653444475864549781871871520394026953419388648173776696925974710938904732952497216816892880983990340642364223333822560077539428740389283543341425977085191296950654127047107497470138083570297080997156520168985732289853383408007649358386910436984339995364360474503758406299583816345805989433460648944055263545602682430876923734998744786364902728845327598147136526608592238426880062455084104241752912055980494793737343985560406111711623315232044647639523143023569238138974141874530664348394321803731399659077732203617960318608202978156206120477887472995570143251438051687586269619842559841293873410134995806655699998174063252077916390489130807867216638742906468556323212955880175838267559436028737400634733305708055941079787053981838896960812131440072747902720705480908074169948562830549842802376728970870407600260549857190399477429081929908931592578050237760458354842836779855481788978958843796950467757243076340184298677324672289318808383605947784662066951544135828131660003730507983448412998935338884726764909834002164277057408757856392150075493574818227536775816835151036831322270701551259283780899613250078767065640710510027470954126564317272762921669286249194339659026590018235971531852546009472782459108244376571861239200718262188806926266034976878515880456781594760794580949602210379704545517829328297310408731087431220164548934182889441843130271956638758484788771562451305444498004871072210327429875407776935019316188977096011239653176629552453729333427529493467277335481346756659687303289903379933386621819788316953685481078234433561032482646514228742092846880391992063014377952119663330599146866579912200863628618015645720442180329038973259145828225406625192769446804164504312526109368127301114057722695117173335320730297937419547092291074692593632786910899308264664549069797959452378983003682496901714448812995211296964984758009114000110505016407088578385041488916597512240540162642007801308707863507779539343255195506029221925584289641171580789748609055273710366816953887734722395021469572392985217786889437125808809637319723424842056560383560769343696801184804640089639922964575431104117635772096681317267927358078304736782738629080194379760584372583852805357810344251999587281321242184217798551153810919685629407908906020076512391981735346354268798081005656955616478791864670418484461043915399029233764894273785319099456129018030832537127845346598310562778906983918018847076882012636074146358487186019523355571332416648751282595797580941989363829073240106483980458599426393978068031182452304262505997387986308052875215394490464884158806673706957597080452167510132089466479668809228257332892829763692650898391348333302754391637053844043745548834424983583326996949100250938952019444843221812322281741607349614433138658930795209353981701076301738459298310395560073230673910331462386140965027256116369993717057717795332245143973537440006173515742487442617045552021850527117252554721624241182570028838648635561622320108653384136039798665139986800420460591335881048675490621224441477388293881943631990444243591271993503951698316640972469547375892363340132626100777046451511432130478806699005314104151497614852327567035598786995545347488403703824000006432237327679132003324976387969211163314689124877056722098844088373836592926155721069697263527973462196218288164309294961874408775690187190099345200597593094471665260625161736748610054165117717002566858516140168317136953941148885740543941151842254603991629442104644096402722049193991511943072011594372191538504345010252369707646887780609958629625954660121919100246462471458455651106568017804591572132771602127512308047963712413380220339563191236374114610239281526524712253660763798633735003985436552388736180608596432523954299575434839573547833267924880714144790908908955094885737918764082228691201202179192584634903326847989403334298451478452635436688758878722926397074065069776040870502264116183547082976748209464070663528035273316143527744928740884459508752347712746953828510547979729438128684127191508791814406622549174389164439617239364838748734705167349270159600960497093585265819442245071359928526075077704488020208231174583736859011769753162564773837093350034082187509037146346646465353006026638562394476552983820440283767252860337034810581371714443484449097104469584778306686530421086004730384520319669605305326639098941361289866967686389900657655729419412659306464504922596401962171644420735137876077857339762638386767950130309799176755390477591462631178313863552468875424940043293396290988798540541503100218726926692448598680661731724512477333031822751624583391994281052115296014305835678344921339133804189939336854201370016252881434045549651912813513557967512334618309053522102898924218847566199629305405740979078182416026774859296625692182301696129648471257185759856597221450715643548691237757086030655707858912581770000518576742755526707871262778863478104818497803002403182399123161606193337222296746497570836160824812895475651521249312279114756842676789062553285825584993848507557600471003538278651312060285270567616556335064336334300725805668373475910097399730795912649701558913186516181154626812821603521834216771816568820756474095166305899075407077573442928355016802411305462281392479089849979481784544124724899603075847227311502839553820101526502856243767176099685604732010685867846686456801005433427511211559129318375375980431167476456055121523254226281346104317142142643609007586397725000998624382865285499308084088818319575676066436179489994567311866657561882184688027817365134890478328051025433273208700367798862387416291986999823459855612711659436912579006211017835120741089263834324665582147644694743247356559837404020470894943194292559839570952562882865760084859306139497358996235650530642428655587987565249578076992848068497753538032608338134797971392319571136018359068495317315311289200464338976332886481599273197416982301746369365611146514641342635775061245995275367928865321633474574206899513422009081660486793586499666931215812012807977577139603691362566883156012425457643215535877924114074158578765518953053640292598697079121944691835925883600268146400950490820738559488218892034861786616408888530314335762856118625592950492651157708613889800649693526826277417891783446558829264832070771091640002833053773685131341447649481295050338740448388792528540303928712459909544242362277249092010700240622205976999980422579377944073103188114040285508891548502028654261440351992302219587043748851203161989535732331542406757774574701273155599349468917579757890852599482926476432600934583222660048903363297605342461139095705636749214369063451359848988138943403958284367331669535894018414452358260538117728750752092998797160178660949431935351389273154124236510376052780482970177238199496429405655845887307662122314081622520230996223723278805967751772249824051936037953809441685210666365430717955478683173400007466201324205711392277472634610885061419846239862242632585187116815867116647726297686459593326466069182431472280107130703958247887231110886865785345777186871893245357279263267516898152156123998336578045188744592525415986720207615453407041136109222045806425428531503377836507998945495682303971930700837237723880102106019371785442807626932776530674310710044373419284955809220334230009442186260831504181499495519349188334815231679326252055918792995719867786816872384493425018911975499205986602789632730828440772032201812011920197470389225677136290350130865995430253350758784460571983218338619844116562225358247401600897431681040029902690004107200958663734110704009275176974407028614017509378796391669113065324127089848964446390411060794850423226033498519391338235119910398287171877610101850825164588892212451487459808470979495363620032306529428513322723968128825612041170962139800672304348123525332961994471241261226858690543355635297072262695046342957078478350405857083262385168434343763947422726549296130401575207115383489566606128875199373760557066286409215857767867106020657709251942754440823854712682617811834320536301946548105509247978322973002898045836727786425267567174376161586324405624918629624120974295506115146169945016127539924892491537656126782109520020026056722224624646567133829302391919425940436736190906853575518907290100087221385071036146546071710564159720428329209090954313071676006852138443718508561677232701902417725057113909101410186019209500149504908220604159364671804435615158344855456155355752763476935532291120092046733592828211000024253605848552428671467370699661610548761318227744161343077135149454638240076149956962685020812454125030116208834382696472911111872392792244343175354947226818534569573253808759493243799791411347585445206798824112675050247011392373788466004295079359812400575166323388201745620923715164257375120060188174323661884140229826319549332635426302899332165705606546402614891906529816900724683326622946557492760610674394264771269106369725952498253121737079641033376585131758383961131659749646888564386465297140456465918203722855049731005954391149670529152280880379556344281526133742010613533241888078656246393839215827845489751411477459620344189308894499717341135517808433875653828125010337186895708341861139128264898820951933211166404234383687584953543083586971401598166644161669938432838857469183677356106329599514015044659803617534419064724214190959470299997418656479594389823672125070842695620030655913013252819444613567127771902307126405060835449515777514641686327767580961007042104028791861802816329340296540892451914665875177013662204338745640327916861523879303162962177207255952994114241015357197328334252943436522183196410058565331214963821604462639037920553439048296245358848655160710327942112574129841679534003589095253684269781058260923571783972448683778466346287400144615912185634094615492793100478385256810841978994828772851818850871161899107445956283034702245060054704334897955413887743846400519952797183806435626516174264577326938956497898348976731955189349714920406150708796768079381555652088263104671515009876503099513155806928187790824076457029467147736007958834157616655573313807262061104462246919542427255330764362761161042603150866371003752172458501854570737767520879453966807395094839452118134125236057178823633581410942606406700754517467572784535455592317629683100489608969746697220651652613624102963378069110480191122093881837092120790848089780992528604215574430993085466589918412884824201426501192196918230713759655030189510800093873894245623685300889254192553429367069394086585535426097775091174929571603208988915997467297313893588478267875255183604383958814636599460805030023071916095821796576355366400769075794068316346311238697463115732162608470732683735870466363892395949585176787994587574470673988426279291846310433971352410272988167196338671218912592708593813410625763578386327958774389541670499510922749672294209746807570557534307273680429984212747000961344739366331709464305840764817283030467287903172307626465392949103629389812450449213978767557670835979247614489245096784539614196970622238742702521243941828827341555464016424902715578933711756533313589431384532848690094955233048230307423137332308948171716464397201949906911891304528188981228029009826812316726949467218631356255334708837179694194976800991728283385167297393996395801837243255080875202286045650788228061208624059111432904271751160746644421707549938623080120144327880605640060007674950782957935762079286462645521683046206925394590765219213574121029443948248773845107000146851223428356799013373137199357335186139650846887697348610693197571357394612914140395981301139932900872996588358279269207475380256220818536257224871644684582633004266763611509881178922750556653123686776202626838252674616252669129582862403703472537006387369886013252020108140700360451460688445123358413416743171665591387436692620746497518005552844953584893659714808256330422260545189217356340608650560491232511468872672886397888706966030718305060654819435987696716142351415535019687920007000990945487271084873920174612437786189320350981247360185830722567711136969103846104711573960080197408309682780172307850784649891340848007734667690378109896117553322069425941348175865685152076098327394561853439905248764047255469043052908080154550739503790848895169672989007260445714432294247198104841908444430029194132838305896996182992701645952831631058835330502605864886535910088948109400666676519831983117912383841694778834507861987786329587062227910753762498256527350466796904697082787213818698372296478753115336771157383559207542038478715087732961792999894408189338508421409942141511472921272101822513324736751119711138644681462684660945131924214075620455813322895623999211839362627269583172740027022909182015103143641006943958074226591749891886312685926346551594361847350087630017811306915097566747322233218884353494545385644574244668216724609504793771522842666429568950625250525786963494210590454208391987260035231512498815560886661302659549166525906823147375491907461855271556921262877614239446789516964836376573523649236915675439715641239039063470907765081165041417427457162001834087746131375969668828916092283877759414429879052176741879140072259455722298355547671200431792233366414513419561974486278488069826835382465623840897731769304293866315489357203012485932738627726604764487858841549981662441900943745376738937166334088773087200766054083327180029975376451313013165511467425642459987225859860682426435066475420000062177033600207030657846713625522905610942088644054694025226334556132255138828748424933007343124848001955886640363790326405063239356814868611512256027856758208747379744674658808397064355735150722256895159132767258087660421463377897357835240520605901993372910751490424354344558520681426442578428498404434680217787540834049891488110925526330444349706721438131280452766750204296976014027227000561164986523288226807208011983758893984304507276276783898289390818507764457584401705318111744116821056414432624334645626692828396228008640252151860924909292695028461933795437795491052174799138402110549997019214028388225338974783151969849781476903440988865336564749468598421716945332327671373647541739691306471966440088500605907425122275255218462649423610490910662330221115677150349816960496991656850525171525660749447185965537094039143430758727178438803107717127792174511965952890198037402733021502994599368763561965567960924787184722931935333192180106597579359095085391444123682483252631085180925557991165328396450401874452267861049114884614765831881001811747872127834208223641277847771393050273216501491783302729064671509033164233626844865734681682429103831884358768156803789939846414836373683554521270212384829754204289037857480970527716469253965598855427325541767528129587702424297781914066478545369101225281530062284451255788874963257912885667777957700809081697026312970674457703624116897419349062131644597217139185952575617523430662108950102600059224201169351708849502073625395890809074691724151556211165050282489717981469084465843657425910332739334380104693702940679930503223210698389601594674903111838686218315728581532363002738516566485346310432538752180352279606458840814832013903392453856369390642791646962532672464647134166145320442958376761507142679244361226468313373663165684393792911866470702059376132022133421835069715711818941701519599262733919627399528183430489298661328220593584701315559511214484991471331504249188787002065406773330317076528723129140052781533474328079211552228388957606775332662743834887431727633773538982497936249934637964327187629543446683915471111169378021775452827151261191691525656095270301142764655885540735676032956334594004646774930359248290284421675998487447959170868462702057782051306666471207352845285777732521878609100300394891122278467520492988142942768401601221998037992356233358856071744400429761158881154783072107573555283414703053347225983793343266118455911928694451994399770158099439006413588599783973270473106054432971395272699353383495619641931536069018550223366739100453554779904410892393748433362433746757527578482487067714928841130248829657200957940785038638165777463020183608228655444189666082089860298771415493999986133646983848091032571237222887438964573052832869200670824655875177883127552125845709352309236265875699592270147933385906915777796532107770689214292296114863998672295865073902730399357587303385214239966371876208563543305966625025062716605706149165466632918555716511753996916448055850253091479720958009799816662567525013251354155523522669769061816054368761990081874207294528454825123279989360350460046960010007931493189060691418664855553658464347338006775587349651258818463355367064459562639498558333293955835174781166597445661105245231065754440995814825549335395251300987489859002950340861267328514523841795823597703190894554200626566714207943390508060924378683216875478297441980785092151389160671187659811005163175962168450739698924971262363104979884930457231082122768912002788523933220761895623227395083087662325051063646907883090175694224215638265280034603171561594150290203839650365146760901109913870511715853951593375449898052994545885447528485197369839343436734638069379043322700557677374151224711872004621749627208785487928795028235933119400913983130380255435066093470579413893185518068750361457016294401866041293707703341668124755532057973331517161375576601231578925648061981840984338535227953868160978732331491857563724449026301609077166664176030801998335424318227095259162163056870331958893809500215947062753298767935854575391701485080751158628721741485180572664606005547391521220182148092596795878541149855830389425467870137372795797979233081983438906260438278107036045179603333991203540092454034838254954114207310637464237831332990895531351846420764840801263324099738843500607429554333907795461382563625564879682707174124309635168695346263376918227984466043616458934098928083375433221279120263259467061258683083628311441667954599482537302579759580564758348751119197398168642955569166240709889081039502994271517018045171340863299847807539965104690519930011507275423555260148473575930659996562398816544825802387847813076285287430799522444870417431795430649821283979886397729723470452993619040731189215046262215284755104048052237437231811423605520536130115125922039610643907352596376980641488771050854485972113915482244651541868184446324679390757512564284019491729574957610487496600263269477660605816535181722912698274369440701875182852852044218335727246586626687055913441045944923644443945823672563060583989814769726238184552452700971201523614032868033215543362524246364003057715319549764123760616508100185821923461784464757963504066686853063439206324019280098435408881879159398904520820500132752967602308732100591782768351706671826567944542935360250728642837513181403836733982665628764183440312822064709687340080336316335940438946483326128661592711328004850593928454531415919254553826513202108656560750711836174407618076557455219569081127369904373409326957682195992779898581743582507223157368035586590880832586635308506238043306639701070764360528307075995525968465173026098110980737702228359123981595108236649284171777688167150034362220345204137548943459261313310798372848740441912801594189185557524446301911427297384721945973218065812758446347805283765208168025569382869705528249911151396317423920915548013322380082062157914092838750202644835548960436903704959772930222882876937662200704314279631101917353257250211956083000787742945342671626359799223897119376834836173633795668344081748424370947841484538098831196991042352549423889865322546557328108651996743016647851041165139594672249933220525274317658442602706213217814876473705868992127539048428498711668507686899740536692453995652748123595013776233518574929568969444081156168070479800115748244215660960174600148936925315336930006197291845955021999860535652001107542851079262780422784453977279351770988344605999527141244540000765728293033692777928091682600422117173679270034002821037713906834536625395223979107150744606213274743749698169627140521450746649635670023094465602189080904857510464747766127669131689287061996204975854116177514707816052833586193394291688537558612168878794446843043560464060497001747779568816383432605281439677514937334758148624848039138816451221972028642389405711868216331816494919244259629008785664125319459851063251161453428666678393369228900669271087886494650919109227636991940612535014565364468633272614758624074522303292923934910608987308524760834779186650886506405248835653025434747979127688278951200487042371003865640246590894502843660768756871357776752644066563250732372131291448794921046306842579909482777024424583263090590493698675586095718314947592503202324718160220052974942682333695214653401030930868113030019103072389878482036786844291639725225052888937889653146402723542764660037699437861324492739173472686731384439869536648623777088304230537720783933543014360500485718686550056192313459880751566262847045292566596945464569452967507498081397163019306971476589577012725615222299955641059990147438479466249909146566773927325398178976582607977579439488744232821324795353979094803462459063996158368764898549370669631894129106509792380194034887832092521167311750577567264750252299578813926051204292241946861304918594110683303862925421007255147395884441818825337708636265094878261033120428606199631427406280665534371697450111976652032475513573272865243142157328064723412473073479374411641491782668661596908044066409889193799240131788363084606074750355454238883547227455881879000466730700201933711952819466451854194519813380349149722203978160489121875387430054715460246727939844319829853027518028439927378070730511641680797288571084695006001932096247514188779676924647629087251982201590147165837804311291399199119200243087780073760783941387683533254963208279676635098165038115150367531066647107761230505145075786567476517240172911855086714167261314426090489150059099125771928340541783903728956594257543596581771665694298164069111319444694813676292261389903570638591030528594421307244471110579125795046340082242565724571104278335564418462564275434894624521831688904458138759125180558482350777493524052526555880276077537593785484546283863707074411834099564280756815155936497651157733770991286725167811249984995418967434894133861256990933190028214099005863300711362285473334121217653135359601402905285008599042026617810012337525619223257563195885057986234637871635823698570719719068926268237174800622650058696686984037330637572937031031510393492419101423041473980065971012092843781984849579748423554593484988134873711170357979960988660958440537242786080084196658748147623076136478041163184654800150120724468408594448642086356526369002947595125728960291708664915221333121746179955496176688999962370806640824945611478494902593334279484418759722654028287858292892030003707326439975640945103477159641067480303737075202529559986730188510071600891114723545232315122710058818461309647687807249869089643393581420974302589795618764660467081591993571585813131597518012355852414318098272149437301311478304388496253262855071266010114994858323629267972971434927780235933388503585105113569141211912694705914759016678280371094152188269882988810457768450890439869707702814941972076852716393366256307952845350714613813988267145224147084965956062687653086652274937300751276582638262288926712797535006695737068382947383914545198838641558361851018696524653201204514259276029135694934754779924547275574991968352657443999655194063536492450604046597006143870234710519989369847585484619479250156028111766430249537479847508129753243423090991168150842288991790584413398499565239953027239343352354413327508382496669324425224065608671332800898674075392044960502291984041016045718553529336339224174389072069882170409151731031486272782506683992760150698540625784371489862249596457263783069729084950583515798771379826225051945917100587815766445714752796752906120319151146280189540272673564110000281341521063738576995618409315368393069638084738506731940966406731541711224407047161877262833748033609431065433198364540416815672366851757439839000787481473439860212147150641131510350589861008977926481672960197999319239273709721831319361896784869345044322219895710705003191217666379243824161973876072898561584353281756062140947923839339746873486211565292778650874924299200168191844147227778514658179187297308868959894496226649112924162313599484388147156125286395862956535120070516209331878288069072855051250175456762323410480062835718785737463972325736102285170529779407274487297569472080781600135910353485220866478844274311937066106321564374670743492705299644451421600794990056988218429370606481511714238548990824399156541514426294655804776539176872786296672474660743506556785351756591785876162846623201946001134265630215507462605258367489568613745783946629857621077418398499353023595476718171537983616268396162861671987941108013139053325315726286954493503549440310675586926452984776856503816039800528046483924791311429248935596808641285313083998088410034897642649204690242335236742975760882039640178106440332111113018751786634578021302790700495324369399370274605242720767861741541068044731653260958153591261613540309433293159431301336599248920869993385696915597434321353539218564296278419509973257310032429236602165019733753228771920151342800468380666949372718589207729218959471713921196025877565150336777726938820349759541341613085612098202860366773715371925746904231194215275850087470223673183992942182473527420603439726082438038549888743500600419038169105157176246488769025088735452633563228584454112227396772574566774197682763137592443091242057293596564945291399658960596631243384548130533061610438366717637088531372662423253089210323346292715691527699499942416436161118002631810903765618601423893792298599640427455900476452032660150496030429327137896890845734313376682204938516638330661672305377798739457585105285648013935634487511749468400493828840727819397148643001083675336349371280011737681290481587382736515735150490705910475334469526694889444551953330490955448663553686001470781672056818372775643388231129034950368485158771887324026478237935716420872087104503491713660995617337406773279840740860251217089837715833833745071963663430825642354350818413082569561442710102549815220215998397187153103449426275104699420855638651274531081572718606994487595678146663599100386751682208379693692438827930328738837486627071451681367744431911813723403895297172774888688946932086886087880475953945158196807857978271100638535019780417385322482220130756859037160323301659502373389622485687546372366172275511834674173584757218639628893907730266807395804844208059668425175641860546497170350189497390763382749357018201249108234949484792975658176196572119401080528475119585076332295961801680485059937852159105065689017732751964568906218050748560563920034461141856448626144410185098806620402398307654368807833686739722544111541303574815976933655530106919414649010629788482882707149697138445188455365467552002903822769339942451018570270988179396999447936983207783824535141484781553970466469563088122300094301455170012196673391619123320822145269799673664605389831840650479557541879324439660102275429411898182694902331892671486081489049153898597283177411458245285112431557306013368517197671457212042892553575850037415061432920412954555601988145593565942603334056677547094366296674257594424099322566459724306313525370036056514486875764408019944779652453370682448508954373514976631187939473966236928144055412934606622794841662995486073713274855656404233521333312535715547651601974951078080196428060117974145889856882403333098332622399387498329965764428139060357668425572500689228541737881524379972862188883429753262354265723281228029171139103442836677000363271769992019548798429510950878033350440875113955422497748301123607539317132574787587041964212248792370259797860538246119027921200886280789080005650045203616894609442030722747121891272394011628819013166051380939990756662731554963612005604169532006261352808269519841756540515802289043794648102362325275475327570685795967006777810161089039552382057605481904250546817634045217181596500883279021380853093682802783513477067635688478991111689782163886546326828159731415625821663245128488688563430015071362956371773803837200504555043310756189040901130288273660984918439218067975663283793867867911727551576930895708825272453295125332721206838084128015678395843468079700744757443956162689815860963500324607287334763849183272139842283945156681804002314665196936501972172477185208820287368259824435355415184568449746785848723164663963124962773064723895071748214182108853698101844241838768905544432025911200266915585329787988968190088333389524213075977405641363136743037664906957447870122255303819190816411361211481104413953086582010505228304111982816494144872077444360260678859660011332176838188466338406580040104039532125951800492712250304312595784122934729221799172974865017692751683437043416808114010547773873064330367420395553483175082286561765398758078336329905551536894068565748499618657791358982904845203850204994594252611469091806200573217557174439098443786827029336685030557684593414779010346144735951106521679332548852613762563483160086942849679499227424477935958191334739092865777471557962781149297990480838693327407735994195912608991210946761944896147897247570649007263607609892430692461033735571222540914181576641192132664349791892547840137861316188253906719331438942916704900272972922639313154057163108967511175771494717238908678865675780732996616727098555074529043141631863479242634074570106889964187316564633885649028957309417799824507321822851946446102307316405251041433133996560920352504613580073726873541307849648581142544376744221510692177607205239299243019583267930419388189111631007453092233618890053230263408788682317796710126802657825222177414872837261855644430001911618660160396568823570964332808073268476974889518493916458288606768922805651579104369782112574865685605468185630813668010061886137966441883539718648124614411528262638872910809850129900474806455158016422682664473718820319577687594773694584104383425878657250933952709878815359005547185116538967707829663833276700984349798883104575913767997342620429637780568253742770993615791692755582906087877529593540829059195809294338850620600750850656795805847026290533661675791058013476072357184450627408898044028202106984215169384341280961773465469168880982271192067181948760531401254386864149869091929050138679545503200732278827045057048881242806610908204207886843496790275850602365930208723788433223635915442636820999159039349674504941322892382556122801943280158060853773545358784940744915031149660272810140499651230829123433277628897850943593271528826002178610493188747074394955576469760068977431036163533994008691435164937393825275943378752458301497983614888780510760805731278017787921813704598073846602916197323935704890236327779948376016997972252225569960814080524716739086819501983999628332145752481313040733090144702198524348980615385518967469579766350636320025603492364501705297758234806720191971969338793306371341468911360624061222961605198474657684369620113364669103558924773356130353212086981554458980777747282798676814385002963161292744267362463900840185926172843515067408306805121416190258069712476165574636270580023277609622219372107293064475490510042031950634224700535680060642827609033882357592222352722983783649439862205348133595521489831226576299251226370803739199569905865822094652743321455567846085877993501296365747023063480232252663927198723908888050478865794551324848181800820802626904933179562179403448755881662549402083350821275364964312372609879854797406466124837432363729046601696763363008350452640511683203450150532640310690496020795153952333650413357784451947883667382183260024909716619976499918963742735087896761767840483695027831950010783925152382293653269720715976998614671745737965527678454868494008727078047886257055242924840121328625337185351882796455902910736296787223165952308550043345829959506545742655981718003899177916916025791939003405518745926295857517836447726405393098957489868122402757958177974757026050885474229634149159211230544252867803359020157438623728483448720282471724817026049001891606516594977531204880108700321186174604087517788112183765384077118891677457771524370545524261760708068668179237962700112561300359655183025291546028465505434106655088902695114622365940609066358568528254843007803733905191227240073264452429276236902518732274302661464121701651464666220474468140451768133627008413590086203304717134195591750871281714716279221900588854746943305067199077501969736929311522275048170974644319891488320994677263664838549634482917567698250038294814381642467658394947544805197333546361290597053059025604602255512884208408336334446020538434163022601643013817755402688485031646542824174112242089564024927403734019735995455914949082160555486686566505142888889628355957534106143988395511753774787479630543592209669953220767594116440176563024079483800733913527434803319926568690574066709135937861560887522676740402389917913007689668019749324569776772349114905898448464813261066800137810252259565599347656972151044464022943053277606799205292857584035235071733561223087604188317093921072607563807528920661993469243650364131468884254267096787153458950338466667820280615395954553230627187311402536586474623246314786629933918850839902813860801934398985053389395615327426108544956439562652707554016166209127784568747810422604099704730098321356767994802099799634681840774743710473577329499943104429108412562896996559009267325292310817285992207600062234452616622562694941430218763071244620817825970668130879441664884348892058531286527643492807998036443299912482912349240365443456846990418488844267134514669939459059356503069753984135567147571159780530173607772850352081811139473089849222386337281575344615407085541021606989797471597172731166054521721015472020529139487754010239853498271185887469490241003374647607881772039775900573260647893601230764095699811116137455448974024293441925697867818589162924736257072387066513384610357587562398904605231153775179732380512268133570882423977865998142050697410934504633618538815286571388564689712840294239078341386575077327277819959889740065960673626779636255733755436192691594161613297004018940858683865781345568232356641252027792626587206109025679378681432181682780744100316447463774739553438900233727500668812455457445117017157610308910900322048146643376384524324467719470317963849257927563601733473813182545592055050392828952210872339103603668465786007516278959768538551647887969632684600979063024656460927915732237138238694254950452241369250701190456463557708591540014032475457644670431311108610865151501526437961448807692871018285104469376126931089116629857972906364087970767268433901536411099496091849794880573248451349688132226165534850727525869634125354109003586592361796661412285125096321029774895865684569122956718048274465921465491154560490634956348653903782922162046790757472834038194276114035455728008141725918776589899254324788097281765504402913597672281830113621834726981609139858480592247333583666909586796616440073157438488797389464839173474411515936134484221371096467342410166788642410040040141140554829661902255306859997956813606841538265123678642047858532570169285125095697685034907436647000552030497279818168828567832855333327836412941022768718620063039300064498057537459653607114843388761660681694979062360411076971674018336142425704069293355570213297435527085735267885725480471710104113316831169334053622197471151680687856865976381189723620414425719829395698092664013380711889205326870797496557699280015953079809692301962264708304488556324736424446570049299675307461146176803276120263361376409503089266856670793421157036298844855944964541352601533177695119504338654329289430538097356031269621067841421279188750707714805954073908875278721771765986239617931034244373407737154765472565750549404772629913868456097022472944949833710757115620560926113535534746840059787338959191357816617841946484163842857592165827717605408804162728606516535537219019348572305908539201603935911569579898727301466040418295828089253949613419892253289580889768498261559139168968105527721347200576189424504438793074205959963088643876270017941877467355435711975220176238773212242259388901219536789502713992538550349751901664251579141505294482643241629749665515093945437294799849451515756637558671201639748493445333110120057378747267524763935558846730809052889300322473125537928072001840984885018580378305718575928772092925849733009683370145250913441644702440679335894687816541847996920363120161482382666995160921842531338171371208458068540389265664227327638313003688873331657015444539073115869826443533912745380045636008968820870121336287001389253947577526850244826924603520067599560650052331031799480804138411461350767974006996944233931217826587904610044642412725938378902400315171325738018539370222053192051222250977661207107028838496417776338064407718791126186333874269323331280920497230355959002001339111484372680423773895127155301472895633785444156314614629145799194400543810090522277425779263709003045133810514720764335587198248314276009856159174510122965046200654565744577808050406927655637845636114856839778767463730831406254379910020083293163628597647230680738825047799555452144685526852429485007363392444474305735724340617625811677526005176552796629613031900054770630422691361415861250998576620955647351397328025073515005231505938019086505563539656387040952587144226731348385700136585222065851614370957728272706673539512988063034154849980659726803403777730083514739687727692159008870712437641407190802702040360698203847283104223648850280623721189986169391669158870588091974772095061318791840608434746914138893855316958262789532358888678532641371430264681876231488058525736232559514122735409870221100359215611981643717749776429780056605071182703851691951568781490649588069120325851232855615939353023989610507379660559472437874288799220159395110592664342563541793957152399887677219642712162903327124431557211090068435009956086757342266629962321592822019158075167081179522025891509949715520475835736064669670145058132368249198456054201152597008574030888979753039572904364435404009463029909927863623152477737921091573888190766516114204274216550033519783728618174684579755549326684597843833314412510782188435759668756759313597223984030143797542371098860030771843489126118635449298319026716655044220117000947211076456679373924253824841537760294297684613445967930835741974245289794826951605586015531523779411478507337870854086577184888084574104938458386203748907936305140230115184498148448595811219789399147695638486963021412757698600500900249928728796158363234675569990872448215859525510409797574216272462796761552215155875804887457881796710662587121600894081616521415565221478650326312071184366773260028112464260259882187626831657397999327722653973397288384675332858562237778452112384457572263879908543255021932297810624575798698196915883087555709356818092977152614525319051000090766005828354470424636115729312514790718179558640651953929440656943556735509902500992573575119872559345403188696510975258215657163402066130028512060414899494626338279434849231554642458519308356603501666378155062794524895432792786949228021174253827594382751418781950721967846473047207701146023161849442368632903007817662558727378213568334639681660806891664340298546350632354159443656183063462328133359471185110933780370500292710128379621345072073476044776329681205431381590839256393205990707730432183091803933845666096067374390707982627535443822261822977591615683218695593872835511026498294377565787908929788729488328460922081726301183997772249619796496437353465373555217072442706485446235897824285107034024683150465624840810800635662892236340134646746293753772188517342839735980033974926398481651785518097672904786662535539932309917445673126013434542248683151315862223468707451177619572743759923197241773363874657511299581802652504495921446979395661779656087041832238061625439440140088671725828647327312799556408333783554124702606658800455486190183700428119797240986698916997868306730046527984270580254182699645995869756816218933862708579900107511545224235442059024815966925140437024384701087517290788370010514463650640289802186620530038414622573254194508133749791501552510604238296942331578641984079288605925083876279116731240333853300721922480645021722980930583884948797512862758770844608009445294348729569307178785613727054118396199482329724713033192910157556144735807835196732244272899975576494243390401280578109901834180690854941843165081289861249771508811144123998822743186047741520961645121212752630262306929695063466684116257445245334318452743297909852830881942761736050735087845633289483553752272196208140896610545022435334196949889515081151558270192779892033719891764796809686851246072404735899043656805077901169121258056594911652927955077536425475687011617771818357681212888598155994383844754775532505264010663199430663184395473144070470832380864105628899429497994248039008540928704081256128367939096187225636077896980777251066150455535143347800468080755636424249441154730316654407812717990553986906495897470380336580247149773632611876794717135110401217415227883798146457246056202928632818114927858196940615561377392817881299206735830903889759977007924467261272991061835419420544904280764037444058683273664711576666856736871770524513928565279061767999184621553320035610768864498396385060217133143513748397255425712047948285746912505707455396084256366207066353117983354220496178089967226985658259616177054944116729037018784688658591476440903829221805496072487766482259031720347927771473600839092470121035263423014476941054047173369171120011170284031291496820022914057647185050625917400707007516026934069542698516349653424413002352613745406343677181778056728183479742602177655553516367246098925419695016132611339120785190474402577532117340473619467080414038600776948805653719508086285711022050129940864239279986649338262255181499256040410385450313425485631041947076026350881488953664774544063393004851655936209762180955517005587895345906768360385881098904929905356737359408302431329793931633626591889265036561666002450177613709327481950621609262649945891075823464641524331530049615659415497019891930605170684975199547450200619680143413829798112644386702671876551035454251487269583208567839701955994255748863050666041654063415745416600966874826289469001860718102086848959324922509046356885927561472362924460728336956384061413085434993660141230459631982773100240795033148846427654777875861489719895273066088830553227650909920854599043164237339487570512553530676434174462651447457270912553725557654790694380088725470727692627469954322467182152021759185204579579604720219912159049504843792158497888493422570572119288210023029438861272845380332273848054599194988262584665375401708635790576465258480818280701310276866248886776768926149295147120925924970218563355043896352446935498325329523026034845356889955335026438878943843637701721252144746042883540658390818327845804908336135071603638541787552655647413214752951940984250678635988127907178881011981742769594756165314157727102502601727399417372803031271041388627545206493401804586998303318755156758291047466996449004142900022500532452458797723884929557216625827572588294139095247795098807994906507047362979527706381474024810035560666005519865618256894559150714247438757991549873818840897647312864039972305624753431237011242568717376320800509177953816301054067717305159786531268750534388871810168623724910234306215436954375916148096947405052384708359583441817901168517624186000956602403267269550393672833682343578921222663047795026416826946705291380815645411729954529622006551511576786222140702711581651746883015534932110394695998123858047373969786856746945113891741422198766920190823132475446246231369569799554351668692608560138747973669748291437007097326658030370941648610999325273436717832094219198610143432688689209015454558617437690496426844975426343447008834914377067357600860951219411480518746914289049059808439739804762619071766949279307866668261871364087031637230270923748185469288453219763455655124340583916416113047379597309648432607823132646736931546288231234441768849386094897448441764206232267037639198882326221244404955683378503403592051348800128133706224976113128937982794507250247792098349739489857257141101656407082069831857682275990632695099568049018331448584259231617721860881760630664089718208481525585765138550978182435167282278499107204002867579079044663351271820297952515061772533406689498895642470326923015399820900390166275224338184424808589395293652582536356585841754855367448186502892451882064478532807912967550486557292908308348548393758333467101908912067114536955173140929461823466478725289529974204021276352359232933057701794238652259632406940274806041288030309245248103494158273593244388727310939741634889604695819245395151341043433998381874650972336926352257914724542444013263129643963912096078001634485119912542081973740744604589974214573104231364456486501937801063526603744056568823861389375443973516812968315679116188842222511414773226123313961860608037311034869266093394043841630032614344928050821131575737727739821551522286509997662432587213933934459020916622729054934938271782051266690211494719231138093382231122409958837224633250122232337896895269025366263941267010317327864987170257149617761051554925798575920455324689446874270250463979056532655319406099946978733381063171948173534895589725915133612648226912545353491572620887423896457902415196604662803279038392004742269682742843897026345623409649587863778600342772709650443157221544659901706170446022861351726685557955640069908071926460683505071588236828494085375740795622498082305474797472382256770124032450116314018701956363253949839769193506509049243316187022787876103165152562968091893566312130880878699958877158861063805754880267807395681460827710939294105368389901817625516500511278558983649338128832845739158015450437039923705452108639806871691695030291026596111174159262864718735142956698714356871662830737375620144623480096216482269331171982408488271133600063376264389317919432975509611058291701573523767132494275862570419433899655939983919224807254747575866622814695716342637135041468716972737029280839494631402291620192636892832040580789174451026253649392621351781619690757882473437550614191995757187908700038547752954479166675518642973422817801857997424313854610020366844288677316424078458475930242256986341438688798302285385471936106803205159166708238997953161424150935007683540530050850148536917556370722181622765094209213692333902373708326403484464065895961454950813994427840601319248006939062088137942880246378903565459787797200418168495105823888068424624299360178077153995649281475782463264454220903202770976952304688543496995214727886506221067843513772402848718377883466538967047812172160081693813222334257045357256700355001851987398582501953291075496849804760800938891021153583633475891247407835468317503806611943772425532343204330341155518022527405138286136768047286989155017773059207255156753895012236044258462936658817820333714939812772111081282406895258431329411097939420977171826325255153541544442791651525757550047296464279766798851895397994691463748696264807638623165088112488082577630826004292878791522063596423913807547086831098024908885069713131388042325932659851720999375591518800037034984656695879186694532840212960574500644286584282872049786895378435850765326127972991466164458303447891697919860750531592439375222021625388730450974856335047317019915934193542881848433872505489315625736400562584872491245375415631340189810312364525807430045961844388010526566412505959125754483550979568892382053406592198960731704093208766863587491959403202326699469250124152272685865801617476440778082587422840207713308010685511492925974356894509289406032073637951601080834214317440827682351267515624230981882919839913815070047022719527265934026459420106444617996771098302655663384227689093601252180029854983688738646367801041782332644127489977091759801297518823882293841431688046726626661554334768692483200052521531708173885657000067535915155357003934655908118513611074683042645059973987342825875242405814730489035713659953386547276336951834822035314143100141380639893485097063347418076677372180010700574895397776906360807983702429988980556004410495606747195385858974247463670413099289857099319306567321128424313356476686319895072931010668054285545443689064673259851517800524913727671776339716067414601840786029432142466080473362602511534242498889914506526235930097013925641987905805826362483849948283363754407727903609669271849708210611147620320798555452081349856464865459416482022122841593103097974197338716196068064139296671518355564481794996562601566641547993286375576534646222689348550556654965726120052205425865313881903858482991168936409000612151203536021532551994910647259974018219915990428777351697434437167549689993286948632029884729480012917135668683106211264559603590130376755198190630879014088893057931840457620354105788989369517107970732992839611132172895544865925047269738960376666262197569384090170095373813582477797129144999723012545820555328969185685917849073067355481960392732577078821766447789314125105712576449345546962605355120085270099581834615065844268310453488550543334464507072693007239024136816924375574878793512024168949431555402951029210363346156455944087888757016793094100463305734420496935765856480590008395639123643362850771395246382972667721426338625309792658767896218226081580752432441677240677627238318475585537974310392730978133054260029519693636759379211532326422383880497412502665253119288844327789810679244554464917874430601069290340609324692192630986939966885875509753515958933520300854067344401432643502604761875505249692883639404091788310194773007120606251832174159513911138596611888683383082425333939045727915180531688474620143317842672430927242814098260211927255552632745341019809699299131093313380313451739372995398330738398703697370630540757368418374160430817032046138882743027569331262234841270004180563879521760924337990008932306197919163233807246383768988800160998229293480941598086038415948955980173174929042185546216414007805075564736240002786548223000810475802151339448463991990145481553839206844619311879196448530504601126098467593678156342682296294783019075852810542430272173860245975312492359257538079512700018436387351413133387122949179217294000375637777856072918275172424703859770559846774083881665382249705203280898219347247740997272873298173077218291468544972669465122696533613572035050028053980840003487133464790068067913893449720079427459726779868206192227106248969501010343666349939460476044951065126012618231496983318449091953922093812010989764398134496984927610656519047424072091088630937526465187707382656773098696004735712412550132331342757089677224359348459810967209574088417076606400280233353339839431254167094426890585155747343684100481851710213501202831211972110591652441875775197057965327487257536011146556756605057269083238458874601329006259122416896615735858475735248950746380165247418526073668012602159914980775172025158985162896341693626667527606101843734433417368527610529959379576942872097347773538631611136590722938146489051022508225127433523217023576870451231783732100227514890859367741982881823705611860746635141644311086409991586047160217250243951116597211625094805123159988619942001097084782173793251543915408611539384842113397773873612303750039350624696679666938212325057770910652057009158245766109090750771732592647929569044477711336606602855651232826211531921734816892973363613177464350254152208445764316943714727237444853138152320119114345378065743456303765967029043862166506198744350326750861712915657282896875264253986669251380908852206421957364015005802514777502365191090261651382717635705876574740971189334927132616062431703597751056912492531671576297673590258202664355334237433105987262617013215762819146246476138204795307124513000181836193771356539938866730644611957823975717710315163535363978457333974090152957823803415657395236338576931206477792489614323130444027162816720388638229275504592501745432669941989954632829878183194055875100036656390112374267882364077620091602721127999535649790753697153040137565438532096311336426006743294392059354692710844947843356377663562189420759213699347920190156976978852968162005266796269500284450831133367781484720669266762221573393685905607532990370488591689452088160501012575491723386877369867505130705292453612665613431355558892842434216404221191239619153464787872833423202167692667879415817333922665456654123596131216539008773809071632128985545656329456398073023464005391773321163151538071879263776373981322494474805458423488810743445979165175145287035945767298905011993355217617246326602595852641519531059690010128137902439481224645339687277042563305164367390111338792635237915491058853544746907970176354421308507554607208493653045772871648834356218246149659953110723179698516059818113873304288443081487744236224165374233392281917678131471992925832565720304313017442054801957795893523342730803841160890800006964879059477126323866563599334998167585066041422646440579386800955469318426001858598614737461740273396435360891197287014735026931735269656687637880432009821518019172137678619763502091182496398412690622840725269989923506761454855078921389716404497988874034850218843452554526063834299716742634556111174888711225333477225606187486356725907192401298037587939172498609032793144156106358070982913980751160340453880406788413980138867787553146161629243967562685003839279585039712576831209843133276084594691893454048295204325850946534423086774114807558744932875851256655384513386664125774267890988004849615619930958440832505300645895001672353562958219550181757940520602789094962659003599451536812276000603952292850560204365306729002054180138054069335695106354830449464869746613047060235679072945983600430201103296052029875600227437213683111494090153962306663840174363484939402501575511155051933904389778654054550750748738651639246119150500316098946798080344866936041473725552821557065400810834842366363457553327962716303495230571936043780407679376055982049312254377052241861040011689780027845230098978812973468494453883881319139438448179333112600663237750088226111982708739795903599054579491937818834675051582795009397093340965049517482423899077200370686281675493826068529714723943793145536487700024330176492646689909454161013238387651758381700108620988724779387913349120372448059880311634446350307875743634328588968130295920848873603274500094286282772534609780747364482868203846694967487545108410923574481163451947462499192633605486724976405507455866428849600656619997440881219238803479504973799332260987549057740877408093532206050321429673156492628996126341543273040519691926109783078375966052182878148922622235790292511184559727666606368280333303658245885491748460432118309911600897786802503530484847391077124793366065329752275247289673335180939877131161172103174048359744167309324770374505127545678722735266189411197376820008613916577979753067116604081218007010457846105996089798821661263912246097782861267215614905703993318932468708912721019164012258133566923003805174852255328652268556453310302604730889494084453070433983379386474688584979333074073080678174297215689458248030408877320461918595656123742306766581784986156111487261619671094732870154445568213040375566687121747075906755317365996119977383089999810186710971457645988286235496336578656924049625849568329710748349361596797434100330869766938007464357485840491603817789971980763127617556040173841409931301887630715937036354146306305451283099730709412223861967882475571320636596523571032438419784989527692962071296888451396753838433606332934565010392679767816133723065471912005913631634078012324541377178979701014144017884802576588709853930837140055295206870175141503980184638039054581223733992714703340044631926527723528875460770109344289625851240329147409932821970712148514893792467002873520864947407820376984623824842595519729982687979001938868717880663682263227988350968235445424424812518205810168461486539118245421267229611753941361122313256803188230516339997713081327268667957007746050682955519163113486548426011629264736711379941598521853430018520664087716593893364180414121946712082655205578357596200704084916322557379551779195964225854876328497997673911321227718975547804354345817371803227027679472524132954013659781457370219385622016385093296587942761678229202631492950879274924199124233323161074024165479533967124115269442802914598475607017503874975196781954930059980325410425985744279026615519605470853199654404995219317420314388627990598718669622743009187513788578143510580229972109277563976691385536223973976356893292407572126670513205406674727965397710690727663052714666658384858415097533341554862435417108463083234439717719135698994317211386064096685020911816449440459296576300878343123104790382107020993566346521549853014634152081643436848997866500679099908068851761237790067955129068881343599447767956287436651620588589934345871718172204574373152043629657458252866646547145383148578621807288738016846347002946471575547016058238683629574471118495946276560762452372338551085644614001205763959419802659792812457490622808370072767203861375742285074067101616727988106170510473947059122842260039863202856788578820628326736945970162887131059162152331758688784411155610716105325698378427180989232351510366583944001814727844703385953195377757985099603742661006798514814871696159252146046504272276704124561227748292576257950929746714055479719898615818210806100444835149340587167845816970544087452861550018992521619583255794179099428704833937982601814452337022326241109559041228300176805861963834949054736817798017038976722568699038826173525903018943216728170526571405215283234472126814258009560905058556723327096032489962121373021617523485006194350381352101956624591551801409780355460154291140861855135217968717676961088960233260886451207269704854695126375040252885476603084661185853079355616427524104938957487741387188847715679659679982299643834503164885492041409808259785236560449935998564707164491555858139108471184700116354599073270540995762267760698638423698749519592263256947120821888513615293957092142995404378321760082059130295092757454042842388143148146921116213091532422345319628704179772663435067891878682278445700670179058641920949474009015360467173178741930689495973591784451796748332199153991851953388607984420282559230754726437107957303501567044340882347402859050469543806294303516338224673364049760776501099286340325667103937900027477662339955101154206281718604909399625080096634378564382370174901507911869569237871765795526135055435155980711891525482240946003703360924726741984313788640896204800205092536171807104165111518627433819924176774493067702668268690767024264030521012785642514828369177175385869777733359644840253992757029401602719585538832633972560449139738837683437413331750262523175992939009327126532519869867566940216298347866456559446417595168633014493982881182696498301692601565156953467010376266467608260005765591383468741381229364793669352980343962396346250738616736667587282014966209532767389017355868670074232613550971984771178776595388902056433038252326705748271700784292385757981779748850730326602606608284096490521940668032640325481013756458095478073672632662546804737349162091573261311369932202986575426710472527735910716383557767843236963572223669308858370656814180588318928518929381778496695405897909322633017841696678372935979190556779510009150317946868132949079024500055745969094740869858300962441274829275193975496948339908576676919978063295333089574195154251599571089336308536269705996475748405052189655034443917353430647732982285398637322079113770779475026373323648961687821586344526034347533119546493032259566493850332399336507049183861693716673673544274430348818345660478160265685323128592748369313261763330850746450268398154741713929607053858814033012845084974477876543539371887058294576071724945413852115659729585710131199960584501923971330344228284889922253944165441484751215190049373396540886413810987338721622198062165468512025024680982846702891312943244706826751811234581587030468643642171755942318362393363524540618428863538735253178602584013731335291485667566872241429157183499301651752391324570071106183441249957504675886350352190440292827164048713772123065224585553803497705309727304998400377674602696352804009760081888521876522874066140976516305883867217686155123796046205020414276044616251188324887914886348978549220341979120500699377757554920266125680253563449706212611262241604262227927767714752730507645039692989646515314952464196337079282441138576210487135870369541793875194613137365756371339150475401998417553164505378021904993207505824757806906975004487479960867931315685330924304432467873800516238568896620350988800301123649792499827815112340611915211314306388463944831000787708264147350559512740585558574923452032973394854143804607592065452606085486993854463703578426842811249340383316654295776036700193959458368255471252239910981985075966309326594810649814345367990731807706614831375645831695129901650639278540948921310843339712424144575262099868258077643402429449684648090812884494586188546131737853199763854891275472370370834529635542824614600684860276167409020074811598232938845550703770148729661389462233211492853000163841282550287250433301743414041129561206646192098606634115225996510495753806420786895564185391518281219566687399769523793008892578985518342662654774923745008946072050774401115036290739415016496862769122130270159022364095913645958276671760831244810814893310983465730531408933325834053591736535993267500752755061552008959834519363720879186550380006285515601313549171459319422178490141193089819697614435983536782825713576523402622143652846804624521959529577500256714482622291491899438483223707762845963617410216596874075154876691287475245732638864079639949875691620191659488897604924626441683519123033586778758866878125219667480256582220236237485681551891452234501181226342495733692235356328792554587003769118977714309110431368213299583474220821826530207100551521289303750081929354093050968548420663077730376099558702560936722928306393643696552663219995950839922808766650005300462461168336645734470830634620167252900681465014151266823795509756677337488059570159020219675859276704403608908904477081654034762092287455566866493630942239365815285961033609505164299326418388036329397890478385862625876169005060158609038173189929283536780601485350470072072504754875809522789000529504961366057367755642052819840004411053183206683701933723630542473524382408410504747651654863022716704734386255003783466358793433993541789768475406248792859441766676526846047751936499803151662846756791402234385594059310725663366562331577404362518565425291941971545495717710497082619792376593641884697906768548939784447356700157169412863717894223827911374616347517740055640910864974039926152561239651525528280630309176164104937232856245298785797225734345250755783526218296487568872471316653182120817448891810962187858363136798451457104251876355805494429539198256927800899269903563737924860550993810654012795387998622385677899439101795741274805975914326964362669623550803551652278820531505779334273492223629977377847721416154559300365195143694251756425623274284788937858224228156598877247517445263077727460004753399674074238870322129637921077767964192401582210680992764367894555193353961060359085739464516794824916042335956110266864828565393513731834175706531014236761685270168654840994923760242468767603931212465967118658331331329944285485626118451432189217635894509926704916175270878079223134823758700692564531684849475079205066005410906520804609714552447067888477398816689611256731456956207216812246169596812359848695868248079631542942183619519193809438239475686683250360081599047299237257180454267533729614525382575195190346555978093337099887112003995952450830933658688946996945117348156316245888331760330535674595406246462995132459649755686814347275837141900045048395820023390952029286663155976086416426918365166424494240787727553680272911461602421716808276223160542290606898987025902184157078672704848259946709789832205942415077352304371648154103991518270792082050458083754525865940154191302362270274312889641642545071859736188191288901305926044706082891003215549377958420950597915746104186349679128030102197035710176464476898942004907253325605237052142298421273510252546566911873141227670249895401218666809449962634974485247852953418567508045911706781739366573359609778105223729368552063036209560406475919994026337153153811437359985811403002021791231945233855928900975605962169110873514704096699312055802542255298950056188051960967864696526459215911215670196904950088734945641679420843851950167401130111062605306333323998185778182040027184384735878165946664097355860634361664932604028190220450451368464937766733894180366645504218917464920855736084700762897886574362871921063181091603014013388162556285579235824876302165455263947329115830263348561970744305852450044335673374187877137530521841012542938305271131778039826716876571747915589004160603871099858269190206281139973759188172665149738047523162721959573597744612874010921885732169014383673000562623554471566541030061300617882754581178771349126060883968438428411602176411301251967667926759998141945621171197343613683121151998197225984024184010139711670861007038000662278956597980658125591410355204301794263089741288482726183036408528611060968946822080110665013703158551944935731680439222942956198650366626046851707982988552357711369027166859980835230478128981554608839195517811603175968788560327962331540035586029379770643410131729504614384989135779917538289807023143790232704668834980315709794186030925752585328020009749793695889531140907793485053287532350761736449122426413292102730683355998595477505128594408002930374433670973823161514110275533220875209606353745749409990194471509847936448177148776669421810058071057783087912881789038274433683796749781261727627835859696222732172301577929335310146396437823049798755147934116558737720912574092928040179274434266484119873136072473479136460900381266875853395745843373438416357746302439387056789399618116025027027094414712024358333594198171765976132593030395481111224532551782949383177661372890674748092417166859184606949047718222140864120965251131136513383917473067724949265396447576375781845979925516979408652178627766665477219641408833409439863964723852157223268572780072000109702754687208098625069828346082243119553605021935322830328947747305750057164974340311352364992726261417241772916039547052530649348160721442473496907549558653071720838248560574528584908992528652248460627622449949202768808153236473645680876171954430980370394984914425861953042436428732103892842370896969915425375613682432775619534017987665895721064986203867901521828379485877176757762766553680555429896194487901799540360033568711273233586601949823703956753275249203752169242061699010783107249585286633974209969627041375990800548795055869986772023062544419656264331507455398481166917591393898509618906084247949864432836903071416530269282849926586140386715610610083520524870944509167986754425551912759277560468821575879506859990782268178753358958256214411828763365535792412728782965452453553923478514020538984839556814264208272779632198445770828315037069140501987207583608827413653971382684343372880968876543762116001666372403063568622925748768176737844133689028210202499417212233657440857250372666003277640877970920061981942478403404876164941912958676053144207540060171920657668248918978206328841979447471738479496208710667336833360472895861705122592695402778815213671307973405259201948742787288757346366706110400542475231876884541420525853440669165637117901051973837367955611589251496486618294946616992476720086549127610088538685100891649871395661154647144698207438838433098938843600110160666286915161771820012925788778616732259703069276306111886644560606622632604583193223413137707310930842125393431904772924386778164130838244824838485301959805072359859370993267505328742951795342579488537166887778287120799160152115134494471721594366187111245872790971090247901109272198813916746419445152459083554264756799476522244246487066035366206753971101064472280995892618731235504167362750985016290369754353113783432678460521210566463739519327099560436731168518961998971163811195591715542842952853702759043512525195623020912366465645755006188314326290013450117919898495155783944828040992138893521292548139832301965497752012696961566424184082305446690186203889265263572329074912737361641890596715118698992705047810589654923197929644790581899586879564352209113442640483640186765475256357405854165617341119847982032810853218394794880550254091034722340295933795381195193983974809113076934739029905697929454287295022756297953149114579491052015960927664515045503943985829430887252250752894160389758254583923142353211491576155565177538636303688783866138037989812222136664634727005833732584446211213091899042448369082958999582123823873832981936564616677661272865998134541948981094409501439322023009880438702900708456310789048868614000294905029619727903512969534563604287899813929388392925061908933738913877811263494290372277685715915460278615299457240344686601687645891983477395948300275543254675226770333492510337121603774050137880182129181213866162872917349036477707700570189794975194957377981644013601863598834118307493104518420192233507980356729746576467557052819948672937024059725715221589178857808532740448383703419567082703591521348148497632040460753473445093564381841671990850200209970934681346279421833043192817022692740513523381694814509997998738122319106248735810556943182882997725114480112155575236668839951298321161645223397888969615082138025451658270975761089992673808149284156920083663897885624904723267245897216328007078731099609274101343940124963845086451330044330463336189115741957117048710704089939133407855839914856189368993199561285729323167028887170900273671753511596835520097245720208710495400237127506749577532777847352412343107348527590689476955336062781005974166119122040328817899487222703577888081435237838691462898419282496059087201309128971002167263392924656592705766525599635728140295730322396848917489352352495690620768657629468050061274119035748584597423110046066362682011007240187645125497324381763026353343185562880069086990310184283831163183072128694251714819190335567813015161074125643820965852311964062241523567814076258262840205214327872269535379397942429380127660416953990641449227024429296907047222316735893459111933333216153095928230629411734217115739623157643732651801754318418228566931916806617887757716397986250913107765096086693272259402225615525574337620188503920014857334378066181251273296506965399858330668351357857218611921717623079524180200514337054434427689446189849445855554435511402178166451740588653489978231191068049889203793384013647422628874169218183559056999401736800225439407081792142151379923056993901181876975983998683406650746696960602723974305249336878609788762675222645593508258978655421810828792051740929096779836789449819050503826119504481141188852336686732715815303525685103872969605067581892505242226457732741627725081682185325371245342233636384158586508044891429788429745330514709333558020861120877861056506519072946860563558408236868380921754800871779261716831475285005934471221684060532059729630441154186268687393460846465333803480621969646214971121087946225028747573057160381361997050478281330323025375220596219908349588860492312072821858277093340358392828335923804882633583586441127275555427751533217425916784569307772540357854061340516607955583246788294026341335431456135727646123849051032840960984827726732715657708818719124895011788742980963451573710543278511821155046725354728323826008312031407035312753571192780028685443487586764521537302569998340203135429274740406190247552160868812054887774823405643229553021880657554540557982339212899082947679773223869575702706833841354013861398474271687918902188677809677418741104597047490473722130259485724025977875436234200632387849068961763866829067601919023726477578490254841815341636856844187878966625329850760911806436784211095926825153646182374277995435266239652831846669523363395517911597181731104346266462830093389980412815324000862085932927454784202482851120867901613776526890143083044250413121477139461764051822985192964806619529787943755748521271586972716920368725452012271439157476440449922093007118949896091289484399531668983560822973062523271977160604453721106252846521651883902468566662142408426715417259606305332696823023482851311829500901679027238079717494743377669857520927475645786094745573305374929070022564029233857677597671428680332259185177672467890405840280733948925486914451299442038919481310137606569292392173542662367496688523880109096774715698234681998685506715174727124363805778833207854196173039496273079057953054924240640120230177723989095633525701623594097598580040235082781319529073412071283197141873454824758963207971778032340436712644770467286746005830065230882014196078983502424653231965106959408884947444522861661634965990655980144224443980339868819672084057017159800013925914789637228086306575338469969576927533794592983842116990662797523363297640857614867330004555674901294018509064932109611384905719304540395725840086591714278379302917744242843837547672688693931314426406330509704306345567309544478986704353217538243501459149058431796317744470859706029186857021259962571329765916508612675445861884681969401802203164014107750930726403195038440317870918912886140927165749848845385007427911250144595070285892386661652491810355781695031165101362305827661285890258088324029427176904633859111840977994207809223221425550731591867708654698052153135824103572859412618592363540253223792361185572018668533463635582059937080568025335438659704343418271841181425668303746030971555097848528534357186223486429664882593314820803295964427578899894589763643152029686097137132599354839033864821078660418088201842286387511435065867012406555515468899681509588326173025431476662758097052677323473260086245995583457541305885749369350565132725864080806373563245020473619146225163671310787908235520134535096076930367210215483355002542508203319448987536718072623529638340686470741402484728150335476193400966289664137621867989612551987385861100015014624355321842046006694340557451811448799719711095097145685728940506253512357545490601377451712923823876532144272292640748825156430302231920771289962953098856277401316642945830576404762819264369060937518985652436263329725739144210461474369783688734541317402117049799317641566795361502946205435103560531068531098882696837468019111866348437186520386845668122727505163509470066962300358230041334024373362209508144807278633965072996223907047384901752594241442869295892305901345306056369239007357409452602720064581151051012279558168933351165582507977047085799457614895073166053719986303850615043426413594373103301452328149570676639970532636571273299252431933647443847866271829579787044656417376600931314799650129066535352207746623165952183246185915494964101600852970780767222455379045238821150800064124285935858879154689573014604986558746836271274252283718334540698284184986471337602551486911425642229991976196972641016477847900948264897397953673242125012659359354211980968712235573189165773526969465041069868917605046401172289912677373402320567337715686416426506016919223881680818836075714859529451506989233456592597231389464843860285888508590756107255343837683621429250587367373140215822278544719815785571414733355900175612250909443805773520938421355260236066282984388558478934114597132710448739500113312638630741536128370102842133888492808951188722220229450908708198966769041458182196366153448029105767370960168166309910448514068273953450168473337374039225491770682234974881513433707640751976246197109395035811921407713818209331234682816444353030353212030432069926515160733505088940197700982371640923361581971108070383830491184838573448348223043769872050172408512572226351039872935146544508445318229379012539210471979069418983604950591425479325850850389021332157735958550867778362354247899962734922348048704436609461645683753322500651596553672318719696493070624112912371571456732186014462093012466653272370192167036240195187379013142325951892239036342905434095177870329043112005894008563546976780093349887626651797281719891053900276382950931888061721154374496943009722929521783841717231758843004074429875114776714332146504000629911570743383234252489079042390917391207487507643102613008276009909719362740408137575503513801067525744898794172489089653261670540040178968736278455587654126264065397631671039859565320449246206439603598101335795169636072032454838839764522102626690200625294130718415719693356739359669265367834990400116508183636591519512299496728551709232060113982461471048617932639167174762443515071371579671288840592528899363816023356423093466031040526641251872266568175573344829010367516121711539930293059422924762092112366611616865452148096078928682434903565472603289152456610869588818669055627481363730456477276290043294034109828878271533273154700905475185750223132452159383598287995401790129157153237625333980558716846239505439774681088385087842382945245033497794293636936982418273245953200388935513497037724647608862176166238605490207792067288545468196655725306932778185026895029793966050622906868708374663589823500964267155331164894498628115560184725847742134398825239418583528355811838332011774740696111641296755090998404425881274280980197572918222805118338836768546845032221234045107058540103507604906707879700892198730550522973458827537051699239997376761730163969303974760812149184385728773830403639476968684991069692932410152758468853066226982718968061947495751239283244443255334780826900264999875171079478787567900863259326206538212100075120109297840662261691981268076257162717295471578182272523176331040968513375837831123716460540510105429678036682572399385392858430345040487019846691678959714318769400503928404035684444590640465732401147039350145537306312562484731948730682823074872481141050259312889982728372080498023156046616463107787450230542529510455477319984112950623242877683502401545614362981970107983703520200017355464436961209548988876284961210644945873975620031112406747719044307328015489111866214429144580054846951411535944450069701796005121941973553982329324666618335716250292182920806998420821953707783825326082984117732392362155817450119729515169700247673110791392226047103896955808665729726848908877954537293681370120944049839133711332318074329600814520771918669399667015443574989480811313370174291970696357512902279579283603075268210956929717281894724563825534954998774011616725762399571629755796047122653688673831039008224747727482427711288290008871774139364655820433485856084887506312793512237449540989159893053767815448058912732234480168297918378527957204403655941741523553932951345262404918641041844806237682588826442862600296979731960233961834289069910991801279778788272562640834959028457098128161408110711006653332970812506913331490016863944945636550891371013968789954870021602824657791504498252192983042277226794607224536682062619151894576552938011488881731019002894722383484111682931658682367259313700235903681192903040708737333374051833430162845677978875666752194092617210793335011101542348241105220071195526084646283248016198496610649972911963240969201789316624991762319971092784674334228614304441988504931851024341576959772475721086082441200967075424986378454159378635598371738449089869573461588406932442101858230900930644714077536683592069198117621060990369830555472646670638225114925134635873663115955099599971812133825620267238010826535363457961316475068853367463078722511382919929291654247196591314970893402286554820231596311658374701754257535804217096254204387836722355253884808430952857114412656928852888786486163149845492797166686687054079527912905526296365202062608466855292722884576433516754006634069006393665175895451379256771074870472306445430015126231227651857519947810174293881491211417738149060261005593413932004767452540519235541700699129567206416608558325369465995890289135965807811339620311102686013144644840056045974185029271853268029804580261332217289101659924666657568704024675941936875833307555314643024395695721832589784282093455450014662104231252139545812394119844086229510492912986378307711319122702831389302265911068456600785187065808630062323598842085610225979769243461441866375396098996573363896280489003746991221669446378006166671140923173640893405330937068745905105900813738054409241012204011232215575188332121038407889134793763604562077484198087666248094752192261514044396291684203426300062116855006292277315420320684215997755698766827415796925946470724962439245882989334874023977868985357952427460378341354589447740136105861740555613429000856067639265658780255650073853739348245029830040357492678096613124433664290901814526095893309055105693757827912185139871987683737650075061842264995685350589184465528215703385955756011341518350442455923808419448762479100296169659607948593311824768851040368035255448114838065737964445177052228400455760079814719662437664128975045261330259168364889760111410572203693736040855776985643351790448742157370445046635036661416122990964225440793042624147613224451560208593793330095957415174733728644463772584015811746526653117622229083957788160185280989648406598121375521033410372923355455900155337284067115460765461540450867860635780797342288637508623996491102906327392284589201271958310663404049014694901149706927848925563755755776405204799285357936958261772273826672165225746369844972710732369742686542578456564861027859080018805643392238673936233658602922503652082085508440230876056708646914464843012444021325404901315708972861844629489216880961789857122247785113412341831014027674114476124732311758977502238099669426390812963766249087955527422411996263987195120372811012127600546162291623373923186192891100862662728793256146401995414015652945470967881813400998461419581414189072249389314922046037408071589138084618726800534508381329851126952405317510794273268040486816638762924467448863792295266158257557247299445078312560084848129603948688773224494100925128730516217466698762473524433437596999668909891800891664444769365237711573588302316666412353445462948875485900495512891311161108273078299916851663867115159651642327627066771249121853212531049691562965011348947588424969500221444875123696329629635320507790487929466904047116111545415429829565294057750930383297529124007371133374230047081337917087479951004255613438387700662662680078489921942978648376117314591400250246785262575414321319673792423520345559428995185594172994931341691844700114798409875528182265398710243286547937067456581878682479550213519549076460996217149141099003588408139678579510966834447958608691178988486280425209978580007635224364143867402105162158418570831327918062342529063622337282582947403066716734853539563143159477921640928460137668214383852305644940729636946681054066057638158120319872965547935285396798590977047631957373223014852939217409601462930546464065114059215039141025795818346685309497978404667006339943660095826343396027509955812623893561637283003026257327797213047701397653992133365734900508527862617201312770074755208973247829135023697959752353411819480535685969031739037163071608124273685859442190668104038866404148019624042181440110875042155159704818261104677579182495442429216238440859352951707400883469287132115518863618658518288632525764292311431897061638348117607395575402585106189013306887569989817154743250571869926733317439439775472909917567330408851689399825716939734001822111752232616876380531043445722532730479838055994437626745422242975490292836587607060771100330021426075256087391534323815316418171353525076613444542773461083808694444896536550444388972145297664502939335544851044521762209932533979571785675128379492817054209724427242533244133741609527223746848352205764480131396208753909246758542999294925939067463759071023023784032671733127461517642376713751567963762291612403732700819652441138227018311548014139095673528484618854694019223922221301620113405813976843197394783622018573087782918554283587759855330768677478746205260190575763738611950704359421930278878938732131275711775434000742168758824229640105704415154994487633916885721829207752433538049021508545535541445709237655691578933968168426684923092696599361215552800405054278465115147711239275840918859249779258787619905458895457277283112756489820931188829423782141993535467386136750668471235273156381485072385475390048634756836349797864631880995592720163992811163279710934962703559311891634581537053206536681534130306071720782750311987601510061888966852976305951433901436533123964883845093763256850525069640861525775644554930796897788954676796168100367166402309137909448663640045926364291868824527890174397414030303228438041891384296596450646060743946821635641388595351241895174152009879759947100159917505111147109775471064854885827448265485029777775140810285248139388289317689755658758462571869644932819759096231645302535533845457251362747034394434991230215612237359581221041104525209619667515630906826600203245944167553268211412385475353680324039706549364610838241493203383131715924271369796388728492110460082486743305076541441240067951028361076510096457315501079394354221565988288801860543913847741522775328043282303692400368742958367202070511023828190608988240896444498606621185932986097106902380148867045880859218769351799065981440424630134490126162575218626805706671370954188154188805330000670608185559819234356522819213752122929790148427284783780353404432220260714789357123178113572434069208082701944562704211007863818265080696637923457847169285440976078362735263938502589578470393881610220990886016606880978032185016650512154062681996211113534703076817030294021735510423723318474746088969145677791828212360325441779183539242655326659064703420082462752218035901922407110641210931426227329079685427137627635708947795631981244894043529052271757660326836256572055189508250947267887875139543830638546716066510920529977405349051092228857066349207878509362006879654841008788443004400473810061182797476206341362283770356763700509823529647667191556153264431218796765487269322912050631575995871933438526426641631697144701113542148258992557114364961874872924622068450911557821730184256050928311755634236503582652943053351241441539331243958158292494912856450687592029582542472268929505849726841959134798708274829376741107427755950075596978923434449564774264650433581644265942292240408954895165338934054574119214247910131166532286880415147898911702467368013616786580074162361342567270582378365635462006891024039732365259478990887901778852828031796166913335002833763858190846934214710492817982692475169202717675897337056712566399575062662857689541763279445461213172976705921559844524081285527086991790664395598130106572136122285206251500790321936870139272013509201412027881574192579137691324436565633034688592663569821877297345766702078786706627934274886265003365833353758393966819087965100333928648111790937143903131392744912538510155717514412418196522266591443094128829305324029983662117940054745807845819963680285266575664009722190493329582568699964056014536918941044324143392290770137865496441379690966499029663412562474748428686048762947879452705626326672115414123826687428901326994256637269209060707205560765002600030443184878546528606828769735887872050599755640264365790845797887979599438885124551418369818965665472437795528373344050971913432440301141701643349976869224278902153789964082813937012923909388329384352854905205554151651525731359199872859054756407682952335589200679955032608671822675706220314456080104370181883277555883298764765543338778046678965068539270714786248743184841843470314198551162629789536169311016538400263688956073251756409497458761751958508667838261939507897156202718912075825734786719501932023833075246100475938950553639462697692685977215088701143689869419503454568428403448899200973453247539581261155734541816241233791398352450160373859978720164801341129328570156523233059849566654671104813926491770847167375486262038406021311218257646947719944753298482645945138694697700372603915887428360641078235546744440519023720390053907627594706423638240238900149933185588954820123123176152385406624634181772339309438682835675885070062170161561768046416943654377300697576816032587338356272704332977404279756674439646861292675041638384280462817059544737706359303971004183193607576852785520428133251758468770971712314633200985711827329726424489686057595534960188970993081184836056277994686223762006517314056756526914889635483852548966557808924057181753062999668759815008001923580948522283614799229725711277814817479222215957981746046915969409385788390570265012810276233645479489708964860556640139615615837313660415823317554907897585112473991675536255896982726152864750084677109930995236779971720880133732410303451731751147366308828709229497416127237189897559391637618223629673973676793428342407987892041316239931099938117205769055986884517063404231586725794485289560184365211933459228886892867017860631697923422812766677381761421688459386519393695671661187618803437508402800280783942138518190135294161722188132658396331135906521681871269321247633758061586888123699163460375756219681433317471169234380188926488273488792032696542626265171264339431428499689882090423773100159130775173934875146196805229414734219950506083628666325437878690841750737794912605150964378418994189477729596827896100017560272936213223171083310671014836536751450637318511450769146110763121849099287252661770764386739799061411289243448564525761860966714823681349158683915842937737078840900493090426741719013324576300469774354439841992661151233659443821155223192820463788564347484417453251762532895752143654703374150676481275530321309336585656268426134380069327500267437934432410759535851870765167453221653024253997728228949168408071477531928455587626994123680037812147860967680520529320893946442312785767403223005788561302933958854107350298209640641013584439531771158934063948080567326828083063083189272759320409067320226234493104520928561530094781679754354189462517284923953688406597396200134431601310538749962184480976629380676552994683046196447790695783955872759840036181662834891200446785014590315453708785632008604640599621749113654261986396534835341320745856561989552480590761263257130855406351219696934301462999564332041983850729883224523072016591054155230647917527406802013498278541131470851245842890209625533834286866415746719576334522637262403963947661671483930597089241129895687504840570310605456623528567593923287238566118080176531572228822483306981704653860021511702848348100675318618836692860558717067424252538711281511896791456067515085531204718051520406279644019523964621913968998505804149363146929085383503540387363006815535961792118265018244663718606261169844116754063599056034597868045420957484008879643449947871861487796761250925257571530833941566111099718581778917983851843768144817856454647646795864229001218971412092957989223927454184635307894655796674352020091571429817885900328519300584549082682108730084078058531838811098440498297118132367136407561027408028423869828042035723811766748370392923251996484711175448852185756129631839529116025483651874440711920568474119090536999972088152624926391147149412496763202050114253829794495201985977974493254418646478111865126464897387080902487300438196836822449079961724279209519491760334677101019609098695602091190450440348466097737001194674395598098551053074704176625477247166354995717150679043086929472386232569155307658126250600878810686739186324464461507219635544756306471618366407559721850078501421242806078516959987412709245171419886552063719346373711516427751802454941707846190625121321347873315756917060897548372545203036263164237622006527339663557825070977793100849515940058973346598327306125423814956785287518223524249854321609588667605142726883858073563749359582275236887287709787633866786194957602195465846692434891918851824930116091209264206695326782548954176365561919111370744541589212109594726804553053734360024412165629336096248125888900532745667951797882928324828401090810066388602988807104293582591810713155270087673845301704003993777862837750123508100847515424632139613371986792079718400120436141605555893464950317879900266710521047433625587264887750782839794860503303251228180774966724703720590344673843218544251733576751285818063882499823067563388078057594168657464757463304703737736577625263858135857507192119113427021260350605869527710869994873805097692047389378571013940585615168886970423017365003991819004776259871443696050765859311032227285974329873078635458876927915745610577848242955142350351119822376496442200299343012236473517593485945985150424240753068569323508743371261869565710791066601440782322283348025888228808164348370938099510127117219209451102546021453650180642466007459328416058607069488534756852278312933666439476795926348193720223367393312970539343034504363698242332137345450061349957469622930512230466137373565475898420525601415244138625836331935254840421512624308109247545502286131678358737527747969931563347562733653966405504106554403683891781067240427482921198720614148769410822807111108693335657036828504096434737406787506673197661058478514737162153818783759612762424088229807448538684811013837343981145373906901089341824999199831678590178642754265686763999129842902949022648445293471056859792567757724660090515799786540355059111158947020969200733557303715822815541582401585303837571045878913480865674288880634556936800285440445825152199096837145868131391491427077096450612999273919757354862634468788915556185531108393686588049874392266459145515426567378589000845179035899470633888032006642071199179272240428299266248217977621898865613570886882803222008014736105328621593242501417035671717404376098825304641086333977594363305807983042487760467714634931639014586481885954080075939527132580041218770567712964450370786913979266826961277635845671646083965849974358658021229984980212637365600562297607754049317672424623637143796027679241217869897498394510016132220708432595197211562731272468089464803489425705012740133196923809988989175118766080677929989936524101618344636865576608342702425205071999518380083786973962702155414715356458628912175029647427596108594747351180079682500087280038316269059578734120460598188094087690817256992520247558656652851015956449258773810579548778402240626902024100744576988562561950931804071242004327283436263769755533533888383308041998028721303991496217180672490918038978057212467026882368467857610514114535022677136059653301484973806446474962438868337840463236632019226384741527045218128507290451009351530955388570039407000715093591460624593335466799439638082836212198966582033586776285663575334729526802129559139065208536579075941163422408905764054039259351870380634652708286256421471391376004721959981329507462074833114259085987163071734828984997627836129995191673055952679482122593384573857711945558064284892684427607896812437845771414503766298244397377174210683586238354244611156890055880404787720298309120539805911658889165377393287210657333920792673899444444699932527712194640794104840034831015911695447101021101662337649397634457313239863682280952144837286815453166065627468159320591553220869314334527972190196824516866607749106155056278654929215034274714677814690787030970747282537635261815318446144551588565240686537876010603716619108254116725647375581861407770592887145251596626836881251298750090907722456577025096742652491632325139613595901101797362842549945648735888153681618910004158106058708344765615662195412080971074949688969788830130104320173192097184755746505199091187258608129407162580543727203651459292679079212364273809348647510902970857693222375087035763303981168163696097748501681624687645281709806499777477053460972440492138654867809362192711397120674129587047059725791345583061711795111419075762588529445360499182637022335783251105332749461279017061093685566580833432073296838863003831024229495351134053584441709939987797360031159401030137509371507300924883649875644744330197810263220082420171762794899142397141415372222838155219672773706612800248336036003417882352675120548356046182866682099955488870878880781582728448650890018816395591803540057577318408862848416492667224508733102069225193666675067441834674193027068641758057950893013641862596983983278352674288359923016974666106643880946075558109640730641498953032024507902314058515693700977223378259456067039261827610281720967320288543318666889501898566388180674303968640699791120903813081847941118048585880660628861858111743251667275280831062477270058590674367184123368222603839002122010933175322268737859659575306806550380896427630613302833942998480630196968249350465191089785121834755336091677805910357508705027922803862187220658325773374561019473412882787548960666202297834831181518147871042605829790853102470785853253216135459365387084993245878102672469571073310404550490391611948402033793469361686446176139792868750798030459235721095887365354845594438447895654769394721745954197003420428244728503545913277190042132832571485344500149075176830663327882373253667901238691215638220486225722780804152985975921041899385889860080869801602285228676158593457347688557981157795681518747211677879252975925505690607389070393571578008873549822543539623930650645846650713770335643870197139274120728481345214761903048100933641636956440010979409677268620649455586629646866539863651097560804489227158468392862982641655795027247184660791373957051847079658748642377425548484460533265703557154621167358155963723893890465008665622481454715247004545165667882786974640812149148184290482084503791075286341651615319133388545077240207449277510732441139519851595635431131522869185062322412727244549115491280378441691369349388964047605485718041979368845845643381992187261983980098107455668080934778229642721564805462989208165893476581841422972772431560927876675310204347043799519971336727751909978847045463299394514986275350270532817273376008670620057956662047566384001929272614226657775040234605128602420583853750505010735905244480480175859819529147977459139528791926306505158786628345161476840288083205815421889509412716336778012300782508262185707920296589216348302736128546079465461813825181975901896067613303152472240393948989082751168763190238178883206374055610610738387007834686438838004639486515806318898269858079254754014750712431782470082209064780841762188018299698517428419604156764082378207781482335649264150434067591355598185826338557589392359393357207599791256429689928002378998208013783907002538186454854297573605063835371953220604620162939581423572379382231869430219229793859588807468812931453472102729125624958132137116066390736265115414552625586709690955332681477848124773268480533155793187886415457713860992900757808873008808980612012875807673880524472403673269451441603234831241107348850806748775894142692471428194927000064483805652305469956990295204662093549639590154409442390526485420809954737806940766032098787825369364294706452291847456832115625133147532724230407392533305771690192274625293762661436310386648796133122450251531352672117166524636395720981407186265268414365830651475508517606534228794917396654900970518309610635877735887126228668183180693273713637166279027982671344556395492973373501168355249718485641636385460892052552344368131392271986399564739478548877557477438893597173638146990823177807045527767230197665498705135667941386663586983410678121750780087471478039240240432790646468344817277364066536548953609229838757145573344048770307245157428824204024323827895396140545064941700753436830011185395161754725157329642633629152589607634271386538251184649086660541192488219581014486640166219153310591657730783248261093254533756676825640968321749685631076090160872946314855774133646276922904213367722659320154999257728849778905405587495483703126646000633347601022617764783889076631935608729110206754615402359919592071591908983571132024295620997779934381158908205191709366457210510199891356514927567315728620173808927505555221564121232485033137381253696143669834960888015750371856539570000822041205167082610638522754690333805500218446754874136053630627998268963659919478431137095855617514389199222342334327886807979261464958189742365036795687884717813365276039815858401967052520672284761208155401981684578433250549450586208945017956535497651351134020499067705129712487207243759845638825682949765271668246038844785045660078866272810260818403473147181653489415910538014318278616285086873560010379196547685362135259427738486723177276238515977458918949588714800023346572412729225350376075505058646929270998329010820697370713695084705002544001392544474832709726192700419789536494818810629812923907377291641399421385524107821686508820906929171826076423602558047564303901713551047592740899933145776578562968777862743948879668096978687815832669903615638016438898186848455206383440255617827970636386610710449472196308772805179130368702490860125998213813391994423731543546917238388304444149487539903446468752430311203741287072124104699873341429807572545674961411640739768618285104210001475632275083429675197329015406354225850822636688461773637297175679727015482605525183381546357890227958853980414878718228947633030024213756613805896442716173008079154721001912405666204779932379167993213493870258122271686229027366577354875810539917970974374811513397333852155956161980283110996483152946671767007518889599400286962376232501898866280197163001694296468441421345775530345395484280362269792829264791257130052982600475852033506909792498766384121465413712559806083297850484818493655584248451623004437056198131919982124310764187966697296251908259576030318220987052976107000957816168662321370255275332779148900964736229140764993710265458141714451839374517996550170986059062670703809171560591633407708916019857577908724565237394483667572233236791434594718084527888547408593167113960391482395452323849003597853524917159822791575887260740309028557148351812025616844621920677799735696501784257113249929616329588892963741915785016229815982229606045862094475070110912040064062278076473729648953401043584265926341674166398702126760547877421628950604688679988927449406637312737386664567003868629920323158000757892636881413410028734523236201196703967370114464343340092317343943924216235334274880412600793356685474556001403707023096171224301006297534853713848334092132792644287566167950622166267348454618662543717636807769875669376283674469363849520705449274047581356765662940082587235263252846769430602132684677171463471110461412175733317904621538938196146900643820728606811843963974355695696783657826837081445533898896948156689622604051207527131229882369962359246054195390609384866467214804531212571147559301807244468977614650366892532005260154031811233438710336952836275017585140266703313570850766061629113998408830159018754452437160236510459594081956032414168295812594075186872841586817996138246205105319739644048542094100784537104274585571887662073046116530804993197532402073593971924901325789103569130110661337307383592279438812732830030287637353502295541684555730073067499797803251423970807974455398796029331890100958793096644499559962317528418919416835278269534033765461915943932979415253485026274223676782962146816813428193615116689223494318248429295750831623609690784063433150774128960670471564926413539254241162657909368220800385642843320076251433033709192453449630505927754448551867916978138481801592480611576459120006478144823378825856963329891357782389701048251455356504662939845576965695624300344894224317799476812669160169188804619123041936249300096748374636047137114800001527044171734293373040361811971799314927940664443708431593976231189837270126906725414679846735151504524879818076649166462089045568253515593419156913046717554359957686657048995129432044037856316252086539535828769532693009620811164307773927960209743932064353934577333232621409842626481939112149117111522537868494864957912958990574557508325332230193844196214091181425354242009380874444910853045289913901264601586788678421333393940681104475168565319617199221150908485232381217366093545986616199732446997448819381404390903337694420576184208928119651256436813917270022540520178118045944598304215122832936200943502274550069606562740627191925033268375352753808695709642757605013351523509216319309591317230667196009805090726719624052906226086671292177001390357112691780763499066290021903880785156385704626610935755677580000563919130852845658412639875269479918402277949410488657942213071209257026258173332296070621607458248961922822361556351261789009523468721144351477035628746040917569182391733252730180693740618047647404860277730563254823909511690416606098073658133271636721346634911009109658868132411410046790231161156531161364789654091718884981468871170362118676700991878652189354211382478638058821953850035477631128391244736606899186503028723153084517754580430206772213293687785355655539803909457730588002617111634284116942354916699642446377875353418097184182418844183511932459205788160265445120172798175837472518760625678803379812211631226702034977930656592120028199179353617466231113347288342513272962097802481851941627068296582501182361412874675398938173292449904885152988803404961023051708244937187362063187729625991959241339593199291713249133536119732454909999792572051571313973292844764697191002725730009000405348116535757030483427573465761882982708346030986623367437586685032613184120610626381959046595434137544943022823003689603838346885309625530492216912665660828211771180098837589040890992721407446131586467213850882454689537862159703643270792995576028260140514206834469077434263343892927988241987733310908731358093568771215797752343894473275208018522265660168279382196370423670408083820199147332828651930649629704484059736465170990494374634368817196854820397446684741442018558968528698809319068185233264410882676904491348385573379189302392572870088456167144297722710120971342072528356895467743661672822879140153824238958526543533886083114755394446322014050201935924095731890621166888516636541486480527729178218581813013103405516290169477314749330651157354703844531225901747717872155427812446086380999186395964500580123530008087061658999842472016657695427929226340399205114931447903486108732263590056609363961298217290444750138119878303993205607677903265817881012525108299038514317352455019124799214254640250830091259084887923594833254392565418137670619793165196202793801714328590919938667370193571124734675511743781697028748224824960346724823611200784281571572223049579024485492177498375109222384076514861155267493170484560495412439294382077691955747186035970187303503472033812600190682966445970597408943275554681036015354506038051287704481525829896341803023746751420390300996113496531199982038177821049701747625919499801219298536716875793209163579398114782023340516229944384736160739271636825117423864137180947188435888443138961273181241856928282192566530173395184871515496811347134982813972539806561693389457524683625369250135796846662464367884721802592757608616164561666982000152637171299433705531981158116592333761769078394440006259056791840930463646008198459683024806864813263639177627755111880671945550342026995552415593955749367281695328699315630450909836898689534284325676716944193634228685464988691102130695760615266211911724205792534504533685381375687524823021989958171090191670139725716606023467238345689066104361422592621284965197791604339960120779778593512582554314870127352582739331357627501204675237535447318463898981028959888440622486910124415957241985388422191788429755715427841353127577074640396250300697011951926945702938758088729593859694541799284063779847183174556257882425384082921246794544533701445415098860048282986423244154092446670634667140306479240135801265316604074554390529265933435441095397095826156934480728936545077244454972462031058808433687556729648894002957404556610549700010363609051354691515392436859881611545549240900137668283189630467382849140890443200351500421554889166091838846193333767571160612692170173889213331564903926076726250452304989104052512626639707466765986481237183794464381636856156497547739595511234796711841477177286254630454317638557791547358293648675043962828623015217182601570524719245830040878096466829310231065788418899344731080013878470615376859244116745207326099336129053630201267731308452812611934792633060444179094880007766333165541515843294483829095792715565739640010339097558057350534338499999071173969311441200497762062386830586955194651575180907993405019795965539969729775395316767594531971662492094201720048879754919906508424382455284820778249400189232332703395542183034528035138009202591660571899331900682320759693836405054024699228986823590175474512818625711612209437997795409274593668022529589481763933140366563688557509314142497988815072656301707866861030142108933325362914860735244595499430803577927333967492578971983395558738439836209670362660882869771004582420116109453540840601075895633732082601078312532742916451425409942121322241713314956677973720407113361734875782948557432643705082439574898479407609840614431899916432096204834487789738276791193621256190417955255547537968900062630477231677873771767260438759899771421512089393096297506536022481043017913921054998395255250723105287633356816255672798903918270024786106488390487245339533402846214335014720791000658892107682709248885892967476636018957601583426755509873500199433524281458216225931791453068573145463067464965138234284755095232174826271007952294063833503167952234478715612452669520701478566790436193828763219208636721943077741730082330311878672848074431027209441207959594504602800142310658108435269329584069746835596540654252486329122274312577603359673263029945892646793021411124975972797056935583042181354511469491556431548565959231278735817851722868934196335222085666010643837360591869713715220281063737361398001093609955593538559012288750098086975758188249987835273251782514102805129010987428112982558369442219614049569458855453436595282620682701917668939522602362845798928596300045641293792403902892499163546474663481200575030990331393979566453519449838575664223519853843547308046858638369441349584721231721461777990110652038224744359044151006175065232181741366591545763482956786174979235474237637137581979485203531172032794443251916790423100786104536821740816029092988171276518190449980664737400385478930751842002463042981428859514567323709334374275510754578534759283619533369635997985628822276932710844346477049272480635312471855558859892979286440014065146295149354522136710079116710035544024412296256298081322312240126723170839584860043602949717488443164272704431249507888861797527743053990452491079330439818973112402521104544261440714468266972876454277737148659483652642476944048663781728478489431778795102649335841410566779394857426732201187836325846844455102151883777137451884309199844157447897912493803799263012923035119128715346650031682673966204472716786715549411279922861890200117969683639922839285955147177131041859059135605822859970913155988271070088579011175078729425312976964333942893933583517479289512361274984844636292233008761909565895380673407009921331052845149563894133748288880622329219653712819991637887176629648691889820639898761084226477428408715670005693811251003805637096443282330769023804311582829301301835646060280461311894961406772250693297212495068051208863589950872378681425683672244750291522332729572551636299724686814243334187706311433567372570782676815849064987493335895547585788536123775315733802351361959966747855842781006678315469490511905737431366610362291891404768882759486939280912031879353078331241655981873079947368531285182036734807482578308076092416215262866485727701870933055231173640689334777891874128012289475142006909407565766038688825256830659083668850463761281729408455606666281040080149956962764450037309102728391338197425322445234807520288740943150955033876280368944186366970359695144511826373276744118749958429510796500422094689626048203540217378520788197207600743303309087938795011700476130210334691627010472782138793294860476613126320345384896725358217840072680306146709388033212333513334264947320124991539847917659704734441068418631695633679714963505337528463739004091116690683733423168143003896088801079425937127318167314267123010043465780146627114948146297105554320344717829874363217988990244256372950219145206517092535202997064473462813055985531798996883054748353905673507449671349201150659448192630555279140921516617071722741029165194532780379678948511437899356857473171265827714221246652321813589550728824945917630353114466965307329253657139324887567949266333021374511259344953789093155892841517700973257203524456468593366986321095870429582784332256530491047965925651000640099316536894518086073801039592774291862854711625734041811599202598378833341456799313006757038221812647020266556787467561758216270449168264113952126400089285573957839270996223547211387365423623426179329850647185840984134750092436730428569842026991609968912879156713167054892168593150984324330545561472529282043666780676390183341748376293304568943756976002757681779962857302485773689424412970344653670930660353092131387296071513024581647175467788647315529681749462571046857884250571113218388900422379585811868929582132610355982744513049829858580852196505012010496467916073527995016908017908926537174286426599108142673279937266899459131417253691989462652983326170048652492875531365682240488573530575240330166296850423759091458443656264138675884046384859557638322201845809934197531747494009205383456979618689380822994831664408083313064765420022451963405728855471339099214553103576327371783306577356100469434091152349777799096907047530546748152443573787951790813000298906105531254331955805049219355936300902616084376130568799094914056653059794183511847987357910683189931117478707431170663261158182508997767537672494641939101633217918876607461381391789147787984725049105720828085200591823819916266142152591380745029208069142293060217515438906946618096205174724967417497452673093291574731870516475139803614141187319452897366232512241818896371182029706494548283969086993534170244596998813876986948240080864679626138780405505406862330482218847227915316509298605367016655967824886726264158614734052281986956144985124609848952651940408230603797737731258136319363030989003702972783152009806534173564209797722065233011325222900372195604756553970581956779925710267464633976875139093749849791337029954551470358545662794668173924136495875608440061373583607957551734816789202677799821144653571101668805674956919842227125835889487945060212468231692649733617624161959223320193336102804570693556055135533667458943182372898232818011837380926235948156047925499791156530087542239170370019094342732345409822357990312539580046997029644836792305813573328371220558588049785725926408963046406095861194703920502661846987059001902146092473451727942619629135887834421031519589875549219187442505349210901147960365174243200206266926529866857481025288536409560498594721781731103407363643001965876238167115559357221513096586185149495680307412445897948083635756055481184548601718591523051614617023153602968045857421727049803070762971454281566536304673445532375386627134627778417170276377266105058943352510505595076076648064652819187012105448736152844597227516999576745585754213982378107006149293203913272719820266433938373563542597599183988149714059386305356185271414484402957674698449762724406632805551882568586771150491048525539646378661465579142868277602986186630031483421520461810494353723861708221545684179145996351375865502256470485932296777686550400026980202801996345642744572338601479545925225679027114473267070719881008890727701648568904273465026622875111846444401194461494797279779473587731182359013567639417470852704508358166285225707895611707585744542000497063217248316793566442084302676890832965689249574370003183487846353020615235421857605862940429804796251365131317386373166534517920046230452923922928141147496392064315356371618481046104868031853268322984725290888250785318046412180672008137367158261758294473376760235987423430941082478194135689064012317945654548581579109415577402314063058346480843004084617454838131318333344908443590100351394970326759313791056774657497233212037974189768279483127848027706638336426724098312591828056209947836767557088359241399522534152066665440481458079478313920952915150638578257160427758378856283443705309649359519231121399709608088124128261687398120850060592745533080991562141924936061302487385914166258657736878587284766517567503471207131300351219909781428850375754156396346860061866588211610079760798035005366837867550440441774233444971668201783857698433376137311840418365635283095498039868031671025683603183934453111117578758611850269096751102844449473261676139368846138869752927051274637408349122432677776796592203118400026165026787031542989756947361643147601670920408588923963634504834160921995319965073779739606878210468414241592581863011691778158036613275692902223951946139980046253333266652863367702426719709776480689766369635122977709179601523976327918662334161331437225890100593935450205456111303910484958677984041174375966721047662294079266979449023342959726051473658788144211947751836409586457396293464953814916847366859220347442694455405620789035409989297614145830491639210662587706445150964486565487517394260691472166232641434820706080680821694725337204565425468816115786311090883008622736950416468259932259927269061086477362350266176964591672299326057956625138177950367446406737785389272399130268918196002844614100266523082741009306993393586924658937641213133012314851467524730132056893677822405632242110853355892304905123973507379772838187357030329203119964057831917588638052371209653778997181032381917174835682586975801215382831126505619988037106975628692411305979878103830077641041452847604998180709390225776812913431376082187930478379979759390449789373566754367358896772719282221784396519087042257538068687337641844055404504571296005881066515149674857733046184600495403621478275560688268592356771127873897720722720417168370942511317888830334122137300670233224007711826046251524459366112424473134743771046751006871172026867632049270928806221473901261806132335076502655842094973615836087793364758377817761189668108968642573148603767072578441054628412237090886882471786377520703076800345124190465724161452190202825632925318760775071222014873666606086813296281144525826903805586077381364732737444016754536134261830157010974988673075669570191050205935245199852547771108442764959191945130995859273202563635595677655759937944855709351495936721655707049653482833461367586273857839996382301881331609551341177258147654182531693714020753010058991581238769974183109589489932443879863935098962265577208338280229695363916509637559311123552120619978041353646324735027902826227749819988283752182347453701014865767102328736578362680032929188839721713967514328558250885918112681670169001203955489943760184032587069833757970787256131129094918736450027327370479728180739823513012564975142442137049910246316163295676029840433906375445903160212563985670130098602552076426382865420200455550080760350237748128072457348727154101365772169862095197990028473786947214707709547892580533284116173400826648360380886880233877340267452676643776820175167557922029908203788373652729293405867724762110844739810936647133605083744536809028537498195447664542524800073255359397245453039971238809043366554221395473157991362167079015739059846152886427724799873049847052040786892001636789944401286259511669809195407936792993863359866501496000903355414819461805884724251750347133046236805419657859129802003482416466071003026589733346993672276409090622753886442835097243569397587692305281928970920154898781247666621328390873133340973530751400761023674572620173775766988788346191765654684912148783915144130360743062639704208477437627798558526800282305104125147699056475631748692255814281244518430259148999137097131952113433596496641613625976899730189497867969702291056213725791934307894510148628924877094307404202554274386045553860343799291169162783827446701960385254296564417529151507128200709421460490121399829347066702316394000007488960078620581035127798074643015769178528719793381444569703927917729369120396005103824501354868801479430915635681838911279893555308394854205001140724492751750675567086094784022401555015242523123956927634043958227672308583364315285959617849743757762010105123518921430428053857483490733175675150212620367586322864616109219200525165418700549879374083332439555582155519085190908130475657999153873887015530424721713097535533791392985364569778680372333823210279182700116994216771467030332133776004540817562024575440422405425757310298104927912570543087057838385896033197502307364469269926855567510962296785723660638184707251033036591643154083014680564452106749050820245248821151740964354728121249533805468586191053034546612477982268574632216699608490759792936879739321465719465059182984190442766550049030792721609249313674903456654377920227717616112173815459777200375944366848240366836419495894908140632277224572226989553879968391248936511103865184768687041705761282489583286681366955685821967220905145952025600764722555056394634604908782824332675893775222376049396613407529792468184110681193570895869940713590907812270939383155789079684837433160894577948305974305056579319169039265368897300606102767454463460693943049988722249326433182542789648289220410793006873538895531072236496035605456184234872225104967654506060076516844632426068824628631968169708774745865283876881674616998301406357993054236136528058200827873619084035442619267236156458443787585715851054505729489067338894385300914859002746377493360185878726320582449768048528096986000865976578867191728795953275600678348094629611509032848918700991444495999353887442869171929103912899707654220308362177575360591476199007720779738981066797350810846797164229792832281517068332633592788693502354769036720724034404882769215912143904830761503656187603120693765393913721757337752942906631519078993219733338187638320335278808666996750924357952115729070957325413168660287570812443199649344768997963450840251496087407456051708864042433631118149473924388247351542328114565436147643809855869909500689870264795881375043553022128754808542879105790606146878373219022537047509758861475524211078891745640584288350625473435035097365558564334247411673696861807116229133960353399462771319588675771477127511632332334926681819338500710015596955437619374719215388660272912423931710913802801101931765376649831934308899169950229441672093385031476836342025650279570434156586651758709141304661532836516866905865309445000163881665536143951341349512317021206126891393557523500197554377429185781494748380654359770034810861484790349844716982643028334800713680584753666015747122550576220831659160414838181861674682285051323353175961442660694299555570731099207168249666445243501628499123410737953846730724558079545740251167568431940258654110250339090832396657945149246847507354274805739029071018179539668186628073249660243780769741289898694395262089024928509384755828225537235695023368288216031462493479838595176021196400951923878862498939780675312261194554264879429661259350614276922659299296001259751544394577271213040795232911357103853142207834137883134842618613445970549452175885141107625680906181440519681764280262310862431941957223110791956797904306186967089714810541893581208898823134893478002958951480896257168335557376632307079382649583852449037838064287040846276708194805651122010292946555546928614361925752599611024463470064033105962109749637344745781242874299285394600937403298267037824369729177127742036247169389352604215942890582580457035770774071941980797294140868380346984338772919368127077996404210653023709468693960247722518692259883764810075424120746799511041389540580385534343661507050437549431496296641385768861923080585008068503515755211737102496060777637370259975295414834812934292068331668961150788822270021488650357629958983795250020331526387017523005295478046321494615149171642662796926971077661511710491823851025212265653615652354998819031098203518673303402965987901197557203556567834006542355361296000580373993314901892261745142246288571689806265670670201136725989413747517036235229602076427429973688524605885180120554813243014159403810164982488096047982645533016559076185729883473560592861995920285744868157735085097208632696931303584554018465869831605513570470587782524005482820131145749982350315186340383541246161358181976680376383011219972549064963608244485443451922350215735528619376131423237825046996260222502053593491793217640524217881145188921943155168467466970843845863790283887418305925727951420602471970689272186040627295917351963111501086928888124194684157038628876291361788242742231525018253170672594511032385002179742565702372987476147964356903556048899038954296671165512963344599401964048880601672223765942634342102313967719225559863828355602481932185611101978077918220216606962402570626957199020718308224386760870423033432295243400981626658402880812965821440861789627406251615297240287675599049812205891706605255562407347552907334384711076594149718123219405887846195148784008388181230496855634757939929138070401184456021727120344206109889531879009752070079029978590315399227574111245236813697929301297647048688799970226080573685476828741091462158149322433686188852675159029458071470637924483043269936278963564646982808856263219939519707284121945295345635839112631196320280250893706492065899846950327350229693381328267088202227942025280200884878372413596036696504022253030090751943496404011449118393021790855252613760280508712861863622314487285807298798327788271853232021738451184889012782004789417473122887430473174207055200442994231425198665038776011016465795787454191318448269317854554252411514048454229602547015114589795101147533445906326297638429701896063384227136001936371787065241764974709666000794635245384085216567802618160355634829797333769142105088164918730316401666186157659952456022400530924763938870864775169912363386527938715724169802406561964873611404522101542166004987556035354592579713456305811361124586583885235088041898511531476875573112560263064965785211227878572162862354122493645910747040367280576624125425301276980105995542216466495437324359684670042817735994383005886391455685624796821807605627283727345894971044761946396824764380362719866725197637495266852604365857783899010371124596177583952389631609434398631158912283761231948509423591695859347405167475500022881982277360542661948363402140111080980933287377851955662285582256087199531664311577765605722197129612252362255780198354193352681490854816324816775455477667623720699497183112308082417618978365538640786122311418562982340045144573047622124251713930203269151637568335215309182729845865567569660848347419197764691988541893759448078562227139384822613178107002750243410787762135333300744429025955122906601973865949711603088448116855085336274564300311525913059189374491170886573102277246506175221572194657321656114433528517475748156296073690636238969934876621262118688038940040535614010057856894390917595534125882240147230893595238188208170942061869914673093826631506113039761116588401027832953122598166014443361251543313862142978017027480677830820383355450712442780169888604754532043631392128686946873766904473291900081245782929455351103639494520794404517058738434851760058123184885186265421771935503005966146386112343648372026863386804032094462932656127636042779819317470725879175805467443870519389813665729504455546557525705710069792711806958305641473903298086883137594584761617575775706484314427583695824510448814979451400384485360012022994082069258404800737628450323559037102964275816429284675616645222645054358420345638899208054979114648132246779046080805538581334796900577258114377700035467795644963222141902251258209977957818479159699199908461912430589804319847378675514766554312933792765247055632221626872047999264444032385551934705818958674313916908337179934137743598820965584200437282971804284899747367687710545124091971431801134570715506716348297592420809234322024539891364838940419497868757513390555979148164520877332324754629376525628843075740748912347681452220150384925250733810981163941265060756111243637535057143345966124427688915077624775324145466421136856794087004942379369807081166033694160338687884735011922562142712861931917595632609347155724143857222718597149949703676176866752332040741085686025434610443467420294958957169119119902560269473168623679727783448456008664218204325910496222415243967580325100113687914819544063964196236304262303536327048894929953833552863800433495219934782272046800449368226099352984325337205402591282971290828399251088813921500457210193833949283377377869769927151199429539856129358452853713847190386417688057633511046172166118832734572374989634076382478139610440883819523146035392738986967872791246283466810664211191428916524474977213626383554388247149761182822779079829334071359877079486439677737177777848633431660352537458532128700833415234564292737062948010993153703268087589805194383211113634737730840596064397476520954186073489465815832456058392065706642615770369436139860438016739704180838208431025762867745383290882543789393162314340863413439718058683222356680186662168948266865887801688038537952377844873766253338317949875150829437307661802095093696799747542425162657503417382141582784610818100474858357341685327557671845830483609598183228961606512500919990809657493972389960489086632545151214698325391583225055977551248220302662433260975381188094311162319543162945118558289478236481092248470491887257230455480288753988607085373423167087151996755477504293884373090606302921423329841097690751345155815259368522066598798983946865257968665140452459436605455572869012930617661856500711576208119788031343188408049774446759234612711185040170714182558930564047185679298735907513802050912436200986543911990012191607292104070226186403115711864734884288424922934658591741888248800965525210546616366965652656328728862241255391662878821631386906804237099003100428058928870204266708590246902717884327026399377472382136859317211918126148523587381238399799308510689733487881467440820266633125018478489477609183610910063359142891532276817191650749972531688604454883163289559023804401357501616101863318387826709622148720882433456066320558719119003270138492714842495519568083522570890869365714943168188389930817176137498194580322048959530480323325689092994458545161875027770517583897869851877608231916009597267356487482333169574564770534407510559920881990286849834282144575048254998254561402147471482195788389651571467471313938193758216512465599794067771796655164161786785076240299232903975538944173863467115057650261559513587189607916915934962987046938214706760127647791628562180627122907489665947670850834288726015210891047253121200981590406068110563565748486900613567799764477977670947882063515024716163863168763383871247756478499487526726823598160176850014197031214786749028975673203364793704006431268461432625769433298027854375351440175927796469719794656493326673479225704646698921399466296181322172563290525151818434208525115863683358413483659647079268604945664129913017746832756890207638956868859460721591927549259406896931100952868426805109199548905503605855441898422386166194227939549608568008680561004912612910810707678717032157900479457543488841509373519295145516930428063127090735734588656388949867658741002574590580744974328432788355504895947056358929186535187616847752924145662397146675946004597625949329219399837077500252778405826637035979958033240805927554011182017105384830943590359344260238369179634484440562891842060461408359998206162015793506200161787475615254033416988147135847545146895360075540939999824531086961525905570707479365033127410670416987158256344240697686775960237022177906692593049063163311382963966917238931064482094912830855425721031650760695621079897551756762943749204777560563353261416795864314465210071039320751982958157571619841786038549934029391711496795671806098952382993940129891993472216755965015785408442420176547541993690875413545858301041686896367420392265139843129330528855929418430591714119933306126703099926879729224413876454986766310646258658840075142884499024377337031910677429304203951266196499486339857797423621750502306639996072999898265373173131332035327072750677578150584897333477818011000412537010966495543464138126634995103319946749413180128050713381623992217985322939413564864212053210229834936549469849050930775878871393373515269901660232458426790059750487828020395085336238944177414270364198828609635167344938659934060152324994411777462387754528104422654665362942806735178584784844578378150284632997733261866628275212309088793403578938354112263209357898337362081670509343792441320999662090163175065584859660746926892571255246199863942058632066311192582176923938852727029792193437639750309621922617729651832550709951197011893178027783665519059533111492515285586825128345162585029969628410167281906504706260852706614849485250860460463396585328834455783066019475002992808708274879229152645895341854643266375614043392345730576355090281161780142939805342910865979454013112499105516444182828562885200545471251999628425574280950865022135295776393772519255464586414485582752187995696019902756045959366499807282942570616427308468130918622064855950110405839499713350367149054386736163744087779774394759447462165604156299500241045549897472221179075201341885850528442302068488111625822753606819149228571180726223456024699906219820311654412441825159246376572305030776263050564568157524729693782484291142986662568319637877361252532186859580229570459585624228139661898574887372739719244952292513486408015997003392430991324570881042519672693849752425393292013929749881356014260314943699730075592811782466992128760885385503420268708629578114511035151946250472387798657048404607625548893583076099970215845482208407930728083161856705698516599673023358013993561396919138395835083341043548648233140546984387130494254978479173354732961498565980528884995404561237998547771877835353186469853045209198373589515368971715644228620672341887889522372248551517999924142304933305048553175394169133617590965429593659208532055802837356803785129496199353774295067901711236759485238265038618398877475769088432908674383868135578644431910624853586529698063647326654302388120975583640748869328609923676864071846839988873544301404358150986126104102146383023711191368076223570277619612328368364153059103317325912476264895674105448637391038052365277945618957188774976083407158675770089966775521338915465312491254302010926040501556957280734058011656169183300730491083534303040156084246959418362538135866061925689327816852639150184379161908159119852948473458060802865395624322878170931717432157950714082773867945791202573237591330626517477507897047432858611296828460886759535536209771548990033620457603896543557353250978141727263222211249437111135103172772868940914661440811910825352118367518485194093221900941811099005645720945631548762959634600614019078352316260544107765191608020788002183884984618557439247796111744487455086456573966338201691218643384233575653238755181652447461743167398351014954236234085518097837624398290408554933660154420736532925715610706285224281915552943831933148904238424238323754067997015670308206073362133751531506100545060527388225222443229818024151211769720688155750680858197883762936733136971038033828879803737034443255396142001947530291481708569037161876562094299397701361387474554342094766489606976824765181612763838437480189061369735643087127579022314305660116043831225302046414681999199189114728854186314995785403889281792991493054869021248265762383359651764677883272363514063289192423716682444424160054347050965965601917687106491216144499368872205655392007097671404354435421937483771147300516494286515829953837234121427098158685874680017801563479633408119762989213483813525565032495098322491087217280953819082549632424441597426175015625444205585362310793587139915063361983906112146766631457877340164860540776481107696301205272366279417038000078961214849564610044166736868398763590574903689330245876490215506116636373143299167754885298179324924566975701787583136647799229846369611467011448034653296053327456872840480825948276341467838280981424961608025407263129959019921106125550069459471970520951393548584693164913840001594090001008743882817872329547876304181736126045127105217206612453630950456349075377434262380175589716027283099331925580296855930968922718845986798912228083301641640354603669523788276656526786086791929146930922693817527493576735527626507029345955857407234838027942264063913432729265092360143518384645693323481345807115739700482558756381033665108280679461684892663711728287171384503827066157928823442545737502356866043697495006760094356729402311878885064631933399633574182882948612818292841139622640998234505654861086337297239747302730210696876393485712305424337668086913485175741034945719410577630158280390463070058228625717066273185407618533245052136215474094687534516346998279561451286721815859174156431456097957630356781636355509946735488425360293025974616979881374915636571545187487144375570023004997955418117644725466919444663268346107021681125944526357561392208864717054670954734479545491030837623074319244028959866570320421118919600083251904441093217114213700638026592907655305684460046812855433862398461864033002767474600248022981772266055772850926918417885342008533341838849766570732064213447950723835894512433526824975325547754511774761949214834852846690811509082826890759422360993251274592205729320672910852870156506134376144423202570305397583541271931166508746573034810603422803979519205015178698809899951349521058552657207747204580202557487218812290723590922187620247573021140603669351489252234776857796051710047322066782227354518397595370228374907871848446444781344332641369455876370220887616287162417548662081243262597541486806015196685689672007502209216731273805118117531622824655785656923465945457721522953583660805538873154574447155589586437995303879429538053645503466220935910642249245243396544068388319306589997891708714416551024282104695779779595341477854174844362199377862371219863897127730406415255634285031894138760936513273614268522125198141017908017315344825227010114671965617952084815762972850881985639869017170185371052467322105047001857791430374260123082883653213248327674575650885973369951795013907106200896024402936470379274854997560086906558135730767904532922311531714651842491716513286769914808262448260663444447188831182121203141961260583374324380115875857151969336213714830803756818426481563082038504920953104162408732687194409722579982219075704999556516075334699744632911211357103235081171414779333677583753284467194804081913381480657368377275036801226953600158745614807927371421157538149155629395357788598710358983477099904131135250062902146684152360709196323338780945197803778083697232092487831444684643076406272648400348940628778526949137279262516724278954011313620534385940580971432193780478688162773614817756742108774157349018210623259078857445144528653401309525337714048447347701327999982724541905169375760010000502479591925412047232715492883847190684392465232779659068122076064633457524521889265142669019034158640128976541713710899951766448283439508773333546446710737222512967663523735112627292372761948569862703077996943944355677395286431314676636905223423013848416242710265152936494104507153992364419804336214322813076568337676562843577804418249406132861345954775645346365679864605735117955417945520857870169763185239107291579323809713284087441909278016075673879562249582260479719331170697725242016373118577090436360885560035669973107585557700314633888109755259114017661694878225278901151888623097316982997179460197201926367131040075993570354909888104601341322497824460372977743068536178258794846814894270330273534523623350272059751521906474515947676401713549787316888305357091886977648781479055497061729019018086574648997794456158272926701699151387223635555703053512979240150872157496577041525611129360624699154915512012865633508308699349554664143206353864220199316549910321801328644052046233868763903377750630613505342625323532844114171127898632192420084580075054607197779952232848098438478794081587310346917986444043448742244711731086497766870675486706486800234115086487536687549900942018533338311510440922824004357854194086457201890760468577780468877854071992317345551815581956350037432902986702822335448273027872982269179049742691403126954472746129827708659873110107957812611443724512102480555542932254720459903277106291263406151599245032817190593897443131016189383409684173950539798917026263874894705180131480530892697011704770586926789580803464135169950922431460956265763271145319832968032898762431750045186771539859679959909957440465710478818167707710693362142033798872347305475958685719100092274726321183304253842544496291576953656727032202072514563000947587447680135881561712833816535944596273659598640968124947341928880716827149742127996597265660553339885640500768032520865206948415107260421287462886171385151637094726459240717545500306048281129897698822889812394978558559349800830578225576225978206299479295939584652875298038019162203358640985339584515343196975685721370143839368142786781355029886136254507465427539094837662494126095080195216978052878342224807768172022633606562501372841142518093645989987219702288046203630362618578004988972276109120500328660516728147858855389987293224075741059548642413296381226575580960666174110947093979138470985072176483159911540144289366945421668254720811117874932893017262685407206856285796020865162009694558854356956434734535665648595435580420764102425468155096958146329361654336250826371199138202087385131825792876923097018586107812957310282057310264305688808968621359207804307845339998338133955502293462692623980862143724553951996939355903099104921935412921047732376052161453514827410565848807289887543803206446903441114517246026966226662118184828963191413687174879189980416029102662644294731742166285502077148815669539039374005003068076413385264165376252242704301725252546492503587210822304400221490460421428221126475454011176901770756558157197571365244305700045914476559730950468095700433330529018243845349160705427736006983682446088209858201117647553994283916050046000075802596983126147828019189683651687785832172788273658620897559855410668967814849150582588815410395421193909743792994277778748248220341215733690676583718242625252141219891823088637794989164802782643234538515691274977044531730745855038660533728722211524410364627477558755504705424544148089442499384307716009455499820161693213884472993670248371194979290173519095246667969322582123350806181850805984367140122134138710396097394970199088467724901938652516599938304837828822468663415985314857395148089036645695947444964965722754501125879736614602017494276886808883103001227990287303351107855847188140921713083858404811707590960812602768599678520920649600401024361537435867006709196361960338212003687518448137459618775929453284000414952919034956608518334597143694470089955288518100786014350738542548717624717981544707402548494495952167819095475907442431813108375651266956611547978375445502415358121082931631515907506626763077356268861670745037244515378135056035648618026048006264091344362035670619725174262777195354662037942340115350140185175284574783459245145929348173048043148666326700101471244083216244268446713439561733105386800412869119650537477179958650252914230109224217637468390878856500615614176802067061323783524463420981351089464295067101977842182754222498034835862597045786620462532390571016683122076415840525771568404644759396333827662540020896727931004730112983719026393089408436619906331940729154551553028407546776661147211635191643171432275074743048522836347855603573350251315849429752897439959905679953208683715230129813729465173733633412435539200613452589987817187103421746825909181099502818340995212623483828126494029738720915257265609636288224668544931155461214220659587456431972183586871000714922601027891308447971280580143266316810181526084659728254936735208810062658847537690180899348753530892272475651769487539537003740118911744129497114457662691675147995892115563185251166596499397633251675063033528733122598830669215544009718847328458287725604228232869952959832240758181087183187058157291073733758599821178649271299091116302261376192486823333497829644928426000269394553939128101420921019463576008939414674157992544679273252580329173199573976289856523408764733173644129910385392961319387394381566192497771321684132979101861413660517557196926141522798641660140276208898025294942384021789195841106753474291268299020517734158396237470523221227139298267444008455313318644854000297744084917347360642252364776915243637415221479750815719240584014967536315954924140933834758462905804240839643007892320475698531173429719961704836365601678302451892178897745611282964948543976355933625219645111460671188169743826033863214054981498539350315896901852146002497916055931799775465703829887666926202898336492108291960298837664097468686631702898353510773130181026852552870625206403509498241541898137750097236018275964999311278845059344832661538369446342573293141031716678612399575295157049661878335453503969841239212527524489316486232436797459497775297573782662946172081433900493111871323856331950163564563467239759658682249330815197959291410286924856583322350451180372187389693501120504047621961411162683848069463996770463533356411126944019008043084233646316954462585321388452238224614896130461445040766508672720164378679829837851883802351100149604868142802944846970317123266540610927840724198615031749723637666692148116990974160360934330433498760237301500419424719269128672871732204179664632935497025714200503096668113700693639963728803670055846030577604427404174713155137502714558582074573120274707840047273589211394308102508296656229287801147436048699214257485909995086967719059091280867968759388536769354105627668356965458748004076349096222396811223542839042602145215325714235760509445550371714112543546016939290137536897701952399573578417850829539442827564493607538839519932631690393648077865584314380842333576010440351874141551735290097807379706017063457112971370734898674701743755728018538028909546654935610389185965397803421993586865714038083530125267579219664167046387300149753803837544511839301955781794607694996164336831396609337388926903103177134493968079426165124481231089780871545684014425111595615324667981774331258896478574385010259175590861224167553839910677040458758344852549635862372459830877520143812622754892140892919734847685753548289768547989748448264677306648646289967331331726384903313621772367822377261626166502577598996057577409178133614475583482698717524222534331127945896768637671265837893534921297302740971157085110983402921612948217897539982965798472799430610503042151298741578025030138117338030811561476602070574692461230714352709880252710372590571282098206784469832270027730020520410126823649891026003248324762498677732967567603073027013822438355101371101712718716687958886955220095068540480975552130248883799116843635458495553149086337049048908769117698975867882521803926686031608540560568772452527656559064094265486724972333821256188598814857207913022078663937540393711346144906591944579738364671250077800487477634709972446680046764782881659228341956918133982136025818538729090466792356789254280863982920688186369378756419072158716151163221172645689959340728130164332346305059932492183245571460632971255804298468050925070806381474164508113120177231181685139123736127965237805555091990858998677258244200807509461298540256741402846796822787997713633234768815657746450724689070447494179351128287689764623277562383781748227372560569084137358679052701501311808653511133495761498211977673101904464171288614825223307387087478291862255343917471668118673562908362312212434746935543839724349060373229935778014504959569265551856302012344718273865356683261340230721306823950556043974589309182077711528176077239908329297156144914020514192121217606157412462655324418442889317237202146971517338421813193007530293624538615765815640799773980220339263796227170879131317315752878596704527750527231031296408784461634748783365244507903249791691677663247630076140253619845909845716959851618743395239097707659459791057955674426765514310857806387230479835899320253138327623234290807611310637571368422334131766984079874030976410459493468306612922962588672580165112567120281153365804773125430549082027568134884246266105066013649624006205936275557750087366012423386804583151509477622918075678204627948019935343836748628687409067988648037396134271408979414040155012397403182388724787847161760116001025273863815215782077697445048289118667156845186403500384351276550746038892516366080236164199552997661127949822767380478078525667909999576800661023891623266036565145879918088786786889391953972275577635047504756781758144592932759397694321535492382626223848731700730171914913684528804289189289484322585603284824260914187343792645028976876126753424599978442921552817926787621084812244763696074113396446739183452075475145464271396994982021779398376968211494061594112903076180822329120084194448924656364476971751764072606055721013008116760396565973465241288857496792860077599514293978112232274650171499705036735589371627951136473583373816271121916331080310510326560303758229717988201712812793503779387607245529927665967083773286076304697821546659038524011433251997551262462474813978531318261492145953681185707854907929777871816023048564370150134879001451453005885279233909379673209138826529302960705611581089621288740321592406586303965998786618909102507780566601438112344618433480987711529198475896700120924130152225444157291695763421849245286507623199948003112459052754363852540602292653457614726230768593665948978684943302427861209961745670812053861981989164158411982592435597232476155863698951884177735665604381380855649669030272709044178697215434263482395220942060471312609421524125775364386867036104437947617611836184047897706069903926237961616670843783011027263357986345730566143141978729686602871507582323534277871289315199771308456853802345814068921697897747994763690834482871618869798350851766129719655220281740429027558701359674617552949882037114013590540715703257890181905996340421822294326788711662264082928318173471200209971074801401898903538707975530500819088744537017895146413886561492333169294121006904154414997853444584898991610001762733691316452485090556314179661602851333017519297271653614787199534601146604630503858478019129664261066561558761416282153707350758546069422872364381170115825647981166296464746161353010982436982598344403076383543485485312768045954586058574674275661181749967239441626141590341301513156205056896699623274572445152444755595287507350294077714861090544048044190055350183262615115112768713085747272690946812348519832530784990453233774407873861872580056639028407051815210754772528392429788591306618799855096200965107677213720887551456356347293040766658103437055601592394808329161060503679062165400436015119474655295607847029388899145982756069835175564728040809986628940992758463445649759150492925851458257998603253377615939231947817076031047325713191051072350674495128758735413185322526614321143259849498407759828158407049354908613772463909229039294787227148903577818787118315785212555140947733185344085141722656107936006122853796779662617260204228727531518612490406692881197982058814630926883879497639914588915542304593304868139793532507691032176954597238991800024081778445311134309290422200745609126282146679161015465989156428545925510045020945575740595068021652612959254997659848899641764464442841319430021376646614106099879997800532827452093367280107326959285374477648497766019732249943306448124364833370793059053464034693290965286899363017502824688666461565918343325142452382036289797875058898844598208595378839513290804388952166468402969504821022445131287472892434019192266359556007713928013245090985613020165055365431082263850728313216573923817993623387820893893625690255528725721214224294725615400723899041800360697178161236348553005986773669430569948151533339838866033914214564829799054801501952874177284607116950059998729252888456507048378842181768641324885736109335958739355247302471990867828633620525084219422458308587168385771239190041389774229876712571999072720380270516622308654517712767386344854680647263884012675365554939047200438258320349278829920601059736631509282659722793954745734081627397181959584537166624242392716974430601915958810604752245427687310436783834477015661083093405811778577109456810158902969515447797673491587198115569222526911523861335469624857640889307516762350620113462623759630679719645228313329365485675688023436636633589247622036424949551606820788368889985511330363206874447635263228212373460394056880321596219556507984334428334477717619772396531521224062528748045622304338701344922603015185581582197778590076718676800364747834604091184852698753172608188457872940059911645298221883138457689687626866888759453157957557377553157274260113592029657224480417105580830686848155264331397604044953146530259445375322229229973516263877746214103669943869903403389543189123781758671998944915061791317806720577075244262361979548929234140031101383200567418598956164069779422148319724532081383860265415930328102112452827275455933424303498116233688301941254141655438643882808010299235761120619445105136656920114463267104332133252147046076840952101948822083122293930445862940821942608853697378601743102425424692071665857191335256054995463571284341284874269333672350033180615250014203610143732947016271895611338443755264292778034305682141230829334318659125082339789662838957530780859880697811615573476350340872797017501561282129171469139280066719826680325417610443461935382913194808728453865779006269371093334274585817742593344789690622087225584006309470011383467766987347731889476324999154222063043204553905213752375321702624395849970983637553322255958451934705693845674331426473993923686375909967226469893093240025782123465580223157657021616518857118789693360424125338478545697602749971574299336979375285385031603296007821514765770424806251902865562230773993182934669434931010941523314554699032724114757024210927793913665160633541815188352495052226982872814003790636921412108036679167554277247644363702483487770586027589560762573989622390402651078937834115613872564433813166653456702408700247256939210061329405431455827690213321935869705611920914543073073280735965663051771401706578310325703402713081014617399532628717333916339425178395660309916999360058947137598189589572735613298880501961205469898383768004288877999566634250561688246473693655038352480993682283824122966158272888160043001951430570244186086425963184540076527237270898310874654150082765320293741497136592019488664910946001379597988868968138500595420635104344718406831163321714925996464114888639439299899254568674024472266269319239748075240109967359712461723821111648869141904854124397650537693546193812073783208206100350609139839326971725923990073170693916890035085463567240345787451878351041015863227210608186699852343419464672441814421358138986594333854185335927828101940926816660959434836466225780708460808142967769517857890450261972884524459119268881182053780904689557679755700970978904104410814907740548726972268199796061989311011588574311755554949974630147724722314684843559240841557987294851733855595153225557474870697757413428123112683196309507194558001999470661338730296638077910911093298512816043604521220641084611792472778009228241923249037991683065203499578899382892489984474966939669379628693077261603996634660766750695833706528110595683972791204983113423658721982469486526710741928051730260376925529937389465494676430808724813687352863118421073151863726054344873229320731499229554228494035682113672411833693487394470060133570509181620098908863293412752365804706465072406162339900715927078926213702342914303578935869985467381798659827517418063867302833185562937082417827887426828295154535713218200814686750159315931205015376500486726423930294894477220495009362331510488337024732685252727901567236231403787928154405743018287549816792342852708500104445609663169096866120962766514300786330012600825075573888866588404356904141029104972650371174173956522535560325684865967411006206287286574652588844999535668862735033441068571357582020402553181997984042536318944131707231797945593068271434928764303044289801279904797800031895983781110043382216182234392336898532950529391109852956863102947040809023794878782064297197084250549782843903828622103599391472965291484971620684439972862597351005425585058032450964287708657744356480815275937098815671501945000345505986002580255806156627233917952683865086624207788565851196199018490538585473717519746211395281881372049563571938333819689522845512430821324429636291171061259823135679828266382355567790123973333076844317240006175439474385853471849638161521436791789487757348250463617511151774731544373037848385822515577461870766900055785011453851092105508575184298970277746152545271171803733703013475066987237572075912247517874341944830475974334014267523660445462351651144943895445351249024451257974450750446376470773768850007192004195583420732038731577377957258544072576031960054055593030390092147848341602101284549817949522757108400668019151344885932166463656688088218494111522477255273869217265880464961561724936823803815302328935339751909306156723251338393542824010740471054539657113640356021203478493352700777510283748163591048056880647597257356104797127895738139878177541188782733133808826438142688027183362741812600521537963443477583138652485256958533405893880934068776376880732559052844229019810494078186141763151051244521931671427476739846567342330483173917115130835018042959661641865258742829669615655700300884862101285997005727083110737288091264049389618020760125313564629654809998079082449327949462062699789322554729993598315107254326175112380295500524550084625484290790207065120568762730059290755931588994863738446698776612808691247586895535129478095146152307629732804770710222350847120441907941087064194385383733363157366907477708520531037828395425190149963423525583673871416601058634686313508762054660141747873514618219826983859579191869125231428672794995205505764881345688555940962856335844189095295697689296089472282692107213571792594852346561693390775326178670023212822410839629575629634642595462542666164627039096526658966434550281063450691253664075676949753676975553226154666702163921945495151388643707540886612296980812833772369280827800846739593899969215961641238663125807744455116259109822164097333865607994150164915180697983712828306873226792580579429756714120611984450019751975279904594360057036037968501358353779328045449737598758310104312515385054639635107965117348856795086053096782215057780781864793423423550340953272621742151209351572047653846248194955158323551402228722994479400122172459069065735616431057096296162499509990467117660570775148148553241981039897292727314189915168022352584361904055719421750266437254052638413584635245947834104582576464179153766794736362833691659723353044072201328539767343467571094816649886364136110782686550880508264783272599783818739178254448585762737994427242745197865316407428329268566909035168609201893911054473208853912969559074220167521117153695167507916660885962634365139755217029702629770837475547705527953220499450342234496849487026274954825535974448397107408041165221573048831442148824357768421208580020435376555800430669865279064472650607314087619966855253822018765120827691033691624288636504554973231922005847709705268803399592384473444253737701520450093917471311003954138261096679788529483716415875592545036292729111295345628726661691046480833540530035586155823515450039910246804789959405856646600498335083235547609561263370338851943563125108418988593440585297558677093958622510156336138971593248641519277722495808474334563183001565731990945481870032141852690887160775040597317824785335547428118145802521543687320091619900182160338263649337370510387097941481656125134566882253107983204588973948893175362559655692095006818735604146092938714409450282472899945881015981754446983953546818120255411218707527484133249400168141187462012101150484194148694322802336017321600143457580108850205701847396964662145493841458257037466531705990989469589146403977738520801499584079811816910185399802762741472902779831885582323813394502191496683299496693918332948910273406013613807209000229049620338989067088066014424309097248049007641439292100086942118635284217914193928441315900583812737812625838153696642969772858448047477347030242256381016781422317139026899255494542536942783366379608941365393330666337130926995153787858455592377228561271015086570810036565619372613418749222204803789721307572853508429545054721632577918749967162784916664983221271895022356118800162263482119438589206482609515905668167534791940421889960994740986322008372983623281877572873285119675949683761362584121880341302993265921570021721349212665514998808374337063291628696859000131481795680522557076098645460466171929705944880344842531049163376085810546399523868062797015087646049767351815520211076311453971640700254018154168645127287515106924206369272433972998120469813947362005248186833713778424378263709013418453718985743441750968710529110843384721416948838226596758858214155628584331722575473265506940778545040315083144818882139250318441251629470186323656356383272598428855348120169427320396186913783493957396045977028862439526583558639487795723719077984373347709583941223092382135546485178384625506088346992997965092282794229412714019392257322025445698973266891335861649000429348972667746093266243534032757915765937555036966533932671885634971486963200731372222452995137477247625424244935497014858225592158038147509869372445777587380429148327981844352477518989428132272266761321364105208171277071217860709180639735005774269493561007800741490069406260064182381942235491004233520666957548074242238057749259060349393373191612819642471534701655596759911660677960611311275597820784975209156945549317481558117621721672143046676812436355223136203985130778969793534220888886256953222291968848639328115352291846430168843479421171930115725577228762867511395091672000366963759618152076733028435263644952643839215058680423218206181723581018147356795461696299790526348367654304020428621596476454845267575193669341955863331677550821825200441191962025036954116864577969978520565971497383149771111204183606336630684608306126910344641292183776198966581647846521741354218492605911643049710149452145170274935996644006950257240955215353005533631947294478870814547894831719757586140515658472740639790846285084872292254039540193216179388368259579327340782254119470155746006840257936796896889838917960999849453053924776815107510568015551509076287099498857445746971707062653784280007168734097575276536383771714860295870956905444784667929289193001227291376543849129852287004363643125238334692035132117453513847648737205482447770263191283347085887853663019943803702460333265830754986755639144747444135238740012640474522515525519730682999613752206728052390198087852225987637400410129406944471824226425433239109308145151327284898216444450624525043212075636638406675829606938799029145483993829193453527480977896357739227657602748597743961250638693213799666139047591575678113699132074275445674556587982577855294455512042187183749691188348025687343863480976234109577843721370294496041285505359191257674153672943540892200677965228952498001375438003273869270489878125264635889215634295489584838332734055262939209533382903838557323744874202624181684557978817012623012519393886999205534422586890258888442390332307991697833134418323054997366455107768159897946318613683762535360994761985220462781921341086894312713206426302290086202170526491946836432476218346111462360015794084210458159702308614676650083732880535468203818659113362515364802595857319865062127660397516453158417833045278566988676673322784952855599120417460230152864452906603675159221455744871063310738176143360575854497417357132510797219173816745049939544857555062590659609049905542271711453873035105344945202671486632990825244030281226363508843358766579837613744241247325800453520601035264777870921051003245819143555135052995032298070586834748370962662739648376589575150546419012489382021817692784588938033779822156010956573174731677115086238436742166936128028404083747235843830227398884655710384608009113674550794471653274118126049336119916171372200922848982497335136421076284355554168802640276314483587796683640071665901920051560711550963050974538348998650857063708976650303938505108080058070977697839244408895696436828351024199462852560060501774201377910280869781440444530809707678864421659346695960296375030709311463593323185699539325102640073627927595373775491192486126985035467047758821500147842170873441204256866210799267758337448736449591709820881268266679955815566509681563865390961433059287478760316985616056147105388017950669738098308492805195147821981722506954810200503933394988801124082191438556681151070857532127084362778583561917464292159921545845514160704481075353754593789976176041796752666783873987870352046582383115222131198679402812105975839117431983476717422775164151066912073982707920215424360001395514774979287118392714796898927899209293450460970151775698875553787721263181112517610814043800959240530440630948801265933064143784719532862389579655071162276129443695491158341381048883390882835631877666739734247559962527076872741456370651358503917169255042176720162583196115105514479580243273094371752234892523742481389028434052355163564871860583392378233310921118476911692245710418326306795605024834540902363657307044336695596731984886029415835161179310260743644562165016877504732165671823863852045169828935632013920796116815930039835504411500306856470266132630676746785966508346433514230348742051831576003820167393427005866499574904653159922218077987435634273971642346126812797489929972552526295506112301287784534287906572016382791294007030805809430836712810497151381338688532835900000339676791083065406828188708969059387289510263634261847799149921771980937061884351411049131076483617547325889595887583545151086744291989517550486422739426253223179678754956737884313952085156755047518672167530698955699211864310282396068895486405162980746497945891624495723602916018818337320902642491936863556358010371712033519714662164766700066404536845417912175997208241756499076393676599883721114421820567816171878688935643191748607945124667357225513123381501884483162896613176251366089499654148347626836352508192247836506411774206635346331296450117739282586973480303530237712808727964099853109841868830874854362998763831151763938825998115887303731521599467379878678155107626277346786384799444602798390010387094386470961514580266711078939846756263653603681548601221812086371551268138248319816978179721931747115874218674876986513413167852298731266331148269353046802798498956554951581804073473589506373040283566956406879795321166949434282804010948253868498640718223759623600495438968366866952839801205622276881266649778416410071557414648893299987615686545204212465811069972023337180639617776472864867290334837779532487411981633042759383209573535240648455108728046510879500311168964946739767597386126841718586900347800521894792296594813436860140540445075099705774157978594575011656832534528990215912822393896839621009074947338119215310742074179896281469612452407449343077021366381701935516386666279255849967478769885225865447002460583912732427340576224606634716082717969810411738075872228740029129568208691884437094695419431048896824320204315431761244315408298056809565966464794604001648287167757892830833559044850957904200624075345040239647855140117770958636730265524251870260319330671278609159842015917122713066412187237935010637508886681473131159348485755746519156743822493291025619154491583636308745918509671712129542086877474827735248327835722613613594030298388225168591432790387803645446861778480460520793344484352447103220136549624844313027210714009232546673747529221503898612832833316555316356151288182956444152084692992134074074906914144980189606175868189975245857859576827806576280291033107711548319575280676543197982774000894898970632891485557065179498732335815712206484560162558353318646863548920474872425471678261611811909689483374901005445016909467985532024793485707590482781300664478196400785118082241260382213820669993056917593338454456482923297896426169386713307070697472252055301390871850838801006838404386388433654143907660346723386629982381620404153470232830062213598422903258692105623530688128964180336398015208909342792101696354565308109732567358039596243940554424325438558755056790635650119045897009538606622641335831437436085514568978748558130672236631038853446456327504786380054384870330501759981368018543223726949871356417219709154413096151015495061784934011387229574556940346958744580266426912052702897277661925358587539616905248024588316230237819720888824634593345796666522078296815298372620572110028110708473278969445140006743747715047790365280416965533535090084007138611366829574877266542955201007429659987129798055737979478172029662405210586970601470343036284987968377617184241326390169867382424028695362011155465223348868127422587413098949180461010286859870429496800149482630252335162604865904619014005136306413705562757391693020727770630991450343511147838901533019041765221644484162118513018439787853647568318937792377429307199259206845118515424964495233278717238546018528709355101078625426192760105409950781144311494810821535405626187214966559632749327894070473142779299513025640349928318520998026743228521173266118194585468744186605008452049970693883617215021757482962329523022085729455523766920755832138383595218759323150350881080390627570034346157115723085318847454618780424480264867433916010457522068016901537512525141994669903452854830762371534571963678782909769487771039368571381642938577704291853232729869121439651495338689017487708476423307404391187988622942967167422870189090411550352773268106197583054715348314410178542162345593308179156554516757688564032676552224646734339142503329482289001614834188116351037668258141809052369262981827890282938903759058370246960934780629503453165100771964659218461313711976713190636127361554586260096700850135577848317723993897833070094489739641531649289834929228354038111190701784383553807554769809163724054930520728063657917878858839053661187703698384020350822566453076210280893700661029663274030785415710666622600857318712210154336792616656911627216131221534408280303704769161713121006987302356556959439675755253753175424766897960782055803281362660814542221738998167121960601821708170437840845246334970522993743873781818074333675123370888989115131292272536936255560906877840957323029930988541490822343964311423730463064675071268434055459262434580096119487612352227283677268402996661124070591597292861001612785199290342840190190591337077461373898364718968099822769040716479824378822911708237504431977720245993389717625799875218913413817876844231974853974206171293283037954960746979431356607075229768886769350783311893267928365061259285885621009380296527073329645862296745196655938106363718682272324983403844612429814779296105901639177808596959255230942160196251658189963717350115774841984436850874333146450429844731621156436660431907435830821457958827801600944655552218421661692237746910961909376316418727512228619127186156328662802367769736641279862552528047879604730828388667044521386978060633413102147009459309788576868387924064720698436406214382348594692050727937513862783053465748487826055760395922976664672047007859971553946893296437445446097198706188969652755507562776337342006678150553414642889843400082214033295169160379491156415137438446224041916782532768724905236158591869246894990031808840591215263060988778215423793194040897152957830088218368751011119017429734950798921614792355055498644025526697316789048227248217118305097310499228057600909627648406711334635995326711187733618261752080492594118147321766382386559591298194243584599188421702143475504730791665359025112175349930632052310418366536251903398122329733638677309726122747564891868502454008602220238496449939553568059060447161871086643826600307574509785862990569616155285770155680253100939950715485397385111308640122024781128772066650440579291510200887578352599993580190517657527448515854455052696549117011396508323809416993124689605263453816371783310916745151073999087584994320317651053149165076216968868109221289688808271548366086277808692812837858034079716925222450704908758617483938841877687691523176284344251646247119902336792986191301530635052307363781384272494749100213728833561246268972766842916413676488157499927318619291171367552761942399057308104093198786632805976309077400005652201528318094914337641650440330765812648148737157802745809964405891796839732210751468484734322762836539620023234678811598328820399953312765739295326635671124167029977475584106254725164536631133333876582840453610458466183149830432165713510452344099598261161919759985763479654448223863707613705318552753727472348939240931702273544031482284631260010643602366114596988066046352552597488462424257481827993592682170011266508657580427292906936205038869594239294996929291983868235152392569262708755692643447289634649692572912983261640468081676154320026970702847781567537634850062115857365981599905480339039413677492828226128494311025207409079996402275971043292655392060934393873796211864906189447077209571978773569515291916439741158579686838812685185508250393403266079524434565827692874274982270067868794679720015204750960881274281316130109824093613901979738377395942872834474897376779862075800871433097688603680414013745989484838356488429537100025401835780016269721550804351815366330811851797255004157613615555478952654422695617453744336232046003038732746803261067604608123145492414546193517181490787623191273309407973374070103990456495255936870551307610736451202928285639905841052111745425459125600930925924941528183275597651471317617256635470379427244159445692773204471013283338619804402845232539793893373379748384685901447620313012224480989697467327758914762792494891116059803120908592739480726417133472678254851579764421871680941895184973530294203511887532830802505056649058748831103494535137971608504226788842712886559829462354818761129260164342393858438012828615305709159513917320555579218134667449832009089043942442966262623377969183300817168029890250041832509842047822162033618528707689961870315736986522181618000829992408441892237874051184799508270343916800678481657031861156723922953228900026370311685345473026546276554503195210197330160033465536424739930665052450840795924364661401350440707624660062779677308468466681931256542834723906293220534601094591441366248451413119713386978259567735668085739896842249543098340019204404027727109958005105917908532961558692224400248944564339636329137719457829401210032248490620316099167277764400195167841060240704020478628609192991991473139617971308832997396604715942934643437605412038241899798236475180138301053055310937901553695121409500291882220688772293832385339102172003349939350598178340626850417702178077047908205702989747269896539556343229008529948064835038116160591136000641722496615334624518980896963578290548547733555320979927403330107627848597111929533895393641510705435580047780273673246194923188394510471792277657590223311045366603991537241675629106010675177173181690659439543323748306689084776975984366054621537573791837700320536760646146905810951081144078140145759360417823310757368065915343276305871639522635089371045814142256119541391836160027843108792186722956429403670518671609919737134678650956150869926646019238578469666076449254734289662399908057396714718732524255782019911881293435612694158034430570503697919846331828774297612325799298073262840630608660054326531426933635251221428560516785471091686553992241039972708008003010146916094971637163890443290330756139682232443712233898973897057962001259282516916581657128630262402760604181924863549893993223533158016901591108626359096407682213756518740060846723420139100382704735209032556328177510725129958795892046038194241396371221251611653072092468331449633570462878621474568902382184490380428396135017576625076986796049667627129716757557268629808683713176763509785019990892468495515374367817866653775659645546354783663140200920391035456397158001163905704388369679596139369699257068079450501846403059597685254506484374453530005417227634705623526772046818703181719306288004801529311199672106585018208090425176094868250442043401021039676976470535922343921503006275877536387649669339690481823482439697129298222178909362849260560915824113190984691214252103578983922722033034861822710439125803686695974464061946781916220585657467167018249302286779467804031263203469635417864224170908546116957092086559188322149270818288576832577302379906830639463094707100144859874926937797486362825471773426752389251462887195302541014629774470138439988191336976465262591789091116065508523834828780811652058918433418595508839787199523467049403409447490378118805825185707390903351893658060896232409500820520355884269544086489534897538331314537686641298207880028142110805378239022269468334300575595523231908564738858371926370524412035051596992512575960025054395681510871888937003087669175142987270306716323622033254529065140979263928091667776725920971828959257040064176434091063141395334318919170481097182406613837378985696848590670714267888530666750134401925037818159942321390735817856058016984449632544889462031164402401389419441581859136781877646324499518322661701022234632227897389116652981832826324395625151960234542681864269603500373112921039246665952187385131834665464711093731089149331622559456798337666929712633005151300332968774537050667534624101637856791260696248589846639826516996702661943053346162148147860086447649361462664580309032328686703035966823393015891022660273472571551985712129409231856349279489231539250343394380971745729941046882956158421490909116727103301554802007819336849436695558588185650477361451113365236777134097430578562642914314480270240318233618126336348458166185347337235064445888112159642175210776640310538991133780501129347125755184284458975492775418311050516957931033127742213508769257029115139625174633544781336136953120184822294455821397889457055338755979515418933011649235133291616315181993930041675656801585251427084634699624901979771360163798741331719013649456162058269190648952534676535699054878469220430507498127445251719881684157209351614676752084862327729677706833781807387986467686513007897784376885463878466229107268151568685477518159045145827920137740252934126034423601846420699955330202878656131303784171274331755038311417859036174401087184440972369309413512473407574884201164213850481886506195084577289963511258722412735556543370342662028041743004461814905110441559205585661585989300338848545660478373293530724479161181186639699970808592917076497999735954690859080828293916862116337107269383003394921212693194954914911616117954456298474475977527610228845965533223108675585050384890092266843784863805827530849291451138790062773910711153481231914307664379653093459421226718996109016049859539408799926681867095909039514973557818335059479345290373376112825824456840156035690020464742673341792408641401874742240484620613158437389606606200474976815181436689926435285732560574808797023020598134687859858862039738223495664925192549832506526701324474730596457211505862686194942636985034541641037563897853007023419609543033150628486108970929512475610124080007274918217420361978877136081230993632338061169235366542974961555277550725585732498963956539497748598009774824070573885236674822281912995168526590982640556905972814958587298017284005982542613816967033859021370423714679398016277574147179825080878410128114468295135208923479575639025061102443466360520814535010739316354183565638870683741362949674669914985953766867149818762270163592661942242001831403808859225811392508992544680445421465676399539553117951483505959417847286630323452084494275709325071422893268790548263291824989682444165013421872134553492097293818821703710642113526373935544910654119131837860497616948688305076774048217554297054063794406823084399012468609124306658031023381325056320041351018888923640988803732709186393057771150856812017995845357175989329932052926249150135665685547245662217870831242010595352380207320385429009214183012229788958767579988548258203208194655175654903649023214706926116638974483334821930456521944364127705513359452042974013225399744521201585246072103068729037040801639232820564125879022015875250278197227655019947301566512350418344478581160036279263878889102700089473538899943892397045606501743477027373776398091156444355637242612275044348701418171464889611512848449369903257987245561598782437638195619392832483702879985433588956173278226315453469223032220328722178318384936085621653876720357193369789686058250756625986864443507298007598398136767040543178536989136761043414518890757730693914750936036603687427478815312929833350501857781316887832154791072271422145657036534714217801090822735290995680920642763301927409621148998099435158309016330213610367943829078731604788137620831265692120248828691133214841803997416514002005047370138020409158062107361765644200698673765865160243357951172017569829168425378023549861357068625301168078527914577783626388850208183215477200035327474358639259729596504417769149133251276203945015903583998654842466803023561775638523822722944451356174816437076517172767492009510170607749045094310768657183027762806071482169356542107245985257292146049946629582697712313399005020733188402082804242336078582705470003690442644247185428292333994474741355239670460222720732764307141846417718483735448616499595651057056655375912561864793142699290444775481574100244172638525010502304220164358885765167644408128703742540406514861561952137406033768647898226591373861933782826421532035436532492594434093566522530791834889890037791199924064052266490907390759514277631285666093084470616736665651589080745799804042397342085002126334502259127540695564792616652014473101346795802212830181007314819936358286750072769935290336376581452036803122209829279222502145055662092535238692539545302505010305442279191425565672784632005735967099174161462077450101681581861415036368596965329631878704294969845087151152638815730239150329956796433732449745458621032859443588845067138167452559516868968662356685059209956251161946796855774785249598164277651827942371479673625215672953269831248080197179269635424974959353160475793524027166151884443300684662170487691221893992839823513154326000010493333152666074796168199157242816910216358520809768729803859170837986602490473019658720654675010706228085295760426056491207764668160184692482868622992604730631476547342287443544338292905972874351888395527539345668089635407856565147813729509555672987194563148952370550445398048988154609144750583975901489933945757698003406419913971914466825848142791874663013939603995365850102051590376401441211944858021102408852507491979434140883679802703366473719298636085151127433292457496623067824086305544926679861486549309076533282283989249420712060176183896811540012896474537169777923729707966314580140615290537996770474725062758551009788281679462620197360306341971638073554475617963156278781506154389614266930283102347488777399801812799529390776322033490726650636961530737680569427911540472536871027348191025477941614144058528640504139638107281930192385009083243710878773276482645498353411810639697268735093445236612860986596658847183244471067555577072416853849842213798609119471744436652543503523977924006488596880808366241438114332154965760595914707493345422890235920412787523539716600044504640213290471187177425857080229606223766339357454018200193591771197850016016485174863719801557633133205666659913697692529633943685580200991583540239251258712908188819053726303320689882277362299662638812859614867419987779899091576184217479861819571967919299132316140676893035083974779927836405944150511606762566858493294739095184816083236025818295680390557309532107257446659700518309829288675545843473486684619054631077454112154622428698936286964586957320888318018907456804754207276015550339674197638019927201853166508609078672133529612528591186189474046324210802666443182901797862280659747776521289593407878988028263831861559547675799590646865663449312723579495225830788557148651646863117830532448313215067171343343751087597603657895542855337958098712026833968661471849586231307764709655495739146478995093509462398411123231845389743023559991882899303843771832538119392641156360905487792584280647064260219352663556948177473415810794913716944607974393878267796472928268651275576130877806130058608743249842548961488036986659372220573608579833328726109016638760499185501803566716262661837609631855133438905717441966219207230623284957580410740588352389805312959674877728590001890864717351831724382308033137512201680302353601237001073025487836998424901236305677752905633635296284503615175377823461312614879307261927999238334235596778116577104926856099494388912221557716919596459459954911394286783235830352038156148659088776340780534774255099901812683912089397657009981636105806517579417606266439668438957673928681162963067281305612194048267182909308637496000797206651022206468822837916753314082937492359996567631711076447294582108069158121154658187132990168642616596789375822209239032300856299619804165599681622837792361310782773815232518974539493355965186926944505599258700470176594547253307213919999822382772414090260227777391022043714602515058534535168213345654642680020545593054126703666506556260226427529721860184293663362428922525688142808229277953086282671806507831017408347452482293370014367719197771581989868718100407409230549670366931168016064932247027068922543515997805775931888322245410913430372529091318322222627522468584994743994535355015213844641724624779308217712559059454293240840447469527621837150963148474279040446106156109451777184640521529733321043358729500507354809398329581576659346403789755177607327661877196075119441433058070129017276528000738605171624460573468950745418212275055482976574926055430013449320496832438138236141786846436389401107776862022715145320543623573890061692322383957732486486833364282902361969568222373465345078408787910089453955151605177347387801558062689442521564827577455696334534149015622802092519369953881106794096821612130502057070277355998370303023893261966901825622483581513322737622442270855756178424926374878332710983187756015981098826744307028849419103782427570231614858001202214904044517816905851474959699141258913847742928662644714561540447789438313724872874330471188781683303885350006811084189097007994283534673516218367823692091889036512835818914842906011966105099937068630937447117243423079200842670279351361301254083162787513018966952691162091236165919475338421294311024892592073318464498040974952913173530150134624751539753764998687144854329726693585012707199299412177982175736661463454461756476639945445157615145401805061910624162760982154302027564008378628285524332770418210417985178084092538337601830101044465826920334789441933370160364630640890476285649719390900171868507616502087118335642325521044312290118714616199248200508856215789684052301337459238958923276333839961458050599934069507591615555483252755024204078986508102173843831303552309581147723796841642462869680214176803499555536207595634415050949074933510670494781951364128192233873901916950078031402194969018034655627930097016581905398992189322161644075443538308765137642059013206232687050349671291261701769315988325410059117723345669889533959815982888958757517947295819982864264015596136657365577703953196160276045117282091763574111958577765413863231235577774022745982699749728552551692612027377751971816141469097612210069292833754736983175076032858744242709992702550096897834122120498450972270894238117077447031479628663318658118410594954027153211891210451558088485239003551357454690577065236549917796838081308619697470274987215573628536939893149804964944579071315983932208700010316750065674695163759652254099791365919426507680399697202468343271310605150437454018609651148789315149479503080614562203185466434411210314612291886532143318459562508763918560227421794698518614296850645255126312323860789129601698218462535739579689961723508678446352507600431262040614456976104126414755184452479031806934362674651539515453006656611694936854279082455466370916339243745924318529084377614968707468030535231448671170684596076276960942566446994153152836346290385888836983619788648540781563745289420477070734598423375112163749049384096037974650104102525604011445889066999375630628031498246851300861047324079140831308800613683316662888039520859922038317028889458920295354393076037505198423012874043200379914031657742305427837060749773602958191875904490041978869556344548864165274542843375349330629587479395679407522395320643934047081000436670046057880999671691914385200075050888641057888037399447333184045853191103283527429545877924260043703433519969507617797264322291596757551840075026453517898320009909520533508370438788431202565333871103630243293101600375914816546278104862432509289466333309937617980450663498402595181472611649519944500469211419050437682088536881534307256829154777892460747835215796987664481201601755875903330379539538045424764132331747029964647389600771166011996144776402365799412907211733269684116264428096963365376799877422162610441481475046396777234152020776649993830105929970184846472795766670054247484460813153196884417541441924428460814529334962389685668768126509986206304329483889627112060792796075541009441280005515262923747070113885279954741527336545752881935375247797566133833124916055697314207645104943699894575425554697524173983158316079067833134842870115858457517217842159748403325203470648198153154864718908398690225452965857429692979237462827372971413168542221280442118349060485542510077875977313467454686121123779429510990400236526733062765346563163329355557175458827870691883869487332043738424565268121666977344744631899314413336405985365419928418771072435558962589438055823779536721245830045331638426828386214508880106469833725345579201616695477986630339785204638627843277516488601675139929272413608555834423346640947403657087893167709880445171093616791718537876410507610479514790712406472697823208888044711807155666667974603916773579083847064514792724433834209183461112973168574870913224821167626611959868302300031862641896547338070006762800467433508066829960799850019893655881993831495175767227407635501223714490603824624994451506945181431631667305517785534627070508363278550859845397198803149718617912929141649356551722391828260011117081763258474068187151112858045214175435093289034975775438733881776817601945088296853236635379879380879135038184072706869792552839272359148589616335353734145965851708037909767583026234137660302158932201151222619248330255172456878321029342494088534441685334476760609678955184094389867139702489386974841007393090220407292638075357770015955503882987706561615758162945186658244237496873326578785135888940760864272107616420162150135919070877495032277943834135201905208513873497962106551620734827998903448078422581138827409943172598312125981475805172139050036290795310729182472434290750629161392248113600200023638709061282791844710090346675533416317114818344092911884095682850258017834014566254219229133697672705652575602839472956999607754680609614461388655212196750068912122207262622279561176844928344706984321030414281402274871595556251369886806816533042102887951944017216729373133755659717487338758063084624497979272282680053912604043373226014775129000083919715947741176079712382117528272168209763228709170115231053007220773871328955570694852993045431407193365492103789115401990496204508295435193678585235187974434566297205702768106508867058432175196040999016562986730696954436627208157541635241877357885495696007567081762173033165652956327262184609485227025553873108123878046763922404131991359842081448929733342906839385979235942707337866863210299545984571683430588863605335748777471324149343291749721285006065217225403601361989984764225925638107495173584271467234010176439796478925894343576921155636404250445569395791416302525240778335021324146347193798051264367744287478222453417587790123786907612369827925962348373172444791014005614905751752094522891833587245217410357686327115588855622929472567887085005586400892438630692326772564579095500940136565745959496934784992400658181263847934074509952336433093472412918767469573621676943579052917813425040772148402478444853053062203651056373683212037879854647253950756082945501951598441581435949133117903277068658831293046882698149321417354797622537431422783584532509304437821680713678602628940565701685603987840392586413629683315154362327632697037424393322065939076437695795416833870862409831970428332174081601462003916462076089682051105970781461253607641403969617115065831627043754902364003961525507390360318572343809536901660080973645735995378985495717665800289128797560501708546485638970478512565282236276776038632480575653207070793319084446122979634918752589076722970712385414891112518151233175132785385038699306089161756655317834747564738883499018262798522819608684849119952006607159683731538515327320012470842235918670409980850189609995100681618598431881656171289519740425738410791566450512338316032122146706574984310179097037577297958882577517343244982125108055378399140699672463154321226089238327178399259504205954118764352082940627672649034777297801652019681756280454021408640365569572626013341410593461102648579109815760122714120637180386479484262968488151130812425247508229889047556378555689776317538850816922002325927568496526589380195923410175884908881426986223727984423169198841376154070956535157255065808183958558142590615435129068309036687645619311969396508749305704757557854593079852318343463357763284438390711893367774841790674683394456235084453985438077551063173419483309132935119653585250472086498743939878593829133704075702567261269492373294424622433173773200738302012625179416687535363148101307306845987721370205155557083041976503189224853119294512058470968476174774990857369217295248830101599377383614884357455069637854473712783984053720447356114395947258700161577622286203815327504471106050215109731371515427465182699764393905469562915569921968633290378852447210702619180810794627852966342794034261617668344675286996985922729858506853677449939649836513370440209257958959494937073615179658423709574701409640913354744559934517477121065672941306487876056020561371850074141110683663985620142322938156699530815229635173894308640738608346619443861112097434350804846800471249207674132878327895995754147172864338650645064132092848914495375418006153565863526403470130874590167594574192515101629524060098416901707673172995691857052320027589540543562904950598897023685136791492966712543051474203500856411846320988167610300363549655165162827346944980269550366186807135240616498367444646966104330646320183872233862155734323069794327590517480752374812831120491362247535083353327139214887661292987977548950979729544184517586197712684541917677303557196085482865904819771585307866072237377957575491951279589784521776272554712576145148607195037037037098597632307386489170418056049402593875465552232778361109216740697284796535057966695849091110247223715994465844329584671661522560709049273228461895631408585729951946575136380016184059528313793643676189829379032379994092858111813856399172728533093414397328282916228258127000569269768349827746903953615838037805308252936657628304162096697007943040582622952815964268807082245141365313654797608282953051977902748407325519339428059161696349383724423144457528788608422272564367863027417657516162629639227000491430199108049879466413458933500790115523960913885598864167714321535555603397004007472825579433077161892099715399151368140965521000620308826630086826440464699423579652565292962790515388976606940658696964736380656863517795819212278502836165518385457036795626433163963576128750277384912073737197193955240788085860580312501918294748200333707416709185123154354239420071073298774583802588955009967338493692798544313887948503762633849167788975279517508645341540092978016924257932709764473639827271292225924527793319175993371963839506853797426655743425648666859163067411906064269909349667191891308352684853639852657418863447178738344195626887258793943472445548657795253046120646254236456058168201948906605025951831113510969652460864790503419097681048151562155682636727786239431913902984664475888773353984877119008456933904028531365734452716647288085116507364815410740607915156509358012765383017611009960587722370119719772050899211398234600119963213305262800502688726356790128466075121003137777034490750118674804432756437589781886629667008258034501735583956878132213126194147926047258051748460004334056656439356981887828309600880384577279147760166074383660745119181079475920227255363971607395684557967618537581094485333201830151963434075097395032653098256768773451811258990656944676053723711155104414120859727591151860573407680362463824651896226596043707568397056106240288216180184280764450350051097807612812194229035600489459961943335634251773102208140391342284746091447450257593882421426859104318028980901485121270794926421837746248732056042238565424911163510387632706882140769335469877555654813422791047977852244812907154657917978224080307758146357795987229931679818661212940815738406620274552675790635218618571560166848233173846119753447993802663964094467604211367373511482485451065419423611714554003964816810155622361300648812358536767401429693069503678773627086500593044958393546810055363144862677271050782581704411490229722065222019722879448486925727603980753229046068191660989983314468843154199197013768921534120129251532180600730000190219748487191576385879966069994599917619473810197152724320731085601763550829879702210216028724843949285575120794391181513193884091989620258392544698509682932715363981024589191807388465858276217595163176460123941291867742339349494063664073976625402002212872239648217432698164162506884848642114012138900448143753221654744687942613219730611674147719905880521535314019283194931515032556893445154945408131004037245378881032996636259667241341957585232373295492057276182574890448772042453537332450265634035069889446852652125706989708928624344809256611801168405345811118527923583422977159010090105254378901899323296080790082569262988291172960830519997348473998156981581307632864549272294893806837363887533375620486146709977243319821448199679929018572555344182632679789652210771549080264261769759290087400000847981764761916558717901807428149249974770063151669119755814608077528911340580633012777308833801252343124549236035426788475681420887667347585622585296904627165126901837189256798416623812103212093656212378093490349214390105663955779281921719118171485235832540049751033721258800819295802267122040104205837049730083338281938539248095069853325415909048693558046959430275708851238753754468397120715144144010042308548944319855430421687002298130842269629887366420851674440906456278644124099610922696327660849847670833405611483760475578521780203668104620084850866737537723468573994253059219538300338076454959149862267677594133942806083962410911533543074384191481789539131712819148205799941422396975932045109163303116402683236331383396285818595087070732617747238722159783662779355177273743398691268897269259412947940811390696765409635078247815064900388167719485862274478533548282054800520393524308801113154207086091354640975194823909618005332161422813884689240876502759775185618377921946702555311891295373410867263247949457247620549467601908985713642464321335570482370434330237050543426868420738940620149092019135535539752744625788954790005222081012794243780381836041584229071853680261077330257185378585623070338615656656302311981595005368204693436465838929426656946736655211616689844376677977862876143109032179043915728202178200202388451043922556097541013102314348369971010716916718209550648511745357741772227746612996910403171722651857238915258960776537389904767721271279700750393155293815233841971843984219610559350176339025637233229180111170967020441693648529735061335284105316088024753843339300211823299874660586557796081206620548460227257806295050071575762150188799561296764438584841791498813826745907152513535762058346135217498417047912561932331029744905028263253343919174079358638709494803074549161623149333197897233754904590793668466945628307027549830466995884684022104625235244196955107708384288072218955907670715231583746728457801638443419551827189676337512233351177484847604550260026682404376007043349255666048832978063367154915279630151961904322233924690946537258310402139401238458679698143360168764924556509552321398719752478637249244239437068000498850799618062163951492821684546033457465625474954541922113089316024835877228268905090656151334269660981329185737923926215629558578160125894589206982212465876929737557322982558829303853745427433464025767746760984381381500217111249220525559512697851924145411386426374918935222032493382564327808802687745679717708011889430382142488640765359725686299530990309601428492936470531954060164477456556825277368134897502854367114438468664857357849911140697511720596424910146490078049147572855035648148110190760461128340166662402295287196391676435274298320098263333147860537382484097411663433964107033078850204646915316444982060776166676816719373982499226134965559948249435611030451347168955491385841012904755362018413896076385000617269626803484453310415908302334745534326017891351765212138374119941039889979849595605640690531299009257136101542623346351769081131286911923806539130427356493859064476838887947402291382111445669044255783809597094048682503697044566838600364139847495211441912454319142365524394670849999581226941442048158525692201347918015393584197790543435587807820347557981531806786692740384774419762367818045281084383726844163218570809565427785884826932125526225543994033642555998787051316735807745868040634222849187301818767602803127081536079660373897696378434007357046239835762188419468186000629079082172461229236902009695039909450690224032901841942423125862085897354684422094702634761336793660651494543448200462556803775490684325947278427963691217264259124676863614173508768462255631066121537339871933223217120211555522603947429683356525492938209727169301528125744486685255116804757004496805036518492542436056516634244241166633164261530517065652335427569610682695033733107568794019539504640173054175260113006159743966289176262664197714922234376670433663548104866782696008478431397359363697374291257736517056334903626626624084050557370443513359051575727384186999479152134400240585576112680720958769055761396903258348993134412985840508575512320388065204599364781406308495037611837897963786541322545035433603539675194490374306271640568289056405482507473964823813952415337801736538491912334020968879196571236553607237252483619091268538488734838984163625389758769326536452916335685562421447902002743460277936353601597134730754132418682533878670849049326419631644368878921090568870739639510784305665553366844038330701777289648981879952046137286618522991676035300416437106675444832128063385008742170877319452719499216625296914125424417962474608417255501977827906636027821057419385379852753489530464260021611397178100609377959825592367154414643257637604218834073735283458268368547701106785304090796360877823737854553822869216601465859009717388264746856317838697767485808312116368426802609278112496455307248426522645609952762313778279307497923147159537336750309412538986221151258392542088882551655049928110481882053798440359733062020124054998574602065169719278972129595415551002403021467205457570435561513396377588902541940110834614856251125381696165748200277602942284799638938984783636763554412622979377528056655409691627202858542537552185522054382067466194757707022952207013219725188280552927200881221860565876943631923752471259567033734515692885674387900301450471466446149325968475059023098820944878728361125564048468568214841852235651174748332000404543430498270996617571708690723695093350501468704893697959047735272758983039103843607320343100596250579534496923756407250251966694795211444749584310013318575012897572955439002869524104052343749995224421637800462267521666847008812961965246066312111543958192706760212770140838344281726221170929355372279136564342897725296884444997569282371196777336726530156078726802898280276747132717379004336977519859912955202288427969147709938412741787706738701817811218104527581071134619550689498085548100016565067917173972472057725894156718336125888986298259114074269423518392691256141466057920561825634058485607282218289185366457022915902918278064743353396658886720439848016183239332501294268282068908442468825282740847584468966027593030552016373240927104657199822841899340539077228177713858262876365083427639818396137461670182092847147102203038479632502034403056209887604311029558240006257468921356648476986645735138096261077340691591089084855387676199807354168118032279612334702138908755077654721042594593711334135737879472301751497257842452034916175716876232982622326197911684683958908284156004737643561598239902072916847755287819805792745063146569354180430672453145305056620250042457089264395636756606329941505703680414457265718623209443522872183354217201604190710773085477602773665041729242960291578454678158036569402524420058937756236710758884789283717177055527620615153940284521878530160786308417811581359332760689415462105852546225723829138940549742706551207060782405348126090877067171996949841162519387258163828868885598592740312088399682686661271566321490522384017121645089772005026118552864972154956041861458474700356240085371319325123238983925400123470516010294709177976159894255446702767505707369256791479443729186915764975939220928924382005105403280052074708951770001660170517717582506284427169829888924233817395804459933029605526586800350167534413750548177368053476041834836289422449572226348352456844788656324874583807079866243303443694048373634981292945788944735424790710856633805894475666690025265848411838020319825164791782569967866993652551344416283893118556548458172300782790364965514766726022011551025585728518224980191413841250161596445409428490433919516339866772895860228835277158882628354999635444275299958549883673842621468734382311906188430343980646583036829483639715515530588144949854178075452133232366163671387515506206409095230454769696598873755619482327239290513477108610105471006460612641200557702854523542155444630222462707789145699153500461247026455949506490887209960982467608189420894254618027137437556619911382084435940024374400205171511893274895430687758664837097699541712906329773050743995808281967994243769009538387481674972714156011585247325584102990290860718102509040665109074411729537779590867780019926498291259134656365843272204211794682365885563855826206202005853291612852414898285546871128395684103021292941502526716583694853491663387445159218120165931097438589701203376049845128948924784061761123960210984318030749886046768536609988542677650670103159049911573873168205642236634065800637954706881211632404418110325341232891577261323459005013595597083111298437670680471119315791042523232422915946798821768588320656844829608890441042868720919845255542744699077939501447653142673044962702566592336928362012972324226627980378891568661621599914648836525956414281998035852576809757877059794696459504595560401148435055222455752002827043236574897631520375421336233856497834433057945844539807204775566717268500210422347758326546317243468577709508584860498310519164038834638470072502723862100041571030499253990837848594251431275404278086374500706940390857886852087547726219779232365258639767984048348485219120755725604584854836948851334350202748889049427229858169953867372182977155227768893384459341473684355858751705985031418664546799339698574328793568213109014473607835677899738101049460193082621683735816003112077306236975644201605989931988246208135838265317449742496140848780750649525517884535235506611812875323697761839046923415135339274266344941345603050096147455644003992400410563949268797861834225463437709757864103749267858989636006970613308228540166954127372046206352758192102861106843197707288817236780490169168860109255292928021646509202385456977329562097955386542636041862936933704864633783785494633005088143657928359571384902363531120159229580546718221231303856484234980719047892791035928579537091533147066997026517986989546802828661728922321589619988996081655949510597419865759860638802140595043005631465089076244010742682187310855732416526185565636084731990920525484167492782509567940824044081328268105735448763900497890162090871910159418394317796579582731185995705685126733498248522309754480417077628043920488695290373477786719327164121268875309636893667380064414789089898964723594442272126036770185684852859485139484505388187786207100093774293260792209834901407954669780996432059780361644229483668824808532658237370759048027754725250237092494150138974578109179400280210179603542191626992201263032929582686513583450778794340795696411209323880929943655659248461777649801803935339871906859065509935370147166711764841696704434332850129101671944628285851891137171272009588434437133802163338926402963074509269065750284850814371862882994631441801097193548379798351193540567482912380156929488322197851505161085993962105303417368276663818606826766725481336151205874741027082149189467506198380670365392260643061771037064779403430836239781964361370390622782239356868771571548927003827677630178879070894687870506900718067603259446306143509826707017407037477376546795145533625213739703703739375677752450818789651338829646244006214923528669935322838680985127842907980444646393567425084429234874614225003994240162237007564505158260259343694862220360822007507752654131993692484410955998171049998312511144368637547193481060474736634531876060121423641766179225409154470957799939789671756996143722882125896513164434596032222251240879889321385509323232381753568839769636547198334299047300934639302735334899602689848025552023001326606322834171944741810539275030220034486330107729099535219280927049187442510386271270215851245937026568601372265372226013013667784509108872694766678837765818369468127017518264826847118581289236895299812249230015499354646684182563287808398537620236077628708818361783723715586200753705628272005372383787034301691499334208527703897914348141318562933969584031095688165780509165614369739318460711801343361166977598148508556139051323113979658670271042692022500615690795991672352884168756903407499918103692865601960495227800825780380948239595238404625034468854273693130884071335383639086927258298959970013154787189255591342611439943767842406917178513437300935846934527380559857535164872936620974049844246456332497908650634713773439234970854062564123105936581330311075734314311975956584113534886662423851646126612901750485820903391963305258562227196355170168356974622570772546911767054047802782093374238101298508991936676298511439993543899746095527155657533156105277171807724203830597356166894562601160577490703118880948151196008448388364452396841701961132185768564397294897038252164227403028699881726320085728161224042899461934035159230432479257895892463380084750104519432774870743505438071265792295984248176673586636870759176762151768393836977821244834648966315096466532177479128178762993359256467387206964985775001742227833939353697446489401325090062935806273972836324426686515251293454809088853443675736552386157083559985400657906112683159748765612547331664767990956144989113187270786306658979431551879534829254498411036241413611453919736171130843772351928503138092981036214700299848421919371163715325699928703241460128923597018142928963778146008305216801979936750714840371214007615718724570764261109964888496679158173979369501377964389389657148957361294150705411374068778230131040751701141903608144530653658320447235032943788061242746175085989303063495354074141375065904001107654601739860506282964648145014759630083098889804228580675426194697139872881485151751504465927947181823379704675128521085210030602362602084890258476779885522828322162750487879625332360758242634953248989641304962876609427077468355960452227925912319856558711051696411374575767173421868968304093171824476561379231458889123384748751863335240000131647102030320570066367011409836903544881956693786886630600693359240402966225323883853213904373047046568700831860527168761339661048951609242789528589572551867644162014153115308968416869455104107829002429649153306956056830893452387184520162756561096137684310955798926195831572373987407936450084076232583665520575734519268291078417699546782589472510694422308877954353478538369879794843775734638972725151859862760071208689414529493651724889441625617467700185264398733687873408155889745626905565307368276245066360335533378696790772587279699019982973740565148317721943023533098602813227962495523094965768178359574368297104460666804165770396239701630320783227914482056149784802716974899405484016818196004118193279453731129225830214377735676722945696687663349023803077882017726345347993741933948281983128693460056500063087990851150133735525347409532236184764339847376851024979902793690018347507298381490179736490962976187185507309040271815612351629113327139353940450208329021822579971881420391116415569628193066831626242850634183027244244920992957241635425673639238484637020507386265405242647863951002211233423678212575917700729927452753019178995610696003555127940977931583553278642796098375480656455355288238925400600052770519184117658201209296380531336802741824934562378699502578942625352568533037863748001833139822932215981327716044358511289206229599290171749742037749614837818272369291800692519890020695160895850370402508902358127828573893082080384654586143269110655593147460511273851430484244929511118345975435623936600587145935901770361838809615147390183993151956699401923615462684775463679776441826163491340914719134533839781748289747451594075838960533890999168576269184633652531419915739548799487493830117628512046896750859631693748055839227200535096215611149100805935211499949003006253957243552178079625628849292082210710870491623984061382251729547228608326164934195845661850392251224280711584920754924365796293459645185147907949673899682993458398565273656104194679191861032000998952361543028122017262273394355224178588676648670712004127111960755624810708920218967456344295352925547739548647277340087643339976876240791259721699562615846214822163949829048808368777478957682911965751587974387933764072550100288881997294253965706947615625434624428373673861041441036710480031452427111258208362870440201604671531591377566056807228051333196207221169432605193557276971600281473532791106091510864611039787999513408192212023374706611602965135782592050922395093555701468182809961159743395923703747871500700034665103620943712281605040903037435224180783046719165323343793616999962484276856334596269037075419753753434837868294820187739304497066439753054299829315751228953826032510435710998327711262272248288648383756971399329049853656074960380149132397396693507462131850968261545102441665730332796297864255094177958288448863451174560167033775434477706996442584972685465756238614179923181666941560411461933723473948115929059945308106786203326172084901057803149425491246944440785370816565075491395570769341324097310956445496108739559465745834086397649309553114113217461042898236044162773083052753651301244326216972533575479281173738750525342896900617430529612221469858745534644341975472324493022834731518254889160041516769202406837530410311786807470012863002853065578884391697358404255973029204864003122420677839024691983732036672732995595171672157282882119864966547289394746749403959064430691650237692827901997702992948066703189568613013638707571173217611081804212105546643511186494512532127596058848379148935732527734122543146512806071252543024999583082139114768763922177769787371017335903337947875280174634401149603278696438168097423538724530509473054448801347959849491425670250822236554991580930058310715069041888962553909280691662777528479788063129438596936282078267434471382132370705854283497184040838681928587983929506389504140958193561785778683080087733992909455117904140767236401561359252625631015088252785526586241662809998866022287936356028589674879420114386158871863704747185984134447437396638173446717209348044248104291721093967596005097799563974776490874918811965192815531459671494017182481339914085129809680032577287590669109261407664493866142607110812092203735816422630490021056750956970327619970358231819548955578856242115020629475445285260387536146415167480404795297596775140515149475824234702963252664717137769592461510404910068379670157085693706779760605021947638521142201698811012145953949008910259693324193613168932960941159810198330305072630568643727966512744619618413897276568006107974806221680187445090671800725146650779780342922232157307236333223436198247917169948157664019362747674145114813875618650504967339166741039857234137252637473774451905154102640206287449084508877632837062504347101227537147372579533570808218147807814148531951990298998663685833788129522304708500535311117410817395608273754384446717687257319891485410150122221393813046497949029790054506405435124497394529512161129955972245044176354225228527078954758406746157844380078082429919836102431144207910883768727539997367846550684993696684219620275179095353225380808274075172200006691596014771217415904546540720258592812889988306608586422933040276790879008751697136085492288160357446779314426412430768616027407809810370918361726240548936240907935941687160885846353111405816259200158933179231726088072679238327207921704292242855877296442141682402580973328124430186050399666195813841030987289441593141840201377052634612345130425230070403123324641544049875559063133465634863054726392099484181108820852296056359476718143857734512477881047543376881058851876260796038251648390771303794565144478330010572849816975478965834278848317621415984926227900635843183515188160445887447675141127233494685978028990591017585226249743749459580060793205544844592436300955830302545479356799689015480782194580957545317214331019600046765639184245402978449284541346565815852733259489506154820407237517942781516203141935259092306403469878657489963449916276795499501923974060876042531799375047151548971260017159993880950938898218202570297581643361619760359788658563496122420508705213023265687676481716482277842810305416715133857925881721899157011814533115283206953209817923933649154825317345296177207251044001605202251012532754747618385651676773304219347432883049513988047671918329289202911238231294219347141241059814704530616546956390420522693411114991790252347749328449963287026274547488212684413293313657075810729875157724783187499931887489560762016325362804552188192322584374567501532142132945008007770518843037130158291378478257012112832931241511601540240900183961353969123204775827790704674321782460593798049437414173520749575033746353257351403460524402635827017774513055385320986651421430131335616081619032782284510872124904725435756997658866332525516897351086412129345683554009569776725555960787729047346403422797809386127014163883768848132794170873050937743280813147930817160983940062200419037310292645552348993325547968357117817540720310786866127009812987932640909917561459152159106719670020211338559761049579350987152207088306580776722163739026614280013389573194941565910890537935894847539492311899130043174688011610509345125331805135508329607785759857765344091282559577122011551796455966175525027537423956223164466650281050547531936457461637288917192597342910763824969143766035386318285871271022978676358434589608653416846497560330601413127879875884909143373094048514162846299044231614902768569463773965470388278534241567839407359174424818803655842212741387550448544348351150442572660679185924244798013499199252653957856881241139260021459662266087895653143620405573685575616483712448382802610181458812952877742120812348850181276620950846861187919796663306624382472917124025442760695576834198003416222680161400348188693531552416270678618535745863957749163552744044311530493649481858893400520247843034520105558935473441985808155157032984554609114920920757144873032423596692760189554430177442403898123616729877810038953730373498745127473611240908103524385482506467011101434507638050777756397772914470927613261058116568600866193075636510696018554172771904878622944802470807248904824234368939450818195935654685256170986165600158078622609716531204922738334621567405994304265783840502563643303185046600293499714442533743431001227009404936127292287167629198325049878974292182888169777605174672009242773675670271407565800863203001508505981165055929889995279455425024071121025751509472683852793444021537763391762755924359325414580808244583529115359303574924930126318880522656670884733178601615253589615817229541711109970260254472742178516301422606931753112918432415425099336761920697485814628694120279481029706120412206671556264271708986383070126140530831482847911087844992617262519532441975901773401748401875728830083852564911882333223025318769119735445940831557918468861169792152039306728413076296670600450654957958171929646324158307144205170169928818939740640547516833592978504701738896442660853848878088732134280342310688832339308699319543023614507781063222445913172819848167339628022884171925869682582367369983906657595963135080191034425926938662406310503792689409837364062639606735116126110918683804431662707825472804744054093730913992840838857249433187109032386148053601023823197255441882629805855887860247516203452893791937593468408585875014348994331759380811455251108072868636883094126458576812112982830033994174190853155449494746177339222144557062867406415126585976747418676058331881083962127004663529767302052993495473998999441486682377427672451842974639756481977644496511184456413882576743597785396242585298881410430934661402735123372208935327156011123599219789390927752211821558872863065007869928664505208727611815062502999634397229879636395384003162576339922828695124669193571482206777215363970019904152508995284896325353400693899987786227984557831975599501854303479051584332393258295570656624553187366871742600897855546098082269746852533274755462284038071264496788568229586846429671069287782737311304934173215266991100083925589472492982462595225657656746908563409062370500237783004758160917727398664317320748193222172663551300768681379874153793987077638987044969157695617425452681122653256644280830377435048574417544734811134302324329920981553270474853862768016251312983179386930030759939975414645137483486008288041246045684421931887384911961818503657874024378558079986934536382315348975214634940845624073874592315912965181716555908334729336234207355062686706655141972305435990165517640737129922258410388251414087295142596155210608085630703500015658576012959285648071816178410245293908267211763917734827791472743028910270579655107138186528273716595523895914188950924098164513100236478917004145080546075891823799683426510940244491835942439616618695515416159367577145093495559292540205513716336252196815847011540913844372426782499507874684890758471655949111188193634782294380398542064328032428854470614968457231267375817672678724707150377741061881599209452624760017244935914831150322450512818700462874015264423800139006858350614107952120469969622192959131241230401127084934479629939491390014619760707544117949803979918061011599255805217049667600374321367187413008169443253104706792960935261029286124645705735214251480353578512317916789799191282786024314945273163871298177708236474455603359530687586714204297994724058900417214612650002672492010129917520522372763107616850286415759087485971801970649958789369403768834566789677844226295324225104909010598017478580562474002360572173902910884918356229944565825659948083129799709718729971072300554216376682945712702426764943334923727506322597750722049438513681016149283413902855056068008050332978622515140832045219709174206172323870696760587651993293894998261189977581669311077422101666969329020649524501143139821841019701086490987410469016766396957724854089521735114007907534004951452441596267573253959805308571859846466686399408258959049205191049848042293424940615025301503932386711132750569618024344864781264652227710864975958287075558792674404989136714018329115065194231707401982059924651114018287383790526398723522190438896896347829251999278609941258694875340084601334692996340588535263549621741142216359636098207207110712647403106428073112237239869257303974735896039357016831029091657159129254414548127688444111370699830194665121912402542755286178253974348460281907884465513620069088716761777608040318806201487781752408776318116152838718451518704338307869486013740196181118005473858968785774037446840801706605535126362961800123304575588744903537522031087042448923948822593122594487111881134590104005308393292690329934527312396183193250780435127450797395560520103155628367671681667098994568857524920494178862987711645302929891799283979417279079967551661090166037776326986507583952232078022762353033891383985532086729543678801798982703836485987805333221430724794450714054777088150115084959075819852668979238960015758910042984576958801821483957588770763137493275938655324905087886304104916724220166245041437154888021860437063371613389867124229128441276155341001635691839426809840696321451646693804104605813818913676225919572252772773644716011650153243563148945511655099831729562786538008974029621010003671560261740283262204287887715957200889482484593499184945948588539865514679007965236120665754693465941548043349586212237943279083523393904474940753115339633971422908482788985329716970415497885781173353810588135214945201017234637797250074898560182748314674681913306536072792040056427940094830482509836496039963589778333297731873183213192747507888806160564015837720627691479307488307781506716427411755547908374369264979206017861341677959345296235933545232284918930843655579047616878213755504080878581273695102962469706865572472448708463091143863639241513283270892700211954235301637954271296638486936777406509399523600633033323729544807441859284040300287428384162281404537131537205772807074036227498034061913067500196938380946624272964271089098593689389559787681530846234677205459147099070380417350188173465531919239287429207756957595478028598592603994655120102433731128265422571309078138913417888424743490319042812845948384558787022187351790974733968616609686543289088890319786057066830426599948015197403619868308415338257602708118985622047634031426432865653261081468411775475282777302266379102077571517296120132018047412332251423660060663006656611398379521564383556151725068128592159542643130648559370155394024084420136392586896589792553284276041349270469021961046354179601562297273966118322946112945068322447976237957581274479602034647893375527053923811674777774102584338329180116128288839367489959489112957869239869250453913593005588875914259083393674415853249162954321308550056921331016415178581293605143376964483952144991218809195437532892400751133524840865385021563362332783155255155723063583511024333087601882912318564758592663979691860386749335281858246854580267417340537861646374239247861589504769606819399398896547415711350629925402626193616510279419858656938991516926428962559764038488336614230415338676950678503295948378920856154922018834199598646346104508507627307287648516370965267093158299006712297205747647855418715015324275235555244958110512046867208221012955467169506447981599374170773487966571133090771554998501570852959573480438301267324098167111628037503749945438482551003420121715552959099182304391422219355350977066456795776723651291355650493485729124245149813081578406827410220398623970219521871335338106284787889583133657801235413366182756149209304578795277478175707507243194428207640855936237746270952282579202780711577754860100332084165258230243424631176306467655160490749347285490957365602617813181722503440845805853202375421481820927086415243531847976550142785344256977219221840893652331058179729318482438436809418906040361212850915187292672205225910129828969677284696085438679131473706147137224524757732585563976846034621451753997844501666141432345618802304014033029468042861212533553768351058740661812501555565894536976895608756946640749094735402291935067751378127310307586113071581110771141681084425964086093152185862729183873020704827594159508308191673927300745600909539174643277562948560155724485356041824705829666550549639434104720948055507885990508618376740764326924263568822697881161337463777106979822431248890904294594671688851952532962883149784548117735663884460694847412493226724785982320274411040930941466258264275700549200244385829358286815058267359087548671050608812041883193207850045735642673500581926278634126356437988703382620820244949956565262698004575368759231790437465709588383951324030438632543916943843095634069938857785192902902606761019919676019019006117821280765011871570894828600647159937901755771595325893625437471775931510998353706554903603655696283360808318163829008086615631467903135912885459500069136817031911757786913118213905682645778120391167992200947120803290623880722410552669921208193439203002431798711076670350781705389224822215455907221095618889088997366102008114874410991079584880246305906040703553011051805431950000358926395551611739793300147020800149079082599750896235562681039941039648600112937186323124015373652906814534035442501344918880908737381852663636220881997732596149673694395312489043628445148607661992229745165904212643768396737625641418246076888937568675929146881112973009676937143422409167287291355820468731408734826192105723470126391009768402547078783768748302968022454068582770830888597152673146675019630463430600013861427623921053054195503450420279193037797776937586715683276392014194438204185560866865689825120966678387445851582606552841581290320036125298938861169441841645525088079394300690548220452668345864813948433923870576902838429691228858439773454719153501156151988538020441059720631091256941776944957005785639251218896682815172069620379492516169261264572613892470495402530434495453694229548159092295112172291554629474798867039044920420863331942405733919368139940482773361933627048753245482641079202273652873692761628786254989654407066902674746151882457937055700997955592787635245629874765798304363992549079474253709624036429847951223678468082646680096222749168877103430426494020975517065116234633184918069687963350364932159605703636281088632384596714422347234503077243259321503431585195814878125992764642060349249991665237950138342345752962079292559639121069607702007123673233159152529964238542943284671244001003602045703025271245204720605105179598863998898190096012962573371098074450347055357381609836275863987712336568009881138616671647914294481597896382361651577808755305573999685042191248271092196726467941703617632136782035233743292457871471990518652238829095778325769841312620130007466477993793947668199256065314789483077042534180476351750096896974438564852171039173910526727906090886672455843838580387731186434759836409256000333743927892826365928975839156844097755989357323625922570855054327187373045044887085764016715801771146402209276146920860509720245834312322435404840545802701942524861258993032500874618053321477419534578437583014859309921494481010674173567233685279971136146659661065020080230269935917194966604906903043058179353257125437331204419501499714190555066012283659704493321929698336029387692889444131051534993738038773889797705646463578758659295527602209451589012816388067687709230113654819126327172025198737241150410259550926059304483478743737274387674717674391479785184921722149206294283595323029564885902200106664996642456082988206350911330755687296713768044939180587872403309302747755565344414948723939218671110305754871472749559965244163466331618969765088331995830371257040759770960151672600688350268085775916015721833334468838018442660358824711207320648325092551172650364513385464765361631573483692951717045446138536485217294065058688386880318604722104727538362677092329531034676657013588232507753734810135371287437306626630832044645827524631537974541670848597336523311269680262405403197788686415196488629091841090576179247480292282360399134651542050625112957388705552542414106665311154219796604441386298333916755832970405151148572858564528335546208847915638612134651829146720197540080596680456547864064060557808937254784022888320471015429780831747114362648270533176417031566819919431076634565293422036944291604441370646315905225441463149615642170935314779214928897462860801313169455532304349626489080012979608237531362999275579046058329043756510490357048794528325454724632784579360630143872592718806920142497457114293244756541532283843973346240750223576975331448274237263850715987795380409247633604837080822670096449441690670302418389526053031433298144170058186295740175489745479626588752891074856219660741617181238239587053988408349116628141188279325244757980071572430230265613151348342364480299087809729195225054429564913206261197424049552508032646803273740786947093321722005748051868560116615536709786648000794801535295401171986054274101077742995306798058762777811644050100856538628643114936164686545125682498398658642627123778567683736978772734201422727993722142075562910058272680846225239766088595668486997271824234570683616497718189731394688039962131384607305334270156577335496972544833691381823410099116521532068039748309700984008240953001067629255713635412451915080960812449672872689178480188983622676464046961495150443382378104564188028997879263798488016352186874798084187863720191342983448399148383390684541323458188227716463453186341330361294862517256499408662269751000752130343053181780428278129854609051769316802610543230595199971285595405229679644700624104628150289712607268620223616004442795956840771301272817683553507188537778391426156774665890166216538005376680718173237814878584104392137435012760109850753267387556957086829385156601067024866926289996527445334760080889976145048602487712915128076760748145239321232030318129922125345353204410105960308778407422926249388658173028114857130834113891665713000866784714640820615337516779876153830959198175858783034607346577666455024308122428110075519125027765872128344946286504979322778302790692401496908277488201755965369200092367512376195896886741577226704063501581214674543991232465108361743064429654210422823563664580790459196858448674249822580913322980109427311908324725705935195926206887852932394694904832928451700206056550162992418530972476513287312946085562381597380918327833969560191688631856646871071039094875117538388097068454970318850042024758038343933942131057243838059512351391134235073545702245464028922360892740673405303277236367237939233430468179507229501390501929337244665528648934903831406885960224572281638190454886541779005207977439547783848398325515624615979981266059503140963727008681667270750040348024898461363821450347301545065744597894394283711375888263289999828539040186544598723514488168269315082081294957105885022936554966021801338042272867687827484957822325711529401408602006511773623292377178100477501636148756743055681755142722319126818818890574697588648935485001079965038220068964078012124642794320673961431306864586373910924589741227256743691695348506628872007268216236809206979766571005904891879215382097781001766964159187118995436980626763310880644482872768127551385035503931279020972399079878734683455960814272971430438406846244101634972236638161828500639197610267409091597052259531285619200822844888684074765332609438346877986186947717604667839728578410923873124312002714322190261656014539185497400843449521699811688488701919939171459869349235351398556136034538262163116767261334582470257082681882408845387131036877063581503540657028487425176807416975473717366302193859031680892279127766532976142357682773148139798881990337388489958391169925337599698145404735784157658082467488774234304250560931352073933099847194913811417259369874553948581192338281350713034248992522561408817232938498119209075471995565591957573954927490431771236074795724653954272617247772546318622316732494791170696547096987429009135695075405641242012630243925579839757941018984057286945859357459858732407549862944370652353921446752499049956922389415605547034967298430117326695327994243556120337006111822763819000445110827313684152642764235912247383669550045574593198260617504635508558172247589030735383855480135524388596309766730726245160178931663689418590513070602767626809308595986433373089871580557195100678871356810504974706125191097256444896493700100102313795562685381926621275624811478988748824586357080970011391445927254183335254098487472403416458652305245460776521607704438142780956940390524883986505705137381336376812588589256905827059773955936656616786775294372089858353838900349965189324465079456387836294467787109918543245172149901196594980967924852037634764657935807446891513373190528811137460242096888556027232163538898037133537948665112715883302618400202233738412132258102554117684958895590013553011807122045486277561042929040046251224963655284715506527708737162042353433390420157625478073082910737926751099637480292369777546872400730054988163913878111932132266743056481235680209210264854111442711843167376683527850476451916506752445795824378344957130155196705924657131579885971643762176338968245921234459205249505619128752201576781679375572120936345970932117173140226448652176581780262470491514040331846738610700402661334690950078315620590736455794141003210138574899239351476129968689596819301597998561339320164155997887296453294373079514748178203887930963105525437714019378790939331730638850350687526698047406575606503790665700488906895481947171080399506256406646118444548583132330509395387083905851789229641805704311532751018896449902038085171710274744228448891314427582849932526149613062012309029926773566306582628361413446676717349934554198119201426875689600607237361325116314406482476907974307250377874888116141164639157000373024062506080202260365247111104667679086742748034117888731221457624159101997915217299848499559644041605878137494567958696607172705720867010972351987685808874564651904442915997282903690114609888171969039251872409049099279280166780867932875198042615791675922103242305093965239374423182109066537682167699977666431133602761692315506365630809491537023852325780906545073920648752986069392420204332286373099524743305736485048390680810236480358994184491510059526684413922254884402688507682164880740514062752748332796309478664500516631097716661922622199029151998569728136392971816108108328815415858701207417707852285627984360580222291046868046376731759563931861294161341772136053478321522817986590401379866021103894176838001605421937333184909806038397148332107751335591952007602232026702320716746267953041473919327276364174532355420148320136194916800495433486537887878096936540602488636788658384880052773857447856051057272150664534064094120105110746889970308220878654376053559086542477526887328334604509104396264852332317899955945603504109806970094713140832922722556946288828745581470891070977646687898776648628481582078593167796110828518491720289617854469395447118877690160129354862851406650495169559517714343144744641285246301822376997245014624568712320122281010297697606200391852088842049258384869702473753617804451767137940111500198874787694345827871926403910523848967045096558932166631117369266347770881297959135629833462561439289814548656882517529699809441223346871440385690982827728972621729046365632299761473183774100170297497354681505053523809475625941604099440394528812712496550067917455600285301374770728517734098513570170545607589515232151151736342451830809555469031507060494398419643820438255692763774042289833436873357283473056926628042176958569535371878554556793091680985256775212167729626159127569367995968470979995750831705960342215053670533702790468147375054770960971278232361707958577847052911184070214744302651438692431086028147606921852238897951434607169233835437745449782824328689411911017288562595338763545073875866693453907585739259371315400811892573831459425194921031532456449739621180423844053856947732545789867798015077906610730778470939371382927771243132028804898080918889654086122408511915470374330781856860846317667913890095186574003279308560995635642132537530333986012168898713920197228536567608271607739471655222712228837017452984379911476087407605663068372381026134075000393103485080127758416162321029252649786153425067560906230737343808090830767809736906526806038351232525810640030006059206322512704236944107851056357522931889018877217673752212215349881041718395164195845712416578280405618904196481134294872018185189159089019474721422403018375608491671569277931230428585315613164938431733205461614143603067852840230693971628892003022037689329210651757117288081267725276301024574975653373703226263501767069237514083592252418029159776251824479189600829167040837724156196405100358937639608028927127225520401721812527990794140123466768767383222929850942756640482104772153631672203401583371855558365706060580438020070416880861835057630283959491410450556553546224065692221109511182733706386843899521761076983760762887032126722874881938979446328263570761679860059646593717108270912771052074247979995540751498830872600638977771266655722507649998192712621183286581822402714303374153684726668732884587947159510258343704584024809564276744251425250761639265940401635450722880037017574734470587541838324178474799605383367589798607055227947430619686985409732773593056716203317751076526681492649167454233979763803541271125598772131041193650972329665252449250873204394703544817592834017119487848669132648222883891654812307765315853433091205536896110050439006288959473551401284818840787287183208291385813352670710946297095880031134181350059139875173038423773541845056037401521742791342612660298036729711965265758956554527484699332295157268225295350886715867906282797183934187897888986049912607871718248188830286430755335549957108403804487400275869616425684983779379039233969322089470095619594964639386347242737650043617247156124224973378127013579974356165201758874400951584682941212106980570944207465558033139260343600414978019624168965115721909348308426351639436019686665353080437163522414283536084663421105548130050002359356123391722221215811931469184718295848038041957917131902109294053135326058388402268747623318533322742673367809409680449219324511068261217942159321029912189081246290520955675920289236734320504249091561770129696714666770062710535666835064144910309517425834411455136080437801279010753864574230826673439186828306742254240746146853210001041630167696611488518230525975506510976812681836883810150582610307951416175389103812723464639298142175506904493021015548519158753284659669968511370211654836380889236622480500289820785439533380397140577691436624428474368546413666763315066635643435602958421756925350512415307227875260658277567543860591804169674550896631570426444009097461838241976199721630059710864106026532610828769543987431705335363584412776900547318178541013712899140147146648980306819000970614365784652043633288401302153949133046974962062285168371453200705153052418769914410878914721759903728162003375484129976549725429053187277510626293096756088424304072247749153909314457594671444384172479849173894072990691822850399948960035449151084781611739802596143180948479917321488703287145932256602149265027656382726093899745553608268195105152750354797614131970451043748909721018396724317404931414438556000901248257681462451527814222332582233635506003802577583485670618126378312421913651745831513713253402026009423109631112934308608090742956556518812642291230476395082757703524833861546061872532678590814788512383667105595979761475021468054784730366898306071105806960173368130095340035427709747529479237533843931629635741101448503535254908888517348557641305472617724165381482035654580856529050647632884745958616456534224216783565609036115083128476450825679199553329945115839863611431891882880517179530251089887517915874613505805497160601349002901092663979776101039435190036582739558171950454343754661203907236917858032034287325594372506227904532437613973515236548207201074008167240309629799141716448935739389873239501580223674836655282438865548751980445935173818610642319177466885378456439183067310489528349360379348512282214625018468127202885391517011062947591045191835251882816136369899913307700443612213756350644379430007125216784500759416905329031653889434100561462614797122815742283998638015713454574766154774229115273882450346014504967076963672905903225057416691609454118248122081822062151815107367200063321116507815591629667998886206564513313759453174537725526004729930283749282606457525344967505837037389437018001426241737386428981996148855809220643167271201871092233535821938536698875289658713456298994122153618481978703697742420381355234983407367937982100638016005050947153202794037887598309376099144448893261665786164143399599424875377782664321651688775357482903170013329899068532031257761003880172795296122842368548937997764155837940445579200607554761880356811693683564166047493294321348129640158070168930502726201871634548926842775941276247583104004389294023691423088456666841587617175365687275859314160021731131825883954710991557215924080704852655584358808744103781345371068616787190168548572829715165027474048111222265007695782048713964099196481587896297595759936943346742331555432903095194047312483954329680637062545147017836996462417671944769107365505002626830615183988500389157012919957563356660020632582080652329283519783116240936522642887070131187531069502636250662902195675713387359550589512593579425146607072110827522189980712585269532504517188611927931859111911989380373191159457654704895017439598176187217613609986163967840881365092203853279599154166867159137901624027463830446862966868863310726276171064834533592704172279981974553171436244626054831962416847535260084888105017558374696911296527276683995069959169010484450363236984595868640751319829804974171468771674425823600888713811965086549905605974504500794918787224183666057533921926667130233447805606212620498642097118163562687376247821702421782231123663786293288950511800381085521315817637046247612314217298751729807902022546851737033330397929407065435951439310046562613083959268438239387005108600968750137702977283713192959419998781841536781195342315138089452316216325256973693994840901526238319587300976504342787208594401950589680665284372962293584615345292977018043387621031266055853544447117437886636690386355246995001418388504778936536171788695411080793789357493355216772313868356798156412537761598867269843408079464860496863142904277118212226518995567621450596596884253580635628605928916134702086303230750606679932069637638834107343670929204130279160527730535979378220415560848482034586356200830331395540669078991225761743572696752553731912482432048295571515280026827324630047787989018321430621661407887470170140511592442946998214321600297436684901342343191724576797311670869907309846936019474932817336260519464601075891706166377335903678616313738527260000317350852323310621225312605042756439264104132904473542974871827130007074643965588494837846178446703554526892187357605957345880999594200226410638322865481353326966048974919326790963811205906537603113195018360303339567910855921376673663589047940708799553825120696896688600296742124772678220649165010560544866448492336425147969264574042153314999705093193211752340035378943582706239009879730088320294353874974092464570185023222835315255315280719187192378109451804659514258146968469954746689602830454089301267929276936377194305210165398269446956428096777332076265012103232234900698276359496112569395917049885045786903011143428584035803885520367778665880599054858555154101596432898430868224028274594826758625986213862767728228713667707633611805585546492761965960391571379508779399465604493485441912907024884634044157433271228752390699782645224845401493964447642605257529324048720752466908221711568724201805915951901557186840925035468679181599270515694287243559759515442337685577056617951883841408308613371914955186210051683947593075988265740719252865762028171916200345093303038655830869732059929644576329056273967391724756044614767272072494155385009775591927602062657762961897738987289829575578290477066906804576241267712250096843775053023460472355617058832811071159212221696978021769276310815308750178335456145458789473487257128248621319314694475075124336139535244975598403584159772033133856240698281054666954528580397853021191143857065271497855722760519762148496995661991331591277599517859773785062796560127001036618266636729327607718972188091341959194318333489594331835648263354090185944898181391269597357313917348564153904331554032549462733787522897864982767638554158199087315690393345734387284508436332592180710376075696689043219227842291809526501884091558778811507473024195829592129071130419417889042055950864149891248205184005403657624946016538478932108845870354256340266910282111132030201143741557651161682271041935027370081248318961116145313406076871314548809735361220591915032462519414473355661108075489640991516476395716596687568422646518274068010593971683649289366125038524908083140213999371440815173269212538810876944725587967675850303443261110981706033042297937550936521769456132541568816303951312183905634417250337766109112817903858443282439171054409520442753448535483021188400241353799012138248168652280580671192475585026388036346472658513057131242222638864472247481946678670077605104100184677124158438879985055388441888929756657925070809975300438131409899812635490147557666291136657126014858702547697792849698149882900304872508110255017598364388998377234733273138140594042464076766343292167776990535929103509646829765942233674593426838221175305472756141968575652165607184696240406554254514558159721746017910108879523193092433071265949512004770361674910341357479470953928427079712538990079377426769632305578407742061682536965420350327432368985520263642689532612139213146024090257544272581512632523027661572044508055505327792663569397452785152694882296091637341769060851099601441294583389775412420547858786818039684554096277645767627928016460665578035281923788138560834349492268052986577470295703365315556394441468038886267244446358831568111276533085187535035427331464694235720044190337495423005071002550310434757424988271396813756357035943055003179712256107983125148273908824948419636690263948355642950157126967091959574701068139676566754098931763743211119523396517700840695465293623736972188700714797532378039076905850179407550977356274676875375166431920503557636658876717263670007091702113437931832175940548636423419098025523605187422351817125275769378831434516816972542720628044596972225643817878047024571402796225122649760488991938359264346029169451650021902022919707031645958004132024446340200229873304959682652751593719026192213211788437917477217745954739406462991374145213494434705834029613455647391198196545444664206331567728054206530267734922229732394902992092130039075301333871523774788068481075579712465110280464139559618399733127469372026543990772420714587574601047302572149810769929058820683469153769530276207512778791424961820201789435688420373484170771560652214074197107914574069306447968918541929443338265060932502015737808412429760696599570363797873599749273596308457402592168911737171099752704642563609830314550621983676618391255678662694217595219003376624400903571908783933798294117643194939621764941818431203255456917646169310792237751609654195704914781533197345169869071686225456822916845177634785846494248922106623626021301347601230275569629518457623965889183121813546438636071849518168448824795993151396015596462324770072671560493755254741338546005314237590575421213258810325930304125726754568784220444011129316344614678364522363576384131183545436584938977497692802525148332882601680511728395734201560761838065204323017525276383905058499449787772224603876220202310882568003071184888816251694640660522569240167584386862759934212934614885490501193874713070293720841267249186249848552042941045480639747480802652427078546248604201628812733351660436038394018370312914212755903037692629407062594645474944903464574121307576092795208203791877575419226444945823410047227461154787286750287586045942916618269623988826960963221352720876190524454241037048194712949915466449307403239194273728700301142753217491876414887042369655481861687231778746754130638330619671617973130769345496150203958230774861927225798159570819453454005876927784225049238848727927027174576981057042128749123321488241281328825813668206325802838546656017599665066579533131899582912723965854407323474002242344678294256770882040251440986022573347954430395710596511393312094470693979845152992307636589255981846414917373868944234539644131289687324718416496051220517131742904253216103944714816726176224606384105316200957879937236015119926463906251624964254808647767294659865687000958519434131209132674903820363597995311839750779113875381415549457823221285144215967715904515549596219450080628920714304116348330304108788571816254728757090443151850389154615699681079684805484211574462242402894341576898006897382119436522095869611231467281960600415234579887658373595804749356398713734146825543758581478382181038486416786961311885538876768757841550437238151513883248653188290653449316513370674127653672456088191112464087431317256734849325359886349396519395315301081248435685220986735316282972739927320149209298960869493259413362810670713882432692501768967870830728523998705784208684411841766114075550603436866060490017878684257252214794932632388056774646306297466539436203148683987803870412238547629776912877715152877554851977281841856305748167250543088573774968915310434739034900489112619742934314612996820668490428299723837889795005282322006401270140949296534816308718098576050919107849541320632378545266064158365494567035211410425771854097549592347382317355550768877053540612326614061168260875329794472303961740408796928275055700614896095607119859378059892558969793416411051628427462870570882842923341046630800392507846064936401397052328649565853074046133113900509272827665890239502837747396544416618973490372834631651437599550119726241566924292031446402476811497008576003646354731177654012332336264042476384835075303785983751056684802095974971278053508985250195397950932901073388392408987899166581179453882669103858410399694317355864098835048407711951038434439024996279224708490459362092902161571736075507673154584380061545503772363756667411925408633627587335317666740135263657353225870226979686711733538434667989726136167354829602770595384904333173969170855634194082664786395770611309734258684840842582157782548834419982622945705392665548407274530477931126524657450447198101991710050371379489190495347624246111220111217432129009824631589526928701740441019763938296797492658318857491465708605866344932523920044672791143020809345872467834807972619043945896819933898135883228210655257639476481075652077195932955017030304598171940618757026632912078461286231833046851040118183011183868109255770804500248812298826535305662957551071095556706899915117330008860071504274219826773221387876133102495853350769985935708447548746034206905951327470770099142322568850741492345523169603627851528172931620451158027123623692201706031263790576140163207570931940537333425692435076622177578987597340149882224144027987178810000326709712808489705685022009383467089437240654696227789943091128643066420740262061126704935650581139494097266331459353022171456361681811002266891026656377304628727344761694980992391340852810874454877805546502718674375721981842654505861083530136239132338959657773268728286017773176404194265641784543325479924551974151390624099000830579618606707281589186487618984210764538520537174351574653174608913447374651418516496196453738471022080202045148793336602536177735916006458845697577268058013486165492033356655374695088880104136878719189007770524115039784300538447376750900695218011684799233295859792606761264796976028061654752994067742635644574777300489878978459246480322732360731550327258964517981589846819392934375432873354700766366929072365819506907009745303285451827558418967649707044712086256846279221875756817299089079211259752592296038975106550735268756011658232876764888174124381791318697905795241099941898894114378045242663419946047674882532767666025100482157827354556722378075309251493292201872248651154523880313942688250253708335490496845606089360463801131455014190449877729832871798354129822857043819604943890543838010314505735196934143784871981134531829172136448175582750953995027277941787646307848462346977313544801828022393021713869005619338059788261820594873012848750618320941058299887980967463640271359983829523145948582910262754143254185821450239131620361998864238395119879433034943025008369520904141833981428423795766466443786632856327830970562972963470898104984140275647542451004374735643072702981427637054212572126744753886798423596928917937192135255725188316156098437486889580834053414077788937517825563413581675570880334238945430360632071039553399343809686968126672670485037807054460583789786453991612803021943834000325831939429252992744148294640143973780135520328615512974109914129811541095111126099198563401827568115657304266210781739534045725221393567676222322940357816707274148908456956596456377130554807112964224252462424944372452171939724926239935492166492953736388340541269102722645286700353771841812590756874994145366990592823301039069916779643129047071338427558235812104292892740732283138672635802798945115604797736169299970418186523039613900467135424335015827298741604594898722219332200272712655681996893195826135429278116503214260072971304547101167135315593059605157287433310115148849870016651978131312044198156818459763290489939524414076451579807759569472442180422214148811452773111514494482290251728785038852489479367011055829858987905123471054803365445585263033460007872469939498246567692727557681368395007886835499987370913242650108959898170470867488382890389257112336943616489883487075760195554200698512886293110746980316838142613222114215899507071923057307348232602974815916672756283656755318002901899612170957904628662340106231443263943285387184670322889672100708911304534741068204724898358823411420394735121435318261483916318961575624177180590674845270895926551730188920104843253172815167221011850502926747398336375761617309116155752120705647240833406873911660730639707533803763192794911843620194091647934792259184798412151864898356933746107480149432758087687838412265917360226836941607281619536691610904271145348272946970792467385933341504808408116572930361827793547413722331885192963934114582323501199502762945328674944263424319629616242109960448204581009542646704945837300812249085368596464403332838564064348062561220986102731864154378419190668569274697573510691825865961822371745351518359403509195937780959100355684937680798357569657022833287333269056989973617395934127333927929765831872664105251749466183966646087557337805911950771578867078662925461842020878101771454469911695880487990046703979453046501081603107030163374391289739558366920481685210138122568305662899429336189123162909646215324089862883311813196782674126675672473120055152522721310581855110219240320751840092789967005183361142090011707260080602084287423436645120267019657116808698141290477376915215005243908953008863089049575216551729120575341462515916331767380660238934655689938937330321824018842338153216914459405072679873232190275691732022445710420902816605247844934030929892860392391344643484724826581784880337338269126086345577464672917874295105479457689282778612680038488687510690372777618827400680556444918495525834420804895499085739174462615888933634623759948816283929365844637196462186341562853369015065203386938123517690869753350264615219816482430716206300909941726163668351721596344589759813946208047935120934540217911951906641088353266491232393135335825113590061070441540102673209455886690899910793757472971647296994493662817518716907546101751219361098494344880752204645403484279600478607977242515300158524166003210660755392198654733192566224977315830584309669106578885368677536075720110228154201759431045326348048688061346289097358595127785192983959629525259164489702192667353302563665105774462691921326629768715016430070798945676670560572273237517002509629295307423155295871863388230940659025477403545817062199191720686168878631821111537085967908003314489442760531840076878260028480759687283639904221883090733250879402008076347462956053996203479244097456251344542638401586400899696392408493579388653094630557303954665298729454278143088363700757910568012574734465674495256859642955045631959130926189075017115022588143561535428339032102103430653063264591528702729018320946500287968743657460264672947932819853878122408320680520496222566512870241928266957836374374673180493284755197190122230504086967738394169242999633769208013834789812894451581939889062394184153557217419771263852478930157366143005804515164482057089647488368117235991181409111393919232129858404676739992045342200496787538093231588473997762552052537243254403869042451500329798107106406295297228438892169338755989207472338277735790758170379548133615664988100270935010480632595225696460986974446028200508153625065906854222763039219741510817581418481363170056908613370576865851648799948783945832243413287560544460896104659320129633161208781488085797235507251876436762268148350839813516520940073222714265819995792206133738523961516471737819550600637779250843410826925322028111469695478439406083556819912765664641840412326985290182683587053634194688358737578019767703221278130030935181140439398416858580394793310412557051164524841680027163859574184879022164307578366508494991977169179874698110698603123256401261916253402082695561302589937903213104004703126263597662939556087384806813904787078626772470309607668687081842700696827919475778745713241513196824540418781141705655090684494502825638554834407374669170571432669850846686511314947939410842691587847610196180909145559035270837600307508541386001105682811885005243158814661749115452262022500636844894481292534518013411788500953697323250702343590511620162467596663464591836246706200721460624225808055762926314259701089865426743771911989329313229964361797624226373527360067454466395008205294247086574792780626604509188613332989387852517113209643567934833531330490217723756656308759180949095532053077154581330858600692716406348280844032678642339022759588076254320930303271462312715447964684479244291202710326821593911776392379625653226734062570871542794080199038399870940601751116245199875384683889900223407979522471441219291040204977162348339643009601127036825094049999028861252800699760041458932578519995075836042601574377371576443813682601145175434321128893317798165013677404399792610478126432588625298927908775354106292195708868868404036569197686761434080646476337134378682144922413975739695996623050664633685080379243267024626202749794155217041773692901288090361531329356656836464849410911466577682462868399083331158409504717457872667488672390721246930459724020021222588513727692851763708369742178023613256349890115193928406789101646415726062709516641098837636782994730147341525727641016498820494597612673061784644078971336476278448411210589557815666581982870975032876984635159184203172939429937406288664973314554814089365822814557922790302985404026619874342614735833530890518507332817042591204296742372856923859302686885270364968465258286640315048144662309085726934110230403231145366857421492310884120146692435949527869310174069297151676987406821188078119416764187758346972074209187295158650523892018840854315817866879125118096997211515635080245980659529839951473162591405646205359721739898517714280138746813478293879769856941087751472937546204606822159806597453543069783020661985524865401128437015962914307747817324455906483489600925264241026086537649141787346716557966079040881773010765700772541291629682540890355438029287086632096019869053662735812703691345795227024419938579090006625128643072071231832838197909595848734934724262496400632186059925147273107631298002840551576422261204757752564328542363700489237862623826567761412199668421884895360154374340487605193915661726516469681824926116243468054333981065874605766161894340057987575624260228036315831410162814919053374879044746391140099727739957071805000463779440885366774554569188272091571373963977384719555256976339432084870101044808120939112190242044923526201842861772611053839334776128473760544225791784818817782715703321249153839432241757614423098549273541190403729592890780889660585425767153564752813354060923147369866419437128888208266132410609762749528949600489615274137332052795520290017957256430772944029869506267775280059123656273145363365992421190681841584323591591603994780393568427916528599626453903061786580705943606954099589047892169930452650584493053188762795377132677322239265152826207601344231084482208860066194710272938293168406797134202481864335128923553945370240572094094148790767452137874203289069927662239667777032437246674957399712876811011493686647423843203051670285603089310945223543961975215428071017081639183315502870984697479276273393121242548362058355581685994427008396409842330222041380345978533148104954774273386618120895805146944361448615329044847181116659289215164480275339720355795540797579581550284554699678490157563114764955472180029393178662638948720507826726264506950618788956034068320184008527136572614852203790171410784432035863904426437727538939108875206593042535351479498402629929382083652653693759271896617899879572781659500906465142939118736382296140908704043574896458638970767137644822701429961631471017627982289292374593783010709134942139535194531304509136315152989571305951979915728519751936757989302684495946532970481480177325226402731493784403057166299006629011966393402587788086318491397808056742122250013799234290636204879618499967074770065025421882693250406973335413517756955148624639153676195920355083480652259578031330954107806770544827230952813724321322436207765039384486318797995356753855538733756806442777061030300590207528769438261022712236441726277414944458383267153749598924292264240950341128136469845670405830179083331617686678226196893217415414420834654935527074170273953307901763920469484377190297477027726949547617758185484202201963423399635721264255136367212960006466558491026803183505161621499010851205317527289795389297869202571034721418491988090120536119967763000127002404436753239477556474744439726016625656323933796504602200448653890016042720763994196319012153220209446261096107832117348848357178088970163219288803351270874740918074889478298080361977878788719988935071217140552516207368914231717471016487899141474391285821396887130952000432302249639812434547567998112121818011334251858217481219131950817546916051087664226167061692798439240175113635473601496451198846873811439183973463458452201568165303524214528591177424390891546886145001324731864536284511965411713629331184442090951288225133822119402042384419893941860596004355477554187496961556467856160697279695766631359537956954656699583648574709063314842398887136573709848576331466906391285381350671296539619775669784946722526449332279143737386645181542187519321659092632276347821605349322932066015322083094895672357215114932352296184321058912064175483050617177396232747497672762428094220787657738055343209017594433878576472944319058783770892845696920920575726604626878090608904079505316268019772904661893884609099355527400429632278447710741250306762334808110242799409764409493413663131626799118810190085765018684934090149541057661981818918804810153925737851081596728876694986220348603724292648068231522622244520981953371822468661726469922940372214549542425562574113976057958434198385138652197036480242812046463625303340155498599210617588293062758201968245506777981584924838643244416470589668584571838407853825189694099008487856901136362456851351509519657256535013255321841373511652686868338576557345848003072230302482224161220731547042563640626909450153603545162298446421552928901606697184444751100763464010184912828839067569904433543984509527859749803543775667795382606197881781781172210227682315591861416576205598207950154667555557550918924212590996305151902850274439827841642653501931105502928731173991993772254479461462344656946806520595034585777314154849106193924598711259694868796859459592492098837533411373046862138796520673128306011669737386438669835067462268922253353059834020934483005173364742736257384602690733600030054043579578613902846695546965638896635481127821820938379282023246063272515186963458719215507074305109022804862314328210373941850704315236675632114981880570106092948414416045613644308869243309522940635205294294442963352446205493172633026953373005839707707007663128991613501962584174159493674400564901773252988694174785591560524205379649485758662263988976542565741125487197140863007117650328677032390102707260888169144878492564890600206446693771072753438223876506729381713524494417354040610897581229248155022077889189594930206259326312768967938874781531842090078486310293835844291247743040219786050309225273493424192962799087944240946885066228953694032674267966311558790044325480467702386708819408719776994941827326690110457693580800928488585698777198882043499529533190240111760196763593748029443429775587675579480050830535189353708478244139739220400696527908477165306646585925342230355516816090317292463439126333075911459480984054886648025408918726787107725274344274643022625528280493589344602176633765028741620216866486042972775506147803925723857053075699485133554590113521749460212834306506337215243835652720021410887563726211121027018334965305447889807625142682172274550619460929026553732737586609572955485316659126760539932907936323163266554957780490893122592782779001111150406504864647497919785488230307443110125662513053030887098643085365422322973197258032801010831940831708153773804945478088713901249783791540733806017738809800222998930544099125305243401773116884258515325695881663943487054244286479267857009194710890477348047807308102408151884983327064569253315115628077929130648753739501128608952414947269583256806322522953931214869283808824381486578970742621351990074524157689802190781695295652452973203528074769958863094917620378556101807168359188080092161779728431509767166243765726374751896961521427900014453937184920978285007785118746570796261404067621171348435737671067217312486059598420420466525006509562313385953580086876362929742693393687358486978460299576710400827948212375301692967689753238793335907148027904741333990937882593089868307181571589209269847080244786589946150297790139518017795010487064589452569612336394109611716196566863496823559279360782769830352472928829203277824165809004002904286572724041994037209171870630935992790678146716580558078697080977381615129604004422737135652889326384949366544800804095569765623597261980587033760311342664362622982501214697902859047169415288069565984937711966438943938669106200601838798528864462596747125679442234714748481897867899068226220066074234104582197369754482202105643398064195307659404478311176609375374795252389971414046312256551116943096462127765440879798578389151940905606092201248434134219315188133721466644860757288411608216202803545046504516364642885108592869859690809559372936184970780501244435345047540654036734074944759175412632003684085439482128673749303694982753029196828282984439299032783429181553465068384456861110367041490706040165080674308666777324016940950664690615960148109138488934807956767198304644879951352121374794278074249956841014180040697930800204093821817968010828230889507822805399787872781826562870258040770546710299786418210827088615759924981684565191879963298871109903109843137156093629074118015901210131311450223373378602874867140085659280012262359348914208783697883083822149854727957606029811027557912648928046548445475491627474977070963789926569903266596708147087566847742282249489222003686910361335267864867222013023235601799704378922235791770942242222309079239549705845321137883111993913436823552145349899962587713775139193966790461965921157848497822089003697185800603234960460000885728394882065619504146166849340682439821563146948454403161643388956033155955479319506087293855746036232261573886224443021147230526893578147781603191327055586468258356094474033993003820611682877833399445070012739217625408102732446544014942546502674432664815385725952024031608990548387466809999877797363953275798701334319024471459070853217824410059536514312483057039194636444053455341549107204389916392509192207041927410268888855056359928604760362093632193099415326560161888562051910189608310415598033658731193586747582188085554623037911359165842071795178624937676347722942552971745584274218425731933653035529531801331192319227850525802861520475009902565448067824994203069402970120676339381900342093190206254143294244305754851024366330315330865707981282612518943694870595066096305288676721092441378065446023200828109326471735013377328553927666053787644831911585307097822127881067834273686334114414364400288519684443376548314686509107146783192247205544427222733499072581409207156106849355645660832102729636267840892283774838888253933744840099956152272713318883125252197461247999748649342295730483631373355212884311489265638359894849654849931575733603492774447775656213420976389479570133553504349972152532425610584703124856616161718570737666578873201990747587915811383300014410957191396726312881495961524855233335549191857203806361879989028982851416917407166653692134425886785471436664888359641243532115036392133606121004324430419647464375632046129572895809435317744939125875683519398972810160250544741127046435629828890095586201895456358489036115928915719656759280590995100644571625859870688794736106282426297583929787047160401775138342422964066666430169358138790901104322358246045651554229367339534689451509706437657724348831204102099138202423028689859960826459825292212609332706409012583888206700406476312981030048758402204574665396643178398668271293330553255557873185371699810645028284554447805175882863068362900940238560395956446847789431459127192092623567034335659229652445571268985403609422122948884886597360107360642907149823789904699873824817926584642139823294957245280760716458750433759364966630296008496847308198453360758206394772060653301482186463735782413251528235381846105042978365039911126881699935088812278427015841170419361867807148768676246938330390611886198546196656481357566503350499517814760542806042424002968220504388545134381316676363515624957265639210513127977999733951468756745067356404231589082566706433103775881598658348969265867564999201064648396824046962676894023625126086857443487453572542005373070831452100389727115378097428865560334431523854305053387714254010426708301062566730448214241148985463493480851857453669951695455229922666457964400023022989510299866084102518750579880010792711397761633869430339281152866812300386924416942868775432657606563614380075885314278982770257471815528301956680532295408949805377843797770398207803802958643419850573363882706422606721351120400395394653813355146225415146122703932403383052765464046004006558764049963573973741218098333177669271158211651150824745813719532434731309376549190874395833497298858335839640410659288484353992423302457284521554137012116375654436659219265303304610930966262072499889671260945773379177894147609993080812945163531655051256594400470396236134944883419254865818125399171799650007775497132501370064681145160186205767878759389540941801175289032592022670277205502436710359365355479249378191421613711450641450131813265158081148824526788315597773834905791516505436307824607192092566058495481189874369794544916765001256198483227552310031450462153542534700470740437667326176987014629607532164173088373613949463456438767318073700380501591056925738934370670597049154865088321023299904262150535405927136833324698518013932159211246145435257456152927392473792277502596652131498154488306485254089984587154299828634722018684807040899602085649462906411217221967261128151494819140552097841399450658036962332282494866070740833250974191124241221978482580360161239805333649112869933036096596932908500376610247468173308124772967212916966324476506076163822631543422941828115346510549992359854781612913194949095044230751449170658594230770115539060184194787900884732365376191831734707728135257905406468547750372000370847278594945947330575881107208465336415013688246416557176019694161989704179497223225457846816731306797175278251636444396909694679068219021401942464991562140234062932547261582989875090996994089672067375883081196284490834137733275442805905024519422536345869223937337510888582512624972335760323628265266129209850304336359125385140913815486325124461205884515076027760352783949349282550139025241067292746366785342034122062191187555516334939087013427402614151501109794570303099723660216113783532018935534757198658080261183148258120017315076709165440228161723681431774527196409466712485455005651616017321735969248476964217408193909389930934260141190070647563728128522839552724401747938667842994133040149015272293669565864331192446194724343264340354133618753456555477762479897073751501408461072490841686124925454638334838993967399768567999485200972704232496049347498166766561167623196936291597274367941558947276284712528019216259875555782486133227464579623820982094812367170278039073726512687595316431039747893055671089101738221695867994864873382200482446180758297489006682801570542402147766406845766969062037966611492537974588634851586006942391706623368322609372968874031735879538954884088830248029229094933999593277089870482185119427936420528854729446255727860703975839718390933663385850821678802191844023799732282316372098354107371335569561847168037158182271341583906749288351554683377327859433661684033093629323478716454868334473315470503494243918250034790864257285337837882047368126084633695728881569514621951140199807631742819043146387449647829790391359104440706736842669858285137927044123588611571827802058015700161567372792132241653772690137817787127474282074790912139169592530248280697032422309850156901258765179827977164977627594616170781069752431695350428969404230420870036923415548838127587933535014835483145184511056885686571323846281587761348957652116085190762799162370443626605334349734966716067988365137158335101986953761726561191828869676615468995435837461855483118487388893461801488781027406920158085744209475154583567113725269566451335408158488522318293417332176124845013265283999686774364378907233794002466690810378691951887836341358165306092687026153211404241536990331664762225652696878664517413852837347030947851470953212964772884763492671482979033609235413073641379041067300888066609653149973784023548614396828360436330927265009250462548955473830986691139737501883241306782669298699725462489784521850994583347455317517817194308358202671761016232904712030544191598967102823328781163074555959142347841924847658581290147216136676963147123111707685182270101866063101076717509477522441432916114335918161575804352540960987181219485761114431867658539420076273902828309503753702372202354145635529874403166723922822233859293292481030068708126867829587586362346503186566830144866413974077439679157699466751438184289657053114756458109972357223753438109849823387164094172935628158179370835639257121714018149467066419663483763238144466046008982871427739322108552121281208959262668498595443036420912916056639491726918736192649699500938181796663720833007891072580030417517005901021747628658119936433645599461556157205352308737287425924671206988422992855767885908904001522157180738420654595364855130545204133475469343222864612440418005892150186914730455460484340294916338942040652089007605749679834693798572436294315873432444576293245307883287312481148571983305845279409660607496000893299276940750588788711083171815864797133810932384022753245941794979097148274651953838393070889534864903180712111304569688665212101598237166893634027166093437382160877200015546554155800675160145743239186411088708031019677899889836539111765387135884695143501691948866271180890347549498913396713562918396877794423298601046419430767820663188281864928706101253341222582685102636578413616275971199777250564052166729011159260622332226880438468787395488482074898141227211942566913418956409544079784834089909183574228351965733640214884282790347073032976116767978467787010081923795886683914647146931660570906507345694673666034256828592090128168304944475553545998240336083624188885939531066804227450028435207825779055059020405741969013281738338806998483481965708272929373347013181203525949429636074973498463359132192172050599237992484694944271251890317835827471509784888237055646164531327761040186248534830432445085495324321508572519211638734757455501602359884687996302898096659583837923105902701794815243380677078339430863986782811856183447579882798328353898729454440873529256433866937771600374424214748281494657790357756991581749733654359401337964995506385157631750385154836736976312102307587430397443825739676501091646122929217318736759098240308011255197535094509835585872017292484231219363761577502485048677122188959437849274086559000848150791882436737249105487533672269069288363676290394765156278053621512349826959556495481903372755471616608779715291499215313089145287928125271255272080336886963006986058535135423055194973080940855931345046991852868801992973790956246754595921570034528687383973183396583031631303457299088258610056762684425792969830752720790626250693354500480035811846968240016325428879383854383044780712608373389446166118288473129138747414169803596630757454179578838218414893719858300071163153895403667259964109523211516923302184204204106711641601640453772335085513704214686730739830270636791573675424140785338189489625788549384477483865951854319610101152295152928109792246637781806612175604370155265354425977967274523342280505625237109673465566900687013697745718208890833761314537657184271068805303027398354987131669690840953225462673215460382959147470418034130452599365288128093116354198970143069003599801422428156241232294403975723136365630324483359383919729285912602109790851022979267375434756809244310213279005684617401333116700455624301161332141503668559156491812059636853290876054865211016363621983478060682824961772975593084492282988665558143474068631925385117786050663183613022860226522268652864788352291705714907555061388099915875654635813708475726417977101924317616927830344302732794166140326029418008365615925825998963886483110795488810866213768822093406943756800660217573956907089688906735433556762770828220752075474047272033271842174860018363564445757817051979252089383216484466278293701988726606344691348939511667342544458762906998593763689642494869425021208779638348651432390349024529456031031384680258825157623396272560443357265952821445054966384223739849569179259544177808609147235665723585961378260227452263556886656856859816568880776984775144627236218708309591370442225040859217487497430022841636802715879995250748746953325680157884195235540341078775450032614015304127716394604138611516416763436703299798448743745074700076478182022225127721681037000673539369996187180810083963562312737502501821831106298061935163868574942217144603636855180164317362786070486304397250924926781073186864467829016913941680333570332093394456199290521368914536054359242309141995579558471115037777966693858368543812350462285915122590284175720816162162145090808447150707243296549287595662601370664747871472068714141279395365136068061101826145623490835386044066855055089371680166492280430474689894916329609634451668258946844359569881199778829916452501780818038023438383404648846393622577912372782670095786000144001041772075970281194956960205841547750881573748159485148695250764756681010363301295682480489333067793103617702108411282372920145021120367656292432765472586945018201667074320066621080826873147223215238060229404175448180629199562149538904215875755645392129118305847650456017618537431664228705534314510218013665811044289697660273789692035946224669236209968322918776603467625376405437113312696427393714825933724635306889030106045930457426678180221429397924654577499162304842762839789994557746278114163168107566881879517833574318857126453397315650738676756085993837505711693591592271012521195975939117371133763793009111438850713966058116718628706123850031920031771958594922514845320876192716362364421060165167281048244253744184631342849757811356360684954795079885361233834771014343120970954161983194013446743243132990518721236446870571726162671808817484542775920065990439282870537114111307011405691028185790452954448175712279537195338593333148817144236935670835972910665758887484813471451095592221567027704717699174493262730433122460156159261696205961712890953416550607343928538922845496927558493878353604782076977352803619790302221483684856645677436364298100957879478886474641288411927128411401394972633640754076867358019265788947677889214812885554679677572889485367881832433264858024798557005542813949329666147913286182932875587500563866288385694015747663318918790014309498306015238507141530693165004987894285154706102063097061828771008824221573984840698866435841552542097172359512357073567868447003905435229526832635441067860824803978552168502038022406520264005768632378604519049622200425099536181202595533361348966865482565611690886578833728829293952363281967834632552862223462983165669422830749637182890755837874627886750195346381269851709012836998455824048001132096739161834144489449935203280981731879085122521747812748090812365600117363437996989756869080952068152425580614687701027634024180190917456647506991488820397862406858223926175524472145316522769067224507812765038293927922566262590402445347999668593345905128338824052250006057039088213340262092971540490959479975800265552039651599036028446869724375315220874116098927550616044388279619942356905891426264779486621736013162374429430332672161128592925719234297077440431763837087607761245678676050850198700626705773241443034357685278281812123868581721599303285829664450418672284124894884584548707248128808711141845797496695550057392147274754737261361440396515839273167684608346244048691986215727775129448014034935204179696903332756666898429725286127099303549409736334159189624205362400807824670664152233777340630266169219445950552082512825102433244948294706804399786624192735006365953256748106467952677912834255262845268284494744321718668707141624707761343654530148139635083243668537246207333952893849597319414042165832824004268392804757463149874875851009154799208582130859537330242682144943468391652129305101006801388972882917082647887949662491025016628507300056980278993428959133432037256603018395829229049850953236415855595667785940542851673001908138739843463485954418533722314707618846911087624963237067199353025187842823264403072866666945851480321931751700307777472385072503610960923515482731623375014409325366275978372869384954819721278184416186987685501820996231777726341509897902644208195884301724777289647904204832708282966276937356127629465916468285999344907205266159386998479197354254072087323093286879806234527495782329701582152645056157235609837797953771212407080137069570185240590345649391814208334043290194258827154991785069471042700201734383363469565921525712679035692544369671444185754786935608561168894751590524074522117793498387461732716721429195611742916383172736944840472377633580207971634157909847202956827066941780804275478348919992576707501516915068558479115801538892318897494778672481110251735155195438219143012256918458685661859065994744736944206100917036857967351376444411966781847398455311142078548785367539220118241188270986984082158675370505524472744567335491576423475438335853696875780123304562849805983796066737599362099238175612444753671094082596597536478402586521318160955024127023752271328701258559445125688937847516074549378545375037516971597882206253015657724381118100679067600217036285998012436356933348279772858944209897341516053502227116174921255141562154710393386226560169846974304272844054945611190036695073444125160744239761804071468133114630664291488005537821736057717559008511604701562335145667697732128560689158439188060955245325158706697211176664105441711625479080504567059557806021807384673744263730642572550932846184394876321080449745188519957428199797094278309830953606763718837971935232074220996926959134197253195750950374003174572944648936409478769319538994508138938170883629498081908729642383871001890543745596026288567517232354055865107364374041767889946394279160707620340408096645477927606169187741381874600166572332816043805206374933840495528720926855499462370449393401320413322417934490272741200238392410417468982556404117965833429929800094640983149972127729988925147643613979620229182679626697495214938210073570968863561580359187092816818542587488503723564584135894408497652203626771043060427853159846693221968761767574186136754527855986358727540105441710987095509263151966368339028054123539680025902117263252731368861008559692163131729970997531882727869071596867452029299088059219632152353726557604097021205741296578090451261238043351542058966612687189791065013373583563643981067754396495194690023260892237225384454174516903327456712311345761536484229298185317012261588391638641988338322279979452680821654154235975729685064213742189545655266575985704828219978652514996720171156467288011044355058224473199307826846065679999957817549341345252598301648287323173861901632554081370959082440104202043439923966347813857697204443063521263596667491795743228988760749250688875563181999673645356767764572568403430115313269452256086253175854520201399630162780623577128443958084707848396854493261133412982575486651907597550528910034413083408495408630228597097298075537395902622908046034785619338672021720473240008767077618493859665177882468734307479066385669518752917536305379173545939067164240759110391329027033133217982809929024768060458387616338189205421282905554906524596516660680652229328347968671984809149374303106690883825451170611728354738044839006708000016826836445802655517537920603180149372603597126892938676495185208876156181390707907851288149943754996226139565037174330795791357260631245160171693731154319298866775687466001457543663403639690834196852193484719513521427171735830070509003911799772208636717246996071335417979798659703160489211968559052157359641392526823671185439244294346057994945140744796062435673015391595372094196560450715711324870601253295164713021427283334215294314369437028127049422979263742920090061627650226585228188452955980271953902485932494945192348300909623200285232946432821383668675716995155504292941406188181950925234837457203693981888443194866854421175352752586535173961860580348464282811573289840838506711078340705169725304289148288261835051152940352008210479324625675446028160169813012352674426906072900221468984527759278494386194691521462905061860955887481119756048723122566346863494997971046099370404700249803491337771606493531736403309808896327479027592836427774227025221515402010818289087605103900952991842414962867757586128040432547712128961194716568570875677326972845817015836552734248559638307601012294921468825994953026646691469242403350190723830343586683442338731215178927187742622297855906938697482323968688937305157997821449278954714028988045606832243709528357709344430539016256514966814095571708940163847680543824804634871157577543842385981346784625294075503234835217418896823815789882803190406566409856309283596695300934589583511226047197299715664898150913669469241897570285695924118178961031068602871512529217047280820890898134555296324596779596170003944894919436006647222078544730227834442643435967468183161520209554067414082544967090873986980215459421079635360984150016293430227358791114975213285069339287970151529004756352040536473111752711387098855920055249109711573869399679810870764562521718261886568236717946915034158013987271103521998729158319001682076674763911010942893214484517904022012453552943055785133493745307413754518424923931735070298118893935796378912407554153985552048792895659372374863599964547207082226391976588899892707930474476440904514825923989687125085931257905234341863948998444223594874877415387171692192537032830886846139378746847475062972804690025907554634119996343599561389217665827641949599743360503370902684358079553998533223213867656638490156653327405967914852902002014569576039576608136182076175223474297345810545097113109884454727412018825603277815889019328464270415111618303564701809628514986453571061993914595268623858814056635374935691603253329195759833661295217375512603061176711061631315961640599999110455316413180120629886624852494097073978767531885161974621770392791303074309231056237097304637604216550801555231260314195933892009066020908660747556851222605008700731305246732557367388526663179588280176620299929161545450193983085438935717988773895603076969350530198976775171646779734451977772519814588610651894353975822668368262218785075040940357757079855991193739270062477705865343621995655739097569176123761835359511954481391725837549373884602966555006136722093634018576092658563597003572691553597846177182947904342482631235449989680437920757154883130478943690992839670252801401439334683098023851185661780349173555661168841664099747031604370210528147681072552745398420426928683255129819814670018476528845330487788706909709982806595564384764780821755914550371797980158820629702328789000068878000929397622172898977385965913567320358489222468852627039860756677273509371518401622116226705995766935690732708898168435612681978740989060885304637508048062272742784597237502196048474684780839727529041823715870933677893082091771760124901380725279385633656139592817450753269573384544242617954939056911547684870768381651852003404106653084184046712166291642851171633095241536092494472295477079391033377042968271516576624027687269347688728007872722993614915742144877399321755730912624010083869418044654727268067801062302953407794378270124242956278984079685681399073763054309160935898548232390449739653750804123861408879744770603707900938522687519707793070347079575558540050332288992269205963034777783514262477756229823126897446219947545525260883265737064090770632616708256495455978799614930742099255643552558762645104518139607782623662143769874168542995010284352066647296173277698905084826946175543118441804111929284222445437011035727993608455053836460885907708399237575737946389889453802885145969673649414411498749816675555699618765941747545203040496096947627241007143399399242784573895605971410901863556448282573756157746717310837235552038963257833999299414699103589819187295495705201371676775977742333254231835535089393522772603851073388148259468772824356865055136431409743816038225289737144935335195216484314101039734512839875454534971394310421926854990730284026294078937913506024993592319069383258271724443766541410208188063871357010721987463859518642743526616437501916565515608261144503450835675460602552154109400517620552739628667373663830796003254506054492691525355250654195606643283352863196336303237508449457166425008605953702310695226869154651321488805257104184025131373099030240383196236312566313956512353097917802518994440711443329767837666563709979028422617453878380392588038695466547012456077357402448151555966442545549592870125976067988759797430230977991363363630192866219374262307703008539042350617272152643141702293603141618141949104215162284245468569012081232911007339860371912175762171421165941087285822922996159331670780582436740206178945609870754726544846767619615286144803342335880125254638803254029702098201204731301403793677488830867340717190057217049894020678927905303377730389243347088503602578133699450784724315208481139785639848919421036014334581219609297463384654810898358992150442694306644723176179005218449233447588720277908342009839384030305982046386563077197570212032606843471694089974298769044170152785467972321130632984427515626207326165351109371820874796276115157152561137009637506754952302264884271370396095767995009687411893579839408837560684867602563221039720453301375522068325351238368183099129010612271955662131836979843869423093158622022033473817119955265175347660212353462646595344419942066481466125298762835541064958097359387728686272317719487901311009238734608389059742138989938994250106895542239065299806997258400933226432073739099243259774973353178323056574106595948999456092979949062600194848138222130215338630077989359985767982014853547331030792213923950267700583063970871335066252829304012603780749760688458447577264277006114558015719172762128862349748077441157413307439721770160961466705607612470545003049235746882862517279798561656857538492299840892322987433051660897462045491036927682855244487204041047995090967085330755374494457775102212617262069033061146477724834765308924577663989412713882801848601469222135578265292210463136804163521846948592281152625151265863640891995574878049273876929450559407032199732366219140676474641803041361951513210049890081276864587052004564384788944517184898250072214135830524207620049623523945231380674207210818110458385192587116056437145922904418050781728923675653757661356352975679667207408901745341862299257193120184286126986611323743454660287456453430001662730133016483393364842194270062361564560693735605056505928722852277435498399049768767352170461964545491097126044760991679172582593788273432329104098799159130769767397345439793924698898773924739959204917088142417378182155594107806536013476575381385938298202857151247376436381351096185791468255141228097783506546666475446090314562859868138119973016223959175262500628333865421283078594793751433078584369805426546605905664180321426957394677237001004470272661333298100126887331917387197093819305070161984571735984327832736546893241401889605025306418857579955704724395477683038788100736838146251211182507580902489027550837729120527018806359469591326488478885473002331885432517268624158187290405821551049757395367219808570216330565191832995786095265383199539607584034558150204618384875315300121220011950806230009941703076021196519369751911986622204692353201231639966475617300884809241220005710782213845088005793886327545451602325975555511913938628359718914039798790064042984950896350849996258785389690675807797578727093883122991421685518003413907999814671793365821991300899030499086920461910271958499418773725899865808599279230061272970221281820758726453198689664777922498403258449315298466570226452292742441731750188339145280899331424454617551698107191978971749841873221758534630407830013131843519011664337425694078185091454584766292854523683086194926405365527448865314088171961260209439292189102001766540250636995001156938440418721280944176416273280170635092752291163492550859016104804223555382075632346460738822014742326629333561089870445900989737086964869431403814294344776440554052595627501107224079136616301848640762028461353166728712815121410816962362573495283143932475191102955147184990909965763061681070516627125125167628590058551795484071716733917582023729400631964495560111373133437090727724121876975471731233939036123936876833636150410348781181196863142482438380360983188632747933891261832699668368362774003776886181466450262165827052528946037234331482774890735222695226195408247804679098304476350256071091500333101810007315615425392350793613716688628202991203278446850519332990209668712898366617866263595713499185587643309160543802956389213865234000496764756660360814970852350358163537729464999723117124847597212917801612974742893649216716343684965347418407957755432837459881579192880952505585097326909058829766808738682525501106087567894837554721352575376670375903653012884712964209553673155648878959757396458549664405996336916705681141606280372056937229251085804680494332245808422667023775965277594335211744023082270654770660661204839532578766407461348449270000962941584845251995536540439031492704712854880172211701254964388380856004293575367285990881268163783000746986024189541236275489144884662383332942703192927006024094246674585397210904117494159330954276019803791374975290913330539612190887806012646044101262483817420815190470326071122288415607527172332135648684331880734758766128462299028365455601592871691883089748852587335512327150681637963462084387814446996181899363550408575779461490638321319219754637075265803738258885811353123390678984182281467626720368925768533677460986204244365136775353339882977181782282943565187775464525086377771742090954943669879901590379873457755145768502095355012150967571912947868902899465414012489493818258891012235508920381055077641556447509601361942077156727529210426313500800277745887277190741564045102933606767480345262711400000707388900920875400059690080320629959818358148040394107988841519496421909117646292559454650506821774247774636588958644393806733765830555479910570474261531460552084981789751586533594551064492989941869235816584808887923411914079081937399134773408792420914542278865796769767614951225552122715873235282831361149379992195387677145602986055017626266947420362473717903031253408897415457815994399671500112732597472800948328733368519172905270428889778712267072211958829401365114726571262429316480111857946112329850784472164490956321728212193024010604817441124790746954367468722093691302920040343046453749861193911887220570085760602639477838903606552763858963186480686616752767844188401355681585049874356122795907396965015095283218750411120503827021525673486245480864158745485043505631979630491031876162833250893081359984095915759054888028417270902415790026715926757598745509355028220167503826269994400120335908798121373310310358552792747520112511654057238890179448037650614431952643490444224779601836565435983305005059869675826055229997553454427733070292013507631385104036664406139615491185209916897319964867473635538940581977460641724372517160375360107026493020658341511400766078079940688320126647327273688965241357892289824895244473531066822957795895346782145979094561936851872160378416856862246766177428201399747630628962588851555480897578881987262617267962984047887393567372247074169156116273972295645139244680685005220523915443913722882972025562591241649358231311266184709127703946830279241302606871008287962464590028695878890547260816140681151667608040105338576319383678969280866718683621384391398629444013145251518407351327874361084539510877421345518008089344922788194152408942870621769103065150051898233332442095744642797794028539278452367631417198529503950117688558453963056501527939834942829154521134502459483220945933621578694318068378782666180249665879349002219490092073203613880505677038382400984213444083000554483093238355880932665380372919228375979708721729352444361179784619720641044582969316799295147509531872649374873457762338446432843106332276141979324831552931028931282623569422313764707460490920376427633701116661958156016512978075534291411214628495299584653524441338602064907573482912787773412849010200580463616807406324241218221934552429683518349686587725711641315089231395974352073239313164682301630296168455808416108466833052578839386290006869209439470498602751483490724517345806570458428053214438967734433751393037611373822311516171070430424135064795152212171402047276740220318564189508294053458916755934579781080258802243608986585920052708544470598284039166925889448425282144148833381905864231347166793134080999452630009971079924914352355770145101821929931203605881814590318983214530137805877405185393999666341190453428014012942825720574569298500451140463572524286304873034345795360921648806147312526356224950331778518322291727927581404495901873185298774016994937136227335159264700095838154169292937971197327353984637505058005282147955041810965461205188705699051140494851132750643057284557058495642881981996313904135524249264521549405660271585053430855248754007217725487059272451536198481097681644428644928288722198355392626385231820157666143701304201230661155658247658551307479960649515268822825329605179222787364453851554150035216320109701164862857043612694279368909712639454785020993392005718531817962390492565942853438277900897768143846860648877055602998102835316420945339995574539539470045631907829753924081427461356713704249796947439736450166472272437029079696260222660365409756282177953986489245912694455719952407929881393998753510454177677948591685196937910166421741531348828561656083106370462622903557862838326933682343378593784203807524317019446418076847830202539228664599645371639073768151601873572265429418448311329525360846163397470090904073382989384074960463691744063183449181746776781919938617402517321424590822370143565102115146374115073846149873391540261364937301834934671898028960473792059361939916193291203310120025971564051502297029018304988148939097485375838531673503306855295558672886889887814294677742235591531330032956489236899161410862137087227301103542860842432917988793655456344160526791048432486634837157828424459555612363239907528027867108496934697686147469924562729676832458577495588248198551433364218471823598335899244452995146800631233587685257650972381214027482458020325848959850480100117130285241624593142980379217406393059360277834364325649768946423471149857563775175172034369098651273388143923381539565475338342419972526890779810358367979436561716577090324584915959343488411827735693896854293492234040897538099384369665596244576515071407099300762904924017200528674745248122974359936078169623619146050977501215003203333995526164034132987337750027794926593241055761879676921168271505307448164216026699629848232093506088320983067758116880821237581376056079989716794176002786813327282357384132419507510004814336063806057948350864426329952332737190696141139932150682027631837867158775475150815545519264132837287809150821726552720556461177608007460800928003572542055551473545718379769978476632148752835258613266215481110304036185958171946588899021963888945119988358350852500654454662493022357103828975730185604060938214399090016342666746107752238730774860256095191043250353509162446919913562681793781721473851482781576651447653767889654124079394536118799293857734694433724813705354942055282913170454937494663658651441947022260088614739170054728385966237239010889087253803835248328565378138178894141203059468257341628022334323825600554673688789822641266113750558207613707189271106484653221040987569624882940176037359923916880398842772390043746766540405735903498046141235904140193302903109709392480735199526511795854122256043325513463949076368363258923261548269200121340485016580403815887428377039079520870920211163163020772328762070549413309018795887766326703251189619360477265629307542925428871847126723040034946355997027099131998402572868797860270214315958313893671468759202213080655494148628236627172024250103230275322425615842018946374857632710308877536224937403811782953652073638188994462240707649161723297227859192343931595123106111025370807656144300060591148574583347194646122587132168922269635605026799467462133832747340241515812193521599182583620715651344480759563050538326312629916144412654662746081822903717335038387817953965974798147054594691308067542702341344438025730600200822809294050041593184524055641532366932056665846751471717227329099349629006300212121540866831396350713497583061004195127738301575763589985673404393958933255037515045143414946499133448834807138026873506684224196220486087877421411038930554811956130164768037407514303908228074047766566561050441839143550201892135516002553054562630104863717549194112702896394233195604405063355792857176365708681637001281619486772370134781488694203601412577884149054060915596979413840281181711633253841054323121000754433709207521436759435070892414617481071812826730263210979448439099890204807980739349448903024478030921693332296932996847799657780852604941626402734737321575512836837216872589335350563209493816469742112638189676460859854152697676449741036411238842546453955895832597874022934361797805189480373137862333428676377103438805881765109407917865913362029414896642512447785711230283233086977676638250411877660146265616462036097950950472263256626956339275338144899230744756834103002398999660684030034912665422311609148366298764213140867093836070454198464324060962852353599975052052959066600012007214793363663727303874994716409068933382424108338410592425078862265525301774871961905540712875730751065921780276964342642192208832511216690159159206710848976982542134093033893377697088839287087405242776773710052709124688697438978510509375540237590711001017208129697072397781854479604366754204964229505631973856809297798671762059156055946608662318192881799076129921775453264422142431682028110848689385104076743074249416007639749684476463275700024707392633289856563589416172683645877812117648455317024088695514329990491853276872828536712864946865035080097026331988529557272378149564288231662962098687196509519762078805029725112331820845442850574660395495797168280211163965095557536904473997176144425624746853739172045586079956211577438289280803683413811425536129496195370927348870959750235854513261288535202930521540265038201166219291759089100059822772086942267008640049553540044132461805811357733589187596670820621132452618811013772700545897291888346469720059864544228276811127841087047608340100217650310934956267119424071693877830062657839987378581176571585185063981506435002191418709616338179640102653830465204693572470333814378434757418572384672175156898831533989855586052455166181948199156741575452714944025524579777501701815388407930523155446132314668908825795560523029259873430478955834773821463196788489826506030934383637349430107921237650196036927119949357538055487161247862719161208322795305095464431498467616816593995690075740803689039722813996140950710681401245702592272204903015377968495718677515186710020750931968338890692581836231660764606557732567782325095563791187755146115427469100023846548608252429021223307064428531428051647782688297976891698275016911233972594316935710800513169938311031886214076805210965802724257041975125094718340769943440205460289259244646321574041810744875174185242898655675337572219818670583152223193370133244790865537983959156879194758814704592298817640043309659591759609446554325512506717260218469099348056690243954109863142658728387624848122888471848540572595377863221483245209158008959992072955235204515280113588071732764763299037940012260646379864486966907279185481089798804262106584037700869343495854131102369488445497894943646102890002905262152597040154010803442324815159910045356286232290695843883002867562434991695845374149662570347480931728011437699521447426883247669666836288182601008827513603086228611524941799547289238046165729970134782158286919263934032462065943725860212771148551314474285564819940021094965115589879774333525778345224327214926950612250197744150623641705327491443879315533292413580011332278300639548484539875462437970239488629234450808062081329343649258892673740756525222662102510529617241895083543084206010825706777348059874636994709960144294747493391381234202354300085122653985194078873877077715962416689101156076122854140746453383089002315386888320705487913770646859246280011621707244318541416348253356444185865045814231788068301771063366082802382429722461489712390629351390922191728272444202808008751837395157785047557871074167267876583882196313610683803550688549438865886897098441738842579810973564063913114079899930410776236346599954650595766225686785586713793543249059411304567456733164576291338212179061570535344050051959700166585365235574990311444966308012734752084121465539764182741393050920084762590981949794535062692846532951274198945716517506540766683720682778093128102186785531336599944395966114337978476607725695341281540359699763636813304128374120592895628970842191366988158171903289319920228423247203217527391602754029243238797538047258309870939636481510969252122756761914182893912326074305598629324384438068881882630360915091938389270047987916611425651125359099837982634754520097224146145212104643573920622406912041795124433313732358632867660903658414180246166754012984674334067810569394915407998724320994373943254520825915188605355895113020729461436358604838479429890735984277127771791696805848744022312017335765803073525561653337414527388610796871738324949056770305992161223992952486647335117961062807710973731505171764497633244171097645485636910950228497579001302594762295757671583558622967116834858724891039634619689743764192634536791309528387122010870946272996519305342479914920609845647913647516225438438661392669894513840096971770038664322731185694837812047427187586607454403319632564307009937309181558714482551384994300880039619531775010328457423277112215137775389639873617139811324464648529432476051116259705847551811055530642703280465589563399974484620383959946146038492493637275834146271135848145406846903972127579395770764204448896618812246045585256781289215735419605733717433758897748157118906038419683987064958178638607878509294525991706011917662957884829026136319247089483647564640386735172444470903222724727120920193244403868717190670262254807722838612606276860956011143605424654227701545888846934220440541877918136683180410542882104787359887297431162817493276770864496595368844267528043452054020114565107842583831681967775930791276115326215164763849080451991358711978612148339867064729753489329086488154015494693931380115652991507139173070935670295768123440644508060200731418885397970537449217876179372832156360660540001124021522629762604411031151820932267213784875614018285030719411568570877946598930988359260014699303380167390603828844202521582686008532731967990585147423273529659602369819161190715239038061944052765639377243309106461688483099077717129202934504948782814754592005471550469506849004114764985380578234518997345201136084048067250903264675179771620088582393642031653804893491452217469537108001567794426422543666821757918568560227355598280508715162675486700444526395933992458101376566443657867532163582138886497594004313775676179342056118875919225482703609193722767506443740381455135357555919399649687170865132234404683095129516328528196584219783334323166521133740814173715627125823351180749678745791405526243749461786958187657232249087270967875716357264253572892181225624377347692939406282310612701194306458127583927218570567557739310577107265684364674438649019295639470851047139676976085347901536858058924063465681084120791100006873851057539917176117725980077525728981512623066184123138865881719912534161416382454191688490117241520965944203857807598845498012126554721358229649807735816724233062625683278512067205261094742604225294254799279321112275539649040826849962679215567860923897447224374806500564039725950469102169717447507057285753205988393711714742767439435291631853600511298649915350649823208018305361848290749359129099504493919497885017551880794323120594393275829231193119817861900635442161172343638379734113503764419979919817494993944047642053271277384315836023864056606449629892563699887500101654609853454712079786696662979748950216437584802804477041612204679022478999249756133582571340538522252479886463631893171884776178847244198542000173305974322997187915803267032977195261091891589731900244175189809851028676010172389089167678363300826404807994352722337530076479781967039946722783444913773289907669358528625110870716990039970029309790366530500524498337928052132519989179701044591765825407711407197246681988407745919679748567735004714594561336498534154297315779608750016697727523853755958301970124019339898818469966351769529704930992518404771009451552350498215982321097926043191460989690611124381237662639525927440133592942830655436005991365161381248892807474740893782501055568108001019707511329087335864382705019459678439480590306532800944136993069455528370813942444716029292936157758430180149847776844724476292269501569644790645009227823489964661563413147503509436036414235649808351009730187815302006780579986622981122586627269590665542165789694151326664378703824994104641618126751019847705204967710473669435073043067397956154571001480640563920951065652471720437139178818769721190513305095594872027854541878237829683234908155425859948316311134708378047540231318173691234723293471651218265862703241816520316262969608669403136497408650057829814771239621000361108629017297459401755543763346377538893025168875833330353715222114922957418900922816190320485666802892804905859010366116672965517734203774536800802219797113321894633353177701223985548998953251668149164575455801566871654050243014636154175404411131420755495284846535611664274025606206307731496655157648902078555179195450042006907641089029503694323256856836010819829972007706492531489728295240398893301738021501250422628942700102571481677025179874398526025357196166379195773079350927520028845752296651751894149199180333604084361707545391137836733233561606420383520382422031681233013380056702529054602773272490245669587204868571278398397293652484930917244416509272444381190857839690870729527652325801003232692613202291792521656399609588848669231518210513094590804326332913867716482871098354973809688455971420251560611868495815227948238729287688938411726654810601428006230856054511828139164861656171468774218930490757329310450517746341675188072486750993919543563684090401185158526156066972946359562339883377807723261137504860651628728514650542549280570335463643883550089293966882698560175499704638145767006743316630229169259584229428746564385285099557436158826652972220474861838945490866633656574947809244840313373860035236188888932803967438055441755836478212253639434384586644532045773779075037697694051438632843448705439738315218910027505618886791069445032955317483599213042528014163591495024276817483753156425314133287247118094117444228112173133590139488134743043282128641529871801609130513456300249069679287790239914737409859197857907394251661928736131510871517549465491906881120846651896285323428266886713885148842319289390679417844828946447444041353203007047289140097374192673502038303970472045946838903909841500106165822167429495711978743994347545532739496472684953924991125059133582732270601754579942559214276553006206252411461428689864935293866930991860307501006868672698371303877949753248887555923697620044832724655338665403214037311083743391567058067302599452852784934911664148939525957548888954563105367389382130051484722526598045879547105612854650589189208933209527863172785546459284181659928446371933485105080525536549949684073468871843777612757314572669751990681064140205299552437096908902409227131512034460281760263369982469362224860770304557529772807074033377182044658458994695822200369141665743434186616557260897088258584707323948709205352859580029581287194479449678350937577737009129957783981129105504519153758796486714836618605229278482838687435432859647309496856321837139959545746045879114928765187079845633737035845150537102863475958789906724335392243252251163517763907739623017815358942011507042136163450432657567459573397481649917978673898381787656083509012000694377853911423967119339863657070105864962419292325595025292356785912799942163180418642233455030724197774235901009224381524602450101390457073390658172282392406745573833401283038220993392951364334896304071490198003750253918676257506952393751157249005283013441788153757872046331396745863073068392739634016839166541490650976143497152506813219986656264589471890564670168936404884663785230451618152928523746438038893186396237875024337515270459818169915499955866924312437311599714712505478424322367453725178483635593301513944358249499389881744065641914054517377532373630794064363213889200051197101366641704670077480732820942960033837194747321777991321192790213067765540908429918128486974202053643099130451443996341029194857577828726244378282167868208797136501575830332889682982886350295422299992076362225967158891278655637812289411815746422470385730912730061608135256809197675481019379330602543991397719226024522302609378544685072019029370513558072880221799755797660273916580063800174384678059012728268491844094961646874163787956313643968660976328034095812010509027012009254449641731271590915262676478612288559344093045964593603937105508461425113043831205205754375207661301297530164423279366920397036311560846944322920500803092271829112788051930886085409456838413794987533421296901400011967173918971386337695880441777168967802130557121505334828212710273453287308300579854681498711926023221428228365737671328051956485407719696591999401356708992147658705898610378092393424677097308152274603236863883274737520049149535305757455002011555587610881929028464834229112092510789529813254020820240190297621836039058383739565519875972986645035292755741770212277763614463664781817083342418802930744254083900024646510476688372185761397440601426490802353079709993950485350444484949380430267317801303130798554706187363764354107647136682048877544068451368798519154111774253912278678675001381818536537395984146258935396929677130028312642346323850187363934143586966461208759066547925825539300340869109596993655708494643822333395541011266050060703827280346752740323462165431717756183397186421134867324255766561173194085215111908174695406348815900715741791691078347004741843286240407668136761739603132066268601462644160660973274574069431926543131055541291276681158089623073048141847278148701263254374462438197221599720194400701556318344755107520380922644596060839393442926192957255226688014293776579437782550621322387081169265340017453643761766136610006894044540939678590791370515242299637245377257153587112128082289022874130319587893764580003133499946141852993418365316965384237295484137175897349592180720948909705710279851781365523052155715994964537175847904808933070969730458425830198142888999166158650817695086216842506307556987491671854025717967351837965306571250836974670953579712362985312593736075310479585854788743166647808650982522328891949041008901047528732311825036762457423780884154580801414811064781963463174022111311000640427692096512191584636261776142776000080400291891629132492863289777541888057336200907498834826013192699792738240744576334580340607522450543385891260776083014314593482362129830186157883616452947684605347798097880255648764262368245423524989062113629668812039891597756880560691437074881201047141152036914658230422473288511789559231571934509353447869615633919258454699689826233785054153179201537817943284054781634767573209305003291123922526658854531553216315753688304466399818084916584346486471601708997946766263907231075519321601666201665048685746288332629016607298620915485413786170467072171018225255869514185734609819303723071731156185675270662970390632797878159701346320206777214940614613824925934410974736241257159080050101176471128916554702819483749471484919060465811610042187278263086740692922519272258245292095184530257762250009991308087774117499207554014939634065835060567287126014208049506169944706807715744419154366828566464394878297211543057612171506643844024502684045126619470449690467777559701029332018240701332968664339299876806322174172741841974592231470372532948639071474976697361016712819030651165954582358599530081626182894901776980438576085080716376316428920401521874033157314502995621422198424015222213199541761264506529119362367555091936848989606380689750390661306427588826283939261840794199553338239062010468922604735520370175133565343546890725816447388751336194594342747454114888697843198291013740938090225920027207688503058614319278730444290304942153093343258161827128617136679440713871263071083420918097729448583646520465804072331216589522252378141408725383434904387352822802881347087888173954046573832477534513220126652631772580260683906289968042053077695076630329917310519752735009642391339592094265086337853369316256483351655095915607509270413782984145808686982727174544497612962975083577908157581987705389111522200446384308258941358499860759629215839922290601864922414265543301692305246584431879949844603873394989180297626814911477200922204072042990849532114867980076614761526429531337400000693755119422396634166671083264722098966996511558068484727953477735943997599077337163279164867784920416818335682132573742185895101889934171458633330992308734921403155428636933165437093099185956216835072681688261195469293164509970567701309070910069017869967208992795573320899894700734871149460287220484751859914911389509042448624494559833443290831178369024794557840619672773534355949830458586862493546268950582505730612568147224474090587139062607921750514210472117357901904863078990912292368546345941325967428463522723866012492149373619869702531990823296776109461804323714463615402740005496941672700032565961806942455579751273555665458918826823355541602273836328948198335554181834873990726706635236502728470948816717080663348004518846356625767700906743939919117168777155939966747354746520660422975384170327032430272387871504071873652341235659616427984783188720954571888942375118625292112685311878163922263770746090023973753726087212244517388604211296645939211656351314758920394277663976118985383694133563904038980656037928680170862003488348639469461436164435684451303471136967784956584931713282769904372589742970355690125231129725860152820344546677471709505483947593122268453639176085176431153531184154779323934238732767456498365180805935488289019771504329848381622314960108029114517927084264529128661187973727078762366888506310303924290874062349854044345650675182857523766227295547342045763260155793795190387210403203022368394303031505263331259500606215143164598291905650214229861202900031080753751023735387471064124066932688785798174682635243143173276490933052397574572039294310281764418264136601334165908372473183500273242063982361696667011876671266018074942796208662534867589882055030454369613055216311780450769684378041879876598771278709044484378317697546774956452262571335053323595569750421552790501458451533539876086361394432753753343709213894805573929608569415305209837368298416356519075414545437283778214539326209624207702240049984963832957065792186170089725486155708136681722431186311449310139117132048072682513141035954180476764780918589230272040001425718377467878083648920879086737990080765225445376727235378140117259912724178148947508825601019523885920980646661756901178843290521200705682949569748940690221155564583172442541465805794475371090698959539277526327847160275573034791088873653615856495611963969355941796151142501793078162905787583972116715995311683054159988296362361173985517489578168128136930373582009039178673033794435413273212551824402354344405588728280273033784438033381341179562850807208525827365729834283854524367981156482155024967851114478153542810717419132801897039855791849237378885332915654252851507383276411785407063762242843377614469543142632819565602241789357299543661991685569498414997187566338211465147857258370206038830956275650489101601027281192042022964996607826595075230207862655156958178190169633118895317819761512846704458958185372461400823927625181419265060564522211702736212673190840835194416670537172668642446120956397154252031773549275808849445395009155669008532114910948396658434690044534943573568529747358974877448945632491665907860641351283896822489321780111063669445189455507960749652541552750803901343769544522628581015744040512255025796335455366744442676967494095597694570888660515037022815635490776818178766347773774758219574453689593267708646857976670470078198174617413189094778842211845066181088063136996004186095006741491294848298841522911642967470110479114310310623876283771387534554280768541524752324404273429390412135708853356732651027213371560209973333742804192918560423476599912898217386094135678021462056827018592858140883303009023435017925823786035301816772597330420749664650603934036417463091246239268300264040981791746074820202562325699197193119978523255606689269547902665672376663791088529742984588221844924817950876868724222506993283540878538536823702456414318149516169486690678468944412492253966506496088349893293099966631225896508921749289735452946422054911624096302414939069922465328893896545577333558146061486327918350407090886417934614699059140861825129663398153020602488756596548949108208844698463453935294066961453238074635541820553477974051401719569268691410127723436539496640750298679853199450915405272599668655448369394933175636114805835053944453638754451384932363542163970222095146417736157071311741308861650130023918055734288195212913781189833756627732924497971627902810491430120870708440422900903776633220296869842769509878019171096965661249176882297626534544156217735353178685345271589813380293883032966881613877300080573194161732600754439087331548891252642406822452094821417947411242354246699566179427190793160261237972822486241138422577906534501538908495660887322233832151561483659412725321620195373776691715430678716719468813660354766455634093659611255414692917568432634160957915152365028229674920845817768069610922329566527903960799081712498908526443080860301295090434135572309356998385478643677206880348849672881533893815382700792344429205076099383318394114776937922436032824938900540254256636775256010748579673732644912153327150836332401622103620825454510037535421944101067536682884249431116770816030593207034802403408124922470810097177136410421660103338106865297909080863562459355492712082185966897297191230298367895479753764822221875056364011914293974912069731595158794589168035166758362607897505725439046981856676834938023658304367371979014924335275784738564825063422317359435802296744594185577362312986526226231207658616597764788696752664474860847378942966331136046879122662675293102531935073174793884045460737657687969778912267240060301529091921243435246732515361845266812696284668366424659951025550104232010407812697639853510333678127277704417217294890173603062334917181910246999707781528158476749631174016166545214636900119580036844395727048679353880803758477349379843097195507809349736061314170172759769779921748846995425057508368214614514413162656998604470116332381514449942068718785469997634539477355389240354860631659070312698309105835448496618547584281883172613354201953694654037083795188723417530233924668561620829122773968484374387199740790093545514264465835582964077928380598279109613885600821892240946663764920998936753631987626311502872084412340017232823043220110992470677686144290801520781044222770801211711186747414723202851821779212906979562824970148848017433200275434730332241452590790939977319995205759500613372139491804474969677401228404566118824086251646025201644425753471399472544221342518090518927912481371359488334528949691073462041994758772283313560683894400472742116645710950629952598033068246076445126338459987922106210528836534846033329534216001250178352070234065181813641642963751493147836192859561763696973998858138449004738754391172228836938598397296153976509808740867496240793786004635945335303548252548810383324077601624634679221694282679124084645764868722023243136266311531522321461552664180132683594795874334780090690549824311620020677849056974495128166689193671367690697289702305327362954592165829024020676949665961836919178718397763754956681625340189852732108959964503087846748318814025408771653534677909363466739105412347418005659051219814121514591205399110035971168108764816245402161763122040088627163785643577639000806014461716989959356126412192254794254384193022420237823502566238306361613683247752650649099862211513477668866451528966821993772498985085626395192754940383963765747781275248167419978784990312351972196659531399772872788629987171833475860126569810193996610928512569632201946217836324151328391713077220456068334721905183815980238380633675595325843103535333504892481677219999715861370760528684974953567166954233885071293330581569536094081091143763038384106638913856353973012817648294622419070832254907157958685246614163445007923686777312907880031315314467572554855255499980707030338083658234848947337053901304978802809035131073559255071292556546146355627546131561425646085963512246171187798509481420038919416871685956524740773675812833996023787064810259006322026245174735917356524211206721932277791917304061915987681687711775811415743383852970124354812702362504848652499396202293163917116447793946357330385030992139720541750996385042608009187976036227495963630062613285284333722921366477190333346107541068114984564241922625414871012118935560879666273768050841322014436305189868912632868586563742608090318671749632288552365774481189806413870773249901498443292169440977465784515827774142211820323041826878223272741859357845215511786111075956762683911022692122120916506839058362199373450440548716576598519249291483681961562194725819532035992690806684698362019017605522993205610107854415510794294573040162182637628349257075879139490927808586096031248224091657554619716236948437072333514259494223939853634034890780932433724113236418294251351501126556269045813655864460515300685196850536686857784077210313317011670821567660129461536398337034872094998068420638698091193963258405169948748608418771579241337847366392634659703318277772611294118557218844923834236427084150013729210287260699077245070095573758890887101407101980021479737311820625987274921319663956387255194812949773271338586457593803326227304958181988368509618363315461935465845441447192342449054348375899995854590424522781150390438582888441740600129855407453300926250674022511395566672770459550849795972605338890434277196934368287347077682259050480505027916201799764869334365295647065897496206861284453798985534771255131149904549688150280572436708421344242569264866265790984940621977082400368477061779172131742261557262331892268857670651716751634731617083153583586710218419061675943738340305293989698296271903033635807056836414297581451060129206350506846233336354278712020699896237412481262376253035380257782788875481362756547485006666290410496797886528531554405969075256480705701218346643174091983520687454594896064426739403555998546394220746735676639123257848629908489344383239682010848268616040738345405718140689306144861650532704331665187198263654682085066051292157188947521041261886483636155162349970849350268218372345152839630051962020348239182194511165825508413649929004132069166947977199010713489828598712488954459701333126396911923055819463036060819034484138326115290140330420781100925462803957125927537544201752825727583691360829565658983812695512274298136909451886980859625817678620234306300741115036896120568134349708029215937171306090105150958761212347250919426674984159275937927635247004936860982306080183428547022156377265193488726787766967045580335985672549065638536253622120360285590461618085851773996225503067204751583806186267516969513528380791993172039242343444362834889299778595470511789598222549678201754637505832522760428851451035459019719389412736963282349923008739043835920021880226509636591606001779017662693738852770983913143637149509609530094141796559329100207860017746784908921473128523954036450377946287925092152675289048717961004128227294309587418690260850014588664143889836019698506321635542167525581394665007245096340878896173419024555388386640999927326399931017721457414247034513586235509725150751413725418298139664797566192500388544233216961117540458276251008453737124668405817121814169588963967313313794971237683391248148199408860694445487723767165098910913321957418071896964048808403380413589459047079178149479582438096908118025932866078994917957556754397720857807745143984878365737079374246026039442938945557035902821632198693301754804020823028868191025602523365398335861439860807368736233651988690759690740066945642128006573396702265180332015233509941671758567605623998107535690541762086460331963521853282658448706366805524663918420559500099541613668693492073602191862535198526675892162770756785776887323736260574378082772407316913014969606620493485936854189748245949682274951190889642899354624194556722293678675890729148890595137490552684945148322145374625762500635451281134777107513934112680316220497743222176615933069303625498747378624681779015446677176261044271302386464990590958984162098690303776247725543534223408490358037677265761740626307918960798270828070131673155739298531817906803114597020107575715768502704651219781409537309966860407490716411634436645633620721859235336801872389687488663057327129583056364728631820173910685941491712318867267772415589935056400092737672982049410942011153020086545015969926141893245082235757001155986900317114775435567673303534366427871609219041866876503036722419490344246385671577312971995650874159610707997763318211797262758650837447529093262822145141066193888245957637169116519714602813943674100301385625131282496612386830881716861924725334222985052652848351801581230361388455641603956904958355875167669424006192146481986371610859483367161440630778821491574157346722369233551606433731829645300808865860730628753445632376175469229134881500248374639531751147305776474416879733009918610634749734426927043802672792293655398555559332073439612552212166594500953376551973856165227949652242229923533177490052887044155058249580491274452045335899000688578426856444689025937477985166038466359711383079594294830535813529974298153061440013158664838688592107122254196751349119836735788738510912895129033021869468649953468795270563027606288944133019936705504903624230008281885564071017456773301098814799909232979091063677058388849465664043736735103594170054085223000606257182511579291602700268129932647119596276801025904255292780541808503475882045357226493621488883883469094228719131745266903673726260247320107405599253082635252430803296175352930774890485080482396067522089176009384913088414616167518222115134917470451000707663038672540064804631341143901268746349533912132955982751594515158183843515963928297593716909233560814928030537836847866570862307826210361660004055790356043414952014241391805942134324364886610938021661501975763857066103242849723624871474131177807606546526744312912284163407233428206415087677838263625583154533666756364049955815525258937024857380901722450007881489433963497137614549459700574207284542516117105118141204549172254083503807423521329304452368784759971441056859486159058626580036002727217760727760087011799724507139355120158823216655864539876090857578596297325612958123183391676864771246620057465003812118465466805441433034887105195734913728581853719516901466784829113726719941069803441330362226853992819368565423501241490522899624327966563977547640060167103991250501135585332965575819343643475948337346958023021535028660829105448149711269806317597614277423393876340440870936533161801150562914495718364172160306309512010752460974689791981525394400205545651780744623302882058013179614249706210876842435392874921988774300652320736044792621166623775623541055383418835480462018544749453046257653900082529813702699301377588491651052964917727484409116709670697833959880530147417788301464856667154734320288232285575513451225904757041303285361044595570448253761945925899726630764967718093934181003593530852425757317366313769020722847271408376288244854855388277861169648119403493090108036437918304817150120573146167034599280842264278456245047371596017262560464190403385064734932284966945606542050896772918469164570094565807628956715871963529990498959527673345420092340650508595346095511778383959838458670133795787811245730065806151843824203972513036352780798057557946819157782605801512677681663925951169651102762325407940549930790907875066098606264667036948149107715074272182551737628075821086973078267557947007943177096269931064112935254388738020219224788256177982151359418650420296060566442699410769238096113262559304589303204806555175845666495293696037912018150952146045250838031369792052425910809587200023898014935094585096667776082562687932882230657567191113684363320190874110557369232453625964218761045433584056949126364707032406225213586772251530019221402515444999444180370688294498530764976979562075912314538375843442569823092149793841950908138594269300282287759716343600907841664047304953489836964365330317552567499460241283219937866530785660905496569942515998296498693493882438912604289512338400163094405172966380551541360300326216146361361837852166329262458898283422230732384783651815567434792451060883852731715219364591591392212489154832524019908210538655033796893044357343287078926137847152329978591145668399249252048047332325932350131463059922204647352962615611018773723765306171057764008217721538651553877770179314766374093836815787771926802310394334529357154617668098389507662230799428919395820347167812491100730235920987005566259537295797377267980202298099664993471551147403178719430611916328995603472921927757803617119086056141052419163921204920915529792618014776932955059491987618058951632891199824856371592587796005803617307430621330831728962605770578693212689272834260231061836391529200741278565796481831684906037387920482413177494814822645147171382556141868077063733793717949507573516212339144405189154096019869003008500790534175144860987099253397732518099966731640544804651671366129676987426995339621963375694555838915853344330080087516683463107438623872462235669007739616243457422786570831492535015810869379092143779506657126755488019574965130217594984245036913356709780258518483339665880234389614342884951009492918238240873509997062850911606411063023314897248287886477188202214519766966692253574387716041623591543131550149381219310034879834310220768608214559149140645130035122098385331968513526628065587686350077811933756824194226609094885246507540701426992737109906104724270137668177770906861421009128243675210069621142159359025862416358153242330782235190328364171473239458595312005943078876017376612036780823307353536421765603491501497819297600234357092717618141471065990706073488201202389508539122534974053014626023298374562037546205503339410120630132705113470446018547380921769196447119627150518898916600340264811749191436529140597751225543336206406067372755441734949886329978072950003571774619516529064941051520738074982021947555843707736682721473889627694272475718958848468253666465455356755614449729968070851985349037204912741324893266525241366508931698712087746725295342740537419925147965455220298877728003281689638011465526268199841741067618757937386586738653422799465588815183504790366508964989006754715161342317068371158295646856466244463046795372300124940100835267454020611411999435920318264872308254029395247938087309554218850429523429302489107160738104184009583485343558797597100022948591854372093949944922072227565415015123038693829374309651143277984615487018013273789471368347795070810487048506906920686720472648563581683675174087121023380688262319363097829706321659511244793169161686636179247125833662881208724372750662341238921334255159097727960146327150077218905683092947208845687804331717742274646460138554716651249490601674235895183732336458753338056421874482087951909384391306561169148486356051899021483322691770098794182918151340855714444757096564596084076497412450010118895817649280664743338877693789490461620406029202637835906634070094293120367953483436062052324474968811614212302548529803154489176329728362965115521233208990344218179920313987066452485120861794672385532294639933477147821825308104681769808270050429224875120801857152846801876974027546955181593306071153412566498195983250160333701947900355282483002539691833654028453324029138889271435502593515855434315014414343992360442595181016886343202478315078738822845155432174966055771630095897294475722962355614089090750725037270438409104397341049409018756267458341312281452072475218703861176996029254646912780737562737479510530606297660331919698432994375906330893406011828644678435667774252927053637517702442294813329162548297859039037599995772294621500771175025318215874684717245478110648597340641508214300075388360305827808624064881408873291759465195964786208849772858378609084732653637052269260897896970643742659907611262706803997013547399569439869570043065010067602043744623349428947623562901523129472870031480942886904001639663000660828382099182480054402072670385097329731683257555347188945260782419215238185199528344918663010197328148274941680147394235099739242311557481900228196541624504749371033300363659861377493419700352671057553705386231696052551952581149799982147459745770226099336422517787994267749054756916868668136354269636872590481344505941158795056376091182921271988606529573255060727989471051192919377120533362319424795289580114972882463300475034422218214378303472839142240700943315715955325509167526572014443755525707993304906575755988810497400557670968992286902520895640210631736670995069856124874174116033301345373240268131796098210205317846225445025284299920907356342470395938790431157131228110757109943576648630780883664932183519068647245906076565561012083486434281038290741038165423760288959674059370277565751098413978531525259217305904542453785808436708459335160337983320471384785318466637459586646987498448550828686490657753278386374640342130654706070284277975317741467993664549934739516175961147622690404427521059898857179906990248963223835424750184225948307346304331282815821290486877636933541323574744658958078024296771805635997570763636683284902962626830650529528379736477406597086110023106720315661688062648948695403713548365570423992696813314019800774472460444285737801071828797826610424066489313844613863380569934267922480330581678700246620461220417579791925219986207935768830511395468505994266451669103730332606053983829293398466224102457597752512809220616189003455125460232224598833811003181004059320912564895179174317221038843751164292955560228725588052917284993348481402059855834269944804043080839394652939312503353960427143200708766037999479181933566071443105247387887436068854098729162849996709921499456691939974527966171104472371728501959283285171216184472850958072055786888118850112293681762446867870634001322588196248903242371999879258753393101695263310213419596419485152371132600894994309503646718424217954090737843368599451749978138499049424016011509604755391927901040859448327713772803683277852157738846309753295900873145190195733358015571242229972344762416850774201490570511734727843467407699810973986548953155154128757103864315921578959006811130334281768466085163936900944744662171018546256101494501719606155590369064462877680244788158622795447032696182451863562356365368787841203126931088894981678775415909738722678445235855830015985436640503746549819305183490366880166913863351141789321091766713701121327171916057549853187678904447408702899498481636040687481724738559649610989639184466544307686258927380717929122686533096816047910892193698601974143042518343057367045868232022645227209692723942103207823721694990347705067896912222665500196954199139985585695691256519303883168301553335112645390869745871741755040842799517920875629754922254768336404277012901845950706224219470413010114922180469260971345303552635799649125984356864451896775915057364628619049723136799314567204558310920859864530621176504453885018368376446895211394334796160569773113014515081321007772966536919375304214713664145818623280745684205744545966264407808960811009722564279669574475526120149756342131214458279722788600324796005050005225179825373063153088750558559812347311320365705468346950948596277344001766682063373038373034812256840317174969755145567205042947278424760183111251947454335923931476916579963995645122054555980718271210558835161423451225684968523335028465502229034781293262157197812136896409301557065075114299466158695500176093967881386708528975558566997814693855710589548003692206355821294866936813804771275046765162886454673558958188502224794798018997406876104258532234439539474210560657512110323337373178374554340320686749365081913169096943657549393226535122398532825087956231110058527056398723851190702400331734788219851787909826558534028784914896772971737224872646768353657645464995877115856825172426816940534572068588431801240271074090680285016321479115455911311380258470070160746151781105445554983115137941525367287368141532993162555846595207539286877173847444620757874784056581345331669131563292433877893593736568958345470221097889696469672219641998988639604893625073226077404930783451993914242393531151775311261335770380837489328437393572178183753815314031949247250513456779015622211970372643642976279509201456529991148656613730316644101968449767468727369121498333163714176808092526115691466588796295731490509109937129288962668421668584443837007086061020000139409852725673175842169399902143923782066264904948060979553903400951217362875888439210360095269784364552262962038612218112426047501490868640040272645324755481743591674686746201339985218156994594267519205597577574094694016859837634119074369295030049541449795385227706712260484307244587226306042536219398534821528556203766808705675887689773979724450646853094203470823819529320996213675830832732952258615503976677295724185482587156214163919253170293121840880322229675840164442491752828521151668962859362103603190796109815918825459110765198409314009204540929579692294153103235232311290396373213536400057135574830898383162396981056587314450504750516455527841304517792298105546180501863261954892212136191791639136691159596259693979001944373032354273906511801357953302456721015707166093879708042491054745221229177905474163111548080890248314140344542739853705431929788052314773178136206228887362593119206742288636779085987196030169750633276332538577660539159506978129211350558417790785387192692207647448528026927966584033231050094469822905866985608037012034677524728519237588478189426253496881703516381233254515587038934780982048601592965191196747877281168161198166640821723181854622405841005203112901455190396176242161679800989165004501005995141969668453110480444326647767696964579359051256714029442364124050203044434128087233884642126493058146884775830222552698957398591002775744383313832048926321321611807359785478342575182364847598789720680171352398431170885364070193808263688228383080519764257031074856436500035994769414306590075458342485547520155717945326073248100740056983702557706102455795390559134879363234297074042728324003855303611186117126430625850146205160232780243920959430804726822386391913260262702235473709424954788776973838477566282449129662493622287424956238031454660987305405792411059480862383979263730498998968200325105183854481323388553409953867440762870623780458924400136473802373954439377240263390627618191523337928736194361931462118204559025267272998831104971060283931362976979417264042859627022897308295191653682626026828603859197139663557829621753918096681496894069849902910818363815830268543913207838947057256825793385183880632115217892644517972690397176607838995551548179518574123319652093504420478893138742175206687335452678423801275089540812929721580016099855275028866076857358357924866348324655817040439536561760685972340904914432214385268924397070544771532735536996621578978633828777868834664172787863188470796052489439226794086764085158868615568320187746718310665939881642950270599136543869649798022534767789692812274034804965830288309432034408403600186390741225288093450261140170815176891710733769888203234680269865397450791160231374003740382719709939805301618535150319717386947007068727793261753342525183959857023463530392567683565497107207756509228713291223950641140341801696063425603771397302124018344445392831238108088110236505005632284218719189223724799660454165607825241146180253173002096711046304573656114669868976121085014446143530634014558872632884131945233437683641948075551001244435157789492789873313779212687307729009793987976732341823044251695752139793191107867406509050898263190694598745853675351895996841748925316778305967236077041680098048619895617540625587228744850601341534303208188939580718895323019346131369125808155809659181096361668828533102275375122844522419336469565015682691987567308314557976330717451274058442497446035266005039127428073962286674133446975582499096498257600140692137302621407092579874203812520405450233913887520172579291684594239376280596157087276097677333570479878724402815320664625882064093578263256692731939686874250250100361873110487729110112437220059729597521811969873992342946307519086856176726089891076894797150488756601872603953820812414243333074268877402843484257917596996339739460382716984005855105679785457115899162747785305799012656265138058441108954490531808928872960585684696251767561162826041862392370474805834669917227449528384895177287473078556159880524370905085483586993296099211205245465504592601549183157557165815303587947564458116498378194093258022308935756008319424873722116805281251688551776269911578592526094155247877047269097997680100101024318934665412227981898761606773773412331104818270610072639661103337779149104295689956065132255221836314977382834955463051347470466520384706073355781813949860757394771301745601107821269940988948364609229843345582922060771257418474893483124012427980429876682999649943473883698739322871773491555167611760541992730442128873613875634371896149208451254921705094947553595997743624259863125520097827940870890343158960245497166276881249222875587851668728368527477477628301331924017544105030071283159617744643641671327869793053850396467608802719172520624859222962520789647689048774571113691720045356167288754783526420210909818693518180309069821358242788938203981558000770348335937722300777500803740194212337628527481003526676922086383719002673636997614982055780020298364323225659060412382909570342867343834901346279574088788949183100201070843766869238155778133150626876889516669119254414576671354931353387712816815985442355372143395945441876919483582860020566323223754754100745616810119677219524458629110970635099742149696004427406707362241829138491483816509710904071454723142404038413123088333776451159825703665926578000445833081989250501551059488734242904479571623289158174976417625380784314714222946299255606787523310719379996333813636638400893007516362793492460472761711957536806104114340372463732885091108334591704885795227748580539865611713928601643098575854033542460300971222355603441318968826950026466787717418415725731206911139269545081494882681770051626467091616056944151553350967226951361196430799975883856301647937945536508683049681208265055653506714353225748151868366087495923849440615587690423958508453401422098161644173791476480674036520268285420079056838537984453195970013543963916234383043855718700600075871750725010365435213962324038736974867906550033224151781724819862115541342414838823723784133648453132111866092805464621737988040846120648102724882140198115191243920700771689091870407654322569897821518289422506238269888764301847785708439362921370281569189037775944078968259982092243506310946445009178245850956793463668981146246089241824982727899852274516366325457319721442370480940018378848339636289030707377420710045902750478243602189323469044281144874436856459264110359963783164816068358209890209430141713024950515487748063248249319422818163869097811786626661405936096265385778743294157844355042943648440585389320666102328935658439479832014448890365636847113821275419703384090100847265314562564625832680077255985027252068546309021917875387325781883081218221109628763143147598644837892245379874984395128042010433666372420707458502381162801147633876203951607288409624632493607741649854709481926650164954423276181142882723334983174534102628361939495941370328402717588196080826913605568866717602982726109180294451925622935224957208519401653976767589195389165477093723108558822305507277259134707268186730926466661570879938728912480984750925201227161793301016567417674343585786436024318927675921130589736476935637565628430630436488211947818478252606049937849011290054256695380249215821323509329903507153555025701832256515849278532083818129892024601553491183629992000028755287961935131773057744669691953247439229070622290375390144276699857424684369676608661023178561526843036795585916729681613811890680862330072374456376938372690456763032300010709134797354985031816013136438600222807857240517943325553608800519030808526177819441422982296555567544702195120525886254937267584392433137307573563543621030018595844675187569580331668883147501174703666975736257328928484208992003707904250732877065975991637263488701936039393179705428193429943247831161902327916982358290801533054881992775415415796731549524289738450865208908235073153256469379042960536242267003054475268873438055829896571095356505969960257901985581923102692951852987117327984089169065750820623714132603353666363551060670431954752660806695602754994203637998577861074521789679246120465034811172717291213973430553742816990466312812529150864340610594389342933071983524764671245662726657442853833211425458877728152180255202448394104338642674358755003979144293062577442088095671090757173704322253419180866271232449504458261990314630442553870240218034109966378426163373158866997291856782930254435475985594516625076531266382502702512330697882002143482907453683972144446550332955414888988557289747785614072990757007773838057896461383627250438756122177605048506751471425441967244729380448652697315120589166225716947984012559387489719166892974137386456057767895401839208484994863155300403981132569011074485560209511789489862051276040700799969225051360225266689577198938139300171369788396571127479468493402019813348557865368087209482360761718827299323031277559226116733957734704699430228818731618065547405718715461292513541454583937905548990682629064009452643119768354261924555064363829306047718501916720486547024634465673014172047962628061870629494189609279850307355137103743126998372384011312706757341216533211552280748110785553354748899677160949778612471071820511405839244648323536654425615508793131152383465315437430865568341061673381468705273227272228296223659017210105970029279263488542411075057995864850779506715257569657981983840065152353723833134261812855063282479292913747581364742900981585885392838157439852174844241244563393087716783864952300296854715151492027859385362846537699928284360555427444903564222414123715102947530332579085953448690290362774457394902806515478789056354532623031963459405017795474601713683725582347120946037053437348546818354209398219939142534988139456976399747024963939783406527510838172947534539115525637066662036164461672128672280968078653359715002398678544190260716149520013355717797727249216778956533574028891933746740773672987869122677851740390339088946672687059088373613696073377336760920847015907490393097109031128023467489789137611876558842804456810540747486459864722805668773615643502679577929722852170630804773579768405795242056303327126778198443121083956580629337944072756864309804811068042793247678141980279516781004567961815691221328130388288446289236457455294532729424542251450989960612034071091062072641606457243119640591167483786425184451060806451363649166877646999148804312931118627707159116620170772664890338420168934601456282384465174133079155525141527392716195735872562512737906457958041500184558107415171499343016640384126145548209972910558335282875456636553963860293911026814462806032771014784614332831880629630291303809272756560764690632114032093558374717080609580057311416053179643957748942990934013868454804215665287185298845798853447080089241768578371872277597199129980146243311783515191203215060417085148537737965538131387402545142380019887214956531339499023327356925660086159129366372028262189715280274659934348852280083253403949892360587346097841936383882762885039979864970207408094680650068885230881039817575178598841939587345298659169602022006498446924029506647919752757246188595143938788214473112521060768698809243150306192800142340096588718598047726151448174030843216875200508243113174052397772040150787003386903316779165330183530455771670403646909441169464131682820778661121769735538606286463081236380830048725077620671935443640401468313102196450778833118739313630639313696336123260127575424764833895584423123350128980678456726193911136769558902419854234827982911017957175542096263855913591451042780804172591831362965806821007401448811538301505426116267263704900693775272623562836114082550588082103789725662030732020654781403626110755331222683568865812161326586126374309595818392257075287563228440508725695629992131541330263463663289842418184675470082672432054112144689038387092746431518457488675665409478110717001383731765280836164694028784142122991369106500423448611838410557357721330300678602057360217416801715135265576960192729269874803182772544414148481983430388904227143290744750293039616298373719013292965848213589567258178821949514598630543859147093362159068021322759222089612527716635894514638038079167540216382691939913871375161730240025913049848404737974303119336947718306607362696919050833019983098740324465371177116049318568936431207616674448924207040479696520136925866529701499032214774903106687011445067780609593583342227815401151943835331089487216249774484860639697497370113018254055727772087788849193459021406709609203796087622386486529567510439494346530234858131902227580013975887145422042663774167123340225785004550310752889806347507299507720174654710312656863926172748336560191698309718324681186447853479520472960802217803692568790333102756574799537947296589409924128748273846931561324369548462362381787539740261383831588878995382584335895681370666635295655306513716748510539793772550118136091291614825522265451028868013698864093124111029967617594874258760787301866407897394900957692006558887995059738092581915919364921951824422768777676134156308861526506693830174100000813632221984882894428678607725983781107349229653065873708360561274124118957518392641339553626671714150805775043967262277975365086153359920014542291717656476960801584879232433531713546767423844021980655293728626835385018601633476289321045146003528604420674541916620341842719780130262660267948290370286629046581204436670715653037593381877391434504387917796830640655367704494818894162728568615765726132319331009499031160923530437366694983454503208587025172121020288499346474312881675646092691422438786523052475421816660151477444931502194219609625922420276670157381849524770947757336756707328200396779219210069794950549174672973775878568877569317009922395441445223631060516715291512997547048120532472988816603998598743349568784244739076031030119221815221636147615700144691602944574179147057089392362013380779939428812114165887241691768692556739016439749904987634329242159313460124525405398541436167503497365912457736559787632738234775260396596409483260200221607087365072050156357879147139787155144325221361469240342684987203466669628626296158179088430337768782372251386044801660688082373504524878051010640365922564846603222480673504622025386375324136573831503139561912320700788307422675766081291369605795549396553020214281684650325653318039538738311520281219819628941979981693060359979506266150857500898941350485286290562038336213084840799984681245332780864627934820327009955471802763386978784970756270455190912416956755235028996950257542915576850916881953561563527984721425486307328846236660579837023744855994915794502095750670262301586541848865232937163929101882726045505667111942226954312174522400289286884226499476093624854577698394329778370920389531395814878173347916255053542167562848974770538253383504300028495553126924646516595076748584870305552234116102481209447821127300466047705578146886126522488823927112612870608421880320709346528971073892132118599982922992517799963467412769123995307159349092654870766903964725242080233395431004151481642542912810124692738256233745522196391212462343083949845555049013242905492590406160414594608244229122660507999656761119272150697966687499975874186983779909433040392319193561452039607631141845648506231091784172917183527376365847992060797790003357536405477363582909243030328932758301475037117495681842375248412614693840394988034804073277571676643173250663800744277336644450855850443459517751963387893740152503036413167649848699489219442183716094740959884413275439076077849688751636100198176757236339552720195140515121877927063591588282627143829535562738244528376891986754225140920087940281747270871348387024581433324212978837596117749787788255595386480104681329074064992373887365385577075173940273476907226754798450961806567549098096771560471039473908590188115395735409068797139870478261948525647947524794824711843338554884267819152964221776818842304094202801215549584669199908829810805108134490263830191088760218639723513785565625313784771108511233522280465998336164757304963312069555169217736784605935916509683483818854468576369642566080819919912741838992402709151433830884617597755868332899236719655744637550249323417781364098634452009327157564589913705700751107842305744413881071060053170673958490986205962029679493812179299727494754768424215572735616797396782268413540793113564686199418573127003998934327282737163019334632307913841181090492274403697069011867919215682912287483991106016936318915678991110312216716934935192120003768387819928711823851578981775441672401388204947079612681466116398340856585267906117631446926978633211359509294030485227123580997687435171581150523254528953978203167847751679921482089596862978322503034784196980451246383183757504135101753865372421118633140779641303224278702323158850979498239569547844696708634647595730716075570292177865513558748279332699659487600237144289143061876302802983321824188135620310981266979616357860867916595022417109227434882904683467781235358382284991164282879806432439578528309645474519484378295763649503534210523081257549149433510626083088687182134590422253183760090815683027542948899322221416669608020055969463761138842251391943285158504932851581413422625328608301684656057229561843312992227448090858134713220973824686350218846273745560545159024119235520889466814859921685763183010192981141186851142216690036948411307817585455048502721615590276122729811406559351337406604295113311606623454541729768488582907888396777417512599891496539404412012155510493094843042246047601917523219870414492662490966351283716435747395134308957054191347686460683357989873537385973166928766430564545075337280687891277792910150467851108589211691882220781325628751845159653260024662059917807605047338234578945718442689816199323769954062967304133340123659702296532151080664683947140290111722577637969167163154287332270833877555298839380044822418251793928924509723593945640198691489257160018407145655589740846313582683143639757978312771559305411095685702103152810296902430895675597632935483303401639917740321364042424450044604549891519051281331224272338868647451102083036502736374038830739236755521684931797096184959071313312408584445890691528071060715958738515706791565934107112533648132224093676638743868476335860727720717986424305621909687067194308707138413645735317041026558016358478151392541265557463215040870199101454106253578856582957797797878662852449729119051319144029055964057993944495331488506239853308056953216151332850252126545364050586105290857350334900018097417106131916745164959631887092032494795831866204511442146280329129732294336844532952644451807241119550486099425220169617174209577849302385327162976017049058656208691873023117685814410454748596345283874079720979620874036218361581339376563743689449388590607017157361517939489985331130433234393404814584629698864309222058470111965151843342512952136112344277606566771552226225687758027149253920633994603631169850583442350493238969027264702200176505219499442173857636090235522175014483758629977524386283553746294838857240079268823398378710002850724580120641453589424683945974054560281970459488952492988286317831048561943017513262748187963858718618554975922390330697763996440298017747465285191088633074655576663656013274857214546725986856870962812856827781703418082137936676405752205217710196723479105589004096967729306815659647581906502108204441662381804745043917240175424106566881617215266862571856748398612589911119710935529978293520217943335994173509498977596793730902420607581434603498770494034623678680067104463102251453587987767298552178598191092912948269166898988558892773955800998873024856008491819551077176017687259278045541845236782988988968027730853391292848954788866350573954989647997307850881422984242397952237381603322742527042118049157363433240750142429699073567795599136371044491080811546332551325122050808315111106789905743302658434451665895598673666490477352521291147356746126396817625553241722928609312469641398382839419527261626600606629951973623721947990901139118295342241785568531326032959520918233479977797572968286705033045278719553803839393067259059370161123898995231415370373785139202151741364554603338975940811593853475167897590115761739388966457493072263289825707853252794821056462919699058761308967363412867582625278547896562579628256671619920862462154365087646673306014208432615617688116620862090900720673475601103419998999937065645316242933813793054953658341980282518427180928685887582240253937818728049682512050417037170353355192897748435812381103048186214301076249805997874421175373703825554178378261190362156495073856353344565198543948569533394225495687283032002584488800083487225346084352791050144183144443582191675669305095761143919220389759073067936118803668290910515276725870984478448918188663082115081019390438781473506303635211080666756443626964834949404199893241725293000559866266840637201661639567474448566837181189456323158219258684196303840929322484873369032333941786444144791878561298696409772688555049320941452531824864182404064050071700184931131004797427967434948181848085166093538849188794341258420829492065901631688877953286178788866667024846085346090769804514612279836929240058994850935385110191487282067033508354192917018821370318546944931970155649950615544227976510069016836417407064222425432888895410379507028898871530025683568980444426612700688407378875864806658438293861356674909887189381927078947761770010802364294339650552545299737569279614853614362592279777338354137650212519077712175786513279784568615905166326420026051161834570442641647146112496653686555451866724771057177566997158278289194807106211582582293157253507525719683537365432240986153804094164616632596892512793051029038308994111580012105711724708146309378927129518766003416242795606560541004860040553604974706297815544995283611384291453838653833428010563590483081061498254284726251446473617941774529989826790191259364838819342737030257268505125208116646512772564286077334927148460179446442942878733279983832100571496994469061404447408545594245854623377952253365500019381476120160664666118078871887902197002238235097974362883325714899652723767204486885181224013153512752810266424888082929345705050435568854801198468115881988806444263531823378373358504696549488408721423124907182030103922010093565454619608197803818165434481125700749335426807819140633586391775024935115590749792231061516188772263721374684377172710442961292382744597845121633858012900962075862640191312870784279142647424966057919884353599722248982094483958743137005167514326482074607409978875020793998133977634022657035324964493993542389218624547806726750471299752273279314322115306486086835840180893700705091525290445863706797900249512276040587630303800290143088416673664684411767624458383124338335457994725281035726913071443963252409757492827165455070273609708307541095109201378872441155891869331377601006582496289143038698541392243699996288525001887828390101740295016391701565233920757185679814997780470137354150708141019991988449246907129645005030963924544770676119771458285912341322474208592674071547303030392828049292864684798144684801552850239473687346765221111339172543535761447629821428944549126561250622062832342340935278853327168489851611054099257156649052244942678678733627638143522824490462636299377236718190237114312848544582498913772670181034224439471595914747287627807645940967503397174719004465492715864662301420423150027289204610199549300419139009592523598168813467875791305354809386793725785921482186116205279480331975890875181653091945757303746112366720520678361518746398492304377430314397443331169112311724405238920887384456081975205573189977328741876340339228028927013759905128284333397207822773138047498662064156004667291091138582686882103939975547616228129471271977074537805931106485822052819845509097454794322964347038318586408981891568784089329250394602184848668907139308302313359116976707254298907674798804954641632363728499609557474617845794082224465326707568395025522078027633312225176819611629873823995635406782410507834833439272839567017568035531391602324693714758251192862523007982390715804224289887470915056679607096092302578868660311576696547772876588420549508211120668755055557147010497746796697561048226850437607886192320093642722240481131034595304249339188647495895671327101931732494823349523010478722275271990157251029769693107400865093238108873618719545221632305171770390362771905898258771548252426232954554013081694135906547916005314581158913210372336876799700785330453181778683016918236547524986870384145901862118992936671639720110827903935381543316741042886174800068294123603809370286063298488180091962128313679742721373635198589871898393449462149145253617397398620060034270179457203975307187871477504232475594884371041656753894487144152844019099141201749572390228139258511432311484997007565880431841295043345990374751446546797588414978737617888138464200462279874257014774715367033885547313878301840978638306104457514448743039477040233244281495730057009470958513346778260643232597261656030383241162924585953703347024512568565111506025134996188252240596152993996135391828708542659548268345681991439393827501001197699765286772149251086994961911617068970677547803688334119141292987997226958278175567454225187125194911075334708532830951923830301088081436582398987516668501608960767768205154730456768355527502542731444152644665886036128873309643634571053033585495284684843331278494302160330667307028049536653798300965228619278513870884343318247062683160271647677384597415528715389420303526739222703721563159524709489577813698605877690550193035625548937501095633451719236909631603386356964788311502009993266026067947630341399327230228908748354007582898312527114590639934140119229567848934919151416008249346879125872207025421543446308900406362659549499400052969196905008508478547920026389053758249948072064139356620507437326416942844654220808701850396687052271039537996781856930719160153733411743161429585233627238671623030982843244229690947802548559912027441657389415188941496032142651696065853373164848992138509820017480212664438582686632701925912388335880383361887549032209867413316510130663969042605588005167981285774179152324924524697029811091242393922928794137797704826651943989337798451554533880349867201088488120329592882787414757200448162973049960910945590068999096731942894940916709260285595106711626956840112028290159361570476361698691829763253866558118213219798098692869826741051272050957604980989354322312359002010069653757932564010524108916785978256263359434778359396371610218233380086359902039999449388617446240487724231466855406880744523801603927557780439538797804539347808101220395925078801389507703333324686964034052399376121364780391488860180437181124760001781480948653806841294374186486005002149850949404569332648432050020011470649469304505591612676961058759446083107002685467403359545921423560905969447994788416416786590905994585721272527533192620220062894689539114506204916292492881751260902765497555737959482464368341895987160606095672609078856050604996026659481247501283135649825164237256131866958525720457198855218008160021992077758016709357699064652863440199159226991582011259387874330741097134716164146490932846238915630034418683400338471114510255965448262556589677551277493996379202988506744901056374770452696944696080794839913719297269360010215741918880671852174368655357647194072026586300386321675352096651949114003473083324407304664177502556459973213446759915432346818430787608887616613488131608923038585832741186206557930943600928933182888565781753151635249366637823566632394834954257573586384596353232122090907131226825869176451973083161639337581023986070460191165959295570406992860582078144057104819220573400930485065802428633194102664054714174204648428054690328384425221238559237651124837121308072164321546900579438219708687613004120231973771641546021388124829974761769842488271734801451469658962671235879492030766762129995937906213117495107603510254057220980790748534374102085048096322339202417569070284379299384176709455420170679978255482990911503327288290940389548208263210050063762672314693808266850176038707346925622270307942983955759176105576826926975586292638631959977995247209013726803589125536737225764535190093956836706609704549981516085823495628271883347679859885821532005692902608357211089382876578107941827276838810722914762635305550966172456780910776784994413800447881646984391905966656316146661731188173552566180267193005819160990972084754547336261958122914043291265108363087012518482628990450900042365349712138672509007247216933135458366805963110493578281003353593032416723176430766604396520727079220227078573131154642635687912384425527234642643315100162376692881474417119879273531660626621251668476084583203525045293048829984809516117676904866351376535293643074435914396010485928022148155034375988545866817111722452377848073008789077232380688920710772615322355795243226645312974376620388795602329399883220539050231081549968848624410829849272424221727348013107564959192917038852144440345357351732514537349327970540587701336326336819397668588526022243660567162699615837396051608412255451627618384183979438059540793656456895535527130813631126907602508346627844081570836509615895006913076814054270833987820715524895405280882664977575317036460482291309581135980311084998855753711165439755288632810939224356946250019539672607625097213106511950380920599584424562369323294746930398781237196278635573072781209465294678983218885471042318865111945909336206282207205149989851072846254318448277635440876962648031577565640809436376462562190686035134130865850328314536928249109445820639948809477555023263532507631450375104865238226644460585554960196895479385556178224726253997623723890982746530059312275525421840691103764318192659156741299119933250136844664709269922698928683063452735379668737180017967291271017218869319264188636219352454947512598785175211035868158297772114739905888284656386578577950001904077804540679407527303621667102966528143446191562980690449341933323575221202983296200200088576264621690520133605306933290331759003053573486293092685987298631171598921280384317538803928563367789725757968951895612228353061367298055713782441354871080086368390853901802076073479301673280044162875169314162763601050228558507947621583757047696120744668266353199635630864090839346489105300508924177985204931777326721602606565907138554081447210323442591457642499434509944139756643065947313154904008358972106089408232727223640361715459634290521730325320064142367682418824111028976709403926296266539748625700485395809698088799292006823279751747288969555216116422577525504279424822144369473124698054210647299787773754218494139352072362604204950997049537943327300878511064351310588953496586346688220537029358240611795840344450695142988667756253248120141879696633674168043942319985509052704323038306510536546824263243719557518891957256613484588194465532451270285655846788461286823152258623017632933834871901784469009069329197615378765516915502128131556682195697402300214434821159296926204606491944067388531047441321069558352911919925852193502797033630262193679521073605228604920904277981458041991158046259570154694281021379110714888030845917817268544068867430837969572059321634809128300826970006068663535258048108286305873867423927393340707780212279566675762748306004923145510502890500088051729455893105535787996642573547624436118966277041812684874445135835114797938231163101190845372340466800508249719655989263512892264463472828095295641062164007413494048456874059778913309811534293431447847889627693634738151674012045632235528251366968784421291102703795704158997824752631943611050277691641512531457277100446722616294360484242941835258053084143196826022978765283494303106775907625447690578374179888247056171471153278755835075895480469772350344548585472669116941886313829038054357417020720119527584443709920482846780901625933229611582053720356127625510245057275172750176821267021782599427457312393344335612150933898105018247256853957327262068646065890744447003474322018357058172735112098051463617025106757647656439104943531798420683208557643228081931648552603343538005306089640651955957555193885470084982311861444458802566350356397155265905115992497798298793059436863560707498897137390958211859702975865045608475682740374449262615527804516457101250633937456146094749010693210023072523736989623824904759591172630920564014698480166523072443563235242325994370915139275580605644979787516626992280231869014593321275798666256489655508876641804102916085219060831669597171071455625718685178484941514070757277318577348093547227648888267855721051235335242870756738026160110596847569599226971176046431301586433505069717888464183723776218946231094443363673380299467100947133382397896529051437897191339103738318519477114881760273452091024509296837411076671631970262870066110550144197324647093645278234575061408322682170719975376775755516265600678252560245420298967738059649170563274416943848111568546863834490522430120315199834526595170774355664235284194764538821605937893558339439833230316954801057839202060585974128947725616777438570122277518909993473554807554067695397635706876419175520416081328918354026997755986502647772436476911965620932425870439680032026995017130257050113835327421306259372327270539041290902242068350191040756317576464401443967671599845724474530231709238126743924597888738087836992941128130733168126689162949975411450849538496213574674310081266022796489726842733365712343074701448822660669393173217546025028314797627837073060152162647573013600315669502829242454395949508512817263234568382058735452560785201212686733570752840905762935485740383514007186032722256153031182078263805225263201981638147321644984880860602458069437500442831504889598171577479060629801188861054138292011532604919756225241348404759505410916195921368216485803611191473399158697361003397352163768952078570712054186550699620334618523056207977348260679999913989598604617743346446351507963411433404430242604631695579794652534675660127812138978107198291676524869432153223288263746519819688041478638148419967013253600553919958317336524642842188258843995152634134585814166857869320240346287662315300494774780416487013241405038143562875528315006132527477819784879267546634661975487714229926740172069695922266094908231797406322748258973621456123059851130760294511440694628683394804809803084317546524661937524178156801504424689018953843731697876729301330721002565884886778111006547777893663881690970340003251052513727780479132126037273988346313162117666995256307061609039375534046703508590260805655695767869435043622284605308420455292476090314319077186649979410357084500676685301723165886423193002220958056338300113592988386689317094565139028440676207397743854480045786949849065414137705841702420726091279802661612014254112269210285213911182902058175892449390628649055471292376748748210008613635867413238594359667088661381685000130233694614977096141863477033794588989389958580079814866394268044621713271590731329157995851166382595748736968068036442241914443192838879687773458994787995223684876949549888498886587869782585995227023182891269208142937594996313403120518510639716627736233238529584654470812430126204919452590126426369401291754982829385419054123699142631881846066235805105486989887226803175711040364753950361236019324071480578403982305093005195456572932035541024620255024107315992258287281184101881510779785148566807576011874626630734329261882066344414184147112672839086992400664612008408743440511974002833313077139434278276686073084998783608564936758566147551981509519176144415291630867069792006199639561232070102692094051200951287775464713091322501107297893562036540426042260542491931729086492547145792019868391981794027359837288488010109092281570451100084548261433079656294753062414196931774151724962308640047239571723749461652509339173068073603425580840578211874369588615844474782687703069711912226904509809558847623508802988372288074151838380278015415681274056509683923494579271494353742662889171250337858024632163421476930730642392798472046840685034063760903781767437334828504208437972393935531703121765307942216089622306074957224056137418684665183050840454563482138701020346166046253217337924812979814218011485515427099566451748594735256042056327052772761956446080281180575918635012990466398190904719857307672091759319112783812950101824464487049736968626674490694083991512542713692485709449070740539145943109918763793350254544354142216196540180873567933147691420672865933854444588892396138826895784064245367117703183003488056053231583258129447705142085674089490272377195723566077865495120675500045575520440788231004208727779680228601777315662041348490519131414573234551664294401051843321911564367929843912602509894953463037812491554409317584459076457646267049863364541374855119954653540252268591779816495558597992077688137525493691601328760248393958220258252012085887503892070847793172860966325228289129956813106055290676566199630014798813282525628321981101183202597982712595161720588249017083067664436414658971563923796055706189822090694661228820857805652074284168077309559899813102024317887455656271929029423841227240121520037953295272263198101774749630056397000090725799092196970111214244389957792522003467806107116785758954450139813130379192057607023386302414889264609976776700894535341072719212946826975792071686652488256212459688888644427895974161142352108584217098784495926186393972677196767746371773043699471216414362609667519674791576060044249829605064422874972375218204569692007116323236094155579923705180018282679813654322967952187289113903159592813569811636159284026375884331135725333969807780404171840037102046945339321071173011761911291100510848222413749845763640957508955971359215909897987508274638775395626651790265738043386452972604568444634106186996390801855563030280698025475958076754549027277464986860111915910057350859217372613057951645257935019947956365134264137034493190474679971482019591166997242403470488539157284753647407557656749641154786491135997241159725383791970346332468634837101135330903071347781576882844025612399702678934446940640610814919213185728132109205561378615135821815457988351542345094952519357083391787537201177878309409300331237450845874500687731801502180896194427152650260464533394381126854175964067658412035316428706901484271226225484869772345733611244872268981464993541469636002887477226231711439758917255892926175559772675985865121559737713765990472295254149324965755992812924314538022124623782617592767033668694018947531202098035275412658341321261342144315239525949829502319443309066431794397354517227840287104155296017882613543468669493774336256746948653865535159676958323244902132871721674164505807615220118976954127262310268228462311275635455161541583227183147623147713461880761061137518049793184682470762228720671235643945705144925295185969043187235278329096055087689139547024914471170230404320451557750597258233671042463906156295191959777947589709837753927224152239318474209740507662003853352437081112848769370254281126099410766710609744123849808485919718382908530789189159855023272849975471026653870308415587760812283626576767801432856506877466739543869009843727884750441744702912063643720433858574089193608105953605972082510429753082619271226426917783750840301987405425675483058893292193502822395654959127481941506921216184989810223564388823319015961712935523918503701538163302125352823454539243828306213303275116703419276604315354231709276408418233644723642062330332481531599359904650449566368566273485113629661505093644945951930831653905065251732370219675008155425389815797925245313812544226692143528871658532346146241343688265081371592513807106456863978898829733272979748059595984843409851266807249081271394692869793768009837469724823527194008538864262435767703029908766109223031329274716271993165388446441171335334483428280217147376051458328666776823944941658212449138393275126004476567235571491485473444274259965120819686740317566073352822585480961502197004930983733853567225874153719586436402463560908389461395859868075839141770763603723600075805192782733922368551313161700140258363219452413390988226428636751853107600339020561355949878815359317903494031932385035298879027114469314056386253970331977657788049823141517164019998189379239473406426547582225538018029060094182440762603866993655788665497645596748273401478631507146953600434680685662964606927443141722838022973077555502743884429656789175755861533235778516779723451388292573672365277950454827799769505140565229949471759077601588565477608934554854791781926283975120028066446935100993331367666755106862087151413233224987857274623015102571259591939612315103578529354500529131931527007455598492493260310935269664689499874467320066036472068176372610354915914001755031188816586285586100467051027491579595718792603402536062609054966826494995194785238044933012924498118262739496725360035813899275182687752288118550917332217970639742550306275434479125994229209995070069080142185212104851324173848904192957902767603524302381235611672040016283453125160768178084693511042683008929840234825192444888114321678504375048755988122662384812914077473774407969688567407082217121384449051043596998345108258386416993485005421857050946801301862867837700551832159361860345009919225180544090311182947441876240849770917697319090424683289642978136057202044684769769607922718553864125225369650538170568067103938154660493334482634379359123588481155733127279686677379124137029891822249633848488305494505823229304437471894939145057423879264170921821009051589292887266432584319190180671086441245925247573812101104308425879759435944216907454446379311506171284367945414010602842173676743447005772299621166945772100360673222721074249065782152729583360036843206800910562955088968975191792763353307818025802960401421435650873128831178988613876502761617369190407962088818875930679318591684538980602028646589131618265690043679406115849802402062020798414762914573496269968042778068233959364945322538883846807117014094787249336420145644583070542126669852983889590871962112404943786115256943754110473053979986158108561279064597641377857088694416512494901098699170177064936315907564484940693212600135606669501127865999518136615855808404603594792408713303349412066743597475061848108992381441935950341241193928385402546450069172131208070730687238873100756601246964450738486733513619079294371329166803622408647164680079583391524310248010457612860990955486164042850313762601085334331331706717146088905473441284931978588888073695293637983928371222829285494310023046098943500015257470186706019688274141616368947400494247642358536629305281584319574834067369479562572902002464950215074982898974256939484863640044455404338399945546393497275250320804701009294153767700322932243681200292616008344589178097676202984738701962115155650406657690774929989135207144965546411163088157728425204159717923837627892764348581336825626220572210703801077455370078481748926016317121275746744678503287950210648043712156840169158276273052183491221247894363307047066917123438771744567650366279496921496639798417227445702736861581644540089160356925878694452808240188165171527540567256460414088530176254440808841857325225916545950870384900182739887032341408050774951726489706710915200193664236769496397058353307566020454599505018055754491796436567438497850404454834264905530106882270592580201520735066869577788868285911587100947707386748930797407207307129025654010054493645931930645780630302552426664482249189714313515679772234714304105632317860035887535918598052222272546268092862122503911734778561984018109289962928913401080120677120094560645502122659728318655438460311842552443190828861676194968628724192877035642878373920065341735531847813392152823294240941242503788971085930391226145337807687243920155446642404466505763537886822395153862452872621343316158920706427084099181514243756471324268712011154986238097188866537078481506241984536924414852318908407967273857702848543258585138308604677138997096264204460452480354309234799328036469180118284066194877237713488626206102024591677003893469803160984266724764768289417087269018418000791200748594868634403827564896591346796415604550319539851969609774989030913308536253930977595986459053224139583887329560960897340226712447258903441759561630483422967949226120961665154767145111004586479891533449026157633365958567161073235820065145001273698035838966866260098599266783841333472746077081188646425549578704814081434548827385500206451107423206762894078234256744114108666142871673680613433580740962870582457376726794928313009775119237763821355810371191357255068036322195096950401097553105720956065548555458963383058537162055658435630315990364668775834588139944670416573968881624202345344875420139937541341734880233913371449742477198979654715580870069250401797147961234181918717776261098988948950462396186122834465230334408256573966053700531430040242032397763431960047756469401959646517871444503790378158926986572690858288631427540722358844591539259373518068686373022653146166774429807810945007592583329683779801684001077101469736379061444754103117992393339180016290552607192337800162720026622048893380808356390224064115227093605001995119759734504842652428766862433802597292812635932252415055485831105145627437810163327155264584381034683077084891208059133699246267810756308921656580565122979390382828727565265501882432756612373163563158248336015085991694475229019815973950599170328747178201162620231311561677472011995865089833233285252757216784527308724457481541659660767960527120724715443567991606217695616922081542343601234425728465992921626247932014839321364942116444752942424755774775208480406219391891169786750474072665687199951143263027967886512285200028715866604435285881984635805502119473455407472235935721592057535921486018380766078933293962082883500006885496347855558795473258427967053364582102781884252936676773722445883561186869123717325841615270337905195627294667136857367992406210060498964988312820440506787044686034138902226272576712713031397492386024618383754010605492311257911118239036212618178623054267034123611936266017878259856001856271119889319437310741746590821450020261772267802296457212056503124592850021541918109449598895531279659430165536518469441875824941059232123775164725132333743120969401341972204820636047241368048740171743729080302409670325283975587993829233723794336576498711443975958013996916069984131433218096541334774986896044608084820013114949182965560250749137392810532239957208151182646984526432044181056872127309831994456527170016899193559116289584126192901836136007282021374392705293033406860107743669811335373880961452884827886336694807792719924851793859156003652152173853746379827832270448730541892836055920978758032128947984892483313700823979000809190516561934141279631771371898234215418196376528728214272051547171745966932909093800261789485451208945042949713563885164617532305199929923219637571054520318442084737816414652509313137827688858101033774849582918630762738541296764934532490118140690804638706464140581993596890199907953357304128141695151455089425965325395112936632424797919091762919222382728036901623119208424366604845106872977132472357870088103435246784936699946720549746098315642517056731688746182119949460441127128815836587725312515983307640892580934358439089108271262223183284488451416337874046310587399573620339541767236503161207586930379650660877533876724592883335739874666730595209577937651503537309069069618019012775874720174547001318127785579483894436123351608576220348070465619846265659295742138478516445496851334819412536648476379991024836744360225261528386265506746522375810469786202759922936908930549096125219579562080646706492907911727117653425473373986453819945116292764922313625972082028441955975151887518948595274164899294575387638483913084000329729670745639294607613752437854444464305953260340215007170137254890306187354775411637609666121941253882019684986269535472529541642374115875299247730782906399808548623731147632675608435374747576144934838622658768743520004568701696625841989105409837682400579181159115526886120984339489317217358707874631402801441347490525890883983824750421080727452315934230052903266654607526062546618822750799329339284961248858010094370428833850461414026596121861224600845242087180345670905915559102041212490257822381728667201062810499380375541911041713710584259790606473647877186273867534513505715393752054775826256767091020894846905600460671259847662815259995046725089074501150364120957608261615886954549868602507828837621750443748966550938165299023375268059156489574413185230844298812951446141140770928889618109307270655539717096266555071368382326244703093247980162800174407441393095603465566078782978915752196770255274873442380184006516509996994704725365453800798110555647881776593380493122862495610616134046044595562360167382771673539229935353609132113250144023734637000316745052970199418622960399284655723461088004446295038768425588260134137193108641406835118938035872294163708355281513059467527191853609750557135154492739015945090930524842623830053396110852528463799807472049136881357750838674397999423048163415802831754937092861907306221370030740239462396058279997331374730672828009928532017549409740939040315623944202449931043858617435911531704200832457515502238707038636886506692221464818856277487811544385680136332832671498291421394149157193003466900241438418602467169914129247399619741249638988128002931577671998344467430253415618261098186904680276028999379832884333481698257385725028092454298887513711127090176052998235121405008981764811797552052513656980703800539837652549969644960763517874518942696015759892170879500656239716479787290736524306812075755834662100101801812260652604883135634144540401477145864526491916145134598321280146724682059643857722599414843849182409961810259600123586392662836242859037275877355460354829937685593868347112051827012161597849783534599011371864167008915708107410572141359582949408234920517866799776571442968983206209486001027045990129298030318666496675121248966518062282275438425104977188702013217808118280707865404821343128680612331225956853334923969321447595440116303346663133645899057139646372904961452824259839626303897414705890494776365303991348783126346264888955697201511419337563389695912150408883437598984626403189980936013462150906744081760860256947490650063102151362324454965791211622691881572350200172244108014437264911155871711854195116211807605502582103288785163769369890618804824447362551326100449571751044244067824747407861084741328878058637172728921393682976093645138741179669676968366703226287302230267308882677940879778887230297836679682159969318252091474808375856680236564621068649961385517199670027163089856020330511136495621203452354725608915460121462571129364944586372290619186062183901967639288257861089821552189706893444843622296979488671588330779347775650122071602782565230355902475036110678120152101733055425186206982937817320142858540003282411035674928672388563490583612876334267519990084394290152599664601479598817402045111627559156199696143318578589187725214902373540434385113645011947893133232949536375967582447627624801750368977270914747802829619695331545106010115814958356041298301206482960230435784725081050094574401231374814654110465365414841584203230326544491654577190434030991816505164430663102916038232545371006763400001854217559486506364323986857419477935399529341635113071271639857197944320514576253101397054247744100714320156477941349233712950966885848270262805173268103397337703808330382746968063516141160991088412035485236143846715932681465651536719380942080571027570020716050615636241000275360034646587006951953351978419710215557353188287609334651538462408863154113426908989108040303924970858372901758980145046522543895610215479434938355121338798746516260681906684682480975710938204070642480602574361165765862573805363481637524985932866631627242559073307118665596429591914358625903799077248995250674470322885150236079502554916940469111307569267015351355241650372182685183639783758176220523053279096333935990701505762248945967696588576876092491406383979627850767426778268061861217969850784537019772718653860339715294828866399756337109064181373768568397274042093220879921813919491394971738466556244108512446525027115621983413545741232518360100834213419946610482079623672346323661858079685439748472748233130716523107518893338797757672311732959093967966095726095087723564657477614764014098564830722188226995913253832455637509039479238828991080939987469313701947357700306319003465686315790034319453992589008035814177833787334614705781480513892411180379326910465437016814053070735591376051861200039035055154023635148715133903238180316471457512108179729475266025913097367163464871236482758056286532847426617241285490491634947564322823059818343246781951860930952835000041982290464960972050220823780483073418820156020715541243091392997897267922515790863864934329262578091474766707424757148872080557963880007413384548502823916680978108300567283916701501993623196973159138420190924418868634880370491674924009499749573525933582283158041115969838175844865300589721434287405246039547071333311646704153218464989203821323526399574733949589517090722905599296100842502575731006334684627486427204483347226229916878159350695014166058810756981073020416164974250038458480749536229502033861153850894106184994101613239426873385571841063514971535642825493806966499078722273149298850600235926846721766476679682776375855404744678767810766705873190158674514810452542207025295066783338122822653361021259664883687959126961771339049941917563188532888559204042413974000199183225498238023828064130116855793690100426985825345476695942578744998465564429390527767848989670285466994093468781366735045371386328828880851487167052148188047949638916459851955929978283839908872921428326572923823315614901897355430955911041284941211829945298923329638421908770864274176163763026831520706554732532181257583305128182169480790048468323026721109600173868524931249976991520821584185971954858018107836097669885404618695542947323413715031648381797427374489526986711086837056218119060630188840689740061709235987141722260035314993859991504663262589923726225608478605212090211153883048380269750492022871886367594134248204736400773992812943518181813514601543407318656374122146385437005313529341763902807016964758267804038596086735255501478388797952478279932055981423009865010406770417986373326521314215084237724918172266040381130646124601104046095853533729001020884523576572644649998092487738573546843974137283245739860366229786062627584978548399807722317645204246905662188492984196856361223562014589187307391893495665359089705042331552671246389800152913193642941529065618818335762908339312509936640339630862578765918919173383761769151687210048748309669132546772022532933330318979364289433419895435060874727469636923928105492026800884891646772810761481843310033979496295759400783910377996343883993548821478864798181004686179186732247486299942715165634117497866902110095744748938859094675081763122749167793598987623183447825069879403662903604859645189804981004335159109548485596812178121279613920836768657098768293651974607093608242700868551064376439264092185627388478204396826777035776940999339202936209275838066937693084676694852303625885394650542783702205958884150223444477145182155800508405608916377434345997059534886330121886883211997565396421168270062911635447099948458662649367241276717568001870341851248888118243873437365073819485178265370264672322514442588167903362564308347860758386858394003427810181446662981820167125243175669779595418007429531475122370245634969775341341206409031682194687352682869039213110164971832496703952508059735608879512182099951639335170113617460584911464390176624595547696887694330122366570927479114881799935402538650403317355510871935610262713488008489781841714484729895257356720074497113171331581028884390550709039351848002071846268668249968375321754261318106238389614208214535453698288363210085532645064351773247179319354795068277835524120492200150496051274399694434906233787323165013943210742878278141641722491359798320381440810637102867520953084848753795746265757106240060668771540282226997356881370746165975526464283687403158742584764657138887317577252864299143732214099391562669178444838916859981819329217461645768238572456486446842834785538147914455288922180699831664625642062974617586047841007240815863298596034281560826627818391307435558345184928229893108562719622210613903636344171830870174624727976972145061138944289997825103427558703727120963205076989907532906943947530406375266427743545756421325573750272439672305596925359490297881155248551190325698718206103117482120305268574605728074364365171891847714837010752884764195144845588075103405885614397536599122113700628876199916168766966068356693142526032509880191961492186364790491749483091805735441237144615635628146298353750201242429171225454091251063879585512421099781991000656565013178631746986267597384495960922003008346699037092094793546231243498867915148050371085422815117061957203901977418018828932125359010396998738002072992636380602089094102575271090941463363894272744904544729667001721004598222604586283855319615641751033265241811382100862893121348060946624411061021967739081325193568794317596487118863431514167397911400214152838370660916757401040280296841019605806199544609269586729078869728148639901876120382115498595829083502313818020281794546534890184571420079005143163507431672357858987882876568011310287830158414098445131127201883132228305303876257623954849001930853303344205210226023430916905554123254798672459800544833499071582372622813789983951208938851684634557786299338260421530398103461570985954849667253117702924919376163602893929893975407877939670961471605548383601087885245154912767317981389402491522665151693149570551132933995699495767151374356872348123510744896877755154139242256756168564018246852366437670770922776726965963257518617268950231806740949325825230102482253924532144655624296145085883552259351549274257182196238631366051855207680664097049392786822171596208735890775438357126404978523972558193051047626010488842835130307156297333031087538979898357320639515717008962241316306166978792537544797777230109534111086805805966212871088035232802791269489476556810185422700092684290977229520945352337000273933079631001099394498624062279341288051573900162962654779905673764686525243555718746428257958171756787878000066225447064609174551151253437466842907934943515594000169100594452196692936554040571054205386620745438471234583512760887982365004415181881500667615177301022215586056624088199306329060571002100158202620426211729072634306627312090101327273066401166764876743511072664297962392083383631421088487270166135181411543032392882357412472000455287407158924072182692073205799111454851860572183522957022630280928496941800727986198791888758245511521004971296534144730279748053814227945424076371820646433450030390788319224371639931197117592179889257381107617725019684204629188087990266851403132833734216579072950728362589741770199167613452258892850676891965485098193928890224627280296854164360339526069442383257251868632090892210200738448897760911114994118198818599582820347519647869333496711233226124509938775890217969817941715157761152911374038046221210665085894554186500826150057976019175817961689378875094195544589726145810364691096246283062431945527019371969188607655070775847376826981411564189340471779306323984187748870009275177335663981113640953434659751699701997717895601858015458507080215556669432354376360196160266219655604458254038611643709285607937897545847284320113047070508908441720360253124182769898878913206873070417224639556336739862861630167914129760722194679219126750900606710281481637444583823631796168328012952351897017119445669086875951571905975736370723926816655834449598222565587273439741532771206429482889709609396356360816344146950844876377693897295761727070558043345080110415022769909587572263896219112322657121643627843198339267568808910341358764955752647636520664282224525119498666155855722130914090541588949567124823318485477510614126756992220394360101781306783656663930084167416451000564960549379255841874997521709599923698674255026231774940463797204048126729960349374007744913585265535322423726230098812469069520248689457254114369774502779395972913167693045126371976728756347329049372757189600543545304709279587657693051614120238652938055963774464763915778593701358950553241280100542839243590805996417092088108335912475360306126524579889413659485497579451698931794835150987329077079076436781435719839573583223101832551764967667117908583893305444047859531455392011398308200604588173530593243223252149018192502921669066761176240003853432727007642882500522390236678443355334288672055909507158676798677510111283176046133442099810450035851886764519140839152642687917284101841506501198780355188479355546003850022109625128338092396395409167489971235075862568704030105541714486445289121441714162269888876112178690111404557089476194095272417012602080905110174730451470000315669139636609066177650410221447665389517135198819944161670846733672317544001662915037292102249797927393210623043483364033447313289690481163339843445234555667995654533040086754316942185508901243737057160645074015645620468357036421331343288506750676184013576941828348072359853397994473519575839800967329570859331369955249005298375430578192919655023285434527683859889595582251986582552405927575007284839375642548558954655402856636848803626188310115485222918621654308121668118539468073324884701293800860703338055404132138243576811052783802601233863597802395174256690881306448475626140858184321548329027489387849440309510007779807246597079076752389049537612162763978017775855091803888105553147926039898556766511419537346542026949687652757922898264195127011521478949646776223908897638428194933116691145522949437323007351690054902790272260312952259698893105326314210187179242504908806200607100000061499666005084160927039472650048117145784664588668755207127133393434840272253205194038711203086242179370391990355611479617798205681969873910581169912347853860207051030987312131357107417988981700851001714125158963074460451891942230159813718550657198438042717835145697566843963869689722046174430977092869370306434726419106970108109885712310423135166620588185956274383650812886106886265127163100694773793885667532014291846243111108034364518958780493461964390844778141442386653708279267548185814699432879144542452095882692379388100926213885512593774577870587269246763350235431124959768340431860791199745681136631962573714294542304340672509908140883426347973732778263211161393067029680751498496016891840445660382432411890972374425433148238518664180307695834172610631765059487671299314000828568626403134140812712679064478792205218096489404564251156728866847947418750872726850193002175151877724091869075293877665231636597063775676825715727099197206960679351376731860682722865324570343193030718001006492040497213142426871022746200136943408562824427969916208672663735821890911318480055994478608383697440741832142285659022091116457670098527893072730305413545651011742321415090321411479943222446025871809424207152650870107100437822774103769754742824042276985080979099750811395575420201518520240844084312295526361185085636461530326519087924127211487328221601314472387670635216442385430295496476428510653311488212659696014801204337048634492865202039197045656961577961679753672859899360070775565790876215161486371593774767957975443848384223686844704243190788190930486398606485723669761869700970233905617423739476288022424497983241103973118364199089962284563552122184519605171030220572073437078796196464561339656531693349064620918612732578841196162861192262666472768953615152115074744429518338988019597110974741221423212183158157321481109941298972703622328651922985618586491897772557099762094265094821270370215452719200794248883312497974635642649873499622710432015294337138263925624311181804302400470843049609326954441677928032544923111609276943587665062396033298819009325843443848998223548663863597879290231111674056398090082656653099505578659116504715913858409420403566594892802483614058958968164531491174060248514433483249474225964810536699537320278966056460511738873796627512658514174638332660387662196302441726695744819068834005468610125836330739602550609630947464813152305574867072011980817888435902809882678095727371299599428230979819339260786927865008808589838390351767983351498451842541215926664603918337309183584641413032409152474597592007453207734787650267472459641408490673211495988017436744149895327886717866560452979322077491237228611600663897752970921708146380451496004115391857940783993088729401431416155060128354960440344638288176809074673162000081935019355159645132569352951605665627635485274877589668147582481167877434659828323720858862375107986604928364544638222734682655710729361022895600363389226511841527247508564894333647475652974368111797755346570516145348077159180573015102379499327505383799543120087221053899709218536464091138948628882942917750831883986728873478646402212380930973401512080469075239252951562971099309866839767179130796767788267231376205702772950107433675220979949084335539376647852466547984524353755186455752398259914714830648814389091727507357546050270627798255669734850474374506425500122608198432566681389493667652121352410705633032998101511805624724509634661627804116636529980285604940405370924455671327089742875933551380921227277565624641741894675413336656478294788084080346623899217388465704029975867299941916775099665710217272915953945843576021739455904286880373044095388508682811873436398631350879254894524508575296495722889257692336028493440762258363277303260776527132241538784165880979813216592939776948001470815306075391717167915932987575188771862143604158331890661514815201256455005635067299091417236421898599395958306161575817837652204909703069657712155934133258976334875131760623974095760296613801407799431415795532426374453491089565855788197686291021706675274688243996075440703979929526811119717719131601978888804140004935660381359592329514034766994615858579506784912211411697380948105624758394800580175269748876196967472149067133551166746597941461921526620812939757818611175362239263443587614154636159492742316588358337939996792120891636431590055962759464646393553973775961765168925221084892234015136661563674335380790550227446956930091072972652244265861695782028402576920571076658625124651037226519841321508110035998075900985002526565455606057549144069808621289795603303378642719630627233223440852393132793504034460635117436830060298004513174253863980286982472715059530714893447201793941120864696441114544246242153728046027794800377792117095314188313901233811493573018441532161879400557214122778097257631385907072185762351785821531953338351281462958206198179925262265576723226644464949658485925725811054898552883238110406925765430559241279930830786459967421439608104677525595005165298075710988541889462102371319178686445182598519894348998019116264202282632250579570737216967142997539088714175552053923602666082075352206964585143244709185146568659605940616699932256553470361027604038712092312495323360851991073162969397618058564157734057566651378145691842126976910673974345799656908886928625762913943173972451210879814145252954225037742634230177409072998662628731653135050932903718438384379992592597166916614232951889921472756879946423695375203783718099815759038559376956466192332236599432910230926572548475475005983584749659154881068572297200558754128508669431773171184708236018545837472483014580739037343829809190295347286401043572342274051939454703146898325852117633133245376481346782784208817508893323129335002069867513553622619252633585657550402332521956097091312836395203479888095744049296934277929009699579796071516635939163714054957381351493906408195793632282685993702707378134604921931142337164940407196847128706916106065113349032079245609929219158987580681081959790024075380077509757455978411122008750225590414663211660813831504788837534234839535680355142653261360523298819075876654843055615196223047142511160682502827602875135408704224368471911993388531558383229668642922296727643597338092024476327837065816493247752395440908955593045612840037930303463176640922907967504445890949445486229960856411923516841742477561829935580368880129814642855783532445050791712451195675954173395779041088551330755036780706957630072021548191282386403949127146390883961606149372895073828705810309449919655096679709200422503990761743123196128007191223188597312272290493934971748575335539737939357694851969079175553816669007476875693591405292978074967004629044584178515465918395761834736084471123881720572265946598489427191163138133993670677461415849519524661950280163047023274680623152374555625541977369041302369364852661230251719581260543104935962774843030839293956252056367718289166012848410291239164854277059404820754390068266612228668522471216396318985930216440644693002601967437856399002727863838966675100820394013161464918541695098252906842851796328383712414174228325844540505966089829813983698224801139197015421106377764113495652022913012320013661901391216321117043860193556001339346926545851665373018053271065590437841214879628948110030457118573886520833334281330033388147616146516515848567996111244075346696674175420231824246763591962388821315993112488933820774035901998039030224168918955313787953721838467934904483945873311596784990064951397125201357924836713645162837325979290221822495236468046343720602943831183878299830091384687633310073119868410167002319985185410022504669811592721188884068739293011217063512406877155156573035931343400704819729026436051537521380944993116732643652429494539219166968390383481785082982043231416380523930604622061596545134086116569083858808693404867062576597772214620613545740725022778206094107160138363407243477858814159367590142990332526838970630453479147841722106284562727556312890565566242380163220358089298550809255572132098692588971199172531259372364268370802800398732289225794116024107171327179443145015239184394305586959707571138420964385035236368944368012044542518403301133416550649641466336309376094093057970912165020518993326072947893357651033504554485062833752080229320984850117863876354360715093563375343148180141411627874194797773408596579131699165671915503280284848861144358007897837025256024715620015131026174075477439585470335446376741687582429553954409919463039833151863950934605736849968411668797851349736949613913818562367034917264438179091693505213679673865336611731473268612030474503845347775275880991197454532184715982072997822081916111925619079021636776023668191589427140575367445196549454303113239915506185677966254408717825453872782645966456525837050715986673898398526986406413479521750140763503841450904742271963429059851951462457099904105418143702500775974821859457255627480956031321549227500156032323803228227665958697411920521419101506492254590820067914381660662057130900683899706459509042784644990458550375703579663995042237522715474370153289984370344431017244267877632043100045030642021073873408500117119792529584419375088411166473082948184517282122007767909873933571859121849755125163915943841445372283866693929784642377889515370785663942016033778321660534610071955390057858383739373742742768319966288244298036589123087809026398581938404196180370570693874332130900227284698693751484557250387159198615226319944500190032842274716809838154987122432822408898179356534534416079442596552622003028733229784194334695045239916535179840311229332970418446473096413775808142828581123670660095800914798646080637938213224525207932497384809022132522160081015015233101253444612365233518616096653439833699608620622599239191287437049063262279778816022434755174935977302849156345980329564572376360112020583519608246954819263489045834609996514227249019940243826906056058894696792908085798458628637708012414978485061061962607550017654779369242185979051084391673248039830328935673586648013614579903133436119042631447567672819794937538873201073089743618690305387788944912235910977816438222650108888049822264484489494648078455815080291634759300755032149862682479982732259875758194614867138958394248551132554304345531448389716343242763390382517748885374857784764849506367477536666994893635209856174929619974022502785674122644267496960633413227441259782238015177821329359669190854144571109511643368901694241560503943244189027293641724767833681356797081354099036343844541470927375501292754057541088577660534206054488716216037690742819673094595741688537566256028002527729756101706049660101867978008516870622756275721698879474404541101569608149927861084420237350991530674531117013609973854047397508107572589751808481983497171941274067596469198656181708652858606936592180933642218573185027259658451187601820207733542275080615116944230894058048591037170604366074485991683282806403693990545351960987898882987865169346431213464120335413643370712961569212792047984081599189206500179160616990074883813336849189768390819551537033063993643481245847122218284231035785085114691882332385306241834008199482359849121878908290177183328845023706763570052551763973271162872866686134438577928912926076723006610997179513041443215938530105051715626165701738263994768860782065161712023278001781862977409803753958084263434140405805975547261513613576404921029896074573358297284501007492220749006146594344121809544924944271005419212606276225350311872629457388173122486121932570340861380797270997783073472742155700480737149607925541613483246208886291693359893449181776744922774569178849147888500130231084699845342165241464450750555284410101248377734916144768146298110048208381904989985823377627861614659993468189887364330333646383319893680228670989435364611491546054349526185001313790464683861874633723687532698389886420586003372773557869055742952786527105686826384550553041704247202448345371828014928757065405132350048618346646141176085680223295972888910064438939031071890868898680329911051759082538371112341095110763322365885050116778527640865630469075183807113160707954914630795609553631315997813483618049073158334588121138179337038925589425394212418898606173805652933591280723293548553054918078141053086229902359684697770655829110328628025917194550715119631866423710931695787053120591569479474048243795523977741758994151693956326023247922798739086173443165026496043647557420979057806152409296434685892197347253669723875581498176157650536349337565521430559138217916918096840983816146273356278106797920102544648140883577111705555885900587724173306619020771640534761644167173290158365186147290835984418644555741204933766486622452273423698287464830655358416539832272933510227235310760921125125630705584433782761502346989522855848258063476157855633230220583677751634283303583882329356523427360788781096564383061732851400827901722090458833474062872073586790535335729476114563560645113560419374175537242827452311426441522078430839576740861697318828024159142401188986777047253560218835292875871526916974202735734284815473020477855886390225810012157052528159648334118151324028387106574847931711110382666864974204944938251578517966759730088694941111616811991368162928129409638654578480016990206861348706756970127611490680656963706276317904220500261280911609745639229887147208632787281106920620940469025527074584644001636390582839991010930657154430206015454957471490650015152988177992828511529074325299561040995615198024157047548050549121798737392769810194972174450919900633319732247789535403129691687627515809292698249632807785737336663289168013333843423403840267165696047435144580076017399866814013576746706692762777473312167742283437244268540612567713448736215705225921687340979925951825188502887052229566585772037056077338948366783778158465861142137774283443663282454143486190713500842045487615224946560944753723805605685245633049112433291580970312967271240748383452169145625129226328806851734925351436400129252068879979635833655838381148174288616709545531486785066723507918535768371100500783096324466128002021093840445496512338452992085048023745080088984238678453128670868647282740772994868083468928201143395100456501937450304857937571465480177946462080875883937755352082959511263910843269734589526560374690405175953981487097598661541024220993439708698766396824335086156625711320488481739226053728309189446531752690523515114372567201601458123961884209870870171905473949468984294678168983478528653914010283054462722658962890326568275893115828179709545327122637407675166083695357980759381020261780389054953336337786689126987979392675441584590978041488343905245025793364180627665346082673937329415409573175634518439362551325441598662226385660787721820860659475396260623420984310033945837875497392692685322334383665508658426409831439290372214603297806444172874293763516223976077492801864581577572364639315648005272008986796049442146698830717391979262638279028544907752443174141846801445296020512384547325681521190952569917636920334417837206920787887612772091304203422024361514510307259559813225241926434782396077098430166045812755218799943262686457819296994185946653129051109426828090717320310102308519383335770966773268747888760310846082389984201320882581311495016923912984359293332205640455613328185359964827559487219221381992088031606608933470188028919706300753066163831506456100754652770694270777671484360510704415036260111976718551337200726254615423514961795817839913444872433759366233372287478892662341677971716265277584828101776510830556001936666804711637137930826300394782888513435142729066051355620788637796318166818094395098085712973618512572307258993962455803329708361050760220160460228374891234809692754224692548327489923664188177807622292738174995260068527428183312344997364884235827666495263720545652521437464296415608698719773049194601169545628793562135439958094045030179312156523537683729219049871676792477087297082955036658529860479735933886031429031318637923972227775674496790023214664931141780605386714526615480882377709166661859905186575474480521388773528065040481444861779076438079698008781693814946012812736025626297388018287035592992140636935501933777807431907620784814792634759313770409774839746353630403185316924677780448746977750239871882707078171484068235981247206156780388667318346494317902535236342314009476858415190961295914717102799175638727065442297793913785803415477391702564834843181053537022002080792040365808117735310553572886283908748202211268673014022441193570088851948924223576741438833274551411252992326949752356846556028462101480934129169731283140170654599862494392500033838619359873075404286866791553936462333452258027730362051694504078917556501591265170482515082773483999135803657394413805893366371876322860877440652284649920208841156993929578134766383963254636428639135291169015322600888822160982775252042588652071938123770909911926409303100361779813136253615772599945162778737119907670678600179103460783542207945721436511942035330071336733418282461401155472418969184705462181409186503666841789356982139427787800307708773877653182313565147065746451016493178363190029613182819179812565722947177143678524179363611165742085639835066459487252743083679264500649673760611314942081324978171835131211345945245841757983935038160748241793171127389286479059150492242305694062300143992354607213495710408507560177528294672154025034772826996073531197004612974953656928890894873886967388052847204621985871910811825794665059013025349659322246199704961444526485099163736481121869804455642030887729282838294454468456725179667451037299003128225233104424078363970671755828711527440953931959257785817459724704962527636123525936097861738698830758881821356472319763157853328737753886630106706763407729164050957780878364031308283716075406849363199591756226072877107446171774869877567242339553212480723269444598911883490642962238875586294660316560994779430652746347477984384634491957373602500098213681968309803510084149625198066743797232938653605845386483458289714697245120325178917472808631864236054116655434066435239241424776325337774504430992108533957199430878551804262041482345231684969669457842353547553444772788469134521594154704839751595896875434055964789612999624323575273966090966264417265761961027236540924493252470876206234315378000605977637283413517466158923246585595803545225724721890537978935185976143671546293849031189689085383207313994399137737170390667987005181366579076022701877477646421013407532971824737244328868118887750680212952030130549588598112613155554103874754040489794099346936491315347966451682527151270276394960343709004771234901333343995165927002543687621442172135068817540031400366943476894235213312273498260773757553489511225504925679010917873647347443400732853905883892250208993779964012675029828102969100699879973467699783082445448642463190301503492254296786579114552540590646130118774508592111607188453062710589975070215713695636207408330690534566722255640500622389294141381101236020222226099947624604031663429051676774576668399528963308803530858532235577964608846237619368726174165813412138349414060517652245198316778775093423896347102595069893649769353626254016914771937689975737849780226305912806991432063346377783711520398563500472031864957487678627122780588410582942441749643650361723058855662735074039609654759527425376841548267957210477930534337560867439476938389889184044091583738438655990201357312148968096199156609380884377116864143439731797217460507922571413457590356164754341603231175187951105825155804637249518558164308427836909567685028080275638622878415728701292037844484773372187275576246310912275837425459158568660270981832613176447703736504081213150595770537863183406481915266524526473378763716124540679020966760296921924732140551347235690096462189424914446777880835040616801923989990366461570796533248400042331040929160112114535726976748753623837809165808896411795815840572946046294309453057645712549857750832585612624270517424986918750680784025922926286643349358412449958192851293023252041850586753124586073449402291182716283796611543782564042677090097711205927005087028236811623320095230125370530339156135931387107449349713361150646073919492573308791742748078725701321033301856064891960557625540388253737302208913369077799495674575845411505509545041012226436494048172046961845904792653225717888742760645764775248926934067575588563806351844499679397778769490142654697706460898997692690050624597037578121813739914743561616414561183800175156026591131990764566243998514142710893601433246676572977190136993497274991760351945894559749237401793918916051691520203516768095526359992247715175421811167003352860440749167171549718729806912832096621173651317927220210207246482863803447446878857423109712659551095955923270529505711381114841430006517855765639594868051974278255524896181176158693427174564993638170450947385495928000497416007502039439071671142182456382080972073724088664309474090737677529457794604851604145724092129259800734334318749622756342309179112752252856761683246012050943193047994836189283217697978021473265436125063291162019768013593145016173280632162402194336501206227081661738177634718571494152225151518205332771712913167121274675768095405148023802243454450192582917642174263422266584778948940014685534573311778087892031121032221905699707141238102729030866793351603596256620091973663893653249931298415931717286465852520846717638619548141576553218286565128030814281151408751355854792201974137022344695624423428751196711360947472777038844494417241862252924657624371054861503896445425452666649529121850858030198814569941619025817629851812612329676553757637100188275997817707202602266944891262009380796896301905397303361572324742963529255053743572182551989139776819918763362798435139551220723498636513794735684349613772228208778876107446151778728728054979175636720987696038056245814970795549206606913277033022832618939528969047368212236472747224061860145359225835262375144562937722654777911829762344597192817229408873190778958228724947413303183919094034343745039618635239606359728740780393809966874822501538854167475840422107033857545848010303919483757539971529436292960895946507235386153676441734562773430081047288714223930408542372173507915097562317082274939494357053907884304999180619129157543175726415133614804617138371389085331520619518981387499873345020657931191715320867169090217421245151668989111691027861203739863808077274202289450663036560687750534657848185628979806587844566053676101410176964792278832317785817956356374102047090271035791948295960126283840601867831150097295265618850700927956863523663110580711694286715168772081012575519815898142762780561888521721257334687770859300620471935066986795428437554786442758280840443750632949827484526160557036896773886579741753036271602110856997766410980989046555707631786742710058662631122189665489833958614428078264895351360244517846583905963165409807523108377374245509733839694663119346580695220901519815900855114972181132803830430384568370531140045198470217860304137022139669715186678427156976324167396615158517984099293770818295722786899445234934554939051423057489000103850707739042571340515979896450151781902248727475881226301899577462017724061065692663892866923075197688160992955791253510278818172428073019183077945273116984352258631713803943835364295255968016726233214286622729460152615386888163471252758737377304799830660512928204814136604497439798101459001282951856302402739808045819084590336219862154656753727952010977524641450919229991677775447223103769748993463379797743679932635341324522644258286383166948386965543222502146887531001217959597147127868714444557226592126076325318683659674268234170625817744487801071274683903827801439757589826699926130634311714848365475824185375304934800137085312187300743658695935894117008209639424647490790656738708793388901119444102164017203020214637776396233217956608843687804971524602728396894683903042258118196990795623649959289776255313536289831591576777491041315634390961168175929098310891710252070128512056709638464013349935076335496769541796901839381424847212199419873872602209032722076611412485615600471921734940857490895170503521094153852497122625656530035880784978164689205762422229599035515821327053658987047692207579807427993531384571041250891818384248513409908723114015736802146869151894153082267556511451691061996046800020275553651645627064209904750563281503091088477627837727408782699642908232699160788337112680557118607058180512534474155249116725552041591607279146933692522949681263254076344513371991024668238681461118866094987931092577948627469332312155978429306522636346733685275873546038284754042998696412176524816653521263249394915647086780005685443100023118536201049865348200813505974139937104639572042930922304325582717123336380877761439799819399184164470594311071000690381511204835283285586869449105625640104909672553984410666368534705989972865768663371087532860073785730564650964886419954734459811708447914270371503169487566396113963076876843116401392210897416849126509569308446026551549952925053487705787339578692680756532213770915831625874686906772061049213649787283089063723480925780784212666026117086204746486368747634537060604356544756700597863187624483857552999578674275328051263032744453065884884561976345425685274527550708899230664316324406739485171824148777707107584516952342787001629850919352251632263879623088182225387850995706720469168019929793249954626346417456954233043888416886908296763823376336534739393090038721584167762261845843551602972177806782479530575253750697493025406245656156901427109736553050433126000669303424421207258407384692424987410906554747561595975227729611349288052519329960345321032261537660386491197578061478673054897710040840368666655767432995617292103924091158950541187220997299492056272253583169450818891482685964875986969940642786787097722075515846292117381987769853909272829311686977154994032131215283566730051812484436271574628157028433541862022989238328368899185040578052430563084644745783280760172399819976578156326066545858944189941708450399151724676372932680432402664779359475088058461543072276760393141500546133120216798118070636469428105747235766331390180148637379250380251603543220548064718859027338374155051656852410764009342326513906048978923995985793118165680986160844464619837450194184394223429653826687224995013982352922843647691514101865354854911854022941925893015238868424258866904666125619165655933670741350087466207684783969500196281562140410335106430521339097247582772529839619276558878865683408392196386007529647693332855496870158700400535712997580920789954104510391973370258830312294382338235935033487968600155140018362329236013305886761341095064844194819833052189062268822549147252730643543817512147299075764428897929804507452914387161520845573877249023009184697966901157569864546658288201825822965970391906300518646345551134676671334155477683097361717726016413816917286830800137905528345200338649714068254440403978690386217638252745685685968328579572357440100837711559273795627010425662462672505149707123803103680510735841504617737693018424750099983417162166312231802616302724506278951867087128526411836831949617692944500244928266894075565183529907078252261525225464260106285591705718203242692780732179345289204599410100107901370360147653251173709918242868761923559888124647100958392747097688143989196942953837480883261546589087092349885931842530800366706051073963353629284214157744252974158906989302957776055641323887456006695259211099820276145818826914076778069634439963957550711976293185467425682958401574599494037040991522586461300461846533420078751513438859820507587251879122885619666003279812310994703474603233867872186217202573485033466857832104555924209082142794996038285761284909085052116606023030061621245473212421566904063030225022373960407081077568974011629099072056437316837764115400391530878001056034720484780454884444549308046946784162627303964537298585477707962129462130634769593141551467908070812231348657675732916538097725964057909606648679383432048380909665553471687372533595387502402687668067720692698201139121417354390117754441853829499096701795757785482077771813319718187297035432052120759324381999168650966876505682550090704938931705616511411927634091601985114343853255069639560620707667328613853887927381815779055795832109816386222765813243077890688552187894742225646855965032722733054872524368498525636908631384871595191813005853878261741234170695391236813139722153377352281153612510221690250829183159281775873928181433960699602688663560828971762037466144954461567428839677066711716458646596885506155165297545764762609626208400916394785534237090816439120662433671308275577891603689119795426712835975684913660649607487511577939577714653478107059773253668967762020414654743090942302184993578388795142910078592283104493056930067094662542540741389574290830871329327822887676264379182351832135088811466377825974477298122231516271752542717344410760952744857427576686744355026990536796788059471573004738796463720592121397373191756248003862029848531806768021776085192156237104882757415853661055564947353777560289585568775033278651919706286028448060063549864390489609868046165788463599682992959947359769705235662789769168705402948422556794965280267621484587554958179287415622531692165171402556350482755671929658108331074054358304535094565441296746635151749387625376269004496588222492270280291830034200628433826426310584579098946935016401691469432352115302828754839653082269548315404807526332553140346090385840164130512438347309944386114907689429587582626444410890574328104124613705208387343493929110344289514328990535795122586922905590111692076605339026970384618423353998639037870002443871131050226604355365179371247892313346103839064373369376814432133430328708224871039524664823053113841333848797411573968562366630442631235358097692043870423911347135134729754701275658847862118393261889761722500363911339577073829848163640835585960569401432507602184745779407346571635435952087329493893041234128983851996732351793206587811193845508268297017889661252017679185924760237515798493613782585594004749723934928502836786851507224555801590182696353267116761279916328023579202114100663454629170584746123246364937381362797635043834458594160862301813224789051635218137361751304733089304090695145073690803586637548519057018288076128285630973537525028907021613589581360574414907241562275389453890684090015056578651162357605296645144437054656529099327670665040685111783105553539686115924546214696511025394670599436838955669826897619699554563048211087068192331791469250064969214508401047360731161053526910999750561753997210441660121957998247941941310831057613154782355552324069661310261067218353406361935932377934794751804940656318736717599857398505583966249607711960367224847035492712947009670766651600587573925265822864579634898795545427399119433108928804455139802665118807770402145415946961880034327604583857473761095811710140379036693003251713485370518313887583952313731462970070586802499304225335219356328396909947629783641468035894032068764196249379573132556047509432418995215510463271967203019597913291804477806457747722086119920499637779383402430994692082627444836255299381620516847593751040413842930011723037384700109919162061457584858094782265333128111191237455536462608239133265526028750481343059252194269887709904408990309327832651510526039148999106085241782270295465568721335176654045826213620863497696796723294211165520941315416573046230725988330341067470546602896168856225992576929638220686329586474556950760068200650163865240784571440309713304174237597410602336627840955331813254125098052069474047052659127622833613068855467927992394328053806093671199915791900948043429287251367003366703689705677376911886085777964541614934674140474766018169895846867080144207459021225558978820193275010467309357477636837783964813708005422948106203679644633198663819397418718394650609895862047455814599340700765183578970520422096313712444392238647681000799650969591460120249289925639017624299267559898981003277885728123754037450460559024047897733714917045617502438731663402338174806138865341665038187400137057260336903705404950763665139693668372898523862200648165060350709850781796770724947938310478036887796556021432283263974950507520752215200770696207464786927777512059820982404071028303709268631621376806983130513781403696755925388054937741462676256678506996508951208102689758581418057163962832760843815675342589983608382463588118558452358507214952891743566988725907359458479498547637691214640208781931179069729383862057357360678147329194560745878074707315092457596076540821641543850487688001973052029649498484802255633137056063078445918938538167382631795554851569907440707534684715303719540922064152213507478428137222503448942652358501608798151891789671744421358366937321733878228492931179823446777386801802241195774277704491090602526949837359982461490059326027710826504567308473474530629431157687216132648129086252744279180862648154487234878040908559426776617307917705941839358087234197423388032666194932859617188104966166846637341445573479728315243166835331842616872365130022762720881658111729989030103153923881792778897479990341009702152737417180035335135490489450803886353788696747027712266307860675634133219077837486945686297908218185815839411448179815967525236802047727153396729373522693431280631205906701617060461819092006193130144001837467232082336331165534415576494339674320438283402082844005686921482376845247950747934200563867341070070528437641317566245206156125429155624299431390158057403631262819969512037373736457257568402903350812500378561017714969211191334663831252808564300477025331708689393259715057954221450661733118117243869968602292627297082740295358784746599706450709584066501553847944014932919304861130337473205678921760369915382365599286422365649297060042461768154519384614584500268642110097465079344474299022040295438942269099999180693505110940508877501549463872189149238833511413111835945677767460783775483231161795866617537016541220080710838541400676039751855700852227628557230659432160914316021824201827646162230101124714591028126814270237159335604565674910492707025873152728792742399001496316310023635058822859291770613763544244846216272915872952459681777942922089559941022318231383090301618110873261369142385302450206086574303417113725474136680559989688260523239668603574549876913384281349749210390373384539731214173224858731722413957989647300488311693783717243654436789285182381531257214290251453994639852190309572643322382017875406612189847738400929042090698341494250021526928051320428149259873549518929477270865798212593371671853151182094945632259906584667994243747455211534392431447613685624192287021462359152075213457151304244790113385078937150431918288158348976357855381824692106339221231321259026674220471342313644985343294991632185666086851926379629906263360980397331037837697596363546142331696138342137931075548110191587652727401552574100879138438683572345535574161966354414111905554375857853790346999756771924945019065276378233109592445700007938671753558492453436449106170320672341904513157097610993795187721150708577171892997812503942212439267492787415895871525558852658988160229757186223984464153198517795890258396953139840603716619713260846333791843274765917713672307321764835350667058480911526160120504659385498496269331978570317407462116551240485637187945079882651336137862554535373194460545418335714475996849998609628105151838224032494462634544506666902631837448150788625206510721302942515627812027349545793750239932417582239821718854357598684384865339722481155001755979344499494349101270916308749145269636323948229260758366582702309343118687026675190461058056885753809951422862221050954323203351476307120236130519613819201163246786074469923633057475314092042722254781701011882200624875013735407665284109463144037769179583756084013123812678464874344328744621706561588151944576967429537515572794567951594281140468486316985160934192511038196213141256256153189110527988762040259957211401177087417806870531743718148116107804579986486119587802398184611274997285845854316579015209154894078986048188692986938587910262242440219644635562161554243036192487675481974695871619905044613159228491453269700797483936446233404805225963568430877537975399514950153055468372953926109725967630639165161663367228759738866180194316401429833096400379110022052029623546936036237223836307840016507702070619002984843598219777190468860853395673699273044051552901329160114237959374912107900951615301111192200672940455049675099299129166368603157591373142608845675803049408664731202817004787198965590934839009174769937880123515413100038852723912957315614054402965418536183972812398747975381143236849999167439310389245350291608396242776503287057097601262926512527419722430724955248746498286571777131684139439437903893365379599134443419928535182603915483694052418488893723377931535351514448215637537467092862517155746337035397707560692810646153628465834011248972256441507612746540043858148034708618147715983722985981711392921284907650592126225749755473691321552139576337174659009426658423684594739589044309167271652611873679588144608823524113694462504342406876547315739987245531574532132314555993736306460758003387007098212339439847814215277726977811968619201906496424133679059950106697903634320977540719873169102065036617685660562060669530031507550146026771005949458842694342766914769296045561040684102599034972536903154626533677390250058020120034983524579488119996522445688869036525809726093255807081352775241030241852584795650083001070440075708116683015483685040360734533863117778980117846040562630262164103255320344603000811572312399265842392841043610561935703724117497950812119474474974838045539670009349026133162129915212179505376130344855622349076511749112974202897875529631393517724378690091444641453837423594027136725553209532772184522151725396936650888763763567817120437798800327363772704565988734676150339750977128174697799379780138795304463729277174711133108212459469646612294108706683022599410207267377604147430891429447009991585252952954057522388159765433238442851312051778088715946000197473133432372036217966730114233529534699893732735241257022860044256931237882790423712498474052289487044851004705662822128207074416678483564546532140671815843586858149919131244142816275718594071322315321557139281853273368566453941771263776902443119852607699888765927448989190788544805920853035292097926841556209807146730408703203132456918011644928806386493770645007398935528290092339598318257698218795847043458910374197348032265907107434497920195594389905317907428289921134335465892328078904310516601456560416127796835139973689171671583564711816673489961180658656392797265651410826696441105931044742489914141793458245939076560798977896294401792516219946111376776768482321652343984877091221672332629004859230396687004263802030605805253190357254982171337887725003357697218956759624829849595740821399835904892612743695610213189509059471903024963439874158131836419687378801061822514816635975893763986588962862576638864616741767120379258371840741463701676664385364065236629360649369554251567930451804095685096039828049799309152930972562648906758502267578417843065478632338347373780515402594222725153133855231170630313911052875709448162364940042656616727878634437354456475857090144211860188304102074462515640694390006726055999742880541511632742702099215470371387893573591736648536615516678766480582853362607642601466006647319387827619480706324322424304214898524648306174706897002910999284981971643018316887253945550195116600996999348571076099238199177560382636965956309783802692254457716690219888705990485202065460238441909524665010128994993490236871067407103100600277717515625947024868880974966150311273577016844941525362254851349123510127175152237074861939940318144470947217899939930981935791700914052472771920302553866806240823816668258562707363181874468171788572785168016452645131705322755559572453536760141991601688966109586754950636408877574548657515140493487586883235463114372350886914399429358204263637467726279115321831005523530089259256889635389030225965734201018791694210239704514788271337760588654036641369690862010404453095735408243081947286464726426246329604297035806394136500471887568229942455635865479082988845079389948089738465191163428723083900987494861935437762965965661913353160298344640084737039460301118204657709503180476346499632699074346766175927326569418345705900710646660480161121422027563556575831809037287099877342205020764118512434659279742780678840847673596190246607534211809949265190062144085679557984509745974286791453793061201152972202819445912084648503311665192585676320264021302557796996048026113486809081069521306815143982488097785887246155240606559859487107827217706849368629108474269333032139621168733352178186623808723571550389889850194667669794854422274597791093563889693919124979352090396296687624844700064359969632899569249935246831776031340108264034576115326746689197011022997401679943987725006560847178806779719076271289884775534201873601659035103453158256456624153915556431659740061271583314483039542343313593577621729789230090102648220849992849947003088646797668619645940816361984994014754082131611213735727294223075188357845221712494069146725089182436567399608828933287855477037530898347124105753110685905517089851016266178287991148994501479218402061274859380398984964100150684264721793977005032743002373129539722411040907094513326825070293610781840640214583826825371818003087685699105885057919264039357806753780284611300048042956390519459997877697533634685407647036194970893323459288742959454884512186771339577117172093445135486866447090273121339456891172580900636355508543743545029029630634391781751767418099552445714596673026109563879069255636361756272255179488843336649182006408262786074933998662966543347317637307696331345751607735135610747376835206214491507840301346802643037361826445975816949889233646199962346370068766405383364694552727002273169896204559654672657226451629116133929441623972187785986605676439293086477876630727802200237470859229359016271039340420636435117321103675930337414173038143568653001690732145043914768824636805684609425808396595856107039123507210199186694432969223351319297040320876046214834746243040762995108411476309052592788275109231660656214493830654924087489967988788765349992340528153980170848613585883893787207689057695086034084537993236940275587540027037822775467826609162575466468889314938869156932939004222063921232275044060559227098540980876119380206625481729423923790623721273402078172056732822276885228082361701366746319299794680681062649385679908619534162213850447658006692842687920632974051743423590396046317111274145993083131335722888022883656900608876142380723064556537924658498015523563757144888636261804818563536857287593894590815770518765099636013153818437767842966106740511498311779290602435665641169326773332889866182420955535746834198712991792706077148998248759702602749757507376380615863538272965514237100002051000827944420520599028147494682855249035881868014798529993805288175588613572450805559106312555711292469532572369683807341715530353877721760896115864771833168799843805080262022948515616068093416232015342432451107071048875859735945378862517544940253199007618793155551215077893142126297866267664689405429744925551979122341973080312691197794882194592191514573701168185763602139965055153315018970439458279859216868975392812971605777483488509579440884910043909272034487638698444430492199524291803249398014736726077815456820087109081602813361446594966265354010931282900046762901804848700119464023931002813334248727677829408425561022005099867114434855365363385677639319854001994257725235259388837483289411941680923513079367449783104712028738825248166776062360611674164543536975974129526847945541076293072947166413650113074921063350071576284673452431820562733316417483195986938745102957519663110554742879921671894786093553288590651313320265711056199842767689874853442189747343193936325909510976361289803945884651179882284039415961451655614575344345304436091642713390195230784416245831145943704051604124128091805483748856978030482125850308344578386093812234766787330192460252992327054815366179594534067066684828774914084972566632501744010929050869312760304214913340972818129918945930961641595881186488417330252221799498584104495259774229191792986119224218585343252237759663020450384635000373477779647171166281113890794782619343157719861108128525141742258077072686500916067812728695951090646196913511358716183278750146512606952103637378556939036879104483026148897054088637629181162273543483204441385830750780805376083373228229440306966317500378633609036481570853130604579151963252058034909066494709947679959788245924072616173451943576848193168964356509436600302506960725605515571843911755656134731489234761146030736549335709854253482021907990663439117349042575341260940610965043472931818891523332101092431344124213428679653882774150615016110643520803453217225128100560218281635687272537478734667327504034996810223029398876229322852133157793824809213583853856779539994633421335932838781819690722749125710431627289739859632108830709439377685736828389051131807827776324334775643186492758625316914477556010308118036585924226902558548529076979216343346068158131609530362421260825759427164137441400703829859188917358795171037752821523942340201401847543491483914947449052087325668516743687677057194857871649382571112482382971533156661756904815155757185247733093397520488583769992944204845405806963025216669052834517566885083538389375452216627251243629803755292149542886187203396689365337555700510945482894646778870116120364218955988034993452595611610547381821214117152843520863272714525954270322995982433880066878186324913533212786732488041126738852056314352576963021714465776328272250699238983210753604752388396191504816036550422057246319962875701818632054360713561293184994193419029433946183091996228021727243861438920489062565162516882749906763465151780722517782407838335327349443283902045137714217108531060437528154254325206816537894548269740281832401119381899697911467173744862950041574893280382251279570416041349094584143234068143925808420224755418930660801615881950661376257715078509762917547146843570781054569616415682018402512016987867485188015470889119767507658099715309002591522845508031246925840495557787714115771746622518419071751648737638442829738394866731609892965069273850611736905404861894508177019850876365476683054412280703982387399657671937812819584748680885677647158098522925907125939206319814743143633370312846580615911222655150301806396214693294451655040736537952022100715691610610023868380354956441061047402672796493695386695010950029821023328336142258637299651186146249790310020212615902483664530548358088460343532888830352269927635701365820529405396489540249114647012794487582554123113764019896582507322465500536502921973001203370101542274011546743486829238532801456360474139368083589852488952035590083348793625118808619855665021022829647665713733883596059854584439885279598949299754053030291662454827067024810461400964561152798136551057360587039478933462880478955734668897176814799077848227325400607099501452373610421895295404257397843895952916519331189431828837728867487484142510404451517612050207485860357654675972780232633865429600171437494819373415699119713463800906829823286200198153818814029767668660641883023780179419177160954825142110066561150458092632501489991043100611043121229499218911048062224971315413890878074488113528213179518012401682884345188346518708126182370248118353075718598997950816332518294967596667009321612355662555205577482344778951916519317067037573801623329250825688013114767069928744497175454170413857722183600333702013085070837799416078283376910123614557037993070628629705716184755669991590796785694417475185394252146319055820596036493638437330782870763107946126646185881765677336949024188000897988825812130503847690746954980519290083919704868549909443082527936729661609662318523449850987477096941049116584565750334179951897943905344082160533528968288697903188079251825900365704474791327826886623799924170106487803589056681155772309057406957041369815916528248894102256663317242672976388359216387063426459235731052177098208701008838246298835150321269589826253053081567046220430505965589994602662968449114645370355413847673940820319352490669936413561460002877033845480667598271182097734383803194712713666732815660125747020295351872683171645372177227495235741309464133678815788343271969630422482392258325446293261941642007992838559545739450130795754803975430883578048163612069713984172978878492883773674950783316629968966226917510189305384229725525805663373815415969405130934988048873744510676773601419130885323451474677807747720528708093887045200907719444610615637789575120409581832617572348894897987956996296443000596052049707665369702327748894346493931568489974785170918478647068012303025423763427744815027060284619077637460540395929298918078832785269573631595475886222860889398792679001380689023532152231944247891458336322402983417557509705360881762321701541607025025387451295917181897927981124332143008363784578639124567195944861834116359685723736232252123802564882048909325741749073570061092088911090879074914711069905911126609504554170897427537817813133537468864902549683981120287258452834324188812981320810434938334501384954228301094979418921575335895137792612000791079088279839029566071821580555373569033693969767379384664146201538907928493223428279256847150526446274992321751356199860998587808331422801465892634419140582746478698411917657918693066632953365599196742616479591536603573193229376022092573105204975413882203469133857386899531872124247396946799428912866776219458308502505457490173941524876974210055675250130221820540871612472661900284091308918008442926353282567804798682447235326570118460629631393725995215897515620112856559473364683615699796983150954418689355099074573093985265486779192879781309930903536459526486540782383064918637035949861298640472579738139373057118578617769911675350985709654010289215533563618393670191104674566721955090658599836113814452235015809920495905985153976104052900672009058384758906093433170799556110995326608096416839403074238456670138119722350889578110931085962506118464822983829733014846420154777064319108672641819474287222126690124950237807724990338917959038368515654623577677597776423424291737992640624060984647605761243872682508369244399864897114314177087529263741061279719535650406209514187215373304866456504931846389665108841359313680323435250014938981435683220112612337492558397972179889069168052286876055079169209863552133293120597340339327017948022655854937739998986932708892166993964368236991981962409666744805272600630599310391584140698762649855088482361885978254324038350587511799981910822378206972294963790197747787040199892892510418421038264568136814959870633314877680651202262125305219031734833280639752549851544751482335951572359481267392302777923832871157182762432557606192104627298227480228447282089751819177403722453651386978660383967681295107177985070906339234787398652099684532155166819234450118942297966136223916147802704381744960240994526311365187792693688826719417526408571975678262860424380473568327412637116170520964429546574265856732674765227665952092614083410769687809017178361214589279918483454809093738619427659107066381072345184524868894530949127904423422789815066665793898342893768501221755135469099880442901248425830970304339631260253367196646469916819706290141324995678515123168346641900720428699563597969599973049717077490049932111228448184846825976642121007743306444880695588979063273751107530102881870304502819133805040123574195128637921185344462831838447238026445096174644533824300073870607729510393077808560997521456992294538973083595417453751608768544128342081571641236728958757131403036371688544526602503020694116809996568720464329365923662112874861546997346032407140326983890816915021704044886115325227408288377116612306171477926701899816913642588548943690351446224457363419373598274463928611153282667715223662265585301357503141813040638888401438431986639468914889119625153651420355471050406485677577644105289538301170579870553161719019409722538282580885188292245571890936590053444504609509244417502174321975504295241951306033819958454230330143914936990017874661337865354260482776484047428479818279822328941028162384921553699751835068937880178324458984211799997112679500801924054051981411126087024372541959339421633583782342543027433420433026146516405061252065606499302479579123453251322424796421062528703345193612460852834036894383348301033214809943197065147344527221939095892857461479518953891292879661204862411375439310139673673315866304744810432736108217051803892553742931625713137113078247785875529422422742645376918491640182122592622969642769925419919914633153183229103079086506810700701119136789692447077349695986197616296909823229146498847969267961094673015828936239215346711517036114696128091941784737790364955913005022542874880264198181103550432081143120886828080494649907966794322169229384128976138008004193640185668161505191640526328954095735471846552039056855895390447084004099819609616458880595373003143833827237322361737509434191979045627269392055744193408284300378966409392636564279672689499584896274877342306772246374478683804065486683798933508500648315014909017309845192274443136865432847992665926701956695695588567635880696175067226432327456106617768782488720433439742555167768776375233827039144489776888733239954940086136575224918090371373725582581552083069477206537748723211125754758472677482538120028406797157576600451151016167680688527561410598646285543775403967257442655069579597059533282152280811046292820370562208410411438684267868090349068532747040563428850521761331304589780884920862196411306772674106342112483088699806325672343636045406393601786711961484809766889409360632330793698650096791988488407544671971536066008846396049489632606143167455044587264671052411004690240482111360049013324994649996234691550658367080493744130578693949713074083258393154018223320982479570024096806395731759140278147767905901854729914107680377944527968901956289163383251989729599780907480576330305465205368591373777245462169213872251950592086243968065441050057048006292972910685380521994004637911599509775570978866268065769144162885615710685413632650735639537232665114159353082712677035466334786618427395472369347776113112371675408514916892381597791542672995036071738992885084821443410246710316969931073671115392318816613873021806297016470001955550188762632009702291027450972262088405738047140799989723132063981539511131377107821181799443561456989106675282761653171526107704211995766514688424491600992715488145590185630646657372877257308274850962548589325242348195178489584097555290981296767478873002736290092849759902635025986982998782197538752750746017356116975062222077058361807491304575998795930189839745362182543353625283660085533165860525936987546237337507832448289660750219798064916484233862952720484873335472176831396320432893605303315518559644350697529487013189139178501367465456910441389993746945274184896061628622721118258211585310697614762972230370093009448326142569787829458356169138709693889425944226896170587152211884919512196137789345523316411424957818503454639635350838815570961402139018552203721954218177005655115594573865229017955183687226111799017886550774378071035517642106168037022897208510166083932765328472287801950405072970609739018520165265340656761486489002506994198829462475262565869478925183465303494806603081336686670544085210140984431908599508326991001927613449613781952149216656261934568181893092721747195868005056874118430344997855412769603021215854993925345723490697139619525727799229418369104973788560867596295799716417782993393053314199253460219908015317640329973407242730093909273620913686391172010984885931620326556593487702266000427048852114106788335597458818265620533549819308219319993465741673786577372349391567513739831687091771702409964967428597025385571644502766374347981319558408518410799149092918005972975349456292033197121494540722018214960603864194873440999844979773744679209858296166907875373066325602131934594261939234578718887381744452850548624820866379512751135062882574773517342918625094594703652126484463981368882222160318358785639281970634915665210617728866536120445519641837455953768178691430400694417702411936815141615149913345093040755116477132442947784646396482970860173967118047609638453279466921661443090670689107702253565215213208409345024653359487806342176058791236059418842684962017011127014556272219204995426059761398580723717968065781669490388430021805188030892105805585486029166829883511312882655493502669982203365082928942844153569623674409245647409458547877318491750860895187396103759155409023429157797977760431967457753161186860443940878896920820701766770450808112290696581009867426082647308010180846600212453555200101846167930458885735969328046800513410522232767053453996786516182252578336697612055059549286728519989142756741660942927840271115323190169695873633429367645696006487228999963807821629495562797198312729111279960572102927233611972972615486546845096014801733008026488664615014106216626860539254353282116063391872295927169466853221802569951472840655999911585248078250907516215798904480915017210323055269518436751259547880699332000339232296577932427628807993062790023452514299279512756086090598058798188565075614454578884097187821022848640042086782978796771332325047375033161328784570312752978753785197403277282306498725568628761868227661012599503085130666952420638445525693647783332427123599982469185137450776709776182428340914067911416610120462038304019545280668902629852451238941485138504992249903036752404777226884139046880543539374049387271239268771388227077087154748276264486441553939635220399495343775094342653054341254479501734005390707589966332596517112733335201808020890532470459523305733451487042406200727611979466472636097094167886937039460891141115290452165452556415842859538973659950393245548771228060527013034173181762182114150098307419446315838314819169951499694638703782155189358045036508269408259223938956597988797601486598681180597371393802952957389889020464259328432413465582032822736947381278567205194265371832277685873081486128350142032053349108358697882396327369236850153191599019806257246857121202610081250415591287430293101358849216912766611131696110380911584224168678828465029352185736517672469328736343303543463130394014109394081356254915200236827543663642449955215873760073346431133493062224552244149884142457676509848009402431472166085033732283489200111996921844343809557594215251149600164791094966060993201301446672546951801101303222329702966971679300799130900394901331226762586438033554095729380371959678392695264942525788788585263534982404830422602603651106041776879244961892122485693686594603459689117242136778527436857085269511968999379374660577486777419609777959719684414153195227644504067759656485127570898243298551907482362835252676447384317693526375007130017485687208615761549226322265581658725412390036273762228210349736477865393658427398271354533332927817739058203526100247475476239218508188898008417810387850488223210865142254038694748153605861548356044142244269189534753650150865601853453189569331354919814524710078300793364837637759212843565234137716631470268411740337996574248297706862854489148064026378144534875293082284056300951655118452093591177463737127779493958181803562765560708637818991956812115236798748459651132796454519650877364618510906473558952251887720925069576301935329698742288531588399269785630470729768799149753225877498058301132433592152446091946712959778206650475598903889167799509126849851669244541730153978065653426440453235154266454103556441044373167610372688994637725470433079704848453853316912098193502591882837987020156483504868380176151001557320222526841054197642775942033372826568872188389744480358489488678935916056317543378271851318041290810833909182262472097237939966592893767238021399552143601209170648229486339528857829733254193496585845055526482186825391032680308693146056679036147707733385217563404851653308295740515696749961986017123364321868511274058999271197207219215421477160182556229761372223689258386291002057913210940287274089797958310737941768866724528743487847121520619049069215278768004356277569412538235780188928177645165222153529396297478027335913818494838931350599562872822363958417600600875931001881566063814544988416233102583008431731455208225070511458061381417830437816048958557445088775165421059940973770185972145050518377797499905295248443006215455877152755731420729024578793688868773959715067577374951576893438422688638270253068055265269824930129874114967878430409674915565624090635175443498555899195824430119225402638734554061878847130395544821965117599270249465614407283201897367917232300642513231274073332347013362048633030413967300898406882364738883017622629182573449585160130789148854203612279676848033291783401573031163794894954778841464510598054298269506675684391419293366552273960085797675331401387615185779703984253070878876922829708887893823085010954982499215620643220032066670071797041522523214095053985151499263609690697968252094125596749458042974975346217446204127804232836424472106146990194621776033016192357106240499472296716508631223097356946548994146354553614500353261648701760279937130463314386787538422302981519655233371537739023255234128555577408874798148685054069081137006056529635251587849786875890637816052605154677036228296193299975004136614405054543546152399006258683140250728014205862899788770068768556620806468811238894634642219900376149973839254465275821321668313696306609774730926142762745761720387639094785426416025533481421670850804814999143163057707475998671304475883463691008018354771316255154839526904586327693880070179216735468522848261229814830100368995276182945099420715216650376443800800400501984655739016156731249989536681489066112001209909815595786830679845739021949475751968738879695525801224215347855689701739879749546927241928777715977346215237089305436337086514470905338641267299851871254564136019040321335560472982207302440129351908481269102991314652652744385107800731223994516865522483588103707191255034813199225540684751562933256443893951819405632802656006622608084584137464754535382075064056036360155120137356741907947203009268487438909885367872806160452152581805521881778659343160086449723560836441493224185504994115962463997836113922359552280647049809832969360556856006577119750486677765369339352199574693060371872288250003621960616787873880407693931905661097664702670076042137703647293364495397234674533320053970939782442726681869018730867793583703541071505963388267088962964152542392915289900805132114604504286814987521902955347392540238065832097710959505009878885237101648267699744686811668975702386341719784862181033756272432520768780055647161341755588484341426180112962820890474258839045150215493422048848539111048299713395909446489803954079426398545967072635569119788316002654186792620343408188477351939266619004881353859705984521444607624093632262663617672919002513557190187730710962401724528822156863885488363832393940148193149558171104712539383432665616121927001633186038970601575874263529450803417788408497477393732748760854407037595078814951978912655352553091480544001929927157805968977570067005583219472273114857332148655995184270648323645529028384209822940655504813643248490628276870675433053744948413426320913825802006860570240570947149364816083057390363997867909199560795738707160584655895690917833255185876814890116136633501714396445513351812790724450448751119166834667288160387043812406622953121653107323169910110637159931149672343567485452758785520747566098366208881840931098009495914393536839780093262380086236957258843969665799059982044737365567012143022874591669476821024948402696527583127062077531061624672822187412912934821288293128951181457024700361166020898373293235578291036034763349834462743021173377043889627200507969248122680457958597364376782157980502650909901095494283718773679548662007644675463506779914005918698093075384694047589307471246906563770728139033838312493142529625744761719945859221568943696599468563548723480557436223428102747232011402801982544220149323892777178495066492364556801974135964853013513488051703002888779778041531035363529810236462090909063210843780661954568097231090680701619442491922440193270457892783005791758167635781180665514458077766414488035688969048274551816877703042233866689964521056929051478191479433284632635831097198887281648084032884373721315298978816076655712214117411860333914610329124972456429331627410747076700869874750318594638120938211496305139438758377027687626430349689012201753241330553892061348180127893395355154115125791351293614792097129746733771761012503288553857438885328075581703473632675820554594988771870513434976664002262999614693686199910632275296896065579215529865173944173791382475347771439754622888977888432345649571600031235315709737844907898561803258681872607248295938146812960012953142884841179988358531293198291100377349060098393546246693667982250090050604991476180504158451741043163637618650212501559036969211974921408768209041301572957580706403171572736249459291352925519443477549804371603147106645617115975121575478248230223503067775071860279148459409009147040919073394492886595570738134369527688905294580706637798838637476661098837621796123236498538799468588357472092854976237998013892216559673988396859388097625760620553468610076144161404770759002674359958404438517158272053814112232347482509662249845712899736886010544015568212142929708975798861791391991029922407408889670369094059088963041982563288549368599546928451711848779091788981973573810307449072563912818289978539502373077139470666013817207906108881609804040416782137123957513650990283425629590039323352333045490534293711150039330507782827537894912179952655073664181644282857699236249478268685403250540307715191514218162401656563587335024768031340014316508861960036734989008955661994536205563945616604572980542707096677198994756227772124582765418922882387457697939438777888660585836899484211074920143914288585181165329102146947009980914839138786175757157250266235417660036273700735580815714289417561003712480415678969964490913035410758607085382229989478503873243665629289631617000014882639425207973016052228418561887267901468357328811175450730951764312504799279474546544751917821309717231073438611982142901295306386399044329916474253899228805577736997155214023312660696618168455405398684429334090373102785087154827760538734731622806540157903323775527007977521068934973426367745716829468879405140992065618101900766505106923813301766289157623309327796609589075953486087052961320632752014194173605606580224298317667424092836054347724761934616421049958478389313056843488659597860398986154613672076133222431536558551726179931605748549390181952725042530560477658578829973068140280638655863141710174389090973009562624096472905095807060251664676295548721971255811971108645777076991202161426928654385591925887592264186803440601936391665465676717710171249108861197471844568109163695090637483327636435131697559420589773654886572885184770322168530327906645764035876439649484598293659869889684104750782642955212546183391563794160658820632574996381349385286026239635926323159993735766654204970387672608469330552323879774343299988703812622312332280462002614330596316326293765785455662414729627689304200705902410445426511158940699547750611108994249786080458436049704232107105691455167779648837442652910209606718844188319892233708716466378030258300949744236025564282319758963725696333960238617289612591102505963497509227337398940497830976813942378308269300664982487941336709259531032743080022094616144283032497421639017703817223679647740901007838285738476851146731908246893070666711061857632093183810726905009184032284764217957303209957833076405616956230848501006498191324688697449433680889400057598779463708306803207951677463424188630748982421037641077687270688764511076122839294029599525712683810940265031201787260137650215689388987926722918924334245562276507907796193365891351219668937122029099947970649946589204734136359818943317215667133834133583094154583191987402519548838118265800838106984863174081570274114897084656298241851848900686229447727318403956898635487669693586971875275379588607974197601771470847024401480640567388506540248498083647815468469195109114839528475859932096605045991501618820414927221279737314245713591853659245629859893714098965184995905329481502298767679644883648872473936597991843553009522077355505851323061660897521226813205417458269267708737996594536742434463534361273748010334680775214385770052551727932704493461680289302450475444337396220105720800519774604132080498023168193645328413963835077797519128093125123816283094712702642416765792988692951910953798266504049484550687496423236348551707947576905263958490708963895072445064722489610821966747102189235716334522801657306578375760699283533735175788187282304932639253732595783763052812760944230769729491840025204978841178945164221187860466551725153222744320655050190853366002966846335814371953777087590330559810357662278118711958768020865679199466148280067146263532616986132661712025211433914751792703949564387771237106643756457149282221015463229271948091761786819944933160755349252855946387097221611855053647401863797748732445754907577473572164162759991870401081721290597009725206951580958873314897494437913932579722449950708901070581163303354342337561290290229343349760882761813226241969313468166932805995347704693943162114414001811547640269858746260884142091741383543058727064675627139629658091124003823257960031475981640686987906621508629755296509922753694085755328655299116301773013202680349010273521570711925412078608296578513815219810421656935376305950931031455216595776410945566980782163026016200433780825387204606678860848981822985744031145096897490573027559136568071366084147339212015473839422529139960709994682823482020965981276613937760705943455050752623878116520620700511245146205178586153275872041846439584577730322438115550490089150746489187164621237505130249218536302550833349636125478985779455714093644698636379127982180281166750609998206557524809933690924011057837919003719407012595880351458330455049743017317730568150664060466361753648350381989244985799769127324522034997795960983856500078985936144847337626854825911384100337431060127653166309351886528632174537823352967583716128164418763898595548038679329897051106312955291121798651773171637781569029813134071920705124422618011105150558185953651523765681722920832182836878377565399228180312871462140702914512429496255455535535068166349257721344229159247810904742083246000007621912675732718411350382789635660217567938634630491421139944356879713005967411310101098200966151115184626789670773447706441334780755815580613688274864424810387161646927040347959929278546218520421463076280539656484521753163656878476419640403294567360487622824988493846717375969359710324049522086316019033613229167910839459418226942889773580628075992428937019997334039866045663733005769234346976027418234446884863343156363614355434886214720895925543789800264420502554023510515851914089451264658314362713531763774517213529224670798587569936399552881138512860744741217078754773912658895759902628652279519950176668373341206827192041613891573659422847758757668510440758557993996387816465992014507831828651162297939001124541341734815969897672533855975281012314338562387194726785295438037502002503533889501262987585254436226875268882948140480988850115268458022000315395667594907448283336402109302626231419268748839823978981624635018924518999739738676567730339277770650870892770638142897485731350509824897115810421273290858770526520286564200712370815021032508640841548111888886888500311251750435794001295962237963481479014058464329581753397719322360058995025794091916810299004758292523142949144351147515972778350401086909920305833549575167460453815471856051565750003047253351556645816668227566185926296226460619771990611825699364331765836306155539223830055821173224670455292664914862502167588836614573324737334707620544628680843283981792687587133526792825627407553500371266957432576372298755201706791911741288172581417837091970842492305444981212251374054299311579909529030890279769677217388250196074942408325771880149172879990180284025746487914694520381908551856087595525564284280528742426538209330540577047568137347315195324338423311180789658995616008430594189088368671497086435041212906928884103459357848023751371160579867959565171337463274957641905183238687144033803524202590230394423424479775186546684850251251518094566098512822195327555680936785608779252165317076506526447047650430879212278314047608442582728979637521294263732314632888338858665108905719663549067761900398145737494553486563393353121718911783324629510820552076190478875214300188607939721425303732517495085686319798370477985643931929428323157816833260311010392618264274329758154042232804772659095681426433944677201547724515063008858228174093146161888845060255250154078631600175896833189710543935482548630013571265910093086611853000372349982443881753837875582706420343862977128291914415853662210095328263008799887582778120702623231591902499450301405595746113445631684966824964089509036596412755821283909430787644107181395630099774619470607356654018699283718077346253271865434775444358741404342517597156749588374076551752201372791240725377630811857904186341132178252643784577715042778514765373927805291535500231823238962267575325967503351191434152238308934314851281104055517980000853825751183110491770424461084537968372377280993036023179360275001962019711419774827485105336097143030766691112773660907479345428532427492915091320663014469242345138850883802481879629682509042648928469347264226221684920925808830051629459550715027182036648982718213533691751265562854718678407398621280754867971660815739349401882382876617483833274445166831008841139655751828538101938701721991845777187921261523372596713417709659394547919790784833547122682508439023960038946324650644683411926571097910502900378317810099695225204366132007373165629233557412703236324121919034780321245945766101234612657756264022174820907705228229819485495022361997243365149785916338366519025443268666920897507685283913050483726507151441259095873470188711561090435176303150634076077464713412146713595268277796888178085396043409318702785612149521396674209498096242834479554057230718238758475190021931624711829533173734734712164388743253769236887301470510110222364778491080833902618491744217310576539724599164131594570613607648174058549863778877906595682394825824254752748392001072608856245537259978753639820073389546112992811405822055522637638775477268167566364256720637714927874378873130359372215143379975694078705058670142917294013628681716496393756326011686236757965962035789554319746408284579424075778488337558857711838720369185226149990939205443161758213475660045482891555343681681686229359222248373950569625468175894205429882424479244455201944478127350221491378038316063821367262129636708902696982159407660020201749484051672819646103189084463726780807681377944029174715276972694990763137657423393642404951675945546170321467088949371725964484441184815756593547798378320734242686907718597512967555760311638016362226956537456904595421952503328475716254657608891663528712347589646803934439415784362502338648558430494173383361540691641435550265571155452088496940895346408884944377329426623599214914324494260795430208912155422927200839483646141218626057462802495932456540664239843877240911978511633521813040816060184927944839691789269347422004526727392635983337369094608332319700900218187518570968065179381148049995275968732619409951061481003399390206134193151455277505433497943819408633363652146591806726417283992560236476955736408342628944669276908218811808107530499283945354228432564832672428638408330134230434536917079973847473319748644779885485780704366808140033951155316608824730447242367783808024638000575878839070151222971244483934462924798907318190637087446787627736630908653741590662034254777218266601741011171014350799462150690285783674767525174555788714836990795076170252913163601160376728880689720335413650774467215490321060355941334781244800608880673323518085208948148746151947426391214046179803741203070559196307847958582455418809293383517836228910363034150720303573578951033270643705321341829697569818049527729106071669601587840258983445834204559748909748182514852625403958785751038613808552711320847079929229536112011797311601829510273420629194739383227512386747924034912145360461353632035224660943299203770352335509718340108199089675312735616356118176969612980796149345561962569739541646459431514308112862442707972902076543457551556698828267587621044033001627264782717985554243501472809356207516218408075869858060449076969386013162215464077994121015283342023046721832788130497874739766854504734745875107230820627063070250651759699878994944926549048938252291648863829711105716671990438311975485496180606961892184134279295989827287687575212803463851312413664847764324406697337008398114755829418873492662495169312003682263908306648954812207468228327137680210061325199766806568573532290931760743482213816602000520220240053760688384529507771617753249950888693575891638756093258512549965425154257628216470087300065222899371771877673205932521588916598777196887650986106056209053446798274073355988332225960033698448060920198547721862623487901161816748333809068339612174230548722583066082728259702017471549161138503977848638093002371359222464284504248013015916565727880689514181923209973021270419183165505432804212862788929785880797166368203555206671063997152637737590923875017637291459892755218575828040294170706411237754499423194610478839909435583474428796628872613951280612958279179947325252233446027459848760075793979889803655537178499754289864976163716167961987846893559159794188747604073349583881334513597842940604280574741883967106678248709244984182194047747465903734811249447560595644598865807563790540021429992645468177582090412446661903250596481126496825809739257309645246287128544680843508744405978692672757826316372676263375131128423546880928810164549824957456428058052977917178007355132627569722079989873889977194660208649677968170299784777571439131789716785460826112849003041354454290797462333088846812069409641732701027513310876180558886580505473300167082076090801632244364774493278939150661879193115275076995683096461834244004829915205634491168440503558914961325002040224038158017669664207528828784483413798791549293131980224487056554279034328103920190909892469969689077392117997198828611785862586181151568647316434858529109392081219248164942643222847481290814547960836949527017107983165239722975521911259727599737380736647178351573929462795217796230423804585852944816627217402695562037634117633916070034226150558856711667660365938028495525182001546918851523338958277101716581826085065626899828158762304402306052799667665035078025178192962831432542020265299086077414974205890680881796848859715496841266173990522999530998771528003877496696208542501054748580882110998042515423968894086614529600623315563129575984018208885071033657257532596987782133551560791535305352604731753634392562707251631862943152958041466216911788085563573504249677629968560939958250419082883640173426622097016909872795515734823904361489997608862951409968042942789770383315164248140408565112438976151911174755060722484476132231530991216401893240889632493236747794222429304098219202815329615887844458856464566557729687330992052231802226682944262804884547708350647876643990744253080446728240533871344306068557062820937389823023143729956677659356469058193907985978124271018206117233440961173347778905082679121609803032522735044181064885997813940850383415158923684981878137988295313663973837951044646074081321497594536578892344567549470640023821316939845210276309484826131125697574540230219823040828650068243850757650127434684118407331998379211608473327342037560047019919889599371548629405682504037436852615503407375420307346715119892119264682330659947517740695186680530657063459028315290272017226211891187099241558719829666117111431321597568935102018794267180239289069603918925640925835492828490717509737252916936001202079635861975869017502486623797269643638031726305158943917220271056974332516769247462962366901197861264223608428391212293586394195204654648924338663237342813843158398252822749745013591680666541756720322666077601686071942589834979630015196801970238547868198820449190798791319986856131871566703304210644407303671287588037291778018708273208471090866259007327168298376618124980322251885846565253220252340502410568295057542117844630962967459709701702688347462114852170967348217622657930125514244865957019268733465176532896877322459275613716583273251692672252601708655177887358389959323820117920919922411269310749860251244736832907595204905246606508774503063148789779818581096165710104565400749137938498242973068100463991324343223188935791703417647212750543491136608622788800834369680841911516670693462644878248004940347162944430654563922596549311499070335345365889114366305683831868120773413859059868923570204425239016013410420512889034407570094793289962366217440076524037410202668914656007383241274983859495707691207476565074377416753433441190778169661959214564229699993661086581616557846803027071144801217676837610335075565953259751358486837658078755415701890735724462988937868722758991256588127882760143022509788223813301738211995577551183994551398733643669266825997717006755436867003201346320562595619618524475720936012021372014502015961153022514269853371797231515133271634423925056830767676200584597266092373991794760009918437034532892175931994693547025159668205972581426889796118843591177405228553343463846134551848434663684771106136692466811512445454140586957485818442526165332776188538464204875735646284821299962716193726784333664840845944895546121323002148037762922356342131110771866752509437912075689531243517403513435133162271535468626796333582538319292414687951981246615751808232015153283404781031031163411227585509581103742287711750513177782647377523550624229749823561601863971555468285258199164085480210009831110015832844794789470276820952757969613535471113885543089736229921447074959461439833790081441414805519360564754231085442049600276583955250364509498417656620566237149858132764043968041014647585780927056526940654650443727789210841291578662711607277409385955133532452497613054427317869007940023711814066741102573030605072785905151470697607375730367756198321524054160305264264065848894202455573147690354520833671029984432590312014749554718400157371219949089069625862666549060340668029089811179401711728008138459460551402395006339987660551381552873154595433647517458042390915174087744079566940300888626614405693587421698544574448835928876014546997456925973662500810346192865343076749058047518874645341976922742394862598264160668109834819535454213162836386276762173168990380655415138305259885351596414452146125476690735794927884975481631506631064580405394375373752766197876097704479397864880302266126576041201911315646378910459307235975504904151508535070398849497971723279380252031039389188119819647609490649566017917589877084161164230298143063803126622610061253951811166689994905982271276562760093487523914190389924651820649753776213715794860717288087388062006527470454249958872001952524007804823953581946628187439174805505307634742236038454493309117034158623482496379494527321523628478892816743017932870515377886641254097155425640170584746237244387987458914022860876573536739896006453841603132133879346758211275414263309060052553725061157250679784569875928150184628591712193738774806719688327423091843009300535607033887401770127228977235252668183328661297600513440058868474201230191580151644318634345628718093553168151090643882915804950379216090427076823171263906878352581093329516216201820338518704132819344221737644403405135551378462630165458375197844574001470385402163944492625610381215498473429753048140714088043510024120570546232433532289321613162545945807677856530301402840585223532207267642089871154782216614985014716633420304198889803649731543784243095487038720583346195347712520237060922822795704223565336815165515291157221961341496749443732295724110779597997275530357870594816656590910890772759887983289803354835651306122659219988352272597863516891039243027669553369444228791399391476479870869722707341957492085490236017247616497851926987150751570142464142071679710949358933984684786032778152260159059421904739653835655578726991599148970871651748724459984020762966000022810660204751572902380365015897551007451198000681939819932413876142377274594078438841177244307794918075863047560927786976064614524793043844112108495372893815685264703415472070908352341671750731256470717798760581013549638907683792536218027883589102382670561537506986469808165237531366621912804116104541136563753757992520833481274860802677301606905052072561217357891486866443313069388167881229828317878706446200340458284355874648253377010063107188421257431908219230066460436781970322793253026354878827966307728405475977894034343793164550765637504430106199505260188791780130637009737040071598914663746082237913011806146479910988972875356887551253064014461831487418627829198192486873103193030781634064112073991695767424699365072427414843811624784841182579091722137276111975004499384804701097226102528479702830222997742407130634652095255485905899793803782461832794754875929157465942044376882286186297180118534482269229860644630474168930827570388455905591262280548173545011796420469315774444689623825991566402593692431468915224425834691050455559500973092267803300903445260806888063079826735248702441505498572822633463972548103286914125378055703031987571673830475092349106928358665121719050665238709072861222487760294654070389438124853011139063710580262113827013393079995361996754494176084578182691980857061698451936626362179259710593399883452186520552685360739366036301025063131811962153693763192673107490956656712765057430227580198997623696430718384784402759166932923378913487365992665300660631552258708907835434508497223981838860782182306744230678985845357545772830344809286795006113489789112449680627873466319808535757611247933271209817731463381321474452169409340167098119439711666697257456506703604453976491955866118562754083302229054901601855223702340695789339435444345779179806274855815048355063793187633582541652705405046067345174173085822450283539764178802766234614790854910187118343330055721840884404789551431118676326819650486319723570877446264815779844874370205306197763657954394913699558369982110271607290651530696381263583205599551652604818112596377420575936583637404792276532596816194833787804833435481589574852858841702870936338396904240544887802519292727658867721369417603382999563088384957891067463333281601256148295063851855548103794624211430123730386208499956038163834099322579796786936974890827647562695410755233286400655358869014327579665843768945327493776089941681102294026224191766129082729074363627233924541545328628268479435853580153093532961891101641681866920004154657423122892634236361404307643680539674055236593202090931185362049534194709174738498293176645000338715001953572403389210817088182945518967877102666178467526843638704557557696876488072142220978385932933340118594310156960140685674723589078056521988027612286365883358125029705242627216190075724155229430787256223779975777668910588376172002813879387321795003928698791893238256061417636363592228455888015750669123024981312884238341408092168632096266015628948745909741374595896588615754425845389800425470746125988597069479006370253192345082945324493429747318075482374952006242767891821108315583237034278022385150287638440409356320986380990952927978821325947206865368381194473351130749485184620437084466159925706033213404428991595697535122122910407827276297350788845188139922381235315722259668633041098056108073971656270135136101352244191942740571158750780718326545658925509358276817582034025490636755042442335629678326801840474485633222405101737722973145676042574804274544174531221925619992716028560788404862320642607894584383614380544507852624254869827540778448208420572596178077388902980861250566373375078911583443984079134155777717061918795362177467771126558245471934528139625643822005994000827548074140266911247899934085268747896616631647589700331264497543309070462226307585436649791075023077962867570613141957174086852569347934514780016917886336284362689596020094542168570355155752202376416406622963368610331123869796042840135806295854523034093669646602226565902223256483922973191664929344447319808125526708323246040455188780136049612596220579283930480526019315030110372661612717670472447656792149675613184464832471534969957072000081720419076252261905001148796500323361009812443009583710511211973279291225328287577859520717772640202440872384296317420415892085661405940000117735325854962641212042085918382953989001647881055499020639213739817660494370129114658934482318136881585550148719053574398989827420370384735409059453557338999105733789795743783417970931049246795124128861465807774062886834638864502117617211170042404373679384414204800594099280165188152077686432566115191494900105311530692161797811328394893426933390402640600264769903686901366149590654072269001236717913163053980567725288281304333500297689621757909478157459577528985777592362131214123475324927647551192027204009155154668055703683715181129391392348905835464730727969787705789400585721052512970688147923842702176708129771430521321969389441977624793741115478641398751875978027009960345872202299313614029246846178432441114550937204704566730658220609106760856971863678586414669749162139100580802228262367738637414908334273120980643951391938834947427918039374135944819586634692549431328366424655709820014438542218170490565992333827240549045243132561987224615398392565992045287800762762278368678107268679371580044689049326044917748251347645618696989271710910264997517449442333340135982983637597024731784830177104852305551047599422287027037569796685932831952202811080664350990363624797602473037678917495348966669615502900630938646950992480079808879035588332211566723409602814196083010779652528503746606874605405147989565315371977178706052523682115857807303333546038417675334699986100815264204669431968212134169430273710831759157617861353318457764062786946836356873483575277912530963143410165290719859519393201531602468427536670372701513883791695780702473103608923974524490945232984316708239388248123263949999756839975922594847139053389809970636763858741887941323683938326985834376365058668059476580954752553559918656375014223472236166858596825781531861646695930031095797793627126447997149977100244621978292103090375402019497328153670199682392778943443272485634693193676083208895828100159205687108340903694675188749704445211574366428636910809772236726022613308159671049005144084674292779188074484308536733955250836972125683738729730297822902504478348916851552686309521665424847986318701486324245738311356054613270472407090630767997903028386519582805916573844145503810621383576609982937125154363506863036416863831699765503112773086723392515916133916400126657766247970985754011022831076469402602296047977883141191462994101891052647934198624491725063144020740464173676814941632466604054216255719877844548940389760120528521335344802739051824854393459067287162339563397957576333236778829736135427074323157971195250680103382367135904859013192531926299465095846596756332966527776864922486312418879898846733755450735640211746611878508153066532935743834278857877874170779755491914616746943715497868444948734319206431290499501134394272735020857904097705028164410322019661062408574163599643308895461035954932380952617264281018195268904388444577958989008377842690025437506586060655415922103778411693075771320615823565338767354580755598170504835115076403678538921712123578387599416959651947820529497655829091863171475333816090897950059752846851168676877020004763548731436370752778420570342965410688454291961821156681020691130742447393002758894836326529375685378089123184164878258257951703644075949816037086867464516667473475693514719131467945237833293316381930853552255190716378862374014777365834311042578229486532536566506499831013497090288244165240112890022390787351834444158737401874098965659120829490602115857383707500621684749017511103337230028820425249604642591490561223049180789951559471586978959787671747959022593298266784074899466141391166340227307781570159283824678969319161992687902844244803819949225492820462331832333670638599194949781804343231415398126714471449315082835832694487882851219261553651422444197374264559126124811917043172994011662933173706207946886625497317234595589234646182513993211840222369752671334051010192021517512994544717480795721218111696615149836888679326373918582303499973069229121322547660161582027574228842112329223710043571927189625822517889314538681712378319322914550116259642872192447808243338075939229073350009451679848205395362369546101245286672634047241023668430724509839584431727239599400737832948334285224478262780410976847592985292497493312981306643584663040469393476517772123021293767760518172057954728818298247912041968824909290005575293370541300530492491317269728423821200047158377702671153323956215297265285068360155763102238774142079736061398361450102728129881124661791925420901991091120095183100286038749447980701775268417470291508102909164397156906239331333602795379885680333111973461986506648533093644300007359819464811877356891272931702859278645453899262410800046978481299333690826589728274126346899981045048536696953883449108298465613506132105130870791600859107867755573649795783531359163152274693354562615130695656098633194190952137572201162858727475818131231802200415077157571223524815348599723304500900435332558776492077874116717884326945449420698600980350809414373344736162081046722285152654412876022070809386961905777652149401679275961123452448045657046310382149430647155528412183360303622948968699748345678973955776674496520422788538786098792573895524905758596415901031461014016810361322746638301648565219632452376221361917520907840601909205101307170764877942757309336562011050292560675804528742269156984402793591612314075278632690471463029570867994852958540897615571185583133726303730634784308299550428601827195311829384080344354512622608493444579732550140742548688979159168477570604778614661033135060954724749673620758758014510126662710614995942233612582495204715786428855106136862815888082287447100470915947106599240861781851413553573821701198733696907764852578071773363559776821645264573080196670608700476330648760441497746462136768859146227879038891747352032383276504656731171079976156685459970253983449396474282058915142893912463734701471532169615643562743217662715883829282950197870337333127125083956517148271608014999869974102761890793612034658440730002947157744638848292801585114007813399483844441223516353247491209627671472517887438168594079300431698032384710331876982572605249806300514944511101387395226733837389116354835535521700426923226868708635466845919411852525129673678751639897678620805283170851566202451531221169721921623963410963716453907618313024527733058747034245256869349101049389892500692673934074756960676581853925898456059418121162914535235011158553695354195645047443579130138281753916155400545438215939867339428557734173292292562983247619353734802780169101429827302036147716569430162339732765131950866508524255577726512757021395849505110391705915024552883080637079422443415112238472314458197805385445338196020123060411778427189173582728323030499461867756470356837365698767317451350134092372369681792958675756691308065701816108279738566686544765055923491871814399302799880641045384479334854983935957233379034943807154019876027162948229049102814417719246675242458317015171704956618282822430394509058594608527429080216431268075612807071661996188521691871008316511956105528692353847131345486836359033689111368440053392989397552768548713213857839640559082329464902155971782622770508107947624453143204230254108834491721547822407599421824826682289798714131133595024681039639479760949401613469543346632827885632526084271111985592828553615427553902570075617586599840041798030207417819158127639868051856837103425814805109773637007633404890260372486028787187369541712835302061210392050834564076024879223412951526946005756045379204123582198467864432804359169316057207478944152575628736008524050507827293932661594009179969345955901332091194930340157735116877840942307410825440223658791585177224513582793339034256592645284421784141731723306756504620522425431239791205211918644111175122190774337834581121528661035957611603215607648288271092021749315469853162655353780905992844421739106223693364721736815646844160809209207691503952733666893385092266826770840451558945193009212589378806032661210305607620212306810554905258199483110081013297071239843617715544986078810143421808453747146705094916955108647014894290255714767499044638107139219563739212852863566813414324735552367659782826409717066943099211647837888499701979986707066131616684163713617994338610440892294244803193209571614430886406270526074369284389635237976705933005485744947196591037002704295275708390065330809849615216825698270309936862332293423313286924519688241203832490274361440763962670706779590848897146185934562642027108920508937728845666001739878237776602527224850906218869964118300058710599031953576952692633988971644126340260344090388005831334669625583933897410679004808080576660267808530188628770507364378423452118561366496674739551568678835682357741429655964375726871248315319890069337163047917099408834026467931355211223556007256720988394437747527942459253273425731697782058502909903563566960995469254825945561295916856508340452971541037317634190059704529013457769632928379524981270084358015204621516535948915617305401722949510996582068714277635678960428731298953958774271003170976879023840411285663815282871409569409790854248775644122111068114737405612739683288398425801382852178426484902229254055554548247249185406383103175741008861971501802203716849234527175784332390303149738529229728729808247660487613504092946797282542982524138852231408715208077373736888800173947857756829087101187210594054394918915472272423871031400425320005582566218660880035520276126051316422002705558141984695716633398159506330889949015091655160432318591404124185756855186463899001216962497108331638682618973416440349094187376316552156147199465166267371629466786851889230992833767192920605118563756498372874202673876827679968402891894210020284216671410815121041034592262225335526311613880387135020265697619266202529467537672908115760808863079626990555757719007597726006608836633126498601648190595395305189517165277030514598880646252968965082626916430041775260505882366608917977433633948425997771785226060031009993590420925342390271471656248125344620028790017596103499014026437786775837410313794225913936457613910848282825533862362903951873991808287265599081799034374078888653910348759079366397218556187188715760543580471896495036990255635663633711142007312809992039126680487221741641807030343488082862653472947138884482418252866299939691914154691629914515550917166298876608771645459699368527195852330091321969042668264150275680925787173603266077691971121900926864678222889022547046368870941639612438046680475485505084029797014210597702191975462489563343727941048172974863260061913993671763461695041232854381640770788940304427403836657890058309147103725031046457493381362298853108257893938407523537997913211029121330235171391354685083755644467094270363768670951802992288805618473400044607533527890789815609900386573416505681649608945371025392656812043926470821966850488549352541097134120665532712422461579339122804359329977744969683290141198038103031015662107626776945773439167513585577447389930693251294367036966185866844066051171434054728028208140272321878808666079028104098974135642681434850750621581149052182221015789166810994218698945095616405198646500310873970875968859576330023358416609964705572069132960255278146287253864076135314035672486804697238272748078159135257664449382999787902607292666904569698866620023516287996052048631196789120364460155784377069693586610518516524561751518977407378940574757855498841974534696037535927043161000815040333713239920407081394354022946773888533025357305305566092448665093447983519094148923009843164360097543406694223401699595619958829384108711925640400552733260552904406664715970366702178184863728935397512320409415065872644627333640742098788626132737408503750053151112769816996667705350745926594815849618391794375019586607528339153263844584678823893108194803407616158270468511234985246659452960054446186358989254678978644472466884371469523604739589213781222892504658292673735306786550372325870049283436153106443185237875383443726103858598827180444883913013680567915959070669218850443034366979964631232075648309524165777520555173099213711012498758429114509915503618207606530891293107463284783561196113782759397527698887087965021439209506412940163413575648416581864402606772830131917291743874134256111726504800640731494790412352640699691568116427436878190998882560810456702525293240378165464021694647620739104346551528395896406833306454509768974074271641526047105173356350453070338280533242856915868349684404503641528104014538068266851726568770791312129160389763122394335348404599797983085659422081706860400206630928992053253760371299585503988359197644287809030871992033461466139405549846067421951581199014926255943035788869122579182157714243250493624419347739854341297051377966115621265480578290940800039609248725725081919821292635530925427892086534516433048882006760813197680131545134218124917068032417543958590937593545595094469312158883801362474552514130137602732832192303834229697325734310011107434325841960496337144439782779790457009710693946014754937944647795837747533818481668495083947069233529754941141820047897064376756725916135499844872800480231080497677421716062181680307610319219308607039459270225264630891060779670008701379206967592552792085026766207991272343056575095505267971755519864860360597094872666801961229996946212792168116655273371888009164608063959690299243324470144311877853863820084981846970926210346827855010814731610491639633679790742243546188461469690400502130102819698307935774653878780715610610074624438843092802289379417677700341956535017964574314513503358316820228667458026443569512542268415770427223757657151898767265063769124802602351297472732487854996651812233921214826029461766787901163038903800670563969873219353801304243650018462489630338764971077762089246626234029294409335551509819073547121570680273493019510916057075521827319913177471539712227881497900632495023110482820904468573960791257762458824151289781026320998258941616711225142763628105997497280645330256611788666623819955611531213060623055963179718679456045872375480627612822385886421477503579233663935746073927486496793488833889045749889069532633344306923797030568841509109388165474496383249337692974234324285418601158133619427671385484262466583471014650157964969634512459471105659080676403072223806429746417403677298038701507287398023423320446922064249890432783130706391185812634022192555429505761836100088640441777894487594940751698652405755220124638629246126382953404642446911121338178336632635710989021205197001030985856949998322412001932471017234866755224622310271707426822478121215979897204828203211822373939026593988372070081900191504931100636258604607918710716683072483619288267143488030407812040770750103788704860046167846713097191833780655872560585307250485320068113099672735132807829942919166719762639431211086557269941457929244749227192033610179142346608043912864487580760934105221591985302526931875266392307476114055536581330734740835713434612532200647009431272118001585054937322705626051720616770645946221580785508574127940664038884376008409065434806094317100606524197740793406716134263286756265784595435599322369953668584234816480358003715626834695210332211130054975369510307150938509095886937861371216227325032920525567772812331594356782777566216664159060672694241397877185187007442906584582647033427974049073658154581442898108236845459271748583229563349119261828526441767146858815608321964193882899153146710704444475961707974460550614334935139085834371556485207274805687864479041047703416039182220868526954023029215321991522424352643161391780507036730916787044434541319015013360998131142457760289061553442400208005988927288478495234708838676837058366618233435428786834360742041689469498124649791690525749561146036912119778864479978368295148132806828273555172236493620729465028475076840080778295521432345462802556450346357188053878929313896742241200111905518104418279414218018606638444315912727012509523159835879993798103909644962637314415087185232450096248609455414383428751559146818809838993917147242299769357734389967398555133534917808802885335248249521703045013294889467666689452875517276623949244309684421510177329286331057772776833716951894484949460998634311685715947353783443417722565074639682308173799907145505186635896762878212619536313076255769179812530200321547417274541391611686847431525040472757588406355802686903329940068614093791653553893128265990961655565202395920815126857122160510117393725939900574464413359799383447673471823437779708339951520791684129981786064844669900360601560094870339877817553066590284441025901037409195124017394576295027483857186667948770889486086221406374199149465462711248624669350154744472090335808077844145877289451077089213419808423980118516857857203008349205668383923796298088459322996415008500718058772134210661181367803376109695900594253800196293217556331920994768101528853361167952779924186645867277856916755905915480844685179555903845861010654264080492751083296886876410734641986532632209259643319936661906514481201395260910039296051415070501782132458468794780938670035078197196656315119799891161519450194360709499484322702992799591191385943562576207615339268808230662306548870889516973979060857204007246260327549237151619279320927077647925218387230858354747900077614459702661043351228326226946271158252933801468202035169714107065259179946495073345293152279032752017146655946010304953996556867371773157451404863443428354695111174162110921890737772537955847661019031614244170192157411769924521509963335548056785740712007122470371815653839889296699360876812086659663905633350495161180952833953803818032316270501228416651952706799406370044703484032367420225234054200078330424256326057924211539813767750623054877522417880514202171037674462884351253869227801965963775657855522903678986637950537417588453654926578340095270839959103467013393303023000859482438357981368858813908135310636203363838241393779809899544657979767764582220104616791261539493647041995549295075787033325504715763997524270601197968644663063035478656911698713317209204135014058045804762276267884557068189891068738453849289284137395854501428801750795923214992095749042014534702824257233675862362213379012031092198068865911501709046262779720659536350939201351593641801463122247974045772542138436255659475433246053106120588708709906235873090427250599443243572336285208358756914724799072529424478725730852223937001538484426780044019038809879966565405750154167044380393009615762336434439562355565809885902780592937418549387254310246601646176773811590534162627068264016440991688130974162057202512523755824512902773129902752188908001211141348876495048619627093845201779040078497802755334603712586933891744739106665629825385616068116347644228888167352526602149971619510480607944818035350249566885429103844262780810757181213387818490022950942737906202953148804789380258294820239609434289999631895138566961332863376834072629063418980483432633857791481876746913893176443701840292576588380930168913825883921740963107915835483472151576650971072971085027873396558359481037943308883825000810295328225478556514649807005573519344339817544184024640781428971921981335921131573321922514707819421650744766795231140786420818618646883062276650344715831876651707516552644903331929383430315323163574478572901219351113776972724689062232102801291172610162750468618759392449258690606306309401061872393755693043155836621552577804252305968519510672138189401195112452712948294512204738492229871257208555583450894501215507346410450031887930594072711396061804780265123835769784337216953314499549693594694558070054896725042614659693954120414739761774078673588021903484157077268609285344947151961697664913363978645362192638304225544767520240816893572438701187632441673054431464540099437150019197227198488225249701025468861632579480646406176033336163814120663293469130853629192618052092567134649153736328104429359556681846366367183310585480379416384029057905941247108799991517507086049668573669495822797772367294373091413137589963454939999703150985866916767348815703831409155854722903336486257629383446672338561642118540030229369629596130549217144755911258269019093923936441073355843625653710728903202222583708583559110752475220816111817413997579765050295582060945819493902665563855883194774932810391568460047740409142860123750589190881931162100262506722233439388847409769202281379428064081945772706023150367066424096518457477287343999702104858366195902879951477101997201714713947904172842728722277383363657079350671895507876433235918403237110871341828708413402958344817460930702968989109374992608586376733972739294477397411455669914092292034067446629674975075986849698911410587765389135575185094409472039845038230121958888427795012659434462508049136164354949306692949419878179400850595756520102631681415498268299729604225668782066498670244659022024423467011877253422346450057500191068862314091056654076309353949287116082289035591833613197282670058479767579142569391252196403596168213441802231733360673873734400495537789536524589848256914872169039493970002076965043831487770350283609959720959759776235715127976158403347884634728411541953818499146504826286595128843668240719951171524128768749634681863222294587604478746332309030735042549616162876642459877263829144910251727669083499483798972963548374467327752596765167931877195787545552490376245371405754058861579250692824579208709595798314915984673128337317189758673963321629228991110520786709040130890634713862305373150576934669227454368896065566646318659799597945550878236545973093895168488537219926638941680101838710900103697145089263793236753447894698722148860423860685566010326770348798692342024262186133976202488586576263545628328121477041997491069816993683074781670719210625947804654388956765377393258444605218249112952941281753455038299120968161745800042045679729057204339937037764652891803027657791861367564489926359855430217194998495308220434360341952859142908094670197187299243279987563283196948524033275959873096994767460296689313586248735354818460217173638138258339709612452002141969744493082269822517982300604196332480219418325096822237826698973413318101053211441873179020269735802425794214661285637803872824156088142737592321060727402658644298920027860651967971124741726748359260474667415751575325633921067340417365649739358051838212352383439407608293054450351693613821451493234333188667007935933222202808337254525848094326170450193292669455887380984394377062550897229446141436714731318807561060472688484232182034571248016760220746483767721899671395746886899338597283179815127408572138634540483670967542282402859010390818321920372648107519689867558405056557620886169519766573506937491320294176675928855323095044470053563986176629727327385895948659009064794164467267253320088226497289338690664711909136802936763758238647943098091948343258298762096422670054371092326126527083408497305104482897379663657986232631560841709217544894208731953672771202642244489892732611409920470711090706778236333178337872598137086013575165883310478017881701470241437423913617406961430689068945770537683359732063475882116726746357634104342740268032793445663305487063216595388422741409598178152940466845181420964910383415337317590966534708923703405433159144144336947632240377893570620237667641086316198122713814579131787485683884291361109145647741527381433306648427599891673052671478491534148570180143950113005616406254468956810444388252487611778308303972434518391274846370442784600390466712081383984273820359043425147819519353302687708896751429726028057079014401535254772568432621135406889723510014468132710297100973008982919604637729629815823444617893239277521854107500567618865015755354735418638933432422104636025636001836778607981432342561011783711279608163985043658606402725438550199451433773765758833423304142016840609163689837045275882489176185766192521335347412183239202989918517077126698442936005722750781062345735885732517459144170994908188804345045266317921369411686289712344217535515973300906204135417553447512364613011227625883777626219346128760017670888243151896635655769066074490948163033049060879342260071714161835227268158416915607347949784468172324459644008140970269854748569567750955179824409313127966110996558004599476821023735173036576405622551733554110566324728024477938427749914802380744241996772473229825973906449613547946168572852235562451602993569996037095309334696830149969619630188088643105262009043288359167694290226730210061652387509860168217753853544075495152859429511102253689553839162845893416199200763926862363388824093112699851140310554836974659074592065519308646311367022140816273506721076689433209396559334359101488110687443097485647528538497310875951069067984754758289511573862895930496050955253453960453867645333256016931008493290514341875249355842224366173822465964567874291497925504041579535919395990877326026898221149583150105640246054125219212853275732221005182596632168416268687917071910349498350487776717989645810914173149445651513139402619604471394745894407266245421944613148844834478724261843558711110142557523258299523796503900286186299996388371428297360890323148363457229462592857212102930559591251409134936677022818477714671640839046590111875540029068625294376031402824053180050879902563909561150067017966569781148273943286849943972674641581492789460062351316207278754987422500693282305647017971760693935902624798032952516192793169032923968142431008605222069431837683501520763643614392959980654061186981523889018853524477570075771408866421270668453312110925098225747116389018264163708168261182570367378370816439576766943446363400773029228521940588075002306884519420731174168521758630423106305721560747380025626283087128298733246434196596739781345481306772730171617330160055203607903911866513842910804222435256606245707004218670697096320282752088486935933986093415904292403380582668045775253289380346277738230954537748825855326927924362073415399381457963504161252628769592722435300785109025122378239091043858818195014369109882781950323763015704066544568703211866793740523965196287201260472873657131719630918014101190219207008550568478434366713397176122289192073841019060879369134835589349405726313086842022584215744382662169531278634026803280908072846187189096165415626079695357436743807326132067341442484028813675278504529731618252961882581618462662830073889835123478354541604133942678237799989742966939822839854792715449393858979301778534511361681987828611704984635374415919806770373223131375039115585863419123905010342519161248584995059027236368112661056525553596971850778014729591461503764143761277106527149036784194069710989542444998438195284131704740846421025662230402728210141315914519990225428877708489332185860231622454401148598921111911354982989634899817888474573348453406278012439654822432197734689287445984293825025806501695519869719266078405322945727095750270338133918523992808103850112583713275150985491035261036360617114961156608983339574246735151709847866616250309385803092168116856243598364385668535994036046184739075775222510894733978439270917292335179572352115628413532531518570548197912879328218827597342239685010725095929150799642405449954973484092407028931202136508261085321197214180459592372885480128418693069920269428686737104133531545964063473757185176665270696608341152110915609209859713609739264982345853461541705105297047209802677577771051526025466074477818733448794564540866901472746488314931975763217388819457586305123329576108195583829468406874068232427175710471020744110945900478425892219574392711926411406177843862778276068445955901393750257070622162211538497458484519881114533228446013484460522363455119708485599978017012415949681180180143165008383439904009903950670543876399837109222639953868063798620019990357944651919517866962386833269824997902310304851490521783163799122309931772141401366486456758843605737293312678909431504832997149231500592033466273309836051516605985970574543408438161901573491444998395473272128740695389608822836580863375840300376658881384509252484792582161985574985324161746265628854386410581506612330019286250978697933677801142027321514391986440311848072136360082831366933388817022717672303689396441637199150621614797717733766638409318997935272453221340835665492047642135373324707865399810110039122447789243899469458812474310862624621388383288329807878615613522753078629534454921119970172059521476421596551904838362613072117253855488339585939180028411813280127315786331770048601740886261835474040871634572862839787852446715180037195924913046059523139894573371747347878458118091086510540024840950244240980281269532246977400345141160567597923431966226883274646711186875343817852291044309658548243817098387705711541022492350661247588740749062494569048275094226247855232140657060521006835981732187380106288580369528186766335052538762241004083580796914916565491745979180894165581582843812375997166086912844910016543444284199355412337986610908969481925375863940609320416538283926114257441926965426428639670844030842162101366438282591261666611283018239097373614859215366826853599450222977400762638890524270225475607005506239494379867527174241415137401081092803658010772106293061194811956210434102715390719349979317347383693360535651430817117752568080275724223734512832948801046176255805005413782669783406315806150117511459752872368157528375100593435554405212062635431345670359608554838021915271641506215509172120985069476648707918082780975398010080183185358839976825402974669581331853878199280062731332188246520689047707471148815320951899048898229731837168323860367469827404818180359546355658480428379484375032025997469794699789377925174545459556796211846734937429953323594672560390141352832068947023933354254457617577268894765782298197060384416672206180787075762472698600044593256408077373934251490361597372597320949177176163585584597397511055013519786252690998667048080081610285515375478595368880386682048435731605788800830685233655946805166441141283067107541497644893271517107587999851143135317853791960830469198931823679639719440418808802274229406938142654552215636879966409272949618776557634061244688937505843290111322335683738878142630355155829047106367780338760180254270611539659505727926938533427152744431697826657757387273589268403892113390623110668375982875114187762270836807790063484694029122503378013165786456837499235832033058977459745339773131276612888972824131356574084550236861451094975916467927523437922685849121226506004609335379857462398124745972681953351248799090978558315404788929640366634515676283245894446285772515880256215667957952539235821182892559381942877470526282939066691374420625944145075018831995111684615884092430729095885112905913838133033689110154416733522819395295135765066501997509934899983389287285510161976859523797720778737741355351966355826159286239984200194925647859422393053360355098714565742586625871807351565297680154532877932446573717283054258714133307742890259194876903165650295783991302519435176041684228226241045888567000108896477520837893398642744513084117440979592966154902281482978080557925182393145791666072239220839726596927845589465838911955833450613963939106668018752776738916654904431825461351699112163342143599915382689567540833009112045507657779857252958814753479662036209554782241152711937880067112073132688817153462210093829549193196074731599781960219497138189562452883602153834865889573935059657900176678360257226901817006847600570101105020779843199184717758946471488984138885940361256932866446219773905807312517397741742927201777342852390795667083550516552092721145834422664064807150952351181981593808348716374253873338682919031406511245867268336726743796182480135312386491760937146585891000198175195928746416431581373826996266399179341694179859342668044821780912088369605359677544939634504099322568426703959644085811291308747374155483709708108581596169202883829162847408496530212356138162952401288652353941618915479574762162985302265313469276396083332464879329750422797072990218650612918984443930062179389860755737721100346855498781821239232933747123114572457966035628860780638839808950583503743223718204446400356646705500380745167968650714655429394105892839119484015359658818027855554013633441372091283290967439130358456668383911488030851036532230651926500086582307578138816461363743866658092243369750848271978308831630222427738921808123031439793977454508189062525595152120972815154042883309306933272408095776467048394937915421183947772385018018424560643651663421103188894173580718764189618668896199067232563430605893268420148010749738613028857979813426012602965212829692905401728567221461571309005511912559984346051721843003321934965088624426816096197670440019265825799317955050002812380129720119897477724221828415800009054348325211224940685369839071548184729074028950488199424510075228846878544607353737958581963635023873946659747256507087672087526215400722802729341948312141333114235113920397485581068221255519529446894334726605859056941107761215139574167263639648874810614354513624741443448153236293297952225151877906076555072973854717430615443129934078211325636752813699588492256525754893304526269860210070755556864731165998419439839921784132642997182572433520052584690055565331170697047173709468153235723995695520276658160971188824440968933293654006498037129513420683149880385864728104213014912529920780696746818449927736691561376192859315785729556621283906062289095204210773935498660410282357039175502755530722991601038560373483479979114801135498446269928320617543928925654917268501719884544952324522687603419357035998149104336945859931690002703908636531297622578905938942771575796492275330904689357615038700952148625555820482891243509709096181547998048646909797946679318261525432089187469927368143627987139268340195565656840486646770560505735093740853876086429603163478015510035130216848732991646256268492785063481064848367210734695010747783807959769731646295019607742008628177876665374191561927712357640027672527995110037752566479596778332663678065169160232370478895074049654436785732092824442034003775455383834178717742036779979934386580926588600996888691251113917292766214077635545536391542490767874522609435510541132952961272792425964557451204117537722259503957367950406435541545580902240788827034101235798842835712035830571016806321865155612862775464094369652385199487072447899082075080453025929968395662103837355147874294859583276969600468607851357081192282465686900461749776882302230598247779144988575866001831811992255803476544933735354597405945146860999555192536628955981746626940379730605167881862707076247664109354960798270402431095348538691787794142443938457175218245146967330642335948526131463924139523912163729571549011596238340366376609189016298443170759176727955111672350557688460508708998845326950565476422023297900448299163383173103539907233952531987977727627595772711292204218019230068948916502275178543720061128437381265109734786803679026830956032666262383745169899790835600249147638915120097954477907862565089866574130469641331459178771730197985336851716361935126170423602601604264571185689810633210239611047123691755755144560909432628676414607981460238279546999025405877169720530820486134876292519603430023689339548777737964708036493273999743846168491045300441307417398034878530736241295209184392625864424324627049752984313161980578833269573709829928791299707641583529420598603030875758158565281176298590028947852548475310196235805254284271572672082616461440034129276692280737324003801899797787780161516878786000069243403746798110127197521576633574557969060646663586625082398800632688055197633385733583906043819787299995561855419727136548645533066682216326652270649736102680423530956702812843441965584228726217539994260254965022942322956275859811630765037703366927319052697852921410511585923884967131114522538100519166678572253342788323812476555936006413062265820505586762463955291850211090846030395788087114721583975091607537287814411829598819938694500556435538427603528171197390589400988816025617394681477846902492355181890230413608710774853328321590294113668719763602907126634984085231226699961289728791189046510058486195675512745777670214265415611009576064367608447812388173626427807724842251002071429385674106943914672862357326826128749185104543081256435504390966438307435673326224055722073941667301187843750506785106761909180112490176433637051366018461978697642798513735430900436881438328860726709567433862075776342254313173522946062874739606728079158434134927613481275379515186918191088581542862153497206865167274594712137403464451221346492641933170449119486099962990330848619051591495169003909325803984341916842424362560629408142950099830751913502547164996003998158899089451120956773995107095424262331500450296838996757482909685028363260545281302715676945131538878692935368751270920372983713243046994167431414736062570890829480451835062465380243099984348261700876147818342131331628208607186707368429575110253501302110445770138096396415203630322286738254351680434308449735033071194374625568265479096520263977289999346122306271577705105889883492670346691696734853527808995975999482118250189515932150480010763054511556018866215048743372257804680546662447287018355615949023458206550993347425306904039290009228517840428894293153531819593914088916474148674816815257939110891790265521327950297579870761972215997488695732826226759972649827178908808419956746098547169200092757928651456596208370080134577453176889772002048506341042513416713124427778125052225534300701279731480115639663334559419568953371902877044599712121887814797673120342203932271493689752199730418137825507800499089344134798013846783057710520541120556670743584300056799116155880027803801223565486603686445623249989354978786342648277003577492117124933421542579360348080155138638056571284120049127059806596906079792638129730575808066180486533445457037087320755012208335284246961527948981372010957552569675568093761167826286497691882272877807670088714802550221646876663054333265488442498727540303609907242856760110068751175420114459986568333757826006515871956398697157140109039705143188844927706180536705118648728598183839950954734372607383624997375973608296838813323002377808353123682225746184716025437382598840801410794911283913007990653374357547135880258920458644129881334742286052382482295498338476246433740987581064175992732052750080466460321022517844502045473668728621648229155560736439139120643571999241685039316628879092610734285500536516262381703797019937105433279098759344558497042603992833995704318731209608361464296851288260055116044532714305713071736425097196433705983064676814770681420920712216345343883304746518167834982040252561410207618903677708253407661835611313729352852472734021121936032948509848443989340135774293363269909388655118857887961412678264348160028171673766790988557489506772300518425818890293134050444272908932265677020429546660890037184884195147091155139037270728822362965061781601960355309273840638987674612998514714750114972527807802635317839094738950973841349339248005710260100967392647275184067595462630433302122617050036807275073945478149892677260417971554869501495595805989825534501506940170500604257846770182785998745186622873507625845224154043043802230170113450338645774569721947649424500567423354166526593829406241463970215487096660108293546584031741110186816130162360727098258908114019902550994051683410708902503470355148085787913149780413775829627724271518696210661461732107828084836168605552072694337564266395813762389569818760554340700884733384712207632237607245434892603046633453273046836749969177954668681030425619057241650140892870413775455108019889034690455222627242876663587172498409535792508859649159695921857693705558118651796666715104337756634972526863221915107172833424209420530747314127613425915148132563618160675392256631267129387222728706236471785891226608879967894746733751633674085443306145593423769842758953261711456256975246194889298102519586076839873534817417671499834192665250915668504115338744858919817561498092400132010603424287775111403364065200777430656251457835940470530965301397529744669857906710116050596090172178577120793126126450185729986123901707274198786175009692476303802113987195005341674888289355652993381512852135643929029427099340364137642273988015809740394224625630251861929790311052501805119057712672430316204519079980224791003836231520314748390329189835176847918908706218368721184668369720821827266275177674724612596930332893350131459836916011798819589700998982158696140492882579052814010411937838666258954258271794882888306501236004362123708441545960698478114000115005985586770575558278486407001888057332706309466712875891255735815241930471782782344761958433233590558244989022111785377124483706948601433705357693759119464590375182757379495946471296227751835567323853353486924360791647614173560385236199235130838783619514983850309210230163780787493325332993406430445240844184053972297561906360039989068511804588680673423369069191386502313262858807794640383136191421425015663678109203455826251905455930195435278932076973267700958379965774130406799638954460628722578265712552751707123999069293436320654374541346159387889487935857864781586974730327501443742430682969621512699191235696490111906583292846427561749890889047023097499429995615048206184462806909375659622779976401412676315279078600152947316810971921536486451126983075811427120054529820980078435053171669276469756043425850786207188024101011308162027869902734658976704037385113716012976051923243350792538250091350571311118956744267738920906645726029046346507338232395319846441293439557533589529606071501863566161425626271010032503339498593967217777675022524867172700467134641984193277380758017112272795922748800993384104162087676674477005908736595745783299568653260131821223974883700753975693922378132725071482916772428695421877486172208535522088302327933339981660485162537985038305907413048248984951226784322248443115558272677905926118776564371047822227076115195158895204652574240374547959672659335874088433596587854663690342969981569628129474082649428252338099034114830231648901007447057937180919872545624041881362798112315303856531442368978885806116540065326880747729492210435760691313544935344834876546787527929222951730235793969016159975930913255970499626921128971425411859052361854234907534294581703087278008652517536044297189332473269307292591111898585108894860227557581323481778133905434567779901125052377384432816333577173879218176036346683191176105363476633652552534538932300693013771326119977820316649182533192678162904454615731018937730030482379084778100285043856774717507608746408291147476008777084103247137015111277440318060443693626556700481204511435390925463286081429703609478044815667349665865634890617307825309233294637398309783441830088572520361632778077836795514589278687413721113906308151140792824628479350402465609719178965111371109422091544315136934945222110959941581924061573019605233847036452627335395117292432563181315946961869344545886070572375950546515830835598326266239003731075624518386641528835604145683670103092639149584736542420888181901837319886249359279207214848841676824627181482353338194669585898292171155757743104119869212577595909063930439932903825686000584352995021130328438090112400213114176024054183893842682153662580697203344017049405950482744367723964173160034260611244349320530027152674194678342261059208322870794654144347560862872829216694162757048992575529870889355307281464777285980806750237887739586222971949293298652930978861670334587977228130740126374139044522696832146895845210462692021000246799494684034426964140575664049208975384050364213833564984269043234181155269551270104337619811518931529743172278349848884417624170926157126757161020025000934134522483408551272077870865438961861365063465981443460708040885195284553455102057745311472227108578800978656966324058507604674908274547945692811449476473339237441535443022072453062371101636892506521760499663829959747476983492135453212819861445586688854868556662128448982967432372586745959888444886649065157558157740888063534943608238399391161390738298795943538795784244855559212550142891641362171381559724480152977899219098500723012967906614166099829934448266315445585202325236713625129771125662514790584252168243201976099962171918075904682369300364316355163808974490897226510785213897889607120986041432117706209729469441292997180882102940440658137420513581453638484721745110758215550137993175300436755629599704170048424578072803711934744712783308918388317431158181621928934647563285802405746473397071461113028451836193675520125104455098471727885906537611287334783038826905652306135016185341974784024033478004567707200240626796141050191400733693260792456448833402477346967370771533220519944473897229565438897816190983100951419475750737146650629680011572369355044131468855365746723315139409375862855402518639005174678418134844387438340043444574247664971829931438851089282005338228928698458938168365441351037614498350041241242770033952349349912214903387315316643204561448033481928567780227315624766702835655120118080707565881320368506716708843975798989133875173153524087183004490261696952880644981394967228356696356239783165459991541471771090642056901533916805791990541546190560154635733874930261817260074853567254650933024849118076055221666370490587839476834124297497483701948271900344383543615855958236988120477011598049652916846060614179104353794109150789140116448276347750359424612579706233149158601632314855593203144981721458680127730528706947665059565420180531322782982178979537544167081594015506899518465001755299125730118142128656794365282851195200262431803133816400263621274500492243264630368641847050691115625718375824341984153488725775048096441888940464337877795843293511280124417102609348542091120054039753104521816853891781539361662405123877734441809997748078790207187916909269560375943077728836970511898761479376938386569139300924008015183773209826737160051847080014172872052310551374641464116232357510759276599911219761411756147536654557081898040249945678435722214389542913885678342681401296510535992669801845008601502505243511634999666810734514544253894422505962944252196836434427558980354177254060463452909551774848172022624538221036093266454026336990829297536373168760492082076003542586042599931637443776811205179060088216603973277937777528198522219832457969153046159746715948284384593792666246314167194798572824021276169800459933229161189507795925729644392337914384437238782167661096344861100275269939436303075863607332889761826701479909212647630465258739019185996690788442933715491564853110761699493045136129485139324709481468159040788206972441221309526028918916632565708444373577239997031798144215108439675021837040995788940917155543414479118480987703856339790358357486616057198209668972122081398122259236066312413219116514569547625456231935402805096722675205939676387397007989803299229872620663986861738117735868088057151532158709978606674178570338454770339475203931982477081159841875416321735268074207833496183655373198327890344954607683597477028726077299079543869356514824974910838171012150445299955746804973892671607724718911628951510207457248728285634270220851658167467926661903934336816186345663228864066159780620340268081604425754429465237527843894863186165245554536358152369935600760257093283527639374608148834821967630860320634225650323641724184003641759518748787049891191461481650862758622819852756281167858349453159320228853642957513406961627504017557877505164795316646472882923166623841459283995856377113241186690028072399481518211976251758537914771930224640905860952109910584297182112955779611264088485782474301494182705151130803672307305562807952731295557655481519652775602049226332308341834382410012800723137330913525677994682304099865548355376111469383278351731939121478507146520161525790961882156402576046708662232713483808546121916991524200343338269022365364746012517898529244794802514927881650040799923346366545474189704431651433678903201893650247674506840084934437540791258340820294860726047319478937168625593206290601277444503583086891961591307255074347405823441880587259429293333858223105723124869508597955869154273629837038586547156645462454113380709692309760781211370283341691805003360426336966265991049120465154445431229168419354718377134486636700237620009885999459087222391680513391843366151508889819076099839655386362829137985343666185532419208562357145698075638926991522898625338671231907070324781792834863221342225292487800538192622322743775763758569622000253006435876408159056272249201061965194167314031641298907858092143159745985891407415656020026522381415015280335987509214030762971505424801382568279476026708107489749159429703844256888333210712489862119986546353118700015369813500282214916062766542435622644559934076721743899505870758525092623653858869043847360134210447488053323831936945553598100824230125943778382561978792713896113315366826789617794783547295119439305101773314940768781319393653704533377833451256927130221108236848215189534405012096501663001050635803315673784705368817043043481077194227291918033406659974356057602529960567780804162503723332734227375599536991511576344991525420208143992941749499405834647436875248113081420273006716997479759460876500412944437499872883118066172406932845009318527681939338404025537432373329255044545291421415969271587573029071586587871826617732488239142806100942009832309666435265646090049674709788950063622562037876378675499850493999828085791609618220387675052908189627508257003917508810335848390699522095346213561604912113300454740380639771358500384338471256233270864551750344971256894718533964184687187120613886064923576966290203557383550795936123924685967740049717081974898563310961534659349665133730991351900542509067348344303489964414367816267509389248101121406435781472523527600075770531284261473911012560839876631716534450709048443935737868319757798968422182334486875909816032363847038116584128974871564059551802294015981892260808364563250319896334553658305055442521692432509317305953276067071871765352218638893262125109085084270672541917335530870224333995543941641217226324054791267553549809445500590259848212220986743186739060790421247249674917447217223753181242397463302652752998920122867349227106821797085463526579209453763023112453630208370179865153685977823087255903988442510889353049792876013041714066674890711886056586678216691575644358188830509237247198412014335136203292830950522037373260232798069808968541783888147422196580652771917196256304992013579143336406732854608761060518549298057446031714928826230777512466060048230213466763697240025776684479426304260746196027506465850499594044487386612911416165809681676034153063306169704059382423594622156493871292093976775721238384177425631605061406609958096823337309804841062583529492646544651730485500436915288533677873325655232570434856928067494741673735999192349421818592044848107003537884608761591198626297147957415788569156982696064452504510376653733947109526812483706382320616393107255316468882710075473601689742883499011313200428989133140541374899488184204409863723408404022184494840203649332744280889679635031271801818283012360788942616798231596922507101068758734822739132093040408162572022037876829095111647913857181016116401879185636550036442187697130166589439694449874792674434306238725968605377842246792282987438834754516968468063629677693947238867941473725609190730839544342110606397300066710895089613852701633006403910001588216145488343347085265784765766492372773468268216137265333376231797177292650915846808725410748731118981174768178053885004004901863455914778128612380970818463533672532331914365748235157786790383566707549309482286325621140320318395617466931897174871248343177568345327902296295776419792278321998474062746960941937489151223415192346181282996830794624561670669250679394577144584061633203635141778272853286464961243147419279649103468986020534383694516508471966195212398520956215844975191143010613628116091201981008198788752504036250853904927566111478163758646175921321267757239977202977817565193502430205841990465728901617259725443072206941190776988576813326948694959851155585582150429419182530927770822568497722777413352711342217714689963297805402746597721800778506050850356728359474078382023126108408633017324532990862675003075443898737402455595795084238074195810338975907430392468112608553985452609245537954262545945297275719225282451915137919632938696953349692377341933323843456659542432865697727481669446797350878858192674810044426370834291450174933760757265668891948071112072536591188525772127084175289828527303356872216689348576311464259657793796450552400897801092961909677309420666623355908487322731180027154756089690393642355238057426959701887540164695850853362990446473283017017464546220355939182196690035294716822845225818393768900460333887154773922679955764190663956596705711534803438471293129112838114032082973664523943678878835094953874246991741034001979073447612777502205224403582607355747669612721303719765156033429721472204964909942435042607820479084134977074677616834772586597333409627019691749908290363462281395158795015065547041063087701899985200001780442248402571695577963444333006809075968867385307834055382104271684973357259782140384191056727597015920959947334885584081778762239474375255717884524286148626014517801752096969499423632763479328206726175105233335727117112240459828729438592607245803950745327042175218978738597721196136119349109966668059172563781371002188365068601067236579411193243928758156701332821018002297331850129336219778357540986058305450566398271105142255857426309534241026883696716370395314362331759029421886318980229777050998295695056472448868089856705850252242412158218551579196557423568821161190586480031302010837710695890007629054861100386583190098452380580213947702568534120095161813308941022265876925458255926182246887957874358420840080933028991566376533352547861926394022116477810880139788345169599027414277960712104210877701722681491951524121452555205099867487648058522459629678979662804642484402635975049698936293496973249552813489788558072993553691839626374587068740734827048637723637764358873836436805541505650134698016998523816978819717191018998064381867856650553360135425363951436281724152856588317654423071306544591835587769490244785503472899913727601522076735440617442508890198230218739230729860204047701291158370639396360199411642701546043663487579537261386473149164308780471788771304885580284661914764673496667804358144015975985828782844289245855984801112042286086829796751111268163524769457772946645049298940602105563612910462746357497898420852698316050322595963313854757550895990473040435171751010664199396199057820747868652239787831251968150465792740769139148154506478544427162195818386261111424054546789186437180540147527298805922446929982275206822940843455073683306771805037121430760270410256974127813043559295057541113866595018337908993934293647207030176577422493420547080735695318385704632407823430037825963205264583153797292584762198823249802255519389270268236401865651527101573221075818293655756089843601106960460914292526375741000070437700634476827234942328592163989464953948321982347606887002948935209783051047085329678415784071021917830539266961288118322265578454131829256304070191260292499179822293623650843094671689013522678238483436809516307573618004443261402196858242470180016394564482743401444457635527818851131045266340401637547816147705525662783782116267124737885268295228802848877573879298657617635320699903143209490527551279534256394208217882937955430613521608528666982864195250668409840229507367031827304973695355582434764003329187159602757147107015837604376047505770645362370517118864885714337054223200490961647449761241263236242415659932524411994067462157278329101187452403204749962940876604438139579044109633378537643375285411840085499369289476972363105489759391783094588848690056726257759386286543220969927935071095925737782399714410648607332584086880510858077829481807307037305072986773554574739689604595494030339779544381397289671124044273345013696895388432973689431018127438058558044270359786661490913920392843736354900691599731794244721300209157616855644759949743841092428887194674452920577367208129401792823184243680852928771405810645923520401437525159215791168584597470875570320826351679886843685142603197948830781066524583763389515791196951651506428799592479920502544255371246358133687266936437312224723360019325869062416764848513239327528326946528827075375243941675556313607591939448141309436062778781299662855550729232495514624714290627266612677168832423443663097435000636315480388886770611958237352285149408875561865632426633476621039499204118210247533155870572990273806797660402025542910743832787474069040962660106007985649919244703995867252312521666438835492615338791227946677275875202057399255483817517640983837707119669990408517062389162162081982440142891441439911669361480281437785447822356949547049198298459383642794840216225545488952512368300563191579240721072784674752359656686803819543572322336582451619394743611035077353857857380483073263249604184587268694780201181604822968213734562381072369165263062476342678970979261456810512532349124897049008273983497767403951936181829858567310054035140542921445286631261505270296601632244473830670216914345112248107447233728414928753914676524086209998909056885782674591533976659998852085505080639728280579086410505205431509240977040682613122279601071794465290062968985461771945372329028244036740879477819214690315101099710584291793903969632900127314821717780346018291091460758298483412645080600990214823619889117567805338940245977127907792699337651331600185206204915334284230900386301235085088960355867315796712094685396930229468970357391652578152910713967378832511377086349016746743772758936406481421096024546941193524328291086961191130973177874397161962973033748900773505838996044693980928205571333145118366439127353110935027280740635139531148284018770845521432472547300419784780612397299385350547010912068872143742699564429589659073498858085675663554927550807019992983829098361861411241026136149605658609922998674496670420095397857352509923603522540548785775567710602363767501962884184301685533072633181598982118780273644411117931718322777564386361970139650554585412419723983894339059159472877734697484992038142455581003145805988372424319052280736296982998329874010268272845637223330189275923260982319027978629445842252904633363462375954463216740054619399810744930226217783487992652586271357254072011313074528084633565666419949928864437976540552532506659880339666439506921359628353335962891922625208809060694867705224307331726628229361836604568510811966399522582235614707983545928680126633880055446934867097192674536754270333954369244262511567722257832078309089387098234813117312604094812598255437015195663894022828044279756177721162404285009070136495800500329281970730873423276582890463109821248075883558097285424266724573136336742878687877112231956172875102717380834364274251207030122469414199636492822179258109309279905392283374353479339636411854496022867314267238052108688259713965349411501795668555175679335972927447590070445417016915622081030575235336443696893146993547893321136562635746185304435462489450857964276132227896017221085564897026880883407562627246632471915607932381172708372673186086682751809963881493511684239170299174457095763938339802467812504587384036436944141421355810305516322532860020637426705698720488125815546200484221715905541098236620971377558617652183443269682519194218404233322479177082069389738795383078727764572026553780751344344129265439713155961564673310633620646975034619617451705571225195658997480651297511226130520186174217223759598665637946798609420426319201861054380313812090116228606163151014519145635025601431092797918820257924523693708467601792348279386211969024978507856292697805306973487334642329628546255070523121329180619024414470043804701732338621913594459447132949442280966264321492653003345057778580436148660788660259778094076290934458508469869788927714175217903135246999633186282695674122124256033949321518434358151732038892589027655192386357188276192255320931258524236501164061899637853812799900760240233934046044663876083354081308993857826751716708755309542433327692539730702140840473799698685643890717668729399040852943990717342629802598944028473955914423414080356988710351292679790001927783850114514586023722997430404314212182267720222872704319548800992401427055324590207678030630989318875298446622431400430568657910483731424689678281518929231573955448947179207725942305639753885314244923305642185517618273947497292142654277334936454625424255956221548709270752701353523681197463837334842063855364844403302180846186335252803929459407754822666546006946718974906333908923615564331450004459980533807307134930017561483274395381080264776865557065474144344024233693205518641654904616829337960268071684155965249021418296225888675362423507325812711109537789011791323817564235241348599337583736765098848748709876991631166342289051705592040257301653334892526422922726260713568527470503838060050069632188765163493701626848279011203910084697656150112127832319099410814606182425332888960019844600783419771872926414101814892143608904366720156430060029237263792528662161702693944464724149455265840672543549541141974315292529280832653958495742664672254414739700019444212704232304896329831062622037403518365374854318003514704990813284870359172427366511761261079354954469101406883146078513785989976844961920913300429348637118750573472965691568825318630177985903393973852934182532781294249768759770153895147365136879965734524485929748373437058341592416412432050198849157466477832566918229317266850340670667389228528295825237032333846323110455317460054492563583953372088826372184664802958870966932604435217913721516020412334543971378949248672099582833934566927185008082980175000059878595620379986771734282600042381066691623210693744135111775722700638294088052080121371739797618187843748266147371670211246057185920736055023100980529800714552636122936692979580753492354521027705043880033844397831532829812020204001637893436440429189906710153968006117207372664871832892580180977500005068286913781362717128432181502474309989483696701702955294642636471832659324598258959096611770510787144573393646820830124146044238525518310518001804709647965500109509226934723879700387904974448362528305004612824900053394091485742798984144933390049609713546371752742981991837067641895590108387502975042631337758962300809985621351209008205388505895152933361143753647594850986223589727591562911003208191057614555193638622552766510388105504862249891618898791724519832949993337888949918599168395330711728707290149626737130661343730486429417855327015951824430290507174659227072808294143554289168748088865198460576687305124963145977198354702277793693234424615708287683155826624478282464813397759201532284560626829708989304466056427772943548481970193655759200005280298747979838674584731892891232024726784009892343872057057103462941318574921288911435033796718594278185325917455054443925356363586404556016057377795124295402470765844117255501094008888570378092108029623303346367104346410836890910494120873994709511611861420518897430466208610122110262866227231613121654725559451270401921082332669626360709265371556315604895135387365234965433821410803090168086477513382080802265974626930067087931450586352439841793946841672299781000359688339849838965633567413435897611304486984210387297080970935827592227763654109187438371496011503497529640838732581569227088615922504799065922919806039678464985311546128242392762090594304384032901347731442619902314715196079401171805899130567476906926049538565548857405309488061393936662238286533999299665420974281168887547776227766275594974858359063166934810519630404721108053150753705565848636061571186591566244136215572254897368690422078867191111725792031980354079546502135664269936970566677779060437874361017599637323131402199377386179451053049110883766270828078214375088867300222424553691720748107462202021050617433409064794455723669623806739335838958056196667178420269590906992759016759290853040808262547147436484100166793278124487285145994929587410541036921795286613254605015503701530471794179865602177094238106382920715266977639526529261985859665900955107494721783435192879875611912179789912502924168142001970200728106592887974617662778118216663602285261675229923514784850375335123654714516305142306416153691864685325695782346009079450693701892268525969618948998183966558018163537330487074736916065776055611356233592265681289923351791637682030413864437408584783898216012833468081688677090533685265909772596219738641348350854973339425405821628200236667323772557552669144955435012563136961354752915009876010801791352638200947856973413734974414621289287229954641573563183477926058841536291984210145060067832382834420743669369824810069425067058180119960657519601967188485415642303017354222127377384791443658882407810531178615524226691581995698537756021656980493925353152420709786016821050623993052918406169635447897086311890472311844536331252642028074913433890516483076619669895303197227934710152733020066699013167073132651780953269390814570450119992234645974811406191030915814118722921660207445177742592283569161287294940346813518388100112271989338988990028593048381104510031434606296942844818102523827710259327221235412855332567853897709263998001634332479249262463932906586344910988935793841119919984405055566628408346099997633757424391819953910707266926715410907077923717464372436325862439404424419903093744582578035403660630784251418821489710542234035883001031944793761616708640489312652618752757986727258611841423114406035145589067924407076467824176326866698214684253254217891344274594086822522815299766673734023135737368494116355320315748756263376345590278509826475459471892287458828873287109908688388509623862607467029808306336061487024080485221457064232329659302557929879194591938610095484725906139599341375561870803921016434797101285326476084651194577862183772759236736165911050011197074296594067254220898474528535875613384901556096810666053366207558877707423201369263469434884174887248933928077670347782108025458743293238139155587413545181647294694495298642300560009493448515905450586366442464429447940478866021558659481621625648571866076922702536107028551163343969294045818706423616988315754741424412802679816520846396658800224420689534353260393239232687490385020375179647788674611373671005558795843469331114647625420921639252071303984193779975876598796526389524982708184975429685747294933324277289892328653912107687083584749421018857888960379984628599284138424706905338107298386729097646009758332286467411914141883982418910459510760165686955649487971126474923008478215326802485076321522034623587990481181938299145218501686331076692331701826712165693613618242223383906264830063417898579288102458199710973883947339092513463647229473834976439196366487623969892148654830892418544629149848094231841618270614497712339613185673958238629177087860748918057044216625465400314775751852183576378885531175931679174764832290874867169007500879016567891100085815654293404254552705076807888740770639898148230567831861604146893924830316054755429694999375240733199629812982536946005258907331293814323938365788678949517487810913418519859618878139796134273580847864917463981485937841675969525441385418702459461327939135413832559467711976417944513571247683532681213111282073065070595683162316876724886530983215583593603494642035402587714897855029917791994527367460513710178499148169758971592536739593812370653465627653670981486459217004752908412562062284518730747091149384358255918739649109549537506893549040527868625970168373013374160448886610948257995597104194952625925396019784256333980630106125901800808540616989600459729197320308552973160699358239037056160013620422422285492616363147102050067280902059361023546642337436032516387381916229908181494422143747835611619851620942113201365868168238547193156670324906139539521361240905445753685542036943055625437510508182638098541116302857216419411694307577563249287899005743338543027891657043371584188520667227582312120125674331134913367694006690855424744128364607006663533922856437199504218590471045363418147730786840041500554704036725417644285522905875820154271248432493592625531294893831579448347834197665771952521219856881764933422291760699024051741264312590931042434753892689782696900275693517996560770936728584024800077564137761531549980275653096390592318009244953265636092580422405606405483036123383473606894848938812123416085075716987910579169417316601857781730008267047168747443529777051930459129129264345481089676276656114542444507116004226922611681690767640488684807003830925783039338971536400246347991568251344865182117491999966788965860856848301027024017201089368639145444781261322376197673404872489400849804078422020267975276348077224337145240735543830003055575044501241962480153967920748611541342881834128769209562875545470990004475944033274689528419540566925978210761251686277187395764230018787868549853273065067048417364569695642148352928291791710086270003697705111693182975774376021116980047144989578002266244605243093583189161290256283251609351224579465964835949337368865387399166951522707317183503398341969915718741207345005621147262084600878580575949954677318483095899286844263071350509705815518972949387848906514338146477938579463977210045001113046961814076330950449237040588637291039978502949774316901803851333256442110621392595189672755639442546344594281756658513267985995420668484140474305811195285372120968905960600207608588983159125518612468843768417581376146347221598674569395400740473681142700915307097779539833381558808023027810313925190010369948282348695635661084804484297251360179676292995019490381494947954057694327973311676707645377568043481325809163874084236257307681717254975331813747375968433327780090538815366611908465338301306213474808080608096978246513731706477062820171002059360399678699835568285932116831856096079631186867540631271760257328493423746900187774287797051550715159664059210344419520714528903698618474093841964800422965128200890184961661046488892967969529530077005760635746107388609289100534571437376175061448458315781224211791508117419381333483316777918760311866924640506293098728128489410788497128322018875487190379852691176885386166221332081997116594234287448731912416509634623159325147296519967759490778639956845651908544630210055235848487293446125223700240068171326301626598769215947767768393853156443094086009638764274587724453662952162284320658401860522652385683089862950289625742146520958087350597610656718438091518526255097919643236757990623084788590292672920646146507346332875931207426184347951660394085150318222695924750597933779892363494620892226791519668502093984882081128985746365914890298258309353323871539396475525626079481066573654884233213173775721802654327236037936463029588874099770149352795579160790404497233616199910890810622134930751184801310347800552532837048009609259701754498933318395120753725392544990725831613557230809971640165069359822210471897234935204348273952100558339928096756699611297071941546384283771267452005677738635882541045714996910989937830418221688152679956696772027523859594875765166534501376780032264667527580408940271731772099364657288456630972619473390327423625916918522062908556459261652227970637338992818824864663999240818501312054420767902926555392197326819246808625819930888123078790981915780567236921903551427477072452931248380343135868850717065740161970680926357256824096743473362267942257908741252001162821649414406432788054370077479540495331805107911520362040495134554666259152823618397936633351669127935822191006553647163646134235057869232465568705611914168222891806530782599519346223042924791977499055420762788687762319054012483172780524547264658179786376303860541708194614230756490972971179256302992153440210730901976051817321756654486253913581540043212016274692532217948974317582000744697365709184835391629652273301152461167946313516152670542391143007300327393825164829230201357833797930613042259101994229715745252711739073809653154634381891546167418614950419771724734553666831458552647708173843554263465651056496961505359196741555724299122008093653344984186300721539472772293753480001684551025964698807527012494850597999588190483979345236594470220617812165718504762653254338025990045797903917127334238049411684334188037851203670487322241153529170281313322752693023423728975817331826761181001637676451900706504454868406193447255786508701603647294349621939420916816798525053015462300519121616059673177014313436945759631883284091006999638974273057458600286402885996841766842108196081915289471001238676427994437556054289504703044490537939808855870692207438298094806343420650136565492358409808645427996202918796270994525980722735714517350113550994685430346158431749491324211895971094913701220788082255940650037678121087561839262675443639343286289931215897780032445345555555810160993192200194879955656962311532044507886338378395761596657315236973122624936914777958207808034963329066410796045690998957106150929491535740045927148074896302490702708906560832459374602587842437269662854592094111653810960760638961666446566036086597497365593637926844100213500170747749755985965684184083135901923447332022899270627983910977609005446274599585762213681990356548194172626618508007362310091317727966458928736662020828680701531107353149441257937235830850836518565019240446676710583541594746257298537709644579364391734332495858856884058411901212988097707457246987364171882871050348360317468056933199524867686893625881612442370521993723327461876464913560417957752323761719572756126945172418065210902226022703402498355301681741605871641069271595314594894127989020788450436394940005245056660346143616858550349329395254486170502483820809120866706455510123062256960565407748948440614061306789989114057658148342891786430592532420305767057040671738730275751924965738887356397078825346772407178003340057463111687835075223156735063124102776099241762821412503283776781428981861583535000832172185633832349372507271991359828105407450615440362347206458919235059682569403694454947667658436034037518120188948312859136186436968042040174249612015075546284658469022151008229632108525992888677272360554000044841252913595714876177919345774822708411609590621088037502480021409577540158083524607288778277056770649188382314638844851381987437803156127123792502043726185004031286866547845424313741220506573526790649138667720131618969646608844126730684681644407807396813397586178317677906406741203110159597618964871982235285459321199059470802522606434737693462431273359642729217824697363899198519149116080714790656233711287167403100290227755137937680133244231678064365154679833930398462600512322610368549871792901979273118234018941469925977381553835005934933936548004293879050911559213188332556770317785724742249658398380491630100570058471579339117927348589517784970235294252701439560343533829408003841159123533845925062055128368935162116213496636659692012790982671640143205577752827778875663843205115155877992085571048118889917263517864664944788566330958568144784614302471944488668739120062951137644714742030037648371950151977009972043566810544006813691965065681045436243332604374269868597675210682194853342892906051216499425982597112461839518808970473327012845307858212843684837888205196742520955195470781445051649741015083596090475229778661367953084257371020644281012678056701079617047675968183237143913222095444832716354630251407338721815875292082127620703776154275873748543291017594202298611220278715770280888528227760313217383869657549171075724861940364585812110647151656699653246280846790839200195601803175569405645106823154589608212432962074398286751503792172233434846117396132652932621436670023329460948713885704414078071205217508639333493805133707183535833565097371139179164353889018861546487265551174331021606872503087901444722964518637789183710576273845474836504875807670471568003177720633319437600617091608284382323258901477179195350256243413300255829983556519304124683339927149809654457798879786061153187096590025027454441391462081486844019523880519660502285504262233317623435550246835183196675559496914273187873233601543330250801669280791600179578166629914858721797549545807023666268358588721645532936813517731531185401442481595753993371606960058469198085711349933521091667031956735850702476171451766837037623852865256267747591599201102992074760184002303953166573665534505409499728832208022305005980197694754926161813478011376580128451866989655454358942935276215121012276154596265467125251318819515063972826906108129437928944185221696355966726364310495123811231499656874371129178246193080498524870794583290354404068420167780875058713599795125794139953116675894553495190681983067911371318197238522101378567363733929542468763973039916488719034168620901295935956644457385557937251074639589210128554081819086690998955485022989414687306004447730227005053902263782994632705175766073253032514928153620680915230014913437932155613391464553881165171151870686254754104262482596537175760234736997151832761013120774143881054369063687930497921793444292470286201888688343675600685299723596136307065809452353367104699617596428459940256444683123970425801853475669889255109549568497299413065366818799722137059675242924101851478413497538974272957084271274358331792890672866642933908625425975032388138224167580802056580716219741638719455895705592775312607832824341416972379795662243862148878176974380364143341459422779378414296393138801509904022903558484503216469032311895118758232343938410718388867733382166767279651197925237635234120249126585901760441550469879050330383277260164750310351273331004318874651784662222458414616313746688666929573099702243149640654760207096051689229122397407077209657949118821585475027014229110481517698804676036905143715937593669355057040581281419519807162519661262106606216037055010330338872291086258552848027383270100254826297828874903387095841708698271781953387375030325005251327987080361862665204095690032511389172148418038273255818702520942768693222876912733744219520732156998098952951584985083311871932886207468182863096751488775988073344574139242346559894010709752422711639910993542323375334502021995139374767187089142233826550494967942678027912805904564103985433307439689769369192970651466411080008539138700416607945529641216930782601087391730488937564416254247892806526248553241113793226604136920236589355970707640384816926564679017832854185048577762411011536991925737091221609067880628781106981634510941977164153710684004330925978292497162076817313990949135053036768529925217244273473443257824157963718020222036373351649966712733175941543142837561337341871812764709774009247755300844749708283463538366539438698221303710908973822894061604842936053454733777424938720415213629101979633870196234144757046044615439957791486752869532527597019607854432825855515141604739834273387952588483918018581584142897448342086323114209706872553241640710682282377639983588484326657131462906323449238557886136064415079945691007033241226217512272189863124728436554798605594762886452362507807455963359230258109038722179870802937391539418858468301699842762376373583472049340932746001368422895380877574863019160428336600947201135577518981279043473950938343191682919375866156812906006144451229855140311909858768835177183072092455804819840819613683897024693505904039894268074517591210023824653892888320457051939928525400814588034478197706357668640592177975264958803565091192214507005354823964491123511043582419585853224951617067157663467291829095468911526025286989732183202378876210020324941464018815171947846010858098088580162381128852628784807399334195015051926797791569241912508812533005848568397887845372619254973250706825509010526920689651669527437760155531121727743889075645835662535086701647534556260842092839682866863528183685317441219023228977125367544278776005050702139861774100379689780863741453336983065886774563080057992371946847286377344548394949216190001470156960698444639335962552432981827658920304842158093352919271220133130358987199349434793162317237061818608682605172643009993134244208475421729672627341618532284104467745410568548087199311160900054407789263095278049814405628369345799021351936928385427985064895086277891803900843998621908312599435678093433034917123607263238269394820594833578005777659938505529953188594923110631331121115399110352288381440352364645079596638301105617394237653307612393239866065356544962664872983692150723538120575886157639655409511497607392284747904105884153313853717119598133423255166530240617221330968424517225098325208554572602202393727627303856561357985477024446653537914477471180934588224901661277280102146797786329924659553194787408288312226113537993295301548489992594409563721326455991087653860149052728376825359956640313469715711971611359863434148796914207554248859039095766770712858456107301667732031209756438031176581222345402956102776356391589807439579785724567538026093196306377167281153361715685169310382702919167267400035369689203555517236839755059457851014632895330293950151503722707093918529871890840493577745616699172717454123233472594577513931565398562938685550365127996029678142240673444006012800195848385063037260218799398350301344467565643731662767028217991433656672867322428200145510580659936122263562565161236813099417100993972776409672703492467484171519042175907509026916563073362740139047727898171701449358720472049151779745568212024271777603847028493549085145797091606368143865225617255738994248267860917737546640336195671227639030573754846733076549694712219964479342705843018460540725793567124892547616469935884553197094075869129138101659736177721012160327226966589616433759305138267545904467414665966198080310915367410561767122069103973049854179543964540820893153784750649614446004524067594804438980651608305225299945118025936767582785959332945123449631431178951672336645051001811171891800242908428348378426422920187743463444173190421514166517622980202050479745995871558870374648063625455056518164153689136241973921048882761057625934032782005118775749701127849410771030739586379450015719124919699405347530482171090295016189194261808728040168500184706095877497182042961708694000439921578147384102230478066699341253735861878022020205278208607401645911793755774483981608898685212118032501611472437831489184098229571084808585484581114051976948250259003801489431715521124034224279939228951034142716554960729557244947304637427923184231373216895331767990711318777929145337790123275255214027205023111052051274229519314031777498812391333843133609606136789855228051542280336442493076858299345086145008126628492584403209030923495588685764513753972128923156204055760078390700510464827899352979229192101359595657145651727742408217718527122156360471664572147940966949505182309238941491496023367530604372986471584690395007156742878863801581166584999767927824077797022866600930445747532106297193523480274805654958039728532640601828396578240836657960590336389250975014067813565304422061927656565560024730789782037677001250415814190312698933773732300830272353587079973011816185591149452247572768444365363397647533161411043020416256640775744317675736325526260738737864364617504350608646884947174587952662736676973547242302204831340154532656020173311306525724813439912135776684454418954810685519427579016186954148086111967958157009178231031357868428845454992968342845415549481270622251574712164206047319394760891932668865017530691396419497072595556607176681829043131153030107810072709308415581448294868941508479891745690382185073645787744275383458240919934103040421340395847899631398873567446669853877409000673082932906605850770080825882851806556628717810567303843395544360917235599698762921463205975911263131836734795793026169339767892174292347105005130408314007534389838717184873080351721632173809031830622888038821694784087059547474516706163566121513514177009918268584980037331465194074304572035759875291488800914252949143017599078941511676261776088813894602327697438581398755584268743411722250756827107129578542545864692489958486058664628818565310459736486454496294721023490271418047804948227471834537272505656510680918656190165066493313181263542090334898413511106260412691007548541262762670984259241600651033330228233499434132993286165055865413218835564826650343666439965722141940524198688694298462194744197523156153647838626028732465421287455103836202221309006538727739160548196379934188832934674184791060009075945512020086643490042556766308457204648887229970584761085880300122363652893017430518060521651330291421447215961900874654571254324013551883808005930376987379291341640203301399637380749433638799275696878665771524866728753610404153424136234395219949294274338436988886039494566841540522188984368565507243939476211773303659475215278116359985438644879700731060321301031799493715809237938991929046990458121228755348499248302714245673528881970275433906818684894149980628369471788899649154730279855153794010073627490918406424250443306121797820447422320781881094683379125313810570814484927722818629130704429382930608240558480930615040042399224487183614734048887946133750126052147050051786818893128169140850590572862140969161068126842240084370697566143355386446151311843129106480145161770324915186019770451982363862873750827452714289854261846297922405338088161152202245513686579007444037006421904099399677048619427657805414756263243113973390248920367355650624973562977419901651102892650769391216643698234359152922190046682601820062747377519707717852847520214152917391005854194804642841564817722667265679489337742141306583640407587766565294647275064902033833144026664127912115605480569303394616696147727879244893674001461824094877595700789784612229020135836712485565444871788375793787022155190309608521224145260871325301586312415444008206829399212574051378781348535753831448574302371354337380087053672574176415768448753665281831232164002534213653170309302250869235290839155078817529680812527954330115129535970482703230601106763463632149397297251054987368014521860993322998687328804524384194377450029958216841976761520401086507687742114024249521485583244294422112589642867128274549169209706674980956520511695708985556415768566680888248036604651660206600220573081705022880344046127363017503085487604587314336304200627926347517928970655625613556730533482381268260362238759440816596803456777610850855388532622174466511321267401662901766444674361138058019361455351664259367362575162474962429840471804690091199292345537504156820704063541349486028690036795495513976081056506095467942894911639041753843334509417637922713672611951769521126110764802676363260962260532619993660433041361787672268294887351847902041841438802627962139545334632892329998839060846678978365585478737399885225747255888506694811649787069883937333507375404019002492360482799217065142370734418520209913733138592994577315183335882658779800023615202302209616786342640979632633630783249503190568625328520156348936767389283169900144451251720366487178470667817823526403687798759835323122624167696834856401610254350667423819224890104564647129191514200227753450777138096884022319473631984733494722464907174910283717054586308923748922372412616732350497917943948548354625799048091499957289657533317704008701590019042395069810761733434338316409192774234089241384010726892893053761354174974194871871800652995050462747819064050019431244818479274902118549944900411782651388746048937031072622254251034105161014053520689578045206053966016607152351499782014340650449948187245211370765908284202291344712858572842335760934067018434987751146387101378928357881607887106232506785893734022958106125845458852426498066025007113815337533799214820197740416840801506131195534582498856025857721265819922626070875389622974768260918239317829213575132764895687586992194887311195726396712519441178149660635273176645286344391704470652544803158200164474577284193959408192963252488443664403421513308938932533567936623311504194360542071220254303388694782238494592285994479369519038753707225848344649391432764073434005597102604214590847970574241475902352163919294386978257176362046503354724821862928650542030876712680114723024245911805065955557880658316106226714056641038647615072794298846308163590632507401248264789053356693149217424312082777253644196649675803729725947612396479783103922815073055190572194291537895062300687032297226260060362138887226623728882326757481642341707376019106667816810607272618631062453672099988495738889095608769287184393190432000457909840940978607127849493190080236169899040757742283179164877374534754181845800672938535429053484280317860016273008039128269389395208831883748949042624073716912222110297309522086321855139629028807761948879212822134485311644614042418789466431298150220232059342030698811782164103646786195934275590004652658911729860326515090126566860315571781490019540918778264963020970702641572148757503335208256829140156997025433721705424465998875075670555955158037122647190977432618088506224505418593010149114863094240653042578887269536657602375137422835801270506226156775160820288933989513970178298223456177210552442812085252111192449554916354342597768711875625757383858108043247596382821007389647479829614492213307140786977830788215085010106718082711791685961788346126200912668380494826172747149482448456970686050410309785913945581438463507911800372158566462285877981849028739860249957744989814789654268823303444594140190162395692317251875991377608410521671685930350330810993440506957106027325823929519200695473873576687542523823312900527188070841070022689481374798670435214183401531309883983870279320523992522567534484517975807685054007946812284704923850211788774497458545834511645928776740322579954022129604551591288919685080190566154265988082414729936080530821772920809622743378159241413960776684896184354114369615886618070179603012946271863558380348166888995830931249315110649358783912721641822837908286684688522533699833236760571287933303890469845330737046117924063232694268658323366649540695325040161391203244680872552848990539263604557337116730474354366829807556282137921213513915665962753408457934060860349268203456176841398729059249389196772112519449701614973516206109461501116126136253953548005364626579217191789262070781258757595168602394265670041698214210505352616820309110736448591331673761802376971417020861773023886300579168372851543642360224257497029663744237471148907629671920527546560420100431398469244123975229351491724026023146331611730157573134908511030789047388444241165172715501518473657342910135873166747406160854725778217815052652097775977857902769611086863375168779252635295691273514463784166454387021363757926765844828629451702917990527891346008739673023099139390085493786091463508578962165918675045798570763659923964661748438820872113442915004769924174931339602958602091554730325884744496065685020128953610795014929611535793596663232051495545914144724052361650368921499379029274811358079977628321386081949631086389646630482107689983789098017387418373309103258517914781243286244946857163002377735478500984047000560629462194112601747082346980699757813804225103313760382955947560067328064585539310738277056743468756734106174553834671239348886966422106491264799251148606921423003541822509622132694678104877534684082721865467309536025085956841764395197960133323567893895411809954800906719319655591397074598262541153198193834622367315842610367716511673681839780866539893817195179208924681266162499916364194993282293855343156540221854610126993664354624030189823530139747710788967715254046737680529861480504654155359229898475141873098463389319694724006292026079058551549810317471819395597548664657433205580720259117907404778231537268030964436075990025922377014530340169771399736524642267542780466378449875101350939629291448784549488448228997246593076504261653051188240671688181176149753868573708032379389695450399358361654095696165075392311460905180358196127668134498079488887034374922631670315512370702587538777004606039761416112303403596222544966103569617667633158240267532398909872286234934791132121111140291293100361679105419446198581070745799016040718484458052605909113134524957235762999499251706191503393826813162307624634826415131065885997610194964403727752311401074781646028879311760124820520311882492072414688181257463620095252902398910000783647018744306579875902789765967724100828360786059943595590305508523603607177691368761167529608826728792682660728144872018158104734483084204435855783653746295965698931543173308260022013267215543650149518495296868235462658778698944665591349895919726965776628083234045268149736487914960953639696738180596955295346799585317481193495636359072134763742094700569167797534588528385853752241850055307703296534568122207884943054762373730328328220941619673866611075061843749116826048819015632191520949901639371258651730775575693653647725251959690966006485866680955699355749406674112584407567818978970881553872935069586335967749154305601414886192311069855989381694127268980964415122082337373497868642423479062401450387741891427497342336862528731626623145043277364067888683602268927185697366615047974707308013641043868850506830765061115925882821213661106696191827099623567556819358403266856204482528220188899801634938695752090310630907197999965227521012358999476899968764778175494853214247596492162988206915712728296145707941181430011356335623303922719615362600340383063326532622288807585205056719867371514160051656997922116062067120062127880519038469186215491157266608513407581522378907652783438371374909688580583590527113055108742764868892842374964380224642045845610131735520207567655922935676668779509234219214339636706885178851321914082687778119111857808236727871920951103453136149385640277662640724539082199660953086354160556471138519242822827273656294516963325765692747508602444778194280194383955559583446401944371775352874118003831362622029975153254545790316168214681637627669870772169247384275717246188798298859487215154786735672207394478067288900565103615971347784696862993319596335178059678856521119631467134567100455059634216352350344165918486988098413423135744603997824402886164211443624150763737707387580167474702248923330382707735971627374490238423743635520485413582147476314176668593813313301102751085440930640795719453070223034173631157863009284522040203406297429296113971300838944938242670516722028817162106344088083070144980848837583071701854731996168329711651108504110459376992665905854615086284725315678112144563587488041839397286224613092216803925576747398589612816407212596796381109029599682729491035847847890995972421367938613283739320870637650155940895842801855320740769130164054361523474843326522052591437392669456392687584356101067212335117387577731284588734569803349744584613375520992927687008003865521450301494174665796327218184582549427450221351164122931700067032729844683532940422007300763876319360388201280857672432233852414923400733781577128492328177313349774423811434933526007047588679823799734004528741089752579508216865473681086204600720494957599411922111453201320303365637589989707030700948679731382254625809725963814271715301450338072625542248480172312402644056246783574484460952856712577956985283722321251989013743899429558813489863971844716357927318383922894149522615094844190873340582995246734078832904879137938056555259144546378686200757056991792125672313263412701689457929948667858885087338389941265810142957284496641601980239533010210950769534827628800832220917006456636690205304608710629910591750932335145764537787096724580133508196327920109279479741299647053684202892466167166313714741557188139414404316488340032253257606371642833856226253827664808829044113782050226205614880081144272630828373157555978305553888463175455347514526164319509123169507663787521908885969748217980509377530693146072993843557163246895027985723086199098569343205944439321295866687057617675779487668050688198485993080030733310863669208126263789142442163149090790444795107413205477610308775839910805203802766909379898315998275030652381804927707972988262143305572020629628989004786499693757689129541456309692980903515836585317184078797830627789491412385388193349085538531020648636351364345911772731671524980361047389312585388060297957299361914677538219773844637130193655917266496563837981561643042677154096917222230528568234398569134130017852443791900892579400151178101158243679977798807950702088443388895243143489390402638709358435022407378601669966455740876087052176038918316418629847094299513759023705045040945048156204486250885400087586193929543469064074432103000612713762481809791588940093908806595622862206949258830353002887041197843084645593731567398866085455512633386501211963109645068611135534904526219930672980860700016685070147623062282352099364089363907984374181675172862784823888129805482574239094801410243562200582490911678742161772739561882413698213877886644574839664518805980401345299651399188584171012826328333074092236513994673807884200747866147177890261467362552727958205162296366002379741144744084087380190405747780849156949590090522868168371830922367611739698688979065326417153549259195392189387730265926751891533306144885831805132267655871991868977980307289843719268741256867866757247281751940524923631300133404185617277167650188502044567930069852559613714624769551273821315300209780252850335760051035663597807879659274743465901445391682718591624126499145714981354565245683519646290963612975135057513305635419671444338376972493706480678649181518953799908907303298302949994673487274048596528556171773786159579360563637723327927556837640513228440290463628942603117924309330260869945214656362544978484880064852973853141048412903375480194292951173196206509611656088693256399831265568189501852303751025513000311765047686731811553557063606870308708891809819255832269658450175294965353062616569494104559788504155918797449419014683896798993621332189267195682201678695716204588619569633417149535748704853556991180492189785283801434281376595466086229478059474361193739131259135588066380219546284330010105077046794427200383002662758052779869156860253511996700605634326122335210511409658946588313658900266771186838073432434832888172373479088884981560323492789844020613202572460299410472163122753321955971238997198982774566514360999931045867913128072329881736551449330368989901199412605582596269469526225445924236100589517754315805381538383927538933930431309981667644201838339695329677671639272421651156550044325825941002912955008113131521800817928928021224208120351234936089428173706142221402295527741660833384144155479769193189220172099191736303702726487441753133505744743885651146931947233482051368392408565506489140488941289583034489304944278816719051572439349652325793247334934371890459885923389230925485831304700896510614360824836935666078204520460541348982426518010733544694176229295831688191986604414002410362648099187817839757319556412160315280674502399389808855549378033234838265013099171928141327723964274176040045789295544798729479898666084421308819096267347465368363692976276806452450058908245600305401743390859913164788428672572367731747086228863598474351234546972612234791230105586971102002198187393860854950487295186685976455141577901859515303549961728491573936424470927807871713541153846760730584426903675147726030483567292386459162042022783080081692965743143017793398098724458662557163578056930911903754637672497485342130746536162367903874929845759710756435930544523170106161665721180533666942147632395224536397260758157008928588852954768656368689862996263092990104244597521668831402594309791781865457434334579641923192367959558505494571888522436162001550439380867889050519447781486853998448250035791169396332368974781939727476831037287336940632030449620707859722340068983547400323783514844699326786047882384568307303624251590026094163742325601087276699092998008424779006926071000725654127601556620279858343555243391833393699883928136636965505674019439159776849296795282339294307332622436647889889348154086264815816269217872354878391127494090753991211523640322521710675584812871970730981797195650015461321948305249014491132213667604455617805817908302193241322719340314265659500041944426269676354846000382758965394514745781947705339204760171588755919926796390451966824140467397103876113599874015292993848750371799425538471939662118398682605412330090719208927136671560900648088307623748214231811147457699433547493580844666608626656864738434364226798723573856543533105759133511860743412405742489416689610925506545786477697662752279888702775914121661095067330355270567106623730781859561589058475861904161372605193012856565998704794022752187561235616689437857861479569600368856223187776141048949336230060182394638043122321376090637671765447227918558011266974465320003538498641587411647327717563988387388102654939701835018807134805061753008834962998447076666228965345340271016819846210210851267719648115871247192905495387716249002588267223986480838003315789259847148688982133417253331818112564372998838713720829150640246552016249887035091786476447747147564704692561171303646956165170399302173067677199189070275272959332853898071585805920179643334996667550194259499889983541958914015355407918273593542245004086757227793087916437049224704262585961459756886096803176386976874426783808176412275769751733923979507935304213318218421968003652447536455597809639771465997297445826651161865893720885891353149394108989296922024892402688703015412998144911665273262051233953518893424077502864300425623856968377893639583925019791273088090774044805176903473631257401244471653563698915386219815015516503264349499595017545335457358756066695729361113817686661602541309254025308069222873796934226012099423020341570669635156231305183199452154419068619332884468221284984139815233966607838458705707327722656294767514496578550431194385441628807201564407153185281270097599853488084532205909872435855212236412511752716909345557791307090071636515578063024341430431054618664710942842721366448552278826371328381267524772206176202244193978246494103173696707950887002555127927788233633098973016032274272669811297422387429670801480749547885967714913644172490550128933987688482305560445951409147612263756386501957369176607120898725692083666972708466842177522200581824745535227896726432679080010292461580438953969987111694168611797870607194740134473597527067491932405509216528816701346874123346021634283685777549781242360103314538156985003707998854459859779206306922414376788691566904981545083682484838588738417366442765173368212809627354239669510939194106837186432179993445717295844271183204447222330453378672713722827154396565199135841590051045244017989861242678062826040795954988611456896630922690842233253212597118381757591179758845199752890227361294024257265436271389846341210685562311934529786494869990817429437858043815955782891892915075249339125195178528251408046915122294685298067652810713834543929375535065738222056537764807507482814879623407397036554507582085026068630226184584987558691550563118249844183149667801954215808855727084435118749388765591586171600791554288599497556391996106720401130881831166173047379984725277728235989064708150214617682688103280797440979527561088196419419184533400868012574768336231607463271652085626733852722084476550123350279659417413338015674001968661181026878378624812619748881302042573067000791063353495737852558962168148656086297718189333337853886682176009044157225859713461718231818593664838544961961580622498184719535387655052600984138399674583240986446165425036200568309669810939890055420576486955286461350205126362563952613594154003155743312077152986446599588549195173285514278149036798529543973192329141081227666366350572484267883930891082097218641213401747630192920944720305953222080041879014347028706633954992247118059283444444127354458862378375698618243991116095014174159609684222025778487738109974202410364689560196201373312879218329029168746979067496437769705911780109584230228542446344306748526450563929462255240974335797689420636220229272914462140993744066886766445701333672878251600405361875349313935330585549896171109088390828036279845330905706351850714066530477818762838552144400599564980433724044655475402461030817380919005196086825982196854954769770637622913936054456343575297627625891690391355849312584404422435439487413008851632107812577967534338842563460073093989821532228669613248475013869628515592170584041152239645666636725677341449618199763747289087169467861416352213117888877809734889351901817070227768115058657638164356702280429304305969533982774993329924148928828321577256477141688041895968621563158283111787043979790690224830070023811693562180799774649907531988490863875928858716452228583247713189693710793767760965918301906774483925361714000061224733791655600347214664219349890605194584077262580845228223700818233363614351865026490180656894490658997235802807183203850287463690249605154872822010694393407368003190599413126388836569298515670789839382534324219294480301585085186556085269751008824207922840185024779914489038018147893708073113545294562339170558395266688597980879625985252622435667450668249303124619194902985464024657934722070921970232256266034852971813475931716972493204460710300058248283142420225160489658500377187949558640996271166094976591179380723924112804971909388003530742279782589852436331503863182903300128799419302196371641826160891331858617130225890876958173459618648219719590125761491609531530358625799321711366201898977961639661536063443784543297711291258910306251140479296588219151455558558825666336998582013877588921742475820760926354329334190287651740842173543959979547923047447480253325628270645701915387575594788389466419592907452994290097404980528512899270217364878520341739614580360031421028030028511354174951371763024453615382175173237104122162060089471102901170236195152727037799331318736139893931739349775784307882900972741954153038448978825243962979269165714173498934365821040079256577427648113393179462202355198525512547913935773858037936696663219368999438299146307763103099297996998105494863237328855297204010009696947785110679087193884219039570431171671096267629618496179360624169314819141817943845436306301514680365642433524713803197116280082559677068141858817216542983734997876817833039708809513052442115262740745660185863872110864838555004598194153728142327849076707156841099141132991885984178550481071428982274113015962937995354142870062706511858948419677138751906243617029823726683686733152116636232419525442937515756632944283336797544639792348755666678022747878924723250258898924651651409789426136894427539738246634322687742558842103828288160105448032412160606554855061127532632076993533851189247870554903180393535089853513624296149327926766504553305558522506952213274349662981724007841990710181758650379682909632929822063127373649642042523136176407345208351389616286519049065502903491365892193571384809217825749939388691959179023106082474203138192757598334910656402565148171473026848680596200988846849948414805245134535083138317695161937211871474513444846554999234600223268686077475977601469611710161370135418463086198785069807489861102714805961731901331269918073164682415848869994495782292924037721991694578116424922153331777886953268903405255734370332144480592199251883204207834786438927111067782131959949260450930346959148046549687981829933255225200220732482286572949161808865555947464620723389752681015652604993921654419123876914514243417891686543117548399034030569690326329079540846188066353736840870913359709124397409947665677979296956271639957521108224199707370392536258689855365800640903190951726008337945220339544724714769406204135530542754809485464281420197995628177605366398049555623446399684984222149370363167225856589462809203696503115443077042128036637183276008878691996837713711469731581850474950345818642680477608019260695210098208163200457767013979251280177847387053916060079555249252657335395707073252074361227010460451873514147645792827051089838625814820138517310551741336162233166681971571458388539255265835823508589221381238938613639673517383824151756162282126796278889118483857244416113688498963549269034779250340411571871315756280407962443083640897892227599859764985483175600208951882457213287703354593477664613818988894666268813731095943739691393135589174797379389163777171371200837068865341443812728026946006002757525211556844735152760551433894988576733815769576857148791493415941526956552913962641067150922896666867990459289871371393112779816181301285045912080532448595286996728296511922762678827129906715389127279650851041290457392930685096750519463996368720660477982063842038159044907731237217981569334713338210239687847581645547662678711341090955900839609508480678815635942086132556843267970481100676441275476165935325242976882763580649059001463027152239553156738903671939951020089768166862049839959059198447071165745152558069257099881662173968241752626468953615869327392744010814604513186581005022914109628744891406762669454403394322113989961869544952268409884472329767347547962072686609276233564365979937181547215714977063041245763681621191626429699171275009144706736470222994928697062426550125575345717316513909730427526779967928091128732234228948319273569580432635296563015014151916421797653526209420367006373009713570449972512484134906728717110509059367507643349961375528227712147547638143746084638972923878917676476571915715824572292303118173845735558062886872578297198721484646903126544687972712464199784220035125861333227178127967522568847051304946489981150078278641490730023336735694952272188243291418687063301531936189456778446714233227609129861127343376807214058140243008587885865042984368259828070271495230085717940117961157054514184936092727354121505665155977304628245924690767816308411569155958950814859047237747334708137702217019459901012136357368377032561220648485438316405240126450080536991599478045282670353313853343762736631114693648373660326377982410124573289899969924708960284899618424747310861078378780589562105532235405208965182707637804690375486584276946790212822528278004478163870550746934018733886350171984438698045516547878048017724435577012104677293027137522144724529792468813167205046654036822372295005611305030284653432573461383500357875355493828624573229094946749807886743050666343453707886732402047767735987931353832651029287235479916303292940854661068862314907014752552017537593387173546957333353162105763693718155933933688164507670290986575310943265578063630379308529147395478055092322115653220251779969712680838803670160663688801591843258426876385785223414832721672717741075093560219626043671534748800606527401159756560038932562705179329185603266362907168064635687663621096046201848338369635172900716037234599669211383120153885096831550119157322362888815165083487052275581256410742016502726777115025965101255882509939902542067322528025564251404049358275347694089709724912261248830085690536744379225963506065621001249511810614682227977282751362371545049638420594842017400593882192298558187952874007171756133019761489921039579345344393766408924158547756172129124033648382164591179422320741128726633884700156642094020543819428323381496300029830994069010508063115531123315620095106786801628449877355921935971475799937665880760827191084069157355539715610932127289163822052932090824525931992984607864948581183739012988619874344959898009500294762803703038428683598929068544345969808569355939099933988385227741850292210409751126143718434166557046177250674588990273882109050547162545434816663885347808866791496830798054893924322431317359879493404375431685985949961880322696879095090184446350908518916374990107186330041599846705770616409200323129154570526812053810582206058586036514225793520869389215053155008366557109525914134698918399887156056436191266752808942755253764545933370605750289237683289497731041629638031552231056608874347489159966753680469234701100603464613208158581172430130129469201044449278723940461378282369223050117546295763998278049795194693511637636907362635957007647301776608638763005584176749225552817897628517283122189927858424659756225779470264472990827582015289144701079328693554471397114544083638563127214978829704274519326413067633968606021332357211364653862453761234609708969270045848776374668081671943365992038263311360430524452419344977586031987104059034506917707495937731113077640169551308495521585667045911782358890484712786699706575706255281618241275425748275279248032317714235042131237612499733209397680234492442002429211062732944261109996810852842833268370710939642570764960224889967253456418702699964116478673492059275855098507136615620898659152042252304332060375959462650503752584256754006440925569750492128922282122910851973192605041802790506239060379454662718162761425370055966392678582510883744331925769332573670330660317640273520694601406635929673541853767799406771927709203294809646096898718884611817643604906450733875666024012208135681104091767143955741175255660323156836607840706930711265869632699133532019627202983550358800180541582838068174962728383459682019705952566313624873603949500736170180089817714159681469669851368991151485860247473597333464016669752123961289162571327763472428939958662182831947493677885660388374012976254181551710426179391581538650930859194825937832169507447283565641549762755208983633292650339008915070260990549966195189257536593624024141494282450967095585139892687601639664525179283542220888296821499604611275021820209854409704386664444027310683065812584825474472105522441273739028379144774945885616203773689559292946851651137264030031032677089447015440581949042536620411242187373128255371714890491219592978116939280201646313865994029651752429144396215814481218764684624561100106647851203094363974597352033073003774147947606655276714195058027245151480449420841584347343529975508876946339175945353614595069368229797155344011717792437071399601297837361829716772847410598012005262459059490053522694698343388347176532366347097635706679577771393990365054529553488541068793786658276883543540596839843801695264586702849714864247688675304009110324298573342034911933412542598420640024960025865328427325142585712037485487213491252722969163971563626345538817587127935793964617425423104739000078084799322328255692027364213146244157281539410964174070552089839926751047238156425664193092548412684389822570704170538744019776280392494083582651164077001608026557226921430516098794086497484883571514225998542739132113232087700576514769914807568299698789293151319112446692712204566597950481265264242213316315037176770966784034701342790707866537119131015225456047159065242787634701612559479942694705463536765685455367276219584142527679121318841634936318433313616383360299093578652481515585342270074593995727076363856246998906809687039397853488967460695361854331189710606952923483812019978437142137500919502373087932289795434718697265902416714528919001755401002289082305938529653192869704432445226662517593832210486420097381548701051668095813037350513733199775311259744172485080156362571223862159963411289428730660852939156755475587754831676637899659383632889218926313995396720865059536789152613062455891945321247633454288543212618167201032352872292454760967937285340604816567819838517873719568393604518772780686825010735938688232736142549422724719227234716001747145039424005690469683595888835233254958563907598296724526201483050299364227647862885778643417535415853891865976661905921425614465862418232071688411161587661923866982587816039202293470115699478822114042367818446056834419136201606948420063887829466379067369271479433365687447071320470980474491256916966416996893827478190488446718447548474599380038296388566950315764780372861720226536371305886227589443109923566732673670648397315842258918665602286219566021774999556505659636500478744193385253418142987206689024962310270023125246431292430167735364388432803857519692439114487662861254748080872626241073754022073862946630546624690316304183467047850213020136175471594939123963844266026683820473461225470175397651927342378759058865715781063717824414578378568773501966114234132318072277937042655826467770502449425569343586621008788790659657437318892526285383025081946513271462695491370060869758491781717736390507675378776738407283045735207777291769742678559650804524681969681442915698430035040946605102676511531858225924108851685901521682970484938920418122478192578161766056678772327848038819719187742547198097909656660071476993945414699789773124514398503033592323482609280182443821683099323123814048042999448133347422483615769795981392330205052140088442740557442081764082948075205996452647515527905284906484767364585906952774651935230530215200692976353663869056678330842368613708556275326645588351662213722656886252028978561265862815534247515003673116924582657073625867294911972238989092303048865410529698590917091913489334915825861151384444488720494481568644248481094834820154605212247113379090458614677250249808925517822101500047090269294414369023474660562825076564094758024209345257785537983442469362525059971211798555775842206510419234381094439681511914967595038865365173494089300094054740800572483858975299876393941056185383272676670829708722817377093525024059163798364441534190645268335992345730965485367255267019660596312814839964384972351866955726394969511983275052112966305406996897280113259836862457101365755361789849606399303367416316255631948560466355344574100143181345637473701408307934364129181248531401483464724831072641218787790535739878928974514668045522367188876823447771852053334071980383425851699085115829135702931471588382110024103436350131599350331137842502691809421456579764312193409222194806553166261662361678447807251993063092841971814956665361530392326287559569094083029979430084299863253688286298956017303502875378951696111994481063249997558734625027219288913361584234310945783883652935494731682657000704914725266399305862755082904689593834847936403127413987460355398219336725687775380035948455702253650546905673891565555275564235308435659719157883928853338074564483093235428620128153655833182970156004040638816751926861904975121988437241634546634886223494241000452750859702841897207073740457208555892540255343620578452834468428103045225155648261051294792874165808282437978386613429101499222067625296040984999286037532450111835332351212134868778722641078725511940610909505964581118426769472929432015700610577738137988993072351811339487310214157727967146989678060428111933447975098354919572841233813313209829248647344349157894468576048121489095555961920864134960829344728706835671555284373402134508107913773062530398584120119480719349686812974224071795552514823839204394916945397224397145171212761237688175190764676587954248047621897764871773578112872969899616862298965314572869685434783966475807403586953579537741334727503491873273602623842611189153201723955666270659504055885323397850146774368141131765114178250720713357855981057675510825123987667392812583404942637875262031037153448374504745364112448088454489675031124875250168456224878287995864800928793312921962880547231751322493798409833549427563492065088756073724314600242258254672678196394130907586483906402567991869724197995394612007247349003497941785387686432673716533306803648727093847774914701369467040897572791910228402462973604666778519485386813625825101812921286591326795520634162913144230003574174145645123762910149726593110406695224942152633379008346524115589558097911691343111932732116342473182646099082985619123592214748783252776643466286333343336117694845585123231273524600878886466434792173025006903723107760587375560656757788115209192176521227964016023994532762630431080456720492751944892007663915877119500122683515983568081199225920865088433432773428888249457439071984624019360277027652111352936455517446842951016031732765750087754745269207220063697854203887583082733774739045767996709431046536224245459804840726856733087827615802376556834211513897742560820747618806342316032975657004447173266929887110400487650049827576079756416020425528130978314100196003988038065172534438592282054737518084957918759980997080963818300580386717321155781496830492897686086866317109634730703682403694015563272411250071717395527440869354376310300286983759593606351058406932576875197698607367005256014668714388469650815607458770897617284346666845911178464691238191651120322907057299980688775118267914276249021620539044149705652211358050460562279930676152620794777142193897020893097226262720758473362271508044664701119298244062659660184573188491468370450956971833200998969532025059228369111219377767785959367454918742027092687810661944043230334616717656906427199894672834171326253197746322829730703449555409092774662423566159155060710859485262490411843106906759504871355154044787124272592365201775941565921824796838782843038930581806557830552758790361407838162185216767577938705460661674047564840804800180090488388174192844999660087164746410655991843569769657112572973800006286973195320058186284736746785946836553212059105207779379505496894050724106757153692788631282270667778388635211764819239751784802495503740952269822353549099108396865134909768129710026921040156037373733840279675204273587281481924301591980578790198864548213479327364847372659612761789201512470258841826136263767435372974895430777334549481542308652562325155926236028012792858461487170499727233235283114035980773389743128091621843725735112507595399991313687192752910669684155523205749455719221797787715217596955479844052279730785597253148629709834384878456074257445306486684090940463128163982012954254436444444339793438537970756895014802056573888619776148753975331823598563062290698112243758677540600027605120998923407034756124492077164543555522586004912006495015534179250501820125304817381731329737129650923511597151152774099349438140430815244946187436259016979991872079136540942678267715065469805041846412907194019349983557802827576754742529384695348351221713933052524664737531959799886406876285496313363673707946946811685786462246527447061211993735570459555421984137478669115841566460230077457660901173800010754256834321288191588786033196256185429894486132971732885888392283649815239923562749049931314938825702943932830692137135921047875234586929074492396770088169089879257455166617203658304412040503298649938405842520944262621811322220075250546259882333968695961744332837436616497481950780201557325346672241021389300795278164677467861200713057192203766889570341488746198103353161955359387482815639714942681658258723038747777772217478589630695036106076787957952523982953500850985061345155590769933329985614449277418917382269217112219204853805198280062103094343748272826219365656826660287302489865107642294036551541430309947416576694649946210466013824188007133073304616685791348449297819554825590051922035926928947678519271249000966807111618846983567245116950537926642857280745177464827713779016071900216310966521678811276368034373477578426123955737948357312098041717749152089726407727874561765765084519651491758254951119797530762346327030985341012578241010646324966941927741139935746308925135509889084204684239841863663346391825821117425828634081634948526979107121294843040547089336510855572468169759692911517576700382400791841872180449413667206268811004921477146978704244166511789092772330762529428541625275789734681690556259218316089040873063469787526448974059925084102345538570644969443791184344411497256187904722132969698196270451065443992592901719468335362952357275638049763276474096958155541150332218293971197826781388868988998576184536979194024802500011816929385366617444692371567004441061440361034288101948973244077003922590843147676526530220535744212147662973442756537326281685068437803732012312477751754665287525986789334539034780801796609663810136625864152635259881469122865733838652529915420766200601489632196307282654547659287008100943397144915311468572714338882137675557482947889314087996737753122774662304221676903810816405953842297858396174205011804526115047556990752815265128165195125261509365331399025620572113789580019956074808696806024345866186113023569765670262634814162922325770966121797896461271921047932763046140783902549497522676234434062604259661226216268115516880930385295084461525358961251016684230669920468396905039157605532399217510225861205453503200905613118219940396047032303591284874987595855362804901171303404027462164173330626840683325831128364245618223531059328376069750185007184887852059742118571795120868483132257763246453223268817647205707554096627476752825839142084090996187508247288493188079150224865480809612931582495735372168940551944629811543031778351613047583029280475117173903948772134278654791172658971679158560915213429365893921847592811439052344397232623617835018298080528005831923376093629479764639392831578759230355950136372012428466688240169053206089701659888102944848594979937745650478020084453020882906019640606098973540720783237506402882717388884197380712155938894026067807020600514066676917126236886130822279768196320190838201363707578234345834318732310653982441280879288479294335219810414623079959568607647093100956803806905391402844273464302694697528463881270987082448209195747446218381977974689385199664418829030810096547803138108531377884246058120645172069530049573138987540833914608855541771215758688900466615193660292950172338802252651004653848694571417492915990112743183221499929081462048892726956414677480739683897257826663376654329917335394292885465457978622487486963252676577856900327999904157118653147256583509391498311555421559389749982074844478184178361694912603271292391895026445534275645860856412292401131503600278251043589394710083275273438339207586486929364215337786920237489200687383633215412588782993802459800439181469030571745880098821231854155860499684442414845108467742405128273941241817778566957584577950529362742664856481879057852915337277715198002709137106008740526653238717307946977797003374872979302009608530211136320937574522540909623070040327625874319742906291325341130929897319132073823637734197189749346054197912996679585502416083222140313638885254226223855600221463081934981062736573127808798284909464581002886441522452065826048081168920978511989622608766164055255717587042975244723228393578069775448383235755652751551473921608261931005367236450979097103465723092945505817947631615219903651006431823769235064555129864736105261836551650015362874865403209992317880073251829837375911450197669707165006707313430810153683910480897143053039303347736740887520402653145175857539815213179083791530604114123905508178495554184249331668472253136600132758297589988718159390970135891800055725313382438587536203270323946041646064400713195711863584875926140485917313166234869916946765620967121331529223135663527538200035268713937850911118657212710434690488705010758388744053963397653849427843958634611113027526347624082069169902909413038918445530801949032178217212585379230950343306100518329004902605942745061805550956940941277429365885833764567981119061820188603980169255707976549574261424442504336941874783875491296023268292340183056940113392704028039147095375316776067725450963129125033994643195237924341439210823194630524163513383551487599684840026477350953335989213149208587468467226713704283709343260033365353779645659343378449922140687040532980610573580974426259694478759075310424986488517484150378446406513398293711219415181247329364620832252120735247567968275621047580078158954164624200792371309013360702800988548576649434940155358650236453517789670779424406657606053138565680254439153625069526005083440698657915949536623450323485180540994833607583825156842977465583874976352848024068691145316638287966859003219786363513636257405685847829019795660300260055218185084761541761224587533212782023343342413514026331716460566893122812783085324950227854737856320465977861099888755253753800762254122574354072786606313013381016999673466984857995910771455860067444744909025241079340230131396914580485821031086920206240059887555903251420664590332638973998430636180459688441759056778853645968618991508519980981716378692684545574940815493102564445150780226766598318822579954840057821873812280386241888379610062678171058938892826998537843210113378685796223897474646194562835713266177584332044840946228319768299105603385163462327864764000168698984498784433469366924499619358274466905538183950511970429959233689653692540538554316903456364357789730532354673502818659533368838422507621632187359424306653697291071190679357265549996866555528206026625294131592581398504494700705180523830658882367465737327536919126222675103621690666910202806546334715148050958635136208577356343727880690848918456960278718026470399592320988004530769522871146123593681686035924780563449832712092880306549052627870810633418176936636264391576485557672722612084673121681204096167701578222465868811020590139625377665831207551862271663794284440655309813778704995710311246567403208460258585253555915472680954646966187926368336854896057734609924561663217947923571049625663479863372881713812973776615552411829885227551416263830811674514736663330622200059201310397526843389154457815076859415200314222436735992895210770854665245189740590221142796657024110205263067939291028340208269291751463846798410709120806721946384919644464996533918387770946471168494572160162524657249982973054046401550419300474076942198891044731151737339213807607421280520896379076984734053588847418928940544077593907674356645570203415278276904776935545869896170740239114762218177341300851413230639371934777771451717973853190298284239677212741178056765219788459395007848087418807936797071486023991179073465336036035387976962372476119549956732303770312771730385512107111964433713545452744480595032091134453819788205663846110867356058398963410034261851217912260134829873436569433252043941619740169996274448114765795064744517890575921707261146235202635134251178221830624537511306793505016333452642990459936917184536577377154211523597234474709258076989976078693921693834030732755510334668110043806915757732807110363865756661144916795530892220461392083648885992476556334834616613065028771945719818263449952030125267048093828404476155451426671616615931471017423411324838140243333752688596941580732477145920444369364154101216768107157176075782218300859524554407181422748810911539274693725684972464723354260717235003255049954429958824305662620951397651914986286255069487599349292702725629004836160442873919000082790825862183132723564200423919915295043018689683763850200704332110683224508336053295132457123032722255942319296452346340798054694754269766393223610855887895968025204766686203121172379034481180854007039375178937098921940954910000503699070956254483973264143434768808083593222713078905253848848718931717507503176669021370100777093606661660430266592293169241037937841528019101461815185303737138023816331502567922024591287352229061986291085203766795733509302095308661429627645736900153711282289044596528184440801656237649734802509151134494200083384985668883962904343637384270399879274396357426298002490719780946284309146977369587944226215802260232216277452336432667775229080276536614682098868307553690744803757282052523452569371916390591896615576275706209429002829067560081389009106008759573167341352441912556628884313437972631352197159439021669809646109727214525278938450445290527196193881314603905733145817524105453410636005099221998477623914239037302774262727281796527603146718620635125897192647270108887373703608447282471842697840919030595296248346021151383276887865975150333927386450098855702828579674064431500892321092579287342684367075046528962479146402968744972747796664008880152384887281581361030625277386758829567503032593027380946988974721980274420431147045831073763542821219573888870017553712404208918125106254563234731843136399818703043849083293121530717549614420768160874352763656262880870201850727670001358110604113364624473820374471396248118690171736114613706981994014115767902466461483629276632530171889941578370916936019396065083898966181228643547518315598198592098208409240349182329862836139456084156371528109124176698568164059099046624688757938838117301272636087074927071199419887506748851248574521728767083741227137108052585536067114617300629154719992307453210628615996618140647166214360989655369911476726059349721144696807283646770221664068615439290146265047706197960937276856614424837578360320984128997667826603771112579221208088969268883083956550187387059076720295329991244463859320070076955476640506767001199630250809445401147950690889759040332962867573045400394213887468159004060568351264658150553717433111851446790112272871485600874372433432930126214349149616610068086487316011449690737829819863232022813330788231697963468685246816245895560740949541139758304823609577170109131579211338915619835287481450286052511468406683210155113595701360222343345273597624006928327564084034839029319835593844210319611710175958234370219319742740831132490517502679509474847029651770008494463616646244078952143759707176569475419840797422488421927961803359502537294382757704396039737959930208074029478234158456661599443204189161356695902937284141813155175767742653353471211620599252681573887260662690372923926852225585310589359834648945064516754662491082877871736574078152654686775696280515904689788947700452967620513659586900326763557038370681089982214765807184950849344470776807865336125852239016548443889503426624686058671092495269369376487185130698105892069170407481261458832234006959437705257528639265038965180441536897941282055690646592867330028658221880730997808329725346420211622074238949733482071332790075027333132858448558140232472534444805502906689574679382600103985616312913057064464886447145492008480318341614675462554973436167195976840923329578331689415948689211067348764750132086111838898154013024439508879730444042059604079418796421499638893673918355536603008239965161894202813977483377923247576064262481193121851231892010493760783315243225030361972943534660382595600834926107031935904274475692923479553212860252595263641798430061597793482356256675920946294121789667964985951253030814467582366679377961980141327544791398336954299399205270429247804071425991970978850624134105282240822413605675158180711652034595135675603081578611141856700280520161366954845790455269768384770774128253200548676212948559548273076153485940956129281389520327835531593814159939874720696607502018797343865971949461543826049510970578328255273200061143461834932714879622008787306274077703571030321564043811793371896298886285463376569568271220860890100387274015269812252549590771043859889444363614141774020536343025776830533466535154666357945449309652921361975568302312651254864856265475906099962026978898066206704820259475178641247852680269465923012158637920538018505350146768574540042908608074084574471141203327994023695245515624313206319926334005417570357008535233134671109720566181891858702998626962103322000472495284440901248698388762105130778771812466869260577973643851144777347373913677199304680669588554101933798792275013208837801888175461670235355391665515149322073433828406706633595150491376286720126643818534376167409407235496496589530050808623165944642786686023170507038775365607475765091488019805349866901366605258955260671550377027122280395692663842833832476214480981123926445840929142823933344033390134848969661796349060421461521728673842527708196888813841645026277519975431177751816279302995958764697917337965698994565027902596704115437440874090373053518635649326053967711946606386718018389643477222760453567996337505218949072662472961406923337776645541062521304655358609304262673886457764468252048905495799816382948177444579909555168991762458174123580437815178096115797632419267594802460326266522867088003073257331168250857445748141777095154372784776673101821645365676036855064944220348748919095864227402824070331044760338760703145665202621294764450805706485466336103260799700335934215337382134719128535608220712519555344471427582752957787369168179123282080847628337577869043709904001150740011124172063772231163166342102549951394139605437224176986480825375586842320959029414935545989620164054909385613681882489257781820731173510039682989761183361358611002971798106622079993141646635580806402482085750806489263870590274988469066280573516475468715147882731039864522128644722023490288758436978375292104538265472065721633836283991814757726474389115764230393649262003395595570662803242803951298988437099415834491981683972394503369093955752474499269627092217159020873835820162996779213117667433601814704596210080065426954880095243107740845156964585752223103702360952144295499792415524490516944571752501293263019639308097955234549729805431119225470509875990265493118207345560204978754577970096647132219610177574009026379480992613941560454659125608318669261609028837161009816039838231842738822506081728627919293724509196873354068936277832157855928749241726567766452160239758919413156800669608022030481300579447055997481251791285851577294811288678041529773998259554178431001846819917667740001863961787650498259594756782981230435808593913126840059829346789324734286775772991988900394854673418251788452477767563044332114593939660062003443904503261584935752375984175426748273970039126155149246657403473037227804720746828345168569840526936708439370286992839366227554820532696912512822910792426510033243251399718242614884626836431489543745343521025682899132924708630325854337402872254804241289638072210622230157832191064292847475736455906249157884660889143023993191434480751173671946657340082552641764745622059635013051085954394524910897485906716616475842488700639005465485326085616008413046969306722834776466009444920229682514859423266204867699679705982590484042162092091739254798587930214743737521161645930324860291774327566474447044838923246966518425254977871266792691505806459793723048487650538507491740839774159617839339499294945287125584409981946145947694707783476527245906320970943835442068639662977465751949696791914234871645826224348442955045513501599149847716094409160242825025049703652467670218495744396566886716734334113529642172526443550298999874456322505166186037159381261112683985340281666047139193666539201853568104209839634556000501885187835448996715701087854151025780451068345931662821975636389208581167360582642101556439248889041229764632725946804696289148368796363222558669341785260868497693549711524256427934213685626155170498888891977194985756042434458980841413741626082862614207184828043428855217353275933717841976777589551212244495898429712435381531384497697197585798420882451157687143488121767046890685232139146328176575831697165337822625814758122045543814368116966344777653475602012197337660066087982629745387871934816224769800975382916259963611462357421948330784575907313930932100528393528754331377611290684451459457323524184123254424526418343611294849733364275686483852195122517611256909678684813847886749932585012180622327941796752717178807140901434771303223193027313378112578307311093963637279776450339792937715461095028313833338056509589839191962969704688372306946583401067753611361582841336251693644017221882878719524632654792468608881862190125962841219069583402982542841451566771631100890250778036696014419247373902451628544089661404232227166596991212835515646532754940671728294468799904613037195538670131041606787163010570822253846005918428532694960088778186726042783580656187143254910124351968836385696954463413249109581125415593307790951069865325106003047723824950493084869232215634273919617244358629366950589196156503514567041940359810752373965983736944912760052115709299987251398926434212934546211017674802343395458377868274187335252183758216164134659953103051414931468946283726226875310398507457667553006883130048957217578659435415308572261629693675167265294220297052653980327229730717169762175557798090638755200735914726972250152336105557131469215923649616950071884755295021631341559581903661068432540103940624141340933565701840934557603914275336190092966689043308617090939570582385721788629075363687496716269771892414600578569204539401320054916110490290324541382259663417089426804726193772650382327848620634376156867020162660325832884084885773293233626293711888917609683512168573410589145279021941661316045765159136541785806098152296622061994420077303085325519683123374867876411261893427013844761996354742131538807161910790291047764700924507090933276775310111791601210951867621602233236245108895354756546506408541886180099436977738404751726890527811048441267931673354174519893207543944431046988243130857702824553139646563739215760681082811067763076696003244758774482514049596819191615225395870575579156352253543696074816944561969015132715445578354201227599050233896691931196844241108716678165490476072837095368865426202890641571021017648715958037166528324183961411611416793394347579565090810906480026088376888013112179861586283430669391143397966017807261260973572893533076864913912478003226384602353755320130059740008737846408166326387886241075846852506675307510645805862120181494077754447238882895686373463458476627308129081894245215774098680856194729083601211098958457654458711141836932732276392522344540003919749738907013564431321035646861561617973563874406135354385306432593381016734111500090015820960051766906075174320550964174566727782357429328235877810109867372003319752683126058062425847140460108566162185645300216517495515725732779104271912920801423887392222944036130080374675221017971759469246179707465460896949339139904649966496003708131203671272689824968292167754882873506574839075736931684889252646445980450760254285191835017812977768070072334533756053402707195978654132871504557202227907650547915940546412150208488895560179770720264138459199339701749686102928551229258732912103344780015190823294832447487035970528742587075826029978648844635359731437231143614152722147165915151741759277559051072113546446400066355599748931077058814305773648919796963018104026705266284598539352977229117683614005366016475971447519311537351931776199320616421327143308674754173712435410716689263909625442637995952174971477277327814504516876356457535589240224435536839716365121141984090628524741928929544378634306924949000727323426451910607172756239919801476330254311497400877099965281767523135433974757758103457894468224812117678972930186879613073573907620428754307943524077117617545661900008576430301395730029907562162254771702987868426290561904797287312600924647034623034847393088390916542923076895438552467014536778831209511838495336662668512466787042227232326611784106923484307057329479657304293892610434816524180046523564850450076006202462563533963943334184758343160075002714761379751349008483673020766133662339934292187007747042316876051382775947017785630883235328341877253872428662883990715036201925713262303972370559270653944044907084430374457604786865259771205580031149498134640801015126077895068626523256763106294114547393827182520031252174346035142981462170190061288278061057556871383299052807063720725125882731589233293394384361466637806225479627097924961853702435632869967851356834884175269212224152833763572770910886105275248070181833085661237355413192790276882677869060102299311321922672232481052989818414142186201223088969026918405250982162963602161914468520700508714163179956308345405772880029261335064033967671199368736921209546282684039094193840606328499883022775980772851303960132862125797131982142828538267345337611286287952300913806640232762769177143129705170048376604253236091278095031460316672162493525820540152626659801913191083197874397200122022452849273952149366336817807182825113856183154126483605109838946867557772967271817491779874418610280421463202900706693513696834530570556172511196229378969159551364941429649616639745941540551760629267062304596199080018496987473689505511163849041933185039816050141128528335937432710900842067107460532918368998210888377732115457616053434216705988180952756327256080979317535487714706081389993298068316730282299974348893327110874508788059023207113020706990544848422551760665735718812939667905738406188874506885630702957285720495288559255051234351071047768546846478948107703493608366588544066184786514936754854662391855966205008063992629160409209501091667905990219652923944250501047734298245958198788371725640666318788016766809800398741040778132239299936440480968704013647923352176599872793432965210244437329211879154935697676000954578322743458425782386882576476742149174075171910748114490364742821591420389849245004902323392496419047453674720585811431942280007298876645695859665656184520595604773287086738360365066068650358119383189032582284010650916836849446597491327249853813082281924781684136039187111672407836920067506041828888008191804889323425368728962326282803617300426344166365958219325120612295575813841736520838522976223583650115849914865660220111945440918471211819623870270211063062458937918044363959824517926141679244429492683374625657062632636109511905809479050075765914053762446968551470176728006121485844021893938752292655378496629272540322803038061502859733140451252208422428807300423633859579011132523363199258404257594154598745411468083569814488008428926500876119973399557467476066712040319979249447031757793400427135348346443633643826099960394220264346017892565958155870580838069888175686933741989635844268286271280530922201855358467947311521873548704154190384447107508305501388058059612712382622976162275392209239087450344891068428081200967303728858702728562151178115082809684346466695706617611245069085688724950352459206448925874054697426278536303449702987951053951333425302634794250218146014141776886057993576129902095039719328119306235367021450546436374452866505737848018822241979311909085883533754182533601956637963806313606001328537652642361563034224681215192231420754786103917463424852335662864252582429137160778708538663246896092779049624120808704387245356944933431909087660594178556942621632879723517956044853637002467321309972196885096084643941284583414400182718645482279863000390880438703642276460854636745223478533189422225067251132336354765879955821619000872218059363559549549050192931830973024687629627365401840333490937036893808149296463887848959750149453070264333225024962714999494872839119146399233726363833185497430537043411475590710314275780502124351002079650944825636277317660137584655624436323721108924325892611597102067577258906464143055037337953319444501954671663937794355351285768941371215116606431274796000407008294168366624037804680835959718155403869540742616933147212047825462333309035684360350389527504862648643756826245463865392056163543921471591688894849080864516937826784432743411172381232675923981296025916767807617962326171616173529157755200141769602387906316223905170410575865492725156657562864880887853017015265539768160685345876641002569893586623490848288633564452540689791162539471237844317662180046700928871662499466286800251239611487130768118424349734969467777633389633698047629485985553426135136180469303253222819221012813804524072178241716483463623972585343881606180254731439327052583430087230925208865085604228787100402429212923863725155112097151782769433215046540147270544220982614706699308722661631388923583756918223085825706481266648864492515023017856157160334305014051509045246369025522100648927787466559042547213948955975989197432305886926123594449424738503465760575747671068173692459577512502888759924196810126859323605172385754002332060596852368901915364737031104846689708012708057918587581343884146021567909328410050102055126211691843823714319059161386093039663824006992518521291762162231208106099453755501598647571740520217537697015558975113968878316338297413708351891374464993315916081312347038730277425214073697887866770615085763950828887881304773793443622825151432510600127188457755500226045087266149649929216996871751038424751491791076455577837427079569721449801407429465492309860931581156421415419804374558869550320108743130162617159970483239710271963518740061174212448014055991827454638707100126731950096489320354654427305543129811926553967645831165949598167260834569335519359801121384101179547996470504911258326856530201818197319395462368499489569776376736779635598451551552111061662001875339052473033264249255438076437158689385055431804358761547713010559411526013749269519254952478164097620697909494602224886852904871467209739058678690074021949434591249025356538489090666776564993324937019700962196582034172970536944445159609899948766505322301734192568569131435533299222303549984562282529294159981055533568092787298941827880022390218177233362515322327326358770401931803365754483117320468544263241475123273294064770757952320046950565648981028519671607784898646960720355662297945137530198320543962203176964962564842797361601321602531298362519076026668858715343598797357029022727427730325320003267384530494004892607504168710806654685645317489423627921053053280544191605223004315413577470842383186599998180936184604981643471098506926840670984957830501613387804683179060986854041635235384994380451295883382613756882644508489652316435061235141668003840214932317275209236560454543067736898752942429017083289235750450304632709302331797454973724528113514404753125391989974833438860055448324080804511009072083926725905595453645860819025224822289276555482876163804410533961289596988287641084354103545913240538929644471689883627276236273801999151247605371117390324898388723884430620395603863336522818017711525988447426890445977345122697057987001975937192472112222406245429541987933108886256854892325710429525586727888421768396524985002160358851065726884562043227061404682955249061100875538641133577648969882213135030405081267321076379617384113679803087697534558954561346034246333916032885543738749923209109445393755908541524743078836763029942434504905681981860487231717898033623063832874900110295166307083753756410326636300053798995279682225840732844180616654782977121670388348272191741129643653872079046727596083818083089472534887866109143776385186415971018546470863518947244930656492071020432299077714755482385330574844230314292179268090260824601150188202265088227433921791729386657205674661698729311126813886371956351031505872314566423941952852494253958035065436180503677162139573679507608417183032192431586025806097644674673634259416388086260696183421528106825116520485724418252870199250441829325859014139251217923389905496102287304405117864224423752339748433380629842064133439694248562513767797371990904174014314836484790306859457334881256387956127761435738646393688785781810278553316305333011271411607569409573094558677932888363935614666186889377326489605258283766910985119468253934408730022327709239810912293349032841380952806267755026472086648812054370322144334653811297792965283973109615841171689924737041941384928043963189403769207105291036751233323935467014651067877525159478745504588042704179644186914409333417890009578371390031888370465119685257295953232585940203087035195261316066136770870287530374766520846232205042959232651967067602373123975808277684305969341595699473756902533424154234237054714731267047391984096208686470509842750953418550914752935241814431368857158193141591801598365936543778526067416809025827738846030035580033923056600599072120238494385068923934640415724851173051973981894401841148459316576760500708325419201662611807252449401097769644752285649254089158267776555635412941002579159362514180376766505244392053398896634407091505652874424180977113974686796300736157355684499646389087329148313757306953570054425788327032792211320327828281690492402480022614048901712185336016559761966727001139840310882907520685084906331905730347091074322529983783676041061665914359406768506331548389183661960683062198561455865288477126781743653946801492166651491813600239617030620385947627086752209961151840722142785150103367873145224093730139311752118379122298766602796047033581598426997827502905463369448273023641469305801879615708180972413456600061509589698136293189605755694031275625275201991190318752763992546577784500049503110257540660311016189237189067680788858028883547657096590769804215270304478158924688199265126594455169020360790442728390437116390300772991295824146807959379892806726308641754532444179637550336475452603214691754057448968297142052245568572364256538209132257230293701460034084587406753695309428839744837114180921011986177348734319736816662014713525944405947786474057727870894754294451210596722724622792910990310310035596019436697788037062412512907155421981388074880300921768211705054903915000484831248181892968765193381935784343150327991797890853497291245405644695904463815746303028698564801169712190364276239170314096775227493602465717701285666337460403676839326091592246102848462263304741195767390084365243753595518659624203584585857810768857556254321795483150626070060611695362718329122265595227226817682432318803406375466158130160160287727663356630541635462892068742984512857080123325318551422523501984380876969303834254110114302628437249921663192955170642814967427048110445207127867920831987047243516906597768336899354380818134237790374000866925355642562598351221095409693067750273219194071922021052986575300695710318055923898682424182590737589030107379365041619012005164218110220043182230161180910304528075747976159199280914363771977738502626079314031007434526197674380804322332173636844671496399272635879057438585296657180262459373864204315902434745507181581867535681912186170453947998058708671792688280327167456876739378024814073051725920235928047293935193378712100120582131386139062421948258235258402429900145682753157138587030327550668813440256449122771943047899554178529432634037655517482790948671478106034119955106927893772553854621759244899761348675447698433446477145722716358445227999454821761495097339571252186312727789012392772613035886770600108531745273374626468809575715406095482652981943654687862549353489490442048428722930636796756567810188144409309702879649988807936987738713767395068541198918332834784228830743316347227773932360010330613694148217198840609592224132252131063411595657899397845657586841870568488956222197555936305462118717382375605072662572346907243882511363377129191893568005317827543406039069096567072800156286595797495388360250407734261015501837599453527043066692068444842700622655551475182513955900054615889143820704198674445178793189834804468257243030804902183468290376814890572290159885730371988952859084651335720746437435522110661305223862252726019179982822515987360713307226635609415127405530183726227389060920069669201185939888682852295395249393052514591674912497799843703694427245762184056816676301575629171218573225226914440082897390800193193402701656739790006501324149446865734752199152660755886093218877984648881446966417894936862081687101995805830160164437109890987105158534159357480942322281274065365783292769715139911783536876104626748325624993466894433483971568602158579869667227369375961239099946787303251771666085522650970928620097837983440395008463370415358383505526915926307494396842877901900500002631573695903810213331697170481365398549413543246666975666637006116167098673932606085981861615834610149820393913442525472971972900269956327522163418729273113555693637691307372898572498938580334247542514406308680771779066698964714628517132845516769621463972606480390014857046412238671886362858763288406281885824510118821929745959976091543827538600809900654437765413044935351267685714158391326807171407310533892854961280810389362463205570944394973953826788738719626143455665720429716660740518313974755675231669340299027768248147058378156996154617854308236770513621663032550830087698616212338183862591824751337856522404428747652424190780457230343517472958092238034533791822771891676208212739826947889016937745845543657275238102862538679580534249713569658866102361961348306639624083874600220191691149174504822343314810333437227524470184456235403311562424725950820720736410263390959684455550018181783705878553532559041166702474409105161743329041008830469561074110660772909658466060933632537306569752771008514138132391423649716356828544142533845581768039900389920016533348231772294643689274743373488005857788752407078596544188786895963801338848365560016245206574533900727104153650004100379876755976731031531479431588258990691197903708179461540561057564302343535615772537836680063818796157122241330040246591439556243204221213834299820588357804135945570903355838885296504789204230248244088287124285268286663892482142054773325671503415905963904737996360323411008353479627631177775614107923697641466614397322579952981047621493192013512907292279664567484764401168683126236488752333931617218073677896935569703508979348370779075337715713282024382982843448819157833403861382618205960364901794174796131883726728395443286388037440506447800285564608963498638156110224116246126427735773360145823265012968835137507609146598207592278632021799411698917194091871755790765692443183270453867665645407430104967505159721091126003235089517593125245659905434227718757810425865931674187863638773827943047547169858923651240071557849897560376437902877395186863226040672913666071604122180979848394190348132390210380614531064372002442323321595339601957738724639125391872779170135501132620779209569244957984454448555761677389105719804439581425504072908302644204599645300970695312027314436323263307404443654109670821571275073336039271120993518525774458343134189461967381493113517072917015019731292030112277879624159888911112608088902996863351412588759931890967037414613437449193913004029571037514385902186723135589341755294449390672487041421499683012296324822336322278806183422140490983210618120249257828072961807109096241617907443205937025523205511840194047149457554708823830037558030626911335401829751794211394917399077820525973474608579542885909112252728163103834400313445964623719000744067061520735580319596321130454538899888456466217131850711725075083050043526245652162917781389891865290302329696345935041655300197623573139493954901086408961352518779715808304527813408452236366139630087142352066085223784553508602024075048950302185036714889323585084800956588084684532737464245871059120602171806826060354299701947440037394101427383485656726299306029629094161137766234186193564850083753484829913919619184376831358798816992562257819207962990154768096861273758989729961860552418612408832381290360029692626087195949154510101844027734991432306260087668013784217932416328736915294313387694998449955514761592831338582323337616242200345340996007710519175453757334725766310975797910560963563413146420539816144289316149581762430281704629945551330088062227355731066794313882695587834098135487412315439079108632052080100836773312518207381213176075683001536903639824080627351784815211382507995377492816809263634822437981447970509266182730291827364875132450248786015889709001423491114393947868293223311976593353232162474999629342537094315572108742476211845838506168374370981835283143055382614113595626435894416496803206671212565558108762137218254497144177921997192540181075213907545665759308742891315514113711360220722694495146903732618226195403424628806090079848094592896356917437986801591979116732528533472176904970900490640461299476980724203531850678699048286647608148527977315778601518105069652025847109719760115603969506078268665276334587486494123349407911211918840634481906440740196026023290530654237988123271820490274175039913180904795312869211016051725290522531139443855978741526694769251279585212292847396356146394269949591681071911349579505790275255785750613561811212929011624731615123488314995746020483993881411485709123923720586595828491832469144871263461459139123798058238028333922070499857062319812477402653264580816646724186578201162800712128325162405177155556170134029095165560098769023167234075007029157940537200725250044593888577832593737429401724236552695336877095333183351642361407278486211527364798839991285139647680373801784136964418337909783747906486347421122567475864481995830065352139117530029410565579320645619181314494289466413303023254062872740203743231236374943925978431169741657028123503650738609917029603134908039562111868359143764434776972370573822915854177114776651698053962362470179561337306540637750008708406050157697828479583500640227454343303037383780967093532375909522652728940307514746152409383956754259897048184336694264476589084088184633753316647420874406067199414657727003599012767367777947047420131547527521546695554843533318592376863583679873575664166274396226835247129325680052837913368012955817090204416604437113246250044633850909093852376168695745908355257173427214763097023809756334267371989197599056054431606455463670619080927444445609094773272047427708093650464714174528366881652523989167928363678916098214277722162590559171527346285712272065368669336464063673745274376128046282768595389062058873915761256604227434889157857608440940253745346204695601527449471286249054821534398030167611327238182052424624689521447437481015381864516191432782815259509784889924266421538655659812131318008157170512597603890500323497974295919607265971185744436082984651739893098480717585584749355698403347767676032284749483467689503812842238780524821698567439644799333342533171742405867824895979901895922178915380883251300645302801860096120380286843172487901745551882371916137431923914015422907322549102505781779313669629164293356271340856492681331424697466168042195712242072330097686274808761940164471420932210952127847522686330370960174294819893950822542341264094322758255504305930205092152070342630871459595641832330272408107388808141686087079182974353445138689667782931287318050577756832997776962538395191750869712240939398228715071399173199570725303169973811624617798497335708663570867174932192166739586776395662202620547638503053930832938309586236598165422992108535408855225790250684053380541505934360757317273649948846889233326500321417762103730818241836506948730501774533078990251508149785798547022121516556275960259345395814873570610843507054460524484293728570239137340263473659746717836886565580973446803491263877845940376113369770926964202053805060451650360666213042009097732947610554820432552767596800328800524764449888975048235303269431901131071312285729092587436318920046623608484695157913260126272521186954182538018085129752037961622791932046036659261121444645385889254390041008193684352263170744364147364470590348298304272150769627418150936809184208642875637254912577696574392465195114412052906044424475134738935409098233822814550228902183412796920749630938294042005155195414713016262925227502861765655540944904250517786842210251169944519291286829709523204577118677680306938176917810106800477412441903795885895645058156824705938416384820769991999968459805557442391005687284811736375585776755729438328916048803730215176381458238473195771835333904615069441271881962831385295873553427394129879786869846142351146098490924885597489718435886868930959398203433932289509980959057882539896292815473184445717230219240156570714111823161783426173224565405294927083438333359101762659797699177824015111535987825327163934576992680079789354072175589180336199961719805331264450785548616842671658326737860252442352539588062980102294860454735108900231862261303166258139622779180931809770770087224581827434598806717939128840380554544989164680832246330689993072909505827533870668512762260118304240246258339263456278847540282581884240531245013489152587401438814630806920650409592354634904352455499854408078944078676148516024313731545118620504748318144680026802708789827338329812195566343798962453995406677060023409614513959862704912278053031563105244175893437242616318221020924787840270024814419330421478619834628142375845231399700008981026879684480949711998229774129023531573133467938183631575876907915839220854865629905231770703837927840340040391572321160655442574835514351815864247668022986940686374038303884125372389155019160109749505493680110982351282518054807648115597277945697939279289115808831644314002247615271698042651361818799434873321006650849936580648237402270344518381733241900237215814435980985597684813815025915330146235987048278911159953122145958375862627949283719469101573292611127424249507221894238388738084991540247117551254051574109426000397856287696300317857485492102414786664849899994904735438387218769703528285690245526217487616976873451725155425527531427092810710194040105513431376547989239810684253340862006493662082632309602175378785331287350801196122372336574633229455645713532364311688414232006588121220466954219528939101834191764928427459240963866661752406620577261417833386884889186361427089671357012233135766376425588135255395642878068320825819412394573562613413629314011570358021277885103206129081448886119836976654092372928363882856438754844811510625116744376242827738864956514064837249547391321371879349361656709635380131043774090530790309547588863004245878364790636165997122834501616955414961280118176207994929147623632193445792450908454179969465733766625546760139561077472456222778249792295356884668340457734693627300503424630870047710901840843967026217976886352661611565626155957680112697776875325998695831715627506759884614327137132252675878139344390944829005587451574930777367613547477680355658914618984662196172198913789723892438789999286517974625049953244823329027103257371969490833367585349694647035845636196426244913469762376630890877487684957709397035697734400657177487698689400015339847247420417773846452383942894482929675528647731832314181150914893306030647033594003666384168765114546916961966225420050758882553688483966501554845104546449900586524086999795139907279063037937317557094179383565862050053430878211053148007374151748154151271980463999737040184328692164489613481776034182356038331034615623870231687577134398040661489139481171764901040891566132208481686150286509108272015426798604952632604598697451850457913594237862473960923100843615518430721935556282692418107983033177761828587487742128249248562194803220730969903667788743838373576697193779390614056525655875069223135380488737660971703867309209698158388389128741755711977119853925719560896202116921994933895686613554158722937439399620074889561643650071024238420875769517300780394871396887038527983817593267499889746846215102386408311988464676434453627680794542424303967625797949377576581549842746724688936453622419726340874911499436953001756160994352406735478202567382893355459457895913528442569727016434814562844556680984362063205817163880437488880768852001782231941506218407747149631224021706933999068589440531601933672805365735317124729920304225294069505990508091434556631554970267671260423091887766304408507057190956164182698257106827078830276945453662253575036552592358478937233653685137620739894185486590267249711130429448240419396038626599897335874706770248918819707618954384669762341650907455984217829726027137038333789566735847144092724710742703548009522746883325530436291187066631366164678331160754919506978391448954970209041063253863914684638973336584081905928324469850723243611709967850119747323940615495255836800499283484442912211395454100351057957272206960194470596080303630309374821937208510983776185454730642226325796636237253354877330477916231523745462188212417684312504933226542832106751298811625274344141774800350633457933257361788085658050296277544510192504336736040067668778498105640676852511554229184615390766197956961361025019601323643159622056478262224307888075914037740683063618204530480437314024641318014018811617666151101882561864903004123363751093721991339275990252966648148953836873047403168958724098323632260598163859854235934313138294315994731197231184353350854595763331773855342355807175638028762232294551889297057755673709028864478564658737545816902240131017292785463442754914430015055092372650032476682430890104740228947025247086103964074836143354729739431382690444168069965186545963191281616145015672871083952261190002703614885985361300581286806871287570579305903587384362748085953461454410531255247605791661477866320897351253592466030063994046842033986060794332081739359766426724711396900351391624150505001770110023556938195949719106764286588575396308415606219297841655659294256271460497497629573995960027041118215734056854725604855297856780632725345455017111812962546732998431951239894437171046530093255932134202760023888358940041963360186513346586414171423913068946008866460036700664667653540295335232090467095132903204048913683390560132812696722654104406725398524804452931014633872668418252735685550741585381036439316315660251085905232455013822193922375987394282928566112205664071679349297176084113339540922365784413875786676753788599839119193208224484237522119593235456435531893648179440909376019450767614929179677344121068600742786203414527930595830135558904519541659355073206520819059825426098535253063746586713959340212841956442716857096070256893372282000012655530108937946365515308871253230356233122434834677281366323102213211239576985071317296545159621206278903571049740342551940530880637113987145382095470681440968883543889709714867101343310268297978712606834440016038678795592216641099384893638163580943322141913239918717142441124976799401743622850734416757515067432340303844143690448352475872278891387786235814968996562621253685157250441578108090352221242335503643798753460039316495661759488299499176800851105078861794646120796961430373625034973843893435311615105615155525574907574999223534492658963124448216577357350159688478385806797747076722226826466661760816717035159374079240766971879580114892362668087044001400753088445071938551840111398334425219060696179070282395133734996201184744479553316463516965771255971301618593962693531585102058720459719562273061138091036829791254442069747936962984053524490380562073603812326779626511940056641262750513594142580961139909055953330412770876967867966884937978944215421888095606353882055261498973689245595167251168650037338881217317198330347998884365684991425089463600058224542418078847428554880900266944798284530392418536924682438145821948133003559692240823241613294980627663566847638512185925250550758203564272698785107888630705914487000775354835960307029586539650783659110949655626607596467453099692990660895427521057988629871760367601049642050190429545503435164616539976143087704738740337378441052872189056999546540228547727000517876146398350975385037311008015280274116654944126934901474206961873130933369241707625287295577051435895768018722966974359747481875740652965963571262215008679588274586154476678722663233987516789129129614164351579060828239647576401842954123975789377129237710965260034450825072148389151922279430207693857721311192029123444135403328683088435468612243670666354352031097625682524033722237592984928769310635217197632779937086235415904252334982771936123254861311733475928353033745731861636922888927296659193776853393739376441570284179598470722861630457920285154654791006770273575803206321125596844610161176061636929816628554415020726897137206395845303049324902488909833367338706548679375108931999881297736444371440596218086813775067862868193550679166350936690250172778096186392867675704271131684328094699352918074975061077265612776402130955729066722020846182001923969781472017865278497486058999598259193451882729133383562329895815488273503941528693857013325324442140497394708013248712879517073314731498473336526158468840637374616942347848383909706369248084820855302505573369585894407676641315869758945472908098840926494737060574347494245454458426125629682666616220934084446057326880566948237226479437935279773852514302616756162063838476932551979314199727734488096404242347694463793261447125386702349096530692109904562087839925302251036178398009322125626494518704017397272613418536359809969297952445107378443621911998562427361480344501240280788585440597277313777095655573066319779322918542965128807637516483182822403643284160821267073243742806977333777101469581049197865221262423642909495996877681850215970701894882692885931569370314917799734528238025454842707740577740135524334886010010686816154804822246647133499632679952183725041589506692250182669836417470839664150982060360520462018138429246575756942428411201196661427308143325962896063226536522910987224205004835167357412574618853381276404119055641930880513736846987649000473842063966640454089610370987776172094977228951887494274890985650687990735999068597735952077901798504073320639971778447356844899109045958530739347959589167752557594656108033645689311544940949398819223775935522269432561963027794462510825587258254115832251352444394777273071844528590303189189329509107082138278856560370656488829562635795705733550448298108350273282081007190258615253070460978262795965942181160494975532734529424724388925872032483419620433248048925993339997743112694753923894005715598997642017476931775397795747212144870669480758162598968044590096215389493544231079380651663530237018858284779572682949499291643654106775776169975204819417025581536471148562030061450928415005883390090332573833731300124894981829763158024416019379592599563112966001086016027172585576718608853738133084273554384179299514514250175978750692695101893538960555649096109487918453304956055277270528589179081424670169055165958492408617020129768939486363690506295328494316191819470027477134056930649741399748241669414728445965057755382368345835170876227124812970673364784531790868033981969449625994793021822702996897538227870471429941591406262292342015104824987941988407194507692135241149866388597739539862634380147788889752488279315355534002333563899253636448969968710642663129480694925888103289431933447414275407822172536493565790826374348157901742391507755613904848594801874992648153884690984577603887432632624586157034506041251473781733543570731246818448717361133763142778642507714153074775493212208113733946712672458476896857444919534915138645134441903472448652346584480650595019734052141286645585040542458325989443268294519305576811350484765080677077985323987926599286491589771905900258480637316414006039701541155977641458690519610053165644129776084067489998303409173306451027606629741337562066736507932713313546481666521666024302045721134724009048020967611470829020988127857623283820870323808231441568393339623087209432423025950558141018005328054454449125205667248899789675846413103230177632802730427667462129350494141826536844949459763411824368933775318532347490508223305290447573599421980054883650028552078583914092802522857711364370439722186957533968053886478082855892058743364060441939432431879980079855177402702284452512155611493840675089618699807362919811739322070822624030817736776445136217817750019601589407787169730765943991800241396890732956963225445278419381810422806445869117105120661590274388464656548849763645441994827070214670842742872230901556019834477928679078160388688531169329945842244513343993615844637100176373559516987284871727567170396728177249062023839269093009146717362164485873781134080828892766990365752167685198060460164158297227404801892553111351402586661123044335673705899503943773410986576615240557415209899015326828209390458399524980483441082077471381054467263771672101931755902173395831071113405506194649860174940235344193585595434916471620854645858208588674425715895928639424297343253111114046180304460199898386934246092990689903419008433993055667184651266382713648157427476059779705491788027343426594626465025955454851099137151035522408909171328032448992695111950571678391372473074322186700076931864850121889296645242473856290064506476824073367988351892910921478943526273759824112054703853973713710302708316296326388971607264406350622842477468475266869717593928795753115929734897431058246268579396060271385863859654704454649648093808316174327029678072529717384323871447543164141967852430678173994947354284822314671343622049352972145344220939803700345243778652181184507147827061479255948985991109840612034983440390400631222918488737955628927088099990754281969366081871592637967293790936587594248905983415307602962593725927526161617477133085831635350520449596950476374904954400362633117356268672452354651016874185334295514311406587268154345860423307101755066672370598680612926012941551878012818336522200936677695803460821733025173707878849531714463988281858133620655098303185714917528169405716771091181258204616073416345463187731913655926230663106567248917822388904514946909804368780997366900637863188201180615608987689990598689289131243821932557512821267768913311691171109584632661914792610333173921819471102912493875534554021759850765354289716376691440294552006468272548692122343295526965818307625754644492903803665525765555936067499301767499235433997294575366501663193122386131183570728443374504744113317778611034885184675896762417431232999868963219841099733532253963940664360238765076736544392829440275429017288058532145910204672456227234244115875369307060908048683822644527434072563574031294326711298756565857838814692242494962097511285515171257455094527568728193860852645649293934221794753553222431946411947800183167805740004535051228716706422006257794744425943271312818177496789425621185715357074095247514656597845507667878677535651075056170988607337112521208808697458666263222609596952007865384614384161079594295714698659749349593874002815366693928340125341777952143336249877960749770513892724207565785575228347926576619611281814095883491184374577316925351854894746863399917700538673896100361299692070291140829902483652749009906270562841500740964896650869388324029954576743085934075795337189401191375561193120559908881030917493534968586104934335284595182140653559853408865649647265391634089078946610855950083339568706998255195227911983572417780976333065571454630077747728335436198859811326037799195570476084520153269962762354300055068407526950669981760773397722643785410646707652764420123860060824796472968171311354379736945162819018680338208352036098062195711105752344763293723407105703371514734423012506055345179966443531031046514913428482512819704888865488057039243679078377850076740522408033447854928589082255164687985998684622344008346587515125149702931749862196221382430735713723009581363253501583842942171459132201631919346483369836797370565457945474502718243998640680599959632304461557218212839329883950410876942851785945207476625876010659015758021046305766978335817703066037606901965002749065973989175056577620008516002902048897985383894294178240149709861628189211979341649821626844871967489689305334108440480121693970686009017359201541637619660176928402953654459053444073408258581404340792205248469206654986444640815548678929975222912756774727410713162745475270579616411111562062320678774495829200015288798593362082873310640926145880785349306789753654756970581654236083298053471786886720919717280564500570846490559026776809295096857479354796200745913634707698294139521571411676349161252196311339824520717551478629645279356765104307669883404789318869206335536186457832920091816530660205392184823018655437080554470267123393521991833850605527812304389586074243665058409817083698986264311183375410393470389338963263818022205499754687124455226094450968302388840415616891937520457400885125093413406264817594501706316522963081651869507837384971294060184380642540884557532583963020924602794205137671765458356839153484575834392374971830950477122238330429270438476014744321466173471252288840978298279808034786859269124561970180922783505548866004282012566034307358079970265574783630459871663143219945286780559051715615345314566790592019465130804166143983948852801629865196197351903952601768473955790159119408846879209630309904576653734306440635270855469429884223905200562821726453041484626588869938249180929276768134781495826099768504545431073956490338731069086968552422484275222011428366224342445848358234058267819438653025541852198613548066797762678920608367405782280781401423338310107144472034321200498513202646726219712404585717867758975917112071213377264609885361241375781213642164017422972922601873788016711090478908870282616717900257832254760153179095234679590414921422833620423553039758209115953017371163101406502031196485460790333956972655543202435881023182985195586186675803123940970921031396224347394007116672513863107987925470746623908886338634188758757329802918536260283862787825713206971092689337984308337019125164286312371123022785348636366856749559363743084559220010081603197055744728002150779349885180522369450775218455378166248697662313404831027012781487387856484334648890406630599507623281337254928023931112125642296222870255438494452065805697713804951857307365500706278895237611439873922983253793050728677477985152008646967160933265546942125903808826849896808574621148149292635360136633309185930236191528533218260758984602150156024735602139177876693546589166497321926065204261623953847196837948174430497947148100944352943837138971498877237235427696498766715951219340154503692357267967342995123711870165523383451829537774769862823939035889258267507448934616143215271516809492506917501201401989593502221143596568698926374793592433247229428746724605404689711172497649653640342082258750268328852501146542380217915558975158904040843355739552814475824588298319421691200324332694269128220994808993892991771660345715278101646345122887080948986389034726092597348422728520075911369571141249542679231863236483436484923969097013421815310060959964543103991769720534266137920101425766347104711185223009439915970882371488204941795556801445093570787741320164336225426523647264965613103771287246900587304502735834828536681267556472194795237920369848029205606903965828986561669774948802049088606211189882193663656910784775956362294578898538927224672410746846589317668540036533092080774743975524978616072530299719043594416589648451561556248620622228217955327980431838893099728298959356094179950089759093911633972331422593656895193892893250315857591413685380600188818452532412251902267879029843832635456616826617429023735158673430365339379224914840926121542896859260931956357249488704022349363053238315397456784857483773940585841607977822828147180301939716254100470635896835886447852814512233173724402704946384338589007825730843142905390093697672520886934806848490250301263517476439214844910257550982820195236657512109032000336387327503118693563830930899441331742099000864137604949066808624437005313092696589465900109900042199503800322743392178093441725148605279854991304750555451789729676884689956659895947384617220788387654696009938584036097065035472285293052216087971174378090407586482452876748412666264942552507011157239385521450321303223483984546278152324886141336806495775681405150558941029325133740401331327982060880590394252285696571372171845659183476707499106359256457143500319282913353318881412131222353133466978056725172562637868765280290608758452188496347005943167211193776523498571683665616635698528382069507569875737933755513604388043414172373836356077437598297565326411928459507878983242324902023379884514682125635627444418208303653104620602322493873405281464345220140619281868367269013819472911810879202622347335542115232357315629968062763885901094999118821349504572981647336819142103189065493656643211854270835374155073294950524111344561245039488436797096937007370430365148450142950865312628261238382138660973791486976428795951297084657306620756567618362816454939205605840895009941560587055605332052007353578436735595021086688263269967617653058174889067074114121566835051968461716053777734428648016124863608178181220652687307617172682029410740878218846105476023421470304509968236378089632090509047234587543918177448404671190019664797067556859593120131410938903100920549122281622752498178912420818970416573577888180557317363219677710968088072856281468987120547582236210124706054791790405899677410582050825079137913993023538204883198599209184779189485389391735879141728446635234616901492969097125385342477129102051411841578101720637693695365587526562921821775587448507994779248996736777570459444173567758930328898890598270201982815725164433190722994382147380876073735898871731933354239147497723944057753730883259581153254556095222605902885071900476084561896061493549984069521645616209763586291764780562042264594669511347853938271750365379473779568578768431958136166727496828867364606481718134715744975164697952011025250976209390165352571573537585472270632230379788455007320259737513383801563195628110348020950606121862139439512754996451579626014119440255977252920426174972266969842301631234050960898336888075051835375920625329228269442522045454892764946463078141551597480026111569856998953942102617854807407470226771477881044259651355098215152763987198956134110351255324501576636009317128462252245323912291003190752128040075332962198939648245831481255065913867973643233584697420358630963070013642059957213980964957938591585990275241242456112230233144180743112044750877380971900823120156395562428546754180028759918390095757028868567324931365574019402664426276224616632475348842475773290582013615693214932361163328999666819974154787573707958660234954761823884830827678921177922222539678530391529074481792969138973514534795727724050872525513534129907905115024093194495932513665685018350491580807616270633891001261721069832115453771775513628740151014267405408807151168777207698797003331183059472688263897649901355707753202445017880130954145468786962574568387676518863665794008806406159629811403218147307278286010042143293734669379176058463428290881329709228126152043724524807173870651711515487916786080604630809504941410614581996511224120006394124694088303795051995713957341023124586648892278935392331064975018405098816271206102457842363048902431510801932806608458521244174880287894892997287036674859129395799504501130356797882156206172618858542152016411149024174694730603720715798892927500279236941635414342418677587682334509052268358526919324426180515088916582083377506694146483918465251224207276775354412375551401518666991099014102194548155576916639715569052122022601504151383205266962646442846089026956288143411156991504248132923137394626989668470063227174655023555092611538257283963464442851981057288052273752254430537347924540454632294581159668228863775252284132236828770026358794795388508788458432621242883599766724901564571602906736224675434159329357390647653594102382870191890371990607321338856572435377177160124618017734065761775714138505416007957930254075709245820623834004071895289661870832822012205820998283802979770380880404477492069093682195879233160459687923467165458058326627903951965291545514204545341833030801155807391549198055008505899405515255288254279762337556446001799901216751824007063278699035963797509403019931596377072645228992509904823006357475609208888874464541764977422662298696448516687339654129846704978499224162859716501045350541437208849389459858437586373708534500995399324185565925208806025607802096647203395298121861028390636133473507414805999599247606906635657951989317875613527485438189647110722441899333168475317042476920780931839032236610434383537707599144459781263236622668008050515223065028379666734007992427095705965501489102260012896786585472876890817087732516360945539616471888993015270136899739558285613544693627370090744818903134828632158002710731438442448324304071087850158916608271873754780759668470947129251550141903033610835900193747995473061722724691839977441548731282742832022182612414978989457627068967634732347194675544337378835868293148539638248271526516992559934106699685418467952691404990915444586689001672819276028665432438093605929430099246347408900632692822557806646932068796259958670819569803510960920410536100129760464778784621658283766930944301919839785681016238176123209144824926085028684309964266277886487755684922044007154085165479383493492965920407223796549318666338888031372122324294513955509097246283062694041861964017357219756028158182510113736349412744555929663584533040676592099808010582189219420719697450784710084912639729727696488272047617696461468140989506135266876718737082175250392340161952702472972368512371215471088590176923980559888360213682201769420846126747192114722802759389729319341070767963679663757596724660742426320544621348151224657333451232970040170437593893204843957398288178439570386632515468042134496116418287794078663546180109812422498229798462375458404281287622689525976466067931011938200872092730855937989525095956851448554730367763762471071695005757486218517104820737250864630822632176414321519311969588943368458561547693315709513848468327116608751305033885704860819928240958178551246893088185279901336007520484546519209562562524062787478180830716744224700679248684757400341418346647195403947311334770950901699703986654252940059461837165760878930262313150903164185665603770817844890578129830415778766472259325713965273227508571498924799503669250367656410077303737376032287140709299424043855849433095879668796977591882600753703553050711963890053088458320924245935103185566322630114669486900242249868761366126081784159623019787384579026207016923079807047991392226325962999191771935811788554319283610547854379346166285583367194230193384303172092215483657041326912119407918786070070390850401993686216915338078102986341195716241433627176218611947031435341156500678995702762391977957784397681598288206567839679375741503110259589137299677310889115167656290688910316124939259220028958562212583982284644817396308802479544660676834549049156353852399402459203693012289765534541003732853651950034682365847276841695397765462031165267307193076371321104964135177042865458526869944619374278264302006366632778987922706257664564818223582697462500543442220802964950837575973992194893722260407607847250913065872926004200601613694055208020964804639729890280660319005920136442038715291355564278099645460527966330105058562451730263938997547883739839086737672409178832124159751691229294512104404758217146808184762148393885852272990660013860499079359336899221358470790551674602765378036977021893088166843464808966619417326555918743721194389396383175440481593352787861535175690983551842184655921279979593172652776259098386650956448971050079427836342213385378427513975330597987396136545034832573217851073699351712591871427745840102679855248179458560632815455970379483987711268243979141985544351089668015669230870169756840884574104768167936279635004954900362720742021166790041229628123838513354877509035432513216162050408827864651326007435024889902291654862992218095653559716310514828769568055545571544203827166758480203936321906818672056731089774174947959912128128245994068232708092631858044743108276026590357099041613989187647387298467104454361106282998335749789369954764091794678748268191275843102621968248715051975638550469947101410216871385847825720150264782632798683364113192749198830185969128668242660812850507714289892027222359942564326792840375813686333251352374804730067457065794757955111089659214118499289270925663032859383387186844846690707493992011402354948487989604003521196475716952849780772069206676723664362559055601382150035301772500899511538986963089923653671374343454583704655862597447170767117498399093925676109770435793575194632684449921924316459736949189412523484659352382138624471521910968034734170141923588842585257061780680224562650935430134072581359050235116310219549912226423916129248525608463062299465542222817426770293317968888105543633374434385443509816491928924760695577902244405654269037187434279987803624668869813714004560254616333473201076922854535327843498433708990355795456076680686314144672055845749214282330615069193121835752641540532419262514899347535754031881313308202157725111088679971797848504713130070411946350276288528559347213569476145147888726560360978820157823486992267109191260983259097400199561765073478899787035631067662108823149147481349955461491740961318429999535824421014672507092409522920638086649556181550607366860606485927400436218181516757494444679706202002221776718674438070697119105793010260778260639018366203111142229048846652063311155186612185179563293124755101682840749881705356685913699951007842133296952933447537408962921420834770136334611798432105261746960730772853577662144903426731175012796261614447399297429639739572723476069417248314460955564999072060483418453404751955767852304685861643714705844734854362046329548207226467712601010519408190390454721443044322611503416322767313655174148620253234468386256490170550378472098588851895729607081289937916682625585161004102348704614080802964956053362225836445459896350314159147901972191535573774938810071692134119758132508505456522250269227980807359931151465898377688912753646776690501139610896253934154991995944927536382782438666596822119748446403063077679849193861513872430748761887836441294964253050373584334738922491710686323714634101325742366035655581024576120764798413091298796365744015777852262998840055555104294179444828037923929722135707646322863587946237751093608566490004425275010296730979824801084758605102434843894941709226976110709595090109875822974749376441167220746928002898306104440693869900251729321691259051300349725124069102533165167100751705169205454539033149785555433169008919671954871478177833801749158809466880648827735097265911857802296892475778247583055066179881188086997022140781471611008635695607038618731303218447921640285803323036903973001714629497580734467632595232501268369668204753229443401933520314763535738926810065754585266564450727003779197932142822168395539773558856173580350720089169903356312647073733117510397124152849511526239192623200972240722038354461025712608013361725325550193997947881126481292754345361378593130501585165032994088746735236329287032195325811016764319505701835797214075390468832112832324546216283308733654093726402102993567081375937211954869594106649004740857207361488977998078484224726533923404777024813976375281985343525082757079902460031664395492651224780813050169679639364637608775961181883447515064410853001418189596388912922681205800112921328899178182322829682088884672346667892753810696462598311275484279275977805523879709545840020048278536844639345466647579602661567327902553842089624207914700209734830483204537287225129917744368170265394362491688424443150502082913111495962613387658309305334186736710160600248463428139974224613515955296337638428088242293673930190349412643309332169823492094582248523629253802483371804633339440097263627956484793673790176812958885208016613682398348989037435013311742893867515343070144190069348928935345146112424195837925640223142696159525843784551317413476039138904726026407620084970531650482334226094208344016557726642968769373927426879819862267441487353790004008050337048308938066516906624766285469523474415225371485143574250969089004997229944991733273078195279009880965910929688917072743185882170504828005021740269319885623788530909850370768552209849501617762426944521524311079851133837456051310413958582154616786356502743347300489666568796404034347350917706282038323907601866438550922819210654470230857896523377088787400591656749708963561683710226348049925254779000923079291600851939871861484880008342492753162605974371979928217015043413262038510522519733093434007711847430636828289043071675010320657402867603908851311901626679074111402273139846657675953739893992582823636513557865373672840445640076835879584436074126599008334074073131974054182738707310546020129360819493047418284066728224677989725324040346888941855396821355066419453568440749347089718376435672789598165048391041880442275674962756033050490504676960450496141588490919132142168463703073465588001104024108621956190500401282476496221734516984025196327804815121401684310662206450190180448752591276972181669205120378322357785232338579771208631448853505015086258254021884064102602513749054378982997861708802202319497141405994862498049039442562714569555793965244858790153945824289201203506614065406293468665523816377652713411040820573875925508460693423027145133484434504659420516336355816739459244376179754460869157641937667782083103175594875229084438641921692439383148155230157452712925438211830987875625423771731709616129670695339840803218555697858688876236278210427270185392622344788725645167675518173714184408338040405338095571412353756175563023779142088831732270891885129220565747600598660863267532627305499658703557405681119675991354171577145006007956167031353796248686417866823577882932224487421330757881705365289042215955370437435021717673765837610291898793297305375594065491077126760574745408930783496772522865551475222150120829962705948201457986601054484837019226306557846326260043129879555467218678383077872929300565859928998252502438913035356949182938492111948374838939787976303475343975844046906830667936829638977985937696969587073798695358949648901864234386611555663854732554747010989783201391477554380008458266427564684531159523162086302848741273231529383953422350058647765370246330082824458195143892591567913416523196396608623571065343341075203536633820614858032621242617480853184880316879905231553655007686864514492805722988241415617312885721987712254417376582307790395218402880499582399457665155232799856111547856576103329184017676110572222193189170502362539003675309925712794846336509005982790051475575376315038858419720473068491989345561303336135277582397631365471420084640134805464046953403696818634210505790760050531576356697888135991671605109115030332284897725087122393826298483670052932263685619062841065054418783394731083425669148807421530342000954601537256913060792395818544519401600763223822939332968795785205492473959063805855661252328418714500289049833171025580743310059904989799829042414449574835890346514348113474714251742450358730012606652246620723474033815455126749032997333350675977033338442213626417395331847260404317237799956444382219955208168307620750295674538945243254266003062225800597706482248468686426853939267594606759490460539931641391979689390530283070581115528074347319241249464824275965750749268071697476475344559757483738816413428509026884292881044833715518822023816030555718382771323361339434174546063969663627723372658866616341571770280206848428761424652881390202287532878290844625274412626272512172435211731921512051772409524552997243515345122637865550498187849979933529280406351339420121812539765553552977014865088040409092733273813610556645583303724681734228509887607171354495549223244895021384635393041235055825964515885900201765543137902864517742284804425466540259078929381148828632652013241202285825161143713668497262005302574582446836138652247597245979017964659739197063180744735602565661046143423185292742865425014212998933998009993323328558980938681035313499763010070590103810568860041249599489790381607766213101386392111785134300759624438340619433707170065781201203881812165278707590436083025631211745556622263004746085569664001469167866476587052040075539301189972481606448133349075913552637272859951863530652579019802495459651016222261482028403354667284614892468225032565294933631657784714520012327804695160713768870027587081766638213179482135920486124335372984197477183113922232267439638705160370136432391840564710827022464756111408908569196672201404897126362114992848631183027250603743595761143755865577214684654288643677019948077784725236972338681971614056242932641695627072576502731983131307553455515113788719199229396858071843149093371080915168130115575718528176206667583295883514599546524264380675299822977258034090192659220580662420316629138040103643395287384914359497054689858799634369669625591866595852676230391848153902037943349287663758008049686293474560737820340883296908617522321637499297148390131692082733739588495985701950451234659668093117130991229439708255940522051194297830280660613911034908514970992352965181724580682159462645966718097298386179939940087679150979525617961837168850662509032810271037304010026370479202769042499889846033139033389936058252690168793263656590247254547248191425521042074896719640460667175405744640375790671432907431061034816934744555606965109744227981702699159508040750628469015790043385502156069941117939524534850918245962430767957431296597231557842616460040762831440611208311439247427725207081174981639477307463153145127437657434799804385509397643546804825377526718075404778609181501371568734817253049540745155850480614175746914879525344039874650752250593251720581294435089960492394109376829258376109432560891976233182585432304928583408453513951309067555159063069461540202409780450867759919195329615953690431957488887587156471499451588722397849629816577932471025219296254805504192958086964443915562208385736727265072110231413620936550998873806165264269043206489881507045478232357949827887931906708381376402165153634187231534431923949446516472599991554034751771511959821808119765492115216112784540517899698364432273441485611682641485571846430152602904372309394449979463205987117011363410421647300474724362685716187889999259926172212911186438768916301309845062852119237779485855150997279861370701513855965050679179760965381601030438257535307680968029094416204881699319956501464366152841402051930359544370050737789594595020408153958956114574968378558390978316059352001017522696921180284499362557842141588917745061649994117301311010424619940704021415406669196751725945951140411278691790440178976114657604758345415511079054489553005512332162735185982203010999779202698970033177418461670793586361670939696123072305177534739614889926820134573650594367808981385018765688448964214670299447516606738268250655235178925274945029133640331066511418620857445582027921244388687934905978333857906908035920507271511420709384413838081489986951900734711978998961707084856570796027992706115701138795726926396359511684376031064277042711134309558463831408064266956619169483773158883047637921605069430633124246516306935638848705734146901227052573840203578782356889327261033364817345631972806119709871587918285097928794754695271727305241535800296102805427707328571190028860106597230076867634403041867146809965607392708423632835260281317513011736755182892437334415254788107100814338546068197422827617281266140475864392046927918356292333066038352591763310600458303553093190970654536604954098618175232686798062773097142107079074695355647647309205105086897575814466521851444850226899634311702524611139059792332622385219881436170716514511543562133275324868929934595725281679892470700052486179075835593886899480065169917834523231991378197501996776177034084892306891667808325254013503054379897008613691022809374896533454586771391077622890041444417323959711531542024311678448344273397698812166074049509265640327880919981955817139750460458462526850829316546725504736103942770242478669306893869460246574962795891660826770778655320465687664570806544350659256780685622445719206854655701857006285434716917159963988441684247323076467040940163663898920483981597090548550490145320342629667772687203219296827154912658373447226715451079869210297938906178658682343809055891324734989212411785118206841551328138212512220926595790295306741260578155512014597381909824581399747126138390009419212813449895042894200283918225404303964900757925004698286914605444450595820845597587254609522851476210431735339632334384680095734839604328259218318793754453237809314701095215500919915859813627585422441575225335032265741618372317597876908583176133728235312767584311558910122333499029968121220697861691097471823894782934826530042181192979235250214872612691517381835287685618748811747449339982363606646085552930574183786785025655703946698010128506935194363973372652710569255160601627033331470421387426875505408535097019852707194818998745451042623442894557443412044447116512878905675537434734046188040113920923268892063004926489837964576373111618122013967900019391532254497509248962832164133355169855876033749108653747653360204901494491669918625525943956097464499394917593792893057037695572697175640253028698823406430071914168506311780031467111764497880911505373231491782627260853280892670608963661912249980103319852023580462902950818811048678785150573043112385107714324377640955946562632299968162396346376215784424900382698198730755089583750083359321586711228887484267315358501716515102307232592002533421868120507942793900569437312225314285036507965245354210091604168879939737774425082542446270483293997289539243974614237010195444458326167363437524840417762599929078976815429787886780861950278232596538627045551583753389981898239385688184298343121819314519774085007764313933499003646913976676247293965585113102775341284065711920001832670776640619534123955545827468228164648804426223851177871686342983032000600441921966233974255847765978484170653117643055918818939856262640603263508066462229763487165337410332079653889182956303483526955233821168088895445314610108665873339192836017936103378444628019209272722536997245303570860394656429460890889469737769404325473484850132497576994868144023968268061929215735995298325772634246556221884005415714150284813443379059961905403945433472998614485580640752999917602887678343088440632792691390542383829969916517504717552232560597334230980774974188456034411045616455471150462576071892568456614359210216514801718598266323653033286622819276375618679000513309767519884067483989672940399556885106806668915108847932284877568260804755647186849239234213487037709971040160284509038936866104968785284358191172583765943423913160615997736906783091781644793222375044307429268728025276137592318279263770454974355251410166657645714895808565509652552820442723266507713433964485291095051582622820331318028038132290324673206733004891207339185514473981811806856374496340785375992834090643968988655988825590422242991652197295420843767372104543929835841938239055204368071690965722528207587775910820387716901720233325583155851437146697345375239148612530787408423282425963206720704645647419777353825010799154964679194191220413051805992089922563219299870467182431747778070713312688395698802470764973148014602586623159519564927261787321210186314130891579122753421228511878930762344736141048349005679423704721917463601024388150533764975998152587933005137779342356939277323339746984958566821667722638690780003102096353921854433881392163109060830667686872632903271150906312130694226946419270609401086621172524457403355482826134139166358679423289885511556501932003329124665754389087065175675735597823384004726335060181109917895317211192570716652560583199746937047436583798754490527623614934359776681814956401292711620688480591665554777319545372130324564809406501940430673262545191668470231419116396948067834286953618671999515859478562686018328133226456452009411993197383090267553832078040869845296990857165428172727042625973155606046734277507685704055317734856532365333743477518102470204923674134584936723838490083153543439224353430451585329179928782767044577631741418731781386735061523421315623862650741121297139819205543639271439240143392540941280556124219929140027930272666572847385112525703477766203401601595579205379567111897366531816544823691891065188795943787344930919757221654344352003546049701036338133752682301496307592960769527838810462487167875722235081705040457815770194910666272015701205872538772091123414204749817749075062969858463251318301516672277558941788656752020973242138529410220040735806846940254625425704243500563505265571134163257984496265719388961796865629970278379865759664255683704491555994009309585550339607288886499139447220262048828383045636421876526900514166068970680115348791212422040492799805242241849685111250730465729288902763540286098309094636402610002487910502874808684449477363531823769096397139335434466262799907602816547739170480996307850721060820990925628793687452711061253349926116201291458624996627919896578929147518845615257373874040369472186486170081405603950489489605340422111038114208905275858632904418739010634079002462760990895851958348843748232881406576462352225881420539655986758076515612652906027427714541345404468291150492779523022796652110699249632639375132810980538634550891087220762112835988496356525659289918491697071962078125175117578179931042075928923328307699705470067064136333449202025108406246895535981766950265045898915496237787549616388819413005107749564354394302441900326742308553335003607783785159736256482484730054864388108676899657560030525357053811829184565473823389946162854654595832127119195515318920707875884914791801961848032829452297463280084002297201597403043277906801171602694291011373252608452180402335774128524021289475744947379322392261805772979235402800491772568433774111979680461687893651221689584865808893767730908963135019728901610422653415245687520889526421740935525483058837652165975360632225040128500083985213598379316249847063897706248511342283748629329119683745792859787166338313671877340004517107179576169783054613778258241116838024110185189954077061736669995794958781620696290017627573798332729151230351967444962781816946552148955202087554610064347507471020968796905148308148488899529208675370645366170625105713848941287499531903494719153062560928229697327747169514736089914490030581109657836254993572281343443919878697157082451392056667647929675251734257302262292002071333331435510748342224910288789051467210102439292919155178043932482893410321303128169131631026195736742865415863011473009781223957394973977700125200714777596077225868134153144598221720346282750929271004308229782068958818989888669729602190559123984417994374233709228018057107147994717281200152715043051680921757934271832969776170411355761711941516449325144091051172869150529330744898283357324201350337514445182271720274699699245851151195344868897983104969812463767847178336474594752214127315146974393687431330772451385868308851007469399832010742087285355675217437073085594060976936426670963232808091268297434308471681420044215297696364832561957169766521467589289204718067851627677573103396781828246275634072263543167083844955053918150995293627973271530356427523561738173894013467296187178948539761890544487981232599428645189236974262544225501156977848773634096301662728351895073059204440600597794827238910978420016586672261689040399674481601332003669200301758414697541356864171986804655083855793221615955489836272313115340104124379582414041180381541277429913574361949903981761737980905758420810694252002124181494246027895675836274098644925792236600159872100564511584930587281727833789734947287440464556718000139940505922259452486678763553898720006396439544148323046079356401132684470429511299401893287017171742391446677576164179505252803742905910554505801755887188951100325729967038223954134778842878510750964730164076363336464150007984428677813248022288045696165690586262049380633311902540681168035688475319762211183074816928159152557375449142969278576280402560317671784526566224434850047044031200861007686410600615086462374744834325599448327393041292591299152079675248530438188450059794859845569435752741343124762641136586127285188344020367344665112962311276946180944222465761692266651590771737273566308418994010374316310585446561413541864848840835802147921650520722667373570929375946463202645542806836420943738876220791353723140551337699969056638702396285084561062477605735534742801828490698393816243416437835362147041770914717190717963364991104090065943790018858201896951382324606032164796305287180114212111987014230202688251526425904031940967811980827293833572741924889341174656873384949387939421030644479839324531127996638410060546358576645107644485533773203044115038328229309425261136002648582965437986142458422037189808184545997607121468972763528369677976978133319887905220769994006708642159171638407671302429578442206008454322244623521455277719890495751200234107311351996852210043704278662694320801649729416001227910129325072715575692369158351296871897293088340740807192122207586582229746026465672646963042633950953675086092688730815078698107101604911705071462792317457543128515128189105122925068784660403769066612275069664415294675930566275061576107063027647147365609401659381710974775607896909675997633987839152180611485717504691269398185948565944728035106002270086329406571932350061985142740682624552381056683674025087435514969684801778165871829264497936196252001241907951093043357580102829284813320637649316864829273374215718214548781608237251615944220280839024616165220546415810504324408004626917363475517613706936677324479730238132106224310761699467834766628359884881089961253113899650644004742019561229509775122466197368224615345110494270335510705637221425366169724556553469678577498343896534827452062114988765433807862305062624580353686486891467650497848908319566318716697638215566061496214983693602042875262644854258371382284517131855094490291570729154599315321471993438179879989290673993545071884862980560465393264272841848883963780197727885947845469561819560210055485771962762575239323343344069517546204465112622090352036068184020286991564094623782106100247791439834848732528377273077673166872958059701698418344027112088648676359972427349983940216421719955487037551709753704235008419177692413789066935852575966751005155571822835352343998902957023230344896739499518955851429763211523525068243757204308946083989365759465842003535171871552105815882906494490206481722030504517888026586238647769021077968758550964326768038970720179617923956088205734694437250951424001414194112771738841276623177178177762870804765922716771195591369404392472352091262288947976802899838360776038438937938747347104062753892204376073162809330281558633625161990106551821063460014761296754805954716092239213154879253483687886150243079079920298340600200603866672167678978343035405889225763848324119512613377711118704579133269603958457719489247741543790619201098367002936894801023851579728237208277169673789819576272629937171167036752475447946790485821105957052590086437407738321799284224842075261216884644116550790462214954412547563728342827234927132737333976012564501999540302420800330482961663145154369389973745997862191533574338958725009230897932965924088512321735238511935458515989959350552171878866571265522955799490183691658070626890251294174739563881208412072916008165649439082098023191032195389729919473088322867675192468825398261708324586143138146436212614285121193143042793730992113050634724884342950868802226942123431082683145461310178994165648183211201288120314667785038885282633127540785664935245214449557105106343999536183548476530329634255804331294326226834015485878995644870302810871200936193378735819050020616866089693203943906579582501955453249407368949828781329372468581379389642773283420866356363390823069141484910169174325656301852501766214322319600494265556214571811957829590798320466974705429926410085219925842544555492362763509297011651794141363578542006060576295174624610817960618646675179813672631454419952558002738410382493952569361559671384389902444286417421366847107523770236483540604956103346008205402947277128966530332552297924236252927850716263460713003714424738964471608785089279248607867801317542469811700705915496946115222729780950645640863292490292124281075781558278945769761912004446964011038976148048831548389037577552025296147823377020582055898582279019470537781966767339737653671025120573013497327197519446788948786366115355359050647958330553549781060343184053521216372820684490631096422915777912404432672639348121511888665522254029409010268674702650007475892173531947024094679481923390622832082035145227435430769154172991768631934789338676209414432608940737312612957969075812340582887260446515798896485875954140062880950937417711784424997991322416376853942706441017964386676636762841866975223233847320203274673561784037612648899902274179331167692890780746546274086294444599504024998101178450113438019495360837627845146188463466869511783063098822999672767518739549983433954804706433353635377549826258579483883015996292534364154805658601378253992142916636505976890227015184116283621714999656657315018501060069369450218450064193506224636588848899394651273142557950191953345378858408262388994705909223775838205912473732733681915276505945748131297772812874811898154162012596861865879816280717993185422940860788346126050492956763845491828649869211948732102847076232240569928955240806256596990382949225423618450840185110386026939405190568855028730934077927051965583097605175641431552391182480819087285735197504423775780302222538456189649670644069260015997947495742199802894318161653897536267136842312663500566859372793472017097896478469296394039260088116147333688188940916043547680425185560935504542060884666013436168846401291642433054979227854033077898848188308530260523109400200910323270709853749626900892214469647280566407694288231507076661700601706259759295400200043908117077444762353052448059816252926612586295506975434715068852536496693984798073729485457031137316635624822108286045612054889369005306759283704717389524750320929549965645418344574343820174791018176635753433175552590885804470683353025860455718673018188783436939232392167416237222368754834962954834691859126445755480849761074058429802252651759069095299856748930820162265253426368899438289049491758462109826769740830167081112041067201923527267449844079743915451030646742596134055940871257954638461277163897093300610275422886936921434508944208693971742878820863816972052791106391594458750096057672837059166838656326233811147497983481617250306000250016089226792686465147321174782895031087360905713409193362596298514092049843605245473844821132453288307189126514533101714618936006109989949785917288490765181160036674198558832313252643180657017601551244880219967917141643323864935965297555234262340072979778733733132529630446407731788296689539394616213153880222876633444503042692077956511409079931434262931596041278589481465118844190231720521189722083927922787074720611372959911995180704095352687266221047022581429684144657983533942960011977574071458194666672894379536559852096681068912144865332098658922968233304903255149974306742611968208237463591930706816156483002513487159334241074582248477047647326794831654266343741475714483060131072613321014357600855933195934455379129846726221537225952045744298796194705702166077802754485635834290292288576101345640774655750054296590944505621361801877045518907908252413334856584382547733335471882705654867077904279653957958448833676411920340427595147536533960741757657475818853320499084587792046106348337021397250825369742703855392595758846411709222556001398817693575505954478169643270262908974941558793750769682419797426734213568941461188964414404492881858281562878129802775258185998556590265003408403082025103759227295135373120299180494368884997386062485894353626885212999125986771679725304854125601185378158616940852721954253122471798901718636614041195163205837519527410419533287596487497874788128078642270683860762952662353350996132273742245483742972428226667615113685786907725613642454488382097313038106927990049218889700362767203933437037801314475682158507177176122006072883916545014511052851671554415430727072192337378215179979905115351351732053129892213573641617963326740397586042978173539042700445367301161927446802653634728809148447257278583809422307698975274991421423283347670322761948280902364714700254557693031605228842635720071640114234252345205948094928095336986422026448215822722294979801326105075839333012465210183758332703262658965126464905210509230502704252240592432479857864016566891262537745530248487581647787288241439664117382726504129818868874554518996615536677303274190054241124056677142589955080870104188424791280434491406606767631516614755227467370794195305056741228117054647457554922452006845938805557284055856873648422714621852062788265987559577389129945617176944567812648147759339631763309713304328583182442692920287462889953267230748429052365251089280189042641936901379140090185016896546684527012352211984404205500568921424978788231490494530204634866032615418641763475558743321439930804749146406660920385523071252730115433223787389911953569126215932383288707592470239024336689794679775997539548546178533207171974421370031449680190164490037188017279532790272089585772270053293939079801235980348470647680221256227034255183562809758974127784553623581943331367613894332748034739989035995562974671527355181482986205909228472195226768623600519675030506731695682729272053986797232445744197672226183285062078250419715960016899675169428838802016679250738778517226969176993199229169451193560645877123886921707482054073362140747689004642809637583407314484540002149717469602227032943026733309446510173309587290202580590875475545210223770983542246496205128364752969029760600555355482697852817939937870800251486826755994706273098326544378007549156317436674015988605530763230830933867373627605262051972496877020469745880716621481213624875629630656521848449675260467375579082398191250680988721621163371758077176099438214344230496802333738939319269990727440464163666563353312581232302798355791789906196466846504503671124869881303609219223288008645254745817249485830633597095488199961451135055093849783405887552702140404791219375068502545936652675238240910462615660936455128496956822828906253934970994392132952230614748126970440728786343802755034407821645770703185027365615938193477477711202083427707293651019741266412407820148451818890729296924547999080727645022103758237610883571112389625675185259030148901755729401296652621154406820878409699712341353405783929596322607088117380287995676959724444749608685154564170528621347178275942950027157186943473758174036771962944839680655824043213773789990527842597676968296401750557661251255606643932393401371971399748962789024605488476092788946293003070808685431049867636042659775552772238068276259873108321200684606886232969911658221555842572962081632297499685857488895292888019791694150553670922052568527912332430061302827118277160635567801359249822573826716696703287789865053097148820287120007728486898140957559950633730941529898898717587219228528568856467169477163931524290867760792372006520393665679464432651724861161963579578047644707995789342390463875274558765751272275649008465086048801516526258164141768154603029916954224451138767047430205144667583421408566521990040588499288969711915407072392689238074543748849980987215740262435689009239242859649547456552953250440407562828363446676337132327924498760345362837010212756974252631778870135289777054235046169422236409875998600737558317971448388790461543146795216562650991188365707207241498280321469429501619822637165124921894734544875484546140171863638217697816750396888767952266606239219486203321280199898283432559489599139618761386157139010911448965101704962647548141444647845677438009521443910804904501140153390143926393758788006401672465451730434127532898273124256552989208815982142080983413312865462684948002477776249849335085915015778707106236540494678072637929870087994028757438493943154160040572021406405087185174396858709895251414765882489437850307379506019904759576382084790193185994540002349565102824824068657611983891813998876164861416124978866673523371921748936924355838938629325856876808803785983338759371154106267885943232850065114380220989395284205431125430674217480932684768318328210580249165012680275809172695664131647458716873176875852474239111828469836667317408774424940838074589164116792149551939977344929618372222380344799261211550882160024742347588553398064279543931986111142867890396705355335796160261859610036333133686924362316172143520605270097254712001269164131899962224123706350541886406818117046903194270714562977644513244454225841588336423740716235239782596435781522385704663946394851733888376516943162079869758408422308027892557338891991472918192483753780768050540698615563350862321479860986517508482337798778233249661147107489339380671562312126562875082175742840264084819297272858543696674412174861084250878705863066795885130740221209202534993773379738304090836950259825832921307200156990268695217995227535849350112827302278672151604828287384892195614648305890674274198151834776506973573006673131630474596002412951720364293995545792526276801284394548176381686147347712099131749320675028238326970668515389019287714398482125228267254485353215514240093486794893152158122547986613258893912474991962102334463919197622335449984553014951559259495116672606763567305327616677851633039548877759003717656531366310043032634544012535083711976993063141094258179106050949857158844130967215056734447219864322105764051419690195220175346672676638056127229197353669879255547879717796860605083554300852843941790464061773254230461799389019957746849233454357536305671824220295512350652515091988703017079802794577811583450415674239083162012413087025087304305703177362700984708942121846964681245425807165154868042155089558577097696670948982659486328792610291435433134529494350431557255520423128341665220012672125417838464576356781339797066312466706540770458401518716803142055990998697672583156104566248478193477489950947810105748404995790375265231601992908510163857214746376286962488837849526805037010562691009618061096874571934320453283359395137004350881676878248426340603827515358374700318188583855340032647193990565938633715125703564489050940308661150627432620268190592340128338696740501214551656644225416441416346923609847012408005204905010421000322834418869647373873248101895378708149243178803977976169061801950271416146400961255786640364377291387047139149863130234791432565904769506547557923177000561912599278775522453158276608403505034386311298954899868564137875678225491677252502318859121896507621392600912214010180884544257915392276783225168460323395893085858319325205819998450927796097404646975331390767913940474066820709199962096386734107705927625248590547720404912736526243927910833900172526570011113869537041171591054559217672027600048800573132276554798494668332281199466242431312616427883022726481829779332275740159805063567572235993180101985197118568647375634113506745591552750780476563329828804588005715329616224601317544039388153296753167680471243413496724066195751832865247684028268552135000167243004597125411178917420239784115709402523930981378518484638534942398514059828257084393721057665002980331984271257893718617143121122712391410721337717838291547255285357451856304368550367963319683433644585316693424209581462686737707756624005409390411393404615650519854494943217370453644910100665158157276562395457354504870340172235149412809746912173620295247760048359037587523118001106740985274864020716265312441627575531084773773063872187163489670938709094962736846862145642849979405708235762661615273490835431614883779283933134424500514546501850476226256216504109750370291751361309323356159560078646055900800411749288873814804516060492930245913229783471202852642297028717951833318559099035919115697586579496861876897889030062675073753615293672687310028379513381564469668104429111308915150544464315444644409696671479771752369744986724035733464564786142430715071463847415348583484952307168473847788006033795017290287930899916485122360163472259919350314796217428249117513703742634805866360541578008921982873708913711692602176377427576699117706670707361144683758737270319691757841117221892193845583391996748121754456719520822790838636863603955829402706355766500423455224370098670806195118079269326230578491626693541191342920170379613588330382581590297651326827455980498658009497480201259670331191525436800666908598637830951042082857611304890661398299623305302177698418587110998015264513235423978689363804781452954514077516987323137650891010537376628511294284855209870519983516609694174416017911887453051458419578755803943819478586813847852827088234731862161972976795931056968367360923153143273193718532734829080406253621538103151531467544449402045368096481384453493182100164086206559586750067615558693224147972508301646236704901611522086017256694575309369956472013358565714694546770929826323825427392131314285794435732116917856012849022490961491881774772395543704789016138307274664752817322670901913351448549371141639191313284675721203851113947245563252832864457548099010361741506520345481592243425132831565289982611519143117730136495462253123306773666959725323141918954087066361619213935644236312241533529793357249241772547074245917170638519848855052594288405165272130427028251211417660257914600446186403681789138205832120102888157883300593242089393743982900158321494617877155884910259555080190766897399610679942737477154119089064053511435949173391337661963318055267989519428186205571681777087593365106912976692913677754190592506812121975435712871137468366582567556003628742859439797589018884402020427790995983340901029599811244116989153318194063120632610426272675980278511974784206341942837968039497768151077165356178861415386557067353767018012534256980083504125115228782467403625051486326060335194596229758303083868253010077515506731538319557151312804075147083902938168651766993653466328199229877461765560460112471343736782100509025771546138577806993105314988401177018592425145223321780350905549173698438315615830926011238831613603340179648476635595504099614078638137640949564984169882030291586380023661879378547064487039681251315663689805949718008032986335391898842352402334798825352339594243255946527389688485616790450406067517497403322987902059656305344367853603776224114363347479249760028627944920618697412720736556619675463411939003497118180746873242500256126596972130269977635508015694496352328104950658714166262906570475057684676586426358689233586213744573179534604583192965192558761804714883271424558543586927567071347394330064684857880867942276723016064586863473503737853279187736186691115190924562965776116647359351431824123081810129755774343605907059798066151894115507648827791013826790282329616678634904404815268667651243815549914271154257405654457489354713356432238757797549330084498682386338177951771623470570289523998622032887798677868499062587114755434612969303455560038146223064481381584503315524267090559332554957322180647188559907899634421147320779796639736779877633046071765544829754421787861489105604610573220975662889310521400666874785941063718664539495750304458296193091611424576138185832063700266882124699997768079834034330105459996688464259748415684427379425686933530241332363910232440015682490882269270435713377543377637329657402266338455646748250654655840116816155918496908833728371957538527194403538120491494517093820210031171172933565034473450446909184100740047381996270610839443597185486863111070983686368402964258128131578174281032269587462647290782994713401008321672500939819838157969478161919522386992899752931801938669887452792538290904860310363236777062166937548935108289497042409995574682031583880297087134694440094890701095730681719670450315571784741778769835458655209844146410653322452725061174781704674023398056967496876018743689616438237143725196542019914145381363038104338733122435377682214628075530992981221306688229615652657282381470840343355884464295309000735728226629365521001373660615437539848642302361439103758900165421450021517878135348607935971040727464792352627008774789594731396059090223429487990610885749621843285988648253676700507385374979310077515049685863552949192700704287566678732110020189000476452371007808117248180895940453553587814075337427534010423878863306783533793691396297898407656605719778200527765699172201852334901318341491759165736033871933085282502055366908501750158443814412529915132343299781618556213186928849439812031857447585931146207630259146357265515111648279317567377916740190531011829051940108209216293395035523472316727760007427052802063231027343933736258821210250544111265763330508220672963674916213752845169887217803372490279996917458719192462562242165310330962544722172828480690089988290780089310388903049850998912463543093547558211053554187060083293601286678160622808888212920431229495046570318414768308355238148908543811032491773209631174136817097626047584053766802948883873521591006994245039822667347749735140931915455983714639333804919826466200760903117701165567732039296435143046915423368460318371737739408442170135678550354755123285877659209609562917097842964755672355209190822030900270007370206944587112574578246174789425317213325366266212252240205845948630196328753906233183541904175136774082848558834401828801303856460191486910298162125646205387061261120431149729910398366052780546874650384930591355507210046322024487502745893773229261700613894829511592387165777703674672034948226614553131630800137458409958389711301583227198016808611070272790412501209128061941621456480377756850671047599274646596134039649280439255211457165760916000328208783884492185302546218888060962598448440077646818785289321978158906868881899776111697595034017631275336691853598149876417968700013213052448659828929274817989741041943093767767939084844744969634554223669934698480109543377214529813397218812310021750327416405537681571494314905895718899100436936221336671096223584451512562761118831942951542802287995845792461995233670294151478681015738710229529046109458062209797140181479048048496485116532947567217970105934705124657784689559184754899084941168388016027557871060138044215134320560088338888236085280430475325146615462449700613829909556882537789349398790513674256825179780169590796661938053216583286871799002592443598084862660868735441103447191445220098309826885199877190664654600156972181138133865945080444271752819115045224748749949356538669472332822376910459738374151631816474053338068882351158270845429156363142271153755551105630648320326657223981453377557370604225790302308424852337738283392179043011120415437631587189458648303223880667758026951527875538699234842042353587673435825815993968072745314244311441790686241727354438039324038407785036084807108426140384707936325770313701155534095044407222571944279943970669788525223573948342668793141328613599528213125942515152627044877577596750607095417099545857102785656554380207747792710637838710174061366291016344878978261961644809265766603618295099539568286978685468603716011170837490537818525920432911969426340670925899050461334161767928290343024728234197885585642578640639041949626694886427252413081302411910638537741519167453615702503098236739075343241508349235368871037205460904648422985055640973668089390351031714716102774300038603708637316994744990913101659807888348407124341432925891721121972363102869279123500511971375046728168775904153227145331799824296297960831830269156934083179097924805779984036285066679360853015150309970341084542159386574807477175447994181766465650197670279611368647145327870937692832847462026103434888630130648471881392788856455022384588655163756779727135777090509931143221532882708991447771276452290777794054007802372163289873851636029303015596837307266296711294375453019707897427956587726567069048187162393096871711045239048211320626604511117323497191979933592175528707856029738683941107605471943046329544595798074194561268697305293595000905296530288307778696915931038795620837608970418657002177339978843893731123477855700065465558195820075237017728309644455992138662431869807003205233950352344131318448113986913196087941907235278543211715828653240421386468830630933973291949929548852041426075931969592546348346300947701572911771918337035785535996474453546610917159976437248776512530003084736806168537954247341593373086105147434972097824800660221903612182840027990736313722969333805786318526893256936551522037418115198457902945035416825578524762355575253633845231763434184353907016214477530300486249045426278137063918602594904732861777327959456556499560574546544075320071641845159812587580811312519842288431856091077330665410700946892816997657541010863535022330967180536137392609403509423469193245286119431359585038850113601223808110786737045713402112681774922097162932756082516853394120458502560186208906200238435848119953010293547926434224063115376698819274006489920547952329799983935067817922187201412297485602619923785870037043412289215490245393115662334718442192887304901119533026120129560527482854330604528396985306017129400216721181949258396141167247294110200272892284134323761125794665325916065535508919144252728172172508996734136641705486463572396932894573179579405183768265384775284392363614290221611440556924069581456918625970425085367852595336999915647688426164943196871422358483413438901407892928259612284851343990371497826325128207785312924044859163919488053365480083303630928391230927754643088180670891670872380242656669574896157141206267376536406016357854815109953593820807332853453000705116127170980710350416439195516740852398215317632673491590759630197713973993905247255030961311981413896022745795775440719359267338468537439971736874501239669069123410492632694508606132856402493992164076027945916765564558203133052531906438160851151441291505172345989542589071922601547175595982958043062912177323491349784942314802065722716233308611573107775833622294312068438854563832404769622819440678097934960787113620218373027084564304916566811069846857245142000035854081968258300925497082785608134755908370791767322669621268328797816667375553229686336848763877094549746839793750479850449220503250338725583270291386875941125594284673526887254856458229709202615272256585960712319637508169607096895456581858763142716824696662923792829681086673886439719235637305290940440815335055337890600127009443779200578525664957382130721427944673291128420900614743327401464688742117973225281379081375447909341868464682733512649041591946165861315532476754971743951598560396724383752066279658495343707270703274918523639996616742016723134111762510804448538553501321777507413219857883600282987168431446128052074300755136910161966041564396363750935492523989509956831989703847485871215800252101381116508331108732806440862946280998265391540516985603961803453152705835287611997447547563364375493450372256707642097448647376712250980704855166444641006587747187586978665310525665752731547388796324295710173900915061411046224614150180062667919710298006488133138602421990109411046991871854039856270885957581201739134148800639836570820348807763811847609417357013860900201238932533323213692417789269177513229639547175347951024140344513317236384934603530513618008658401698010219262943175757452052532503464185597328048154960774608574952637653846878026265511703821297184833184545734230847132231402912238054940867772692508655646769537148683835719888227510033712225151987201438431758301822379186042045793859967957794630497937718147783514836071275558996123727922038342129576280464690684634227166525054244900679863991820955605574334373241021096397615315883961117223905341438907581418570384417454948822871265758766115735058826426557433721942215483592874484759140844022110162183408831686783161318812487561648578104884628823532034105619947770147599544391338650662716410419731837708099303052221791310167498198609367589896899836530143357868002650736644494561085081581515868193192320368832887145399497052635907390229055599454964545225233529964461767419538837169294594496031799834226231654939239129215527845102739615852191290108919456309876015985952746410864152535457214664303939125494702618899161046106946680229828774683686680515362120768633620438911533874163107963845902441593468466135834743488173752951750849637307973885754092145973583141946804818440987893069337282452098473662544219836564429589486233844133584479167774868352750542611039050202589325733196008927497181092647824373440714250935910677073542170982533095140955897487445574409955373450687065469997652919582660740293093852990646336749928082193695981705703166188294920977396219629667651568029999481353481597588506588374866421834320436436474439412790481540941013748460486079844516650686152596210552207053615669432335779502392814735452817599270429256698691872016586610853082116434560985085821517852442154810640681822550754105947848111273209951796008780484081718988109553974374795166575668605532521046854882802631827436214277391267454535621379495370943217475182337940732202469105652304462063003015451353052602266177946912857823835414122736489233382240616537055342405859746368814040772705992336976773646031552795914559365552186663046066232271694762994041294879625977285044983717543467288086938524381992711639751623693466548638453583521497327297650294594931433238509395483564343143747188019020200189212694110043285337808130873922021797330462656998211451122904281294089560512735071402373168227035703087237963235608633568137312829095864873086212204095477959782782800501516512045132075123719662427071469637616440649033937267387243588332653711693368589032783667093101919952370843048755535044241985966731854143521727237393324725080037569134482742676025813327787353343925173296628696391378948249669090870362073493965894759781731441728514678802379872587380500095515977610580512773031805230709331319742489027927148925280704644877652991174210541186107574904372275292958812577453051611320791162957572015738852232225486952893649476391575651608200473673438989712928188430166503237073245894026737235578088354455755702722601441545301801130007692965579124779765946318838850298347347697982416454251438997924321034851564115864086975504023689345886074188069511223565560710891283919623934454437943619020785934640653547839228855543024464523434644190385633797273445874535245093905409725477561893225861860784694342635439096517454890552798440525199247011807219682935119176302491767372718148116006237448871322831762511900324391484633733961449262372576980114202325569580574509409972076311630812901126155222812865563807302364680208248071766122203337504875887562891440498405045269298678292178867106865937477060741811187319250377372855366172353540075892901833963079790785910781387584817250140711576202851537958711150803409355645841344374147039325486566771064099553886761698932348098938257317014327001159002092952764424433771183710735089795835165215996244893016945281018588424186222425358968627147447713189791180419369584087307905890804779526156907201250647361378582772393722339155165941602217497367955273980951890164530338324113415313794451135127816160459169876507986747376798970723026445110181841170418540812869079717713011672718931507058401439704302200713189208862117135058563126896881856011489838306642642953788897720389300459982480895455005634923239700853723768812735657226488664648567929620134887527310981033596995998624675107394021945092686989480156984387044259818278765986215051489727956150852754171909721753080463412187558304128413970975073730505099711946781535500318323231027757318256877070748342524888373501542012477279683708873563643260463824745791116979416379723546998546112675096383266671772521832129123486992336267657821992894189833639614552395302616988184341652534209811453195178207282358861598306230446748848053686494417269974126171524044621373038545444946883914353875560072457525010541267252182263664542227893931165050112012911355025036164152814193689561486440680967893787111831076593929629804810672752514625878904284548667277323911902106157116362970393019518651550171609316350079915422730198718582703549224031188086205282899437004306307116822303710040909861524213714678055638333127400396878380261158839742500957159889113213660198706776325144054152558874769695789924160402023508515320868019227419532446192175194552121107733366085669088263668536191953933745115095423532788416569539395585906898209651807201753745044699620865374947117518394347558268080601101792362755898519922027524841381312284712617707806085790212259845352867594237307862271596990230105941167825470851186179492997393765628945603073216901407514696562537252361918652449103104614939893690667163485147764459911416086547820944797515262995596963286014878081604206304261963652844597630893853909910258580837302747181407253303208123737524408486710044514365781005347233109843063020454073588758269618075437983674431589142175821491353461107447922115179853236191620841940674943111020649144925908136495819874976270556787770945120891442890971809920183539941445372398034945293837746536608255186103309029362746731372704267790606056344904273949223334093527437231807558378161393835164488568546509725304398850801868822448123270124681725216660500704191070847293495503587341709388623098841689763669653600106337881304541717636187718340721001684861986630271928409221777125176157745558975833907015260277082572192579598977098540186547819752822789412278337976944610083547039947546946415936292678225325784220771668547575443227157106968897283386744115664598785110823517624406813553391372973460061604134688761894604337572199733900998969032049172884593144250094704034268170156043124936080550038142545741046344470986402905006694891025313409944866513652686112158409125236912909111163222548517511503122089906310485070022300028058930614243736706051322674830705440623699559388281367532542862833171587195080170234189592997541555763210137187204826373348378766114787576187384812248423314206107094860185219426505223126142436347006335464556428158008804947897382118252136336437965163437175024406315627445226687148048969563676863216993045376129856046558928602305747321216042249487670688472783485606877707288478366156442788022878767996609481517764578130299981525494502475052794259258541799532588670516852980121866874365160044681490237652735587386554545631037375294260049103493174292649758653868289497872118034104061096416614643231416830792218947417781251188366382865563286581081037985874544138502668720592239644253028973577169813511101630456885128632654328156049436175769419087274976351788317214237853136347926515279343298977712965371723860204379785007180239864026872296165106781137630597375730949358973641796356672003305122420697946672040797369662587584823378660096530011995315524065476837849538686287999713461101561048295929494763854528718667210203866638040276252057722678010983801826980522819962150124219064270119362303826334568916543712494418886533974259815056128844455908498051229212824183364941931714743705575591591063752700585835168783393381173766497613730265512996765237992311061153208399076547225256329953684349632425364696425130225423685855904372275448329365709003417206939661762413772718848761178265351320830652313134350127512875216776282853042059747904710255967845554837535234720400989801914376661710733806294602397463529436276417344117960558404439403303618720242747810468615266583166614238248080063217130233396393867881359125565172454752188131160131966310150311289399591654384095930726049131608251068660945588219823648797743444742469417641222679762511034312758117064770321619820541123414067519515636141815215243342758070962680511015014141323939881877267330134567989729658961973752353311361807072959260543712204753626481011900309794242339018983089265016199410568293220149341366703446318348439647766050557892003472602903087245864984693904983988112794683261326614279428258733282248115200768841633518667498993500582087218816451229492828664112887808955584295376624655592415784593873526971391904128102671856671846773545880115359366564252856169402618850127764371497829217411845019342566034295750599443292429856996844635467759577712372796320332483354209504918721779048334060147292929907294579674906294206520285816484135123447930366498481883294057930479791765536563165853915730531174011771749354616536021829440000802980712266640908282363426138991211947885122846493761459069144416844825834909668616191565842700973305771465064580574058481827920011039808669950199135413325979123170333532890841951588133045113987647139655642241105919459125262767430459780913590910505825864505918059143307627208978500313584346397272369027733790747444338495175974423527491352030415730373326136744843268131168201730933320033783205697303231584209821282232425876699421524351117030351141873071337544208281746483704047790275656284033724067609015169179400501674059097706973744523875023887194830559750902894186435252187694232733563954780712106134158319011768605217589218134017753440364647787132785892538787130675619291079470633526186265746311714576196831245460794069345173959881364844125576686438944061475444068013265940121228993121520132345445627320681043768900429602385166654769547294999914382098550599920595085650939996558473113831244673454494611437500850244779277852007362235148235774735517190852853085571312023790655067898478676646364373585778675937752490836433840464718542890408642473794445419015447510329102011586735523303901108982208811090238457331099620843281003171149654002890883635635755578295438777272726154215965794522753864986746918018573082937434902051202213251858980901046691286543462431165662509684039267396599520257110512578135073843479042825922128253913949773675144006575305860755759648865250586419903271772429945701553321876010476060126919300685959248666512288853319466276723776761702229429833848773953652585451682658369291341053538113729456953774542267363430398199341923673535124511021837153953873473407853272824336235899392287072534175018891104473748036523644266063906801042630768917476511806984305614650266571494020399414129961343645185374557411741220944324389889233437636380046041369631679233039655162932445216242009602583483031915562899189894080891953796951087963914324446298078491653652154376832521474904387915424664820455077452076838404756619183886909490835056229167356134191389126229603343633216559796086929365898953571639052891718612881553422480467494886078523094567431314060664936680656735816114508475086641510521098597910871014409473751507227572488786325151972099357028587738674415559964794264612589232219413863440107726635428839783045749946821625644873312644323375903915926659329025088809020173111979010418769346360253556569208146179542674682147016356136779146837755218032888985596639076719673247152171740328247831648397261301577702631150773946779656499398929827656446348990807117767810048960344901212821670481800018631699368743762169731545763522191683578978444701187944965915997150689579950780762281278733979656462687904272876841349065037707865888966029548833443808428263337291183058515194230678047519130182695445475273719759717376080453288888775985884036957995907301537427622801981407855099726828733204997462511116372129808649511057103926982655965868518033244288483857176149396154194966296538336518282026428577827512121380119156030480777366333372866597174320487757266924713537181067413533567339505526254834656656392554551942597069524842103956482822405492601429744170428637682145357604665529206449994039285388800132003272596146453004400429053168862083755925428070333816291974163883402437917131067705131007440769821649008008505816026548128661603481694778212059650064717169909470703395623837772112505052130714730252608107600662539891922478469837974805774591567790476483424244529952961114675406713416260484894554468287449193876198253531874647461746029265302579079752630993638867841716829493198164085763927776348176771946752285979544732580959338599792294706304239043080457086464364285361163323401331781530641883288852362108404042352974936005843310662332697937489197780550872718339301830760920970549275147201388361747223527425232797137165396424158403008714601527030684332241433804340403805108195798952150495233739167694682047574284128755200362006837912700484622027760820705279343211591718818918261523591532456299930912568576873344608015634990498917048981634524710456951760683016725943856977578649449336574391959616621984885570829944670623355059002581700835323290779607905766829586075040287332577644836599576650353048075241246435451034163369224104142335623777244015701182096065818155639030452863446770100316969628363041506295858172140326809291186233008904086211146823889373031717577062447499257541348602935940321156642424836321349690176116250572611272052070133011146617117498646504010829867508719762738379100540352585466779117093711067132562919228094483189365368669284207057140326231030683011658951196391181337011002380517240138583067848250656723500489953880057128113598817882105878798338394451569167013948965666750388004007944547097236262936479716493200980290967331106907396628028868013629250915992941264809764775866397155809249727642797680130239026877735568941848893068575965405606164266118386159933470633348613279230891063320919698650862065313160105574152471633787805802249698070876216882873452571275551038719660768967538396464059278233147495453108435524556028475886115594210708984841297279070855743338221927066862083475115793274977656613529037684469599315078763815412616260816380769218323979258068404638725447266366736084907240901332490958708411473688788202569602869521562686139428671964291590012107604194125499169805786040332288250633482842858267161149219340451147308825767241632675355894515074557341341531536935513786656692889096239249180710008617558177452659765168160244121277652196941392971477370278263482333064828469294416306429210309098877577442889182631265380588121762813535815736145676017386022368738961594312764721538031449681453615669114691945427276961061424378561027621417617751212444413269535978804593281361666154009755582085363252028137154445568043679949155303330870987756235993665968456826373849549319860093654099051144400371206380772710812939698152140014282309626742109098305225462514528394131117303055391860188191331319512736926637682079519018193638498128111537197564082317336976827415541772622270545274851364031803931532186984538302428316710646324270756049136594650834982908308708996719992045786867275309588277090706038848274062793762351849969374241169631792472001467184591945114638498625628864087379855454994947091549035382778212083510246732160752686411152169569389018120933036892886703779240811704492392293716554683415601044987822236936775841790063799020403559647428874392726855191470303139208399696934025215061655428039050433665734975879287226573274545917745974189123206953424421021853558338463819493655820509492725765327357093556501043745188238675504157609419250314406503060023990073255819774410199142023055834828888059251011687545225699525807322270005980761672832717214302271676915503238429571631765002563425956104708059513434388398029807550242704806119051373176334718159744328332120292424483219189918089769636463468810132670734606910767835532568471906836992571559920308692710876843961956606093939945568173728575631428481735616879407011651145132649324762183107450373559803890224111334324761919925574140898145016179213296921717410753608531078684402737200313853366885937043354348386491766107244759273444358256674860807491271475622411161955537358425546142572020896521624625342000463051585306653674750158213185132556865594723524610607837879168603013892419806757000546833144993001165829469251814126376312125024351457022086805298177598376527977044247184741046916380339053838030476330579729615380657032667833580762388659779293427439726429205256514560118021933398166592661938437440856675583547875139132033168724789562589730055387138297803262297579162518380373581970359069551184806849610069301092456665392569168734345116892708858170415223172996315266347502324072465322562155346510907522367005020032779149439134682069477343639086268572260599063550295597315040643639940452775609465423205424357096904054335227185547970575463814811556578494820990304486013257145073366058185778304925811127794540063458128478677582110921164455155368946290160820288541595049819270645930526896794794939411127234435981447014011800587912916051032685581179537282763943453382070212752516983167007872427275361362844390009818066729595822903599873414725009161332929949362989554981107491630105071345929763235501533054900034756709381814153877871112106842520276010152231450345529804331152543753902018888746621160359281895909003434069064411779834656561042401402271564891170914348483137543304521111296580965736444054885953138918100162689351920174948318593273472358782792548560096163618762991817389366599764607434903275943631256502657937250380584003374096545050726596208600006652199039923414258320320062163251487766412846498843082499653136786263956823976411178444709369083008556836683662004633347494352393721922688942689020928404020268888347969213317340477576865630801973298350100338537712250151101904252101149956205277075890606327027506072725900676477979710737420413029844795516079590004606550209195867734956774407557678609221373096427592622339035793274365005306531407608769728943445667937707804321199314417367978428943118688630854154884362049587909059162431313469393638473405065377451060220025282293911093658375703338165733354936042797768577143074122897816042139008411163947597860267520055461641335825161926528599599172708723018869968262249076053140062020073658347555734810255921063041937478043043593176871032981120007670579286716138719602503850809879257150574121068326845564738149694890740809759850208122943674252676129827650891503056707155118117157512829882461649292542688040539802739175617098640300207120746067905586528549305903600715401018677898394010677487011323236157928106353205840169531136153881355937290035157192515226893190938711303927502107966714780429684310606629355622246247490079174419332835084461576352570776671626418589698817891991580442712693017981754497047488984090763430397246965983805921877700798619478411815167913439371321313093425473738943964147140814307318139187224683311142428027015180190064461694098529123431166232339749912895188826566628371532930615545327576106297406964708957452142840931593807931176586279749540314140111127264414301988259820330189454539067596475413231982762259786979932320778317414502127590993358897531830065869572915416666567535844810227409836452387808152273523626604546989151437638995326750389136092105067392247343950213522514919780069890435742149958638676700079430884643171954470502829262876357477197478965361775720619513412274292571717678286724074269371535901008991871072734667579302300751781071134455894386765958806482291683551612689534323998372771789944200493113347160006351679848382804782125776045321323495799113283685059798518909835370036077648817078620077067189386629626053036517239041627735698285123276595491800839747826992701370614961282546566371774672656582712559332824427298790968205192579017702033002847129663474301337012989237933553082745397040116083037503025367092572308517149460147883835491248664097469002642571706615069332792922166326109067676903733551303081213323226498956480352063961711001794676730756693768056094995003615314287473170058928162956276313077816374073221036005950999673018772695454941662158247814063435940293333460598098963922628863156022626532014512147119770235227141148721661204682015169827846520447051054198041862021261563494317002147585415326835332474747886427493472866901088961910388975871929684271014126540829923667012128350638911367686470185641673117363713868969540949400845391755495845622414688007580989891435139249586102107405430417932402224445474012401965196549288785625339817665338035182358917799325836943275498230569803578249565419542075284227737712660675390718570583007214556897735401166108516822714738011823941743692685953120962630015955407718246598996869697339912373560206853939636933138216814689806261627421346418182022687217808631126688423549008720197883188613088767070766667416661460064440351219050332697941871490529153276017237918309130263763005527122900346455921744934324456265398952724663431030223245391602347735623730485974295445609321052511315874108314602973336207359276388869084770065906027037467555851383220308872087611027291835326704990543187547180218073694878261382262192981587970028161049691739440480650947161262202962932490780755332440216405928501184961922193989365153763420762828835062079844797108260004240456045345079895830337552736890446205912061681882915729314999182250984413655625029626859850548756153839571708029003424886513314585818468518810764202245651108398977341798624846936914811472530913079049498338104533827961780991326517794861600758427854034335604738283699946715632318344612926250633360994092660168341269725458638060931667055630492203462367246766460019854181556679455567670195164865279768964614217150941584417142557932648166129484620729212659689568626722562112762958442579822450118269767390671994156709967167124631421924211276460068564998903722789707733024802555843786713027586494093491855629808604081749649051402064542546466835097303649253313260372173977231438431119411208202774087321390620336627929018825979012462314037015894469702148527531333936794114147507947711025056531150435115186865596210928772177599352068359053680393468324682746057623388721072269287273725490289466443505848408012583633773142203770655149375759916173203328852909010139623903568867401423380306665206366602005247142592993283541420836528913728210308867944859720799216746282905910733411862771640994378697218008539705980618353216093712335316248383299272202926709763338809418437120198051706798759410451496202277332605259290296202710694709723710581231467158838229363669349962643991180685195436823521384250833689294630466651353812070992428025573262600013334076417342728942995590617911509867311517230542131423980896069059079582222281058084269652469422099991894288505206073546710478149719671542326722987995786548175896174900870840197372940253685534566939604118387766434382145176412416585259899712882881327176535582888920909051604138878590300042141930557126184306295142074393017741842030272948983516185202163600574108393667491186342927187353943160670816787752191021309170746511673382308809171294963134200023039133001722795975904308897317012937667108953932177494596152654484970446465678018542906824265307920540104960576790483047026603804664370060042729658891812716060054985205780614150399263489416656063143376212525058647215487097047246638305494221780114256506162937487723629062831271190509974044967202279854845677756890961488075975977037691865492743638175077913411020311019383794581909359032194675704840356479967271330761687193153644474939450264620352624087861351183616236758303424672789703376618296329732815714576147059323462622426110967242967562249863800534452721127259610096899764665192435079632047235442794996386383969322247221005513824227107168492829191149540176068333732321021204918263544343163550269600937336752054704116014579778546121180210068868244868458898377434396721969336936054794814097356928961804400637802698276986870882859236289443718039584953100237764079896265601556869590404248620922454625113481220304355774423434001407084306156104203587895183758153749732085727405163302116606305193667095727064889248867216563065546917194005318923236011457274026726925465515264256222054805666859624244631927859587925695125172550337911632485056012912381947234043871622838819706424913970771858986461375146007874859356967765337188988880750692262849263467987677804176127295401463981111686499039725399768406241815029278390901866458357564260172877891291797930651764372711108995775821270876641243977807346427080679753590033763760128658183387149583036597718323819675970618735207483402259896553769764678119933889574719415927894968504925724807438837918886430698116088771861954270008354152129432309092424249728693886500597676727878944743703029863769181228494961181680126007679577711911797583115553443203209877264913813223633929598239706895886639245969151910667990184068685269674736129674283686530572417569079463829304906445308808291077346129321882676088606416037250814119535618504397246007507323040814382508976067716353293707049960866684533241262238106788978801224542722605984006997334527993964882527612823186245784830143360593438069908497642800037376514371799525497033199056773791793014602514254410530706894729589523995240234774072932494679259548085703524338919798490634549642525074364728795168864106881150170191909277176143816618513701206147987409988524992619994349765352898407948629520495488772939383205750271221590368517277847473105040070999748027654468990385683490141762789621733070594128409514372921708325084884600193344886001777161339175593655149339302233133697648483824045168071500276624209354991500625261931423703910449869131206259522176542542562179375678527931215666238778967541802065431624497224648275067167040163795699478613401451210206371024678039510456012533105123081314869090104212844422494933257547600327471201204540283432582672686232244631859929164899272147588340810793037333774202967508424330424646596102110490257479095788245114348212805301173998766321219518078057553730300308883359644735624666841246423545487770482293258906013180121775365450292869605017074388243747204220617003527283059876482461415149214359976163338433717903725224200331584436445242692861463443388373027623514158110127232275470856356254659376723648086922483472275675562730317652780556322429399457458920665005866302008932283352143072249023211586728914184973272087016559741666416828276953508088635784107085642574933417002957000857927607433659008099697563193775663059208084641412186810499537874289349362767780503820318078626000814902450638540540156953417273793188479000701591246252572519860194304002785569741078431504852377817414970121764984616425137412389942427347952359913516431796170148139753250587792103150987573456583085038426766247388912775635481431653263966002009783238556359975011444731080503152614750517134266044894600957539042710425433452123432292328098899718926285987965789542856373477530287669568044446272085513669764603761801674699165916641292214838216932331847492606371398652637250066075503804822624209312773504366951151990791255874974744472867347390575618487543927539201055245607627311734540318352658952221111358159682904535749113498790890285698370237386400295524741006788261676837651820094435191986515348090626294026546117997880994489140617538016450831946065020714246178287541039217870468461670659536016875706335419999988373572895937126800887220528004846940204378832186766650830226817609362377321215613834663061388663040434464863267696464149364512942712505709794119086138336982436464244554558607184038882949249741849247661040928430594411351174423936040587790094273208931409872886948759840280780017456437397419784106837390758562770140097059566664515301568556493806317798536012710978245462991607309238268719718578421056515052178327364770063489662871665959713730973642439388446562332195164662436414585408431551665406500656568806828133801285168074496160901789196482557601082939657475481460925222327621876661360701895084964422625608293519726081085772238358247410589265384547064707411318159876764329911922171294330234857083475874915288492779507207974342376559513854580392802457259439694554900759455170199281615759551464275862257536158667134330975487169057135829071785949438587364943725830197510088309907746271439198714176490804229031524782539782710930492426396073719052456531010803818591503189347552997166204169370664395051615694302227307185346088431523829943346581108148406680579139193702988556418282557503982273516072389767481964120616978787171093256819013137688700641129426534994507613508521661516866367680760713066457245298350781616310000688586508895288630112967408047549379277269268309377416313113965338211571584258762471464647746966078621972429258558625085533530421552519111158035175474029032372104113200165299715708622503751427243161862806560292681652784555135424490408254484407591547379727749007258965671651515041123633917890002282144166133727554465397963336703026045435346406099237233088825100495290979519726725381417289095739685023174840257124567164472185831945474300462596368691245665324995204755981050153285740369114949192883335934929621790136864081961566997442632235230969972947191894444825364598426152193117043975222034364325160985436008848658899081531046531509781647107710849488076979966140793589686028307083545547717511602976954941099032570369194617257920668604395650660993534401270773808229054732596658712455598085177887545434475715758121253729643129915881924419598478040406684840628326222289873426375792449231746865718231983675230886423976828269702294877638059548039921804593847345061776475831806712676964599659626817776336203702041787137513511889411794356172703641284887001332436840739698866715099517356739474062219084435962204099026396701058136259628769629142627403197451027079858182342545580979318857632010208727132163322659715449288609300054590527809314965253101052167892387730099004113079368979528041409109311115900380575532131849699004349086673691507926465490552777956002256381519972196757512145690437467549429734741533888073767866496410017760664441314096597433777587656396162839772132131666330313068445051032850355254622619228446500573513607731245704441268623356359924965007851723845508566160639972616867801643133550503289301975608634712725092498760586193518404992530326660303493673121186550296523812007440632018284255492101486803164972425960409704845127332314627339839470592251223896774529844284950561542839806554926180953000126814720734304602229712970754495175698230933823603201202364054325221018578978940563282857624243664095159245680172189200011174805003892116670697099758873102702753880769967453195608281102562287814861826857936351526899295411903825526823405497301527527296865890186363336560129552253998633167052427129530364546017762854318184031560778660227388926580067536474009498906438596332929852255245244566359374678436670315399516734520921732017030189828930659270189490440089779710776745562730999733156003872095971963379206001990613284868433373899556356565599887499800864547653551150923657039358853027707041664789074886335793869211956343803486285308200440228642155403770384228854176755664341076086701270927163591902158903055385887136418543799315419966147713069480489837252873089718098319578541663447137957736188298159456090321211505378285847447944267365294785751757395148134519549647298958458970765108366459691602675565935308714842828188406434257788295696017329063642706298423497784464169818472992645711921030713634454187021654059159555334124149582494085992598049707539412222152521010699508923174797309818527271854316107325760838884443144729790998675913722454446792546930396775783666415338130614821647124433839362331507165538889902089078718281807001042732642492079876932785716826888295027187671026146667062367693549127799101045097107388426748957460585593101693860862126626485024225915663448406065005065613550890912768025314037369102131838924342170946899358422758439787800602610783942936374058188377794030418446871492884072896411910695858433963577118568693550729964293944445474216733106019932467173920524436003656312061504006439579575070054934365083604807747258692931472685726445491537524350793826259185651290630537914701381422022702784128035490278459313485786864926486214885997286233068634563790026224908536857623308345081058597547601014087260478367139505868695583930798264798380199487452086667267862454052545782632766658640138186182294845134499368145896460678939594656717782672650579662821885144907451223935834234297225505139674487680484170457889713856731491780548808003447156760317508692011279874647565927002786783528858029341521345951551679957391683221993399746572107881014453523695797823477090154737501046068305923706322475449510742317741340608652620942098519276113816589525454031437882355279044191797761345787007771494863732213862655669513738868816475507288709317623963148953558216200629210894035997211699162997701854797079079435858416492297140671724735112956083062573606926513518160603045462614960334890991661622982605279881203175748120141311053529076641184654587905981904792927244623608563248980774865531001342445890745735664958602759199715736699219013750913044003602804039792467684614389921694873245462508529673297617718642324569279777741681819348600285931241567127014310799276478907476708568703115432388518569598604063177253419046340719327318055448653245113835954300455787820190573089910606464262476489331068172089754500965120722950302841845263518695132516855470066983314377742739992098678745903881519556336282714982253387021953670083332354571425099374053356787257276452858963025689047871526067360644127832680275463616763541972581818671290218550136169962492184733732341336203557465785820270347860533796397924035338285145209191909926491502839287650184700635797948473227212907981577920151142531675660053538975099391237604035252010548891241683667847920173040735929519194474057987084791540662553939672301569500399499307877127133784456370489595265071448018861243109572615256735954977351968700613420169957397944919239712330793035091140731912151872275621898030989014379390792718807159271820660055239039922961048395496266470336898479203606621543097582740024154151202331096206763162994088692528229166733556777403186780394283531957722608941057694580754207167755845174412179545943739672684035770923291258944480902516475749790241621228702870576415643569436318699247420313133696067945088736967342489491113780369505821207234820145621438532869250074649734582167199636180991881595369388994604935866208618241961353693503613241503565714741159619470538282698636156093631293878113188359410014242150812931302329264060248537990204051891117067334329151342255933659916617784378963992473145702684226397456684583337528457212071685857768088572536153766153454315686231867969921018374485373604431285127923763917698608926738489115733590472583278425877174433344279130883590250956688612093240922517737307680502696816978564653383051770605194766211575428887989983337779089321726797340421676902643676777497089480371484417066896507962070429038742486385892755768949474344842854301228734702713431507166345259620491808017734240618447696849570663315642445780549022729404432426304789138943515098379697378019603218207114402205174482932525470920888621153353486821723920913174212236328833049722288824039630939469064283601563018086410713897819305404755432649835214524476470719378006286041514686108859462085017203625950036457350498251979576426967016735583809499980094559835174426568128556907353729604078828418337200390776480300782698279511036805270986721595860781788018182208802301086612365680862548304397887015990801918600628010882460856185843822172218648945513930134362356633880185031271780596450365838287715604230799208737174914650221125261520481757946934768158319522801594135482063413303564873155189999167681459618884786621161699189650910226707756602689277465803126232989885016977235570953723275219731623658472921706836491692769708579310103748792941985405875792996627897752219006603680051845982425170375399385440895092988842259574514747364663759557047581387622274783203434951221354387651388733252138277055455940029743605094869496517756278093977758785301782295009064231757429049307481107974507651882369721026482363188193188953502426081474897533851615374331880344522723645350374139866375537927385276443902438468965547947508512581072152627646722730137704429175482220550475875164920259937533746336216860379959303780202715859524724200357486159853043991501384314443663532837229639120232003851089068233741817630798129889016765057476609184430265841025706839491477044682477883061717550167822683652898236469915577803363167761342729007958156517684653836482906115727568313697306552641073326768965408295743548291516245189485094708893510324387171089499953669622735645903875861883780869925841563595079565437916938116144017790076829706092213784698707817817388929439782748769289482995533868941255174851096959559482111243420267476477248677578496170482094211601357881842161696049821511408735707561073573050755980671609205526510996637366629916610930428824436806955699512523111115175930858492601603485718490571441567287637293120157537135043288992328247438995636756073983626130240223265690394812601259532047352985101202629013313924144398556658750103083104754036511019860764025039304130892023743735446636992130816813479365744123031176290651821034328276796900782380911415704983260353210348586307199242302639236931375989131362099989135167407639704304865426377449610173434440023349237148646809076942805450802751895272173001998610727193219379237689388122997629201598980323191000109150718361984713828298110033473179341571049756583920449903437977514782988985134520434851985269198743163685020524027485208281506943128245143560679853307688502961356536907315799906655706255633864487489128685548813821011118768874675317129887085877094774380551077856074022192730235254274941901853686857440913349297711492660030427724617427910580158585232179185616529861467543904961902361505959041920010694165824646213226945845296045118201409353076315936009792717346111123358697154487193784384827240836849814586350547311153642414562783429145347910429407708256109470909446646277090780449475799923278027244764328531984832354545342769042496832962646985971666874296839850904683665216710694886045507834032392964057256973238654100685009171632206347791718941673353108334361950428052292423452626427278716178847707329037674816266030573209189043659183500808112791280412313665283091501568903304081312463008051966488726346906862318082067950861853980647518723565780322777744222600993076794580183908503927336412452726115995466625042766998760196234268643887149261896597528708133384467643729468003814303714865073811732831810430135927311213746348401411771904476682350310964119750624631226852770344191150754898926217161496939041851796186333753903005460678591358700743582788272527622917683986247200208600222561345576228506702793349217202808965956919165801242745329462687075281708685088865189112028150616332503870797728521334829263892841019860333810991912430228919102110430081479176248953829144033668432911496777706269438493723198984889115489792740189884574249446271948801891633758929579704699902564344284071873316375534734557193266984804299907941089192133361973283099657796612091791095424682476586054583242093532291605673148648905682028091560116679338551010477575641079935069927809906059300015870820454738897412044337934994344841218162055832952128372842960599742014669275398242476123200664130679973560812633183979339921044047425093116730320220789101147687479681787169843454996166214603686862665068566065251394716074738931140452514543401481984258250877747220365351213556648933998270195496258891325492903447136506024106007764582060532437690115032474731875497748177825060170699331371112552274398078475679575732276188629679501863318284760360922809104674971802816627998285117416500898973745986879704131628107779755887764320925832984866167026393826219094263855236406221963353637485910168528735364554274447340869310312346494142894083367049794004958262824567955653158650807194684678671733458429219237353131985428538009706833692084462181202616477754154406816773318293139132470498044007546459332397490457530649551025574855443076048791485061224755218730579446841976010976899960154215542429030544546272067735281393819909865600109312986491482059058881727782186258009689177135466676010989493068818936722694856185039727658819033179404071437870556415495212763552712954106196052471064926676597927123807956965138922659350474062471804101881538086327911286294924461902375443860107198585100176296552083225475590542934918108631841733573865999680601764578956582736350240849303615237805895376118002695394641573427454057611777932787156539127146456825659138714167654787497948907392216223251622581963132719371217610773272718982486943101399522952333410232560990817464850606303363677129230166971677707808567028676719221962319284417968122150668715887692051436570103696935573290630063814968244842314756188782993455756433665825429721467517539011093383177968872691815189563093777491296057180432945653297852902049554535307643738155314378205825589963614689717937335717043589159180729309027566454959130245535383805578673205175629631859322111220331856415933202036518275182857583148380420692212476285714869786574174881281322484479805198106372017151752051157759830966159524628048519387722093476910987799793279978626341501651127419849249095864606907516112315374030735505944170899897884607993435620042883381118118495699049738707005108301862524444530872925912505954096518669367399908704475829153855985774223293339295183418192906745377023374897668178193217760150938281138791012302420397301712229567262961143562612220394635962156422321815655012723747540992199693690898017690821258277110345185410086590197806934081806225712531538318493691666168929531234750101686823818282829547582170038006794939073095470855636618636649936618363592672250649403501234411856708855573073115568359045987019805625177928048293006652867857407219932370335181006171860871541732244040423637868967934200466712568281017051129912396908996209284363966535679298985944826296089010193111038929663393461847975298602920626580094193927791494916882711707384732762768116739229602212987593413026303404118723005600388501044001467044396025965190034411674755735653017486215938087946436882892571831527027703777819844341703442113359572641444343100584718692823104677095742242783648266618630415105358717254796324255899782292715313881386031458799494939748014748881155242910136799675456099324028819278530574815937808388059289388231766234428853082547377170293107697113715243469125040291572232644171833449732161249420153190363173069674133058066072570748196307022655965503822327416237634556916078662554086357502644530832316833284833382785384064626079198688314431938693423398378467821422334460026189945630229685533779901304164063954656147018378812514437951557555359773450437188835992759921732300175176811564637944184280428744147560246849720460435441590341271898368668761605690705102458031150957075162299152533743054662700184574794933124382373539963280930449462646320207618909879986028620221590811522055168168486620132323870495521054413818387623249300021695825273095905590045663004198431624360660543096611676422047660121249713874870940003158731677565578318517890661579653815353882555410008142394224889018936392431331195353478247487457078917097360837951782838110568323669177858996422281433200035595063042439339634129565622652828524760699923015126966670083634446829796539355659455655804293107101848157751126823376884921964149662030220764659917521574463911854274830779445447880569794867324146945258418432991387448058948698697723200514987492079041931149626962996997889125216122645919958516761429942468045877899950254801314329169249447771312637491512889314631749901926356224375034219281257801163394256275953504762018646870697501330340427675403465393816744468696151191970509984821487387965096398764949509490462404911706136864123175196180243918368212795997304173900599699295291192470919698192315435448991202551597610093296080945239614547023235255663624917740834098070776428558825801401034201991274392741155986366968190391770594716328487435629450531892685019711438783642014608574737515553199626116591616335844294310448637749938742263375277958762350166950130947866852471267064747091247774731006594657123584866020351403279904895284228713604272220463253281963090705398695010170428408064977212572214183723199198426423509514960096553705223257620212348301663334671922196858519439550752763325975271027462401271221490588472401477885204733723507634656903556682915517142064199410532640839262705803578787140875310972406822070772182131261311833336043981231424325303533565600389160543407645841627435426730167732673833435595204561822296058858777484831882795779926692947032005969743207589897590923803271057570261882670490902601093658817542113969854925686629529013218083064157910766389518879088468892772464541855030926070730505019955782161534896551228938829324603043195823340017150472878647263067509601968719868782047283053285770799609308826116305744476602804118321393723105176713253297387974844823224931546020346878264145403738452415133664440755550560510296552051933058142273025744801486047464533107501285323522598220315732946300806138860819772197118020092974451088534709683710513591971403418616265173971837646964503873516176130714138950642925329843780623016617983755389467829457435980650773870901543536826884687546814107150851245427859825493770317682767366666063997836529523219580934224654516924643492863180205777177520702513338998141570271571221728090263355231395951549199850113702646891927427949969565169328913675849218865332129306855676149649228964622559114020930804160079491241359285532289431298603795551934848065063306801716461878653645908197057507785995525278732536953140514598939948942626915282285735509198479285397577362319790959801411691366358754705631132901170686340757332217910199090082188781625105837759146676815370996296150572884815704085355642270462165858407644740283151758772520540358767542969595103078772344882181056645389158974430616754484271391348671236642466452517818590049062220067419743592709872512359341860096362637401593663684174195895599613739101520323627977219436497340353671755017279288196001311104640210478302358205615230679932413243383135265473554337775970585273403318534258901485383005154126374211236102469888959504973413315334272588568424004410310462699148904905551313983761056098448356087660906007783589058549112993885185540835975418451628667943517351602725762012579918985675110739215661359671853303919855899182406786223582093697330579238269759716351358511699917501848177617950814607879425545290675561730372681116092531949897216000921268250718853822117615717258932886130410208869059312722189850783564008639376420619532179676776883830365376642980533680046896638703811195700435274308127856320784067224051304504405261698875006913660235787598097742261384789927543362804113650844135934383161693002468136044180933448610544159001471991197898262615867400230864653864966671465658634573277696416438939086503999855768083731812660103352358872359338620361835320076235504167591595635750457247431619330448634123080406509901470753629049399598965215477364622928838236944232849094630936856819526033337442292525435268408986196714159626675487515820316192324974125234360632134158869676943828140058186250668739365109192228131460514793484547753986812201600664981916178486156523420074193456694551904914450089462487513371408802972568420813331597188214948909517454053506934241561300075346557041837153657706019563894639917686283801041763196368778625707975820522186393452659374109359646274380445548674514857395717457358245702815584551074172675904925669496047549398073664475943081601563282315924158516662051316586872587549308512909257890595401897413633594752082224003344461470940767454043685749239490767672597836370748266443253975653411466856571744217323358346455429554265810370533225229659401282184125077253214388886787037167427208552759062490057914436256880394059776765545983688631400051711763000832900194458658180089070561028747328643466964639449038820571158639292332222875202371370126027310570546587035040320951531651486122896936659005997324473837292527253598805048242590032476693036933793882139670041094362938394790033111769059431468081021655217734063153225277693866474173778750974610815351713272609055142097693997089793909484242344775560696752753884745179614300495513402868107523960062926865359531300151330177297316727743657600683709408497469608269152363882405014581636047403574601536193920974646088354863862255755423473463733365254564671826212956024452461620530514637467167805574542493123640685393491212802687620887348933236172136850109598439781223054687461577997369453700839022642597702373946953472420768664738414825894953526729323839691744771784144827806135477340673046928488876314186039326436023224517262672029074855693603504472348103077568720917314178915895389584997539456050942894476912079048782757178818563144732318797560633928737836969765229198238388771332954481506903919602745506610669462975834967475423582754977079626071844814789820848286804778078205061680055991283852044572439996009309079414069086937117667808991648915043835004576396218005434215072664552805552625947807979050637643772359513867629587472176622532047327068151445725531693748230975931603621796149308943628375325724267646470980163054378216203095451026309538813022677059938585700068091855423018035629067082008632580258452632989935801200770801081982513763283419212686425954305052638405336008684819342381898865039188158402768528731174247726420996624371382497527480899907983618347442599801085425839895843494403719362168384833723464442675514020746550902169730797514362576247755380953632551593493446893317658112947775658184228417830801246291799490591059566006099595632597961350476538049238903275868903039320441330461128649362032011231104423163779209228833924206003855484967524618044314764118804047662185672237476436353573263759071689697744180171127872495683670402338728983754033952218060488084293833175642909130385016203207915015029326961547015261005883118996537898161726847559186925532994567582597743163292639572672261195318470801045615038084103879914586393671867058421666360027513851912214920103525651510734257479009257813002931985502387017846400857066292302208193809554706958456915727023290516377789571848151426598914203612313204196049607134930422457476096377419050570353901047422175600194731422955367029674601597390204365276153822777141277171574470754026237109814690773304256667363270756102478903418542790199677502664974653337047115812980527827544402465126546746495824048790992019613485063967060261944736269926016440450172414181480996063994891241069278917064372358872261712836653773369127323400077803369075983103526413312874111825280986187639666789857238976755804454398531674480929593495085910908022578588162186168569220898488151092856624464252846182177567315275450110156476599019448652780713614130094107949403314396778456030425407626563782380128677163514276154112588081705410103415621228249607536682626092489046599956773831727148614516392518493788264424755892150906744590644871608532126588459302723022274682581607039872227135652178435974862556717780287098619744015011460702322186983984744837687048378166227018824968959946720009433856350515510319031881448870960576879696842826342470658067027035367218878416142381058673949572235383609630389515571924188275671107346109561101725674527903614788548076194250411281723684553533588432064833831957465664956289531419789776116369722763178124702227632279186103241125853306682097701741678211603605732590451135881470084709615977779444879083382877156714579988511205168511927750947512999135131250754002189386706167911225935008507469621140089272634862788936095832870594258420933651923505945625860331578941961253396054498962219818720064440441610497333575479490730343297347921116678869068008348165112456241672948635964987803301058762399215610601557021290537587894035604086210119674101887849194730405665851892709583886789676138324047100473615463964350532749643764494066477263741662873388394452251530079094118237031474214657267695715666906599987589991066135060412865226705472859251415382816310155529497903266140676069899673986024530104866706690886015032967569673692449270990579602866103803336039506928517631260333049911061187060307810979854828973742343793237333881354079772666105779569538621554703670150539767514608594563821224912107471880314466846235411172928879207960650300885168975805838093324126119233189371893535743754448609963732434655372910252676235992782512696547635631589049279452536235316503986383458831253607644235568889110596410661414988468227893639152399502849477915984296023233978403531576369788609411502532529353387752067093003067103720991912454398909617588718522540701833334077369094199934352974569718285271066838806375874427970258001802651018755937363131108247655663882830262030601243078766509339744912985159578700481366416671614373298999793834409435859376053682833474672544016610148384926677025142410373799229962142597079341250190075260063126931624425436130383616465888531074528420284957892785177149153800059670007819493333738376291749788856864927973245307592872726842528045632081330429193425710403415839517890250640993005035168277377758189777605345572723787311048001658339414144500683667018413711177584563648650564959040435084285972676200716358298505508429135205984164429310237992035453729543010091402298172691471882649067376777382430373680808040712603559376867665370586962539435011230310265817900580044997656046288237565733486156013916426224408385024498702129766494469851940711653261163712709549193685518867306902985904924826617762315820822458175539367486739363710776573295834911501340468778913834156133216398037309657450268373756711145916102984066301621583388925689565351306906256071036779840116814911678889602659349646590822605663986772499230756593821603057957369089575934132247431140771327033914098163532228924300259062926563443451032864401592293302100063712645767830222784740898470994051513231104059104043529041624438225477137305057725842155262900177423351954197766925907685587864764310999808328048508999958488827746210654481056033227922601806865616360909569460921072214522199920705733616359083996302992990087801959964342411033454114498645348962516316164752744341074498954550234419021981494427487000344396870928947625476938354678271545559913728710695240507159855523209788345218652412150585541726952860389382462141059172844158662182955048217230636316579006350315262437826669467677435830612863147840279645595266854572219656106166178530321211515977282674528595687321100016588856583289794340857602890987725737862474738925443762664739508023593799189378272072626358650345254987785562065554096229628720155983909661033512217257133707934230779315754068761825520185595207914509402205663498721554745508968971197243170320268947732385149217925004222134443764274774256633004973713685578169053522889055608614117295142434999091125717128322226843286621693057633536205711861221599255977701459323623833196864180244237273631756874828403133194323967049371693288222905614839564051146320321144697154216975479128900018252459412647727884364796330304783156266065900592770540759227159739391632000959879784810573696456568182022809033744176883884649876699692995569477851447004909411482319322936754230743373303706267741056966285866978706324339859281461083919825386595890999038782873385615595172830416002892464210922727992229265053928169880290746146024045502953163047646525203224369222150431304445509771925703800587310684003651479886130081905096586800988298089531520975596561350890249650265595809201759092475163852817424746097902100367663287374720428494644560149444054731386403157500138659223986870513037392488168925076778690416903021732637208249690638435250555071650840768927261970893385432698565047629414516162255319137510230802145897627913509058467563573712790057052173351696303163768458872808505994611950408217852644168213691037607392373105509066295456099892500742583733717526712841296835365378029566477848658178411727253125370332350707101187365902311632519124172690172050714066351411609804327564936800766541771104859831329454987045525907886972760121991875321257072696381032133611310284244130260612296596256190735157945865594309973221537562293482979639155379631321378343346190491858520254664368429704978747406301807715039117750524074756701763781832864373875766171817552598730896728659870963908605926867506291650781144913598211926356722401318996592228698264588191324420203875505853041655518001597948651446638505050668439341027213665306692278631240533111136147549583373997635758974956034828593859489878249264771040834011691509242830780907276853087668196843512102719154907310670330185255958618357655025550184134650325169155363559903646814701812418575469653263912706946395227959300023127851000648269176015055602603666893213660805607968335063550520620534311817826681906011865050562062179405292386524418889120668208072742410492227841342973984046133564506351357565732341536926416888572472616071383576408285738239736801652806459123175668967464566194135620986773983911730712319468906918958884791326108855073558209798696217704818233956146493220088812828663944092596987876999221621743808109856536274996277963230297076738546743488037776096279222880864002169176627092184480310008426026513757725447826738380384613912056687909720541576678180826571647257181667374671963075552250026630832599696859406654363162353982578876899559784481849999134323453197259508165962128857022238604875595623825704554845445097049319000298313224284532372796489089825037096725507259017359501841575445770811507563138899882813840995409072231658493238902978750833295526200853567017530526208399627712364890099017504158910742192433418566575082318684592779136951940559193379349813831435284952306250885210399705872934666319321770472204545963884866654410459495488211608489551028700797220021930242775245479676702544420558936232069146337882540414359782144423189647286747235067224393725014190638041795868706309626816477374858845235202454650034606639127711332889358338227323830746025936790107658876371669933060232167159909274977742051443302880978955592573777794815463268469160785474114192562372482039645621163860572830167559502530159018531106963146422990733421990052158803294397720130774772158635197130453397876383901603766351963855491596615716656496631268056593652202716028059495534488453335843634808570161550974085029773129977386513762281926408420398567681099513915734706885047055437643590258612087864642340391530522833112522950617706766904013741938755135708665356158435847569963277520181308712046434930957501215958786831723715320134422401919949564785118466749263763057998519603587243041606262642942797487651917522772060912052941963847179071395521493347075611068676763826948867883992173374827324082272591136744105658666942340532180686487418767391594645501317883632663191282714041819563977346963437279882713581699433333997134633045079256243671035295676759483161550563098045162066063160379574227869995513928838071295574995510736758378626665411598220935250146791163955728014991394520934771591037728733616871799632544039937165167442177951519523978197496212698660270569032922426090109611862062640332960997200176156020163758902243515124720229671976161781194857105545996270878524276107443542241988752594161998901889067962911228314108601992544096264170282740127281271772382361930588578743611207074493199194238803889651235308586645125670711770229508223929598206926332706890076923847455241420718784147868754749180483174327658527899331280153890574483153940430294496480391460333933140994314179371662290441033481999129143161650740013875835771577108507367087361820559505302707699063205341789304760731446590098941374416672322156998242155131878241006686083844512475421201857015309402142681468335272673610588153754844698358203306594385469061096860513180548348406122542272623838195927882313517557779772605869947665742785238892121301527567266533624120178141397790019676641072673497595348491815603554103710442097391378458804853339215537272780994569743677817040057800424421026303977905933708806645215657553006882162478830290043392563550121309952830208145325552994115656315211674135988848446670460889546278383073011774193903654570610920335523211440511481646958421285767088930915980891154991138684731330466984699743004551138711881552139823582230982543086936023996681167397628147340259105209766712668930487763253704295631008287694506299374027426432827284930158419693556559009787509295746453007345159030897379946934948033288033000237854558545493070893460810751244014722624329500803598566064230329016560131130748050670174455929906542087540660244389717617315106238886618527944687661745199775349974888402377116474221539221885087000460069328470967917657349885632989844772903154814635211680408147613737663664880757220344260615515364373343060663222003041884758217423592273095048217809604508119557546126405469081984535125527272262375962225724221331329669680318472399620371327384402101459619933201961345749601580140786542698492759413586607783572818221442367634705791329557971501411299412780263427874942848559483127396029574643514341403541245253391583667563441461515377861898944780876358324661627562214713466341757845248231720940873239076628897797365899720312184053043526702387367901432527419748152839309528122627889782363621460492516314504984626627029957783925158000349597032441013273091100628591918612624778524707044428768338458695600899530119679188480287311836907565917371546808513497813980224179657106872960734000699620612171870496248303072648936963612328329367615670161840090127652643741398806811516250267177382123978552101951387593358034416389646253372261928667025072009450841438568758251725816025508818994894892339380372505289373357848273486557277475987451709411520249037058017365987174989857266708628574706940419268170682295231187630180832192513907868024763424205396211553623608228165449542562080380555292015249840788530721927649279822816599933180686909323053457909995831462137955965012897058571514510112445006877412470282933331821192336428275194907170303561608908303628959233976491108154759631094835911818276934849545551981296582485481857459914185459225296341844108683941447053101415690663211040578892516512672013051447301136540380911392751203242705339005858839002066420981206288254843509022007215165947905161869228530759011346693925688908432611926408532867604381731541954967114539337740048276282298674352021140055341415227709568195161880797144007737377585759962201728430543149195350651408173057321156214771821896425152180558431472537243560842752414912429493968869668053949364630719785518325026229276326364865745239805571233288945985423865248015691437623608344786397290321043469814139040372253353709505452929988260811494665081106168343202508079748516734449187581813559219137509983645863878108814014351296777471710954902417845058527799244414967828571789456498199350357561104644931327583086884676694458763615057302971485905941640485672106112274621535971036898723177051259688780307477016937598853166728402892555709353183218700885521096012444367154930125448455197066616224141945110654673127349988599605543663743116465773446643257388099040384109416705692832032413732623070298209524226107553480347212868918978029297339626174495496257496501282711278022605204499640110156606657154434288656386001513005636157346144210349222059026288474747890147464784079537616939214546159935847734644198401649845975331436330163956783055112873473722606577364340009099119641134376678403217403705132347371452532354866266048124330057511521228005357919387211848340059099887716498303087986349260677894044166162805332748579707572447250392684803074767697065664313823421672913228991907760379962783083279296777257985761829892134282001220880465724698825531821209440722175010355829441450442831503916844893723714755478288940233739567297713301899679596516057076149113084275123914711879276552290849552118203060071246451066788528434145129756490939950690049714061336761895496591695278815577003379598317512131588208972734028094576007263900499332066870811089485162810366743219883580342837571008696905488793579449250521712043478373414412000798553053584635996643048526310634099028039100908583968816713782613042082736554495765226141970640384013419242538206630611380464417686703657084826340006601864757805801483519695248346796554665707464032328656125839797374618441084207004281962221067019613559754560088465744437470991082210225669067609045233925511587984037399351025082441169461935132163330640817355309937522067093704893727540366229196420751047654036405096909332526305627033234714865709184432228145477201333606603358140199217668665769096965429886828532942193038811417272395040206527376643436844557384305463470658436658053281817338761689397277054956181126765854314638152791520048682698084603946962724714812899855700742534424197389026489613095881226493930824289283196456348745550854680596998824706655638624499295584779991749256407716744194294727786556997697866356769190638929662900691472043145284447169465804079176739576129503780956437440683916816158603817684028999432917012552640310314967110491467996665137425714694101124992333075279019678600363695005595466354715504985295740413352431446989206411029500119563546353583931144948076652955153405692382857035142371723949033613444455016036873656995230058873252762799662519385165426651044250999329239887356986148606425831205421377923589013260507258122421453555759785417798836290337579954735796361446816966546185650702135090389247684485722335797667945828272817684625232504956949559311297790639000638788492558582655493615011305151856802607590173073984125347226162240850031000641552184629695745405177032594481579486090324686195652942146585684157897578014578155796449764283901101603835062063474453780305922789978778521497050862103083886534678632967034238662730503876556902023337400094971417371291569151362334784761375301555552530123482721907793251394765213470387627130693262974663312424310669656848856440248826096546349777703155601162864953072313167811124979313255728675892261584060598944732069084248436334059010763600070095277448249448351786916353618712647996403289919657593384935605052535845907307356824359965362963168367119769239706029879710389195792940613958522597430773321199498536358103754219660253144652178948697487002234066095421632017102189485995621745808016958682506671040899204385162884534902854873518686721817742498801455785830535010379318831915757935650505334129424221502584162106762746574752390624616138238451666972935846656463458232313824335468503056267697428495567285329337579314900360525858292135582068270542603561735358610934536450197472531545858615957408120145532351674946288450009933493081572462233146829965922341333766725329307478112998114584117994854146769903181603830707417099484121798094562034517471874092784398543066446889477724345826577908164618425067400312290172672538576035941485168034521940578775901118892524761696371830695605407166784164798837762564316031489456276190836563189298279805845081434220415724553893793669542889630626101368387091430536732805935617744298083938554616837824315107159022572971102011212975996011647192316240118920656126496588998567962888331685287077015949549011124865197777009153707931377110408004792697963547961288622588026051719720814401751514612421083017427872951359923552508745821805695591708075041559567508884991901054914999338205888559448582845237761238680870278626332995637794113797744451401425648797485507023857589605018957464724115603406321444083671548624680854175965810527571716950946176395398618712328852605322694069047847188850720143962934071902292135915909891218123367626680884630089655217880767653445404653558146975638255559243676879320790906933880631659678192803733158998896340971694164492932289295712010560550891030990758214069686421814550951771935296566242610449546001244874997660487603489960757164623704625759029210827090786095946600300451645379730635251140683137812095261611276060644375357988859210146147079666365676254972952874428576870409006488522844124737622410295486457807710925817886138889610741554110575297886879153422412709872027662869731652181660219230224760033734701350488677397190869940384663765702754688763325234344182842959923496719193797195624214883710248276807687657690008805218063913729474246482979698163619341948873906258263527090493799137716756576776517545631459427836624421836571221944377134180347570185481654829332078500292617740480905343764298990967215266494661498361745437732585654349098968767319659740715493987025930533004548073508177459233773370907907399494406382057482967172222541690455177017321468462889188802428548425358095473930834242963229091663011480053581222975752559902752140997385749822871480816625782256517633762058991111969228872886583005511998928057104950042073011815997748533288401374943795926539638472564827003355841523219280836823195727908370894128971145381512109489684322098573415515484830069958086606238589294249900642353606300206011751294986156111520321408619620263054113046036342726450009323813673882255266003480555803495243467626298274718062374205676885733742673446039004095170203388395765512892851956520245426514464295926069092657327159437276537246254635524240351471073951032558306553989104801246111010176520315636019550204283446817863342665300172012997125106978340948028491379029212509864822382802998702601852248459583140648817800025352138389650376148622418434042990240292212536877994846954544541711252393697720314603224531667347961718957293014019805880676566693928253939262424926822814367290129376407016794476220503920236391224531990546488052527452726954009380903569953105760758374343341154772686070764044112895371858659556279221208213161417264754969026721610830891719884619831307715590366204797320765968262009730971785249223704977502658192825742872102886195610269645463533050742701671773508758222663396004086383310451713851853315570375999014034595611234848587153292844239486860217535572718755606476333774600305984762850393662825080913072952097788277245499872785269014130976701823007251369360926357582592483579306754268108299600269736975074413049706187529577339998576532491547205646249811797867803058668000591219093197480949367318006737406845560076428581003844102795345497323553854962205561173435863622523177127112419972037590598433823206569458231820446900606765144351703693439162068872561509111577422868878615417118139576561883622354754564227663883767676065409797681176336801402211886510324024445250521879315362122374098739268073132758505015918227461340780309276556546033107947641630473232776992389394984403036643037565265652193366486328713395712588965178593814810264683269221946055246205783175565092319507774890994516787879677158037545482119199156150703241682794967141389229756925304782235181125431060121598785327628997026244317558370197766853413435821594856296030960438501437804195455391976737177712972840315699374487220978791267501634917581088025927218266992028523984330357769357300858434668900835567110884867249081244094222694599680621731623857732182321175325219786402234800148578596434037516861751333162967584679984942367105846425970164106533775356464535087748529459588071968007815434778602702160988621101068807314466900864915621879242986227706317629479667952693861121285088758894069516024134375632606241581768051720330163564915281515281775824087838814889642314729607682392608251588244062382705360343445294898392591441900426414996973383331824544898658459903221354303588535333304809689238792344154515845084765307632536476616222390912355572235270564517414114525435824712676311017743842026459680707347204582339708644140470936518644903390458470118032893401107115871934650976250180256536809553531362213073750434694857200649317454163066295332296795062363743921375744433343113129367096512034635096031355245370327101581921506939807198182468251337312907135193054582304501257012308406473011955692365831810062662564877070158449816002926188535843983066074476759835149972088303016042840744535752350275115382281283804751209114666460142573516439507380379748003565794711857920276390019011952589512790825320936073388114919822798221436295634362951133547159921622894274926294219407537920410149086666610742794302819551041164893377543890766168035490170872197268474966170674909257491940008290557062890305840733139924050525780285392927328893646000761876948292123708903539603570618627780108702782273771668875658861945262672241768228387059879002830693230476242373961280686905968534734780851437569766910006328662769982644683704015247512106659601142584398591351645555244210379008106407486441019851089288588100241022143936839733274550359562298690456431688643271749665476687543310751950645306128524241478987759430449265049158923731611802956292886255027439404537614530554299461121603681891617825218324614738428733165108505920230158263938656874072488492643945022854775723741030433683479068811652258765253978614221164860390500025154309121735898786884000454118151237564484535661681403652433017167978448961891778140150733130208272854980257111529552658149016295158668364536764647488508464087489770136114790940087344225018090069964591302881731061223605085920882767510417889555531410558713249670757065557594148101128908354791219315289078159239199038961510563986389112792355298572651548778861478236736129799962023418270236216643128696459089044269898796075143051425339066028808660571106981503427516318353920375101857590415785702412790785037088799124519828342972485345001329981883896925166991713579620854898268310019096905189189242894975156336035127442541883959585963732747925727995331197071084780341832457480820192270111651696889553119531259742532328231903534602165405225835789568516332925475092609192213165335221462941020967760971114454074566733454753042694998507335478737955244459734339283682208481061861602026723952883839685703446041869428650751818914038923109333252596418954282983928400845353568663232538225719684803754795837320347111515981694526007587041586621875707559727352924379031178905515320665657874923933253570547568265582718536440744888835743126111253714332732620252964248376792260145352255143282033640159751905903709490366390244043047021614651064563507569814097780925779657485275026975967675422317800090182862709178739964590608489128223483092657675450652726925607202765854215313034816582911961892153880653477305416651391656295249986517586649591419811159768803744624579637527661835801632693501286379314853895607395138072614331808912306977098895172870761045610481924497358648465772794098288093145966282722303319945933779787658944259982524640737353173653962511338740952828693106894759019440309935781214037875716901515427316096478426115884405694504195879580746899389550077500844618209817696339912869535069944748633176040650464358185528254668599946843727160701529640988570363918670176106848817203492053293138583306289151305913982762853358526307626792131339917760274853502275870363053366512207842045217405197934086449347067417561915740804001084901804778709145988781539150257369765717501533483311082581540195346076243035099941781535530622977903899611205620353952832337344392373003747495572066501680637379061025399320354006518277842475825870282013721579832364808770723421253180222171673137140398646186672397827822565041119926325305232533853756439367371294227122088453669941547528067291187084659700364842018211803125665107627989057130949796565817144923721009816262038103227645479871566652198437677483207942325734105953780659997002338042950763945880154925431237700960281781968681367350737589081567737636793210210488182745223701268980343070808368661932980027681418744446513684732303545776822715394170031249820664982269912743238948590402526982779005309098406407846578151950917714575715367590122426497693104244813511023288143963570121617007987297555902175077766024442314225220052327980793115391122631760586553170572976179105048187970740550465829162846985423246853056655813894589441054919547795305084830061364293458418439485553860389786271932599224946379525516367387691836026444531509413992578467952524456336107644101976439726160741406781035312710634547908570347783449071057400146242385706217807390342760598901622920671973642418865391550358131710710309441285314235078357516590877881443878128058153656022358571899156330512628327170087927561454796448385882792885888820205711886087276977564858031838214964773738339009019296774612177176664575574816711717349473570158867855942471521682140911650136248439319418558200751346372357768973575188906912791145775322463226926793620353627866346072515071494867534569943621122865243320224961586599664830137319164099808214220891283350347714656462074062110870439430662866757956577287538403083801622285290132683021650713382549120870617750766889299890453737670905377940392961381860418752884083669306786744035518590591435946959768770637811392181664246345262242354956330544474266996849564388672467897413433742751676966826308550394078786712901117428048164031631919486742841590039522875968582613537630692553694907950566313405401132805729498272670859882229534031700608658968613503044772235088572699823612676812975423048276773330170303163408926044294776637412066970965424690273570300456609215107360937992987331987012127286545863164322817824838446960463439100185718345657679416808198261021537953174632639550206032909509096056089341225597370236649681404629110025672629772216663270272861462102695978144095677115884033481147992759662082510197778083403139248974360405460799050533670797324122704181315868021879207604411449278711413194684914178806226912777193624859295788082697580297107336459581793386671279777213554375696463829562730358622835648400648530842253855790659464677128160153344972042172360576959863491147299332070914947472854048810604790345616790780713597970172344352812369021209713933147941684272943425679742009342757716446484572596846814437020449854278762770442285139163985162050279068649969927679714439126402922447903987351103582004218546771363325969830871664689704163060169566679747467670425276666641541090666885154292627689737736690725479468882250257960365334798969239671422348674030781396149731012499805962489134544424324345520435778754274094772656540788968926649505959151496194530361783429728266316795191382663774434274715714479195706402405517284278995994802064596585205146216438132463841436769053292644790203130347637938962678608965465510066350165076103497865593858171142368181297879475844421577209387775930040705994914625737796457377317906563000116358141905080127084913033708815874351377106656787028479855567674692571583517025342615583200404211830771511442047934141019347379629806296517682110506701264548483993537908934478641092071336259278066437953951115198273389345741812372062635893793483722406811703081334557387650278809903821782710346041828404705464542937072761600582450061066472686631669886360357969614069908345734177291479620326310237603973106789347631969761467204010154938822382454067904155173640497878944193744280245202543286110233505395450618443816464512106266163769167072114305240197602209978435564915070711814034874268390329099351370957033269777541302731805658391804604203747694028787481737417981788599595255674511400672558272083421798488798514624380749297799546641766007197353026678593965040342431397800340204424062835790858594186890089194676262660144767037687082096672691598167162766109760207735638937135081712633058450948309458045080365041383671010964614455231575675587815904554082086862586004905142851268523963648456952921748484019790573242280709031558352247593575804587966260886211218246270419820922343080149210964546233322109038071752301910656784944708120934649316686142345376852592582298898246053288342595133589828531684603583648348144843444782453665531269047447737357803572752669750060535738643670484892791037792137071305137403389562754152296561612616158726187929137170145580152599454041780976459551775717639315405897624817451424781874166901147274190806421344025390863044235777771108730653347727567060820198170971528810804392641413112931162041044047265360474321751812389972313813694202766114222975995717588754962770522674546262011480777793567964623257525871030843337602472261050423797136660171564224647682007687587804195700083392520999632110292709467478391054074180763512939420316556703029070347802966317532624199325361342288677915537920014141402613193732705765746511148623186503864669005905248239103065241689741561284534820131223353588519597080619305012347719576682372683619929884560711535076759011119986224216719051474981198951431701701947821235348007463615035541631291711738793381467960142058184004501087047858107424267352031205223757015749193895934352501076820730165441535475532581502277406208929649117110099424488781825686310919161763271320896604390361280791924074192769694101699321233220097669094028131361146724977479741048457107947436889065472895992191705543678944926287583067388843850128258269996000779594324637900531013872850547745134025956021552175613655326271700254458220212759003974622671731578126734659665542269408075818267848785292580443940683694034547365269637896749340621589040335658352428056885867120172662053596585779227546894052455037243358812829118118747483001510747040562690670835001261056200704229943896419090785542083666510708367771703152540084223084689106326301017775432429382107163923445805224055177608150881040961838487691618726457170017779970627556124870639990440944761637043015797744314535966883496288408353391451710872627080078501800362211564591712493467321557857638648108177470059712747334669894552594132325612242723629685783732912858667064992632251294996808949208226621303119209818963851356714092308379602729964037283737510879316591693622398187917208442652446862294975618466540245088395875841600773159243624634537028677649673970995025531223606286715721110407773600012579096419474960881035072112618764867184376947507690462050236601903644432727892523829590988466782641146769163658641214019111933191376939250524533953749424250114453478249417464913506036437621937521469357443122430224316489099632218370714829358253067855979213948676840302047175575101682259160507417812392999141059245597176001383899972819377575401002820706059614199781341899253793018479498390891014584531122021414458101275301346625702357118109371430106992201124731277368119535982173389843604367054287944406240900651906297731941418699263218572410394692740967263354141693996533080153393355482968295403394654005560065213717108444794806003104004656747756436716386060975486656631573403671104318795220260395523925392120222302451053608549481774789086883128597119444006708095320865131510552381476145231419648486325542497928467156719872980748375528997217066723294947892937421925390104911331547599301144410676408568269245708657070469542717374457795190472625654103332128902545535217265645106945024062527542149974249337820264945625760771986870220420981892436142090541667042666642580592956607334007205406808080641250504065613798107553195454509491121148386602249964559915516480582254875442247217089824330152475761769069315465005348738954282039252757245642438173341156585256894853818847907210508913501365248348217804012695421197729359004534619508026449315404091738818549923191843900988352263424086698746936033854161336161985181248931337035171643320186744844042233233738136866732719277088568622633849879336199318226047555960758011323220787329565280371339737650414663231557243434449936167305650295567389761032107744348894085172200302358610408542628346001950915966340377618092490931854164746335435305834166730582911921618227006383807179658545914047316225309463053859228982701751010954373068895342117304424128055365120492855150109731199070379265473479421854574113413242367453974503796162048988012510645840227124858595146732007680908769319529300254623446136115063588347017031149320509021982051351212661185191593721975622463340559178372754390889522352642624617195133098835010198411011647617658092120849195271055666366701623169962511227441753231123351205452939719024062393572241154522975661512792828766581155079159310115086151069094762643546441221877342882270339679759752630500258058485211862152418385017033041313856966162535636019690889081747748667107343580720974773369499492936516528354469292665587552758903855672032301721234894107245329016681310363698479431931354454229603854987726318294541220945091634844574290008811853017907682983249186950478866312573730546539417478728955193079283365861722821182166635142115236011013827127469400919743099895142797064098376668931827460678039625415964000477155542931400553381766707146844354890381248131330369289858057145236749641536448403708069015820651606157112800878308625202904381657109755920143062227513264418693943924228974316629852709222934358103498355861503541587103512583286976586563075115796902051722689357519133393444373993898646139158056822504935538851483088603607612349958313362621282573061537522550987911490453854130847386727586043291806372962915642729976844207067590111385918642298251310104891499702123212635241637426138806555030609612992616329869131651473389285791637901179449098116003171798522542078743037850064007215275415471079757933120152531241687248622167248197567503187916536128540799582332869334199990243463778769326554363085987581496324971298051663907601128663187965820017878344847378827162816229548198361183674523071391961625778856907770855265029275257659779486240726803425870637624663118106494852056450362994835072964226110802521937145732158026479922825125309531679920053337740973214974965578425796683326352326835842554367708785900976643242384925968129455608573007729345447935219679760606906435783544213938493263186588044005320686734585372267749606229889484861089238763847971559402038091267482015640147645274886835983581336198308687466914264854429777941302155754955015492264259457138100999534468455754244435895157264896840914110241464068644372930752391103572673593686105263402694442614177325778722835970532166675051054213647510185461521814183429160152708423124200344451686081032634094975965991272464052369354035362985599234334349999598581179851344238691351976501458462312279231126456819982705996571178264314155074050869398759349161196845482563114093561650179316830927463741285866948197069922327967645425059849306386550557384451003026186451845318233099878360352523735212145727034838124850898518328019980948086063710632997592147886003349106916416343260961240545980218111644237581245250322284181305322666028950619141872562445051796461935747431776451990803197264050215962057270317928899310533019252502320476769356708381869601978206189844971923749547536661718812033126075213313732291677304905276228789145868897366471238134312423396982435955241022759396835021583662947522618829990394717048226232684364273746588157776281754019780084546858913782906793902492489414039716414687832422022371818366009023001889137597991886338040877809486781547730867892516189645382415024573958514661462337242037630190827325274157469309884269789493023260999454257569204637137973799367717699092279369660381860604457340763690062266550791287776160304804735812265638001554325104422351547638682167396281765188331955678367911479943642215668191965347486123435065625708510904710347614426618821916350399076006883579450202066310485018118799554254250241681681743376982749612021489926110901754958970596376643483199446460863330637439462576629086800596560420814012944530772934074267491817293311631938194874933782599432316536732253455530050548627850163254220257462369945204733535688032006166058434286358223940293156534393536454766235606071354482386170648033828341527317135088035145141658811306998218636440838069690204653053544648609995183034128465988602582693990826902856181757867057831193487940401300082035731215488781609804798221973642196979173752475814032275243216568103444855881199282006163982113661953244437177189270873320993531113700619918626920778629711294703970608382807359217701546639409025719128269597014176963685502163689019228854252651963147206866501617144309726009782808767797327668776141834716750216350221530455272262664942720907431343240265671672488089181225820465799256113246612623965132230550371110017437992258223394653095988248379164771659164126749079462777343437480318160943641665959177915036612544599966209453658658272297421397911984486641352551567822628108230988540114433574436163246135201661394531215769605275743429594841461462892065724388671209026429835800345164843028438056070649458013007349121368176087063166220987616718706215423234536741672296821042588941550441836040595534450321136791000422547078479348367890706402643776987989867337574348522390272125508247889896074748225576101838878712808707255727997017421430874906127999563215756041863717115851141083156472282574404564393567816230539098292385609983442567387055185406660459472856935532913270292155703848988090221598516610788609942498306415763633682134127292970528121205520198329804399138184006081311277804965371498045154310039393910769077795251207993188588508027883106861265276393524711368779759251123719309668328942121469316122695213161090697798290778883506096074702169242399117517497014483462139435742047152869219301315566147495677751398087065944284473761995968516024282394298379926891518454841419141511309257440183178527388730508404635303081598882592416841670922834500591249275194298936385187839118283675179228233750858249472086821822303327986770088629614037125779333831453357919470912044955632635270826416230541018741272391032786827116440527019029520715643555358063453824127896013133489849187187024883994854792900095438056774097314741713688436987953682715253098565138686782642419189981321790954339136176071693184558827693309469545226690552886220876623933861356438618149611806208956989384412526981608603799403617289085478033395232485628726822634187589618534947221439082236440375262818438255012006833581778738678653106064504092219254811081985472314741575262982471278584264093964800905513658532941716008530633015772611312404284038980861462256924377953482184851362934409525282339199793577902613544022819429921261051115942217257731281090105176097326521980085652982459155221615691196840381237315614640566069820199276936518780377146639641151863910405202668630110723132416566003398424092704695287247572180442258601466667533088908317062650849187056707824814849354611066257088856478270127988995402308826394207590092416620052166642956531638011131101061475248088856660226532669945265941493455796362756844198072296480350157033217078436340411659723177729206552849778031945758395110959893188101009917324058768562302732309186276677537720194508215119997389017674354029003981181856579111736214286753130142160058140662531001528578508893245757665767242176613786296671471194131367579789600640497644104593348069326116157242922509192201193065840321181448867923775228772548615388253586496820791193648233384178263354869080638079964331815059740418978205308573181227241277391425889000478972231467176661866188823464260080555843179606077480336818392656332231979478866435394839344064317329938531062215097778499918384058272729364893336416195228859716997459760434738395742407344148960558974979056595589945413929384339755079548592513703519814964142246519144061352912702413735178389481859768633142227202138856733323289635982961814248065876073222045528821713019732193209182803214834666456024069316904623857249823430800111172246558666208989569993676778298280857060671852022348973796693388245203527024973472338195890664693639454243793597914273130942249250802255721611552415004025043202992058808175688182474259576935734493374289533971443624638085602993640919869679936949474269338727563252393093662976841169226876593150200502907434559458213518083258527123713718178589892890918545188626662312962578480824770985620644114576099619852972537324461679988888582803352636118673806039176996181113218839398964318021551950926863915994872455726504101803179060307513684916568607229411339137975482372378292357195834074292045761510728631719577136395171129713771566383870981473156583949716781007326112420278138084381357931471695420577812792110618211129214208614149227183929812159378374655538091492068914674141963472550457143631375135224975306716626713307444711797264713269894259423444816914124567703724033022920412782400157874220519918776612926185833390408099647658771514082097703228647875219586451899294669011039896226401193133039239709138360414218150340316950984559406106105557612266770080544843022640408858251812203969723988439100398077571824143550211284077671119033001462984957379758539849155815163524688981698501589627275716270081949819186569646861443905729083233175978244351817086382540919937809913418920520497420651337358100493287126503614747937852457416169087768608007447898477375080989120144235475316584800182670029858871591352575753500741489708575696406445635142084514347397643483081229972017429701361468448892161845063640819617410832213465179654995896542604880297437885268040324905484726466529495038936869559309835714130178052844694243353113093640151270429485791786094386053125827083036926212386389081436632457291198755893765050012692449403382728720452122725361582190091120663163528876682840177283967252302471571607061736468660314267744815976150635136417013281317950903508358166629459723829301692906387162616444089660934500987243561845350928655932655272672011378123062085400089936841609864082328989719943849321591831414003000071747077212625201446279771464529724180003746321912892098677783432706591563395681313945016761270975414927668907094024945428734643578097238153480573229379320204898458959340057854674416681505913706539455589235626940723084543347553197509123121785912817063644793454620914129347587740293683775869897623802727730063867787528780428909537810586907167561130070653262876008800921301392976683615445059646401559823050473733965859369549304067075977067390983580865242861877538312091603592274087964259656472059513553616709465914697503907107260700518509001257860367727931801847473564354349026048134131406939127924773450900651714868833162667730158723684992948182314701294300417299526521650234357727737329936434720541726142698472170863868721443577108202223956877836663248239081210951459817511508685613968032788528018266726022498112944162245775729927301395607640258135691458965304976946809303654256958616209961577994320478121692949892463693352468685740756924819421059759168725686102984707240273800605231260771989540683110777183283274251488279154335106645359745291543741138823807236402745138182396260207255792503010979063659130901441044140802631413960961731197585749757965794416215810875478392481326165348402643116431206723304111705286376991570311704631288118990341351625480067662519423834824792250645403217183825471958070002769215419947989151479371664536357768238397230346545306397690023430870368872602672741750493451549615813437967908004739940335898256176064885457549694777038513880837960556912943865769780382539257594463985063760820619649885752652046399615912273069661686810578428331617097159523977687619304862379455507407521420292008859885688769022382546835748833897354490477808653703280698602098670369853151388180018208106156165272440443297442825950931849879904618062347898521602524118606696491759971891699115916103510953136302419194347388644173936824526326057324748452518412918211681556697074957494577654778658282822001407932881765245459256717422028131945115829387096241072855281543768604326978886781815052944156198323362085738965517500433695273902220524370244270882874947322933397529954941582568128130029472243896338990382686956372242329935671218026645424747266861337835110702119404055274868168561324485955891812131010986686227387340426036075970715316932968828397357666667651404433084241579678215765766544292497077585715315842281110776760905860677357047727272374719837130925909918377995294106909351134311866218844369499317678076580265311195230111136638684750726940070789741703216816864657145927991178277537022742154633581254888629911368134066830635514965576139972481227367674162323731135361196973599726290962242129264217900989732885168398446102119419263169237540680330486265185703033273657632205677008361698686546144931401788221677429127715360714350877619183131742557498080925400334194467734877956678033340325537118492786101803842138181725656016826574579939987910054577228343544846066449632026366186223938052417236587847363110181999123699164568743814147544619243539857396048485178867258079315498539749318127770458475189776928450256657779005755385531408188571539482418597564973292984285524465183128451158066406748961230240624019668390094650619585893508404270156712983062485882514777182046792018357457684530809944831160663063446399674419495998039598260091671249562721866595420003634428550267267093227602509260808982137556565540074905068736814748488000620163821721566586040110955672695281995795555603012744667113115447977484527849997450383546580389242269657833626726979854014840899252015780524215077155098402507664464121053100191260340765120133196544957740344864672944318607952019850408309373214651219867637958056267953644362293298952011392619380758568198826617464489564700505275056584015428587021820102338449988000125902918147654870017038926611693318621457093301637496003297309348912076349932815303436724408456951967324605251642374228211941527311295160265187320513647303954856172682050536419026013994109129212822119823723366101262445380700300701929275617137390179359472874351858812851775566060705640567880167845531682143726995963937245967615933115497374495213244955309770069957904135828048401086391432748104747805618012169082021902522704342502605607207709403441577998491719398754197480700324466114187332152134158677809590078274717288453783821271163391200122139539534885476966624112079496320232396602020225462151206037991370929577056973320374347523879246607676437327869420259022300544681687858633183720812573671325348698506869497662748855124419563790759276865562194205203370511651872191023554171511778945896062184754681164713635138090340507360650462763697673965517106873664641105904273722325216346949541885456229094890767949614751026594464241871691589219320067666467937883716840785703569602083001011774270981998944517827451701121134658831030801027654381678759979960893664366005359343671218037100304234512832718655148076428362878312983300483346712960365968472517299342589548529213229373393629172246531631557064054377934593382350868815360095939248255187134804922632417290014357041089557423297736222669603303478598540722366190698015272870523759574775558689747805838700132050058198207528045345381327426673583870550116817817099274895483906882227768458510822762926128012935523704054388009038751439883724612962545450220220479560535417007705912947972005412215284768457136706450922600122659501061424973850928153765518959620112602270769312626512643465834183033443437844898581424940146465312082037690675461136610400464966604366707584190640461906123554798980740177508134499421031606498580797730387623906433761631130241272154888771852816346865445520716687312094482127215063957511663707848589635817769048160621289399768960560176210186447072537661481639149497240852831002670606176443014356791223794930698241714065067844713112104920647950579689797553189700091981203349642773123009926536464839928090804834446966641995872958814638853460874205956468507093278423476845866445694001566955483718068404304276702985201063404000145207972135198119014953951227220840969453987409461310361437963209941051696424229466222824531216172330100030168294178932384963410320758775168855331487061225926644486217651667186027073617372564750953702022755758985396208582504387046170400972652784749616006697866182675687175689573661372432739271184078331388021178147184327311369545877720559324254636856181308749421846445820274497399951772966989260727490181477612385997270696571048072574123405113621484462204971554261785406992870255601929088085319698884927909432691808902130269143900011195722843629241358664629523767965899006099316840109766039538514587721296657603348557866490407981635444774813199460540231404788199630358678560126575354034902506904331363331528865726122027013492322787539459285458409620310326798241738460804709937105102931406422176530679165761853718007058669624693479213360452781859131108891663683782971801293146263386461483317560890529579347423870895995059518796044121329407174814145177532459001755953247699554401999884819704155298353041564661945916181078816671328963344083929077392430095969934296683569135120889819371320254711353439302176554816728624932504039132761763425905337182903546073449409455981128216467334495856334621689492861069458831618922402437157292167043370300063452041224558438725288264545052475897461164624319631124120973909388937329725837928053396644198251323987503535732373270279020523733116899033805903745195936870947275600469867205373865863322061444117297268386238018996189312432175194842517152577433594413989459977995348025216781831141719536972688325225258291157684388900393861583703028116985381599362459690282114848581722035898965186203056662877684616886589589990374663475803906162782515070132750819605548760345112199290432411100117554237571218308970740099992639384979031516580718252414247953909617254582076855270824523000208103430166727752640299193570857751613852849698963519653932578388086990621349038388266095037752018035503656394477872090424670517890190081884854661597668847020412134665916050758086654523246249589305160781615773032751656961317216646945445783263695458656365360302294383588225688121176397503200687888191322603788430200898427098656695059050986333800058131277664743773649964684150587521335053548906232572217011727819039752913379302994090173385032675391655689785920945468981117246603082317544666492686530805856781338823426091917429762567933683182433487366543938552684897322998144242780330003171653111325372333523308751220725577726291953268866766024940327760063661369259421268551137445126010436442721424704806478878962493352908333909207547959746325104966431576369404617169779231915186609888673842854080096830515089111719389714924103585979937829769543093314581476779325489232867066859654632509461639244971827621749580913676222856502167836734342940849910603495834028535138176277289899572032367949376807117441149577282503835094816626137525327460004457485409552933956314410015910448070282499757522685212323921373341416197415000421226543094409504429538064208396126734533310871885713166391262882478393990019277957066592222056074137748092994499438994895465364273409170607233244976940228036971787577891621239131765714813158043266200359856544328008717201247125700940344192646654758499371734457698902896863891359640693333025995449357238113380179296300354714015221594166810235499676115393892156073833837026630969964331864145959027826586584393353330475110100414782634923782785863280024762252360879403932893708891455878748969772984348006307581412903639337140694400354306235871729427808015135670705224699892577371943249486715933451363852534568805357518024531063313660758302011115463053680782433187693514571462210239458477901612219392239955222960784025052992112964111641875651648430820624596140656173924231226707589006070349440017380960159087291041974710708757940314572255659598985601859267689674727765380722251771212084800719999457383431753974708900037201042052858849001568454484158338167745043597500590802089390403707662018410599463887141084767779304642684049386867619145086180272469858052128332067771936526102833412059449230479831921717307758339099491503781379377001686677012179588691965143800900323749229228577155627645294419611346151316470948776203610708617794665637322402239147374774379614121089264243032840318055565924000523388993550888642234420136500205808502393007799654540039918888558786995251391263761539558630522961218003662427196898201002157831559720652832182684731561449267657483702367453650533868739240980470362101212832474743588125057678592981886182767287278626482864557665598259378883306082086496892768242310739034690362655403718591792457151842368197767635049304345148487688728893615847046640215745287778339941513618643083249235237627369268286791931254311266528185179611646383118228905111645739047602064815059688391940855022891266133070314403387248642453575649608483132102626208053601065501558871519214838214770399885696629177541585275087454874178305214436195759821499404847361009685634654385021004166776980689544627224799746970073453672604013782511137983601188178820875643873770577800652461343118244071887079663669994475172801416893535622670057003383688518383779004230090171850092787201438985461519114107635578070875017966229042493970626016461879008356236276590140067695310406804647823429233859018538445452630350660154788687452643909013090192465792704834968398927931120868116150696640230647143219285501817741631533153499205827391330171870118890588908256740602497860842654827740142163265903290973481988944001193762032053100176978949647826420788907683336251896499117353195015771096522483707960196974357508248309859502784934506307880121715601680336469552800414319986540772951510263416254202507562477100297101043704489951915231664408156708299451299279041682201868390263858318945616709834717756096970244466015679314184158219002307671174414137487846000692394011648137538434855523141175727903681175028010380940919723977282020856244398213151603216610972006857588615196428161754452764969928784845187829994645557955011937577646181390278489612771087782835112173284122592985941402511680723987082868503307260008784298264742590961956076717008906593518216313552488725665727748329603929602767330360185074208333599022691622138690098058811665458643711868940645009615115877570873607758458643336512388813369137847950251678493791443638571149174690372778767767962414961189283595017399840814311225699753938322277392826539026795607999553822329151404939531480853299629457625001413320322574948399709813320528388071724169467830927206114712375471002357005054337858472812874176172916312288508585484722843517264690954731871700888433772612762886811344367448698500350881596503584473271991822797623308389484148095401996920986102782437818670130755813863704636946382529333180178358547576297365979137106338874644411763225798371732507543138344832241721655168212830133308882118929779876026396560837422444184036665525018797804573822272306002404312930313157204003588015489697715437495488275851714582567915105189619547306285994264163216473319803058881738026358508681638799644137075191236358688833135659567323820043739035490660928730016853172302762742383298044229565563515471383738311404554871793002608536148606079935420635144559951203826020804869330895312939916598435083202621403867506158764450167669710048873961101257050532842505141960064206304890830830524192569857396141325286758727107136306349849028205782686408637462469886817974570198069390025921306092573077665339963535487599626832003481130814210808465241455600024629440497209453486887848293980792083362737164072882577674902592846345017579149173870092480762794973548562708463094891948693001919714623150635699439812816904653110838035906500128491604159376178665191591301499277023286912750716028483863740807027575730828988162615189815588712793915490148553003597954591387969642807634526830935448997350555150272787977956101466218373291308527681340354644439956556236931092676854081045464815451989525072197041437488296995549999232641826204387418376402019088176560986547385207772296329624564546793610897355428326435314007405736766978385261212470736039696729530300409350652980423366832904100063861793245326898615489945876511711580807226239428476817765388027970345429655181849756751006900059420993707081019694029936369124414786259468497671815635375284132083421571208231664351176176413156306423661780757510799862239708143413304312386178980188230715839253566222408409714781940845417000426111989618741690161907404692189539650877419333721108287487033469739686677034334758383202900854474075739553026014857855991675820123718709535135948762076838254906996508593995521632646841098584717385132271532817081138710641496385306640343301730289540463795316366222631131641404066699501955631198051199323014167550698013844545089593365580062604191564977058224462329785452390350329614958014891001669240635364671755325063387199940035484789048778413989034820919039988192307345448237521867910643133853969155651668698821530922755529288575113092369930261113887594597697392499671822200806726124467100101552321754258345864378930580841827375022011267755714957642885267155107507776809980547961100424238719629633073326045081431189628320064209519222008918243289513172237116093414563466190610406572572578746207377245506435119640843330437126792246562229954688494476960242099219377605024456828004768075623364404433845361704872687529533692842587948788166444469635619977303331496140652245101630544656663055792850087213654378316090849667212403665980929155632871385152131409576709382931274911790321955360930620125769443279130839386546375686912785144242498328567217394268274202632466727812606888168917589503188276192892474464503677912602936356059745265216564123444676028090432040113419380144872588518871162197978667075639650079973567266752845383541935155219628354585342464292561224561666371181258341521299437179082828458267103492435889417907762514451822789110877342257878027030006801245423727965475638863481858045002098014858034421029519312261573862982942619799092062006063871820178812209687009980302331871439606849511779874465435254808363903178654653126101219908192883490273035035787344689414192744933446549093816850543639945490402706932177720774286021597659171079188158084399201095447498497119221782322585142098852475777195912846047406528734474753112117523122522475372218545017849668241096127487945831407593183064101003048579593683284680646087812929571735136138400913652430257654450359157257233844186984375705545007683597376183787397011335679698754189141538672610782416032678817128083165552754328287033044420583934909023630185835142533967096587486796805923017060271663409032756232163528062953551238830099842368632877398799488406172324797002093103207207957511839456735237874514258826167563795564380687706563430265074795175937572701747543399938861884688492396682849737185331804608828050178430196168787935952485713281941146322571297761255516222527284190649933757631657246987634571884750759934587143258681424017781876277935586017112661994112021557698445259358378397443315576796196603757801426010029071378327664211224559814883174090584092060070019120356144419102002981059123683003581773753311190345855630569409963724249371142186690655175241756781771150613473757016261974557086706297032062855070934696348063201278937901466742309543968053257848629415068267685833180464059549133060757354302027575377089923972722999578140780328654795237789985122533165010892470912956215526168458520108270946929957436919864018112158634613107641346308303478843456456835481518022883914624899376940445180090628611349279567701322175150447561915838380939018075338839017847388801130242208366691397436749320066363284550413576782483715576375725583828754778534248663066072339717111001720709529744607799251957068185987665498866464431570043005445333792404865502020324227886744719029316936770853607610965193859907824565582596923815527057682837015259392132885618418228806478751094341856385649596444704352764987055469911339837580137970060459671117255012065029019325339202409133785614038199034926496166149331310464227193689153280002883498574728127930638537176339217489451361168518998167709740825206796116172431070635518450200411803792681459255450603577218889462770771361441568702453030071733846508489635981172705576295946623249721972070904950201147989866087754838323925084829217565194975822175866361729466190036078649181648658058315450866692457372152716082514533536892456199767600870493446118087039968741524563949616801046256209075567578160200428520140966294177802466253417643683541507996447807010194133314780252195596102397590023370053794519567472501718911263659671083331516665421154165141667051650851062448265132685894282293367377999161089001663900937703356098898570507821771413752450286849085682823943532820760299894291353489139400637827989631570035746511339883087333619397562646501552526236023114469195430010061939174722642750085517902313655135469869176526242169703122645764523197045165530225132431492222034516776455246807569378254634439851037187016929040222471899300931600357949432468877283591426847214457829110932135885811674236526359296992242067953004514509575877835020344146231105145369602825820580018578572634534401654480896174198824867226583494966342369442865690030151790745923075397358272574462116014431548797508368941570496724926440157755288186273732732273293101582529213791971308057705728699048363671936765081761408139017307833297980339391236504008983003814924460666898456038943771299380140791617249601335422685826575420545212895743354406348198282120973547589816248215461181399400016580205659230645683593813313935857296203668885832123441561100756178377317091118070048406077453963697597409938308198268266330849858409903918003509233795147631576587359730579322587500069518890425759557089689843708909640647082250797872335643905809750876864281113476791511343518364383782294017374618205459230357965331343618959845623394926079767889500222554519551008598621599622889848097924000209479384138513169183231329031404248480970668500056654222217777028853886811644282403298094089303283563294481401804105367132957987747292928564766358264470633996199289912309357077069559132791087443369110375177513765147139499773393286638432837692631024300531743935518559483226572109002497981700043238755188067967081144632602679216880719711916126251120557428448395441598502285651691020308048244429858449396846223518547410297410149187367461547579193571387317976941539026204218731316172266401778708625911945860384499330263141225204406955699257706980050352369136683053227134588780704893229274703614882059775208829276924102138717293206267960195760514748250037208353647019388882438261612920322262366389136638798644759765717856671787335866602869586377225440555593374144484895135486387315202554401994518890104491043021904090515041374709891306341206541850677427063734124734730999198098990682756429339616044670231275000831265589702789588210379592292716351798800501707740938601685773963697399820675475480987623599368910517065560725594577336912206420315332769653326720212149682642082274303591191158214747601398915412050557118793037485864578731991438066647212292789612948437624746391214977722112229253278668788064087439551077791554915269714757119977990216735015850511696598224444944004325645374123987668822875696739204554273187546663300778670514938863200640374559738944356313759340175348474533133522459604342073678872702390750123651931975881128944897787582213984469836085971329365706008342627460851536951693006395105274325701283861235675335045281588663111123766964030486839495134366757134255643455949884016604041860646988996943519017160856954180869601998404630782270969325989583722168950362140430074376673253862751166981206050275081390643916138391068330076055738615201355685010147147667370616186126538974324791419181186555719034556598897431307252225289261747517093313586569353301500538104831701796030595208943275472759954828844824173415420449215104230116954922462029455827023176628777548026807392185764118426550592337790161430052176680026939225331348795800937947778278178124954119584392858994956042306351970424145766061869726592843670221682375308465097162121998021662832989390126357245499660260173945111320563372003345152717138324915477383989017416973817258922250355378861631514303239316825726600711329866091954284825803597083368035607473859956245501021464163875940707150583007212866353880919226788535769866715677031887894156363874213507852442621647818582991163384240440885549893375888194199783122443472707104115084047128668945409605299143210513281509138659377849956131129114447858673308063185435468541947643806253438272617366827150666329168828792087221482579447585480921907086681116621027771520556190870286158399779495052838080401487469461036708968913540376248376188730993369123695207397398498253975853315124181918699499555988968773654354402889529717368891560457926271629193118407642729091071496448770461115795611456505920759547497686382589760609094684187447855046644928741077090902705047473559903261709607588228111990717529898870305811722904961983371282440212606306702444143498952052138186675973530005309948214256533028743320034663186649842462782302655523857144642918775644037095264516041787310126605629171687720748564620569394171220600446074602759016104610050802475458370538045328008156367934119942436531838220402122065031688229383098612842126804201960345984815108458833903983148334267621353306539817695086501749697664511211904450397618346326346971712816331746332003015811244094203515006424073691464235917757265768620200872848303271707574024361561687364207618052015391084605277363373976111078234856796302745280418438449980272578649772152224921973163015692906911357895804803154365446007321568794325975495293728541732229395585048400507548810344926687325876549581778743376561263455210918751038598663854190512837490196758087725325801956854083274948151317787712938199201736937787518849533119077876436242215238219168884736566993795699553197410940408959142378686583224145333969814462617386783062461538549908016566787536153138151977998720220485336314671259436298709741232461395500931889926228101229333864903032242379411828881678121517502821088836913859368553832934679247777167603725992290058593395498570068195578590897040454308059380003930972869890529834475265031842951592031407390833290057040132091521553882885921213798821070536495390303944053262513979550258164047525810594496011521046488632070870591876712370681302057843141658502562496968088815970878714544568499742867197114685609388226139710327222786429954656947846634142919650067167405792394277556036801146334036328773014508927200128822799624717346467419375520618812870963856506747973485203890866573254719374924458574505005244144935433764988138640228364579626611779197994060708680081123388813116066849665844611169012670068550373157930151687190438069147158095004148904492159517499815857563763902251233134130815754801425243641046871546854088485911603189460906226130735669855423361865348602067159726908889789952247522369025217983297443822314472683243413320897970427089447690432970466675864242022458524725967151158552777256159050804403648044361087615832563992853424986812405512951659323451859402732458746505963609646317974404775909165989400141315251612663455526863376149437954337836044617261703214845960544173273234616546050074235566664295458431833587468826854327207844854123630677877210725294171458895402032265797641376756100942190380136060053383720063142646774081307301510483255667380552623428703072313003065616244721917219844100880599796286420619045574699600890680500875592924549972426065240349280075647810052021037712076013233971859006810970656646881225029732885877272522752008266754626700956864679076237228796096403734019208607227769733719457137430088025676535439765979454353438507145596621625747287152003034368399347846807373076452569157229717063464309246117003698594495979824152123015211762209749408899153400774367605898954788136887749434633144512770785659500317748057497387618762317075096830856073872310487729743037428309399409732572695919798056249496170800176263890594501726227595086697776818704600686831951157472167514101443966376306603213938818023059505469720080758477826634880502168979047857026069817507667717672533765857689942541924653773797423983878563586952243094499311256375624152595199400908730692325879587967187975726423720021214163807699111293296955909587387122906658706263244612576258257466585170052164179741142374937032458368318565158680470742069720043293101807081701311439160559917563918690362461199280220690248810415483426839125228898497863148317910417740342226981431901554092018087494198829154263313567121809118028657684039827868707427841083604499154233623469384711759859589796975060407148246538368879071170047453805455836720081474408786868951489402828925823824413488791308703546853324840961106169652232887962131249491173319243579569868727899016220111687069855738158741351182517045728460243790266363406882147614807225668752063326015337107864278701160858074854039635919390480908364075590723469754491435465182250181233692213113604167031356791689507083908607643160083336248945952411906830740191659591987835376671222052204068684568946057153836536995035224433808313652347009013501656292749145423927289025247690649048504893726400925038738228570043049864710464636961733058764177551537060861263468084818254545139089449940771698697264950828633020525813986713563231854944905197197841362658181691705819618957291495895564171296530094124596196750676277578319311537584076078472967645185891469271536182839757269216805967243365389846317630027028724077653083188936510246842881426660750424922793159058559406787085409126566320190187805635924187881601100329302742470340862458116297267922788937741408781966283227920991110891689587405316860877842649203250222866067438869964817368183127395190331381364535310924217330555230798045316834318986674357755766809501779019410194346402550983128889973566707496713173172887432204483937594062887851732986803682083453144649906290659390320296645967694011294708922924562313173505326611722447899329324939417754878561452083058497560095622756846033456479144737511217839997203216763154884164688686198766086354371110924127296889300278641022173091917367163174667294514813744171652985833834137557373180247657227772283861334761110376174009060758986184494390693399364963294593894487529338293958352556090848758956486828495255857343440171933629886745493077032021334741329937124932351341649568896416444388703964021162437613096700394353545292614033646394357736887993570468462280095987729737910502761787623734879720923666475525470374988297421388901515682810183047575330929652922196599622226337018951821700901537626202910463680120267180643094072577988773099750812720120911409455915762782210074092932161083679650289812823626842288754680142314181877002163190093924290660430926923038017944391655464215320416885951999011989480481295064675178408411470436226101699820846691318218693719648896770342427509408689627794301894982858525031088922044931408685499512807300005261890313965516337776642958408444052342283965782562794064155895539708292721560754101204136110229053584436051031129014554827757802955757383871769254248270850800109048036894596716188310487515323417841533447675785870876989305896428683789484272608440566105881071979388429571155396677510374024187836314957623623387685645311538053695488908462104170538759339036897664692496128210191089711546230598543002985266375145501263132204163151784195937795455859825356297053656168198011005037825861075593084920633320328737471139892611006128096155158694313277244821287796450719958211613953597170161571670356105140363291872529924035912541679550202712501110779734811637812841948310543153610437020717155621724703706696850683530404167032074719100448161906825791148850915868150279064698149857380962686545446438940873463923932064300105783367967675389772852880879062723838243144522529888631257094169506879200324540517922051000667938069171680342988074424904553123544074847464123358322913674567025062641449498690724658024932609765608414424597012914035064768343526106102898011289744405393568385436988354298714934862794847656221454236175426828834584775748739597936880356416905025568199079998323039473276448126716273908904245202234803470357948570555014012706786081911914335924815680125740015019281880868288339095698596052089337490818002713652440401215495787592013996082596365220565670067658341396020124419797700721506420918646819920869294036953907856173945198466444361227719655574271585272882295331356483737083657405737831320130493310975704842193376363519026337231513319427382557144735444789205215892582553345735765859526197282449755234949253557642291245923502041590337501485573938237875654583425261497784412975596901795538921752958124838591072591186299737757597279200480087080590493584232425082995608492852899053150892506361348202124987999438352574554212791916670783908733638919239109493052853824839969819432007497709802796130372596581794297108030541651203665786991822018202519934340244542543147260175933581125106159211676665202194609416843606512401756828653773565223400374905828620413789899437650965223352052849658906134867577613575356481153173208598938932123458089073656623576637271900778957420517465615629408197961348945425576626872387421921226644628670214167913261084798325253853389257514835976830472656352501489541586746856881914007083826732726222513564582462453466412084947311134935541699411358351862522894051919657205305874334750456738407025461241832058148168206176830791409005331165885649412109937234915856637108843376259005675466918024589440948643955600775027981963701697930008868322946807417707651788885930818726162645246970625034249173279134153666441784225858614971030951072166931068957735654856811841735320006320993245534475058795178210277777092576789827267768730288815621201060290155759091272343438206805815594091051203874630960988419491382389273969276131764643956787536968279695985826210653378787937788139184523440953019409836499545632973542147168141668418126515293804733443929690981509594221814737622807174470728392332675540976535352374193738405262430554580862508992650218904478896869006109475192864693933118688443581898749057237462505912652105097972639495810624567144372544024298841316155590924131928584346889056804926761612010836691920162307281520013827400253980934140261566571153229099576484314352976701780166756430909720661888746734592768871870100426065207701804065533957820883287992589727839461844864387640056520504562729726858501748926424067834801355777911629799063998767756673709923353230593577083404677988631482840585786816928731363674619477490550451875453344437786900652863887816625649428317336736540019576019433688378688652770491671332463855085129314858139508874338008601743071898489116907997334752207440213254738246454474820999855980387479383113027088672629716491138169372941669695050260874002989758457705055514565991006554631173420096064679357236332701048353187146325607698753192882959456976774720311075160583533919281347944493522659887296031073946612969721307262670310744070100787679720016242586324087290905930570429892151538464574624810852152473837138068700666985680545974968960214607718865120790173821602080107991860004604861820892553610392390189861238033658905807898492245395168853013854004291160875590416134117922383801039960578757326579500599423037642145945269635957041905214241744953024795150865675999260531070301072490563129606369841415150506986456839599320602996857696793098763681394040070542218996988204722536337815943878267708132879248541362090705271428275312106253761220713945188016400046131911004661273064786330919949208693302270309182745278441667895899509706211869243697573568374638717595693008900079408634382779831972231885124672529055794272787263041553411010587599757584478706009067383817160115836232069960407142276836382565001299695515473114273099208182056258043435718860126391090073225506014225357121049930729215812115048992693907887827031150568470560015356946092402842555696399471979328135453052799192630242925844667236857046408161385144197014585977227707016586927054060935314464785157095504632956578405953094288214667434040090164501223897044221563637471892995886563814403579776829879001459463803781513872932938592588012322488851110139825750414687173205665876168303577526299282234859859246794499640006606319429184315572083509300912469639198353507576599750820948449219937053388302882767801867902482827425666966996122841281748918543639930942079977115508289888260982369070419527332879839313978339625272051615862653284025099363259811366712410253293965144097426270513261790315111565026496819905338350647243664625587762510946848990329658517931170431604224607469098481561500650573186747779943093090921871377448002466466299374242518955851707422923181708613204367897860382197016116812236465816369651236767818257458916321678643874537224030462695678642816123691043725584377936560240637675770219754085492824195721189932185201649919589027321237527298190554345139692949477602266994058043908497970591639583825172031987689340906634426218024281744545995582980430655742910091956635879621914752665580832394021923821873131435283167743398648916085096365850070710948355521216417811302255624894886700600093551858210054349322031399472039423622099126108327445636856015546787605081806974642032429231472668748963591782852765634713156053314626303550325297149988900391844430260046920035571429637471198706360924996823833023693683764022983712983157271795341947086026556322137208054677630226742636991608598561550703036332680854747542585135935509538103995020993775823882092390086773319979651858081360150860809393289142914534744819635551694191115478680390024355676075275585293865203546876427521455872215295200537880604358751187241640418113338808968361949519052691923402868615346262828778515469394726778809774981615402885070649061523853459118539624328617201813395912967380736051311900464104897134306803595054368163946119942194399070242511522802950543913429824105822428429309840376682995130718758828753431241828222046013442514197908783993255019804731412933991462073584548185774471106967885471041800886100295638502928371698449415133602139344692047876860186728156646328443641136692030025270612651960727375377739688657581327333204017499092766358162773653234563881874220283814124666079716915725966921181839235044868514860609545065612878104766710464262543692434671607427216744416727413547603823082940157126434142469704717374643916765285782330692677792276410648255606150067848982114887866427541810656581340811592185617114242707708117615621340637869636538729993527146219582139522870292875319268492623266412437696424547051481398809652164263317709663204522908160994427583859571140918254460727711652767844088864329618215683052131793581783417467166584104991822998181628594590799425729077361040217201256776996062814637536724812715495446915841766675399396152259422073002082937591205228423840358984452984678388212316545972365675206276672305155158824876633881068943548167037144832314872633182776362823025620969549463495986396846110149804043329465148176354470325734546438043570819995495480961345685383548674666322283776636705975971942938837053048224314942969977346604463192092573759276272568923607740057229892270281038209457614996639325781391527258285397760719678122146243544793397607083920513485918361336169605406678606771332401550454458072226196361299139846224428672642596348014947694464368580519785963350507653176126918091238511995918282984343772177063303204029673410336711005604231928098342170970467383100575265204540037284764008794569644118732426820536651076243428112282202125367977110797618831112722976144022883662840677235317246838521805997604589212713781273665729138056382355934181742078141831458240966410515186155949788394189777954165447513878133177004645456821144669276446977823726954314985797310157180139700957960708695661055503860320763915008205129532860926748716474997438662778777109923270767627152838307535694547259099476695567529218776041195014350627429454232980576844209479711183792560821388928037598651981178161001211292015139769800302838603110476262509177293409810798022071570757830335181751508300738776722458358427697053671906961571116611472151915672325850632380012533477158462792357146125124341299986860781208189035151575010640208793459450070419269518920480438621934164715698839356685316183468724436309204237867599355603763706005210692140101674199609893729717276133682931219515122209135352610822376441378361976563101572030379695782512977858523108107029906005993174142367360851648794805349285714373973346342331956066777850488427667884102255155267063900526404385764139332251348415988021659035177309945045241480759497609046784499857378058936187987179718469210443039484270732687260806722149554983800211268558936040865315402234010089680892223014364735142910093721576597649449332586054070456467795503455268895051938132823346405402174271840622298893102325479792929401043854160139523603474287416904903055608238098322507882240074183324764303472922481741943341011688885975671512265944589799342926795319935076343351514943417920255389068237092426430086194382558865782893314653141210762478589124635588344812142140075634386049113494790355603557237594596275418057167948361326640081574068649147608993943151675422291232821973018438789320937084283808648353319606189461798803254255464720220572348801114589126858497825475790661245644101736848347788250790910000228070172917191431334536834813808549291626630137816098831326540491220328878466950812078331812242909686630948634524069771142976245314167245548093249970301154207410771850091382403978001303551242269811825915858219015440781129308126751599374163927325313218102616925406818710984180190324481462669338223786409068881177915493647374631894272332073897777884257796724000779890678680514445458312448460286784632205551988291336328444366691729125550858167623284750520945878016732125126892124194275306944394268763494841273017166662305289757753724119703074661368235125299631189440571984508619590728945621086124369274182113316392880558140346177638356970610764672830765165260279918362818493399984498672311955890316917198585224240533481513572225957799651426996276869081685710141706930663759831679980222573669298182235169180071895463677533056445005246967414123950932666191850011674220491665640240561402465779037109607755976071677016971265373045192267250585898179176352361758884922421468243620772603159440566772145515747402872418725632901111885704649265458382107673356929196807531479958054585807809832477692556199756462556665967560982997847215819326720721137970937120626898741967724269275001233950434573145918314466104157292605265844859967520335504911725109637063461044641403944453393064581608776915608261071565277786501989863985599843278836296759962497656253462430841264396401781334214024625914476846203099645576870749316816097581401843767195097752968282025327237405532253511873866842238593084192253330187500926241585337899871944988717269834459663544945823267969627555112496566995346148774479645437228113729917429595553901305902447648129245553997777232732419621468769097343779479366000317498784601590476182259177101925256196058127625897247078898896548116182815974238165976398597222324600214761209606081618778166316443536052551686139752557622593673867654692101958118480464561202884410733581650789930722619869140901456272353267985416306221540998011113266313713754153460698958441876901686341943309932798374379341675269174960790026487893582598864781231178839311771628035861240573080155639865851121870475990139018618288844154917925384837863137873208560107362119719868072260053640267053088526021266913194844531870504745549788045962175548648495181244328349962027819883564002330913871536590202582315087877513607302571756745392338792491124073844273207628632022033430038436283229968084752323520771840064295098115135048615679980146899312671995434176842731764284408289130329589056239242265949925799953813794393889521039995007958874725881528023664295742676229878074592563613676326375798094118968211498056410149701488832286526620169925021115575429185010703119031032813286198952114867320078823354932054697269618957478317359745489208418916501793911190203477722651008305907178934740461723572402011727822726640963078979483888682861101129063545504051408871679024003590956666408571933085346581556529816605938039890870097049202574079262592460044587259419327708507903295468965162835185198536733687454397912044706521194751662890301910368892561687967165123718920678174822929300122225635682377975017320090023157781689957866834555403111274394862336667838108516496671486249291503534911093653398928161147493639075240647452458924463931417700373806603373097007971247821332648461180059562883369447297780551274120757186444230376524479181284059082825947266907530613345167492355332907971520790617927800132913756538258287738732312419765022252397433146551698299660864307019160821488237074223305280488497757016923122919362984054757798771285947209257944352593413204804980029996044280982385614988457572295413915559168319966184324290075075010336476590069831870199615468898681514065727859924114008258964648319532390716597038436187104165872492596858998558757628760318138388948388302799078341400462133908104128166612663165797504869265021559366210121423600617029467470324897252265391707751649151655470494669197849110134482713366892081344565530166411733950310024950124623500756757980685674821718467505827551883512997907476253029874497384123692461557466783163709149855268682051577343674178178305952342591827638307990576639148528983948421281461609905023438855228691623812172509370368573899513742771488100758548536965038300407638107472412639068715831804531633819065449332200070600040294877502136874705464088240432155502647640596221095347160889652313517021469698691081248472442004564101819283429505685428957610663421441558982896990935767438183126982715793404957826388375462426968150327394471293737596594276770684050274288514836768375951843709553520974413004996490955589679361333821679855220898539955442875589878669246621036653202079330509735015852427692714723775451269329782624017506783424554146755894433750264748238362054853223303905373571115559653292438459964469372582491187111334528008606922971635493666632654817643881336352640802239086125011848076565926983645589620698246052807398149475681050101236634188183261614432962502015799947251128094326031829089847470665224744177700330826445740901833940671321854645708034601651630931726166902832544269116110699976256880878776435627568110368787987413921891366924985592252202937078738643141037505025646536108634913708748412338801602233139786807515278828874401273008263111791245933961738811462762912535692543834070739395686298830410958965557483414398161914729601617477985543918916557981351954277363949580489775672232093254391907106834077220280259678441765308881331325383091768764757279384226035747230788792132633041352461943938533975828891085820973587671629473547299866780814838627015083099540270745476502210585598931043452176387949998816583605688125365777508162355760736868651792265785988328875709220848126839709661863155035142310450285319026273045322148757258706523112314090714942732993427341556616150625632921033555068522469735203073435850231291370910182579139573607797891276589557031431083613378626147256003749681061976320553790966034925767875822117549394890443251982740781959752573756490101887038614026311815329405307719416862673459009801883486603278245292513879872926628265834940083441018487383018721405284307810332110966746698074285586935626613422730623330719241373057518736222348232090594487592638237224918354363786510476826843769841464042816437659115442883087152075407359758305274849316983657906486169192386602108784123958288024838850139701592820216693971406834134525341780141378196701816062473996481234220016396685982486641722737870496822586050991987901595236247320002552817704093205760749603860018374654070671519407158679699920697826609276437430446739580077797109427015025276803360953361297483686045855574033939910615713959724211705124012311102219901300426739576786340676723312041442956620613744401536791601159600129070776515254680984366654927539468704145793384565671962982204258351133974265372863456321438770318713395423980593516205081022563665418902453273179972298622389053054998551459940103378943218231105652684296391683065895931632270146077037613363574441918125500413426014670852244398490502362927314013489002940342248334086908798421440768403305600754894575935173758775758126030321109888305317029293313156934642490623214357549350994270284484962112892917064168456274021348278913890278693328462811720344166938376250092234441226363455935154286593190718273463268941034646907239476551050987318642681807776125888813174321720198788306135820083127183967529264660664342328041502488233157862277303182756935484164927874055750300150320932569389749299010991490250609921171372979659810215907783496554983641355969277670339361244596709144985532330186637215103384637668798662123200809784496339471206492913886088928950000653519485492163161187570146937427019647032216544776410735922311557029973130481611350977846994899794333805518298533663988259678853457965724833449666189078728925074560077993696470721670349722318831036472776607343051646636404468369177634202160948505195599020533396975226879269951963310239451360990970595065825011539797775904377874922060397616735868480772441939836020523630254585464413134113759201686353697469181263074860917498810010756498793314127782922400814111244563651981707810117095831025160525338655355534141523145710570716463022279098580583104445241219424195033837323651485884764871480655775209025901003131174750293575783544812055854562049590179525748335269762832444757400383011371150490717256675141981234856175885126538379986299144937212943636526146434872608850975126995384438371132324870522247585419099974948330452033735481473706805566405902284434619566665890747695066249606774964887176389146530780109197764805746095255402965111039653680878767743079623587850136699531330253909496719041674164206940557399621325577071621144458099945058363173058888098240668071440259969606546383431858412873551294196783942359974862203394267100937619539490676516406625036582865645807983326222006701494018079199135169429254990434421651201666410609102645125677339901337516139663399332980886572723435848860904511594419651885077979173776758857843654837809812759188258872859071886213014337734702504503584553243376483240977692870069081991865613470568442290099038944074793023194898198268539430105841146244021070414951166888056662672968481826847637160618468296931330934883219220063576737886077230158290852695347909766753414013822799394017610991467402628230852813585187536764029359809125260486172265786672409296633283391537197016321220344229208829291544323190194828620844093311422330947105330679478073184027182517468573727238332285802779753235837635960877912420579081076150438255720669853496599320799543269167354759695750419124001457480572209302922550041320878094244143669861745998541997625729445731973968497672602071354770697483621055756969324867422106400166421704812767346175690150863598170261202894601202605757647030221975382611579364760016561398860383289082667303396937976344737838063509246656195732046132860875632029829439879455073020442272724103014880882613370882583337451290438766925239055344405420170887304358270225070112519147577451121218539028782244679918825465081672558232139730066202564770091949497634352577573711946822094252954511433036439263315290500185121316141379729826066815803570591085014647460666590888834033341193400657081825243583440695478761006228270728265046652819233846295440705312831884589931742635196378653787260444961899614036915146059455900833251278411824412463061963159127209466169912832587960691019435038701745391275896234195841791369833124404790411734562899560415855766004897210757934983450734193337594903499130496142144656259439716433187376329334805956852938326232300534326424850840004888868563855174215983298547190457070239463629102616235446632445401742810791261339722842784795031258777333789978367566056540084199927894198349620383831854585205284125258303347407939911203218702615504608503577498207364374971095419597994987142616708648469297945359059938972438197080157215998206873303470392432449245916086897265689655432892568801443919096139820621456045662524944813326867922226589760797616844359850011407248940329533611935442499920202575067777140594594290146239464637577258581118793298147467623186646557537230217170314782139597633536904933804893509292324208463027469394011112162686499605644106543618852202201398573339426779711065309217891313763204111240935721062290652900473574630534084945306529598781549771660695397971424105982056719967616193526724947049289670163074310585458882214854968418866691202711525973142268152882904914123839896556652578024483404882842310823954778318108614018977018546036360997101229358587017434231988414753850857104882905422827803851857054628007000022395475952562843962801577666655955598843396177666137035094318803404445539253726333922006871401995303384936820436795661818926118096792938591863199955465801182542314611069092717089659807813674021096286792442732629761713877397178244694553697427819470838365496257925911936097471328131705600737063495011506488103002932438956521208054506816867301977312426932614784065518071526784144779077484304123689828465135277989232752575433836245284481239743428163995556191879583970634007080533090154547951583453049200045989905465691986292880556658398239948241184667469469908021563182699486036658686615701940411470067163741964101137680453395718625740987745974014724253363400583154722819634865556920807436674451658063652555529597704187588863708952433420251412123626237949097849971419509900573307839505049034315016137073925918818726198368773663052129672495371830998931902520297732821686664111573047706749978909288206409249091491842311102978076019122562624448533196306999938764106594221977999203264551534114775179632000936911234071889814320941723291467873982434023610117834958307613336555136098891031441576044353686757728306641649676020071497656744012474519961959405198127364582967553923882510402453325820898648162368438489602046457677982673325079066901497369711944476177776236691882516218189670451374008340652608228501986290727966361510411662769168571744895313912945597331870828593944683319859002240275014361919014357107822367913223343358397023723983380335920332671770023795810023559389575416609097616156509587712012239012740776527905235017579633384553765804097266592588451845448074135034822046319646261186691632970217064059832077072377196330339759636493923499141769326999538721857940945253626506759442263921752593549879154114864640344220441768998790631322888558838571817714726316420618036055868525067817403616037767951726523045034733969771024940346870617409084196434722691596310335403175361542000234742006744773639808019664874593751753028517206080823886873756657414629409343850125745027029755567466362472198906333895599324758895908061719036842141458200102666774641510373366518301869739183477461186809384852073121203774420327041340528061982499471997421057294125925400965211112255158149907207241078682598424777584514159555417937022405913070254575372063893528694181065766338284785288593194404096975543824761558694150592493790626312890967327318533720572432387195155894910617102298400317357763390358075525023365302054153485705130446656577466771853294106853313811363762413819492656919048205931184472382443382375660771907387001657141899040485891835186100891478451493180524727634331664423339820915744000814194207507304307030649563358545450007455915920591156193469198855359138275125519709382163142276329516589706220394448370598731965332839683036736462605415139212279257368920814856949194246648305363081956336350309546104518439112539186849541845627067112062403165468700857024269219940610569722612793405983742021216167324666485160646129156729056204683130911197717509504878652937665483947961270282149213420769636251581244106765336402542825854264359228797841077181896185500110452725584911427601410993758771925964972640771649371120457285528483708790998441873326607524950360523129226818246215973606243549034840945483423239330897255265057999468718436732713043767685292033963435744142110937963336796908194116678703509582001700843215871066224684228034327486844654551556456049417080763346121786713179022332724875373648355211249711749352470125599709280793956633445071069893809943463392241304173942172637830968874658386676357015729275413603614414298341960999127122433352670135053035293686176565454765971780559888886205031694254622275478415832719799412492940666474836956071655753347146897692899914210128930772509334605415348134513291900185630308623772616836975483477887869774358233633228207225618386184700046979140993899244708697050085024847823235644926163656150626985546576799267732844559958837234977221046563735174177356552661175694507679416561159905551264723874982855337335438917257567434442461247107216937587919437129336277626363463019392660320344030753773453230413325229136160122010845533700339837644428906497193669875365478266106389174785783425788771023499577454056588451722894164262307368179461011240223388021809625366715419197679691684883379311485607759191071011999560702557893931567891153164621820127612256385934282195525615081029613155618447715427693136653701302132232968870415763919772627518484833701281960927569149970886971305834933175552297094113434038999939024635392324278459999453050993229243238511791989860340942631391163770845035920937042937742242572994800082252123032303600220919297696726374872611250823643196143418760815181257378410126507904456944216378389802116387497906013300225179407742910363736178170300612611894726888600809085934716527110123473749290369071954571488980404589251394869508894140117369987706102008733504439061371414818800564962064317123340460262717628987178457881857094151242303262290139448666667186180425702579807735142668877524511372568339555521609840474149394516425570767255766826606802681544011593128759454239386513819086035680521063016038371252612592966195504037977731515065323529355470594919715150538737639114280442011381891822839871450862642853239520721509447000844884408971472701717224967103826166209044686792986103658198229861711284042753312251469817269923298223022909123920044832625069831269120020658078080729583724988423505728402197086737188019547131559398155546857955570171406541662573686435414206227948175847970704996278827278288938017982937019879141889282705908967980741930694686122091671662988632218003230947706620751281591268195056707716870516318672665179573667997125948897841516240309229645631458323162729115662664812827029694503622700126237643998410128392401461580238280254665798124005106724279258676676551436774970896645959103459337650439721270772783379397658077984137949911742626173549027838684416101631203477780710701364399379503396116566453336776027925730031047049302726247149787048824774989149746972588886184514636833996567887979007938749939616063185667341766724193126022827626236647619203550613955329748013026645473930887341498582975510141782331767948441871105820040005928491676058695661268913483748416030142051953755755558233232919088543745099704856165024067806014572235552114097916997220034144578772647485952784632560906774614534048330308250917898659083975703963637497312030382645350947070832297479133269321132444320049987718624389198897013128464451844844544854325221230936580989087904830675082748830583739786584869627481805965578386996020732497537601741755752100111258124492022395554511382694144625351037249887297313032523828644750334859980238407428375967267203881951192255725230842060669395791398710006182614209680921127594662896537181412343641047283508254547461243895510430191441371927738966876941278053284358678357316145185559356423077076281368995856440703102404670110529453582164194209696883834499321287790253917399668888921741810733222758836470544783148065601323904538737181658565794632079465860815824837466309244208534374848299826906612364476424896893909106108392617729413730892284300151146275581684562534432796853440325221635455710321300797595447887870349258136170374407848286178897037353334364738498905926569854315165768445129342580460244592804115768271542436467539250939296529601252614302087661913587028305017379579767221160720637761834304973607522858543713698406852563671405475093489870177856296600713070321300656122935973612912943195102747829433538604595400034232859699587921370523221647621427589976266149107594670385682808783014181947300699032696028311990204102224011048452759281760692361709891616152278837412251525241316349681236046345891903212296961929082552524373193796033552409543827040177723007121977982075037918949051127327145926295963262140251161307941823095161710442586261558728759259610596896403219627789558226250259797826090204308389295011952210614111171732262524082181294548684664225495142498977840926096795505248374939616024021880395781263230961605138661341709371611078462616658887506507933545211000142742079486599134868811167542631205866534436203595384665501608230888503130558753077223710780942467451489613473036271160365897321273869075692152059962272371179645434990326158839044947353538049906034179939239410919796210862840142267770722039589454197839907088202985941718706884354253360659138381919907648161516932113654445621761811966007550523695326164012130480376561343802250593316933002528571771850642493452365662546423576339589660490754310222002238222816425590049488788495498881728243142117961396183324575105883667726076708808502120151096587674424571776200619885199688655528305323440570486616641344606841555189101873977541036121977100276382082899472357326985607895202509079553169267691198514097828262198730917925132370203711080708483820737793815430663885210663166370885119891457376891470221373239676467198109789835856320063878456920663212925298826849178637177700144557045014279387991890578411339801395010145434482157610168560891055365709615332772962933377222683613998271903501020650516215418735436361445274158185883596061476691654777091453901899631836458337605956705450469848649137516211183162485751382014466389818696423281922004067492927296362080602205715269935632468902210088670713295228402682691465629932494881594182920065940644539214314667452043206985476847971052734044675928044581178493212356323186196698722642511541813522676607783926716989568381292679483363420567712288772240300535429930962188486336222133885344069581078047000428209626412664477292185584090839177588437603481666494063452794645329567842030412196971067260087104536945901870518760958553869597800585186548375287174128816164605211468401323318252303879176139724365114208085166914733826750811629297591479293699690307670154130209819973806111631512576642307514038096866796143070954038340249993839548328841355916487684234899262597445805876104249463108957950478603883184203860279340645307360110220874287757007020992100629872557645471700081412859112472165406288561807747870102473051898991787594388054118551838770238392337825766961653991525140020339578860976066484063420857509969627100378397350336506504760882046335357087576448425376482991798176532235926788196736874177341467061611521532049255961472192535048859191070288473883630188334150553375850890030189875705317972082791247757691888834101124476595376328127215123604972334914169200704956875418908420333019174170314412643746537495228910813301000814717106617353130359799234063760384652009931146901469272463478921098203595481026636259002923859881997177607414802422522196501163700733383898374138930739454099691598196469838995653285119618348376076995412331476899793146779485136231655915454476699440692417368780880590442392766317670809351358586982910191050898126003972223865401617927989929844413538589015252446813372003987980854894877901791200060302663012562547532690559247885787138496577301020981381762575231388514849390643452775693521562120524112790483634025839423726313898324626459856975030742482001736479391460514315943172201277154945898347028668279578856101405467303616889140254911508092013466665370270367037757395197640873799813528032984889512912550987560524880964060997598237873544773560589314807505425978301519832997428260421149956965912865415211599097912087496683122436818209135500983056355779082559419697208421930873028143105984955643527502132945022582217439651141953916323827903912685751749281115462640970948359288139175701000559517430854484170235781367542463388884164104739679647665994590911013779240817481125961597429963385391180595394102414505852543123894221448414349973671606263283387983867953817881517877628644815606494147586287892997208367806208916732310339683537497439853158984468845126680303047311931091769659984731928327937816087414772553644915789455692531222287041864607496574009847916327578936390428477127615522688335366932824013842095987833721116454582203450807309375435154602252636587075088458755968805466223261870032363191387294467479547276527784701535300255003472352673164243330839170514067344680095401119589496564811330642299341205765837141126050557285666202266896758699555675496715477314435074189921182262614365598047789177468069191982889855832737094727653375567272213536194970781650892140544827422834070071600427225591680437226659762418536486237341348233205630647728114157178104995606625035246417282536997155063791159754641001185540217990672334483037599842848732706364412572620574714400304920748115398413813202195918318042350406187741605869430653698652059329051262564930790604395546623851044743187492567623351446117283073445772280965635319455356258901837122291370528228560663769889926177593884685137082261852996453593398487326407442346773965832264458149435465004439054603380962576379933834686877280328578586466809351522521375472708777375554974830705632201792376072901187207656227937995456513263326052555853225202547901879800565795275027335293849173272740137827915783749084622695812803827492993289981089522565979728388795826666142477521781184500937754161308011050528185727261314017400522941529910580118735186804111758074537718607819563519749855167838792683774690795107259574565367465793318019372714247334559101084874589742247887098414514013093526803921228153517649849443653475030396367520113326717702709631995279561136427100113591885000472502299243886568851250002106383824254618686161919003046948337780310215574629353645367230618465984568852640932801569459775620864348982089378130023312059583746126361912207602055277417855360403440207513949976302100611693553394701754508610352084705981044452978870240483122617036535727111712930445676010847193716308409820702811425654014541969176955321575993897342448377195914625935680027291950262839100771770996547160388332716003537655791095694452063440282787576160697237510485320902079961055498227745153460704936356994524609216168056231276901482766393573816360553484662199578560427678507750675084108296612993101716756048214409286834569740046738675983751839796794026202994850044557060599804204024100534798602302055880651839521766735044590128943580690037055529044149206618443297719465317855680542664444271420504578884917953818740146596725122635997659106359295974564967649580085493953480995493454201336021920049029487374507319147643749222556761156613405431935340659806296749969770082864035208942582807661941841194950593933950651896246482940479689376117347603601010558662694052493205671869206949522810454775531058664851345283937145595018500377058184772028150433449988592914769733668343354921797551860679910483107678354782370412459517525307863417380316655088883390493534828642125812137912167051667070639220996151876937960601743282899922005761164154468233614582196467864956309507581847283148740891125910059821533816125784629795508235457601712049278314373923370942270346712455192798328004174625556480014274380930006350005827254817269592888975530567214161248125374076066991613292203254912426096414524476681610055759408558058969457766872479082001156546967395410669152352355676004430660377076554747224266529722624275245275937360604906001669627569407228366625078117379837211573997679685463725460188249854071347757647820491335041771504970247400911825350939190039121984747242417126138123109345906606450403328789349180224523090456795755513255983928768226920143326931023197785262612225013373267515872895033046612937845514376606078813566705807475229627957908787834868528060079082183990235942201104907738941928301392420114989969222329707528002697182269693976040757024172638343113695114233228077405458395175674238527908500281509336785855467638159603452937722749211780475211836885031985025495903697507854458145103086509796342870459926113300438442308253974450426758899111319910749961809980293221741081161719745036023887381319724848671483796077551117970931718687077470714322647025462152627085769368293310524629471259401471342799444979943434625340320034299704685105161492110405693756356752464305459283151915934287860655155146824953593988900365678032229058857942108607487328980910498140646898374045732747913452439912075036835287968740479782440983016090470818969305304311853906985773251362809189357106581821835376539351990848772809282253172607060584168121186701992055206170849084099202888632669252165087367902161069167947606389405622864889595367618553027929458211146439672100281976611809853629081335785402824781161991205814671562271042491705033862575445416232435386077610350785518866970570754849082629961861028998641936522674038486927837603898199614224288533063591467180241798644107529834606482792857784427958194597669558180762003188555574695015012788836080439239530455872742726113222391121769292356393146537906440115544357783207177185155938453920006110450040264908214286337016247040668004387804211220419233298575741432617397216672264698250557424057620986433163618613591900607073634777416507133020656366001217202426853451673376194340867335724931907031697431098823090363070448456885758847332158846568040899600672760770708606218018611696359007401849010676874642845080377798497840060301710685501120109133514512838824001985330408306275801085523010126216975285844867305966630090904695238174890814422057335082785161911258975153261507102525746018760689821326389672599409028484314799074859981180300643705728057755678759931090298184801111420698032288775298836829668195432281527019552588513987209581689180738259025051868723498744538919551908420868122819374162656422220254502801981864394206954168344637193812348247856802886287649520720417906636207480389094817184648465677087955029018622325101021922957982363610679903288261057374163681470541912527574019969155701081331450660565659939934495004768850539274670083401150928965685869743638570714252889237606733863533781902243496335588289094077263648813106743126997463816523365450380916702969466620017817394494464663859667334581296658986106973942480956931762900221235033995200227072158749217988192652076082821797183096298654786289498162241919070483288684355210869260055241126769998711304850769700580211658925875807325286622602949494784693585418067526724863673369820372642873790506589908746163461332469509794932670817472204558175787091698784213263144745066931200292333663063572831343561117130393333223412702095505778328594657284473855313281289594238773519495702472594455658602119098875420372875591626043094368740093713493168976071467234447615665407568019251158373051999574154980382926944381057353665933594776527332304712949876883978603292167591098073956910095577428200943872245732958188646450357972669052243179728935039940652240030547986074188632218197006279897399115759608622226059921828038048435407027592253132768589627282626364457225346938226881487913576091401529478286108887567417768504996806169544991741538965364371648866739852033545105298828925391694208218270053199744044138225224841943847282402969120346865228027979491854670066043772571320439460718391607204852402812289618441393151387747035788804420454461573484193510927858775995243626183833836041837286400885473905712632635273640378940660191226420497394098549900953882373873765580899152346068360188224672923919715699892417438749636061820118210208788797709151506486216391422316272249588724099385594764082315789757082039125394120280613044077892114985821423770561138731094576649597326275583615712310423912090150892185314586108051940594766089122366113949683836712933911819681357822672507418388316333899992339351169472933184528565003189146968339694119127754510496973442838482645916081709684533741934521278507453887274229150032739509972697890566646470040153201596032382314337829401330306946015389237729667661163026955985180106682655612927499977121381503279309444318751604031073943759781111072825645006541620635356527639111710676567970700964910959683423405477001645285430941489122126459190847907641482187521195647648168738895357740538264569716677311793209185512880915713013956411997791565431095241540196236285450582656406389854512055459426373562913480232234129401431913451721103981597078117075211442231280355006123260076660022345403230729431973418232326792018538158668970168102327732432253766270330060935770905784596461836969237148155179375284842740529237912968732595482218723082953675487765500479934841881566396626331548115350907610503447248121071091668760605599641738985541417472388483480434756254594586474398783016430570094235128623071578032862399788672470174120399266350311226813958943358581721581438090548959715505219805227775921535471940188619407088205892956610742067723322323941718754018059037165270494557748037910250543294642222616293726963488385735736675669782978602552876182076798442303426839068509723539587663180108519336290009969575783820975761171938647786533437478274123384021097882549426962279523133826721122851898491132644160927432178511817887453579226307767875768920543639197212890162424184327280984507328785926537007982603782829561041815615241268545219654739154052177569896100198097636463692984917708890085005357672631868268016951480616921773405578675302546404182001707308496328015997689578615808156589590791160448959780309038897118579698958473796734916603480736139401033857469196507227078215109420096817810855266640663335788900064316884733376608729911236265215931969141721118349269590242385655529712423071773082598408674254949577701934085867556700379285523700141993678974514823819441755558922368233071262208798161207458249353330277039488029267550276844550305145698997988192030604101503272264263655374140347156403059924343534036155285980023184289923608962408566421822869665041238224923275533341205215629939489422079154653557286977114437079362643280900915709587073063678295308733596276384605125832699329682251672381013694172555513285953559697398730357670866451829185672915181138904487351497048902958515957543127132389407143682209962494125857951925202709884426914280866009101070485545228744400720810617225966623593309383297483694461754665472621011001461822222996135568707795782446380052829976583598319073024227291780064738734979779365054176879482100603127072051862140240009210399853758372954789011415571180624884526692177626673269218618018143811443908772786756475389362311128059814709263354125879983503653177290848753511091667581710850631764045132770415185425941126776950372865638491435424494730486807871076061276303847066651415570209096942123671694174273852289814806526060885323636008253268421824084324894970998617918262953662002597043505525992285344181041208081158463435685538888052826332405719615369197886129282187644005582321297663921720754113297624767893748245422943211690100444253195258263309169897608135849912639499649166292639761092388883240674109404812384986633570853755698962315019212983059507139224194515517537857907427065774555017675276755894934547247571048055155634848616510967611885453173554722460132894072699750786656466133286826480314155932024615992367977112415771951075833842177065111175167492243420750028089124309931730663950352665283112799213098712649569001717895167875942650017545569091658226914794576029996661696068651225672436615804658805799609747727589977490726422883888673645527661703242058164016343210070971908386046548097067908491849491636916292403515146872232715883625385883466100032236274792011447651830472723965031842341984126737740279315776663537295058919658075703345957794887330340795299261229379441156481804937849946011719730753301439827139859419042775295784386378518616900306030266309615064059253125453793867535529225069435000112326933479673873190605819947334655768363353674286575038390522822123385280961144236781827001205566638412434597000295065431212347341108557069604100524565449473882465824019120978474461943348611417243294920088239283231305297408171807865344986818860946199373272301906849831514029144375978390465676113529083334166471441452825937200767902236787997086437901245324708722121888943743811652243144530478518476252464363751004845105802561039428591213934675048730855002561332050735152306534510836041527866073705266956391595569713316286219690459595569740965979862139401482120721111809276170739331230510440044013949561338986957950331558099643246978829237465324011746576973564094127201629832251358561491916206736480089868378089411240160672689853976717218077526148601901638371334763849787951716864068881220008273176669361690857709267575060682201126849345482043382684607383998295374461162371812667345857820704510389528046868756345868042380200051699493203880914333519337759375776267845668381733558872877979600065501470651052098499621376146333863139426918230885534573012980158182228114106081498402383528654348792709693756043155899377329396011350136790033248869500332458632888362209714357869269378670608662461268051636681275361898578725589799775178240079189386361786112726745880250487187590861488955978114019641340392773838015718853307804270720587762782159927042071460119375771878084960849948827182031560842386135365212815869910133067186531269287522304057478029398854054281424448594396011957416444046064469497186132049806555689477562235306195571276806404203071655237822876592820488734471817636538696720753699889236142492644186223655711739452925309404128452003169009719375503106368050619591233943305532660743276303039642858200074131582467259509565888668738695541730937318442800929184297641514812634351185383640064767768437202116916542597286594834523247497202189386047679968803327115051327322136132436711937806273194344275924110432446345116538936750313587224418941993824763228865798750048989592176274379889725135186229110503254578489899401773296337491116582528589200724558651212546699617259205236040613871583208396979759182468834155804331785844920794011250413468349692177287940537657348755281606473044788820589842959287903396772705507071224844629596895836361077518827591563630286957969183399659644002108879904110412384363306561485114812083682539255613385256392229773473431208939567576605682069700477523852008141325601406589250375289573891064484502755774588689893291350533170364629854189832682172314985601686673200201269489310460104045344224438118585350834932713987216911782846791569138824086947703558347182884697492096717640109405920900193809504714038895863199115577129307292035037054434078586520509721433130597605329050961229979079849143197753178442591893250915428713768696619054916784413903851989228872774424946965086290668199852707882230538094120282865405258811151860914554357484987172026890742570001775157407833477356009333815226250676359430643330323698062785522092341323139206444379974148259722614785848053246669460295117170781148167061157284214792957590329631408615216772855007088327372430992244053178788011466706945479830373667715660234208475056558838149429298863109196112747868696190785751776129595081609973966515290734216756354048109171041254071209298329452318999505944303585242996461666348786630441640531279669415043099687051062376039540551637039686692792722197954053705893941005934980650169264031278644472356558289283068553755560951809823262242225889143132163105019158602743516521064655676644807625573490619019477445314169424378995906257325570544724387182161334425872111675998994583949129893446008027901592569207765951410635442185952078308403930714247822177198807229056432023919070065713849934679742579600091958451125400693579877319482419553973903509722162287193690980361355846854389097462189585301172778435476735338610457252013243138063308925107445408116708749373583924275580126123340887871320471966433635137545218526236743088928548698203901901451815400816410570227095196670860289799463825212293912759230576799733580427984546607054001437546429976028646149908060647998046323447060287989549852455703564624835463189672043557110564239612422429999113149901921816614651303646066342219775178302824978234646910554515497190636708299460323839716507579358267724195284535069575900735628822842113429480676691568327940212097849572428505916931657633407862388396496161853408231619675381956103605699040587434010104642393921525988966147805159096421056355597057990265547696067771577918783688504207658092877626464222170176322617516391569744021801081348924515959082807809737237648311895948666102425064278666415932982557638280794326419875984765081406393795213374004030534968353476069876531076684113251900440370062918578754788818015269001039923667258108764838441587266804490630282699163971958280742068351842494148981829243751802265440330442975614534626129721586114577753666777467464369773942230230871420857618971379077400742876087945970578459370092781158442039123801492021477432564906467483369926031601820890273201534451362263856741561914580456866119408670548664787827574168486829931098625435798635921439553058378209708052615555864903059821087311735669295294356344601295445563167006510380534277351695562817434822510089629359380283341802177547171403285270499765307820955702132676594910632970985807447056519738744256869981205973619708892673543934263988895413985908333963112723345972856885464635502037187084009113823883042870340008371157599326383651799616529111385200999319756872693290307155836921993928456506525074831165453905695721387346550309254188171254983776574812780377760591946608729062001810743846584168445585103294033424926522350962187056652938415918351645086746551983786445061684107062886747000328293659943201625491336649631802093650159681900311356940937811594389597676168647641383895238759031819936175563176728101271892318853038262851397910335257834363118872596290629499393496096205421670146227257632850957697784260825630639656397255599249411236933608732389522459547578609617191517780757524120139742722408218938276855689644674937544210426578277638705681940539860509248453291813355722187828654353651945536658258309792038187165362294713846178225217495256938773731619791150302493032727923318575634150416763165056808564444365782048027458844518840330306021205168977891189200209917325253476608503110650300099323158737420118838460389467201387479465778212069876783139935770272652276176518064940239570929615619477345931148743984799530447500026769290757395714947365331795443069416474288721875998126049840346648781493046643588918202171795265068606341471055813483277740723098266108023249378808318860856366107893522226150114314159429390614652042227337452219303554240764439820096640818593323130977102832868382870097988291803612431950778502149630613530885155110430186729411226654630405857688871293656922760984361271757745023330652683061725260309272392801114969422989682961951088693947803620931402833230371178720319262350297512066168038218208581326565294732974469743740779024668618509975010239870977874707120740268686856813217843390952621694883348619426658967873713444229824885005428279798878322485088742535138024632596051568561624978050342715590299819645708152860143884899093571169092108678499867707300917629913856650859757787410421617238742858414626920187503769489350138434330544150430849357133902834472571581793386800261739459869106804588333476469081411731340384698710775819665089804579281191184930338155867960686894597766068339638911062515973745520088383767712108907913553705711680917564569626289460546072315329183041513417654997224315283162688901301344969871194962958467021517785497869185374180834874511174399321679456588624980551075769087459768855120384239939219960323509793708228997799423892123725759251204674710641143674747957607431799373235322402908557893229526787837887388373972178835668669947191291564250054948589394719352040614023673022996003756207996083628800740913689588804099582016214814682606791760957625596115374571522372042647344626379125754366957550979706881357585001477948635936229830830463312658910103214774897120875850193100450354309693908062505594720315383609074010183353144914630245264960140841092196244444955722776887904088685323222291566068412081528975735692777141187423664742706252544088777520866670022442619346271962040278190805725701808180512880596413155246397129091933034392529412285292408831263054695680343122818058088566008321254480352284068225464406914126454976978219112069317135551868846322441630868409572043786355285154336958733086210693559286701650997315393347659425049089940718871488986259829562644498853127417394986841144535607384829888410083730544135917026609147617142468127006462684146273086773949584592080130887586005317459354349038270199604662672353556983302534958761950161011518777317445089072591767973262094367281359793797624279928638616057876875856312884920662754662915259210949913324194987434811580530040327209542962098387723076158706379437054125734355901169730895433011334572872280716334549462474620185007618329067311444007592099716358202547744431383404973744122885319835803974979909346017357456567308422606309650233482475286160393522226820063498998728472133193968341450232143688151205396472620717909230577679193963901829571600238975871065893764667909448375542745961977227996909198112620977724217321967022902629709819504517079224538734171315633969551522787637360132457923915902809192376163180880048685650410603556691947034680558307069922675831013699848044887835167916145663458808661928433433748034883971223740277142604158103976263001156880893442787019073582759243713445302958387040863066685621287083775068495690712607034728863757784758978739224936863880165702182850398915422094233325085439532467300191395758978177097322666331675827634327963051616791855131170928482046905041151268001386502357413761413472685733958878132252855072556921406985148125656079163353787768378981314555219497933251405147208573760488929821698848645950183594947178715087690189796034775588976093783575655847314860262867186199971884702997049939459460597751467745315430369741261938028907351677994170574511739310907316543810625547511226796780944731215041457258350596758585072217113124164780817910013114303292488394498823048913396902810707339481385891509029629144495929925452830355160619129723845594106854323961119935620236988151236835099590533323805287164187106625645468531359965150060888527701202349449872269109807131585421401825646581171350780525124538734869610559483660346521677295732657429415611356392954971875422157702511566369147313329683595540327348346688003094793070917929446829931082360014714199816663283655608823091424652659204291592457959939479739894074994517690560483387337026752078179873072026837731839243429146446543445323553439303985497144788449354556361994510057236867099461160921722612448944581780512510433125479112080329641034806277580290394925139472934446367956930576081856710527516140040242190290427884459382712068948561041498194872015508786999308709978550288012728393845135570868657663631193936601358249330688522908933846006638312554518052133837099591861339484609421776962638039442694117389526894884300837490696916659355175357598478274511398125346010370381445458157853387492789617658218798503032675615283990467465387454374322308724195778818449200954722986202068917745925697309267103044958525393383742807208074158205015356519729202381901968334440071276897550981145409352390670175431523564034872733855139546022068445283747887816449733853395870140618910627167012414547804675880863701216390926666890592729522909339054349608003588331129590263340504136888730954232860458269580937274358586031955241600026572066751354550159855235337768845478414476400155250697504157995552331429736868184532702719215741921426856084474853073411042760135665922097656360745204445731599644551931541000587587938034531455145191261301914698067063140078385532248795948373094161677694057351279443760185233159194314450359524528947208426645913037123790547212007650278583241416683612776665045366927453887038946622055532688048247999760416913895505377815342896203692630038321236319911725703624370747004175464549065486713219446670829854125190416465126369928967504708972007635911734722033351427676734335818044881868612336991405807967934435676540896089994101209598682061839498869639980095472802672382551595800260023203257980583691840984627289487587802606181320710507969110668644892276764691173875495091499691684640812469770829589630576281504975988222628521417224387595719513570129323479306824736407319193071924634809586577034609890928432231523478717509326394211737137779141468928599322544196959651301608747506639489872222276641562563707993506358842873923091726343930713483498192933668195103872995343434732669840834236650820671874240511919352619112349378150470777931740188224033629001871634045792906600734382474262842085664556099030602882464300326224077118807446485461201962102705646534390711370915207790667409732217900820160103546145121679388845215571203710985869789247669959413112774713245235835469589389648304058406572288007066574270315243454744080397213496027615277427079784429990466881386342318468097030267380372050992229135650223969099005195638381269898270271970944153265746460019193861129214529217793228640389790206181704178943798187932414794662392384274086448865657686764714957234167399492426952869362621443448989651977424186903028704454192122819792325846047780555195527748857048890961771711069806464744770597340778277404244237780105907104522853059634219603417405970902115662008077261934192650603825399469256729845961062032638683892687285995992602531462082006455879843161169372491862153071355760480536608626242686700191103076153468323606814777214961936884245110588811887186620189708801349184137284841605776370883409285859745826159726645452745763647292129370256032990711115587850467229575392201320197706019822816537990582737595025029671406852510189121895744321613581581065014354261020833219722951962599882493634885170627909470194421130608690284556280907004324845996413541416474528175873847363620968957397053546663790465613510629441812963277230414832590805367783812462201504317336682065695900736007640114888474462676637453945290755175270832795610982703551618635839068807936242711003840996466597420104535398786329367185711893176988650266931201689890119259915521700215539370227025806240830927982334002162988944369007316629526535526717173539644115124144989566204179496596893010118660473329831019213689814386064990590818783021066433762654664651921548713618344963252909872137245975998023050022603183147313772139955362100161266518848493731748575951371635275370421296049586933370217336454467896673981388118152035358499880890763204883253357406097097026418933264694895309985417076616475675285457100665879452315773059710926409485871564605715745271589325870789561750772627687985510141762125112160680705681091964933459761357138634110904628239979786916719264190333294891652803581353045020791744319556776447069335643218220267411713387391819085169033887760870246098111102856965043564488495849969766807370787715225195022685095788515886225988522068850330075425041340047722238763908553395485049017928260520566737729528464389085070306940947108036507837080486463494236725059780869086742841222942625294811165085290359647668118690248908852706372031657831632861736608986074808447262807501053931552992641098845700750158316195567988345328401184144692606172239152763088042515144966000251009486807392215010244492068403223386455302255737448049266216913109834556679947165135192884407854023549534258652148038005263083022904231116745920407916412899188778352097293955979123564700690363438763741883386930312844057382330117568850930973715684377511162956110357632389792450368224492673661717537985979256429626952650750802424678932869227663571197035176527498822230950240970781647739615161967658024647550933822188280878052310568201152103168019913720089644388310991930070621979364674531070274802754768971564448200831334063215890209579731024738237892090588757675519375596888998606204639173922522228962732240962885386568361216066663387043623743985852102748709353127604491593330386860412818549893909957307338384608611899754392715908329017603237593747996835506265102348675979413318477297053141110435753205636554347254653369437299159477624011705721968806460032892002877278862373475552255853393572039910658323970811373642858595652543718717570150687429092097194466047942687566057377973091814744433147142577955738532210327558006544816855868470409853121193720589352809736367961456960753213127455562091793938364255285761509724428515246352417012172117102447187617305818823046628031400748390381158174384527241606452805749851302176820399562225089916633567127008588728446200358049293662409708250656394333777283554784245546739069261653345598309516162220071706680733401498516624342513384276555344392334265422153798104791582348714665320277775061689401142186832374055259440812214073670367242253444550439669661212229198953768547217667199301954799155227725238167359816262812670626055467021114573717458742772446293164536425867700804851549390858873529598692419637007701344790479698818182698159587325224062477539845981251639967131478919749692955374185301360288004916341536587012524728046049072197014121219487151851594129781039665303824330840075685961763605258389121833150854676238131958388635644288272326356696237583930134453341724937111382138862012064356482245638548084209115686309967205711243506828653769969982995083115277101646005944636614917718057061783623874860481947727036197830492816513775731647304049073373488862512054643174107303602800702070989767377055023070735499755168897494074931409404867250462650441240991809296996681443742736462751693328399367861077536922593346757892053949673534957569921880518647260918954780338681534959380232320277837776395469556514482383782696457327882041345116452280213280202676181423640961564748439153289986749717559337703182519096067118011655464770613193898748161699278172790409205392764772894927343114444412898116016851029891872553251968773252128636275833943593920570745974995568223255798533470614857353865055817367331774976097043920415281214131873416370875953793880551057524555171164862874234944581624769250968782030356627880205921460076152224330541039365011555955915539609939211034925917893809698598048444975061753662003001258643347667244162556829095916615424232425382918184198762683213263272238689826307206418608814543005093147880953340172376000284228998777326074216826849900295985624438751526407677255389454709232030143882260104034689855037197472598304745922190895908958630741743822078258979940074971863415372045503546343720161818258708037979897196328662026545093618457651403571912678700291453815430691732242034439760233734953005639415200532121060597774198485400698114122429279657137496277557875894529945438265944482225440708189411660610483920799506081533555917802767449387727967350491714303454851114342266093292868566818642483694374745355306578281744303858932227311576438577295300044921213008053934968382401097872951091930476289276919390612181333181728512525249739482705983699018474209742585302753448015360722321634009233816139103512814027806689881413454654024420303731007294251150954772275295171289161859054562284649672633030360100167511476725985598264223091682404661012071022455063267339059910192018435850091430858204639155121223250226255224839441461444560575277223774391262479897458823066279942020244040277338131377137510004078256150128626539913498354332989463422520084718537655829604339329243111881327757697637570459041583741728533321324814689697489991260771863507292823038014761516424157798526677673428785102551167711988014396150821189291177831404331832360476008262607228217726203692749071385836445949427273678484737628168742079866937588997810935595456810779042862147471422162254983860821275125668075086013708776401457904725305221398500191985562502949232813117787879496944193141390648103169004935373917419401399147010786161069873233318521945597629453793592585389503762173306082864905511412801900771939188922645164514565234717769604836399304599984687636627962836020080253927295541554688700475515261641602233720724065180163065055731609352366662133785631988174943643953479980904895124001635449316798987524651978145577808999650626589600454440892653607807360900991780389179000562835249552331725070923284230281940644784515293730244041708170008596096390669705418267197639559879341063880866029959326979347451410908995629854333744172294354582363511057059902902283954455989434039682958618668565700845442566938210458722287254682256719346710540099751680305373944331566652040043080916917855299310252243291422118263198221241398191674783990176052844568809002414880219156693378715546812851471222013850175086818010692103465635926939303187963316777224566840089526256637457592193407912047787354460740771251674199938759136800385391306652498809285534543314891189924903427631972868486757527232460470079138314154430310243656371701582571940244869115086962375248486568212073963767199189738365570729280471731890246581885677991458414561901473923035716723291168929360344082510950884971200794537131676369346664118265222851273074866310525367883120848365385132249084648378128001681007972113766272293388406644836302120486395287827754567744490655769086518437365018127150726984072217918566848390263686000306810198896912440251665802914340722594259586924543434410041929348115605737779349780037734922167704352553445014525031511311524658100592393677786982212944363807508467274912274584981628488068337802980806939195604037051411184658760529952153962175908822004019485758031036913362398124579256933421523035795982161884752526666614085607814093847657584605361549516702908568778105809358213182722709032538780596872919330305568681478513428788810041084672940345450573267971817875025166679427571116134510357482579971065172523031414290593022702724900749393359927763430237898288494818376251383125721116822203372080772847634209745155547546460626369335041082031090239807549820081974850702072720081557493200768996990870895343920663148442868179596820983264065574339504142007325108653409479046550396474946557988956089047146493966179859205976867171999057021800200628870450202780041124527824686606883350133346422962634726383644305366147367441027881399548314156660093571470961853321550720996638379938714902251904610667346100093597898019257645151488322495094131767311975251788556127397809671314291011482735848122065430256881018141811007064407704653000660834335752808216034611405669834814986011628686777975240376805130746514299884875639931106288245763435042653482921618756837176975339152937348785179943143471412455883885029012258113226920735578941629901449257799072674578872424195337909369069089639578961289343094494860422233424768839545688184849330658910767052110832100388186448995374172697511384120471170342070472116515581711235786112712778489906413758077827901164298228052169225624326125241380220562804561907817796296690098701490378943405931499306146041561441034348471481782313625419675177533832531118086328865383159636347016854944701721131682310205939012962244590006230192205309402667095976801548480717401409341161307091831675831365038575615885969238186231472041081998272269164400901127009354728605168901218102319196662387862814923090086632362996868961977644054809077895716070276541772716953455767585457182810615455797286486055117260600974814109540474779973398498377249276320221126757171500899180629140608780629442005698024606094744695024656434304967960989682891988850984562687903492724021135375043341364758775602804274130615172652556812875612847976937217759532861233623322620967027433196348174689742834111967346044050165592316611457044483952704552738188506570864449422133050416098169195052643268887917675677682432364752594917081631685793691417850556788714626564919786350783334233499703553902275736749267904489833942791082069202432046502157250318441787040405174840654374433496235380478607175633075469669267772179785746396713899165837527628065295172684000043060442601643050722083269588321691850473308498611270281088673414865284142643551361293232422237699488916312463875564599447293476785313928322152198213260715037119971334671576898720032661603600752313945557500224268431295924675847266591930526407936915064308044264740285147867908952491490668627006144684541489775323784454646886044765602670729601360946320554153844287394891783911017477725612500847882134292676440944401785419819059169156526899139979619269447737634797173485043899604874103196987745127491878562916478866967454864313640806657016676792796213417652803133549696035391864942828603344366966449433829870349316198537725874178070459062624769783740275573657013991759909649995970606956829978287818980114565820735529569351457774245289947566628651514382790177265003028684125486422940338006900491458296604542909372298056055182176132186795438062715546503312482977203261648201115236701916708673043320673991310917376007384317021465077208484714055683795683583938381792354019445100356017482979441482582188607343427356865880304183863783327800772940659923329245322181934314019759173384174723679824718394718847708020935624110059186484688199048750658957560523145347582646624760875837051769036266190286863345620977152455806626115858379742006496717341387656959264223027999188248992622350489421010621724662690824647603125323376920516012629115355685229389227560890175277501392626802217316603347203691572202903662451436458845334753785757887247355026566781254336129465313714556101850599242972600237149032117944604586615266450401672029503460249655308219284570193563179063765188558987848309174544968332775485081034220766584548103976350482037722863988383928788286579431944182167182932818649943378305469840816876674205706031398658602110859436673642606603407871395549590619592747594832087580923321448661820249312683612295363703551994650113051456085588855496850258535865057328021613825946013734969378893615972436693585059555352974491728937770509184979960327428495257494555225594958940856298835520525308581896574732971034626275405570551227553097794973089084344296232649030239081110816649917468779557140742901970334925464788541081646138352628806779966269568033090494881380581509444230636245925037451898936044291797143870250502239790724381405524402930205446703676462173627861073208847283957083934438923642059634752633185029507880112094834735621517873365739193578268461401494991116315443631460008996567296124118605786676639190501804858493950640714828781128959946361085599016075937734492178338651244680536619421316524599116625659633301345547547304000909853248055751964033423865768847493766538632272377381521992786924471129097492359132705124589002144514885871197839782548631375168001494927839556167251915599679714889667855985316361659435090031822054242106126032105717956447150276716094718328860592340486251024385141852218682181432024650767340378853595302798790369670737047329442422073377355422697515050469330862851250532231896355552206527976649496401382592168916573677729507554549504541532093126185073761162288675675472067011274913252536338198277965156687040860806990682724202728237408194584843467974220965716234519732965767638060900652189411906827475415427042340095774046006834483940301294963925441749438210065516351485645636332684488702319460807885123626009484387415998900838324150386144008904676629853255076269789014058826928036982520265494337666156936076753054602301905866946553485333864522119525005309796964820934184395965905185000560286758315378859360551261888218950026198736518382033531692569570301842870716518807277682590801445596858347148961545413798745173100427520816873065173945102710787846687856482208048283795340991496464755170725873553747505505359211483669398359892016136037172223943340360458160457105706380876189540809930014909777628160910476597706938449046689617964608684802050751484426337320428072810581629534896375875663982139891745598489919203365473139853271600961500639844277658368445990680721766318654698050538133385666258749336965719854435556414466435063186982100330803466945023161050216107135583770678861575354055400352062978223283275482091319547225963156893453656642981252173648364987296608568274341717377476443942715767397660653329075462938038700863119014898141991962465309783706613471799972390234930492611720131081168346795827639013746243195595170515718104171103026391162514208921378636804792466951338643990113800042113887828387045912203808665980874595491671395649523315179842861370391994840358438658326916621183257389663269538172423450568296733441550781128502951458541590797982280182956702798229430673517546484072681059032123458712426055538928036204382500218532685028487898892066413033444500804827362034160336608922089740827251465825893808495954384380898649281477285796698490843986450220927339438767492365497413761897417893308788279318934336096194687835512145639688860787807170204633737024186773173506687337080588196013352763862367893555168853671673392328559820789493648061164255721127104919533671877758011817213729146815610676214693248144436223152146163165260374209221305067785898989631360457521601644246296673464476381859894174074225489838217188918989297504004983491788556834315947609112573791961057437026457409542798223060665796534775931145741061563827595811802535783323551659995802937339753713419384595236476602505116972335454775608251326609815301655372468517788577619586606378153349166683903606121891215798968603008587257284455115479447863226866741159999620712837519745248719877600586307579609050261107922569965015621440400619513785535308582251473532254223653853751483782767415286595971020265521926612591894606372541165965977103932291434383995348662152512060477495331459002697738201722817963807722830776977358425982967337798325012786688296807897690652036805005757156256927194098692233621374968539432254184083694352528429664741620165923100421985360218582397484200317150321379122626189149692514219349701407837946186748298608822453514096586253895867617908910644208993695974920138342857023517706695036002333006748272599910040119216103298391593679163128560162100385017968748178372389882224754925944196671249619565750323915129983994381812050206716328782609009160839737701574218792162505983770807811576632372650156747422238826324258713897551749817731461429491059768289128960138193928970877436455456343754184366622554036450265504299486140773640690171514925690128231205583214307429683276432176557228348144948417788946592958755090164879874298649013619855904117647929290378639409560224336206650230936680926596326115626231646758821941454837247683407249094229066258182585397458937932848334879573963902036571842519522087661400860273166369819675926873854271615331012687044658830556382395228363163263197968272315035553472432241638707021810194230810968329918910720858274157592286676120132574991818421410764561815846393262482512952565905620415487569691612928843880577851175954407802577779798902648415438333931927579020968894635595384050727175048450724874031657400947736679190066283651149947518602122704278597736476420135767803335189550066158598548313803452120633623957564495275505988564885146288105794360528016422137296261747915507509912759640123976125886645738787034925909308815771262045133028429991752540973638719545024816762642641848225536162534718240827982500388590746116989431454277642247958229762264914536797979855743548773617933087908641303054744113934219679160340552123187298961332609598862573927145634866614001356118905712245874578701449077760602486760565645080825110797421221067416690816356465083341844785678356341658172229495807303021341277126627417355204742204351833831047165143351685737613935158451631310370343644578014762509411779642942346950064332851962616678829920839676890364770334674535127042076521168055389022135269663353244632354872544012682979373831444601284142038702288300422262670052879468546559722239140590155260446998682496971041961737735108932924787955442440603406833181930921562963913475584681664818705597314121470013280720990043605669716760779224038989807167760745823122690555385809431626088390174875565962432483397604942237612577204407509538624420535065079381848309512041012110937025839362721429208109116342480263981182083223994172528661103397621548203467473235036162409283051575930274683285279862759863260979115032157501672679113045099533848567705752210675719648843397841062365323337926058087469457477150986075688722603916575437174747508784264789757182350787309629177004973586033703078143875731623778205587779583610080995166832092687447704127981842201948538620355890053243171958101331916244827879403301088131014134464537999867684566158904241561308422901346015015259078642840398867354037397429635751655588376687749358212551695730590949634672318913394638794390561670683581912856287347076722514673700295505048589294768458628213115840268967779283255992102043079727383223158122740413351175673122032353742332354927624006150108868622942802413024765506065759978449991590733511911210749672839193087895857114704760045130190827440227228923903106977238947741876656295137752168106771548321958896168845612549557257310398308741612764942592676960559751733460196018465354400933027893149858237552310626123138507493866471345761327207779283156190493679012335242304126801724503832200212161579748188325998885711133115886724961118051809425540400773194473786669338473863471385133721411047005712877250589925212084171131995446593408244879787014869545310687708703035653515765047894761709236551088877110338048552561584290487093611989495209233064802131617026314494128584217329864881634046673279827407581509466420797905737504844063577348303278059961923324475148381098543506703375917477861253756191024212676892268779072089773168222380834363241932220997587485395203516389614524996324593231444660417372360727305379891351088323752993500408938110686940026399829371301919453604061287854757067471230990556630768746808297479864641672420370758264381842722659518368374549618544283526591914998646529488012709745224412443903213066453225820988846106805063153861601116193445910904915938045940569321748106093700357405837067934733508648650169960997183773845842877735487675560998570752345356525186506691946857933775382672488402761088350086281371148422843467173652138989442087877328002049331882611959951442651836826850844356462762168175058570162042276575896101543483251326221441222518742785590798991367292757022047117439343150991794980009373906205190716429771331886162839570677357165348854745180172539725049091684026666113551126407023474106997828790635400378562347234166607782582532790410490872520195443480669544693395659190854862065838274779609341923205645848128311197832141653227042889889538797268620204854258892325354756334458461260955238959662778132293175736116319446958391020174919123776276847650652114687755411504569013919564858284921626002335421535321694177737154019541510914561948182300155009435581372811739896768646961968587715516522885069068932919367940283486522582262660644362423451697177808138559370775115375010807630159951721124108323213909043462037884627302313522541444937843791577731496473292273316345639764602424835464321925363137634132570185702842181371945585756339419575327778878086961286155836449191611393920940669360545287891356495998844396075147805947374256499619735683700110652237754313143837411430224986849578398668874671069642249399087013962881719218847095331273739741518065404181307779270007823094723929887512916141248429603314500384651867548507505959474147224695675828485862853799896137481652971577442621374426349638334977293129983816425451845797139234258193623606405142081254096644796243387605108193709890200872866061420050633424888997631733625386770404427487216739124769647752718275468276349747722230930682692663727275935351785302167314683260010834297648406043061726508273824479852890772110170649324910724919268734819505456618698473631257161913195989119154843469143487607572542915154761738048601338910167437077688090328561669200626382514334312274414278057532288650480565601198049674307178869460675499690966223161504582447087513913832996551140748038512030513386647976788188830377592534602891259122868749762960565754600091300038272590251321838385338490599333072535918959495719336570547102090850785013878681686015987658612712377237481095061646556784495863752037860246257727308846706527191340906468785426105609062894167289178686320108562376994190280811908457116027100727259203702655245700690207725193906309250693620023967310108318215122288873399418553529528331533413266427308906678188759849731303534346568231993861661849390696180390289664471677919008775014851442478389872318515753236724234971238503189623674028424186238418273321145793251211338799143201936913708574357900875318869920165590863894277817209469783462629599043208012127040290276800982657111714610229572566650679602091750585869944723968415722024360668218843210170580630622065743387380248528148167510815004176584077180052503925195421907884216546037167983379844035138691816030244259776333560655329141525442635224417763234615283397574556305630349355743513554581233177722838833142442769651939506166134470321720047521188059104496017166100636236139430745247956074224304100928973938938778477461226839195796137607648365884664387259688942749932563153351118725291655911844262325849496865770873954934473665527044474344574773786370283954566898793101437024072060741238480099579431047441740638320397558105111096905244727876319491344852335411990066229271409346448823951842124595386054766650997967025813227813787981988577923557982514598305128415519234202207588475911426035986335364896260564396887570123494284577682768549997772608845737460121656171523987711657150363384680032455364072885968508794403541079599653733579307391398256590717373939581966958969780008704070292874650857468564459614593899138764211206168373621787983674393791256596085543711938983101102077605353312378573971058500080638572059274461615856264276230211718479846793594274977987051813226405702058853827802289516635605551454060259276444100262688995161121688125504814175029637090953552635559366468794422235175273910949994425856301915839645941324899016116401109983861599263336366394199569425752783801317799403115454992276101647963748874873516478319593290847124898428613649595746061940212945214596016114598786953076186375595496608800245696970748449738245635287479584222396954828864349281733106896608452911265838816163719534558779687185565127009366784072414789393079951974074774948296397663525627569592234299895193872803805161734329189902157187039780035867863823456109145090262228681244839013116937249396363503857516863754974387580686177099716257560123509762553824685912410493266065957013046663991486304225541150417441610548877950936915592841331703822336859738224509038826228767768518638899515009773147409925677749636325911716703009604790731405795262358178551529457521399788526720031115344851426648944692837718170967488922012723963774066761654052851177074068622859064309091340678975303021527916234290817994538620245128430728237784160489115583262829727882002066890687457350438912885944535150691158992356799481655477414813017519608633811851383390352865143706790997686362480413324260682682156032340160479833259902252790846836547773502027194323139159322227346175625513772020199734862718021425943177590904450735885233783896657164726722298050352274253486131207335387769434669331562647875822223551204787664089510157589498682532361451931258862999659082176495319315505089836181037408179161273430687057575731134682093648208610188367980583544860615360650324853040127193185748298461240698259128538517504649503356034836066047506447863837548807348243015606342678464541078492416881113700002264772715638652002588121894851845127988412374705784428143683088444971929885385843736965461754188399984994260422436306207901041185710709063104092135247050377056451913530110934013275896922838218026908358845588747630001420717074204265208899947608381164514954363375042324990082737630707063710603950264621462210515512098949951296685310187712547846464178887037620690274211532204747306530939695738694360558503352018028286955860944355575876444713013808884132057658241150686799117860454800604475334102479201558220210475647681124398922037163303572597343256102729353733639344361233405124706335730321642252947486596883261743527105097385780288839155409396642481882415992511981523830575383790641674151536586700904674675408074061335992771329388123459989779763416835789607133935672307824405361879560487506305236146258030253290105166543298951004607369873492893065021637482539655082494177975347480457397170164357448557645552505931276047885706273318066814805281129618302690851897678043067821322752858587498757247888104105503153470829886966683751164409986065590034367224029325228626322738206186013857140486243071873309133397369186567217834883404971505301940932179888967945650016148441105415007892590510884488027400585700214589831832990492395907588328169768905423894257057383073469270314098264498267948034155509784942465433057429625850350229155187233285107887347859475894211198385902247506888184825519431298209824546499649342598279485522909899701314855970474403684893497527999834039272321611319412257805942680815775330544642621043543645359273198525494393022596941655769600896766658693626312167868422452673964395101862982151094252630868759713133862243520122332808872543858883478494068527849635094328859755653087580910920983195678699664378575105420767846478005271111687776699088829351563875812096361475614820890392813795362533729053084424733918705393591405023677655662017365419658388715952843572332366570716585505727548693827238776699868879547541130359618686432971659265713090441462839610472916433244046446827773754947471635564907096142806729819126438412737583993352087026699515076917856522241133081462118188409151938124131999267546492035575123589453367093699429338331403596029575377962440857263129215403063806123574909348137904276691452584648058187745398960737785666723941896190534211345114589793098040711800757269042121831532135052023230642483968406760421084783904408175551474296109997054501889794333438645880012785025712131480895577968285795311726849581453377452884464982419578103864558392341546491986851958955218632987330546901010920740677819049595653152887982727546994785170583156299636017080445616163600466400983860452610552268582178528107434535370633675754278977320346224657250140248349386159302921329528893738611993259154629164284266337356822411934501049206263311867490134447073651208241667370677742629628268734686866856365715640155607785815948940894306978109333157621581156991868895510662827517053847797079990283046158615186009660941373527265602407347095036704046285244610291631363364647201333017819439137787708716565500511646610638209846285306213635830423215131622852718358063317903184252173725759815761783659448070281650320723507176871740292212271205226410931464544411027131498074134585250905471460376693910483852950590017860954200492762387402454442998245468601488156187455589843318690906359919545410307655896223372691267722239307736784576939859402406716239084506437984707129427220962899500689224653571643763138347120461363190274251584304427756610076865772907959398606201509566179666545378802703112598908512050243721927193333219581264824236298450819668560261717710891297280207972679278083758113736642533968577981456309590581277505020826753236553979865989280148718969417008246360008121182817465815333845445176434957291206142387473533323675625207694590331094372151033689447207726086242937027724765779209980847497050526169031669499911229605005763816261031501135996255339861409503112378798421582110345073121276324944557703921403257890599895923444093492221558266032061097975234267311914276423078745342674538208086919304225732458411359802599172143535864188149391607139371022232717774475236390437813761441468535983557844916784001692379155205270686837954811603190018051012235920722392127196185059639670677694300719310043608546836660826275288691380423311578518484455532939956738224550115660021941051509007820370061888897542284812639741247927460330780482142323644115109711163912004485783783785515299111958953352558112079398811491382641268759852202635102520149095626303694486864650728267563729797479327548428392090237124446430004789640882447177655539865584938671414863225530240728563248923797991638066001681240382029532070938457026769086679483151741929016360776653526218563765794321660729619471019614348955091445249236865683604231638640324347660187375537507623372636571973860707547846933005950850869151091185471488917366314852351160753588692168241952138326206214265824849527975015015391837084625998696906404345313314659614588851944979058826049839215630815602566432888409741237049810288807701186573496063584389761896731265360187879224909510879721592384342636385230964038364448797894569612679270496412536696182645849260193838476328247803684994223779809166011442839416342990199160477333221314774243256712661324355154135794150158089273923093680457748405688123083165539350561998236924949076972608414752291740334604021690585936762338547324753380005286500788561288131877157637739968595656262577647312470637981885614696824040871477968432381146901863461666345219268724665629725475697465255187957853824514151626661861676890282124217743426073848631836994185155350099387969194426215681268637918954978212649894906448620385838017277277243134307994700798038587191802674621700080528763686268670360705940671898945398091438702923952745226814595554642074180885008625255380565649375512354143756375456457885461537946519949138406249111350026913109794935358205774966890677231648383491279554824548465596525612647594735882179888595623151134818011131088378638313853072715243338251347534503176928026500897115215969537071045286392266887013699715403291844714601228297389972083562524155999644455053067386589929249676189516456031585028040700128348030540197332510283278865717207492779764276488153040129921959502161009589426243170127067487208236738904501444684134428175992149425727083693880482171770802571086714843518003886146388864600609289775242797986691988535688317348933110288355302078246501332901700934613691759733978953302863982030930342900887746314809354279196798548210079307823955549683427791723507831764974960875403211630247866698579089600002988511229485722535259597819408593657899301073959295505481266335260270638856017821653565663352112322219699888711768197487514695937687072944792688748678834298561965766095018517985149400374687525218558209084803391555527270501543826684843447465593278646814561936570407957024986675573211653630780702094997460366630686036078492379386694863371937727735817584333238845988581469368437699638634404594582419892263294287890046461499753832432476314517790842471188923700690554015743520389456761951693143136662006828699733099811351924220051344321347741971120354214335334578641026433399645196885357762401051321338114799660889829680389647485618686907944161196111430699444556762605731584375583483590854081737027590883065151537533704897270009830410006467151418823495892447792756234652229845405678723352794171422072260201357940865482210667669483634111968885726629786965328760441162164542531651650359817647166672769858465782669861383094716821130213862188069562753228493523110402169577412250142442603126149936868658375348602502121886981724664247697181499159214415728755829293347842188047172554162881458239002756516934539603660263936276751074347685463661531111844422830287744385570004906249311650586565889503285457088246870664024708419877042539937101879386119219125054283767604923320753836957782940945069522465513580181893847977372914012966665807437697859425673367222215484741225974199013977881502381998645687561692918351448054365817360026466045351383244253432182237712282886993698787915928568095184817755055415093988633229177627704641439192337817914258554593801200502223192068153481867472284391637442295543682673057123761210762241368617574862483243603594822163001425683412108861063680457560908551410650213422666290977377235247014833189146187718353739302412594111670007985049727138236132102173549486326242580204522345948346377166583592335980877106639967697638847775553341300327462186190894776449236675056048129415966844675455882318171012616978236006876098955550134869075497436250602662045599276150761141359305496683163759976711464346103210723201246017410870647930150230940496226241792957647476162242411116115694145508624127729309562387769973363852078802054191861766439676138712793302874200004049407948786741178894936184297123243509200647862789966575046146627623831805131868055927231476209819472167081120010086818612843508805205816007758087011983368855308435921673273814654864587689598296134316836865865103328295738120837056194314326364053037733184858185251176465700957126308652413379375468584554602451660274570875229453317017027330212741606670245588026470164617053476267918183890136649248242845732764615743835186902282562913233099164049159864901135340906827205989058355971741715532513549656300386759174180226450306227408073301721275046488995892847708886644973198742590766840758215730792994931500723548728304633204915902780487649672352509191747650912316149387233857914812543827249033109725732799068633056368629596041071993024854606989998604348557173756146493398124607314003003066302475428577276136274157746255612131900919441316835598913413568453550665119673828828377653823443290430237800532514962126991277453125084694785120044399975442708942537393120924199960290993873140692230540963295857238439336010846221272413923504811571214013148872650969792644954762482662136170330017565541418360527459052706974129690670022321194581530064274471795156204603446644014024166726281553523834256749740271770642942674240788675648358308310818556039658422212537231481939708293207839978363051982550877029710834311537008288054893160171320748914861732679768568527691085282060461102897255389081192714921966097366850481895523440554317354276905036390465951669091235295916341266637497174456657168531416810949600175643195431147559664884169894424656793675125131766611962257836247932784672876218220464825917300623147526361174938303929593275026942248964107163457759291783426675865402316686552782614511203523837737439637962356093136045741535708224449982836762949009390867093368952678898668229432400351323154824503410620499776513160600418338078446133089850830335001523874767725854049179648007219383868163778244244813056737643310676202876154361430537683991884504265979663580527472304263202542056888832629040730304373327324653784630485023436800666638742295205718361564558118341209783871524061159205838221175993793626119590296587601390202087311162841290795620311249591244450059926557222366549390931576903870445915185524519254459200493597832847881091578429781953670724119926084461776534387240656953523251417170089923182710481306623973470972837606061639898362125217198050338495265974136102014926166688185753163291320635145932061405261702059048262149069098452724022269019268503140366513874823744292054311481946919801782849879707670583006398337982832221066317832264514333854102051797976147744511863525154124166929365252562588239232850560364140296395619098492851708765284729572713612549798318524585359787232461317787738990403072339819885591211471341254909946297235137073305195259886562863157327255731732326161883626141178633052029412563440389090871687279088675951237827162207433698416151419784203676483081632613145832492321203639248851948533839648742414158761217584957679543204754692758416966329592628241652006240869934079333973177111295770681637540438592100535991030840928001356097197897892489819874727821186946413120376291602809960018631343404129280829894790109519499154660322347624002359363856202986731985148410736986924134710049193779085713770072603079519247147582053208278883358929269735971709818112972311239559442522134687449564859815864025824140945560129614161922985973446863181422332225119921834740044182609444913287437270865136290523768092067051409691641206542673225958347254518271009570256483361846569330015080008616168875150299637049797597651651326052457692460256889624230366431140395360792118114975421352173154972689129354604111245107288025094081842354382593920918363948911529363013511979744006084826601088850055311437768577037997869830261155201620810749025235765789190878322677213827294799953001710320989015566128818654221301831959081497365320338396139623193108377759292148898115529483406092774208076159848235489861929512969680321169211564836994680102410163112496629676267276249965822954043285964228136741848409879639587483619669613593322688654163949878547887504455270857714919152184184722841356722186237217834328123429903078640738793669303825215034515057090801155177527605835298424077880713927632214713209501425103029782920029929417164399059824633187703252724647595128775454829333283161246384340443939740598731831121253044230735955327408939806385556948656567941132721079410576111264423833050290923230959254889080300533307924191858048035583854142904790978301879763903589888854867282654647709409284348944838563144965258164399574928404075920058620919129954823733004463879912807905998418412561551892982329945230288770759750344285983104279939848837470113971174383521674530456400784948509387585205064690105053063145133579795224102563838918889862797352140864514166614872605571520877279922295844269132011286229652600126837615077777189212304907958588465622108255086853468500615905288927157605847187028952081798887299611344485313144229189943039279038508673311922542183761543032439566361716926068302750065164775331920694587794750358978820163222306762150146645728184331305414291947200473222178805795351838014980878753966995954365862841378347596708115480289829082744932304257632906479882641878473127832116475305666780154209617411164528762832797254565430227370808197772697951201555363023276158596908139567456000768427752301524472828605266639794786986819604888410522186728539457575281620280057624384039060453524279826401734697771559535063080106548211517741832224697595529315225067160235064869347209665714742867549050976003614663857614086754402390271925781878618765548107775611693630653916814700864179725188622840793602729303643827838228519675542958763205946077434351456230280374174584573506348218066742587762092351464414483574857872033743801607444720918255435581691697984620682699326235625907797035802808328120181330733755858510218159644135640738400964689462357515293694946990946192446072505276997384456913033920707979826683834013204604370479839304390586978816476851365380177791225922125571925273173205652404150906071329317509313600105118879589893281241546944466100423517134131098153319290168047827056926343367521359528656840605574143719351791172173102735720916545506115402602284917966841890710609549520152644123569115048263687908007063166611172425724708370952360724068779016122967201544546812752316270849258992230197143543681350533871511587209398052750963279443858725917297310481805790552099391623694743566534065388748027924839652949616775040132496063143948239759900646876031572233170002246170800434915569611239126386154960704092604850509197620146257523161268795641084424295580786470663669975216247607212352808284763129124084602103455948538393932935306930400726170579791370376177896819867493511109268580611318653608338340630815356111039267933928113372429946143614957377461172551848301547724289155277386837855640739192962211005542607874579668901213350476217562200418762967207074724971557202470445832700362350611119305570536225825476950798811645354716541590618537406678923232993915234093478668056870858802570133834876613677880899636125057501348008554625704561603661360646893027702934294915900306069156022226041085219678362127081846291691947760862539461864621321685134369170494366169440839114840334509565330662647444995954661814448464291494978729933149688832096207883264705674232048173574416792699496950874571426709917775350330481490997009856199565290239584289231977495553285503952311168379064237373177629800184883283569311245938980190826952757905168960342206258390997555091620147593514084314761645928956882804068482428644229245706779570492364925319966928879903377012186636259471022823202671133156672454374413812221208563622360873726397658856998231711762718133526690912702658239909118386423622511801967266080459780440075790788351672127470353336007153119403747892564375585436894568116114240527823889198984041357050542905368966226687599303088015841424489276643313386246604667020579842069060832942224339402261235760189680706414369373779050976351665702054475912808401532350003845213543852756356313326909509960540787392176802188555892371379983304710491449317798232650378692287220016677739182463832129599186042966623939199456084340205141677014307706280011680644378367527623608542012880432801172972293725757494629439014986751173712251838836771179960158390495315810279087915834248384406184694906172064203864372801253779325085491326527456812003023437673700673082847391344677792615407988103727783653710915801441080604149428190474157740024761600057975355824295454389011782197094307646672035354718254966574941365410955395850749242938658076403033162055444996312966593524695588039467181199991972054404982321321336509465973935393162185286308021275288958323095805543183955378783314981951634653692794095554292125119834445819017936201617314617393268228075795005845097118539365705228007038115691361063010743112409190647898017018940206497137667254226217308898800884508225898144085587945673714572931279660150977477025157392996902971688390560916268236098422483406540194991221670506828233116262117659655684091603778652018207306541308601593036528369909158947803069617703184903696607915282771578621778563457131057190139009472339062962001222856100906324508427719310142471139454014366178765462931749342406322168989237868933052960663693013595575883703582093844891858435947014356031011547580913123619384421728404994796750458516484784191954610075267635753804228705137969122203833260550116205255103584150003401877263188210629335664853562194400303510894119738059885897753342235516916999809902070526100211271376443967682527569300711767168035276731378830425227396256228906995655318209410124832956567105969788287852387169056983764089680670495137492169079995718845557894957193706211515227145168553959792042383656640634472243948902234666522880896010639607443972213499025931164084343999581317953679484056854298174632075160692394680972337694139237550160027254054427537025060624072377731170324993640206086993612838058490813424856274177958789675988740033004905154253762471802397658172446190958287772090149943324521498200791661832485627236478882940879041460452453303823259027870501761502241159979820328462273710841785375904164827716845901503223126903657109953356651906332474149996229526955214292099155058635124749633681893564756705382476818427083590904164830534963865687720571860783521967662894701207728632070848588076384755528109810971704612646379561068254754217501166439749930267531854008764632277223204642228752666880060004947686457806929809917236714675293016356480812420335970022683442573425441839315060283569391437926432246993883751233841574100152371594534410360515681505904238345418476280152354992239304577797173641419305664029122131805881670890401784872827472244207779275214061826699412093270977791404635820415873237681817055685653985534975737231259499216202897751941327885785511541404547682652743532140814834678327331041227587323520922088956908635695273639186396816341924175070749189085634845112965064972658304794321726429705021002985742135349471475291287193691007427104680226244618542723293763234118430700838489827151508930684591762564256845860585071123800436282399918447196525136272699688940514491222498023061015681121027582617260520896625445382812502092454522245440306429353426512503496450557852653998224676491457791925194948741201637369677802165903984642610353965612180170672340685063261279498119476315430102043296398999668820053488372685432665990294603860674367715477410694375580329007321425904117365782821330805263921620818423808941862289352915559922515777726817578728717317579928064324442112196986319000330211817819892874160844655684675551525929401824577436593339018588921796275294789238778870057115064823768579487549158900975622049396564770842515145326794695744695730477804996928141765714175383401812133404257584956311743719816984104420593167403431439376302797576862839448311736627829298507438510959198645610973918462820602676087042392912802727925499486017828060754052554614046981819179837050552915687301381488395215514968894547646723670101687521432146730429930360357740939297291631082077684758020099953611639668464407082917740131258869635693625778004318825525160881352102465439101279043751534666479875484500721123499168453141730747732386401972923672739485891972285253399473419702472301958166820855580923821320703304430793427804979890198113472737605922992323133971057164141120539774636126947159613260133832729739420461701566832787771752801790050102110480137597802626712148431657867616416701501894060849806817868483852873588957101145843730542281423076211311802484749137545101331714835911427639854012423655138302847803284713118314905058642104649348052511506329352801132630288048315686475783235445612882683631644263697164157601740406253188887700027399220964424248104417492098513982801092944992734369505800458069273552358811303310640629614604000786636010174120662172659234632702849737858013855262903039320311144839820223703200737052678699623928300126101167045169165964062201343566964848317468424641865770899116414144848291141687818974562426906512537301881917681202112395876403272770313464656845840884152744670295511499002848850064443129044315688002875999559863188628847168657554430218052945690186477864390310265574786410973226508761010765045153822193187419538267014664787852703364603899331901073640361328167773399760986071968412551139753160533140427233482880002239611449166030891643915467403726808782462285615924954215199405518146649841481991123838675755702859081826134512754065297762634951971823313862724456653678504215015121416986713511561859993460264900820057081329763199334274682480778587419485009853070868358448914738493044227176453288985024057305433593826128722423411600432709870329439820128178831759864122111051477665536743377043439780624580075509258592556242852022923064738254511468032239761611035320541596248577358781888052677123128287682682019122251809673633280859937971250761868633318545888711806208065758764761490391711983312463807146966674382259197312467417527555830706737147598881191661290146333869724294218629727827893082020760057002984146817635868880214934735388405471537079643393433076944146193174701004731089388934347192225964632317627025773169793880564199057874988253578508127457478917457518144560127457763600165361776898753281102164556079671316550180587507292681379877647932787105923898870796510076321570804689980751860402176939152353364106618182889102793019186318179965674056786994708709585568132178265454507598653136887359047016072144995463622531301283225218263494842867314445435629352851778212796303428847545775519195836245029951319751109231711154626547467231491508073302206022556254889954789887746769998395362067185510726091944173681180841135305218364198777136817959869691867948056056553792850864886333584652940075818055568543024970441656551733311928658940399417868675096842708815570843138223322866568718436087015139518613910652328165171286508261162476549797228848722591388394475155943872150902843779422095248816233715904322231837348185362375133327039125213074449589597973718089995199921164394234088079320763017476843201212237962453650642824017863904502660484067188416656654352386625603119320535762533071878828906427669946824419726070656286973898807690170721546689705888974580782560949134925833737692211861065380268629337414247183487070477300834624521985202966057030349813434723356704074709373940120481007822852871746400874981930742295996603533925431888237254075350075466122523164072363754602312256868483693506075997439545835110210743914664424792477478192500122002655363478430215457124457699912184723759708487925616927224296334081236791409493901519660423320855432135352548222912319520960671593546121124131934790384268587137848940290432266178982124910848970632655338475274855897747667027697983103095156011609963334949614288258394134358556542869712896721116630348013824147306162784176029357276519701655955843918582433792842873418945423971949999254074051514818802696331959317076232007201906802474924608270545332122814112148343656740328485408194799912525484420060938510435891192347526993674587834401312255809184040147270086418266213529131384139698754097636864675595396165562840469332091867724953438623884337672395548107136894696550383869539477609708312691037575072212745581568806340712826824346963037703181670521277438543138735657890746546034606058681568187197115038115789349993104927418935702426838372077696302797771641898165856956325680027363569627695163483113434461808710216617159947391081194556128280150862636704464689258192890542083130216357646234645620859172278473149932965746595420878035759508183114792563917996920246855043821665517388551164839918410331993309398451202340561060973853278636173876932886644938151527605085539554423472934852607664873668126471533123237727296778726759213271638584807110423438244873431809072970425953593183867869513150573003119985968750905062609528752823189196513685618022484891493033380659380890666118104585385027702802736787982579960491040928249744755758218220576788213298019182069846855774420335199052483988100733753290966221219751855745985863537346075162411940263305941235601019587219847210395381504047676612156194025562356973002583181468272756321950664098056926875738563568459511282215789391344465433620608694653387607023317877506221498793118939852178491594431068646592065187741245192922698318272786866457971815461508524856026406120431367731191887010250256425393509262383318702578697807970774688196470498884446447658151283709927533929645430341661682938118348765595660778426750827246678592998983691932010366911912615019438002087364114939698247755592228460750293417867610765426161193447264378607556933301939704630727790318380092558138631775735239484940375871267664337807596943304714839247732044698093640453319721951169246764639936667246737317011479222878926564403023194411041280101192313302110695833563268455439795251616002480750740632807749069920132174542012161266996184881865097476374738665178602766854206060194399235595686583047186829769368678736601228764237253996835097593684952666699048674933441067613914105885164212290438316882922491617128503323935265870719188880650431122556413608065022116109504848251636919269647434783241998686525967033666962856166633575117344449302088843809637349822868607215693710986220120222793983144388458395013871507442186325159701914924790706416420261057111801227399852075934321345716728372981643879029629368007239852856995330436859088665536277133070270303888754109581335617050722458948260210431728932220025657438000674378901914864759383775245038245020257141117747914294631172897645500598936212590214102589252020019878646495383094930978734186799779018941137486747773417160055509756245719304454079610189027694484997720923965638270432229410855222027510167071053866650372046636205059094791454113155861309005114694735439686697477988503330350979201992820819149810910079050951682043792097934972025925658992695717531639739798008604450141617445568945000703937352924347314256229494514529563754635479615338740485927978391252467120832684081182615381258557050404685965558340291111000269296211147095384586935510531433632416370161268132554682415257545671554794904592451058364985754875167113672141329396956826855654558342109394872606175486761188489735063700722107023590657736041409160073585938582261122271820812367805499629190867856876836313774249634484178716866552301096699810016191069101584273528514122300090627834362184046410352968250329794882707833108495909156337362336058417243709687072154973622535490865392072979573419699110821377759157340859873488150755817705634442690794974911781384597797733698566319271229039734932303336851936453795535385016423105356591965962273366545068524148753095615256125225836149825043342255920416423242120727884387081318650073724343591623970210347978980978583429559546294869977101999040310965151092159121061591435164127501579215015524163894397917773739894729429217608267340492945384938089451575573407172793075211473404586086146044688306754798835266936091593222287974809711176396986114425365314896751782208647485911227031341884787631775073867890694444396443707615239902136671396117772897399419651171333098475843144649403260807902674919599643365979009150196746611932403067108873133830436844616122766469109711853802996927702963453272318329818390678600572567298627654326567858863273024927853773273579084100843707714519225756169075696097800703758658417750670227948164186261786369456089881771592672265848851416939814514458544596382767288504044621540172835579650912780427303095041185776130022050139601237953559067654864040481663162660342900131448520597624371540866040993574881543419210366585588806122231135647468009834001844557413527865940601760904607841944693100554131226672755133905922441786517844922609795625657732394399124323299651345769315316214660480427708600680841079703501744560359505699698723848579174166176137600758243466496184254190197526821665184817928892673217691746400800543203827009393580063966226469659953494628329596851036293532954334266518036256193270880841808910037546729760563653310424736426147204475086705082838858059403548192008277442166742928538756663902439909643558371416225502766128275447135265674384234802435471415292312718355454453855862807611358339385068891525536535568482760580369888072616484543533654710018482011058962594838728780958097825388121546746608023397249218351755561677443392027174940079205489598509759136040629455853556298287537074545569632288217035700976198904494600819883209984883644394864567838490341550478863010990045719769271384497335652073393526195465137212137912627370369325246824557220739747703268955605008830157339776720454083276453144580771428428954381176257735386851013480978416312866435635673902149457484681277671083745268427007311793624012919577749712496040807412766064349451221027128650330198879337168653506136047256126020155077071780600322232415080907214098447070406959440639545515709339186074315545612496207984464214571309935497472250027146755743037289177435481810916745050321086415669958433376213412186640106424143911757677552371693484808191910628152305657127265212818252695331087438430137932913320506947005692201196276685671212848522090272620579989897597752997288213433041384777043222971082216813115550983547337481365294968168643100613999277935043964999054058021274700996902665389291144933894200437490681229553188164303016455213343522690813540230446430509595876679207398285410405104795477401039715401158062694147487882960297020159988008232502775615466256119893515863169694922740819613760919751941116599060821444084189058044418027816638657282277123602263386321579758768906862243418431422261462240712393348239601989895027476630133783280430824210935765469427601120472689506967212346208503569797568154865612809688992843525225704674313527069387222382831173061131876966293984164527266868542121450828590307543143329212165957348298751835966308945538308265846534036458945704761987011365697842714404779251126237526865805720473367680155889545689329396278265958592989654662333134695322064018768162518378127378293744938011121717818596781903329835246127773592834515094627929740339951471909056379489069985589633464131312515598759531591521166867793861202296120711925573712029412089496497163555084467019645629372656551546413318504277488015736867391339622935687190869980028576941905957083293605821669262527470885998509205161269549217847509066178756428718806943128206278018604243045642549459394600758978584218392304065436767503383308644458863051595696435181439937326000757407328813994972313051892857785589993659480698705895119131210601207076130777896431564734744751951828410353220562944021884648200317455377000487161543043543412802654547509453065810443304930555316558803589090104104617152739356520366170013072091503334862590918113762117822166382212707859831282431170915054354631291394773405182417839052183754352915855392999119303253375653483289073817575445304077949704592061544088142638140864083973880968046998236115131324308054036150598632023647680623315016856624109095733495193144982863153113619576992402476456700941029318921431777101206327002963812948467795800100902159982924812443032448257242875761286798976184780216098710762226552862737110139495941104323066774422653528698754506301152308370385758550224108030925614622506437050608476186373534103907207262153921868818874994994799844648897878802855629113688523522457444657728636730686415585180770374964544847194928242742011602298895627129242677873335104514382223596558156272897793722290080515604062452810321084395008611886227227679070826205118478187833840769648704062228887560424207381819262143229847341661056721050434576787403548786851739618564693645214304302750351112601547973117570919870725312506929627696100148317825721718466665700781725145852026755761151081213065465397855841005985914614778761955467145852294616822425037566153856122120649416413399211395922870737934850429364152843704810633063357586112001858897161252141137760942208179274425971621802608002302437304723088218462980539101721525491606855611467062085291735182226669150353144075226463614490605413395528223467676695343832278735400898007364514950501204267670895702002416498834283848969057983110407119997279271202319409155232207295330519342161529274603488497513616419054613688382887074717109954917210696029761935088714665243592801541870140882309829083488519875809801721581882558313857396854676674418601786382876003761611835050578154015288065498304145338827385924931493229029379654429871922204779066436852473909317579273499767544196800871950355219048527501149097605768424617718917431518000464410193625854257389380920675801323442869033124072179478041053606180456018298766983434683755813597914320704989924835756631318440502897055579235985338780661837587073358957012007469621079771261711644522439235865714289404780909501535021276463798499378869728895463759700459135345145288532831710142977255872588790378197552799057682606463068128458245569001577009584485922604507644947526844217538552248120887332821514796404423036980953867022455879446490321116175724082505647078326925196393614936685737635980170906020107492325400979175961080109752123826701831412044999489545370217808685980491577477130680809431935579194079045319424944101119464666684432788866421648933957785718543279923133675932259716186940228248245568996818899462227606983016848574939912023094605098184313166612329019825211005660138273846754050344487451537818500580639636420071923944548361787924049439906255451243735097926547871396303225862550009747474787089994669301990086832395946736607071018768670287764221959099323807547143608898958415882251473547418828556530876410911364099192981091911204800823810045548377884933220636953396870243334869166981233575910316184865563317326383216890902800607917369417880785413832572338786649180841349544878014795125513091039820385993133299029453737780476866988146434025293470522091958086441467819793307385966459046309339790505290442957165831697341179395101095491585242168037547058938399385766871363714083336168083922300428381881382029398575859212404644807123183229467611162100255743801456991253845744005854886032606037500166798109373100024047124173978525514385552963862232154962527664975603067542251804609215140582979310881808657347265977883500914821010841462705844674432110260189556723604218483621166025523802038461377006744692200232360268878804179098656651290080337462408784709473852803637369238062498635875522086313857046454563391455824498480574556332578587774760408185390454106450003071756665037062025229625160096883562067418689346278832328251353309123457428127777719009369565448801354169950261210262474175062061063244248865803456746277850625710936730901272386660074066508063816054426923231726699522999713623806643109264249393485122265355259783853590467109572557108722331569104685009594205303730788019964283519968240217643946446388127630181967662330449249964527664764278050567021354322149182892770232003008699667036482645448191887534363795366625636175408409437356641478071260286189017339879044013048937676945817067307325557757617187861851955431483740994504626192147208195132409558692838004632562713043483491998370238909031328031634759907991819406427980638923496932736362119710721769810447980511812462211402108623078353288085951733230608330464198714884005961078981282102384217002875813513785278911414839161475389742344829342030722690585295556655876327593286372950151366853112733692804987596548353169022748743049400049493695567338845514257802900388937201297666700517536963210124980421625784572307241806754664029613148315973575102072994068610807128668287809919406624230281112164989012744914603625033078085448698274861039364240353426932885109050560912140298463617782214913888288506901437108808212190749089544206874723169114865834308007261135924044649734958569091344341781954333531928750174921159970770658202327350860487362895881910979083673565749435099861327880346836103550789784047612297354071989070312792542779971133175033386570747689005620568405096312346171578733282794027337457053797632943193272239853049992673125621999840711142752378413415485457537214296339880237673446857889939607625003107808764303134680411427460560375092709074707457042920093333524676136082980721931234837942235227257197402168336619528691179631744485811106519209727135126322408435494613192957663019037939985668323641877840675196203266907410881137085235247073398778910116622224929408895984956397544345316954764334484104717792298058839710842834397374127154306373673544786170751392266163667039113071429300545015625164178178366259598540838622956381576016502864184443745567434470486820258162532992118782737797438742978385014622659521604299112351693769627352490798656916837609676956251135992882062731053116613095805907216437881891308397804389032582502704937224759329197078072134586230933170363520353471358130306725713537913869521929720147991747567708563453506895168509147409409065842832573578854768482043978523526531099743945755745549132486701332232967727199214175155840688543749065402940450125810743644116215506669598575855709182453032317528488212471217291442687701508766417278833839183279092215531840827784710963815355281632886217802455645831282840109179573277545036640057899780170034960374497886362130521379967463615972790615864966157148445153362495522904057909498162289057863147942537518189550362577540811766239607408512573493717851746701731548490696035708954027854175406987425288116739360609982837829455438309874759930111933151128474657823929734138272978464223533034899846575857391513619658061917299093065418450385018060261522286182125979411258918533669253785743929347029242423113401709991903833198028932900350576439350914244902400536530856026410098719741527594263277178848306606010509035059258593954358182628014748608377889764386723011662669016239577658302098017489683946551028029266305978398981328873663356405493377364195810288617485647750912800560209244879317738911231663454786181640920951976976209352806710062640320785587896054439747383225736520934473198641473273461385778888407622511032085911458886588274200932979344705057887423763672865151549727720269370296896871681886844574389592712035068175786184075683101276399915716326928303244838859565552239875975982344219515148876784534813965795218880665884051514649991577839850615359247314738232346284890465124680233674374876926161034854480795842154885231435724730700612690938555909854943409167428032314263683585924206460019921088727386829747054544540660613091610688574987729268589671940778965409008923188648429661185183891523795338460324966715825099601646282519372738127828276383874251939672389604028528080988935770273949710560120211852306368141738745910246620824747472458879017089663389384091371647092820350840965148345002504061656788438447099143509917391343042398124801403614387280276412220764132692591363281313162071996294323607041159686321424364696271525861162013163173989261399489064445234761899406905452436202420220581911678717158656653398406678027052292774595126618873815075920626794198413685522074723997161455694720911801177752056073628438925307362905031003194913397393548462439753540064938468506930403845844848922455103522551846973441150888911847286618762412604678897518581262522159337147486941699937657589374954324781357195461426040348074924475726436008752853415462931337705684768731120627517616561072556102322592470737895392193442666962394765227704094602526893742460313170460281829363855312465922254854770784716147741120127700657292276928565428357900975230178925607749614421145459615020308931188660265958377666189349188223753399286081044525018644657265882545872924663728380249451194997272680108045910622929450457567119998989784466623015248034750528925882847588382554561955924317138273108456572171231647703372616242110700322481034155257280246265974852686342413015748568181785180390356883678626153577681835944949002246688532729903311545038965023931002146138022079519986379990059743475922083665224899407047775744002718528481220622431936284130906262034028478976932426916301804467375784588654221072557749665719544474068091264283974731574049535164985549092741956962739449427184611294307821689366496575150637452486777512816455045846788557585573938107728464960904064074884042130846187319662053018388641441723502520698639940282095736771968818497486662231411567944343620641936719224068299228041182453812931733744518008619413510088721502136272715235042717925570032305644927798648495990505222599074849581492282232689853270087037346001702446884271474410477601654955237143772357967861011229306383518417059102656582582696480839373938484538990546458274556720599318780240464461124628981027859075518197405259731806981212441724539785770468318537745053151873521422392030935626423738872822148101675678359770869549775125527368195196138761023819548140316840966292834223057284927551045931454551388686399176330788577612555124234779629361977370627005500218595149408888219319976945447676760274906201285328491528944903176562598052907193879036950236587018205388353339110089333729092161277492456620898796293283335261181300263329470852967817350027812249569143400350320104172834084954513851744199791129410480449046191077264469424487866507988975909772115062185019660090112762682249838055103747274217366580253765323348008995941526109983560960865861949926904685290757345023029454217504180715049807115474015650207966603071934761021908881737111915228837091254289591975641733825903974677628468030421875697511143250964456192075034673315673862699873692817158695644402709277098323481009080994846226499631442074698878846162812482068600921626875970651196872667872921586978030756687667377824041982167260394619931103014964948298270997395870582658189411483947586485864278661401603236415527934066588809857214628268743569115152417108469669193083348687627281302395816433424465898765967300459063728940794092101167541261893630431389462223830653629989436191746508338829912414566626149696633419491282068345762082497526234000786587951085688436194524470693267784693410399025125965678940101811068637893517839251319451262531568294463958400788704686462334175784581268480563669419595526382017210296527068712302916842295095574394380329144849083635680999215060054252591502742900654050701125736605789831664943313583153948087149435500905438297186456315285173296309756023560380892847085186645823016254247344526994467332432671925692457502348920601272787127836226333661913945283203585065836819553807141472874911319403664379771342946352572697158953639116923451061480295335789797867448014223414207178044886771653111428716868891736572692613896141089466174082766752960988836728717005427575318303198013714543628653139111422331199949895025071245826443178348833948647674801162725903986662314759897975631696436420414862618829879985192716261389723348999626121822874980605800447029751831073953599386860543922837300393167760661315853091387302896145094794084487908772148628298186149137678044864094090756340303383015020760271275954595451968862156233990539227247395535800526028128476198311407846612421851040516290939914007163798801347603678605106435452832608150558335829884057360228094064409570775248070015541254846780280430210753687352234133204110655842798989211525324095249999711965447281773375304736058138030708051865576732106095841276413636218094732471562675123940663847975447201505902282895221162902407607058925766200713436408862872268157150719108501465942988765711001987944773498811158541307674343229651906871102899673390932106158261293953106169144996942953975700253528976961625387120758710443361149138829015500281295227522240353726800124929437557478173270690731434378874751869892684425882598269472093394779219078585712869014156688890478938700747943617109298958014244414846582020366359633737389902899248355486281250115227657300014703047771398874711553939829604368623933334769726821022402908610331414779773540937417546836451321479306202294834527111712161570622708552346782122344091742566117635061407873886188196632527581773844640353264112968611916521309916264408374188188872548697704954583021465984075616702580036807922362771480625861851541294859659232963146854357259785697913353476686462981059649899277166773435862477105968918648166605286491666110343104891665914327705907030095694099447108786552559864743864178111147114781909752802412703050407602627188077479679133296749133338140694881664456292535531595001656502744165515054398897641781532922666317416007952066979632391352788906236141277653727311771115868273127673525618775696474258798333043643814222161331967725573635926682427314838066449180704227563114165796265400708120711285937622892486749839399406013172708451412447968169782165236596040025471596478810024855053671748871936020431310456194481968761864676176979757475216925728976927239072241518117180592800472018628572986245126606776709238113317649071533980868328294007951963616807688441720824120420165994572345070245711294738239188779551517938053401662452292192741277731838500056171424884810189527714224065334719990537292077187306180879500031591798634925617272294509336339667457816117472145315900822344493086748973485621372124515777175866440711750022929374752128233825010162285503893192165558466656572490182168622887915574376862653295990838795823606114886504597805448837813182470248222273441154348010153430830310762463752716156795968872065885739338629989031783807328355195340594317570926335473486147332981419101636380415390647770795572859902941914664462966637650981454575097212791651720427239169012596774801077357941079499705511970076157295313733100845306147356751256017912799489733643020819582627687943886250064958447764710035815729703698934229419018604957131714009145655591601727617189659158145071510723637420211723991559545405077821182827903822114580445920583951171566904290927997905725813765720559128688897060072837475842263463062301261414560786274717734749736451718744770831093338599510490933745850315309545627630683779364657776285112348007770696810191211483331760851621122594179055817167371160548294619950499161709763507700446139026029672650852940056278706891848604377120058381421498726756874056363470447269962640736952906343664914271934166995730537038152700322734438307268676236314268191632167756398690851180120392994612671253636737301626943945776810745177816422784003624602342432829495160319357644840566959468369582613615600500127260634105591496543358724574132055676895957504702610384048158068848768650640437749104577489413472259662804100951065748418691528542793177517802964102145831309368997296618815407989367001861672302976739845344445038222823123138783211309132403607564646583590653661643203914861192933912433283134408437501326233333063146660481805874371126719576376248558565339010951452718238391469200711686563021976314959376684099720235163662853574125845318980527546386028763964599845196148735716282908971186704521077689640940087670132171279846506376802904522704803416525297555024484806983411193716365551360612580608544664976248842461595771314640101562912207909384419727318490043134693027808038801346494739197382034717720928872924861399959665929808750868968144489001655621046857760176012219718005387112562537322058597045074969960828854019604507982422042806645142396655594992595706572286557620098270444426302233095535348177581321960328122709929821243197015744378114388810362297391715824584095112149640766038062361818207213050998291136987872990627747542946732597349411453767070605374435642177874587992623223287988089012823489678631416027307047650259459802010250798125991732326405426911261162102131596166662362809672170822602913224719568880629917757665759476592174733296984931319022217935439724174192043725245119008936696544687779715601749014353777834558138222617918090740482696093586985443098719087915566874903777370156552558982027075259917016883162753047179557355553126956454425226180606191232618326948316618506700097505234276592715378432272662313303245698261742134697142367999076245334910967601463975295737858243697394750131947981885125696286939891405332754686899449019664443828797964059184911595680327227469644952337097074111981663786704484445678900156047776803032807669294688123309372482428810629390593106414374606917279231078287208917499837323401585579452225919274242098236320679745018239104981388775389817484079817483341201704739914738490307969648951919730144169394108650884501312577344221358326799712217409515369403520901912223141044512962086166118857942824402047194954154717190329656843970084451803222323080821444112866235258746697035829182893397661950212018643029510608699666858948966573060570331863369045870829771481162118989000591459928993323238464671671573519072934554857048635311386238023854625659490906736277764111551648968196271596371224418231758596654300907989396825923215890265915027493428741455298353474275218923263500349121125485489613400659288380672154740173256786788462928301507058157174554868342573431345558927575571101054500860139713795375714135060591008571300735059446608233567714097875715494394794032761575024525575399569072813964836146273160036830026405944629984825085555224669776310712857331232470820543513153033512541293390923429850177630181011292803341859688171056849612773417801159534992335107948342333120275829681611689629239003741737543522724269066800220382666282754901995086024547794013384567052640987181015513925236910030413622401956707643261516506513048489874785726163075668453567589620185771686196613702639346542034801716391313632366232659468019840056621242294705770650361677455040089368136179789397121912083956586977755827216039009050233612095304512146894857504083656982201058969660880512448792389733965410187741610451139030846469728236336978956039840916666109305849389290869372971115335929850983023105023135948817649200032873388841866656070413564318905824441544988601671568506376620953845361797757139869403471369774369710982178499602937330281619725275080672362609614437528518267022114891472420106558051968675965468215915435524159758413537336544302686137520900534047340821492713638070347043846741332420492846599624249575504311986772047986016134749795307067978125172281865003340299503851732735992303605007979566204731230985407072264029467812763641141351101178792649124674807280501772230614025799557035597108482206879436504353705013613385292800188844781384858117219228119184799022826927356935348510046238065843070657532210725614582218617637869079392990132386413453807445421459211893723630361342044343320853858677901164326622018040084656512345628180056434833610655790152355084059058713229437150328740119380912911202843426046900032968150526052310996346355903290398840749810430239983920982766752444091372552938156521128906157660564783886858173790084149832743982249810837856057711787258130603244563661413266776224582205248526764034870173388767034131816152851373995835263463515404477683437982904927522869580445158704656203679992629890689985329111049287247512453821511203979873415424139397136850978005498172664310269499620744595770254996837874009747143798348796909801922539854520193944212697049412217116034330249694907537213380563272887169306914035340544893908673589607000293731110614947312990085847352569337468073771619943555990095264968058448207782169083630850562133526226772217182516052130381043175218102507388157232691505877839313926697663952564454484161457388207878188162333198476787459584931244606330286413340760312793221803813311836164506639003504872767417961017824403573133526163440602166949825244392371919457593494667802754843203185077882832388785713185463529536503713536827520449590831702861501660638705806272167298140229851524372555600432961680593372973286129901675806101485494395020918377177974476562883055929800959455053368577221825560726628618415120200815500166763598703890289762183241918583602178236755115765463790991910816931545995441424976414926230656792866635174608053077842051366774344965770704776233168141997750934718985516379065129137542728435831977189634114981528728177870208228990471680471255330120801595063969697856886990922250015061403229355153910278932407684940736848895859613348517733080578044675320137323776249073538044435234048602807266522723792927161222699565117964635681643764266490066322979288175772866819586144831283589614048451852400243826899421035395926495135328976564118455301757774060177659878373923450392585391146681883537253203651015023151259202234461832277425787893570468825105073148859856279982266906575469287161964505810667937991146635871269880523988872557700199391147896956300290417257129359739148979841992362075506715208949300287405635303682865326493664898298811173044087778537828296541635986078121184994607329478603373750002074577954230169160882446809501129406976095007636336297122102809890969819539178754711679699271748716865091082273405932101002946405535939685346197907635740653465316269933694772384039468475129652005659026267975606529752353489878386535608015454096905395347515081437610673341199932125568967645441846703071247857008714836932175150676715161339180442435186432631240547626809003965130827202079553172213673192699405374182758191015546518494477427182503797517824825747292547169752150429915604877272115651518124028509630185068828556542204661674199448400424365055110562983796918659998439116214353120571875261912232901996333469739850395514732251501290758541291682115091088643314223064845479626917699051259136908558495922683138472762967183981413831766303140550578026489801996476281580189033215621505254997827502320679512898825486088652771082988797250560781654790967053689484571302393801254212147668971576325633384387420510584864933741393068125082583329426806486928870340780551964846239307392474989065330497038034862665837056998568008912483971562235034837086070434612241398865632590183114012202458307741499134248118828695954940250719320173951670180183335678580167288232557973373929855733568825500617983157891265691002806619986551386101266898712846997324526012071871882570501344592888719001748939407050465919119733068316621377832468550130721545368610504111890962423717750458818623138921641388837540554067906983023733551605334979573230873223221611457583484310665565311496872281700509992513461733683473241800225485509783160572066402848473123596795507926977458043078388772269432125069403954920662082847271328322240049418600131537632026650365029196458171781587408452713831931012768219898642749593628390638892375688396411896061972186272231746031320314850753182055292364481052342467305132958088547807960798302884168955711370893071639875089880536978903134700700755778684922975389113021033584837528871979827661696623883279539870537980732763722275354790758568851807374938333094116354779172383308476422279738288960410359152076982120640858874200448162421217233600840223987461429932962221229882647713522228520448455874675923939105329744390778981102139904416597488104209972153451063155210129560489304596334821075651382897867389075991263085000992585428082273675305370964132634960874151349798671837104439801071469539752932236435267665716879753728682508130289858056608198283609945792566846374045254215452715694929391118558598736469760893293859939599470601882281217532864941169767701552389201845404119348488076794344308928455735810285586318712471546618276531633649372006878885054497300382431573176513565479270064366875712497031198832584395062630422943103683000389350524811316803209914068258319049896423091007886971031639900226994696176219007667275354673679264278735651092495717977673150738075291916265013242747277067737405978045162719495950678672076480668151208358063747705220615693791559157228317152916937508797771230726767270908485632471088947296620349319083611004723946491532371377593677786338797916342943921243389366032703297778564367252601442957947943945596128738818416165051691054959629161893939816436600484724280825576711951545077534304489331738024824339888983323793897911667153471835118601926631349791079312296377575506326060777599971194483766386000931078470496683549867109151115505821300409931180312057953255353747907340871821580002839940108916279776557559239591663523972391284383556310629391920737827835350095305069380236428355826987408165428275039874373680518022146161230562489878451057942505786101272530012733212197685711344742678050639308908419630936540228665776559710840412406108330650588845971000244690508568777755185582043742144961414200796850220613709007813877089236211922197753728858174963615850516614623641832247472778519799056292452177141141581130288149039248226999780357469080715756425026396942928105396712133345800062503793977916760075186357085907875415513110687549686151861270875405944614557624099926532504495500402281943271822951721171864409115138413808731468536976173978578925437073882163786989974744235565087213865957457804826219553733350818120500064342795174283043329044018626082242379936177156488286926462218309305964429785257814968502150827138270861376624881146890875780973753517680586834777984329545014935715609888799543986791919047386283090560479978041404743658051512059574559467834868765672350735985935937744278321200854082366844987368299073743525966145967149506621314362326444092544170730410027804397936437964920056149378248394824645655227398252303729718462574546491336578859397237932725931478453164382272119165205534787251318054743064729367710690294246486006975065871246048355015804595937039862313374393738785158832945566781272144442055613631499655050352290123194984525873679367828095223478986594098092953664228431810900766897392117285436905385476275951278767242158556514664852028829344571818452075076822793903795051720664800478991874246201637231628572838409285552504810026381034860714479903274862903518840262950804560965343587317593182367183721396834054710144857984967478101452499786347507661336636609058069728795942748070836495930203139518278310303205551310811539677371136016230720781819796616742533660674552106082253893081252782471250777892293135856793476040027940157858250844385334799521326580958326888827334272633580934999026392714518738540324918143840809726442563301180382860077248245682461517434209182969364288347613557272026396890589286975186834432980007049421294884056940676299677898932666589096982662409032335583990459111523968958930349965076015041559612961988214996514638557261887071219947700538227630355170382822377797392558330023469478302808145963905166927525731709683469580873668634738916596530713439353625669256926916992465846347782955580731962595594583819271430455212750072674389130154631435992113542870265986826258525806862880715968789675158619053643859814821712808551167789023432124502515204169239029215584620360346916587406540954420097736437488385921267126360250695347463543793199250382301128166823102128028178995259100268201579493602047836108238713945502756354053895885134871596180248238083723718898806202132699201286176770088200741314604154331952477781686725762160930639655472307459889580018102025490574273426014613370895328435720930253680349407113351245935850855985324139551794054804723509078249017890870820373423944258909606083270787710286963977033629236034643031713978295688573081748341505373662647598772866093335753842487049675744613457941744856330845474819227857633469430215203972728475370760501297377528488736261348593809639656470472063552301311566527014269526974350182074541527732934309166632268792888528321992114279411619220160418668834475489610664975272349444130101885655369400946086738725829668253191983618437828266527684322705963501341026357070279879020205729519944955649679593160390217437167207189961527490669969164247324574471976343032431696099556863928377892506320001102362525592329702645629723609705420006002249208556077876123573806322473915375156257790902690613067856509913323559643702975260597754069678948310044517898188652173112782449637513755411803373384402829920202553429292449179266866053304810213131226529472872712332835982319015217661031808801722648490148165538298542847206244074286523585918263358571426517295332394832450174520214178536947928305604722605658101604854457644540735838897266193110128112645460084054266104843431599911468646272385909135330755192075968818970446221409299630173096806934537878634283774566994026332861217421802959010052996385912912497447968402926490311972872397474619466575261284163794334753286091267312487140169592916086218183005725255297163497206437686249265238307836546323829518672780420325043258987505992098547195647428601548912374877032040507429988936313238770278781663873730462664950899541467951574625422867786897940071949422178804414985741646331785834265728437426264909105483598376914304789813302915422680481421018348837041045382453256861219839364224778801671202669283260913143464286284013884343419393883125512397312420228578543613628693190341222322430017526982655567167204239606834713264240504061262248490632958427258187092845684072419218695377161360364371747988729088824691271061549616215321412313191105303815266507772914420980261168226510288760782681441289245109800151499832320132219613196660549853177886306909620943182865973652942094511975181529044848818491350108471028560076136247591223954146998199542947174628463368439053727778806856395982247326780141399974140676796339712654835787393687937371748971641090039597645836408243974865450197949629842580016837267592646724347631351824836167115188575824911727726433360642960899017918962797634461474542399124462922439285418197997481688592901425724015372010485207101830028183510130692021928651853458090545961077616376595415528832715206260512177100798730108527337214805599456476995624600722392414531066314366252329558958068343538829036660863393990751652542183534119654260577386971006056946246884082836796641243795847892303394474263154712137382179157907498527476174281149449610530358631231076623721290243436696690130747135637564287208834891852138530916906831809095714135072491682605583184028942020541813447864955857282097941738067234525675745260916297356525483254803929407706230628295446482895349656718641749939477173719326985465412822581660010831505382125466178533772632228477949327728192268578336898209575550443768069627877339958366167585333398820327731991769477507833365255765516380702517110364393023809571394638942483034489183580110552243910252101864775115292340743811824185421075430877210757870378454762164497329727255485183878032066540055657884325520083116054212266439557593292905374122556311874497111861541385958290580523778193787849910927691841612442084832773888534825593951851460087713658265782983179250564162226797152893312413980557695320705865945130152220295455790639917415140811035185521359340546016915600098566907766945249145530656023741452094847711071594513130107524703181269008243462143831755287217075834508157548961452480155489447647442653268196262245515701058392542718360663466117990907318577778196982544630309986904936066489442003709416307307203687731148919992570280654797547844355222710241030600002163772687466647284411635146449862950206753636004950771195680557822703103134738626421621011272718551744185381962554190804953113524538923018997958247147825029591006125723844795523520796208681447833250601509295025966019290864649400720013814364438384790914913574682450036749362745158960889847844139630596815052610646101103244080177181512953465004240896208245252143148149622983549963731707185650168413018152852019989971164642487413450780330345874576780430934056962637258943156389417005239465411356204904563903929809936085805544105671575722130756212728030116794595326694959886704120595076703158459684899983421476564664300839763240755407218343319380848795396464767480770686531412680423300358308294979616108261125855106762963307638926724210143972618843662346984581007221566171716775922986146995835417582265835031615119122022842874170099035516447134784986114888852031892665655983835520716914473959795547033673836449254645777863123864582123910820955263831688846012391288851211707306326241770490632702195231426117884516312792052453854868874546633382844152534230931423987797899954198765703778846882265772843371451666441390568455766220165781096920120857849786600204312749545725988026677049220403190703645160501380449727872042744524281335451957541092931422634829214563760298528723090168723404402001520797766146210137127077347904006167696897291158109869535288350816322123509553265958798604399913689285267579370537493351036405656757353296010477113715389938518773693776748889033264729602473553188157342963629392951092528748759933124922580660139728624809701561567966427806660692124478323386132148948348010672126978449662682558334036676238185811622948283103452630769661341930300544302716245023550542066206911986075437270609523326503507988332305364319714782898068711671820828113942966789637836708887133442185838590350856850788702475364173069852936294538248346814390161626839727609971703235585396751578509569951793406068888289391030541148497265590683772284212025495681521781376774205344385694265839889157820580986027790534698483905080745020515722482744070957935404549445391298125292604943639336080184468718195525387515711774948039075552756524206858002002133148138017186767351709116592900430004367407086271920359411682787281013364880545246463432431002344124809377344757277751061984516482116099239676804820927463287646709856301929314803572254494071305675750855468042919405644913882257007304495119426259279924684359438943752882463889550667481275007454219739456641193159119242648092909488889387088761565796115486791557640418391510041963664047810215216027474275448890464032812852057300972599874350902356281060125240569430448208869757847164173240036151448963383596581265543991414132404384550184576756041943595335336896978178627608573771276336880402141801731366969788085346649779452948484748300163522425319378943935697467562111087773201478271861792509600235835905346489171935565796516073043083648541542952214083512634449314298741755822130347851865092545696227371243367460424890830390867824254607115560005024340109603639722209943448320403696605636950048051763034913706439262016124343179498894760465564191295029037557186220925742130220633280683812764001991158350186952503694049453966242056884360377358338154267113879207439058642916691662377293919324843161019785009763451560722046537491583311369985834204459101496230639371157664738378202149659091143431481141171043280581577365911020992208359894750728037033353621189531283015914715155726120265669517498860407616330370119950871197756473893038668582931869990950462434651292131002984178088878608205304288075633812876358004444345140081258931662575810478312390740284476327448135668041677828430321761508530832135143020873139583755231065712010164384085973623896537055967071240666561749692938369730860675295558993929670056956057323156421074297680058699868617650472642341543792136302512227980657445366417774123724251794348320400899968273083304952524103351730460103329103452265588252400285089056421896124518300332124560549609550102711174079391108784213843867921778938322404038594809331329154617945716601406852061984381030321389003190417137944538639065394580441272002362415976810946534050353153692670661264236769688394439130259874849890454742831505267112967706876917278888947126673400351036131011276855039506851886030223143913378184881379699636934126038717987755038121484816281021890574798344407474012428276133273008604018288077090507378643378820340455742248112457584392922767584769881807460465464343343728140510222342225182332087685403452542296892620026694501258291636596690183293346487913794557412986348586507350413533716656451007790573690656539164407395934770905006227996970654460126643196127039600785149182625644069566752845710027481846778521558211683993559008756111112036523902397352883746535527906547786491598399905424552716375754427551779015775181692693282969405567408233230944580235543987050284498714099234095394438113094783977306921327055157812185461837834743725299244402656687802881087223213034870440305114880540826498213525939318368394457188126907982141499432799993984098850974421629418393079449737165291426724896564782956037809549584356152065346707576814374595007175077216369420290249432789649717425204557299977445098319476051367915136942197400603182483142465875213949706631612528599811163801501072899972261549100015178474334200254288530815412001267884970554852682276300980047602614942255284754417090373948963339227490718529165737517505330470894646050149101966913117711198517273327140214898061463708003017533251719338518319116164588040192622781938728108281920174694549142877683682140194385690853388273878772238775191958330531460328696201049499008148146518152529225753385864425884647876238155936997568432732368964648558890351790990051509487036414372430025248299146561659739324464571505149353439019605418184269274335510931691325542249656019482198243461813107483566742999424450350928835952769159626655536071089079229896727949925647438926218784886230172752010034069979203543227176095019448158807755139909590678105403661986137133008763093164350882255135148231171754152550611900711246795402494262605293963662384085417542551316808052957360596557647568207093110733626304908751125361737630193560243371302614395095889292671321717903412578072387177541483664559921151504525721867016184192542976930071267353913095397515602565274467687369545552544071662877564922472472683694516555515260187298864696072487942721031953969114323243217001351357716512928220775792939803021131300270711237433542721590150419378281051475801155299569795158364782645168046320136250664472375840437822217562829535198861289177983229036604178685574961881628553734696244443053728145570487761309026287243354924923224739730120510884381470468572484331367302601530245573671582703520081323290583460462909714120431540591566497432797068655300474727922512798993867435916316427688175573987857507545035175431724529606512206066382960168926513002174939177411041617053884700135690467217554483636589327064871392887535595542576517007756788638443073703544636968915598169451698655920457846214676574813680862841702383759684786190751624203168362636966844457519086395769848462121692776097715715116306725834697323066256154200480713092686942701519381857382887954132374458897378666211136498477893544249731115469666968222885625518961394249492245836036050025561044122767660835444368711940971053168291375400033960106104341973914225872360392648503310547354058842177298003221103571501229695895288651103893018949502436934310117222131171936086821681864043898212399433039414097109491958450128196540075461920636132103106796802205891038145826965682597600198051982236611366497943502441237169528920770306308738370980376333019124775855069408519483830453782543955461678591661059113373534641699450941284132331022071717346708248581854361528989682417900863955470506130345066311322926414301028233733921897477090749369380911912564315128060127062721631379692342428342719858714115746268136279083294947719885141267079456490566967163766109345288533979194196997373834951673258733097288583714379335280455185335391659515003264258710671855032786751561359991187370628471164099635860714895965950182234954776219165944382817937539490461411330552846887994142284349743004665541353468534985774276379991305303161178732431570090832744596344326109099000570571049235203383173002496517368153534818142337089877763696287057142030969300416219796649163794236947297893833553178896631817039004428807298025232638787780460657886931845204274215234165102172076836365029873297400800367962034760605827001123218214085595791832152718668509650482613380579720824524736501895486831415655523134664232813482914625983600986811987856756745889070591988065636667727053917987039417465350348623396753947099447437870427620329618380951524881097320451684562647943540691873124930422673858012058963631604664540966827029036016835441480068929771028563667881970999885819527942051552430611824415378359596509484300432179347580020196090547394041372624928774494871203085915770051159317587935005858166843575130327768147871170897949595068012294966329563739321904002240097869559456279718373457215574892936461068864979034710493030892525851318654531704603669179938572084033869259155964173978167797826376118895194474497877038989464705439662064486688641692843438775786762626361646846120083810880725868101209993962284650974242803080309162082544975150143454995482802262599338823887989791511286945738390458092709395708309687785677299975858589130615230561984743336844900197341886492291178014333876606685541967470573029780609860398928760371640994992750960232116692596814526688544501118235718469742345289486588846221189160316037271882489017407557904098336652832232906098329364826484493694750519330312129117176066290699048581892205185910611918286558322404993368401941194268595326801694620488405597349401511208509992512045111035404029818800140634334346372581944466674508846414121039689921928698262832251124894784744699305420199793788189337674407587676112667746462525555546732109249626064892937846325867861394408601042003095095863520613005453851567535141924843964538473969134655733693634340571423476192319039960036651775841009301191566084910890963810186063247860357245833628484137104555163500698845941319383461225210508626920016348754204550110809213989587109227719884530123311493694909634349488392795787524837971796239350131181078708344444988475027580713971140477723701261554102563182763252505537542567440966058727933069902457875927016703017718926959389553555960727509955720000990903297294733553821477812388472662583849328165036828421286221830504601049021701612597805792407625252876824686796654382449057878200543060307971109969219657386609494506239855729798120947341984219811450540980822568912043100026223909920180070131132086866403488124540325943042697052714016362424773910918863487189165464540724422031818336951686966466847696374307142284291557382679678564383176605970220987973929851248094951429647823433442636359847780588680316132942455532352507500464375626703540348581338427289616958512699669819517687918781594798678709640432328939149705016579445464586480787590610095584140943554962068938633184449654337671728507384982257519838096925833361195014284566071109559265732521158847711837787111688116242529647958236364448203605195935688493943207946685801264631643688786719625684355870351198296565033044689657638644500427286510403798914827070777645302945439594447840989607031246772286976111337393551029656824574033900578266681582059071277050894456065720431766426550515324008849827169893241590207965385838368258411959700842977828880471709638898689686635942042631611129159878054697526761665168856012450441662663300584838981752476818070451556894122743181597150271597726646588138788893686214004954976370762640498600728218787551976030501871986770658176318705074995582128537378604864500587872688998815073432374073875925165565811130038411922659674468729279819917957740400694691916452282816294459319209724219146142799424467193051057600330878001791780002983894432191809855419266482224794613210743395718812452034712970419440907800220475348124355328131894976517756162021581003356874548574839593207647134040961254111378074035021530728835032322372043052922118692935295668696520577661349269040071068557422677869035398176876052005696371671858388843320916940408609777955771290803157412892697046325941987979125899001770542709616654454334651052481262004117770101355852835115577503879811605548782014420260060928857121590499715946416161090193860312547099720276034225270882278187034914658380437929144491127884568772305600090362640137701661997693397767949665523647964605190145961856578330428427265446261425403443110215441030273807632723933511403444762030988975625099634602520333956610983232471897361871358746168442484366588866570758463020034767325712858164618638779747457193422440462615215705772379336572475085337725458225650943456620557707348666924970943019527088950268375289084348311496107651988349591389377702813028675025248761524495362318979234216399582088237831989399477523225760305475835368294471092539971595076304505489385880527492131936063944705737963545634445122503470114596216987271941633950609617433762217263550699431134446108349235005139252331921074237125884822753810994847207213336298732661556452172731024991981964693698745079424527131300330791376606631267225732412627426263871390209187160731301512541765774539915130713795873685047360574154753424366988848364985218209136330082017942140971232490978168217682958708598364589053072957934620901174747297472571152793318641138699244270021421150583243364005425907413152517739793569238925133946238016536123887109168344932831759259404450817338647391676521522200411212970705675497890727775223837846162461437058322109040885541316982008704121425810671193836899764027892085219313625914493493649508936038467258734251250795411065542108470606885922732036240620354530248006305440696887889643980168387432925644443306909575930412397954565400206465729972531055201268230058493988520964678442217688088769459690461447988554734585920207135545873410590834518030567294365274635690468474581828785233589883616078610492952574003445078509591781137228769940665502675971415418152065664170353735366887925966212795109618926430434323267225846459141646893863799776583068168678854391374243131347304715721316180528321805768850521135376708504743944411903282742726209542573369259858822462079482097366158269311240784943626084056175960582902132191619123794161686072358508440837261425563623522969549220956439634188889723937254264602579555324264600688768135124474726297113099227436068896798696570411093000722866376057013442710747402468085850882232232330190340516133474854363045106989059011957692432432791749140252751193503565454756086863449537525786959520638894286403669177314432637779373610191393294431313198655521736059909684258130500182212920416124671273274139965204556555150507213609429442352480338590023001128196450840655759456510463605215300337233931408112898028780505220601865937356457703288733334896917001478197835588231350426875541966730619010121084418782045180876428454419898997779094684461501858409794190873762791550639924816386182922800445123973699860424226390054577853927891075380160298083986888671742309205840328820743888682213891701490378508967191089769236660238553545946938158826916572118099618326471247303712730269734125933147322190810789444171854069100185319537673101135194612918718804197549119781543044172391908406385312016058357155307632347212004680138320586117401622536865290121914630541146087150638137207618794367749370929195041706021224101963308690182608539435358542825779815065583321846366317110432305022044897928195977094339036624488546222238224895641032401130101556463322197868748232934336614243113963298487784936982293744121240478825317504838500274220173873776289069740250623439381981878161245063517645156306622000753406715019681918643531963129953826538911466237011384940915192241985450471184931717594480654115767937943426187270847517265884579379717462224960099833180547976528723951826351170190694745979765015401911539697931534942617538933635775220322139441589432724042090412772144481783912846519044221191178679225889012020634424768657539043312726912845278417763863162424007142771892036418503743101065412909787251770859718610425140910578999646058762027988265814549668973521139011285113356550887718822486682494765318115341205936686412636054678162307126204379098083914653819039090293544206434768728675014383873741785436271399063159671351951456467823451596758015928161975021944393119225212954832074548880439944325714182404869430843577780314959426847621714840960709005148776756792898645155962738231780040890136690241970351224848695917180622553151436895066977429399976272984449867599267679973265786132720825682202270064401967276104512656720037389178352013762790462818801996132874220327212574667185397670558374628461031051585602926087113147984762440733531233798629461025544413906393459785093574272975934076280497035782458816856623549445678656614670745348096841959199809359556177937196768953664378398693844297811894019158420177392246289913522250860563857501374158679456217665458341579043255430962711913975517632321516853455092285055717231174002511615773287520375810689764648278771833089437581619147329312325037267569286983038171574512523752050297698898776784254346856193644374041105354361896445315033606450373440656907434094587637001092614531029243729799798665043989526723012014993736758843727283227676706711077030186380460946867273965308701521609296458844116635690163701696144362572586162497305554875361495155466243820097938538727008128328159924702535043413963933603104913530279371107917101813448447974217838757836386083783310331780269702232743845116404064452877186900098753059544151169656811024082825781183643598756652986030164345613797566961289613559197193822823995536163040293758197247845761983430573179527471089676621542515711905345710802785781038385289510186689035750092332721459631993858013760404587868206660621017033867143161495479545047048672473057451769092314960505929703285754261335867904831997956590243992105100658675304723018811391343570968009580711854172070148194496811651623895822136484591159239560474630463763614779473687643196982921196975111755305432426380031866632904798572531522128108168876918590651780776293768836825422800739536685360525156050291284990142541898160134823916204188336820033151732947768632083348644454421461654373000475892387399102342971603858411548321061742390288209986893234103899211840094540962903797256082954663364649008948139051874127927229208492187186162002933335214562535665896907257488257644914159580591813584745059752612894116453512087852616466679397104625386702617255621488357108149545589022847259436405678745202832855026428520054501689942716377889697207952782622843073446022706995047048871737429918424865875154348023483750930458878637850257447485309423332592589657410058774919666000777145870938305149132311666141558358358654658755392408183041550525082868220504916353501800061896128452991237031704169539126870491132691145931137056162581384650580692497090883462139747360111007161708131046259512552471868369085529449257590260514816451770483454954010446432430170408848348510739928144739524697098590353783914339554649479120168623383024767922636802643680143681480134283763971893272522739314200879856459021635528709463320104945889775768691712699226350003271093677026497226267131214407897974206394223112047209201733909945713508298087551639296041967006017374163875119432181281126008525916225055887286982956211701173617831357406335136744163279887682784364045964780549763443980216724779797375964769985593585356476386410573048770021356854963956049744846237630985163586890565701624150487878018239033770294616444129928312297870464499172479645786455136493024729815011718692468974311036746056524255712218567083336885783795092475503898666797967356666214306893822600915207210968199659170058272951177567880165936830989180179062248501006352044452896656757819715017438085788878592112369102226633142271469229526695051863544207864205602953015300885076623586355700512763244333030434629728770647564884050587394974839367900418991427776621940414445470524904726070158094231990377238453349289704924195721910562162341670558617965817696318153982841951749763095997353832162462450937391151278015799681429218431038919587816039773772292573880040787934920958329103129524418912862090146716804063487871750792278977238795117547458414938002640284142501731862366638398054048592685456357354861891905034230528174064663127010510728427769419148521127071753726588006837598912755694416745177776667383831676606708950866277044217707070055624928881277662474787478271624504302664740057503771223149238139513715031260185165149631789616444440613018380563473356134149679244906530882935142670122111774631239879627008390944820154481677993455432658830212297717922570475077579557482697029602905204713046987327068953724917311435276612349844264680465588644902408185804477457342424259616773275881113589630228396944604412927756310148288999794199207662011679220594340057125472702344497259479459645900648029892171105455250297762098479980442484170833641373400731067615843253453189336453768938829491280775630342439525762296422438611252201259166478262548551958566190302374017564514758122749955624486888012789097556243200059844544424184071473605515868389817634192302419999055590087995553092820821353030176471567444856535850932091869491624865581955292275290603994908854058485052752297324168112116011784531655160933510492548490862886385862300547879537296339581117910995931002628414882026956602591282693604403887615033577556272914900916017821821615275937335826361380067022895194988081049581348142579021599252869694559970808519119823761562237495536297690252419087857701651593249010265297825007023589872119724538332780060119942143033773014105224395522730300594130013076803354734216479355426904026773122634386720418483831089707675540174908376333573778305131503262520873924674645565992695069566962427947503241399860940713603694321843564128077457799288101776290895353553938678072442015828479809790785889819958024759123779735920706067135124036441943635317202312572548007345335253922162362802825608603608985303775771508488512379393518851210978293494898526465959472614483531888629606177968715858144278183326996729559903974362524428875816411167913717097193866883041173146282945384276827019947717192510653314511394084768485363964143345647711660290979801979614424396555882841026236351968656362766589965857104812516746099531063693828520101694578719889372395192233249676618909498986938525012263748262518691523623656823873452443389900049424739388720303652688628676025088768592487010100909700411575704483939961066276233240772059301539044279050429313017897644007830128480304131938278956254276719694590207621387611799370956210074014469308310929574348612281094889667960959965233185964661272158037600087232943421549391496086872213222534207647253031574905290029078764013179552746013925861910907683489447614623677692983884453006877605228500571895234622165564229367028158361350409716458652773193655451119889255792056318354132102751237621921722125933294160751893896248404496994980763281215361390486606728736955026913470159513834526722791364494586321259364177669640937861303832738755291465530631722972315639405365160218781949530857217253271640507168477276010793002764095299318648394506434683171548478269341564225977836713562891755823004925391971545945259524726551365836207605137678671598090161618999161946517149763099651964494110402216612748052542198577120741478823762970414405850200864617732951071808505815387459985729331024069498825696636623536094676417303086900866498357622829511851167538793251523801083714609488252015512949050625076530450649749014010897565526490729622933597083826801171637663626666002558443030520715331192223048112039213808777116061471815615814394409599500169021446081720992181140191686575203646452401595440842413659538743904716597582051109760310003476690378501004019849272940961319006893297754944321528103741314247658320148503631439952551114007206403404710360917932730195088202698579578034244392265688803801189474629639922210484177877755059927757026835946209096142431981829154741978179398278876039667441870360336014604214965486801027838213780385015279528012157881444420919217737811412056435623580739444860314529643931386674567945230990587486340951037102930877850187424063058728768489115661420218595563590750470122739177250475113827581657496750165505307663582138013274466374268660180655937115250947558209420244025165038140570476523920278476402141928260784046268157452048718231939556420934676789878205411013816813498819038066209572552488305976158123072476779675429270424047906936394216452955286102930815170268312568512445788292077331207702202079007277017340936356784443526628937413811938052500745613439414432765242612711289757558923354307704125310372543222571415502378336039186227337373150942639054116423021578175737340596673074583360731443643864862289579933028192217515380047808638458083292874004244864160986513822509075167800479806686289242119146831573964798013534537061611370912872446811187482375635341779200599848167893640979474596955589244738701213953444709338939533258873649600203406523610998095477169611763851060262933161986697503762785268084731282967147385133058874801433052257790241890539468471463839862286203329795783761030170080183620500999429412039862448665717252821590463679639730341021007768820704267455697100657790532572337810358814306347707189059958854449749314689471442150980276327726678946304481814510993617912481659856066665907753673370574973150808136378693910704452862888266361194732059125231148576722517828240887984960496298295579207832919275917893147218576321530577505825748058168742505533674508503757841647059655267591658367144681412720495994984069046299600908595092949540035153417610756909172117499661599295063931599351871217756216553500452887187987727373855423244640238558065673737456333368685755547221918453674388636369897509287850645040794403912046666165920706318134612193534852608740845440551813697102978333307395160844015529560805920747594169767933022482771379453820361877579562474134435985408664362418460527432892933957456589685132532022346436876883360748665363087575870436957503984435331181135811257292295437060805823307426169062069163314237173205002849997729075619443124450061954115707282973315116180810813889462560630720166512864782920992045534841320127771616162391148251064080792080084171432919615768186777640714593565717155922401860616471543426584900982192910505934915255009666166615497951839691897611850456570260044527373015501441441212233033397540982077542847078324664227046871862468450225326919454312908266945223243701805885040568426158880160352760107140862697515072801566022298590823815175489402995118065710465629496410697347875948102448704605376160093455381572915401988170224133336484813641085020649417993571176420064222675110457760283247196992673223140032550559300203000145550211845228095373550834291160271839878720177489040209961692037702491815812500896156611980783435192558482194403183767511067966502330008791614306653638649624855821629778374465541813608711195904646582735998483717326478971262420330525262085921223218096466853144055199308921848260174382819406645955965153679001755702752569111622676504888531182763267628126374982085433615832079877975656526267525921558183198257794955528129366890055807242434156733520560038528237955008470377638500000014520382067373860794575495336042353577897227584688029008975635230617430048111705358469646132440162544027678492495778125656952066022159135379597045570428443491955392898493118405033107436548492011923362128665081931482023480701982908689293923510325171843627619816354737848150879485721302797464380934782671556758565520484489214061798250981938793658397995104955771216722298796832594696815296608666607872121485543109988860371156679647609857984871932206061646881080776823944422795395370914159292924664223056248666867846715873441677404236773739444194808079449773990245543508818856694432453917840668903358669558600680292977520043704191887860029932174008148225274986568406195959024561988286806636646893163899439585409060925071140324750510486012650796202659257499812596612453175632841194828554148933009747939729530968385598743945403850322130917509914975456852245118953922019681034479054533047630229275470677639431382540671151394956254942466033148777884382227611086943878280573440722476469092938081578275483250949419406174658168857133899078601610719508716922246136392874998666777754714234976527447085935603525121950353444767917482409697195029858962320271849851479807948475024219957818195729884532179718072733644997842143323017935828278999270727682073187346834486271379788854114157866625557653610977693015076236075974882855367972352004640504370105444249811254930328509740992177719312857288749281809506782720026043807462555618795176638167657092591868988826862903105390663923856624704807201412624647811429938075270659672402522854609516231231317266999757321973634747071244705085251767017268687773187508785223376214585162759964572999019426591758511884043093409519271154323233332075832133316048845055100014240436241861292040190502447435039027164830386395248862164737245951344278573599088637360211215494300426044558335378281925128534253212260226926934957583601020720741509485700336780328754474194561245677167144686914823564929375945100081095607698935313615171128715697369950685815170931512634804910795934971604897635208950866261096684681403950520322889473016434079081007834078645170192740362384438807715136613754714221704810792021751329796654740824588068470133813785711558406863298455348486687002785558455247716642219681826111714092175556849626522546326205481162647987621255612173206542176638441691763367178135075046412906298438018486157727019023158344101486656625987245452307509647584056894803018509998255548178568534365829166053204945248841968356021343888714827582023219407658722629364410663571486478498282918799829821038192198130611064375616383288196040562168313194388113366908266056427769513793935316439822830860257919309803987874026112775412050293870976252263518439712422991369545733817388942972894399880321310833502421911293488429318386838069544816561159644556013452112641159405139489017186425204304099300536208410050863625917254314303680818571978648063232003096382061440679413856430596506045889407305567562845911001070047530662599662940092890552970341139318668973570438186021884595898871104093134437644406532750751324985834783321149315260408389275826764858139276243402027259111854950303075330142597450017046739882167684972623897677129840499036487222462623171119763507009544376938133749126414332996946333057427336607606271621274295333534899434569900491765670219010751614435432942453466744765115051039617869974067038955776806920033280033749734627209040734716197069237392752059578078596781150366153044831883979514923159728115832690949227271796229507150990546004193026662312533978866226467059991933482828183415621141570118381687523488491861357645197033024628626075399109576433350188492437867842997943412039685303981630254463967070845576014566018511509242680836222146762106910930428291235760445145703288316052119116479567343580555232122774764846086126984455866309351214258428009373966632863561472606769157595808791675011287467210953146614554510962484903450339264226807297182908292306051037809928516534094246475838998999925749564941532288825208834866109208279658644890731035342246347864759253865308065077917758329262082564660541883242170132101118824782062179471561778288485668753891500048897789459564340193741202958677949844865539535611888409769229859765297440319359646568334898268881135937167367579391016800238172051413463466115505785658998110521767103082020999357569086719707311069546756643424077756080766221565981463547350070131091125896330120786799077146939299585220591078793369010915420609765241461527156756657969504004227187030206670578938276061296127494147836904029817198913013529305276864985328676813506460440043814368401633296990230453837396369722039980444494014425040816130230808020898020084936220475566489077001531804089670170156019888801411581360254163732142544043647558979470924977355957874683783356805758974976981431477159877460171068991742032107634205201919717473978950096763886253524411271139981190672200026707095200532461719696244437575466033932045006304794282950533328115560755680631542691287185174501033947666790666613713857250589216160376471980829172739066706786693174760158330152543702285060510970206270459832987593050326744627246431554578931189188519622308880878633050258444099246690531745334671469448600843324616636227740658472446635031536707098732762465483201606174277674860453183450792404252851039237294535224562826296726061614663230995019284961857726868559431725391105509412160665679872749983254983439138550027059477397523623774279817815306983237678405831236710292013001784838798311055514334469508710869046402179443454502030191262533883882915771117153557784125090885611536359001518794749860202402117039214565893590845687728025523902117846046399820410419136759064178277748372504577558975693796830897908443049000815100928041502759375472273692208412660455592485623323202982490011168514828635156514080173307896012664416485211604664439982767756327115636950163182259762285597307954109077063221109868249452910967950725348294173444867455341477463945043214927324795470459201098906868558171431159552272588663082783195864829629228983767365492771998019506531019924803177770369909609239687180580357626843012523426567155528664669599561173488053518425124700242650590185177918923640246030430833120849986539554397267377348655202354898708020615878080769745892404269007041587267904795150595049719362337421547108213201517462705921014049567399779294040759339037781806559786588513951977406837342086775092842167546598168456018772438840368274246066525121318516417093003946646550036249005738521255460197859580005164958428012951226614086188639939823136677542863973549881851657694490406603185257747625300662140227500921953723390085357657592308291205294371502108007900553211247807988167075216598984794697625925702840191676228850400691608467725788911321188974468515503342362267207193418067359574304491482783726323042949365476534532739523997848377663304905809956506571641101530822945685907165536135240637379870119040144038135295708356314077747520947291295146527755100246877429101957450399497259471772463882095358419311087338055925574834081641130666345479858427176691292404794834673803216999693975814426713398724763533851452019428665245569888228708843598676829037580801784708881987370304827258958365701598847165032348453872928673245797769660026857364328975384741867424157308959471529362898087716288202377870461615858111974073832095739409027590477746610605043039757419538268623169274350784047931854208275207478258628633963555526550773918745708237768107666183602490116374044431153139847930886610359265932974145303972153841897198553254577527428268251751907535280234347182615649577768691651818590368440318849810689683056966877791487883649549481425747225301072890947338543676350918868576283886247959856460937185980501728675034619696923089269294633771396760731082375831106068338166255304827820506866005801403568836634727623048871224056084773220797383634700913135520984933619717797041179419507520038067845573827571022078978821306501499383012742851935266185607464556974265773218151712398269084019784179148015181609551748633239290616149559114101439754761378768064555523276886186086744089375899064716764472884504296875431555794164520453617757606712588807459020571491688571166410431314268255391752521559857833322408823512139780233681578984398758768446107045387074791823600553556744266393331334064010740654032756944515375443385227410548565430615805066205866642619733126804483639635705020851020181965269138996599564010716063153442151807307985279697662597728814298969002281002281688823066566442112176743900897223781647998354960709313979691911481741657122858497056075287509740312268110755141713711650727720759844889472610221074990160877877199081417821046860064439327709096568367324648222154644470391999770030154246553352893967666759018411741819923678108819718391838602783354900071124102377076487267587169542178946645942256790961204109003261912195306019727502359829798123245330007638641406557456654838993772209392272853071369587363986263971122362560101225709108736170797413373804536007029161334369544711093399375637864336471054472671613348467517773933641223718940821131480949663190780231413756248153522082719759786651723416122034463026681065837064565704815806075072571114383333334847653995634561755319601001961548589965436999275288827834115589956649034825340747983706893889182230059588300194505686979018728386105264197847990975848568431139985127441608291501312578964049223616217014253980707394592631908126286734198223873539882828182572079644598824398388913493092563662537748857598049353685265551327369801713623555417684453642141523416071728477052304529232060293706346291116175252597230427754193678933258522219378195534629855901911282369105974419898087691142077489518638790097539851844891726679208534878613093283495208137057017604777198444473867233211486538177594633959965922220192103046990196468816147493993419528033654195549956456850090928770355741734984226945434557653043593595954703455574973209650592758395033664866870784037612922462390801721658237232219516118454176802859370476491797945150439340500552231746935530315562401070288342456568207649430887429498391900788101862363714930422908858395922476062429980850086256151607399631050727159931292601670963217318474089324495744146503491108663486161709116334581682909428073217507173422594705837724379789209059710556307107710712571721525798441415123655264149420051503793708047300233221066109240999567860332158855700132593595198037524263237006472631723987222333253481833066213454502339792860470526415033043968997882403626754722391212873833297853246134772549826969327538269711159821604086550390010583182313267041277776832372493941066296582513273644193946447269691049916838308769321743705153280174604414941753907666244141409125954260229691583895920003492645207177891349380915409275111732976077239447175827561120547340386677489122265320661656282230991295861670782886411934595604693791573353317713554682875780699665081044006075976296516689642473228541980430877152178638083728295300671192830175498660861710110494584077847693532977392396117331360797059921872946437323582377256242006114026627182982855840547145851003361813053418085313884123092147743770047407982466653090844612776672715144633637091669486979566140498710957315495827933369299641124739607089137004207971946977753530262931748661369705005219995029251473346134573465997714770239759767702464056061983144471301937190432337677362861833671282728178140088004759525179888479891231923984883463035750156538794037005918725405931784430197285343590935313843831227336603966877448892320801657101192845681680454039191791542626157338114319804755521667923371559497909782085532035638047449036214490485438173941878439814086507361868268638904587031169163076337784264023669382217544506083666901912987887288941421285060417105476026420787887139658488094839815850795371394546178499449401261849584172565586662269187745861141184902432889872765002792755988487422908644054575876918024649775640107985659313415508209675857824345870971293504601093397695286680249607305341133732520636210384240701243481276610400874746574599512157959791319814047296524916468083900621305275740968884140259614886726918149075976766397225616519855755041790153681802213930777673095254158600029993973760820814426574420367288619018456533551984299032819063835624916750033758752722988277955718850013854107223217188114681909164239859866845220043080267698355637430547660326323886205243847418886343094847403942960405716044146779659163648202770542051663304313034408048862983720595014564979652376922686816616593921467338415125896014326995490282857255279200830626146602066920353161436858842775903071795127604287346925056970440893985753162915459197056116485724169785222094517632013358518199278081879691120960068639943733143651257128368214280694737412980398853978700653195949677807704376112362257647931412619233480005729632752440455131105068955833513335553510531671611687969759756104554118038952623839154471316483213250637326256760832183170270083518010611100034050271043275803598963898281738587532687804498188644735838694051612863744152308809202735718911890458916007854117959258863295916864183635231138066692100075159147285443208485719260171360110723660411055686223994023740141010873915152535814209115381914799860413320257219798968572738999597771036001894941989686394497673812574688122377314277735431094316324700936582089764812036938010985618413971851382601747520202600061095577214744898283071995432095434063549113404566200837350994300713042282911221483642092876704839341183557959497906915154861267532409539946215386705781037922662623122322405056218745782415778642969803364369091046235264221234221424433387343421065279733576992563515074074052752177901038409869963367859265588176385944971458522418631247063597298040070468645084271628779779543047251531914129380665330334071789613193251989020778779033793282926080008364589203214696472272053397158316969440692376140635411486996158107346761553503632784110589981802979378917443673040482157003013153859467458461330799146387309302989075683134723815708261425546806719129317697764094301982163489363283046544482817086213427102516013276972151836851275679127080871674821090628582535370986552826266767947482982335887720299976792833856317900978933441549130784804708201715934377997756981112615152497618535585088813999455838935665494452472723582633743071982586968460688150490580708224921046243103688253867941272882928994162247276310717466432758394809941983917444044960166802859278925927326213428666680312604457518964653939227091790469902438034402792769218730847237903114520936165499647616686953414033791717944208953463253223032385149363389916620564947833988977950822850477697477867711386554973037093059126884308476206988316513391415615926217525999957797413777383494795611791887002636506945749032668389809321946852619833145482564161661133839211015217341564593642119921997532372391382064132322198300008389571911387195161759454119511661011114263397060730738164882256184929480550100277237233244695140273832847929568719990965203889960106437841694739368169359591134268101633675471119175752824073690929278210967552137060626467723852219698011391618739634889016705149666819035895303202082390762313070320456611233240720142678721316956578336299402388797921994832721115981267101080004310508884080377351665088540317268167625875888671159748389207094613609783788480837037537966345796512100791088519301937634386060803617229196430130069459749382616927169881700850176456578516496570129821857284892007582041404078937710133856181174276233810912735586520275269297506973273673786484943573036234486925283981793262676845523580627000174741986430064522337686310683475882308930921522503083187482307460963016731757653802067932868726112360715456810417156308347006305181846285275576600251028565764478275699120582836706904768494042557380295563275166780786344797401325102361731973225269450884620571105393894309684073070851176257845081879248849052286838304521087450323950935441174965778606239281789374286191014699528149001369268595298639970612920183038282330410706921152742541870998336723313224130572363786083842318895161377043791559313586715935597166065445347136480456688062193042623065917686165966907171916606059758262614654591944227092714457669529990977802257133009755915593932864831528446536901396255734071141824483163261573759675437681153657718876335360964578065003730255077802980805119647408821077124893014201850871167206834020916024868617554986123068870859526469472860840590220211411360516360936713465132102284459661659337881621088660825839899820435030135490936400698033498178272687029675469404772588340633657637802439999315659050394946034162115216818350817053362074467310097218622686844699317376079561684415205456276669121551695410796827785137614818557623656267279919042212678133587835335876976946280804629918666048897985006916286286907877502134464104339066283117147288373638154990253728113442555793220800487773327228619667162618652999849473125864364703120250441221919202943376084484169248853392139104521933832357292761578785552802720148967602902740406466229128720830446782451021856862212736186176853021303600433890024917276296959636312122053803185787214691037369270420593398542971264914834145123835028968427370078770178664264848550055782385548679742531326901624747230388707401617255067482361140623695427159660881595073958990696526597311543443565308503961782843680578686387240947921575055057178623531361654901453630320995392515556317568162263063266110750525252517966787030456914510330063409938716878919614183693179327000806868339681338549337059496189536312374500170838291513041605539672957361291732289894036298522218542613858527449712280125406281282110484630913884374054419586722631669482046499968418124723590788574833230576674636613645745085151197391120075571696581489737566812944350872366246342920850468160304097020084182860270323641119153892902735231153883934575102159848857430027636712238329529902299913819075267429727363063372423455472883097023316588561952136648951706369082460054406967472505776119671097958720921656530132513351435800664001676593125781737909712041119068996233483733032947060346924510564654447019775126527247108201549656225528735544876845189190133608705733807988028889138828144937227000767461236625386061881797536112798559339831695921350859293501316688085990167884546845751212492129590879427902768761118387494402248552227345432572956469225131406626763908797728340477519330325513946103558578789130347360927350597962693433926966158021584606000295753765463234189988085072455343512477392731076648150836853521214152944247083140033940350773861876650072230053231426857357215843238942848586630464773126121294084184141503375475956417259271424073241942789529808523500501353535103414639238801599797063113250471361805839915317296916370398877543186786465754534410611387116308624551714073131388996735325725126535801970768402254993767936450956595236261617955315187912520219145945853708191107875367769183344014940594668843984230775487602227309612659189160690212474750697241428986134541330893705334076746905898213994686218712523841015969436189506372325049939957533663660760147647513804705182460067947224186459308941032002700207415341207945251476777359019875607535702334284958810452090249718802061911312309209677217573635511834405509567308366501180011812344376351898376106351760318750425294957388217427507120198019638031291684382686886433637809278581623316591423460441322482279954930574808071220196904733379474526172552758077343096182441686166177667284773051464879870336848388299021474612901970715685161113498710989189756859046997483729476005287479728006701532303290763482661258734392634808027591965813469045921203750530750959768582207125520805163015525076710683506071931815471994608506313708528857264108405910543077554720697278186048114892296390000068676243145893427579529121009011509652647390174967571718434654679678931869780533004208698820152813718221407328864902241555668635962477652799516377759977941659457891931046057578669639856222157894853847334574933548469510060044108952185553732042587682632176337178164694773405629795582310351118000937683246999546904321390214388016714344065993022077839422020592966112979307633480986551708082324350112648037053965406201881419127897242825931142526387089063000704644700918784667705459360210509882784059899937431978268578484708474251272028042074350961386202172133506577545764832076212867694876096557119612094640385942179424438094637787572488188301646798534533216375132960964642801709488468882740128175875604237039454971997840290989904833647561567956152573767594226266550330520260397529541906717021598881853696363861543054510521232448381495952025282807032864876423449821589531536742751122853900179776520479973850112443949208647264701047603958920141264160527790260902559878982628022665804371736087890554449266400350675783568291175041499726209844726062120979140264059604704982261872567517303636010728435475446718935697379880865172408543640739086009223923598457077099615353555491672156431431046793570913595183661057518440320210617907875380122136727969794392758525156645090123652801644730087152246739053125933863036424018046749387929005614814976263525659286959583548003220909016713662330023241840520381366921892401885498519353938622168138514026509319493584386136807864931197919540341912493085608664164404002975580271088712582388125484696655967676401971067017448744245018021446138173969576741040081740303939136831434263956152262809992891019896862231782959772636857857373996832326356102863974336013011110823171053094710293774585940171155802086416059750478765470133261119133756014635432349550773616484501540625428323513284254943804562160553073521745102900789130940144714952017403059847976295333796727587406598927371946848369155793415676350473241977409751195317703624649500995672194600334252840359788374442697509178079528578425059934252301288880938215780413689408275953072678218489625726992855060201709662684179131072986114236901546144893001669858353455934577008755618735457048128811387595418931562993425694702140198562040525500143509563007281481129808608222883322603631055747469477308372117717075748249957784091236711217697650458107729169802364931176852455944223456361962677575889672108499722951976577880536263765908706232682781385398981367924293476726614446207827846843018851086585363523535543706539547640874226297348593415564896966315488524813072515429189281144862018925271821598255311576667915501066536431273928683111749296560198015280806308003936913473011551458634809506276213749192360934255012635642477246326896119939966985258652554666586459369264907816146499488755635903555870181023935334934596527087896249599004434814369384762526538985143547599116766678933842250796542637654718092372031810801611639346759650672263513200141827333731587871000323759731984910359576213216451609727731606616287883229548027251601250881885350529697337651138325502053405118025356542958336529336615298937705553600809360576515005778542916874320275227806755858522483592437008548506042677779618518870690625793609638103819294165438301587134556312711782244524483509118191190886254090109360150423676287778918145192505072623736974282778498208371673470705121835483083017498772982515799763098724988793001505322399243982610462134204667721442702976719062706114781674021875268483113696628970140581504800652954814971915099344699920902982838458450650940262142171231429291380624122935933654742424974681947804799407915493040561450853355378959248610156193053910013767516824754928948224038580771888150309560618986214981559296210829326614791901485429078563127589088617186197623283356107130440176262050608962603449176428180353868521484903831100651731684958418670813180669537698638416376931839662758118208179583367572072547837430462171632020196506722969521756061020232316470200220294399873086199083384092600099885289513147548480245113522755101346536293906819461736571850323288279975476782076175254877624289982520103650721077470430197647354716648717436877281352139600753655040482420418815972543433474504160908617247593927585570029156033944735166269570343017968182913362925697411614791081609024877018321241776617139793869074321062699373034405971322622306006344685360669431829232339192423895892396331063035907443803898357240574136851233397510974982222851017399486318453417328813224316638809033705266465990042426317874345384600047836808204497668467190240153036960735730616561018813566268943781366129923935665788234706248964250246546830310533604805930057010477691606003120475280407876967052105363939593275421509983544699909185172644183154254207281645768436724404682280192484510246134364882257348592359807692319764305476338928904801180300587611487172043983608978832660656237547736732955821287949658526699990661176045247455377230618323329782925811266871995206081703735720571404828227717536250140974172544813906672376979237517523001107966981196080114881439337972282561930824429351900467991230423544701056035676964705311012203154949704528964792563859959512818902985779495204222834313556503048378892189083482102973635807209712576992677472218735437286009710086827032190717700566368120813144172771102666654451077851070883842794202764699297622034666778475545562122163460113523201054613969157899577428602240846093394863873616047035160146067596969616426224257014468099592379116602198811229187559904634492078227288405432200170858179131636373745794201905492330797387757219839531196916435522274247706547096822990430645426868071178415109290167212526796395143842212697575440099245018138856625562583362182133089469192011149307001535633242706122848304960045049139087949233971191658287328611701082564606871518319811435023470170276661624878651481846709992844525026960142805683817338555324630728498654253943676475433498980418128679944572924187696616326737089792578978487669978090010882378894192426247892083272948614808523358745841365535856048380377029917879329015477941043060916708767388508245751562420224586974521841448430661272365812107725894906351082212346598497986463937819371884000798644277141316172534085886538299176688351955301957484068190194909690792920931164306452128919664204022661534941573541369666307541476110775685450353219755129586693657353401736132112618722814071896827100724940412174181606764144680970749560711938065574675016329153383757567254959989478869965343578216234683369182783148707097764453078018866108595700480562493454568384562338638995325384561776724477456844861149836091525820412581714528933872371935606197676959483018980659556547278106391148652363607816519442350101104786903090658186734264430686498753274630159226015050138412644695482728088801709680761794201109010515553841916009809516469326695320996805741107369569345746325788765186018398675728386655429866858533171256979726831394909042321329117160776589575069747281428441805160654241989591633432937014083704212923382220814029839054855882409111811439328682270122846350427582641197390322485411862084749005608588357775891612946997419379763595551742805945962638116943051338982306686606895672320213498328489681491473017082153425461325943126365315607689301929668072143138716459396601903664724765010620135481414022956930408556491000151877902113896708547277573879671079565955219070808976849958422226276344140894607714747055595662186946237403804787868573863170844450707872690827236743210710322615032658584528389327640815355281814518304133179742910443598767006121247577920053498776937025135891098720663448128702161057586387030620365174701164497179391744816581727920632292189640315584934136114048820032093485663471392258176815844256642000503297487883875925870296905459320354457686360197075728344229177259261028721471417784406604110261911628914395524482812480491284312892659812491281281656544057385822316977298131643748962216020381196172382529836653272781538943789958680491849973101455086004530569327507263141626436561697307534635709988575846792714741384814574426555998632750047453882998595438122624447248918346247202391598501041780017650296553091857917312975703023344293751028443569729388830612011823413094310763137549029736699510070705688284490670534473612333702977071086633748381530462024050517936925624180848455022230903243559056317901404990078606004263679265114213459077155519244350776017846185068301360503782203796137842837710644147247421035922220684670414923313752231502434967509866874157876755408892080343604724455483783079573044315575221108268024424105866988005879897193911844221877883975139663659819260622840318841693718097082456794258026985848996098622142457536242605022175193223905168874955134440529028980821670681449614309168375857105465596789091283930418654265968097037294244658114693451241934769325070414746754040265620740487876142178784498907892671643035496119083091538102956389277370772657531631951075468398708361085210751422224420907409632463775606779158783207880968928742889395542577280031527855167458239268353793215128167104517232148723008115776181416185892482359828191736766243487026485454144155838381817250128678941433076367298013447651865459579476465112765641580717116036035413981220601223702930290272868795326895054134133290993348343090101686687221962059249778000206194946850707714336296423595108965684443673380672264453592960590140776065252487568767321747531260300373104666651117641347412641467059170090605419862301274523567313759067314445789383492407855613475614142693097527557133201557339103544491401828449914299093899755766794342709410135002147902321219152663240460769010694941607303077361448498843316464642707680123940636117060763504393372306546587226366325627169033646318202859602975578915812558293338148664956768052119646089501274159126925595565662298391497498642712731106470692339821675098271588652445477843271480709041588224449862495726262787070612019624175377531786445887125779282598464553770642221504641953653458685854859227883076189523749492077971822640971950087637175218370735062907973986125610816024951650186487326066762266186509786524264675967089750812969870938634737736780739251279751480064035142963949308741194992746115029405058808289727061603203928894251638982277451508637259910790765006692008842847947780153393604437604096061575572594257725381371357572962084564347457675760189385660834535458268270593246459671881639456070326075831536405514306706603389122747110299594758945459763115965836466241429405985575506170393778179952000686124403529483322990296562074557716046384705295462527824777915261058744185147800153524584591310994646763401781582940430163789649529284366902425940167611551447196741269996204223430658833069608940589464179020557417477166561983971951751648604069608699086266255053269280753526711465128256377704136259039448232758179754545552968653365543718327194987510491405723848609317730144827242520130281726335783425526743002699397759919205839074659425547935581178264185077775745757112162838146225986760291988851612376614761316905747823484191880646978155881222115087763192887369734604347701360536364933475254575382112572292915348279093259496074354259417927943022104237986172334544924440230936081350920958776069431401659415139792203088228596288252965347916713313750634558202469272222065059074071747633934010051796384806037042471899167169096197248000158216835237684696874749552123548670407274386041661906398217692978890634701944011595071378607248251117732308620323501161853693219433333537335968918492051106293486712422180050888130612857257521369301956570260931269391642467944506783877334259516692245084655059462714597992775041892336342006612800478150250841354421579422417437523666427480199915960497505475732701355339574072303128532882994007997119685353365739786923489662839620577474050949859964572881929371081506026549318000294671678178972107548401157964597774497898401577841571580173236470251387227546856128418931559314212558419149394370007606750067563058622356764573551815250082461702867504743743989898946653918777745090119286301684977710849804258688831794005034136060689128310000386519655937159448582377602437611602554363448487059880201991101138919702450494729137937306800112211960085766879989276859102278242958368419425653262784968885989227171760084512033556072660116569447413415169067561091553034315824442055140492708968702367720966972361500414319980989205986590179800850306166322506844441266234737607790993744982341601422371153567377301325823196566701429733832340196834078974289405950405586825644160364384005369376211553105099873033710034101196087964077434479636060614658693349282083348176291102074839910781814662624891458926465506829187490438158413708874887496794831564618294486914395492753545401845832123338417429841344621105298886637352329013951459788005024624366520653961980710138747128763052350724833347921840904516867310499834552695027238569952207850071291732204087545112011190422780677006102578171632459096336368935100110668110975854241900068388632767221732905900161280057860964767842521547242638538350585946896888254310629332047965018105848311482776493742934564107811750803095371105128108543781644017524497323248346880438698666697259117042473994464598390816820941411911085107946886017466747887062926472792245181645773176550070060122392315923251743932708049225122665943480003685356929077170670489598981085946806535332961062115155336325816094042843678589076346498156591402725515826990813616571664487394720782204247110595016116306083376535827788285403485952168370178352410082991749243559690102632994130604444300612011242082356376031266139818716218821681281784737232672914392764507515406025589714460779511679772923792496209535320074268686385334097436920042957660975652287120518489939243747473261988111201931971408779249563164564774544919795806743953066572514950250107155527986147809181019993152019939123418946059896804281766606281286388980253010608191036768581625587426963361959227804463108396786983638473839769648590444023517902363956705517651797036976112494011903834669392996166956859603250878893153951283732421382474619695403541755740120255457837429580801282731730951707329918635893080982019775729087094751642491984613580645934201170663558567064160283141403316487692184696339659032875041216386114198453512121760698659876302995711446922738994195079192157201148866171936534932450987490031157469811815025101377538612584102721611276715360934117415916392909442865051958052929515504088618859020512380062466718961015031055525544769799732325615821791672347510038343106967254029720656644904493152857662792392408254609031642263549207951630367339357191151163051736353207678751077713883558268359261131729731065222457469803122731360227513088897738475565219221462093257510580126711968594846419532092668409340666494950144848443716054304865742663264718470948124163813001001696110731336171286080863327395182670116336882786811615453724322850137443652661838226415484675609430215405137873093370180938157488200550179166847127570709124300313497511226607330790191252265653332723255718529948004407581348566704321963535641552388376366269270861784514863663171994354390512316735198255112999689072434265282492888691422126197505365574837308531149270441126569053520084065324527382726334143448946349292319769089417012909598875925656441616869600547723650035370286884374554610017547090114981035322530382119891827327431589909519211370464698242062677546096878305914515602531622515933094333986164996507808479180282988090600761958612156333598922910159703047976987028398927237061190099213904396446702730732195108372757511835385793069178703706588124043551276991163192543021875277167971186512660691971204604375631521016740017907635255429466202550828087192514852091665666027578673011983195155184461726493261224120474807865838698421828921991481764637159430948935667453131430990312178633734541055992001620751098019986110005002235234033453615315787074868940246554755564065247484057872005641860381807749291007673288874197148355931564268564490032783003773301980794748525234949907098430262241086480540898280380617482887100306539936005144885661634060720630296931627734846906234113803036568299719116372565236000812950288721917597312147964633981981782439010965313063769693605061412473497499526611474500901314776146078589244607216569622796593707478903201643112004738943941389568738970604889713253443782292211735285669229099463019059265430298231565577745925984461524387299134102567106871617486670757497044997694333855637976195730745597105610571004889507702300086368667205004878573065538707972626922918488960819572480699751200131995582417270862980728928053024203462033640183719366915224332819463956125187282897538259830097968200233899044775338912019178570301072248038169126213654941920560861373159882289456690857243413836946275824679559250009638669167233075055357009164813458027735861574887757434956947332525162676338457394976469872852037090968201460690784728347556914618784934822778030640883335074942704261897241629620503345694358499638844433237382680499415757587259282186804537839689289415603285501764956113508192673860773134984612421121820848504258850005617675347386311300457859109966059735942215281902829374680227096857649924605161648052663070392135465615729350278476461798397671877609798068489072898455523456383309135851500737769146474453032567318700896031910605123372258980447500769102021790169198473500066536039093501496721549408276728081745841958858851796630637870660976142234854995686572933311637257057871313806846057936413422854140198061643775446364318161391053903449098948154378603928282681401253184113362154736732637089486992158953697399649397962611082611206966207275559006952470672363080150346357105650303011926659751285579283650553753928869355910698350844539144459680483630829749806787783658888570128029674848949079863112385930521833085846501206905156157156268034671029961533201539382630243494741161207114553779087012198663482931567543377301338566130623667522020090479701286671119051043954383687196237132053780864092197767048488937911739417319655322710063134804148628440488036051059272153492706879127960988008965245944545232076631496592745407791013824018433781474624847381139071614589591428451676748253093876811926211653002022212757769586675305475409409697664035087107938246536853730708809272764878149308391035104621171300034205386245027853126748057101528805437781364573494493325314762037974966888155195554098675748642507520952282793113616420348462723480309662193777245173046225279874147607659742917590590844565296277560847026689079517878204779206428206826081507486619621588524779252988710973160989589470076417162541956090984014948165332383330645107372035285893123651301435851701924618317808798872621765155849369540882208254025270008526124461612741522899351505627973415059959824729654120116354867582279517203215748132240523969951491410757720788441362855605486338554780129245083047305704198217028167845259560348700240448316400184333156338542634016740946046340496099287585483789163193895626629272915163162969320243788650358237642735688342972803739374806232084051936838207120883890828037046636416737723770467966189996929990349113594235825332684860084279037011799417423215795269629036933582978629461199859151222904857284093129132469960827997750596332217554797840969158309228201218078856997988877052169821605552087119960309188847165770053362654146581494164107125349696423903602364116179225046093841075468743314009745075520837876150208087284751099999091152829084861074440087751926238056163197641697046491470169491284154095957317286635104736095232916588078482955750712703683166851361342647224032751356903272374511400830728431279466400060775998952845462128798320585799227468312847449774833624434795222394132066774347586729076703113973186311882915257972506751735741963131894251000687928945601911749683730883302783679609575316693959751151658264714756182830138291392817747684354603683733549788882000110993401308864925787024525251046549693600554316466122844560717839077541874258552154776220777424901795417257533278516716298384282990301642760390473772081139068910011863329809957883287156514069181261519312046758394600673636963513189633388322165079897116973121456340839481007935756946462646029144001378252801212296953417001993420903457239995928092635080985946132025965582686022716078386882890278137181867739333715763845047283576335140779680044924714923174176915475621391564915068234284123463039055256186826994289032277952377340206437558096886313300492774446378987719550028809221841775511928329588954624143588132462222011705579966591641394505965089935839785199977845842267498189647503238192768333885153818617077097972567078297376226907368034431686955519350660118862445545657079821613977819655269197236287241354241464561899657305503353741016034961532913604695627043285787669926183886811002633599077958809282467265286088542957292522700499290167918157384243324923637175730931477188028585879551817686890386380371784756448428201142844930565337394946393039326867036495331609116494182273291785602287476621769473869829231190858943372613477566998419145809375002205647484013001094847812882639463026807271365893140149400077163606635268217276752330651801502976070432407460243080846024035768232097134059052091234919095580148870464346274352384128502241127465410169984966945172536506984608353697714148199841932295125185340926963533048565342597251494139447813796993014910223748042243558371193779139462202008826095261035122178248706310100514220120842311984360753520303599138762097818505866723351731267789559858341941662955810749210528564143082360745935515978422882369193684275556807455514434367524648822292925677369610669028871534357357389273285213405641311829487300063126641745416070783394411450106866771608738654067078811677416618780186236442668281498364543739508141607758077173449393410778963943350943522135073052660382996643972709394156540161087264265445664186970072465911776036555930325934055979749150151376208955356306839504017776914848505750569545256910502750166134267581252927168577052598017951734711636144749836047661433635579537746165475904312648889427600186301549818372426306568382720566725211175243684456231253028148730707953341897552949405526115033380958781884464948297672805134161280224565670121733958513569446709361982221830203656339340816475002827011397417709368235760998897757416141175550305732772897391395265007913968150311500074546704642427725539378600445806765657871270676842933353596981431238311878090844202657513593106426574803986821499535200084854768082511937168912110248448972852718374695054794399516302703953265250939197824797131608646672164784840252510153941764372620838986904807124983061908516460946452623742999603806193836811152588189300933332597057452006471109132244853670131977482665689220470502470876302140939668527498842773924563174620699689093862096195696404409910165470167002685832822113908030720580520694037286258925996501347851097733977029183132997493984983651535556072275518266898720090895137515129518148783710324850524219244304094189478069951551218838865862027231943655120457146198738482303448910525432638354069861710208251358575933928514618137296355637431423426717975580597137696612618288378278911409998914686599980237991606150630896096637012824963329484665702469446819293435639130931682378329006021915154069241427297096353142873141699837372109748936884969736324717556528144732616325452088851408517411494931878808072195057565399378746011135366994590563873172189232564902474169488651383408535513145008420327422004694311524095358249115077020778931421223243421950654977786440184064987179037877992357706028439554563384438735129334382754271943807037934628017338319984495740035660713084737878088823311520867802674503305052778837506341239886520329925286998936568634938791146267393986475870878526913327916881940988926016619793911299787853672384738350851442600160896233460756369537876820979008822676189704174710445966183549132110201066398478604739333969789427162937559232568641294727251866371290759512580014938448345505516471013717807644345686413146901859095647564247534201630420808805720085939390831925673425016957587144133063662312819244448517430133218216902153449939094796931073225320282069681448453137601393329821946277439095984724876649409388701885391702148127380103548575048095504228315844067336275056320051310263550630953401062197021830177315233572734793547762558749030613652542141391754985455746011082530654568523124191996170715326820786748647246883939916276294331070397037410144177755283866307728839423020693260216700861614878527649046601837659242389025652828366158252252165437542621061020846488969668891680073249673104950263273143940838711231552957737314411228904142283951208265809887968129409544142714065887465726708011745128504431202423433402422651587799801054890098412185429453400950616733442724979167077358130731399235548291801218143629020790945806941341966097745867896796387574487503425247506241193879381944857513905817203650018279739380091304019609891183463197835301819562033619576021810342435117763397625881444482055662116102018294339875873275543885516949483961507178813202127254163622834654481601699894184261644258323452292331931888892033765123624949594631270038791977374066922506494976365892084142159971272051180349348966714525860633426378047088539171674482840525180855966147160479757077927239664628052707859768381830698737672607616168060506857735774543551029200163383739867735110381732325261085561277991224088374700453898666817565483914860585444808189130627535152277622653838447744450536601369700348814391863867495712281335376324963122726632258109129920085450332692211175510997850425805435842659317608408364715810382056925571270888430826019091717664396906668710474944004979882430935666620568533048068559565217038016444949298896261720028993485977947857255678040390904394170875609916269321638786553876861590407075025449078755965335117573723684498151258553559716673088483068019874311709329290768362074874599030919067528367798720284738704506628579255012433624625930286882194394675221620522781118440729201046331838128725086322635025957709554625071243884544639369563102873862662344300500652621603057181017461577389148705301393098220817796153011200893638421082066216565508013482064159623964491030885787497033181986670826345801473409666193961454294673756379994252926334588525159217547080312772072839455166638234299615338263535325788111616390037013855514644875627806933467542070513887447566650300482388245731470263785441068179556749869642255644423017430786474410362710039900516917121623515859485483372851550452660905966502272627967651369995684293179611821497451229812297489728343310816633366694532222940935548265426083038408484866792335665078555927644024224642726866851005785509367478788178565598605190839909028279183862139565427988476718050986970598243257635310921402438424274994460706583517442509051550087905930353737445626943331962567239043687731314756830340401781945546649973595156517639008915263053139386233493834228852898693787482300947515989846109337085904087417991338792379837386741295855215742831528241569110533776505340873950292648421977491315613674046434500546672655691219104918077874262577503100329795061302101268429122975723355338962731459019744562876234697413528111324920805996873537695551521950114252131016583597582927676085020687165856960181478316898926451867629551330840365588882919940712862983527405792098111935174804823738960339499583680695605338999328322973900364921616945187196860766730756486240316310046867034053119027348016316251379161522225804116000751739512160149067522062088229625149909956886622333651728942595570180216992325021129293291671183588350506212470292000221809230456420640675427298347524987157488942006511938647480326873082341511966953418615576465415401811445712453776430024387372879051387226077513578306454911856973050613195832271726785980757899794317777697506434808749225263849307350920408589307432510348607801504964192136614315775951251464852009181259508879557912001066060961222424072946854815264596900676224648568206918622811721625648950014051263964873061496552594797986901831170088514932051515773450312630473131254786341392577158894956322578802763005297350209507273758754154381009228419767145730798529050686656423405881824282400612320348476942817062375752081627805226936182086156447107856917782518746322542855518295206779603973153227568101449195110895666851189395599923918565143607502617383659328074804273464998426075430711432774262195596632514311137927891440271511789309683256034923570272433497330379202092188368997493214977356168937847727129573682546997530067432822237307067857507602445758942721760416467385398345698078373088908158716721530575144006125360371388640623745314777529092769835040363258297208514668116397213761344373508745552674178618259077156895364994580606635540477857384796296139648769173138756170034741375324735161979509636031949821225429497724721576644517287646731842680498426018992587183855409457159604102258922853785744953750605119015793113280011461403641213764042974283484531434976845238647226096711932978425880527964528491025182772902335229221931370995196087288947999311383065561852942006609252072898792750189186336272809669995996139162147210416171730661283662830963083467626239501219376849210524855841663456124159451298405253097359339762362704853269526058846650913479067274634235715754607165184221755514117506906780881467303499952311170343765034062260238731059263876327657910449062041246107641404805025818929415143423717629090700411811469433112761828836659221301849289600926557054655891078710950782212538155274068532960913984742271941025391411670941995632570127423643671217065308011404892161934615075024281387901547134196251721765438621660396662477121888571647227168255254420235225347045087067626863617869801963220262817209121584456096618610016314045574169936629722283523709832632951077472101712099628354842038710694206741038872059145450718260087888109356757327124216522504328482320658489796167774970149637309592992504726186987135887533972905153020732828775393529461709202990371292772223357461419281144395943044208921891266092212796352134877250278737181597059207951598850005033703825822312757524653747030696670516956680122146912199773289128795133593316114619351406105382766793395115737034730813200349191521283508235687579852177242248059998523024017461765847871610463986958375433583425890395623928358912283522319378179670298997414086010918540825072621545613897985765656769870672541929618028332182598337345967126241999024908204786411020656782776814813013197069979256337362449556023471435413341682948117064808884086662444161543569324185228156670570205650087627911803950338457266834507579087221940436516510511799539647055384136646288750699376697090704812604546307035002610404703264925224285001281133133327633669869225430270417809386656976824522723583525305259686727240728748608799091259449256798753908579567489365615347122166709405970119251980457735561558207342308781273830774948995568687748427915380313454073441270099251175857583766011387415219788843541026543314190901625549717808028786568479051812761315357155770820886000665275446310444318277953322603438182447145399752147444830698430764537687651614376087291030359609836028499184150946751205953867005156739971313539563701697958945012107519603083050562651409147593198912556913867968957067896086893523207104751730801574276920985015002631584140495948518602144308574509939038764713434981839822470652497880819862389413488518602968554908773019015017922116973382854088013173976829439027849743714938035908331522582758417359593881502561860412608963502272100473080744260031246187277836949015008524567313425253926952568823250854061315962374134373168680667684872824304952099135480989235591314717578518484024598666969743720994392889748580721030263964387976454358750753019921848397851916283862991481857875158452229291530983486592430828401800977244176757443379083749776413107089730471886605396070672603193221139778440463999867225586162190339965082416662999617202392822443836748396133457346373881184166012887402170226733883172820533521578156610067644080127778074463907548577600914712471221626992735361790013626625534900062612771846197354150080515242271383897045612820031012756791652393784737243095334223626541749701468443262468854696788461807575814306910528868836416911878649344777805259512312519335991479978827751917827533936943806495728379077369631958070219946935655745126584024188165817019457417537936999661858975583808288829414299797933086069807400797845339731181708533426773780283235533784723704163886499830290884400023480608034500545181728047164558871194892434427310403300609039718491719472057059677185930111460721031995180223430315811134955108222850708891670422945581158377858066205382776279117183946805791803518475682360304923242045826313628451349225117543295285261282008403542425915042752986577722663258610339463073826860841875429567006937076333103741641025361655348625575276363794481410362107016748841751813223727702614709128961433290122431249014494253680373901996219056231114621393405601031601621773925278274814901731633022842435089089805942812526042853023849655691927760772062011049445458145654602238587653352716935085594600499442806908451155788935747846900560309481931885624620634322661210269751440180634371516692048765903278124660554094381544157196532093916110263579103087592252679677462545916125949383105460540373456002118677209835847071660454423574245844171587911942441563619805221078805122820472473631828855420827364072967552220215915555069207962356046304022596969553910949447686706131296534149895540081548297765483023157044517226915895782938417824835611432827944339309163863066823453117874892581396976733923412005554921631216624370635007379468365595142190407957502670794590675671901844042281475741202287139237241443970220575686615036768392722520699626861719056472547084271022108625174942155644076011000026134415384840406708950839818834487263528995954428042414768560837042577197811970493784322943115858544366013931670897049504597584687056308430240695914321743449425761550175008194622435063632840760932097389276445537308034833049326347301514051801848630360603742340742680190887801516082578096004360714994841479905664874218316022994131573005243279336200643459373460389617431008371129459812603176823954364486717446041678367003150228779278346650536141309508222172310695424781119085501979483525503410932027349208525762920290248554595223774494602438141701988634608618868164279555820137201657797762883631275244560209148202413533042321957106694240915842795048905180449922544119782546757229663581921935133620837617543760931909273544516410550591126940441607408612503122992747617231645176233033770709831234169199011712460443203662462130324984536718467726008762905960281707252452243721176804983181308775348387758680226562079024615205440297410050670405169408679939225761830956941124903077793809629356536747725972440344627558018976491178354864287527492148009417988600351590040256357369530572180103247962569168546812055547323994088571968436145658878648263054409495540129950560429308775116852855152010621112657314141921972435427773375344075894720226609137665292900133695890599937488723901468040466653236342108921365710793970977525690935419116483365772122510231718149585039300548230502338461162189571589109445758330025045928174704400353279112906376581630928718178986549655444885240534538392356370997964898698866098118474600177289924113305745299508792232801155186461514893770025137975197594818781471187417218559723983490233167280070465850874977623009715594434836249113645292578082223865658040425314793767318514399705517772903087250277861678496384884416052885864439376839054837836757289268772660915372590655018751779599874304450452901984452993947124365993118205836363720479853914168068986346881048011283101037417748827080653642424174678434250720114102103157252741364273940558302980440675684752743665871233547556833254316963579382284624824350404292236743714271877790062819174614420273889997489043551319927355246935362094217652941157052836023443969158374837489124705540600968580938453343935816946943694710842206975227937769014657114099705811359982527022672182841758572949027669258119063141089819754743621526884348117610181261966027380889016638789010138643393726183447898899142600494717317871077093955598600668033687168844801051213088464396263643270763643151944959072653379402645451836812213018363022714637601212306355700852196968507265054527833629829676129378789038837772608152341022414457679862254854985329743582170979101556250746247827443484406877139321671843242565583242159591674192171427310372318184333044221649607658159864719841551913119487323604418206813739771543194860398788335268943175807727479062288183419394332356106084005653269847268067007204755968304258400286745406895487572972446374912744034815551885409940039439752226902688872254982943201279168360401201543596540142170616579144100017673879465711900834804370521757517660976713839588728174043954276278270874115177093203072457806138286060275425501562286022327581536543361807300184081879064796863594159160350046687135470997187461324840499401087869373742184270865588675726029321521486545934710160614182406928649337929225583911871630584009078612469925612900422107347803585905292536377563242370063329647009116647566788829502206220864104491462228766865166039937835734493949455568880312398341721878334715386188236567704014276839862169290297362518833797477024617929163365280571496757868210395943177828538208416774181895955577747918240401527127211457495165313140523109728366085838894596601970041397725946756350276239471407815215629711344966661004552977508723057312072672729582984934821359719785883000515119852863033895483021511475238825421579598167124035726789441992300464908307359946926869762535651253706254850349832987825243380241978602420937915418142410019235717452444225806120771715275737563712002343692306364945050127467806476726574592347269706030748958316054082707990696879902867586166161571648698385247334696666045520466863080739103122004373509312809910166774592223669993222583277732652808332771180452906888651929221747367781745456072149901550844243627810373612749676927533741592955544254848007912993149988087442302524501831427975783046457583522368104311745210441258735983489343605704681868834083849650780327361077007149682951613763286959384876468728833043769313998989345948070154737542432757463775896411835724411062830496345878181527119699155880312498878782787002950657838122074371914039313431822043449498261329472634965563676800708057797501123634958492614449708781331332216641871305834292865357684405228234441253327223352796163453588445155473016587786339174559939168977193603338077078606747654668362599769207636989579570031924240275714816294056351272338656160742342790767653326253524138495670045246706946578581671507539306131316359435477471760926134574859309514078687834363128803415066693187168095251341860169042262493782473545902544033972956703011673939839096525021143825081512789496359370606436454700794621463119957145198882141779354579896032901171457536794043282304990431535183341141575616820280402379644314739244199193266100273248920697085968985300618030067568064923467252414227996977301038019871772482750801198773134622219882614708986689294409574626223925802741102953780117198422876700951629274341755050859822323346900335389286191616204017743967361960473864433708921305175843280958825525902307817158613858910498282896295713256313890761336400902104688515026602520406741157138979834598911549339057476932244603771325880388713825894878286169421920911801038153150052502651891274791639592671634518496837562765381601924135998921277369428072878627097872559922658231337554167475706292278193473345632463601749195904974864449174017619155415605684730304412507673121408570531267679467489549762798686612532345668348798560153143402660021879031252970212959340097408834065331658393420171032175039319772757440692675601543876483506951276912481611508288426058260670361799038651835322920280647774256950599482842398320217967828653695596875274310307219926083224804228949953874874009411067120966482056571787405880921087405899798948052285881119041747286199634362208991293572240439231408335369508167890353607429197410719671902574724648273749020394742542034725772432891317717947708089604790545696726937398776315494787606501597195581398229628748189128842688641910813622770762698341339736739146391213531537230584235349202415955137719354532899495681440391406727983939184286237102371570413395544757811548253113970226165072500802781524530608164112512569504677721258221795392222342759079798991637832727276687901040907331339495633206946635899539369978141104652411618984857111764775995349126077756095942316562801111826091461057982900169607478478225840612982558634025432268800574537427260789851032751095965893751239903008611781529394599461653424319940846302957573985032006259301766424705045545871529434092370434847803935190742154204557320994659329046137629348510369855933114516743588833476776576727623751406501845097069989953276049212993526331692715837219678521848662903322089082103709197601911270856858383888942636581427217559558848936792724480673654555788318949889595679820245053561466281465470726104907056138495462660815499561498315509328614076276912273921897071769090775653216847080058733923292365713724360914130972923648919289980726008524051444114505685485370170499877134878662315648318377851029318798021787130005675219819008480097919535231394369909363364405119879938784105937532187749246818198668650154542181834836359238734435939624739399448311748525915625253648467441279806801440537890318962412515755687564363059727154929380372648078287041735650003160554594239411582902656617819721521749350290034806881678724733131286577821121675374518941673145505009014543197218460786897722456225545165724507741363711662515260093221802520238140143976617021679383957755081994135648984280586063206178842472161015553557136286474977396588773056876436844217372242399315468829560515825232436150037573707393095770127150757450788892323851277986506177180146068750442136748487020690025556218028326230115088068729278876542702866132756013597161870329753432214309554523990476405110268856633857720855441878258800067609257179685506596852838220578737387475259159683912443195893798366479155044782095810531796794312217583076505422627780200982318091763764941709473005144377231463394125468681139365731506292002199294304514938541350106618989139644044364046263771781563403987895352062445383720130389724873906054415697840192918845042758953886123253422035783109177915638950665418922453106153585563706263899534964127384251418092882448494394076110085304255916197182859928499233363006394592506307831637780340547925044662740920176631589358726072711834351051287304884993614307340268400185046130910736619274889144081759013841243515352601450382165359183290550749515395961507280973161426152513382568703352340122453411818249183103057618253334193066901298112561245059357306322824394646014538303804320457432938382925804776994145309108200826798175729523282756065883669069403550916845025115035206564265372089218989049642669370588606150591073620002270113978365849423250442137793700371970318581588613289201535044497153278705485717888953216251367230408126822057798182761596391710987299546988272609306930966886603034071952100940314607788070623767186795861674773537671121098500947901552588654699406531425413929405002754094430846312467955741633413193405965193263236673480690113380882921489823844825468474284633217950778735328755361621428990489932824749925529879969256101479158641976094203530275146166511589606517002017456348593410350932895724448700395241154813252383187946918343077823889301258203404106894128341397464461414469739201169471644314358145077904462227571417280698163107373015657083734254386343242193956189215896391070306427960419155331728374298923240649873984284368526025225507374392826853452235412132488917336456048204879917983969772623205037143087487333521871039316908193015301207290553166624074241950590932488448471292710352716760432512040025202088271460630938046859600506263510125010701377889434545614444812792431386564359182655306225058471983518068142690804728902872761209401242206854195874731794371531013329522222027849885309030623078620143401518102699636333639047034190891805531094849776458526943355774125149406364111106323551727716909907376100169838051026791061512531390469323350846659348383802500726636813931090845353952497352795630915799856317869391137349543410140303488606028294321120703296285747358065822075105004481869003266122443021688588123397049140890143587672115087327980668889869121086690237226668747999754356092525981678907879244417615597752234100161610872826662626011274047083280435948615843664284227026816643336808456356442506171608423606999609152805853044354174914373925254622399029393529362799962420978075153543284950499593574437487900157681575389671981013713204572131600099026400377279031590000220952578049899197418626842038479258331183074759798779776910405241632702482622729784067607054968712538917818923830250716788175709585377749728671657155538211464917380060452522043116122046025844245701519255131745324133396849100453036810590836651789687637547866357745687884440241838195147904865367427224349342984218164403128262930487054882313642656578081531812403053780143352425733733644615166174919882742416969861434037566283278545528605683731885896196755938015787331585810300857817372928298803770240414119541628251705205515673301919528294109156491655268962747839288544063766259187416401754140938372713082571106836268155376002085360487569159745393816774806397367522984070651045573084312612450999365959622820768403625975620782937239590483851215365576950123523965072347963816196449742435140546817738683115948143615990709083177730504646231614251298209638430447422090635183384270486271812655374162346192033023018255889728718918105764889258175171917367608804786697779621950353243940039703749635681962084017545527213425212540649749360755235876271141928575343915871596072417964985037889427345888286751133264380258750247601971693678677393978439541756684654811774241645819821560271463031987990674339445363862250343620175863067028124811253071741104544893232223705915743063430028694523521846334419627499306849528989925168104498634813286276636975335037722394247914411532893475171592824117263517877830022052256409244120346397338330323418123191248014394588548693793680193831968310001289064740136665916160837255022610938839539891097607878147851189623073131192646218832861074946618186051737348244166300380031667533553477221076167302968146300475310699837589243964286853101167992978448257011881184483746306671789752403985889557060046727720784100182222028183234264552143879033488296065828802902129790515322399454334664049085478454099605569378550960639856016976555334760995562297233632277299022408093184537679617109895677059791794129655598966170827783985760917967885532916009854995174626902348339485852490355883809363090191974022121146418572389378887983036255743936079557001526758693952759182564914427010470784462280893062611552594173432181909732709485246882312421283007018091502560718448186183211354275377810904198849317032712043673442053534208618107116435168431744950296642150671299709197008870099441734195030468481950047053604196129421057689526239808926641104939936674430190845947134878308259075670837232606281464347090756092995653658716489036279300337706300282634261397251651235869040557576308958799753444498536428107217609176093130581340440310351070716993191700399817627182069486363756818902881333490779835654243334033083082804521400146012197069172313490472266394510860505447897199064430531781460456281238740404996831666941611862143600372888556040998468959642711460422289621057835950664579170918752387259635277207035819299282159103616574805498284956636470993620474342765733867070578030382250108800367295075203560248062036559033678819108312953523908829199585273666856237841206746398877363468660300984394683314282398549758620081564893387939028677046724328168914517821752060521459745103450756875826820890651788367942530027180986720483681369611230506641844792531263173396371690685242601042865798388615380369426776028523408123104855309039132848583493152827599618464079577333368712813399584985248159872644709606656532967420386329895059180153732345600807907688551055843366705823964922015614017813213103437591283180291862432332908221509713679301168831420797706812648555401486513398130559530677212036228798391315112456047223793613095504191912927499888417439701585609152225311079558727199699486936236939519263576406442007433063425661684313790521580425708979692946679490888525840869389407129429400832315087951330817128990311786026061865537615142946787861926067150116375978844864754244902634260111837476146140643479270339098272332395702977625263578068496423991772688365809715047459634550681915988087750205257284592959141151143472935842413269022022051464192678729103732432908258568222435497471191048711085380513337518720631166017100108788819727068441838864656275948797711282925500979336149822524085905060773468409171449910704249432250622477056233475541373605891381506982816905807316285480334915115037191084821265264296508651987878217742607432746907997238696171929874131710290771507566097435926082468772959138399635667408982953336591886691977444297735018572969458415278265714695404503428470652198549987688803979328365943572707214995912687367693878207296844693758942031822668141702325082351764950243621492917680674727775316712910882998090724167671481876341495382271090247068385564514249244198346540644866308036266475401799660879342552556714874257394893098178271215862583496507745437868452879169731635534192470010195789763354823932526083585527158147175788310110563859994427746598544175227584012268781395223331456605684719975299448352777933684115789615564286406087047304545910932662760841310011706143615623574186668488995429293625197176708902918685699131228211117464424844372476283788934080891291041242176647315462208450634786282359269715982386522393813839586783939011596048619536722564285561846010517305716980246879089030967853712948196291547234955460463530995810137362433747451634119852624040835881901740618324172632146589667769435841392975207158077141718256928520524377466250412996280995863687694731986207382861652056289698414764032421662357755775224211015648528849538170692982945193707562589069577980390384611324548512856890448688373483466286582367089797268877187890267951476147697488054877713637248748756701052225978926763366871190457498391316285714693422676253393844533202109830075394184434638692518311184142260904622895898806357430211911965741744424995606738069178234564799680384260663068024735920214477199122422410947704281162648789570179578460282323822983221853519370763252683091120030678372619994099527367168839954412003920447346216352018680352343261680802426227090157303625393898798136937495645096807399998964546319337689788424354882730012574837697283103844010502779922099681447342442868145588391529332954155284506577501250648423381779115265678421084766173536175726676761876155112790394769736613814633344057478767725027777679644750497624812386638773433541443755809485714916362764919201534013247823793998425648268887075491776390566151846456273663508953868019197597679986168541715566079688759805928565843471434515155086230989128073260688586756382786719258148745733169878210119360704412120560042175353800208767307482186664817664274996474050704287264420034123296259818833375414297739405536241682304586172170907963296299714167803418607437686203807863384949183901336292961446709211472859558211833341469038919466086112612132993287342648318055059348994336515960294896561298992011703537063236099425913759384650077781638645486097335789732089177974412863852862362619537348254331382947763648216705250724378692348653086682362789578036350844501899828252972649415072896728089712789357715860970698059523829194317389833007867545838106423846400580911260164564724797645980549833616388414386317071988716946141498559530987989541111586043312608511345510739019949469578993715938716049346372723515432382168072002749433748115717153271423884693492859491902728152211352111153850795339046297231917833565322435402381623897169689532509832312823659374689604256116518536864846362088767021731315296700718876996511928707834090152304100430826854473275961097345929270923703240743070379612535090267278119160686864586743999025476405826982366672512744854686674025140696277065654099753851487550574152676481054696158151608171935657287528090661467751858189203320593449267448358585434858941804136267027636471487142733284256426559030955406984810606222799888442957084054710961715036607904376273481380045662890391290785394152916314636764526281495382257875908282759016395090032871602285347908559303657989974199922794868403199107012988485976421023126304032671813090675765172804039290610017951967913394356777017731602227211921836337037085728925113845458696363879640571559771328079818402537742722393388011734397854963271002544358929564788020971658832144465517702969264022215061516383874573881426803014385148882477991284745260082606084448140825367166761491010173045624319225310726206558831939787537756658589264253540673010326326268180051634582281484511630467222666431571305676549756779198893025111697635701108612005823345636810027176936021595463340012243332668085629353520903941292432028308016652792138024257861309042406973448906615675083978867896892899858684875804512177971549606160552490799456331208912006731955263630704272396151013336437702071272277395457864718494841303194106837660453305961323812560054433846305780100967885252192417298996341866639252889765338434513386430709753894957674181408456353210225657124623085691047254875664656131789262851184061733992992373931018267728975091757486266327060272186520208091230039000993285445609384270661581230977126012042904322305073299994773655648695650508170081513543937795388290035621821189175443411433379909890812841699112117664094022932714068206705368165281802358344799091981118925076035182054200181058390363087615724738017400108869182174684936869828781940834877687996007531174054487524053623699338907881219364287178918131884357393968325129477472196586577605868989677173761870186660929419891398233828383120483820358809495297612517316204540408200540082328385884500753496984964149423764926929260546064136457970920484646501083722506162232684724033475582313299502220104717602391284907287441484386313043056959172151934662665777283156377518322282441439857730331948121130274663226053153688611676305654269780251179208220505310360418363288389441218250162791556845784072584566126956292069048452102327997301275126968653297513763813320713971418340249191072987885239060539811160543549103440304361420134752104503797410416119931452881267916940667087129885868453727277312476482840902712106340059042303766234573605973702911726199812992052853938392052799623389392041539780630604997776771608495000286034895982608578173018512333933538695756282716960279146888863859586840741344738231813144790529114253976238566635095671105237437683898315380757328034045661968356875089244488768968095285567237912559021802534853157292914697072046033295956057581507401084844396403409415754245031131147807415026169539023841287509278321907530351654206042690532387151861211536515845689061147133562403832276207484599041790828895586422150575700883981726789774666153654729040097890864274778334557321056577386346944450565848559175111232463451651634027467594545471033240051018257298271723038953033467234372227480102287119328253561853081880406060851460395380190969973552930162457204078276612876046511405831124964822311759686734655592369825706603587541800253958283942030073631989261238344693972621307427202851404436966002599920935750597246949842287529331159569937818282812750151079932799766569310910846198648456316069488856298665272797300059527228708056633281386925835475943339414072629550222390071590166021206940892555155915030908231142385060552003915563537860816535296550538277063436202889373164401346738841654189194702330304942806977863555407483286535113084467979074150709601357936421078495175711940593601414082348273073398342783165183630235375102062446355197975074821411280096293401670657654463489476097209735895062962712028044320211415423287391334642657547163084486577102787143949129783522123010016741046897350512178208294690869518756485406995745584497329514732813340574502927983273473864902902447161230544314629249183269535657352371507983662140666664853854790204150492329682423032594445855499896411113971984062013560889061375410629484050193758356607190152562651968410525598097825506051862350899562716140067285459540815262247740079987083654528159616401042251130578023290403606166004985762296039275673203216851794036306025352699558703219443304668146128417733393692415024962714786558727325926879866898786956871345748379590246292014671360908000957333143298027900322675364113622564549821497229799480675250884808283560045980487342886433807998998188804280943269660752157310667591028967758447887655077342656059590984680902022896779015323943765857879238199228215550202369542378648299126881664221780238677743354280296779165137916997484581674031529132984627670467570657151402287134780466363090873167917663336586501362218613906275524460476952379710754318217367350956161381148874308118242139776264009641933143937289901889950743304220231901532722511627744264383715979938375110015947228097929875035209768487232518368985920946057805566619493219637760725588665821566798524842151571920502698408977909370199765324080467585497204775671932008920082562308239011960756680732186329485700602892886635650496254609762393213045203174132569478897636045448359902968081995817537603738119649551672621589890470847396429023852581737556736463939670394383777692578815768899764341348627945085292569453963989900763246343100407429575813608568578754749455558296393425262158389193421352065819570042099639809192494148201329798025896416599742822784840621735221251213519052683429349782270524294048712123452737036682658225102557983063423035982505382639055754035880090546236966991134542194023248104139001560010579036774106566250957224528780953385884216078804454482776267539874571587903389090289850222657826075881315637466473216402765091912407485711845597617915902304410919348713212175950386509137319925820298763481300148165695732075030832852839859371182246751216805781772352131232512811787940178903072088352296708497743517658445490090937384984389471295249429997786823449148951463500468811218209631034084353058021923354401090733240071369124771293884323481100471274807870266259174091064725604973745462072574945214032106003294384077282997594261290052096784241516369411716329815819213874890696978626967426618476038021203549683395603979548299784656983216382311936713713744460709835329758974625121812625308398680787233734746064909323865209198314588628512740899511542996627981814469083633511060112010666222862718450849904673784758001981788638444748041571817540732894517301955127294610678973648258716362771159543751584231901782892577666265137133410117580852420810881214579312876214692471536850353817560537932822047799223160334973127064903193529205378645793609565008821598336552715956879887279907663206916973036482780880882728658653738751488909829508245785762931008048936954574352166851024757846796109042949183922658386937600379696419911682464548220268670995412666195137041350601312185896987377942153406738757755196971156719887886709330744452931955892544075342113220604129456125866247315524801496137763578974128618647133059164181684983591172231783282944885869656283082705735697998347368424267297123097254293463068424512760898752723236325236873401205166355165014814958693129972641559234351640162774870509601361403461173607179849208870138340876266504467608484652059118606751823407923642875248756734540368179004440712240145791213060914679633119759593411381710885617564194671893130684315983624219089490290420669699566147609782007214552846564717193528815965551431044105159781176291691908277975430870951240454756299954396985303645355652501557512381921679022121367362460540298927230337694018115699339595286284545453549925501236464782976583963476313893539099792029602038825700976180905108922055996477216072447068096667805485830094907157350601595005914802607091238125604975280919109285227697581828346136423826017754852413765684111649960903244822904719925115058723728320248942553303345489874095431401206119263438400996962345068733961019213315299834354908859224933475294034059236553878712583725671325371136405508962377030178786978887460284696648864155205599217471038779985741777158221015183078917632333023420546532148326025795486821316833193268103830470341483707312846116404707751089902146804806834678314339016788116969045686144433161257957292349506619309456910317179205000612081870657471414257721587167125740965236220157623427512467692173833672568247143970779105352176453561030475251771930582945753801573287034948468133796864575565961065265493205752839433080462697602175938465205437931971087987322606237810682244287449697242048409620996795254984117450989409806890321763324200708189925128184022653552528736342245630879234917812815273691746660003816041697877430180532589579678724176398013797736292693136211705626636736348032921815482665325954313711120927458110036103750514973758872851523269514133362564214827782127291508304729575365250054391726893003736316121753568500728985211194394188273226904119320157128670363888646205241647745670528927662809441698469678373078775548604026128225687502905992298889701112857327868548785843362827272789850653888580846557902162791936383655433343140655111541786115533116663191623011893671058869730380787532833939228357790741482337241369222542437152841086581182853656908053761844568603281960397978667425152026868333628419619851390827579606617348335801518347123910523864773664827140245359288412016302901698674979776926979387291288585135300174491919658655696621433521341676478803904298260022867274007266994153381550671322310159768987860989124264540805568331584612756771643386420499800478873100372869356271154980302342639775955250683522088240942618325720402686500529327710478947255360605933636306924208731147198253484915173888395340910875447393873314202475507214086544863969073487110456785444718195300216532306503372882976761046645316562523090771246529937725813556316910979089835323081419391828529850971847764359554137209576048187578660005574502852690703321589767453003648343789617842361552937990064920699482578057672241103415048000849868242467236499989953531123035394737948816224607865475271059951685320538606609262202227257374396832568348404593692593370519823366342778376890173425156131328916206909239307754688019951329487739984196262234035888622432689831999281852170945463389724781167392547523155239262868831111147937381282406325961341119255242516634620449110721471205817641342412836567338224585479572730555502219861903072571142900966662393361932128353071518642085339479193337623877001616479046461692004218962062300194525370857182285351103893934819838475352922969639014785357095321920038272737488913887423445517255446841550853298838253349239771629410805149361448960123191766838855385450411349709997897705592300732355771057241826537020518825329605101325618252715982609836843437790205845934338042688999061429116306222806815924050960493209296775012020334416525368930692831275034458584079785052029330199460907096715730084273674088182798000249584239951968952269387460448985315614893558174775686291249914111302421246516873195294211160767355365840913350279120805347837440796433825173001431031297191186581735870000669038431866527024542874481441692211597718120530616138451261367372411025708524641186979144304779661038409652969162235145863464643197772448248840772069156156773671290101813700457177148175102385068147555053355421741102242775457344791963570947197047153768583338951068909021164262094871399894883343990630811765943652336368488776032952568110365223136897604146315734506877142234726537686958784243473581542372184200811139286681929339452804805551841409986601141888104371698677579304434780548552660503334232716289464244307027273988741963601903829698728063234492770316374782573436589285927935549762494210682858918061735086285309004576409230783712021474351621524731119900435444359872113945873416009128275891069339820281192634707021856595991726996855462007936837902308469827300955333170350026321899822047031916132042444939583001342816410736271292476460875418757014424186383140959222702788440382944136229473480675954412675062997683744985419433586778123064217924603969686943562008225196456537929503515155283540617681966797123079727566137292301751484145308749296261648701257551178192111416761119760614814290592784260889881223290433208059589986472262038930418301438833201802011144980782474431333687702840001728409006757785978928000744634320327351335100822634981887752088294280175703958376184554941896992740183156741398614180100067937817714218754380638211949851185775962824550882417787363786200930903777994105811807791076598262483851765572182881091648674034646233753575217368738299373178922473433145060465570890414863509230068222966276112896408812170664831595772409242258838790239446057103582141845550665570313646298363048891913532496126284105780543503925922838578834782125019352145284395717078744989594234266104889523499573417100354105963458617807886637030533624705736618314698078658581658780337171191135197457560902633634604973929595362887273015468038028238974080384368987712891254419584624317941032655954059182578788390499871144179080985334192726417764796470454504043383053756068432940439560458120973726955863264934076523737918154829674390411022832073826611428220363862172657186168253930069177881773055267630548975259991878825468886602718735865507762857761179625262589651221116159422476418291321976807869829549124859320637867976250512422880983521509601909401580982582983544903350404574728881452722441221689924847870447775944605320501933913888171914835189103522014436973761446528789031132917577656127579708390738128407144240473097120571415280086059980246289436193874136798953871396008037067352923518264881730306759287026695230544227736681157651841950499842309204663548304049621356095582474418553452420054488108907312233718117667046281683227485744618675725583215137942642155251930261905912471858979091323929167453183769298243414032705219407642162390459055751651958933957164627717366980201151818699809423371122863597459689363608547295620932215674755413292138087231915089753458011035864627957484387253874935452516514225420760899181037429048142058815402378836763643888613085586572492821422652121157724270646369846334671660324622549819727899673352599020553687178623678209001764786691831647970674569119671166257392332845846274854413953406918135366858515688486185187738158121583860149958992586946414922199694889315635129669677246897711117985869756022396530451225779337871195875352340345725399814851060086385482378242658114735440882372328056742878699440624074903478489441195302318701915358402426987934922775195888576485748845706497265602891880781751599265709601391855138803350163234196025603377270857671166393854209662777812013772374814172314360741419249392453976394711591462653306338277010358681709673349357187370629370266513841581640095427761187287988456774455019124080288739911627335957263196238020568537784048900183282177183262487778753283319039559939752533925071758903272199919571451566032128847647009783742951975765735287193134925676546341894160854536557331412115093050515297242526553074445401343180101366890783782595001845580537442233185414511242341524972482804228065783827796355480543258377312869707632667937599264651106675547563655024000889123429472115357425466306858438795498162423999392898456676274445226096491919066842958422220109388833221284029302638785860044286178521606876675669710873902124027786286373773213418217803409943406225093307953589069298726104414048556292086632327545320293182830319803871124043136385140794740398182060848961004828467304090269091005444181445317096260903725555082283734313824333933458995343889101367690825547964760041826630878112120585069922808626743831404346496549372364347699415167771466339674234653518249034420391026226616717182245280778349163320447011833136122729033383959932769221107308919819444620659081674194098169003975533845446327862622304193394786171706017427771451367780046838776821725862857265411860709689603218292161968466415405830260053615633238959523960186722587629779055325764448790225953138854020670428446751123541454816790385563605288048099284468540103352372437297436246743609220686054555212049556500225796750781484721754681038841667434571651548943426729286296079869920319227702871425735550284601839451178275032798833877493564998602956917060660842132548660161575114373833735485579624292588893281415209838904336919261090481205245003132530753164910674484908761036473953258890843813025379053990315191360723045429752712016819790613279494206754320746867657534532956384072627486109634293573802355024094932322733613350624442065582265440326451616882111135472489979800843599121462070888813755860693371134027468064626494196643277014660518897828837692662519968520942395862083498363502050517329430837072847742715259548625109886857586108912468542575618907949151257896562541611078414122947834298083600046365341024969950205845851754476741491079773711565610109778978433947506275517696864961135709758946991924002375522396474280593386299020332369742995154054908596729576170922840741579011149904101552691209375653547160041219815057909922588312359916930093972057294982888088628652336221792534200212773615976721390246942507613364302194591225596765754374150149278592993165610505520294081663630946635748264445279772709404905609384575472179965573674721165700101234726633460418265407952896582293524512211759982177139582412498738193936986974379537815362174058091885362782564253753600960535626414019267018514645584995255702441153948285438666695125475124876096433807745566859371651673854359454558249095817143302684073300768462513580964794404014526278608440353946381682944334500389011981267712934171449292080806136424068265558784689995059954262353158875507084149289231542740265538958341616222309605931243809636968241313387130146574896917081255383822736398061071070554203174892904302521843595552437102105698429965428218629209441197705727959116220106577915871056393387321402854168900090314285113424350063713155821492474298109658264568157074477919435972362155324995050826252574754581138560026927297266350062958989097635318964212397393970395600112007676084507334342665016038912996537123714290665343053255754589205771215293223943727998133464433311396260277523165105099114314981701225089090666565943950845196189688891571290155580563615570898702179412856626643774026283345425174727558169318034402341087442888689627451566371664526118744917183661654747858771138743748348116917535051482161011990766179785448191903329604934942311711398144081483010948308193268403057053633161325256281925104461834542017386816474636394212427105890706340836124740904805562286559573174204905885146711086342985133229565851175555180131784385564105716508098762106721256004149588950091922467347947492223252401146942470637614457992582490324401102250012092854077412796990377787491182925665493999859114968646367570488160817321058466171203441044305234083959834041340189608503368539060606686033323744554314620763907156714863363596194267878203805615649563532172824884305617452536123946984084845575443628361873012313951272576600267796443634841241085055945306923469285416296875929242042559217733336082809250047972600430995588986748433917124157291178014952489116870203350013990179033233483530970705081078178981991345700187533129714566782058811817395357080598215747014740003805983165591918531408171106797272214104199138584607242930620316439139743074401209204997177134229701472767650110741629416400728062323268676877314775786918937325029205005794512818477706964404014812789415125974378694334731768382362589979093204908717544791872848902152330714882771894100497815027163086401001396643669484338716195770015596609196852007259788200231554997300962059514035217480861012517787753547900332186414226011211119107984479464964850461530642226371955586086689191727623897980972390193593990627828894997028196834419498134817641011085317348478700569152382666259308523389475269744456467159496582115571059236217243099088041734670299414683056848895126376911636044600806227801012741071731452411558854318725190952814418647687981665514183426943952777784393280056908893020736143444365671067764537845311261008131505525048795661269096921270137808938933831918674034706279337854945479939567484370727945770896281600100179419420445773689774276733753690526037165652408308839350227983551370306781159096047600781848010802581701621601320924109228923359703386738762263246308901568206264815210090149272148856987783422429409532774600859980667529551490264235081540925398946130965052258853100985804094882059831144687239694488769627006735640684062906150494981113228038536711408652501996934877512206483963894335327136976499941961766492288568774869293712325486198186508137488416086139095682354375290683823710685736920696707052923935280062269952082548661938884379551187973223954450146102821552602550506933963163222530765763012644917170558760957307812097108432301242749799390576149441266479306830066320222990376408318017351645445267602436537799214612506603111499459691363945378518612083787993878749826941933880954334911534564943853838472441482085371448882069186659942669557974354062701764195025490463348624052424643114632977640751148377173832168166478803987397564942618655623013095303230422618545724430438967710925893684996956564902450898498858311986333946872350301294448403845709706399674939088901928260619160600029470801073830686110600142462189359312452151949946068674026630032334747336099612507178840696432072954258927443862008701918561646649956031199597745853654880544644966983473651421008801896713649794835268371949961876430912827650167204682460027569302628036825868856616992093722597221884342953065415348872529768369852439447935851955273943699934803292019210143254287625102635646176198674688791637808850531193726356122262249553709647817567636961767006972520982790514193259825260537384692295508668646376927640162343606013981442210749217003037531858446149641899173422323500525202577698523761312940324788906709794159953272721303771717424321852910039281301977336683160289395175321253465327188737354465672521988479792416494869579684688040372306030449746382330618858373933821028722463747422046022363671332607259918839483642643711951177871761726588953968851271256289376258489304907571099094266683277020273270234938029125796015014197684269370580196493728231611409127719910455426107707378197151062449892882847022640651072458350336552372159611031450206387883984324454440493026778648201966894957615619388097770176905688256830110230979682709274547946544875361433099416555121323522253300178107726407715553481091236100840929071566911961314040232697957295327904451240282478410082181631067372457078814010867265765511163167106233031585350165752771794452723095098202265217510813377854189447770940568279421202218165558386759830533616150159886977926762941989249534014284909354121848052812101625633636328522793367127283217491861127329567013848051082056151562409353138556999041041721309618410999965740507391106767292374725124915318646887265022946875840685577258327106632211139951500956304283917046646411976766746011508670781367663009345756103263578652146983896003099841412516270986684028013882216322630694027142676805364714768036202250735782766167504339948189613754614315955308860754920024471185775773441361611382636200435423776130067748147843716719917351922917395904932289303583233044861798230085598890720811714923125028764896739226269565845897030079769522364393841540209723164206976116297037845035394997820618453532969651206387024981508822111470660948553728805909875537489274842652253909334721491180922717995381025920196173194657238184152661683617440656683731220969326015588170888089542853265683178766536248169073757413885986935169922697773333923571730358607460901839865308743260800170779507877137527795950588767393424105910544516448857582696883572934969059574661804137276066435218059510148296644890635368349877788037496845644823729456203933051785842453943495333454882223208835553269475063338174234248941114973336419747030331252442893318661861580692924748510162537997511037664339462244180857908040768365941528134406929053213377409611416359777371874943246611713442369159279839011224594200242286511781126693967973662324836601981625495418947518795649750297390014679773603567598666963192139827677684648869166660132108613984286088174894670298763770892588515843626344794508160468679554669845533854300103580477314906354192536425419939408514750821670025113029456281935129538756305577900008293880043959508552994708296555527238737883279235853717726269221733201700137609610476834803364064182623212040315674082869466716027318635142482738497027788004760795383889048790718602720378638720269647749287154099218401304943249379669812038127958090656818113532516040040215463780587538063150626164611094364155557195644250388995648740611533613461732406258875096292140212465962366036496089206068360267153403038921417090446469173393229665987010991661919699643555361740024002176076634814067840097854691692980596438327975842285792190007709839395446931434434225446975854256887677650806467450982446272294948397470098788290400729382123759373187650406971079593505825486209375893377154870431588284361769543365126670966182453046129478454134563563786480141528370516965455271284129325476059653731600744693543771684459677314711081063592222366452529781569056046794337204546628326583756117842191002646772169088227079524375781416524680688497995027408328195206417864536246298983327344169057404244951361735604873113293481073297282011435976279686814146121746060321642732701841406521192386038736272905116513874104578065641356300445909848901671541365536074716369071878952496089601960917069135933508573629031140552965257597578581036160112996899465877227810606240153933426731158295096827168002877799930176384009992189700183315052249168335667155394250200925175940384361714554884725055214746297517097615305807939394969409330770750435752696940872807604247498148921028150629111324228286264859350401170559783148386941508691256141917957611172763696239811578531507319207168970956503206223325782231923941996656828379894180849668582601534327477354166784035775251364098105592095951853417067402230623336635895548031484763268619298374218564467550744938635482436439739868535394115479987398557869906911334153465203376216237211041324464870474605666782755705450714190219491242399052819484920881767736919016377243878493364035339054180547340509628949647496108748789280522604803738022840412707870304302734106336441347533321024018406771261850076965793497545485348910667363932610213937019196938419736905024408876048615897477797471185390528323214174016011365641928046279131486835498118349522654935116525122578362273819178559413451313597819196912259389870270071247613632876655387805162624101890462100210598185683710800986251992886139888042049942754514985160566249990734182934025881693791767682784876431439286386644275433422891390890550004967626265975996121335998071921076171780197710838826940551527395017421827232934003327931288166801313851389588240253004153355974541309901242106677170796665111579906495910567251290860006252764936870202955005470707102879735009158654879246736792470909097770698606067062740818094594436509446659469836831040195216173974112082624847521840964962702016008312109464544352741063158994604867162642029347746316706331285721329853698315834231718322138670702510613638491697400093247652472350544353906887054040933980431438496571411194083081126243627268304877366183308791071433374762792254275807773104405062136499727040655408840725403861559359013094834714145240341122599712988546024167906215059755226521688789426423907238463148656393972179434234772347559741599985267710950393292352711247471544598767592110293550629754372323794686512267458450176622830938059619291987934021290413248724721273352036173787249951608691407933148687104302584894801562362435903982385625068638329357787143266576897273189569208240684711156614005542999819210207642403338844172733320153195099922882638084237129182244563050657508871488835524312715724042697728973594414475491715756996615529875400062958972767396938100599872273722252495607206301935495470237725087285475206571697888416956466823399596455239935921425258395034615508971264632364187153305501613191879086670659676766889775251316105883133578129094161913573616699452805084603974894372189506094596121481866089110978410219718895510516520802843985259735310486701268327894121921402781429445649686852618643308658833116340976461828491073430845447667551294569489796924150302916496202487808116739199382526734654429020408422665668518832446711435108508429904245763538294165154855339306911433167123913312477049582762283285919663716725305956481222086875195087052297711012379621222283805999521378944848649277141394406098339757975770694807970117928146098735628226642647720623606610909894614138505232252369366597148735271357975839323202588338058261403864872061390949883245940286604858617433268905893790371813941531997212759067604864732270070662815166904337672815267999170107555142429271538727979885563310537205892062928033910578718476653223085897891898864189799509494773866373394742144104435249892591679661257425250424255766147648893694632138991094468877069438258444034130510799296003809797020334957026937312101839441166382248061499215888987064409640264032676912852306822293508537834895867326270797419224233607073632872933446496507155439753510713826466759032930983489332653066708620400732211991575065329521223765357359592979312445062334599609089894527803255721932590825449446193862092828361276195105868576816056887515823629185276995582257535659967497157283749842080809868272623141965326612853714012238048057426144418746615522666851879152056885956866466738289879435141624633811329456326876399683977012522493294177526646293492880717387677567632311449717948270500691252321177980888513721563541836536625582102005185765457032823359221316855755347450612291100409578035824811749247758339543094724763041550868513714107583559444199295429020481608651352613698166848296178622854378412031264903466397166516707581766083594027947998654897263996334232567567724698910314554871402206730052436065553976428172791518281452401478038878766891204097513851710792297420377374296106458388945757852137242422343673601527824653016473763704751263831805576077788822632254026986861078031669600559950031018054431189550935474882220371126569702859860542952798201538240058906661324505949602250954893372821691861127972281367022905745885816815291592167573404342027523683553766103474298313867501194100178419735191662294912619005270657149681437356602277999088367181237347391060201311860357810017868052083709961999525075360029804268020407021509157165572946663368446138411082818476847279841529754604380910744011139063868925684326338646114142956918034915376914172457232187223029569789705431647451422934488579473223619933240563425238256058778706201583637640844791055265375533062022618870020181178859911351900739271728502743649498556734997124175357977183736315271446868193222962872027214837757079619190726533620319949086606687504339158520279532182899663744807844321556458450524000106038622797578816737164292544285592659422474115311332987399230166146564171076759333560734434950557668731299967499798287111700683789548206780205929108193945004476275495656715656280070315306228478997374228317673280524168375144013661590619212626323584130357754577871735586368093810520185919131283229267952304361365508125085611695067454385948517517785729532123522568651086920851717106240242598287824697431718961700015514091299118498440676655480847204712384611035348782069527246572991218555072370720183488026744575310242912188275109676451490480010896321689162739891730501514272575395660095258719151380232850290374374466359981160673275699246015393434323980208655511139025740281926614014231460375314303013035990643057704816281940239776260634514330017786426693581687685995763179986969284108808270505523288777111181461438265402366491254677867441578303426135995625645452514082276292149612788802570566587445858068181137551615779159729959695081585415732604480579640523533081638283229655918560404082206165614275936949593664544326836422901259077639034677104294834774741834731525900231930814827826665125349365769524971450291754174881567320721332550535914221576711101625259627677532992643344990089491829861724560355577771539654755347493651196347519201024092154228897498301138090018521727363740905949126291809512152736997272722800876593084623620715663317535715336288085443544190616463585205203217630584788888537531259877562445948538101540030585268318984360872005388111539992270589408835477371063360602824220354297731429025409138782786640030394869460929978388009031035148928060958011343296855374225295206263145047161398449127965943221974222110092788581502530032657709141108754026260043536095925139420427398530698313057773757122363769056288639543813918322844822596902731072663906031542675428320413999372788072148084809560942563536054485488535892662484226089806004406042255732742194020354714691040652188064417434427241490867657123742016444237859677012765219860485602484297401205652639572456440703104921936928382388868447050367392303541507601288119620945328938666119150431583802743185885155947771426285881539690900258779907196051002262194090621806532556077563166923959692006550893488288027036716646208290084585874142175181481407124378944508028627072319461351733183885973505177099109500839404644032924888377663986995018794196707137401231671903815354236777625511003876319120164732970599146462740817637446702291989924184894581657561419236471276288938784996326369190645403872595864425833085829748509643070501587236490656397659740164033378312376258297072419927940694934711144178120004666088160320094971008244226299799449807459748299369780819123363177019882553158914784488837783091164688982867782444932052648001997167302014342551242020417843134161543051463304871596110778725009536170317603436388999884545102027623894449487257935179167629728108182776583399003853421157002510988353101934843621714464142832320819993312454918226362970914588643268914198218490282864138549185726985164703891073896726795430799905368159797125260568972493374466206594525865401091897007372233572828195963582977629269142557316032769750942386159908111938764926551492846336238110434666195658670634333447722517751426437845043308620293809952306266669548047055377972976058874962544793831305501924831935263255971793861881865656667635680520971007739342239182649805621050242652935170465175949351167991166769771809367009827318576944933081193060163571381603033125296358123188673385692131396470629694651175206002512763499939866824590248316240350472909934062318094934264227496882249607283283482489874516882470170241480149766250274105499013285206939192391397947200406635285371169284123207440765826722523528331224824955986187809863779828939121466244017813000399939140372574506187431725647880663746314712370057933030320159910578452773762636050674692394206838903543737456636548954295562459851403016532681398586541714643980964316725397854493210311646091298753864216930475495934579770983026466989926192300154262908139274126513337354740895058490201607200982594993117860431986591254517769075231807657795090353172879114878655352775062620135135344883696866434917999473075734853552623253013794424956181116735877756077240558449470580179165978753654243887546208028781387674806122632170599659159392473720017308031720060080233986999779594797954841897121888523263363783609363127649607028306034675753030549346987750404181486763362701160451133350515784143020375708064627760107614456437275535781549003430612717043623278397757176684547960149394846058072906139915024919148139791092420595787144057743056391196537841498610715992016570953561091902184026146550604521132579247906021570717332033073444957919197702805092739367856090855020721490365187161052335792376566062783315480757790553803323355704649435557903235612484328884128922394058736740949314742717228972299697505510573826813310831830802353845039044388859728606548692473227260466157850066130742286191455048590999175723450227528661417046218258630674399299285541493187002585001864279360981002153183357625788762669521203026107085511363107353167981476210323003765791729577459825653341520004443025850091739284345635415702498220541236274875645369172915779443398199351771819271718024039242452819912904029699710724011818966820435521445781804749000486238892682268464953643846737419051947984001690017339389020434000071419643449790737830034058733511592023127148589877803680495092148282336718614918958110404679708363075597698026116633539445376161947408373221507847813582929181538441059155710327272321565064918606811820189403534612034682084880506618021552637890304062496818023126896794749368968103171045785985443297563943810873873115104331093035834802742499035122073465113332292661110960564031299712500085520370931197169546047985383654963173638886481438630425996698029712936539402326216667229339239521511043486776113395545965918351574435132458152213421902026243008143268215532474082341678578627365248874552850840212780503998206961991627906575502103120982684541724843486829549757136150708371113291589196275959531445643290161549296910823437409832875057637742092131919935711739125473418436835453445142186159192586910140617961475412944273764270920133180526019373204091140574754812504876372363912520252458936085522041111047220304614561373925203418723246894500500928519312698252070491220112762128142283777401068071864109915950838789757518084848069362930168936213652404207979358357374925567438180734153763906859257338769520669753433524234828622567771611931651625494423271901174680028062224460183124082055522586900946098384945946094571285570221552768782750897455469194116988725887514737907701443320696167080657561162998267657796765839079926720912020364696744854869110772909538609467187321446463429437977390638690635149532579666464615071325719061969122735003837133392495659438898609906091122599372213965049092644794995415158640788824892662152919158333422447169349431251448735676198465350485488458227776098052319343699553104436977696421490201676032936852286599319794903348319335221637653831835441708358531395804534346190286527017387990875061812557778478551056175280149448211451359682050452030542733564216035738658292472064858135461153839586234760543089828533351072819355715108890801527909532009832740715007050045412197095164858073817594016928745838457757401513478627671655305892011620628838768912192900728732564508916624059967322060735017381268315671540752403875982159376283120784896967390618877061126774191524117927980627151296813170696768235568090272555958783196069911245505701191798556527915656958508185200462117870322026429550577984688238223956204163142977451655167881799361797076069058832932775124040826930530168490000982723697899499437161373858566642293983829424783060263045786004299851252227707588589483835469417899265620964005117550952872465478403384801038207335318650181050733934792179786108792520631150775694477948918278230919056694900634794038476927258196024308358059836622887835668683537976242863708074023077765209398346719187931842406347071903378113931161783465148471716651681765774264301401004852339899613275862940994910686813471042382484738605656834522496932715575726948766756960068715168890348702305198211440818290936209688838616346865108854306426192335740814605871241350329919800433220221290281162950404841360802025313021453321451336723419578516684738525422327659054159284610554979905580536233225071054707591715006756755609580057223250782945961325379226260810566292394084131239679128860856850030352908247058702335154992841666406998410352826918379748993435399567050948198166742527897472957950644423499116825548142027149720807369725668278916644766500039027843021061259120840969148150539371844450651306912745655765737508396743602238742215928598177802435005594545587141570169902457439517135520918296542180815649703013359962802939476290746282281852338936249235038503890167270557312285948135462703112245385807104585252730447231498085388309471119209530748778523588529063878046512093838389558673985861615021294589315969232478761780144658835033641819491594001398124005485437677043284327061189618594325898290478524604976214881705363254058884457858416977389059495193121755354423935642419485849561943085205616436332568171664864963386378005250136553990597707131414754962440340665196690702098356494591145163954966241405965443919209022141231561835814754225754210457806454981096111059235901079827880435580592768376958874066984603847127138586795260840307644327444017476241544404669165823938185003719823758085019588984657694564526807876650685977808744493765442159417314586579885722096773683252806877960701819231445747707367573359099100291257427281888970333190557436364362270160528844614302276847608675532376334191025353858278825376388579492362929725282193614865006228553253020639240879511546079166745462867330438780049386963939960899820438747425803414989850095828016732368490357155548011902874500125826579354960189939472824357550067084110546329812217890537034253045919354677540944938487144072459121596498994874306673058583189963039976984270462023091703495033224327850452653672400362213338046515755087008799981225487874062650436881193930190846674695711239321815900608954828078480280725825760912259539771907449431139658777356633967188171486189065407824347707327645466704783276244763234394274884242749336128311663667568971122703181257679559375278455036206081018822046855267080607242637634383301430078102897472396065551660096643831396233801518453232380845297128762306330456473913420549553620800869187988786734903787256844687720955072522831930961199264541070342579929375144889078242766881208593456556573942420553623601704650892504055072811686823441092885425420830874657850434294933127179584113219266568674832223359620738679014130524580695490348619362504715930566635829274770500411859095520409703295141669911228587324204446202871304317880500929389124607670154256800059489001030039987621469408790797966585514725126696894933855222591500330694800451404101203809606781177293309458926076869353356558359473844866986654878659277048056630649759535236985717129557214019490557975893622421763527329666243660944134551772442407527829587676713003686043656417388575990690318942622602518491199223516933953124405516974570270023849171452637381155679585138815462250604016135893415577458205227401047859287056417598285513928584805846639301466924885465093373502492631742231393682010197554296544540641592441415546648863115709363470094874351986424836886734897409951918219547438401196758574421393736343329172536737879108693960924809120124093982266536430532487807318548201478201066007993852044351219906021604132446059619539443932597264627313990169266370400583312170036912198533625372027810907399365048620887937960258710470647583605699301879597829779533484324136291309885381331620042626154815862260106790346862266954483751287096574975019740141739629319497347341480314590462140840019319445769895649430019738104592741408267340439655122092590635955100575390963879987480789199705801536121621966214150457976767903686267140526342698927506290029489661911011365441896309422670795911607356658156107845702031482435371613880774079073358740602797239344019960505347394682844718460921517495879772154087210355385217322163298785547075772039986511335494207797415110246442789262486773103131370666899136762739786799978041782659583528858246772854218568441288823673577666049223048052144354983135108011814159305145806373294090172831692272910206296459587435292379580029575287688923940971653406432366583612485286332981557771680547303003801433938849174189042788024967504728896983286451535486333858217258484731267109327446485493115801401707808942581015295265013771120471635918576675644246303361721066963667764071087641110108432727172401568521224659530646349822987152318204077970240118596289976603233161366921169243132675833398542715956814206073765772610632544147936325579479800655209817727430514926107955113823017276040370942085905754779068102884729208685238337510842756186047954491535834034898028520224005707124840406161763184574361286931029021212677210169202786843733147168532027189612882146386720653174891145230328431197424550761060103479346257433736381740619053144924492842147603742742894298548861884068971027552676445557039183321607245508903949718642620875776486670923545246971427209098962977409981047766870059914310840724466842730872510434022198189312922825760418948586705856580185061082836216108891917713112261117582769170721602845175721422734437338732010184849524303008708956403821886154928400443655803766485962391222253243428641194443143579031838475301995533129100427807018256241691110765922304726457262087515558551351227912910178936599662563020384526989900251448704163367544874648647129322191481233936962215469509687224899134258753360216426312413300006333505441966226796254990841149145196793526907987009229585987972188742855118940816562769489158417303277000994040701638781311111558006282047118498826943877805764226516406787211562120786233354585517995585347169624670473660140501983683178187378762778879509162828782961989267317242390820711932718905317053116894243932840100159469860299313533334360414662468748738690246330314142809922431987418998183126082128302789587845423993434939173631042000513322259719665180059527505899994144544993896900419001652216001177314420072050612608303055442942825927395604521709247839664577691871715782311770964722241234152490669803956864885152377775186694881996471200271516302292917293726870772375698140311195162456117288367987610910438424639064019549831189690673923735235620256267485243398743963467652621691722119324079491105890515353743853032753665284027462613524638826675470280009126100371346969026185131358550154936637493811183492461268495154768929301327935807773462699706967213920971330942879088189333945361872341951031375845556400241565630621315316399866986512376477630559484709340546729578543069423145799654505244864541386226052954777573023039892236135857729485396741826623530389247987687530666339825161796219164086798040717682801139413121150003130652450507566404262636410675339698871392875964386971129241510887635449646133118603648647247751669562875533228136350225892360528419195754280836627716287560325042384053479889111524364258453973825849179546562223665531015628329158741757343241413825438144173205969229778667708106601103245245058518258607956969086429869326618372807208944447014193478761666108620043439732000405120168040879360283576393977354049840624519021888322434861696176353070808540887265239163000010631585632609981127036226556287272963385278505459971696929626015182475309937012906721979285009628644730869869139476371176173115549319230089409801460438188968708759715979630252111230997012147393228042083111339025010291162193605517056095886401168495862384454699698192913790308741202826506809342876913033934850807938026129131146029743299189689162871908342483701824870370957122897744110561568257291678360855182388370539210184811848723709630834558063232791280193711984490363448678207487945486355814040638756706028710257926188130763092158101655700304388180145329943784948212192070530095471785674236026207970770938825162308271365330705352377895502077596281981841141219562737622061976309579969522470100179804732774160549638746089015360162619182207203544188231611311726260255197278884534360616527316264755865206564936784871788789289285586576653083313830803567026791637835846034123307473620630033635734149403397624821877091323219264438162051702762488108335642481028849088643548877151400758674451017115503715352061020438578065563701143464945647228713653781065289299635019032162643030479150283400112159017017027996435243853308282031552710816938339148770622383815329790483048069495365601090149761036529061195035806737021805629020641187046209506461368033706941317394659550703341196142526412479890806731101116537011898406087086120438428625728145973572219424116170954570968910987668259692583166593959835705377209947998558564375487452934505541203961703719138456524604047154620587072634763266257095534781967768510962009087468238749979407855693085988196307692067053383931311670731650269950281041273206072521801223526950210102358849523988781808125396249597029903240786029790001378596353788325389076571963260118675475631104690072298188195470266927007221417130483718673874312584309781914381931924562536899561953268975315307355301011811054638829918733547801248054681792810338167451058304066076075247106574131014065512248176016409846780707486544667838533110663879497200809907296019160468832404589169315590917597056326408855164817140841319310256712092126957197811049056347196377686642741599056339938000618695182753393967466047538836105628886504963832932165665402108922458756327814592545198290212262241785821436825615761036383742404579967386857953248681089966655618837081313285258784451669197965873674810890719519467070115135537543255103367908078000358951828893987946938950694086194794265099036504851447024999430858934290098288948232299274646073549155373134996570265810885454596487381410507030997972475480664194969808922157040470531964934004232897712051891478587116747431886928669972040175167560140184689572519043341425790214602540122363624624553890652601957622873379160769898646208872183203286896420383423653841263868129465956595600154291692500341318476476883610308819068046323456500909275602864832035206776818358164511468055767499805290131907517537294802145213186021763024999518019763931594203923030836456622680932011880598037778754080258089078150207810384340101022173983391293093348366575524941477406150145312838360005256584970962645947796980560862583236521995129618248150292690584479604639299141282253138748532379105811085864130533440489849458919235659388886240214013445133567151973093700457971651278375628396674234462733454525570715568729690446616609971930500206536053772452900810472483013815568307585345176617243745829570980215087633807950220963606313173448857286876020425427121313366950569820893994233168261056789905105331489034158678815401290946674160922377779812322466309710084118083837136478192855952287352111042116306490472622116280259023206820214855562357926764019127775346790437604832595117204206908223056232340509714605131026735732046914688309021360767739187170477763874014051015235321281791917787346203403702424853487133115764387958453589265053197765674407192767017337813070947483027519606693085876422358139975437668474183961492884101761055102038177481448215655736534045567226508616542516823067201792700326140497273763719004562676012694058361059915759573828450632432931200289557848830344180133317230490292181786138297677680441005318365323436580965604355459396869764155138183403076068463205267503461519359717462081995124532643593096062241573799203273543780251285659567449674960116441760615544767283459962087987525919110389981073349386315667173396557317797717514939192973943686878887017049823905590363320821730610088376936858238722994392616309046739518871755639656395386633204776636529602641797491826992247988090368859354287710387886773457911153879079365359758514341462139477447924581845118731225168538537952583141832622716696221553448639386787739638829752452449502134096485460106377191736674120586321546572568656156335898373653956600046888179985076399936937604129034054468295211518230180214035489526779574611428119616977951950739349008170399196827266142753682429379531836997726729874063004703986469123883561811981092068455450950467950346691362828753263342020562163381468545837490533930575011318528668791440467761543425711665167232332457226422834355834756656242545048823782675607417664136268118430521608086699776596934646284584845996095219622745289399059085914961506190098362969727239362963205452437561118441024275700342250092565527555311078842844032814146358628902818651253313838879945211794504984096585782097961416264095450267616240851997777097607971180074595831107896377617344986957661097594854159171477386759843755749217496543821288867137339929791016928942240124550862605624045735078071167300298759605517407737852739019105074705379708776064016511944882707208142951108607791057786174418755604546998705873754889599275904331278118287594237559261948859898803507968341825191294883800023743094520525217457647120100089566890259304247785902662598961854468519689177441578268647630773537435056058863755322659977732698138118392951998637815822997201614183183355278938803292148753666466558809713270024670317147059069827581118037022631356219275469568172513694643666329650899956314923540183417780041657502274974143560901491357390231737159490270467212847943519235637195688286656899187811079618961407610628645652275008299212899047906114707735310172522319413083395267606052313368867667201383403782087687753361575606082358396740552256700831778800089825767123403925786434420381332438506311912072846667946499513402349307569715652647177791034706448644889030439531777600026763256878810155498045000415632199839438539513664292227911290274182619394577676882482862461417532725879503477473515142211753732318601007983937926120642414953453785346899056279076431148290496958183783841925887350824190237363283512102615631490415125980136576494875423278128892943528900842387498864634418415143574136527730690008678616792373094629553241487092092489684732257289226464419964176113285208595518614968596834706297034850006607488088793293266157268168490172353044171583401168888173023128862127534370003335997200927184167513359491190924387641071659702580583733074224844135354417702972943630741749239411082415844874619094880434968661085519175745795303746533950855481298995122637492321225126747465787277996888247916824960371040781029849752938265169768796382785258510797071353016886675993839931792237255700143909564710748169793330945005580313931469966466366329554676355480034668395500436248566318077637650640189176203877961511550252437081316983958386090907297433275047017572557769461154603933722349306530318257664073326159897385313608597107338377461734826669966780792952344547017702960882895592924932897587824754058625182150174482166891441663853939817591824466321653102475754440177731860776779598189608098700236458621976593095579278180059077794038771754907118245774606136683976776480946812071815606584819394144242217185829849331434186719275161158417119212305648049782330527311253366181055430717486387137063014532659783324569109524837454635966130187718807021442823421087555410005190017713655419506506894245208335869218439848464030887930719250698813463846937293325988260981379332841728235274359414257282082062489981105407869244948937818989521516010661620021305745174621637347203820970471437514846926076113456305470387277754259818763427156725972871310195075832276237582662039893455867943164729120675794494558520221787824723397375171791261582965590084837791584809198876805793956057531629356506071242391282704239319540717799250747955108352165428566348494536100060867403681964464090770977734516271986887304102723872631267048424324133414077883501916041437960902112226291542008714214976468480689643266798356000779585169286511889473794252718847697465827792875171448825509503267443146953907397972183345243140783178157868759029906099552093652031353684263259016906556754967258874055920507517957604643862707515541188614711340938717560645243074090521987863413044946040897197191688762724954817441977286668722595818339277717517941085668153081413617582433286012511637804477931343830092587969343269331402926158410440115498266662313446671793415222256643446613932238622910145091192856832583441063289465165763831115155676813474341082659263001552576850305959595954188037598597257867691900472379775961358218812662332897954495529589430402440830927788790415927784496004475447163137209689963109047761729685150738498590322432923400305159345592571724805095676257105664718868511585308146154650689789271095367961618528010202665444792842830507333926048029884033589242791178450409954761032359146979809449755454828161988876871221704111533152565528750724720974925541825733015809874800363596805351120286505522611278774494272419187003402725138556056679538943394234622638755389827137240279049497214910438453341422968750598088883637924652731495882270479865091688005003108540041665221270387148999284514285309550943166768444379807822015177235181586139073062551100177025334513607879950045414086102936904257203964182455044627805599149880833276624651762377194895940402007080373240905977393892842646473491522762985939285419440672739188235166715045542107136368871275650246859723222414135578806968964984914911167280666049845904059909386856038106252706224228547407124088222990158664140254587649949145777058429663311246101444431934117827918709561125240097488400291832557578061486693161421675290854394739079489229338255299195232525211547783904404095199601227030927855903308829997206430585516241493707280745904695050331795876017398671817487436041585219883363434897461890733791300564904667919706335736801792757990587277966761166277212655040550490114555499598135948479147382448151739407104937321479122337280577630630415767972035626714991073511961949233833042110377620251532852282232314729911490364373959073718582364653919383067623459708991008293266184081348449826332993042191526726018840938023078087823843122401119781666487475156613461344342965731878892587959545479614884959067887145315757247445278697691551765880441252329599118836649898108029651080772100364227601410221154491538474224357102436207143380838193855952285204030862205543664506423986450693879013323799711517480112076167657120855887223308348688300124721822516557287867006137536707341429492897936418126433836924281651025833581790689666849749756155574448449795133200552356657561469599742551459391628551127292764903355999153407119099805997321068405103502103827077161040302203342167000036111957686788287579707210519186600368986915230105561522521302413176309367949826593872112774447737920855683767211702814942496469031512790127947447843141845225948403140936769266410289888165179607248768357266540884186610289282792133150180761843046037398061361219413396141177815550078862871731670017938572682205962597968022860795121537073735046973617721213727705249309027937046003483930991285307920788372809505643836483681078984443064860701432895577690683198979417194189762651974794258621523281809592968621430686598672741701288985974226614602809972083793157013203661006466021405606600486529652100281185126173115773395238567858332288914704255363696337900193208930279900466633773470250652200585552404305928259723761841897810546765722574239919812940758213508183447866297332744121926719893278403245497984655558830804213195035282146792536483849136962895337322767826658056686646491745496435794750065998959400559447363665301405418669030402549082726668368560416645086870572140287510089665036457171177838727669528981070572739399267594446853685357816499928593408833767835982646326188592070002396867707589324170980701651803669676402344632576484912957916859264493279561270217491040057114178699367768020485638915526183497468531222268070757455425694919592786944676166650565274979682211814142710943004538090245427460080195441343671539908856916048380010744649065331490812274577251697867723225174274614767873000904969497614513168360984083909520206431955469626737332523591650354531607422241716735828676374157305685624813780047540521745876931886669722432918100442824242667811963306208406673769197315151613499630572112274662943988411416044352088271260826436754921312659350910723002797801604871258704028168329699380170636215552711783487989082962312470183667305560623898599388614049777844719478551243961380728589583644926138334587113651386054686682914430745198585379779013942021813854221137515781445138470642503021483337908901013156081543924732143272376373775674313017973834647936073109119880760406150243502691117443029836351279772744727391037532782096360701973678403831110289935710536316419621138776756989910717155386531611150121968839774754648789172986042309333225031442423016523822935458741619534146167105218401944405660648152445533855566156621286797295653172661362812662191564898809137478576935236413887708049337162166312915850460219041789890113693601595834404660284072055587827260956047908251533541945344345223198640857023359927921582460595419437987132191398542929802211399695356755110398430235172335372383326304429852592736688221575284680782498401652510988255630110674741806814014481630666420364137868107418299582789377752343389339245526863947650734963805564939661887183310478176163122209876154425240374046238024761395181513249214299548906949276807826583343771889262652866456820127153789070298229347278037818673041031935853153389160459235375820686644046925354375145428528567591999656688030058185455325012140307001559617995471615620279899927006750117144977087699558315173960785062985072002122806326185346440633922838446551626859182417129388307105194151104933146882620070497001473678549387912685304323378403884746016871877570203622952487134749846427790620711625070965663631251064853283971042516674291996445608112847620521359008282856669690756409110093472236098847753119105002396371367600028312331008625885541630770618503759424888121982478187191714375478060042818678758235840545296542212972352024445051975799159474987542824055830651927137989117278341797262069427228458912322085099674985077307455108615340640687096687276636802684169380996509802330212772792062807933912977828500039877773932599138874280186934820944025297810937305192590480019525496640723124588278570431552445690009934626280550690576281239695713865429112138192622286368953197804910336162644876553549467044421868917131349651653013858971584224405921748182192196546622267979866305568487401885949068197786328365899373871942812705242966848809104007739476669795085955877305413378340952062150732560240226669972824848876103438641010618254173192075109650291978499943356706648709635239870669742653873083199844638749179005856245100023523876935359551953013717900258087447575349460147895172264578206563348421399124696665763776677274351388903912084368848528199863492606336542629424321361193902642601737208010011896723888802358082080013719373111932655883531080243422424687892175136160237374196054888492709670822837777746827152060827423027298333944376270090721740682945906004276801932743164641699395980587749231314083636399843301702917947730150836442949208558647890576556304118388766417935958426355792153017917249771634156008954224687162627170171474293528907369898418296889436734913218991523451128976107053945036103982058239091048361863487971937659192601592682801373248428533688893450814672606193908105217853887037136019375291591123422064728678809518478427738278676245342683801843168835967377861148727603946307524562664825521105629948157082179341083485366378718297195836491383903881696655055528043205470956593901824049647614293256730795521962462752474543970759468780806917299701418740848806993353985542325965791562637736523225592503534338136698442314502825457519176114352584091959283759483297851915956478277467401067093612464465643032646213402850243371347570418586239255371664846177147385560083520161514447393283675253982716859669287517124042984830390987459233916997649635368564650670040617760801427705191610849732231528101816834353865786737685324167793893467902543201782006020336105259333037040723585113884184749731364724377385269505665166359574060999890712132479622883747033564598363533820555490516548924820140648673836638372004856137560782230425853139494078920371734708922919287163778412276431625916964649789105627532908864598153571248608352160598185837381353826164091135565541009878646192067381416568886869371564986250138156288269693040823280802607690311494411916099734632637577080031965913793559245907723935993562283834600016768178970355793176498780475198688115617234137433092291474054288927350668667237692298618038166382674079633249109401375439066570409317731333833809516368926973142158252747358804705874908307788129006621614827289241268965178019077831875138632778739164503189266289859992864349517600121036518738482283065325912201633109870303008869834864013956529828586213556278150002609991711456049670704328909003540100457164228040708484792304226397205839004768983645083837965990030213583557336475850579818675176779656635251191522693353441352424592917352959002873640441732524068651847868756751041602956331928389868070068047664664100469064189159748893725999615634312409060168231174296013292404882438217099259090506217435485121900576852781190338102878796607279147276287787537163323636250954038567865358888207665108235203350992411774917703080919283613149581598802290778975465666164131337507698557960424168938187782749809025871189389052436131413490716680526306192240547073072765540788537142528949657938012441457718371375155992178748714095762605589024565377743410941994827169018980375461329340260200897446552574329843629159621391772947980665647077760831576664781676116191716155725466388079004725531311554052286017255114564171883064849184030778157456219625061333864245569404015632440317183340945471659568418124394619477466088633473615243330721575162251928781090215212595704156925514382883001076041011209054785831841929796400240354325992853345203375111066656843995342969286932124288945301525952305547644150557495057024114329057538724804016428811377107615993973026655870466345763891761135873860796913515419372319080439821529014690042533848249221116027497415816255307875312322223769169197445933921628644701099372376779044090148620884901315870231286344622696242014263918273522427181000089107350613065426047356177373486203017817421890242281231750913211330638762037689334337430980776099555973929972091314993770373573061706978680650158337735018009530266554529258452780226581001130841969103541952686032294637229862994334904758412283595457784288173729411509508312025856287010628354020599083043328436219105693598495392751485766476922059112398704239956393671532590830278084036251478407451091697877148771734392845244959547580172196075783058691148308534620042289285555121175968597357519701820410539752949072699834161846691146638765552577702243115319265355011733557575367213077001440503004228208114674931251840303293585662329860913721034237413008914975897497405372055817751716363499286124537153542349726987323246760776529040106983572977783760218468836103927992036891318486873274189820628142495860145094628970207498114725786851563160315533537885251643447846812999865917541465933917358617597012594081837559552173842710669067657364121192514437557083115277892421639535300395952471821821859116699493063745736721195440611818341129554030507966366442895406883809893503049304071481247012204759239084222776245344405903222024865074943180856476914656573746800412753296480079035685793217963553526007722765400195651569471873462815580552193280287267213589992450103254957655978866577995774243355545558486324713356809556464925537070985672818178732123618186146007323815264332066005893553620149828728910417466923521892613236503936558862072595733943177146178656174775754396811334565135670598954776127833276686162429438569091133548247466776433552111539856384917647699932316038846645911839479205986298827000843662766560149349838736645055889281790271501401708510156664219611231101691673661935553992257699752104265852996230676838837463980386308756093915144852496002175811333704688733232199892178810927919797381090493678984628097338171020142507320579536482730788029505962866124864893923246676609910147293846151822525511681704757158950220719141881844173799047449986631566041997119800080137403677870970214974111671287279739808373754489662597465813914390195012559856100556826532767413156662673296133137855619304139856180016948741504301554392990069580404019562513021126877450343757715015220321003988488557137442817922595065654808561601922789510057884442395277533435008706125922540986808115361769779956720217542772997749787942612600925545866047105364816788525910406354781441435813510244799021341085387629459144802555138964796050089243080075227081214317941798508189064466934806552032675410168693897658576007750860784406314639867575742403310553582498474808629783992997387397594769832226951227053452965688340144214246925590694885942286183921957557966865325099376141182522906244173303612668315909554624388750708122403678786632075260004259661168176663557878927551538431821577910360740867316481531323561363542574378421075184205009214989176681199261397762258883778619051271953273731300691491879640617531397650162212432317974037639363956885984014785692794245160332347791805631360559383376954485819690542822974732830473910537341766200188025178413686758661268058909374413921622387698923742193818546503455945551932326761436817238905728921394722661865214042121839748373766306202165398975655722202995424660537917306014516190984319638816491632925976550334237382021487299585851530523204757900964410417180876944686454473858451599161998557345451014727095461453449681858670456581482019541529504556706260350164234184016869279762567008796900185943902562342584298555079270135213510470435614836608806877168382366204831129499243367614816672641199646349131309797343119141222869770729520195166296095266360772662226648311138106706427827061657463842965547225650428965461871373621614126142087384296229745847969310494001276476997179115430108402332589666355965942756079365305129786380728120184184058255856459460606734511702950809828831367986843772885030883268529892316460068570097718314002613609555022908650179180332344618675889405562008428775352573353408427101936704485167673475158384233248327111133428884212469233979600959641812995638265219497358791302317645563016515997123779443314135134965682284483071190547014623377162826383358773476306082248489970422226165109505866112308973313051386255023910016024969944787365781354630839860808659113294755811159425003384554390964016200401772056139185275032120985890714503007325567573022056343722599590586887144750372631031277643802351205629864137188707408545762600193168291008837515735527442540013093054142264900432491796946843701134146078381681451167025163693285656504504706833135894511252194038798097748928122823685501352163222114288664778837252996962165756304283950032084177653473989188379748900443867054163807709273887428405622719059254003418208965367893900854700903810152122735845442335231784225524536172124635640137775892326714963302306526331210861793282966726308252802486314847316493229533402936583806642467496569219233616376950153263049638343363591634538335984338202894766414130692953846350592000043719056277748747536036196566946157001491457750042111916844389590999709929634861546602121868309585003559356283709862355669974838483711251618623722591065424879934685570304312110831450612445963787801353379495702158826727622843750025374243020723183202034065569332774223028595032786393011014855815272804862348846030176710346851265726009948479133014531273095633085163142723509369708145763879872597235513818806237857212390495161808448255687597200797127728413042372722596025647328885536510914249155878979091793026834438386976210279048414641642398006294391778890698990102210020093509773878292613517213295590887943648289664518400615656079230492300660369575461303261711942227897783254636455094120375228645360420166954830581914401329955974543691056113946841898302735643605134493960115159910057261738721671906673870924499245146952333018696148935857020152665134869811977073288684352565073753861312964499369613231965667449756189818658732491709333491950394814714381189988488196041210933164178097232546554475802662524100606530922130330394944021494585357121814859827468824827298949401682430257027572813538242648903203854250371054324493054555280041874850810424579582808404704083118230630743278999462260248655519256623491508828747092944476077783552881889443978891145575160953396659104712610236870153279783103617588483950088848070964175226075064650190685085283712082860985748203126889513571392022258575943924194703600720696853251678560454329093070781513065353946999073518888041669049119706277219067351617750096503305073391275573515153693716607215279774209447307531597083030451084437313938480327161544043590736467730589700706936002222875674193371408331102209563328099087298933934755012124297266112030283120195375616281573251842459773504759966470883037103579732810094014323985111300406918681094816610878478141010420525156863767904149209332506048328693207960029665327881058881850641950728562354213636261219510131452309451236979405018047472083778895820291586071798620945332405670172018709161138070021804828033201908155641781353625890616484827948780341972712606198775191834358511931406871016459295706279644692645304865032767115701998261633907023599582006719471825691639137043362634117796864950174619499480489468175402873135329010480975303967228352537770447690911987976158300205482517014635756310300764775857243560257859947319663701610171298519436108521739450999102569724193723420576740940666559250069079355506588801167885089266095980297402663750851287385020131808669378815393043002528566031936299551107983146464764897312344771933040424167659134204716185755830381055498084835513768137909251821372516960905419111900445930009998759526905363074294588388067900115933264855248491499415801574819234369602723606715359465394246775931993960261921041023570371588567752012867569504000928073164882269235976630869894509199503378247636028812824291066252661206419842913831736733641078253949730693979866314862225226376747375905558569337527549577066243143558712370678928997964302873984135782240213078576333321928559347330628758974977855837593731453224483818815444014795453608630435368282587202991886553975727232773414101820186315826562881537280425120402714931005434874525963486762819467176923832661799784044532292121126543701614241029323852332331540467567660630115575260533702378421232363313567469769645747650814414276569836322121417142391731061548700868336034289247924048021369324653360485033940951436580868641265544393568576136468601304132547351215554106715664316761908607478703454952870303327602051495159779349659800762173894357878947226889671022574544916601226977557363878409004762173182970090057665633710890480491199780261629241540273904747354456638760919525183001617953689980226428500245567086253702359688021938099079591170503394311221695233707163265874327678067477139752283237222468063458187861382877366608295675585564030317425668747178636266541942492019271049795227919806955045174126716809120269989065460546798928423959724615048836480406332539252887563557027988861458435664259631351318746700066441197461566726941316730512603424685643816980827884944137242015398084714063020221262907946000108521339467159877639125967368282981046815759355255725835453910397181389550380787255494565508775770521187825785878989298468868595348429202544670876705707607964073344873797859327401617072275528876377270450955214434855488809138300238700835727259908645674530920965253179470428692977382266892557363861699674402649274806412756655084747105719360696939821997797957779893758444952165448341261815855103897582417953283633241650478043217804025477571435118983316116602223599611849485294146691266341277682996193717692869828822575946977217439487229049062641049202987099489584944981862649145033941959756267370086870578631227470146163810656491724420519401043998661986403748671362347653632158942873909059945636007833998037655987840661985125605613824413153891345846588435734933042606641614931879688059216246088479267504261759259130678698465981336583837373074158272387719797406226729812603974427142988837713378035222558301052665833464687677787130546973149303909958178804638900883687985875957309210508355748560425402823732853961046681610242556099525355476647689774706174502879516645086684382616407968268474985374295740352500283227166850146330122299710213127162739629669867961487253065318839156044495922094657952221503778110681310774091353566583956344403747025042342076999998971864460306916993826888180408699133760691250243942830402683067684042938729881184150650238339794911327321041981029466740312284632255517706145138585481931284406155574282761593108748486914795938473541739402560384640800155944373571444725980355196690234611638041614071151637605971873994069559511827862106079348882307305951171929163724573554303830083386549306712485232453325905296058942996062481821665712590421084676625754345174106564664810061340376671418023559774999540823253795666417638938845192285107809781299906424265587570310799321468559864289438024313593682862623382110414592132758234880154580010957549319395813012175140286732271440482468175254203481337426106719474159097880181086907177094615499835995951971519443909424396864266295348119019700633121680854850718879519481322453754262757812805384412628490872513158480310627816482638635494371810331784348068559574515359184835492762076511567954051257863038864067320919699404802236545590107598459108944325568656665289888866299736625668234706536870783397776919243126602380395929112172610670295616617197889898685685728265987177576431652558046122699847014824091636140938720230897116159044044436480115658093091775744400837102571207930506835256244133753201090326581497369253003243949149916116461828201634891888507611955205561472625668461272562643061442723051566545884417525511082903486054287894935596980543381308090826171531911599809142543712612142361419996020600874137759340622655483250871903884010121715670073218956925193243952808757571607892657331056999204595171905050348976748942889777165125091695181714718221061860929510858177487144296448984659038630190909901955046478610170623609422140256484440056557412140064884970078565123038779366015948767354601437674568942615596506367258338475114580747659700037541075881589577497907576879364931935284619316975256314764963330839293798248919430185141258832083868478124680827119956746654612817085726258621840919328147072384596072243192680919037921491049429333852150236053530208034555057264900291111622885863397875084096570865517227092409555683353608288900749968404798869350798552317874772002758629292080163143384983867872278491880358836660995400196248580249259022501734624254546983290186756375000847378553878872421337030095654268123176854104773527070438484206068177790972389567224174698300679938307094024741275896184982249547275904835015019622077375212061928065557574673022721644500890859805658295099086347037456934966048682957083878180633750431624443670026527683619722728138249138581557805149716733816263272371216409333831026730049608894030496847975570278321955396603489257088738266613081342229931799956908188736716363256223335876814113502037790935740802276371038372288392037093874442856860456261967604929625473012041084064192451670167420288153867344831980276759523794555284383580260182906524740505977687518103513598025279116100231814875643685613752361629330847044766606757001374913205170690141905359350241176857203433763421871141933174807590414356387709243022749836890756952752175083347855076864021670469306915827644536113855665798605650042923220560671799557651076290256911369591359196646964431116767424782713730990735246028931796027901299147738284147678459802723600561671346594360004284499036027188369425036135767626617079891744304737555902081659897388111363124034929072916062755738426544178785115138038837569508333066767044952354218856782837375471314326722384665484522544181052222637570825796590184452916107757961271191964120301428532950262404979237301939875559574973299441247224985194198675290843658579024716282816004701707818806432362486356167396785356659570737284232590506437468893203190207599703462234242300642414584592109756815144568648257679723621317343793058172605351021891801551373112531298298188829246445777119720888960747800680000844700212534443922686870062787448936047702193496311375447070781290916125282456701893804295831674643350788146374115281458654517362712662457933458926123947198720566416453848575969910144196043356346097160277921457240911973943971910931718641954429040421446657784067638583675333311599088058502282844559980302565604694235547426376999033605959630374560516381791823707038995571430525947099866618896271647866526013666957247978192036537508763203562721561275266069526588733195320471378378025780009988844913429131762714983094069441814957837812256514809393774760471866964119282895967742537488664265378419494912300278624802379274069029334575860443492643364627246392850188460234648455004235983200598137218687353464656245886758992350304055277974953640725410715200523191564943678294412179005411137212460842445678078535176748262843298703855167047122293366799734110240839538532154539244206064429879717028164702142540378368847493224737926733050464919155549250444989168736028490832652442261908299352571505733258666493258866961918119180023770873050020580266195640489327281837243378566410535584137606082997281237910431603614620950325812959624246947290339903781376906337735702354966155817692510784856023172653013266594914300832884902958932042932619063777001389761522613351829484610421371615609542642983700628118851454056479765456743662640039760421426751239448475342633883999139653593682064564584099234250563453847584376928525147768162812692791609093471448542617221452418686634276540041960704187285647602173804827479100346220574830335064589554621349316818267149178589919280128807877472119578727739283286220722119995550964127181050382483285118414828038680061195268448173975972995685436620210738875170199091136279388730163246682349434109533629606181973241144581942712819822959777011083233192951646793934736655478603553059195609776487803455085112645454735917604458896878009075653917603847816885045025525252203964447474571233478663036762468668856226509222381330110299762622899445748778503544978685300155570453004496034663817977282730604903147100912876651269397664800147874349513525569849817947435964413906383495182230903604956561792935718130697028303703048292017663254209131231228934525338522619926608757845408714533357969993557432524082989280021357506053642032781080864790114663772963741176806864620017616536087702587269264126295096557564857322328991488903365446277265506235589147843889293855922065021935747361383311952321111142473047770779205516316961430694510549169854789434075256258119327705164942871022366681692241087796996689759881365833883085390190100824239061602296849065080810919500341590264611327718528478552286651808170818440125333500612258278589648218792789941554135205345130907939728832096586550434280190562939282971999321407809372374354163293800479351155787779618339054623639389459238577534743268946384218073143551003559102820502681948204918563128646711706157454665865165149330268766147530708029952229657499732007960630730701581415348243994900198883364150807791796743818541303322735225972746905131055942174596357633061203603336978623648949536336352624374062525783265147320252162892015728024306464916888780085378565735148411220965820329889578332804283016115623832088534033470808140366841579221275910416061726611400876270632418646288084737262060108645043428067794904588376509996061382983212200092795233026074975841394580131800811829210508099261019444061599721857851291429633258818292905603073760204064223443550436250103576235725665305644163093040968436432217702917686765101790795146552969490525514237790760564149637645471441793493099258000211912551376895248335697421433241872542567962752409297383083089378573194810003726637208078345659403621747686780956800105861684618329525934968333754099378127320635119736692691590249429556698378548735658332744680451418392861870537003562438300570009894582550812159870517911229045858319919044266540942422242058894560178216717164937939271063274118100806371638457974712273114314494518440811651299188148021836286774760622240301184996563390972066753179150840637740208308888550159993535319419882865135178208128973394032715916764954836296460477606989563820253901409977647279042868836706213853112242369181029860325666087662889962662863457810182875722262431367555038573204126325372243217507427514784713538317437052227443078815985195264614347384662998610677194984104419814600583121646949624568229516812486555636785099774255148440885340127322435902279804446650555575610029139153813380035116495234996020842561965461124102313220701101778859363381109609443525882572750230294907971301732268278304285679758610074034921546874784751474970444906443996501650522386739961246527922291419253482688941189881098601461773755344365459328164388551618392023732345607216555648301696843234905617545331887334386254957863028110932113272721417005944069952025812574496737551177362179526461105564388361033788069619507713957810758340720252136993893969767327241531244689562023123567430644592522075613056900373727854331664790793937068494188580507605369855930549132406760982609743894833761610024381225798773679282264102443760115761760295881485078646623500100315148037316586099935154578165020229717005703785674625141567705866840814303970281584496204621018828136703313715923938606201899640251302279116369350152533140320562970109174319437377495387106834876931537210330212286335932280526909678433901670282217211635566164893249595303336292101020126002908778387941773628806947388074791785570237924381604690202078632785041375317809327990291500824549544248804545434297831165971734554682331431921326760255499914530268108397954806191054993853676397048041787230486986489164627471084298804377699372445069489523461535779806078287052030642718184505101465115331071784752410782476738120555409427029840105888163426166922141327910830607503725433066772048493513971031233678710948256318408777355578421469594591619524468098501807466996905910591441821120538967715022456109288388359396039116146985934780277177712771480479793400426897824749897907865546171753776859885924242176488733935611240720834983579329625431019063377236484902889374285336529634850444435933612229001149022918710886364038525623199081497047021867152670881380284016788744508174703869757598575431992529146212692903172588982793268412493005241151697426426301765452240139623317926941935007787421918680908152138748078506180139712072103751853086750787747220854034687927626664621171311812971958944277919638944557446933642302384266166358980320529618989872759506937765878606125908228202383845336851518561489672447697178924906058722691785289118998869007235971867002469903505499654453779032609650822910879327325136930062951950634786343466863687013674695411109042709423581113636545338199106503214027623628681304925208355923172638978399690162479489904290070443008866728590503566706884381589888306690106284531265234991019473025292316396770943670819517559750057079575018087228156457310642112758839929591393893852220475260411306038053652055936392782396507775659962028894231814007626109028989661219853683431297389796500919070109314516662055758892140823688452535194264421305774862475351827752624333269757577765594775128939713772383113672883694096084802590300144263177141422011850770120602996188844577592429149565359065648703814048575056373084018907724258528087066992479874992537898419677282774030543236624589923083337783603551671492123039814145774038236755816574659419117143597023521211286064060824475036331738835416927203469050941586588065363320640768804364355610452987102794972252253919039159059898125517145419589286588707562754615988484647522183240609947458625217006869693142400282810335567815213017849786929888282737757798065338630709040926368308768277850884351087031516367854509868291728342547793644061051248398672820881982809825663103594850559180669755947727278490853989941057871340876445957656200372156117039660111801595896909390121798738536516875398912061362979724937552716143355893712575880417737773643803972663202574177182108683335861930773241340142041988485856674706362235307308725854996108476693262910777107375853122481730685539971384595335233157607515721070426044371147428178861709126432305056299063204116033465122152985281161311349906318004545027108877470032076741732604095859233762413335218340420646105305612236380890838412362223354418602659213241731364496773898951715702333472694930228986122022399292767446242076280846291546536008639323938782613552084566224525859199079582976062925507929036976659376578840753214950236450997013494052169798366065993336826712287655241020415219096642303455987562370466131717456442234261136723888759746465763299211056061072851104169687329439757005712409835923529723638911231132827061287872731070031122277044244789255243200840021213440640025060466624460893594863792016380956146364509347633901027408330431360819770495219694180333948477595023960126597795162729036042414222941298742403335317508799012710661907599916222792872802140125784310407864205819790562726188348629472806528200099522143219027018200336441404122087536410790468624449001647879137333716526944053752654477155111578274933831432378737328580303242478479876588165243351653728876919360357341606820233673021768215195187513064698452415792514477555643721891449995056100582876960016038786927614077048770017313728741046244534701814883060669655331913056028116025493974718344509078005219988399784966724898344050835032237335976767053295621682676444763618308960860201034637684674409907530553988346174214378477342254067249746603803519681513474919703797535863199560249336952962433650021492279321911533254652043158136455078893122121221778578814203383542033822923724880075797823179170891706645367023703841312472485349713699281890615857280978396257993800425239399692163321635405434970914580996955105948598625781519186674281629780735109628740943377880735444983594892938189024183876701022957136911207494012982762194972883676538244005525716791295513533117797472038917435384441483057097226609228059069883456399067768229930842108648570746791091300798697874460698292813527246943022227286316674315743463497358780063497789879047854149394995178885361687416072633636913531754716703346403944810350379777712079800426380610448780389830959912231957456787647483382390761815634643490268184952978586137111912387714954873817087711292121713182715233991237385341651962915620786457435926903874776240755463795856056541487565984634649479989224969533054235876478178130473667743466469109830324877905680801595792421702095894576272206154841123883214935444868583842275072653015203076264260203743443351589670189763896742186435333695502247270618387127062349991496213131214015539280090018102360663370975192780513564571323191496677625402896425796217753906659419468643848839616632996386538201739987526793311612917197035847324897620832821337779167894910320851374065440727100945438026648215394421675542691335364113379864021961735716239377735331659713013579783503729845478301891314429148305049683995565312702017045599684356003059858304689745178786508473918349948059341228383821176069998232052163916441256122584563267641194686765446016539686318704974046753976045390686370363688085603370344388088760829538216272144198434599805640266844194671723391455024387528792485455994752718116435455422653346665064574202171115476484551546818205050340159825173697639433688174225096601121187840275851288577828539262639043133928073631356089113467613510622336086057971896651585599944268910844725423845060598019683231598083178138461222737897119055414092622250067153590545492550263988335626775287504289179331299234600991104051164815831938948314192300582252279558689240785004450888105984036791380279951612905005272700370865494308422289119549578998216506847557004155721176416898334949245452606327977617057198100276094154135979537363584695247779214392553476449831559085197266575989142148082255367239971741295890979545762652083601614375013121584664434247335264113532583501481893098662331558373980602753547707659174217237533792240621227520586525199439737886057646542733639913730275115190818643754938424097922703004887697406055159712184245098464212088524000776283570684743736720315642955246188819041235667843874673735854972394301278927797718525341426764630091322831812358367430319870190114751115174946123862639362865025332924518866774716634970681727066784004924583539875049503503497206358248850022044269680103556399377580076200764922567265957659907112843475850618186195770200019324107485173995712720210618052892566950273293127497486970390589229895843244681322409219687074766464633146054362619804766027470141471084977509219308109874853100151621166801747846320702785658703337219273219904430292800166450979048552836020730385510121563824748921633125457144608460542970783343626918411520189642097844070633311703179179778624799096626509964888251360434000294315015769069855759020597607784592802212948671448023372147556334294762995412309368749655933252025494942170886683072306964886703066271805002357969727591694360055762071353491575536060120165864933917708269967891181520306683043305948763477685518495151757613135972870739199245998830268710640900621169851214421657700834059041344251023505279781668740295041557122973364133432890393812315072135154090389223561202967821234011891701322435222414569191868718634907543034924141384237524335756273787431091380461163519962020637724392322556578346374223527258034136459375418890779841925280165115675226147781463685764511739461824648008864118534529852892946509443494874491416505417864287572672316566364467095533236609738093917616415631626182791132530795181090842199392481884754922262704227876983511862576249426396688194940811801013100055584524036886262672756530592403949092741402817493977250084768941164474072509382779478467279788978368932454311208704613385995686450026710769231681458783061958431509569301202054846615874824736613400346504226989625935910353220625200424108535076702834183109622447705291692498491934029697220274949260936900400388445073669203737512536560128021264885523175227429151763056710120237813003393958478208881719430325455091350194864234386834172304244975774297547669242512615404976802366133571668840480066359306577380410766979793740988560855106939142145706455132937985527738403096984171134100044824116359071657236540146091035216289866124264696002425423404257355274351605065167902471530989868673790783576856782198551237243078754052665646074125417251280342097091607929451302122000569771715612827268138799301555900740828438978282223815232284348118340215759305151036115251032013914482864076599668983853544551211018483147337644825139104552133549120577260728835371119034875649133785848328969777601851299287836442823980478275554017151331462521149736515389325585102805877974210832416923767396923161990431037272061983555629762297877468315846880527699996854549201425729525506959175971480663434067382378772665707946024038395026411834010309585215886786693823230620771052595822484207514752778965701097308775928157878908905115373644379236152252647003952911193789177242218489980170905132827425379861125457591142831890588541421180565668580238615813912724134428670995463926675134639645185093332615564741145635594822065063971792651704459375871458837577295903834943635594442212776559667253039581214895497441312633132015254757668810169254330465885000116264504708831791787742477812132812632264780844696890357363289640280929251572654566577104972068250656144638759447908171428104173006901162325818931643727874145190710692263866434695901852597511212572423918223302994053368618261780130498359346022618206731964834920257167931136001181625869475996116396629998923170376526938420465763795070873141537886604199828573039769324902681814580028325519877935144223570774019519194118767680054905247107205747416045787889600527880666552570686117728895158276238409440551153847024110628529119091187629211347377612804056785808316952157570719379851769676186935902597291757430963955060677451927100026678122349677182568223623773505850676442254640543652329708123950168895756801735869821427341567467710390301319610308841159776703969668424369029098389200245019813529828511349142863854170042915093169338235919557833085984830047414120417739641750130025294792927833969378845664152414959212930778034475212940556593801792928444690740560125284664265269281380638757984400245794056182652075978634155544599942637468883633098484547652411004342580843457750545043595618167076070376733764994894794116548637703809877257239486782427755190839369602247134222512915474005207357079457989584648012416940637680256420123222365575261726067875682729082629237203586391057147579885729433304192117120049354987539197287352170745239846194822076524236267964877365105819502360529144731372907475103792156894885368611728744986336829791485800943956140129155575507475036053024372417059521946383645617008539076233941397437277887886103668211030064182255616333854083359284809619261524715052877420561145517931971800163586872262868676690689624045950646395728245380106076097518647813289393953236801743205664745664940658202477539906235316525472926306381316413098157169451589293266433352886806040656555448352807184640547730704991780161998378952095401434398955852151364428050803786543250727211976840729188976892687375254978608336364835120590955915008444260594268542378554598092181121347744312610803515087169506434547723702811881513292918142156612022585509535886378006789034972133515673674301052826587337501134511312762852681390938194421493142232676457430160080502631678784344864162096430933878825918416665073303060171756013237256379332128398649947595205434750371440184947582681205488448069449828732879764044174251326698254105449643362334601340896236618196586273478631660935961107368318364643208053236348321898937405496018415917985725242000830703976867427885178344235847024307548332264493106448111848938037092003305988134683392292015694072398511075928151607450304148537830614366150406592238352771129282967561578230870139891954994477769560021395684866377265574639881010553326992840227256991954591685011093794220138398544506308321937941607455418150149744368424482662471547561903859265025719122532849289782876649601788036902122680089157580993133119747319137849582208402950113631398701180248447503922113707709632868001588082835820945812323797789519753233118879269665453478046354622983064293478762212718571201005123206119191750325121449746315910261105545722438301085449952386072301000567776909172363868094119101834901605974058151109378937843412571865569512970225855838348819598238946456660819012216877945606684555164700789136521929373986530424307322308013778494421112169369475859698889283957548185266676410006963584650291815904404449772299053477657388520855219375713562565456788443846733757408969213590642212148672460986452894529114506165545512013758164881763473705635321714180794760509112634703192205107798271768498396314986847710658285709883469593769125618963729066903048822707565847474026581754418844483936383676497889182479673337266483267802193830819005254684379400695428788804821606812150918351944262223279806642777054380547835451533719943214691384740991901494452358802402088822374573502021501602006900097609873925748082820580651663673831138192691955979156003338029016372061475440921855627501876750649208841626917903827570990607477996352084964541589459350836115903994279779284218821467628669142317865885618956248362748168467730121097365437429032022790824962508500701385830409240146930660991223956088160937135271499975446959729202008911550986965623481427723859134218929809886208185983488906685559285609801621760146032781799517612297655038588197994460203186945640188494051454919860198693685159865403066414341678757192084566227025765850290158842116916157830426976708602910005370936827126000090945440911293260950415219488211382071067725123280814824354380866786840116545745444422863114135180820251840718455219281223008798400919999756356261440626591011340715061182343603046527336666774046104946672147122244403777487825937518769103167350599039604932934742348576956739485284154188516402451747623649146030544627483971663194567257213345611157726407488528654918533060828045781574413033017292656309367725628297579338778629174405807329372916742367871152916032325360679835021189563186255683063830418864848612460141335204372120516745032542158503490545533077273091631789160140180719468947507114488198416579792230793366136969216681678012535475060839049044142844014680946273812549913899326038496877844810466205184444265839532599319524046852339244235120039747276591135719165019591570343341758174661435937667328213357479238437688812987699774007514322157431604606297787086549663051428387886708296149732346719839186470895786076191885429078932927787380848323889012865301505874322418142025811407844555483684342734673510970435363011524071391340621285357360722621960728192388140619240360924366177700127514145761603561629351348638810442229228898928967653311794489687345250515451074340632206608130618012277705762978153986740424521196730769194840869582401647600796266069100178499665834884373856098189811546913466503165046901082972361688456415385447902077173319482830459143980015179811021224322992586886390683502760460865994820821146049034611407985371852049155385214163171766759772879925640964272295343683601019490841626776956439481816655510167139967667621311928028651372782834661589613163570519819880514542236549988270233880496591383076889445807887771958836590952009059918523864842754261123230554971444072061169181928363523481753948918470074849612016930443234023489834000167345360959174677338237140475565434936368857673166189889375866893572746581093506155523349426043335500522357224888808302830845519111094087919397199266887644796987596680500506724309575552722654902037182580755508706383962810619691521033619392468502211288707580707645706071945780166234714891450926479060181487669867415317194096964818132295069392315586415766631531836945794266490353815451958188484298749518773656398017883064571304050987524047657384505670400882127416581421726769409962778672834463820100355088779708174545137646369528503119704228373380473074139926160724524489012550410719513674407196173099831367930495546479846110805053455201008276259923885456237653250233987338511683613713882677853798076410910962974889799447082222704894670200490816444202085874093116263643531632610556465209107451522741106725458970413895604368434298060009886283348802370623208245494688806547032610661414696852683042383727002737540099161787704148715877254379086967768154873924992775870832156627253873224040607884091899192915390257390087366142004464985317911135930242102857116899800589885963601694728083215567819636587787377294159361030566124427965743613682220193318429164522525804946655039157684860026628779136990070758339934610871455392903547621151980850582513379452289036336474519707659392216156901716248715951272158673939785145155479818679850386397178420296209929622206207550654854354001416946735222261737477446312811801216221046573382368917720237176316583215118690777485831397999300083676834404381687027221515501300741051653951059096286544153398876882407059513011875782469857704124002832546781127712882123639656289016798444801008036115276195005725942958590055525054217351383161448952550753010223832695271508308490291720739455458208488865983314576243841450930207987073506990844793758002718310384329798295736924761095931773099342039209977824067675337750742093613734113637585412554367549719645760355296722819864503445008285709863416803062709747331238042093183161164803694927149378432057390879772824135988680720869390389642449907875182111051406857954741012248103140460597884655430041996558519017114354827931838149927314747708056092913053698691665078341942132906360586681168309300861097200854992244538955834154001302376433073416653782872438723786543068388873660612930627417633903498112447218355734300932876526582046228775908680631010164753441310464321390851785997198351317151418278560744177791385950800263901851352168750298315190708217398103570149928168792740601154047644182303378746755742536408838443677299554455025295135919444647639061938546365773276540548789997886324104373108935950900643370281822183251062690405878346819620230546853706570699275357603346760531101263026768872158253628208369357719345041696949296603380133224703944113004332341988586464031810841881851568766430676230104678013159874752122925284499742589165011525896457773566882429571130054632471864477830196413617252123718980763502140282337295610190257290653043073164004442902020011845994544484885620672542170247620051868210841298507419299024481678695126117176142829667475992345235862181184412672623060949975576492395917199415599933891398320827417306000697209286653168790743088722733993402971355522209132401443574558999905765278109587900473070321661955421011039841900511955322831113459544267648357278824541900392564299960693580829367674635205851220942498433810780691951081366529118511041745785597441260680632211751277115574959750110028309072719607519596778720016668531158820039481891498646054359875118999003922352658625680340488889007244718427638815254065267596368801463709964571529524946462113476139903009000853466819835498510841082234144201535136828551386893021625644081110057734634938974351866135191335348383791770800655993209809385231188733682478969063836564367003770393508905922503778846969081353796975429740768070790865019119510896213926295135988667399287815407402077366000583887557773414151399746057570220681260475522577790281251660392716292563062636396417543703467408754557729192694766064535061203390524704908222511836639107615737980646218463063365931152336836223063883747229846702915857527689213441185967300170518983471310729721744043905132654628416820760425277265251737076315404603388902211802911090667121473591151210173211427542608489460105740050489641433149096943882748295740579266282280117724042128899092498800918770862163442724501490014883982770074319319955175805921687649172712388313261947968420548578507869785647457216985346198438925566752334757307220526064054412981909939562112170169729475882303959077972665251908027544200973356969361577525482906650433514615297592745351009324921171219807196212829285167806692953110089615781066409410543074536894805524584519761754680567570013597006375743563225648602517647146285087206737682082181306101511294930126962392926361090217592929013078598305252150465482617717237382699515438097645048098690203542671758754797708806170192947177645636690232697991530962422620180762866912802109621381140949419950502450628560868694670290113822323873579817683908703108116369999386848860193878365830722449179370512116631451803921717804896674680139092995046479430467292422401899218191683465622033667624401351094412681567902707891622818218384717902801940399057762666276197104718164637979029838364032883912253336076775595131749791408772415051286320042637181745673081256932506010661350672970768281222925772815802049701687763965055382992605535160569044319817249632199651709033629395162260413955243529445735526543698765139873717994502248394461642440932854224546290150347129224448704268999896273913323033561471627043630207914420017250405201878303291204362059511691284875290495304520771553790931271284882609523668259824599226190918888082347895619609605658117006017765757939756327531634248568871421449296794290724670451417098751770611500840993261032814549790777809558544262533910363013027206751008168535765203657735673908903959980065970955378946445650260226902709301486788636980856124050266712211945124389495951177166133820887397465643184303244971812848196977229449340767709058909903157877396137133090444962928442984376773374781001253879279277796118088071579717890498266321223071592945306284339516163592483789868027873929019905907193110261045741101011242587199564880452472321795535131807630412251968090761664328328485039514501285699901009410559005900625045727244796675542808282278383272453324789847593632789425029478252675742083493398183433644371406924097408249298392296566538739379335459682548933408321372874760504227257392274928666873613453618866831585012371370029293799241530960491845042154163135705719833417834675339684868441861787868271427599484650321428665633852566345222614864694403855809927734543515466582981275606699586607545506838271948480410427866875361470983924291434699062353742592318933787131712506526948776125973130023063936043443262135699886546145308880162483043778016326440992483857022279470313590097332768124678995048385544785314440604799568773177881233187839272870334662017132178530064046592046296245055322283006316764482373497397852880293567976615902941514196625803796664908020609359537875190207268900223697256061183963389494096664015189970956356431973737657673764872979122747029863031199823040790641080074978339079917909279216443059073320959489485413741763038509795942838337621296011286989454422408371010842670592977139589745187650659588686804498341781330837185247396979230763690127013149245643688386316426518441072104070305544120445981634078578224438703930426261544695219401054817888884428613526592831836969547978922690734152410020627608270404693047704491519547562523711888449123660857107974866926165639957339902254115743667545348157282049966834992645023654485489655078105206620688888185196182649419490851512540699399626609817666292267668553624277506195631800042115202594649782931764536090504174116810055012742651439814196849874047857055670097689604621566336844781212763036802623690659493095147049414463336396347098526091331101557358735940761721945218703744821418097397153532718979846006897463279302105834433280619546276078903566823484974328327368623299438083909874931127043946204767101567926228415838998583828913778759753791205471888041615422784980967632080753017176867973740931275573919512527970167304368360318783149906271293093450178536514693280631701076970609428867007921478695120995376088134600053924359388274846261798615793382838007263792230323246158996140415937722556609504994735418423847993975011963346775567177994451757864926691933798774966934856642591246024538936081224214579001668091460410665486110433998676620059305316892509554157077092097549672648388489796303172765955576915490568238864672977342668636091757459595981482942834285677285688691496312902013583546735374003755227662822051142390846724259891677229974795580763891844334445372876902699549782704201826288030428236493354913073524397765119647145318093298225675879297208569941537434159964165855450474331692936748658789982676730533997031032999171432476364716460337992814176554422937846567155504714624015849992392418220897149081397158170152774998590568752320188876864437922532949883217229635810182102575810831345829342855621174856156209104065290364848880040590465344511669140828211325746291573903541932454668647581248284288675192629040888745704679738866096848881292302786861031178737757743441055715148215665648946547600532261736964484673607328981484331879097259846771329702731295179215817048938449276402566100329456856111541519338644295254767829924952847837366447916415832528334365974291276573149445053034092788423701754120493705716947426531979348241220426535298825963904221134498560789183589284686495477950022396602238023924743231026551755447448857358748058514533183926862583935297157519504231846308078419183740802573440260606010769477862283738207766301490547020231164448271498894455708827043596408904907154456390295012783501256337486331263450097107938293215967952041623647950563836038621165662270294443729543996856949812744114731213532694056923780482938211703381481872766710776076277293331973082011015637306379699126713029175488872244854669501087812924081023471282135123955030200314810188769357339952742830383933846965063209965572252664348757703748889176686678914492554101814338936338098965196648516194406407826823325165459269265565041575462835616606342985079130409987129213743666502613662152140518049475048961750558084334848440309521947244493870984175856741337576156832951051654031221849290043359212225388305899148092889481614135745442288425466306490811256397298618570010667571865432681936730714892619977556741374907600794616347461736635932462603938900554637347858255572369470499163187827745740938525365796137012781485143046729389511327579745712437684702917194968043804277490532047088821104408388222329218291095054673870356101933981001659014948418142333954949001655125485127113189163747238521847849531989607612048084689699115724053636016209950124673413402243440597990755793694470838078709982919215956066347831407487864302218159616713842377011626964322909895189275028752961066250232049702811639211416987875826584545472700001959397446046778807631444431693715895704580767264722336445844808002628632196285347637900897839946110841983133415475082365817502201983374760532310411518525917324222609102504546636929823562554627277388943191541710749817124448611211053398989378290610808129282167324950232983351441668616473483626461877283836712912278548590868324123221910469902927197271064555509883823196601577881293038326893617744732716925804140631627794311244555793344807652493604778011137574206561527317707798518894345105422061132679802317635681468315758408180259191305525075449308970697172758262501729757684861638197519891596483176695444239365264008849569913049830966252402607604965790367678741913078320459892563118360349662636431985078175222889822131300180623186419331373314564821988204971074846678253749151777221691775692003090752128648655699174755794043295390752097506815248280015371416539815684932612744489393840851369375637294755632851932207151897432003257247643245018846154389707550438535858804043765451015517387826585144283421434135057767395691171978237916954755154358048145096407343884377976504607019723132606198109533515480646514181607394467024073482010597295984164455257147991762156154140031373114492001908886057031940162396447898708355994852560461653668114079119489162933997632151917182925924910160296040240229218803808387397906516436323264868085771242122517157735139155264935351037968206785670738152206009349879202647599677465672944347555417708649421312273105721503829520072431265206246243081851427648141187813455147748706528956016942802847241028866040499068211657600831562249078606989281324691276370801733664333305920243529410528212699404339265814326738666543394819377481478541316613369514392365531279357408414720816671230524051005906461838423182669469097435638474397970948961431189432107081650692837446953143553474504777308763268365918076469422692911089579017411691029263794848406117610938138697427280778467429164023516913591741873111934967034233194629272967466573545936776175295628510086667098740092602686835365829259753520983651062915045079293076278610394740685735761877554160793280706215264628322091416648982223522092214348129195629747552133732822479692571022111022102566857032406823147192967263947441586842796211541241385238711599069091586780833160784733130612297729055697850449228692086817438923992712811060800383276431142208803698045173712281610220482064746178835399177652403587110166209241270980228566435115362990532961215203779977675959028637783717000280564217414796246451688378419363074012014684545286326057768067231738625184357120539408483705685488083833599279333782887860709773850192062277194807565534499199815629667545102052780439552452368220223636793393641046111077011796301064697520277078986994277941642207621469590894901763121874569284558411545124279162397513359921622946143994139280731427642743393992331533989944941251964767744744702389249408919322729944595541643393065183257345868931038910975160341784670121330571852516780898667168085551643035141681494893006725816143112802338878513209957675997789807625640639461677036432833703234334453876188888901082990443560288743822778237636357441793497038613301575641826672609678765121726979591857250944324422882655189722781083962427142032989048127207734660323721271384733481439662305108008663442096908031041735631389490990486998920926906062744274341141370914695149253691119727607438747381486575138901652297888393956837824067117366286849987628649060506767434072832249311948351468106499479639191320797061917631785993390306803815382393243729250113964931926382040349531142916130329369260366738588873745295688824820075116670585229830808847232622870421574522325201855276880237509480976064616187124554781548352494334807780361058994617811481846583702556865403352755631573435980203867778351535686137486518750480813403888561628157327882102407467274319898686615775995593346561710538173910677238470965198100844539942935660859994867763781617254245300763868049468039289243492156351930801675121022417039045853293366564922774762523778297592316480003080311008511499813491328999154996287191170738559532714948994668471573443471513083119931540185365973358343986650036130994562067820191576135479291468963966773064065218578006641139798781840856607281750803342318826222488757514852978793685729239715614034064895805251182594343779573578299810497857873854990611703170277284293452224139059297969411697494414811331341557589285048888450444666502735860754813100233672685180166924610215577264999190849502875125407784091650993145342243989925159142668102390475512928507542911195175450168881936027643887270478937383123530005256160752154801896373969241731222694221039942315765793439816713335243926956090508921703573746018445814834899655513648489532212658744467190794113571903806366399671918760029540547259885845232734289846113520118127718850960102521745483459590815333971190666673289495061671918557878356926912400007495008346160024001395168086082526249632712183052850724496470063784859252662217437918335481356070130988734018729960741376895336814094731038327459801077211427383230315906114230542065627111231598450048766065379663640373243236079171034100670563410401193816761809958680014545498211689636240912358404014616549020980376212949873478113953381945600705887782009438227736033016825690425470240297719114296238333559620765976313099364835862847925742505375885583611423195652500511058126745069484152377529963862415454193512366097737503482597554274049179188124267785079148577258622682710233479260985933401564614854509102224570419589746079379531438415787630652253570986513034919828974681390572444070840128801422374404103595960556633034344663881868975562825046723582396489346862490744096974293106633536201806732679634249463739615719920631696330104232997639626180201492592394309391363773832157217976964765699628200860399077870091398373975094967267797758616463759684729253714269458981718186463725361419740804554777621886794605884525566063043040382086642955894471187502242765570515006039096474517285240915290000836513330375202940015480767923711812618898093078026332758959380413799547688118346788099492757080895937744914468423157508127967529348867408666600072161969232124656473702631935111768940538768525388963689742099231212270214024787108387309841948105228736465485091209231414807088322315198795562666831665158022932673549045779657309775093130704317422506407408653844965399750818348298540507101342247449599015763451449395348287824995287983636624432018082419194121213637802283400503765236497381162189302522601799115030177212203147147611993525123261778648573795503818382629582323921130988027126323293844278995517191171162197007434404759851982335035030565197724530347886133479649165653749787341551109016206619834088643731932463677220631155242956770704222164795167157783573541460401728065903198429501898410350697504957642110703137998364871761343879361456519168249558126851526455932836229170292023283752137982651606165518095135732771185023485230774639060015326092194309297947256710726812534894066069929681783773665715890807746513994215289189872929626679913474641189769689051403097726538535245633034539170315125718435292162825696552920717342054862223681258632042205358581095109217417187890939024699571213676788402106370859308524541193757081539514805105861628419368553763731466324344106168651670360282526047141743361223237620655554968295073049147457614483578008305223225284245670010910568898794897601343064190267662453114405868598341839267570885543906788898078579699445705119568206732262857366302269743160349085457325323317681588871735292416637009131321781649830605143974869706385261461474408096161323969917837906972624069420084202290823101775403545291219378767763466503068281756409657568008500916791593548799110551787480883953229602069772017195535720362402830442148690025436781808357541090553253361736930634426181606395185617473042260801353383943390039134936014874824343858757602485354622401281837766234975328404820636160140774968743875236502464357405109967212544195166099393953175546508840449883244529796578439990738502843514481693782913475405051597777346464229910145988310266673067515666807730224135394258015216156847801880862839761691402221850751059223871389630744926372078399057519598500475788926628384196311645188982574885265447707550437819523600923402409258370297961277190096032299406246844020893229322384080009218633302936689099084250940661302028213941634757189502895212021291507433668024270789862567798316449082923525754526448900354161238974030656541265265266479613724216156139625584062108963811776639343650964679419370853148457297116430001218204444849473981186965790584389245252428837758326694059065426795135041797506430640372467931365133541720020416521494681933559030077578555331120283704201408370507121290813133567433762482169485966432171777276881479108858684986312187393617033925088471308335157145051281665861577268601530122235503202494446905016307460533872912188073031876408181419822245954154206059593767632369470760532901926190876511064784516236027699431341672903466148994048485180050835899367557498490217353033828289927006715780266463249234262474075406048038603899050065914067966813109051435391895850694797729905377262582155482114096554246377119889822099507424367073519684236811679569949203489958565606654096758747650872906784512726799092009727107050873285995634111428800024221759613241660475204968081255429004846778277744749969392339133551493606790756609344365995127671996919494527726715723257766069042217317720429180694157419022694342381096297804213261925142886248244669090210456849021363649069077644887891236844479543304865698454858254078001959528854926953134455403352321499116405477230495204221560703339399347527828287492555862679184350838435184884810227778357881711229641812708728587966668315054142901759169490481887527999811821057844089132346344435921135962349749937046892405333958255873258213124704140233189760390637470303967801669511939432322703114763720715581947348065944812789087153605958192551268447358529322472275018794421392978568530165359687089183713383406328527220186930748765940840176596343022861152923119264079367150485228315143833684322661258723579735474028336663481880429475154700296547847543267011781741814584216566009237279785624891604917400774764572979385007982476650386794833314691081199900261694956346162752507034921395488762830772022479856636712971841726575688273739885122322546699078325198562228714019262223313152255802159510872181865668787780450160239472433226443642061350445224040133087497626898821058119638159650314040972288019453726265595945128712394448342469522921939365917234216849258453155176707711223794693483177468303573283669290344127902901976913320457268068830279949425887032007694371456994826782023219335220268816218626474424445597018491998664351884805308647816446032136264090575785079641565918881837661290019826824751824165813423032530544950548795636425948432883371697067483060118922799033545246151352339652602417395102922453610373370951883974529608577085291523251413850172303587559464711207000591060695899464583294098287846235530636402385719769760220974272766771763164224491972168090084359896615621026879888104596783349806311670473724699547089571520248310307406935733443821053622614600683169537193582806297797658407923197820833162616720535474059492747948807113961105328966356895000466180647355240863010489308643306631452872207819779110812416922746883898320957966300892360978699147146273888975797375659666516923458584080596514490585950391773415843846868020207995005003338931888863101134459992744451509817092802884011772410915814883654500302915638847972714632657330006486945725582951972310534266500727094729832196954526001167791559020053779817740100183749729556057273332076112392760593177748636843619723176706608154539559920584013533879225596069039695335353458835758906938419686040463700383731743248848279328142705689070309122524661186779090974385982333542225790502105974999445522505571402854016011523499631142167565188217497351761915674151094802107702336912426607909280291640732539193720856426036476337758360867125574133221604978449751001120898076683887237017894619152618518046645606274385256394482948293956607971793825246649228327687892740141970263960710594692134338349806161420292179148111299749042646212319554890842393246084144834229228958247267359251562587139436445647522706218383014671378338825340125252089045917770100023762175786987523627169468710693822829573272898822229438582444618174087065904914719603206506688218492193316050138542101597404564995288781124236074371342514818539386913661013748688257544351968779804326515680488585061518488154329076885828753935355145149257950492204915994540392130511385071501240491959644936365428992895102345637637042972450050448730172839728832031435082328102259853542660587087661179264947923603635034887286400066741729572693227149997312822756492117060641832871620841294149619241768234676882363154831482471441740917462004427374974654013438357877145793119095877799006861351101353872298919092833853246788162918547054744220501090008033537212047533163307657836863216813023164848535538267559960246131612408914452578819639422604402525416895355525644261987578637970275776244949911219320386986382493055032044537246343001817213713734562828679928914921318982840778939177237710608196930113631819961863035694237406526142626211024616907272077689133787169059986675151498840291310511860808145066465484241800818414554730230139344838056643398183440640488706324066670551466593110059593828302649630483225971066730008383703632556337155337370752193521827106060708126200176271848264176003402563712685361230796735345312672151973124290291778091338622154781710689138871192472211629883544738844484114117941171323494410927341874054197475534924206619242119533387725049672685561411284214726660737514645210885563375006285145601431359032365321942850422911701940503735742790951347788174842775026634095478041685503253010806318742205646058143308539844708490048551951674307339293014032283338758206380053004728351284606275145134836860221633806029776678149933990431985136665999997393883516888091591744393681251020002891743862618847060053674061352202449241446185137809129029531427091638937610747143154753835211003436705314617559344432275326375099370891494493967016382219751888010979919348043495702810791223310974184368373153496989022367972877884545579248686256711022454558529305702271418732492349138761250858882756202013327212274243525176108033149941482284616681658389755519272976170761433643491735086513839908184513078258695715787474627957355372782425962729840761615536092227559239819564729881997251054353585428831106144538129625593996877379400302899334130500023970158486629989425356251645909045818003955812582687803453541209017898619925336121813929813631668109832080570732672152128306343657162710957076799543823013036741990507540797728221252528540602547325545777491846760702018599156036570289624223583459328445941354161870087494015552802458566515637252045088085847190301315629432123754408791005961985806786986088423877605403105083768737652601352858748230192005104935100654306093873819463781974435381535127910844497097550249069958557435193412719661345745387590588662382107363875386867169875686523831137146011565681045686177191932695151005094023837188993917596994555249271418526007149181515479997801692404729641440301451591930559851947534024432555367623823625823755508245563871256227405707346769262870668273845129207268067737762282948953894640477134045133271531031362812444685162899449560472573967538566370924369338059168834848568549734744554643488285069137014427455403041432323964057538144730104558319084935658775494051250854625484629033739896421472391296400120397502930450737182561596533377966847363651361463271282147741802209338204663527540758119944218623337383268112086603481277697752196151895119319680433826588407017789222744301840416961576147060894484238151500925712329827318491736695427699969850691277884601882864548423484240224780263613762532063035375679406971156020075284356850281197016460136661704422420965830736755797958560882115336997005085893994816023094898333705110369788499075876525191296546391874425178552472678336837382641333744421400194109649453398934518316683043442339995032939992985532622319653284533948959633511847412274330563923600119914291890495430510118278789365108275083248471754481939227430245458668968730101970597015057684489273859752746948793451461811788053910957508945311852579957680904979574544098137466610026358266866212958373453761947333007846793387518783588072609278165254758696857668242887207846389033572997886224937455565319067239166106098804175940336871685371130252902028496181188622954744792578393234087880534153124837614468378517138635297719133062018506082059405480698597157274330461817901084891140411667883307563833598777688838351353789662402659881489117086604926725831632119247104687353412889779018107969843122977506006932830058945051829827586214322609896874156302567776878337312606624565696675255748199795798219192655683525594589049777161469715986691291992834069222015098030997053635087032029311745310217490008450871464266355899751760547848693836029186996378409685383452257081191931378816338209079593120619989083045383815052491737255831561885036092656371906284024368750373624252691651269915407346217727419495771644699123623587195860877630341092330856557412721282306220997859457383534824846993686175200013067125159518531643454956148418371337891164008550404028457074721288485034144915965439275038309379474124040396979824361764325757222185145863315577218237101452201279394149244655897039273033316814125955465173268452972589052180476448839950977104295638263737693927564443159406511346492630474454034407425565588055143176428595610786991610052287684600495987323719310714563243469792381845948840250284893730318636069078402105119093326591113549975919312975947359201524982089540586168855206556317335182299795377291035944646777950948756181675958068195846233715224558219743319446386811636908311155145718727508447221395133591880550872729783695814332188574023815523747867287957016562180973990460956890543300728355214100464750496065086523455454127921372773667142716261420241514432127269303225228142988606865134499574556135611952824387028827925863357582706900590414136064260112777743395548509947972212868364273144623454936631449477027497598716223586941766940914889156894037992911752489084401161656311365282451136519299111181329543072962225755586115393509082746831257284866419989839507177892403577317069616406651951013936505999034681996124040711451210939168066847475353263710679796688898599060197822607590631020101971927504318661032337391836398109538191232212498255889309010677842331119397544714147778586912180098941754910184136403177986771428998496420361585896376982343816757108323539796116414814957527692623457304278793548607557092501236651172437993000850542761819869506040388269220678247509705596732051466033526925744721736799939584674653093465839377586236048757921473157284473587962276615877700242371032809806248734699408608980574586031622198127299933896505180184271405010122974745688177647750626872456248124426399147082336390737299143647103782078888459843242980523501946423021987576543402599299195229415880592835470666578140113706407821994435299293255806342417366487232736480708827708282360388828883052496054173801428948508825301912440523195641129471606722982008848645895108810099835569353283397318708740303551788684289469335415119758212420257871692158733465492754352371149121274414282161182629617784757776469782400944400022356713176276508642876352049652209284357082040691290553050739404992029377333201727035454023604250039745367135324962016375700393423219575025827647636424274009672895537090828343491843931607596648460348196931997073710934760819780141267398298268444665866358295480803078384352447868999932095049741777320208228830584967604678493919209328975710988864924101653875914960662230583319857042642571537022176908807130362272238805970248260007345414162709229583790989159928499391107136439332383390620696492941923155261534816921234824067378000338757090020260552779447221155091080265266858348614510328005564743129865397158447990689573721064736483853696224207090209288866452031854691964920446748550093905567689692947651685829559642713783549039021610730981090414954384094843284218434735759240657129261628905153316182719263435562488998449464607566978664830477199679108221657206832905750890834246901394007062059577918394888030701368768556265891548845629845004780166625414839185921066698399975330928605408486021978001460397087751944044636325075457698151331512030650155176968752217794307728635842213323431981140083907150607140302753770586937676107201262804947143119136428448575326161426038771722810372319315986503247003114869903971118614923174284330861661463996317226827622874407844550998597301919158614268760700336363091379567142698520436458651670960861704028063086703386319015176289514690557594901940502203752326760796551227855769092205045700072280500537761600252504796280110159600434384357135741158510705364667157442332618932594417109678150237070380182036504556177473558552309055190171116101480261395275088877906505447849689164198886855779197790485271232353536367835062858717186460142121684346946160834345652562342105122503371201548337933542464807447834125277065166039074283397894381302497664643358177739269396948904235735071610284302808316136288841249737564183768663772574094567441284339560518370613630578321797325696419839022823177995912742117610537587711883007120323120105295546849459752193455141113361722006309494568139223015128382546666729475874512663231088721833461178203094195838456553508682153298627825978425961384873994961896873262763634004442024221340516783695330633915443586965330986382211841396945527813513807065144929684208999722283102500224685784263506052889443857229790744943069792464590679083186330425521926879562144078182510238918296609814955894124551680255194991590515294253048720294980999387282373596690961591604311777101999796335987380156862222072939249648651686756654695815967021496470726154848539280993050036178308649820256573779260839833414365073176302803423779003107786801837443414585293137393838005089674123150325380255356886069842981823721216611943531829156414344921688294019671523181659059809647163147281764598107282953347817461296388413330270928775747890064355816623975048653723098703420260935483477651639491421165946470682301259346389505700976125994258580663762417639071204997383681469229835221547772921012029253611272393003878662674175593365346883424702293268247753101813860047072415472287208677794091580373999422649033294253886947045654037423159610010435481228491036510219149142193263973117717240670522240974807325307028275817532520788477827405007808171176109516090598326101008864692043050074339299509223509178767600217811991809917550641274808900638493894555710688583519822091932746775669365332361018972229664600910759426283868330213546046912677015513710325860874044653044237803209916656117662687372143289019632916281278025355104082936889736323642475883956156017689509377471362767399202368757184687398460269356480161000835971849561152245107428149215590008372420216203811325534979427332930088501849192685066215670393694849249509142790690854669874782882658596216116970927833864123554128006261186850382242619452464769310440362118144886688066524716303486650368222183612761789940013124236172071752173902505623371547700862820428914960876245561150218121159476226312842757745458554981042808996448376374732687943056481536264713322198164489065972689389870249500051561743381860101147777784748502191009416955199502560728136781699193761762519782347764231792341098676522559662265204540834199928481094845825514621618175098978237411113992190736553027757475187110701036583125398264601040050046232642620249097484819403380940258335169734143676286841842471650589273705729172178015886433068405393399357666439294348155775365119215680786046356254229644907372927575987845449482056096876922080498283909597333303776392490865881799118804228707730344298189829361536889862861029371972532300072239442169973252063434247347371258393090956420554092463298066489880229843988985427963804000897937571680455287034341471899169125551548169054257379496943604234826132194445892921815414335548323278230035902324283820413933749304753559173075534591137522253738647509208163904056362203633375007877074290409751545180921931455541805240625900645370295484503903712349310563919891195307007439955356162953573528886630418494030517471241110618081817430929706965633313659872645371465676780540495132826151659700063515352259273338882781049519611936646576027840275059159286069920251575816868453399689176909461934667348431177143136881177007358395365684759273513551656082822142850397619135818898707729398397348261627118631180221474617998241115081879981303265766854003660761859837706193961140255150269279766931525071776495495889540227187496558657252381442857750820295988207508766287516828968491810860717719167668909988495554266176264924481840866400018741855010200628428507232567479942511581502135474827678295194475329239016066448704507401135409371692913090759175868139603088962507614961183956491500301596102791468915511752492213295117460308529877390529879666203758097326957818262966524009928617819804922757299594012831855521899333070050581365930570819067272224218867921080021075954396774810638860669009606210852984175459606619694820191321512368510612030593746694850660549589663534250456022289922428154031180028885433961360572115003542997421456433881755106608585509655030635384555614447967865438992178210037887475074096722664228963928519622920070312190830850534865351855372488606832198178825291809826704411854771663701965402131680188385712998549058800760083215259094343325601969674362117468890602349420913133350753464238685873190936998430877378352879184782834053444695021833856848828143296228165216210658937491617171111176917203179726049776695658841165147384698099162748133376855447386691699535204788803551786991313219482213655582378333321077140040214149638824934285046981678022482510340160042237682649704551590387714663499579437534734495045748005263185027764336802808994955470481855209891963556667942457047020788492845503901207146307197281597744678805315041373133905113481669200486014048025224772298848191928595396954392608183461299400865096883857273008282835360310703604302184013086227486944589403237837655426792450344073107347154415097242162451249903122681524145395730523013021317944112193840960128128692653092412784578004953256229081430279713789707057290427380222927853942532435026485126260301554191798881796517265788217608015124477405090218095523702679793001060565381542064621781039874099072833818139907086957546826985262271770670495423527236610146989943077768784882369180039217315746652889299369931266222894952557841879683862831169043505596975383686824389422287209262871090561723507120068843793864756082309142446083684642962409682952921193034472582775661420501160075613100205202043977619803767824696996445965277975810921985075151229081902501751839665656127281848420660452158144762911955205376072368538690570295751657961869417957651342018876412026019639614159280756131658796856259096451783168238385047220962559128552818425309949442211073949381507231056479726110434080439792240680516932402349558417651861473226312583822991067187169853080564569173236941613299467066827998813046203484215518043139949247810775963194176152244389275071340255136427937597387494239964156353838848234332464217885332957314917074054666089995523274500172042208557894723305998666839654451120762360677945436417255843026876141999564152422578154443020608733047261555206739932821506633111051021696869111732337150353977843717738051143956617615112981575277713218846826146861068624971491416687952643219477302684738793833478865050865232592439814848161618160241798381513412814535144328410066564738423847119361231279248524021850789721386520485507646564060726961029919962152885792968614168185871844440819620308701071453765076544767888735667290610665015213142266796082981862527503265594430536851042024200637841431632120308435910666033161126695004268344891945176675051565940572057956424378826725051859553045073785681142031267693388708921945444498429427252446007215555716529908459621954819901063696212616957748559076324503353726139789201225269930260801699967712453025823765337085855208458750078612301321279334048971975033135979158157142535810906019701253561719816877067977109604685912102658367439367216359361909980824474584192913149487364955834724020132795801607109933405871552651279226762188947680377839792889318439849114007986807327833326295773366026407360661941412818602925272322123803519182707587427808213470434089021597003482693522114106335856793348278046425611530442172221599512979118313592746571339298339977114426279375041118550584501122925777757300189758201603386512283114555610319025521277610486882062678280758519823076028540881387948825227573571122000492914963518057794208396697911088840173770388507593301857268502219414202381072220755443389568572515052223338416320294556006445668989487154936966348515117021870843338994230689849588964030204177028915843146175726666749631440877255999672587591562138018941996772920774420557403768345733245603347687596191770765520050556672895174420388174222767034495230615859162747576580649921399146746805911321499732444927740235042211572878779675458283974725633457371522974794122338849916491353742620821587285340687522095251475589565239158304230109470288513505038114442952308202235988129093697685718836213270936770184426916180154412382430782623585165385388850693102757648710594894346321418842319968600428009344961154888623994159723947363604686236016781252013804038917742543705349172561791469715361899040199017483517095219116851398903770998694249319421122717490395527539490524032952559307443012284465469981037465870963443288099226117726211079878178236014720348223651063610932913934131040529856881742196733791140752488760858249773660587043840527868991634366784647551717750873488346791213301360802781390843562668655488765552888200437777996749419327564166530160082293160133219893503172890676209598924325951841636037533790060003476371096255466741713061073234948475337575947888960146401941654397879277948379789202126355861636759301274906062466335035621880437132308200181457430768101514923940158672489477836026053486442889077800446327072359894472364717363495497148391532997562019937172428185624317631767577140251168249508286046309319737622215159608981916678696497410860836215748238741223501999369571115341595219379456125825178992532031368276721003898620349717764634278687742916229563217863830432747543263610767570570319471100432397214626257114245110048656129206920396593340633966264660913523899234732706573095041602579384648932682112993816331803773348161636964784862652397689371868152076308893241573995053858192236682345801512416547518929781905153991178090707924908343188538268934568080599658478506894192455461330702072952625710273698586707961729210968944478639533745078453850884597989337040698838062950514964665434775789042690838155556330943878003612535149428989597876816698615544475763109479123321124491006928391719917378760952320702856494373899708919037084077775277287928234939270128372565712343702229851393793390938705444245718203714490048046130378993310568662989769325531436181618970818697568504860166305685398098852273065476827338063173775664650164588041193082734478591497833188334741080021904329749848998887477052275451134661771528951893828771547596156522874066077434351929142205706218882103070256142366155490836398125579086998802074214229720774639338694036173601296720584300924587611848063795695962374750220535041615388870292881633650033999257586440979407258090545571069574112572383298700656373594946911871640769499964729441251816101371228596786330596531989272319152675739390367793212592982230370082735127607070852700601612443646193202346081549146368072060653250797816147753745894927601305199712270745948154976732011305927487405704456036804679326070797929554058149461470805821128120165369824156059661356817555023518018993308413501732030966331637714002430177755230665300245148784921102949510305190565150964707955888121369285669958401557569881767024620290050647421117708879379338918981680242857332129963615310443862917444256974047221803849878265292320011841577991626325361883406357297753533875278179888816306368520878201173132857561865277991868988123578641792027502925070647835522792071659397445347702243242496240452358871957448558471929754718156207266616202896416612220135294336053027576134515439190968803646102557499204556035115205968794897204194684316111317426274079690840763679608076371399939553442015529479362376332018678838547610907185334172719610218541689802079041403499742415010119443701897219050604245817204426667317967230734275546465922990782335722612209770495806710060375086805050833561781651573217521757389964444009845039088801771738904591600901804297842184418058499644216016122796963776441165109421980347966562998900976860275166474379864923611187647214943728903249930623370161043095760079962334565624496901996558632136417869395518370295973803868897344961564416819508354561552108974108649832042794834879619529043409666926849587822762854614261348372351669928361815091248617322448716432880699394264743195348267283400443750609585043181239505959499168768671625868698419687069027783199317747497737765391738446290803504957714734150629389001908129187899855619065230668553820188177949513956205162927367649928890780621316670500671669910512165512641349322478960610494475046663230721064819175570202023706901818489971141653322796928367965937264383381247747869635545490647961483180266696951482053788117379360778738935892188093437826332492979142989454058077218880171308503495459683513020877800564294102632116529523626063763709908935498096183519360281354343957516089183329512430393783295427368633501241641785682864464953826292868111394794829400887223794237283116099800908166135467763077594733256766349682689286238958972767616572115509113950427081317782197246867626918024993923234865936139856702772172074094657496043291037033952035039970207639179797990368993631543864188984699012156315335469814956396983011611125137277000496401288727205537559016850278674344545865879961246226250272299719893730621107730851946050215771852653015686317277164164466613772364856008580106971342424880611789003346724594177678824042169119778711805575732468643376227352498321129677721510828798421950278637331248787510555245843466543244540308556780471841343085289364034458542161462296199595183624364423205560559325338682624896193164293702136134835538669990993232376268383552935713531117801618607164275691684188760501536086274507286810618343294612059318220853650431651703611537844661448948913867921818078643800365692461622328749836617173559064212859454642293033984276695558826966201792176456118717104460919325839594768894906680729991985847096790633269686497062372416774255166384787808274074715306699644530267139983170103096190038026663845641511721364596678563222973293405665517756275546533204423273645579862295850551377562657676205932555508082012725128487603651965529007184508276003755766072974254937097113507493804875726984120676321724429268477096878727263678646009139283367298396758490476853914385839466472323642013842231342237363304234687044820636841179398612286933699847817110797549458253219855879201023291166633795214123347475097366177357390081146070221989875824346247137668372202837087149475094558053715518657179028288886578080719199256694888762780447972046127236661966781263471631268265745644304189702059327136384155529217999173401450097594469015491668844922854954289964409866703369626532310385575603524731855422298813249256262611377296948785693462372140577312546771666706212662775967259557286917461289115345653365087577737864053884275147255924575587693399154414646823996141456583897612774294913705358708835382161291206941583788821636940883659104168843758390902499111089753391731373855239734505777930316579808595246133548468076509791125717470810383910543361691773538869492858985511836624572834121234215773699692307292447064762893304259107878629283740715014170382022631396185428120159245454489384063189549140368711595198084066764169903085203083017000555117667826324023494546252551317295006406971758890640357382378573615061297804203682719377948491731969503671840164830019878586762717169994282055134397419542212168811878473200537404137249309042608981654555820815468102727366944141693384682373706570420205423954676700468254302209711282086268032388275864132859964788514712172626649916976918077852324264062316684277214361626640727631187761369847053083328809911771318046304189532204574143892859200934910879616623216967246740724969833789725160589574616490541402841497201167683736483397221348129549792342856278854659465297879976500028009898064980269398395748053011441590970213385250449566364647800041329801920698574636474309905289563082119597494109879855789776006827092387202399576316868419126706515268310175927186079106431657937100055252600109105648375775771159629204535815879134049986475166237364115308865378585121873171100286305621799126763171196684153868873471489669880372666782253405681975394907760429842916643639795294559059488385467444592182699082315252399033096558202832503163886193123457962925373070130293959749056876623028378175764945067630845127823574955002073126936915184933318000405789809679205453177809975532253535467541892983289386057071123205373054304779412257561989885531729892140528328605181130114816324095932582663113515579534596880907061020940888082221053439002533743872915360175831383797538996980613830095612032977536020314029512810357624457745163694470384734720419788211814269437260332484408228443085609510435675927485548674336928652105427212091187594509592804714409749960937980200673188673701153777296047807907835083797873887875665168480652043301411555835812240113679789000358810218518312552339951053204937930286014455707816756268483050515047134556966944077053887562533606422949916939776115044957779576593306297762568223684647671400147198151115896646546721676184603113442388084718868267139018455471329774648346825110496888846840678307161774645976432378424274843187446466178000866479114570351039295181050351187232985531326406462409446104803550380967156211068639097778420519834522289286879262239241809194629439736089571728367726621916670054649146066490383953601163427447915070482929085795511131146261746444049495088638195118072269472209020765945080521617699268830905928952382454693899232499066841065536464721708012677375946334677959065753121467258734547907154637351524062993139753311080442522298532188583011488707864803455357890854726584562339310750552637439758815412958542131588918294699624858803558064804194239632936369629597332814183941931753360833294402410049909595939917206956952691440141781648326558269458454325195086721307841251064548229105309746351719186004092245718295919194049008956167198963817922432189423734268875163449686121459553704125038352704330505492592315604218126694631144848188393800932747051624636751747187185525213759416932718831136660729393052158472777936259091060879023649560285623713769859728815104095872318764915685049070886345637351351364847858279483671888816010403160887627677539426140996868799593305197282862511680204245910995206940372754558048635942130140375303031633702646116285084999430967420911046099685287412739377075765881959467292592766443996430706459515619151056266722683022921797390311562352105138699241705780579164481211082786602915260211215881497893686996288520566887049036185118507406041226865649852735401073070120172072064548882656089229661763739606629152416236602468500980047159532981618837579252392640616339493144742268522328159280688689226157482514473927044897949991162085741098011028112982868037065356490386242863091866680564575073927128226189899116424023871898910924810583670714693113469423942194714614274058261674676839750307684547644001622137999525299821441748186406394347513819915787947189271086827585395629654465890151016508560007517477896535212005145424768166080704017353520325615470237242022717093734786766785858783174609822263084722678960206253873711974046621063343129680027009270528096650301539220040936321190751864330718383227432884544548984315885389674372101211237956642892434371556107444464550044222584205466434014940741597218399382690133444014535620651195978978588621872167853208797041853720559697895150329851112786464576023652908851298638594412227933332161968087293943222317443571783494049124709900411189963046665725682349904756813960329750641790323399429938590148747703279236284015988908833438288674679491486010988825795539594381255651703921740699914091617091817377376920184176190334164235725034026052998715373556505334990341818788665343528708763973543313432978183742052185835695024095144406646590575531204059210834416840219885037454528047259336741767148713464048642230975935864963961898909635035380362617072646162070096326535036873179612085531445001506662877182012947197912350106534095987705992683574694914906889931052526085976609340679833947778564578031461449771175597169315626486461566437227173769410972481692551212145797485043474454467322156417882137515116671373519482577143650367301193045619486161661834767016079869191226786631199611797475843169173565219191613045615845989111789972002048309332604385813140561064994326911991726061874086995213482304554957883815336513603986972409361964524868809951728088812376457449726502130517024165858869638886726987824311855700285836344633552015850219471450579955699493832444215068387142180676320292334986883510750972646312999284257584835283169837571588093202630272026870719699225089105460457148618820084546222992435896597646652490526757315101322494289272422607847658081336153715951467389657622780980243254041280280013956043684276730217274354071871650158875200385564399809611803587407766655113230410408317539035210848667658016897361626366163115933163745605528305132300296129461897451946768952817738290473569299057005736687198269102892483111430094293596474563162974733260943725535883982738313279543936992476177153296993105602281430018110321375054070542015658770916849916463556796389037665584206804301868150441789418669393854034153138893370135786956508862003200151194540698456532740449891395769624951182057266330115222919015028683838767422065470188999795551806700887640440846556110959740435586042217210879595379384451505000309549182568852179058494497562585056177896328411733953366071195911584986264742826086625602978704559683104416685652233454709322421807479058676622134635596254377053987813284955903337529386997781779150121053859388086616971118745894299047789754423619407784553258945268928680985560234742194274753469020280558489694386411527398515138364099170388859252500762030768629283924753288903230791210468257119351892411186261405273707914253794290084282116111154207953252204249744980776622965091142391147220099046080156000529313179998300359620895302472607009694295005408915638530044256658734609521383429608125811518379606635959796470564198002478842963906345216022758221537380025986869930707601222081445563161165495323654256127117706180223800693753095453848840483890946474943959809156449424230228196979037566954550985369411368796302717832144528453526593286352650654212460528576240129785162855303257397924731906966333293290643796778297802194399866397922977525668356290619375950409195228233373407713842329488323967797035075946259851802149523745474860833165575316403231880113943309383378613281917993545900202227179102972085356905596993473640032637635468058882718926949106945724375313121213592496435410105674644799540142199341329050284013808267916749763762536702097500748080041672308254488062026432734326585083698848016982864722971189467689866740473676526398853679211587923959615443412014766046097747090322596906634198563755114376839850254630245817073895632595625757439798317053662070110976181438923379561148670619185587081081188745887523488744801783865077706868069745804569775605784162631083781601483352660428741227717074244573574257463179370228419958960775055998585823794659245313867614366152185664815045867284530256150064241489522892239332638361212434447739454495056252310871482845793096626777283363077578759568888614882612189027901734857803282351039057291824668691632066087412136488359457770457373369355145623275698148544811361540056705907683853712432752375127768259605506177283633790743036608483652737431313600334798966453097789914901111662976652087980032528396991189852231609033078679825789169899196647207744294476709747312071349689431067240906306017777129033699872949180773185014546981612277156693563689527547127660529173366521865997270419947415004455616643147148064859685483066209263686864337079593601909413544388225070788999621525555093595478733603273318216282401902276628269136206641660116978913092596227578140675886140149661919558357824066949468090088416938631393594958079441433014487973982237500881959545984219915280342877649032139927351796100597412949422295796810572626764916537898458056010567021947776709359026260120506473593079845251284010928583391633870288038100721161172928818886737616947643800440065707882217382623021525500823922006379558792453387886908438105311994888676652498434058649738383502303399804940298350487986132349799900497768380034233846643402750664341508365624217922927496119815720611970440859110588152675999871131420078915709976240659923800194266996974557550265285902393186963556689331081246087593070099470397264002936270076699194647009523542393045296718477405255127019346172229453111423468579301383537389086430532605792006513500059950754481655918373726899094861119245803607907339900749522552983581720997420621749538530197994778357632374730189817616847090124717295050186246181982328657187118486290604815979167045584093647072056420627491576703906745836160935830353214148160292812005665540882784140874552056172221781087353834093153079288901220440657660055912689255918013925825758430123279789970162790439358486357860492469799756325181405451276429411600287371218061964900298259870016438641828922760574110648286415937484728909259340858525691551016536322544057963476853043385708312396395174913013495445764291170738422065523984904525033596062424755203647696696345915421003815511740379687623531487257994409794346237732966649672171272469805720138270913595149649156848151516244579962418297791790022882670824231278180585675355978619555795255879901069453611898654816410608271343724326978970075331113138291874673917352124150217416607130937392179825781726154287068242523354904731200872426716059123428778717229930728118480991253082638580592165546742705807339435081437615770772650978048883931043370924641608021585618932175509972358971812900723844408972277986743626712663394409229926786672540780308878375095292949495107669582893325701279987246779048750109142725419266734105344229145274961107174679019991608187193509850112780551641120622595195963807224439060265510500600034588648593879105718745744458854069832455400343538779721196964099437958495329105648231504553011181396535254418421566468205467773404097858189483969150670629150159841086480397696313002255931248530180257305749677308525657658583780980371850938999945716420709084015502028015188388114764395985868502856392663323601152576200949083624586121518518643079643071828348102973373724473920743202069502176064614373069240212351677771645208817321100412752583133346381215791971798649847821309207689248658947212083735524552234401861062685105263597690900117987219344711397282912741898757643027124006354119683337256808372582286331533741888952443319210783356013875219704428000494176242491650404069136830180580803127734053718795377980422165940353682913492210006264736209399883787832239622413320186701977304150524008307956030493866199813083638744139448099335796460456827778534781967234148826657298243955463277095712285822233522463488655760956151437236235157124981266660726253310884431822751113562708814337076390435337053117179594685708850907022395442710233100229791702399124058546840961179995703361560311808586636681333406439357104441282154400235154331685815755238124810666591456318373132881108662369445017099455984498609260756432204791951043762025731548243612001058782995917052619872362648071335718374271751419091637430921078919912255721865182549617064158546409060954550148476081936740693002140265463105650097059633610909554357317684814570650399434482279467755328896232977846060616343298447046205761192886831699913285101681022155476995140846895164853611698625390213038457139911635275114880847110194460012348167193889604242923535380392281269396350962938915372094658357640040105256096802451409451484758878539382337274085565032783767799081182783932235107199454364537396045414337630498507363143828978418116785620017287468103480127628496642298186572324299098315348910434551433574220329482827133146505954520027514609444864771525562785512871729281109031960099703178593426768054449835571355303447294715331252489821034883450748124118571619944176107098956613245849877685041090618134795490761663795564320636434806445227758633379400824222454808627217840679550537872314308250133229925703787680628456058654216715119423891586404834758476347515344519445886855651421684996397596370159430184944667962619688666755203977071325250074431818353833035428568205506420232171336948993920751934789478786435091120472364443289661334041051601531864757663767218566803478238716275228086968669495382423461789632534846511313243494087861485661918231214149217824682858744179569831999839810934507580380615557702192924734509566485875347728158337993482977378938354655811257871801347609327273881782337854409218583478152675392845271915573816203746198438853067256984294899580061053788286550546814563874217895010405213658724429187632662108838079063176824478848806040380254201071954160045511485326274794963146136716396373709268597099046540814916225095068278341624661910087820064416572074691105296377185547667629658001538949306797189717523135983622464553078239282002732029065105913865326569363850920176739337946380431006952565949315780891125908023297826904637807027657061987176330294219127607464884796126676822047341554438286190410018907878075715860208019099587286669070980779182006072668258045175604902136015808237517822076893706075837538018738234383810068612437082525279641600774601674723785243804439802684971107684274009238814098915083005115185711088675034327803345637354501597084769388373303195822539999556439299170848976741616741807422067615762061008468227359236634057375906896045113771164396572250168052157140388698422316279326799082496673136393399357855099263697655815661235010009329987932167665614270832188936045419398596278392747744105953256412959364983116676080953138903129333464768226943123389342329373460033453313924938548785004620345696242587365406561749311631123174440296553228263464278163369912382876604026800276234030617477988176205411919304543740889812640677468615403252389112353753366183782305570121975690970636832209141611497412075624745374674280849958091473668489107216089148496138478579681381363774834066992394925962884447770269171242593161460865048609120320181216753724562670440596138378925777567478959214934491367784185043506406080097948305116347522600489465573520352900783598891075729190558832958897132935972454992740440900697832214412626743033419357189347941216442732118500034757264009316653489916333657886340720477894067666472121081900121126199838110131366954758639179528060836845416316759395025205598723204153335084917817877886282551022867168887632214281465106748971401463089990748010377340232991467925368497528523372729013317026449887180753910631618649413261315890964567394938016265478181478389264608739517853170378902245812910804998306711941778552204958424324178201320715405532537464589026315133856811501032670375899521615291108206865988959267998523658877113796009212021542758396637970534378394726818152301905670347645645720238586045843752225266640985768974208860343028655870952311505512492225442349176721979265354981004867760583845245410819765627287717346742712408182390501714045319203425385117204737539642889371630668925203727187474725597351723587915357300144230754038034789698570502112368602401562498249350959804043858861590918308007232228378390812884215525460348122960278374020472846920212840136708629424617274171819981415070277593545535517097606755230029841628884646384197451294245386022203103119567947796253203695369203199925370013456466703630000302841311017818365280420250373800899957969211262262028820654730754117272890245725346015018875898007046438918440803082223763332552737542191061799177924011746378084832515137038135238484095644201058749264642195878929552484277028493066515634374239034148776447548358160189568370574682229399501268919933318538092724368997393279064723177024019267557722490013047565097235126255792494355318619898112040820786941136287959070428920575381988739093151846751865018320991729332638713604866901211558362525462805955850012725780224540560993048222429426363699074932898734860365634496801047552529595006406774218822349800022244206670940322894852039989804713512314341457384355960084405621798535678675972155882498264733561471166569288454451897338851884755691767723853978816692156120152177345584286279329912213813234045351945264075324898239483115671641971193472118482445245562768416028864073876881919285955704981169395316883912466309687832901775306909180736072491505277381597724296116301934907511277084549540858637469859829196575461868459672229443226764121878806227000306127665071161618973930023840810088460643217204151420740096167316938458647143571247401493401998418037939099781823023805166733765093539034990748179350949073489648393433654323606296386229047917795745026780635825721462262561845439366519262115747317232437519076858934655648970733506795849260945001516693769254624917697413161247349518615208230424266015316816435510413171552084245626379264879091894299111070573593184857789911202516792878516701036948976697144819520334106100122385185036080462702052799236927499579229807460626869562666200929270049803616806557864460455633454615691177295687872049487742723652509989997417601045144662064807026255292597682778262772880755730656642098757886465300204310437826982513293544598082021295357134915220905471425068504569601549431848248219653986824219222890645411799414709191324735091545064041503760155590484578084948951662357431393657982407472325402834958292002214160457345755593882996557213437187609380601771554502724793080830887036755567067875298997808536628684916824200514105699289511188379851510154217974284762900193079895310499025149918202220925333301960981775161947674764773618136133376317315169071139514685005024276577286994334320148510712560401213401118920238171537535824080428332573571359989483238684980539492666942917006611551913180947330265078214984337039457423304064427322289270905705145114444645472648034249852735309261579988654378625931643094756460536174707588626660860178516159389332785743725543478006558519508510716958337408139847792859202266893510048678080551753154139805307831052758285036338105817306566525964556324498480605449311821455085081383145918020378180714222380875123185451758888761559758549421057725277491515454422296195548000799219296231662071925139579320824783716958075152563566242839708621134165227149484855005239178547453841650088600441670870842263830320428560227422879175228938284977374342366655730746328056822218318368060667703665974509327817787557480075353920871215528822804175788585617325535951423985787112704864958929400788439523481484266483169219227764479710621971598466555778049459144390397347093194842899334112366010589588506133778247163034886063483463471489490392087996609612800854510816352168018692124630552399241426065641984036779234592727048529641000896237698827309411589662285135506248073605275549175681376810656762226801003241149233704353789198415316519675070058140312911706653549840441511819764013182142879967940699924119687129368503021921995249160637737759227188655652765779261877144137244377448661667885042618446299751542669719206226173406099010904853130691471627161756658998495839518000122996058466249899413889516279768837895826282420844913486948535088852398814479885734412074274347253714151278440460568020226047447576261479771690193095013504942010575960229232857846808430025457356374782539591371434280573974063302861225532547821512721559443557113867938746686013179799978085334547079064204845229849541059956282987028638493496732381219072070425205355789196925450630620431087764312696252940890579329133427373907704610650249843001293586570796594508109666286177378293795698054695625481506192879886171668719104326979857047521418359384992986855676501810208562207550635052014723695635427651093108074397554858122139104834712565934709598584365081215123442573517846017716647202361640523503205846197475910830300548818229362174287922357202157301348771118457917647046218383077001119770366119339814391548858483929781901715109881541554289070276778123206020794822858342426803084034715622072648501636936459580123485777288934014094318609875510702721720383941915420477311881810934127728972015389137049878765548980884379412084649904347847421384458369811684272135105276075136676122702741878207870767551630799098566221748347878347434736603807824736774195653793669999573464636354536665173967055676918229349229970715431285804732495018142845415936385083444237156924381939538041034761155144481744008521750061614818968587695935961835910673524765773891785996361601828645617447398556647922804322304422940317739281089678086923631932644429452305847876622208777130611361578488950000092465014880404684993287755981459044930222503488638932343107804286181390574655331575912382009996589498553590686534068942475613393136127154245755774633809380604990383996711365155582499620188930972539639641373819836253482676000672214334958477893370443027302822794375176568352498022654550805080601103885902295241892226046592719884482080767159514699908079463662597390441990831405063931554066367943295472207644606074438886362985857143013804722869975163583418440108426917426976271072268142137670040427748807764089630448340459787788065170453924532536820501211213880278658244332741075039938582499752830967230957860691022672647879754204654959168922520002247403952364546630221583863522703596153636172989658929449583628709885908931276563935894318764444391533059790769617216836877244823979000119916032374275875098894917045300826946496150593058042293064712850910058786597799893059587891931934502067720298837230178464002433345131433722437751148291567565936370045491482834944443179087400000557747973506320985322272849598266534263316246991909529666720346830575844517726462680995544510627822701342335738343371379818115920708114515500203218440432921875644914465912535817177829319177931754168294137693343434685707252836353585245432804343886504229137684132158221789335162690335600888659556097783813581243808675671645808369552358403993623669444185066881754193934805468483767549499539361751903629981456551830614546843684073260441343877728099226643173619911208546496997286278801730417696737020883567724869059542090736343718485781771858183037649320088130238111163825496780205008131426110065661952696124844422103813782888522554543231084030077721037035067389852917705443630227006819689410151527267833095981631310563635048460521679270281816351097483913271717004476779642541510940892925216381877896479053238074769869966886314774548098845697504735122063406461564447702850030896539513385975800081385709192769778080555824787019061036081140424899758305970251610014770176743281635213803650546833038324275106917406659722459757688573931321150664147840098036327107878475484107848146325768950363591469279510121877741209637124780883958653819866576170564561324403564976522699794545779604496186696468650311256390794391528827641722677912370343295326184090050383547569909856993840494789022543317325973647918766926399251463869354144719398841637361053116443380959113525568736636587664204702257458952153663525200604699045614998608481165547603902136386517622508689381790694217917335756102160492906300589911283648738822238627845313547641700110120213638707723368234414317093809457010117570205278940610957842609542348063863437821867666903195191215521628263092784022327843413237710843889416170396693549768748084549355646132866473721346718949608304808952328226643026819429287500090976690997587262952065757642731475166976127306102372045212763204664301469362110865321969721669716504539717888066442208386429208815291898573711884933959666571944413971420360414988690681917293063097858613234098823559211827090764905239397667530731402051315374689140879661333294513463226444084865934903438931013891745980456921339563807821086085505073387492820392784914002463610628827086205031377436706992732748411374737897669483110008659904875466770160646165010533650955974757652076163303375340010716919047126500631293356635518135978106444917486737078801091403247845523612650883904635890855172768725729072409149802985729595134884139082645867694830503317617161476869210067328870348845414914763631338489267321193266421707679755690506104055991768104848895739548867430358355075063637934573000575457206326013455816606454624656922720406307479039292514750370882407018170533188161240953690581205133510660878381389578386020954276478152077575989446986961294654179321240758880672235858554423120349527791856183441898317587961332698846332376565814815420023374775562649582858903616761347761691109134592965005819778238459512899103896909163751216223796708082694741664672189288150322437060908699274624941449897281595613368159912675808028497171050142013730137052960552419329292354137877758280685487478222840653096512865613331882620094204757163822931808956408263635373335066530208711941237692537004078493595192076947458604582732133246346865481016259911342427590681355600038897594842635930155398361002158887971799215529629835813937653262063422673644760377935164630703511876061142264877364693316590208175693138534593674135944605634557606704112589517948259098622698735899494517528428462714702516577173316720019880394201588230903990497565256743955764205565440528421729923469726301584600575474280878662550226303351987682629946369853603617750803987133771522824208627887729225387970008396219087609651066186188263088204700445799239331156191175697347587322108399604932096030348002759571429680605485420261805583646524898317491543370420640307821063891883834646716159411971115690662696381707207815652561910375174648328706760637841257969587570209013039067216461977561443030294892114586685042268512658802800613949230676436609302606629035184355429691195716239188388451232473018395217484272131973889373669911831119771256670989096633534694222628114462660960487766695403857502814198934572759260911725869705814807063717765150235827650666530713060678062472346949737440791303825819353350275874689304001833769563893062593127699818671272281373273827521123032207226901519908035801726163217748843595485664755617195691730087565097456895163313634405427625334421895595751721460772169761896096965017370588442488753652690492710664245229478571223127724303078780331800565891615165669392227347637694257072904266225022731968209661300208084806618674711371917637675072911557446639739983125606045394607192445434643437547908631857035647544237534728708712123311232615621116451198625309756846030336692004672686024142841453785185681532584435841554764664438972863553589937428700880346222847860831675675270268601101977870519203089859558182889863609879034196574400357063594943793427974843010867664409274965901644416115994484377530527476671237104154523043176210216901037401338224178605983389536198262226758120163475648462262058078545096928672833417985589078481546246004887969123469991801247778952914713676292533802275269714216445146321029306768077681550203202358946277270207412497759332597665329462795647578057133623027701578981948219546117100148895878895053953543794636512305608606992776001026013395423067276946548591392796583960815742873807928145359340629542841587048437619509805512212095238145350002953864044434025791107797573780666182552348649807197389181163039547736369160198618777711658011904095942596147621785640738446165666506878457898532496630525469633747024016750841480059490617196411328675387317227452253239929287995731934581239875229272872251188980955528752062073613715905658102617942806443781796720733314693452579249852539508588870146230485015614778593346221867146350694023485738461136313769879056189387676411286933793174367653609819540305461628989395397912358742927732080687748790354658667249144583595691608488629091058168566447630679158374099791456623452075593394744989440014172871293300068799520257819790633281858277032156689507746195610608983397022582380712055540166169058951721434321022957796558918384090340774392279656638683184799534327798362325052648887344122892389964548125096127749286499056994430821639581103520323907740028518584649368229481415764182333083322031957802656553791138920489744243393978609321583402972643766370729557450636902086120685895238279267131527956166260364534511645586001746946001618441633043882507783253749189686276434231333864217354737795584491642049693685879017285672371341361031839062448531812451511813640052571578190790147960182613468467203422987285659520510148180584160095203257246608294814085208916129504263657630704375287635166138621147794686164250469518992652622254401395864644815688779750905539867463561215283794750463621073608511064291979404403830192486633201536169114235165307069592443332592869363963725051464170802403382255504505286417159317143152582812838981011285658086365183286989746432568517894108310431646808097289870224181513664949917880196809212419222478506212323521757826359475605958887835857190832377959352334777943978133081694945311264979153880234234480315435398478853188207178508287378590639470086338875476045379029065957795277733518290604147492577546318983708737779591223913450147049212738572974693209987322386727012176333882884530062516121277209327347286682456063559641718981944538510263326882552617576801437153777691369837767562786103399008636257186102198583198172583199548735053506825956553049119348282423280384896966187039557857969832348341763611555340017082505002090493887162829090787243935117459210020880559334692379117299445429493864593484049377674811910155644913325596916591033124587913895319265511658092102070931134823034324653279678687612382395508086996814037872214338563550864643779848076582605384966997476959116311549810411364279280175498778750670023465896674151094857538437135732789139244089126575489334897849977997722826128399245732063646045506893702082394299379115803148835147413455690229797172587699315891676764332933737454318098722878066161606943753654130474692814527572973808123210658253949885118587548566531194901738263733224178866183056491758378223076410369430376393838513015043921240717208830307652835533780621279786715594719760326344745020851136755430665714940276779133477410831449606227379083265949645916976751148369112832920735958319151289092448642316129602321280244397883342810595051638129821945721893318326563198466573933227630800288116657010231884110129449927192782992372426148297801215873496291057988918266301435008938074709851179411189891756209337862096089066509185801522429646668775535945567864007330837899250564822924379339128866997742751409529865107353314256675740196431993114945807777181878223293354055917498026236641647036063164754422096229302487850516688892129826074849042672478806038801831053018984527031203365085293084917263897914015514316970508448798711263535584761279657617895139218194878600947436220190887229099017725842741762928167669777556393497472016363479080360042336468755829570916710679717286158295721539350653855234283394980145520388908443885272815872632752454335219755957248234195202576399209985583288535497166481272430161235549567979261453918401463711087260588943004465371723137499424221829800684858951173061086267663459499538065550359491677517816449773421892303996689376121915660762089320365825241754929676036625751004640950493268473826017324348491608768616055639692694868242513974623408813949842655258785817204758411144993983980628014194143883649516045444348033933617796600952419257485413876396839148570598424853521047976606267735270077225916869857939590875330504714050195549236476257949803563934447687397526507921896331274904870117566799810239223897274500173191703618105813819891335385506053739519673773938508961960310250729086327513776277320698296510348825491727915847120531484997737364895595849888709518225449089493924608840805074065670935216255091783906747279869226319886002416124022379152388753537950455819288222637410152636305591169512352565440718164941101264257499015336132243605208865441517054918264009185113310566459284898438675478633399593394714335519591049500884292647635440201906060288716144044777512680735654698131469010476940298053774484687309147329195438267143137702925167218943115025129434297413724895354025042002821199737422749407696644302416869249705061093648527781607522743643918563613655932469812463692128458383795297781658043240056123470208786112580432435781670650935958846678576837875499336162816060862782312782920211851856990455487717500395000522579689182592540511971072612686970894875731286081212214826905951364821039908075950032447573732886853478048918604264094085554771452281542085886932002836715466877397526537246888186853002919330380988109345870528050935175895803841000847872190247520963516997291383440880898386999114852280693714384522910019303421818893483084233145548822108863865040875135874175661548864913581053658471190426425928435033794245636740061745366197734586569986833776607205999855864001028736839317729852374384439660136703512012468794779429227583666788127532186105778301113679808333070491486920031699109688913087258097914947815688218395373908804434035971267189236677352850988351730660816571812922462908622154300252876519534114811407269823505224244906953824983915166463375616573582917029596125262543251888859632764182333475315966565051507243677212368673712864951900481004526571876619495877874217155506686130194084501471565836568732861235586610829316340144148633762100562228028582743257105572849306877484804973490592365114799991461438877506333007956640947867766207747150150477603168944293919965444634352499973124819438687690546438451200008564848478836354431243490476124980410125562476490927771943743399310656765350533694569082887035688403040333462015378611739759992578073087934712539363123580072843293586856276554783209526242174419348354047796108635639058855655829332611385758402313934172693831688195974577547951730290891261532775836784198168622309826689252681702200405519297034114951594806344411958144184953372087724340576209700649094464341305120405798125100762079494798329121992674935305749693187410418897724694573296987455672712679120596232574906540625473903455162897533064663199540681964615179708730236782664998375254725475492859592170929211926243064877516697333463232054170831584341597211655444280832166251853644939180719098298538325024166749054519980477479491328740142965857209483706897119913936829996559970074937841795464981032219806948869454741219923254225559470141781015064837299039039014003402446133251060771697623373703152193960935434706732882010623245777526033555335582870284772329327174348286520919386304260809214220168207999546660810271808568455229535118255940444414390994998034409366221673723971917596398125544112751626621193592943929049416745186071852328724237007259649988228169207811872469525415159674852690450614469442540438584235789046273140126203511675753997313636187973375243738013364719166141917285823928867389235541199584678781361313901235018101422296934311566752301405198689794844130547610227808787433817016542284901110914437443543391885889880698430931692969974661898009064744895005299485926021178827088396656602882265685616120860422249871700609679961365453636833113334108064351355795949673789670090902701925083808203482036957394707130084315711285553724469889715799361902308062147384284194280779023872228979774338204056801156889356477718123661309213354971980100474352841700187109799972833963960299453329081929869904095015228824162690745243390214627870253966034916198407228581564811633320727521472236771480647159583035442014465692300198270956407037768306039370521675618964634176789780422850681153012226674615305017852690217137546559962961442549547172924795324452306283356373976263132017818880963205146053761031321520925736725469188006292267232539528715132216027339415022671499720699135380912161022738128512539020893455324047600735236187858252497851576390937570616106943147316730229818065894423605763548845615471044058726533272504595572837161006997916822402450555598414737424993031394523707222587775892915146847250247249807476682607914261560330901034348763344969490014542835964015108003555699711263364065536451384322267026908571261005025854244885438772602548156619002609817604996019158276299255536943858300613364399055446768079574578528673099845939121032711754846949888298925856542917353462087096299614504793743484951392824565556420400310882482161553125984147979363105436906640199466765886684411380862447977922984727507966173868433551071818161254761382413612838506011500773023625153219571823134681908862581662572976102127067460775571997689536369868100065624106876117373629137056907061127412383899077270129333412428149870559158551166861689741187462333365759200893364719148282858926553633570351375623721333640639126805797591305952614406602397963092212104760885427526058707517155883143544975974510146006100596425858879853362393804713753169243058992289524314143876002881451912274146761012081554808762605673107664861609506009972924984582474941543146451589914674945442475648624102686494950514089189648489710420999247144530286315302399591702743552210033315860862769983481041042093444648351617060118762273189382067637861625640036204119576844737579791903002088644106877653970455536804426543607791669820337822627410574301475032353902544676703233971152050608710703202031234121957270334449652465527514664340395262507327194856410220268422068542584140767846496267994227548050833129152082673129459935458731993514944211324067786326405117386391749058349233036386107974676958213417709531445843365837118362647053280462982681075629855147797164400938442799862043880673957189631866931962688000570184543975059024358050373087176487751281875332448205555968333370161438206847423864849835410351017600481562841366078277206761972553260409392542763609748352757393078952136962978533802837470826415879393264207792409171943739179713415979080880816099854143154046903312863114437803341961721267016488865850952460925067107979000069858259400858564254487333799877948162811424562939893477317650716497697073442524219579098148880378824826531786904892321601646332039823768491975038265826379425855750418641328644057228224779821913502804530693853331451614044929419915977694169757490634116324684924153126036213895853017326256543208074383927325527967148503659890019952025821350282820759172069342547021210207127787843310956109231750161005940406804784263674095299447776704051689637343566849118784631790509235597783031665644697303581879913070498985525289229718741126128956887761627076731466060347493140186857695203342663542579208998072845904640324853698633809902953596702695392877908316378467031573363467091222744122030913211444940068473340504424940853753813352371346191664987247688288685198640178009035840237954409928072629282385529705731420385859257309014898327070230953685173826515982299942762323302585735424670647369164940732224969476341395118378090339622462709291829292713480292633333511073933686474402925154339004510730918310488438283170440750347391015307795253661887842131658999088159616518802222439048129233228937908111443140938837052129187168127882942732805425045873869546157790513674619042314168321887074649828773776478388923887483857515666481617830514918380798611416891935590619982625458935174402822530090005440727633903885448306421838003959379819818554312880047975719076817774251058245732132823289461425496105428830653348664196075597431911807120202821546601340890384672714639631095829974124488591472507810342822892822328179522544701093269406372974991441519929016623019497854756485113244679329442253756488219936141825308565172037070347744993745979947511749030273572305091541659873874490081551032920485001398965848665670730352881213390736548617488648536413006479705309581819887731111198558453811330294334942738565802738271984621460871724237098515469946285912533937299394200880644959515120602397657678286343688888295097448991533773746683867351035303737757739153804603927852565115275605248946216622569221662176551448930257201010108585313747305681012058863974876469257031470457219984700552771749453689667116623014735143848010826336594599937134280257532433628114110791386619069684471661104557854903380672528286654775518768927334511943208813104090999291184979404013760897050531975638098619612673672145440416424761499918297978304155788445421872269750220322618325234397332983778318636397305217417534490838947559162163360675909211414057514945960914672447405662611337773192656532972393053226378529161086967783273586998183114699859024331555933382873525120733121196560521944650794516886933835941289183301971404597158189093402907832000770763971633149287069487066543117588174917154757045968510927457936719311744809753398964914719292232905277641221260388761279213461176756808677204937364633237586123103186774742020640205935815575917843550736572502457725797179101192775201481860484959318862166131830827602517791383296683431430083650105928619794562249103405384166914124117239722365370132287725960149514264334562121043653702820560950656347866379213365259983452589566004483479957565526198390529589077272493623209747741055343233073002012036295894475968860134700797278343327528574479801715440624798274572004627578890574745834008649125274699077546490662762142869072159935126459372517284120509473087895924003595025210198058483378664320336797316526138734075589185048060898704644015732380012448674859688272176176762076392930821531851689214459831525228568397064639338396697056615689751618137319552138796110377658364434255118629498898722091189358886646004022371526414626998693841294807199457220108005593618259541207935531546378322632115800832933467934780380783352763293840604848859104952478789163248669657322440942302032151541981177481264380166007869293712770876149928602735523016735441262117796042434911258483390395112594934529218661870457569244709399462759084756386727605575088972581994376921529806705975147584939777620658380739065918870918893003076770257072358183264903564778111823185804361709916089990032038005908081289701519869113682765094306157467162469048304856353879777176438811235611432410589339403979942710808310808170067373283388368601842437254356845256484508424511577866773737214046563149596794143257473788467523908628536200134013717737857142642136240712505364319692183692804904160325283897409134500331193239505364154609336845922598763176445202361137482018626408831711302109301822018881090661931100300540328664731258275722867645620216188780822459846822074585404609948831964478246400051141153639327862863482222981069683829723542056670869204574724389251379072479259234641750436023033410141004204125391394792703113845257158311035094287624261820548349263414592932149794318452735264465324736690341864548052223743713273060469594602221126425480422917005113784213520942870466201505145733317191122828065394839916560256339948152923276720923872215639220453127276884010086883024713265493629319926753009724565006255419751894476567580305758375074516121605075529320990983279842375486390510609235205827799741105550379042779847440084493249749600681500531494964390340927619867337556164845009430351147758234464285221774821308183572852599695718384545932139826863805094865603458283229934761921538129785418477748047295867294037417104083353933867656929282363089166693198445887949871422705852213771107311940537169396744966195104396869668089125206943923170053083364310726553590916219309128086863046036503863469765430448426575491273675842088706171076262418865120498741348441931556876780162047614377091169286867140788321983394182631932046666992354993410357163830049038069014595806980202694722926618610012126776894921215707951714664364779991290404166933268915457011480037324139337872202697163781639182666074455666229248281979854648991744679216633157476939202616718919101511309607422024661070711370223521756181437383398417015819744245606173373856576689473526852193386845535173341944174130092350461440036823765388710375719820982454447221180420397728161303507500415063895897425884358762920988609933753025356450129273783621994412818589722604858848124283579973687283191448978133187341117885406400211434826450575464039652469800385370293851268054234749966684921766149484617812377749126455870681073316415085760278979225296438522603365385313012946483317293236629162939177127651979460453655333074328239642775137880159667013999883007648450884481507164985385987885842618906233236562853382752770813560348248061417266235682080031137939451705875327054726616461647314976445488330997523750342439228332798556388577657424529738419263993449574834977649756405912392286419816272667023707582608230601494903409675508328697452325132646201077626985091786729516394053149606128000692037788181424035339442842754071033825704278823614527772167855849174181024769561431472084030168755244076227017133852628477441309748618194228887067509671242787390404167555231931997702208358766427390575888960467877079002392862560418335896945892413908997729182353919379667718188679850143958260591986935608546829771308726139408514127717028253605858933790493534936263760615614889545036526517910928536876058940167503404901635544876826928907934461089457994471642613729782396780338849161730100952305127431239909472367626728173348846157840815561964310480166979952966823933063734699038607793978020649974188820721524452414657828583777542161238280376215599518820622035118699759892054292031217228983169990617979718980482224731196596197291380474673656982561151443280094534110195884439151142615636983638917065243564905531404852631510591728513497979853461166430907277003523466168415147674977506370056402297205364851520479896225297474865500392300316198715291223293728394604324392918011918242057432865580003472825592247870318008834252362354641808282636925278195291930741011337726890638677060108070910399230863661879250521406618392796836988276559942621229740512635621442715165142332302901825228852246694256589913429947475237030693274690336974648833342032132075946763868308546787740472167778713021587073168118043270404270419521913903929845538733557256211762279344427039653504483283994475892929834686155765386736618152008346129488508640899320296824549034659742565959332288815683520310680307678663053352917233086348680374467182480235545227371240787631512631084143828255869354437355017580954024612026304698290202010682165358466956310684600177639860699623100162127769688260871549744349355883200947614740015735630564561733082985911172961971232972997943831178959476402765458937378513051450842871914219002932397577264769770890593636195390035070549007888667875808881388369371400674727072322224673702373197738429814649650594593931281475471424798723910988164354162640479125284588756833075456401565031531532397875931947720048215405322112476739141859785575410595195841987204695376005249134860614867245447041726835172682476601537033173229900591647066042831097545244860974596481807681676763473703980593076757995582855864713378742051996735426171433177060676229249026873040527199833637194506566465416997211730085423939371785155382511314714499971485408510264235251905938819549356461997917204382385901356121626001511226223745799799441421445111504890748500441192616372761450724340354913726073160771694106796448525923106596551356499717816738407227617808000454408250534968230834590581345216701642367545633225299884066334900415814830606519341036159153759965694630121385341841722212983582081800810269838958316525231286824459614371162025192067021349642886668598440705104735772304365941773433231410139075464318018361863306421296170048420146655236058335958488455247708331385423787937926446106589257199735031815788639446685680202501019200409899183902160772966836245542716689214388331643974821453513299362206575659474503623106162383899842191391801862522141688878646115776216264884092612774481246966624855656430707925961498762291086014173857082248986489544687394563700186251733961394777840882570198528971244045049678388993985272056790766642252505671088521182988084945215846306385977005237760584320333938366036058695087145241963222915436321158886899035685631504819116712888521748299868557616567736048233238408548848595989554482817177640627771787385609117899224797740878573467152017930228483874725272325309049670503163274063464604653985290361923000867494797285404383897199852396053231186857692738434353928719556892184164093261258297195679445430278039223601194641521540161796019735017901153137433755297259752799037488247373305466374155774262323894796224875663618795805978222431383607894114140735132100717188922689244839286447265809967802932033723153762923187820312193843026318984000531162029510460761109423428763560836316293296937799396109387146827100570576597940935795907597725781556106380965871959019074924828361168122879232003974280366316687407915792072456616840641606103197733022637040495142332723186686640188351896906697559489694260886853861082028287324113609027071145706127432847975715303139702085585668152714837516524028021307120907274783767183131306968045119631517054469609705702487138592254657167858434667765453210899389491216736582613693784339890385033307820590870320010961805266179109647870143388185672345362429569323558818335792906687211126074437375092827667923904851773667806730431585041125547936188642132049201517038936084709392912448753175326568030185003632683165845656252539699010135799896621833682762747454395972844758696833599574573456935950367260539349565749003979416036863009837668449108250946180453381475822074330711212077375638922130229193136097821595050164891756756897014614547870384037141805199820537835803313466065742420780140977775673135836452167101238209408480195183120650483410362925345837833955821602039174691721906864867375836996319693409137593821771597489169719570864175552007245539224404964359740669740206901558486519548739843116264140247414053809602524733838756036469365372829304153027422230477673612778839795812072903921951247827685068567155296660658296961889344581321559669657037249922498971428665624751693357441788569298396398025533041742934194576160903921893894291140632207402768180926614297403588727083277738180297301063417737386018642116844681348343721824038379689623115841114062030202724578807618698831924650519456178904198297660472288994584035326386524418394740720449783415582072863382911707006505451372588867745805224456409354560284229708863322978735010177141247132563837536350824198515222796326761307202856191825078422380416882783274795666513285767753938377954706126524851098993012112923242069184569382987737044294710263256861641359641908570521115413969373061211150532269850055466547984148545796279659771239631007907832337604744719179840393174849850439770630321232450955681546804704986868430757957786979570253286376254568750710419816487961288602291202064365909684604589379899095648619214082209323593738044731299814123527032904908582486574697323211283269060105049611493962394137634090128795540949904929974242946869786896906685133106331957197229683661404042607973027977039232517956467568122391948907108289215456235521351496067571889866518703812558633025634962269750596801001098851580154007278088942198293100035238234936555263983854519059726502777266153305238587345372534921122797352773222715528073683335107547637770780620725992992229462566479162191973577906540664403858372398962446613880756772963151778071172120681036509378413492143252116492322967233489863043620318334987655669660068735719190761662561429103693055950677110199433961575716445854955139709792000020538329168009486525161726023406888817392494231410900828697326085862104167422724782886909200325886956052467125198232816557951855834098710036005546724800513055744264534136854254091593963077623019123848856588380032025108478879142614444144896272532208417076741142967843109769996602653824188979457471585119112003024369398093007640411254093289491660018828503169113418957515554830022284945566468591424195249846613278980282416825246169824759621061811794179762904743373694393524220110439579524708165899848643170540730760902668801202005489673547328186827820411002403369191816452513458000919606272401436372289434221650829306156061799573975347554392660771646922382083809103801147244847928617383365503852896214207614071319580128614706207187703227723457029731624080196608750909588879228845908078349065047003631921957859342161524111772433245762725718923596791839946104129264390913637586322539057896142164999007027173510940015888520871326768239853864829432687494089449555064621333145028229337431027520476218023739129314432848271723321196978107189142579943898950131863606748111975245611744343194799111467930287692819609635496133333605561854954761058791683174206714708404499787363682728770373495080275106633666367905085805203851430910739936727164315371737728029252973956899525763453093968565987351973253376090931359047869054114392339465845597651117244092571048417331049632305864803926498187742371623218818524416940774064347654753241081679892020157788104814570051248522943336548820385535888583779785215717334282692044914517170779383854372460204546921142208863852534964036729704707672167285343599336715424881521934485209657533934372927779878618985429489378834352528862157387885518205822898259348634299555796896812839777073659368829176081132615715803174354762982390020008106673240981028581806947366991916226979505863112701029108646429712893554145750435284825906454488189487009126369147640302089908375485922010970560686855508755352447347175483128701261459238842074805305882900630276952064101435825141014691857759442531956784807935813405292273890879030345632242603317133068602588902468375971834526516596535795459300908659920699183573376766481944533201010497226864246073477338254107723533742546050707891220746719577783656547625217104335760662193246648238786078964838520230852753162402941639889857486608734904990843213038744222993992073557973303898377494580146369505938120304713016322629687659399978065984311412957803106785010059885361362461757565343050337002528349917560901302612018552436595330405894011727765617732411242378974160882185725975807742139974410921867625990000742503097173743659854746172614232430537388576043828964699563056622066833076062861240260096040871267087745030694173417538516104162840229639565804828477724002312517581217417283416972299436769014629526780613101383140179010859024477210496164505196236344222393018292914626430573184097563221458710573900695202004631209636257655108425171060215037323109213782718362909171744639019658219554332998013394472849359828020179452564004240694896818493236975507602432856052890671863813851243356464340873474113872724027638408686910167144071888055681687034028085331524889461517370894737670681921505132062989155731344796725612956930927142885639216987013761274363933291707447795486179221746939690430295609092895572217377097468188789082390038566404890047138245289018633790640414340907187026017011261862144756611772310644140834149829011724964303945380064611007597299104205554117168799330730160036954548381356724880343634158319064945560241519928593886260426728374299708268701872333770015090611158793396543516992092284194746044076074436465530621456201658652741351619573805870524447993200015295230453184152808691574261402630904890613002379843808211650451194472294231041340108611722248871191229039981069419386965152052634955304399463198964612431205468611862309767314819206931099758232715387207810047953759171396612510043405661596696472753263339776601886194297163187243242661263994557986454483832703826465922774344633444647158989191665815041793435707081045747037738015827830894737966983116429624222564156354635298953810999341274091458071807056584334964879966914198551539054417950451361879961767264596284536443843424229782867055425992046867727015100790043458991814740551855170320051534331878733761729839296664437120916077765754844402084218239406123757443641944386260210750936601726055590479417531391266156310211765752238263968201464535386417744898586826171623797962143106790440596118681187491319264355356779965983398558596926443518371725142046482204416721735854927741983858242377897678527904967065737507737219342224589016499987980905944973442685566337596553243492370152214640436468746306274748830835218592157246949046019430640162083662063869648534659185548335464148994805990788438672027131711373694148078699298893837156995888236545071079011953971866240734677594482970349519301239250872519702652084990577101143376882065286669432307750369427546714488275918382536175928690683567986611511071872857559508873057745057614163116567718130872000474830886748238174087382365100748444907974127375483875371331039530331532797181631189975465726302068217227916195959108777549613863233548790152049334399145616569069593948537331809404866605015136350896760036847932016845975067939369891974097881996842452316797777637974741117928138519316088054447802993037375593096770845901593164722680987704934385533277966752823673198013778859682123444471520193985316217148321487359498948240420240650000327334922501124076239389204767749148497663970833149552314022573292206052562407937893608728592897554507199410217931484911050541395500291783495666379310699599928824524586790032423631809283562593363999041794115427194030659441878284040042762927259985926177404292376381811804316253969653734883294095409445987741593035777368476945373128566548117714699981720672688537437558247150341460882527474073375263316002976275338985204261771816604827080369974015052767072026944047719082956464494126836285645661947362371435040492518032206434829863789378880375903830152218058769635407829281810883517335052172003963276578428308990048670605764253216036644463648397581810953896845186856706745561796553139942806601300790876866086883042193372052166848059125731714756673271133169406554838038056197745929949338705171270359049499390684207465040856359351729181320938586188246272346782449520958808812790083200249334338590801896555525752019741682907904009642642243484987887287389137310931134760262250700292052552954497454847622592496182249522193028179852321726471307678871051721467661716903515795136753175192289708572903161724775624170068140342906538851243415975171826028245396270765769338580350253416940206018102094254714604457549597589560738059825526910470282282605940674119542389889020059262406823508323297735953845439946335355402026109267784990787102578935366751146368804806013441334255408439260188473855897278648608924899980347709469784278748435133211550937938731567587170185258257057156219738626734419291738127000782305289549139307688069800262397890107767502305515694008450279667709872306342770276503960081110452582378601764647531810697142958357427914227743561310595663887266259132389904022061463477691153240712841397945706642924944957118690567559490830533522508934868621617409605621199753078215211626058618916264521236958346899239869524060490430191655045300763241862159092550080078897381965645096269348492214062003018836364730976418683049923417401536304903307850226009382360976178134189798456744711580675355009124799185539738499376439633226853183276537418397768929021922348337090428972925852681114594425689049861509687197312525181558240433228438702777354677514445686344851459539454746854333455842435711932282768047901721707991720588003117675922929156817345267023269634831688421734158086609223766631268007396808243254905532307772291398743650370317340073889851183798298384114445768428553241193525656999488439359640465078117159374699697411277950165201135119450723826320094649934903656537737657637665939611855560531469430060569317888084799676690226934864808173468954623148654247970868730091704748923153719839690563196407006541627067253077410716147069125393170522981091862361227876027411608404589085207638975573957214203340036582306066529203236780413441106304394285963916230211652432937006494430737026202083899074648214719374439676358901553337978463585572549901368863743199027259183263769254018689210958736532310911634858110977060114099282331320510193890708780628975021467935149527351175307554418989852395580687493066881347027505225710571290663553336303715108382381867833522798645038243643124137983025848857184098634359638004926020435527700756887117733954560454422403519116077887036409764019558156713621932227540795936392806514411588108297005738643661448741442511190947094097110076781703704622469608350873223625578909975269909675402175905073934998472947922778884511738347915258932424880730381098011142460223597357857774669024511179489499179432150337316827497256455977265649077105778305637549600754525764223283934107647162455056216963522788557413060890664576900094373809808803749409132211698049900974516308191603229483029424338629351291954260414534004172442697073873485380684335528498333320955272799753492473021475574992565463314753318558289963554655577163747762419377138755450462582865326548308249511970821656561979766118830676423434341269210502933482175579464782237018656738749046403690467221551528635586215536930430878530630528635463612459253317818349342953720649287108495707332528704597700947275014378716419860972515240163090972624755811175101493940194416626019866743362384275514768782119329068760968927531181657146530990227922843063266469448258721396096644395035687813562369591276594619073600168390338071329836086370014903987201034942097397098791207083304304837867870507525700281781050500272574135347277728785152727440415771847134035283325566272801838584002351252214327593416213015557389790568413786530782367347915948428924069608517994766350105132534862135232451151001515661998671558460284570753176913385658724582916362110332140272823976992360568966267890244530556207024850639144044332054165260778643864239553175622032576492151810413357327108829622932091137638945956610030903784413224591137111637006880788671124789994620839770177347555065565874128382311659589929348227455434986772682576275808995473128424953403422036511445224637930287899457966633420131741768317756845691992315221253928900123416450323995058063554938514610553451973794751491183728987282231578169007841405784737934087768561498710974457516337171336752801540780224574620918122675270101970153568132702050008711372328872968102834793681624614762802457537140243503397003446402615321498809340813456671142138463110316001006264285002184088646889267772029785182723185284174502025500621085201899693995574123166705428027479619125520902320910183607397214661531571391538405175065896796211413370870400431263369305380351048481381023169765114388131857389921818709365072280143176480756120355260460791281433939410268255197865776233625686732893889522804315876320772057628024720779331700813259624777478411484544532071211087481996994774371315767507953911886577512199305255031296858754613483386286989896391825344075804555583580932113488429338509208405212907852774309264095288557967355552467850701909774179850622685087788957325831360977075141616372307381401040114288770614876419687852242215055286550871933764664476055276106575263770647728692593032071442901236772228778555634765944332259654792910289384494784921098814156354308452571735629089964001894503510697321845739432684268520135018249734509564583960510188716921991380349547199172007340443319964921997288478440274144546345832715985261931665431792829494183915009770708126880361975328998233115822746245029063165181765503924912886019325843642562837201454677559095486165452618606627880068889801054993721156362072702841081710177641193206841920921964186466012120822442797542179961459705535721160226957490501159873831657616026620575447140973713632924708880074041677408615213996375388065308521792104189453258085952699883260135995650574353553449358524043052592038885160532472304935719875423702799230481456207467103506835331844764400486165723283941725060376833009492934326808408748232981172138584357287053428496317273628448831296728180198163302390396149090521433491378008487399995993128458998330897573924818527197057533289010598987662314454756800568155770435681420533843721127968836503679900750781034483266788651087479179255673067853898707276014630883763129592654104473365340554778646790853698036907169650323217009791672478506743654564101613153999588061051879241752961690195556931714621621123319850444400407362788891135606772274794219125117169472708139269144589610296117606703149137838715569317316728060618541219434038439867652070708023930730472450956880290046252612853021709311611684562606331071699020802130121710203635532225172792088018651412384381841459505830587462776110809229221111877970509278819676269905476150215733183366855689521034134358845077443553678454628395497476393963440908623666578129989330662502702683408783933672137309746620427257130270723210240995201637672777929927348285041629044161663232846556630761792206839842053435061034096314705991478862807466820111519635533692854791872156271716724647592444146130547088867936103080607609736225506084561894618540109561714182828373994302165532229661946629710905122993327218195603956534966445415186456799641765650312926957746597119246118043267360121279117624492692345674557185219135437765470527616635253263705060586168907130132382456706463062446343619674795947552850276424996647573856007876439966069510973083554796416040718701079511336112869977438916366192148365415195420359277091540056923403990995340065760638893020977130500752087406872744248247142809224113775534388654668025646158380483506992957362781589080539348547284729540732319762164475417999289479812126882308387446604187067760857192190007228566448694602264733382601367573871111785334471209065592297463288318490891610260533380704722818879552448020745436195372863498636938073226731821848794567604304893069168307031873858983332623845606855063799345075614611971849364224509127509579683822646531708594122051191653260492054785861658923088986448892064434179807889363385157826792809080843304512089378771478513392053567016483783775820600916419710899301782812761494495108236030077451638035623584944854831999048459495200115184200349698239050661941271905885327050536477149954935912274903873066734025342922603232016006781230112903374009648195571060498113318677973251908607262258549956064740451050068779604759872884074464218445585956371247873169931731537554540302334442076841362602275014693585589517268780268142489187280869698555805142617539209094278902432514779526371979456877314232507164175303597520974884337170602469307439965176100370279482908327605296955372901754362988483113292141915175768207693027290344332252168143510971788239057475476669212020100317229233205045554390779740349160222721287057559563514460269138545711915830336558669039550198368340243958395576901302245047375812067883221653581765067868847552112742212583831599450469612190097673630125909918426461038333496456510868128002918082153933386127881616221988573250421000900575951637982797181882692036974489124315456601690455235669380119657619866050692646394197035864960395617676193976557118927220635705330201706877629959138525961391460369335697534681548208273458089921602820921639679212152127449149965121009578754828838198024977522108542815227763379902196964109028557017110980626490618828662141529285120428632579330590377233271515497265635087327121772763091857844924762062381621106292770805608425700611302169641842721370498255345838341666974150606454783656997476452363444712880411969477658420680374862439958168480800937113129404978648684298645159792993773273272196813143037372293951895103458820968675573408318908282846588048295821097911049821047096816127676790704777509264800079388100190690803303993583344437312175228217533048885122101289884675933942508558872047339332164643378222839751948179054844272480347203962548465910886261659181086822274188656338351924623486264408308076911239269120765593002611886791005134397935278268773597095569581126845989380432599664744749850649747330062611711659492747118125651472104611265979291480863214571093527595716563536870830538946027397890299209750585975854611525755904152161764969030089207210225852473555410630122965072417222481677614884957432162048693855622938559493750162121970569425234628454674123466260463195356299100970904358075997008407428294018449939687480644817757066252254800930884243035069980137920716739670901882064287093441728570011110130901636074468620873600355567888933740292935569866739949982004055507631701763791709391931003200109771934811039248891982916021656791660985344157893669501634862554810534656074123808429319157744947704198838080675126106008744140766054283579567566302905508555151888167347028950744904469195150156576766120443704313800102864556478027495367058445630486920674476571396095966584121447428232812489406270493718534395453519422564558340772152819176752099628945393446079403833543708076232887239249786967675473131445405087038166791682362447914884024495916972514547293353790501488205561434031693289106183858738499673037224893644852105154556880445817294387602723242256213747847995211223287763261057824095138875072233373010729672208897346742734107079639881635756074078812766097164920020445151432330005042014605487185636487972403217225917355547891703224940750189265796363164431216042951637769165361871460376898399910502387339022866468069997452815324591500216096986750344239419768853247316900808764237830690219430428125799770453980633624740919840613219781100672404861010723665012953918396734543663925155514681152782889709270609284640424470277541909999516045998881013694766055141075348822926181507229190161125901828476353204929625810856616712002664212301328502608449007295983857255664941940033397687025567437332348255422487826959736522900472228101579598425816114443256906527041804832127235573215903697339766828343348184813539203378985762344766497885020325506323050934590733798278344911819936303637691632750022087012783083730110200199193969995110097514954125843524968653492783090565018197195816261847167545217341182342319284226223826321435290853792337021592947369041636554478868499510596193015788854559525287792561864799056550886526428707757864320082426537977129119081107055161900464043139486424192835634640168437789612000687343060470436157115961527522117763510835953826921995543203229346385138456327035860191172236907625066735975986527871678710995839876407282998538783245662058118814959773706967766082642683271775916363813963754695122797601819450803822505585047261382250271294106743015502405699004578026764178256448009472881845200618839364512991302915292747198015205320438091971512229836159746980152295007087322696122620173832877192165782350521891119780733006777514842236773526589946871525012534667270770078216556830646135585690353993876953587133782623658516413011773363853176053722253341698212323939027247838978193747613419887630998837950729836278470518311339001884600722312004142437003929320379257349156871346389201375370900072824558040491950123172565978543495513624668373335630658984055406684248201101095477099627933017820877877686774918256180490711080153130985252586105559380964745445266448987122495827470667647016765479983757773987194392706593734437417178428861102839482933859229427431137827730256304919425929595964407775467119058246334392512229311106333874231423809281956324628057831908847969432603133459989715661308693650610019975011146559646138665214529168822931999965028361099080375216911060462948476718663562510562737716632897405485974716848940457415069011826370519565327156117832143646856362136728795048974020384563637277120688414126591905537791193530410838895602500893705741459105317952702994854285022085976679696165025452447159224128959511346972046426706305070583843563975881061983106195498758276076136365793134647207194321123313499258833825302621925943463901213444850542838743753796727960328000356977828317004976362467192825475073706599409527268097380721892779428371776387242188944144563206866460499774856948389098413172865720258727648783694928042567349433461497022200062886673830597826753925071160308906821032118119339812814507157048233161867726224415084948348521828014692569999353838017913058403156604092232285368466813360440965277850110054385877246922409540236008803429786851533346477693046426097794033994769231354709274059288575019744575692003333898104463600515291088015198492433208699161784324759454601255408801406118613051401240914004173968359100830711486257924797588139746480640269674488477636875463667744600084294477694730275610452057596873888891204584227175862871557276014089346587296228533986364933850564346079359587967745143993174531588849386867720142283689677542233626014127298505151284786606545139487871304504309288588964057988759977066405742522851563920351042340012782997533202853088441601196117831746911691803001371808983650577848602160009235314584653187626270520443779819943613581246559530533978992625130648773749104906140923131214917745436730670486066365413739711789038775404510480511053977703912622199015746694140609919312660477054872045841671221936015199288865774742719021280261345280708545333298385452249230526649084042305994318755199099183241832273947053436465234692974523164180989567980276588188167013099124017768080470050389539014276152995160067949558540171763871990852615191063146390520098611443180766168629349611217720697529178529167831861287036583352578891309470170814865719967642306300683580383536181877444861399929844018861174850468729098618033702462707176105924435223535485889398650533975639361668824677081947961414389880734101531223843849369129242547925309001784534544338029639029754171052100742659290971465449343575121028663232184130931136055215650498512807196379448555367317859731422089653021056069794295629892273861831411063840946339638037997039141746752515329378290271416166000615522376396964090281333112376925701133779857799047343017537867332619307661876077031387871322863659731901627511774577929566318616191002441584787420318522290665173625767528580730512309515308384890655854526421502151996923162824232758254937554911850848340545909693025868711996243213435163836607865043657436483829251800919345723371547456644178864753007554247833457449841744528866529593097336663074420815333349609180778572422721013783296893108771644951005240293265289429251749907161465040777496034948297129290220663183924261334751499286066037455756970265245978887893987810427203585079613726644596139774858409352471442200072082922956521887557141414243879779431918202804109311120682902361200724336262873865390582953365208771588552230130179507090379927957050197955063622534963115421711443674736787040712556996479780289328419463451561494774865496395863489496171855262383547984272082488980353330663722145674832393045210924595301873952335684292547777428004535874092952897328537074052500214650352233414267738111262988371207709306720502288291197842711852892576088629049908215530799833434080111409808460661097802537829049773601829258787809334028771247368338021568178378419480186818926020790918364601718648583569483025796458708048130780935395613746818044351467700291578411001341797328479526266890158313482064685961391668315224244982590542181325107632582506298033640805778134395373485854848309210765184922506851889418204266471355231052988221335923567344279972236136835049117528330593385874272572680493738455252141326451978861303718388129709890427393734389692270987772428356400001483585583606868490045950510162901347859341493550933130333846593173016018502720301763664127928378966900651621737867320093722884892432946127084896349771182098331498875517061813409600923820133298290356538545557779735154144418769784954075877531317763279462109581765682523750566850373680642631338918007977632699370807558451778757079255218128885931910414419599444526602325228059698532642775853627245088441013863912699421395264033723853934844279973804409116000489042181219206857001269687190854265116487849268659992821508840978629266891124683598046758124940202659010208355109266842548762395831804873180049702798924132525491766201719458637730466383614744295900185254862586053474383892990684041223022521996284892067124978525604298303321263003116200279005201877035724691741116701510964350437907435865684822520531570056039126116468286703312409304551147035890426328315031563446657616158543448257280970935176167621075936024583263980493817725952081080509878963470642518971720837864817147333915373387700334549438743427086014396300075899086378827362699292621994891872923691980442674581014774568980120468805084482820817853200451720332912606423854456305610972843220398489189580851750873711004474133008608001092365555441406906692621419749529029218310900529118402531084790807463503167866765843341342803950774906759790870690991112684425186134116482414639842441214568366200576692087466186938263876703250880203381577783939326216937438917763205062397050199366270818358600751619809271889638468429203704678837111246166508664949971583751915697343414459805368086817554361870542992873463188908750902941895626197524349407208003694464247445351672134984377904743985042032879041623426409274836897623762083662223101922674088030447966456243470767708165055102187730543459387688571690751878308442088784552027354405281620517070919390142261240522003835312189617336542935943791110377988452498737093791362818898386047165703252006243738604574742959389283230358225665254731972045776049244284239312774631944916539366443990327504325554262141088390940465851000454706968516379081099248813617051219042810844297764202037385575732624830734296865843420328959104359741154964370902394399880710171937066095825182442000568287255998811944287271114705845877420881359181439034496439372175949370122275020507794722102056192065973728341919091997236205700606925885446515046862720133751398914092278324062751497722610008362659708529377574326697834875790596013991838237214465764302990492029290337038111213115783419310695380737027379443197167208942609786750660279632252990561630779747175521606884284624485455980874788017086478161133669002728997147831305691921881368643489635588664466136648646281405972192773659942470331650944227402523301226066717979299549087742378311635425990263854087203208365230197501381959556304146481156778203915352482737777425680010018348527050143261649056091022005599310042510298907030845348063248607076210070665753090804857903175280396285774063386280700694483900270697839164385912679279048112897628072328671541338913897918358414182010027485241264020623096699006494889837583225721203509895600404023409168479034782471856942083815412345919548929884596689773650171192756057868929918539829770149785654995910843222853370474422962038651713036296068771661397380204752099180888586980339201807565389433179485388927877550999283612220000350880021315721073567392144609882343941741783918582800890103903911338843936215709968839818144492122622983124935443770777838661152768684269297255682400232369997292061362761382807119359009945533705194148260003972037089219740155839663612514883712036332813522016591960056324164136477129196106830447834005364600592417473331765220345757374220830924951964830884788098164601779334952318883476781596487388453464599383950905390160642461658277276589272420626248255940599277365445195993777531116264050679235964348428201402222830139170613457397691214092852375935838140516373282088474289479503608060721772259551848172844320634649422820798016309097873219141091551783708836959673496290195851096812521178889478511882322456968501059463769213036551750939032647109816128173588865521689571204812789891956904512566646678131741881112204253317329012449771816145527828643377368188804715377258197315587999624100817842141669024750955917601360484062930305032111403019026697564437294775479131329598504259267777333030166837124739069727777514713165557330911193919016905231350680901141467778764259702700333194509192041240774621227201308697887626227460616489317565061073247917039499324703553348974139968000182785813577461828181481136122474231519915407421105185514147966737069786629136090552789050662669368139032647776754058108408685819999901987597121606222286137533069527506598592469469869363427776836089606906266414333933551493445883754268672999691754871334216691382138132648320345262939651243294982708022350397182437905113196901073383467457598357448150274803407505601408186664947028041709243144894406406695157230714753734450364866189475612981712318929594643889679572768955114149573118649960868707432574265076750056056613381521166147664347936024616585726176240486080257288159092948655137171517280444712309625751919487222315400629279335118889839733359397440044939331784322896812377246794544290470715959422938072413249325244445580749626034583143225200509194391807754688283122187939100679404215068207007161675770117620071588111284339050566084678518387375246501954551587506259089221852980140703088223688931491074369727786819845353321204470406714240892057858137997631763092465908506878820477069497105521377275741381998465695909488779372174267812266312503776028260542010085139339026026245694471376944244941851062502009186079598614769308742395233145344065994578407573421045521742590541178765252165194755299143944161611871266470659745463742846816005081319158011645117053512013894949744117358169905498647418874161611395783959216064779508575817617616162700232182512386255405919592277973477957166972972812958071141569251363897498954024511888711780495398793388013678262125442067620437155042989591774446868010969085194355298343887555504150286643242606677947185802187305573036210969236332495734454048193106001649255403670723760037611750167025658700499278919991275871937022521709536591398819559598578643395927502988482423528320946684056619562741922764623253395032603788508932845209270488573547909860300745022316740848335701908366907038532343962962810901483701346660491781694841200337244821814705253626708777302326750943052803158332958470795994760705476390701781476610034251824625759054309439891954978202507787777235526851452302238861313162913394776143555136895316198632242918867913285671950359581312290305629371519354051741425706220052501230721916350325003969879211915073797277353104447780804237193100015405241260787658140849434019434074463587386177978663719405148564167440673117270953430982759607472642597339793849134140746432421361679825786695312224821426783333250419932622773994905031589365492340319125854556765399125365247552108878324510512350176540759804106033674949086207944018479548748810238577705420860340606188680821077988575625900124897959878912588470068894790712629383061491194552395567708137322459261919547061078219276079472559247177615401940176133783340470563180454628932090600745274906062011246332205611042194401168402970007855424877614112080298612300099509796902500416809271073546534939159085092667016665315315494601692734675162761846113307949147245583757795710080994462132880556051996984704671315154390854254095337612063642456050946232937093562997539222746232090323573821436178985519470293523804732139265235691952052145692356424356490457701891300581398234584586009959248934385700689605540389618176313199149274748282035736624732328742170818684870043203917971293767665241142426641679526514767978572588458571689679699926304123772793525936788986560849900468208669573452094379662869868824942348636418366920937590121298485341441226702251446452697505091820144458972455430928134841550990897564869907675176640920024681436384502197290476990208315520198551110769948627584803150765803995033300367418796330982465800465425588999668239412043227540532667103857972715116345835501656474778389141406724032429108631708768677414329985936086764700575754783252736904874050300687622573172914208305430668700384451663135454535030795171849448877732017263437175307983135553354793276731194608280976619364624757792957817166792111812163386023052140081486191477213705404393857548433497243267256114057327425100521147027122738247014738133236975529110828007769492696328866702319726259013222443631185967688445373472121868440521762880325091984281585962448451041993323474023839776041797956758573356830554912656956030907074503476409671528090560802840422536738551504602170778068693802305987762089387795183438693962519060029995385096685488279509152273481601665394407801677037976776264390373175937684205926382848997042959317164270623015160816089691433853706499104206355853666898926683248329676139341815866186616225824432486109110558374775373206815937804489693404015440407941534017102799191124012671050863439812231066887798655487866010338137213541940367881636401408373551874320241394480008105366786619008708467957428975456048697883957538293854801345358914283944656303095296998971342683849383008697725792326643601077569830754788470391706159743544609123563956361657739264887769207153591344791214616373480390247483281894800723783706686681249264029368300577037260835642485508129117977835339883984357906662634750984622410762157622479915484201587078111368804587503954410150223875784288090298349007490456206537242598536103700480349956692054705490099228585050383228657202336809146532142637257077004250899796009371298375770084823307037445259444616575330294915893220648112634949254790300010528269411943903359114537512592109151477525681276172619774535980123758574873861860312584943492756162899591995214442682039680530810893330465444044938939205048990842679329111998099472059241567200063767416643847439819478587853966067677999339430519482359488876122857966912896716468873103278782439471722761551855601816780370204168732915535095910345646797946495717810810946873613042745721128296229635936625501229481962212235212995776958641503467151779609087860141676692147332400376070737174952789527339923460056959365521569854571064307575281883322813269613723864029993923910629655293096196984855617383003795184797580827270605615024583987643886334845660050505512207576322531037435068935115394859891865196487389678777179744514827176275636305090017687610185539969590679450655065736065849015829291758619189274864019213240651523305134872906186633818225061306658180491626604794930481564006758163940398979450347373268642863650369930729718735381341415578395954162415943461679804007324305489774698056514559566721118135919081434925636952674723518400548725673452753572801127810267370848388366901540320622500090785828250884495478760335738781803413178168105498777759042448425264705910999446483608146147533205728758256402901665891642563766492770888453892076210165150567277149508980283429686662366252798257949192167928673646628279643727179648955499949494658475532099462526873191935639614161221651863370579363527100834685704023661199957371570278453565749062405070810340463334791921489834908844916496290616994480533804050498288978207195757186727794362715183144327720979937924457952060147265599950466805352567108163325214614352371872744983304094221650169913083327317322904246522295285625256751313795057131356196398302454273502167910019761406601232695816123513918576371536999292529785441733424907979686588800603401089013456575569361018158027021779274790063737945728500723681879248191232631055632631572200988387024602046290589447641497735046557351797680269031627825168603303065311227339698066299275534619226362782425005917235723726612677587666491452687512807915579985842983476255655655184436944455581370748255735362067889977196669902491520852087697022437717809468089462890304535030612526981368349879958453187349657053054460006913861243950526444430545497549392577555543749607858670076463759115727601671110299378394537688630280821931587871721985330633179462698850053648418561227939306375889903569665711477193052589415470693017321409064759771357523592427651331003753083419767907621079168630913921449712123847334653773079091281072332971055592626963940266926634837869166490713815158973013670400658763524833353107600968899042232300368120330256599425225918439612759965533441970159187520396552248530318244960650971903257634855639576568611718868577558310741334225992654314030151749970453230759970155929292031452163941079091200524345256714382973923498725403855905840657653943362850459895637317121767133209739083411538134576149957935581036855708109795609464975418105920969906577041987803232720811878861045440095903464487327927411144801002362367918870273741954693586122921726276759198941069423852401579969224877597926503062105440662928378326587814680827687202160789820794464763459282924506203618944076935798125107529212564771009935523453058651604633120880891032151219481337753664829274011986605363115535432626292471091893115199406363727517462516692147019014491666185585493332826837483203738833961895144245118198073615077812656650667712008096376187239455815154491035519571323315639920679315618432972080135376326022767908419943098347923370798869767916331588039976732078825231179506686134154290128569626342947581618229483237863489545690072756162518695345817057893273383626735698135404387721355567533187258379237828820714290603486368910497133426252083820347852788659632731117749768398396456899213001293572433904916635666625263170668467044311595744003414518687941959647988289113353811144221086744670790240882464936346665245184380374569120593608342010269507518520546673240823906852884500393361407010620264590454516824793396915215093236972827298200310728421982000145819530972311986256726330729725117063759539919415170584552994330774164294267901254880287392415360826356312821845207567586483765611103832718968218862721282005288690957593312931393709270813972732426201575699254464868776280971494891678108074649934743301355123896101758832324975101872248946220289421257218425560381562171762568983776406735964989821157050460087981657827593061620825336900456576281138258046630367982920808760230431939351511851743124423817883625262751441840822464030966070694307270451662406675205572186637706413384659333209266640877369009870125447818031425790086155744063860237308838035283786515529013849791031534154333227643554510052431701735684761540379814723702000735388276220334692669988614273327184063521989369393196034874414220137345796213777614168756662944915302012975903645836573872775859747694364841677216823736738168111457610777563445067238272791169193714516583279047042389601254310777904140766543404337348691536880715468012383494402262695927118301333656052093195976669184398886974795607617165401091637448173908650968275317001419602831900711070881572211088362640069484583263845855476143785481806584482646956209017127424305165770297028858284224869475094667625803493814055410804377581255929328587345498705170669373050753158162943988786447634467397866407996074196590730488157860375807899896806668510329984539948978798541901952244282284272573574911245919824836867357134673536322475390798088955335369811692449976715277551959208329662016295551325893079269201548054925808467782672523561316216254819366766623065756863342788577970608097679609359327946015941610808756983745850477237995227056879730438249652235669877098402005247151635188326699804938591097591324580983017868073877287940735739531690564437741187472395594030554377881499164081712013068081454690689909217328244419549247351880217305990321029623484793869622862576867990639095094735981071089744353542609317549096983322393291272446298727124113619587322524358806015899711207185469105787240766561586547752368973744452953481454177743421041950353557417950303066869286841800398497194538038291300713580150998535474961674988553608261994416740240193616013616344788769090977855528094514017236011529545194591685222745314569668450116318202201280552676611284762384942249425816397606633727052047853596727466040049614340225990674247209850046117175413939077060504225228518722910373224319551785311245824884067037321848076905825900983637657359572013179366705495897670552659555983345265985177350202604509413318412672121031355227503750842008181172367002345687918507795033628595822464716624365005548184315036589286459584339055950540126683049767834576972148390822270952517720995372734878204355969009412220058191854932659315497819861013741448163863288687838851907236415144814084237043624703808670048719134103590131977487616989175626157938081679380000902270394881862316606288254836408594666186876548688560751766216767941839557540385537047148249407292828724490938876424547618984646480080489499584625723268597486155868209341714327354640962592343172617353997875979380512821087922201135033500484707298349190756501043896061083400489151918411628490130384907243185640998182245501741441170032299844078165649263673271713847817485643364105435282782916096534924624919470890205749588123090782031256217980618537057489988537196963618246226826301272378486915306585036384699554309848671245174250304592945231689629047871782252006114532001220671565593245500400596212304637511074274784134145349721068966851051250211862837717681578563700476402515961967737438651229757811290573028456557576824814572643036724654298748971537686405854887394649033004666987685367639916816165018964896108233396352106809647467841101573080042300744297153919374872107750592310601692230581442051907840739407620447661778436348364942560974242660993531587512061347269775348799831389107640304142729816336585386834877463644208128621083028274539617190865193140829539786276537788574915461321029389597176755254107798507267334398554837009196855032650112904688725032666796382686468616116773865373491964282625303978379025616567825730736891745694966206853005596122348712521363379448114933396566737131809811185495703611470292269765981094293932739181798172850841825952292070650391347925914462533527567936242206080809782997048449436200098482499497670509395028519499269935733214200942892512245688811400335717578817191187906941846184439401534180154377655932868050162686425284830367328731596847294996653286034330573863023644778547884922307478188213542381517691428745077088579289143614087591709438017628131298847417092567987964852396412720094017062805212211169481113100661806798794244139448958280930290828705046183951833112694034749069990437672159322246144619536602253811929966930024090053201135774483508478937281941169216872343687125237756943215295350913320630709281514907976477565105806052358024698235404235856520385154166243608668401829556838562253850042910376019664339812626178244113901035731925636317040123615579648184508433492214304326520922458952681669674450780519980634410810901848499064836218430420931334944330376864452488003813312859822722624555350992095821706557582094579781050405841594568751810811326981617489226494970130102093372173047547505875913801045044501278003898310705102726720112242784441720755896950910024056578294588490474361325251780424276246629356164495585327155358066343223533105201170381312021768564960985080191322804367157570876506450996413419839916659609390593815585844618420216990166907008438860326200709974908455546969399412228283167785446507910227752557807687234916678646605830458439188525145040112111202652486792384852122445486722738025789586536460829026644067580398055393419763204420422715853988067821401121791036066274869195856844476528562772961630033919773680873430608267343618249801020291778028312421381565133768828834710597383057586927852367868934835289067310010561941340434783011564333948905111479704928924926671520908309103969421521967234982040473828622746384683477432236181856153498173414473439797041828332928839913589913434899577654553337908886022610186514735314729592613663947541455202817166127005643525922556898683019219712587721519920512713604238232842591153119719894721151105698422526590739004843720981888407909938412164949254386399778812617752289979871262702108051264215394492639604010054255022123128384234248437569053376919647736242519791177410020579586833026972268110191156863218238650597064506638615064044019598846399093213424030072309440478580954732376124811754391811000057900006535424502600473229487479178290752647246189488590177966219904695303801310671541580682961638172335061441857910405623791393152794201648950507531702006883339829690460899144261827594144375339715209575328032397345366453277730684815669882015110440914312773431221697789724431091745752523565024736614752390489340876670795194473194124964101404308443431780489535809587932593056864216661736864593943355560094335770694162086543116965493962361005920797400676353003826671285723894266418447736755523288923578195975150804780410535300241615878530838326956118318835461419630631760026450785061404173853114999694838041948339301426893427119720647134457637397061702394351864320032393962030723679057634129856697237852167035512087469517176203660805876563652434643894292665341498751501074132254613654313156973018604162086991494523184980338913202563051490567384748222878085132911145144808099893253527093653652419060046738838226325918822616115415719255496564797414602607941129479865946092653658055210320260967354263905428058200644904484799053435209869572993229318006015406556051194599745241990293659926939701982896562991434668741558500557566198609881369313545796179441553742090922628010317413339113817981311849126888875578337813435149663558132240217213560204168655622513825454099471877941185895793919183587922113281726595527653215359931251115107104281083330392488061035178177233391333091612805136570922670593630497594997346582748038166764885352472125679486938609121411694189268838339392459008887826292056611449381197843149737898461505066265936839020175941081623336857436538769611844995475810939282890784777748741689662131188114370876187095890225368177730277593904233639545490206251869175665651987915161823869987390490098660944976509097788805163234221193814334741684197873583263614954128356789537931626937964681847875521965020203174747646476132753067301309248693571337233626375100607485047742149181814232376182022470887517461049182015676071260727238097095266571623850001614197419118438184704555467123416400460268539738137490704624228826573107316836601748824258986496245118863138608284082290092041056481645340933960679295657339090626581574470749068175848851721970803222456585477443687761490767085994299610057479649740006617693710699335809267242796269672181441343925330677529513722533639969505492985048064354411801256174937042699649398549027881016927452348904281123296978489744141779730198420495996142956068503488007909942857102361958053719167602924771984272233236298162723772884918561829848895420760897005244959456022058762559491097905821947322340616486554031292055324293076649034256781090622919212337248551561285409659824738102394216818317453669825747477270143814770507812486910556165019016793991774385844716656306175758589389164902854168025121965164680113021314621371926933866131293238081465136540683966904859572079381578575070450172672315181702331719503198887867279688557312101993968003815123255639564731144101341047759593538166756525109593544606829747431796239493610943518070015712731690750035913295393935099124472152496594693044801928656840464278833814663672947608883214355288274262117558965280022287138273454870289099484165548589835296841601665532317313699107153324427364450615596821898003320311068900182070600190801567102175240380533995872029002878890915556389475585321561161999806462356155829516775622886762209989298480681512110407634027139083973176825727463778383999480748124435869822592693141979423236103040859916835763433622236905031268515173156613397182903293134288305629750017909525603896628082222009644229580729302112686239059696338236325447567916181443355750763873361074461746142145013928594644668522314014007411163143389386387511984014421525601800180215942473562075983527332298605753840912213313903757671951200845489808830452694445165189585767484319276828250240846415682335607639596269365759175510697062543485689316300696754736658321618773894194024000879442721754351301212609942838932100480848628939430975876679145352048014789337999892657250517542517315093048345296131908198927019574389649317101336696732802093223437692951935827266683878329215315838923118664092183412849614355594235023620099244576600076190082434462902641479211404148425726344976724734398244515158197294059086495180514628171792393789833743840756960242122648980388916435813708520891703769598202465858338473444061199147824929926664640630564749382413354886909327142868524227952424321919919748703748826480931113066166388003310637675714663878165703609017902960128899739059668701142210543707290982404934802949091613635848118984299888719205227205219374104818871084700492206131606394605912245401503193837401127394519416993574759457587585932361575433898964683912946655575241077950717779575070590805373855254126548286266634084846770968079926624451695949504744324573028190994511368853232231601357230664391357092938762799847316237528937448593986562169767330638166633854828571056065247044603511323330309744501505272445877926038497232985923532998325631609152286859108176554820112512835282476614953503535109308338699819859409550815363402342248130060300881831133305435338014038558225585282580038056969831601353465022116049768150837895190373204883436364554979755225395795960564744332389243436677720752815980907848636303640478035182473589383401562502909289378094901468613898249442841452387255306143322837141043865722057465768861898953132358752441617427014330186510811480748862889389375094909363202035482407694036596392690349967101419125645235129971395514532331462322368738737719173903879160693821329047925155121096034511083517829351092021585494752340059738623328934466504136095553555892691318055344001223655939196839385437115200301685928878786933189939865270330554033734576946308551185109687237107261854813780918682249309780191895576903180834548267212943084674998040709912253319854742038469868738066804342534765826105527222992150540623901961435092948323515611484284203156375423381758349752840362528624397037474862933944849486770691016339201849061553526270410238449801345242030405506251858906696684405556497374991247555302344880027841344950653673167587668692100018593486239053648656260705650558080950901873464569578686876025124256393867710518234066748154521864908765131043891593635394490607504358919776286545082158735626156577217074150097301719456166658850177919948446407149096980041181868402037096022678409451668234419821563573859829077106342580077724375795916099209330954516403230495028635388702100418004452547073045006200585870661627685784600923504179345229155274334316003764359504595071605953041330574418431824671446888160112573066987962626616499059436261954379435448316828053993856802432025876045924163211195030106004718142327962443782344320711262172216927621900243938049150039126680297654188543079678367748702479300940907255216621025314137493234391850721690545622685760085714465761371724406373252392219077995165376440075895836500620817937291626284282965216437933600752902421850824869535156250763990951022082816054061844026039138324089881657375330949328163259478618295887431346233899511750520072879820696517534853892783118949354144768929041532900915133408792177215127355762337141594189206014650021387256535928639448358274130174869981794142701432454081953058993701578091806906398485604868876175513593901230006925025742034889615496631091378743592529278406719988282991185176651326297055000274061589162386724881270176689723340889008600741289669720125196784359668496957277048260254163413453711340006008998643281393613835360409085757476925531776836197778661304793107702437500097741385804574808320186089285432784452878941513787383911933948682831381132549881522162588515033552045221550121047289946182342544974054160824303493961710726573533722292229112606090099999954490161610167287635842280753451378401896059368463317183972623123801020375162411837432444799808541240177365863399439011414419194171747291613630665687058415152948241239417985631932610487473681012504335172998765267292547923635797129960079365597401598653215474721863822341154435818755082459725701444842110321914283622601610619351235359135914591907807674667627845502871134183776081483127562312501071368120594106856374492145569219886933103400608391443992172032092624697070015066686194159535563500091043904605592987725284712572282567371953664057090076909259239187369386758938985485307013406909480276664458834130182389999812492232765536157883864011733867046626652655386450661041043238391536563328271691785438579927794046585363124627915084121128741380161945615974059694208303350383780623296193188006683258764756696059675709326348680870559715235060554608628715941398433946918467264501669927820127550090346125900310728413376797959035824003786418864188929278156237811246969610853997759473412396752254156326644853010910478688970159743901569523479952151616805500457628082106918017866251983282571277872718799643446368616661963814279313277859464185357503656132295524008567891511041806958204484723923627025332898649108438859281508540497401297406563091822480528489846322614052184487026691454295775851550457630727035701103925425639218990517391420794344320915611483221789871641549674766186859837222533399306578159035220652112042303082425107210976411584970502720539011829050781500470901187327346554223340797492983000167880715835302615714463291258879873365012749783507939735549285546094322233036343819054258860916107927836806023146376983427686770598149105857225708486623638051967078277841711188584310060543143054063470288198105339002254585327438379303294443272763175370466303598326760799876423565538906341345061525356155487345653626071684809329659209926746449505993013466401671043155893134168683763441331894843230333500021799788744529829765331689390104594536666309363662866556889053645152312925570643198668253015267920969005475456220805889764912756374906292292543392873581056840337701200190124172273035459768112210628075198573125411310575009132652164481197992029253124555604394272270555416748240943718322926979424616565961032686614764279151349410208051291047492205135683644824427434463035746979452220840059723224477337866931328220017391345402536516577068181196964663608724103872473084216632443975109513246674100457691392903036744486745338910352063691321118408878376092175470339949837616680247429480355721781228761344503773497041702378219953279716053255752115028736404446383209457780852887548700258887013796375009106708745762422283861780211757631082959109079861905433794497771579831635981505793929830813162354464980034179992318508726419440084491220233893888096932469752973993626291497556566980787379420688927829285034048648569103093448294025006202873680912595832695886384307638263446887964625389367848547600136122093911387656768740765881722806767174317523563549413503093020859252841401089888887581588550138341811062826208747926252826479968586385727913879097512943145836246983281576241709280989999729773116484383146477356782669628452401673017493704959414119932549761529160619195742335295886958317149945340272357373380502897914038698788853054680646036671479307108620306566555647906744119982223621074378792215476680040170014300227693933420852199127422238140933223092818834210454253400259342791894836069951506666233497611499043302295057089839455649513629468131542540417987157960574356799032101869931437012438490978956419050445502903618873557268028617830015335089902879743359089168726467662145211321588015532231366242062553044823916044799423766803501649114787367545013990087044000222632325458462221567181713063615321928635990028619609832588272916759424398900189824937245598143871404054030087926531543841768176182872777365229080657752241809449143138837681413378671558262570343949254742235751910023091389978875446660639201214893781372175093859440111238717566612134757073091309431436787020494080447869940861789370090033774378678366800530657724303827296310217863757813963526666234504701220929692680054185288102175175632043670006112588079432456721826064334517238245348557728786041373341392944868445765251176117603522227305702316224152589588352789404286739828872937023031917850274590917923384656284371112170691563570956433275204408195149653601135535801938682183517110593197088316137187572307962984432051337855819645100043448773779613000932426830660296391899593466977544795553260917645893508930969301575676617132709735358165036374527894882010190390045342827504526971326717354311371245742860412388745355486393228409770011292600890248537193399662297103796283324677707407512345789743088703921404584994895315581407914874167341982219874314154555169887589343250428425898762481903020026888377437376496913982531641326165294036235121533153928694925286129740925301880377697906509835170678745037696621166431616477859725780544331197827495325618019186269373235635947506818052040071434322191696852151282279783554186582955944101489084749640723404047249907295841703172886339949261137696287978617450158632950064714334560810569860786575636020556670317309517334477240456365270466587991244093751165087078992468379065351013738892968626377870537285678117499541837526626150131228255999503532620515409323665777030110633794885095457186475143856756489038615990817438510231302282960040816592905676734243677725604359886477386673297626955391319935247407305548780622885407160146549593365295192350495232581185222592093025994632054995575120911496144162809361883606863760493760515151313425522353721711178686929558903984621887191166516979705622086004519076603449563151286239114525534581762259022164271395884603262408094741029954327568103706840380545970830510990349721639245446352229666144138478664263388621633714609590529418785746258312692010953502039027075508286482088628877968611390935532026869126711270498655507586233005664684404254315050468030855143954319036354279026525539944898566519763520925204204639388368221905701334194715076533599312399039235110459956640900535712467723901639987658431585070146270571628162384794442014541063456939363388258734470920282184730386968782378324471789478125123114288855940970661174700770224617265258913444570750444639477244599417097321809300970843078552695002352460495981429471734650610309374784054768681906643697486079669521315724721234228467915101459158604652699016466640970278672868700838046609302419465173004649348654680875698324796264909959361777558671034981807176416639569705086551110583810692448864805080009870816619029979584608781174621282611718300433794168839728358511506897754328016417571421415105279878478148207603931782145439380535606550720069258777253288196920729432086185097670913084558739652958949810081721033804522892828098589112055138978033666116384490697444450480292455644837645564161339313739778212929429122940495431632941841632330625417106743646819450010351780451429557962506273347348458427847676825641302484398983258490027323059344891620757319895929370497216298767822728678869361797224836680660433952021354365204432169645757069677051934532496958641470951314704033156056439434850966828462773790921683413370060943011397636133778659509968293745211552327886764874021696749888865040199040568241416579716444059405158790171358882734948941391170043785607274856375104057070397925193314953192877665647892360650450279578917178157940968627559054825495510958539750609746024286894009369887457966535235776462516278581070520403702248301603565202435425508682532213978756399461485856005523049261577205154530471214040512325358056973463981931099759743198927144055509136425249216792073737525969951863358394835365358524095755036506541816071947883674351652199595284491848595297499786877535530383737119738784061850915012931977511416851932924025968124054052849822539627022548900281898849327955973315974987654490608876667880243454147265458925561193088459416203505992301878376231568436779284291136361772828813014369165657468872501329694182247831943847885964120511551116493850346279377113983666664819190993176450366441101941519569965004859780095561507345333526860623095259264040500028610721188912430252385860076465753318214084337089241095201994503202014050228148326567227675184075923125068913429152784657552016343495431192172322184643022413779794898848512835994793783089786874022968727762258926700451642696067216931947654080698952026440491104273165707147704912200382412508577180643170364823991854586092756481231060034625599657678411193077182640525642141052822492055314794548173466599666152456803197092009738057506800278521740182844527341624887435144809642416825717779450440030261768893830563872618229937690559330104509116562045847080841491257321114610861549528469367242947700590776278498717677194786506616140681117671133402638922212869063451008526003243708474512179779991440084364417090339267896009921698902998143898269459806754889542063359270075324304950734227879968409042530892687108516081579757939388878376792004010032581103236197919342432687666776576236146792296024784840155185549852028779464904126186543550345394897771899172762864983541431629612573314393722770677995698918187207886504673073736330237078231654055857647617182543867654168023466790741495362241380087454286890462643205426291046691571059296144291412553406594294844960885567166910538700816829233506331013874212684947914077970052617830183424481814336795741438233389738914141160066635003408513798737055333992222773660332984822758582806443474224182063141642537250442070748912457517235007550251329855820745461388959214299111278197618856878043425470916186613370214016246210703200183080352074710831918620648851162899527229628759612029789961190840133337150589718606306391035020847180671492490513883327152393911376935308431359961231697840211684886844287424060277548140834337387637711514418890852427624548523212183656823441734183958854317266762251075429782263685895604259461936893838154482505569659551142624089922301416467969333716089160132474669237431370941898204739321055929679128963151558197229874409134515481429005943634822440367022688736019574740979489349292029557652739945913021853843015440455118674223337793132752934085847970930835847917932027383847006240264312011926822714317769198670686621469335896552400351518471252851587340624440831533955881212903091680476754805214675011403674959937717631013970159023588531045961751092472597910238334026494474258370717365521479519276250046031050349506252613651114694358038308712228249193319539679374537634424250620933111775534140716139476741556394716864191275290549421445148162248773803464890820979093988691625220771996229077254251845922683081768195686836985517390032200680958567878248763937044130012415155040242475690268554362176815159205127754374662949509727211248394780182521270727764249544274225955855935153536839084525970758440800686516152282860641964429298123381773586938578377488729070756621582707399560032247904527921086709613643294780485757773922480712873908143484199752120059059756860637989368773443894454756476883423264610088105765537212834108875039701750133633055102804258854353684680776717091526025038907167406582212619764072050612232882603997785540955875746103200513986665188765837226708570566178720795689364220072065940579489016199043381128470149401084906473526040037192450193575262594363930998853766667119083937808181947828717987653596529320073561267854137332638530596734135238799810876621796518933384787392325368857494460406128985923439962442313483519962965261646421836247383357010015059911364438480228866559191135448230642362124250975179933280683450203646581468351071103563235053948900931464051967042513704689686937718016584988760247927299305148034542798245478000327513109134527442894038648970478448801293377622376004420044250332069496240695606209152391466444006328294303649925189983713726708939902318931068428322714086853255952482605935198080786938577150051933435597497422827545976940273696790624323221670404208532474100257786964662893241184408144587680903631179055394008702791774449641917049858478640680598119500239016248084174052403668833002471616786612968289727174149042682868022247759149249631798957270543345766201313977006444451995676188952188735484025131724317925510846624885623569874869848281065474562993289676033632406945623290081566833045331330026235218771410534006435734568358914064291511744550402543332090235945071967261135944833718191975321777374614240846285028695410965973540528967896025937755997312607332896405795682176090545702927966172087584112830261696892612727961248221753892755939241216832566226337225222200113322630520408145066371407878306008553130221644436031030922983925263422859028867848224097910683577269523041937018713965936732181487922699903161028260025392566040128499891932847274687631005615783616426501183016406437528240170627785655837568570895888186241953729897089891915254424331178109108264042853367321413510254224806740928377452712299067694703707681961906795410551827483873420415646700933108025289561414978865979003111446984442835392987350432738449415384106283031250278921605243760451171111978242993779393075587341527856690966418061986563813186020575070684772397764389815127887096830222596827031142925296430165292282748527103610485881867434983359569229047376186647827098607384428498624890128347142503090545642523147994019826561423436581460003941495617702207154647235962589301870374063611948917100729917186200547705490030197379560936418094154553436903288009089804658170919147532783249588115245951593033470105133198208254586972685277958933355056197432437118908090637264983720717638227582293532304129779177356046958323703298142697142860920668907160189660687352467333616012625198979485103208539681411794066257437821683976837231151556180115238462881972244711162266242040374771820329716045552321198653975683646960052651895076396133709196889240224072627800317052696805294308773707067119702531408501358362325959381314291469313222998408818911119449160712384527927001635575638160278010136656754744509969360115329067404462876657936272978096493529402634357157066570530830467636078819856337584050610825134364290181688266801115034980168685305010013804719227534052821131024799233538637945898200326438180847750919985116947978651374361023004234543643087982843391407572688864168218847558705421351295311624879398988414146062384836071890617159094030402497161609245059488157849578438206240435263378818495272752053103909773070674434936228618837251997057013214915157664951659540349165507462017787129565878396858188064455769193094698094494647467654468637191844843136477615339849409134746236223249901622789734063578832147052104205004399599794030940494600082676051886406053712030379246947360433113170660547296193103166164560497997885754738073531677558691208634153944202555795564867294054999672123217209124881233692138641581167494875817934023541206817508215296366110317638035520947449925534342998496941694040910070255135764118154757798050833891120520178295807339891626303260685243428531599376431761306240853616105762510274511527793749326473421872795518362134432126834722773923482480196316236322429968594217956726011274867558276700274469220130785193315955706294527946229264666091331959342460615483918366397341892792843302702362475847389737342751552430768345940479643190873736340931133232592315074777814163815454070527564967789318445094684699047979412917918366682078084222498457850277324695228565618822849326099010825196412008168971050876361560559923597527033761451133728219657859019605791057155498082638886657985214673263787827889695634079740245676234228632192786191270693357996851966717930976326397918213466103165809889438043587424935395898167171465706678145750503765855883040395351271795093511782448129288956905146604468727999985825860103072869858527293440959937756143743878283291656704489907759661286145371029374819280118158355145633443351426255135056345676131458748051199434219869325798306210532407125447313920167268442761703131052743031787717519108006622821776998260034421951693775671914598825473835844479233733681833401629241524746167795118960631819243714357899412450318158979613056569538501670357352197869874242492419528340277527310421110217750059408058314863811122213706064806720697946837283667874285783904473466264326695720418538411433567066593167303416791964726220451179758816124577647013000673858377822868852073393016617112853767652591876959944741779663126667305732756663794843032639748396216556956811930724884192354286859034424221063794474548133867723679285801343304090425260843811757419382220262772638687195068467638169480513041317207334916994127112416107556328118061879925265346953085006936094132740119172593376702034800728758934742905458840459492963318595252149540920474621309788784356445601005798229947101792843310866472088660225292004823452857535360298829997932404959929234301798116530504481567677437071228817845889632349750794794400765028505170946334391706876516272558947646127341210061335171226907616890892905937032277278135803435101547872921180561061941474567550919475958853653227514881853889129054227587957751529295720940587559085626926231176183853552170156649245943675564670118676992664582559447975231098294871926649775497534407336436597767070038969043208018278986483403094538396248434794254564904365089861978384537612820726012768392798091422231220284431178207237761877551939427949755982120596811774532495220008587135382591321550782800862749842186311199514623242052790922563819112666071964187888515914673225291613020747864680188022737561341356015112086535837448053176353385635920458314128273082885363691196750773539563620513164275583565933671351174686946487064227006649448527210479023573431442914240289695354178627769239619817295267206820100922436153944321295533981339118160229218024286343766097310186849793563565613447000061607546237641546846750333633332688078476745103866731048107932717888021852733469230124947469324402553603300982350100188739394561202478607679820951657463767949085903664707927695223443696677700363498828630865090467567495274280336276077513299916560390879247520791793449408416637632284194469959952588008110911397315171383850661504054524344063459207014771842791747660297856036019209728400008664164238408821563076216150524611776148519998181806237279711891419940383277523638662720354880144816420990389487455496615617933921719537074210373079593258596333106902108964368556621668738668445688744650495788713308903490606870853527468960596579894434073754135812059151097748866301156161070140877939583772783690959336162639080498425015862786105975347851730434474264047316851262426215762501406383028953922868620794292764641908520636928937560240223856981881360425589087408295178569413319132347726974652818099622895230471922753340241265165794664834587088219520478709102404906207027920856499682051214736669485553576692256861621864848257850999546774142293314154667576739408010320075726826914123867040498725738101602744643856170909981512119091747688966552233738530180743346340889745886397426123987596305282869822379776510298280474491529625293962559666779536730809106278449711276052932704223648205713343444819831979887640537714578107653972624608284918977319885859979644745353329829139314761497990176110705179498990136516140917205079658407014298522020324315104935213794976377357327372035654846693341646289807519389549124086946533390002509193347852821989781104421507309780289365929795779503521098670282166674075265027684857963088358207906012794032951634766156367685210213090631361713216152538490004866498028700545190345367713922220996299610069590998485576414178988261222753359980720077467418201283903960208130780272223435027346376273520608683487212042006377626823604149340702752577719771863776853822432430559629239374286613434736913551708402713052706986146824152638252116253278460436956453424916552251832543394788477248795175992614275988626046998442253769693043766335231845546476172433424243702952296807864338962630938120892296635523253463489422254126977658868518307411406931781602718745076643168101735790659680738219710045965263201440084735191245402838776584336534850889713004704146539929080648857415176729571176471148233588163775855203911002745736090594309222616778713572196019898876936722118159630096666605752018125923424278827175578987103275616643354316081196520612219765405359803787632248255092282740022234698401742930624377195706736321095403340910347718615982193087717379601922374801842985428159973551464602557240304998642887516790055499288565258248705370918784967320093327752665076614561930756911007291973589042702950012788798626417882129832451523078716448944836154193314993693444398335006443447432774851824215689897041198180604108623567836869015322498428515694555668750950081993275170570191627413602666050825313470465800473452537977207363657547703615363973356535991868499889729940794950589753842443108270530148975973328178018712476335746217628907313917696548908651048269575822933099923426131410249712450533470037100537891400687205847958605072197325498144105510735606830477769134306139873942457469680500383046379547858995716425001230935450993382227533487248163848104905460147568543886556436083429887078930067180093115589923938522862861685901582983134244925558664168567992540845452807225088215346792185217154279450070996861980892393567686201101762449740496888534809632065246834263875249376509476126442705265944527081898217556870973443186645509180491822996444140952877664648061071165680891181737846599156835373746365401250375960831373651480824856497025648131242901496214284006267283236368388664369002069555810302802491840966144751903967211618695676347528491023435322600904460660933417142811094276000441910609371698303113358452006810254773672300994628813897774046645225935249380494381004113943654485815286200327731762933259091312912574607123562496264879123982686365136245554235930652096162072140837176238944721046650911884213330090246259063036460052865404321674648039649701786725334988635868598729747049953617489967085465229816095296045516426467547124770760658175772710447594773296714774292515592218119485919181676611776713941849135625713478934558911679880505913567247185527077788153008858104997449364652686780870145332794531650528179725351670627484344565310666300900968937724347075615846943876453215948602036141059996549579810179233443083409549302478481839849605571022855791180071908619000849691207915755270062246516333717793166817064261229009962789803861246522731172379642822275196846766274591358908465620068510964986888727710576797851228412894844150660967531073744360427541802220258194591089476673178452533639626865003764044203768038623380795024321707022320329399356106416643779196309475479974148949201284817072085750566673372566572548872106025611702603886785554741915892135545048593307604942623280163391071481787331289603122969637330641748731266471574181681130383772250911233611749493857961745213655617461333609561169749947420003380441831122965378047337140490181415298877838074247267012655850112019276908409556186074302157338562813748134484472786147639320529710245976678098297296985790284833052371119690406442015046356507700540062799213688077272207369085993829239582734662762976078082690218039482659953276962541175986620095010047435898232081749486168422727692843083132369412711929330840507607462036311923994458668335769091839635559884518990861262927220762155353264549872456754251284803626102662895508049096788339259375026819784061123428548454187142093546369720631024244613649930443917284764110345294475627593966433659245875104153963634245492049716846107662810352076054468836507172381031375732837852127033003023080826517947644913634252864660681780799717082836742054550266296947795880424295260224556441900895508261366481769500944837887479328164739478906513227051797004982721854868771852647805490173207446425963328111171735462604236952586216902083510176572516894914162137389849079126675025579522652105491681116398758103667784533524439627724768456646858609316315001354495477311953199115362378354175909629027687224121200897434037037302601646700951458994570891705477038352357854026341309439206328223804933366546581389142679191618970264026085220410203336635086045672886975806885843184589983735999843376355882265067580382689949705540463507380150968907633032102248145608657896983098243015979555349272707253841017247553218625111057806967711917604810988160936856930855471755095144488654622553035184362486645909189035508396795332837169117036347947601276429070909616695207030241344391770674027800370546138146080456633270774827142570902654939666270229495037639022591687753202525620879974383987531985051584299436748292655861836289111273656912192910786011809109601534365423010204109926282981478518372241486940000841250369820015707400872904927536556901917725174027465009074901732988017297696475884004748424682505218511693267806788242879449466056406100190737145329432288613671434377518140931745823009962221687000059060364823663047492856753650824086829759300264882423087464401324719727886182916467627929532874608579052046770999903669215804450621462235221513565976916676967485716866195371142155093496542534013818747623936140455540910613726247998991015914139026831075085455864623787903527628524076319709135380429909919407071055130700422626757426054879570050891833324239791315089980546070200707607063346336964829555744860663095813403348718320114764995233316595291850436735969901296145577829347045108851725558127703345616641018928529858402879710467578557519409263625822966702894421771777263619353238114495867785187383554539018650896020891519767901699350179415255231769391687905275252100959200987266580313633451506183597223438409519002886581774521118847745281961470928748338523836704714813057529090121196320272242471756741918665463811513354076541214215566725488790443366949285389539127742473936420273531319281994848913396912855510154160830384249003594916452681051608226834362199837615769137794562023616067341961173586527215825706538585821053578327568847809217103152937861665997552556486087067002485337738923690934375295293563855079763672136070657755948168939591410483337033745564045986441780307818424976806544643948830185805933449707517412494178830303603594872356181941349358625733930319072472438762391221978095792661580078651331058968027469040559767535388866223755243392526153514886071223772309948108475027309549863070693071627543282534821936995448028596758704870343843511750627421791134279733409470599933847822535120740374792458701341187485009845379294049089068498249838260949978637882565557446178687720490075762260370025250132450224568347159410785896359108188469505874499536013105995901484189813963327051483330390359119886511585007081564852173759829377868463870825722857243367671477244984728040999192063644884347591116801339962487669652839633472663433008853393095055275509716685429023255990524030264699305019243360972337549890752138338227450706138464368988772053559900346455643846048371897823501577485103159813199127204984641467119733851656354098060594816634884660785533564788202632361460619809341107008593626320219359139398072938671978736737081016492064264443570357299149137734526016790037276471129676652950406479705708798066882544931736003782648085367142246446199149629006692110259824555410302650148920012027108015354130139471892268055889585498405752095152431517716004766002112504520468183860712341746378264842811147853251512440921544503278336402143766632575899919867346217275905833967766858122183592975079118466432474456212581251495121822500874381079866858673573639597419833142994283117327865698369597788892378249667479081514548921812169183408329597899047797445325289308586973906672063624200391385606771101205952658938211989506159534785247325817367859073210457318999156342299842236361588131926461171289705358152420216898555811282432460613174750809955188642406764031443875471113720309990436617465459952597437712679193333574810652314256442909878378434310479160771920283052219741965323388764817589363260583080633714347528055117006566650802067010125377978583022834776644321971469389122736449172462427771124167907511279124735196372286418737993147912000841413640577109802886860112695967426078590698848025779990559743503878670172906346883339739942951938605972480575144364326258191832988304074384977127359775152996772055916242480276547238122680831264680483445858489339033145513423347980997801169543712304795778162586852637518834517462930054924127140661119250763370915429132172178074468319840099046051009874582576576974706524723766511920517576568930161808338910041440823141328593194976245162935074254959712152401817631471839719121451783829832107254194450688384620102226470104567713039230036971890041487194792096734359825501035662053023765719436529743163509502342241869699017085280360710934574389510770909994723587745392898269513008802744425230556058354812237921726988516115151778676145563323699999300434351236831054862698104816620250217830502429234467606329640286402187609550763512888208980024037251155852367341038791956079878552992231752539862357030707689604615413570752722323750215721067798685519051583235160476909907933705750835863760722566223096464250175913509756184576741401356016062055509350505264301251959228348394319516320496727319589049249220792389452436280730918977610830635780816556888229620563486828917437463110208588866201571288326646792649097356319492776451387621411456547200435088629419021839979104298925212822711333246613861656051824572393287830867429561807472564337771956300706623092132715051434548638774356992200957968590893478226007561781210647528422362123669023260069334393827477744705349447908538332913040419197835102027060582294018748519777304903025692231602753885656279276617235733221890835334315921244104099519507713670253262158904699166399765934378240174184791935809471887770152730887549927720723207778804371701057048242136408904353545624306019626818092398896399629033835926464220315980421405290385996927939091424732987973695495468345848782075814134513657172939930132451383369536449708187339936563426908829222823679902270655430137444164573471219560651315947685299729026655233121011713057601888678786869772773269584712968268841953221458942812286352900746902032537459028652501821469109202702683293822581761337515159570951387351230642169214342506455078299739005541216055570884449544282671047266586739849922416420796807464392009630392362040211211938731826085429457028340522019487420519635338547520448714255388066083015626858089522986802399841921918375470433279097088597808684804704885659654964406718227586625935215658580967127556856966233010677313363951265127035417133331905423161507626206741710235118718823999247291706088667994324528999234182326080070989992642056478117208466775551096982541911175244170011790772060302663440651985735409564986311120743030730388384529364283395002197453875411819934433699348510574110456600617159157962837699039795728676481303162619732791145885916224443457416091901541480124795132076484442114216452728199658597699527075875363367970948483600051198910675882537483430415991762930651599633684715529611657319095918808029794559954645664613271789876356236054246860944478868743866979154657488726379615057489220442670401892070807522096912470050326959178012848173315044508715635319384636980602782614252955758259115902633314281740500341993463492190713231764979797552005775654587971456181937926548947006711234436681812602709381013320470811187926089957888708225571354487010237539456637607539312243382017307210032185293648610831860719877903347950300883868901327946342109731595146881892244299195875790416006452115336184060163004278000172236719952879014130671731604582996208905705470342868445704752707899963431698539769550177243032783577866158030387886460346026168328953102557584136208587299742196812467458313172818945734507221367365286757959801447012554748827537286807451297002512521268093615061846327926483500486419996635907391503012012335011393597386361662092520403654939938810159543884649057324800610602334487412000002626636396753823499856533189316080722690200230632922624287818720301950992933994351625329558374227724392414661285291567495716249224097001802819405530472929199478560497619461453654591551813782992038579142347715835172396797948527046057634497749285153915887647652122064657212034598606975246169855373923942721962083318778942879820446088850936794698282418908449511610112780203407025854669338305322581206288135145076533004212590271734153962561284186469365445852618303031428603640206931406583851824425530549946668411461715625483607092360779901034832931484507993104998058795270268613025993894149296449346331302497017322597173681623380167277553654533693191896060611106345235578702031916020014412236092039681501597642002555043367883264170886488460600900706657053564574769004860815489804986364907850183405224857679126711951659036922403595344842301971339278062372452714226459348322503293364282998540700499417609034942988006722511079934633007784689718347922809164845600041700973769727494749342377255293059793809835605135291012663046504404360210633429625468151346475339634673100938456715864235673555694602779924029054667564930113843803959706723136773341528540269020287869208551045732399252667177689301436993125440062943528115447995565160755242842599407424341718200584207701855925256300818825365632019176962772450253406661999218817613077720559510185913066152617326637267127959699199014503274013466771842319142508391449609815803565157706329029779095030625860083764578615087293067903652347917207163656481908781598673722955517994333416107159096047248327102278389833281439157410008635332657075007860271274854380469191727027341674204927531901811859470441705945552550931883576434874441034475901249381200287718550363036009422835189579878885089678796828906176456616746964809081372992206828474236492516490074461377652200201775041436456985706096750590273131233676873712424161262451265031684909624700096268330001096317653249155692990732370883462371388927900619943043159007955849762898336241363545939058639312832085462460265132552227775370924287289333058010632444619141202024819544803868229934006949444292225492969825881330035238128780123505918671517243116318461983359741592533427465661697741126954649862193046507645585200298714314621090858901307013050155779511547988724852659533516518368579957760393103023751095048024768422790601428111737680371850562109021677839689086957726127123982087237282341993108783206564576314639576845675968534904491721026061487914674182256519624492807056215618674179223069240129696994419132244046753904407322526152573010603506720424886155514987663005293557351131253301228170063186575922092865739305840610899507736850553409561908651591632149255185730072783646793998817690423661688884698451970848394997475386652926753329463113122965155825568864929984364378858513632526542530790500111269470219994738405216750099207498155706507819782408582203744874752823260830942381630789932743713893647485904207766655913652681587260510456676157118528400827407383678576622114193642499007909845992041464890139536166774697654905013681568072423770927814209060871988561356765011265158437842010796690487909261821076813903184533685224429587145992465029848316273433724306120324948358843403386590276642551070242755678096302514071846060575994151735370887046067226248680212259423797131190395779605306549499765814277404155642411749392363516290499939956549287587472163424758259729281620318822829025415202196074875289866022855865736288240072488920603623032465086826870201586111444128697073391912805160974946086245933393521423405093118696803947423177870237216997315812806968773984915668327722170121797494944780873088950040253850646370731596355101200911353430959943513395530347328903649338321786321836521788448251729627629953393374272864505367950107936215285908121295645365794594122576311872170451673618360491262349308255811427685616373947065221339370697239977614314722784970325572599406791405387467192948749599052685340709379563895624865126382320890812773576805068058269313317748010218378372097448810660138850060874344609025570987922462903325334154995093061169505068641684816583348635838793343590106413291128163375919894733600806091290069463169355954932824880484478135441696025690097691965103164256793674532692536245159410369174854415328178192630737781025434915603558322926050698961911083948985164467229202749735437041334290005111391380927834697917798344621599688464483418900258994656540994201366038447422820523786043101428459535824244382869659816560437224085899601213307231356818573418530716910992491485160356786863641669475399413414572970712891075053912841017218051678286066170259063100657848138783689780081800071473448987285576107624318776686402271043864400145116626423613013774568629826154343543502647156171012478316271670230712952249776635865501008263220452829841666569554795074977397628330293298112853663935015806603701221833013022422071747515969908471099770794887753928816468609755797387147823206769934396965439173757926995127649349094829989601723272942878329846631931205105558532735903468031328255910528068541142142394834505203470081203611430811000136532834638243037339514784537913395912768765784389419892808171700135289147893694527758203732622659065875286226925235196754976259695014630703910088963449757351714643538665246360147306974672505930267202110953173225986234095385352055850340283740986002304816255680077138737007496285573297725793403586061106637375717611260492748834778411133118502865732916055728457987850015211507086387988456584267583382383031573496020331071366771332229039367648931971668329961818929860104372166749291910358648040622254093225884787311256285312443341302892229870031596811636114559486476029733643419311847187868461842878404710534273729982443580942969723033010460911219285439723121311053548901705197741581079621762754499085359147109963242346793469347046294945095153565972156739772031511005730644254003322633824681938195604037498834984311010252879809237087460392169579098275145225305890946243169866892444602144830755071280118544448180031622812297246937209168974530498339965854654573452974953510787269101674324947152584656801255145084064237105445484352244236562292174109907065581166956982880832141100168628808659975083710275545962687357078799044724907861271305140032871095480646688394900536390752578118192189403844280689180751215181099667899072679742913092569338583946889830194576336891116784167033204800380664388833561210585058292956910925553875532884298796497966261683403003416588939581466551057509419890999180692860245009779146189279565859288916235518557044906938071897622488008935096520335763831465132709399992935809956439815125529171028147507428980572791172130469488274446541234942181969706773871241944156556747226185718852630319995672487857964971497391001959927099747286448519857725371771962976169800001117986614372248154120297712581236120789687530677191889940917852567152607064008848763602963954116021412976954171999217845875724451409823316499747046386277928808057616978554041975395990968232827662104614601409157610144206277483717795074837391708201101991011032169913588639812108933807891221818140526124519244532161443726367366350921480452498138189000240183495681332905692481820392929183791634623887921204522980440946945782257390410497198097587703829228178188204616815399374226269173533317818720734075071248506135173473000786772155033138039645104502561035352988618986244320346473105039347888941415037587851924114976439736651657071533064067039853495925008227034889844994868096224313298372264686141565946913988639884677656940458510192238015310009181099052839569844466652941312569879142820243511320166627339664647105753651805704371434199306051342932546347703808633638304283547638898418471196661591664885028797755964480307278737035339524179663431029934334698105748035834198549675679030917013205585325101064035676787267187422541038811128301288155481891999123281206395237111645689445649693349115919460170318902572231527829967146718268600639781259760983022631020733054545943880613741983839578119316802145579199293066069493458812005693141038036454145630078676071553240309131386985226352777564923632436131064286406297336642028823608184608995565718454308277018182502082852513003126199222876033293307681467315203317096134034564239967218349406289205443646137200789373353653698662449523747801773814397700247523670051482881001008218064550102740417404990034174068524971872417126732692059971140020759608641607237356231258168575186938511196793251523121706144911778163168980986475999104440544010700770790430689405745577114063837742834129663338917497491852208881620152431484798354656250635644905249009426822572468045494652495779269338594263006152941038227694849534418306394398969589604033546955070424336169934364766936495175553452610612156674017230009147326413112143540028663694093436438751966325299051438920064224307789907171193134636999949471447700717699277619428804853217689742328726081873407594552231572302185892446132918678876967801395729826687596485454303396468025976306880441072087281595936586551722328442717451999832930549790186467474938580622030910510075774625986673669418068061062414586488690631186404712835166106443235972743346651341930162323914227377886486515986742284490406238070254029706081502313621659500105933156923152751746604990952521198786426781969957871260539330544415863824597104555995573641004310559727027207164144808507718514328477281681164209466941322080382857715720050184420935946996178085101444096726415804467828292821888186929053660152338230173375805026286116568906443257113535817176847108497864164778759417302271412379219300626210065777250457595521283621856007076875906094826737264522819765741309550248266200019888087554165790947469625724470491687904193903061414127401813628450419134589656122058041162560303587448020907703237345068001962168200016704999755426299296960120979152915887257245164461409400931883387238394359588226428246001187130774829695443128724204079755152765645327567760588802982466036858902221662768760241441750311373445224429916191015654409709255116064887114775802156495542055213868764607744120341373469421673627109891905945899551296572292961819377756967501801906899690984929215741033831928337070794099423459291965570443237457789153998333865907387089296516318008037466043887864168132990949362294654096294066791242268942117455004459740979553039166906675449718748724371647898431960941108937343358571796334050852915260985474284259883340510679730300904066795410648910911300047567330331540684844278657567001984529208839184760905596836973721425835586758947089545694402600100342258435172969579741585284593966129135968420128590804884481691133870514955637422582762580403571421628183847868411247085857814805129622778993213886981591144452606242676918007788582222355619681365656852630276195895172951659046390145589046891711519707895777728122890980176766775034759200069970728344652761366663558378094303516363986777395007530732554085182031870721864624307479260286965236378464578679967268103172960160387532339891892307569727756584564493350344564476120785393477252418910320609379307754782631702591908946071321600091458600428757928559089076931411664386743270641855449674526621871052826313782109661767663671800742557764836427423919261409727314715682707943051888677177168850802565217495333621415407578185771507529760023925230112294256854207308549942178691856872467873521286765878099282874541048738450715546535543457805382976486078759104079621921778038306696481015922160120466089869803435569545287790497918961973329966394690227156695402285762502895571297174581341959129874808508373600713945847798157692525053330413112498353493963178241057268420105734150211780178646152993101343497372389447232349111517673812973652400316079063566612168171501994737519836841096117091959126741943636011018736896371748377674882445320917892381084773143248285996241459950735226725320313167911965255902520967199829783496515641633609305803083195177045629039902632303916017919765140763278040032079058771496233750832139132560379919519347567869307562954289291132674582106281286363269003773642987931289548292338061401806772266772126784986129912993165009086364395872501466542908750864696599559821910111430669992767577814698092898946478300464817131113952916060158128149685040888848342046503061287720701975854060239366745327445080493342421050040617926174589014641846913205220333250218286832130600308251223964744574769701624792886788122696556951979439085508700355024864372686899699269302724394514865815484901325348839954102094067032277160987431563324918363404162356008480681554024065020024567873934300716801286724547815442269520167835049440327055007175083689312561347791533410546361267287676471769267583048075861225146628195885261476735090935177206756465446532966762522421762636722709035101942258644404083184825313124416010234225034758250243581877692943839479311424545738961005971960196888338337795715547597159149089134329112376455684161214076897807918300440910782697437824652864815695453043120032963315939607863479772343129419883891168901713099339110770696401863930359099822159568476552759243086631457295042299616723275292621283571749602521209703690919231798145020714240537980862503241137563920526839101770606437251253401519766875672335227643127376383782687650204244127285571625428768061048408583162231871168910432020275080247886061727333216607921357491140390329415690907532065695574017523928451476318843550761058884619349366350381664129002685493148000592633804168781277835317797761111898912137812793228557099398501408652703791244490217781146852953643806515165775066057737408432691187071920050158223796842180341494720866554089876794841572817307982288503128748338696046465831213608556461809920958856370511936699135088583328992592360751992723134086262429746828293498078476635918074944222712256781843658862256827432791903634726388636735809349558428303732648795721240504685325975907251007119654495606050834458470304374094200183798162889294689633437974444125448891931001781571273150572937803759080423721491641408537261603220706356852398809044376468206175977903187521201037368172230307651733343587869095187078554296447665954739107029922247356985592299300449850263198446994428295444872397108245633715690067719031878284786108915807903973145329536329196661067577028403343826615880497516437811851854226309544663322530252445153082701325314597373779793019964940358253684956045079115364463857436046950932996236444994448089359603696340869142718960695071728057015064871271824570513915605897093464233126197253703012372115126697079007970156610211825047911953059893653313700308966074272638637639286854575107543834431441695196267567086131369947363829538139916207495666973751201883709555963846229188869227947547847644764487076495975798231397258906749993369174581006416222236446868962700428816290412545338641782544770326833789563811491797918036160270121741201231190606397278179649588163699161129431276650436170737184223354486259297023301006779871039649990419457354508359208869149060646515820565053734077021199457471323041072516904077408313276251565505325588098332145611585980072343328537171644092975029194368991826508681368124550060689444707637059837784915233258681942969649248755239043076472250586217115837199379592832295584639910697824957177060107867030278796738875184450790792404956693353353941063468222132964529969742620242240456721133855340578665963909606776461398912799169035833261293591709783831600419908548415915835102160125444133516270547080722326693585345475721247409756296871653547223838102829058625104876671168500820718988907168044488034166176496853188503161569891256929366109051792697841373689484974998563188876620245313505932067788633129971212105465526039515889909486077330834428675498476132156943600892834475098795153056895113427806780663144536369921430681791228273881125750293258583582093901648059625230829392087132432117454948836047055847343809145731512546916615470948785958455784505096639232083796532073144933377128815784735251924365989678257540072449850326414173744959164169058479212186897237286785922895073442134736221334746966220275983858041995821234581862434294233120756477236002100493689557861884294356804421658953146755078300288691307177430537316925989715630945328680268551707162962418701197257359159410116889286824065355405299605560587166849034175386025428143611808108714509660455733879387850806933463835115592446673986362578707140169619733103033606053990392623819084967990857449332694781390074678431848157318724304391255703314464206054966304408981353421413147859720445714245669444830837561742628720741702515781678125839115232166435474341562199100914734317393591239196180505772614025777768533594821869454179272610953791266309324015957886644657176475267625467188322224256542303534445603765187742039606664994976776771519173324389779443820475831327155487704260431030383431233019131023624895532796344117712236193476448041250054536801929741006583655294754670465653567908478676283608000427613118764994711361985969286045252088150683098644061317535414752938658786770325225933374577878030518594536934393193811961682934111356653321726671881329941436890547133260375633288387191441519900306029565972186054376592986779101436791163259612860546371944549371197140206158301329438967205041641638368377951521512575176724104084215341255713395804471552325377299730244470668244911321054767984218152798187020390929411609799893448184363838579607329333592424514383542704801066016563595540130774475956529338828823931579528374502247457017059396757813780918209786741002687200880808814817466570970958290679681384112339450301607433677160901668304123717003715341594613885380307610836444084255799100228225478511543404669159081354075929698528621731049754822955623266766324209462290378421803584546243303423123353026625959044172893219828104969681159665656243987588551061333047846290621820223036022902856412623032614032239204920187255985839952178988611369695826975947963259192137770944897615024812938405479662794820531435151364495078737632635278976566724700154888097603157042324177500103868570420156656585038631460358904833029591688761814995074034362967627615979006834627756460041625976637986224378191321308097245393803224452794257143352477432554795347238319636630412031506050959992062593380508871293070643169193791094174168471186315032554550277146210789126423780647445929177285517148187859491422030346244193461541247538842762948867225399171398256188530484105747077718956861680670889138154817945897884393106546932178871124822989853449035833848816046277003641189932313416835668820561943780400992184874436113069503307131145011843756136433600329961199392194573402641780310909817188485339216998315218122198892284748261252055856410967130457012006986867105317480150695892014397369722644792256728269643577938793007175309800094382570198083970243327823845352181544004302620434899700998342904840938477703911678922538879333882358544137924998014849190419538418329734847387810344866168023624306162995153163105251160064253631533157405332115415905342771673413965397579223773416812987904568706003945810350339433182710569751547826360980550015144528951279833627735742959881582550787996789969908936145643188641344928689497988327181656097906966413173833567301847948183906168405338731594681296957104422919812780417550199443257038982534009090380199002256624054443810296766007801475417789296644804431256047761953955385044401628312518263025708790192607060067932425534841115482569503373247756451719661709130498177071343885587312298134820933545433593089094690464438458497714556984897896485375566210959698876502812806061679265487532993366183997951002283103042746509289704594080934885046054919567955813572691433750053320464804464326277259021918970787807146389081361870781186847487679812078403861816082190100070046317802578797326663983515327379199238037788518273824491866703701393994948923427286436994141683577567590453361077710709910968841321590432040325721534642842143998072014014287961037038211210049324761736838662898540655039877057351804112245724269347910336861156928170542344876896376974865052563948323389103095427018933598220709418645864402824272100275407723551330912984770106586258640443573428503778646308222529577927159875470635955290518486212744013066040499275389573484887972810320222836281494354224107131137931084949510718161230820424934641916317843911840429448976562414511392572493985524926760084035042291248924009747108791566013507922714826136432828222426024942582343108423087301192264426228281769365545357074432082322908574252573645885855646300683151130058919799015339032213729283663466138376224835024293817826719690631289921800065534404378980528448511287013220441396257078569388113205502235385503764550239475911307546429742566515641102210318615134438214101355652293978296260453337551245116140085116084781083662244763612102310952785262836939520384431624748626467000095164259564476684580235364279574839297724580216713046556136398501803283912269548339357496495276141920235611855229779940286231840416682097343331092701721018727329567421153436455412062262068981520194361450046109551292311083173780720050294696059853461438385061978600221713150363580706947212365019747708574524644717220337087925498960665087378663945232956126339577163541200757131834947384724472120365040060755760928541903135555230217906215601333342925020300940319574683205906374973779495187767360711393833505835362976808071273452244293808549063695462624457709843510064522058773344773197319979702744352401384820287907079544395225743140288630710106592235828783037693957548302322750465350720733258391534940732132491887015100841497168633396826958836055731690103264489986841745252309550493078915958123393350511714979123465622987512121890594742255595553317787530572847033653960144940852043377792683803415925828456888267022338129761049374321745410002683937988130549501963414224874760858651602899514724720096927358623626979355862695407254469064069545138301856091865311197940406676591095612192906819889697060053690615867525794540200037872571351812747891490270571998836809439351215387853155509649035137535371896005681736821965416047486103540821198631879489814044742109141722760508218223843776633597046482328309094670221650180837915335075540559139681604659275707212458946386158851482275945572861741698154680388464349358197511406566693634609789366123347613285854652244662891589060305120824785553583261837257704176906973420783310052985322437778273592374739896474480441681518176609375455429209787939715518537645654971292819518870688409337337895150855747517574111198171742532557390891578379839703092506762943675435285049705353505782331465260257696893811134975271339610750519557216527115869807058865060039225636936076573081196094673543863144130412919118599754322594454404593495997248860090547033140329380750748762869654984791729141171426959585932460234972792565388182762779994629308287250801270264458171654249377881705390593498506280372348606667143592907857195264623656034569379332919307089647222377372385021194439479018357056630629814287124157257765345424348450006581418089550691746486646573396172776880017988838225760895054602202318881990389919929869567807880895201136269122637994853296261006934474489716773723674904831194758198869372133144079867211878846301776824154438794933429003168060575319743480084543759180876758963793529008690860235798264559157879439194127847239209536631696938603508936768101497385980369164105986733243949646589388320328188956497993403337046797303981383826965039184340124895909823884629281097973594093499242269986451315447584089696113705485653281864221267145457320150277611841697370441344503715706482026975291099306865700414095972492393268611421692584654224949939736846112836831481420066605368921745773315619862308513814255564229121987988294780592233450809922105339278375384156238755149110096078844361387807445044214133717045325100351239760564426133894548536011554548305848237194628106008969556582590993100012551545948456036709610772624145197438697202715857486325919565387413349982729968716589172292422325185979009865221821566835000694146208358046508506488299231762169925836824603805275876642596393164138348583551456394994038924739315520223727138441995818341864078503232248559682077416835776289464209872103815837655524319785758941030434232163024186959486902687422077575624164722474475171707584209773600894563654004095277251754050191117802789536599332892711854297579703521873731965169306023428806832602407982975041493229914892124670250111474955038805685382782516938458768011275392159889251436852172541183370095561698939264317386430136535135254278010824790101759915791637810364691180753148882869934108973284021139814473160596547509177000944717138372170747408152993064725493941725345717462307285189823346999788753012109176747564419249334843442372094077749836830715682344189997491362510812258251704778166397951865214138552756960797255911730755425940422826579780395277195318809277400185733058580592347902186917383549792967330121846418699562948117842162513949473560931087193597484968079490738996610231768068147552353144032676061853983010577835274148051660970999343966790366942423544447940389362050349422959855122689890467341024153409511778820132254844042068824569185661656088677669008649372076070231394514085508345615547589642884385697190872368830696214239650533805887769852546359638527441229132853316176557568766658990144075051185373990356892628092532102770865248041493342391020633336285341670416821893373040583832876306504100723388780274327638560916982843119474712056534148250111010390344747503855395815412437560614968442092415289958087641767506486728774584297196090020979351826194531012023054588362332319127333362438695549080173392155038876909099791833340550242336831531403351359731199298057743157573442852033160730638164382221770955447191793269286057108978974360119879888281399047191905839102393057902131357987081747652461018023747638343459202428808265772395538554401546652702230524943159829503974496109200619018973776540793739813946153148092279684454846705363539385212635267640021784971763012216134704123481963266848744834602367861248886208873769446386102551135739585073796626447553307478392707254027954955158831200001279801920073734850769218341465334809780662610726734827793137315889080345396945256697957257182374497027062331578471591857715888368885794546375453766872814405873449860790732921954941819333042571106997549372462681904732999636792790704582842604875310599439810397352394833425838784274457897658294447161141426039156020019978802408315793405813922990488825274270837571714128387060743923774419498791188956614860194406264184199772035764180459180977764214951069115406900569473099717941818860955055211625816408948037829306023680319581815737316429668620623732077816832822595523658752464278255713054521973452134758805688411168292165898414342191917197820627688135150626374810022357367892019326179313668551534304735683213495839719783375479120475135553738137947283581693901436143613143340863507510358556801052795733370572659697838279785540194036197781598985825583481426473098591615569610299138136545828932561738023706821944382365950638933946768459535330646259559487625677478164360442397576168190787119500629146437476903322544878264285363737591619370579347479445300127707400130653290237333958707655264303355027375300953992919783845428321114207528652645116121564607939162773122822625811409146582548351594114755553324446522225475130229671079332411175679585903419320296729740419171057472834085256475900817894464728174592501348008554811727397681586062262103184307614272458237404768140820684978226730300795129604437993980222650384647403234371985845500733474419919736607264382897238124918980402915614681795100108219647093502013005189269992411847698163687115455493135293731757755874686233521803022464627094961111171917141891534090861834749258275880018550891790208901652198512582235621016765283516366966630007606493442778616889431903471340201400017116971612414820485296820766685855043403605495045998888276793435780653407949047513308284584076131451098974670972501374936072805808445363896249166038638513097022728322068348906993233321023075025885668047800008059833980347767313808020610642722742880142454802617010057224047075876053068893592516451692163460074288595251469739280623540212880534674146447197704944244554308540952882689560790085993538221123667001176366296208838310319088915884727703358094517223622872795447087673260214166472647693893913161350305938250866191829315796101926282455394300985005660999186627630450543445508602906378503244126134321724221134005057094878653466137076947588073962057300104967594592378388393499656844250042146780336513127749447510143214418433311486986863780689731196129083404974631373172360909733785283149560502846499798384368116101411127826122038536466534196677552452787690468157813655918635395144453166229626699330056409430334538164464188460709945511818996943499810006335457948831148587365689310663430476398640837264033146515786050128635381334885661837121220360224666919250184355632498825953488946549536266848169646807724201985337765701583314212651854923060981632997195510850848399135280590896229326645109677706203089401066161746036785824608538375416024971001559953439810035498951314981815472062502833437997029983143039204015255575291008177190993437822650470490678260075242707880424919659824335068743252194073860768682466890818573106485413088008616668037942353483560548007074578640938274971205357833324773846128408503421149806744288297879802223265844829814222287297717436701482838396601757620084514706360926981516379321241540934979127843978121516295257320440049854707021445465344771381217615434924528731304808498548673675462387514871772367090542289357598591670933807107027357570598935375999583636152418928026518634560496728170750311212872502274332637727351549595710972818207369869092437794954297246147807532268662787951498301707312237904751574133301429763334158580972296065217804188211924985699478100005683547950363819849305939048129868575037515429834928028317694846987124711793600203333096731396146694025885607229097378023675228305161452162044860719628135114054223093853423767928457955732842521261788346375509241853285019114147522645601685515356251544920473364012496694633083911153211177992153912263436378992300038055016981402088271092554489843517111845300938221929323191241398190174955964198013658879184336130037865880932507979147379861072416492873455079625857011321933535740100819304575979404167053376315170848951353622056441288870068490348096655424389883506666963634138611484279271638162546254088593387194229192065895155166104059777984686428300486595098753408247028934696260187179116545994600652519136378894923495350901763670192341665810467487739023824745718949057904097270878040810796414182578562458394164444703741511633334989305724820021594058702461455522550132670333973359631661416187155081708765766425734920083655241330862355913199783971894138935587151617026843246285286594020608664553962239182460126872553989837481757257310587517007072067677202683273632410575132805892498040917562691747210867073567721160070439523156344045842106250488087281954399464582779179260551359815981983675619166021579294088989397024793457655212084938308236706095743967920225628315114686600395074948007284909653551239321603765428756140589941162402518794151387822736670031003044172112682606115119082678473112401171721943036260179565759672356126758919961686108146659722813873556163378684361305988673950511764445388417988492097289020418344731777191279797907351790880563699201337317085664274613789685553687666381923433186664128142472444346648082677198601218921449757885761554077681160734128942113980751060283673444786938379335132698655955801303706582570446038665500283614744002342527214392281691283260556524196060214888582391412677362252042401050135705258614107479321206779539406992578399441061100649639254421992228137254217005688467423885017921654672874612484996573640576054457909564092125715528009288183933313695649404481403808034528807584486280476115380434674654072795093153510295137290961678518461635856390434828661352340115903130830684646433545877834150916130406185933570060411262989079749525195815089621702002339017644986151254061394672500224850077062196140310100750221522586194031026416576730342713190507293367522138519556642569162912433867932902881668413700214626125965235140135145571253168614464041803360306995579121101742921722812664699659614741858155855620217517693007333540011052064565303310192664116549338640616689468728320190879072431043175320292096253997916661092045617291309192062522425401111488662833495564737301495530141776674938018066056448376909019978737495029795191901839790510582691908618750663620237557549620631810304677414407121859246746345542377494112500167756195724567298174182379882755212693981547121197006976122331693139529538724301398088411199516958565040557095933229594440772293895908327651593365167794909470906086122049982762995523341147792238627654184511115784179123907487178812674853459435319446742116984507660794225655629209983351772762657452680788883449557657506879087781246581082003746458339461936244641710263704956928469881639258261982495842658238846236852460777864163684219230217953306834142279881805918523711791068877084082813739913293936801504581238130056387460639188457728524904816792805721485556288570994057541548885565299036141158903495510539583541506212390440940492646208927283512865995612030114747901861309505318274389546507526923169768051107581681437258064729416980759425872199077107398987916301728918253021480041722912325327930547472443992692075919181712311842242064034213254190511302214957433830242746193969818026734863145842290871163415149678138168214877659828596288318942108916778281648083627113099683965304846066612692821099365990863088793351367239969035294256332090742377854996835638750369477915444315969746617957847348607313024308018630755734163798780358996925560153433564643056855995826370210050854913487372836431702250244892787530455824969302363183930800627909465704165046054533384245721624378105154054952467604032530459050629745957400248917967121516004129309497727558335263279332959842116793805080578246440736399857653758945644648756416121339695726527685666309757152726008766237223051708130981122053750406374050068450760795246364196446906334100910914281390551215793182140161331490790682301486683565894089857781551790782837089422738679938733436653890202815617651977044690436799871748794689334331464460926486082382349720485013449306318671483197412506783006308007536693923457593905238197420003325446204426337012686576965392757219232358936587295869384463705679143606111166858302546233762586143992369944197134228837995190309369557106722970711490784509892645097954674611303298209660350239972343423324354150113760082359853279999211275598725122082599151154681054123394794321177908645283619056429882844133783184773726429592519017767534948103285501243059011734243712251121029964126127694324068068771489116038344405364603815565607933147863089344431995933816979426138984354376367158877562367954867530837148639357859669182036739802817062250644226467921668227302337359878649360871158363424592508422075320100587327190108788702495238347472846937119613197471585244518824322891340634354863848269037895570736453535996830139851869520421685129252238183865325629223239732818641198293404090851136746919684016940453928243983421956836226042794633545782567119158969326063505050445376860698798488722165097501010175690845173699913669494244931668368332643423860861046208219707687923169358945459291090989545156576175661241385806968301334277455558284580832525056500838848750195360738846916277822448370417324865350318002852804153403289334083014787211489935134979023837274818724138112428063859447165170976056320513594424041258699915605148340275534299113755308401610020490415926995697486502143787263470624097472502728969721754739552432630876245619598315640861022270343694318136842175417972317189728272807038169699300493222642290509441469332623874633283688170229213198021429338805043685016399481779376834641602597036702398793535787796568643705076555449551991738734778184031577511666171678991070770399743517662542547860154430721459373434199784695780081259872645480903219049970072882808124966908179113306745446772782255803011111597916402438497157694250809163074538222238638314706730701721472218762697251092139818234819743005559346078218821016116079585937054441297260473254712775154285200137545575514343869409179993115249192147956677070488157968941575399837996975432378377482717796542007631071039020616837796006397687207619324070296438095087751041582855001094216616641761214093753339303982959717943500055420112272905667004011675329822059836843658480191263941931570741002878438352275917543851930846901582557387731787527321528686097415540187358274057495975198793577120159858290522724376067705011005409876783776837166255891783733876199471986794241209898635763042936167697891657038559085590610380886845768455158058717287285107938020375574790804141174970265605385258180804627220553984741772082644838171684565463460834603916410653171144172585886096217667701315981512341075177711907393875521657534660821656383221939686545943960207811588439476849108743971612609634310792749358587716277004007701599262843414957200667651760909780873499936673634998105760713595777889852584207053539842729488475867995787151082053876992290436795656397092606703942427400518483725379206866147348559792848990022004168692633649148806555015153899652863859789402113682889950353825725415078871427901937073381981085692346059673053844313003616277746636571493829569278484942354762532224436619926234771776903455510610585497920296998719450403162474910751154108520589463413453866570433084115397531826693917218354301135644899239880142217414507245767139585979255047080943056873056092472335055595799046088488799768447550127960540867764773058626285976102078658693205019594313104383327493461043131555460391584700594900201108284108170776582587604552926731696416232498998900065405935208946764708910860648358946917907590855080939880774912266631289184176473203023804826218905683253632682472993181715159829786816713723818679983803272260924373938961825914015717389490058430960631678421861229490114147651063949992211994027866605832852286246599331063372988648614308978900830399788430321999060117286855201350435192550833181312501046463949578980836868089550535946148090586171492021505191110760079362287651527765160545676482026779397228122854198243057821712264181566892865915814076485985072705968441660143137223872048024174625255086443619115107087920431588312919679459111058573701962435627680359373631305935745470468136224123212549114811346566097883053926493462773001733523576643892340671084222161006089571626891420115970323593817204527630769834957433704813766155839161670768906607249183685100232240828569188393836918394921322941390195238338458514141579058040359118899301554114938848603033487955835312728440562066244546250738302839812601978636409409005054689144766073424637163165951480607101090384097157258355007656315455330038650599543213065455391926972404884256756110990271233573843478430044313697856287315555212855697509150365312778026056006737377536734868377370292145907808109233007463428113201856255180005238415183916080711983113235774926229813676798607300745171968559951800525045946663240146606495065500449365614781886862616548592830409292725211326478440503897260297652881064327041928779131030877519547825695625782308377024041927617350819463899373365247965788483356573590352838966878844276600591722775896799365550734998474714232726237986764865527329803149998013985044038894533087936311192571387610520969720620482514631884750569013949738828237976039262497538634322498816320380131961953798190105018054517430114682315280401745376790342814996512841674528817104827863743502107597520220460171253634362097975640902733475334654019313189861938671057071534158158437168174397081250462955687090797038129343327590436044159966246604069098174600789074323719695918311950957467730694418426951805850836109586601707104245164886895185682278716235280625579207760422544278881637491740089041326282924968931623290806512889927229665588984291950644834693279891580130794260658430421013741463739678272602102730977239571734691642918334060457484510956758965710078657403957009445017033247257546936827458425878395893611062570282528735441425811206954854613939063848242365474520128261326584852796636260718122576950922646779226210212575695281331829548464227096385286450922810208872840359493583375711176010388029184997082587066267317762355086546917308970563739655163380744870949001546198744007522008492880550006457436180261102653134151231112620015588970673136352199129358236969271162347915306344467401373739858821748721742306508887045625091077607983565168913587009404181298898102344917508900638894098194629100832885283072681301055307888332810186358709606406239880677648299107220219263877238511195937921276186418989421843251902768348687009593875914893016656653938957551878493580084284838680972370886127003808526341667675598594849659548381005386357783865612799093953869166921180171393601573086634610528997738293033361404487077680298137125353396955720560035265152919295017112625610089399885359944184360724307994061721314961599736873689159339737065076041981801187384874848391795080745479016132270866941229226499096399941025011519329575646228420448842439785939141184444010916762475409772440812183293747617981007361429559859403861651103671949611972850535461258637346879602219611706104048099840560963971481538744651636953786725054700125126267697353384568577222954547829707069741571920047290002979903370706195585674064514594407448552201124035347988490428920611765408475617133520477447387835530784955519720316203899972162491391089006101416562998284622674812671633050653453005774947450238473117121452325534121903021158013745104191621299060673319179475270034548209964561050859375786562503938412826357842245479137462970886664354787720661990997524072675213967428406039757505314652028359616505197574271339181412983646701217374755246842918275941396228364260270015093518053170673762261308527566675053558602372707527857292024710117588326629473831462624630418256966206622200915024696655434241950607752306108585428210479314267689773711495830875419245975954456016597222812342646694410643122102084406687302345927300274684597315741829405039637238881759828058005317361904757702334274113818193818650681911783259004352236538483867865968319781403368414296291430337726831854703912831436825197264816429140601811865605122041055524318786425316156993786647631548857625114453867167164055752347362905306956200407990110494117147830865576887000359984577779521067146769475645404536690885909432815967525532234217784154544966964139622232657178392572795668806142860277018388039382269861110508075747219970754093047109768247259222340149880926027044612358863079497117876389252602387508824868054584354390073166479437612402806533758514129734930540278755205162374110709921803611933831020772598727014418773215011582373801116156750873647859652534081392553921745010198708757813773547724309230464975287983869171952116031914667818591160137858645127986760647615529798495255210004630112722819922959452107262729804777757510698813627298356336921650206858188310494591932131851115895038462926969220415651269604735265779769043891827922249894981833652265236094691971923241247600813978539795717665654399343569079941175358652055504646151670124410761036111765065382178895561046272107505937779643930699457545746250673835797859693620992666952275518735790641098587711347425943179316539223623211074710932243261533092911903778372874277635723479418744225871477737824406788997357587795885683938852186605592581592272164692862160559469967732063732821362295929026445276074441582006391026585504012022743612341920518158112849680983810308079280761274260467132500360104866829198421155512872845788262096220273161688351935456854088459420597899403929845167610116949063377463014638456315610262793291158801158897901190575464727726695181801434857453396479513550872981945500895160929670184611158098562012851306527187337302810408660458190540176872839870941864081374210094415969988791875614856697929551371595504175285260522217796646702553781062825681401434536850656601435032369520086116525309764140054933672293358476606940004849921686793837511304126954020129409856114625839466487105423349515533166537036449221919013910329951490025912661229780682148099976025320650778960075351239079098233101096852044949930708174165408841403016693550835961624130688138442646570879673673727183217513155280607079338386070901953514311864629206910963061404525450684281728664081345551339021451651574668433679350303806781027132845877547048181903666881557744706997658939990248567758535325908554846778135851720438002793116571814543248785568044793971181786234198399216120634935023660327969664712222173769868411199233409429392921874892289288032402028112274804306379229972286049138137597247773078244084221775678263983524652841028563615011045349986522127593909186557793042221361095654654039829993717447564271876751185363364678615226395424672246632298118112339464085283375425944822742941468620293154986944975900366589689471033696175638512664900169928304320904168665301033261433166186674220885495362139125453078365792495269178187097539707807661922232242987467153385138083544151994426344934181019899654108658475957926566040445076321333072172273996500896423809214391835011271072982002867768633108277167742406251450443537335543308785846728381265753796071982543110829154935240001980356177846302360143320442612720673505440468730725661943251250749865619103935547404910241442904418231839914347351989535005642018988089273371216527215794993002300906919826300673264330218250422651458741079784286313294628244322375854363583325958033943786329505647744957064635053082788190387744959368881880234922659681663251252925974695012130317711551897744169422545127757352439707305312966703181333633200044324053757294620562942191913908099971761460131610724711069034811785743150599927853905158090691979564801035004578373626587080820838133960823301051167211377788940209056264287334528458198926201716248083437943746327514788215511408813511400044363348906961991588330641326733749693618264541722862923299758415605804236866942134097327099662901449530944474415952820100822821348368473924762028621780940636615673322102148526506564113959509628568105029005964670858685170400428501830154184312861481450776697667965542084813737429069625505985171543189977212712649754388386316439746342496999152044933598890366156498719199456530190708803847577421586825853276698362091651035151274855983727530858297740383764109564818317926240002917553601110767233332923827847336480771260695877613645683698258194218926882639972662900052438598684312477870294891017827525750207621415597240717020031434805411984903829076350111680863136064670676707724273023042593217874628511405217546789971026253295098178243291983511792072459046956428967560307759700819180137987452965955578663154935518601201758474602028208804242072362266839087445710559294835458003454658103350395633727534973302653393923082528000976030833787685982072974701636067160154182734916483967745285008178963851348086030682764720801057595663192805431041882850386767756008105375473016062733614356642329322953294278993437232386982360080866094334273042639061441413508864298241062171071557499169819385948318229283779109187514111311715507601008281994809097197869077082351710586942910220490749288669044903741741385679714424680774123125077270532380319145780877310819655480193492162798763048160798313452372853525297630327660010836194082262607962537380616353014117373429801055458720358080021649123802777585936378320912035778932820464477568542585148026912646322621537996646432585249570143062621862898312189020637894317675720025354676628398823037961402721101883863598053376392720945360937608055289505058034848016054975021285608650285278123292311742108704883973416524780875237051557704630933897564616660117126031538452833871849671446412313104744462095011646035252173806718359977270155261794928042621342659172970023065587121410210977532765008360982682407477300992633699597737571837085734463220035131096300401009698702622551087651428949172034631044783529834199856696116227219028938270041839594121363037239853436829215132748540826321524051507379646968260835867401626338041016813922384330808833146819485152440440104929563798552687463454428898142551350966790289956534429699518913891211438529711416807445509194531335331038738468556248547024047791146741930694926062597918636459161954777954068896366802266552112143008109778732296543884640014971969550377413938208577558420477162238167079037234553133148768562783748219224101538283283869984466543945529850973362580332830237187049891386028946733076442788158179171089949368353412344561614785904253071890770762520063851553808196728884988931692353421214370800356579118321989943263823622829332197728809979085258511957727138187183479612311713719174254375108261273402133339904961011694289277053555022448812100197022069914053204376071505906872657494408227803670237063789872400080887957130743738748758231011571873546785340945417735893638347739596060266533498224917415465500526647760685489042209687030816975283033678622528622274016406121152483851895804424114068469234605859607499655705552649085250595637085349326598670030555196730514592139758586791685505842952479068741038696521665686502940152329788083388867638463801462147648464431811245120442821222121248412843524514054532759938556939496720669750587483877892071439029618714934287239133162290221807631710046281774475441255727442306079681754285778952403119969880390074313026768400148463547781213281552527911372279703846669533559861677678105465803875508080215878398769099871864366103226230470726948572675438901664498753098753881739042336068817067664394738322342086835196013311284600950874397762989337895105520590538200452006694923930124826464207198414262426031552010958654208121724333547432155723741072056199111268661070769401040085342977830873608880788268224032501652313782349807331248308757510663459425654454185801142435180140939489699856819572675525704713295311906494460111396332137697807116316284085681395984882046490150921497828938359300311505369170854261906573300899478118713677167147840659768309727293645464999354184118823522551796572093962174219860335729337206256595338390360122340784709776342161833704936105645330067233953134813490319840497141661375378778274885824554750211026859887452189542922278029681724628479573768537923176491919004340702024343026398717489128871916888914372557214484704523291807874901458310189647085454547397369408731932768120791401043485255589980691018418341739655048616308676060172786475416420133093920154168294879095831027026261256824047760222016056269240028632892028906863576265644968512564216227184915590501200451746051546364884752371849204359618941357204046395618337265679351476601217546533007050712640660522132320794617157896808836996259565277006135470050014611956718242429529346095071406215817316351052628922874252964439998937773816900787658630741851681761496400657746311085022395687783425792257936226504137731929026372002013219552109424374442781950546058150854446656241048948800915736762887478870536027335158555370956976865582107442806815262055412091757162860649858438931165289728672716838479303977037890711764161128403544118569882641338961077227915784683295253933108272046492541403910237728840573495548299116204250739715144504641706889575691738676386317176603467849351708515382458683134730492334270038761991817571384049580255480389711928136270551940398065015791823068861227615635879485523809068305636624798279850196964411038479319979551281911281043862914758926659573189206919003847711137807443353933483954393177864996047660105107605467862585621769632633226279792128688073856478156552537636285676193955441931403441478057334406626538206819048982086325838814032465851631761576987034055567475016337336147572555556620430629265100486087467735868721031133556613238973059873614085614846950031351263273807676308817299864004775962483525987867412912792936102512412057145171086971682005810088044029890159642796539259403216110245997487485837691807848419902956415591565654123966104669681542145202910432401684283651737895830199971947830668278190285546592109548187043225229051328558113682754882168649107603510161659461930598786525247382667627828066719590708120049977010945547353257803983902337181588555956831378467584514157898749125853459942224695709549181234146603491610571477568087591695450526998310700097190527460520333109285687338270108113068614576501983106725623909183286334489520269458477169852861044827125035762333244192580407827816553365892891191959936001342933549495200166531276980118676205016143266160697642697992002274306429580364238628191730344442023736389624853047674419093145646299478440012766831121709616263722738918895826362923337561268984100472579707621648614996538811542080016696910855917024781885398411480709332259354963047628155149912799290410014129000875054331639557333634781995686920645066419599634472136177017469195844930755808590191525338221779595264913018321580067193083346390046185508533819558850397716413740709096311451882577390745788537183523307523469050036777409283937222231578372762751154097313175631491190876482486594863267151197700153976760600561474637014876819025956386531460590066766150499944219816239155720104254121887242565323018334971499149828347288956787780439378914749847920091250105414241104828517787832754041806675547872314181480968702540943742635588966545257294874025749844641814075901413689812052798290418859450747501957932005964638758109061826242652634170440939015347664817117435792582588812230954111468205960813270166353127076934152979892043149643623511121664242517877359845147780413125158346256651295334966275593550044882211427587022181242829930561366805856282158998986630325552638652735548732610769237236979955614543683353353289809213572839770109372005392122336196261731933924006847196133655641732359942143485778276027157786300754025531159566779427821651941696880815112940431666330151596662040098262951502742561276021838907452863364984398053976701992820170182737669563586419108009203900681561291707578126484094602385915981169734019931107171469091264486489783361692109501795647070072382174375893298900837440405738316925965687770839633354796456534682002920635038603241607290497879736354432207614122462563278995846767598225193005142845093231153254160620162312450657677951412883729052319159957090536414333661308350761259148749137166951141785728004793152061055307552869345298964902702888684911952609242640520845963367515974921271984899272213250781227813612213024456047237251971172844334375965800097000924417605418168273671937390740926093571909780099791030846410158151310118840277939842088142204514137268022028583927679428647315289018526353604173325828930789353452029744540983474457527731513108246657483143402641848674313882642894827404802822026668481232829528755176042382635428653522301273302802756863167651781153465878686720269154562557668271015342108441875443469891959069195854698624886598225011911953798438389403733495366907942200778308683529234818140928413858325958582365928037789629830461501033994030947725693846946819221576590335484006278359375864362132745793647215252475567413033022307364920057378187747746323664626847449710150877778038069675039497899452372544692240998324941452807445116048966974310862405537614902889857528029688382206466174824855563562955742879061778945551688481746494217319039468536752933514178143549315856665894500108960939600610062647900808196240322089170668066532862334977881805820246970261665286896177258818785611391826657101943208424752864153212807260654825810116770299975497543249054062423554932012378474360311519395812903848795519757185910118963899701761453125195146877205297668252080350730636753150356223570243231778438714351671210967733507261349838563043904600094599671041119705852691184248226041138807902595107099507658687192061075512659407930661849710513354338592968840724016925303438985625802776088408339453249382703094948683997683285252909838282660125239082710942266748243879380252581776078435635492751392834923521028515736853404503074970564089385571264057039106733113081861179725348321078475284702867300506607156864964755257438729883990105976653293046969716182231141789041555677398641717248313620005020532068637076248416356178921383753801757426103050105676008770140530000412963733077568844293241568912892357862149182241663993693597411655624326452358316773874519235518186157444485793887170479994414936478817349948857253434176384973025237289882802601751159208821402859909183388416697094570977603561039018664030616116883740505743327746915027302839604692875213791321785508741867414074801456405216331062174452446230434179499989072173766520930150548964774222555617928437360551095988652652556854467348199658142668272708443421265165593411519972208747280186416557048964688386551311448796537131024375314668023987965573085738047826355171739442685585233319018416989982248350698357316553509672272559601056079748808041168830946890186101746686311283856491928786739531521524987638884768826060016197715011337078953794350421434158761339583489193887422363084976519107473490049914600603029821539371502152992884869287158000444031485213078474751341436862617593590231867321899158352627757302751252278618584521226149849788573225454929259193763123552337303258983322481732831072440449018950167985348084603768436519906952456143814935863366452342965781842941173915486005846412634034235922068942310476908925347010561716969482971480592514845975262901118339357082521604370520287938031349914838525726911854206461192792121389796681892159234551632556169548241347789702167088858333352425651473946883043478702418828621118997007098420158925018462321025168856566326172372035286432015201445479089011059728141643055367040788987061818425798657657243183990148242304571880452588621485258856565933554467446473684438024799316164054865934590504639633821237072564864412813270216154905340762042228808803375585839302420576139635424633040949239230420842304167610921883616906304318295452752121516599205489708226273880853402781528175952254844607196428767503038766167369258711032336791185282514994171451442710611819447171109464351247867382248876289779140947305581205295395116039416438682267485617882321423751567012290509344241910035502431214907442766263498398522288266966443985709976359941340454605221582508256919802336665539664659819948785396772072483671282672110585988919725514633958147978055932967304515762497897867538621388439227110247247031234046984191639643292225036887554509749365446438273279717601373129535896112499905711952181317114012889380401117401618150248493375280621782056978816591534933067532780062505925470313732834263577290620993660900048335155416846904389424311554061659860803876733963759445838936857463261097882436581761338173396621264027243271021043319138334215409121852798865990324326613656275423199167645228548755281239798640505367919758013050578929286629190573824638887007249142238559430035963522221463811405794755687535450681558334939585451056775258920443991607136404830460233724364362227063721298679140324067559974512681243598387753472102265942064587688536415246959583261646454000851781484460916495081498087637374095976776773063490932381607515117201861155156755777704366905963355332261386449618628134333792586233942539873371574806574151719509935469555227446647389031285795873268085834002757389260010245854983647738636002418827324580390909947336519503645194983745707502285162344833548512760980879261765491902416208834933910926193207148707142848013726882462575016755718315385058595574188840299259280795781926272038530018665748132960528480662876064055753961456758795451178988162709224090056937056145909808848591326095520690319609478989225216245959754488654903445035094952590329378581736035981635016458180366760921485269766872602683346069566072649836386836800196203511265892701453620114164149932075556240272370911559156663155093114308208694016519186390436809730366862187232523399054226040028964029832593545487341458127500464286388071988600778168521306702035715938565829022983800897573359482661458858417875744660282101075886553281525631907007144965859563170847469250429060193705624493322816483014714659949398101383007509191980573353365758409249360446755740598818891357497391526378251700048203805836428534555286173037607439213035993043519712139927961678116631138370168418059642039135779816086032699833866160187295896889192835675485362763509471454711485581209498387053828965429787288170822360367036583962253308954610328981334760355298386407828914644674760399829372226084745908612215750851178115267595844749114680398070537306525601684275432187747134328322613430605205292832741117781688508757374763581164581967862512884310583384330274508567541538822454383777905615911738426297042834806057803178088332057764572100731472652416102620408732272007013388342870859657670063003483197333072792511777318817865826961101215729751538084298257633199950490758556291355282391738458801199888690172800131628504059635160796096586474064067914553783505712163867187744909881469764914999962770475963241321902808203145808239658663434766410695577596616116488790636032128406215760434037330952493198625447022194587909575172605319999116312523630951895775404359200465810490027802959755172191201257328577101897158893688125652425255672604675102411521180548013226695333018961368285726880684091446694419797620433450863415012796333512373410679221742910023607044957230404060552657622710041788658098778022850731193937102999370629181855663301293999356708368026698672798547289021490672269871210821134867067915985120494427431076724266322844225667492421756652034566966414773790711016630480138253419404368617285022113975188497160418300151505949971881450314384013180548183829185090698664436552413805560968819475461668151572207366718870114617643938852107629503987641025522418409168490977074656387656217267344413805287885647444610483579060291776383892569926383049475560116488984341453813013283735297181537907845453454609972614431691943473578220438435905088082918724843437240051664078430406686924871641998865934414297134351061274685634889644968140176299442543886719931230321534856203605408224481220111637534179739072208764627803008683428415442482395325504970315025591335007113173321382207737903296275507538222792773613427532156000838626473622220055724045108818888732746226816937598446030108707587928834132396273960228971002747715864612888597648195473087152834978725741810050804955424031835480659686724363407689967827382069152682207616284794633238530296251103822702214975278620333215417367874267213598279010164189160959576980983137431859101906767179825475587537604938860624740804485659778077494980125177513303703666790874907574519353620497189039070101023960023673015248415545863984055137654682758676321294005367455859825294292125464364592900557243817058973422059053916301988975560334716216573369830043140077594348364951811167627700293197285799189985484564691539914608535535457994923677913406960453818133888633492258084616990253554058044646987569273936971484966747649646622904419551378273560222546126532814359373093318382055621494861926770770626940859066727262005434210308576824308244578855819391048280444918763113842884491011400323204116328855408638406588143589338030154684997330388184805324641475721706284382887161848102976370386305106696077121923551471458885090243215974091105166802369471629899459913848321179399518740053196885740737920179215653140387481845390135536223195720984202156361353918275238985689576230361886352390457685807798602013934853717335650324498056907873239657226897487898151759933951891806030547765477076674272721720167575244059020932716248376282181231090997568805117556149637789896076186700592166435771362291331288596304019844991318063051254229738755551968910710536572763902613499040275964270707749798899716278715814970364062411389390266765450683750660237669898178351620262253642792327570056447624632630400304312138738532087581331781575124512107374476966976765175989396505635912307318691786949166479039278506439145162807251638798917283837908175611556319660696858960111498466146676040937040055911282758455415032544386821713775752606806847346382440629441105386953510015928440842698381399345291864478414620068582824725551348872584611227506606488540924751791464367774580683793672028191409739063156847220235620569641091166237028074272303420414675740584604367132295811994232929209609153183037672823261282423451808557140128707945956560401777457657149182009989916530407628747321181819353631780590011489671761342005493234483770111935352385142000002339640454288855669432694473500348425318091903468265931270450149098606366375846735125418381953335230818845060030597966052077994081663580578012967569450491633895794217490325472593344948763342477919849785190874956559935362050604412103984912827314862375647376372609508257780913150538583371209351164488273983205171035307087721243597712840861266721355218815721036342979697571022533353259058573814999621544215736805955638272987725259011752128734019634993614471891332732369315612501335769083078167639397918884099560972637268988219169824646033080568180666559989895185519435185898576537577408646932152141340797440133093472919331069975229501688651177930002089393122085380348343401232236967132340178231350207722097186790420071449659026904449415860599555328987548972535362714198667990763593114992203406419794831880037790097184842004226099670652412331485497620840894891597935181440894443550899342276647925785004394625932521730407183967090648769575929526200128260299792762663869766140107585217962881926041064369783399224833372283057879045464979010978038881597165023667289754797860174617004936390072225678195422403326832993425990075247953255316530611868967223066094652774383131381716709014972018044795018936342052555254673600901142192431245045221018943196183770663336792045786501498048857095623459539087337768178768726673518405875446300761505315701792774192235858186525082641274482183571743324372719587186457278335348215102441584638383804205287808600775519494014089856986886893210078798685228243111661481486785367270848630906368754720269803237995238999018458121107744317756311587307350770524236749286398956351293640693021382959498222681010339498633021623488447810506475832737582707748667163504325326421383462969602162201725128834572648126112153982915144947855081598632387063586776396148935869587533541911549908749570099263848172388803472424874406879280488880632483421619503531288564528398351463910464431571680291862625491354248418923836617160990253448051473910832744220142552706732982286819236505023428301524589849926823980354233910430274872332787098440256409282161704783358600076380827441132947040079931366702771893520657168792546212261892567854407404224160171035902025139340105381048314283113800514356371933161569899714044843801630971089843590764997437594084278380946434532824201616066006011390173261169766891439265701614784103599784926133216388357045546175020161876583290057618600138094766400602244385370780818464392496177779321498549902390392209497795962144372608033707023561477882438910903502487216162517617205911510136454255870581870753729123574938306135348685474746292732572581288631868281428883541569141199218359666114313762943238442841190110912777622594996621491943329126115813076232710454993271485356120841496836575586024735717359914280628654439923251252384930363074171940296148611113953527310751645884391976277173860690220332458108875930161447217873603639465342987259199233625993744935924728588421900853530977050269684801260875529155550736211225891452836208653545885654460249892995663924871725929274680911311038850562685968500772825299764434814407012111288594657901629995356505518172595408398903358860127844342637284734601142740115191666271291263363883140056261470454441170315037540582982661747110266677025232396392716284757807883131373641028263926183247383455557175633391677489516307360141809706154243606448353779561991372969280083305694012812228806869838365936238678744980759642446162496929205473719457356538299160940139670780221540533614785141694213002379817454347014644328460087177748354104564671565983939645629753281480009349802159340302516288406012259891994258835317988947317076824009825620951497713699106002963285235198578343011280642474635040010130641925829637650995775706390726242916709054433885199806429786907275661481435962565232775791939054692775634727024752122353898461352858942471123451332139623429512539464583137684386332171222942795215534341916001096782299547314427506045539282255224381082079791117972008112492741715145704902925775711485841893759342520770958891753232900167709304419590176190814317688630801694021467524963050335702902683197833348137357572646164182266903292954257201846814267900994005575863896129476201177583331185722118266114572666283139471178816143208608240037113433604852869724131940609909773957815398781033401561195481109037279848679583335075172948434242124478648872885495904193174985404970653403683384208557143924195253682100563801472877758630732850159187647133024192251091166782692438478498260669847892022591013820376294727630098757122326710488531938713918836911675469660204647449300245744153051768791533068366005463115230049604205306278085403851212235790230246893064420501668041652315832282619727199173990789614268354185122285665084855978846751331183847722703951131917810167338192580503164531973410308130316337480394035008819375396437692524905412323791955967647067180173196592900534351461744365953103242117311067089892650638228864387727461783719215477778164264266726033434501891046084442113152317156333457148862482382511211474895546919890389395098418662171177778048353413957257981481520836835272157814398034240450328601088961947936266760704611079639800971431896878525733565549391423428271858395375056942915033093117248266569849275858887410799385067244180557842919815669946303831919002000097155942305538331733695188152538842766652267569038385474695867668206099374048785905845631002956692715298889217896694911700992986205455553163826175157375044176921795341271522564208411019920983370525879790418720242402570336778084091342327644755922642248168045558005495863792159573400597605010570132562167431869104307084756184317314529371479964869958218012646871590027525271962231238718127861661883623634495658386066651247886256377969404929035896820477327733913463562697510918397115442604586400475572479140025771537649360734749521679845210557954735813220765328601855543805462911309089341406209770202019387239671084885454921368252745245505353178069043022812028154864864961021461890434078638166889142825943962232716332901849418733187287513426233755774038676417538664472984290118062738371763659048529625175979772649481243082676224233502727739510265084226176269810770940779316704783320635190318135381344762697679876616274429340415789710484026876402799069410992072414254223368140479596611132761958230210872051848400376066981434997371743682810608877011813103405785481467597424566431637174269336182560846999654705211573999931868653432195629600672862544637738660948963811996654058670349554397822670776198236000892738999657821624304497302157267669914907214627046160445889934430744123310209836437595698101457910908225846278663552980558975931879088720155884600803973646931908743063546148736791031863039997640323094117591542014051121295084204318800962714084308351640015076966996327921499096967994969701352830348811005422798430708042279884710211373997713310175173965128498421825238478533868950139040023194666971752275850790295180493546789659645373590877283629398917003276217673838457553710873450273656935572346407943439701870140987998636575858636393344509362801480714352268116022997202293509072443571050770932762813553511128067068202701752564915666591693596566693852177869210654099506097235185602664549353493656822641085448704913297624213851323872942979250274949579481778928159436012043450046979114476190406494769974053676029150323826141927252492079377464481242095799167150344911109404475024964702415195561849153937993974847354975759379822560053113505217139585934709318996976889555920770703179871864601514368113515868812653839771120900547521113178011236035361857946929987705141027437673787735492544049381130717125688930600268043870955988453760623557937948898524288968040071119708159311146984513458652695135119069989145504199315310638344522064919709891983271541494396236618705778856893823363845177724018052312260567399545490770494716302151227479947161464915440252149370452077071123765082193675587373941620663998031023036181023792717596483829152723284256971741021722587266255178927794148983445498753783696722441960110865125466132494744673136115669594551869233464909129921441274282007776029607175939044566877570011048379970769394417306958054019707014041835266521014762048813004388203380627426391896903211702667059948842297536387714260427918893434959652645490731888016265943049225630537694545943744199913683256430780850414012935499492529165960537967881649549646591430449499549222158257413353527389229119555123004023601322474673139523071482066893301597262528273195722202502212116776888266608931358709790240357782033317814028262216006267025449541575535239247242954661130663388705955879812719106292691282970173326712973638813424511572511933360384803175610053676024729601103658305755151109869033570748623379678164962290727226053720344086273316190354448450031974022860988188668307214429348692583034501787467169574914840717436019546398139568495020792645973883853219351097742153358999175751942675179464465196650198959289772171069996491611591696804066989712457514788156393461169969682419607882884104902309390604850106651961547812448717453156437597352987615125546293557378591981675485837417375676568002563866844184848722820572337635126167081869330484209088195732745653491719197226431551363528696648986945182663134089209628930655830262228688998409158624330177780183508698825406245310585377994155368703097398796068256064056940095300274338055951970615000582302372977137870784413439831358479403571337778002056337479023760349033421686047172911226671392037795428583763201184778131584887902248832262210980640686895272446093748762223049617734105158524829652782205372534283072829859745112689247835961364381168143253530527763106073133010971082168191127687290985652998559901613377636069576122779447086487417937275498674475428949554010749500173557993359586271783523272646120483221589995209530936652894674439562317962042460497000252022042869823605840510197985754782936235051309318652133798496725806924659232493994713178009148782483613327666319497796060691817158122571775082321429172245807117666985595901647700648593000814128733370893465653402631825334371403545039695081221635829300884453233342535783368687711618417802268760652628597687627845579842352291556589572910798995774313947057932165995576707710112085847633822369196817135659522597620969443094803862662473811488734274887400517676196250474545119796837117393666307667649618563172553045446394954617655659890637057440089024337211282232066836173568619827588268631321004489985561396811870418557227397839163236291478318434845808530279626090138399074261285861611387751509386469032005197818771710424389468884636595715183204711465131983996897525119401577991171614422311756855658977637001610658262553618188425493503324095469914050966400508398199611459244813268135568410998806471100228784368831075526489684716945121095438252669605423587748554010472168602416996324876919357318423653245677164745242563943111036784417883039633817489616108410074243525072305052936728898644594239446173912836634886898220636297860927879379423863163107591906597185989699269591237969792980417924081334672078135654526330220716998438302815420620849296695653944953273558028810462394141927232690986956748182990420749742969494987381566654771406438816121676111815409395957298487853810054429432731442330433834894315374747105814120117069312853254056775396325801302049918588982948947319645136257906867199898191696787843355359863878463811205270470314008268963099195422375555737462349766703644512855642142159979986272678162381625443158708156077289054446132315280389253246830928160292525382385142167119478371275894856702381788051049569727718917895636229301879985589516094533232613186295369403712111033289834077212060913776121885081253838586031191410306535494216529108081862264186128165645367191571405145842334249541638593922137969630406469933407250537952007009228829715601264277363243212744176936118620744111771683830792880784909250552708592934121523526760432095443661651240748815728595264959770960516048989293510828953168037935883319662421638000791045997034480058176499445056589536190701877933917668329450398734886178184978362476621455710862931190600457411084262909353756833216183819953685305040089468608086487660324391119394944564345965774886194240869016324621336967175006156084089357220461183718792532003806276528728655812660242092156999205308252392989236544416631130646298295087302737013541721622603327732771756117174211474624062047212828194543724116328348296304597557723965470879617065972460203380416163031481566659925433914866025275280962732165950401943407063920330023139378215126956374937970529254634184273838699077987816188530583908065038337270188586170858842762941394373752610650308351519477637995136253305717217422676532742157480107338021650182282738430516687935811088131631099966864255829642555170583787841901279072053854178436880976989707421016233396357223782664126420166622837359598662677807825204914238389711426528735367092971516003082634349857741425196378749225509636484422031902791926162876848995550927970042149061348638394093024067120819281876734732741441930663404137485903714578467530251459567457045353999230786795566320658901090770420467458614098186260066522278721418024058321204245189675304038829177272875354645683688403963624742214801002289551667040900317107941690647180517211620266328353739600555411542101791026495677790178762586072514892020828308549055197340149671330231932259991878843027111821628862647456905474187114603212533114343990754079843919331250070994299689240533260641618828967456113761421053866756028369467698395513355264891048434574135219799116019590642845374529189148603466104285704664991461928932408028389025915771936059439561008807766540551635485277737438358526944150445916800235407227453171311751664071264780591653900325429968503223347620793497380757805344136804375909643235863434752786541438109252237640996700862230197972030853266562420614071699545526907400521463055216013317392935773035268915193470373793808169479682160377837819332905914842943400226478809961028577665553910778383779232196159138879465726137544033264689536179309004830305524480735148372243700133220924577083923938318977190220788765000667379499892641202107178857668033195554041253572232711429397583389799354057619544915732599795274877886432723005511863156499344784440948340017943145947329012953797206893375980970135630879759624290943199734494785077044137657126400103700364378520512702660426738650163863687828661767673556911618129112715981209014012961764790851485858365481515501946688533498785188838770932044059514802872856989423815822321749663299066861606186557984012086529936856585464986270872916335927876883460758644304762910394780162275239761285602065390396453236708416830930102059802607016839348347317627470564105995091366210977282887901475430773811719041258420629309532803999123549649206069632716220939369096237376241218805352102035062139542701828557051614814473637802632333655101016332183505074012387673950968790295365574891720019215866579679573337144228633469124305845803069085719772619351832143324212319190860505730367608481044120601374274155631757238230589953616442312182061876406976083221026455297878288483672467668901406467109929290749242395282701777651960155758792286912445453473948628627758609362259211345702364030672226432654928867961313793701856491345807319699611807062236766985648442092205516558401316728956470611780513492052741714336668854333022128716127354996309741722456662635895552605465927198132681102652006245729105808806139623032258665280073970013379298062105551500203504592712531528611351765169769849058098011915932899874855631352828531220471185246506215338259039583853155652939958656790806686469211065330027565571352052913948187017048348252035494350494378977127620416193089252179752950406037106324323554660419439704287073811450978699039227428578064546779058759547258359021448677647691422737405208699879144522099970700380115354403465395958625166511022935600481003364900854908199954699266920558195678615678278067299042693294878518607391157756927187617971124071529866271056373567954621328993972978241980735348652474649652890240468274398714411845882177522851985876618601220323841460889912300000046095954770809697221334050755416963223832426964288521892713199544384155611230820650470093915229846676197105880211949698218384448654704560925041015119103300979999882686921852527254596401778935369353760491677034771094673116941063775603537686357598138270928465434714797621427153673788761606052954020975413109108315180234315823980970984759736829613171313527709026897728984863383370991525488368460216723170116707641527684686075257785573621632202503328454001432312612366948824795052085665176244730500367428843311046204691156276908544379604371705794464286063108126776242710131650398296301159344485787936205378265654737379660099950945074134277194523450698211894390317768263467185913645079255675919971874884400381575209083692260030867795474085566386638172151322211045240966151620120200729270908558743870647217638455655213824084687078042857632484416220963516693987256468402296558987721265243807319414697796452892197493933746348327182128978940206224617123758946276828181447173486264541561866379729348223133130010028246690058456608725680666415545902994496676556568823221335244948445841013682868544712058105908017502530554954342243453996664176840639279938572313042981805402936004751910608751958592628722409701676172705910871546811829778260044427157499414729507498140863584618405136746682525285731213380517082055094512324321073621487791584442028488214832395990004259293118438304433396770313302272183217032711350835223781257398858772285665880611214618534828721024731997647722088388975674649490476996555774602408777684860178630294063654952734225146108813008443582937705294983041823343579504625698872750216432396203215127879901736426494856069257584961830597465264544667450851595379110271711440286235713489284082947792155310645990724024716320327600182400029189632794667460502057661260369915318146883478809338758743058030755919238710051915286531510341787186006817689308998455650209134424764530991810674680838705708508174893586075170399998681493188476497074621101274548445526210261681057886333938564919108567390241284795274546585152225935374535191149450436028234362499969051285764615816395865730372979154759108966096066804437801398465280889072184106270867414948888226123324974581761314889343828078337930786016715076795204021203813886069750015018547733952079957846727599280586316613638628447204374643842830617626294478656838108224880948894859826695615898594659003644573025060905932889741702472551800601958495315060726381726140524639431587003040680632042465788757923399442700795009871383426628311981794232968109184954543933456753717324732509314194347923806730216379447550600622864594424491056922244178138007181116959081347541799271178495436905213681320349008592554355837233697641696415872896816536201502820321613434033447440508599068075825840149158495841397756382023662412976872741394707979977513944104103171710799795140904922198299274810557552262493758014068645136575594238752689190744150953271103689163354611548788546001670032554430560226792111790758602104692885133354847483680647968065215148433394893277735011402546882860514100980352811066514799898428057625820585149455151376433281227262095989516078906901454165724919742101930382200422130742359596773294164324097257095626425853249030670002618513120428826735350003076475263307134158440866452610792889917667616499668613167018922625494977103987846438859319281264779672864510872985591345982404274781373245122345311247746493651470957647126616284134647976590375729903814287349950532686905532253057385026950442035493680754383680257357725913386405521121563664323390045890308571785820685112502985029157379463234553489951056149211157706120289540281166306174180168684340070725681196132510196894367319539322888077388768312394296103435061086954579519750707355204448415536481686643570668253970043884854685147419302401972035535523959637384079849327012102391120989537214748226027499997205354848398694444859679852827109562382454126473190872977078686807790771022042313025027154872516850620108482745241095771237502992332988987719677119682064455810606989853846429241935242505778771377295320687919079583387429511737787886391116608851866389018535202801257754365183221968546563119673073350648803865475188971364985218857887519724816840642083493485746966842560984970544909619788380496944333888064626716013173651660343744841058441958140066519166846626573759447966633522360088184166978271524507585551855663979852272788394306241424387332455628269450377006913540025243045944778564945737677941848863283005886206165428884879207211019220448217891006091409100253355307029095000577143418385550065014236176843962303746203681345787855095558414387712462765963266525832090501345161501200153768100659498535135112895069110553903797794728009689840829058653308435283481461868861313491780999156703458417443865697522878156757417735760949959864019982154214304927664189197617005584501264544572458729176961899712911527450360214482001604889094897996011167839318051358225435948105258550484274705449152165046265558731697424785856375862718498215674041821685633206319996215516528514266163320118694625402648510093495547298856000378914619367250774370965076972651378667820644051871063784971830605512834976935403770883439832971666478901711370270229627402719306863645411762970972554793160179985343556519690409400500235909450641530440236116984190363815904910718211046578236609487181622563649712228959181194879853538443366278771013618700399734016695052270347397887288872451226911053393625130806591359098485591371771509278362549362459423475802879867957200020151531067753520292516982501902256684827831185681135871939544563582511214810808938433475909956852761378939989553407146295355550258603236345825831195071085951458977786793760468468724627186986374577593564346628796175584827107642009159650235599893542691313532875978992973730154393221268152821145200963060866647193894672756500008895072653581882292305661162070553429254800987844883567395787105784639333602178405493519173090601901092121469442128996052904519661868246313103907224965604876087789758204663435569861374671473049143372205902863802945966096597821755448168897814264086033633684709268064253911455558450647156068313281846155687691570337116212042467880040320650737067808739406121536177476092996748284581532205432731641126105964578476559568615550260921875517360898957999162121218735702136003228289754070642356398796614356662337827417897579846444519541423496814894793219782519355460076149774767331183889166559573651095232465254584462385214936945182076549153363287415897783516381264213289756407648568925650895697133307032296477351979106629373292042665708825757658363968683635099328071292892536700467964936691567150592803380147097063794256337754584821604005771785979018456706491990163023972246722339714445838728374520409930906668596244179062079917407384822976422959349366963839489345266087514560879527680469806924553985826305066810436320458426706622099807604507317118680638787946006712192034765305407282853307694572367526307167104357813613520571306260787372272298002843013818420291691370868898995439803372651257946411592252412811625837925387372294481561972664008147432205711088365663900980177435152782111096060709531544099543550352127548627742533785093492085175452440931217856998029236069489894110054422573864524285583967782270448663876739863069989297545434428609957145275294229578415533599030266062235833515993266240275229482870743646042815829883220094771723213477913437891110546006847427271755430027326997018281701643698899666097139864678600744418820324764352648459133080345953176449049632273164159045634752888925747439678332314179683211631012352763017416329246357153236647769239795099259229969528793206628379335872693029134137759599376690494909480431998376085780032643385565459687923918003089191847400772700642447071069008111790765275739233616500368683075815320866583766442445983874741970836099913644578138819926995189664529589411360753249467443842640135111116743750757335528273190444847211526751904414351217127319598909235315778808312111187691320031492953608456605221056630219063661342139003631196475922768239358620387341484359678852739495843771290072931750328621016725948495925252267119416326910633226636896950648562903829375613086966209437603095403316094687281782321270934228755621781800920829103536948165082212038826268308258943733555191867399807374659646603880888230799478888946977040540115790283124952808576560538891262087168750983103809531031663157800057922805486592508377728729540562820638000248069633686928287239259789569482252022775409696626238427203875987886545971910025513076589239351340120402255357224031163170008249838026689045454232753499408062926142706299498845769525199883998417845601052737912728890440635993414492138845968529957043470447197615634052276401860312542053469309586037031723349345815436467212248188152377101528586342086653631217884531340455201315272872497747988555346861347305289215768023025952878817811023890723916291093227998042244711724982651811719520249500637781965101031843552743374076733026058242545438029277038975384447849873039343139795935856189308328031097467742183018716515125027626080203995742710842471654966003526473246505100239329708057639953641178766115862786154206950517530257885779897996484703469098743114931149974702724694704915799194731827079245544721477224277075231541476000190518555656698374996470317238530989858757427770709034937592189643125847204169266874132923388078558906013606913883399381663464166219101963789165877627075520520758972061618755794458009069146691168385322798017963515645827093156517238472909756633022103048509762488657604620168363547947441815324371620897344731039389328736380101312290443081536609436185512388370486982270135890125110963615047596739828933258517171918622589611945551877399208209839076471099155008783216434245351652796264988452230198618581255665183145136714474040734631636192236671350586238034924434004902372395810449550038364482261877668725920362449020463184092521901686887821581482577411647125460009144476275641716389003440824344028035295856354258709030717996812865279657607427317215123252232352811769105462700672766708958753251647339231453086234438433033134849092734855803965224832303790438895400653013164601329023310357084960985223505044945105190040199553537835914179394836354195655894845039925739711388588867422895897831670721090674529983361034127876743698565692824161287184507668624199302973903547916459157724462737088470362381155138133890984851269524832439862661305852841621098438806236350212256338734489670617328807609453223733487097647860976514311541666611519300604544777256461988653370723855663797286575177376132751221890327481378224093935726253956367944010007731562356567196231229000307211070651238548328890478369465941871823748571198335242847966401331589534041614554274572098216392111237046606544240771807711235393876039393227913499271419760224132722662459375849985854207696609534269236007445363295767717600226831736129196816716860710861585381201130103716891007535970139700334116342200931626768112605435993073340325299277576870649038448121161433898913063053890950447760399194842731615500414246229750539637652732881487437967447837584486630518991184897331196254215752902190853698791653080963859793086531267620335412165386820072044612625408262260774613857163602786031199425775172581779275410618961299661259749922387055623294476014518413579195297193989618664886811519400410383344660963468600519121389882855070061515632945130660640429882760136488437594679263978018232361071025244487177475422351661033609276647434718123874810029828874737879377283210931964006747535845322322785640336068761674443661124192696947981691678708978418585888169241847148026487969906121849194884842941871133919176652279207403065006073408640997472359949574050344102791139877256041657499471768544645418125142078080186111713090189336058939774486177070007256788552842097815457950719299815526550413246882021831342542405194478299907038320524309784006793993463210917744310573516387647893370372053033656454640117265644246499070282154046507940318993262493393280683390582796369660949872544277097998454366491178960680264577661081862333345021616278511230953769845075801101358548807495400357721515735548588054867843596478208199948758356064795062593832603400782431583100727421092225839591734951955317821688895767872306098699653387307558497459824103458040992745888458103054387006247465509266102024839640809308969586660723786009102309763197679540742370166330986906925980553587606187515855666454391901021803336673071320896073571047751906772588988508078998932619506881636203131985253009521236182419745981652733625842669220017750717358293659949074860584078798104027002121669970498388967078760567702034907414324608324688348573987372573276852790537188120751266154294077647564402354336163668801509436740126330137072513203071491348796388569599201764202990512877717673145412012704044830884665994017322734135438463702618047518021079698700094235646456731190232722398260725882057606378405887054345385801136980503279264746231941113272589412931379793404236707652783030859641783434605794319626052812185680527256916789917428092435211400628931545123331343666453522104250859674821611059015828245258241996751165705411908433463673879519748319598454302964726206176364240782811855092120820944252424809308644732110584957206757668500385412645650370613967480164348473896014962710470438017631149472265275419739137025301664536571601665198660701992272043923928711553418641915418554626700352872768038871033565968266258398633186709199948450428678521268376748019085097155039052007742432539520340163571747323388429170759187152037043553960554897588663945424278219047918568204873345503180344494512853829880782307792363799269431775106136833719984528755816731167315937062635834569796606074210935163619838883180246859119006060858268125171459933996329439593255390801942433256729125024854104074821879196793715306891898385704692717696491816451179660033721589451985670291703861442969681617391322481014218837683071029283148494217400439073893438122367773078506189397544230677096188741039734030286008816475891207729749721996255906449812834815096043067549414076941529498416492195261147519317769720983271221554394143940609281111428212937139383376999718805782547902278290435283297168093541686745278457582153052721370542861801155738603817516013791508587760311788934373675067415832227950135960838445775016872344314282203853145492129745792466676156664683344262175323756860042178379344591045590731316206953977430680755481091346280471883746574346305196470899297391875397911264854958511311023939343137292861596781209791261409502298317725426247789257187353703574914991058452211291549705047329035269161199665157799838418251141904188486472976670165268748295967363467019401369070741694569153364410943014860446980622531980257406424056298976180937621227980078314243987342705238741398340750261074750146219490408546271380970086547357154042799390120387446261948160524082494789175230787147150243298349453898233643103421691574402695066506360131296652250428250006844314863021996559406537897649135959065331241442310464663561566279610160712806493984149317581692965566116314757537368364951766170138499950555497010207277842622742235425884036350260051874661473670588045117103133029271924449572319103293454144667964563383799923920659123974998403939740844624022047359244184198523532042101123177040630834940044077734467669734614484461334814333529694497486794131955486319112984357956217718989613042641029836894412600378651391000758338354462349725130583118584315603163062259980099599843591714446121148083467475073069792835986142197946919270706785485705626177881332479636017407947964683442492536046097384063120445979614437770844107222797717165980718909398829844719449733217351684302433269220915778811427691310042957444031072258053641964654309768871944463066409990877439029949492069631426570844956166840895837151793844275158137858991748374287272127590862283660942059274265432477532499663012684662865901849467373236865101520010795610773588795909305879247602176521951106539131722182488691066809968775599342197882344079556450009502496568815668844742394149559201800129211702368969355942271132897286948506730309081005418909496097181301867281144245509584579499658515168771928148269243227292077537396472271276658800850493498138226533352472003714889017446119157165282968971174141474054244698250154751394186224118940632259651110781644633660333207676617148743054427284296051071094205482141349326544544464403755644911816484994771086306501609280360442274625647307387900055543043268952108510532648095858199621964869059221186919901797661484614025310861462611584277821989292540997274953883095080785528411071466955707683696768421960345237990285868600964020143856449749440434716425417516394925032183023352781711914381091936754686894947932398372827564283376207113968700463333897630406329068781587983696151943765954079881961207814718234348039949481856532087133516865705735372723553334267249709325753975936720564316448002079236410342175462424574285947172060787843533317012822370730212854909464438705522817983951698492124921315205402256221596556194376941130394565371694587411081608289701979941181813130670718173348820897218549393145028147809262743862691476358380822233117528442361871801313858569656858017956737140178115671485962874165119900556167319631928240886046826953512913037128794662070964872331513717276503912530834624232531855727904104408800498221699491184519903113530749624833936135254709455455609089849843629537812204502651287614513259093794516553995008469209801511290879949620710016421533279541555602881090306811164147433755822534612209194049751428925791487398518938397920473387208949602292525078309369704648586763463860810183622718795582238834911356435801496824867914958875838189853782779597630473751403134269202453521520525457888063346702064040326844521182989339338575979228709044508255471235734573759978327298709773058983835148245517412975184008804601744974117415813791950782746732616669624199264275294842143018328891748942097255474708042373301477646510391452875918913595155353539356815994345651644715617791523481126994157293600845459769631853396448773769743058661874351677075676550705824613845228717381496790561825235098704424362360028106514392895844407662010473388049666828513247009389512018920833171930448795339522460653399465479942208152416162585750170309799052259120372183634661173617347176474942149883546716862985793106496551189944067275394784094168002469711030944311177534301542839003433084484791934801153525663367512395603348490957283540967795083622713709324707638984451193722517354754900601454213740163895470958589752057688727578792083185391907448127998572641828338792075663576317568627318336858350787466215293015774359200906077443176290483398729521572198422252883753075735771815093335237762232770641997810815715731075089625523556859417704468649583939903738653064172377873120764291234471777161494370528724605893649788070208215103170146431890700543284143713058220028471360577975877858308829070669502779625105747456085250197512881900032565169943411196915690888906968215433658107750430560300838152216639674070756007061484114200549515731136893404808558686311476587519931875204961036112739135449636137037632566183001571041033113004541139483780586008919890923371484860420901874108218934730481006287147969447669118186374991169122929537745749295257854878641997741033980477790587393499603940890178307868087637858188102081888680943482220867484116587243025563456302553624987709675863363509464969473276111226126398317538122518776922780305132944293469891262414761749717766047698354700805043773880068908122759017021249327415603492414249370284993652608579859714550416777426297855425920644588062481329740947358845765771374392325384326398919951486066078626580856889571208829059455676821258261078250603412132621660143665371524031696815415760325732968599340956280891006431747184394018928151425144211920913222372927734474140962399421488812398593588324572835675816831569717733030603650355935189069524864005398268475440895737202082825734654622498504267867007969956651816134540187191579975190463774926611049274018486316519892673626298543275429028745838957572119305470999684607211029338679601226270818460667670861739409491471584277251308334278699621595332080706411761511903117097499622784611657238466914860468330931119655988820389807569964252069876750153836459787777001923781279446872261697974787965910618899308666943069226523122262225098329201240722306849704078187613276960876630948511087041536033308574391850059516130734656723362578799301050027657752813730394902553321755370332853823444761232628631148909428213275223608305312623802152730440564746373672277290863820202350853360289361702859433970572673314238774451884221433370117252560342427996860294027686500911742215049243217223914169024750478751083782677169275715563795644803132225202741225528548515261548685835851025754304318663555639837582302228908155621049758193298117063195755096810226852588962354155930216321490976461022966519658318719167442347113869909446004859470811673867245109604437347528232249528485045197570879776487794148614401174762248979952272701729378120367313902578289134373729936267596571501932995307502182518600205772455247843254785595047691799955040070695227402027152799821177172049888931462774021540628042810156385545024576023040201323990017143465229584645665462365758500516068819538471476427145404210902974061190430676615375472903737530009376574701073991350744668865930594523340015069206184279807813032435286089762302002516136868973708275494072807309440562559756421909482255414201505869998600114728398802238562651738802306500928857477817084465399404853037018892656014374506846844108138901393318646244823092246343111418286651496190534152609040640508136413656292668579729270814344160276493620664099425169735811052931731940726629153489583041862614741820831010245083786646026099938921150352422100912279415100235111563710557999052890459578271290284599432420583715225735797244825236602644694868435152045649099452091171475786774710269699048357014573007314238219120621184317151434473910535664548136818983206273950446803421796586724248572760162860521140682296378501766846850677188705380662095436827601887908012611271188535385802026007204425029311877372904664058328463657374851374937780858823108576736738563612532258506817321766474179049046902766613370569810231849340224959522866282786607003500100381167186126004821262116714539215610441117964041575171475247982202024637608877531640200458064688067756185297603779548077953012856686474663962046976086651613781831218514111998285567942258051447004496572346567420626723376474251230055889886459176068894074710460132600951893512975891154227887992109052411027503038961213792323974386519141719517436008537750508745820162107688467938808767564960716857925324799696336387925163775375035065553387652149700204270184712532894433780641844651487817444522637384853460552762433927168462053469011498865598502350737592996347232226720967094129811915561338183608579145142613379115237107588840726732831270826313489060954563437940470393560454978426762101750104361279227517740547879805360327142937793875591486687715438001825006791244399768785322192475280335534025764466390414410406133196062398563966501896179728855322683492925539753831310741455877699447352584069304381515706822723270533201630151796354900923206002565254190842213843153948597941623523588208222554438969150151258282330267760600448710411317063615459087319417225193919062170120422077523406604083299326551696160595384659635090224522323079751269159387190607350564815743600495565441222579428000130434183453332033730960917249143449564206245036092810083158211407352490872506537907906846401632714744788395275508521803302883119735259434506343297180744763655162773606200397619006811762322692162427223681016148507686075469586938708565950405648579542567064751711954000165561424716269563782615616486659104338574004554004846159726998772160031542932806920519954851858272795729922632595545441654165628359338647175758720742036042086381010620757963055528035343387409859693437115792840586954108552742292385636860947199332923116610150551239334139062199243302710070456654532911398731107690647942341307098061713666369772357753568452622766043435519281916352116337650818060479603227865421535807599964640316078455128255023873253056884643742706046101052771885315007690970132121706859907407227408266747314743861723720720701563495115741996846243989597289502962363835476246409838703107410049619375029660289022733139292000059428098193122141905672851997289635525792020052432095816880560746469887527956004254739914756996486729337989488026280699983704638865865466811836071299110901545835878446429640619852565733895792328536047606137701103738544245228082091250050183348254881631789209353904872196962991440138143926070461860541984734403040234639888788915637361079535003572229708580814364690284586790441334921595243116509847223725717346951668298574462068767692705135325709901814304557257074242043754084598175646091271471608707102446830536734048987729295909622478543869236713968143489957537721142150204410938944628385588259592829201993489053411054465374949202974981475909927142673955395612956822483220273817940797950186665830327746652289943533668586178158947969575783329967931702693031518332955825500036805471324499606097986683899703064056396199273717401041701178438511994530457583318042379166031433841924848800097446461362326853622453305650197112680966816652352117078451291806971534940490766966721489810378932453187176149161648360093544343613657139193037892716601765638130863531644486684063530844868417296671679896754596164846204345540127082781446401880760301757796818060479426034258167309838506966819079667769641753943867816224248431154287321608505133566701612624184825776313647487580514523479583542277173457639519960669981248239478730661785783346577929568076706141488300072508940872938185696684382995289922091845493062404265738294272479289702593003136157465474385666926188583581440086543807956973589290048690680110726908568487621898279763498350263230399719561323151581324609748373636159077926613908161069316460793626696689846969617809281263350342691727996871101519829276152590776679767596767143472617868968849751691427849254546984850292525174460842951445084090774274762420687241404085150968982425268633101534507770885745635003919021369937454883542259067190316913466209758331672128843153941586867318536292066617497915910488949461055247168104328895879309983500890016779595833891646333141068858673404778154752301558250087204837071058143894254934574410802758110472983290736007021193454409122473806436204770864695406765197317221225653265439320590799661489820911237369635112457115383210695595796793191133805604514409572565823112501138342230388071019393434277498789386378845798605881832171592704160992637082214041161826826240655547668755516971885977024345378212952504323582348208925311518297870779942252236275934792104665222147555742100922030503476125990446120333392023275640276552430548821072470447147550746303508261967510518965289425405240667332652331811826401847055008494418965508673700482631782399754131442924454015053915131366789586266853384413246666935606468362381056835782569966761027278904084261550157593295710705667703286326533826311010584407062412710365818612209802364105114177122523261991417917984176842983183378575065404874297475032197793567431605564196721473439653082845472065508201727479724951520107066693541878796250081740808012385107231515627656505394820660780981585614485270752648608181622245352626811720334650785200562044816469756692125575986927695804655657149941873003348488322873286083510741407965181309733123445583622926782997352542398653680241456942678248373857640072207977215737303414754428157942323521242041309656184481951470729991862279245379692271205539570054270245830419403252630671256187048005846420822970978938764692108036094936540988703986078746568667715998716544530094557090020113866267182356929329067576014815365602943564070647411133321795014752315324790195747608581226440646562667665208245124698618221767319386983687533392826945997216757866335398660769095842195103116202714978241847886652294888540241804761643951262717441697568538350112510039572430386992632010417231630622903544846218155939020932713166502472517410053027286236044959312933708560470762646824158131732056044069222906755553453024731107839448690890775792286014788439753037524323255985399453997700645224993147966644143020697940733396564515496783467130252630879372219860663098950879479370786132183098458353636200872195226414480489435848521453396648282019213058064884014233500036374290869451959788972764439467043341402107198415362430163596504769604931355173149477655099624508234084343488020820711765882825208507012317030508037145382428076422844337900052357864939830894478482205237430677258009526787250271905496462505853503139129046243601247587456892071055414016708592125686683346715966140880111723125628223007920747408586416493767538652821304651040667620218778361015092761336685554126632432325102298082246581346723165210584348569124270083738204806217471045691415260383651366345947002046184572251961449950853365126895787707951416750219516328615076029362130681570545103447575582430394341499087843875932939334860691753831603863562424340598644750220894053414086460236670282161231751193733527172967215773908135982848209179160115344271191475292403781527005180323514191287925398141308145232707022363491879509888578264609604381910969104652168157772652710657137798194718922482899295270029274283509011679976312780083672991862078315312220229905546112116499267343715785306887616472069662067942422886756586533973099684014948223497005265474062928276796715348375527346896102265970740298317350226840104121716524388087207281527980713674882754167199864673934697116696399146271925966534060851872477160387347816306951941298200917086500871306182296090423916369624002317542372749600722394411689362084442513643283399303214356444918882962872392309527048836480098458758060454422678831082693734090054294580524801950000838603259307747243878705049685438654868129965520027495069651837082789801535416776773462845009921457298788898073692196725192921270058448228311229509709754735298651773559474392711768196745877127484531974285574317176274063964759418303225160954119114904793273222986138922918204687874411919015883219626472263750183094247889454416033304381737265099997739661167642750845038262525392557654386363784703048321183089533334721286493399730915936117060527371093234534396373643006580361845881092961279232462995118703646801072814394565859225621248164448561044090548150646066395845150655928545558226509933413310247573904103552674893578561863933448264458807895039433586718465464088366155516495323601057556107441882747710561561210446597471812660420583734461335650747136097748290040201729610911570414318046981595771173032280216065768523844232782580784454077571527377384678111368257872130149059250989362140306532121734091743302757895726227095897960213530942881492963599503696758485678223908020053988991611616294096210985522609141377983323313937753184463087346022934286555846013579333767775852041174000998845642883535002371455639984688652563944340134983366671227701199516684814895088216511268457095578111376741066235366782336199359633533723126673020577756321887128961502119793280844924364959636220258072767325580239921346159610449471788650332815255465620051443510428536943746828155958789490956928469784665229752559781943868443124150793341167506514075574805795454193379373931337842874530580148955472062304927805081125932237852454009165974820290373233862182089927189497759939365080584619912564456357282386117931754667152810202553794171678932595384198224454307977230631052623759834958313232740311811215761926865176968981480612516020928818219825391256584956695450835023027293959636064225580341341465075498402738239192534851291889198788115684812672735686286007248691339337336219561925899271819262758308662393457322790937479076193661260638374415152527855735428346305685728858851126817467739007731023011487897469300390772149628912681962451019721704597311835419499342588536144965023052549552801537082344112301906494201107158569818338071770425424292960968686620688394724038877353969824035350939323081428465231541587533011399996678338471177050222185941423668818538498887859637854132260686111942432638116984020659493501844643624887181896033000004560809661116168200320895759375463024901612907230768134088958936604164793033948043685933964655340324441815723602117706428883423584005356276210566785320970941757294750157836866383641003750185873377788152084872473529736498584298866819124362323798311422713193129266962859109509547013508868320554719703988849630172330337206981226761309854593143810250896590581282147507574066478826117528498681780904607936970967255893538501775570625337060397894998578207158138854815757886508751097000656906555242542137256862295324117571313265906689027561805195834618313153986770398219096776876565726472235732964787023386155603283370648873625316253424956953353391635634337334357679382803924752917904026512305080378396183027494471607046189769152318604370268975224552780720725371615913879551196387892718608998245120921941264883233603447787474963850012000303547504099298444478078406504452783099189403478143103386994163996217536361805025566917364659211021815388055135973136490904657606248234306419707870875459675490921944496812731435758281028619419556922328467431766721065687596896434707872154245311418119609230115616431678889909166847973549363452045917747948002976006994909255544077405875399134178718611088212443257250756398383271182798853649949341859461391944660901538605096484733009688150291689211915573780933616604654087681173709916642122549123574543684099764738025146947425818263732106613194452380546798424678488652762178979479413361760446466079320573288830769564140064652437356496147539868031560376520155675584072333019586241150562521185271246418710782249796679029563654957808232697902277561635009947887928658201026348219628610475806405719666892934347267462760580028227706031862909688370007121214143797194807317237906457272973638579784278365909722218424019283652005267693072416619716055064579070073865192558437387774443682595960221087116158164354061120278697944232091478785356095846442800498911312825681236956988197095622731409518517461513236909078139376860870809088083705506821740691685505355026451012728860890790065495009303108543944702110443065421123047270253181431698983020755609537259642075774170226555875962858550383413267539959423838709726890094914940146303621110403758146808575659285869829587373352462775957616950767008817831638845451735091486399047073497651556663535048558663720038227927239627431010487671998875640698978312139106453936207004515415555942113366304081668993469004710874009303246402616732085939282819385807624802024678696500930901039018024501457307238886399802774633903361746164354674471734972157702137852760977647469015300019043696115605933172376583583220745464242282425950004543791316872296772227543513994927133886817179885074474719941641171663593994363652575910096334218215386224708605251292245426297591951203408738766675573514785213346723500628699679679217465645878558846927728133086216795420001852671163187381753324731088267573372419186280267972069437021204579472711614004972180298754577377148227458458563337532008936860798117536910696701400709342630025803218188838397358803518300769604222394345482092609646608969086227051877660158322426567222062749944294568558432862418386754420256907842075435309072599127848277337553752395432591723220873168044915591785340229019618827562533630365254499973961423225913113710200811740799526198063825901478452094491428314928040116062333632027364047989711744659941636953548447780391015611994751472533965794489367703279600085869681962244230043605209812523231044526593394446688391106991745206620258988625311035301630409239849256621748425939277549096210294415682770995180930234434594092546807580035410461961894482435071096116520148318617562569485713758659471174398555306921287405219915411150159460056863589560713227033222431470813407044039745632366166289409015140059637674055170287478033247079315723683620025334795678032982850068046667691682174494610565966687771457377289794651768150854132297309031321428675429256936789434687716397156552979246550207356372248736636935948318903791421662749444419816401271213493028595811838336387696114377682242131341963080905146051859752540457744684620136641881251659025289447464534019079356830245100971440012507995874053945786464477293322467434586497284415387142745106507860572767397655670658119405100345186950587484775118108842655158495242503471241588210647117093907354242799837349955490004209034711044781615638549303707413621365650658446250213631433007760762471471758765927757046171276264725664167800112944550914608845529109616213147739689450097883326380721013655950615294594630226004093621829597491528941298713480666171572182376679207674378407411982747465891927064836095714879700754248378999636546898447935646794437396107223337128381303871687913201861609520966747668181825496518437286139681594059736743229209918279294762509420016006548435019620736713616041008007077638114476649037344403772117766750583045098084709546116576339383559705599625118581670784165304938012051206207410688597743382304663500313804833579869669801107302295274600515115309876673483479923695900110356346552525100064215680229969249088969227944004590601141750334502811707801414982277449135151989032190925252459456813083233599264388869460576624237865222537564797546399129067628102907365305156397606742546933941651033766558087418049736258360393254264550892885612389606449675858898915451396517394180096909105113538823076030523175808086360267120748251697358838264133183485620927901541994320141334860550150451788884982849199879380123820534403419454523321164667567177287415485637421754112240013833456014668714713263435037573603391003415868638405705824646537400698238508562600730409127555635651140376573525539545127532839027933814946354936461995620449481094559486652296868131269861891043141843434824038697759937622717931837091292193215145566417135754156654700870707089781921213754313948919954669391972387393317661880871555807441525366728741821101873360716371227789720888523972064144509839849935957469936156722391798822070807242187500602036898938787528105969536111929683609442902093506178455642558339104665499616150489727600022102000738211925146704832079151186503649007511528002749863424000064730589121140372712818633960809271744727366967892117743646853511590334951703283401293833015551921113129239958241269013519040623747556888555445738947397382121917138161033207063619178140627574517518055124525328304476159591402202900646669410047548147875603195233323770446961991327387636865073307285268470991686286969850265010672743591654073389921104245434049328233009268961802302376729411626644998239517843284068842524203200368859269122642774422038443665836844394796425424347790817193019555441294536959565506580504897986538271659526889526159315884493198399282312626596009411661935268876085189570334080631953106360022170897730317399523051136285462192192489718919770749433344329519278398790368099436474793966525094732401716158432397207440895760387947092584198060168394855490225130997271103459486639682974693917764512741138387781106938424964665509087533721426048227756260842894543590259593644464323954905329262467218326341186563392937072651449355284111509154480230695551076501771800809671618906881324731855521625107268168936419643438705984331777239342103142986873489085417751102837536044537158428630039295003409460867520871002285466882721909916916717357602322989000907159916567931239400720906169819566428626507949180353189034389854455487796661554394412787539766637049005799868889371653280078497532220324650441223115630129983401010034335200546405346664186739903689471723871179874473564289742952283819263633067911563344060261366824672145828860698724459237832653133836251470673687779448790273665942771642680353058529919090574832297767918713757813194601068181726375087815389509585903082295567612172762830946328430654432525885853095722188999882909158738805733576372698591600990294661815907343455301342340879821116321453412156700190764961542737462724380143773907397164652798444163263000651363340767778627710909324275719316042950942229205676953590170507784449622120267012281853291628991810538533912635769892931542444662621060410020762871063293023765312412732689283816577193515346143070110157670376530626530383945603016010736249763352263216085015621303659854079533490401569020752317380403974839760508712600754380354618052747356571633266220453563806731306214266795750104583676272965436154967111371481551635436917173675351633098973915044744848374500076308512614060906910856217042188309552257893657962031257283650862836712388506534259710222680183829603434763157417313849951466023077934384201540015739446337071779766089378407287942931502179924242448524478498352652332626429598576771124634739267983044271332352368411077824069672669275589663892597753472437979292532452442976314196402556899086792361486157793167905337318286858023566975449908516072022605528124421879176094210425084655527282095625155909535851003568458200397728931413214772347544760731168330494084508163364353900071160464717988751994024610202067633120226917376265482972369061346748226734964305126704322260851819693931658535072661727268295259694683588720643955249232742515458894580496163369729445919002266718122460283883043779181023580732537560678610421396669254000605236063644206711766791580543703825289588056344650568302860884060530916978154860626725875996430621131638804550231332867122886190800625927481074742304419000054343187248703403222444748836259229680555134606879143340647226598763871875968062180850545287019397130661005091661565659126713039337773331774431357782702838843487070604142469560711250932050546441511500634292094366019015379501010687273781455619131088263928813344674299198689399869478036619433066494888852452867936763914446106032393669585052133196903969231967070492531297438065601838205246482704558655115248534564086010958188693052363072128044951725775225765303417479398156729714898115123490252233911675636773736146351505766712738549812827666214489585750762784567848481043419471731802419743068466945269317630144065582991088765043667451338496990893401797791190022816719320029168156865187312466232069076728718284787257845695626040202801281655178164325271880107712356946642816587488749525621051925908051333728082794540962311492656348680417726507844758621290178826992831122310538143026163093286903859283377066844297244415659495073188630225726550913238964305765747364589390162089875550959060866209799251099264126181721918591284698725041016290877328161311486033826352175348134812246693865351549481001936237186690210241044752224917632753881545785325954474483552799522247986144396210101193202258482290443589821332422453211713019779076584505082732801651697395352957525618093258652110048142502159144457398767089677826446354888717664476140478289090556337018718763126170907812383999627433580845750783202668752004659649554258542126106707463412203579916433495921185217867735336074230441219589235255092366717105417118828832919886236997280429214234721198050732235264753624475907694002237895609779656414439081161546097684155373498078136978072364613986517392021906542434161949438828821641302260333610592628755199828178855161163211667770694203974681404341500895680077241565396474105648614589227146193596005009496035188514887396870211900758063056050752894347470650947942659186433783159376934790681920455066188958183925249557307810651067372123754557130714185371798819722126450224134947774019082573170593834862377512101701618082727991308129366562463701842603386245996506231881171090081212357023203806701651656284034222615503023817047729788156109792114865427339063425793113452315579500929607886065441656666639451107050636914191957778623198557596251963236815556902294913252195945463442168961857065001962452531532546549142746567514648471102121612490308609293477717989416527659330467663003341581131771624189847126770067141675767725727265557530350588425849814599590348463429379483140306230847553668395372174589551382218440438712133680488808368474049770302759542765990644922818838572219546366241465313548515317539613397977708700653250558955586787118473679896340722909646354604868386395019573190076061784181476702432442415093528083093213089958770051117596614478922356024069465460139540515618958233428445373718340044913147528791465108527843155008009489059132120513227992667588572560023390923267851045157490857310784258769068300402411918452527190677179498638782684111649293267172150457049571985663401014534340703308818559191049912808169628283853622898862475008781476883485127972254040022697050069604791801785538901591977284716103590572067900773530428825579745301944672390972233598195467491022462863218860123681808873626646561919704151746652552325883058934865607843125480880099178640124434307917814774270924402037419077026827469605958376317564773021270909995223033218892969969415083766937459970147589738789682027255305165504456863235415907530003251465496529429338655697519647357448994104388950320840743911338420094142211456291458324230621486250967425837720163344119227890885375540786916093752494891103688664576942942911488243300948455356677630218857718062958226640075237233626011487343890149452847137804402594507075776658688753703005517683205386294048277308313259555828831235304464597092138670894995514346356276604977708507255059580040780161074617400098954273000839017023307197837816047591676231656000019933461653171853284635926793003872992094052089160754277134711260342292555412897159723082390121220899232144193144229910302421332685112051305775666180755525314837613616490801496521500874714736359950337868572921311660715043558337867381168599074683875108575593445468198390810975254954210176895258117666048754905168925262904588810875046791686894624178254697240068938309046822884864115736652513777938170757397680131130732054402476566282568599202121126050911116787751560104787677274586556415618894888014505222393012380737582058564681645858466149464661845808943908029572612581442934421615347078619454252153681137272353259748145850602524963692948705017350846865074706958699733100150740629322587073753846898064159218704693720798502443724916669259237167285446102692444105924345632111383573082253283750331969756917447036442373445561295166758987626238715166020199326527666914535130276347282772484635366337930488776198263993494044241369616704643863774284920108791874697412840368568168719199442328484904595320070981818099176489623264512004364712802512065427713774325566503445960867213496298048922148511260854209654400511756487779178444559482413837967578804972281848937743091633288599352430002078881542407108751314941670250106803490868381774364886102698835000428591711218591677738795991097867009070119095014421505690987582646763175356651589507116407270609740175042528555767385421095386726507808251592580816072626418018157827011219179198888070900503009161908312567027971821267924010735940257675543512709430168473199264664609080869748852439521372502715348211408750924457621608830791534335001800550552297671612133649685711012295166525356950398564961988326399918925225179729738248223901484698505450542718171810756136802786032631230605604865709442235116400512644366916532244072549320510456590002400353352124427973714724367634149754372351499725974609216624040106367017647517070301441720257072918981244525304997970780575211069519137841643658285609875865395177718831279043008834413837220186236098819549635605693556271073384080019606459988648784328984890547459540130284225216917432857816524013579176070531545886739323049599408007604160810734359022338841378423219291372083228611375828739216585619441131504881412075273879174639912053064714101234138904325895932251724361656569717262909080915807660254554094387461277588744728439947072342891123625059322046932988962483292743078050917172918022260677989182775242007906485907584896439411642150883913624639209402123250663638249588397690846360519894940345339607778604906732853299072931747460122038883412213463083483489150535716576919159402307750983816630868799496533909899495137363464617835876245016903919492161372936256208315749206051449975929088544463982394519322847437960877081183452126404510266067921779802874958193711718678583589164556969323144293787218586743725838064336126235004785520941706493990629930144391114501250260997381942490505149369904445794632325524261249737540509770355377311064279425744266811581232578320399253894513989239815685391895972678892705835310638213311068808742461750291496257182453217534640753739893259012547089306681732637683934408922112450117771045558766462201015531265032294626224579164971836914590689428803497870862584809569358981924209118280005373103459691471656089598497864925426704354988287062181926930517156039679600781107675221031836137840988320524038577719390954436673513009118328719850638067633042659748356735615083007847778875752411494969931475800271973828707889174509491005067257854306323588148677281389664784535178825769413995294088892261063968748393922358947697570161560964163748790236251125369861995861730302225388147462985113803915042993775571787012443613903153956008977489608198674162490462933523179643063649410639313074107133288033111130843944950086644982329996755240896429421664016354959928819001077289378526565078149214973352748231456706590325456858690527436044432476959427840912934871472866325304418287367695569474732552947361569309428237775135679233145609686847474096817526507948827787085768497050492576377266609758371219133900818936316932767366151520786231172230237948762118308704841424819573670722962125006032246996603083004592986234245701115205628953487137198356764574125592656071901967929995161447373943947431329158836851572596751197476459739426769383653566452448296500427753775363234278888819823335331221500972560045834471026670758207959770908613783392685024856244065706939255289321325233722878387839867519522266163898227941665280373380190283923971788447347070353351403233079205023600039889780051679886418207361337608153595043830407775376718994005498444289660345745661776743257037713300409677162660691353735841839908450671636705762797561166714370668529844207828445288332899190277182607070150990334251772809213535438573586897794917258856067042278457872990590602758228139697056553836719027086246524826494544054221833755904413136189586322631016733774090127983233096990634895863314096104143871105085241116992810097758307407573567760191146765676170930874341866231506654594147049559760840831173739524946463100872892298134850046691379826476557091183340915593286414174845332281793236903974315606124177691900305566088907751446613552235329647488625179672464609185076833993761145559755943283248528858008590039285660039007652831753534826463418131701332137358320382863605920215451795298350371303279525167477958767144736476812742793829105334573511597729192643159006551799824153735233028157987858625117784594594317215212235667745238040384488099303615820754218362487890479972563909595217038750056331723290339584020539926795087220483378249152575917129088650511217144254933284968291967401179029200087453637134775719007047138067597544690340419254045077626422182737691057304272493151209477671456569251654654984837442241463212571487443665425151004771275530243126570862633609447495905966866963606438456791255554029379018112378198426210744194930053743258235375133308542326133070386579868024003702077575605163727227809896922069125889556064001080437820789057720895546028003023826902737018012320712369795499364259995387483436979549960721697763123024166829540704947505054207340513164228485326006865628202424791979570734121647164220266495701895693574107200407010572946102110806112732591191584831795789700330690623593192996397250019470691606949718152332815133898816745717185339635427594937432809171880998266141946849707885431258883597433790521452844691217502530326459161691777500116346916535383426000744393822413542966858454799146519187781332573688771972293692191518652365575487841652056050731124018876220459050073002892963948589789737967687090021461039596468008510258425481935246979716783528331263282168313771111164097633246709873300845026007665316097195251861006636150354575936806941310530766616304604772107848262301591765283275941916064812713149322880595028601057577243301852931384518351707348893370784166909893044764592575913945043767854035287668308753360456401779975371762145040741711152170881690392946230728120989121208511682840367765383376466441753124311462539143499527227025391746282419919054989931019966933616438024270711956764207178625880385346653367046984970734816902419878014736118907347389915809781632138634550104920560678078844434548604616586152348210950699520195104288938031985660042839584198183775408471508342735565763746994186378719419777735790536519041339448515287812687149601004773443020948185750427882761175509219418319662698766337869803855476266340316554475557385394764036981907340377091928269153325149527020834943296438269250067723147398201232060785937049967951230620914176759691420220711817513564076664683544343953204056574663577644562286160869116137202335508697132963594080125586328141839983163499144293110538310182082174691226962615316539434289040019948993265119519290538540134825991156187564069798862627011898121708495853435233931111311001373641709603601329411714118655960597829583915114447680646994680339842157843592276292057168204771328723647570634909594462872838002405859944063408256379568013143861140930887781680227341850381162745790289485704442469423927166236908432932875661425416418401435790131471025522622128443532987015030461746795720825490061130883440989493693485049167144438390361052098197838503427955986655296506473442445295116492333362135941659228343745780460863797177358797898746290369250853512025340803325670030717539370839662881495721803392251170692135276644557447391636868648355508166959061560584886559917223128768423470336330089727777857288900608509460904638678987181571324024479694219757141442954480869633534488070570076547352917823143042720806966298835074874098062209201585049501583493691462581914614231015910847111852106268318659667240237208114991234900150182479333289708919082823360115526514901973874892330416239410722876218620098483211014970950854378985619546816755352468542160307907021337878327587125852632634384409752691475731867863477108260424673287354514335618890311080687301760493267533635079573068781344073803920798801369345057170119221223509509399336461283585231219544945830483393180757641346068481651690620154601766462410995911068830731098402568842511214344663360091895242391632475708262011671794823283305201534600711974952638560884001194938419346973786099513469097462799484904376164090383819489154722046970709605170921079599413070875055362543282323926779209600939289252253245925559907032799215427673125790919206364626283626492970102766627776287524241198292115726826612328862953319956787073340104688921825898284084423978946104660300379486863003968043611734548155252026517023493975991659302195463979634619135054318237565039745975880613981105694517072358815340539694804612533000616064523512494144720154412578630621285187701752616817720963530465471434092672955645358079274869364903183832117447934661907054300288572234106322454171466662622414636299702071155010813517337505279898508341963924306218409077210466422529536352260190027451614146876948694514300871439000632273517181769194482537016478818577098086847304063802759978482537035654551717663783556722482668314076826206474478872595106506584180095041407602718241786164972554531514957650402321264154383307461537915271814296309677856449027663639479007244887602630098049715674156351047430354838934492908916045602992292365056623416202883424945694403633248356125103756583480299459883219784085474507299452416960637056956919952183462506830140076444578339319620109086202831160526791085415897830844462341327167538853163518581731754591354337728046976341669637989295347461968968524703785170708823614736286927444064492412528181357767179680657817579114565343499000617050429764180236702745614119753184172692056347062696160103630590003715406380923789177260359700974987537791155089713661531398784363082124363157103564860763977470062624685523877507121459091787081304530006312585748143662588357955807288222173308324851624659636972152148603896687981745925642941835820050026724263097321381900808555787213800809157669164365091652135651550210627433694276934908321770002057317958674311290433107262092417725387611329293899318157823790961036766773220098887464002829203325754019754046354772600681496181848617505214308460846649673106300054837735926595796704204973071531869039222167854421574591274623893206815053546175263814522419932363492227153707332344439522931889370209741108548148134049071008532926251015866755969783783592361572607934087917045840365121210007320452578773984643826405723230478744473261319467645802317094978929157710171127438220797797298929363668553416739190540308418001849877221762159587200299720763613170821480715239390514291003084747507400826463802365261779040414455650582474062929010380804491738088917224131415427506078386443172658643171009523999767642943039835369768706955072505849738207018753888890358325042817140867883813635700651765952666609881501333188912690037479033661515736365624005261075543823706240434101063259332360643860881194424810681502598172069277982078602158992997993744848897984730522211251815543002861338035538694995523768785341589852109137747679633444808609405246646422685260653737411938141530497634676526437785063479585649857214581634866042575648718175763720220219465090272736475787378342518188846093421275212882605646450637798545188612346589110876056452565611897190511980299632442617314193837692553513923771914081366272278206321132581119958771035285951388397260056848420051079233355446893362751116333774022836259572774429805464523389565181110658951329438680372716678036270176981841609126837867775073467371372089082709000461046613824076452111332000533584646402826660699310466608025278346335744461993408719985835884044864045167365413345858983656568582740403899484012889802794449329573275462757766679971116605834472606971144903671167322200751827635355689723604683603806253250211382578568804236110062150683802101910790019067321210525978701451912800649465229618932802768722326807866243244186160211750601544014773784326893296800309669026996133420201847207739349082093386770516288449039566020872695001158205044156063749734786103739906135783266027987848376896316512289904379200554656628407771644401109973020697318880221781880036950896522019466230993740476572321444831302964364240758916701241641159464646004450743010750017051960215233219204742991409395135306547309429630148433606470878898629869204272124222220750827425990732296074159610670839579659278337590695881611742711053224251461950103662853837335928632446028605191382354560710467106127416133341803185410911560858751044678461086587743227780751690983905937771003897459988434030242393227143171417802398696659138700357596534306033161579863155565239991252209688077189151764062549522111660754173410879604193889196364906987137341203945294699771924620274371708052899701291785457613590667466335969254555879388838147552983877492217132734825453058883059584939904893956505963871110119788750091991972107451420117140387093907827474544264986427427011667305554501570497481288911172231880544938703367781044106838660054598860449644806662623406518652381552969288460950928597318614900197749976549081083999657818726835861527856148970696733607276245866162884134325954779963648352969759294494349586069330444944894391042673593518324508547636488240967463512753923021121353410582117203840217749333451957837205523819369040111109927438462742320217746039286508808772911978418213780027032712635729428624571254891511270669417576091370395278615764789274678931506625717755851931313566458122240612883765545480211206569140659578935736527776376433365657655056432162111561938891607010322515582543247436263940431321786420450016198042675254223561742123240771455782589067800943285239480050255811459760085326500735774537542653043238056451406298935398315642906500911307670138333007895960223197216728029769115265039672134462922333799781691124142243969983681660516410405363049181424135068569830750723183387470663585355578129520361128478895745537215137997843696055733401029563586535040271443840510412847166503025397958998189885538046519435167656603307359570624642346258915735818341653959425244009535201159317830467926317272824994834910084732105597714625898018085232823404579133585514885192447262059776720148175124862052110106539528292235113133581889432905191102972039821720625418893516759308376900750107759842536119909756329127619912460386964047422167254315440421292459504047591912665680394076229915766967070656081462916673009518146586756636902503996853824004476800053811870356996731508399446434306225825029962331640586095801951474632221933482571803324928433029812523800680605276221641205583507807924315964647445948001414955145074838750086898572587775481735362891093099400686172412619950103841155274511864171260569783789030886058227745436278543328682463622880877669831334516286489525134344719348619510659165471445757222366361009415269765631351164284083019081766618525564903898438725288745820383944863625629771120964016942802893245605846886979216103618967248479501492198505198847957661141084306462584133994533225002896562387674663527039700206316888936839165465677541614955134316874802669418939061588910318401786672261672337212790796146402605395838360604391496009374143451487197841770475765532155586733238171882237576104217722417609266078800175974843278366999743118050754053590596409266487119908227355191406181024791584561900761874983552935786071164913902803988410492201188380704237450552021677136258024546613357759541129745064011182051386186956278640348083926724475450305810580425775717089937312986773672806132193083567201495019625253573671812233977331445752308414783311431636441948411061185131864256799639939005103954337037930279245624274541334996805938654931793488311117452212772215673041691116225665102643717578767178331300097638829239412484158284705586446712911508593014684233411950056229858724430985860768087596477626322556700498278088850423014140569943704253565174957985240718628019332972710642416495971283253696045877102955838507426366954430641892863767603143821720372399810429542814466536265458731514205501944331606106579801744851975263254389980811831517112388403660290894631074254514921496364045874525533886745581689457770011549572701924487925914429737805699354922933363507666850578485272176700201367579917267875700487170450260284079448720105697876231027671594306682810567074653426177085284601158335270522704185692971902010314136015514582351394753283788409397667681546021575046370937146420348204182404178871482191273873696363601531634382126308701048402521931977070852866902913543145360673908624497947483042385494361921370661936613169975794464318563188895089521509886732625766342119964291815509534772588066919502117414807444280086924967677932655164732994487764295605743389741595007749293580419971962624585864978490817537468169712622567864177140126691076188194414464394870612792120331307949232115946064800268634931594451702214613884324408792984473813034123062677702072771330782605200973405618230435384711514049490956073075516739943539157159503597425162024994961020055172606712855653787269542257089491785057290666893208153082828964528865879647183703741061859524501533542485335171695365730681793912123788511716303779048819275580942778089266162246596127377698234748968469837883591892416960720178847775846412284528905215001315037444924739693879912796586714468469401127552719835307532026208676014656427326256600385511285799317553617384051237417766044020085049297883866257339336383401226149241150892359678860457729095120161344623257923965062600244607091818306118767925644860848694441757108314392782406848644858403036684597184203308159082818926765838897855779971428169539710939531362251421433276227880739651064598586772858227720150898938952811296604075631743322183307308093729722815520839382085629535815922363789084946636968958761591559450349617574606167542292351157775524239620456380170671502539418984500061342162811528232033763188482780584112419390715615640665915994148513392316567520713053214933566875635230601565543944802846523411876913523391330853745657287618065229938269555077592007429587086346579149427325728742999898222983170063561115386034540443481170099063851750724353774802067301687632175605864319133079540153207889378451710972839268546561554300462663784930948945567758835044630941370945595174779353768352269150229127217403245743913529124422704154411959635398131056969266033200720190902979579874785703268377504420745314660284876080783800954184949740925261986023673139741102784299074230206019790220651463005748597386854676490314474532989400789065047089047193582249988002267927711892073057723394692451274885676385301130436394171756801009465408649007459486096352259481363342133128820020496865839095019193027302523203155926471031163262176508171109500020964062989080863646993506321338975162097146228439098298226862669659125784990176522232086442815048741176992642132811601214068076886676260136843007722172948727376829713358213915841748159493020213043392954406578050224878728551980092077614388436287503381422623223907147336371067662247184396156019630458441041034976442856018213341590957730000888143043699400752308842877948618173692456643813660101175094397675788327097296228196139653508429800060037543345596432782050580855507746579259754300078946322317947643717098819546546895635973812266954196962232946210812609725251323534642448242470493005898265530360419265105636982156159736745866398414360440343448254143965005038918847314877876568629181789067369935650805651937476262866276757793194082727454483684768988316149588807392606573238029592249472873288787580918696113987323812586984482751256013129929507503705949889147272131329783040105790135127033732082933019868888906797124525019859366367871448171296959591065359869117686995172362398619602415667215526371548361633485083152702917825528973170940470303678617226669080330628190808819367783818067184512624762576346038432813301751619924069313794444899425524952569535323276616304211616864344240686397906054752366734370264881132658171960983011709115775839796463892712268887684320971982960944598106005655140806697072255615591348979158590648027651343173250651667145218075982752572862458621398729002234441132797755974309501830162238050254079645427444584051638840203098391272928576062764184122346847269140819017411313207769575926070339162112665929564153429025949303383165619479325060005468355400764855993385501316559295060417043287328115206261928814709173924543833272912717707005402393313458509111575885016374406097021977558090815436927300524347200531776820746204965776752942022012109842210894635338341581853796393830651526505921530780822771090279788504411144808703574322814503885377624265819589518953854366263863555170938725425108673943579064002065076963539576763591507241001387451956835625262554979702086165418267117835964194171944860617828154101280104259695519095953844893710672815764717228439699545655596794972425755327796592239164422575799157346138260611058015667246214532725946551733587508918015965825723569008824221022633505421554565411327952407873592202003232359032338892057246826648407165361106415362413009523384600134753110801844889694930343460931994334607685637384569361481495680390262874165434291995395799618840828952073726014613798391783394900896107076226231323175219772927153880730287855697592266788328131103896822565059925504491208880459102793078079889809097729867671922645441264493899766170042767550720375752581651506813269057018431330846966864762191571251771979104981927442635372173525392024092052418870820764072589620183152894489760300823388792934768356234551270669613453772080886317241118285749007595312868214951225083254762867059990191750587910267695546797316384069319282161802353817622876641615769518737013987710299192515650129307048508596692166946497489928495617615893980423699018333177204114764882788219003563378296405706879749825350527029894829348735880306385120637871893502586965164523099880511285067953722499664201471003861436665970829274388576079045956270246313312167173751657031832490679569311205639567443794535917193056477492805711569079064253188686021886066419003239125400307365814303794825036843757798593676012522460932314263754453282088755171941636797551996704741538711361327529343770416763137190077659365057711014349953349163990260485695266461970275578294100913500327474829749354805561767451972886928195488206285953999881052582644597761972380064849131505409979067273171202393081928853202975204200728125832805998739857102116926640186696003651638387478984810472720286794532040913789175453602339941689856891987802720001378971455800910776252916189878394521702245329594494348707994965707357536483656726984844180793410365104667566585598345554811742053268782881725436915253818102257593853145517950139691847449919490034710723692680141075558439604799879070708208711959433239579334697261555678001923350869251656773174429579665191658912737484433998098669001604945729711701069695298837718608760537527711359451343850209202506515690955379040383873138514508829230012376295234558448881703583463880294840421162550425275659326345398350933557744034301825673118067354197113006975711049069419326365622007145566191566787791468771776514469029581098546686609313994501614587166432539979484805288621615660660365031758222830874856307539511552335020522086456563446404963462738988655540753415411889979689585598413452726423988556950204004983457032350564737995373740933283889815812948625839208079907104691618930955872402832955622200715636919115804737882532747458271356432678544521504549433624862633347988905413086311246582834574814057780545201378800940096928988733621101906608763073788103314908839407820309148856297418562863241710410217657244669379502503782104101297646505972451233885324678464848536752303704926467175390357577110945374138751535884167081833018922345883807138399575491240246839013817712859988702546440736953895744115179890296970975634460255685039312621122167875254182809362069592621564316243805317207984269618556149747434918086344006543381619969599981384274753894569884073628976046873045627709228117053826561736941222884631553891267880289620272744786187482612070137559308343596613388344656242915080345612391631803553137929457934576664702304396548029298021367225305318814921974765536802081498369159061559597807957466761495841274255502552501075603110594042682788320696757360640767162558570901203566289736617144073983925218867937751260670841574177482037309095152564860993581010087871053672340041379432869135877311050453567313546726551595754864340645921499847874152943131822436432359792048104566909527665130996171258726259679800533543007300799262009664161178223599036620344308149240908096828200536266008138690885640531236691435075136293108147473092596082338709724728068406983545605466910878735090858766879032822365581271825414942298656179542325138315087455306465968852540570730474503425591394901101468010617082519883173684812480878050248701823781415876235070041513682758262437511625058800668239935359118862093406231420270050522284777049613029935774820255359784408316964924125699021129635516798529374826551575713882360339940468699184644926204858423092143819637716326456548798386547533329020506816678082318794585950350971044893866120109152345426200346252834871920806873976711049607248333383421677608431755661841347930862164817769139823893134942182984771602613880774029327030446886921359668752924883267381389965600132406070509399304387986298130096597818202587564827362687386473127445949342140135561980615752901889420426385529139510213999008649423166184977042160340417825062449250300690803455824940363326894233092537084404358931045458315471415550707141108602044236133193846957534455048297477220080208851861421261586212032195312342313619483259625944999072991178012653483149624726044536777295742975690554944273885510862579920419775952317208891271077737421944496105149549048587514008562487260415964456722504436845062955669972108661606515115820089618524295764992096162086659857655342169561034254268082418205493079516109775198710432802275446828894620227757554985101774531842337012130879339748609052043155333168528588569495786838988757036814414562449736778432739538097881682991687132609971590310901739703961923717134154534559167355016187022079921902073488056497697860480455733945726470524547974116491249259572096998556772905864007753338558529747159478226410741163982635222229285106784319652902456127437744970844090538079632312349390568077756910774596578541536916843603294383373273357497580909827950456726464102687267629359527896252709380290900069785136392701795436441616369558016642093987025225858320951086588501100766029491831185523977172422615974501939293200656691898426683498104204026560842238740569917683125723601632475151300336476234687386078851238743667767967993780524644300955602235327867851446847636090137004345328121803270257575448096926778040378370327673198042088854448636040696173771727222810224840794653004749861506468334759532813083260651181495543349809421076687271022278984653207660058136414991192597580260964620312751734231484611741341052754812165645734173924837137566558234394876521843079268137164116323768730539046985783747188057601610874436613012899729285744187526429895057383195921308381382926486615899091376370791001301166044115393555594420216066083214117975030423475985453882113840694208759090650987960047925732669412289199006870416055814071005056149783313073164794455852510049056134106677971740291344765908175496986195467659949154019700380843766548421708747803950686723850235704290711000913671776858040438411877072956245094347385356856959863566508980224368692541390218097106840573725600530936595574776029247745317676960104217074937246001880828365836458435298288035752218036985913476085956233101692079029081087631756086297223652061950697573903154788317896908232626864856254185793763136932487731263648495356535273718788731958376381863118212954327018633957328188235815452654593587651720772830884633925576908001253752492691216911070048513184139335185197264261203063068439378887666262865570436484542288782000613483438572104346777591998214918264791801398884175537045584399125194457924097202074152325760960980210261774352655632022133932270039863036252051666247611078306416945791737807114711905750799667002197072111172517858038990806127525239123561705907918353510683528764668421965401867984611172550775158080656351836259524276212987361971642138433059404092649857753548013308027841924511249727324939695611494009211744937724112339841897653448796288595820660794091659906914313094513569913173431182872216453626399442889089563111114042127949764443750697499663048171590834823944904036561790039708780722819004055031663676315952762079844800541909160575678949449025065432505386307673467802949187141826847112175739477102737578850270990340701833145564438361849222118082792713689935346165522816550037444158129981315049067892646580342774448448218947964399364361451967256505458677953106670641029257130678593971784701729616991940995815855719271053812389964868746947166668734955685704367917112396208727800464157362033296556204060934321415667379125451359285342721374007136069601405722762707394686689210359120814432612597631610810453911999938118200312672358361211010002272014199006675875307778974451125417142243785423864472746500176437217150321713171900773278215804046281429407638232632728428331100714338256799570320606409675548090102157986907136474827324639575044677341377688204941051377227547901950096845494663929728213482774074631695230521986037023598901151026198904209300617961034899766887218433236815605962211762588928314473782323005063664634658096467299389687817189314775515769238606635186454644124195626837809627803182310005979886630912541041819073318383604453411699377428985375364083109620652925243607041388961952680598440131912231684630269338539397054021223322229407162850982379735726368373785562480739892204716416293165289971728823488816022519071862371800864565411903215870461841081205955303142163495714150545393471249462033342610701377555454174187195294754758095755139511571286259194246164174819128145280287897598936061635017011203053777883297338028836525633184038118475726783945728486890684452648225060738070699573461120958079945700251629309460189901279812251387082769191144288045778097302806401668004310408837150391508180003365631211736397429377696163120889666560245230732855439989933003282786380082467160465792635277131502584464905581432519219795371731298409270340365640804827210205262701537667865114894299342572212612870272291400660307507109035629545758745431070875289251016906951646517634120715591291046596310502984565069088851036348598658646666027532853364786814627424985678471434797951347380741813623631375208197482481295744455725781425489562178295141576398851988250733840257918191939683806936438339345260905262027901941573495589030069184517741360002191849623454910082118547388377542199945454536444612938006425756501904225196835295603568178773042231678124032270621287397888995650427729489552524426580568866978759057042388910589091223795791975613110154947037165567835389032815550400623718084924712561721782733527505262290181762032756409205415133914194960023337928697211882492754252186729170658120720059537059746918680803237695674004958875271770774409472844571798883292700276336883012184971213700578699174818369836696740303925101410337389337640476074355928342323637147462276682442750572611819148348602514247007080458179189510729950267936943158156989260677798130467178004526505661634383903016937661008138389250274734718361380005496549176282383326071224022236755986072150965487231813138491458458111032194828764800391277806004601288454742572228231186836136799206310078842177120351413547767019231992168805942393564769527622782195883314815429588885727183077474430298665874423106326110600137292460125567141233510441108526779832913295650672368236497661235565719187476337625297227664977136411866902414405447257779614736137227044885641115576626446948974565016418954679560607618263336465275334691755866923581497168267472159115081633951127988455582663986737365831346183646242672319633290938311376127864257967766541602912456043953064923682917016219314846953140499423088428170830548594179253438518921404708134493838187252799706292242026560581847471431951634178895396759142538152714054177426968801089186096898827875526195254105199643958319064723272329587167284217119179862471181182780144608630965489754943123850882379635148093840880205784782301414074791964910843644415413840862457353805616260536045491502700425441302002666722834019182739640676916091657824026858833045633794121548669859437955127080882716583342782904260809640243519845861644060877980473488319670604315128217194639920560938404999253608439349601364550401489504644835239335078698663222370740849612780120109325549550697132794987677261901729620184654980972671192430121725750867434575816864613992059377686700286464360063485585291164958512153347869733168747395125313786352015323100492942155294808814111161962580550180492715428747828222529508186670340549576098906575499294877049370294922355321224602401707261737826751339304107948540678667224111871630497110985864186672720372135875133881853120473342638574585892740402326466012680460785854455933694136841697395549058409252866109571082947460197028955474018357963820869114741951928878623627390094325319831061635790091457450648513463908043700159401172049079375290671653658131856388068764712112344990404640296393808506227625389891924117278422627467067863515105171546403876420061456066484344542481736414498679273947950342434452296530301988831986304467341552556005370469595666886875602336330258010879837332284091354976311124748908862910892963395436733326128633706024458463930292938485565103366815547846520945791453494183450738992002725936173815524295411137076862396489555575431114131524340887546518290708470137213411742345687222736605920365569938265604757944195999553997181578964570063225012959666672901705112613122375674495004017154260579618398619262165132867769203880042675530263169554257092481782975929170153796572151530072043879455879469701179246804698261244358622982041148823267737494352047091530976460921586867978051608906338203237323760732276957571591326255026819862485221491882378258257090974258689048617360436225762837524165214955452783434501455662069430686444397726571463691633515239514342561077838544741257369950497827824690887921607230053079286518398821523770218161139638073224315273639568939675813943145119430696444446721990937464529180941129095951228354145593745349088199062846617259057814437016567743577479239407312906124982271660909545085816424304156608537696918219975845868497302108874387250967828525604221929329103663053205195122210861480772535517789767653616739824285069921768329309038210269758389842718774940803758446163750539587330108557528446474925811324872826237955469914805048343277728668669987340514906543184490860594145906371208954349001187061464137461719261820858365170619466274354625996337027992439314609123108394956692684532426537789369474647154352039215155681471570799637289522170435768091075278183050291110235661454777563098527244687451389617393916877464272939458655685182136425255236158321018611258382076163854426464616433498527060812365823300292090436357471417190088012680695387648194755068146985989815302296849182058598156829283633593680134235443330561882128469938615841565641524671217016976702325380659988245985841215084951459963487582319839593242458658441844578715990206640810199288732984182670174507565677987823885677652476409950869545071989174825996278363445010728131769613065746510268613964907732239861882184367731367645254651767957795555706140857380892252226307439162577435097636527103573127120333268425948012958593248870755903021464976174601532865044583643884888229125575425181996105921710416863879774015538632541546106313584670521872838585379620572382982788447248804067850709400092362873527577168360299768303974524346517374680509042023769798779428723038757039724130037011409179825594387724929431077123348161400406817383557713998971107658776194619320817948781482468423230078671549472035524390903413170143916502938842603011097344556855156113209574212427591747811318266751052926034859857572200370090650078540406503554013363856888433909605341803589630060701572631559590273414376554693224802587071728351823635241495098958834947074103052194069184170910819937818591139177423896852044092548990930579960176215508402403200666282558514476694154178844099631247889185646516878247428718292145795829144442650722432037624345915601361548536109880878777434766470376332476618470034682621038271291608051121104525625145485858465899475795583610440011802511742189784804860698573549823312991241316732153621555066593720929534461737266979851986740950177842173900480022453628255118873615457709199024826031108730465593912870703532197302495400084370185667572257947225167691995268547606352413156466974447174067691391547414652657826942426358346064052314022624323910570366296369403923995560147435833472651857237155013314322529943446206832760754248214420133767425200226590874727573136392534623699281221915759576024857695818081815237027682320638172523889109050240301222474634266638979987341174349015643329850446943388782061748923954522449941847521962546364603274798109495286992098609510627996463094408411255827678716795012197780101682516435990338889629881960743785507836719422087474937328374260009633412510207074222335602583344887047095709133692342099772956070037391195643728999004836670481086755272494818963916004195164573299747712911866563774281476095091338567188058662347244772165128439032069152975159948803323918446139820590548969913277499518400072157370744511225756290769382749801668190830874850694685693448629769919372612710778870685184214176761822282807041046968177358752362626567030706009069873306155523419605607162034513576851010153274791691328637567890468364504634512777244816656677669099006008052187031629326119779573930352226334337719263002383315501196897018140182926388166964304184987091584016104428966232013308929441026892925162343064902990723561231462020009348859322728331697223772291344076776464915985735193367295666649817852975847177019998535707837422573102167044716680503876869613995950813165237856334810451770779217542958560635207758239546436527587694164294414552746624991211666158511139809092224076987597799933676799408084002343232146201057630423275310830791491516721413758253119024288871389977235273675399027022241243532908633296923157907586250160167993874475927565011728460685095688136120043144798012888958849439325133584999011373597261501087142898119730924879802621658511784215776099471362817962227526413607011188259722968030087370927545413076598789414994872696421964188050715496909958674964774752563012632800848417439008824827921361173886062927091463059278733952018543008899631935606074268456436292925046447468065089404912933234938224909172548683733628883748142852167770090234770860376635580107973876121640516884657738818619809850256575296630672646044823953815339464022681068913649776760405435958972545967438605540839706986273046374620788157622230578255918535794234309955271949811628335470532346305722438638801419341754881155874586807273758744119889547317857424747737101313903619715236269888402466037863240632730874187750272237726737122799326285208007057442092200167460716401003167469197196748154738641089643637754658705963845060041989228751203518089932718085148344429421747346101667549709788380775625001574461001362150448686712189001955638637023974233471148868074193700988350234119425450525010680719344948192673137747955222412519761527332437146326385731105398615853613526875213033490090684042546368172217278964628768200515977683154894935769420271488825996521585477669387452603148943063349431423553216255809276807257073878279987913459279967175961752653652461252456087590201744183667829151161140358958735096156957577539426544041529700692363969492242688537331849585599521496644261096323579021871023449218787574060584851179788328826743770930036520152119623863498114690327187980968806558145679894835756379048649796504499028491758611449558627460102195587114947149451251279421478879390485005160143285319987694645781489361863204160427644370023640700418708026874997505702274384570731918687402666784825123747930100945204113330612796274988499222095782631439905638363391766620915851911089094330476122904964210291480413765395205982894879608246947904648056152018767280349715678672202354176103292335262299815404652115146440980146839676723626642164811623321381109747872280110767867165861616141711110190157434826336468998568265449350581343718869397195064202965975178823420811661716097939262438554427271721762575783910230713328059693032143449224122674280945779159685244355957781594294792329565466764561476471619045998925964184457263634931904923996344763261178759619099817997269400457779913164411127680923598293613665127123099765343856811594596665959436135639113148777302798572217510119678973328337586603002969054845289459287146029665473800711356544666376418298613413711299147385595729669420992494169352707827727597920916295447209370889304342849799265948267771647028936239685627221488258451014897407828740891531894430483112222526583461715521182227019306887923517350170240839973680530783855425251000317747963091915477526386888033373691621537629270304157787211121210890038160730127324328691892327262794026857014355481378915834285357908669592435284179517879733363079368134744503156771225955461725799813454249280044221310673119633448893746416231326472079529327302112143395543906451732823152555711598381879594902250817307484909433648348056113549485315416833350353408192906133189310176506323170404871781634624293830134546860798876694305586266959975176872203494218474405264508664821880222537142886112744613487167100650384747251995375053484853995118849659523353594773077476061016164251063251681343677399472944207864701723790899632069041389888702788705650382664108645328581216719791168280434853634704728110312933917830489550246012838087074333961029311993928928036582813457567185738341918451738816446446292834284446467370514842094162096378194356097264675577881598743631073114235942902246292364701660134660461929953472589267239266084960885673529259729181596957937569995298144334339240796227056796280930907392019220592273307110372816864830318401442480686694245494719108179179533410077741763210160586472468604523198801135824126034760165149239496625706382044217946868605571994837377788420334975206790008342464776763814885608592300379241799518164283829442197092954933680432118900040444491457017456784466199885378543883180386930345190082071275286473529432392795850284970897432520180497667118141123274157312389778892858360939668773762487316139697638617804526866605111320134354163201755673821950018286504216303287797798976761793759033550765359688493728886187307891872164618122658804582764141314483902058753367434478245015007531358467095479103221732197862610411775470753184747910854117997883082228897150799082545656396892855353554262262187349154363188937530373517013040884749624647359822037257514830231751198508345052205813138744549144292056522777283836264926869321077799352615278268810476955094119958796228285490919186523775980957469002443411696500323854869214690916632996729564643645346833356241043627135414549521764924273464277684098209162315230749577516560092158445928437486030093309310056953895154669562359974463962581235071465800818387020773168850010111022707714971348072035077940205108675077124882545395182393962483536297065438134979613122371425174234552538733638550376398073671582693441327189534515225578586669899886615856300206488429966232623980726713009679024411193440080547848187251988593677833379664882871262007413385805868021432027713677342647179390758218112391604398660746093964190086220797152449285435622207252771464446982342752525835520428773350510124443877177561702628160072930650071825304795618265182973924373951239539144653491890184039644670353603741652155878578382301355143021725719617120511331869249704458453103511415772107946641740493855162193082103272969603174825047613148013487442097110988334808337173979174002742855256941316183956752646210704668188256054936973630042880684354580023502154035761358646308863459973786214999957358009195915528522197733824208892240459651608516457211188518167874918985460253783801748970926586402362606085422058493155491202661347277212138691254243967499867422758839069192101762712176073221566564020779375296536129557063785386722138502412034923124105025883558404324341021839809919445911026182101417810224395207762366496641742900094129234045123984529945063288084826138046620043531978355112292209710412725219723443447874243091735416844235944753718893919115300232661840140485304899636931120911990111556168692859954476338361688505199111923903765787479789020154412968050814637594870002399181950036217366875948763367073597273467521443123242949985678145604351294806992649319037189197528322292431700011559583383164501351128513397987454097511509389108106323958548424093770291844523986268448425729084584749206446255563834257172581935195647851967266235200615777008112776345973884008466826611056468344659834764898805907452179233104825962095814933193882393164117759337198888404694768928852754894385887178510952422713984083111690574748769655146003065178291833164092041199264528731339838080899469955590932558855681616334564731653997037124384327807355557761751701880803293750446560664858917209255546562048492255795525987352771484645504291169602651332500869516134329370917952780379377038736638562805547460435360751901207389204530555530838769645028929981150721372409208643080017594655556358899809224746046096830697271093087371419485321909376058566888747445008808839050085161813180624033625840567227474141469462033163820353517121099134019660386067469516310741457857087225588427509362330080839727672070233448686875331959526796424360986165774519810987363513030018187665811434993557998847289087012020536815376166300036761091720274379799442995795490478540743112789936661280560903631019327663336539508758614627970439696765631625451380987912230654960878588020775007392109098604223755096415086142445369591196289828731749182604157724328980994538121212581973644904171466101289727707493387467035926372837215659837732548035703280160943222541189994073417591351278079374118077625833181796200602331210525140771925880452519213336541740861047130251238589603475442958630482024356668325624768747807367002698520778337188559418361254793590573658351021082429145656756819917144795906420569824094025943602105554899447543307515615241062109314099327495128620858106059027767559191636374439374009985652129395544166346980286315686447592651939946504882767383556072918507466670428988011798921845018350102695054981915994021400723534895759456595948813245193643235764577148224857777685120062255151666005661100121250390363499230740006000091037200174888935212862954852546610170292840592855493290925979821659286760095259450738378346418080968453211802890041757976938280889785186832749069415031273643547293925718332157155259033493798206404576137263610035144131611840061250566223803232561668740602415584976511201546367803098524645002108804073145409632469775660898743569040136545013611074652389725351207666807436063796437674274633504103863799109085601128520104538496227706024803240572149491965055465418258031187867081681712494780990351824796752807410246655583954288203969767257485114098572766988861276706108969542344873684372106888118109036264681802663067879463330268624526810965409500378808048647211095958941845670013075291467006834339252335684075151095315727956180551187189101311773534708883683863799603235548007804034391641051394470921122972786244162796161108792686143243186503813258476444478969452996855061159199356770791041855800192631046438503354172270553796122951029724144078561723820812526229625620566377527434388369448971897534473987867280213135177510455922384903112884804920366563210911185806309877986266890719492429448980083460038793288430288840089699081628751820728490231182323612958597703785630323072840925346483673474590656146781527978969504649842858002595758203886804688442595662688512493697353165296789312715282364545538653198775088941670322962540343226499214119747103960933441379370052825036570553675704285978982354606580799709035960925935954848690277952698661082389371139292439854644838699638428437517871252350798907920790099536522927077614463576004786761195304056150605402416159904092715795716907722679068726860994550036605258952350091621905189464557137272526552052205884397420737355004346164719384869644081158760429142782948050663829433197346456828133442590434568716904505801813835434469703484579278685231367683210963824803397989279061666424061256630636637343660128386492423090361854924535819662828469029963032770502997204668322641973574275827408422540660961040928943957761187152984504369270956153015424391569740733519373093820002244874955144818918351025091870694341004161249173386739264261851171821122932309278490705477226688772407836993856161130845168134006434363012953285944526227100193013491744025183842106851983859839678878473469375892583675948759518788728877523276152763762750019675312527908005724974389024832134713383895349447318114093026755360624267792110759597211453324868836580457581536615830868217978063901247075680022992221151716228043836477662319022510091514206132278247952285538500446661031816354357447897786151495808915441262492292559844244502943297220926396602943033726952829807543811893544502794465507142054226951102072068990518172536184971938713895069403543108127415373128807744491502672920361664054900534892904480093135936392168951590952835743478162012508319073833364511386738734823713645298480623427524573757461936635547661029250761718455113728551523066123479603160113321535289259829860748680190434591149325746318497594359949888219754590692745841948502896835228725006799612681852345839133910448851439091546152165246120758444651356947172483690340225618356539427074390112319072273508730625595311252393515969133922183273598898003753638831176150229678360778201478501447693515320970404115128924449036695977090670664495995799944848383556325009575383986515037212764793959027512964071470724267141925320315505363424167257685867861752209573754888867854200451673614771194063204633562987097853881613479669616307095284038534102369009264952513176355079078676759300804013790276802525231698488212995828775608219922280316210561046759174600563865127867825062644491310432747826769785133844101317410552105148659300849096117999926227759196104231525984888191148170648167084116269978867324157481057883394937058130092126606210245851743296342183102578341079664187051602661064030439586456120739785924304272372260113922418018886665524326953706153977694822406794559114277297067928215273611001749271101979004650656467438008652862829174473011879509792608717217197269318402240803031781012913105072191295650107530522255257158945782353710634366048599230293041455415642229707639921052900461957562595442325642974421844585619377543058640225600669798254753116339773855603397168523670382376352991012574219939847394221879146170046642228986821393178334534811303995943392830452262732915803275462175289438664026889700541806086035462110450881378224005198340360499106444582406772319733770659176130327940774421898609624031194147973794244810274143263417313735006393206071902116116712058240565162112575006817784988288784281172324899835983740097618667462492690006572479863219962092923514674459479790254107910810108677945957506720508420328504075400477391456973547934661387085118575129549735437072321181123290070380742878921060752740980857832421687585377008801863576223863719373182281864999186749664786413882429903112233055144098023377969121012852600486575557036853901648798823252316286646050268221630821313752126946003145976380730093138519557811659879628314567534455265077978050465720185622910360713320484400544825964236501463958441546537969961419190146492188704941300261159049637390396894551608113574131965791531791989239789235502820738534975188340881536104115634419983002416188608971781010328611317561343990162024927907181668945488357302176365523247799033990716583466756726769334906596211332582115576759796105901697484963123769135873937686937526194858671565940775093064067846378587511142877249001761980952441247225371582314389264705886580440481879142741986392254485863982887889511369577640108207590954057265942119186197273642089538776897044310462471801677861528506657011778703442649995578653248541832214679937669157237257825801580904473681148379651162625955985634913309050082181688142022592819189881419996457398852633306441695563838318591185182007460639958354445084307176308008758365431569070230787801165921722863488990155241875658653736758549227932376822923700387382601412061359775488086276735341105081143954823990815626220443174230364416914149144933661524197254403615599246009277704868637298653741946626436694805829880968048858738501695430089487046374807317980675037700325689504280592134342179970387622080225105319362562266703710287111718911881192523206356317424045901794461554084144501571297621504567166867506824835340666215214689249045646476791714550179434692372818295856681569832959655460308895700076140764637600359629115990448801369901491010655468793122070401403608699546055927414228489379983876972669984505557448005913099274709612895066028208741662946487372525137122711300148187662174242662666473989599701887580412726423097576624043053160839098206453500714024844564465240438910985922708960503062696957084437299308012659246639636685511094365283870463845879011029601662348679962998036194845323056536165041194898227821457682716453568941096553285118477788508821178847252111384826736443072182804619693236303344214720802759686612965994249110026976053658864211590101845283761908497656955764617212240452691766524935165736002889710046510159790552481607668814627679774058950542369094878231852714945258212690711566756492840588576097153479815594341362537639408886900338139963745108427077126759129439653227262094948284889167662760301938141591941240447451238916801688403676147416441635737326821545809844585920676545159694570488176965611102102362089664201581705268394836110302662227283156662376002426208426823187621147427699368599848197789037167804765620904434297894188598064225506275439363352852969394483799468959802264307244683995208701230065937256525297691664787516769132421976754957963490069403904969045083715515938227050545113861383697720345962139106010939462130400111626165680236294240717420404897758429260004973573964430795277227174340899081283935785032986759722067073488273370235588086483157529162378430087777158885331090401567248823517725791020882983717405142232656843111126177037544435772574696598236495118939760866786169306355020761036618144310918846993425453195347152086897705365572008695637709421449468524075338090325897219298767924500486665865173103650979046321453491381871257185557721158623672174454497958814203656194965787309300162955235043125506906351230542048932756085067386105172913435759902678853659640606431374085154823236710358140889226903018163330720324284420950441369202671001882426646180036053006201095989164343472862457602588289159848148154113722684183815275126845114438324717973630149091157126412015406956918164925824131946896206755886993166300508140157858889949029093628513880528309164247280455808678888390126615860845509333387391705941850411695880258418907245695204755075299800412139460099495947963603013260510156734086922809329677617210486196405195353441857482349033730547726749523455874621182191864443947422465477638793405654409998575544964128424870564686300867636279364266555399907194249186028174166009278932633039203049741122754593603459035546568847571910014422833127816995537040601477222358167252603795748123658594873662877442335589609852197268383580874372552911496068836473952354028088650732700221925222890076337157216521853451705004016317379744065987381442186872162532291847082684838680552453491416733564315283266797077680130397155505399103154297573716158220880691425914904384843376532376048335917677920372116423367514992437288203279088689416950917939054527907207134942403888575558044901249887724923633231432277478187742973654072498669069665439500211097479157072912798599639853031036037672763826276343914330568463774563910122021229171930482893891729004119401750821630416939399999720125313491213726152378792442932252032315021688408756315547177236561033382040491765726191712182226842647093923599778285767015372781432104018203471678022820306916853368166881469914661104170839888802527909892524875986494424436197419899028644745492030128261133859592050193261724506403735690326576570970262938440035716458330617035998140129416829385950289287765835120859481985594733933511903121410446360567323251317876002599428421790096681997707998903241892697205439283681584986096948577060779392688610341193104196955391430696849585203425541461928934421723141368760387646787010004751072579346296324680454020392970150324527442114201626305499080244675946328991004823642687311695973448605891597347080072436155024423283959117667803655830918930767248140538446197437312004731306165546602275086419453961020766450258674551014821669945238707842060017209023958122910237853480850367302091474089732718558394048209966751273567819650503389091367895464828991887998885608550196324119907305210344694247544714112653145122160204351009961475765114201081512554480519383977662190381241196174777478145398979982903570460301187972863475368042500674171465975049335590031624814431694843071031632167506477212572135892141068668593747128847788194696471032366829736414543579524193917883849574650813519881861100981729823164880615077125109610743985919986574241713673644029328685981567184067906194907471838506815553115361110761271232421898584664617906215688536988712870645420977385638734427879324978504239828015583252836214506148737217489744309298754429242457436339903965252784098513447807581902151924591290264473357673562505994899729764562909393461714623528859728216175069859517531026833993840174304830419847134593077032358645815084925818884387648446190003487739663482056339928104149457519178038693911990474248272696787406568078401822153820002246502110461702973133066946184180083930782974156750739903762636243169908690131268325668599205855203594442085567399819793126761908668555491158490171431815919905198208432468054282735827043410105858280689950925014844828960144608363559607976546679420504479024274712433536411831392282835415631616040500658153641991253599058986401002720210754554167679545344565620810626721688465508553032471439245175587103345009506469771908611550674093652471560135221094133533202688227987793338650243639976874520582602036131852833196837521687205226511756698396116488691874375062216442036720717026878809131131157068795229435909687934803184311581283950773823910914431899877413357614204238272115719968563045103819921189061201310666282096079231088016597302116840622893051255354693964506260951797936760273698819353387245650467768243592981229779172826853089884518210734069369579415965105198943397168836922673097206220213018506982109660384895805301639087892968350255655187016484429756467402517695902639691589659089427212793664861571465104369571585852127753517871327938599701906995508465717692738569876562611855240693991050564386915925681035400197921929943453466673399135457460977766596911512272122533655246386164873865431495518148670641447994948227456436225233912405256165063124837291142741783989419949230833682097859954083980315409185243512417623943718975751810261874781847075797689536880273466307116085197929686211820262352939820959605757414289755176104629975460341356074340548918708474728283924290445085227764266450958981661438486095208772249427868900823168064398123564301005296268828258607718687824687434372549097909287698845079100276992604785773220176231263146946309791742856769832174407725261524478087315693985274151980451067888159731213688960511142290373215543020540250182852201509948707950025503141865119967821464489506072688151038463396485447336334774532318111453446379040080444945305717502159428500096906637369060604743214892467506414881281083764999299456643274660081491578822238547344780558490076990846346590650349989867309901682385525019130376254332731823653375018683158098979109738937564509344743482223952019904416988662778762371482969372576093654723327296836330178711930495915837676831640061960133457164465336355939182685383545463470920121712152401703845501516218647071827793911296100351732978515348989604756191033368775079647893824295231442444839841068434660631834564264383655323169958790842893615404197860409869417521957692397819071550567600345899720247710058471444342744394759829249544690257555160366164278675566904906629047497587110561677759684898989795747005494629698861417896614446281569677844939341428448467268827590796079300815283232420871835413374885321527975861691049512787586695917284900268257349869929819907958558268515103378219362655427970985678186956459025288111225690944457147580531573620245785099207700190444732250990279669918872432810859378945224332315607330659796432502132722733616037732187750116481563147065777596488251805701100598449059082116081566406593272564267797144212684962474529261746822064825415496928750839290770094069800900985362828393906958056898497851841254825283699130069935459797591819906062916439573803236879857669458089985600882918794869535632478328348592907132185445460103167706839997840692821770258936417702335717949515561803922891653183323556028934661751615792465206998226357855316739781601759096286926496175211627732004307627870366787970967151635966787781461906275621949002897471447387667177402555314027332578313350319664633137604887802004217386519278708878262684483771159365615627746829727597379602065586843059431798384390952446373151196558633056347272839386267042819240878462976524604819270408488224211145243044848208498766013157580694259289965235978402616314588594036047477405213926153593502360094562040938085258052994871818019575677250633235506424384493659921256247610630449927632147172027356403240708175041211984540696376830603258257183858992823144221304471701832667281851479263367532767273042941190455417142080492007431602400481212396446334435354742167836835870866597736293837375857340738231342644950448261935801989431452810585288516817790159956244004384944666704394041356583940282216419610014211783706527246838123729167709116502345890170399022361119724747671896003171085737242919195093565488252527197138806920363017084613859052178066534688714953286173973268749242062250566906854191941622642750411114905682323436280836679876316393368764097952547342670975213842297914265663336812285949763222600712416102895812991233036014759484752360366858738938041889930861703373861863052840395521450828218071107004032417031422804794418204474924449516080431890050658602579044625774104989258990880907327408935757528829168228203475749056273593858486866526014025979869580590589406894897135501128987274452657242064833251832380873524226754321774460140414908229702273360984257102231060527408681082196810086909553537892062374002636863894178861959519550131989878708722363642710586608319033792673472655235322870544529269582322718115617430062628393746602092787796911904577822930188328280040034380296639965062619941186118302556801064277725059049137604244776810549647096233775575450790738417142200123995259414635517096133273316497859069094510971408290456143488288246590355006352308138470332737565911926720370267946269907054236565374108531294641741142007890681806991431726843107692386161914517686756515606101654614454238203975825299713242465494790662346652417074007940924893076689701129714563890177725685784947062825850136542325758425617377688379690973551278397007668371259080220528476254428463799147778652867947177220287927848124903057794982684114348536808466364050419334249004662837985900645246356513606712374398284818177046214417231689726102241168924139424493582664227040750996889145383582255372987903893740462657940824152626406464915849034010592285453144473018360179154641975851289676016532378412000096642331760607864378210523366728778079227896598990413112382198898499449718733769009581457347728133309671928304108370812936659214162418770115038322900552671801612064645831459132966209060193421492563981199506927153274461524184026189750280251285673138059397730819192212613083819901919128374901440508961626402110363755619715288080184280001729736142611060711588516119068690650725076188319511031436804935331999290032584125716283839909703716165069510791852225857956617369759103780963758673667751360757793450425674590071163481250001193259534355588477573403223467744428576611793590942087614370967499583814692501049989351719104433608764824705053533523847181656679732507627019723841342213696765067265994823384166595098940607895606267710650021011569084314822239553047910386159245031788124838964429420273690435985607697244945744429345588450661285424069040918099318868049427038184829666334827555278702916255446826500736064421282401677724015100268332363878373644574668459905433207430879136571853067566979772481714631493539824640991615239272319381749571563504987879129867285118510336174010065929585763402213027881639204408845215956829191817837439299743947907147229765848339404508488748940925413338290865926250772767070354735320993775357842637728923703488654103686497570357283816574764214900629107827137212310394207404518739150181840171176409262369344977926679132781497020538516058525395283110902768568947785022321890310540815715740371117344269875902971328252341447277344953555701198454999156554714459870433052882566089165551715000159625604454824168691077988047851084958867400907405400252794156038738059612016858653318512119721435069365173175010877208401392917538950286625288033659176933243475670502152343881498445214640034691257352721596413092708214853961556638777227845723810823727013297182420875382130113618331942897718622080312841495522897189978597443958425995355350958668760754849600224502279783659611544640663923106714834852426654968202289841312347456586873607275054221591787763113260153502370245244001839148081662096809088210789371719857539403429140638052743214453024944941833372322955051287177560044661038119987081113485275288903397122574319374422483007238336838735778386513693808981729527347960709587220063983367954352659323676333761423281101990994479008113197780586439350217958400503343862023647274550434998262113976168503834245634982601758466642569457180442266667823653960077039978802976668691090903943298400287199497450930643121686504645227862738188890388948199615649210634510481899637247608870669719180038109914057608404615431224477596682107029990055639935401461435880907456746403810245402474736182025811415985716745430432241501979460766047831550329042532600321109841316625678965944497325823031149783983152788407534060318847577771170505965502447776087292849824642795392392170524213642765274786533273846231244926186581373614765676524481818738448168923405580874936022651455442758099836696992524738968471730507031451447341990246887462180119971486921837176111247425394287424429535504602178828226931559805229425489512296665210476435129791386515882578634758532425476216618688605409216435511902556404414878753526566800815310631125960696207917404308983040916513616802098740329500242447281945191216827284329804055600598960350656148147239026327772329967557014976423132900245220545898539545724790875171053331732941728407350081712656596907064324607002928816076120434512096247337745177109134312072622126372419027155433887909025581937928405459754279251933743171314100439242152200058552866815623342064584086981704468038701877503619813650629748408613397284798835863671012929631363643841109833949720069439819417108069255224234502360660710878629826136023763802899438454160730264356587028777634585877399565894066532117933366064741047708140347724690823156091466573472368592200227733832256607596322796996575140893855439603778297694986608719458485670679142245202971251049843731281236699501931841816772953398429740615321051208149503289169167839972609385816999764022458096995176614910739417979460917243316020348902657974754212051044153806728231558423647047537400008312045022753982155525729329959608039745368040239117829136740363070620210150842135983874978712137238719573516230299473063456596522240518110067652092403717988882086347946363486209679692468127415030334878319494751347045649336340865974202272494417561069419104868452532432685325070324171589384472225919901701778741451217718484608957851084634961939875987525669207553481858032634403052655599304930045539405192680243529133778988115114974712502039297585441567598489325407831577026680844120094458187982516402261838952258565477827290102270460448066482945975720346831875600060293754293750231603471976593040657649381231397998639176945784034084792059047206607264554278045285142069199132193203704348059956735721815374138602178129817107667636542584523951307227415421532086426433448653603124682384371230616984682054905890287297656406866782608385845864214139333765025788870171515460360920026043932619168534315681041724352654313217722562274304924823274393892847706533658181752743533765461317405882910298120757791808372339532022515646076750267124674755337915743417255821294584519133063754923512494443360229804757399996971073640676686744845526784586919313667842858215885970216306788261569691833000555878521600804930156660368117488666067050547326950425119539418295541329000985597647377875368478006494243192058836467881474629294030636716027501407022549807086122047868148100626197839716604865786900823144856906418836431672084651680903118665602596049886819785659866399418072748778278361501038281466435136518840550558344931427650806055544834983564438040849026964994264154803501413970337561680719520785762021592157414061156352268501280511007781646767392912172462747520890123608277074935990212580843823891452967578572634384678340691766387532987709551163619153927350184827892258337227721288417611199298912894577557910778372758223307689479160781176086655771735323834840950873600796821363576811448136991986200175897804546918388707141209378307343116536648652069771275880927404553262402448360708107027186999389170529289605221666875396226497060816026899986215353138479182867004537775308507301737513598917013545297040278887523673027849199995471770073032081147722567045452769597786613793921780677180714616342163064265937747596153068165434171916947497825292672911198789189632456130913136383117711584146131699161967885656807656025756792690610408196801078562177326265135514175019274758075415488960383758865111002752794455712676005546602767700853512636620625169812212114314299220936072838288974652470497820254988179223472513017762775762522196619917838103107315363061376722850424645394177095836260858764447460559830761806948335913809201219822003775527099136006551382633771587703257428162736265820538033797407275172758520939952973981057075303072583324900571779420297956406062786312463049110789350178050404714305855694233432872542056944630691748327988068360136603322719697450221342125842316962861601762858849691502750080317140761830111709414280647583488438363739917013653408449303775272479220579573477002074747252098150656165361436873787258553797956555953067886005297497351454737343406517525667487084423565233393887821465224827533856561689510980541516361057878051758277256715877025141868864174247520374386435131133159453100003894101728497420526111657866749738961310737986217471955537408823125296870424724434626638977335447379456573200218231168843079668924339505601998431032490743790259478273795330850109500924333500932146188320792660931795106512130989453224649454340860017988418400437166311973261121534767271478739259604567603742041884909440837064640479710754052587954622033806867670718281902034517951836843296402916816721495221817298329727956207975277828064121195765467029413572099427770016637675968832580639949645905146686438578480009176211792401389533273686245864203700559804985683679529085408489824880146716599935021897835025062077812071730239012585789711597165812886210554100157941660259731329527566766209540129414195358417008174746563166044249019593513658231110767525647263257172403880716012390159435143072885703534260005670713397449846127017864389484931174409208062370189555237529996199377704575031235860297168090674584043210896506488574704175266124262339317623061181651239176181267303028667579411568018456510926668338193887482014177830324837883786695455445728755864543485615793687126012124222189855874654395252549373254642553108998515863579330702177871711342981683675741034655416620801381295262525101617197240823302188984654884505166297957601265634064631107218650785715507597548223368046402451106998637074896186164258020300443394317058748507140698509050707631452870286896651251242988136315687297717020342221483060213044140309355096509542913511705764365202017251031392651619858041799402486080808375986531638709210532479941347046445882694599507248608501932026325293746469865314285014332708016861225769927813327155155477121400656828776691198447404400593530522740209994973589425380898745926703526678613377203302604375425776585899981245253378270633141906613245378911128221563147772109207711953886586170330588263596009226085872858394418307294547913204989217261362677357079948286393673405255912182770987331684877012867543405861276206575231975834551159015646860796726053132927150104123356936040128973077254445745801062060523923052735128522093254777736108413449746353572010588145266655139490798536383782641247159032828356737973325617876601991604525385517111203488783943461506357255451259600206032053916179645371768015934677150947255666767202305650400479716284578845958029744535169016451002957344475409865533282797842340157278864872824190459038254996341650780795624443200480197175073457411941087039268626013176969763679092845943380417378231722414561112880190253303563515425771457389848551225396513116030464185115038533453148148736977810234148293876589868910463342981070084678533949104953929998301355619194480172740258410870039775977062540579308884429970459544621427286504131104624441224708328057709570115313302199999274400431140833093078384777273804507461714818733200045999040336354670386940999146158102171472022333306444362736799013604769378269229855271339031063022599549785165487650757679090870070912483776404213532941439311094249609268686648441616631981463139968574823961839426404019132108650804417997340900635240506711264750903074277994387598018522599795069742050182072676719898113469152873242494004332628167522460714340753213000932509290811945019697793211575629723339771321726892651782081782284817849622640176881284009623321215382535532742334634675623637975196358858698986798872872482667106183727720095095507106246624708596649119071069686506941728384621965907147511336060182152706556630352610071883559842396889451822841555330476589179245506027834622912239145867547140257457098669586991854762786916542248986741168822063587573650628733501400373671712309248027330395047961291413527717877161072122650183396186718256739923841646907761251632333443938086204927729178159620642360032945319867437271224596624907510553936800368939820881834029398668640672786771200309876961881700507543362436082266818722294963902598373297030922836388361071014736822312886958654273640711985319749545352974784822298368551558995361380880173270157867151598470404852816161007272886529420259380097369805051203527027749191259951737257969220137256386390923685739876833345779281090354313112429353430654810046475070000985733264950530189417340258469422586300119839139115172222551079095810822214691829595147896640351011728033731576825289966151604563226459295527841821024933011972998993118281912546243088965348033490513401769680417173591641059201623230899005425640432004367697783112054500435693462079889261152596578968363960390539946744738879411524441244403468238822422027351059277503371509605309237436123214640056371741582252359877587757490753610248129145924296476273439730288232405500827796987031003764567318483169852951353337600413595218481225769960468085580164215467264434382453188855149176916223448023522122783045745349933728493873588860230862448835285772026524526255145300898304375102677923560771097442091757922205740536355709089716247023284386023789962615389395425069010034227828635954731180274312194438824077431983370240812315710544506470931185534215278714148432450271985189556455326685008947960602324818738956761297861477030166078329945352180591307317488964652871609750655340050604461210746812802635065189082647798316833056006104239248231830265705333266820457577680184163528392544761258370423317550065656318215243893286812761248641437545521922816247252986258458409445180687251710607482788754335071978256171094541663470221879602164949660110784851751600207416017798530668458194239257659132271421325836118354428082112207079913851556323348260062447895024351119438042846129181759037923216650211910308207682705034547487553529170656067187866632763002881598493103913589005113467427943409296691427727326159897905561081010815367451599876373237251369983418645443796563652225506158421661669676910953935436496434521236902948005964584138637730428420868128315580724855307999961686147946500862798523284560561276369744026115732960762150146567734644092139127167445870217748278655155837707338111685099523358763854050423354719964898086093863631445491879283161327905967676352433140906191332412430138693478726953381526362179899872227083012898748528144354756006948510262035617566633350452042004963645848406021270902142908163858679966546795852751624896262846687440728771840242473437429614118470173241259903302801233346669739162770426719151691035278405866109912814326599943517418982942831732886042644600247287007655939539796395608884552628091712596284400019774968899079913975700530002253687993238446602262496400696687721445578613334404820328315891855145760981523861883557243585762134411109697244626092941293891707823383042800360843125100570319862541449123457783624765849134298241375780330280548926825566571646585373289266447786482274336248758011403759362520250469568257670556684468380813108151996418009377136218907470568945825179439908983388339824427789668146241515141619493032560213688701437055862744276381891727462958242394719674287150295198655628443043598130024709254836561822146033625099271116924231185595557758024563781420232709145526071032725856154322778348014717234463415586941639783887815906792787056602960188960493388181327987192751414880040118971451776076373590536021571347992703497075406834504079323138882693330104341142486660787042540604865130598777635737062074920389576509557822905807959564510311449452513994057335175324256987946920155606434407293436736917146229674058765465751383882591753640231120552468737878270898020908878010479982543269980891475792813398173915684182216376557456061119599495614345258381108402138939672293703332387016777218835905180509303113299175804290912119806360950925877525915483018400209736598250256314811863411080344762887622797993492347970634716912350620095682724173533283421403277624012197519159090835394862851706802035985885465583526387417628746928551652355245164036270240275961005839102189083888151924067930597451265993146043952923792560951862304637877953981464411257272261555820021291119082136543724323290502674757843284143048684093952528490402255005711666425870559908614602195422291869074580786558793286780779589608796392654557307098426680773402479920507153809248995104982403385303523731842503245479210716450815478950240314185194929789710815253945778564924535749834880798097985868807028663501091513244848369256922966124474611383549215909399320191456340616391425007528636323532043574371313674636374205512968266653009510911033407752441256420713053928391058722417150808859068241035795521378090537854845557388063603483351594017639694671140685925766685762135790408524778699623969091427495720570319579471475725648990860511463320397380889682137056443382910271160052333216388365405743899989072896232155071167715727843042538501442560801401050367861464161888866911087306638834479395707184931606202875016522446358983610406586405068999955367637703972654202504130119037949856057825676563672961044998426471708013448319096600747913931580282302863212407746625172555301062291207269780736061105086387350723592854548998208731670501518505494677436870464289934130583728884488647400085707819450980671429155340756580103235501294084641305229950972526498549755054362406559502843831359733742673785456976355116281732020528326196744397766077489068997055925106680562051867659225038155614896262821419916016770582151214967836288128311371579699042693140453928107278123334284006360345047630630023187449552327332006342324844602278190100946802111103529524569401566619049580414595976666599866321266012933283946339988769272779800679241043965137051200507310420058316159420758669533836017330022907357285029748024305795367401167691881662064646079723135815098592535007455896924287129586123327759588682867740964518307444128425114268554139955741388619430985242263128241557362816649394031838738389015309574604217532830612189425923236884175215373779603742767837982754132856286261948135342200671763874210415786312609911559593633845552048494483882603406926986698634520877911525304586535057369193905171430887550518177186354823185905078877965114677678691767400649241216549865055783728333696519065733820288484005557663152029301743428475893324287639010067142955240676054173126691546833550205668978149085423446857531662340117075497833426855601013079018415805204097697787093462027720783282125670895407865836149172794383684467176234215525348206176906251529989886674326345350111388340963501901628628183175645874175492708092505169518534815308302186565116454308362751373543464008404867472142588385554349823411307708132603417022420697709635589307374954081158094094280667336633191138887797901747277445772341717722572810878370738219256628879776263879298167327408674127458382477651910410785386486048565724803222502664798151471912758098867741273354688119200089035220996943256433415074358164781731926704654318825641922789266179373559890229080430127436856989581615452091507386631192893716670943632118639177649923880087972978372461126693655986091798695175906351696311243069846550475871508285620352347529083321409694259447615598525012264524648042625751711639142632568060192960433280424755163982998542152637840404591100751076920493025155948330322297629807731872697386270534424058907852699709097319374593738168624515770250057692292508382160648385885633415178382702135860764300745963116965662441558837379963982779044853233007402466630090732024839523767815107054667648686117537268525061720266187046068286552354979532041841756723798696167297169574415401059638171374484463278993131782028260115210972536094918473623705282640326716913336732744008769401659407131886942489367892510621778856742926583382421696813193296889963850028392544165743030375414580643422033498566400566330323495290637635169992823245516330197939941604026744175977129670430514176739897715619722158422085683326515654447844373644926641924349747481117759167817760216291314273881169131506981525433592102033855898367753733987904569686425990137495558703111133659387663181163903850781221239177847524778071038679510064453020032958202471467473444112872916327882521084051321884150903846590075096695448448736506971406784621958720070425807497613959368942638076127336608776971938349049931992361106170856669990006606741731737313133685251229967537016849885861085584230531298874065193091028894143136917139938569926419545211074010690325321876224676282029466919026087254957166933381887430341343263992026784073078509229729576563334443957362926588702587980772990840948521935062105764861610105190358705550701662512807142799426759300774516801809533934327413714493414517014409371926769323473483502848091998391196452323002138372933833589350923432696804720867450043583373682280882601918450347117632375835075187235043070997583190569986710992395834094316564524271809611152121615915282789171838278767651074171792741886234979513448595081292488316534018831126669800395755008929445499383126639751581233015142662341134263028165980073996787010653493412142972723692307980759720489075945434286763273076734152510740862132711929793610361871103402965995837730051955840000253240131756223333959530790917623232220977302526844403343770987480404981779442096766425015168699225326765522255055620636090634886051163560707680882070656202319112709324312533657756735499422985641378039783614986133697590836839244313419682142706728060290672355663734845404343898722666559613416285626472055852646511465941473730361549514590934777323022136996734585316361315421015404564250346253589247183424560853773268152008016402324886256433986609184710816561342867885246251802445161286371281283783959681057888385462003708348633924817240005325257448609942797064322225904991045568630974525954168242145199637145145122978025720520197323410780618212352625341431372386456850094052601212008551524638215119451222821762583390923456756118114483283855128659029664331114099545312608394421773264868435995710027697012685111476831910798655736475980371561112571441484663631880941132903463285548108081755920617735980548637390278281028673134012514843955775540157736036539046123985322366516965882541052221719255912513814549258413196989490869173021461831291381456256726619472583546362627113788317606206861865449079768701801441811611451663046192929773135105354261704128569281663220680180182988035669357227813095842453025499548162780931326847949483818187934863709280496277333551166891099763070114890894286576149705010745059523763997247100005368861552662267940712620576752418521707835708501526066630264700015741099067169872721700254574579227238037098680617134294743452472161009250125531882336357879442022779178205380704020616365789850549421446873780477883868283936355870348302130708413684913154891209715887727947984859064799995136013004097148632244727661167633141321749118278999461354603154740930242087946677202602744172370160358002855021542900617483107322257802104903170299745013160183866838649571919809674449553179892721264975119981223748259912838463238679282656578388219871751368852442492146306076489061830491807413440096058251357253598783941042753315079053087347000545130935156865342695140341865373682505980776911031119102162769818163702515599807439500569893714490649689902296294557980434848838013852643148213484337028081450135776024166677582896554641199315575598148503389607631457844266771340287381756049371032878139661568324409514350989676807764932116455386427463476060363443873882031580236055788840134076275445180994961913820307314895904424531487071801095234186899431235476679223683768198222526593933025817819062438560487248999541306515646943462367794639405746755806793642259514801941108024020234531275435525494410910683837223608475948451862304779271713730597341918367158946195997135208996153216549269187004479363613890301310452341122478427641539095097707880428081327368110264674770994040356644576347827371041398219317901376756766214722110842451284590442798503416894647527396724049760870254271944178714853125589577121827905726942250491580717148713794402942324096136347001507309651905335250728424523734627702612153471265648338844188214979694590071767513479538195908416176947998636382494082730081661415991490449744241650990937345369573056647591503825417322593211061564443293674414975397477120669088073363733513488219095564678851415125034824303335581185513672404192732143818012908062036795027963163258453980740050708970308758399689879178278634796010101860650095979130693468771124170929991088262399275543411412280863279602429652859186672909301288722647960449107948766992518206659488021792453430087627113128361304718243305927790984585526873693248398926288681316277604922308044931986091678304278899089070329226662312589736171961155519351948945796145630221569886122581615307954222015727380743592302659732591360314283651455672331911634755705109677984840767053818052004379406183273405608386343934961430678255121034266470939697123876647835001390027960902342941151368042086417116167176401039988865794707440998769497238384489741215094754205750039272512430075122186095991180122274584226296416773073178263200704178365324043970939419488976135750197747147796791693014262551757930570727343989709945987445789068577610127841022876060108458656071484475061272586223862049442990418364038775525877858357993605203261917316902517512288124474078612274312025863069924990650168600462559015763471244908772875159893305318648845877331107738510220691504355783785334352001465754979808191141227268151304761554408803151137977705445792803966255250586545887689133626498891165915001542535460054394157868197433764071770821388167586196551957038357186228475399488116115405079766390863461375997263274606832431982946004525536507556686686089911602266709327587595037647263552310929381615908530190808034316433821548038810954806023029390642369340314292032767815325379660890038539014760052708776072151195751054163544189918837301316271947030185438271857193509166528357047596305397188853894598813236030773370340012421914169782942888094281648282491076763993393119395157619960233956009019116666323733604883792761612059591177039400869876527751457722093582917523946921132290448008150529976377334850810800351145978610412028462363339547514990302297066267361606420298455505040826723738509641496108166356102011148013728486781417332048604192351041291525143417315289011789567472046030553897500087916666446398583741188762094157850084067323177702385693219727845880333566429500404208818723288003828319928526555856441589627249980601320660286820905058254994639690837819876453129913939508820558035998575840019571732657606283246047052501978066378099836315634504097167167017496037237141225447513464187106006947324679494152264165353105192405187219561888983542972934241880327572913505791418531545126626144537417867110862991831481387165248042628258299178824720606168724702762793678143697658937752160253373070300341788753435442597670497597603842655434728281055736855644190207024263570593975098657002954061460172424331672585270476590769430711415595593124849952236500735160397770555800738569129916434282972848932502060276777951232202621056715956037816039213680632245436094648333392712111275715954281858049481547986856773955068264787901711883245528290343132820116013500210345066551017971749627261683072557737646184654267193893215703226507729986077304293416726097251587461651263993288558655673597944041103866409119795696817688283585782245162673572691897750904924119526712282484247191304384439941900846684477752414331037869790640911911323607143168111619802837879774232773721837994010007352731856380266706140308664503297106810959466178179913667252869539637342596678623449199425559781632492231146129158643671468601312899161633660454800765085209931103952887559338370152397288995840825775246628100156107904443476160829990125541317003995200996615757528657723865017016488842973713191287107620504136482619366287352392768027975117257621922861533560494917772470517591394498370724234127516925738206670299898338729346283927695269756283604497050693793101880564493875749216530962370729536058759363376991842038058042157166282284036182966367948023393468939990467617929014215726813206132316353731038907809411529625235101378439052609261094262608373032996946444934416460331422341036395691598705565113403440584577625989084470612446231018704226082535254438627999366382900226166107464384938917847386403158769733514882565523881460380763953243878593372241019913239495804284272072191451562399484971857196798932862087663403182300052059833502934994279195212279181878858097665792375704227780092061614692122420851279854694540499473624159015422470535327920757163892650683803405159349424699082663904880391030479684605313507063537899431698915550540784353232012351936573945742482946382583293249561425375918225697789955444826066710559181688187930289209824326684389065428155799140122776477427420125060035511314447719895291836052093577225294412364130573173785871532669907105703048967381950225931017081862489288945850555412420124547091083854227074567046125876578518840778524420790461558715509912986472971672333566668290828501145835797120325131610505575460139015442134354772941859915898964132750048462413690693619049310068651610204570603601912670598556612406291150024362577553183357169712024497855645329524602977437129458782811527697552084963831702227697142790072030226058110251505979791675903714189386037552236542564429513728726079273627539452776555591673431387722782197400136299915021328758691605230691654842289862421126833658382546458348125938754622490070589292966824647982844495121635557528478760169150929682143697977322130049533249361474311937233795179231329814070449580460830609786042145619397293450973135436964903777900059343505924872486871827662699458808116268802580065069328208286938191993247441791892845300451348452195037259571711086979783165535238557855194275590709042396507273669566967175749444105790511893556609362836451418479630096696812365802075188413919482026980796017952896618790416911555366831453518724319529375415389265011126418028728553226814616886607569645451867186276933769064454545747309872740960376718996218237921871487513082292198677467365577986402447997898982406262143785277195482890419250034637712986378762883860846824233386671624548900553645388503009783042271753519625126943416768969635368084934452565392263971803619554297715642969549466401448251304098994695889280955532749960370796512815312033853324271748175079079812803816215435532555641790605269327164721663090116898552102687965820184328637169048244520981472169015100165769064465275600486682512022328434512848689166399660369231472865521201541239202100835668870964590307222778902596841109568890670872289412632156801133814499670009595892673878901055642838844146418580631617546355894734197545217755107003350993461907677090821065143406806018947267148115486784342620137529995260682574535051597042135556519425727865268346445010597923320856627237319047263146513783146909595805875749985226558756352351712393126185071165764594202455569277072860898453045541187787336136547518670528793260091190141398474583091513619502467167199664204283621395202654681408554210046689900513288930084016284987460566908712334231584640366891990170771229367590818002615966653867613364013262736648913676894232863341853488069783513751197886488396258482234037646817922751041007740952626228358507569813998030879270774341723537716204285410167417069190444187084292830773550976788118159297835298724909209797911549530399712567201775125522784001382882426653793933892685676206751504186694102792818736687142556967844073756045036718071376825724933651646886775333656830622212538341838712690030427590061744172486107893258442971488210316409611670994115296172462045152878069888218851702967249505610004765400575145919197236656352163091529868819855121711524618396014348226943843470557438765573258671125857812647361185340021490176485155155005614100484124216933326742650705292872508860326534485943432414462468085940512115948288123938969705655341798125653783375529849964089785117963264662588786488420304662477163142431779373352606669795691072778371842863902465780194417525354794321132967133686231806551003462627162223231656899409197377288068575644352928360691517869801762896967661770081868508614572723092304560005552185420364220590746616395127636946357104477876740023437107769311327257994056603643442324029932021403103931354088376576927499971879710635984719091300334007280219657507918194043741918285083202649878731873621011826432606196565625416548147729254204875287835088197278596595403309541304544104523074494912892132029296666009813130848652482522622966295728189733088304947622999566299613768884950701589104568218585104553447702568002133398798586405781374754639001927763614378696445535986143821813147664843673863290043670524161048372206307830264685641085171445831654317526605467487885734219597040919257802438699839061555689899332963360552742166797429015997809882055030973240755394821238426607493270687554057531944749923629942192569690995777403311647171381679918842898722927045128255129983758279208909173494350066239198486679206878092510030579139255363567748591946097933330830746049616369183197647983966044889906874995053040583548774398492897351770213225436725813528859684042056219383791854961742307616508462063655704012740740729556303298668052445207620111798691206860586055972191713132204533288814840816797930616827040477176237996824040113208572361052686983043475570654412157013643493181220536594709810725859829783776448593656885272694114494750198427223022913647178648322451748420679786698081892889709593774803643417264980716729300739032447182603692435843099136920504055265458026623628650054082748376366773309635090289326501991027858948100310920441556854498923211300498024055017133775490272831778604863764352158453840884468619336189111649816520264476960423592007235429208561934415470029081130360897419570487860516881759748296249786473921012965088614674527391183011972681734669455723659626099034243995476439049522677790117504442595566098333280538056386682205595807670178309687683789106053891109567634184991621379765752488637203619835642361800624881330948768725767650993508469905031612402424541237746861059480883768206596181529093424363375468099979169737932359805059156462882467541450793986643815299308267761839417102244724109690576794698548849723285081303929895676423303511370257770445529925197929400929415371817071567836026497766139744838142566743131987342931755772863733333268217906088140920571715159776643991644299954633927178491511002376269900532526271272031952679783377013339896227642096542040063906820307188614084872633109608437078324494162305114477538560972907932006304993159620375715169266034110763984684851645892253791662584780486241344878792370272292739836076191728133291211546945054368428508706515316238725284570836137867336872224307266561110539315930686624235248942828929562939530320096846262048160657387297555955225282703462307529809059051823384885876677416124723699253508694856294532034046019138406334616934083189349563378151740334785243901181778259508486657902748250425057116780598453541648449419208037356561209773509509749807292793726092716702461051626754297752130063075705500645263449243173524305413907934724691250707813620368288709121856759330522416522288995025693432836475117730382831196116128265998047452363936368867414217013480649105153057796466407669333728642598436459475107233869399813252456525503716788022101661882097663823279045037775519796229700159034207647075785361829401131153641974923878954056662097475525839560212457400479334333064903009160141292768270074527609637044837501030089177905857044577727650984779757995401964125710281249663855475940253452343632934811724455075714961068850580968135919121190371925907755674771621850760332187613218811929666385105259258721556932820264523863712403990843929921345896663877152025211834941967310855971481792939348448490981642428022097301312276308488425825998652384366838548691458148965378830323327493784476024305772538291469637666059401900344128531806818010177460265473986873058245248056507496107061735242772548855712331321086699638161277565413072796382107492978465525534525079190689357129113206892118122276032971346199909825420228378923570947650869872894353843733728288367846867741672072743786209616772470583792995559984853440178589318657744634072131846428043148093606761098390527958417448118720498812486141928887168310911415846784923901089401010879392138659922580345256917793271511953637940257891955617345572668080695799106453929223831053143643915087137772961978909207820539562480032244826221191482700933260417991742093882132091671329115838398166231575233048283693091410386730357816113591436100641482072859226834796146654960455110617652671017172267931140340196960175750329181091049439866581933115087922073662471772010653253801326080933039198266668790539023795867105120852899473195641042670078257325238829948325358170638856040808808288344076590299557517008719259276077915854473673538168645684745181614992156261718609545330278529306406787524251710103830342374033331343557832215778980278853289632260216746295509303110736754297609310477497367117770225683477986285291411400306601359085070573033535950109534016870844367502521921011317100014307483078996724789676317390189810355320419925911676067759575121858072914802639263886946573215496005009686724222307702292405165119726413590286866535784197030915309265361882521191400671204105502727270429856293023255708738599594607395148750741785382055471561185586288295958858457367160027802085741316663388505878288815626099461165008298177316073790462164233991931085059416175221284095156766821483397735534601191186865186738195825204060957236993155287662895843398487078300309222072113593924205811497102072075652955077438092007130958282105187381710890387289642894749894452733813040024237083309235295556099500241561262068104515684846612160160388491949359004596704312139388549920077568419262579130816333416513276919373742234129903988682563262646267036138393422139256222777330280197094874698277550681385838228712501599328929819334500460843970017499199023913944097399168829015767710714365826480453016561888283615429349364771858761643496772314203751613359751402285510431653496572583636418168414270658052054261578516529017657446891658368515308466670543028887442572354209699866675619318431373596306728089001931573062368936615590851339841423789648338204777156761948395577926290333403823698361648744781675778988854997040727038842879576641704703373713139824127935345237093509812849103566715983864155693900726711382967993001238052287417945788995295730513741363240971976957230890106451904770123771243967726551381344117125891063935912296481612185265406752076121126179235780033360507429423660362913817812660479711072983623873709294145883693310356390691826899944023530610013586002232821761885421306238363028480673520164451875046211315894028212769933100992935716677785632211370888611012679446803830711926569870735772720763661719386505980725503360080125713073683741784909598959176146853447374686522064834984972649316412700625826737904728464098379432346851771152459648815282313548154745716633888845007634606546791362956217347729282763512535342728532429894879259378596008640360004849791289101769344982208832472669672542675849696284832311469228176735545772124347861343468553914747063195186535162799372617064559258133486036758505262980589114659824970146689244654421442743696046860799366455520637671244185525299189608847054441788903392704745355402528139448679415885383321891426022112696006754795572591064756618490166132087434718964712372366985666086124147836958987187329632174364735872764209991784764600630920663493130925721237115956628755326967085436812101417912369444824392844947110188419726191216236212196048946000344155688927180942706095799365161862756222975683281889040991345581079984837084887128349997042643517329383433814138129574579796221333661704302486610854880224629816658518792807610277493382068711567269358472783980322274873200469805479117973659977458625702187785841272078824388824093661793582570357746200174171581647786886539667981096420109436573918011180982801878178035309717831911761087484760469075605760211245491322957751934256438426114613939566839253848083687947694161861418400856505684625882904033137890273061537191674494433272356079976753683052975321676542390671406446758065480526346239245556200585603008366399048315448458493375957978715148574072742873930567607696933465518089939491037338621152390426038291518582515022214501817252491236970985468967791985316391577530988979488817881143135353696237977408441439166798045351923298122853839395435957113849671861154977555449577433273863345348522699939602329245780221476480780420610417801877536837837517167811228767755932125458640213852249176117430455775646111163250571754926809108658441558960937761537713404198532679684959291167683770879573050508171713752881274500998848273738922970359186344996807144396762528982895465914227367013943968772356383616526041068608319010337643445517320976241579640172915168358012295194470618104930834330217991813055451091473763999198984747420627131689281657622440553731303915971501601830377215678184265457618548293951446008830585388837183271695488764035544300048675133951969378342904422448184437801184397380517444381169336125799520108854789752906304727256845385051005055906150641458166589472368064122830628003465996263629167727111444464678506601508546406680216447466883969536242958617707795780764214966949840386254280498140330741523633392399471870751253968802841931352818952474161132360154223426918107149964140998570000131865958491883880038908655768157620563423822146999099642075764177780912785455098963323505450949440625364427774155390152604001102257310388082069317510195270284316527014112735201762626349430757131196570964124329827042368376163125638339093432343410080078986180315492022255685970093017373644031081165713413374365946277956571993955770670583117347467723384159069538738321987975781161240950009235107036679705914876185893526107529621785928862710394653099327693525008832295729287674169449055671157603693943291422414405465568686615524212558191974474466118772160009923237686460160327687008381049353581727781182123310342507586164280565580332165008849318496158179198375581647241333091204996661992221280798679177793466374061778216520207728316621002595863124402330505809241204526972889770151341742085798170404841651451554422547907429324017041318099545592605313024764295489618535074618363984495124618368899943130887868512834229324314106164386478308996373281933585656021954368547219205437792220284765529023922706649650231504844844986671438212764527516629683667604681055742874709561259258351638696151440904522474888641015636573130709956680924769600790205651841745289443223642297731314319122302396290086312955164580464418117956188070434707003151020857561981405211480053376925019899391276896623318840286267942572131392405507505713845277944491676987778618254448053699358276798272163067545814318117207332496964654420230916233794674932687799011910972322722606554399018477990493260787180613024562251079091701485850012480533471231144102946074425024691793697234958103184439676382417060201894451704689567842488338925162574860458049040304728228017417843876987319229452432053695305613838419520529985089773605212924738428093341164232721221841687944192696679350030064431304406222509419321712839417511165774908486932630287042090733514973528147201175946460645561478056540029518635455707629032678562266529376576713777957132926539888386668098227608927137573102339373093773274442430731251219613251991496891292552624988839886139579575004292319515451552281180070856208214998682732805509802212380800811431412904522452133220419091042054833283590564465262693172867857065335871628459335587385836548195593740110184581401364024840143179275904823887312523908723723291046432201517139076955340798678066409397792932640746871280717236913519321089290242416552029770025790352946866688433407380093104811230704758966276278343290773724443439237400768856056681900486335346745429041404733583532762512048308684114845152414554193746934968960300217894323789512120427771089087610631987156470396854590562340136159711655734907676153095835317705630169863402063185322525641959918805929913755016009719434161644954688716251228632009308490926106523544617784202143390829882454706262884789109959005566699186995093667622177297273975248357870437451594962437505876372331783796693822576524563432241521600669347685386041310601713895453919319977390792942220106245937957459191515021314749203068929270193444649454383698484621359568534138248764333610355063048733610896119097557875539763242348424028580120008925165826536738945777974117636669259748192635843768182156594694825403288050322854867071608798771857789026058645527208506189101196223694063544381479253170775058648366609036052205932601024450562908252530297887896111636044973359361618539322919967437358718742475536684490325110127128219882312326062343826675115069925046939848458818014529717991076924754841897215337629536642452616984278546929438410151382005033424449541563293208880153791745034972003197137560521545582051697425419757024371347141354582106831717572793623406722158059806971030513299734684484509982686639390828318609679774997324559616202125055910335308301707790232281462038994752532143010802836583993271434549619971023931741542819134225041433507279090337257174203347708415772545922719363139689714709034187079656056290735161330718173340042193880114331183360981295271249541357579200008076904405220479701576732027163079390837184810924155583043843007391243713919007098687757407929782884012848232066335392925846626962949002917927544573266491421560816192057656905748188138495329186722862981166457946375089997314004946649597540236428978465224262602328651303254901329961959522848782131927637907937263359327655809790519079449853955566660079596897579519304491459050520604695286150315460255924242753580188822563323925114929540732622695681287348182832903844984854395866031964576581703949729783077282810946171088875407375830592320541536798087013383193880220278938955177233257373054505655155285951861470267153883592823599070782343272963926878775402024838975282928537365520010475843787505914642317694709900182406976614192133515384203067097045404054650345331943663519310026237089694269047504311224993662868180545692991273725185180449754704748485340620616936364900071230333378780042641741178916948784333594181375852386170123251470268951903701886281116733210297603673040435383161378270347262151144588463279751544528216754735196399697617770411007076501423132400220484246047098313033911182726048974889722762732644858176624028581479371755297878916558238831849611213151463517205969430060546176679262249119680792815731559268760458341875370801560448880930328523139799773701614234648112285444150735543844764590904889420673074012185788379062428419997891728668560373178480344169392165151052352505089851178994034388788756531621644345868176110613139998500060270137287835732958190414933690854849815574383647039271200727671226590261523923416155332571407083255839896498725989634379697838790595817916876403560738225796064892740239828411927627472305288139919762255150049695663501731105735080816713784871368467115717774016785375069525366627321145365508261147626213203494919450806150913067626738555777147730122580179983003420538550975315747238453594083625710153280936223028768483953047811597866361590636091551628567887292664007280911825431893853639141946553091501968969803482402466715750593732535015649508752789778817296252992978035961618827021926798540788099954167986543127781957538278788763575140304682851608501267499274615175562985688453868645398973917652707028304461364998851910700365397114382921978340561564166289523237938704359077141256132396043675581780945842000748657462361798902539659326386696251893966478383340103255947203091598773340735339666927596771472747519142952588772108319745686060251079065164378128081861505864459580838210674677166838118600087015764751222279601897477528060619945358666498711421302324504566046849858297329154111507726764619515144801457871461882805522509853790950972896357565169136115176924159997239404374247033431204960641595196971166989619495329381842677014160483138155148881699453262218318462151259474296284342032726504645977619458906918813733800064762460909653940397483111432722967963464309379704629547595826213274225535071024379281057921112644740824187132413092983866411976448821756043424712319318325253201701072624235132893228576808738809960554895407385538797688610147872208074671016947370626458490842866190340985885404457125297686044565628265120809198399529566470844468575359978226253429836038202132442191897029279158491832622233617286555996003001269636279131734497095375357985216008110418699102354560465869975644417329559556137804731565903430198446865177276763767575697294877403955740861296641387029066553215827352027570089195097334455028321422522752780149882414169466533979025219758335846353516766845971320541034489085896343388582233603937498704904478498657078139126813029778761501974272611657006441566440835597577051515941749119338477675491415135913216374877259662463495084704524730508981669046517031630912846982127736901618041828217182580141271043693459939487528433199210492880196298976791571953657549871975378812472432765919941310491526983977947010533330340691475559051753459298281768937826415098579640208246961289080651741811470028671455596394969340649937877306659160813614333639787275509652699168933745729858559516115739093100051484141990544596115367077239787469527865179842583711204620302450360047475430426458623541094417295322128364991269179850224877301659573612823704836065208885644988048747869488746880421848855951691848161136562897548487991915171902812553248388514946137550158450885172444034816751577701045301073005051986100321810693641564834422082395825357581877325986670292456541196048715745261344605583979238564692829753291634399383083463439054540158311429229208339240146209378786338120864027987706972757590115055528456780591701262157555618407018437323510644607957823390147577036891050161606619006808246412346560846819063932430269421582245798139043585172438954884374237095281272740564203242740188464003204808556364926686845157776496971087692201877553942331849133880186676255149357721225506074585905665277741971985723354190996015493363906092971793389996846879991282109838130283836991946562751559683171308825536168878943365845008536882414642764148552317883998889484276272062893716838184824640651331590057614180124186273310810950027279858918269377612109224870856756481105094992912399388770190171266110932508705205383012599029263472520462972407628820249091000434082036667058828200473266792263381017934564630274257139789850126707762177596676033656254111446170776253249569406525284240229991057197432155419522738663105981926305734704736438251536315719566236087698649124755517388004087823641064272355113678503597298071999699924200685934274173311142556055396275867144902613170985507775632826150331508957922810594499950988064874973753999640310028863679828106411910924887619621096193231967249798801296386680583090323287096547085642714330364632753779610176451874452708724725420470805120432045813584428109274224182994341035287655941360718554061257753802747964396581589893400034249007090722902410682411244573239559985411545737805962469269720776481933472224734285627452589805389282148859276870706536953736151909658021573804015334739937754915315858052684781771893765995392151651722277172871491200499723055550386585080698212416509106436193952467112414124991025486023281896930976438966069511391293627619469771580970889158841788994958883304698806974726051766612174241978707172927537665547718527440223094222124689644936788392161000767785584638083901105242794957333331255354075462516229626832128722783760920824378533420140681646293003107982568325164227208408421402584022303644292310676174256072469710583263603143880523273540316673179898098046795688734480173852991877607329750203615947821256309003527569711328882216203800826982904977584958648848385851960994061530045065247774265471522911644083161242896396695359726666396224678373746885124978545716995944903502675066401409178735130390750325329991776581899759990297747301583813599238789149405849356780854844528685935720746398008599683852454297907619264527169961297057554858792023601584663833209972797016118468675075094297403003696886223190101881805163865097204767708088302287971529730674084165582492158188099505606696918988903516780487663685334795431590773201905277400736647913277464714329154133019242851532436250594870513328724980884393996850049382437571862422236990828586326167167034853601826298547332580910834838174388230078498645276557963284272644019087142860071090018607340182210606020745455437444812653335552915358596601469699523635250861162109108020162480909771757013764157628734307546750028384256788839776310545187566864129036378392758217442988426238762424348586551331505859171445393107940585618555797847470619010819601982705216503476707959576607152256578197249949329067872971365969945133255340699424804969510827539018667690212114751132618245872900482811631686272511490150858070099540050043504738734183498500842757290961344848258762305837102454326912296695524865058878959914069944010963514089479729456522481899102116419177115335535019604350256129291042757899185199220181347304663598100022736944302176317873371072494748758655802680750116131651997937001027617226406384669537211721425200352338905540180815758493401750058726281865939598764688761386265536873465014023189619303739568841574682859952403459706216416240609031676085144781429298427068284790214509617274247308891486695056101860607955562375145962381217753332996179414548301802028168383523639873745292745593288365839811821428462845871693188096951580441516975091332734931619926396277107095282650656083147705587134600828547553368017458596614916545330113738992319871980982221969555002524023846836124076488756324633516743958118061721377301171308544324482298330833356474896275654381215764268309266278418279554379647896444323782041855419385649971715900535131135514116792604338086439610225467531229846579789278118274713333222034450570678330745419387834289897722921427266710713420829836370696296026198220547639044422604666021530763587237452747886843355409548160404047701268718241584594589919469797120146638979811059813086301534211949836083758259820962758108230765865825603066177093810398064345041592785840199160879803990499466489569259241970029017960220745532330435807559757321661375448680706224057646625938063501789996949792070563414177091783476755487013636011445245481424977332080654283470212971006970557434635656739730277237300033669382882598259958548133920294919163228130090801388318096561854488438275309048255674585676782400557794952573142318179320625320621950265807018992835893290303655548576232126270258033221543931997208434966373376451054182421651984301149509358741594387032007511363488353575294398986790727414661523277197907513355635858649008373517933712887437206129649807117072314904370367167634615679201532560754113190873536509729023193048713134521350898334178344744296017149397895070312191462204209824999507997549567333634492287656942703097346527171501131229976616295618791080755708899342807753785973751856678455860336679615066029786949443372934125698494312057726458008044692475087667617190003019591226075549748344220991606740101319535228532070260975725531128945950673860721976529576945365252806625845244832371771634971848784539868032453692029441348192997496757605001138237839844183255733839405217712451304197094160686374729528723227272571546426554013982297486007242801394989728443333290238440919309209508508319920008530803052235819222928130104118403270773876744550835646266745998585153586687721891908273836412418364365739111859034564011483499462603782793447861406709147011980152914330803712907147435048288569824132745159023746488574603747386940912643330687740557976271174443534380552972023672102491940801569102956697077037196905016321615298884862657290066560124583059322438718779085429677543955678049327430717370005440438637041176784608736493168195945956584512791710145350292569680714673878450644769337639690605908670442653318489872673916755315971816341530805054388880606806191758090557513052825768077775829272026237292638932415311704041647745202988205087257061632212772780767232801434569493619650695891330389748413683240963407886752567897497285517968618182765650821130358905521246757157872338799832481651054036769397770423008376164765061298988129511088012905621890656062861016197699008956658260260208687452944503772463173924026910684884719860222059858715855137906913366623391037452020569629457702997844634753037917847873067187536040254509004367125142676033415063096739887398481941489909793500019146442919908627150365969197389255984158794143502002791951481474562773114256342145716746719357808408857848213051291177429177280139792279668604540638072761594716509765604160186746466610373257319906546364314695877391981932738754157140970514609093102984317964947717625491955481027804398055758605623921497099948265614865525722459904135468903156169160682762045580106489089562086135550299184231551814274247276845004877323048098298015864742688307052302897381238836701507820181880747452914682971116174425408407721849184900611063202627029148438516813078703428274262752702915370705457156568210885031841844754273454490808967357855424997739705143618136555212348958007612801498576619333183622444428809062975330711311554903686120570796670899581167689088341456409340432193006099992108959438807964355664986716792917948407750779793564551000445787421790883530698836687198483236967769838438987312719054330194160006688361246716935100766758454694948124383293139724698882924414636793680052176963330579464037657459190076710872174169457017296638543753595934607670321733395219922063846787363291095798108687935858292069688102149064733228335637548389883497953030868359847414189834168407307298060551216496798778061018208126756420026328720010288878936968618711660788423211091983878799730732469407166402016448766811545176128719337720004850972726504761862226101255897578365183185815598129040241989329454250713765254121627321240169187667235475434002700493914935910667112928263899590585659892674180554796865093271168864691169478056275583807979076225594182731952158948833262415373710812958680681013962405234595237677528008972903545971172345441732180389943865803304020505151969308382185488728606647415423097558445163347361050230014417344733249699670029790700609317136500399829943495793571276259183064718185897828058513551479424977103781719832854226629509642647589921304569577552117739391518114301994845463121268193921160872312885853725367713165679955952456917574743096504919648166196319690787344426399082734407016019885489672945676525793338493068667268251102168057540135408210731206033913176485507211092989599878092762994057088631544319541615569446457742658787100824892709902132530345952144874078659043263427549061519190158443049692217745968626320573104516992722591354964243667060609932528897391251134196479930912998212545228431182443802051069358859897963985461601542843752696830346815153027268984358807883399138995226080296758843740681082521984184941902062975980956504022102917310801072198210274996262899033698260118135138145225568364857144195119189502721759708598874496972629653163437466623845033504088622988733335597890214065328505654538863013789632422633099305919443058163039111719635023444047825692321103360812271567307366941920849139178428652915202428135910331059298643142039823692891045460581173877795789975978744122706693266372247876354896328007704088722602087719306600425893764736961049778861723390009736273332654383094399318324092833446753148588766788985861355956743744579069316681519915279648050490654376859140635499726343015283499453098394552111184741199263147888807036180721634547855888263358749938799522706965869861185813711726795748102678036936670999327090012030624398511489983526075015966933327796185381259180926864952660197376546630660082137208572116140403048060045723580915882794294768845098485724987915197503534544030924998533344254551671751153970017039006608691171353012336239119610127152017285493376970585889974163003024078043397041305114218128839620241693759878689762724366558970636466181483429166210128898108985843020992535293133458411123044617071854323538523611772960808887061914486617463405175870936206737256475511950652682130503612932283472033363685662802746698638054119160539517118068887427768010390269739152598860922484273054130485508639485773304458476947839435820083235440357155785396960707368514414051421279315020456004862394182708727087721112530804931579251850221137381335779596020239101549317378631705828988037392295204607916164219755271216064590834807330970567303205343362398930853640739554596436593081748125207015147266206060445891781040552846167664007414822223574011700527739612111423397901304893334029702839827323257832410770388542130632092821816486503969603053228776902143060249244673194476406676737855492865193797800062727746024333104369787113448751546526271831789659375108801583491650732218350335962056937824667407379825146693023821390779608412256315087242268337221375930291922712905523439214907980622938190091325472096984239005816929595355208431749598149862861265093470670779006252090411255506725428026176186898334173753146219859378010373248146899577410893000142223834755743691842220088226050016342030375055688680130865524411676667844714034147220562009778174239806701320618054265197160654280694948357944887349480726166318001555792881931602788802725535101035991931263805879649931331491114512853132768021594051400698818224164864456929626539857819346816802458819082608397315559734984223436191511016962470367589764294861942021564091369106152376578514509992373131062095608314122842274778377807748808136437570807181540577538372652928501958754147554077140225698182578036293754961589139697811756527426768109392254867267681741069383906032849451691681663813348242161012027732682874849075882057955480375148708878439078072040508889249576688692023576267679178811557928395017355130576534413978638595062599657520701334746616066274380328722961890821138780279076088384037978094804867514950933786594436763665875305171285994482205020924658980792740080416617254254149451609709584952084134083864708699413238507363351828410231866115879258751415922791031814224528363046557291615090492167260522108930007192236782269085057747468352211209764128250669927826204189172861197544796395953042189882877663930768306431900421602302366684934835517276275281874027796500239032624493347787294178532971760807437252359335392240079662005425875455686367667334940828097772285444762132442328917917588465039258472270058423289003436845993634924193672599912954420390233916518418744272639151510589580035696724273320718979369213895110399803597164818241937562664267896853715842732115898780234702569430931709015427238231506638575423950987557298731689087243050573225573173766586464407572791053484605195507399213881756741483094499288058206404898608936112266286232438324166818724295759827183389181964387936131412901220279538547556892804166407450439693999879112799816129019393181294378264434643851951870885966456713896516406786354827074624267569416776203394197295446732529650386140555225248160316136006838704694313224403459406698990372664232626750429320908615109340882074522387921147187330837764968059786800452268810376475222573108857975524668756216449335982864459541435688517307855028642747826300644094568225406488667567373954054631319537861021979809517341499554044053124978416142779732675823838725860998235416760653348657653107293364014719925394617064219780106388467892784473647298645787019779800193145708542334389105509118320970276565105489950930123074237509037317872452145640762646697703040187725620230262942721297498141155195621386590469283437490373154991265574618710624548804944420897962201727981572726078141111735735060252339190326208158212705188932289062196580199908708125137648029424252891095348631693376732133939271369629595858585928925575844930034000471894961245621228986188473545876490726808812274185640896087427857569608793227852717608933210845377770797179186904323696782089066181858616298929491167810334777822031038981429356380674846011127202259220712173221109931549243540780071063318076792851672721044363557059699632228140976584659742927438807042383116351558043524850618097360265638167159737343437658759073636775760334795392541092426207882624101018323289319345860082509867989614467224794860356513429060009523849526887925152194186846127631734331351704446803739001856657849455560546086426527895301639344507492148193190213614486759456774385783821472533004391346908160033308410596298895387027725236564984275144058503326114333001788541220596483345916405653174171482279054054882812997635313018383365717270303680421067896807328330668289722754837848224027142343678729302972707538223948870999680770359280800794123203026209637337790516122664332567691766204228287848407184905600820631401133776547574201114161290392100103331034319941847234143366602794005607686359259908318953703436202428320882696079757142860574092041696515463376955112331228688505352497771579114840373662463254873894450082132595202459311943960324984931745989000169102396250155416254831323942990947395990522970874717338293392946679084626303845309869417664762269957465151748400353790813450325015142611373304234018358351741509135848152330161621937250644717454884259010360171663986536902273462183530604056375887262763017512990063995438276352556865143169163072929789960314942837907005194623130379324823039266900531897117918846719805257783134108162676646100704680682112803616109890833923982929301397184002614898194943384878585876979080237440885899270202658229486322512058399114833192004179639803076900810100610989235721589558049738240457472035497917405784318965221148648264194440340877792073758313270317151784423107901625171395515228653837353096113436223788034197091242525835513071486435022118773552563717542774688457371358000702524028894369062180464763944515194856135496331336660127769434129438514160599666362940218498285540802318439404809761201556569757949025684696536107687187980273980204678285880161679054586980039418028088416099675081084444248135865542579334437665309983244649061059148354022222857814584125264060026393312442441726894060472579251342866008840444819183743495606285550946616410261038179568306870998113805086586722970564624860379278712688972140542942235825375945339836537989777967547838632198511585856098472801982371650032861781428217197073202658421231638023244953570507802523015565122736121760395419153894644038375670505643629621629605520504265520275689876225307751925382334248648292644381599680510797666787077424589178123914621255067477339627499739891920320892484567032889050828934369112772066160649390428017965539264992671345187801944392617778007845279481472980999056343964380764782063270904648012198344117109352635126614958005197054522196675729770418203780068835525012442187316530411861599757809663095385282581672041627568224152278951316198671106549472973751236926605525715420930481512758383689871870951191279751885677845514871920169169312754069809616975753734452077617817534656046278420647267063867972433562125286882403080411957962468462909205863916377243255327621958330016639308250811142508545718192608513374999772507496246226463061209000559399930707382402425934775406800053665001688262258999893788493044968223924869023145556291994532354910909288452739849384198489347311932484559759349415846870484345906366523035899418926661596362554075705986171147422216139899727914827566779305439926128828754904131401799714701668101570966133277799599127304026526952067468997861183354833183349784374423609904056988607512665104930186693907327089124478270278949464092695069218550800241559516631889300870755858445198321916882752016563727567115561066715194384217177093336192128349957946666947881166708382167957230957238219588649966264204636416100359871883180286596196836828518800036719992234164931945172559727888315330051725232252025112998942976186571663081513684141528624968426873150568458063278754818070032448402967541923011821724895911446263487612197202353811064189245257178370273375459731747325864128120819564600621305702742253528441304183081945742229755755613525218561268121866339615980643835665400960056327784427922398894457299452251489330273789289082920292905488294175360404596796917945432954672530321822864535195213627794553323453462589176906260591576466807627612321975037660316531626659348638059631829794199487308327410437542468977287759698127966756455465343931240541406300950235122814999547678892456062729520815027801631239044022653846261628617426898937268003608930354174588984689038442479114626135625278495248931619861140732015567434073764456374365015400939402912429433721873836745780427450085423029520697255023845003813740873496056538869755437155917709028369535037875278522151525274782178967621265335686413797932944425488624711884777554680112922188082967899959436308424877157676030252813844079389841318722244324855415660648651012760859339616402803370376230519936211840192641820161509579142084642349893442999468251718254536027535028937647676889689660473737595564589139764605954737457064994470049001703099907530470508261691434589763922462084541227220025872524649530535303888514886991192100817537692795667237897120820920912776825999253134114222569934228564498222828388998252985609218415562884903001909868545197270835013013858726026412084475787075097627581957918748824354775763566888940449177434689630144954493409887583139025749562988010476380422929126116619413882036570158542123344012496919784104847453140160671065854518613364849798180889088958331899439071415125716970185270984997387146761399283171328337908039660036722436996207289385767709310613039646265858357514893691112072858344368756141220080895620914923644557777802260569857200168660290296492133621214342005975693436498968343921970299077891795948317404999692936669944753919866781972181567874051032854619281487269367300561543954580349211859682656375489580686005532957256939488350248222283535575950033177728188324275552184481766218757025959229694622413042850957960209756917611347203892725396326531708557321966327956855172293449098585608383431033140404357649778441859306395713973969343535150168837394551448115254073449619435917726291781651567443052609033054071300477565614955178802470326109826781089431664817757843341815628693693645966279933027568261819538257666980694177281964872949510004892727890442188166977796880901650502217032325962849805344711466158852396763610910080302293759647997135137381947499534603639616099833801359074004375796014737570738028723167048491941306083277552619523477345239543486191603575076705464290229841632196129062371293665258136044492457160535096255248220828185328163722282507447708949752304944708125693062604350133199785705843035929934681497027607317592562024716885535332559906548784611212249015026766815046453008265067366478707818225305669954604042630133413503806007827605335022441742483793627259824041291203988135060811333746798587264089644561090644950582452652058762532864721322445811975471493310875271511317070142693982547608844840499350069916061152738751406141308466031665562579808769755164722162190211832692684431758077788731602287842488276491406585977600725534639721735949372337607499427548126177633778657485536589641608647734943739047604473937407558558218975228863486215591401586556761951724925751009435672181311247293450615713228345251279765820449274028326564779149246238049203204601713278418253061691732355089184385024970208409212243880084991655330711086181174981812576387853498184500664596803961355535589687715396317230142677507350090850070207822745521399339293624782590771485228354817962777188658121215038969546448954376847346206935468756129981891421327622977919580584838760819586678809510146339587135636218973152870113480745044388094456023669274678868478083979928520934278067459629682638914544695038964847978862181284691602722207583185550887920524109649017439400564571919998023640435612105856405686627341205452313671233739074539878981026646981295331489514247603270331900125487204986078121657341384186980826497017970403434787079805621469841214313656235211296939791234628076173775438609307937257766094743398042497262996681497233101593923823168286205586931910353432592667617060959196885958689537864427669361486510641119249917440444156996865431889173948024624121858528257615452082837439645053895635978810644788051483631155857584805675810048848713914295258481649135921631583565563909359352955787287163148351381980163565342795779823752403621385584107441407104767349178325409312717757687505530726400570167237638580123194872261674482948165774107392045939218232938458937841167248189916789844264577167276785631179694367348662053082314085947174633537860648230285322531337780961619989907355854495172772589512646061598258064233214165427813847033849868643958758187976699369726909842489907452627745248968847487489546745399683265215046992693001567598220932319390138935521754430084162752256893850823031170090227452857909752338570134746798898864374074631567182919094360377699562284094095451377340467907895889948641587003025174803805380119946555085220907046856602213531510205112437731720427660340586562419742793102937481831957267047849301763736462864886764866501315020386035072390005699869904096871488744108757617106929012244713211373837448341727325189103561824207421324419695996358064277656747168276638737257777000022560654814887377688461139530404706682515482606195619806176734045187312223837606869819008247206117028373130129416026565537534365302407044116281133239571015265374995003251585142831808490471210585810892793194432825508635914517581118702996571570484701721855799230205768037902731672522877651171915759466386205738164720280705832405853384191934891618368748786299333672679933904673606361444603826761556225716557969720304715331477310751539894281992118630520146513348861672300253657257469075889350455065676918658029566304827957851341358768813173280597342053943336989012921709475806296888134558741668772226396506443862470555464720882286912313591224250114110137309341604582500125598046602480160410928989795807747121081306663040103356644743398568576719277759446550703087974295864865470446592297688061603655392889666485445545419379675851146671467490961406233680779987110193134782136134610146588802087973536061750449642888437156472299633921720355372143874350489610993039702327392648866278542226726444240522849208916255771782041051631107767327227720904623988552662108855143274157671152187839852824159095984547173467979402877774021516376056258061111209632513123997190781667309815769702824691989702657773731064510736674714189987994532744020748500293712182673593433769471083324269035483273301128794382249151267643712333207483380207383212094027425488337459275582391188988860484795871462293212534539110853589735824483222818565502612216315621052894493240057901497601978665367174717887044529170936153737629363270685697413015375241421100670615145879406698264976303545368812946139059328662928792077911077549968409494785300975906203826272927853421098989114596617721137017091910609432382512816478220343380657988006125525674615783001576289024444440798815962826513183752542203348962275318640622819881911207651915278030609591009469092213326446364822513481035369889954425481838010050104697431873238891051244620070832052870843390352574063538305626301091200794490110484390204974871227329447989918247489543707955346489250323410499238796846988640177974147729938628209465673901109247890128138337444822696547906133948713114048880896546429279652405676248713433712976613659497713578401352942927520104189066040244666071405304803474568590159614508631628829881076672523766151129422397061642309824538869034962400727071303412102325818795191724944190574814817227561189507800461188218231704839427290011702856013975140772388888453220870988941706533559345714440229725055798444046793397516852685482169778715637024706467301636861906057557490779673051389402657768994799404087258757479464232940161147683925551846392419841606978233765151232538002924169016874470505175626211903628110365587052287656763479541113303957087019007913424325830639421368045354403562871880230057349387739681658625356540586268390641351326094005819426524908233573773066225681860041140246102501885958027760440185217632002615142380937341067709676058564916417836751325174855634797550648172110273929353321825271901876621775508496919422215142793488719680923843315310435841762149631794902629869301280380335779138969920286662896917849133208226927640382398852812205686981215215785427888662424205942268157648157761498117620269512162489603049158342677354186264478009225302251964920445708732053373241853974430886033758024457813226260264745982327623138013414204550301870184905465436364940155739189584997617765734872444702930120187231333290980149299359009645223242347866008770060317223025954211230713660954058468185325919619399436074947533819687935872939464706297859715842980052041135586607044422359838616299662710055048249108607789504331465479846580255027404012921389724561748359275043874015778634061309468198465085523902971752107709417947167171304089261220792051330037143318197763861199336810256131756826868406590533030736988706786477576267502360924246653662373689274210259067693452151327918658717417932486936123807288818884054661968750456374749302286345270598304410728270868029595400680175107680434841667604380687423999463477957286917366168782426437403032651259153144611401606249006115288018246323338110564536963021077127297408832372307028147903832096662470445176975953724798153122942982166242632610824563756523917450997249018161338919940055936647370024548518373200543965332008578479029977105260224097139094571192905294571710351176334485001248769226840157771882932040193089820521002708340597582424407573120013058488862624081628366315462080144783854517463089334611772665268730819830244135769794599471021086411308241655259637372252340594759999296502067533908595325806907091089572537834356709679936363823642070480890595550221481939255001307477832644665261450514441469764809871928437029045743544368334675148029027648193526671108739633877819174475328346269683429703387941206690007355695327632355388257493067216389478402631358581180211683262605958057647153449312499634235298280620044661281633739822255103215392576750784428743688175373450629142807930066843564836720382116448320886955126728546150724532755356360259384818928788522936454268946747325728719782496439701251481495321841087065576358055529395630597091270765450325657893023269071170779444689180943467312235325138184376657677553936403477213244980551982282678338584960744800181312475861382690444802789056622728078452755258547497858228687986410243849465290449792125244418012745960873421744596926740251576420854404029141760587180605258009505116928579155257354055893681797460998647342159243531991240718331350867800852069265500971237644614269744142027707173744532649786610018398571100562382146691306901594055309590919783796647513691307457397939697349511232856534165230003238589439995706138652813757749775377052229578416474362072305199063476659752982922603059048064497176581579762191853345812727185529292116550993622511276225526203637588113979691948025701549573133086317803601381543988398553031692473327089091906785497463866024726644760054634257990319147182538102142895331330344967167342056887113237857731593463809330186553325329797118887345413562935882907230345861647723613409412502691995645693465326728072748252287208688781554072156920034034309713861079753197497822484500140660166641693118824402877991240296306218350893330460896227152372132757604470475430161822354335494018005975836993395247357209003919091243766088063891687220354508602141133821453772007090605832084601255669931274603243336050685817528083099054391995616432340780437616264854063745462495955407114772937631539774244754510906815474367110362516335683378716392766460604092907292917587574256746929299958747991802383872567718965073476397540660061425993135203476117072493075849259399375483837079054441761480250112523531538476482893025861475226569796544436933250862645562581707832450764255390008556163846481705169571241316278082525397161374240949569566088903602377379220055185278907073827499700917510443700862448326798078047415103104626938837539872112279812029015928432936511839424635386369127833268151398541108577659436927661671101537819729739451110994912467291156319041714957833172933385194624381093695845267318550673042428929811088661920676259465917737967824691900868631627081561457931795401290718915647998135445175654185830269038359601480496809314968029332749495650947291121828384212386907421306822017370362497026330450098193340789666626681863656962811391930857829597239250463496404335341567083987383129851120298581750638070974757353052395688688045529258653917902498626888150241979332675762274716680637526991334723696473193428755877280792550538938668892526525961916499855887189372440514248517509823109959375496003059860096835214573034604324715287743592556672194138083287522098753239217882173523829139316658618556941358830034986495904246053912647532549747025235297151320696654652079905431753340117790781719816473334410131721644960371088420723579282996638201843739010643278171500260241229478188162936727880518382304115788219190089468427516616076368692624496303661160609378498852953439182240677229607995280869589064114224811898420360250728120808406240561635429592531451485843306887662505486760846768932868179523765268715674631614675362829173548028344414767625941083001261190626202136236710692133045987614611364986819525770226877964658317894464456550674661066327069550773791996882241250977460144453900320901936087189708512425918708692233512875789474808661986735797804863275119333416110127074072918105299068734032090021600451549213168950390540738557556143585089896376589289514162475479676100380338576530808209015977861831099379199078775296392933712954035228374331203580959340523262159074627828663651993308447240177162384494559513920530643223166060028866848605516231466855482929088268399750316256206876906391884054195999096226685483730711252937942457921334837337185414201269521840956088205634198011919201013130671809786003055614373131658890421563827295482348371767814382277476637070391646788987335835538102735529475336051832007815456827686473951903411665462335440604211312684006768897369818430817266229880446422590606593696360032516842299437987019615385981842634568523107369292840781724732900865381262780268214299846746545271278913071903260515446514119467977760282528358989806599567236822420865340096293775252402930478652479131283995581759979520921831298933543073246460838003426865195969147837714728414919064326440520979436334124360840223948830830936668250588168864655358509133223955882168059096891889862401132776190714264677762836554194714330118833810786219471113682337289377073445328314345455939973788197191755367326362467328926409884359420989348430424758526814233834788780944269964895973190795377568561834099467494218709706391892181349304312805956921753205927492715827690125169297112988791097291311470735039374672439823840429550522603338359181841834948249649184893585612299436327903326947560443510590179015386402675524855006810572160739955482246324190532860427479367375062502480691635692848740147807295724495479498665359847399501706752891261381229161354122454310027373858323757349373045688794280087103203494088296023274591734218098945294095701013900001522037943916327507645831400727805839425855525719716255165760312650761753908418631812560554261867006543060152124438790698163792327675079370359560148027825676368667901591432168129178447792981628079559443295184975070502926668473846700670722148919020206844626264484422195454229716040277138979912520417709689017006182228349209743639268892099830175629606158867498356379505710421136719478338539982736913176304006908061276201591801017105457121653291499326233959043956884364669496330022095206199378255519962376590267632557811996515049696674245432886284823495063002261268733621828648461035615555743197498774311882386120555114915290156979999612594881016270209918523224660554861749299795427523146635742635588907695572954400023961860543766492312870544585912397597179978750621875194511840006967286047299893741296221723083033310092642186832175146706755413641997754262069146724485072382559900442797765947794566728309794110154990988454063361309974799666905380819796877639071939446071087197145539510122092341643888981611265481183078575418237441441076934077026371037809654184338607325314047429626064024782208005928543167787481013767696788846985610751947522044195349396089439912942588540115704495067391458885159115422123848604272905001583781778318630625170350968819630410832007034212219835132640885527897870373509233362276939923020955659842912055841093927202568404773824399047782750747325901277877156713253744108318047798000538391699925896689059599443808490506003076416622246310092264489021957852730638375801199610081198426059856211069902044585954201431079780485386820392061065004710904401397076973641140741241419321482235088397545596549793413681824193526330502679162619282000428048482631837475031589224625166998081858951850764312124774782892251511880803656487135224982740160572791803188847500113381801927514258527367070725212430102696149050862032576819958665355946966593690708446805565373726617122649342209898595812203590499040962670569017547699282581488570239895660291411475979931832079240548092869383390158583364651384847102031284905414876758658995204774937858138295018376607808137768569072035524077279894110369708628468308188051803782159816331728564808767187629732973842676157647613502759281297415529576109868393366962120110031256971796813053798249617794107224362030314028396239197421216361624443571800048761606660444328672129133650777029885995985926350891818136595385029742645964690803603629443350939805028082436366878960790818521332424215804790546228272610429090716435302905489965214618535405358469110696888403576438994675590605099029593140341462426394643479619638721706356130192144963488438161366065538402463551131131805511130532097042554474218633287362145058400354171033416985122632580308685480154997762905862120808086201786636937800787171423920762456672862793006169568728151267445921670385743787326556193042950165812513365864640839595995889495463296269639367154603106939067915542014724521830852116675532681046140043482254469984025810647413441857705161792431691215490696953492019029968233426030215223527356481294578603446329850339326189274634819943918596097663662345381085329158743008784281338089647050056465690919410601793448440289925840279186893279223116573148508151409244434432925084461668623053778600978874754452104229591207343065053258633475919038044073569467223662019570099245420165456125183244313898938572080842731591930367207022249923178477447967496989346875129782065768939890844268693001704857262153217150950446107625351374629691241324871601793685407673787945665340209701277579096048661201378827394352741629924006486816692257929702454287149953627440266762377918645921408556713815805604621670446321690199617812444703372966335524431299044633543566970102385535916442383331183741535885963173693164709715902248626951112755070130937372187002300854501508192579773330147669622053791508146306575597295828118356751591179494366774842117616596481379602448530509425187912933111751126315246365995942859212074055121743845026268439976076974718841427941220973948054223028884560645428232065916343109350886845535268006715078018135757954130473930432529481515475465166077623615795955474720786911175633892721533347063267822597471763716456720589324616075580293824505796992394730671859129368492852324235473075867066019435089190702958315737822924552892943221692133152526178370232211649052985253692410700616876169406407755413837250544186480293251143659508938001339541090841924877306795876424883537184523144443681757304799460914728440131485071319994487454752396385863707712324496764759464162101508463831905796905122674111290894222443317958660118572260375986524727883624447978989632378174720352068678970553186678735949768254532665311048282190126881577735876202789256367624509201518001059357663614222204276586618379790783923839696686298380758154875015513080167097857830852092187668300373326448213422891650726623398527311828540218247382766856308514558628143699672985771159360321406085310985975794775106138920245049133684987310394319509125877325380335287940032113804532105588040840780581980855318060391845769477651625419977838072928112794779725053001748138880730891539533555658717247881983404287419514710056502862375478125514688368335564357486078688727985619943091416528418769127941543480381050777418227746005149225328824321804844010282648573415626495143545615721471580413105960492969238313459149439763987500121031035550179838877500258942614707962282021469702666878792968594499002072069646176143449914688867996714109415133850855055353514410273203540079371510055568389617450378535044459760386734685393372169233540784047917289491609273178989572591971372442391742441564897176821897903940306347714994177215111981021551099571930209732022843390718911322321751189025451589415932283954261988415776367818913398182521229018778556441353870074325891045673397675969729207183788142501505674726516831965871891610283517627131774803016587372223414439940610741023720525342142197837028030451956301819130666017376009293270113292049833691170322262065061542585175622639069292135220659035953288424884896299726898019318857060094425914631541848254001044197447411003845393096630318377772423553033409133773169112525313542610421289003352656293273917235264147568194840189628695643377760966073901696038860996138463993650495889502538020683730904380471163862569494621499968062559995687204399158015301228732399620594427681187862859961878982506423540504803135130466962752808438388063497089988181021239459981670886027341691853191954389979513568697220499720191799463188166112266741147704188708007874745823695181810818248805657065968851759329882629278055407776024029294306337079965393139453858757272843606936549193229005909836472392119586455180562108480858819169606634743860196570702430606361502573205510892742760011642517537205145650206886709252828280682683634833310696047687809474597366115602567734084115760601272814282253026443836160727278458577868984292641536066235090989859217265864407834438674323827649418212911841504550591672181518331792755585497478025857762250644163607234973480721477904653639673835093477608762810705131170482428702204786941970247623369269231256857642718359792562946830214922331863066542717652881611233960455415991080392875778698923919776393177101810183354300550712236023583388563657634277051106069987138500893814858562539903455423103180274621936690147423005087177931857998410176920056147070774004662519214928474833799095338366801771914998188618337800907582945247421808588310289677131186139221356042264454673031971868038688800817756917435059363286186773267066911207867083161032966311944536544827196072769196949088717986905858924428724098456128988282971234009883085347815571911919940741320523971250018684268386124399094675341720174001709234681171617910977863018758843966317569259279512762720385696710494995827991439394725139010353757197634132292883693464237231446034797411009069504869009535285493590560878693620848841475783996310810807338504949212249682046642448871293456962478889513205997688323374300950681998039715607755582933345665642259398355032367798438253380575522284264358968132240497566847845201164572611273499969520039670967306288290480022652043440752577459117710597193324325998012581506489688554806028153820649605424365752208528103041099719253191494252687906204502385055422424686691842061219094425747927542359829586873505038452053617261543548338025639769682186223274411612124451434082470025146852043601268617588886865782092711438288398441541591819257396472848807046155634843466873260845249731305412587088924195176529105096455141594691047397624901937130088839382623077788981172226673284871039330967749510437916032241927357211960326441441876580413758614140497230252606955679928190314307760564890184187334311683353754526221262248637257473254104643983802116537574194403475651714923511642293109943269604682048500281787782672590268011034870110679573656390119487385193063623944842662387086157841129900177208689759223965733853559247491638383603052810346918784929359687027391495426915084394546104930552158337384937732675492455172658149803314848633774432941084423724160447054537895873947862923288013407183051824656883153343629251207145246975409481751527530269474754374957394453448946792572423531059629073040475957223611116700412023318171865400044191725735134024477283384524874362563854004633995503042873793404608632142890175539860715093614645701762679610995242900247007460218137858755090505528616704966842230837776539468499669883927223901990597554726799464084343437337785006747856475144817735233602365769148564371272709836846872806956508207694311712105803726146528730316670089243163425859902605165130894439541398149039879457082138669988395296955432743157593499142343519947279048824654457805425627593372074734090066807126367314042901193040090490432892918341124056448330552728719263319429259624928874635952937578893393621757039942254560024363589723790183148635041715507915564011975440164037566443600865531732114959816506368782960139765313779907287650771473582618357289546773558539033202015300546651200468537419281835019668012874114045347822434690367015736665142247324122171206320423537837096347330245023733510222588307185718585047137864832001247683421523877377810848711116806337545710762082764998085170668186116506013404720856008817800825137681702402786511776338682086760979054058125657621036568113029390041573212724350892707495469605335688598439922601636189613159101325552357212897038161932629140645014303272718864967143879626861267884877885378604342786645841753586559631234213363130694939283086970398604530651119344543617627870576617627534800070655001130554775586621278117350158482669639651107962787252719107884928040707738815289620263431953543243581734384491182090607674860009311686050958039467129205296917866658625863706169126143438386389446725506059050732301827010625535998511560292963627377117758213031060046245592212331259164857107398237008216597697151871471873476922151761975367451759711685766833817066861607568693215515056146391301701022231497388211313715462933610427603668376421625374588573040340604836285303507932127387113839306624781043199419490861880591063288232851653170693588959021984045747738571295057522416230620762938467507256277986183656903862040461490414798518546009170741718327480017862353948366538502456181752744353399055113456195880417321327425910385540517509624182834928593256542654541521126557902987541854111719803895390197477979068652545905582064230301783047367617534669205634233882017356945964921089096565394041874555839967246880162853227596447078895641714001186379461169065334103473143328764509903363641379255165339510684770078664872579025573519162277042678903878679312234503209805939158433187336494905784950321948364371562749369261179799010140298815927871305463065794035661906676207934035038706120192327836049160742878614988613560204699158417631872968224817810566918586620819467185996220433617321480654530011694341332904819193260365510730889320507992614052905854234592659918470225632394955661042944794098284406621891759600990423613461742690706691384198191216930853657476099677745854385471938104768514619721149645403016569923520736519609984151223051881212781836907976044516039288308044382528398373448749467169320161695909563094871423310644744095164320239383193641446615708168373770589198964882088266168823317889056352673007477759115636270201974717314430048916503758126262502793534913182554666461935044139901742699709708395493772758436703559972779870498228834423742463120144501370840474178925680743594855435388529216146302572259948975983674152243246230615789336244936608619001913464050202793481564357292594383593900519017776487597072199048737431591953065694156370504569252017374050569994384290059596257010301363703773503248364715054299882906290323083303051787091967241349691482561807831886800545796284489122830210759418807411733180772262979906428087978690789197589489319736169808930154616135493327759446675718143827360105938744612039855242818964487158613804009897909775050025661829485682679737665063812863270113216832591816990132519099397317084292142834281127914274711146074382164936247764698578783427108282356391077354315544206783016843784783054250869115689563010382822329772824055030130686008858287381679935423189402406175575311734987494235953460916464374236191418800725663302653610868799088874162977913518677439861575571748462760972709384515836802850370542014281047555561017984252492729033839462835501992328011665283930243314511552014590615181382574806886807437645931037763235789041775121366355245598845120802226648063418880617850428450854243054383906459524519966443956172790306983328758519413172755939347264437481763571008868026024603398013683381588823391041360640638009808832461462732836843790490004895981040497199467221371543849916472627826312130379520063383836526802203290519418948462982040734807130870559647825600258930850466924338084411464428489293349583581595461900361266837433029762892178611283770991512777714545508227323803788081606733743845023658621140841467889275307537222331530200551532031203949247677662292278001962200924911378307639122568326226003322452069360662382071090781781217031961832050518222645160293826911532417218085586970751563372653495838128618789139062839217615634332969917362848374326764086977703578683063379731801394072634748434216200488050541977039442640101725713781456080872957287014192819742573830023891432702409962590378573034591793467445009894629941141426679220014983198348261461316510742446862598806110432018045587603825326418898302316772663079482643044598040918225866791357215670037366161923290337567671772093260235477648813411066853075916469123227402858496852605508077338301270926824581598966171534619827062165500273739137612696455116080685591226036656657582985403180581366082280772020617111832894288446496453110552976889858606919258573110127508136354894364029149660277545803684258549756666806321293959486960869493855956081843613447614147247552724768368224719686485106926602738655208637033896865490010977867530517191445550157728805956002522608150715855501769588368858472165240054744869458662966036595539979027133317587208777184526636047290938602777234436501981162925962912333821764752238220055867682702795542109178350924925467044318926716844662685633213955031474211181907656587917962114458432089722593466619260745341465719188990966408180760714827844767567963137860717875844209859190049550278586382899391984821572201710300298904237444945173976785173047332262267009632122088059353220792406564136809834592152654241327879955130019623096368059003699239747605901159741151409904744495293783754145559152988635884423825738304913616716343289718889248814118258426225559390686113079893250999018212566691232367495087889282028486424127656193104259520664075482408782995713671244064240502790359391856989678690837091895067529158205788362496223481809844212810968245491969484729051982138082353289371840197437353399307755154193353705317236468212990023940131870683497717537720323504861191589899810265303432747708730605312064268246618259482586988162972021985593569149254909816639635333946263235489686882919960865592418246796530676116492021672110982287915375997295228551697347263529334333773759858707370480277984804192698087081260948083245850342248687675585274838903263975479342732184815405309477033596811910331667338386317542210601436275328760389831110564953680494243652053514922169302345114021553337372058890054604285096085442449064688870954432210912563802033019393331282630104384056889893472753496668526514396120087927580151400470329190561779853071109999794871696683794912052320460747441350740371946023907507599496005109438123274262631510143777344275363370239961930207040810710453889617251832839837110232095500947226848354829880003868414798271032598841715053145374594136785387852254208464974438228241648188513674108190561296147262757176615039540907578413759979271479468504643229831342345477050899535926586199593078887933037677836199849245696834562300591685634299472305534003641206892518797019967007883950020702876811876950800160529523998886327074105553778658159267047436497882971895508997628003784709060245958536503739654725062840535122526208661561547004149834275820170150022498293829574707871345682320678017965684191384240676464627436189136115686298712327105403178341763104973370876431564104891087451479265250399898190837423876852904326873827296709574047327171257071832786891860301833340161625989975899050430673806400304613050835353195159708738593907997835423956022054604101305651402065350256844521563918513360622900049128873694286082131954755936752542188281890302772965971844105038040389030455818977060756249010627835325223106630353821467965600155192119376666481814635470399191286117450555068993387637954288738075728064967606763635215677617030141923641278392238121419591783267056762361273813797800755103354971916032535878060743536992885283752640852754008803516485605208713321684890136054690067000051251702890539074720299026389285951400759580174107721664007194630577509126250538945569267539154997412466308912920529266825437462891291152103823671511820023805457488538276010976863917229608280130572733304851419338333839880465798840074100102927303149114718710015250128056350250599304986467636630926376602429003872174788572787334588560911634509101191626526639023588101782373678185588541759240142199455051418669418185803945556728324538518413563390959662690338739151619931596913714855145357838232210786691792364108724003541900649479351272251655307356823318346874764263560018012095976018326488774249967400642041964027490177207913663030882543238069899654607082615301493054541526774772555987300377653879066319428092928852416958585433933342097576371518488836256507861097679304547014524543329675453050577618303239608386861535756028074725776027983570087111767626311668140060988759215379494247738784938880323731427605573181607113515603146400992803270135718773584622006643175297762452189912757266238772578491463115586844213094828627509735372623294100518280868422347891730777515672005279176857178404256862026191363082584820828884548874974124406820051499192452653613449979773759847598798482443241105701284155396412979138212787150971927741986284354446112951338095965863060419130760716733299546296249520537916328396548593743411780923858455683498635737235200768933331713077489448137378517161419825827421283970188652395683125322873001867193997428237778756487580354936325557802251897204244502718183549120711908694060285911689861376744773725232481755140290325378195595081531100069106987551017288502548574885820185524401440848944200027320813682515799385985850203608767839616672402245442440150971926514305386778586048923760711960068928865817238980303511870934312862758370364442190352622608409667360288438448094444177329718180089609994471347564981596969609928241603238239175305741986846245451681198903259587764823710173302082507579377993500940149518983593533417538232971354335067559106299849736577381300226174612729929375070323134947323186713906522925668964100612920820079875176867424293581347288766464881414651249697674096785152646963743360498287549485681073283115300976641935925445976785059229798191659254574073176687318202643028269760680194887814993790459297743642783911296096160459291493925235438699126813886409297019616720085063417600387651649525066528888072486675096632860662540482633518363735493767184466940159623174703713771479184247417997604600990116593225509310712329362733260583096196064054444345920740083418457019342682882314082025257635314714603559207816650063536593126377201913331700384801024574406366844609173351133466032009638159646328318072010262318080245586517785806729823305608495667833463440682911504945586659540984253421449407574259776410130447214547178455279827951983102113875686071604692206312949874428805801259837442936418641378404022267273550238545610552757198872348980113089114388707972263444367787542342344946009266925539388811798458941331504043645311238764020453811342220161424423617204264540942722365238064247907714812149474359607768724622765282640990693584736782268959186015315719423111191814920199719166290239037521371887876286162962107705632933583961702043713512060128697962507015455058668273234175297735160499513902204568197352086992368926152239445121364107128528178681118001970876997855117445685189556997989072121624648324262942250399542238597313021587961138527476928549962992694879392172715842256605572610844105037927649154633058097096609099591353231756793123573092971153975195922194634756620343090745893617021684651722203828780189506099511751705276885079477904845137941677083645072178718929431734863517649824085343072046403335941757028102894863025989600964936344702568614824811175006079456460528730997589290229107660402201770757818885662218904975310050366908865430236321016708052101749287830701082868070765637665986405997934356192059897852365982947687631486049095603096301811165411336877608589469368834261669242040401260158269549579561967566168519558207802117764452535211784293352802170393048567298332684122735416793615170136309125752264773670265246705267766573847880949269640474070949627400042442024750926911563914154911222606625004253777676415367045780410420605723614431093294982764539078190307692582664923190520832761880686855579490727057735258429352863212991579275789396714169850372952576220111945208259944287082381832906213899177317312210038747920583617736080130700690448165207707305230673417413474148839426461955393715051683500419971161465043012470856519810079310418870803033080585737590074724880055160605401508937004362810985848754607544747133057448778433478459064443588778129999240966716231841130385728925249697799064869173176455537925597404513662613545996251738894583367234228992062538876381923987543055812861611512688983011394468700209334690446407584155297630948694579845809180341283996068921367387041344126597768156845895078725100426025484031327727560366473392572534947859879924468987266149558464838748244204368875995275406328134724498050485220194769511860141489660809661255985088326739171476133460149208611764857095847534858126659408043675214583094169166326715081615952214217350699096511777171223369110652694738968240583628376098512521203963906782616146958544583211000443187341827239925246796929283756919827872175395026842831125062202181546673834655530466846402613184776935552870248721333216863573990984690915488193868318637449046425621795780031033946316819822535108164332582888213636896246377510510599603269878411034136581036869130372465332394993072358437253684425023381745520797772125046100032567545189533023375249547225261006049735147086257337718823163333949324388845449053318488936427427777814445905425973828739791275177543295458498578457319386929792961182890917643320927978045142660282791798629168262506219730989674740243916119682513179855876807529819403279656075687615357626852455305018796698726081205806159550882063592996307478674247678904905451791539406403125982117465697479166120408230741240617224841521572774809767529876852183322503765527706070901316472893234435260631421853922121715259619106257683615742929512283176212292042959092162037327108080508947797381422706968767282295751794476685207649204427039210346560130633696868002610052959957493095002848577993512241954400362988054299426458057998752885416472496696958374172966070164001145416246848768379466108221253957348332727315189188092422765721356718427394654725565356702812648091591790409195187285234955318948670583744602908512798453925455749733393577096917033866838365908849345506129540523021129292623554945691470356768593734097222847884684604672918693076222522065312900698626535222304460379269261524950855837777508488428164040260614356078295031528268762853443528305288035555081357571326923254494181621481964544444636737434470252122309036859633426375590460062820726152530626876303529171301239098597858874740063613058163592774855905847835631681249040937900500419682159484287352780092521407245854405274001729653914855269228318646570480800629575758411248105929892031657170726955638190620393085889260727900557335829147552317575597054750220509588062806072480115675968491344186971734652501462019349755464605804925338129519147899283612582944116167499768374963809502177927266843083918314521002450813389863205425026326751584625942889656171966530790215173940137152363072646111632294151218574241467204717576041095107379805468110513296235187096691651044332658091114944670357386761259840463800728093283426958448604420382201154221580598921364254340078024967084913403124213615927093162702315490994719716664794637993378151084091063972567680933130021298491349031090429401909113821276156762048839191498319356442403428401507484086768414523494196276154425830056783172848784239475143240446981133524764366090623016866494657902171250780565642381211121140268386425850007939375214173839169499117301714578519061466515563860114344100524469632331381397739173069924992211251617500721558384124319857079815816912186562248524691401084677792751434296270248685305818954289245441410347281921921649766378972038498688803221530637605212246543618293898293335021098413202044582904243081122877201795316480301519334212217275001707922719252680471097006428595620945785981473789896076991719918255348834352192137825348864362717836031782496847771261468868843705005384197131406924201462218604978749261298142199196999991832476921200645228481473274823607165903549263288566123184009847067637903654683647821597848336013266868223559737446083103801588813921055785174405762795522385849893904541363400734964684851798284588518684210018343548425776036987261687638580858560900887235906711676042882152752021973430802678783621888097495177713454072975688694540518573064214070718495719443020246685156611245841920847860879550708838765269168109280378348302783940072040420299004586126270381258211119004370741109903160172699809506704701606240513925388253714773914192286148376813586457517217748028294083242780052256664622209226631080072074049649321683795584717320994939949263203630007321979447632705838625800420421763814447663000151522494593269263055319958691640022486081434862721691570423744498762085550416898313901150015378364915244544071572808073448883629104203689116786429451979340115844227318290354665281386931546554527785397147810801345365529007847316991773740203316289534926062570879145186353957991215518600366258645220415243492539300296282850895180433293650151905486926026339564455621385523964727211002038606615703878767731596284714155623228398889397570820283015462620331292694894133457758260594868542819126198510357096442545129077908159453891108526502012917599667641485274255664324136549086371171290086202624262833682987766673394376707212974900505655676481763399538634751382117501531022721352150937746061886953381187289856911598148275259410783811938452972879018494074854542300963005197853447942997190827753247615781225284383009220668881007668468831504468446947422511629222875983467953282248241203695879661825729479725703659201641105145415988255190261283745650037982490573023690895196636059557006725512174844980799689396619508738513409781949863754940789198154534535197280711531050224775594783164154106499231757323673749372727404314298823171690009205914885861570105606318391392222359738939528029066557604595119272863875536377449523575948325319923838984429081439716896195645711181627724657050734994747770435933263137403735879153522526617710052463186211773896495909913617245372741330179292303965756763823129773969700270063972239978036667365615646332744389261133584727253146868235190455046268070610202974122758883024846230602149848969282999208904586503514089666572080216115427014486473125247432509600225283564013904303781482469531636673636793057952993244920887621825133642342316847018582040739091617546387382452241544934886221626931798531114851299456237059664357414657891604734185567016995580846028325880896193367286680338216923181604443560692039708625232424825294658755824603969518540316554573617993273036070627535666347004429497769524404450472308916421325079472394535551701567349478466264650644386725515552575092487560736693368249823653334884206593088815843027712143815744908202487781277762139713043669479169616517548023405486665876831075381456011132075511177793961660107799357923184638579383260981682222725048143643743906572463593041977779775488144788966139872714244087367464692329044535235684040207934343650446188588228073557854721837322261316775749508668957872061114382838758569253820318589323904721753282461149660545152187503339567005547174825360700683853669700828483805078788445058532961750054656523028985320126806421749828945947204293768473488072166178908556240989726261013910483546180814307053511779760952817924880946459247861004178127404281315074620948070317990685981957783520538035378495224546870730365190346728338565534775574372848314569842129789158486336711624279369753595901661281530550623548899925024354682472032590200563698225173933152212789843125658660289207155921650611868317000323919201322823381279365878569611652137065335652182038728632682199962857236554495706060112547320129236127601762769204701203356160668391883075022813164819542088597142474786478971440611119861509796781930128658467025719094163048265214457345613757313131715575344743410040946336619399783865436638165892016312637497467329923289027612505378091589911542156882693189853068624297897215894755067728364660604940661267522039535041786963338200040285206435326116555536134066603219970211172315334506758852029071961346101893232803064308221722358657486574127245867223306370081590030666123745437880765395743816807683369618151487348750790644219997833160766629354293400586139396126804378519001429284238355627941239797439980829836176208459658025045462686189660001036842669342454008705568841828703079311251063563962405201010835125096727922315509672627301082437819675203007949946235252780362411676956243824099605383031513621682798885016878575889192787613260114439688851928465443838656936670983250335854884113691254274476351398002031526478745471349080904405168544674500999993667045937112663529450386212782783245323702517786332804686756708902733707127832165104075427353799471538736335478362466697472631749972281872798865714610199670192392845965173591380912034738058717360479113732036693279883501806311534776347460248524072975810242451617642006070965657230317738123827818136305946285528872053556697288501503289587551755018757463339509056984122254936728045616097436428777981200531529552747695657749423647530033313171906925926909095806119049095679145828915948946219107723671059358424281874531409825190745730631412488861033472585464716493601680809424095327416103211018377498676008015468047754398661073130207778942723386437172142770033168920513126004050408123798427901380539935285420668408570022150042078757952135758387851392055847237444336819229747001440421157094052887547522841157333004974055031628041949109140046938266066332252001752084850386359926337865969626060891947082382982543602656839586334219051568306094109408104946950621287792643027373670702965561010882132276103423568469055469963263673176737334973943149139164857162132294661974955480341039798718058392377428062397159949913847427171372386271731083933832921415159756377545111757544300776564116064464048766691222380934235777665550215207751100537488312018698153602681599051555334338441794784860444135640041208709804557318909818312990280361585501307081880188547822110084739809201127877673406373903677967891746519309244696201477437308490387701324991289059025101059892826823163594569465489427104885028850209517901788704190581563006324182819800346276884838081430386282744384197053651424731843393992120224392729768272029587333889785504453480351981969409854825811804918111234142087618509485716738603194285145723705928103868537781592231646789296225536101760971317039318743972820831211555187579612498519695096812326340264556763701075240950665607563048343993809341962474089608631073967277468766058667217047231427150543243670632385669178078380009862499655288725068509254893601946375599813591795714179881978117051531153175514312468457230660590426443898555601459996168913253570824199383798166536051823072768253696031328086861399876966312261758278506175086745022256882374642494184145159478975009233749651122544645037287022770127806623840977979759658200905680000345776038249682128076500539189799291322346375290551284419430835192978035122375154957768777758869180569316110234807641464426482454684888573498521233789403114784868797729867422760244520885393043961137853068783652274250199867031680173844223322862923243489944054726938890113230336525129961517099886405456673482246873656101654454027107964189601956352863797548327046789515271613882021254467273536953681222329170876124314986635733524054900731659921552823902028484126015669841842341368778870075254794595562828648419608063540462454923902860397129746153787014250290527851478672178179012756022780205575979642514988812477907751721963081534448449747910166704440763028615277450088989523722488941231064413465371199635208075111291944471391103775115720870601532891009804869755371652897091985883831195859598302154429920424729666312593265472568902717083221135752827262536038577269113193078243321909442679830882357197929353912984721993123855061678911249861076893833232567409970953924531380140307319417189101537054654056554454205965410213681990325850270285957052612087283052428865366049227280352165364573137399979289449839495856749696486947445959482667075471849482649718530738535660657856395404532457550309864528994865011365043805323504104519747329423436155179880855021971609721203708041408198919866748000389498282945524279308667390848962884046488251719479784529114481952186650267759705997827782107746914147446654427471691874139352110781260585118583043719108335687227255407975336784176581024487066770161449808896884666176121923116187924378731752893972529459259498981978264267529545226809738141555768888882543253697192393632448949224910412239554763130729028833716596962475696226501737107066681243156086668326997453020636343293101784448420205498716248912886631713686590876942739635087750534865859778767357842938650153843486251495613360213102896230126235202677962203090575295529143360477399483374621806363123532014077550968428310048080808001940398169122158238835100858719022931372571388980330271982332765802108941056415057823604678486948415418353363944164950426997032136722011913980001795187211046608040850888909076577146047994753630680983006176177374863237791773797348123764400963872352181322886433944110087296103283223214565940742452648024177949506376917231144854596346022591026223565042591047149999284428434070000900498604367782207859729457834563111402868589526106652054838040717655483201544848013001300166434484608236748228730417158013666969438991547704407977150686229009096077408596812876123048306885323754566591001515679348064992686106119022073514087125352119830283449146180698676576654542600715955912433337518323387663684975453864831571374352206707465071874871585374151258055887036277218458739098788158721568473861804591598912402482801483604647441357397757614366338904708946649155633416788975758197007860774094268601700292000388055374256799436859587840045115702597612115949577861724239742690990524534216392474445629964091775878690427651698333585977267704088473122835551523530207592238576799289250229381129794983550876182658842778492784534681878859446493728821291826267786376729462270889560634199630176006451319132185907257405012610465021019809511592843476396487059390715917307466410841076683836599788653009528947768379904185209324759394667036310474367361811169635630609698649849676323371524063680921796406399680341971276645900951492157790993950441750202267975441750403399986214164130653254476609684073624772123758252206391803126623613075623303818087372575915550659404037977755740538591789097024357640310997185030888016084750815735451667497276953498781583091664814893641398845261120705336706610903607483129423331468616090467169198639177945673091043434053284791535073592918532368483603325442093156007143696094587005943583937070552192846161248649569581369875921299726981442219915814689741771269937456934231215384401800959768668558951399401121440622172904200646435582924103203132501885265486665002436209995210655130265824803463090334652322862587578431182575130369053891567119158880962393986514337424326267269807670569756796049551262921812099342464726664966736503691412091055979820875092879685532362490156251937186024832175738301535456230534730492187975210184753844450504726150358495755356622579079917642582779390291729055053514557703756003490717550779606521640233392130421677676900004229155455973343175581727557012844711157091975278275694349937918875082723621580578274136687227589297705872587063178959269529348120488618841242537025031375729662600903950958902366666738175179202730947820544907501752618801854744642728983803452750762721862364096495759782449084062011520033056947721478311932041122853868989038712472013921620708046920413818421736746911193565915876069155325637441448351971566043110891668998117350348001604595260055303632983010478404627378853203884232355004127341178001747537606905538077009072074325121347842285455405407188960591286254761772002822969790339147583524159977280464368746067927209647853611556687409066135927304099912259408171287427353550361146855275328971791474369113923624714666669346718918943662640975283464392034221284229691601556388211883562739365779413894095613285719459671497970851700465451200192915775187849011325020845879188466700409067629803208138979783723749980174717498536801264200752452327399626839553934683859932328433984485343091611445909600680180087506899259584930266429507652661716679140883081164645089484269247310291897295770150977052699270169353253502133953868159655714373485223117228879948247185836588340994191123128334963547466251098101794137689205628921100243706098004649939911306057185089053579377267515020013981973519881036964148770513330515075673236141147288350915595561714042905762883230562044419309992000364532114255795184289094485026025458065003993267015542325962859326919588561433941929842420223195640734102085245107433438635485307686737065779722677011757797162234940913482464637489211172010943345690085670977618747916693769980586649052495102543525911182293547619795949651851558384740268557915989528561177551838258990778652635827720665787427847603018998061715343421263832378539105536250978977145303988748596430431584176419521617284182916522144368481170342441951192285047734979907531922350751650364534901636840488922934629070453080104825370729819512619945003138336853201934780534640299724276656335150935873109664208028529142045263704995397358877979320313289439435970224932156163689021099282394257734749885718881942549372561184885541149371551455041508958409897734601604471530068655403760715379946403502649805893673472321064979749046679972318917179394798248195786337717983681104899172637156583119281106668080332833145086414554986631618023593715184621844841127593224634003209162035794736236499192104170054848008670752940587983466831805366528387090920667906227489598832126593077613205811497576527247366816273966114296297296223003927605109410780108008532040371747247090251654782988836791875526305542504623889409199212454669712460807642261777768252577076301513540083032811720385689135318491336489948599075475352756498931026066908754167423533106296055132876516421716755282650766326262510126920286248288780947033260607505988891857125991253646418994377837486909476877154713882399947955141011788149592080565970114760823200759819915532191015857476739748557611095890927081123104867902846303620249984040542404498946508391788162524664370075140085568140459488201468319837695787132092611063889088304847424745366247331429410472878585913659856161435923222268961048469814360001703875814815580164980155728230699157500164707205060189213906191714593194754529425237774876007282304826213929952905712464853337668383222308020882690435724111029714466950614113496209783518726878268547505532631860096305880625043383729904813334116216879636824370145904110105238376790113095192906040842395992336767764071660409415354209071648852033900687931514256843322510061294910336807300694904520897007651884336929398485619450734411109360323993822205116757160993952821903220996693773610596171601986221146822126579366264204210537459502154751673394053695364632977269664065005609436929423806524213072061124335023876949498723101123761081184939075603610730312293479112402659871613428531796017648096405623372210350730899544999232870174626844438903401785068589450952394850518736877836454717859615715640159794936952548834575641191400625768693745167172081492946774465706349621629600343778462001450546032734333452984359371054167386601439931424096973107659239001727169001909774187420636598910686692716006311796964702214780781957044145502943778887712640401353287569458689534060093516856577893706613342123511634494466643575390286261486587108595820250563392183237199645453769188253640986716625780638238120684956133001323078876344918149487615453275290050290067412179553905472456273048581707031968871813706690904016253065021109409338797230772280508345989891525295515607229073571111506915220050523293516360923630621578587054635653487102943020482379479457585109437090847877481595148103225020991126049657047394059471760185367615211299453864409496886878932245870073637954449344208339801043676193127992900721585666757464201568714837760970100902359932179557411136841161098742939731033252897914146356436244745479438329706197065428803398357937079477866357791265754679239946795025771848117453780863440727073335269345002336535748044047417223753141238160121146069981034484307316395124476079090664284756277451186321154746848005409586793057526223631340800265712301510007917922677468862362232653616632352304491151725758204119949886558070758044475300961638711957063909413141568585463151815183922493557718361755094427824577198166687969817163013108589876899190698864698853629342202076662418206261328524275853727660366382522744087491612317171771116266716020399824610856213367677664676726719329103313329163314665624479713953797753305168755176478894119626347397975545051026849073945183293548093423483372414824628447091801607980013223901710010250011376658348418452675488041273542309931268149744980191932599324194715698580259145287781405393990718951199040184938741611319508462647059795169190876688866856395326622784224111809965892069506611899110223824952156109997891389965989568630211776214322766346330599406110240107446903969293816283300204386269662829456948382995299445779327592414279851172669342526185495586179981873990559836082496397997221056108999774959038157073674085076768585416303836786134895409283203004198519036323014267376746801728780768465854227889691247132099199864795279134373412065001775177521596994129582210138547398574068879622204668164251274980239323888575230665926185894219947376817648077892559128040920448138831720136655603050031130525935643319393708731224260257567414637258654820776181024605968295157765606618639868034719435957279633251239684435703543300998795775852153897521332955465226112781856587800617829488012573904026512820182521320278430541154389298207937162071446441769897648350319439097877447630111779431482730234819819885416893965995920368518137367318753549939643811132805829421348405464926149798507963976377488861024313057641881487831334204130186835857708488797285244567413564428062728891753998689860044186963981413278130507561595182221992914790163996972910455734736598404032296776043782089556334452699364880812787293911756192662006008047611450910794142239356329476903477389355055154838940008416070765556531529529053552337444965024339089309331323973173960794584901935817071919547951731009665695827061125352265258328702438025124412857196536573815231531348700856157369117179032371164677215871540214350932376982990899046415111761218060377226046276852265146321679060713941559303016508367410217616197477793511522472229428742791407249584194828082220627980730901585987165676519668417917954841319458679636846211466843056255249629576334274020273378517178580192323913475927548211259193331643542650228085535352550062322678575012981054186481633734922070076372466451380570192343130008200108918654558490407060489938707868546210894832941180841059568229325041693065757791280695304950761362904999844313596781901232649250455522863362400716635671912457776882377597666670394702232020417917883265900143074378452654118348785189932796892738626801417011718937740746328905662464464012912685374240180237198825322706582170730864962525034758036695693958720880785027703602422300390360477726523517990730937160394880987104804578397954361801876990825110888576543863523490130667302413656147786182120703556701610378807731922235926449736428510856530142316361776224617153170571331583536664367411938920257514305209549225768028226043329776040550201515363533801847936949424815294917605020612329388491840204150650576625905457535044156818653900261316869696434644980702089330279143850800667189888921402899129067094084900813004360023128964508662122137232978911768754375360613623874049040609648192180344388709996050028706038958229746748775168372199900831210868893246192396338508477336221789219706352453122535383812759539326199223645933932050997050072670636560163921980153190272377323062947624373973084575569601941633289429474592400103734791695185141626677617264269662809193625231203477136293985459908710858304465838937499157998995528825329735497658211287152773358559686849404278889098805528109389915958675423657393101543000008642815001008198026472137012033684848996746698844818529511033247232320396609117977075419708826215539653527378678154965746015216355513945064360221189975121053435753496977322822545051973225143165519253497385883472395287952531666652787375652631297562443258673069388290116771831219083772760794158316083778895753974010874108545078733620974322690579096108292379898327763329915715060979341206682385898980333721839773497592717566874627373118274549092216623911976249338152489272729051410977540159839104090039406499739365656420747178566735725108976678548922884308864880502258164459107688564864075628319239907624726446529572988885554708373365087009094270496491128153092897483461831124261011372193248340838689779851152604278284750159104902467820050727283127511349400263141815541258435847239763608560653109011275589294695571466494593074321831436969714615440532743739016682401877193783745113645127532260223088186648977745502402198519062422641076964843643109554557234487711694175606628174638700355223433952349760603731198588758864208652280501196158804935646745234235937585667072453863526077459375769335999315240250588334939943555943122355600852218285856272575474118524532385144750846680616102687428380316551624850596694594459785921152346238360739878033057665236873082210262433182143344875339031006381025992663706501519249480868101587546800108700981984703573406612541476370810575220337410505055340951403717537151868226471392024885639424593806965354782435866215387524845701416838796934153820340778026132304990208703377980039491917337325749455723603275956970152994250775992146403946284396341832769752382546527142890010345394432768432986053011141636842713692171360436813657356648022838442815206563910181971636686503347739437843029579575479681431608637373446557225348135583799913391882995455446526270967480456843508100612745120999981557172170547524283726227735423661966843959294614012089293732405009260259791831387483765435542304639191161186901484952980615156747634867551619320478757755039508136795242628856211441321144148422937545721913507071002274729863034246996589767173315779258155503651669536099843848736890087528021326929342135383179286903405166309025329860979153489289152376955306304556277104194885756112024757830476248893309343372439457673046554660351389591017294256374971880719359367791457931127666711251128924881918589714179772895534393040183328572454351164179472480408091587553222391738709633877602763505410349827533379515215451886054241072356297571070253362877058596927368287584146468739395090371923846630947554197470359774836218232936717497638040463532421811284495250394465533885980919926999993740366928682787218222118159400900988240255879275522070404311611540629563980990446298090361188641846709450945363735351695112297887221420565271572487324846645538910636450967863141294487431520434455207167560885126919774205798177015337016517719918442632007053412181562465308551781546069254278572903307295531800593644440618582148552529464167505646217405810380033080488904801886498695968040880475717925301698864276674247050771690064458847785223230499465802364668808136398828800283355744430784572778334585590559009750640975980397444937614210664730957054777249098276772126409057132318116290829660900445527192748602528080064307838815371888140996023744802884184360412766144459505706026611955268631511252684679803146080676060786219485557742535186862406229956543529612999071461903945241464043520517943543111575099959758698818238626080450716573666310124848380835673326980592258184207451498438058250048615826157564364736920216170417312831985502603988744783566206772211745725721955523230499088938521862868826683870018143954518462852684725523617118433712139368715908935203376536260370544693928694033416910512832483651523674924867624282754287734227613211015219717063668978034617488909191119687658244494613456476199329972971996617675864249929426307324781223325352997635514650789050414515019268928850703960003709612135280286899759992938947383388208243048586752564120626482703292204800932025377598086646640123131189993395072722222643363391211021717264471780919565368421842656835057278871264429234753008059137444092396412524170433381185660075710057519216560740591931482508548774499544512945740795186121436811440470510484012204844969597390467791296591538457201287793582061945276291086685956518435721542501031535138243454954127752755669202664448390739955644427763164831543166012945599485123773568365042918894354976513495004762705128272877503328608898631223210305660936232872776177049108911675233892265819987881754832633386688714891110346587396051170461588210041084554213415112885860811491262183075662806346869417408478529963923797686821285940103911807271233171386301740503908195157848165053485845760927544688332130127861292635562836107998485099274742646064865105463792270914292343296182575174213129272238442620965305462156471498376014598847780693819560036172659046596350650384129531432828322212092306336081262863196240182071576392776465073225229087131803358400447827192072952826174825917716573465781829706172057450773824598292247182928480022054007717260135699079366411446611390782147214043224663952974136803907762237815777873697749269331383814343847556848628320679659661472323399226095543665758221464590783168251201081858351338725685095309264371650340499521502149899036772452101855114798602932091132818912962309233012709024045622263962738111382870880804493763024301901221960354251211118703071292543176201239249793112176440908041888938435557008876563348819836866848452609824913784046272836587307947712808709543522943644164656445300795840803107491005295768609508117690534871991765991880676870425346820742252252215733989353985845952116510305052545707101003003687480520610125066332681836024245215786547369868988959782343208288197721769296619847174840382869811620051465595206799835681324077758942659908813657515070632964709765273012535286177064598819853598732262563391724749856471540831438408849567585783118419063168509313676559498869451729868418152299267636446724291654585477208757382583219999646559466820074757197152663552564450132136524494030160627394701197054026632064118786787362391886158867056980384493946352237879556781807306173455928540879976302872911818458194478707450792992357556620882567132442938391453663817068276243622625380435205413115992771144399438535749093462335105588881383241581443179162848601522200342365278074188269695630362298495386476525513157208673368785321518824262585249734088138664702921580552198304178007245620014294334529174292829865794717169060942058771121039030000155113154294894114432009403339238824406834432846766471955637118318244685555185397800875742589019302263854723542112989951400220605906702225539392823447917401289181387276522362839128359869020267733855254763062548537499144217800190656858494969262895907198288988883328323398369165979966116586127983943052433360424864741167484070557606357157224925579499915629967121958786462006068461657664363312370365431283238016917601170561603267351746656082211446803867255494501705437584547888933376144865198485187974831765274734186937291625948107022291613335312211950757738156965020486611513801457780380590785561735840852251546965059466924662578649031797505893675774075996504660789791540626031091264157928335383760750279879170684070570145601810835202077171881136336018474191345872883755286123234814230336555611444437168359385875043566972958586924719967640771642058708027388638574974851744495177650087641380145687605155463502930940444526938516514502869547045296392856680465435949577767131080007044436828136576674840241624342044918584858231260832819496789003453092623727051939611306328433997550882020581653081478413603453323536104262687411407186132990954316242322082071141392880528460920747877374564967713402478558946337985199416001162856752487831111189545792608103374002851805007592912111568894542000228309149180939958869414131704354836817446785092705895499942324677592885736057202940095748544924097951025578716585698223024097289875024275956528718737755630168838483764841353826245017199834824757884264159640547545782739975130391743525147434262594513455122638554765848265382185370138657896159909897234454100857708844703107203484310677760657856757029461423112331234285533536079686765801808264763143238979888765224271343768472005153773882993621841975428229558532493755377150734603683741706663804972213131328126724471322840757489608331015309393525939064818607189930787360619254985264949525854562736919567145741394699336644496981651103172631629257017558017554883251323703347434959180624680256867030818200239310822360532343978367381652032381533153940685284207329105981015296503581114513248639517826534845170175737441745202168213261702829352801814962691449252369639024061103447947370035955973821804089991055115974155941579598916063519024000751694223013292251664778807947701579921037042464454913957873532744678500528469253063527547871830432074073723807361367037514953152236124677134416413520188282128275672602767302096594942820010688818245595264071115191904428062802893339978265538547471498666796989116752732859529809406783742781650241426318331592124290819729881946369350291246752671433665755407363076682851079678439030631692591205796553515632710165440320483998561062132178794984862929844077814550375184955802912151928236196379158286756521580898973728265702174463387145642012408030037283783642616155438112440160569030662371994452466357211078642556760984904278976664450907088789472997341090787480162755766836399490098083658551774439052949118550704945248452882539007303808637717514790346389542854794328658019972405715459299686894378755776242966279223480330041152900539169276654185304635270562154666662938073475339206641124128202719210463456821921900310998525539538400034055582061820710047287033271901739865988362515431487615134622891194208433064808759065130785194289028814926766459078335584024636521904893956698871839676891643466052796269422256635670177197313320782075024666020983623404394908259927159881995059574586986362190884542757472602607949997230406615489254366033853746363838024761374156483853042170997146683699618867563756293708803411227541381837568067167298202342598776885050458712066377473924971406560065439777125805757737607542324014009223600980061069267871862742635548355251628694213388614123882720586695640297141372998573532453423729412982242441496216375924799577425465795861341062194023061368359587771592029882363807817109858628792746205335316883532696424126475831695452565174840161054991405869963289710957351290592170750546530877590927257783386004741556708533398132390216912037653810488781606868747391224560346942851595282504837206723907137408386797833411486031635373865817731195508859445508746124531335928744250431083565785520057817686670915984390089253582239044499707663942443369061052707368312188015205490096866134706616609631900069809554858794940519834525809412944963200528301891633064935854354545412819088179588813399635502496182052428967415110454524672208706411565016117751603831118377899992992514912140209707963214553075389795511314420841935610524142356669492868049627155063981114700182988239059824705665668900731861765923624815198227752719484866838352009469080490222517936933976259896105374694453505209866742575158066713355930692809602552255009964259120686401049144346747082184490647325378539174125865110427056896056275705302887554988234529581018836504792600541676069916416885931632470602413037558785454925979997259973478699396983183690785522483689865974844384529169396462470329924923082795377109643902100884052573380457987638112737571304507101518813633311291880664089600937537179939419827296338766169577364764422323535841716812124730467381076901000474481594474820686337793917279117931857666085504400500739335072505084010266762977697075106930368076458838710236801205345600620223757306922982039468222515252646686181248065768252868514006203224977334198043419727640492366318947539578344354304029402031206002454266052618586129253711252252787329849907206894895602925043298905055518829789953574992514084277250975277454528473283233345003887135201588209871711469556812479530982226298210976140519636202565961061627772861176671268851561157701671424227537965278561638462178313330785511551029387099935079927258594420854166132335149583634452170232136959634382429666763591911875074721779583778269445502647609923975612653940128660637954431637544551149275714313246476397804040939625791149443001906357774149541343208367491663859953564465819804542407869798049945997807510105409541521123838232104100100808387343852521010780568967196533611633959912115557782872663887974793361181482488878266040193206573446252285037843608657792677332856385069050948833788769555631060216683798925045247234363345834761104150116556815598773321138519006656473740175448770303565394107273963058775797216725057870599567624469293793665472916245200555197226191759968829225278068949254274813333007979394349718177145944252162379316583917984203849749675638677526111848625445174423352107930708268766958587662988077708845530495797714509326644076553430795389295946926037641255167662302472536854456247611902473210359631360822674150323504127546482130129989097256752987971656430375181864964854070840428546529434698727122537241599599191388549048810257723581380156729820140343588353037940832086923463366845121827779655425187402946861917410961511967706256961848035160137558398436643852303361746947009011681817871876900570277825267781521175168757737011627569970326517981443471137304816636222110518932267999329694051282212108629867182827631960328304865008449503879169720319291795533952758150501599815409935592838257408641490400874472315592556385351480333602765095260759876226101000152704292421553822271911210930033170836465983814576811251297328827702864634289026041277985513352492256112052035106458301325250924876718134106811196552403376307805759950828610237045055751116349033005346215194740222096230491548042994532451451399982045269972872971604615217316729006267121121965235230423702108363452908746038719153631506177805004000799332512997063323718615870169236217351889905850912490872451314582224946964405078371945856296054943012984147141201950890081928178252934058312524070280511055395231899599374048053393338055553965826133813218431359776563581743100219238140296196361524368295825520755631730215829640191050806789639891130064802445906101564535620207891446161634548656003658347114052142424755252793364811246057364403539212546885069406857396528391417495948883459923236683845124273804971476446543413805783626232032923705423504518920358623845592602269877488472921095318351572365315096608271317044641122617760459044596083670333172331118449325732534841966455070585566234807636507209823083973478285531690214565453821737347053272993505315752458472989199301772794965692656571852081646170896085187352182067481958243165825731700217254860738451981469648676540245801501572268194031222332692996608772537741423904394891792129365314387980381171758450686279052623906329946077058119819571975868305667656982656497104623469382071171274281736542150173962838446923332857413115203605817425193247800267706473911633530977293699681876997852525181928123652805317026902205259374115159347000729519902051908852170647285981746761317007443580363161736307890140764407890434851770315915759810680185469782176975471386174228097793712076590973643169809482243714873999451311033519285452541141268507931164290573244884838801041402897175895964913083461018272214552001768589911799077192304348756224364474722402026215693289508866059404675241978817999368091129256021363398615859202948856010305401222674052214418131863889366260929386268013603324651636658618476050000553053590321695852566821564369737734386598291721232384623116416145411775761211392730073086406492681617605482838296552994332373335043598605696065836794297151058205722394293278297809369757060095331110067773453077311122817822988027806826691442477258393883341809625163863644650114291187366077596818182793238698557386893674120239795503645372865411540818798234814433238017529625153220192720205851902210222339038082586695038839338937032876394887095963603224661332257583240030810756697981913028780259538960793594970615711991747524481940498503002725937859437529089438015534716443067290362256941300192962741075064422888480385613872744371854038573971054170637207388275061468673508422077033429367949425665925828846404104250612414681975555691180646538686657865412562447420589518214872882831901677632786917747853339145290431951858786693654161160546676679855991767483405170148801800206260769763509778070747835277344621292617404183485606483724513272046124205442369637994186026876118322315734356479027786556509635410724209035788113824936553292606845785709296566008013395201000512509727347501898536400172120370344757809623311073969498292268370979583711104598840943581619016345749082615757402273962458819968480628510935001829708493511498095382597352869738374831254904209829327920836980926851552477133583914642779479610371383251530695076671348745437553464460041324272787121446623831753013051242004851880520801999848378643341871557302493388502291717207335418900409268587013331674787042159415754909244400247031163360130538291358188108514637925049822957069699209296594262501033053362204538975839967923067126611430953862737428203290297715730967559339569717320456641858480765743184999625557139867995445522001455941046535774495792747674705760551393426599108566515247089050598478903843574019083854410671650633733929770412976667229424899108572996851777101789333038786683172395025057342200651853645876643833477943174804714918723358985584417696533904928035619718904900217217170092890993479609688736645279763420555897638772319103677041228910515477229161183436841502310439477004089063979823799963842619266915849314272293610131757268227498956611487665970394057481664000195012667857797026610935094755955302052601973685870857258713615636504577072903320649686711256102859472099104482291288707948798584955664719956719767645827828653483092499472231664937034973257824649361692344942752348902840500147408567731842198952066507155899364419631296919308865535554037632709024652323661141336427304655655476636878862459701505124076970826837575517874862008450565731361736054933212531134693981036189405940296563224270184816286734976790703059349271767067455890506120119417034245294967620699342710478890124673590324632093942839956205338232693099337969258829863610488454164760632570553656401487455316303939510295670702094387656346399178778987031817323098701639341316513521608414770003693554197383961186953674515416557632599245987455497531736588431629279658988763062568489340344630497928980236427255512869833958878862609133763320360304629306686026489024894917197570465314092829599235781282598562243079886126021992636889036661435172819883561014938422142947967835600828113813352983920043178467851293672118873307319231088275780064646545507994441509824363651786636242715269643080837987473542487551259633587837473810475113442124951347454636743145578342264232303338884373051569825869281191779523231957132872004048113158656514653206060153638547171384080795697756244852000298748166299170387370068796571276204094889920728036717929069007751596792378873473543107988074112472803677452440180150382884363630553743082957649706081624743831611068968890072981915626617545728936059371204388898859261728430494055335149758523372855516643767828890672462467608676679791973797797336385933546179133101752108443338814471178579374396482000674842798266337347260220799562947810176432820687915761287496738788253971175542873394400048162978346585868840520198275296436802520662208864831407013437333943729098695093972209367802927902616605489700986979367739879651559693754959560587612273817237663644348970408311508961540238809195768761287738815706180821347224387647236831923596368424607844385840695707614522750247804227135309027711919931339061429097492968613981485423272096247395833503164698275654947664456316208411405082351496565699811431485761792716600560836752419149756650108858174022056541479911566112066878906853132689122752125165216404139505613672315658373269799803650190239956733335565420158810567305149410195462431801087015284354270813261522041735172877899665266120189453024649350504025221107364359754100063458044971069896755871401498946304979841783144739820165626484770814027922874664719264850618205919273996500407993115042821050814783971882753817865915651922093673688461343520659094975554366441046148713647011990723711116813267114110159587093493887528861667269924050654881069029133865215861999292361073769718847076147959331733948571233204191899339133222262286669237027776193138688016393700246292764093277680133866755855008596469684663716103472515291789361481707522188465038084789510377623088581999289211749610359824162282144850545246533185131954866337349798991291624821940048580232740824042238843791635953348031451119788031419373362870762780957925520088395386820052280879494387506614697029294381841759261499283263646169233008128346611423774227220081854216871273461240914591284128404089898509904610496910276337892036771629411550468276679596951134145526551403956537047831178861113320411040767359212657760543453644070747216142109813354123647451634640249064222259980440181475050478665598807226248207947998220909698869879771321427616692744434439162260709775692147148206463675215353220594456891750572853803143216409458526026915966920635530649285246353050733725178454540271595819772976879846159398673883146634710165888473399521958649617875466235608852400730922690814648481620934895545687261878487676398892005290377945361082821340286707839242846692215849516222975771270220261288262149039256049115143083314346318436192692381887443939553604333880387843423383365968588514492242251845082768498843215286704398968108124678547929307816339393699167556793858014394245367391209758910456414763591045352747718257176080569265102835473216068091407282353116275877827014112317271849718230035650006790700335323137193411414488439848776365525181110559655880491858262487703599711605162257748455662871100714451462545870357234971053705281283062461564891310985358445969489738360378688903500762043192239069805730000223260340282328651813099478784647848929295634668143381036180538170524407029403947873412405062548149954804784680960646435919908302194979456272486504965642831682251845797349734198557826025231088952782619360591262770013516704079663577990764579945476577150469053948034511525104378955412404107368366043660267751948803595404651020672446778713143182912247776115927060778004060766432911073951920907472200119872607835885900260773531353961743526124612224980566429109427357316397903317510133028788724150867564527033204189457869762958036527480082668899616612544318928775091083377431646537955207931040207995802587571761494044425436491864177825272080801798784565639283060049608474578549484580649683998277847632337341524930111059861435383467769441648514625087563133970202364770809898855616987725364098759869336937787197675175520407923727496404599325977154608311749599861262287593374883466225853896806592180387690731128169740046898967131613772134315434448343658626936606156491658410701774813384037856407867027871119771564017965007008169284906999284714885632963516917818331297814934139225178200894445010680954556267738876918945463638811791826006050006938128079655043646528387362636773594755668078805070632546023131517233720219080448962254157913668235381015324689495908240562396495209207241538181155873035245215488499082409426086570703761932123514730796877437787267769873334069491971418139673305586814703897757340825969363562396153934654834637195942034402099314149923103007477497030151119603466941938338944465401673183283774086454069604734878794571688734783513845541777285855990423390037716012257625705222437755537606718030773556496313738060429604898896820812654872772961820873668873736220519794854946249577600138669643723728401737532742525369925087650221340239305339226850552939192090589618942492143426434057436798557325346395209360491905696819629205698294326955331865653681342497342605937296621875744597978478637433089393540539044591943543827016517647505973219012239925425509383555403809811702759094710349300835695315560835521232036711527235714143488151492564104436846719133312377350532962481799511084294186719212127177530547007982885677522427525557190408856617965055839994977015608741462767722779573583040008680968047440675510801871181382520903369899389480448516543896625838660714103643885815758442704615398878497288623791363039918205069132228844591608844335012476536668180846661950494497481459580994558408784947190257277224087020177755858295287389859678469144601449648287345171328461008279046260131701535106354276559424500821768436648628660709697935666559637297101139691984464802880402142027628580258126143753531715885197757766328185794190193363888318668138805430424772141470388874848685832663530445826835578120516138413884375883472948498518772854523156021632571306432668846903387090842937569462601076392166742366542166125380809631424188231335016560893134908558333888432068231457836624726075101880852350414217443033588554678862418306393707289026819423364658740879550468225988301762764906169502252784705271902453804045440701481613901132936836984831121250279253440335458423167586297868536599141912067109274679271336424291254441914314408983666024324261223760039856257276017619227137613941309925188759061286404549574436209627956914601148209156497587620720873224465495433630003656707290299282038919358261365047201934977529057423742172221602942062978382342168121428237253532353038267392639402605393154101550067666470200407156501040137902506414593229586050560912845292977669336683773809314291129246039574620431025898592512721796760282790174422171523692556013325260152387668188194975652175285912195286081093984644831190730483379630190671273060399130640139499781716757300763350485066635802054105472508365903683859677839470688537141301688418098921895847701935502071781952884051756237302039106529942085287402797535408571102620077551487948491668284670637680915535320315891939083055681164577635527490517620465928312441686318483573333147378427602075451217496456225087023505164914840831776389457128519879696815002225254374581224899690230096245051580711099445619679195510852730650540269261330569216620201625978564317161304275366104955397657945902448198192213801947415564837728771853359687540577818676324460835811365787211556163059566306506061642784188816429120589580466845502516800606097991044896019042343510612554321455138860638079171397073497621861563834702001416775306984232899579562314456638801445829527260079941983813067320262764334571081933646091126373820340316613149868271519699148760735887531809696774885333663945288970265624925305184096691390932496382847419116222654124451824886537456804297987740496317365925426949431603376024024577199201129911555030220120152049681186646314279426512232700723084008436957907873962769265972987085205105901576774313257514336964736649916390999751820805876958404279830062186460326188210263248476464294899222229623353417328213337615967307951650152511861001502864950205826281917337179165242986691460219511216022817107461055058296501278529467988881959017091257996018899384586553224934684565329496652117657625586566907762717159413801588625494318692446879239035440492814085249603196426929614942300817321941295401052075318619259711725116004272944056334941474455198657804935946737577165339623456984798284169054454203891004822758272892932805967805330812382635105109742557247919019043464986281046329822582755878980318208207837406697123719040012570604335239719712766984017728762706660146480734706643976649733806158488731153363925673186897534256580569057761429811517943536547233630475316442440479621577001864248591912510571588062704381079702943098473571284937224659635087854029268020650052629813378113979183989380090218664467967891061829441037192166958216365445247018292598430221714576515471357095606649145340215940032594976877158125944962856739655454821381422869854443648965461847949144439982363378997448283091288061388321915698247232819218700284719575213586388266460498722351148023604729745624423650455660770601158991184997228534929832356507946354443547005606648198372975932872933387876088165814294995121089353803132908847075057904964905969740273325482888182396378650842683223377127957107318898331237686343969046011663590086852343974122576902930108317255946929944542967358404589783670868276925481073528440121380737565284721267179040902727160545176797383902168774863076698649256097063719577464327562841431026806211881370050413888817837491284378408377912819143211151122712373330857225559334283587323084687820258067457781678548766003061035885558133458349105586178777755839731518625446869837538194732973101571974486716377941575907724958807285589921774341915520728980024003794108354298367534300725215740538318701326841228329244247108411400516075449401755770727048718635005819639159710463984111013108307065662421140617498058214711741481418441732874600626607891108661496549259881085619060585456781593567372207705724053740516068968714894760430875134367993959754117802937569240304205415505787777334522792217639397981149124844344216581818328216359933144864243653899585553545932359417366522081577400997334886269318717676976088679380265323783558675310123539987228203932410246212898466233158752779171210236820994834984651531881457948012495291597953504989973387136502039636891588273691094189926827312775792804102651029994288463585378589025607946858735958012898682718566000074901334865942745900080312984825931657338160534483051573035317073519185753243134479832603072021253704002221799719019884923892985078870721793267077876431810940330722935480548199009800887356519627776114665807529976950051815623123104177153754970838577070123961545933198674923042591970041517740999771002065717465046696802129841391205925762237253523992935401665035453469040101531654908294374455412585225167140851796359755914030863773452439634816651929753496446822913415854361551897563057893062016756303065903904060538445371751852682928156301567051597247184662343227534014679373413428396543039009292339662971058218252769429822883849696906219225362261806552221462586463218941429335450946982470276446365350121292747000408682847366737896043360705752761294138766976102892491481384800367168347521179196985015730966006246453434087337405491374669988313317020912563624056260575631816168974951838572591064432079692229252008483853710283111767469924275482401826555014601254926907486237571216401339818954163121543393010969330745424201821083965502043108284638045595872755290114727947540504164375479332352359513772678743125923099077543309873400734701162390196126387619217505045774278048845370601523650029783069430651495392330749699991866619147245196273977486208328817816403812080393469769526172111452910008690489968299676845974652077357246186391884018349408336870580825507989241602157692941073972344189994504872589608309999126722142728290931948379232937218827597815295945482614933106358326599483719539292499258299418614219004911196626258957280673702260745238264195134614235451116232180964667807791636131503481608045488152669967094130824843463948405669454784077065374723331291522832177432945216198973538421069277199255592496046752255945367432751426334074784545681045689715281131582248836137808313908286512584436972752219662361187275854154001967942272267607934728142964413388681453904501638832025795968079928729207958097802346617907776127416501019878631704841384273787214938318700328315425073597425039115694965589437068759550865337626482929891300444463235115558905088887320574935042985506255931928933890747211457062732242762524957714128031008381168918903536173668356163353820974052756288019002525970522616510435951961750581228159251451840366797497963903607496352511705879777053691941044281422261918821256025681975331315919872580056763366130860555517394608541743968906774784600504651153798086143368763775773336090750926167159957886197822783647443658617796817618947690415743729582832226218873941597742104746574788792614698923978306287679921254690782830525036354783477377609408668554289599693966425894416257980926475342709334986446018384162249967384736601677079964290811518384844599423928214778014314016884488928189323475425991041090910575029292814418699185121422304572612123069059528443113419648413628765914857260112408140731353023082684753820424777121623255042236250151182994943969902223300214373185532166619343184996923070266213935403493672651034422266510248813499666702528160262863095596456796629190656603185394558151958009393287050079220206664952440291819789351928523971865314999691035469039069105677354614115725602919019726838492568924615110121709248371158874646031651635757442605202896397146123049111302571053269431663369346036580613462159342821230333733264093391063713409735275543067621860444813489883936640809146515772071185777277920956180777161126576442393898119476539058515425579654810452660928874777423805442783792868860421340316131473516411980173482793697108434396882670529807271342431598649076078330428382311284533496681459893807860512375826769510108025349313752254519182930545454815828569773884989214400772350813096806663962115671321714884069799331490106556981837920691593992940028862035322465280365446866350644577851960354636857979567706139715606872267946256175044250097152006322352400148206910655530951995739452904649801908248100769504867945116097876751127386575932477460503707033950482894547728230697742244410995983069910030653657830912785438800525658281083572432040139288939718471852372108732476865008093839516923673269589408983681378784910614537746150214888330716780328863578361989713143492259854940585705360290891729294062964686962112121210861542362449524148459616024617749502047787432460343459723618729452794014098937209227965850898421163967407986387894977750740981810186950979287475924327325372221381719275930845401665469947091004132844800828281305429218424014459023238105337942908640309227222015461469233397702591333541990220595928379619930543136255970383466699127180053994536598350385475322306245686344253295375943408939697128775339504656478477960494513255844669063479154696126347141649775851260662131145403241904719978078650907662207934349736424011818680192215505659374350091362163849865223769454688380695643657556650092638277926007908419901072622624970433081690216249547757578195005838684696936751149193066862910595136004445994887034770218441988243914338368133496262121348586727326024371113917128141718107581716594241804881876370634535223099462187313043649685215277207717198427347679939298812768163882646465955879679009943578911891364219945580260696951624873975208489470977672930258804315155998667219053011478445142391354786560279501924017468124096130846889081254793622802366444800794267558051415858012421223160922652919270483584515470321308780150094903568216001242634202608345578034141202588236123142097117311031913684844926438329741990258831429820564327500307027966029700901414595430630354149227013064856448887650601878227954358899746325215157512806449105071573028505362176367024014476442515158912108575731668842787293074914634592366910804498548792713733672727685835734539900221761499886852495513936147448534256935714701754418724894723317058838533212088539217108262482762685342566341237004501090313428979911688975344212181815013088219948512167799224576971143945660127379435870370318802919588467466988126942288045701238871903185412658195971624994696577714530768420459514069652792030582138349465801056597156956348748813207732827244545236715767605361520492680520964369684975182882193953288170725174016609328409383081083551927594124480454657146364552088075651906844650377314843057609344376752931917665973052639786620569036955761242328142646908425876742866198167970509785590034356837993708673303858662171079039542622214189162893056336989635868254496845497451223153411465583951504255067772778818296654152521588108975277312026789053286409054463039702178353999454156338259295213281476616890671241922876514077025857731577352611710598953034370576444313561496799465398179473812102427711047029139127006375919765132474504692061699851846258674655258415506056704010603491763779159726607730771683473375349431846652321067121384322463004569766748792326427266224619566852790652960475721142201994057931069138346938467807812663546045834241185015372552150891479425453958208104344618248136581223788095566950969456354492024870388472447885881956205251289364065989966582103891295758852098377639540772468054790926116638425261227092747823712432405463946214545382796938210241311661224889579566003387192002895157331748515679471090500439026325275302001612518269741182654412262360775851532290488385133310077114354757872386119767725364989329880840926999088266347611902771260105562798954877312494169726610023749952066480937567524991717767706726170093151534374730999852605932932273312407474114520823765878042879629444459499184463475318586197119267934331969307459214702671381583771191462113369462088263050346125413294535549932321480009533680378145952188163216069453299203496452814654790230781582347600509884546276851421881754479196244324438947727680806409630829688736476990713850339230983573813807536666253486622749464723293739840742250755398802235125768894024300090765305755778476396781984298006768446330337178745920278644553030913435529910337288109125832744821043642910657225131006504502635100892332615448908585714026547340375903342983347357489588845305946300866599532102007440469116289197186743422421364157062877694653700309076206921687333906034332323468774689838457392219358320646522807878495547227591743723843755636436236553003510435954508039719865283938089047433370643907563563487178928534665816160802686086446897938185057350688925420887029940048935842798267538848457873853417522075257077484986379903731401996088143677488689586856689649353664513659488527216735037077278268375745607003491767756293861968823342412495551186125006425842286311470612443802154067291786393935148736303258560032682269648382818522318594328206112097514587179378597703764028518297472636533279176476721653451962293452008117322134493887169442202788700512313041775689677808886930981824388136719328358472096803155633359288210070570302410260256116110604358842556979283803630095577675145408383022040622862515455158887353028916072868955735861577236961198846492140564387641847318307822478651205408972052561135552397994083017294759301594431715654502779043442214771087914667145445687856686033795372261450284580911503502019480100058454342761703714356872708515045519278582555634552679330697478055225303617773187651376490026068911157248303768754995521662772306104101722556935694853841433469944771901191187632030669930809881623939380983386597264359758654048098441078664477127402616242328755635196553908774451647306448564887399865749124176944618555964383036656357925797916470043273163606890998335048194600845002765667385238668327014313729545303829245187637965871071986606705867294680562335982435500347469764585044846645863895363792639009343581161274864097691597587613753943532436664475656899516647543685298679302667840286744525499161575154370967135011491571596410603307491444920950666563698212969441726012668124974451204103362907829741200363106062694816819199663997713079694188969127998376758674971002941161689251915871087442814140517301461800417019212756685518898550579711220242295245079221254460501862929763795283892164125202797356841801327537344817120231129486570525485543014452751946943543185545540967094484262559726994266225183795651269792522665804033852206674683189588020129690120189381740868391318603556650749254860979357849050346548207817014369661034443545935862485435891357993209224484745351251926141189026422591776583238562779657780630520706100724925554520187019470978666058065572834947598969024796405621031029025732457154906074755381534457107624727876915867718107939499267041996891046859217463048582718417768047433988049498795262427621463402512739652447952343369269133617200739647520109737739361101942992294924689423179677643076598673586369100696829517826468214328459159438025388019210269174552866621813939638903033487641886322670040443442743236818950208232463200492818013824747028605327381175646445404641143830436551484330616790170234007993894760060137624092032920768090300374789211076888845927398087175565495897433813015357476505564674243281625092896909497251217181647657489360268131274380667773340880764735468071616765762754738634795407118462763331067002018238994509495678541344098911740217631016981172647411013871280175900786359094621580653143960775219554746606022403294412222474772062942614509986224194797474891149655885092917438643879586416489292892220663906675203493815175490615200381292097500474428071352805180972210897479153728081732675126870973338004603851557256638352117347138731983928291338358401371174555401394184266939934328620725462425329849599585884695128887170666594032443892959913367288381258181613589446528204938967259392376430616513818659764150402318973440104342241414996529421100395685442635842331277543717971365014191857529272274083621259561693242622635963381499828956713367207742710959941231647584838529201437897287469826802570505133731024904417000533179535535360784241813254630854412301245079196209319984094454171062521156979140247535848838816862344475713211962142941232621229755417794956868947124930891318503135505592348750336597753530983765610053534261485846100111411962595311643652314147631916557997030764946780457331894713591777894996179909387169005397666329345400821898967987520381593349034446436581716509039830381410484936043466884100937147237543801829555119685744975488120980511982344469170781540704400113487227708122118724027280241144101421953713789219992945571307754068155616255435931368354914482780921420942741814469503157137618683349182292362041014569973116370752171704226198352481636249458351087143320328331911581493601979313269449522520357544724714540510226290674536015087412284892102750963200894228974151992761989137390465554501948711566176687040630506640610244570109752840639378262571836990542954915085123469965393787328232878206927290384817761395644541368683787757976542543252696011990191565968048231465946551288066729365947871179500427102508207642204790015038239923506621836923389371826838768503433716670019404799825780721296727300699322655333525283226376827037704496837874519115787593220801292465226087427641558783261060631313205993289726585110524796584998408190168775905713187620454444713941196073795940966159974314837122977436307024815156927629612955520290954639607485841470793832489386693302319996344683783131765741104429898100868022343080610011201725671141941091374624020671402213725482644014832335165402240082234757360623532878024256930302861512520124060533651947469752375058286758722255622340157912279859385899932941517452761315464584151546891227620314177246329466248480709366130104640998702025772197351026011607960197519523825251205239040597696481522352393634161811247653162938815063508632643251389901889767289844527644633019684773426874673733003099022794868415349090633163425055706873137903577414338165638767393698846725167611975091333955683627869456057778956123578972493558596157628838966821593720536177209784965469366817006788466511905707011352574458194756934270435753054993789491142109971031805315233426078531729719923727272779991070166961026361535938687591441018908836102220951427315989180369277866468153266045182432614546690420566555981672412568166813736174082888537336273110136205325820559431771172003391557496235059597415911626243168469769875270351252889569300992465627453661400760560073344706938567782772195633106161568282503418755217295030634056443252239155111327019633525404043924948771938906235596540420824770313907952453891081362576927340094550329313631879919945070004462991428475271225887374040762328625402039323266714999394560654475823806755172482416998239882420665060234737328583326187629878886125553012895982591853453821256076983734050109970837774421139392358096140902151027626691944549846036377930183945673093571436978423552723763118606204431258602059524998362448074521575308152957748232730633298932184480558316660165506327044208244712071694324275870462113689106123760663188236450034283776333854361397280925487786838825805355509086502376351923252411142329823851250741742306540595693830532710316171567712029580971625949299406565466426315363664125258982667608416916688099769231043431250317340254581534867336104732501196405010533186441406312275828107047572046064956634635150338210375480914745738403760906422171047299360697037402456977065676661345912482697349387086318281888774175703957942166732822114814843082188888529413178046222505665100954786619316237293614547961665878615837703162156429006628017404541511281485598651328351013117306556078915697355362055087197146282461498712945502439452122601554322168258988085451511356732150741314441354532882902781749952475965255682888890655024450767316266597023617463582373907326883205969779888000324059438761608159091941986716817706975865351487480495389731633614611781939416112204099105525391957013701367913952026926199408390873348982756215374947446193627381846386516196233284905121438010553656125229655503484556116513857092630832577695590558340038723383353278518659801187151136619330843090184352117803099642284498321169012152046391535848775994885028711696332605568915508834906456108889115808805140086570847718358392586203462229807780768654711377831730494171938431791583540619040448450461903778248459819702540441475659260759715637182982597561212125068890482575599036766035113501956648987354656699353780075321435685685660657220425656839226980924637311665467320209084336754114543501547342022942614147179533151045107559940932072906585608844893852009693989251396895208323958086016283009427410474491381035437947785208631573019459222836401356530288546342669465657439154485159134095093444254206555916538728002804878951975922814386700334492957201762379068253297105810839583225884832997520931375291646486075721077399476101963312563032681245933948433457366543477970585061980587818666009802169220694048166738443991870138374026913764811316377463917560830220721999487030033014595554763763370984424103965131162038115808744244980942748527250873636153714916322674831030924928156446577806951778743035882313425998638323411459536571129665744088560236801370745678572126465932766156044137988122540638885773756700991367897220946432558860954990877845273429697125581950394794580425635202447632957283176748428317056908638690155985800453042544753524261822779999400489908440166560522806473442980538594493452224273329786487791457804671716361430292735423270029699036851164737355529530864492564205810455234284154507081867845522646062295863702676945099936517224160760166441328313973359313816288205074474638258924406716229872927122507563507407589189058253175908068209061499629786367757411146231139087671968940363709545631668160517762372280392960383954377205406655773199038637599262902538834559495730034584975307230404096437716708235006162301041612086819074457832859720908715946234255346393209592158755436112447411504697430643818345456724077838816732006721228575930855331892355370315269968796908016209411564678122351731091327147320463515210359018011528034743794254976199632553282870759978013239142956587353698081243267260574803077971644928383100938428216633921007284556751043219444930178557242060940171373197402518353104744307747876427076536912985017166856099777048672431879337332398388728571129173941054287068939952252395566074021968940713319630386601445129051032429532213386098034329395655660593186075657649036511839054781168580733433283103203977626134157233025623479567295614229335762152050652186690706126042170196852019497271998155516621018189374792188778564194312409971755243839231757772653065443795706457670544902570995536812404887519790952851608962897075179594011034707185311419279797996802553988369562298312228246367034555012608445824092083350018534288156309407549406592289779347233608072388959368897548332138939101037025279174408724132873894434629337481121681561897566223506873615673506015887265229733331307191936400101276406506281725766820028137678995675732309743782585706338042012395754550620517908079573112702683240692232884406970755139080655838304268703172903036598746958379233261381096585883134230705068732137781441501962373417096176492582782198767485521599623921272900244282761450980117325823922103154327738926921314726634844089916645886686781545625033364569512712704088120928999706567566837534378436396546608672458121014159609071438843505504030102756069033497807707732679251530273540237467789009735949731597412974795782527459140620010036377582459091222644540764006167597727991415641584693205556063917540199955704599074451916533808991051553817651491796866597556619188232650739106381518291244134564780521683344976792220398247333706880901692261580916130859763897563706883869574521144020941839677373780499140564534691017619320556759276519351824686653241620430595084754184204849140873980837822609883648007785251093660189423087000151697815924575085378792353547157186697380660321361958710538774256209718889605733851918196815020924130679750742676095041205816317195821521733312651193118565188894647282084507939104277011993483462688513838954519185585891034750635558681766856934466087681787815536576908609045822054547629501182749451559604778472369218463253459535105236743382342155573338307349233154709734964857472084451898992609719542179292477535360336447179052578946389265873723186235632990158564870858465074720235359230876977589058410917892068394974674329696709016638534780994117901542304583005345950070193246141178086182819643346782036190333245250123736876248419672374341822494085536100546462790361921343459202706456725171207149685672383874756365923988347593427574147873213329107505360710494387375909180919825969834977306964328751392283631209189602746904633374844887646176771754206278618427944431113763628556763365594818081329714724053303550780093212554739718863022393421280574035191710713710045682591563417621212261005250432353368122404245961391885862061346376987742538128129604915114511105221044726521253819280972536462935309984237596589451569040027194925048189845608342640821341014795408261912389542994863895689698075841371296734789513381232553455442560984826373651321451774936672341428793980028752642277830391984971849157296991340501429389281047023103231851445295860733935118590470793322465575082499552691167697931254491855642269722902138948900556943660622060667601030575097961799715084610844578493089556103803511938935020873008730546517766205901185290746310697078153223900743835111408396381825720084318528376366454081335617510607099007693975745395270596220155238269958722229849937240346566208546588137584873625205629818647762415322154961389629164209938543500090648922890084243396451445937157903589729788651293260320466730557117388867590108562558844547324866524036711527372046402562179645276170433267914932373190982260244300769217530548607161190900147061725660731012416555194025352339611086939904447631838191142333056841510249450265650028716229113492310591601285760320923185739607071094155119137440063898917406194379845022788195794123298525725588425794757801264127340706908022004844063781403925096226623274284226829679614923181636628554581724680325948254400248778963548241545944556557750936675196506307474976866329056574293953446945270568103368155380569627909571162766563765866527105306145926752399135337515881818335544376317129967935559117182923477481158569889979548314774590523639241371168334921865511501044841115607117607257984145969281853214423987222535430932082610873935629198709099378268121976264048570419838754014113860588006811280005684390214926075923380401823195544417841642301964819269488697619794409188438825611946542808442173176932121769594452103589164320021314195252814381918631151301381603074462390372532700497850208236407752879855524549777997853544112432918105291953886971593850885555774177440912475121139148428216540581927690074590025539631458307187979470415836507170495632213341012960527453416403480918124090306253880241358353921015640844728549859154233990485138306570859199105278440253398276649206592888347394931914343027773858858440579686256997688273015258466367334033280906575682626775303786057814442264018447095013921585501045413251489823657480916848133560251869131924799642326318594763070797111608020380665579712547993240208588296572108439596304440931475251374649831427622880924098434242019089165920178675889168718443642053871269721957004425420612240343943150020917159778795750411574404678809327385040607129423580354913095672949711403972273803573116607706165786042261027338876370591546702635111245656977229108800211817912750313745122333829254889623679279958839306625632346727195123608665208694182738003337138990627431395329128072737468670547305417539531576241484881681702192889978731802281025443302264353198560464427126322393770403665746872525785891766827674024945853627024720894333748157270946935417316700541627396403805155100165184806784652116528293033330055424048417591963872793639158983668005562756976678876218907628151113326488849278195861932657822571528315578139418752151257892515596150820396323308928117356924185708135162231824503788097580585188208116282113132067061055872402664813776556527373038067080582638767878343035966108226244054731639921693701455408027745303439906199459515813673426059309185659327071630538931896601997124811906800882323331960582216957946993448897037427086748047975686576695190875795984208653951409711953408655493535516300657527086357790159418124339615625868515444634979469887668935296646304590640603635039686623480143826990749133219452872133991429179312685960737219644386616313048691133411865154696759887809236342814388799746021058100378218800528637163847689459535753780727335797050053071468511988643932660797371751076781686912567747674739028866869530216626506408693552663517325514367341396352695550002368883493356598315435075540405133405828183652015796315352056876086861684842688355711908950856931561206431227538183950865322460900580158191215101004058420737678834153615109980649364305948565012183929531926819600615920393400492789979140058551928249965405054950513551492760885232457287947062816152026236026275841002347798367328403357433195191573855452577752814656019959834600008077716065153530547884129017669732660053519007297823139878765657066633263630706572722021586098725961017398241359494510366155289841469456634411261884060874382867442360827571523323006087218708403943129107418421759994418118433123453664151845052530837532206794955806093915837735137774453415413058646289318676262493713362439729713488340872482924562596128395248593778017913203994351661237079312020716526775762809667525619585223178262808919463401277581284231248876005184974062443359554961342836268991534255764105687345745138968031222197216903775135475275636570444802465553784394826515723163200314766375146596996690920493784954059912032597472924658597363224295822694413389942026773336091499746001254393728519623799088290912594173504426272675638892417592218442771996459890361746330836629477848656461499135994768410393975724951468449969501678280565555335522317240017645183745622198154578157890672899247212715111600416901707306694040336399071313260604231482185996440999405766113477845448727110447346740174586487973803587620299064749492908074806549917188983164526325824944863095326124081446834104465931366368431877211626822519432505132582215865864472180370785903904799909942155990390594314225801031179281501510578367697858943514515530423921005787870040361366241782359979266035209342490335398631990944572437510559959613218772446748081897628912551930720740125091609494904742430312666068528244938102113483321836775848463481327540137664495074862199072659417908050950342460799646565601347213479522598282398985887010101995465190095161799563375104247824957256511136636706612245192815285365456586716336605298116733967227472315561931846135475215630793860687924849927987950292702287370943254343321253521980433382475197339102651418408676390681501663810183312619328623203530164750192568772663040097669494597835147899408612662678450994913267877951817698552907107595661837220084449806523831744862361034613633549965342054521739352987117674960940880912656777113003934646259321294623936126350420535411573454400197108890003705117364962777706212917911558357894820950835118158392506691803017239293202476328093801761903361673098128418497650601558113420770692179202835732147188422302618506551651947410111058002500545531672661047486768035555844349454567387757403105817262652166595176545853257056154476240329006522998479044147387533370130933064200761603690900006599326733612353660127670492096621122846690940410844231800106900199380809878588311548255400360160453869113093107837076739733011491975456016250488186145609489574754439120081462783014515338471190476141533135047449146165790171518569394597048567744327927366084594953591901740544907416855338344957801563360388186330187944101316875913009468695027647875531576783633449834010628872906884238745285240029458036831060901891133758737045194668250608931095812163783777130127957849212942318600691627973375502029756214058873815873494125821047518706487228674417411000732410078320220784221203521396854057824216018675051072951767302744050865860985158447340794276908547171175342520663093493208547625478891558129007453120119361465678609168728802193147779839235251126524986459288616866203508934200135325351643676302818722428681881968060398412806110256089108968664229022162125598725430066522204577700330138915524030568859325558210122129574305665403734273072418521130073459870913932533793778119959616278796527897464316401025210138801016593009332793742748785193545112800597566763222420773924282079209080861100662099561740002055486678577941534844399762706901215020807562585449698739176713711251866822703563930159420089524051192375108716854968184282514058261952801928309556044318641405526081308262146170534035760796949263600784485154748020909029875658130375282020549048802373973473133369288323330141107503763506834340265846593077888501563280023616312745427532110946045521575548079775247131837518544628430760938181832335811278718946798611546741648613607412599880517379103837495930819649531870045329830731523008673067111694342546396876892892379779439325504163113168545448526866287279990255193059378947768859731438861102949028221877575654915397225387032374561555611307740403727971017577448703446175015807234980094506844739071213133197145734704351295467560268099493000173992964480483653636653311960803913451202379418290080536998401628016240510485648748679470849849722950430323045529785322578495345007139276643097553240701545086467617639990343134015763263113971544985798257003641385023963730121345178789250155135826322151756775129813989888572776007091568615983801034819783467313095388237376826278434291308410631943088861991621780483660305912531445336230400731304291656545226133283007233545451284974207996911670004797982253740825328598882136358523276407313038924474958581918035035021233289533126907169712925952834885155673854650621094628627860974705013452736122748382361664633794917428635578877874548914624620157754380868084140482672492440316330019232250889062443941286690706404277473566148848981809048757056311647197650450605933589793728857402234653044331983534711918834181567879881449189749247558168417217622933331735824130019791952788231530637302877548620646581479008113390170358864782726891453364135231520380187010242232132318660148676495400303586918164220365408405192608206448298872165981467620316807901344397766346585950734760440293712656545180415079009650300426698285263406409441703652162656495759188701927901641863874524816108333691010069339912699888636197922009928273221944129032140033823496086877347777738716153671072924490875068716105569719136217494548454836426918947280809889323021068627164360906653584816194694544021833195402442366674281803863098456266283890622905548185686146509558235900630795204755389811015854045010228525350267370508209414737856050380295843204531989971920909099225400451930732705718602412418481827188857462350574098485005773859719595556731244655252192507592542307327870206982529291548355170761863982551963701028685693383282964125967144643842866556005509276269958839201731591029771192818314122528604459188713494876869959109105261641369280431409859192830533603213871688598062951934639178658769000388971295543663150488764850669394803353635218799729061113127484841612524890387925665517692273972602087058341998156341518324736754995366604619843380248865214513946150077703569665814628881001625421266083932591812175116172734023498105646050874147397035538650486478474149047678877710556026127835430182332027025031612962884025643506370953520137583343882115799718626105949208686363145475762755171930247009921387432031444601894050970416978337699586673456426720012466043745965347604967372155875368797446574447024843345354344364014835940129629848044158344524987822474396507415774821237604460732573811021374695780596730484855967387358438073176857939621426011315165886403673118817854813923960859843707969468539954494214343007975487312200997124016467953193260098459400702159472219824277837420817784166098316913179395353145178068944088674480503291788362585252631613344242712273213585895369999307432395852221424628013809799483706434783167388995884271346002946820074537634146209006341669163281137872385343008150191875975310384201109280207639594405208125259552080987263203263604395048124732018304976618170415776417416555951018972407383649027256926800379809532372227035752834555694529759560498654686050395515687942803385024990197411106344617703229305607826785525301145355929033054394142169702300498796017767409903611917871290806287326004752315440570684125721962316618764413578185943786302726405567424942746028475113368717278441005271162604903775155659695045711056059450816028530263219968540448261238094121867050373031763105256315373476950514554687311775653147029798215403743923451761293278112096963403689822986407679933201909626909757767615388013659909793081422049236570891933512766429307267164125814864836110914367904578775183345239403518346006224873539218389651820821965011403512202816691552117629224780828063657039115661043864539341798869372403235235067033967500528119477216918857451408339782533145670408663080528095892906967342148383851214480412708700261814662391125503175396807976695959771097106918439715460166229490120420675972272253812851325452418264460631106322623368088523602111330176721532356046069811874108547242526539581109748236943458625665851831661953996510087621763866693052229125775914793392601635200362746852004621226185948596838718324959464459268467902064635579450846268256379804908353739961622223975134084022404345554504948911847331326867996987693023986765466631032635928860124967830447522056869504672261276493273243220448485484681037089457353858956336398585514765514023569505104371001880422207220983293923159908021834898641535748566745486807962481816749099052083611952664774805462022973536821806767864202574285766630384437862309894255305600124244226700364202241892018744281371745211689628633408493305819868592231923052017987613533606031177767038353989994344383164943323613803881401441341712656397782923799271542779417750737653238742561837877011096443397349325826602989666099216496700400201016640897907198677186620552214343381092607207175578144890579536106286329256935129051285752021112516342302734418109331959487414467443643929429403262795860086075353629757677137376913207312640308735602891091393241317144417694446892510905329401401532924232997801107208501991134718199066718601357506293147681677216024419535135702213212024828216737748088690493620170719736808604350838206198589517752667561261214558587060120474714532848567244557799953955735059360938869589980447831374772566108519478498514223245618149709003341767350701186493515249152926919637185706811369874314736740122884038504569610236112258866523206268782960114858543902905415645710495554711543518413954478437080580433014270676811353090077577592114142975920774726447613681286186675839727962963575309326324821461719895816221227538132149672672708875783286147342670406525215148071878243301826516194702188620752977248725388987341313765951127049186410098537359940383894724933003416211410073079916055263972021153643811701817563426547360681195520030624466259752678761547423325103082635412278761524498798354121632660108357125110632373914396410982003722403145951004381320226740214441144951642115002231294494616547295588294596426602904176356917257467381125632635996628713781152393662732948011061772526078403918519914374322340259000671719022619077296244308735636454777386983076354838035294930220280536361693164746480813307190674995833856998843243310503399584908941588602617954914499416793629599595792847963095888372414208512384457437846889114517212044228120626090680446557010558409588010480562003761878297744940860796156351537147109608748577477698034732488337009806748915241537992996743490504160994649960622597240821329093847716832231615379008956067742196129937607867642100076025788374981606105682945353973620362314831136220082725590156245181893691441834828421133447584297436609053919965007766324469216090898311833017876598631761741345456874241321868673529293062755883165767802555959886879591623021555001966599510238927109503618324342994207222035548144049486430716083608963736578606134406562582895377363220886728379922520698133237649966530200395523367610078355973154993500605350629599557331499125247390799578479240128716673892398221829247613264335243779379366667424230556394265344963218967388488834162759379399239346416250388138748119445656004162773231869811646893602351474083739124066959792168085432863234062476818638525121716963616265732160757985848484298850443641281138927286335868305827001153648593883617074858524260598289234169934382347292425436616256992453380076973463634712836206784685963344331569972699136907189701900313334227635987346339778916799793390116979963373369212514209568575605297903832085156516623177022688152959394816847741840910965698287333075835934146417178468993572630009390366689605115412305736942007381049597188817113424874865234476613739433044441036786210302212294121220774870898494043190188431409798211976579662068529556926458952848049805869377298328285847564110307390732872418654957639956223473656264937084668684553046597969748376077169598853958534210570386195144525623379561106185623243463172350306919708843568253536274936254702955497759738420680458660753387521872486717503494041903249981745150409596948457824083379703686518617924546668812205264926082597932190481826127452257360132343688117693030263015918386257335757080244884847650230670413671661206470987949485812669660822219251683656799981573942350726117959478608160363519704702945331537372077808184315256616587421487854212911062021279138131147630451563124516403972045076230816226081250358239857889749516402216564590124706640551977867229999704164159725416540792357830087490164673754134905858192284115280379800351401540770262613109505886553642314845065551940291581371070354070990176375518938463792004448419594163809452591207396665159984335687879233479657187329917408159366358885188407252752641925534222926387710390138645385591801116973042473208121036487028182473673471655042264931675690788414567539775149529725788341487216655873932252706462507125019724127826949441089084840336906563793757298812835170951518438766205946787806231025838213600655225198835787994842192919577092651138485204835124499123124521846554768693478670214093500867998400226660028018894435646532824747380049295268751088076714357362884068868941529443178358871369541915217640391339621303923132451439456884465179948000672167635117587420519735693768607968635139889503138229675435671459573769653860679403655332324252097175421699041777626865475774141302665201284000055423004240983812383529170193942164360957760156523547848067821067868392427122958461059316050494194369336777790987853141656412945950891171974638550932538878618354141762673647251464007285725957308573825507860168841162667864298477004222210770195010464884902204700876384458080361569509382288961510291459532568776804305560269597499175068843089538989940523971384337828056625197936627862077156179972923857735461482103473162342734796280108466752424224401174896767213033620266466431862043025678796586631998877818740026284229402735434534503635659055701786232993736186582351620574419632651843065140693351557771313135393393432548406862557964320460333918496983342526155549545043286837523606415959236880806485811184976112720743935356250364847435712826036074758049787988162793312247866527005137427933747099386584590911742748976035891327582449345649764396874449819810452522878804114144733797409738219193071320362547647012632782466064705624203689420106520097874726536031702970155485835312843887539378078872641605341663082951126409781796467182304602798520679672336601871906174878881514538945467798220101676507153338687820174795363838317446834695637553908754883544710245619962185344463445663462880601746883057448965837147061844427760060216110753752468462183642354311704537180746199074258447847884112074746870969812264202764142455230587095014799076254289433179062669284254493646430677904905804163795672525632090608790099822180918965342469443315598631071578170123106667224493106679058400925743204350610796726245746846282776935683944910051993498869918246633006399198608647598148811117293759631061819767294395090841406504941838871434301698827311585903832019899197355301440412520252911477583824490150423319418640873692377375899879505006740751529557685376427159074982595380770515742755440247938615588201248268872405496760359252052598774015593029571013815344821247684005327644892504197494098653396570340628945218134281151118239489272345313226113452345655364432069025049528337051385126597787427249818677970940228163196389321267136253539385822435214961829117629011530527266162832347269869441338622846659036095569851436172037008340375149842879353322506408402166583044503866926663471972258110696728256301102341463048138235607545770141225596834599918088186301531819203339796548053996838870889486877489047862433953298555755324695895510572899245934916542085437624192017857495680810338556922236697729732484763051336409556979708367591730453613486587407787241082649165664505236421521997258823907909349687673450006034994588751187874703427390444619323773566953943606954255459630069575171728090856265392899462029873549745557018596734489419638430147205262131865915138232991037489286616497589506667467682792813215525048569847188298405912781302757270165464250490682871744261843276518965269536863386825975471057587492026697758864148662663666507489381757944861506130117085595881199159231181223717760392238558057651537800372547789326610157946157137342962363634239448378350405640733614224072848976194890778559983689444667909638223674623667625821397023047849154612047839957473553605427864387203322584919140688476678461259250264458997420452221613126958225214193993378805431006989623842032865816230148552973304998934918544299406746990995963578410252458753192138606594913513309918727929203837642699130239811142283507188529775309714969164185550295804864908806518674930496533087735492381498332419249161465284534896296431695902827205902511017453630837692109040998518986155903010663964466921742968746832974358795135173273659706454076920513020517388299541940584477771955705619183049151714803363656621103226634015641175722007966941868674510047386388205835201006322903018517688641571970485195164054899639450881456389308419240299833563099331120261073577823255540784258321327943798475072106931130735496970394435586924670667115230278765034232200694175840167145307343473351286371032259328533538503354795665547701881575774348662997059219696885659487916168494587836453121351252983583196879035378439865378110925184812569095298596346186982547801576311660256784482908997868941167677846965727071726037526411940029285682414765311879666072816110071129475289341923971143440293897937909752861554175092689838620648410027354577456501507690302292598739002528970519836597023756174006667848269910559961821756935862354894994179821312316081236119828168745567283752091829303049944330923265487888389468072583316415109698300797476219078722446849635844162927480107703005176511392293826134051751272915765447157181817371221162205381486148364344060662083777832173610244414369530310227501356332256108774552921814335892422179076034436374097991858406301001089436570100935879141855438645788816810659180341836707645267165945544218908730587975819397920045739545313658339080847668877212018699885991911376845584507473697350426254228041224025335256812202082055148263956419893724376209740707897939158983515109183436601982969156976687907614324572947050321952883506313206808608217192400892485550841720825120601580489090579172701403146045754487321412058017483978807538144801142401368422336065606386411628759378217607528969993643312121080416890333947314518002245571216129821548493480707200856846480895321133988246322944314773923862614155995142136322363859029828227152701619662036063868178335685771950300615043126573776002147131279440643301311772613574530545752412760904331977312304154008457084602602215812718277834251041533493487151076492732173179967167922121886783233916404650806366113192654593087553231251323114086746137524999628468865748899115053413978134477809571527556393563127804853279031482301363236463805793399546412418513235171036595568644152878194508802316296904392991091854103279190216457197863912423431597961549639428908860343449805625247143094432482516040839078233291828790997941585295545428241269789255951243894269304221703492883286870811224768915561917118209003741829046214284051867407264939153564557351602818794822482588918674468330561974460128996893045515898294739793909748652577416073547875551619525727543674293552136396320616461234790430015368835865806656366929355365444578135169818904576606016658563821655555613016221813761607367282464824362552815598907338996678147162935175969562132280838613886787770558158785389654984214183818839510514842673098476540677101630913524392668319004672617672853094771131121082364995164232125814040148019056054917464363971099352704328005048564487913933083327987415002630228829560052652285917209659453518165400121510862875256590964335560469470293414429953042968797787203321583731305844143740090896948501219550140135591586853699150916774011258608149341073829799777161136151150686889987363925338791250898075739876432337082146375658112861343930296472093676044204703708662090660102940319319930263609354481023837476353777524847452967489267849310224929467741263443033676025611638442194049687410716566741328074048555888271527270175995066880776189811179301444110832011023577894554031728819558991064337827262355142287798536083163608832427547825036857675785568708014687695660939457119896577455837282141751610008739271466751011607160116365138026591858130003185930790861622741341895249884685963020964157753969460639898671516832117270798427522638431279116165309268354124722007478544911991471263302359692454575461127394090642387022808813610271715060134097296762010976786056426163112078226506772557129249555479938519340577641916040043801344301867120780570891331791010593206676704786720544951647633923420960373063496601892967331361876207279852755314889975854367863559494274882711317545637147945105238464680793981894008943472243407444713885506405350495050235483803372269159972535450397285038887978652062203507652799124991466664487015362120343774373239543630012950016031938564618257436307611445945175038947976287126007078468694684547628554104228650031752017225314888575325626438971179999052120042381829191351681774543105065926198695901626368339684385151993934345635217128948973524668312253085170738432956148007907214888775862368593193732798466061929801137135548675568086984389505628583094131289180147225125108314549082401272723259447899103369088838024993076807859618726897188256952159807978287019154915242342689342875574574746997741028476925177309324443878604800649147718864563575532547824881495275165816950585333028608011832061293637480666430889295811522223879113366823664884338454092933478248815923910777373448302540946462737887567170012774320055110240596583510457093607389082260584564079492055791969305631332231965592467291352972904854829424490295479775618447285142161319967549292559851931894901072929235694491211484422607870830994246297335838790870832317934915455245679023152922147206593815029493914916945875789982458209431132309070265036011502990743295903203625202922000250193440367752544259332625699552937066534813154010180625206330436192307161152865729126607158977620493494532195432515542225878346113744516455083522282693201207725111814810101115816422183485275955558673166993671266437112907802948845750653139312915275625656246882578278459490540739932232782692447779695776616685289689478690678626342245579606073613291756530395078048185658228458857944577937989526116144242344803586062763468225908432776292261986419116494631684130005984384323085084600401171889727571257725080222163602931737672227291238209745622384727650533575646668540273568405560733633058247051977773913300758055648672045511139666414779271157886235187829913338784556526632080205090218497706452831583567832605053839942859092527024073719991141112451387968436223720359661872455556810395766430129884852005595031106064877887169892844958558981507039085373843310135013952775621835591697727493920049322271108928897346461689644083394496412789699384305115226036728483195959349416074525586691269298416179906796712060661408527245450779325763533006186911445306491567578350609213549997262612095713347102852753537307866736044483706594971765712652448874060893038138605336376237111267944345915466970291828733440082984688368655258581831245550105125913757896557948086834811124989974076628489543905477363497548307811992102441969825064882910592335286684145109080508727806201162725835574378680462610504406359574483561673129660420088600958207778805506400311303169400308846392200327529250455700260086882949359829770653139445312305134990971424893929614466036688258523729040736195490078768630479260885453726126536894809815641920046839737529531164939145118122690354207767646277454624127061584193888071923297851773203768633242139374592809526911205279717451947951472199884690983176444007784579925736947235179111098071877980427521289386581862890132911843142471375825577695493340296978601375992538894599260792891427680208617651273979655502107848299477579128244558691214417071317364406381119115845293892807375481860670280552467435048637205460595856966310760308968750751609480561723102316619962027843257262195497646491173262098840021094521745792565281595488784927757942843641532397474585056193363134963978719207643694697065401950076859417854058084888788846570103833195037008925522244143553586940135107501984299879824707502768924844217788022156655759458336283684405299908753148448864228835459536366086814178025527789845708538087724726918173620625121811550265413991594392197205283222946339802395650303176014699936628605173668026096271560457518295864406520607096094584138950226799898042932235364294370106413041695966572891536275157951425859734037214946746170485815810036726008620472518630599827732160801079467249828198263688906221984975805330845660119700081160287441289045617061793422001546074347881267744592692273861522975991387863089604545844692664487526649334845448861335147975055000156151313220263142198807480908051503836686456928650779941239450278105939315752085918050694768111269132537016903075377269616015548945775671706298909033971359478045147555151097355817264616092437604862588351797947632767926505527193453635517407745269209451343801408101839569597036922901040254364849795798946733481800471540267134110782276873501656848514065940396882618235091086102037787372302767098796775661949277492181540438308972876378313511574844494889409099344109184158093223659896301034060261136838379671392802062728472372727333831883414051226210765806711378353562232034169931097603032081979401937021370233289124737959941259497797138791512268107200107405860938159732596813134315835911883060328303297335390786008000779956934705440201323838173330167643609740323125615994501041228667935972658427892001554318572630106670856741077317432795841462231037155279899828511645596406686876418120236197273226114323744377822792915959320394455591825978547062114208602700193099242257190552010539621648693626141505617271697307225194632822746755788759406771433034389004858777381264627612871142156589796485722279629540614806513808269085871264113693279290023218549096732992463236591185704136611231894742466313452362168306431721943900321391845885910843439505312909744455185087593877297566396580441736108608626911083443482071576889926989017304504881981025718126981793882930004868429212529353546529504962271059446269838770898446325468206734982989073508952662498152244608066435406827322701190454486727799170045529523007238241850472284058237368253462482603453771599739302672787306684070307204095512860381454222132431865370303548181080550790323121197605727979376083899318541389897651157664023950765034361527248058415355174897785465382198306386722573928754131909826392386114595695619452811389607484943374840169368313311858684160133055147848513766738027771890141525648426597699262353125511671568233605814053471953797506984621951075727372956002520157045592055116942302027763057696646099983474707951638224995460973573371266834376030348255962883166452221021345715785449913491515558460388366371367160721813589719409257900270299836425844555718379723573401939914060672369420982428218732265453112694934622732826641994414000005666581354520902786572276734514485003128415794520756991215331117194270715675165562348776651518000061175962908509340320773440292937721681346797177460256835091528221569369782418777753558514950608309036716523638657230337489844008606040190224733285240975373644236987551457708336775920278795268544824367697308046355606565874097513882767435816537717263748605991024100333356611605938320921035819080240413787138039393362200109179165217607896044002780654835519901896710745756523612829447207794499727767601260725892900454553137764416529359780580556365514180430806666405243924068431124462370176520053182392459819998328802769991553787646616474660538082936121627453979293248542377023843065137787862353927077603994459645590398300046875683139035880974136129369146922657797855256894343208498514984815127277718579970787642479499356923047933549275128300244199485053435274583905874616086029606068382670969850442828915671292927248347848285985445672028156672270761443176343913674125889119545067479723914504647671247734262511935228177075995166241109218890101363925669230123060439188072410919997363374877178731826912418123926671403069210566666472682029512888723413952725184442352978782453916400796465193947731615910686345340405692822256666028016825278238840882539095727276677103747412276951080123414330278497235568676360870791204286211704723201461268107801156035282341932302617875611678825101792895827979610250577161351319992006396707519709404127240761878272523113688049324672187877139857913310998693824859790691898136695862489568142259018690356684705758690795745672725895325769891980048092731216367621469120751504508366907249356912253724248557482569541673880345983901242031664974537256793502727449940537429431459729005995856713066814556078848493451826917878558925782561292036207710829006937481193254136463924001285602215509084802113716835442475864196466822819105983879658105276955689325294475653650960030219880138997953455915978475549198259372170017932225581174530145915195374010303248693228026690452729038481679313734616709868317503589773591885547858947499512827293635874287932361883789043555909859487996034427899595490995292603267175716266069529472422339647132578526728194287874363426191193591120128595974003497655050562122467408341355968958052197384225807068237890004679267838526561293008448296963512512971742606081004632068699550172790147653520006040890181126463963605104908452487241157370793506704935828782191126137698224357192564714300439943770672558414917139500669813318333197145150607158791641935493008464968563411961818855282160918780864253183087687710085862194496100965024757465898454670249864829967887298434418605761578063039746617653544851351816020897777068566784169563904913411420939773542157049119710332607896310603337349641974936860977258741649883803914743740575678189129370893531058323335319399635476774765878820109728262507285172237426246297648811822644819549022772535308101947684072278696253068234784298916026971283046207851440789332594730337500142879996509016480203442735205633630024862942325359264515745895600794253366543081952196843270406253191775350781911024654336083100875111220009309058141149431323949504735276765785317430045493702070637172485090178571724872077203303575039574476995590878742669789409603185672627548902142594793485875604540325414638620419511743723055544377250069962230329099748081263909812625320507422001079077840517465494318818973942278100573160083247075007641260970211414329810027704901154573032775370450653022014568511332263634756049756175618572939879632366769925224660322525750052813325989929361671507402735618664576454005703855545662159960873459089901786339535701481454024399521224603162023887402399389798292430826789080275960987892639027388975238964311932027315686353431274062860720903892444003340647924451676315121519787653659721839944604842230743282244273597357717983538696232499321742340900799158349200335526933067270114734623806322352851853194569583527419698909198298594642076014575707782264219110172916265233454692769210115651363613766539523848321880871578592815414366259842695662889287182443087105139145735210926979932036125133260652068954755119547850325140581506820664838616453371891213243972394314244514653232207682016059583920748362841292105416029293132342783247724894029627217499935003939303128377728444857347822201063240018295640162771680289450380119533403041015307158825081137057561691109908060464059143799575598256108510945381047609437900503144339447072664469255944896880548374718593924712146908422638877910777061647247027483642484905051810672551898049011326618046020525692957866819065227216928337911155263414521700704916143522418505801985213462922845325926092035262635784983536474593263617675101807718119313283668765809808023510380438695334733581714785211562715935740543716316694835379532732824386040093618739060542624836431942297525805593378604073204753583054714610057990692068796753441783323928667490719031123953723312847767041068296679539613022060077007230377353770099424189001975733089092509282925142961291371961107978944663108982422523881108525528514839944519228446506999695022875014838142229575097578576977846539336490666399167339220620194255449523216216981417715093259169554765307780908597544099533748153963918254427394769774822595573961657618957506234743479999682302453667646060539257472959458488471753137377105510672095490102380343394560025798510343461822579218568640842231092805709795650482253319865027026895274575234296235676296094637936799762322927341247879931006504272071741402171962537874547919179503777411695044278516380699561184831912253152658347251294855987118659660609657205851276747297842789989239750587021773761735638769692781035362862277456788210661476749386404075244141136569005794474677619288368986898603723382003343752153824804024626551786735956694860240386326983304602979204722616800709232963317008894173005205757626870056581379477887818793034728333501769030199731896113606438198315858452311811290208747389368011053983256152634759494203394708775401495268363681493119322338846618497170850892229288785301253826796857993458301831562034073402690313195617976671682055670100435297678010986282015131655069830354971788444445421004224663591427964349009963360721055599243355797985541015607383363755228363458503105406722334305297633066723267559271286730501598041153826303952965005863699500857839565877042236048028288129682400373224404294276872898825881044653655281799221456708159543258349622130027664164759525773506487911396827908280481842030943834115153320380332692790225072144712094284563139625381049476037914436713962441646899207910440839422703740970174684883066515145783901249819513034302097032011985057398932484582149395345299403678021089010911950571910385256211554727660802091423134704464877725347464085019289208799149647207533453372627140540443227088512225757701529452971860258196313407426660073377725781098891057681472988756742418362314902806300380078158998476030785360184051474338734326894208500967790597260102377082927741508917406508965487927183892999142272820678634784770010744582745107498271651876581728882078846983379533184466067460210697370856988129566913709059521752842426039449916464663163655386642598078934963258792283549708069030564069451581884566163195318305100395195841937934091456178701790136638207556257519673974626485100878785576420887001615127592034797120517547388933085971988694098653394181822672199016805095720225306097432357956943226383209998858795766483843012749824988892590151584737866058150372237865665419675318821376882726536659181656047684469980797617293691103252392911094285400444399526590988881956655231252359194675361776317479592543684689359169096665739713467639165009121666094441794851513637809974046135724504359082585596920574991593304726500639164473432087650088872440642182347015142904519016597197877619538684912493652417064664465895486122651550846533060605911935631795870080741880175243511013106298593382919112854685942391058409417521778151990505015476526551349380627349862061767597671461738778286913007964669990935519887567010767744858741463174324465668458336609562237781179985939786170878645723079819753215431034874202470105193906369091408945653180294979594579650861716480677230245373780472854827455256571068610099974176454722942180993732638322349904440959984206330271859294366294536367249919892802407567021039536947372846694503272544175428257610917386441995488030889179874817010864147973332357324028382322945655773998324290089930136530441766982275435250661228903203477981906908226320940385418020234820689968076942202007209977502589069921903719888042947862274129623565729498848669574846554084319574391318041829267262722252597188023972265556697651194056215629972935480600130512070127993352998761987295672958863973612332686234981813954760457878584116257642176288919112303841453252527770422632352806642819183813744386873826637695824418368002841396095159330627249938154290859650173938184441941497295362846889228472684331137231857249803326346241301979902439761984485163124215277988372383871630752688181266088917800762545714396930522128437288300201157957469487401483386336309811731234415759319867387681870919991417745880136546446271668790314142974841659893666332631223884409993232832992560466660147106071838313253615869027880462515697007425781008184883643271568461675532570199240023902815643932071736167105288950979717932641841822158798254075830447987536222106946061553050998940705011492516229408779136916343995821642608939806558659119686652153429975311641666861437951398167208605093225691042836614782241514491488735688136470254516228816691097436995464292348395605283516981358337983587281631015914541051354878836028672833337302882129142769418030102443723085209917783794789641949963251937711278859970459395390412305557380790380337344733082271999326349021831880713021080027005794646368536913025699437827652987529869512664907961087638274066829197772089997309003856021188015891635976923821918644828014933297028924780690642551106175011141238772692054525669227961018960338440879935399261604986604971371760612355639505579251438922994470974949847772285607587392658004599809699424278527456661961968324640137865068387159151914885875526907630917006236313873431674848671014869222902242118523719144403440561812959824361229542028437103601521388887368640028803295334759822192243935477539358625539931607238283301088943626564260346506207108577044494601960819364735444186751915600661056515279972068276670736624577127335994644329102691527458918612004788873099136137252251754857587321495137340625432681821906934678121152991594915180766538750067042239691498155970193600158402097226296695755472539051364486456529300822508787671347672626623940905169030529767170088149559260011083805517127011365168249027626150207358844320605972190530516810613063169270427586966981781939352659937537060331046230611455108351695197683566153721070049633757951396945539879107482831240654685410866540179383899995755209616709775951951384385739017733978009805813783189628541814729941066427618521808040788420076288202329270602726605296743912978083804339200028350068919982811517076573483097538881216837828826967102062837564004087534026673930917961972239475617552125003466536700427932436078417313466086570935759776262826052679143739126811532803966760064216900120024795718348859885815868542872422996269005035118231768561343560952030439176500047668654364888748124119147869217369305228081920577777513157224906429930747580533265026878169844311885349888326554065329550328777737479934443855254362571185673672896169749034911575818535039165406723731511320974538590432112937475844612790291562675487282797010076315498007317212730167655710053779370371949521026670069994781780705387272321544331686813135323924088962875117067494434947327941734371979017417001238798255849089563689757901790636432829145599191921783454226785754070748999974199483310599220283848597868394337550969741127252708466764624767343055386088103456772874787370694658615869938738565185984165366181446832944116569136160044966022419979087279073072288492067653565171377930562860201060090458966077332211668974677420782763124720902142276618592142172086709617178813801174417593127828757414103634751667432751596440384875998047771848110976209119543334392254816851823339523085670194823942989854596468833621933939918147636533873511522419980175470078907859733244584023521568185674044747289804968670002258782381483223950909184787800120028766112462639574953485474017435216117809935125382300526209805654720704126694232755980595198282700667314311471775415989410276433282167624257973710360642736885327459125384689385507977535312825912478062057613629256310888159025581801485587087412475075910637088915110491758734894425801483010422355570601995032629329709041377327831175488901446355296395802009764217272610707913395046276882606769971631048951967892018520985610337283588865700123992476476433936212821120319160489802999039852054139259468262318411673795735596439125602275278094338215683840048240643398389524549718626727367169683475653878567089607773508789768568031811333144638479667976634608943231198422399397575279446585034254842760085213631373746085626459132111780470388856413682508912880948738994046709762953033630908535989328873080039227103009319478284703970373852578584012666127603723166612084792821875772059734968018397979745650311210343924319453481661583151932348609993476671724622976067926374807022610162028675433715413441816697588400078892491537862308162968359933374659333447564344554710791083830109258821686972951117570103652568324068722269533130659901218250857269117528779102705107726172687901910009520733483553798257435017866949264318912499211456421507650536167451041097165323415372762178725816882971034039395647532842103216976472951459028888216659729186411619000242845282883951700848145979186318691132533785387249539479259524297215608800485559010753094235180482124950947904087050512425322697467744380830637873954614739461846171400633711499617956299070064336653550765336131607675603061652459106294443713573971642325043968556910848147634328899462560719721190091055509626102000451256519016576890233041925945661990364660161647571106746549546784445197613964414924483605789250921490919625510958547176375014959178260940923282690560506269090567157612987288659653219213563211044550840884017367700245063789672290889649304899118730350479646941930546750778654697914417212665236141038702286678687733296378326739334560475486243809053733737575750224678848228489725958028690856787157871876740660936266200105114102385035220954105421335229684560515135809176056738303448140704858724508102118273236162169725674294364362753483526106364433259063064472640878340748042901803226780738970053373773323223537972179310075826662388558188327357745911346644220150476382738499678937265327925273458576303714303403971704249729755790806308788285840524463467456275520078813273936158101974632880926923524490357359843290766754261481317814123943768095662334474462269326084088984499376486023390053785876547033081441777155263716100591807963498344545432531910074788164356136019717684813947827986035853274320287444840482256089723390238256257423616383667603308083183040769202614866827879788104634343322513385260984301981638100216820195194690117934980239543392731924495470080921644914517450052359544243017092124994264823841489359377463581388685131358521642870950493647872306329683574441652548875927278988744624031055456890268328823420900722377061075188263445957931454632954906268416630032841529503405173923340085327013094361597717301786036129395263565515997640520672657339827919864676699437801757876868984756368834672634997241492116006432383154362413633853102582594808705796499873137960603268022905189941530155261446756617876307486529982483753524018162429343571126801744680935936240013333832332871137005447774571612909447513829391640271030725476258028976561826894440836312240927927408605613521568916430612627820246878357418257606467792720878696842013119472605455042226641310502024528376690461401336986459220555235671790864411665340727194412726289552190356728049217967338451026330940647906593412787634876188776417910889499314413525430416151525833848690283269648176434392799376480630712954260540984606005085836765036399891643327170146853684418879990913621479973517232625246136175967220895349271772120846165779405853708555911134919207504452367517704586884769247536046357573270263578633400362594191427536393668564140193807635391481188650231732658762619263645504708587757701877077311091646430381567584858372856237542594910962848200854320010544822422572977611711515786669451674697551424495965690023617108416750649015885272785061251380102971511275296263545399417602991796484800811225694225459489053841730232985469538836511033694021548365068651423532145153784818938239617677830872346097090719212294987912467558082574446617705933931358705325119576671641271643083152101386787975241989958769953441134521977186073942407113909008401483846949380791683198037341494158973395853982002891350455110148109797840287896412689422702982260586243550503636121962064127277997567149547135782405419147367962392996763544510848646445874371308072605685294147344981076652286256125054436321547514021560088698862408023654117316768235348211567872851394790574425347729924025606244382220417763934791709826186391512424266224007752645229895319868894912710769515483124806505969943787922357248314000539413733270959501575122833516802250734876927519195026353667153489135683661385946170312686819494835148595076870092456103695672463534586720437975465183284634287142243872096982965998079911840003436952471547898577521134016322889136577765374751419783020734743746187540317207252573510487559434953146565080351400521098189921102238556484864664013910973551412174354780237413362729464456024087324818378108131025485978049775993162452140171482431430243936543187325418523263925199843734827882847684132934389541243311283199468566007207268967519178313887491861754980237210882153244068831293749287084806670482365709210689788644087954004911525665307717211019888076168465515984448222602099613993335980006473738583584080583740850129266859361169450623350244063502479305571089068937499734374418122128155188846235809044016273713639910551139125133480934078372188285992921412465695775144081488163216842680376554714235361960896315077308175858355900644220654561359851096260396429181017715310758957061131401693073125596282248921641117751489303986130208378633794300460396091653433790883369954226947330322802229606232956775779199264396431103575579736972891874470356608742592317480413008210856184033227746084656252531850777915909410376366422079703753164272407505115122240838976848131897587520433122362632581731653614777207279013104900866073946403353337018654997807700567735655233277044374650757269374943002749755721903154200949359155668914955626177745752602200724665770785932815544604121209811366754576163805234989749697935056384062565353453928051677985075585658422627863723176894655729629714954746823689027531935385566466546405723689224658650414577059073009442513161805181210088190936982715959654541002022079705255769897289745642967979100965881708849859794210356615174833436908263587241616799996995008966014045767856338081868287415444064843543073975355940319642622806097441111459908272477895418621050644734274272747927385564017788937699307803305808342867172878131643556446504300006255146590059944871422283006127605290447886792671890372783053752282079948737826837398087448089453450341297765387381059170100407762299164662687819856695636247215273978973717183496489279852399168571323716995224516933420058405030721832327002995156390018027109180625094481324242167698907619219207514986988170645295509761655620647064534471903287254397814555021000061589694633340892104899847517240074613078639032963773744734684401028935064284873723509133586204353041634574983598009662289519271331711365158118291272121379071106521721992804907777255888568103645080428643006477502348141851511605458494976902154879474403479181760836927576423385808218046329240092433623592215965274541042848645189916147168969676721493270418136938962415537897673098818619895850133221412351386053779882453713596518769453856564142657369341844034093784385643061898496761653658288068945477827590416442721976255309202221048740915756083314966880278153816546639931054474466116091953972274552208771018425560747340951108388729517118297863948929074171525989744241661037988953074616713720289169765864631191022660192280473062508325982358374377355522188053232824028680664093051717894444651484931768013564813967422628806194021154900312976301705630584424212054875599717925729627214045336879707268985211353384454216203091815020774183365786542572307042270732313352972093592783106934176831253846064262329436049591243590982356172317818464094842192907209455515099729140803321422342722996763667586104051932821048713676445125953089795704942843261692171322685557466591526466791893941356083577699549879997752024772400369644164620087699647677911945246507644691344268844875867669946121719812073250655525056172907389217009414235710600102764287029554537559365789372989764643399075352402272313250122655938432267332252205988195698747670385783888880390172633392030005716542713303219103716824121445248482331707715096018002794164716640878961738084315202495859474630615689483141248391771266089276425208867236081399756896648411655863953610474343036102204641967551402383506324484164865391257921570329855290705883545384942445541656442876190172464589907217310471717627753143197286751235251328050480732572104344537273924814676572539094248569360868268627654891302159651016580741285353835121563478403155407236027728007184236147701711571592298941328498094344272366631981540195330031688564352904232994504423510107274237159264526677380597609399673938560621119334267447206713177950054106356686342671603715055076178636971373828706105488405295733939561004849073343980312692471620690503115978331193409275870649391987999100228974471758350706988342467806085459911992572790912122281479796457009338205167872442638725642705394941402142380994889543417281443655900875182550186776715168348263006782900281500925801965921982649150375842671092031432124508933562804663811845578911194910051153225977239524058639680352818507013510293804532582771719909455908727221708519542846660270903356743944077711747190404084552508737441212140302960372803662112181495979229303820952532116079526075463165721478145725693630592444726878838106289285831581393959939228485811762385496801259156995086176317519750831854174318735067342670091933683393625477886571554916884198294510439870423191108140601718728732675919434808547495238690719458464698202781493430715000208141364698765657155686074534108495496768921619635079179189849393511826095943755589067977519484866377454349534126922372048480342861753785270173395691894087154505987624350419671877851583998798989404574170860462204778653030180874208009644167041303568163858449835040233618569655437818558797521243538617634913504782912742680576106843838180126030159298448781039293827434352236857869634915956728844283168654849478275672284890398954024557395503436113134480575184923880361689320925000813765151947979776896717202162488715636694883921156706877459438037586254949288331869216348128888586262603933533922775975640136945012697910313599083813026255477168747480795367418298596386003949273700444506120630038853109055792325275924660342271245175601225511276775777727390388986592319568330286244479288566778763700795803873538647397184643851865581158065437259584969745122856716348595717200497860810810692417863475055236443540464807372911195596785710582042078193446637654566230951540186455589934028094032756968312032888978478455564793893906088210325160054720881260320644553964015494091323401795328722803451717098404726524661513597188857525665325584023199007434204233989311535765943277262060132286751056457884660059457177999428282716214163421212666602629044320376096715637811479607391565376900644192994990916140972842579080844974062247221308511569158721435373390450902542286901569481032424807022239800764492407787555872504659232353464681227060132277241455102591346890303796942750012107087884668439093930034703866750425182511794051128249358450715598309060001994271845221069696449481713146039418929557317339977273365402776366693825697418428976296633591645066026208813113482772340199298459470354243871990493213659021971332965809503915338927752262027632059585859606071063785771912322216840816190146379067332463128562036911752950401036238331666683290587014963050522289380315628541028965771877475569584869039628027949898725530071161822825402873590938380573256785703856373288404011173033083576659209356766007410901845893131136103977989831629540716544667301659676533890161669461721312343768552182241734651445654604236390351963914295275478893548705871962306374364217483519907904111537699044192787591703435590119833177341658802862182868635818380765824172582907166402327286234838748510490370118545845781510539696931587084054927272483836433629642990026893276176235795512389960384172231935874381060602455875666061517100551192630389075150689597931248256453821420474862710907865651644984746173941725331442689718156303363032434511286757072801428971038320838672375014999637833746148949997790717664841071198351193434343311901003600578731890617909454782605216455280230628066720058702172269751981151102429408688207428415822791118562083741444061516828999694000029178566617906527905531144329867268225825647416623565564859410056398481319143634535850407342973471781342577943701324977792094169041689153362150964838575475276235475378884521160033271727398739601856854076884615959102677071706706412958127833501645996895776571071431837795021555926464010436034633919017240968257908176513849338685907443728165867140290819658590936212944489531859942812712473940684741404368549181426633500783123231845812181272035677241616102891598020494924717810458251353040265876290983214686828321546179300646067294772717132500628936889000131146090149891421529288010631405398346267767183094404349846577511145418373219698859882189692873067284129759894765967707353012880107285360264344916748431880111973987233056122649758420933851785800708348049345219539125485002895790900061464886706364056368381590676194892018805786324664418767388280622765979968246453406337631793345983824830009060561013263062831432490794487828832862051379359387053506429107270924493851327952941850484767416293171368957505409898531683850531395887957616594274467838997425164024554595126903264932096793458760998564525724860158506744385243376269948376918014567774818875507054088181175673402374706068692838761167295541031551228091158962416095574788028538215936897680319365939543592095476756287339080982740006578640853718316036077734630349632339644715960316464907852459628788054139037566220496091736504402226527777646114283278006348422106945629011500298955047692449560747479618533190316873607656157572784207118284110105155081970858349625610299469749541597588503335409792295930290882774216870553032310875470972523961003078512833462265529042427257982217885438843180371071676905882983143357326186444346715599807308772663868878659075427890059384006845851127010661676517317200867337632232375275892035404909704106242782067643387442671766359192716380500542763037652731320331082226021221759579958232764266540168405439193692412642351699721884387764699346515760230794991575032795049867734711096393149623882562731313805780081597102325596790970891550015927023676003918034571459180126390816999895150175869784064305058448013745790161398505598101886074479201539478248821556585843182304400530929266937325992098440653494945774055941884172568554552543496107437789384395832139407197297041831282297415118516855266093606846316119151177626322144464909192326792779009340780610324054444416392438390851454620050313371245653942745291712327081412854642498536469184339494794269323597070862996407479519758784211498678613579444303698779677019750371756654049321060994048905963140039770368978293595415602064264294733823614989363609211532236271987164666496472545002642052651160901249184039517989464441143113482539990632120748346473078747214431100145475060130271173148280241819264334343911042566585694802073291442185238055900576809366531441146159378472766605176984477741866917640799029637276893968550793527763111967215713957847980788009508686901355882399410148912620136136057307808052361640706634737125259186209223168599894884519920528497566881816672915231123386090681962072891681254562971439581679862035722685735538785966846152444132913667668389842637620038824382211734925591895791823864627541444745458702838824086194507822264601046625655775837205090130469412884439679066736576679910189046181765274179193330009920164573573938179775751068180228068124094747678441421980577121066644177420645273565842012881313571872358365152443723965905814446524248729637521258100630366584390971212101663756649333367582744317074115231065134463953257753247540444452245907936464379069313391106028761439338556502031994998090580605172520981906904153051315558871299981653026885825131033780461562328848542251009698450100617239178441070219730034467099223272442139867887798870170401357823044300991956565524855020424853984030287415981202619842827466595395268939847598968589955336126556973198606389132539072977124624594180671797718341303483592148904337262729015818390303958566930249954011623679556805904574814846267242668687908740485860407118494162809234847352119328899038672020616941528006510998777198186106444283384314743135626420895090070419712450995849332503291779635289466880526839046162372573742245525188580979947844224711903546886849977318672590142301367499687584972270489679495699721468845883976179104347912893898587080546850231565786528232594289683289948650803457955955098106645934780886742239124719029061917920021811335160546413912799386311265392294735253291385191002721482895615229515073728404002881309130736920571264261041374919800137525242831229026584224821584832920157365193802209758082213975773111404781819353142727895832600102316504247985860356107707641500111901991160535442910684059890774930812170346321514996561671230525405899484507298263818807267922743836035859148142883412662364881438552712497477316984809637082201365787437302589862494614761877537177236561167085360931748429230905351204040873199444605816844975360455843095701132159958765351916233706950855647456620073944174156018778748573155252095413282003559693933066965777113927963400420945898016766091957159552929493713563463385767211550574957820260775870948925605524617074571616608719986956063313816780921975472735854583375642468550175341474502171736376282424834393085161386561072859805034984789389410201473568296738287206221659888238298271303535579382268492253888399597707936689126358337881529229934300063482033966803051406931563918185901325725530529010486191242557392627075605861135983039363710743959143460516658934353025037367183279618586059969703628199255080683939664355819334789285736710142297684919470471923887544492393804593955407484467980656525830472227155296850531328729362383615734699742163007415988573141540926470918492633414193001485277023229315025562493407517872615272292032787132129174456790732327602778670280245642210654418972073351365753369709778527993202097460812614533488534243186561309168216838684787953486860843929929937257719672891794309065527352354577233020576842719979071843313281547537577470768884449218421316884766440525000215699155547418821816561383161642548816716932480211073527750384531937116258402637247776854825329727719837688458478368319347410802327172204884875813570301648829594807537473471773266775388834857798676500835673067931401456428838901456559641816549023099083668814869363567963861183767068307447554556233698219526655223250735465186953588530027247702821434093984948829566826737376540034037204860971287580790477691700766990108870496545917010994018518720418997421318545121723223465829193672229441557554355746217901486432377027736930175952616007380237607550317143871687880976115741462784493724510861193906789182713189609079455600411205396838478809680013297737457026882636172016724753482552390270688877589077461624351098489165101931782081774468022542707462084559941905737532776587698073342858466424244314723581300787019684373560126587576391388267376826419655494569828123190624834937910833770843400094338916463992652778579055299896520670629288244542993314312358998438520035072596894050195911252629606817550586498635641301504788320670247480292256617908669508307063579890950594089310142153728733903249819671784127004791817752091653326938770631137880501134333086456405645897515138107938017175534157806401179403933533589136958804289024529266157471082039037045993401870396465238266944317791768139791148864438517310881962953964202492822797642430421014979225724521783496469713823457358225454559157916980499090739675314505512032676830246014412854259479069879790710050256545250165226422451018719873457040821562144260176342444342102789320380178038405651076781769727655583872266293794958087847535816516105876359126499296384944463209854220655449135612750091982501051301956678567146824944422983965240003224380849115918645257130532457163726014745687041811083196361791344892971099057173779347425923216729539906157601656364915120825814925501856388684976451938679297258948508084970954609195830931698841276023756576681540135923305324915292796136969886305750865642123015732223071280383883920909918802395469965325314813387188634454634966247225543425546013953684405572602811313878736083375247002105604864792591527422951134101360324739300707530861048408652833190014150348844070147973326030391606119071881107057480953110321690193392295817834963837981807218032543033180370713310645304252433630253696411666699604799581271123582793946043059476567749280404588548510486361253073973876668084285821949160204214417143563339534376755342673232723865385096690103126576841155103814524187836023684988850470234796624897020216240348916363378936726997006013241670785901563399502633173534929565885929831595331258403973194675680286910512397853330202403430103153428150015767928275208704357647120332786304098923417882557148476128285213615714159070325310526860519198060794877035793579441734342817437620935926648026810476063926526078772331560994903623053338554826072165280940812622736823579362415048268859023249364868507479738619384125547332932949971803798235862268368799776631888735209730771961373086571493827536299887785068697919717927013523904342993713060681226157400401819319606679279950299207761703908305962287685711120390656489171102993703897344941518249009273122791611797426370923013805855804082388663530470854877971011388234933307933572285252482637492208072859725172876029735122188086869003257264990086048975583059342556209978370382825434557009321797255396442325240877896935985418407224359806160678531810810570457062940175182719055704568022129618642157323137024109689881131518781618646154738032069735956605937802700627965585815406714360090748204292700668150945425993052016763925229127635309169201782327276762353185540126164775040533243418546998974158135196058505933412196830551570368133635801954408647305972345556913573135479358816068964102893421722021240553046949143964963584130893262810854414402029794456283395055400320000382612860338657488979712371609570711511919636748660715112179660870695744129193422474274841190279270327830213436520971006207949825084418586858081444069862501189364747708400304043282269229739071530598116170045033502780653986438537004200704379864534302552497304358757064542853030679548629099243734084250429993812465298793294083137513479870607590069154851335289115297358609636793050124051730813114174001709066915185189175072534282763017696106655501183026221453968836462254682364067600803475693493373605596349016720998033168446634484446826946696409670826883660277558072806302433304846305292530124256640449703188917018641946306646927073363297922307783350382654302731849883037345988309088931524116912655327203356735696918419919063053782546565287250650153502157106145857051863725313228472594410845233588481140975989065945374418292305693275877212083135384580992896330016009053547191842882929073640788654762347647915930834457621685596052545725824497078320991926406288044136809060810629197720711803047401990668680357223777279020130145098886497591371966172576421576792093767197975087134929917901223617556514415681933655960657147927064155519038895870708124991023275049978417836964548612788343997362099617782129598200211723225720623855298046922705915577135461606640700057076085125311994450340124476652392906466548766836894527479868996637906634119832451448281112764175884769911132827014823118185899879650402734377741149638550564327542263785135880406059865462581692640296925933750229550794788428139545344510302359594228086686143733757778847958461105667779329337050166248991250462290959751835351257236993195352924432116861095295968676664888202927140690104875454132092072544465434850846261715022052104648076897665516013530746070504682907953125837049497044034159542156471872009353075097567133125095287040388712058647161546911104342249525209990348061128503205109050338586699572671189602299041648440236285400927855182747803348902124768879789777334204347024315187567533423610113105220997534041547329278112941700983365505319545316964403498178643350744287479279509360531483248074344514919100729215747869378616236473115723471638055292489937017108084724664929210998077972939927289150677407271686730046974268610143122941212435084916867068320534439626345501667644163598720016461041113062916128813242616293866399966668330113028207668330757383095990621206624179771273372471952834401906497071326212383877851063625431567026362759986437433129717111754803138343774964701340671588781253783387035987409983365344574624794162771261909992059835490045133679998106983625563355931459392268552138548953138478453407430453028525608013224091877055678896148382348665416051133032829439681480591904662042769133834007869673116309720482294090690174216284144442716503294714086873710722372977692545199726752402023237624477444737035417440288676101280515579288397652116301261556688372294329925068129986654411912032123535567172929793150928729814632770443387912462513773639279550286339382939378644796590462507817469438711271213373312165749773804007746659297206454683289864383437074942427447850786201278704597032860577253260338001675185516453444892084261712605336861002827030082398855951646174663939317489268605330046805870470155640956400774214869452203426560498228635783976835251234327882872782260210972757997212770588040399158372305461070691355915287447894071729455918102572299135874605764035995521314330288098978530080304171429497677611600906741721313434415319614703893738185518181345481553718098152118151827944915575720289204139391646495223458586162176959871576036752257073840563897469494825248219579056750714523950031626219511588263891148860669666498726235568752785278456161593574867960313866988664536278192190256891277334362333456210624451225156346638904751133544778135421172941764457756010163411105123563842378150750122314468301235637625934187842596774051367463622750081411637691926098806499522615421468792048623782621431105051059271011225374997948728150001762556058528377040412473374529616333849991512984190510957606132574363957239290102821046704721429180952952176645960123121697581260643522011937659736687289608557113529990728859464888090403864767216975832956234167292292278834771609063838836259953504358121072703653469631746395373849769708152688563963031458406157531566713703399379088529608066918419638040095635420728203842279215952004088847649295313337020294442089463014818726272190565774937100356742198925692877917695914444045557279456346510043234535505757886295374944470501964293777573824478462943185786992411795737606699548442152882492298527363580097371799237503295351541569257818458452966302598019801444196006416241191287490404659872433967246656178888741816095856241297271921004004180922059747081514732309289951328022297992097940227754017257781187727902105154419274191064835127760022235132869643677276218799879738671324594287255327767936014948805109208748656037666921085596220106901969671809621871948339933051013440596085446230786394296243116560919855706910052184314967576219057071494294734332298716078572689460049196167042801647253002029482508982515224681777526820564850255772388177705142776979045939789436576504317716017116616216527302395693819063497455501408335214867856351862432322556021353304272970783026924691718774180170533733950396524170224259165371418953760716406474217041029920089979695679422756086930681451002143801904877577999451544509539938002207743575305457805877099145505586891428071025444124103146283344354869690965083024345282010904219638787428524012926931552632758753035577327626871272013719410764782551000382574534934502961317119226384621586972872024063069741064989074124367191491593986821899720581468476314239040986986040639506552291150449326070395893698615391722087401194068106643013817886586042900542530707267937145976748116174815675690865408412817549475896393311321817637896798045435450817996783386713784506656477378883442288424456575460609692336802032304792907304914557810878777748311518627423457744465387120085156403046559582707310981138912123914719783843860881717519964318832824788348359902373297099101285730744331308797641643956201919767979579411081782925137134979549149881034000440039327408763328308632182558478851128673460543099929870271513014439722426804245203232331678136851414614390973505630833439687191102320510271929731578000843077756006830966020176301070762177917775822250266510299762939008261492914467826768557506414024277357577365111371511006114765064759330753230950540434157847756154188249715656312151115609909517275160859313441645564186532579404688182192140739148334916366853719531527992690334063802360027907254130312959727705429352083210223183843159459625198457804655087635948448671934939181801471699109949699417959000560629920178289426666931470460704592744381894202779211130291528373936433163258696973057166610563789731130021368389654423160712711987595483261921433490544193210988970680611457616822264135643385778878928203736811976485897921160792757020350400486254112707779530093555682688989393472682123579350128009118517673259663063318085011138716113840118255269572359884453385587558853848377316887176788958629591589111406630706668682047229474102266802269945480960987034414433089089798325173033694387507769708065623200274489861797664627568860222151936082606545539486162275364931683002952009354250052521714844456712817423785568097693394767298059055074223684281649464559298160097909446087856324864936061170964961035734968625973648658699108911501741340381210495950791995266492867928782771227420026720629502669816866932931610728746666651635822856082378203297801554182150214647210279394187597816370408231953031009843474198556216636943855201533182950481761946332012079752031676819930029455406885907062464337624302579607847484896861440589818249448828589725798074645276418118412222898776293029329973387880451478031814068119500485269990047726137820537119558325029913781825138088129956389790670651306825657521810864045643456136289776783932452042314445118049719461782679206585639718664451828299477976699549962317550502260542366743408877405211358922427424830518632325888483381154310111837981787955944315953766611646005167066866210265383544197930011162260539506911460404989979501200683893961036048694214959673093498628077300103018913951139132027440187428390612654649545884996691760212029215559819498737911314637679512565022734386617736430642629435830472736493285942310864459534907565958101179844843917271258126205571757266389501374969825582606894370667711087517933562202326689553916124162504943508028388357380916239486594732021762245021801035238964542856028076378889733799929421704670729164886731570610629568462326588204850646610397732433187594540885686965253332156718149978924040559893195261734496307916484196302940477825397387885921149795576595652880446074819562404032097188359475030244350200659666534470275769150736743027934311996494419233688862670720845930643305556329108561048803602884073368639844756185543891496243609401411240005828647467539409002323194585898889853850327474355799956628388572249915697863247577924736648936307176973268351883453342168115784901534994459560030518515227363903626344895936397409326682309981504863928563998708009177626911963701202857250553371718358271474880106630856068444805711982120421062631887524577182412066397281511093765514385995700179032089325366159761207209729857141462281636672970463857695908764686619060699115840027886880078297929381666205396461996844352048126628197601410999919637995110526899016902596951646955681898744473539632256075804141942850120462594711268567997133300581429540959653860408630189583740901361841597104872168012989539755307103411517579884779077525299065375380623375130861150016180884798445286374840384274681263359604197980666635267505599324263240968040438527345932844566811968092428324488441590673816564769335922436927291689423103671505515957941614192552105801510566298005138843724528044835900666875178291477134371206645069688487407218168792822992200878485551064744734620574603610241404584118766289168868400817112225163019373873073735806023867759583196084927683545271383269005426222843857309622905828356303092476753695895674417176322580717091416450072414370208284793317915908269758890444537365049331177164850973218069931943883885549640250238724493201508260484427629158667264940091552753072128839398857520917037108011108259716634051912228567694132579973178547396896969321153699539572056201767724456499461627565938708311666370512136820157377386714292399028398389719592405494948140174008116821685348918467008135130856383707141203432703460666916221073416802234015965041568141388934956014827053021779957010434356417095385715583652823249301472090841376977504298090195683828298248514404785738448059563583940049907949898165510620260412447955173992099313686330871272481590980376399144986119266903914044261458668529993500289643423454860887232616151291808055667859960305243972147028499710842621093628653845970444683453395258934530336871493375087517708653761686851937781470876910585779632322965803091266310362755160188479404156041409277349763189313094863509612355577002186515526304179221748513447502390814179269930024017851775119697635835907073619572872347428071444194018784951308432828807994537028031801592334743197178374283406427401648355890546943170483838947763346374096348038491114752593780597312209230372253130501660569043638291465344455878487275487212701272674507081347113885196367082001578013701263169510428628478878557663882651316442041906696799724483782025460789655498472885229223849445549812258056219243097315979116169178754041639828665023220566797122121921160226911574224677132297629822078479293587183078653429411472473722368746546072887780392347563687969751880460388070788117559261395750856329224508697346491937960238872782089528206936696112615668945568467067000766902784466765527910711088558930133367130960784072469779021342344450484277236345476599680919722301785140957166809666665506611338915000418905338854751094198818341579136746980347362080914732799845501721058058537525840907059085562384990846644871297865114260317240549085345814218667061631449444801774962436144714693332568404331441396477486322285846967906026274670478228190309129542170727194185256754225027035990578163875322090079802109341634786712793870685612671964598526813712352601165608786899452584183206900602729442478475505894559656434959294836877776350308780899567592893271846958945619996297175369569726441076792043130319065562593171547170422221298959067411035561004400188055095969564839389037272178978670641142967065511461335459590078249744946676421692071315436937347265265202639279693933286345367359705004852922637782250580505469911971948920422408163907063859340759430606177090555578360509852599673102363865802985125098334623368586556028448555095759094197449078259132318306346707556264988439154435764388624077592020709139056546819149201554286270947211740958701433014772717223265498662650453576312723753020228019561821156823725894356996571913374078657104879078415185486628828778286757804100638765833649869210635359038251879370071158964003353729280150741498453100642567944219478094198910306799481146131013830217375799598982217826198404280535376596513897119450016694842180977441643671883510592713310599081456624981640901131904558467151236936867218417704987707294953719164831659607898564011938958597637514636706390373345473605628956085040908243984056534783662859600655499889366758078405013771942286186145782983675037791241113050900473800152438672064490102182464012765736594378929740154184154701196238564699093641818365681313655019898177104988842913126203606764282123064963443311015618338216179829875194504709797509122816933298755930132572242476864036313900024222723763437519448448658887150314274983145916400988075467297995696300785846584197781759222265821235478627864420027199188429587700785521440031563074797142073330595273353479507451555221197094050588643269013989057569403730752844479200633836626493893917233349857506363940691207499060997662923330602916134285658982216029753385917776461932618333456168071271104719031119167109149953426159066350082717009021530050384373367867537318219800393062414103558993476793334931265195356690693920208981441906716250689958433075684067684181208070075123571460803363261473925717072624830790104264009027045724641122023641767447162537676329908641197928879111939235534785003299211495665611376171406637453501966780763017705112068607519252222155771679248696368726135318671735433386825850494723967625982148977943489457563032385917366850829042763606347415091595447018506325083066012293032321847432020084690601697861250324105199533949876301945705474415271355408656230173753693882060578966213057489284726757160031622099425148448122762519280179311199091276189176679339944660952588654748497246302635705382259427068196686077378486493685801605374157616568300250217730102790690868268114407405488185829791909095334107947145335693448924980023732395931623154010437193115302040199339832665145973235238078830885382656281917387185909425233549013105466660617313628803777898394895836622390308921399299997683325576998206925437551169080497385474049029573693313761726170726627722325213192528373953523200732931700143305947797237409189486307321805558574018041281696515410282630945950757035036749960325998616952232620819825601333470744903271704810494268999396630514992361602325682481307325475219171326415417584187681340298548556164098267297215074990589754203444987517885317023907177843331700331368476112959382386498443201691933689817046998018388491340678311412408631981840453721462840967624696268433271096847603452289055783975294505843298236987832615657584754785725619855647997152364276918612430611749073139462920627985553735719815165987580028801269803235083464532974090806412305641035756084101599498421497317697031351012135280963042832849766098457667138501577741469443260517601682854595431128266891416557045301039920453350266423706691363361494415569257925913637358929008469160124369766385051812738716689363928720540606292194533710085652669176819505056738238538772310675406019598749862949551577537018555200986210781692927992903343231205607288385429976849656856742129620277877783822056905511033972774691201099800103934503309140030593743457631061892597255192946888199803730201327760028275492322959758896230856579492923452648232031180882200402215391311768087458425588244349398502222828071147915756612075387841837310692054480412277798848898260463697033141541640344044461552988524971801402888285649604348006663588527143907791434970290894667104497089838362125248269809170279631732578516790414384864983357490873040682848451371485526655610741512055140085166533609020920949985761917727884765231330166353191174982929396133137508949435476485949835276809220093314250862182071628996793203354268437354873351504215743060073970717462585206557978587878609215067466053950582389881053519495370013094934074484895838986508690636809489660224848058997319716859393707386539607757915713221603446670316818089828377786805213770946836779345800193312911349822105640086283004477407553386766868207223445806386771946437647385561809583911799002979217242912190559145970109162337600622852904602293217876558400758581653302685248677121168933667652269958206339800917157889068534797116171266587135723169773415422496844587420382896457748020683412634152985432477210263025385954147304065171042964032348317530925124180906157035695605169023833421506458237901941165933528814508144672714423491341551597775087064276174557344995122421630574458862196657148827714353815959116299840623609578003139437614965097648489177538224832929750995583768793817284104130396577753075509025561651524070081038238966570248151252444777806250407168560253448766243963062124125830023720687993572512819032493924912316534115110182114614049026938313253171030548926996684368917813690114667530037237103412876105152861614733963407923839186713918030393913400121161353751645893783510098271675699427068674330938275638229199224887317811930595029425488913359024902954611875901706844366274310515895958762182751402648460870220156677934361854573011018943993695759960606740531935392901774103150913770069442552152233124408428188842988159765588537570754486089898591576964683084540564641306761049147703323945615698017774372515609295477520054579588968951543974206813229630728621462034204972024823079753653326134978650966160469652678845559124725338063370402763595646042234748372642112207768056451269035395346518201294318309397881015482345579328579052422475588265239688405867136869823793362499142967880793378091364136901594872678856267743977269146261045270574519188657575291283912506604115835588613566405262586075936283104735208586514834438431031220520038415757820577300262172698867433521715353315902674354370367721167872478538715598865083603431349141336311367897116682919222220915378743679354397834268695503845075727126474977607768139481284564305123122224862277776758627655812452880248102431832638125030713841150793574757956231658012562637270081492995686925990177960076169778599729453168449982874940998107176937230405165973934055734694500105817234697503731859403739123059930861812267942737814233828713988243536835394804381078856523168921098474134332240966464806681757498654150956136287755641329937779541611637505677565583320131652775724039277905286260469438006944425194177168083112512494814820183009016633509809503435861673742958122405328007437140155610924551320742192286053013944442177477812178956356191992774848048893080644666148505616769399061303153854819790524467003851920618812113668812686161520795138727454287396011843065270334977688031650569014733019477492564093603608667496595581628911332378037058371465550624271733374155909122162243240844645397528407227644226169976962095883284147940110220373075174408911890238933686799681646928120214641929888975292058950377862174954395037040964817997164656150180615386187097952304916075896789350469369988304803313606859217249720201604599697822934833181953765148055348210483937435235092021893731732356201479773878710463436460361475787981844369503713772913528486128228387592703703522470648347762210745425803213873108739447619827204111810542291825376058198648610512789769192677318164754006147410414864627934067918053908313566917467131521045884050619888662791851635260209348599032145955838310048830252736952636915294827461684802591582482289876000289505319909506198561652699489373452214818934995163067472690246178158719371685137818868541466655876543223245801067636317857974388530985387777647312508614431437932429677698595414187205485600053715327689654110592254975123841336253894907183789095921976878681045684014818982001596382750495796533907286806560133658293925207977667550067852170988687973737030957444238624228576338041012454883892850487731805607404348779172237637870614552121948759420265611981522762198283152851202961941784443017082160295259170916261353753238145324030978843323093728356659412073315467684795371450907237062844963085253148867870673211131730987684096983551198958974676445759184661205296506911456265616565789252692495924641173278250430456440437509968809586800737546093260040933376806742230456320268429225682329348772412657850868998661986610903608054358669280658622823346333479545145977213672828012894846922066098699887892385822131775501144646447274203917688461815969547356530695879844836774393147860857509470117176956858005883854367535069483282838080944651383808829153663484763805917904133712212502182875923974014941279717094756540692299447580570802939213138396034901940897184679107950618444922095224377134026581022692833644628247746640081043613659725601812446344600607189562271744487978320562725289835624106545506668841022337722093611516737745395094798697839276145292646259261828581792076126382878511712815669263877432000583600196386077877292647523331650136186696940763042588084169025605288286302674098888254225563667682476202161619201460035735660916352067324189991089701379045939108748725343120703468154888281201874952843166206776716822852302104395025902545717861285459851135455668602799976082907064575049289925702685936507928813438686985487414773671307235554720247044866996209903971050827245169179951460212178157562726518459066318434946208426478295951314634028711067460837251019408073150143755274214376954991419416069790953601601264638914848826462510564556843686371870875974393467864324821081013278339401043767744116040800090207845624697561612166015344177061449726536500658381822249382628075928712547569237466049796368537859503874278109274424260705002190966672141597980988954730816753543023929032820092391095403247343440266267263148934233188431080020380670437461122922354608901357946254902399887576042172436217047154753502723996596525124946211966439744014044964359684025534857740446879965401824799172079639132056623731692194573068619571946903232156444112607643038365519563901801722460659460614538502304527778201254797514906844089390222250069615354760477319280376483055544166469375936865638948524825091876162173130577122092198509105867540448982570017796119081330876531272633086814121531659406811465213450538750861312066469917665486903997170894046459915035903050286874940733687110877514234098474870935985476936621042042132907791772663773703082396652248659695147497596891794174412914980093708622926110216719502622433657700501688132231988678093211407238395602132032913116573299901189068727245941475207614830385783679901105518005697362819425849951024709415031583840422485890674682779766751498551125998130823836955266140377256860542036743243107164965564122965207629646300519103136819826937000546660464772881851275335619179866592420997159212822455210330697068958475379848621673202098490659016150843958507918489320362575472674621462268977334440396136026709074427151277668137778687150692245010511966927942813603996071802862744465648744113635509435778465624899642911864688885769007163737730964478329509489895323724232987191657107165999122547238443847205474268620664680995575311048491722204273283567040352279269920337123579131947157082857223489618459193433257640438343971569727859855333609368318982354485287835595150200993360406268749619501041274063551496057468592470238731864114830997739620518515061744986729919548354438345783143057717567650496727982060350015822103364535692432381440844823474197100498610232610451457724327947577439829100294363617428603117075775397541889894445076944370774953693455049314488475203035871022655166797100829699539494650419120155729961175747590728293836937449701126653151026521944735301073434847792787590911785708629342772169357454499487634778192676587746894742506901216045659993314634845375978208635218364817200873074197737871250778106428743554854300360145928380672436088466263799138137450074839886640748240335864213836293519837025158435417172376020054548917995010237608733843053585365451708615509416971472237680870297110874289781807966849254767076168829426750737089359802380814220752268589894394154184193732745138401115826595521714347248809656200664886289778167458107176915877129504616056199207208512660132133863648174197878340743979338752234716460546527957704308035048192310872175802331583357812029365054475024889301621427022210451107377311439512296693428359760680939962205092505933477491547017073781619767337994303110661903062829174868457281893532342923850379511214035097789577140408195448396390503684495784879336112735515933709121156657235376273890652150122816030595264001581282109474013166784805311956788168515856109828721955053022589157566013308402238084427009413374049540661195206936302710630920479240992927091532389150706177111256057564065062692157387351288828241563981161564541460463142117826195354939748423758337397533867290997300596090378829423790463539680599582206891326770547671264943498272642890904709909158200690532202967042248978505964387417431592627326618119581123115846378941511229755252371168542445539446835562870994465017059796892013701757682751509576007269698614634006406081173818667815978561931949136772898743812148419949474171969733230527283832736082619027738585283321940655412146810916903757760987922056016691608032892999047148059638482353739122353657037303848077980827164274486871976437679800714384371100068849768046320671890047211518002663546362321946614256748173496906653882650112301787422529603258661042190382982746398842519599028153101577109824550371549577004557443806723789243223244342150736694624125786743190089595908419791287665533690284613842567621973168860079025539833797824473877389402708429763075650752904574665529636385273297865573418234254355508676572457983569527665898965559513302483002679985538103334333923335679453865718372466105611384578671895081270568415490369813879228714752358943467524639074801070440981346733856636182961071074421403724735724117602233231751386326916998149251149768642028611713436960315034081577578787450092873588823494331377588193912265105499225681798275380629078616851979654575984111766021500233919141666523830571728149975160242097985123440392565573782819053051714149987644664995988321181344069837763534401138475113054265337488865904266454082523472615316402332805476441860069846444726537290774106720325644784472636284167975488190828960332302108150844310628585255982450107665057257871425363335752147097950020331518350889006202860577558941103565356019789745864329643820023880599933619080401185838268035062244033744361229129410557851817066091413660453363723455340056189703345243288023429402104778878679337410033477203736442201864181909940879737680989738663455681704445812049567869462615901197289273073347702488701459005276597218351410610834742012701963548624155573544821137834971614127393797846590194084602381821738875034414920180475335090027851796443922012586975465764720156764455366824315115384171629113150268321097030756630511380002739444905003268576009774726472451767477639754191085960265009760143126245618592996797153203469744542288294104886364802422011159757314001054103851631214302557583099940225571230400070274800223461701050585313094334460440369019597160179680093590728679704751959711020783873757998684057883398250028821120911941134814490532810419601684304287433166052144023180845080578434650872106762283320611810905286320565408078771650646895238143069030497531962764741121976424423688961385861813112942254281597624913125568266129821597009566598578748500358440497939494926484209019574730901029102303027648132729902231520138142464399702607624616452426270672709486082185992770935929026457017811711434626332099764778008065589294065903670201120518751236223382021803434346917868274155854916570002451341640755427431471576479406099716069789748010509282877275741407342410060932133199254576754438038677251432520884590534449046101660818074880819620477875621533552077539040561975927498996133097543271390494799374351910076002865983513669281123052252477578163235079503716420072635275545067896640921940673050136577613159132192650143903674232924773691816371128626008408031221220676409031142471055138235375180797512270702908176915096212075015063812522935880334287478246804255904352167990575001840806501021827533553486588868271742670099164436892154186428366996812543836625548033016649887572007671031815792660950512419584619814609112054425554114083220394749304122082675195460760485418569883961784712885379663074877731629057244718203077967687439929571833581888803045088720424086534414009214863215127580823503102613929714980110844245309052235613590147309187702095018543795610107311292953516850473473119300820755353983814989049335416785587170131341591038753739161276653237280993428787451041404109819918670124191840529509264346446344063290068363809870000663134024132715509066428528442554311732983254676964696990396380144995222520381096152401204839885808230744888294370299334152500322892428173082135639319912059304873926517325279504368838316064488409106765551016059233523886458757606412586950473645650572571871520079950401583548110082321913680451125440067164576684859422855664837767192530849523608626018085502386014056379225706609197351468983861773201844234119705805469219197627364942171249841646388127169735275295427131112578153047208630418370610185139076644766370234620638447238381679000263622529064262131464027537845141223863322118152343591555696806242667930177099314470849125283109314184371953722948032686021344934175785916697591742849028962477220284377879893601618806731399269185012543222630819204941505829485234989928591729520096362101416225340776459317801371729196976091375121209881266342278402309029017578943553173812099812844885305057633273172618672510282009094495536935064726091206298364817144780962574437489220831163182491089513562829468901194644506037081207941486112749135871913811223471189169683055173913088908615371216494660404327680035031641105804103828384717073339502191030622454164281426296783046124446697172633397196112691489380620913778184690941283850101427028277006944510319974526603021412685754533142475059065636151500951304180461845830002583832522306212564317317451090909281717609455145372961379210486865801344713199155928214628979564319084339215630669340432570519368140081939189453272746277006844996451879264910250629224834122312129407822238293634503555106970073248088265705625612452281909824132344546754719207058150070379206563559454012736065241111616319887641650933166702133403349835506131736873541123654212111359555117080553478597472031835424302533027010363949006219345546879904147620152488173381858397557383300284195871512427411065110009785074487286288191233560979388728098593794403256992586500588579957634177228198903061081487304463860283872824562686360217286934020019304494557312317837294818410610367281996846669801384218473892908404007136188912243836751808743995486001620006901140656199055270848481374276985623857325357272216389035739522726809980235813040632840304825796247282506932848866722128545768186224467186054752129475273196236624856320881440213608941790000103681197235517260403230860485503651571666641549743408526366339854105284063127863162058823236328938611323504637713424128731044893781435969655386205118675253186064747043638506030251062399289087087876047250499591395481202341933584784691550389378108490682995273391123329794295753987097389656101831656936069625869234499152853566889722644589937037584745734519362521833585652166244104003439445450849429255523996281644118605751442610601040891527841168106721946220045786058397253096056730542070237859845306541259106690414470376382090794661686382201328753619988597040674401537126336345073143638783277838959543709772438909627279312527227065062193175022375411963921243846810296779163861982254345662901568236254519440559819271184156450846823367324509968730807953946921581083231103279340378873833130916696285475828182820775863479676399576337838408326230558471500708058372023939900348814278564547459131724272436063619237400934847084754201529522125452896664539442410532819035117431778556505403885700461216127378347024326097077291249581164195495094003054175342923625461162606127101372927435891987638561027228893838730637354338628447582483936907743641559122859934682745266854621373826124566295224385413245228353067701825710915125295677902226597768216471689523111466874766394541298633107296955625543247007215572708676058314573667033690776761286440724035199099740161457836393598396589667638453632009496321493935402023455737259969563994094644265542822695714335359058249294055060714278067736501339529103978758540393764688520030808352966939394886187120242558218226830520026558644599781409972128258452822720754980779929685051441550894144275641865146114002900490892532789847765659200097896017994247645608072697651039263511118631297587420998680421895022419797385056723118742335714987644934183677795775160925289735363113803886331670933564571361977730264312898073727383145321609610785323848104885651452683489114620259461519640019286150011346585465411638264469823985756913927458220771806566362001705930717094878073756752372708750955632229358559738275781604552169949947675410616245925443168769383025678251327820030979178437472434182248643166469653131887831553329516559729269943688408875677408436044660588343847407111470658622477958134974063495746622506558443091449264480337000051574087371685334800161233500957852003459917777184935496190379623653224347330620416440026660038091513813465130857973043979254591818859090420053102014279268749184952044882828363343572890117592139874917090208748391876508893227021126569099437287947165606000767835790031663598459316040120984971287987573918889613155831917657379666791638079404568847124682782088193058870750290290658264594537913650414537788477122134093013581220783560524562600593044531671072140023568958112166807668183670582034788174683027237024101444594395609324572700428772295604064209311236702987698266921530810847655410373257037403378515195037430455195254382873931606778451690115093104806689078343886967003635465051087507362763778325346402292883022338930700903103738559013471215952633811595033373104977022380184530749977849063049550919869880912755083788147146124472629527566803532559740927923715508724350717104030389399880914223859296924068446821705062779188031932162598957190276932994202569987448962798610358818013848827440646427756227128993475287710428515403885830147491149896824689842113715622091151982099858289235804648719251961273098844001712329513185089415052966308473081703217442198160253438175925892283856915032798314655381299627086472733002936638054781186527694761960210512577077933347483301341443346946177781109237090706354046784398872989397958718958108266800239598482969332875929229958199834938931080290963900029735182893595153714438077899973002788306423602208410367334018494561850891466451637469246113172120945423185906718330161018158917574493216909472421343852802107671578760628297451387391142107233803037464703333462023019996505151775433999988941008905747191247348706614430543192125332439646647210843022406728497430804487142745486883651057166867598709692623913140825410428428401025166951497133442931815413320458433809317861138224452726871206699608209710502268225920588350256248060766647495801549263925095397800253876804704980255141961978177000261200406254307345413952763999099108931639145701813621462158652426863847626052121693294376442272969262954441104705076237275109168033414570882042142609318908188162841643364319142789294012700269943088460422921353633547397330573346520566236081859893986880250602759605120850549618831142631205512554253995942791300839209283059145627201255220960085915456029564664591794746787099395870466951949742393253765531880851866851164637547868455487274271419903856463399851986370568234090097925426876285239996107339635734864837094974012982061066536946130455404845875276435541442866363361568243516602126957815317099704404811015358493808346824209270111226143216863746806360320890158064898828799365735473412653533785499061875952005769665532161732121681641624510957425570909444444720732216004459319666002844190155675867628762392706996973245188385361505837729046261150254104712270018209800206531612177075863332929620003575014688197269994148355589242088565676545492105507384722262132976944766662647671601088522880975736699074456497569523046992171446383067650256772940659297053115326537106816901520306281864700428733837640555733786936066627208832004057212746990736990611706562889155645127837421574763987359153559339937788837853420896242250076940786861806221547880358458196141097050602690168312425242901806773308209502372831526977346242008998420738465014741132690584747545121588729993148918228535608905767506382571989161377321823613279410240851720696224469603235749962083903866013082388568931726896642344471213688212689188103343812822280959978861847202864252553849585520151063915894584873267771105238173899972605360163182431503322199866205578841797797524524458911347826211985155415049627350995383380724990342852350985558185336728386956187586182614626478610000596276193194383798781858723924364484520772664564034715475637008138799968966926580375126757158795560339301078199592657881643889918755867278662493651173495112462508906081104163308666023649359083163915334649040776309095940312124779438242167595410588168122615348678579085726759325868321456388577632633706181456553039569730134469371140840304199331190023652016712423840602074066461603854631835467822695842347925338267940918362589932264308156646846758200551302765698685620189856267560932175960564364458652546671250220946208575064744425233198292627835853433457477752882540365371680179800052889487714884287999726390508621446016870468401354712517157417487960058439270583196612638087805925321759268479095109770376532587596219990388690485611542140146111514134276092981774154895631361120519206830939916061882524681933196093049263873092327781739378769538421696531133707892235245142717894415967147951116568145071941380337219453078744344153028583396588256685682172770018262796753680831476137784255217609225098951741779216588559994924902352503745407037420776579100225389550711297605744297192373662554381283834489278736502112739008011815112569529212051373555357574148284825204882163001792664985288433771544163139167870782252818905535989358441690086228397994006266584059528580676853223951016929629947691693934982545893028340303529582448973061582643509311462135377159783591757344466292906023289038230920446922276197815409849668314629050028005382720588191349428056310171546594130044068024167278066548997497968392436802271061268714012181553847555824936681970325361218412222233718005824381430274052887516692991184377633780801773878303064198203956098274169940314787639850544712467363839121376808916759381371348064587148367137847357429220027594413354524831088041100801148877123511453119152892290743498571594538303332050865385741799266122504605155517979302154167462815058472873470357292519600780557264418826173965415301839429156518653961706054518877958535272122039896588353810809862168774763642342415029190849247127378618209903835516558953657354974490646927990011602599975260892996367146249555205351650059809479656645622561404044025347352061309919939636593438928488952378348672594699812873210620796263150036635319775164467961115497985467639528467184296371065710280937748285988848331990451350012523657865605277220986471046476476995739573371515680289912282352018235228987822009165115933029777075651597680762564876388454016325284332669393221086147601355245599763384656221160879732882415911618649503179771776938438004490137800870826732113256222228514879302931120087069842046510777433036836697703142825622466008124870528135743836712596144128288929203063325974075851777695594926078103139979583352378481924123854915987070164044208653752466814360776789947956889793436290453288225975452988429913772479649269978601172551904410381429575228732593565171363731719423690341209521690272216971915383872865344022427988146736749060795671382053725053066330576909811550872793102023135368948736903271977023272896785760901392999441613376383377037541188674709191966792324229013243329544799054795314940611283428883328601248811319692390305317488673118001085754015821587644352554451917554741727881313375497721939102643755876400014776755677411487909788482328230883940097325505271417539083458871019845966367088955023123056258249993577911291317057954307771648147176670695956997508686817028470375184973480564480824052188949170035819440829029506291844133138832292835511821916947833668468575984481466875128707117494550530817065438450018719495844744820624924010248477249841924605806909611265698426767160066101115425835766752333448193710535864085723333556317074067759663957304742781975667733574029958275104736433221727508517876352139225867264953918291015375296470873002263749967593923776301734964554520081863319150999223013174332919998390423958928918947356234503183701186767694589410294344515897686254377581491240872176143330864553983411135433600907097818700088790162312069800142861948359605939356780171025219796943417032118525898222928156462150691428387485262280245673441142849598078177120588021257005709071127556400210255992344435012535694211364527596144050350189087049887021851786844862216433841891483110095719457861117197024178012844294879164719526084013855109848542140985572201112199394470210693624774763639928864586307094470491980842657696167823254397842728038886770757386846340494025738830339364908477648608473893157781403605143748079475956920358535383755446645549488984771514221662504656742077575263524137448262351601344492663619880210668803224499225830267257563432123490551968133036402560328798008663862020272480923687138344164623363238636585065954493691989555717416836239623552994337828314167887430160559369665568433884683297072820173791930427922695493388993349515647020111299269012487844539196811577351434742514092064566625242980944603142787115874799536695961522210683423821056719561601682558788523635571655219878608771190256388282667275202616578580174828874230374993374567401328473329393318205743057143274144751869137925727125231203436730007774424307964004103873645211768665750525855152448238077285117137543341488164828559691697778829941192088336661112203945312827673523475373063011388522588185693043355452699429620846436630403895315837161356198155518903444780423019641176927143757534310973828614629903042468698307748615442525674337207467842184058360492297626224784173043038117946360839774493646369777997807182568514154774072054398712496730042742573521477097766318558969095920457697691536998912350108748612055767710822857362270220624168103042068810881023839106469895498890671575676018021116536340056191632270438536299103874107881192897553142595086181928206671583734013372982520322841111414704981354849144942714797200305379290485238333892779654809090456019236161421164754149024215316343490947260065521495242379668864045374003912124906922489749091739597547642011268124646154549204322001619166717125094716506851044910816019451027735246635936530577862692899540342282847848943013218952010876540410159886779839515298030134473239695402047405895099110944985617310234973036194573460795324489131274181736305866578809394220444980390229976876958851430895955601196494116178282943338782820422481037483463566663584067647492914297980243430480411211879720580709743606694947408721856582605478260081160497491109076592083208206007847816099801105237625143612937080750823421983526921539171278685405182972478311437863866765634376683365226624115637525962290998679012356597776124495246577977547625896107776521574669499081223720142541680398345106572325479191796534189165729926402506950338960989461539407405826036757728221804274441675055904925046312326484147272022315770292440655872144003753117130692883882609598713995218263431810599400312629340138285339341237008386241478665089651899798538208066982729073632743054864106878842806785657104610434728038676801551752921735612517569310535384801122914989385393472205019049375075735410214685062548346063303626352644180707404799602195046792070024488778282008583372696405807407536123953981784993565528835270832546038145089300399235739729826499405366746208671191453966176875057460577352203578201051532120206370084046617508470079928555698729787442399326529721323662592178945109800260858935163585562909349918954893667105416411906292559262598525175528939902946056432948253910741706124893818607994293261145320893506194059378760398471306846668714667878606226931710722886205118141509397099503217340318551363105215132299635867826233821773855563282934717537285806300392653960029926777118886357574722345041538002950109170526124977304781234674804205689124309599234112129215746952628863014032920437238421139172761804627592613868311181324396939590563718086141614302195920349707844468879971336360724946095944891725417471165469832922877492731441528728543660699444020030927518809126192483129188039387361904736567913239327920010526941023744597309142688625060567059870157681514007656162697461462983615404477809477080944039280142050102258294288256951275353146741353742665253237085787175963671884186719400247167594398398892643440013446090076956984063148075935211107498006374447640527315492097968639325595908537478925294975781453863377152010184697093349232170178079202759559161486707159622055964425327132068299769351805889158067253102233743557985438641568791323371003140534319735605364893602457448367429637857517956146901757146707073979493499043713897593530051566303417502363867019043773623523554318059772017880383913033438507834655149244180897105106250083771531114586902312538149937855372132521898322756614534272637954227313155668165905823791669517996064806965561148980500581761134992258378117820321289543435383306856920833476302643349880789360111791017214365413029571487062005185271343758840960145685259588527831875435492767856558461391625198277716877712175134864448379391381252085169945693576771227704844278548400088340942473849612329747001883844867343713203659057948828651370013361441222979310004158253443760115767755126581175121181014192974703767386560297719755407105515703149315997418772310071139076421187740942385555295123146904324166857841275107437013554781105231663357265402402187687563931945311513684060666628842013851282738735990194168412035681010635632361762514813921673683811182185100767712720852256845092291815696857696735701432832085681959489880337913213953555391271395349841591535305554545142789304941166506304611005180304936864396592106490212467245021936503720207328956629244474538569937033477238536114040844073232594294489757882340626497602042925163412844727112062323039660622889869631823713758465849743812492104547389220900931326587831021051580371262323557551011183861591738236830649661701101014853658527634608465762206041276236071806225114960326531978641554786359864109837046657748513063308585709542060724517683239037013716984396684273149484465816672316837571649127436539821124583454041376686830633865231141599947201453808985039611902508988338477211098681036589117598125505240099121127107808839240943228980278674573766209986862204515083359157991121180477533511750384018846545008187205395607742569294353508115249900389788080090848558954646566484089068747119732287129015713476157123623448446016373327468955944843503836644776741837176456951566899606813878095970510004060314620372924433847588808525677431009544971162253331753974747433936639608821054967607732750617511552589294185772792975841548076196073970732068281866339438472382577234190030277647960273516190334029780840473637468995201358257159539975121702785900545248644411952728673193013230125144829798587367974685850493279892733308059180000254690838153220419117365750934657228812314204620960914149783345616321674634323497715392749635374920780664996769894378877216881960712263313099265113212356852848675425361855235075336055676881674859014155125536984734329402485630466625862639458653426787114492785659302376887059650582673259254727396653917847677108958468285232391491787300403380062483897536594970766947001383635550147859001997605425080930430252932859562418544141735753322695313643448240247533142285205338554564931973943141671878174468691451804788749076530799173366168477123397888355757252775294999341527749711484814532993961109568276417437935474489182867644261299483532412409070831245158579608268015677199415723605253387369841441289287096603604308262884150415464137311550532766102990307976486317762081413001670501641949559804438386311450086900619678459004335399809800290499642305043164468294638252551422846286358401351019813251802505588985014778369567071038376373063240353380264964109098292136895128949808639664244240675231395699997086762974345029156490540306742984405348831637952710289150834541120516391490236351721206536050574665246685605097104527336198705251078227050443343977840334414694073001929813637061883734805396776223437868234893111436656707237448660430549210488994854840726175283208994924094949336323106560614130845356745860421930462916870563588583140970965624113940798371046410345700325818001993775972844231116709624414841590573313988177127327528827994107349496393960192348165972615050874138771495807384990789019089402736333607587346604206789210583544799291609910208021776203237282497232502484308187800591473835226880016940457586062324250154004263518849496679791811479673321734190861646616371776415797080214288087171685060276863148833858019128679140257940299479994855760974642391365241171834895958192713169280752677144518760223361949623153835174256719007504333970334723380864447726857816506184273210628372672555512275969594018435203246688012785414271808379755292303415964186570062363317233482450443173806164375158458343960266393514829153718255549566250344303925951917476122355181031399901266717906635675395320982988770276078273240913222318795352920874971577162893004590824390940925428022717183068063565319589407275647774602633253322997337184065148308777296194882578848500406008468138346526898306788490884381774465289127421034604023459295135242062902056253073068132585110366509879659260315309142139540980025610258838347577292351500933450035670998407030627337086806843409721073236117467437389069023679455107893720436142342830790390265014063470591882323705018694718345565398729405748464606687393384746111418301848204833501185403413858948586442022325574483143590774231430834898690552513940725413201840532726171827441571689548750425147446944638598185788766736795088716210488666852167173439530604036228395950165966322376123309387359112822854770225519851380312051044186358966284273334721239866804871586650355945051290550513688070766493768536730722981443698338389488473075070324078352021847895193658343318067407103161478000940719396746539139654285039708882775708799425617823193648580641564917304798969513488679054817392192800676313621603313731334604059603123141725328789475235867720067748737806387804114219172587231298023476255701044300146063504572791595125175102806528143553208868874328865453384702647930508661543044315408461806550815161322912686572805865234277633697429091688371486783025271090259291568139782853676463506647085386762355445765367606860895228434554355340624190994011948228932498781641431925741121174614734961583057321842349105926182679448842453290898426587157642396858773590975579409184278277713830456318643369356837755847560778042096223246291266511692410230090798694255074647725073739993328435381669984740599015124382171162717197591544090260968701585986616286535080655110199134778110920589698882720072261870954667516483358007258322995233933498029035495655740082755049692543392088241361111754124329906677599220308655642047766098375457870687787284926056358328789862443549688809375561524646131535337735463910261221208897583600965317760661228623159800141920752138128966209873601905285483964767311351516220578531924809486125209202249687408806286617251488874199101644505922974428181089656703629666909215771918907885564547903710086041744713226901312919658313822167738466494482731710153413380659205447801903765633252840511248217111944049323452429032321826169177804609869612243832038401966295636261095259258783085751972645065916843035992692984239500835187673231136404036928979512041846673535473578446739067063532377089453478332272664854778294966656713074854579729387748920370797667147517079555420998021141550095622146769394369920332353789630616975489628979875910835801022723920650236512795019251062935717013262556421255150019087644847695004938239500519601148825577555118827162033096608794729355132622371323495064184157877666117888350390176889030406859770783737843406120485311054250730496370834915798295920268673141445067199467159099952411958245336603502131011865159909038512389784973618023161412036779160970397228857431813059860341817096813764054255015085768655096783248586862858025461368859145007256883272807698472306076274777587269468299837965608719016198161064268188637171292726022746889368465302414058686023847009990550912739057623463473522344707827519026571364232326139670658494889140992504576662417410940756490999816737789559389198011634634808407970089201468938477070154410626553209866603267189744762575435505382893621082333525172501418830717527718939351066347780884721164921472022178638496332445654438408038368773794614991866006771095192845300923041307155232883248752361647410609617923185091438331433088609833825469765068566990916430294587378763538048468330061893866440145954261811912961833331150476095787478106062924552930940390315692462370442197791526810190471979408697438449754105775748688668557627604189333860497166722179909247943288977037593623256643782773991584240814411788435286229319827705085282335837836125487600040278181134013463647573969877675754720508383369036275126670452149694592516918643933154443003233874011179033462860239768721544768276296775493524228286750517340951772001758169359530911032813732086127132827973943602973844691042593201719969215568632345686417825733536981595809697415948785793827325048646038780194750434257290345787881837403420245525827413726577371862689607127934670922597638642858179260915070963431905177555317219530751675504299923395744682943420678421934778719859399969785774833495851605725824684146507878938870726908650491511773774715697139584474076861699384736406442336482980513817418059461940797409240371177640074903055479501540404217526326706558141096807935676963233486080306739215944422341262577472867055929637170521079195315276213199399320317546944243971644458174581700603527957732173155830417184149670745492807561293467481418361747601855708545148114010449727365191402838779214771961770048501774790574167764383261547461022538226736172620726708186542796144685471377996361150172511433047897852140131149207706973596892028812688534688210936572398831425846797958366490091212748775699261691291819671098148151986872600522850404703024500352468743425624383056622417876518289640152408399792840151847404851389822134178934467775066870998475291452771746284724353544917169387622390761352842923604271701319609912644945738874652830442447912761011314184982239010993864323757912663329683222139006455346769094953852842896637986666464511296611275338041099359681240978668276441490851763622053488654962038734925572838663013842128785078720103352286831554024874520512822377886529969727277563816360245527381263674701990697600877029091897558352065162544950229016878478859616448710084332049490045609899485475256378723928879585119190773645096586732846575853736924140255884490712459743462899902246748302059044610574005415574650400239876025064806946902100518786291337121473019806205601743754773622406079894188512238511821735607302343967424814435806310305272672645929053139836274477262742568881641502488343587019122837950984981457067645667946448701513692403135228243525437638778254645362691728052847641807708632104368638375251164891553792547593229954094331864170243198785266934222591435240519032953974879673832398556412245659109176920536831611932183179782976308457139029295648701386838078750932846914283033361419221714845342274183742996598420380556515865446263580771418089546470978952511172574314355264446898484010857490735481024385737702376939636976761189962010926393304281394114107108219059389124297372254231979587578992029609483186138869481559151030715178432211702841893906444103383433289616174778777152597740102154136357533630102766319238190770659120542630105198167678485079216764961760752703461275837623843574430812761439743022548921820070440557153957640013890948670792521778808318998790601239890793081805900205701272601405686448374910554444178465023095365785039139607879239209283402839330594674322133193791384765448091909120502021545915452786796146480236546181213628587525893870594835749670012998577747891157643917568240685066220672343620282435985918448737520598920777520408056914225742457849696614718498052644240243486815072532903601545977013666727616058998922979859284817331145661158002416997175509723467698904983088883540671950594774534579164693920426901412053901087081296447931541269151302541861918492402739839335100085319562997742642047057783228009688771655364685000573328640070996040770671695440824900037431496309718170821897912530421886466881266192351883084062431181708508090207907231952637739904877303955633969206776510883406628287194754922883334299436941567276876479428585100530138943769884055836682188382995634855468728784942976570973876947706930345642938257792385933999234832815995646963296951900553330025214963295290350733315074244112603610756710491787661129628059474107629392722695882021913733957492115428953595681142006680639910111021038107370288900344564657754116116647249630470960652811972259304827489682655420314182665028311098680477023953437224393901901153849392024090074099926963879051908318564499134806790980067179926807296403394076937481124958911438923121390915275049121857309711480016964915225060077345770995079863629805007838812684936646693236883041138668157555936710947527810535943911099471128478930188647727179852439009292310601067574526311454696460226446329383946186296743760400036272658758483075925402312283469745818587620232839214985736328877794067891121907978707643064293849879642498591985806391119816630721724038544328765460526702397895581033708013599394241958770616325783875218328004235148866959498173387543849835970398629383515717535636813731499932760043671788144587160611375139086640092992566191727552912488389267291654490132296426485988439855637430989842546669664123178425938236230051736541670238763791321810863045237131858890051291219217509698657978278314840602163581132286641280106440701229796849929435186935307103422457234057562571098558699412685570801526772256311801580380838171497479654375579973057011710197483676546285674757225331605828192398504106516153166862557575309576447903861949441936677588646825012477684411022561098743495478073009861134860750294001926267902315795663362850728524614561209697904154275962560526679971282967585333558983905089021221319346274317668334126604586190491273369571354997521574615380147263301671458162249768129712399093191136964955285249560664083067093834719880795182528469433568515799150106986739097991740052202658031355739218891862704761858069002630587170099730000188556494765642350799878677415592483949338642840589037576382417834761233359758546110695305453191244553124796741782363980874133985950142915709471382739925319986017671014846805365103142428374951352682959914209748606250075889566848974541918327493329635093626736223945323654650097781938681672469706236767689395048151498827453368095561130846923981755116544307948358227081422931069113650369017973959122751351625542592112334562609661070599246583635585639328318961075436505242830502314635754592408993195359647926396894079141860541678812378213614503706685659982299056898235623327469915304171672485333984161217076362508627098714905053122896029714213620628677533323818936088361864381440715400592453324802000438432022852288897912268364140604314549312452927581932867092125610649718888684039697883272404680498998279908777389005493966324658777854950515510296588963969056214264056614662079598950027825612172092357393162730406500408198037788094729527308320238224803299896319537525884207540493189368604826672346554078714065944953621944789768083145031356769834113805207276634863523369705767759480489832798336122683456177430340870749610917210243624268284890180673077699401335923023024487082748970531127296221101657401993890459348034135410576998081485354779213392852280249821779285319126682590442852927572423910014865251694894803484222882177847198820221824252521898793784713886062938860134262760655499963713425246588878575067712286525626142572805935623069920773480667281622507362920858116214120163202414213918393041997398592904278518518442736932638158634327034326528602588331718597059626257379896509666411216705035787672978080846396442021154744822125017683355820105078307121078939002272419022389196009979501780472837901398929794939913815741502037610601126337687776547870868230738690001298276461448846469321968907301627621900003153634221022263862336678236295675546091359803960848385406634689690352971529080030076796659274041641582029300648840425889881330902878444809164183603786107647720230793965638964523961531666519106763261560519675052012271210402812011593035822874782694652870704132140844381052266379944982337282223684016333552529707385159180763615436497423015319558985263144575451216970642200265516577878129484337747717821677850332425552976651392387287093141900751120915339839686900517226924727805132972220761154173505652608817560088875527921260458779760549565824212034192950039646363522508114864800494109297693041530528768618827117703367907346492328351147247400668895500221934978212734783138599338682323049844485655565622375747298846368180957244334903883593220571316297868975685755321290635608420613436694229293071235729336615767060596590638573646372271419166917789814937756052584733121931418508915687868826614044628093741430039282732441621441944420528994377948023876307739151841781045567197207620589247661230086725567083770899720622718759340496184891131393126385377841113666457094295935817914787787747391831335465028864856751633588841497668549491418099302152663682615595528193618656081615062051509666855162468066959609755500200126283311202890766293453869856780863808250495959159183110937351195274721043677786511788567617690066561495134102665593945117165003261362991245762916021122819085587464303069764985835942737419241348465218674109807635452190768687992381391021830593298116176805933629868175243052536755786514796981157865757259707902226104084759531146769826641773094721501295857551117345520962902445099920449312409584978664669255400424564236397706088030757738606729902660158274431692570641223651627474009670166609946229779514160015836126897891995520872250946363925435879494365006241833214113238993468691580515047154989284517481513658011201980519922755810285898196661479644347767255452792117671655372949530497207854844398976843313594553505235099641838198945615843483513200313625905336862835749712039034974903223245198875370042664506716115861628514571572399012461377840550199452937516986314783111156543925451285461902883007640623037340636693995907393619949116181200622479666275464680551100565391818594984643513760619576990970593744951442857158485103558545923311139402038411211852411515922345997249523418501007542837014330190448522590228517851731181311066696693950013786470684852630392365876821606747910451688897001869439658227638922588239235001476756894142392896325055720711972607851516979227078104197052478143863688298793318176334330550867787698375585788932842232593971163604716023673187135711158195743793406934903546115141964422817988950636232670655608309099789737128143147827835953349284186278044164254199831112696900366026934009591784293659267038375242057343381131570666806749484884541795259835064978087322669490063856234339206083256131398925870677266343135223405599183378704317284635299962259948990319211256390294816551903430509543999036838672006097241245813445142413980880847202296095296927065579364181126865718574644434737298046658754103058058625854168377963092734633150211583523385678228539240463024723941726659454334895298558696996540176218237552758775165075141082769054070237844966588087295769492539325206876048974818239207690800047477976831610807986269340833071603779057020643361811845588847731139673424879527723214764970908630774758935901580365941751179543267289266559793670445277430698606599346385395600897478648532050537746219462453505078025528134205253810218511764993595135390896988299663813573542810207535326711668494487005799044467164184021450688668778225593085767024222060174587326783816086245037164884559377358967704075867435899439014030101886637636343838831423422384900649422436407296517385789261092703471358041085514748892663476086650419539132384036053339444802742371120550814599325825465174303368828000739794684667967494665157737090798580715214250177985771634456238736772092865527470142136984389757886849633574268087835887625698631751689503053408094364700989913786740228832809014476691145607898752524264519751228501957493367695943894211657510484052208552719463287022396000930893885014208283560920307928775370170486531472947982146453782459283051654581375391947029198022776274629829841134254971704639662707232952678288625637249531161419059095634898178665558817634697509364367586701036493151839912235775905319858856254417663764835095224970280988480414196372532588127942197755074309509959797091489075394955500723921770649749845327184810095489245612473603220215012724430425174941438685547930167446803722330686642005194096032715150531093360809715763894362999846684224391939787386321667841036245929956022552820045174164576199157648219352726653424270302980800289078107914046254538827517583163628025851390415361328999051967839558190866131922073291688402111668111203867158453611782269295484042867347293778297078802694445406091481199579198338274798273028625140768071931606189440811664725093169209739624068769795781429324629515328395628529785674619251970027503806652710112668738931578090509894471569765579461043826431190276348734326758978245825488325375505920768547317697577193280658808080316884914048128705449835892614945884855991418935546134330816436616411272287737676766382853893956174392039806098730819488752809979318727887962398287787645216514487501840249171794183544316065758083935869501675989579627235108827383861449948235774011924955451156329699695162846149417405380411713107680870738998346333484473048146784569271192198338665188894719321995431877053781808231571929290629858378692986495947673031328851943196404291360376854182180021230989738780624833884637548600904854208605183533886980980391567422816028982702137102010171492619032510380970533926518952481119062008218250128198124719713770393911855351189493849130659673571205534788265279316286377845649340543868808933115573304238695966717776498805334772989186120189165043923258462848395595320351848906984688533536956303166464364621284330751857429303254729002526598154305773954405118159419026680291514729813851826755887012423753061312101213066336079252060921332532168018347204937796244501067983322563757056629296225254358189377335064830240505801466836185846531711410097504201555067287999828895644818421645536958073084847852513301566367388039021144249603787518638638299419505320009499087734388658727817163533768548706580753176239860911324197185168885612902839265753162880637180475284029240218272702287793705293135634523978905532704855771608917994132714574285748222812442420088487232040022338867497165339619316392423735075559596664083249908077131087028392931045787776254267583626589739781447872677751558904472638803042937921280306192920174108533727490825137842738121195669640619595165409805903310970951474713442655842662441759338454880077270315916980966413509858432692113876067505877581409139520038728250186181803857791144791989846480831204098608596954965314893724596936266918403126874857270144030109872508611417743591550254845859644358748778443570200578897083927193697130414602344928441426840139769524542169133416547823549906587136284464798487468705841798161588110844831664516736998137973666924599130800226489985584059345807559339980833644963849247995599196362642625277677722872360141712848904062676406910031569043486092615247574387363914254316648320274702396626816340008031967953421733393480656055115406333005790762459068204686911439669662703648555449945985416102268369423892456656175910329317234474246048392732576669626406475785252066059563122776741486553894782793032258656085809074953445910439362815697450225312338603011199196681265454315292408909078017846923172419151559877507576607277717430666878716690531279518334268907923731636779558835252096997286953622041264887340151050682337771326806501702025297826512713585579211185898401412397148141716975090094432874065074910076326203292776988147736781425456372085892352537318555447709653156365019100709318515422505148719639479485588534471287287324991987805797616864437315832076974749041616886643521238300966994921983296993269977788082463950359701316025838392533962593437634029130798314261907277658759724386149503930414983450099720723281273893632619256171178305386330116302864076662131509059615154486622837339544427241027057465121306310856425667240645794628889766095466882128711068190273904121586309467575952677048192679052326967053972887002417145202689475924561216384129942531253384346357252267579070038057553811797291415045246544359774030550678287683706057973030821107068784594066929590437279471021344230510867108129028612708643529743490324975988991205340742224223319133171244496612222125726070087009545768802211505814167741209314186608779786492876387048267409451128381118646419974932111301425142680058475937382515404588044648469614659777662587618166117233781934334267597940623230717080750277414394349077028262601008981311001617736627805712092395583201401155939455236903300684246451060948520999265179435382968936356903797055861462519818602019394802241205548111780453362202105627527473956522991123307251157389439053620280943306354798655682018710778119379708648862667401565547078110959790604313182056328135587845689627046311768353171083976482916407940176446049583123602555412395393052032230575752708543776160638586288103036199308496198944023346336367653387963206786582667509569755453380130346880312364560257130037447319630003688650206659509527211365555447574009163113957766253951075625647106551350789943747538374769295199023388543082417309590083746426711128186017275116764970199639426749060409965006708085967785919802875830196366965839020143553125821783411585616364010259619037016143581377118896347619026743853987446219435258059845033515829952656813474399538969771303151528700839923768090366655884161063461334184030492401678856908618550002817649417011549695061780163442850189845017058114978671217648178165955207668722616527782057403950912965675847836811568627802374050072724625591783094476651337581358609202500656042579543101074738396378581521428939310531556508168109739571609767697849026891246894469661253035453781636448465760533456201857239255709238616745169644550878879321543583874625357162957692131369268712144796024910634670448356896977189318103404225721008538181069151048274298167350219900838170138080661478199569416899928679939354348117187451409603248165032965851937645321228424767378085946507853891675484998064038922340275353795825244001518998674760085734647531111241080207818932735708604723055762985039805093751320010063273170887563499177688570977781088717412220618322250310102884876839518371475991650948824294581183078214681426677053677082251778640945466128703662664337032260261650754388827815788115519282074046628909139567875231049707143252430002403651577300004681988825906973553819127689883185618627239035769869793522673738878258157542642757513892085020326459636600333332204494449472070659650120283726635738168467869338731980716025022043121745099479432695410612174415770488169300575632712146066795210788857016211652708467119022853523120327312894289257554780884727635274057831597602622389988198256839301775676764739805285857771092216273935623755272506357446952542704621661515648336189909042350955806947227640901885770629428189635174185806765672682264855867602448658184627270546463135705602531301788125640563927393314053187299143889677607336474104416095494368310763795224119629910640581823570498859318076622352187589229857316300527667486958097577225958774879247066562785230174440724982828012177940759740573187403749632047895513328103586434837455931617355775332437842276260458445904609596055258738622367737336356349438813184623710490139206281928968330343525996281221883050937605797808558354134499476063849423927526964988232601832769585977012104573718056344589284507944659772350492742763383513041943437743215914765138934812511964913690258981752372704545744277120451854554509350426600837166769786193673509197132062911313636641711948612211505964479918218739794326366292890578692864027611318294107746578412118487232885800553672175285223173266639887616644857293702229030491695546750147007737684340452853648437915154989863404259001186000138075375690156105237639550644189712508923618810427629809897690818198108939259260465694189544122971430256770252421438887017052309676455489503308023164611534498159266433104618912329367880146608975037648486742345958440388603450625262684023619502226471519486137672776028016222817695012990816541401796676395499046744860805654211205636810365696867535112050420199159957738486694381196233206009010237786879557850242885201206989569135111236683813087489865980584642769170602555318457337325901999645133269104097728645246753697603210064742504680690031350605116041091221915643124623709671985059689640907219607343754794929641750181100223133402589209809433694641653151046296304381500480452762140294432591627636323280909059097423787428269793978139115643306856000388415007070049017663689910282608809380455531078011671108089792589438500834779972799873354694676901635864768085868599158383952783195912964401862798762334890098890189243670632684485904959725003612096920053245328247438519303617674860089526619781931562123693109616887199968773434083553683852619738936571309023832237713799037856964803559178765938641740601868872624643135773887315860389982712051298755610127059193501393109529674830495463637550255220676843376736011604627372429661550671468925125178451586042223012079640980770280227680074505457707881905700894994804460327499902955667317639875191571756277719354609180854456877293044492468155590777889761316932346099575907253992112003374541204498040512902021483278400544106363334147249182438067735526182716008423398395708169177599723436368989703367686930201844979772476607649925896001182833234285326037065190721178377506123255928784191283140768683018378528503916478253642238695556422889525469959942959239291308396541391245442375964335386899590311927869725535479883469419337246564385309389605482253591491284794640879021239711763584488846102067182197354745317766493146631598607820354818335091310787949085857505280982210421309302835589575402160572568603235639576408299433215130842299804781901732450385339300873779261497459736596849474499472545232758591439659508701531726311791694957684719841313875686803692821301703685268820982282802619652029945280128891724817418308541516634470856449146412781326155467479441928347208210351068585729670145511892624744312513429507320434653772822659686574488257300735591981389210406937433331254660427506952082060038577442495387016766762264540706556488951651651382726898107844882716334023710672723119754308319771696245803826376395102193660394540647462155290721340498841073302355897858491375362857063932280234594294730893390462365995243565499213662655134793306683566852344194643490089833324565188640226745178063493977022004498041717746164561702447937868072888008228732981917672831112540215675422679227538643257614229510937999940888265968271403665775735386813799162250018982089498801498472078889679643729382547185367667465718051619611611962507373956972720839200319349995861065103615468057339317449344053878966399784755924318939225006860293247670190192866111971437986870012199716478577929836805718512171788576358470691942126373011886991486827237331759611889070760717885158850782114772557528574351266129736991539891086151375196474238817593048893715312401422160131944556751352555319646109714707125954726996733654241950819068623192878759837326271133459873178595715384322454657448845185469513474476560713978227972426744208557268372261411460544622151207841170629808923777507380910242448120572654053254917324713133061520462824674923063943306382862798576641782393803928016269109924986849032410447692543939446364661225620515703036016615428171593647533768367746726206603091367212812778868118870074131246672247067605209005815067152718605745241592260028182328265223396784791301097267644908526240585988656927019957098125181910261142887910263287663249974966924682367068716620645448277972472280046085235942694038938580002299284539288761989212526553573462288204716638566407621812466430495049546028915675687379927485917669123079476785083623495818404669034144886312371731838407047990013923761293360148616118844126741726249623710193099877602775272635171368433816749259719539422579528626036608991070110177081710996574080615335470942143917807743655409748199730260515785940085026892735108706112383306281560713333921987310592967556694782202603130317506940850048426833283121495171169386828268944160787863831107063587968490021668464414303321497108825983952058369153009116254279189533628178327384738960507946024481043519356593111698575751657335879660289036252300532926998097336486764433020915114854807208050237740809732155458199423017351658707359392120276910895757551071091269012138870869199690045677489120742572488377704318171443412140489501809390595718264655071929847346563627661506034512085411278864762770285888532790980980154128568825595837970986674977677089073360222271437495972047302859485056132935252212867464978017703812368626762209685478249771383785266042070842147784159673488737400101065699746499392482503420500251175965545046608727968517189325839544817935704314299461409858098490427450866962241774944728200855671536863130333731982154735342681889844308259664025046903900547462127792505085182035099649679215250584097712451787608487296019475028849502538350321363939715947324025082597237633405525938364224959734845696606598748563794173098373161052046546531394864608620898165429681849468045316857281007938024419755952144628036461989514701942581869230567696959612893327346639171013867621057220221323213452785601911035643734778392650089004239210661417708041771468026407921580972253194841737173178987394946031545579724814247832733887133041391139111711761003866282960655552469833299638900600237274556761722284495371020527858209291396245485846501291125814185083422166892584703344310620221989071387746033248758402378996216757341062979692935982667164822234916120878593427342711282000334066652274744974461981990349263868219130471694137063176100992897590865457942348839738680143105018763366117687847763349276608809617412794564553021031799869459287550084688151221891577255058659709784087865055810774567557355987539193851010019495414273922333283634172432453670519593555472019454284541130886661076299398138029791531819962840491945531275540424137891112450940965902134012881946683387098102068820560468167168663744454172222227392277329348823169603006640048147951664051479497232564301950108882705183206530201079014815859680558705452081376406678579202524042214882479070951622579513664011218579214467934959937579749373262359606322716118743533580761693654068964126322218615865622112542977402173885228074835308556088152237862475994617523460878338962829454962133024104987881667403607244293397179630094035956843373315139108680542987409187817644402038421391107973071667622996692403677787342911463954241160972232590981930859118733816264631041616116477166294864766539531049367051418069315219277028231493349270309907112587948705973115792839100147185015483853339985792583966913254313498330769017475597338895064309525752655066114274694889719403156176395877706187114672043664065838307837984356031734276529882104844043789907024970124957481399519390513547049081245833199300311307419804852344152312092457416966411152295565105289221444169437837863944950062196047554756303273513303530422315428525263693071949139341506325332152009842466279068605829890057325702863512469112057117451093749958224376037483776550681832680530314629887375686112836697566407541335824965115738131269678229702501681254849732303395950710176633595075329141926667917996553004768351164366686168781272092716830100309624686380939602051267937644886468562660665192978338633964770298613134947454577067568293490287400874176121169267463891001789429651565531792204583020144002463439618031013763351797006844409781408040372470756983431984165893501689515498371092153367745560434209687992318761808335134860239905383791160345553417096993889509203623402948541159960851575128162887008314819490656842083569455942526110534976509325016612434080205020969715501708658340539129050145995255982775548289416578631401607177861880733960404220580012845017913507581903942096757960410015951101242730547382703991413382672303660834179984051087848122964630362380127648937257202992803265901457219291325574582953772944625598770986889771908868496240082132734033637937278980577823982748964590217829513145408158867983681893549996404256273851838773471378684091681441701367948262920775385229031907553624819666108109271108437443301557698751742254458924991265597046076618383818181001314947255362484383869529542715399132666157707551438004879918172179293135362866895792680318235920460506850611229432086456195165027110718360930897652133487720730363818212046712071706046907448366877339420441305733484722378618171844736710843579609218271753631362828500023745676388058802003899197597825683213307055885752185399151007752009191352037192722754578280716778447870847157872143672751461320950873863413468126045008638968478886082548030343406781986187431408667873459351696944607474616744317059171187248669170358116951918059719224927220104115654186312413724601954982970100912531812895715845818334924105894880935388055548344186048783399598937366894073836665418558425755518801020118150804785198425777803380423277281557908559448315562098452287457744188404678623297150690144846043056203379276500255073958003250756739458587586474711640281075803754889884003620577782876580229975168495074290452501999473737272735180673162421403097367615699069630852089959742943973994402071246118937858245077144666269364454483943047621000734171391466154181158083764625268268070411178627051191943477929041351466244296390572105118050407504513745067191449814143871362751956159946017802828045229378070178212990944594811671442472897365766721950885348392241676589917327451874030175925494234628488409596981560891245225323187434550924089502987833951494243468799734644146354381825609151596648106500522814346373159969072562631854043413297879747876917962004931535510609666450948139795945169617208347968212170272034244934865515982420196504576120952961194288292381933587081044835381192285163649256213695958667799958664333516543995904285285858952048737206656625792385058948790882329409209908634377715499966472482962415252376502880176848771292736280213777067977554970933100445253082247903275433207646506297417028460256209435341111020680256745359020499291889088615399396777950732978829194757147029279242216418866580645506890092136783797360625721323203093611357125109863234380393658504652617579211900289583032881734409020193059485841605017742783371283298886107794860963785772807462041068039491437750066318702006879872132611472042365833704004687461022908308594580123257415823523093088623400184093057745129344747874589461291316169806586850169562504670088420333198549213615506957751020028128422015272072069502830120084576582743501722343663152356688025706853822920741745930086053164288445673968264754766029580512127947412958051248900651731837931588954609664936560660045069169463774613333725965980677918051460269662000288739527863160552845456895046844634171415540059267125377636031316091895556735076219851136576325042931427715587411605072162628961449048635390570308034479576086622024035179800991164985019114629921455644234322923138942185027732782619852816517168438537805159348760634639215048453428285298695975259272554025581552539253987328259632123668222593911979315216185255015615356621414904152393803130907717474946045903974493279520704105581694055411119009480636575431012587288380290433314478052419623964776031619807583702634749107234223446632046810322012397735278398759061693215012328473461177852573396215935584803988078333653001144717833743164241091596380743087455092230935209068555546463543037969030173264473152569137376052894717310500289014356265974073296734289315690524617480775424363586765050909262152311750993268343086643583787062186486017395372097827476547349000697262453374747322308053337329781267393320916139962926203159304460812968821867800986095067272290092597323706910373425186724876307976211535633596087883992115115891184502670233108784276148726915302629641938447420341206514402483407956625275224946112138513036771134749565721114059877980596161613959788617558086013692993029993603672317091913250199759048764269321899103173632739183060087485995776744424053976325657745242968429143877119176342608399567610006396445504787883709383243612433221111627473523608548160095629930931668255945914870354700935779479763886439978501527987146946117861635533565089852001803369953674189554968899326143549439368484115772292954237720347525498091455543364078731565720678149837633480101452409214947646094009066771851396319033517481615909695434759233378161968367953151802341766201883551411983475606565931201735483486544635091557951908612939664656770969496663033941921980665597570665666947989463296556860782824404560160145032701494107441355050042970522389559968622431150938381400215195317791287277940024292402024116119006571096444882017554180942072046015303899568451700708334504160583079774265259603037261399833978321023202695155160498423250746795290389227036604443011059568584156571281907993559775560994143320485216438358352445036395605549198606831657271028324498833796213558003988124186927883022984732814900969752245823425949908468333219159353501673693439615622660642757487833372890485064230997538847415763410512790011268808930271003846394394914876007743624849126371585999523755840413407557317389350738087221325783712957606144107040767219431735384399338742205869648109624163713435929634679200532001346056264449854985906193037159387109373391798080278692708386375113713478905222809468592219909007015053283577684186518006076462143707483041411015466209517025528339275595449221919936032641459511268740850122183739575872120064780864893882795640603300312604348675045385671630244579600027988274217820533946922369072418152982241057776204798536856092707928744427918001537853551550663421331867626347624141632729286376306274710951110442330809372544082261048609049003555916586645527587362900116059331140722149894702092951945631098744478086517918938761473004683516702194698529787870517539860805947058471991160430163542218970431887132073993791023775958506424328870265113064202022893771366224139553267851859687834668773984183008968471270625207638446286145279229132238961636867475511994316948692813562246693648937222397094861576964963929977238591607959817860678483770589983764830016794357743350336245043125287869757685942144876890498105962108093946481567938682963995660085181487961364898814031807191084969702323050123181019186966815014273976474492328423708804047647396639790957888540682869066337932162508092852211402117006502021990106728449358536076956960933237463345682845169998091577118174719865874925534591872240669387690242014802276083062368486839752181781603462160335698893750656073617887481165121526673835416027958890244391840027606433109196763076643415497562747915896506610950398116985896332087968988409879864350031302346661201510481910942269287328403977450300163119175512638361956597736223784461983815164923584531177138142762639018504295440093258381666660106086057695904468044265092308879018114904234587415502790174459233569554083752920057870269849754927700572226601469286192723068311773966878348371583449868479385100015806184009200992614739653522649937040134927645305744696398095852278931889458812229251225442706263453618887032954896325183593548474973925027441158447423196826048757500431297142169183959976240970689272103318691989648705033681735257554557694995525920488833519335878662623668258020679531643983302086686563771450085461822761972357206473061713256516795286651100771590101120063763252359950064482172099437507256180738696184757200404329510374587662175416026038855117953075304935548482293980737981751850701889129460265373829272303108109609142324640108188911688570556348509024665531338709000058887834847623775869431542451627443518602263867583971226614835524932835047246560222520410541414203303886105802326564323780852192973910600560171987141721384739043545404558969252072689268221550414452695437181855511026429333374431192279562289831946224652530035360130632691839657039524924462836363018728809004002530069192063697170745340448530001067080969208219416102871691134297619048145840827876936251204449422528892500607780865285161631919930941783848379895670612502210384157759318961884310760307307387040733348536005854204985196227657293864006823898161695792734467344772214370736232869899589086890119110513163793964450628732577513809559697026636842957727241032577182537330566438719135399210230337703374990017769597650537882760860754772852793061952040778081942100726634711325666959366665223564192472118816262726869969841794004188412154690611798760558576636952968005790941273715907750165185501675185142122784827391710199820466526859752421923292965863208547358690984817010973267988999031170514519679381849881710340901927408644726209828046847587018011891574316124090301657168590290004655245911481456260438222032666060158636461422199453882731310749674423858480373018974698334306655526971903530860545086129911303205875778870822081728993426112763664010384806130226607511783716190907567033664298278975210452992267817017304672217689065431831103742677196580680441284013508084202895302494248322338646700642897824198999262204986422664544491412331205128160301763039854296793585485129276818145301265745729781129750832299372884970445909121656169747128931183738068207863257502233283793402902187721606856650177402175401275423237768162494799868966312330134706079472453127740225998042371564023184301372532242322447807383898775742759826796849692533322431789453434748049631666594390260616353257711444593143557493042605460857057090919692352630084031687182246434804227974158457747169830910078404082673960067653089924130350310851217709699165972524020194590711280734244158706110884898959400463576910087940453502742149375975149293539436718046027628565761885800207924384735518878644508925661881562988168553622439388640216720620903928803628915360719738978139569175064561503176520063444081975539744356320711216975243230480117505931219788034719756241696647106864045914307949554298478854828726812838876843818377516214527064803307033311750301102217863434297246412621287042989805913507095522807446637719808974259687853138098612992711657214062317645169731893913103150336120331232276232114200851603015685697442136526407962363763157122619109241428256048607983561765028180269837657837403754265394565433241936789536934417414400031488202958284595042920508840931454964453971481346736355405972575026113452279530450742045634483460558244516393265722310161502823420043587848128727356165094444251247562025546473573709018565484510934822602658238595277880654966199563212199278542940507556475133423926853904727914172153118461672472942254138114500373813904590685141154170589304455205561279667464141970620079844931751375537999899131933563983192820173969582410278400813692878689485487327844632836924507282897998151089464566275938808965189846508971212454284659080873770014617240795827355518950874567561329257749264043801332013848407364600683880945199351129882656015736206784667659634546214110572483401279793873486846004099590629610878840730907533998245605348472806184498052381993562488419643928921002503172566346025553220525483786865030549275304500315419886135637512820791153338404809464198952347376791219012223602111514797144670320900531333224017136908590711994791912128730058043531985792525970655682628145107621682132059807547315626924813217394662055224624136799799303461238085838326052672825509888529378830307832550858870440506819314922041745904233950895472415578779623911492120212760459586196810657561465633053631719140982629989007130882380441589221240219397153779468272125605792368750504873761165100138132514693300225595211596773985102363101120295913586932775923458561872810097038894991199870877107685438680829192953358517150650828768937045777219394630097561389143925531566723533945056433835066719449398726630436471120991960200265823062465821071273433124414335531904603246830317495587138122368702223576040999337635901910539624343310495934069185158728406972930550529604524898328757976242863356491315266631483584159445133184311607511106221372039404450359252626890108001328672655724935849301937709825713108180951348779924339660951300009888153060801200380524801247548732157306420972410337040597318577515094109572887032362326555176356821727269218238847564417390486359037898495829872478868600765740111094972796889022960540540937787002777657121271620518432796542927050213773511345925388658025762623604528570310041791608913523209430285908817866099822128729031017942341276642840492079133749346012886438142338306974337481183744058911067497127192002703754815319225385868535792443521164891082653694538036806806762694740848587099595549144947382508921108963440425178121602018380596222687662790946793475948556530297307012841855551662404287061838058283540272286746943483600750085337078174855865182936563648066895972269972300693180265125123703717001335921890396464733349129218096599312440382001644852341583796525254767254173729261771582331496989156915695685892976937021652690841691535708366618449930614237430385904361796424049476921808433035670334199798028566735670803382304301815717883382784138076147203419078999628988006816983487248182235341597625738755551705431641961300225821691654953755465064133089713074784433375892358670207365381834902792226253457750111145465238987701219161826165634623490250113728790372998397463770743915911730515727961424295242098661512354267675576863860417782382610334558718617153263716907152142829585752694894999764210361160745681801039556356285140719142977349929075920687685599796351651862995096773619522493416870997601047363894282908800014321214433163864113480903244547293719953539907445050998607414704423039467052612808807362047594782213971136364403354043614116087787010083350360581968346571193871521584998557954127153295563665034748891686482184913942247756838615739263331673565731090933732975511394538500014732939710507034678782699992957417934580141835129797726527545454038977172846494050559000613666742047477496995251956211242352058944871873273776049151560039913624929980477080593845395629950772072439253317977252218250223417626082991813624945286708085064085265023390491346367110530340044842569144285422713522532993661100467206355076715462707179574109299670794368140617761754477186150101615189064131869597156073926245657206788855520446634714670231601891739963172777439456039550662585863581975796890649347627258867933841529446880228934578299137767221087184515283859364278984129638198826030796081407813693776154077771565115438112669898655069054066954647488108904428194351880633595637713506402089486925844823268428779467332657013318953659835834129928564002836467944994880252871893695528637675484326743459273887530513972671005868823829363904059652874370159080932630972972276520018694074567694066469115337938581230358178922511883506518369828832468740773871541353304526457940344063580898858947831547530674441750331787694816690011621832766509372597140132169525284337447768856916246615502437795611037182815144736593210515123503853434982028838567362694591227882817610837810529698844071562617756330083161100871477970049688930063827236472391454213663124334079974199646190484440296156885699957022204736549737214270381982840917263940622200847177366929754301182404264296932066646993685460000350488811855996046361416211126934567388549454366011198093460534756338100635403270428047536559309251125717277643696774173632466233564265044338214181247804485492083039661816864669358633143055422507785312083521328076823933186726850054406575011090616160669475324072362482336221713861420450004483848341505067490168879959180088025248973321886176070454812062162214182507479797060091622407892675362654318598890757186236716589578222892980453580269307494258856341466202512209927356824177874479139215713691711605915690622691908169292822798604545836455874584083620838982289864609625380625235923608199955803704365237001012790336102802977583628457073812628288814652686079947294751810321526112824981901038980507713519834301562108670730086302394585178085190584935342736908984633487678783697394651699383730684293162291578840701017751492207037528870628024561391789032323046524090825926406997653594318656250265126457332593271957220098377923976458517416962108163246289062890788512918391647489681578600919818175598191403948457719045397667204831085803087527899324056949467103809974145971816821744933785291465553067169889799115720290406595044272625036067431970558821564378317709688290334363544399471118889764079942308431645785319428472883237403747186501516880099325485194346746328451054207326553825978763143296751965722587988667885812038475644136384860718848160717928907348239866789925807791627406443604632180022612477830363323096259590202250935169093395366281084255188370788723250848686210527646140200663064762267198536547526566333516435950809423481904242841325962043665664226168241328157616218971970701277820477900847200143291751108509056010388489216090777196249328682927769855740292777603555949261904138228271540765049673353938165941619582426465366901514579905881741998219486085114097143851080038891829256770133871966739844486219693976355803697347774081156046075853684478395761767918947190536727844146069785842773775570552184938727020125779130198431600502345525768337305073463505452411443403410917996095409291033811794933076903441807220867593052582076661491331808500676951294298775197443042177754787267351235923787180528341376805183972547632936639078655398924261306938024320465223458092483287052085457122444228551274940662763113789322826917057637260017609775995177583665455879187246287587490677655399640246475812554814290022565103818320684050759172990910885801764502564956014358989212053915827896211279801341477566868280588554257345533126174667925193263088090396918254472183913714552634709364861517892082687046318128339388894072769639040597836978712061140675022578933899954589446011483648188595841810923946301521674417896837321051975816250146236093012562504247290439617396181363191117481653660053848626149469873370383714949067695076212068869718058858277295234229455915221740610860593628911770323929651172855865723340987744875599986013276337167784485096536901869545995541660812255480653558157406252761518146019811283225725058164506897248238644881518952516846476807499356948738646091038515817449791591270218053259632683755804231986527449801805723623326956791028368499521098500192056034474201487051942243734120043102130172178499298080571390053308597626800123186404945903976018641116684070658255492742018507440341320538690220557692327735663586608814106066394193197385412793186532144786649225454312388866129146196655797427130817807422313423608127227572900705741871885496245282753230401192106642637013582080133105555615640381734390783816597684098153988290921624428621750157738709653848449306426482696429470427833826276536174142322597587047094590421823626769697502004735748169576165165413702041906367263260378903097348288594226330005802839883765367516268662131345705500138787524801790123678958084325583041298483729298038251869169462919176553528625808340685655913972207941611450076750060449827885510618036346882816009718878188181878059434544982854318595243979967151358184283023335246996493408230971271047616130477204676653973846044020274043841692946196161306858119592208069822695128660209541240290520133413927276611676875925049146247705432048636885241103338725493747853167730564976152351413370526070748944249184100559629078560540166034114720452172225088767045657378905016923370537956121525149716327120309531601226426154978081632126191411150353113254906390634796675592420401750764158081356423461728560746966478291460896665846328986771396222286513087304591658134659126768512232854979150887754393394264283599236262777761382435571339395485574496271271125238103596660707441613993265014776439362668768856394543555608501462128601669068485924612331492645241345816554735593133514435554072819346631936762989659447619635536773277744537941534920090752854353267586344887841865110424125012088146940912445651487245164073543575522356439712452963999442001743434626896225768882363345844019630315648085051142971132726619264379481996777934751472393637374867618465838659743783224656902342634517315487491301012432650810165327716467166862062649691981631958707722428745211757933664219040545415496070438792561517950506599669631147480657402828022388656971821464507256940124394263895090787282021511968987323853167344673631325610509098322839359180538705279603685733309387985553440048814987108449895027549474294721288551558479282610450749056918150716505009817307829628134888475032403078219116400944471752166587391226934944791481501761790865609519216387425601844004922894986854791340161612164104104328542804087153977946107685322751551159234636137535053920238256431197372081463596123911297576673357620373398463604281346006248838230024526604039632105003744036753060893759503124161659961720982545863998022935445019462168216562283522591868415092539987493379207999223733780286632179862805389350255107173461735870809404956439044858396483701268713583182144136758969946027065610151159576199879189611203066885226928453065224433916870599965246951665211667957295626681785608101939658362768159103127830823434426377988597955007412180407770485996772555959596918133952071416520134630182619474076000709543391885919795819561782602351498454109073397480125927690380855449832666814217828872154378108030578322698613228562078900792814396260974315877700154265906179772401063728556855859080358199051014330442111823151911146796930978933399054609058829307171330518432185293711353872089891047804502075946903090509580856526919015686249039089771856481149164849984713953207419940168235963225347498219650395726287281293898653030901745335652969430501182803140590593589493333213127274361986117016608248345581985685664147862696543897429765616602776527696329447910938471941901435666330995900820291877812210948133080130890397564992601779933351449203306181127133629573490048259484431812506235957382734729231174144102069698444367752713312751706424270917021256953617930091254637633476743331268119911382713699805748621228085947555881981025286864749547640218648910829739566619645719494435347696579513148403696196340166212429413978850341297058476016250273437865675945812101352334658747994520998736605421408744131800971961604693516000425666409238540944862426848280776579520584456676377936364533872067168969989917880286492753293179378492899567407942374301204667325726730118187411490298269508491850572415693812934448369525530023068445682235091284684281554687913657816314121157470920920973973039493709670757251226652405737810787329018674425157732170242107117257197700242534304323590060870743911118948830700127151847636232867012476465965243754374065435965639029060816039143784599875366166082829911118172632940902163306319910188079823761577840932141815806702664548298806542968792170423295260274784771001481317940914945220258170512525829983406402639863400949375505811950230644144175472040650872550533399380566922682811440869807513632686694556113437380888597471274059187566451376237127474984206924541504874049987738376468430317239359508603147016033015234965495776454664442178296696916647318375801027068046414978806228507816847167364611420857503297479556513237263876926248036007678291352858288689787114754568966335484199916656126828344972948642409179298077608895009856909291596762509740153832421887740983930871710377286801215133331415444024722828007733254254160572802796708090567275606558334225521878915246391723703984013939580525190023947184001586449171496529496242645257148959462089340477876241684324439811613577064351806014487128719415399065996787285671565447249919782532278786543299831366274118727390980498957154438592467033008013303794060564405704484106649103215490500331580982071073367516781441468882440740246348470031659424965343381933619605184090001403024329279305580804496399907415031970381648937131345459427005478962006468343203580616757671198862188113595479324797868632484092847574074652814384026973360647577777235056295865041702749998969981804324984916712103432760280761515021981660070450382089864431225598832177511039977724961926145056308037313483637238494893724793397464772201730882535854041030281149220642309061898408104667822573684020077721127467034896032775187303987115932204607477680330891321570348325399193533319629677592009807019221899725089628837445263752280973963033740390620542475097101064488843998085296408309179565801986703586347767042256762932659711195841594107550136342350499234130225024437890168972357228506254154752815980231666099510059165758151308853725319104129232561276624385397865780659038437987096947410695673067856611877448693489256784243569658799830493577765984891922203707131521617075546946231219883128748355809439461525032008002926669298718911748200775969329696552867121919857992511330052234807455120603339942981463278279510751916967598397753537520256072859299798647505290401083820730207019409016295958884414272110451889948813451462037242761599879123914878556228107323922261970981864804114314790919085034716781940854349270719488601052562336761407848917026013663393077772716904060501897373709979431114533489517015376793364283256262765016450100926955018906938990023787441339022127795646733284665727666539952699265615831695542315307400978775218235585233877997134672462127193439929095900606225609009321250395692546965259763793829831984044892042582899251872165849832985520923962817435676442299373398884474553116467264372766345938340878297867540826704690891456528523869129355448890973536897869305524013440972035848264912872410409808076904141765532016583321086943061183284543699825787112625776016071826798311548602614990874157141272243039319331812491518724443121470550940380122213945818302303545705319396187068514575670984731790024241416101804294527526116765190746131982984529258414601211258775192256066950859490083300689165759207822984464082369609047192104023360120609492399702452018144067543101588623099799308958187717951080391302149634038637131290975875113170843162842599989402648885307545805465583728878062601825444968451097204598157968251403270511586472182939207234654964009648054626364043193135136402874028103507377209040147955241878550237958726777085217087411574857161117331251261197314620141060166430636603670988385938513203486950717597843158245901558732380451278932061229103469428243276432183934961328458948669738398310902337590375745093793236946944584082447904464115165773923458036365639829512070414687967813603473625535939792817116708808945270625959914334897505791396635388087893781769757251225091506528603671864562554208955312086434577999630270674556585327780235317880180735116826368624336348493474063440291163001725673539324250181274668367429355379975768118191629855340678012389490317136452510035014887919351841316531830217178886819070058193704518239416539180272732526867598166752723356190831366982750637850122156776726257586845410452029692374414141105603588626520458827669372874200600751511203827407504274413212717644097892118083752858501383281055480441813648975545910383387714923967534447253510503614739557491881196154611398354627747508209037260826953700651621329916546106968215693204708195479844735060566062087424039571243474567925953180878120666233383577506020729401613816981799076148393097269093131656746364298825985584215419933649212193659759311065316133325735959139829377806143077977213833034102967010228141461642341028676247469512350770504146188962976366199555840299773049806524049741137732974850843620186474811804263201658750555427085284472326021396657483853999594044973352131608778139002191053496847342350727806304043720433989407031483719354711583698803110367505717154182092132482570941668322673657351161289684634575101781114462881879620225233832257301237546218207842842395168583044477681535538285070702313856109037294289153398599088110810130336687500071105241106752742309612746147955284744638483039772364265995973282598615216767831001580954927356299756964762029721557998839132853914736687224839251485363504344097984891321172108993352424799486818978298463090506958728540387781104527481049144483243331909471074069500618915946600741356555996088001255619274897391826877633855000929618751265788974077011296303153355233423635094833402367630478377832056550874555942526070107688336507657754141120729693916765065169081220528738288275914478015778552039923263826254813568700183319893009118954586496366085797343440505867234226954783800756053117031162660984566773491405937201218330284667509064211696266927137277904764385218128220441954266262496791376644341982466855854227909661830809553277037215276518701286232210367806596642633752922929468465997687086011927017989725944481103368333001035124026576960380459191295335084603720971888960643275995214241376598787751346183018726249278522281989201012667712674283522696141697762149324656931381301306485100200644469756093533923820681061905942461151940383953453219168228060148227148147472865452931189321971387656270709631611968128868761533801107785474875185419235943445441913099263498007319810886058403302258687967455849116828536337111069843628204294901329501855805238545264614814540731272628510828731823947342425642790562798124281506448222132582689963339832787264965410251835655287081249201551472273330672896192672416497595614456927705680524832189057706838120957297329043491768341625329128663891475242358670498854334383152885694279965397118442726748599082457024473802171949733878525977659044577869541550895514050383128630366227123715621925071531353652218949731110961734762489722766823641735395762571302993638712349246173780753481065435370492702057883320060717738197011509761638947517317538941613689925408120898653164704109644096412292553674061691870520129434800739379768401127338792761838969098377341946158017183071605270966983411592932018649779687216549812263857120575297400012882994144414135886996975219275033667291279764329000587826627402659719166112671935741691039923113583082454653324024960646000422135578248031067851432801860358539747877769530215191219149368507628549720537835210457024339612267749947810089286623773846900866208508584530383983620099304669629271917084723601595456939170604591752304736502123467357502450759825305111111729578907165879071001485208443110052598201685642974424283102985952441407168855142324032463846876738618305042911300514889295353755083485584712221271251069981419894027841493144535882840455020914826370276062619630400445891505314976212875687403023569956338924094797438700929172853946568196405583804960766022545348827854368364121589263155343534099501712406928281757853956303723362662516189786744290252004535699075126201303635383628442039577986639970276128328065778871769666856300297920189270813889506107239795492578683085522544041502280425606884282580624081980689627391854363328368076933645620804429930661923888268794748342619764409459391065560913914976799494472951387485744112022044266936032938694843699977595774861469920854397470974947174965575485694283502146623449960022009945313870991841014149215309130215415402705427932346534103962523220014950308445070836310416586064955227764494775590020968702938957513633118279021694173966475785986080983308127281572054517569935255658123160280936887417632264656968826173675676341245845537020156910676679592719536175128228253981214031516061335453729055909360264086856009643421623081703659897067491869188629098499186244805221144430590789768924575651189205948474597551148374753344542559911938769511156158174041102428542050364954691950663686957573057359613673750665878445957512622171880507377814081581428823029443164896430709484568195016469351255665828247081835760773962467011291880882929043122424446326656504433546002992165162071984724244607864702603304214849322354301850588075471472658705077176614878201756186211138332698008607285465704840390770716556311718825913195493151648717974820430866492877714365253505728771426312665117215154853672779452068817254580960841624154949063164808266116761658353437460769093660831228037618072699587530221402037545992390690986568721001087996160948268699951912881498800081360747354884031757156546311315059601858396631205360357456897891693290744057076224468365681032842500902886096588706141788644373449683027537737016042519818615230833518934654591901953154158650985372509258936759471083323382630078879393675643609441364787210595777139470314979495500035257919180751025654313062195248623393040540836438775076613959907413310743112033403995744283422497664675909348509101362762784142630416226389864879714184964563181954807672108305059978016953346228108774394250922472391482954016235373075289119322246336545416636893161994892117973774497149418030655228995421073102712384579659844284011483801818812508116961181166823561906614719027039515834722412847161147773958765250376958734012852808716146009268263395448050562966726834927845836657982723426079159942774292267948101731919441772198281924711592402389249012968126969161191551692023910055444401597739526741644802296569966099910070529631895778156856134400221223616756424658956395038765638093647083515409191176583414821025761201049040158942606556351984946938736641458148223335554675068538118351327817785365091952373570878410153065940575582849717581737634194643244196723098044954855308105390089227004607525759140858941410873297004933367014461474727008455553628014766102442256981800505638914378680028486049566138704062448132899684585668894247413211161362288414661890650096387106973049720353739570458475207152090116603835080297292879365704349488190385908642850446492385779456295003895451898667743751635521332511267933379216952776811051179789713372859046273200472249083023366816230068408161995443024588884767225792840317832319056547559871065417589571073293688181669254252920682363993343581731284839840447302670194178862482797267649195898806918709335208613351544182569676440475243803423165071548032294523468993396387569159199076840212008674122700201389851462654790346677239955465561722750747239357823352972444017999869665199229005739185042623811149247803500088602370555138769591500967525862368567747108205284019179823281897337029255667064795122389261569480854240393151768198501378028616362086098128638114686480729321126727428354622700986161974615143545230373348936928679267054315525769317685681947000711049653528352909783416845738757302312173607573042995606796650956184486891263452069793626352058392222490179315608930245568406246554246144572016830875441488557544551298200274009126835526646757873026377629699293786989395454603518025071713896208939997834562102721274815301185878590860214428682250653433417073808958115999022372138509341246397235278197758338994786886088933873190870070233020455624355987315370836126681110336410709920067102457811290216216651252058688141834506273668426932680366920436975828407605217586129159711997194309081054575781583393519477283349295639882555149999206522158460645144942022097987285445289708890265486297556658774486891249493872868462782345237485129143099600203806950419134685398690748297271862373725425148145217173877587115224157236764091468805339755715162366871536909238831809010058105570600353244741386136865405463441781212155654697494122404544749605857935890298907148618925985726511053846612866397178034686617176350344696616481842654500589623899299243426061869363449841361455654235186947582448639461957044902340087052111527327130526792239419737715469784925188558910659967731508652651438669367423619162237348194843216298966489363716145789296133139993708104981085910786793829437112220492847232901819009964487190756722152728250022549442099360146082900043966472350808049563338535926754796641814969575620377015276072088396894651709882566351751540663743224381413221619137802600783804140034201369465219960032783477793148885248584872502049097126617290953646389211411434403245613662574958912485695204871053258980326807588780071869573017092203070041080264673877618917262837722755956984065863568267678663625810785476983104899552793691111026463085926746072158761936192892374317180121886044194689462996652687684893238931057632854409254611308475744934372862478306639359156560851328891232711150794636360241243615881395334321409557644417919922874826521295011343347058407271334287226470781128759328130600791161490366231475728650708219490172206325509656507605996621258169520767610176320272295901723017406277491054274644417608918522133708600560178174020625152171697582858676890129533055502131859711472596910963731765015381503738914838247567240341185417695617262557031172859887004426347439193262060140530829772652897912339177352063073845743020977709883246016549948876546081867466386174027183365500096478895173130443220191596929634655679946901390309858245241763902811955070449867158453056465224548220481038637972851200850909924677892207689999164108524081774465576029020082075257882244610254753520518071952247983314473390021086892814083336683454623950684065610383214312124962010070618082309328688370861075939211081093508940620782421017424631746273606235262354887047109828115404129062711709509956584135187133748387752285264583512634488615063323149212849709041423709000702799384732205253837339883237792416006674282649436074000644752563351771740136043756751621278735889277802687496112931617801351145702487706036970050104583085607512642865570034279620592982849405035055517567328818554710064014187570426151845342856681264589606397758932623769206981778449089316670604561087390104689647547458454419222163141304999022308556533391698551307272071474198079644207946516555714240879843171834518162474628679477697334491623075141529444178579310325008557696435643759722256672641615891467601891973492525134431003695905630036064006690735449526348350784251486762672122394153293242811813362297184384996529586091758564793894358338174750978185225374244291374319147619770875187033386658571001273958506665203901102182618048134821163950008122688149951467191703394754700705005763813888129928517900051241810609347408862878839766527449076890990752278125055128672469069118392591955809952823544262071934746795238272883060571069349970288544564201544043929815368360394064126362024982143136319293652617403998336118380631331311741821983862774797122591457876883768405642583671794231600663817896754647408147814612219708156749531353755462850112091518208994216640237465361177269778491320310615909063628034332826634547143159115014390379152859813900781745029141527051385069057959795465652931129248011317738019275254165319200771615124637010719261596812659476527700855321643171906452969473207412701035260665697954977501805388244978536134614870527684374794140394162414637998324008924362520002373770242806828162297871239623198335339862727207359171448195460741442679703710586186940935256834324163566370131995323403150314101224050971115871022458502415020652611676522827838539312875825220733650262838984282881810357885216100436478105521247481948457368924050883406727993672171611416168012956996197405411136673437650140348767471595503372613844501389471611064855825717009082462569684558791490936130399983433581995729694257749192459516606336092192112266935969082777575183254394981032705389684581064846862031166152716886907287298002485975924858464709428412612875376007349550959378889062352052744619515374175556281328633195307587591893514841184735857288809957388832889674869310050092697926497020162340151652200542931290426498717471792016788290277581761066668476859703917458107729441685258415514886950647393338943741947982905759712677216165354776127747706692021868869077447219228960068181508026765822150200268451707901596400150411560824773948536560283699242665036744989698237863241336801113469815628888147944933772645575165817591934283863696061695100907868905892837218191733860782277981213001605200028638437962794284446760039401921081316034045180218330255844807767881109789435305773521094601680080112122469337113229310145292201661805796024529179131186977503546407575696153715150075167451603655789828909993208780689213969225624507987096299790139647854792597136852597209743932686027022195791434945062816832962039620905003092831448552288301948769107064195002005069923805159771258040803955612209158748672210284816325095863283949913040049214469645722994969035099635228548562694904139425221774312738695366203501079747507838488163818827788740603078682897730106703779003610838572085755530152715184248173006470821593107587412924393490331547327946128793149617006180519713045969082372675635638192168058598265548040765411948314510376495140757654831406408484832418689553741439697044243153555511864796617037773436120952474091208108099079138495749960125273058019906347281796434678266588353392342390456329540182273874038079202621130405323402254684660843204856504095806710961130621013338345343552134840474528753546592010540985920536745178320994928408791190090474913105712871518275665186580745943802808069795317774492281194570505200215142948270797152366764291890454795497117712687842954779625240042608732925433858423502526172669533363393836078187919515576748859609253604387475669336720245339717717103339910192276415247142277528239653736356970760908226135592525976673142599543697523116409617469569019054177510868649208339093328072377640811091372347870403976469088071278753821410217459824816927268415939082120129285335483254222965047709903079729586702780467413788847883217518140926533778780275364528337871357216441461161590692212112464280224195132787141733877605089128861785948517504172908933485965188777426839271364946598985913190670213506400465200153041395283154939300660302322307335816791978480021515094762706445205924972146721185540750690080001960081093596551050398539203255514428741734616590745491874621597598663045914952562773309194191218180961880732147249942075760235741401853627043621075404940956152309932916672324608981831637676106142221541710087178497476979463887617738447038633768314877421934183998043150195396691657858952509612986491356359878015510427986042820665564806229691980797233077086428922781414211606753304594253537496406474064784828135678692048408826013681186169361915252646020447926361218603055253040107681566763456354088705591600913930259718263078744019300955836058838894521898062320114680468078666043979842127620688271522320664680004905706556332656808275048774231143020090627397518042266310607225959900665990030823964186930785298160440670563306159602338911589473102186450089790846800071963988450870819540303228048820521188110142524341223165133185042585224298498223454315135448713763056883092630122018280631284309657306887211216565591779681938526735424586994240130687990384495665931530137780226869189515297103541080047175637003539243328652369257904154930454247539449669256506600935219980693475850123989826789956771766249177456622499846523611960767094740207111527908904376781064930644117200868705119069353419858067489803651381501715653627938378950257802583670336761990030719825163494096347513664951731890231784206712514227074665973268367060505612914678576440650681040655067565797877090952301195221140327152883341156413265123647053224731555196927728558249886064065593028802081086444934541253103429611489978333949755098364180349293506354537140844387955542687905295975018714420149200107339643278139384247788994354364835129732116960339758416994245540895042923639131273745300143751135402014160016914416235203433286337484496544066923531298657194875042525129416048831000241901481322763389024464415498565012587292812200371369055051057432003628518926259802243807102957107131442623770616631090724374324146774314006659635379761292670247134534544150214457112914797898601223459219526013761279472152171348847321937953832883967214116285074238280220243812271320729059430367118514779795511738067618044839159382037664548205667062131397849218210973395531716537759055249714737090787117731104692431963478394221863333783485457363470233659242014018078635156133395930194120812426622805629136798003816581338390690854909263328626363162588439230832522464729004517160600334189953534765122706811414011050750654653150040712564944619223468060850229463675604626712031208395381917489910086758209961487584753605329417381761033005466374143803863583946283904865829020774628762569135927805835360831992084926241614431104528328723781933949164984320535529583521019099907937033964391298466356718399883596979115240583280811168139139506941245240502044644889614280677042735799082256172198003820420903118358963196670667181148338672251106713900601854494833257690130326358885141235569252624979562366601910560163452144395636941165023512254976757204405232570663799483981250498858499010577334265529556618280885264436182688446534181990470668890646170691461160674557510919158379208628021884849722102593539728057844435180427571843395580570343683299157213469965044842122165013606126974783891074096415338921877869711400963976750709885444705095266508208785031565708569017492320873166050500623398532937994495887672850234736844652214191588895783046327799269303402124484359631601487275074433471533473974551290953348888232919655227949222488658743522544008564082757965981675279761831443013559220911970204731023619072193580817435908102224115944378467200438605972147402735817023368129643906504321988854832770991228784485063648986021798748768425685937619196240632562133015221570698019082004998015721414934158922685425948741078752439200439417467877265242625740130704398447948160384672477618207383123161547588688899919186001524610929354193374499816761001593014944465345664258396411119053933996817131191006047138507288721589039563484376791976535882328502605551357629857528728822294071200579220082287484693956855173469675751562719152444428431099103406191310309930354672162802205011533974180835888470090034154522098426235527187309427097695309492923071554722326490610024684546625054245912203542104661753632766538639192470841755174342200779513092891086956754995831883428456377644788630321051933853906615153666266193585899209810930286136873078193662307733698463926145256040012929793005214478242742908436187355683830045013910428140824769915176164896108354912931123615180206892683969244556566138328414989852042831891292395194101187108254941219977307024871017377688619841256934022818137568684369221296159318244855685113350100728993241723250151010842868970499688201657671425765485359401977258893135871610091874776627309678178710855401232213681318867887785239116682766223734692947753567696799619484021457922868685326275572771364440755157130920467829611703961200049548216840627512528657438485654138976108034715416542643303797357243403198175648043041442171457386009031430974169653856267177830473559650310709658629665774135330541792570030261902605522343054302499927609264139358720555614036001185659522286939961016259996260396463244781945053765625445667494171817793632957469310245126522898438466208616481562431946572480907140314905388132630637311392414110156987099353112000952758887582884968329290281935368346356939646693055375162975070576688878185562902883235990808514134779729930555346618526154807883618600029869903304969323213735942257819655048927426468567598011098879160801324704213446412133658742930279776931838190239850392913680125267090853675167862122828268580909228891979067865442336001655044943579071279460402265766948370183791691343728802606610990817701108742696603440967498996004605151558912736612959206080493693939329337530548228997759854959380622282821498483108263567703154395138237154840042984394198270226134648954037030072016512189417709400154797215642821317539659944327994790315602740333927629456532520156719867556655346591434612892136492086432732975567093190384114507209301501326156984896225407178891069254599930265387298882282525739877086131313942239620305440053123811032710139167688037974626493456560235384480189754168557056521727517463144903483471724533564019480633767396669412097349335415364722027267480148748943107117780198404153085373047000437821871454432127315905263716814699718773307422751918583139820356317526291288977446019136567659885350054935204147836557208310929943055412743716868826029472633916366533126629015015599393794364894446489793153062412442062106663321471173301574467306904922615181667342294290151472837373103204116349091352814265011790410586623720291576501917480323079638042486451609983061747620478986162979470681782866579063824133682731478253163706065974412124409200517372304700145202819904890033546953298918180906513273659699445072807240483567051364475228569508163030442138539435743440888363988323835290410508401910444567478602333858062717426689670454437005027345709306253540302467792964834479054775400589157009632335331431122113411774889694353632637545567905785919598956472448548817092036212413191852263957889770380306591845614162863809714995919133062758815381633793599415067179302218758146876638399239877307777117681851733044048524259558594845604560767480171630484188878071452990670491386951552898684560165038321031123054258813438182573561774518983893482282473438126981983679837979387774508936671730914132209888893851251885227326748763565981481020058800202717298685384441570578506464091989087720525781917799189472109527024734904904280392062029938802122204585631411135491188170281456646487203849732506676335059256472514735445172230635025638592003386086197202549549653741010439521666025920281249670472208078304710879283653826754738835271804420013765736228808464879878238479688662946403037743987756016804732143994534427420065870776899091599216219507178282528836997790436868383248045462540123287207588108993768605767821922017819105489048780799090724608153563528457914802984848484378646368513003160055319700297360382425533300484554405133456427330525670241243645083382943236714771575833164138455857543701068664687229407455874223374982982082972219049591960754156152316467095187537399338991020462451184196651437715957560042013052034424222880916963081018690520185244535362755396261754358000980543986821645630070754043514755879258421524986929751294376371588738990365252817653086409962669352899793608005386652303682332889700747507543982499966427718916432378631678759742832773074209076844181187870824206013720688415789472728174306275540885025467059816757659714220571743243580232320480938833344660973250808778185389498811871006636186993998353173357164070932379355061008119121148773385550190239689255333841037881716668289949128868678091520315753109296863076442852756967408928111349749072637546203263488056972930599861095291911592728046172051417973201873378106504287594402157409665307887406851047590292396273888888590623290327033498055201019306341572032948711651801848385450145310401177337702323546803259283582408667071249377831078042787327224286445578183954435000108225191492642843311941085953770177912119836702998509523090151549586694933585146879204481963773236056112444868305103421735439043206847323350108685676071865157725163983725401108714976978768342733376625458152004799392514999669214516107335197351782616208910258801957796911730292013904945199754416709564999543915480125340506567201516615183308473512657981717944085030202158105357720980933593297626022805321733922548778809509371697900574219650014848287691753944626831864027409991095979563283138822138410228323070392686962340203462580304404197038723434052247460195146660977417337554224280235199374926497834640410213522213253011387140286674609832921089082531528016685093433838390649252462642499348216601621389175728896986545643474148043474531735960844764218912936056960210236984592847870155521231062360545324770270103546734299938219969998006902899638782513418527487280107097577558651630142056069699746185978587362217479840752012060134297760895852289114085166851421611797440454521012256239646274014414514805717299525665073720347658450442076280859988244027542871499829696094549246166298020979098484278237506918403081467375236513156445969335993657062440659033439001994174927937578618945195038029312247227765708935588941426125457782921594969872894237287310830333786040610645725540720276348654298768982685234820120310478538796959516963211927219432540835355732114519948707594159187066793849387489062354967468911505821101801674517824218724623469512797392244188258612940719289328541175571480212558068144955002075997560036506818113770079533459673000006120083184777276532319648063466594902664169312632654675657816857850669456824126663980766152695126928159023707486676177152204240755511453289144419754958967967905458920398473264326035073872842557426681321499749466100237043447234810971346595850306494398092784032626403911323303396455949388879653772646732400202252119490155793108903488658619147227287032885171889202566194631408195745521166237802339684119446647288549548871950309205334061116324633903839355849617438557545323769669620188667831724393988516654940816697132536331221138161156617703135764498343762261774470972164753191477749481080949801780237241017385702147880310149686641052716868020953720377324403750131060696623376903948876628545537473041511494390232398069985191554466391812907909419223596495326959804765285172739094957487000185466892416773760482519881987520171305630628442265850908937062272568890373769960599107593549426311755534537648230475400160599363645189084202023074228631766134068817997404576341973880417249344144327120716722691632284867597514342777227914053822152001870811730792941138601695884091354085195724977964043386930465022840706472606105332954569434058240836427629297939198652668972245599522024408335864137483575851700689317701782101268007771269930090454625579699003076408046273581785491232695602907038001342198258223942622374424597310120287357160821918162338973801112331894000793907258376320617326245161215583697178698722052248801625252391771432900145720161137270824148214502420849549893468492978387506044490398031919593960744989186317980629096973907903518065671081765526018956404983100117426614426754333224942630638073468260432229518906149819857315268861612666683170244527574852966775119987622873904564475167880458251004196838102320884024026884436408553395195962857614265724109034028458908516636228680238311188644499787944127041314957398783855652938829158372760800028611418716437321325470208783065181625186009935714323080754708609483441072689301584481668025385412912715420831509091594603486046795926636437467759128313553862578845378887044321913329552603259883173637346986871240388137419055193566647496151340548708318306878732848205345137556533313460026776163677316905744250385731120592386430168159075854941320634647015851490513228679624485412720876849439452625991981336864235702993494678329811867697409471495258672497979994954157116497403056918449880243380946561239109077991234724386156651141403133147828846667021249101661270403345567699883191796105974119316272898755344424416362807273715839085898743673013901847517683465694101887730501709358841572428462968349739671880507941754376927667918105215613661729823888157240705610555493421315000825180712317941309166859281152720703151189059969994930736376804351530072445526300766708498505859905250221679621249392252870179464770822999537259421520513729765210622672998952304481847991427889181408735125024702288517841694259226698382375075060390936075788148300900234731010855996440277381908708168714008683241590872153751076210926401470485659542515675886469721497662707266236793375661204725305590612323702364917873953890341236525951907561999130812561614304834820761258385858769714261267897130150177916982430229685907553643031484765533889831077594945903866342507731527814714251671758246032098606496931564625963648415682199498146696898608301969942963075113926582773229654889292303321588730178693549542025243252319113130909269026453135352876516789803066341675879701698287906537580141828313779993912655468549847163483744404437340132961785187889878095134197358620375503967376139073628908832886725493874241531037741985226103210257199561558935188754233397262873284869146646522337754948541906965441512755198279440155383028631943141793932633335574576055870631438896925022560564841237213300605364729216437889317226501357674470465206744816614692815685127003313872147400248429228478326289875267231248168562513889148557470387753953640654533460244852761656021401011566275751563556042330649402091474587551106973589317805400902989796498124705653168061137335727065877496470761385594557343720795934172115812829100367253596649157444946939606080928572187900885369212139606263623485182654587772621322201965023692528548030971088560565359742895499789193003602949655534251017826400142585999447066034064826761707612342184994506487382235008160285126984791867818079891604894516292746313750315732031696595612721686242212471098293997650295192242668090085157620431641064940387686928581135230894336981139157271168478546632356192289794318047065263471859782352767105049958842267568887354296241108720565111290333040067678528483691864175310345462186443982931035357474070227810406741065518157541508271626250679260510913678534078224159084432494667612731459422378292866369951694899313681344500936763380750446052404872892446237186963248196929827775825126655053015586366881639173900817131322351162324195274954870685964415483509075225405104485318290824986005678939389181806366031611150469537500990675892208635365954952711220587524176286192632049632715278375027321657106870192980850990539521004824063213113078059361008285792774742925197302830353742386399511319428328016173583865861453170109683938664414275709436942921614642557702316417633431393935735804126142153929196420642481737933484826307688473113842495746759378755283951145599156420515413007872787058885644658325812110757660458620456903459657257084202863769367021442845788535027881160139843025392563655386309798381699032154735519016246839106803653166194955596369631892634593152025954780896695112607316534901959924595251795435456580617024388081727951368138610137686368887505278567086024263975780395731707137030785728978462212063980543637338363677896682179229185339228054020380871382811751319246550229441250920895837912418874694403415601503857321999421216746798082697216974155133214315603957895880105952922388758481113274810966890153875013704963753908409239589380491720576636101357023800619175940202883766039059100383105865341391821206434904835402095202871507693775847565331295165378019202088934921114239451011976621196014851715668735707332302296801932283054005737962793002666227222211360928418067270826200576775817219703429715925780087970505496229108102817156840624698866484001727567332939293958013713773693702905088233671879021214876059762893521000226808551267936406899387682223781043753290728588336352494506283373749230709120340877703025445121842132377196650534309893510078007491711507744072598748153581926149978839182263604966763968890186424045284888264177816022292908792993829397456404830343665347945786983038461064455484560364092067598772597274759093262926036329070203552639076313078357518168674230027316370275774471590246336784186516738884008709661264991627277371051615840552789967271374723421668884736874683628671200285585659636452048857493423758675982479861630391997703433174056291719975290955644302540918230003628340587229307002934355961655576491424501338195823432511772041110001926334046107542669766012773993514671838416537337445381987279101201551903095820856806179985739467112441439927376744097008320939498467698987592983120561954164824652973425433850324671888356222973543030669744865099801335914256785970203463102251851177042597255176836377370604577565770407429331151394371240924636299589889702930717097391641964664496963524745000170544119894120878217055107218197706946681142858033471089053530076253773095794112389120671674368205565553890920522117641974522308998949834721207020406906371647295419658048350226902512177257385604198995309378856833906479107117641956209789668652493825117144578297346646716733946276727894550973411055801211084337015578743046801507119158939792703359611448299425786865841597656149917652529690801946458590937886632158964336527576617052700475870399319755247400809604695897798577148564223366839577493212968824150225117261229364817903381617454035271490549719951046267240693124022341332933318072549147334276063658048398255495865818938331884192978700982048055181779831272057174354012808403777890278766490625912638862739156488319149880913994586988903216660783101625257572444095096551303045158608898703520256222160116756919458705503252719060912025867041619038930914797158410671522633286774675919533929018926369011270735689630539556033637016152757750049121968843212994838902833924078362855136151729913088319771679305358422033530549145040908709604624731043344118079675923683345321295878297225782144391938754125496446490773409479608497892519844178454759948842028724476669563127470210161072587081263036439345821716055773204150169665663911278145436079702565167332158980017532538287192856002607084726060431677458278772943180573186000899206079910613578991210665932303023175801322542365899370047957650880237497197875823405135550197424629619078369685081531924446721245479589147644785265641130210962573725220137466923553037003810867530739644260263944078064345034705684347097043543257809253980027439905130471752234358152911898016384574776026087807201447944737021070981971349759183117908631893799035886209306828415102767648960433703463895742437320827919421976955227511237705413568603374391198223239443970594102362514654284875872860986438384909069526334685389720164481925441680791399696544966514481943244598461490549431358605903102708545737719793312824311748128963125246064965278927027275373186450098296468037908623215326458239034011961354295268051664475880776774385654161570620172949115767680957074445870114253231531635414494609060361375344614244984228404143140824468337465961882776209358054517631602870208501327520189819594215326273553327082975667952051172599859597620246453321081277998784950784579192551453954484776403819722410442848351472591878658489395352468198334254493543676254857733591502808064546169265040531479900944336373993559195335879746623471374472001536579094715612268340738570054656531733576893691488834472712354922407083798918085007150856914887309173608994941827998120614738158587911399038917259095500096602631524797420402138552655608374618359546309681026009745885841824160749714558993540398493168986923463689304274445463557065883391448383335862026499034486559806985561489646384265658776519752672968631913380585567848545049512863414771381911248025414226608274606300089405086291825949878064694202669571920386484217759831423571757112541353089474909418548153264378609463728346685751790691328490897516361573835065853345045945183136060430989848004180302290613353905895922797138379367187222765940564163908579462048435323302749304488195347619404221238445030680187033518309305135222743304355625836632221866252149360131450667980600499164102074312072730528693301607346561788623320379487922619432185564197369758715002798966465326206744669814302373086685278903891051296077992147458681527042671482051204730620265527951829600721957678915142099923064568440718738680235065092275277313348465005122101185204753325653134913569338728658543009322394504722874889508810140310152590067136391588109810138370465942907944832943258510522434477602320850564598630601261264195769651193886080864666888487687090296785098417399158967089265273933921302197481558318823153284925360685017248858094691455910785034388394588962493490425564457113816468481002245424876197112830661752704635414543256902959897876629488007603361300537919526586253727788494084610992866500983139168853959260680883729117234131211413047817021008118599982046501450884572422871967692387142107249495644130435037485388636964271313450059226777844773234685163312833889842648545985674523768713011407410328714668146645562118923473098552082705716770612882371472651246951822555903066789904425528212089202751430220971865450028356977298391342619212068327924584508766194661687080134273114624591069853201014559261920687419623383319974849022803593199796088500256767669297838686426496474066509797423606772231054227294540126206091395808008140348887645923667838268864919109896075139211905230310494183453081533934779693640690984657118756123456848141401654753021117832118508123696444972365627595436027791440623445750416704902833387318018186335140355244903843145186211251521698953537097490760687760255493990565587252431458420240367264606166101613058805453538219133955325764510904254380119429652069080362446310767397208770810496418475348303553946793871408592001577064399103255167590065973692291643850433632971497382521488274142362594313862482783996707628381218713512824983609764382719588866547448011670179508053474911985582974941777214346843925042758275212644665952276247696997212703600121028453860502471936602774336550259739073371962546746831448869256085308220016281122233753105127032880200735146713654551177843885481619352693556098287607679857185215300010963645692546830725983273645244323223154367036592745739007571256354545490298554144423287860906790769232532776543507028610896012788476211590120728264930150139571562768941403268709406496564382428332750409674001613588013833931068850418795509064614361503179543709372867379225181694376662099925086762117841557882638430107304629857704707772966628402078840841669769752683257202626644859023566292211537186887487679938504741984304725086946414181680501465283798400909668810986618329560713608165462556882517149136395271989457745983275529460691058767094435842771819789606510033328819774105050019956057515319993348214165417244665227306188844550084098147243944045250816288368685432542905525743710257969473032396920985667825551120194301414460881464671411386889460438539814715310449597996323846020927113383565279268315493452836979145288999220331182588736869212186231287674926355811957636147060762186115073157480273845770927283789579935581250543202324236064182895005076474976102337159642400864313970089371897427513795489168721185127922857083474705945313601477659798418247546201115908526640684076390903205248952658638687546476753810302312913447713087287612829988824366651682839077000414933771757066282797728242451911682413009269895041613811211530620810101397471959336503049813718323463829292069744171504420477341997731613375153354748827461403211211195227228112962666656833024755796456562547466641205853819790410655400489814417364840492082048551972478715937232446053508900587023944681766870621069052113533584325213104595393908391085428703436037530987026200372093718614553948481209321906665916617451077733371555860347528906715531270545624725928191882849515406420774167350720504384614245162718345534929768329187217639087166688135671379369434014981216049095574901324908049503828388150066187482045793445365917655169178347687648248132436319990488204256503392948946409368138246632542576324649460896764383219418217607185506114063473391656383644213055393817302428182210030086982173258254129408370359016902066987353396305536599831245109460596420734483970789911914549329226906592170257670091946917895978450982657111166044231035015161192414373966881889384951682859584248634062201256273719997607260499047293373362101471173517832562926731975814294168433688250456102454713843148794087480835144807604006790730308756170078651554235969959070911647637881304435652915250946083297159514890581063152030158254692003848775143904488439973750111299791931001153730358204454584546743849129340992305979367407748962933705052966591353367610118953489724382619240418729753880096191245343038357832529858384026965431849662664889583400843603861592928774336978036827123842882485008012292613679988133904136100128840935682888518280950684875223237648189051953622758518349814164366064387321022013268476536621310216274479715875675498990226277908557181701121673922749159393667824005389255958790431509936885738857993985469624183386282053014993829756936557360584521849148989809207806237117569243496523998704164150651968062559528974548341775338656453980311162309048907848175146633667332292988189970093139176789460673121530334582725486849735351017441844476073767895883317013748014206834250259257958549258388850319890995647547602371434105570406709429981296614031417093932793616884537936858398561912007101207574256955629114808416229769368604154493403705438769152702505778829803238404337035447101206457989963725058914056727757781375712831256293447995210166710056597928851304584816189272859301977104021822238108525722065435557506379463760476596951062389272682055291163237154158976053766364668400391457029790679971312536033491016231901739106386524956459983096716461487314626582311166083880658957997181159208039569433324997667782598963099232738822294567425450363253790803232704240008378683293581175493103066188994754950274708448412936054043426059645908071944111014183982536000402021743174101688862313142704492095620451929709748202454378952859875462972026404605676728336621313537811759320032265085585855841065977978134527501864330982349977109255265592591626605719803411034046637581108918696980566863947871693219718092736673765456592694504749494282912957269447956948735463555542048384528874824854120806307735605009350803034932143048058124315884090517567082866612721112167207367274020985021695250780896498255311413221141765610616412563385926982790396928574499009227909731802035308152016868492873258333790036620653948281458047090804301288589158171434140228171530820001448944222006810746571303561194141325601404745725719727946541227665913258309253761065281419980805340323234249297193963800860309853191307540563277321301274140656192835394326807345634327792443670784770281617361207844751676269750809610746497422064282216173443218729341648032794771815265432274683702202700597033014366647215405867321604793052877895015849580450555628445616411491961310920311721221495650732976089131181433586876788447990901558584538973136783375277775025172922533660141330246582810793492306861843459330000466107775090844937781948722403967793257371526123871573134390657874647081427231783822429826045387971024329039347800753832101023452873337810694630747216277543337327263014989765763517662156736046113069285982115951574853832402260306937649145607084742513994879635086920418007211800462195689082121163654363691772827389376597338489653527580186207898236229185733753428283241572677404382482975602600757630102966680393455974093811127977644093357951830709499846261237037876383619282304074815394608590795578409033267091339413056004595025882959443058665368992421926205395786435377766347786809005973030757925563348890551334531657388207839199088860779555281828680011342590032383742787849658013081975189937016539907341305225127576950069679950614052040903652021035307281133767543041602993177055326669431953869785561224007101781681610517791163553813726822478920894072095096375141482865391301722591381680231583662008510705740936517339133274974349172849144372578037862244859150459209599719937188081929948976357685080489803151810684995700935832293065836867040957008540528670266124985461414302345108709259335191335540404219376053753124185308654660716332927440105253250703718926590596455210497894649042143168793538564453674284691404531959321390849274653201612898317448033758798030624557004370230504391044194896230323860084885786978506572132579155121060851529452309931969150715775588370193367019183636676254760452233674439028524657625146620630076095669010716990776403158119788871677417062585576475012248125606873490430869139888588247103753052400995969257187198633191793552620991369151392007806660667683617366458632539871446527899877209320839083248540661185137059906429949476812238407878528708683356723585872373428279113127948416375761127635615406182951482697537509363716198716271911169034578448105280949208216966860597544554881918818024185819501941153807666369772813151928447241282734732056118681338984090598108649067524242052542741130508971971535393317126834095053367124781891373447952447409504163141471573306869055502285543234288410690934529752272464547222301653701092310478089158496487430300705489810189460680482341808156957233299967061402273050842436071039433619517589644220230504797859736717891438891998988649752673664840627748083044309727575011200989080900061942098068414043822054280526918783492688176024428316960227300260827787168302062045679333021934826429123126647294228292943250852272763044020894115660539929228257571076619187328461310861156748303440396071789443465853690548001001492352259317307295277105064436296636166576956857224113944046360719374987912805434765911058266954517914482566427390271597557462185016884039637966970857219904789601289872393808919722139985761034116471993479026255846834001219364184803874527013732669383810139825215544565307022078627453793777719246889555282119221662259560952519073603185696362055327790822011458478313321757229372362314247606994860221325706887560275699864210215315966730559869076502667562870735569204991725813896503434539263500790229225290181630398991461727419700579194461554958602999400325362931706859775022204072280678813838894481364533902849610806846058579024476560488346482503754628792183977273760342216700441161654415754074967493268403542183762453742492979331052913466232921583879217683373049557907853161409335567407557852622004462826335425200098197009832440915903698742071099805958377053981596795711242038604716146767127516872819379265937953404700807820613825253784610724210145290056838556511462490496039739039646056647913401787574326930780693189434855787105144543316807743320605707444435626430459856027826748247669088746591843261385124486016958369015093334436956198098925329601546657810102979640580705024812547358447124759373551898399592275087442785492970691175994341282529497204892485354138097366366265994377885262932317724041614769353654965069361262670614113966773234952449743932747860111990980318368802534558281985698471451549446928993586162437517893246403595270230927491957733844849796372863676979461192787774325322027478862324745762620819361116409395168397038897355456403450459632226753725302519765726433203041008859514977065193686051593186338265776923654093465469190396059170316048133392146046245955735564008183894138398052219739187184866405965730483163646146625771305701548443946093596833254830252949762061873509460464293782920762920015065740323912054206214235593713594978275999866758603320140862199955180730052529682437404417834236899641157170564917222677094191694579017882294399611910054471901252834364248518561720840464386426477582539835825039403301105786436477071809568219455143924661502553168429162903885932692748978471451295931913930143053041025955905367872874075465779687221199180127611329650992296825092069199417877303714145474870344538799473025400082356174785942270240396908958293230514869465405140097946748230171857111441814043218152923947405440426914585824288205628483638655507812369616577257435029649317533854644843734405881595986795229913201103383467641213381653016190740705370366092189586022776581274020456837436561808838912393937110986618880161930819851731255798579729537140628109097430910708501376934628212671206006001169067585203100619091487879107688239197276604757141660036638929171453525347709314062058607145506162744234060877340065781680800695018645286613246937169588193216403220564845398990335138057114886012372891804590946814977574661382549055883074353737889441612785502299510906454816092655873806777223231816201323659581671769164787323559999764214487624480514993879413268059292428098692275854806326081785432666010989690485646552293558364054086625541268922846249349999549843409999336810537356387444939664424650363399420034021780014893942135932071030022462770047319045437995547837445918188255855304777997934997597971396189252898020982771172899205086562977447409319861088657524089729120174784051912953012576999383255709263385461031381368174647417391163803454731700604209513279030307097278846067947463678559187924682753590216512336127546081512945653635731318439063819811302423623619209640272782787511097883825745768999082443843467683282939498771838116001824833510922151630872608537866001558856063928751348353546235114664405169557402693716450665124744327743721675094401214892839295029621082257530888058274916955493663005881130790680522300264374345160455474696443498679301011556636496760113886169248720383617571767555510733901851066741959887775391458579438835895489689276307432667216025550180973514858557022751594640549802732579971401996076141034843584468954838574608958907683836574328345416600113581764010946441390600258387345988167757552144716954895929729377757789355341525942566300253589425945434385325288190027463503622509315641576591994389438946966352829008189968440684579087562643883593919624456272434089507878746294157929035948187676058958043907177389292328023443031179944761132156026692803986006330927902838005298400582610956165059850784510984984147604471723067170578841744439340245164088484053737454965802105730326822111325735123496501723775418160608968073159902851643600886299658017594377560747221157691423655708663872734220027001567961217560772321932275185212046590279068154028755454873520204419863486412424152117113603837543989517731491460586287130757014380135307859930870249294488127976700491404251682923290877312392007156756780911803309025268427752879598074076892101191517431461179402399887612845779176031324621804694331932709574516460820539287537052088693653550846163986540156794176339042899762730882951682203761565632385703884100311715366826826735905697551982423727671217983137485415571962604276678728434648269771518788994502975635927960102504959179315232891740855898097017558418675531886804156823973081435120284676248173533345577130913477168543432416130789163233851282620217548728743257470375601496424022778475340650869886586178497080795854132587262714278766194361739321125946501581430519283340174964957475571576122322716871211154426156004961853951117499923888659365367827398443865498675314943517038628840821903518972084022627122678206599300207534636370951328747318674480278717588949639647956934065550145409542471369330760972712393308582197902931335183640015550858140498648818813876936849914162401158992582157291643480946149580437929349134357466486185436084607656557417584272741180343342371410446576896033783321101133148034156534499582263603785589627620952046832020179638645612363049893818880622440280122383383510584105377351141790036511306960941632580736474490447635954935473760300817199121212907896302212115474829681700586497002568175060649586793490079886156184650390438230502298162812095092027401076822045121705578235773199273259233072827594826400765860388010538165976536164687012541183569855831125643955874930086243365679777782667302774366426569741070810054470092912512342820255579109750234156744647829428117798400377501035640470438197466018193586960744608961505074026078423043497057188132070171234894837013982606118572926990546659324378451208182523221934419539833952756787408971641150544873031308705270728685161788353375836357181496470914188630450191891478904343307783002024924181196404615747074913466535116151758330042715215199744241849839371538860938004312068126901745130703918289196243865538186566203076066900679927991917340875844560106028392224969006651973402368513275324556073167763991353191407570230155628074872884847917923004867962240502308009280250225353519938466503997123579179834161989156365945108438418703173593026223397777218046722404139751904418050088499342250284469741531492155558379835932851781180086150887750879451007538091254611263664420907820767581541153073759284386281942693223427362167172880417954175991402823990936992271264557216455087977356000086776662564657825879270105698118222416829735490316342369287969940661386930037888207509353982806681791348920090080121430857656538835306659703621343596712898826818561597976807665787243965928778311406186685712628924705942455267999032816203754996675244874087697774901312324428543909167838116138839804389406561525217969982704725329690075621679870659875390573775249317629043428080596956923218940330779219770381283380432823143955978514053558640561597645065374871399352988379137680040617170832752022545055611681401486268034977553383867994993583555684283043676540767686848106134980900476173088388577066809604045464645115093982535733319525115773123357337235434122156289313191260898852876557344258836181501515422921593279178498736570965884295634827577431466182763792478050698862358367555132282237471337132667522029872497227715970241331124190556953860896076321092546351032401979082426640590329280394501275434390744875134455159336289837638192015211268317172947833967877117814547613980196243694084768619608981487390649625549397361665380562616027160696499477471957748198001849843834565659304492901266197386792168166343301221254688629972395692710634205651538473799558850952927993644608406431238124938458980541808122491888010000798641733096726295218639241382078594013584655317362120836488670938040737381839330290496988211266366268116771564443533343460501768563031977664939055120488334368256234950420097855577233796103252406796762881401457566507581235831074217139641642642447434702874311918591269826153176465901264423764997409115636282054709840865306139687737392211820293010781024977023208334094594979640044186988651310071816155584247857302779358308505645065187777111153439179176159348122719972984296702658584905240083178835982283000989972205227244538742469172172209649053497507230016791910701860686715623192370784912394345341796379983584635189427399706701781513277484282131010670035797711749187956033478545028144752056904916574681446270326799954944821345533077139863999621077239718029516343012277440869669718872749120123447397613479407138813281066850849483077972812029112495836819148979678134718656927833013071183544023273739900054839557551778313979055266757931446032759825547446236925645715867155657253049730899349219436245295580128728014607479474439252296078306837006491000854547349634782322501400647367344968999445445524642903247989331714265653229145864095138474475591683201477066537671188116557655017776998181607682671922112327455202457540713919776984591885678715623764933879363152294953348672413190670580829424358814321681216832238420828909780066600657084182219603668719081807256721562011488737716580057973088048035449746043254955637682462156906797734285957643335484066220812033410391788425885330693608175755160388587699326255481379078957836137530824580560050393872086588534658390195092101917425044214679049554454568283095972672269576470417718033698626381114256664694867775611087170400783214461503580195356777205449612489933044585441749833702498484844154071313127056650301493111640105824743036266307699013466495463272265076488685579926105878627940233036343892327689201540058506738042210823209165017382761179313746709325109105556637748139064034051537653215344621983996197817938970342330054878359650453117197863776361678615389946852589635354260871866683996392259201260225253087202374614951282848149335283278962490767854123874015368774844522672066880033170861984228743953579736654285220419095876672454077900644416144728674597348909397883683577596556029548526510206761071678544656858105038515726024195898161286912967658734618073044677027218531522070774151353513921639536475512789204587222294375466722757641345329830245524179697555593678315200961438003488958215945530000922239937947716046750933880971512129209188024106471742450229218690532503189728413129978365029804438740846904956897733557266852686685884602976956989498210258947110938982585963516376110427739082183967732200577801316113928252080815289546999541133137783144713051967113299016258919394584411517970531487515422929241812908177749193173045349085545939438255605399986954436991888878573375993833571926597373878554298571088689851191897471645231970582411245279473561989145830663191450879888553017645194471291515622180839521997065878669277467882471524871805849477216587810001221746159029028569558566184188649705494422391353034872046149274865505084780462508060091525466634469429676605228134204556758008425299305284144855474548191720934413595388932560478936549220973678548391751545661683897948463179420193902511396612387536780017060419603840168469114186139475449123050192879094057603414345483775405844521940119577315071446521547401975845419270542820237829283633912735489616085404490659741602511756526779058441873133299664835247505923163120995960092195337823251677828020139525063354546654749532167904745463111560758475683395398392729676141799375071453145265455373207224653873637121931781010391131146663097035542095714728897155052527967123297162945054741337726086724201193552300321732749127613436972249977525234776192587309940999176010273914759961335644980022422218054673991782192455170104775159709874961945698338682628077910314377257261967396535277800076430602410770507165202786686092319234036736920118419731297589878159146144981404511660314635903862174534158219667137087978834439009428664573497766913701687857795709133905727018115420777198734017191451424424176360268928814707903744677995501645315294296840984096414578340665375257799012093169285018586015744329339372265427091376644064285153323153215549341626413150817346370710229338720280579819018152921519388357467892235922685691487485781329672676428586095534220726658945487931673481330860915377610884802889417034369137219540620400770866023262930211229321653694807441900715554304745983501818437154400396332569440340450825421576936854677179969989626003755779427931017426432642331626379632000712618020327546818466995167316118014834911041972693993400116632038998793834952667848343550303133003619537109095240658211755379036160510782288203423577506999176566151964788146336270828220535000682617135829619740542546156705658207089052515745777866564641979161886785036347893941372862813066300345915275545160701533292096473602444632582971399796920359146598497740572872768409872704756593525687689804867748248469516617754447079552824102235031678822509607323130428022504166353442280702788836328659074707656036736871773856978847262564224699677732251887731800692911107228850277883857972666944086533736400530632281006389573795500551438734007596671217579056806353436805052507171200178363540901935300913700381480404202636783014114068419704295657386031075360111723344468449288753223601385362749744898651747758551114537768843600537691411110305471665803779264942105922928655111798624874897861223198949691736257153041490749437351629344519333652033496210762259811054695730528185217492140184227853885654270102527048659978962101588740413428518071142162348481943579666734896518271623313369454353870534247664137973489239689902033340135278842232966151279980057234890854477834475551712284092509599321918220773828071683812267154148673677700309644600390188687554181372726867477494495927777673827426779564555291533091110577368404675597760921205779136698012651003765200191557111011945915223501670660422230582622068304365411309947787022911140652913804987599868573805397101894731088471213767930416240324311779089294937700451019342314309485810697520339354913744874310823523237324320858227658614491643757635409038879670263928961320950384287984763501797606873971604822464384601250707099675695266504821133948256473034230291443419508229047991765713181742645170582502665888474950061837606616914605563267333606003784521395534334418395955326796593866293983039541737420717619410082650102864743913801599666398265044811895473768859772298129910485614013595905281631854903810169110565992106798341582404324368250886439812232220722805843871807708430391539759320387898056162933803124974254945461300996128260164509686188711338628392903243267344336204900719459957245954659443692282450039821509035166761104994274856439089557263980255172164076651362371191343974774968847804447952638944751499012147099409248156300600245447373135305523148501953192248278137398947570714352029969952631462683719470982716962878645920708416433071488208989318589432290730415720767347432711491664625369177877989615371897104918323930209056658359347052661792932949917254939647491792265618131936723338704015634968435443090525445572334344439803304956607187875829662384596519718893434261016024505187580489090035108921549462453513985108626871540101807479633823485312003656225333012508187812301753137881735911515186053849397319055615538741200821153075766829260022625821552389389038956561243269896548488418986786727903549661534944088259674518133653654309838065386819485304678569771778339493094932427885620527197822675230719217089819283165404524029765342054644132475573532407219022887895209136876726387500211954895803187443625467762167988538546081181112429172151764014276470005829211247929497493004143585736371682947998102627467241066035366172788885675803473125242606229060903422833154859752511472140317287071205263445131777156843032540007200687472577025370663054786112985014350833274690476079936669675648450061336395668890019919496470048752387795051217734711086688379399984993981615993879800584223085163817489197067346652562181708633957860174761555162518303828995914891824429642838506657963041284635719890997211748068669810184508703971196049476158518510442398473044202412324351362506389925750265776620179227752496041759519903146501357283401221213071071640185696434742890412300194603787527012364830879929929295846264672977763815538827068349003462373391625820186443085109959261055117586627126079082802808567795700851242889079198215104083450070944838241690569422359865024374082602753711376220988150950352729479863278501956610693041032467447261557467400505020860635392648843992991446589585751018604520909606306054014709342717011743636087697522105321608412885075481396883208821078007089640994706852621545205681132886942765771787326276570385373601935498786043805160954199046500564618583688696187030267013779752672259670610965308971937711354955108468341215775116610376942761430042617359512533856841793179730994959037024197886239015912659534868693630794388000378927644684918222918914135462914196849080498846290806657928958100780879880445096562400436635518008815487297850947058854095063199676718861964055072488626966851986746038779345887966242452319897076264592743829303753090168694533661397291704293953396648016327830890471623312218905698238129326150166751716964560825284395939532191684504753716831203743948831517282710994956833819543902311245273922847357266763505569411415330185382034826279434093809525309453240893804787418346950420837552764763268720599960971593999650770397525873201105791422913823712126485997248923119313003520372441429985163036640979848287421536310631173296348235508051479321246380177823263558082965754895906169150912896596980383729792347573190349362908967034180823880917861698603481950279895964571318799804328029429794464502303682744340062820171772713488111839561548722622781326941438672915007446495399253276281108121965765100926431068256362739517840849498100472446923158280736702618237949150311117885586085914660370975536803260547517527050838667557347728402095090228325843233703961216857556148898487959851597746286586098352583065161574216288102179252670363565794621710363004321333986686937397717829974745007850186195709933809798865404720096806177171589965343274681856455697123521874324368088951709258450491707090398514681925835168493724730122580784457872387108728397352311106852727686869710243819618200299002772485768418658150257507263777252736090137538965540637127714254754049485480093887702963581643577987575927712029118972249121818332910147263029872724064411769029424406809373380789185111053658453146247684195909208643164299139582800231236035652336867742119036169513510832524265796992200297361263398668247744916782581120048875863415611903249512209528676074427638269541165408498355028643976854932739533315575849643162423204784652515565789666802268863634762234075899740018274832861824984490456278774249694054969588019210520266858417326918273384000220140216818170016288773672810869444137316160026404979453618487763424589494872764593597519427092718150395819691679829767834620178808519682315895756673055563389581912543986933831615147003806650026746065887255254262071178788354809557953894591987930352583618856233163509877368625199176993158572481667018563260268925213894209129936264372140556943359415263681305470036695379705850154468797100128109288225789492594296485309097972190811570867477237884924126995751340879808393461327994852223158317245180893428160847184871877293686242369818455655757016840935522318194360767018535521148125958045638986675750553655269258540227155335519218977077385446518038346456509625256167800434429551466016842071824867476703825787414639534222811828522093287604777538822427779702030245357931628972579626022593770126866973637806767698359580521942562882054428916525176819235992180191607977312053721287374864751044442298943611521316660246073667908247898987172191550456682034162493750218766043166343346741972798339741227635688216211554793392158423966560917799009171650543395204680099512830764255380125487704856098389918258756150080910412076265433335855813195523396562685448847135734499258593987511782182607502199146596925007932975786482654230445775003385758246226819531599818205874467484405569988931139342262184099853859930896388498439096366413726279710637049094561960125816718303645953863820042798753226442878982182778931899070486531918402568674139907479010503572664239113997891358522163216965517994695666134281588912615719873643450299697373077101011081025469436909515136856853739386405215794383629087903617531403992324571966728287178302127472699506369484189918273476044862653340786913068984295128309299054216554926852286214736003758135912003177907793231601583583340366345951883099132033268663535071581528608096404777497412098677531123439628478970106071260174897767585876424563262623656095407725704824064354926119963631482886239616867724219451877528253970642669738525284536170151242653465413676942782142050292710370647602038777608440980768347161091740504252451448894695458138960189169063350027146442672214477603796720176667037071417941587903155039843308812296028139084714517673477229898496153455200244858322977368093608084130148367900706095403140965861124689122150761559498259658716034698608493174418927730359351765987601489408930011295908055455046064176693713001565585904459180010469438873130099436585423002177801345446488054986300245711585228192274071267017631447259667397670751306250980950505333886589788915213765944505439484864728817454459704250493675675922632186694333949096304855736480602145779829622246082005278023363020968215374479459515003596028198150714694689176232148328591289502512837203172796730795136343818307931386491478946063695125401803923350751824340311285706634732007150938291515664921781651624477331717718253016753594560849361978155702351131022647381116917200447249966372849139141413277289435987160247012328323416611253729782637048839180733303257782398544387472056623831861993950055276125668041633528981216934026013264277649930210357052878451464710717569304567771142991344193474103924266457456983957629353721516691410878842823205558383236243676817686840556937214502263961811082169269772130964199935323847566782746848701516350784999839187088945035478156398981031030371888812119732391668239070823447972330672741963399605162190082849716503146770887190594923908593646612423563590325422124329944139044611664576240356582842471391074783008688030124759750238067884637706737447121098758304561536596393322913881321233844622767916873408934626893926780942532493995755639811881954065156318597108170742885285034891397378916957888559117562041487349160858147254468821969663101828292765781437449150729741557646942006596137753217705618346156787008822166576671637783547474116582210773746154248146166408533107157834116369949628386636634026743034522892370725316520762120825411007915778559316020342202893967315288678870630846023608374478593426051784183225304879642814454113936721425205184827746421751530304620229775795822767577259657113905241720933142170683824947962920631185696807756794499889093548179200338954867405240355920654558361236713073526824710700579466468222495426609767918117956668464829849405725823167172958839170497686559110263507821670424739636760389479747422140825179779658547434263725528503083488689700608189607010829653403580230788028228088768851080497726632297938219277215540091896283727376795713765547599327668989527553953698338998228016211920610300658811381463896590881943460451174911169146350582710887604281705074128424316025699788988992534821555666943737253719370269184114727828720704718740482206003574807097502714901271111014328534286519029202546638367827371153008600175365895815936554138065287897365531342038442038511497017493802123605895940750402504920873909936202722781576037234857561813149619892719627019904312330648496554937121213236580995745485034773023040849353949310263884332621298692531365296057845176053633765828672472180051939662286817048073311193823046700503394482344693014383855818743364556085317758990968848703409620934861216157525074786396644325940233229945595972436853637652163189196040231412667290266236157620448307789983042476044301805211332800880522564783699337437511406802623982547747693059286385812476289035917088120832325772897040946212660285070056502707620697183703359829523014576831705100191330632806963584177720697830820979201034411165468951494227345385270910256563926379742022838426519099437172942796462392008027855922994579381096884145334889546745977340140735120987767779115679187862550696926200899736369113444247100771227533379288541472971290206124544952130765193629568673558009345757784186234025090548996188112903283360789829353859522516367889791753223585385578031024145603819204621246852260243067230938999000061542468741737280015242818635343132708234061833251216433760909220504537055698093763012271521916443045772092541145606336316979436915980521902605313984770050426702739463445914458659609647602273012945392609161459168626484781693733583352135460385680929946229135057918935164837601595077870367499645269480929451640687043412132569320058784603027465801022771294182597557380386229624049693189560569289113184550084026244572452558938355873099114738538091933729473281374884835746156528266939810857804612420153978258391642492655774556809449883791951787173869893577910617092584745981571641324529932768001967906763821566422916023006367789744617804631956354877705534230098015386453452791678590529935602197295130289417640804044038054987091061074696986125576112972026951813253039385737799837903307870770665414935613350490105140972665755279612960966334268587933237341005741418173999970037298622119652590027204164041338535814938084668903786136239847878743217510642487885647329565759193650766742841877601034607796098092977409631017128019893535663144942002357093630142339481813693548627076216145934685934615955199547368526757459084096937805715404191833567246496870340171552534640789988221452748768340138516392045801773667020099893084574360123315715789282491373647555771216643490936148804474833362394435954628954259721291180005710138200749890940698541199249759473990133710079451268713677512182704985658907926222351568081692073586449368451498926065771510368995897813332575975456326760129917146683795954298158066786384258071227731161613317946492020948381550265982366830599140139369146265249095075822573166860805548486556715742421784173525562860412883732287527038509254357078469363256691211749242467350280375804771436569218232245927021614683273564735488924125926642328538144785876384857805734817562709260395361001514249843932715433928093932753372324725300603422910101246149743776922595251304607563998839093220825591749474742681686492054532311783483436885607667379416481829760674774884316411886182319410073155401139263458723581638434751312733358836591347453366238885435895602975254343602776252739107526087786514956351696565121864359473363462955877237795002625395827884405636891865215006650349350906728715596469502127413101287653895073084297350032818365938104276519974318722073522169709077637536523378775235453184532913924583209860413308273737446866538811859787392765129001191387094549914126501718461411319304340563299156713234019236418332510290684113568150438277879462136832403272987059417019462287641471068791260739874134380239703463011159002254935855110460875115728295416242215339937483435908036191395424240419274897441472171460784064483828945510595979460886043187226403977102992601659294610165404036914757039416170776892298224737828889347440628391917272611785358385355766006932981253578510087834973231453242521639716206056187288125347920969443423519938585542648777517517231199854130245050665497805637006277805138278976432105331476209816963178262628497001695054529194455834305606614575384651782939170979265702868496607357204943023664779826063585084047287874760290748601176524461086645446030104420761931810081710759754872327086994284416632426894227230357835164363234547853309934543225486831267340538408858958036458762991163445679156001774246114669274550352495395325578283802019728770594224506370204245103153312525581222041369865537482534880036247418332306606418625513252984359958810031724743234299477218047654895605259669158995665406011444171184677371950554026047925432842827109255461894715328979859287990452681682281793337937464553889599265261886904380270222271656829166641413880630207599293227244632540030981434849670449606693706943111362696075582120428391825476881618991611535198972334230404406302294616313165550205227487839039472117678583129851288112905544385131692890858618117871433931778167893619167669119851812130049379502329979841988813516542831027211360588958090962053250895885826245067288108210657519298311037127997863945380242133270808182939687681586959712096848872836177780776499214180983847503668305250055034857030265100478019433222208153672696743651864032655938539150659743543733870621705331818094241886713197814020023381470067261159356678326902106719494579503614237790331062656169066775742574372117931486205430051109212601700919729014306158738599268522061870048564589041653100806306004782783111457051053634283323260371414127009198271317884121407299570138812440497925260354338514717787210752544104666414564837876596129861100256355526167017449330137252524415288675309235486901612887374254851834140356618090107022860977914817542197595760434511726408102288446267120624933594637555868923478313711724922602234564592802472228182338655101782406185083464136854153034299976980517543259314960815783052812227962202574740372686141226951815408633986145855438360479408534582342945187517351645160968623458174861099589303985913131385006638185091465974013865104661969688044751410518671372420344303248742431549119169690700833508671758251254251897840162912356993201981446624043141574911145979143637697259482593118272065694517221765605525034132108247947988694008807370781552352778474359086756194858358255982950616811011148085424489049235418357545515486849480601183003805059698932405025740532964851921168428923490191879190040371790372808467073350953299685007881439864580969047021834654357131539521209996026365321268451094280315955397829615940398130703452217379172124707859656178012269340276810572918472843664421002895847588533790805455525346935391758150077289115847109562726546529275764949703379267290043272510213920694802596390645680731628134957807776886739536355228932352183118730650500912458455609486598596537733300477698388406535150747855077119352365297795741306535688577216763699421415864864711556144768284752646797594437556002190064165271353972466239905429435532054688743907789007967293826877252450960619250886679911703965232912582344713126761065914943044188120544263562617712156028432178500716163872907200985631683108002484261481517031555503417095087033186195064347063618292621621322865503703125982353288842793587742089364740178965059583640321748961125002791987767118827021564830667532856177690813024713169750042238082317193817811913681112962734280667088067215620543482407509893664617221592494806606062989838606027814928118880379754018995270094623613795082288051664995325121546322245590634451096436384187327417549679323039467511182953293704964880814872973631621400017231758114075207075681187930239913787412245625571200028962383021163083418550791504809209612034661522115915726211678370560331233043178797819118016300234978136058213169697862433839634339347757109642961252285775913736097259631339814017594091367996519246882730306813460725197264577127569561700061323592607622371391145933166454389985674621813561820833660308838333347820683256317313853382338010603904085788185458024838037483421234048863985645207451983623958884588857308957534016675720116916303861443006627725849237418405900248322042185913843343185934722528263812039328391696365797014226489369455003265414746430602126201439495753396220380937572546332175408137272282198761438801167532647093952752618894094878441970893783763952005432828869621836622210333569691246661660221648339925679008108030680765202772257016192977333766480096571403345824430105496890864979437255366626916848777419101736722054933359971466390673204306270070064692194998750808008043637481397016677665867154127537238437969027335911858880272743965762378241621100204192431168400890665716382108710373758312502771147136015933500129973544598480504057833018963775882818166295050814660868779733931827619697196957255653193080709486468608594206337928107963249282504172279556206873190985315665810789820166538191076831701304505725869993322805513114274925232481411601478264305362988943833581893646975682858467652225561119370541300808083397678099822884707140861818739084608455561864997969421859091144512735621058302970919650605932693001847385374597735000068745012204342223882157661789550937303036801126144948479461535174677850788823062588551013436804989055393331354058699606124598083986389380275975106104263469289681190108093553882460819291980055195730953586504925139068437978813853545584392162872032117451695320675360877862934974468019789505728588917342815772374057170346570165450065859865864623394076087727904612948178347389537093441724335383221593776161145677922463495161479054090170890898732644488529838883966770588540537169511226332857455294504722422277805171364073314157915354758639245538153406146777237605376207628044262665039856396011974088899288128473335267991238406177143712389392419131420718087564132219330507179425341621349653131650916623511845530311965767475970940404230124007724933497385443544775426324813989773889675875059115441027102692200922509008839961915303477868592087003711600139516693582700642366524742548597571022153294701689683098954629196657762811929840795199311636667754683689432855973438928005955258547120347641315277555291473149325237795658371596479740096493370726089885405830956941848265832290394100129294162772300131826998461599765336716506656753498616353250281813747273808648447231190851527250779721161591655261733244560399464929494019713732590092350429264093556131223754128654788200611484272571412313130339561469148753596772393836395753164009937335137171820157787531035821919781089590233275728813869159131715069200054226224947518340509060020388557627988136272195055687693984130154829494623448138167482921381890191295824419392499282629324396487561245868411388383783299495495734795656476369605416601233062351966429476766254838285593875679829108367999894761173616336230382350838045531865140368507207154044008366234164420251269981636331605478269200210419106446024349283079402073886753256152162302288082222378485775703756794646255210090361627222366810223944463293242968026211991740530731116624677563856175759952208028863010040134109512037285565700339127270947766245460200879347180758223764345398409726359297908100108434167031564984336768407071632350707085376046287027309922785757010062838336087647608253433885670231369584818581967787295414773354522373469717150578307898431392366447064789595689243418493491167862922535593316451131748523057676305224874730851986186702829901447939546428403824480417041113886872612573073219031589363071754336054652417403420124937297729874034828074389815821674353500004615232670221056412277377009063603625742421271072212694892484650354254338591538293155420329689850434330470776497630459188008467244899306528551143576712944281173849467815111148515268726598614436497950841060972865673247113298901842328758030942717778547446755420178491203531408041247502307793240636680113410876302607834318292296507702288662883867588358247335142357644886949058697451228180958890296159126279003115358253292923613199681565415643098136759773560763302583516999767844339098772321167063016413180921966834403695334561629464820212161781190711212393106921459825324830729025074415594090632604844742140983797290938730192312112713401696200025151941965231273637514879626870552882044467631076244586166746752861670417875070268390063984034898571419317790965420058302947833201829511390580249870147602485256672666473963643919424665190757841935397872503150925479254295965186923453073288398300345793623281567758897710099478451683094275918468519902723313128754479127257212412973951039341686391090013533518740689665638076678709636802908251246342496115652160587052221705332163240264589288761538526598305587317685484292416450833833819595760665637212090857757021450475599447500592970576688675744357145518736481166281158914162466297839636306611958581263340618609761568319394827420682964203088500352100996337044042220962581461455633996944830535022835282040150274794776536865691412317421940492781659260276392176549220716536473657395424333898616465840315306687341675327264631346383193576455039420332175807163336948426286142080337874995084947570310644823523271760187889219978970456878751561660482377683870831750074627364475526381206686415022235756238308744054921864761239417474318035820677838388868509451990466502412494022302171510213571736737738703304146574091693850676285979986794675050731313058254395015950099315784184731315605452956878424540391362641370877052607684335259458493952905534779277683061629335885374502094277351757883978036703179500365276690001591908560383603849027532844644472410568394881782633652258456406802826223037755443058399409731039870860000633345731585208439214225369839274453207221647275056933891003823259516961282761987156206585877378979723780317790724958434716685970868939078815838856050931905988185825824333412296374387765934280523191069676539109887627960909175756553795936853818840335877553671760992856237137655683319258824626969662278050266565744087421742600361063469695717378507531996582612504240094393947485214197526517646902359135999567063562530238789584220979072373510968955632692111512485203547104183733096158544414676235254246697042128964603376107720849744960376788641339197633059465654225350440149930568701316531309929199470854348978921486140968893740872677275286861543118708743397911282477578706789341484592277209890249554441921313331834212405255860470624055134033232853763502735648748065593287600446591133996541927924291447964356294779695271189792880051092619113992911209506820494822016466621141234564903497770771071493585588760663178969108501163411402567850941161730760921177379995032508126579937414263687164682932351499134999949509320607692033945665759928867122048989310864652037182684441575329574087323695953560876002417662035990264608519607465687119188461007729652839867122555881675698403262204257570153510660128228114399847864326064661166009468016109480915522374593671089098601512756675464717568690989059399530689444597695014907641429335497465611564766396684054802739536594116096875460928126873341392274237158693433808887260656447482844020174212423175751138836493016881249307423663290321052997113223473207085499211464828092793805695638238965820702770901088457799831186042062677785796446612500932233388231197038378988478465543453119337156272428468737679002678268112701129923830579915120063923112900437293019383348819629964146413137947015131775816811887991260421379245714832680489298793885909704675135365510633396873446099837706184797482526915640435231330769237707331341911233753640567177009607847061573809779372037534645896628719762521570432116108492926923302509626346135056192051234747909314620164999293891074525920541226619152529931771857476364031860687857286547743142192763671850204592359624678357938116058799221897932739571800558949306048246971568820868284109199260951966617514745360284221368921236301560596523281886649693646366500480151894804398190111507611814995901224907778463997353575227889008659475394979938262115233772747706761029745264107623739510646307685570247131924222889025280543212149719559758456753014307254302098985520258447371165563423788082379745429125782464134905328437615516616089648960962556433280189823568202493084542953780926384607946148456691930686808989181683295288939746018666089875210619900032374666443387566512429678569837085099418212364002760849485142043982908375134064761924066384825401328672440316482927927087352918962790638529822024234599107342915154681915381118437955883532640855146965307172822639578260775887030263391427280336221046089729354416607043811128207812252188494048377373234597224304502640177541347544106310065900969872032286111319996434995559285291305848274758543019967372845524735771429166396791019122782814426137033119590905187706158375665450731530723966240826718411383214566730790342173918581309404815132918057007493892207806765441724490871339835696464640971342177793455931473002742727030767907089344869627928360888109180975608206407903921556600738806209309188707286126072338351588411126634693951420364462034666662904406531128963864818938764655035496358792523150553411132926959349457509615029299553434721678594665573343233489920126088716244656404871831258317189221705327661857074548541557003489616691297016856633898112116621897943442858777690118005654783285871722535175783547265770644501685026331933539517147306895353250130903098033646661070518362020650131669968399659855869080895008205922560789198102473462801999684302536926395895085542377421326428115974136638324718487592984048631670519642603811864841535479462825805156465161802729488612387926815064437658761589365484058113411199376812962833314294499635715334349476255383614008248243873975890712649607701521709753248802586588051250037425630620104273223155397799587185976827264416962011852691104934256020753346930198007547730865401184173678698379903091749478955497305039305205728925129233457689662502170831998139805446730169169150252994775847617877304084152365307053476551408234190480371091358703317574064585286736631830146965604453032246270033523008844012414057483687690363333568583648714778538338217664160508626607069558068588437021370129374773996050738937627902409457096272150567354004454473986359938212531274842973672488003859753127266925113835314595299545378928381222035110179284395434795155276426725177191130418596966762310963899648947780780666382447438625687856985013717127121821879770797846033959045388693000707787278341896564891706512261719940212689066802043098662375826395733879576257481631698868157232817758053548529958843733249938200388847529391526785320989449648058235375244579117708372635570676544353432663105875025117405998128917373018523153573453296285993461655207518810399640578133468528605841370496937182797367438716064178081078807536334425853813881826973854931688696818453165680402340304131327686521348253586116400537320687856064990962104983149922750975529249468233021808789399185410003494825917566609283421256124494404952962370324033038121703817787562031280453076961882704592534305606382032077672171732440713746551862585146683051864671438515292278138831092400784527798821704053187376341634028579220486700077465281457658385910098693574963903042609904970306317908080367777877742420901053336521177735762729313015924516941472077324050462816285136552832876653268068687865434842997969316046193341141811118463576732434103083167301758219790153235304222031082297064727890448564373580097883279516481060289024986167763245383539634747046164871163683933361104182501479856213234753123846136102127992312409462247567831755148076613779796875791360682314966040622709301258552146006747737430053905040422842632924388159831561200300401938757484098890174440360311857124727271954797397834391702808404717558538738065917526596104537864849118486726042615963164937569578500868294953544274259652360691432899655728543713938742025806755026606245756919773713690981230890311180883718839826760828986787953794486499533863598843584754316660263215759981897603634942567197801596048718353355316330341801483902391031080882893801572536605143346710217522855663141876136495204170430234639666668522577043386730091484104287928580885129180064265561378748346537380589892384154838876119263004977099312405383516302200333382861881341412950545984238619738550050361629709959156824066727223990388797635479129601719093000342735253758637257977246438614200250542860928654894608579465491906405593976770541923050825631613952833040871743452125915114529356390668497003316493270859629243664730762797531671645675099930809431461904644524978189856596130650114198945676286543470996470216429083986605699484865338719388326305014508897615071499723155260349617879073915616464203249077162239940748510141194957074168063798964486631464718402019158364607580837000934176337005478131780296079637058541081202147332082814615234018408243518823982795349099887429689253173528083418622381436228506869612844016680203572167967131240848590514355105144600586790562245543434411616408069373816797507800189949649811015843009489682678298716590023475570269797809190653579759213649464873588642809091899096734856944433266631841649300151124672097678526854036062069214428294414143771152951251041339715293702014275068130059472962321297812821253587187440239331772386091656041791978770862215597044151285864490123711179537561763931855627985899943008842698180140694254835085186097540526020735179037452500459058245722159633278301931934644169596141990419089680404747997201755177802641185670157719490172832097099716779735728466015045941317374103797977523822146180844416482767159015663399991192151396677708366918689003018523145389403137053070969714744430913109158664738802324999515492819863446968933922165928808683534380285243804787259226768304173787464655258078128702939754207751731377126330171515886632658955765793901173270579821849635861496529853968723142008688950407642949312986131204595556934076115228398056835394134230119674589512763773135722520658765381585064607622588379179533722386468223562323589937255919700664234877835046238244169735900678822366978675023916496613352257031376716035182136546038631755474047861871836308634286227762212524145754957731204358386617433169780786260752646217528967996504366732228286679565807426704536664404174082035558119062144256514585260885127838562154367793414946306294874468282364547493143651922082855651918805357575799400470104973365704213884670041792762794445403315316801016850819454121453781708048895411556221345292068780537742497733743631917447761241119512609244321722393679050692304405165317668816728998481545182480060766695514687756489392018469753407439857805161725520574265364718513670336066847303055490076746128709741467192336129205851199162672165365808723589317043938157704277463517853964214796756972573366241579514441213925578876274645309483966649302401374744662915837893853515512248476393244421984221076094947007969684083690128116279824746847155116385326482305334468870248592521537550311930647562600691951505714337679415707401877014474325424597104011546448905507382195679650026841510671292507034064162496632290830342844788122010253327083825018096748086742129215868802193874330900447008065759967055566990663658312867378259850925865020277927379441504463181874513166006718414534005061924873517291243292548887995267369929336688123807051636842273335794947635597972973459493301004622143724310302640179028738734467410434024939846916251483790759026775707913421345704640950153346444062885575087266615081585172378326017230869884073162630655254662398907835865793346845685599174253175044508722729797343154212175335170712094031184223514668716049410950942217904492865770917143448633433034379513623050107252052062735533600036676227337175847740129555948421464528883362802997169400739851421433802041549134749492310164776376832524207614541996657939683661740093718821555617847797166108892718916879978648618731870526779578129719466491003639338728712571103816816928601836983204622871140233846964802290473234565866816659754616936401657281073492671254404809396001469669323009123084653842466269653737113220901894037489821218681124410346382389865384115764797414941767238309506266248411265758980264256186838963777740004455616918649868001857728342480235497269825430621828191396528591328673814478958591736596116245092675639959097488522372079853431412003653548831164195070707204216492280552516660721382491259768052636656760381076590603249109882039147904440725088978819092193419624680732014446242397070216295601589661725828771049506342960812703317287808533608337863898258022886666247206912826083676651220497959726797367009446384528602328797182682456896933100813797575280377483934336494502486480063618701430243869734046839787306132348563816851344668004129954560557764741724957186463804437290921112632351688937256444583155514872059675452476817759842063232361274474541113418152628556539036058578278629573673008598044106566239661112497045982899754385550307601621812929200753615013155478158751927854785662593846572256296366945459072805268587534844601686058553872806284982016418083703974514104505847400052277092792371776293825024400488851101171327145180311595626130048473362878997363795856385165097964195388789408659996763235440762971374290804834940441663320011003775026990462310407111194227544962863777700948337342527277028830703941852669521551029287740126575999452161524090530037716519996768008540055955738212783754468273612885534500079116072543815898446299516500479842327098949388757314222199935643754237807921934481851883550959091106134684162978209627008622041795959507041710550925783312272327852637350675483657979323377719856052557003230922561922761154738543751616449508456248231689680371578247136211339105257226844205906228651484649789405560755442330791034780590440026717510800944659936763663481348723283263962766430856381610696956445454595317045573500285695755610212558642193471487037378111390385414366186090151888800110003549299355068523198892243154450049416983761380007501763760481704881643184826752280346066614421052650510226311938119080267583814398460073268767862889808765011669032234458697678113709050303336186898151938149449831468391791572218273488704274766817037913275347543829898926112068802412997514372653579724599023626685448502573899100124608143704573621938613789961102563867615207761956213578657393520906913042104847005067450522238003864850524470261259863519566111069511307053941882914628955401112606983406347889132723671719574485889074645158546229132008608353368296596291586129578670031832095065712253841959546440811009471650646211140970546836544632350346012889365936711256272596927297581569337299889171117906253380563082930771880342958074459761748783743702082674294947909446337074048867344373158405677799608073995495030084153150338069900318814351544741222413969244348288004474984603473357825748710998438036639502352375065083885190121126994681840415265560517795918494030597699619731632351827340258649901057333349552350631856674013681884066807133980727045803438763254347195729319425871486428838632292783865184356388879989113226604526503548083305247973354929515727395601613756559745604019908067219739869607731665409593127593741211674207353874333751408491421211307674953098738451194884621848247795748187785682452740386218246767360157467440986824301646546664623030042005438629668547810191871386163498224754123258519874416584038645602647369289443568634884020535760719964629014870852808603816415308060204297105219240557576000784331785142666848551691596894304538345665921851475852336862908732059004134955476986934157744387900082402675034440782404724628081483396697979539561772376187528548292078134914468655968460548110846968853408530236703096374739635103932770390229601296334389537756544579793562174408139425623073951947938975077745500196345547868231638838083900963681900799182127227513489273698608622584993099766481981058103374794332542649118992879235862810000356133526978756235992832815338072721810707775967725426247294444316100054675888907489108002699269878164866634869187533944179320364930453429507027541537843772168235720822612868135965781863569835771809274288773365026042752492729183989675245660440960492880086819937013616580004680313804695699014682508843581095842081697179933195471766163988867648431708237092689142199302239976176399650840974529532882700312179551604988356820245866842634512760082881773165192174784163888046728419142983008427945297138922385798424813637551137294129058294512614804726968486881305922395679596781807519443480731381266681238243739472519916459530702394091058879336602170575845611377722445493537079139691632462697550653550715523941133544622551563252348868089051160585216186257162019615391870100498316493933602508267548857932316470186136011197253013080745172535931591629764687304799927318782835417183475700086512004149867215825481120258425512651063701139791495754732019124008834338329656326424067204271811179386224383103111081675763489117529494582781181893348818999289784256083344673593613322780106625697335572375789490422884385419473136842464827641702565616156171397399121992935124256754620717363795735424847855516670553176255546656622703298251089254969721325921923634776665638280790104356505127316213826132653410221831122337735744022875958063373625992082644826476025854342728338860583996953162019525011715621329558070749378489658752980951681499579362209708979989850956147785807325999878480800485757237507506129085078712453916786653879849094780251992567588956398258328748307864730469067183237702350483513388672556741750291469047385385907477527813682240721619909842033842866440216977703671574197619229708253235116772720523408250048532319259139799699652889131977095412897676262134432247470952930921464121616287027695799904143347906172730361962353462955962559224638773939766696043468088178307395953480551001191800821781926496105763316766922285068097283218047603447619710791608592187919183301483232990036191521677480795254735868609783315133743330824510430577898620808998760043357169065798446134712811425996212930886096079176656959140608806578737224912310686619517754882219578301597667375650774394240121932419555511834807566806016360030420113235113514892981416645959482264049842707100252445024127782790723166268548266370030597385922502445757699846989595357680573362469144978655938659664067734928158732476086246047744102511858606802118962785281947340388264355777703544707604585642779680122061183803050703595233545453151907664034822554217366751664918997037054766648608831624595263356955677544720468082662681727155770190206683909703374171042923347963995473724545978913547905092655556727532058619627850912603097886172565742079825414479120788349945751097281708696356723654895686764792857628216598171849312953691799798425833717182227798893813391780017159280298057548133124423953302156125849532250265670837106625466407558161796094021712056539619953740918654519350633805783817253239587245087504406602336982963456497587888093583596584620033933391206285052034403415988376674938152142192536798147572019515981057155514263193396436767319391301197487113780748897643448564278482997880242037336790711778139421887888146588815650781498615438017867232014104606809483785156869686256429714608864460807328719387361364995603270315139180275241156222786624053114901102734050224298398332852070055415340124749367501198392441500308194381176204899771631977853200365152369929405881983036962226431336523966284399257214692066199013991490425161362019902304391434807071241873504509089478077989513144508003427958737698045598009691461045766025610757580502270149920865906252681573997583755621846255582250177432243983721017776923839124021766083438179672659906178844374013416655298738943219250196467233599107614025490145457905253639281354830480179701691965589220399339413303696803154547425060157945811638428617338928970894913409572590594894758674468212439571479750584300679942530300289448143913282258993667303678138844104867882044567113934989630162866862105610325183748167377717496304518474093719867482780527727881043907105141461314417744993531423344833741188033829559189952212160437356894327473819445164118003169263200363453857973586733750605444645743802213623535728762494419990035103484434230620989329269672942868265141201920196641583744694097983567735197650844327900277437801592973535694636277162682379547662492676299312115968773251235298884293019691774313599809494195076191692387776872643016872691839949741357428666821293743026035669233215117114859262093149470719645898293700413144286140664842943421270005314838180766480021796269102013978993311638045642182301336469067840400748615015345836769472300802182014751368001961073452484411524613673157909746706159880499800876186294151331207595657515588667538891931437825658517473102754129960038867895698645528608055943917575877294293584335245008698263589738521133719134550471293191760275579423039057002657931127772726393621650173923565656779330365704421639595315344931959324148015226819804514484573469466355100385461361126496070510159371162878239890590751547811122939337902320716936930089985458204179469985685504655681798397952387353056377098357178387644934882112021103229862733972675365357333260542109251380974874400548337041983767570766908617532261193305318553554446994375737836854482836595467388801963713569756133299468719468842612217091203585071189871323492803258323045207956184786733903885247698439145787121638410670986062341392184748917085249966014314527806231153250832584238620896424020564981352499518799765435260982602165498280661230947055087561471471999147924911151782395206919679666827866995961822117422750985388323061286270549657917838868258526844376695583959685461377459977815154100305108968751532534809093881578576736618215048939745688686305540413591680104778471917166349933517543303021398221905569479763149939452623623497026267135005660264286449571843433036833449557452619967092711004688658174079007465825966731321242749027858444526606713815265397443291381083547397633325620309202257790811188408748245712099901364432182566248441143153020775016674350859559777259728208764826709402273379240827397731644651283832268783921480989118577267766493906223430438701209579742526991851624647184523335110304909243822057874969471131301938629769391576831541809999769301988364639180706932958870779968644100621166627965800069224991043010461874813304900404541573564114240120689030555899972594301853398076908380571965799289489730653627705262959788256245728710522961659671047693693723435788288776990572249232867753804380131367193369745779481940757207379854545989114372249537217546822303319488538289613334790316659008788058548373915978383622247327228190528131029561890472243939517470743512681100374034003291783865462222254028052225151142316280617208474984576140041678351982486238049387391901459121673092021191275373756902381741643801784289043963344817255440756042105171987231060635573164960824873739820674954831148662579430697326594179405543421703455998415563941033654531180980099448898921561709112409816973184412046566600224429318012317213180774227009617574283216601996542271058112358065178455696662915814020009130650523864008813787699525538284904457766178651002966890963767140235800416811423908877158837291395463094988512435453927249852889121100311629093655675836955348162281614981355238312353974741246658420246800556265375213795131763670543087471857888408901451178595511893338634883384590232662466403896911972328330078559232884726029111965007913532682033622846665126137353858182517772101234632903722616372541937813042843008346738597143601036972123491692497490418109817034852700909665259273373178877441161591426983421816090948989191213333898920583449173268210758250549561500210088255325360475953246774801760884646282302331199519845629308628830509869013550024575151118443775482241180697438259543188190348112686699262462365570253846958398692669611628014588782610728947567933000900116419244502762929957365521024781296987911748829426762389863247912959703510228899003715185905086864376099171761112644477946203854551440914053705286071363259023018472232999680043207833764644086422264220910477640457395515844561527649758486848957572184549873137869574511373552585558174771744492074458859199295170653144115868124563931485640428558332708654790139603210771260742708132098206002772351695852956111541850459085230987387643342029755987088370009530804561174199100993103415335659480465445366777971499124973309371125752698359396868264083133114800900591327271384805498499289554259743580919676162325925568918293177479019748880509905712673983700690062889275860446411004976289919199007623608014434223244507443950553773795248252813459045404357881902578757076299857372411618332318287106079760421706306828649003569047276287431330261016358387393763022973845451293968944317092039234737946805156794184456841467065152974941206064472435669348015255581249998436145645073702405150306353851148355727925885691690400812383903251897296574299324081933815123260239134366477147585216010122669932196674819502896667738750907967501048611271851781590767111340539573738597669683643576969645153031967962110538155291419963217812322427547853165537868076773172894644282802813409199614760907659283746938642414258709975232606353605336068246089689323994627238733986202568630266422371352067138969982119973501549975043232448696616586810524211957429612729218379434684191584891710425740363523470712821613288525332865162336524891525198441653220757969032917851325671191376394885669446651604123323919373604544784375923183571337490338518443769405736398665354665466193108352489216321721852233896282315787583199199096107347574254539043340383988007155924662202744164273437228736176264467648132220023354476089742228993820048142089044132745598076558835243403811000009419008190703908445665616027785916668419520974267805357655163963673142609195645455669601894536186069378604395151956055133451153071479113924817852908446987352803377032911635506565871325511466099457061605591003184303800047194553080879635015214252319660996328769638952373623842545623290375544822427601767847867603860130254502629543438418804933069419921074569718361797316828975544301776219937720941809889222246919880993156434762892499376990196128189374837920548870216362105096795489966121300932929538914391683897922171822750727117784079888328474330429993249731504625691967614397551960165793639238228295657697332300986982865350409825207970337560190846106274178363989395019749466720488950578697608405384873635907391578442751609934627879634508123019179149203515609170534280890735284315574181630453976924867825765324279362060421187512412911386771232416114068775604225721683784635333836629116436714406285158490960591763046025371617786219977789698699107413440792130781992512832620144591355863589853617111282625625918392479667974380666340218261249236200668518670860181057906264509127895599208244040010086825659079560631166940803805040961179382625009169918644384339992658331119265124731714571456581045195342737441567728650800160488250392190089572074068600452276832317563904537234014223016500613081222438556845124262272054298124054420368211109829001281747999902237778153182777592282492004254373225217799996265304936788154341338099074479803017106162470527554677269477599897869598942226353497538957265779041741605292995311331630360417539391013761116915263430925424688231202042806605709138770510593127153126424780646284787243229222870272649494893855712820537159011487364645472967062086163057166217748266346739690440226431786379611736040143933581655863760832224585531208722467051019406126554054152148123708356682274778080933543837453120806191543988428145184346602958013657198676783923066020671407068630638479889910986306183451629388868967619320070884815644286087631365862687380979458642039808414492178248008280943502832956897928575233901205495574877196533974623851722524649617173894498933803845234286090717096869504037314004537508086563660269771953333517893097318154874833108333378791182156253213599849161127368250821441099881457247252035991514260530178250656976074903183871875183960136814943439875792607399198745259373018136868609288254866753642030218496728126246501270474770705685211252573030470134928666167589407162482458424584838828612700174826801742701469715787203111837980519569008577410309900902780244176004822691965270665048316949946590846817766330547125758280735594928835256473875322415159232777828734580792677301291962410654141318558749586756412877945245264034267177233193799317200151292444108690386305178788524821498928074567800816483903866452690279690850499165156347689480633772814910073883036897980606158562066772346712124998815724777706381469723386982133947955836203588698298833901319250698858373604440337928518294322109819090999919118699409613823411254176808782788738554312501491033497098680441201284363100452610968357689550008301854308011147566331174238006802569918862998690374637048690425968708506069300612070936924857626192100606888606718193076898867491362093029446504400609382809522411274322226090630141998856264586948744488671194622196513232999296273057152854559854817171889226300062822469802527063946434798873109370438776796142382035439166242884858115000361894083311275364286820951899960361041888409644344227603449493655501352238591968341754407315018120751484959027816352096125849370725987265359266354486351701340467046621295459637141569945396693644180598203763295952078687346439871540397402743144814621495951149989826550371899253468578125322503743932732259678602193004027273833665252859886147462755460901585185317490336392675175803827789952162395729122921381806053825242489260369037433427777855510607433765338582459156669110224077052461750165626174550070671647878714225631463241783097289850224610281752246912009288908146693387718636082893401285736654894219475335091405510097321122376640189390926383999316883177724372252896318826359158816397569214811932187841236454215469111039945314500414147552535953690213693736720763238165140186909763925308047671366123012505038194800197051990251740356657088213785975958346683700135982183283530203473960607931314955983928068595525967908611667160047241977621713540434141250292993534023138171613391213096080891354285466688006464241204397247593229639048727860076004181082949762412367394660529429334240372279077311418965190677509756591635318293746808879232571356336002137737630706787038717874311810045214360924580265784824982268587618616535968407128613191078347297315952334932837794694934722790729927658860361446620141075660176161980954762376766276391649489590916994275121762770292394315821917698249995288551165816943214387017165737482506876748979133161580428985522185390453841520195298082918085622371628514310244267105518407422048458009779042195349952947383322490091543825890824516921822060858021543745939762145349174640898057105337667985601242453648629606814673657676959223831977207677960025887613767489767108698827752528277548370588630224250716092181313469258469929396682557263804197035520876283001426106890376856383154784729211263579646004291092794467476987605911121466278098178734504682802472713116943162118868710338091568079775408170973671537047871365312580188810138932979348248486444963131580864497681513133981253005778787814975832500256199461654809137730144775417563118105175088354811165584981626454523674825169959138324442389937868994342000527219019447189281864398176351723598394132299132167234768140917532423172794392894256051037013661255421141688560273955256698942613106035841744680180517273186350477019697437174666136035752920750038374081885426866015412162783937184493969821000141649275433129505776507751556359684468481204394117757673019996105832374728765678082288747991053466089825848635086577974802247166102185723449808853196582077076049968500863060549852383051980141551566204973988829857402185807458342025442102364344943831829568609407892448844423286840012114604279076956948294680701130687035028700776654870291621484005564409132626707342100123615687959902547165513438877503598484341406505264300499614683199656738950395994739972519353335787298674469175259632167404172328294872920469198205467325605073441331718639635301591902946584750698146237981648756793982724283610301340103977063135043121374861488613972007319901933663010727121011706963351018557457258302903748385775678422364074241216476486316177974448156158045350428157746571955100215283351075347655735530186206395692166442074583362905692945974108030618284391073289810172786361192503276749283000999560905143411537969452975391711791372382835366911683782897136435683273162481208444391893061449050164750073105607726157737545304283531980942996224245031122331939205963454057837030562438192123933004797313130794405952919145331284869762014220130677172159743938729028142324890438285038455031162229503402754565149282919793663199849627881611963251274980823514235371978657057701076549396631799943570662640103333134495135756295786963210639982486344555604580319895842614345457819030996333367883063678455584502193774809212249190924895892400506093881633986156940667385537804803573417870983327490506180388763085866604003002879488433761017531298476052929023072392144622443263903991991285969412469827073198584133540623155913774577820439794090790911759467733677875666779918533257989216557645229428839114356674356949911677641074631872776246178894963707922673720583195042560215177534606050119650043237495964035545199051142812711851174083855751625071245449332699808984784023230125020778133600096265530187698063397928039280971984615731115303524460807084735683309448903124625954215000955998780584467376067766153497065510169818310817766904481239500950529816857421293479408645590712659095862842261733609994215367587890007338132568896114006514015520765152981538564439603268403526469446916676087517298516946396589705651335874147572644219641694952711597434289888054421213731734780965104147988294861126584918151105422388564436229094517329188889919956456987893744925488219646122193082365618787726766233960620506948452258824939843469887508382580050655091031182622271870242525951549753165875383431502765992268725762851116884821791716762664996164433463676578920597989546157131348239124187339044429127686706780311374183595664915360652245726679184054443442985496059446282395887825859702371354599199726727497633298992525075631108029446631774392306340202347638417682049503612380715128426288086908896930786556155553815466536366815954800860330284137334990296401741971442730435665278599702599819087453858781396337600724939040772273842329539682538635357690605175980101408947462552286841631281897305179828405467540441460743416917199319449193287659278673640467480596690998900510389809447142474621379085919316791912645299464894504340430815460291682746500994438936114075715520904705622297890690269907643774905517772121903827834353062299470355175832563484205233145460536058331274649990717297976596376407204486545534815080609625927475868929545814131954243326103500607540612659492678997154166282474347780816938654158872130084668892944091476437615250458420952331988950676957401902845425220797592818185962685051417164182882795625861715977483076658594953432903127909830441555741979040733790898504635303752620761787017139727064818168279733455936654513261725148563627807050542694324151257047931477255994774273854450914764390042954257644949928800324780361062521629083548217477743834484373351350422530546575400093098667693378388651416194895250302775853302778655539515942508092827364396551648123971900703385627979113616249913097586495920195691840094553697122093854691957883334029961167643887038477123051975767169543253719160477226901335128608508328166525126987697721118664273918649906701190926859430014822701728683562927813660428473347355242385960051832333839982530979114716528750125351226680798768673175570264195883217655213395884283797722659689608510589023749978289552602882736996632474540394079680977853618657996138339903491272762547064664508541799876965031829562364110052646277991568827982853328151438311883766352767452428420447768208021504166670886097386617530161490697138005231339551901668356734394258318490231378741848030049488550797018610455429822831280930828701918631888217469093329678954669896168695635836452266634857938250872442931231729631904757371860463326042884236088361483093135991249797805655469815101732487642881653632084640313124112917019372570881063909960967770801120667227723661069607228629769278753472212456643542084623380778650832999815163866553723941447109729269433827139387707368895143140634312115873836344918706037479998602948138314856378138545866066348193485642675559763613295876845652605956654053298833217638368682136873886629328532034358809788856393387048845445708252742344793090876389011575142238599922878302318851630799504017460100761339189882835475937586214157421388458324434861743359080030531043029498898545791915352943958142894606999566834923631803898031336306419647528638955043989609310487594931701040642774473997935707220188397973333490753701426579700594193780739944095742148231604836327728570448899682194696174782493902360333170614247133811224984006281916128956312119033860876071481591231366390784702046473925280544028938923087379718873837820257809231783449457415266777649300492220878428996157966822061818978337914578470116086173755930819439538545607577585831510729026382603282478771663086334313915161934933582786761102235593041518336815365910399792764212716527672336485515709530202984198563609442303893264239043120565447777438623635208845930519935440805087331879179149065911242602307376247164555961893105317976990040548328891482270628226524510160147433004697356139520244959618121746745797274162933982519806675536865843421841575316526879015362083162310618372757419576654243461091791052939183567476569657720945434724651473411793916963805691293787662090320943395392707753405962699294105100877246327037933977157320669136256915031432172082959370155811925821755497796486613195262126272622312271322102409628820790091272179305049946951615358495476975270050047417833594032908203586630440023183368141773642794506124623148607794195312666896830093280171261219657026525079783774946897190975819287378191352750349980696896493056826992393820820368896270804636976055857013143592704854515375609817376987441995037189107406159778139259145786490851145714634674517453947986235010476174442911093986196273551374846074151016305686769600096838719136190474873262150895778562070046870615582232593633797231588757644133324516865978009048284700208964356535931993110543903607043340540023333656259784521810838975950255682489519923873932355000830839970423131487462931077338609818570663152944400061874608120659450168936134884501703641765512102690616954697866087540930622749854668937091032340725905657269232135120422451817064522180264369522496580348639805938553178598211810467028822675297349076704005594282969712075990542956429455877791689459462747577834262340055166603918369651764769666636936027315224936402822307471831438121234113621585293697568218319706191925048327141929114634010755168518191514069338387071023012408293223427404636512696456537385411349089387229692639129338144303825158491996133636566103525121447416972595230292348206242075161209278316587613637152542611963695415905986077027493281604868253386649578667706342983036140990320297980915165311190377672173735135792289840795342306333783548567390394510418743594591465249188957505186923504338363850130986203344247150585791997701816023306920565153013569160244775897893627984986571428362477165624543952338814809631584026226482713549929427794721872839681499444877331215026038561289068210690749703900804955407611395824385249596406208914369405456549985961788941854642966521903460836289275649501890081538098358356226344843938937311250515537953372008891339006619569436372382456583468072431381107339849495550183328369653298766326436715458302580606301612218977610201502454896436279793678182121444087776856470119185432957693458270786198351277432916502752031803872088791308786742936102393574884720570096813380872768594385802673997093430060202628790096574544632859247697381982599053245761168181774567194094857291048561248960439015812980739509180986596830853413634183776950508247142263187667079939868597049112273967403986215481586221868763986535234743010095529508391092832278507802084024038635936255113033339485287100569703139887927940025160992381871032163880823816230749725607330243877971771592498920059871705841637712488577970679400606582792856129298107811098528888959756970807918104443902696292318716666307399127497409834573973253397206577642200644243145975590729278817739969975969114879425176168437826605088795010129896183819769401440921007814144048495821321012375775747455550666467165772518895152230125148351007577946184706187768171176196385763596891921094501507906625426185476545749337225407909723743554021048404229303977814215567408734050153463265841846233522714812783263331455723613765073019421443439491885504645051221843812847611330977423208193462368952470550739789342722040831741879221526529830640040118157717390452038643289843916080703853162212620830313939058619934944954369712628807489436603703286501853976172998719067434175636376112496741650923238055306909274045524731251761560280796720382522148877462191020570842667573866759334120134415965750853162347854322474405518643335713553606003305946531457400416613113392200001690884112695454504509752029214728428289665018460896151626049450623515593750424934555393585305695509373852136432042578145844160240576020216994184141221023416649830771689766857924992487476309960171868574540728098462728071414921025116110073816026256163405279778853737560159781624304665938808442804376004692832597414814005374120503554589546672049540164347074209858171815561590288356042273558832558069562913934026956258361323994669542886507749478387524983944794403281362111647899265879845183882796781950387749410575984679783818549492801405231526476040341833810938388989583679362573421965614674202581836785574745229361697565549338974036485085312430652785277728147850108640726541485564582820505783119216781679572551070599347185980291624560038161143026813321808030305173661282561657313979171770184934307901750550410157954359039577262933519186341421051122520470952417778795177322484270955507901331918719602854286269216761129752668740420470563133511811384394206996506431877802783512673787352037076115357881513932510492863102278081369598223632731519566491850719993468634909710545974354616739129512081525202663306453060635844757017010038868261829860413261502169056426694694985212735721342897391115164673259861738062753212718651244756888589726259026667274563626166093103311805899107651043979365725921843738061300884159096240351632949007223911250219187613383851437282908101340288526745124935425553728042843366311280873877275381196126829132010887664903140333998668402880696178136346668228111533108403042703599010960866892796877402982226329842990725239675469634277971930714893983885075942869416912418318783679535193299401918181982106998223630229274464847504120812349162102845978143456046202027800043022825857101058440803128365195223229360047945026847818379425019159057078857331035770338692331455815832126543162937985278090620617680649590882382584398139908337590209766636878305885093389769158370432859097638692855439919286915755884607398651160628211439376809527672932551685908929692256755442900728505357145848920262191418107878985615022473102819734619681320600052953687993766510646680234705592758373118141292059354619439838395005989050911556727322664796875200343287051570026467514056101166754021056112808524243854155290323578344499730547526914699151164191898530818669264279606926280496864761018895106482450323021651786311686941816119469110371482690197680796468520846123607342856153621507035353424230315527252854034580760810577528934667933883871082792602709850455472761351503937397173484211025180843130903159017682314455863209007347842145301457842780587201723617167753184214635419196182235509017727559802847233583640248973862408869753927997593897925343531259787927614148072482374496361482062341130365597641660774417532451251746607425764477543036609292359522222584271215266475414830691502119597003140715118494246611705114901248647063009638977304266913994790077972168098726116788502074132710111391369589287328657672833689780892392887842010604716578602909073640096602534170651934452440432115292999541276281872605599249246336873948941376643129498831317016432432870299302934904341008334099110721283910286031366794005028542870242912528147295841090683686386345972543204821417840032636568676709170127514435891076179579351700904879247663736062779262637190924549315660062008246839998314520357728076093314433892598196153627784126672837348283267577572580967834112159963659855406800239667967214564010414242494842958805780217858846693763576400525494326435853172578650821868398895657840727895300759531952166640585937014149519333755379735681623435108978371368906450333378929967931270700092300368544163774461916571455499959858126210486428919098511719593705928657207082446350619865279032720859434827781928294616022453214248623666972610621314966339250589017329936214538532908160950935512379509105760374239349153885821687932829663352619058521031168004849679769907922119890984930939497047448844493240914418334585567602632605913409637268629767983613206177357894695226464162049385691332446036408002821337384789426988302977022784135295195784950690875592405413633839861737805513970298779020784726613062800752151912432173955503234120342084573671931480002077966584708308682812094919109350186304270773469389932317010458151677265685277161276259846876785069143567015406871353634921043295495560241310905614064961190746831681966665535952952063656043230804572971493708161330452472851263904712497791131302774816989026843158168517065761768742546545344508121771393152479907093872683672987219278178196948184306785283405077037975998212164675703426296443307803471724341405989211066933799410369444756677551655258271980051553385497695212733524845613280463107257832234104062306298591285217577038727417161776681935977086357934955151857295184497903484589448119077367741451944812813286636014465995561344195689024288713270474773865203017021390846623635552461095489317411521799411382017161338348788418422457360647974710300039585113752040600034194992784383130843571720559933777984489446199296916282814652317549100812309536412994091262381327630954359803049021650869422582921269176059280779010080974047065564294496665829848002530131750188034585411877024056406309439732018065083886996193077168098594539744466924900070012316860298645157096699011884253760204983285701248046857347352834284531998054347378541189528718956547501385132331923667834479081434334310083309490598761581323657747151931732139735397746949612056467501539166071912950153795260653010920363386653648580607762555774807844192246762784238830730675727231172875902915370016938073323006354120802373759613452260078819321110941971886680899952987512648349046421238583501265339091397848183351143291732069081809352079514247659344923860315751853018780844320545207809385494719677101991470474224275182470937630412744243594579450433631441765045971702887028280452648475819146319388345969735059622153587092347153067614208348809644231234026875781943458319765530231565869721725714799669504036469805729745752796166661882479114212842197515187312724846940817850106955210029824148247408456910556221673593441087015229253476113448756808049493286593951772862915440776694105617875660807233032539432223157561209316955303854417247308913755204755333402688202586771213466630827918639009363796030695115563217542469653428949350707443391104285860466088184376917155890145190670737354123304463875117873720716426843971497341617639844322516113555257933560368470457692835906474421713444324252891011885041673140126995696217042059531134849596811674078275352002540944094939785101453222443953782446017618328299953146995706304303483400957437819799729637393231214843253935507866061168535728081435204228519096426553750755718557268755202754521812540175278916323626432984801201159798387135483753572193843150770790691833211839374992599957780509686848738936646940523097508823651389570613013126960648386861761231970443747090314394868298230762357391246099172807815071125775732140651824570807795214241726331408923417861435502067770072980606952698111535850712574635921403788767690437114720056605210546655978461928652277930567095994680023015936564714491748233515221288083129825132121487751556994313453810137003135516800804041158321130758420500222324329042740520505372657368114895385804450745996983989701280064654752566461810185581615043892309853316768519220428279020497480778093730063188760340727523161677338284667726137222803807769885780562918562934331121225875780792921830441989478482053834710206063365635123421168950202770842517661495935075067614231478697216955046097621429680989678313877186319729807189718961099355806964012179226506299860244767278658485048250464714074335182983209007215758567247047459419150413763701960799494398224095396317048605904453936177641937789449283992767787310646154582049094240274459095181737327948192477341344104929218254232679617083413447861306097997604749124834008317824037320298606193137082355093171726753640425105772989074740659542699705260836730102490993226967240997960397636752141341217549050584997680143008033669084668634566291967269899662396887440188427543688248626186068010422211526985745428196891248471058293293294613871997285986159793715030473291368507659350077860723940234075234251460593578335734611681086630041693724486329402404556987286969952150075230967187930744312139130209925491581343576854907475075567053243592109640334981779171017176404250634264177554900069872522608146526984805955730710237203771099271044004053044379970569554852551650522596671320850405521208405417328110268128684658521690264560525359420221774462647557297178341602259278364153492995994550822677145303109288096149785986522727117905087239800397876082895733718428575068359355701582156258183600424416409077766535727179754405707127954058277119757280607039675587737331232339570001081188198387991748178529536439834514182516850463414522976154859490407414776824260035785948128488295658017872795587162106412494737584056118373737705902876768201302578936894888214676583197932257266074739828280060577664169431906599040468738695584760811565628362228807315895491425513354893623246403754699873026603395457137025314179802949175816981098824708032452542856313119274571781965398698162373453685307565416359756096234343695905586128923628277366040835184630370988406851305372318823636599979002256861003187838986379886887880792497245827797331957493054761865782978362968298240052158311193158958941636231069106603611771301953458651280489878389818982008574079430776851297584243100718977212029767798854281722388804298810871942634858240131445894647443623519427365522675925074159315837808813661968876288430900071636354327469595139111162251180788899923426102869052261853069076165366675493421194739229997590548472933057670374307282375546973626774088495313079975843928892534343534164590389069197457638904943934852776542053097465895816608922615415497759178012973179443251351984129403891239693026191989378460123033764562522147007016583625586788361950374333163257506410834413114477979760246773427537881300157612563355701220359947970435417690678421532740115672108980933253936186949613890142130268261380244710591756309799664767400070280091106070669440915271794278640744101326329177712864718523250519629643147050769198171008423927081488623811387924824972074573299172874175134800426533068882547950398007691348431231106050227102049291001733290262885257780763397817414559765795841847253099626229532721773214563312406532607689465248313479035107018007608919318570806204620344456001937517510359137216665228454792517356208439594269650964587417349997753636037705265014393868865757372915867815978841747095248283001922020823718746188659945383000202259699088540037238095936103797333225135735044015161488683781800555760135516057153744681848428251922409117121912838177190198579955475873830766155956643336229185036903426259950531428183704157972286774902410913790721774176234282591739427154615247130716777300478299846021430362533369646145352689420812235140010607108778622702770238372992472365875718221143803779223818870553035490697574783273175854228711132855151427731115759066989756463475256060388907113654942012345262560316320302047216228227718879218880190991237241678104590694012638949716941921600081086644085952380734578108236061368989923121707237548869374622307592946856830118729878352019885111027376314162211930398847983418405176023106582629450745658892500839894536240061963779353297639372024863252876585159568442219366354494430209953794652532356889070672817735069035783470172226128017367109871183391125907800090531738078065978333958586656114529276829287205621660139102781280201851365529333080637145704764979033701587321672338616743418706229708826379285596496074186841428214122572832698364753995695154238685341525409677955900039547904653911163441953954172613315225064899507994090663101168598959102617194417122862769326765645329479116310830730785682466444546029980273039902529470481507708768094559547205236633326146531922234099051510787235163131620621229288037548975172473161426779701049337329850991198948503726587666979161385540817930404675668800651912563497647070969305201449779606989049338728709017040360266092306707024439196525359345740183926883951645649139879580580340454032656438762161937784784548793748828982546704168805561141084722856642609345067045037202390949487429057593034354984030589812853581449878687845989718162915810810957756854851832615756893736825680645373430656681069961461533964152162756529953432354435541399831666796284154456280799982758004438523904242488605532826043927600449671314979630547916804439116776136869648411970738435887971509055969455413491941756253623009380163745743177764216545858003932656642938890243867085432430685868365661295964936416159352947375321633552965448582057033815021907682616397495498154755159211084313586682659450780727072105383894470856901003255447227969008213790215294690417073218558624843307763665732985100043485162478212764163002403055939336839723443871555398850996079322961697107538151330902745043267839686598312467710399993190033347370587088528500303959509905908057292421308047388365905723034756087201895522157300286036460044568997838383490116286450123923232604630133750851959842450964560428921465318527364671504225372111212021646288858221239002157478954249336725219576569469999952129946611997023778931046393406925053118665857571474026825489219970761003342382950977021141794311659930379703154360989315436058993007902394859534381300188768374456265960095801009015942902799936923547351144068726886797702577663692143616550315608826485204492249828533694367264337136529962360155051385598424125543290254520145187815395346159381359737066137249213208649377192480167952212515550367770998683199880637592880795011562379964308384210729586833805964704221042684224235737716865896538802397575366658774494024521436769424095492484108338794309008583059125212409774197002039654304095201637340203155323733131153765414660882010374459965586174615692174728203481540779312035682699492368590203812087975159334437861285293810096878008563880312657659772116984164608514752958556624645711560238624762694304548572697734300358152778880366271958637596177911286123103893997622886077141888147046261757023308190569936991590701996357317081101721069233849307146685068594715276804082795096624088754210132767247178345255397748832760333998794143912103028073258706738651851281600697181664382713552562247438611896226435385995573027424122668908136581781909062236194564312448741465909577137725623237593755801007553448376183561933059730699327077402263404780694379191497014237532700438776596366745028256398232137491957790981125973930749053718229901047391075407166849902566211004893136275205650208131337136280755886076404504330766083275037307453539084206390078370786015385005804204781425962782562134194538393719439194789779808341164258958507128954882047157030651617127862099714072841214806547024260939535734218222957152687675335473751392571331395941733161597974829988878184348856136530951629520319030280211297025444788913658182852150052378113151206664483646939307788794684481543428949477120202098603607727430742977327260822788039310139512366772970144478810163399909943920391671875450521196862397203619430540983508155180020299479227506959924084761579435612799397455466231474023243078214955421495390418801166360817117135460846927716917464221323503500094884972641118942793957135109788513589923373928257425168460512581976362188058910773780313065882080788761663038810304414890647176127638142219718883314806608003088560174474076205369528213712097465465046544218984909288270981713892944996962538733222084553780514854292958744445786270141483958796908013049633779267946783792188510303278739087514361894120016029013615710897042889436734315427198412432764308545620796253913126022391017295148418011289682762775668051015741492925560193292620597199483099560879046465014662262233142252662289418269657733988602396239630271166053889547899643905163947348431434698340833782291607665300311017070247785306701211513186439554995155652089129039037104358529197859864989715746854554663034010349596064175393520409254685525176410298344187846019955353474990479789880468181353573449139570510830409555509396366321819193200907040343683905650672376891493383143348518359766890474518618388600664305731068464145739567037479581262214563470247675909160463280430732866462855838504985522531673596498028121629997861174202801176832665963929180817438570083127138968554342271265281104076180285801772639824194814956028306007106668431169796070674775155181461702882391563914397430154299108956087445322205567044077050590797083804733366909791355595920910508701739855938281931773907892799683843240543565638113878834408951967743392143040304644095418788921637893494286738478625773151890558188237045731995630704879053510013907152854532458366233625264105865274501420503522378027484818803277269080771420699239512189423598200093219416895319423654877105789363587123737641995529018915341943212109204462716193851603786959498212266052442506594309423315292456647759026395066341839857935360736463689914426610776678048073700096731423482498728858268990582959024121113557121885492928749689191094056581535772380019705965945290406853151368975730427558803009194059398223873748361894301270480127539497675545022127808922320444502429796495777268731458064710756431225268792233918823497720864286208188063230284095345536667351999660235965017031542259741471456798673429710719104920082305070942005261347230942261425210773309441309291913830912401342749352988270041526290508936595464127570789709497714742234515287712914181079434093586834924974782539774951381027689417965363088782567957957172509247028588037501695630940383564697268167509610270801426126391481600743168630602120018960981921112620181752084079849681957813727107576081849379872030750535036921422893760311911834503657809329720116413892533587930414026633133398758856464179294315417643513783434157235587927455149041597343917510383753126427097104078211946917203288188461412904739758266746125508582905686119362235967099845512445786430249978399502104456907795705326414094178157299918368029735410858951621364402762825571383023952762057675692091613996744234264356109115581873992577121597826885490260559540862572039448965843902216900750824042718255665197454298845655033355620930853050453096982301138373730469491639817802056502813909666646365009914859979578917004435572430187327497048832412224238211045417636191089227851573768101725069603234701853990656688932972042049616604019348575074982606575882489458258891935821889371615288087231192801085559527946689554449445358279215585465663143809150644606389995235600874626420440665984318350772646133988934461588269297784226206432587368796881826379299299268643561059133721707502526077171995378391782164540804812969335607684452473118102142667186228073916537432521341119600730587791265743556691151359694954738784958323858266411965577892724979012455445730605415265654039762906485634434668223205184473207692800041179164800164455080272060214150879883078689851782628447014981281381631417203760247260238611122750111098056601778888611386900726254681960417921629034187899283823686063057429975978776103340851186708196981080364581933884499216352624908957439059658072006611780777499259688935119971854694483661430965855486691577858777426780111778372823027569532066071317121739242757772219067548760376583090945936281671948543809255866170294654019617148507786157272516818239519595998775741584093690018074975834212008622643006481510320490379423334246613282725883323839638709784579653817108816071385318466395518853732163596825712485692939271668951056679104137560851112662013887606079896096351479847774443448657750327770380985331404759237248211951367327498846370386533140041742271686195007970244220400898890547002352578713899856895195438679437571674083123204457538511351766915862278693564878932748311237470018183687480307793991721312611337879629199888925571055092594623497234864789666923730661804372452960158076749161154619582024206290076146687999715985765481601163108810956449121502156124041625185992392522833563670206946809610002881008568100504359331131081940634067187155947046626798885661808786959861675609188076930746299181912094507849147196027061735412773184821006921584865360860931201914149351059961983336209127176583328376945326072149593649888807693353893550193412673783556899416478824901999961588688685436678787033080174532424140540423964014249347334735679711251193949503502906251249250531623326145783031629859911257180510159630337028929530027809760912832443122154190968709907931074047704692093181023628067734671886077584978384703485832306430490709924223307194903830282488369198128663960190435560799564904879946746495598595719058226247507124802836058061206203833287132133246147466555820156677208287138921862383833006868933502304595001090435737758284746892323687525331333982026625705625915979678549030567052965381405817583901174132887097049679894416483222430502429848517698300334355305531286753906723309213266494847748495689951760153587264043687929685249921051690917834488239333020003826696237911402824721911116764233322563056104673376454363325705232711115833293249489300342991133021864248890882835742378944562905436416601091615732525250027015663512715796200568972963497616906603749244826229083268695519493421866564899847528456832266718501651242101855838868580113012089745056815405889486548340548988741749350268660304238036598394681421359412657093621700475395871754696054110329144366081210640741377917427016571782175444717886537255704958229765609047687590125672733765978126062943375951227728835836127626965926060767792883888827030568399696766716388106868429141561853464617783852127271227910940004197781796792562143347226825746740049097475413719124878076086171509419978456094677107215215846399390360564988693240524667925977777566892455315754734563126297022688380672221074207486074444292612803271659722758287974276730406585762320529239020875040002260767282008642409681786689893851605817256948498644297118893802653860656978671941086749008095900357310008462524863969040089012300572954415568148921512978471295154742265920723397248849833849589512479368481214872813119538416982244814637650079009616340091220995947701405303387323620573427606946335347877551666070672149354330978757117286874958896161821367228831181909236076321894479136429149462139524363049562703386442036576227132359024275053987186782455867382165455112440731848864597727143380203756895201189033004490817585528938644341988772603788064330402466320825515408823535326068544524424310813035149031273290110334234082839697768338942521534352474964364054998597258303746996332512550032642401246639058122002697114987123496260942732860682158259107663434342227281447884969482513934092639105764447418446514760191698876180677306950276633359126472300546106621918839823810052978175551795752697523881717470474450105000436717431938263518986945062684399615480064719126747807943868083996716872497399976871529714296281396083224037449906537453294255880530914830079379818933975462179314429036804739688177134232704902622897911165345271620116641998795987427775956732152514895988117879290582928830735110477434576535336202954625310032183604782519398934489303370170503116720253615555765037751770401631003256591828126047421118261146586573411330601985491445807148335666911159762849057113965417886925687394078035630763433356055970829126203558734534068625098501569601638227802403939668279548544184647727653095824369765350411903798432211587620622481701832736417810597123138996412451977192017413938198908749886389102075202484690136391935695461599841669645044659644873193963331406473552276378245735453721970159599920958393123369479537003503069464101333584424235836477336469540354419059223690002061948794954544378380216798458388508269384593395642488140542509981055824425178245042012675999916179295774734086938560915753816598923412577322899780421337959516965922529419078169412870063370672388315136853618326908685436875650454464202453467128240399930352590039398420470254715341329954840543740393445541737851775224102608149908689448345797680039661043326087121543848264307903885244692013910902852814521392917594635454354601531979920316772136603832755356753482439803932589762338508104420147581983876569665652667482072240093597749333239472941657847029489191460198470119173366554649154824343361565118876056129296336009919729792566401106201388117691751428730972974361305935145471137222933585947595765524645406510706893036009304270709783373688195098578380124492932063976781699956106640592170315012844578051750337961540270116671505236814029508894626995621071837670023203977047028417581301769312341525047797463000262287738322595374208578170381213283631655588797677732267781813262228025839913782734000828537701091871546435203393616980237218296530142615045160953093007262745905058580316229434029765299299591806009646088792300220080089846081413384920278122314625874074262982249420546833444107453361238918467805947452671498090889959370184865803143951502460528135448074309983259770329624283928962396092881183554386590497446543734409747975995153987755488793059451691149166197702753872867302922800474257893323832824620173558798357538614580547873960427094444916329386544863512092638462245321946298238815844961318011640330124896706808940339535185422265054969593051749716261672466808567787215133296983702612309169424467141244761780197448412124764548444742075696612070556719846042025080193573119128836748669394219672942090244577377302020478713905096857575651435547618223364093198711098557094908750801149797834718823927985634045898001993987949490965171877993234190589382042616013855967605098053882981745265465662697363011170590508659268322278871195213305628671480412295024098274395842037429728611661257428740534829652390695752143941272758270483743937389212837206676478842740965749337631433569167903334629769039904684354796745850107818821833270263840652205168194557108543608661555967873751887954905173457100569746832522719459071138407377016421316023768774050512147545084360003770387599947165828311837364974191470459153670928201736077721471830477911926936132562520306676777870772781759604908689906409255270939233671759489791537681027599846343978469637245430446509749263552652186335126794425206021917454702203250751850055092493364367774679623453548928754253390690463948142086843869564435315285504154025685848449690549442439807497230990906883476696854114891343962522600355643074602379543994654527887356721486522829762681259125115331210469983935251362681682709687346658750456987129160033005248549551549975938235736749029855124738541076227158035827450923058593092148325002396012574822911614804910006792531519992210716698458663222794818488885548787048704566939368312547918620796411214659599690895484949583583046883757723996635078593059488341333626893094780821717837253140978018670508200568458137941199757606935990711958616823626885532690562129820781383481754457322358259288212335456033545403827895956892195831741967770514556664436388423820807064257274099385367015123320691108254054564933776957372134825246191254194506442085442467848993063475840674421725686217723867861905656108316665463360769240973571380896730158722632664550407612290331683665779060334728978660249805639630101597238746661195100421517130034727450455408432854753844553374456822163636087237270456179821886256758315543380517193922626864913573367202150434910790593867415839346177092715264830129182798154986103717694354376632872040442606958038231584758749020649789852013803036339505661064149813333487640019956838038148249040648637402183145156919269692672505742018806176181448101201631365375284079426355414241166169369580185201990919232709372671707438728772732502828701331185138743244838720910026608550662834561944287504231737779380954967008327941056469779949055711332193527812453410325452686207990294196762483995187070544732969309888467708679139621384384905082075313274548512670010399404981447198023765115497721076149543847686555607810974356593032234478980900916618390890099904834915431228137382085407968303453954474119462914871682492685435288253865571706599201748293977692891244095276095609340898266975382753741104219805019474177447949254744182010881774932410630910159538054534687187719990769691831360366103843377498704551665012485206915802365454096853634294152647082350254528178300938011611586143264654055862605965802502088222764182682479337637196039851352539433227252411114164811660583896843007184807482687006420891960185544238196200501861471223284078452728198718784504409503669562265196819655969899277304930861062134929954253084245509101913615009317109908458393121557416706556374139802060752277854628165452519235476230560987603136028117656087256403899222805522870473343115622837164745017667092770633810202515774950367593551529916997541909432713390948076482685162706354539952084025274641486891428416638358559347975158260640599054805562582491838180157812616835348880146827530710512536216787516722783751870289415112474533519019970692940262439154380003189303783918601201504383806017508995851167197712525141819646341006755293709151202360653070887511561965101007897580808736726754892447262471181215677012103414071023907272635550482206883855250567843035221568230141891476323546386407060051028136030889555151456705865587239347091027339177507448304517920031445375492606436190789820938801488678180994358839687324256850611886849660919176498283443464233933224505012772665012678214586376315713028275657208243053468905779933932655531044732579982004744342686553632296155830781667946349051277058204839389607988568381248013722667185540933586771322506638656167803798206300329567283659655926974569333240154281774243847764662321780978840163144748172131353683475831467746141546250185771826786715053300227671873975622353275502072415214393885603933341961711069176256877512660420855174011918948047889605308726176132236005447681327838591576643564169114824179268037338816839409396718566101453163358418601400652797725961679612375679969530243562763246025322519868479029163682733484213249757036482312163782841666608657955433097150408664689082925456147525560016086299260618622319581944409171297735163833841158327364361610540773412857584914029270356441681017633779823032262336335648517831364379098289118459158659577949960620876747704713492206689949968270195511431408239148632584215104067971807510540072369677997568334124039782135787094386409865620433710655767424040041555465514706549527802690291521783667273129658403197058927565858741288803174407854845556212969209691178379108949109047538710198076454076883666538082597753902983113720667688412851697718281075597878197466126338122831720550262137075230059749142652195052702066359560189027471248632090190917191665590860611740574526533424654798418104630697780632033395525917412354741503009247267342798981939027677004590602267738085642135207831925928420586316693829498535363234629706298788099496948330636561487960754393683407681892540877300285820744945796319604272998281227012956292342739867440901880442540285698117627857193484884100290667094097889773493018269598389603507833321038202950044770445430129824525205417184070989477660360857887518391327063335009520336521597685288286163604435775620415983657936456572628602732837408971330328494491594056413972287877600240844353382610861949822830611731808966812572175676116137927175605708870732082005046330994542091516616027762958937526346673140880822774267933635149456334902677149283366140369413518606275276916301809027377573617437942515131792334895026335457244862546778065429986237942157185639918171781990761591740889184590001233266091264941996362271511752609375043480238497261756977498571604729094230943932656922582267214075663740251073756138181542424387600440316581404016274478265341621989030986571558035908443344576946981358748699712602691966858988403780582311877476174042801157727891124335713738936322213193058972924910675590903080536706080589146831658750295844857678717035610953038705005587498469410932350520561280599442438563028179121500112160919673476055532195184146453647890817127725357347963183545769495423446623941023569290758829150385712009722589000173828185211925625523844513663640111056293765820546598231155273091658599206596050904946321991558847204312039438151523633590059806463592522595168620769316157564643899589765129838667475292780412502635835071240526319846941904333831373039474579450157335382469280904162560385448822379199282943655647839935012787051507424243833728869253392141886354517986543037020344779643411173878458985087149133540183618545655650557773082560954692754637404126197401785195163590885440857571769578959110964985333989535015865957835934450653305482810636749650603484815490042055107031836575644058626307875664898246536008486859792506548229857281042953291295602320597871999318155290023975050428038121252512154474044383281236087511255002319506504504015522510748418322087290470568586493011312349085791105007610496387054631804594159068503906991017489908873885613382059095089982999801636972098201893106116907642994298597056519204644107725504382358468524586718346599957655642329372310754803231216338397320889601330002741102500797576801487941535836877886033279683502940288122604280158201419794766040439589369570643095787587921688183552995889574224373883143531238187980381880422791345632059923376919380134967200863035565396811843778896384556487615708754025087976158116627757740894701421952579131679569797569816523564348686650168426761343217922612603767985553728467267685058988786254300154104188988479892212189462345253292073660895121290266508851047159701518334851066992229357715040871463147279564226342154852099573293185631289557076956588352989303825489504957398924718859153216321527936667499035243280828369462753256713530168599322918955929877785842358301534734277563811820326376978108058109352902188229900853213000319849862084537775399728987927323233288463910290795918258588354495349050768105256585438611950457790732295068758960643114332453767544802126612334706285600338394635330836567379527045668584439260878374323613402747753812329595561346438253935424100354764681704712763823391555955797879871296974618706213369874206285831352082067028776360212257137895479284968702806599698561375747578898035043304188345013859649253635635410213206861963069012179732555646473546530372868087485329768427094283191675446623183664692199348597250744777504350326661779655642308944319686568466050187164036602411916411518368155168385416642700124001274152430111241422600070290136308222870307128004910701473650423077052196352943223631487641769112949946933309574759273192744750423651547953664000819701899578814072627081062915531808344100618793242187921126374493877685001645165505439272182550107580893334459548274115559208597193619268990641259171406725300446633178901260411296777448635125071740056411110886669459750346968032252298297990975003070702079685747292194908752672309734764076670540574274554243524242000737919904441140541158668822826912718959044401869882841094721858978560565321255370339428380943637395150145066499525731418906557991815150340293166587803698232750261962584481592427297750904109919711230600998458108011567850859666565350245721939679619823711434797362675771337185681861723055344560123149681465229378998941411763399469323707651293624203160513834444715325815645063226607507390549840021189058424557486017544673136619927507684329801098503902093067094737235607402713657495828855996586868366701809913789500695823984187295156812072234683523289861667212037272175555224419449615622834212828987530077163726606084037065665654006590096033307452679074412712875476177791507393938744528658331925580420224843266866920863490785682312017754088563463639706747045508138377299212574489054702961294452284585256475633671876617536762321405008921676786629447331450953924855457484733976003612553511463371279364230663165237866393736845582699928181153781696251708156723239259587871202792873573983812406438719953760114544886270899510827124182318759430296596709789382488453983766154112451625463888822388353897651780147926498007523533592058986281159315783269129098457987707112628935315886345539251526376758091398941300314365070676216279327997072677584041037262705737702526838140007687823732035090997925164895153241082334632281744778203033645758382424752294677193325351086912144218014734791137322194124971973965174412586054308281642755691487580248738377174320975132122421197342878146600873019690938684398905932979444798147244351725019350324290085516737512599207794332264854564815019030968299426221991418671815742551766189449025700921297369646887497102844258101028974915904138507526157843416793612834876687132062262429424629590619145143688514469750782345973575050487733692018457524812256092044739283941194312546488580874107619660355738744062286089541863656009188874824097896790904571142368851895271788787026668730390636965638655569543863295603089512097859624545144600967833041559384176262250868220461600115646684530597545935532844274118227405601959067475165855385991109141614911865166508746898690884146169287898148297784057907220771481462213623630900663505500521291613448695581064583198915746945889297890185543495051622219317395340313377903746238522954573483636213090957090021805155840593553991818361597019972517323808385559178926889174526149943179280271089451292116705173769731622029856648445912564572276067661637606295461538993638129246586160198280018031601432890133979683877011240399140844042812504773807134095768583569109200373631456927057683843131867086266124010159394895227835486869000022018323032757299758963607233749821665993746900835078891331046286331635678174889273456544189974303292286391430846040223909730999825846942204059132028460226299772724351422889008055086616172704579672177228875718423790917071238732720361037760345096234045484177984953839818948128356640120191744581554130663263542383582030763527229257972674199771423758838117196009669064126054058111445016188508584016973261590075110168138086143918834036365095168094388151397303792868390865618397758219376641480031471482647756146383189381258492962988949122507461455012609714905069470486453975042641096973914513062545571242845178924921976637033677424436797902623254957832993459580010890716069206273726132780405186642223832039186001232189663408967999411724091209210136992065933892477267517133335342160338253581973573047807494799102217650692847029661357187326225240527971867820373654169217022651723963628773866271937752276604341499402527553245803606889298574098950358254521061693386001484094292690462020516525219518290203485939381118282457611852219676142828595388038784279760187799390123135705023628952179567857313677229080835334480813292070376906968254001173265756785812147120900631160114862735784081832578568085936103622740962776622939499980451664100596027659476817919894670421317243026939269893680137995193321097181700257756287900205097192157135860178533117285090156069120581342909682312511666834881148589523322150650403820174420467136865467887061994207066513943568339929624214477248392509428399088885575370169034288374952479307790022019287547975374840749888015171794379872947085033171764161922904492855783962455591244893604821233841192926048630107026661805475912755025767123186022725474313148337047736493643802470085723016373758723249324772411547908265215085546015016037505467317871536562947836851308124056040392320373113443952364284552885570027227217637893243066732700283788616265031732660528213241516097086108383966181758443483905219515830459342318039339922973254540886175010506698266713210066625403541851696232387721138090969764973264557639004120977336804590615607653688801051212678678542053057519125425791969595937614347535445768852894123611453270723711432679480920129144314235836735332280485235254688701222685377514847643633369755166822246236436517532386953511404903781510088206080487786756505310760434919400185010798335804751659976212792089989489141967830761629840947071649139551892210358745372483989222721042250996732323244417708930931765749160042678104063250612591998334645200800872103556041284077342027776340379580283917566575430121432387731813798736658290121435538618543596548990021333051621440546804175296264181189055101169826420012470241779930005519050212917807572030610156491855413995222047602705571001276113366592317877135854774695934094886067914014527990731533084695343520746249160155612028981768367480478997124586458912226359333817258333196572823271320056188277237485119524931865011721367128400376009465076149218557558786645687511159536269224008104331813266058708842004024757241071181564237597701375361757265061156532311030078977237968257027520888855384449309297214812451899280308732391873574294010038879933722304476758272480268279114833172937110907851588667218937185533289968533498275142301654497845504188462761202879139441723894451405429438240435120285986197091665876728334430110235655273898000787655516695021506470156172028763450505306484798021605258575672813177376085969023109838397238408910929126434165910966403722174765677549635240602591556012711167515880504686606709248047595342772507261740097296836462620008817261304786526411479444568190500440825676657786894434604941567984381819476214493529264019385414819503602277285408470634121013088412773145631010022085918848056402638387590428555107993840780798082882269728384792682827231045304329966427143408865925792434524860497015105850597072379096229188595470617338630231242331680552952731032204011356243201951234010102422791434633165582270941509935026460187692171891863322142852027839633382608126858189229615812532136093407988831498892198894857912634191535112323809441979070710022506162210850632853256180884061626629146972782148082208812081627514314196931798631092947281327840179856573456404261629205770194767707502058644168444691538305092830181597159823046763145411143943335457319598964504190235630039503067191300300790838616232832962754128093449894019453227939302070083345051383297260166717110368060189982673734156776078893753678958668995170050118137491013883599523876892291925002063348179701302894743267512039642405989407350387745231386564194090174779747448063937514483519921588652837227618514360311415561385872608822074925537326270136667987324292443915061651300239896677868055835032302689051189106846741749271125696346782359596017020161860161302665999960913998306189941904922293771890058199503608485515373390963333536116291462713975284196923804326658571142578014033757503714782679046986111791026801735003800421398523720588673140493198707471452592267074375396486513124295249922267534231534407989543202624766423753083489452923577728060925693450853475163377728947915707828009418050421297263533100945181660829959476435441008302742972071545430697052887681543581686905666755745898571458573464788189670642150199611706058717616103935281443132880835468766872113538691817756885268651625243010546482427807673829330289317698099846275085274619326319731274323733053755421490095255338405492871964455170492196865898242946456004822347439000320927389884065678785311484324297853208998718950392193267021680731325754589294733121178128703939102500275137283471905132082023223110021303323767121169723663329002721821068910087596567747335119820088939616895818251105609216726854237462068049047040960439259641318629446493415903781628059120796955691283875405043254455282959747537525986094792152905602250857633023396602018016380806343979819963187662986736578552292048966244047871688588037709843750335970636218552272054628289570861330382340915345340034325058639367518768321328070496513307294097118569858096520081056128278256780890585786770388582201263678142307687356277120719125333740550769335462423720397869700963484947771109129141748214068739058967527664832496155410806022800601333813700853927643477240642811959590320601620937453177159886601503345856986599482193226268526577738116658507045720645135944865284728175196457734968661355322245038184599664651302700808473696557173739836053259049348391837882573098031838697367277153252229011709901579276837813950693151423507404134160536134327897301671679415911662315395569563906316594700935359552619220450112427558269763518393835735277420635610761639609997581298511459433456356869653714819207281074755137356304305698907916150780069258584814277050928278034340287508549918417370366216280914293387149359643688444955255349300478435902131485950755448826977935072462111238166355243612137795290396030777384889536656581532685435998916512450266679919455722848645625477754623425547952233324998026650650478121972152284500064547963672320619542987107983632642600976648500854472042667811057890585678935511351698832479968432103256827988164091757655199570943243038888636023907534653440826832844014712663702863769343369547870359387384521274462071466789391039397891057686903491660646089987971780736482808522404245848030153997674205060845577255908052357471673159480712241759672187805408975006883802893229491885160785472285207041038984318468067633361082620166474127744663163632969543764104144887271427539001189991266907031956645932756868612015354643197039143976200757736580225916552748133852364487418491910573227420311975699459007870305927364302475703138496662620680194568906435402157766214638072917037085299383699778075362973072092879479662328994996744620266076893494705766724373677078412756799943080222556779539219958072323012994959815526113810453912267665780758544543522149105724586154980085239496291627130565176422375882934443256352784462419439883780006102301043958959095101260537295469796188536554618842811626469121391418254824872464956916413097596419361221261731536219830448642983674440225879869586878251134943406302152378334983131725106830844245550282128362244508433638268949496469532537920884897362495585476835450178093890066253297502867136284110429907878197513802353459360231484126603287997040807512654169557842879072554050701492242325450094713549173019597585883300415948495635384155797413707795289252889760257654689014756547332999735550977247164232922471181352181343763317780660306322056928683704921408636053728738117353604706887875137244541384740589445462205297503594814610078780765221453714891235886510250162672217815233812046499924437626057603614920535002194043625487035445751067114192487691802658893741729689618031013389832335456194451010453965519247448833703025114268433799135188583372075184767358420535740574249712587276773640272300923007262856099399885031086140840676103772570921348357596438666451985301191027339022823645140783595911526370185015598912102498718415467971333772692398931011394172503346725042434498646809750155317164701366846736682006258507184313254588377847066680749551576719540113524254631306512570831807283906391337300786713934869402225280559019237802887084551345188934447576419064742738408566386881959560698366207036399178967190681022536359702893346545686275409351827278179360801755696743249833662780828327292119096618416670274365224088526684304615707153840720038912852094153089392328744294509130615479339957935115828825403836157064241846673852404121964102619419206205138710044390106440235139010631259708982571642402489682839436665470149717047037450119950526948403644349527642460538142888396556638210694142423010417143110519727733024748724932289940096210760572544348855333095162972205019697389888733912303595306748126975008415956358356770629972043261684640877760677154913949896057619420735392183211416188229453446746653355166392471772924682029024281146257260276929741773075600661302159825103699119599822762259556138119651579784832594461454961323776477724202329506146316241450783038257491705344315639544048577242028090119490379117082861216107934864282449925780439472627223582026064843819344990412187678166228860314837606160735255886580769985222061120610375490839610939525857915510875982307471690014129075350199056031825492339927360612425939103920623754960278645611546737633203658214404496850104241156438636575335584462302619908360595888339997929487928705186012885192645613621324120167994801741554269838276174986041253720403960815745984701932438442956729682869827142437882735625631984777700655923865177217156931725704214610816605634697737571578780954025664323514805652069549516627585667385640750031694723180056543796067512685442967821308589136006250210842573295500389400314367148643090498810182320395665193514479016259835650557342454877713070167788701744803661398335694675809984217911669970613421830982446484212256066678196547777962581970336967522355995433708241919697332947360133784309066226321196029100459302243952061937441134876346822500143049069339135813700022754703237759705607671889849364756495901809809915128306722754773688854574449829962574440185225666285852869381736206400954153444597218673183515920277044350637889645955019662793042137024765062736344180206234772416694722051865740719218403464741485102848094284191343916005970636860422938764467887781601903773332614438608171003664801025180333895400723185266757155608771237438502022713136310524043729060182933259569698402669929709913126819429783696003319265193741811419058126298024178796354655544582558321943150237986765124415603703717053997505703157893919640327945178997398630622943876689739845811051392226825933217859535007368931262970657521260075031349959547932614759163793788681987919189818845509131132565011114382075728607103817979027821629816162322954508487560075084400747688180979365936638504839839783958403776302396990871306853027185949232204906737846747745763647221414192388773001748309477908251072008656936802723857959133207864476692300869965979116248573762143950799340898890215047132961820677675929871524420463173193095944466093383670701320960115819651446050957499593786022933405557850954635223419284034558127012676841472981653946883502603747171055351113958010624562093164941398989106845900564689085014436635723192461187633386857314480845412525406107712263979958426405359154042079306119406103423510395164983801276336009829923596814909860048665729233453575637636965092768985227100879453600884713734283062268538680018589712754774684497729842522809860951206645519501458164417741868360907258179624398503267723804465878525111789526069083483003284276517000915798555606393614248195170959031250007524231965245730452796774581344929361058970725814556862306516079124056770434648433612689879379808414433363737323695365993360897244518525406040745438170606660947702564945960368586652739176665125600598226278768832270529519431349202406465195737503432904288764026541053947299261636309271597693218411171658454429493310188938107742819248928073849842522636186835088894893887881250419761540712824273973708140519935788808351692474931731373764463864973528690737725935938388644946783873712155680261675323349420746460945588595609434890223980765869047265398775141361864633764056976547650804939708639648074082152879568756841929960708871743205280164358480555070497451100491668721162207178569557474953439063549719179022915897091572353497878598237100918018037348137920218606972765425389758237188081616680650445746143417315963307068843602973359975415720859472010595034872909354598874797922087174531582966099575332752171078869311901561699828535887314951170806937963772816292383138039623151108676315900841301695088006707755811488570427893329393490675227879509146087619384116055981405069200790473354459022564937348483327468010516668124602555017240454655554128348257079048448707080403109172720896332942238546131315223114362540460896560942209697432772198287450712874692394837937016587828984203962339221154229084621060347054760879327358742399029865622150051575810534372719345405243911736473785452123803887037222555459201503749208804479766488269950088610650296998102583586570642108379016101343164141092711014656264122741947311657862619188333795120363973195722051660475214491875882126842798164254907057471990027044879028204584271750391270342389338832139744027173903295328154001596195379772282038820254873640278718650519350905461416365098180625613931368557805923375843940402879279164554251548449229543249525722345940942324011739515426132701153661305484959312947237598373207108202727826344805342336615021315162344832167860858781343934613499698525364720820621878033230000744234216625592375756305131384256792103840828227589951562393818013951907203554645573725622046130781040662332851144759092196326332291512667437878271887336200434792506963788706051934532324986548686841859966725114975315781828240418986328013909237645564845986185751755346287876172564460912709776356584583593058789467150023034026081527245166031233732795505879087319825192132711678926686444064700920101799932350142965161716762931588619334102861096665368604429586142744310026720757040154228984713105142203152871289299131806666174592366178088806384035577966115173388152829973090266756785684422668890967548338672850130576741266415686532461977173148431866138772088366788817411996205603151208665665995043809805886819196827062108354675815228179002374859374580999393587982633462928585384015249150143415304103637083886503855854933650268883670747168343086431210694676695399263901768583264625184018206375853053817410267734606993149548058963297339795915069176456834400981732323386818041528428517880037156780067890310573056513163640638461932998589434342700343667925614003441900210226982978592068761946178520548985444660556692024436730267024703971419384394827985125667313260745376495392956380007972246305730970369112687170628689630498487151322100864538459538609861225183313846842340761899659682726654351134546939151179866768190778198935881278690993860262267670857759399495887680575528590301729086013866193345317392883971022057678720502681046008405103615279609384666253128752176162806081313329784012721756295722977530106575503120881042502358666983929810702372289146061613917716239065459650032345282398143934464824740454668762062465516757165692598021585516916417856701778683094261622210889144604034981043976150215164772104502046949781771157588360467047567997472104845479542341878171224787272701852604957192314703326971225813163948264005976376419601415869624935807334256859532364329794284511016124868960791339156997493700668467184723234182155592122717772946963753641276342112066284216699958819896891181060962859004062955905931543105739950284359917975479687899123548413483007792200834670273699779934922830423427214244556802448027668195271583031706645985675226901249268657444645309403957986430377724473825074064279338050937568005209949486834155740305614143149138169416751331342790952613192766277503066705140579978441766100260512270145849840208192003795753802746314419894270481754892978765363215640770763307247389080701795671817857316025915966337437676975067203768545423702958922084263078865862335770106579093194169183255892885871660970302735813070390530617735029234810802700561476986019472122736898996672196959606009857473265629793380662440033681396575697985112898899899461721196012444231930656311262550490390728525066819202669906184582774470394821258844148202611472703276650965622732542945156686794701480620349234626867851409127891681915700435821904967629889002055310946330245038212079852971221146718013369221302515741780250646681293733862590792593738454199152942112602783607393362672467165656644809536401024631294466739992825114069174026145880232054018010735605327161567509220620736034029747089032575577537664087954774425394621896385396360956971175491035038072611807201612256068562529105896496944851325714160804497816618433313115306909624394966363369263659029867276158043390459522112533120128998190910235504243024724251369459566716061921985594988502744857572415538499551346838999500090991305949539554922484002330203689229939716983395884798646020200270183694813339645519423822102207829013798125435951352950810106792788948248224887196888646922318245668386550640087187468704261602435192057541726387883054765093547447039616042692921848396814611007693973245269012035663188846697536473463134254208038258522485729195959347742159356137881250714028186657202146534906459642473320928466365760839703163281085179141743392885940359580938902542506516037079612831737431559930674949962328562097274247357024100493061245729778999229676225562197697956417364149693816848768825193431885824676500607879327463395586809237500358064837795808543002855997256027834074043224665792323629648723652259213764801406678533195821484003669178908864297339892325818410659332017221933767427814485354250798038331509567087479158600180199184645359040639260875771545587886774502908993410140517847935005716202652938113739346073858283488201166911290803101707005516110278411079772481917888562141800188588767691412254879026534925393525439174120177730124050123108247082701089352217417834044754954702525889496163191990816087634132784322759790613534010931591346641088068070155292165542236570125124025907113119473099735275044052658386583586542529744441677252624751791823018665078837604455076534499427182699674115193180288254346554934880902105132191332111160040162478259961829930168939502122652165816793096669682114134151275233491146599933393034686944643363030841649023209574556164127253163978137142067555520268680047239404554600393964266741784494862587706597543454538297740798326266369639405865594851401576815081722480456714554180166044166381565690736032557200603029335890676802663841102864000172168806606410748949698214172564084611306536615963449405811094212130628263316385363686909026391908053205415611145130095027051115050222908490817398566976875714887770078862343230359720903554034548729877150377400371881787940707137804811862152102838832219369861940529419205822929422435673857354426548306336587033919754399866294396581888196862806347357252447756478575394516120048880336848736888115725123064245226126910253573276934792115217859717453160643335493554664439315407167548279939239603035983792303443182684815828986103025952488736061509447561924311708674798185347865581984145814041692050750655346727542742515719198318916935618623536237679773364988075478897257275324828392268690927505232711001517386925774508242770380991564648076880836942450563929176582021702693468714905161528949812223844443812879713413999195944274830216167483397359188855218598029794855803950481762542368950459537146093097413627606214216629181495762569289769122829568217000968058475420354954185883696905116352657882909901642667999065784930176360331156077441700732880860300834590766660241531686481523960299403125939677403925120740497560196865991614664837294422253474517986750835327505920906814629191484105560523877117451682912712729998926731774357358326388981730674823327895084652220136250170193536780026849416452052027371284149212508630952119470138455249625844492084246143869005894686583477583325846218009199755159927264099890056305881444331846234998091183144785924757225553372412785382335163271541130254284778442829009696608851867623728123046846212806618397774888190431136364621650351163163992245244664370440795012673199321963835944085409913074193194001586300530031209312199778608575368117165399640692482656707815918067933150745974119349532642075406385540303555968951899896310066766511618276199765118300410172661121106852881147541966888371412513433787095331264341648154385326544069437746489674880846034437720537503711875976717228711960598801019583336740878390442786518055281973685335260294198379414718693500567764007301880240935966454465901162403047685319890995912265087378611889169382786487662090554190784374987530229449480033723539963829044463700013437004561994416295648912623522441852448597932961087420967829447638943783996850372443706974351155106941998191366021159232795319762864940292677658319242303752950840414358424325602470878818599412362265536180528822067326930682629826301081731116043968717292547996576746106370528813764583587822840058746434603233684865180028633478047773730297996412606200037885691169931800888913127138733453633320504208866695469215349138623531472607041109885152419678541852079977331125395950267735492604897245794627507955922291923286010200141571854449339601457949385867708141726047313389432780741410400075589523136333455971287940615586944261065674088219111102330307429573455502102947384218003102697395660768875819997924343081054618111787435456178516042721381648894691653436707625658711269881592557621931073394120439582439331965147131245228056957418662867929692069865067012622009865880644571257856864069195114044193136085782512092660609566945513172400460556212965214923440054756609022345787094207120959721770049995118656654161909025673275512046195387652305563831267830649886975948796926965611501198183130919205824981780154847275281756124927373050082667803743013442570784158412389495571469451596264152910588631143997362008174801600337066071770232575283997257110930225741390722368109108506264296563954831780828269000382882782821135167107388423421853876358041739108700637323626874575366490386396583475490156704772494405432203112830978098220569264547634612243657413446541168922462096440814418045236783930773695537956016625102839242412687694971717513298451826551836312266005082559433198226653391854781232937423165920210741072231762832076371460590868255458339961207213515063324314147884583323242201481664391212525245718456658630199320757078938058204263462289203140117577594793880165782663183229057020637251816359856523684291553233359285817625412410024547300118963075588095560814938715804359942325244866326072319291325020090493990538951767777462112331193220850098010629834195300442071145715319608945129177845867696342784621424130195432466504106399441955406117744961791279281868328011891785332098456907632783999319392750740666426483198118353016591167210465586171774164243734619844420861103230481681744040609085160842590608819777274448415348227119219385566848452305109751849252380858375130614463737323643247746863238441524052549222241498746926158995850480049308449641253670953974903595598750000241015658685931965609663489197028626368834179517156276968442139626352186587388929935480862720402132989706182501204721861390694184620046183571324010217897043862778239106291371663168742404386976945797839695572027652724943259784205826774589071249473262378191788343335050059341730529266907397498605383868396332453988692164200904229776193512199229053158591909320674829778612836234156821864378776005310306016177055138970273130506316202756714355293669856739508318674465356296592879679195697541519881814264305912938308530383229152120060473290918738825569925591774362645084982305006984908396328652641569272278272335522057477142276523579642135387569167614593759913177968593954306343031399096227448363808163081396059087015782086982270213339013126757929406920587838784821763015005881693671668461349668086863323643368598320392042841731735557844503122515252952990433646575470192306243334003675309832220294385894599602061820723038677472584246235627859471065131101988457430541320770468794321156474807134197551697268188761918600181681843271388469640191243570132354227115468569061309036994099667649310079626792508151628240488902369614950902428330314373029763823751122194316825195715863934619948876954213704324659603981510517510330456002794320053120148898152380738430684535143948153575704829106197755489769626144406922970799567406895873835946404575015326785915961729773307060141881179228117062242432653641613605387038773096868421244824754003560069711440906279531770395063867026908407757436846615649302739307317555885941649327256011640009940803008109044956174427801293505451526644681008887030950505694791490249518880956937320667717949629024900824974208137767308099582207475742431638452015978623310277413952153097848668254202259978235163324297493620653597652490880341458387924112601254172535000774892873199116769489031826377459296154544914632919253068144585464265943417624070027319406062665372302632241242540068973209314439762952960142375948702551287549391524203075344680354759268430273040035004926575373110525446614129503535369827473413477716463165489109038188599501052002116032842443742101782270229007441457698165421733481686792326981714778856099984161364364082013412217251563773389117501491798250971487666718478873647806121732614120272965069750059099485934968126272877649365454704787763848501456652669866357331253354911593848444692263711585164700181772031086470206440347811621167521946610941406923308122140875539011293277477878709428176813922927539523439434256341182372366378742937690098116462153650998270457774953661549294197184991662436108948528356893824237510836551548109148942090554159409563290383934476509361359928724317609867203383151916338798423447818322329803322000442892357507637514675794550587390410877729223920644048204231888793337057889635704237143689166677095778156039240572352315618238329694201691911523077075120762285927634440964743762153502635826325064629054608697232109415029674235781667975044979924597326868710489990263420983297191243292271479029145428183974262754736160718094538783764954062726130754898368479964836736961873351179093051647145888930094491641956184725041827361994631660531777660629463078359983999975423198574363711832397960100949930137680807927830156325334577840213442524451149351045800278625823039518270476199121715615584131699158834090303057793155450808560081100113772785497092577828412724381418362636159790131470635944582426246637935713097042962344425090861181359243895458916561610936532483898440174784680761030706332267482303111643130095675444931573907285013214929828277113379397988314442467225270564081890800669092934207553052194956878284826396385908229052639706818252139802138622746425195199904160089155950858618302674661099726929567785054698197264161566887847001528714948027638427541972461140287227327623194692685936006178771581770186756769969400869076280555331669876563756852088569451419213568537452728371498410296259747911582024669316620525468887360555335537899301124025131063379550373331289029373297831635215743662166650607520899989201053029869722327380738341029073456128727766863097103405829581680266477296254614405898145780377566890264948428063858717517292123200518105516132204542777593229865577289866592246250394832217208954724935420448365435245368892883859479195029531833064134638366810673125438496470700643522727450714841561701515025634576208291500763798553001591185833553956381373995111163267280392122415443899144435349647077577607070615411785708656797300328646050644076541035965871976146422253268626825587516010486420194247863279903885261524412997090937561964876569856350855129376192398000824525538977119134345718486752490521102307589062368187836369651318060590199539179253703553869965315249614705763578822854162931470318085885847152500407397571754870485813789192442230784801567858930139015742084645905528165875223351631098818023874374909479887278779752998636365980346994140602615863343762589875278362247263309014413723707219778689658428244195040145561922032577961738538700734522322044451851668763949252346209863366716300700239502083925419535696361539034884799161364000367116110501595193791168322513259806279750517931588783339435882383661399161747571408479732319016789461097244826681181359515648534132313736760753791129416356537523285832846229321445592812330364270919946575039551868021764842273050994880772179514242088872118568495920294949546091378599039974112529995922982625317405296965501317807776219618541489882050968193764655025263100594176606033530145256596912116616733142719597023034971587519442078948661617084282902910293534527734806089885754644924171600152118151109993333787699202859613731926760921980093321808096558338511311101768243560592651422458733392814642222695605820569158686498668149925430686943200396092839733356523400747593011210165371611377532791074936706101926040312090009556661428687168576068810502628626336937359749459882430908831664746417823813700626375107234479113846129965040612808436651842504158519685091994461539239878532606933629524520685540783399271773708332804434912594433223605871461174565960222580942768298192007277179860990389276584251756217228297926052852696822896483723952596673360741281636063689140584541077519597649204530643612949582069156642394951609677634487308931142364694993223348468189013456738741345615590892814020723513416743578117676585205914317972325090335979265068399400829887568057791398887209385000564893374531970319398260337310218576920349469611795438411292729947141844538774222582482527407646028478757808752895477251572925398221708642265496531306306586504902830357709859183861357503750793401454625176499227143289469667341718164715830077034783488929970422993740144710318423405028666892917724156275419945551194604293184195814250225290536362760796589233751058566837539362731471339198276084473494955486163942139929512956608494946940727670985736058638018916746502326032635476840079791746316940484710145398843097949889025288077213789674575147454173442990404184939530971998072732344572435675701691514837723990587469213057029871076992265310254364384231358477310020555328718293370079846163331425340661939366510452074200225943413851745416165952723867246751241148571396486666954904567691047161982514090061026282830203208999132306736634520839486427028089538961699844883894349237093441362040103365332612709909335777534083320096149233256792498730485039445851408475526663827111903755670975678375085521687256345164122382916298191678650132608693411301810876433334562908629454210367236288261949251591847917553951223812347172949844776176174209937271730560957658691326867547604325866264534488401193988262856516156251374995636182111038910306068356866660659648341497178753332886872749103207388376758183270324088166033178244685328201122352350188935574522611363008967549587728396129678567250273899303951803174939315293078561520628677333070870139760456188251435220978516027390490777909529122026262181689624050409307762353294743769732917804324724506733234885487555248101388952388799483160625804061076800416792198166855062826711190107085163932893294423293967000617645803998426587725452427107162709607575329498441382521345942938815585746029591420854822141805601842586094384148890116557167228595565572964971578093295270267363647572713597712424046750333692181261536987582157130342045776923600056702881887657760292568130246844203685246978411576701075512029842262559693360708770698820785477016666989810442892903922029166595688288431870839797796395645734933714058117601986392251974189538147743586397042337734252257544958326350632562299280737991146543000723809352915375687444665207671744127363601981745961540060108815123533669920973038122248828363339274733750558265877834117733863857821895810210090140596354062617489507664424715080277598750500879393067546123749790171084801380332667638399990842145582962967011150907223139554830972327013378975103273666804281228149184103139433849775624876920844664071138291675316906473511028726129292021505052647344248867897550158467348497445269075417535569670366076318249422850149547491085173777639411685345239743469755909123127521461522886974880965183359656718039991155951228752353182490748623544802603627485473497898384442575010594036964655193923827171167457781723078744155827078885756499461982119682511834629502243878393022994888195637709742963565155749194521799977335823202304501456365622928783511452368175316105881411020704006620313403378722985395008556643485992143014472288045080960717412170690381724222210145185846328651171355709093320356764212779534318483650103153170099281057105467998543526118018681222674114147551027256480155497949045282969342116592756588332068872783778223308531067601979089849861544909034224511144928025230046521151091239098149035429093123170260546845328558063632394063116289933544885668299917770425922204563906815488186419077137504432953444358178352934499197367435453011034234060459872839171326480858433281752281264297142100575641543628014007275058426407363657391677249281190424947030276277066803110618968077815390348699113640577659340481778394088340932923293893812415316301476889031010891745209476329065568607201794616384278041915661813783266857854119120453114703389955688033200893304559916608986392381665130222373126692533031139165733240209743739330596367306237161187697604998634024509283188353600390513331780411757141366787324122514498218213611668997323018365931379282756757442494310334220422985995833623953336714824714357225266342348433044240747365342254106746606319857284414749556970654462229881830250930667308614902058520012280346699806786165996589022153395904658292423291136887336401256433911731465392209833660065909354681258616596359289092267201224587426199286802113303873095769736210866582401955571585441384906760719247816885910054791557629672771225208749587269427183282326757013389764806759687005398918883337337775521055975278951467811118481995580253755564009016718726191554317281970727473428087927052784300467495105913099856126761644529074389423599517683451262917888863262936580048002733796701284784188089851902618179200561324803472892689238561116083842873782286189845064041558131610199716731959332182845110639884584854520646385049464518649217522523159179024741178208260395806008609793387975412659266485923697464536967748071654494908031616896272442388063615588017751795267600064067748228033195164014730687147777552145487420651625018630610388490535184050391571445848060781134689714420154088028037012093861773912325065489729761445500766287456907953999759370592849954609393754810322854206848045249005114591425697528651889683924852783919223297104947180026400146229839175633416910063918105235896244407437568170849845426518991517963632886503055454809863130273275779568545033122919633678656157084478067027692528794635714525567141966194926735341264364623018075918745649359205609069687591266031298643362962570744375627405394569980169988989826223732151644018457893641119737742616225210150961838541274910263490481405833445156548126797526586414325515676946636354317929117969450659571684254619189125552567827641153758179982131944023651904535437198833200867998285614275710198076477093625027308056617410643160119379745989706159527553321084439945424582660138454651594341979841677769481531494857817897687712086094676443351001311144715981525517496133416300640283758039267671393550886967702742742406071243956601538735499563072336306218597684376040327996871493594606422833239235936269910862947896766465036231303825979599244817393551935209335348933040222991712048033795383204062281025631009325933501010285864491502192572317580123902740254624936275395940136736507992224201105351667780363900363972880429670636646104505105702609040009670053078098493028387812327172323819884853823925591993437134988947470498983856238068833862695820605424362422940194074067995561757431193199700567903027757303830884856176101011883062612585518026681071431740340814786373211107168543438725904756345573602717312488942194839211755782205148390614143440754074247587386996998112328808489088773401503661707929697201219756389952779717471317840314246972229261222442508375061980652365715356300583874383410993362056025855719993587321210601196056925988231520947140364000187244532294487881282848579917038984533671282833036188467016378673288528470560665724647436847105098400492157507307670518607857252444669855891039224521699327931442036480312553859304954935437740184652730568154905909267211969147108004084467834884029376281732906197705450000640283371608972097538525370687549261725034592036665556993818728314577702116276610209661755030227853748113974664817955795246334839496974528609527471389738883880436142397397154122871665292234783964618398163956488010717542932544638994600489067910269684372481334760659291989299852260027486858156628948428330252234754804595149089850000502524402664359020987394257858839287429032936145218821217424477292057651897135602887357897746227128099864004836065243262653021639312318880831389710100502998605869536081129776722179303177098652628100577941224467752370546415353255253940134785835255342267402288062529176164656694591789036946751377235702439268288170523454255448689629567321089152044350485282223417228445678493889755903540412379782090343784800684693227628998884525589098919152871877960556078355945736921041200941598368138804058472332108025698854714725935250179717005971045878611180825148665391534443310704765897431204591918498102224933764425680119918445995376288151439427014426497668280578361811424978455948540879997562721850702124139837476837748909231508551455621286577012477912050278193460687420474155686699194786020386527759188799846661194641768241881841961081839115738665826423369948047945333374986376183571542571992410640229129410231282537407417014097934860125494494215198271723363692922912213159956173476825651238013001818481049085546993434482037563885178007412752425575867776981300792909222359350783941058592201318171604268344152779901803546042396654496101454033481253455892060842813656463232622277653524174860914939813977169342335900326852693963904341878718676020066513515908056985363189550626416821656481309434408044950018958803275892320884477865002063073665037952941231282964533345485361758271964349360286335646637776695268255460488350595315769413060100882728398949380070061369216405671467882455371512630988309211349954946731853636621863570213436397487606555514739992370032621242344794037363423562867127556463259299168434651556315720215105232456831162123311443174264790638046784165490063026658040011427406135389918985099163910393575341865773186052948614636519270513560061114944406329843492080088095364169498874917832578659370462921533526473371221216715071109380916122537513950002158581320400792020382003373331053610346046088131785094617139685717795054488234301480933057640367559193678359192499511864227932480149109712375669859114495451976478149029407632001792092716594444381174397034923759988563050652651609150132190379010652774836091630708276249723083406210717246262678153110378478258122192583324569729867270289087874243635885497468758150955576354908341889537031675237535612085002505195660219336099128679939228583657967351618113457194410753552729876368442051526185442511623727873255043234165985406080290540187409093900022560116325919887298131689656306807909071289923687873140025244245222911268862793741009302263195030240343476645002341070592932913061963455644839054737899336690795296116053678271450739968332198320318020076022568470017167208695955723966847719331826193250774803945756103620758191061237301037738556345872609632069641569428041377047495813619268040194289743706112635766167153689706638143201546373345420406598306098664617461342685260217679463261325461547054531488891918248707859649544614873266485561311538909230271739343075847825148291045098214423540412892195775179588312155565562039092281602313995950280154580635305519116614573012680889779988940413402169672430263964864221955622654852095147820699475654667609275540894696629445056227773233067507790695458672314273580715754550177044096192961623997223115541454497488647050907896349750786273752833028734694720224380740915738475133556082130051883126344324336041824157039101546472863019437739742458665847571558582458726541713393850289932291594193161853123723695120868922025141516350617508419560546533485131550396925211186031192248044114817521518270778286145636288524918306438077723846657310268871321217361114153169066215786251126630176496895387621152312760743686151572104050200403454803959038440573644222210220834963858450885152414841609190229083718123022251308878243301174231964524658420645140034353025351219322890688844768985787976305831834611245776373528958747927652797551123152456136088932070076618066921457504435835946315281540782241042873729944093076980747696365356672812423438634715307175463039859353092562671838746644791479341012887538455713153625557495760615890218004638739847585577942683808162135076777178525459652040062816829482762831407504556076589773493345556605045586882638854348168437260057331512132307341785766587144497648933728576776822318947322902017572468032189017114848669862890596869477683799538276555040574763004446856139430284813364372605290505006472430079581052057618992212228815607763400047065304060149994547369661468541023717763708832480065003010107775244368046477259862413375622302437241200527968121303371832709741668702334551238250421604659304909712899488969801722243539030760456493332158856637071498014426531610665954089935612837224521134821005376368062595280300919442544421433840643848330882564439423028811711742993450712911947392543799615449818585530664425594451693799945534100226132126036122696277273137501819672548959086697650209430458610795034577721256252947687725299119387113285587405002328462820445632145464597769665079570883004870817341581479243666945818851390808694646225624323901502400621783512376796002383557913021113489896531881262535019762560924102927545418743804834231930523489956472047591495679095208551633509137606951800217140985888879817521436594979311558967005425513651117335886193607998462133977472683568233184292802422726353255774640610968473554911755245758268004531731726092733063002073647882277983737241693167544404740206163884345445876946412494255829977384757093502123369613475521835902290699452298556443444269360701779264307644670100952529804840028322689418684903455905369580160706740488250535806365043348797815472590240746254960368068336841351016465126494253221164523380955928131172880755689965008808980335204115742295629453058151781546017155145147736769821985311970946685534865137883102651837027687879297954874093123482277751179166339935743947203944021964257195738811446033541609669026112682996794736684481021532123325972336515877378268100463305546790095336616426814262605993258044265930672112025614624218269365084256078785602876530726651817836836308644285308405747217485545565951422434978422994675133374784346877659516294491352202028691932550470175269572183863993883564957411227612265424759766943864824293927127713588046090259823837438014238554533579783279212286901328356165987063578558342243243972967758826698907898804342345450175218614887933095957793873515569914471835239284357274702816861153002130503647059137455940231771278500108905010273789507905908017649802482768352804091891914305368697504990824346223217627975405095838961939617498370838354893007493178214440356235449965537147491640962818838755029524801922268999166882800438017691211423757268255329108463533543226707110163837039219399288094914740546637904380868432912146754815419057193105181539263068062121462662540257361419289693369611642179697333460420047837480221276668635585511378058297983943891205594440672714409734150665043749365398085553612775895802786381992197321028476792826787636013389305068067796164323683453934515537588416338323793047420597048851878023798672150734266650302629705376300629282044923430414846269621567097750011579086734087468438814477680333910285554330939888808938348023413758426334358628422657197178316272710355559432062012938890379557211163251694606600220628233825447883426589344760093939341423189360128322828314349156608140869213265637575907299785109491129651792849929946584456462310424870457264314067780577170651827845676907118486827986248744479847667740130348872466639695508627268158440999763780137658249140597791585117944568615647271958402501711223081456463466233415466573848960364032492826518100836622845082924890012578044444939212220020627453319966838346832339445178352481043382199774097567611436441065522411527043126992789196644160408286132630054035145994291318051345892484928605143903057425698525266860399223951083422821173310375047314436707244003431920907665649156425174184726686973726435079342102187010287822526086087858665162096580111628287216103948827148722682558634514169817996648736424248226682834276980448243849416291111155197332879690646400690460654465520047962020215017159758544413273905821885319633498790141194816348763300343152985469701020098989013722975766786516916536473090654957428632457246483648271311618435766270902963393555906990151899236154666811806585150894011751096416718096547183455259165378061542498096600805243381893365411033698173904721630976273651463378648271158574883983272475221061343728370164967425187740730317763512358503764208860480466232338607077466871352109403946307984618778640660312527191889169418451545888833134447994064174342933171604292050825709696348026255298702863934704602223826922040316360574394915514876343903411396909706470265465333055023928007048369281384726796670537612570822378099135457906604152163774178236893191380609333481492124373922190038229383487880165709517119886456739301957041795761639585550405281016725215255711546849078102052607110668690524296022653298775503396795153623312492518210743287439858293384904922109282670398709724420530926422557273487938330105446061024304792644018799343590454682284748421985579466192770870103049126139949720589461196660367935835494642957276376718874694975875611493052625185949635527490775715557707195324981795772554808296256488296209056552062233957509887238302287559626032238654382165061993921439146387526606263840270491584827765787717713959407229408188228451397727073544485864715958071044176219238797510443006675497206141473705415483050335721407913347449751415308265987109286290704932919141701527541426557802843894955189085445777201028898123005896847716769960866476612516241624018922927637913077031006822081389574433072207736592747043834935899197436778880756138616010945734844211322773385232663105599378995451511595125569964400480542976399998252187349162656515080888368993257890923071118414213011543686333374756457643836431489077630064203322615185151116132898639992060196988860894994950474872695892428130929947928384385050979529856749281331978095062848866956261126861857464984489138297217187570685944749135437572769914221837893024075210550975236247221029199152925928983745825775044244354238499372546052702588408838956245628090226794161976055939988026118656469225706965546845733240701661841838610202121662301049658514945034035584881300268547327242095786033152785930759253087493696035206801476148252986402977198896813079197528534975691264622489154754971221641808727837936961047940283661331760965717073473514396486166643505638260717820305774888042921367260927833949047783407371326120358174146068476079442780036328484509755935659842094683005376828319522498326484117360770236867348413852923144164861073903945635455441578020798478221443977472452745348027619337951220035453969282996386568589419498621923147870367570939241823784355291352806616132307292059683036467200868620415266657024619099118834024690622195225804252613171205454309838941550962306221433526419121720338904552733289320383671223305781405109915195503509144125697848573265445330781847043172438944154613568214679883159534482501137516664780285331545162117045720766506198718586629871892226373352398838063656935612493095871814882296494606686765711140539127286518097298210335596765043087745367051949073687107967388124393734932022832211636885661512186891910215256104834398634195392704248286698265016509264213930600223054917113560434943860042665115118305252330053776295792712516678762126517441986782840923331434351009220022565447092978404981620527247977858021976257836361723605809436672768099582552727004472905229762827130701640456490076996878238930034791762197916679939317913475532217127905374927678954562750885894187729185945704855134250373518100133475750163703325789911621931903732734624041428726102149211151671609571840338160524532089620649291707181705307950709539155135901448330493983536941410107402452600682138181500848548530708599409479569358668633504773059144159213917798410567331380463056107108087559412067198652693224888512058869563039399139287891694517715461966258051110934710668570057595370090534029522278698522481700407421940059757825594642207754894967664463164964225679553541733470476039259306064970758810984763140401130436137092534233484486020224888718078238992662149782058328839548351175904861832892506945363122033252892794270319894457394073371318828671269433123308738549213570288191032391082940706931281303794087463495363575249822256434075746965253068876935046032710664527174642258604727254953713883294976523110236677421732072526926441479828600712335741807477871706229823150193337137042309603978274221997166521539255536699335443203394055900268978066883033787405598966124756195566149541977672413243504954894326333458418086371762534603117762309731204158718583960122093828644064406550003188280115523648397880248333821904076063592979078655319906848510355172527298936588299453341206792930046962682989177448187901318643601725265831604890028655299460865586873829825818510187903397127595926108746114744825499232375220269136430031633791014655340386455140586676097276734154136896968373322948146513526511708711058671740337367105934300164158784335284432344075161502569974170513421052144607494510442566050111722264092421102840263344163779648662389847128076896799958257573166285195143411207316985628125648752830336707232229736188944431404065953450962199058981487169227133552054640925891374194242564404186747523872193547330585216829596017171056283154618415923295903814443698550382973055640813044673321199679272456804950083062295695372193458227537397230632727904421529206517038835518757586335361772005700214303244383534149220829924799684504384058631571529551290768381650549240662753466678275490825499887017960136651176504498197836875362203308281264192300488029388418717102575125122376940574955943736513395314490154985050612650930605576374258722538809684307558919463130746185169556280270218579187328814401299916701153552368960509871473532895645572595008476806342982655066051129967024917422125769514450196986157889502110659773225182332340534770465360891396983398419065271862901005023926854034149434972508563420172697618184137280680214376931921718172586347941910292290625769305551726344182234141370195754259575006999193102724413099207610048781417385103691792251076731518242617423151301283771178865773884316366027141404622182394810282802473119845343908630620295891801663302073170986123316308938454577698272342356395286501555154449819914400616370269769921372340712152733515724816483155885349182335909901177940097886798212976628438473103885583699211718974368329890399840821716902868427708193714562129812653921951230320255290521789888275121155088932461526605549523540515401653993061803375138313853619582378850745749455912431206844429059893888022364101584867690752329454286801848842615689847209484775560378582462773992410342064621229151923247405505634912717059923195242905060331252923597605449341933359261875798673868701120209481725188376444931910618411354429033046384520919334321614101208743177845828914483406427408745397273995500275255124266007361202238494625668507261711226550917798587784673225522961782689584722034592600184049920798188176616333686381751758339657418146165611180877753842048658120154884575075236336817806590678989747852777287337203008246430266499492230969827755043797345493251047510861017320607270529705516014751499260086153358157344060382293239678871638882917467749478939649296726027922951524342254269835567426485206253766276377915039432464306719467811858568594334366863413045032049742407847399184607130966350045013980791358939295217215460775920082531795177501010934051358991948479062815435729878170299530677839122192847777148269801884492601142023167109981935361636225981610300155661779333478017859109881962626334954653495089414420316887950358214836003164616308171892056886624168886916597016411257602704417882030930684816063775628203311971152476050576092946409130279056282492262410885985533642255669459382946814753653420911337357264338930772127923988763322375962184327205540366014461758484932424930024283798239517012161091338977190743468422963474261693450346329818384398783327511449892028953576259513492100119216361133134901473860769370321955920261233619214346455275315983692164670940442800313309098857050591116982041131466250949809901918854916069427279379590186526051807758256437879322116600952061273461345162538049165454364448158672947026275468136462582583550780176956415334248557732440951431511426137034038971444091287271061486936662121529355741890096850170454674966287925787663817236086503647715243607974734838844396587322311433934941445830118098360870192175926454707405127686488516509652902400023289151800384309343934378514226089043657367421187406205370690492157557606974763180701969459176089703360976366617659218975301811465154644861868205238889452329365005390514626298478400227028667298545733742325627355970735354013226619326417399366800152353625490573812246259185469739682890345262185888361839994733892982077238832159759011586952028468022075943162765001628756573851165548782732524039279079745528250604866353026961989391782096335598575428701825888575939634297489040220283836149111834763533673655162722230637144286994471314042151014859875739899837314004900768326932557302895083402247565284933963036821088811635502269901816606067602363651501930168683398906390254390042824684179458106734165515677621070428808852066939344633640855472716069422385826866772194314480239203450937188012298171000502751240417610845236919475645068064204638050877969294592175597563269846918619868970591738305830074511285214014047171317859001776635795638616648729090895495503150607757448260808247871858407468536714168253304938810816559795204395971657850355241222137931131520525236529972612223981113220891524911043125854536229499605295704272743197589410497494447141423858097908343874704983002502904263067916711828102680935471021141658626188278166746185179264946218649372677737301037125956520520974475391132493761232443488093561970673345101905531193721485748314291078425576187272066189869941093767120003222089929329990638284454940775825660675525670966038803348238902802668012289807302931841065025579313385446714422059950985981291978555975243147618215189617538602710466053030232849875534654087084068092894323483818067633092118965290894143508181054043429673284575276375961532440560444127050716895848538701435105802674558316058783642485043442595357480364198146348040147995882084991009383691052045542707216731528389116756120270973590849311470176057353016300693877878385591210992693245275652463767252211242097552823446513172816509315604471580198189850297128437387045263835307567402209426218632401983403842831816325885033271939841095640122955365886888457783745752785204212866802520515093867489555354330803161093107010717527516504460280357058152031593460153714718906946774533097633464070778016297850479674542214015441458704907144269526424702440793913275654160330998398697575934343587871965370385080316919741253257208091154240458237689630364411648937558859302560873273860497205160697396908265056662165624497644428952647950256979955624723270271067353489333016627617110172367336919581164306924145082683924946516143384801068269338061022588959886199099707365318991525169323690763087191178075414121083402471098772168961601694477436944864315600458792668800427620729261344167662221726367606072696972538120498485925245800083126494601217489267038282411144949620099349216432843493680405586315663069379135165752573751911444867084351015061044154969489685791931390366247967042566760334534700681998732217038007106286345648894183781268230389666926297640275707767049396942100661665017861446657527961986080147687998094550747791028025830489810773585305528840648829293376829323812854364543047482302408917030628866955708441247574152207564938183098986674723308921600961775858302756853458066719497185324924778758384771763596605707835974396246679977830260094174108205303434561447055503713541524635219605994162599142098071974333618286793731926011825688155034139649268061111751769083647738280148258898242825166754059730966906057819122990914937507299150395256594397009046691312518875689423255314414759570277114799472526681570019240828945167965953914198351885685970733447382416902123912500952318080340588028284723056183002784994890225233306277271945488816482688687923187840622319385400121402883440225591356802252204870443736972523116302682125765479880855767244444135789483827199165646280685615451492082804392780818484981384212041692606248679378277687284351579281587108595680514188736783008089720954518104474127904560628300137147017458063741771727562133976148946732500098158300987076931355309933064265637719139836509017493194952615694168398517671759816375716425347187864460980431022569784545709571889284152491601785525763247571172117284617462681886208433481425030857539512974998221370429709606830025696612373090455837670018119916695862395314720983652363108770916284576291524178668185866956435931146742247105561016216055400418549690340748250880513745680405763401524026841390329512507558682320356091874354841097772252769051093867043422448046166263015067339559411982931188802596964512181006563188799825020975957077655282716693189586091194856594555875899327062334496691369688753903801361489551754189151440109570923562292391894269241299769141841316880384118431586144457430317882737714051490137500810373385111354940219150094394161105237965372739145233757838678949342186510507045131241459681522009634812528681280441707526645064821013680272989897517738886891017807388796265814369662392253620290778831017896123112038036225940008439458532105401849638292008423122294110075147615953616437768640330484295328649443172582215079603365282972260745138291731616367886641163573683129641137647137401628250020474193870725233106101435512124232324347351556875522509349307305011075670894060166903972441896110173732921789098258863416548847845534885398981164110745496394594511418204036570578822146604958782236971556681299763562508792331253929302373454568522961033279660071174417347892471807899158495896117056026573659182046604855960822647043006263109877545681114487223456407897578800918223821960823137654307872657488115386887230229300972447162101807231566651259080738839622689629812395402700576993077698273087027480809039475458288908190497790966857737548448208007093229527406298836569421823585811319595194812843783257808026031500218896457713997350515102732520045144260925211818828732328350245173050407639613634455584061088390321740959910290286019130482164153838747899212159192849326883915889045767932904465004368626862389016539058892964184866114095093126894400038049645074816077895644566514154648683727791401626282980933137258322274620708488566124142420319725681065615110015410307742447695903646875879759348521651827398061834597531521782027056355717373345568995176397464746329550880959353201298365059864898473712645684637213765659887654063308887087734919452290408514682221605617829466249878382567719749119936059688823062276483378810520386876172333599968189273762226052091708867469496499998906411102742391921360747294388780653252660575587088427898037580261792480801443166823528963698691578958227498804064386755020320744894750993862468329589028727641618222272665642448619445101938334491929431740766593561471768714461415070497578437121855267907718461359892291059753899779785466749770957544069178489627359213968815702870209909517585113641948026832408339097659388788034532741614072446004770500563520205440715972271595838870446771427407587322564645042705301691987214969523892938440992642546401294784899446144128089727575086053582570980591616336909618382303382135594030956035328824728069835558509861859459442451649461976394599783451188350790522549646322434184837832221281122282963875546682429719001298650634495430281614748696102463662657466812416005317146883851202870160894041403368020294330903205524936849474497831309479919667249209272352473282414764413914629431368055703646606700534381871758254658075204050981047931092744156600238772789405701244215009092626888066256753469270478249487646386618957328491908484948563013332268691805878501454306456878659017814941572044662603490681987493968725443278968085351730689739328388923914867104501872756894611474470564194749975873361825629549337287575540948640857707719816060649728029766575627272537942562944526860401227743440873211601486859497329147829806508648916451468872694074923037263900404206915340518092438060302112254797533638294239060513651552192056463571483854071350225812950189815958048919587231724543703785115079521171237191818342674279704637143753407332319587925337647208329763169263432531907035555429034318213319390808207066091752536599131529155995925101986676992510501831742566215759064647028813292836489291482287646448987892587050147094152051801512288248306720129258539412427471209126448459880736575473121092328317374674650866006238580716197095235503387171506041848954467350765084717440618781159077565946975504277817924833112120818639771630839595840029549924553574349058458822867123488965523480608992708457625459424451304608203517373615031758818237049567202476936238130955246682655027229100212989053602351038838968995966723807085320389336923865183072181611889005151914926204701167588566008898987376047837481069521325478577255173447130197864286297934782321598779218370395681331246712781149198410402118065494114535456623323643680662836773342213194358471894406410047346596895271899586564818510471652228569006255487048782927208740093489199995183989820434562745916559842324855266018738072136147984570026361739981166321468263831754907633402924195266923888913266314528809483059106973867400923375209242393924474749075579133886433525606945775761862439699716698106813677296736628564753717632971318745855968409361667333203567335400930897398843582443980521828898118216024031605871770210668539725097879423811027968696763026221762946808606640657676440281771206340516972287030774674592042916750376453498138687672933978586910096579676808046100088898990398297121606888967038619917956389799168671042372458338549770789646701213149196864075627406288673928481564067385093229238326783024193969278750416002174402687669355748584119922680785087034855887325407652441823444269409125506474736144474238528891009033315392296363090072384322745679403554838120220424984703490105455818803188196002518967391118009886173130807341223294354282724806313199120565867279080806657770083879566778096372837350887553535709241115423367431496721503238524184374282833484358297766622780330735490674410318876864190388693925232253622010761473951645226080622413916987733806650414198363744151082692441470440742471711154364670748295314155066943967917395262841897552120663912143905359037225262790271481352028684084117297189982043868059287525045552930091300134674056742004308240851092187033652552760860066278439161328281399346893585016959494292208031475309642881711946531282773876235380411994739820340444268029098150253266955566465541652693480132809559452038719467145650682427010305935592940795001100328168222517601955251762718363114292781567127806030605442031319776565384477790948434144504913099278873914316807487864253742691174217192125678486295113261199743351088652627966549666593354015172546983381786798195274141681270753266604111844841619215989601565770578614437040215578118472668482281664972719954242140928020389586728398953369424321532338118412133026540098804734455417324743634746215570652291077802427056397212561035929868865557017984003699978522054360229065604903390633003284325590533034325455931715151968469074572128819198804857235065198687874598039738454397210231226269432028345430027013451097958235114740484426687962819715162573363301292872832069270510284127420023988520077326966963395937620816260328711865115048268888523039393907307619758716585320583706206770763178575013895888707175785979599026589788447889509572040316873818999927110841374230013036655404007094062505410842160032853850599692718372389263840456286428887706016880745831264676026077085920668238621342069897692864748325027499067263390254945754803550473030284690674234190251832630759334906056334695843414171936990348840070601894206114231729118683930431708816534511364525151453017719124749626539276141615367962422248462379857687281635386979543995285923230164178567404859544220269863209676714654824900802731348313859672351913367521238899685009498307511347442191444045625219761693423960172761021968040586810592462590701811937135421767870785103707161890979161366509434374885726320642767823347359072757430705344355311749969421433456966085102659290511719492685838454592987488011717919572513014258692297672439759965415765676201812556607299042433656867541662880766330130633207972046768004026964432962433165885896793810752880790150054593394525355783843046518605749011268445959883834743631406010589198816938273639750649607790121663060594475824062199185543713424139417900831667269198846828203887963344416562868799718495619956189331521214972741335970695617201898587541496096119878079516717435622066453789150818805047056670027974342000170461658423450544738344539049642951436400840940552504434881388499091256178732743671947816370122450110175600787324537596240730599629395527810497361068056391526758528592421234684953509232081961637630931376758478959147827662201697655254437122064117232727592814164466181272316714269136371127774708679364424075658013269219247273655980147692410231720397504224016783174081128731839012507231823198921925453044709333542965720798909318515853557854316196264856561417402085787257148488759404838148103939601098348977045390506212585205767204571035130961468870815560617226473100135632467566867306171030784067732064706525636996656528682414171485264765861208699611937218409144104198364488751006003228104800223078643374342318691657348982973836719055033368100473863221693762744362358247908177790578734885169137039439446185772718440192590071232001613137177705587147433487258314146676445263813344305750725157918227641303097156266033279133696080264986256899862890484593447183786764911527429614675746615782091351988876625359533163623011839259288974527538923073144897353552565441512172098983828650490034049465849968873431904883333145991379299901542201129450694686834245942288151136415467622687422882341544765463120776172631617551764742860675340152407831717584374226561931346339149309329372209999658565425352680123409874011046984076217487250670482578180157183761033837225414516007439148293672121699480035163520036642315039092534059764523430202641473708331341608728658847764357398405737610589219447486868083971710510961917464795684196543225340884766319708357065790934948274755432333223324379373760499376842447621447635828040951014791177953251240083961291325786399237181378440681781820237142106233654295754855343169548555444231955578446097423880219931180227238028687403833345328053464348977469037557638202124525872512647108407929655092378212455374932052255899298878454624814833261528873374168143771681892715625432311741431429461185821900405033953156586263260267740633254972424974139488045936634016685871922811853843747808591764259042092611187178206774407369428643261208394326412280855294016467532540316505599486280224027174482543927182015130165089439676686518655345511177737033475608541087006567290629223259774255018141994536669081764140537351257715460338974676982285530177477086803608661561803704514650962176254297453079321733654007813429662908049131179982742084418175317928235587340374129838467574036181719869104307826952443086934546999577115776948521719713246430610878357427938707236567579330294032231423780708384869406785001789222537432648500758528614388802934032839832797121589802394133360437572098672040544588804998932730565066877362152943175053552520440467021518057045396798964785951829760534064848139686473457151272686295947540267995930524816394499330363987614837295673941695271154931460349788311774030386004887262597827004871126202346626296111824636861974452821014830399492007963664046469765805744878570083991699579529958624268111680109797741106602909116593957861891439338952918016635488169769335723332959183441869274506781918473966533641204566245182851803404881405981373892851813437644033079973078679215602203694194634586769106397074961050341370666919138078788233983666814717147526792602944683221322083486441721745925224114002594560503242974925010794200242278223359307788159804783431437801598354163655808871694420205974144513633446754188159836274984450987533766224697897598249847649914920878240071853623642420470069198765244365636680097282772152075601990910218456946538228145730283152996799069063426206906605442748931371970877852439184345439001088001726774138688063799155873058740910368359707238347974079344876945100871894927825289676703005362545168334493983620709655716103012391432867663239175924093815234009964199105119291136679470246347869315189043501484448270149003745583875681575540893252945878717817465269142955097563731748861328808628682669597977452966788403029766078130576847375175751084807446206038241631456263114956796926508594854563878224426955997806563901450221973767211711173313092133295525871924646289643536847837261408432106834823355868745005816226157632750539380408796747555761420734255144899000606538858748393810520689443520920250350070214175961881027351832111236357178102066188843868707799471164525866631454901187953960482365151226327318595608631189026584826823710193738326453474700437009472573722844539240170118381808995076890972831310804535759075092487625851624308675382001340350917853563229909754333822817838258866368482026185683910482214411631779900338697109837945201592213754056433664465619014337208384901352105728384319570151532767529331942258726921976701942227313672933808546392502727043599541879068308824325831667010385279841057727287585057489490844584102662207297663681102745973675364386519476335931653357145828311914923689352646983342347548633326551728510950578306148328160690262135606474321325382666096007694530630902407291299287038122973187511625478092089105423756467948336915231815766116940746483961427098035225419132812657334965145428912343542781757158662208779662769926742256921851188087864270389388316233725286209281549158923916281017756032708394778813127657948687161920032043174208730237090677602986358553805553339295424223538107178035806432925668042470334107328362436169956972793811006411123271214534766780802519590008810023848634194965121215757612980145848134552690072793102284842008694820482710073900328686939937349008054596215344296365726343554904408772791868730002129408217481641295117764065587372478048759019970450638003999421988915702635080209366518092019305215800539718854812435012780903096907353540215862332160379163846841371728631188390224270500872429276368022405427239957281098494512252844787995267414207819446319424550733392949297447310035603071687447668461802637011360896252067325365325389739226850390205370682550463921005411920651318056033964141205312692290101482004925729717546441718304116042530014782746891162188205919099169038739348878515051878599207288079959638694850084973587400861479963504214256960270723441606388148083117608366598140678845724025507951363079276456336607818396905225060864081816615469481198015838969033221903964360695668578519207146624133819905584327169557910889552535508645131803106483749046875630430923298184234254719269869427302318740036036919977892505187700902182968251143629943087213625696543942939409549581006119764768760998899076273293586440823622086882681186700262874612974699693727824150053825831163574780305170430485212721541268954764525304905939190780353007527197297644486817434998275793056116297593365019617491187411520887064242224853911578103814123465265074025220183912131160465138322433814347849175906888582586565059825972533505098336218209025175280364441741319124737677870804814751835233395700792276744090348169045159680265510561740739238971972693174582040743883728320235708156324992134921628236724362853579456349032642725587910734046585788297482820430438765580876436088550859491445135432772050953075237179070498080278847717235640808301040554746273762931776810566986585830741093576162680986800010261991026920492949760411448306038891556267735508690419956020503657305985206156762496048013774735606777336853043045895708550704186432170979354207134785520604509917833237994691299040123795689224737900338218437570877107896098726122957076162187708234730692000963874107881385898988468846065541278217561465765229843483745805928137576860734518607476179011909782773763099558233737780842993250948262830988027371744500365045810474523066457421631942276053006841301478083127337501696698239862631235953834999480724446047810908840582929596556149913608733497731485405288357791221428350114183785982054950158767901758066585488954178278171082398108694361356169120370861790847583044639696443787460878164254656986825544666641584190498432976585202204403391344643991122048649944456192880662701420982475105268025250133725859771598562889224308828987585603640906535406087873758334985572111706298956996260317575413678703595042187950822760080554679389796413460857127946011883769405909211486061729961118194444147934264497768891506706748400791674976675486271890224322210966116318459972609463934275770786519120156815603129196212025022113798086562569066205990307556006505110006909087756320497787559001539923158873399824000567089443427159074149355331752659773521732527903278136104354780770730057537399073154024208545777174585730487921791808161728201381699923729318014477920808789649346808339647491661659210622643522810505537076604834040711875768706771058354139285737915744988164389040080510394094841477948176044939005402630736904881689132818240658649369723631555902107830534075193446819059796245470047619222122000678622943358263661407338498686339657217907006412383913078550837095532540358606678144516248543439736970235205526913998677774352721481704327701828310589259474480848143583043991624384688734101486426904256539398184931053445831897112229588939157954897775416898202307679709663156039188916479817317966554655077455902252719761063603551095660547871861767180800036822572362280162371694949003563000877380847798915702187726970728384589016837153097582187763962920101016878424822933342711846240696278308490038865396059856005025722850104103893070860390274033701080664366391655505800288526498211904970884962590698811811669075769180078641695001783762923263311313468075893253141100790222364746298349652326179360868751406247739683500012111461693264379254724101914224181719531652263968876955245409564386899851900866494622012205854954381499583203377816785528858469600266601445276022958909946775174925829935453327212595121676837334992632782304273361971553093924555704709004469658405591705660957153379444568266014826202794278978420831348834088176828054804289536167881375511401014136291007617011168649840315258979101388203504359673340603028034564527797738626931175501366353065122448263117661988081591769700714237061085451409082419546525379833044151271860991327997949713895211900499266573704382134216432478769066860513788415541280873214229526681227938344352960278574501338745968581436508446685429945516137992066993019350727042023052732624772704392099760165874437363308689344769626588524221565115007241177838353876538064115814994652180626150082043828501421750572238086383145523221746850255231974395186717149258215323572437662049716081488640064901927225790368823379489945001425337496883971530900669205944445462071996418684476431442338688830742801280778703263878309229608106920797307288312711959226110864541395916336229106565882611434209223184543401127846254597661650621882406482004945397474141540747961818078168108385668494476899922675819211540158899353040757613792896440824807003418717919137743586982444438434295662160439894897531632521343618917415761328220751058692254231420931379457590397156037966341867841152251121464749599464067071034570117339023246942039675119609210309888847708466784059778307698332595008984698597535473301948982190738922964974823769678522673678147966665475039601075219477491452803358585401190883432175428858166901478299378780411923800629722085620523042734878588459486272842989578930690155715972032295070373867803855316484186913562450363643675938236883068677281590917384503022957497949983156781002088592474092992988697781185728743681778273373305655086454465307879474394943587552391332196289779851318570354896589068791548921024610319524548351724261062322090205957588305513978378870846521853093959011829541601548739788318753025057116734040021386119545574260932337210436009587717183026706409491560474852075521581440327940993825467460328956939518456028198501664665743708310489371394141961514773752137025808136001874675815755603793248522425865925793981388771470770161160252517254719906412244716535464284182821534022278373357322858845812566679706648369968038657814570497826446176093960407089043000761575717989028994744720873000525548301204979705056298749259021768013880343476857211478827967036541004275047451967828123666228087838756009394959443420970310635104499446796230933391636328309720693565249663505165458904855520245782999899901045671790072391613986906269376194816113443814051993575663709115861951794188699480171243481581542697879921997087365645044566112955601734075900434396111967154276401602574814832291869454553353660405186635812106254559951955578478385754511873559734559033769312924000668272766843374387886474950015273820538561882033865588298159366890111106596023747326541788706004179856441207654079180051858377956729962069120383034401595317597895325843853908936545382564161472541065992271081483151938949142380766537006792568347242756316427989801825519104717224377515425806352418676202295470589860517212704770900635545540657916588363151876824276628917753986998282051809792652838713782771627912849738518952569573189515231204008257056642691745433750470170257505384920428539533001518310698025227196155337547269057305879984056811813023315202346826194189988303628394537786729655898122782248631472771096278466008707772484098523372281682501934285837000669646540758113253302235433218902529239276865335399396794252909574569013532909268337356730660610475914940231244125964753739744882586695927347784086348213538504725015172354841741406887698813613068263733973654364938679714298985199147415444855821068488012053798315707694245616555817808793295797158567592767650597791235510716812650172571357883749466257398604504464969244590790376692515268602341830368979350543349783693055627929878445295805117111813431980839898938503796890040006964153547028308948169616985904711006417296286750289280747404121911811904089183359702183171984589282054385675228335821912615638146062793902732680322726705426988785307101642090991132048862068547420842426280872526918391406757586404314412336742095561057814659974561845901629850961901761189668165908271702535827530897759335791100833251203355810851395740845477351178024841536399528833748036389222693289799035418048080578674850284702755433561941847867033819121595269158587581274421198518123151724055538087316811953177132416262591995824534426615171791321218360672894214951783806106310217716240612202505110850641645246869102907415615174008465649125599704583965584537202290926702245194431959377047490705869801684917789633252595038090883755450868904738275682373168852692755486708138335697732354729061550068200303306880419256699776938585749151954641892067522850579056952045926213311781391207527630926025563292665169315796246401274095663370619251475985640649715293554345694793318286015263326199270043524884036558375848925301316642560170848625027090716328337509935940362370666127596289783492574276314160460811586682052361140623617476410273615494076390955809645741160808636308787663365540876249024322650703209995872845843410921950719825788102516454372520702851063872389577129635080934730052727494729149527762753277071847795473087544502132430336404311050689318623040564391605612878665620001677508684223947546485917165670473607600495862253286089747491827043730136551741638237466200438165212192378361836015667757150388750630576321185424096384771084318686732425844979241086105049762971465960759594322446384485090375779050963200143165782259584492990851667478446722911993093263766198890596243986600904710073111750512541919690349960412187607480340179651167980957444216602696865135133760306630264264640119036452039524746883118786922402661011481020285122640259847423317731863115903332788211089553360247784917059791542582065568164058838667738051546357174244566107889833606500790239733885393088050371946588400822565407939515217973869593173193875431460121071276997202522252219574926257934295059538388244537347237132069083121022745722909270133164793470616196931682507829185010276152624994986072072612200247506906001453629347406288228020362365342793947284628365361025569693858266538051383307395231454436344496354339645699479031126167665572270585921794442346946366524517451075501048284267333263170960257826803650588777525097968164862924108006463749940307511318275828733954625290597306370132501418198002805522953683045546791776047995374069376597288602311576829248488556893295336341914229558729341861522125929080698214094872590102436978586030462118651092511722978797179518721457071968349059915504640310202831725421826893161605569653271639747225053759805601932952707025986913484306701362256724101403327936070308970910564594365284874255339871484555621808525603521885008634135067344872435292841198951217955664889183673961856221488974540118745926293587783097333420813482165298985019386464519961664609043209979510507506434780289449911427425322738287896059793194056241505002116025499636151066388736481999096801394540108491804034902128240207638401511004298449629513693800675563981411996890767949354602704214253192190931682195043335487353216866422255171435579279151766622042647550183675167994555819116825008323683138604946776461583021383872683951234420849689522237107955669398438433275910439421110029437507164732091488147541977544589098753170719571547753827806005042708743618667238885278679940955000813761295807587187271536389041348698704691922480324401449642618161318713949920059075173621044525286450409745021642802839382789501425238586024055095301360272091758533146179774215639984140952758150183105937024636146221411036566160696549983254674072690217715600022350133096298396630617497436745932393591280491219002146593003948733726511806731921625254991017243477523610942811269759610490586146336612366539780177806275467456222676762781687493726620233713282980618069455827976999764187474018653960355860915155399816268621310023249004400478286300280709260906654061015865609861801349993610106202277121807481884041934281983957247685024496148594317013252155981581284331767108685570851614084318833843380762982499447237078627849646251755482483981086164269889476541488009354973407006025253880813499641253039667585430249167369181607440456966507495332924231124777244044699220528932233046510683193447051713267056681038751864955765749119375231131696844137596211732394066299609890363010259024095270381655202386741019890321690769405506760432169777369299679941223459714160234939289269193069340270511709099505970297187396381666977880870866879619751834222046812971955799269855211844961123405179513571521168937435115810394539876639498756071887807320972334368743546393431281689633684839665280889471909610091880163212697570147326228479191739194383580676781206252360502514745152589474294366249526355289742922882268874823201910502618341445349594163880657011511536982692893668466318693155168281996594423855166916931324383747321086809059550832420408201892973246287987382752333424034266846321675609035302544344317122443585295531067428841660318346746389134316791282300378858277654412596027312170590707901829408931494877473032236619669280978517732713640123301076770938999248318931186857643339412266717540975361732227956706683195725397162222558706341822038829338782036726743191040154070398839106019913276219831555410889572248327183215165539500591019824497381503799773143375316866668935002029624978278550916410997942727181177177201475497201903625280552514090146314791863368518848177462037110758739703662864339414138240631950666839635324439810818764017533243282553363390758274569069034897511895663020851513061605944067671394784993428213780643651679448334228571314394599256133055005244616337319409678466163978207135678484463884099168802070610450853435486887281298464022811491670574869193873556763691113803670892733534047193033854505856599821006055776988802319859090091182521897355638674680240591596387710464843178692670195534197661728987661933355388615967764199553360054539965778836211392431057224552735651689488782273821695082767992744706440692092566888171923865904662014493583471950874290281986128044467830371904882100857618415361732392679040011420527407524343646290850273776381216717029816358724360550040501577230491764271937143444964782651655472271180057700816853102796434119798440425566437431129695305947276230255901855112524978351212656194676099189633836350819369826200336531181070196194167168068608053034842040366470514583101554300032138646070779886221581737961998674617515533652559009456622199712103449558664377184630633057210519835128460807800798047694145800651990581243540102125974441598663683799249870584525479467166094636179757873341732106295763419356113798712001432680161899052727638806112797197973582991474979365731926789664301368818347758920122849889301129457790317562050586042631126449770214186712660070953480470461033618843544019809361688731384849708262246192920306258024192522278405681680421341221463907679691226747271855234251675489529835162604736867695564626912015355489924495524197114749389822126825668254600781038293405385557943962615353466598710806158254067746057091689789239528761034687465089208386322225647877869228435090933538297765192753003173100138741427193396390199545383138423859343476330970590588523975056142697483863044853694442862974857591796004869818838167107591049281010519725521168256172213546894320225459667393212335963380630236963916963548465442737391321560297192591693287543028852143734833096865537944712704101822571514284248625497662638330403753192545720393252946709325716452629206733765436137188182031246132065129996972112055238338747058324168677801625936687781556381213748151563015053190040740860566762044521402294370989361544755050536318259283369303089299423983394618729203335633976970993415785112652424888215696969588725083099296151881554679318255170496018688082607668232490712324265185990803801946020268386219895735512296364698149866305714582942298316314741567374395501711898824844399770743016339482931558213215121431474176795861799239044124265626268374849166853082388672470125231716180092960217936337965400961449818337931668992253212348410371239407034935052745315525103284425897574557718477143389197390756666626853633396581487981250307535873225168842121360954147280470059270668531408116037912912907894383050469479704507281411676286893796690371453835722261801769508276706961413117691844932937805105218987761919201043821166018817244030402013658440612178979154476598501230290884121923427840232687591181816170920187363778884827780517416586203562303748867112567727215710674214182525232555751710598800801507664016165855745739049434135018050514731884509349207866259650869122050472471003327391318171436016462563123724083712221652905397637290457637067212100586034559314192374263826319800011143901407298363212802933104176188008250903819626615735723843461485934759575771132451906922165571269350761388049685302669757777642878966265094553782090154379093625630697833066988408440232507986394340906217897652771364770139088750710878954929784138043276754906375626404884977953823759657754708744201999230962270081541854148549266220780724310206962118514629399380852682898670579359834844190091423302608275916907756133769744635225147011240467775710149913518914581707562261167444834735111737715348457272071943370736387713158039528947050052946156283644471662742992024813619845438007450446602288047089510679940768998037526140627110156961477355154449358410865677541588626938967780568474866579245142342816145288332886592409974809386464312055401180763887952707558037936085697789871227420905901614141760978053674561153921184837080732216425307682465052951826310447071956284348991575739066717871587519589058993520903302138906878299343114865971856869474684655299911015469502722137041007367245653769650177507698198206745752300406250919690616915467479615701073734148143100859846898709714771872256512363402095995045245212303898395086341614300691011246489352523671347629926091657939945413550756924171621816477047654697761048875820134212039934843887654556191384175682810170922189669597745264263969178693154856632278965322427580528032938968412575597426472242701078194164966696152564225770028299297014421892484698122124256628039645204835388184857406937197220718217060092325314571732653208900986689218619317419125600986891973017767477089906310861923305542321694159783162770821217288818051178629937960324970214218922832561266601881926427414750645953225084786607426552754638680436681578695613021568969397261020077585634586440296665493239907485284497693606001594454467665855275214077135476207654430175346006228697128652135676879562094870562470442025976678193502566584085157186500362828940740797208007921546354030433017080627574528113339950545663996859319241462116040194236882892655966288350529063042852719181721189868756961356606142293883481387070840338169923392934702326912947313452668700191715859656212334508126827692012918483357099456066315395727145111653818481094476808938722145424360869940182468018484148058281398871595382743600375881564621259315367752737696213613654190127341055046244008285851591820358619018576997832408641110470813364794683983264801690513782738837522272463772540132001885467506739507631820930062293366307869309869590124850878823277182170869363597541676443102284390013682522714092081458993624235237012572692979935611100931071825833445124177040346133489362362076701626941241529567515189297347502824575180946666106070113470908872241713892400950906907125083274101596893522452123380057573225256246931279780684221251162618134526433523912113958353437101848398752110464971338274658637644206597767795468013111712207453090335262562249932287657110713644437192896906496268910960518898368494855306980015000146136537471611751997791841860252815419226585011978966040267461207933480114083616045900081595860895701793614272512121671466445121731996347881162181668455443574836621836473122205178754390919259171306183902013361032161339268016066340708710330022120693893182019865267888044075888348441934529339381772774919691608564778991284093280474681853440402948207585275916001686698070279363918288659064835380594619151218783183376967564166212559746583604663074302530508755981664623468073382511497832791772899910932655903150624002864446961983827904953336064638264541041984611794568639095722232577703308950952595837220362047201199981251611408047203387323303916055451201828992926692473980641073698186959068784168228914051943651505965333485034124071298976422285661420212669593844737478988370099041716932325407154204470365679085890791865715430243380186368401690918255765531695629275677311939492920633643225904523608167266875917336084519745293597973858338177231471547928862016704161207368662505169602403466938961457915125748835949601259253530708600655975085316735761884775682996488399830765570339437665046059865766522163662328146712220778019874686190454790590516603096478367945048979673822402420590177223896819635744357731925342207681018686069121383694019935427728001208521853069747389040211704087537059767015200111364305199197739148757613626576178356667207417484052839235867243103845438010030046746839362757840856878083646447686435417273101334622661746538875979521182045856215960655256915983272683939997278914951974344448213936413463581396506504747016106504031625480520876445502685885356494570248338682093951435442501836415827789320217690721914978286513803081912488996439334270888761392241154973653041947733075665448289705857957540831345757896113478913220447909203482984516796145736683110058139285651029029696776908358442228720618641283347282846872236403002819614288820239672135583822091580888928154955450969092896019088192834551803053741866315714271685980504384912347023831653079318531547091551959619111503018823091019831467562298514204967978693438931158762772044957991368462613527473271288672514759500906706203825672815233902336586840007181120714783550677853516524177001229222713599987984255315220645664031460631058833742488289357355330929772412098624217211664692829069802908461515940409932830045125102931285403117325529927108050205243711877700370549396014539802291751201150261962916993618463746264534265872003037040595435933578418990157568787971670396279005574357287002177492827051100100287622848401908599648478399756790372316605616433621966959328022032200187064549161656091630176016050124147660048008883174550089530552222514446275368887621741250502093235669341194084979535604670414327919167892129813099549398337774573674849419983537764655398979469552996130175821714973920334521721547972901671268146849795889830526316386771182540253398599985180491719775841774722907580897490640615369128702337289206902944734159124498451361461853590397365176930031324025098574795417582493140856842409121039622134585716834811072284174966638887921668010156743990916558114548110031242572817536059128055654524733874307178142793793705135822104029630465099636467796240641907307668789811786636297754819380053079272596143356190010184275924543160759860665388461767037440008034064173241160895016895679000537159228195849378994586877301478079152863671487257779684925467051323946398673292622741166915580699521599041039782596405242395673804007253613107232008452836687486507511614701376037890346428379951924895653055299317362049105998028791170953434750066900090244690584189931031825665222896553914331920398991703223131314539681371457965127549327321854310223903751281148848248691263334577364338920504403293318178098329906751346445896186199042947506330202544961079600912720389861485580339066694851248222300013354084059536723217312963118050939524068539150448701887325591743615758614477805348291705154576772151676372373384099408499224156257546614463969028645899702906940113321995180768882394775133939406149727367454457436190863577108394265789728098266749597446486722243290311287832035519103631004429344892544656800648247072277064599132030233513218185201249727982034027803950957185875403854295821060280296155937746279915513202513448276773463314676502750911647083065353782602703555756691099285237729800601732798339907158767706907689523171066401027745898647599178028249219174807198017662927783866179234216963028526277023982865186311967215234679487175024238544255072545471988150741915136178889274283832830510302745347305474782300978436108410809051527699222025650566168410288194411329414107510984354608510691564780460938966260447023889764180436324244187131294238457876735338811326220849428717625043013615322493075777090080766581618259867718738127719039731580935751717869852059851904758719144650631995731279948128304355846284652811327210516364147748545541625673393415831437476706289467407461587155010824961752495395046077946914762145778459296480724874523336947902498580933540359883191396274923537255890736297483005989961047086674271666428450024847356105649705263000067117264987706036143218338182917164081533747698658148149970525347097006196965889691172012053648471541787274021402320409931177780777199045263378848157318302397259129524494488356162770924695328122252652488197013002533727323496899838602019468730755664805374587437963598545016890550474015858540807797341384665767768349821419260283554342333147608567795658476103920213687285666130838226444641517933146928253118817203512563309600440884538106273593004461884682581131306417277851613250376590953714789192523136516019049873703259108546915633899720219277087341411796203918144618535334014344480991076994566865728632776774227357966994562730582961036147676688045732364436752079424896727553492433720169870339251919252337863322591379932704216454635435533159901647855937968153565366570333055192128585057028376745014967755905691782517601341629897105113768971383042539977998087671010870276275344719629736349452971737512708602792852331538317590618904230868545897793918229617164907765338322810796783137470139151164661879434871472031341792026430121772665500216778093850980153458021486629047572510887168420720014562291363555777594074321693401215300862686098398484866064127767555306599670660458574364532654767319533637459864130609799282652383520736601641184357177828549270018285225595707739588863374717035430579728882026205256133379288657802374688186612716809570225540277088233689368692427859338919334752164509527981763178565597733896638463287833674729678852938041445949819936074287372310017754597357261278545056386626413652653623536437408859957756790320760641278112867770786998063031702861675624936248100029528073823865417741892940525968297658797151521959075213003895002460456882126352711643421821790514729964073928214494438911710888194685960313225408791339892047892796993610777770990897933739407552322144919712390421328283381801896387832437656800916076960217096580197461416738131008705313768615058662362915720690240433822761550669536657044508336333302801242195802683367720273357713485545959482792867589726924453261946097583460231370335841213419877209615655007458795681197179296041355036837230438780438543303698400241809548281967115986114615570009579423760101802880165925025172030487399722839516520055964809607670093266773171832250555248062657119274724260021590739587001597795880162975968825664691607209376550441440997039222852539774130782517806590219956985948529506775597343548743166333625645651802300523679302887336422028478252794908460741729802974427420067057512726298705726863556424775020622670613956079864041127413106798913855325214468243704947571509878883900756778625309143513573916640330659006992459179198737370736913623535140995959459050783284695513392782048788325145998667974882714709014796297299803925737154341985470466911492142303967494700081786864719363065230432476036631945756846101502756444268720991239305966112208680414238733742368457060814087420022240152929566281250225742251671029574666174191731546601123336719582307181749202020232596892782888691192655492816713265466378451288747996427327526763383047715497172192171961493536608005901065683917313341429537012897674309980182562800299919878296557268472556335971146651777475368703961925178310847932511639472753159822605773123681014587670392025185053445339832339533802901450908285492916089915671454896481565705725833499467018222699963936610750943625905292078696499173065523686657779397198316909797748711475463041021610462346114452730459682632454642787198198525909670921271156454454440225104615749229700808851156943370271392171124154966214542308779634703129794844217218157889168465343748895040417479952142249530568070172149113987096637043696608170118651298798851188211865787805814538972815367070673905736935543395393330416990488563324912888163801796581035877487737936757256097320755324974236144214376160210831800102303155350357539042293640494851716646877174649847010929235688293426972796245729335068216702011143139254729715082006154628861874430006920801781507884038507325093039667438715104528296925213593153801264884218501338243381388294045568543448170606705317128538363071567539836840059994963910974268737520052887659195537287515653400905879210974020196882724253701508132230753776117338426468033764205931128350785287762498384109754160427679339552534211134107348534173291355273432280691789867524411532442396413857659722386070619105075588666314355954061667693065854217107515473147704574904552306958187669666254182805504695367869981910690451436192410759887524041547525298174982441500693903833217815408488300195243735609833049596369205548113075019382607379726497500437069904105597240447593060742653841729376444778253487050547077464399689881317089403584447236805337593402614683712623050115822450111515429046391131618114228164283999355571698184683185705997729428499141162061440368996020322141073392526497512678744531421410404127071758380316076297559169803839701248752272532586844278810041526342645284544212069394798741118421528412557600322578528022527528552048948364096663599149565721564371331445915319479025225193194939267609395008998933713730477370744646528140527189105125076696564397870306854159084934986014318641837956591950035129581148164420085503107098636417856318273001656856092819441126650848688740797148020980088725095167877789382381106453129034955390855739902800653684929674668022366090548264940869995071725508260623505156510590600854624635633562366715702115475765355125161503658538195888959164941787883567009255948021873236570633930159445689089957163049262337488547018742162845442702745898066757420529132967765406039295722469166540413191802970449364524926494678281151099673752497578371950853964978813471300374434830401601766445931645223907435724689576729326257442775723489992643959474000033926346292137697602752731614526032306482819472095044098988686175942000543463812879911571934477827825398413825158381986366949195658791057530337480935465451704301581364375587691750803156481590649128412330953526570053144107071574035168471111306267441158550194923992928710485141495532695816370713544501902687651838418592753611516867878853325036476072842359784047105901537682415805443136314048727070609247586939547166062160414814883529842421586597579517147030931022941647079247177983396254102775085706805596252362208930265816430647607531987230997093565639435662768371218841810538227668669496231934337641605070151062996944814435325660529952336039567733250283105655159857409319763199667016258282160934792594985927476748722794636215450813943505337602941702673420179289872524795706041092044519379350976569704907241923715712051121672733955910147265916997547900986257288786657038883460680741847882988196439383640938466633028838579824911589216720325653419115923743801186118417397265000113460364315460951134264425994787385788117843089265407670581605135565556749456510239560555266015241162216840756133864490552698192701937528924153478368490366644095194054282496261850205757733730449928580903366047833569886871308605113565101382110309608522184480733845221894086011146940950129679890469044761337262609946436853243641223483255790085502667504333176671622419062573749254742962161758821006353655712345546012130984389746442348250165289860114259035754975474492351015551867563977680952730255266267186434206095804248466962209616788759709345080329221619870744673193528045247661181164529424442518032047906108188971522423513411049307945101341281422877083565588960278498002870689287551277885309284634035886318754179163465340789295071734246932546235725406894701327467999959124938670804988908711783451219689074322286897401571023071203086778112208353257836441046768910075732241510197098384514606584950168895552649673328223661816366204328301655367251254586587649030938830756728587930221114184378681782146980728652571024778040299176088993513894517446433900262909944535419204940351125296286085086272869966042629555994499261267684383930474853100861521766259043523661071901240206722668820962852885382074509014247453498267160340602499738496352484277512045152991991156571894738281588507259225081076184163261375147825354981178811007280666996996543236362427062771171734169671464353240363382251786046650145748852110017239672575914442931595416559928710776465253259281398153342097887474727704698921647457021925540748773501831018175040825554043513739783602310244260433544781030040297320846195135362802893500060303191565798794980993983592880766959748526595808643588766759610557837264567170973645197132859490018045300799411362921390946694735659196382808789704317925828537834281764601481331848893017886127633560166579423665786433138382657758269355709207750493487831060374436096313458677295868861681158533790549365472791019175614417013744348715142913463276921403304085772753964877135944118425414103189314933514727796452330079550135395079498423180254235489734210163177618961324840743830265446950449857182756003837399652659960332791817751602847625465472046493812496749428291952787246297847079245089578712761858228935550938256701143461662496337984789793429738853931514133025960353333146804867353155743010474385703766388286262476536108671926910728222559785076421698055614515377572331805605209827839573560983343369276452319245861625445515321862897219647504002410650845188905845224858756483781261169633287283583988609853267608423424886580998832012238412993641723356767981470267945665556355938367507162256668292115144024940751679098781867091181413572944341079348822525596295269973047670249099999412714690926856279760522874298052911856779755915639604719310051937518203948669812097779346329631413166278137541383025520064911184201431926217565785100117453730754090034495026274760477072646180193798861954439664534737247991397956293842531071839327596048638521694469693033547225272944353996139570728567232765039286971028157911789349623822212225183461899962499748057153123670668895400019973563177143703169883003826290481041164175562796889977757170949162695519198206947884642509563609444125231004447275665568230502678185428275745072911787120613507031660164729544196899833228987554343434702565116790585701147663215616293634471929287988329214709052330900350508494844964049659111365882352118352933335701077784084729987775533565694104904412997238420702587424956335741059986413854548918599300562973897163738888827291894535063837210827372271797641788321999998081153306241889320588767494686848428330128194351415435565697094440413177826507439531454946030494604918502693613765557980774649044364689750729978314477907932968458973656618420957337015929012606295079879916242250646020521558932146818884742217764555796366508038583978789265053797708146438888290376330858707227161012248323284805493196072918164513130525578517756527963449549758937793708346077657380706842242130847634853832705483382728858490076348967777601400008874530851817800614506545189577170233078645031308350359469273220121230434154736770990229539539759141549371430869559075998018335946841943846008040553319272429283814559654724624311464507227900001466054453530538209849662734337194827751981199138404616830310956945217059463438896063988076073152392799072639704698526239506477436778519392947933777252779675845346281611371042592131954553260613473764019036608622807026192793369757368453775945154611174458941944638858670402337433837488302243571669317880490450753573333375115038570381009332518135559081801199319635481893527173691311225039830629051189378755603752419946236684896881647315772257065027985705320697518419932356211073432699751755009670127765127686379583454541358428829682992530891673571320866825971619973853606750151044542979928691781945514985402449285477192911237438601680305768037916579699636425725367375878248910499367831535132876636944608911336941613835951533060165329732959663428931305452533047986115564506269612402319515316181911748786013375949956496304915647140212640952471911494041143535128963014653601102141050505673290777515085463109142595363666930390475081013165773244473100718477335061814822051840496455583853822515448507707206260532517580143472834041793673284114338128407651119659631978084521895876918892870472123143079943861378780421420771942972333963696796471252148627439224883433230374075490283136386514581015272575230365367137804693092724949579509503846360590933164773604970707400572925403308082621692066505967220697524534427044297081146688573378929998691246710054067077253774625822798918721316494376214147020979948460967200838346389513169049328949836209367179240444629833520509646372052492274946725992380529113003773985032351953683259411017467925711534833022758196575094662220040421960655086794499007150255129639096978419265799453217297671824847692932327563828130761194703323812745146940118340653740375150536492622410596056440946083857814067017887014514497056045281152958784808027901045987720176748001934893978165854251830207615827054840279010388320136068910210317628716153796955836266991523036055980281101577723664202356399320540718961347782753110827716660220965029057848299621701909431534743871586258512892943244504735595942062941137571981372710301875740639815844812239709361474641516212270500434295250137859495435854483537022806395451131899273521436815659258575331925596432696251396325112937885651332918879170432533859552711996762986939492876470594261290270377016034128404693266204326776271347841565953054339489915363191473429136657156920649455193510058500930053541942257873047642689340109652109446913583987293212006298101355929487477563020131870173930322318679517983546942494304835361905960603461912905810446446267259447527733106987348094313236937555640047932764519000530275113873134073247046391432218395188366003784326678773008608754729059059012862773906972630287259405716311233850725885487885395800143393665198193075599154240461384773559280964514568840289731475357906490047537279012138064321870266310763444237741980731600398437445800157126685313743415630829375899817726529764092546539998654814133146424317195101359374261753478783911991131214860634070031552459419030470515102486868797097399244692365902116919645719793815132866431699958581537877644363725670253626703097493642153487163350910875379913568629925029645139427225674664614735710009080096886910167055607405209121916255760715556782982542012568456554040556947259834417429340309450426320703876826738168955239489099354374565629029866770397292491343831536839297445220294362702363433069862876266967798049825960916049608964025819529095307266619408131209279289949958054599318456278351363475273642490528694637582363381554146594789884777724133490346262753190032053607441358478643235024812994670677357379096723685398242075556349176320710177877968283631433749663270962101134768461085681034414323706707545478672712879517902682695108319698936453707120214340643642847879573143740126198664926282852663898901178768016603686380693189124909002724790283968649850345250190130721970706043182154048078360041363830967693881323104759503250093096823855366890795387985573220388019302102124514251277187663800898752544080160782558232827092754734562177172405546303921107107428079163770449575243168940339273101267236404392182710461969881645005220250568651081919381492296259786312202177105744489432427572003114044191973186559258372730100406627349054579211023286030035032201180459548816751997482625374556902675243193177497468770668019531514722907963361416039368568873333413690055557444368696738125240169444969873683821126237783585183084443198161148594160834416296041783094618729476958811964579253600245701039164219579500200370277432353292882609589701093315663478080793285764625967657943315587478076034551571047275435689288028432680931459760735298195777115420698154658405327144927914028130918232925906859425671051471139190221833397151822213873456291509608687425136449420877751125880654723086778261219883890819467349462490433702523191074775447312831698878609008820046651517976049595583467648610737017444027115133362475892857622192333375844432846657474896187471659238178831534702925435518827635044817580883813024186227238756503625211832975024671868919452381699072634715115933837942664170641110397958387480063846157130662512966227615960396909997426257246877362931034060599279880427102313854692024142223341322306514324913574453151604963333292972850562673432256398767144195838148675058747797289092708967629899060011827612327803045180438640752337840878653009834630503815620054863856478227276513384144596089038620883929362391926235599284885626512836454815897954802622710867842039185584466982542578817161650540563631717479461877189018843744447950704438672024719902503279055099889872954956109801381978360653194481456744385161388610810539531103384599477346790288327252224689657419549222105226310236028080359950350757838178884541929371642001802079888608786668845990689778838939394059558780614385359253028264512912091721014483346313974729527711784234204708265534410296449988399795136169253417507201330111784703771062680891828928565693979704366740672048887580561126637804446271164251600209288092546704786772286056888888133552262150903748824173034798716068653368030881590866187463792239067558556881173175911935990840461183758814487780262400283448848835136435637557365362437059115433695192079772917457629757210589392281917843808179733065603544338172889063860410562007855322645990406019520616650526855726392973014183116430028714102212355349464654373654982127278899993004919447774836343449155909188900656957544175381453954941259400125461460755888628109025455642919793682172136642763035430940578255396802157841974022964320610678788976706687948529228642315511607602249294259484878191052894375774108706079891223119967079656177170664836075772054782788180492015825485464543650835493152401561786797329299535065215042101355876535362488720155929426363521919492854084057984255062030075548949427403187732526957584511408864584819840738430435074132074016939293969655005137294918381442640448508591534353204477195812633607780001448342658804630375646433911804687591537829073381788416457699084009942984537375817524683488379104300295168259254373843883666629246631284215879252618346134265110491798789517846676965089668869456553948804208824226617022614407645308763240577458935094130323715789684386161019565749237083676032359283429684642992630582639334631203266182816616358624260455132009266108018849186241878951459251269542155927699265586458681569891720761338779452577281507699272538353899641982948633004516422629209292466803136941411406977592935820561563158094092369823519452064356194653033794912784935741131454721881371008690721052146156844125439137253470365397919108515737810965466782426115573955131580611177924667521013274174898990519530003021548009717012334540939289236649090885015239877224929786259916411449039544633667533968713737632461099098618009032888131423690146181310108077017742998372095698968238550431988045507921509854479404795320626978541242288225829888427075276570429509859283619402638403851233423064876176389965554411000106147991052982613261527572859680643091129090853832198177516815334273594059317618931527416686551309547951336221279794845365655481956953426994218700055480714526585164144747680266071264459563468030250436569600966079198390301272676686616991337974787887910998153521131848074497871324834753516249249577894749527215262418555474120810977592058472582274949122128324894463204537149838710066775262985880702075059982693454465707880348052463889527960307413414230951951273578792842973360372308188393813879548597401157442372572598244555578993449785517784655167335284257576593347655557753278743959784077929397718538405505922607566257161054607065313765317975843196131287673416756507758424986152733739008892912434353354990182342292853828951670831959155887549001644318586894567448435544597540395718512514413129693889480143280671343887102173820382550055599079980794088774479689177682336068098966798574931757582509622914851467636716957052179145760171703066563970604202948435016140364897800848837983243072569201158897347495926408089156685566902552285176583074369920235404228413339152143742762243830807356005665911439127360300856468217754177398139424627259992489847576880869383533735384083205060341639736443581930519236059115801170921491078312516649083940443691560160675683433376271798303011657023392111389719491847824574374696028045097135342534508881382956911590881474591069111452066433526325275180511439417250585195143125267754937536433500525184345441096077503314142426123435573490836388160302937758736791583332592031304389770904191160658652623617772542360053578865603969991536134072308893628736455901559540588396009016093012413203801632825301084913118153758807326586382040254057783079438471451706133327704546140608567316127628253983914783511033261538586298492825167895540979531408162915066914324606175251164864777213787888204092029191757248892279066616384195744834336466556528718065672596557987876530516597169574138039039476571821531224030361419629628596897764454404818968991578417323132455209302866957014044669433484809852605531807852128026942849057364449874883088319422907099947580582694057798438552709122868058923480591547479238550394426585147000258652433833209820851645372012071097380561651435556558403205474951080464843596447103218928133085104395724665259289992162921985385797545501170784118475606467339212403912891271856485222273145939226091822714892787267240483299027016450923568513358601357758927350415383053498005552027517619880301829811702157342056621656282360891238828271265745566682755598219183149406972042382284700940358410085334450577403621195323647579898021839987349848725360213539102312463771305688316568192787520759713760455015748093731708715692767261981507288852975051786388463080165330611314075162309836457525825674248175270256273375757535879837928034962325056931451372842393328753168595431312193786248780781463120412791234194908461263338140504560033139824879214015794295490153264554347160106537675015835740392940554400022851581184206057580821898481886224493271736555971487573425823777148265583744701268562073324674106001573845026274310655809940514236628264612586902705494905925086241556606747469276515253594432810502181157057703004524331596284497286452786419979017042557652352278092648202258645752910504907593386866205156015796633965163306426819211660603777511913775113810342897370320757047349766634913115012035112279732211832655822797294106806849295447379690144097080732742758578635711878968957939710204966228985224561027312961029851168119363505601130290839627061740298131481738331625119327958845336110032686684009049873077221805516922953426455030936566759316686517868177095888689247760460408812805618430886957813777496283886447659946499497524606288035757128848926597231896611995412851626955983688002495214224411842435576253302868964386708292759296040278666341136920308502475643846513678843525008390752412938270547553221505236349037476311273799210764929134644834849353591845386906243629623483563410446220060408467536477808219382506831480476306711312909748771642355552380108338270145671115825132013042715654851305943156317421660011388499706448426024126866549557303045690869171839514152448118739544049650177030645861297184196423891611440740262278603787416506434374685785480012090070855724967868715357332227151003175715332673089828766022143152565742378332998008319619781880732085440418054016528355011928050243950002660332091505579363729498380854132827782054812239733414778636872721844412612929204453334141071478956240802356079553766823065288927127099882823505651267290467750219825106617073167388866264113915410288396328016441761620607562592469144447274252485323799888395604354730325121544095904783793676069797402060110501624525855244515494970223410697222161486193165210624429689901862797616713557116174483602256954340325149432027308303976809748309673589389496606694970110771431590355772239363842130500468488255602935297199171722611537438127373026118621697912780227305460726880908767048523134263236754773165256040399484031398819363180432099809343942217646676404259624717230721939560365156919664959005438439473828698541448723448339543144665548543939523768969809727621909369994220930827512448010912919272484142873772271347918202167716306110107192369765588211091998216124638087178394515218149321762404949321179553455346636632972220627101827883526155707213476788462143375586648913133325630845428346540135864584152138162963053876086027831484793969451005464175563544280661204020918232702657944708320972109422828330970372229215425889262161367813049318485623987742931636161128740916931504335513828590996350996142326801218492389171186799669558592986131823972780731592622210023660375828666203442819402294364159000171542902236202454130532678792301248675009772464571661590839141982990125111187682827745493911428278867663246981925337082871353770994184405740841645183541796544917331147616110256997858978991866747534421748843274219097105300667784561570051423179005287803326311375329751142923709589853555928423095332174298747258676116355863891781929033981060281431196079555711313552533702480034844586976674331262722154299365569108256739345708311202613239798843383049525819226220360363224382759009020545910233066678469894181138641803336872315792591325796875224444331398479496515266150970280892408364731689545589472624157059538360936393248683214099700473159586781103381050470098880913903607117086820305296859807639046061737971939697204769356787551066468872243771488766685862874168156291261492704865180301069045543519992323109714498078077437985344335725078652892264963944145742260129343723092588899118540210651070059312968312029175711143848525230329360868380575197264914054955935130740380579488823807433182537029092821716406524842252293986018848548218942085556542415913123408054700545062352803135045542797545835565080945457850045862426504490034443367040661572418540874245638204580161097249425976364286155238058694322992204611037088016821840364433603514685756913633488529515597604547640935882785387443701314591459653885287529751820319193456254640594654004120352622080978680247521739020708585024200595746017937451089162854071666756251754149013967139571913362825862984106120204642688019495118980505724759487821074345424652484728598808672238046880698260579718772477652490798088005209226399457161079853294478132843213328353404423196555239929247084346271309719903841447381548568428113672331934794369062875849271721229289147485030404257168786683003941816406815063909400253267513999260715722203484978060296912364890161459174625465510075700417307932393819497810158688484858750059773317038892327562102248273064710350697225487991821958586744641244853948126573619114411462375366699255124448881502994412507860730767909890088997412944390211930960574929596024223647573548987754409422385447648469342504534617428298920128904411450306488851883418822091364259692357040658299188218451717863495887449544164340061547111695920603598602226441830137748668713647101928907655032700752412765867567610368804605914459898380915358403794018819170339467260875910735461523259256019185577362191207684246381710249835318532615762672960683123791753588794736381306423545340532543673335483256467664518687779765858736744746430743347104029005752225161145267399773176887190952051506995260973673554976573184041730764256339412743278925838456163511050822978836852376513033036175729383903909610022208585723788794312450994185790003435886693341778716768741389313714588019848129226495290234080243360665693599822965165019919543168910589780850333325523640969208304307330503257949004148458466521295506530538699400451326342189112576134519320457606462699488840744114853429251028187254270585113451235555618127312712997373772016521895184634561932007979843334296010696508267678040843971498628567584676810079858818887724161748413956167888307212699711084866636726174232174207005071477916029991302011161646854422582973670501771652870332089326784721285722368825359758426053146888385080135253854201601655525888336053064866175180778133115570775725193527915572709374764407507892579884072991669977447907064424440063134630754223373253918647113656454239433056522664432603699286607598100794958120140976852965853386696535183962515682098225957244740751822235115176237457975086396596627411012642074048834838327232870866613165549028974864342237726845008778459150564077301743183304802105848299784810876659014205625296998240429994983031271872120547768193008938952597645058349062941935490051152383866882313209307090834311945060869923719601897480220990733676977655831868408370403892759869705673055382332395342309331825681867778916959282228070181082152982008239691010331245926944123175576954102870857589676036356312393017228273452596425000061407549634893386331040834957848589345269826855332756672280445776043302994944591360445563506790981261349067646153283977824303069857998900454123299329402458705059177159324983319201751435590904854384713358066434322289567720006619467634089129197353116242297359468552048278130561014918071715742500920110080246584283848653411646525265280145696846505051228171529054548854408695056941437999144145287693986811951260250994185379201497933542519334525073139182155673611119256547886876071577334421717912428263471285366222341052555315433406306110615745441330616840219586501196391251316285715211119340692878759102800961642403835291825226207924987134494093318309422270465222674929116535846030779534588765714549730752219932223850983980515356898503317845766413593430326465035310421665986262970226529922978699351075919398041495952400011234059071798043976015933134650708105410152245977421529803346065247257960880838659917542084438673298801008866627217102597190394895173928282006497978207838798614678360869265423775959863692952027236754977101448515014257770647775391711789477747412638697980651325257128928653068217362453811756295437032310665007959158063485616913325039581262595932370976306204428985347564436696872335208936529806199602232937257146632796495339087859869996712308044351447612588266732046942934680103792866738720546101855857049258793985329143898558194038670485329460198717044928587142068953109507298162390794747169820725583985295797079585743897344260124128281157913769426376604662743684461017630112403212919306828213841129879252841880400175824029053383682841775566868453795715026917351961849179724133769657705075487872545471378848674662089187015687062129076362859585128758264121661530582317341009839434907242684496847818230409150208591953656567915961638435506313177583111731797985208465562732287814858751484808501891807875602293654828614030515075536090447863306886500443533272141640300466568987395082966956913361055726366562465340736060791394042956254272482068783731417694994604820033060597942490795008150941499959797797310055701154738264415944757616819292277207676198291512737825036023962944798605804862507664045950430770016930356339999800725373343866074667727440059609632332580871124690801351830377078751525306832007663866909447762647772202396250804513779766908854376345859650498675385095748846727827211225234882770148497863220149170756816520693065549907952681939294816880311497680490129842996404952713637699963901831228627618497829408047372345002326468166122261363406078997502911753796196474537211669299230088866259804896251082895659377310085008102262539998991233946740270923162024491178020618687093194306414706109782169011107765003740630746818476745324327916207711882791915954397277957291877524819791936247835121068585732085942585606055481804132638940676377630027842230100719436964858740319869856998790795262921714033556017145443798203018568405756298222043552795331595697706694023276512783505255243984509996087506602845536437271102990345348686371347263810426417273686780193157081648440436261411322763440322906412844145877479261247725981237795255587152983920302904478077602194456437631464752889604598481995689597892598234883093856155137058803865785993357261415316005148591073054916702460771018843091355078682779001361812888502698318157918593863963806275431243545220170824352403563479087106862169312210090825837544811833515952008862369068179944071537218142765226574222436633971978922820771304130478882164748491027145039812467909848579960109941690448331733612329773569989638472921049536723591149745598075649987119983449240232956441778709203776184847079854009595392722467422190415499253016680023203572673143285914796057516517976017747595649377615468733841313233048129144698733795708620952609208170823009638324474445379509923115149521905526056386464391219347515420894017765800563460130208916342502635848921964479379740065767625880933872423372411885855250792571733724604612065631004255431445432574041672540685728623328251697391237309264772029082330681010818187240112746510738846594911289162531012157598451606150307760230491210714834587988431934346426110569283670876899558855244826764914934735485524096326326131889152426160842084533774383262800166765603486793400197241929584158300791282119099467148956494508062760167041519368191122076071181957406129515434422919289396457377604522651871354680176669120072535700743248036364008949871605802536472323765709503187862075531129822942849318975149395430224438857024353888721716052210799716790119031642626278022562878329050999448571300859292337956430307123378461835290805696330053008557294019014915215458288407969598517138123876684619893934685173537170077481349484843749651038213861238230571013448427046727682699786064409193623279899426233216987817364321606947463926933948006372086552319830812112927525794282601415392591237195850708331844252087263346969231445087916412807839706759416264430286084927709906758496223026534528516588251716657358224715673303569967988185249731593410595346045020420933396026821820663065765197543617545207635401685239532489476530011812233863140014700991296689268961413675060922691343398890390545444648219239325599621603132536758512940544300926653810168787706701750427794962816666811762498869537902463644388481054190858588525484674161274285075328455724931532816865376192174741931237572851618720214102754416900767711085428199514200334751295767242535550547544906701383728563370993001708256685730511203026693683835780830315727417830627381365370063981109254479232553374609158675905926830757142274027658484331779318703981835604082039772544708204855643595441983667624789465999527540704401016621313732339460260839641672724152292591314853663373818238118500545703684492338400424051372142873806584172481579917940539642272148374366960569063243532404431088829258136458892891340062323941418910010848639223958800833245715431538861569579158726699526587967607259507549250749526414737975038323902535860612241487576263360620419821992204447335833361720421387841487072207374565086579706913544870951130033809835665594083949205445180076981698921735355245750935580172633197648539628789793896762945933259225996153084033361279297128154574441948584468292856900311721116863882963118041777069128287949252023988307656653107804373657911872617924222331524780987588994345032243137881699157626804014377533746340943590212796534644910816040438743089471059726210840945600346855018102555044622108838755317264810712094974533092009254626116441642802766776021602697556508281298839634899014258026952867125624515268497206690250274581200740722373054284764521090560047690371168197381363874106048731932200801685196794380567909871801412359157561594813665840317005304166763769789867264615858828757578705367656703501818028422903570407613438654063485873893188006060096352872031946944370765196172594729037527848969852975805599263994693355140443144928319972130253896468286236863799708817985149247635319290062678125445926194345153512486382327189963746890498848519406801611636630750456688280957319741191126558672418979684517880761565556148918772106571462834214140006994319885479174698183572205672961156760254100550993234007207669902827235264987413682855908532583894478603444295940467229127145771412657256538303460106208256138531262198376388646729086591625002715750648255750798658224888411905811385356186087634086465096971130602629797099944224648877706450725547949967391175804726489397988279468950214484938874123963714840941953450090726483508286846749412335619777341338706162848946512845426334003324942544874197677982568607000334033963683713691643177057433560694147114200976875812943505886810606343622569060224075159037778600474580546696725131633630217366537025744237462825964016448958486023090228828168222854125460131560772389656180144939449355152928981335420755173774315579624090761156497640717663471931316207339544165360505230552928573674236282174364524996417899911201553141535257880633548685461380651793793226039273139224864502034345059628545740488725800107925059738110700731532536857709190467403137326959431524577465956224525787555535196299826718606254136822725945502255366066759199279884392436569702593053543626667920382058632229350825914023979310792370751236701255512796770768162679844344698740074273588006014521976038905758923396940910148439250248841031499208258114551834028462857277606639463032017616772807297392443459848622984009270227678085170113205379503680348689202051841416763894100228130258670622594424845615774267814714417695196480907190412711144945856774448687614714769321683059413052436551084366188484379996210563049581389394250892973202235566453379203265160988225233831339065622326379549360679456824266362251059011688733204337978107033806580941773220257162360029649669402154414368772023166009742536023408766697560058504518615316627269707761695699917108991750098388584529771572486930755970560186990917384451380593235989370823856953263001674856901262620352774852658568856249077128121533580744237381696317548233016167042061561377996528107585046161653321042869007045040624408892183526878373490869709261545606571035909633816919110980822088968119778336973989837152655198072359905254470426415942892183369390832566616616653412142060203733036323757035842647871116572915678146109684867786250891699573560017115677834304339143826883334222111077025371432118524724803886514326636157765591174578970780802739776771910314810543400653453228819677745991237367532533328105194615878754369533238286661834523441307756106659427872680406351764415325866447610660807454106031277361535648555410165249505105826865238015915172077506462364469016322635432775109644013616149134271802731899106095514812174400174997487133145243899014850989947058503870202024182134104990003516293075776436176461897742473325111855596780557915525753131322006999474123249761791350025738532947167509435579350671422801623614892864480074964955172151492495994345830602579099076860985916203868332461618701048562153749333261587183510561981307514184135670309181462983010320663423967737394281371014321258617603796507425809504444304388673402399029860082579083099694690574312755342032438825989928468218067504691378672043802164729297083420270144580287946247001648891424508609193876198955871728544735136193963425601079762072113614540084834812997129519376288980556545697456917885255279286879478292570963911662268145992329464863187026034819600318453667758006044745992989475361379474574989789883299676074593378058354264525240956633465633147577174642269851899309453831303590236315262573438751765108804019998911069916682380704342798739064100813222483107336178563903957872558356330292261735586211798613155071677019467205174193867098799940270639965127872502144016669451421003543904520903556313108251045940413039325619769611931509965716494724773113545097545270692329626268728300132198888716935843964240116084446250490317501765074400538766670289049612243699930349214086090212934489443009382097687081792354329831550320358793352101201957071989498080713876843879154378014107058333690436256765612794432784026885997538649780403874441217277379421139070084371081228537645503692100752858587138738460918717569199261226370477053510989229264661396636873898718921409707673010837105602900745550228929035854536249815246894785215479100814292049757034759389736965242013659103032322302633175779004256915926977807478320345405216769403216151187768522133143771325390658941900158089242358582444071429158311076882716222861410012768775505846769296698691206801304604612322233625252825754971569379843966355107606799665988376458177692365290106571196020281554465148300054952613927737086294928363566132225127708595765714155622501612150812357723739559011532937595008967258277812737622144520658043337783811231002036846681626382471489222753935913571041014200160111689230628989295842970436474531459905980376184603695646000990617419839298140477637967118750749083619647095052617356695533691262789397577063426330052682845896603953484380329859924139091269902758670475006308033604620531474602259486190244425654660251101806206355232765760659533012708630801363187301508251249114115416566813415411546079212974572652252394298897943397745667042951212682440135975665671181535176271809322263917138267978620909838200238683793060034510818572042457696445229351581815956551364881230052406913369907233005748911555474044342418146429854090182857576055236354029510197666697487707891698840023300587097965853979059733359834578611544754826840194032790996127545983445248648668498900443619185963457256304202258592992676893152334550966654388579603034718211775190667078023811902645426980967840948699911898733733034200299732351459214392667976303911783348501012301404523142107237368541843784540597635377403148151271028499778693301796739436698648690212372454487245583723949006314705139865976611535302226615815546815804297389311524033444954697613718764265366775804212074820472312350871304289659901073884854144689295634577963128512227804137737259463300474337009320704852747866926632126619607664128563348255134498088476667993648574349386077944486373397631807175781559458690187750666201278170039160267526252310043871206758358866419669332599254340649107304589063102427644805837935581672575956059951534557310278999602999820853061344486467753460502208486164295103578278395420058917367861549342973892922671859981801631251555036396016861337547689845153083252650018951954303748696197849118445420927624748522308727801083503729858986579734264605322512699119747771576508792656589422451874474481133518335819786108095338739784205085986470870752620670539806092592718214822447382266437101382334930402873602312769656592195922635136499827633798495615953649515735067011270356939245503591729448362311213838638007750204188036942960312251486975790724747659686667604014946196977046569163462816734410536470688198990341570639941915155272742648455764354312089763999925496173759533057388669852147984026992977480124871127981527217070079704668499242271505555520580132380178648188968724231861495745339341853350858518831425088495503919357102378621460779012547380036171959536492016432330563827869041277029988080295512570754607774285414999962364419385353247159626681186310386995857157130442845982406123681354330024436510231876552246899097984849388700864950385867271862708570813643900816338981159146852893266016114325925490753993437595405082087678947264587474863380281296605797531549491757871674505421437047385268920363568892368487476208053083357816646851494596102022884170110194466516207694158165843513449015466632473218842487520564566028412021028768810577390294878646642190141776093964782085092159047171618051523611226561096377503141191024715676456157648209143601827236539643983249096198851295518703990768141376156843220927692629712381676495869572105532624867501812557526852249569173588072162604829483976048975624242705375704661855834259617258685141516871586893118459438005627627353135802602466454833015644365441073481413743064797207927252654542572983627408646710957578827103642271049875388089831841453258198087963414525673872473441939922594410975922656525118055127366654700203184331954741812419927345714921933250870458302150291153548297075727734693405427201233065672115501296105577612904638029113010593575146739110108898424363580148320854928778695015876607395029333448939317339300304666065855103308320578972631749786681966259174906457989755566879349752265369905250960857631510247180169859816148933570104404078730083798503633612012196716992417539343893343306482373466875760401027881848535239115974898766261505352629008026957303286886774908044470266321795938283120256061135672390353210486241763265506806890967555525249778459132373158457460368778181823749784756917302333187271034574570280754618119727342855478524715155702896051555325400476688648423043443242863202198927552062248387639445581499615421157826465702035864019808117384042748405546809641601170824969926068675313402974005929249352997809265848032661118971804672259861049869130406038123995143493869749939386315948601432502711070555159613180324900832772063142357850954266613400775788214882218278848136610764298937293635762175701966364266509808041217430319858182983571492364897448315141123795466319822854473553326919504248563862965018554689314823910811747506264352830523309880018081598474128775233227302855666596346319958486863070188129362501066241276982361277892145265808274322370399820502401308868743962084394546134959045083484253486917812583554889179700311735067695646337681149875821644937161128145667013498230487604623930875795862664247819767125719932471420833760912501323214182282449520521948479026883579178066418453208054263471177315250151793651758215276936919196887009399601914736611421230055920158095615354620415805831692230493329510363807593990300702331387655080919530313242209866455727094156819691352836337908628322727618170050853475493722860091644153747744597755677708450268306538792239265206236047534819702557850643918945291605504180395507671783737919632203044365576207616283826643780580360943677175908951115906480246727382116736706026873723698172301562243610045450405040212481895096371527533699205236227037669542708009650056487831021295330834355022052078274577987419450453969165501802866382935636774548089935546001346996937194448942311075726843694751784989834995868631277914012256103013428838432001336173926083913215558404314660900708503663965572460140147822397167842998444714075954608461789015614578748362787672315110176520435918934745408280834393138807905499438828937888005206843076638578010248531599420323358313142299949430571741061575851606350612512517234354860102507639297843500330749041599174158082511523662002207028267909892142969154585689140843393853082091716407487356100169546902249874907552464964878336589167322796988333185218085117340636172562406844010315286222487734288915980523205443798669177221195525234917949117081810676573163228862012238328519237568663601326150992397609191477815661576794906608677621996178336355757423299041073552665436058220360257087220886570942374684545544778133011655396500491573022292724608530090664485875330953261226970853187615905289978734294464693856151740991697796196424256054256676913764176232907655598931113038719099220795794032486415359900999027036396587457907112215429910579413733642670262555438726298971428965332066028851539488193417420858221508232284765497393898130322367511913649152074933222316049512659023925936581977129020544375411269345176469627347064616157041094299293410291505405237858066682583946002685088724623303443999131268594460344012707482636796923521030554903186158911559508967628777047926764524296779672849038687772646959508443825293463526490292711989769436755040393739593575211376535764590421148590442864866661590704706684101663219329173819778487016139042308383224521455666820435787871139932874011785009420122975000073883711281904214231667435786078804101202528588698765921080023977649846317408063273817154223426844341826839592798960201689254724735195763898016081601809468285749623771606567922987606703424828079712103976123342036643589916874980319323694475156166163487842667311381659756232647551507884842153000835293685085952190083225070023160464981489201798165039809485941644827117873010262408238963245793352809875850281295830531867678491662668768506674636170839092910046696543835608691267253336810254504974218315702212779537842424390735842895419708445508177748538407049490702207628785683074051276147960661091243958417646283975903561820256378521695436346477679935797899669939656161345792333772823285471005476403155548477439008239468685221150748331875835949774142507582430727033670621377135074723893739965114833897441420101715205726591987918490741968746825629085560206945720922033445484504836113089901537534478751925467635604356678023412896481833723892016616623837252206303238696563474240396704697861224348603107917280488426735497902878192060554851244949676291177045045408755315783233563668144739465036711054236930147562847291119321087864921457282636673446142007169249347332205172094931822584567667560662814309159702335784447662961399659868561561063706824280492957498366504433398854397187772030076132778487419410015791615335700624880277495404957590140507344334250391378673208827138677870857984834832514911678874757548324336554989786178740282069789666463088962647447253603731706916070544944375080329406773909152682456872373860520347026047161606378371894106807067458398327361295059397611661924760398011649087639433872982945293595941570721401666200287772625838321238007502782707017052515737872482563738364898245988911488527634144232748358795330977688722983293105725199312396984792465145415419025365911937529769072603834623958490146519644081321914564618984387304727299375788104686131991663657084347292746887977338278452948427859100628351142600398288858013008580690490319615515280501832691942965330167525429428168954386581880205260062302558157246505698871935097734032909763623105093031274086374040067980746374604518864207743893739078305534392692645989399415916748586226941844499601198965164702775496063745366441979134855531259523538167931976564582442471111303530160349958539578555047250523695282974414668297715375367199192511948989568487323413059964383342119517073069208096736748442552351523475786418072719867904070811204110391701231608871161833763755627453141834379405166248457354283544223178020990127967889787214585569146701107030044175078318008712083770867762525714501146170668470391755850725450344038891359288613566968461353849001621952741929640923613885668272418165131709915228265585820432952185528268525704733332590682919526159705717153367267100862249301862017513462924246078911849644687383333805124631592973366255305821844470957289347887632438685128597461185559076340625932112283296161057295022535308063848849192930629458334533626041841713357491444817512283327586988790948597488515959489649841366485409297936493482270837634974386529509640302418059293952413232765212387374980030738333997016842847428601525029228015460461283835738902725692073860400750266093846447425930843164792975302874801593923834164038077425272352626454136562593463831778833921166949254495062543590961899499419361935350009088805838710601218868971689545584836873893370954158551739531766393510616713716324948183161930225147898622814405803161224339308423810935887879082942646016644789549610800788201948786120434480352770426981837903470173475440419975646768636829619285353863149099642825961951227318406460400788413598917236741183996105092925415149558051195635538389050520992002932155644674122806713451521358222953524778648348099630520033533696145117357435493275851764510171122536486366325778734905649888422349835582587411319010387055844290761525376724215370048136361210616691609308277326962470016103399212591285018754557962220489664840380544292868326502972446624000939153905629872306952256490062523223384787988546431792711777749581820520728348667834909831383630323087177848679999908291918155733046630026565303964968879585982992448710848283584881513586540244385982618048254227117023388384405931463830814214583705760726665942344918140972108216445468311976875526088652480673883438846072767965017285810362443872690454145398041724890001650114394055497383123850863332630289497287872957585186058064617358077331687036717566626297961835703702854690640071778162597013203532076204654754109124526573482622933577905092352775988830875061349767371176214190141515559619816652166201799758368126467987710323268725839366212250687610426254016819139431833818471401543662738580531949657229959775912440636971021663396092450136475317757767276837950730120207728415019863825350352348119805105487967767118213689669362810394703624443186657417821434881073500572006611587487885313981812252520007125495815031770770802604974439861861030986305574879751521869188270003041404297910705987530680929946893384696098572191129658667528162714023818630550947009059268280121202032471731893186671905502171373913415330130220030976856153998320406254253144495144936328789303215342716637336538951380742358432135900755983683771078065074988351901261336829047060239666760755013606953315353068623286438489372484069052480672521332885512927446554769649202935144046057308073961344514923948749369382835878852937455150521870511507767714561081629569537664707027271646522034261055218530723607636881382987652416057804825312211048239729091707625752355867339037159353970259976937978312246511325047612949147167509346712485002021652984325756567502088400800837354499699399609698326231339691863291489934509279049360923861872983174275437918978644946871916820760473819937667105065053232465379879441023767143592885526474321574277219040943161815114308860496923926105345503692020464714900799176587506153845534698784012421855958686941624633278627891646217813113651411058581688958118604641937955737286901402744711585092547317958636850159233417575744822120658711149700565838257980854275384961181834873405063664645572816361478256644045724855559236624518834896689637583726814455288008513068545129911734555574511718041594029870648375809136549765000941114505179747908832308781985012383810310490247291583489388310999631272135006699457199718735470904586327946524462192917274594291698006229435021467982953941808810299267714936455863003828598984473423921553537060035332401742050913264623623243791967961143992489376866554226915054839564980788215445597059209374215658304346336524415746816273456520269907135243911985479223944175365642024973132041675027641520599639952839337300472960557041881506200141622530959570110027876730299965299199940939413178878968169467359237637713994613622519407845622816052740114390423923870027181636209839647461636777782574805230343258481326622917629599930925620589522183313918067259055018863056730950707339495448272252804741631449376515229895625059893350818534595943507588856044719481449919000945339048104999812527053013289070691568121852117318479604025924879827606592262978929735543172215864567061985578699609572777875459208397431493411176463576120293666848409091951423526193768026913167000002243267151413978497403864932781410330257645980984422263404474514139225400235415299029302093070935459365183910097543205026819812707457222737595472510452182930345629041414273456817576354873710153361515577366848877395895679898357467654744167608438523042572017730279499248732816412594300731416635333881993524287268324143812120647144222363005055167306014494004031644830513310634789057668841932646127188859072869373745130583535837886363536527129332613068556564712839644148900781373125720931956830055547004599083087408649197285762940706151318066036895090880861293187689957049975163824295212276151015744228283504832338363767937515410701391340563345660250510776693413121296624922531871560414095404942941857976032299833148445581947117800877817603465457098195208035142630468116423783928064024994593359577468389473140653260152409633802094215405549063692353120532299017928693005086412575153433175923625842985325497662877966585652020976925859150301891708699828817936520024473940551591993568999117888059723361628924954942560771090872396234270410898365886990524223290203479385894005367427525450232989311847755336198121903376138183614481569304673859506085405078081547722507385415105290611484520552905659123127159293613065318488611843454507565420436496851429854084079282056917671270971414825202330637751025768361171178066903962775046064807459660659563320949018310712024908776107591469275249907184703445039917383719177929168660019758366204717748395966280273900884323838766061341489636339421418149384220647783394695147662656149288098613961844518310843094241090798086094691617033817810997236760558187425993465276451945552591047845923237519258955035518319495220354947173870544525545570848409159086296889785994808052335461551240242297095073384670491332784447530421398283912251160811648313268728922761908736982056396279339602672395073989023694140473555169057071708501502262979554205203552945850675699494799945923082679781909595254141299126509256003195226568525170797957982987195987792463150665069146561634207720636654379655499847177621572955615917946499346554199564444587877605445364711002007204870513526579290408368957891833893368748058805467226897114733480570985854580097508217167515818233818295874209821892854740679944610172359315757558117625427927568929514913535388738226979192337556370221365480930760156266356552627984790455599230806872766499557855529354573866376718246110479954080720775886421462432199850081009505749207261127884654979370727642214014015873226570503254874475706835319257915728825696115753345764518964912870656674106504570905413126023926583650565564382230019240829098356371868419349907982127782668591023460912226067985041739594383333699457463965607397665074764374560485543256081041760367864531672179111130607636597875650380907378252476985425749746277280132058779304840523761878067884272780192483874613137918643252950317794628128093348174048813388807647770269349694498449428650532786565411777411890235730253437626082535357478447045377267358854192174487100187915174401063957419728882305934413190456627154747000796365626315007006323747629715352259704396527087684436903800784541719866374379563766751572628988757024642322069395251398930183947922756515873269651100661857549068631168710269419103429674755185639096465864159580953639906791061108637933281110399327352450621646018496518476285036301629895075413915582546436776484777516048981692196583140402589022158679838818893154084866195269951031945892087631804378308038338055371889378880192030979640091147740026488137524155318583464345052481386321327682086154841138305775532778914113722867250425455636787779706862748176667527284871458903409441187266381556320684128141015422455366928561536054565316701754110572894565944720035488824290417510903146250552202163378754345540934547563464095639493380728679416765485678942536616303836394865120709537846111271320619337471269053687070453982360886944408511944745047078844696706849754825694507795244346962243918406712746225315305332525815721682906439769271618569231916938174155625020015377111909009003913966445338691446560844352638028074963256869763889969687539412301637790599030613501426223354654988337648368456018637174795667407511447075260299635716253541718383811420017668162069143608131818456932871356519556357884413557746223782347536795349404472664453964109731263124086781774863338494242403639407238628140869953280067013938130347637166864946287140106740173778363182339077883906226402406439278749880631958543428089349092982376198443702080644738718916635510614140913976603571321176182074622986339512017320667872702944645238149487898094310060155882900229333103798550150206509143645813671355110312041358787869627577145079360037153504977469060483889885879685494100417530850525839455028343420959143048135454692844891971727454883257433457616452125018165620032793821470438510472250334453912853510665310094198392241455141773196581486324936332211573417197973456645194189400557265036909254151125111080629404309287589181714893744747386633843228520272896944594291852757945471188317106298580399715906563662406497016573698025788195296693130682181592216844035719603427750412779774782608173013914216600127700819711192655194164603496372685551451039267914548578517898340872236830051222631677886137645577685757378688491897290029105656571004180261667853221219465649972315657119724109861144985115161579100072117051212605925754467917704438116644277724338340977883271779941041449590146273779393617325005016072544662472582915211320860519607021202135338057392427342871173056251346264913865770607448295503828365948683224190618012955386857826074665206711480546976367597087212430701574112280195161100658224593163169163778343989872306967671090070987781973360537307710684225654048346400651460757182044299937616185506817598438039423780687978424279832717570465853654740642452653872567823266530010122173837147052527550177859431936289993640338050776072802144566080495455172824858577358272265597041325600622367404329179474389665308733877303188928873111660087351113968187152344723305549994441930832190215322573933301390043056255449854225363076323689684161208065861845829735158123054722119401882895301659053970219285025159675878708587729615818135131887270066970095305743369946293066661176769509738996010950341568370530081030688722952527698592119823770831231545413426706743724607871203472420780781536286993348367657051804622809225472465598863371897491568053120273903154598789639445062674339720532119177563155855800005938991628356849583305934130745857501243429757814057363874234453121251768705611045875844816530276002486828850137828537813663597454174801826627443480723724758186872595131973029364581782686273391656009743465036100447122319244887478057346654040531267765290316087311209728446922191009513612685359556502699192219479553785681168133374944316193259273059816523725910065180745533312494686129189029064225389722706689064133443259164401538482216485742948818376820892037761511334167017319876552658730163963594511435285090172366670735228493287790389922963451345147847405453441412594777037597293099035280337807232439508758632739635503673365762157389810363418209516342159490750327106468986677949987677744594463019010337849796859245166344767686897474913905539704781514517362970286262589868581051466853867884083715342077571930002303248357751015395227709350383739131279507765684509771697862449340976832323583286770048937356486527560956503508695764243082909206295285012601593494528492475965156829972612708192191811051748581318824700898301421612455451605208353036269625017338518059297836331123166931240843931299363327544281396261802819737247307327818547911257370624678344655915481534176825032169479314167009072392706985576227615856733704824564797439390583210244105310224017862664964753740360083332904076548661768096590970363175972704838694403147932513779072470563469896978512384162773730643132288964772038659212604485476270173812957509785167502363699627024482595878798005554608881038051046931307707771291921486726267119038977986930323660485321346683349734051143351477632590535203589821984139830106389571093189845420722885769607155234223160120335889070529991635799995356523284710336009531968217521268495877673257908543116804821180832575905898019567188387715771032362050820611503744360950310360672241797992937070592128949860858998847354218712563211581345353883396676801604624390069707266245250205226794814461605304909503678244238702513829612646554402783220578887416269644568692359555113961937015957761190306785047991780462212424375206233936107314430873066740154433379678828191003839487462733808903088342883677997851362256827506005928837119575313788826498444253041043740536423262740410856144975872505064479019067214907910643107474151088154976001871255367982446497701829790920246857005045687107632205070836518314085078172267354439978163248535686523752802622070887775798480762991039460726209417074260632400287748807665438695323272600399551115475388865204200287166431260089703746083831196905725652395402456517219589668482716015161956337202797450947306139545688579196338480143733984582532201973731675484459924665610386838400099602332649531957842070501872140088718004340469742936706708872707683617020816987325703674387742078907726438639252963818551460936787156392097795424820641644808113329898932441003224839335826553084790158072838104067759646661585687645466123207264159200684972977787793602428432944814362679975826524095677780829775209872623128987285741856854192202405979277496690390302139302238650825202651261012863298796252899962113185178903122605310500160640591819268260910896146433743717558387127091230658903999752354615557575662821936084476539811337118489963291969537502140998885531775898174511106605951592831357867153080286350030754949706046877626391240923380247990842904550667262797166750671019567248183704205925117795031568295887772665935813829024968231176030170890024520281284819959479188243385796369199101323893158131606816010771436118923085591755218176544926706806860005357221587627516630737181705367804503711815223096753237291214220232845705117764069198450447620763269879211399277216814080784883060410025551616192589303431354640484518212470427091779408002194713007695983712367190747023313497965748639126986244611493923513049302304804124508242819347068454739850411518501470182453315658657024351633285435094746325470578651160440644631615841673035694137267660966080350929019648007203556528726531944583680665490459281736921923685208313165844461645864646161895183888520148298433387531008935340894474100142937504032657021660818700873182524645464842827865779211607218631014142756146032220374603027559662803002407660852974774963947525511795915933551819272202857667546532071853007660793093861888434868064017599255579057793190030226017009186379862456540441066732153897435365138881757217922988445367970362142621347384479945664768294788092080847123749945967198120357484021608631503182167210296424396624070273926443945619652694066817968983734148696217097773785170363499788004614810631806262520406280326966988145630252737857750946845895039257883068723897420716995684563299510201492568188856708695239061368660296630558874672897583183648306693885071233050829907721745511196114184864231074359580573273369941476299687897609370711745534460451148261355911793474673024265662529118609829937437861114093979413986367384055565567591136266378789225477604266783744666190251900265229000552128370316608543164850248909618418617963040837116876490968912984495783286512874974093130224357733398744153040435328295388144194469734436088545578083619313510216237710556440855111646027997281453122050860295857120166592124046339930083577211929102746629805954118339351254009777944114840479736174703996846317578129543077061297178798163651599800287571624122768690667942541940691850562098237162581233808824217368197874337561842419751870700090195656446902010549451387950232400244595040762187853115898197645439570595636786194775452654577171024004676947090680997611732209150699035522244530594079835870276941661761646489403722026485878606226935478796827716530971464340286584241925217240530323030379596012772759871070925760809815787143288018709142845005718392476452018292242139117168029323875320261926481308633911953131715046722918745829400692191959293119038669708916058672015196029189765243571186640356258497991178465820183627100525530217462662157984635319304486072719266408028567764957807065022230387971995019714594295695935453590316855688737915753534623426841625377379964230029161308609456316221032156336204743921448056168474180045320865844585217108940957317428530433121236680839015692073447576966478207374429992437385695844988836793234607148681472730612974563234808166237968066491200726535926367266138535299294591391951640258160302577922686851240658357928913438780112593960572121554035097256625032223407598533597913064594299449415444165736746409868958728227294373077393884900910253188216267690909474739926121592217960127147329589617894142108306575841497374457273730010342939260640548709144169972777493263054222576059134488899026520034274067585090513207366733776843452073107162664117337267744438955623678054555496774540757979450656913670927086819683146358467654346761230635353738711833488391928425693031809540985508312294988661781849816040813365346446876520206441977647660555053229305022132931086362611147528627300762322638769421759656081094668521551197127596750692774178615690533801326161823276379168226998622564143029460004109766018314106403865831459177296176693531908983433993297542702806419642848911096389053288806713613178826380089450214494172954974342806555277742757768037811299902544975074282339199343906166749158843668328619167388087258265501437109976391484831520566484029387401430814295495478750795029598316903655510395309310529579828744504107762402711093474678554139246775423270284282558977910674039224393164958284487975404497876825279274822336909766635076931991812047927267772531105793699176405861349271734279003587964483390000293489479684383898099955525765703845775777602870410433045888180132882910605774320154187306026143876036914226782123062028626011247794743100507986238748734453842216744329184481493369598587586980528395472396217994468711899800375737635647701853230624648955420132474028223563729795832715331502179039049610428493450785809194189507192454948205736960961940323299551963358436976187936720054343767718455877716917462128463649953326057333522346757537768865882314545715103654870147259575444204437687775560330152441798436330492733759077263661926188272832115752502384437945374852691679170273735741086830449947753738410556480617118488457174924437306519516280961047743015400238523856478756266722412796731635581163549419271931594202185579990179955045227918230811759034916701232126295648008716236750951297310845087099740021489862408779813047547331032999908436376271668959679196221604889581045095236495162759385046332773698585193222983534458088083365523288855585506193551825739104301940275630499221058473313571648242939998335128833114179777950650401033532999610542216376319390019871204089541335967303696361972445201817194018098711007818359895487168752892258928929564828659854942542907164392904139034864008655959467414415283850505981226496293523411784957831442226371355688544567503342589422294700327943015972076667487465866310746872934907431515399812156865496482274813164746309780131371365515217534758977186173528984477259530202509593184015020866690720327158158560274241629716176980168983413390345949239132943663818958654764800462944113633713470615537398179012734507532863874746280669845991035286633320082693132977196829734575562842621199327681931078331126387406255708413490189674840845409346563522105226355300457279610150584466784709361493337868779808608178048681803784537494311351037053364849979524922316383389072381544683597390678778695502102052653292685592790604081015201260219415923665288067705787609301388114931252465153080096603575307946455864277894129879112972980683540660611534427366157065445762261015313119653915508927857661259721388576524688081342779031255777383178973613819162005257341292019370237548869188369435930366273586798799845220073191178440568811346475608894615325281864522873092001453135503918359459582803057176602115305760256540112699910781618031255780255484275239247272266387149424796155230938492556824014671568057572400238917060909243990662703349815006338363249092937535763816575263065804782050356840226840805343776256414149145144167494621611453249405028234636096523317297802301441649804559723085503363875249874386495638480862932031911545026320221115255442374933560353674936835767857460554937077195254655803182017684734407482109688607754574689151097586995462921747560038992221956325052407009752316884044818516281381531999202847078593435549150470513292950137902348332259585283709836582651267390263946892483221201335697504979223318212031125216652604303059216511350584505066263902189523898414932762686633272308775669377011283061187915785654225655260725892784067284333053865879829835406716189486338285832732654623133677229850415730576802318570658372458804432357982802013337938059271318264106852695079650201204242417356102040337317488219154658478537221023592424856210443473578225730701564183262996713622675400897986154610757342666230111694227415731445508784957515380216436475469745043410865359563975035190327984641327343852963341938070122719329006707777228053169190113192221770847163700490723863198662582230006942803399698730086431840014796778533314111408551279684686508838847621785425268644385203655107839589812042631975278514225637553736008024476729726954017932692263909547342974466829615289121430966457052872519945154029793280185550046359516906715917940048704166124680947017881746556083436030385597549190144835432463485462195896617876216942328655031761865965061533589811170589987433194501723644822565002486894384388331787344186682167456687352741266396903062412477796408398582720022881866893105507945518128971616823050467311504172014628524820385171497662644136260450926444740071507032672132129380326424814121225187953021682331616987595465689673703291774479276517760590235637081624483554942012590356941232771691530157851426394313884039295418135532242690845147885413774350891067557211204152156370545874240005860201655499636389841887324520022730387610384580808192371731779303578229229117468065371437167056499346447210922853866669650404169672199991672566313356465526437233534400527670010352659059342990858647787918364997103310749968949494244888093180873425211533363350748266547475749770508625588095765595910124715241282180182163192111585025519986442474891819873471886472216646032704179238292692297288082166445232114871660947561326275690914498451713513581765500068356908450355720053134779414295570007139174022126013410003450902937503074978623186094664729731543637532248488419037253226472541673656237456829021248559662785511406539955530054526392840645820556900832789408904760888067007975168651341908820546798766563943093694389914107516518263351014831402752447207893524717426569672735476556633565640633040348464772523527913233912469308393573947576380824108463797959717826080207537195786379668340081514364407810706139690771052572286901961863446220389321706530908905463696141248560528548771395989738350810887263325387955936591440560439030999697530550724687797411600289299099411813735932132763860042667769618964035446093916481274855152969874927503949783542169651688693515990499094761581518042289953990617476742360848871618899531944677108047938742967133000274182710998686596396453631657688757683995448898462717590925263484387365317726740301477411003925339142537851878354109413664451011258885450590527312129539583993540093626391173207734539437006695314049167815496071553692408314631491730858833700779893054091430730296953103191908777560663696268847442164539819609933359052289192067691046867028985251520002783022904597688642192136478017721614296448459469421454214238442653553693864908982046473111487100569680871315809437090196288066787039746161819713462239465075398897723340915490055084772725244552160968891817638364671499696686738224619048711061524180676473751328470664097860466853379675405920996559210431635626707418365316303285289526259784435653154485107998265594988212802006634700675087482496389154447697693020001878238653973337815154668880370442108224459409661015762202232159069999569444330818359422180942869386052108337751827987612267831539874999850355829459733832300130228145505973150037727142419645167406573860272934923886796018400340334103638452622756039964447224533397204917334402692844197364056677109777405577256028256937794735156649683793719075354726326652240425105743325356020974393968456913854559037072153169917135693852151097743847717152659356999239785222357704497542191027478553222835888058026726405268617283306711045005480635933870589506359896715450886044523020026823084971901147754605200574896687711449123005946453217034107686851009419110041428759985988280249373587491058196496138451882511171137740815302548157512011699228298243416810825416818774828015887909402946678785591820405542923346910783485247321703772642368107077223063153310537410691779386422491001173536312284057066503836656092569613968261635307464326540330256477215823421837260652995320149503192020920323990166373829807160103771874621548872761523708410955684253905635399831160900794782233851559820861283915117139216692492848405298303296329395062857040599400789483408581757476914913412039885884172921639941586055962987101440367427422578013086576908917306543778645917940680504798877882377096712234336695039487158424398001389793351968199518214416690432704783718208970637759215882983325795778449707145750417741650178154643494027468362051044422991512870663131804685554277543423213658356740637608582116783500909894122375644676253664248188366394260942305089852470689193816783388545819753836369889059996757447720410261650198473770182898965303047784120233414654901611361139483040277483226603535242303241588624650409529785131977010097067242850009193131444229069706457078061468982463511641363435975416908105088543640210854810327742105788469494525378625978768602195135473506684296487798250200895676183410449819057658148434376305403452627015987167007982522085108214911553457786121795589719738506499856320000173254245133520606204605069365544165189994980329318893965240026542600536528750332301060301927004036810737477583046266169421128906028343262064349696991628360571381768279632255899309071370851247674069433695273403055105936282138380452090618224523330047047435771260561035687170177814671767884709508300448240945448511220286568523273331541619033583264494195318506457403958655851811575318753856226579886577170147352345759874381581349360424700520020391521406781336346897558779504657752860925485438468094297005880984225544601408341874914314615214448065542179915099432086081596965818788435863542834302241722734717086735020034191714482517617223168975040988127493697179878659395187806165268014805433338693446553918106243644482179660171761936216986303968013114206703071855281002180163563596533542792119323005054617839313747213719282219081899933497926335695981185511578802520262394684182068744236825804115716645581933361643623385198893868043674369876750092984815082675432660617074466563279862519398525049330730075513094651348145766547603604595439290786216611416150278017531647637588875273991560592243038869548371921277995244207362903855180165938104209057521017318585305763296554352319057059983908168624923493399004653716288556077478371060346826263854308146450330134163304696163610306221859564617699082560439128618781963433703689291353211314329136185386673867376809256886440020415259809092509522402235387610056160705063474946419352391568142563169669437517843987435546876556160536129686353281423332266903335388993260610417564194946130987312290355702165358011803799652025188727277901766232338246561558565148524272546525023452244431101023674476012581935997409349444959648904625623404220294938753967159875763051066650501505180924431293873454697816122792487589187207765714768364717055512073778785724813851666242967840231265123036024069647032758617276296917838076607998781845162212814574825165198525446924232147195196186784168674793770501794517246695746114769227040511413590502521471944022662020105269870635039542790688068420727345033416929547179219387920724497791895634448289719136364499394044631728264846945589750987846080028419967999238804786073640375912106097885636098132607337960810294100164906331066637421948279414308815216718769380790475363774723501401715938308502699572574307288941521048148228897550046568243139423681973877177515367710274929218927739226759153857032224040789345785663077844984803228601270218694143221880251119296059130780444071692220950251079246418207487597747259733917805177950906255703240863118408931482008688048970518948925282282637146666372882370287461272007222668965159641383392203010137536205899663991393336414129614961228735485582995860926986982880381592718204204244706897622440609941537139816763024374557620931106224855382034666889766415010997447868636133115148612827978619229457274907572987985349750634280889357618491297526206531991982966347998807740902285447199301578533201301415505663700562365014720275710481058955773901562357184301268437181713092561902776621185781056041337510459308320378339215437732647552145241748606764172168035259438829400581449376962000667356404537893354719721851324956480190185249960801549033261991351929417172535523637468806342073541457144862644505562885175334034493009055712563833121005462535067195812653972365444011466712833074801093216987376026240305890443274806350607864739530757912528710002800324062174705466655346013189049900833804038073627742026638156892080455182142032274749161668558620036911049016665260233472252972925409929803561286624151225726529672352734372609253458751662569877968123894651313088991751883128127845729310741956564340158317207598672341700466084570545077003095602895995420151015953334331182772935975657200356292682964738665703023397683178002952995712262702789409912224475723131093396547711789104687729636621419713577127854351854533236613471674119841447495819322178300639449264987697227941031017494427367718910165523315598263422591205232037714383831957647723712175310772335160351789118866597671754161318773201437250138353622867914552506870917576725341154871201960596425133817223505187304277884886506423441704444163878481323785027114331007667815398864124322307791997430249321953658018263079571928915026778357219789160146361672034643593122911720695528211760296908129754463975237368048186829025308622645560567580616298880521797934531834131856200425990297833437542272280503933264406077211548887117043466778026152955387634602361963237151514066011673196430508908292053231437199019732094939987056689214401637068317285302293063405738777395987296581312882985304242211502127809194837259647770601151796954283748444397286346584699469044899057496777046824004121354766937954214310478340693343620548187631705482251817769433330175664127579642766000833080693798872501760727265596819395674649049442522587509638039681705400813698232313411547746081653103260473934053926792377322655416828150899652705923455427017102549746288919407496325823394405262621642739439893254317046159115413071750521319807754556611228400165129909427981721359622207617374966766890613976476037690053880939678231028227865045514116412096387651330752197148061160394808204026694239142891421535255765912238526599412046375278662696530539608211423459919201112075727388350378259740486224255811718695405304495335922111952946001935159117839340255347504697019832975433624673875277455452774301748387027109834334265100184763912731408897874414946220270719223912617441942096060281403160492644165028980499964080602322947744059231814965947526444800075666507381373187204283548594187182039874078054732620824227860111366514089323920979653781907390142737597050123278603856410535486332426989106439448644236979054115702240327834788072465125108665641378139619735392874925453798392334905779354082558870282374951745590488453925322522896287461081024106215847141434456351296579045623478889495588036891346051330251308516344394512999730793616559803721628698356045784944459315588421403278608855131257441631846514297533726489658324487812996682145774200278985042873386254880905886398641700580584834503543004196571854700551485603373057772921835883208662125419574071132966927314059859990795561547447945534410182724189636765259629376260526971712881763390653312085336167298596915579116649319390716335652408197746119527441186537395783032612180474708730821978487203540432164847102413605213382140534769781354666717279780558825111752951118212889710998214724325475895838801545928987689616338560947472932175473274086696801166310690908236303280084070587589993115950576432946271318632916501765058071903128874545154655623118367788725871962816850625133868911329240577245924599832220159533674155170925770330527605795444993400322313393570308167787356228650573808041599146671278037481182366101178695506081891372610748858424958681373577394545740962584236442796065282926842579621208589943927994960502691433706992947372720916785117096375603593573204342927903896656684428197211242718174261346361517469287674407252547324540017474491655304637316086531967778793036518313243788305440147453590827596502246367816779143466688266279685549586716887342734371083541229227127438718661240297227937929746073920795119759426409279051803916824987280979833687258862612327467448734131103912523826233425152471684990346129598623744718952817516565205837232639056524245301475952890707443178424247565556011263676849322631496166385728733432960522831203573048686335590888779070940321948410815630845708839431607030498025538354482098585448169692592977241110105235076681562909681688693312799657361891331343045551584508792543462478689007597726744264320397183166914418710863663967473610509665660839371109191341497027543430860577025144933627536574187240434341238152246588473366069393263757737684690173651514318488940211879747298436266089411969116895938371949508490475254745915547567429812683645492604643431957673566422451834273123130126197420419476753506472340882648600664488105377298853288104405470167489185334163261961018136892536604726698647007282900586722696987544567963669147326086040283196201133951314595035228342700484328839857668157154933871376818280261596126899264687303140141168218889593774567861726315453675355204721843084405138590027532878503660328445191713973119463984252360934220157339527437553292636071863384279475682149488897736961429680657597657997738879759443524667321064604520547386747338942691590532952960779593455172772897564159643104745406338494447368706807661415026953352359587802468713450907135512939683337042669614413472433779350863242859997225633564088934289332772004097942397883920907924277693274948054731851747046055128007685993064950244700718693266234210368649900618685906222621288595296875466867593552534330626054976660647285144126638054765038052745336879164582042666355162126240496681024911473589621885508770468446850899051271171840736265344149747929688140384845874426146324161652761910122893514996424082993437422535255071237775017404095157333395927857860828083236113775364410161264026773310910589711393364811335182771487845291555407066981444459508453875499543163609364179163761943742753211537497077030286013775938337754079391765153696344980210642585378817484930291820733906547051139063311928807654653402998206540407523335612550849654784753088311171842149134467499558752100427757252678385451961520512026782215750450543048102259861264456608811825974972181752922760140319911936243768251454267099400380211516999212842995610573565166203617909988008956323687089209064083089177800174170197046115421982343177049668363388504842874966045331453373719360770381992328018593192018084874631163750043878471498809733337072395769629827188431461369004332935410940538992582517005249297614402616114476690777781718362122619628312264040407042018409371020334397303989214977663184700739180451563290485241829323105425763754202547641378117447061813064557946829010175597169218238092459200704191986238041438323627985308087484694463525416681832755135771336360121947719173852533433125175787452219157437669079080046598077438046093489058450942039513967975407194427051213684574965642192905592238402586482364272655376220949652033009842887761540349466158491187378965465208312346518879070192117790679119645920822982725100774679018984974184538920737267045821440923801895900745958724951187955507301490605088470502867632926389955419038942985922243374459806263309949612886934549416586511476809051322051878483483439326644040708569767549786012784977153790296383605318066878559591152905707575002660689321842291440530052806298047871895035542566496212135123392845306948396212995449190572784099779266893566384404973426621783947921310021003163715751643361137524217520272280009126444140378937133603275172388047992116731629184456518804288965925811403843743412192263123884720675252879737087425985677198724659604916027698883755012276940081125426593107758664690466136758687560959493501493745595996313248110886423848628542336534422269393247344193618064699440825008546903522013250106298728439153339953897141021500190268287967552241333863578953483014296941732210367414749302862575278577060917811833025707993761408519459191791634290901559814940454039197189627971364092835550118892858965332767625305048230023341805542628900673424453819125254987852991081075970753192646339384022115419377280041477433726369449002203963673816848735849393526477123882359940281248232218035285448011133985251912077525129464793989456860393241710772630286740940509176240976406843415673728577115249635674542415357721122453126018272259793863196233469053592362957945410745896867901511505232780656981210639863686661544027466681904228802371537292646393564527224216917712732506648402841282703189161262753573086469789401347232891643487687383758040516774552294228811404302138214005808688985518413492774191499813720849554430982497274671339038114992761164889213899972025075842837846862756941968857124726043662371814653086532393074712697142652396011949791238588303895108460942128300007569131488754744930495661306235257455692915802357330731432916084860148873735983296017964750169914509926267734359805802215470998934117337471344807422115521745045396661121348383035048290550165425047593739456205320543591107558450487756654409756510939161291687646918941800555909826197726847191499256478626048393547470505254593979897594280340968452859985504221346553690099721173797766899272697761716341560298170102017543666294306316311005349047122879489296818829111618117506521466805613850684765560793006197306252414203731354938281979582481774434764925666042791063586861722054979427344750836844718277827012141230019311043343224936671313140936594488710132748839024845422889670665185259100123689163290220182149090281050401291214501907278373733649782847680202305088259978526665340619165757210627669515311180361975545118374666923128159402325610726605685823454826238347473607756697093603175346866327888454151811080564835255161910591263933336447834842374315535856971990223734947286207367365547084613579789582874253017204566920627174318333184043923549948286342196429909476208596929147084161851792931588432431658529219076886879167558150011732435300830631828807013756981083513015182214527870127821977624243297723550635584644526311794671903913490719227908590950742772700887522850894909898054573981847438719056508150529333870088347654141082001016236744437071664405307259531075268228809969925373779230961262615308070747779309939499594576283584499654242077606466934731855040997121907891533823442738663610524337341017598519377403963601776543992801594841488393108596399388010556930929586257675889015501621328381516736759039923353290840363107421060205911940693233700080579070441212071076556394000817129676775552497691701495021697741102489930738992774979703830145653007013853848719387497683952239121506696784567239540009898861705023410879079757719799096636522485497295939262952155297622992849640902669221085958985526429631014934897868346269498553219723534806748958553796373876350791676015403157268951157695041537053436443448590056831194702203350795534402331955217835206002049196626058678085512514873139121071329020353335000099552589658194128215450694572043133631047535968959207821952165506860329651819851440474513594333236897714171826898775409850559984847382887099618771039803299124020893919760634560130462607052596231221832172265095552434688534031935219071521755656349123130592002958240726234819790242340426920842077978187054456242675864946810409128550036105988093121990100855254159822161091012310963760970523549091316880917342566523099228521400567738823984270352717291207146694696949463075041847541426721976736088375717701408719802025991334133463105183676982941479356161316076059500020717843735039497700526316913743394191959426916032698434647112713667678315903227979271986140077769146980494508452681435986705916575000361592443757238756637439049300641679489873383587021176507526279616313753786800872019413889434187969878164461916609987636324115503257275210510870702082373339871456515756790404464976500000571712099166832937295238423278970638285330423314548672659060334637844302653903627557623701364297215373737655876035485530949116934749900277286269126194032027083196300259766112549008434025542674208839021836195182595362711510790987333227967355197065739256670596658300934868216630491183531538510517923873234442335145225597300506124675234844636463459502857573023990787338452372135747375975951139402609972933616263541078817583632641396379073352610073045016142450702409594296917816100264479448128729813837243881189846910753308784283341595981145863149143095457793769311366223947630513557428952483617413834834457420098467974998216546225272130362274599535141618208927593495310425561958367989462617913601428805691306978586954334861158622840075249459522698361109664477852232446684475644794720328594621021962093641542360929293226840028905763578487215135499166648420597096568357085899710720338561139757195502188420546461607113878723447656912610156712312914022020094894757749709839941825128591074465182968300090098003214849194805738883373765144867028114701520177394790821720586489183067492180346413009925334719144848100788829912376568958919075993061573983296065727608384507345180703511988754346033619676877723348564225876395882375933712517974939482604944905782503419495862380180925316376646179071754440248938389718964618164235137198278040561641570308043491230601555241940000128900177703791098818065797051186972947804114067187936176030465157053978038135242199943390901701506480852968200421314550486975275662439796248648919786124140209473351417873134528282950489082498973466010354795242865185274441061932402465641122858181754110560481822816547491045845723655665152370231607295556379031282095045644347865921546288819409993915730477085450850949873017734048809128653477080245338467965956577260313067204839246479457691282073749456636239440223222803850492748759271075013957625258980866110358554797256097578369839422770953157782268159772993583312816978232191223871750075985433798295082674478505574595243568237485928762547551004006015574896649387841520961862448505899001920249988697705743687910361910570124260045743683001551449928734380933315032031602719604921033742278449469892887196688522499182638292606001918410907911978040087748827779605927773799965491697701465792363783528112366619735151867472536836811131826099112792677324372425809469040737498572222111480333287387643928240901973228080240308988747081637954447109016095369977217684987955200425293312037266813899919702533419900471021796067299379862380422741243363665063731259377041549799756967682471820339877916807698250774361873859448991610529501371975751468866368715873261931252546056881745846315591445480340444269022886009239072418120456588912722275705845333957290376387068866221249112745829020577116841564986312135182815539782014440900553755693338615469572522036876431061773657123023542402423142856837743115198964208488378081755747868400665755411956768617503494221589813195010688092894168743332697395829413236471278874335085278239456315299917127669357828260242135058896400464523900116191161094919452054478423308180963325955735357712265676167091031461007778186390097596787903244383142436407074352736086842399998992994829011620875016496290151672992739015717010801535397251619794843366242951549320099427106920041708921144232709065666638596873413936073900156519500742804088828705600185652969669206474685227524771778081572869312200773451470983891022381262776195805145046739629892293873968795125443793198909052310547117211304883372151927579477074344914596812884135673452862969412205182588584159375679120351803528436214061747960980657103711987879704911869680640253789503257281967893247382382879962132494248101344631415971523228082612435066454175662131766354586454142520225299854766078475121026049642348435374001258320386802667152730228783929015694622640283250960836769550959985884917636805044515722169942879279408747049680008466707324174400374162132260236866371636422765342711783503012154602776672641407250334816434889292997746301915458578994944213450551241434599709432861291773660781843179350988403251123926148615586676379511950368467344202442452540328666051837885995567630844621603609426103531092505579201844309352481025828332627641238471824589910391650367736720963943616774265218794470383742366338253495548834565615997291159689762204656310951801853998827380372396701154909103352030329667295047803851582983408308550255842989576315792854580329321438661936434205032701844533179468503965201759639666520984179858579201619312836471900921950047898869310625488298827683780996145587694096861759744154616109563062811909454435878407150096355241764390315637416741106177554723638239019023732771312975358553274780262545910818179746987087524712443045419123561703771403447748417230942739692320063697186597211204428301166190342724055771761741816892953476555176622778712434117841977721029040474150261522044528088570096389267708579134459424719615373276264398566311144739161584531470872216337180423330289765506356465096789848476941538093640713881029049010762040024892795912212497413999071114455024477839232599388385445139863170024601899136587519886083033010927982026062212522489984476415198242042999218145252378922143993798537815875908285698600179280462698467875305298735975124135946210689037481943247665971052030529897039205766513838599735760705103891464374948622170839400911456897656243960656920480084208866992579812997436834223757493289563834546687744886260969486854655483288744241360235574631376921734214528430504609285421410422048359857275428854992925697153756795813020488513331111278024870393550455098337749374424640749984563553589812062558242136117662160961004725593756876969221167752324975913332398058722337241946840600015140149362301271563561689735274223446947292675371764499424826336067905905845187574328321937949622638677019201609826588255786821555252578953666148296583128452618030906583595553440797629401487004698209354471969188175388447407938548060422294486563755801439427949053072087003045010843658096704262205853990404606506186210125725408881791988585729836430058237117193176007704276898479882138833160804212425062351733081048750289635196833318893855219024690079375573842514709613697917350940506575467708776259358034242861061127070544540466198715010843684558998700565765500328264315351770305553378874213752356112282626470793081717896842074313191475166685732057249380492064942184247790309458571455435458289542580390104829287982015220493525043523251272572124629053223897898555667640973259591253851439168861450752428939300770765631866070668109422231069731348341554034507874171117690504301474183622764427676046567742094313554197222673821098275879279161552757796759907752737174736366421987129344450548412668607950273460156203409649693778770526368692804968739846907539108972045728388880342999684838768322375847462302807244613171327603462618644441950131427030973935252705114100592712854309488096879474502848778388547098064192526569340031706162593378506930014476376121445020550302557262300244180940466665808224397579818527719531388785402404502965578357261002493549434180549262483668736878256402392296206437264240855594670836568468977509104786656940541714648410151219196031648118782882369158911724003031649437922126814539007269171695423062413366498819990542447076988087337613209485036916724379255283585517148233214234992564022074119861884050863358765382972538781135356481718540993037841050348780929340843822709915003860201516251151863178916741138189468637018993384139359562053533784608284849275752916341817087462642963290634324017981346939772188196945462574301078425436804677990013287445356752513333671442404356284642773358618473821968758558935329311427541241555824087403979375390551426918274214822432651800423654783926533050891817735647255587730878901720675047234993590570955909179639844363839745369832010709974025025432217949821807568239855330347393048671960557924671344443890796086615555340405293241122507916442072692723005821402343372657170579436620450731531175217574256240861731896318133452835500847812106449239534127250622860590755931818052869991692634771207825375453578248010085364601126022315488814173808810526337836524358530597704384589886229919043497790086691997049509828410870950171393967298644716889516857417296585534919536868338450095185147693366449615360243580061211842704813199777850978307808311480413310561603265185552654977862132876624927871955983962369282241410085593781086238029323115161821753699747641496727043651887624559758525822135374418150398644246129175914239654942259062302443449566818010321456412991708510712626279226476739190792207494278133400693812732408957406954977059259970576078911606288383396043878647250248216629963503509196341993972931068453204844791918042931469520394776330901791131617263675131881364602703441414870816016163662111334654621380308918647504614218471565901580326193583253653232587344647136807018932829629414277562353220066668462840757941338423100849779259116837583376899363183099232368901520402411865090065638306980742032591697152516093621288591963959236585679222626593685297719155971305495708850848416941812811956419771584690438111183536991529407049351075126367600686112149996127002565439503784573125380823000210917316177305586672187802401695708477153204895686628044624509672391296017559255706384833188131144243420893993437624456905046320922143345501167125302816996016990289539781308199037433258227572224912673809788396749567953850236976243540400964203873055255701485249249054185938790907342767238663796825059624986709508543633236893988064316140280221272877179008628964594958602217777188550504887444338687231077050350452432249827161412765400957615094345250325047574949195857697804205993228516216862011024840071643531994388145057371671307819787840664333358911979955030833027151913493973012541931673689263592292113999661392574468705860320405148959384614654621339170138834004801237902260687080770159903124922932275336971659441676216255474191856882748477683455104870267556005650683366625637285676927298003780563538166754549441835069479057323760468172361665835646396527133330100411116277153205506967193180243177282071070889763374352634386732905941635586989514937443013951453208843814895306932212464046606283482284126730048195092051448094140003668161197020706015044038962896275945390504534461600366452462753017436636035340510170465128512970800320793628039270949289646462868566848448022515938343699860326995375879475168996704909595063061161455075363830326439195318077416983084584945778827619435432753970569250005837059140727118631564844162595468846336555919463359295993425734223630628119254825751670847130214772296453360145673373637668404895956881690346586826196619530079558274623322071968115459335622526544091946673180386952476863629597252010132096827563495291536975025058962269826242191159686665687218416609737533261180088407955825533926289524644144679207119165405476584097570167357447459244253951136245022307746944660714422149876687070618607752815881910761160976862941545999202083131694814369252953218989776117464548049555359189757481188109828322762143957426232849750812667486419102243171238620903333313128045504645524541824613064984348170614930720586522734396682347354464586837784330802364731873097551482655198703268454361427875784595915915600988321984712334753478532638638595800411862373786737265038528126369497145446245131179005131384141301083923792183371947508574192657594179502551833826664153299987116612833261138183715903885991836381162986792291164391527359833368569346909795860670460683483543941967884525851935667628377128832500259770786293658465117115979397224444776338650967052406550297435175092841356225780598092310477170529148372379248522419364118211676283952672733067192635165325181989288081865755732085555286526872935993670183551019358124033065416948402765337467727830011628569260709447424789271088496972495271353948100195587367990001234462506084690130959706461555349024458948896524152063427043484030727478093375396023152913711713725071575344642051634072614992164620942624241428379031032155251527276176243375771089836603169943789276317374070001512320313578917076194573443244924861146589873739353836056696882559801725683198566498329271527890299130765208851201802335734470744817212782620507872150430940453967996334905441346104732195771432522034472762392858310580161408373214257113603053725867980721830434637231867540835120138721616919895037101499871693576432450446919169671112811862028055481739016376743426074022549455933229980790000013541080423025182875316178720844965422873609463803374121281694423079243261341327597856677400122111796087354404355202465755874416790053387497607061663308091858843565828962747907181922753199187488587306211808588242937589434155703471675553808432841687380883559788741257028036390277188321125885910223195852026236022834184548080789551030096349798184584215300472905454437638279635401961900991039451563183151701098096118847275451088873174651632462945145211436135642310988313526555099718013683675747720853278268603508103125758231187900825773750128726288925385768700485117550204589052923049329114006761596899448526522071422217437624499617446889931955162690527398002088453320723779447157034623559950914504790434507464116754191453032934136934717946258135753325108690539489285732196243997943682132918310357807084516242499543318584826030434665353639594953654150287361974325929804310489700435658128876964762588859733878086611438525254508652304239471329594499575474671941174602806273520824219201251815087893749229155375187562198378295248324299196054353345701354109333325813011053833076846682113563424021325754426588293663130574969213175968720651717754167423420285071708869986634552353613083648156206569230675210852547950470983178783321555926539223320785784477680501093368961730943725023844548147093954113716442423994205716227284412519213132833836022847065659417808191946355713754495739205753222626136088723831913280729796252606901542339270580719215146901212397062202634117491575991723954006603308960565331523577336504866411758715451279276493574920320928371156009305491137437271810982604799079773519710206560072802729156290115498580503951903234203382223555304354395115067962953043098846256063758686956687617430623344710177425883863997756209990379707792547850014970919747111511499780070205405431860010754124774423610679917570559484652548562574772936774481390878017789620431613603979469700317756107221036626946345423645634883970653502512227512478361846009971787053459424385159773725016828309478354492063568221066621162579047373825306038149029722708225781065500718780035610111488723883354321312767532544779245901914665542699409278013136247890154924405276939985952341041297187263207290908329281735763908817043752434225876782666832144026579424568900337521190578282039288790065923041547610744108889894384278989512198211605764542244634600130675833214976929697311263512878391075076120557985508721932579864216875597290081311684676305907261963804006808311668241344012635301803777378809082405510450116594317878593474557324392148412024765996299061963576248596882541671474182798386485516250160690927741670313785070163032756755778705342813662457218974967696887163356246175171511593174564037180284499837145390560429111606941379070256581545654171677268310280884962683485171736728240485001530375134937851961139234851084398710866731937875614783903324408312827366627189576392280589099962079909781418780994687257326663993102858890327081621613739701209013340299990964953061594955535321785112720681172008850751627413353605299783231197263502615761169453862679465581258185996275141557903344675124559971178863122409287659578201687029955331724584785282508987736655888031797184320546554149104609444636042867227631335981470367180319055790486478251385749729014246501762080930994740149206803147544624139745382344260946139706443621906399846031381416833288806903098242837720153119949428846498098406739932688089225208896278719044047665068968615724948966871205563687175887873837766084880276413708268528819889810265336010533584683092656604967979350029519941828330101964291812617657567093679571695163089169730749781160623369413416742603932426542028509239481615649640676752749008569889494452591261606879027571610269721317212019602555813691227370875451438733414177136460036915609481313056854138182053043119835704760222039192937483784467851621426836297279828635124115225073257719537441413316965699057560524992581748546260864377338830707519257243666619037452718259533604319671479600534302358338690341300408326305908137260487471217457579764260602280465484564146203351173821296799129789233756576330046904345890654786163470418212531063508742360095489983877729135234114190172083642376006823499928494775188868738951930387898378021007526093682070473863406480486360498407861503406322593372319283817847655059707535229231982350651237835625484806562494308768053085914921248406500263573039335882511502479218090823725457300612305220306973395307204359907011372612908385335450909724129136541789251009922491036515923670337853295544151435516579325143725409625631544447592465477929878157191199991313879905573458807667068292981340414386644017077195328060621927551053201886321561062232964173119814024048740616002410269439841093851949141893203755367878270695561139183276973117801878496588421285301697780838054352477904574971586057641617637482448733876907850197289640304913643673717938480684189623903019195783804571584102478411880472052470353876441790177969776360834110759981594505108390857319194826321139538056666078403163024125259700041103309395711905494612291448606577910313887165725872283129273807266966968447369051665637642403069504838804943919809621168037076614320630792828542966675173789539874433287240076654986417601531625935017873514989158849668778759529479685642175462866441156285534162906173674991972815221953570271763290570652710934360611847209260851247061862447743632505574495252531006371863044938166802162733958145536680063933783863107206649868330483909983681876124081659848351606402662186223781696022242618611100693975687630631976522058894315606616231137760646498733056515842778144892702752251779578042500801880772728662250366032215478434350285378190869114562839605860439945164276231808152633450523089565473006987800764217504331989245796753097652992906999701392866108941209319415786024178509099074095812522013733946988419346543817267467911830327976419053846041597138932752338733692280248279942824171239165325943223623903683523157164502686050246336162423879006770727248388903610107919530566994087986509721710739667193917969962924507996601745486270769413211216120432652482177647941081910350902283996946020927885019457662112587207863500037537480704538117461561573198555627189516083910284252859760968897017102459922969601166688365668339365368556320842834648509166299617873853434752615291516977324222217813706854524144577500883878887952746864016267151950082719671293716771858939506906824495939996504190964624610868992976652106919569908900759056160843701310258996547560494242557762972288023068700621339698243520403831535051644199048447556531712846393086994358775021326667878258269890052926050418543968663451395260299570235659357734645553001529043836199549881728142934998446454250988588028295124467628806967359549965021333031793235794960703014297938436281813159740030702861033897381359551939469383958679839684610031498840342340344264542980315991885338060690411549885018117996807757047962005974514202231573055471994967992147196698900843472648124826703765812650520268591013365897050709109506771202805929957940266370462670595733990098669637262346983447669585656819474508101074721099649149064493259992706244666725463563407110611009065200047559517758622154472545524005486106936564757784130514427980844493694144994475349666194237653149966189616218720201788202570738721235408115724274305270332693235627224846342898570651448863906315232760101639103323240098246961626039819041963826120122215029004880432808793433380581814466146636676058886503769215233366847224302196998498848572685889236853521255160900897027797930263320908915499035011731176730118800956637576730434474344541233963709721606300983035070636717426085147892001386492657054752069670923022016429213960799537927863408905477175673012739623343281920682658503487735698656126676616902218713319059885963992470084234293946478669705732051344892616428770888572034162903804726977140332556659720147896978810650091107838649829828917860036327695150109247249847540096783184388066666693099902212490803715297992366288532526950085354842824962571870643447571852572258704872718809021679384827854247493865697126682838480265402957778170914623716894436977802735663092924709450591145942776364325638438838137191945723157726799020348847374433885037120849798170936554268818793857267332150580455082857885592439171229827115389597530639008787482020163680073075171116374969036442169364411049744949907296801805708521480373956537246940996793552152153386693699492920538394439738260348553127659898457071073102746445188161413092372972815525244872972119644923537237468384926146561379818794344943101896596750785474497059985813578100425284416726220947480621582127167157059454940326636359166915943967263341552173645196017282249062695491956726507861648205878905474270167181773588857969435796184933921086231273772798030816074526883773730299316054877519557224520412013537410186706823827146523438424066042994722812847249375709935390674968590982590943572687959236387905465035015912612971191390190468925252502883645419628732896879375256754714188908589206812784756336731930249496710255486999417065265693161666490179845141556332402330429990178001211738190665661776816233049032592721899725578708032222806048346361975772723236685489652396605197799836713169229472649911485980054846067257648505710960158262801215953343960714967777433959671216172075830389800559816980044071414693936912482999380589810590538079581304852711930432693198522255540923328390470347340044103262751192367729550568605121930646137735112727026310573263537602768785472716196788249620685214773399291150735458473269507669838414999796699384175701024435110233634271981699156442095987884206427833121685697779984415832249541051601429236463180342966580850817018651987483704187246402989119568982194348072934641668180574381608850743491013628130477355896318812739409460501414533992490080827042570598354420005704513085096167843111371500285118946218608963753008417384534597124196096820553598620969792280258905325211784127227819257387683242503966848268386244596376528697615724714764292766440923713864998342708103339191196414113464496247020950125501916379604591147594831005793313308560675644543797382376676959152165151641487514663623422801960375988230292305860627401256713958336101668454688117397863275033274652925595390598011291675843159581647869145521638334905929605969103855494944249122599941683970629656273358698034456263465751838858870349079737563282064728292445776628225324828694654647329039077684088710982454765582728034516791892316422342977641330607511661789604736908761558788832324838729532501606903259813161507156320787798892360924678060332024876600904806185907923470835903454411744753162922616762366116986729470445004993167807658169106462924611041896811878613598587703199662846064770481757214710432127244694805445312787810472001110220266571967319122919017998784175710081191150609789081950917296936074149061705632396554438581598248632346146970448798256656022704919783073161611479801254266311389955902581251050999550407810414005116269816997753858788252575665152122810303202276526887444395169258394580734758657429382138972407617311061989442593293670831129289776406986505482233540638920821035414659543431470903587437654946883709882081101711174817038584175593381733817402242436484347691316316284011166268378495094845594670541180680196019280027290713725185865302705962363459834338662213763735275355075582000862320447176423835963959869128976853685085511477438645953260129533982157200449134539689659786584468962429373814865526746250786106595270905248871470479939984811320875024132541174411411180062213434065543364929493858052468023299253814848244984875862873183379951035462520205736778202802071306567412232751294308854384905096875015418307922979509973212871790131494231624931738971590420832126721308729891276685669280682164713869156580116285117843960138789431060668803536640646188121326341030268367320499401121694568119197552169862830728811386899789795120287729435507975254021979291386450579622210637984316080338973240146810112523319724574125573496941505757934424042753261494411509866755239826198997862863108772835926595982665425194723282906792060144250841155408413629692587408178575816246009072955982107146119980964811703430667930584032758683480594510026303658131181223637569366132306010521101216165775760701096535513965526744812096561004749550333290589808657928104642451672944420969994994686423037834599237577362838221654451688003222522283014395361988606108355126955997811906130555068858042109334228996187585899102714024316008826442134334841173121093330101523530414792940190852716360524809818029588654218452181019498406171443860526979128971455511779851946471067916195561389438079841608290010078798774432909679319432491161337873563855260696059255832856513253745622088680401891732814155703747617692359023230078652179883002662679084172792296112396722363669081297658319654081117976221295387424287596902092617510478281292708471083060644614507008352465242308165575570298053104365897703718642776705768641589883123304645670540872445422837968551081058696489445568879966763246002950722816139036021405952530570570776152766889567262438456611544705318578939292695291885986971202876665407587810689413448360404027189202372268294583534415047372603678373855193955109619837603961556252942888425254614145030255620811704127518546305429654655210156168808286644316279469815258830891003341206698336006010351382411318922629111069246222901984378025901801161292381861527785807738046775160794780588986359333493738230671945844136500748060197985458951369979518123088609632701233880250818517032777260590184089722626561237643609642351383183371603305300674560011091429406507533052724734434847232871185642439206679464768021150885200925539773720579752872314367501564712319256519822979632666911155457821479062934628579608100066810857066757944332788730480749828491659166529961217838887316216694891428170188461331280738368176415394763476395583685794853383029645468421347291540767907747488019946945050132592297456841387344256528570823187223420144146998992640327382324101899683325771965728183446991400998873207077169738715015223381999726544699235200785387048522524730987565123250653385067893836653206963538155515555805307806070037867166714895783622011993242040652095462762663524570566389891518636652304948829358138425661139882331319511199638003276396537879039396890169907887906531089878059771050399934459787165706510870430935400225948267727985622381998176786075523246902005120551128692194148387467474196151432235601221218549734882948068619682133470285592237337190821617188439450512825474425852032913446058320015289949969047522524983186942477718055811368041378758509610101302505946835739486368845337906950596809549891491932043298233117307276898103334312024110330131523812576610764217006907851000445487979061547308331207304665874786986270229917610556216497907042572674764078979849239969143102331731867303377752362935346438135908891245361378343447752633437876234444777963546823067263321968925083024808396819231823479412860853777509124044781352521465226273429478067782019673470065163530880838982159543331047436289991146502746572553421734655364424669757360487761774068263937910544288356497122676365802136056011158213498857592048709116354549215606693035547698159538107362512977416445653692511814432834682199137518250423994064221321020704781102682817637752447954966838633125433531381915910068628209445732452240876882588875642263241530740811819101266206841986336673805952324185068967561524044479136915792836671555431012870529752299079774195681790165700202444893604871467378023652449989273975003878415204973868263602204438280268964657571533202579581423376996369528426219888786035869205344316438200344464108235835156929709355577531679179165161442169579649886141311978431754651915327810023858636782834049349124384763206250279025325726292257798565717693312066914092653375518750732554091293684654868028876647971795699687592670572761522556721082372930922438944001504687446105080605299215648773477650925340206436067176508009516633959813201976293840641567774916529700039377128486854433102401732612916987212604836906008961877725679436463948216271631047793864610306271920063534270951062393993681071284693136518194268788562876936931317923671880913746865458152214828589209586838200572219267570123411589447820534852732651728525458942731149732869954072854523356630431231657706595947649496395191417102719661442980190339628124906860528307348465258361147675042727397260138833564442831914164002565218052989965718923991690951194909169677226251677749449455412613101843533271333175426739178356605398944734138199531012094380624801023752660433782598731880036415756148958921516408428099311373811419032934063995718494969278805083445796692716760546547789463582652895472164339661964424153451031948869249971016595503612511144651916393368677253808786329998953125159017506865900157401970090624950801275614152712883699656458575302738247705159331156322996156475899816006101988936407974112469537398476473142775432081155841228728574269844110983296987087542114012452369238598326047076028530530797148473765091991999469497723946091636637233110743113184068842688500014785607654875249857805551933456342548477540867740492787339879146867778267366977891572694276533125797466082391541446891685106721981856287313475548697082681875090528553299974009464272804700967572412106819640970577266194371742674743589768487286679817719010554720603027656366156221587931191508678270910752142805971942729078273448693367418658440833846590706265633056787428482350839849716490844651619938166665885708499514285473326409558800309667886287804677154866387616645201595902759606452042063557270825590996149204401624748829845411344833405420930741414088962579618939733120115033521202552525838423391955692803424332376062436639967952775004875583104072254364229503949945889829553595248719335030754396736039949844875104421834577915053823511003469446329077833126119015600795905238709864933761232117212418498830714326114137182596842702312730636164026776627502563260861062926632628203105718404736266182580441809605857335218203873909028198513679753369276574857978872132031548214101638444224964245686587311023488433119455300613716464741933599436503157997977261927521318582630490617662157651526459714232259341190231194935477927273874650909565584029346016742425248962540270058550850441769568767159070369540649941499472073882182197266776242689618982663595163423784455348321023676418541938984762559350934660831533464522079712517176129925111888311159844257869967371567860820801999287476453398968503666808183502375125514998335100763702002256776958618166820339424844077582635173244907731139820385532922043096630170407753292980994699013274551712778779601308472930968446139332072459317519427823088067635877651377720760760899889847065649010231005132260147273246011675279535232375527051212832250620373434018406603932888044078804397872837787672931656453057477231722295351591480906532540976762170127732226195822743343591355641692597337639895642900378831134630346705277875988589362291787291745126973910914947889459031245808745607374388728164470671772382484904960664857475216830629714820905223417252427184728597944418696320079330068794059413670000080927412381835311958518713347466804684128242464280205474678921356881295680394984107858327381089626121464910769214089103328124409721047172775435762726867642710804575296136200368438352501880724389198161209385726584569020039909700986405850755368101531095144087994530606492413383149560344565315132413264001639190437899150404768201950761084976954296490829237571303223815742432744761084730483543680347064109184688897248755653419398345168213140050133930397935237041891441020669909853509111352943205667523368306911887960275902042139442630692856332676484968740171127931308922201337209196453265567449432140306428139695179375613992717675096616046900668137106494374360362328675186667454221542692918154704641660002055535497087637218078291367760799366841984547089694242410442702061485834882115574707328807200728688642693491088825290457427104482189049977131102971601680516405183910901607485464299148658029415334470292170383732912940652340633143276947347600617935881919566936625064972542912011785757854477988313877334884786721927997041908330955487932638166234196161928982057200920208737419340412059405490704103477491977068447848151843721097831264172818870113795979446939198258317630778904102205360566723576114314832346964283692686927871685410166025561794482035134800934853274475153964311530728094571546640671381283309675830022144426475938127623907117871274757760038707490283675035070254527345165487187647819970443115697004490539779826827098811311249831407884810822636690823007619433437176691406552689309870081682526074232000082012945928757102776202132564188955562431215709610349937844232359472978158570237336031160251510166811711875282789009625242485774612379526870728212367426988468893204465309217320976230948516148447927415544719208555212688905211231711687232315234140723108013290395554208644176127850510081267040733086356393914193677484384308590892161475436549424281709232958407805956907597884500610069665231072599517486584998274136716326328439076913858380940435960553334563334719439221549186988464867653972461787369554236291278164103160721395287072962371079689488604681347762218043577917520310981510161828641303654343324359863957901219014970382373486785172260229692999748870151540048294143491029975758849752858468759138369093893317450771695545186204776457743030588134306609724565979508942465774240648565891000236754329189494971198801880791008755653538068048841291363236070578234137708431675414128474375689372595766029260668452721130331940271041037225854561701370708249662859958735649941333647060540932838504275027076831928242994051736848464846243222241510881232808018223959006594216570473530300580754095007590987098928779369598976815956745142841935642087579390062832505972728248993372297414416627333811654288132890643433415556679820715390342308749841002332114704969247905008329115951077296411187929814644509885677661863827454104780347426803619893873791192924335360252948716937235713995236945626825580932791211785131197240457366145026871270665545020212819307172116205121206569567088454103819438477294733822936421289951558724219255221020431293624930119561492774318743583148090066133377328347486067103396452432004367749912014083715974556393135868558280235260305065502017022829315277482445823427071191806941544743007410333045637462944871160000724941472914824256164220060062193926918936126068662810709390169107890489695621732212208337659503977323458545992450903717700382095714003353458152421365113758339881034010861540392970157937178664397172702043859995764644036279618374882174596961384162302959010322414005253215981684786881998224476393987407473956457829211772538596573142278068018679360691592726287407959770048657079119073008117804113151858937075750880503577415347523470064321959163996307708604650392436870285719583510524744897788098546840269844664824732576566171502453861593821967831059733219062256268661075389209439107063516174044326120257547230137025852838692247857385372484322512038945217095064874785757588086664262567115508735765361525815042483021353623861801435627560516325264578686794412070629467345163875158537260717320720675673166376023084553871541658452432266979547024075877649095638793443872528068740174287361530444097598139723269886216074411805220448549981663241575987323498735791902579212562080935140358443314252839310902402986409500860408400099006871241378580884272117007195745994138911602616296836026180058161034019660010154045619487308017062476601168825076948010469509151193237900297189067326603782896632322187089405072464918360175560334800743236848770649234586433938879977909336924015247251371421342826503403681531785524779911557217142173675805604325539909406781200981932713355444310035219307150310855082845152885509510601084045861404557840055615300027410558714741554329738526460969007086104981220214120528884797020454596888977704991932223417730012581554141788507257040927223997143241334835320109081043688183679129633761484589314375070723183781941544527936071459081973914201622035365773775172370539412444959658789460455087616202532146654483223447863067491405825918679171600505502156094979623153570255476669382372515444663705753141489388219025086970533858560525052161863734941587331722419357322699376532474435453526193629105040744440176538155126566984457448585101129924568901251957001093820952237239276692373612539421198729145513869405225125996226233143682226399119424871112601801473182447067779946109416036014163991715938415540575363644558782963778371928932413731841315294561799374058232908317821740374147509780324907345589744565190436760323900432758548464733135751697281628385862484467115444013308776441019213102170107227598526320690617465492221829783351341695779731991825659509215477657102756953317265749898247906498125109499874528726733091573331507662421787607288821240685742965358028907809724170129014280568670113968698484331610217607125275551574240418354880654265285961143698349620803940076422483438712047940838776290891335889674080221354793307924222436488812627129648814863781680383090533253865927703558252472794373690897826329551072775917704212799349448978661263773859757014256943528576441484761651217336498940782754225571475865462668694122730581365317672799201952575653674134643520871724506839498533581054642906063729534132990482893686565826220528014782077139408502845569566598514864195918836382479760693292841754715063854947218535587055593949220732340375663063152561095134394617607585005728831316786856233306353942498812690494768933264020982522518742401609398684981613923166987405884425577720448583842840446002752916136054086718074418028074068119721410002163640300721673121895210515186884770538049679785719435661085087557113903754885698655189249537280028565039423764086561579156733736284542845859738870736731254468832278769317688376375025357767328371527330580344599420430369855949602043195774970750817379472688405194332457029800062261822599280974065014196148829032819443632597118747703018810235561995578605308003843804587941643216853797188440257490502021666468383761539403599213665625467398853691615992123728786097082812317921196475599347304803310257138585570260299371556393278032809160613294244672411100572527387337429029474598404878677056267916567029697332325027668846056287676533537885700842664424178341660181645605602986989472058378594214612596572459663451160251710493052919683796494731117021992209207695935289491857950431716649708264100323172096948558800647603721903333817607854575460837510328914647821515947360217212920676950285864962384710684919889107606203719678790223856228214170290244988109668821745922221325548611857350442154707394264559541085226267065217079417786720292864054072163670173256996955837073038808414417950145443244239746896100474199193113015512756328842067053408309899343715126866838301598338731436467309250340941781385676575700125581621839073453242139371506793439551195289452186094251017228437647417859420739542009168513174573718362010649196665038966978095600254246990592909838922094183723345026804071724715538349383434771739355309011257858705720492437893007350275611167704516180535830782249128671350520046518404052314324600912333302919491187457702345369645619626758894187343956740003272187674713553079654489050179140435233215861088489112957656847315415112933440231253681172022185204401306820837944459477526770322637083421163823854759344314156839237566902655943905117060435325947506464463232805837407878934204240415967265034435871055384318105996603262453403870724996019832271260331024217865836618466418386660170896675403757406499945187956445950868474667899791990852738317143922901512926197211059897739419554048815841711741555161872657372279619820975058315610150372204588149531555086716631319684605637961163399066173303894375555661275147888826169133737538624522209964948024433943374981493931282576383291469666604809020382146213886656663230505276615362000009880594702718356326827087874633014324516782028436481285562002198717038988614374867515435750182373419614972147491878400912844525196600079444342235536803376629865511850875622285157179665490853236828108047934085344763922692429905325929075346216112152947123561512447793375602906595300414455111309948540874777751322268571552412550504186077867362117726474695796078772870827746199895583090182774422931911519074698721348575393342032232629914185283128353856591517877264941886669104733371248542940771151739596835371212929266419461849810050500409197971593212788446437149627790827797825912913755455496023798907003929037836245025342332152269500740485357444579984046029760522336954520394662179887570657147688563415802749950967180416268521974636401015860015267278243520925296170855459141691194171862393132577083698836600689010598773448240372414297205824312715974749405280548109952164454604311579599260609967684424031340708744068134716951205849433620422242101832955234296696397685343947499053866279240305610426944125475084105044750043626234992682665801203301451997638601861647959914622677472800182434779886331812566251170675318323056569894682928695013715201384296496527963729984908331132632284012713671957078509641246975316237151723634098088270208751054183909691550934636514144220456949713290665791781938427741741632474258881307121500168846930094681844724489383290592869303878672637505929606999996330544570162221516872175177291563598656477114204135771945199769486746600656426678910735035294575658378081851357055548502326956476441614823557006028847219628760967615533401589688906035521003160900053041966670027916940763971904928690544503916105439710907492900927136052762367289663849713365137747924787471448282938753040726204290784232483189179186464267451913861736389869997369873078327429898336205643970018619682969019487974601845674062815498987291759185496290412532654903813647677904576742803356477691952245357540699119330036723375860563246010059474687938489409224215049301710619431698637090707104869982287411445693840963838641891221113821768774180482037711953981044845993058185015003027683150908223130219221734011388668542127637759242716834878471350495365237758167496423024681111925018349170442017018132279494336256051688602198023621089549579960609282849962357176990936376937447965402837151518813107603218636411373619042646003810030952768779128148832778681467091090155891921335136670035443524946666237340325537475623612941432122622782347177403785982134632872405561854691332677965036464814371950455335875292992954775364253350368732104317782484314373024842659002518418355196041038796570426501152266182876989669399197688657547454617413848780254050832831945685823903228682829943931827257997873210745761242164732805319377918123692694830686220049860786929591964712111517050996651927125798026618872378271450107359836038315792319317310118924976558000571637165959632722691938174979953950544805607875677333373569937120286685555039528045744184997307641379605318811069394216612379657832406959506205302120613756333100196775162033302415507293446002332688758498730033395181061207684628019555566577889169465977771634741244656487440093196140906228916184847875391479579723105082460287373845169902354871909631427121566557567945198669698144392246726800104551083644360791933277644538613282227849900876384806813486509373627186636998922208518711186660728114668290112288681336652983896614391887546474462630637959887475035848641073887444744290997526104423326856625107281250063086865681694074761773747990455734177670252140192794890773649395207285573795964163851828910281569931614968275797986790817628291514698405357779954613737985546178793304770939623627634561655669986509948928425385011250111490843657842009741688051362338795934207834234281241717112330145041988050601006971019994349266739071062166264635507269975317226427936865467725414356748233549047956242756539724008953679631543798743676948073593346490579659919517725698610485270044410991239189164951072064845602257237572529422229357505195271538422670660837540571384326388437800381931853759025458900311871002870416352109717702519294348493854849752301792072277969206628801054606692619277783509180988402730637883120195691013750124079227932343467571070512199017629411594599427076891119965941034135044422895457934284662704657708863739551851153317193897618316154726239115970426061151741449210747735002744113367386283597289501582866997818408380794091889806552364394738240840483880754054025496375105558414882269955561934251527416572987417581834780527372421984203228705375733422116616518426546869893920786132587045179431860336166023694443338864285678090165082686517767205164791565891397095472387556605428044952796060080149245421242280770098945127217539182499721900964604378272670752876222330018660794874759727218570527227922752292641026811486413750616382507335466074103442620793181866682253658308199364379575261289893272994936234169769317877822624587085315685702255609331947914433660835121858497800986905019964143329146743581078338136672949327435084576832477923965934390703012736236678460140398029913531952804444268365209505600979822258693096596861781494629501438278024255548522164077353282740627429934421788762214760784038409208973067142919964699076040703789387760079908580769862197021730577927380506272266412755406838657592176210715199825400009825352442271378104735667473924269200454428943253709309123214581531847467700995438600449125395042879231545828753913219299127483487096700921529050670708645091924390625875195519211609404134741776698002686156806548631527084252053933793855560221861027073031401901642177634727574399787179718568872804416439242878824726885325398056741098761494428124133648775727918392934505063247590836064167920868451940465106443932904272817856376248209555340423275399119612981823195258918640587501724128959916503486242479048095423193878362489868688279435799120169705132176549025462822875773616070319791138638839550323535472997286245110393703027852225872772813128005343586769823756979392499176000867766673286050190550013847827559941777580645860658374094340221896418036774247112692509339994370246700192402357104801856364541755406899386911515624050152465532639092379447935121437056905464221257301124262444964066027181565666488953903559803865282022657642779482607093864089431608682818125611872740633336606785299304905415468365175895669595135865280426631100489525778641343637139144618725918691005672068234262219255720015606751435952397846140618572191717119377932631826246666755401664352375321559777930942057503248351027703270514692341017965700596335694928601244208252301388455896742867789168441522654697894707478294468879283054714705488726138826843695921919020713059549506228351041420919603232942911513762243403830008604034317930007814010569494456392455186384970769125217967585559142639277700116536852544882919547386535934600769594035283522924918960178366838739805142179417044708199257430054694107594457153284499680881498689121020384231782003016155099074714871296528970089715886978172860048007237266772649734593404574371780060311135893042135947240220259108891368560270273198581771511437016724023681464989140838904421913088019762747997145459370775776118662462880241812951257734366501979138938094541503797185255663783881954492632297671213006689684428348791897138687841829368377016847113267701745884856717171333550456065332740455114747594531656022827281684463280589433081378889380521515718133811045536193769715109045673889749125755103800416701786333448628809421424979156478715417258120267423706385988252718450113178943857829071994218647705705545904814269040052000221588439210577326012548747542796695535615870464465736104691504637195460344170971896182698386464066449342261361219402738951503956295310426207572833252449791130046316480127029754654549156497373222801491030136183546714550615640917166152944245087484004509595098705874016894716913008332229476688634645116781030552883071520598628780169685831307344996370308094051429885049120859748719878236604654550073350260856750421457898321878155704387867126393960079630663234254094749508843187310285249823112415218950059005254961451258890325018298735421162968951185721643312232661309178356604952167526842453711142365255688686833640491298568675764635350432391740016029244045244353446685082085104366547636842386808882926964493547545052280787482085941744119310752317725817986890433630824248866897086354197579538563890903466051516260596776819447701561124224882838798543683827590249250240491053347617336464457687972147060884459644683113236654283797807602830469074122865708070039072899885707953007288533443973109652568200878221322895649708702577089236816093026879038336769382584721855808011344287349616593304327497363668797726104724220453373299584110782226260100210705162584296115333824904056654958738996916674400100133969387300969720963524706713296475250045351543025744114558224830149540462679886200768364843090160088900063386769539530344275453635734591256392286321067593038179866464117097539362436496367407071007494548472351679150673804076684164700999809064164260253596703838735510200169193144946528641569342788801707290506860992673866989578873101369127728155839078093343900010226284739407694854632132192737945335881167515758803174432789272647701941319001640654801708738387541937321729010041033538298206408091064055111750172047357784611361747973014013594968289032078465525015212568522479209221113921145540499670386776459543406041291282006770993854762117756251217750437575582685472650848043138584343130771489009777973646021753444744332448819478562270289198386476154668621654776457582683975335087681318313067305435251572588823269396417948978429346878675011174566592282680641452221241536528541512354499759592552382085800185735387099166777568875906418622660591227317726837601556476195934152046611959872809589533854477597628079113766865881656316062702056060095362328929131639458334775290753809139836900513701764512642904082519195758488408255408137108904742344000478147817456767621944042534164856265994203164783591035662507483489189816193749357488339150397631443057889927351579789732161505984164085418371557728297513086030302921948551569233386245577712318876997072256091722840981584091903337066205841147423108639939318010076507809951961204883918841142876720306582359051621993665357337768427884663661070568825264748224443927632165270990090434151087952440785745969291593608342270734044690259773255241145789709108601424826496638363546463746151860986997888860594754885220154955971755911774564068144681767976677359237498297139730574604212093796796895048186716636000063651429643981402938899297662056690706711487894701023837578430328327848503661823399148275520079029387554388186541657471777281302140544527537737307089764472665191920568406762626245219722663903299146532639117906594581180940021309907604807579090738437262985258434631145851493266821571676175922563582760338709211386165507007081712864198848286853471183606305343377615063806092632352850791731864373363449745984056015472353196317950869259967471929998949323817143758846895069762635334359752852975722215458172286872278589769025902285995747369779868423236691118591312021062002498233745057214468833026483521513396698350672911981877308508963382315692017306641339506762300959583604625892853980739458493666028690682220076330572882831796696694794797766172603694865043370066570175388900926366558294012956866745164947924510512527593620187207542811657751565072864681651485358368995844194199400208337815754060741602206372913906225045230313106914356476652335316954860885984053688535546016191865628863879765005812654578128771510598801141915387798120797378377556291191833557879529977691291204692080877911388595824604140082301583085702927662198245026553942453566556485535146861448172372139036443211080225163574174280209193148667665692003582518770470686031201990516235777970701554702237713374025940322848952902072987861775541805033888596995007285917928338876825847995095439245906591646573041078822389730360887865591868586367803189951768163187513234918445455277794453576334293640102974520489673964593688395019779600559529393258806965953401214311004504103856582007347421038782233036201813893949230128237280085673340725189975201578703073693640215997950249506480903677488694282348686305002372629581662627758796376510626825877551636844241228124676763100501363692669940487423518068599185157125654938052020352502414350143100938908126597231175835824156770178466072269313751379206346141307522351261421357578866916287258086208488490454511931884930621360310340049519487161498384076227616224903963785993179853441172089706657152573084748427196690556004986123972988224536297857510547935196032763773230327139713950273549072101056374004806583983126751106078633815371388264228446594176224650424432329872181972674440526201779760505930537869250803256922398232896738123416011066771666293839448440307387718100638488722614744835610563319977083469991071998955976014046885990410038644773572736588254335433569650028328868176817728880214063871702042976687692370896489564165795968159906679314717299674234394283088336559198825661086059672381787762897402818566654827026982092485163475227768595256013399499031779591081432747369223854453193710064338511572856219058222129860617431763366108387548751040135215174441138577372580862465145083985595533471089302766438049301021783860057803566137436723008340724371276467784169478809605326366328544272036553944172551729035053861448849252421930430091892362291012501057394981985369972256693834205399843168199203361658577629976332926072422392716752203460461059243174219361763465935739462031661452077375124051067259663152256926553781511641729175841667827483017162105436180316705845771080125765802580609979269246891655302892078653667394288679220770869573745460180088962901556438790009113674160018421484590754472024875876632906738402041933688597827985678475012037206834374907421613768441636683530043679193237065565864712519474377340547024199310231169238208675328276440970268414843874659653528389378105256294146412233349534791286825452940375307661345246292792604154427915548914360113915762909621303057965592037379643119317254165326041911938373823338487735907147597465792045417121054203095760295929381056310219247498461870139686574942742785379411683042857283634680934118983401420703003339007335898694738690972999494494401559016042615949623028404101651769305537752088386026870491230978024945613856569444017250546073828850243858853534308999963720766176433963248919077321984070176760547651350005904304292098594834283042019629531389768780740689815690023104863178733702685871656666811773335632558912087711273118137271360277138852498656850516748192165873458983163725950523128841555943206659537351869068285407056491980168526003572089393447521872481983466886424689802522880585035407702021618621027732078032310614163000202228636449971742970983454568695175410799141464548455958779309923019009825350525676426378083825951151264318224214041354752613487148331747534912920956827363583064625453849500243210250154558597682222987214816948378427166230870269369353344657413425632303046972705871404722658152024552377271679429299461126772350374433532741128657395928667416848642688852093537490602379086539227838397160109795756450789253666525125913402499503482527197631349800426728441542505914056987908641178012643521218758380539906392003530154747301209168658071623630943664197451012505516442620533602737192164965297690325250712818453311481219436151026884011357665823700610394734201496435485327830270846486446701203606273472985528053195922836880902276466011367994558808551706480021099840371816346969104261834633230820401033231940608761540162086572182861284930083649174705242799714488720342092450884073522367523670072099195834589621695718140374313852309459696730044216695326691569825307979482657429609322232893710816155111451523929144617714991018349230272975461100412304070488671144807855305736174741678151289974532688552991557379677048775354043647867973167517041167227225044112452055940172189061098729526573865475168516923865275537090191162640682242701963503414932997643699921394046277205434748068044323717386563443175818913339507489168943715165327536819318141120127622672952204669411112221338985286304526483552471708601970557795557025200283788098583268365773132559720407620327098974550738693156020996466152800559505629321386037572213257587329866475315278319468475373902850470488211869278601057903013110013836648008518125805517067627404393286333446315650773465265163043584602735305722739191484510367785898504247578346387176962492205153923085445686826113363271147258445227279199549929690921060369422789661886619605207423836831799675208326555334191783481198365563603120564029213195541110524323756350889395065881771738374691529501180457653840324160312855872513233490534523606887272822231810930833922379768800682710271186087732419012557912509579307605940054263523180881121235109623849924273310213142756839281194620072842719423746639926845360701735425646628969162531494582669195980215821770919566428362516879433454553390126261759729679084606701327499098337841568823767141562058954510224035347107696318027514392247993034387863751611657175433607137660885590377630807720035695306695700381373567570332909108564255004139994809850484511946625153743958630583430984541163012769446687576409088276678662936041978873278736720612108876234294281144508675531915058469396421096958824630744338768500975094893481816110489913950297340102593914477233432314726457840119535308041471423779746590066685526464506175792486405384197984022630461728029053286783447428766354804447118874841860614461634094071405491528355976155125172288177374516423854376204244313748632731373970795681380579130543312821401406851730020008343977000201035753449666901674741498420124463992534103282580184956290273383574750299603862190449848714142099569754299598548467059581744948866361953731965338347366934596753288850172692956797864824070151102540171141029115285177248013894332852931975843182632805433903241458718302477670740242998616286253325020484795243835677180895115386259114617567177126407168278931395149083392361110769287379328448945316473490800454053292826408871220298674559443565688919809388313017467329556349062590334056620019149350634593505276170908391024425960935804942978999594924057573262407991256329806152623829123076891398436723457799234518586117095988887095053033380592952302185863329596074004562588810079461885420995939953227108383686021369575299180283757019239454143089478001727263529319696396575397372601124845796991422820991019573039301044640405300166759877396995146556041482993116487619748432018651360074931068725809903825263365901221757077326354960014510529587892708983716627080738538654472403745938729171406548850442647148864288710375001628427704565381878417937566289097474732388787836333282110088958225018247045522349809613700405855458854236042934524490895100059205515034470170956825884741988107065444314222908600128300441933046309033843750323498193978371243879880031577728274402124901600699497594496737581917743468233991277144678758976599224140407743827392967881101158587899015881226593318753647878783771429773428830617962856783703979552913111504799467789705702299003507539259399749019096470895295051536049539635941077228815227875696242749387919117141092282530049473487561748030084833258744781647765268569525439588270452585100809404886534794394035198676352821777840263390712142379101404079497843530341568020288215827347209076219972722871233700715869211740177842694136363794294450903432524835442639341886582711119021449968703775980923081090553724910455387750274954545224611273349399607352801411019464282736460359617229407075377110974016264423648180873272516588478716060489705355900899635362191163561100452831376556180593798754244033569176704839368494345178786134064036976119813565930621589419068996924692413356358009005844248881122552827772361694359797620952095703671238996579926910248087346518867916662171930989199681255592118316714581176399532999136184920662879584650129354441440393105399278998654275353358189459052722601496764562605695533668001757160016320365420774443556267378378655701267601779149361936114033102572242268130273225016339014129345354686103549670998288408630880167069428781731906191017483565544205102856309197014764788692992528507867330669488016088253964688961199744629548634502096783080482693751869195087791702608499107301539835959412895653053819088064651947094431188843003425506552441512101282732036342442418598471169996383947746604611274212864914627195067764398794870853668483593122129852168915501583908968021044989426935041171676353827579143313506410967172987464820458492004748800262550186884848818025674085172374716728715484755472036734211855205478048122554704416864554440783452981283556313539825130609737130259337667420774658105886957105322425613553364652320274840328443752077626432537194860605579867745403068523754536935551515860033467260444073605571704665512165470174203411609455732909169895285999133967952867236747189448639909019894609928450609264816863964283294681676150289011448965403374237248827012726274129345986609149619152502918278133625399296634754758809067343004459912255519535889692160744996756990028657824752012655385795170785626273875797558045206688420362831642856640336417603094017295736621534073210850616483681601241950247209362034663924125880793721141990525726428165872490886403241280543125364971666568031908479599357561856707448241861482447327281704085283588381473337207966191523859823911558174536751118744957029006198731310879992376586617084293791167287659091853034646071097694227384611851659611859467474121411184105172737618864530185016134078480811323651982902786723202793630666153626860263721706332813487877136015362438519400160619880995303597726729740837243771800452694899736383908634387026949052675293065721248355063502638501069091218020061027488274326226415098750131927529551050351279845160102779656102163106597749216341532148543206319381765165278987550037022872607982299181128488415074671246755846461739443581995461247528126199592189597384359558380449573528658641681219755680366656867645017740450701740608412815560562080394736460333112603126779018521837563116672207005857347508223418755125167929958781926567799476037144741133691979717355904696925517629693020785631035697645034457702167451708375844755748179813278192705930080830894989766576663161791569886376248504237795456311376652334416327836257958150997936382837676900477191558158755094899163884772932397697356784824050292633679744033450584679223965400503266309917109453895689156666822965843904847662576443619847308377476689296213713580065898672848943659631162338016239684553228458546046018241683117410086586157743390051947668361172656422251971864687886875159779225416743691688090996326297197510603931380390322161539136211638169434087675646471767599762839563896775920835533735717006114002393160708299258088910376174587588536585975784939868454645386149937346303843603914826563407045684014346326849954838831773594235599895853586387008813687045696971098626583119246223627225552746442536285073787239827301084612661790225979787502971041326956980065822346787010701496751273132681259745741556689821476085060151693964872276998654690937818637383315765398037752465397951391452197698357226290478859160794552987417851228493455236850599477381591443174268119075204620979868613811999117346175778281445683168335277162593176142235968955370184985340141480704155475575103167497072208470518366184709083460352973126618080028834826995403419211013464680162414655312715394868796067917980932873058144100457757037666956743754847489444294798497318206866167296915733671886223777509851428546733664415715773555274683698068750349593270728399938015638241491275820812688453234254447522388680819471600470325462966409641861471144246985625301478539700613852858303673371169184665147137046882788786548752798205646716314093445323262920969475007374382056131843254535159585299635035009238761611345491217900672789047600461773309675592937580488619665244126425746917115348412582964939741278032900402339868345065995304022467681241188672541911922344609598302400927337375486853173910729131362485008563679730224590370790768999217221628586453751053076459950852533148217968967848530215510298491105250894845330761440756585735034098262780456928469168766209235983622465662789254122102678933830226842263599308878122168851171597396967421730496170805388535496696051245591972191375028350357926040437355128364347332750450703964895915991255247570171660026047252286117454878326297895045639449864701638713331738282503037403782641747917859306601090245898268366435587650455479040924791515880981895036482749153085063206776901675205976505797762478044012994602207627862187400548887718389691177440185850667234727914260421467129758876237643657606583050181004424177504146625095886806631612178923226557288550910362756871528998219117308594173112855401371396702302249787743267536236128176093319389590853150487837879136051663502816040722245797326069414676877029231428446273440616897556433428281665304718608303129943775145454537771718356086866321776559362714415540114132562640999763741989673050821017889894939587134515499626965045231428067687406527692404209530582698930722355707653638603833906382123710999760208734980644576494667227011591648884013266978907464071257386606062149917005401290371554073776167211299107886846846884024581268854479578969804051132759781638846783804241426089060532394957358672814351364706351268683155868679886267680406262832946130661613838048249999527537968413064830493445118309328535567283154449605131554831020781222936980886803092076813125453059593483712359297065287303310694420665976558142043111655249189728816094132274894042282937257271684681106529776886028226607014703444308269191717079951851063436574163333313382347723707757651929235605865949441580086460522048307107338263171031144314102732032418043698162727963291519443039151829209319048894365935757716472437780107592795831700917272730865444595328970313698486504925258348505696226347092052080178236617409638189946338478014749347078839645284839514555063192773574502891942264615538182700059035754955624442410819888585871967100336232424995313597994599786705913677526531657852424463802342830762238667993653152354877074532240180782668579278510942030505610147903951162935848803047829695846708335882020083269164824250475788287439712068025200097012905481548806245270041104941391306563562806312199860302113177309198247384801304390254027393571487713001046427788122060717185502131498299949885023055047169123387929396834673947646694853119783858212764825368579973067136597015040362461376109002877231172809439240617230734533469146328954447360450969386886097482828783366883618982565708547978523177523200528963493570969466440890947436978377969816623357716172869475271037996839516738183996916211202539399742174745559651939521088021531191016475886292081696504690203467819785254391630721418071934497267921670447462904996704198439395535266349552733637380400616526755356435101158260916524698248268342551531581682276780896091663739319296709025648159368253352944752253210882829702112143727977545209833313082498057190928064518656336074724738446807950571716045178806503489147364835218842214506502185815155612112531070324884144945251252400762504857694002077164235805513951352881921989459020130163782723000614472901768640147500613648643726322765445364222219079274770913340629814029555343331222758143876791975573965984839008670675995839874080873291755217122597832881943841740395386053643728108950261266361217252855716251628806989835875761647637426309907335053690079648773690999674338357004717734224480933163347989315932843086385214079105171570318702682317907704557407655521715572135644328459526139284163076040869767175844543630536991109398143516530917560587783977458932922677490971085923782709025297996610527694085976679324988751667565595277974306059167114860112138549111639227812444168489432317719891588152014962201344619677817037627686727159080013425776402145180373522958314763439264046147089635381801980284072219149086034617938295218517522298762154093624683067160656216543873409442050531349125394229183781367497354660373598293346461204723838543714292101458734000877209213967597627600640251941492025391086685882635690102575465441781548071494500022020228845797015271732150045183197041013755400213601778007221208826162402619377502672357305013882601064228255911135227251892411841846763475576934085523035467023524180955014087541465426866697394496543520978474633222781533831375492678911046122627378899475461625289377484857293511965707318172454081853016880404122049346685933541228153355927978034303828104037726153926797709135756938243114530881012308213927565325278176171148633613671748313920062595954839105510805499710368782744536097096345800482341155556817809784028361876085676823614231489433804447641027376037106419273796186057736390456070141430211590975954405527867484795291608992196779669399232498657975416647788402350312968934099989537024437949111968626532458159134708662321638399663665328359551215427142050748370736152067688297561947216773119098766750165006146085129405351920959699936228608805716759584190391659146662512840965994891897929369094966955671177659752770255757721270727343018907485976303662677573122549624782373866767240680898301535304785328742031279679260826534837029857752522052374311398390327368091569222800024763240992405461936073764222562455652018665271530945924486843439304515688007621312312429062670406073242957472176935344360581761483812834520036914331737863167515371288743967878567239771170546574565238303780335342907588890125509791343466717042045632902699356006127291158344760976746728013758723778637590116512044488925926792473827743112915054109387664660906992967910543523210565860812534259921944217811792448874565773291476875415102119598379455092281210782276225584430497215162854240477556622585380604190882863740387901768227975733485781732283836986746099351379001407720642913237113471488077312332755763795270995558067114211300962648421670662540123709900552797477564478427637196153029346202433588479886380435172268557889781603062329846262231706324007223302145792394474889280145613614830831938702441627429853373281325498830413166204638892558235482394285220211705008348727731904192472702093563624057232196384435515535765401678450095562068932711514989762085839347805112724354090547186901488399924572652882884392751753769495892599269297945419857502644502896906904199880213262055942627090733988348553631279985266101755894467509959662027925648029092420570862707953558133704578075858786394977494227067844386589429065762664870195375043821027852016637885708408428016524383462479825162222688659594902729387460275625384219558419310259896801202063002116716087016814516737665112828672912197285367765210710284960242671711215053210559270392147304306394400074967943528432206689973445845679452665633272626070550006559732795314825941462867825903253631778544551830517076586345717112481159653278894113499891165815953093924750442229681113074344681121711614218781249097588293511493108573046241915197059873829163684221637420138362954035787042161317659608419483455627706645208429784234545189278705602509034028269755417716541757967337516909964051335583766091864317669034023634986104552123438060223355847465608826338903428644723916772745769115529961420269632922428824458407447886741972995578376150322617135639475514065865505873651180807149064346662445078262156851398943660409028624447591583688528721679063772211966196075880265128981776443179221956571179985478913905499477531780207779840977805420508390020276055437443821007710064610290052481385561510910152178153203429294284999335765629074962675569083479364736023437104334549556890377769004678921662667558115400085479244052197453753559727880320666140919204812717869834585724673863569412281833566469414457500497747150554844415755731303796056142025524057439803466945985379771767386337727004976050191767224167184531065953187786909526525122328207207167086393634798845946409844016513394895860975059902129824821198624792243002791136230923295593915412104926884082640854642064587308028788211997008121436420944057277002575140233309156584672951534194908833467003836429436682943492271395246259442463483489674882613450094544479759950387444637688550661243089377141667770765948122101922566129299170100395787364647870262029112740370673020407494245832477562480530487165228210238654194522368562421804305603154760140084366116030084162979345080633288704370490432989130264798454289767474703727041194449857039632102789937093885461125900417889857688203752195403120783217981037976801976691129899478939603177661182846854687807441772522406262551667624855729161934718361159534482287840538070453018558531144527173192781548724660755644352672824307391687740283787518691286687149644036659988835808896053265932425134898289197131233765911369795986066540242966865569443379214377361192133478894657751675424169571148444593810473274020241869591248766256452622408071718101964210591736393910693947988810816994531875238225133531146395193361970830380620530579798300575387276357728272158716353299791877546768526404389874789932920067653824790521477764530514732611747615280490751216995321089199373293423258312846553324131721417745308427350535373572808869068362256433852167213662849562900935211972677734069778367245071833352747477098528434375940455364455799813176076927003881702916726091060363245735490920196968353683484676171238324855880832977298779573597770429298193172602316854713593731847923083569192903999134859506800876048814904878311118764372929242382093658347425849602557304696093242525392820531343899868317907301091651964614681438061341455866319830019927080025658113573982356484741121267443600323663395778958225774559279632910248666410171195616087207345566400420773051254221996417724431942235615654526362788863065580797607232408402791248200713058629407017732745210916588474027066127940125222401679798137461933602887152871852553492771637406791564412592050136402041515296486337843993267674205917559191450892395413427086599146027940958343242651968021065420120564585396725029043903256268131632911955343479522728716357981536149852149283410096457418758517774429380321948233799152185408234814882607886760733349788396184488938255908086832449592602726982419984484792324312040745595368995868772174852830777315760509454364037351344429115564257958218868189611515166360246912745044670212918535415014240570050348923640261059334658988939073373180052475979131404686360474060845484963849082223695779935417666620823809955524890310296407635166148238145220825396834954223119724145331995800469129887232261996096557518868603024587414788367648939208223879861733170204218837062534980389224625326514874028083879498833919595673084877772289056336297305044311156981901214914229548971916100853508135180600412655255562645483777449865983422909743699574519817256261086782695378310543639523804834874357780666376454426857952285397357103564530629924549629623370616045024371434745706342532432101529340442587373845792745494598445338102500940373680430781813577832168386019405279752094755266847266314666561455491116668125374744319271240867988011834453752729919931325569074343184165082341164871479682730153974504134024559189662258644880440184908693520546072011159451728591667440797198198854164923988135451246400730441337877327066144349425254418947925792718828264619770227474206821463878432982447408987190393721201377693798350578994493976420261974768728405822452059715771583677443208351623371870729404400899958212797256108357420832093276341148307220953596567916402069050477240198443333584101440327956525969659051847106760550170261313291898200363644749826151908781087257205471881058288057916884383872081863177726948029155729573838289030392955354475327147570234367687180622454283018543557267978927025171039754526342764343195830499432236124272160536053434916329580000080580248278007854194365037916908805934809361873249462012535878328305739341748384514910681063369548168401737644305182776510907485205623213364299168100846737182123237630053066026541310096321511433416816359567794476178767483553977597388508347144749009113630839097242176996766751017571673257521329030004059930619382519757610283675602623033884183335378604459794630747653309610929819307505413780943338264903937691667083160893779067190979351545751411667281201110417258911401895013139337874400193209891616002022069313831527727941802216786752020901719238578893345858193642624998683447440424396466890583780130177977726575392326327643156189637580216087053963118790176886973891211665418373079570797828641391896005279319521211806764707400445908711851567582346240195410185693874392940447137699867030011990776106905539657067682573410565316408842006049219990206852378167424829298228371308433445551532947518666545873127596834600486983400773764400890693424454205803369550187786647030800272128155794307809218563017288332449990923111197259468440935746892241454275319646906374482677632426254468780469177247657748077374917560511417395190136575660951158955013943040320556307918180379638471280850715546706362690047076965582742723625489205592285401706041567073278918692080528963228542622237195586449234589831561043518500338442536529561739968360835343542290600207744377927638533321978615283740017744230308958688680832684247894112705302483845795096819474271705015914947904701594148354845562190261762285937935392768985055743662203403426028440829008246591151398641181250074753425078947273806042836164574860132098473563796326336842211015875744796182937340397844211074619411600220999325087879190146207904662157867068907999301439322868774199814306688142819675144338031888848449107002963272131904697478945709053921059597624843368608345041777548124467463531022982235953653614793495115862041263993696248509538145346390871832120038181923346069067084519156214887056446969720014804876382188156557804137077144689501540108119157052699332186671574705205545213473731785546766747733655768039134618722532560804273928423597679539886980602036999395560048991510976545143381551889734097628575380080377383809560128398931668724738450393048585734150145932602893734085827888039347256544944395783252807906415516781626648538078383384444885227892938340306178897516844340893739077271975461379303624240918024760269264460738530809606780221335619334420812035005235054386299952209383574090521598814516641814638284139424133054824857070714418537796536970103521195387174351067346817541033814722997748320968833526336175394212465053155175782565513008176316500770485050549726952025947541594665829192289527576579992498600616528239300689067862512361135330781675050198406826097618085670463340492004073834024974879505555994806062290478561007480603186881817224942524256056573251390632294843450838384512089581993428719929433773593680931429067839084232844383465957762274038579234197409128706532747075703319505889873082372858923116607988524932555903484245331992050502127728046953137145438433140212142271286673831380972807398997658462428057400109788124666368461041001640005359959637489885686869551547273315351235249268387473358899881022703954878028594070893528970739799762767872475638077818362109468202431141923401140560777504583841481921250608837811807834510197507735990322350884981132229586050919956032912207887473585650434341660329447012047133357000388679645299172528520559735723022066527872265713699194626648054332141364591284408464973284421795034523542724707293020854562189291002754861104589062640619078678951874362002038697502718151337672912791463231715298195970135727210273854327385436521093084429984317547398833060300173266572724808912324015896348699433169902170198083009731867809890934795049840319678020331893242064548120888431383152849153582847523394865511357824654399470311459378779867071458071680440411358318139974820101310631838465138074709534181061930641301029460418606589971911694260919928152184197970057533202658414708664509536968067292926774395439473054524015018196962850299908859953315199886687724718982344572892032628676871951872918220297779897289816603035307562084225909974219710283244723474578322351566651332900441579987523780668894480299544391219759592793724563617805090005959630965730557809391350055634803816917091537367413188989754598710888967913467284889956403051801687134632257686265800641718026392853474398484311542633055634430889702678843176227693544519676088056661073660415796823914640890007485409997458323831321667245176032227074220427369578084098193451267364056733295812580552240150619495674644252619339376538914628230402860439395577665292853535824969414396056877399101788133083197689572433367925556380045586648674204375566440639342275859894303631438049160411618135075867319381473529251333372168323779165972697244328564701009157737157526575337324892929479054014088822048803340344257951555048476444357150866525974812504647312028774446015373006978615841255140888779167451757053655671163974449491333509229936862315755397249438960225598291563711948981530115499294020817199368768769790947307585524229705151499321341956384372027629060893770925897105033705587682056195097611429626937093290894705433704146472037003648264395675827811581108312185307311947943146095886945557166665241853647213831205463028170394999835695390185436981845745177070182309058606410321330739055552511429050353127631530023556927321365099750946408081982576058791979423594757841263223843990091486429699909797817006236463127382338159588718406638655207414880540294455922809360036039648696993723618096216832573392235779039194632356660354314664635415464769047834477237671213763306815340306696428431395944645172449064691952516761954250977898840847935594608289702312357474054996294100822669254338784221578094973439971086536066430812256623450208529578781269808499255251117789695353467797493538319635206231028165949578569788184982872227737882323757698676261227103644245868048188159313397363450024498224539492744328052498513146819546278617680254544204827180506732474704266460465266020379094587099341535207675672703771664957468678355614893624411060137117289691757798297548159576417137292685794862610112419691414017153684669218008856172793670856794214771020757916887646969251496679258050237076679732158235702796064736886631610722974623857062281617717000664862818671119061628487441505552425078991809544948354535533162654740737876040722565185991008316380484650468553822999831051072530234604376329040385095295916030180444811457275622046569575374318455790280161768139787629078570797883918988169552947522356281108484225774405700693400533834167717947076774555494329286488355705830675597888065986613525032371575646311408456067080131246549354773268641669716281486222433051724331152530343997914328720010336328895732965759913776931329191434974206442629271225792287479463480708017433408428241028290219477775563677556063206334060766810510940171602324071299925607178867044652188343248428263217637340226575496253562359846694349185246138505959838875561438962337760829298130722667202646703352610282573461456193216103942690854546066058045270714542646341769110423457472227242595727117236746700249329593968956701218574565976300156881177017816681503259578583962338426199315233611683572901583603277926769016752963057348485629935818870392050970064111694789517561229702101409426481092154857193823625095977685089147652179802251796798308781556758707392915862735894034258639162545214493221289337527313682280900893087524170757610217209362544671039085582109190774651079481509187114461132878194500031326070161728664535179324162630935740383680543589459323546294381270291423752462557891136409074189890524695422829637345361033047807348292105106549964362733042969563071692482450966038186441163327683127465520594732202129882231341434062242626192637054422852129710545036665597182867865525563758648429932140485679770818483531988349519586624548742652759464681810123624102787001653558493138249925838974014248711975637193085316970738329669492000660987907104966780876886551104112307177693112372792186540099299138187504779752644355074948773608152872404527635831514567076408364024337516047810202491560281575453609661462649058368022499694907361909422041262475415784492792189957445040084079573591939993666105272062695125535330766416836333353252688550096605040770514856925222728313829928666037882949799375926883040756277793208027858052504221398610162448934188044407264248252801973478360537386699442439218978297328198221969320646154863649265436626033038359577737490371179500645811499358702307494814995814229823101867293515474216918612190243195537497979825630439748103304973470614332493380988952113599230078004143777061302435766980067300168100744592408973392621688879084574233971328787114125172746903645077835958587960034569272556569711069634970039215178277674624315366341915434292731850588154549415130813005026686939773890729060164695838563734625870278209610217360138723103172171610488542840654885711455831561443348912884600393586310131109675093375141293626329407996349446854290425305614786661876647940680274620021520272775256727312549071203852308064310260238023064281979978998516367472255250057683404478928216390790800558694969310213339704727474895936909115979746553961951252435131114094681281815034509204975447001304761540570320740331771599413331116531443151717523149415911107420390481780590863068715797912572051620148224218250022351557281014064606295346721480932744193057981293710099837810113406604674120380025825908933361463407724149649637466111165186617885746796118837361298224806882862170568224132903171225561795615665081699720003986189999862365029003929773044380035197640067847127292340161529252643011054441968538791394901313019664278050689280485337526559988902497944287857084084374271972055965649297384470431444865496097925029926494961750829978615416250671365827976180678400538141672581687493306986353426574819482353058216458399533014673920322917000003639302048463812763402176181435174683949587800981973846671709952447905445387534395302487073972715211681759410785792309362662569992973825169510597713574819189938196117285375099421778593923335037217590852990502283894138913069607727298159530266873165806565306745586840734098912132961900370302341424510392167969213536141387098413998318946106915396182078374250503101520977594151327000522842216587538024105805467980260955623418451684948023814000141399754678997376037357509624808820642388978402636310374832278592666805894356529922103352463571967793186678317200254995938524988196237655029361096613208312546060487977638152395350556063152620637283809618072595774399399034117801069830382408031012634459999309407353998824725453484287875076974723214727266118219330230659775415032454669127629514715448650418541687120858451250940603683917129837375810694849519397197478396162416372819057368475180493936579502581276796667027554691279232249629892755049515990696845231025406726843269595906706469468131332528397086822762650215855130470224159305915747151596146402670244676196024458181930567873256489883974802005864920421211480958275358112513764453370241849643008397706164512709556701100948402183225812019485841020810719994656109827956677804147081029782631666266293011944644432219152666827197678998374593202759922259469473593475774845655640031133240890518194573474626474611546912038070835301625646948648805335790801093969350420911294383585490119565835833997822455335707529426122044179139826925489936726120726474107152844805165335305534302721994353822864419252760030501947111061123543219114933514577773621585576572577984024088752634816010466039292331808667837740393161599972141448505153946230076073535652131327397085877281993749128965376777665693663702369784996967583898122504492809492492760960787645474593992930390956719834073178937639224118199917952404584912814396479168262594372593349096337876302965036285577599387712454101702329123713943353213330466396476362086958893861799550051721538397544422724739828710873696019822029895550850396518482562297589766072846448260122374541347306831130925034553812318208777601921681477519008525229072298801063424861246156601252613156025192044077453955225187738063496683208759375712523758300272410787886393625992743264507481909252644933274593566693516103330529326879598963538954442849757678914703570426217884565312201008935742545734363959838847453497076858428625032776731723582099345969228119284702670330033897237627926839513721309880963695355324471857819549580378700945353504882666005671022890714137440410438872965344477802072982807693728575827617848881576324415601754367180828505468486199139726201924267571986630096035454188539264369672003840776499051778389485574324053203192016997083745671676004116031549249776295115059478378355605594227056381573988790070667075801448084309399996271815568104556156285154915131695809389813530865792504129201784707238417969027719876969020846043035886019233746717300996157699715533531455112941730247523468917757752195069919504320401009575972852602857283668299860278018781210277969333742263067067612451106474515812484930337665175508492116667539792090674518614963043628599207067979904898454004589212359352205607034056889918770731891180671130537665080880565414171232493370732495359343198594239511057637364049025597257258035950744231895506627113291550085470761217251386940805391311164109008179288148690849958214847837874287219655325528742815229022894804428798389535962960847873843151788975068098641746149103220136593150332503970994106124760744293790962456170008482177302788107710644481999060812309479994064228362069745489838895229214714172365877053502151127016838671112803318201249336525482478716519740903775535645500980353103186881917026474127372043680991745165532138554774541825487078259004019491220676296104001056175371139328157916805450681487068343886104552616988363581333683161459523469275032217124703034496252794823497410005721860673845095682597072234561266470712310564865126871816371768015195487805032497572793852167512527843872063984464953046839963763921624154693646495797115933924755072093433420821237226206084367470788101944944842640064867263208156038177727190814209180598317727500569360283290215363517489899027862880303411675295181865968069427647181244910158488311229544247550717712160337969674722819534203796708096987437006197258599496993590231738853462964367957118631841048890647921540283597622082914066680274087409482855710481131469986093953451971524387123805934066315719832831201694520161230085751034329299450186744954680406127945896903124366737466046723564240239920546953103173811293037966263056305454095026784576300844373026363617537369333931868517792141991587928010563673031895141984798370573198353369577792095535675569082507745153709460341743201855468831135197020683934791979987708558318728216223346472953408411079136514875035583532545089006986977517492552066634926731730295716677019875987919598415541379714583846369231316099793094426290355104739923528146076183388821695085249970473037535001168042333339027426223605368301486860873653119646549683441324762689275695614851073477798147390440115196126632515757488987611009694917391306551077527203367298891334569829344361085014709305575147800045865195818669054070019236975126734757226247849396943460769955465374819376414007295901358647199312444653289851186246047365695628267954334387878752550093387456915838106867724504472878939751410319223477243056931070380917994576383845723221767468567425350605421346222250517194554877922967280855351755693523122701102268492691444059367209306735361326762101783384071310256143544868556058671834704136566667468352538178536042144150835984236909731869239402455967456497836062041083134226504300026330139958964550399193192545585361914741573277710775690134001933970806233050185568579084765580969052693955179418791798175122401553886855220694389802370769252290679708272287966751841681267457668757242302229000434235834717023430590628664402211590000605912957264630403849813032239667473691361712342197242683606639063316974077742543047497469703287157972070692415232066765176525598405978894100600062697984937036172791606799849870462494058092766438130540804662297219232769556885009913771238564231010243308955029815242908551256359256058693596575708205058480325724880379510833458672958147405687748892197676228456243061253463386342143515168582804841144641137249261382779235004103855367269864900630495868154367265540239478867174227482774808883516455820579944534418233163522489899804721494222316977744673598794061471739672058879042571156391924594317253217700822125225295679984189125686064369353782126613347830692267459861975496129409934965845810892060197284348562776219179211592203499486195452690139350638867340756532632257147679861790499814479621921666871993315744859901485904828049668142029818318103330762231838816461656717136710185297472618009672980764381652286952471953090324204363851408489422853241940998439032720957713539844563121075873918723198339694558694745564407759362732087991522318771964566018392814758169749820186532293694943279699901629760540261718302372776168471944710443557598840365129851980402176282015013519944704410698788430975972263657160231602687591323266723928683432245187561041870201772738278593294317051649273432986506388538369084283159487750738987558707279279548362226724687805735901183355412521408943176524921197649167748535120740434520032755938869212649813572240776918337568276502862250105668153266591706384583306014720266045338997585670204424628271223043262652221891308661024179045647511098684925232278356225110729017574824811238245856020314040326295728969146369969784324342790259609006911653915102464722214689440783726815970199155677961488871475496731959029067031806734342870113500415476524965050483284172195144589525206798187375189134783066055170154043981393014145166684814824751866559559194702715160850670898409717917761715454308271902484291663529305988376629086924075758290376196501094407263700074061342864326983962552175739925262351212365925065779068743598049475340557736454507476005253152025108714750561789321952946408053810071117211525674859827383788057379142440599857653225862958889616659509314812998225041198403835777380449053972983650998856376600161240898911698085409354026381824466380633817912264381975945274885016527327644987084055051070531532848673794273018510089232597972532521987509083434922248722105370587918712403318123205119281171246647289155150088852224914448997638695486062045302866107776166528291063853745647458803419365445748242992247468008577132206676216607535222365738458074037763805935513659940599444606052203016927964963521109857763475217410414551552152749823727443853962780464813611875405730812243592521691052297465813055249379447441240845617112746398937908519447783921547077663495780655205246076982691977640883298939101615943098078657956157781473665241364133917025644164905031132823593602311944092714309960178282826977302586765136292142816989055010407746078586626120299683355338082309034507260695935314113992053972788436491703926805092414591786617309329616638991900846827056203665333446458011883444311884249350011820273554320490969448507716360249413353365663098907444584905496801529934187003457839245918998242735362966844493201641026872708651883990207861521413620736902718957375407973409617241391439438310587224221567272655845159136601543065631130380531302257560372288214220406510721356642633529705767584295353576792174261401186954459964910862779128760189528820857569950965905349560104235226140183840496839187697027108273761369430117255953238441360404189949488061270520133737167737203807516990439422191721616775849604749261582544221243876566014485267700635822163991813900469035939843456224513797605543635246337349105921915805333603667638657105057690335288688355183674587039199650289106215498594845921847784145606311919141609124264883652966223891345821145149794470967962276032200774987703684941253020558951451907367940930373587916823654073293153233278226444685335849708413438059096590266061759401150932504695652545124045954665517731512014939404428923505651886813925494911358723518468355890657664690419542347910394880418856378768700672292040559197753827737391349935651959114384908858748784291768251435984144853243290734037405567298392265597560459253950461622981228894978140684171886272382823696342142089026528574210909270968403591278450269411019905316832952109951664499036159740372772552877875612559210517613104779900414857125641860075733787103220983524675136052430309706491748629100676418956644395267348958440350856731648538533584340693945452993219751932848998759657876243730928456542886303654274418881745444215843828349202633353474098474169501422171693386785370386903750095838453445618097155228830972919820918734859314107051863075016817127277181526515701215490796596356090022403838854763983489499158472837386172305247598672460681098457413148415554794994372344197997642837261970852718499126439079049733844972872496264262083229704734391618326072536142950191607827219179425357918195985025262171086878290897525723154829187937906488963995254858678758733281968900499237509124153035782093628106543805363705018263685467648563888881965690801540824670447965319242287560307346966823387238045806876186739097435602710270192558459225069395448356587591251035040365490023542677797868542085927899487013675102061078269517071056435087046790985347267619924004491211183080852854890232459089471080639587350284291400037403897717813217859625521167616052521470525026936083152884707113852622126704135877886423498859166301737199723154189488266359801585415550084568878332610267228662770882180203384019220388306911689401792863986446100113942203003829394341459836151803627977120873763034929102809056757682430929166694590420375308771456934617561080828895456339950352260982616726866460576511425510501050669842787977414990666501370788227334541785029212349967732523119602103611768888430151118176105017567835129727735364862496772453109608572487433855447712007953071761814098358875660704388988809370229513942100341611440457440278923053676256483047883258282891666885048142671914183676893429957229871497418674900884500253744338964850819311385551668313801612006651626941727147399887169100229129917918030263217644269029407708633536509752191187144201218152122115195564585435911967412146632770625220782966360126921780507849306384765330549829509966466580217255560536687725556759309966934048758796296562992164209861113973447592637054815633741652933753742596388791811733176090646947004455925065657484124090701184827784298148362665325509285461425370852399775589475569935064627543318906080901761434521306263271199262693142536743156185076260525752679582676753965675693783575101648610487496822932647369454311138294685129913996518864914647127349861161420132508779938611413258616813081520722629733557431037741625665581804367980967192038230460985193450662665445674111645597230689480796439321760853592409850101481752601723983081641150400549799129595152636973683112941141670314049165779354882228582796907342784777777997755751645164424259813472046463182115185269305446441182744303932423230596312782988849645541803577687235861061976003073427487169027516367892190144582255177878425656487191118738938029610647803922413418577620592585594852846056941621810992556970236023243247996334964171169432381107451023858662275255700604753742479921126089763624360684332832834871962734865461219570908018856348079968732157369761639174568692574726498148020672406027491250786187867193046106217467710994848303796727910966817812386861277134898443142345176410333084783873083420898291092867348225556847699826859014581359155588295780812749358250507611741527313792621845974824563907948685274392966692263216725763796298362888898002207905831454732828517759890297580504687437756079304340498566911173405039190834930715734648855009702745547288769185049809707329799763132488108484072359874090705222600776439250296273987535018886966316410137379269217490261031393652073904279496732029165043659858579917390881917649252483586923308418116654899680211514496502519140668208082443866293467987384466297253976597199885841486148919694017585459179058602531459002134856772225847266246077871437712320700873239159435491831753012647574283796312808286573953677181038106504955877295987864818331204353195634679684897623324612745582832233696439304597693831774823001544990861002757872759205350367745561342515169729632530399338197344189966004992864703864491142529960547293942074942784962500740706134050135763721202588098928385304360349495183408478686028407889764904614523588675339341898854569829601566125773867396129287069759180293660409599080958282967923510272314668100933025770919801316539416613945843297572837998369090487281428669069081456471375954646831824734136963727079605722237801800123513317949867488295016816613091158673042747317542034120136030195083963204093025806355420081945708426712519154239140532471046075842247413043379568512123797539284576405927765655313534418850390008546983868314901889168526309599829053004078673932161225744179256783184574406086796073667997530307301688575826035879435417768076519563624238624955435559285380502319582720374391590237417582738086252078119370880517797851857051209497044950824832472222175546869554426560727924145892043922515048245492453912717654141739419686470226095482521945643509064472512176069056861287884477596381131591519850583674266107390932972130587945906776943909004099656851198563003356554783874111130488492854359852637901355356535282866436208420244321467859863770915023495914384551035997974852150364803534158559177696035309396753605133586060102983779636666214565398794900737462742376288553438374850575406306266833151577128673664576156768221744966312105700428093775920053493094950851892176698587492982298712348390178448724553380310402982332096026361866327702779233864959981050507340330269171573800823170517286465457983739279546283929973715279940102180213099072318731628533407977295127028730323176386539552683147684190636345362368296778108189296415063036066615008896791287393697064683138661745575009429305891603055108698398509270403403301260432408384032837148147455052179691014727569320294767774006916456255631076895994894938327424320369356492124886969355890612783748450880157279970391028265963864138166767261990794196601446661074504841745049689748577825457491566700647534689494399378137687725852205044838708253542491255578660624684507716740561316294549024418297864057206448125839445494940901855160027171044630962486979329619046207219059348110660638371600601206005874770922138309030764799925635494579542524169431450418207114356350555864655749748967978269452708376917052059976908536474805666829098446189328116883296960212514761993527765053059705220441659141947573637044986558881757095804466421327837154173609350504610999867023144563909831327463386371108809147141201109776326446029367481286480160730292695380519286313187034248334069411985865637026236646041616446954039039768089401068207064144794918544146622805301152581050234913591325006631116616406152964202739005938764062270342676717414616236588290630325161335169594070845003349121661368218695431120760576080144290115238304510730836102373806346500913521987788812261713365233633492319784962528095642221229252939999694044359643316220573988593840850267641324689280537718000850450098699485742098701472897607479178678026246621606965865121620397695247177414751297209016634517261892727808960093349049786701143926042347247785618917783989010879425008006687670983085566367751891000472983124549600831412801559757549888562983932819874427564258635104842791114972876117585257222728801322003068188433672609231851040585380283103811083305188689650820392404465812687908814992412721298593522972315088616115233131926721765587581754637318098544204211045308875946889299073640769073705215612791354149546351868230862026924315149051330972914290891334650368002639894975583883684390714119859405618835343711521313393750100534130723581120163701913870102795075799195920848255676319338593609122413803087422986254658974859368254986573854787731040889270663112496790886238002609515323167987130209611402837428222609717344979987315741049148673540478632008237778028909719458437409734187744919646048339608310945060504372667591451355507366092248928737957245564757305531875324024180321734760789196671630460775720160327334151106172915732326833012742362811164623322646155087493899725515637829527108757540750701694008681158982880352186322271766613300203795420041025810254157793280482913963551522653843500400373209349402942847851415251677913062202467597290376889204196752463100629294218241570657707459491538439852093982683750312385956098007667470407977642647436480661130870193266793463884460204207671813137147863897923068034430465567170089440749596349011075180993485550280631407204692263221388604856843631967058591397731330863885020714264418685390233531405101487237336317198488153330616157055247403608820120323522018099157380067514083431116570012501607194353233733178678661336403305015635088113066988564418452484938300813612307353759891006615721731643302125671175695496365163088425319980810572600074266247150886088837958623997777295076434788145162464083284860197606751069801770909088296433566850040265877206277125403032738661497191691467517884669844275527306944027789187149334633139306797670107512033531114503739028651009689304614178919891083672662820720441512994892601964860871611440480077047374219447895987906950898804397547697946383648629458107496458339393311587855765678240717677204170019772889467639823922842978750262190344464207243900399501070080926052350744385335607915802972187270772595461130814508868209637959407044116016159905026271018272608068765958044330020684376491622119773520834991231766231807451241365046884096264273744462841878223431869539872099877539063560104863134689454952816301415133422914383511924385259784190433987620732074227954677824134967296509914793800085871181159346651635984625385006914716502124301741547114189558253056991777488187439925637354296775445441292350661317774253368112796597356920571447761143241987314957220123832138277574506672855351475073078510498084359940544026812519151206223597946202784945267296869591516045194437985538802308514137938387099688705027572512419973487452241925689847409521990876308033921007860647781400881462092039231144779138518619178343074788850087668387486586671492467442931888366110145747873631389571719798499661667257244128100946752103565886202990099083828763645475260407827433978469532829823941829903354926819514112266055392384052305112709638096906836836348598717300306334640393740529873050618574062528603090715060622417253277747181083105614162968551394613032528154590715723914553533291627168257268984427156833185163476657241972932225011726812373810772223459157425086823947543669007344347419352519797270154769933707197700234569121780095411391965645899334736638293520639546140716095636277401202010390097389268148167229313954628737576710788053834162536548439265911507070605944541171963040405393860178569379644312369815862169341664684089469529879082644353169032387914070265089028564561786565534788931465948341342748541888935650061508935200870408405273303377625274639587171895569242476805954154425072066668679359358294590268273940388307042507743034529040904608191328795662466912047281441793028398066187543336724854595391854071422743612477336330251503755120333731177955858640684358449991256514221645822164502333213456927049834328547753133335054372500579734249602588067462347170282128775719064291967338926080862356227668425744421043491846209856307293776388535857269286925658669559441100884068250958801809203039212744312056221271713101319544267782238354634437663375136912130862156543238176407408171142367058798960939431330793456337327555310938777030527285155319771929623292779904162324717884983355500515903246149823884599982904720952456749291117275664139728466953146985348618187630414262293547468863553849567910641459372449389719435841569173336264791798288855771674723587158340624327882511880723976230446632648252213485815682919702177402375568446061417354211650282971111140108956447669307808283693330072586970210081106768004866877182379779753729202685696815992588953464254921971225924882983819797775241236333544640769175129651031237552069228327841125882231641350120346319825102346381309350893397366586986542903347746113856498655517411018828760929813955425344979715727012704125634157901260987756979380252351060575237000044950137507730998289211409931539169580647829580164856381954716979545692373635107418974559142716059162207573817643651983139386116022809759527832614729016684259482662349321793535945298585521269190874099518120342939515845776523686887796591670727464855693189610740339439168351246606693559423992735842973763955509688497006208454274926705857190998570405346779818016126403403317719001256838214602560123493346155110756352310106993679909329881807321040178800465343873326757481986762766355418176088819612613507682785392348332574961693787093835129965825819927514332326863569243159091083735518094787544758744224649489953351744943336880442428040951523485032408942919897679877222596234697536758812950201074619721006861810060068009217378977207629941780600492406809058778680238112502692106287451711474910802676442478036191051182439243190228419104146307994788691636432657794273983107922025463878228426062406795086088101351913161461966199656862381951002503760957924995612744087532475848741841199221602184042634965736193875720272449363149709803631625055063936858234566813822776771275217874153331656992850656142161886123327408007892606079765390048252284205248751553282306080743078452774834348793100184290227508330810167289713914930972478748478565256305709819454220178561373979369730545546226303174400582115685160039255341767720659051253004607404090439170208898784228642448605320435759204739621318769448424988303819879689804088407611853674531121748822465953399248625971071816419945546926712561617932933705154072398069982126868804152573122822986204567322290908099713999590556145613608062917647165126221450324949491796347394714446326839140933800125798160666803133239471298814517179747259815049429342373431833402982922843532137569809962646569357832376177178744656114557880567830625143657253255532430217993072361192281983097712719885172737977572120300120100648192136452400699998154636146496629709395373094949576211290940224739684778355696990142517765539542315511238987707548667547861718091116218830545066924310724075747742992431265419169623537223265208930035924633879356314989775804510165203160288626501060137410358298414337992943301300693050570101465686177475632393770471420712115043036548502589089700639139734890222951008042904660417583288973080169067780333426733944320449174648209023717623972839950200866995724634980404200551874898628624975639766763308008347694358128200825347150606183758564875424265945060643263951536796098232833288905591658081339955075029755403591009959218473722273237501650267938996581296861546455812523181148269146962560889795692450158520010166308254010597899048616542308275342512795432990295036322148283193357094607369640190919114287071615032960405358262984498678595042844350235281558937309863943249458284667603250241531065994926167993369340076120342949299526137840232809221816415590102589170371777176386431722403871799600880818098204437224194164124692522851908914246625520180322345394997803204270741883034002402301569250987208154305087928249799347051434300549818629577160179222664683527642081734015903356684985875714157851562451511354380965609774308588471339463725297412171864848760812335472877131323173260051053313030517397137429794183293053542519240283086073400239901051951088182219186543255291089967444482143783688284829705338277002265638431042255010112268178011339371355547418770702011747449887299400436349568915289281185637085923682376340130720455923459714422691769519223564091779401336576227916776994256387506961976762057995213051503233844008103571256152380572272060528829901622768309897479880425225730709489938180571974316462743005485127906736067635877126206406220545724451951374769369015539347448907321069565914450817178950628464033990966649644055732530387163770351700688104525242441817408008194525081148602901338219470904051842326485381207245874423273939585995513033036311765273536548057342417369311969691959906482361220270083738582301164380858637102153862520499270359971236190498410607664240437381218625588704130216671191305197478711026516787283143566698841866336846585122428275699972819955728117358547633449720182398039250592914238727696750011254714619657171459701064112466545047106403738012746506499479778534538372072439133733135106528462549490182892019431325864680395494170713649595737146246921768107956615643968097694869021883324027458305307307432269728933236243984022608333295417954212204050919797235011458993320524754919099541771842164864111835535148050939441406929339684959481411799552352163925362742900030325221618016282271408177458659870053476110944430594426045437457858641067304042197257497539936749827620673846027131301159173329598631591773974236303104309531122421822307690049191619757612628049139169066240341948247339325862256153493810927001540602475147418118811989230912597184310257198446630546607552158914825933417516100221565913674597680675212842854638925897689842347200327744244120192835096427966977705317839257753382296728604795421009561761378771094374583797304086799101135417417555416112127686184088197493368402862702343787962735263230583620141469247875946965216101210140332556362504954078774778483903286313306035857826228688467616118916303383574232294848945123688804676654298693032227453455607223797150970100716530124069361466938098461064928225328262620253358426477482555821359539833403778231762043673943062487735633901264835302194178665406468881050886615259218735549326720169211885574552593616146269809903559634601165486065917389305354046581617205196721870263994861448228041484015660395097394497342914272658137973870923929766936695703037848665070210934042155235285358751069109561917596223151153047016479825593530238550159008405249264672597148256719511454577546430250221027810004237759284754855120509379661814048482887748094433736067319867346752425613627279683386239210439578210935992126575593500805259632259968973584352616515928322522512823613303035588113729235748288971430361074947830359219552719389119537008950294292269459073721959542447306528120149659011529828172337439708134250425742473361728433915345499037265170090461592031126328002602046753200718871711380081979657513228602011981652051176138948210551025192018476200356236878278982351592418292970193663110525300445074122294785132354451535660943949745902427129774009746772190453160996249998605836738870346599795116958431426051602266449942818692504363350723662628683093684096343563515199475801335795002980553182647331277281567875677057532998877036457617197329009744794199518847249475891185424442978928595070632863597925728239669345725428169988499367136252682729299197581450490455849879806171189571013768619230469366789471406247820600827871082340664473451194213155660690588762840262789614354411981587979903313421094244949369779566080391964683600069549092274453547747172846269662674722880862663710118055542570838038364783958845179351536600018743643413740131977148823734546853279648397580649985917908729153764055859750951664618761782993854856412795593092315936274861098247848241503134264637749104299669591197332289495662951591852231886482911932733004032186776443203544813281259277254944314480698224104645059171406228221955134220539473772011777649208043295044840660449425990334292453772987410425596765039381620241402784441149367867355708211973425607371721163673460559258525428859370670760473567273222699381222732049072631487481077299873704125916909259467784476108041968879523328000541215320738445464884937343669134223773639688554249618010789811008611889539742748840098475996418893990890194965417558813815194648598817836938136939991339181919654681511101451247071954406824266440202111778304325424545471617394254549239769032875940753477315450155404094444815071299622367624191994893060757064811250761067217520680020953580349437051914860965246604439019484627103627003677361003505643559455075623666555452778484166832628844985238153955621859964823501979882888532907943489672045474779563646394616748373271639428476720778115045552740012803789128118403631437363573171669044120374661919234036303111307486884008311042142986848293400275574473372285998395898208662274959115406674444966254962196732988552554116958953073393230680357646441683355754122205236308735133020194859129930066204193130887485981942159656536791684719818850548474886302157727378128990433083611509676363489777798032801965289295062636290629096029131495758931332067744372941737477422945665061220425415314177216390779279453034372301081999632656035144010213722753371939222856448220070563642027622841431147964777749162870544455507096169589668043638063497939699561844034768510822833267035810904754455106537301154837932978343813420860751538052837061919301909623391598897555289504701025880278378526034945844829369051688842499769763782097699677597942906335101238714220293309375459017084617548250604359139607987922759881786696668057623800559193424707305767788271777176788091347979490363795250660146230566182813480506643854864596749460811533183895134654347511321556742491189986626184138031907677219831691098411786385530409481296552503486110038109678623814430754172954194157318753095963180285399375803797972795732103370928567882779162091635590272300851479406748185782906472854518638131156005366594798022379396892033707376168712549496501264636091905355597876371603436785553049673807920054388459343885684229400864913526716793913634339494149650544650953505209704215015456212829633234341353709965087866435980995111811239041887450616152309767982973806600904869947926627832447954883405221398661754405750264555761098711552284139620618676315300024409858989912650324682838106259641795125726628596954657381914405076752343138331319815793260050062199601735092923046474036542418943788583696653870539498226141182148058270162926650387978182147348295634877048842083617004727278071756682321446505843265796843609973288911484287954216263967690657029592648842448835892056236557110037255235273485432923038947083022089522797134699432912717718775983589427704323615766595085618669650211425267962890308044065108429417496203207885879170353122311590550706695691109130293418677811458123891240823677628821111783809162015540931691613992170325276509710022564863488612747228735411597986428359349657695518156931451964279821827331620066043967353878422702825891033207965582272284265334706824003917837869146805163531310832348293748743489968647558292322222763957044377504512566822119768842290298107674823801318357063658879146885188176073544348391865970603640848206960317317594200328600848166469152694011526038160337534708381224533378704007690287843671036087000375358592295057538413510575687442021512021804899492180231567627161363895603680490341230550930359210846378935695539051577571892350693392788951635387652008249250332595262999412936765083468173041225608960386965912418023423206119861454822552574451087720632951681260365878901358072248420726365959224780208646972574562615324289216222731249802604970018011071107314711344815213805344227317532585855144960581072934265404316266828947671212158827934143925027633863683243479006300081632362717533130245380293973846833789906213002886227978247419458859142212904648650155097115103634324741277396732101982435205563303754857547134579865462012385339639672414679164178565659816293364965394575251215720873360368922533984082381543910550898947398435502777653489826950821480009827767121186214583912145360617772353197630762973502329561160074459723664530165707113868258716527675321310944436139389353335213516444720840937140492157003379860144619221489415908131486220697878679307531798963961246218926269352962918165883024781824661886467892881108761749480437573716357130804234444128071583094533795241937072147515966842132904675950612427683273186952302961048268475621827515442226007276556064005886296021839288133935209354251578006241177243142499631538527519907266979409137375987236281222648194673364721750662711980493585924783868988550966716641780653528448212496833775571636139702917299244876890562305972567164557506715983225944408988179344084542654565432307926231138023288975618258776540142522004500811374441617862871057533815501098566550144975707451981292997230222542505110306260026523571962139752476867960219426878612804014417943439340101695288362242660403742765452444192607506158444882567753500728730506141215196820691780512065784221934294853074944325151817156606206716712421137574259144903837397896841797652309200397840174184700819020590583179200373034699578526687392815658151300923733652886813479568102033819422069707225244627655333630338166183780562570405973807546210288582069573580785149102308078162812246957653203800836451897448704092217802986231985646714930650293455577379074857089907109258311049858041004584036254784007104247026658656745322553509243487665634603377852629830968341343253406166241135510448433789892087420507054303691339808238503860928329293045843321934050913553034556299727289270498716544978062458815649119541313836248155184946982868825539990634590549469802615816263706281873460027452700083682823728351436700370382975738893449696353499644763422023819919058915015107861269706216633147191822126995675357888729920127060335265915877034241622512912825361542355884413627797985262975058706057569983379506611389446855737269859890479863991174856370989996621035739636871384204725532212438743353492696311114015966032932133254800193429888676025772699056278517148520924315358427174741808274214184777368674862366270213670689505115563784577679832677927052510798875134622005689079542972390271999505258607620585595596166452577758532355499564836580438101605897504259137748626028191827836342841852812293594317669239432245848669868835176051113992905877178007375353487588138488787307697167964731669322466314729920000344897280426332573353225879921555776598069515091501415392969456478965120025047173188777215983179087821112612271557816656834602774888989765461663306311428796584097285188869659947523062080780200785367975354112390129966832384161645841118104343908937032692140630786229184536122749286738117533987526879860452191900719927645081344745899773316525725709590242740896445389149931074721889614974257575075083594758832411661235802313344214245576850931656424056135300971236208000273265183990693431097371596626309140971503186931895869520652026045106331681821558596561308364932175337516833628379652265125181052929316157456359071755650771957527931318053001991343358623533498162312523212721387295658224362366864215496648749503018932268581176813025127502211358502469050759905080809015728580260134692608638026166416390155124494455799864550713874624233137596321317017405043105336906070307037742210159840260432516672859924487829975739545519120433084317333376237498626191998404944724712543913564288871053500990162480172758903887506133542715763136548084685077239674473442483380221505822797803516098766186692281611128265036635877190039489030556824843822869281716058354322936476585106619864732801614709781822695726485517918763258408708936538893887910729774738487554350369578391372880497860508516107562247069422579385746426589114650029794311941752071090902767862259876162571481457440383688240092034652503022833111620914917251907154638918923272482766212978038180566830958251691921752201816865704392585601671644145667648824878312107000752367241051392659388591548573289135503144312762859924588984076719145527477059291569410719689034789633160874217196345935313131661965630272529234538436002949209499861481920179309526364312798247339050737334540885162549269133275843052647130734658029078450263078709453493140139636936941026087384215180533195955604715738004669310101528884552547078239071928154482819858627355273344005062472848091610828135678049121173857016230448902195024688435893121891240658104918232253565129153583847369364950847254652565378316470920334463999272855753642106314674349784492038938610852368107272915313689141086589220425390046745427271249995433058720452301114892183809376247073446892861819916261894247993591053170399461911560359139070009076985554095039930161651239655098417709640678758367842254356782606386905793368450581919563926398159072957397509238981692841177018545533214606577307789259382848198034511611836307320398110309985547891760791371747271500545708742856992407154613887168852849841118406902265859970033159550914120687541064293872478708289495400812279578816803408201752078709179374522738112308903003705118503447572827012370026776694120551429189998567820119763623538909293671815862823727858754213972953822558222075797941597541740269307042705477762919192688815617414075833788840150513329591049885600207423507938765593881632764229922441325491329308769867004429724913523638458382708402362724726321762229779153021795843404068392939885689726563575537788779555749894766945332681548897466374766708567520879451020821107322945987525953726683956940961748613538873136951846332376264063533875777017995623383105556190508291151318156795314743954945365170258420352150037242716720043960065803911945337768123006596861283409289091588706970591394612283022057675310399226296640374466312022181729521936451914064184995913103549318037817416622809105109098742691604788502049393385654307949429000962888595693835861592505151232901456789251135825560330833237928968633146745453017110731747840727340161969845964330397586391501319846134640307824420270546696174464389236517874540556101365527558390114353658911802735521885730518713036362852749627439033305397301340214874322356241431075446067911144729440745955123598139865857735374475974104038276292073895370731629418229393503551669362486961126210634523981176389380354640813595583389771723413871954138475876376446217329770645134533855890691685895987082514203708660832895300937742825559859030409400407649087874845393556178828107005045843074576489445079245612789504901606071982164744059424017034734837542231681832856390481471079208518254532384173715551701116929959909430419843226876502294638004418164205036551313347452075730117758362587372960437180862981624046294090250167392378914164867881021863109651470022710966639083605076585311140351384053329276491515925430986318571525962229367817291994899600527222499285001600067146939624780483614782258201335370591463076858616238754868072629981235609282287338571344817414151601301981307200831525230651953768081301146781887697677909695144510436870714015162684969820642529641730288301983066049938890188091400363937531211514402868763748386714189278079046914787659072495232086335281855048536880642761673863659967878323382408772741998360652117762741796820163740712216033639597430020333760393288105740938697754080633818987730335457629041682732670470129266496162126261875584482692138765612667416709892458245846986435278829553093797795580670359903233818008523501436662763780902840614662226342620445324167667184183922669630018635987651037924087343678032372021067438406275571033988836669829783332835594217317765445471833940262490144077771780674417723141110753832511553349084101128872021182213480318860566915549612235834662774689109061043076441516943307850852930035090074674248799363769026151916949403227518417602610281683302698779154679188654657626232941293708832988078015554813160014717825021918429304141546727311310006405652682247146823332580709037617688094469138121903148901995036024444095210880204218128653643741079280818625092662454857061089313396770298857288646679657657641644663428354684367351280672585858628638435448455393381853947019304383025864121942594101723684751680565835361287111884684632142605849226992145105257372879237175833360931560730739601698764887687868165865836950259525827360619465254817043299839628698356909201170971170600219060075343134708066430469423499653890034896388826101121164529838339057769451614248167630502853847791106862014272408643541798669328934617077354242796219502346075124031507741267745892615997803474580446263494291670972349538853308905601852672174587060787259817988240423037403609523657587465293325135580130962055669650663514715486077250812780296450816299475917082810596904515322517905004023428436022287422718674453547894266951991870047110340694567865469761828301611607654759438738052071788955689603047700432656682153581570919802989137228862770417293120583473573090636149284801218846975787924839030202065093776132088896421976556468683144854247168801621576875192922475701264543928668293995099450334106548002713106333918870627789891678942146854928154689048224475850374371383089340719005346545266635136295607375278080736440060064663814519957802146585572021249909955005112892189083268386248692760279083306226246700032816983911338380590707540275758794079145169766005795908016183668305875502061066730840767879279527462034818823964551306523699645226691028835495597018524585784497270654085300330724130449532194835738328937466654154355614558753744612758810464121990067308048838352470965964335582564232939063630780519694173974810124096656379465074093102658770558339553529482337564518190022441850348391386347644092976407281502353716875503270882694661194137444996645438029921094014178238563225164059526577366814621558539147882406462003289106489815865655435797423812791179921108926112289762849059556296073069208777802436623476312116272812739889372244047011282830500416851032453145071616806945691596631919872481080246800133022786705083220945842462019503797498981456611577705750047343474663190987580228967398171682168882685398603265044199990292982688777614793794778071761438467680870540200077665462209386234761199096027493478960778927462847676556694412128673542005976937194835787393708603762642614990511729869182297824764131932623620220386957493977688258372340626178934676293712727821130809038655720722981757103106001432945964051432617950178237795864585657507926485560692236194157009010866940698176031411129252760263245408820459447245641935224284248653221390714611042332039098368543450265780314944824466336491800381078858896698878463039439681963869295347501096270892755939429932334704105075513649259306838945353339430701926100727281112617341492096887123110068217575864103231664861336220296982737306778411591299233373507594202333845501214534618321734834177819553955259454149573556491181617897568294195792941107714725442207331424014941525190918944390517738597238121389169081031264362518528363735307107268692582923532437995408716549249188220776357677939765578301991069971609978327094293231335396525876318752257138943584591803867649321079988202634784445360305143329169727920939776213146852087314080485334740529395603644802753113438663494417898095903991771028692783488805224100746533327845703195575228100534687100111658614588151461339475046363533472642483886271916865132586342772907611703010545944586555992248521495229677502045262016808499762094529016380967323433052313719635681339138299248329098127659769110947747603170189111711606166134138999292263361259338256559183084633158650342756320206815373757032442063144114158020508986573346037760850298776529205462551482333659088581631009759969419368360766156894793936606306377861271077851214752844084314736125929995041551366615860281149644737279868383631642643693503987688626631927537485292902119166516849407857027073910978065879680543567223269549359744141534483773946689595577404419549678907819030497479238928804840076273208901207834506811160400699048252923744867438675071544085789994213075242378103982449413192104165715320273460945957481779066344144735284615668317040942142458196056848043353646981504924711746037776655582042001610738900697704779499322847232369733980022618063254183598637120440403023087223549449033011624655317048436124209418074977460437972709950652992612713120097918220840162182180539668170829441962766053219195172190911339831801087407560504208846410106022901067344625449318398502243881217754181909776007928544575522927866932585794978479934008769818994095896206193170869201805221393467181635062190867708244189779628520142775404024580976570875880563307397985128219014850657321827464075301077022325416822388638109056329557236381623824654622367643098333100806283581799313546580423697620103637134081356201092796708783171519925495393625987086547779256599207353851210730689117828570096543437668613524757416576887672541534343874560085460419433565072741536197343026767905577395100750620401644274633317599292115942524588659638804876426238023824951809124996124540539473740298009391714332783239845165102307006894175564907634306291301433792387747487698675698843881878340037737198427958840676598587557036430597934458791474155327495662192804206860992385433070387337099682121539795733852338228718844444264201908793286845462397693495011711176884394328730270101391357662219015660783169277261853547509504325428672170229585302831352983054702468576921310504654004437144234388697868307264579543255809800405799589537025689815219026523684263179528211566733465652476201941097371740712104519683761572973185549338174453877288695147476761813773992964165526278685945230826300522768688323852212225459360445080315765996959984842043957248185936300187615602872953247718418695635157745905455730399245243926157773032617910425174737674145389247532565651243277237718033610303179888372023609134990403376348526595875348248543478553158603106203224920706819391090896261972850910572242362086025925293489869716122923925019547707397078222640600896448189544789486677875562249782454718262880808299429116949906455072683655858503858942151007032130347118398743607256477322455739688831738918034679540501525539571792415118489516218014881557692858484809484864019894255767423834602314980422888709918680960804545768543127999968917847658138770619276915410994670174777081203872004497564135360439615265968348298195320977976493004691257553126815950444995192383640613031774837959187484769526863204634571795483619837466288995286482314545350953275732352571074957618775876812276219134209957493523343152292646309756229256338742025445287414477195731888484115873651785762650709033955272152417371783143776092303873575873807763655985434762058780314028343977938114167591552064313146898672837409415450786189435610798213023145993564921432305382229531107199512584212471696684905234934117389322542469883495669428103314256142423312958138452717784998497528087360882665389205705626778667952900812209270214700685660143849911764041901667644716647206461822662004186326891564144747061697063094075550159227852833697111758485706478362055027607415512603012765420952783403870711156151317810483658398376854394708659341472829313939425358398598502420422086622814980376067743504121931205156296216349962977189763173860465108513418407290221292138925499491118724686418037786302203923154449440646955455813446374648090545242660576388616058316568071414193881073256955788970876315995009472939359401527785775666571884538172694700918165469795835361708482852808110789620334000591372518964155863912356176457522887371598935134021780717332442065455901928940647824740670216520659308604038564251598073720682717424706851937641214534038434518922195233445486177199223440095391487857386484565412973010467868167348874963705914551538484090304674768085185174194602095348394100747437822583871839279544955071365047174513984281158627541745157819123766628920349164425043696096821342590483361493504337645482497528038319852292171116564176009328481473675337117775042572129981794568034033287700049652956000153656785699829582501113515805664878229476288114132831673331945869437073033077120677569801971881231433410934172956612578465239444079227604658509651272079959331950297517100502790205239592448531643040905340280949193417261791675292067646104447790430371083087067618870257701686129205506966771528471446723375697773221916903310583287591916000611515552805504601259412781096285174025874254243746696587064657925875129814278665479951342995282978554491091898896180224616680792356951302555839706144066565678873266375607898816743620777845365290141976361829754353525506763098138071176325799894610561902548688769069744858394857154869006878266698183949645991046928412401509513593291549054203532118441106438387017837770821872095427868527541223221670468928817732194547662953783299827373090314740871133884152270465963063432723356487559592492685737112406394156923360963322205698373728671064975376908273381383804558207125861228751266582690863285018511678885721139478005649211418473798929808305658007369399489763448562726350130853047313276722454527706931566524807383679064832047402070504283795718545169923149090877538413543152333294287085136811718322466011689206556899272565499810889630491465099853390106717561065738510710447101888310318236306819287153982430431707436345258939027129449250332908655021594881124704051700699942445328658292254164100280349920048723269915751938946278171188257675952442593418122402460639136027766684178877589526999747642492309375672933024352421274489403120826619274633493754151725898152858495621816133221635083314050157499935361645519271169920540911181876584818482038753382218785822111680401124173503132809370952098748570016892674774263233964575571387169251388584231333986370937187321281851174820878578638394180537643576299378512396722597188480678664842771917581369780533696660932935598705289250497658403524479054144870715044458494498554080617480727694417709437371186149969881947689527094705973000000124585826375164964199484229490826528534674652723805164526277058616559183543862941470034487467386653297999689995962854603602894206011547144326796242091066922443203524498460930447575709792989888012561220042201839209842291444659059809463203582982376766912209460826384855995145879332335180165559798055694934956648963652777848032069165411099741841153391528781085121971923220423692872425085721320900552272920301820902415500704318807016704201911908616530659164091916659457432614026099331155160516926656455945110093065921662537047561488618443112125825593859772622920399979898943273357845470500288709934750890796110838601579082936072530682023258357747605372413358437746572031139653083813370793020572402703602792115926735452828260153718099170173037916560835898927988929592336916889496954786981219478171317375259366328894568386721030235400107337813731762631987906062981598254704199449036918125113135526941811331258730413578695140524362853012154047182045739433108564806731559306788454788758691848160961787418306481283341283792926193630601865917985098875677871411243497561126116726951135858752736224962750844044926226497585792295798656648319260986731991767298643342300948737701695344320420875236552169440774147436828899701071331539998653574300086823898265854915138450317924282556201037840098407740298317533502127011555985872136318042538737526494595467762933449418091351131843741420209720938466913589022882091770064006299972743137989328738550784959357614450152274387251792346192609083299822189899575443603157530891064667401746975865313824441947149209761114361290051190537981938644412779107747017921474569040477901311249422415570124301042773634881520536823240741608226560637412921555824227811245397435461695345054907154674975851880838054347860083722184327353348580041776032245161486356131291522889246226239227272609673353293096067347064435955426925589875576985177110672357344475682521116869707366695976172771257882854946347526872182389939349890330109992361576322695756511151041482504167240308775163451921471610186416058515762551654392593390796407059001720161961378635758023159134128559788605388164135156978366507672864322596273723568415336241045751655721207754822761116677157426763988019348404146330956476967779648042891053690034348621739376106712818506416378252526699765925554309053839433251883582098820313039329010277144261115852241115719962912991034239718394829562814391610247105436078946333081038836786709403684194048247810673760902777483656411377416343985013667562816770281549224123617558730469110021896358675486064552245238495826771308800943024469896254012830332591756991851554696973028659311976482880813399472567155495189125659297816001278680001170783195307414663896203849121016033505630046726302229620691819092006283027057444764728215262847933369353588849355118045246749654793951739641788990417660244069936441515344403715752233429321606818931293310889968466919690261843954255849116415613799222585929850677125542128199141460929760271631156840800094268609792747166196949544340032240485144222563277930340642120032766954799152542431602032791539770265571133405519198151340673650123620691059909458226719027463427944427020054837483266388502877275444562085578068875609745494551917774026513665056662158404477122320828206966463329108969563937602709668251299802771471073051871718197280631893435905845540304930266963480899670719293873119842124602427414836625045848694625070277498101431442915850118506565553405383609511079613698384332211858928292180182499029083248823769486210638896656154015682436822874830002833544960544636546115151630807823413044769857118415778012849173326541456500412693183266073478461291020997549312788809655323051529018006271347076289562301370332032725161525847447213670581431162388627353092258921584442465109206889199923423139417207534241983024005551185221025454306699681086527042107190486394811380306395353223499479260394681395533001848943495700812538042211094243685925743768169976721276608498236328670939837222414415783410323773051016258523068928744244931896023216865643722839565205317858755905592549937507388148992285826467542469264542108065519292036397995056154720678470934245156368039892065666129176808560360879584623804576750953394274373548666566536480370075943749901181372198353820283892494594505302123089659594911386033429117320609031741363826770469732045058672752311836270677674089221384211969737743059255655038919898342635485200859192866781895377990543014832089618069385351548949338009219266041406204823502128275365425960930281341172917006132317674163966070256342511450386861429843152831196950781303752343143557047002589321157339232483085164525418008427368654170050840620993971297404688992819252517728878563388821135865212078650753889344560772244659854942967139422952370029690719601173578309124534308592719205196157601426966798521759237634434454975381609055717579933124799496820828575653687011751551224125453140133244302084959718247998761933127297430482888544904217280026819947261335260279908743466133525955251938501723401560895052728933964554909994214698165701576589842062358649468415052519127804058556633179702463198775111605014720931753228888311479581268026605572234108871832775847039782251375734203717966083182974935500854794322671503653438422273123975476093907972472915117514802722050547432139339312724808489606670405727745480500944148927798073244602276192548740823526660202253225861583183327914403636255854177458317986670570046519901610379927508166465223991025574109860057098827031694327642199115828740404438560951737622793933395528955895907932030604612166233822202478446876384251428846806115510104695431373895953654447903050129909306118908425853651103444925407988716256783224876040337518879054210711542992174673406599477458331588204562916287831409971339612299883482153413326402058908396480462007725411977642478318360849928868450892845134065650906715088805956624909307892257952784006946893405138947001149353866075521636494065577831830997716414970325946570735677735488143588451544284685959268108046443041886280398272208302963709108318546452749174211904956935791171322343389367152722026607913939749984087148426891565638104122071354146411187969094195819576314139952870016215504768689823137988101969931339995610010941319768330260104940093867436765199718716114713546873806498598972074420204141127781437357576193114464298065364133695887779245955064286135429028460541574419930162090984611210178767974560481757711407462979591496909960415997491284879205374072077513924897072861593175402392917682230607328749244208796633491494374337001197089278516442916795236917269826104021705764376895463326514651240458458942900818247875558396089881540952295444477899172648374282499306229256642243995619337261154435825723160691880917847904752646985676703296111569012020754044773112311111395152624043474318271566654368614055370194706788842243625441927639311384670639520887602486943135414414950257940697711465735398569978927886490100216928310318174454649835038888421641350670964308319938928191602439282345276678099130958064463089910823391013399298529542697236626898067843137314470578473621545241886946402690471703860980266165309976871698701289147290722320419804603786758104450919567297599328599715039593863947849625641678365542293154502259037259599534953867295315625681033520945820126265614025853568058558854193065018907075512069778274062894031858422198264757843288691020848261881276589528103780215276898478275171955036624341778218541446785365782470885040616671053493434873220769685686522138629443862332639614815994947273646561917915747305078044334282200978740775670678544481908450226431840916199457857966908425725373940823924553670471075731376478590863172962747479852805055914540852479817928890158553072818648247470283299139407974899402203695060545451448091965575201498360863941608973674481466417828568192526097508993704156247528566742734509446949584065733566069749173992364091177641370011936230699389473595142366856925895733436467475071901709154281967490689119046251184536051214409054981386472423455536109362284288399698001016072245976675066401993147950651786985214723631489839420842898313934950588974899457544772648184813873436328687440302913466732591521976568848567374292025173958617665729676685829214999202586192024077905143745334463124363949252855919272360837921919754404748337482264938255287349593115444101534247706304491632735009799297589063887951190221083597141772374038721556618074315543337128564400146198268535472901802036179223269956088629433530890682146454504686858957962108147523077116821421164688162266649538739154421337244625938175486085451284495135569616491605601510164188709397517130013943471510569838163126979215303517334444955591569357778397872668567452802701926986001714036460500186890192072285774169275430829270017672051108005341391168551336019092215647237361453481077421769462329761838434535384606749394672487599850035527896009953508323577328676878820166695287541580179853145412688300683571737754904903938417701954973245254394637626610771100801667047270429029627510904932725672160244187001728994931716156574983875873593350710090586365072446938276312028638043013917292282643837841735552681884053167240021148055889808742533660810394638070060220277914337184451944335411234870578704845149058158862506576468826982914451598583960274791840485470603533151645550153238261368540584946600335759947766779943461580737459871859251156782357271970625994256926012317551468147242886796698824182341506286934873048923100111190420980245816879480124772018899502941358906135743740885862504821818414653281645318631054329427257067578051193402547066299125680048912651578453747669874172074573706908078358297458549318246497129950386841631149232594530086835390774888344446606657122911249934142307905546397253336583956687089172241369180169211412892723915060812257738744834713913500789643160661161562945307262503026368846951299511656363999492037668053595210211040422906980718976575832461413866874257679043769588255395351524014349851679590099842350530747094193988985535869155307723976973934395026667571123147874425954987769558266240815897882808892151166291043061441294020310164362619448354094412215495494591908288840439503492960516023458754758206311224813491071858787710415412360204426792274107250534496109596412276874906836568337721509602693496332006510885107313924233933916091311486878676833029680639833686086437784650273437156711292005371137611139729143791306353966094009924660045553642435096850983285836263690871815487471626046820030390288052915563669124637641536405464516879543362454944532101180242842154838667352807685816660639906502192806298394644607774982316061680497452250803662281457821249834571674519357684976381360091849177307604687390156867035774678129140302127399383056317667441558574409206778033348307203058098018646996508951301460401732457145245129263134015719095098915622158137589281913975820358371631307538625371956047946339199991581727952522446738110548246497527708001851680011023513948387469901160518564434883150832801530116730236839820496019668210193068610383256774941783834200376779758541430239481033596423392393378521124070599747315972421294244654220311657575868172475830153597504768605621845003546057276028904727725172715293660300530215068070091777542500775572195047996235283505014090593994047744512721139346251468544055229712507897351092409393203497201610610980612742666751071497696273611884201532877240285050908328479827448968658965521912277449074055768482071136285273844148134731764091100107106118538944484502706093956086065570419744952172307442608395903762245963653690320463123262190123804825083141236513909292263799949752632823853782450291898540269871532323885774244697429726760478217537756164608728516380644412138185740321757112316436296492885163528437714158729361238705466843709033228378426205687760733999293331700456754176415613979102320162577648179789040384943603405887202769389168683821880020490614840261750518231223547753657455382265599550516115678158578845866815694813692289048232423564562510635059141930980974892344574083289101311491928528751725348722153970077999520544717147926994008546027976166469662616387699138402247483360798141327951747807705564851811966752043748613131741107100558969765163089220241634172272963853513200325292762210079163287091726034317855095924634379876277101166505026913755844021040621086022205013238697460085597953872853106327590617124357716665776279437589582719134971949556901072145014060677944187313156795655732187688065305110209252710091364724853747342409336997273620291162066747454684034226602908641970941953752181435434109970693198914809503320134326331297766654590499020697994543043587470103171454780070365879695471456780545031159980753704072988061173205880054710706000518899524403060341079169220201441219995536662215732761184797608611115740900336623277074665942634030490053188479069955344025714845875458789164776474296131668584328020484985050942600353340859261923921871208125144119009458931096174932887401053369424419324424029248631525402637690184792418528821711235781747353984760543727659720122197751497534714148104179936735758116432243414629119913578966237091339626424973924834593869997259504773749580520373422275849472746550496639881877739900931618670993914101667176087080119224811665330809473705102702894867765995280352248292055908395475058531962261174459154507074051455581956463374003111876518565129606227968618730255804136817095342684566716610054096532569839297372523063064202982029634224582942318316847759585430641360391926960967208781114577133654875924710561842944617437555204897800130540008757874005593729780295172243733650964870555299592610049874361610253722947567772884056552311501226565177777981251629416489459200450143511132476330933989603101826328587447053217742510113180568401499836600538309954962136792771977579788621101462662663800091314828320791077036553511382110771351552762533080907622352791036042819806506657752628333201218186830301247122454543280572009316104609055164602719440505173526734582325089566607842070128948007259079082023165621111545923490464315803679305090674117083469647451072744490800592392990777733794395197749509091416198854638389809116955294828068103958024647216877353422027021860468937188264200778308937670499885395674438284608504746499324324158348799631970926630781605808092916710891075886801425419325705285315064281569484646342369343199632627030853638628296334646973553249672961157637467877773060994197514419398237099334042579308860420461197397869958713971275437280329962143521900137795276574002461282293201470146310815095571843878105510091343843407986224519905896276527831851240704753699494292134423305359973399018707990781978334698490796655472756473657151250590301856558324244024184007149991497934650099067431134723626662889257149322628635484093120316545613280923317308641355277804218015952180876926125753430289622944804235193629596542065581021001478406030525841253022007982790095158099660549440093879202895099879641526160264188233983788702328778151005459217600560728410072526614152201628928714109825968661127899811497272607925330268273123340665330048980400001087503814723213235562060111442451718723025716666876684334959508398094587160244922145719581044229869174033414049468027118677135069491932538643960920314169176248831345382288610385322983207940021769044197648650939147353240337083082404027254295614088235922589069084377494835439225730237547634898938209256422955475409700639072709499080151592228713658448530616447172119880413726147069578519241270566224855747640063388752461936891510758303095044473421731704861085747363208182651926010498110208110080623637777212508219095369248941551284766002523058354938457477557718169339253788696209360779449095057364162797633416344965736708089517345939117773470601153260289211305768528268170414772780088669985427504455708489981778849053930483972776034729949786584844246982455244828061409174925936778072568659118728855336781876897386426356112558210343754600722324041041826410423349332897336944431561794511177710836814943335308460069145451783270462630280312059077706461290784476915635116658541356617088749098755016261076315057436669990612281084528361610803531725338336784751548902753012055944601232659415510774201161201897013864495889317997747722901794886311395796263595306518176282020121269786760578934940560602404207914978702252106661571464703398747384191388758016336097645524386960409211077035834309648547456941257408362470103929111339114886728821809572534519823503973608278639590310896328727153500470765568439513406182221896220021236846199050830860697713995041175928181663018756601348818315201946636552177050178100832809678740061518107565347184871777918704526138070826673059908925471247160842963779187295763964658969520771489374244731777773246267178843039461802593222830795660349849360584175251220386149462435899300741427132671764115556026829614379851887217410508361814760290342164441308682290759941592599053542091681541938541508823333280898247821803779114564451538857496803305150093473479833405930503593746367751623566798304032536659256760636293609606173277687495145394452130654171308467136292931541030862616115715306068343266850579595530265117541056342844327229161189991528246793950210214536262640140222932718873564785352317780416323182062011149682984285016686358886159893945804916511178382678791055039203472462189677955923662239716545126793979236750287672189602783133488178888296697706716368094376071248336531834495365326278816827837951445785481640809358722971635625609263372501906959363324803114012801560847306999028482520201717456592852213469698993731875874272208483212577257366615044192618110872684388580495803331361554008160149863369541833917238481555596552318826878179519146780442897594397886560912437659438069553328578724899204904935170190383040952321975524491492110155688140400801323665179177568628167310845572208334023644180928825348598460623100053201531393810170073139163372051863318062221553214625444705998912687327970021058231587200642188311109576434600655399546729756013626846233526280859970137182453338057750132815346230180256196761971826546637599185535009661684190475593992290725120090507063372459610248064063863781391813140924966416161077479881567189334463984768191865516268007231563544109884154349158689643334509254492224255264766545184656818696221963903881018335737916558989262226892147248419104734611972197749288299797281026166475249623753977003484397742584357605112942447683889578917120622284885543340410813432048864203300972462381083158266753518624627258801727906528410057089129676512047622227196440040635135464617385491122850358237203126134762452658728600247405987751509520070217977333205583162975382097105472875821083336528217645681904082720682201352314235931402849614427155247955482102370004983892481397740458561146077155992742303647712492713969159937967924121901554652976800086789558485898265948308804181000674532582353114335154488182147397631003356466696249502682721478275854286739279169372717657310484324691174868839278661603213876936601574349520259454334792254948963007587256128419441089212061915949881173203819537220340450398978651018928479254833406139577763499968454821746653837729381826149503814401512907525153416970439704967194967489510279799258232141032353383380218547400089417742492384752568380177146104585167006728541199986281139019941168375151547380140923491432891434200115100023094189322896888686475742745885512385726346574463900028246724271027075653820185286873739617800114291889233510471024083284283354537499667449956528400741621546230004023136814032238775068329226496441950016269266989737569430402754128823026124941761203747957862970934154203331757831528446668134174084719294779550329233058521422232015688124797450559841963398051721048034609505915326539185625342987807681514531400214612463874396963247386233241965540709731864963838660003438792862684550288373403285952539828132859349836360316870701270906030962651410623207027236732038634741462564961189309429964049622941144159334076102569839898851675763936833469794330080494220525946745316933947702444144851432804798700628329642913638286596772383989283475953652782752268452214334924803411779857165197197497122936593201345062653329129984271754935162001761564671084595896295320767839470805806306732822971290929488527272366937281859290857488165849151311330709877982425753263984962460651273973987294441561608082424630662505285970588605443138075573962101090930504429418201976961391961766295745755002888438733983831665377803311929389526461169735030716519329186514881555349562680909872104409942178913708205881235977700688906251312352024681655288038924461884021091618281854141710096580016555270492807452660039306969008941958682592921130709438042374590524395318719278022472554237631688328721519543918276604307058732493773566153995721256943805765489399597758289968515678299304991693937553121155044010706622928832394245993116463986673257928717730809282445236490087622187577402851193617636311055278316446307455480778780929239997211111804248755112809289601550854864784610155484587718945200627982678405833717083377601204025030752290164416449267102710713365024949554622665885979270773424118091171003853149973654575940201290344029391855557036941116097031134020005910547760594446079095687307189633230975693766849802894175424774808963812663827138239361919488405202463642619915005030027854840541694474574123132688755519596101374271961825123445782746092937252120388022272881064425755753640031171223717511743911818497805972922921527212458427395311964878134560604514209908596534996688259769001525283799164927364287533968948527586266283653737799070879781903170221835423165633580198687351037698204594184726113148247025000780166812974290915697638637045467480243544294208629249281826378696913651395963698597754399051086360765910045949361566873627778699695918323666198431280996123748763687650710569118779578536117967484063743323937907941003314971966296805567942532982905466204903752822183159186437192966673376593492209826982871155428439241559758210342842350164938991008382690998686072717026721576380726501928597065430760216213948294614217630725389295970645104390532526515919432778816434925481749321946735803633651159049777821709444242217005021054026726435440219152002857795610698931690723309371080252301315741224791712344330754519846740302416767780714011863004895135855502740968285741073466470373522266245062842436245190451678986474220448602302888602330965293541108067327130006239952083232581250161037190222111149391267338074719035337066964122552833237843625822891505497820179716096275960800878446258863952686453590385171992352523760598626002223475442368941617186746214716835208502278844840505219936174561055151754666515890256247585171890887545940696617079055260889458932906149318930771439703087328156720715555521750047761285173779720343034850155787349343322493070501101579540444940467423953500062108304349311349405589609942930843306724854219230572950743597638550770783143568433945253854203604548762158855321047360020604326734364840496743248113440896238550246310729927851860688200509339960225700816276923836431913147718926573464391168199102660725875703456062360935605162204200011509178449871591113709440085002234494108295948560228376030071553996462387470270659484998305109383966259324398487094229678862824800067060050207887903628603911408005243568124138747304486229926606128992460879392793677313377149168756242972062309799212566451436849538051933344368811117710837112082960145697278027792074158875192429607611150021223311689423325025668881501796847026041543930442015516654571735445226494946899419705073645342151287960133798192119891035822050346580774058471422439853157337548626853372148309238094743648542956315821540561890841719219094375621172072939160927025837432219698770035646358872512467000345688693226101869417854632165593632480879226376847757906443617203992551364274695484404060523209936509385831018534465597559618955636120232227020906638329257378150410436901350130936830564199960410622285414785188709666122717288857813318872691860911222364764961390563207108598588272803081920609738353612735659147088367616649506751225534270636046923449162256649671474804255608183799926908435700530341055244701319532911819715923817572542402241975493872501073891025135878538500027161846622072140686155280696479537421497573586698634298184279543754998615932298739469602656039137579341357015375825603272123052757317662520939666960500554103744725179919940813690940663764436597262880573594013665949105828112140370422299887593137647812057974607317522046777821021439051124061945008093393980015744718051632642130085899970026153677324725331117944923111275694358670515012298901975598720678789724020798851176976488075821829480143754771844592992504433410634160745960913847749651055168448503660458576264590062569628250205267700372507761964387990434860977486889448075643766753488958791727700090171909783916579931318139667575116356706822601155569118274909157927806994758741277543680280237134613158407503491521438531297109487667181006500919876541052191595630260656135914507580721138097364674990696563449784957599998021285539964724621324640720825013340215713541083520648336903449294980525961592599248811707050846354234877504663981733694732792182570963438707427441863090954273976555211172820527108438855719852912521305306519726784967587888442439104625221704104209479277609092487486346717414489864410198434983981223320950265168508486973313987089233493344989972317805814148906880483060414832272858390510391036102244009664840323671175588718488371709292915111476078726573543042269351635209135564942765661107417794625408280809632934505141652132729911474733353268678700398417742895764317447589814936716807608923711743075469034659916535571415344011273060346619874436991364058205611171134896763219280757287643189859475635314737112975580319724411466818791160940728173735598250492118856570486231470666193245400805004004043638672919176217473536222164142118641132347123902407348023071916497465422358236202321486428261542854609172601395801906741667446443979715499628548074998452358897988425650787754731564404403346912742636374564958294785636862561904957623396200750859021261831777369789859579119377596083258024579540126625025547197923601527960871771658553114519005266896587909572868604137201801821104001380754777637233419981930254888855321369324592391675016011458658688836934140723951373550746282731806033493961634815420986710890323152394530233957754141335394844289688344436017074253204663882576594794848024086849056586595460827452438600993878135768380364111433848217387290881183760112121768838135084328367697627475436601804599101226346583758628068717184566302329826126756173314862781889432914025389605097633411080902674939454925388267455608608705772746537043738899747440009389005638980257651907712909705973221668366373659508786893018611953760878156385637384704414850348528264965545583839167788711333508378960681518676848626367059528092452562616125865572993477427957694391870294299996024998815198569981103220135708490727751324316884354965055424525550166536879340712357667726009632748592392070427186330723319842979113609835618086187700873386194550100089361753102017505604796213864169013122474296576133250478976593014682925468180514349329159577082743909439274961630143982508688547034079608398251556858997829285204524480118655565651885846584551508638689655718152056886601138707242730643257834524721362826908985748488198733191251258693608080141644261632739077772050411011771217560182292497974682099482249593680034563354617558434198715474352812647595282884153521276969924998908763810037856632883116121270565191176456035178378300761970028530752053877606618359707165090683554814599864310883049334938670649116005610630948675143718905588971132164922832076651315297747395011524465588232172548757223792370677261097472235485136391409949315456355793858275678540510947441245436695839536002758520854779310845947030713878269990350569124450376268460393627522155387759498070906657211397579467715770343653836044239941297048253449586109496752189633066501711964105132976135983780913807447472015571673816756720918325939905512574666670959908506733473011216853086599996305276558303480227262671164354483504029651316181173333843939970706389842167198271817999473585815667879073059509297058510010405292928330593395749904704704360135815498114244608920448894675482538286094505051280585175530703170452645111145551575578947919876221241230927812872382550295701701928792545069567883000192614861213873807210617790500308202433744799792130549209072802212873854616187685216871894092962513457977427632078817208998768580461300808570358853977733484376132405093289228917083765743647419736852435680482083129156491878612038168170736479893135544440720126692495026345940463961938165637149388646728355104741629760571410679141400085939232609180433855354038674210414493310045175565925923186165317792011017701945763030468827814485622688907266462610272589702258972129472001377004393589793175766403896426926723935636327096748530689396617011400805646290771157819372316487946037683721793544507931381987390600539090118336244084011644493837842690221953136277855736026506409292396806855833195087935369606437631485842671809229593623010207828707847245218139533980877691919391872145843628232506241261953396913897487284369929596603378591140573113624978816275338571226225833344917122187112275849027744823723687309671816904201431928277901629043606264805313232882109206326181777825636177245999535847280426289454169434907619600685338851862671237591300729005893776651187210722028829621790199914400416234212381674206284654917732979767230077682512844787300884281838587299135916398180870047833355638418619473997667441673098200114277715689073471928737243195798729889204267080935710053708631016865055431845620677601113548822328947052237291413137838007936889505677513272432927452818520188245990455381378194721547457430898460169906891119568921147403620938251168367084142325005442372549036799575263899429559651385806310342347483025664721695383253296439556814378378858258352485992211397764567775846856719598026913723873768885648569979089685202308292690503969565194043646460420555333763428569877461790355104649993499812558514724036224643624310991060019393483162353760984034565999472255512006731019354560933433228541754312821174137181743418714755559096337454180772083581889423233812820247478281803561483563382348610599252548179705629812970264637233142181962214651633393323438578498423051071175131830438538377922575178707886439517243769173864322149884741901452309021053756841237670327866569006813327679353720451063120437203944062168886758162428614023542076207799354044140725221354614856703850394941433258046460955720167152613367505896038228939897707276074931722364984975562694713456038025459068177839231717914988257419094882005289223817162030436093178750046483390313617512671635700057843164415515369517903732026481664235537078263383699209612368060579321195825076912608353233815593782145637901127109817093105008574495872431342077935333688601496195932653782287696381858384385238862228782264694456861356393471867912080627114598001127186060456541952622534665776517161612308550303108285360147807500438419996445218025902859575683032494746230270827591571931166431914684665389951164587323413370370859089660152246904673010039685907947617320468561178504952430524260786894995910337877144613401117703006684863941201882132705410911006072257604530020969702482782486577029631410737929187056874818763185889218225386195023473357825358554589164046508160134970523868975991011662109563552107507276536478612414088679570321070733796262219073914188513458194292683012007695264621484066647924711446790655391653267707171843612859658678919095972145696448695940618907979342837283903265114019213291894690637282895823494895271514336827792612206732175814466752182586869911312879348104017929802367033230494513351292651227038432533660000468659370294140968800688740198606300942089618866377003465334870118366723094045799793670357212115992057093772912707882511062198025085237786159826217106993621887243164660674922528260278976558260065082808855737558692901536362747309100230593373090194840887458731247796417444894995243945017129073023945097421779352425280729390530183089257120165967630863615414138819016594050482851100026798910114868913253193541961284471818171424645118187465955006265881986184153278425276607293401680503971614387975048409794016846351333000585664650116333333179119736755175318651875264207464934327631831164600967348562049847007469420773110724273447769645186126924596457658062060084129253589699063500413338501084229411610196769014996500180337077110254148883097494444445328007369014542385271782489606307169712009239717494537277999684218494083406520220894548566394131057627808123734311414355425827125166910306799384693845245004854268996284011036809381788041955436640099342368791756901132658028367538464594023992439227690422207570813609269980593788400544018850803093227092519843121003630038170560985924144671955116226261634829277748221366399517652271062826195520099119307366593037607259585143706848576713543458662945430094370997015605921914370150158700989830668266189216091371783612670248716562095332356370042225605932703841474695763227463495664742654062134218158019518748877133607101501194519580687291428518799130844996193032569525495540609046115553210057203731537009783978618871382125730650342724381266630737595204927823878986969582954524090959420298415862679793559493334452653838794901691289900340751075479740476649820420568614737072489776643833520434147231818797051205097806434977340489390755732088917562206765710503352695884539536381050079685317752237448835087512586112451883110584526504737654380250404442238312901402519447961638942669204864522837474358598102372854128738906760480725132642933021022751753098443423739971549764719955139165619806931859603979172432633380914470937169134157143540377353796834591628689613351274931529006733666461249653423375138824295125259429403973126141872355536294696061049257658624894445252667072535860784628322664003672006404725882916572752465484565985749116907424378199424864011793805950854452811221178774232739280527227996931982625884868822803078524872403707983592980805433983873557552111018386827595272944221652377698920073886547538365430356891532655705097862556529296763036456697444450305723663920923220930626200228176484285317469977892023790386179737567895078549092565160056336139303562561404289638393888888900388776721564701246755853319104362881030340144875181207765417985125997419771191060360112150428477565741211476844868380910087817279811459408221377163536605728763420161660322171805934522827288720031759881559923959973046888705506442344860229660683501553958590946711915982463666492431508678714914114314089605907111741546442221451799941871722718217591780277065165809696019515526001033547143310163675609859377944035927136017158470636197498439918246097575763605543611779837095788035601607055978172676424477321038216714091077545768171252714032337046021544974393701732661500871313163589989576555629727903438050182836319733507191145622234196647551948901095039255157229777524621707469024842434224251146647469877803900323265639083600400754229637446097308193244338211170205177859903377123493096760785324194906553612382844326381538321342190997196421973305177951414223050408745754855017584893027318129629216100707160383996565670127980325498080398386951641617227397531803559385382131959513570835182685382386532851269547101373138116842901412034575667585508925001162358237840422853220812543361734927084798418756167239494059322949725709453966244045245466307725408472113948758533975735953488453391490216759273689159003069662698885003692509050378554311356041789921950842231925950927642373135752733438023217389126192289571358530302925183402891371188932016468437604998398017336556018830263778787857670132610196365931267462264328036247631787411577629842560730184428451933951390897683767729842006308839264409560197053571044944990326161904150807799686915672504185324856738107928952778532878177966179044631854668239424747126436763759032156945897332672495738834807212111604046786073950179412292456678033103092375678253262507811832408605550292731688197856359867353628391819172242870998998905014056315885895835516190253553990786287211145725074461414687576200147439234608831712602253244821218331899767543932314442144431288687456945865624481858777332625096082357707703339410864325468455352234051070038964669691610940872565011640936779478961004744878643654865148852455562273991273776308319273835485906884704289958171927257883322419460994592299809104613871687635098359469670106188107069753856663290182702210666803845279058181618435494492184922013639183232937142021042583386175873311309528374951655503899887009096328276248525972031923349294870612364039294030123278944845549301294391352627194562145708934202025455018951785540836509429945741740109621616356581230800442170365515181028204663535447833744799412490447768401648728287235953555217914288383328478821230705381347048435112206141887634581194080001721377268062730842744587040470971443988438744339918274821720704947382804038525906623781530420686522984277415705477952582206604860182550714744976968466602793562787519947045670720642210279691751504278160443816300237013796172904473513845985563010541241640512783768592099374362874061723031949582498260610103299858568662022208001051012017253719023106067329153287150417653681352551482754336221527090622619112247415618590086713978771639487310529041132892156989350387015609959046318371966417761373797941188794828618125765066539485846824616014890085472300379752204314002632485050493939114203454258242285795785824587609575680692753078234325981442888357570668299890799835372473925400373877012035319479210950165875280012351106259771098215386920229886877735212865924584521276064054721482677596673882004623335423641532520725502972382361340272629623744971056513723694242395561394840832875993989412281263359650549414259181286447411892923594254920504290374614804583479524325439666319077677253081534435303831968173203608174788776977394083915628390956655757866500872113343046005339087277569208095540803221586181626914645713857705344502097844491651816680472028332553084467726093038701387844895229270942649135661011743477024244453015219930695304483890417715463818660619948599788535835264540315498766821523074695543652616127047960579160281731653803326739123389458870663999024722520912312431311822072229133343316518583855508820620162395046052551303315763618586323817308566966543214967223622343764441004846427529652017111760091594532426597825006379995606842176919471145824403493163356927816231158441014419720639016019221645398291861970305286946033298791504293574442267311145205209857532435588838864559201500148222188854138845316818308822022570730132937970072647231357097415502028462149005550898814496992101840567728448399095450792154942136916262020808144203420812997286493463952557969075320865360033682690616264802867510609982886447903636599020058322467573800490294853126733444520217151723068081453162338590078376448820452023548571321726443853005035872748029879320658528846996653324652208810493636690259663545030514502639362703133242172271368359763950028688225230232180849673613331052476388210176936959993266533210448099904178955556507819015635639479386595121795036947012401551692010863868942844422075403805873859615990786000047756676497326818456534448428578349977604719696925976988389926285105624714766792551854945400340574689622110572314373894412748292196466061082004589091605260793433097019550430907617651606506462310298691116867189632174512762525606379641922403073033031740920483691661392094050681365776913627268356164791951977909550740656782662479565254494817436176550356337188143378022742630657474352910183478946661359509949140951599779302387274601220704170571811852415137200095673866452473271098609220202409641638175899548800325203513428097530037214855585652518509142537401700112046578596115932604303801567037920777994019707267409560968782378542522388704382304513084871848414380375558904178858961091576872643052770866530764784541723568671638120994572616323925258812614957415301675876439890627651091277179010987633047599069328891213970983687637559985622443636946997892086142579103026338957734512842697549392622242709744568688828668282855680879977414317432620148697323870133706525427654528969513796223855191410027181394416724405653854786247950054584707150649531108248388118724097419697096484413698374596693132363345368341758716542213278392792239293016658151750413303121265363834590820063166220813535635855010673538431373820549479255807055610865246263043433569020999350051100074592939536552061069615687148142279625358451402448376615134121180052349334434717605964572931634359954357642261009243774425750331750266304818480882870733934650780999115702517173013531193606207710651798438755618143004025580114276980653220237590072260003866006598580719213204799710597243306350137590438472419356247980503722277134156775300422321187882464523386933579072061195520284185955302973137350446407415912602617409218082822861273846997875620922856756850897576604239294831696966765651978007343944782964143053117438150347514460579363496008567407591672133899789876602634279324872721034945369416755140593465991108320097843749260173360416646940475596742167199183241383105419477675300221652303231199404312453034063341186107446632258903996378376162127978294898450678864803629511692565669004017676884289812302750593487696797530176955006025714242210475090781420280000079546238267062475041788707231571112937548512190810570609522018845861321211637607322071612699692264358214898393938884451892148897163649397151368243047095796624775876404371075551578939982101443615547014866372986898133033334208446461909274808113917939301512858713865163928280337491599555225661153449511700262038242712351876858157849921982439320126888992866851479559283360349031662193545695622460335599693660419813877119682195390634419342323387178766400253966564191438369190959408393107163374028260197072393036395169305409514563217280570252786484264315432498524217558738349895558223635384041867632338402826017705832738337274393831604915139820614707888976951704618825843435492775108722876261023875648452335530955723392070968811959609188582515803398880875651767043224757256386537861065119115717522822431603671940675048870250476433017659088902662963545975251254367055777012572351222196479019277385245795380604811041872255652397944975303951262992987954583729603399720506142883839252145693904784694381449715866995641290042355790192197413669180998759474486656134663230407217420422731550575256163988611055233627152152366486508827310218969919696118895784196249930109242946761960717106853716478042109935939792363026157011750824155993320347827740725118078409638956208601411444164269761020079883694768971584185679819701971451889130829953089560401254019342067027156722897219989538867057952178332414574352778965816697711001992035757410488685079413646939841577122561955628440773225780838612412580625942393292056104227282183442617160558204093644052751365576841352236049366835215121674919834115209796614173222249798696939988062253697483834065878017523318642885495928142237405498026628493101063861278236727185523582341672093348586721855603744236117282894780889840248892310632277802496143519229968215614123085887378524971409624354497157119805561385037051579498088903542775720539910960975907983192975547290198843664900768774152655700627008032698775397515640966644767624932238686976669669354792162682898337088414025149084831989520768073890612768564213789490897893289621402077502325946850989926948192115535985809577445490612634492257162434431923858426009099373981058587998097995341885614613267314447354622455514022378623742545115154256872581837052505041521302938643708973990530214395551585633383486380781412333424184207163047761697696317496699605659957951842439568267841274052513638393026612124253687316278473887059936532880152979870140979565572235063225018711990311206238130023425645052666461900379875959233777384783804003957488960546769999418241655032779013854276105694364746550468270437099674803637681880080665448167144819706658682675628185854015253673746943120689350627916569366044065148032423486254549795643851500180081638060127008809638609954958165639338343474511397711751384684986113073947375606388024898977348244185598938352206425140267369349590818171561283909485386743818825343793786739766698642232699224745289261862769194113306523472620853888563905130867566433927276491312061732315435506105496218192672676877344316162554449895227290282071429425623683241470492782321698093506418145575708257726529859302094288784051260380415476955479908547308045580769456459608812962969359286957560905682093580431574508808883356796641334149594032321781571998814058403012625477723419387469126268638902135319888959903246949681567270092226812254429636494588496899188325781455705662599875557767941994533622020317238331418822223959586909351581547287429805181938641573977420707077176588334946468143048711950344449339642450203667055511312358800899810396288595423899269054761946920294022928609161622495135844448132917521067429017389044109649271746371482917508341688420069752734234388741452659031829549885500976248823127893666959749440708309909786561384144954237376225818058504804865918438055427510432081347160910220973732405445234377649572720416064312402228787359761018517921187485281849318363190488101593560705392064079188678175305028042911388664824350356992821265709913551115776481754512571629425587684351381829222257006038870835662716269043765255694290298781788076861154192243130462869805731403706926255531159397781268903151490864142124006617742910181155710454979414860617594558025920404644072951794892655735405219721718358548499543738162800589469674978553306293627923538584464851224561908920884005744055556463977449822797746648639929314181951852572275193680312321612375247515051228590530090333041960007816286923555884821181569910566040515351973522333561340816095218857029380586597187854831663603083131593995149851799628251700801494949406121412800338931311976806124755598267449938906405209228194199904449644901097688022105116570820390237431357720448618297732809661492242076514164762979285195712906861185032451869169272868891249145163577777749082872090036239573955101430716362483330033503333942385774993270032050858463948147519701290343050645340674895353868561999435566567865755992976121550932427692492575607895166016272657401175149303916667171357535545672382036356430049760175108132767928164191518002178993450675896845275113400660790060117211299713579505095801977908534650223227682612988961055014830905615992342058720642031430118621887688769417046723586747011963013805518382010691888559089717352226594396210385298260821387529052116212334920046145885149605260022397152940200487442589838945526311247757465252223508639285280049714447792984610265279303255271985029731276535111121990023268197387044900673423718751624024997620665904918448819586852185367387084191376801238685107322640958478019297802876343773601154994063850524070494050910666957376356370441680433723085769747128552685298731662201683283876939139019894697668819543292275040007034391756472974381745743858224304992343686214254539036619958969732124607901215270365645077762243163076637116337319924659307478756739286936111184208253889484828358080512867146935988445926033290235564870827233736169571144692195548941415798521335457800093407432966764211026650671240783381104760404134391426281782786239743600224402561086440196449754833827622417803171132807041453766388344371299220717072581430257854594099049593493206855242881137585613211764672613443804027569772823944841758895491313180539645278335226749072718039060712147637585632465892403481649038975043897309151792743415170847794122150689876071094454233604064825527740443576486385446080520225733884319044539042891658144928307388228691384131007850353350368852840898950762492106479693094812342451541932013001422105646678793038541362502263322540757866373738888410700844696049752663672850215628999017685434243585477456070445263573343159225474407848304468630851607453898278437554388736929434551247803264249976175848727853862281395770770749442130917004789947480027832268257369277024575963664946033187306902602135090921043624935535377831011475562854509701766431766473397530600962556784301078132103240217839563562444081254383283915885456679163269951897335828440008819663420539300404570096897816012948625185228177376509006420388850796006627516047101265275879975580399935006844169574408501805267484715299669358560178606505966675450290217771776908999534917548038640624511332293597339682351080445604716672016175416173589389228392763585364594545451255839780690607044180923136954814802977549934943662697916495317792568616566552548461170308516282539441291251207065974544425208604549447619296712454935772935994104171813791498703421751905528588735884483022322104600010314630040819428742401321841437536296039548865650411353859809293084898365026657067339528570670190868435731304393313336015756456506705165113047402950639047077911385565826384031797669634843279375405297786299597425525464251601581416008368626253920907987959633733227978800626559068549216703902960141332852816494128010945619937266371225207221128622243117495139239258143560218266919875031799600689177388676338797320878996270285885703370999858450924893211703120402722413166864633978835921090966534707485419182153846396107209615890437397910659807705841534908684847635177076958896832496712660371747574944806337599311927831201477799448193260267597215416129380188139653844733643904906502270021605411162364050114240853599230652709987909310925006448114257058731256276607939062583736221187688056896424687181949331340298206874679798540674997384570419111027105006819752705364071068344892715118696722774816668395123724824126925651010023806046705179465850092362015972128961552036427274062697544710552737341068936810530170908850560197802850079218986367857932569958296557454091310503567897758719478878224236491327529148972183041123598544986256962410691621289706171647838747857188549344200097910467706804973404818530255545320123368581186876496367196145017826707408863668276879880114944398718624885407936380862605806719713244718435920674068302285662900064444161304774655188312262587570442258642657292780881647745771092045599476883491611682277955835596291737014275921112827727016475646717604580858607092080450002941539018860243068596117669029654213857291412661405077539439749305397303289570462355813793593320571852269058832576219665883625491270006094947866259212595993502091142987971581937337880567012518373393214469981037896183703591039064439438128258031357205844217139275908422627438653182586260340931983634601484207949554855587514293278426337482955498028647815264998921553010019985676721257411567385664664332533538341557934231909218465551507490508484761161632668543730355214505632977192876617700741369770943489799536228213160674978889134398499132834112625746785238458412886787235358185433177038139764224433535205741652201988904225473244890162255303504980545938955760563029143895604687083851179381444858382939841370842193529298337537841834166795883030720732658196433874929708273608978111695008665778487760345398531434819845793056066629036525192539518509106766530650976345067672229871698645162632097528095091344468101708005906951830943605928252493423566798015049969039136206182126717587553540593863931665500072828318326827896940963125624534748513465921341987714544905437494342534136652838887342029661389093767984314840208270905056058323820646307542609698916178698343539892744663534029802006375707511519787259892030440390838579544690393524173399305811180010480367922076377983658614700057227902255695021934260927501191570556286402661503416499638784951299269356835173515445427779471387414206966374563303302533755190987440568362367031027930525123048804910441012107615797022893319478660496078781844633597304640160536207229946778421846473166090430549955579646224982920433122447756776419094039762719258749681065021080681071165917081826054480499348276727098157364709906276742429500050505083088929310757630841875655191848879344941693295451606042171817004567583007034016107116605144812279183542827832324489728055872573159306245750357508222576808716479162550362565444250197260932354611313147695674302979513277210776804265272156103354823820530191141148926186532176040968977620857430929809756268966292211856100349861761136482287808619399317164631841374296083541561532410028580849711055181833324184552458570009523912244370116414815627136838454581750833927886747832970033404461255655878120839647440311362294902211212077228552999829155581806113730800984788306131093389532892890360511844608431909129104527671303111458094768514632615854868205846467392315514136415419766596468775340486297470783745568697650770408785419047611705133282148912511031095698110301261154010542931581126535998837703661513432357003956042071205066430926477411959268790956031140418152238377208869292067115188699243133586660289154289905388378945427114708479696041215856004410410562042672662179316646950221504319304904654123564611418453742289066631542752564168577754727466811872989223663161178635008046389288449241051811677220239554514574032909309353679390105082160395872342707466071060761663211148933616629932329768653780842571318955233253910768803453859947084907285519098214493432405810421422902966710745564594536549831483281746193611814679160705209038533367291948284692996755338408570398740022995368430516042350568731619292328584582987251098760332410733894904899930095207947844784034968861481139162057990231117128823960749596883937715282936951319517852167778827721937738060912861450798019981811444813939909951672386081965385467210200832688863726908204653025603184028066462351040983369241739217858149728077311546467218114499269810472861284401900036125743450794672244505258051250673274081152255367919780161243828220933045264895655727340596102045080244841563649765177063479709386355301412409954796899082154326265737006643777659075987474753147370187590558221542849132123818421241170973143968994598715362818428834079051882730360653093906221059630110555097579117847174706368516058838051432350852986428644580956367137162705053295035825290749196317837138964554263724318760538415287334500967547397928502752890603365917204750150697612812499834902806176301674178940562200132945497343519721490155008059590874737815630568595583419254594083458005324686402543217854650326939713382495890432523543482080193761042635975239919998525851275003506543065044200926536241387679130725821038843002783123832838338770226168978430323344261060784601208199104577034098065530136384310784720240227141453682021138511436248282532886607741617794802521608334583964677930910014229002458790127935664155828446604018653313415147436400245032173942079188147522255490142722096351170264514575140271801929788744691440835917209930561356826933301741057957578096381778953517168953781823586642533535054095368957679237609690080946784438560231100525544572248220423607080389524159320720306043440960075018463989794543640128005966382536992377220660127805824234531679205110584414315228319616462750908632179101576349425913383840074978048026478953495464534846613847232448224576621346323788456767007575404013296444081520718528008003299665205824662992747761824935694951075228207938309526447627516630032314263823398313523972865840589087571567323421013110721986140339166782960436319568362730093802893823013078224965649877140771783731717242324377906730669940050733130119479783231384138573511626698924551432096140609178048935685910325311278203245819937478288457870751222247929808651775703303171309611841362903367014727049750487312238213368094156680356686159440524058098758838347700235320299418973427705927827523423841383795377034691549489548220881598693790615900596673791194201061703813571977473307553357800298442916510250005892303774385148177407549392616729028802080555103164206126463682007327974074439611625538986956259490665947701748346959918306374663524445280565206081494211603588468583690157568860935711967996538632085794912104452039492798388902090944617434726161308979127199392568202601062855765322877589494864389497165552065629270494162182864447239691066048791052149864684295959162688369310492684156769657728825373637848228297513863338590738679941532971011181801405703518713048791712328314220999278748499546402458878640832255280228588025987633760918550194604475662938035805642838207012643323618828488898346900201713073234761692400602385118316399486468453448003471356146668557962724307399044065836709694339203929108694986212224438787240952741488052608269266280304409053244233648382640453232538503271748482315866225756269411858984999102559887514686694178430241527313817686324952363164864686407883116868761734628352627915404951494907619759787924297538820232919722574431935960966558520774432399624173453583756315203705047747462807453644823517856111198186343741805357932445329199647473303600418410727170449628953050518142700685598958797898117140305586736738718184418764564543863541456451603339045356093233124283733042630373358151143319917500338028395365187777126483902183533192729073253014200038687954427384751871059973730004477153790969486518620829289370720500530771336228011700749683263883666845873429145343803596406419316116125019494275095095689708766166026526603332260076699702614573971731880673178208188257383633083255564303570099987670631111300047628577407084790262615107879377759663248537445272421040527472769508731122569415607226242355658497089791955434383631039156375589960551290710218443686394406518671901192008952298492937540830040811489025272516618988513846317363617323669876818279563415264257663776881657901923217428368202479252070336146612036240832174675355657858416138721977831238313806497443888186358296029304974347299397996865309414708208707252061414443440077830951038057803856952513407416885834397486295703823764336033255551462955640527640918729545932934734249284569496055483850302998449759636434684921371944314478601541779816832250033460933265040985876025862080207240616227768632031331016847755567870627016490764386000844640823937330141111820310440562422366424302517781080447679632394411903923049943358644356092435334881613651226340018963606413103569967780411754031416375600330818393197176871801955311707636260389684867256818137563001287975924327443777982288806903176292954941844418084051431940023774139558591890160391834868470847697410888098273664566024517913875401211139853444318484702972665214693016492579360400168381934898935842433980325310670063716653418964265037939884499092502076481467588786184970492472507951362532902713144521580704041005911907782572905789665806846558034289957143738894472659508724394822776160218158176782014126427752279668592206074917475159280142462174949994549812907883913882657459295121348531701128889691163657491553459307974380066680841975092976535854551367422018058870864743784386013095744943711581837543649623206089061471572953185886038419776115757569481590175176399960976945127595592510336551573946674204350502512383277614859588576604719937867089826308012652379020042901734466958159008432213465168988782917353687656064280677500127281389005646072456324779806181784020511696589458923801475836327898231581251383226181839464389364579078706711826775717405667667690710135191574191890830413082726536601529259733526296112673319639010221791060033427960484152884490173524910123494534914392861659025505265764528976173603852894885997943225628976997289869060406533286170249821705721012796057250987552482317866111750627888046934602980171860907808543604632638256702626793448344426376467718730910251631663131210828258147426183187838617943292802009310289691682717370187864361071886973219637501885926102213951694770390489206243157503170511544648049659096506676571793958714842877740298257901513775650315951085675161844516961077962225786280613086558046752885122583030433298613137758823535207816757846059958607651532070473878528699405321558438904924062140303403870120815502963820167143343785019499792692440030638002994310511586663950691282773514221944458385837531702219989941302574355656399934240406571498411372935797899213890082552224770390151261974555986424747342979816691777720777996064119898165053348205611509030580435380217646625593434187771625498553095960070700931333731590028091061287193573104338902740178051581463401399580197123484708403742927165886367243718855822755238054268010416900889496029671322931485437851310114000538369364045703220930222053764006380758785265935599530813414056674067203958289904071227081432179123862815334369966122236355647607536118168978747682218974874957516110620378445482280664703054241662132215896720475948878487709444737408629732552790738962234077909364961851494943811579161592486251215837262837382568094577453609395711275155155527763597187454850072343658507819777130022248305629515836392966763093736534345994701362309193595082941791291542309399067044104822553499132124278365072513451565295936499941875314187068459480510741565713436708909723365647985561470122200553134256834874939719568564495108370090406304549153657909039049051263768163188732310013689050383577725397897572424963350303807808185593403013698255110792838938616512575711259139590559176348028568368342140707590179512494878526051289313465123303568238056517750794882202352818876373311646196219571505384207777285710689002201506067596897407989105628757209838054316750879569248185456476736746131036483295594146738213275301861274978492490967465614487447199941027986379923453620104931072886450273411107927871398327786897909807690987610272384538524595062040842336973352636170557676481233383242311470649412279608109699341123620898751614480336739326418716155558645390074209575753232826614401527631821451521512859404253188562769870448331024697161221922353422867974115083954161714013475042977055852890705426582129074025917414975019751497396114541438152553400110814152045790175921875772161864974660429090991653968710451579461672734733085633169904797027344931656914279890298169563126411471826890777931377355252353079082981825896821208215698696558025722226344721348800801430883665475711378043245867846453289554060966103535966583288850687885836415520072028008163275834440826269814336163582215901110206871098567523507589532174641787887675822298142252033253861149182721874978612009463800273885204111340625849474615098862181506027107743540456668716083365208589718712398077819733838614045515917748530458798811625042896036394359759312339775209029766058612199066814235980127132179917819919823464116226678043345317828151931851039323421456714609028605516442861938795628083666220783834248288760926743413829462024928816904163375958301135012512530099436504906858895152338444622304388039482567266468624760560534934643208925063011314487635321730821562904893671657763789261159234191342578507212213679221662217618777930176591495055833629094278209940815682308904111829236921555736941938544380328184900967396128077633244502020146637261219884909917185185903436800796761335062183018052172922824874086457647744971052703170184024653489170857919871352798831253667155248389782553673239125145902347710397527441627117345041979851231664049188129502051833925133203838219269181014048669208868546692894203214044720534281790928340963306501176189376042966228648668090620514974185418402718669378665255299331986551142188056108156620737369269799406137473494237724860244286870169201744770734182527474997130560354085809599346174926218305985201201177658126508572023828708581710310339442741255699724951723057340940423211603109087659813924397745279492874888180768939988317917006861573554769965620736518581415797232526806971990488094046651161053355223535210036827803488780567692353322605758239891836778691642924603332031794440470694767897716502245099778616261303502596462992498136810766652520089232493048020179459007768997340817177319800676186772293437546196505981491743271921547244413436132195502952196059028802697026056127432245795259289541279927562783959067089186228495659459110521317191607053000797892221378571111268607515788655422100989302025356434925167294956956455598524530931780987232322090923320062686945510106178053363058537998483260636825263028354222518027110586290864413246270357733913815429171625098940244788093860418640683449867600444295178038341048353190496633657680262064076617999877091842370538198840959504043258228114012773157360939607168886580041973747068657256123603925626851327086491428451474118209286182938181846141291159745757427410041772463358756240444873795093017638908991505811107311202089356081177948008772585943840766357635727325714405362837668799816990100994647751482108089260219041580259269941879608594107708795660079210569129923882626913097287846890115371637347522858982628709594671558190604043278132839374828823131444923640431622356849084388826007050128442397210059415074857616664931732546188650303855792729270702323383091097170048307919757444170041918781657899093968412983636421526996389261567228770402836971545968406663906870048562090371146256163154002568288845601632466117174324407899901094540238533828058779484151418928165738590410377363287019896415176188329772164613232336431009087931288341871132423492865856642113868580431270953815215621592100011550738775520182819274161737941711802660205546885762199896532608766091161518717223274146851748164477252103611729119049958459787886493695234759060458093909023943227766244727137985298242528923066404514989255613641827800607237384290731793968002388467093028469503803237644140163891687876612898377962752350867132590590087724662625858132533879902081078746403442978593445339740125805047913837326318957150359529340591636951256255529046443691223936379981726226956483535705871310600117876127276769707747685823247032007428549514148244998461262714280605943121103067625775312371078259693115602404894104408940873037049804936199545290769510581253005374527979636570787240032565604191094549278562531047125268034341428492615902983345893500276204246217461895919606843347100921108908471264402950792696433305269965774459206564420196558817108823577086082977111932475432556620935327548227773013391817070897033830093819563018955797349529977917492965312806284041246910801260348805173079574016102562346183654001918688221860503155723019203625154379898110820622013098115148436043022865844484308977964886511575919134891880078649587522742076691780888344441535006833771649316108984979456408042382144740570870199431806400304121059430735090527532555952824780619797102904284519260949366941380681847135864865326266235823180647432653596008983887041814607781377611922949817036533921769891547989042219329612468429985694905662262202779198834656679198746839448819871183552473742559495597817404678178422711400186223446904582902570939223473782660584701086159232847144037380589259363255118647911342721931427231153617459018554575431942785620247225077515447471289180380272923398654206796852738386702989984840538797631712490022296891678423117140617712835880580171479627239496397580025634836988295452572802739179586395648185721962896900122656003043349912742386856030539982057239498845223094295742990315878621490850063924031565789369548339242132592008480522386001591921200418695289941236565584842976783876588053699771969217287394069053406977261892968172916919669011343947162947449964574808809243625065163081528737197809446486308698885174776060980196041047404879275396221863526919190337672689723118765004245049804895031704080137021316331262287497875396450020883050668318802710088558359662882538939920875556796475324298162467907313504975760861825890389366680511243192968688503209701539893060040888048857395245936979691449756286904381760205977917835446509390140906396913373133035031787362220054602774829222788531663718488790004336252081139858795206940398088328654149283625577531044002706410269270658415792088056829747185769434192581095924914069409255767428458936050817817201311809432091822734881110029716699375985239734843526227412060944190372544152194471256158446349538433686698681421908187420966423349600190712012829417462230047165351430925784653892077714202516501406650866621343052564021058227973699418778570284270654605626847088497295848077419955621714591878665213732571960321959523117529453492013076231004016395870658636677688077856500144541090382865973175795469737163209961951190375072011074863317659090626358706794837936495380109118619541676088275544608698834112481887834317915487930443932840284788984708217670699673021812820408853596951046899326030928503480408562808180024427464786595332034863354713048426704914957935706946590035703017037453087340863701199787653856648289747026843392193538594298097995911213156552839124832021144146726571217554809035324098502824893145663911171873186839399281891946522739776336502881969408701058920208160878625677734997579617711668155751882339935613963966237312624630389867739527338803853074193352576016133911099224098336061537447192785134772706760576520700917548533855740492621280051725316074552232705382505580159824028826181398397394740219803173607734094556279682081792972695583957236399977847991514865735341774557245355152558505167205475664162622069303003545597137862507054655851535022072606146725504238232084713867896353447286215680133738925818794013017103297528620572994222159789047205632376506106515480403028113465698842734790915994892986552458770847534845507848975981033538769424177648547593435177985432367771198865221155099422308558305514133324186138450759812700218212207615257107097492035083345633536560003241656476750512378298570335474986487062943226585459844433058229630559342909427024987146832640442374496290086391263454066690372008897201823750235285091091370869097342459678120212065241651252236068026236760659713659483741006946021330920578203286984066965191495310225810679306678582215002494840713309074050574511329003206592607501989774874377472116526546585469433317288940155485806379495204954875575114432617915553864057055613162173749682402584503747991618959592481875618449857799258107850124520636132982988817645646472666913778951580950856626971486789869710368284169072748622510590944592204051661571609325083772476417844886721726552815359342790185255300173910626172947889068305229150244534446748742466621673107393634502062231436046300967024480240405302536984378607642534644120486133345812302194589494323130992451292647719523427652780252139306591972483584514593397869777091107433888651860682690088805700064756969653376996686389988971277655169018451096988367369007794956532504806469187176558130792641048776778814165024974691007611867819849890717271128517658208073211227330203972361623665534366790001050232823953006494195878770443324225023022201230889409182159621578943890160547232846266000806852767889389711412695055108662981573344910409478333298065484803597431976759933369696455039505732582871872408874085883646959917818875545960928944095584455437871418741031004549586876772185864820033643008132199109319352346837867068477806505717301317934447277621869565725540635010452766988711205787248330708545566387711900448607218070393780663847136131740628034699936523070101519228331292470915989480819032419089531875394358138955965292456112839414757414460465324208640173872789351758776516136482552715135738791047000158887874537860474251631325907548625788829770070476628856112824829426941007670669285170173332198391893985104570408224557217770466046607937169302285983266501713500911765687013799289522086167187445739460949194044538774219533239413188976739319174917866439584273698028033797842514071050100640186948321784235171788357822083239351725060412969961964076988530236922550971775418225402614882196772106800202822979714713896592673158066448381782880382565160322249672058003718601600950506112765677497704678105579022454125180415509930576282006037196544598154477261590872841508366885388177796637663741472528645891525694211890343657271776820821854188830854195029623614664939496365209484241575828880472202346866867742190408864694939306195541678072029267318864844374048683102706105077877346746943242506681417456780636162291131911053513951318084556454945757694101690420503096174941753361877419431626716825137760263550627539523117061941092477805803686731075148721405222515187399561762016614572189187077288487643188392865036435757261964888549179770178549565490106512805224800294152932263851859370091195449183435763830777280565717993149703910790488363871255574457440981107511749462623701609417346459030490880699605590799364934110150479682472255711738090703690315087627477625001863326905933427442116833088607891049692594937838585166980127552312840394769764626766891528139006828114031793559278509824996261685774651860452867600905085535374441347026817954291526281070424986256218506991034145994286576201639728157300007502053748026702581930741393793613877280643584684442055105776007786054113777326493913622895539009714251326407900697533067904312921699818963719354165841403144150711136531602222063066252327856255909294107673510218120979341656552256967774976052093995680451376536500039864079483618849071895110705081372863303412019523435140582971436338642610959619938968122760755124975047137833288270571957011413188226397776648778394404462829297784656864471472353999857658230125025437366624881884446259408562039389838940524253135861592120377478388144163829165527292637341356319702298046069366725365225562583816480809440460395398773847976289219063866822899357025895258276593225861301310427389844509702035599954690292088597949892518007091173355436382902773069876859291059454914565181765510624050316014728507234625047938479664218827142810589246181035946977653337577779909208789924259301099468285261002548387334002181173376955826505453596946811137250833439308296059112252597325498408661322744464480102029617301838837567461012410933449094902836019239678806765178282207223277053707817227151143430464024881389469917926798718838551563610473269919984809210332316780572551928977089832518458339409770459135309553713630574710731191087859533390947375950509040557561936746577711809629932917834187701344985219037210581144817202952302639391356198975995786977899345645675171354649201962534725585085612928290641658735680027209929290989470648190679710830899076421877312904650180846361015294859484813992878828895956723087951740869310791586405700125914573747754061551810615454080495227544849604937937367460861173808429243531362371131986720274987727339963618129167205783934321702502772577728023983196037872091703469864747937895624745397099864826754599357428347581123420400650905463303964275119798269157944559440276990140083783451194320474105752919926747322699312847757183519966013194668228036484234518832182387289778051367643687732964081164992863283252124152390239750855164280052570532630876474393116052571016051587134342603543382884797106992632196774854243574342128251948936056337387509994067511562068917998519916111381062708167895487950559483230255781072564760644525721706290649539219837081117398130156347686103416197452804923353953171472684879021119316316370276828346088144266155216108811462737046681457215757492659710710985671512525558852681027469284549800839890023173464955331212301181704653788525232005659378674330781757772400561496118893105088702029907463600188592898471187433537316288030177243749814023551385145753843618638695142180348062095523740918859088283311705913414262503410920945612411644426349800537731496728322840072663999909589780492895244062296784956648673609693354158654962838339971484981611044999194184984933120457865379141677435487401150911096124720374589007457206379747487309384238052960358555419039483325549094489998932705022689567547268234555631559224512719976090687612217997211321385242360115352961259067516872658512886472091223540505544368795580059151103242191525609428939207417585012581620743167835571357673905091045128181970585209889952464510301403825658763348430194065706248552076381593803444001634111510508738495606004191602366384086977182198139899216902290986439848634056739936295897887102932681445339076957177800682677538341794738187354458753437433969778288308716627881089833533351264417875179832623207058337996564591934003675975810493160761559028031624108115935475779283116001414568633829227902012435210462937030190856260909327114836337019078332478266369043889360912051451782768111582734903171596705238255281927644124249963665997140990653240533144655754088527354445409266301782426684737780973646601346510245724843184223186815082450105318924599496037107689610847866311485238332397242110763604472331387665366725481187644459767279026325644717122186770469127135493810774877925547800284614661920362129058404996859394450621069488301386447475960488714292215223989024570727807304304052092417686369134110892317822311793789235235700157952547619608916160112242750206510740197135609507565618284401423063107641401084327704049487410579115145466738999052896362286267240055867517852946311266227718550603203650837516525968532244459936201315009015890684858087092210131858431952351273760706511599453579139210101544309171800933118493027597422934977488014617890489469445270182202678622191768650044589247143759726484515368058532241791116847073223658455792408915081905753830776686464859653431079679858571524601059154668840271046631648490046289266229696731093366903709858019470074556642073914622808507107001601803065999505824521445281016995639640696084237393265847743601452219838970279190436602654874439673963636211635255334147331343252554169163026242175583683621052562024595244183493216150398722772040068568734433035039803353519893209611467903363232644452063085930211867924111390044063189454954333102861073804426437372505788558648121129363971513913909812326875213734651201572572633382184316146377559401892343425144151671225409380660834019007393530237121281284149459069121683503027522020391673820465628671239234701960638820516207371684259305344749688114680355619538525308347528426941967011604691660165373478937394663696840519623899424936001086601134898622301821689478097396139917261002139484915542331862691792781852898993541233084195901219383035637599818482204263815268674167716590658969456675295406252096392017860090761737137216512778421158053870031554903929141575657941661863646701578411065475823902778473970904623402491562346606383171826559463183606242610943756341866976140909590221911120103954665406849562959721085582213549715597030976284130289173503464454529185506169292051052984183923361681484825548121514419878081754260456893548054323219654840216060830837429689695783679978563783202051255678230274076705886142756804129087451312490641459558880926368780625812774288696716197393649235968682841483055158465913212540568580241218249872472392737161957211862867525149120031586137753629727423230200540750768473682784968364288176083682687297422214889564771166419266316374767841928051832059796799398897082385772195083819898731755161042170886659931506486615734800695147356275937614148631425171422115263373810640714699865385636381648519702375360448167200561066516654624544139819781884987134906481390897350567644320721388518759670652110971286582105406661146463816829152826682931577794976180602044715307748774790554041012490046407425731308533183135380276162650428273479950325074710466066209247962534387025896917353440326559185181602979004590468807011387266290365995623580637174943113454405515157036989753053875867931315158332704527766233398706730319756093195042710977644798410091420656361822591191493829333837871823997321872623975301825623747507912413228474435226930581260452392995501438283305290156890988821848238069782704199417224096030330191789773989510985797453891064744482769755231682103581724267913859736268295744340918253841995405151815790955189120128786852939058985219124089486369511891325942903503064507489496463462273705600678282816165623085173872546644663123824993841997601761957259661713638453167485179459920642970533342182603913590379104569675617721024970843910766564844189310719215071998644090258101665327853755663091604718660504571758284165744647571058034734610614239254135753180786342801445322895038655939835524564808921738541416028489971401205953056683158201926046713344967295797887918238286793946998598756871047177260239001190021289268847465648840702063579242552574513402202531860616300990498304990926692617161908309751365558823357994903059497863041480071921825901971044476521726642494971445783636872053370834672066151203164307386714553178070288803532776260978694168335588486976931325954524961907454266675232784105710543934705633299698371003014875280859258099233201570057303485348060513744676112337245487026941802306919230566161616170699087365753699083801005827569102367909927413151304312563702542993848375975644808956004155154818431638864969234831571321773708598241284674157755229573739431522420642254807571669484216927439097199523596542373286086380268235235737087333166074924060921039978042516711123998396926801748178752940262829074821263805645568479087379850899737583906404542689443160959893179341153953282844883661125065207406079872291629944735518570792048919358469571604158636164202236643025536011544246548364226525550397013793615019095502953343426531342145687414907053188954765281180160583332953179122967199240821851747172983671995649830224544397829682375564436296829939907127390412696285631233409316314714839293947643511875860433151168604129424775897166005112928363488330311928800749521784800800077823699754183052834679343681235447776572729024037820777122950543404352587692061229563614795497732381435252961728458193221979059761750717089164057894009175808114829534422928072271905666681043966469103860362204368222210811308654224988268677625621983249649066244179228413827085898237725966486440637076697314282519036200302523255928555443341938434864312072308498927952859670350953147560374768619929007331035611099763090877264102863683635773630756122619010536774693321704516967272075150689385590734189646692438830243656490314090356594489116272032891724685658441242981919025095359732129435172344825433957109470820113888930582899314038043636719075449135313775979287041639461809802305196077381923409397996588364364943297475070885240517477130612381596887960675828080939921589876019730545629899416711456981008994207073474258210005973867051503264810289938059829606327132786839797156587205863289810371380836068090706715821587309258901794579445697898347451692338300038644222046025629362882071338527365146015204730174244253473485703327736664259816151727211910605334186882766565641116556889440912014386466728441936256432548086843546540573315306987247496823941067159455298167474706540427214911680830059417463505617957375740408623097263688218595655467541839225017628489349557519440403466505907853612718143932522200474187814277330212234542334285254012896687637642854741043984601943243856432708883085941011328042501267496805289051063467733784270150355434189682563466995234434022666956428841823803625615881357217637791010480576756190992809116166451048271669287659486327827334171901170307146571719550662872440423167032751514903279511170573230386699868829941177148340119475131753974176634061788605047518009433286213778054731803118173897979910652173207789058083516880035816346591143199040346470077215144459419750172423719616533853877872463005831811906590794454861338083652887791871237588954486386474539926163672571916175892327475792223434574651373017372726421135538537444960143621109231021645409332066703859310872097085571429305082556095327188806127869135197897563778394367855590467139059474438499422675088121988468383210984866797733942092319087842436881347869533334819537010331270550107767508460872962932669241624880003744156255214948780525648429403086353141133094254730872326646690864688813463765223311327867493786612396516466675130889889043677550860798540536775214514013914350955547618292297403472746100076844536083794484272792392901457273556885595530836464159799140219864892601315786016057357616023318832278324105108721058371562532222967185644793903248709932413075484612143964875836833903245245816140819283393416672421920680484119912666508756165320762733285614260258310284774611535829496991172941834256833595268573655458435957940832538588847375550321267610838398687829210054650168359070669358423186478175799938092932000567022763633558408658906855129492865663601958685388914390541321630025894927457841776426818504678431405366429058457513173983651097361267261091322826646113090684315790418367807261134483035618393945014412507975724530231175479422599100694241527991057937828171267352233504038309657008643269823378959111653479560353152771277179381131054060233054563265153092125496399265070702896949589223858616244353370823418861760954866480236879997098722696912409355755151806359230276860690573347611037383965808477262712082842730738246906693274216031751820064021676002849596074372422075277298915693586892712779623569777276613738440286791182438919807361321476508781144406606205424974576737376653181054981986495313901209559493164720838430721176291763794687547262792780278042002184557894929321925401390407554373097409705797313621558521827063934895593512471555403263321333465665728355612018860092923455592073481484846878931230175831743021533136983026821297159840713461855382984649540816847500858083614315872842550410004080036693628417039499053112246788992528256571432044088029237155492163389797563331754597485928213211912523604555400146985786219072305260301750679510956824421305014968167739319160822108554665070817603934400962385776972646520792969999162155995144667567024987755774144579589107886500628598960441876779290742425334309560604509766059086195648697760919950330188813958990008629674375964166589704939898258260812355829385428112902800365982215425055503144133609295845497988149003982799983437625614173045107605945079996594587537663131367969235047794045614481811298293751518181645349806249826020890466693726560002441831987622759295689195954205980235822906341615344160294565418761543905276516810030140294159664587081800455176569224436875744516825526516364545254014124595183006879939989776538049306732619446431295166604620250695748040658151500637405791039817710175503959760464044290090151077308172638085250700137302317037642410940413997504601738363365612246884384695359647888450920916363311545058541243358006272709091048161347976063747988620589851003178672472069865984511445537134619552187649658448057487300064868138782674219164450053107691015344012191134590060612136338523147764901620733953129623509601156353686184420230564294267383034144164207257986068256545081185975996753919060106097563461753912345517779378558885758306369344714163544123678246275914853340404445870809170823432208608386300186558042181797764218782646277968014500415653062248964430107616275269529528411153232357125993928967909828266159038187120806542581574812777456058104772463980654206879152418241836172179893439757892096620543581951936400359082822641335715881959162704800776149184176752859721142622882307290131905812742434409141560134620000163567851779286004189402092879130553459395149622589741748903460388708331758475545953050994520568427908396262674733232932378871854821639262677121800182109721405267589375441532211477370959541779699271015879857975907970237240474522396154177335119899449142107457733274423132839277856672149789515342494865582951823150995890572231407856650101679532407288047201110887470381623653685114642211411443092549936023297402164621358354933145971281794217231274417774914790959108979618946496712978951921176956249057766771468626024102617808846233937711344146739743653159136986111848738432147201846181695076775725733943269038359759594673158543798055413399364443944399345462779443339659657394271757025618830840884383525721040946946170179297589830871017376066223870196265253422993691858589640561182793447318551595581452299683428931238000781828238541838368471402973529376016320121079739147997370378444387410471447213450830377542053765309348239249850186450540694952650792419808296448915737974360142485580166183805889475838080419874517555913359695825497925685747691596160202135365684285015726851815591353762408648909266999599125892042467801959848543688039732324221954647423156087840138671816243579497878883133378688077681280324107739521366260346161217924071345746336510002332430375235173961718681496624257033985180185807804138404035671050772272233928015456050469094773395730711018687235720351219440873029117104344592409257495326164065038223370482226509154366180932654144659745957036664713543649103811853511025202854721542308396695531423604112130316721355233331740498169121874167529699559596786395120570855322333925517324517894985226704384832607908667527801510772009143580031918449210817640699211424241911566440057926240205340510886027645012903863936723812796049146435135730263940161431870472826964964266042386666601506890216724197440167540070616569997702521401619947477238177102259517354063430363719865895895326449923359112136422874057766463254314151977915804577832648911005044902428673520706260510151887084287752573990507560025047645406555366004376449382544655411553551075914547248537082377918366960392588131246282147144431138928544778332871003609541564857815134150094200755633264408843915121708255871688274511506707978873761597119360420072875652820961155409358727817374143465286797900457245292067196149838367827166819036787536843794629999664970972012743547260669185463574484709266043768773304850479703411725215692997951620637756603975124058952725120915847085512083419573506480875584944681458977004619702934651569556231304255204105334517497280279425328644041053375985509805753043507961051874104345330165958970560225810360195296391788552617153090554098173987444273128707306127122244800724854419075026190270695745165761269416191604832449259950172926150457544484864683777002817698268368105806854484243889985054971641170562745367320375579269354948277585912285393597226167986753512017767205221366611458166210611413732773480931514999550287006380785946232948457103570472008189133238494948913706903621432933999253431436385052840219064431867440472792409401363506245894339875823058618731582339618263798858119018727510554544834715024505608914121088885483909932731049037951263355683115550875810998338459910975621113104574784889904307605075476652198106153681053688871160011869749655258184465922668594731630668159653188139754308216128241228682427885733614503134204965649780969930594908451686579119724045812184479667642606430878667379682940744057527921270082208946433129759290141258076345461164625052134922046438944605016429547973150592316209108360693128738109454384667002390166253413512521292416798144492104901211400446751120367130719013876378087339716035307375904736448369047231734691907059657753221612896561675455312259906355075554258633869600398587793872173709362947460830900588789123999487182124527784495649166770835223525314064109334883605697025414056951242196706733648001881971383275241310046999601566706801906951061367038720893209979094935156026186824527733210130508698835869161341650763984666535469121637592978168811982554430895855479924105785895417535459154499496032269597698615827968643121628825300315380716079328570047299946942643381461110723497261764204233182382352867984843395203821472458232684252122966627574533301307952580922833440322812957111012027539332663510453547320536397191334796918266096265928486616385122763550504652246587162854271904795971031994993904382074086679178543960874413907007251964458798134697873035278586100078239934885600614557120709183008339255081616466679466117133897667163563802582213220634912398614888837752538200709371261703741273774568573673131957910967067620415848707994592820912243894723944304695735393967238066950801756494922665116012546883712361549116432887533425628872516667418620563071699858730217375542722374685992104827317803921889324723908835650166089319449577578723902930978833151596913068124219954539305398825361021079930439933380867843234321982369178527158297751967017771454943950679296114182943049254239420119224895597071097330043577077079438111205715285637710980398393482647652727256126938279364805815760228505769962077940113532283416688561111992007510528436090641385990093878395825006367508718697904388817885797434066521073421548711727238158223705753334093808635593485705666230986914080902225668644045188920281857403363472976988850841905476599682761713251863514512761622454185055172061577367328498160598442457387899141651803971268337632040761591765848464925851618173326290257979247973889447024923531268131693888434344197181169575964394462164728102379597233832724450915450779737754563616067341520217612621119282697553712898672931903921296920542870245134390121482517681942474044369329277522167176338296040560998497694143631335491326605053494975011910756372463967455178737051824083051833011474650764483618305502582596471015364804535760620025144023717812886178861338972988413671636493416012679032019069870216090977108184180723167007478413751349609254963776312078590345770067764651332340306055111939930486203580484225461650498792948562247736073485249164062579881826398707452594466485678500570405113992154866693417667609807748182110935497344519890444491154853042914209462899832274781029309274897728094949410886955027112696584361311182395717413593155793031498049472683139501156931886068507432103675220397414802104574607575455713931603709383004999969981738719913258546856973553283205347893710729100476329567992411252519206453157940282305974115732782174539945892615132083164947151420114391228417140163095727614401643221077095461641061562151924942845395450213086071987460234014257516282754253491468677196755131257468506588457414527104884592096516973798005142774458152454893395735845596386286671233142426309282011103145565865724865628252579153441382066716723888791475697484094978488665705580602068830176671343980367972283362298353173604798600442067322455947090299380990251385683459693808248781031560568646581471418215614172990463264174946903381176585115106126464581503147749045042515131643268226760013794964524428831021921284309248902861402035712003822328484647915353347650334435102797720722783382389136592874304019264149006592924267485203781671478246828338718259628040304949802422993832954636827059845164699067285504889546535463377084156450553417245267997339441656076524822131269988281123910198359140133809939120983761351553712160467037974672997058314264362313543789339346563508735190859129686038880283890176388038156127786951523932211917320162851549742294974659971026607642400074690861840736010168346869438542589955923585688859068190608754388895218078118121460175419120910650326365283312771171840375180034346273160490579023530573157421590225651198239565799960517558917437511397185544647197286546059119808708721522475902925543673098219023796939324184868313302760798572096877748561511193953959187201774986081216849554678664249668240305604406269105129990251397078127615049682579439585048905808897008868321308670685064482677572668476208163385402853475885543729723289980639229495568678559106146054822268889173273867799403816441642335347016820252032526813258404615224966203316038658005947242399621578224146249637718942656658843748165348446528839171086764133643297000201587560907444541420294218494870809396835719161241505831895255082187839780000615539141737392203355392951161935146081698818615618400607147014243455360645523887106643103508614943421202562520954984797509913710231477383153491102600048327386167070088288529871348478753939173352470131785753729532129349667179697260464467502003059603504895382987386491746367904107616340302944899409862704735476398215909949301211319239410824888555308006860228512599208063418585203015862789581805575979029018221702828724749193324962084468656224141001689221692034280345588224676228665417116458668457268302628321274875281984317426264114175454974978814150707341287330466973148425887291811232205809005198929648754862634440765024487338534354117039333560937287511214507557751095228015043581979836807823453361671129125039623376066895774579952573016136477754292907492299392438931097219308856059841060349108323654244553090164917777623455633843973476092519277269402112097389595897267617675013821907131330281789207960907305241951297913282632028465117568097447044868920404276386378639128560540723398369052926832000825803754138849149788769892367762874546100694204404133940014662410202183689815516652517486226227106120398940990998077134798283352538794047887457146116825181297002689216484305865852121119414749798165669398153742060775468733223986139757004975140260834929053977336010154384624333969711828856193561395704706471475555831230573212829257214234490057649061925641378319654763342203654849303855387545531473818173347958854751437992872432497593588028568924193252226783193248812336028029724148377565530444356493985198363042450881642171534295099523589262359314997812373194988372804100803749963559015096642625461878329699462135057072928044849129197448336298001656830389384339955554947545486399759520341624787381623263073299328680595460798676217072060896764398165359177802313274242961812598261910100922398318308306638105630107180237358039561961177383576267404413135930430565986217789961180423610739417865768141217092774352561574433377101016734045063495218374898076646502616464752762059896192204073608750122153933508392546260761170749374738752151675750743970015982852783446663268712964126163190852301592675163197062033837095093433611271225887639777343806303552097586872791626539133450161392134234041347965402978218226725211224182041548969169405859701087189889388432970228253837354887031753004455982410323680232856375142183162843516788945169260489817606855669143676056020864886242901759439792237127454725981116313089671447237505438452426147527064851769042303626291003298271349470115109600057822828684587402264443265217805564908035170919764987659196657772308058230695843389756213254210867020056701317140721665621556874119575548276214652670363210810712201223399684325282794155388521435202840335241933532149912917965687948910234632406020464424370881861036654703030284773509863008712895706731376609964670068084596988160914921714237185661666789339598640362215656249952184935242349430530887545170652770517995205674063241692412268563350882040578628394873784279435182293602108893533088876460310132507451575170990774050045387539301438747786435269541563492639796346720109051802172097081997243538894687075924995730738634441007538907108049476890532851971424557590312924452848753570996583371007944445891392728587202032302008581885645316076386692507121745474169775142436215808945063442437013700866217746361788984999238698877068901558811120225201526754630520607927692166636704057179863447695840584132229454617900775638894932387123543715572972107095880621723289752835102773934914893975679118581476951881600261097281252839953559746264910142259426420527834590419257938479274743514330744743577341525291079351819524474878212893009132241992453738910360711527550972748854797005340234031289688824684084252907639076687682730144925816790472046500676177336101690759568088964733107671866672984761016375262793279380425701233191094823721440368520901946445240576527233232590486620658937581516877231214580990451286047498278150510225543791759673173065218782402775657969852371109253800349844577922370135407948144463316487704538898813277771328426567697366456175813267141439486116319652762178982671568363505995684803298089965560195987987115004534714249402196478526614573444256422246691754443016008128371367136964574732986054910791471845319995631385099768923874366040237467146006727913134788086090686485730114233014307657426596416692857472246514473990125900842385372918823356738750645155996917487519187985618429586441845099821637765317936641037421428765679683171255090734740949747116230871858936122063080494451038378973789770868327139116819893549705592959741540505129374177323652445048808131385380422590359152310253245812178683812008485799147988552473089330758175845563812097217231511056024934629122040980670876728225345088191806469560534528185605459670046365282899250219131259228097496423677126044291601796309151448313295429635430964915696051185534018304640991492564574016218512384670247749787901563254310704822169501095400958468510398304449776249162462594206106176680634569922738830152097390801858951650794035476713444913428308900968331870992827613462844899464424843406188310515294484901643892140399274029144137533301611046987041538861421759806055881676523079224934106020333933113068989612009057804689159875801097336362246339319776987666466135893533330080301827925195751176081495315154200654820969667101996506327933886617006788372982190972806738379770632494421941687088785211298001833416900804768945761533822843061596379555244822148999853049833512072469578531707039489292703212044745153218780944998112461330359879212176481645364647492720275266326126350976400635136953768523454190582282701749006937994564519937020618843978135996038651917109369542708233870536595735006319387958091444739524758864153189152371967690455507269951369327935801789982172118767054992248620992418527168375549450814545589461441431239560959474658565534656822783742803632015115306265917543370946798098495050583323781422714560274281958000226284828459618831260232951562595369093951426172810191731445706409286246465145657949525517694636035430378032074736812999960577802494902011058545748491740379237112894651218450387506833978071774401942177240289176236680073238112240004575948132052667877783197281979522831056232107024881351748958230342004287272909831786188710804437783122000690985178081107256557460905428051460161598910775918715027795253501728390818953231673555162724956243768772625506827112194315480732631103149735988664683283429971839201239422994653121746790654584143575013289342580076567645669889435406660480090281867112226140709660102422941276302160048904881517965779179155152110627450744549447244236259212173157603294058818013946807658547155874767219339440205645969333933731465355668355210710223828359870389449906415973328208861939390218394925485210656763031974233278363546073305008306927471923783881877137877436992817721381489334267413600350035523454775144189969940119597733439851347956922376710757469928377278649271164232407947533462046095207475641377381775278732029119941821046233721891603583003370136355904169578904957913924229567951703337083348144214065385584638629537298034838950341568790246092920394902772744805934097917417216226027538238100243591715190235015001710535371878160029162362410900781607536492000556239708059281895258903184792868959096688947706874104449195698561042370539163145444787664868510897391632742246317820085588769432819725263141967476053667107612332244413075492874402739569083789989759814163608769632984957340384069382685332510426728576444041213141052773936000544426162825909842657379278969239188729878480511718251745141309432916997947270446079143365408609769358671189712530529630771526002074722805012428815729090445822831478175319913749761434344587223378012545394821124045062311345582641896778630945908313532763413540638946033014599429325472905663787656386173340040645359024353650741294021473986846892780534105571572198994038029584975438204889269346069760990616095367564390084848028863756211263561280413593760219585522103682084430971546426712135509947008890037944308278273947366758059454499901812248258992397717266859094052926506877933742388095570613410062980099306664436218927264573184924882911820851006783485052093276509297085537627696405682618689754228861967812627066708220324899730866111639803440151508214718331453599383463928843691475041753133003938466985660906166880083711958360785720808982248972590892566400208562040225912387470807209551645228573889012657319918744415006344229665464366622684019555267578602944692798869116663917441003382274526633639629938500175472845493467162118402729143963549199674666432124674594300650262980654220004820400111704639326429198380977454807116864074281959206156706080848831793642493738226337288489233627295981569668912655995156613578204836699301896442611550459817637606939257513854379361254227344813180503479311274246872343615712636287566471336677871168310295710408238848624137905602629728169361482758700667526404558054756154075505080823050947771498612364376305471000487084935071437215742088731480072247972255305750857734991497439880194190748736220766886685973990801114441543666762635202975896812853872313514284756098064204336838715394073632833733279109371921522012261603517575040839334291813138487504455691175006908772898225219465674889456006106089433959129981738819929728758148750754078216929961528080351477899960591719933057953443062414218853968618669978778210362163969004408901161409926468012080345850533671095241677620716348881208904533312377591596546012621713047221468167186572491734375115789770837037322344809232407261443383807773537408649194019734208610381673254907180470608786703344347691371812449066489699055249663122143316634538795677214254266851036089247656420423162839011226502978498598405104693912733624055915826726386355757863468466566935530240176190774239494104751363947476899593974243741192009472816340980498921185563584312606980651281786523568740795708345426614299048801976448905138856843774079575597572930562855104942026353322255883380721065611365339237772485867175634060021429184329283051534511165160655875553335425735933741859139194958929555860429591930935353014462696840421053885653224444687706245827359310130466926228338320206869024084496281107207019642303788112271004395923651733465614797484511831844577750169251929245133998134223414034029628445232725695006060675643943955560668519911582658762710899014000014969580890983225109321506535529362087652912038110627820832224018802194634888053171985315854733690733517990016015536953977039366322070483085497942848995051070759823986595640393758591255906104677627872173411784624448089081932871992617612955349691969639516519753789959613063604943476359142974934533517090750303575062615068047514336477124775045840128822995448556114561809650984224404834593358214289247721601464893862882517265761956968132199694632052617007025822656302071100288152950363315711398948414872138674381804937215789980019081213935546332113798684143508260669020834453127025880390272335823675615824780719502537227863164414990601988839033248621602732434857736312968331099494934940187332591765593038859216962977014577466674712719518186935684236319580178110002645938531142785652616124619243622834653158238129600678581553959137394432477566232046852960649774277741183169011160742966832715948808810074252302650686426837694563005285803343516063893342322779573178803518613708504811760602999258252380095986414026907632079059577348928910091696395536185571538143307670225922732903741449226177373879489090021870508308501029687547620478546935236826515754808210437241166260794046573460575406245035658737977312331142974730637062255209343847288708799459221139493799007108352582446120187557025343094746505104311335550890489187847988463214025496359355493262211543948754906077427263951274271823460077269065540175151988937392850507678732589561382469144872949381709252744326974448758597568504434682983274559617482942745665344867745536031219633329926931862704652803119308619082907271962978895498445489012220387764151432352986361346325884875945822052972932522626065794047274402487842151544202740203482725419359151247409384076459409807210924541561782075801852922465034697245027822700826629416918529537595642630830025567786279509067689861999527703904624626453827679994638730358500602057585664385636625212956097988571947029615124229776538844773819845153958078169531269744616584452184219264919992324420901202702952150297931234837408375557826775934435626784159560897720772742348810837062901441267833207287231995770950650743591676791695262694469028488662134582989477433981952309841910337512612686044271760615390770399027765122028366460488830485939375244117783080553791003520455982221155785170267981347428299337532009728286106321437087158847388989057757821761687666308326117035049889071575827288757391082791759761462409039908202772216768335072502872173744774847478501751533609160564058664415553689365363142103556047966098480928544882858497002439233038341371617271276602174616857093020894942978196754804247851792201967548622148798127922040005781772092273691931929083683224557727548788430891521847165446221318054469108801056052063990265513367327034131941232759528834376375812100218201695452595354995711334632432213303557093259475575633564036688572968726437294863086838663836789484569055121305815890369878703500462239084261941363165161361104705993699526448486953403239892252897135978249511723669535036638279479283400775591319200960151298434585025668288712906775577731640193675918367008127038903687288240478439445056595456695086427678775702919065196842664482839458042259237166928694557340126494640068103824764892567334651812181709681607555252562512428935048753453630146601614663166243928125388510783048894749532521340899553755818800399243108600429623301841240426469548513897067147973934834408447746279821462529220840651709340397377723740485520832874087558111543740679193467529917383274505414539763375549223513665831678351529276826447804219627208829835777722241877787839814714483511469357763816075520106430537729062836024485941579317908066918185871439060748988397453371430982701843316349029285204400302879479158688166698825192286458657402461378626273961503689770087105706284627057482280885868579867254610226109437479470619950095820192475704683712914081311016713523646017969570657914202908691126772167789212102020233688599702603531730168069276650591173009366503077014392907746424808884631035036655138129563969305585485579880012989914581439581713758129239458217723228783928245019416097812335896145520005614965232010120194249325528061337438890458684753375304172002714699204507549299142063346985065415040428894681941403947305158406861451345215584677111102692110011609586797509208273687878170321036457123778496848409380842224353824940209397599245453792494876043310774637272476270495985397258066905711707125293206101050364228044008139319613407213091198788472047458960768561233895850129059682792664186153907948854619531984847680124892393519991142864551798261478286308514138155946759933300985386634336120764108622752387082247760346779633052038048799693985912653453771370907948010798710425909095297762162821698731374023129012110162959974845356230758835895534150694490029111161383575406685039714548607844613021790028528746110115760552577659966820069199199819569816123300225327483667896702096567155436662112188848154547737475911183765766491478212598927819100784767924617000577199623228302401938906625017516127923123636902975262938446379101751375481865035875531846723380316707829876818782738144106010131482371772641071757911540625316577555882745692445683299832510352292639403254188618943590155515858856409117516364000006806680082997650247518214969427587740432207247687609657484496931711169333129779335185354949025374068723822413912589196258382549220443932298310617769412659916520647436243274954489083466200892765262067614135430092799289342289487999816779886703090783029953245346088374183897415756468604645156786850777790753559428630074721722751283549627207286039572745259158710937978190721671337988259774690471655229875461816046673511210325220937091545975287318215345662859763804006331425124310248891530123491874223923862617840371142530762217127908236757368443395921342769430412631229500221559420757550792975969652667014557954962589588266068843850307390998311403153220973348094201486436978192252940046460210107234047531812704397799397837105875809970242320718321470264877354140491617545922449117284693148765070105141804476847010931370023027771938689867086385199343869440684141170488286777466583781421683023694052956038129117644444318190717945565975916587373221766550858289267658008301014145971408173756490021055611294780138945981294150364432585453850391864625220729341587154344012445127158090455795833978272800559835415219853938297328535378991172135430292356409586959888058811600909082134490496430338559337993315132780050284764235148306678640640443672284257414049162818054322721044252848917544038651463543312287180228488389116157525339947995610096358207408085335116943686781661807239644167371016374402816453222855066862924616887012466930446745837307211594436991068001347874270046034055487238782832747394216237641947007365966641568130569671488577466434895737284394568588876715946498601146157317718864759095597821534414138837797702450280467567136537888764327258460951500753007870324427932319885668319649659249399713889709919778837008174345664746210559723191817753125631123463696257479565327972787402506196564383975709014832606861138388964736852964904484003700388207794229118867213947532171938564025394574696503394539413637336545753466002396735858582498998931635956384691339955039442569373785303231886808944910236153327833729095264366052863555160073295714339861480309532714356827951420200563730426632398538807179958694410742540961730826187775723394748020929619748458146335314612628351141870885412273044609032092175433045691374056330901079205672097800939209665282982883190233720868374782402329164687576375291913028090492653228037818409449398360356289120154029689800046727197268336393787233027400228473018614105302549641467960978526590023083389229531481622315582543229507615645829523268883871107155913190852325180172165498872063144876706417223597719437116113181776695678903217283633532163982026311805552648201108299168764409117591090308517964791565959766922783499249251359291792915508029611863693261702023450448074995381639373133951395813000677427149527171061230545897720771388821059729979999825711281330606267680365873676085537157389588720968833980404558883480555792638617240012506904926974074844423815451676472553418425415129236559177561413870013358939767292462660313395795665758431964408273518701866592081176916504800724173072623600782538165259254432818768115759261261188193016758846495628181815725595455825993751864462272916175892446044043819341674582027260949128200343620054367785028432624969905587502386067983199116517998840547904509912487894102960308695269798636308372962577484182966590022415017773484017534617547971929075148923595862340055424582818561885911144931748012064524256564316209343722930903284921403479929906212831534711285050829723495126252439106785133485921127265408707583067489880107921145423774730883957111344894977346613832582754339016007998144027753143468967884512217570557878607172450010091547594688561544920423456011725539573980244493248600739482120761374357782445384034300904159549221567809619869873971948909553559690403283602306825139404799943226916160413667043796922970785816907890912753652225464186144811557660863031936628864715151646100404126504850934283406081572781312521621275000304101286775762216232595772555952161017320536872476496379886588071974109575305069812557008739277214612413841887113544770558052470684802787363708152445327402354017533860601272537522485393223572583119770833078393344430429812082681315671232871021518497606874936699227347688907793145831634342551527449270235042302004132061707927741672585456000756642358569919534362625994142732841313892614159386843702559931822552340855466130448580842695294626475589676384666848981296750796870211018891541552565066614218623778831884452046694364831500262151255403296955354751096170868046118167280066730739814265134218569284561582246444497542487036981274844282630430949609557685953517390852930845304350170359685156320138904119303924372562096246901250058563861913176534719283975181970923611559981554479772112471073661188308493925243856776804742410765891598164059222238787941042978660970076536729871734845531522625929129635421511760990023134928621501715573184420624287943050696888320565161427899880542133057587721478812647821554923727901499173979618687837045549230703684461558226477867097731847461869174552699469233352536920688622929144848516382603310368121620704445325941581318015265458189206852228294172532156313172235926684129814558373517240550950677938201593354080061429293546366329903493237242522808573792601041577141198806398600196224383369063223432355355156532522749085530952993803821670990156209747715752395214164924914377359451937486363098010058501716336838348483847975294496995494103873099817813297496819990002561342485682397366535798560414959979023254393692686191387814340501874299261707233353611872767622194990386847428450291728753100146074910005661784421304790942833670770715839660014813926697610483597552973359032647164520977834728726457265654443400591681932759738644008521691034194364754500373718658371759075415938209760164025257863532146986861254436807283914841949640842382112870980070995259013790931033976862809264886120211952708675430445382621152219935203946793177482660465956319100960714520548174898242296104772482660119054096116373914970661758841113819587515037521757169962573030365253986806125976858945019445827889812186525548215775510827303524596564977339442898936446193638674885112282733033785256391690816287720484638557714110044374550266861115820342027666258733885756173810399533157186676181621565967957561994991158571641431275879310594317610594298819725662733446766029500153062575173514873609255682580861381066887893897996232845926433968371730498804892117447471406352966567702630652981853252560278421637683945973637275553775232133971191451768448632877755577397931142100435019240420110413095964534271518941029013068276763177342667570484881098575944893066539202819562534883332787540803939308414441954236447782656579769991759076045867411672027125338526471884020554361204762367353539737872441155451796090491314855931215250055154429542133330941266528661411213663435986526866647243284340116196410052896268599283930791627264913754492360782689970332757403162719191377120762694255039376122852010036704454588229847717280599607506399515237183546093654521883079282578048930791181679305599816865688001940050859722495409783132470725931131264768295555045551926048358049869831348881087136622728357948871078556313627839952486310032812568269089682584992189571574755892835262492014827453119497011073374841572082271200161303290860112624905717231652874288232675667747275009843128564799263601348045425557826722028146112704477928502050025974843055368748959801081484648572808029676909039902493275505714016573838583066638030888521865201988723054239313672015999975101080269504336402840767492537113560917926800681361272008256521340861651591520658175487379299791692818461046365662923050106980127721070799908148225088393823909733938723483855157427917572577307416576408752871152450424636699132085013085184888668769450620004482209070620933061260058473123499794147061285089457368244687485886851574033914892257185686676102468874414042194758073173127157418276651607503093676713167177355708026850521474974981037899576217277711042839287940791487608003863584755623534949608361970499926684882481624495220176074337770525481158984106409861954390196007196599119588788809646133699249632846439787010994272944966734147646644550023566237794877990244125180617876593301605227094370618099728852709562117286492800309044528450626912085584949426536797655360368571888379570075024113016944988238788128224392201964475776304008238929335188675042839970173172432171709545616063236622428684926188458731686020050165502324585563606091942455990775947276836367681652691797374336723933149393266070655449504085713893144680812530240164784019726047424905618933317716901126835961716069457867942183740656171086456229853247700798078794989657536620060003848588057520072632678708929838135270794542238488700743014546351718132491219275844014964734415398338914919396355877020323183703861730023767860207091516778112699408938473986367552082091166041884808935851014303542109845337914250042675754465495708194156946509686630074360575686253463428637691208115112211660469852500088625308208817537360354413919769899951841486302846440093623273010417909156901922790533506012577215512715202575794576448874180781298587381740801622121084562983019485034848123381528783851583713232315481663830351203029154512480286561382346546541949968502423063349797877139046410709487074532475611672872094431683061527870959086105988542390439234508009855752946442768975266379080707706189995686020548794612608536785182502316992149587585071269975561171893978065896196810677715872953872389340007552060366384896857336167136563237775062027610789536524602678139781358823213980042785200241968559319398367709054421458077355449376132200901433352460039064272391391759380952292875044428712928394081701477765354462594592376386473703756418109325523335853441131148317277097616317811719653767942183301332332177636404099417327579044177158280013774534741104138682080037964258270613007534177013892120199786316675011101096100915194869624107379460556552597795906808466542045043064926038780049461207408001534669841166858710905186191005232544560813991667871459698350909458927982106511962233676671148146657827241802248372196313391297452115823537957174321307284293438104123097145886221576942673783101415692433255497829732397650351802079482244335231291460107110020171191160701324342380334022584715593002567774113940042108256511897515373871628974762584079153381519822337213923013616098103447783671433287598164192635646537461380273621300601958250897759673578880960240331570718207467850728221345812013371609196199000846659486502781732326461494603988303632654711541273098346777544468091263132755526945994538221468277336794350244157372883393925536454500302534695598008966098519224381796693199615127378529136928643728003506052703803997211934073481422251716108019304988182504656528003620420386943703562709391057742149936323290936639986707479225753127749588551532462841123011673559568091245822847671414565770838658891770989539803544371698294980602064562983830634213241885074533414406465153578814554095822249928389343628684445111105786976987269095223453682740944837877419145828806827839626094083763344000255865953822224175663092807720188730037228835611200104919817543994325442862680130039215080086345700113062714786764763737121010454079485936509441707024635257488371193455370718247061331663546901584011598275623950105339934468643625914691106544376781155281500541105973130412165257523646971490090911030711427666292925228124167155147526593289414962471599553825988533072753157150899998531452781999537744419218124969042267307075810260141486970742302640280949466963340862565932684733636761514865254409683615627902223429940347348170987765243829473858266537931772055084647621893758228157248303926061566928502873370133806303700739746531107462878721214896642537768579489048343641075115286425693253378709577951878165962153516923996021529150743597600738520855248815840301375064529878945455532806335099483343071980052633378370866858649849922726520789955327560289269438935014521798031222392121207827558170479629451495440279918044985830660075133588050984159103549389579340632746680864303099307993781879493577968702624365028292383312613636494568452090455822385920982599053584126518363244535412971532799277137822957080799614480244513979283696194732547898771031310539181558774515510417110806882888936104902121560458324798682015517779813657977425454728647657087935356506721098992575312478033478608238477292828444502119088438127920125918281629910502909737467603092687467893355069733777305206775584542918234143474172257493219310758572358163587465537818854054403315184748494536843445055250843004273579982744506619972344791567369825592005494335417853683923275805673750783128739943189470706838089619953588080071692695874839544133837994085109672921716344338784599727444984750570639732457418448807802738772777543206046926253307649303150568605041408978195047017720151148498994616110377456851064700764671136677135088128495706856375876237688963623352987002129612903478992717418805493176872872484526547504929324755366518272502845067726672091012293797057514093519304066829066789653690209273417932955386588533485383480776690215752307747138621466568992432024026990265884361149953140043887607727788650154783391514090770662951865938867070928110465166675822332641846501356342289953127417702775829910805462340223435354191541870851054290759197099733809498927540438995397757860765200796984677298261091505329624630264353438964012852886629793605678984923541330535466418425787469886381669372842061577620063149085443386201666963747141296358603048353928643428756413885736584566855846676214442259376940107657566279008547167832720225435755106251121838833346588068517660391198565934193839564822302325387524432984452640659731066397953677295961520910450152583256203161962171886358089453932866700066933066918481434839472440858327357369979105386800681779888517830158077237276426926079968417145244006217617009314136301730170521643807956029514005173863555812362122398021076045712403875452074245802852393382922401411059608745207040326091774590778083371184364621117652093179879714678558557789547654904623112743083088174517602528747883831060679227357977732608233271809161229970603635356046746981904583114148247856609761527589439549760387645033746543551281979826631098862389003840668381394777998551090828763640287130513569034729917580965506935603881024604424100294494284456586522855781355602337695920120674064689325348324091760424479906862896480493756865457871605231106028694709015548349212236992100312443448394285294484257376838422264472143097249653550445686697619387535915040654732326531700171366283347908203743959283444921830556228399746161795053785189555151929474053535493266661618993128895220614068787270864284045793204816425794635298550183175151239197045349959330367502624530478654426596290235415732023698969140755347640359651971342441201200191631881498701123231271316439047487244442185908536353446605571080225767480471394544092941430447354057186138349439893660834257287771002594747105017455000501973337782454160226271190120909998959577124114079807309599609737324617520798237378015573052032476034973982710593849161773826799943591131047879697316701275910561427104236438925885082607104716091764653061084084782945385063780436324058035653403376584732526523040420268998144885604520526038605122110493462622823483495625112322390476205199135683904601694221806712859243401493479465441940179747079420575795127613686892193324055029936041986372713898962870355769569031781944998911049815566277557650710965554117360305630512232365372492208578878679318119703158431399297005075820928590387860802636635144329089917719163373843913643522811356262262369781165517441323839559574438887977415739533333332443211173781123576528164134042028505933719299328585276332434895865932013153865898285400988862677043414503687917587343029278066662085927652114371853590296314588563620400140926738796917140875189562470973317418154760758144741293046915389797396454615494905552703785648898125950042318819338506383034576275382827850188428378729591671794820058668565955584668941109463516115679088729507674086581399299235158127553555036169466907482121723327553251882445464035148683460375754471515915573774384633103335877402379403041790564506992775528780929121882047829328030389384332918235981965502835768327282016102391920646693207684610875536278818424367810485521926106998711195071134301720912555690176810401920403537722533849295087167004503692185219919062706945681613807318312495086154575320703328894304422954480988042247689352650287383072733534961712279501869592322776145352907880420246775608831325861529447363473557883679554066046730024117957119552740030272226818064505184585077463131637898249790641442357524825320407318919949311278623289418779849871779910234047660984337717077900408668973108784739111990842745623957558326035743154929300071557621210977265750434724844780314339082165594644784552409846520665410939601226335720682890027788564825378323814587912230659511228350255090883013300420355964179371374190460196243373028725004190449891733594455787175379556528543267948243907510426965040182965974750614843852235551484092211789539270646453646648408369674962965391055051956832480591305908108484734605235278995522449519453042292730511429209536948998044253748773459292792100855443673907922983980248649500560047125809283238157148073523841265210935551124315882823249808209998779266631160103203996399279002831213925294316511327763830912504253658915900405811048439162044024695963082063492975963457001457862421893728325756265110012965921295820432973791821940217907994359223873181996223316735651149132227344845272917434620254975732426308872914843614775716389006223294818825623179794191445426253889404431992841918759893130728780470337533067062333236005812787493115840393403811250550147863932925516286867810271977759255696581607094101676279296546004050912968058682945060046678539600122832052668453833102964450473737565406933723580933531706779398713770498651111391031607181745552045265691010179718511196039266466314399800798217008071915547663916971461720175662729249557478074029289235781004440092582378308442987544749660790066182080118423696598566370207413360660434631898910892727257096500376375485750281323679295268270146632263420620680580565889515940873762867060254183055726870881764949053152941417580398657337652181227496292159617798335542649293502909635515479800921719168369540814102198349920220951195927481742332418253455289316554092569392917583549171101009074592011800289834509051077886705419496130928943297166305835040977632728882701607279440594274471193642796894160460396734259675972996649632718233386339379077968920633514553495597131053221230242863237664698819577803588363230623733902913904598784368210502426606669526830414842026855296435374298151152840360548780527266171213922034890190533095838990144830608877604482732215184343112755732058863961576397986371704196515585780905548559088980570749606705004119294746494693043231610092628280453206370107677286779790576051723014805251281726919769215561312781005818808230754876922536817157580816340309831299782713790700112456126369121535401948277299598464842093236603450473004232964994431077255385702004575166629791793524126661229923598008601236978622857096573936751150390371091271096222771833178214465505930276306114948746232364299586980977687028541839858253370890278434597575306613497514066471211681845556108700159142470767426634401742486552195735323285939624036807841260291401957128522600121040567363957574865951150615435996857710922360590820873122018175478574317966925583457904451725579825241215320528204879999649342714796387226768590252391719331816499010456897862713687420939320248736115337690163055963640707755333295721819957716501022526320772469957392402380732234742853466658769161726756718660438363063846795401672322667499743692272961802449269148888564176681065841763321735655879662750648305342345006635831033772252429565955480572951526491949030524267161691543706557958840049258608583113872109811060496495977626408689555554738855130393393847105511628240745592981357986251192845551642180465329913614279794585487089364417346739223987835034009504425525912937736937668462423695016835290055482590755550033255134361208544455230586050829826971281001610841379722694690930549881261111758792348302753309498549032101231915446946305004173201846734402837586445696616105695959309585768448294917476020132954293940998288082083014693252785707728741010211559684155091252170079478448465680596669504991218200592737036518356774459948420860785685184031364337356021093115962944675314813308528635320566862317434674667120051647991252478685788692988980691965234658405655340900695334153044663376788339024499013290738210925915047834493848123314565245812396079532253200083536757221850561735685454785370050836695421727760545694404403889765912975927297306371740950013975736299689756118315195453587545405927608140129770397494402570023625899324553400695748277928808083378381311002607363762851081304914129706670719166009601228385076559483009243714103500229610206135696123964593727132635681510891477716658521734722605760277097634666752715846844493172685337291905597879389075328183985633925504802671995400724324668936141000921828039902316926359525696482659380678763642420788145715776653252961735074133379191783348951245830780384863591619079909871770486393595672838713085373936933922528271819827345267187305767193004984183052287261380300580173094145618732586466257373928354474391284369334762461759962780377916498703974362076320487299845119469335804769873195745308503164737138324551209964393513422819321071979668289769169861892563930365973287740219543098859331928176524234050319675066482285592291966350430051536071020650850021476732742574369078687736393623356455899187155396208674085295793102172087054343127086283189247827586026290309018502800267696740665718932275831534107636176339954000463560452507514938655318935645526305497541137088278422655934033583951382326128939085641171546870613659566219060053122448944650545669858947445905837617062704688474663052003413903931627155441596298729222397023361313402146067836019000342799282827814082149744884388261059743830989674891982581832701101779806360016449568842062162685523806161963712942233286405378426465224827642943478441620358095007009271382749543453821055320496683834070740632437298880962480441248652604849953782078013626170640598367918236899930536296234037711177300332770839441050527158988787144574693914551366586271638087757528212722676683032150467602870305459538746486308638387083955563045514220096359264521836883259958974063499211308503581198727456141684733769808491842562292130816081129664243848581182567759429985238328822176650056378556899702166160540259334499646736094525880639369922445679860969239820943061231519292337716390273987787382540705108367775220121603393272609358497670534759591739972601636171798281774820162909268212518436769060026182196048509086324987768022593576923681489808638469909939156752385052415847287295843652897648739118344491332541204092759685208035713942621853202457473220806159434742135810569282396769635755544522064595847876319744084566744266180577965569944162767222045207701768733445155556455742041574558504388201554172392027199552745638440455475980418662035414354284402144408829111354164917829064109958432578068309394504524458432790104973716498063935769436347496625669964348887308358545049470397423971199404023681640441797292938626126137743427819330849784763131684803163176410837862505368790872960976641833000937637949989807674334948698200533717553795899507357812289137443705761744134266851141911580988983654845374641841101294709196466466152957161730291877139179157623784265508330024722815860838586279935486877103455162978604609682273171000445835507289600360156189837912591075315107327082145331548296447413186639488558602781971685844419385362269367458480982713715366021318386890279062788551220205341787070683593879263314492279319141840828274466887443302239604111919614064688278011430406419574476057806668255372390106394906994120285017844520023966679116594769089965919364015367801144443813240350509558699469018290960998793014959065849804222775631514852087855259821400613986571223173310960942161923342346126193616454127766408405949393728540375602147191405931204810610181759670051231688889141657047004052320971499938117965485547350045483174474766516047924660988076310082221190219911349825543535708184037630861445292047471583502621274646517775793163513008270610351532410446010415935665206732926707777491220804551208630206633125177942198055071468639400079561126844837112578865847046261049232271356156064080694993448717853249790928797257225214803561588866173611384840215238290539274233108686690986536288098714758525096121680573736185940912032029500240126224637383600294939803933015889959909819687476004571753971364334450978259563909917918533820396718626575512974518145086977713778328589307011556018369757190772396510934965998899234127111476909885534535718378925770079096999155844393168420645075666782860887073728515961056826895773490995992391303182981049248522970225167252495793813995863244559631443810444262678922174892752826923620948363153852347839802533102284887374491878512364435184133831401175777041932173564169846394288549494909342434398150576526196460761658797802486131815895129810407201301620921804629789474223079021848015717732029965129462016909157785209659655484721905719793874325724165620056234075669520681732100756256089355001360914068411031843938442399021218202951080453724891327111514557821208507662699076256852881239941826065842546135111377660327712942832603093111920133941036047670231062558878371367983123619537620926789750168700201658154941911084365454709479907988060089080092605965623298215885641185692425342940915435885768059444345789061784881378268380486398961622474954551284493599087971254160781327632140938337419714508421919856431621350865368500714642269906489018850702201609174106493439756842057691719020820599204095770943785408342661929659223184789285840238908494763492315185038965815259994346988650000242054821754236637447890668633709789725878280455409916309980836081121091958743326240888382119095558056458069549222238273350979058663413996819231834910436589791001033587553007760107533064775007277201348576557579173888621680571473812726857905154952311868607426088743858533142328208203115888880331796813329281521652765271562498652948135336604061193857478924212749776298742913468900040100066367566137099806869175632192778577316951144222424184365197205391180302351366661724166411580400090847144431173451811406540431703941587118756388724267559050369378231180646291106915145117649801213217724973452160345943789394329118832518080716219713423411361477799466907749960086881941208795746724655495478102377903758071914873799935627629041868284946680069259276325526949210631505883120250854508450572847828907065117061860486638048853861366204929373088348816721339784867530115484302086957639637230794659924546180700119924472594643947377290632750016660150811379093976497386963635110549284652424436039016653430765448451676829703979699399856920622857994284124233040147744580313211086112008672653607978665414298789639613314449877952306722823748503683808227347765691122781962903713194884044035829266678178647452326625854838521453254158247724401349558697682513440466395808748187102559728446924038546398046792272314202736085829051571119162887763897573713661298816952246149339413597515803618632992049229671551735656029165120428722940865155006271333498873484548173238071104738570191158947967195955606421394969107909214230882304846708407920940106558752077536491000160944022157149884543958490365118196351596161563549183062917736679653390117962205656430454607070491525314641997057769392242600137425781772162813511705310563895567271271022561612571391404635116011896369689810053185086447468044131787741642423333317355955438606256595720557267170182174830481923490746843476149436518197192248227714850357505927028773538871716035460008696915495646505705307493388526788311991241639863046518977963530803298298207277040454197771653105724155530540772696471392338622035356987362028037666813490442762633639221321090026599082189072230277091500647767430353929538749289818103416777569225487950063976861284675351289942098060031137398957491430732608423357824922390581512781995142866634404362775630588543920046362851986355991868991384489969980407340876695941433385787476886353268120110358916763679400374177738782079578721669749879277202026175488065910636803098169326521828023821040368694804751240884584992762464919950555938647899947553445671768167526226499063831813412004263914735857520965958473837224077377172778213368090985710722051973370330779379381870856917917325126867251434200652214809555986427708281090058718391594328958803619043698996077420166471093538746234074498239485390498589483395981081346631657818693773467580420751916740781001429577777242929194041086330583973746325445026790243862960744476754651903102490031513476728065801695015108580421711427961644184253818004855756862000919543753930265097873502571024975468598281707272765792622905821057770821377257897618471783892318595339269653038101664350472292430694238175863893589155576987844049505245522452077369432287402587915786558149846728587083249185262104676778483847032130612147134166566393340826072210755292778855009412783664529456723739586912086973556899405862464001786112115053558318406607917634997363185076732878576450283776768624672458684818474168485997292502683706480360274252390354321150984938030545625647677194351296468111181780748018108194323705790638377197429363199352604301016934440057097286121386876610754025696091921194474143851614060320120153902015612713811849807670109298704470356037721435559284034365917510188064806920002202980869194144237036563229779053127246740469190057379862729213501200303758835486510996695451760357650371040046833048973636313116819216782358222705243232852000409027217782900954823838086205022118936329866522360211968050816935320760307558964989174833381615044210901395148188297746484199435474391458591493550096586313931985604889932093096648069914299270681737976386981277291704973533699048990565653967704716273674497413260202763949250972388203819357161293536884508510101868096045984716657684126495973445348591265341786721688888479382994962005081221177361529845304176838221906432399666506540717555526283149304392902242161398006984027455298234108564343062515950522037613395894183584394241258315942750593796573014375072462171670912317084750707508554681212524861773546468204539270761960737155068560349203880833924354629934899207623973346676889622257641597791234563639841881444704581306831997985088365579925946947541795701729512305840844490024840262969907212338015154983152147291657685958437674818509598667692615559764948398966803206799639708138144331703585919047037896694414746644778113191538118760775203851096961110971755937800418018153406482767965082902788367743261497825253091793252850805178546301077304879159789476799262645628137724321125241801661301811662318689303957907519380030890484689276074210595335698783113335300974820333255104804465284025158598715318953078476795527075611579088298216356010465966909306181815153587712922687948235447781075321616732663070114396853419834192339486545303205421583380469587704977641091653381076068917292617559328764533217254450822467223180082523166692085742169343376231662444065102370247953929589278242202958748941877516771000911262749802937865675916188586083189013562849800926342435633897222487638816247186164957418365464431975687220438665270812990531521428923513729992532575727592638366381747890760737843387710721524041116382941564264305534808601541341301468394044675841317798536501780494774762093166415179945682630461245960351152185975937503568468167579117163175974634540626997839854490759317122172538958344273684272696125122582172131881196375299188707383487684408032838211637704912382819048984416394361141407880467482356570252179509561120206579559659791725070297380958443511057434704324874548813172437877840901955687729067924912169267243830596514054441269842995882087505433709404145055042190074001781302652457428587691183090568344541234855782088505548551007116518630021398953200645259632880227073247758767078374693198262778444716122419973805747974653578210451908560992245645827933045217122294745268154307988642886800222251254564950449764897650938594252260681478073971210014862548926677172286175609878027822946080197939329745944562760469920374947751221507716083471465947792994665412164745581728618030014850460216301488713277000577675233886786487069179554418803908987373270755971133330594603727926171162638282329691634014164598152304153674031387694691022303394004383154068632620760906609601149054643278674712478693141307972220813261500758091900820538231083289534491270342816551822919447902974770221100146111884414318071369514948909833213719918302677938954440344645057880603755765700657593307126304543683420536878780726303441893167248618305339350218509310411091848433646676851604663500075004498486206159529802094225512978830613789981452526130037221613004502231770905909392890721107289991947583626957669257176099425136742433762624340823999590685077580876167252248480962401730427095302411507510222752432116144929420260606119090776121799909104953648928673181703168675239824607861396791854018506232015766364479147985038299136382193420307994885778962869285641643559127045101014579682835875418940043758891086817898188348438695325134704052233998032090488464153469413093487455417218418436331622779474684924622435531673504071146759315462243012360940714455955994618264381152657862298005621510761730519893160103480084307098634295199165066100912535945958447100810485767802038726761846667122376993695535272928797502467746333861018649374013844124413319678702187153351916826750277111637228801935771437721775404386373807352080071646217063269081937459351744784104375935928113237372170081429783953495754342295592004683399482837995937691025625874952164690170915590260337721265798082837250079183654337523113215960270264473893881107008064922204746565436704686938290235753481448463196181910038592579416208392009325979105185574456985621116295050481702410222572381395026993858417712713946324241949008479523308960122994907690827604719427198315061089375882660420545256254585240539210181545062697999554474777910190282452978545459824618417376692698720926927130209932284969608029576584780028538424490341863515127821071419582929746459122601966594759131192179821908887084055526533304904596576996476354977136680716407350848802531926749026168380955231227475150156140151977319386210146518390998523436192915605709671708048885529496014440956365408883323341975476569976005782989200801511835783267734124749028135882440624596244542915528548723594141274103496786183130696439842887424822301769824713437349485670979957422784352345589762812121940643394116156788113339074527923064544159330985564904036517088680243459231548173084246460441803945329308852589976471244377165549197125169112427593888133506930179570346973585050357550203187158317621679891454874913237020024147545815474124974291102937105325847973115397759273398227391602152549178994175191024157541453248990915808248151793227075463611424689186398106542271545101910959169721091743297668197056226198146428004019393779673391970226727596470402111843539265725262443843213952231851434299642240141789070134362679259381489286266026106790831525662171580551325596274119473290690710793353642041007043127881405234872418736017743300830182186351792572779640313083509038931041610166098256660744628732763442970438790793269433726513671392104007830348326443591790004577009895745811172044460751642219307820657840828810562884675731341172503939290670987865457200008797420696573693345962182585688120342424957998080115643983261426312358342366435175282094643602115307502370780888261570067104950000923084674683122003489162677998924699766080926371117225088349187715789034937835597551667697325931421305682032049292157781771793851584108121732589341215700080599829422735585051469404569931120573617589437087454205921696946164060786835903301608007030086398460726510096917635782916246691202065509902394962797778700928380899288919497653390720964858954036104680300227969967515624086049863917972666962889985204398724951768382247537238566324023127944127044102975447215181802840958360434115679560898292432859267653963727398347877286984996083276627861800188170245970479447981619338419305453660967834572150170070461750088987314602541796327392020756298085449359322311619557967047700784718315597614098442430445741553552845905585087887954111196903581865720378926564057510865120567467556179628829500806730234110163411378383422430914235652407963329639660463480441919730792299439541512404220642323788747141098143410663443765861824468197654361795606603129302082979048201298830209647355571847413098346418514478069312185484018054461343584882198436946836645354026814143725162308234238120364385832735781850791485373046441843237675252115259153412328789853043128419492218750043199496406537138220312733391749639865147788324577195724902786671068075514089255032566781652753384753576762857825066426602055221600883305902692222505411047841777774794790534098187049632691292707359467768827485731306437169251872497978130796600820477428258878624397959678350484635952393127520504782327352848989420486484615223814581660920190170788183658613483891324509155973027970818326812227479354706400234176321649206250720831794588323019380861119689967945900842045648297279830020057235281897905728277043505149307605104489649174502674914753820127947108537174248989423508970038572274592899872054555776413381548393610970396321730257834403526284041273401921020810702561048927547130547254072826180909717590575879215328177655985676120697745717154195246379763756843543518705235820287348150422492951105073015026270242024442558707421326735115673944010498351155366093747228092765484318434210502379525729715901814814474099121199365398313477383181738955509603746471840427934187455004392313394067410676945787031389692158527500952161038925575425552327663568657496744883104053236649322263011658373581043496634074244715233112489655465187781251547311488399343149087428215053416232622209138698261801195363925064794493033263844897062883055900341192656825179516618392413995250619359827223731840963121254234272537955516682884373045456437673430204449615484543776223182757410835408068859576375372242452917766221162477089904725221481496690905865229560802668871130577148464405513206083278700808764204533254491309445646782470124173276583887360213728864776210824708764099381297405978525018797487216947645456212794824266647405564284060208287766384832283791682259865333640066797498975846123453312064019135161299261519391763717334240143786851271084468403989423862297731720140328738491522368024862375590605428279971477183704910216067359798661070838906022786232077326311985339613441677999654296914351212041405471832435350118452583304976796547866594210724997990217860878475848220649684498618406510476955264900908443161180216149399481250017633539991747694236608652118706981706342751251832062742730167730250614721106415408907686061305152748492387580154937338058500566937020551468106561181494736666129788308449524593407915718530723347807027751208263505035369738187096319540564834884100791093893426052731235416267251333565045544616823465764523459762354295340329036005677168834926696368045070264648072770428471224820318623024018583946957320810384950304813326580871460990508726222835847405753442743407811628797824257433769707802066770232970763110583281798090731227260325211205023760184056528322871021240582014279863186652547999794949181304409583915638684803126428730413719818664444989827528756474157440756489242215510529677950428763267166494407454196243740093786010622656396679719414176859065905745506999013555033370666387161074827522875939160609584193596747017067651077647082264567746216747239066501028922759060695767263502703255238373374773486809625409713821312749586160189282397411857124256756129259293258053971198723087632605892983649918454443211774446221792649563944859574162115733184498905431458077155641999143488538173945562134809180086192783253469624944516632294499725894887965936946697256924805702613717194889462971079044731318533096220144872400240292099750326879671559529504670094278276672439420955034912081934252284937581899003309794733080592795980472372012242823947417001354078975448378360820172988125368773505479225173534189829372258608950617311324769515778217939340501033141467153321642825552069265026602513672714284026616207436624876348825275236931687914222429179250645009085610944117853693305888832161282032824206073163144009621874423423985773041544973421846672484027025496127752452439913349344133043098613039486794537262110365864656723725874828229905439550711267601895590184429304863135621358325859770574411822925890377132602634159342809177847245449654306809964523358288999810963729955652624998820965282664311501446283828185808862061270236416341176884971930781922124454397920873112905671557836189237302545150685805812602235411949340545886292611298498004990928756875447461796691949100633591811890190546852374532530574555721564339922332405605969259537127521305067345128138576674065595638905374907114333251586641064625859510687188094858940097896828728087376673461060201972006469048161308156450175703672811959599306729981298692020328178965177180620306432339561865748122044222544415121152908633117596161673815240629710548718448976518297318853617162846349838421417346757819844960514306938604490786608994080782075415694952066118790952784777540423636432070070964145985113962368813187316740840079092256428193186732103521708116900044778285223242017919193796481784172896234766612697265686509790114710199872441878249138398622743819492057443659270892867820282856131011735040631032438858609467831664299455222232899513492747182501208320180923044747627024005577618187762409973654797546270410719505328110491557116699927289546552587197819509255613495424337699807276024246130983061995369846676254572683789201530225101520273578732166258641828641213929226059033642333093567404489923621633375345464966946103011619906600500193103753897142795112248745859988689482970382128758902473146768915575602665840426237750672190268377243205494539821136593781377142763772127960763456602805962147293160522531847242634321733947284164701626225482850512514723565386030042894486304288450274643097753772888708338978238174783291447201233153565867334377091607477097336088722017337859028755880938175560665835229449999529789861432648468607331578151657317313858017257561681250158531871983800172122181074512604239894205661232098405075844077085963352558569225982431070595093932526996690567998664902433772098956525618380429389766572543724213474937966006216650679741364350247328829059055697902049690795476583798541060158889346416941153789788465862697386405401545107784012102924666210255277531091758751290695857571977061686514871826085894451935193274449256609578898761829673126874671908813615015496757415183219820522488173201154558744979730971041321930388493123714486301164798243330271513698702247350393980791510635106692902344579872765079326888685502489727105348059957996452674080841587374023951203123972322311820187066766431390831420725589331027374056299435599669082143047553037097089223421701197334157845915728527326752048084884576037886255670427555592808727154695219273786451400849708465523734717768529574144796969867882214611100182887069204240330609297059224171453055388689465279354093627830774293228057713438062591569476932485427480339804698786458649722862583745652732174509067290381559030631330401036773983062873346067549862646385750966412037321192445553436957491183286241851869772885688867174008568158084735075318274395967620560969763584837607390853337510013649263513319472934305791266607085998574608930201054579845502668167136706608159122562132180909536877300707304834947634158758368358146904998361961345541349028710779915081920663001898280109425187969570243167835929655190993617259605579169658839945163610666216400033732391369112346321113705526260234013833622225987815667679839899645571842151679732452255103274657930947954529855173870284206987364874026668478942806452921552078084189637145584875215220229599391442886338032188834517464674173860810219166483892838653072719435488538661366481661339766886660717959644785558699481313348042078752552943131666325208199121356666211950550619531142108572022209964911331511128634620290519276915304835446112623041015443192626208736601138618955487572397254484392266152344441315534893343488710137920463969380574685410415341692456695015635536138627795224226147449824269527074802306243111079105373889558892358563831541780689771739573876861054171369053937073484829122341307147216315698265475100555092171924865377930525379608720086835727675835438860338792957009064770618618921470245198127963532908789532150597857034352420588978393406316853973730508255115164348899163798150699195779670226171903526841376679396292643601294745983833597696751290624847141536384241234791297509829997405125928542486629063158916118352602855508365659659415532191507760027695285107366517073653389617860138966409873404961910985874978544379693278509393594590433767460154070279246592398426395893698749331675228124255135267343550278691104854806492468188913390215566667276931131107450068532411868377674243277654622381123875658452111942256807998413216218372119036981125921569195404429061659729716042892420937968149480243748629403943393547655945152413830788780990533464598440548187177467907293307587885905521265418544290835553203764156159328091578844862573169735835560717038970200616170045059016276046815827835772254917307678991659070927014746271189139369716605773215029301592390329267601553915216404510140347604646963828907855619164537082374442587728618268209599045712564367096269292085130257097387968746367856183619062561887254985578268199403746006618825276528708401043027662912847328810986547798064223463462092932568473295116637557068224773393518072859614725384279168305644214346400817024195912602502544660607683125231956643973252995629623215153124855082396938136792533557641215126309463450419532803155480268037970458689009845432607159487497867185611871676517236607587304416476549201941453279392932228847241332505140512208307065470583972869326635125706058794719230925993705966315072413042627678171344125117962311384813885887221147425880361475135679242927857636892313709654358831848122683785238339825889810490952256274518773169133675026047266184948098793035893012189085281353570812053871070755967827773020361919937272728366696725711187124746503550766035708943294251393871765983199491223084952510649283702272667738842191068794144896520611704608131417425569837115575999092833021671177816405495741626008719726768800269600278307899183901759201681779747608945102183787834897037180862026954559449485724391370543306355759193820078403646434754400414601476196510464014644318162363663300075367488625274358379336872215680847452452294803319648722606340623067319197362040866335361100248295103592675954297743277012982647139555233462758997429898097954989494571143264850248315987767757076842081541360871399082263329807866753373556699410264938306657661851820201520439312648452662564065602858901718074190241147267986421364406442457816004764460733973169143044353696263611434092616456567722274901686580827571108316130682071096800371253542650025093511524094582676652662426168601851692446926817739708639141694243080032104194184108054739176634734531595818632199774710637540470873433533058481428802332799669785800015108791232524751405475930496715905405610348880565974495470365823755875261184270287694074928255259975713450949144813522656624560973158192762126118452911652112728288456219293041031760101175623575258037771065134292296597478587605088142756623786535027069773527285127791341516170713199403267844306394787223053222027963889279325881146336982939428150741800098841690595026804894354213502861646552281429813611784665770497858415247904182925156711650375656716323471874605308623040810842007308761262053930833040457681060607326432674008830405303631175653160239246912479345600713835408429135955959891021743199247271580451645219277447512365219751245867485643657456919533671449679555836329485107492211364168910008788289366860280512594174139174717992747023271486629662109279674625616279984634327550891632155634170907546468280053313945256435385461324860697323738613364320179848552263722013226017035336210470171883290545414046445329043987119589968289784871660118865561176182672705388640517327190596006985022811235235874506389229630024620277511645169700229342946525554946868689800704344941510450497290716443817232974119313644070847986346729963116102383479797698539875032561178788738233301288475116994074845524023033213337929904352458521349439143535138039776137632723659320730350327474364282941857829386029754136395545191106732647963966310925788739314432582525601507762403042226489841982952587559526715552658160622351670725924051200954902473121520510943093437063248226969679707853459813586103951840313973016509631650456905874108673575758094454772684614790515766986174801739470700068900009832077460208747337691792428082975081207353980302096990383711304802151718553082043654451728527587891172325646284370961428280382869647574499166997552427019576392749910429318074990177294147512969020320529967623928526414147442445407424548343629185077699066524734201142963345870673768678565428680005865658633328394915668595440725065490637968745496308437526636887706814898073660366387186502210053549724403530896007067975160589724702017334300364412315906892177081922270899750658936594015873998066498317008608368736326673531916250589467814725678442718822737020613131227328433068013098673413388616895890065644666023163163363747172284523171734983949737325807534034897172500187316893552710162023368949357267151548195812378689462371523149173582339239498259517146530034703958273859250786584930352318776739320193266381470428346221496796918913411080136202714494522006893790132996629039443872078928535603484425554127046611158419158609210502750620419922540766547748039209031789409433262403798829548595013200206873797644893487504359834476311796545298679467405488035314463216664673808849037631413072482043326664550954758885095162967676829775921303204918152019117996621152992613794397856747041691660870840689419240395336604445911327805094694245842600792291063448637196494294498753305069931684406532069203855263730369072938657454339738285294339157766360775227565165889163831254447263068750892263009395244547426350486313694810031217063677431232704852063182819297638715970004809595306109853788683139189148205893034088244066920885027444145106623594766597858634607489799890302190490914458420515546241934670562067748207243515684409995974581004105097792800469136026703325825045316024897945942830472705783465878395318514950044305619415681008275220502192476047885817946223670109019839430387791363474954298159293374998095723130706326859532656086141479012663481782365706877267027078225527126184757265690103810823078491641766795837625936249626470254435857902963191833971278380036636386652160283386656857179547053285820254834164066464303184707802949780278537376972932684266612606470456224034308134173370613517298384102235729656040235416023527552821984365962282914664694002208654975208272695780562582165100653631110684566070932044786398340844743209044200356506629282264660827438923405440174283231726672972186107527812719584873773966339134000759518852832458204970023832697010959303873739554113828140420655142721407193400203099858499299870025448893159998722531134775731559262448424206915825280666125877423993173350563404083820677463114592321691633648915369414108327145705187065032426307431784877346243737627770889303900534913795797067708980392317009756578196843577658731397013328580294053884391203677167615264543046846728315531832550922098989356974965149359308358024555759827044289082655931090996702682669241715075993007782711138962923893755750859680928614934787552928553088498314614256531951697003429521142003964932581033327954682394901309613639527779668623575995559591084949583921661209860054506966739201259387224509919179881296377230587745106382449639586381803158057364469839504301073375796233122588783612054345945664823117261597660946889574448444975991483559450742524900408903381047872375757716838177394350477431374268550713172954326433609149046250534946064507150580155540995186785013405401192930645992238927978461532389814047592848842557849347420908569678742381151361105674096044546040955380606110079303753265206870189988775697833698065366908338605943803715327128355495867702227800014842513515542769593266720721471784700561048148238213068741202365091171574104246071732797740547610840798598415293944642748952877990686897341978057791793927964221734056826729349190693893981019307105582386578309098494867864369935980708998559170416377386357076871595065636568411760604312649344201100690783780297202495083812817822887179012415114650328358985661168129265605869250006163104071204978930153693515009443538563688142415731357308852928165365834264517416941314212463259415170454464252916665199477449418403002146094412719447924781008706349382335099835869323479289165019179089914756781822786008313632952931650622717716295605700170219312794472202447608133048725861520084145853396054976905113282957611037681933522139184118995024991913961859001565651852677586427562133313044365229532055419176402955444524681673655970023197664380196984917148429135024900652304274212287206623745429968688412431016531730210183085372654700752507118036057284974397935122013790919928468456297010771868026100129291981658669746601691423702101927421688681140642533959457358242683037501900230992935360166164501973519312616634647398000042378736151358628545702374986743808887994212564310271563486765100438261594510727526402115026918232035463972403812990115089700815081836396229083763927862665609293845791151714727574872558370767618731741563694852907072817515182110235920400424247180455903055993478981682157239636759028334428307703362217284604796390976073832044255965631449292491301709196193389512517375589881867173111745208926157136515199629317071227636411244316209810641902060313960713341552165587936246035386450533337567400129676466256244752612216485014159299663114161167981208442893355379879300786677740019755556421637697012104985164253290224594041163860318720825375918883412130738887544420183708630922828324879922881097120936697966560224749469732389169389002754379542285712855393833009170308440503467510554383718823738097024516982021296267606904991602465044373177035785920402360674527191295132175353185079487733538488852625572056739627015800817264314679075507588446106080876678016104749391289465080652849455506927243621981487106646099394038952047352864328296786327920576772303965190238147667005787032960055574516527458699980796225613926184694964730713196751945568907294998244711188316077182313067116632447939585091110789459161282229631019041425640549841392474973751404704646541644381639909528146663652523324875995341943629139657001496117501099753619105605032355362558435051937986143540919998583530403762050518058378804035552917652429191782235927075897002153159695651303671509873159431584355745509267405413070041412275583874093098406732839051157180704266494769317935296082474888528960933892085232001004131085205747292243907505446734037581359886028873243962673371959358763208997395599361085762548511080315016560833003386752354212502671118799351625196754941976980836032114445923095865951669671006321027888895081592570468461656680424882543963942232545689572710579618036600619618289591601791482183003916972606321012697375402070759665402474502200177644779675163511463746521133940870840942823277171835330485557114526110017678487891160330920518215228430834446592985709504144739315206849866967594341174551041184886868521997439505626951664180325897338640534544093689323047649791208405832598112178611813314922749099880525123302248108747268261377169815646794427887484592681390214638101714168072569100935760162058649226044788432456917339896620236528676330124886278511347566023040315345375100485353378294945623854907356375044851740879148724041734260720512683751518591560189354897666960942498138056763533468778185533550175605525977042864269933880757262905085647415541619685316168413562563658077147059132454339822665149119532019442695223473033970984124126023720652656007201761029998371942722920457736853142082241193909850969397783902429938290829637352626237500609221546724035278860329892454593224299921729589247542296907204828613249345705342136459915251283498204321573306261764053423235980444327475925944454145750196095464511320276292529295609226011546032157726658929112307135313418815253001310028747238364243093597697645920800482438891106968570839858454360910274762465124159868472023626969561495064935443323074794021641530756989350431143980282762063283078975038359706594017145192575342278349531756396653492436021309533251294303242892467882128650349740262868927684661472688128136613171151019240852868381911832252797084704295940437356916260591396154471969396820927091976247262224322873409949864528441036898667337711759184181948748235991926432342971623120652303080276757714266585365299594124542847818523207944184365953353586540161389857455066023900080970536893455880541339650381187577218732535109743784133824778578281348556482369630722721896493011035014819791571083510341352362282879672084367733759235936128611536815084368572773481391381063688242519541646306897537629568819146753440628395314698546753047847155364395454581026329658725130003247473965569187047663142285350743340220368099910885169449292155149246684111087386562268810518513772545405004268339123845597087935327020315542859560085389340043683507270552286044489730409471822536739094279646245076325647648095395260439487123196930373796733915861997102040927611859909501833524639131463015512881137062603546487517967880838611291919690582048893273477787692137599346367833334167547359412077115415478737448175737851572220092287198012923407415124741735611949915313976267547388786309519188837754909748792287037750914115790375420005424774156799372225831104770646787722157159510204826111021943536062236960796640437577970779353213547776976318205827154097942830870293358428093236778875503225882508973329159871208291684317516140901933225912896736824841626971749188665257204271689800555213357646640396213487802846787837799879729709200642486266394511545372077603766324386368725138518232566750165587024531004667993425896049756012115991066866102103231651997683410135844474662374719710721143783301255383903554434978264608156745259572830672827703622292884900670427905065238598462406401599026916553292559091720720941200700494227979959643177266805177800837082564145868610119426954496093750200874072856348675667112137547745073532362920412299751918399010048898119730098517235743107245849781018332248775267125296144402225927936265519350613804541533463776151347297500705177948061304373578845138256876387512522284592239623885158416842478476698471303758327921069175003514980704604042498422704965079183799552689780304096655329847153119747230775749994161485060621667807701383678148250145063357443105947004505293849111983173774323633255219833144953000351125814663208976853250199474899017286646594263402374974767245658922967920055468853708981430334689853927338316422482581282789888032008972941912172553302550086703518376410433417926075670655667600767722549658823429029841146052125430791416404891930209317729117487026301774013377450499089505622542521558009655467379851041229351575259089972001130837517716770410718638674147000263185179924802537394622200993950297287925495284675732599592853387766487060800476838758955775750405736172582724783224583290763124950780249899665529957408995906091541755321598504515978053905388880992477553158942024105152430757766045058833110122139696187153514628107147918859114731584271425230274890711054840679135266481736586297822320185542417328928384910923083245445990655572113337516709260560133774497053305831317196871805208681495458462969031981291255349706577356245699389658735306044364233649764586207220290009905035654816149993104871788023885441136969136323497266649558584074219894298303345771330429253195944784148190250558939551669198058870975220296447072366781553386145248450154890492818834250265427817585872134220715684606045197737308519428873729754717395074072487584418088702532515623496453138715175288643015750147711157706857157780047090037015010802954689564282512283964017144867488330457446290755277361482011139857290057014970513358658556064554606348860195925970842267219868087686842688395878332734149492293028902464670202202092522318650313665628527339346928677663487956352726847477388842691695058103680880202406117403677212812703464027438851266101769961065670478251702034806319125050578020179942167946640411019896148161268677165755381514348690538119746065844676513847462832290337361823332464563681590858755354221808104048173770062950155143175631011236116355660442121565116872687125447021797235803252862442676504719103486559779017705776422269115858746617767899789614326782864065418690923480354075263917354057957045449639458932115408823497701837907510392226911564178040839027132689608156884713209191504766296905826636198643236969732087971581656237051468605248691432865001347213959927461486815771520115907541960438385122589758661628893260530831636063874263905990956820030175658567993655880833758605151099318148740513797537263399805494472267719764082977496803175567245254634021616166274796059846632623005287412568764985850214064713263909784559562356322600517049778057342382750709137154432848619181678724192088319673873454062416378059041170883346261031891517043873770608882712340030788433510226792432250601439986145907175061021317838653851381886578124291787567109417732210345998559619598528203456100153670152452851510544823231511861533269206223040389825553270716155722211473493939064284476179908113722981129512072221517737119825748283341172939647497090529917316762764277690948426785941720750596497564403281488620501453403806539518112862953391972496629598188674835027514264403105429280162081627252812269122484091107724900006362578027615664838367845935040318546771897767975438060552890745692413308431395038850745042807098622398635746602733201543263368394225899449766628255460581989810516724461952196080669206311639425056400457856987899048183595069051402098973257988037997474018374300727291516603164844130978595096724608799061577807548895495895790513097037532022456041850065766432931755293998941972826890233856279921312862511457601707430965006091334321716195075860568560881514912179551494351631891224439085353059539100667685325976079699237243879555495164994526240009480098479767362218433887177217801262284323494957735546217979895023692735729901122720753509079811064042412687459883584806830371052950627918278951226698106404552906657019027902753506058433193855369162226605430056542403558217437476472707177121648763331686312140736108506650187490273394431252034004617997607291125484091178442751547091993638593556235941501891837333900525411098388015951006265558866878434553950460685169117433415021420945572416672317349207795634149280853960163495568690283541164527036635708723389274439838415105440132373371062454270317583014628772042713857288430788227069161666941664981827456577080363760625172795126382806128116387989201660509256336635757696725213071844790799684430530114627881415515002962740178052919962580918729000106603692166731082864721592442842098986982481817163253958809097693024962657948803438159930427753206407891215609042512656112946485848338844967769195023970140500610054099952215878864504301661273648428367577470853978960641386479626728971643162590217945553258079100541152580922955321233892056116463177157631144273244828346637755307085591078176152705760737769638524857922151649596258489719042334032895355760040341282096124217716220604201814051917011869249309284684796889702210925288629904617616333273345263489849561886269687284897684801437105532845131716670133214098122402548037854792800971228694766575984800809709856118660549103672329769881662489612004748769981194748047519062506296539360096341404034739944650035896364393475739822479453325966199812853109301832210598278953388333705056040813565257906882460820496099571094796806616740841602821918080969161702984155735846514370179160722467480712849355592159571268169341200022021230138344543397936213820917783293497256372356572431658216889407236503671686098325947231432940431660385738120635800041174017253071711545612576510030514177445232028593102833850907832237028827787524044664200105512903694469119480613910313850380671607519407256960022532062589267381198691896096592927673808686797591950352865408454755826396475535671548595866196770679005733715748210458014818504244149819935482941321600640312277684211992238800230874801168732812638853236377976301337943582901826676534754263818446434757867084631460752912275020276116514591759568095959148531654911265183384302646399279426845396438541861295566391303692634473508157765288395040910714549278334668052822172712397287303421726687997218381800079817729011124611228732200123935671527108474069996599078183996492179659115729345093474356484501805560029559782465208200551729556212078277576617523618576495584897562644094023053366175569836167183124563567290554603956920292835270146043364908317624714574261144045295377030823451268397027749342613284730202887735974742032802104949214592938900193097815348125016349306118267826573411087554018410020622829171976238745615666539504514685779473728298986490418035221388611783244715915715248957694678110233572331245325284976304844202038331015653719850524180477420102721856217650075873995711826522847959927315414164721510142125761857069398455808466375928475751434792823905418912940478541278871451436016052765024605756463641862281700397110439490910410378905876129950309776734060195505448148563053365279101166061756963723233693435625788004948913370504980399157616395461893553265449156695693479122489381413653236327991850482553190575669925660314995857132925930343461868836240798808781973316380633757566310306939463822132523880621472097903035739791887495841133557494143943573113298510553475307324033243678187400463673098139065202603571621783181941253042069853338789731471743149304206878346605263328283193645174364224726667271561709951529748888697004557084127864570453210113985694444492497019100567549231280368059638027206725129066490066738173098909702386777445620739332497994706654656749195717798065196565361690001237986004351173521576429993708729881931234896172547584640249534828919995031993945331000737675825723872748618383306658669308316829109469543002481172745459323113035130717130513800614327867638650939174752838574060063409419864395122248830616495220131027101224430463745840044064477086005306151145364067238444920918331077794714758130649094143740419062139529309827263508487579309677632566753609268634091550056646549175508774424058982183594340765866032585794231901442494330304998328809216513820272784511259311041654715842180614844464460634749471659998074316330968160947925570362514804468788396243884314750078326611536980544826142694548080621619913643607143000351485934893302919815544563945333346973498266669624298285237070060118208614372757675504932453715316358569130188820276753507697858267514394516473045188597790725797221664778969739817359565485271506147567777071060514529706922822568777493566892058816880816733177386189283122483954472514154002752334567009764881269491867943471985806133549307255668661021458954147427196732818917132209935968219465241270410760913557316281940781734960018005251151302367627167968368004087865883767774053912014867716911313447621282016150903015736894376001645293009308081121135909332121183605567733321991114269487995562949934632032572992450644405405158045717706713409815494321350047881386932105242692210565736887589017416313270494787587153652429167874812182287422988683613806756590654149680932596377437403538630239409559831083199712327990618452335266599575838849025558889597130540763844767295230135820192037686953656663313847966966705163055650467405661713272510976574227628679744625220212777214064197790174831101919590143947945212737604397321344350953997054565007491425935997017099084912674998760386660048991682275423058119928796957410218056434896350543920218371531513015164998972282161151583731056941710936338685880649781824357654954673854484034821222787644603625468385897922890573872917831655160626940266403972357011686642225165684043449320436454831843576024132463350760312883581342354069259640134376913873424281848379030230715241366867329206117394721312840818563468841522465464571919639207070797499664608203211404622825998247581850963201879522762636597180965831361324740537341887909112254507972454391089387590656149519431877212153015379771676789871888456628526284409658903412655321884982858204828476251097336682801451627859576988631434497241967641319748155666724572489009160358071156354010374296144535857443780176726565505968810656565742405131152555302411244843309882695637791335210564249322081103453845831891853481393106003379240478301511370777480760227358754010886862886270068157865076317540056839681234027665637177849185139358358771843991789535621519531613974564906318064905549074407569231949931214780016293449010184687719632029104185340190778136130562013840997258844076030320986551771347901318928706329397385858352414418531652847583920616309764381793338665467836347835877026234957206526965739408241208277123864742841920112932802003166694360668018758899484989541662864156394324510510202431852951323433243918292091417857643888509133406704597756016760121740790691152317271687334976860251021925724684282189501030086718107017343575717092622463470600149640084597870479005315717408541030945243121546983402334396150921192753228399171992250218818666719033195322625399778173965128518491342333559552418215175860192854873903651967172190085501664116239622715286691943566285440756670663914555273320239084168561658464532281485990243286740071128003923227626426987337819455238533481367125665675328229311249695233097796819250482682952378907117565582655584558631516171738161980098321671181782368234716926004198673066774595463122883096809685358025460527892221336122504720250827323423574580077032683434819918274261590072524866629755115836200707583362534218700760049865956091908483884640896279785445067475418158612101827281150814076726633206902894985305479600049399105831321974001821253177451553024054046114437031769042902751059740113650354480808942946666163799812689356794982743274203317216533119304667280315711396187609272981483540083421766989555337452644349456159017352593235829373789358629959570890619651397768153290106106187144541040115074396800681684158988189709053524051830634249187834220326089793661213000132878252892729090757405321871974008120824033710750394330895155449941252781967884285879430698915619527139224757904630771809218165874366013609720813624855697245169365200133204837531057476886720621069812120935705909875227261059357836734976187635008001100449916125562098686355549936294761846442094504873335440738156185498044249512022872607671559222189894697172398814880203560058426707642857267900537719228137875413198876715790833069746087259534862183470847178370317100996050647471682421578177420132091816931146533529987391227540597180789577102166166125719317961287361707593068204256430591569562616117048844211751206411829932209361366140325622230616884825515275501212492639661140222694615203011733550046009016232295634667315829768853255911481926759075110758003382900377061924208053386069248833633880662609864538638171666784458571452463953505313661383757876651509801476198269960524223158194177321357769124070497888976242449317408240819904419328947587323341328872352159008167455665652563236663281058133531396188522808765161751333102459122707079754239654669892743010255300756970684186087339289109188050184132988420059326546630917636311717712024672109065590774287215608592277057821470830041778815945730932341996570185269482493253877288563038747973588444089485331962650658490834360082407370807785744494348912213524750400394111099179190345628213873193198701813003448675747150072654584494556412286329763235108162428000273758518200578104569495717571373134842997222881650999955469046154586118109950015583952468848077828182196779327130132112777262440375656658299883493632238557959783474410146917343709353753757837304312281173314852757516209860726618734655899550327877194734880381173089870182153718741846300714345757288318330932262646033487831538447172191649530369250376301429583162075195832047891245567064417252617547131447095374413034785264799402728525469174331167597786375168799455555270860490959374015394261996093525214072759594076209570536420632020764277338021946829572705693757775505374039612739450006586979081252977155478957215408615978290502404383494012926151084443506870712253353006984118111843518643500762361252274740395936035071312504183741807818423702444524633514247362337153154244421701454491346350215402031087998943171626847334718752654562496244953415203399656384832170072126405662409419814318229455113525079773749957460378448996768139679824794070077860448045869351153918466011509297350577983617725076605774867163217734809669713117702901487866218585747555723743414362922952474287455484781955817325737244136511280383723667280517930322567593110353788982359962766526230730219700319192550975575495729555097700346346518139312017525826715628874713731176761981674167966860200497076833463308598731676637109830727967865274013667405005455329869252054674516819778165454149422422569268583465887208512813149084703203448816167593072302620752314529705276445646265451252402221978428803308626512512702891658092687300095107887977621378052856214035280428977436260092738192341264606404551706440989980365070195518123822054343048353409794635567134001538825741157447784125266061910010173127271170438683524064168744538103599318765722827535373520243380787736474687205543044487648475385711147065402308391894234924863852636077232199609979386678810916963680685030008682468251799771098528706233472386502613845833657672392361619646594021369219338503961571499133763570930056525367286063040123504393482919071772455576132639684468757727007953764654327360660063715384062446754200530858450657193047199238494789585295703286711090890490650687347661472728753828993648049435478608353426864230925442183148420533618088735154875995882713789745466855737273354529802405213524546845802500317266518255677619071929557729791342892329928803221684195833383229002211611504059442563320856971013130428385485865502629093297553107803509441890107334521267777689189996442628148749287020474741572942392614640184281585022960075435673915918282129373196517621089401910075045705986015067451721905910311236655163823975179583817518025722375740710775155128516202627145762518154244276100634098379841482629554241310411887773401667730002987823223110813170346127691139511917059646370312165843883317359694261400158903339394026523415759713297877674136755096491143369699804086190078816337832176888821613215977200884229563376179915201473047726667755487384678577261557027743413479615006077200892174201451379639996985037033762550988091633478340016648405113125825471089255405468198479149703574249641854956739950732539088821877377738414614036932226795756490840149076037202814835006001833464331035112833172075002106402601282556959461338367351544619588535378009379862239626148329135039441333115455557238207738017173431599191726588078351551859763383734280771311453716388333818008572517676191204483314670266135573210147508294168013582962401310954086413800306273049607877918701428215088493837623087880889872243068671862890364066878874773734323910828895108515117544873068918718146371153331885594621760008484485645112960880628811041938942670777439544910364250807333347878682243678496466168363857796528204353086148666330877106516463867112678588910183230110837902493000011276012697842125510214297025402583227495221625852538563628444170903043195298967797196775304013370173849745648186591181757997317753589468455096701748044220850783557537771918542035770668469736045523462518987933294279143159091352457690449801611675672357001855151702926501620562529073753995262686800637615632194748205101222978568923608144718324481810488784612530608581700728140969216943100765621217095649294529859711825637588283552305388270404312444647916859491523842124777780984312052475688345590264886565357051555124399989799172215046942071624693487465647713197308020687053567414194516945977682259720570501292767255109310199664831463962000104814814782704552080321799724920080571929436768765055337304297752489631159271305395565412226702445119585902895518908838333882165482097279587154167728541692864379655473729662882654771231979896012945495264137081369112804766697596617846840235520621083480125048218548103977490803465172192899286321516618102913258852243205463599932429440909213570454890375812600113368170289173814821641856331470178578756789864360716582761206206011974687722061835753306969350606699467957138244279377427117764586702125486798633724183427700122338068504190879527414146866836138132304049323985074817025534053639256341920276818043785560669396288181546807561365335947204566391242334828286978352500678675963498919467218196098953083564794722983205595577596525196757473251678678764123308217496279664007481320192383476731700318588145241327145256501221022515704700704238522489049802020240217614947856751547053888202760772436295286409088804982333407749804463687644810246100016080585868723553079602515207808362188707944359668792453201617266008427201568621214951034742808128175933203356251850768238106670482728310987787996813144139119749258661533976699312814703208097994029148836601656067581468986519685466414447379179736914679074380605918011709710037097524219579447295924166916953898745892460038924961416557337955530225079603160005114701049921786892438603829703941705444408407021657088211438797065836545367211813630896221555194677673014906543464413439737227622042187791111270094013690181556408401012219515739094706865888581366083360209121940848066048165783203233385301875712330594963343082618307854870559444336171949834400534120081787189133775162939500597161679918066008239754606150495006063076894573076018628226515009431661576111162679485523442179916308089021059067925275294452353600012273600109788956112578847944989788222336894282836635557126478747516936485692000038578282376706873793083096172110043972013566526251608427573264241801674584749314994496535874856057884140039189590203016403653523303346645869610402288547016783348084481896179965795660795736020796371700056885979740611096839425381766005671936649036038346417076309415497873013150310358946179316808577463828884000281190784492739153061018728197832181808537630700973490156157437563869765240208493557882580803433936701313863140935280943095147072933228065078406766424541662461613697661820902082638154608761792240270311752467188551951595157512486605720852615133032318518792975845727927869525515028300039676751032767510461146374080937130564623251251824442982971753108597772421726032319252845488689278458863876733991204385376605525388360778806764810234842700755166438112125060364857814728926795819565657674303532825609712503519609968574800857660499966396386030474663013337513468410345818488351204623819575774181630914730322183180950193877558800943340675149822859811419128607935749083110456914272802957064821935913300152156526116779463773018919129955195528262023028449655168322160371099901028553756548178034113921007484401944106622320167316913779839809560230619289699427185637605643683169033827999368651275435591488548777294578168316580659090282715220018778255732318021262767645801847540155675099302511359314042779956896172560589697291401682040083739577562069227702811800470667033008357213440266787507987746368282949027856243239068960314154612156039933107658842011863403127104939132481820117669894741939177840345015268729814872417070774706216873579383907525109315152975864144986132408261895673221134509507345151295527057420777178623660841305424993727233142689543548808979703495483227003850081954820822607751450248149938183079931760137275770963016080278883159686183804586655025976486568236612182312245652482581250800098281668963282306003257913643722559171787435473364497465329704885457631004328717724121942611564420016254162129067398005496859866606675526073987997643148042628020117884353133165835854829799058907528478961762071377250332816480490799094278202047187056593326006521339366278388477904677413731856589044564529413118435739105479502826632235742460230914218541321861913405105157310547514729957073569621241264409866385804155940015824924138419789614733245268307191811957942345227860249461064822799058925048124035754270772506719166967400452736577367072533007826487050098391357866812313913036285801136967287238760435047106105049298396278348534090483436204282824795713466110606655414876075752758433026532522370460544307181029442524443511993387131975729707034350756669516345780838881175305924953798224383339780980042227057895786994557446642346264975856209703480769216661265928549175495237203562493136428379639945073353512864623390806702191248745466734704531150915298916793321500268900050139939586414395450785543196594963493673087890484483649270623167851743771680717120898063051316879083084049650967995306696911528999015385715364315874406993347593739528654654719680162993888200076224585393416723526698070815605308594734857208609622626614177867626184342837817449570346064524082236561182141146975806185089644606719529481639697675767487232962819972078932462384898535363252744571899778407219186246838126002831169911155777665384951069851197970336968955079729980597960213106147951726142286551892812142591465848306322559611062857094369704984566077973182067735804096367162761360668144487685893722846097129712706249554093888795666526117433887662828617898823656695616866457162372429762101651404000661875673633084690954494160858489094305657557650740988384236386925057130767440670959988489827050766852101075244972011158028144788668347409609789742492838230428156143783339338694650396598106564923167251867876347705013115477002020615563376960061190931990374210093421320304366544386341157085413568380674873730194470399976585600312390993655510471464488854181319311727969247656354027767983983049421519357933678550614579516862958717780355863374863331522737684811493257351339117125328490117910629446402928631183084378168540145933511787479851812398405626775889090412016194976721294755008235543339882457560100831368244906417224075023669153231861453760908647036951795532706259622366241234719650706340061390905544426789116846970924554169811206788966523044091727692735242922637332240558565505674395759926528128896657828289178977167595153095764715689318497126918363060005660014062766943845326524086661843310607240696583811638946128874177938977632007437523853599368585529486416521207077581684335755598486091793904876592562748445994026818250484332821482521996724663863677557092603423616118157233963868701593056894761534353686346567873228431812477929743856381910803593985257329768661228460339887061065773863447825429371536713281220197716635952227550755603045551510915210028355239750668190214255811940302635729094878195405120676948118885340377633316650155207726083137848092888709628838483721078585546319109724892067366584360895353576039999691856455237427573327799086739104152848118187066439369264380284416936704155834589511280161963887392766486700799118373195400184012109438034146457151662201965269079457280825788617182439510627952791653136080981877887280692483240650723163902650556674071412058677204414935440222387111322952815187399960314400343758620437285932811225141976794534054728685317261881157933058309500809432609564774936264033751371959903008130021388314955586800582964239194262402733212864996573336923965245349615456867427076444656602810843793724190101799593220691970756459701546741478608236598929202457193524690384623540984955109884374529085311209980141357586701346599094275744072277246041524717427878820712818391079120275681489170785994732303194188602448655798438277930731189730917634479238028909575615379785521934006888062907852745726778632239173066027042228945197114587454922152006073641272934813213398454197203445889344384713445868868835303160890532505952504533522249507998690333262743680174915225768417351033145487010975646580376479674006297617357375319107180014227011134088052008847388956456630670868452303172949881065733101002165346968577804979795257522645414367289560508887808817905066278795735455602449772190557905982578453737732887572275201471551859334842597818100545477289582349329433516059058649313538673657198568129484968299610645508176500182136556128581215544293038595044336743720187795422480284304911052821636039726754318210617614469244376580293488937493801088434953526263850331380743731814265410706999545125286878096265232863560526874717997408856574752066992882632821034718698482859397406518609478281898637911656217696511192339819711924721862768567245402916640619301227261289177243399414547658307366222929990964535618480409018119550994084113619246938600151927658787105756654067948723019753086816585526055715182548699880546975432734048166721548016409893881489368404553587178625371140827335731310180372904409012056832439747269267996977709645240231209806177920381313754612815676941689129691459965164635418224161085257635986010968378081180627221103834693450011048940510390373822794939257853415747455251929751905116315023290317759573426889713641784772145342451677632672209740076816946518400572919320827070697294910251930192877600363929565046919001823692621851033102031575056922802082760868071672680325828106562364968546245737510507725090392397492431904146247708928449914488577235011476986837869335792243794427884330964699731335467283120924091839868379565589051316172673958236856307523599016551826636893252384939205015387747666928253556439308147838360130420514351861682397425234108776565275477652956914413221776811005747695027375889545188353941077126685547250484050529493086692950599137304326770623696895466663859193985651881701977411863776996008718214205249011602223959073795456040496662700818729544006992162845763380376071737433084099469668238047058033974279468701513170263129314778097533527886907424160315318907488386872456615022626705961025910502213920560502253671989914240327982755565760437416323601248792790353429147733147501603900168817512659533790922201254864813981910089334590066986142466789818273916625954465592792567380533553971141586677893269671412376977916504113481292027825279543951095024796779134923917678178554017330880501431504383283467102000414732386269654614748368259856586996007576726980836490759232397102039728143591571434036266006124399177315748461580205105433981039358585682590338215693381210791844985030300620335263456044739343199291949269653041500799245634335958148046494206642860724965955544345214800611607215450490019164115651612011620758997117655287678734806419499267666488120593559237166518776006983889969673227258677390109757760206614973003125714241428945494854482100341937828049745944600878165569717667735794330950409114198506416844629397678002393086194077158893389802708603452004007348487637417841431883405748233380480763097806164929858076529705403758702982674342429336544770522956841080570666813974091514998709503274806703864634829214453413675167987733076192341783500188468288277917249963234479471433184400739459076386285333597468931864314905496886674228612584724869215310944897327268902376794863970468651450811047248406097545617050434692584792798965418879305781601052062671056067403291417179860149707289736108508856781868193350974443376343398791499386716402479194277784854855022278637148896002964537358486770977291349672678764987463736853073039569335767745841433087294903330855924794913109463580696997993837146535838294863820975425355996316836514789695842587694596533471914418486437024986357692355895700436863151213742271710186074309369151184116726911183973741813579596283168616217648499109608798947213174176089361952131448773653805254815923901778600111476818173875710445549779369308675893823333145890806945853864700329035796804671232116761094169761838338615304939801315088933149100549000978023736006938735898463484870770733996463407345634282282149097004618649607335841672996356208375360463389654526276638602112617195859744674299189958779298457151858959047964098007254055148443225451516560030293160840879619361130840113179262543280959580277578331101791419153396275555633438967542557266758160692437399283905606563892953182684566978465108348818132820348347289584592814097730641021874980061425300790665739399579809356922757395423990097071526435886689910169792236948478885511260406628269961079688643994081565148353789418038699099166166225630419702509911946394100068747281665813063063001321449162611362057434921407539497452530623014708676025383477147612584189749793680796515787334549897966570509360268527362838771568106913574300557297074827173053588729570477152457436534395715362678904212553102857138344614639471225743276338779228787451482766312756162825760399530016531757050145164022491897960917434649180743372949361007707417861621372910601895499813312959530895788184887134309184425689101972814322446691251577569333452796346786700326361897221906964014698888609205481234173615664789153665697464370590517838141385763879299163407745717651549850033845892443256372396377076715628636768729036694422957956179242718226770359760769907383374528756348985949825397657389350222361200925501907823950036183351124766838000782988088346946743702359384713562555589309696358905526852471421218160241796776777492263701402157567054693446993954724160345971519194761994966260258475826908017350780333343399689400387731207632922688168343649567710391618686733039074549326863159832139037645915148537038234811900421707342853848709142556390864250352890006371442243732799848844865990362738007091346356306679501288286038031021603584319172957625449537614215056880819358509284912434242004126839049232375212907773634357218404818800187025910002870335424624807758657070230026950193447977066563328686229735547072827164921663890615935813946488384256033395092038229140653720044996620845059089945800620151003026908283312373552342630054425129801512509350185398730482827408903773733617202476363904088768110363648035976360680957841554187711718311388224639562724255119139830248278887221769271975660481388770719707223416770388002045137849665129391655160230417371053454214546511346037960752570457196600713331322164262498949346538217817165393205596250231478123941231022086345155987585769724592314016721598036534723327318199710529064048042401752368120256498495395084684151644603851584632529939332514454226656160214692954206193860690129759164590371275273413389136036398074037101898603073474834048940014021648842236465916411736894144430279399081418431278503314787849671965572145910490893593437934847970208061445810908881659222636744330874763673676322668722468915176759539803894579210789929007712710872989243690626705508654344034723901943732402872543209199138438876974480414081595759892328279335438251179371620198031333214723129880395039964380932122032333346215953925109351958177488265252428850934033831742798741412961138276922880309566131172468530364764691287588997229820255620045043324741266896656969948011748181556668777416053148605371632593352419504375215458511768350394730581709724583022297266729142228144858345751058376396715626176489680881350584533276672654620312189026959319070971396563462288329891488228639837264719162142386506689643390622449957674601586264620785234398665546366361345102387128415228758135064654611804629683579317383764887721682164658116717359342237255166925118061605078853037174949275449521329423278631037695827185180233142404926542030960508777010923634823495259133522144911743799150866194645560607328306005744260916059109905215884389185660553150353985094214487856452656124219892208007718355064976076001059238146023259242842923300704445461712789509442326547359436201358529171095246149082761018774224703995922176352963078331172051360503038972063010261428683208347501827258812394613112516888438578787049273142748361277426821665554454441316847249249225589961140257959760554468403340712302081594437405988236045400880114600691595377653974122498821862658791844816131606306587159926363569751822664552866169448438607874991775713937359917879676451345579670275424515600064077344714264812779833766825011119678174903505820463397684362139259198986998112579910750680388575982645870135148250538963404671040282354591330238151435083599102006747217235255442534902325716293275405503797712743279419134414964545438040327264067873354932332483753100781934923962732001585956297151247511354524026483185307805719315239739115732025648553837681139650077556615683671060483092723232694145569537043073945233212042039870608550005499405387435836970030538360981209522707849118836795804049118190481710102977824052966838236553987427818980482729403592940302231574992706017072079138113097783602830901371783348108467896297916728486481627666986979322336928139949112024364261766463287626507486371050046989052911816772686388681598970302767560195517931349756178045884229434429349005034907941946669164859733953728724629266862321805221522894975949501737440239110940189197517887035065329642597397423908573217052742154898088253651668844654492481558668974048862132618456575091298185551267081544003666669716464256834634492312218367786760428733637321255406846670349767616446636249516697205675867006474949474446723203286804855461154615967415544063972428801484154833071179900849470561360777343548192476123600850451982827777478257535978995786192714120375345235319135031585912511847203484382356210721770597978147713416122500710485235566159482115418544314521936567300318245328055912210882631282057073534783024132369241697870416512241723171530369609304263002445075244184671711566168769591964162637764317260259355365958758529159975986438102432655081084272857930678049417058369501483769669881256087219464050459520070685961511530667044934709921059303253081088166453235974926025193446617828812557048136760272538397703624742890115962676892424028225033207792504384338637117818144935213731059722195123140397220242409258002609051163104753793274664822187932569461854071783201208911846610810786948540459589651828790641782407872471504684083967008178970190052042109675240174848747355799241310849517368914126627704241834486743026204184911027020069917611843064265184431504334739735928136073854776822653560376434834688027390751210210269431980750060879476191100521462044389971200939553605698905010367624920618151738372251233176437008715047000839041924503968628058932310841833572705020625315723663723805804512448192794107659899376559433419164613774467469147552815935016252288179506881523416269470237457724114528989357855181532866189048098094937029807343398174272279245021013838319163442641341893598181355317862397288998584361110865224126365639328140366021885616532576345443288340025483190339999483076004909650662024605967541780464512908870407189486589551010270207959705938323604804070673596378077277771658724229679969468121886863248886592012575666911375418150998862844108314922132674714438522825833628694723855762658510289173462678916814716963254723379146046791755094273972535211282983287304218284270078076667647086325248964692372110686567984035373198358423355959806089403584045081343587713270792309244499494139529569331653104066898875772322833352058925376513263255836380867607039584774468829374551080206331439763479735853138202704672486522174086751083561541849496955927856922960253585191711118899269685600453803055260829666603320764686056948425503359484437497909589391659000712511702938135555437701553225276236648577648319731784818381132607418968919675661397866838323548380150278360810147246012924003950608063736794387530927778798294301895434837777805671143234653958735588748739649570609577850730712487972829453898975054044553547235997843671388220461253800244085402145327704532048964860399392250630977632627696873600984744678809116102555625665433066705290199020793464237753636322954932414407834013702929132158593349785718329985559535860314274317914899347803543307467663054624675980518416704007465190721446975248838739243055975553234468722236146574847509679188468603916503946071825334407922302812002372488393676262373941289855243969128794831730106997631148670191406647610739170100487762377861853796931442658430313003660245913687037287787179246993283716125787068248721858440809228453651511742756021978382319658382221659071057980444800180173274706469766423061537960540846490552832484376071589759344369475102613031205505422633187224339200061732512960815990375169570563372924467208348130855670469381031970063952329980167508004684567589667701883467549853412203382127887608426106956136523482788986630135419636482741527902354695668605830737188234606203904294001976378482974349418210178954098695876627664779299973591838819699133337121231074278318270813362032440035222625589710850204961344413199866428016196049818371710571338870526086776716820081195871139748701057436631727112224668200240553350007273087935687540427186974784844779530196036907497894718498851504515922455122279338523532333938143252666384594956014406137427683666214448008859577755479222623152578706121898814862616622600633319369553739000217347653112692916490257948599150339262691889200345608564289184279746843157492899141575298387265846932458515591484880557459267637576089023399980934665573194511465553603574140053685462006721748976454928885781660331332674765418121725149966367037034870519469896749618295981715888233673894023082376462174226076607852978290214293765341050315327735243225940093477141306014054701812498554532562342877872606922947877652584046995888146766181532548486720458746174250559532476324679973746125327481906833698527733944474228118264365681159064438452460141332419581678329805320532681607679154912481450576331237106943525365858477938697516123752418115822473998746719689560550648504075982117775240392870880637906407506266516867216795922503851408269390137946349624728512018849752998248762752639268298953650157998278879771164121203276281530073122177197577240483783124916687086535644018386636314040080589968522003852010026764511589090098567833258838541946628079367048300896905360367486572196642371306723433265035807953666799244003438464043230070878263673181077265369464495966844458372380232939919928528996075202251509222774152387299625464782307079778014184657836255710807197314270439433424887669220574169627848686708568467083618345018712127668439429415193905111711181927114084594946414108322445461253347574698884119036502908437428467293594012735292664180512077821686438637682098642884555604308732084015202019585111764952687140905281359301143872276432788450596892821122463589569869074064830015180696029627494882406977409107620276383642074489247632527045155250438773040882398453871615469122168644718230422898705446355367091222477699715433598544047575857142127691644371800164087328092680307643645580598281649887164526683466445468190063651669705329680970104647860365603397293548536367641635883660302282130297838238937303834126488104025828341234122044315197194315497585990706709588700148579526157194105691602446487823863844010543977556645827895736181108209100313085474815929754391818725290875917124938461883943624157668443353259046329079084596688148203971412688340317554863191189271709973015297242676400837237336301880426775315277562773615301093795026619609337994359093284913115620121708182073134067440860139014079343829687309392565790351314949610861248553560866157980163285460450487153405516553551717202430182818607677192264994113008914232451562102770108456843697933765668016982413229581858165804050763603816313378293538597476621113615949956231404827115085626015278652136154199465982455730925554940010000931240925839228317940491993452224329516826331025236895807308690620274486590983958425597727164757958819513881828153117932963231794100780340031373373821004113865975654722187564103582377386725999798850763194797872228705253904753447666450154948946871857012398443862453754387885765859879720934747448623219257776658091200875374513170434354864754089203398846552909885772624609582927624274128132655673252556603962865500017776999783619799265029529438515231870719958394233702417998137410375564806961035931931187352425833140845599500690103407593401992513356645341804447927681974596455693683567887928309563538418250977371003102272267927479415351059250159722292619276283987640657916838527603662983870163623352315847977275965599275918057440376457684492556069772528289191243304060152141652990618632450063417838475142799029642241569810446922287255134902477163765740476057313132329361565906926217505687893903608222278183560316494772021610192340306300240934517006063056145765611131313616293012766607876571916396029305181244298208829170522349354947093420810456246928662871513666529837098535544944883687655281350089443177542695835289781658204200814280184124397528063774612851237445239239662830502043544287642512366233260868477323071488155692550644286935326328847096906043015421857750904859578625721268731272934043484534473423781851973736325710577450588751105464666338112280658155513219008311155336654119411201803495817220701815526223817044620177270896231036616728788744941553934893550308960053320115482023195112716371634832591555786020572051571677091256574250454848145419759839333184310836169878427755903170516956375343318685479440579239493673646834232170433718808012093701107441149182360118020267472105464429374780297031435793465378099338123772950266263191003843242587459723628937830858834467993483816729010610763642878886487653863892353533510224534987691373263092535516675797963192389144976655518637226786212843738244190749806863863950224711329070534129200576952882990998030284840887804324472952897395472051928490397852676495016510881294423685827215261886170990161491041316965825616986553095729912376051219430083329260779738515953810060675729352796914085615399686722324528363496836177254866326833723452370889357767623072368715424345070297272782738515097074903147690273068312291990791352647240527848756688359206545234187540284893384171254443505455409810172808876347996446574647199900710332973733734282429181665978486413005910058654359914469641953144426517807271765773545392982423401491745764692519184697159137672777627468266356201060964672160245003071899099034515979004362656577543992627795995945118527933610861336720655915778124266535824233099139810062163250534656029057003078192432515914675790418414478077402315162011912229385291421882507550964740922587352962773115082476350627928798851021881036986287096776029875596928742578874045251451035962260243459150805592683814354138352040865732126307774823510724758909110376677739698319978543104091917987750825680178764571853739153253839423855980767920484848044435851747503708536732733082851033677044902443252895459055303654232949165792406289826338688084216194173091997223384186463700741071398499481799943065348982570353669201540742636882013305639048600686563812638543952991855958475579268199920808283117405540678720144621306162087095702863012022749559933846074264873685799232641162069921387076759772414410303353282694952166040342926012729770456827270342280310501376240239307740974404838585035219141031653996460161561807961700551188491267280433427236984531610856135975410509699107759958362514194062567075599342494448896104281045220715933546461340550881496923176774463910798901389552103152914507224499905661303914362791591165524283477816803069246721791309511937543482457468894714703175992722508238365897396949019892282676878745305791263897535213564012879903016880384580480510638908896355535311656547005336398798120231707698188940409581772212635136313468613831312701287691578817667544948585725032054564377169227783194961329615825027472536643462887574941109630010133356594886761134371794949958549228145971670998935311695770275638680075849462235786550416832379582618167764050187973039345646397067889382119593539117929680005831107203839391555486364811828582551243425130411989076952617225322413317931127168727823716004261618229287299264087356984197629339785775831823463013931655041067530113956958396569834834473338943334237686084535941929662831763746321263159202481004777375041209002445264881714596305631944182343824043599687368227640288908998152685892558716848828017601679045996277599248699694323375483031832309962952572847699674035189371150120027968022558345168202420756326961564773426048187498461421145527194965816675826835961959808631579460869496486160817659836481691827828347659000809287822746314484122715245907909822255339583633547641465797219135745731444940646809760176914867701146038176957200750885694423206190314185344877694917764169110858184350833734768622445781951694011613755833518961733366805416380195994211658342417173501506128551329921112372636263468294091083271333199046405785791964086352824091114774841607671396148532915112706698973804385434637823975120486317695401278314462718828501134082018405520335074643879043794393449226684768190944329872135182128365086670628713930422697318562497576804854301927503483948159097582513443568706867246638471390706740681072693679302191511363267638291619934177219639188214709957197682120970414918457206064112627382394369587683342650940224384469498306561434497478202090128605284836142537646827916223111321143305542827170140834443937071142918564545360898674829377325509161401378283689253239505852590936990787085796901595929599940468594772034548507403746947599176661225303872399696303450261971919760513617975870223344554970277774293899462851082647658737140300352366760005016543189731494912436791191028675015591747830232725194280167887784325220327414767251597380460247639542406243082993786858167943988631276738952679005444393852517724939868602053349302339770644924048495312066416887530117242860222742576344194482372806135549636058059279629329549519651649186712817349359876127631901720199227193506555146251684767391689812902321468052992910723063971715515900416957122387496594049709606062959077920538943975443852454778841681629103529266712761109420374613032054234002698927348414392095596612514047998098528238593985330937092374386695866923385223469456718563719985359926047610164028592901597230686635418251927137406477418535478962406962980837423393575896499167262171918278963623156314240630460938463538288383479596055876934111348748587481101380002654514072473145650123599352308612023015482395269668767896863044414245941644004332238218819263809864326703135039801420779116259843385265807460415284440154872344567326793531084372521444643969246360923867964863818551075549041712788824510784773519906775690753248109016026815929519685717640582563986410220439837834366424774660005619653417350575108292452725543135126129235530716504219784482426723482762364955558171829916940033763761782348430189196157469133853943216012759522701575341307886096053831629299094631475831982363025172132857976473624537169812340846313507632960015204485125809772365462467520594042629617893307178672750866779031187239882998108915874777060319301899210608774215622405404417252421093474486152864814776068479007463079463502872439832494775369372722766916319159632795313926601790168349817047569980935321617741453493588083416190215321309309989578626512507550393120037986573024358699526786985478269948162728666502225445103789557415531675086190148698138079744339833994214491409972458799009854389133180015596639857098348463182852240386437754564527381331367647159078584151042185879767073107459195041569843521518084349880090277277050502598837046655629381810470577246057076019254855845801125903982451791657019334608541953454895022370150981498364193370453419054427176344461746069398188646823895171203446306922436770700953856025309624525919198558584785399709440022884787977768401881620201129237075528794067330369532333169637774840959719928692724582760699058183128995204204650983090351060680413316326088169368373733627271198007681867376448379490613952888854353521410624197842639869157921276684675501540330359757020692993402978575287158021333726895481717509590762498308116845662617305535717925118335201549820463123744558703603583298203539410705657957706532136808501849449683049439268864991683555210447377058378295770985208645521222210020564880413789756362237995500795455376250230137656281986249335981980227664384060017856322960708252639214473252935000677524704073948259843889264407498132090771192886014498124691040078286725849184208413757956412613676046336005263142980540792907251835373385924267911573961268995469714207133558175084924056047850315681213369718940240170664632941411889191956284441682671529393216260460283341234495407127706475878347344570136100346102664689792627228960333716773772066250127633212623562108977472229042422073918351137537341843124249999667821113539524157931848174853677056960979272355148463153663691764882731014916893645157291141461513606778784783998556287816207135702796680999015941036301991198349190688146151785137903312549296243766271827408286060667727176410319761665774231663334598700257271878735255197630606128248088983047198992507145371447477749939859724754338948200984761555736436240795549599685406952396628648737659854404591386728182807500161705861864842286053670198470915747491117361671873435073655249052409670125865880228171966483827460812161445596096064012890230002059962200094262395611699181068758544905091309242046866284517290755416909292870653572944002871609340040267807333316464449077281004404648288613738563392379974493921388887714452686073168842178313020687332707315155401955056741162637169437985996332116358641085886217882764330388427157843729370928637554374296159067943779760823689389427926183394439266913897357021691985728887668531787515545746978991694212353229866657545197869691439522233777538527204416195085304856858086886665313418103358324596373146869540306672553249219390394520670961227058534043954977388895668492552638082744088770197476455522482983635564751581288532744923639383132491249622307343090635143586370199149014296555319228321126571194637898522106744040545846424363776499805924578068083081966742346675874957254493754154842649528319958815199702022623350826545041332943526738316313798875367705214056017254569368574533247640811520443841789807043301338244432833839238323064046350977016956996538013766780400613900091864491517499420475810680236014393299210676914890647939911425229866773141923507320916996706281293207873893352144966266426997853066335217722496436121625718502200556383570765082862650296471108642612300766908146805725741437440448150688607399701423693050544211152956043993178010370411741736314857717715762840221524725084646128158940889446824541366705550289153210686705587993519227295861788399770464029210048434497945308358123309375219769935628681250109359545634375905688391176016526101003688534526158402309668333814876145926408207970013320252285227747242373610643683477628979803599827874081399594131701093585124921554450668649453267019103541800935164505725509081309581468880782908235436172722210143371087836833599993654158231764240296593630631446222627062719961045771339262810146770202917164740240448490567247970496720231620372886589702073941966470614312482245914858740912514849845221119828713746210603648454191182071952812497170461931666674270006468462704775049469951265871759400202917987890248716250297744749157514765035715821078124623365940281319320969283643218048998794456931182925198722034224920802147817253866434199961415020906745569735400567147784198471442339475402964809144099662671977175317158041009652910888648835839392173315646165411856652390565091409708374410275581855145419870343879887787680907157808242486171460760976156056197172174754238601133494059476511999276544472148371596678039300893232423154906869536477645344546167093434218565420526556395853569657935449112206178431934423435486093762281796552375122400237971505416188384713326399209164418582120694722000254218334952121452556936478047774698466219820969297991253770312064242894129427626487849539977273093984012199922787816520777910985695640201609775007678843488268270196624324621804561664666485547893207820796620158562073354033996759860020043807320857543767867875700502917392723497817173808346656485893648861168387841772850381438804784346064216727536446740245849413703446353864132674427310618779779221879160875891713800034308681977805710899289426178179552906779501701117354683976787223365018937812256001068984500130518373876930708705338343259500362472273961408885434454834997583572935030606478774716616764662864085475950800269959796642939591999630319999968640116301101185713554428545932331000816184417936866259727043615787714330551754791022364187190392874405998553464232113277871057121655353395113613249747213689073410251821076547137733977368141092179617010530377637766920515316011772767525817683330395795950573969509212731628766798817911005211158646277220094070140088169964227856515128591323643972362188126544687129197844908764650076579795654726079449427562671137052118430536912878455328794968508762801242055752786346181397210829285766022326144442700734234517219579350241813480170933158437471691313398573287027190169041011082384008872431261137257735137639190559407854388821343458046192208675803017716930292132173583816062909583249541837785262968611822416683840498200812838189779846711597123496623019563357681420527195533543757368779921749914413316619339997019263302802422414774081317210644623759625923249969056735140561899847970826257331590471874272284342214481660577786735533979348940506940613179863217526818464409176547968992155071479925033547219844349546316884108154351911706863703318620116032005107255508418744654978589112688975533149742284060474620357153122685977398505489397656885172287637169520902216094668480152370005999496228147814057484503759406828450378921671557292303869130130886789580827133988547971417771207829453049963815223305282624821734653375112108172144856595267377992192927099059250676561834887797059047880802799587075964857812379236237657619920267027538767624902784202876278257873756079508298022806711828207975601182089872610495679339996766392198458377679106529233427537442173229073829159501088982384393018699528139886682879081729798413979699761037463398190584064403176106370720328301768793414572363550751382319329515147780801821243149149253771926428012020629427797018955954003723124817809033380553469934233302839787957086437683637767980467983331566461603489811515233093978680978321647416986544899199359087019536565953039588571268585890095117345246910971558855966275645867858855899867082113991404052933654672322396102073513804961924385255226912305472414611835155652900485289285991115021769253562272722017986460886611725045421936332285240914429909752120980366994158952160617282634286123015995469200496874998531926144798295527111110014595801406005845404305661851230795000201122239708339712257039632650684474721421367573959002642398950309798715423006583230038031307993528276036803392779826057829962928081573948505820022889792450993983455788546071315191652859401354390855719618775683332267499237674654330055348422633353245796823228911187703451440345509928612304002147350142762975747821371977700903713762603228702193063410473158385301582634775999990643788896670519881041518617192791434817823700926620898381913386149063466903448265408093312075229965924073046377892266286842170514655600963835873374818227494636899455482638179769266035948973981282355543734832811232856629375937779189209610597094325629154980707422031505297918777510197899240288969857903275177690214654526434517277406077339592250120453046434083589226834685704422831651041472108132746209335522529603757653245881044576226452135951625210864445445335710853781233800297380343188091645320167502458361625775511211393945268023159568685579790760787585813603129853533651228456803769409113848581579830205502958648650579613023950595381330815643242216431444784262827183483457128009552282800938418482279632901307152459953331490917647909800954757958982841243213757064758571318328370954795576658730070344846174592077867575833463913037671983527565091103315560875783338459301427988012938130000143191104346940184969030479043823427272956247719363633740682505332878624420020977988164836739625684619762263618262666185584761047854455097468771276461732555680033872377910246920669499436283687486502984188089629999988391888043169191803313035078436062198763742694932734131022807560143199818917666348648958039519773477490281859269578923924874143035640617027781663698536946586083036379515880471376637947046175110914295229959734769171394855583346907561357995855803144194467399433277359173377324518157802020475447074176229770238550340089735949459335012719091172557248069758100513767282400238923609905437887310562052028228004044725598518574689944635336680221935630106886408161831747453438045527117403588542103545994338167585475614220081170086169142665895585883786582456241570675720678489133413371267607711523285318683095602613091111975608300357759419076659751902239121157356186747241988589716597311786861971618837697834899645555872563016335577984450816806410067560057122168871133859035509118954590245544742260892339005810009503303199424459056725861752019243323003004386626466013561870499053926489774290551611377345381362245346392105515864084957031481918897074930439163726404678704533652317695794179523475007444790880509537966847574629852867677121817076130042608538493496949986143587625045665811427248634481419417315306845892054975748034835345744197196634772604026986872294456227074356446018380497426510924673004213935766427184407946920404549292288616958853440986142436849884972301840496954463096927615529546936684719566879669184245464968693013142622781875403883353631609186502727053096405393788690242616367010328199629973048911128550286724962126401916105103954869473857303124360126085018429885904317929625245023624487018326406967480076234592526223557428713726453603460898248532868300259705704556623685638549310593378103567627198347603735178194309998757259360799610002155858572486474919291261814806514040046033163458379184534939207633692541441736927535207865889314976888890571413023530647203355533481931513594248698038985091691879284420053790537672471725948672799550655146283433141354060540567184351397658059212072789248193741381167515358502677440332709383416806315932695749597913522110998093571694486547961664863380307814012311718597165517673780187595934135942054157722209401413160318865973323746303070540040787690905614053527593341930464717296458811922729986159165716283001078206636624380620578891724620671970119771695639425070710962282257950527099094738362249470800807663958106541151817083586514756516612525438961290522375561689397958068526794269926506735688761685479273434654984694065997436741791925909353058144251581372670971262917730954613205023602990322670897679266292998121902393325665869992533418420304272378794742458605653719525704174375713328918068435981337024334416754186124884632973456921134879005456387935655609379865252303957117472737465255088338419337121307215075010267425018287750031611079749754731881127276378367587178288331526390369256522126295475944468235429642931393366357032101812374527214769993048672652610153091893635382467323667769247166749647108269540984529143788571879271504849822878795698257184212915407036509164758937408318779031568289086898986546775366312014059152759550919728991989005121906733243926453040906316611477828774042420351995151492293414565508411954677472788862947111474482213465216884463587076493597726151954645539475203147251728998182326764273172624251766735889659639771622438369356004210020937344076557528168541038952943081146294492885707402817636866141367027407785389993134933097670247242135251793522178505652235657907696695876281254947752968774776970896610657110972053722558740667666434095623181561282843926432230602224682751040469143528903793878971229655276802386635922605831531062170169766168728087117785679980942333735084888753515381117337950864812039373362343462990209793880751842348115749807340838437798425102357262678372380937059887037659784343862924275217520922684131648074236419709350180873797298207527360390564310832014624276627533217552855953387493792053753094605412553814036735779470557050735865277823248647641969434689224258626907802695897684607812510597232840676081910959240504392431206023107444639041231405987492891110813024856512312762921641015352329719869026371129457836143343734232051132584327322432012772935473759930308471868459448991377305368457473970618949778903232599106020627038810286489144360828151672477680705022726445715292065734250495750457704152012446917974645917816811090329343234268466225989344895367828534195452004349755896013311886249506804916463855872171300722171134651915767200599687431533828254333267948377088273596779212982398124319046482868243846343675961947791122177267312486107281825326933769105089614307902283082303967073678365868351127947435315076151128958293402633988083669584907141003011923060411736666276931036021276546219442628985633102119098083933788018521372047527473137746646385448148605733848419881735106119423927563919595441907066453500683526401137856022259132010616692547403001117975300618139411175066251984872221895255775609742442774005869278437411680737777215626062495426816759358183351748786019844023772999437558293840775736445736037943235318532894668343032123244939486584587011557856092278627006821518742835703495204152460748125190517014691454133542313902505479120036758095257625711398645734871688518354392642331181387596411848192998039966942856231367837160890399727152574235433350753270202884708593517543461860958362434889843969255607383061964895611200080502245026736896219368590439391164565484058705178626344801452610641004602514099827235413848071758284353537896682394768415734951138842227246828871405169077803081550604748771927367461920758919882505297437765346891010450306907391060165616887465980626166624689217922645661968981976164004318004100659768138436449937775136443491629911811012053367247441579109934350554914445292656931944892449692177754392699890089412494247265862999680901370367207029184848294119788315439850013457562318935434244548278248165141616060610444830278780847895412998690950139729733310788043964211099290047723020474779346348409270886866492149148591701064055649417852878691232698936468239125325333792315248221370664729115889946177423596460613249765858764062864758126751664237138861625767580832473320555200429049227266329448111768728365188751704775128084834122406605735638231596466844908765704185991521688557451681628890591300820728317154139857819917314793264626185650970155508961652287132899525677228023895211678679985844663364723872321416497413289478961339754772263155516325386771129916445736913407414591156579864726308615896522046760112657496023812175841990466548850135618157086382220060946925964666999664153387326110095432359149445801334945378802583178442417316596962996986271883117536428391973471211236349802752072827009590880550949276982917817237348567379022763717967201775752379910324852165126747133484622723977471220801404335682790626832180559410950245994176549841637032674049337251530861026140946645941044435897538786444017932945252833145413705963976310200036636503270770858395281750374523285049061654618775256667299666679906360577727786337205651546862674870857782874869838701297393032949777948511335236992419046118699274343208780309512132870104749149299546488226515911799302311362925717693295984409069964846403582790683377115104191341914183144319037533886001034950546187852826340424518707200056237450319297439955030749703237690570854917320714951346891547996336215753597469072226416455580370186178552141459379187175872265213556897696642852716539654097200110101716265328148767807455704242802506507630768028421350793975235641264871552234926299254578964424727079038896909924003568443590976720268637055456751361998094227020134361230744871862240948633921536208042287764965119214515132621624448544615976781050182719752201874624775461443386926151342569696455339597372792479408870405753602698055442880180533539978463453153716860895019094413342360236702288104298636555737523326486655398974414163516752773549949313024617908898963360942528419442221018159781302088640087979965729433412607698662595706550719223996995398784478864119521308057495173119078039788517367927958185554457407018488515552317277340809283757942868898729035525376563186783304690967951683922611148835288744373111645192860020426233711378690856540415737118954739039073913041174943806227375870248627071102842752862569308925171545510096200999351770891840263006796231219187445766987084662419111217726555093596835558357286974239533108925613028449779220107813265259304520899498320744908876001629997324580547453185401886094809182639822896388235862773314791965065757653561800286338883964390688295013623343211088583928215271526027782505940607560318621186943758749711535083482094636542628671292212850257997043746456081268283329425153666692732581590041914041538434328646032874763789715550000908891771516878636544017135040724185059996992364646612911382096493908737712975961696613664939993172923015565870451879311525902425027697440040691672393342063225225214426637839492847660115682812744291771238138330314360114753094939476263953849282903683184227110563951251445242760814045400585166019628742789237904199041050263561970354076730626642924451641931642422973102359439476436580795868309212256664440275700596241130134974959634716947254795300575772114279583850302591866142511309335055609696357247027416123799943931168000366180328439783312898024095570050959191364288160886687623577692497136565784487698280257980323333911363257526790906593577706388269317860816309106378127540365175932888418764804188032295270928271263687658763865567774557355154049636287573338928191307616332387298296321870674391171818349441615450133892691447558742388065375389274511705739654473666660510339516690256484696252556153278501920873617523021104860024832954970017596654792564229452160481854586248684650645460534647578638621656759459568456060910353634185048669605497953632752453037965093343906518387666767531047504044858065290338053036225003206806482465188822441349353813568870643963081349935668478285728967307160920244844273518412705781592414366234139579647165202284292363519350122267534245377075973557092345194871080021321371265231922013012175261107351637598568231893285567326262108831195678295283882339346851389885173667154882899246110950573828823444643504363510828121772403059327287934978328551398209784155405521634279650626115585585192350553320595175146041765743192004569415369514912894337662559929275408166056743551097416740587741499096744252108310794664935758296537634519865793607154971778595708580397828435231235527157382333503394471437966642950726928754030854187684185053895265870795404799389579346087112002857342467595630284221540239532651976611309514274754439065505153885756904746727220166237455017232146429171581837213165292601091432693465853430318774497522421425008553724712795239661745397557812517814720256967059316340714650429042306115425641319491256165156896493657906007639128389659201742875074969801761664082081707499482330746940427590955941296817841752455139368981923933734005728525356249364333552641867852530587299390356207870785858036748588673733253868104920974829556001269613193894979443120613052702326082357208995446187624485685055569036397922124262391589394417136992254687932272743494086015914419027406057843988920283244308461035853053017531393065503758385175991417171049818396394366855612075109397913915765636233495231819106640401328070547903834835799811767794251777477270610633804576412151680182041769537830573816425730441208325537647712336357151242764940347952036723394909744774566186501552537954114035766099433027780216673171294567000834271429648154150424202124301915586630394972258240335102114168537800332674366951089606438492385508713138057279356838930273921108676769503144771122953703307091097119055848603457430939285032335104919894766672672487675242668498739587495323693969019064854842843430856473875351809597702488799894955264345954597961634239871748125919686312731350743941719358186401409044831392067675884987204939884672208676332656709868761302524751357608900662489040781953780386104773811781301697361528392810632146457622317173362653492536172730805091424593985362916098766824074693107352714238747105366309269941106015439061651134996828828726095368713937168136952520955757910473492829593014073644583745441349381364121613860644122915445373342904350694034782501139584261894078095932637098563170686332589753098132374030450152393614276699355414396180782062240112454872102447911529878681934597216544120457052451452126611702684630181252531700644589743437130818806894371325645555178086417569408941201915442391698806076973569169339565006299683404585473873052001305853834381230165392939006900585146758974522241310254147508820801261399464177242618571089916506908113520259897735150607760612015234739888410267977977204265674120127658048502788105586647442783452289426187179737863086568128670890967096855710847300718986343766121802441870929195636823955478665324904985561131261487382449590756343498231955574650429155507879787125388021734830211309144631999699846527686686126636619784135131611546775144356919124510019781093552633451622009108862411875855277523302880018387303164126728308009486389989386850685974949775606783868626697935941404661957772331331727611979043145106693614642462917737294016088844684264990919607364848618621608765877734306946679690484681375660137381725665828902066368780873207434774217225009958598373260428832556162820564165603487118557006386503995458132242532401593789106479802354015696293702468865659502706536419003506847065503280913165800606859345108233352182784642999468458321010971628753722378798668491463445918986434998722467561984857567884071033978474273138889397402125007960221872848491054240376169763106030869149816878573238991232587449959098346724965256243698491812141214788408572919819850586800695542039347692173828133124968882692026638686741771482888526426621678587461026468838805871382985369126345262328898114464732331380380794506446786709134225110393291958195488055971798553408126169585245108252369050500372892483899495704568670593272394442140375338471507766034046511294015000949718281445600090857688798797100643399684934432976819508415046163146933479132024277576506819439738792589478229361858312602435453191188544382665307722871369385425989690290372906446317396017912488981630317448467146703689768635372344505453330505587423818573916016879954544555732893722571446089581779351802313282725516162503738740044243520639550565943156613610339688606665127286899229658224162546625277935780425411831260878440531215830168430269022207272383334355994215955733732287097090441583457766057514879928382765891503172273290103679512751494839803605606149043868371415655717262034728515062619121103818041213264100445444486953410140802482546288512674702107941553193411819500411653226797882039630253425776703962428348680699309168202443358773229785283386086239615040599097798259944195679552601460890668945425778051045792442034017678622705279704227276113472791321461255835956506900109343153141208458344972337133125733049900550979473671537983669996464435143082119336589963537441658405161371127007344173764303357043510652214700985132506202414575197633651570348213844833987912748919772468427682313788279845355864782356959730068006143615058561056557081984268291276279604923663068591772778350189908643584573010130822197252834561907335545023284674648401766988498780634385372317680698092907065728455255970740279726738632434567633560134923925141854365140434918068701105223959401369944983716229012906618690957321902668258797465013885748596129267312928714065060609448870403098931536990497859703717938072747777253045338269092327787845146537894154006405169038550017764917840600435334142763154591177322069401764526748247374632654688365880720803393892631675778394796160742251935674333951905594893990574973244070181313615850742357641320854764665292400296365821637607352419938060486791697490590694606357859122214932657770381721625217344153318435910963091034237129932592377442952179203960425655184480712468988960650384161100970719866103031115622614495110442169254477353500896084358984545047224517718010737150455429521692666834781887047570641010388407020013547810108974354659631169675379161596410647593197586187516645203149587145298480005453116734877504513122051971656294263454768413540914983338046228176669099814014271403204442194716879898254152542327041919985866711287506566534896797954847073439321666924612689467716896370707609720538438700588530502622639072819118729249060284852076090679239115704624706515998634029347147311789589562326704775045111133903405974735894465409963139232077885928318130492087443297492583068840964269877531506580356965475223471044919377378051003691356139553290927522203481090461984435208321436319775757012003570102938346446606431483337720395666179269583368287830005869835240897328486266949442218977967578933001074298068392529563038005466927928897287738622086425786208425082045308521865761937415678298779183094611530488220420968094417421989140634791109191851884364655363680584781000787202822022358153406668992151767149866489552280857804840529540939137706836531538258210931679743181813029642926190797977394040701080972560844359472413318548024262031319400714684028138330158431414288775682012483489153449294393873046817161766533607963468219967509566166721175875110715276471880411633978739730674737369379422566682564179662699217121049688326029042151477400001477967346162765015052567200856019189852460205819964971323687690758228187637811306525568716779418401003761644492559195687003218530329257654588311474324156639049995254479380863251999498515394536215439353414082326409780981018599070041274799198215442454871152159599353324564958348644148916487142054904054956788090285400810542900566131304070092965165849346246671604792152819206462079944228491093212631975450226653485735587003659394906233738276931816719181564755738385792079169428571838343711051875470356087947376622803671543162020596720116728386569919954415231418370626019007648536025954365999701283415204714807984091985018635317731689615019823139615441696694158802511083975339012196525561367920882204250459150795639735080071890495210713575936177512546665044504213680204240422611162396333939828914168231151292510071492955545971031317895010865009312440110203791561506476064924772405620708933985681338226261330142741876032199199389821470958233866445420275778523090358981011343306537917384196150733864892772923376870172546203186786465504634910023904970975938171823925202127696539457936526025734457565496738160163153551666519550663802657196543717893686981361039072595894225275309020299266586294734460557170987365138964696121264702025404015228176869045887645990254538592144161463212311510046874363476222830370520145817938375855584513451357865604949475173069354981744415532353449480258664921946960451016838257155286000772373989962729861432750733921669945547910423364835772729109326319027057996776576234813827955746262650064116871247698625990300818976139658189561248436718252516275740519451881052046808426144458820380762805326269677222809032888705120701979105529716435936921051056959231882926518812756532523804205704586519352242615797300417231627478783977171343787729041123766726998796528417735560127211722748713604041781073133226934678148237931743815159768576296945336121003023340330362964659021023262558997659809065265586815657575707111655857013935744548309914095003245440888918218761056765370770262364108384755490705182719022700891195450772920030532736640111157626165691667414431556915505775158462909314058344229706003570621271403712713301016391952890313750703926353676905986408127391908039205647968919043477099037731819826935197309600812468858827636109378274994956142483669892190840535547078180926809497329751307364261735315266304651920032697831408871702408909177790429994444971345446433952249867957885608969878292411153391241046368187008801582372322245223355165256401002400230432577653341679397307903055346556717008908506288897307589139338268440132008971408188527417073466775511497196711166183085638590660906613192163112056152731641854565074836185493321830495080866484069908625199020453365593082864856147891150134929937999792731400461066559708164712456246270619610568562012828194204465111587131399891950463369406037766418513709150290069368575929606792708583499188284156593110221909955190857826816757525107576319060143671782136123086183100884898001219153194746112982377139827634092345228503659003599934586349174918037666417144927348381603892757975881708083696984622560565778516630469513668304046510483820604673602348250147765896637082376157866914399507605185351508992162153482582050475352728087551010379461658959116930117783025162668157640841302086946066012696644993290914432667622632613068226132598589604100058171883729469491545273355480901162794730237668283249157371742412844018142324414646147490669522396008328452028213521763714114342273648328440822803600598893644430819211294934968223148765187310374240628253579923433381900325656832272336374830899096523076874370853781790728424536592087297381096333760968372192848540880332898866502746772977809162700320915882534262067519101921907240384813820733992869982573462124289975635941006875854925087149753621361944994036703456899198813792642367487650358296416358313441113529678240490104416420318326297871160365765581706643095693390971595818868154322356856179278943590872203432207135849384123230835880245232546368602445694992920417648088071560384364356595089213849571567238172846599488761833797699772686160971183367980778316653098413544711755475872194436544872147501899012144124469932313656509512774153272801427048050313263861503488232975089641486762923087364909058144109878268795876856291797849599381128861595309710933297566790340413280379204999705009361409132160603334903604089796649468455422372610288546157890164219731622347268068631283008010474423287430356139449625596232627814485308912605554569195920098524117089003073986586291602702764640379921589786279693154768299028415435144803823193944894100532069989050499936419317667620747373267379858867573720722033480209317543837668225447918203897694851855300838733002277363355069355366465787044269378685093832182912334407200113302179980680898824499170124660321050493575077245182188678532265872357103965846762594678383496136260739880676124274076499780295451505983729117561705728511292507442967499450248215213564091939675526933761242674681159989170272582610465732063352161315247071577423391225423696349456629631067148150190386774258371537939537121959326504196366700929446387409097040702812603255896081685459804548800535934442024663268099501196905690436100167611495102138462794871162499066529626166627701728086177072254167819570891062342733793594832116725083191579014239825698555642393719012818156453499745412205688052467955407835411475377849894441660251046205588094256304768337258917991464475724722399876708764303250140897148626372936238211074298055891954316280680990474674335196417271215218837815477443046313329325360480463729682390641173311868474870015069652672689107175560281645038214217945205224942077813199909025844713880266474345266194696515113284549633106835157118661949563710549981178910037382193097909739872966516150307865043118779144886653312968840633366575856770855726539631439353937161308023008896110943390228863890528039475048341504810783660780890654002580901816466590221243899109963879832824437775741396669059857271930333834834700098280672322195026478365675507690859003770898788176130914540219050985995727016582728497885034950882277309570794183772922604625369592512521666617291480628787322266861980899572849647047336196853755896170581087598561416143613145107402995389731679466813186994643701331301396120624068363458339403327390693666876832770738232199045026832321172090776035736942486220010946528769557244432026966211355070740627797935857118619091949381852939190100161458891632384455344355289680284324123379379129435569545366582535307567512021948194734434496905679234603367489566234505032000434143142469611817585987578293789366578471937403653348649577560041970734080948240611242793865758963795492352086955733615112646263399197583842531370516968337202602190168951314724322245203461953273563908743996777962850161760059803430770008514592766727774080938173944551969833243365453448403048161901281660768701363197426362849782034406906020467063202017630804214016724045438907310755528544212377401506436781760294650239278066498773735524682839757696034117260533646260275234389658865611483932984112647737905616879250874439862876918024361180755715582760735528225250725021616074622307488158131522931120685792954760291184206227863713152478262486063792401834432718238704904681788984828641928436825454168038379588961060308237915552455379502206311327612382561190131479769194612389255012108835086679860071378531908591889813645666914108783065865407223619278108082791590979945136397980863705102167591740615266944698113155408174629746422961340980535889700984906613089466443194778876535971826088548911557378057363679659344857389820696211427798619972683211945037336715380788827029873072708308200211027166356400540195632715777978869152909959454472300671439324138577099980164903869207054549902555133237646305491431834584923096920174016551478540897236744258887089730501151533747855961492691316259935233018159083735967474529012181959455288463462890919154798835027571447779928844419994648315382408954600950880978826199449274102924243172679404055988614938913042348184322639374357115181932898353291289438943401594141176499912004914385191268567622846276250707254002235311472756298776627492214616620627428662746844467064417743201781688001237053549911119383728212121998779047847934096799604309905558987096539319418215774402459776360318008854437124935608060378317815708749678354228111267518208933310456281938642173236254383656038050648312680028815252448778005843051180995527512947243549001526628398792669262714715030134249403505537778756138223783100697227324487431070381989072295181124495897497678365736593290619861410954971257684746415411837712396159146330822468562630621840020175485469346150075963798360180261674142067208706370472522186455027195709119469909186868307040504557672538383013835498639986129249528869174316270570311051129134992731278421786391568792631462733550646343833223144713559748595898994280460895404064474131634265441363011253692591945327334963206376271848160914906096532446937349722016420442972599838341367362431761039688901071940473993408166841415843618659146678258667513697597505371535100828071268788238812223841960453544677851374935727114045553486714644642104697562190165023716506485296190717145855484569868544569500128420382944038055237437956611450588891882256012310397830295798683234213787832401538667333358342718409300669220433301489967213762637882794353543622759650100776996617384123977738835338719312931846128838071378056684099956254451973908844974209189009088031975503769011774739433795901913997639712190621601911095014988033014532150590342150849354962829157924694675348221297139253128763376510648452583701858700191862413477701894322080715175801076968824066202411470189489908489684709682127095785802194950839023605628146849439640466217126731542955859329002531648223481659302316509232353233252498849753882618108660722343077357915251398903171096036759923382021885425742316719907866927135125704232328105253433289092932174297285389623903044812684882544760784825667982143954079908263215441496578398690286116597062944796911721744606392621183817684989075386595565152731941811341953916356559698799282312909922317651506550946481387358899623548236979288501393414773556544381171830882841472343299240961876642375577209787454774177028982122510408095380930284667131758569903717036610794738067004016052039545062536580512963144174231734134897180567120690205642474521446125328718604858132639416236365459800626082890475149091337368698458314960934986812840069384880259898958491998623740089096973390697320943291034363925378589611926690850074405821773471165968143743290213164674090983634302179751012039636541560718467073119333184942701257885536886980479411586087011198447531155154517942414545750461067197875437125260198303325155141048274113759412186390165691538971080383775243058369971690897965861770464164787395422627901821595893782854209683188641808553102317838164658045280301661796373332978938263154288112487002617572010782938848722630990573685680607113944588581756909520114133884820319206969684304577783258334065301140841300449623483119201729399456035056724362869280490101612875669588920156097298322766351330809099527111135894510960679668048697663605217512692980050204464352719925583180044352289432754747329527147483180668834640619669040526797115130603112969605899600190779902464977515014416046812673409676747841546716011185565031493054724002300301041880740024150237249353016312233529253936707914032355940621967877054006619480858748188322027920333759635915029890270970375941709214206147421785593299092985045928900572742914676567257553066441368454242164043062136835151426293432634317682328240201873457811765860264529948392365630480831715785418003230546841858316159480996471013188515693780638264199476511318779250717778269606982784757172652383054302660460710430848325878015482036820604239625353200410112027515957142081684769562328627371065269638993686970715646597768187583403316282500935429349234455430813313651818928502071544516683646708607615495080486843071970890265446178612105443877605704405443815846143773184805633189808517270645125444491140587294336583453147748887168277029908026953127838423246810574867935152165952919116632528112247777539658011202354250601243280280890141430308395635497078270030766873714210618881067917913162726347136953676734180250412434786725451508463786579207494423565429343117631955359782860465444231762421559663439736930029883382179462559641622142081197911470106002964564766626594560716461955984451502649523385769876369964965012379257840137092375578014427832029755681056195450200765534973270502501982026574886184331055819194617436742343201741263568297892665139685626546595606812847560685768614555229908673853116396816990374343862860688252227109617960039119393970372833186312424976082499835046337669639886624337121409414844777157316136440233552001410574417959012820556166453939310142496059686104228742261565818724287971867429275197687581785439882159537047703025326399618379163247028634096046186082501643407676804534919004240736664820828502738229626701942671220065425482278821491676379059459079389691746563773495872234500338454049511378411502070287722829461914310354254945072404562097774628944784736579686719998665153973506472151860311703484256809795080060425246969428652425357885555314475873192185592013643908183157352351641357867241353108611873649698888861350503468567662315392863842228832813717011800492735204150072882417480468895684504530458228375135640550482820754889320669456708228569867681493032108778523679182061357630413915881464362149105903791507024065690339788173904922406159348841872780308365577963507261590765477062017134604866654455806655271159433320505559149977083528966957281527167205337399579376909286926971435715297099719915118165920893318986459623165330207033317749117215651965583165814439361615058661437791267689084094465598426850224273394646441701065284378315831569051100577035212335469030625235278212636916939605457229430712600187831655660978375131002951048717901669290533641951191320202968848444954454643732982933250625956211808504294821518248323678804071529214717054088361707924376779938396028688948496610380400089247688272957800261895604586437267023412157762811714252884964477194127060209085660638153720040338872171324790108203277317300027463047557557663467317864491248642669805745268831315746476227919831359184652291371487292828818989668885512908934098998404266217598253096412474490635221073736183558354630745743667702552272701607833635344240417043316281424563577833620716529811477406026270626714973254946854055780421905712022052733915820444335692966039118943110150606119006934075664758443955526812237352354299635241931855623347382470077401451293566806923666358628144462223354127854319112976250413168941226923174020699554562141845730596262876213610083161346265903571557426694066136899700929289352090311363265879194149208206026624865304773912520318233133490788723083185307113134738777200373350501776187866546251597330269967140178988455855697907864034041868074344126631415787362838729340850702743358499371683413674443448799677268804667758993479773017277015115061846450274461878830101686875141144265986845585924432113931829147699910554560213964572380047068003855087170443370546572826516298170931642657428891911023851906719801497339907829367406150771875773219322985799464321835523834365986107845933148825992318709746692412993112129962773128910082790911844946417579280180613165380592678146089684846445940841299988870006213393788709314831910537174361233134367169344427960897075027036195327789487810944670893881192792885218677321490992909539981527665427722326258826843167734805595069497571444716164567574466387233209280975559388164420802030907695791926272169468051946270223959423074968487086199591771469931225974281636501535797115504419637559741428808829083931050000580788068126314006515911931183441051150148351051788870647981498006401443874920225917481863743858958843732040283399834226891599345787692572153895103726281637375400332158665094383158645450016424636367663645574115077745512128266768727311852215582079834539936623371254572853645201923153075187192012103237757680094274481786527123743814346016525686976949955427672571665488638620278434522640180940124716932913016215451718029312984570365302129331051733480955828065571348738039819644026088443836078184563862859795504514724277536674208685380838479142535211294627266859387077341805041293760254018447878216426629807764195000530576639632827724895575166720590214864818631263584505600021494724390254251050976687357364820322578972529965835291077959590644740128891777772150452190805366666539529459104447110058685077132422535264815977752976095446178424458216724989735742148365891423775028165292300558685052236998671432842121161518932082773172543517136103889790074775977571400328458105464556086430343751258408920843821982825522272064175064595799349996677220774365118331780072482512701927744743318431570233444150215208946248014380161312271284165869296907703537136666272759689853312112741442802919259888853969276532540048274080160786723721214988549657395302763539302713175861778215400537845032756259495303249506563410809604694265221396284566290346741426289490525428923098015879649542738569506095892071063415402642886014008326542670453307202248142161849555639790130870594403080111642848545520214412832119557443793714947658648687750463179167684468574847800579394667915726674847213552424108823070750579033337172719447276525941379057212786239293422117623370395703658618293150623217216108817544937701979848864758496609114431565749696272273203675629843560231349671201793631552797447276747127799529440842354859674938803148359830495363489801889745828677942147969293233023570542509252400559696130930003196003279336074665514185496073668617429882929430255877847177275375456916170726581332862105072630910649323057760619070801492571318863769699540631634018816549324985011866018938209827284507218799071585522976665101884207120362690244955104204643152034577401834667980355116362722680869361350298520330509684841653659523452036310850249622908082677348243517040793986676265051186414933247459777533400934696802561883832585107286629114119861072997085786665442919983692557377237452776233216459041888883056796997015534299392584086294100681137016745139624281285996110248668754094601731973071747504972468195628876428374676192457298802705678194988494491593031686272736618120956093708234512127997221722269361943729994648526837510534439941600287314383694760090681117897541576009476709586424327048418307317527381571042865322737457036601079477106927769301861714632219990700869512388440786339201720307969086783400595137038081227011543044179940495505728161608606454318593145437575189494652279810536957888820528821400000468351569426159124425476991016143555761129720693698062603831520130379865155877766899289670737660180927742084087091594545876145916289269627422280106394302914484633990329073786226358477788387993347804759877894063150101038397869737502221561788731709048858947575704523479788571706204073507189270470694835219569885757238345405510068979783187455160248628957179870294151480276176142448467298790657983543120303429238584462957822119801714526943095740950701452542619480004344994879651476648088706694945039714260333422262127051741630141410046089894883570215924780704871534873766539036072858048387213557276764548592312579626166005099479626179685720862169428352029248572723267924171855400097588583512639288032108379994463850394424209591677349815029285180557945087284648884038042016745038650707728015938860470078132512733909615039012188816623936022123756510199564124493950079675856925145470697355736757128386145317234449373114225854025773614333683158440394632177406064716118954740641891733670610373130817140342709904634986941556790645171912681572478956696101819615884975298381709085132319503368776982114071130040146789477766817933053882878724811537461374831842319529156174355441697302019462519719480313717913793158316494905217358563468518618624747395145755508608624140816422962117253485231694433910785764211769464007308052991980923254431785687340626462728800811960035586103019222254395565222601961457123316356444633280929396546360678100960045431551429641821377493308107939291618540288618526168945813861933546789762579686684989902346234915234994361406155206640112866281937425319675947335986018970478168219712579096109312286159200461425644498462799101466904849180208568741254303042133205408918044579149855185221022725064110657331215479894326026077068600244772572702980367096735152244425367687582358864867652001257578878940824259926526483403332984229831885151972613077113993163789030123434501676416245648734662009096122832693084430387892073214508913436532956022016639413823671733793139747338576959633739711406226794557003057623490509130868693870995743854666076742533321535443523466879088655361117173807038096651465165668206504014633562919078477382912553161916367035837420278243586445464801069764279883521376939474300861628378500880852740364203286667246895947419416618924287756140523142473492556384401914616124282815034230920930929427498543133065759522204285541666519983101530344002061350659082135709804214118867167269282448771046181630564202281410765597745485550700869308424903016370304301031445085251114903540670918634588476911191389474911619597905888424385555900029382652616863459933492181760895458684729418724627716840074696876945970540723629809536880429786581576870817377671018968108679780134900224843962215899468859190837502116077521244563210799579732646679859132069518907627158065978720500014404460680827773739805398781258890702496078649767381663823651703181278973991371479202105702390368029091978168776387968356368811704665860148173124624369185030216736056062378984594397948238013748630798290910336330888523336356667631473486814698325675030719386238429418332636740713512313494196727534995681320406027532354862343892424160219808787005360326979500266412810397518265341854474930883261237697753239130646928184656545129838326580199817458860349738101829911201163898847718557350537759854576800705829515651914884161736445930558193608394236246357489391594295234959481491199519942222929638539918749127535970535788894264142978909786982720099462026163317662016689660091563255515775562229231202515722076037499100995860344292142672512427177935860420325235863893520962019778421510528219004899294607335211722312103770004646785117092291968363698160202316986027461546565443678563905470527769316627882844782402508287820707005881638277590052546895732381603034341210665865855660096902310827365541744040705010309335100622116000351023411726496307965194704883425623427248642130994127050717060739588181330740331819762105580465124561805116275024837544399832982885131816786412180377345990080389721757788853097731096589181379011946229407699573349561250001541662429348805485966326569865037386499011910019587783066843088513054517139858224228184691616781738210649749138481878855757642892791552592499127006008146267634602837622085707043972702734469729025529177337693627690924493131429008667204203571515676142118162490165426212091693474209933802585765086323910810500308023086549102420351122295866249557971414079824723617368016994424013228816334157918998001583032271892428748548398157229816296282960289160941406697474438886272090751366201344233887976562848070658322671273631038371045069376646924950148525948868221308525136565547092004354743914675971877846354053264633264397992917143710415500565076291388656460357287284570264277433274979149858215233398682140172096336333005116376807658511023643742965756820813123582932955169158462693280516408788823480402039909517430023247932428884377815675464707014391079393826405327113745939272930151421289761175088909206874012400093411101458343140035424060818308596280840843377255783532827852377148388059332335315895749378309992219225182889351241790995530906541746377641355981613690126490094433406877667639848439089612619491267066228012080114250606606067836882991315282563149168060965648200867845248578598914797310037149601869516111466992301534791242539133955176140363461079036181592959854571221020930040172733027997361077253884555853585874493184004365973371282482750377219508812773199650089472891575325042341323345221419296654897119046704412136470023630923442436846463192431240929311846604705109323907058552890696019035325559875787112031678541616722253167891604804545771622654666442191423655592893185318949944729467529821337138546883353508745614727693402318639265342113761421441335705508825179535553146970675864590572398329191465299898648558571394245709114483414268926331675050698155277700832838190559341978034520109392761049946573032908049611393299288263380754679515850424763520298312032802132542902707748986047339050428101239304319711233717225703359598489560856315900242016511652385830979204124388463373012235104571552867948340194613766424485176547177767697445725005148375573932107086090377666191510759746693931929023207648349686764026301369826215567119538292005343833539172360323679980583071321700308227689513884676225243435023909530935228095082103532950964257341539592955230567872072666741512452344752893196520616536574757249906368401285990096052724243728457824539317058936639826207975773862814011479888980504505377899145215350233208547886635343607574007588196083546654895527594114979825247451340756809037732427112037298624315234001908805409847376687638946463451256880387501184808948064602508376509889522003355288105896568628880039475710284909649908268211114923995465647639415148176779670383546347746570855742181766353429821365401648285861541224251606536382757050654485395277752529678007412530553250114377884313621239874145496643479220996757557590109294634275326079561825535062749535044917186205281861675770414374712850761118279150459202085302162775713844612528735791335679533111058509585450091507742942811765362085749934773744060921981458187353212098441138965931383607350439082809716672782197511030449095309956814914617236296986371718628741334155664171564305943389526644011075259307000390116677490120646417565897764754610245612320805131304796208394376180697288253532135836581802660918704122868712710862086316968932258425461416297544666053850340193232228904249353858487686168906517742910958029011532894187502815828353035079144790518246854915368704667192856122648206982452300362440724414772031206858895149996110447816168691239075790639676673023140371744640353534607889381404548976937982055651915629443704943849129187036941649950392168882082123867988606080295820530401316396961963269466263547308426958201845559593241581227058568705764558671569862849395570842604446534207663682944971144012193329447304646113329813785866247110964684299814153348659646189619710332032804799642290153323362483902503773911513235528126870202449975899800499344167804814029223008534323532542729806194835140754699319387111023551408179952924280238431113113757610106778494798960214763687897134472242677498104780699931322054296521579696379433244608253177785294465910465310660140378032761789495892254738375876207729393147552547822498368132720272837904498471379729020811370449852941432625096674102202618956187008338952019252900731559538282572393256781441663063196434233270534195588735744336546355678464246223943166824887130470150718780808343672200394818432765273145815129270188230374680198861312506992233941784991005318536545264747410130675400592836908411796909869235928788370275298678341716704294775665200260318672416065401110987532537137669133131190198086987971603519487967128138165592986180104919872936003437838883576974453344471682475449274705753991912361569829905184942472457987883293566941027563429684231910658405312713431359580372625248780957813237985819601345423493654415248744323528907603434047918979388449324904392354045428897076937026189079623095732792649396113756490047562058053223363097091477331352059777697073911608856244384197332777953424023186803106319211381595885355632246190563549017008420126210139951960318321202641213405382470371494745542260960744301390197529553936170564605253088052834193721987264318012995262478049049464462696054272634791967315765300820898563219985802403545167454948129115923185140268544740223647293399631333611609524327297626195923560712310526396413103913728333994057443548730912089285340515022176876077235312910968101515598918652040958572285426613513924395416949165525272148363737089806487938017769777251296043758251378582823156962942549838561475436884225194285679262283418246746596139008637612986064043300595507429379900224575847317967428938753464502560064870963970654449762311689381902051529981524161514648316238249943675947576660044199231935614367138319466462895316943289925035115803091478948286643944868992635627974409306157359865576282406252716074273124770278054407101785460296715140655036286618174280552563238126524909379939076949923159367201869499653745414019456051166482783180849978710050862004697644270249760218531140525818094940785351068087417525327528433327380647836377398845925841303059921890556398072997850839611759422101844943038323315367864853231717416323237671350618037432121711726412669072135036118671062910253419511124291184371853152346672475147788222497712267102824565800896019427470255825156031447387183897082626659535414435258217667593840977617321860134505142940835299886354039152725227351963152292816903896578686140498967765791243218542876237745922409498073500379432118988357131488031504823885553976398738062561825490100483627286172453938314891167523544449945578845524584700649723712294149161405929712965650756946307266099528907642670358779751036890273093485579491393532404841374912790259357964696444747308580262740013642102692728457363582792573904388525120249254203489922707016188311339299116275489198294349417038028888869150213975490408996508969662331007741093118102945888254814654384963356263533376279529561200073389349835551973417356275061469478758123265034028356524691100952561868313221686312309335405184181757139609053263308747407312794452224630563748924512042149201805971341924320415268761825497211611798531372003022997733807085079685239806594171034681831406197513145835790416043497622387536728802176771758473489801037858884789015083102386723636124626687271519439229459328060460459939186893000748793334473640355792875168057233161355747091692158919562972922148078047654448336209466858897491301140642724877356132464022204514258966230761984341094787590236550755488777612857991486299784501094854682516682107076231759997208085240514423977389405175323273931556771506461723380351449909821067238372464253482374212387656857558027551880673031700336912885538295316975174097813448991483937581530212089402232565102046749947864678391048016526159519681984142480654658229663514611559384563589086569617665131699936552588854118709595887981543690931755867359160255151016548423833041590556575000839921750398140542253730591961984276547575539379552197162513514498074000605105440931204280130010321174488491155340383010336907867551985259579917687991737572527391242021284705665839744221738214215981605582903732855854691095840586951713258544717919639827445018073417144637113495618291554427138396002486041591327960046148532045012586254887023465335596965946199454577465888510689288124543150323263316840663955183134080249889290762954906915431566416852892942709012190083972809775930544024820019874568295741303247007365225350761766555042476914332293756362754454295462485745839775515935717114682663347665921359422124616683114254395993875659664588732613754978845622936861671321349443501781272615931339340900561823744918791415889515066663294142179352408679203852470035685460880577043397970762652795885763750157087097891025717815592058542963881295868842338395079742277365974574330705688508507175184174311898392570044288970095501008880409114574613868428471366747166196508211347334523598928049238378720650555998031552407856708650285661668750665641862416698874114173168812096106549933055360069152186364872489383212913010341350121169449619574592736114875421160918177627022841248601825116556506658582935950108758621372201345181360311455191791696710025169621802168730592784748230045347645890864205462141164487951201206111009289220313242368638757044652081557902360954948007443804991072062824035977618336968235678870971159209067713055217693197290110495602742283590681025538730150177412570543261663378518230838723972796448264226858500263898083497288152853273403542037870863033221459743531571416706614782773181938877227092430149640396130895155914400945495118547928482084062791199420462279741279078392355335439690134061257697749415086873992643785051877360768270246606384663166971232765296833503484949802487996287338510337282492080474382237060462214851397472947728595819216883467295058299549592065257239484503147840270300052587895233114632457669313630235894123619850290519056146385748887707310379238581765264623955240110099855812724452751708460022392398896292578232028225668070640942811688199089960678997899120810419893506099172909777180942608145015739605998674049006602414369284959194273777113843317006655549577407219431126033126569720134466728164504100586405108107252558955664975051478484420367927194534639218546872799152791079609749719287071409822686486044051601228701419972655671131102098577219847946023818488520822198947401372466761986319835487713405533965833109051269170051114594648516762110382370832121454440101865258287187873721040457805494781804566971297784954160604654020752909304839345989560340084861114292398943348569780039958026097106311460454848100966010865263592308996564114253920873386174638343639165099691468028006080332143728971193315879305835600825747657754636908556908903634765483519390472191789161988454743478946347647903607010852032690177824538355697601596630431840577925510689132781822038189616746161525098370083464489851398379180386285160050680308390108957734006106478920801747101322530402082199337736602897602178457865837569713135922944957967910977352635180125697244266042330856584248059669170931503920415495567189105767149151400314538397852161811654070227074539894363100578101926590635007667109855491919132386664585160699321723035031293135369580626217882536510754732218233445008877742711448338812528723241440655856786319762058414291251648181273571841283067984290144269517308099307152750785418810230356765197481557728540348235206802881807913682900654827465191461462056971310303120233868028545629818277382590484783508475369425570932460875819383402359776810534743938680814914614133413323544944323766261255833102143471458556366486610048356009126293944839949427599838679134952466918676163871423457407236167823442478254478930830205054557919638172117970186020599413094632701209251041396769257547874844303806894852059188344844687431787962386610537029493819892566815165220148205139125176946913999377339181655920440877943192294883370425697863545762604992611622035445227963258331656358340309765514853123987527406909625797951284449183335482844996971192465582202817622198506400540326588024950527598734647711800950046541965110005313163381537379221626386583316299564954395084724020687754928037987744485598061454083062535590412322211169976964217775589139304189393870605689128632657872842169212239279519813220216754854591759041673930789544716862514367371584892058701968575279581908755307951288915497952047367721980543136404949126017111998689254501818098304441542423192283110188371746817654867099070678759078534509395332244253087314366543026921864969000335764782430068881338452443086355276859050236268052146104149984673175944404286526426848848489052161709296062567268872621018991364126423449538263030118701205565381899666495383105941063577893241656409946151385573539451908039326637275850784717779622962928267528445474012818051860423618689574829710618426590332033081256868543638430671056267921565791555053796380607651795096988485913531469223347898867728764160090319799549577990433311074340121323233622702045846621538710585074454690366234482534506264938168464236693689745047561671734549302055174276209602770490069634086273465206229328973167597733714146943804387865088942742895301572758291070954943680617361324738255410958323245456887506324028675558351472604207623465105130617829166673477933197503699549465109978263002356870984655424031237005916279168619010965874838901633281075497388429015009702639731449539845530491715418010201369485494772100970268940399549396625396913276869405024793545592149121154876809080765867218000786046750041511394140233333144682600228201650594778846065015825490040151834977425392040582945556303331359112995088049468658547723250152928787669429963691463235450276565302409177391662629822298327405495590141188755189915754543443276634167527793755992610673848497986289520012949372819638401352179091571900402912636900845464986026742262582631641471713826991366442080060827585506636260545349516201408959612647578705994808700132497829391859821928457019047167770605128358670391756772000872337944211459804045789624906347915334951119872224916682772408720041760650050928251492477649425298046479432774706714200804095131657326669195513771369534879266361040890990729893326807668571584992582961960505325020300888489378301343550580541741674145721570118969543094155517009550047946317915630178361628132767379487672745597901689820200579383753605073064138330513804917172967197711123292742108159392941430782015937824526618818851828964324407076672918084492570420145411308632694925400567981161301902255065641979426846905077232378170602584135521063527428596318836664839972492650197746497474801051185307493594558659518380515756265276485711190248143695533056898206833239193654762596277217955452040074182745436523940103350969755341955418920443031138777915367749420069265771849493136814270454316606417523013154113828813549719655577009225138862895566601834788903322284904321684357372625887029492428225966496919842085037149116056154147511227980560290786424967097689216566334097667420789365395625426671361471826099378007231497814290849656611384532564318592941284775511525248156952681323277578405275399045231366293912553848524359857252746796507281408231099640684100414747743866872667851811575529976618901157541350428061566293347847715855308911451717277113396438458131168079233915455186334653035321411444447199744280615250528843086983716538261583101209949826528749427195835784419439665672740134410449774136498382446704413848096432704768942570969949031281189983372299703024098597815680788998246498868686100484689661966774478079826446863350049512669685128507731567326626114328625802363813732703060077963013636639920586058385598231893414720167705447385162793348440005415863696905407191805669241831707926513937126701473883113803522979797723160223184699087531657966474961653829135430120805715369429099331117312610282308188128059000671344147817945981765440530841035979292615892303879591924030203874422597057502929092769044879385614891446373772841367140431274890301425405855562485622396811452547296660945603853881410055152998610999567561469733587749679585001795714573884225652313076111085612275916116297845848849485919957590150514273416004744752802188266201725407703762312033824215843221088840372875131405159682527217894082095112742842055894140884151963736377571007860178288631064736443488982811578378640403918877301330737758451152731137015500386250807218444371730161876686882077861823378894292340459065948929233364921245475395565044264925473732643030136176713521100620417229812002008720446916133265525436549831678324206150797171796195503727742627876844792898450962218186775732336305024555037402783819386527908056699163268653162806044637605770095839385474983804204486766715288256736532329179681541240089219902589185743798190977113403376981843134164658579314819996778361657472655394856613015253749723978968414712298326049990776242798098499930016173954770413636436960586820342079313446317360259334729485458129153553203627608974432783814854606233059341769967150999781232497712873174241217913525544037788798924500780110791013326434296316670695327422221929702426388695189086086649857107459609683020343348478338557274365360084947769684096175237207227145005775158943685763520590224437145603700084374064395654134671081045223135461788490480662446421235742894859182849307165953172293941384162609002119957229234772097895476040624428824762351900624497180166806459946598932732197855950384878026116259263574562789540511397636420065634240837328480987321613716134062717122248848358701535134876255951238180879251864827721513273970094801332549465138852827328050502017730864435837474562647271225244962480160079013926687019559050900526606099540118071210488104894972544369857589898409647083982497951089619810892471990994547407921872530070012469852529110927255632207396918694419959618273281209100417876356552905015699851988671720868534119827576404401258699720868273352675320600226329771546882841065072838164869801183279228685665384967357629537454224369478423850715362121123263850923452477451454608717032414154281012862060911570846823053353000188787087371892901733422448908903290423258724142996042282636511346195433111112723638487924712063653241329085052639715451825982129427540069985727272920658421593268604980241578301941783647764185193991763223229565096715450403111252618176276056954873217658290197249767950908088936553838882130403829708072820536866540843715194126541375471334536614597441931095596199527693046302985255935522653019977436577171165074819493062344621689174730744064435108448268878183652101027958124266419835467871343771412200718786269609373640710760666672565674654594195480932881586303703479147682607158779771547739082974153865074465399047389575216804607525051168685949104670906569784213609877551111016347862646048011173239547970348334987254492889735184588986856865889991424277928296836167359918510534448906229719010987159139726135973626555087675990235767071409216176937661644988874869643332340949297784576033239596632730622445582505269668547403708941999764872342407608200944188097408585716304682320459683989465850046630953947866964054721502961693092385396374815026706010224928302013996508962967188471456780360096842504746151690154733183464911823034251302337040853460589872500819379578165813881873538161730180662011717437724545349380859846650047117455388582310705480766754725599007637484451773867416177665553282568658646322681668796953185410921081476581903633409714049228367774588814504507872457227460195157918232368534545191088686335021859398514968656365534329264623547765603756489768478090204972764649533502425731933183723149134382635245393852560418842524117841859504384500238766945272163929793186622186403485245553721984059134603589910234229998530854933003146775472190045253427623513792142397159238536890206774058395794564323170318817958132298607823900334415716697580489170823701064462604324362967708619820579322992869413841566329094184241065343182676342845855794672705131120779147686872024673194347968142055471819888979311516057993569375689802589852347328666049246829271126161890907363965171333177764198830566088180152103763094020447770338729740057380949404819142632000845676205237070472613734753733104746381416212564839740330471303632663215260657357384987995699615105597720891824624032203389471371692855499929840785348013411829959964685846242604078894734673253374772064807431454446449105398892457932776825175824849546574283535751684121123733575595641762693496311314863108203938584452622213615378407019693339981449646346632602890798481876423043571142592580536991930166098294474053496377898217331481133243030528459023987201338351416319623835867707183593318719745227280632995469804072785368966532977017452077868184708143531292449416853696667620811774085326169580602144405737230979824617090614041470632458894559745892330879236582774981830204505784737726394601358473098118770220604937800146154282595429679800196156832793222621957034423586315440494206675081023161927219022837804489390699729450878029221603768992094774494472820214994586963477516767619018580829739415606779151111935152541639943464905700932705853466872537803108786687793343407728413774460793031187184642353204500512667474416315866235704247036476963234044674510562288941587094386025069866094601438030721996788894299481746870778570310982396527313041882218320465761665009798823488761763725748088903966246855660955170536303766344207376703441061298520394757613358485398671378937885547759778923072687031243654191296657236202098788242075251634541090601544739483746344786176149639539019644820739493840578884182159353723143161640885835667568927282886909129251843096120571261178593618052182399354183880458206616876074094871594170293143025519230226409173061613435154627498422029879413726832596079643679852628340898202737599350394120488495236271882132702751391883675630072477777693639513174782655726409791881556063864607560267712215180259212404176684249079908756371432768191901708969527895836401856424216250644955580308529472385340238138410326132524958883411346641153770959204574827065865022956095736479310974605736729764840732930024594986791478956380379140390351591755483574770039433445641647542590327654665669347033624516529926297230376874645150955221570005993938302435379785372428413084505791441956128155528878906460834282570839614580747363517514639654417324098428086037121492782957176887651493081518270443690250952886215464331231348558617036255689920442017873403856590664379102266930425678474969957292366111516141017550280750921611344190861734153159896112353550998938071565353617986643068509352616304527216672545162100599845717446334008839715434182558678976662642710462669365289316843110351145804799125817496462297757204376331977229041036397711221329820416205144887891163796686284754109106399415128754302986761151195077138147808328108252355431405105558752104858054465793258561377284869188565583900079856233407999203328859131146938397609880733204342229478049724062568582282705446068937093019608979115898478218384908970349555693023110496982100475027118359299024448532119612070716102424141085097013579361989235814841885715205011567833197294233993538335149624120567442173331742025226222259629475369097570077646046747713631425555478727953477542507612146359739924562950274988891512052352697961593937750053138647796375140528590861606251854335889961035226913303844876551242525731004592326608618697485872138235369116858715617795488079997802315292966852883541302507905398584760534640138729101698573665466366331490188183916132131070442412130982540463091482286199464058540512284745596181122432564772396895524477595456214974616632660631837216614697721850517641039084922725420238076903664169523558100146064252451680723273910428864165965234943876227067331427930604253113125549359633298000329656936554197717913222114051168955129690158573747392788314841301960799480443987956439520142613459839589438758399453270484010478593744095733261657488843097429826749219212802665847104311170676007789682541112470008711621233217202188539246208670492052214805379202425143903411973495522917755298889787405270619359526134254457093635831007619446418264705172215050878213727853460665310579731127083766004141041895807319505780338082440794286458360745045994614800004083795195037476039244791938661737920968338542622273666313189565670199312905865770782707128924225001147322764087738869951747431414915832460135312138201109575402844883084151518124118811028876226320159125985755696059335602475101683962688678133692929838750548432585257133115993696831207254946356475157960088352819387423290433660887809595911285537786160090990203382720845428116351458715133212120172136740099105742924109356574511050425285389122621929856737821478038364282808193591656176804659275634151133745954836696097989675972822039731616621921306395022084785104661292916527576053718308969213598901363713720743219646435217294176294072794818143867835201456340357985956988312405655262752372186111159667142217466564048597438292020273625825734701349995317342085235594089443109556424397081002996267374271018030207978309479213215662864022094225486418458943565015475379869252722761886578207092507052283370973253530096573095705970917978965660327454184453938071501730691402598099692224837094997273358109446459492155871668140279115847148489326302197080074255131592323120943094188457154361581078702649903603032280282759251193366543947953000024116610168269968871900985972830335089375558842300894069873282125071425510740933405422484400008717153747839052328509728850571180246805666036166160835360623098363763028204281158180245211873124493285659237885832198192811996895786204541017346365993885019546272386174945596915575254069448977835107653437268953660925380582867182262286007512968258054136550462008868426382184780078120816089981515360492430466169839227017068343923574498312108765887045074161768206747715858184776913107516845601208733862015628101816485939705956089027236357624793287334936378807671822483618180570403083566834113254677086964958135728503696500867989893287233003845789647950532006572642476926837573847536429204832023693694986291795483996007524761422328418930925493698399430083757657360786507965396181786021995653024199898265820773537751238551987586743964190248548171254857130598903812583129375916110130019071161730771167371360681512941903835236796934912056000888125303432885529504194363611888072207919763224337974558672597296135909120618205470712547117073499661457492589320888966525656612065932987974674994329820210736982846318289473792219179305905482810813053264285199002149416948185198866482941949289295860666037840125753891999238374791323509400303046459026036219461624631443385790070156090178838755578825672572351190396910904746036756883921318213243045562515177919878064129467121843317486173047304409806037356081225352621792731578341865755773548519029981318879706061843513656920891258305356564315474087826536157971607256635790087521031693591067230395894164800947676886550148884654055374017032988609333154510064175197415423835204044666734590389429138474567223273240659170609181540241250903716684692116601081228585903373570853606833473004585843535257132687169731493256776531035042875238025524433102361154674674282240217377436292686532969325044612123336831307655824327604439111237075457335351421796035533238030975641231097762089737681359271579197804245479906702083379914740565118948127560371210998834300698953692230843600692384229172628796352067733572301550975909615157850772671979329427006519793856057359058831506007200139398197645797646825023855793208329834058725931388393824913886061987748714650087461050197898203714574977788344808262772216690388863424718221714043064805939731758284095415890351185272678251482272295924566097473369162708982366666480367722742535670335298244650830434090767357167948763909171723416366202334842505613460035663941089932967833126698064716551695638728445299496565189556911683479020648122961443731276143533824010559630673116186319253920753619592265294973351337718700207693110201657834636193172494694162592490483997957260898220814546871288747712411419826008147715757488818492204024664007620073559836786332426308224617587956570887577852232931620106108091599464483259861975849058559290833816462657125627871594019454017806461443045952351021127019925810566982023635229625144415325203446933645351277121015401797089102581316973512677980104650999966136353921937535536985992375289340431643627460342973182053052033160858631501894606170788571704097905423491552554653839965547124885011296798201402870766353919968406010458028487576417661136080492226083815592493826217075729826836088963600925538772645454129670459616925794821680001271632495323190127894922968009780502366484975587341135294123060705084842702477567772440713126646680070295590232890583845893725548811412234679651317903415257936707067531522643574333988767423754793796719944350532611393711689758006994967736554720136730917738223613824027740301084821411004191139009234210771945209095904557330556596059634121361693064932400608626107000677695318059032163990540669886702417803958851168316184867652302258482778668713966451046342537317988958273822279739365644811621863811962855464409568773200761244082381848022471036149729035956216418964024531908313791274110049982169505759958515455009892302454857404232764803800711317318394438583089394838481526491034200366380743533235241159127363567865422841577713759689503736951738982638832496120467422008691336316682546908590751261858988794975858462128123518736669530793728620477214812228092672474210081826642159436836110106708733406383771967838595826041240771808592519816251700551191525818392245710394718957045954302412651785718691748973512249657034393750185592526866120139991986361621268813345820107982866659559765950999278620749823273343336805511739349469545327469031914748141050273647812448922937132996024441825566002525269209475451124977188344535700040310418688566864283853628204797530112415763810876258206526519720001052660097122681312809310322785898053505864241041040370453354396755511614649117870145978655431132270539333968590050213402063304796222099430994091838180581547314784325450415479698864154353356396034574280083131801810635787710448231718924766940170447420887873304699799666875638195359804912419841604742886136697668497537733804095899423571742989396653020947286087532611668724913127990942681611601376006672836563418882643932443369782662221609016670437181773585352801115217145041037216576037449073951759893423745231559605653131975138212478389288078649421144612526988275466392640982191110251009272723259120835919241602521455599262494301774970660771293057626667626063462833193904544692572327217529246874294643724546226740665474068643569348088174676976520634954921661966274025283424204195064789702714814475383286186312065718256906017446221553251692253011349659775045922504065589635875872445133824100627501884620107595662674255827412428619318160929900211029605978648019113456041095982191578093952706241481894755401017437518170269793825359471753397622231644136906833109988448159258474656926263128493176265703886114678101025530260883841174020773195978875335725326665289084500924080699843181361804255054378806400157231484131184434329354167967612432579868115521703503679416901759713654821947382072686213377422089641029538367607200401833183634049829834807594469884417881529490388064144624320556663513697023972592075791724719992096331369764413906518150828122127516734769422701442349478342992584517965672309234671027744983242095031520082387398014997211871791726795453094321882698570461145141344355148085218251320577848631319572844922127714761967684610767502035821385950127691322841009984049268036774799234038446254928989057441173440959181408972952261640404823742097577639734469753524301318835891126886239020894118411842754056938586668211728692111861410920874666120117571096255095016490969316223114063505011015716229742420899496453641536632424634923966965192846415885956917219642936012778809627122180813529977197418846547243112722828823785559986937647570982917689566978072769758033211081187105864038100704640866492293371513449138416180648472957160144180042428887914990254076817048814410017438133745013153169056039012644919433616145697690333468013919758668197331874461254910551629429932497589619227886472357746533110564630019265729838303145097215025061510385360969377276824492596345650767604167689287323279881748717125360403354382266646469398592814151555810459576667843248306546757994088554341339421445389442087532161066090242816002656307503705925625267655925842164646074481037007891346769796731290040872657937951520346649499904491175349492381695724437803304612495588609795994692740477642831329603282172929447873880400404720299580052093401661424110390661597094775000666444573868586296105613949588188947365494716126827564604291207563471423457158919731044935089941761897658102818456498063462819400978825750614744628581839842571244413339285625265174146684064926941479158452149242437494974488341758326390061802109418013118656000266864160589705233511517237743575670048099652046492562422362707079799097824428351439906357124338347615219353547061855479066506224107741287249748391907413989302382852264643504011515786274991625871376135085182094292834037418959498781922876638224224603183422556788906948177622812986161028294027414930599239487678231389537003263607988580797154023141039919150609999564367979362604198478055460000233152396426677317809656615855939314132237187190402591518007554070940387215208374751792504932815771259066577805623309645538017119868306020739233177339329941748323252160639029130724175369005622775790385178134848454346093455575889074981737851593212109380075567575423715116460225973381910960712916548815635974217349520096964719365880697158166310968761151955449865765254277182575619175796546518453273728111633861549042662558231342808795658531400476422177750345647807919869657558331038275645805230658558111299334095270782861402395195030693248276297054141696739611893841377990754060676831690594880225566569908925597857704868208655314881376805403618344638119082129957465725914052611248357695015802924490633474406259571275278758027177686622033828505759852024234651045355062626687240033326158711748627911113797093861038434813416002192124590217737439111513780657118398928173993317936514698239838503096122698300470442129141842683934227541651935111717023981676925016116249439899617475743398964457576847472673455851230880031316282822616961842592225274664713136707057190897305790626566926314513963647816539175228389523215252647147323480256428455067724640513605655987300783070913637457035625072987572024335822249418593676822921217427374249887590270823999998963713780756471547207378667658918123175512957453038146259464664299479991667553364439158048666328322740140749278448339980945052556174100954863831196908780930998962678645913496169943048598998046084987395142838474351906804409696934062884098305730474718676354573608738560843007260089688060581842813036339376527620550699178718593768446461230508100275568438814053746965408719551796224271050025494313665503384703474857230088218957928412338975522573410347832286872164981819071169517447736142051214010026905384057298378002683510445914252999065671219728558161804251146426598362039244509978273271918945346414607311670599199491977844680232045279679752388555529265344267817851455874223636309831521244341082637848135902055126072612197097044254105320920676296168413079727013679885053554058710101233722498157550531558341105904022289434805211225179711538822731680872942369855942945233534184370304795350480946167239319328703023910199285524531488370881347048564336450051455692529291608402212650750178249708637624386330716190112171364801190780587190688965206667185327493056307730527806025657992420210782342381646888272635716210702954147680862984435961069247148654947040355802591389548900539715193693606913080715187093468519528610118282472644307786102506603218194048159741440794595859928024966800553156590174181404192414986123006700338705037915733077081697136492078801545234067212294541801665690713852118087150088159096701964870268741990777887974223769403659000586970519757588331429933718021450021213993870461054173267374842581431260083043483729372326235741483833784345816531307253787909297237084740317173478689683362962595727581354302617262848590032567023505713347181044935671118152880962715567539548233732777081833087517291226671292351855928121457638447408791252484530003888813334856652722929747039399965247974472501487636888658781408152276563389197777995611610554333621781747213843979607853405877547522278368271342679133447506986155065594579710518370230083610012898319403783666947763105026720943942505708594432732503900239296991572964207309205099770802706311735878872866342449355614390009466403038908016369016953553585551339292254144508352087643635787724390906654180508660856241004741812764227484962643727097169317489959876532201344170815939640275481559097861546294160534191129936891827533723680129874781873245931464822005470713565210583978837131820307877814290234461889171116672541118796551919939004666776743555432785463535883023565045603437244678161187764103033350430369270001328918826632717944721735805075628666533148202026246302258289515274389689819565213412301265588815002071689268504081188697080262615342410048471193618318093479332417585267184500772753567739608625547007536524253621844520339083592343360332428739247460275325944113305237782386358680831987599627443875866907036758915806920101692893623023541692303353489153649058683721165480002273623721852337535482792751706380324001187427423661712610084356852076922691416394369686267196670123904536518254197511008619604973881598680375811016576419448153549673167684867985354745269943437780469344686589624483732632904550468008487925237862171724620753088961026134782164655191263831884109596545042178368153838560202433115318120626447238935591857774031005847518278750750591870037369851525783172260470758827020103837933576708452827408103833379650431444904443369538702971032263022155843756934595110551775422091400427306404691582840020724492215959989380214982350198443252071665462275227573155997714704872709943057003074617063766543867005394787837564179890102540472439040028913804724991734565874922531174296623224653540307831951571189090880120189823105255504141895010803600883688173264140200042359714296563838312334845409635927784853350353097738466415404063001636276916547725005381391471781174543748463306704186664366690679863218769428920544773265974397381352780485506612567382375370389751809986842450601392977725366387277524336045572933236921632197736434725585534022952093332997903442883095148572466421775506438434088750680912626656495310898806805747207415917208087850957468568127445305855901318095966123389001108510535240772747981962117690689025509822188053312228524468906941156868498332975106630239525748573025095165165944423428334022349213791352731103899474258795587782584417391332962320776393703662071457453844279968065795561000077455174616220800126247940988252739840841545963688827965749932113733800253533661261472154554834204656337491106402266904381783274368517713546809891626665359830573208948235859044472046771773234272821542655548249609993888892103862129420778467423945489860868317807401913673445564831248693398099118283519219304267447836821118474719366237988508487020708981135363943779257909870204362324481757883946302838684207008401336733321053414823398997292211855009380688259886737764335242685089483309569797399881481039507160759980857426748955885756023756143780000314367384303134402972028566787808461189944111620896066133078428342752826456275868865048083019932494710674888545594681608756127228520576846841958442229034877514295595324602950652031186952931680347237333910224157907078397337222119230954392882639230314912063854207643692541527434788616526782352278046271051438482376613998308081930046322869924188110727348715002768017573728049856260049081503569706840484476348549325187070019546162407202456410132014445393903046843339068712014767227862674326088987626346120980321332167643950469782478207413493893269075547000110836150746357675275512382009676968341647918211852922916621907213692664059913265299345208537106798961000719576143842502554772364397622423094511011666625961075016885501561396485154169733243239225711780304982669734378621063076063943620230148522168079894830966165067846451762403196665707887856058187916080330212189272991655593112757544535531206300913540630314602023565885916238684923169883412601156321586851332399054552794591326743535274987184659428119833056508341764744150697139081920292849283539266652585363699090125931702668127476793803820903372717314209075727530750931643427541164465219069097311039911412464745976246573095801564101235538225232412568143523693072559292488522910175485069335310542064199762414289411962700379220416304103386807373141694020773534394137977049668494999437975739659143408597684102209225289900606065183993581769111860541660748789024873812259980719334584925236250331021998812325334087538434914909382427665989204541838066122680280580252133010509977286272356288943953521838475250165435846416747211741740765782553624695719050634128524498991579866173857587051514302072787029135852475268676457668494297969726240599379376707634933142459142854274272727963707333228121779475989517141361687119083688857605550351939113423052447701836054086181161354831710134763517985052135146465576168157114079943870193433377152207669226782134996893560948951160252415567020370247950153318129855049269348897161164401603695946027522338191258826647252977164069431639682561284490449819684502871528918942696275198499741341823367776488711692040981718215813714575062996332948431613914054346498145188815386974612553897530800119882273043620569629896271096112452725713910840208636796799699986174171759745365894204497704167784452590124578689939714930326866913678595554348194062856716484882157870076619276551324690651498446906383462888756029037250019727218600605416219584015597062081377810925086800129960305191867091022428815860382410334174944188907047792510510682915828732253539125399357759567691780548933635599173403247814859814839182058009309798161442858133449449744084449302463560384791676841776214321602974095016671807206056161317407404927434393553179147237887489364458068951793819081741461733821951411266019175223653693477741567191910460377709729024250262686974359561824016753959364958114534386273991797872420370573730465054441413243660560418656366143613649074441453122879755341337047863122419106426178962079720261443402500522650764283608035067860812806247032146895660889348808419911098334366068201559901666804073921582897149942117799595125337472124987719124369462613520086833662341017890301579937079236292670796218157326570179339778402017459191667117534431197529488682545581038101058714337530351076484987824451263480823308759710791761087025070455650724375881612200212990600599908422723232682040282570367151811663754059805362832027184857461652507186051207089380612465043764931125054904188987975586331954645842556494998774593358615975178591219512441090065585516510938202323598745039318198147203048244994063880937930974860930260711815278828093618504880548201417269777561360720240933752415801810967651465893075944787618535965016761954092984710987127967390232712159308098146242224625969840457517263610698874569539432550492451604205486832260739288472514158511697676788421953416875571166445316851491805049279082095084168732973821872593976149860656018251857757315589052569406339900805426856788562962411844076686022031468826454933681345843621441225161507649920157010023787002265854684860630299698595006538144462457280529935158106181601235528695668721388611630034014863807462591116352515216707517437919110777535881905196954893891127070334017510066633983079774851965633391329012627846186154279757465736073090725281786434268415054251979740307148463620569592448890621912220012319265481958850331285103592885526178891503036132660629758826409415967273531784605453726961386961312484530608340713384973749972393072240488175111428498688994108455097468390922861016041644039349175017771923520641057762986790851409696974040547861792283263237542203507716259612724905456902531309476518315568496387614744615702007335314494806130551134960617600741192414608459957492215238631927402533384203854719709117256135015727218477258834429002968530975387704094537821404758854477011809679436892522152124503814832405750504171823644521866722561628468435665443561638749758662866167332242611858355906232074738939332492750402258603013309372759058261746649505159976761166214509402417719796842538701153565328986280248895437302410016176421284193143545823425243332618387175532589728301775904500088043896895435752841713128310533573276114943548383805143248746389413498398348949667523655629779142383182722855389143296054514376740025129352969653118803679663241278674934385555013259862622387814760343332963233357682483851012522272751615370486837231769434647969645466947471662636239222919337866748044370142143837636172522484793391353396018755709340341405490784014144553348664195196775023002955713070033580252606158514432947744928881029951089973223977786216788809751443414068040604463369419053564615279499516434065264843664415873296889095231060691749792814033542806367200590388582496896472346165939647519034513312954590280228490470402014166513690468292968424400352266667418174836066264550815241608328462950901673603971113307744210125686621361433329040630149156839987673512611115579876333545232956342954347335147522398322859341930145579432046067655525702993461040267283320554886486914808017504224155661454379210089922211888503206410374503838340789788585485889380639928982873175578643294698432186370387895965413458055171288493624313621190824660301574168319126186211230939023325524670081448282321804152431475495329594168515451638555053120880635318354565717024071175615953140143475066883866617756056555936937180496715573837014377632107819852977562860703876580346979752791669795025082498014495480789099297353443002258852055448886672579583971732245758895041770681322639000243748937585558591780434354494248923461597097011719554493527668197950638081755173618772531688957122141749420877253409600791506390624184938572935514885749805210538008928619549382372787362121892840062198651131484386114352060434917118150299938439861940177956470837887173580434696582245078333476053939693571173517271454315966873938110787149668595805700024447044555257862320063829641536205193430234061094041768847194830646017975743140356006607489401907139907991328614870596589211361710013387297567925585221811768943722816370639542940993349843007694588677636725018758747611329642586078123793319264965243230512157591075866962446449977313914746183957899947171275693195698674031277849190861265390509752496217346656875908907321011041450395339477422210074286724529563365450730802097659694121612480935755544372651581530180321859190996384658975547116320153120493179431826222844679655153442979814464548148060909098658826140022984145465389697660388982938453246397377498111209359930094049695431256724949929234106599929128902528652467015762141817097257327307909395478564039035911450442453654287255267204965734678655573942470040975897271510436946279045990177511583760683358706536311205747779619836931699205228876285389521054690799838056903976494377861221914730832207741034439955347893630679939301480665502133860773603176885646407879734464323598005691259002814744565407998163651486337944326023176226459045169249973887310432152177327255655558389824280663364414600825643512636029355618860904573164882069786774071395290571593848686399893156612367764985327694195286604652155078149573047864374154871401139348248908051079590347391762296901190675233246753491083281496814090817455593873229865865126575667827261301847453535802300783244368209615130143892796209867775393218921205503031587119485683661465341426516502030611972533842125765550581542816335520710709157941227845555661248138840875869195984034978588892384371766181858159816493975426714885430227481539069015422881770202589015723868551375110555429554754169863629504125561120912372807413527846597908140777350672066750817698643151743398145368246381317303727182608414246304516522092559555733668716602097269505409488916079895850324619919438509946906570670743922291016748137964279681370333300379153557046749248353746204188936137459451774629164619626641382159670476003920193747104216351539334112518366378665752568697739681708425902485982104561609942940972762317371454354936327446742394486944271777668531446825477290460032667187668911585920247292623640555868217880962657069378327867821120697826650016129840240378432209435165723870690666174469069117634133331305862224442756680044304920214614127386787939613219453454048122833865065874744948302671635849695602748807736603797332224767973849111815944803058633039003107019347086786098600008937370636404895402267309496324984597785723556606627643871444003400215573583642729259838135475168219545710010100804605599153953350609179157387088094904565892216287437632150915117994401017796018472329419042517771574838364934868857462971359388738461874566287036544371651830129838335469410824221135930031020509195572631062916841559637505306817382852681386878134236160799131689299790209525191695056864067787212413411589824469697738583494679185087840894155533136926043997766647283646358641629651682444125769612482353596914334360375509952797104917608374524061539925264694701947569054821546952044851114132895159795579108952557235774668667675923675433511044417082066339917070597191204014398512284197576929713706909814668900126169231859167022575428479196005150557389522888978642030755422901450631229158222970250215952872004714550339663487718397079352662989180234718628770251955201493219638281233570619736624579637127236088068280249058588530709257093273196094711309523471084421461070972412469538652360750350813709121949490967862924447795997943382560513483250349918102803354544452036884017074105786647451847002204311113521721796840159174809161146224101461646927747802884858907404907077585107957988611268133262813951389810519206513797070817070576742703893221337960064810185228046589852174782788205624156204363746288229751888647891035998489226715333631685242046319067813578509226017683806270305597112696129489129363668050787668731248937529528453531169523547611462835407576728155877551557518771067369255474375205641507139226513508815245669518916587711072566449322403740055432793498575923477544990032965551368868722746622404201794876365014276619999863261898169405108987843220030415769034256299432881102774279930503591867782553443691485864942578197468337450168707328531669393192119035156396194588890032807794247225577484559459912555129701073889757979389878775084565984947418134787448984714252895276296380689081831186677123539299020976703324191005165861347581680499548455497159270781946162102641783758523743086179449770122572260329760255681015270770419823727105097848000238258280612749930953815417470961166956693401567147558467963438311173976400486225203459380300738900631506131046937309496590014631394837923138009461448591550638382782423624300092867325921282862618541491244807646665266443913869914435459601520800147308860320202327828773230312000425992882547026166709868478448704035173907306476131424546411997243501861175812518017926013687116464726375743843242251474061856374117620976288972620612275537954052415210108843187550881978165425648440783824072882401551430695621026637870884251338785685535076155501473093124017835464887301994259365594258387723325834615904607799557639711127707185233029074676946715689788355989103320170296134108151884497316685780025782488656579946116918778802281558590900026104257345500605316652908792651747158602289868931685123503529376676269187278002724895408822265626156515080554179014348318156709669367158009129141613270771892314222183078861896428086962656488605479239656842457096104508932877464310761386889313483773655302349271570643380396329660685233579037249976647415886608109737102963833118493876908625773966642485492143821062089686857389422439041850507094303732118114506877587153623167487805447194938384656041062673203278305240365784958712715331407726464158605864483197620608284428600024983869908796907889537417788140347703478652181343003037622470162720702304679219954260372899886992443358044284878478471496282171243420188448032494345379412412521116298184012719693701337055647404608726799567320787082078741433821003539243482895167732747309121290955290012998515304741490758936120279313008109388902257911461537382464833142348540863808366827282536799525063103742815632826978655888546785591110038691284970133508452684977861730734886041889030158688413709746574599754790098456898751701078628132438666676770933551470607800797682261347543173561677688254792832792247603705522467188884709923857725679867350255016332655655956400903296066799629309517422573402892061407343020089518819095458949652918979829725414206061929092787325746558406452616115684791722873445017574201800747519352373743210915442370928226112515831004110744703882539577580360860328882531831543321387665127375766318912778702069271471650682869414575119034019582626652248232634529393832385420730692855148964298949307954240523008012778977295273806177253799961713686439841267966795030865198503682086840066680621900807187732970430161650740805246253320518038599057832316721048651702206638524443308373991334999322648160001569516729079344593394630544996449571958160557412514202466979281906941502347732937739391138804584183988228154291538941225200198937543829191685596881215368605391565667036884193553088855676383550869431439186902654836839896341791033027980829600131639213053340318790903944822624617191052294479046039033283535300860392127203711159162007030479393238308001381591328613384258828255180918049003659333939977444744348438523584406182326162116587421779526546053192985874776451182218750966775006063450813559337303782944799320265868406099392369977461242245451854209960213977196518147409280305621068540432948031264075558244515170805816943723379730120212390612016694599362060313761455293932828234196557796112985725989439713037982299460113207297630614191509924401618373274880803952376198319988417947642220667610409996101894262514497416628228340149454925418144447741894809445052178665704183465759608903684560149894124919223553095695703023695952347995056474368289591360423846748712912159895028309406231311410615100862586079665706153564883504100454864125726639739383304517007074052729244663353110010872654059040566513306886651864823497481509601026988623714003892856129301118670915642306989998312975839022735146199623658861139098601689181964038435089706281072981300083257528976223896128746947431581566455754096190861677934787908614262068773846523092835151453464682820958448744219938055589005023721268165050269951570399072098518219770606015807155189196313950182179189218609794117394484980262895725862653348161635901001341848982035127452994493083281555555727960510513498033086598287709364580413408028574743624610528476131790641479738361539999599584855945174103670543863484552306145748249676846936779457111035936699629354272242387597120531694334108560168048263237279820547715577194658962311121929619566446075637514254727746220524505280554203667221573690990309683978126942193245935309119769683637231690272933710951670411014375301432748349456109745106467823853423606724912661633264775500636199729751364862537661220839397468150214169131650971947463967005870800009209204045017438979958390313273945786614939216789357039358026555592040520682112492380789764759015480034645356086884620274602057184266473954992342342524179931936126411195499091686025098830499407517012930826856447413865713576900283635643404480013309256703193587285525375748022159827232913801374999525323410135211231942884935227336895490761561463376578774732856254521274873624686984009815419602187473774185986420295147648215369194930542479155244960787088882102112106563832446274868271384572021795248861921162882060851058198156932279541503896208154343520144576898172296265373472325887022030990391542161027225259709799988472105942718657489882918289436727307450736884811647528591875919816854479650089578788578498084115462714523827848579561165155863975238444840964878502128277486938442954284552916556160487866652797975849257353114539253653938048513021600744569753582481592741855259019042446195489993374136912484844292823213341698438502918186619169934490883075625156788538087584737476960821027373958975442243625946366942614365335061513752441063088016319033697946868064575584453270113699422524610127137881809744767540116929974265778926392331683765146158577520871747213365553976712818322884709893139957329274541510365986460390093124390674986663788405468126446555755735724066298227533494350858615473369038191088798261419255152980802961051609135242194396980834265065893941752327302246066741140840681113475979934992336172357644572853685453784680399948777897559916646718517409735934969199283178514517287526657085391373732119593741621614220278681992152778973504932034257979948136492478787647064795617719390917340662163736506253621857227658270616211479265483087791183369167297771851832655491058188856164264563940463982514391097127553634065674118466659680909323476233683966026312965285155378138895408877289467249286743385597942311351218904617134232065512533925983398183748556856136457054208725185143713766201991218445603476991619736775857267661471623427618563111634692739333100105429248159573816827258902334704509624131332078820684516090819493717932554354404820136598539772849829930313808026701395459149079839828562769436832839567050469272202440856889200264539332349006126872875787558722731057902410956100017620090820442443744375256990108241463911509606337426267756498620349218959838366354871982308434803511786631764970481879823714640585566026717367254172177762784722847518297865050399301568731619557779044222568116880638127674843326565632055147844668625674170850858866733554315597584918630985872242872833320006465413533783804436055433880355327018946675572075468744321461972031894025535519281875182428859098506931957086859810525669871118612990527309441194131492821381908799047067839482104006161709842163605663256165295064936174078079930276914614420587660026769585741604309766321158281855905440342872126346763582295263584995723867802453396537991232390401097605555144045437501217210568318841245651156440424836838990501217598517149154718407901416479087692134169359447849448724747800257088006951066516933976494539125817637705986416324428025372148246939314573300748946648819005104133086483296483887770599764582057859277144929310986572324511859604601876091376434388161895261718967401171888897600908959369287380366866759028321651027731925910288091576306356746842494786280112340357620440535342302664769253397578735589991914887282600784024682642010860879767479412792954252893216836345063773488857983924825716244360187877346059528681447388430893951774681207772073530766911968784738721166110683451303147685187971248882284056206493602201164212342148926674977385879377054424347908421449085558440145827717126449003205436585644895838202201041615316899167629889934926429404177411414843764323388938152913515812798684034406889128023222490738439118203963316201367091674405692880863402072889171709491901544370825507062760083114290659218622242346560630664998344857438134657540479024978225604371919819883847525988682583482393608111007270712476950046116275507836786807786453141956186465047938318654725958773458601552319639313922548394151531551452264456424076037075927188033706200700873282116711834143738921252077063975178150059469071813007154480627681314403150398517582684827237124929116439225146319082625878895730084380262498545692570536872038213311274292197726816850527749124999075711088819638629883565909497404695332280933148407083375536993700103869102430204699097055435641823409068960327450248639961107061505309197728042042922062412995241702539289717562568017628001794614055952683731855121742559818870328442235593699427443337876985793189537930020468925173315261932155411215989950295082896149670134308570088084695923070079389324671369515356376332637303071043097224398657032910684853603266826577562400997470353195192067390019564303049260361008591106254205443301159160866816950059050733776766069220368041691362499052398286268958351073558196128608972244432306793706826613511854133571103155009695011646470783130875616036295928059693361595983429581654312268183488088736861614946131982591614980350136816821915867529288922672376214474295308927843681853407580540134504103859113570081903534147304926392618309682974683695711246515082981096441831472007204688722880916335506002552724408398964526071902835385977697569046718178570518663412444364145652058711155941384667568291502550610405995994228776922692538004536117534467295252819628854929180349835079209708635662940577616312361233207613181702230197323335913837389375747693643967222476679293503157004430823441385857570632059768905309469192085962789487204934811520806107225083502570736234765810832154170082325819499138952632085051387829700877348984884064729724071103023077598478152712976626066563552230634328886511577312770044012071762683379766377294027073991489467143128607433521928322568346488419372038373829545590523823731261277094870571289858867457292465299346170199544512922239382566901375094042814831237207451568934462522903946680631498921115660717610930420632557655979741285739798516242512315740394593153004276778003053778514687692314668348936101755866074270742271065296723730167561641364443727758993835018494826878972864282404574558422416884066174180695153914922298361899920101936319989534233822222342602558615131332231553041463975711407465899667267055073235176631055050261022426986308160487633908746557872482842177264678216360532770683675367160580768078703222307305612544393935865139086238882469775583185576355798145667930428795979201130988389665078593176584463890296234543939754539626176224181977409098388878432263854061972957782091322849676874287851285337498252628408500412667871459069424454187080815036617121101475022514086739772785272265858049009788692933060625616933409537622860590535149183400733907084748177283543117563072233314382986584807291278953772338188457228416158973915456895757024139666216673858257578501668325256492212065692658732267607674109446921013669074534700975872381431295450110981834566022116552836261673837456952139855565425334511154693742827237762257642149603417663359910392044754364032105899291222731912497772805588731696719817051162713952024132939435594903968684418060402029022270503654975587542801624309547126505514374777454480348955599926721750332213526061953872762911512907710780159004913118558145906370977497915018253048261195271828279706777556530867023813634169963823032448884772712595679453332159798431295434930689929814440446679491806781509287571355176115666018226195824453982391253988104910815447616763823754608679210256579470065112741935585008614619176256560920958621053093389288519814357822110397997547563293146727042727117370570434476585085566693030271080940491799489938406624359036747949342446568516137785521206610715858964352665531200242434974013788705014155919847592156202512845951244738787621036262205938916084915153781103611112644464835202469553085408949861451420391937534719878566548320096517897964566414576495537416924120958290601254181631097487273665219260964584294285956826205893259747754261590336434073146660859796455196638926448187674052758111598932389690660524474497097964005104682410727017096591281719404658534205064697402321088596226716893561501978649215772716540316570909311861395128509308321371004083601252429331880458952717286147339488518550366962839312868847272334827712313804022567015142790869838127305526760252480649544586003797028016208400090350901013065344771767687466213807510805209605171797019536848223614279558000256541875450794934995441120660407305497509982436251594768029723014508510799867615203514087972531344284607568729230232375745690369080886385717666595177896783394186331982214495303741680575040426754200261203259708527292042094513734215994170853850173430116307172324858301491904701124677283043099383629573891012725068656281359878729852709925768203342607858751646117369919900332498937003021026094939406682225111053550466923516554409044979769255230935767995174138758614381805525248736492914621802200295855055282828780639318184420842699670683479555842464277361970892565801467570235685013223423749418173585078725294984980980556537155177063177882345063988409504320250598343757294821878602596550748804290949611592400707388659847704735567494267556728106675825088925379285049826486942778414102385971246411126078408350303649508847250180056291017049818107781839910249669178369662365217351887034300712616285468809710450810550868995683976347743249269765513581503521358546462066608112000236586271305801607875109009304719055405462673462594205133335398713137050682034285856145899032365866870546042536371986897804395691032558601251211036783411323339526196573086014237699517679184673538763824334480655560061358154295750620448738536255642357776862081105319667027761996321493925183666547804855072322471923913764530256829867154576810620970110301323380794199690453825996266193690484912452565376040793216068924527809617301150961991839311312315693524339072777711709668688517592827484732381571929729425604485687674786303391332844531029364536938251201962461481310433319898157117325273825854103729675404020983124624043694705147892881317673240711585086596640135358579855318961109263095788925698561654217275643181505294209713942362875040326152589141945381854320630543478560905955236303582407744627404633183353205155023773229586818040731672392866586248176123421141178381695697539078799305508985885264168552265627091251316906282472558571720628888559040593984916733952601916840170247702353097428956717818002668370398613096665773506486587797517951502865025016574925836897382454924680995763400017380937998293111147990214847060929640681695691170556425596962607678461361924669768536072065928009840604186373359508831041423195605849848408310740703665571751058799985720534834759636104512761523220786115947954632430844564097139735636510678006984917692087774379369753304503795145211578121496192433770030169328053526955453205415321648524714493667701153057072909186949913124384696585409941902705886393546850733346471962566284865912263859017154025307129996740739421278832906795078062063588506970515841166912163262284065217627505857190870002618262129310045754218958643244740188456764404998583711116032450091689814408534618251795786450534124777871864102125126747218800987387140452696706357837756960191200372030504746060965481257739634073597481494586895476300297827892520736629046627009103042056398274253186032512855919059240217837455492661731583123597256539117703010811100262503214511515170654639979493241906900565428837139493934132781752172648165914292220098586092317927432785564018676057226094990953833781047762164726301281974480144376859336656074363912686511004955713095721179719693899584425691887272891270180590660889282377408748186866183134415305525919312315655258171649919300903665195861312533877361914947182384235360796011778652009860340662080442958130271396590762949045105636259662167364542481187450536760539045031178601233222400527947275749488270775504341652582638025189129134141698154384582463383931800244867286062046248752621346093981471864761199702316257639627389501581410698930822245563477077287930244160027626953371973209069921339487366780340010068114662114158791666080723607603437135307394533287633191567684417538260004978177310955005783620321233307154977485892749663032815950426192251877684866684178570120089279973522529970228150225005043336541790094514571840284148913171250892435449313507537211350263524955625013883702223983749614380043821163306354783372640967574757897452732353002290681241434651215773197449675820144943099410810959227138735319991162988170475350629223966842741149406870014939208662089293578384114926269269153248354643034119022728227570495271775232826047326932426976976945309833247546601984068763525042724398284230485221256732386478413538788293229431900358897155801182167696407041028005747754201337435131087472723745558033973201153255618464039566088683830469027576974389791773675765064743707404814614837173605906040633401189337845749105541385460792895573935200441038197582102285491094227923973056381030159175909318527261644473884994058087138349306072905709077329092965813847233936069233109104649019511651557764782734234436563898072505286006531300024439912692510335236550617716994578337367533796972228611121050141210191915398195041425849668031179769670965449760922669254816436212584575512858782331118237581646833813063064691686978317378929986464107359612639248110006372179832631800792790090891424273098035292410153941370599941665776995999989609231344109194966617554474042449978608663123740277730983247775902098629164436621677900689438266435835626714039742579041451041584814392162474862033238038238581179317841864231796871868614736797220930338021470042456876984566823900496037280437654340537513194986278243012567307854321405033946130850246491755012753839813440662167481815455660345498977772133571485601806313451644292012330740826959592342593749268916289815442029644255609585516681027318163815162531571612719870601666417417881583361059245745873733244445662718386335734629355776088911397897366776706111574549201618055512228318882129735566288091608539958028971969566095365720716549448942871044475689047788104865156509694720036580353140334650836801378418928471092736728065390003643989294363897597058693682871001248394506312850104788692268191280443660686822397079362780384888173970516669119727326289620089889571545488343822413745373189285399298279110957239891376033777488503405283846685872028853146654765710136726540546936679208376302756383601240643127109495000456273788780860361528064337480739000304198809460135871866887471392534430724862611820166223500230918883719958174923995736160877840420553300231694847652551148966222211487649933064989429799678238199789642807770807305858561502362162776903673170714527028437385571562508994720979236363549339193593015930013249574173609062071489252057840610640638550205919439866388415557490100762949201174017779241854262909945221514846185565731058870149919163952624023114280020968683193966640254996592626917642073881514155185577163901808088771185822195165598926529696025367113518786694278565404061216085628861677971130327691942296519046601465355685570837181237355536312764706869651949296921893621811857964124813806396724790163890666554732432424309922631032304493860806650459136393239617858104495125287273205606395667107314234373262499887702939591986832926022835765199951041645423374617264967001232330567359341509803358500460580493176327121394100080266627863691060948545482796668905170667156983570465492213610349362483589574466834956549148035375504499798104407479633033417658480780987314920192329052441322461351697424240887370437746167215897208397092107429095291696306648420814571202158416811183394652691049244578816670711672546660803674511231514489432676167570879732487058320235326068841843556589415547861891615265249195982078391734058218670186837067703897483093570092626627783670671997981586063236536155068605864677127251654224740079041808269537291473555166216516599933125244464745527024395297869825616440960197429041792258990326706790749555806886757540560111666331832000668900492675076145528614048349999020881212407021508184227016697710205173044271170654849395004259655737906711151700372385496936740873665872428143877234057320033861238815919938977126497904690138599380037727403514702690173761633560622091525230370034514912541186558249780860422444983531119682345113362554928560605899423571344041633396306826009009855585203383711599472590292404007475695461396916697356254655249322681327759212769551333706741614487847695150883830190217972189402860391981660599515066864346345130708843798640746612904499366234025780032678859384546600429321758989297292562348372421356771132595922746948646367912491267742774820740891984565967292985960065306577053676163650348719220000331353031154055973636881316004724539891040086901011318873549614913434236506537587241674750034286680812913375446396742046355849898166854191274534412528372132321079780633600879929638774486079427917395418985093249846185288992716210333806740855445958100716981494413116942188713235837844192476770107591956530269748164378765250229524101579254993571924615424366502852669236142809509000386216376295316782835207685097589766325073366861695972557499912127103965759312831233205973236567708375570599534023204837922713481093640566425994728702299554670633557469130925703719277522103717381530836706148106018746471812093453866894675995300998236381982519606227329001215977113668088134213583626473746305737584633535770848904150614663575335428058964969073015725289388293366450905267724777830199451790918020130919156060889656963897024135485605134382407543290095764746357355365276108691177096879271014779696588376726112650166441873045334743202749909507857959119478923095109863415295335564700871519154209598254420011473860777167504337283555557156068203132973009172553281244674664465065013365156340309299417150035312149421902287703605466263456803205064187430274644640674992701813469737061882871112401649958321566741909969261424018239273639776419605400374016955184948708209249300175660523327238416598140814996139825666205145174803043815675032153575396522926256831654629503679464619064122191873781310306925721984766538155983702838982763465794635490460282759292873868867684369650832175278373583336083185607165888676731417982459426076642227937278778228007874109768713015030294868787930505290521548288417126741742126330573106728857763877568801288867622987705482734219190173222921237228452964036153830525612896394526462055702823807256229490706157218821099113980393710615944144403031673521288571238858962906634419641708561686032379119365305423141974888549998203014608920830470077158124187019971787168935779299079425605766051951717089080842570429463327918237510528504347726774317091847308714986566840068625133342089660808038389012579602816691278197439329042658270719463680453620838552987406161447937616307197855680931955444276677926980776596255206359361932012213875647261679645548722926741758276976547449914733103243059785631771075842918977585699618094010924467295137571793529362101600236383934955483590030702923908982590529350033493079681941682921109091571503733500563551400361915941333474242320708321348860399895648009852842352378640358087783751969750897983979200211513494360073581435651105287339815393177367682492914738701724510993157032561833487823609225842628317279985608688666156088653071071037741783500993418229343734773241477224977159338410673980031015160560267187390846888758686170968550549881124387439259383901375162209533241476369838755021548329293992125480094849740387688922805496329751858788231740274843215196061403472865035023154407206214540223765346324063503331266566647063932029126213546001181677117103113365045725515082893620103626244371039956555565536569312667206351438247967624231149148887262064530219611691273394026103926724669867388666422309111897030983089148315948393852740431426376649521739868536850569261842135947367271480505094575714267904023820308425859180218138306515909455830890919885215205082104982269351907895523619738993286714970171310048803896331716427124503164551870604712814935899732681125745930538092847591050333876222438061280208064493232675876317076037357155341194039534923603439393044023011181266822899119981623098738282658600464928958105188092509312728856807687829465768704536829682304980575799149133738458905888513636749713448181440520201570888466732618587508074955349693922189346344382188783401372196136595185778314288731152453309314199884696248833785067927285105984038106766109874463519553110980127537791815002833018930186535478618167557335668911546602821211010506015926429722024613053558657175085167418522504711395752588690880636518736443979662995242671720919652854927365701697310813262254961087159390412251358481565747239396515005566111505729409246103369604380965852396325119422902515697448065641045980582417911848071072805359110296357413503896194797177118836610794766413006006693187683155948645598970912371119832230287963798498277438570400687574141577666325454948028281868216304003506704845075589786897257841261967064575860674097326143473895354320189103792123888768847821033323795033367535054730861221413557673382957364117307936518966799867389987908021974453972292318153425986114236646637019986571083541211623652378277321076930150129201499840402292933970706861721035187004375330523648887856753698865812059890711444135452764367619640240523682334746036082704299820619888405668924342592053325447918515116579884919560119182395479185118152030481782438832072768094156370516975516633462940377661578549832324130324487551329288028270736060568183225127022213574621501843366108479632037595549182211693961242494223118758653781937742440975925152515181840253415934088999733880171985375196777903148723391803791123250313210219044359222404253703602167769431152350602595137219101361983875783062150884260799559762632416544745712770299890297465864513436289823335734047884161409725520999579327078398716840961157058929479790995810301996553817705578756574322037602540352906862295737230761863274795135391793651270851520690388672812998894313279048280157380808815181261601187517495446370788107143788076163918242150191627618620858344395766379242704517934885754882517167175255800907513897313929254831462417964817878287177479711618394741617559197177050665273000938973316820139322739793160253966944423586027298713391751271836717437677677766248577945513517618210637342249981752579320788314379354505723757026424535794707587028439189739748446173758762247491199501552809126420586414000484155980966491576925384911390405842404485998550086147561661207513174803948919599306086659792425205564399370477354907729735190316196106819388153944075675329205585537885482004107847285124594618399951535559996125444865783949086547135131625760394424321508158073040416758184047284633317642165398627689333561958759585396732502344550244389508491622199604273919128933985807055290034286083213420583088941621146795954554386935587911008075574844522829509498288577885065685277528922421497932332697942451495730673449270453910073100463991959356410250753714590707810052425298846973196306552055685550495538006168024259016348762669541751684477438279835943726909557787580850568460191294530330883547074760361355020472219031357773242171208919454678755055452503302408936535097645138384168499567383877580582803661818038605408679949187376674025254457651204533901569676397406736221037811039925246580890074989247337760419861346366028264016941832326908150549874700344814311984307024375988482502340853259488383989638739111471177736032182653579443208421228086393560005130693928751236383567498668770228099177185459063772723885052070202384362381922784714479910876956668956056578218588048157407388307065281859774946980237149164858080969067726220455190706614659825148947103693735228024295363026245422793792593909531305139059692549184268176541997833665800014258745027028097498586575646990842404501315960572924239273512253896985589385026841738623800439446407990945601858889895013139728399769848740492580255613521993398035141821481529897105522197198657836090091137561885457555643504597103612785740356134193559348300331255749349543277431866460721171997362407998435618086420399074499872035726097678125423941995120358893887030105580085505964232536867149122069556580564567717806195337131897403290701306770750879644260629108689516876888816764943392257979194650343156850999262545915141826763153505363710739503837266520466465188652527532032885513448101506990029106252505583769302432484753366500917548410390460236511058678748872473728268422183909576239841001755147913887748958289612530136136528571531494484082823749979015235816914974018891768397748572596291950409754158082661160846635144409898805037119593681763377662678186790663252394758089101604210184734907462386636959412951721699822392041177682632466908399703240140308578468440545950603998289556618986128568329623876033186146363486350159723519443530657603808496183056250383951060296368972052262518725936630944783612971510795703091470898459431424464962110818901776989014540192493454522860307701606941054815407032415236668081126804026674455429871085183176985210858807774356727605183581690470346755184990857065198614720310102362434753204006998911643143801486130078458628944990459494875084120933118987261271330328655797555117249806769341423973093163077122832399271914270153694656723301281454603858208119624667817682027528980362120640185084066934776992772219816242374065665037649302140357384517649017651833049519062779285535555551737094415018024233914294967421179461782999401825917108816442923910145344324029752180777859897085333594095751413317851572701661160431341147579721427687343435851748333993323372437934441535662817363381637134060824627590234792540757319682425749953696242950548639197051493545143416629047964689141301872083477302574191895536616613500967992403150810671347655174186793237435593112186611451724272627201918914625853336320657866312354001335621023847222698481618749940445114327405920456151861077137306605270160484565507014269423486827669204678389287026562288965365666134320178656073513009863236806422285095075075872882079410468808046103966203216355612540562736948586692722966628701643479170762894178946006788082475943582948158527718755715192972518950835497795024752641999264476873757703546073833087316554427935980378124921012884971115106170061319239023542746200796716541060681726027915032490418634085550509192640717460287386590717783531867847667514011023533097832536744808423664250202250844904763493306732412930948174976035426189758551448891495476526231223190483048465433166201777833472068521820483369318919713349297601726810371301891754816769463693290333664629168575835475154419564848277411252585152100824134003793592812906949717916727715809113862734747552636221830004702662459235087976221821457936838951510458483976201258266908561102895077868766871740096809364594864576710224543207314739746788136200074439351116658221294600415753097433445234595412169486208773880747023898863698079665787378800377100198413786813559370886494866258908452047358139479862833932897453180331466218409144254836553460924839546694414502329873050491200625537772103966399862205074611902518931371758377978802182855982438312689028919931724618308154500671595497280678630308534072815095713852252790218955705799149506511248576384666467534233953984514891924606709425965378696013243145866485377219442512379070255390245549719877540772030309520217775224892721506417622686935421689122493023504190332047636596862177388819017439814359972044675797569349111696332328639207476927564104373627261555654716031194410885417320038792946910935157165215751044798630366158138584543769008616894988147400466661302507574402272835167910028666969731196614901980550618206506427316516873750849819689570729599982777403222679373662006283920184461384121052354269952607782828430105892615416154684906571497106351723836327384812889146058663404413510112505525808837341208700566584988333420946366858022977234385139679697491147443482162516781671341443226222357440398886065631591652721986850658215499292029718753515998112861276529489596879829013360071872900843563150768034282709003965766573806353816948997381302244853881263096942705579738007758822726837525723476504771402007913818202062850577978905568113406297241849530222733688480399935428205517635567634198212095750733379230734964351810139120302183297685156510333603884077788464861828659212966726969796350564119473754897531096282287543493336174626063493854866924161263422651413445845710609792819729214814915459074147845699542006914850092524999613727944131921796943480256251761445175272943941389789607011354575777110433351496396844104711048121266413676545354661240269225339345395831039240512549839458913565938376932345407201514749322059263533911795035690575998705816877762564923372159165317273284968069629660744833106000571459723108883618432806559326584869863596157716885406269958702112775713226160386806741161402139643191737796425468081814697829172043934803077153886053767523783146690631656769887465952545168298134298723071296453019177735244878499545903044751851303409442723481110762022887033283058155834125191288575537725553243801503154066029347428096617888362629146731274343704788820839329451025298007117605237329673298505458927300582477077110180568580250260451783805014079082450908801005745511585858941637135880124474649981502700238257631571143523632950576109964813366616506287644854640829154558796283701474567005064528861815243856967785314369352482850735198418694977743959662338665452138227538888481500365269695853040227917708423790880802459358563630303401642656667439627418666955688987015857852207997449463528212198107281633598288706229658486098887365214071868208717846119474734358928653640247387383219999824881486456471692122028381294201722877530872311279597415802554392257199463317808303499457542863669873253662817103344032577333646196135092455155848864856089125257998352066686279253845850081232132055797021786967135132952979460445352291289102325782720386746203047925757638115203398039315114471455609989925342293641731281650427695180162145705822820446456582271708988801526697164528195933044775331755626874153703641282282047486653221198454496313554341368827398341045363016122474386446623396223343853255665923915535363395263274787386039369964987409453776648221018864958460781034446494172633900071197976045200509194990696188193237357271529888970642185900352983534763680396193949123583245710249528756178629811677303859935662645957722268184658602321807343034807122796802222913746529935578401734637165312324374974275737485200352338405082402567449404896871680458838110216551364798327025006923332488852397861930317468438916139703199805719620488215259561106229890036478757942592304234417984144565498305155353470332473869219001002921616083887477556013704110535411895701477555396378517879440444839272921747361998859849836306320849301740132802801296070409826228669788867320498964044776475135626788908790120039579031721516942161049195605470346656995929799309820135224636458304497989707857731121880630047804212209607398263477502221922853550993119395061954545201288460237799779903795211729665161277054940020947522811465045551917812965932784647208300851199086724772429108818696318259147041625947647297253764214108433327014100337909017003062338421726816176724939777294228469254421958305705458246057896181701590700429496591526080223501480678415579631202488523174605633307338547897517387373696557685555354456687345465168057507047441747900314398461426910180521110834833736447677595656990051663879072818822894259647835819931621083781177384794898669563211634249191334735576258642207318354550211282789053781523909537832728413208258603733166266629177610880336003752203191078153937229299835025425505161784221747594638241066171845693359350511935855339578397918431585104501497354285714295343451967028796825491278238261731368576383041580086551574255364756833966572596754272335474392263897336913139798157605786752853316415928991882554364391586687401821686878392533765537396035147619207765260630686642244947037736258992891105493725846943331612423952564605643126814123268958847289582460123942912455449036401810939038980925807610476986529848355128898757355802547607076771311458664595263783953365099334839102641646480326200534166473905550227464715737734062786260924463118877593389820528864849836343086471002440020222374782823424807722745434878099647591780656877662520732819357017043303588585267749715033196272169725187927069693087793787367369904196905678027752782239272422644269597699689569001145470700391607125588093705964095185625666854998408507088006955020695540601316787327877545023020172720303122878687660389479850600469466716513104781860250885815436215319038115207722373642418212616376993061113363462650341027870187392733661128335044944338892035534009454926132643647728094405994689819612834860432815675635696619242722977462194547051352184181097359295782522963222873300263252728861757884011643947927546054718130899873934657158682606668060224871954153314696167725982700705433791549000388588251406382071300355259471178566428545346159968759861841142612345346058100362399064400528005721352102621588326895538858252519873852554953681749541114317871764373582137824746849991483544690602087373941166135362241591630993403054365288440616435244088422098746671696612869294811525734988024231546055147334720416620274785648289341088214473743210898828862223614359156729336422421134902255387339120156800190055712800034593643024920147871900530586405273687411197069455355043073298394891955705070841502816900862783849179232767866047657381722532452104029557432040399480816550489096948032483089915294450497405964095026042682798154937430499215505862734469950826936079327745195981312476950678402766388307798798952117907806746888919240511062255569032066927981532211059875071198172405326532901336305631062157929982663722321039890339674021904964748653771331339725598568633226480455463784910758540314103717832708431233452473515163851433867284961226332336144150540123907469568486445562049265732363805666696005106874372997560451630232859978337682062941217309531084671282784897416255699703101132027934378681557972409956356238223694834181537129979457959574960300147099971917440482193502329891715046104445218862780907567505070841324533645362890439373707187765517270141484518868132403528500355895154622207478970725670234873844277167265562614251845143069443658565118158175647262369842185374644248869883359909898593637278527876805123084809125172350452933388835226055288160685580279074612764557812215854707352644153130392439081399295190574837794137314574878774185454139399456378788958083734205046333187375541037466972218655271204996023920857020002304432977947096237998103043484321525047468536336240700907742142735277463734058530480633735999673735328654405231085951940782414736434327976455764472142690131521939791963068578325813145304046467154471860831604544857627175235682008455392056512218522342341944676270488666707600538657466326373101731404659420910282878263144561907432302857028856539941241546289289356586932442869700966154801551951041431221119251910442826678593067331748593636607392762008941583039940107739858155480187556065175533140441932506097121747142496724923495549677728507875888083922003128258675929009763931287612388579472153429816326632852932740189581278497573867856616992154287193876887359166251139122759086510614377511344775219529962386663401935364654281494198235281405705113644211829894202572699633863041133635647176101096724986946418276206017538638981276463070606125910977757366663183056662408998725500055699641957420075447967765190056941919566070340844999572935899082239449656207592691517247253767530430385910788075337041448026204358877149246633833491720425461546188429143665726894072165179384110923095666744575443223146116381734595969541995282052293836716118914332796527981923973781108490804373909019234316131973959824534330936947872315938275872803087702652221157809692626258517745961392371921486042573788629571484714536827323533834303377808909917981902209134280288229511099717059997919237364730246788089086737761329903292436381050456171953616259872068959796464755755601095937707734420394970643955936759051654157537817664732085870222234684373127360712278440404136054329791626617177872869035800911993701575069590306458157056659584169488763910290797570400058496355995854902841321307274998200619040753074966263755991328232106385422083577974851904657815249940848525663336711221903259983643958012264600796468447926187901969402730814046372726884909715690527745398366961139104978810565108294412188004637130770504620730610826132996835152750587929946041100246232459090302493332188146332305403980208848863831490828390471343212725058724946447221069417445694432627219733465809531601400706454794004499761329543854791593345975355229390247721107180008563882435686328297211110851303204850239876258815706484923078353733658293282931261338514365603701179732538843348799481256178936290270111436835478466501584621207459964192997533013955661014151302041158077084720271649785469135903110423200816822625539096556070403785369781326796095278656004707160383532984001456440308050808450888674403440339169302765703273307941285437906940720013879458673426748218001504779909442465425796989466592803698713062251229420190242862166545170650601361638407986612638233689252843667554718589459966414627912239654661753598555684026758793517999401457811397421901687091465382796765694411786992777783925176300720621144021590909344331390589588915368215416654992563092816029152504819475825248674490778225425876275399825584730160270659581991106781580322037875249160448564211083568470370086892775548215396792613037974730264568027418047516281394730686166894409741604573583404293336901213790744645035860115014096280949650288220633517425618980266351819473861095614582385525715802748904668184548982530783068223754136929750737918596924411132974699601464487104452500287522306447007444173661642013349399386644518477876520231289922696301527452899039181173658707993783497577095575658564492175324394719605473262608934150909932092307646402690818555065349546167005628108987929350573926997172114858833583395264716298309251139752165505754709816741305506584865073994242115409394819088889136438355582219629983704088743143031609497219102302973351624866250474056889273987953434525620299112958577401333122952354086430086552712274362631489522252585754375451898981400373827363364818551139560847223115710760829079801026088709558458519496410766850763084472326251401654746116005287951649425563797495983478266136430310229541620108649700670335000699320049360376652463710764346661799863230188899569695822742507997849359294457823260803265783852011936890703853328490348177248588073147965112440160802453239328352850146999559233108003045112400817023087662044903329889424236060655455540760477482507317500634068535545230309566300293110961562589033477530270188428132341119478157549833240671363137250840795823938557602831936266093588806813853192812793911866703274907450327379551039481224487849836115477901730048966131850496568107593308673251276239738191595930655214501589160922883037247912942281480606266941013911498482778819946356415825747169283652427622955905477040143654673759079249131699097286999041848085803547040203809501575592725612116005857883173392600298900904037291060636279902423731736448931601486657640491512470965799767235109425738697239403128045078652626976198814569353593091268194147287945297631755037325101294341017542526745766400181851452890790616720427708865907389582312978147663137776406757048664620436959250994117358946153001687526834291407714334365387637549248398530121487562981977218071413493729875764919383645577888902389383181800268948677020647617899261603268455152141804326869031655589749842684553872085726676130813402582234213068328239822510439301028665225686975089616252733662816827455042260024258929908561650748258228918933058470222418530886156853219856848270320552604623232395421208471214647660248379725029538367123200330179804276226935590691322511093279023873239070685506199653147219331753620004467060686544731449869882817787205835503740846526732089296673696201731091436451151024792302554193144724577928764785811942069981420987681514990518307089368163778484209332700470672224236167873551731616704693886229271432506475654025089537033530078181647770699906027024145671288663701998525796478831003142137308483569251586035376168945052064329480921113644800610968581930823295726333567007256601728443039435696962999693892014697112816136892993726877713504441764087410990038977729241029271574549878390667048602263327862070213609119047329514160173009682264796194424899121253007368644937911760201054211258069540801727166938833338404045758381373316306514785117054971594314269671287788826638839891727112816324574241837633917756974733956336993782668201608696816491446433982389520441296915919740447251726565168619499863848619476072839206506766636237149215529264229181459655923862125521812332708344006111482990770844018097654804872619582389846987960243797373792253926569842240365345888955990979710135495444263504667475660027370085051615511680296021725059643057898741647254015385931046149830747346391132517662702112677448202324784351357895573890051073684772404726471421915208744685679408873035408790902103561291762504763311471619361138064638279622231051310486873352186954142149513018190529028690909621272489108116896873871386563999882356357251375316874514473920355014218510388928942706240177719900305343632392826880309953935612277225984535222270508000666688261217976873299786102471470972168269444810951014813064898656824049580654870639467603939406484626597830833119896548283015201870111718314335648505213028804007634000677825502209024247238321715527988975511481643428408010442621716334789749900789992644736688583478159881422876559518723111444257339732411264498204967493682942970092933338417708746647716714621444433181868755132399576286880927776977102563996131415355640575083712709151220143077731081562523159052820145834244269359320449705895365461643213065526727023048497818907165820166234301540695171011987092660368232757356395190036462791004382703548388057178832507102686027685428102078598228917575882649138355935170984449424982999622274523137803781421522639686215233995800914421322234182363562449749626026897510889607173018860034006363191172945281978682546160951947870254463237674548518280296301906514679267476930951981677720968085748572248872158292018430786839225984510352904626288484206607650412057177415798559768502314643149144662652144645042188864151596042892480272960574539754437003932625183594694423564521489832738656308095047709325917796861593180030467235477793447987900884722822781220028599253962315130517795732282768882272353898560161132074925868796721032717563910168387671193406809500290287129868401262527011252750700991981253846429625510143679938184054017277756493229925829678955153784520093182002694430096555914573901496333164507589828669755562864890766006679475029417012745616649879755728925600738574217363261133791037546428497302096033976303872714804805002232873549504713414301310400909554889836518977392097562149161441609033204833008719545112092096252596978540148429672327643758771010421920991896120240278755439223660635394877805722642903037779340488534416188951208070069639556145186342958381462494562656230948176260704644851140289178707592996984058060750940653888493352163475548430627292008684870245598182994521975883357224089365023436820491762380400835152535535702575407020268575189466450191998879777853831248278874157569019689071037634256989663726217648617166068735703913269306161095560689677469268911014899770226602412241415639457947061218276344015758625768437057638902961906695534704336048700506769559186594425445287586914255022281522178328703911871744454324553410068202713026512434733487957667160310503193924202495521455190534964291264342938754897090858142255376576474145474222716865562924646027244121344857474733395699237132920458656373125952638946385065550845049485067727597204636689214166100441985294940064225810165795163591943347453260976845333913623108885579726187367709127416408984963620480064962538575992477317512036502972795394823331874835256443390885792065290046980708859388603903102054850394006808063337435440634492084996877588160158143827352834560552178982859142016264466524738773894910693496731361559299362916767515410479495017236544927872399264569248776955615865317988715133072050614612778086935261207064034277977204373809297464931680316163603253716988239906875696427797691622619346676720486295314085330324826783947454948677485887205998669523523663196049640845622033322391042432330085553172733973133821568190791934308697080783409456961725369544278607490288698098456519836200495585846805960408714460569447268275695285016663573706365578220936936697898908218514488907716363168180676656981624405982938387786170554143249819648541783100009195286962257957276544175842674236201569973011383197744965246015850436494118754100776249236636075353273784667199646906391999381815622866650272880236686351102946368890831151322121145706927949253228734619017500862185664838359931474948168868639314096669684533144047003370648060198272001714633341927971219768425788147593681796582141500654757311644305837364123004126596191121093351122268064960723924603776412432014189369835202096653406435469728137323107300606164076791113308642224926679060838463504796088759993219620802517568755549914735370516055780647134335275761754931304836161565868118955568405372279141310911577181655262272485223986283263543948245254730202312337390301032096978568549455899485557278802833910948056249454734279748437850811858005171513912454638954332696180810141250208980695489959716935707708807414320765150962324243950308633444538662089206118457680718212838494280397798242206501350409120949245229711585444186511413270144049135895902973935348530831673363319214153440155169082169912983050770469308619827838856853976102669703092040268926259509517627111084123177588451695470047753298135474623612191183514192008278385019502512943078083719988336315777602146095430813153428926268469487971761576952042295428443692601896307050753716252169873088361670236374999981924498497015714527172385866526456534442476158281541466380301074812969182184429317509456114582324434325722698844697501015575379464243959090482118095251205329201452177104079663764318064629575655837728140714469976246478178646499938191374767925042845628182675521397646670039049795320989353887398245905060414908825816203471663393261079200243552160699941250877381164675000863402052428062285826212037460896832268855003874152952502987732712569567964454811673535691702598164034288521122020023161843080125986430923745977212426389434747576529432582083430723431376430477539881276861487857598987871360314652245022824189842765558746436702283378757972724545150064468364911001264612932781705974960656759636113062756024652334739340604022791028511945547448717729570701717297844038555703569473288637382025713214653230494206279447193508976787396633743700530259581635847687457200020750873515267439631169372726534757498839920284201393038920332978151584168652057550460557264335258129742692315192248180419775157038955624304565332042031595048782544732107403919595640668944797015049553024638377495302987762795982557399804812645006378232099282269760986952436181855287983183991660608549856556964158884397642091093052935589352883199967270841853308641177141174298099169667021454682435439033371961624933346882767222207533658167633458872398255100737637477876610939072862066485656319589629807076149639416162421147674893951609963698425236339461696709666676959916873128109914755448343848498423686769351469445182457330747548738470990423707020837150191220515186553306332044384546527730243406442370332225262564856163978411763857920694037257509708443512566442615545695338130762120084163801728427880968373212839173289389721363658909923102026638714362405569098302075293935043586423782999712027413035222250594084090300211144648596395794796268839607062197422156194084838352070557149962130860230555712194293249742078710010364134767549994533855196125988572356645065857176110462936491577561443841695604202000348779428646936211627179797439412183814530756469100093940018191256642153960516379378530083914768270910640576640449053339764075951203167231748470932950172488243090583052452664163157337062004382879037700515657411889511990558975746708029067333901521887402630187826144121395903604652615087165561059614673477047448005350940631328475803008740190203695275862544954025557946348315619888484440852194973187521103563209840222884155429599267915036334907972971776068712113028530770657526524044591007813136498337107954457829905034566692276673423103235962814094633448923879683465865525418066664853840449158897859674681992930052808131158946909159653413182407464742661732935070707095590225434525663835392330903247562931546536055273887782679382431384845591872184294536731189251704663213539080633686870365770373355499178502426428350596376880764649774450575449464535026985801722602639233121088246450954796269007223215569068297907591786528746284931377922029964684566937655416421889136252830846318871519489377896414399809319327134948537425759893231115840212711088819535219677979285581197840994113116238763845995876000730500566318701284050674510093202684444598186669225032323027689560311602201007084209565533690216202689660570632811672981576326843540199866999843358086283419706127598624132523806062563977160728377387987742843983602365490111599248775687267190586507762155917240787842598446148369610466648102471949726571409333144159496980907401031909865099513847550764453430432907507332201831512016759130359148489850319383842196334952218492739883836084145481518212415856460737504556025997243641658686773954740352695017203949284804716531199914221139555464975653404939593980032887510671542678945555437833738084850628690840511266049886666517484699948119472346745253005983606072965594928475349384581591962365759382773692660375233170413776518149753821162402092436177138172841202632662831063056354541850274036151668431362448449048528201719620097507892615360913942879854175877946917320713853071429947554771037194437907099190229899733669261986644537983663752454093610220313378906868998715205140812412917038977927571839548862171267054819321060582114909527699395219396571798608188747904323226760236259207014414216355445023888079750721930822018378328793418620215132073746792462038497131576978289267014915526233735050900863422512502057066104941729550390850399683263509225688436688417236757238139269988558854698469078771517709504863895722444846918650920550982478144754014024831953556047880303851447292236992046382835729744581165504390669912794789243476288382307041457778988483687951061860209873535496716779287414686352999543727491553583231250584656550783300122417119848406610896983234331466569347083773589452041183163272124666496809288428273001023631320654575314378491987459947587164697785514464168137181536841012690085914984913830009325067208641202929812388811252335426937553311837122605630782137819848771333332497822943682330349220152272745703722325538296235683365551907673255028605888953088924338639631647294334162992875643577372111249358582542671086257463085334217987824453997606967464879427044376497094277436552974863937258134416012516703221939529753009593885351592531609967107486041529200933651984234116672431132700252980607398974325481332477535009745871177504684471395779188350022482087289018366213634383892476044037194027027556537663570239202044140753782594610537524221684393883252399457486307461134168110056174135817806227587154428332384383699754806284777385935553994922065154449351057682067342980834287078272133636283240821310465702036888399082028985180562003272524862566675179602862776628052779062425077805531369241609290748755899622189830769987664640216988346300161954333102954023511492906151643544140254498943424850272064019647416235430030643258019316596042845217667867741405006062857505901413564634463263301111250333349017657360388465259334005311168983268494295984626993826211969852765988256761506040131726200719797801817034489830956968736812909430216565548569740224973310674233505881091571579836299723902040011465497719015628226539767935496695342307471795217030117983144277508852242979219326116480483516434429316627532007306706082195642955908892131221452388284166743699093617125904968431342088588284157521728129339276333164341010461021505535325268194555919334587050645941473011206181182862139394578736817714013792216952620555122005243759276057385939462462132560894930945555094515542959661089877008737542376674715114455622597397348838125908545131076110456643101204847080705043579638231285651208409086378372679028300204067549532746408055587212092572879466413849693834932844145549126442797808584317090357287640222966794820128494854074123669221195232728387690559493438166520984669254754594731770492017626072225246273803173651397593725929379175069260422756947535500075264559352379267436164875337012369125793962734834241128167762396616422394669060017597846889825698506002361151224748540001433254152658238387653120851873854648381174247777591968034211125303644653055223856027079919695153172268978079697039773858875292254288957032997712599872524702266900727367858863996416653324961664473071046300760638523934907114514459690280599905051534998990235267150783358028513033148947871956449365352691656600995213125496489210191796140119771026195536629530883198047849606526259604748082242748507294950289462381249503094914077723445686397651172840218391984309257033464592689450622855183740194427191106454498141147991993066951067792653118540920616179287336585508318883658787364046865382847793049651658562110296146633935116532647455008541460240642711304041503795558981973143397233516620601879040836753589156132450749201872111677136352061947878583920361045338337091491721667119235422482881454321675953228075253450068795712115192378821942462144476475422310604755431299117056799068347957684229039966676446135972920267658813002450783295853482131002172916488772338852482753682737125661280099473600699872356953980827884621025464509845179013084179505042795367576747288546749519135859171320616064286464166717738146412611536934755794953385936244333602880687654172297537188877106882663784827771231863795333894582817439517191409650396655135171158551797139159205743807368957873486222830635653907220556173837241426096223202965149507734260410002817390245405808664877753767192878062082659190119408196388326962325986660884710513647691769308487342414973041722042254841597704968588584562463904489387653170021190939342735667590456314436765595068777462172646621954203145637283960458810496811685287207727673381974626017567540028718024645930189007647454337996236629751648214533327580865219478651608366486870653093390180891995402830387201158953764640767412177393131570213086436219937900415730217038475983916289347765621819929826912119722150980207468968337242664452337097771631087900886958593511714390238228641787117750425814903726815216622849241834746442435355684376963720117109750515534862077850348002372755547378307983687882806014601196211684398001544711062174995074151284807141319465485116132628852537165014531217217870798752568984881639748750958672181444533614859867191120465063626446359309480926098247377520561612999021286160008327481969244829755836011101288692395639376125050676161927361519866868279853234267337372549316341452654268220179415476851519852809034955841594825571013590385466579194939960867237738957385793470060733861582755627980300362643686026932469045315255362900490644564270257169882688536165812707149894678988523932750386158904366299944330070307258400066235667546798335591661037046436721153612446412723321240516883096211597364652346321690834672385860499425754187682725568302993630666616940216166344299997013154436133631180949020872050643340426793125952522976316247703494058356420383635347531493772835289651137986173674098040702759613568941079080936736701542636108294706000654129863890009161861494921911233750098153108938657235743190826353522637348532463251829244709512264180746121836187879552480676463343450862869702640193933032964917462519945602597360492420659103613040259757984163571444507252093309322310422173887883938916258391922576985241105139575426801993496930548792094597870604038519877382822432309349612507762771796994375689562964126619187628869603690727243865153942078576960951729423185110761169764689360194380963960941299197691681757198966374614816683890390421474442342582485574280966236711922644084497012453250720538557876328840314438304060545567254265743052874330893661401029397060121825246137796816380242783425505828710205906557604281807615268804267219652936594595870912404018515745873166178846044804362803925964194344358525378294465142198832900865775528963246469147239845066413820113454709504954024329770653762265407728317790022177348058912569128648879515045988995535072753846077243643359269584258680166350738038593102252884102627940665765522240566545976666577180764890066484144269738313127891571182700153104863515895313552340747873661237831232735722201883718909859873560396365715157234078275630385080288772618179715668626958185150079100197688406878896697449333132716000529922713876799653365862137702117976617953002135005120986210077499858126485960822978314616796802182131262519474372547344519672336655769431480025823939937708373226639388470164536203494625698062137698596006012732550677403785904697152126587262345878989829647260196547526013802204800973156605087873049922828241974269559601031993287555490972087424490808851442497298282753349309756485958621813385056391976308279211232959232533435273057733657183560898104228761998100694585735222926452384185686865554132773300795672903833576105564111468603355617112348324010161776619799384421982400790805654679771330947749150685107290149394624113967862202152233602670224178163600507910757305709837354759631027455478267445692502431292534414558155095792831051335433460293980191595076469405364815721548181498123417862024305231803114453301289281376328258698747476911139354100729094165894407933695452561791264503521350260031652110131938625428020296273626762633485537259923791868063711624509384109223505387433422938454096099929131621748727534004011568846083995252624975352509090333137217339987275690709233836664166073870896634032567641673686855053566330847941067181273769578833525190989779192126731745332196733154398421662113503882761562282321177973098486679114242801790110415860163042367101205277594485809853604514275586200533220143553287891181126676019482020247831288355453946867737313874038959875256439068079199426065748737203278233791567724382989944842964949070983068063588945630751562375322868731617116736361077969202443386036840108332258638177612313105186066677415029741312117434176767676858386575370369768604875254181454173063291389212617898583795641565344050938776356747474694916120427974955630941136591356271957528919933687516269671011762222665628860540869260970093078313642725510201551822929454929607931895337756746388855176456276026837063855322078134633828534743477484935175018287789403667643099336676132764558944490485821758963723289075848912012940431133988762032806812711962686205249050320452607927033400378551008059958129272861929483601046059700064475605072630371128443702432675956251431239399644793976889947678768617951787239319886017936460158112754442881292198793844170541461541082527129659920225089632406240660241510637730283481215984503585020056604018937225777251313144718502538764554284611576303789670085895208569521931254273944392511043043860031659582088476600926344555991618327830692479218838782818297186087603942864861982937857963291382205473668379149666708183563463262515599656687893269546261808774614158411213371142525901210289046002244018514058035096463152600414931768183144729599179394947465831484583395572912707529230934045982122962646112144079788258233609672035230388869702112707495723269704460319740683371732845868580407302876880814741820269017789884861206576681690489020560661130960958122488789088576286524483420112464567594710668896843906311480546501338436983873365887006088358698179697869791614148740886246792764510089526250343416862380117516409364975755922817671255572490220956792180939872292880411685288791047394804744248317299307647859571577257439338689740079564212716438914677654207504995069337356163359570094801851210919387822372582773867728827973364541122701651596826167422972736944454623330819237951691169502397854919597062291098158232878309453955784184915573051246071590989843268228841817175570041599720591618774872513647100765478152800377178387776400408920924049849563768445899366041323819639004291627008207552699670539425732043459150388898067895425174134649338390401410019716612345191269238173193064719666514509451005247672697290983690796448620133088551937931971565961787655779968882240731203160164084292573069914173242660874412846692619332544633886950850161484661626905641989081427125371790483584640863092841237945781159565372324084695128807440528649051294632099122582556518582612306922217599089420435798118898481249032997602309068521879495974656119203917459944825412766030970263767680036262774638555352084304418226919109643581305891420609497006666753203991783619561999124947111474502271995697179245791669471416967117981213296241652340899424283762792506361568088049162305325443171853684318693951237107753237862854128814485049123802816066166154880306590670616302687017458757626129054237805876139313161985804247716704571661973564821032967926909027254761957421320984170992409658914532444384954887316634057921509368560266391645124855602380678902602725920278268075151751271741612174981093135223339326770507589998223487135418315649723628294095861544825175414542356921898342789630616719278907941889592909609840714452358825577452778357501499808831852873234085650683039957839804419628639588200417904205405401866949465028346777176289266845955534530298497525636399239553737069790427426667724208134598188336424366347982103776858883512624278378709082294516182263308283704316597877574862687172221519982939368130863851609503928113771954197933324601374420334226004229955194172268902955032623350675675679118955155020889394518245005715670492537304973702350645714583182442362188069540724068977034252970750416711111591097979769030070980400480120689081788992115836299793181505716994999276360117691815789930885629109497168584223207967610111346319427405659592932929300628437284110094042540756101438897584811762865981327322669633192771609754332110054210436361468630016891334307801475186835241292449715716893910253488961389967378822350425833375462892856973512822578349074977042304428579995522903784792903288959851445556847890081426797960611540112233074763434617447751307559686314100470462470018952338490519697682852154633178038828341265838775559591843783288521984064743237047118346038791594089366079230187447200684753689954839297644682302852878585302225452940227763625671658431387977148289878518165994020562646219770471465508289414094337566474021845683344369799560163568685254074958876764733676834172335056522885260355296675010291273122072537194791765013652878669249134997290726392926195939058793848744352651589300543231802753422416137143424018122680635461546165317968411384054499210884172602784144521669137792491988553011054858370508175700564056048075435511492267976016483885249289373699972879206693284009537263803769596754787826621254466548435177873658171464357843519902922972315800975020032646392303521299084140954505352138723391002658149424708064814093340039075053774011766489389503752150473803454910256389711089490862139099857611758804500954005393726902523155994146673361164324050331214638401519587446793135799913610064673333010496601200760720870128351990938919151678298794092710979558059824717947462667689743463002308826254678439748300422436526775789154761021829095459065575915827977496502226174543853042557034301905147083922853736374670495061104671610344404194013533298586227410497489188858303224706577321304713536823130831004915143502571989141492561804741166524773812752476237603980701021055892072447892656701093995766657822699601431054238161278373082553620766301372026224396544165923532239789088446608157818689170415108306942037730064958310220853095544946825991905241915768390947642483797678089280558840521395539094435954387501453375402264082179328019287049072964784737146284374085119144266193572883329568387787040088432465865511295720316155500263749547927330878464567027485605046864613853480206993933120585148505853572592566224712775212317853145532167494772047705174148123713167118931933495626661770311704972560259803341860983079358598145669420770281378943237677664620101196614904595536358790168514703040396565645926527589085734887574425497307121023862626981396982199414476631168010648990313003355533775526097312707562230464887563458565289590686037390756344985109114475367917287152029289341161024336237828562409790313896705480797087769154030371233158346239767862713985605202405704870879387582814631728870103208179747678275161461434955119560767224697549329675501268931594023019567275992180725051855867351175553903429150775481228377754591783657305661211369924166992517500427764312367134317314974072907134081163262627535328007848209278747559710180897631858493777854984083428141926198468561949392564301919262915427616029289616704124602176262306789611034111482251837246942858453750586100462740794396889600058729499884506607511144689899956872934446654028150240911738813860411907969035205885530107687950751350097630589004904868361493786784693746194961978866619168936286706212278840280090140159308742212217679273707366686984593423835811831795624455048040802678214148029296705132905743808489444172514444490694586378379504008231807562773338833882111542183918227235178148198890523320887824550904478461783434352472933173695076536728265245773637111553998775336135372058161419786367959776604921386834550753630165002688034912205795842875325868696285331826322322336236334495450592856537798028693487243347940023700885928756527733382425937061296686233669810696302749277303875205181641116701370045667293972524584284297502608549774780217123201843440793352235083497129518237199096061500543724989399066078388849695416674955380608896589032937215812394458754096441275995979207160551513263271841588785047047366791055443216333741430465022211570156518564135525276486503612869298109234866870964049796148810641535130658646559144661961494851867945176436226181111323152983126960969164537313763648449320375929860194964820265593690310590517211593323781789103525063971020651008122154492671664048803454608804232505620304401468859408939847552227700412186990632804871311067151972935540274172772444190778417613355967812539524471245705751166083684257037546562401197864319526296465431697369423188295246888717892603021099137390704462187483939724013669656273426886970147919386752765476323217587234969154631648723867809874050264330733898784448227741730101571340911781413521279860131964294559015048551618837435343339759258223565480042729600782222114370157985141692790074970507018538034464400460962401330278983864370725739427912357061421919530526962943126401258538108511854061963343070912593153272645819396819170923814896195314625999251814307528295777482195545428138375904822677309505135263114065375883460422733545048653537687067227035241390876462411694587361585389610925232173842572215299277502169872819825647934450081688187215829717657219994521770815537618919576085112422195671796364856036044760381158457375364837851238000822172001220009543049355654672926454283192804331017936346336863355781455544212736105770666036721486928726484091015289024436365642942530745383330270198500181704258308573196522720976841353435663987316226251296859056271972132920491593533369253456105707611013409850886113591401417474319472541267846697738953955532695881998501440051439778790524126519320960617089699583675681235109088018673891315677284324446622279304730778896692566349699449038873321002770873902435690141261743498029807482511757218155035440754474777793938516005459686513417846530986317748203368732179227229028745638380939998716482697302947828719158481837405051449018232580786698271936525507257193004473085871240481207649828954643074929163932715669964971148554006013208607241452541266144857173662924118213963286277679584766092390447711826729298439250207804697021026148228179979451238179795498869481005995203983617497291195245239090585498156472297567050024841851747323002741207943932536657108846621805333787261824961184467307006310027770290467375014604754006745478540456690269725222157073402527188856160419008103596956035370933096581972113464737368067333054289778267002826339917970631028239552563052301814502474669414231252078421514193747254236747202423232864604625588314034292802327290081938692762732414182559037470434930915066739399083787030108149043139193349581006714660414944473723245576242378650172617919709551762967263453067305649645638225563878971775420101484842359617329801980104204746974489210216989416761990178077636761359913007835568249438263912479274461728049163149615227505015827666569049218500705678496211032775198234895022141738872003655888960006675577974438854436980453347638429086835516283332553441284097688882670413321321005171036137129613565333764686583231680277144039226393851189439282330002172148913789150577522694899365182930006682544106996959825047980887164779203714267120565895692877317606182054777013881067694522185966883414888394418040765827118426266240377244332961697079805664850375502429602031253577032781721094423151558912574598513405796132273132346112742109748513136037388343139401176394470614569507600844385191582488235924339475800429966435839403601050594308969324704286090119310901667096370989179440648801083272674506335415330071066691073584900252444159891955840741808710884555720713023817353945907946767087652402696430946578594334787009966779094499505797570676521441789377780206984220922975024178710747674567264986497461890603563393617879738698847958271419085499628772553646816476379516943302238753565020356713888029392653735032906953693784271909622150523521640342855286112483233031929762048954621228697945390684021461055133962615622920066120120290518284098107911638910069602526075954515314874073642939295130855987071904337884552439634878885152169972159348206455931126521191293387930241173809414453314700640849048529228681434988111525967482152557384300717429868791006257030870054527821174611491881955219481457165325652932745353407756892761307619580380233555676779825946543959708973796244548701631679478317062760570205626556961158256579451922968946404346434140068169172065427064199961580887962487434248199465788993816539377853603820192273122714524461655512269249588800355567596477024887137559001182544039479806443450923522031978793172543830199434286163755327767638290624173617481949747578245485665740482360643147945785002869192685274191156991095453667906139869845361244087057605699947380196050125808601665323366163011557372111046281016663548918013503354835197308697636974182606032106873077382723546579493748974468331714149282015615014704002986643046043236295601892382195636633103369802940035567212355912842075438212894111300678195184365470545142743206184056772408632773861672876088555239404716156101144978207430979316818049594237266552334424048677588649398140601847009931241586675916106735483806959498834155876862016662930459657312085598354661821907645715201319046000927229504125821081403719979956484815307818516066423150858891079659931182144483010003307735058716361612712608694869439772123546411405383466777250695232255581072713439055150539147637438913266714414507535074743328705847563522483698489958323065984297699260280141634488355191827809261369695417953307875500636534043921334366230751684395053422002589684795886847663991611179272988101137870857575140767481830655459950492571482058895903845573081376805175261501683444374968841322451663900742352477396345281277832613886577147922249152453741991956875809559101249052305273099427995021925998985735495322984467905231451161803124417248071448874654635439575036739274537178464614819921449495961840885821555132220939901284793077455776554677890537177284611232211259938881410439494679203802828455590209511676790004556113091462380036376057463323462188607118674564274998144049624347763638058876253807698584036202941035801002903645673968879774120195956574773910556074098184178483769450584011234334419039479075054541796031046830435488550028598185258612158382072124890055260407458674427591176999529140623896310875041169104606316599146361289283536901930992914326609198832166713510603972741954846438060423147429402004233299236776957732197662354190283351830517071002040462120068116892324111159858565662406070834573202235326624937204219614128946183406612538528781956784157816560275526920617537570981821604144282437306795294894982748658442597951580310968340619392828483070395103258562075715440014103265196256420538755806866309700976136847140466223399641406108519007095288312470213186565619088319528000837279866999910333806271269683229692642345185710520087133045047794248241133181818983446541385775294762438740632788735538463287225666494327270633158578187723855963320783763140034505316729541966611938062130897665883355483378275199651904126632683224734362388034685859493830837798231382003646045085280168607754423970069892678236660953499390519088252686978870311472953459620662586254266551076225522518224766649037453467566237051618163954619497006358363346553181346590641962910764255350123590478859604300796901732678406004809439270725402786890205924291648230864882024052716537208746742970119186000350312971853679784061468376160808290416778357532650297852660879165073761718214965279276399478967186311490713799482046252306355919954885218984370698347733661053370676385401525497071476173722561039730306473188914038245772715076733832275717475112554426063171621321786654779282602975083296381272418893615388504109928287879177557219501352378301665186905252610339538622840787344037040306088402998987837340853424422818750181538453407085296697087733591896110462607561936337121196507390183197473757669053646917553164100585421518456077168608878393539392384738792667657353323869548772284522298029017590036717756741164019077411725394969084421825206875782116015450233867628206730721156563825699259573832760329416325762611660920736166202430449036946937510216013409734122354810692085177153661462612997434322938565723040488606532172774873124923110263741231338610253612407708323406432826231166621773275282790978503957374839797397965010655655130928104407093402592688858599696104557168736546691350807370293359636275290590165470396432653033737348478593545594540488225093710852541707487383728114062027311182048784363677956217406172551727480558267757673317186075557717559294216764274279496082087872899038463388374109253196315741977142543145784094700435622109681282740969044617949660939467214006111550967041493322955908605747857678606086354400831630321532205983930096102517767772430290706131707196389038135062464627200903819517046563142864925535113036394704901641440858360671434735389437157674271478667864492275081810821856271266219326052488667436839921586286499205954790966174332500590551039516123866184871870080391793432662212496062746833722923959993221180694888291483304336281064492437164435544651903441584252357978212004019183176763393210424157472395005626751892783626820959224781470457550353042827917150461917531964238307130015420649184031593955225298937014619767162678798902753925137288600488755742206392957074495868253194383251757188702144874538112319983719645124044864842378511833970526053967441486776364351376048520846757610959876816436068131926855372409754716729734246052817903289169229687021615433406241116826006296530382359272119610969500651275391322039206157575412299777070105856488615213578118021916092763878348087981655073265525499405264789275201311147814288175365985304739984927075637458184378422510045812932859100114578067200919289104005218656970271457648338713390498293781348865574407559991157301181625354355509858368551681586938675559416706238566485060844359863080373323360412733897423206216225392788272986541460111279879875722887853804096725107334982266089721204040019463081486605869853758441200666056771634081816141029443556023186989531352532478892687738268054214781767799918524473697870390391072061054602589386775005550267216759809745174286437577231891403869419429422437557212980221165252127731609823589298867559639805505047497569367290762877000893603146417215129257488412279005784461265462528214955088728797613165165787255819483536916440517920820268804437533050291271976363151057276391132391309570530319410151028625372870411209032762330331680161115531156386404617489776068270914029248042394266567721560486750335179665173230408177822265963425719516338294749714357817788378903006904369284801655537723205628964573044652262738581060971594867756540615281085539809348420020299491651172653415583174066353944794854836466289011820447716738900149298360728914245607306406989293779110223568792313323017882639301930250941371353794187942943807681137935535377764955783973138497316431987290438931926357791545574233758466299001701476074220556652099271431766399741720509314808710613034685657869400606885842874802587667136141554417823387974075303090072248635650991486089068858019471401966469582493564982063020063904076434550572126762253533253796390187571808638501413027498714179096358907151786022484214951252799980539370881661479632372757831003946343780662822753899332356816576703304356420410701249954285437458223244351023770360425660470784743767111510440555199603224147791735033102653655044359794549325091414260588078709778895448105718924230480523813471465118296352857670557533375799028193672292412296367343374927009369378284831823657951008094111181534453963594171602534740883943279288659119537996748866101346139437801443748093883227489477519701122968957408931655111529199689429451553226619072294092371380992970319522322324349251196867326165322952853499453933867911098156004757563979864612864132188329292827052517527390989713685852985974777299061527563230417663795599347414783164536531227924587699999817614715449772424138550339729870673015405560047974037033029825914408412442865779800994345530914203803274925752397083241136812516960574645945813344736628669996672747575063838138717584371722419112825210886679981432746012138240319369917855598887992124465331017733930537511953444154526650808417632782839497102623842455742174912924468758768986916113042074648279975921607162484367318685967144939099318845922463620734273401172855333991185049128776420624851601662130628255411733518543617870299464085776950576369668057146735542023963798280125290610384099203154265255966636372880947351742534007151273219158304379609028342144945097488584722220077150399036623497647684414444936833404663048372804576992685573228558527477798664148775528651817316739746833738292841609159062983398265059942324570553470600411957871250869449287337600948292740699815659819971436152599089069880662769130564653017421090468303131946812798675454621763464925001315251569295264205397627794450331212983057991335267562171958511685933363325737325426292712847701192230246281511324322513972804737690341004200870343097692180380750544432378263403822633423035375575745452152298780287787178882134938265260670945564508220275983757376063361829760619611246811134106718256887137182213663991758002695307607857284235497606438366076397698844303882828900239040626109910396330888640341503081795066159108848633833608142870601140614452703045936751802651208543294219186271759648974204388192298697814734042455993061043039786790897717692175789667744325112316517447413598061104388200668912314038143094477150693095577355433951246654998143511673961232180012927319856976610618926570532934851677400048371644627652024640087711274391902633728389934111542357819462551822623205550548051711582255414797392022821646649296209162230588223724666717281162098763329401941509922681922578640032031856219098048146041411529283040916916631798775859510284533289266035782382084690114216099990688139463864381994395638123607080765992714131858269230939193381299253864741530648788587239652573606849689776802656321563345659918004001001647262470165892110036805199350998990073668441169084531503773659053633682233169171459918995319670107536042029380620086275169895771550625323715600095891984424407926577957677553338451937205636084042786770354306273246608866368454096799476303875552171368901589927086368386638262077468626624233882969268309139871262485003067467898209076389071065212449311778000016181303678953001108328548085358229365188117883381465541920140687851532269970581413688172605348181502663274076727253209302364106015001848685664010541864182827097243699156329914643528795517601307101281739523826082697951521199840925752788906072267112706380662325400467571233689296654921682663418528383406776945108333247495953715665697141849373299934113199754672163007021918952714018279042520233598365254330946230325711352020719018356597420231790845800136772178836862995688294607228410178930960652120329713611132023765872272235134706847331840649528840570450690594490880646966453733625294207826100702562412268940675289451040878312047632275456795141068783961439006525088188840582816430100423847364778412953743686158561770761066123488272206215092569244929730902587337308055311086721517293694284383085118761103260591285344337468955379230313816467116596253884823934303638901889905409183453003233655914307936831195580095836314548438079914838079350630192589836955802226268245681379971997380012898940018025856802293475242653817137549291494082238694653448813013432765264393266700223954256537285445166853328178700096081812800661970083540481067804976307938044950338364860366271030282764165472097205941617287493900010802875484614820673016188067516244954224182543309062451119811321999430980534339200090316461494170861334958111673069216828777315607326344387923576000754240242677915080460138838322185686184833159255857338123433203769987490936503422455510705151080631385531334831292678175240399680491185292617197575636799384805912561650077790790107092752923235271381984252555481430475984438620027715913198201081961513640089604751689139191938341205324793909829097361746944815365357531052608963107311095264290284873249989581666175090729061545865484650845498369485383134410877012281639565315303265089466486616324481240211601314917788219609787317237106013601170263595464338217560134037253545947860304432011117959028476874210390775299081381459088484070978086353510604721089533554059306663014100563790404682191986532770891340564311634144092900984568989973849760054927863333629283045241652042135232192814302024244099711498753055449671891119334392771508409095971057692697219739819141823299565166146533042829898230011536262503895037877525910205539971741268246462933205042695619953812471434236790293698254186466155493409620733022530293552242241954782046977461795120512002235641281179851482860084848829193495382246491715551219822190438408108975775232395333197193712539048740391838234167337827384095640261626480361733545589255453714017917115909352418637998141394759158708124794389559397503150591230585127904724123366188835942725071873249573342071869522849311461871616948467456867127410829185692675938485533251618057269780365443457503102798551058089827057847402501171669612237527723929358151934693788412181491709275900201941514820186201146757510211026063227303447207485985019578117234459994692770633533305093271705905821249123554954579709877282304723624374222962044503236352559163793738652603338732290868050722094040137977895300023466378991793791874317736364324139505323097845174727143278996232645893901580647772460571476613038340004424227771286806438132662276094959286713852207685185296325334506726824907817053295489522032308813612461335928529432769431461125035063703176295167437143936902490593228639699624203299294735075665981044178851216997393200169873513558831980826583695373176813653262377942529297367390606760371208568486215328759459897066058517617461230349050275542131499032931775080685200291065698897075442657578492567090920477361611957065562741737847121763796662388689224326871400182270585157721330031092052519138799171684149461998491839852914298678813179648242662960492760886133094585368453713980587164141870347938880028929823686009633471954146459231530830638300175480933597785196432170208350560184088504405566125317362116973318329360153451199156140161089181726062043338721429307248886593579602280696991576270836113430538242392143024097742085307704914505979319303594356883164446879044207427089461391450192741250778820407896079136500607804954076924425527140242804288046680109768020695283569206091420280014715478640987316740452540095225452717286882197647695262193864121162919349801998113131052753227369983035138466047848311362582219331161530466864887467592233573144391768794591655956918948894082033426509318510226547992142196411642672427357822081073502954193800154455808953363908125000064221878578870470806233028151641544197669505275276974821460985950267676913396515706045912363518138748032922361531703795048413442224970213535355349966877506331960721430854027787993517285143593260634833090195437418329441177959974388129749721329423070605856453830176355527755629284660035416971212085744785287862735015847285755187198889856069980605547627730026044108911194197529516033804397752987387694210150259808219692197762992755410373279552138646208042935609402256880394919138717853121242385907963267459273152822211513936442320921618122457319661531085014628412310556568231960124711521015524733113141473497703581535659478264838446527867022727016767989833286454177783832770869877649703657850312732253424476628552114822798541304220398382566718606066425371785310004404051302410264635075772993526398412723691801998835932813198407100582968305067067134065587090178117160134170327655147668755115391774744722118855964913766358718492279935926812949048757056633577861767368193597340623244445733879554266891251789907095602688860647798478866853870708132777344001499344764447292821303779358698484781056209691819991201826094439415554371667676709723019782985317493558647017442544236691974694633905376548492013993469387094469133724489197996112270343695445005024028580091490627496621421542957874732174060063483088198819849960165840405645505502784655372739514162795163114087998148133191064347230650154632963178634574924741817484488447863889976413276751096409171434898601544222571271441827301406145677264578222324469158692665014338934538250378206159665691464630125860114770648580091256816167688211098856060488763348210953234924622725688290175112695834144977581571444786979617807986885696786748910198758951769726234077414635325069205140860147171334861597275911644384150989868450903568836779043393276118264589636846986783229922792402326666021782196391092330313482132014431649820031972965343304996866068657242271656536437035043324226336535106354522834759098676690148434098429788544627962970767278825718527097613753753373317573426588125875415289154833540498490383368494009225031214062760369182710667931383757709505674685828054053467658388362557987729972999214246329425394490554559181836212767265241963262081875350988341741079318056908765763237586882812066527071151739858856359501612977123432551028031764305605347956923525605879257501692265062920554001920778543719061891391171747519832015413990666211540001095526109843523178518995255121497110267254337687807083828737580882799617504217118561977514466851935149762829034832351364332327682116245318381730493877262216416666004513070982385073598876886300333906363491845896657799362071772566220102501458466557071734286959089338223664196960699623291642461680183205869170541269546139279627408543062692007446705439588575554103278221865373101948888641091402571569284282729098374724512365723678196115594700786295413942993708476983889898059024850210517951829755430611052838358324082393673770619455918985273688016447146700596549696195893544312551129057118909110210902409162715666298093193324805913732682827048929094126395121008986026214513067542007223294785397801819405767848430995702654207398310504221306555183002760755846306693971016137783167896835287511443309868478320113062325905998386305612599834750863577060204282025531165281007219709609366289993833064935530342133980152952411823699476907325438993141625102813353552862746588535785399755593431961074460481565663244424579054703026578599102620855768544800321869136548280371098246399979703262136924613002288250558940456268570040793419483060223819123864281599015681169404985708581778476503961463797751641788679185538983558078646034258717494203314013893461619857681651440223549084272723126097579747534796456697218415804934235044881496292596833971197190326281551496991077523566390461566222088439937991029561257904969572268736748622151045071821261216803999869922451223302146154729730955521273531291742350958032689357179994055947583765507327378271117410601957816898688135292480348562122594291686606450809331255459427480589658429441518322137054392068003225431059821586946479227583093224024505703047745393622791578478834881801021665655728540982276437462695312514520592094802001174215673351592909384888922439622722942770524757508948819728410517756590712098354107008932524514989719962210846037796688553602716941524858797442698757728621657761080889452615216034522099398707968364179927545768502913462697788546849388867266872195478407438412930447481293140059556574691281340687906671110446898140055156261378321747743787787275981004495911590741968466537091796765217316506275100653806651243071021651761633436551908970779827486079226751373612229395423639811406994191343504343736826668556653446637748601292176987504292577945305509986884938247169776143865720972720906458523106652675957642177100498856990405212037215807921576539294254071325845415889467138590845961256364913236523807347182615941440832166394712083567195138427600200662628344173210940860171793288960685170135445417103980444555552212031055059350337761194154316297152948620772122341063664109529318988170422929140583289726085280456129796565637106280549953316871499155445539615537095438366483989788852593316063746555444479293444905685603705956270759813345693890605009374505507174747785391389923536931831372004675854666429840205681006800013873671741408580757638386228499515973251873016317422907027372084272070112094149134161448274175433239553534851189154742378330280814980652515768865051402864478767119823714489266521583465725907432437373181103972919755663990040617793543914083262640818739523722829735372726139361539626240842060997948848432681771443764501575776520284993719614840621067617795179178626775375032257545426464044222895534810365520472944084775512356542314390455997076464838538298322111585615333611755817499152336092684809742482003218800975237314556428357556184804827886198970426147401492057530435057224873849507281855620233849752817322428846804382439194304565756036133163343919382311774158673712019624909380354934542236302312805511533624239835992693172696308583492828180840827373139656981537252012372116353160915462084916144237300754774860951957854271576573721230279830721822349008880752115200828370983846051959916013851819574484848686421239187127640819990361664283783565294138400448923968025335086952130231339520361716701442593498300688989949840270144959767007483832909889206936772383462597923194981369961723697778084820913348846046587125139354667109786376118397948924666605944098535961396643631947956833184935194331775588606037892439535153680220637743260355310357430667826531321923310257731640189885468572751418789528666193095907638183547323708070060356943289412048541679446767837111172734018758414814136401897981187634673182418876606651217798557312197611765506647429604800569084774518526324483737003261321338816603468689688116414069508081599831371603239714566001580970831774313462991594099482781895392343657162073034350462263852538035406435941868338131168897848507663325907263986348534634069487072337106967202218135717122440586068623461504612566424304219661999430429200829674707463487122861281947062325660045330141907017994426711610596936948445269470893607358941548476090602801739888414865544093973174003894653960226288078842672854978537639941349084904142713347342520012815428033829040368304961907162808500425007011897771044810389284337433166131626674645229653553339870686727062797048574320601645334434183770550962233187681883423088559789426383228137873949679225032236789159735518140965565846643643153114200472428873244463621571733595737250164374154215977813493778086850933140465032410234759651773342277451811807004179415052173215182665447816623140327203601226134628542291981456097087334766478730398328986556337134113490534921193311019444750962715110465869263889697096000856621899662388672580163676497770760289529934901191109125946900101280709163594868283272485660308188480052320576010247804070358787758842957821839047895568245724817802197571810518761347461798708010338773780507807568254250505624923924561943925681250042332046596683999152961098686803385262777002628807260407420465939455558743305802028035214256226869135235764841069298176046866021550093995048351469215679460844371732251472350513526889999913460001524478579533365601878968037335025541490862879482467932181250286127556809863500529638799056312959646412363206357933118297646395835647055111856841879842560839024490046631211442698211037662031849826146484564759114214708634111923478657291163363945096342298533299743781902261768967868031749481064402076866045758612887204391036825626571391810303978124138626276140840826066628336140248312453528625409259611569755229676235068600723087330722231272638869423570221303813137138302339815650702963675213040160548637820717631547606315432876662866889951282286526710240989961785318200386994594705783577885196953246445817717701485504426416336375106092487346702114415433492447940986697721334365126258866601658373444331240851380329800348673801467145456203271408781142179379733721800530307918849666658921073067537217588110505176353747347123482568271467985210527459569418155652329451960073290226533944181373649257306226940378343785697004994616915511080641704302513609292972524380180592192461010444048899598136366802511030688417553688632240047195985499012546488494012904657350794849105289856156897153194783719112317155006786753495396192038226739192708481070170853418480099195462845412928562058857045623732271481621844446181164359609700915389653756323867604313874941635827879185433762452554973153728601041898670943990078407849363027663401683706070351839297170793580907000082096979744212618505647943823213151444414620512887294707647724003805373659633205624681167992898170384563185824456741884848672537123275718464961499490930272664642282112609460513233946473180369950594715687432208677469774794606151521739219399961119170640854159545348449886867832145437934254195423944122165134962594852750689024912995134563114544671900523631361644008839897686031413984982530976751305785144738805393207778408019145087287746220418210606441342030937162181264216136295335944534770466339770659100585447197073974346040297424966409046299357521684811066866233126494876052194367473813562176317658114959362081431678352626107521157241186883964927837930800670681210410649673108599404555455611364020879816088805426920358720255828465612252059512646723285201629735607732122218177913354567327474464115007644079117957041425274367163149781901847373648777145901490269270364596481218182495009425970874204138432269991628976466376813850391186255252944236464971028954503069424198996423628554629092474274052114847231516549315026052696068323645969124587877677376145989340771722719448748925838407399070337969831645941964137110875504739373516589159479355348286704475029596693508497093470595881443239108836076948163808445306060488996246365866948548469995179032549248019682349339051359083259476654947266083657150534029536315019763578030291951316689356371661812763923907191917580390672600566173904745951029768589656185813820211013224385444774247379411125505270124315176088106383292067730953411985354855731348264134129810755376416515540285966499453673585914991194344271920053595757942459388176759407424607003445950696960158226875564128683377342254309832887797320531878348329077689337561569239028777918156254409984735101651723364338282881934115169521039923109238280898924788711584650732937865009358891724749321479165981391506849002992401262097464038974616205211186491831467005581421919810534483922234573836753516353856442408961579523399958641313086384674478724592544875474587083307986672605848715116773365273622265112745892493217146848896684029973573938661403288159848695263049374613307627767898757688575926332994812530097722458458404382231248835990083298509892270328089758743093260133965681477812448848626766688298289545417758955675610254104069439806915969627434932843571278269135794687154986165354235684966269813677863107072119190429131941877093013374424040264902622420661060780367078316379482905941115163831100226755180664652362221720049287757736832266361341027559391218869141444688726331259969059333935022436754021574346988552643904665463669775756183069206826354919706988693532670755377390913080141913215195910528909823773670953653554650238266003411344955370339419572434769790788317918031246951011663113670816279854911834072173076430343911388100582860402964436556829538461447259244420087541565885026795713013517194810426255411886694886174781687447503676384460628001760492151733025872998959476517778584213909592726376390401343286349772323174471579115466187189837623422528980669635638575419294428201424675947773891139182821343733239872026180635211712036482016042836919250860384810250672682939670256964603694523440824793995260338923666898646462492955443374924498392656193080522029391657962377148646969523823742802792298319815936805740912877761296487538823858805270203177448019496181673445433510075774342400488760430238143461135470496049574491347422020442291320724450125483700724527237506574135568438250813798477340871954784474093684560553318329559047674193600247404316013063217484538099015986343809176389733613427276868173426001778096578944144364337241792517007065071978022200193128512462250017011705375403708984083090108510948046872122229690370611877046727081361633036032893102455144415602121360827912514004895639408685143673397409788704113919936138097643653925240244235029017398657086878228755236570327795142479321730870052895047157512802011507950112505583739869974543640783337031016855199464351406299858780169600541959381992777656303133020704974525917150947929700074032284913767488879287514682740008831884254963030260976226375454178026862302765176178328778871187580446264245577700402448981181556187563413127983794244075262911001578775677371620528265769716687244297735732050239513808778233765201163278005481958768785613047872828803766541721134534926020450376326309387610511397190127696556858021671417540967428655594547866432663898186639306954031408769152013115435052409034329964137967637292551843613176064457368958097470576751251677900586708417235218246664364230141970198747059234055767237659221462585340365173336802018683582915833692943607507838198251318618456106804918365643152077744403341442052541813876332361765412807643209519339128917656542319926809967876925296303551871826033997929457735004377451754899716307707744781384378249071610190777865282000756513676893166526932072505687686296241637991609682840492676287977813528522465552291829026841366760411995713079622511276632746823681849312186025515884873357602443318825796100091695971525610678009395345461679783179480186394171781736379264736141546364690921189002376005112055858878544245425560935463473390163675828419656358677112340425523840949783439468543829530381099265970899899438277168751693383612969311475752137214538813241553764233356118686458884682367252811790328421219654139529207256168280922455759698835658217925457648544081462299573577025563223714259638825366673698406263980825075097954657308504910650629678288642417248607205096290468972778693519346156541897055670702733348350672833259803700270313821416553622931253806953092326185044334270769350068647501760968270372151191504435303807541416776492654325322643589555203764485850394457780147788334935558947496031327468229551453399222662917745336410660349121771519674169648454480681316247341137404193555389585751280336674580412697754526640978115140929736367022904698524952425083179022433723362713085635966909745651990106821118159615179858920370979616052138739572775336435504880165311185255920282267486807738562878085749980379965491990470052101069905698551653177845237485904995847653868426564895399850031988138982489277947227511835091252999768319268441921102595407243635780653107569919039758216059985625163841839233063749073997545868323122659041451805743099761224636392573256341325063837438895988257867821442721002284897767335573780609942203085323720682836812477519248530475862229098084361558690071046464803048411221762076360056786932919445067019454656163115605525159737203814071765507019840208493238818765605589638229633108576250238795741185986935433259954147197362875120226393195642103600853889471515710881264852162169281364216898095231975267475437810341910404928853845747010616273118642598651411090386639871465195951242540854330452327781312863030723169267330516969973743320203620313826959613220983115063509662857724058834589842396140479198925299235355349190679108365000125712686165901953577347411979672434622367741574301739360151009868388776431790075606838438673992068228084641361264740508777233966014030050516867062480352530478269378836162965415041827268969329201845930613142085320955789831650770905632373641365352913695281164845356617375836378907049238428779514738441156216035209705012837967250805683556510065988353706793560099041745050144312706768463976469279911142307553844864497038406991425360735884005746366386774428364206293017050857398845811032393814396794547323201387499962643432622560656830461053641831378039456453628752278060919648306221462729849913267309619581317412656844606729597522135223219602036456501112391176247642420006454809794506858772176775939251515096546123088066767117128683154447875574409446665039989212418926981166950464371582547588915699182144567431927965844175790329893599703291342652143226224665688254629567193246710236847066778877418169283436402379549431257589029330749794364848209191057489873948242834603964068422390338858259443230360401603333125602921534162166483262960333186130564747223396231970089251086346551365147360557588300529648254880632466576921962906359489374096586931511773166057500942764850972456209731830065933369534132078949377875961549036954591254926241410428852707845229701539440323410147770724409076247634200803819735553109337221816385487309104282787539931646492298343754183361606680029707835002726814561983265160555559626028676228388852289038257790252662046572326282503887465954281915832074834891847703103015102746270761202244701185114814450603856828463104789364813279176497646094613686159741558708172879773931354873916825397424498928569498808068876514456446930223015513303043614482797511101624820786274529156235213176896536607406127883632611536521583591619834993037498948389474174168507437187400074265196009771683785640625234635145247671082701457845686810015808810974675444714478952358613262103416207388583936173240804442152359928110486106618655382428447798340163549541704194940724371965618845690507935685577363438423138310538978218329559193218866864783366324806463567145632643021404293324162238884253390429294145519757054093256302932927674051747433656001841824865274268036952997134519795916787174926436670420471119971060464702059666327986323464155083124676314372396171125131607320291335621537068148813934865571210568092859133240239411419903324411520430649965110503210221084768567191888205295023190423247431220203670240982862485178893319397850526872811847407780792288192440845836063177180149480497024224111888483979393364794237432152182225887142385083009688578901626468684021591017204579590113153298208476306253825836516583808846860515769199929449867159754952279829464175000146518321053491717157313528433634368076926246306375951273076230551051866834005686806325078027365468775244526272933587350157059152126969050236722167673950114267750108318219160763901464433566473006082954697289727140552112639976598900676651863129133816999069699379669838868109371319980961175019987254254860379902106065152066732317183651034178391135359901516540091699193145198889852500614791940643249625509052015492568822882238488044262930433837128378849805766449297314459019748814653651497683268887409613919531679161816185625422399709632915009054880163419971734101378528927904775342932753513572569166231875059332276341583085904010825069717490057140029095013146573311034781851165919580268543740132796614576159506872009408247119135728440498500772115533453540595559428425988314427061328149574491649287769369787703368483673244847702893447963874359481245132243327170941389379505316271440087926294263381230448465705765154041599843044268910549101867932525756137526836535436233727857254983937088340826328470717118851470828340937733073460418086088026638784164619289848098399721087344469682891104475521438117247047641106072520067052007496660661025279622484421900850109592287432009098238958049866244988000597044566357680306563370065784031775473013908377427697742172463386045311559294170072855536626474665232094213612588491259768444932087720557074226924141019125531364923853131506759218441823086288620056228446649536099062013189603868384635093553132531236775619525191920630017478287892407492969310670988534439569989077184032086109844277632495086743927062680451240392011548164173943188528437993828021934751631831682330397145577265657565253194452463098204029169060805796365484696230772900573463721075850388402053332753054644779048060791456108788965263195698585708474041612587535936393310252296365176146884904586653876603256887789243661049024363860981633683572913858355342648202021635845145729591821160403553704932584212028325931608813773197404006098828865532523154370371164014955096895236079440607911985254653346705338281781779826650517413070598110521080492832321559301971075882186869879669640225764667926121295069602898986424462273069358751062715452049550077930924663481749124642381598950765944147063286528392366159829935384950271440423106811135698421670032701794956964285294341654288931188272321222847870874930465441598404241403928350419308565751548637291272495538387854792147641928915709662034845037256445731192014391921680066757020801539902728210485799660028450215911774636175741047881144580214276640569833730415680785881652054831133019797060309606305590182474753510777851629712375105166600751764358928966772469479694069353204803093811175969611022741217503304992740657264092823650542848839198945020097744001006276735040755120961242738475789071018488814262760413459849791428581058799040170063829520231942025207534446527354160868410598312472594314020034268763280943581319951723201392274546410130369808346126894056792106570415747999291080240782158437807886390115805632696081979469893195160907895673081407693787747022374592664030343652336977826029904352062676664212111984796869717318419074392330155213601815415187770727841000103231317426741213098555989452984249695563357523297747777152126453327323715411264085568760570650158180937045024336609087862343640959951817724573540317458216210218608496567964491250544256544225733739843868017742996704166858644147981391126912269631251868790228946112316811539436170239507624198225840417716722874102518754839294122997441439323445122371291326339050895978712701420227242437742701355163828458764661208824431712824178516258392938136142421329510822338450736171143537598665852687911569629144829609337884636707242980483404287391498267132807995633043310152747372121718249500780795350261533431954534845906430045641175002385146530591870734500644136375631836563322389005399524867171100111770520361772740995840011599008306379938033119948871513229547407493584113032924950052981802663533381243712034425045376696599608777028039112430986296218942136896202135072811993344276530107363896094359028428146800485919043954477188356525712294805318160507273833848557001862058909735289524467584023906023330878265991930199616048829533439723637685106010516859907045201731166665496509120146197915595268698510134045667710972423521745275648411910829934288293332488323630081312584595306511989893270592162722336917390603370676752295993949391160172908795746306977093858145114912599549301520450435413881953807446426375193570523826752012402472855961899386777252919209382721144389998924781798130470664364956558730901677215954721068342094760128119842503660093141433441170418328431250821686570202542750488534706017026882222713905397615296173292702968056296043977489688804970373520993157089710059379545769418843326428048472740893940486795796751160141880205109379914104797753591323109159058398894654263349194819218093953701220712001585588910397687096649498037137421822517351144478858455997444090124575749679015174955528252088829596151337669944681146615978367927572336300506152495589753804332191741343065226886457579628925913095441902406550415649458040148397239170674771943424934474670802699832618379836714916559994520855354932854976480385776068369183159388579296221275680784523143383869399215926707944663069378348865231729636456640652402002508045351573774764410660426378580896261358996204153315449459583011137709369765645034537278221825900358277501757246415733874953166375985713431009424673693199835641924961306911118018519340144563063917042743799836246459476711451528125310666649576253574415998960684736154015326069041460924683683796462873779009064991957111254192039445676057278516111881011612292922942780499541396321386064485114071891057943410964198309886190320853202258378980804080660210850774298139641184470209240419546122214891629865816247254973701180772479146939763772173260971244582029358281302139847083177300017483542130083463653479769775195826367690842813401046532944823633859089698309064582487885351447502913361791938541205989683042155746461252860994108095998193167436261768852332133845683903625047275238676864805078893667717053150490549253992597652632412128054953104139825407854413302411735618409084016276438049927023625564303431247821564246577858282395918512613303973031915534693767998160970739868767893429431949854084034739409458449141979257626544655837656643537441590594208107675083700393124508662848441468850492573520320391173092932479994062127663724592651850069332798717603177645313106268346676197460539267701283914274275095465191612787674161472059177371708426261280372426253916342153905302487993015663222262016358126729016848914882873871000170742527770807161763120181261418018496130585798445576892013655843387387745917483535587097885660452433512245627806902557475638724284644224653460625118741882556366542851702282355432884678449315925012894240644494262286540781068444426573719725121395148986976553001298075114342103245071307974672209032814539637617182596070655912929200895985206280457302481007043954279737174772993507918453913244281086690098111457171124747142846894957881659231303972706110068034529432863012120245951478564777837347648106946654264927750851996171801574887923686919744687623480109753386691021694434900387706217804697489101106917229115251387675814676872619301685363680576040697588056198294635132450352496598382355983656827546352540908768812605589554614870427045401872226499619353439744823412238108937325922361015697445682560108254704777016059677363514982766971938162282925272461845338092411992593050553904540401143968141190489507973275770489967613073948442250622158629872916709089488046855158287909532344181048011071040861919771244626958578359542034085745278440538850624418411722594942551574392863532215679090433679915052453950614216630770358490429767051739690649882651409053764929526554471726530495552989535866258985978514777384811649816398321117492396821208312660295658639374131544392348260886995861334345696226593201594359110990476926819182076725620901171534318879188529297049000993221358097554127611405714489892988115005990836546943548886701797909932104777416856685584269954522713140962049846005127444978648073296226838224310902302106340590192864441901360452588351277001238018080045805586005067404908188834256530645300672195636257445358112210089277893062603818602773475770887221640262429824591442286284165493397388235126989745671767605974972810432974325413095157083646715997844969714629632407247674084649032980259374562909464802761704740174400094962524320903862638628080940932704337262738382403830482461896598451335886724237553365830967823452264332277534642812079021394587944542440798475529802818670428882766789808427676455003801489433959911906307149125189473463839754360618684131528177111429588046131839190264956871497207242033513521588014857757267374845126820267313493448869004840267444639325949975035597155220564695292998616480687073324242238337045547704149249459700949824397692026461221260383048857260604620385061922947973698983333834578133836313200414937569657983085396564892883035573709130775896626794842057695980868897693076201829613219896093228183951843282399947143285442872902801700293712127529503134608352874104895071897666765523225323719899905029078579658991755314038960815660122241021000975060753481341995673758524054615504675253841254319719867938024272636040803160485184200885103958128828673370811846443427276118690995440132368954368795552363518441370819603695264521903843527129899210908866428389272922706199256141498401194089924831490758437555052494048313314024205282845372893665310001941072262544225448292814137100194197304452883320587464759759151057633936263775652998666569119076988497840360010245323688180845411094074254428954173868899989984344929996218807942458108798822356925051946418548684145198732470237436707099723292097684305468384572473022955702040225476066524359591386017145382153305010421386576471965894252877442139282050401666286047782456725037702603480038399237862104003904079231906038498758624519286076194995803776661348706475264356144596593921685399367710380690841144861863516433838589691210311453935774426370652044246363808121131103245663432577420613001652191101747518479973488663419623796766221180475987595735842185584260295771204232565079791396324539654067731378515588495285549507407003964640746545398959973384744037174388773628086847076248889569469526001668166267414072764020469301549330319158361085742525291703007896363318643796371541232401529060289772940227639319273731815192598954910092689938189663056873571297237338084226305507907872896522869223422579144082112385965882796197012313262951484727693544695486595273639257529961177460106559073971453130479760365913501964605931357848402648579052631480403317910418885701310154097582504959440234660114495371095936920162885350543274468524811957207088356628296511681262818893273542633061799598319603099917862021408785409789281738014040241136382488524518569854231554072207661319784203561524200360421007817089705407085448606431674433662979441325515715800695969634852676672212282896241855488205748331969597916865393547105869869313596221428338227778436650631833268969368350815941268117788273669592223607943849087369924737899560694881682142160673731593022691353044108101508745113957214633653795911106626965297657077374840298499353861455628061676968073698680468036833805831606656096406046596183181522098310172347791910850534733172973871349971174046722437584071371019543226536910878526422370382908001373074199689028483979727250142210266755679382702562209298814738472384074288228866304376999671661083546029097891660702087519475433353540352050341861718554605287273334174975633855509083395956176216005150161077333154389015679123922153954102647382424707255783550439239965652382986025990757247499329372360409524803323859241934003909322895093124205112785323470960576317539374440764771854397593120255535224892860582244925142176932572030467494299143304390358169479458585241206161111708527818652882637697681486933579294026088218585222537691497649831262193983194577111577443371634556418732718007076509045698479636693313806419453715859300021363153704560107660883024102451415092314906103666788564853295059867280462605678112038517394650568306003334505740612556647361989603799138765014859983594109547763356592099997024783702745946194210037497053481472290239292742643122766789979446572398754788156418923867971673135026881125060193363971893751687800928749903258587177334313491509643381247164754963308506707345073161026321994332555606450407610023407082139858119203676657522728505525703640013206242481758175251101151953944430014966514783276171246012102395950395078804118398102914212897528123530570003496295679832666485292858356739430754187104617869078532888669878926663214254008009936765900556341530286703762568532368426471683302853331932645906083919907771191067478544895554233619421694585631579612865411007746744082626135463319341006730648705427600280305101530561250867713080664096392840711075932283630194906009742561297180000089683276692683722224521639521272795826677127640497392257686845122109539656984643512641914219308886526328296173897312457389153372587125100154489201348702389011317893550567493088425379111037657826497305545393509663348764865909369999264799758983192324737544709367279393430024872411246086803389144866381140212087695548280192760215215835252757028776006482509330732329672839339876145815701223358771887783649684401355590659026463231080021319923137751115232827015723108971034666091621893823540388811590982061039476039850040575999525743988770628564549243965766459894976424174249172284163187250223510070375295402463088037420514284388185444739682409182074482064630743860793281445496899567431018694033907615019931661531152947424601442508546551904901776805289619693006309711132024989900188354641057965377487522773999116788420772816184143206804774665587090457072604533843761277286555710028416598030125403642467958026431050456488462982285775549438971414811926755043723308083109320663947932811077307584615500463797855267630529281582166760289871893836081513930571548005533314421006632219569942450234453028545438624779715402234066627364648630077059154355273699525901667577640421569926139773257082269464039892877682046582387372315978835561438958952535907749921426711327994575755065636953977013485217078019713578524849619763050335213801165187141692304000997991345202521483644873074517275212714046944986454185808220095306194487265800316154112410280126695665767898696109477335488338947410993199028303609345233379255400883091695423197205568217850838472487641580311320747458082204020366244004901727895116637124045534649682979716426972302773124761370483903133477861204948462798291958476346903245693566562598156514065679053437357278093043561547827492842203572686742548589375178731615989708061107644561191059130382468962738902117917545809622667515207727715327643953859301510634581277529188352432267715636635911688186516511799878125223969828529242802288940606086324610949089510398676338117773741048837874778512690217524557113554947941310272498198985972250279265149338896912690880928782661409113217692763543421798778072740435221649473217947147470964154338408562407352035305962795688228191344577088750095715346565349799095550717769076952959008410086126062257161737737552572615558947796423904721124788820921234208927787971710844100595697124205603485124915243924108508502343009806781585775608936573092073242289929959084118700349719203476807938431003711568255530552857627117976418473587307477778339640352821712767039526879378152056868680307886837574357125950094581384010106291517830564451497359227996418975816191723838470159930319538049118289176650527911795711153150459224816262677707028228769781314853333650595392518608833098566363253191055016309403847190613521658099476091829751254504332152408411680128705754042310876776653469192284591432362240088901421055574367462158486174527043547040875831520208180376209216787547536211641677378231705272672609977493007657171164624650011417931614264675382093921586792666911835135129303750547799129236592541249951896500057876411287553794303680776721951121353919913471062341597305617745978319295096952668136832612013271218776019532857577408868962035619483802803793852696027855317133142789178749925234667260351147926049860809378748512694375097483852797835039043374017577729000702896718089272653899071880242585607483767813252091799334910500778969889428526572572898198741214591314272611499474758487701270524225937965237588983190136441896824356707355215577352207489065898968863334166778857800153116782884048389483030805225212172943393306752626393043157402206644270642880713893696715746063858482840942584242702291817131348226288186548390568888803140942793268561617498954258889424338244685988125970024843058722873453565420067693011088775282161152826251970860140806044005970693298204041749566861243718049101590951220825538076305195569773490639349323859806561519335500638123802956554750647408634416317427664500428057012332318934663695470986330802720540743411348818809142246148073624209343995009743312192316076146140396819474551173329875633415681929152825708302580303895633470514267298974944154099457292475620088987115303713807377236255051495705150752663592357817808161473298639915808993959843468446039494198208878995794584686535731401082344375154157440485180910335321357557639391317772442174972723871282981053976183056616897536001463288697920901214906324063856701942192467629006747018784932097769745009154339267671220560041884791916507094333289729123611935362894586572652516615073661828583988691764969814078031057375506540499067458062600970412991298571888460652119773394449950551523762901582296150588254116436130753285021221482412586734048579866334261811620751914635863134133575632471380909681304165367676314313556663601407262961514415430971076021150293058652813701344004913598219476343065121726845175528427505166480679991297624044196990238924263973346062037300135814222593055269013858648107724747288719451862907005710551912483462094820082818097370284161309078548819442877251826630520999602492015209582854612402497062159589730212851212789312214401200897586303870663262350314796209152706328506651301452658831352877713474864095071747961138464972484619077309476207234987881468144451952135778578460388919018127772071987228694898758434750632660326052860976644538235926165431075361006680654468979233065998473543440484428178048916418637666840506623913573812395902919912499457371133680921013333789853164646939963077608248950711766034806454482805237837891276262989468336382946492586025502240765207475085441533272635214533982256569441485544690396724655900593846113154155892026564240845135242532430632735115211496731817821547633072441259170495618890154835252554333102265148687392826857872688503185408494078235058287591435034086267996187731947575530452793156341998604801013470526757836958037712257287453230139041115555615964192529968465274654949055739592900877830799516941733783039532322763990027904240661189411460001454414220630288559244335505809580985370098432332930857920908950869307039267417442739127848076802977256329894697914866961513285426212003533942248350681992792929248624743510705357811499545673567219191751995117506721565528749884904236292825628473868621433161594017109338230467804808064881708196818365681936226774991731452918400773803571999528328230348194441962926269575381069864179595165352397458721594164036402959921067045165742791061462695623716989125507700388527345790726110648692936196154609824596336900035270430673141822656913039953029390455214484348841738356717948925435386379689553280472972615414273890406329694921272502379333234914755173005693082542713429085649938290364439772988821051098081544788423219281436874332669691156493889394291445507834066861669123982960162649105439845119591171027144445662921563661838560328602064778092845520682839461750006463912877169734141758715455224210589543233622010997962509199449261583527570421506017670366069416082054007967776774815849956308577554409792191951079126008072006759786231800882718214365056080174258301880342546414496374901633944149251120536129258834576783237890481248158043132517077758950123334101584283309977549251056804708718858906230807457265535328548332357757155406283469418431967962021329117870124743140932118945953372155208278233106042256680907054787012905038705511629030484161246779880085736457686178789169248648077555843250261325708106718395415152488464147714759968047401669070505202879315595991109094800258350740323974393980895273001464070400773004847548182931593934906659634644566586131537780605008883466121183249052143475952919675502915657852392915339489463648513306042609742573517030291539148380388612469400807757152302636178641036629171288692443446256318436544345656568805428361809379948974438248879900166545677674184723738585255057895612029759751063702320831009802627937393982723538516807778423419804439792856514197771257764089858181871415348057454142553979187297117085687616697279314847201435235912446226601688346010610042340098160222858460142665519795564471989794417522359969899201313017267771156624229976933976244092917544047110349324472832155454492951048266978865583276322499199717505061818346378571925949232076360035359760011106143648436182787885434374826688337487629965459073049267143836408696994243017632054267015543202311921424509320402323648065897544181061361485635261485268212053293509683632318097956172544053514756169015298851717463504347731529134703155889337089108130346633051670265827521881026402694888437141846537235967217263816180418679000236181363994967868390328575553814086717033870414836506641994439817690633788212755248384773967933762487289724005081318911146489979292165122809124156079781006350900228481467838525287702456047743996259046300498804957429435563883483718142158806729395940876132447326872230826538296671263483350791477811927683624460720321363965784121623970129388960117227044971198757677104901665835682512514215926937305437054090651993954625272600366579408113684422840387125400163814979199782346804662968283262426694135457533392599338775462553098398574344346923766249213120383204454780466303490154967666614382022619978240960533129482414401557357234847943443893940131018847625572475342417167471098335353239166248391282255878910579842996975311999487035174724674192957676414927473869978776611728218943153833833224685420811326259211914706073304286925028682560900786881405189608601058074615452045466555592797505164178323308073189884640719302786505547744217025420168708900492392325798367134770013824272638552544312211743595533815599038958247462323831500316057028475877948747528942080973323915253493211941120016421294167462986868352817758490926623952842982417485774985650159571795801875089128983471237802230146828381069610043747470552767478441762620832925735042213794907986441521416825712626109438112772653862125707048714520499740913032918037723279798075949911510541405124508640258790100952172374306937930691630461135106170325951095498195597316561020017563965861687599341116640098821631529384742651778649304665372222796240179631294538217159138100674502533704155954849283011590803562592023106690676930453321422371805493050863893052735662031140619117186666782247652126796596161493034387796074032618518753966265347174026837284232321389923874880959539668505557727793840509411899151967496018781007985781649313572598138755358481577326817626972429197591479823297448947343688465428434599626379387847434062867199999602984875811903019726286713991884967916240731596417304002054799118533286089553988429586338706040824487831433454456722841955110919036750657630831724973683178025342266807195371283131029987724681452527279305157115820054930420714057369482410251479816755813079561284205904786262436025182666677698163787553637662804899083147122150068431668677994633515884468460517466658976814858821220805694928897708204782891117837797642986697593671716195785384414506685657898495294783327880034548426129435576043127003337066496008515016597562933822362019176574449335337904956855952071608323202628206948608208244846648599768877077683306397376246487770009474351631488476872065386061550234873732998446876799262708834562738065660229053674572720304423381638456348510106748176103539945967630335685238196822487424045126569963063978601103064020619109093362797181837304707159498861546068021862267826088087205535390481138905821615627072625476717475003394014856278195951746802597807633440411930118446904228138463626344485766233671628797216327499639765824923929579649962523993776027157542356158973895664649859469231703528968969387161756170227231996594105663514908098445923174374078871608009067455709227822891818568762409461587256263233793476309031245927266637045153903682417476686554857959262314336984731119276638026924771681048303263562145716336634198784363807490336662371780668494043965097187114497021690916609824635567604393394426390171546420858542421645192373029384970403254234268934386191248899360749665844982965374479117383354680154442148382231372414551184284681361385961717440522877047984051181229709601077277703680787848797650887325890331408807862400657714280408079013730110050881212881679243902337374171183984419519841288108706390941027678444231273252216406855114690471123994094009699589920003309854653493672112587107509042432327839246087364710422477682884434002431712034635751677532521860805004236108715671384130086360041139696526403985522525200307234138133065469500820224488860942484571034356555499237902583460179399434766784010143310489482020809449027226414208054689916189542150575320546325016864990153780744309117750670505958335155130874857026792710769502041386520426036013542148039640431909436899512480193766836215428732728782954823031110348178554324009845302619626662712883072026350033185539238354918380888749868150402304498030257656903337282077516427567231903132009383920976827501957936825658696919403523639931386493820867788062540187199690834709749219373279436855681719875624841719177573177842279738063105763211569793659016729196901372362239422452012776790401228764995185981530702274265465644269546078215426712507887258198358729108644989586845830672510390610946511436667667406208321044585479190091566017747097677036938716043812247076111803803235426154718619258232716017116366554249087140803481074737253056887209243120127768067388661670461293745208039232657613540209767200924309865910966184149034377989161474189858107696202851367202606770667379767162660667782359864241129076621735562975654885581562419943576094762425797151975903267748334586409630004622249459637810158018051306406747289344344750547238633837980508580068218176177628234066770631664942317825148650419262760236388656067027083263513096759829913707924850560309666495884268770058890564884688450364956152969933946328700562436956902953590382117276394570817089968264199119674112611582574639699308338957198721499291013968051338730693805287710661714078662281758326844823562726608620525963715233289356415519286939278740555325965504108063458871953390859547286145007425178102588293323101957040009000673298578724005648491755749684919607223335553622409185358331360376264030980667281808984950419145779815722794280820436330155294926270265388621003964867788886691860760811234476981578188433672349164392306767118296690144016402974015037499895822495126092175705939291847225308528553305355181824135938958085078882859140935519371542917384181231237213981686275557733254488891147908216412486186162982631875106174998533244300727543328977632303937682329722821675736870519100873041537903084045560133371573459902863097345387377113043995282600859960284422926143244249753743334981262876983534499061508966991748317442730631406143688366168403336096745889544485826429719022761100950448426072257014365963319624571040885476786007686913643001037099180162664251311171093755708633411865458322374597666200419731559636781061041181496844912575983663470709461840775895891863693306715476566083453441993738470787694306852899148600629860012334218071518552662402406492723785726015472833049349071229199542158458497939044612591586346819335627848673488501044645823001749924195746105070777100281126251166677934777742786481819251792353002813124803567202058996268006323173469332970836863543885577675017873056129011354675499988511742557739016772482882928196458799807744719646376308782120041093375389260679135404651552747000045355307056632722674552426267123106079796732471338928131922290192553663693988746963809225453075797744960007355356476900779365276491081553449989931967868297937787959007019741572004424051810134554751108152414233788161055699075065462060738837693420209086894707644276699478882560735688599375655856731358828387782855855616165341658428652987280549274929632123551907449678725700638476947132318397984956030591723858117012315109335300746807806294656949819668798990660408176193842416682058811896513575725160607328064406819622508666647681021318670947046592918181322333610384011801021335069384566236557690684943701120503599228277080473752948395397895940273741024983029448870020231966476655989318091269541431648902698226413533493951422543551196149742223677755773384001617670487190520654345549006091429224983300735822444869085589906258502216426990880956789345571968457138273598776215717332335159733872203582202215451660050752242590677341931886640339695763654708810810625995978406492948960017954379413655903268199731722514301861066650065415154323953792266182259328509592167965080453175927847758723481856275455550097824383839892057963110085307215150802906546982862857590857393758654580967239769590274472962556734192343052541778965674540055696007871208061596719103714998792005857311464823496675001356995535648394535072664505283601145135446162188814212368132538656946304772509693588683714393947285947929072320339442898090664004925665706859821006817315509410270584101033440156732482020998308966270370870430980412869806907518585849578670880525296927471583325086351554522642814622848625535788085989740453802562440144440513123215567327414302596345176601678472530980551217866813959812430561320147382230641709997713706395913650341062418325279896623749437872276049596519566167681917210349588090236624760202477376434164937603985055838808710870182938593157098058011464295522345836420509837480656373122098051749774206456024293876226171056360382636812431296865191602444465509770382552040632096882456975654904646828431747567321697079133045515929182657307032725348035068006824623711716145217427403729857988755026295007688944064867758455755870473598140718816790832691416376896182431409344458971438735934942656594349955758012410378040859398053942545406159888681211170066798568513824594876800259759070627565562654604946499707800017058314023390375425411077024207555755768782766584054583110130859016320828951134719157266244144404699541104329006884606898983596649370431829684227478910739737362508636087934472780776782345100883059071175102498684838102699143965492936452915408010897975253738464297099435304896166775144706765533034675664098211763018951805521002958208877941468375489918869616979582587560495395858963737851879066098025478378497605376510889200101507874686286437164035450430358705485433393798490508065398286624235269638676066868501150255303382875668152500108853391423896780739045483843132642753208266056918219504909018616931401729341716718296921380844830263593239117693891706065279245562201527237133927270165013261261821805072424007525634411027676415254016388353512443834838246343236078334930679241687905929481416853198376605248840547405257687124008919389370563604449606286916845250903334769377325433143844044840685218843237124113461652549788152994663796825149306268752867963875379899496800491831989146288029022734405751493955495398468497477249432478730780552365000542733339343462307090527105788127179819238225395564868113807509841131265661592407292967301815123292952025060560556493619497991438645924926178090255525448566080706868891262224050593252175032481082824067795469287259838854946368480526819670879617816644976506760009562854755025074298961228939749398049088693572977367690437117239033703933160125238124061656767197543890977482821449425728120899914133611459709489164327328009804505369838501865896194887940471543336004866571096756409760787851736432162843460628887741384773722204749871704412970695918005839210343294313861820814173160942398463663854499909099604260060423605454394617295769337997893952196848389128010266666626083400158891152336095876795226643928341217864524108801789006519547419859813865104600892032223646941349830519830028747277058801820906749493498110264343531124494676349426057459620874967775339963302272085569283951126026339623956330112905527107019723266844892882777680698569837104889377675798062148293742243538776522314830346317575067380751785215512622478610708699310312303612399034012239432119621153576902021899086436530909866919999272113461873353310164757328863855521194319670975325577465306576504170061175891032369735927248897523106562993070650395962558178473587650456652615819097830149503263217170509701600519950484676957159176967465352230651834496479747182652301402294033158841042795000176813931413922146434695230476844154933090795324898483462280510516950598395732037260383819245181636192656121836284386444214061532501076895017876729478282625129346903516060039250968675828558293234543955509551231730729564000367936135894585152941909726517468672964175444432604841851859718518089130900758525648068907693534610040200593274500421768610162861195816803990394847699672575068314311066583080785383895973281447783416383315929847609712394877184408375657904241216058624826815348306048660975429451994610498749092953457975287816371717301198698553556354716336482000169145455761220343329590384712310068262049781012830999852424522573736913189054752541582908291014577063377053259387981138871337163709903319101220586068653516114972390360113510574904123281554671688729177260646950644076093972353868432182831770217165797230375510788547365459422424011678278977323748316214303698748180167686617624388240693249742218644744834037381815473119311306971866066550622075291975534492932616020552532120865186350730639896059978179667009830160034255317069325953778145023124241902666505029957541401246790385758515230596067475852423648635975081648544008562952872784636170691768411420459776167307795442711577583740669757671541160711162896246521161670167788140333898490127147628885740493094585007366621915739574600848688986995775248596047937709524230674834583625920437563393977568386732282097595655322688835706354808021277957816997633853918871380158633116265869631110821148484789318863761104600314296298782858299724970379824420575582712805319001987079197449055620395606465105768558740807503742848433836412350599431490154881303422301172073876637079166196018055874029647346203110342243235593008546052932924997173183196112152893984094906301365259096285089007947566826288146184393283513891764801939307284894095667521503259741420257194696687405380965701771477794787032492510830093740398330033703203948504229494981538443859210822920494592745703667254855924313555064121425361811129778830377594506177902205456529214054042428246704260045158280902143379920082970876098312497783176596641764416247594438294708402752196292477921711918557140686071811126037208112773065640249597873444947276615059463798734783915555834261333222845902611928522323677887918899441743925847404442232271016033027824784603368622552964361095184476138527600278203279231897210519328307206012641486729763677879366217209444661275969799073503879137902627347756995976060917944652442598264596874621599543956607743477300338486565607960832472813013507477546284298875719697978829952996066095681834293758246697456705156213199890803404877084847216204368899022970756594408329128089618310854432304537716073348656836699642662852822476131990143420316479996829130737113930622967144090620575504385271851578402019401812093187009983733734522180955126679129238834251644678414735342203818571613179374846771194310269887494747321721156687094808197523639552206050575985255192786389630558175906131345644514378736356515678897378066965893072797767445423259981710553482574548604527954259050057867356162192931366183218018970951507804278106693682823405593725165184488968339196896847464309183149889492501879988054817001962656162006937708807099446758044202461110951763387902600410916093401799821972601036653565031262708762545069745231881213264604806486536064182320729620409263492791770739368272911164776884284760860080163765429684049369497474457776532299324136796805623448968214416857347461159229762310254789957768442213650246968383339448460893188199190148998779970671435931402048929984318740495717218878018109124377302636141972672478107153413360337552274168790138207565850665877908868101886512050056265259722685809141431060041418962368277475563746450841622849652394068412825506793887875051811751720457950230776829946395511259514112674585607201594182736011537433070861683824731955476310404262510069347124415800329278264830176168449921411570487080469524156995696091166796611719067433212375569103397633751076511571418675173106883538496992521459795994915503841404120576159766011169241515344280769010123377728254627079157453700122935687066243951541983292856317033471801055371503638652247438153320031227080277952681200509508581993274030239984222984744276283365004982424268201824542676200077287700604446466480791068365599043052060576939924126663429192248923857994644430950709338878275944716157112802716611144112060705739506058701438712795840139650375500112428435212807029399681423414516018464892302431835748021726716923394274722040381257076407429708625477797277744497971261102040452091419892789253428034799260291101531248500135488706582032679232115707388126004304396897504357788992365034506589876499188620449200609980931159027190447285879285799124814141226960829726876665178972920349090408827293308110048132627079524667692945041087834271460516752539283631294887293887657013947776445824048142977255166567840950408178818928540333881818532342909570768168116929753814703773852664010626531769387663448911948774909077626998475163138021976052125999697239430735918771939008346876046468342137679399274624430611536540751510138097566268275850088291056515279371037286756358403743856620027902630527811133087134387135793658384823806364200282876124376031757470624725212437432730891326096294985280005352375326161684077629313567642381514032325076001487611539257707314339012716081275281976897395462474545263438774698177890927324863218413629986763793799894298332497224177977494372391763927464661088499198771995852467164503025941426231604023632617023493428362157127059933770452209151065821616161839457014470091705888422632994908263550681418664815721232338122394866085609016463601488082727657377119293041281870957005620801455323846245837445834048041505911201883958915248113078123236608841992986463443032787900508544334939984663672870016984411606043592121092004118872947257148864630210191295439161991588752527768139380630384876091162126619740194173672266733840239635037789747093003176215189147873836256947194517974625632397423792458371288509978571936604958507448016488236776707364823236255378304311701281442242293714414721017550346091935606126979679396335478309024813147373232633033406313762322771241426030425378885059996978245139685507738985354871880936643095650530700499381429659339283340170899789443304751330097028464024038931358352941507737937441682227550388261683133558373959276811939480158313906751956026901165772677597981537845778044501261230396544094382544828507743163773569317968211984118426862422333946164387475586805137192447821134434390456138335789340030586403250529791050953881627246221461493021711406058533803782512933163308436048807713231199056886750336863113637806144691341110317433015408555208871383327946527432725192590829899212187260540321962491773903604523743082363264537045747855471341688660876319440368795599756149086770940659611633054561919885932794190896809950021752560978761914265743363992538053816423492891747906897015599913451215958595875472137794563851178230270034300983579669806256752508837631178692479218780420212096335917202954950805523224216136644796643273138171271093078080079541759056051512314039198559741947874648682062510222643135463682853696156576186504013734169300549433429471958575404283855417224416112021255617643772826206066585674794006120414316642955710492236475058096679929360167483847409825474503315635970658160525828446299151584889412085267340283137810913649587764606747960588223448512954057254702170316907243550747525311611683642663959998251848753207177267006797165546136066021159247740352048153645662905435380647045843042618486709055101450972421490133098311442974793326442227048396478753853846263594892382779006872934645698158900049417894675542235352692318226220569283796144465569194218239712947731905914771843912741298081596201238790553277423743331340234854356455645559183694104981120133893251995135597906378427699091666500982616093167633154668645725108829661944868811866007336395353147229795739347011754745094628345956854725057344156604943627212733067365121881907352341979763882143331545594945149764311155241004195309561777553090502301804765211474825945103074852576283419076011739713270382653875766316680185897160745692577491966530143438413033925402464916945195825336729552656602610398829897412392841726316921113476524534432677841472955884295549562142069699292822035020935114894639817465652454507085771406488287181037841517406936853972900286839950389620616307025031907652398464902825694050876598529018217946783561974743960384746421692190993619257417697453566364363068888723305854157126652012148684816001590301003626422469921295271415975535875070349172092462075483635689446187200250980831209918770399774103587606728756055106407372125747537403007094462879153136324781730907799185265917312599145652785931201116469700464316463861147783361691864946863506711715985159341003232088737186051543764499642702616869222207389532999389518425253253258921138868465004941026442690563683981063212528926106994371055200600864616646141620247236222197814769316958326452181194969872338638876992717482954526452507627414948889581231399665432314852767693876096861654111671984640707170151199283315530887278861331678172876389410445502997031110040237584795119014049189611198827246737344379821333965353084647388083596622483479711667536854391607828553781920461042223169762504269367988896012600546759029344725806803968838509305474788610488899268719820018804891338043897598336278222124034713461559755289208697237430951648324656965001412203545744093867215727651768060432594142510176788983351194077649003360956386707680811654987802436596335511637117856852983542665766220973845257973727344260904827969445668069125542458285772813995556009416254084395162372602099434973405711424579719320637432975431697595620703271483828208635855497243202764023747610154728683454439501787449737296869545365995173248422226577855201317800220234416168573132935772688456968090231584922870343361880541722858836881006391947397989329813588926386087498467498179529432905848238032739660273689924507822774122893328390242320932547667604572613872953737223540202468764207387290954794875709545435329321289415166940738806934510192954583827215612455656716553927030569828436705812187150656571070885907722305080064199495916652437233328005824801016485630510160503209576925775982931070444339111789253068564981439764202252979187413207345366641534801323565020337550036896523501849268232559368908788528575586008909782195477663021407049624922029157131713158935623954520976603282611403424447229896060352620824692421151959008336442069144475810686903959021528817568713743889442417309854318705096868083313447578895956048883168655233699294997849408010564452787232129960995526289883383361835622748371646403940384048890453048755026858461082931662086733233955546697072326076817451597706363694543726498190571854139852082243475558204338066651333268145073993661852023873695687321770119919608503775512726511562045691420457495265833715677591699385201691644775506179212051061449227773058361505024062915482559459409161649616039875949171149056845131644732760818278948795446495442485806485769056510464615266902630321079334654632441434185879621026440140826035751814683230814183541022327684496355378774484964843729383987799041260067988849137486513947388986065349290776710485034699212342501344203396121702127979266304890928072073945372520541465989736004780928687666228121531588679753208280825486287862841601955907144907251680563452757922395348244414441102497355603249705546316043737592664580104918597110994454870117847045552684654399271876259827371667606309130836591532940844624729226983543815875457271208278832246174797540103662817344529935527051675070216484910591921184076442595630056396296675756429449797090947689282193433242544922858537173994956700786432523560621124450446698394618030748570980659523509699346571660552653533951885853033730622745699718042147106197025544269153747300899753742480661409490688693088531926003998249312287869784299744451793224100755507730748698997358904469581580571462126418017629410264205216902381544325208142515350056035966187549977348104789835257760969828822492496569820603030341095241216331248865134886943909129202531113599885514956585719705612776358195306845223802872690730102180467843314150197211238142778015933281732053920091086794053442562838813921482944563125253049299380220208605458822857953146088057850656905206806125134696092280366113861847211883210175725259040166175815151897030553972116644118682611822596733895296674379809217624124921466454118676402985454033914876909855802123036006046317606918308328937638302609416528487053008557991732560551640665934658129301443563229603050007696621491731090257109524383601802344504410726445211067588095041148145264009275543983831711092183248052501514307649509411173490429376059406170561063152377602434166982605665878751519852366664530534091891376771773816362509168796009143582870992925963360917839121204852851868734096626925649386283551686298017080165210200132219389509337342043362123195499535558877791985817472275131506029777799064314809081514900169518607187655011062101069566812742035812705959914395717456352696605298592247781965706656488609008990665243867395938191614369115967626095251969654599134675269429822331856990495878440973530256560363388454190313241489594743108615155912131698806293100149311773423263570887398010405507023841671682881583659450353732304258095087916442335170376328828216205833211099456164453528042309548190513012259235937970869408385716436873635667325775788220278297947290916636438243540689673974173678088952273070576043258852906409199436105359936009045991982753027555907784879415415033789054805476719012600466761699688052633193075258639222309304875275289559451175131398050945943473932257546318637990915455398159710265917568527703391161525908134942622787310353664152249136336040622077205338687669370367237748692014112261469278257030933801355636223208579464601717137085941449661318211690491129788586952431211451337241892381997895756157654843803179661723734747570460401229387339988529013669129792042323807340039564208564570310251001885827927687120235019240709062718310012724511946337307689375072710335921047520167951438480995138866632021464579310318181500902316789650568534305641733627440892378966344653216981689220572063606850950397030692802007450126526326485283600213945162846557998989967409827355478644593444485803510206293471044877110222652238206919107408668223908128515187337277665004011791486926143237389719139356970974637148616517880628164656379602842384720425935917446844304150639053015749554257346068667314055497706146908970159735821386172150340152726159125807645021517826881317936834461897305575587011932122134563578137377409369857967624372555766955975657910591559008156333702607413675908394376904909320135723293379928015699144703603793258701612916845686687408893693559097456637183531087664822090386330400963276682696769115449382727651879958147041089331445895891465813251961617681030087010163179224308782024531793563311658430365901568219103165360727628334500977627889369389671842187175766136681181810953541673499850216253495095812753728023682801482520030026445493165222574806591398428239065718920878529129140327047143960938253168014816390691973706755923383581382215098199598022506631078233087137863280717711611398088600140753766076308316972411019834385038639903633210626580303842677388149798821244765445574386978963288424701744153962509744409171100359552006586593305646482271702676837024126800968213987573460461679659880859706809453181401087157052257611781465131954424614254087827025930210625822069783393104777765569867748949655019759708588578193209955975037458408478140695778138508487284865965442349758884934746144238901039633779698731328371909948664345300549585462210663246086403731037451587612265631818739294997694422234606683192140352003645055213536226562500735610593160677969091837451912497342882313326395800689309471371920634172150836299086675757702004858260806520694690001227841486422514409816634891512975205353287004758969341471107624460507956004779690967052331027872536330742325440854348485516437459515974099368438137492167947322670757856214078173035334147656781004907936810503392176638416811658577594217816193809974106028270025312400931055269241123109736492086101023530877062893422312459518658317092190539956418739960148996037695010414172501471523316912890048990229321836372046453442043916056897167577128936222910169178831635693572276520392093271819867990545180173558932247168702020642268498324978142980295477116564625520199067805089006611052638419694946099514448438576502361405903226780904570625768388054628499702259389396795680672860950089515628167638080070001797654909895505820053377597283145144711982558526016935450494648335962277191107274366132125897699122760513349570554360494841884164265543562804870037242120169352730766713922235513564080416854389741000388686007758265480441384801885090233255730233578932327439179765183149506615832188675380895262183275465020994942112267874928443650237540826432207225114235384702759220340331215146189512666444644254233006707073344058906448724554413457164637450502413544482299527634193441316758508758358312289292700068038714954194250653339048888659769800768521452409196088042780653656311459728809349094803629293565692344879542521268298446181248168826548146908577651066043919869188649341848641588934885657068037072504700395788264484454567390214990241574492808567307120072473781740514805121738510314133006657635761778898311556623104377058320908715282129124404055597151259713899077999861910239688233766610719126815857418591942523971665072745507375237495619148691207973217789854746145376720610098495555928445476991130283100738925210122261637944635191557357246026594807186869728157346628516748832924979153933245329234483614551010822191122225124961368678848547314037382823112602551619235478119523426365727966130919665006065144088600238404038311077986867795681192747900189229228072670829488162732822331096335185012739918662486725474123591323743005429728022481987748286948233306039611691956073809282852176308316640836692784560920481675630457650167384611079184232335498509839597488373283867890816722261409908315371626715512402278074447350599706687289971712175559588034400741048660797652980602194318001166720881411784975762808407167757303994735749244104934117975858828181499339377126140901542351025720954671734779865436933132288980663555510693993126019732135312630317795040382478412890142263087151383274021611936417167692872068666027102969163568939132436221084666130666014368981576023870245606832115859623635510680018268130292714464031588536952421596234013083632035971939823470381691609891022092058230059324359388564731027369902884169010136902466264484685513519482588678275174358019722678723303507775983294836029478958305851051532034921257556002974298258306627442726528508556108530085280088594187312724208811377839722028331048971444064880696390475064166510641921979796981776166251847265367351684673973778177943184403832650823854078280115770936557068310911234300231857462730522346753549469816100425146008928187216493260972623783053429173294370907893383413509366141995708784301090851399684271963037273923014012228856006488118572138376807572707786193838429935688673483076516150027637607199311469656726537088489196088156626306821397335763858438424225143320009087880213031354899097075022869299387258837768409250588865882218647478927740870003435634517383145448157354672261787615852266542541649737752757107084991725711633055309099553195433455948881071880663844703248580520023193955415412536705890893990411154375942599435459571395338522639455645792171436786647632917206785781209937740116941194427107227990866310445830262461271885752000984628707421754530174596281293873681875603661026222566141411559694942458634424810268199968048881254618706771385899429687871919376089876069080046819465612192711269693456829778394081826961350611925009322796005802637083831641414407871912550315317259867148976003149975424939002772546778653329766042841100829798120095184913620662716096631242391840195818335033584808767634937018953173031073086803338898825066583987813536147982962521174573768939836707908695507300619550183009859549893005150181798260514351091112123730332735061204072158003875792978252805587971746900487489293734655447920105100313024676968863175272894141997695835236751939245563556921888491009736332114487718677975662038722571739717351937644514531661452407919103085515043023069971950422881995917479370349993450781473256654008578097464573127361899242604270202518234523055585992187152582428265753835516713641814740480431235917434878030609300513031163873736535752282852028557639122752850587517986355043185811959831996387070917219187248302346704615462157695647769158563999804229919149894948078615466043436623258402995412058774591215627398484151742274243045838803579709280875892895389331660227358980423015824902175605744744003498914633158821904420565471479067486302312764419460188412377339685947399680347342030243840914145165382808740565327173879469891505676520180184184873236407564790381368071289960077345784496485903685456877048111703511143556411974279143049454978886090570028063928929533851956275635316508311091872763955136321096411714062664836900364132434248784089107737042952577740439565306964372235714063449956498501784181034253426476598962023543468750006467721777297283522255885174179665369505189159818688428929579653265959686156652842260695607228201136739483367003486265940635662990744818763988502201739871386217710971997162825114434030840487894562659831702449649552279745488007533407413612271506114748111940182278179739407560221415112211948058582612574562262565693764836852268516804251073332448886228094678065396417211904304505940400049114212584142055543811657688137981855418395434360830253993187342396694612307634590137997995090972993108382138654527884149873434075140582590994710992814396503774730627947207127656360426402002680297899127292727483554927528528589053750603692973659645125198329672651037285129045551118076474784983434071292170089141516070569398917792317629616860302797138699268595965024927103913409601795678713596209458390069043177545232663109155543267996013630126456440641540513634475737109173709012290955739127993889195896928806095336544990209733433533974925050604099721928835771154887646366146106187828001168329773123438712584344827258917350364747456997812915497455210722568408340169320896543782153195733164651050864436445455972970676445844140674708018894668421128271591756163235852834497127341168760681827177893054699581247948088537357167279233529366182460155755438741822520434654568196106918844794355043868067286908333434603028706911024668032842223771133235424375592699778457993651213276627624223688110057139645791500990544362466719187226353292619518376079851834394574344861541893980490353366258388026118036625407301114898038129714102617212304541136834437404581428199759302800250205832621140985511426563979257760675554588620074662094731796856341582126186964792001412107861606442241467659228422861392146390374874954168075722503330165595814973879945690084050888629743600397902690754017328952049166848558479224177900066828959867410463636292115270140987894495944057711687173380380079644213153687109721275922985062774788549097994821838926007325539896580580187705197948308328156793819525204083691089582729900112433490331582859485231062763539068753247787493549446752668450303740006508409610141685798800737581552677598310875600268721710950028573612683497917123247575028674850484070847769391562874807428752817144331914666352539592529481099688511785645305719414152369460405981719149558473650725392553381903892013095540121992701134843082817285236647428873826976352280912215533521178750778158396015846485460511765967824640376152814825380195054765747044162396977125249782572894587564972775222551918609764091386002329040847254897860407969364840906611847178556379464067378726560243580692077641160179925867683007971116509867508089018923148011212336016637540307001876171390263661131384504083716466975490652348926479033854650886361772294088134572103372392088010429709712040823765330359347477906694928665822268552252082051787915657282279182299287600025237923108328776853696493968864665328908817741727386877974586721269598531557618358192844878161411840839195085710450350263475075867297529568320128603799793201433408781196854170077368690380388688102600581650724684212172671608120705917689744642933706070842333754627982306431333156199407549950042954462507014677968308685326114435350495985119216894416601182941242375261814022630018305045872424081443035413320380396373611154690941661345750747672247373664375482370333359268936769135789526630229343628899244591020874764779994786754367212054712558017924440529773912688863453242066256335208593248245758863123160081842656037416930828802622819970292932539961043600545415766163110795816472130701798288716672650061693032619710381964538802287686021754996666899261863850192925755511366380757378166518962476989165387481027253838102782292849073824401316671234006223762869749229383052948815264827322724992245680093995361719566806903253970092576239612446958150675666320302410537899045442553289802095462514703980057687542654479197128887279176063771794252917601006388466076933264313205790173834091629513784657608783750434248498005131450253804074612927937095263753054797879290592415744238382019775629395229583104030736895511294841882156825124758248907945586443140779453893053121609333630092654565191573194559610231933662089060585006701354394411948623295901846369370982727178554652677734467673826361558336857460000109235306026378703858108403951458709811082337473389304071750529803400642969219263288140800723471018294529400601913757384462598816813957474548507142381493934511939070304741732927973313494243950582441609572960683359428628283500147513239413270297403834012961603247952661233354785627127616009443075103627632520464046716360758913419610988618467209691082092442346577276538059162367843947814591622133297631020771513396127982137657742156795065230911823482350958390499710523038433622486692730399131792419999104356435361830355539876474679644561329137638073767313442887275664846688928971810732327547069324810108598331140978935102991047839078733126041989568166872633339347019248684534451326414686804200962559991550089698722552901873627330236277807931130363075291567622016949314779908715656201453845818618431839296431967639664739220127508492265895935814180553920897968494206128528863378679748482729913070887686991471722185843852098703164514728874155277420340004613432009662715349929535881334262073283500422260038260636622032884842133490299818156370556904841502971756725457283438952428155278906811137224942128503082480428906189418728089019857365498522827852226668188606506176297263297505470615086894682037332625065893754098791346522492906410914456063422036902809385911147403212041134382556964085453070860698047080775806568667471814916207485486829276227853660162899060122624407214700617904002054158515335836601419049310326233796418478666172992271871502989138841977043704765227410133771968865880492826740008940148656487589131179554093984897820168283260243912169139228457110789239027425306379958896659425748761951251922641941172868383158411306326916776310498798584889411700743113405651498017054487962578427898741371944567272528882273357222285933743138876998743844903776690644760126524779139463628950983386423319820168520515123016841985957248836483842991989744255135729121383572602798048804915749426829696971152269430182318368899945214880700469602202761117257926973710659157997893522388172538835927374983599863349334130258163036798412621413531970375879725538183129014027510108748466913717118730178770202249146533335969864149493401558416392479352638149901688136848472962617302425382286285639218515973251446364679832572765259520123505282126577089025972330016226540453661757679412726201050829448377896813254612386675949986345863101971380183123536543545599888001466959476472381200641756799143204732298362660119765481006149294255470771802558043380730964173265408938696796776939829774792235763693236054517996970381693228669317097112312974091185527617768087156735854293103500304274901542883505507309683238447514695488265836801365736072365663053886141880339303074077679780934744186118194785326102763016439305972408530344873534632277948691336415882152735181720392874036234632024766848039411516076023505497312215086502619463093120755592908365675650577632421066140375532577573677414749597558671463223891309600271499994583388590745738639821874789502649294616085477696947895945214184346815727958409633952295442972415810100173243878553336938064418767191603153828185763039106668393235636048780432404709847803348366471660460577420337556252435782187671097568255417967459271938044933073094699743391670563903147994631689657792009179548485157597199631210603368124713293283518665755482269591190025051257061141835507835534566778427228067314414610243853667802313212308116327642873888012611168939695489922048057559850255773305495588922635631209075684796610056619924819416370242017097171199614032519505997814568796326829372427238287029469397310471252574525478661811154426188043059381408563024865855948059245102185623418514339664948525289645447485461183527233892331955392924033366528467536455391096516134601456413177310890498352325826983434481249628733021544065662245325140945162040868828927603337943449699161205276533161172348894989350788432329354807015400182955752561829650088077243409525134649081917541129826572466129721234450642636788419636775318922881747701589311710070669948195395528467407437512034484642514503213651758886704550507401590911349773916489182807787410926376587004560475358306165548815116984896973788528968170624886823280706595060241604348888455659138803660317749175258818906511973405760948351607618797141180092279808972712299126065537521277979429279768084337878246462884310706944900522077770945846165543484289111197136267301870918564213896403010109147488097149422065992383236361555649599533522819295284059927226409648620475731231092396817046730168164434351294990090975823082567601268973042473456200675942846282660039443064989937833150930023417418731760778852143454526805344888827757061985494290186398724395399342011943804396462112362928164382499404219834806075869475851810759527203854435736427940352288568669526325471853648507639292809994550298258056541249244682407854188480995814104385489854129262212082613506915126638880502145684195046688168304349273987768685205216022763148856753110485309944522231044654387047704724409924621221362412776002625590375007708220380168179576079808377629133117867890687772020395786866912242687649645839444164452374891844174398516124185503561284051378593522162350724577810153935977452112124650506929089625610872697151583065302192188659813208818760814978131328720785734286368949229920420346962936501028489236280322079429181926006761965907139958003621254858506936941395480228724700082427649636320506183861818468969339992785044467037167253823337579412939836146070116520124728232802645442131424554108319419388007246355660452826962430490549253454156669537241834298950049681904051563085880299036563667766344128889406372113760993093163726873730367317948750998228520136847785157697297718797208507252027070922661977626533247615255033212755462594359781695184713831970566095934848020498691378481060169135825913145896515623900548680184857852723326025278092353762881702249005444028049032938356967401333829042373780739763918346837402159343674661201687403952923288322734100953924627297149736699355900795642881825651787678313559158803352407142204710958678496761031576540821127234173694874661820397422766639874917799496078386504775315188313235733148829013892306959818425565266919379775284888115245428176788188961314401395700368041251411268794453537347591066524297423248356243280655192849156745943963806316565952779142160470842683317421099038513186861689807947044108587329335915222331079596860364309694689883034024347397917547198338039848858576549511109523633185598283639923857840395361460619335911305638899426638319064616566967968352891329273777974057429743118484535147277434741031936132472533413067945165777544873871997399851608795864213895817241150262757953000465525904904815482828634272541261020794236849255847175289996637294798827106923460262239091148505946921653410340098250918470305297644094887517993934657941329822399811979298764081983964832945704058166263459344906730076604745767357214790081822852512852724201066101130257569800608325322492109426712472737715407123123997321343959384777981206844802536310837179881076549835278164292619908394699531446915701809662689240369730122471114860713106463135608965515699495768742246415128690872541472253125407866003489680233087894630307965869436297264440620209644905375769913570945444662336532772184292844087672154938796598923805153565561518441320023193939822633671930392739796441560535846708218519813725366241583069426620641706947515568430088517988938482361543584577683810501634918775733434633911386775280040239084854373803924545061430136077241292328385737805513815871685565230465661501829196330749284857044975798063566365360041710341504494202127371766132431899561532048229143019097154035302468486802627032706775215731419818232262895196753680084415822206752189267434149773916315118194357926348077806174508986115582683503810412542199594124866842031332620180751946978552327603031393365532078069401874913173839507793624634952863346958251289020238475853703899910347519059502738004991567842926930625411540093374709061162376987053904156167804743062950692135912974733091969107290893757186754518346045635113203027885465700400835420935990255258197492659627723752936992739489305376099074378227539423456607921671759946887103479829467301807381830376396751808410737012034037747160484440583181262015730758835297739480180337089602231062900567783130159024501009675388791738861254883638488953610878191574389373802182020049784939606070935223431752839032305251457971720131313971974526824820851668876657694449695258497778223739191859684859082781109517412247129748010488668036366006015895454145883141994253522078299852130361943576020244335254894036725620370310933820531429472989307257169748175565228030618507081911050434700583456947766694480830481826115675497705418429631780754378791299590230947278705664241960933731027751640962925296283342194614566907531824138698254461910552294247511159321558849763482564570120460057044283365854635275239415411908342675573823267311202619674887793366457818053494184596050156658959705997291442863032318894246895866175141441569856915545824067134793448970927550654132906013910267286995782150525783108924448849218963593449974807099318878983265245023934427561544484504141932817138242893317075095659293875738632225735640442333244765318308248226055158924585419550594674350108872360122473928893876604249356188102578758046489992605124924852782274185998161665500782565281711185546236130932019551445932418838518540719941885330615034342385376617901999703248259309888445540564193748255784096078813679856183153531617685993309083306417736383111025616225087064935448812674822671652955656173734125027330396572482091185076946180298640575854186197289171652325933859156109627572139832830372469739501760215086505158047597303983383846389389278578063328372161530873476620506006603322902272865846657893231279723678575091031694932828803592894709834085704593117064380648960651715039393655006138733781877458260029218767953654889276866543064604797207321694850705773568896480041645294049218686637344946738023274572049121487110468577377152529239046509374043535833668469539125978213669086651677267560532195697977775729052432981913348965521003344631773640791480464304052665891108623959505664732082075653321875318433481893899523540917657135010089357378629737420103283355012072006903129154262604496094540118371563183322808892536988308895367024508221563425882222140375902793034920636730020946335738926114847470765973096670176133249891700936353652214681150353655599934743741852623045562363363982723273885838645525844663373405260848047296135410446731093149928999358363208864563994614644384018505476996984785777821365201904436292401106933494577151594293236714479563101365103412415731468825388560084769813061225874300570142858684350343352437669524024876935055111869147739597162968999647868129342218670680776507202245239987252032726262267518574536859187830799070409942023138179155558102079079783687411773421001136178240097348767424613841007485783523319012166492744637202296332642562715691205135273034586528613245680358529325497351777492981667041922141512435153459630416967438109847141579389489978751338585239159948936554815768279981774278784181312282785953741245763137174873101525520594666398695634380909371855864912780320303128218276506697581101765708934366796636813339983468788403039091345765529166112553433266366413286233635268677899146512102532731601143409699513375185025535233742903656208689851685307316085951287420274714730674942967144957365376350399541904748673462539046742049739458336622545003991596744495273792915557697915343408924830505212317664467384692381942276194988314008681102067568846093175399019340895766459273338663189127087185115512525355520685933241543875916542491476350578778978173019251233023144101513885285026429598159303421486554430715948854470365325181546139397199740528646588103131896881052130198959498704583799134418697146997744580534003239112897717265783547304554099332387649643691570084057818084213761258839042524652374874355455052803183909860926789543095655085691966497170454529773137738382184753223231563737984431446226367455721878238895662207796940223594078303274073761961719272453546466901234483564063393107376170495655890555427637939095461559930348339305804840619036842261258856081932871049131770158732884326609018952157735018135138896291956232795109122512085729442866305083485536870416361896388824668512099570720367194478948854467244159989816225897522244693938685190876863703579842293748701861765546212875839617086938081787463653073147064233568214334453242313322875269168799335822537051925365362291326487962477010816504723441357481435725729064590853929949366820936688212592104651956547229426765804478195832973161610937850304332286539226840405777832396226221735182318970888610581486297564020414283934700729123575089071428983701282692260622139996850260879027334467536662532025807501654356048696229333655610930766175875160086396571795648660664294871984508067214279651697815272601576448960112348962013277407025846953213065488630556658223707139728185725248395309064973899706284208537063768667970759953130551511227945058120589660817882152709582306003755689769796291213916731890392184724330912915180728362210546128327133699948720133290114264558587965547593760398806389264439205464772739134289998640047506858918142627960747330158450796672377316160895509147393004040577676518964830996245485166826992224420446769734709010348374481811228852949434298824671346880755350573848722100453546723851023434503658975791564353755262621254846692256149064479192807699745081197248251113507219924731073975925149696480443761791355783742907860027857731199397586734223917274469941098975547101021076360133057100350069324438598509213493902538755323359300527110179514747690160045062481342749207498926304287877664064748485052334213617109998725762205280225436823759871016249967411120665129773824385016474797008995980761978419836979391105251530789290080778406338502951068213662002575125124893341945001771277204683080582014601427689366243477296168444821382621532386804037359421173016930506479516564570722263095353656519257289087291593042587851884974804482189343261237162276185653939158095172097407573566812636801815387695673283467042847900610314171519398674316782897896259373866906163694818813028357360214249319988060308691924258491442974179822402523460309667117248724831681811555255636669124034046168265522786865140956256490596827803823431232947372259665013777975772447018158403834661115040585721983568204925668080217100105823783089205786345261823144194562392854216900724255547177050030323728087129258635184709564409720871371022785616020799866020661428251754583297252057267572372005664963105740828174090657359530885927643950513616710081750612850525131205906685591077159022384454884782153092082939325988608982852710543879094943378931573223882859846273651336412969008439889468985053555691948062989974870181684995267011485684574382987731155999635672965497901946207864417070229980156622432993968791508363974163743465100999593179382217808715858918588948072135795425715326719368086756533975683780945814510666615294217252086383671692808212872243852735661497365192582058670414649791373913015460763923403678053989738692357620485482860019605126946250003077981553441777077772879923740427725398263698122001893203646631906488923550595039688966291628237382896973317394187389799484178748185678010386417918793592128924630439262787385779562207320865403745605540876153181913768676095035268601092869877298054040206154513916956427790908354732900765123748124595896753147268954890807022495584725224712734184961878754145748367085383363275185106088326937402823699568006705567722813087892612221594166696827957395922388448845484015646238381971202608533884182252646722290944228698444950119857148916385479202418955931908389344640774857421198534178654921311747016002810787605852410476994077129103224407910556362854792669183853790858587272820028453918208728891073663207694922438054928613772293459438739128639975634040568532219894161286571973778055714683172271232537207544382376892865397163447244588550375813427232652254828680381973648241359369459851719652004698743849449889618754292049409823562596568051468775214734215454273132089907737487226529824314308459142554818098875668434260611794062933087591875851732977681378413064159906371732809505721243199767182518426185898703640869376603464032582379109904499282242321239895799724735075533146729300382517868555714341654355975676904265068454661709118331649096022733456096725711663034608149344386611057027642341842643866291744202692478035648038620842704884143591250649361469351327533274821397149888334899896832925041428151062454110489959427544673012896200760656962836544384241053389977916708706904433314102617619953034523987816673205076328266936176894640656764477890213977360589154582481238991739537974846891880019577017191314975283441551119029356782179782279456690043352227051807977045574336300887896624195580227154381785641660166277116496922028804714596371264781702387395355953113859125218227106230111827425258522614871652869850051325176766615470877630299677609823212656741434288835255593569391933920071016523917138689700022186128005065535909173287003140586577932683553827935759946980638746214946265602013277787030021157142905602536672800345841426100769536334545014653517155023898605612313942368846231306969676443716558845291849982542784646840156003020808388735424829121681980712867887967268488173702308345541225868336710871070180951914096148084927877210946459518687250700067971059205829346269548978852450005443166806495840270604677199091411946364108539010755165674304935195963972831887625365564421443913907722578633869962318256623784906479647804886295594074358407170567713153308622825683368349223005578195980480784447154176080042505644647121153846447520462827964810037221857390515168126939247235794600168616014867603549803838369576301011388376167170903571375260524771784598188347731805684487145078446625946212258602189864528280256672335240828045571144278424957691683583152771122712895771475197721471552126568907745710439036949556530671553661291798480703510803763587099827782206060738215128249283786178612730370186060712958112683239714312957285580417679686960188873012523195728241666618012254258822991809725391833000720022942121259515984761744883810505084393800237887269122397036884701760594245512178011437006853520756971756224587534060105273701773869742834884633122897070203567727279310106013455129177779495704022614454786541851112375797658480408964615610755156884447624228596300734356261229499863017555327369936246899471712999951205660748946367648311295731209262074460866765604908846096922497223624992355901670274830388466817324840866304442753170597864049372012355391025988864797292271040009105727415399933148687978596345357819546817877216636394416549954822681702614262513891035156367308314024182021499964124310255027728683510631503703727488382741943129216511084583764368114338281704509508339179681031590364719829251215452658521346547484313562156692673851044915178304314972460197449625877565258600082582604973581441264010594534623862482209209882578624737567521674392530866169493793590672791219864787087287446572676935645313127699285956110404314944203330981590941651094964631379459193141963643750728386862510021740086511720745102529476852977269173367605914364206879641613529927641857845027323678527666403321580120201890421131248740331527822370792463128728835663495094946766185544823691354132419129238132216906512728995349021401610956563604371102659653419347547254893534925949110849907179866718122752388829838019930303101194329395270837452390077986382839564696884070368226837831163906052790953410951014167429802097242301386291633722761445489737264351965242413343203941192103233233827316787506626554416154485356236579764284798037847847239121841027884929580157935592899765500357857509556502189810630099538869173736057822749047607543344098043963665496134641779636152612835251605385087872937596362424053555783876541743846907640076840084074037584663974552977898776970393582496889221246963451332740364797362374285751839018420651438208166278696923786145029051114237384783644680024952186165389502541266830594700624913303042358763590754473449274444021293643220126367340773933738095545040487435694090178353762348228366227956423909326305604043609883642432884162878206907720283222806543560070415820227691316242359861689026672244234730043901445611142985346599075544500163476042859874176994577733646009745823779505678984282994289316700753006602933078719207332009884268863100874125637406580455952928296206149674620001342232674339901838083237536246162774663236930768302646915216934228531257172035414281380864454175754710628378514658976188965370804881768105015807944900295047449587206803618266010408275763412555261138623069969953890706825554016383509533310543288724984072798176956998115385386166742641671890691194505440998654852021074260797886055863720764256665179991315320188577325984725576523023576978386266331097415501775795264010280803073316144112493942716185145588202127163244478078448928737580967572261477214656103247245010714210161344710019967753471217476338210669394912865840285357586069607953243619637881855042281745800495412058121776651333358860649422035731935276651355938697117905083499715077930223721448056432049281925153628272020601329704509620587901630883993175355999329906505179856338498714092649491219617337431438279027582355786583013872761360200705874719988868023596689230346644690032915352369537831254194596666110380236710575267601479357825187932240664082716710227659775885229761636624519717956054422220206008613425905804710246234162691846700323385026690740014427309867815126079144385482027876084742343368889509999629190661547595387137461999560881206826622236188026484668716720534989563196554384210534296701683667460099929547498913999978606114459584977127349944808826386292800877011576862638905468911080296287617713819570847922361705407446870669040947734046946682768768636800506146430530021948233581789106603441713522652674546640113625682337593482228025024228993876488331023566193228386480904905188162561588886422008056245000797869443321589079342875875139557346556969425399922774424402176121380496070298442003278066065003017830995539242759256070884262813927231169790528107215444523812569756824007448797146637490907927732391888951613982849221763316134203416252591982977684497524858718325986660419868725089328805643409069520689719196809845663803356461246857277482413231801079323759263505139418348044889296428521711752681572492244583808659810534521534782052408639876287033529015613092762513636196003918457333947020228174826335574465669065398787745201427318303306644682084235826267458555219714307663635084015844217540620463797383972143033852672055212666965262551338955931642204809416604042220181817693553689543731849744507200887423104858051607792422602734155984628427192837557189962234336497030354513040795398310507146374462846791471127157664448173711161968430332544063503186625078366200169154232761723927213080876602827530120184091699172030430976985385612010976531717411898050159539675592921004612835440656117771765851850420065804481709481079999802537878649403838452867915886644235886196879399198109783493557050680722412251404882300511357351648022047348656836367009221999179050644090055257920114611973871184956858625933540398775221488252556131340888056453752914113802172907727879963245990392207237831167791379616436642712166678631244406298816388016743304087367003795391467303595758471896608046240462855955991401416131081760188161064827877909337292805560286399800347259556030154370141476140778720179193761954191432432207978864473465206757274667546036486881167225869601277610497916403656495049980054847807365459688111233726813359619477449407981743449337511876738773312290313072291050578671620671405942710805193857186340921004320649850380731027638014021919691367523516779475438102447587429811918628023736320104140907099402122739597247408566095633962977974173697495126744794525107317597625365389052359312708900334230603620848437256747031842388775067266325278760604280863228385218688855872281073518695463859773988879875251392850334844717427243395317933290401755270006995308593405258552315376876155237727554481082171871437555062190504652162821470022067991425994550370384829245613784156490688537124036190381681506274468810367172498235954709094479543892265828067181063674423499791286546815196858502699339837155611720147131567918043881358239568310159607998592441708196919185169250340114705188989560438544809183698706974903812563721032147633504193389837228231887402760318655202856983488753269287605494764044679496730092286658737806516192664330632856405913238711707105240990281147469245546651277164189622973874200332197557978049754306136697590710424464816661696263747811681079819719574850565349789443669131448971514292418755370219454464856556469073391080563271109900992542846653803972024757389114514413740116084308482554607896685550697148021165518345309636937327312121746647442525799774343664369855547259320882463011716654752350081319569723121346346782190085862851051214723459671179411080560547301227790177060637275012966024102893962147573863483356884065262488459905017762569212463928687554945094529904962084015372146702430505772890084148886250373761499314641918763991371616102930927808120261907505338264019862061634658113498757097275228429289792682468104947459875715006837632467119237418393209443533444569648209984721026976202627108421958623536119838717235244068385642598519658647823953687893987710022448162544048165384373718122602815549036447774715632132204320233032167905650212814473368064928764854470868262205577968045323409052429817957362415354158633748949069427439311025731061271799783649519785414583309393244279516590824561291712964089811438864749917520705728204849750912782158246909077066692632966376296342431924414170630570916520326072924712311076873379653730041315104945789663446114595161944653273959355571710171160594122444630671243695623607169399745958892334093302067720319765009187331535448371966728844257021058726978018561493148274380814614140049189116300469720571582900259935765697436599487478808024072061712670598807866213910167055632393833452971106674953162449068507340731034744296831284078975326496510842612267231751436669626488331282803506421536268260011372558714467968800704388673234315506816875779656765298561705359088002288631407534293557419815236834403193773417050972087079111631627542188450580667260462387182989048638956615003802592096950699117085023052409778123333479364440190964417665632694599264746040773761341348576371001022981664556978866320915684657595842688768383722167515195222771603784131650001959402494935868043116250742299783430741253193764054745510575559769658718933530679078193483824863200272864167944666238017519040608186880925116270718204590599169131535452149238858331316021640106398492537694601706857074842724937348090714877054510969484222108996331349967070136180851113324921676587493891398705140072960405529783190258432033528938497608028454792741315725333746354988421538596396072939835044495602305131476847279972841400826157339967223344488363593371209694603558005792188164299781932037362018179590033676646200802590981313155550886300034052268973135765873166078108099115973141945097489139330134526075454968270353654158371199558124148778411285683623352454101429439988479285556936966192162223563071906276956245303437838283579546262035365096169274920297711510185373564083520604102934133811107871467575125526163496144624729340051155359789161150159751111908754624252434804243908570899237989234072403990033598958552135277631000572558437725115141685848245856705070107855399052841672162615292874899171877653758276754702292125043146305241426562759734394044734857016042439515827091008853702224593265067841347732019169123640522355440057275114873809161406505485983089257522568287732928918669401434069934851236397038373453136505902553722842914340112428739468879682038439723870625206017137595704409656528034535105689993363713835126151542469220085198843083479810327647103350343317621239124312529162258603413632242115917739131814872236528142054064538753381491284383957013205602888506175921795712769003990577011689048881168457544024556133633133458068356093232909514444698834631928741703754632727756864571336540863415057647875336298738395816504684098586682482084075982430544590151839864832955102609758898577699112955118014557128038731661199033046617972219815993243886890121298033810664263322152355911846910026841896758458229490017308889054359003119783720918069105780150815797157047918969501939197168156495798869055999902881154676949983989636079826229436027425906914563969433438538452043169065203833182793287414265987308134520366940346921352068947205162852600437528502027337654717889193274490601302365559596100170391581555001603689491704447395536712183733822089258851703692762415646534319523938187154719282335600217229012881993454127942320019424375997052017250920089954371102234667905165747346441569479954279498257147455145971130253776907720561026465548766380284072970563530443267037556214186034081367569994817393284581639418765895543877847053058471426017896634311978800697384522368191456655622819078890263612977002327063015490225276338206397189118461157266330778115756523317143687250491385361443579712275146280836517218269002236766320049808516957780424647744344722590523080576961248649463484546723579947497772810704503855276515914038233812109047844959549763932552398667048525642674811668979431485941628325302912110557055315504693822259167208760080723260502587977099986497799682617901582624750441619937237945479302392937939527499690080255140140686084394970964141635044321354427423902864819611548776525937193142671298619822910323364376051149177639771423023534742964272476901621187293300804367102283270554429720954760911003541082681795943529782251333061529281355661734568233066120256003027701424532251500815613600330372095377721421146018573446985993336898357139433526134322154110060417653662636390725788108429475291750561108954683009795178015095637897750945644166486671853998529630976084822495878453078723980447092979559484596398825186411229987861897439065564603041170166611764612554111499514988057475825765886744788790826265334185642448871129548475621685597673117102117458414790454180498806767931778360767634531595268280164608698056411239145176545270809761635129881165030279481087106798570103823349317327163647034101296822352582388150323052086020524804386480014811265345122095084448854084947226754805683331763122899485713415688956082147549350457744615414391480369115090862929985037001607705501408446078107979450936333136050327533981338419130197896962625691222970649350428053591498327435808096965909050801876781630911948914144022749680199815204376023102604364379221871365660752947754611219079352451144790521251898821108948408288821013578505947012760278772541986284832148685870774875129025038462125319472016400593658398112492573708497652522070321341765343178315148257183689362254885824576049044854346855121254035477219116871212975861669108180568876876209605856136670750047128940241768820528870693318007047503314646734912123050519603146833595571953159347159932829234608116500519429355090260432580626339190340538410664334443984308702770445466820852455380829424225398526440542244372102153599396876084033442266474985018687497644503326433079523185563236000564002631872633168900304132501458672312436506434795644707767920852667745748521907610407071630636950777790122554036516871399651691034705761125163426354639394951193911601114839813646905425612360858472379084598122745784645206913534529004869262768010533127157497640622806595096189929822636574819240620206708453645873982182358691826444953836546287021787203467270165002660090297420934670425888353741112479968288538788989499804243977643874123973953361466463727736839016827995765445802128547753235347234679585926599764569120528385223682823659968568513088653601379659275759083368548432952512734322080972867619054804354293599126899159176771502736333442188293976189908932408494272779230471999037683927255843864716550127536618885110939618143447700362011078508394532244594035055264123924483518309970187984608573366098847724225554900713462603717821982022770981934098379637546481051058796203368810336255346616942207788571686341945266460355869598777617472068358504948981879431391297899456049795366322921378501376552041302124451303123088512691288714523137133683272324490878660610423223992388898224563593558935157784824070599663446436872850217128739719780933086234683463838257269253313546801313263208270140783209552716721951437144417668713554275065154552351188739472731551700671196690614657961953920859079217369060016854875965639632363400562079774837502085658343251647606425700749160384593806211976970612868590634571703896366074295750685868828617082310122017583517650912202295151907051156837333106440842318802934866035083925276234993572424202785895317181221979078647046076081566503823354751259290208345678349390924232557295617354393779492840550391790630367614433683959094048359227030389953704373998534916578984276959857090371573357968582604535817983634227024175376119035503595092557263022724484659586272840897696020126356692219965375352762779104423111805945278731700570742178616941738573656767808393520956972882623215659429738462939265806558245418758377260479512987331790344546816135350133334779002179620377044916995797396332272597800586827276322995118623589936097817964994179109579553134243534346934920662281381719415399949333260561432193255080646355353833444218718791931131861179211554843494055533634800383866177630529741487223637642751089525517746609778112678060080588983536991800027391938639482200002927355734738972389730423205888965107701684131843024033480310718988166091664325326927706254580337556898613831266877119036020228411090099548376959111202932326567645368438155462584052691918753833252757259959626183424335164430584862061856216679875260356841627976455015534323996169094642062985545693006786988576611346192968559744307392802573407842447899819599119993829977467470605639875472334796089180165164196672068159322426035754598645449507228793735365494867133793624906678379282287581624925302057768669516405729819561467345515904814156334925257522660038766905580424217954973311442843223313702152599507512415873066169479575829896733637947357375043867302595636881163659140760509253407636296211071403361824995033044139736325074394780103535715704468344626076312257956647518920286665362831066735575542986810509684903018262062501694009945633233188239375505776361053854773343248708439060454091113110169757577857163998285992404106480474278406681779025996368449442338034603798930176327725290644159772916652393746687084659738823849188206246745935733816916573384299675136117846745826386468892115727749098146648881164093302128672129637080977025529766703078817090285145713662702141830244242594096199368666511164502246393295405008031704544377681909431510461200489995040476496966969737777676989889210313938792850688654917032797757026650292191142171558471840944063978983461906308083514582776702892910814436876114424307187248867762997794922793087067923383342716975296106331724893825477602372622064736891904989980282973411312293096212603205426865184834028150262946955247821338685082632375349615086536590880309914921996631328973971412269000803152143157051308078248637396216692601364860793327474724186094454402363704430972245684651793130204231175795123976066264628826030418011965425805255129094406704513275287366835346586817711618494735478523391495704709696513287521319795644212396392863630895280295805444779172927132165863497563796452358303610076952377489160829463229761778400673244572958091836916965034461301292680632090748839186638834023478870113076225374382894833822438692152421724716246331387248038757336770865251505762508925606234193591084669628149306765107873879479042641103639293843421734307125848178751223839291932893988151980253991369881923078684123222172828276486836734510656442849345431735504389387420158442965002484574711988100517155428264339509751484829614364138651722904118120867477794315238144889587756242420918760335801267608930041238573561210952345843976344618121108079613556236303747171294925264271968915338201848058004854544839718322019088261870787016804696083803076362837532571979205227386088444991539010302787063035780461069601013515532999358424799069444621802000601480815266528588970383845919494279476835336439321452948068957871086192811637058990081109719083385168954638112735954218522543216476550561310091192178810189567012072584594703111841773469553371955061595413053734635759427061395072453809237766679359930249204350418360282594075890692130980701799578314321917462685128916926480385064095617617875930979188828844687499902899085121503025284162138678999917342082811115847853293919880894684874689868941722875469625537614375421847828604542773337289462865364827363873514631853015064277640745427508063746318888763538507727252047982488893819266497222929373973021784706549934177536596007775124402979567910080522806384553084662927859461156788810234431282491291370070364136633369682977992517164324151404219065041575569133214808671571466865038184974334667772356815414362574521712364342875829307897274948316536756719114971022458840030514206195410107356282407312420856024873450512470955828249901130157073539315173927312728746122935866340464368366783555742844023154364859131581565270561468513829395764473213711701011826764893150454557495610789002255332944832396889850821227064973791753695915102888883042061672910465779693033676543833356754592541496167891898379502104324702706303015257228875870542121864905353038778873372133807629301177157598212799228549942531149612550596057944083241524375884802854352271124056412879900552492927383168320018106750727650356565790069143660256693017443506063939890848480343699177878855094986698370622488900548612855512569447454388651887217067461494808105431610280226969816007721478464752988663694986864793908156355947981987770137613566684263397502413504512807976627655102657016456198503209641469820364477579655187657694291348723504520580502092567507444671609506401246272831170130372557519757521050533818553270810528407777811196383251865101071985434223480335716933942862124352345891124930121415794795515222156176474735960485630189662529620474992024581408145693767185655114399030803140307289673759970368007724856283127877760520567572610180809631844451316253794155126682662808051121457741034884638610389287659396840728542347880978314129548454453336039208378859813618803870828121652448923272521154798779275192534811956906201458594686840062198210048716963018734001628207767822965391007568794484242254556214404446266994400704927622608760696989650527656792883193104714045441917188783415760637226725388874719888603009051748170836553550981719911990484681483323943556816024715787709209341577955065379641359385307308607997594915842109619139886487567971924158437550387804672812463970690269659177285611483803727144070768030618943964759806878900647708599107344073062606512335027603580687063162497151846130325787939184858006026948231181041136077341740139632180795843158566041148230481831848774720666081471398789495363797778122955303190713122215255562321850728727745123338079525861216395490057115526614465083415830405566350519942532684615455706415584747286254242151661555236476170563543884666742039524234430706361936684928339079950402415691716356026918714481387443062848287684411441231549558408301921082868067433053527037176887996438594388661604469030235113534071804163082875615720654588201527039474217911284381850863335659278544423024921938064501791801341647551783774818918795693159281197351785080600328146740316699706447179851551582656417101363415243995687309498750171691667605460605550119881858859749169120641221755819763116340954247478929101471479985004346094044009874351172960578223024730141858738316401694385130039294242049724075958019768572776124987238209770698280234274755224101864004295661899917797907194046074386644869000298326553794917364023580923902247689439795737756530772712631734531871517157484347088261089528211521245003659540401368678724932613891561729693596661212141936806246602332302761281357186984563338444501876555228080138944943282251357753946415996068165172781307369269782190273881263078457039710314133767416574222874407652558908816960843684240926256598130806460329456159182490039615222341584766435638403499761869809266474913986104277240185548950885647746603832605215220037330136783466392550524141085440332190802282485246037874052433121800975323383138664165019870202909502872035713391477202923265793332437928255639921334629131593601313893845791979523679672052349074207798139381524199576647537327280825502019177911726348824786486354669667612878627897335671219667819909326666855975883461565205326210103333583096412158902390039559100870542213209707193731800306835521821913232196010452133573508258528820379834993614721663601381060148051997379731571485268753012345011338312536957047716515102602765742160533719207702433927011165577238850447306048690789916616483216764594415780698462847849405803714644168010823869176057191402598853798860183792910631869127009917111782769348319738485436410824405306190541952175135205318197119321702198312217946296488234157550142920965185428136566189987512268880922755478084103557298068180147410238224635728789014447024965391434689046429616452598205117684339200035389414373345963588955742181233915659338067003279697666785406490316690910381188820515947837850716847467343205286420735531543299133010050681791289175294055662913788612584158443029832480295497889461342650788295826609483717254458003837609154900359667336473805733222441609129927640793269640702625277987956584171702491836552618931340930206087487123856678453148772506629646196027899806677581438531555697014613884431252956840912019449347433981023279034745234852920089094985413015477865457716020603421887734211755821978783008987538260661107074973256906392278926392314894017764094215938499435934122112150780695488684945531994245320592047844010546908835022388143659731905753233513598003588159077293238568082955824156641689358667422379683170297593584685958024688591664398362404105154285259822563310740672659882110105829509265774497555485746698342945227868442758301452489809035732056768296226234160372597060344922233095147920508837120966873469217029947681946622590388019362277208711400271716468686450897662601151346817572046470396070760187130752119838849417687455447101935342419484482833266193679090384372328948146415435649028404751772309283445552297548787810039971692420329149379233789620940211786301408894175506692130992341301389954302029086073723728775139547906080547512848981087487265294392337026922290538285998698774605794310316668237928008658016200121335264325406351580268082608710843063807264785177437683376188321236513277183573370706294109901435516188554364991031796041359194817364875151389325439767289969614325643770585508175186494974426602859948310502734566435972263545118818405480273252882127181819090964166998944250358648986169367008038553109450195255026715370002455927904402712962769612614833044481321820542457903139770007590441264821768005375299995076626776861107968068984992263135163779282177601659553917853064622661714554229489380773493890640089636503940625692323725248632735432595146568889251623634744241488144181138685490186888343330319153874437605576475820393262402978372184677484672735583176970949231065529431617649833447802055616122090379823302714432236648820192053499172894436443837548109950710024756089744174389646873941778952620251856754315716913669422040477779797590353362105278337122750495123407152652815934507003517898616959486896369388769676228673239366376166431123314478762236433402755945451855050764017809232964141265786935436059325087081845960507619020019719454769969234085435286411403349524698798549078163675650869395146740043122105405686524186074963794192495247551847449609310306283726910632606392589134216442421031124690711150201140675292031993020801771512538968945538719253276529618152052626325854298424398261428608539959321134448656675536043148059742463486733164168795355335258287555733665927829282101646972737574441439750213989935496410501117231836120944704899636954870019626944672394697498620302759683455452557990982538725660223112491352962635724726579526974031140292443087618770246590541514645051135874613173873011267754118372655375089762523063999641851043936278639588573165358360122180810268740770833251646449747746592712435972333978142477957352380597247964648931032335114962802127358187990699652873194006991728653211266540961811788246629199862990648074990439909977821340000832288269265184249048784940928948252793178222910434718251585649252839058807710890049665048174687337144035385076615058388378178591734209965512550217103322237727426171971627640266125105234296131798257336411145027362141208530268516411042046103380512793070227175859791344061158969097282506963995175263348855120913661013182352777171636940018345843683438808047571374163234705664304076593883864444051458292990652402641522058004795926323196758728657799282398227780772023034504273387460961653178325605619416436071416384369995559092416785056443755261160794362505513690799071277424084557949716923978271853352061204518139764382354854878063110913890093550673350371163042104642546889531932782412484578947640501511720609928483917653224622887668144892655523070639549088752965493730881404327135655746115938601892325921747221365685766138963304533921726601693746118899976214094419460195154726720396834655918131524586420480358323665437239081501047441930059657491580758767428335813264406929869616527954657319382831494443343733690343767196625910984102722571851274773992179687052689039342783691285440653589632848540815591093756817236223587389506853448711769006482047179311183075450563171895570203235930362879926337678952646976589392460281843489337049131907133850845847836014486834983636244049209439102668351583321775746542010354709990696714133194721618624541607441372281938076934201957504947311596127016372877524077536653739743662755421639500194610103403315906385027000386248501213336589482681828376133314280339334323070430828210820383758728516207228130494042288245936087190799147324956947729983484427929975856762283995391078586313990861722470556966359619697861260271740946860325281932202842285162684461857008500994959703884276806453820888010431734217352249895175587035154176362600701667384245235348646721982946258109803370937404821344627581421810125785284154684597853387342319432599929710577364191306178344465556023887627058582808763951304313444065922803706276470922386737270471677053821668827230221245290698325670348839187942260271440135855473013871967824337132113446441191565332736897980158334838867597895417812184227886437474444191240833791417540930560191930394330300470056507532266993255256963521735880170236435935320703398296499338344218172371356219537917547729769423310479781765744424342763790653946642599108407250111879222955568643062482646609231061127967782364826515757288984156337059501029247215146803911741023152314135082651420435424627507114095128552645950831223222213673419757918835208923049661541620351225383359452656980647630297070757087734232768648022892614708520496642750120437646650734234091089876021122018756830688562510720872965751648713389775524741950650515793477054121601421996524529205577285813293644459326203455638403268562935917642780528823121889897603912365147727901356337248418686497770493164035974723815625252425951332101891240168054213775587349066952377678474182657244991176747840207586082076645953534552054875394588606936289559321888976109281469759367662449108774650514142997066461199192015683236626964850511470497920911121633495405033847997439992933165823390469154280956479402250083401300885890918850878215105498296120180167648256781440488177447335893534726218979039904616408852332537039361746571510370626362610566638875776271124512282513233825237397333568206118077296461165432408050662939744485545674678753504659733194961759616151868482909509407685409532992742973625497965429564705368072847880983134227377831671814991950165346148079586396974403920431698299430917162132553369394595200681669589978187747843547816828777331755070282993547645567479950334154014580628688091721766883849964713088580165560019752918249026360718320069029229328622008251335976295427685298681729035277419575125661228685112927406926610094006894274303853392934988541382860758261339712241503243058653113588650211073806524860337571920802715200204252831446265859359088776547804981355673626307133012134380232097363669542502776967732010270004141972270846062797162864636875243706335107167557237601860147413087414151351293998879391157409091702953943502308688311224861954178301633154374467225964958619681852417790711608266777402424720723239543387511433403402544645766916875672481278714909838399335158008661070777245427896319241831819118052179005659588394380990557741706539409947223155740539910987097191822537047530670721818352128797401292631186580693151603176249592216711852833346333585024346610275482966911147415525476568542855468816333999421959451752355266475007124693191283229201857194941684813927754047271346577099767309694947638494672904513472110616738465608007229070053200079683869618982612614495645224674500857443872434729373477091102636517676754216144905140688342366005989333968637232026005239892671132940169451566147673498351954940830784692271589572403033196769097979650060964882803461264789872834963061859208216254113891692287415057048021818760878998550257847485162001180896889001299087670621014334401567364558304958629219820225636839851151406751925924630012666116320814492696577974458738542335920699074538885751947883885038631185124716908039880892665826399596999452485110939992486838905234255395545659874387032987193031917095004765009778833186685349329241096851996586650612856973237661291871234453370218024928526097083200252637170421136502056512154018998495863164678663103688336499955075076593025772630758306554036456444568163262691783096537360660461415118559733117348718236874606395957077800997964407447347510408749916419081997232931888559480966771692104881527503472676226008069379099391339413649906253681087489444505832118800000421139642059169320829727220500170677739631011503770561000961094850778567820227413178309228755701852120375047460184896787679887026644126130505569825466475246941379098991417604230030195314607107245187980317439536141381928175267751482768779114739087595862925436552699028242334893233815111630879188439166176779116862545525153541739127684774714656794951117887105735048355845977566978103757976116952694788144103924066634026882604633432848693979297578272045947914561129742942968413191505257732155662486855612644062771380105165576840997137032650170139500274821377814550995108847940049156628751672837622768606802370515409750538070092575810982415019174101365429995037541068213252914339051318664669527267914675604988940586254146876319746678100755957378595463899786838899995192928160106805912014357936965431878415792708261324542198942798536759993630710976813507401087323260747765557215024515356502304121019155896051162317843888550679523427441706534167735322091855285002938399775796232753319311707607958312939634818387781478384346612808035373351876109416607985332585419689208070337880152776270726141687751448180257916713391414863313241726298780761147332041865228288126843070797486831010347532610373552438071901825192515379598566225132312147565255218947557754234192730210238419165391644595784643346107118853536172792991242325314044590658103111174881210071587722293662474496805017864253268146317957017418127901663818582835552660663410333112804841286920925341986977017847877346326859439014526515065960871168453224880858363961546228386509604512328830312457205262637856042647524793941932804586140747567388769311317467456655196289316310767738965970231103287618576424559253400357325692599982301225835817620150151105880911530786735329252758739342909349116534789199064653230044903358698634405834281835755813200415234104749430916879967782351330029461774514494995632147416169582283392226888109479445589810937075891595816299548934181680539498767190930791011670497301188581359111235428860091880409298154336193975678400287239452991983271308545645822645845175353259797533251601432193394274342381116062713260681787427153615865891406435428635023068577590520910013350110464680448295434369486451913335885186710443693198310864320955441711525045994620607296431928188933474924660946402629425414177530136087347425033338257679115877468204292899583931558356160696499279393208969401025808028814351149095499240875422248683098952121941639899510926674055729081867302322541891319506964844223508076466934593106930190772438400405504783774025916171977649865774040396481612836169468612651244951933992467706490852553327636278455110335721822020874316271631926892553544551638068007361387155075865138151793323749748843150977895568709503461284956681405005728871683671289636465153400460235652760095966291954393763309339334722907840565605828858721731786299344054967814659365271336872565670078238017227926375412394912834666209546864949296707007806294897335847265755298928857561908330476643368071526011616063675743841567168906843638872114028307031292493475630075530281902156336933045685935837072700460506128752088806624725141658923950370278461264575808639169579555288651551580148640971934758772128138180373431887876042412759020783005824422557404076115696088680484227242385656686913252388139146817971217917659794169634847800041801166550950547770002410602080535183460570592656752598817816190385794949907182245466187668921795921479884627754888137977352690688131569751076469962700504773739395899445294581883606787587174938938263617950931047135079503934695145295925393347469821815280249637045247488243947190433262564826188341622035315035687527910228026375163398797577072082003024599023064331052440995161847045348978871023405646427954993059189566220946308606283542478978383353416677806540022509303265552429806726350719443586692448081636225361101916322524418050261338683560775657460868388007858621912289226526333025179012998514822501774358520092372186179582691793248743252135257629248016203611174031484141045475123142164398738946052955827695776228533082436524512690726456818303219858409086868287787892514852370653890343231931590663353863435959401094412045165259619915194285180319988718026993174618175564458474567845948794662647082451655377717842065275421117888404477979939036521742770221586532783074842828206524891620875997374414489480063942179483534498112387662016768459871592832720455402968723409997349068059395718127046056747132417498103634313507490986095024392403126115290048981432865487879107953695295206934029747545038604879404516820130175716535571211631476551129363201852819923904179596953887417017786502820135039517544542641889853844039086747319110616251752655576450771830607820070359107849453127183556418239379531250702058426891388031897887428038707040700584845584738079749426466248052368473687925200566218466290245944866220237153662304847333087541643820619676569788569842123392652760197942713231222458129714804295540474321403055896589389127101598989178061621331586508933888626034436731607315211671788085689507513956415635064709774237166238361539279645227917617043495223286508585722462630140086025785428851822475811775480693962062807234662549024163337335127267517683675101153937211268758171737791708322870183246410400330038642839274949754611116691445570057543638144042319108192320714891291476531306765977208566042399798887736154366416607537219052553060884796582351806803785356154559912499684332522393015992065462238940145405223469891528177595232001734829098955416636320404083306991770135540235435852262189501402832638197713300959758349977689807366569301266928909541624007546792805787551252803195745942053424397245225621123342184257361481882286523783058126228627661679266801110673171869672551378912038611365119833064233119874615332615694392327370713484818891844038793801695754042573827243169080967158521362867315492143529717839013167790837037614565055975899399330261093747195925813543577357004797334658965074002614057935924955895408041422948438796576754852790183321934655554384112114639472789855523926177898429550477554644132323933350359300148072844431605078538143938573065457526171841936469563536946037960295638715653667146063844843730405571677696279846179747299741554924671139542929039877660620352754834289131569799798225193805042408749261189919623319307532564474994445032426151103827889184288164431200485190711490508932974156254606981419322661662091616044038662315414276744108568016162592840854383703638178592089962194479016433941520024547239762268597068846569036746061614524453447132848233064120953722709760857957438002516825176793287859244226369215139642808950793793912825984362572782911437191848636353353794169025773762410963503785213711038402603670264749840739626748675675433555095423924929139315864077713763623797307448922799755109918036975806061993126675184457141078986778190929122759115447060116818276465289298765881542085552153816843044226331554408544263367411866390930878189297185433303027457569493840491223752129962740158407669619266821392509899102278413307154559948679745857205275463144935872169431404295958378130386057520445930205513326574701157318821375657290921718232366185471136353603949630372108952871576851627756330787139835783036451162161271963243789841864134420979276680494313380181996630979329514527507610312544082962086546061662437637818422003088187814576626090156806716828727083087723320547769121568877321671654153223452904618120719960744745482763762340717786250706070727980998194564578648158473668710324346508200769231241194299284985664543481263092946376667089476795668526908899034531561779832349053416031097170599001518911172539760216958798227173543826242375233834181359895246656643928329983838100049243828798265137319914487989337234358748368073640074629575633147074679868322230503013472096690459759985021230330547037219903708491799808912968772518841173204913523315659214561585005557215828551539221005658515137581379449426179812312676921041105872022464229462687229400096433221851412739067652956322353878971271971525711300715493194363442902981765612084079494349470323501700258793099373161471201547474018075367842771079091970561673887577304943783985100730955913712467524923605719557301892781600541911986599796209605520010710294019321231137100562737663137580856446168977748064797778959762643718485935311919820651946660213846797957194263592560380453680750267708510559767009474431314407698248565916407954579086956705610770248982739406323050199014427261025478385109260553619817011070464144661578561708486226171239089648666701274449820390196992851548785967039089823871375533137156803035854907956087747488390479799217227849100885576331504568541983061619516767248369930376594660193572515755156166565110581037192045068196107797134779057515506294490044679609735224569707909140622423367999503120500262402463301737473699695746573291658149683061374145589189902288305262347549431247963459417143065751158132614702717606474216547933047288260994231264795581698844700708469466382319622696419663931423024843398099723880984250157320555786276896085068692638818916176815762382981566032346291422049989796324833400508719643288194184273521233777420387963228831657067647077715592260409452840884814672217799799553939111320677082591540764026588742517658545172052377800976253214868793315939857299370433582856445235704588680285886393088995594666089666694703590036281701079745553418758015365448878940024289424862700998379982897739158662520362506179084458671959901624567952603646755854562022072286775135763874124438693872574771989499212084369060136226373637440563168319274313205854647967462226908266981731373566891683842576364115253857370307503269529154541950780244691691694344637772956336926138165913444037738578252066878554722417645906455238189049879838705535062234366155340889453996138723993041920962510965435716700045231113609712978842317305213158985704468194767790769942107967483881690897766010125718312003643196317971387357270558495262170694628442279872424195421146996962608065305523779093897456098456759358281039773918545787249731315090809282546671294868472140150818377606379177790637593291502573435859180200532691091759865301985768696447411985907417641509410865597930332037331789608504476579349504853617465217570740068338701013541725617204473662603613816315289759242771773994679992003408688323810450511589363727479528917200031962419642015033125115713589425768521931162827027216863512836100352970155266011500711691380304063220315561022604358785426736401109954806147731311049961379721619646425376437909200253483611609602633218791075661714234004573914251595288822165251784973738934157620308988475097630449128904839853487522238394332636311681871750630476262326847057097259503542263697503083206994544510854222637697088009770782472532483946222222052855202558411251327926712941201866767047671807844153183456721872171367926183053866876084209383588025410790993371632826162433115626899169068795862993961616231396651349896588119853169898942160077257764728301001252012196406093018190738356138213488876193639878380216508393670396761362370582679755081472571525753679830008849852856620117983925903538642827801279173461626559680341727711007692263077598209297669763206330060581218633071812027025964069892061120170369906656165492744486381368515305700344779494541618426657618292518810425999258893303440221723489735075465876290070649237387706614482651819718929913346600290340619917347890925594072694296599472879047048969464249833593908222292085996360244269299598598157359163823981719923729134615867395872320723631790172725344841329696624277154561058686916016596619518788946274163886299156621911278487194762414027732660198049976357999435416379252861956319591593039818458194430446310743543423296893813687991787147520331433777062531046287530510892966920667713395520244114848912692863401897661510093158922969893599174765492175557145845306656200536284285494092131299580901179471979160433532002008874510888309400407946653225748890064807548200241264370561248146357198725421137403026467726893960416060300766268213433071469300429851420141982152427442977335689330188192228069239806740945619828660512911308399347417299669913958002484946169179251548035966280060965710290056359243887319526062929779185776710215775954723310662266264374007875926721539381652477917542053647880272244606990848156482612562250883687320840808240923865051212239104679008360330759790148875934204182432498688582689919702605069388819502830091562396356124102528439192357071596983932303450274560939894270585304244490025361154214596616489621918090904410860786204413495138928222972822014930242454002250593869282294633973498506766230978787061333763046479520133060527772655739879773674836920549661629938104118938796037841677876178988323184037147381651936761500769360110157460982582079459469173382004150286802962018090736160412829351974084646900594298090855026024749813938010278405313644720545388357319956684005976159164609994428712769310681150039453843882809695436578534875089931675501594048540293426778105655635380905384992126306935540962293648210714722782156303407707817769125844908115816164717257362840375183689336137831667630687147989047813488237361152467174481470803130101117000627996532330145059591202168630456059507035765489961348016033447269549646195963039845785531211975983534220191465034589751337805501536167560022486772201773926148525525361077724279500970799745450328463989514042254596345786590747366517307099947291627814193333432353922874761796298231139055757628252388665417411244282403728860278994229463388120470834783620941589323166115864939146667330001946104658836979345876364327217289753608319707529237271368655818258786262699297155404204314776735515459727055457942226926307447812749633582029108872861239453987271944086065292071049343538312893022183999328339331681117680784857333244338274574329337274811469369032312057255592138319285514286423707315790772791187736371664487497210523557272704779871876031715259716016618350266428747044884401120866721276125526554457829432215736979325701181916679274236571445931575780756803645888405897931494791227387744261222384710714197464692405405824419367357486221545233903985356092578809948898287117867847409979712266382583638698048912848427174250973083213925627650695628272793108719827397420327844440899943358940273528158796531914064430286835669984314605765578090919370051914324334980153116191225764535073900021296986544123364767317054484258904198471749204137663548129871636009845471102635395613732132042749761006346838634456224444096838262234163244225479820768111254682266518120766640884567407422486824172500940448177546839054212677159392739799998621313658023701592132945774419594229625347336912429983530534237955919680552738607459460910390555008735962714889703374385971762605951830408047749369111760457830917904259242517685263168346611466701687662109272696686896083776125178846257754335413992361103377893467623345181873135128742755948187994461053861667499789891462801540388892127820682506447702978018627452440134899693481470247162014070544768395485385817692465891291849648346372769500057734972535724071727432486030031800472023883332504170422409757046250613245670153906841066335677741809520717464309328042124210982809819074137045329100898180229276793677292092527548029170147987120549942275828314627284548570958487546453382850206053633947710504735325634324533181430397630200402056382182980690981009478572250298481589296472114980549619584783971828433854237297535137841403676414372039606812099883599945997496839441994638897177380793608251974606665104714323309171070841662745495405886086747228555316002771829910682747941189427606883510779727295019970430025630917513365008694866029123552251190522286469853840842331492696910215827439059129917556276491083760031128917473070877385367025848498245478230858543550409919264155093798387193375320321242423427025908186854608606988272618604127817234763778944394409343576738360997307144863548395818053328894411882028653147139885331166899997234065277174570265380190990717520905928402025483126301792985562892343034200426010912924859383230001999653605558440075048937623334683703821435212904861273298508602647329144818203882837553578028211644902817242959968701322532474659478983870873090620956537427208098114934468745225838606992929351634430542908070540141183791931555488575323023418753091066927145077150867381474196751162482333827927464486568525662976409654538941919126395481507822838321737607099991384180826383295807571908222940696694913402741234768160689617745052699675756146772042355972276614667013697889476188098768205241288652567998124569113141303118035708714909670433284809961473303840886439765202682797246673104796915141927928392620212882617070939103803819844588983670321282132704417562549282436658166284540336732317715726144348276484951667034756095765542011075680211229334290412064680603364464033775119313760703178429441630713990714270673028727776026079112658112052241436995674799573795645624121101832126473786605817483112572609934846949287275441965807660068797190414988703610685832605206267646927703123935438458149131948132495581652186299130008560072417022238078652092808145955664068352230537801781358937643401974554358277817200245597026586932580209420748237011957806917423561598633778624092726351048762580497862893413565880289605661147438669545319587279757704142207576890583690077937953271120488320469511123355399020819390990639958737360145385414707851116117181538280873594018738076601514217977009599385896376224642230153194845865372798664393274681118146975142421482855471657627986507570802540038520726668239667821347579801313472286124644167065764161949789544259199809240809306758350090103397995951077434627167218873756599158159078642329372714841749883353985028300475767332783087181512649213123799055541762061800281310354068828728695127163635461228263879286297114738116354652392979674034931374583893095668262459593573973378765810742291060111616138504972177126957029926121036778277872021365095819247828281612095848190641493256276142942041409085102725636500742243479526703362175250107088296753863109941500824284771929357016301709426138200996911642133945711505360596987631766516821712788585171092359662415930269736521728717907462445205797290722645066791268773631444580525152137535772162986175510708985791261085027811467180353590463200168861547718453904803391625688896776192710424060315234701168341225663158814874127680223314050738976736040118014931561029450868301656527640904367024485294552666302804606231467808521488241677186809034787382481011328460659894276158106263434029742829959015438555958817806191621284101391704995598415499903376962953955239517700023420079091037141499894488967852666514399560013644800873953904632883728218430109155306096586797573284668360807222877566382885630473893913275729499155223847632355800797196544863448007710159894705413776356479150797300276198788115772608183437510672226659251179768314832516007933426118668308523896789209821763385558617192095214767357709565791783651439097762429286720489727837556734721682965422039110989423640235665942423270989167282206330182407154275292160119019939454480970891106288053682092443126543935288614047300422485004500808455840161877099386083844935812496735234989844652687644541141875091362108743138751230743602158186940456766357857475639516409525860906679029661720216388226822927038947026220529196339961925479555252723917975440047362023280710799507173583065513237336768148959827121189502945007038285020122466320859577927326602082692557817067977892336662734065439761861974556032768040885373433285731204351859388652173324101778072443083881880367346031005616185955049063558710348066278703100169441187842021146481273446347979080229102781396193050508194526297142279556142171567533514040723438664393289672026082815092275782128716131956000482373130074231277988832262226568974668032360804199407888572769886432410827699144820100970690422094615700783606563591309675295144432239202223793222248405802031617774937488828571481809211855332324156645132284852319747189009061955226201164879812049351131138555910811644874340979006277642704499973538041544245152210851765208973937738789631467737390071465586823490301692743462041160533408283418897337698674973064521514026109740040612306231346249405244080827253473737220773653012390148265123153119871584439061466224956499396032701545862888225773320129003241337139292186717091336978685159907938011085192106526960531727256095571956262561030982958376696354130985069721239071173755386687908963300089698846692533372958409590965628619214112444890691082700343677744086847313536811012211266291108026273501912856410457302718773282858709849640881815159965857234976110109045425097756075945359423701377367211430810641223555863990093446032153445306465462000881109025274499434079123333599263864526289726823093314266948819126887432900982797815949559586270908657802859311776994373595920826778621906534804111566189347152682178440632124300204892989950611024975921825917789136669744227109927744383053961080316183940872050689120552931212153514389547978632847683682283116373957583143296411882592720931967777706760716948288144410674431120579746522158098004293710962421119445025486410506824024692653463277153221719104670129656472885454244100472052321034744974802653881091302926368402530986796517869165242308692921935216676333096008045907625254303408136703389791295308128345724350113393039044051451194217923202589169164017435362344904917129595029354527430978826886286608390386844943271035114140768037725761950177140760776779106784691205127162239454312393904230901333362117594929225881704988019991369068629540495047179293268878830477141602163500113785726125633192153083570005190935716581686292353593590838993514981497257912678464518772745968777377961868722313822650667491517857277335320723490820129651250874853343111978355828405742872351615869585559069362362580022802693642517077267403546533568593425576190045600515304966679973581971993111632108797593589171556030958598400413758216215903569935932715427905719775947321029384841740977839816655523954574362553836851196593466395673933577598347014980729738087851515261179199634409823796194453732690514524948576212183063642154981841992186925040372460623247579019018798150233754948987131512260785937367295849895224542303872072892819325208633961752326402460785634957832254366322691685995724683142361735684472142247526762342162934495625237210540045507827063585666048315693880185762581230682431894346656908518042985623724947755454734721689738159449863806387707894521469842549380428335439122088314311641273524039694173430701211409373786053078786139219742065956663309712786054718640261507700571498525828578614318661046880588000938754642182819873072705465528227234109302875759920291818011943248850584492716605287496228436521776658070669337402838399515771652718999495541560828608184930144547094855482535904181010890045468682603724236241056743026001252297531511155340433080323331617956539679276855531802927392472044177182477606006424418548078640217306834941767006322257003658195809563377807398031071703234080673242990431848632018424331787652268884622730654531846956171098035820521603401992196370869274091046900320426424425592556631973680891858722275575870248164360156777504134468331752326824157490870846759033069908903096938813442556701758092581888721348279522049214484815949240436525552695034440343767258722833967834669979934799950722809735187957124236548220002260077918775818984175898312514539941555379057792244023004445885266117391950420396342156180122910541935178416115482638064039905079242484054747997599363861039519253181988432917976639292464953924283518634374200518215728595581324592773432628611059907975233585097961638626585343881646942410859774933019292867548397666835453774679597292299426609559401781644488874215821811281273063585134441550177475587215531098388803980266528160895117631289789069164364989088323247952182831594158325130522122813654735093641116395856193188103344755385258495130870395656838986382384458130571514598676762591914159952294225040134940781682085048908359441388139206799608810693301837278694981209062754359990812077791588808168031655934976408240106767374461231305957524071884373285545424435997896486827928117551612166150705424137340179362318534452573154060140300289224865828439494819275227360442740131888188707847123353136876533887463880074518793352933488721116960832855806941450807047197776346235282368155172686945565868849878414917165099643548466001607672161303795277899551156957427580221305600721461139205852697589896586839374228092329753654932874399688122832504992976559319324445373956951823537713186787185705718652298569631044493987343023535445670732117681906057998674942983197887585614982889832040455633620437391309548602776668870439284135307075061909334173937226852484092210341575614881053382971346606356067709683256744598169049374571497671560537363177242627117146593062175611300004444229615191150407583030903992813508414185116038129598387457412919787647438942051148122758760223269142536912083648631158974212337072881004418530909596593042308071993054203324943092628640782257912310898757393403202876552156735621563651588182295850789526204765377429791106574212167442052150372789621154755453736283011570329003621165277104938282431675479127175982838122264986554381069311049925730919276219975081178572520859282552004055784623740406463930179354542189924585419223025474443348844989422183102157807730222334291104441886947571576625867529555363648175258733536877931417548562567394948902617768077129584060060694620428398468065396154546709855126092671291196945106229343920021091960914339024939323000449885078011114339826241207770559117827880540462060531885618316154207340020200408980711905233379314957230970037390548493714244534815263441525660500480897952841772554918709707720290615040569727911969217695345103282273009676498235306340641743884394315473462514668311873148787964700701464131964622585131185599149242855325315620428741921389126823215504542009667545030860099583531445102108959006741452890905830917596518380319948193080900815220672076032412370366208146235008960842706192920498451090831092031305705695683441054023531998770405143970184008169326504883688021478245250142218307918573014699061877809207558000213961691899739582731761910851673133925672058721112308358202639060266682543393465867239898411435589468568325188872591205518634722572895105543232216790089500505052126379213872378633468818404975430694236027624725893942187432860526430970662326469470387770503596928149565738460845169932294189195634564260161332702880596207446064186811141551358269352779758932706422440563547993866951952728286637570848697435977635010170186342217775871306679234475425311973467843726236848616174956155375191026710499791037794261556633448065499648196730083916064362980296385744055809217087980700353473004399369142163323720718344628619248157489125870701976153700469025441339112484844482756138657936308637551876944327014424347609219245893597092965490132969798364150534894227150575987410964537759175323801413684809229148258845904340425207050321424397867676953898849963278613025091752602223040440403740621988304465120336148803269918991532877003293283162667276282702702366251264825394098107505277020006524764656332382975125386089259720303168721588231302609066594659819347291983062524694724245359140767267478457975177480892728316335976311329523136200909039042683704410172262191722857090235726383838904478842807606490822734939133206490357279820031627510631457068488426763267224659667323192995955621630430530051690419818693550496531583768860497313661278920377688118414706598612951662202174531930431809464647832451264972650507436072552612118531355218656411200108663676649093585276914973214763064026524560001218658598902465362850050737198584987033601261260420773315946594582455356505886168057386931260314243791983586547608154815362966355211123097866954007475452815080008587917223047743902600371313941820960744257521272708842940928987862989831616227377267030540086709419270730738620169421481218576544930247867608233856099818009071756750314434443194572544560553646068395315483494074788649296797544104271670991621514797270005260489784004271293533492436085414394516332210109747813242022600943183675738530999076332426838055458771072301534568391065974951055193888840219446653086898086504068760470192512899391441621993102499988488052033643138681808358981563966792976354694768167735436172000884951867113948317292441300356599004768457260118626420272064060980060985731346216862491133637537827093155495573983955637423539285432715407061664487317910769378964339681091456938815976554621818169980561100512399256357299807132666647019029655154186119414806842056649609849785475388990105258345430884925122673217655257344231774936402769257740358716395652822711549086523965480247666756229330306804111187330326919072550046541014064223246059735789265153867427722893490486574972159709461015913312219326471845624140709809751790265311810167502220366854454523721464110473336017014424126280989168008900384657996847175209748695547109809028035284488970723075685728414956488550219907581930665903183874985089382179405347653418841092809175061012632430113337044040517701387229715029266260873490550962340245009303769094433700242994541912416837855292350891215819377848978550937346673320774941687223843051163430097392008479041732438314544334118488882334140905919602871020400954791150356317386837582365597325526167245061789802182660197035666133337123563763953253391087509906218738097678419550090842919955224002472861575818375515028728344194102417172193031028420093841153414462858617802602289988296719429625320903437191453878692185447443016615989253215349100062960970516892249830202795559375734758051013153275818193365118626637068793020455567930092150702015107090280194868807903832630114113463782987667419771978466052907870048632972075048080818838129951234414666379705882729753811838117847239849643742394177209273773750056446050879725049597518745382443514056449529493582247003328851982417810726488924787651529860820569732545916289859212562943424069172168562403487754561632732998580644169016827975062104558270585724308370628640810919430774267699676479799129654865208575685142118050960815121010103388742078190074038661642101021521715514718271708603010365321540853509487965732239687891807773413584889754092394392262412168258738612322829854316543897101720727126403321563848949200899589977943470506556295074458381649299489986807149620866465511575759865731323554608658674903413529510162554826922581317541414446339747910338807657756407969843392021011209916822365617756254701756681927158517103549609539481351441972723930024235656141014212726900445474315865769175951480197193091238174417758133216985193360702090932787939141791221292086002294046870764709278166683066523352439980032845666359188716910067848934598563953713855723664753540057180426436305146332454942876550969725744655165010840712157586175282466012668886730810727323509960327498768277993507403335727568932148255683201029925776667506533592970589650747819576827354388866974283948423484308367394818630874463347188014793078940150087627324350763734007824335025367706063149001062627647938080317411171771427226881100388453842557290871847650019085914946626920667539885497423636098540146704545027076082066822102518619160719149287167914010603438279697472676437137979182783898018336190560904329462317506573767644022039285077008994397616392304173405990448282241478411197174656333006124058127551589486973473612108575817418467385996918015726979380187971892560287421561380083256839566378660011395931016567171244153696064339527786999377779058991319522650581668125771528881409816701432904805816726860951994864717989826414705903065923288449119586736274617898894037927960546423734777187413422798791073512691890859117396403299798248576858911416744128438492285560552630379574457841430356352141615052860356382347573332792680873082034566569958816009426612072115471197898530728980779661674848420207937009566668281826302725333619615254116609977736961500023647943800046844433600139641446587228851527130286314555093792401555847372886731571294471611093513379019848974323190485457023799514794334615870005643142988026903850800296611167217405197119409994182496374849994451542473066815577742367387377071071674386955553797081351198141241482128596932610145619249261806865716144889962293516517983352253623027639033036134199827458511906006147472035827847410013015940837842054138454078063926889916205533805383948189512583779947614590665787509333286107951606847051319750431978233510383574997853949697110038379732503086145909396318179632025505822880014819205624368077411878802311222528117955010443262536313532506165178484481473101285468373278280598638808994186016659905328010980999343503790837295504433279070097117762226047045846664880332377900812847801704427332091753449658782313019266047574543416645447762454912201066702389036030649003882275043793889442250601520674676476301357563252959234184842746981209752866322582980227907403912115068043061060817502484167499532062704918357174298223791105312891786867470093659424333509598333672745306974896301587446565249934879482926114687853118938695517884854141777927068591181459473469847789479731009296784816294035130749412025740636429439230262256561577850839085410826436346943992362076938054750854307110757783931284658521206010401928430280850177588121848972807766491095314768919540484610662416763630937067818042848175392649906834793208149451552914279887401429623016854295435580385651178515108355040938056611327004889887639114292226017583407504861460741108852225611049559001108753553721589541409906645198029339205270995124192003983126423391232965438842358520067403904639007531052543724053452782860099574115857495350130971569427708518808625143528231128836977671476037036948809001365905431832160044312527681594046436696068875096962663080451240456166386055381679916354513945159354775689491905398996158297954524384763666533864219913023159758522968019639410014829616997683700388794951814620637032236520837905676785364315476057588304525756422012536640559551645129286725301693400527157366985153295432273301844006863313797176707453296008079760159580942460117154310389870048019576505154370738497623903985013327930302124688711075233235568448474724928249753558962476240014860352348371494574164265620572721824670809927264888014359448940952189278656593749097146872036412746489963156230196624200037789608240335398017943858532633805339922913876955703696429446184880081290044988929469994967336616728468711276822676089966582682618971210634118986208705254612309952278105134508508387675621163577918832467094303030066481319930098391391612724464585808772506331109716226849881442015692876590081172534791464980743351419295049787822767014985798555415958703973479604894589227971533393206724281290567556329778841419177571207304373573804547482998253533924420195988136252033981010914421148098895199708524891277675241085569337378067302750419273777007146676200748221664962944348280883985372382720979338226876146382307615684960553859255146461359043358870214361987807163093793674205053025821955641899727217776715672606080862389671372421505236051077139909365417579196308269898945984230146948666855971410583177942289474062519930239420560726649424462510534351291185608724212222662114140087835561622949357866936636529758022677397654573209055173725746411622528655565189180931672159715084856907155654726460230171670258361369277923176059787831874928075555459552330249558529814917267284400012402138534266619944540894278162042540578492056360178642074622012947242284889065651516217768982289935433936946584466595379564054558175763844456529022135930430527048262491158740104526509905850795301159653303449158395279423116697468912636320090874162865288907340090484090550357537004291100930553145738438644209060899051963987297272711311517833216985006823544672400496952430543652616385594904112001769161864497967192115574686721000329235092283799291293669339444592848482529527223027848872901466877725362512151723968533051336056297883479712903913113155619870270884567625508872676951261459748852600186487481890918045879344994085495730401926557737785199077290001880284857246746586170281651780279970649022978416384009841322359933914614849433592767474116830079441065856858680890490342678134092119349674202221396380451945510014878731115878112027081436586631206546691718930798132539209501924701342169818301244185076681109973365080601710599223407149338965552685696416199662596429903382149687812143281464379637933025088879632993586372205746339815073317866007013235316651706602138101264497065087643357214022357097532474048491240488542415699646065966494414584709408353451290729615476486046459288179659424867934933375309253773876958323585546335699933483909219690939768205259250102052328247981868451363698886860821502892893779642256760663183671259665255162021297420304880988561869089117795301199619968092503198686463150928335595905341663026578256508792410267936076021226989705990611376770828546950715574577332434325821577038543435875456166768512943792219417256242500803951784524007873148933511393815387487438039269603623020213948205357301763142813591248077061534409177610550864240941723275930061139027348531453647413502164191726125892655980431025074568886432584495459779907983337267013491898172294262532892081453698912335445064097104745719349239629993391156366931763828827661292380753397695744318180443218463579866340299839111427975572082672120922671384055313587516406969528433120631417649304615633979028912205053379064908480371351034321721222344809502123339756738626307031945654501778798293581309081458085076957888063696875920366827653747855747905654751145312034155162000341245692119471641413767638891673857231877325594409274236976874141840342571058238476093921810712921013120669189981971717946876129387546672373072830873153512337011379997122084722768186755681881783758991016315387179211573990390685353261585215233888820188316672423164195202305967307503550619157107279240620065811782670979359001613317727323396963145796328016624187352623600989069727267709655044427239554467816478980041166011706936146468832148046701378036408921251540777842904483437162762286998757393639505027578385336175352186033858979579908838944289329322168748253369748961017079674382383340498681725474412030682807518698728593966830246982573711865658551913375692427170096302126434463841863941939618582590890723128998476997843898790678026063360930651257138227013433771351614401054015429205301845618841265805531827011806387090451061403308864273372360114061081841365918955673404847654534147251740917847075566275667340296506083983701194987454371833717906566681645389082178224282055452388675247068558224513186691939145220694431345221554701869370115716381560075442621706995443920961205670224254973329956677449447759882975547191405246316994309253430554679061118735405258904601044889251752341151014511852285277627310866695772737707562338647367143283411565908605376919909696530996988924440738227054480460545417958771049968139738012300851154224184240709326702044796042283131625189245609269870960788933850302818824203916956083976522152978502858831741324504031577528013118055357792662421279497118317229013709812430466810862751173631470161424937861075681607641980198058167798696507971509843516489573579113344162142236992853202899031427525080704071550157339969873782430397587108377822685030061488821739416902565959005651004875101915855785856730463278138540414413860777936474014650705504252721432984051314080662271907930823048028344424882141707340182868936087882499156558857491707423333892132910725585370179644781104041109861170427311460870630507599183153011425656644984549256429740219924440540271727962984340892582095272712035984442314599658381021820169930121942432948702745592677960318552369987340227457093595663649499490418861693181429410808649719604380300757051474104082914032266739081143136361840946426877444206845194033073730099020432524091527482586041546380965470486623111610200259226666043594099748060771624707322595721790105770574211136502386079622286123392706626004034798349466100089642920807525635309161872031148657520931144948346874459411396456324492499731733592998395260519268344168335679204152946842007472269408211515635550519059207260634496954821224766942519479498576204002724319012876790275403292050921058182898158262586561597158035363434399502710954721274306834605337880401488857276115244698460532167605174635805054117402829451140565317130267638745880832467259199752954966307042372644676615867739535651995775830465931407486623352883125053570594297202674771739333887823162466935871746793381073883224180216866509857969826563401709458161788038470445147370072499136939804368929087525107183733863474480438706700977751221749179238135296610032655225853667563977697315197886297025078452960764262847615240005117211848926078155001663047198212613698269714890227272742264644788088002845381680285609164849065644866372960734887007967219296010096724999226539401637681696820719935980202021264122555703352138499449995195295578317720086824323472871283924340058168482365798475738757620363160248543596034838380866810051075263976528145480690030163835467710547242429626907929468558802090608012747070762324791780940674791175135465243934556917289471826916842882915873135512847370162131047819666585431068409733294271864266785608383407577646414082595980027970975501368576609267907960335132168852488076770058829594302758264880701604135668240772338582291026711385547893146191384356221257840764580601779914722544978217391268441321008158755489410088415024690667014103014730632944970111204932041802639213992090305725750006955098935914929188135829475903936400308524138413185239126914453124170611515900777628318697080459230725878126381844725080080083428045901302497434951327176815456202458039036017637123680356502859176141135097588921784946213032453051885940752275916505173216900179031051747752438594988077479085864812670489716560942365505853093043072555323358884024272066522149409412265509040371070843773827195885981375682243646202187585735228458514840335241906251179847629870618253394846128377037113194996909332532663221036510225159724325635488686654999665552361719942606737086996226961980464145837044663175980680630144018091426058619090241348997481135557438485546493127330426550398378724987079755761948890623606119861195586410987580290776434500616479436978116613076727262872594135773158182133088339292766662885293071803255653412535711544863294752833554204499055666148166822662084855546305361475369002893415493752505251784454429306237009817060108046612306544267633036382747940224906860403644827219197212476111701913753065666746570671626628729980116580489410034854289741920042420728105683364176436941783201062636951014007708975225384922740965367743359654211761459031871742621406749833491026115984882685341585562023670247009683009343959701892837336649915939857752894310681864515901449377337379961454460417918763907921421102819751478398746520324876076000457231541163605089424982273746192799044898824623590618576812285285018305843787442647096622220963143198352533594745183005849806289010532045528136207859923071765446068876530580242072799561468851158996883129794684969375799395322697449924919732833747735861471593278109042442688049781025379952652557288998983388384056093644895378022945013729931799213611589548467299035268235464062183479700430591147259546185563740270303907543283317127050823135302282464957278469860124031569550012385808638975475813224051994527474273181397684909160973816749397963903204792171034770354552625702162586776331984817603004802407413672979601450983696323415728701357408924319203565586151970667302419718856506730345332814540703833662780980526776005763581934113995865531906544430690039175876892943759195314468846423209605530030152740844102526407896257686475404077248651513090743924731175963350801711207906544777086495986671247470122390206005739315348431482764247669946357996247615612384389490483569940115385917608478002584458383309776054439220880433072676339824009248144498389058688719799719905310202961799231671277294093256701226610796546544332298598396579012403826929435853755088236344496527543404569850483323298192732029757245432177806563082621241406886966624725068005032336670627320738426816767498347595764954393505487929905817811282557609204434026071541932087254287133576635814141232075830313601318940701404701508285442975202372627952967511258708461241522764537971245332446891538623524813197839871696791594283207198746044782054732755847178822417780036977274428838648713277795500160726976806680864885209324557500048241312598516880343236158887062549766290902180285515099701265940495510287760757405376818328320398166180588338742867647096624736037365410972863307330101973346591284414802575544422975616898976304316080231361220123583646201404403081649912774401629548063396451232651985177818693341497130595005632281517537780471308189467366348570773216205870547932168882714000741806907570878297572889218959807620364516059874115983856247716551759810469059461810946777188434135049557450998909796817022032465013320662952419338751313081560919232916086883477547251711610217464529658209628398823168628293636087335078013676543470128239979342342207217102037770660722763821968794906183869699704560109535329525592300956705432840616593328178644701815128453721753417914401483804602742370701394934555971152948868751615853929072746797256880216749138319806319727118375486372473093912973277540510740964571580898148908351864001306708468144182954640960287191048095108218855815782841118929389909732483793968307854081034741711687061643255198406050928634532191275267995358485403177639318998273373973048671705002668260526016632256958338840633557412732436796132452454748944764701530702388559993673780851065785680298877394603858181309350970573033574464895177282973558888919229007490216231684211708625734905177359808864003728855994527858226328373387496604340771534867333240103225160918710387475841468314106610477906823443058070799549187205974699229829668958079107369425249658084051357856160843169104279934203242520119458983387676454224028678308068031433218622162488091850036440764593570153037703872233767940431116832003533488512034512939807430184249757726457187386103267425896523757040955345216542847113727392082353068103690789231867143077650595839962143843122620370166687952913557986974142995092564327241600068866592558277412195297528630088828845141958483592581503638339954871345275778834768504445391419395976101001288402268073527874083298255873355574631059787062211258279194664300757364230631727243222038085017092861707561580696626191370060150409477138170494209271050563678706032476231330047670178529472542598276576769503306101142338493464251548071276708308722911916376302839094233790798345368699550204116345317829409304815277176193298598734925194090354527601802664300213258238960939806510564257608382257498251738667306563829276547505013130716361900470131785045366768978318349352314603819146322488248948013245296730054754428516011810864835144900674813657238533343714054231612260273952374728979435675539787511014052256686984845622066454421342288695316257458435237060275239400413627165662993216507847870993545859101597036338132558299934287423125771162515943392767142124904560769594894511807057412253838540997338453314089410552001075888217399299757517803625836210382331485693581617667206347629474974628055182945637321759961445718347091125096829783233277659660593743010148447580473230891368513107776442353148066471144364777495753897824219240916974107528399656339720127373626290391686049671998713947331977425867576619674693720766843839321192180538020804451534795213683627237708979247698023561696035603297922107612478641710430019567663570298740551215035954993516321428434969579914263799599723958211074049380196446280077635814056946127381350520913034596723865623544014222288561901631256762654131702177621760782568189693935698547320367541996847574377814207026001653052284755491509195817419492005460703743838668918456947049693774343872036705202373419766257525669348835217090786687445600992827665484706062113633600908865145047366632222235306409512382326983973016727846805879601110359627654669070229338556380163257226308859418787610262488901715482461424821909367924626977592220257992379525250880350470176290624560264778725315646104879649780559649855962888795904537584516041487470558681146837793250149075264879267571315955691201874567131898654353346226464901486548991528819025962782284189451652296331590166090821272713260064302683986733439081807325232396159175985737899039625893366323495280738976411071135682706897546859753494639119761074469331917963564745291892032047872944507634495468137024935428422799491156234942344212562833120082266167024478558836149814980088701312207979070991197364212375315541442548388273192017563199233529785384574919069870371013179960673344116090091837019352862334362378467509108721126743861458209882273536636085610036533668337430734981920936618767439244922593477097386570851813743003879326388492030230867274923348159493780175595684538758905074317645156359166575102249623451160694193303879928999212836021448057432940141646956026508523249379043236532899115323379047874251195920417961339204027892732956060711013981437258134067732516432113813637087812220574027608548396917687848237723505929543747013286975075185314853463925463271146361188574573090223627231715661152800060469036667677572814150202147554361678976784284397086038715032936553235632924563052263858278173618592619776789246470518802237415635113729583473460517929283303192980716667766919017186151605359356128059151543687069556538371524379996489778498513246169883440933382696134185227180853158849438704173927179494889583912278631303337584976805911288278858214538249351134157911057315074537621636816179581311923927896456533378316982587515361720625950751280088721615279361988754279751787585936109638439952119988631263224359958762028354509858427315646066187517796901374926915331492820774013809806351049101056593115812042580109883893635727156988721164079897453110167200817788289436430263514670719544992539734422406930095237983117750472399414610343129960276878463734714673135557745377663069770556959836929954564163299090042416782084464227382413649990740949018398872069132310962591783989466112159180408008204722711852995452429342690768521565932687350134325113695909170771772998116038874203757137686282981417302539431306918759756813968212230101975915670641767224263638580192727212378311333784884549998763650245408337351068646621953624964112349867555407961598284424154595276552580109385001126126234668112309880830283752423058500842859589276931315791711901213169820411001185680593629385392103484078852018315680922669627550746199603354699163875444360198154124723633683710740896836475811319007969952775544444631119855889981378790022710428670922396291997168238308623147586587963387197538246336143733412148057966075044484004729711624697875806732299672468373440733309522326653020714357038214166219954974004607746766858660222973765851557138916017816227781549760060560879873532930200050311130255762729696038755126045827063174886097571384432592886369726704566174803195077122249998191163253266231433773646513748723470048778720340798475605424920715003683636614566653112010515744719805950761420702566908859008515187789559009765123161967973536230978302671399858667302360333040166018497068731436941813768387348473905493859726147702453263399719947644272966420107595875908459118919625549275743598123182402917056150492032575293751407658784298289717837182285066561632012822574075249970778738755912803645896819218640819767165529891954476255997039997379999920192432414899050945313366949760543056289991775130796691959854913737427180350645835223053827819279489654436339086042409850574306973484752801289957062264568328151711181751489234913986815770617285192574903829526117358283960591467581546363932697120275325921548970827985430094760745811905219533693689066106162924892743157536188425126656130179245663552063923739204152264483241891833178274422156574643943771323516776896407158892486994158738585871007835682227423654271860041740657520069774313453775634375362820505719185217316875484362773809198754601013825488940116986733252045935494294747485829473920674256801870725201303331050470076052543179850664033570805644752749102138437623656668880388500459035707542592028975247490960617331048076858712284990140852284649177559501670020423156443557521361158662746231192089817110651181498965046846989887929331918435537504981263587018772459706655253827201701003671090825467633926451412728521457532186924487082167202115667710840174654603783056436126465867609633079529461628120659838949479354656770262168336334070827852355080403088330246838876292735301519482956523369448302776429482437814778914612916379154543254956818910309315644345965252122415869164552835051673442173639356444636071212158738734736572645197923130301480293272795285843472319183609134686131270963958111597621881064742751298457196532590628910089675324929372984064841079950169272005117801735653754477246577775055976956914084363026350341008297859095988609318487415870843096044744237299892346018278844345843043906174915744600406438394886931238685217993028331096805581361049097045940181015973905063839181859614133235002643018267301983031041490035518708310738773255401068335521874302785594891199398518604635424018198159065345426825922318593083266503589162397128011768072147475982642190979494097280814881387576789576370324932198968269809280300314647494219768078980433042715089074273180212203736903886215516047683254634875053806506821797802852482539218876833611759835362835822229629303557869675397860964301516785050039469431662694394191534547151139190826151644864149979072780878752158924829075744555502071323010670144404459874554720483552475528789598207239636675326951736832182997482761963609502562244993281975150849968342821358276069327559401190697303248128475052457961174327555031636113585706892428238819554673242017605832579797790545311596904523281032063544009299877780959731493470578167383854651268703036946706137438601969265796424313637004240471844678003797219491195716705866713037424762488517643726701765389285033410346022533828226005663727529782528340843588235716369482789497736129587348963306349954053381707284061482933260375509290860287720915619944894629591237611602096042294293929593487900557278304971010982927294798800473108412001216190478233843537728300739833218031694301907526629333432538993589527074756035702411339794972348883766440673998824859413372515172766699977059009954184384667160680191417309505329933110556175638644795567969986001736788915982602922692659910225013275786942933034596225897927384643901703242104434370899643239270722765654936185067209253383883376217935993991139057333332777052034908241560725093031982573691081681638722795625525174297275220672152669330048871809897808631457340850060226565844526583173126352214185437327713595535571134448459727849947521387017119783636109610778609059299698707721515680644424961472211734245043711126337158176193612745415709365624747132096464916208654581309656712353361798599042699681734658470998721262169019295871334588602912177658538017630224849035587941139055936442786387371241003645045196918669331228560166467533848657357266913178919001640530201476825036842906581095035669109587074474531701396458619509060103163938802410563506113275694317463995522882749271022266124006856138358060094178383100279015798657082427483588777546804665567087047179483390146002378934519454999873948617183683334276730493835585020990290015277175124453687503088267828276878937321413310839857071630454595585599705985381182423594724931888205578856813890349629948496755165792300802513794391715109897315311028891365046623459954064328509953145716121108956391920888056992742348501641764766283565701541829675181859088646945537388831520821882654566130274713610915212444478564496679038926433974234580078800892771312722493647319008318433261891655718483090213664688539976335733500369247916044002825095835025711337212621803723747403690122697250770812185939473657704431804086948031392700712107014299362053869833613475292863737862637319764291745063318357973608002745566986339024693336992225092159055751517506028385569885721625843984139541131370698346119902485602157157332109593008549402115918238882432018566105456919148717971946439009579958817147806546037363988298293536664817099252341708211116481265861090103880983040310850432422897090476252442468405224518086878472704556113278619683256076087444777401313920338276954272604217234166746491158910025094616453946464724370507514823343852232059378610667732329531782532347676063077514197148677296528483052191075207645822254602191550973878371309129008427395602797899491626344807871908821456982961529001273093996043609893947547448345110858726577660293999463191816673136654374873266018894783537023381758216635958633303270495975402682806960723191948513067288626681927773272346854383565139420994354079431263679308888836986696164898789532808584522257417730019157995682223442700552130849582992926799113763533763883955270985894860739109963789653783341822838455385873566653882571542948380817754250130251802702998494747958060466529639586739852232316552008616728332788022274611405027397835011833858559635398509869338651918192462587011342256264750553257810019785675436173159524313144512457542215555829943300396323177284061893734543598422549823770042728092276708260504466394089639200956296811632787605720430715513305518550727093334980093419236966305794907144976159911127611915188119021816758434353258871126264669202734921436283497001940162327063246851196973012687356178011258989862587934893785146837237431045937350211478797551163403325215048075179845761547929460630788655856727952490829674690670346925191605640236068288170777207680092101620791402086179332395456881667944939578818310884677527937597473376103288677979555970217821550148767491946412783842012294054394256793552430047718087596759941336726042975089302979073606900715289564809952113250942977146010338261584837476503039255678234146568553538564668539323882811225990471944527478578501961940931958273487117980168670956178243882804272738721341431676965143091035752727155309744676747867812654294357335744410191066506637307028588148157105778132543350316261374609257467665099303299657808279923915719913831536178484361206732491097703275639213137432627338307133785846032680324300278755299537103249730470710756660785484618183613871070181532760806534896920826905553662553574121008080202769155633244617494341303987000897421567262883792830873484284431223036113630591629935256274950773051083012908311496373614614231189515883972394197601765188804010592728452795563479554069981015206506707527326101990449662738693425472870713943372783514751935797016614532100004701226357258202049343876578190109746119700302291300940512712316339445858526172430694669077843196067800330993534758098769950466739573312097484069223707723536739246634135416989920492787358788333467705773023724916186326392172195008846949139190163230235553017105152684125698417095424593136047724888674911204062848835901404432016752556994295456453249282496579272017365302146739091481981672563961784617094756542509799304124586071140229982953346863415519708486656217637582542099557061281483197781246499103320843826525348407143008679762660515850916944467731787922610244124792513090921725297946428967234781991449427225629780354544365245604604541523816424297710950345205786237569362639374091101694352915744079528527374037071337154833927493593879397804046926158684122200921663470958932174712062011482849348030089409707590431558462293761782089570824831371258045606260827207062966002366031791331457740799806998449554820742205809000353062790640313740422154478890014269708511084575786532409779141756315172485575001264664273134024922905056223995531541690290369062913449364240327884717246463469554660656613838407248987781265796423842685597437949637981766881646033147034947681202300419174664428463542547310313004281438015998381507195449163849077135972492321238239303747542074652067297337439723944468001420053704272632694084782221726604520879899349110997745894396415936153420992433150580996391634608435783019448916720103565310598686449964890552688328579332936295763374305356979183676406134848656701957419246886016509480431735547094162607509115507915991582319400407602235805523940837000013266344597861430502485356197265624291293703356393046815824150098609812256264054294985406517881534225576180099352666147087701971677366499558334833530149782251717021214762798869616622494403436058937098042499072075362186628860002511976672867512006784532262573102624126361750480365363601209401409531014547782785763109659850154272363436476861031825487786184362556911913071023420711346156143893898191602153830007010191339226341771221556197302052662105763491032501378894615244962258227195206295775788644849300333354087559912277585422892088595222885199639827969268660758778826739489124512720772649817933212799027918058916991793018946946477380225531236485248079343328064840767389488711136689083457601911444899797024547917198058481945748094950964773072152607666342246616964004906717196572822883521200667380060445056647436665338879145721766266926027177873419260221489523429565987088688784375537562648021007097203322383436162099279189911487778006251162248179868239162449024041431573744876511217686742513764041547600726800326121977323930863596327125602903026586967583915786411336829939077848887012263505226422486554071017567463059419612323053156945883433254196983574919994686732788094871443897190973576372034670830771350921660565494254684731957974013252434214847988081142177435972866593708908691346156801868815903627879836747241132351608026079880648484275632646337437736759042663215463813677535201913214945179711758015789055330642286345717351767100420261845470182221932679498926938809707805503846427508167685116250202195124991707884259252348377600429369508806129977568313151945718631957164373413835526582456815535845128236760755354652663248750847384191823852942629122021629089171304782020300494561219250383712467000801973831725670096772417190287289397548654697238251095743026767213648072454770263154607840416956270968431973475737803679411649847851498977977157256753646816182771962447008292215917855934327240476543847526559077842145815774897068939823337210198944074934128833627575803786636540616487086574445156026049486412484661794454688967627593337993975059664732004954181278172605173261553223107612445443837817081072554465384186339727400220043702258919180861289157709156971774046118275525295720587973155281307381638841648240330565780826172589816617138479857765841198239466693626583288483652977006765936968003609728792758743517622593650175351959675893512145930572574437176552969473360198732954042333416710243221354304568633738410437941526945913163825476636311291037253267847111913022825796433467020754731906478690784341735677204867786963039721921729285933926504452328980649868311314669608795467418492019317634570673144080747743272196093311972355537892409562869551642951914487533012530607565855876978979501852589853681466903225035886260457824202868439247068976110298204336000069314656808147215908693709835254348806969139559726409878945039766014565372137210008018223106426825974303460323571381857331615645377017345426427025734370138910344977985387889611107385333253335807892757412859974744930204530098498313922060440088977669165125386326526907556851405452836458654252462232637695136017784548957612978739615781698037920389231074355331675896572596325007116791447888467063146393027215230598178097582804684096448023250430427803355788100789596419100013696144574090262902514356092363255397973093372209916906275391795724842291517490981772109987838357167448809114389665268373934826035088330937979237712744103349044092798053634456013015150355410321370990568649854962980562471643665171773557339870157977084482069563941201321813141890785772821797135317592681125152943400568281116904468046560857179373147467873758691794467465677035498952302280159723725207577686449469126992908362597119644806009131433432879398334763839854180510098345603274396173048219160126309215978602445909594874639406268254976855597497196091004240755773524157438034311772763889480519941161855288400828957994452374158854618574603152749153297566341340885953052177227381800877898595409361724731351690307545081523305710922855273034718971744997712048429530927631133962416850534534060345726177387241003261832985528167377428781541699565967353051575144028479692392159290264976821538551725652566364788467865042109989922854656972658530700262517414612450993151369854519747448305575321728916220819136559615954748928463192298106334448949464548081410421304506713465818514511992733279399810349970126375001940251863250191755315230950561315283568523358218161265201936211086034042536149755302488785444728190409140320394165475558086667756278054199737502180364122466014614744948422942855227178455829533493665887607163792145287854013584649445482378575828644585849543696085306846009305169177739839124673135062415951766556946615349535824963045157858592206265206608855342259711087988417543112608826543726664104741376836076710341313877827765600029061837378404925440803946094693847515100276569179019977553141475745820275846723055450623027420301356746354749801759134095638492752116017805152394016142702605018440462043638458135604687697760672570021573273465760070808784057801634840686185571852037114049797684725775704072324149867660418034504886332075902838954678963800369783270257555807261915195532771752053029404160278610966612630127286179544732444241399948419458294094677312888564862166378143542490958659279456106162174880287195168325591918837494996073762481554159222373490122202303540125550153503373085386159076866655031996292918052538489174308799970768967942120121160489312737804102320808581449531637967813364534615071359390116643933916343219772737602905071738374174489045671076037772040496822714453233169227544705050126373098661803489611164050406993347704698327551268943859037514381026898010725812748986632688371649687444427730173999662301976465842966557226240986848066638790147714349155287922154998661351211411839953933185825817936006796535404161727775551162891692996619010507947174824828296892976741858999174424698787439983946011243218985325807288584017744571436100992277578115431064497856278526350743397063440316531112905780423305573128516094024657047254158596234504086608336779747619375985346289289716801002477096270370745629677830421976208038417924137866005624582384210062129796533305846119572577021799537170695480152873286421984369372301177609475640232923607392243858405372584680669279994764575752337736817561769666692683981620989620149104483752709545564747413767751754942943302399876354906114057279219558698139591168983518044267123465266045474816663202550185405756131022513508175209968167728084155251978453950183419852077845974350794224762257210030734425410570267839237069176680273515087085809283481212471160667276746817251521418584468234375845501713475225710856072257582825549225807841633570502165574494564759608490055759686684233262704264897782600764171135007175402841372029738517494802910825486111141441707226849863926739205009678387634667199482784752825923705020172889850492864503026173112024869714178168239855498507171769731014139074604260576323008242972996073648924832780768328066191255973232161136811758863141388502528521908173959322043053744626986363613580227062100248862919877495767155660408626241969019154834008016211702768877193723537590836363339343874569479116587237423249442849166428524018993781063606325143766689091741409945988584691058839536690045921233723426427453246659210714734549466946844846419747896392440268029451066119420046878413540103191045791545847182250857806322363411693161939176360134450827239467169462003292512224302858656099907735324906973010778281067295626806768958192899155694886110640648567320503685340834165201208005035548730785588316229955725058183611790064782225210514141650271238503595711220714022963173908592020659179617584600973792176268637830461041696289381420214408952011846457785892060596477099534351581922439020449660986364547847532870297216121071784743125073612595914193460191620975484537202873673968856136282141207122650080170515347461469421128344814085544210858605762566707208334200376558498254664591240024916979612617252782669850857782780415554228309373387378496287807503640057062011285070533657169597167339645990724733110794122556491758401741188278963939945286447154830239346429435585252136050563241173135121451276335636240121724350565192355858154635649238026013764769011877297944121497468021394593951586337160950270561502921921359465024807363116382721861232757095075031417840724157595046454504915551522148612026906299037586516612593841864248255031321971363955441307481490259343792862830878071666513783857021428534467866040365836072934700547631855371250282056244417407495557506701703698517184493688680570530128606484040439609264405765192546601042802184691012448972738251309374562466849598532957501313660824916593858339102524870110471979857249269342681772698651703042530396057831155057830422919389801730507197085577047573131088613617536627497523737300360982878157914346018115125859315267688725986452495971810074704503960253068753700494453911696485305642173954702883727766225452256917577823914518943388333915203654563045383820956993924832969640251792847761898180326088192760866249897675021582618400922988946403391074175799451783717323851068183195655702283540068365051094655087551857694929327376395968273369908037831571138629601602783375923170874960932042710530891242217372280900791072637676969469471176840654905650473116992426907089179398563513576067785463094282457294221490466210979366364065203964363318493838266686871712313982442824851128721952247905545573535710114330997862749347385095935617718968503924131632741504207345369129498145291281401628476511661149408565040705840676429087078582178802267304546175065696321041023520222155060273105863015729991209159819923779984035886235990265837389155451552814483935955494451710119439841265349323761572389280557097560203641736656290488573252877444024240389108388092490968238291754176691021126964975554802618881217561405038286484493795251830324892986733720104540221649007122161854982341023293261651309941229499732053826166602903433952283922847004790812912836227795589053149899851458995588824988178371520903455722369948511141224625917909612156906357672272076501798555991764520738656531358327348233868058014900375659475142474391228853141377727326377176940061325705084274798439193121020185805022267146054865609052035055688378795956986335212415457848592326675610188894458963967199709454549160655831776052337303869853399482458075664564031363566616856349086263892636120925793556244320098312298318359099789301145516577769045633123449703994736943819866992769512259526490352750402686628957007237307390002058546951745694371785789510885267451918745018334147157958836216038635784005287151601913390645736102293876330054136790124409138269511459739613093918623685939910940515908341915496272973777353026737747234992563444948273344111666929397483995846103912762073863462663009425540343931728662068419843528825374135294226335432569829955749399377291772047385563240540597009763021428205391266591381544631140737754111818282205127030920983417135850869625801498699639711906774962196511604868821682740619312979035283240404500162775364736879827490147002988843228920367059432240698155448600846958258313454364422852665778602839004489891605778670767097118807125497714849056863304766485375119185756390179483011361403674259898842495780432182327654613904013293506836692317088992355014110299353553670070361459299148019656079972688379057842156668800100360302890405134351376899154025740422384204441840208541348073298326908761134773452945019378087904803803184596724657120546972291479574581880343483042078157729999991794143664806010468991265094290798394964121208804641534033215203921039423800603456474243161849983152371959714817108061453434543922618477703392964248794600625212465110735339764774742458479288229124126544949958499847397077659699767143138539755262105120578105604451258576873943506216211434161988786866633017918779910282135139791421156519563630032356607742981031776819768307949662964918518508084200999025382253874969233397160391171159012612565826067885493238233297060891118210043664023448113597725306348722945898812394658517258128805938037291343959260210093122741893989077890143081272589767005642277977186926128149299940480926236225192439071204286530503007987365374540073413736626586854455280703982840982974463385966738839467137582581181384142199515193106739141840243948074812326279991905228393579326239763470954242753917111876096023264846654693800385269909391759226296089458341928737501377892191677386242972581908550993922326766249943849396769083118331558322998539735992041061537897677929953045690186769470970157696689329911944640966113044974519590242507753152306972271367028612298031542070575153328597771063273929154391073842321241910798199292858843414125919814694944159788112910537871364129152102954690833154353867604200785808699320397232527242365443195666797582329710304970502772631969607266343902000655347137954319355389378271644926852396160455098513224329477270074916702320427908715619925423497606650850400729625628712958500195157646496498389782643616400335860705219148086745384062237431990796142967377880686312007212930985194043090660528090750896002300855730476719628473639195586141573751519515334447999228873771145160721023874105401348427684304529708840543727579471902187801644427168679865281914272426517583901722687936453270564016290060496028058341274873149368210649518710468700600133563088767634408390628352251780690727613623412779932138437219402485936892639119494094188822584928703274025884767570385448347777020891411984324485591934063739633248270682090351512630161432601559528991479878595940700034376384231098393900422795176274523758347595217429738910072006873951671608674058255406821988697452231281298814015594264156893749926124663724179568505344205242569906114054000438357999752838300775457066923017682007954433864930202998706550256108847074461347682844058002177238238581760571036416468483186560148605719711116824012600942704928854043376170845828537899990996553850935090629755851498376943821439903116968551134965681355774103279761550822772114745572191835931575551109625922462256955369534094493274542784882041155343094576929754471838199902141493108538328185230604392952140831731162631135653947811375816289169769739913688940384827528984740009394035260887719570519731860087548640996501352378995726111108954521144254416765706064146012834782307347291649054603729887182143983997253173705563159282401925011182785515427589831422328552139091070146819600277871694043782926985800338906850306896729045378620093842376219437475322039099837132367780645141242519640028133401783472252395328118532564623865086827494478292277694801483204846763881183892351616602037356654490144784012769137916039797037715740830336486468174685550457129373044570573802714298451310523744118863032655609890120007392618279151316414536590976257176255331985097775954601342105542411018396944641358577462649726842599515644248020604654245499304998773644400650904940010071555418902737724980305777685046490185837546552308964258684816917657304559352989660871486105136220679542194404703188990552836033962746154812539538528953072483080830125428467791618695356441435602587636965765608645621118961720193718076519436058664283166621827943124716637014956684738659216022325423628189027314437485940519627042952480797936271326359227966527990570315860081079947541363320352011789740105315180920276262749440412015022383324235912523564502511600747688277258464449935571585167002457881103360138580629742150531962234641368427684385618037516794651577658650403419719563479203312820021694162707573987958691455146504005007068577651505534689718278234682317497015056570506977480816508608495024783974745259559071166654457572863056964158806444710625796689341701323140064463419905735636654346846648351384317080373128601724619703491221058675890032575270885777638765135945393470880450912873501068346177287356143444816542502691239931129040621456993741015236557766168957037986440458671770591650449599636347320320832721734481849106583830786420650500030827437622663179695576182393860344705155662546240011994912945509736517440040936454869022297188007613429390425881178097428080656306702741709608598896333774437108151019096100010621323810943889727803169050976752890014276062849524231039693555694504594456046698003131824285083889134618252280588094843143304042159526651601150168220281967778102209662801843379732736418385735220889139238627638583284008440774067691257829443931133938510199527190286858776844206597895136863242480263277650346184021119522324522349317822252562345877000921904722397570092289505424391243928152049452985575106993720100480601382925271129879649780965888060782136207210583147190722694609029892829155861050296600353503563395861867819856267702084820720699102553738368455537530098665204836416717902843962488212582867153194322276889515321470250220187338502535419283019517578750934610553219602213088985367641737773153566838327575623215262728598768460201981793929715094817142366657136237911862931613567566362400707743967087193159770276153597972240928973874681953928202124280075810810667944239083269959071988370155566124736916988614735133840226632351563588910404638352892350728522660181942777742724349270275174523487019363747782372943748543420032107912243762930065270879599866257205565141864370291134749551362056121871308312661140251045391552603041886425762117730482702788254770976553145029845056055959040155557948185699751800749039663182660192177960127998728476583773902752017787340517519961023408181926703287944709398883720427531674467003760825645976755835889250220744708872488594774620030141543342469177436154465246664684178926143860568982843272691387154234625061952672754558714747993628012691699857827113148563997547041829383051672830275872773617097735494612180368736886649790177182642358535684835608875983465336397988923828740061201180067386389914275760501872086403591146032333013475064435021306985210494464488243911634638291717454657911088050611487327779796210421360371851361361352192685785776248394989867149265217004916754001225098309906362852745769226614505023033842304520231738040162150666753928578208114304240948322820203051412842785520287194718496407697668621342003290907013611248000369374893284079365649913961823795218431364307656931596523557062733308835059542208818903202065889921011362440138318028258682502937990341318840131404261177744754900670653927689202768486879045981792858588903192450351361024367158102158701370316498890877801772942385369340830925038648709170254153978735853215943933091682355515189556538880317679419136985780255222831845409414733255669807316405304022997988548296934421954496518633106283226324973810515554225129827835453085885422817990275870732214452939437778637941774398685654138924989454314501141254249965070637792791194172273210403469454211540324356495908408865369958641402552180176884196504282460744320698792465595133502605308153680186744002940182732048111221411057735068048816370817239661900002971697313794286240209739538049803008663336349339778678659169206415413072740244886668271397400650162822322344390782094529445034566896332267016972210726213678138792716113002289902880929488080513956983451007721895155800705280484657382711940060731630320957612660453406856918097336030308880779144520756301245699302012810181754596664798907788644283211241987878142605016290671638750863718846884647871543768495953813722265063339652305694416304446658728910357808148122218690271258436457066031211401569062070885751139426551268565776909927042429041579584697339021573228197417777349747078270887886382742733838170979992306827907393581407893091829973953771951161413262776802651420239630272579592675090219560743718895697660218103553334081506301413087307053513982556762638250529088693338067321135899274011234905728636581204678767439475254139104374156675123839844654149585072990711555204591575305237316302856077875276192432888877847689145259112121464000507229506821968910757087851163509562075825462036838293604434549109877410638275892402662589569502393551078836061468122249247407938438646746887995311221303312787856379861077612460393613370989705143266103096561714502616805236322221108591654469770255971867823652843840595433380225760014996093626147061135118404057831367300639167114008355138221446732640623236997056989440438068500420068238841143542378393496151009015049204267855522163976188691250234581221070627717037476899239778024966819136352893354841725268738027594042953140017844771008034407468287284321164563559933188711154748759035466871660885435784423549005158953882626789349363285724664794456998963938101677151654529776459528321877948307617131144464497056981627596913605437490957997411524848762015182291430208318139009233526274168160707222856168844467019299971558228534946737248007643621890426121431175928490171342346084328558187734619278974539811357762256080128589475340001065107645123988198126128001787069798081921752882264021890215566039639410925921059294741265729770256552703380356083307378709879836732182844419361107424485403985645728609589361672837695323068347726742646331861415662003692571109232216679816078268348582995631799752705513571097952564193099483133732388264032423345068968268832307625532611925981801202652301287646320920963680954453844410543918572297793616499788400039606342590546908584791426292249583557551432931833521072678957738523848340899247756660525824706657327718498581283778791018255494368743287471742018965397263263188089378302684895166846672430735751725325497992511819583434805198590597699273980305735930397470248547542815762149959322464883029487783504428895571348824358193423530742083892070980003471456647821790926161825897559825743191188004973259327008543479858953797201690233249129229200010932311266547851015112842585518133926022276220157816488400794818959325728480879078081055362213230190331371549161966987741784629904688477842066022533997701491188788324159117374508164927327687243444611380150585387848447321875694717021269793503554068858462257981013702963501192321707026702703128422452202815187938286096887118039835439234402150332171631555332590733911719849036217797571430801713197010131700642616553098526249113445239466841814620669558614766967933633333941248674129901018476000236557210793848895855463068839616121062186231052134309184849397938127079980347134138719610303043573494791480831303859816413715773764300703622605976164627595236043055726165662126654594414731021616059123278757159882909875193364577968107166983099037791577075158109076782506560704280697854286798962266791666142823141803706735255802080788214282700989047801678272837686465185009542874306406505295721195120488529540044499460119483989074716270888660843683682830949238065745567415018711716724468137838567319118626830194626356931233315457924092556165443189870133746192935921276408183491567381517617846499149861815497900041338713215308605669847653468114433626477342921486345958575612943803565985272742511367961767070252315827981053589785411041114722919851299312209645595525141205479311016021525780854673764357777126879842545988094696271622784034027151614746197710519569653249338344456102525543048227069194380273544196145014991252460463647453613806132917980874394512961579267232358766249889152088423022160298829810872442966147508773497269953815845058689241932599815618781839777152524716898518000107540183677005234159277365291857196542556503754390566757147371683787248249617932737116598699217039151305371110336418554910066807529790514512421107328239409466211458473003955525976974472565602295038706563361313292829069190385093812162366471057613792822818044612051289876962789119020995911058251202078782322295252981694059521216215000827487239229654201239836347012995443126020462269232981185401551710278676916636298664155429572195228041809977777356625124844552622611413228315952848240882930884605048440506596492187727420137949125012813697288505345121606683833526187152688380942723614242850489232158424183996641172283720029604353692052056506143031661014936601813663084645900325493506919275655991313878800825707975033905024986410201369221389416227169777483349358111394934318862024736389631191026418695296985838505478994067804309727659326330040672773202018688656809622931875250125993700564853436008798847450255773559501267781786614295058816475302528585629483270083076311995867104540276443957599478561282497757996704252590329236242000578124432762520847777318085624869626214248698023133887527531847494637849575986255899622828964217443946291521690554592199657632724968438608244934279474947603746472048200472908960718549129554085721897448227022009662859509234067836043191783026828904620412363874362046940394716351118812675334707378560696614339961496172252097480145283365679562715660580306521469601349701582230132859443837077678090526813628303280935056448623351800085718572957544256184317526493356175389370301833431630627558467925282766764601625365689076207321829209881852273068993565328325102454142282213580865519262758827583421234647041787927075931443489649354619251177088305784171960227562481055215764805629354866459340105773292907019212332027389126477766600279351067866020762375878404542510776351865470480858683361496271224878811460022030050530534671119747578438066797868321274909079136411599932974785946650658221404593327990461414976779702210751743125071002774766842476993001545020787590524729333093886779737263685125845462968446183012070102629119195274905070556327991188433868566902789902656223282705489463073760577148446986926482538233944221913381907249132346584729763701130420929581390484179551000754178861851350194134809023599580163762237348961411141932113861121887262538395074012748530896575876773765456627031898690556622167273507733941298965490318498225326078632606007707296548235389270319378579604053307689306612188098337563743419709164808364206133168639612799149686671229135383090727356034864409049013550141732205811277166291946138824293996145284710920925191581025038307716932182015176245593714247697305687909311096986434805981707666677102849629891517987072430192553542499707491105873472397696597767154549621663681769764959493527457344698374845934492899431871427470149476979255205741975566365481629059483541526412456962814399833449030151589928129766975232910304934637513951861487339155033538279856426487271662949718692000087411203798898003651741432491388408651847806786803675328660024397351383569662807305506843124304844427890042140373813657666994403820364928956386981673639593924563785777566979943817296370000505137102963528129488351936892387335180227620217971153945168353421704192276155197165977433902864470871525401488150624993733219632239662679117927923726109192605907058605996739531233760638652053531049527066592498639387702852316291629033386300537742553878384312475051526901383071664096583922450165582449013448495685081840889948098040921913737474991475173335998724472660640507089400611797594118629679535718494820085817703097035512007379800374553368347218048767020639692152709515191104487143905936924594044863842477788247555513188089480664388928629641314281504507333202028408880128649705865574643810534358203176985988901617528561650791907308744308543471236637041868731936407381501661183597351955572738093132607849605828080591034394971347404806350100231472700213423451249156951842756011965693511903969101204714625719366279652963217234348548684572110846612505525418607289579105442630678622906428174922541344450990400277155145903140195083081405402091468112948655309967198441369326375856234688775432128293544689896051922493612307131818396376395325833502913842461618720787699412009016805701604209038332251221974771045242729684596592969265682958469281789780939878860324743338605255046088877448112267531611488617380980102942523611531622037460023960766372777123387762771491873299156090581193429004733649586117857896905652695515134026121435940076129318471669136272487112839171268256429001957423608953594183479677148292531820314575248296376823262375772258535444953706161248554204762457897397970184356874869885544491443990325497528567455338475370384299500568711530677334269794099087453696837854567590787574124393694008712001203241029946988962119408823443691852736892250146777611538496322376938017491152602535083148712586424394460364011772030605771371857311977389047757013571036488504464826369123357217733969709540729265872669558550518433093377821168260955326807670368408755134978549724224021442248240006083609495640843063573625924679033570932108990137900953812659344588686130212341821620794971038201887790901507651196524527939447617238077794323439549453494561444375316637217388473892049081087712631814425614216723585100282343629081174605858119256456545896514290492035494814089925562128503603897081512842737862444357034337756316024728809760786679202995190492407882152048854609064616301875598417830129062594746758445248772785151708863284132836473627407986160941149319715806825348705690311348613232943525558208233470033361433757624836895917871465723693224319992747332355261940549429097425821061457164939695781331270163877714425574340804999608168834953567802898177428545527608168320201474826697442322715376016761182891693044637674100241285850254147297569463518569653460550543018828593533034340347279983419073143545543824214847777671082026481482550112715559371427631106245601681331244805461846027841617056193901389460353812881321538433412624425283975867764291543046046130449240358827013476659645882384003564706397428002911022558603136791452629519774712226698033705704741584873082179135595400400111334792791393331372176684609251680698008187126559092313659875155209408199848307339539967487760479186666702203370524989735557805588527900876290742170878351833256540545716290315346035557238333639641889243013229915555036938760184649056410390854802129033213021482015834788027234192581251333968043341537315056664661361542731767277597550029218584923022848058607950883661337489526942119945360154153584957381156125789081074594665644729532260324082337227358343433061024942691321396306571066027384510939771640507657584593429493191532063015856764933203202319393683207879102809245854807353449429844916668348758259778641740564881264384521556811742114208715020178179492130348645348810666867469700101218874352217636437949655527576207261250246047869823970494475365522835975397781323252496249134454137329033492683832894347778218410352806652573583300891964283344742452334773344413045434873203060146739168967237736706813601455292672411391082502701828889499821310794255807024778699801778327629061299456688021780060008743766889939282171202814555373857792687768872976840207460770068076749404776567001206546660964286219148652203650392334526823398009452992709237492495191868842130030627352878491475548733941889432116305624492333214924544564376074659143423824507803935563187230709911982361464144526857760023652402312968302635265911291562734323414232567138707058758673269502578120608409124910084368630761440601564396591001121703870015193974776790374833161920185762838474488781715222590912249125108649752891936943157504149066624969310062953849873173316019449652673502943469574416843147709076355929896803221054804204085973904864723552439828743004454547826373276612264643021349313123319565321491283819949351547090964256455163082686994957569593026446954486397177286408436609360945458898800224088839832093108039068411655652655257828982652870234972802046183929616265691931840917546802664858779891403914282879515669871975581854474040666606765638327542579261657712088642716749990983021814961136335340395495164736877766491830034683962014917185014564653383497836403497662695102425760962367330681466807743758565406659075937047716043523259744174425956189146154763323753642760626922310433282349926571665123650106105578290613878659328700059428063622738550260831224345054324046589774790924274047163278416815666489590403460119494110408955674236763383340746819164819124245315552242559897896438834821256979536813095549449882983664550306440368631015096704659430251572673411168518031450167151195081367746440985259188076259013323488264392999897022563730386154690785741953409524223533182612827018312469404012077729528657921673834364183315691248662348957225174689388178707169622653291932475069154879892219531272754254961351615234518812673504205787850844000117858981171955616418002340732345129977442598498552851998701206560665995217059650483665573602006765659932276741197137903486410932803430624000505155823344002323694492821532451955184180710546856931999113569944301336403807864674111797146475148705065046094387069233223235759711957534327065466891407296354066053549767878494971491985396475294969538291803028105232601966395056822129227941339062571055584149051131621524882300332500745565437238201916657848237951383000283128551236951721268366509771330739723550238153657683638845336427180584130152252829607771257663435310704692368026842954550933559896971353920701892656192787271200864693588218242494974831036788248564643782882755702461516555602208601662217774022066792538582106213637695272717118916234656016653502874901680918824358103180127079796624520723527868437324557699634281937435943137378412800832177360637770952195997762111419274084395621955887188485045293042173091926553925067409371985438283952968520467653477354600220743833169985864514688757504441401925335105306170788993070534621047784284795470902199904903045038770346068650616274898057173715265723567539712046159088407187843529324653201349042846292885855039694394070473926189404716948325795122028767755937245485124087482057724311176301050998022936606053427910654750655671811350082720688634752146254726187691177014876119717411109148515535138642183575375079613466289303963063514969130121368842333006086293767741150727017108887332272842421188035001332575260198997035220041726265244635113549754916854644523588780360277218630830683559893341022459684381512008926308982421287963913842543199879155889402709820205344456617489677004487262557243275696684049334757508408645547948922917171361371264476525200370174337730020830162448564025943346332085358890178617267066573436241548916286537036809493386182659264610570927019336104436659933590508433936871123563965012698595009170780639490492085472293510103763932077713667201458254412904678974070974559251479946694209692593264945930420551324331124242628057023633331527806258965110965828780591200194393809464849496471513776665757349125845477027161105320629586785454078110289227983567601328187946560064219555133531664632238178586796305578513891923918941600653831497338355876741852373121306445535839586901011348437765877357330092247938808382859480930293204455409436217888135126788382027590228682190495895647660858185014158424701636686393574362106692421016530172009998181658116410589379776624213526050982777853386703365845408298584719970160970801975082910845038688664749922675665206408447444563942626684187729255467313185488929673095143811101653677884476054291249190724570487116725680475920747164640756127544002518918017530652632402352186183649500545338648669761050827487857559679488334934244936257608972842144669281445284199361999874921491017578452693153128233050651456109218278977052498194289508193649323971699645462393961940718933348600309017798928714094441319321227997265341971910410628934629416934918852877675312458627702591480209574553726735251844401294004930591796231279389408964096785791277103346262990329679730242315234628089992991267141833884762762396124506348472095098427023265729797043276476266062440137021372980374326660514271774487791781665829165968864887943944773524421577076201155531630913635197297274442381640120598114704992472244342019557238350505007760175843504122815798727444187347968632835251243736541315671703223963573809635774830581367313749564220195386466482394464500461135453174902014690822078195792170099768319217811304208685949549445125474267121473602701024793385874048287424114823944167881708623659629987989231818641113773651605890897726158377499673062216224457445495943597683211487387316678588103910044764213058382333735020551392700652188010553989687013945269226713004680740695494024902648668584407939024278152360554087931906251677749906249205949636189111546343151249981647053988364146602196889102663189070996813080395799004269098379998813131114339688601230048238601522748743396273447712251783062970791774448664301571712877372685830454241935068947726636097498054764545698154936360571027284491782475515754279669984290085588156998657060182279942957007563667683840041702292355051832588416534812138754136503349272870261171801220312147748295855244581752762824718914201239389744407513466077544735993584111639923152410224949178474595219372224031641657101275342796385798817523686433556762092375892449581336831915782841031878260740953418504730768087758297600455588778881855885380552554535563094689689654287819319534942996148564151954727355995201043990427007554364916148018999034280387860975877555165504543483166587155617973054238119456420255959813388291395507484964217799537931412770871042042209567992804759328010397453547882530954178429242755339851562493040683951939291095207008404963952556636929702477442086099697527050688486258030351775771935372979540145152539060658522330581471901413771189680577417188135573672678971141415714015750399597788407501386375116350384722739149301888127428640887248421432932632903709141788030733538550064024341652920784750259428320195811118076242576729933772050556840426687384234608490743869790491749976436613572032839785706105980068883165088623625846519315242621617096883855327245353731362532308527515572558623986841806941979806077342380134541506175998668197832871680149275064748532398660927344554453371186655593845485039574606334021139593190350562861630899267994360951556842845329317293588391395537579396762192485503436237264922019010007241292572422279560077763666742469404309034413351199524159631352902224031276052036402934387089088784652040129944723255234476553759418360847964870872445073518385431836365577133121754112259461468761511902118736989307678329274399888492306616044927243109278767120768872672546195442950557557152867609945222789343411736422002892051434319331042102055293194271990941661945223248630516472457927464820536735043751760829956826239773552683003935693355743376850216248573005097309086346556838032978533229417369408085060864360055106922960553219742620665621764729401674362898887925531192526946199517694118631510537149874197959024483049812080875773975081855004605227412668497583640777582104624172723702809839120169396519136953278181118016283718763914694088477125388741324948863828460357655770658677990215605599339341329500873548923419331215558759715507096881798650306852178098380078238104260808592871309304763723102674227331131315892809269633586247961990547441751801679981511112771389149942487989277238456625991094850045630205517762998059145648216493964458259374142017943441408914992601635916639227651768592332112276488333616039824475773314551983105948312816232149776320251753543841799164723589685598308296937081196258800633211534542459366414102403992655729761035812900945209975428382706882025694095316665594265830014657998067192469665498584371542225883894870829138158621770232962059980293441213445026075726943010436094624270167267393075099726604104693364702544940266077643998919242207783557466695635388448441265772543267221318506805447111765354759498405852300692962569072707602840828071988886204217107395217156237686165113167581593044939815482129549446424826611809295427378759758004967210799975082970488378257702045451300935766544715514020196854161751469136042904694336606400637534282417336639238084839937273760754519098088649589543477053459360248458746114703167796733154713662228288410475572879840336741150678478148044656908503790988062674640244105230991977192380256862888813092238401425773243320519715897467570469015264083382395541588531168675228344615038254237524756673815190344442261043928731492395030547956592425062739149908164288594215487164835021393590446470517918392253049574350358497293494458673293532553885760749717385915843432442008816844138097323755135463202146956189420646196900009543686468262691569770482108896108122014881702336836314954602373143122140014253054858577929693356742995052596372352355356393674234666991757535188349378816337655385766743207456157273579142093366089698286476860289348935384254638721820551557398637440656337018540781914562198945253873438298127059231764139057080067854701091547397582823128553374798081505678287771120146178852477678154434692259394043894580082449329682544265269402026450474387296139671340300951481234425145650456917217484748722385914146606586051788901430222306015733780149963780168354108387586253339442962812412413101889413035094785475037695739676466659840344483061486416836265188800573335460655882857980372089485959437170289092083377623262708869107596450370450608122746405215324901893541836264703862690906284034624311154860515128173158270392496307749322579606883734819020580216369095540536619063826078760802614541408142435401224126939420822272846252190459845246734679615424039506164741049834632551859387489954057881788260290602305850085220173170530010055217876298661055007106184629094396857585248384088508847431777997583148405263001005639870792330506277503876157059335353766170087849838092373089074175885877013083802156091072772180644067247718645607696931128518365317359438301485208010380784846851896040251832967734029143281051859843394978157866612148753699449033520283287554510923922062729774690832679663769361301160098662563919086309535232504544724898284707507406123804392148233194636937556225028289716028949614061396481280433756224811313898421672995914092373160967515587605214020103362549822016455233774226209696076992826441791623811862317589041327992493086051489911424029584292559213505137554837908781126136668346489775366660013059518919433615047040304312258952250177588758043532557310102955813382051322624657912096387622969764121134286560281878140123923529521247884853481506657534367427397752240054020544141781239446280325046797055057192442951740084588361334612432011123310703118115264230402011760365588613854047272365845407923615483422090879631748116777248458705593076381907542621168968200629835385627514136155989159486999525343269728033105862433386772186661889010600724679488083084683443664934915540581512997930121266821958490375668823710556495471888307286284653127481352013710399018072977183681595892031461914768918229038074384283761259975833372299619608161934338252968026718861774866313405813665214382823352963797333339657918587869720416995479770392350282767114697280456809041287471631375389022711717708993591667206530476097468679909866483138896925167413281706355458565941166140794983983870855524816799144867868214060146033733913179938171549719073165663313038213663044390360392819075171797290153714448300392679310300067090466045319561106486719541855005930237399267666547550557800737201702424389393188704679200673934096073698796517499495259134598162118736966315853226509704383387110501355872109276405750602337390365928380901231214512946355704689341881703426957948784924833498385895114831973538334964131048029570390211319705086366560856061515908542350583814111026185358607515762173808371974814257091869403623427221442856746840638234982836907937723395731215963749595855829156754867108118168808554603890436930217308035864460974496585788761758087097599428042133737678900767847335210215530010596106686525886673786827326045618993610595020232091489458339876132541196895234362468472789977189918224254964650984659545100238874943368417509707360227702348944381397523316815600664987882474520585289566558660029790783525716344618201366253869688813594332395798240115625976175393205648013010460587101315699898866787205215012411241223812446095562910839222552148543040609460302883468968268678481848714037547263068391747831275414579596872071916187955635891765249501425389140128706511082379690590022120318272291813232713584408881354715034804334235762443890526723009868061697279232666268042862832140995554310587639730833740485303725839475027828505159208550695730565832324031016859715468447091503267263379216065259382785101435232304438561584949647634996074036978779661362867632605969430321496699335922191091890539388243280919213555253806127852537837151050244577862700172441247448983527442703590793925574890872220160681553612814692689882383487778144979274384053140653173922906084698664282572296328484241855456448476275343950215172949047087940696266977413588947226979329076919199630805409299655430305930082874233270138867816389627448430267830819120112888768576972157398211423722754713110651594634353599066652031792866233795580291647945670888279737140567424270577547587172054308370215989093857971466554342585988294956171266419655414915794334039605572222604164572631952575899870919506906685891839533471388109668690556554893316230311387909638999084569745310053739417605660021939633860923541968539627020492360672778843294813633580167269485829787952849164044918815584072147851675827085170520914056796057303724336766637393639693628074817715689399943378663304792280182708686630496890518568606991174766809692930652302982628605147906982296751592500582605724129164586854341936861164850943032730761596102069549098259016017437833096312687439928828977932219841867912045030433120655010808779514239413597867789860813470396698382921170487665676926676171416093740813834980550582203795042700920658897106652508353374360090820897781313784568109174294635047218835180434714820774632151490223146225044136439400122680221892931449964932439472325170867093050434905333320103082258876451774869988583723551357035425637497133916499858501295889454011113096695502558955450683194522619056413835183816660805905317845902579727523702333877838841104750916135744787098944362320027118638400129550241250384641867692183427840597847958935044934997697153719604107785427908692939092328516720505087103233892173199451594406619114872299672149214633474415103711519327972725483139384055340880873773296419746535868389475060277528876273660099230659934197651214706376245068776205601632125961257729072029608591281461328474531923956375484761615875193582738407473299504800809460591754858216642333916334963414586902436818417725945522889300453280875759848276517993959202678999549018995890699339602519029227452737674368129557395166602123978000940536252532042729774178953056885681453039704659700887221111369143885205139246256327042266832985761141522274889624246142006351800121703288541325746068520165839924249282584905768325155630327669812553289805136856605145407178081657245743700553440937356036038377535953931606953361998274673424978708068548724445874878596595273600653723282928791384646733798589549051147513734819787878718774759831061992836369091392397927434718340840840821651789703062898889574008458130766461637361761723174459014804313037874169892602065253529937469546755530959004476676029265734652846548711780953515866494800413422133011759070242857855832561954967364135863882599293707017697573885937550426594457443275730306169709486111344347288495593340763212027526630043228771995204379240286667296462279573317167297052546423676269655175122938866318976567512997589180964414543301264821737500406698223815971358426851997440281927290102558514451070562450986624788098995621482051348547289332990449524919281048493914388257579411761466807386933976603457681928178931293010304860986056122742252288769709152305726417111522892057938889400808804594935812119061547314540410721997554690978568073700975266707671971513129430680658241012479687751973307607165864345257821424716480826188779906360425557077607361223441523427430562773851491461747581101273007336451692602655059014277167532483711510640452118872750461211465973406989942646282398580291279189303529153344094074437841666600433795955245142843657694098971507468634631120764961941169865628658857618232201189956984163205098608574083106837303026717527230188324927210207666319889422027557776992728376811027586107097717468854276324482455191979591037238523582455377719726527329405017895892766761626091146172553403392337492495380463142208110837398689410980125633774582666227877196760475659782712448595890523792145321867914694421317585869717459975702725888934051765793832716534113717779923558529461160805944608439576726029147973373490670028557118200912580297552939858150270445075421557243168323443961654846575345757089445749671445554027169318881835377260171935797718380845402358310207153265153084262691656533547872519499745946887964925037121333343706154870098229418360781805807639414971248944802751898865529795220807816287584366889976838605742438468941610923681658471318152010633946026694450813367472097480996444588772559691738892536582948507210484609509284117003903515297446542673661596442629538085278569118169706320682622364786771127407848796862666654382734544588530671956531082344711269669683415109612922245624055806010340805704099783818045066878224123579586914028670963566087556668026678350204870486243924180569554162496541960374404886933788621206719237025387751775643076608094583502044792268784944329616827437092843580080036886866365430294184795220134590017809488045231123776990987227905657765735128666489421882656581639605712662860578696135107987901999533372549996641327354412937285034182811894784262374448297750565186874540411223778646822118263328947681357744225133515953008000038927725860170383190950965527107810600388329438706204163913913224344194893531678616511479054008974131502531978750787333916525852764371333642898145225556793176236065045071304964631385998109949647739738024259122810036510323701295656993588900018240560646683558414648218869064848912384874446081977868676313359727152397641776422064695635881159905043926252809575446299263799682146608420767552223578264509331960550575553671723450126931922990056731818164412117246471487679192453975730560391459541612553586775110295644241228236520196795035176929584641234150553245105205910662022560859924007253352876587131276445949815701865009423869841776588238297000231752859891584068068930685563840194169741573322497352019278535864825922974755732490123625726635984069302364722971066179140096753573987385116525969900233647102728549126452554609986408244671504105397225132113079495614362064145392719675236833444075001142201506609490303122546552799234432187565653376816505507267405428975657521975352149844496751674947683344713521956338060044856837052880910201977806753078154715841207402594542342344577861800105642197317682346014335876384377631925524666590914801555001198976676770418648391312983011524314112822973476017064885217400376041037416939117014137057991891099898416838787243398963784322986632373976440988666652565179599427904721157706377194393800493690000418218870487098519244925641741068838703683281705181293985252682256454805205489495957953762016813916068376159439624946275251606084077320165830597927612455500507300850589799913957505962767919533069960422387090383559405697564641011332331871090767636214563144431828348184691901237216716404843238831757247629428140712928818875823040943153387275628234960446929011789535146076219041149578984108265999985399102274853229862406067601965161037009760340147088152303787270923798973946120787549396602633507066951547350753203178477972209847167099193074651273125343498730209795000287395051299538186004321984261264338286539753572122500267020026216973921874135097434608000230668577414653002911865535313614395757584956063918360470751462004921438083155277545492878094086432936058267946705168206749186204326533436057425416895873104289162388839750594101749249118764132278741843311214421489280691302389768950302279937272945816851577320727078091595359991155239186354980899334188994746732761062081035255391529801137712459325531574598076916304675076109164840463862944244991268838900127227766639615215361295052647882966394398535048778050610180881504257139197922232086503198155717248021204191630944667581192155744981064608893236878807451535746408094757644398491336018213138222272985999664753425809020854702749415345633736114351032859327845951892209285034733093037730225862181396425131352111283849715673839824236054206304200112105073012890975998810353293218448682718662087331999833677544279477332671896093309362257160874746452111838936080227638266262322372247336480422730720128812894822691894009113038492747160927129168237639542285219000880589140861646022499239642958972956264576068974265915756309123215536577561174876087769106166649666584160663158517880918070987364301686021729705740568642430093525561377215587935469181200929812834291925976848050164740162324509221356878315068017771028826899846911109382887591275982435350702282560221411082046271081748213448399254846663769051444561353925012567125680240596824732082623122792270627551227318380790049320518935317816423223462058193629396050915499272603028172234455706906390156889278068654776915404009648715915560238371932791791517873684057475271780986646411202988869125434165144961437269618801603726351392351186232292599614197512488021552429881837590228290717386219781939641945702463507087134739287049226615565282590744354147877064030191592292587862531510229640308399997011879765044664383162167922750518668170253734590654567572651532348851456975836794715261683240487803719859948689288923905895596819084240025627920056983832024716885422239943767919920164734288876997195576264194449397005231796661893573971262540836032568479281163460557466723030728842665823037060979731642704698668122542410417282029668140847581489817673071619138313240281588523926192432732675063820635037364789572344537760179230759270802506820637798743137561165543754314102618856857520847720769128207109615024698824724367145942344535590830249525924703240228160779197184532931617054983930042973358134972192587042268422709609838644645514640436480995448231891309678123018302854694081001550817887558369022796591113335991731449016774665065372730653052113885683796702502369050102059049528837236211690710852383611829604487858079533550410005227615987353275011222367716524714718594978065101502960459079070206882187271685408930047053378536596707970952638192638036037022819130317177459967336707499209715628771155657170081922486011167300951784111879240457074706309041398630812243115453048982942939514599514405334941963059854413378724836951599360324170267621962753073435493587935134069051296274090530405150224364662861008911310018092293383130867978102152063841562791894426107308590868970234471795895751764550384256567292009077733873012534304921358955675552487389883892104976547216460319940484334006133590964916021394927713737629802341073414371148645097797214927747774532178835203744677600849733141462758616418163181268349083648318828113007981797428357756156010800038422071755348159502889588557610857046569754084087900937849297794656055417622739365892399341387153107430983032167379086601981801005928527890813621722279618508013577592768516242153776585388220921069749491989141612781373150926506937966105213351292036772643268295221960236394820703045590393500309644148240286671829772927983493402771977200268298678588819882941384519675131053414582885775770137649635547451798018342163477562506493299327062350405340603902266145158098182124603536009194527584104000262891772385247379198700869891938190582622568984296943249005857191634371756494102141444176748129684440950856978831821468296507775837416831804532933038534395371315378006293396246017039928739207913655187729903408229183700605104738563915077153276278428388342309671997752817744847166836025838725542763052629337314250217753101003311312218757232279252073401120556082080095025406530642283407002312404693688641452289224394083490521627430574602784560824802090139941790659751337836646304599358185230773393642078409825422617817414715493584597408270453182048472967109080979019773570419751015582546586210788097057282722480172204903148266776454842729172625211281240927482700539817926577988143180187634937205237539541131971898647360989164526216219524747306807250978864024155191207662177589328610015318346680630559304773851921857911288572401476926401304364370612492304718021286686805356313365547833080574636672459711596121182582683429964625173592350223591551354667237563772960913553917037673692069011206232221587615157045884564002171786177006088127868559214407290169662392509669106446904362672099547968766556902390415589961638889019413004106929615124447493970645985646097587115194870564178463585487310905361267458908791637265307943664461909975930356881528715109584269071258635314845249562184038604909057188361470114817645978251330850051438085611869570589416678142246298215199247267079536271810780839410095230338778317313077311437457298041612941568231349676955527069679287876498724481759534069251095452103099918321973810787671210261080014452029311139239966880387391107444828001749131023780822588500625678428493032675338497389517902536783049224344852899677268545066737969919359732316404531002997847696089756162457189985392878261146388142884067374475412360315299113679886224345774328593415145999589208266827967372238803287668243842482379803152210940773197332151235728266544708688320705703297822061932911572715385867261563003410856418898133936896254981539274056575717378768568244729890534161332660996594373712025092583627699258591671731633532857985246077368157521608865362345389275424145323452055642624379767543334947157051349831054827811938039756057156878974248704589931091154793722354258423068024924395858266102940777857793999623168856220128222454191987927469857690583152426848579664343566802998459834214149334154475531286364194227637436494913621248074190548089653125352098637543618841736978981972907938521547446596689286343143907131425720069504414713846009035453491018288966872515174689716317819002507875297623394968701361052467466669881734625652531926417569156624725937086921561000872840816247551331748498939282523860813880402705211270929868006762442436265503125637379654589462323222388695222847978856763405849108077119493923756326431874806371605190815170691020718977011918652662766022337446678792643029340477079084423259837177008222760929120877843645733134744875707594547336627233175899579679143393250731424642585140078799315360080741995078656036789187528304683473573976468413885218773046042632594669563710905929572810922344410329305896432577677263278003620153968539956742115609087582842485637581265360795107080581073004450761028701156524132396330971594897998421151529015650837986607176306969040111899977832739892687965057495727695917918807590422344670758477947889883717716842165342710014132188765543783339107748807838556884255535069750258969756947114920790509918245932762847204962807208793487911368813864667959600340121960018836213308280004708193461146328779629967194316810864603998896995987063900611051054311279514283947950297005460568238613874792811037331023131192184788249439877670132606594101443480871344437529135586675239751755426683137352717242913263559483029671462630636610620788857392049449948251207701511250151971101853125634937041740718160177634069916260771407892876970341367858849644415017746568926914156625788908278517366764803631989792499349083119121479827643894972376747224643345221022543973095550301058319933192002986576038307478001907188592643466361500409361088136290691599383296505185382344307725302894354733631695234763162447454196642631193861160093420565731945043825445649442887223933532663443800818651089510334105928379020823449595000821279893074957469559508448714535195111105403059070983671411441211699961131858308382595920847827887767335043089099789726733823640647952048115570493786416377393565502022064656069212583152925432534602349798212133315076138809441023139582882030251439783327121430859124325763211606598527658184883175180654331798960724370557199904195758190824126286049279198055061128026814557546676102439551973460060830652857193710478442168438771274379101196983326790749514030195647348356619247141081536534314453469024673465932500289294376968670048022817878838347738077003344794480896093989344633189658183895905944386827867821800243467648160100835011645873127150172032210048383522605308889758832445502489354099313113552909662744053979249350643445537215596768549305377949614288502829288698275624398511391261177753825824081543042925665768676071992639029296904598254726107813369146181284364629032131850685524406840265989386594268827628065558127347406396777015593241123239343327727329811315369006251343875620866884482480746658016824524627213118816610530921390838205469498081241282302633010480799868278635558872630334997333899777224875596325952520239379462465989580964006040675550777528789455254679760969096724458357603528222272937241162576177600730479551309461361147421051111701216263056189019925424058264249645249210579949225985208740909681595388838590697038933208601519347838181052464569907381786918535750903630341580753591810894355606957731949856759726660838570303067503612894626446980713940153073819165776121842163680532759142362317804827755128775080330688797971875090406953627178741594276709747114706060143326151914041724710976653228885102020855506578717159513830180373995477846583220451396782855847501382080012455843651136395199777953703009490988235623582036408701122656301407300852820097004214113745346042257607047836418711378460121516997933477890484620848038415443653762605268116302320946536468398610049674208065454855673074312430227376573057532167921882810627145337807012107266866324148830408585664807265913129848441385924185534778397431192444196580633358005617620699692568544478607303938043527510211586436876741931737786631438677728524124730333566810317837500441421798903833370491906721512292227926536337049762535137475862258251966674217671859702350381762574500256992279952207141600541672751503825297080866928498060635092608687886562115269044111208162281696353382286073893315824429935575467952643212791246456864388022303244790653328020994356147052093840685681805222457373521816126629708656854592645929297647797389799992371433804296826304001854439033796999653244532256180342852227172227325925056213113070968859763160595917313619150394171221841029845389712710281741753179459284871428782072135791660256417944765676057921999088661404603458765373974845796749502057495677956423278530576530771255832465370577139831072079957803082792468331191324946196893699498141579510701234555391840096197843482675392083990765847270025068963626050748139820759847397241919646716019893051502122692964654182658656774373337305610890131443622112855927567726591673729316023985763589242934089614685661874946395539578496894033629428143658552169531116024351540724577242708748216597934297195550385957018011438539051164068216610089039611921913564389517265952550332666131517127106340789824039850116798763712192269187140349800349878552566523422707196739839636437526033696106927431220026334623512456591209411110689902093299544512542275228529264822169129604353618410444360791738034798212317332932718825000424777696276382838752891514020392073887361798946264346845518154872060649992462266068067320609182023811468486523044752338078492645605257735071709862213796044994584466506670747641949741252794143150030587961530978818468711905746191724926518818523501999153711720610181519024353598152647362936459279593933689099957816018493039597776994512375182264557525731997429715561723099433095318151464031057393103546268642321508972509869467159044876892902757832967241289719993784964889314298586316257431894460226205683049138950378429864848107993927380182109864667382068096601635140866659049465640553946479769646641584790118021622871402784581472195118595466265501369147497089384363483481637861824141816763164538507524465178691929786703262195285170715119792777750490036189363386041332858165439600591051425484154994904429975414747436789206368201171658262503018189800924640892883683864112624214650987460283133381883402032722252396587163744696633027909074487895318990011291537582971481353523840067545688971915091383505193266813934835116149612224473041269761749062083495955569224111702267058338706225321745560030821599217607713807532558239056166332651430296251330147421244910511158271668009985854677656386163529611438303357731730028004335562434303467745018962744269877670746434923248216149933535176444181588169310465340891610000474398679462220628233268881546629664001152995922771150294061920258761711531797334805682225004511604287928723175243664375683930148231719811341221552401435123051094097327248376181304632648552913198295034539505212625538744180719414371219006447811228819506012742878876263819231466747936969933769766680824704523804592715710649680019671541721396925551871290103366185846244628732627600025072052593122539722128408284400973217082655380161849789032610333480491569433169242421126991929151893501198288353048254400939852119866832365411532197146986397712439618623600344589913649128219137895800889408453814911136682869361999125559221983058611829830809097577977176025253034868865400451107045332361219299320521742713489924951922460625990499790218493605151627093577158154651267067137740823068798211022201523121570829298655470197584121087045352824005154329226754879510293321199290635292981571057758980211112840268075932791096466960251479030345650519588789737361238184261996826839926975627821629174445559026171026833902281057446878873951070790343928295311148497461494782056499072184225665924727740119202291830353206378765767305774402612038857837770062675086299488182484829425811180828663518283930647329756010601206356044421835846870875609039553056058520640083345664191144774363203235200627995795331667125496655221984307504040196004532091253505024596590924943425933213074938921674054699797490179117471964412884573197159541245677555416243227822528756002965384629996046747843615553938841625287807552736008555900102427478281037526104707431951818204514235812954888366096904968652953083908454479351806363287591303074023658182399008342612008364807501210393426479266738631963952809279505977554931098716965993991079113638280592313350859389465623319976359800036068143084925339333795146823180372477328565909832647979421455336627509329822166187185763306882236417924450189761767126192021575334258098696519511955043835594452541481721930439959787670333791707395895967200849331023318160447197348568458120547668177381160437575065376851076018500278893885792301335883783616862594390826374999567370434450383158379228228717764293437542724434497544152855749625767144984776914295904548352821997343158705952888773700072524484442080926919573672972154622723845102952553138962112313623873268676349515556715633242567850296478840218284897880793221938469327912437966117741618679092671669406517266650779760765209465341073334894014067302343144723493227737199103838532885891131230759711204218137645313461144590399188597910442923197119778106242663508866462458834404994428133998408381829889497101003547070372260822883618845414756289154380031201858240862352033476601510415663540714559153072900143195090904038045100945552862503426826459998361001264911522572760174363547478504039907341232655298366861421444698543426340030442647558339046185844484567753795154179210083341881435065596206934125327861820035836615303118035087500033993354545178925988723720074714450757906625586875534818086332412312291244394602069849766200773682967551971606570976056909358605590568532133525229663438697566707739385162160941023271643153476245606598856124862005701030493562847939935115104692210102380613852564922319776485872190245030464189869180124474731306314423311153414934522065104503651409045825393777899980585271263620280731585805661963330187773059460432024999953636233198535116419256339322153397439817579438122955211263984843901731672825544563032119558342016194368823688269418888797886339665999246259935199086634514983369857612434968947754737481882647660310756319930201919385956289573108428171311045160188255577245003064708574818837669277042254033415963267082294918224059254478661850826233830547075542665775379492665721667387368445447531500609291846439022613718351278754144776224108210973988820175630996026429141200681496020608627985071186700212935711469182262793782323378221859703706509059464160789769690530630403613421747549090690141012102287629155262180931204801486466801150518979262275999982145519999601340543854090307537840452602056936559194990555417676694620513309918012876851411576687551944428777554092365642492309899981595617157120681519195364093297198361592482218886203949858719280305139761867383810860778256378638654498533515368329248950499481847400799937695568451098211714556235510600160097856105686330409636976251689606891117401470243608286846455413847226788975764576647071662180434475247106266337871834670312810713662883227273517854402462701242090191584338007630818162010142480381598200957909205615097735339134973544275632044916828191377095020146031744110952487509693298465282548256751522793427742975091685147352313462428146140424339251919593882679148918025550039246134867468527898026603495062765841432321911572479258106342043990095369013051530482143611336496350292629206030679682336808459560700064291542773230961384301119956848678240273815768861525683296750068879054427898428026810009966248434821650558053030860647322737963134577511315767049029541195381294094081382370995060313893119976028291222983648789187438708732527049633792459894946969420515365700385305633864879066785189421298863342004821331183127252032171642308049753318142327090677520280159542148754302160304605197528005294513597996202502675861222263236221912661138198339196133052482018005504798468728807986245017839594490837028529396464257554190847372001871967452787568987900167223951358655066216700686091012244076003681869361506303993803922116931000810389040204267199176905462671758907575828979328180049959018483685928826445317202862297893654223609748103004678502573638625055139240805476357122366080540670756247283876961554268056367016538061542769806619462800541239285340603521547044985939895320804394039319851439176434758417949277154375864085101304642075656555288872494605212147122468753136923260650207009398876705204341764463406596696146920450672444200709368020987256571847933256627880352610993103689785710548329294148112739711384469056472786341263983440718148855678201719598030617121710124177130227218185616329784916565031613245990622328794981625777077237510129363786877319428725949752565558487821392916131253753149483852444546470318849612831710313735736281189312883910600598517967017414737041458554007901915470745907943883091864235805777294978572177133108698020569718773423121051668295109868042799297196704726360382392653984995272451238411379364391210399329660647032310519899148677654002859180148670546972736215222154520397856487249460072049047079828671234064261033941052137223262613157366575316583155997364018873006315152465315330052859287156946875124261002521999053574606471368910888823263436011986595646966537590933172469419023548496773213576414009441446757288659905452198776578487966794595324112308558605190409627053007523686238236595297271932742115788840145513989895404633171822467229482975997457807192537205860343874974281248589958228981269888666352865642268223431562116509768029300503905420263867497882445550497677774136658127120634421429723436251877029212486734455790671144672788091148069061418482586761532528035159338380251286427234165502541837918030370356475084137629545957221492081015268451984597091140869768092866920829305567512134913646926030802233658946372145966799480695708903443756160473487075709157823415023491975521240846612912662533414220223803341687289943378447588471210237800871525629854495355406733543312269839260368054272087818167170158382442818057283775418930299298382892554878685604432174993159155378027889723092644141264990068574404050092966937687205123572299497867749256611607541279243040380833180497933160320698656964467393454398188106340577951615420022684774514042342968755251749815186973839857708426927975072321695157175845639341751874421348612294505003845892446355539553426727023412363592902070190366659761806457258495697257139848222503226605771122681620001256462002250062261860238024465873021343483565833949836773214643423715101871844944368904137402386580417427355521860492276659455671475421451867848284614152391860604925184898631196422449530361861080644835820465459448607622179334591508042908808636598155064501856145885357557845779184124503759115044169389573371776229805541587859877461987182731113657274646936865759305496366102257031932166617101682797213957781269904352262414562431587686288058327885538937428277955854064384009183641645794068540712087550011400544491871010249058898658563405720436672108786345112583086154226563391413389178800895926113780659092938497338261774008643879649981233318641341562260770317871473194529301297530523200184526906949779175117022900778387331551762625723752141006407501970117474530923158769944841987173363780075981050006151527843590822159636522061010703848754360406051155341763370143174394875826256039842200264084246290250396703066465041589354807235273346804846321821124331411284562694370590394325983464880297065777043052598277696250214695573668136262786425909025469642115839737214585055472496138661583736067578644455457123358576816614757831427945135034439688966805620406010928075388084658743018777918667618252384486294800672693929422595504679299895883921371865914713550315820142184732650195799332049828477754356670956310875469283128869438634792132930247858940014357753559444490929152699739367835436421695936221398188073796675601375878732589333904078444951435724875175022707451635300332791371457506844797790576627600286813593844328549687909507648986464156903633438730455524327534800056933084291141691204422738597413578988927111581570242405221318398371438306307693536370234943636914582266473730007090291977715434781708721177357971407148803398268332715900513495969179812503606291551097110789797100387874324986053683138862080633904249580966427439758161904689200502106235818222195020522216651867669648733971807217167595990654882789277719798254064501371471057663353243586468997122831382974859563113868249075545665552910636493174544307619339996450278091968838559717401048413999626491638363583789973310902076550742236890430250014377817278566572895055544290868760533866793137836727741304574815772156923249373142140665012061192868067709268352613613900157556798757879838386386302247975072870504563673048284268717543869833377105401930073627246706845067312194188595338005902319811448362224512232334451102234817814633297626402083801757802669413634360287213639320288244537115186124618195014974601669053906047154716454156209220895587458596587976296100269941698369146827849579568306905777099232936920117271300281059448559713942809204209515493850872361683959397277970435281302745167692769839568732740787314217521608916623832715825572919679587292885484979221718438898423288995458992812666978622822971812639513725728742754372339642349692948285979692263862372732384481023044055243014866227724410453442202791777684492957079755336219943377389678783233267928372535943820620333947981260502736939801104297637954815995387444439257886700009376400721245126614966972847263541055117920026216527566062325444267827012807480331446110176930150792738296830004476282185400880084401047392259567455997266962755128394894773814109043489530603546625004517171976126817122209967690451029056518360231619062441672846036378090427167919706673176933147886993176026053610490910787596609251812511097691319273901454637160079302406933017596477764396352524620281492153717762194536257665254299925568989897636645580337870230277624176616503218462435967047903151891122260203578560535261059860834582933863122560304870065136568615603522391496837869583745367312910040294194411282858460875923183072543000055517254072824031089154168812284759464965148889405398212429611059777567065165761151985227647901834487125370393936683571867987878124342271688271791308172391854401888297865369224243314986552584079506808555581839523955912210248242398854027594170242785010864518322316085744115252269434706764340594213417154646055541937937240091642506128131452110382289622167822864162925846898259540710401492266791783779618215267984934615117415464481688603260835910752690399988988887327552919007215862714142009730818984969984337225923079528605356552249820958543415504254316562230203354432751611955398676479655512938362900239970810024007998570660386512813288275736316043366866598386761998325539013770679038932191179013493698332408324053800390070005650677704942917848733669868814860244063439383076097718056457661204762718265466316425401167357076482880479707485962063165974979136910014019879139977085812293930787383872334920697825206039419343764727207037762028480834298990584010410752622391504959612449969695933033957149872460508574355368449284125461472285734974585166905222081526545676164525862896869558635499097299632070648716246055730419556814936087345927738929203463625022838743502439167672220553277001611914267617150616566583328120555381200805623972182723011659606620107982069665849351385208802117680205442344095666916100153112267843024308266798629003334562775584840853757846748359821648513683699382562647374956585651721724959494152511771153832703481748918373243493557605615301311182661707933174659878096769543907147165742612056132855637180537681670764047639131864860823962681248693757805908845717856578754273898840397956617827786515243941452535420262793854396536390708650655992435457128837673924664172598210138575952634975983381997381669481381193030706969671764018839823125696441996876212567789168959193911887467291577178699797578647912919232310001264509902514449649848818230486625615149879311859975594476869032359073077652291058081171964241443229701090167916574825324222884522389777377545191732467809277641510336879592413812765397004865063015462650961741511114142369011511622844709104955058979817144765698503718821881397380984287475309208607233189498611838518238475445829074898870320809863929907948301889873408288740728627038594383601573784424743617033147120459929730790715643152844533940619633965572640577901682226659524580093166013114637730803394628317097616535909646058550455843269096622472446978870774477936220120991544078087730073600449714013718284924615161495130985835366707126725028407189578733598804687526127502272596574822056198880988953787844421854213988222443009119942820461195837622494772894905340519293711941136868705729472630361396831247094487122482953105294199390801294938170313406896896350002649992511208990858897920038527343672894880326411550569145793743051507946413073794825837811673941180797359670845648053713527410636081099657415154892812384439157080414122533044088728376998004017921323648237784377218549287169782953825899872262081857678383909694142793105744098491654126327839930512585765218090856333517471599558239999670944755442704718494837680224245973211616635908335484631615638736197405240948712005478510465278973032609311188151792586195320918991230244464293038598546863222392119950007451106607609296962334379908061838717674766419846556426219550918007884618099338044738004750143060231809616900525951176852962501796358202963345728058501971493450862930463172261466305507423767862993448757735245472191635258524405441466930211592429073606736392610814843177314629090009602261291863109581745803417333989881814736420270442825346826061837545665170822561844616863570955577583473160048694557688552831815737211421345923663049734575051370593661156767530959270862665236897401614551944864762248731001609297290111869653096098434406017273781880416169597812814450382147083736243627829362732940040404264677271828233273985400672856661291735001534314809689108388338005894224287251226936135195828103232590077970681995008255849787235401592656918797831962255928932054970182323610259631707236184878457617276076753053566272252597733662654273697324730237903631646213268868424291569588572562998922862017563735499359742390675950964412675183698947572817727312253058342146657642314884272785203622587056691694838757043199831402873599037165144318277329306757890192907415400991098887663500737176451285594636164309430413102749990611638214234078055037143034738713589137904348965756822984771704937839198290114002393061709506944636767944685087169982149711975678646211847404766811039376005022509530920276003842519510912878869133978819312788240693968642078671378722564620993873796514672786837034804606042532859440803011562874831603635450646360475096558297256297771415081459735701454066676053053750093495917986085263389508614586418012820884565278642469255950310725007682111285334385176857553790652243519054581123345808439466884886187549356289127372755778496513846448736733072425231702146348168694848815167025644811006158466952774584657246301199029917317173205745451666935294647273609135101104141693591733816440396573797827631587619992987526486950151403164953285588146428678409765190147229815302551879910898403811517916245860601728075998680705473387788659337985915920823389814001579470106873687307753462624801394025680299564280262709366440318271629861016353669837242902488195937450093441366973658950818221539922277436753288094900391778759560704497202221418103398984385124779010796135018563194961093817078234716939396471784143838723123689287514347507699398665611339206669869580434256301462086585718488689400479007812899208446217449199207870537382557460828131239019209153395714884146386165203898227971234726030918612336670728048664077784083108101322808637516884736061522200824945240047572511323283975237083670859547499565411639434010494858287928742411591565641069650275948856966211519732229140645088073812116889961543677163200288268807757276055000959414906465052087095472285096877139314934542856065412488614315748911895112068812129641170814011853904162972207785865865752682033761143676405258407077763831878361768653886981430571191400900624350257850613843964358807988524127624928465764323278608093080447952792075782112968847693603623924577179880657233327052694786579980007335938158718048951117977234625958882406294366655575856583795228107661303770587092803323691956588769000621033603923657865544700932899266534616267336750564596139411215320499435108199996133955743732267985699151645672972668466831092768844537886025887526690807109637329449398699419843864236311652419069503094355063952070043977480309542617707453315279758901080163334223197026715981256463445609032240894809188225553191010891097613104952197865074788537682899244638922442164394014944363534199138367044549946423138529568351641007413121456391123869340866058673645448275942927089297304801628244345615309406059876789592251869923779739774731499513302294171814591717744711256411924220722127875068280230355421532815822874134567149030086524386130919555592226101917793071384773919255118205686712083198940634749241175768769584488185914729666674000888217680532041140931609239364516851338860923460102094510823922672337944016353499301652095541315817624324089578208575263144678115092311178234758141378231911476485179620116997913126372090815374474861870175568763871687525504036861945318477148991672390891661936783249479712584074691329530429838539517688522872280930804340310265739888932037262637073835032775687703111363241894962773343720565922065446461884587299865733503342714823988239064081698516812722386590995620615022400277178914253196282640126226641609199702987937099650341342317282859307049191203988519641914270621076363091711140883539681861825683620207033717114287036237176198999558177203244603224150680243849268481323481751642788573308043834157347236862275468832386220992498412184253266654522830760873416590905842895420629409780332530715843007631014763103400601732921940531440377156626227626330792410499693807391421953228672661260147476222454431784823312441288925993766158770513651896888571723317705726141384542492362484944299231795330245181516294238700278816129450828747239060542512047601883460284026637373668572244959549090070143469256259204712972862378959699840163575177016387242298403297761638959996556434662334573690752014830992355116705031863890285243537936946887622687965445395507690790128195458159289938852197679284972003558895257605708101255872476378977919810982155058862777847152818568292182722759486859575293664447766028763355556845231584773066705996430093456398964028474398338084170766732192392690306854589578161158327172828112838994231855915762281211557289843615209674362476300290930937436737169578904506448041348632413546593944708991019050782408013411841491985198727122706733207716651350260641639590559681192200806792398529689861433817984038794006297025961455798899960958999853086035764038457829773317022241839870337613667373971120441120166886135543712488690876515220401374128557536093285674426522641627554658257195310655604826080975596614220357968858604016242455800157883192440356412252694312200087201898910363503413284513397251188737541679565006459599490693411626210618105899192168278510720103458731995854281289102907648294372003631250819071569297832879028898863557340459116428690117475102852703386896670290421689830026346506197087748169814299858707707773268497724412065730329260485214327870704001090348450030692084792742057296339875347195989220297199210402475044085232109366999297172372249221803555596012761143406811903076682791236083732339057972178744992920657991566361427187346404004689039572098696777358169897960304018248514636347564586127315569804624086007726603944235421419692012429362457489206410699314936469049741465935920414876261966448236736954804184657776894148347717598970063993615634447368003899460872737377435815447752152263236768710275488470962057269354540967717077474897662164726362835656155842256689776959306184887960939716114066228058292507078603215493069202332418382844605184885488043309109719800475009666009358199592377447051901131019519291823332515214095968499516139199891575547708141869730777372906421367782696923605396030501248261723284296095643841182537203350827140542091292256295541469811648433445592806200943431295723603136047623777805809490966483871185014821528837988295958257381112664021874659832873081634854197367409968202297966768794861598127264177015414243356459366127663217234959587768211270224337451200426620755381525002185840307250295914594293454600110682024554957902022078580086894521774749519397362965029863183843471938183789719085489154852554511589822894380679426036957052106020938644166644414574769604428991534181090690876118943952165854418206562469678569086992545650798931630837874775161419458177391927482804135235628181004164188390878517799276541836023733722803956625948702595972434529610874060160900317571489624085772636525861013975116652470509846703934292776604477641295928785635181295413660766440262958214905821747052994770935180314741044955131844268212624873204795053953755363756115389392288843431925865819147652451266835980498409898449455808544150360301661896090361551664369699384946158993082574692727286175587722835976344991864912457797057904551793941531048595948893354252774444358915813243116087660357638212339598020097419837250187906276793690146210437053648917320986150445209691323520611738545731278826846830481712019538425758968890032144814116871307416970485877167779937852682155626618725952886140294967427620852474526470043863233153636445853405195632831598190091857209212176746923638984388129182208067870285756344987262925681015833807631866904805457170577712903388036925545348022123902636624741216789749233905168897438929896997962713263325196082395993650728451227158476497286157987000280124653891562550933280064944517982140986744058087428269024158674142397606339837016953854546576358173068928832376206953278620185760020392939422221338587928092037968228881933284544703574545694248430533657502276444420730424208284068829682777175024729098262766268787914120354743885778677258142100511837325594858277765108940569915942228908418925900060440293930439710789203547098703535432782768474666637393674819499192828520439077489136907678534932446994772532865091133083472529989495343347669757237704957190721919390363719891458688033625810186721274856529501701579871306271890556449997969458482687299807210093319689375543690688014799775229255817062849500490248784989342016278287133595407779263342737989835462056395054742242789577454228991545594089927517770685312446533897706075259051836884347872193415028760459742033672011441814405929571959652037306766857843295327342822616187476958382350274016517314568708450002784561352192341914574983004617337712089789389074082305057185504477157898552715769648079158203264662800060485222942928162668793059678967269141686595997690231856624172687890035163795564085652862975707597819724561919767630636717678292851606669971408537770199238283726965929507942943117785717917484088826546810191860707413673103547585801852046785693707016163731399497598928938130760971800420176783797134264023301359065604777972872676183347464004892284573479761282859850016019654892611218937164109585190512657722809708023523067800813168249807798266386870835317868047543404316650386529038009875752418581034473926364976905463658395161612613887020139577039405881299571631896174535828383900702904557641622614520143663754442267256280881103786169716816149651624421694943644051721826541238939213053657108013446434676046816451840976789094018767908501031300060139801956801191022704527076346958462920488527341132663889007681750168596456221436800933613926064810570716367615648404773109603813828913905295475686113292941358167100446751748946105632932166021515294706602457828872349689031018766672374175510280532536822617335061051763855207408605719838870325271993257445633678449890943484274634632613847215683700549511520914544776480646138643190405225408362608624097620339264031391939970613190562583809686986000713244258096067559496540382146000992547098912220790068237783265603868644280115103332318778422362891697163467635541331467480552513763839570409688405245883962821588361877166141046137807066171208164736857891621540229288003477457477002960279074478711203247544403108757572572272466638814445416796232732651946535568611697869665281782839694402730876994608825253114998728132945836224790790210896368082385963722691384112594035667283810308767367920700056971510901549743052289833797918170157693702580609566604660225945502029540024658021566455320386227511048225716622318956308130828185974601522941031326964540784185309061423285618537673078783017482753588216412772979072174755869818892748034670047709853844938496742230474882958189653259661106408660233470115087030806646943153333619401155916641550166105286894847466875306530330714680393377948805319630276038646241147398076855677705928209311837393359835190147408869424682781410438275038061951841238094335064810045867097598539486105748937306642409711926069172170891329232656289014244249251707624652547593965565758185346728262099176131647476852444177612512038353153932659479807594669447104078054216694993042685375114357127471796053721243696760727351491105274781626687810441609252857283280588948083665010759447410426137893647747461179615518476491407981602582517091814747086694663472835483993801403314724831267481980889547254930486100671297865066177161884098599512449763843785567391512139220349871116630616438893575050802483234344299561955710330795136623206086656868688698756198300203018244533601508843886091290489184825727297000484224509592410994568544200432673014961754780800015198153650779655163159753011924090334951670823047328692584707646516872594781007777111411593012622168038386374290540188585126106234108775452803674907571883647306801805158350820385382140953895263123827953945397784542815503893772346110294483287005119914403775159399090578806470346356642743014176789217965392505672038056565724164944481123602021467785384975686184801311201075517260488491227264620943364997682023560793807658575838881999343723830854840261923406893213257917329195884139062583787297917793451450331634134854375929101737292776019964571654135669142316602205489134804745712710623499808152621334598282990204513195083677005523286251600456866968883947097566272628496649646404278497574548382242900949822402162892774373695828021550560118735695733301726955401462261348832691300663125436352317652059155923890067878185746157166274995074591721049181200586566679618024588160892685167490260164901004612169833564614303407275259370177578541900244251599889742058007452203892041471656019433320588954651339760488139732915193925233198651455589898800636805331911091620507368059180412424384455206912849018203238970310088584464775745939244425514927676398291408913106316288868468023814049698838422214683209090458127499530669386081449816116227959504698360669086418698506837778354414514847172824757674857754997950389632759317614699522072303224494533710755590068331451023432806067164397599187476948649785135461684037617235548886975460262910702680342643635931781330306866537280665946828310721110821106354726333456248372055942011314395557921677873160531421988348800613709077351811124831951392748904640834978551836933998215669730228234399700896587855292452066070725358034703293310439724939677599087020433818647326575221316371505937209339088811892124707134679106018272295710974342021083335650959094878057662617822333406801402931578130964490992757843318021325470000085971105966176759193907254753109695731420265342479585399476484546384549511344403193623522208489991589870545199240787352013582810746118695069046932102853553214519076491063607613292854430461847817391768914035123440010913153203954341393337660508061264139866218998345080891365030030004795412264601961899564325290716838113839962273206964013057588297414944801563304587601536687386756559582953573471631607651969371139144888219066912127020118939454177886359238612551100412123702459541217772921419770457722299934368458371815658864007163050839405898652885644890037702071548430326530105932363844847217189564415128111847960746693724535095241469007812996949218378516169311415998179809633807660678450386793231588756918794086460509331257365171681996472000104098093209325957861034885236770528302200291517670459184465156356404686387753717158362286299299498858627671488849501441772679501217438307952562837098548911527485517422382134846220399670936323028779877586704974440071446293420117749084947255337274935594657679593437026495086148041706450469983618493047446461534189850123532652704845740314902874009007277570257596393465893769188430013680878565328325708184634471033646882451697322017471993138322792494146884292713698378436943544968225309326199003039365325013413485125947687941906723100385268528959514461530947001431381869984144614739108091048527203977783362962980038344316086953956869019768440650088923803093443925380522864144400853314699520587420231920543004090059910972171138208570697973612675641518620082728768838836221365857047576167193586912212502065543307134942244842673666232992462303047666695663711570780614358930874646531265493664623645081973817758931439393448010318623020409456316089640161913786701554699695290184472529515383007826990573867256415761225816586945227936843923866586359464439824468744999656188721114147495552889834384771189378460636234228748843997494859101661100596526982859684730129713292387644540264199397345292344653291307465190037844536643437537735164464730283971761897019079126844350706625634384010268687892390058634558620023716612858476967085081362313159669932701515918254410511580179308068730652681239825395768660030908931136852526115580773750660627562817664774982133685852899132212998744829767850887863053564558719493867626465305460155959751175528277770616910891107934147719686770183261606251432133289315430335420691018882960443687885179722209378928418305657600597067981051140198241622906035102745288445470474639112966141922202610825733665040276279046428642135492192012152523572045828182379211589581434753951865883753407238953863634293957846866939084494467872722091294030090086104740199207738363433389488146601160721067629970431551772244362532651824094180291795047808405126947245063091325382353294795598385302990183078424507855819121518697284076572556430498098712829239224723771104071294047347823403853757439329814380057344733439539465713776763050459040536181787420640470379860596366609475049078451549274495696825730758866648357437450480382523062727375876646300491253181755711364213084821659673518114533131687590065413518216232333366563489103662611985471822451887939014458824832594103629631244345412933859374979381004034974592184655255122371393418876281344170649988106631899644407170545525088208671981371034984147575591286713249212244776974505258014731479240416542463929581629941991816277581007210832575982278376966574056937677123687657985551251109717151072839637516523819413485486107428379878254395421038634107166894533452599035460676576231610250010030502868043479303710382474034328356516162167040251890902927090428589471457830860664357399509701874898404338718287579881093684657003388651017336649165532570946812592623485220226612410686298641210628124302944109974243760223835263767479911167433185438055986382724894979697701427247346768941460107792890181961228912391676344915479594808149467769963682268282802652780260147708157408375227079151448715076038052754343074582629557661430999483712433779589401901791378247944694853511837232364703158032235691539766379090108445178589423402063147367399967181007926142840322997646683835574001784093132584813024370852773006020078601944159773769107807255971079357871817130907709511889897998791607083938410746802040296166315724830445973218363447066365875551112520427720218625345065341520828121974845920286290839081522715844331024212541441746352673721046660915424523907170025423274382402958192569471637828440926510056316826068727996812944011509525086764402734111384914504881506538575170509834509361465035253706510391989705512887130228131963014520042310565812417586175254382870794901806071184861101075880701379575763720388761660077849096968857071277908589157615059159460258015137123367044436834901466288900090951687150703418670540106410658805472927775319984220544037110918595454165291809723785877244705831395439247453074318520044219500262646315154902655488082135146926874155676627514313768682249715588001052413286253272096144067641886857956449521266134316031171025398715341149218316382489989642159112135511783195925391578644695948968179920356989078604243539885980026738200526955604378187901880450183261434360484234483365453625007701527459111449502355510379574944414265232952640839581148771968826973176884036745910263527731210647530799950047463242602898239277328914353979110358677926931363278159015274283025568975660674005144612874228079842077441952035434358133710713893094751216280494915044998237771623799083128094553950872007484029595452734372474212670361889783690012812115305316417474804295226474224888920304119562775331141275909519432517050892090473151453558416225056791756718443983199411116405478600911124645854712242172186925099502762055532379555334384316908226344511727489785391025648164747172364487075876927641324049132517091643272949570521284158902855767807566259142394531416048699544605743315558951986488152416298725438531615512904851749430979107579221737910003649127337229909781597567296591055356715351003578815052609251231352279674921175326757193056896720393159851565062667629041327194054571281520546409505320625096295876148478839306838841274137324474360315142979515313003298098935203238793624872135366171171242568445884176826727699647239563825709463481568807027942939742059139777523423103868354765349861468655038561868580619732272803086023120122713507824592176998837241488492527943519402855252740293040226702427694271235855527917449014263512918245314046204330628953743820978688427290887185718154798467952810857655983662824441890456639882317611641714746777333074880578711112289126735809053808647454538581492014769461608581623923305115650164357012281163937429420228881965440163805506144654390434665223229942355233795398405600870738897546802781352607950105552245803786896567580833041264097274547032166078327492598410212477408644607204263907493736819203897999697122821985411241779411879253539552539807824523519538700713716018737963223702877718878830436246951882591381043418201624361261796048435670235158698376171543188303087803341925873943380294083942353947348908534183119573460654481276856905050881928950123394454678535943365986762827178669067207454990866856478470860080051387563955393727674263825204296982079716125685577557176508436384985673294910299071144553955943029000110540259362567412587824485518432007720391850338364141971547097957773255384947853764136423210252952490264353119345797782137179497791198267110729184344566103573922453784701648104879890586246100475289480182680217030859617667241895157979815807434462652533444839253218825120753110010926720220284160500892065413218117288250532183346424259917755982548324261606461147521260966429257670662046047622016773753988778517569284306285158669731617110859858023507800813895924209233081435858170277592743037263700772353737873653685677348150662628045198955809761441172247565864126837206690049009949273023047729335473116369275664545250672090260560781898353215671534963455954082507184618137449330184286940976852878309289504797576014043721264856204712745616647970244017651733669692683489340925616127557388244569151865020403040189240877739435387112020948796590479409706270131339347124785391968665473544690141429851557867030446005424600183892132820371531936756225729881010164129249726741243415858987273615209282666213981315185021510306651885800176761495536030042842527722256926135338872644309553547828041321644143876295391597396765708459525745413067186136630841704697044774952909667875309364755258233300342893979376298004303672002942148966101807540528811654238372986522950196517074717009962611684120747557456409164093738704020102523070788249653124107120995171754617479606962029402136374485202031400832424530645655482935858045050943970054541172124450195524425621667168228618717637883655779444772359800689576367682437395582089558777829529310538744140331700302308457467447341290188829116847642666409516110856560068731377482084158353176921944384730934306975495763880177694835308167342053837419187914522322430453137460848952759921872061449049646254300765846796413692981000279759450967348751891243504059181601938034010982312075868037408238346533596323787079827263570514440968110469423394728823439740136328063064788457893541009010774781462713418458612836111895774042831431524022911040451751291855453861885630748371126479232572198218670806094895288902388104992570820271658018145342740958310496369065426118652748019934903289311014303286069747609213705177677663879916025895165191265500082789088650697260411038633688529168556956722103890297154611114637634479071990329554627693552096094992740467366854035185422633628065665617225218318632612600733895665226478598637864062485131282766695525134895287091653176388274475023799566871593893497260919033917150152658902945805821018333467153484305654151842886938527734704472983726279897416756294508656232548004149011251918387406396757989154506767309241889604057119402478808397730368276312812032944373011729045313442422118296276239630128688241750010206329922384989481873078716440615016302918309615965930753866390448070210959900105191605699835922345119553827110959984904782121323797128452065804268343353030211340493468932155134506205652720138451536388346553549948595896441953699736414402000666153636165339041049541970054498364535229503040813901608029294579165867824219214678019728571664022913200951781206517862041865416141772178135702944218471635576445967048111482872901875379786865639889845230415289881614118793544699204888941652127491467492372262465302525574968150477371093349138953352889358291179312540013509769924367470542953134826504420930786584487743931935508404007247235543372969162691311079084335722865212499393682208183375605438662474105137913396089627470965810649380411796593674010143045715808679645463704387572659960372576429212405221749421411786421599178815636284543108516825772503135967017004522042869029570499168470401817057160702984186090904235467449778501252048632352017862068045471738426806968102201328841547299304826901774342686249639384310605362630691498954673255626808096911067185035491791421069581403963248959150561172837033912112700916890458800774101383999088138253550520062158486608135469214153669804713849124303929416112852364973868155200767144929275847532428877688105114487117193912327688625603134625280584208361187866837493494484592552169705708835575440561054237366273874055519660670548377803443759998797556054533029472563173554487602147353615166883499966371633754357609862162645912348009992685351291584763503497875859098339016587858216726713300114556314012487156674913414815862409021083928061495186816258372993150711573704998432559022173852810150023664077058536442872145838161820531119884361022566149619818792770232281039914197859775884516728424054075335729650217913744417609387844829069331594475454232786702270835920242615560509175798427375474629644909897259575729363135798618523042762309940314553571612832601724779415263415073401810984167132584756665707849342859395441697862766242967642155278454792855625067958772874120339638213344808219473961720528893877055068079106279683013962309713531081051036884752443957178398719349313253778509131764947422687307854274147950842345524790696967448543745507522615670504295783704046314138132500125062774812629437330237702986808710026965567576977883722935261717757083805647152524918786309521033656838800961646301847522835682937794007046831334459245443258407703922127188471622123581031641204051818375242516569557688604837797594756035467256683492643322418112983479457196931076773281518698782058735352191244137922882610158017791168632878105819586373462508117083954779077393106475434218495583151174824386816841848881975154542160296057765974732681885456595366259282956133802643633148038153251809351495606089638219308824221558341154543200369328183206873126625338816060806944701051926070617456582481697337284078725069661326399328932172831825288025271448840657322974454510486316160879925255359067998947013255256939233100211344931423672024794738055604662650740387222985993925276942446218345836328248584324677192764814766570011838445440270180698854408801545656205166384415453452018700793923268899558446677900498694946754198881339706876451605144647822185084338694157783099976607062479443843973260268074694363853809472474548476959565234100382617036035818929399412999611984123544508964815122871868685694542275133835379286479258336825972445114170267946443863400122867909793947545277624954162561954674480964492129494724343150096761623320817969644276636680039951608505653338910415564596335659086116994028579673041088452745337704200894018187182656212344715942443563719269866465091302930640296056721676126083038518458961463501055888823501382065827791390491053301588684516964967655748477996255467201983571802421052428747255630681364238170799144349514405170241324174252555475435628426566895636367169032158126069133231476151020509853005958725020556596745719149162343014048929250070163953124991220275708851248589304513256044064653508766655133486998004792206365024105698633140993709549522411308890689319626589619598073766088954003444544498671833560734606693826953770412026136800503089539738845536197239909059645697331259749873861110649792548443908217664008418698230623424073036227388747936398352554161985017604059289403179207617494275991813431241279173124382802266446238409499022900786056949983191305277281492767062015785528624465156877684668245268189059215271352459061838031374844768916807066956203963605485859284903666289164476621909175416311332456458664959201517334639631817997143861135010349812994059736312898777057075141535787650806271071383919123706438477149733607399610836489932869944869655831325566488159627543399865115655218708526778118548769835767413770984195920366479992563354551334831854434493842681941409819152405506682248486641067422058254357807780739457598175085175603181228193301135111150659953094258290257185044289211021540756044980430726737891947758314660203336917285342421118970889800262577282899872571324882622623591450730369559479355547926327269865285537179017383626252983107653214073490666583072156642854470684539576766549989304999939171920704718519719762758157960059474942974534473691530682093629468880593832059872245983528778159079629566086662275557715305439800455028985933147067278672532910973393143360632867121759503863346349370783472210667276932906746405828494519025629454861611734303227540801792454674725640032498490171648760278019796655953163444384673201040470870971101169608452368051499464968479528768693134708306986810678234274267677643601797410885921080494493427316856488526002604931617678277070963451321120843645430354900906746845515707388951337191543336209576508518137594225774010687058913238179431257298011671718204001154784829410947634498805245389338272964994808109859721944743320823992064426077907493116581980877979519784174658551518338035248750596229098682757781062271666083857780711253639987319150540925029432618977843376094006667973046394174266140756723271856095965424051990301034700896796255044291488164667709115704894098312695011626330450811419955632746546249232971354514072072695259630350948518659652668325770344851872625035958515891785730672613293098186452990098874546802192893541823175445709863414557236060098360430790504402149743404608017583126309498939173826995184373230880453768530472031104852934927874884272097779620082208805354256322674515858498598232077342054816567981972785432529676655778147457296571069816785284905151519462345619214196986434767998628093317912777541043580918506373766267247593860041233144953851647961081858078125797601262113657706612302930081065305545923454644753005212083747686066535756244092870451534077510968960121494598190034271305518344237510403904363172324005190744755491638160809612440046474147770702481442821348680172267687106142854448785827938671731148707799040447140572068998544736443007339219256826161477676786957179034903399323505027168487215722923557427932381978460907403976510908909933311579035236987637527462118920245853712237562233404409031066600949672419625293178453396881772720277999832739600212067770711894495123402431354282276372653765427854639958831373213630221416535686865885312998977390385469291668043153348369629879512174709706304076345972427667654247953466297432491717471483418028196793231635077828758110500397451940743780319365701655479627278707377570895994325893246190947134048918303942746882853517991627765235526089084695299776096782698723851280238470528706940435355492300801432287363080034025710521372413847443163195124853940909650157285526306406660703945552130512925723600138121808103773856239575032955170984392001433542074655296658521117648361509449317468290917589758321633362076530573451820910037382668671938139520833416278011441756176304096479671288213388260105396394272745994202044262085944422598572719962979112061126592100165917425305034421044512222282687442203319755288021509804689428453859499313331716502195224436093544365953536935471167230530593574267496176561052021312182169630321523747432912878629850086601967928545554493160812322518585544510824665827928349059422973925375064008795667607192313565297138244757100290453031007604715414806790070955757135427791045570625968959298303014156561214332537271654054228946563387646806020681752854961037874438583762095602436688166087889486736801471488820102925568278493305265002488108601190388321189847522893865671120878386253749440882292099177208153035356564638950612164259136490141113342685224823361235411920553396498387007050700688204079469160274492458529308869982619906255743368854869073440674910162399982892858595211415801430534745288359148291919968391290555767313783641610182936532658816343490403870895728500979852044419555699889273572583678870950950192181463892563311344242836502371990933605257805477620646372495729853179556723840378167580922166031380953885843024287869168487328415303370553662554926900460508353316749578883650672550692566127356033918933905294470093019994319048223699917451145830897636316521281779470760086877577174066115125381345631088783948189569834517900836063783878810211419981665090631470429898439063779707093735771508187581994077728761094367062383780030992601205325883619483684295765350755893433753552603850742820297249508791621771733437588214126388826915561115216637573737006502589661388584466500406321550035058074490476956194934413865539347596977442014184370248134519498833560910506250448850697790969842107775765831647997988736144092234708657704176041798929928658748740095350877673531350737949826199282664302975385950258264032007009052396104610714202527548418730539458954936891868319493033898732855853250545936082380843391417267689934626239007605509313460671167661761796386919073823347941365918343063528812812713187814626908838044807864014877013590620514131261631832168119370596193049977697532928941189891028622186098793022630979247358814718718620595069383083299576200714811344358795311916088472614456587634769606473453944463997513013453095429646745132514712836664595713266080574239990447770092404968577589003327319883037961632839799724978400107491107818959329979265350516781297546015652807072100847315129130871581295876497041129725616634033872022728728109183586061017936381704368055598386583960743500985069476648560986370049512682386353375474958422843520887892458622621974567428708015561091691033306669882454517509451096078483079847130783490315745646337541583651858639613319095324077726406193509257156624726083194292932683915453179959856746200936773501757663066468584989114666946634441118017993499590483651479282189625604545930454103783534277387188256508759385623205831405522031127302690865496057637551244806705623076383619459265868250690441830649439876480188837466617547305858950605316668311816731261788745382971658371305537203271535442811647063606555904618248273720677307779990393734582905933667712222563143378767663788367329606706874871383084717185585039382368986204326949667739930043264087099688668421025987816678140811840996898050739087329822897510051570695842989774519155960955526016053162209139126888577092580773379742245243578303998942060975394623185883077362858260696565267720479043275300458578462839741109692255366878728861304251318575756289069471382679405708681326038101833664803466672820807518918040388924996069617402444850733508025792423571215235544070228880865455624865227913334906950641054830359659915829755788396873936011556932053735306368909955730028412710604242802595371174872314531981977434970972282722119933091634464446810690111090227943040940488383858413876128636764153469392588804872295592538715642195073158660343235304612642691226740202601774475836516685756077407374582173781186141689978724717355443278200055312045760369838132352309031410162603176931781502315015974370108509931669449397176769649936832486836373029695202234799462787150725764550037666589177653198666259458965603052747669477413192625045184925983444647161682226503163862003631717594392781193059940759257390926430750860217024963164430087548514534997087580117546080590577874182014787959378941127937790674069378227396866204666067543846841670787432962130356213617235471833482263123088413448232722360093585248570047255541098431186972776017194189632362228544566692869294927720291943612160094503186642074985423935870056151620106252611553624072353631107847557994821398961582932904705213419190629470480651261275669783973038148237964660969853887498023400465425214539790475143258013395352733636447414379237689208854935823868591553548144150504283243489248492149983634696329351168137362694916595280132808660051918814760103409745466919583049030787258741423133584527804846292476325951234828432028531138718398314731143621277469830976970561389458909822569891099792616689777013408899080871633585892649079060033268091412753186877036863346355441509538872247419556169738511655677371263465804094087479305571081326724776151910869379551140414005766388616827437914024176554489185231130014466670701001335774053918883325691931100825410130713703426730598645028034877165971892959835481688418386566079987141107336999079312649963012435981416550718320236738205151567767880735696038096545197938907478824103056824220346789896384924797042296201126033129447341344812070307988242598304440563372464918683994580418146698063765578642281252735835927519161328956255638663998107683095495814533122585683309663831100927339795430657789112175838018971931329575245237635085250153378715642915835858763657821015748792407404718484310938713137899016743076049496110355878658828164586445516919603354262534442993012586142131773320312717444997387318666025273912029444003620892763455355557313736917386004643535552765889168180334092498792538752190235281336417364640356132512397801983673850952833263662295214485200295811480176701462448527674303474353832902840037198731179986619876294890357610773661431537605800713841056428560646766512615383753928553727392609956484400079846692462612635933409901079993923475851429676667663426818788790743349552744735586296959003138156751978108986484119891433499199137426826011019154359128137109780689557697252082765569507981566562838585240982692492910454658144185777061466016528252366634092305891988988933287160819356485987480752312528558613199031867927814178230786023205619855034120320512657991026978833042843330122877649200305698742488496950651464599134586375695169278112549477627525557728174934962365163511938031561160245518480113497160134287364761285102166769678706920920126833928220264369221390772252494539242467615731628126743836647614207338429951117841200053689367315026780902700556420754058726625644575072035148600062243290753995275799429163455557105072668506777281838589216306049837165869777516101945178947082186267098118678069664170594916671198606008786941564512471497420787518470870221233647287316505471396745496709547921767008922861168843103452980125022635017178151806761630234349252617334617569486740582391815466283308063221801566163843334968252254490410696376155001523514083329703792638926197920528090715567767692371193934340941047291423132751606892241399022385424804955628418085548366094256046959618982583682989998704514441479057944985049633060528745615198281376002456774676704215765213822848515520730257359477724092517979898335962142874522752102632398013196293907909276295356573025711330273306626181322914809725812468753355252732139941806742916802273340705956903817385068666382182384039852714291469442390582248809540421357318841877676426213721996036471105022091015377546883243575136760588591929571919179848626471026721716553434704859851232645188718099187321653749248652362733679429572253437556371293943989633151451147657835381652813447218302489964401371011465531208476769619630334802976889362153466408406813754033895786702585507761664058977320147443353894643400541451907266859324652371208626859055203156856002350419748436927400192004033068551278174025430163520030945323791259564865716510124122479028485674876848513846697114917788407414832203685153856134728892165228405942897764697474569827645051215933339881274641435600108369422969292898109466520721737471551334511868421957542775591865742665440234213998406308660626277360434474618288000325283049203689512220393462052875090443893894184096632194978684301316355469821901587406586804643860529599728143221783513751590145935165391093440425772574464748599253162185433466321048188692134232976372301280379036654557329710895832666368588461518054723753750920555300600044432648568430964009818678880650236090299077378160872159029968593045863487415003427395752400661320141094236491124671575470531893734470885921012863969331554255322810175908642867671947340485329307183308729346699598175178304427515421768302110299673433293990128174719424787926477353492964779925321194235553135970953414192898356876450348403861204436871657493536963791095263537986293026799627381672584766041904533400628413696250553833348048265799145749461477820115417464551192729295672009365992579731041357791652731686764880706178267028723007996324107228637004880505021665401689284177612256180854271586971786832530061147990190349897717264491051721399077254637828066385198347882617458246606929231422568684025165411592834573911833451315690189427317845333067124319916520563720205725861006474374857151427751126298313830291128883960812095901755007503783925431867389947527429495168444924294761663469866072381511405751432038806551102973411062514876076967291891519695230106108122009156115426648026825304210847826183847136272551437977537260003209439688862736316359999106684300127383727086295787965521030809130340428732125321897128377234849215047962698561411747489165556197058574840351073713960871211323333167210074018580687896889711908514441413225013227092129325850369038331775495576297375787817910249929948057012116015709999913951967783377192467662252867037918179039622662121459579057027066351272524051485342820815302492935431414196526799251690917829564055917044679472127582797257910990972086355926131035500908236578051425215203017405309258838271089479229114647912552921516747888170957935602120849145599909878210115447682559362345219265745886456454564433092989527367954193570813600455365586503620201010944756634455448379761095731490603329087481871938494473959240074995885878064140534266241452349408669809440098916825554218886517417827094881573495910510883817811192241911835219954771958310521330049107451492409484798177617466340439650507095303879146529539498214216083565863982932235464266983162810815920243487995674125725828462945036041600602270435920492233981120322844554556189253260865117281893737690949929589953861944627298428823189559512618251631724130724104807296891443179556760323146029914926063783672064492428401973282206730594465914920435440474622979128266574067529742881746961972787112763610874284092710604890770497462019865141255660994221796252520861682842757756990155554397815747956104370763455210839117885576403130289606501930394706354685221915241029672346203119673456935614496301793117193074114951248886683680460261510317073389072878635469553270202599722848251428288054013275843095661001152922816708663170874711756382840897487199115473542867764184267847761551442290520149976615646995379860235548738819876995063370775067149502838220116817218550647652672112994481250450121606180537450906467109597755631892109681425293743988951199504907916350139471601139362360748941291430664686514569604045712070233188992297445133932135107255192836025032930657820342828642618159717596089021053638291667983944720638595563943758354370980963543800406449771845457466114979128791667732551816585662788423201943315595001039977922358107664712022050982630939983948992629641215141458841844533880290285609511490237291072139398016614830252780741057715228096278790977064843783699272708832677267311561766557831171819357511681218133777355020698341768352296491790717300057190393143357993898853061026521063315439809003706128979356068947356349494522749784432553037960891733173942165688668454199165538816332414189994123780069203610581025406558094271031742019588405562580873703909142883003433186502090647840384011384809346694434319849149170019059480289600331478941020995897171530319127720973449397888317556006102774705222149816243908274104694241601399729728359862906452169998752763642966370711461501774980130680997041722764250861804599016099705797076281750093543433889043786045614747639948975288476372201865782384040312082036118323530781376103535907685032488451305635346819697246340003463197214061301415185018709803669478466155219746635960949426709025758349237809374159036701784871731012839701326488133989229274042133068982336225980900851028286229331056504949565565277596313035191051544990300653197557108957348782087347812754141566672939895895417921611634950947561559290057210723608220953599161831650197458400144061701202873436012842116551489302734345485316529089128760659480505409681764607509003455947057562728582539591768971825567797382458533380743182777941672705388145180950424825775717452542209083493504174627222269422624666915800962896743487233061159758548786256634792675117657648338636371381893523116366041056603039775844260808788909130438145829842612988883615272605988345293823134629670672363291307579658591991109678229026188159801505785900859936249991234532852083613559882445106323323899782526944025258011960181328132856828443351320500267578683707653704894813476684789348120654055109948731206093107329494263387075904641869675201780704644791494468037578920220031047074947007955303130146627060206008657782448203349159053489667988149913579326327844740969843052424993567885437263877067895049221638692072827080180648008089246467188669318442198610442299550771291509997237505425312600211450232933813738227025376319375450481924732923781288602541275940106811057779427856681574820863420761384557082586881344137781085044166240224701276133495332211480986942095264089262387330523104968993016821357564711395009515837940247211054232898763780443918756382598492988696325388884694536391107455157820096938056254138177153019655795559911542499197665789094089205487189456884619923155961254696677541627905432654522744717959779573492697672125856437879405621949120427221199163715112634662967671531357328833971643007416014428050736223566382266468580187757696554227283067325620381567695691659663928005142943886525448138489303578119985146306159217985415740577846166295594745825641436549675820527561806050274261479895963567711683015131139363179403968271799983356181424772637837748697254708227735957852451271631970062346815960695551650069707304047868411562997239481867324334276861606456990873190276163939679646373118420873867593363435568596906827974318950707304129226705388773412497070113344782273601168971327230095819605970843697023789595526267366743037684292708446129093760777586590404813939363592027160084908679680957377782899058725804255962048259157977741171273802867071464848406143430293252308495223526300137002022135181400166123586209721114986708235469811335459043476231219957060894676377796988518147441397297566580618499012155162141568959346262720884683340186250410570780778605930228361424339163241649907599986800818863273092054037551417404060115440324647860637488036775138446839468295406942621927506276232787717767219685808187846788017427057829093864994210602742108754043388736937631208551579900913929121746045971598594235576796412102173654391887062767193125260239384581010960158761673627310601996444200136354450700449653349599131554519565574280987701418264199038959344857175539706578594345211884658902790497773987096157898328376999649276419669606617230977184822922887103892540044879235580156887184970721371408556690209354235423058943187994451965600402136497483569135991683023115926210071420642778129843958914493630343911888895316078772862363433616408367524202615645775295370401855727415834214722440813988247798106105872964409541518744221091557375578361625595546924020861048298403055932964326357759688211791520438669659725840096299011604201448974025650275483798165454039600626772653804586387105117153189949729253962250441684273238575544562992583712651330425158118801261463935755537532913353548436078293284024434705139316590768234833372290533070343016382410425537814835695763012170383881663996234649809110732112889405736154995601270742588993632895313949623998658332374535955962441005037193493843858072950391919731005966158154976656245137274123772554831146091942996366463612028532541956852388218511627041662688416086253810781828706832282569130274962989155669549255788789946375235035335441076655036152643365259285849896942386006945191064705094949561909513856423800371034763617779628953088212539028243964507537561221964782255931544385956066210029243528115580189977675787639142172607337484965781324175661174779992305471350969669427671433398010205466716118829375447811931093162793398893464846828820020872888788031002444140377108936353639187994877424146616303887457906385437461804558769255161387638441986151288673297409789425197637558313502670723916485961256492652297335625073035713977155761954574553151113923913318073592764066206981260155623228930647736844739895816839808251831001931975504533131609187152426876225297384861088030912408571302500774828212283335353788588907110265902485599663883363627357146335706721512945046962027429673461798567954639695504149800221958462985088180294911288660301647610520533103986782513943750908301003654432248272771554909074966523438035034653206224174176101709989458708739304642647701213736598800691636395735329480078168213777996502498063016855529384299773158377392683565063595159533568929068946444425075018195214799899135074701298211670211780708304115242033444328700921881689141977818938341291503873503297037293300325533064434999531160111259619116798734418325354768155083772890280163906796496715863700471363089118778622589744885655825285400707083952572437285838711186234701263458440857086603275697862927369055457195114234456506231831164387997627777591599444786039304376971020853168123498575422806295461274102711978062527924483740765178319905376434710154409065089187571816825871060784308102963145490431660481812812254117430091816373329192738128804339929546972169496433872742344201558567718710663247781402675244823787460385225509616903762904005237012209570845745712913049419683233248517756573067660069146745026105646423451043940662427915563321971971046228101473475944772338422157433503531202489679597478838319205181487684881316540888137550831469810182184963172807792483456102058540055334489983803473810545731680345290409362789849921192229306388429792001316035783132828714733317329779614062725864141089652458429936080101911286308538330632570277236570238140796057581045742413892262393032461950793524918944802550385125988746268421027590769212121478529778337463073753582635619714835364070101942991569588447438036337094485901588982895374677552037337679779335853691956725710350756179858658006814289468188486169397075912555999203337459475555546762283221879635447482575279183424614167527197125759736637014577618423213868060119712771217827878134021719224690650939961608209291503149845654238835155182041112738716216996209676961675717024720397904131360666916241759389092565472481465638118173825236002687462922254820094603998410642812240433450239721105955493619060483708715936732526822488952139541778321960991939632567770597198901683300536645313405334010984394779145933450441459526429051353426782042599746995746871656921210377390439706856792174171075167276485834192396971055581212275420346477411107245783437712607694435003809481010431740430922397394965410090759159756837009524011525439530273852002300404187403573588574430233731083244627221140232895554737066788376148425100870784629327455494461690554542967235936450474909599125448065257185811136361089927528634477043275045290108351373387434889336405545006021672515348006915767751023677366163412275885585804975143442797738198736224653660691021363983332498066033598767406708139042211744013167830248317359460246810500558969658981968661399344582537893227823731622315111205090092497363729762001504858316126276101930737434337762628370406346637463016634249673922810394369685772886644001576877095225061852344944477981056186377696084768241013877364098783760137043982132803081901480486441496911884214967895383758587243205780020627049592387286123171462228199351266910727682965426464551507442018062367318054442399510036551874997822495160605851347801524361098240688469223085007159429658600316183326687114325392774456673491759061009884362687755171119716902476803817696057816647769536733635854175724992959069186093839338424755795407400367730063592586683118589492869647192077136389103075308644390358805484489104228797945209343633898517423561050142694949898676562651595088019488778057445851631415722361317213132572647353021801798064256348474444547498659374260780492733881755336759952532015840468335948042541805113387831651493180055536593420166296646487044132951512650898859166377849355525566207331510812870530399958964005096364773400090065544769060449238914548063998929903455159583834869742896807016548549102652887650154201418734157561860648998911622777268170106392939972795368052908524137997290526218884325388240505177528143007339684987788463094383715350223382235432077740589123015797580419198040295963174478659175205838489243724120776385415363384805049337300678888277681948868401390215887178435640765937549184084946667779251110291498145006568236072144846701553551260606018590511126440088286897722182756373384195480035658178257241388704012438772011032772680450398114491870743204452018743434298897991442655599008902014692475479859535722410689701764256452924551038425913040150368581846650451561057135347100980078765099792789981532987136538420120251274480170637529916568809312739225716033184527000075089802098925311224782818377560983945405393839567710489569852032575740377157108013601518363759864198521773652440919968608356004953345081416711861624594999228794848039790387276465144895617950599703135169216771322480476965142745755658817876752776243764064393911624047320392447134101184470535156822194263959506789988459619719194823115319887595414677742445024668539007001361326401220878872564139195187832650873856984462248891730733095237615577184994848462911775171123731263047297990583870530174148011854670582319133853917148768303541353252505519867872704024683074344246034482124956684232957952644922280793994831407488912628064937048931142732444481407892913759413696856249330541229177492060625587615198091081416512955495159705229989581928012904083368981178366814314031259073297639323405844475298281199032214011383131843699495022950718042307926185860153626448748187146448052472396794570754803022348825580347625125398998407976165027839278640756921862740832675435909579931496393819810593310661199065343980305191927544848834636508399984863494103289443963773015557516916540891053018557197195555240345534098101132815607360766492839683193426418678760478640001329373333270201475262122157902596825583851222827488178285355698930927015447676936050553895510926837212459843702629735611356229931946039431428093901602617528310066091526403324223140896526364768818143401362490169607639591857110106740715836650291583516133513467066415335487057923645465402710284535054662268100977792332611299901428233910767154045587034440301248964878710433708672370912252339490619414485493062800741986790803636326817679780792452675026861689939352423992382693107923609031169239806826019961526711841632699859750288227872091031628307539272588136304659985496211902347288644439154550639637091842738993581196354673823043054498108882252807548945164152821077064902088008503058469321496074384055906236986831809164458511135249289615081227131549730191549806397762690577904553391940496035404278120241011455049790088638814403028692111431417932321519544138646053998342507010750171773695595163520715377579850491315743815915975880284888797937556873394374110092471954738188511359379004768376794646886687314024580077255983968790206440601162270346815229511993162341870615290835478010458631452968952049691601903965687819774922354833689377168289797351547273864989366222948902449001868941968297357071531871721193380467762784849669233576465429289128332276158023338429495442346158833006735789190817932461341378493112704689224862037795213165460311196613105071857965240579123787476741817671818549161206817741538308604516183573096737091757985523504167441997770943324526072273105341818339179408969975389337417075841130365340115688664017281032329906476052453710265364278641874193943375166042114354736101670675678236696510572985308882622465877925460499084529850391772268920445477270536401534966670086157035120192678395126299465186515795934999099198139148792832128259591094211727071000932447317651216140405923814866620697917328947092007321843816581142179940480198991598326724639110497577570833262703612610527228835720710710386054622227548758585252794095691143252156850789070907815132462902725882108513653155932006356873711991878165902990506483407063569225302445044431590825927370565325708540692576581611645308319013062465616588847022736113005869687411869690482238745257669901313277259535747907707269959905721691022628420510397357059882491801674060638400439412920733173599046875326097859959393693175097370024623255439979981843033155543643761721297835610396422058682009982052283807624419430165024533048657219070253012484557662957565018877569386940065974797890603884527301933928044312825049283456587992950084303316601119688666405717697437270108591299317246200182035586138073189349684477609702977077429784746568255111672463374355677375452640780798026422630816035974515474730845120228029810797979853588892508233255394662130260473817539735190857073827920703033741213541501426601974897447643414149072906733084651757511013628679958824666958822532704057681277220481508062542480248239138955815608654201687959071655392304318559678508195137180831325890537996271560555252716879853565462999364597825261086148488435132458827376485173279493281415169141440523320477696825952342365081517209038440313731765506613761526809659588155707422861513055248270664603418363926786944106811890414750638599748030965267461556418208067964136247794250923456160979090999191768541513813936760918369722625431859975964972846059963900784906624922538846576461295234840286782082175873585133293180847938303911804480040522114826406114774332670424491881655877457280577380320388427945433638385038943113399945810404345301306885286600658798646423518859187712875375382573088477903926119955869420195862507582463958286494745597497180923844723152605681693461790565904117856802285191229887111932996990873624029877556440362002563427433639894475023563773451887217142656800488868666986623695474402333202318387885707237418161612603829623365707927008047438373062966081724201154101243976372520126671011183689419316921167296432006382142846851724809750555914952140602235616851970484129877522645909380035695076265049386915674574633414552737887527840322813671540909855187977307557394606844451154890588687779408999909139512255981262027864503627634599049605898414417743081211115285194402458080358060594825117041001342638546532456340094019454631846311960035666581488237858357389812083680967152671236334289481398976613689303312104078720790747955480372310723410200946736678732007520494516443417291866538085445612176100513593669191906426247335891222366557866580287107278073019764369250070660714995277207092915390008017124110654553277491102613624889860653436975637627639907311204173601325212121251693672001178189788530314392464145069337522536256187728380723080763643834897758424298252255859521312502851949819199211473531184015567845196044984384813198080684433078187264468194959668836748233189963637833702264748861438875717067011521084934277380326275173527730137598240602848199513185417200890005401839636587121762762348129258324859341458428456719352176523356186356887743528337484483097161114020499025385274291907918317723240898705049327372449795667479811723552420844579950154957559013274198085817300781768787868260579275545162018145082786150684388855665572594148877716632197324485113905076632806288903654909440369863111390117583866272657408417838665134744194252173322976007463907178819431616009534641145330961969484371953567455206025306312090249286774535705124020637663857503086624590682617145344345349427733452170961831803001625402322586784433417234577499843548463336143961028945816844783831987031298692190835584117424740530233168816914184375919718775493187006514907464406417321840832418420554845181082526396020271481512924824282658040784709982151299896433089186175551655580161852449519617619663521014698519654550266802089764293158045773715095145793662802744234887418308534731750123577406012538618997012655099909424141965713920579998791969968630823150473335582997492338182627258795801098068660600655035994768996921171466642125602113670293732122722220699105240527054953561680408276791965338776504430209751890580257216832496987099040953484104921267667777321687112607431806542695624555662852709402076125359256098274819239380904298576657888878196612281364808612525800343970000953998655896609624140260390829364436215483122803044761686082443340973880665166102234319443346383561240412610828180259182082784707241445970351006795968261466092005402939733854672932577287209951081048763357292616543303392463646771500390995778726059038196649517481621402039345163481057357438713853189049599732627033581435838984430120204659430137053754227103667093577095957136252224031347258614426957807669995494217561188419970904592463966847086146054037267994287277424368687126817979377414537133440870516958057481550312413053411321875787264666637178292755512211176911974311505122767769232171730586670847703317995308820397156531637964855867876667969818760111629755855583026422510322713214155011630441699329003078363362025558901005176013842957703930468962447799019102729011743023983185971871938317428601006659400591977172604720143318206704448577005933269792960301671690175849715814574058695244519487997015075070673284686659430706998035015870681538337117233234034081389316380798923789166346436299000738824412836682114263376937210145754999003140124604829410668181927784722391383404877604255734660950368534879580215133216306306558373362193687174951061628669684683865708061869258806701668082780461823950063219298051290111216782601071221645633213949015908206583066844949123030915487348919126058909484283353239798906208555943747128758921475682653501413730822439111164529612841819533353306081412151637671377329193246967588090126254853681426616660958694900784355188537094632838939703122442010548342846671803847134817657478300967468598848698699689550045509119319348884461814229622813322888531605443653677389159382828227608973861271763696619406459704891760668353413611092152001615115123054604004825677840808807142518487666745393629268728840074261262002125518092719803962583288554382639256639093513648261533822327787654535990535608959593230110739171792070826156758355564803980063805976908473806947009129926744152900501724160064590509252591727943533496893098392819046429618455886430499835189264114405505234166849059581204137288066033504325117032216272584887294091572726433825086514925199316934793903642933360219613764563583949096823800611972293583150528553947864910727057854168818786462334593222235762424592474410693549944414204181170739035865320575673843023808132500420136887585114450733691074707609277702263387040641322318900133099956550159316671043090047853407584569384883603519220649575874469809082301335339690120160626342323892338721657003713583492023315760576238063406363533866611718261021385670083544503378406186193245204123848331704056537985055476148243113585376768205732402411217105151624938296489245760466158322771743913526278707009962599840259750437313570406971201139385255819928581723905265845518368425819391018936234020253370964992829763191851774766675322521766305996400721785394064626375736937431323654996194555431124870331666015168379881314923543403827323257544386595099120925658871166645109615317439918209129752006549605390859873791071313037082382645894122653048443974259680317185625485165347509097485883168314196492042381519228496645894647259193841581504979192655887253291948121413644527081844021671141379006897080272448028745215925904961846393877321404119033628272132211733999310199503709100396266915093644917280948761114125461167852448384189186776886190230197555363079586843102108041212921050893720389053432835590854668072155716055500092495940449385178318903702041913828219322281207218013883789198313264086825024746308971499045454459382257685126038110250832114829616441944451785843841669450146742715304610496579153057950939966018312159190948723284710299997379148789762323792056510021042839947704667553207548551869769741797014571488623386686007387886265761598230343830245902390312131781749972170733275185096498441136760990052686324219104041450904275953292188251264920103297106154404122949271151368131317728621157283960377286116170033264350410956646459926365505881946215489507749685112659897845231957924106458057595097185441311367083315527832305063294410530010749088209786422448247347445450472755058034181287140898604014116657759387266135262260978563815179178737997734555514955613533687839202597682016642247537408910902173991899011189791173202693742496410800665869924035410948059867159667906169636563067740185629564800653883592678025322317513092166117616877691166104614903536326931318464584675592300191223410783207824924698420930275343578784016807871384573034116798663296739033842253990392240989410316496835189137105740987825246557453458352418875072768883364358028903913804094266099718884964769510067411253304112962574323062914508504601080657724519278725385129053784088781340645090493812439368817077115433538673546091815767252130418406904613169925295194483705991184437790570443261197812808963812629500866588326142371242534693659104372438206043488940416009815730480114070159612403283766625923951885695007983543575091326436676832212596682007382385864411603608344465823647923667732491820559373692953021216886221829331957729265151720709906487736348371468981828761532071872075428100487519942892069058406901492264961276798351052831898010658124188268925199015763824246128013803275555566044147876124948337236756055860873982006889686737296831174968312713692982360665537733585710683702427044581653514698799299876805315317360654063412865410517714699568298322043696663030187553788883470864557788123282160469564041444360855379150180623018194999044433898198798208020359953512746740117027545154150015613095749588512201785311996517436852007258670613353352860320603793790727330250733539446239996266133413933680684713607602362591872980435347655766155929478196740442956662914114942230151227889944414988324606072862842243516525848684271974849183295862066821920296628375562306120141038334601614165498687125014082847739424952948255650131260067984948676454828304903224782148658217214865780629292751485393110685706323181456030178358665404465949256917183058769697269415727357642096277829933979195215522260926957678092405072054608262925626442850296807365474253646833968236767034565334238200338054058125397439805101860838894586914879892475546498551723177500896019255316116128195061071626412818566530280890184717462502044827326945959964480729357485152836760123099252522904496969052363734406013052275984843779721033716362620046642085678662080123423043712270795840437933450107338521958424076661800716670539742427367522783406425245428187752755413537607504733350508322419959541766640880619178354742663019714291057072927330789384487322916668435186173055058710445556853128690097521510708773771156414618974536404637064697017235804602937868041001488560413245257445638023444464010068739361447773856001771950334053775362013452922716114055936245111539368448389819513235577959560545384379241924236463417150046481279477483305127776652160663977206830054758696213444420270941091477932306343963112661473436265682527801196794290940447298287107519118745336059078454525868641858220868965981965883500524791922228824212950171182927906700263787768550803423738868760499616855720334828839655138425963483772101145028367981507022684936022536322016936475405385205956720533117413565219274401583672868305922515417988901469998912010193283642651279808060317977172299767833023985041796978374153346163473409053167382817438087335049080641477728550079297603426365761446364063857584067343096078571717468660317380562936526438078605448588332102215464718327349114054988765580971661527437311789862806392673818878881495991742573972636418581655082715095942279332338030070819437015242254498938002459150276529015507546586793540795507859136136696444850313918825204582706153353650472163913346721174194494957615606418193180635568234030379246029634391025382939536935335380827836524457224037788157369569133975731630888824139603007185070513020851490203244922742990429569308733506169017517592710529947412051249304607221226391789827589508609234160296512154656324836216335489420020005060135755137392166256445426781997814437599143533322735145080769539871860651753183480170432915531736735056887538428510554082543164332055028492409925747646898734085029393188205665907914384196968325351292095477469741992836998714535304257334012329244117736388099514443223743679917810981107546813939986743179435326142111141347898560750710044587359980186623639550235267128278824473417305134633872788490470572650299801339280055686708913973354211069002307372106384226083360928379867515285784564596625864231105432761306035835590751029505713413417955072292219290890420044421255235548268965370005600101057547510277763897104205865240565800151453825396163596991486055974067752594495267251804180290953511255434044810227758117546599159887366564959382850074577064919356008248455138815514661383488823069583058513430236194189832325453342005496932924265039102228982452737011271316087548550171113029602236199557482804855535474203495149950560015785368526252546986348758163089426799139435689773245762362038516817568966506213581648940704356843810236873055303719268197450557335424507253268991796839552582336241857757081985333963535085175226399077769655391495664637626629792885092908792552526251186017140921318461279472452810655562896592438138621184201238591858239285405460060989476565175769820781867028620512001802193838819782379398144259531364632226992089235227898281822025300677623936414389145114746733933296814625588258205532753576917794652038362175640735236889821962062326080238145855736877058511655677204384466755063349300748317359780644271360564279711429751482955774424980419652955270295022265984505053603897750904595100904728440261127146017551047617188090557695984095602837494737511711140901267088526694596286710127437548030702400284631893185316372831169248888336241367668411122537883257383509703689044143466319561078430970094948706368347163167654658277155001447736705685970632155689432467046803995466927198777029702133963763920995062396802140068017794856180519882401046503236990420552040356203898855370151920585069532025311519642936853878611988388211511579416284734877352629004418630174114688799306292803305508326039578494764016501756221505655865947598787890558924850726811185708238029353700683382273498246181625851094642345884633878681132030430701344040858597734672492712843367677286675847263480141316264531941927363257388316653285031067957199161709218306670979677002293690469561526391131443957211396524111403580265172778531983204063305326198277680413199723656369253078797255759711215935781796921860175987366089494542618863137217933270452776539790432611844151911837654465300150600029227420037894738544251561734527569773854996629429395789151796127259862847129298807401421977435825040259289621733539066281185690413943464928553394871848074549002937300702185343156298607327177948026574882347231213086599660257055369590557721239921206967376708672905712128478799859001348105291057374628322308314689845684297485797529493380793952210006040862613233040467289490086945422947616455729781009045136545607698613835054858466089102555426672374781549854748662316227491864522824721478472470095428318825756466193023804043432568207584212160647174041764539403645632817403651444590577050685301396959716100681287035904417798996778718610759494969275001046494538114977916123054193050434538124854383278454896651542799743410936823018070877511491288780805401518685131615158165225248938774636629194707892326940989328010722799272321793393742597364804635874271132187814791172915051974223509304066687423585208138308257422802236299362687779524633863092355415822256424740408973650310199413519227139390948419968557138232156765086875266457175565446253701709480921733158868186334429632797457281526917117261204163553430622170776236411037772907661001618683251577906462439642882700586203195950779065027539434369783220985439848989164459194169944936426038210236465175461089731049062527195147813814822317532071172113945551815612583396116203440111744218454979665164137292932781010590004620421712151012751765295778041967447960864614121751021513821306982146943773808541462631250489476774802423941913881217344496857276860377854487870572031550447542242790030844586984876572557988496008184355502437130727925409301639386551478608338188180838441524538797111050214111350562797420434486531907362864116525884577209920538645758129139919712259531765122711534055212303261881630120071336341318241888245275008755283574766226559498044596602608292063084389418684113803295839706126938524045570393506378787054034766085376798706822224659316387192739537112112784254048923992693038261986992710317385240457144554309170009863811777866073104115830141740292685503760162948913718694952103924796217182719718683761609371171482875659816855367632175853644805907994353277345347157028866394740586495543080574885625647887448548987243537421909001956755594515376807624992854263420388757294240441978948818427235702444878550819115453912107768674883700422292861437309106414354033275899815348945328227936133761613268493404126525007905688270715572656122665444654900517868634154073309569749531734031932170884149314010993723593053765680547800215888154479368229947226442126356917923098300072250226914575298878584460575968415056385514927648392068611334625845126145228724932579008598901280121410474798388403672545894772093646895176366572657687042330273272082842186941578874025227155422209257583241055209353763967365126412834980689817330764976357545539861299701741705725246130197514099883102652390476297758011815553311066583335415207778964436301863209374975083118940410240000829151652023282582785432403523484172823503317650388618230655726364117930321782835040053297173957945489071219656068056263943616132512166039288769612940024824634462274314629744954447155332345665527264231061873942786994299553557270621803655548840253960575979810042190411001943804810983251640180227043660108518324654355952104073496543284787166970890456968554382103340493511909752788067016183654219552211891622522189633252167520596773584271744499669277519787796318279886536320189476572820233774838027375676289127733660340213908780085634298471602436228514547542960962867952907909239153406663587516875676406851485086705631702055218153228714493104451420414101266675902078319112762827457881601152562168913461257087369331615495063007423814634153574249465004934139768925389829245365936928575384056482535875986190238289220254603889050984499041448076938950530790455383847081114413305977941432881723095457901221057509315880836721924469756608618654999093135778034292039241832396843888438422977748128549107340257359760105867819049056834917979687500711297409242626707585956382430746294694854677666017935821028500449120209476605689531547725949427665635764915871488046836366879262059611347199820373812539787374066347468382858010760883717741764343056261803251353504792571759817035868781599412492427547557133764347590000019752460506784211803053185458561909052150952404702869836593564197191786137972797445162238902130555615746283470461366058792175296324950865784873947797640191794546307077703387894985635350549807565062400708769361659933169792303992199175083871664117552861045824466985555077734543342003128388236968403772887638469555380255135793761301578809956700752916792546153335857347897057662348108688428279563938810765618701411991562409737520585032280927123914924564141201094990675753379235478358583496630665232603374012843499812698624365441645455455178706628504687404247220702164653818285782549133854507099933679616669115801148163803185728985464663148368980294176949706141358758900253462167110221581347409524281324826313723745408355882968754415141235443181287738644640044847969001867722174077447581400741611784300936776216873391574536638211131934017401537427228825378789235868921949718905262635916962614067210755446572580509567837356648901925260356046870487552380933440822007176298201085575355511062199799327714992775652274524982577625524952782780397229473235301920069390216625080168600672674451527185303097742236367370461557528146941720975065443427763656530770540432387138750932564443469548997994288128815966650959599368669931658318639483921863927037672766782423540471936946778039418250138408390039285516045758127597533283812449735763677846965909613250009963838616314679157645764790654623632877686733961549677729750485995884060620440431861354485812501800617805233806694532802461290592748063829120382661716384822924291602563943967816232190506375944467690048237408745827212349075907566468472644820760472448641308186690610005063914376674039269670794474291352766664499477510984682270532565353510914580468346985201377384655138847794731210699449269229539215592405052108915158604410584796363301207178642238423413213972363054567129856923876451323011546914158339806777671870331678512258641208579333298650699675933694283232718575987083876242796716843282856065255723642700209149635289605403188477809094891295245693479787665067130978039314129797981893436693055249258360166680256936081778528108394707874553529748170494518915511716784200501482818992452574113494445470175994594364527840936558335493325788532235795631399967866662336030850807744372505791970543831552938723058081217842906768987177066961709108897514201137303056813842899901361064436236183723271120500712129508423517861172306501685862624300763062716444623326502834733177816375447595376051881605825326248553146237347923457988479427982810498039060193992142575339040751596053946484385096774708596119071461834719666622627695026766775513736060388945278697612072702507228418451223627128816535064919045142201285429138309004703336541443229946766447500498297631493442529623807702699583208478480513380469435350751612713008575055998839021217101375712081552938785275779544272851363749428787368755186780116735982928277456281642004971519273767163103277605855086193710983769934555066546092306914648288664894278788996069134886052579374273407070729080364161559506043229446055756051957918097972557533070251692870986445388049177468003857307396128896140706953682260219024361559139041853776307381786550753105962200763050948820773404791028767375672655928600255235352470801622693336814080604397130976868555528767743358308280163897919543489676854174783207676414136081133203258482595462495210255815062454428160268930080961874334123464899162461367632793681093838857274881781120037577017901332281455555502433718712908754006813855346285265910725531539242210061811870941680503774457709966666282167346657863191865084843349568091623145447069980795663811951098106119454508770157682336315899169548666168484818896271140558211200337593628517899624513267347545183583631076340654859381704960128179906025064910775703746751738107644843988857886413235191151355025634304024681629147052884029153579503899179897166522189130861069877355067549664321964005286369034584809165929599588267612270264903214099655272998491956413549276951385592657881433720097150979709613532096139830885515787019852103870438719972684138363172046228797825110626086484606362529297524565263076516943822827092604731350341347575489293683108393302196384834106383285341623758824458822529420034170702353929106863143678316114150863129605663739462992930569520772255661377000188923308213767889607969256016010499965989788645003822530395559509779295049457141601247051397614154153459385834338980225053307514031977001958350331083883109874965704606062129962811898215769494777132529745061580981831929668008939195571030051563246082106716485090378652077089168559147481073429289523379559982929570984553719233440659246018320414687416721809941816630168169992989666066839661719955428680857574414219290416280064616358747750540480780330169379742530149514665574372979907855016638268061116017092417103165451756437664147070922140812629040852970507990820771001025101258983027628455833733574650176426893793527678914981546594783121601730829998594584112596740495108398983916769794864252004162819758064160883200102489448460711874274542684294621346219844511861261881479188351402302038712725501349271231352001801958814751527982503137917826712378503821596649496047187224756429194982222325160043971632639453480153516317182605445052127528029878635343824949676140254295197714336285490345436905150505734558263979046210575988580444536268706914076004988501660513234527592348193423973405904954615967291564244098158974900181177460205853184839588681779195008641467901440961072738284230336830618698203626622992623966284577229791418377633839437404204420403451919217244815419558729392539429592917203102224504039944593972462337581360416846247246928925957272013766329339633850443531534380617400807636653904134682183605143568690966669452013858074234156336478276476265815329658155796716999898620601197670482528768545474436283374538336356187727080509049027616034164757294159678219498847414072895616295106180408277532690024990468382169314785584924749036750625940672763209976826912321548360029615198339804198790296369760804374013152154190833020083630525380829444026997164248069015339463102947329698023231733936513761672396460572083722812007569574805785362049351660937666129027564602725459169810050656609237709422201241595956456729292646099967534859666949726793515070048285538885457719770952255007158433689624076403144427465329133436988842318906852575868801923007578094324143452105123703333225329497529696141270039197083256846308685228200821395151572160872457798714035644997034236113984501569175626894919883968043430976784449115891834336481607808073035833028381151924861908288684636369212886148670430406470650151085749603504834565496778872559369776491372160835751850324344495216497560953649910794078409392281062880455852432325787484195622143152681245910720512568144900892552136433220592269440348643652154731803376163164770503674925147904477361788322651914828922158778298175117428095715772766951229389808809224730372122114899512806195963937394193266631987978201052842020300707535566457702945414109457314887189947487401414757364381549515340981017744994490008514713791772032130834086244648423234536500986010748108232482130789682251256805927321399958015742354271218956347158942620796400596263106802734464379614945773692492897622766400955221187702660220082572206372764077868286700276838395711238511830885453462646490766910228000179723793141541540078247805682195987017035398896073423546799411947940757084054453695873564257706553616258990626291778430166984927808877523558747291180555406927547636405028938921632372465690579487266485985935353113935622640813244101078410659635867562012711705139215301473988105894550172449748174800709199689052082927026700633982264209942950086955886364240060861269742872428967575566967890347848539063628073783501745667662338729830292966291199093745742792635940699449662348720653794188603761409212152529423228398122577229808823346670688140179963069039084586059442605423455408601697035437265419354416005324538245467083534268549166412162060828091940359740983345375784192207465135965055943086701458626227626614151010067627688675016148385981419706564537214006294531911729749295718813046560136408040491799232449556391761673063390890639777748791987943688728559157777387490172633199992624654805732384292034259125827067186658167520586945927170638789479553970818115835021561922969033805831620091466292692424194638479599495930158286430703183761549737210040431787894665020438922355241513647032332397182524370570133954192591646156960040833388264871298367796509384509453109040699549219103243506724322009813131741256760650316809861802029258237832031771380401277707768222897923895244269525711908501729343449494653985648470513746653942353596170281259721194270274240889214898787274142618113624646418864547099918180422561143299203123924800480747754858147746067161901859143523278710456998258404000066908681797231625286148912910853790246673409077419710643841060498096581368127514493198782259279365527161941801069745328284108419865541780602893301432938804701127066415542053667923569878432396711021313458305024648279170866122252995732224514807361555011129095039563272839367304809119019159651227244457623298094123912431518485387591437339106837791685852381059978188149438582070022895154758380073260744857685241480577246571860916235665492961814100009873718150008869196706352805175752277140664407734207106435497631466544576680440208276356286363926993585937224407739977994783613512333287622814936037608979944160166211220886462664868253796985635036070373945671932931457598806188657422760934644279767790805241869275716253963227645375709136350488594342748596748283437518215539155583516207939757385233546078615594638214362520889883212858505774232409490962157585481911107258220473949064802762414729677844311595906148585474726211091963353474826750614218564309577651310471448314394916032119139245190194516665392964415495395377234063419201372923812201022566400381979884568255570345281134477355057748204058425539365030991938572511203169836153198809199831736126639003342023876828569063146729067636072138374348334574159218254617885564084846577051712002157192615057965413382579772607892437322480750362327675008209263663977733360398622598228461905861690742291475788722233243825977502895922981711219152154395755866331163395161000119084134414109771641652074417279728610195088704631820194398720216946946387172492591214768574824722994273958203371538654422802360115943138587791182567152433814960457400074956169022768380651058889138181566440396863771803468162424341717271188940525267603127449151243303967440971788946451001634899968575174573544267634274911554920634415770063258180215460056078711770377343444587114201390177955072701575008916079008905507753575534364776997628549450854538612251007296739988540678282163785732289494974132755135971360463600700546636374164948972081956047283732337922454243364521489646871008963142417412447422315435634246340194775658539383518912990445915546084358321211461487303386407693679296510861779402963145470245941243413466637771440471966974088890640889133909052911815381953362980280087080107605362577417417739544210994531480988853767269874108262039196422135317043426511474248602392396553579497167675002487356329003377244458710989136066546793240724338833736808157213221611077758354121845987520941505742276206676200687705526317939401832852887322663131535817753581695418322414259975179346929771499211639636264935171283975456414366575369226350449879408644899880195329085730204529726257820577264166544855401200195115820789584682255071895762644727978445613780934947167795768068234793734401648210305299100768240535963168407063599762224642258483526257016040674301333339955526478107617859472009451653878548275506416317326325607474112348853266708572249095298570461552864669495560717317887286460416884490275273209395381644186711983458458834199665859889551608704228952014073657469345124120202764009460796364412812557056071022359865521647475485957275293202825640471258013024437280390024032941642856020249495885414991869895933093445022428981714045771941535633202844095854507678050211986460020138359152458232323393737613440294505234771216097103327436944227792653850180672387673579610972176361133057428472575143767425767550887548609678388019573391028435315346468217248705644939927824191877626877217098584954575595921428768020350115181884203152369189564138476483188137044173039230881442550341666657772774252522932481649944784649852758924279825808867134633316547658371610177519815834035643154874007780974653673499870444482242884702673769961477764721165705519517251485113416689601093979871031742521151210029316466649122986783785794831458732005510582868509578438202499463997783249097291719099027415836064917564779586407747017483000013669466506019036264352026866899216514353357146343208804914263490374758332745341773133150728664801116890203176637742879028084402017635335258204363973929892928774934408575360049000315206014569797320692102145687537950121382671995847368946081770066885891399322559408706236324648542058413709380577231526852238393000628075675312548217813308448309987934145099019316657806325432542019025117976193801844301410774385089834716996748815061425677456950407780818610089788115105012569496941090143295525060000911090443197300547773508644152066021995251554335302493414015249186916132636044750532952354890601533605411505415166376292520189269833570997510791678426946787565115544764814355329110674087951478296860123216296488428170627159984603555440234591177273198732652017861301073179569542507302526592899939829273581817698775870310456504041725482655823609285032506007490834110757056512777753020189660656453734761461628290517933222048078673926533836100460986496958824233685960734488345989941043353532111286823604262538564695771389460465967093520151410963271636457191489529917781810998736125135242973482439587845111905874101635415805725560061970214593207956108520910258586865854365800481062094769187389782859108083782506937656890357412497825176364319275635882357786276357119261250389907026000031855289365001174466183395826788760241685759191683191739085217891478127089212215093247582902072268120270152121209033423305107730191760408154045447485425929764359030366124047950521417153249477104463563611222669500130187416885153352223272641198464400756255832178545555864470199568294366506948712790300498532451672567750668493787648956371183159239050715251973436277547379691765824363498327467697354851807811962650957260929155143726867666387857810041042988201411721495450548948905309693060990425318754914453009241532052320065028713339598242062047781955892365923693865345048824572544839198292814113472000329512883935676337963023109570784867201090612817648265596670020677202046694898614241497570251377855503101730844705350659804092811930619458655964292936980613962440969306421237288869577173338859897070485283635569827565364683671798409515646661561443418103749781781349639465932859465371067669437033213929069185595794127710947211114862434496068837769956890876146502366409257966250910990269206091956176879095008413990919613526243994730527117631017737772785757090892199163111142148187311392228118738442436644378025251270829701486744194162375532358399119097101090294878459518150682037617357391307630653552372443344732723021526905970602434478096901357257380386948819404716547931706409492814009612836549584916900247691060858696547284135985714341483266380736049989976087908815035477777965147440695333870461890596332507870618062134974675034972098850206966821095023686275833057671953200209895217572108959328293262161638222799947640110955175444482421677641610034351777374855854802989042625070721094720528465334921182224879626693165999214165474309270502054021876544995252509495553835149456414781531310793494830702737954074079043450431443571085024457634275385948102730725944298010742229080820054673489474052780639170255093254454514842244406505312306983384999164528750086031040502744219677481886156161961114576153131586092401719949964554288790776413475712247399127429683643851444466245411126778350032483782527055164603500870697070486147002273352326602353521268085590048404955164419534956023380250561299942414045663306806135158929792557973683403352094843810282838821828260796962476421715786135493831419766004381140968747767847265479749252969296022186428234490502691907726334392596269845662908568537424223299440190818248427258364349048630473184469642289501405768617736573851092614903465389289570886442932812055267367655065616740153892176241926022906333316939466725555032718257747566353766752858079617116815601875119941899597657063344162927031785264592471790098738268716272083709906611855984336276662709260306751440918008280456872379743543881931360922543750056913587057604710266764277812713437180360919828204436532913445319041047611664084287054240207067090521739833864614846845702542149659390353344925601427825793255531652997415762031613217706882663433468486618548600369430197638797108905162904372645073996283666914097606921324516423894384269278743936929828171526975689148443813478788311811510209552279129157433757208113174241940783864951292800735144062073908043914239799956067254819283267321642439605562297214254699568046003942555045076908754156060941027307047415175884622749854169411949540508138568974001678070744880264609173898569200763823575199577266237872521067007735381699959704038096994947766291053587952745004248456770064098508909242544491507733908744460986905973005830036584781775347105447966336290062304947819358707193349959618897960452369184019903260056337126642940218768845056753122738284393661608492641973264396928784913141520170313117920505910422134536682706216572611134618339212370907783321871271533898766454646283605473849578654667250664784277353840291731882339594700666643733287309700098273760461989384849931038504820201203149956177657846078559856384214938958381469555492544952698948363381348755848954551512198212449380792545706972762183268457147771327278391387312376138296987498788620794548733845445014554178299680491163340626241810940466780231504981225613617011184207001363332386588471263692493299681088572636066336855596803115322421936694924278266103760044446303654173285191428336744004247104431109628611997931351446028937540836054031357533400450196045818187602071642797498458459624612337137892577787338449847609125129178091724753989004284567194603923199476091109519113452216033812043050406241681608683032754481104309831721990123633843606846860448177358406984552756547225832734640619976632726955948136148081403230533561899962810939183949256744781366495195594452961422148938445269376225300102077920453094580057620921131768556366593651324527333539849456168298936863291176986943215099975871575812045579197390053956353316046761676756849510065043281597694492941629100845159306669317581331270171194360823686748199883576564311092234157997923725478248943891119169709661586191844809410435062854713924264342558775726932773163249438218524156599407414556430376445396145988277149222343803435773731003705121311129279453769085408873696481256935028446561291613545121571321788066324944630032762080453255356288084254138607097348036611101249790223983190593865555445202011528819923606162611157997625775532224748026742989239360087766812198089053209605439819384653772944167232744943203941513996352445313455386918519177756063533005123718845522650593610395768624666568327266959495253646732415697553660115188348000966520872327004660047973876898436422870494993646986707186007929820802579663957851524338648020753320146144695082118457171233832762872884594372914580362465445378211660752237970600900297440360654458770078692418227226524026630538963432945433266684251787939809238689373893812312726849516849332841882989427239685712549680499838629339028406575380292631523093987517415011398753810918645977106271761218943603164322992033697189379050497635077644732724297292519597356083782296914392166102083635768596727110387139899498487525814186173287326540505363826132475073865531976898369377624101718938803451421010098245007776384457892094499455127433137556519324939387745983340367683183070366789933374178277691065851829590544193162324889385638145850771589667446917868657505426396746134885673933560793525270115389323611205407029271024177248520598054593864775014558168678041056779303351591474384370140360336267395715327878952777755102098717312912335472945734926513655566682871513096555261198436945904496757363102903542866448085866899576719787848705739679543270276813328867699299200134709800977846757565509578041554337745855249467048795232762116081631319943169011741945710841076288814360926058174125062300704955256408541409839217884816359370672429040569221428066475030973623836586381930881903602966808699681194488998707334303336626466103400452641385291935851839314055011722630580990680569165601549527086970131311249650042008964650565769175901800547768142944169510147009618935688106167683089859853906707060069358506995809829732961909729693323796284873155842974515988865594524260062511137129829380699094927850529912107098085902278718150359522669665175116901305466224897212436325983401041658620302454425850368859840662300552498197183736950523197796664982892456298819467401128965369850123447512533595876212592326026028943135982002814504031216764331354824849834518409731318723835847270569238504369967926835950181864513578052703576042443986152698575184282627203639099764216769842197131780619504536759444821163200304506643936251439412069669725391172497727050526110639216609902716495395486367999251514392880108104599076502885926004406730039165381275195662810401276856386076762059681439547586630739415038238763577831512435464332608167798268516868121704331277859851199255950955170506916037589798436388388220620353347593312415212804290620207076188921541086320586460511524064095625751715767969203406574172298465041298726595375681803514873149011575535065842571498566916961766989406854108449471193521216180797408337609431358314202451703192370894775145445193188551623642418425080167296006470207328689815358830299553909124298690993039006970344066324452861875988693610173713093003835926799573854297203633208667515757910009266278152739373228522232988123843843510740462390623698281285984353081310657592165362526379450257837527078494735579649744396995681508834003651536298785752447091350415728902161771442263595108741400639614954399749029370601518136296431295669445469211471235408182339744135005188647299572938660433084242910645836269662841645801043758177375604374904491201067772817890410372005887408271150169557712290992533081359214170037048321752934880727665445802727776972825826340090692345123631036496068342907292189317965587997145762345707412720176461497042751232157749426226946996488309802829736428990501012298074717665145393900061638044656931392606535736544381972598130195560160850324764072361884648827117587298882465914594906764310693002884505489011911953517815949829913717270236500240416782098320237269164824697666507439213480937395892537322187070641981467502790948854323828853302780363407298481130071101621822942392936296923249357871745125636545101780993985983419148178295358125840538736940186415457862086185976721949330744776581943827308420010890095009279763901923854143894485311705321581806429153806258102045161911137125924424666613950106963553172034868652463112607565760903210172941171967540287126540392744310923424692144377011783922659351300472542854501849831743803265330136862715817132705500222638840386477060311163141100841490394765710397657320525587782035550946214792652493760024983077671190102299119173136596847050809077753965163402097209579583289610529646009975232841237301166180875417348281794073213367636540530207526261725848562883705410362193823987856056979265270578034750550824887710623867135088918838249047324477828752976581803145235402957231296994653219020953292964397961992627959567436958497147685611029414269817627449473621422050514398695109724588353429345274704998006763643517898277069529625272412006431762720772747826973279317238494108089255469993813008449344597620030524080396357878898844315609967799876994082648147728431582012548073046726269135693581758749005892679280457069545842321766448872900777015025151596978316887061859509152030331235119988171272513670199393745444308108995734226433216429049831909703019915832458637277203145939784988678169612606471081505927999576787977361106608165554906709271743609227776769126458449054746164490620534680461061352392861844616229412468543504606224225304940923638147785956217117089189546348576330390843088935384639664668667100568481664440278289639090981633594537152442789134111696089679496392038595455259472360079716362847549039416699541188150593289421618424748312363231188653634138436931996804592803694990588994145172665086591508549756084443263944179189253103915507700983603791226413817147903872040985954363086308734849390723359421300543805841947607926997462043336686035651895051632905810605651055049579545768238775110301793408768374010647415331835898403155688516080432987808368588148992499143219618082386776237360376199889650899162535055671885618798041718156447612660667412251267692187567922226915052216901979628429844535896067807273357808815844828301643606487694789580381918301139814133082784445216834435634488294232192901380859558701354757671254467565862450481854909052373463867487775132709692974041350337524961444791416755676161990905178210253687635821341754279182715948074767346867413923839030678151126296185060957905139461982076616933826145678693409946946827632408709141964070979041688426366705624520793023111352109476765958522136520341680602877414730111333029611676329628336792104763178029404979652444112271867500670044527994415764296692693500840665267613864496810749946493638816480795078675357480998877137406586488817179110406458259897757289466896257934673260879909001633016005496127896323284668070427706487094823101310023926335742937129305793531669918000945913888038748963472841756422508987648401039720330407559136848402318378796811566791682459271860860689283264519088235230344670510504709000109360296587121499312453732641256355599456447458554987434278803987085552027176973049124085596990459013507996632067082895809700865338925859572596355170489761948418990034003754128146246076466922055820325326531898643029452633979926172936235942548343499243829624247086690451479598461904273016717434768306991286336537397908177453507778008798716979566360777167351030089165825090425964771407551963823356977335177140521479460304194497612764850416333759242602825516816299376025126285288070112174988628581132565694809172092330332272403524696814600804755407608977911547605690266016451707729655776054737181120090541063829321495480390342770465698777079930295117449988218903051124081696062706149297503502110791869860773203798689132119820073419274654858950546302821482311046660829586280279004081706166866115823767469375179837738167143417623011624846604593820725995982711519532963603164639152111526209473002991021582686810813605129416564762998837609179766725891075323085156734391457988027453781257841536782665390439955629673091899532487987993657819415120543907358523449936916330876158431564849593360719728074873996655264548892788732522719574723066181726167038141457125691980434883669122743653825768145679290504577615106149433196996628688126248475845421659355673925044175053595916065440773673226316486110409776212288863982908774190441464967241029011038606243852379888152488153765338946304373045337321984324194716083828379768949377665202255580092500790963473609391412568779793240284045218591731345074789211687706413093338903083124076309748890520466213800892179566598214932710231218146756329016583991477939656761929598245648003124304668678006170943666819661956200655280260380205623754798698418323664511255114028854902063996746240996080436793180609871088325402740739351811949717687131555708433644344611726040746864902564959303745094074394416979694253483805133638593176017409968921725077538119404159554377081756593723761364789869378989534261405544640628832719229400675137102461062824761828839035059449045751235764310176698632014341224085249595572007915892190817457539967740676672384656575864310181788292851926835952397400997249348803686878673063777577552511777822085209771588581250756144796579605058102488384321985711982481782728299557813084756848310448311079897747119245998721320282694179313884358448741274286312049685570782068131959575110628635229535597333490196983103839054846212959387025852771347580108472866276678024648266674636393020465755019325158360981670910373084603089162319626520903611509848841373671964054956356987590181433091017188933466396413002425213414844196557884408322280425968873225626643673829863276407293582450969676872376132967207593514725388843786032779594699506400514889453336298349258324069885397472934908246686035260537153608204189108034954857158700832712450333430730902646654735132770117445215028523014815255856896272976177389270123075460031446631384159228319498894131760381561648054557209463376755511933659372360697882132165881645860641187379603609448043631628300409254547163460125722161101784133322890018855839628650164060097760951923255876784013225111259834399627339903704190924508728362221613651102529310230499196490535313596016880176243506796518513484957277659675778863725171222843777205646571184972251205120339997913630087760119659029593264898106776088504909696710230948863686382420043391031609999373522507554218244949858732742569338632899829363998134625360058161922039576791373290220614202231633706011615278552636485719976176731338288523646069129800614913239403306100922257564040809563013419027100032609630524149233589525092085270942938257924469338955631562565459828483368519190805770411740271131320677670400233085608999099626954350375558470258247670124684051059564359782396912189961111339095761871441281175709305045024521513007300309396008317080817275310477358923284696193339734449104348271304784957691617652950764702849524360150217312683114515591210973245756407274449701780063269381878467000836110672599980096504305583845141222368346374335728437384885401252993206246540044940535809677001988368880580122391908704570474265248162793680262597662928724252759992458253357171885861133716420209117683415713450533322379014633765633418259628510181928953553013317492018582655157907365814417007550426778065733840934709925758540721065044881937391639041687021632570432460724890087623493459449378070676662982045543238499893867292741118783404683326738334187301415389650970113124291530189412100142604952637883340226593787236844002089512997191059497908669891939124403033847634095267609744631991751364126763761916770106957632652382073063878994600664452197487362966433916266729785270890130664715198416550778719918869159771145474037151643952397695162428402358327858146256394829357700518630649170302004414598943817739417958074105754571075266021896919246816582831425588627113484301871897025459433884963190409705922197237007294271784602144685308184360897179091157506103467967224588724510174851877471289327254416294711929966175530413198253043198978058149987702321938713460547109591666458484441380433689091496463580667090440675705067103640869965890993462370493210881652330558636245146749671082107534031151950622212603300544058420984272319412566818169330783265732276788872074477026242742485357141020452756110712682801084024110152136230576036092801249088367228167554036122071510226136939510127066411360270761292881090277002064362462953658441301731308382753151820068035861582343036563684697288262483705580895368819057218010823584083491973301168214945309384923817333602543328863835230419443051075605161662844544759791862893392244783280411215417677325920587585340716846444777612389834876343492479606045110250163126241345107420556042572164710768232505554541616219730428714539853208175297684200443066475116831658733989473455616998619393460558283590402280446710565590031739726027519032900011732114037422928966093413641177709130798274535781032174465872380780097540488671973234495133266840013879200956665791712215873422523873751994244547956662899849956596717657128362465479862508610722996638363689003509543335715798623405025924753942104753364657702417300151339592094202486044355558521516279337118043579527805866848817050928976779671255547998786010612611456434820640073810631284293899244307253795840617523691421471924496472330225515603267003070577810627179569299896158384011289737570372724943753639464855713455562974041829634613000678631214699519259942412129063565550525834717733292240602169373191337361999582400852295690238712445134579295395377326096748956851937516487171028621248412383460596671720812433798082313941000855306750655002886499984297997819294968931521522502650210395713877420011478594021124181557850897455713693559974003427645957079521802216695044574821653621656487033046714262060580882536919719344542823131871775513028263924406945106309108222568862383951542110317218457341767505563012817150030024078497615144284114577022777485935906032862100015495033723567939612634576697052314504054550840776447798000465997018564940717360419808032219880738369627241845604780745079741991745878437476542374811957698472494951533394472621101133353761032984807043720602602554489130982970463242669939747331442147110104817801002971904135476223843396800352712284263766323546349953566945682890226928147746085796942561919695290391826275665353231192657270548423917872306866485203332047634280530306243359011686638899056882870773895482558512992480584609407201703658989552095932636751275237685055218376778860817130955219268506748767600710986938391135889722308797145845725968740442509233687106751607682026237653365603759329024675656836920442166583937777451650003449621974120801143001494641619093664054925103390200564002323385339463147945989646939378374985895452353078295630634797161365939442752036208419937522950378174567351645466485014629348447872850069226061932524789455353373742319259845508736299683233842714517539695009528017807336232948056182909822065226717215760836471986813016213417316070920832890124197670760800571033626514527385705722843531691920815939764978619346032089939149484390786549038110447281548338257852265183375567259215131364670978749260969990837112332426514272117896323737721487414064694604799859505130308798929241311251172070963081601014312518910369515939078445546263549155514225860352454985830054003520498261071663109530748924680721524372510293051009666225332234864302371210895259650904717536981987351431162823828031569172139722742365402318033662701986448882372349404005562404467825306633625092503404019095152696632821229701417719023201371278561286687500136021206884080446223172792441907612680472417207210845394484555356702031993863671132761386483012598058590718164928743058073604095120051320645307257692278560192039526659600846848702572497880191036596553990312026276234883543632867815292761682952604201053391392367541712091978031546316143274815530043125069012470570748789661894835174172446897132870733329304444930171754660396364426022261856333785698077242134697577113715698962748974372755870413007544144231078726288553533826758035678598591373155198111007725469658267515675741711349509464628923367963545638792508891864412151667576605342926210196964535931414534894777610697295125313497422666174115142100223050592511513548302379722765273709472306392204248578427157742690221936453688897596273487717425982750499075899337200412906447357676254173904605813045974339576411944124008254372755449535543373214066734549989172074712852564352674677814159793124033524637325470491137858999551914357399803507852253507238937354678553305355172355351583986027408812291353728441873129444208860562102737914231136122259273221243015027429749553620024995302729755410506917607539970723539253985777901480806007215112050248597335943443010911177432992047004102278699569879485450943741123247098959529538559016571901307593203271963286979310011078894694024330440326914184888780019501978777527959581379374529598081972527408155663568347529219541576869965421690549833329089873415983074805281880272936599395040316141888398112697087167959951334388337054370160453760760661420412691500650201991353847140112120991272352817352756804250247792591277577638847799151689916353411996430485934862436721923781914394256553295463881154001143752326964969204602851853760468197914620760180137829780063872703223724616725519846986534990661142732010341076333373623333313500660111676597427313055645415149023032609930097909594664408919383685176365461809654359490256551398075723997201933744374783211747895429508307969617560162019152425975182129703056831890728707290324035125811886085696333296103298338062930006593309856705330012276113989870916670126125919015177630923103066235881489775963573453855270671757592499657797618817460513591973337265341808480791534982881204750921784108032186926167853305666169974535362492712175897091505688160135862233873505531089401272952422690034270620448280875811699000069731297918564206632715064440901470129872218172409963049907603350338718879847470250925761658105123764147573825534199463369269844519284551469641050123901900644368133490055336136647279279396923998559658175288731528440954811383833933431981016398358512377739436059051065928871057666779295460775914348288078772390516174351497931500574649585174636129491625614139675955039274494630135839267864496594538441736141779349022338992770346829487263394421625525171285551543748078920365532108895389097695568777271236850037235351326388325330096937047168061168175547830191181614805148157821366990442447120692637376383793975999757148474800786559580695425996593654518915184167737190903529827612215543137470596966296490466700270862926434883144574393708940285177109593832763617048985727789873722025118056573948614180017264646313476266259779776763714919366535576731829776822061107189282665126966618532899876549940022341276310423561077779992045331752731826413429569142364477517145651032938431429359426712676002428686341627645466924322810047317836337459806104568770364153659891822658991870715699850106889555462240658509630755243735840005578720661094103965934091002387841034552047239451865307009398937003647703097096520380802192912252861891516104791770445237888003776897447477032037588747337523481334656906077734629279574644824891636244617711896738112653208458158442486999541885585297922161081446952954734872985090076290810870105656171217826119554832218426339999314536691551226625158231305768789099849779760888602679935596729330579688200635952347871667211081405559941146062625101598285122294396709447303677516355081253462885019078242961581611656431541256404336201417782366913739149677618593112790748909209202822908043602287307365279334505860622538173766282579122650342880887843213664292983589892927199404823912334380079578811419748170063466363630879600757689775555216713889210888253268809538795600031097184492776452782431712304887017227029822524435068416241703057378772874045846452139767310493291878014489621740153937290632258875517859313245287200789434806642200682452449907334406101451716746720774579295421991601800038206891688455068216110293392588946192357182833660491187385798526552379671114075482158525544222424226873139614791219531542735101823131771324989341499777925443078022818848477047435536157388537410000920266896535096692313505370841437733529298357506107268317838973607585663389959504193366941338356366357707296610575121768558538842027410482334518904711473611235275136618801954884875028484143177878069809396208370739275483228430708985879596847119441882381141941711955752197817747860048076667721583690688238857946186360339272005293951456221236316856616665866237581086513747538171343020418809507991987436834548870663242500067254376629050487006113113573440397016859272634925040364448608318005370252439196774343458858155775478269653069593913075120437844078165237767139369082243312637048719103505350770811098421082246997946992214264807174721053695590568687116023677662921892361111077809652421656768722936000553523983582281354921112135697334215124148884611253389301368920150321678366788812657674175471298375715570797107419726806697089334366526974287975877274179776106314986817150203818319646469980980948222930132232557824205807847375936184925755777627752369315236312364787922685845206918857191619395126481316217292441440672498068088919500139610070105561572781199511169103864261566561872471538061791567583348294095346101411565854248606482994921420201556226031961499552801899407767997225009535783493952753942923677244486924317037367753530588247727934720617607413699746160473705975124400202443413643258212199022655535714212587314457605048650709853177557492836090926137050018852895973060143524676752335580713801287090280549151620750143933767273145081611710389519228714818463938054479585417684277983634144047462309686612605885942227417917011034319491394704309281924474031612333761447127365573045298647114995700382289205079278244456471228829782706194001400804744950790485883841294895278443913444494778310371189057951635153282216179047731436101772070890487018828949939108845480385060907634442932522990856245802400846058962024848387226060500794768193524450598295795579950414079971490313837108441774604720205796627280698666046623321764490359836910901090475063828894797238906967224254485719076202286694049291853494431306482762100393967136576546676355774502917833076497572163631072965699593630397054707984868336029740436706626502731139619326658702577157201954686400889596917306053742601928347741888955326640884200507145142033821839222445959537879761938344856983353602920864160227498250890324741896434361663189143509602996944787503119113702450177841674317984931030582748047673021343383219320584500867681651278302127297066130453626291634848746601783974177985456585723163489593376395974569478330893176372260458895857554021849663207977294870424803198905435753079068027183653818750182052709033556336601488515405178978920886105210589572909681218303217355504627416310013100128765124523162660982839259722056096090471406670918249624593599774062803104443031263919975534920190572718227355396310786104166784735234934773035171555473569698160940113165031891303555584260013247159393825906758595550736844432956356156321446310787047244322745986322765549071436546606610711372399954753056899013596992615185212511770049265507234070987820190011994595884915344307779316716092763606849256316755762430561082080383801005397887395584089904844116268092649180492956775303572150973247782423602952211974852213030963307534398495460682610492376804925749372724232357515338582663993450434330053246930876457089055315743349151943937120346373308580169691492511587858166529438153156417188610906506673170405431724837271133229361006343121012209078155738501881835711905335613881705843013316379091770362894791535757462542569557060414797535911873303360293421368711688048170484902692461702948290657725013897338591903458167622597692564485081868737943890816689286485788596154939232071242162598366990138273752822583323375380845761488101631787752388491844983336602154404953942213991969533358850990851228836272673411950573951067457985248740506004807279712536249169839448694817613669342594118037815977083569874238520828414111086968014484549601304736216602043710146466551183283057043728579606066866829434175323679750548635502108402494966784682157313760378419984537285246060735783604511099834682191381650455282625969667334640687600759869289718817933447587785891683507010233827854196110678453914371706075746405475514767730601101012001461760736517140269169560441244509505029451731816805006258310596621161109348090432701899055314342778923049707982568260253434071155098385953723038955649711911872907959440056419128262568266770853051418221641603083415501205364907941189286385731083019113717038435776928089102336290847695123195049565105021517900872432614073294122852507474351836982914485371925345391300581686199689669424829449957726896612355269230362170135062352610084442814704876147095379495588470397648308691130784947395799646879554401096167810743235551668800054342682226905416182810985371292207030798071228121390294270532448848461869020066490414050804455210335499909383057104831947969599559868373196937522719833979939979190905181504218402896998242772345496931243521331971575811641913251227049424983676425370885828582530287020382535721760387391765018797201700277044079287266171458869917934070855538423018768549344996251235362827890754074582447381158106980420080002811889993932244293757311370763843165984027469863477600822972051041162254951796369670050252032574432361556412239489349991992309819945918012312743307675521849525196019910435294073155519763216977272673027708670459670475197060436695791533690212037887206309091913931185510116832041772368482503374950265506907275263879965180436621874069248588046479832060846584248117048388293017175018187220303235818883438039410547568935246270183519675913903190169830401380759484444199673389174251672319455641324849920206539688135031783566786783743012219130524669548089919955062453739552468236480235045434415443405070525412393347056071218875110478205184688521801742952547157956850164541239173155430135150924327187082268103424026712074837461539152890867221477352752907228087054312405142999007016256244151674522390050974336602813918695746085714692908130885821550270228118804653427990979094544083886497953125119298689726642479306618456944567984841719146301358590151531842532593838191396117492264563465863362131153155097266278605443899499466735234737268411924844839967241111032659357175118568773204993894231767581058920967889977034291585112532342399561986967442549521623843910651840005796374860138411863407912700140615893961614474681843494912230230194653153112968335891655084422654628398859630314578417797130637202433926239790773443469822478933238176306551370090615939542044425389325378759781533577389723796191396776700448198531718135183467123586549770713682404723474056759353214925362594029050884871440251803200362051812965662549825365776240181371405853797284826607379316094103943764859807193843543231374343813314516609401964001666815387345702070389552207259044622608647066588002605917243143507059565223877840473205501844907757529709550203356199771680584830795882070508808034890380961874798492220546388457536407490998840785997747682711404052264130610856554249262411555248860643488730270804344110227991660774890595106600942960182871401466503536824050669258456130334213354717380870155685106528932941210142626522161537107520064023619308308288917314809737243753108476197884859287014926887014096716212619867046754585256401039050384251265517673599019239105642335009752477153965116959599484319731089003317252114180169004042420943467540459067021594393179292229942451635155055813963451235035300979972214678024476943106040678745407399067631960991254413058891528136444744878951667250950635671055211113199261424894813524841665800047550484328154976692890139697995068974871249735815775437089230300589412437154380372569868148680501593547828762315369290349630385764207257329184953936973737910174992484736486782021480019169896076772494405488995557694878295438724458345609918840338146047903442288119989307608180745565341517653803775488735253554250116886778971986378906824425578962573239769992891759689637305788758780646450139824725990374161110312625995897031165441134871915093898693294396011165325232864013862102800771359416521285258662868211373530042400354132945173509224926455820746874515683692961783963946708786322067833645184847152287664736607498911181754989056432731525507350425891673079684901655244869475886887326450765395045698584047669663635931921302260822324727992937875567325722027407916649124509187108722609676077060921434353523018902730561207744191873492479149847504266992022244659712792324240916456162554732442119002922680519376294444756868622265796550809729819790379275019739839341940032353997261126009184838594994167604901617088486559471835741797915575264843078796345031109890814154605068326920345897246835790643545371161585392006721301530210040128806076074043884051949345273688541269141249844496384776384748323826448224413497151900478506946156219235586911960625069712047886643518290022284442090383712130800638308444565287626323598790776979201860361676437168852504380312578172391855820436603887940546348181348740508428929785000632005378293429175880735476576241094115593198343338822035875587140586081566757195444590387959570177466929823110263984850909357025022194629355935352189450590520756403626238951499497793830011120209101055104724535624583459999482866563915745913111124093108298424676687645003368250557802308906473651604162698267827311094624757551743530370958631021952911867469121348197004292067704387026553039688092017853227231291907918844479674639338077546671255627438232197582233312953756054335621955617951678511534053581918534169612466957388702392404307224279317279950442606257284942045362918478434537111850558413101900633142516545071064091178064903980733638316614522040202580921465321722769925546449809091244456727293092954715944543071133922412449651927605341949288882462900243018636996232306115309634685486805995718691210334351261310430759871567431766988324805314085990430316479474017330386184788288631145157758370932708962291740906260423364786885349112504783226235668305388567101227718587671608831393903849183260207264706307321342027382242006395725555637071077158124992118454777571939330059354055457336368045841456414984651353258326466614623345325776662878819508807917352069443896663602677737868379507216945961747549143362502047139551509134713434519726754747112626047130356317708284065516406059970078882634553183436917436959312411980171032860294580269194645528492222785575804039814366517294303665278972879954150823755378563397456093302221769585498660345647593498663041960618902734022514767648069740714601882297624716406224543711601703350179359309026533616034549571110726685477912481605079801580281864552518672010720009455880749404565668749063667727686058686429750752398508087160142447852056247001472396852005028825475324658801933953168391189064611472868143448172613745942720818496208850896032107187642501713592980174632830718808293903212116906596662684208845979750585140099215691955107422433682181424871460336597754815163209006245289798550174717156807171770211149280993408680832959349334971840931784791426767233965450095406582045326696073347532376715994134436900075062029145453006135134404655014671945668094118528162252744539950812028950668983897595381350710677966999450353600712929116619745227144963259545996457302417142795430635988186489340446597199278086134984903024096272973830789642460132460943943414387789539116082332375801551542630625808513704436226124520793676246606118834249330273781241737186448945037119722789461992530806896668762273334563465301945902779833219232357372899924012839341054362576992919515490465215875095562262695716824006660418511058373268182591552070204210259375488974217848771617953750662837647220278921087733003963233420485129544485162904778746392961493860327979292874843440829652456049015953913688527723438487627676426384316937888696978803501337892885349662890719050165908043737025455035036702999270135905121829205181083583028568303401777295960428516488238867210524915112802936452619594016914849304633126215386507067791400115184882791220233010756529450710132061519842727422913757739126791789184747939007628920974816731064447400870713073880641784985215421310825769385972751499814074512450494924481254435897035562649899059161522546822416598774937008728962722916848874423335232833021416462624592645608773101806575925746379418079471949057709440438674670685098259632883466557103789850608154239057049790531050721590887363575522925273038009197838565946277684376681718811201192738381599337754399660859809763804841606573264782322453534293077943981324723387939929282759486147060619811102933813644559430145686547236247469886414948129838670282096302572631630366365105949738075669649496756354329174534986390938194971103606540947309444880450929293058505058404182643492321750269910639759482250597440371715277056715576294277078299713559123754381980687603316161080802198345127094535773870198785607095272589037951508640022797292699118256670419008905033020721716519035164569236854465950076144608341084480071153811349965418045141013491111260812368184443223983152248893574446187326673715839516032751516500943598314263931115683689917776340737516523229810543795537908161380284815984935444401971862313689289991381593317268654647835640106507034508392408450602860216923746929991637366869246346723338456113525263656336208921458371336239911164094227568369473691370454481402426249676889272168256998498160395194212895603860345324747520649044232714674377683909610873735049559529847425322770482856646298428402458232660489761968722821497978489159408065753809235004581124645169550579129986372710266180710933886203219796817145781642179117835181274361789584027952536486540985173661514247449203444649116003045858544350665672734253288145023532270467838882366074073527326178453389979745789716805713751366282846737998141658894406344804020873728289538287423539826564504674943612317220009772643962729483433029473298246892594029913723797458908165135240775403188022753195260361842102028127066347938424935602077817951209079577901913774583464598518769007914455845247763779951639237202733954524068770928208980111827439217455144330432558909170597873303844290956053010490430410773787741437374287940126016660710797373291930706426762827002825540879354126812000671103506182364418617866611366159973928533998136722387055664600222449269924100593702052500258266806621773801420525357096862285290617887408008530802470777521082771036326150183589646379170831926541186864715025316360392249894817610359891338695189996901724387714958460785062458507381414752566766888138884057691573057426852508489572996319620927183466661157130111789282384734193297919195040576376173409922049196922742053237297874070945005109221312433075707547797814057029345421319745833552791368617108178622867840956216665166945979909226529334588933564050450371636314561504327370711663365181592007217063794237802834763874938633125353757370838849270957809162579471192709025836582024247264771200593319949959558635446025787255923385739072328860027654150259949171524053774771676791692545549237055165663679114487033149138306298573024647319650956279421612390280289853392734766379713989271880800303762258696075880413108038138735985098763313741980831313599511543304616553489432761120066767314180921114403359844291501180087152364651959538708810313532910123912901216692429215279337265300860165898591227768729247731861729321964942152094901884862185288382857960869101475954804794055686030897628044884540251606385567733646034751334911743973152090034991986931315391165171359123246645724209440799893652035568659095398513195812435748962570601789902227061414812502322865120498568645408787910321727652522318826767867274423241080556512898701375950878027541180762685208241710561490128534582483617884074913731291816605728322578532961453930300808015185747500453373716535029256105091779058023688765848471444680011683193782052871360442369476167564398707623611560326889647884890248148573440509572835775690330585376318013227227760294277368675128079911342201224930665642483176169077391626500611164904486650994274463107612022719713229434475056535528458518934028338762055016670467523138505071227905954047416768996401902394556871577615171563562599349679768215254952494314986003188368834423719500383729052475523429945819433083698607429904552485608998850557890536395762160060621832985764930357111297214044869791705052376619665889708884724127204015801069890490446597175735733391257713535962725600414214665375122848760695386043517143192010252481907797203425949926738869048516735805323830108360626739711172219676041002594767093405112905302838793469250128870732896739805018825690688649790012851231689707981223353471229627549130991853206218795524657426338389601382018764339638347224828919248001032362463665330005205454770733280300334852407079620703551978846582749708937278326847496099266582940802431809927707535666577376589355509473819866930507780145415718005412581604468491088172365182890296151655441865721501511324717185562475643482681984698006019924534736752584031433844704710193001436943699279932121788644952484546093548300637510035303868014277468813920074598907612689304744597344225179097150952904103117744081986175202334890852241960107563676590934971334989926434795432575397522099518778984969327657617379157737530249114069573392666702144919884141798906550715646497935487997492494106555956160386664808679179136036386138027975019133212167473079460608582283341602145201999332530380991878627236836717336013342639963407979635787518067419642677094656929824745542848660739869752435078891728917791026549561809563665315221387322778913654483395242984832630028872958560733222663732828501115394708625866993665170976491277611922670928326770091840902655054387846585005411372168703444702995333705845717281302505252197871069767755957435437112283716652370669879102930132363613458046825562641577355925011844481682579810357715820624194187959349061930236426185611554330344840558818354379434652297052930536262562292692001364345767687673914904539515739235439394792549956392918015185342097009595508125664965674771885673500077455484544959450307023946932789239032546737589293614114297724917167513292231935984291945562322392951852291541485288794366318758276193284889186739776953347055883063815484115002927277412558412561548934543198354565743803420490281134565230157880648962428691920455371577965908410205301653479491439395170642069645819271652080869734133606157108530955068659948612420478191899522270573232878850967278489440282245857073021927646299846570840825380243688301089695885240326713224965015392368169213890409224243427922105520359732118832823213578955339981233904012057887711437213436221172681197195517483586239454893793324739976934502499421552097403537565632597481791135115907937832235551382813539007970138020380310336084502310643058758154147072352225897675376997580558121491888940502829569268166225937676836610915542250375128457378520145332092488452655965487579966109435101115702319898768298798829344622695243192695905445786895356129653302106860505992560619224898591089420199358315357390971782180263847142491796816063402264346745885556734900355800075105829468460231665206953612178839470041285593947047534498369321093019490994012903665813954235507343719135499018719668548491928635936289517110232648812911563136360382503597327937331874029754332172597444907233291547564355370825428689132426156310695962102142778199959644151678154037751141528247969210065704055619973155489893233578497553920025799210933078340325849869566583666753467484168208998424829064177629133649076383173936981481609047743665727934631258167735923616132596845258311085614367379288926770711515541582516994017782518150145166279586913829664790233431203234244114360401845970168529702259124146389600341431233403418763204263930983206675698599939297472381685188737957621325959549825319686290356821662665875562438595611072025478783869622937934145447016843904677070340550686003455889458538562406751730136176936881060676096814751448158502269695817523052602645903698370729194363066382687802137630104090586074143000903015859255549792773448668324226213940844951037623275540495410436350808909078061088730439135272833038045872142384111805840305408974100130573740790382231414974737574877039415814446792704278009198590168116408818595474485205828206705281765002215883210404294428297046169578058181525069736531154562986413823640300714746107369338945130927352199387473575866545720424993472815889870718363295845914442492623727386326587950191245599820488433059681971670144626971871413587912267507404876188965341607692369887622182259267400247884438193941714428183100834678298161967804000504215677851517313625652502494661904996764368640186137522244904132522329551959214341857288912747082579843328125649729314824145034203911763234375126442845936692971275548888181150111915931867423774055023885892804939748962982288569031543222436690687930785941337677449541540653796343041083178816615476432748637532696015607720540370405086370221154848895505697227713096195338615807527528944763590133158162669759895119568695150096392776331702913969850343345993491046452218170639317637312789198073009631307288880305920700822726292739684898365835198373310550474299480716327217467938844368406328832117390249603692810312289584447007640673561006021791409895284544915715973712937095212771515216398919227006067697370048424021278008386297495059785476523947212173572762726092671007289014641439133526008835652918356602498910000590460187687580374164610813228949749225204274191375064404431297138336150763486188366497516602666477560120219119578096638252020342116733898461981387795200161677486828594086897907678353004560773685759240858201810954113231014063046332900618442412634738274502837063027163474126877647346967262361175606882595498422394463793298462848436462887270941136429031792317294636094698193354546808165448653691578976883415815545512451711476341715912826891452951002811414881718509557769781843040012371489650914261549662518608196766606025650765981267500252350711561185513146088751451393512080350533577236194201152834141123868670994184429131795050743723409326940741408320705819687208454910136341230550628803237462434053694725227499871760468357517650950843358381355846556975346340185254671330569956896945131550654764629136360898637734768144774768660823069085822258447565590821890418278455421194767162296881800370289682878749441419640094459404132796381828314085270072326259467109722899003565775844083034181845171445246190748906977812428095856133525623606927799867477344424852278944805838313864795639078159113663674785119800307252738373104557899579671439383953402851691164216832976707458917132349912722547020314522025137685978038153725702278298272202659462647371970383676921230027461914585235631161460234987503368288290409901297934585680225286191247537556098121124467381294437783703906301418483743031507471825125606753456326491090055693085651137543934297825837996490926002151154191351634744745407276781676554710652011415815009691853133384029461749312655581981990438486345146093324781997914416718404374681555092572239848367919847383415038534406290565728529747592545185474596633161101626921261341016394771908376513165925026768018939141178253981090816634654583892421151839639241740698498429471094508814157695102937971690180638537736876948179959969735223778277846891661997371131442623063554535933854551439288915469165996057078477396454561861563673370030669477157277288142800262480911256137014955351967858741340816270476894497760759455731163793696321803947922525455187514453250617436309182964365636090194336859458795859419457298362434433873820768715852245624089565983824900864802152334203877663248656313822169020771714956987690774479680055686004296318914541170680872644866570425510546263144710090517793014256497427870386057354226411121323538521280302897229653031358528523470129941491363729134358703588931800755457832377630340028152946616496219575216301351480213248311404357855058171821354726315598771703820185150670288868727557525878254202218816819334906326232928194185716820976031064853157101878599711654819678184005887927094549559889483460567566008603342566176038167219348141370486266825941562656344201134393018320401936352862513197099930692866924853621413601932348495672604785185971336091959981161640567960800293011070562091080451460183582786871805358538286062280363835752519788228028704906911041674831259881995196946515592805453045434146157018214115407954094259536825614726499502608173755831460661765754119037007493849350642705572386624001163945207505588500819177757988565394306725860269767993024693202625305183699845836259491982903948254067221906174071076141975827986462501974123366623167281941375733469835648805784180369153443636473731096441406990707250234923384781047567511058192320704759533628663382831168460876675222798035368878673002696626663470267658696265028200827043868054227910483727406602034375578484583723524105849563047724499785699102026726735193713391264588266430679412024498077600216451297227540393592522187402871034767803797406355546576177153245539700810988784629387313810368740795039918597606185895283823986897150163925126408231738798218284583148961106840007484009132485666866447491798837776631662474613688087554975281999052498879310161082212795201970803402531401860064666238485828081054868571012502143610196009769077867069002719143411205260455622952042633496304010846526623402367222736391419331815318386980034545555854257667885809894209787074541047940962515997308329227954015726688916230851150617685591605712553958126984618858790764369023409700522929960651338091117613686406152844357065987917506778053284702104047737068177383591166802553287435035312530457083036201240263692375274543895555452576673435949986083241202913884041397700066636687384011172239900755687601415570317512448396695146248470959465636294356060628805190938929695510488733389454214877052748860812812072548934519675581137915329803064618130088794133278876594699235862414121335815282508166136111736868848052729310622446372025438425499725502398365360813096788495600923923808820657913437082265091983416848026798909170979306155514945816294628518133222554742137179557950771768598615586518501616833646257426545352034487370531241799833381687081344270749633645593033568316870501962206349497814012286267956612385515882160940725969448769121056147523939635923866940718985712038257193415865951125244083302536546492631695588483459935824262500246154645207029034929711002466376242278060348459799860136143125851312550998014093020868746621488532278187837606601474725428166032269594627493734967701085291453464498792986056381208775845656848480298480062712079383446498162746276635402400748996965824960411666919494989929093023271159977905319698713600943985388198445011731870071721576916349308600090632143905244561059652019446670595153343648595103367678751170063890031675844946627671885105951040297124988865802679255272882236382165178829798698731869149544469675345528467167559916396102200779232422381301947738598997673450946483945663186540348222134841222342748359311543630744728145046972985997006377472218702559127015637252133126590086929932664925466058536982233560070557156213459569480389761708578450101766454732178723294622977111309575660239634703827866080634628673153716701822644676189010044192741388154914821276022477856695914704362707090712885755857996408360926178850101220179838649106411881473640685410286346889791895333356919484542346330840513874363049031238923528418889003765732113146830795239240990482770355349560631365018873433315743353058059149518691931842152437880857516485034706328270665322432904436624138555183129279389258402196356271398158828142945811642599187515219407236995999634087578555660153781576226659550464435737045817988715427385398154737939362308923935080120755823773214734382784263679578665673711976024442423913702935087076897169165834597294522866106282698710716785484011492770339847890867269330384572231760144807412275619297553403334395860217784417042403206596901911388980897450444828784388126391435603547248204989264928361165384638335436904888117926297448020588215380526309044394563648659760631672274656053995696439643674402419249228695745423546392425624010336456778928884230019281003494577369503170020347148635804942382707037234680425984343018369260354121880198887936310176528531757724973605672958288543497225437712831580219009449187706902916047240242495399495008577372367658493808929920672906049656653749654424608058661431977778937606189504309184805279146626957225536226758755657517615603511353384380648821627247225481635033840272177763572321090398710443387650823679298951184445584682610086585780386092012010977862262582065462694036685438150094734376627752429154428163820701954179718566251229716067088861801610781315397869925031365342690706086261058260107773584726137222622280239200228444840993152782264520268759331197867149820682015301281044634186668437738735875919822557911149109772052049992877553844460174275597554289195371735724956882929551536006355696335045737840850516106353912128395768296610015750529388547218117489516403210795793988364601020005282768835865219347273854302522589744472379319864219500655429726605975809836006271419461811329950534328391093570592133077793995543401909476479412426976138632955991780846542275124837564137647943982139409481747172177455213655002143152425844277818898723838784694976333684790790937172167089252029897664851587231288364799914550060440329948237820535845935440767153325907444058460208063843591773127804879180919867468044102228298330301478694014570427108064840949282807097442062591936975299091152968215084059704021885108091824822318055056198822888046678317811297341690485153583966673660302403089616814991972906334393150461631078494116111551238828226315663397300753800886415181069501845198492069091250148101897512452352382867096260429878362465518270604960814761680127336939407209833626192516449380737261916685112961310205039432536009265537468846968802712666151877141160000135948755829564758354942778184614045606237189856690280104962151409386110714426262061212808200586112813497723549573714079932568831694815396538597274729673684230098745458318167948926000237442178069979422842973446350873246281351024924765314249395800615264519327689364084939355422915842883017654134702301271303480052655627695148989381282568220782171165242073318079429767819225602652084908540385024195419965936605535107884375012617406783809512284724819414343627086639933263108462594729818570711518862300827189267072060818738446969932947234879094144725715568757111954980029905121576140782853538804799265174314350459404497002790955425946125963530740709265515077164953689916385817095372583269423939748787447180249507526279140125460818119891461562520180442197323467436818554116418723606121501549734043867325921040212703437721951601252776575513855246396245487368224659943748083861846606605561554810139383430792417206150530509769002850101208436747538476647371277564134724781854878262831072701633164585342217036914641675372306452115447663520204887960896112667227781898599419591609880303770941994317841261193772660831359933810663016503420884002838912831377305104754188860935084234035521097572024774116078954723355104017235989639678576101080352382857387908715392580042208990878199848369055019126437196131047896532283376896289702614374500226422825311729389286320994296853256767186106454005528292649586572640741306833335888019651912428594500936990206798385434861875203552987688607396316960226031004405816113253024505777718072668258753501327501462366295295136706922038075280094352108709653450473764441527127501891079822973061080992431108725635595876761106170539948772531733581323735415623721840051824579161417024309945510197124294038341179122059014157093091230666105892087903467277806781496316887388225260477585428786349555959296324037720240965672196356924518535628035141427279376564554956959239506332783281637558561620854877344192468641032145662872046249608272904169791486480244058989115799200005950405665959409475052845636945808634387698091409597002054304175407665922044478531644773763868924708087290305028796847242289075023529235029081978666601935868246785097698252712771578310994702424661341611454123118114301688850254417509701200634771494235025000209355261499366078690689338017229782442495950098885295582965915699940354784818954933910331632802020792664805747618196060368148695400349398281056208999662486508149479985270160824334550748705693906679043414594107296793476220269093843221559273620135193627047868840208493243158190501344683855772301128946763295639824155127839486059814326164813812623509199197818041769806701515408035747044051107803396218282419183696642513167330354654992758254665717430571431285543918772759824690581699486124676678219163976116086727002504848276854960060101765940323105210137208737817567164684125072490729870093646134656491678135374494585319280901037008427938386994059380379446627383532345609677293784508466822025980212576504902192894484962862121317407012917746795427111354019045220072460663002091635172296144064786501388533338273938379554185186828687706591242825540481275447713589136665885534535562123908918866258443661641883126775194757900472381735596180953489697155294997474479094629875499959299518606821403577565309562881628127926014908920411328545086479575413307884084974101821437404679731031573725434985194881973585821125908022734943061306575640875909738816930039822867745029993997204162379596627220631042540429862238648737219547551355716339386137687356549211093620491823504464445619923265444371248323365987269589697875500913466210527334675902679622885359563722626405081266829986627482957385687528036408724397559665531553797892648923615777228003259277742136822192907735687276023748380540246271766174945605412529583027410150459886221467042647831327969358674780372534291891416302663617543890617312796072570053891912246385313938163828156735525912066881094599204524083835219596989700539275618877965887573626690209655218768995184864480394150770421765857180116903536873642505509855912861579925890453587210846895982222297659819638879946644781115083054648413500312349467150462735093190858313212657084317098070250343409741480695445727641791998705605953093475310771785888669808308830003825356649881799991324707673769939025484346248604395681663038846390313163082901107838665827587313046636319048419550727489378669109457505242274481360366830862061721488134585996538260083272338185439391569062253192417430940215156323952690960739661848617919028590129356608247600646130611838019371228205858071080130760240546047337121263660365427122159714397922711773095323125873100897988974762446122287066081330235690564727959494092719955688657340779149093141491602838954866645229529637575651015867956783748087666111264466738102890140575989017570270599166748653521348693150225897190979400192276553638046729729559079363312007052039202400556489230133269492986104730887882916902026309173188959957010130786750834672244881933307551155664411849798090595194775639634310739839883458236724651515281290502187412189846337622066731416727678716208331761252315844262349517771054153319616266151153540025615804484873706598296245911792279604012480644956933242410647264565242407918661872235001170197765902990408372380272364132028821556000197477339992033050285149646889343851868439134370113921523328775064923272995478562373355125207115258380464399501707232656121930786341293977223757154842388699001371605849259961926718421388050118105583900496001652299151485086571147820694737523529782976323472792072432231386356876652520098623670807459145247294082187996832255981449043086240075122389403195507767489837584808061869367638574007696045301961878602235691692090350703845751746032053279211200477317672487036579119519413357388961146002060441667735059726993585924823302349519979022372359722926479954059801999123431720677467027563467216789272306534309800882197080193770893741740168820695365787413051565783084894524028456406268328442031824706845411523261781542467092969080445425610952432037714159229500927994364286685615418471206655108061951060570300338363638620277054502169588681093745503355424721847669671893152007091306005297086625369444982191500961801074014471608838319376116047737687425831553605283343427608399203466500539674181724689382022219005239945074304356483677610244330811314353620827204592597145663266346736604180022433089604155653259703954828983673432477400362490044422800420179671857035921687830302207801075328618446553534222374274659763048235301858769681359547155391418458518297446740980241942920300776483315604068178029751531866150234610394634261768579935892726068771512278942326455792071157289307920828309270345093720056937464339955990069589594598787767789746804277685549122852274993032848704714393752420715148503119560561246549470053240449716917456342736183814185026397560155342588573416740072775702461452902708477607676201046533181789658827171978430863507038565468939347163841774903376652021818703558791658428799579347737694522741731726570793511121888126417926967477495046341255663779960861045628412895600481750173495983321373136666078704555396218795963289971195548825787007486303496806944158706288128315106254697712581832931156658333799940218266406161395462716563010229011374941470104494703854563095067445978833634634008255762598806896338628980067170590869543661982864776411739120634465340532239399221439161482965322046513961748860008126003034239586441184326651831579218817859741231053711813128534389708009981803116708173608642839499012745597261877096596952884561374111699440623075917813807120734535015719717470748087983711330194594546405422373947935160315299017247065959354032045960983267333485109859243382893842427093523711214332205757263577576292186739462669802003241530084145924114619698897162975675216433536564940720018856498766621535559928453342775504190198328832719310069322254335714602502105307172556757129845587547985207319921452457388591079537366851551424701537705803206106468832537241996139905074201584968772511469479100643852148318298740333092932553554160031750782039966781109412684413600128031392981115309683925424224925809951514804427793227024570921987713405462762086965370804428978700084217037322497373797327772791649133354749515639518705523199138534267102119523626701775953495408387528087718045254320987951637275537682772237811914459241917710607137767768685235023445026648287876119981386092337588248236774195646407600311279425505500998396918347462366104520680679208102188879932839757135163554921760940759837178659828977186893200275990159369751767741577932085511500885190719232727363724202675811091087551969860135659145100146623218356527929448274628355162243370287234440220747088266175893991286577793761671357645542056024946420803046680812070112686113264303336722412687620537843090989179133324157924126700732725803527672459448732516072995485250434720124139279394223495183784631341880558727003019550243746730304791138557690492816532398089239357815705978087623254781929905061549593728888748339606529221603810309660547319345200737310138279104636684729041818177240428311708258122005960121895079700677790717647605862793022018248136940544702610935484068671068613524882059143200883482729545251244461089173833309128828997229050721585658950631753652269006996884798493645530094420902210484301129545470082602583736042679357027249674333443040795576738717332126436122126003953514151669551858760739414801818298415935825620000260488028201124380500113106517721581956841779567685315591653444049665826250912260976796651019011717075857750462110545728161161770786881344013132048666102317309806644323286741407581768752315111286514888573602753515962175373726822386084698704871267292612665201813841507063987724977129087517625411344726252261648003316861431666770390448305881156722755715107399348964574693886753622427919653540610060666443965154553240426442984081303280335598349240746625038194786317643914440464314592489570341822077592101178126652223078067750958883225481205610946467049493225026972986574667469196709348741944161131014246695793389613679206710831571337597550485448191246146960370013929658687991362970905927462928312704708001555049404432482508880472583897616285277777519193662832088733965700862320844948871799125139769263480607142779473835004236603728316027420349308811201171463835815292843734383643003523165161594088474214561656120990112567980657943796626414487315876541588452255680916424888816817772727410617824196098244820052860642787116274882922693767223003874937549989178059371070804842360234476866997436872535836641559520761270932693627233434523642464484267180813527051141495274817347206751461612632466962923397107392557727825154100759617899677973504985610216724022764944170784739788774489183366778388621875344036293703573257506306493006718908454438414927691088519037977890363707819104570764637872677288370115519837990975588460300392870680499786682774000220060881586689210008466913702848161726347414544951156938544095257553539398189318939208582718673418117916518757341630295076774278669221479512170348421328160747513625658346635553817065037393311284812046958969210548289053058910044743896136290909221581827095728967133534156075616831423738949977197456542912659020142663218269025885852490430365266190803794843140437458773134588179432429983004229508917012760968184216065508018903483164088079669089183093626572813091697639699628086755020498495930017461747413856306767497601947726376264800754904015429365893458899026960490428951595691113822451932768435824414980968808489884589768377303473750372477533058092260286753937438363157204726642738512198932855318320215087970646977310646931260898774758224715698922130260959013797161144119325999294615852464297355021538611068043366904806008656654458019202486592239024175449314446566178415031748079901600406966118570447690261057819550267204498112609238806171221167346445859121864456995011892480645192421251685029737538908747483823327890979717192717635520902102453335003989916035567172135436653531888831287477435784177271362135950672229136328834159222031845329114291673155187768281393428412254220626933112900752017967717695670855235345693476295971237407225429811477481742360165179844009686395739761007752272526601490741341966754963102794749575658149753250522531232354671529576596487260660543140967095000165895189827270859379660598533006916232697745923222500161486025291858415279963750782706780536712839384859303055206478275356272866904602429947940134439884617240979007384472936930579529166382248403076758231216675296186467759039695099632726651792282049519467791353929620144254667289261077663891678564176935499167820290604552952495210345823052699859881290810853153664186455575873135440896426133695710556833737467108507541785666258727207454721124317475038386686865708496170776683408766347298209362345847243103575560855380177210875708318286805692715405481157183375251933564362527722899434243346870089351240106259639862926900115622534382985770966569134967789057086681711430749266309577880341885546511982806117048892084139358730026119350200700834734520912698121166885397586650901571857151274571366025053590371192103910848080378310611084565436048398148229834979384061404716262515153504060822034251291777293553441157657278252357224879317757121236458665519676602539054783001732237321784605490259731909576714052542720825607920000099138012041507416266280907558856649921881963049618531423643721046590878569047274597764697379264277524527501325057335210366656278142282154020808475585776963365060870252296203371304028073117862248515024085729565359039453562205413010918180319963607334365968642004030205337093408380374090000828694094206974888889443339986199288745318573725588131535034643230196572583248853206687543040911287099775091011186674484507016952995832047682234372341758121129773483293489016777040170169623970452627032351932841798451467002387249426014902675282419503911361382990669280908191505453644275645123437818647024181220574397222353011406677471722047342748546456134997418226649271312757568702125489744304601538241201855550887585642198119707520435666484235839635232569375037377032754752435854709804152320139867389651878672251700603809799931734127073166176326988449988865582845283534856800705599744545548528255309805675709742421237811492188404266477057782350500975936048084699550982269933736198796863900713789991943357125325363225717570932888120954570245013551251272164622650372789290510365855153609081703810831319469819206511502044378273296795140009078878856541640651842767358428824961490875968576082670453174323688193503580599217367830209125778369718841835085227693890228682288821993922788656408834229392217402169869303033536025149700060838936290046543637934439805576355714384973797968705046154536489727524692861338360412528564394504904497161543497007528876633273836203613942348393772384265425350292619279790649506013704593671892338339555906876391427277996323260374671295130230305636982231003533627266787521531671034557802949089499076207866055342721487049254853811844127260295436015949491879402381218537992671879566215987711313591086621980497239314130401286275981981606412098220299370618832198087313141618025311346861549339736617910987833108178310541947128783758115738394102072096425810838628551711724098103356378880071719579923293966694894482181047811926331975935648888353030343079742206850488807676787382433040029621498484403045006418344540549463209649104127504473988044562367070319452885441254847421227378522506824710136108830199304227147208955685181350550451824291740949874063700060565172161528732887474929240760511342472693429919648691847157824330357840015107966704945934297095747724365149082401766283853471534031933299449495697801248428465781223744228195707122967770252983088387345694014385429435699802049740592473916854374572171758486918026276925381138977824880962906548785408082005440665249405076384550086746775457136796205171223066130017660647399339020393233746574173215006391592258671818067016991806334472778226124703701833448882293047376715418949793484157185052271735317984293609364940324977695366874983665126650735827430115239610130956471768197607712100041343957257217384779781536724005519959289292318923192900707668484046977030205363440590810822946785452845166282081006932036363071497717468791293125514127983780297401288913387506551068266956925991049055228357794905936169104826143587977672669202895347221648031065791387318239338475886806401539713795856542989520373424220607619616359072561819143510124341506627146588889849331903735968761741488697125854608588838033675161989080891970944203695446174390627542902314781806815905211474187154104324301998139323506933461687483211351911220262125479918480531734957245880564722194363939645672336098060802016548012955522507983548490288654114122174810267814248894676529937983343945830380081749279471262083741291261392855878304809234561662952109986039224142444629827710548213684535316622831339770726363874293619219339710989284480270946349865880917678092381730485689246683615505720561085540378463661622267253372466907992236969000601134569143313099552706199635250935617920041729965833939203838277863853760264176429369688039938464673447968200678144126868853876772437221576376793760338465334116751402294686097857531837629781417753569705724496432804032627357138560679426437064127294742447001173571793571262167298953683592868774524206496230957029387002367728968496544442629009443340380252236215353897092847499175327118523007367553907023848049438559011374069021489931349009572802277184604936153704501360642794119774908234819417813092909221237591058238277938317798177017984431182009633161180392065614631679979783266734759722863411696305977839045462719390360984747400708172772746145333766193502695350665259961043238112794243495372158509681873539945655261660154518026342305397138865133167349885177402935981707425343855622771034887160781347557748905249087111719824430443832177027391020701385400421155111632106116299020628937507323477039514525392475096048837875046828464135286941897307741028671807765892009176659026559731746968569269865868386805746093357097516623976514324398663899514213221092019550157707324740164951157329948934402876958940840696052425974732665792938052813358697310687555035362112668027208742766209082606371422485380003649485323008161933142537256586403646775323476190190868277478728253367722435156491356800920897771818768197923270388210667737811498525875136124556612814361537181806481255793601740918310514215250163311170237719187396772758863814471148915379774078030394582800170480333201789148690495871979499749387732950087389595423432101770990497383581821302199346864918515866973874023561408682071614355682619850703979270916553668455582692875242585143877745418780339719653261981536735028861644661726161954639204423549835229980093718414318738208699449047307552382562936871151449405442129653318823248457904060523494638777629556272277471183549203400982019615717022206870610418934652504177273298676909095215204228876365077518984855756091070744191715696504803174567179970999558191542328372725222398336084784006077689567383313287556222968500282871588843837236235004490490682359622954165016604161798785814092092269678849607631691911032925681816476015950844988955575347488945954794542747800178989100794175317456744314725136733966036024269852377306556374375239598065785057622305421095562980286051315257561998772617683441362360983791295008908197524989059409101667406964232043998136935435356076299711343171611800369680428331744929156572866459426215739392269625250308863891892063622733381037429090422110141129748957003225621308236732329882757741808973681116471511874400295483038552908841524296937380780336147460859654993337532015031937035023521675870030369484809040183065413085746263111244940298356331526018853349136292577050584728300913788029598369238164908245587274202940180050979697924894134054588239509600669511355551391270762230174948586699780279663614376293623716538980276724680276684080644055493358354532240924391517871759582127194718036866216637346802982977753985662118606453079752026762283002048235454976340010733796806619884670553130959096048170517558286768298627331257718605077879907660559953917055766037021899465985612310291369161875031322602271003077937661498685661913645863255280960931849967184274713476765455170444334127334171690348564083891400291266522940337267006488653777753218719853864244946332792151380669575662337317327949940539503793688908374969444443571346601553970668250196760691501408032461527277544543894906262894006352966474209790509765429075975043569503282080014415229295866637657361019375500844518272682441271492510018049630916686019293339009549532761535034831142453286070700612768557769046808023901774728631686495564163304951744972488128625299214280186034038438758468801107308860047835794579999811685483258121396854926411436656911627462597607850012924594500763802205578550515664553852611760566864669442706450675406955347602108415038968166397658671884576043592593619109560331471394573459238166820634932276347041757303743454813060240445960061776139087921954243479077626679360577881035238240776276551404748306431539398862830507709918312024848707100070546340415129018930865836629637460238208655556713527114165276328017646891924650579757006990728563054622833696553457255790845585293940737272369910996109756735103969561854350629618981825318946892019028257274595251681090326855877320538223050538718851557168362141851286885019407466086673824634838073155839772074340416209008861025839704522888957696506721749664458960557069734838033252451696236471739351542077333958768822557895409055161313735694838445603876051345675879817398953007376640876365896923421858876316237459463668914051291841301500190062062410753659096373047397442308329763587603406575529083238796366239976569910625030830626101610355935614897579627433958651724375925992890730961438924906848592126889831904784053687713338396821295919172794534024451293061504785775177177265896328472339591159715621518461869010329234060498542005165098413187150667155356056521214258752634667582142996719733032337129488763833567897214629881141998699582842792512791380304591011800578701677280524894844846895474549803419019971152115896495968382880708379559635059186290313014688046010156042731629300333096970643352497575996548197105609569774129109200119013924882900373285086606905884524493191882531040282820301060938111888065574265637700623639518967524109442291235853705294544609879468881334067605981967256378796263114472041119559270353276437322519015767903380426855247590408401768486110836900840458095316283572849265602414368003517871112061803703754910557235359083955889457112152365000597470989130525276207508383511034412254050285700194355517736140767359893458770364532812335618096665443511751920718882728145851008243958238121142542087497017088821007019718928793900145696725933871288107335319161421376763365024759674209185584804528969022714500430758908709297139367117267972843763597171962172392060665865566053140245656146688633312912998085684646875497698423004388252954496425080879008042602768834314760375214373536737480361188467886343577192719601784836981270622505126230727303497626184039466476846773692304285302317769161203014508263226557246553403439692919898027248526705003542980344400032310623855524387263458934874386386945758979642016089879016716976748209092153135238166053819758013460348541109770525633009854237785199259833189022282511552419424795289124560113839449376118264393260043093426218666894078591006048330932883633158183474515229023502471315778012223197084333900625506940317293354300086685661565302390336173309150027000932301027004156921113472520636512470017841574707323223080538600538818909336571264109745106074866179850295955300789465903287522493515734142462467857642487805345630998148490720054749340846340587339812823870081559554022740299252734688323807023703937134341926184362803233709484581610752295039678392981199602155682299418930037347727129263818621388731397225816047796745011807609395820126528999446102723960897546354285507542492161308750100653290733190959667036062107025743257954266415709818640187746445920588271235515746334027331872109821949476809322967669311844596151875346283799994091569180589850996923362844977460262963881870542246522164391527396965434965943238068218741955816534826790664554876809830594234553382292707651621919105742016089186931946635703488046918574644162777416289672223605734513995457718997716731396931317839716159028711383708387693468273358548306684271907091840746626437555254956460513964379236970008952584136321555934726400083994582535059957781888637628451914174628136496464199953127813099417805177518825192760277948359367964935177864731770993622836281989140417714851303948814442940411011603220983893698477655161571524500007707577005934339615650378793428654182992553969728338615666537612400440590310596118848484734717601486503996865465302285614937617171387047070886428828831514426072568898601173870655450444548417567390339808940304072343934019090619080541738047218686705158744446322502918747236173816158264818295687347784961961256043871601059058387380101891492274422812076368346813358227072800819616261900434234666556608543947073109486382347408421803658906992098808418718978222830190495356570019539565942721244059664531786417722937536707250412294302224712633442182368117379404614277283605164622008191159094939559738402059784857485765026509217970429071811351359505802786089325525765589319905889297899494601857663769641780538737520229049140998411010049371545805200888519639342421603767349858191848876331738166629454219000977876355574914030933281462594651544003071723595958976494086440504242405420705232047153289175836442039134105215608615551206783497170769135821488897667153466541528262570578501726730884648964133225764552075738051533269468663198216529995719291699328164101462634170482067715456155326734934502546622015894507343371344255028644820418247963836634392967399943890842099443531753493293330839077119965034341810361374774921735583485578748985569016516308866829504560722210390672539792510109299594244750143090301332914767330163994518731173942013982423555041781636834783119700854221164760755844894451986156523089966204770254471924040303674629707601318640946593963903027499885759712522090149140475402618427113865164646056661279172118203371490297201136220848396900780587665101625407252137674859374618697074265993891517933472743212385082371727196965631859669673234556019395080197121655856567304503846923986701356471652017155878650444255968400802121502973034505169914955460708237293366273792647892020581370828400267729117464316573241700151935290357881485422896292924104243983215437606023031845349004212658493141570328455947906127612570831155271073650638486425043988491635821462665440489552547224286351883878503228383101386426943415491234159534816261144019601918209094598176686674095484479517896755338258056103226987738881986196444786448142911032069539544355189229423190866311000326157141144963090474547729050225146443725708913140021309359092498881430506004803635793369050992805742006000935319581914381678125137446485361507303045694420033838440730135754053901261681772158748466271139718236093458690818472803142777414427949278435598102574718506815845264405928091050778360436177255529353327049203494008147531908395080061673918206854779093091152648672729656008356688110249689690958919179431170257150618068823419884848738404461676833056914642020359705732122062902422480647392710036724243824776941089898172813482591415256631564680021862792492469167235125287069760021977417102491397906488177688840470353509147360615835148827844863402578226707054162464952995310364554040699190439658512964964182989835174339727323295623689699253657958417553245143795906570426283795250425177001469149163769619619553962132139813198216476732283935810877616966977157456017046863030057643011932784904557232121134574217295054292676895616822395295978272620096145260057222189306839406034819708433296421911263354990517013011316459558876181318567272040370639323605287704465157782211965589439671450680025279702680121730803274565547526092448286075683167905409230593659553660600498496234773023138129301805122332685449325744001104464148011299909946266048654563751870604190536139415534470500205471651145840021988686264826721065582537634619935045555186942704195262767196271387667718345188234529190685810805154779685528137625520843173815638349114127987662355632129337635202247235491575295837694316867160939993335794303477011513145896678239995976311381563275804517392440092627787172420122482386012256360022752948494476556612037403210859677587462477479509410067286150908050979191121061697642594345244072006935514530755872849658719758007604782266687419251186080621785347248741943713951363564415468788968584621429106554623666376700599608532216934772756125176312473232213756355885182429382246199007478983137962836331757156813887321979309292301826183299897082167077752151864941162495926023726383152079787772653074810883792989480567449386947800723557898336452196672722193489767482893048126440135862871569134855504265450896777271792707261237769084952700697000023590996391519515202217551362300958585258469280769445030572571605502586740221883827726131884199768764273182441009147915374423427126422708045781387445733108242606547626389139876294533205812954633314171004096021224965395463033348502427740433168979352263194181390459700686733757830727810740478384859502844127756467620996460334541819450884763587102563338988204023291068628590949717037326663479188124500810544093467106220800617489397162163888195403049528796432430210117415231115719972122892910549946005519377192172226153637759742091042428069979515354948519096951321988495460596674479358603157666030630253631101124661138308674390448209429444618346678057671846080945813212522476736061607509175602142472878463251235722421074874519714896149294326006715498559762453386699323976399252481266526431445236108654399739324116382909081234644868923207143442049106217695915153388062736889935322869181582906246136520318999794728479528179243859505548945570023700818191525883743023232631373997200828601202804167773601248622363845482829943412523339875362815316180678716531757850115702254061865642814556297328804465187839214982830322076150371415169089679754590738651052721542892808100262730696385071401128088109351980555768622244467404566037315139324634878704255170680319495903488386873850425984839217532561464983162388731108206206596548747218690120504749106774991143399674550619116993031774350158538360020868822342246579450493608315866607282557589589508128286887566465242799514658210621010422570126987592911965518441182692241326051296003445019892836830714935161856160255391804427364480017642562670596409347560191127622972537717029183599534663446409707123237171298211148233391240292558002102422520094521886566601150220533950205412519319225807334463442871371578879902854927921594074508968648793935229899277335275835741319457192549351456714162029009227699804948654399749087602693398548515994652255226928589324817071238614507132060903136342364075548720190010305863711651990085000773419604638261536659384505245227092759357413634857100204947469188491934209820854556163042868623828563780324708078895978352338546460905744808289342374615969710522610258561621718902373176039940037176683430357355495469969654772292107347520275839992777420136963860348690407658769294829711494172865137676086257504009037604820727015761768190231988979602638912270608184005485404605623496036133220686620662984613584789481458061459741363123642595431656355190948979267312614629146913792133846379879883162462350356242007287039221180772786897459598728897303993061716219720721091022598933442318688244730926573552585358027403887718450670575955730007472518279646958132790346561789575154400256853724259629479218674919396893035753008739723617937647646756769764490973854291136487154864303854646296679678833893150742023833345654412637693170560009258172837557967845602587607894762063899007000015706204482716354441085645205906429735767394775189601368635501307686273978955257323657625918103806329761724691503912491657622561916019249110451688762294743872092984809510735526496442298129425111890277677004988024510548548352600532127059467338115409269459551865035218228163505498332759029224104741797633673493718133091798720215442659359575940457076735622094131587205365375868673909838926305134472495882049487218210489664210884703713379559249100488283088487518656318034503177725768018770728961798062603687002767600886567062864639900167809150352836428597180919021832029398625465932253752732593294012574070184184130431836104838000809435075247868623883094081515876470726271493953134159542623694795983048658933929157518348608965478997492960202227887533592492435379855198160597888525427330340259867361331968930660516494421946562171036264712673082403848977368520947844992398064255231783024798687125186577217382170565031399856071004055447085457072039832366406995943318982513004625305443777512076648773580489173214698874943264277109695533895331776463154222607279395641273351636934841130569563631019562241401363705555770644879122519472415372049965114425805973592911247841668378248411575832022489190365032991076114969817966785319836818183642035714804104938546207511901889364304776994539383429529840372345165184531175714879213307070570333182474202094589103320950490273595556294377106469143287452756056772586392249772969803971529278664434620519466046318456517560722954963410368406181364354516958287682227222234412670429800908440129217645028526754899129189194607040375967141935155513115008114371677567172879811274062751396848914638527333486854040891847449695972488756011164841771046325665888082935476407757579185017009171405255959552787209670729264820971017675014249584773483500834149963606382310433959332357047240582181094872723292830607920223340905953771742686500447339416114084718511678541143448754972350075899863291664715719124504027460247933459946339497813446872145648477555108595915520219523191390855911210886163527499563754668692139072332394997160849897795186373764551098124384390219629062351186527572127078207655458469487291496028523697540086781343675773047547275242840035361560477787122199400209537608740243401270121605976388100029630697399552753515832287835300711828197801043887842269044939014977378834552502248193930205174859253035726501503542298860005554275072965273700466308382237674471132868687404335979125612710586630346687223121962903460252610632041716080879885086209060890769196982474180803677955610879602986227002218634937143768651484115412647392482707334051620950812520313147787560505810305618055651480453563462333389692735206311292917600847848329797641309354862435758945101665363978365205212318304572909516013012767281454191465598940835450104433003509933642506919899574122981422807789520350821158745387059431507592033956393461058937182561281286587678784027108358288209607583578422256035270447582171875773668494253934046392188874442587254856073043560088048374085287076636571920565059603123184356366927685354405268646075520399023295811609754573271239877328169311633764479751269487572923672083604489103078258780812704777514862595011669915449755117006470650335698465867343045478765185229292254231505439964959494212868715440057828741856080584717397670587870718053308405258324920449308752166423989632257469545307244834911230332443939793961506663261701603031402727631708785714414820479196285409510224201342693141424030327892170048185699837774197776301757597945344616468198321508137911546879056272937189972388385168565560918723141783205836724650747552026192675089192829488028216546021338959188891004601857821217089298372017621093182868015244832265733565429216205792836405875162130685992445371991125500029331108209935399590672820555235254121141866851588890655017491460026122175365668874772904717830582652076110855434800749578409008691156144098917026353404799927238558729940894315388023952001407293593277751754395483512699639313004885231472904623016411298316546024315003946509001439976788607050874963278661710727990694321005726354589398117998042749605593720033101897911438934981408523728777548059265023918407110756884567630565998464847612373162381912192864549924348129249011008619353687864781300877757317734785563027725296313312300237846720571375081115315996523262243282042971221579779531737570902921339622161320517819499533527218005897514192789368606912227424260572975575754741264891384225357220268626164043662790791072566112471338972697473126298383993233719610029677806310925508393718326147880678562031994128619062972201778317934576351596859018858464694867240018734869525831279608006725837689105512468984999731689297228428030804153361257303404864417587410557318645503305946166683334667025811632342553434512363689926209655386254926072189885427733192503184678372786734424690515624781522276735917972652216830590970959584756619518394486495740072511083443445333083857271714955338486054113416291991712448129679744197820577136214623326832886487142520890687376616471292402384064528560017360850406524857239646659876377267066892947265161780863568366918667475002494514222198679742291640734932471216715117137334155349030305785083765930629269015461059929867878744593492496794680761059824793869372427757857086932341055157423718193159452865179908657207725570117630807412094969675397531159366993007532560116009499566446932015777667593460898894306706084171485269157338465321047632277972573859071654883738719321150462138552708313454855895448106949295462975475923272573752062712271405519007806198015947202623277991452923768984498195734613767445464765679547859306688430637197672945273269813148856797821356925344621710296027922408095775261560136479004424061015214395460472169851551412509603824460962448544823246820783859469928456803371401031371045111795908294443165058612376324423419175164128448600527149819762576414229577008292664895454885987811323498412474042266128328801574512303136127115174309357574815395444596092019932907174915069794633702669119506485968885063065622545769012484666635946519246225426655632372900892895333438656595360589322537257865715686198564005674963518510068281882697256681911661139409919120068576012308789554799989516116436078263628330074208029989690457052645763831610204123430019479491527240501728963802013750238144072778399347666705186745928066132411521494255589247265611334226951355975836300873297552905031746241769186011505591417719515599219812043572653839238183821083797945080861901402790595989328772657996567592844651405398006763714997634314614258214750460623270925646359903904958267463794858854488559829357953541081843770083126161126623383207788306294547557140508099221444059077493523348073723418313393319226940557435520239187505183131532913962424270211862407441110196329708635761940357212016011353389499687209654784293562631918229893544844401071468724574960060932577294590710758152314705386576830611572687920706741490681387401632038489657310337752359239817839113217882158323961571756550420440008196133637043450977618747198582909039978055861329274726623029437063065613395954685154690407436391658009889784654484085917954984820123932100347231384830404243075878354279011613376244653178937396780272312082621181897943975423178217871134356803908240376156767600803511387917101539172869450948170925243033233762898037351008176903149860551723173310190157869289010898366957232394217281332655815804006677026389982400994614747940419078033955288184962013592027648275164527779778425098674704783188697992779844160966981283801379575801200968575536284864368222754601059927244995938574964688608734872745812659453306244395107649188416058639710270276942987157726485904944874613886667310983421403225810330777617130570557377220052116298423539603438410376251827638565661165166081856339456269745343740377551637746649769308128029793340882196171948577682228440225098639036555886086644362231201041537748268847956477251986890030929227240014975668292337016879847075904668568093873742713425730923983953795974042550711293402179758736463907661748622263118698799055540742927025176693075399119812393316128551226652779214047897314024413619713938310220840942646996726015046160092280117215232934228569117466857368103618367321000072078548843874206498870434091265150829624628957698845702694066983048082223087430706776038657737588221438218159558045756453602710391418399897930162165341191917858134745205637505366789952652412181707312490512761796693837843470168595937560877840194273561585938104338925842084863202269949526933022207957402691085922869486474349547376840169961374920836652977881395042608135813571647456865148733200289251134704804370027397549090475199893257109665285664428844165402373115556478215746289731828672947640219742868563315701679943688470358212287061665558810567353484636839459860377588017772324511191913996256153920169882554031968862905316272080625503608434038241116716322626361943478618151484226335464051838738864947979451444568898042882470752728799805734196380085971934717557668714783711586881985655034962629304977875036623518189333721863388415351755609722228237791187961009554824759810720058738081772382247923731277204494673959562008791916453041459187954139742503217565891576067321101646901530611203932421955347884953064502939366697404678274141861332496975673495161586039014255768598303568755725359127551330886114358117086794499299430342899319426058868944930477439274542645132334540554136905041166995522109363668472337690801672443404406177302437865370585109559019526415026368988950468023056607092440362792053529305267949016772990958539493496593769349530205265712682020156079835692778798875589192693524882886469836947457717680989049383329958362898507226276332666286521435733302893277733392012877247388126239393365006352366456703036006862388940319205748521030532571572829002389062516597215987844826454571109246111071438159804737825543365849916392635578020274410768000226032819918169589442015434919240487810289238648840628102874104828212525078139309308518426336889138390667017019511519125548367773113696716564888141393380728259886229245119845650966611979927755404283289680931121205872965118513375064228201654230975682015865350431036170055485734776743918899705402153384538162050924048061040884364614296717035479617767951015773422788348349192844375718392339066925229745935659560252536304466543972551695097637575592804503407436729745890754617507841357065112007504548811924684296885606303274935155337175780349309169660440624940882456722136187964437886611906765520555365170097942411295189716452895051083337427082047499651026008484485943740598946920187337329041757269764996215335407659764511122876259507458130423807813712738212331042827721927510863989685132206720578396163215730721604774057804343185797984106981357470036852309830128168743216807945844586036327847000666104904007594638668138432710346875980350726735572687660843076386007409255936971233264383153686620036483859140962085458121427956567475709714701932533721404293731233050568680763867647345465252071151816962650268278134954944743802206675380189457812793411176311656564683790524558565156569433130791038141449109598518765654974460563667336425936049577542500319486234920918542555089371571381513070576685446986111570498784135410653976405642341590068162812170607116659102936044047424413483919136478649328448188567580546787532602400773354875600940064549001228055323648763197377753945951137352760060861652608147963093951910023973093654814661548212169066169618925658170353722534641360851697695923142360657773016300648252158320625647059798844423083554611131964579975078316815342004388680877684128534638405342990587730292458241621937419814074862812409959280346609010595099024894471235333262574195390959062222544919935623203474437687409069304304856128855648395733030707420241062917060630259374355059340716559223223037892548455037844888196789273590122877703049123362315169689632267362227744893278939889400899502931460683033381232176507469076504988803246022849012511152860309120288721430641557113671117942776592185227947465147550236452130220458382774038719879853325493316020913844660862175192692277515641463113842585411496692223340510191405998161817645750874960070372147782480062307506797209583999993375280237346014829060485487574012804789529039475125548327067412643043114548859418152568995037980479766807684765066737043220806585589068972841961040615201366388322756954251395501324038225292006223382282903588611792295719287738671387055819356859593174587418911367904121976917525725547178970781841615392496441371198078435379630380505257594387136017169266734882857245644145754480232208364687011738170133199051980550146265691400303087928837987259438750010388956856013288653233341131499810056318426065442021150540355331621060192673981958613429094052732776218752071688975732622260491194606145715807537449422031585858934123317795118162801589137587636294407654209844407037727003621435363785666808662359454965173441258641641898446112926388244701585856815420458789910858525817752217073550173623994810086756519026119465547497500352104815592792127701246259279578513118158738596493646676774342787606987130955560715943250973706801499818558201888410245983700027863040774425379580324443243690987967148749142467756684531505059210938489493433999295933700625378663632945863879715724597279363773037963638119016850716231442055449903966343015247031962118183648388156417749289543906487385707401581690583271346604209685381637857348867863113251044518781822293472386462331719528095535983062099454998890929073652339414950077572456796016124977538967902251220431055556125982309153050802858897347483587182794039937404837941665137329276649945262447744749561077703952640879169124983053439930529560379922925133422591314476915559520717619054948262696613512576574502401812175451022528085277249119995769048493214887839576838080195482329703255018978135574894669072076190870736369078930739845012522949847784187655909066608314644074968290278737996920165683517638961870916710145734590233175235182349585620304097622462969822341800192787418507568917815407814216387129946349535105209382629677297761552362254406165237645419676014504628324355011240142305634730717617120561679294403673694444170723949133388625653591110756096894234354515095387484316584797785316744481715107408556774670023134034828495966298875002845104765138856433671159514826570110975020666214165103502655809867899124824249477481733383716310233677568217378454063048315746617291022313411598458510506330966837115757532034048667116638779839666495839248720335217981511459939587380518810666374995519774261692304640922420857773189084884740173962086934808883565576748274149534765823950507485376232366303257551609453643653279335993767702620081446759584065127267241080204916989853943417168585893413400145440139028007667814399444537108936154520792139769942529429759145057330135302804194119895691568676607029065932602147594577316964565880697178983291917055341687498566936628277903909402654249385979644744854208611542276726070105400637639367254597956771905543932178793705238344207600697269712337203250905598056628757520694042771651561446717179807815045582406683363010992552669629020557603509750186322627686965082273887211499476233498016858206304337800300466001254255841258425971655467364036677420870690471160047365983550838787397984150997520347742944810304045072730922636489130102852907769074074432320789852886600269482002046564742716821559299640540859434097425538419996417484927314430988938962963787596290260195031054435925137555461170164716379160272939256481686409715717461136378772589304479242668761967901546548165780525874524419308568416434483297322811164401477839908016153171795492025812835039534592610498584330612807844932498006344813693486512279871978118548530355510883376869550214041983342089787217863857154304480383741645936599647347126514538164635388606379010016485803527644886152852386635902851270287178955799536613911837265660571068242003979220315935517049304126341938921077635951729823104874400452491786608020300496106860291778270987265785026347166665299886206621607483128972253405495812176514288987270653853427036311827480004536534434327030272210955542610836285650470347499865492858715704944731883608088388367784338144008378482056328260661719929193688260327760638374933606726228289810228713158633427431228511721849527372920025413091482562907370302858524085450605313246554822954798708608998556783752615613079687772023422669536014905024390781619281153519849904820444190974782660037546944230413391799023066645253283331262710030410924194378879608271085221669982531752941753116542698721895382456059642329819052439651800563256862772636589100812637700702551131744863468006272259152306855808481230619257756287165348540705934039510038391330125354454836628627744155370167161393516349845934351044682837847431034386158459869959917899185473874106688423960368742992954580345012416508674117924998307396691013699664807932780537567006582422082088964230092577140111690469322630893141088603755097436131017604036436787551158046454783436906026307466673799551655584090983748224146184779724556167014425026497576796471555073976080654994503777458104492814877577672371985707350357558777909447786888508987468032708863802619799628300060286157700050313749713292884428773223429861040081800155554590672127315565430966841019078119765826165927759171038182750052013370160779696949395837944854306934849744190900511303666853556719493934668277276075029365237287821842999562619307017541861826435968241829827198567342467219019697323319138713840258590027195844272853562393994586592095926515439024826461473250518529156116855679093251708364443326926495774511600273888028601928123101064615524323079241003102743090219005541817673637878821560950121144305563952719440310591325910572450039397598650524649078192621424366916021123111294014868434161323851261003844476502423518152791850993660667750798249087334970452408074073625382207616343832182022622822900506069909626543024133170671876349131577265547971575581708869894686184408302660453204672297108792504562709776201701119502506651563831826443533069417548595566773414039129753058215701101306880318483743029178826887602931609928318389528570392129065191801713702281756065004572927039500312963956016424837643629488663896628506237607253768547829680958966052912231191127415962814248876018245422943924543727184355608321958618261485030650481476561514996236020514490692519374878566381172334642842120999438409461174721950813755849650184833368831097080948223453027128342771295774949994665595510440924716424606251660290111573252838940125434307216483768491490948449157209384481959192919655927621050071817349457606200447063052332155866875985999465050405311843645952730796504968768649433829692198907111380956144739394484264154021673730506604154893091337551443940827760236623184855303901161861024958036550548445087061315004438326099220800834556513104502760282649470576693491870013222444922055340118854453799075310463782854518888158564533822344768257081471866166132914227873345125567637659892211479284014866763586905790670610515785699005793179557465715795708429169008654077111673256754791399201790687688115950995650719280085299874859202831689561331993048787608223579518091691673392109373880233634160767505334326771002182234990152506988398039982112431225598705392704135240179362783336538358309717781248459951301550980093277511248684755884402743190206822312721711482211088377719908095178172091273216166161650856223088291386663489506091826556631339673354756556946044329949708894698751505350932026049265668600726359061634698169785424488439197025457828457788595563749304533556816608112303787571427919502208671017143865470135354021985166622047327084860655208275283615552780509064369742294775625860363238509079235524506206782956618147380493205583103967095110912363225945180367214607710405587604039398745592899100442066020575111461887942913272399674396878516576693124700945389121867379119988790098667205391066873459061152283559436873276863150140809255621190840167086770622347877185668697255247808990991835496467422604787407965439050316102658121046272310603899774489668781508240990807293855745908774858322803446536300388989347839652213482886343706870883594171867497403007737693721739818147059130607044819896219010057776497444307089630565248669163330418680145233588300789303792129659838495623520140194857096600953352764396517994972319979884725897772358454512936385254550374961756413193112127390733114171533546627704161346874027080404845943183248886158671490272805419463729996806514785297417508067975664097610064998111164486820125597588587548408899339434756438985017774389878399148101143253522929969747345126898206383156421819580969320308832559184723783818137249800395664445192005410408282329426451096894290970995026646525568510021202619603221237244035595271194412660730433027941067323458516090594933883356050389897424033417232677301894951432432542066657251345744408190184158528119603003901434024404785297720583040948567384356258450020556814390224411070719211309519539508122659066161156450905750834608187734642409143526546526278329464795015137803114083156876649161126409136560186744910091047651370325088413098539886603653073078729462742216137551598168857691603036606228137842612834947689479743344847275479466709218360777384688429441159621653683371559002952691345173675050713692977881364452530693936386136458451769887826642413707403422242906730480873766500468531829738629842460073573107079129689658983728096007268601476604337050912626354672952628271172501187115829459393869808771259174021395662169709894084054119788028948582506525098336091617047444646337220411670675831781815567009588484593833757098792367002272683731118841060497975547966601649604824084561829614168542857068649947871171734286286648981065004394301701921603090872478423755712842099590936551393837095148124667714060494334799229223330798124406290276852084617712232253161009282523244618454062286234787286669724506589593257240909670094976284884684348448027725979496735777894694906175136495089197061610450243786525897330922169477576149464766294204416665029578855817049450236089742220872154856887430877586974910257814025786559512426489559663705886907420760133248303087860517247679594167184434237231465509848887888881760955422799426675791993318784245618049455584450937623135276280063223603409961129340416839443408382164993937470726012777944250730461853674039024620589578832809879823423669407810594584523996269159563011391141466827676159736447577711534000972913226821190233297206946900683281698429839230887572556393504367490365724963167231151150010580834953983893406791762600383572777682363489584075345596334628938446145917349729730043199306987664586152280682627366339049704805471631544042572909720238565536891930000123389434078573474838235633459295073354495978790305746051627762114527015761299919911679825641918508928031000251376276058116131771651466789525400459573916802015530109869338358689457952322588282562353800450873977657385833861087978646455191694812456288655204428607271986535282575839969290035705602927340787692252460161938938080493256325833417441101357269201259602110797643136550042258268796168736118610713480548541264658079260041729364744643527282903952042474822778995303344267604905647304001991676013153365453470469402296458691775609939771135899863775231540021503478827159630330562526481105789900781133195356190205231476429861917984195565372531889784484033926833356056742636333974087557466387394551879705633456241599901189888067924297133071619731519952296367332924966092851844444810323600922233135795426926050650231868179423162193536247028400435119058582760809607338146415840361300486643043222752061930376837843690766114639102492826187768364590969836918531394353950937304940236531120496727846366934006688977709751245514473892080866374982657473846040984481837326909750326266115646365828270159510632920472653094857031189814641544454327598197988509888304904626440370485138577091878133188286002043641348061318936129640979761154813303056843788626134944891686844775110867096667202371626322320669090434167758223462004690524930797578745261514712247719634028906671082458220807362602347442215579166070106763855300291884624092971522899352375611162907447719243222140188730130633568794231779605308682222220220530327102506908101030281828300729196134830241639969540634787191921247154841334475517174765650206996916309878088049028485267824050615831982663152607178683771330635996650521176300135526897788415602505493922448152814103889939598700794773429667450800403115324029096010934366104853779943973498678125970785292189773172946644285563669845024925968057587062157089502429586484662293635774867966899058209384083140759137739005120439529086566037413939984520001596489770237427723460002517355395505503794500848984880070996680474441062844280327566151564766025921258399004146612668141513923547746323009515337292107371591398684299646764695530863575393640280334423334651533380724123730041170525507642103239163816318849104333050533559968469793184872087703452197661200940518253899322934844845041584762397660515009121183851928931186514749743756870632790182044567836289110138791553122979994613089624296765588690322857599213094893307197239420208208289910311186073967777453277281136235200586083888907120828534900420691810137322773428466518118555328041476999310824787098006349206632690822030386678170753328344377073310676438568578448338887171253158419207365188807717757713123192057446436100251189807078511901837735627458012818433365330150845430316041638133364788294560759634784209374750841479961771125138560207087177159141092297352464024495345153801823484074889254066999610840830366859432921632900742615815853040691783194817599719022735832360270991519174605876154639862609277041486416938003568891327554479486283155294371688710464885710875942463396260168553011543221327728401046621714692323161952439587547936995297245665639535061699813704268608324829296499391150315393195651882305327875779692373162269162743771281524262930327943883062190943041785918477663370204259489031053131888310905669754746601653469214825670762174179477662494376739218886958944105000825915740892675838701413840165761556486524496988301219147078927123573716837403877665152292171986778703404513511984942161343015839171672599869987974049712591911266347625668108283380425826392554760489839579861392608627368243691161895296941004518640045846724498256720614367339207302823974625124308033929682235685146884807780235553149003274394280574505441003178510145558474271789769654239464632686268776492328217650453788395618580891712438755978940309918517676888880688897448708574270220095546627930155726135867129466957145444701507288758211913768096791032881587645120664167715915501934412667077157095598205152751285075280506737294539463668465595511780552676896931930014800382864272605826512604066323298917119699417138137389028768585639097775956225477875081378832857088722144335767903828030519407489230805968248012900329905733991900497310004744875134554287428001599244377238786982370766635932172116307649129855914052312538412113878068040408229857757202775559438904048988615666895660392963529527094387906553254399322091692884775101813173476619459350994128084621836722912701370705382983224366082631919114887470882613679800513849633783594539224958124113704080933595828685799165898183569413849968898142071332600246944830271235768334823161685522981129660839929634905786545872930936957625615729109134118893858546252434786143912460300258553559908668554309888929351054843544429535290399436352337951345955743878779910220589093696577931066011205770028580957494906108301576507835511478281558137560412929320444228969545100989999688425911215887456032150713148800189027788924448142819322821248441485324926411721571613204930353322107581047475874486911532843640813397187221504737112096647517378138816174881857703020031668753421768109668234252110544613730741677658898591675169617386017866987241241392757270419209797149240156431793599642336142979982627480963255025525715996851413818138103789625792781851300564135337013287046431788087173484512054698961287782595156870629211225344996329400155769233877679898388836613974352282672056737160684902234054469317497405948849403016525398733460805113682553131422368923654812784277698778477224446120908517474639134085862358574234154245441283774160101351223752551138972623607551685451696120975064619618421455985578454115925304533356555660961529600573319651615315219303376066373317196285643063105615222098195331203787569178654263996842305512884163629357803787096651752543756571410428283683617462475331910622608804382735222162267158286740331588838379324982991115994872013102707957533433645922661531140376702949854698059559081228579104489095209205958731029603075890807670270424737329419939907093400992950080756010350877511103872385173159923089654221539793070109146319714746502494272604668474841328894260192501088214696636297139605092532871696010200470354454234517218744088694069998608197280565275486204977492384436740273202120873107753425576936287685075715684101513986460937873589460888343006145641477758133145227620304215703658673458936951454057042348551765771184984694304260776554499330794365779959099375766334036791934023162769919214001707939114013053610233299303107116449680789768585523967220697618673089027724839584448470416164919388436938649988494426321726788573839523093184280394248789619783430771278598658306786368251435030816875049931621014983948078680316847618160569028812096288234301542860884549866688479749372398331997510192469599535125079514043799572031730233479682629859234144438343004655201702621414627376662454157124256917808745839855956785912072865855295030014961810176117176314995135918398890680023000561890593398643497166911321334396733208503906480195256011872529339208131338775121922610833570063761364314676879815121692927335070487969255250560234707384660363434876361047715533143724657060031707422506397069037627039972382470711659462504988935124259998881256581794224779634203241798598578584144386826066981054469379116304183857792199839030005568261950344434487634897342056715269761358275659647077208033318152894496034997042955131752243621985552876069135705118672322158487450851230201805093748480376000087137111351741146642342714080195806092894587662677135251170132077209374527134353788205342745135965136653122743228256569729317876914300062144608170402469459523441310579184081829089438029771489807180351908698404071424214298326587395671998724402245859394493329531502995247740272942012290639098151214021929641200580028414428652136626051753379523071564195946879087169314256057447615232452658874590693603407354215073956662481502895752268099674702071627797356774707011441139240981305980680488723261850897130507877838917690508254326818806846348304935997631536961473345450012607304541124089524008179789506235164144389418996349421533607488401284715988522939905881302521682464843888778052148116462327190889006897077094208926884226898429330568635975955786318900987101980444925534649553172882765444454527597580825564792913992952298207079832055657043447577334343637682629398655764308380215036510955967123078377580716612623144523408014647117330143650493635236796773876603343620516159524781485240321470327747937997089569704431768064662593068217946853539940262761541678349563434409981702306460369531110189945167449555296677783780053922619545416875633012332577440381057993437321168621294707305232885345367446186195564970041889052789131188002029544146195674980555283372063347660234660539939183806018674205934179730462638776749522524234537280505993000033421438987651412392430493873099376244412434885620417915865206564785765439955747881781771530072204024934478804931137112529235981329275874305723141659750595070316204941818399385003915904170055834438416696701555318785622120741848809102282488653570670651717306216557050478273036137537150605264673581568865738579140553400767439959160912390737732740380684076796585119048968197634405318058565502987003924795859706706079660515561559915725354263912053947323436649420436088104441995347348959348583302791698166620855529964387303584324357624034630744373607189123827780006374257541047170461427355570587421259185463357576481782056783002457139598379424310499787210824731836748274641518014868931293016611002563617372040846038968663217985683930759073445649344043723461558743241733933138960533993658617004963458135073356179203606776388351867246801885108641228696099552795191369383507672188794530895177736842682638635693774938651311607339489769148501320814952634989000912942681556564134564100958459141628714050165056350484783603892280824803922369121888199483007799171547623404887240584988953655611482561569021642923298467829272951705985314340556297865084980016104760239316543477742157703466164898777613566391295943705446514141551783896010897316757466665244497057114626566301197324526459774528171139285702563097920602418009262469070563323451676273479104527845123464281027049813597609796605195133365800188717880704710781809647331046988929661229068954022826672372707091969248737159053428039123760712933406524381731354322022830078094447638170724124812789154494610057050440556021254030264932466016391872838733024618674117320981686924670724195978777017195704334259476246487358630935678003067654559482817118715984212761995525345679280140800894672721800645828908625147029771910817712943957738384583651366577147967579628700500725853103562428140781444122150248523264974042067001315475835975937135041495018345151486623497803762330617700763726342480587031477434724867679458371999414700701353423680820774308632694983015203000309485016913889143266514885630339052586850817773536755482168342281140951339773363190821792293791079474669613502720334476770007557778963122207251964995029927940876426047569223315136355112959772410702508606209959246286292816866613161586605731357913481846633425657628444241140298975641115672511835336471074027303050438737860494887528045372828524294293586375117646848267798605566421457103726394840269265820593926137806337407417723929566584226063666342529013190977552788921166944548507652502424951706983702326957985762794935990608399891810789870133054138297212209488115683626281563587892745204204904843543088404920384702587286641555429466301315123806093249583360427751967885751673205915771884611886016036717252580058182395370016957695583302514927237392238918390201414581223052265412616536192647181992334622219829897175827394710572282378590824848088997433216664729217470473766608831084955699514756678646943756455591951495806666904272385635715949938775328423400078982631552862419140231044005483982556510985633997321876083298101057856513822537172175905147828094558354933222345870483530663162703922542050379536096819412892836791161805251195138079733136071718903735345418961086212262405923926450643187585551561304640571150059100452542267687809916503807699606287124162738386711693487171756483921491350113471642490962425650434123676931607222758630768021643597379701910983854471904994586978865973770875285211769969183517060668870313475389126316205312246328657614977044417113652287194298569111887980250012163772285331786048263737488609644079082585061154791552437078588222694482158756571918498083678387077112623364950159782005798375820915880939359778738534156925218332003474929226407637169803106720884578771579247646528311931764075172516846049772162465218203931763659506386154666928463268498570229473501308685522631308765757779203434470366800487930621520855037866846753429247429558531207495509524302840443785740878970012787782138442345230698993651597808527907947502485240196514933565428414596558531113860657545459545814004684095960388598074872084025339785486228917219768861196620222451236589206836934344259811873158508028272611635719919462453179743872328880077649441923226833063733193993087428679590295363417973051677210962843016433548403657726757828807335553937541739718777733194292552267213828007451013461893351118316382926011914198458185479317682852745927077168666195534067588157166061557672102315532655526005095343020668325136025968505692575286975974644049673570929253007534439624269466514256841122737503536170655166227049814444177372221724386370092855412920228423842734657778061086798366163929059163101631440657990203516524607393043143685829858986237374850721119073327283803827682461544886068981943574288449395220192213834954934597233472770447703825673510456788418167424272552433461843941375445227656367418030633489474645101621138357733399260061622011352375565007967371892842902921891042874510740774969341327295378661847487909349944065000379276854024155862203983127555574979305304002512701544433927418110357662446986601340014700050841142490033366887794298444209330434979621024362746751961590687418373548904777215003993401081298126440251552759094070568602364433261369154741854580942631263067210992245671267170518860064355462358396656328650395365803455783100124574357848907097533356844616570372876126803192698422653407801546173324681487464978385657201229168090994953294460745474021401825684202985340283735353713777591563626139938088223375771008869511482566585231343171123323300384551200225483642813123170392668138069207409002055855648225223916332960988587782911659813900032417837773047853804405136624776732413808255053303933375833278423126212716907120304526834377054283952552941528949115506597462883180950016347013626217142492569574268544353226766336946019811638227591660268151426880795925888603956992612544142328631726331453785652120739190148500002247675473560033205808762414493481029164630547028346625834297991921542943848400365112978804009911968810457012944593032941575633750193607314843493954949128559694382541992537505879337764045614652857700862680032302578000396754446583927430591366660426924740219559414588169108960802454375918600568118528694037416416739274962933761931575765995168990600800316836625663621836022785791187760728269700164428627718386905697973487965476348630512988071773133929052888891934361348911688217357045216870158062127857853591349972134493491565581808779767446677834966478423554117727963119106121111498703229927158611727156251967851216278412192967017889174353339351019121812358132480905374799893552562926778888543575197919094635345325009284460309827561069668485180935898374689225929340457619702369954454713728043296875434131958431690536726217093351067936260427067376576124813707791580482765387814177936391880318682343438685969319384638652298431305054331694909677623056365931740447261278901278999851766407387371018655565193375365269424091621248183904628551318443199601764388258159133000131588950090497784092297782823493931173084514803106621271393042073629061962192727385112662222417367870058555209069357613393394081070339234919985924213864826770512429217206771641334712122892606743589655791385010869679985531678520644504530312062385767288475051929073875790633636600857903468920146736610177879239621882594978007678618793441870837297467777372682519428384606449869350890735134380125251995360457242785648877456561156160153198121682344358327573836801841405661182516600845980313502281484376539664660283030495732559570070149664058152821178806203116604625428755490613373132257735562911347644077617029457159109804632405900510047716815144187206723852814095072293521099400916698250448872180575233249895359942680110171611073428537457779693059844485941237675771770876581780704939187804368655802293292786893678959024520209614229371343926731636714348976977533842388228289041741295526245872287616034586443304059669222562640158188239460638286357909789096568448358851687513247081600612716623226484528071539859580151198912363367831828300673136526600034963093177242979899265549274397374469957829328035387070977218098677396397883310974637333363736179122010645910155032446321930223844880341375940950233696819535705143036572538235277808497882844687916300471575821529491433600284869222749091275660708537085460170333973767609099274974390972958795915852351902524090371186047131310488118523288254459411735861416270530728458250387706694991104555978945721663428010188416082163165849486538848765488796857672187405074054448899671511364910153178921759781970001385825240765497683525039965479298098584322151020207986675421893742101739826029431744324673088908250244639599091760771783190484381104077275456427282297576865812281969442932678742175827298055447133893834008728814669311118859021284456070125112084577954033149899274678717169864140492150905529845149517470014487461449221768392773383677289189937086317582439873041702948625406692721809831247803087356016554801261758793678169498423242229103750677952885671036854721304238843899147080183733640755161245636228004572443452340976219385433113792792802733277603368573857226028737514002101745561599317697593618565244925295318564927222380922413306105854554825787792465355014911514978613285570056396013244878006787836272284393605407858526737303427897796577363841586567679197425232081543283404995201624055932389684105636305233616368830471455420883694315861394763303944564163834586234292505273799226722638992699280420196764344159763305431813769230354622913008706386071161293742081320998837060876011270903629067346257865850547459533936472214751832491562120273711282217721407780902437458523101759819704750312066376968829833711612771930735378776938838143346364886904496541999508802729672595712892302515777758326811651279624365574408392617021049729821443744634102112876611928204885197543280530627360228393682146973032649804554797333332255992347541964926990795829015953504939942404345582936946459797083040311223867037686482343059629859211837750327112330304257222853176957998340015919331506427389870989139999114510187930053857969639799396475852374826681352870085942259311355246763308979222797031996180151398639550739565302901520979339823833521250031576238106338447490746037685692665928619686378497943956086295489688346895687872479630946137884616248171547846104726774287475460360847927833126745964482329348097961804705521232549791273156042150694325025309130273435841012204618892812226789835829293328355817290761221222833448605369585284056353012054188147838192836945963977622161559305156814444186385396431298608111853966661866093895853214343353866982734453262923332082842483842110204449474540126051182131549346647033674329236874760569149405830151360230369833054061990477435037603686617897301364508926990457370581098119732921066207755549436791087529215889513867316776331410789289102812989310015098524892976491798534590913420444309001547522399770554473219600101052533312494125990096134236702272770866318142392919973683385873910947274786435567366027177833974890885811267375686165926557149851698729878771778897298092762606339222050585036191271773059807422883294800570304668644292379348891001598743156144711765329614322555663650775743735574399986318822774965288974529170496686872992599821561585177954251217061558440570142196900054915409630273305452887936850763839854412010314044847636417940299971880094441587489043607393235082072170728370758718217247876647277031795464711599325245434659628435972526673409041905742776705223777128754435601347649847364500759820298260775909561794308138973859181161894066522220451363955321251581075231026335713698209276063178240632812101967829375099618175320864195985549935913977328629933150272821714223258015104541179631848844206492375555225896429297787923081594788076505110986218273513292367233547925109445255921897353609889040284963779844877242043077016303647242489349365361901955212154865572294913616135525650419495047558843763909004614987526528477588366522430398912866568776924870996109553130232277482480819056725670453199086095576475247370554239340027076203725682813388161552636405415368682752556431696687102867904197866895639212664672312665359403285770375670766998175275405501710625579475186883613268564312332374541427924124587001667523016790364614447817573626770366072504020999868892633698729664237105337451516961971442231420651487509155994587609250499148841420955281563196383827466703151591892853537630569764635308816080678563937541618966105437816519416727494766354828457194214296138242512827040441444036039868821696316528448383644010641385641182946740730295201694224465829973703285270897798088960479457944268223964813841192282777491455746827438906293743078205824389281920731337900486834747875252051210592252163267760761594670938727413391015148364400704214614713299937869652512679400394473226883867781703433882275709303293027996662484317980151465423725921372144349720493889448932751345554534697039357989383978099113854587062143568776998440463492182386383454429671057987538822670240864553861201319547923200288517276055123999750986856821445300862689476529140637160051773223321842925304575624916889032378629078655603842564435295214439110823879944177771531347793282616034232385157966258525248363595111593882066088989041111422950904180908490373861292963615752364952449167906441639666626387189646495051226252289896059875191302874673339546274174040758834454175352144309329849190129237772749321139013855899464921044847674625181291673831605107791041606773731831791786452619524155818570761997412049215005146242415610163811817156364392774380960786736520073124777767643031577665475253410298227008540130935110250430931267792805828650130526382751940542257122850795699356758283899904875757389204985170864741101378373130608925301730278783615545949375126621368758547608796506178860569114754080947227370272446398951271872195965169364168200288975025528469613584994287763043615970835592241305968894659636751901957609381349589700397170188984198469020324780166337951442540129525828584693518065897349113332890844757113408030158898258388521101995581549476166917375689509547687371978757869624364796448017140103433014589322018633562311949872049990590620328614099979512599585961605513301148606884990141877055204099725580050083677426603847749909339618864794453057063840707136823785429465439491338360643124677936448821916500047613501280717204765332354802994820162099640837452182100463522692392205063033954135147034986733582644398937047390543571032899420399145212897683317148999574671872417730733659657746928232576191673884224133561450501704207405292210194857560556115065939591144129018003460592620135275228271494409080123567266734284421121647948419471943576679254135672525836947909014626150240811775998306282993992263107669351467663577686345078682065889789254854057362164246302157935240194470488510797183710638054897976584342161859184725472746505821172258255978042843470112662363269044759286182290678029761685734650150169090003584771413651433901105632246063997896697933411944123812621216659636097056377125992006832529881100209637473726737214632625319593860410663528737958091914794822951578268353315771309795202664485410173958881836689065905539105264695821816035404870795588705334232466948909354561467166325784349998487472864129867846199841676783196511264440279088432940664620578988887189192758618616875750806933333323551339385352993534760861219268802993452815060852713571619127160318785348293215811939617102929551532349366477273473528577207360535006567445600505051062120080005172015748088709446892509716106764684845457531604153912999922888436771163064684308174587191752398749711595289848335683890505427346126043228913355218364692865616909495715609817606375873179240228981127194631814077327408125667960243074730618682058136699623089028380641586565876570540253715264533441293855580183037314192571959094143290268876234004096635107457778942727773723333173432901381354421528846310075321937888512831295031796780604504055860608442449671416427402241045078268746848223939050873360878795471171183441053373656605814252319501256226747718382053071462169050263038176702142728891672843140600062110035486329781570863437531723253094608222030740278822671586121260736663499454799307011590719544632809763541846174376775433473592383029457434298101921444431900183918267227773535868532831905774276507925922338194462770067274177854740465533882269080973460381721468916273960542441539491946065411784261090891005927773592371056645721591656334255012074108724999709521562856309050982060774889184754765361568788194466352010875770360136614492616702527349496924816432440163064015627283787439609931149434257207976928171293444465642982152562072835968705133083746236700442927827738777814506562280557762466476783927699568699733052680400372039104820170397309290620367102078341161035818487267053321153312813505503107478666987196631756346061218077317935950465424773858524961674328511111798016862448160625341835464733511119773511771504316384963807043997224577279973911447128587370896763923296875444860828840045745961370540142694692552749266822558879626921546185113887077837450612125014785233808976772416510111295982180046742590444543844855680546727967048135931498486390718680001937287918261771055411903667449495063439838782081161188842346346847094812091081867096724990627813264046621431483783661427922555120985025971616530537204207634971761789776789069276688643758053068083226128160266867520967947929820854042099467737807521324437947414863584801215345422603532691901420570816628295849748984583180018034110067947760606088434287214605559352166422466095832267784753009203013068151586553093473555986444800111181888149281570141342891940054175346191478791108741039886891785328738001583706163140517161771115937290251342289618470873443801895370216770710993011470923222998286154094662673042526963772466058152531451213346957086874317474194085589784150278233175905450839481811952349385578877034829300476927170730190209117226447075323700162642813222355692958433793167872023136281693624667565319620521187331442015554708309572615455349792666794218339343301949142460576967049104540611023900756610520501706009093617621570649780015665304797001485125771046188096869439516509729105336136575029240782621553040271505657043483239660645030158049838989538102269133753017366477539775907818730956695026862813604088108236523994032119733397404686692452823301825784693244696065508332542738922648999288327214774402646455466591417454483340623219246020853515066205397679207501385632100804830645072368318962751182795227499790595839811845297810692867445769353839984273868361990251411730370867583497640123017581267233670441973975290863275114033309484886689935444918718011033563073548851962435994317381267194723808360297487703297992252653420532675945276750310311287988877040376444561319572772138581441476590377360566732811123320244728498627643162525484398367786149866710691165112621687069082519736585944898652620161910975302434134375740772764036238240178859021828054972768078887620703867084039792521824532811593403725504575300374275693215934835884474204137026044963266290086071452564446587751233965039675896746748624553677749508880472686707424404550314480402903658835350115496494240706683660817904857340185524178426003143796982070798004876154334026759063679532395423966625051959823811621160779961775026525293846385072347660361431602072223917480289004776803833102416731454104743251899517162829269471095448298430774520542744549458269520568885050012107705435265276030558924685739970950388405223884331204316262654250800436210445842818076362783738379000190196179475033561248227974226384275920197996244108870871607563949872292889735796652295217017013768547566836408418239403067957480035445367355561236671594048085781030896163791396938374808329342471436954016170836896746987783923506028343715939098453767541343947610640364184451878115647720634394606178776067336878960616592749357316337504383434645335598408663487716095369588647702805795974656427269761941810976278580131183253251154967124672368198027206079756550849656815584504462654684850064739763755786962385631965409571660390951872705319217807652662232687335973133316680669771502469417137268861996976517721305382522630307188910942735076246222469845891156842921705366997816687419901745720748584576860260462813301093180070921806148963719783160414137178509515397946140092354157070398981910115135637372555258065254934315568967237058493345354044822242694875869175952443917125405389453598939665564403818028931735737127218002183680562672613897522506732179599493087352824680312791029490408609844988723848623442218267576986861715094043130694758688041239730892117334339941619577176649425266208415926101169404565655294867222652947063209094434812582750466878106930006995071173775539475377187461320330417296796855712122205581171892098385129894616641391072288749996912577324156704964995081691231308789024822015786369068584394868272226149110536266008184975122376803164368067545109072250819035463629186638771017063612958738169644238992888678598726070368231213333623326351198439756181193320182395474632130934924279588251263798878150540633164267574125135640859748231195326963417422602596616158047967011822173726580190075521920210299678539630618720288713198042591132085401405906425639812037428560204130096028018524041382858524959366566342703201101206809144350074088215648957946192157035958433209311868030615325361048683319277020020823424212370903693665827518697343869309858337528516937109638084324781701884757001990761057530417858866439292752162252973795942520497932418935504217938206870833931278033566615484279817858595959710799178713071136586767449084472170021168002645529156659916567601510112863072945221606744832107366671728737158941349612690956724566686374283788676191645823644964559444328606520144331478471873644631607698390062899278336846685500260701459402454138003989396961682557512564927113015893726993337930288042219062482867758384727706316441241471070060329726030465934073199421943669712108410528956132059486946709565145971776838905789908878326583814324943872491791433212017829719943823630755261792882451674524028395251224372462965103338924127833965476073239400677830302231714367833023988182871542744264435868462575219614683527361048025393352316294583546362257736367914909201392084507701331494708710712959789016620941419950732693945276396415498571039279143944832174851421973578575665955432249829131906923909832757908794332012529792572032597004183842680367770055925170443127147555531170726495652604836810332823762045262653339795534322714779968973795292919509381894478162404096466693606990133027881081476253222497005200100476074966540324874173374813548175744071162567175238380553090056703890725052626015353632260111675184486657043764272276021390240232023973807915898818232642982888659422681066494628987230225126347171123549037529488538004335787898196857061927101653766024394661030569829714709347950101881012151408577924083451533794353752957560341904506248846387592058379353297768940026785667378925241240179806651307405359268151626434228535301532537045964964381170095219123518471223646556039112481606414394160172214258277352461961381489428689089125898538402359031656590159784931399425940628913834706874355774522017829880884010257772646994051250487093361802711375875218038700922129063840817515399301742592281745857061321697104955879982792477072309906353373734194461488597980621263983738520435245018159973148846134128888280533676711700031442609421874335516970236287892151834567201717147302564321927530854263093282983755066722885742680131911779005851117405684013959508751214454185729596788510097126779043183033690274114361353371157297879774785053835514612969715119345363567555173084289413017404467582793653957225011106165525124254570955061134346804978745989714341368793007738930985803680676554708232187814689449473619448346462369788251244956270359061534944317259044458928918428433174501431131535374722619950259152281817857062033246364040316876776072432261138557982373264227250331941852871087658521237599511074433600105309620183313914277079628937114085676030829090507763618148870488944882010977795792950755321848213022426052317386400694594042896348911100429227232741563196637122990596427167476151831065661348428302269778643110762181635448080565628398882845037097508943572136425836364860650124834044844459631804977500585377594064902598689023402520094554522210902605864256495935426208328175364839032666575816135833748401875572484401867650924457256507401340197559019671132983489861341934860951920739040470519231782247176602251050186775830438930423948660588934608593762062376411124918020887654987850541064699411932607009409862576883820296954088280947070913063651037686509021246576912334655500393510534544264565249946605631837772679558493814949587643825198842637561574436290608304417715440369323021744272722155747608376307361776037827666829765670326229020430599900375879809680702836771539270554851520164489968680625376992074180840026772322348176448282618275374598111798903203784567784833217254314091748987762197073136290549750306601785084007462244798832155572807032799508660058634229944802567743099665395451201698975319272574607300043440710477187148484580631546988972644936232734526138503721287876128448590114677330846296138310962621040000773247078570636836681716911101577250833690080020467384600926668144932385893672200442018276764653114651354420609486336279855133509619116547000823912045282002757685191217801141442268761249150667829485117458767618439685208631818176204192521144945141132141367151943995829920097965183567418941199482819065186301736577835965711376488767980358193605078844860269455390343480954842220580114898036338734238530280523881530540624350447635593998205943186796428125426848366418513933082803265366161732547167223126418664387446645942794485893562651146833976369171712217959398414169460485778521607052103863335291754064860839467271554075743509436703864046815664652625585001793758396149248758541739999825573470403767194029587946324810935564407858377010329760688990921395980434915666983451442487859725683158101259777077900238473851733292419578693548302276943140214805362762612453747472928464716066020274778374946164309258943361284568755506621859087491006487849318783464036842477227607387823720049287706972335183122044018965209302070837053415405137226451994694977356355843138416201065613637694412057222328916045934852347646847946478098833697507927604799266709407174499538548138733450015695001422172746920724696212531505297277363854631909356925227531748444651106347711258172512198917004263276280542275262329781507766403793978049048039248717167613068677429422914041348580385031017696591156881010320521736103957344410000454013610657794187379515989955585536898131432563715866895039242052970951186565958159781617009083260056802595624889598917125065017179308930849713384146160978415388500779234805428745671173874083475372156248936770716829603980410594630574648094964435496581099559208919178644049565720422966442586327718936043787881879015020592368515410144784806817127145531475560529455470820218900712395392813701049509941959169196458193235291407504276369322205271140651514596411441643817774488778270106147552415678950931842902983157488400782481680577226527294376583753288295382148712631436861589562156220758268938741782957166615297325171169066540534345535422075280025487656427597753204438142278458752250346826970424224266834846834954835801223070565945872992984048539961048610931009752921910678381488646774936394080946904966016908369770196206308347753913989312444412102435469556289192860262279162444406326654566170803656609199133189915892449267039286210578879834380393938686568875689361772306081700694679411468433969505038971194574432964480484528666323576876031649366079172150186224000204252127344909181752562082799622516377505610228742364531911712498232754331052106087179329113758738410305537326439486412613272917856831697741651178173142640750034806684021688106106457727468267610426086910387011083116850561351883161776505893594407599441167153665875604321239111134602974200332470160007433793029471933822035577303483754400184588587741491637343901192797776366367000913859964223212750095703542674665048556133602134240540882297886557219837871481472165810852143864865390771364286490164578863350568395371103694437233657768787064481503602687269886010336185172963698064276019535876989885667644970415382594618906476962281435890361661161570425988077982239514645658210054963985262846954743345760194074504174466313969956331477414484908047136025328559945738907532732916633422133481270470098067891203192885332391391670057826200485732451251869410455807320251310776840740808553022691247667733509940922763117034151945974766124716531887956149356168847881697611084035354338369373277776516885148705939864468445744499987385338187392975052366651272983635745554719249325941848967597300061859722114745639534023030787505083896717770232705519351538690961930233508278839143624184542107127605504689593383507861966867027512789595551241001931651976042384315148703791769694160949456540976077981506715806449550016479879654733454091719379876753418108650638158212145125066473231803642478046429865263002823072044879489697983461569862837524548221344025561290060517981882380077680481343351700584680694467469347120755247348063694247116812600083561240402069847785273764330325071592812998919119705368011508043423005451412943977961058017855989602376117988934434589420532859994682325937284698204891208329404572294043822108164619036891009808496601556956559482055886671194953276350744138396928349444119698129838684011299063520442568950071672883448404217953408130229137401280294939057091076260009535761319552648168443178870507476893545549590049908933508127905942020280498152829177015888060399872206674784873586682361366337409347864899778450632894322742611826984511004794223838696538687397580217648832858779572195078631520689674068070439044089686907267107227934647748243597091618164425073700947549916149026270046557013997419966015995168843409491273168900054847861349125588118026551744822027864380620405749916615243122093732280954690415965596759768551305829304712031933816116940792464127812916985199379417703775264983714417102728702564069264479515584454993342585997374399781340314673462855563314926305783948248574363463921806881645578425253049729594097509033958281248792744963790281868841220095783557429384864221957193144495109863109014404402899309486425874555236526966911267007932440877581816588302305783506005393924662614245635279258308239495925086751258894527142916097764844758530826851327851903586900952302825414676612887800017315397343335171569174162713998397215723573039624936849345324740335928715565211632201861364984347668547900937706414877253074639890876263850734177975863763906138489554885473299898232411610335246943231144692428885822981312721512240325357246087398703419993301367557004428299579874608353843573210583648662650729232531360876558433553535849407626423979923741285644761131993767357423029977816629657894168367061049434924904298373715352238465560818508294713397143277920301552896677959689620577610960465932432902176927885450497141050708043904758871649970541182556650188980201476879587309510172966051661160922379533294008164150760382207318107309495957327866388711345340619327586144312752767433209081784106277943012715200434919965843681695761511429118061381622138358813449614559484966243617022930819078415309301972448681110723046772158098619629931649583418301738127417780960074966845385945474242066079033541836980559508717564848020428913830834997578132118318016824059743141576052127278560730744271283038177049210755400990908924162658966705616141688146308412288279389428568877902501832107202757336939532476843899686388768452210627746443419848180868356614318315221012915046014221454414157082509278460984519562665996343070269987372922278297335301197620430721860908224810616703334692240556823027832873289945571758230416199281387075937181048384893913007258256599771892553675809036337431254354501905717707987181514355443192313809684394692515434424968798891898679555015928194408635874771876171815991850240649444760910370178937395708013307025056785929653169194980487306437082368729924598057106885368313675885767102502801178501862603783950437110293672781221976202066484321301183847662017136178390100568800919236814507031121113482126083562743495145099754794080379391894809936353629400311927068200017558105511182495755153553749602214570981721104344563838990528968365693299731984990295663462662069634481835472217062193636238269204214425322986921717861965151921032500903643564380203316951021102635660478453697667586828136425526902777823254646040389956407451107600212421651690714724320258795146497548556192476658508968765085520376018640003570719685208514137055907654458950692175454260107294042066704692342694032357238368518182283801245819820899416882235048159778381210228333333630239106089382088839287095640678684323996161235596633273250715226691723887986689229990116431254443170704757475417360194595604172794913845633628447468962787233867294599718274151728203436035545376749393952162452113215527236302928271485284040779610625304559733702597334163189951331656202290385449204028449559839796361878031164032453094418740514665999424860503432100636380958069076349817289202248910728823275620954386191588311497541615974402802117084751582797168083978151173858444397978620948018875126948119007341667895575056136885028762331104502178072045284866954946821327883755459494518075182539029592642596008360778622631916743404433577490065526713345867208460960257176685479028715399390291467898288947092361768524825112535819568176402696675014409756962343212721441754596391990256213281473429524807046955791929027886228793509564769538489826838616637469693079214331566423601517082306665655299556997991690023491256569359780789686562865523426551913884047313890223027807323705470443061543306010334449148533550550113429731028354263017474734774923274294110080896311803858155258235989111262979704084284082482320520370972692059067614746173013657784294133494760967698919018325968848422726189065505531344505342848954090190882998527808716990159422191111116960646470992308984378684147500481973388593142864030898339458879074158587810152519698768427551527433239394476933685154784608963873054715091684628620298366014165423445416040786919695313009307317050202066148218820763294014832686448715331632503159093192368094243124460853798268797176488753007868314728651486440582034782391797169116060285891417721731439427712606449842372297767433766283179587933608361197048393454355032754881302947797087576302124102387880882960046079398737224874211151476326575567372172672735118284560984780301048849836083203733109399892144000666933332565402093443676521704905709681898206972581852914832559812108944747668109237834539232174636814759147945202404507420900317257330820823254489429869277054519567145019176916320550076870073498386298903186703943228522489203329551363358391888667515232467027133600975331011480755688289253324435530459081647940706890486731824059591732555184393536756487697685587197416598442819842065772533444158896791642824085473581715617634893483434509059590476753254353207289868833443192726089370039917993549507074540063791216205210788973099706682530804753208681797781293984752991012973722062169135943236191718120603465545601909064787229864249339866224242419415898908781266733654809756047464156400103954895757431533781205674982418444897463735379959906915295119193623701085350206460085633453773059299056976889421890858580695852961575745342273319777664090793836905206782024527867866204358437600908280853524878438210343743043928044840552402133889097763798462378863118908161567788930822018864629293751301849822304707929140685065123584727968644528996962500030971015905364084034094780579081350389103699135147263496187455166457736546880748352098618960151324171375800613066101752702862229441798024027705181752317941550667549311850222032049482185586310803879815056554277792338345605332059623095788568691992230681083312907487797404187826307520232445422224106455414064204641935859999545797832599902779110424508014792005582944332179691137432143201424250870391989330339597649727340318204817698955753056922902700670766620586852896996490526156166520436832807032495330849134395771811929722110859448864005204582373286364917052288302287388525643715977010781351444817119507709681502288113988387508603304818521079377024356695578488782740991873916156862600287938498348884803153820589549910082129713015646833140212306093749956995788916418543537516220669381351313605341062123509821677637754491468943664622333205929668418261592177719272231411307343676871701227035896284437438004535656093758622791348915537585186032832351163125952534383820894006337853594231341425549723952628235656585794175943324341644123831832588804642239691900942790557861009461635160932891733915810442009863840852292330622165631876803544100363047123960225970524389598901402218411709872409387254825042560649193062718535811484562353794142781012021555073645038407960147686100012742751836934649293867688977715533639305717057937215525554050551440674898285719919634002974807387225540284027640060640846137893135669891031800400771336818464645581412328599130552895221064242478323434727940154521731044214426928335567167246406552530039344093300007117819193387407802310528362873958360821839882747972503135505341194846142964265766915339544939250499942333886402089763809495862851627518188722144483797685133793089493398219402137996949793853047301792283746355369762601647430303332380458676977353778938158485309352645539353742088455472495132795572436601650070229947027520950806044292979045466252986788691357463946892619549399420636380301672632906111072082848931038699048618602831181960671500493705379486871331924448980275409127864489078769006603905036873559158698494317461280464901841065975673973556811185184837324065319123473749045257400536314756430529113451303404138097732625507609681528045081600570151954575916828735318275144299016590133786820313932108220980816430050295229919748044742595994935400878152863712153291907096228386956592456751968369023650180780105031158095877404275002252289434165581086117743092754361283611646579316057498066782178657642573551242042577372573801379955021566386348897154941533710545398955644230861097806326718441642576749404393210891311632997816794508734293686093386642402187115509032353706273752216248853289937782759638876918184557115705911642462773000280731617698509023396024214913514745929637863085187107685786434930945565501186663783145465724714235139902961883361846410100496067830881488964411658562706493209310292361903078966726113755585376008321368982691608979398904166079330154545672176965802008943483905883398529196616915860687771944750410455920627542460788730588597993795160355321673214801383251548409091238472649854957251153778942982843694832153653864671557400988396633552044585649527642859962266483275727434536239512087991563324954838653080960730864232033004831879530492250603461683140305465946601607122461870325640567383542203188743411978179762311838163031000241603204322735420654855535493732230927195424002352247659400904816718575463272824401607326784218089818902730961513255826527823825366709286259562229319009853529779784382880474541817606699267651203857262500517775744130710967119514528416966987301557731692710803161584482720453728180786326432387589779973879786553193094010603681276667216160032013121524040166480856355637226045329652835302187947570991378732609271769951344235402073443879167143994282963773835203667022962993713465773982538143972985331119467357055295367248278862690602717686129088570010737369367904881078019214954688206319255158252180318728590714505755178944412197806668133016655000611032052039275305423336386629134944926556824128992730139321134817621731047316238546304723160659044510710408529651056643836671514658279579812654109161041676116110924962671911218093109480807313757511060941357022308148970140203783455617994958872074721934307174195608047310806387695914793336400702684957185938566384437424480624677723534881871489108419952792504220564235961615701759994008047096839967167890373950115409370779788071525125275104286322072859812343491255459851674763719995346963706429448209082537201324890843930612109188468437386860718967551206832981225860016836651087380361178357492586852117081468206959820108801273246091181095456390100742114623384075989524224299973796072905434590546168328317321087044108580038771078086236511090595774647488424086374528404059674148175005954755782237698775644476273607005541465649403980931678304265997433114501479334421068757223338064848108738058426413320035107931935568232227629839061416080181745335480896499654815247731710312108077467888992577560789478015481529072776507295946310248752784388314979422565159523045453728789191752832441210791813111111288916784952807294418841704552055353051979507380899079002973920755536593354012197774868357996440000313391630998453794100070518879388147191009389823006067510100223759723533721560730047823022642187918080596857805834501336696049742050694608715950786045284327472350579051627823763226530623060550541117033270319368782609194268478091052784397677045062119783690986285160082630952695869601903348789849776011176068932478132667597537056751079760288991883832760404998227987735950989843256126169635999373353291593799442249586738212949359948040556148098616245113664289008231387921090063914474567079899005880260817765874895878412212328384962298559918184403331654162391105191376299496385829282830567755113465076866976545850259660426652647475346874490942698736862477324086366142363344862622535645308448450500114569682554521107235222994996109361242574746420158222018411927928825241927316212891261816190267638756062392272743150613479415997977403379173690917851876841686161886448779259429039973472851132189205720295428604526759637729442768195218820052734877138949330166690845603622011477866226157079491919009334329984532276545452139120053768596953637169599217699328919714371779795829855281975333183350126258688226334013679902389104810948863399902560529276307470774649268125903339113899772803497931472351712309602221916684998966215938938160626124863918583936114891893966038620942918690219849791103665521284868039045711247830615901605630230587862049984795064874913032774059187236162161855168933012211864370599573222053817554937626278091722758749976022803174364423346657580074316015359614098501821904138595116577839594024493426845475797292376021961651023773786505120610546932687950409469498492193982108031400134493229825917435622174378890850086259151399231708007409915910893344328553039075837154762538440482398103637514870097272076420909366960358550758625138046217881567388709720014231525100031693249476323874887342040682773255975317123721393777292842067616874117550078349839832830609750047542566897819869124269821628369333643712796795447694356575108024942426731417841607357933239578906433190474287394448803700266911814157924975217175493197636432745698630379531156233538339660155806920551831017503570687035815973525451929027533270848891739593159377430331676602624509340852280317979552727112485027608081503945555513076316104082894294017899208101814362861608808452983054313733559117474620924691731929297990664169132584348880348933038151574591603939709769339137728126586368230316463113209334635612218394861977647011124939129177662276550806789334334133512036647524334096447275215213794602191564562706517616905489664440859937277425728605667356393744044054167676412430498056050942533290685264488507535142983551838452859192649054851919374626594344311784752238760351550830005045035366865318778240901428833960235131196344253748165260866984012727171912231269796957170431063753753147559965227377284038009023026511567142864688171989378487605834290045450874818739606346866597753147823303731405686389634412621667424902497778836828090413241085688738877635222630868214421245445593814694308978022035049421685807456313647209607720472745802737218534322636054540494518219279645402671470265119400696873701968029237783219851486500820847860172721897131221813699712715321968264855170072913264314931052379055845618394631831633234298086238009757563908046591514347612445087466274942647438798881046882136844834060317381832310185074252371600510884127148202117988522595982597679200476416151114076140722711092288586316392558859345378671363687442413117684038833203240995472166850514931059742704186872013082488248126133667096640702979952258431203822676931195069693830915490573976324015843927413347608914706799061372916417923688333562471605771139536193859822676381893462421205035264855922074161375399645993645888040756842586610312776168691796748490942073701067963703734668130850560365447309798659877797813928929862710983753520918423564496590408112137261231838650971949177447086463449351579869084509270282149868098786522694312997319024769351364650066745491569314312273711131578140644927761715690966354400556371187782848583645507513278686382863809431216104634434879088008054050754124048727100311883866242734837545122144392735553282006513942571973901558876163021852563442235380375371781968624045422575616932548631554802452480127502558209760003625906822331033513127378322660956278534900008257255541649484732441985228281366416229639135689062613617163132866846545407223543611455067223499887440328739445070341977204107432398488854890896836769667722903642112878516203056420121198709718670948202333895730789935709824339644394083357196138060264297623077048967291896815128682276136899289009431935202876245775032321464331351795426904223812960821088071840070222547965762489431802887976800183936398540114683717926766297957413273690962104340525674947429821337909832413095432947134809358195970540828200328936953838440890206362488011662707258680304651699606814188480188028618869012399226743045712371894593524120187543000529425990820880632910641851626011542713808259600379057669240167693979216803640551273404118821703983665618650225224755012843890931020890003294440446692295648264132517444499995888844497195777688773411081243904479706774127304013743238988585022165585081584574554807248947346307421283587484321319226471303950310976917816416186960842184823822232323043915668189068025415386048346045619918823459416462612221536247966140566436144862766180695041885852225717738037651049367254845958079366124642051267550986134410194792054298001032527682668703164964217701278375893283220336677903615582630794085650341100571690706542769785698176122045766669797362940661100231007808860186662099539291228535245155363375498312612520120773426014106309120022616481892737814184984321540705611664686236327559156058550365379022342555395605184071097204481357836664258439796813389839972262476684379236570614367716234322587034436683893567946301048972481457847682493101911643563805179117399194424369289337225978379879215915326660122048156323834860972277756016721296848091677210113859754209164860989279163558142770880469048198633096571679355084832492384621625860371052437326543451506057764600752628697809118735987621316144859353600548339775649380334160761959106574198576181183672411871735714850096054920877228350113653201995363648978996644505561612182713983577432499439917839004288906051497688583342224617761027869161712219480308984042341811143764562287693596745903846908174031050143695610590607951147982426229470676246078204809021983511508340768409394809568198682068934793236512174281074965062599609178429084408346484463935121317899797374410777924972522204170903207556976954478091460518005607849767013480382530010079578507347422473241548463788485847243328308069540738202431205211440938442884714278632886377363857676447341904056893305310060926487097821528399300882986816690328075785398644834089955774408092983421694265898613156849438621900972940877045148201136005949627149327310019640145895088087052460266794027050686827884377504125747175401912190069514923660586399960319754158449550567189567251229053762396503251667464856826160866460157950162262182466572160868728788647927497718074592207777991978509153965937249321906759289479704914377797649474492884184839302799512495836499958048750159225474827053070489727707940289808026114038086982790519383628425918370132604965580991851197717147059957926494814998098469382432420452039704345324127743394929084266362477708400194624205656858536302293687354297481849510191328260604389374620410417283687754651982267904610858056548004717853618573233240940648455473134073220535835694380516394764382786989682481654488776904474684876339436777642253231010432292338370850534382597669764519291611708599020935224069103059638701836617502875380024158961125903545621225175493643968748300011593155879134498987676840326563472999956869400918180757476629897725465055448648329873063113834405620831438918600304774606832777078937573959680143954663727287198214541643836696977127659946589863166042536185638789428392748384441244743004555718962309908558402945255036249566209001203561971758797209466120442082513873475052693096495743311592576094209437441506099357152362691625983088195296026004474368198720059790918797232920899632374625981260497376724487549912218675147584982255105841304027771154637550957825848464098508442947027020829075767897397568727416933119660532153473635136973400552204366451808293245345808534277327759307376647975250877239388359955908375177776607016316942940794658721049955026577234185556903518073905269376152900207414209319525101665752821105307051793653303985095239163536720462763747892663538035639724870730325342208367918210796215975756197082867196147734718793385866572652867402644737545071562486648213504373733452045478445840431351465738384203853155736491252714285409974225877270103822060759723647991277222353579299381753113911844450273757624635406598346187050430262963757301944709200368653975783240252917311232542714963539521761272391178954708668235920900232909418230663183993569032744982752535420755151807678785942865196177795539689853398148451404648774391304548592422209432099119898172016522913182180009983538221704857402118470844506663673597577892217935950118223020768846532699390832206780000418762742475353156341224466160577162291039900708452577410404935870089000579032284145768183924165971063469162825820823119118811501694200195588027273835786021631764201572665413171254733233433896861325491921406668675007596010365664629807984353630525345682478776804238657500142608865141259283843213001489984336816506493398892415297398866788250635378522993661267266299481072927647382977332392387780875191878028074737394893842848131151154636871973045139601560868109111384894752549527644168708136766219786660676205298110668497183535208611343608514676207798547727360754988866197690590406641413289528737501059546748631743213881532978967727584121673773733088180923580366629748408998796799459576047944183609235349450788361021746438147559379035361769967870020592466783723056447782717347404565126891690527218772173820338829635218821069374342303877775354077870440070643177799657995224778087188989063713052315981120419181116024091168396908228646753318957885092882037773861024405737461291087416121092642650142429884849627465227060069770639509421697100388367522076997601423374116413422675223388172478078899871934978844301992324580811486674371332599481695446127384485143854648583122949218044100294574604834893696054347709480059752432535606003801920914986488863158431449274017506004333813998653762916718064418481200196207258020248763431945914088276416131106702721942139153759572783328552123131217438418768730602262649502612315269169889966777877782569760035192813572741961456084268008472867467373301024203259242746930566910850788239340529822341996863357776498616757580918360486308930040572991433100124579047336978021742972483719330801184541465703902597740211889784449299009309579085379238071173923434492741484235769622422773309440585210515200477334868595761941268666937160797201413610363756407424946583977308993751088022018959012023344709277693366476538349822960007755395335591959494125711069778479554464484968304302012914338117088635038496023157184722443136644494648679363877677980631671508304085142143034985657036176023470726050603366489238824782805518907921085186039645416975586944991380443101611727164183194833846430971570035100732022523297411838385582647316789904704470207843488720069007800639501610698070054159292782628615215838932863226439354098575939651181692129441678336610547349209092146662571833191081639530751263840596286753608794106204870776943913054109576386719093109910914752968106850295010711337658565244689328036734312502694076680511035727297713372574896702836289386022548957008375213690488628759337138743834983429403745923930201209631030802059372343483602377860649841304644045551088954179190882729545018652684310981228130928766469598014991730818029759013221494702155178346110576760683928930929247366373878328437246126554060138659605438034040440310708256696512883391188476318709297483319445292307859958878012475724253605322000198714081229647516625103065296607774734815071009240347989538001188459889416539982483701890245128303536757608264837004152921470095632563809170556921210126665642762707119138397450429368481468240677416195228222628422721794389259142804190782595525813643947906370375382191244595127998257047917033110929594103677361109619761711903516631811707844080807530599343692813136150757981680315542869212140961398276455624591248632470840191338974916655089942252944988229789508079269085467268122670585965622215401425970516762911196237325896616098065097816201105391147125295402503004433784643361914851739931494078464069138539547363148469305182448894116589112433857782677996909062876923266827080949543875200970843337808720572826034487536683547011303480926821227645969870003271292396756923414093793168416492463513236952630170433546558883035637340907076916330520410835852058056638541601829962993931793551015318651950880760025962262142684052310800271368414047480509245308956368876894441503578001690765340961528950563282606937445145482995069923471839130484393061066281431951832921377109835542062489127925365765224784162198921038459705271927221311827110809509920534172183885114421834105713878257234486535761994413079948809261868220416433742715632874205862447015741321910414819741645773285799341884424043178639324767483104930454394294069555097237980335381597873514343338873843307436880786114707955264224875282075731740536582651947049085242845383003146290373201387496682179962888788718442340514200223670228129116329875657517646321468209027619636641408189527427410586939647891057640134214804077692008510161924729222119434298073129273492586504782225249558888828759422706420103229345314317244373737296284446475251183159321386999780656971180303230831573839977244223862815419320767343984882073016510978656987480141345666784820451892098290014519616001157135607613650598226656812429577176839688800513565538260248314530838719363902407455459243332188449118438154940755223189033520547942187452309504152941975819829577781998395885403948112109399281423469378508697100505892123167188167479984904273396125976118430644126585700518877758638872814309272158849881066523067895143122684309244206886176728854958623638726122164582110059568930791955200252040452692880669002677014815562159711373231480454116953841429455667388446973105796699626980535256503583556686148428815871532993574585783008901895221700305055954331791202726901161774734506647960507155070492608266666247690039212030900906009539301326689635128072951533424112896621313398622787511557795616747912640786325959866739706773972266466717588592710158779773578408916796207073981431013546824342778753470615388753575314163767369544893073461304770893269585480776167572947686551492612622972301198284255791159471707790368076262921545251963412696142766420335167464822189645814549669020449698547109163639208839985028239151198911811162218939027355997900131140109638475331419510449415916905879448728206623081605104012174715139195147612001271177357823815955664477287482637695900493216678336940361086458940934109071815064606107734286746020625049207728177196183877572937791323230173062261715450674243915674903897277420630430770415758661461291427824746042521977867666399157828417364628086474392753647523626033943964533742159356621679769635575101161160675723837150794656264148449572628244162685344063715364023226438122527002598539749044453212518042534833139029230196158958711888899850687550751560699244026561203390682354044274656596748789166047982916645214449365064537754703574515148527573783515917621344185001012030078551435426799950842858060762404146716862386850048419156942853914748368715306572597905216512842677027719878615688459014048478262553034671791301486191275096837352578952047706305926779033859421060828386127365876739488364241011717002912179427983320444460286561035783662892031095847106076916889447996147226977510306385689992317891282151669646865475021947567799376220309639537602185873647098280504163810682098966029140977945702178785647671581178414291232300107060834801401417879905474501019269844289029767520083779913633824016840335898661970342968603333283095297934251976261054477247756997557737983533094714310684262282355103253802125091224793750516241138459880610732501113808157784200874684296711231354920183841850932230074603786728245416966614508611240672015606197574296528313897056116643728750454711896627732424379580289969895838668977706574701405105288473844343720182644131178323235280610723355409488723922088879015343134557045244728773193871779193035778842363984107727838891721637067706141583152665096431259256201881273422299005254292352370950118059994440961501790694409561000197834181734242632950013676194659619800286211186176060614944121266510184569162980077717342308073894499604922082750835080051003298104771651101105758892575165516743143846759441233742046601331624964010629604027078075618283846724201341783842842179724857295962970455271293947950297660198575142788059438059440040511852776846417901153896480190499474300167724310730414349760958830539633894194386620501973091396527589585549301149404385560270324188230591679955875934949628290921075035752414933659191708885460626060042705539479618482511649054227927365435176997556524058374999742295108407223455369749444035811522986673778749041484281755048863367246595795410765452516459090098999525538315422690425854193605267874126185040861722437588501627726090785068991667053903493471775922482349804279107672910930889339851660336237746137800855414520529407630954416807353994437344892308404785355836187218663492250119947288192903076796671048177484724256532275827568942779041034017556828755048486426101369676372554424352320189953221761082433894700644067733353796443271726372754019054453240372533728954062289903636394138706035139992668200771312852524874766798619071951529494066826277887179255014741459535070581496170588988743240958235618236846737815810213111270032183091992438942027883451068966695325164715193250183144595046236966973428376365770109750797568614734844779530312459159309653263871147601355605773606776162943481608007783271085273541376344611566572362101734778971981897124045744453587821752287168106057443199339177853243303246419761399422419662135791497632668304422655143656726251802654531921221682220140396954638495747761266354259461156518031248829153375786668034735417708417967212722633399612673695132447529459191995771790119782484277099100660497310145120789678529339239488791008915040873217771247883049793415758062851870701919506462471944284655969880546339287937616028941352644743819873161367946073004058878124066359200620197448757482500644301600608014378458287988106445760258430115780946495653626489444773230580136888523300969863493984190071943588489088887154813656461854392769830783800299100991712043338114172598426076213410822449729669095152641400003686770721856578921301131666746891951151182888108942377332983664907680852859571797628717539877334444612107167194570275642835480947557871680882109584325364491969118509263150803193540162584664707605690148860203087822520179805732413649154243193714191564124777894515495237080141976469871762340728848901757373916921851434876913011692807437975903890329149279171194139002060325170417170516321366885910748625553455257018348721442893866434909325904640866327910132491459445361584836409749136462418412502402471170777372621495469679641006748419713018133460687036275077817636749173332539887922674038013942567536229173019776726023353922417764588101748713268276640467412767722681101716529731979802497911648437688378954253953337013855383131566709239279023351406833820719189316997943060466575528009844254125934344146737012863183173351380505578823144006741069330974115312602200698123427034972722145417578354149104179679658159389449297881900607905889317790188280145061663083239880425518023567750145653860889504661992639500696942625046889390902223056913959078962343590680676508272777104447054030860424506312025679879546822037614356036618857400384265482869732016795088046613994803881337603092198419392072874772882105820343204541251415802610484692452970678867569898143684829310431217138243801314566985281107813684345285214256159111344152139121410826776887208351645666133133791925513652374409602418155969873892912502226581287652929158657973922736590256621422208832787098351088540005305091432021730044932880359700326855624945936864595244866758079177872713899084047931219592255795865044785037214322065263370897204617813234289952661275526910031805092093188496784367332172172310749927876142879523710573873057587479758967361704895549434113838751960135719905745437475976749069183787632155768729338449059250946347836833564465788589905087447912331050499064836544951902136357552672665374539427184648994800376970754152219406343432790476533112253514958957763896927778132768037891213541871681898694040931899567295218926775709709926400904379221009106429375688879283014415920687222791383772973603036161824040457892680740116567273165638045867090689729149196722936479874893195363006542146630982973944713087001921617289039486050420894888954229084024470139783985330396336334123065463482236157083665576634760724436618771809301820483745657862163130751380603919430227630752790857258700917154638728435103381397542379318546512136490214671583093514496415955917108400617920008850267380971692337742799861304362027793683402555593993392048536608759445547908142069759993636870574146206431988558947915548212522982902522060531872367905684225028758865610003339334900858724298199518333257125186472626511515382756088712610300321588256670788954495438362208680371968308249963670146550910206486551325979089739069218400408219309014291684479503711641182290985244184080066590826000337201315012647250670491491441791497379937979584127451565575513352503300405355060317805042433977979385738975104044519513983661606968792882564437720054087724689915390512226179219309454544408304913105752009241326772339742434161403817483892435644233407753731163696575041599815262038087710043394741622429193650169245222465592826883471622423186906078518792387042926005433806516796726452224753324402542058007820217804235933368264260452500327817940987952608991450503275537634739065943886987157078809025085194256688912667100640606110496114292625525422979829980403113177468595974386906962953642566615870139613059713831427621030320931934004242499947239270835872751490724358994154936900903497274778100474966620103919085584325658111166534614897344801371169282349487869056151884793101170467506578264929417815784531536799013798808723920528966431272258005522592345122843814499369291461832802503113057266276538452045649963282098276739659043527800087850565798590702924297748742418355364432785140491607278118279796250660295605931457211269573715499708938608722368773698834874501160705236609506738677606258826771601177777069608358891598684805145595696402708200891867621836462810791960064421640008091126275768674971462710754156767284548665240121354482820001482190272799688553298577983446254976928227913526124878762401608716821669461343625466686057108750159810728393591708729170696852726433071194978372741699155518401205603274901647849059127243550925765467259104499033830281146120694389639171739200077889506888742559282647179292625361905591555905761081431244721542852217552288521566368718310160047458560338505611646680307941981860402467057008083161336418860204899162374272767060952453693048968465709576220180161680933385257643269896289697385417050764985434569396517049247090035081401433881126622788494519575051713365991233335857265386565034090700146999622008497304020714959918269936810920951671750868705990186554745593290605236098971338370638336629093835781767230692648606620982313266911962589580565297957382377118728350558345970158010375314907433203914771074208936567353942810089051280881487101766996613220685220994585403981566456553480446730376194795094709374899186578108457049656575390339729548874093130366317513154713291442352922857700028452540664992733876251502487038049278077395886768697636113692403914353261028238192976084277890199825310065261347059704852301572569975335660645040961775745503617345305586745616089339475143366716892803617997200317694839540457676983874794498694966189931335668513054684173498429635724214252473990421307223080656927964707687088745025854053501630936036081611192835114651591616002520862258748628069587736051444283024331432616294497264913242825447033178421674006776859570603304998636562113716685540931140309771596140875375909439578942342610968656054590201180108417380592055643863310156113933788615895821149561269286154475458111623043312863771255381441560937643786303131473664199491155567657290160755425742228252392317944132052036120071993150465144992359282058053214222717516461046778676112654951823060562714436537821447433649680460684480852917564674547739468751811973821846836638983201046257292462927955345788489337001319576932037961942689770838023704557564509960345564674839662305664233858867301796773272900906754061008369861396097127281536412460964487876113498202221876283963251421834350632549699897133147808589938193145450345772445387393842698696510541740955213440389343241686564255034341321614025616437302910096453892663624204057410563596425094552458089718344469769453381735738336862739285881209462508190005551610405837944924238031356360920055103511353676361291277153856208153251866776988598302239814447352529153396060664432125457017901995428029394262885013844576169189976852913052248329368048210707184828605113327585542324438003517932862502668217980773466882290703151333084626004551152107829528070239461215217827149452260371387988956005806527053048956025013150309858900909658342430931135343874293634211834784277628528245584990273529569508238829040111908898077945292358997132027812034271536846797566398786392939392087168219972797936402302398516059887559355645193375829446641283158371745615608960584773862028415814212194715716569119941897666422431985740327690444042212829408978858188027370907867524961285553986100669645500557524808752806071831108514774341859554762592380504004183057466360524107826412989481993242123967524497400525668721711460681100886502903725619858282526665958513834851831779069018712972389423422423268152963538563286717637465218694468021446361311740037405370518234653264378030476521213269407951648361703532685203395046442124980294592714601944304842573149467942866623224419701225886020228546126103338385169729033445659088157531180540741367269572156829673860933336714938913222932016274119893832860578099520251924005003173786944684164836846246102285042802049317265072190311384589278727906688947453676442506048739450355150963937411129209328490071713112281673426689297575747830464338068834569209019366669494500117223188327937885925385422366642989748506236693009448860357674326558156584432331229226976090479734726440943409433668032059407743760261060606200221230213762417946235508312227847706383767076883666648252928099135918949881857456275733361039486422976260276004951244910766308725521883241178893486604147008464022951896566031851232652184021250775082882781018008760932925554209998781059613894020843395371636063479926266806035671824607033027639932452486472792597849143033082219401550975893886137902799074632044417736444315620623439934981186387234267905730962040094279051907492778072142476575024226757369172005721552864440536405764564154787458585686411081190283312113785667028579719303544317899545805494764395180870743616901415718636079320679274810816156499363181381505297350397604392553355635919003149627374992210599292231081519703412618589654998482393583962845061722935032075694633304514169899149511907342954088966413934584497186460975136511723442926893350005055880398317702609577271637736989409647573582734744840627807096121545766203467312022701007273519279328248224985318502697515446802035563789089594744589109418634030628488878943475111168100472760975447311597217649273394046368597883030807165950095115466264829913697169847067682338103181096810539606066740738209178560143764351878389481593830463762443689178702526071117952621690562359492344199807398647847715634589122207149168920768227846732395852606345138947161923511269153584506354440682715842277290250260242017562870510689377677516505568450335861854188775543738739408758094891788739312055378676516449397350484040926660961016533497520091724751072292289525562671190608827286895929615376064288835478792567016717710368108135940556766591527193210507190530835667369441688273746867004563264497029158594962727077039170299996660003302756775720199895257365864611323285322173562401171694399182698580381797513156050812287982774464580733924261305329420719943900807695562689404672452331014475041343144496293179814086181685983428779023162492382908809816662614245510974520783506314143517124530185739008633362935053579336175436070998499719558119676409112672177624029950226185290419843180311844479171320565492902817423685389394391068281471264361130690628696711009501551326407911703521002420859776259519304559615203693626214749948631763028334990743895859918841483990685789947190417646710672964851847069819681318878670712153461561284552018504837020085403456403014398333758706993759783417824153691896769911636437781013240096284881891187598675740938242648771161778192089717975954347741003633879351270617645657370854642470899700814376995359410485743350148679305212398215015649788484502326321543658887039673941022624184918873640013348006393261725077006894705354408097998657624555144864573110581027332057713001614360948235884526970229186256426347768069434300291263048865416947280263762016315247594068121107856392393120406212022050856278668205648723600943250794845178014706168474249856265024344690815567973883337859907689228170375825192094446393123633502467396050615476152091849213779372093456454708665854478111525638360008469922031863265459241814164034729249896226044628036556893543055859462506659458501664489093178938740706848883306620314717384233619141200418338527983261831435408645862458049859558831892846180349008711914388627519291042775092754113961318204213667617904717182571632947076291565317995254169367096054243194453026589126872203104564186925884975380599491900037709369593994875705147347582617688852473522861532596673067997727351289465591649266104526559514731613281605913986220765808544469204076486217739668281679949007121579253416079502819179756253207039419453053391520402224956034064187262804308985968709694267604468993195622175256802312112321307997299489732853259999051690158972397519276532721808850366436792454624507743567281764390644557767578744713443405240161665734071151531427689213959517469848991222226849242850856088815996863255137178847881277697807152266234704579574419178340665092010521386175111472543687689595122110573029797972535089191617541976371435538406512924264187189478035977159615988688010651446654720130249210704016906150592513586487630479101430915763755185431473635708639226920951539505181421364481920914166584127681121076499982821979503478454035554409357746714291561051435329411149277323625773503554096590806629559892858138618938975621664368905784627787769400045158998652769796305063622649133147644321563112183625377286094139336140300024144138035486622307245253482692431722426077696293154495073194991834289056964824063964118271037477944591943391986528380776519573247695448324857761135891136504708882900985481293402574942735333281109948878482382742695138911154773083169674417884456210311307299928696092812443545573459154432653872402330241946460267981753768102526529917803335057496288400992230307070279475840134557418960180475974381830605807709495342726824450633165634583710721891840814744495820842351324014383731577663787806828950926286937051603114964307134720265122640129919124001024595430229045989836080675544745379906005754307999960134104721801243052427017690793172291423741024637914733861138611750088848932363821864025387000071757299785595102689238858435342064920485078664911389983648661316106117190707168556545151611515340681928408485631441498180323147884256799133958853784629137764172125219445950175754696242238358160685883051097572313051043870385515991519791767490497699255130157731416568311381148698840080237950338516537927666639617650075547525295666983683482388351163274748348318937218488842574038356286998405359624004348581634328745807400743773538860485549163505206120383888828651586244216508667840085968101576054645883851987422715429409761310617104248991237175315760975771112235221720253560248238795092227850389196499590202699995661115289226269188012348275015713214968334908562024421500704685071304177764290700570048363146140500717084378252718585484656744512739499663656779163119129004924650019820602078708158474055039573601648489893464363567033117800640440038973411784036413673047658859114589012380404806995000999683697149649280185592426220729868611960702285667165400462453904883259579581026839144795018296321223784794629330465360638536209754839090087773938517637579995147713943325581611222775090742546627186631778534687479371103942889460495522773491015547587334751672490311459715589953190384277258152953106283052714758309048323420553714524726872820989958740728412798708035251531922094678904206891778241488957726091145655506293239540597212047222891157178396623455415858790403955588400152788852623728410900162228088893332882333239400071243142418620908837168084638306340321186845447748612116381201008173838622858117232046264962516894662611084138159862826144788566867409991327736663679812184483800700742799318001829339896079278180252809089455253803361307706318202934150086353825842934260870029671233369074034280585999215855009161681245559340341517119076898114261350969256206924490425579666496434226334621740900903557373178622856303437443258087488734187886513050043313179667588431953806951295806727245688693664859522696151883986487991408915279129126285306826038194918576195418732471846367483371320572486443858632872216296121485367286819213663174788792856540398088491210599604290153267259938670548079154719951074501605047849349698103797516497496688493373410409489529913807619596977648631243381349599376087827079513644507655813313372540281217790889343666870813650288469663403122951175692981052750307201774343167904869136243916235407475946437755628087988573271315057983201917967407393824162949594326093727198928096884101887475192152551641780812675090861098636868721557907984313128640447828172958820823245866816750960100929419619659275012021069175615540059284576898422671033909159894952481042741725727153610844973184378980723187557758808831688379597169024557365581601584309823705987234095026469176645673730609720015154338236378241825499777548234947942740098216055494089060878401390720200309152871317060384345596467469930752797245323484959518583097896148028608888659359538867800622270580473068583573102240869295825009255533123962196300297439447704948271703908549777977703422947434610783580207454113940818261839019702245043321572207950177674593541174084146451260024711149664006078091204871429622862268371218923863877664182778804391298098283642489425009864046745601823990062448288186798373825113317746389128928676546784872196316326920455524790409017208930429652286784696079125470415010883688003489723978202514958722641180802002180184259801361532695447224165086281395611969037519183716468052214477426118605725394839561404823352648495037316238579116532778321033754834032824887444424223625309466749063605102491548053492358555408290148086118698311497386773660907613359116836580305326615846031571225740939982778049912076564288853798496926979741807851787442101927265195894061115820992984712388272696362647210210257973089256116465063874603009913114058879389945738217963000195337923939949731089928785891806127489833418802045008271438658016781494769470154555411936151263983909046524185668344129006368704237460124646878272364518265663109590216741570323010447325632514157433433362868385244039390979820229853227582581098436972522883235720368835221656050214324337463202175117092521891946373390999046658681764181946513584976435161393577560331081589751025444539346112589482594104838288349766515068074943427688710117450200510377174710248405586596715136452626203332127551161213877093826207840044901203743152946172821898375604863454039162269898040928532882416129518449228849298937227282886646335528681672939911794160321928801966712866473903414396154007994443482003148051568070262010307448344320281757417186893738613314742425810585687930504622983964059324091956044632403823622646756929737908982357704117555561391552428293024006146892073139641834535020172533195821832826600958074897558070127379986323913737947685679475003784957945710111869956057749537980720103691274914423518997768101907564731281178213507262910577541425326412693010451184330688561756552322661751015595540859490235530152629601679456143086771251579304593747789279110599700439207786869923086573501951013619584788444609840606722911275671262683990952829639197329288472376328185590278321912003483773682563385679972793192587961293082496372939946931494128480928597756485225502376964650403048027843136833869225046211226128753243090120157604687580486192308323532838815617419937613597112761778944432934276304155317669653990814397632902700164369206688190024717359418869450951300434365338687353281337432285454353911153433182013961941889214752098037667058378683190075252468230563906599155728939237803021317084420476255603385267914865970249976768619856898625237386372989861301896786032102095223372661313574691703985653635964128586904559566258522820648476568299190047865583682456201229350526062796707093268734874468454601827409177647041262867449348609936257995232968816907938733301430407480426955889724574308250930401513429923931104769971648672070514419157074270668946189688814100707098296927755859275262740172877780933666171739572847354606407979641850391325090812196592868932788831417071324021123519106659301745485043687734253818571636480181389594085583742892611723016636664929914233942792040527407180210594521852208640668770768135238286939962208488653141212733609947387115629974792025401291567985427858970838720038322759431256640784693165357389398505425798397637492551512302014699785388969764487889421569321376372960167515996428448583713074372140741273326390783597558987790178824864797893780281890275922734628189326000426475681591551840804324719558423595555764105411757303058065514030766565294925363581903617981210360866175714457633409591325637706535700310529905516750647963205937764124692131464636791389728323338410687889440102214657716347907144225569107889910293476429941936887874915033974682527493340712497450538112412429621772048281004764764209555939766066651377495380954337597410132550769497674806573097707438529696350935172622967829676700737403409022080967950030561246146539134805644464800508142676965600115568070122559639437563756486971262619514290995431828765962391740948646355378369218351434157998319596309183390199472134062031440544893777540607110040117761382315754406901687203578165968806258041317077996373915070081374538307074288397822159015654705181659393032722295050323871671037208615455649951199372878617786078671080413626691118548982966239615470887195662096114814963644328356932021950557452604451257451942879541434347364641711181111642149779571042923895504939591475051687745082118059710488688588499616446738382637148470636318247563309730400063361298825105136008795800209625310586617870120690819560598972354714501406236244701106319717395449317642254542207321363914092367319040252236027107033406832479764687639159883012052124822662663257896460076623362854123082955351769786660989585777964171958805810588822744291011316728762102855293935493692201083120508260373798983955289607938769067789007617450391130530647151660636219685039333132442081450845797899335471983483365057059552407597789344816207656452356897149551103009574910544343952048444097389806497058890396642109473419147922252755776271310255837370728313241294107106393106760337503037545333336553559981725566390728916926454011945183065604069446112041594931241499254219323262231082639184276651142970658217683474800594070743405388376760893310034790968409252914053143006001162714439594318182287175808359841683778525207465052769316301969785794929977020053450275903137356990983290812000418491061525204191632579507518966791309053109723526610820745638587717056637800372358908916878634611894571098327048021385718775843144625127153777684687209402746875320088246876704498453742671563974994996591935005034125365406409291476576899767725640007374638163503684472576697600928067702757754619402889259221567665280266735280346594467321782668851061979798139383969429275670347915984379063962151648796349818652436932305210072727359312526367244544345372455240423803323971539793167013962852410863002959768294070609808262223135979840388323381935701722554919999313522454316885033918081785422920484095092503297053104556639130259021034148973824351916320401110071087953329137580811362591480960476887142283845475142458991710505682698166470011632315751086639403568681702434851322883846558614993657952751209653070614551453589030436080201820763553075500739634307421038288309916512094135379940827664411486074524372254941237422822896813544926107888005036008181875426499430010376247702799715995656915814531457818836216008286874323560620031381820653896773061632873025846987585070421190397327398824801200971639687862874537204395001780900584438359285886079064866823753320182867553353937575829744014166404013901133928978442322342796512275113748746587793915828949477209845615103863191058629615096603508731228614886058587177329611079945826214421651015495819404418800888158202902237930786939042866547173021477987571977975270734327239508854354989455836454949673731213354353488888556563555593641362800423585605681268528361486732602239110075583343708034574988282665783705455985348256010104169630540655479668844857585332966190192093544695369898859963503134559619491691823142317523123401918606822183736254508068297278962006373301766723793098326042390674869574365704920886940538976856730592245368121389483757541425050829747999502457454527629421397438755448119837140576919630082449973826144016954794574200891378667174856038380213577271861269074494143317681458438530405112359082162000382861758303091550306365278173324368704635155363712044487506654282779268144818286278031674538623771466630717728378585194408233103261698733564594147450277807133917043470004836723264607516787524369085924332601180869564676448286551369907839024693091705549807641622132553638011297003568619067417405701643549822880658809778159383832797352897923609468238759208132408268378778490737454532349381991854694887674435364945965424772569364789069758603425743080357450927814667910849339483980791724887104152184573479388265173205808943367071556041978820381789377023681771078813133481389699065775212909827565376693593589421373087424985420203255951313325659698095511202765575923007008315088043896106115292029934726192098620129565759080939304443152552825394651240496429475143921293038949530448270005004849576982675026459224419280908972740724983022266746478273688310747108825367968789615556755819566153544883161042861624586087201734891548878151980496976454102001752517195509398680351018199768954174333269242106790250418036305829081535554505706141160340869123382366573823851616311598282807574355952806581520705480100489719719467551351493389968154626916399877754900090406492786961936433794944672890068627568347675345327252981560678189601019703413573315473925139207392497679236127647009292588228970291874373276715002968834263394239931342310850212150006439072770043039081623927573379419358532698644004052583351368467012144664463995801085757577703389451021684187615542796919623485195985653232340253251089652802327504117822563439800647729661292555037537915780593791336110345852922049212435915049265259224126958108415658248427414649085436752734948996426226349939248174960747161705894603663880877180056997177873206798713257084631762782404506649884329460032602069442836026278542844447243189975851049293615372278270774550373255710794081059829259140372258239307270474108795274697948370070994513451644053039987163374386585295894339192516475618098354982350321291824881351679630255218375399504662415222928511782665719939234732438408250151632231569068275146111141804391878978656377806301146060937758302075284550143729271256796573372233193872736488409842916907771213241074989803476122745076584622000876336691882188635287706435610132627705902291782208515876370712075285607623054036663944682232985998623895388599460067427110734949537579310634464641679943812942168455531108367170912223142293535422565873530948090107921695871392060253536820319716506810240666707435360762233432019651088658747995073927530694383795818381818754073366292422921795293982498783944831893071109444269442025126601295345907923511966778111325011063694552346949997770256864483609430467552420148006894266687666351997217989005922533036222394409130789468416293686668946680840490508567986897683322880353684169591832109563115996284389917194367817410542237168031537984940961439351476585084319930060494721164326003945193788648917827332041644727554093936861186395426195022900787664664023421492172615502896590400393626036012203440684935492566196058810925464910985885169693362360559138063556139856667062974719159892845721035273448056062290232307433596305875896527426413764258899775246502974933110720876730702526182314702979136266553203923397258126547913628585972513267753453343264425210102499382822620559783479360133371786540486836156186125810419802633686840861993918714710064403379454840466047492009231875817902003393943681333470967268196034285933268083127445017083343114835783929381454485001562711191694244413244432805132458725297835195081650244717757970510539013578167389866533696227678078971142302257355074503277959622228885889788509109182199211545331699329545407967776805664608229810940113479621290083239588572487706390134652710472265026383745766786574731321988003998512033955294877329464040462874116254821305453788265948994079140464760215542113878206476096691649742014740550716339823480921200237596011817862045120595102766425937284354769933441260546244126302944659344203823229430082298524091410270245610671129937627882361385637437378575320750273692495769888680086725327864971214295763328628161236234334122093097547367102073654654167418704560919665167368636339151317625609651699589068318865210457622752823066370651104263826867241448412358303832460520978239282354638095750227863437213010897815385892266501973356204682275353410583533154328479224431030021235072198522022202673597749194414494363793469347456713735189020342663059778319298041519908723319243266843257228247767749933011553545262875697547787674147088673286942980208783214095227887845464554389004353765386179271975416995021685512125936812722352322585260073062927334570100910101334561622666518252236113497119415551247823165729057770443272670170641443085962237843477558273836892396318010612828909055362149007791409336971351313389340479884635727048065044940889106821769681731077697831342925401732254500885135801325447923193678069677266776858111435857680251404819860942713429193775104272163063759654960678120722687298906460731228236494467424964676247602502546767522137358696869022350696386143792428017064361707957894455024361166537368851871811657641488834446464206676224305355247202050866235776384871754361952478482208914223191084799905423487783489574170235102831476234704475247644292881268181362887809699912943992569253985466069982972632424145405772294400660240268204178000215508072412800060847145766934633152548844555171732778095729263210505039499354079341466023028236093852135430903403051197892683464022988010333343372195798272172081987463315875479352987481752055282195254424427476159766298545778881839042956245132006066431070058784203645804150598485426133509367225083992730574477967260128338732477176463599646425839108553695959843081677414702637119672675489057356552922138374322112734352640056400841043015477840019553811478999187828873179499022531896244416016907752945121456205743558612639295277739484042690903563428584772354295098830013455180393695496262581763318976818076128705935738823228666169246168464536327287196768874365099898206249184749259077376517017779521288454780244158196478296957725593193287234790210860226171178685485930363172553247926996283888550236094330674298326265835089342913603781063243026346496171697553942661625383572304779618155738357711029960513777178216043567019496511020976591928968787497062331871135284902950397238656551838241086305109246022063109624550622941497648561376343134219053733200647769890189178704486595739689507108487645635651411501579524560913275638737377459439474732930456962553971763831430328568552464058880773674969193939075834372102672740733863059645466527431277801814881447043039662495248225801161172814304668145139325284259818875860559397118664528535492654235590325636310125095249822992957725180951095469273336012635157020561354223572516513747030584381487190820940857978956850575042262583638258706738948143885275645930577736428704746301589526660638545822351355189880784180026806844957442756597659882940385429245292698177727911879721760508999408816441272005644451661868751665418162028584503556296732249181225166112278934656855833799392607239222675197849533232820985354185892242107899411939542470991533368417461433044834964094683615261788372829682946564923696791089509555581145698535633423340418908265016307748701608129910552992463732835941761981983670376033745136540676498844936417617905177676746053219476368777121461827844932983040137008124817700973305093508331177756734544516608560511178180771332048847734928728070698747701355462759279876011462914091357923532309697124284722160058786680875527375667549220877921273188149903479982787593530028896329097053592103164249798463572384621320630786082883468399472193227265156249321893046588515554139759226159067372590329778917309893992258924162927852462399227439924708481937983066741520254023781244658112863554412632688569594270355813119617358780741407211591709538589864820366730622824053886146880333599611606453139467979788554063277797152598603525723184374758165747381074693360451454618066306952308562610536833425335301104829233954381458657258042998465388652239867649006148315148434798254584477792612499175935749315967137102433622975570581258201568273912684080316897197585742280417527102912323187297032419946643560611246864003505630935797291584672984232948873683062049992634369554070750651059721194598911963801071852465994479345902587109641655093999721078995855071137427407261570048050568075841924310684566032395764278546656284928714979684223354656331607628747840029447508451620460827039098310374824191611048247997835468163570786721022858173448258276072454536151235945146414555709968533249309522709818711161237383010401462250496910990363391960156782241320339083442946917538907194557879486437795284077786316249246889788311277439966730645218178890570299432820536612559056478659939233830153595952496102509729194134322537307964500006337020861343496686305957361336988829609311674216841022982478402381831672626042400038418205032156007716256049142385552307211772595443939746599923606217955945653193304235176998058570268418354387166440287207179963433605420285418316562312492767462053610242141031125205073366891732239670007702992954551776384910047472791385833909273515515023293044192410682710957456916144656350571596924139052260178210433256352154972345132000336878004876229333330028633882408994602838092066352200525478796864252500742924172356362022695495042921155353930064804439469591546873494206305661676956840074661633511352718585159747003749888354325686511055097493129483755922831202812177824719139458937112009869133655540583904208512692620516713010529677979636251858303082259027888997862613842779271745068355042376289063149362345829241878685014821684883953239139358988974776827336308384114744381767313317154367158051295481801799021597302656655676986430080157360631779685180959920353784605299969886227612170180206660696107389936805111160491895455157316499610730662013637067754122035159979859348068971648301807711384251182427186568709960895872146949582183486616781404963164114562387124801040554996102992365244459232371012301803981698059030159508871619433491474033153009511381270207334430223680577540953939378177587495420527946943862687677231811141940258612098004396940310260038994404235808646884651032795750029175182580173560918575810915752187705368509437395193255573867130175692908950712209514587955312824787605336871807617243468106774394591277456151498208525361388737197621722671352469276840483056037405177848322496488618872843408182149254085494172993225759304450246237339563222247763690014922506793385553393945085147226834967940788123867348660915508641502481039034981409362030940430692733740640541762876926391099932823485533439928592668910630449888296028250172412024141109847354054829846407939749829556063012403874149464516206239023641696203620902678439278862057890012439445624277923290313342205248158533858673742714481241163094602068964013609023291763984220127529054155458734509961327689451920064586547124471346346047609383734290709899160367363887120370724950350941148036236902944407474254081466210738825144427407354494819842875381984875703248482892846139531123920522139514617873866064803633443425456610953301247591523173140743226092752122081677561207562932720196874670823511221629153094176812257035586784073628627455811847042365879851394632420404087667811486216922368409583487671145730889940162193058205367089237159264083623846226679800013053623435358997605531114955033363240151832753111183126654762453686436291102849351085104125274083284999418759628856881404964901013336992875101265257693184155226859334523921673167800737265874722751370621803084875254497524343452600418956095037382706437109498879190355502482427252127157655646591588338319301202958684883864779934714724818234769755813437020369279658116770970069103495590779496123832222239855722798799871701913942234978332873839143531093240808631985360173480182728817028137808394364157493043866503645543778675808566661743513708751681431726209593123307279383347382434344377365767155586613323201715750339986016554660419138110444102343475569393589877268765470048422952346214006787763937256376112351166142313823625505388909390076136295594534428500953419055444301247841049723227130114041596111458631011196262600781257703098883525226483754595591802377972514603866546018886167566933996455691072519400934938822771146380029068174242763834791212972798073155770576218361498273278697969416561640293724063428323525505145665551193502424018689194681259627773278281874366994263295019036539063248056553516578169269871620377979616257296874049025534321617209390374416303530995428621309280508041299622419351299352663482563830271950164610696046148156405680155703913407012275484643356100265357534022805488624256256387275631805057651723342722685643566858696637524155451570114374722817444317940631717210773591010757055392936481483303240557099795662918521960927465603859785466037930216559659312145735949899019184220536617432319548494954941767429191518917478350267557952149360410679485444096812310812568002765156681224423214582256583663185475438395479720041243272656410425642021056022273892653993901002560558422328948204847691722811395271859350187738494268412727480934432393646724284080310422154150976569619807711165311919926664287010071191056636147014619266553510000000420467135547501865621057284320202984834912832838351845705861890862422536554478636618828480967744307809944150910965936146908826618412325822079335589443345362833998948960496129920682922183736148390415995032196390249911109696795598168511298794090671420034136944378788151372104303062868847606607523294874629598886322385330758985077598509775251129107433162981950232397633346787994610724348981707227215039469055520980605186264960051114516142394881484806919579600053833197555689838646676746545363714288698560691328178827173535160801804022749885456056980221591071703611529397897148415297664715920805755038354974341861325768253861290479743117187911166424985215728279840058399864229051995523336905224340978066282669953051726562325086937119100452832194172372899503245181540763040671263997076256571548266368983598085179022107343399192071363105403555298348346056471143550482620648371904824421285379615821299835907369969148134646372551252389867022060304631252929218567744242360153747009539103877463013347302020874894204038106595937475535591000798262231087370619710426944224375612534926645831116996737371494365629145408121409204026132356223096735884717318756858265970372102610167517806503594099092870316817685660983769720850225648776618513067566356380250803478208040289226994463916987757796729629209576231548445286101709817134050719597630752773425403685357196386560333206945806851541598502981839534675838594613886691470689352564636966304399889126938225028626986430553639778680703747874884701560320819475857131040835961894520925022041410550760371949127752263868996216272711525432743636881280839034962956347131332592366129839547941000566877129764527736004462889278207812174932399211614249820543679478866283092603330344535918019632207178970271706723772206602186232613069715655058113891893847663031951379144775032397148884423696883167330111996605038326627559443901537320173847638175046809196585063185415474600379163551511486106178844495629898265049688031895681208489300354180084169297782852442482254456264753716120465003574626907212502702950473052243888890772995197830665229428963458177512336531754389487177243468058036263486960335330699110264838253773268331821549452725659061872765825686561940456631089447717048740317089506734150948824589295759411746302075069260510768851625923479120890869104333196991894523013398086912744304089525457264682145121894179081045756424107019838318408244676399132617668753452433007804736583588635979867810777423579576841882151657517219361934586498057008256414312764618833700237454161443211813141388499721424499238945578160710666909401808501843202193203227440636078752998023632647080046760323834160445157790963208897855915540873605163387237108674442623427218620919252168756456005725820392210566943465464835620856719272105764899428526998259551691136246017999210628975155030304941906251185128681859677368956112358535156278309082964256558847187820690852100716906604801040214962148155847154060411410022453736788808393943715682395754781663502357184688940778042475784327180532752380487326402222524955634936310484067870512614847046254064189306337146479260595634981908147180518218639818345575166396003144010978898898812742111006193581573611629200747302976810518915928478966893907782178072990717503983185158268529166301696263369973687897898741703821871313418677386180873832087006231424390867339886890956931027760709584690093373812195317920826512548756506863942445889294330929276734301598110787276962306466048784620660911706671119877239263005666812393716958384379346951513363351470359929552781479480382848341044876181174449628175268207988019173988330921494132433950559319869440490276426521705493891952142246574026609332097570620118750504436933629021590203399088333502479095655941848292429589386356256962016894306192131952785211307017389488200529004218218599508411100874085382956875665034157295914699088644956088666318164261693788386161391431124085332464405288132092500119597895639621021753397235412746393681063281328383547651305321701606183407590724790344935616312099920150270496469589607822373143138795105523678632347340118014547180186646481209307617612304053847220202258792146653250632623968911886781840046598292749599272409078576989046653903748856027585304569116644261484116462930814067746999701849450390883857599572439142346628779312970779769399740637311496898853089050211615125485185927096973306021273899514547326462348011214946874892465456444169662229529319324082114622802382666580618625732203546046107450021782659392692944391320051965163473945413335814209742098878360668248905059510502680353248098416996396063786996230301632139969771566448539831012968533003804872634436456803973739792561366035513057454261435270272998945841423734290128460607800680359340404844053808809785388968162773139858330396528815240029140328094444180338779995224399652173193775513010816128740144407581502203320928840949941145925036750501856157587541406381478386223382418317837543090168980496738643729820585416258681431776303812285812814456452158100763995102730660250987473097203288233179637149305477742780657098801434049842873011271534875322109258670211668773708871187113291498482487251154031130119015277561690306130827206048961473546437363402429730722594959531699954627317513284612868297507484832860989209756324420568184305311566479140248503489623531585217345147014100094911117988767188493300747002995386207119698687054272212645968813034617053366127619017665616238907188085968933459371540871221770481994154349852949400375922298143546765289373228832624711832092472077328872855623764068963519034539561914900326753184821157298517101956903158346160432532822157841562843252103459695015446109016332087503946737357081064647821457022989057631705074435773556290183941495640675728348504710441802689810369945615000382287818146268615562992429372923851268621263897439176568489775572320259026960661959266248689718451796181802462322872827882575305105211557376977156177039955810012596104721165890912985634973199861821703771039633350214779942807611732329754800501701545672385446790460714022970093416573981023566015133379897039158036145686444177073705323666250111129370524953530109072470113930314862613565822054201808633781903757723723448990576977711183536514094467044228657636011250792942888319549884178346292529931775244796510648586737269794914350214350354635436087800336113774685979041283725500122703976758726761883637029673256463753749927973480941996144006055381123075455826359399408492482945143187762721805091381126423019441439007454235708648034064051775357717537243862735826790385003302775767723444776234050691511611551178237698569841227443783716359722698982639556643641197533466493530998382458863712187217447457304315794454774306230606289591441122711080096356681903879810251024109003121937830091158849367143144869051126808784142135397269808702519565665452318652893469290604399574562804658764770592642256894620682799708714484451015576022727796942211686943917095581496117306988663404253187970471016627220282716680114248839320627642165367814686656933615317155630494340057798119426025461960377298701527155610718911046464453539631303696998124939647041351393746516385865504835919993883797145919942843818119739128219392297000033244943388086679312476951398470804818138609894232615207412029473059915319205308464432324512776025584640508336492719851260107466751347656934883884674562189863888140852215473441612369441514969617865335014490467654489097473080386600163867162131487792531008604907107014929287622863392092032554133841304586580262891094591593453645024897085268181672675024736568518886023676877301724123084963415271388072492635525163838718943046082754041871559488807923771340107475192837203014340497867860634535826678687548261057025710234173549887497973110292586573440496505006460792396794029390959348157805753863193186367268427747920600250677833817255055636449455287325532521165925772090413860841462041233245897586745734254370910925564861317817905350553003169469975334348745691804241514112275717947374391069175184047136679800712684541742910917863486564344442211803612912158520475120550819284108471495845215399528063300577297476662544999355991131615839648645213301662616647594802424737755407380545458632682544603676545957638112603368180134287010682004394509842239248053475597716762162904591457839719665261617220574383211803922671012714773365859033136700834378551898260731246758278997569111457246947300649622048926767934616300782502310785994193594300237234869734291260910921627469445724398474406736004392877549044957002435763938727231685947171126167196888906136698352806489342748129598759125996851112092504545582922479130930468194460935496576140070176714334594907161346409281256490143708261093790389221398221551809168936440354851600440294415680914286743018407338476886200669268279081130352779219730451674857765265470060277578033045975517548442405164872825794897628079724600582869818623183785832716211580622822973929290473072013842057358366647836630420563045970679354569311617566918110091481510011143795865841396405403327657681982088922326353582187255650924777905958166570826487914743989470900647515118791459211830756839198418282427107213731134392033143556428108515595038412736861090153147741031069136656330223369941517274134080842059645747427129793887901835169276905306386824734644325924594198810019559544309103841491026950484934264676489737209425001523506921932920981999172010824254304243793849951645614623867055063411697167553370716318381897757038297706080841136082563841907735708476347645361594284815201626428306311624111151910055882124288288227030327707920916148777690242689691824410495147502052621604464576995464026582668933138723718085118914437714447877274204184894769489804934957218435119234570146633355494307031400458766185886453643616790194173786332743943801203480362803841853860581137805478350177489422769214608301192160769369813500286832412532778840517685496702275330865494121735198212591068405347915933734829052242325893984498493287609064886240471564980131503919003592321836225887708642206026954014050769232894874826595948115917475443740428739506973669535484950025370067965301411351296914521450905786731650820229285690765527707151585336323850694481889481034991794032496278369738461487243633800732968766641828070466899223352879972299951533998952840291311516305271307900263684163856548762161044279338866292541181099016874034981491999947207791160385374128416121431640334125413109230228200751263496696726319977781460915089839358088685218540098585258445138365850175858122219261156026222810271012274153765842409493201748645924938314617464556030734559451395247351058877677428355874327923050962276513463822220582780689348176010339395209914392989212998154023607914327996497571546818265565151576672850740730156337486337727230400187412890495809165928460729137881980602783460486905169024428966956894005983811313591558327767526357598441371845782595443801810784952378972892027253452080305500355907411670034756513425703018283926997924462693133446765764838537786099544179974128442280759654027108371653051894675447886836560791272477449441655790325637736450393603640640284170259100221914741796856070767050201837809974913964618977738074287947894770668556130577608781268152266757902227108161170916392716663792392574952604947367959407388512095366589626289145464718116402727574491008727763733443391066443410311339632580616922865676605654813779156337058835619039053222168480213394065862042280750504197662301568647702383037641037903796267957262606725378894647543835091894125607542512768337673504172676751429692988611612682214642565339391514715413821593766709649298790627287187352601145494808109349607222901562825165072874630878655996433664448304302227358579402905517730649447617013918559915621887894058974980551959196127657599724665786607495197017365276490643947762534051272686573191924951628870602680418638515399361605454716203600888227448357305952534859841874352876958213459825440586678870862688984801858268726470347697891446817679970176274432972444442101101543704628206862229164300581189563037197623699637094653605624363464895666396716864316395510883546073810611352834317264352387929188088331965258485675139230902704398053487637095729485049664771810078908760250072349188042827206541307593448138539600980528138638612459085342791824704348898860939010369087382444324730496761241697725042290129180260501310089660815532785003793843161982458842221916973124014272777190064002829777788255779940974082852367435561252042611511117265184203465139467727702334139500555105800223925986409398844638205958590262025430424711702222070947384712761962464013149971584508855771079883098797091021830226320257915983352640426657709831454340775428558098407083142359898006232718622785011227734882311050791324970813602968370664335270171978943140695551520740617082932158616690176255128197331262594511766386186508335674558595862619815836026535937115200778774487451870007365092031479539952424906984863464043732873835225879808523735600285012207498218017799057205883699902820338019840485027033620139335635492893250106517007160176089472408152617296968164491477171829193385274321224943208016436042351746376187417319892852783309612879575813195772228630060532515605988527841411635990823957868591129260703500390038602967194970383061731624887757923921549543855155758358025264881202891707794170245847327529802361572859055784201976956049009318206881210169045171174240829358463153694150964016181161954704775763407336481109896528417122495228488680250950395195591443114391195777075594764168082293394366002351915631130059952853293157511915970458693474374037264923211160854061753507784483614505326232923711723368147716460843661856205292686078643591068991274791036495295497579056803984011134909201601369920856979094344153501534819597342441709180931808898844389084382957784918022937826977062362025864272245203062368623021282188904114176162287826028563687755371422678083076702361515816760283472737205493273238292465467823801478130696449256517148450534103108234710914095666693167891800164008210237018352419067386410306272297586079820802148016592086796645506684357441030618520208245886130373922310258971996758534680317689689768742680197387445730668790616315499804449939154814176682027660832896284606706696099136169620274394160267210085389014874361201065374932085828503544001663818630408765651449046190189212018294969345846320825524333194918501493356030576081649235221205596540944039014211832665719254242167706868094482227141301607124504584904854155519556414896317358493416790641312128355761514896911230794539704723337029019914333502729033862163378904460654488130972126741709531968573128198650708441423688638623617872052986434167038217120417033207797859417846425132079363870020299831614840913764680054309001212137675045427063405246151219124626689330945913592535734864477207878989942741408289222937770020795761712320008665213373531461680731892918236371042064488108219738366442623470001037497286551889915243406150949317389154461751156378772868441619639957331245291315287261732152001089615143610307743263693222210163409853652362628968120068816335843256287867594422796588060536112559962151417907481947796403720978023022545737884002855058059595247910076523153637713048154073659082117195770398085357330708671835401929132641870775328457783231476085962611289806366895679131509013290138949620427083862048346989475451157141421821427226155705384790079226864070753955312779172129716449154703152539321461520407050571424518652640247486669718614174616489132608036660511583624255226885650963390087997675253185983591783815003477986064148440841677180322960734776798172241500517796029238867323856763520962217194706258112804558582493476189945503232116327874044035554021763743460854611286418105603281062865367340319507647270722185204978332001509536314235502969878840523967375364489426821798428791592446048657052790453141357346346553772469587235967546055394084742002828721591476330177922719290866162841633535367943931456776571514643377170089381637300360159532804923625135260131616422359874326650410805748426896696873419694565965676873088262116179815058534449376633046050241437716251315143730402529094517152574243058169816463625849294227546152336698616452546082885355648385001737842312785968718363717772129187836897923912909656284871080756251226373689057667175832111793982445948496711084630875656079909641844078304039480719083904889973543872031370067993747725563026199092178021254314664497870789352995039533711489571402907849609088417508095981975147030879854842524108305595196154605317955375900777974823940304333508481284363920524845736502682993438674784445010276149744683843571835216495339079869090797798235826224329648725886827148141553654510740756447751048728896166926281415033185420621527283639002753352784178522977581902888956334456004614650858078666628577550463584013502910288901530866889367134550312140818688851348360555345072346555460401302758215767334857544310356489159709791063606202217531335491463475451331116669363511104636526773931170857028905904601125595100336025182435750236038324752318420132236572744491067126317922355966024233958708590722318658965890452195220042848997182207664146552382391768774415988274563034075099371922169002701545997715942526671405255744965021340453904484130063041679803414579521982800852684155462189791472801863292121138609387552405065228122126628929634371327517109846839133066135926276358394542384502237594943525887913209418056946081440102735841225818525457815820958026601364413897497740888534669486369467195262159982944018187884717449586066605950771980043555650778703402976386271434367779880728305363280235879130328364541648791015941866392927913339311557718627073171130286020083091540984633188166641373980549628559534605848886543847909184386794437103142174718039586512101236171316968545129202202444116145111352525807832232967773944479995045865132666492626618683603785843060576804364248944187264113787422984189907261229242964555326912158463128972283356563243736348379984458421008151277941848259183825128039423885479647400754031395033514189079289355561569415715436170059170387353209055100340854661787801848076306354806941423891402334686039756113026167162032089343485657422149126628342814742299579967016325275610573881976192621710569219102123330181572204575816582121609006894823025875686303353376347386314242431951138299665257648762042565504130074127299762930809386686004359765072888222303224855329542151955624190272578796846091752768039102851901005318435956627577059360975258856958610043329571895124130426080350023907214182598341882501246288589596731214379296636003701904137922818876941935114810969566073637740213530903746555487522645129454386487944012711366884558300301460312925169289803968164898719757962806490618396452335114804044425014468005532002783035411119684723908143576333538026806622239676493480725096518483211180904688056220963776539739406958881482277556278309359527858397051455352952872130613833581261183137693925840945556366260949226535679804330935580351967613168724543466206973468960409870831202385543422344207397181923610774679718523839535072471688634736505893183182175798442732104974072315983277215647213784086525281329241045454316265123626548882659128902227342701201008855239440082236272380199588064761569809374636595572129453692565425680202254736199990781535067355691210555721502119537079588589148280603433618766019453034735114007211487930327393184843066325592619597655846769419432092922873421303793344309152670248385152604693611345852350624167414455036293104282640717635089018197993356769877721975802766252348372669626158799678500138592875990265046579212922187341512865230899651810511675855637328738157979911214334972583198699760643719420069451850897979330799412808463655031437199854654196711355787441564985177653254950877425829973485550576754904274715837291276257194371131738243307845432022734542481052868041465234672282659780843811902423593739659321019836398036523289945537017287143166218168725969336205196763345148911857847850729984157925923405474251250682985755452746328280244509850680272138118751078623116025927896354157965643877900963604077276197721489151536783569450951542043197488557151867723100253920954745370902199868822394924359377965773955630946104302409320792283186109409837847228701648759285976704539299620707886009752490829032880777503907130749343785617425617632170125428511787144300005711058133053705185944241010570673823253497140118052800507417737671830970393414948260352019015737253417579834506445293104867546697295202687252944789995508616830021355052592530245057757529584858621698590219343441269460030289023927866781421884009442904391408232821007834722777856194832814226443024205384539802008823141832440623213165552898331376932780541451808017579360218934464211673207529643633563569239471266777121245162479501970026005515408757815413235687598950109512519301961332749399934439876564100204881188790857921891212504886252741485110112441544977534764309565596937934883004456233290962973581254155666626310119262974825943558717371847543914858716063458417714169265533180093176558457626435611425192629114687573107613917290331641824775402394687919078425438029467019335580705903545534994328757888126039816049558492117152634503153366490323918836876088764728480892276162112099491998307044086528895818688339494339528668187614987827166296798285202527933822497979911485923001243183087449991199465109172536182710759992530607464453560731228707868995096913535337518167123042734294753572680306785214519896109914856647643187014474671906545681984114461086464934647177300493867459258318170308257031601035904675650211533772871650738313837628815913911268075075722422758295667001611537767976006268419082116883901678033353605164536091577722671456392557688986005340463729315488336623671450804336880250836760515604320408474575054611904390447247685292424496933745439321948554562767090358702234842723281828951748658606267193853326359744326278842400810490158148843505795534751852794534990597932182200199760437744320157191313728266270153230742697406696586115276745749531418686580104026360582827387445520236606371316359818276807749478646593832345484769458850621891119300085799553118145202357174897605992338382770665541310162674712827902813130082374925009027115447637725239447797220517948048876243836649581509129283680219383195421253279926179126231059542243282734947442322617442767869114612269344593901367715452538535779704328465183106648334929035891370992840281546861038517680038261339432032381028039378069508621420205661744218022864117412425775019038082864546946466247359227708460501792007041129713514979730324333485464211700913157476517174076655253336838566617393813354171739974463031649151613090829894348597160420446467470593652017900404408053347563490285709481749866487089621507698491774825446095375776838311700762383831427120166919788894688473206882852284619752533031757539509260005587603819778261725830061380590152199712307215346813433952773567387923330337966202193678478770644997720012391832779924777865879528325559161375069236320050090399560712908521605280016314083742626682317271776691169596937385567549177047496023692230152003259584493356212748297716236012372977243869438029373472468372560060689988063838177546452829901948522000950596256589770850682053455422397451007326711510894059483405000201046447862569831995473977873418692327228893203066753441846828878232163697646362213761397988068061039374988814235656995011602648406285429846758860456148558250374299466073539358928994457628883974928429827040955671176217912269959500244416567173268503613570325212199266497880226113412697531341416067883418674323156756500833454432878864651131027535180313343135915353130167170741525784308441293539370278729841697295417236832489657415717227802522003915052143264350024282174592157824245489918925736167025374856220295088467202726618550022951875570664576054007739597496522382372464400478330744073761863591873062979879264915103791481330496651036087632483134732517759842774492831631710422713983539848598260060805599172094164379700681596591610990195324591741382008217508965530948083262818589557559851652405190799889246811500659777700472982951994405856377169584927597510586263091134802183391369498408171172249824123449643306874976656032048493136507595558084861003460666807442507625275904145264480615890586855986995620956759714183766258062660079549694764885506270538126919417075816631855811160103245704766985556711305947152422040049563545645196379832757870516940722117481428503870065799063015275920716461445957497716469133613300899479795913719889019075060370733121281385002165545425881897632208577719199715723356457657836373855180791054056312633459544411642810091505105291256670856075684952116761849589009779036664114538290709384413824617146573903230123057000029177706416877501279708165647581944503381200391246208811908413685337205904891124470489350625467685122612533305589250641931204932444228543838172129189140446703041561873325560464141694953430917314615755953326136788763007697334278968563166568009939389610026511444896376525528085543305034841432243746097901005119127495888047677708797909908740721613769284695011555701647307138275782362219214426925824567074034378931290650265334914562261535192784187101521448689368434064894511695168207198794996958163848370277370507699006045239860542855270982476291035688787035995018553605002808429301454732679778006417890602070372471644824619691875794532013869098994357488685842109811543067825845042436405769404162632242484608050150624721927486936283585582630019215465490505713899883490050388966879962556533750952606687870965923420599558903772736954849174410819442617241948279251000783620887885397666336812510856834492645761352428559533786314680655979979594699078555294571735578961665268916209814466048459825467374281198999845957725017669056758735514607370859115395537787538264413916127384862921847907384831435770315263776953105423495824320241308773282866920489179307151869688603994394971310609559962623924323299351444565197196426043883200328241730175921698696615040031353418441388003364401529133212200502477439580185783882323429310582379700346168053117470232078047563810460058807085728591336892827055171401756567761756580157870230998867605302935313172943750497162114383467247154293747225500484546633905383059616455794729810328958721801354151911033111499666503998213125451400209540552341713359732865720654310638899220141908710810911859817788967424623908347332672164242371224195680599568462542051321049901595540323592065445425320841393405140395069894639077503282379427101585362911413510837839815423410132244126416749098144895680392789020606352500325932777418903236601389225457739981015389288991773773998759866368439462400167597601491209521506828673086716467414625073280462369609999580740526121121442928014139632376477034276528089495818696667127469240854709835622873925289199484617227647536365820513011427611976110724468525335582271571875903461154139966412677222376486277899640607861524448138304095486841714656278029579451075391297738977987982703714060834572873439564845875447229569768009183905774204659915840907524213568715329709966414858572400487938065906244634968321100188743266829964865059303453976877401129582070135921434056643828478806262060563788952692776657753601983672544786504806191669163447351904440207786849543844576072890605865783693555919754678440113360899169825771272318272586767404073986182298366108580010412941783024186705087463026457115329515999070420397832257582483244931070300467704453281208583345800580152236866958957721716223192154240173747669328838555269028260409203004882173718430960615166520307631298653139168447922971889393621830945212264260409420609059328730136545628290655360015983906820055259334869008594863749620352590111046128848194614567142991693584660947899881932420823224239570610762147279196752522528407031173480204483401400726777660216122526916888538372230419652905692609569043115331391818072897459172509346267817727358388990309617013418563626823548050776959059620632307171212299455236102800071647259235534019753987067289146010491615031120725114106634368313794710603541706791399051306101511921975017822536350976479035930019832353542244414113713013502904430314078293617503457375282625462692490510346349973095074486489925183665149732355370477642282039758903604062179284811733895314328460030798303413914774547925548224278601600567468313039478321328700103290977109797139393719881244436527553421395875774439773326012287917774754645738556012747466059710957187594672685330767849085178757674606637917169386293297520642434357913183261504689721004819353437908101164556960568525551813910676915165359900713306611566175438185791971799337554202493563935828825549008259742895079929074364321900528517723224767890472328793892920127221704606074037147690034972052510338340448033063086368483564917038745445112510332218226619151144535601883085616536957220752277434804111718858332103982366635956650585960643580488095419241209353519159846004658422780977583246582613321861108927320268973682034140924027021600048945525968345284564790643912932773891644235189464259361650724777788331288382393549659388348158478962379058730930194407750336843846634467395038236166733446763096114333739036349054101506586999179456073163819507109723613647473620924835322264338363629041421455590578670050238509803741514313686549757013298190657490992814582828676120750295132894205618318730825345751731026940724787096684863572028687624938094063582234289562475242549167039746100497977030683153375236733243765760591089845340263202780303377160472410052006513263885924290196482252421895169380571864756690532924918764720014008516705983646050132549448119868463509070875588345973864020233942784610673702968866852375455899842954479794847239189641508442016233041979013259324295073052455885377542881620878306271967240677071631792429653908288502708085234061972020311122470078350682220983741207595152191018554197828206508648544458452740631026449697826490672918705930257801672366925164793648732256294704212323975316204340328305566929846460950271267265198792548092832391514822297155061275400530240938267337838188517661289512954377495203532687602278460224088822066457808568010704983518307140203293098245538441005369577655843881601869128053175575051302149739180616328259758994090826873050351817588720098872455928886306082449157601112479226795798175481162053926609942474227557187310164317628332578133153763836589914643212682449228460960589443199501032289699022651201920107017382542648366246692514002518161462588061582602276656765791592292121540132390148918356617482264456515362011480770759224342826550102590454643213113580584588776695881485828674508282052751741619303960857024027092696183598208767207831056227695551535676204050669866064600782833124158852661633706533693902399891251356598332126894761674886760070335049555079268501864469765002658793625182599887874168477140317923094780763903278119370154491347152024381944189581177864232591191963321753395547395455995453720572722181070560130562800376289015015108684874433348561455174236727847393446833544232065593923623812248550591839499256942366847196308231544662798558434532957688409668272918273041303260909225510032162535753609895939463697053069370010090133666399017078999375138315035912703245649983828398994970003865672907658711873771668782146888079349989771733054434950156929371777456282090624738228518066651903089079463375921593879904273432637162351983630233266717389465051190637957606466816221504071186648673762276105434724749089220349386685554773846208182615656160216246101273782974961254916704250318404667815071881823631028859903351401330145566597619737546784581516635898849624167529966043711841326441313364628738819329535220911138937870593154498078683675679173061899758624552640134758703928855405752088634242663288493856042312266113138525675287148201461941113523365384330189128227812459936697112659985971462137542186289959767655080392360038774908751303034905034455892634206016231117907446209683799592897443366256504186034050571040765284081218245416352053953990075134567021543450810008842438620433407473374202920649864542783992958502444474574785238609776985984136411262010011420539679021852051893616830986473821365395837645873838994214238020399774635809929113721505543696134569537244643084193060753163175707823780109776770722533726681485554150134222437084181844202263218250877944734560063262231243339735756362708610135145957741284115240112509104047482584685782196984217009489560258487309958936543904971476483266212943862396018955392534825195589226348521478571287382534577296883263046516192137839490054256389323239368333616847527010352788586327917740146648838512175033313945682544919156309972098673281745755919184108073684551523858311477135917233266277797904805352027638908905861364340031673781156043617770193923046376825134320821419063729898485703897545598295679681949437326264006264380904339161010331781273536194696033905325700865079683026115238461803840424611056121528154138822558294783314233346515630714448920330289659113116370880654006420744740780054520091940966760126788322038773512306368552055777425799885645207399325078218658344414908853517596410957407047453416783613194626570690101517797191191012257530298890870007206955507283126339423468612537114334375041799485525369327172275545308065323835509793416512349496522952377242687943894551593207300706285326968858246340970594149497657392642118857980958812449812664254729193556077386084971210262027672374711294820943620662133011227033980716030299782387288705932038135125407426615029820321896690388306938987195204081764403765895272051693411477943665376966535440071676643100360471501047911309791909278397928801805679679400740444031465571547550441788389694616605492825190488335273172857747880586434764782138096426692291229171524293190133255902902680770181916711926154362685173476304016106382406337879036045059916512263314819760150173763770822188519083340014666420574440950508427780679073851478537124254343711733960569812391613743111094951431038494020350663350177065875836156955340951392803700964494640719787761689324732010510922575918101732477756933907919596710042980730321136849536148900860675727303523020845591548125074238737068204653110623830675858794592028317328989011484105871377992856978625294658905165827441911061473085395126687247871932213644470170966069637236252030328358818803189827732205478610933335232879463703818186115678885445446409350630183942514898807996492837485593145498299487798228977054541045723188454988206478406753354245275136130344433338347663503442240714162255395210466594902039838321919207630194950741950778071969682421018716309541705405170737619958465122709623441456914646707275150364574365887726202138866956613250690205700599345446593574924217269592880403973265019485080106645790871200966364283155839181398406819184732639914655029505019095064021812448700718833736226148476186837595976313925319041366525562133065664662414551321828536026483840865055733950897369826326199419942015616618777953792259027578192025279002606143876269297209388374319024817074048369407029545449549834370726943251251642460102182403151980691901371356580119250019552940175689785594391151200811980300322896943528414883282827128023862353120186515622907282209435365122708502415000768245719200243860794817752718851439357182878425990481563338619656484561270356688533171391596491203858812420240765055190586863626731908267248036418865640920283356947215941582504785866185903573034263114992620633042239920753196613662647955987850968208521859323011898111540340688768911837685412427636211056734335791769604008350082442098721817819918592387609459496660780577269785457607512384514163298055757576182627799588251609476319204199445360247884869121054048751049602716737248972006570464973924084209903913579228722665227932069209962174152927238067154041370080053124809069125134924792248444838732579121018384828119114946413973249143125941791554988233723205554714398541075569267188576398014338140674090226123196553572035580557537069634817094482563473413516578809318106044218587029872116802554377357464125154876458617380323231351354578105901694696156909005688626612941922479577698213994034787223400824440033557115672574220878804299063722836600192469669247229223040887767023242851474684297870182925226438532504654211268228656675443319944543747437752314066890830582062089675061708168897504053493604582952843670461141047325262349083803143285993580774448578401575967378111861399972017835216017858600554282500582539112015383922677683910616078693439160963015036028227104937999378129689493404808083084664895707851312678000613171281040759812920077437341740286819211173011135363284866250821389465591283563791244248821260966189300521566451302315723042317925217373694629158106738349934589007334580257083930895400905620001866381804283632436459800775039561150168432956455352401697965522288770278649124085449210781385120202292413465589989095967287513137691392856947852615503014088575594227543422740808881190939499113946160275941134105741124746943870968949088338617510926932201844299390634614508716259354350509851178862641179925395722405852896951828524890848182776242567409060625013332076017251174010786360456515088732031607944953363151237377184512122492555641204871465074652795952562403017537941546107880165179686880342162384867180854162847635728496274065217027331153369582218859449062596849196484952229903136567913689451375306896563009862517461294394737761788835595156217014281240101074844387716065083634945395276979374492016371541371516360283053032803349647750297471606034266794698985241923535725992791888075167539918804046343900874396316018978328009905885249648769862642766374309574355749651626293961064292887640147287073716949690907258574826995313458383454718048764267025152881944830855190942655680587333410413985227998071735067590241409685852615953000281166754062841576854616362667284040620980327694534384685042319837476147269765689999992239467747617870301526483076343033280331237941027638670625561041074914704393775755519236065629871542284090984361496564707170063457910402197797691740076886496120263950772187347468281631222493209033902738233729019554887825510122256220391787788636288651049844688782110114678276006749735577233928243293547941376263046469772092859575097593303899874384406274080139975335067382446814926936053218875483127312316434516368565823669008238691430026552729944330706303607841980426761862687436147980131323264033120612644544682720927687946628292016568556896877722766916182525969979776977634737988969995487638250145997506792517369584313959113981665089856981814281219573958243769312621045999781132384741965210691088551517250619358490125213018446261221337477473293760148072055019271322899161951404768310911198344353439128594157844489011105812847263468887105426825687406374616527380282935206140418334187725875851464546220266842673636181190398810026646751643800261216922469296594142429995716184310490867381989364856786749090113609322522153887236977816996023820116160597476535205154993852574120066761528281207974967501876987013546581396053388773355750144177359866539298448927391180246320229442465562439022179995417363713579817293105488615145415155866319899350013173523004461613617876260550481612100181394306180663226810785085776852346055134493591254185841357059698344968964869441149797187922953346896130315161139824041395978605473910748306012286795610453354215764554468431322529401881998065145586760873487391320887096620638223418647435129212554463370255680367785256629235730761435791345177281869389130135678147158392678023714943647928058222211262759421888870980141982103785251963691810113028330414433569101035270670171881373389096375661563153815399756135824752286858062792729414226996246832343537237935355648028908773253061165129288650365149610227955398274039693269648495942110836944524343665720010366659582358329646817904728927250707745888405358176432362959770194294615036011479843782796379194604842596808075064714976982978815710727875319713850445909646096620064331012485706475015738329998928149968114993863128675538350993396556937141814903273806097169468391349979111718125357123450449151567359466080446709182185900847925453683078711428119826960404395254859892068728584170792061957740369729702209357617069004590595401308277966587643645078417610350718006835110398297360151636577289993197611703504028889800819735223718064189694100802397937204874676821167260849247598695602920071360337890940433426057102061386665144561831811185477876504864831311230903231853782211098328332032194323189488809591398679664247360764527754428328762931441406954809151259021668869563685817241588231444908228838608082428130338710346412970363387439583946410084160149076788788617732820880806509097810552239430499415981385417446470743494445722629431558429891587574756218277464963258577275524488561386354109765973574311320630220144278105442624162842923584255299941136085402450977483585977506145599294395658984698090883190090937290375523021302496325352623671603168462821184097255802323695925862730327897900876477305227635854512297795771824565069717181034370288274644643337138906085363461829928180289558377414206804956234654755473578983375175758746338236617005959422317814113353940059738823507223255010130787914249333759784326332055919701745107665378373781987119596376723997878748194996353872902563032248103551111814263431816996984623073570400384276057052719977473822917954423968208467494174534231012010652485253870662243867622894405812828065424396204684710566510941296125868767745583207754694670249421206380781887197657186715786107194573122761203758726251543616869120609761546099002389451729161648004705939550096992169832679332524536293122822796849626264744891706820784980738424960911824774754468994202003144402727280437415327878678259634531877754566955883749653202517533780336388312442221873150343291592524451631289217518412968970218623946558252356667629588007067322635409751404599692214944294078782403278543658348165810570237035743544393973186524665382245127147978665452582695466160157712226982393847410186932427619626091984296441939139119434922677585377873185761473452124319198835395917268219466702734526693785942747288345741191981383670976103635398035004952723801957968658802203457688269811561517894534878403927868986732016079190675495196152596392142399495195127690632584830863883614265865129317717020983780587390302854072342086100098295975301583118939513863538422212859939843871870015050822541596288739648743510048399437188243906477248575672330905654737871464975523187577385114176175943307619395904461715408457735793851951299691431748523409517961236706893160913963105304970215072108511832386466170341833044965965434359373615328572200109248523926404219027536654770991969654371697283179174148201538686468790774009670608573427589903600402900720574265441676999317813932506281222797447927573810162180609225468569361360267412147137485193779451291902821460143883025174602801050660175250204319194156233136155750043017162250576162095335312379899980129305475920235065819607174954073582649609768006694458372396797501108652292053895746168912948355912338809905585077191887688691993858734902848759354544373951947280559719352862698562803476790040052606906545149068542291463607104903758674838216258636988823507161885506727806765517625258523490584011453593644574728289015623565722600429812087042985674612956394597448710561614975097866801574489322034617228191729255886879503709217417909210889105209152543310386892443842628982981615551810631284574282547939121319046817518033006317189012180048826162654426630486186469677715086494979792305507588952459214296536447626458356836031379797494215369150201830199064249277005619384523677454507046048402036121305304067418364510405598125042663317051183882010770270753848398152774129243916467919767980518559987801867450914577788766166114183974328192295820606486159686020287042445271801515478526278189559667989295128034281338310541990218671689424305447928278603906680684544994016967914175728900028340169159278169391211938660185660730119814950350662532674856852776314409540926520067828800571502071955964796951848792482369999724718952828848092080024027939782028182866896371071459141368205671325831795419392464699557353479346695464466272876879385179225639719841840753851832548735420031270685886721885692571820556205302197299249548343314302912051030347832468024460832306165815284469123400133570937928958810245763155245290868772495769908859461946981601194752988958422212156294816566484907422747610399634223877978712493377195444738646375109073783938268668772417027820026066287310401516169944696086389788729794625117122145381321105035157552294979128233388143276619035113348237995288623532547122873673276062280107417651441286048304640519288043994185298948903326070316124571621163205163622245192511898370750510564299607412923291032505287348341968300756019661836417565061027208968862019400519979606043359906201569127807602098771289105036961221228316126609949113340658701354908919263024627267708322736034031439976672512020234497207404588884759690491096206360708481594787328647436667634415887983775835416579472234855893726745334707567004396892560475619419798400642286330075144447213381627203140721285552171686944996764794877319736561410030739869543530946231098496219569510586310399489638421334805954594165946857375821563313612984606031741026420033022962523556016198133014999357981026722537241732694058605108338755596172297593920483471338789566697628074941638301885821380591977340544913379480335285080952715155997884101447562739054943922307447015211577739110544744236015499636484141199895435621293260629154374783928775996389200788184992329622920261072074933638038914701573621099103071889158076400449277701013571015299754632809366603566292609995584100257282600224388854312045703214457515098551451415587092275412167223452538462162316671021180223797165832284928304325050074485989446496942238314655702256200003833787545387557800245641867674832163198126768682279671994299844983565211407324347789043725074663627775195862344181189025826481020052372928196351085578434935470355205370242415626235829189332489942080922917584291722950369049113822459669222279399660934596039814066759321584386323817736264169852849114768375790418087048101943122033560945694020543816949851309881939236445092493621041947603060344873257763663982563723962396004379258036888852586430747446161175439194320387964334082985653594027877273452778345562615488829210684860646309822873705247051132258146054356647974133004956835346321034364037587733763724505428461457027151042782019924075857256552029910872041920341482551735439292490345199231834086630121275479545456295663050949722947989625826125614630785886479891597247689166048882696962200993678427875596332461388953251174724369558110103360327640327241326977999536798142762338107160084893200229707162265727956576040662469577880948450941015721475817030346229563033565807703221215739903014889494718435191061679824281236869651028255393579185911423564336541491054036069122229914379816268455920900620997072106337924008284333614786466923041965304814028398620367379278273083217631732670320578068748457491769989027033824820607003625990460441679810347141984009380744478634579987296264702548962690314825578915216776274845753671877644936946953610244413368423146245394312532180976976643249387815105140042174310816003353523449744334315253863552893392095763890501963223442551920266338682146305654175315994427834606080456016893771581396406739382351138669833529574809475400423425806395295274034056346733788432258607554048643296964325561387609338941435743315270468356901467112431212670594182064901859407325969125698930254550111372577341375527019133354556349494917304147722730032929668506734396982511176392709545310442216023884395507251184668672001133318091870442831224805612244775095617634388682788823436643751966026136194018805728536632250012503305403422924826744186683194157095338567971993123817632081788080999983560723882741170546329360270473629362024877535779579257301610867113505011792919728416241465706042396638301786888174957101300527531270035242857199303416863761553409627529461840021518813875282312299467030360557098561064355139518185500146910037554892769585367402359191900526402534998736542911542976369195020239669975608975337555493699045900178099813264904826551585053417695420103082612767631401472111005405274358252499948052666570376560533728313146232486517173723612248894509798850649944066550754646005382183252444690793095382879787647329069805144323547760406620472990751605158729137541277996980612559231965488147852606565055992061842904944122001240365488605329897352496910048667116509646231099352057472375147386936208096167252479683373845736124592199085542486471447086011875711263014292563464844644149824034758075897917484866257111183081136737409507808494362253907962501898664977704116666158541236102495456928548206370443607485146800581086886788947695974727124549902504397449574790505328966150726554456355113207657554243066404055079502124517219844684857954268853499211990167925563202451755802905424308323976901979457053238861436617231998195206623467980539490116457112030586048005684552254982890150245305440417938949709759829484491614138136076515488682490352090130898349303019584482035709938871103026112523629633557911870502669928661749356488881850118594265989499019775467497130642597972075524896818326732785338039293174102981805259326583059209416699157853174329571495124481589305685684503242971835305800140916791152530636533512202043407323716919908968353388224531973729918650523883492432998350713600230527007894755432335965526069383047764351599985712089294279491754523335282376255921703196876627031441732814388722884797905014402027143178877247513905636261460172910804529255474347650475923725423026179609265474590419045015605219924788054754800060086686160814467635743247624189498308855178456344221849512036184633652192110642290058594576156556536540427312241946371929907052137961697761078117203832173517020120999291228709754146890455257028154300664990389247003552410214428998727842663304995853936194322513617025195493927034957577939578332013515488410367877922823241708118648211520933367689833486361453353476531195537515525257186576439843354177391313662261627538083540159727871217126566512812471765677896011451419259286003561817503918628682041082129744965008624702902889560938867991901534307794526795457877968878869467037288304774766266136122031763834528376857940561059350747300881596619038181771321963907853017025166312852787502660257482447380067886883977235817552562972803449994361095187165872322711198553726913416581577208308831141114872036788693327551966011817210241979787576612540793507180884700340731063128463741873253189630858131364212842171231095972837561392911512745214568123264157132804290766445046266644149216086818720886225696494560838647762032577244947503276446786518336446284740607580883461596184182403768679244793961557621224371093768693685406808324558904520066899054448157665950893171623146527847499330671536465691243104043142069622256781360427502473526558266410523900406771395316452396238917027754502965271920769937589951824171696105880865713317865336133221736549106183882572597715401570069029838646662104563154629260344139044046774061812554400916573358479213039281823777608087941122381645711017702706783965516933247298261865173268924123391722977648845762180172663590122880857193585979127590928954156020007352007221931826862723941501980088382482991593382325043252118897924047659864771672202203663457569675825044329711803013761887732286118995872570259669143088113100324616208522130544492630859548209390494057054961542456227894014965396948566806297356357085049931130205238943313816318062702941287162234616787865156595232744405562391009496869963710733076281107496490835319760421007667021362764359935815707675518031709552378454775571067304905092381371399088729874738115410354015177023614366392636047668682621604607791636025079125584588867361223969470113613120089062515797814715873086836454491404892170827857524945695867959921971466680697304669513203912188740772408847633332657879451370485324626038736664548240268961384080179161285581886607350540822929332239416517248199945913791836987959280027637215700167062707006543805052667070219654080220341369617627844531645741333422017378596675228408112377213436013758215810278532314399406832811141563732771057875223148833766706156513251174534329641188126491158836335217719398688171793233599685842482513095104545677023981764310179613372764925335478627607682897860884646041794725426888530056165728319702355665450883541525218168229714505665206774956896337617592123820892797079294551090938573891722596316723574882662614600239660403845869203431633032672125077246624185333481381845331903845772232231337011700653264934591673089685201317721721340525321293036127894406301112961979806199838761754116143645541599024725596061110625648505161179684840195488338578024400825153417862236701289237791386525451773488692589888896622787482673944634979194293140507302999899176357962274615812602217462125616217996047960478801123289398775897987746586828522072592446624563283187483401301063647559254923976533927752882268599531865594769334928305726686395872198208920414061714303879056133583191042160488956519486111198941178148412369432823366370061631942188347081253558531842291358422561313203112101640352530932557204218626599443079245830982295166352466813092288698211287699002111571371600048761550286424520554246639061863539932857869796522729165966517241905341578493912902256093208820052190832722921027388863357096840694797626859792184441351585533591079508789734910646787302913671454371132585430412192030756572601258498455447944502515564736006838412414290442641718950533988958894385999401208619068572614942978345199840642313449238163655084567350351142794940366662253913585779077084246347758632123516776659208854059509608589778839783156823113781341560784986526452722074690489565863101603520477571242700705484784776063306724726154177647114873887594052512941605779110542980710367795738076948245128353900328085901156755732757018599538378247080442975547035256614927933764645945981471098211448488592544796385790400372182407602781217771801887634717775796925747167282548263428526883815666901471861350295427476940288986847973756793841643954680091997189136409914869137815883471983473376985394918562767847769044105975955399103749996021419272666099266619605233911015562626421318425101871481035938970017096486355074384772716570997129167001886838167460182569845255649733344730765522978480708267671597376972367558057901701737795745122203011331256944458326666685373703016262780524848415393614498922750318795012231843446391727502764274350236301814447256750104894053952140222035865815932914482373250232586070644747505022814260623522215355038739168726390426849643570234876950581488163181025340707586527586269299598330879992608818719942474072536333854528228615158201367285693229134833882122392222749050744665506518907917228136073137676924278414732445042103677582238885967931843973866104694381180925743723311905617285371396652490161875803295189602414296165705811057756658413575291446034974994138596967886181594998036613300125936197385725317509841140910803635205520944721749131291144883530744577557368595499808471755877167855359411673579142120030062645478856238707567331887290768557696470072349380442067836170171363194726981497217466384756580735677533805389840861676461920298305109258146199572465834738932208600922955722679304789473469312308186078625870874137684139686046603876381099508874891301683248268713907811676841206036192195466332288797411351372618366129500042529787232528333760294401414400279717862161589714524091697004108015066075927113889987700630078979989778351242546931430479834670654275990219675135851230609250895234148177636606515960216016941196250447022478645360693246363951861730463448935427026951211010086361947185482516020462682813542455416632087572679232696286183206823927912378257935461602585498479506980820036205745448248655452513190540248794400470530653602719378522173569066078171687214510053687953946894994235183842664818948874589823082045186757001764116671558809992118701890329966810737877647885715862391827249684240584963872130052747014206122075362796635439290665720224692442627659088202999877648783429308911651511924331124938320135993581650108211031406880492894501653725511267631281395769031405631760354715244033692816987399848682786992591639890355090945325486656807504610056106952572157713284693590444581758156159729078980782843844189985682506814810696579113616279011385373722749960443669266890609878727375427568250407034500414869142503628677431642870055950463521402001323256245471603407700415155412517521749669323734954679886942385334901257610268097619559424561826010982451057700068196661039196617705339046259616023427893834151009758647481976778816504104206923488547799883382692226939567703088823407463389817960991134912087123012448480101260348770351149431567931694994017824793186310759619637071138727874752656627532394151972871573491683081176960710515744121363842431209715672282697417802837433951792736427558337606557595738983670253284751825376022272851875245582358266794982774734768434903438891626861771530958089973479281890171370920488664012590795249071042180345699963265970460718785139972281906219301565973581215263868996162615351779696026246984993186333637288519295934558385689002203723685657116687479210188243463605346263473979055274343819806189701195504858810808319773386877504363618860439515120551733935309505822935658746629969478822273905038383211893963769293839961179303788501892137467603652380927865049942559364885797516499628298357821304073375694124255660570490991775109191182510429887576263794934861108170979691891066946179969852877810868733483538324462046915043592294723303624386796742604290739314619613650501366020946527587900711925272522589827617403517247330189133345420018630690273876462533860737735194788518739022177022363142520704338272357898239210299418460289003967924440931027186043600296578057492031298112264766083202656140546413595967179016126282787296025291914095327555264934861124596364537671622715196340662425017020515560507707021938275191114623193778651311461354461033255430431486503833155966653012252478961332775159842267669680352175675043564698527900062858549457148760919190558247327362111923202290649521472979262632612227682377169386553987895087577452249932065621696702496120262541812847572197106219079436162606264536895499586927284648751588748071033263496439073698326171886927804399461979909575040299352816259624857796796133690033676397420126122255999991076915088777119326704833563598821672376310681684029202194973536153946567903445399077142409652453518897810837911460599622343214884396126518018229226829005564974318139682155790204879869515624567443196059519489660049239385436749596917955723074107589559070643636528766450096694134722164487746543936919021835879054035421085721871357857493919303235432284829208117329490288309526181411367223535789758085317846597981320155428125432656845087838106169379712540337203933517003411426842203542806534789193928874606453901796504271411965766249789170274747687263366159427038525364279116227954269084075803855149586540077628223729213314023720488472557537424131642568068096372732918043030295928419876179017387071076117944719152570531416998693268272007460325905464815666961300597352372419236642069991357712377332706705574637186289670862268066092837990976822267112354309543022216009927532309189927779433541744703079471453030415722872548890165002087879736282541153122955127197410761476655059320204063155784491414677452827063253517840023904973599145668549296833833669094729250226468736083427232588056624303721343255422599827144905877261134521583121174271201670390626788507357543539950722848753422358240064266108137523343348420788642425355821369504179518837770495598747267646121292418403234320585410391155212482096048721666522249280517691623317908199027378859292643127722720143329823613113152521249293173656355174469790157013063350197830355473591470615809268722240439637066086340633963259052907571565555392872807242773294307326357793816153386422110387945352507373406017026604894479840655493963581204765222044494036052640408622837641029012468060762490315096457983526365981148649287211985588788985888979197906035305062321155651463410936257325811966537389858102492866381311685100100024225697092164632618145634065456729700893010011074062132487598456470684267378856603563042028144818388101565342026099194918688079320486085188843932191738628983368903550828912330349838065222977452682540860852595873636573226400780255880012861614568702468736683003599518032156156218271241192571825604529508987994266100324391413159383698413437917385073495846593508875263154200262148667181690630514616728607606440279159888710244038995983057012060349011650337832088967208439284801679233951591479126916108731478323923351797611825871050357469524223152967119681587569866352573218429180630326254163795815594427316249407393565405605625570726686938151485781923985725290884366422905824756353915181478349153286253024262204677841552738801414130824015114034986820042216976852146021698559437413721095680478734814606020907040314005296733257747430941575413938545470714931337738788272859197469921068073579520083377027808643640103063354452023067364794322809403591544665241792197138888529611012193795591021989644655422430812173985850329450666560093641409681357767479184348124873866473949861208376353737461357468942491407289940218804449513786894802442273439400497257899222222606298774498137746647601199268560599995133156462657172120226760985110636161450850857923252188179058182110376076188205386173630230760314399584466085484909547738961794521232810482986498116275571367617483227424455561125829507998358338838021354442182968244353071810798615121705229141329916271088740117261558369311382658596592508181149056095277398724271681369530511976149462907487685324519767325340782679101299649335609370284169476637402665517116551705310604128314762095038280422692244024887038047938042451793891399391153205447069139601752937635756901090928822213649286117327885461724920354864284184475162658008148720252319451591575934190005246495219389329011747280879636824882192078000681670290694497273970104347634413620809784294284925872093331164902098183539966061450540185588839500558045200050636513358771886641947435642454453825257180609594045597157654639917228571920515921637360384288028695601651418580090932040076372567196117445490980524067051085401010985274278288123942441823544472194867657159481081446557063197557034359914768075284288945650692657606946622520347550699497671099891379270036117292820930273581396505257717719719683744203684526131731510230395370637159606071999336935988929688909482231009960956372103459238157714749598373837962764315228813994875621902705114247684629471016299796986526784980644184153581334365124427097675330362858882739971809389990228209336010136425381741386909721840984760358081053896261877230827817377998628498760323496917127798837026748559064324739904006802630252510296491695402932205364778430490783032156955762354767642993789216414855742453531640669086587391641055027176401898457611604735215787147642880665789171503112093735200088842424952673979874617680848953498952571394238466287059692317430675128097663784987149288460906245677349752556641889179661323414812903094072126707334082477714750302233886902144629909237627359437493352453003242297615394471797362326684984676307841679174384312048949446156152614461603954735675463603119447934574868511653813031866756305477547587161566501238127908586547273559056885807438968582816256352176724404158160292989406850614426202653345810440576931838801612760449369977439286111568902190173022511967762187220797658952561033571367784423814939094682010954511163264953050861184249420095756985931175940384769123601024936165599138694682548850817989870047589254519615302632772804929306679406200638836127453650541290007968160220589542440487779078331007134877758076683286163994833469722331109679319736261822689915386985750480579848618828820087489243903842386099661415048200243722514855531309831786081776390576962919787343026170175203126093494041826950125725473644492950228622733874580512146750344438054611274395976406956177077440337326265467215182616093569732389222943577561582729822314355024586981283373695462383494066394846034130246326160697921473543583362657157941968790169693875589057721974748493993069773675081964304852481014196382079499078402862545644137377965547169712654634775602018792724213285802847835444986542750391978853941340764174143059469166533800478925943199142956882952209353529339896710801384152109777889983483467034230671164597444232191005536605720027822059593676907464672791217395338666031855573118799888741153227337075341620099725517476378671399184932188642810913622902583304140056937512847339577549965958131817217059369178111319523858710852200168235232407328107682466681120539410911974891774056038002423785693094761422145498245995312912092663362332269863412472376717421137771890576969051029672292047803368146706075119473015866923089070428040776669049412226459586787385814287958036458968087828681669380313779838854873691954717475828416787109949940520530078561103427388345769403354033762532541786325118493607728989137947571017432682832929465910902925526442520550485048355310039157609113280516887762226244861364316858664747597666192619466598554894298358399761459479605165127621270737150849251199454349772396303605754095856702185428266876946064287500887866644028207751379889627303896380537688094895987384275398160795676576872354334813033571967860936906864875043548643413625933575934333267300604467490322084017607723057076619598074821897469373020493560036407429770903061927949446806885299322807337116733919607387203076382842272269542306926100276766141806052207816802068091777307627649940308416676325550704712024654597593560987203964697659366840947330713214149305096192734198143450932274413170171640099390766269989949270634732826330561708405850139388771277000904045983348694193116615320250959653548016581401968609404633271311225755387710022499794181902506883956322433060868875582815269312388887087569994567162792387720908838376128708723531622850612702365543194427041099868883568224293007573002865168131902651090639428389303623988795159410052198746521342615860351713123821359431313660508508994435905791223428530797894109666605581549321400876270580965602636648468712106948673109603544612836238096619004193328767694690815692630859377185982779209302199902818036336659508131233179875805743248887244420720733370529429186385843705959532761093907009901861713210890848147451490415967567146329235984143373286317997973885728574462002842982164569180231858499014292091403299244025295979340174595087672565528493918722011254871791009143233586617711394463605385840310443738944301142274159523670561905117548014643790432740550237641673640492873501402971529283943453432409856858038658948737819688685609780614041188976246563467615392228933425572464683580077388919512696186096900499261905863963719776405756367296714007540026778642125052630896195562145435131600459472701605525706551144098384057683569330017349199284198112806536119595015397971061835321511347063317234356681155216463696441740195322603015775142784967677732363778769981842862710390832812711086447404724513444744969960466477081202530679315297140124665184869678676570479989895380631383889582219404754251475836850436741340857471505226289582120925345449267954687192236384265233580177180294592632373761780451379309947964216506394262050061020117334435885347051820113697358391135176916778122219866053264230029404038948684831699573312038252450694713713327892275534235489534592163832847081663395036728067519047673363006712128632856936313291407995236020975723955523175687516271974082784135213054725617597659362962191681457446024105190833422781205066893262728027052228270318839047777436290039260969717896392040670292450210493567114383883970870982829373341342276990061037491495341441336041487744191899616315769064872127866011444611345740745656778779805310323668749306010620655445056536773451134671955916281473090039031198196674062183318011034945958019727407736778318438217025170977115787371177365584746460762611990265685779234205770208221366060137432107054824555744041386522893639755366798393194414351342867711694632774341824493891689584041577667786462327581576300019015007210609016020462165035147538886893122247909565627113070916990716087107521721596832800563408590263881070171595592427254938400441250160711524301614360647590729333768123675158662125634750830930200941734248887367450119318260194708846908618439928563409290312070322389015332585065957943512113697394301839900444455149213480219668469817862815753644322525121287626940972178129494079568644116317643566480434344067223563230975747898845088665303269540524518134210720912083343078914157170002145838092640201370115008398813837406228245832166415111534886414338522899446685492395091087277327291786663276376819527184979779396364970357149425990059138674624134178529022248144402299909561720686289986875343410380740787577302989620493268488533679062368994069106921438526878230111568362829915778352950588385760023223185014920402945373747160813500488485405004004436788727199659290301098597910694897586267584895780955661847752681949735587699206532415798071739763716325150382874247254443194796315569659691567737954134630677135745621735824642298833961126455183690700297829643598438984018616113325078931483900519992673938649900920138208670680315294839863987878623507476672947420027945255071017250210274536540156124375774453994829382558874297790807720244014641310639016430749864474419224209238596403661133269161917322607709206814764197057316619745883309384198970221529192518125903162944791782421478939492740689440406881203160459689786184084506093429682791334530541479790774735147702337309485263176922452619223011589939694766345315633311764169851626035962657969678592343875997907956321789669960780097883478794770678965850850350248138460559189365441805047111706280757067445231604032799057484790574406319402886400793367337515047827813769973618530936668589727725274579716082826731281028624415265227761135556165516708382113706010809808567291037068775690878256692874934820336626516651273254844070126776415512684745586705213939887861418424113419912769932889185359527406148341348409656403108872781983924704736522802648613122074389874617332231306494133709631603113346048718990301573478536492729327348717757035473231373226466421751134996199870858638780453383848771740133574701124846631315095369044835182397425457067003483880484803865772257850910985814950354360488749609487890942750443348296508066755154590453010167919533094790643963080510220338599442010970700872372744168685650876550499064384881451405114328271209271026271363371536668903157669270818230752154476326862547034766532349061360947247997650497437801566715884825966514856738763852511629517708644608326721666998784100471233550880428155066839061896799420384963633350744713632519605102430581189669102341411138827832776731775178297694538309220235183533156920863459238871083325391191380459136949953100357655426438670199436616336321501219396955273719853267795767378893519257087824075572580442365556846351530761100783921774662931110415366499611677592669271795801654532756280737077974182135236234520325935249320860693525324019246375947298199800763134288022544939002987788437498009909751072723053930155222158294649942597129394410168309773223454749510010631148750750143106763342610415849523894535013163243052478760837833771845915981988011399291409431535915952859438775154516073324014986859812497104271100251123150314862771349312609951529494165766885791396446558345942754700203264428099839360047820634220609484636343938703901953446340675352976547889164165534123067180614182760895008345977078571273824882271309444454518351309963156085990071397664048787900810860033934109805470671017544532933498703621158674934972443357030293890833128436201446703405193601635836720117888795188218928707282322351220079183838407291877425703147135306286047338571083073082969240715970980680003233013355727259637117056306424829663296261729818763467854567108505628342479963967349631897670361041086387088493981879219380596032964013478415383914866738118922919502563922586887929463980166989867053186990019780532286475204001800584185022049281565920295253442837531805472151928106245541529680722250020626570592911656490481380128545816800339862156738067134078900468520354275811653921282301646377221122517438501549454838460886379839806570830827927692993469862734350827372554461753011965266936247550962219085573980744609090225869447029652582829997287005490480983808386307344820097612132197801809324398524660606540989394274667274863882188437666189064611915866154159404828877478515103740726198378181858577618363809684425122349825233166328464138162328113642962485832007052042960560942990210431137713137937764716795075763171385783312560277393331894128305375658904953798782076484418585715244714008532060787262225006957362961239987271989299138832830394906567583459311296772466674136023114422745903290004677926915594966144740944487867802071262483988172673590603768735522402086084148736608099494869741496739969440575210384855699988719635976396596628676660874458095689392205937480870853747017348143066236217512100511072494787965625578332397516559488906604111595140013878597799825743549534326870608603917739770910847407605635340531986941393898120868961654632893737419224031299543460475738380082366974117884976695424571659853679305690384535483522945057257312787184359476699338395229759234001927342016685602960251790252627491633392953173550515704038240505608806165710516031945522800325157320226133623014058463968518202440038161235709480554726928858559382712353606190666535727732249943546713778079163430613024940726381873922202980919439314348153577776233934522672819672309690537589407517560746219450881936211049987861655416595916648941915945069308796823026487522308026009911593446879899079268098028043464852039397857602016767959116901998854485764417828406555877216992998946692306172655775300523418591908514233886402547853378770306125780381935146104597731359030583665479949606780542353424265052509955894500102091299900750657644616233392261988309070836022127617237409428651707350350214011147395741194523538310555095966906892196442579520454290495406566930444203063996210464409938518393739147297217175599857588702075378214796726713841684318138863037953824882202372931198808009179485353315421828182937235828036349825965563392778999967376344142125324668637799303019044625276764650032007837486987379516070694059407471585034867193904583218047150436774466824624894121100183930957582496291879520774487183714860302692903359159456363705279037300371283540030877345385662803905287794959617905422643076639309089562123107210266445106400063426943678894112043703368156007722938095592462664159554744997143390332549588843377688603802773866833835254064609664438725993367891641221730758842119070759061329324568579173480852432973358258031407337703589189431814241037529046668084405679191250082895995781078710615138003089189255395129817961026964127322926620175161569469579111483296648762470786628633477304795706948961556023482444208104442092911646447590439937490140232239123124871666564590128894481435068771636643291456656930125445256551147211063078166107453859832780975224834644241454346111577786857789737931965206931903315402106891709174062479270535024946503911058168167864449409811813282530724686644785092013020506057189143937964218589769527891340587877165490925287616155969513829308634797726110407183353015389645058728005965119457958226447102958814704341648805095916404669684747435842433823944576807073355021737113923723142292830564316345239666420276471125725524289340671869362950469488594464837321466619581310361003768846046181366748628443524735996974292090552545650468178809228283613560343161434572705325085637912483423208531564722349251617019716051657888681170051132861891792989789036652364622276827631688014915359959949477063973004323767594116929797097093356414931016301578813615754008259316526131506833226150317059269507841626981317447902266418920115516345451244453067418069025160764305481605077974707865270370086948068853699902939826152442069635716523903363779331837030522009605727313871468377279549187125507280029513497126443898397053179728169006578402583775741072780717104804570440828331894979170861439771912815240190202606655982678774590596279351545565923215997616373036643025187175010115150843763510306177324806290897132129943857699237348875708138472753659018181690870646530324279531990535842338390340544563907334531647978442660102972484259085862013393841859380426714795150473540623205670836246635887533911605085537058307265085041655840745106463109601524152840382789526815259868044553067809544749507229733762533983342517936528564888923717923918942462203108924220382257163297401031504926565296940718124820212032868971079324422661681525750842977943137466605152092580324747203343970667885783142532307854928803761008910865378691397562935201707010562197278893100974254565700731059332472724977007358595281983713439742826990632337101432960828357729035286622190205064430929060481155373361313165804126560078618016770399857018931359942382080447765485400664487128954852791956538845451742953422911313881723563940178998293931777339405856344595957996071262755529383612009315170215252950448502359160451634873642719002411808087818102042221095930344059562610567588407493331878631995787292581950202794110267536050062868539487614654633107412148968128905875028045417728991461690303038556280806920327345724267375340222316503054124623069329126694166050965933106121079716597580454501975453795743779794412886731418985590956629656300642798199407606158096375946325243510554386633860161931221233906195994680552454292276233768374275243179442920016434895385222766468615615759457341349767684790569820371777488597192201638697406200865204797156846922798629977340440545457272142646038176710627792179579354803792377227827871100432757824201011150788511499546689412724454385824621040754481680244732749863232005041122585495088769471559497999474672453737458279376912282558954981864963605484864523735766755489934132672027140069802043575477626305101010796246842068581182165903359754366389833765268042189184355121232985682537307453701693755405606184020564098310832276690587033104446232590892713243491048980462765193629641455657040073249048405531779232496002980234505288340761359903203410456185856092228834498852996099067857632781759720787209554773932540989835628780319745506437306720017629259374778213984118970086638806959514355138665160866939357881374884005698481673067786396974965355721180105709556248507981685784651054319481684128091913364271771990433796011557604750110374212362496169835349677521904351159656439661065691813372777007912650174443153436481806127327378830404712745317591704589173786216244608690175492194070819067792915037010524945681773925037322590981599423481008828534299884855881901419997764536252881581453821656938047429661229568651413336740277870643365163593369857286986444232209378291655097360976751447331051519574341472101184045728605863667282566729881397993892396191721252790797014786318721435949521231338468486042543143837621427413454333490153127270056746750443485698965305501809263793172152164970335845389474133937070043739904207763253295109299966431147151050784754347063720614757240206002011469899704334521179424598817478201333614090686995739066675723067587851822767022280567761567728012380799328512201401928124640303411147614740219465953655859612323247318194718159181606221050606616786691195924755330711232314035849195168714877243274191725870253541194738620274685123771543545992720380005277364502301482579184993512363055054990277039750674282344560201541495943554215196849035389512087459203856392592075123419584290839695886603467059855706883310058914858054060451883492499229505789227287305744683834551701009505274684697178660086569322784823312370401266110842972226502379473934237220276686523699410071188594099361260043851311614728682746757494960944867452104779827360995281048371712946399936662587629829571078780879282817366156939582930521923462442508952026738960887986577290682499116380624680356041737874758241607677611873121565149769935623882059786544465489963094563370057433603462622192632318771773525592915050070022903799135437640023318895851157122768155257388843478446101036123621043299243956665484926877399392048758219815376717374465029908271852278023130134925155099608982746569786925547537977576373026236352994986822573260552723957819297298480252239135066231938664489621509645626985358033551774681937329231615149616604416436642008069489106521575066706457960027628977017846614676295024097744695088275692201474803222172533386194149775555688072504952066720362883804170341065088928308907063440453173406217340894484695163307568325069015094579051614939811316644549111408142335218949856489976148614112452175185253943397263541693182486007255187629992895454328113910540264608399425259559001320019256952573051401759180489808806260557313016090277358234739624992586164603540206039125453295616700462967180776583237061875742902718888211511615572332248030008455299766872122021800929048608475367048831410338791647500839091964695302131941916925796957001425712630574333177038394207327343633227724272296692631281997050252799504942447447280553525584032300633263466379240254662870700827208381944232645069948795181633761142309836218402663620468191740083092395499690421934222936751809768575844832954320714511759544107038608852101518265384976870930295845524461283413887681780518687016608570175576454528478623823336551247255029175792975538224107791754047630151644456405200431898457070555371624070260895184741680291153886449086215924173208645102100533139865297471655335979895842263489306685437738179229091212456863777024202226547020508120005161054562591940558517204395283079032147148188164317380939170997614777644246728398514502255487303956996838968298072563588092092165796075916450511562215386760874966234785823144522247635271377637784093378332478304796825645930159562233007528866061432467763201060828460210191460340241349750351440759109784633995470654248929024106867596618968775519038354999329593608693132298173734431912684330725988668695928851229124547014484803013951007821644911587308398550429724979708324585263767996736579677280859232307540346686068114133934826852310478760581049123564758830857361856562084739478249584889519135479673409102981224679278164816007179479366463853257118830991217059608410936073045228421567814990427470231174115001975908198311267077187697110664988708461320041397497062983214824543536841983291538427796336407984758653938695337058246133368772616221317379401353597337440178124842497444941349916645278084343620092554049460032603128753205974564766467975676026594399258062468780804933597662007670364312395972166056281218393023290791429645752760259369995841791471053621111719283950218223192693690599106480844552602475989816831932860876960991928979834193319664108101397466886200844014047126393743499259546239734431773407989600673214124964705630528660327232827237956900674040067855205816875567641530865439935129178557759820880237427739026951916313971473936356823430243016826808167599571747567168571183778516495131085857643906385698450782559899880486583546356676301657744703855943210999763592707809232472468443103457858023750692962906347350226084163616221159159179728379801537996149336928599239195307076184592427668853067654068645986732074775540389262950842059465447009855184221339508924979557416019924413477487923961636872565747671655047590395703587822536225412931564424949070347146181914273530974896259028577658059210994093075576294108563183230342033449162562145995850660389645251593341214531718420301160221885017257012974321681945720897385594861520451488106929727093981101781550223549237305522629808523823849364275969867255748472170967577818993258571328314779654478472937188651867082472597375586749766667466031620129545884258537090142089314517492744691052860998856914113489194829717707957568965643818543578538401587468428156358126737339897444470463337080681271172883849324639177386088590584080561176448187280886439459046799438979095560571064619349012403393584359961682649309888487456506345831730769395396089548858985823413684201833066968989014297661958035866085608854400029686479141751958124081990436829629930986513740241745462168473939063609796709932149279695824122947833552987655576343865198755724114553179221168322763875891359900282965364023254291099025769685727670533351240169644883155679931899585022277834863572332672683324825565721291740047852966295405732034095405362806446786008262606664573821123850825767454502381366899514249519469280926537083502445221123945230890611467091055857919041171053546892581934362969823924409125259960120011230342059792380761080919871875744744229894506416425209585894703179548616308174792924525794160839657793211487536021106945918880114021334476207319064129183851437756180318150319616880176831812686363225794489309622904719657709933253514181149569786834323861828173775582940349940577258578079871500004659422579332506038912952833750347574789241269441643402553608068014363960204787732409761261179991788322040681444437459024045250617108413989041987304853067662426963505697352046331324031815571915384536020795799895423521048198777578359342608500125294994016522054476453095083958704732605969141176180745092618373473366613058792938016505476137851669412193127970810991768579359804556122492785039552767642197827466410631821178403709228254604032199637539527908306917376082035661217007362437129531218988645260731502157075047359746472157526412256562679554323274014958488958767548670341795126477611714174867682874769057825630462966690936961942687072744131248807937322734736479575169152412528743678740698826207426143735647409678920341801128753901834314933541685144358173197094710320345797528875524323186650693936658348003234134630061215687212226709819364652148715019247778982612839732455508597739542289976846811994078910045032805224419347349211452855122064172216157501933670064400271071632066652588832526046200630785068573869241853914797294758747798761324063171793074285169024993690720449750596731231929744600242148631791081719889351933824051680154468923531519325878457863462304279602609219060924844652444401691516248506941971597896853846416414553333365281967263641251533665259468195144493868160881462397123698331999863469186357448883681983519524072341441926633252739390877490350577584991462152453270744021110555483870235679324552781135014410968474033268340260958894549592815329777096299484366638697542582890925260767592340575348989312262357986472242704761291890336060650017848746870572497748949258938551996071203353759047053944075982145301832428516559929375308402018325378997307815549313557031429413141495018146409077416028039771862784160557258473072716430783487985829417341543231655520718133799873702115718207990045360848771244437198936436751781873902954255352468838708553904426929469208840099875775461787743062030249525095595691692306724532824577112293478461969251710057015417693394086668886295098462261238719856277192545031159644064350622815314918448598571276758596500912719911504178192593342891338087169308036783038339658443792179243393241047612927864676356015827270152449236783447959444862692740545788902360082638797323970016406995404071953267022964194742214953082349930728114804905350332609483105418218919471026828015434066221549844008143130248971410768156110790161950863373799053527295666515360390220023122140670859341280841778518105875001266006110414822860076833299032250905833189871394340329190118003112411070304329159267838132789708905292354263310291942921558129838025450332385564756814800743989333953355932530049365365779654005420483450199957424021651009571521298054073513225131568125473764258871966828566816268422865862673332002842258254887827002980909864633487738688776297448905771130338046536151704659026098090761250239305404664817738028550401518108852919884265367433356114382412795972888884147630340136920095591888601949272737990817668824548829904956489643158165814952661810498426639304437363790823818050774115852519959482126445417549076221538890326358117518538539600319942997678473206335197791450624920127521945864934252279276418573100787990358644979552209279020731087430747182414562832823623876288678285452507967848537351625462781065025501776854053112173152147262918121751637868257270705725225866004984821944103215307301512094045664156203180100255052520192604587504783075635705812762413497156131012046064587428852714800441529909540957229899473386900625595646584510207932785264275614173789713934161444426429475816080622199746369402389969632375164641793862041893912386075985451384144643362937768589157200571412749736840147955185335375346183740874898138912758369539882407749692148053330036122663739895229572583978936598296975611213248924562588120781829360398794760057728200639539999006443465584678416111232263076369264656337415104815056065937811110397442303991938628616975423299836066731348908257328638899603019399072241655219112901075553546181295810514490156605862217076001898187473395742730329040191398152455679926924908191208285269731213885723589381869530992395112960468686830683045845054634209488950017062108906040714235607719864991378685301865882071879903311639774769901803065088760237034472530700929773619419551896667803571163811078104124693332573190838346979016676600552087317392215239221301816951233532063347170000581852121533616857023237673648667238204573682888192031876583032846202635541474226419079879048780593972894823967932590601476816667840106497823453268389645798654196685750444249364575517652711466170296527432840772235753809833904918392879716163134140382473642687697302413366988307187552435646998705343401699113714003382834956135755143415562881759436000007836381672601445263972822636206538849367596028637165140580575707413980058115738841488408794875057600666054078392398861759790805519120724709800370260679930781246277207698458113668456320551292603867705875598989425653321043349741615358598356467195060869256482512916233245111668515577123182771698543939720904532074839377565538006355746776878577267125987546173294438439365847237742484414026437154144446301826484236482490745661195405215638163693472976780271791246237363038352924502657718737777593210665321657977707550083643649786126155950389970995392209926656928713587655493427872849805114734893798662703913021698369684594162543021366195736333460881011127550019502748715868048325976647365938598662387994023384855312641328645858679177178248792738590648882021115761421837573340738668418976599277937742663623791142741780655100707081916493217674708005339343415081160515904289019715384468744621444695733739356066487040972490049937256667396733553885590258687938064552134622501044271007111128041932994871354203556058306722395727326104221353703429905617907604343810927170298399520857853393044012073118724859704053154357421334251670568442112817998807800831206243973635699298718999224042890440512776496763047555113946455871579332752621552198655632203823738175941502727800187152062701704127337726886790129675603953427020408813382216230580663567078395846916351432372865037856655127032229990971173620024074232759734105341139506280988266223453917033891359807096384314362106497644158864052061935253505230218316183843528775326118447019493525846312374814404342735344697431876521249088479379141200368863898990838007382877195144382943185320878638825689269550910307594664242999202519070384480367118790870472719519302064775651979571244294996652991931240195153356454899275866484308745315249248972941815116723507189023198944200186001583171125645556152112880944304793504951516609008284171406293290580558580041125632575981577394677562243270315393693419936530380387177476025299701145218293617845249116324440203868359559168235093160738926526369458091423011658655909048722025897788789802027809467574426182313587599212869678129417317157127254022859217315103678127538667240852615914519318646685294951016968411291901208565940522330378880104679148777504924053158453398236660271486252626581995561867592871656489261932315356541576166102511166782639132090933724611584935666798388664000492022070611736877907445698716759788863930483346065167504433649792875430607272164149155540043644355976445945654462765431657999801182908652774839558244065980928813637365229530270779023128969284082687394557323285539062909059899036776838478778510507836574618350546684285181941114627585804420294279715408437167938615510446771031332272029713005732373682425660159294769553367429625469808446341005854964566668307945332382292167695632685396613037174603379276563160157108102186157509071215272057680413510592743569568400809364995897238230613705080310783170382733161180440902670573937081225755216721116003461189310533895496812698416684775873741032545959380415019203478955382995745942286179970960770411506129707631242273573055546618281179604614401962551352929026730921991439290864950462387580178135082930662437076059910277062836212757416342017055791059286989619765952815037891944025149527829662554032177102743662481538462476298039669694867135827131836822580644652365445072730735018657447394862657371780064683313337727018386995851845611456045763519082709616742248107380546640313197980125317405054834337841838372251207650256857267860944720176366375132937223934920549802957396437924230239089962652264589236973018675490201344351301646403390989242422608413234412508338048715709132415687049304072546188125540586874688877467824943273516759961661885013482853987926699319616454356061230333101799641650572006387436446045766897680515028875951330472728844048779134228215362964337598272109766499200281671894921635604841703403522236208741566975588745794732965347543712120783712235697635262837762601272777299316203223351425355112042129977591602453287182807918560321462412156999985159201183918030808227179043965643261715380943111408010175737003723579515077722220748377896163003990713892913447441860118377654049184560774272542847170888968356213713196365357511278073632323726966480828391650915458282569607345385044284498614295729898073877584289735018291919557705958021882526883086024348650036484458671547764933163535369578265381060265253149955369657293301510848705482758438817658401618172653931595877717547518849924298298470513310448921347815479189786133814814096087144417031756124348229075487652095845083510375107252303206765631208913408976014503634662305330660863948274752701934702282326441901812129714268477323445627889551718106771277357386803854663312908119080137868124342070734917994688710120030356362571623765526101193048465980779476831895436770702481570784223712733992852484183763176675430405222187719376293729300102491295443435876280173587266031297809627584597862358147801571978057273593005281342346565870046170462128362510147376808858237487015148844146143584603055623184226093074640228415232931035061430812183677053308615760202804145033899262111597409254484121471764877794561263315486547050948988339424088932386644215266738413742796839050279740827282474125020993390745228371174658689456886847242737454851514152372854141587411703336083509127015406800452247448965657943899076365857419069599025079326822179499096228697818138682721391780439054579457595989933955579236259537892033090648929665559417728155132149120188497084606884533276113576260663893493862349870395862175352828444912524690559967086795435774080453864183602414489812875265994397528840529195461339176149008647362121855751425456865741845994134887258361838036488897261283577899421494888933157435823206430983285875483523637743546366861689666035156981557559436508861476149003855582253819592459437983964117483095324948779153404366420106609455338683503174800388856624856731053570488072310871875294554418797360158033822313537832110574774888272007582433541922435922567224031272013026194961798489857528878637408606951324230829501663421261931505386458729953580251744940492100826283754005509292989244294061189326450930702421598985361045728689098459804258320898839674973910274689374941146591184437642167455043843245758913299420565962789069469752570004785066220113559694122690038640030778784227442903178099355386709440450233414951022005355255384735198622120348644748387504894837017484589348147118121639871615495401173481469087279608530057959407137330700833418946891640460520705676432796841300488448290501465457888513941825493079290305107837006023987892594080471221829963501520527172506117573718287224058889947301847749076072519975674406410286736287221100108646302552508485937212138910344154313972382017503863014184240439830583147725594808257377510286106433632565629921259344691339469006766460676890745382644861924154804851484974189100050647615632407302446250135260920671784121125460439899449953952129960481927894146422307508806026706693757309997279422299295836118890918566208635540140826906460790832279266770487038822902906403025188106561069171647626488550468857602867557614029922676273027969462771592793081247435535921383504749072467827568033976926904169664135505263495308910525143374691408784858982495243119261708484825406640112536081154424671687523325538332393431636377312512686303677227148416581988074134828938282922043892450138910013296757211218207384741251116814268188795855556438552778393110239796123164373674330873692824444762515985674899210211430883531620491046210938977837608712973523015653303637479708846879957795049909851231850527106703097680911206908965416697493603150847783166063365130383255002064635346499591968400465099795592634507573842606082745508830557873572585631793722208216065001668869057973212337128566950264951541376723201812209691843748202519945972437921091176074775423775722458773246067572395814145165819526509916570615324865073046250513113255447437629712225588868571540140725862010984790606826937190622356606550038563303852640447952924793570614622171094052168220129463746621122111607253354093692507913663017189438684004346895363678060497735192152919364461396309647231140608848440755637879500122043939352762787670518377654349928779395709530789932779701566561950939205985105362984634633031195256381151159410340879041563389923739809121741853838047831871860782902244014700212955715432568451642510933334674413231237526557538419026567676407408723136562770970892842058724805595542325182513938125083746426098995023881820245528273359320512926318161669733975105003983985206078117386815837272171288177883312218358653485161193004845910474540618192642347252641395852285830568096427617281926751482822581143029119466509940152184958744115121255323235855102745119305615064937574008525344797854678757056386929520774786068139115941526951377085102732158033518085365316469270083937031137972601113715852480620119547317642999225876611850852188468895352929677310764914089343187332726344877357474820889376172293842272704392229122660143142021326164797421079292640450327032032484839387864125052324424753046150426110791607606911544349394468866708549327967999391272959180951765425776397081684849162826417389096217694323833445288831009957632239990878383781218963537533417197506886203736995457259697141186673810619894123411599105631281995692206381318614503861690031653097998639951056186989130877915400480008244342522948815735176285669698180561661365979215117318910363726026793725460172290632224315039221132959505848592654218181405147902652955531562993845763484170329961893499883728328599868285991231057732445951672244401825747400286311557844675841293382801471645548412708043320867228907046497011466491345039106813194837053551909553046138142071168587114391267368679165681547303691103067386020470275150670747678056702180281283288766462267098606601873005349158843469065427005908971242672806232596008338606746718931970625862714529348123640023615901342411076103667349372050882286374085139967545069511608536505495254748919429490603270632247775684088345663620612398057683433471605904340732850023270571550621822520482805753124442531755243081186889381387740211977347074975464811625366145507419833562786498434487792912724218046099336483983596816271901873594735636680328315660527522384475209384083796660056459853605751769745604409539688651611844851922591366963860317390580664396364678760299155190013488265231700360950240748443964447056685154638627941003394314681348984749504312025212159941030715666476302214673350823029347527232061135370610312824449149332421706870753159080411600684197232886459940830144581696729512263739243159712696597029420507647126005853599459514098386173908020565684855335793374808300262391664358379006630350042727826428261002664685622345928315135004006770521630827901417478311967763837786535680354881357316703645154825118481730448040158660534353137939083006332878601577865163811137766786489261425752611427969638143679109003630042715830794700892811078343341021267154336337920748967136665754231362515006989282790288786834715723771273835275745303067506465775885660066967724141361955334093664689578820475400029040246198270954530905077736667547843668415306907354447811146238186462427219610829806312466642500346418203327742074311738885792899447719674298374026667614454096595502267288575309742966259111825370187820435492502377303281964947315493571858290789190593753818441710627989808886523559096186442320858446475185699669772064892449182991724519734672079517403830830404829732382080326514965308845531676740546406534127812856932535119976460080794543930731721905848957769572886839574753906114724489685700387682800924367414210860305096767592599475524493675571961775978434547262336796708082622671082245380103019433297414851273504333025112740275848329137065595447835657528476026774810328627843053795116226654502603884475462736557149070342365954362026729521515596759329215967586969009091912491597280608441916755137103261110827261789242061283389672267141190836933654732459586766261554333525359880362811570821678898570001227303193483260312180316350209416840119256983148726902051449651841587147979598602741503223718855893522753064463141224161337772354319194612612136249526134342285243780086893757289488937109448649327714851165380614756653764165718488612533053209349948194462301524831413976900095725103728437224743844942179727686891841819584929135459385147214872328405800657906317661233787372748582081323996931925299549538890199473376197665995509362031800209755085079298029351796700477150695839594295317643987363157044352365175852165077524752541938493054316465134433056944903531826874377058786526972816377217631324696820716503997899496020681174092647595129434806803091894220970841702092718682562241302022719226578818024601151705244082844038928049832857359159014260604069723884899145653776495750050271627895484649334456825364928486474322061893008015107263346242192390477575867116124525118862530472474924510753306486987575563036437224383727629731504822060077721095422711803653041868220397167254036809832687819622222007410322747014397933081324741509430215908203040570205387401145936774084402707973041818415911320931426033065098356399822839642634472960151941751005857956144906647118709151429527654813456866833298988689214671100071544660665218898586751521060636690346798245226720831994417258042564114730131135128241492560210922183757445754221567008266838996869992107095087006036164356653181945594992050612877173692849969887703342466965231571534433192114187241228178569380011153021384858979293788406126069246043775665219670670362868310152596471231946381444568506378816692288584008818988496705485606503866445059698162570643051621299249495821754935080258753871122092014549697292702171178332810870057953291263201917491948936029788444747202458794470059782196061351291081590675140543405334924813633433003745981103073091645454806451176505077253710229655993007487574472376707130970387204826427106517540988013862709157782563863787252095330021102509875668526400231207524949263693723963606549952497070863430435202425738562746753880030097885089650221837688103740382459954211337950240114595213210374013996877781321335235911991541792186831338093644733712524226632562460442780953178105861231679745671078328786719440410607010185425256439664900384063358654333055745092210601795777771702051168468755423444322208307930997132401178493980477013937192944291644420147152919408670805178096655653102567159713455247913267104806514750651058138237123632230023435721260161818907514163226775907268951973780564953992468823802601829238262977715946920059590395323217190495839668033108558300746874699622753726506268899861031809923016226111851283801952770486566912083660820533389617277988036293879826231007949017897956873467480355177812094799899010782968008746522773763275190111805647919974806505151604454312371623820574074969822085602532841495624900526158771170245079816605118645117770672801820641473197170366382152005026110629446167997925289063807853907245116347358632888606023286119196660204102057910993183843372229670794317274028547435166274572721064384753314889008339060553540118191040774771960157294987336455177028181894936282051474344327006747835607453078673451170470213676305023333741688390047127074477126732799204535452550598696167841080730390087374744457872715360607521079458152357553998700768291468662326774524696249294938870967069050539888012510276232442495366476051321339844533957960265375070954786493737590211454875307430373745967647047594112770065607861718544308694220509082136580068690436965067022941765471762796370999724962526098383050962189533284442828402542933915309482819535188988514049686382747898995561593937931751837129509098972581604760311382409878704496390612234320021948710753347881395683528175033584330836862341597332861462344801087620097514336797042753516595956065033830356455871977834658250516834154521814860121750571318462722164892591815058479250994001828978360695572634602591884788688913799927753711074515316921695856741855807543871599105487012648826148511478136551591642683224596910542737105675915706275772384970449045329785867517579082385380877337278436818591448069012401175674088734363740912851563253175767240625948482686341191149629070861253899660925110307403540207376522573315838165620278032523143664910095570266449616026425279609317933138844232510645592265176361478494426790153276170455818282388009170982808720902441955063847941371541462251927745118145493838899548247894450053941605479682355139239099978835762220016151074602021599355778334827466411270234974859989403758242466875133484796813040222911511714153689388457389664805036874155606482406836255275196260204198915174876272190573593633791929306459246078540062678988599610585987945596353982190670902237124908530165519666612183341452575919640218431249186470854091494002518996158236509831232632310146097300219938241569272947228616174656952283234865177473079947994228440149993795801798423670588735146362079458888357423813513664190673330916555848102487149256686097836747384976457105927022546035295641922938888735164863468354613016326685311299866004520338239095706271980380561859726603726467529140178855308636218345077590291294863784709919610816787353720854197589226930259321325107472643434833804540105946853131271884208226419749115809404635987704601300683125131523430460979500824747045828681141311954157144185360536792776898454880956209187011230540281611038480001316172010039247764617347223689565407754291163159538575658841030473180973138134392358879745080666319455990266423755802007492927888795102784946761290262680083184619649524190492589345658505776166617332551407955545384576059120204345408610141463196974342920719323973082108787277072745681782103112147674778382331323013554260821792087432882308041100837006149629170353130862368123023144639309962081676654768074007072889676389432385878693938976388950608166563596781833479835674477203498771414663785748135271311557740958145257581274444610253211635119093819660909017616672428470177793364206681369901689615428748443724123541911388160385985106832725008387484645705032686724496945517548928065135557157620140327163296481485006162344806030336505995048004025925468058577425407531417536317070770857898601849345029259416894716071029500331885565990608525930250562980873059046145598364720531517383762163827547053106549293590016784473187629552668467121682976349801586766428275111563482074595691091224492257831883364269928762136635584781831587119866448967480842117441728979671990753723651293821140971483604619641838296157748142562300206352713050125605256695380557022115519758377768497813903160497596995830211744912607318460559217629914517993156039320996293254492546866085883047732205699246218410430863539283169149055952172192972475520974553959663903446502287869872408267318111305373855290690811256974921926203369953339344060703940278719057316077383404366017042319540678863948279921632942721994265731901094076749993929686274421139192900908406385157736811466917700684148159856155720152148746121035723618929808848575630356157849636780767870628476197447772670280205428611139300490157954803934985160198937141049057015675348307090397037027489758751369503822279838126427174810640063739808241495783882697136704509728986176197136866345146950685803771005292622251635656041540681790115765057159404875790919103817970329441425815044738516488534450474803420683224545487461390454167249378766516857912842552138225869512893141964510644046323332969159102787498682152363817909319380836281433605400395706753163335613115283936478486009419937831682247125444460835020934841425347326580108982096422285778035405176772640951852110261273014073439404101571767837078640193865017372249148778092640785915315281610188504018561010103286047245167727389390953226254372300376240510609641386118782438034173282760097025426580674355081152719344385498265401771952277812299652274067054183769701976729466678370055367708719187873976608180241127870050756907372309871249777987777734033672299320507738758050797182899217502221686583150153677189079051546079868163055126219059805791499215118355692659719396861587115294655428670067535479972328051185709471125660835825734043987540214697851807208734920510181805973079068350694984648008670512115952701822537855714401370923041546164925477013447770394981454054792065769041479880745653040289962421002390540394516763940204731618477868600783044101041390122040960600995096110863920400973592117793966700773444768687720651168383756765320140135112184184937692055716048600385726379094450187958177859859429406906320947520580326184431752352965637751875492977764506122904997884785155111223832720474465717741361353713442631445827224017867108282312677334070337253901741040563272890344579265418068519093239021473577322792444854569321261043522564122663129337359895369062211946332990617362326778329340218115587117080210009327295752126103293259956654986233344703183813845816174422318534354451020003039297474469875300534590847899639064179814021721763392429637241207069407442488320840177549662288976032764251517527842768520346744550111727889046352796233835181101476859232688097291377544239910235441168229312750887323326825211478030119623516221179812845446888998830652223652689193302319334852928560301289451223323701307837529008997258229424821337882071255762377560150522763846898500362206830645766119185419661256539839392658494161960605415641946798206614282260413834202205885485433469974890785190754603685330810102108896849664881674920285693248896600525411536331892140628521637696735528190923872178386551645915390214676511993752579889852836451260813669689150443447539155547806529168098336296330449321899228564007108787689900552298291320300372586887026379845996341552961024642958126673362062420539255909339030597069472742274413969977481452995504241560996025430156428317486160516277674131437280211507123147319480363096199423606592728793430848115561964542950410873514543293491861628583005172664110920706346999099104419921725973444179521680794799397143439726609871410852805613575960066550067913880377599417403751536015114886198256606173658495714433161457982123077439400133084818354105030270339792048010148136957231389385522871415889343305667977545981668752004956295390475406845797331396311019400998454011450899339467289620660022611711001879140076591119605735340415375207210500803280963726551325050333130997164842976479869649644275538288341434466482873462504807470683875236083436555250668554852750342005792326885132149510572037239842807341116907264679866963708027244709706494916219171674517182096629741781196775850062914029022470327319872101566045786904487000635269407420291233398439358174674894432614732991505300847317216154863448882952921888301690329709311638234829049099802944255768252470767789935141715026180059642134662535374500466969643723473592658593613992079166391282996461468569742669626318980514523136943440393796623904161249147245424947066356378759374745700689087697772339678770009065074874147711546560073006260655478632385240597552456322997094391560690109449823968598285464385154389040138765478400362049651177474080423877273887680370853979192526108912643473006135104231238042251645320024027888880363249157052877252742247098026515454047489783368765082394585155303933474530770965331867595158719779389595157418853448839013469234188726394855180668203542084506336139948299251316971704331249107904802378332462851932680289622785306722180097362832486166745294342129453994720504950454061646011782946601999525976247750968364936015164142396871125203903309024281985374554474630015893913091513371363974518846641287513257356715768589520223840127671571487635560406302600251475995386798669333573362144923220810644630302911727127110890710305652182148762085110980309733875396143006372624277081778850061226571414260392573776586091105171173568695768440714856359300626883707326167718384663730883298748704277811096196354928682481949630798036623628566508416669626424713869280941339039688257991688330805118821132930350291102272735117292218239452133297386502199591087599512381423875386013365585893574053343005195202751153994364904276978537123473049854406901483091515969292970742018240326962702381859285860660312543081500506385534146968632729054211833788807680862272669896195495974985473304440751455098537685224578444640541473372992243184939566836485905187834892618895550103238415166921462845021243697635599711688328456002371838106126563285484984675458690577518844162882532173383992441837628244249368662367316903112580530804029427268030172642045980344519205088829985612191524204510838564335646552965523815442866466917763290888091889298086009882220315487874455642171645045883350770386309959740577148346090158922982135831050451273387077090075425289921843872050635340129019635141745741560492351517631469215358254993082895200747875004775267655878059836617992252220099864830619275775738800711329513132171666965764211571020789152263362265486108919193151579317063051397084679583676008351636973162237400665996100590273850062682161087214154758638965018633069869258245375872669452048462473508081378397718531382600604586932205413543544102127753434486936005748466175765302561692274702583388722968967532313603181386977157788639906952194192926586936043710767196652076190159407535363149015632013771020381477738497218493337890212736517984731499596464815539919157848046410225051513659901882513449894286886986455254150606436771051865742623364910142278540830682316948978965463105566538592071511414902256935093671165053990241884870530230292617470815524656718789284056848125011717191544427702960823511692461492713251688102239667330215671806929166131954691530074730674128220465152976738719788439628816404757328850418233983255818818863619116865704230737847644087521437995121896927803749749097651884778623424933010157141080152148330516698533053089568762453437034186041508010111468840797411747825555050079567300468629592943670762635821486798315391817094104982899778766234143564884216390954948229577170023686801838548168522738409960190113830929046147015316201467742585077881325961231885382250763415021954423011694260306451423737916446098957122459110397244274210327917945489059081375702802508056102787178116176833792946715746760614221506501751816833281706071335070806656494045135074006384619933499109105750518789725956427903275013296755271393840000395097426299350204953137519494202560277496110312128577476671948624620147103487978970953649042429093469070474898419040217587231680014349124835091903234826527211794538221214813511658702558511863008625689238888445150329589235888547968864332551727454276109183042513268662135392645453414426478764089943282077147328127224031449796889231300612910193658533875179057241445321036409154141009868745508486572548345450067522291614413375490172974497371606765934301904378540477424170564464878245714182378804808148552981498025835303745292929796840755014748642683283133042356439428346437736148054884629721072715995959430118475288578442401302218707445475624962732815658083108228741398194276442214102646828678480736895599474348609611519798834173727672059422826293184858079726113021879861020512697547109720630419791423906624618650955270848157378412120917729448303971680563175035882366929560720458823680148945251793288849737170452856568913750679621359184872545522740604583892811880818087557988093546769003187822565246006647572047542225027547322547469854486149042802401292042887206321889361883426937108934121329253706990044829564063828505055231580084287536422560754278708144087827376958069952571620299553797937182989543647507992757789554511688466210335943626821504138778892499910622762823403293259833419813301594355568794139408913544024324432988075060710934059486824005185232236374917254595113903264425066755816120663780695552190667734418845574018862350121258409566903293624832029263263021121394673247833609104352517516648525786510119089336723764143340275055006540033101706004498177563663302574345174311666051686196027854467696579099346963623059065132823331228382261752818043521657942885602475582539232029204337269309826892653000625625379042356867132440734468426936398127998244115925040462072996159386554846771245114046580083086041950624996507833049517006748463263497776392857487159749346100599452503584903334248791036403867248749159763891382434458821223229346414484390922502343887778478718325733919038167173811330178770157849059935907435169981522111391840987142157701042360046338297073779220407339852093736338862128097409157276843214945347582256607615000039452867927004163121788981655892433310269392720974784496370140464510077721135211946845748980628146543992274402628136743352046382439839345781068718825752151665680293026955764578371735822060625669118833671674232901464332106326840887191100323234454515079038456374083504819554976651850356389083166334613453432762208271155421285397999805363206740717623646119262637436444550721420844275949669811401439073892784915394716171115651790144066985881780377190459142010916625372819159410300831417981214725415425991612034180591716528656115320597541455067888182902181032003962120260187093929612795266064671134621129550354256392872801692284845853964629244046233536547857108827699875255527338951907147797638305154055398114295051460560951092057912869780512602617215292614079161247742681008932615052034842826178223837516417856251503726480615029967729749548008435603818562876294819836368669575134876893722153098225541582346902995728331796182850471277197763887297278855295493625615489764449257888973808105980453684048202158567829171477504582417162393602050607010033702977535826073758923208039016988410565613602213004990425717385238994388599842960921513121551855607025953100366020006972202502124559003820770298184184629592044029864073801652637139415539330641968850938379400843264929639317442814247296003139852417661383374537702902153904631184204931146146815943762058999457999686979699527732355830762206920359408552307426696531983818872845033361059367429871901173760002323916492224507057152365775031716670024722800685031059896622740943596227620569530586226800314746644172662704223616793506380801730935380175290890137822510742633969527478343069635709196727317385527818964729007898074325885997156164175658947244414303681960256838277693072949018240566304132940899759112413493181775232048767132242313863122361176821833682938647045861293340152163717595299438828150693236485857423221681165063137518880335609522058813956018665977689933838676906995453567188883696023872933605428491134487825570847206921368334276044235268781302561551099040365204880641639238275018858463046516393791705478723149771840189969230492634797307854409304361924339009577746955925335662268533204551865321593440834595227558753416705356164087464076863529547182524823827908019879547930143108235054272617406195469080586570241824745671298277436519011399650544464426906412194644402955526209811832201266638396714992948061003704497139664031486632544831205696191040753910823235777620953920686508853844241370112392956572960858360962117887828715505278967077309930005556714070806758046479756832820984480847707469792568788307718857041229683321194313746864517931925349091175914922807448588330603340850034586865104525802464119059920843649458045059245774638498382888274393793911442794564500629159047557750742659667456354082060524546419704817284696194531316426835842897255142990284456686427612875580510165414778734587677550341204659110056607889328179943649664594743918937329130033832960909266573260685950086660950809807810174287017439602707118037682771174614943951277488662917723208003472323169614408726370040960108155678710361212702976355563134411589407083662904112476441935443730211652750572721299566594725754087386412749972103202705897882196473440085525393721618393651472729419497275045560322435240983281330349816664811835268268284094800128364203145027624653826023618737084569688116695275447985923647505783565414289627390774629118695940549909515733303878022206034140102887498640331680239374640009848888865375067354349156115166953306874476818931199229557133774262743979042289188109905799692512848826927859655520389551188749671740004357926694854826554192677785323974006917724833592575959456626395199055339887730897549278917131190543969504171267877672164933292750142371481681391727411111283327040630269005618618643248334800112279228349790835687733995291297809091487694237220269014442092784490094256797371926697410064560371651216639474900329247496268250847665961618027232047166945912792858774281544490901012136914293176015806214358635879038685266889232031271584981469887938348238176989809925208494811803365031806111069447052281906879578424149129724219663512728049923604721711299806747695585959624086846173887958539845544287157855587063218722640654909664286081645443450625538321346634798644249344779834927813114095672454066171197803183383768225924953854105379242032400757583585052799763226030894063486269970124921488492687051364928324796558421268786414769388147556342771077553220135314153189297413425741749333825007031441325041091717944546926403546582995931509330786116306698871522176553999344565753408005975274418461534227266695536725333668105986448131730363405111984100928204006833906770725557850945802090744203348384802417397375656485957678031741382660122384843871106408426632192224857941338391441322468814866620020165676009868785368927326121379209611284859374291451774623723788944263580297295626875199433154840133711344151534412488197715909220183150640041415520666560265725721373927927207221589639242167737502552593167562316006111503058117385914164704709080097372430141025611597573461117095604410059976499943157644650947237239167367341115738562095710315051269255528632656769000222577109895891279011462726372128048074615325150309331168463202020913478306405630043933959258721148108763759191511180484579313760875263535425715707662413077050570369723189656339401091329620710082392438252951012747405330442504983112011181317229062893189965727792226937795467588363459923623104560342309314280727479050499437686252048814267959971654356107300021387130490443572708959588869161732667851568129636954938002421160328145796584971743575698699724857602436154464238936306475859359331630334804979055705925971558739768282503961243969805702351273100836376774431309049800311804182957635692903028513255858714795682685973153414920653095391650690901770374829206136303573413812911901961623518175942651962295263712197685918817566508610663895954153739261043477513214515187316798943037134607317708541758885453213773905979079465738121946936572829921094501601236908467093381510273547859094861394210180275877438190667893263587276098816149588882173265442465623219192846132109141261694562196121233554953387478766750433359363815692479256966030227086194958382192653271304889094749688498534832201300713031580518453789935029306059382493200953608388776669979537343020824337284300888058426351309770540004319330697610476864591821281114913160631093822130453745850540553962569584009047100490537725026765911113098879607535119985894194717284461720187103417386045639868361122362068400537703944541342294939873556118266380047368690051505840924656104976661799729448054267453949413061258903037947212653946399628301233224454997028631252961063947789549631171191484814858109622107589717058241454844596973470669793887673426963334043803000865251329121863055631395508149438038902843193707798968272497352572585977929268734519400383858688274045950291251324850615737471055904231365056678989696356214510752940308867889990460140096363764820985095245670644058480245769739379666547252447922035049667689579218477348930687622292592433763933493126978740154746565042551662770422926687435637926552237050198740390629838206319163209067975071121350564656078069569999030427184225024757829578235916963981621591791343790348383540377930454584108942716278668580983941816517994781025489267541418900322941543989030933739592345104548516186412387574911239052722632841918509258663578716257188432717656069753390407536829060085303519685357377023447780100712983940781867711852063728962771201734515848325147529240778985006593917376812032581175033912204169284822508782439018031044740060916422374847829294752901479222522533443173907145557290036950839553190779080308037379267778990759122641565826030078828600593396424385175535663908414889356192058221983207764103772499588078884913200256872660845596138025794837960747809617479535579161070719305490885625052231227675844044660355460441377717382541038741255247920013113546885720695170003424265068108716988136104544797913624562253953959602227642882853824382076081664269598851329414379796974196742943390423493683732356170415550894689254006517671976697324195166322332568831127623543780543902670624895765802864283057952336173489353824718836215114695104553059344670536275541270936557515907547776195046426037435949274792004377693836733973543478889247057312325317974493353003683042716494196401025064293205737754217231778522488652962215617301690786344095488369880016751920070733266737685847905726532647259723704473259379921764739533594272516274819651038092645336696027560490623903316439822242387889837332275250588589548924029292511224558595766053908821769932024866023462946671504816193887725922759932642288969400618122980092887242319534955237996451298272908441358224097225412261805153941994778267930515559364367630963060430051685525168597019080349140235650011377207769682489464721987303487238289918722480802472774608119841763843165332714968831530859487612714793265103800747171353042485132647574785393276512359192896251292567396593467295661981574314979620531301999371931508201415369658343552689489603700884015821162927262133192432352493046531517801309220777237494341872548783091138119753986013472521576059724519826046643685223717813183593321330675065212744822648908355584716616733204610724976333931373085300292459293880924612812241550188682986964569913804104166705699815528121263045863183735994989841211441726071639118054682939136086332265878764104808341881276781463006467321648407891050015792700677249204471258782464536535220339675676335681389565426989252245293107489542949412561906694282284792524323087846434461963917479642799399488882892323934964269165546325459271351991483260010871443610083881771063069559589367631296927070645843968391911813690547087750967968895765257787341293169796654444821445452375249047148167228644030926609154589722441312024432064080560579326408076990307009401467688207216046753015729393179667925463072214874019467977949418019024108067829664118819463664648919004161322076856695406523479912173625357768453553485337672606769122557219553244402717446221586664657276642368544330620141803506653818946933033448139901062306976734691497002507842930836324945322676664745468404885007664564852440201366836793732699799893743297259810569958895356309063772160650753309945044552448273619881758829793145397375942012572991664191983365603906395052110416696717870732262388620124493376934557406103555440555674857257166274444584159296034574827460400440368434071816217669098142153233632719286741715872596289137757843816144399127806806124353065060167280557405986565568242127301386829647775715793525257442997831881610463733981859426558675747296015787458483069650974335409821917507505969988275493257983818993105597570246268944108221844142512666287883081931279127241460944278445740477256555669672094368190794688435086333566334802627835029587725974236182937673067927320395003624924259896330177088325638125059556996575196384748492350529305864391621764615653475517099143136037748554614710887247455026734778415140869415941108361585231601441816211749408490752499715120859517318405465367488999323401064558743557522044398714565165318166987881514389543192317560197810342649091355000410690159520556043781726040178391234914424423824431086925134992016152041423541522246446902352024717349803642270655528284285048407437366725617620782730474955606547251444333926179676721941800821126112292399080684226756864537250570126240760222525940096566637164557757073314305935712512221306903024947899310692059162771062404133866144390831559498356643826987431308753919408605237646235965042310725409085698193500448368188720594693138092802077211237500306601643152386775207079596912779303326157349506098777154486167930340637125085824707033174753059913920297942181111448944079058143761228410374357803343346868969756972152151642919782662320971953324258953262737963537021031602456115532076305334739053394624942311308083915262333522058535683180783258318340880084520781340516999677102574191437746580248084193021980031676690791674643764731120118306773651928093731633694545771467047308682387300844409523285821760138078684716314737809976575791912860840906590189114557228371826829564328697390615786267597246903978997599308666647901561285978986463436882750330973433308946627600419590285143243011912614909339746749963622695353524225066580822927684746242156368252950220315205545681386014010379186708958865609184185111140391823891990090827665750259424101492338540847053700561812795429292838477314341826042729022770673341566960625556477080108561158592608826756856049052795420003165426168432802065543456107874806403949990474246296038628411419961243929255379116574258313049299232939869149120944821124047443203136459325276110856537641395293635655714387642560061930324898828914529324782785889885216548787249764219820901639837833257735825275611567765706712666924455914826737290508259634421855943248421609371040521834894965924705196676705848609656545919901876933353607930752987519213643594828260884634812106633579303712464780719949518799240796314928510081263365215124217830618465948091263081589732021935526656077748624402345928274725325616852724519193535700203318832056592127003900826286026279830720230462166129420380548615248195827129113448460418760353243631751194167555855437191966109118087154943901806832378197127474690966856282988091387096303117519366928426578149188955890953512277915013622511075958999386074484523579805278032217803422487968237052312146693401263700088957727636890002037002939495058373873012788919582639375559793642084253448533712922030172360743758796805671348389972704858678106420611170262270016530770945124215018453147433986238415604113706632644251271857659948842133355608963352927950253549493812218658088322463332745927575570928000431249576776006334859189523220559448857055079075870261335296004210291885379815273937567039830315953794021680477227757031156255424838933900882594014908786270932838984153178052037740869705627628365877475327880362101557556907085835495968065092596937731168534604733272272109040714695491942429785445337371044616468515749980032697634038092908400322249111193408685527851522413291170714670242526963344875100848617884007475837234476399255571456314999845982814230010400972210828005265269489987780568473702611378731016508066366378940150743891738358908193630599041145189464301787820941461082580987558564287168386808890496062148395903338722510190422711621594769411469392397038448305829287580446521395968728133084741048345857019109352278063814215857862528781681203912920847910615172151640307364458297296452650103857845735893788001764167678390714066189373767259646756597748181518738474788935439587387354927668716164887232669816249629433363038026643250732530766535951035534715354616059560449636533163077983372716980002840448709783433301974797908330786830159115587015062682406751181152580010866766805806027922178427015789133205343400538324911647504784602869821249769882869450294671503581876646428488306358426620130447904353235134390208666539093742396529764024736004343673067558825386755789758630282045701316342988593258892865459639542819344617722751827736032792807162215228919277944498159582943962086796114082286786991694106262204670939009462533404190976060057291852585838092433217703504752213826937200490985594060131622962356162224644573972293775588204788497597333236101022912267263188988849151593040618829909371313682947696710942057386447568966520888720388989620439442210777561723681378705527101551598247142194363285069879626238665659768007985237820639274271858472035147949140327969358374076720819607436187557140344636099549512285240499643802160026195087478265003372573210945661896001956502741780422629734690646276084045914132885066456583353830362148077103417543087337162943218349648776853368239911600743769031683221665100927781771595182920776165373347027098484713006570985494367055837507817681626133258193262618108677098373085976452885953946373974188972923263881061494169742256414741232704500431409402581874999215337588773691669203853303479191836777444825707615798718447558805015744268815342481547307457340083008402729602102112612840031644640852689207527924108121714231415457703820415907796372800781949819131916972778623600435812755027011376134330518732897540225885755480501737547982124996882085605327901197503827033096146199630802023883797833054115970459150641138750887234599653792177183121622263186113785926921411619440739918942464529821430843468571859475791557176707832567794467910946314143724873120407588632969114292274613880017968983486664618708053004010093614190385725528231469616267836570029502935303132056412455547838960713088261679319469929826225911105847677098530993683012500917252281849128103047626708838327008218879641485194735600127557420920466898390518733734570836274948734432982572015623441532974654106968466552349423361243958478354863876195490401679765852464158886376687290019884900740436972482900549904970018424394635324961618024451842256730592036226788563689683133607463428033393631788342069846170959767705529432150505641969271607557886553965255310691271017518912095090269443763205222742289081430709521462987617212674189533113486206613664055135035624528199610787379251720715651506123784410948862758509942755211022212993232264175048826875172219999616721700130133172653689594281105736736900831878636193216281968998314735089084994830766010401862594474948219504379292429150489153416252193192356740889062154145261113055068474894960935378400571295006086294326271412160614734114327352608565748979205989595879385340976965493806850238357762885175794442196398186680159175783104798289383793706698031097951354381036902775384518813610527454271821874245861967848236178712141736771299321259675649289659901550416084857060238847945009696978618384593373450552074208854703345946737938044031026289276680886982032808384879663430472253801843628027479126729291457902504905028369315507050623617185567617279694570504856308722903603833074033704638521168768004346630962614790973260413585708773239591814641651305340608861698156797875342641382758859346239486310443286212985281847067018597629993159096063952977491139159445794639531100732557330137220716885712344130802868668624738112747029641632783542759064282880700807077614968964283050602881950255301673663665767553506527196459342599869354699001640692704189530476402060020691024867128270423510821051303766031071766145710236351360991776146583765604205209399910381873340302189917367243330928061882092144523477672337763687698464229654880551085721541698606501111260625892947526569839055710673569421990616489552937645782000219636667227962005912147468821149741602871031049971208103142891858743445577412037315796520037142824506890481877467948461523394675865242688027154022989488786388473256165183387501552351659645502061926610369899297981869147204443174096408924905154262806397974219873996597277904011635044189767596356353969107427637834384723472221882265952623059295413823034203265167029033300540118033672247280985551504828100587754595929898351356905335449265318372422007996523208398871343202714596194618686992097789907776399569487333080111342761991226463053983324438124827395503707587636266111496874347445471625611769915981880010920665500471344374715297458974897820240677086875924856800857437283342471711761186005865395093184611883695294783107927981597654287641853200888189763042229747106012653270220763731164789660268744052894316859330182704070743309161476576491654484467448220003714265437554202755158289129581046919092412233017019038096193550054980135459155926416595111151263243877748929178575929456365128461922413516613090838884708930679739001228394759736167638201384358041560449417086196340571383602499574161248275339958148407514329731484001762077152684504108156187416421849738614830695390598780439989227719952669709335533884785084573086056645257877771404848391129703097412674763802079242278853993977627388269598467053817351044461241882607347564524595910988591931492475520447559016043773622164229262670053415422706371451993020248184690687661173007172898381754420108015799785724261776660341224694928775598844654855534252470908693152555601929418630774234107989426081779398964040471848541843950855430788905243899305077624642911058137553703881872551213345303774500227622208522270648420622694057973667765773820429711103002720110826152361777234264990675685534692340957250247547528741649437381176048274229979318492379673538729094173463027521912025102434817115946050812693188592522102203789461248468967721107724100931501115759702229670931256411239714145828018638108994532331643713627776588401291366206803973835070407569899618893704551313819919460570358504711859580135162269904270938661371386804630780031216081151132445365480326422892587179777939101584071451216297440846365214424832643234644733571586227299037272255321624727847380116862873003357349860621019304810103859129511048949304599338059623024833217093454760925858648528754804484140809107969194150568617972135887130364235626791893691971578346539366698717077915674373681043102063046694359966206479592005498120239715754603668279616527370240207408198096470419832019629972826460778609356348807018630221201568733357412977499779766638550811022958726496730138409770544045939617355827467243344385087456535869784839204844431119608491392481169760823057781073687578070799287366897746327324109437475291854624060200476463471400353370729822958673178936331932008315058997789618954435039807347886524300975015646903230394468393189718772201563177615386543856068885677760610168181955952846144459222373001620240116927400284327143625612876790848243801757300494287401776455819225579994761792994092579455471249148068677360408847055359581601428812902309107312132628411173439492511328325709960836566751992666109986468388357256043582190867894375108443833989429548221460845377525634524226180328134237461633467157732528691549955172880537317809016235951186378573499129632479879439358043673991180446953397403805988363286677207056065247367988572638401796251919045826767513768001265146012878325640576596652646031365499396052386519458495281266288656198193525250066358190043176228836618533345488829459157096567222432804744269710662782959365370247793564298280531868943731656476832494789765895067126805340866721596096195621936867856723162457167441718738734005686741127442373434717933718860687423634604641021659591047451218060233122824643626050989108738239739887608338347264853001899878163733074172249610403957048434507929343918165660088732432222839039555059090391975857219159839076975304717693839515328471244476970379280502813230658230470154022753367284781948145165544097772826521692296658746232379969632023156972864451608921660834933588472119910322005273857549235840430577658040240561380973610512467887327215580612288633180741729094643833695703134770787918543018829122234748961458217394113789501338470325578514496008376280022108657244361407406368891334113076379871376235684581349845465073755391802174745034374301552818558594642300508867267705069997864283907621405968091005500965732112180478265831806196567432904299669494142751213448135895626371234709983423674996749146977752092046366285136160247152052344344708820794271681842641170128944132307522866988372795749712024692216111416062118652013929924010786497183242994770921488292567688857989884858428243106400783481581525058671412648038408420000108951281073919053353061548615646542224175068422205336851054708718130415793366286092661359347883431745004231300817988129788555904460887626343414851487435223232829327796469951909599043898888089385593383286594605844357054659097007497932107163169024858896745075024358152861021444509313581706434598663658331489993322388959692316215370035284920783255775036064801605776699057789918594865049629296550944522718445298401293947250690680797672360376043827245106593343994253494536484369063135763820073539472863874227013248895845639420231390568616276567541084684063308439306530024604293831909480810924808519844061120538988998007480590830493756740288466029007823433747176939986048931578085471929198972871745988999729750626253232109391872287554729252829939764159639777778300125933592174098303040131374244868382708554918296440363443299553336363608380712249808540434626175065879251029454451291565097087631321023988713498003594218036279951108012328395436257202620117134529292117959582383745283699080880495233599989259504441815452945359184517686827893973579133516601820077625919248149811755574062397285677932244616529485017978583710535878867412165869940801061436701546680741828536099060292534226798217532086963941075570646805224339823242912547417293131132047409331163000368596348393336932173166708360803188879572670401585469381524920925321489113183756452567933829881208293282609437000745544851436265066204337049606505917950517450273285120695966977137893995141516388980990537191191414572581035061763300859342373632791497921968850266689844871420797754765738147291543650688158129063171971801074890925269706188745106495727077920794164787451563396528522769002807792811431335020750623854104168540154741435513640593727640555456122044199404189682398851578808303196433576450336487363849358555603189240660029725419000405272394343428834642544175547525337908022414030369491723204552433181295514852172912019956241004837482223713804626133740226789229854010751357774347332986480777649866546492640585505082358281180755535486317268116648916783474360046405275772068545253707971549390944986991406386845572646749222719762410041426571915446185420274948826928054867125172099263947135447220045260877341811494395174254174132815364672653555909650787154023236517786220300745772579399656334005930997667775146817160961019183090687944944423394818535150915567441640502400296069210092023771200586515606815463074802528516609823172609076380107130530073326238756757173398180060485339089859389121611727652839014165328622767237305651053525675326464584010596104341607769051817407189320547962144224697554523118509427491928536672264519303723058141190187082531084162601903060175047959218683915864859671469059760627258444407376239127202619617777817794039260230200484653634370907837249121386591389471116746093669109594461872837418014352162503350347856733192695293335330088578788516048049691380558564172117421452407256450875434692771906417705400760880244391737428520820514602267597014727400832398666597533947342448137151362477688701651300306127886630112978345801667557361221150837750251831205529128515047801317897867752889168039001056404793645289575014114678001560739786879922472396971462959653171782422293385393805022282712430537500711070975485726603787997435686500568747663766270308119243284940523128051434877271438666285634708199450792292770808863811464049862887367160702900192118389683108484432490943365940527272249778185522179157640355730741077532291462784245587849978577131556537865779421646967727855263241892313061824470148857825329570076436748718872468136742819722737257494581269636785089247712182575002246059421496976536511459276317939515486359542482086808598373649396704965980523037618376760664180633831695339659017082967347822179816643109133107187846326389725237606485596130611713034813540768932193048626637404316820994329409820202657151154636124850018730887879820724722305840237885099356120366789965972666650718073703107896366179395330225271824065132715565731918557100031542728562743301635427984178011103381397508752836809031858499816406004792207198817035471496825026143087037278560616119613691340593876134628696062521433760454455315225179167604331022598870483572396238373184196032718576699692011180251962410500936178810364359649521980026450710021610012498554017424662974973834160604571694623302862985376251016313652280879592852137991128324123605470371370113792226023060105047504605596060260031622160434578852602161301572531486162157222919447435717132844967586899213560369596415621498677593109958959799995733554968454896667154840389268111837576164313896978493384677226141548248045454083890684538128181090287247748381529351228112726268488185188184979058601555828512043681943621026240516110133365120054683566129641052267818233843008963680719959592899195048667730580499928674306929307015405196829298105535663736415947812778103893902508779999813355744456444180708161396213418338247877745773831366847865593837364372732392976931974860517774334276507022660396722208985881447931935604642140728680085347695974356816404361812581516554593141427868895253697380129919689149986687735607347172115887216093730857166972049172414693248798081508388455555477413788145628562484999738739808350592031597034031470350138586139353294197497258593333297722003829713175983934388231916634583168542533719405030514200266455298342733939321321906404891621728371831387213303866440929858223753965488300899806470506451125090943375197550467811391711809640183456668394382535615464110235863019016949494819429208009001424965926050541902157664545982474663052877464209265209741897071431901440711052453824823144599011074380214861835102875754861397003409958020418438598800128484161437327018514203701029186669482162996291999454566971799704865326763292344075956980145315605564485823819973840451157388895538306252793971433290744301388057122284787432780740362891262294402657026074080100591664165856912637001363114646505355019569008000577107218443121530884242545062786367954479203185479449911805621833877358254742100939765551420533730857496647555432106523094484741871002174996789606692064216348771051286233121775988220051864925423043800189631047727628731290516504921910797360141142714111392095727811459049626142029389174850485079915066466629369117003014647690972700861553654416354702453738467956459759261339243188187662408137218705551347166559407050045243788294458475844606983939045479407196340387946607336621263715242687095437108804919542052417904634805086136243311114976637544091751436439655574632459259891277800911994284325329065024907323787207138698514488440435289846900169033534353564032938470764419499090560469820007584711434982302974282128559936323804002858616597443928250054747955919704367323579067065253377658944615851291633695481327680415148693263357080728612592176258762861827262835318049525930760209066094087355978651304456694745749378301730865140392426919529354467983796920286927631943398347643971952127869019021195299899339755319586905416962703322090513619950206669679060620040640942430608478164274976044977731349655484254736313646996542034971638579608107394949433951658781282762795737676806133832532419648462990826097696022864642126399917517282917376919095772445005375420925672573520003092320948555037046923272620236436761363321576106600758213547649380281253088449932112126534761424624477384963407106352318102399717764883057433167105224324185011269355935330301187117526569306710240089350321827648632697405582518040167931013112014352174477014408007772077326436761111309551880767461344877556842651900165706037552512496695652273197712781691692697478218328081608425625161014590314532032009274907884320062890427839951778016930800026381673265228486586766143552784659528267098568640869620673123362204488928368959443315540193353943803224607978111655055750661899471197590064504165327921196036724125596266024278464190203480210569457315801398949960877752142364671799530095346874266912397450489442871953201260836100092218135702155203985556193006613172744892279982826775170769066060724907990722154033671767694053906100013281126930511876014529370512665623528236178811682002405676463118387398149947016605946183578840037742142863406253443231843167710624506125236772744991631281468671045484255944507032177275779163894580454292883440250488430024267620065611795754070018957120281689749105330601336490062639358394746361950032883047493117233994862699529546630946096134048512129818654721707884708527412540310159815983472677571137930453234603492616985137005352896354334826357379929115028654861634316125360639061020713778254947173581341241837157161649351797099886736062614258268353636202287068077717184692825840542503605919506054417139863719648154297954832112103439320175336214425131469870306282290164309689975213205602409925256507466358459147689191530042854186249194684720386487427583347446275313803805167162687651995150224697572897369519732889101000815516440211527938415311499824866589281719407012021049477894259680963917071338164066434645914852278638736936158636360711925390518532939003358096784256668015168895370552885850683909811342395343105705258754117698849743955742305156532076266246512034802063213636657258252561710501216300572257467067525788338495987362760337521914160249921327459073755771663892893713403320434114139132461540816753336312984973661653128909177465578385085856535969296827191491208330628153338435707407398337283257069794435799117120126535779918415398513944429398085085805308979150310354080828349392852387099585063472302580116971983855679863246341201886555352976906008973535619453790367150349201648508835153455373672999695981530907393738862563418505754332917765209479484051471350087015927931430182640894094840804748294420927966344612488447866158799629332053683614468633124163752923213935153232603477615734805046312318277560464639077187906022654514529103539769448478069555287312017371123490483427809876275850416472654532118194568581029907689684791517961620658318641016500752584258209638030191286105203317975709215932214228819036518898539671588361489027508776365994336849159679921244606932623210584556796903878452927359049302346699071757716494017215356079721601730992666272727367146826099576553648110826107184156907273256658068380399446305085576971461424005208295652996188576407981642353392157473764450238297028474629009561982801223024158325226279447941129082919616444057101064923547867774448576518952285442688012375033615628668694213968753972672983370592593131492357778960828640395948289534667797845413287851250620211162323376456433549830930546990448440024263313803260055943788191056630315976894094883183519754072537717117376079843085589371870332339571374164105173710154433669075506262676820672837860702716859646562829709193749381366991059691984702061481511211985965521783984327306066628463707370327148504626346592354034779774197668903679238117224417178542322410937009171841198984643773005349426516837891166571361159409791588753873092890418009342103501747966510167938858345241228106829779555456682882313475492054101965547300748963862720383442717944244881389751429316842104642311549467065329643581139774361957447258079797419804730014430935591958935935472829884941963018174485618606692294425336649995881716809149538260864382530283400668593720219869950631940359828298107013882912526785884830867458880644095018595209458846050113388050119538841409928131698349612158246086911703263285613469495341290872542720519119720290527839666496642348171676289967297137720205878249450433122759274144270016623543852833229960764677558671891791667079527780395028965088727630710700445722062865162451343309492163712098433059598014060269978688510292406083935779296415317624632819230800368283859088795817129290321098350281916374569729396752132727215042747055503287842495397424495493422369715643200033376985462282220261302713581725122286388371152023387886127205566755113951232132038922644737275653042546024017895389243082325890524012162914515733704791028865232842199426408783642715901742079884601135053326331432522299960410104160157795194468899871719184346348576099708213072082487001811105320886018160880098246305040093361950066480824630076285144265238675060088558594600586187860096251544888505228623119459906208671005236982384765029919505919200789980731737403637028535390072687462543764411295736679167129791613205576492993284498350880664031885586228709857622705064327367924196846442509155773693052676849835336151992953886672160817759302329999352724181168134620440496232964176700945465901348602124373520688702319404345643590767210511121339854053632822783854784647447838109408701951428280222567720691499176894145634923582821489779236149681628665354091466179475259023556411139347181462781392657017099733462795788974210077336047271371716576459009745566778114186050213681067044331032627391365392357307253332403831961862700874275014938266666445658662853476726301546555571690142051847249441769207715618303824809256438481799044769578916923901362093100489909931442710135461174243905875083822901873678036401124652782546951266850962369769363133393069159062536762438550002504216370114707435588911723567876065554386439645764464928198001652221611552386018070707868233397874325181492476656388897895376144219014735218323725854788430878667836433746258878118711720138384839969602754466047673858154445744767357861187666545998960401614866840117298252652952359397423671449110897840198598381743304853008632544456859311390292008192875836282678404725495899840110034651086470670116698804710209056378379593809776497358517225650120167051089761944201850830493908421198802936226257478268184704188821285655739170010968906505322695006444863470776047733132913317434884154914469028544947839352750067638449836928695454725595654806393547799931524059623854046489152331487009430107397937346497210927635119036248172258831185080288437069819576748533905824285285241942755066043565787926031489746156447751780950196489443211865176862063524748298147185167234037658551856834065472926278187630016102727581755451087670352917931587488672945463309263932729557208980728942275786708025016313276197902664027881987288913154380215565511692629901356035358878045651757966822800173659409076185130289837353319970575915127584215911385861493086348722458013200044887996498736638553185147092355233395551537460821954535401448309420665221354467765370776476652705500438826730054851218276460458980197919842300583949698670256915918986343683408226867690839012013088169662701220736145046407543379821633352874396146109555612110402138250490611284305167327640101130805801090420995446081718980070774066697250194376492170278133658415388081860497872422424872599183721434438435311726226122163023692109280715467641060444507133472889608881226974531668209690088550109270327225945296908248753719558507737661298303132947975958981015440159737547617817762512915710018375048636618250443283014872778907326469506678177831100232653107541657895165217414891017050179427148518255197816306461411349566774398689553289981193491241058000657390706921416099185122440523079522008230054329725685685955349833718207564502602179185329655249072581601424132875856389628852041601541538684014088035792317669221652501922264755382612058256232922454205902481511445933725224235179555429765553102402287744746981732697794423737236331554309152851731697171065965065273556790862189048419526829684580222713818083188992265714200413203575186626690575665115684421207381701193067167608390324474671052604768939093056441603969666105241237019753897704756037706542021043655337810783519927056135353044885874776347699941127834149882364684402523807536716493072689570156790154618206114606903579953663894282283255606266084334237216269755291143598069068996729876185196360882990733679096235680285718334927253416258254294123453928378406844488441543945676865557083007464431902294017963570797347794773488042404521706864308342037605101580114322119435853348404179424547098670242263535435817481681961844791121681583382023652816694869151085596348679369498498999347734614340874655521964112962038743493630302053924459008678659579188216270123838587745931356897458970119058068544514943266886758191840911344593664893319162113100188818917696777951424668842474430326728228345892804865781625746076094357375280181707240317720771129972050645925324980414536786022120607647729720886331860116095676717051302609457648107517277442088363471994538789832890290419674585564127760433685160232974906400181488675326002943810397256641896360105829678660763243302722258743153889875170445492586113383483475975637521670133844450975664173010020195420272330514771667233626925566931011743346592294181135400298315821494156329656135734015946523455562204673767625066754371007294300968310361841680240697222582279948042996022601582171607273829184280368413667181611042353103729050083863704275433844051457298756415826069718216633611535054588196176765343670692801186556722610177058896426726851175355547200875116110171523124243224905631481595100905978376265812582178792432698670879670595311563065622811462287109060940976649046075077460026266435464029038739571851592722248717873689575774938351893164853559310027044322623696608146910260704892427440578769771117520914068268622889601124108440181077958176029842787663118809537755931135575272853625302175272655262653469222980912628914715447937411243450377287158629019171775567463291205540621313024647290535206087617715048756479300700206469194781033544614128971688605299364185782269719148294497479109795290374118951791442001592621765582624566119812443472955575236712095234483834584233294162613614797672675555177024571507012318118468188648814462636049193999351352749660190214177655354943040131932620689342625676825574420142904920659293956605140374914646237968597874893800893213221411180018282456040227905390625537713064373890894044940202600043547619032649681879527195481742538856648493848233283870078141398860657830129098719938135339677428158692440595197184190631542117600968451397569052881352546320951922107166659009480752013154281718743078397613644470006719205467905136854031260407917238022923836996965282418993969026436466275494023518069468130871947795427283842172024542522211998664410160292471078732107824790367656815870008771585467502326288121321572266292136960633547121513937954657503128991120101941075458636523391037779018368766317606579194748094596597373629146887631142511639315548335032417156118814905702605060148508588059095847754286442838855432600876880413191380932023806144041287412529810900173322564102754630072336132425267335046020911225061185942148902697647454777002918779372180501348039676109598304329597819232816541871385328433918989085266295905865573668534846300661762894255219179669299643728284960562745506945525646758047962082813361909031278519506101175762827552087395600049625333571730403866904200483613742489241444412174222805425870309044032653522349752416243302835565406160667913159418209643997827884530848043522533752758765166756252213403860542363864534322411203270659411279285775127380809244315526711536359056124607204999253043049664708190562749677713539949455424542843164410436713477290585769162303999508292420995024974217831762746211601589239242820767697062080298990010532512520685965079632889623165367867463346136401822820040540692275303330089110554045176078161909476322689605687778210961250048056506602823459013669518346285816598194682163766454270512630149672531479039670454854020800253802044482613049803671458873364718720010814274791044574246922987452828526160358757489153246692740382659058599211685243738462168539992840141987973431387141324602507870844870867311983201847005462169836552813862041041037110499605956349011262709959554329642705631769938642091020432046846256333181253068310935376145586492605655500275402005228798669164696383835426586596208594215612884338378013255664533293642882144048814860903227471018314164101133577041003821721869806367385661104148933490537689100357040793646979569999921556221046308310873604597527821666501288538776528310230108798757375496877122160829783183129248645707107561409825891084520223047593234982754208933887585866069523630638633603943041974622753051140645641157634208077042805190728628548938658837222076338718227336124545639369492339202214024584637675379821832697927196896327191312109239038695253298379839162882583933354931841384272680389072126181738864353483552321951200134529542833440903925403992009012869907559609335580175581778315187332547416712593130502215577893670527808479041526453460594990412144810348703710755327247217301838835735193962619857127787752377808580033519230255686388483935570029170184841966104059146639350131666088543585268633895412756430339414194912962823935043263055323069120850577796894023981362226704530959521863924317312139388534743959285302766935156722559914120616133960447182950059795722050752058778976145700157650544749791998943466571385770567171830505987671196210716137767376115594667018999796350845999704948909703781398590647395068334535348126349680976114738456933501483077229248512441399961538359104251741560373041793106475056016032348171815898982796897896607318868059979316892706805452993254382882110207152664476804578094207351333498151163821749174546051834139789775693479485199938766909897017152318514543109300672690772375528898042666920922238865035672397149546769334804787659039314523403721886249779349622496768026538536675942134222079599276888825853585853309392182856111947804827320247727840937006703401137789290976937567129081872819129158887386961605993448079896188560561499104645756377143347944136050385942658756446524171599408228573614964953753357272457083021754490112388268171524369349667875376588981779363758371769527538139007855983196218739811334524501967232456199688118215536518733428994065102460751142955081319270728576114564615404235959615294720886189448260589769453322724874691696415457795393602715858232548194134476544405243920690952463797646225730741291949341459604007806398144623522955431022503013517585031734869927919786060703979846266233584444012510365272998046648902048299594015103780305407427555686171487295866932782914097068549899013515239400305241210235454936963574548775049472644879792806767578319155239292770013624352309362678612011161476855121734868192690309680978311736935105887413133046143210796349066219505990385618469804632613368478431367340421412912379167851435277337488088667773715795371476248950566159571358406085757460144227483450418055641007548062872497883131871948100079971971736859793681237689900671336916399544983303146985321120941648971820824063847423677206393771902185236868454004522559078473578049431433686476131212447111335586604615506174563620075444037937814452731512268670009749050407955498339155760989388231763058989478352325894483243382976149969026754026764772568644906324102294322107650861578949241141633896936650372045957407579864215731656921481014150546734656875599924765342518605820262576372405211710783585283879819216888584820864078773316959057464838201054467233531100438011066388484108016158236960676436726741980682328226876675718988998679487870533618945941097507379784460701188401304258030984610493901843427698107947969469022780909000470651511260578700911395136479489836931400788262645088847309514247458785000582562462932517905495285312254819147138483334764497910289421714949005044264451597626037061178042559463302198856040777208085148361500041260784452478633253529312982923211664523613859699482130944458667053296169482274211470453039008842402775447975813298171896029699466808377266802204024615249671629270838549538325803620999460404435896930325823199611405272017788074068555516863183602842323828864822705957962627248473315050913520128928425908946252144740975886286956012935786021741724383985447803302042521315649648568544734981162668885211602306440693813209148094072015080562833903960770064964822487915663043509990408613591179674871813676916499908906931177291418931556236465751001728060171516330250642336286912179566022906197654248345457490907760919058747552240448798670976936728767355517374963896031274278744523031555956397668401997224461382483150367250942359916975623743619470368599895867248335167423517775354183568935617665451274799212511301427926600570470205007250112712401549802887110584221415022151179688329986390274904753277488024287716489956726873505415345994402739822970153223300739959014665090670243074567662550789465716394105595117678329006358324538701454427784078836722243945363143244871238991493150454176063844066925047630885650300612233077799861892932055771183131878690643727429881778062595442285422577379961773547084520350736958950617443042233083343383016122501004826212418255762962209902277549519854038386802998512285265655756587615889616757812182749020395542327948902255412323876394484651773628885360808515340719684956278706308434307714596444565824774765192263362365395998219514486254058089935121266894698844810527028489495138018216154765944637243297248133830463600841012131269072120029935406507596006159813527169810896902842353733911341422659480769777532712969057208713874657319231931579373744578238031048247390502723647830587953853779148294169609559754064870462382476496071212533900949105600533075390693098526133832650664246407404817625839377260552384595375793516429824747564431173500711576973328178306479450919780626432108705545498125523906754868355899962415493728355582962354200821890837566904912668137784258903119504244127924189030631122698315011299961681251945659711285343484038454283354639180849545809336133331399460685671687109007934670501507624075664896678979271228688829711397127946982013261399234219273044845866964643048110188283088894113167764319338282050649408091127348557139967249616813655581411506590269642824279071823306066565177315013846605468274833529539026337096234601028067996373972306585550572868692594954802895583023050385016134748955562503542406258010309267316819597599097606129407907429406159038046870923164501348431193547489759292141789895099382013496429016862334688533491324478510785135767507832913944643687765117638587973328854160045827023911776267388915119206300172951495927763563311390531659252952159785037622993038364747695832509579719679708959792620441229183666950241641956308085575940816583987628681001033551039548141828359647728044534021871719523827246239189861699580797803239850586654928689909978281864657502374175311002484556066924571092810534569879305341047634399412239437225603753637006614152543395704327689829905728161411673843445505993481894088488754370768120788702559644481952905993678745019048524596046074216630890721145567578822641647908416379169070117482835880835773904003794012867249049566752746561346923039819632193587933684127575429450623545450172914885119690153135661064652362257705372833685546355315335023680283315525314911272294431231836015728288247422343445977567319595078780482375264663408930651465722876921049446203271772708343609398410859480198514365555343328819251242410515570938733231766134075774395154742465475038151152562678346660501257986936435267920160046409468710885851095175629402513727849669701888595325768897222996423784915903388339569421167183662560434002744856046310481611167424355540269647884363655466768706401797550704204547736306486027024138416708089041859434242875653912704584809095163928832894568270034651720192571183239897807060874389205131161562091286692085966558087776004801234501736512042620897219151676804409318279509796566511444623421847810180850623383552084891999495789895050959543600690779789704566838789211841072297498738651699633788342125953616849704382233974832292184404588857317902807306297902894428055399742575283934940126239940000125068083469079842081513346325443436182593464136777490867543393618864807234287729681983632719170306453604081724044378631562331380097175458705111399494121624885190746390231467076666088774014797915913575629117630909168791965263417779378606221654127620166999091800447952369889797280720348634911046857005615117467255927607078020192435273546902188837022319376225550926931317176095426197157092434563022510029877586091067014421582064676444926444957047474162943557049656731809412108421061948691568546428783412024081936551540683397538077187429835291379890259912890255699940358402292019192731299062432217920596814380436564244434459867601814580608724412844877526707997026670490388686574640989936668965481868661839331288967611756123818859938080217857751133907917190363781933998142000164456957884158916877695188373115709222193844796982644921806173982334848375480710827286314150969865870960280294603372947277671382142722837714972874705024135846383546222177584430518306365302016129568171381987960656061647853832643023030607013241111680560019223235740682539472423056874758920681678143117486401489608871429760873071931378498880407872168227404970609342054553780504641055006470098586503865964307095104225994520101063068369491567801659548662345563263789242440571043940310359770223341198730441157068538207636426545829668545281796032769030110418038207807342398356554857672578214049758318513727421855257211789935218213223629950722217318157126699776943350234460572945398083469559858376284447595890044450518046847598614119634307233302988557417882150484910387924883417896434759569823608747024998906314418762061528282630051292834731196049622514948670516409453336344649252435826383868638951826604394833932274980775127717609391810613948654074948211543314376173775246079817631523908239958236920309654045435723876208567317596263903818974260971743753095124846626333059621088336340726320756865199624882441822756583569038706085065341290815384335916680335810619398996263421804441420869468740473564133443079912488975588197974634109368064834280630319171730215831703383306366854055756615849809708601343647725663015430479846310962192651070630379140145846189261596066369641445556041023936094845515902213228379345582756269248291998992928597582684700217904119733175171333852240273497690228638709234938065238546528869142606500069020140342738424521826129182723855963892377918478164867618339614816560923065891122826769199587383622509249163724956064113662162163416510594800486420380375567119233828271764088907395506606293281192905042675020078008705637017878211819970329648598488755413254269072374000093357680746967735465361192869398576543174872468172345905163851100788150967812710253652861169854269295321824049016770686196746839326997640745115988425758774747591734597867055932182352534255881384736054784106147430289931151776091828517629056712935426887295354416158626416870213405709509615252837136800154363038958710910658282052164524742296894001351586487394411979374241962722578711528919906222028358497854647807868522377852342850265959996974426145861921582371798489882844904158592940331750840020532900102015533015800687078560003523892173449126901250209296825838009896710668744636599515707304573383003440542374795296964754755328038333102369538340694503354619994970473794324388275033010875376007529778656668457170703653055186928521879540146119252004794757313171974527547769244908207588001610202580661872813472570934027962194573528735827545831835902032104095534311623444514638697303860269165659923405446926813067604887659028624735290846569465098386846036311101591696596216336461368674344585398100686720092622766696392528422504034620404644702331470358401641618099016778066632006274496666252005920583950355005553674087273419584251048728670524349379014196262172847051179237201690412156119068322768949126470431896652868948761668363154501208274244968347700968361657758434961287023226037395910781430421017348356381418365169920361569852603672646037978526084731455766449990607735223409651282122568630422278502718843183649179988616020995516125572153082718481577659765955315776537975316578733829182498896551116010199983617101697346899997531819578680498753353589713799745860483785745687731190295619555514380144382362622072209275337824218186291370448269573057291991596351567843843075448939292287768819548659053906652986085820114794269248542149436668913903158780810138264333760708242754708261110257471302110026929031177787504699780781952512468968088087017020208244775197841212489171917995536279494198652252597671476059133564671151451389993507185811121492688547727022681670743015158482459734848650475269090485283034241578198930991017961868090633703570220612708509640901993009326959285988359321483163204635147529640804394258820692047957176140723187725548763182633006501995516514948000852827265770918374373132925688310382567444947796348576042537127433367137725507896858892703737792801773102851878790457940463889512568456472965837050056685800457194468832815513736936243266821551349814951678730669150883679182245381634625482329254552716031573297911159155082977963382923174523086864759441005482832107107374879002401969940438846547267995099684285859103536458920171003363077996204502229160734555358704520691782874099142723804455545017465210607749252194301707771728133947205352217556976279465484552987180003997824110955950076637582431894919361812620194560549033087506832006969909287133413137828459064710523525915494918034266486014799369445250009501507515459230755660108494197601743341558014828368887761750921989451779799615487998923701438925168663750571344432924077470714818678760954539727593149470692237191073700795645457451405749447092068879827402005741359235142300277682483369362193218022150634825598698338338782840568616944245919721204295084468777780299059569191613239013393331582704397169793495971307186612342541459309978106518638408730516941891006076442313548118448916711289219301423920937134405111182220673341034192454093153568649891929928467176241228705436573984117291778383388507671587043100698737977020121852768950499356578216685641626809179221519236884774033462629654169892444963689873970541459222752068202182055501610121458448638485729152533453129616019510700924430044922380576465921500215963653405671827307117970769039345071048105067654972113687807252413570423968480971075708382866614312433359709149961334887134058685263272583609494056450300620854360577920736995223942594321541033539324479794899529082660557823901783473853424499826410973208859336096409402049296519128699508223930025154113193175711176907845051401690856142939397806955177333013441703375504493501197041958724913314843263769380373714203642183625105199303709025452434279419703400827082465861957624990352670328709438734837866639656082479436272277809514609867425455581278945946205848458813110707589223910542819683548253219775015287762433958242166499302009266957049466494607965736288941131378017513565394224175225143077747787141133075578936382687136849441551293308595015890611763040206927002883894047494550165748170209356100385937459379838620993273827082522395573084987717304990196357071904537747605514171656323535516803798769163293630542679275276241817324752259147481666018196182988544268288633921119235712170062834983058467355181605241128261996813583124843182017540496829737339589215677986150464278443025670830225996576728376092665587977966194985411125865137306954179330965315876198127352955736147757758324581711506216707280029438336132078811025891804405302549125094714049517636004467449531569969034743042609815780106101011617809312854847479378585630525833555357330009123535812513978056421443391507358040307214515525874196085964251391454276912139367515031612806635618368567540888636652592166082965310167834076394685915983631866085319070859294635795692118527343807937428790344356886373379911478580250982035367346013721413775317147003494618643852018237019294961083204045585766227560852222516399037674499900412060945542334854841505413648920893548914773188271597460643037931409072732450744569388805684226749840420914548506208009296978490236879745729394675190466973727833008051805086145725103513914088101154004283427391537742239813520078679198855519909783031450268851600933903160641664746023608922825719439441951017847808490979575342734094403325517603329248444962231518894012179280774827658897748984966831272466790328459811930468693804979166615326154928939105469595757641426249162368956002983175427870687234640121945897466202380143454705987405118786067035412908253812015310661464184416142093969776345096706857519487478008011572298328514169201126229794142202752047163061625028380677933960395311771332187909807444505691768488407946464315828324111451724992454237811795974582402411443947107548397574083309504050042381212453485211723375099409047477059879157290467469463860871618343912186007576565606616902836179202042037980748160641326370704761162891780747260431399861185351850358036624057387138167934163069838162926851206493290515929459681660822731780253125203284181120310475843771379053808694754493006228745335859065037050342253938547444180991517076124434705436280645198102445129230070899683719256442951269733072236560889095253899331443976877472401179981402001759126881319995839922625240997970594251666047413509234990027359644706002522851521891204700468070627415960315603157006550056269438914526287363253585177412818338652182988764186496214802008061157463643521202322381360692399991237327627865044975885427197456474863284548545354974073344899366115732827645522655015398680418005617719074351548987595751534172710037025684634700311921168668699399262913862637486092000390884592908306795285517757864451608909761175192636439586476768973986668109119553594366354443453459791479952988708794278141829399973171281781313375854734929120617887693832009835077424910783776595779055067767028222495188070147112831901630818065526516773719065194323367145057195190401941838297823502018466770844131396439595328785614701512371399224396829441441920012696137290818683707078466709630571121896636302343286501691896108847294896297017552697924106174108072687123436045817792125490359864296139551495612522504851234955644869682897539710200188699837328946171192870668777934966896115689966013414367986305221608166052723576114709778321479672213608693534112752463953526790422737110209170689134657960029619788735392700521710858289342405141473878243780480029724502247914153617662878357267532171131846071574426613340702931379752097002139885077467238659424020077677024497566484391113151202197734338355309157596852282328709200497429338189153853389151594831316954978630969828130461817208938287285663753583608404574949839362889186996550032624813015488766357975116807176217494080241980573821143504337369567996467497806173872076269401996253948588068312721544864729916316686459162734353925693137892429563724710131806288112659383255444106892622231157731393925432404517067409864573925202218045681846735657903451553391723558147169172860035716614287648052272729044022089107648137095533132547059560220596352451954160670571120227022748985027239535647745344829713691597517938251921329936675012608634703388093581954186523980906560823267296679448661003364493560224104081810284557224844980870218402620021806196723696968269165885687909564853700151221582806770258847200120323545066618431735726245008633712931432926671746463098964643969571791016845114273604012936421716288182412289624224340037860399582291978183411761420777569871603881968520579539465101397239033904352545042365623974614454977315687728717469308692815748804402705425443230861202631399535733279713324677149029962608634296818472828726005125525163299554641530666642865754072748854796732476466757992388105732621227784105136045983363967155546932243610070353482560685873148984346342212727963334004681519905608578317920234066829573217812143745718225511980448975921125819108889366244927393352498434160305428534654241656661440549445542839612961683890092509411108638713142672651583135884037250222566564181905217919519834402344661618806370961415498327939559860641907585092231465286101474057905254975801836847529533582727605931333142688997384119770678132679992532365521866768393647039162930959322533368769968061275324652045202221987541319098869969571749430333642981252266859548984721623352386769483731505986563159176942831483255447213973999990023596808652135477218584428789371383729319839088859594667168822684039608950704826135402200656407051301745139488337122399829138220498835955444919346262675171990912915637450333466059858063335729559015669853153829670775493593084101113050403012570975862228854237066555950096044778252610396677985152321996287504353468101888204749654515915077519603139645019990940445827404166486733793303935872418555150451480498011341032765998512619394173211991722891757192876154227221716905331541381511680243775863165464063102280619592957473957490299914310924793913861516474689384991089648332053217964930076208711768774584565624522926742355244574475619076903525924804676815546548652335910984996734431700063149687327762586726984924223625279492153326140856441724862202123350414791531284063231855090666473811862728250717063342593498194509954518024850886112371441401626699257229918983535157525616167368747111038339694430456862506092583203410755313098466265044687361244929667098125396297820365375476085123208470358015559456528788097459043113166097839005107156669756888805268621720481752480496792654290104950934352243819768208324446826020498284008778574986809806562234096570790888653894447163961056842218066975367069358287090669367677467886672198606469440925310489645423164409542315625674974198474646296715906996957546195423712520698135524988550567520398683280922376472894897514397267618456330765891846210020714790541371698567117775294350644277617211210710330667340889979090408058337815582549058186591239468855509065985064580651627100541772522533750879683036194739592378810892929147501659099624693533412204783705073452640140607557930976117934446883495141269436159358227070127481980565584707100768554301108907902168975918354295466141630223205108107513632020885316642050366947832685447390705278423506588567667088218942052216709726304824208348239273834332958217623009067753313280339380811547094015838650995848236830902210636273038941461382731981832993861324818882042348794131152318939773783826025737046907214346449490362227426487788997729092974727961522636411213448696350037140334672789105349758779341520902185710609553241123277594549493254257982666294083290845993148476710690701499424574102066451931421069887042904290818003256884546870219939347990617456211987517497225474819247174619498328843031968532954235382305331772029353058295792576126888860916018467176695851266193405539531786074221628555428275304952314075770837940978795970827496867869520599564282159420628294176703196940895439415368492810657221261003569868379862132161470584623787385768158463839610728842890978388094048872560255437481101969605754468218018978621611172024622501052793405742910439219603863344730286233887390822548320059669528697933602824389709540203503646695574656005303882484249180112023185253034775551667364627584089814256938701139155523326680434026989776003745685400980731884013164114529922122550503995925157807317451129349638586630919449895426246180273045083072189258343477876922905719516434566467412275425772153717411259178931153323272995558603155122759780918031132251779426139707393572367362123193523537963507194092419791901747660837278571299366425707013285785115667223524520298180437834711978497657826080044873799237050309173571074072744483390391165206087930011972237510558771692992811141951964688443101977396109397064272230087173966417796312143189575591672598451629247230601068776471143766423521164279092174707783365595943300090890959403196293199857177602690653222238396171272724099840531108298341258772395662279208785318743381758171472814448772055425084979710114146543563455038985272188326444182721727207994043761135930456593661034402454021746567531293952037455306266953953518465184854131683218016441666266714820931225137211633646315689254785134438601340324017081970444703952529096071855488163545873926140730182566926426229543243928259905289860252408269472092227276705900172004687889268312379831694497146784319702168286200911716182417551200717786676013431071983921800022451664092575910935610872988858349497861437983502218600326863845591759018592040452628148254921265874044661196954667401029897216986515181403296346956464151718405063879732812710270370433737749221303614891195060632962125721555373501916605415177971749979735195984363166286055088934676393799227421584731740114853782031464545478454243614674104517905499948222436724204783708019199287792008107173693873303853011821593004032309748632933744191720019915503828123040326933681337581955899063495171274418606875696853264540680375971343242723275375575572148512295598058240670860721774430703158254167790105721715398885096844484345850989238672397419979765175568562624147758163401614257584021576049517760213740757859269425149597452966068139968735083998310036956330508139187227926192290094502404904140010635008885670881303019126708863542441408067557416533415462042939767418641259220383090524080343266845446662852311064830960366473419593196020688806894129077744858514389693772458405394287601032808317977830551864744158830344643789557694756664855682178933384863627393859490886472100417441625802907337036701933176694431842560573301873152051193240676709557258429302356628346475875674502791759218908084500690234823873992185451011346461964741850013001187084297920047094781997909584838196596033867250199468996051465902313300109178262024304645182910417433368872673713828301214744341019190072333930792958683952736146873277841009232926872859600130839865839481518165519496286342529205763064642057414687544618302398663402449912177277732037996690002108560903352889671721663031070059913358308760957733041349194990510011307347876716333034835823838470186115330919913631053417728045865024197407623301753055905687163226292929862850508441745685493853675284872192773752671108939320406055927209505443088584352142260674802355359317107379048327419641596668000072900950623400031526751825871290713919503833552410734664622107110201613949872552482536825005257531912361765722740485913294247855295705246997641634238316206943961047175398742156987021840428170117968531612313199471401648704184233356648023938957741104680297060091682625217635294087808504918618466037463534516240280076930471324133034542743947959313151833702907686936018018039517611826250404473326949712235389108279817537805827434241950183403024806589848139351581599528442521807574704508436777825412900583626356812171388943276791812894605106303107427594997402849308444798742128284894643091472173950699762584247442537906632744292948806620960160767478954172590004716578370347381638983841164268695354362014209171930022635350106337085554546248640035334443390644366552434716459292140234564558840506175963708129866294562536731709206911289069255822030048572435792926880600880866335080361238796223486798433321947615591690691753711583860992126889048830426469587056936685424206913309725561284992807739884697763114862918317703671942296739719683807369560895749769971516273209415431197181635511858511977507888390507955215650650428286451097771663489084337660218607882586175068776441482460192480531992415256325641181336411786098408079905432224570060353505282665429930337777147547761024704909362651853800043901537434868941583304197347454927313958415699106759272527099539147700781751393479967945493432027114724248115998155535269952314986593690315110563737163043232288043599915089534912889472317002485766028398204378592829112594883363172475461216631704690844498662426229466276792389968782566938635225135532481969295123920943406643806323136543333504351606288989552102089264749641387578117350794447395542294778609702351340611910387101260836034458812585555181531768519163750976308185139062296096140172207083845559259327535063905711026429069582609534869085837944220050830167950696847245235987107391085159776417559316619648608011938214528214908755587978370073452181016301260882073692866308196819705313794690944091037158403413244449684436736219991997419419927078432178511811218626362668980919878080459597260165796378476046854079921006258799351948416739894567129775837884747251397580592305092009620254402433319207649912237126774912865772029747012293119040393031316216930496296379877626585971524249107650695443098450599264426252928980586564908149267522113789799483937742480576166029440640247387807521438737595298790728231394343748728952801222493228401921048653716638783422941080069529428479290977272758138966897636260689596610463168789533814253692700921530307884544039804273297974574266711992021512504657558860650136775360973420145631951385811076525830163904950463504479850534078626824159019040285991339635215591985008673782026999128139720848568689300202718303708655042126626247761753326163602957034352610085774963946936455178696175956699816311592690693034483534993827617127840171601669253897724079915753992074843013683764048481303950757175823308015421013944666345319641328497201451513793475750789429171304079360100832972769393852711160098535955179159417350856506018770485277184672682929483859092690107897571243453610528826201511161651511772521921090872167659202594712714590762770422650200420009769800381541678277590116496885103192175445846614198489078957937591785137527893554962894561217981805369871512648551176842171664922154169349487187247887352995389346852914204449834181365577480633956227788779246457373730408496354173778994966724295289532754311582802109918082798175006414760984348032189447083090138060121386361021547310664427542663086250052632123253214029429837852180135885390898075170581130334274378385715413609805137219456332790009988354127718955591221949791404681918323899366531605823126267457760376884479193059367393668191210474306725014772464732509536806842143622005626236880206976247752652509441311352171640468244739297584732316947040066631466669789686252730605239225381175015933940188436829344049332838377540146885932570042590554613265594986006676380419693204684672512030672503406375760971010722198563041791051929843437485270900345708570973590693377239115595087541513568424162817148213479549134611733158676930091778715127434905491511463707537099889874740753144470745685654798028578303688516796023174460057141116315736716310778592888866392649617446519781866135964095845498616290075168398893013112982236725009836833566544660751120220584984892908210771000171523398295009819677696002099744392949369681218525417089711217064532230088178567878299608761704735675725715377733507079918163310496465167719747021594788611523355785249334182506496011781607908078674287312431632837707766169293101460235008026403919101486779840370870961455234968452390711852168541749929741423601159012632554123874803775510986184646083187944147063075062018635080957566720200406494849787176717107468028927971757672635152285579131921999014620519618855857795635935930354057842724123177044628836594360170569928445099842261900741703388876413010306440940059846816010271517329453592076077572518678594358257050139273083855446218503015214221474107543735823988533162237750363336269458090405996627139794716814255194953431510621429159592683076342645053779114865689740694057041340892878651460228684776035762402936216977000329928083177436038786284545576025186757189906324872614799303358373033796487388216245688599510320798772062492530721369633284583251610005604289384517946129927846756873927879978791758410232622406235739986646169588499304021019621711426877924466506223393063366297841713128909156858516104174773314729884025184638225417146444730942618997376357485532954651810545653289410851615273834745498598153875575814181987981268478541649472491556936495337048769301220679488437208493159536351650663164536972538440249202329344419485455448196688039377489644358687603789637277646424027083802599547332690024632245316849192629668314308148898142262200453510740175489171131797258710606842748591160858523228169002895268623642947088371282089650527983957658714951566713386678440391236630358589919340438718704653699552857744175148204214781881649060991903583684613039743795301845706768367042642883902248761364027545394882410719429149073298873087146434797482490699879428790639439560207971633020072588064062545784008471094970990368551452745131434585235303059741660638517241093847161402224048112039384721426067829926813988441883957483000566295307456718341804504751638450716649272533145092912643294917580750472585666456186286636561501665521995861223745883225345442700249454804450949830051226952058909741992811445499972058040089692152745570044980602653064662018959407233667107322792975025333826232206074178044636475522194166868425421132404640479515532350719325243391476224249786561529038271548170070847120249778423441690149841136278486722540599285911188807902018260636208614267804816833929302820204139420442850048956706845127131545415347468176191296075197023734922396058463596823493566639726425524853466858567626765633768632261940922278386966989730009354858853624738155029853168973047295641554706574211074722705126713781016821531269044897733233666269821512687671956533310324822698584925057119408705031702418316464289568098336155857928419555910683499331538423271496723551601254942817886931662628193964377185053958417096311726171779096188039776806985303674419015705145860681476446199887914387928318513459096123050502919957894168123826574908706073232731231357977876387410704457863679094949511908931348080819854592279907467631974758935312201383618385086741745548406097911959673008652588923541091994867218214682445149664625760225163961295666708328064163209559681438512172623454528551281582366981952123607548999964202569242022858382957295293860680029415803538061944137420707598004612003018227235640183000593077885814283526276139100645748920803307947291207987313949064434318933457291440485397493353270429301199105458356041714578040465585669770978194694084940621051465911007975697192999504625680365872205321367587863829691813279851900881377383705829082015263863468645194782824092538296596953086932847100741904191822192466564469546894965367350248806630612261919209450906035899857052326982981600188646519526608191535949605957091448438642270257332836838852960416444113538721671552675656940478088422707987856982454108581227947071806299267278087756452020832178105793762111781812161234989412568459841642375633013830976396714636615691616441004369983394354492190197975143066713484073818781079522370568085010264604780723599709766814915907323810397443146800289175981342200989800768280212301156624726151436967335827755625170071704616742663477159842849150098779319246204319726744729165873067289560865978933431910905807325597650601898151954307229054374993009955805108228182920467069733612112409663972860932103520797553362315283169232801401406832772387020998868145135945069967867031597859037367359552595436888598195829370415279803558246325317874150423774397709553369708280554416833356906501130182610196982283826972214919999343889662206674568646736367254651089730467837041699699371759817707303192487454960869275444186873830938786296156070123549122884313734942435551073365874838095073797648519447775450045913775302425398866699602198136935899497373915014141723847203066573705248734623645071153713259818838535441799806446406288512080368779221052256312262612334492313482237537790520934527479566004406258682529707565753808287771051449258669048787091728884792502968225768179339478461483688909554123217098774989971671486187476688209886137590412504476562980762399709733275424110296919938142992059303997202191667391440423022136845872831240746257888552126481101190956666380187219222197832407646495905399806132750992816118238065844536387626397484157715618878820399508907148134915061026822149756722835877754376425061579195325051490569483649221536234033749440195484042546157891854712929750264103757585670215620455163005089730899230103083417854693505394412320876847222188887437280571999501358959636354516603765247641666752554753616214052978088926192812230838901666013372547219204112245709167377713092699174545153904947128381671583238512601063600117528173328070412721383228667088821723070287998623903244932145882369354592421078519728859914078682009615488110533310863280239007683171192256051870680939140936665107107396925613739935974936672085544873832644399903914637612330061692605769476893786687261253920704820921771840774739516292879429478807593879132458931758453549531571309288429263658944442915785657250159601382993357126429734642991152450872364502173292004285628031165801801838820483226026484250972384591570969001880187851534943070539994014336753225567874170811172310239248073144069878900767155931119527220251537550338672385967609926401541314418881139767234696890528355723961063302637920650960385168629208178004672476567635219880455405604019458164184052021134071024300356013671592330017769702424709457734131871565355591188233522689229412447317274177224871361317213120174546766701063819649859245046752171952135556193134179163076797248309005369194522686655382809934221274256386151152142850756625365995773199303906966668551503779353713343240179063126846654772339056971816435496561576811517227645239748333148414033859252518639631256665433153390548705413938323842462297754522523889056749817410222639040160924151308322926398646384449174063489584771935121335484699351091237539953644946900699384666070429643215742612532300124413642502719632220126927241951320862985122886422390606860982345276241742097151461829178156748557599164964168692107705268880586491816090969082253438887344013651388576846544399932682605351603057804308429908542254313396263987182893391702941647212008104334867539867494446210963623101241411739233719977835328674950713413713752631465150408614315344920496933789264333035515602471408621419877901671252006991889443604959447725196848095500409333475285018393464211541083882307622150846060816288326739883410429823078093737032063647483095732121272050040376639920493330371011496817741484906023080173525597281801605404926274810196752538017047894007949627430685767032403264507220121258951092465143768592070318624564390673500338846194236346776065461173122979027384595913498702814214457541615192844354638804730820244044258697973898703045394328290596627039966738260251099160836239945394449331617244353757844808979974144327674787970306386910298328716975959217694072137670023695115126817582005158033492198783660199238625302471492372426035376410101222295263814700875083102727837111363373019128263454551560789175011851494317965671136929177266268470989478945532888701304139195923457962642874804415226985547452369383863804215063752214395060412565306438388391255177720568077289885203689655027920127003846059742910964879680327766063933567011892582104513774969257040215724065049331635352955517212098840052160151730559623937800324207942982302835858408117920803540514926713850429905075104552068661411215465992556974487977726665100150384045729017369052258414810582550542030987003741597275054218721329295928859333573190364547945520940187782836554999655543216067154205974603528203774758720981727493539153438383252285207760674692057592602064197591808479009038027841650462452845947313381264070372527702799583928701766519309849986781718408932694743511746304538788798182636164893082291274856791668075090505469189357017360162065192478970552358089636651266105935016872565488335644923256885081616714606502979716723758271385405763838664226615279850457861772022883008629528997889506725689246771140189424900200809720502856720663826234859958798125892741623919249259637344871297506557511745162871632771392179182890782722626802789629347144493293305825143697062339066450545488240786058313466601254539037217805391396313445734968223648846730086943380213636341188078176342304108223178571837154092810311339475467954713214496046744812457054889704140873445047148717770792066429308710766908466924799441271526402736469298025125048959397262886721225257898294254538224929987368239040098624779848159477852803625092951566104044742666007383781627053216336201050367623483340069171197352486628441393718638172894014512953285600623354356473545654992164408412240892430955590792812446559802440153652685363378018816871637864167733364808721798487654522400015985401210848829238200043120219969254576159653333376038730099368330480972932221057466837978614908694436205496651378966454058375707172376793466628103919622815272991274103455541079197687075986022466537516357627058805266621986215538170103650891985696427883425799631971441796827895493802418333074525188236407354207449075432947432963537815904081462770776727922656112263593449798786195545168974876090390746174933715554652827524897679602236504252103072565571179360043881479514702611146146569228547227013310737402244617210392583485359236767107466432403942557081985684907676285172693985848204134703583700675524973892536373319942747272639792867647538041698004892458347865215158711368507976104947065454502022004517056503844411185575297747694230510443933701204712406056404579283033145168481675324939346491010858132907746264702625047118991657922245122105946983614044007740184269377116623234780924569748217119086222679776318718037362080917766225593041506645802921393931751626380857165660431614374228605532978075617896763996592309323077900496849307461292172172439129977844979440345609491961603459929363894769220787748374157149269095081124571529470580993366668670828097289053277978585261629473343712336062657901871972171890403758260616790899100770232292967342884100841848349299807494873145700698702312869373312863833369044113854534093957094361543859235850936251005278402722207761155052138536942232879448113936288759656458140413227807599139680681464691383222605560540380950226046786613230160874327832959779259691758763359135909395037936742660512974125502136682153652555102067661127395374496560960644217036400966796413095687473559720471581230660931107009154482737159094782828745658498250394449754493724818633476559359272602318679601701481929315262969608599768062362635338799585339414322873394124034389547715245923167774057796308274558586440507825190244966126589197925264059731626780590345826143397544307226492858307743913535522141580719661573385674255397785744308027534431433653383821959366888248229849189209152121591249158395778897049596729811696188617523006053907282052434403722114461458786987547862256886769558074442398103226026210222811832992793131506211727247596695516163467499495398725317030258480606862943175278233392935782440836727161723036794952510723060087613203981805472530348446603093545192879875169422823713187816180608102366049448702872520894986813863004423009514873903428078761743094370574377727380468479709119456615495097677074559444630298902828642314156534644702823860936531963885924643313253250413771485109971526549982847118041583183789191860299725885932162347755022121019926061036463571640067233696907937694562803619979844298312135180785219459370286200386189718897119661918857886820853034837421242068180670722659424878927129720688577691699902705692883033239367531378669218892541492221766480341881575342581155018992196076428749242338088121972345771278307879616788357430557287317733928435905309964442297832767907731076948887455217990968399766378749519024575031465909785850693371977693420307645966934299494154397284065215100130967098936254338130069623354855948646827519551283474755495536168034812448005792585521876182863332208612749890644287349218899851761839358303826560073980707046737678939540180761504877526733305250779697052787640188584283508587243516519665623444694463472049389930457758652361056263951380384886502851026110530753696579419367525180313142170006806843162003038337284620527587463805743907621099242618355426036809865440443054608713035834404405379506131803911227435736751674811051864472476746257144981303800863941279375685550088228535126236507099190955616860767626461466288406069135233272421315579799924798817421134513240992109694828682748174948006647727997908525714147707875076074295136993897430915074834791598603827907375664709123129588461138242378852462137734101117203451035895278575953172999834360345596107024814894086023495701616780371262992793020569766064270389773592467295287602460385106496004706861091915605159867145914473010038113018161323973805443785429138302827896035526851548308734247733888212289926036733891114042204533531602669339548819866201138498162571376661631731053006078096341054664526442513694000603841122773618862009239096476807398393019674064219163817073187140510130977457669174814211269200281948471202292098529926683126084716041876758521489542505614380594349847433595545843691937423307903777999838443885964731870937195252038656713575511664710285692864800684885967504576601108762214196713868649402559693158990614575541966412612904507830288066000548790349789007739595426059234878759811699626394280187289573687120406180933944017111552525577666056507468513492079578636489232774493900028477178810713010992501426164464571618521897396289273725168916754881503274861614391294393593304264263194266916925945454135324391876001112326808582938376251142506727109857437901897240956453304377389279851524462863040028614820843170024877334586618018223939911898561564909402004241056903457869238301273010194766205323285835936356737864890221269031301318019195879255539295997167433766158986710897876637459133715881098814370379167050120814850524506102836356160087076457813375788709154985915137605216731028732369500226462198980081004960129477657982292785342954397890713233801430412697863632127231497443848757453422788725347349626349508015629290486971421321822129696277173225226909138701710208535281200484419319408043118564464068098721973912523205414656725190164449263002828399160444279695317759036304653591623431913021096628051749087369786480862221217048212100366200137844188741341120779793129443461066033406487401209638478773246901823391360907359939786302444430324071280700179975287724236203126120035587681902601466420083339058614633016044994546595966453816796041946231926577899067775661880064152321704840591244656926196840686727535456440731046662315033604528524479649983500316043749484928036474561515737544281534975911345791020165904694810898855840813205268117650907294101989852295405196936099790853867290252551894863556125303553085187217199717521748716013568466069405989822807145337285324922203905388356064463291605011164978079183459018002457241296402799906722486062978197219528237854133175875847994502506688588785965845023806732666255511544895457650504593171604551030710909915849090697634293696700651238436965006610047439029458216079323883292851233843236925451589143763427531929678871915682721403842902610418142672525217297492506944811402301385431837929783380617076581465344049731313643596667530342055427737194227975771286038312094780394587184774765606653809563071876403941778189520012042276770891582728674799321984566801167484787613226312575086358176736948995506773879695874061706042901554159459820778044624562667320298055189832834759192318185267511703193527331213130327237605052555904601279680660665992818457942880299274060188669681742685734018509323855351157796594400045797136843588114020448033188499069277404666924082988227706267960233561176746325726310863293137327465309073366017360498192874045090993549890747716733068712738174139305850825691421280584950413728546712327575141753980582969739511014632197228746612894634356112364499013085334633530203355405758959643837949967726918085535099723876848696695394880220910192476428062648526576223274301083993347639779396203179014620341982186848271938893067108906204531064218982565963848410955912618533382411310732689550482124125787066622378570243739114206028458044807182014217015574032666546270303143464263434604413630854336972589212283152586717807515350952541509767359199010263115331691199845003033173388135686253452542409248547775073064919365988676501559063611652012721553428625633218746760577421512609499409611596407704914017286671414641237945241956194295866518689599842896615964506986275994134362688665933481486363883350984187238199987349368038035524185549888688765119800415053488955224764347966125882113742611186555183308153492428234505786223738000954663122993570784684329638471062150758103532950672069771635803306468053958319681877382519377760542057465471840078932716022910334214739660489902803817555464721195041214711200580761272080043059540924832084449133760871083867742824205735552739202489060724702290281922373553099390040108944833279825543221589244890824087609654176239517132406210139746383243460901791589131773335709627676781819993314580905328674004930320816019953666237687051450960164502505883295827233007870916159766797344593784377091205865243495273983105052104898893488187594136134904306927039668887801436078375182544151358780759465838896666914799920728174112160843769874030736475549106836701515477682208146565757111620295179801709799721794136757609673262987243827992681563103786350211663368028290888806997590452978126756310235390112942277049054166487500134106948995830504466447378855314016381657988329996754301179792111694242258769718115301222066514467281442962868931975256596153861954964510566121471616784718947506122199810544121026971326205766513661110842069650009964765474766060707780055659395952982250427811829463843793440312860880071775627885695314246894667001525751529588595273441106918876424982781221667462890778278369208920535825111881670284324871460054479572161930466610715841495542932281392469356987657894165250989127069967348181179254106406856515959074281890833881892301307054341733237294831464409125637052931206820609035570913394725709050074278688507753628827952248836015813150899993605968397589501860153984317800933424111544503904039318254627522531980561803838402438358028864591406544955214283922511350243893523901537871080215139341661153267282815330016099894812531855296018892127753521217446369705026405943515390395323184046412991811982906295299572356462692902071274026407935377722870595015239268762282957846485911918765342347238500282935593485905987908947757134120964895033040074947530802673823372707684213683585761845691656328195841205076926877361048237516465740467883283610264222679544829299591720084148101467698180972017161101030612210333047652533917085802941692421970379515205207508671553349398337951932003322248102062926116810635361906913000150163335500425488371301793497297803226357570924975854371971189184148952092881795809027634413603503333989019847594818259253233684273977538173896065706994923541757943689712083109994231483168700149061907029914193588137407090246416592344329924551084751454008224114411154497832569937068907129880330322479156440505763498782747396924844733780207985607766840831289950755541240401322519199123249866635787396876994320387388081961316968521887747337715890651152910863102258130388260710663770302701347461362760964806321747986337587918540695103789783463898542091002735754383330624939967352255911562024381782293224078474917007574181660668176871277564406576185310384711081558877048361329885115582468822091135861640510729620638880206200915662961322112692621683362082656186971296810491714711613678682259047786093693994184926581319831300743741204049721063125338000485352603304301319114791772853165123623674045213053545712922916751173372237363422962588813663598202982897582165778094685826933191753089946539541936388763240740072423302778799569886014728082013971992101778222126168728567423779711108138795209997135464837013875085057233264257547299233240755327853398919362210676507121632031183698897166514696988233382887923252382077634856220606027977570969962896583759320422168374719968808451228777866340428052725616063829169672607962037995818664258653021235129817874125219310560094484985795944256398452065733846656323924080747110298134825620145572665925340907173779654616353454083501085210789737933703160178218162202364631747589180153350068607638547567534583549929132567672245572917720025891805141447928816047956067769579970750730183922293929951628239831156036331499686505698902051975632306265567291935864083428430439895226609287747164455178634157087766963666352521653969975481145655280830335155070129669801863678407580060155924884884345423133234630854713213896633541328000879598547738345454544071250440384315794899361947727654405742647005591526801864474141842807800930728014457818780332593848421229597690546471170388537901943819495890746229086325018528534364001714393318446728985541403852546983105673470138310620995277030428567517973682871708844693616344336712332818045703836392611230669510302783146113026528124168908068437896268459717476301630553587414348166535163380862435314618462640103926217092619090484271992972279822058489608829123482532682734096657221104800578361297319966261500697613387966370727444306898123520388892921343866036791630880023840981819555413951860939335220504971749721479833300471011928435972960943946796938250597975645241413110919552017617634115140288371931724875023136910635091492005970128472724236353080057677295083669952754518886532176281841850658914520467361968574230106186384546008562510084696242551097619748752600169647335828948286811221243483868768415808993149327002099860847896064459248475264938366690793095515585253334274605429423507957019013174470813973635421139419709655710355939964879235322154798455599523879488992501445015719144387688836786361257441380198934978793357301099326476447145843587483082279260777099343637679925888358260269328394018282939906776445939205057264736156409905071449125622503539703038267211359106681430461352955990758844747844354274140866701794512397980339280772865484251235304780977959914996461093406394150199264643839807614161434836820341200683913817563401093776771232222994019516214604422696185577232243305795802393125607651084835617657769804075237603862983914451992238370158348667941788324390362308966424625761887525312659356361382147704860903585799550196724633347671229094443352192995232497361947084987902115709537824325037258590813666821731258571107113251389515707706298905176917578438611580199330399092283943545189085361140079341684298039637073881284306051729346349660698088412930327276102080210291310603908636942962155705672491896248021485342470003311216836360578273133001096293017391958812571812498714910352386921153474749403103390205793424570234181145640472709422877494137200016970656548505679812446222695124495854524092490313252295852215432273897951609937256422846697155069311481290858954715536235134935159384754690050762441220512438249586173436949450538032955787272330695013907803522787062472344602519974324995035443874771337413252667985997648184076067151737899696407091862914218841904238513267343561160349125137523672961514893560021960277512568986301461563906068815236181913938190483186536829177726840390271493730138160480233289388685627740074930692190489921701510763715682046290845220888175743918018779188193660424096163622220175598914869356908424226268952389858219179121017526447377920011415545800472780966130773512555785624263706988571619527930773654314388250690144919790065536512024731712749799598697614259873808325335446009586098745283125083030774035475359747433450913003169066697342327440322868576722490295855047006382124024373304764050791391110349674013291042890569602816468527367448822654385566273508266126259097175704881828032899380645994691867743771391933067830382805033251816826036690168926419958390794632365571054783670441812993836211218300364959807133191916583506195800712723897628960932336245083613881748564484794229170924666501111743730836023601776015716825280496825187809778818521277382054403008128274653190501548853415525804907945501019016957075293976074134700621349020617859230061978278625090332580835359090836467369806202368373973185396078596963807463759761389765276786789999323280037045436656808357183413911535741427403249610740420941101056892260757129310393402217459227940988846698213748377342072973417311913335190466818151303420174496919197324744975829172823738967078522167747607354229712805655403215553047734928204791432576829141047150507025711923585810581980740446673696375358681853988669733337410251797714389854228545270123815631990506359622896218032202423064861497376214268904251454691057558016089188061102106037791624532713800742225907503298591689186625752111796894148342779055985338320379598918376723695124706295749723746886802937830474433447867156740156270513720472728546851114345372903599697556824795437391300038500275319603620771759686121782081686592682264421231252218984007593200886251707700331841979466455291317794817459818070755854689387032740839883477563819001549704240363110543825764465541184849762507724100737065617372087762317861505099391858494890636902858856109036747332700141334905046938494461512139541889097831639858084554962453930835157156936017737743992943400407460329052942474259646293941567032562093887899810650868989418299643112694322093095374403897265158010301357739236871274411092652291122254406354525850661464352190598917085558254196377789064719873821361525094557750727867273776854564819302434988606853875013287175085846502607410475894821426729289037260406830809193750362245139837157759215897844622226411432443746802837199926394604824419232697287101668178454613991272246411871840382855369173937939571014428661764421941514684616264760353914724057685016452230043638166302958719309606836539104460411793902984048412699139672259954265807890190553834289173471097010378156276726913932021063362279837191220611044851088827450274401299202348389205170582570794167221127632846464768461523910615964904268328165140765063053040973563149495669130925244269887933162693543517545114192383243739342176435921294879381523905683372317328457078732105236849418239207623327662956906943203564959242469133883278025842718464975700756119885155918575467892364558583822824423950140965693665254595977297684516939926077929752421721564658758820604902856859290543295082854550317221029919881230888153076427852996805272146118763625399506593129330283498822218992657211979073264991846835015383350047213636919547695795445574242021832810063378653081317799983615776236658487591476987879491487897657170811464468660984309936547983817820320549803210185709567408341404460438764107582302051118061601973745951259380063717842205606577358216617576835879747447777323613754962139741197505287712435450684367910001893190200773817559034062632569676403585660856078038418452680539153052795762040812794638605451573614851079294763103766807734523271410711907886405832460981255876388468536162298782717223936587804901130287033145483038000503086944037270769641519024922493754155192914296528286679222547728851875984475966286411613763774508163301201878095770222812295253956885858215224732436050159306944581815624785798617710402111216400792031585553802963714782148612889312963049308378063482961104785709198982170533907879135200476545057493951021968434527484440490372614472875553304504885574314655648067694847826878716776134815525163177711079642548093521401393098941030292026237193550287682778358894112077468480132229793445396475476104212234077993469095757785130201573221219566822305794435880833405777407914547118970477880642117796580130237044894131400596377850363478306090549327336496661150454764742890541913590491298081894505126145877783845299411537354881326421006179769051162036039549297117685182707252533867014680170961501417404851960104426434118967846906229438600342264814336185145052567718487886884115360955895653485118363611524537560864092249834730576125919844673675575299529253645137547187967944302475107666421208581088838105540584792572227779826976260427038606195480105132026250970116266072928708254478886097297711120146906587929288699286221136765962434734382987432083469613102747781151570103110523903266468910546353843230126307085210468489985197704729404313511378142208636060069620339352213945518898325607686035694963798789028995349886897903447843735778341058281926128288547660304280485406844886520711511257198414622375961798028991380310483857261366764184291530861372597556048452660453789212872870772766075091596404672926943290896205045131137825383578498818812861145514789223515939231681339467055433926021208415602138434292333086891259416860787641581258941505472220381201070077468207165921750854284052721859698643708931988450528382548094399019401150882383229087861100898946574984414785033277073828474302670459845416320806837510007448536478596162896387135509465971101202018972927165761679597250415678280374323335123839432912070529080391219257422589616713395207873774846144805965507926656516054642155143478970617595077086923633081529924109550857356970276806551022041957285800107899338127551766567848212376242926412626729370458015670323282938583604532321048153170820440186979837686055026053968472574191679203258156605721756261973714038249136662867097953026288842972780769163565547258871908295804453934832196521477068574786008468433773215845787652453792165680832123163432792126211902119799671492657992118777431551620658736580311322133431839649671506217254039406662422094376276305756041749591642865996835366878998319210982185338589323699557274228589148149534545519444543327055497844483697556528868723106204010989929679663883272153032633901927234215478984078900386702129019080325032873582252524905585827902064356642070351561649750577525576653628710283460013115852009470062146642592815417186160485568329677449512805107657666678434258218567275617175773152579777393018603582765339058446196581903498587265160137593522175832545944441423044236224230363060850773529397718589370038351420349212317498743478638118393295433739916176192191867125861095969855598313823184197038538732184124436215473454843675145134833358515454406615350689590526563459488689907255592785132457115193617546680158850607317274028314797173188294671362337135231625375357661917611887473809981806149388792789717614532285532175562669658620778536254726331558762129472416863056617653533803335243493513359606031376954763153827152484264791840406704554757778163076533250810700242440165599828959126513717545172135528665256118521115121420271121372366337944091277112684730600725105480776229968255155742658120965428591238634918967614783455552303294916107788416899644775439645071800226181815366027397005420351978940049043466087291047312060018190475589640351656227723565196215278208093702003680928095046185582045838412949187885312690583133978396678853122055969791925406113002289334110653201350560018716291882940279459182775176700362456195328091423728099656777771064122322051902750331640386435296681215990221549810662704008940575320071699083210932707402263808896247288009838045361104999898189097565876784241320910262203637970197138489307772414922460495989879759497010714105910445654207852591307559589897753922320384947949069501797359912023627611870579437696042763731543944443921793296406078062103716158469214230072130479951406210593158745215047874681096007779975827202374984233888681823325037452995568327022247296379806554129990025310266332889599794144453696459055554344310864138579067884222462789915365359708104177537615793740951420176479133397320208783507090560335530843349878268928251312046465514179039201593037211519674644072628827672341581942976106956549031465525722322229433468333231832679633290607764525002127225720205971762676821430389265385398250274730721920636360246654672902523136164796892705403679883784952252317273749258368500921415062380636787040560881986520709907332241631103866224035903416324844914019796048623922117550120591567769895594385039801834616969280835291332820997473014656643299895791080543431565263159530251989731688706502893286341085084084085845983347841778360916575379616659705367197792403910746042425519529431879129255323548113720318891334861518362426463033198293593754405891082638504489660475483048483074883361660553715962839376814758587102679974771392761791462914954114687151794343422918261643201531648022717359004709701446402700309407573607484792153121877827410141425869464494517985264140728326397554142344391987290592135107473455925224156930844367839092194755115832039977178862124620823295221412778904405813828788142740510627137991725343691524358321610418817366784491659423872264055350666345136041406686487235345340522753550228672878960149529546256183111644302729748868451810471137272027443651023889448929230159565616580800322169800176311083134533125327771589129933699681689403824818519882547503830212350286610074236330887526002683145575304460578733396853057542156015960413318372628057784205251111803284653031141709934220979359105926864594920787840854569882992559674117667821889168041591481458892051006623622571853611992957565224626969335391325443348325938605891208307354023071659617894710684793485662597264858149241633689519984557806834831606386995949433125822759861201499384369201603525338374282754321640685458087653857088867057395388249887790728626132369700445634714305635147380242605295916192503261981575290520164443778883341946275294764894648855217977006045318437753149056389925871098543003129517468884505063687350116461248432874556854843195898201635238790179186402781831710508184600867681614416996689015601972004230726453834467465809738868621551837470495566288966996846929298744697791467270610095293661280417740940789304339679754221347032156288707172651330513818537331109053957306401959317939173616777858230710286142552582839982318831774110223937681976460231572079557914049657995449820809451060827693479703761057673980862955168611204987266570038958100298625265202708247648516760245407555789290943575194378472749105049338878631339067156373349461778328776351132858540305748480301841622790188154995580484927607583631162592526674055286105348884449847449734601707826357741209943583722417762492157578323359261786801171616935045505631384902333623550504596181594096472316988324051837754503478143827904406733339382572245390417511750924248192568023973203642561265164660443514675174974215134424252321973091248512935141359908194842166139748926458336465788946129656985982911127878644132050970314510277338385664073697091492989291768706895741003409034809960294368980600440617888813926960914729036900497891392332188113518627498173592385388647648813266927429310888678532147986799547092272969172143368382920258649137988833569172714544265301876310333253926664195550035322351338925173402499157900894725851546664884442654102877318118182701131571520971694713518312699399366200353928648839155371915325742247785821458495734603974492114769621121372179867806215102526205407088620766259619679591489693895626814648429321841152947768894318306274693342666270438486654876974282658125195198702497838315926862208758368799141597460314285717243206237881056988053950372882558977040422913247607266268697398669159038005838765740101530996097949159411702111943531089894479696163464543146644704577851896625724758857196039118406244185072083283211537891147784811704698406922427887474173563898926837833117895918072178426092451280844638675583343233520730367011362003114680207961321472552362539883060900253606327092920985899885206137077799666881913560041130295761336367165545768347792006812953585376485476040163099472620580342634954794984440708107210501402529878978047287336403122655389829961220703028420903574757104293611153939205873420241662275667867173635039217706520539582827211181048160041462328881872061069208668862802530102763625361987796669438233098776270154781366967244255837144648780074430489311966603204990554260040865229070574653985959029113589423806421960699040476491352872344640946276119011177218003552559498373203105746541502729212741453448154645228128684268795771795973916339417874034080512750856983495116285199636804297165657913741822876867096104999540389602135351594686253890452257231472530134697458445928005466077661912356566562847496205980577624662271904381251646107192471974528168157583823267172361786209225318600279880195492258761816743890676548585989225421424475261813959201079667193244577811292518859541457159336962003960310031069230997166606572942973169790884229665990897097890961019165630394526986856824419642599104540360611635076275801860328791784491032393206009169380912120272158723051537814416745269053894320038851455516376250399874004475596030703181437203737580317481434732379674428311980246184154669952151073854509690620181343723689898328623125140288382470185230297338259866542482975722046347732866600800417282886555216357833529971192906105887404077014086484163478283887284857362347293841097308733279794851278791607877961680438674283230392902239100638375553523888707763222406303860387896464704474105707721587983134325562855555114756280827564157932578624129200634993256786687573520290727824682066837149167133499727374272215337244962207392760337836073794200405334077995437972718969633775189425147590015447837868373075624651433160194572706305979431740590282350005159747744772875786293881280067373893087281973519110072967188505492681397339407060786819104636270050631104850765057915425753184520967849821154315979809487997312167120248672324789868671523430435861589298924522691298101884848241978838021917443428501057729615132365835099590210750519686320201345470909372719801542910721896378625934427479112621005541288612056436080963930339074798690363992620651719983965617839725626043837376933925681446152843279873730788224962329382023624382664944341834829520159022541702528820087405177330229528516839668059707564618168420418898924903366031178421907863478766869778908582082368067033838960175047140289111722769047384607794075569879231566949301192491691175637430444764738904893085431297963098504356709787128834796827837447029130371898508403425348554110279461055128084772781034719124269927527741304125765339525658403740251272329236489475796324102892173212553929054272731064961444229080549605391753583488232448959076516278847920732834828978314160349759633690558561188807865221615467739477885552230994405545800259276092125155266325266581088764406081172451320544019810541999003455088232289335668578017752541209828585632878164915427367064431558037783023537729102297376881281540377156393188328333032089986145143696464483319879655251201210874401725172614471260742166450673069145610438944723049726622826622926654425316627518854005943136965628635848418725269715637090210140890918589160402228974574871998000593366147698510990489208102322011776046870047381574117693326455446724278966255827982586963271205524998279544544198219910754805109282040352873817174539644100873945692858392940599751787509287413346585859161323553881183838776193289957006547518794697810970940475507831351087666516121750473623961440284839333260041481839350623419598053198144637685151950730521303454886983037856972547391116167009530283018268016921791434240507844138995655879883370140127779118281966830554292832919250819439646556377865530113004828849161626888700995989550921528444277133902023225601020152026178670091766781872664164771178734213301433319154735774407049825660099760495181683893240657290776669771416539556550022939722789426725594543274738999550180714178333206492830018636170376825954029536800131188891872044327820921287813920427593173659333668622598894586824415885131042795126819754520965244326521065233635883683247833881468794403535334529886545861309419446222473145246149105123352186436714227551174299852073290835958685486790979205785240442441843824102141938008947448919215106090183033214316661257111080924226007834622708435499967767631448608585856260429866777927737027692614135489991181512842366883059886070432282265993812563322514132269861743022487816658229101155731517785293629244864042624074202143593692769485266159368494737136648372863632902163352567884136873094286373705901240966689903860237657861742509010650817029915133731119945415421221612266623098557586932574322158004093093028306598650821633535279435487064699495129950405921941845515348652421063212289464603166883344285001313151021880974722269406328675583410164846394661770992840228686868504647798751691717041936684176095573933731402062805142202470138704418299038695207811745963539645460020528190573593285661501444069677839903410164418574270623961675333261654613057281154811875899724399297804184786641195084810801987639757050534934866166184293983060346570399247748994699789289977996443938406517750184686380053490848209777555050408373163786386158523474902569499079831333710336673307524947624883590529004305590523182938421690481316447423765951775376002238885438944644598175495508671693940036435595445016184402359735385689775871789583833100836666473211793773482977004567732165562927742737538612569490350503841432138499635529779328308324826702876924531524602194030222228658929195896974845566509266031299171747004066646650125258655292347436658712033834410001941422302695628364647599058382611215819459052844746002295224124405180176879278693373209730635259985632161833468391611408689708611563725504578589736080000270514038551099179255433044389737509467144135979313465882213423324874911874440495375310500174946809154062544471972478811902971893797643187333651910022667362338385041637048955367939364726561487801783562029433841880296728909230260068929303757598064526249831330714102787677824739741243025304190676840368481103638218676992783000459458279015773638790126349763709323176653313074724828550429883938633562146043239194692948661626839752617414170253249459900813912782310046546675718476985618610316755367256099705799883862618713875635579346176536975774224488710098214820153392357320425428930563946229898252001026092686773101490926130354600174963081674775772047839319503151619361612622793347935034868097867522971080250086514828654766566015536326044938036724205187624442142246237520655213774112442264030544360852655139827850671259821550363483739249044852550108254081696398294667925825175231502179216440651987505889284797947453530287615243004044064858641585722497333470442210494523509139864286050121386830678120273203971185368838315831205231964034302898799842937811294682620398105257798107442422727234928556641143059333927677750808728973243882810601018814761061199678953617843011568356003612260321468432286345676561957245562376584631060675081068160383758012515425249381572124438401639917274683609950077670298240679455612839304285641002753063973782298413145065721456265438155388483262352108329546729936225887436974529484005409604496867780614748733610746247147957630723595509890469638315526105001440885480932099791921414605169123554787859779973851409297257747272437650779941016952916902463153872428987952920772409945015951400057570697933944593838093998867236061239973240600316812151515292399592369113865369099324418483775801601886081691059978478588013619562142769895584108018202826122235215777603975963151578356742752720558922446146348121317149329664903290131312241968810416907497173778030584015435721402129871494800955546098976594762675988524118445569873701166071867929590931015078297330317057932635082467397504579140369225037865550651821933841600859544112808724331318103200822880881896155977737235789562183087287108772443948267839687224814292391726485961574406462935904232686536650615702898324143780563594635370010977069599925562388902252530411741266014909030021501146819815788565775842245980975405821929543654492174874541189159648249947397637286421206685458822493957285605831020805434338034605275508766280279813535482749717431786744124694560541271631400747868470597597365907918301022268562263567686265733749932237717833654888268603787492026244158395291325443165912688898684290091856338834715547009693321612040958366201273667880638567030133028587679638401130433103202738866061226398285251165529964338857531329549804844354788471302443829798317709950026266700432307603848993078256426117000929256485836499150030688416451180632270242201924400553581197549230780771346145347651865319374037559952069739882097034571394405074183526878403517794844728367161193410327620253854983966836306770280648836601670116200914894344682915330527743367092914964418820044511746604133988798754423131103045501036723484142954634987945625651492312694571052270013508332836204385657543081476875475971051282177289594172083937055544192753661678580416355592919259733464572961710036705835240253911187318815399473741321298540383714471078418142685204761132137049233708633798882797531963460120977282114085866073537670028370991058889670044707730937640336313211095749629092150125965381029007842909222075540082410083499243725410125780793587417987249610579812472397094014315800878237657975872498643624249510961821638881579169308689054606321981453276070436586271031013929623488081187558859775139573661202148876663480214351698932266730953303033905079423294289423336964212304408589612703409018930888278390895471494242663607353848903549150774527448391884785988735113330916745629080610808871452119398278699214645188687413238975433379428044770516954857009955870275045249335355935833389988310536925956083467449818772805703034624063662005511737192306251626919757977819570847966870950185829776659113248344416631751828690257103370792752097723977090900877296251854140564610539336081290605023870415307783820390743952772850005138918289906351748582115882480764033481944968894695991301497650763288148189759640416319510435036925984732652302107606928369459561087713356986216423387078854368759924515718529831531073304092644075230770922149269623179738134563427755113288407684279543193556192412246485690290944951505427417043135955280007250331060132238576946663554788145416674245853444599167734109379622093891115478473509672575534590034594345701334515524291705809193973673375478058842921084261991363992533761341268703894620507391310565796581779295846458844148502830107782439901359694748023790100075079510596469803827856730471258854924153237764024412421896266560556452202929590872738764139720615870160346343200195133702148878273360169799102808136431119401689545080905693298317469668973403336836369686434757035270984236713976295211949210331981184047772423236938055377070291011889593407756906902505960366950779456143405185179203650346488231130925112552508582787166272267618792105699949294265917858783679958037952975415275788565650569244944661186808947933580993141976612026375393339972211038690298589702600161470567088033734531209129657781100825598896714300284073686805584193723561499295505145352258858461653403328410324907552413436364076330114043582731503249853192821154863119883758017324738736171039834287300450296785723163225218400971048634643928459886701061439235856487032078177697632401982067159148564968594802086047421248633668714136649927272388743918083603731117948051248277180938137660316017529300593877568413783032360327876776467597237599204222705165322596363911332229259002670772688739051607483375543629757333412036410103489976443745799997393311088749119069199530402017042335407027099565256475693908905982629472979736153956013765836779230051199874611632580889614109741803848438418328429523378344706249079821694121048432913454472089342336800776403606026705760516511303439747743380606559297864194628125351276179170977788717563325560981793779965713460992035673493230292816524600826479922187350111108038672540649823829258324924550889535787376512461458660220257436248062646871340504642192878121179367005460351516759103697874549875585225783037892141680916924407028731964277001066136443087521690152640134782663117372516019791034674555995239474479893512023851401767042017121122324905015622599349534203911890190029768194079440229168999240794734804479036740791761590091921082956696359795959820236146488873689096760838875628790957092050365652808752438956133731856693905158715283398676601517527373788521897767529226937349969846085203654498338224645754138535415321358120312676898272533525930782081778793594853861924035158614322637830409641240882712131484661417700097449044360108023973440780245954744430153939054033371824118464867457363135793173060951318037479458110124122716013719247447039972717739164245136734096608647088627168065493177665275924751500198618283155223761518012861752506684900371014634885720110937082337434547611922886113469629706991159837253555856237278113905869487299448408032906097227158826228153261669271070706206557836913822605138312310530643356497564999103389724370921249834842885001672847429853894798679788732184716608464004534240468857539989274633050060930773361584500357680368175469939049238884946077812330769840643792689893584383709564589492232169206556625776104614779903524046208606064814729629161540979463272137345366625035339994022949465875490111347153437207973977187728712146326171837813704603908403786644460959027258128068180591600779600014755225927062363695349449147286852074288224381453371766833373572749329747756773559220256150054323400126041437753362178059986093979214350538700689968923664614464153790425468771880089328850740242588520116873224882110370193096312683114070398518181775071911515317107487757934160130427614191798299284608276978445740638768902515121501955185880639720731003252684458876737979123710675018542499181362898644023630716796563117068501973375855689178120865271851366419106584176715745320634173122535850212704792941326889901146445536860521460223499315734645778355201611605249036994415428818963332326889760463526200080394028890917663934963827084259503977616674708805558836247789298330862155556640923417826710927425838769773167125664261330714177819961091908331164914586756887008727419258842119273203047565090817548609349091874388220899339984939716013127443199147764943615616829548820009566042969691025227708395804864743526919652397195911768536188703193744007142809445031339834322180186345867599595337433004660600395085800354327558336761114008907580870639242703280742921695344680786335898338874008749897287444677194994520062355503024408551669986361672029124838668984972820733919246930228215475144974271377134448771042570024530073749808631697174817571947303061748679158130178651825655365770738164166075447120904941529982685985231612398949842359199792756905652238328650548183852164592772272353854002906753226967667802267200580610958530768067744785061217413081503048561551273645599591299148948642990130020202897788608684408555831070035491555119261492688139259264280363572981911801757811067114704487350320987763250223487758529640648885087410513730324703464631800092780043177209388272900683266797749706142045976135466659749834147766100763734187308101370102940687147215237405399514142984240543137860296795187483210554124883308153644665545520230567654816070177568595302340798989120168660114151060240080133974112435564790170555940536972312601830754233371317503461041755514782421676420970683325802559486967573872510574252781118563266656164662206505428947335652900972167495969035326842063347657547145746612962617555994741181270747124971799056887842209771214983462222684225891572791026057749344643610890220796008748175901187094112142804454739355253866734764832963799200141434596667486515126894576907059747157151516044371926335757236204499383987275282087978668508400677616095619710983124413007371703912782103882319204076526895982416278979867057654340537271610265832225354744402446869325186402735359443712246764637378787340239922628977464250253384782970210401454027665991847221936980335191524086712953425901840221531634432660354460626126440116048577267356994190951289186806589770143135897317271397202721836735765593651746412957911455214112463342798023414983240998497184489777298927948556441335385400479922677030470768458312652467344745764215126068914143812148991623463141641778384287574425721763352840804938156495078786871484150045175768295291235589241945684057398181630610254518513444180807622449519219067044555933148289870205382537685790353751527805034099501019177373150186778812361733989582753681403310836434743234172778989729344417571655578543652739670557824762503311273795646934150559915607691372520894192875541209371877614471424854678262988177033222938224821909187453268043656151328400807710229678402760543024541508306489322199044305644897098150712354406800196044698778908156592526769350877679655394396982056562484756892498096085722766481498212996365760465307185982548097615931710343545645552983495209998283309787078181556229724509260797916655124773370442605624751800681158166926267547277982127571128490112856736527866509964618347507793333655640424885432539109820209065936943775915769000015896735210071144452617698133531855074541752027737637758717921423961646386936700878639813551144670421663812116393179225573822950068897359330321167180021112759180878963426466193594534464231904669629968934952717953738867312654877913073876045958407583447732290271704206415922911723532198880501934254894591208563065089465760048371766934826477689726376392670660603060690310111934027265530516517290070849277979516297563657651112298394794755387285845747484530366805888516600056016424403307820081529585836824219809525483774616452364393983430512262257286583714458449279312527667842664931462939380738893535162933005921965732599607581907270230244789604776239261570108111416928486924653286635283735067022816425320548283777193276881174653826877083843874617157404927384524425082920308033217436717910549608631856683712119702211160513995832649297771890570631817853261131293801419350441255485014163543098579934533724706168252534355531893566512063865185938643102233712741835646713236498235398272061734547429228495008743281138412406171389531726891876681612488035651634677664331308548423515016233497819572501790942894684442045408536938873088454990395633661103712877491256908080948435579561760727092280365397127977458226908669904935488798542381577110119617498554478754747610968541376013906526774385265885013230434498905439698085063358641029340671655522648727611459074509733790611465681561806452836917260107964926899100913664619026008612061189522442624878363376215155142822755711881064263378008567525844931355558957781529490512592766936380081349676014987441874489247261201345475152078287952775418076421262717701094590105674484366475492086923709724222277283391850501357009678683327278168877459297618484074589768790787631480497523505411788300606630597726601793622403563476391232639654186471508181946538938908323946709056804884629949172187677347653971405692999767086192478808842019819968744614292196866041226076413112157826707604633717775236752169282603152085765126727898016299744390482595755006665305142843012128441736177140788213079556033566444386538676921417949683653619512860982359509599424957698177231943252805310533687631368661398645239432272573147923364580086384925904473827341217438103546646203507942735852913160425675786682059747573474733392211345362869573604435629055613171368285792515537962702783419067915582084915040697546602339516111695169724238959630057599155613591864749418390416679706842213990123238694863986562833892748361708506059437576984672772180396308458040125865461338201492766085357754627771003863815859450589045235952290776799303073645263191841449545432372580976559015582461591203452985926815751641234692047648251582776182627223254824529383002989139145574160817320607965343761318266062934436167760345774514312700692589443503609703934868994270475635141289422547877196640592544793217887956284908674945446755736150946630015721661433836144176932118981827187272077434553321165198086638353961026384216348716177970931718617587550516322963767899443460041121695501343600345135711507478319167612601398670578421631583478519920777839345213004853655037406402306140346743743702439059363677425405243967238202108979688715290136869428256893046147669608808787703412466227654375638577882591318296347483059770147272130936622964556025222627518178902714585505445749067313682844910617118999465830236766270381947717969465320948631537413172456831244895167450649212300173435794502644977608330936894257414759653747950807341834430799690172176764682376844299711383896761493086773315644747597113461641972584340161755503588980325365107307008632634960504029862388977855770084908187754590183346710326223137353545814733349909833414836331507777970402602803812314038376249174725910839406217420656806721067225277238349858246621432124952483637989532612539684915149099110297427772514204445508484352247516743081079896061827981421464912301099816240280619026843789475995115227856009367748505976596778266090382284300140568759472867993730205444173681632483541514757995908910474831686439337732876818306938708406006551337376899513243071831429623209418350011359763283537535698003406266971496707182557273149401564829622268971270880874279295378485143352899249622633766352324487325943591215661470279877776866967540152744237151212759260155698264600758952229962345386030458629497018319332151732514351647429504973744868134292496639755142003378437220833375664871771406080942609490875314559034329984980745555490051994950758557009889881819585615861682730305979126572926584511936177841987765764118807441874933822955374849166850832246775768017492281770295283423024420892317387370854184400084389110950285426118928911507173227507474856330952847876054795799396989405030971350181652012540231925596707952699477796396667487878906108024142041535160123777448144004356706668265475331250119756661011243316716526146018802000900175647572971293574076329540187240808207501976780765497792589518625807539541384259440026364548958997065445752900508073571387522905078080564167048854049472013096927309962834874373663513722805345487576308812520818659646743683118815006174476796737062926452019482440748010394512206132928028046862583768805812533304132456182944468995487169225474350839090143668011041489760853137435213516630295277948372229274909623434644972571218557119157211295558219339248700776152179633904394421267283741852141492886059464083357365944551355231843223290966587503067315926539760855828163422534561365298107461603881377206206238530841010879238230476408766043912036526340692358505043994387631431235124447081477032241766236751008747995886481786169092431025219020443167301481306139795564911686861713102606719623237436991647911311879330244320438901519688866027044036902339456490600305867438471181401294685081372952006020947036592768925986928485479056001921017288380981377991982172938137041832458890411415123648189387949144225128761179016786081460031054287164765469706850751403687507878603692314876916810322876300641256545796409594119824960089481621610816043483302139532925744100539981794242741864358703398420588122204997246308252716860704940046376490865420541369598545693740946300655289952622773331675824255780231849807969821993640810683779226884743330533756704981647421794172292022855097856072472716392543041979852936260289246975565071234331389257559877110811504249749372655729502827655274642841582692480930959225711719397362443891689462404206172501521550443883869634295271947592848931062003375781681698357383772489587045525080519269277250911692264918903861536822292172288432138698226026634712131085213980311837417624028329500236002470037055590140210757368616069633644303026658241057855421035645440031233365755259109428340228717424290781426132276297813385781155621326330152982366798049111951971432737614089855088167514671008285998277428714566760602654273292459772803413612333691486240635063385793989740542215560538645011178725611072425750817610624388507933492704130863111082080212598250223423721136208072968871694261103400840053034800572839654312767830322322929192941477546242011155817899828747438775188670669460331896596495372632728217276271693427091478103814121289181236371617832750684646440923244700649771096643741017953739688609431224718089804122242550322293402440158936186611092851557868496160713845345324837963298505593596789987308820462899634133156889999227250269139932136548837435568114199923850368023465070868587130148109277837809853492944739675441332729251233347498633189032364154990616536885825431012676859340774889162759354079912442629049104611132797790103384070145592387864582164480810117556663928292425591693506593225862351818734492313192499173163490574126895582150286616654175760287393961331731693174964240706780290174963320924910652189479062759915141682833711772322050500805888395867661358770691506919412362484254973748018820057667332348820968164258194426284274894781974509208661229647713821402577789654024404696598987799825614787088116506738544602586265354246009729753927268608504821358453380048627258662289611163565072716562133352642018012883976026326852597195094457797418550069753495905483089390228937968144911908407022982619772193649023944809579105436798591026112306823335894454094199444226431514477967089708028966281143066489579536462698652365989871553627841850681395035263255900418318278423240503250064195623832286790906087601665560369764261016249101642298156498898268816860262560554192488270698674133076982083239960797951910102268479125370550196492732461261801356332052470045518050974542995868889699571324661835620070863162308946554970364976168188119902450349029378320060113455931187124756496094681739837284958119731720598475457415998556609875308037156548256854804963651456301992878794012175619970611705019920582123538030235924743433056437082595354203466086206842356984036396524658859009283652410342754943243802148082820636460940414205832820775335357581935029333244562091548519935914740677120234818592625494946568158308637001631385029541884686709172514950059628127603275364224736741866838684989305224569956140817844886212344102240157828335789304927165188926450278504869306279015553698627882586817784091807532726798829408644247925284003873454594160060299310324868142549110878459703567761498856050372247096163479000959182234840175632690088906064284535354479366673957666563776112882861574008081071370221935533232851117268541482760155163290655538567688936777202858462430705652326636906095557015848994186892290468530324771114138958711807985810465609843946509822362700124410652442425910636496466096973881338083954204278069059557239458263107286407172547513545117793956565391673930167896118375949528668225280322488553322671768036272229090131448114589266465064673999025540419808199554943133574203319359756616139194957870118331989341298688714872046534426183037536151713981180942448203854976445204819447953496948263330027953541366959554464436107616967782615873850669756133573332717115155314810522828707237569470766726933513167161376532641011596119019742041317228041278730395115167733616560051078328163868510854386590447763756124430562778877253083464471236910571215485774323901939209945341132135211872100016760817615946318712206869562552564635145781460947230761020020575735657974939882778490208823289234377905407355104546023946530277038433672139835065364663777569270091604916533510435075227614821776616222917981085524862431479881739487176282047598509852589112207651435195096006418426070727963413536901783605076393597885297146076975409359054794722643275227410707535864058366554283623876396765353065584721020676036497075652049991254915975376915453058740050468944514631498873824001233474097683679183456541604576370439617574834919281511369982614617032292802452919635619732130394329617926068506888822977734144088213895170159678387918333406492544564371964450868957573198955477370306125683418298587144583503547155894727219764716091674717179408217571159449260454768324144151254179522065519653788521982530092463218126401396965275097327618705334011481444983825126290438620198520371533584100239907210311709080784029501286814427187407672832770490911670005931539879734758791403530446560302933833572988865910515183389329933077616148287162596534857735432424211708937186607638384178133024779652865860639526090059280699984774244823618179847344622025600242494273718576734121458139015371891268050733501857145991611814164465771694761382458685299107743135738253742222943908755670591941313804817513312097972468517796042354624369805471007983675909766992925295333851926937157434755178556862950924463296365081801833650220939667649640087943002736374844226365934721882034049690564662681408339779883580884895236206925980961136349224266889459383644505962296653834804044569012881659000048126132777345987564622984659118715647629483583866309193148040401470667607474182912926483752205443912950349525765649418730286972097918541434641692393084602821616800543252847674559807146607258055408828332502618832104727701178851246511275902047128116555750765704982536096997264946358816985897762970786141423793926736957582894145957354800962865356331180543928826800370012860420895726718852179062438208104390543266975271460707709944587993046905797426706168555672833088483221022351082926414746452175185231876274997556406922694941608489344998155809187078682902323377411713058502954609248794153441932128589806813919466872580197110379649978895560914059180274385987507844619706787991622052040687673718213774487856669369889353778504089066916844070223934912947829426608497018969380620722590646889051718538655647757206980984692043986690829028157271401527468828504103730599582230835913797525418278040108750252130230736693373178801690261519653281000808378205221069404711473832756612638681220803481487945482169914949620135606439069384462251076286030602152783952599744401400533274971056080238232574759214882324346398338643574807714160191632349610735107186225570497788256168335497795935412762047436727179252033325685670023610174896341419449199661268130046998400419957842919681990833216171947474309506025213967246933022499161542687706813327033929380606487420597023887791693338325308831128690956312511980371997296768364533970116904919718737732506769461485552818948593656900716159282198547074739746178611782378511123978769575895764037794353415457996571076811499269865991830411911482673368961306661000592251941424404961341762483222391407930526008402754792847023527444017490386152714637599819547865060402999896912648891437408989368040674957618552979858999307874770309545117259321532995362108128116748232710839270673031680767818359817746782325189861837040053066483897603418571233995883765616427693721109178972232235250322236086186160634004639293249400059265152559217484948035554397467536660910292124217747967753380138094667739464848754637663077855391784272284292538317844662193452895447146485504457150234300483197335961649139339970008234643787089372461187661051236878832830637860584614649124619487643789471394348293934932036403506896601991972290828656503172218258215432185992444384410175288858822728184995179765581062462239793465214505451866094487697912867198478606945465256964944430992934513554314795806438936642982592260051183552660258872100858516731884252471275456998526739166965499323325907815028605932338960008025589093105699097091454857736974689134012048665827739979693491724260233397407422696711976659764196515812165739256064487112327568836398244698663183432539111488023437905071625787207227112780313400978689919129378389444467010945102619394918950636855699985976632072647760384698546050067405208965999659341165959703411619045622764829460871686121173753293237354576019879783911875083044121902832778841533247176369778453623317624858159803700471964983786263077796526016928182932199370979179483290832880748295410570523784539651845067134063580992783886602253966383574786553738793004139661315305819522538037140463658237889894025243298652656742694493814734563478901135592565571367035523522514930477569558495902908148834813277017309204246476434414911888891339147605718202966939645050680311707645444277542679706656900331356081523115414510476800355090664928554927978167413499427794797135765378155501580606155241582471046640679233390818037624568011257743480534845043990549528842368035852002717316229571770323115377741840513341021901830642488382485157727990289072974526167151086836622831044651174044191884089346613321910588525833608933836606510311029402092769953353967450495557644842175801299412820844685376907789543511830694425654495113826696588977938422142359311474058335246531560896344899769299661910642949151530811073754700681115928485776158691544309089638058922935963497309688675631072932696637524929080554398197486598647898258677719152998596385760414933311968501328796951893026639183530832390656980233470928303361299837358335806025971165064813187022442333658793697378185883430587692899736130758257235820047575390269495307940732069107567131954174603906308172918823672539096118986973260797391177830301847008231214902532119363413658190358520641726652152595470142452373438016605549516247687064730921194807409670024496685580588796010740487245265923660052345287261399057141508546890580563192103845353612774822072944773326786041572096968633626029841929365816868775333718946142353574084819586111155217868155068271982147862526855156316110865043417557561666410942549745252096937444718137681176358684543450298562140443887508178925188260286120448608557042007640963997358045443671899830943071037988309007433192939322722409773008290463900026126539247049241002600856123802592868865736685350117436094142593102640932571424208748213637816037974219547706962153101835281120689206532454743355465391192084245797919163410288348898294439927699528230320978255538969193625255471020656925458089452563674295178716973947057691772204098097465475929058821730037119351685841218343511430063405567410567775936488856762407224823291354465190546240662270027597917308437395274694137869349692399942178587544622139779840103044136806297869187442610535601374966883721158094226205400765592252822358975657980156808619173643394086928953922316097557143850425261588604726649588844725064919770783958840055200631033958571313913841288645231489251404025190961509135635116410269953924443872887937659063961980296821191553645521616259196654288652055695056193052797814580788123988944628995996479436731076705131785042286892365805177930051037266432687160853739047457756272968850458115047157123629854564173213541303305700625159498660331542338223627724479481841592613510108671137511704288633915964919834697107881867362770817013437634061536781592798743606616625780836242599554770689250685874893166920297720315035672957501368647454699104199273468876039135043768709561905617947212339915184811590898344511223140814528368659160503778626093696044819116102185023131732271459019668166016057402988171413818364927808104458676631127518161524499282186232446316696659790450028776573707460649384449323181160934938478876680188107314536137918108651268395538131497108625378778020301383650215884215389937399508392532433353622225277646811001361647716028016593486932758605744013239891449356623268858976125665555605922384170879076890823566765394317507527156034990332519334863685408312736377706467888407353352071724553178700589616368593256309145295462139439202248679197638004928213642834324588282450351386732224971953806934339912458470886181869439723078221266375251899203529080092357313051569609588285874354774194303264103678765991668801967769853966334552796390662059181897872427353522167005872802607979981685925980291328010556628912975224344046322442294159930053691619258048055876581524463849551195001175167131548877112370559061335000480785078903453042290146774438611170559569467760725080566589685079147073717777615113604905308339814764559438306416030334980963135704948886424938010601603362121671396714259555884274250842087504677313792511658741258449950679808869844091273662632432510706999056594696667283583847549887000811634209885425972294706586419348866224567083547692013854210799720217563617237635676488259338692995486057249579575911583479875930597063534749449668908611705568660991601830121285060891219911143805093899408036074641028370186185773314988392954499158957036740811569309747685192648739057724038162368276926039598671289712898776442474394358506105211437785538698309543433992361801418928990422099014250476787956300386477891380915525293988795884795715825348536669250876584848420416741312859166965611722492437436222613686816337462760885105303776616971088717177420323693604453507974196467122750248258009703933984726215718713196896827824452748481867539619483857152976493824197644859240863200025532240821159035100573810422558864247306561395009323586231009088154311854296079147442295118699023027029668651529503151017496371077197376237595801987726714022091376672957722599446515773566677904334244667668688397071022344012659320793640249057167627024102242445717402121286962088119376083401642838618897661739197824963679260184192875018714737062557852211520985756432910851531747187481542434555189726692904905849362646059964326953590763292024983096446791112547383879800670063385393198582694572179792604785670309865020937710334760805665833477448573369200871934159848807882257634824015035353093236267906176274033082985461676341723108184726011794597826624031956597517863672979538734036658933577572909842807462748649829929776339162167097674135993251080276280402060371564302247898745260167191451128153998634776154961856232862147643039484452982439497738681018612780838180147933382021975355265010096071782858063330403217691616601251250334179458756786341562244349719031736792959406317466453253014570959326773946307801298388956307315007884922557670413788625308786086045100367902198563954511076642974401677509318981165577812811519573012872621896513721400365492641691422166254605127877523236148031800396340028739035968039603237926016235676842196558840798965389444511786418430671878779373710670266307117017259801960025402247290055982802304380850893426045847781115941254474811191098645352157829109823193243791640442959978857704037943441871161800085553625925616311431043895685370496524109570028322520210241398974645250339578094062909891814301857729040021010790511682400741002359244985011175651405282001549337483786145488136842575749396977925699431230027739013225273233608969532552977201476255997421148445488941884382682795456689086219659425520723916239602845403423363273897597308232389857762441885681518918472576255537913068483773545358723539195671415366314610408508862001514708892239616015243688189112357115044352472725436687619215895539207847483960294339814733704447771230886620681026088144453152223119850361058215427813200711421429476977761415135572333311679219571750384982552248121681240229858031979144905426524036958158575927202905565337497375153118564467686971115651401009475525141649451076305936147986869347267823964286121042355086818094697260622451727453051620118319200191951855124599674565420047082403327146733068468791478108778799111047353855292581580988524353550313102696676227863852691586218385266570158742187411965075738247905024429807443494641780678140147545748423383168567414289684679830190540385198863177232261825598748379693844740527007551768478983440350868845948172509507380407937585848424459811116834202823004404429685011601536751385115540837972246367474756611166329028644846654285985181838951591144008727248412713438437606794964346853656187243850600448887209088437229033522255338862482643672268540979564988875117892079868201069657899037425045301259729675324247037394569416800898519069626086423355606340798907853924407286931547715032448933170793564339567899047085226445984038091653230138718316791456576075640905313231737386305643310945339122603533961070644718914584022962135758442751398597076049229206611097703725212741862428306792423442043250000103577153777539770279148055576276987864622958587879496974857059743687920606146247646094062042043951154138173052480103280279572034028970130692685133111142989695992064283461141274389185515560791031345124900219709109651228379157590991092878765817857248466134814201429972156697366613898375131710507116797177906859020467851327896581457969483626821379982867530137457236832436851992638948545817732543080376243263332371120032485335401025200184385916641024456536462437280247935532029117630792271816947648845619662904331011081784501402758792710875676209181445247461711426467979834685167468934643774756937040888854758552903937181925871484720289174679071034482050800554574991095045681032594270303545604463104175689724280754173749985066125231610945968665846728505215111941125808771444572009923778404749900352072259231648708977050356916371076646054089625689899634161205605717332167678526287310904967233520286648127990547642261399512132379137071048748930900231123351758765031662182072878269061326694251550763088435646734907166595258114101311355961455959935767259959674861760103150056258956967019871801214270131848915544024714035748036381642703294798974395910468749600603546637938153492065730593576480411600664394286386848215578081266789755593099789769965695208671814854893675291886638042752099746824858666463791869384609938243147256700059530973191555969838725468375533290771289163776875573685516254049915710417930286783654653595737456717655353414719199919947725628885770890482485986011218871683318994558146711069475984516946112183045117009384122858317893240126998207804299642080778624019570785557653140859043442464703003075680596828713429720120638681358202814562304799021721914438758270700231018480968820828465642301284326217371672921800512660010513640240203497144120358221561930788249275137685410520085306607787077502832159600610349531074861736895689097211926205668764703768828011120151260688509677953445197600756338070223993046168913549933095463867997445950651381508389884401931828854928006113715097051357547655540116757018838644675377357641719274683619436763209550978445418788329915507676531576264293806981750167529036220989576536070155145022978502101624882201524045317124363294017703415440801354362197653172734955427446041439782785054222781673975135005554273927889652313769296617572177000977423649383799704633148069937803610080351089717298284166598364463239152407500888849019313682847905305798815736073276131486284392001107665748135804536118695734401936113163472191986292410902810021976284776205327633644337840156357548265153634736712141946286132854282587950831035025979062992236967094404497919584168167833937467418927583792838333642388787148618063262416016887394422184869072696321831262313572929536315785895035281231517035380275888431900736513921336451562057410217813452349330874815160498200564348920310245817800095177558628650335958424112854548846092861202180673307963079224727069523294313177801146822877955790910130676801395152890385737354801709466680688883079674445526520770028709631381502631644165654173422021206532835798930355578958644556208940350641760395135521747422805225180884701046740630700953879944713474865078949406770099079575504311450301957274134861871662615802088748884761927499575572714643302552635609505293767875598375691920388952808508483606368815111355645992973011981009177662818123117254802472471515234032667182145320993691282778401166133717703814016186446011188623154383621097817515821339772360342084010135453038728090296931995085796827967208673811998440394374738868868925212275122580280434197182733391860316814318461775854401859212969007898216312519889871004285910282178077555824798161204015144726364643468870795894408233670686645119152492495218064430230801330982325609706984913826207682099156626585933745624370869560126360341654721352634109616110367806307435632579150113205856421437147311517397100148036846452784352787122896923777310953429882401633239970254857147366857160209396056885687411525219763877237263299766446586070085473804595137422375742010754917146380965464890905677579693190044329963632034914166306258357181675404961239902900713215336717623365569650178221609191733635659703357132833914313433056922384278840429025983050380468270088554983958025928357184122768064160266185398682915281127576379193591440098269387803514358196252188299429332598840373269907040354420926328248908317030545854127070614916250296453317707091482844322591237628784765756605552644164638548876493790569356919064932189301486563531213568557287324313732835881849764462542182099858332403478588161497516982882653935499533828616755096114159451441146255847391415403536400073919156413401234740401193011884354435555911024862338424962570930276319337320259996539720565473035350251184340414241330952050007107676644759423873393137424738059094399104705125853775024662872617458338831360487226828080085250913069227238564606359953167408885129230106229755984832026442888115380464725162714954807157804146948524925290853225435581254367371485377406039030548408528243170641445822566060675026883666877874324445514615904407995861675565715246201506063517738065493505290114289451958525432081374237651306053353160088185812294626325640201990925511701130700400509117672645248586574381778942457217543567148722238062760726042342765280417850862450540173599231134119429590833746102256956598349296447099785927645649901550862379292163817070689179159185101571610854858731099099258594300862928117028769060693447548387475029827783477787937098165374000603067677905821454515013898763510016566876253201580417348064087240151004265188709575847351115436295967502376678810881729236403390942002566035719289585848676613628468321983846613768051483542184654430719457872399889408669653733462326693276241273471117102254209627684615378209580089977065205576424836464791319986556341786986082321170472161942531952471150200729803723552458872334898178709348120251610413787449412232562871017961037553702292249119409204202382670223720867931940506875298595051930518773899938847838099310928358347274598181474305954946762998385522472110238458831568295395137768127530982460058736073503158492564162449163028700766862952538462918727332730955791439294465748263609005541795946860420079863948829875337157231167674284610203551337797919157185465981302399065051107039263536898074665529694259703389110739168143393075913275314284298561989400855075503170652647524400751750103037769174365186531797451208750681961747758302138398013387845336469823083566011607804767794203653163436266345382885775179099338217300101151252091611856560232535978534936403993978777702384310390524720734741131033954407614107755050780516174647142992607709105523275659993080641875669602982313494543345864970922532075745916411267289237455942186913148814366692167332744387574921328274871785446578547714031759312185693220618159939589269923140485726315293741585298852828240134200305575751212139484577607112668562481272907963421241474951154750708791591023376868775294109506700337967945893743429647707468842168046167978681852762801134711763457318609977235176186231984062304720016743392396067554096245492678404568276807139051707917422355234542482757569975610758403119170830725622297452002307512952251747003078868532854238323855324768342954524104563069748226484619308251461774870111407571712073352417409875946617871118143734315036528807230826425406279823133959326774090330109828724929395279470719678885967199626219356315936967193572666641798649833974295698790399097951229566824547628233175736157845471007362428834985080392984204852573058186497107203775736679168877735863231212882909554115165517838352749230959771220850765043574164016475687624563781135102244925060095495820733000622040725846390358476393811297674873929844045274722263788574711286774367050369467804698577269199581053437945396972441019994948988216999269783320664426149594183042857794030604628828018629633921686282216186995671505183579198748707705319369046095533736629855036581060024902649021843123563235903065858892632237737375009554370886371639881478076243022165710454060059888840257024461415168850403684262596457258750038682477797129353946949003695370486265950196610881590328762018231674593763329300110575262021963937685673547170261005362670225785228024087018993510965285480411209695195865336942038096127094240478996054053638722856815563739863270942327578448857955036437008170080760094129519542644853475159485720280969503423886755935069776791512362773683771034062940614849170088977939902039412272480593722309930146145192671269182739639867764706835622168820438062170306251354214705751905964238747819787321318116005809730384165950203929121912840693717594057163582643832985483222432094311174430196297339809157887632768673696940003427679774219734867851800834703815936474342719600239111623242271352933833672935422874669883907513283591134806577097926886197629851916885202183228264293260113519909684722721425978033695909360936195446942112402828129564104523522702053434293566275054909946935370871593056335760527256367906970165136187118352465441753322589387554036742475777429341941085869691766779572136884955183828117990225319343165504027208453793132538767299156263036321114695160315369010910296664429780610540362933381268646141642298027277232568885348284248545334400409006033391113655373264074404944348129167534804165657999274224163884186977701410033872159768725957390323812367827124268468176126475027056972990905788069300539461140217265978050281225713929358267744111068367155146798633920320012272025474043009491491156243075366608004408991230607636336882409030955259731643759802651161512556303883571657362623894214340424932825137901427962218220019137434484302604109985234953843502303002197523925494713843188565913828234591668537999183552656023910106893067476514814092224137533273207793466460255076925179424388342384917898141217284691836553965159204617511783763821205994568483147621628764890393288747360041344566029839017102464017734644088589790278608061244932223525913807455163704449425953299685470909653079601503060794125612514065583552727427891966330011498397669895128553155952461329402068507425625444639263170597576486951001690210597494039452541401416472272706798687798560476433642231553677527105240252075647892354957587458007426646071290538677962621518052345715251847875551199695693119662120537884453017989423529290237593393440741102764576339128135280752825865034957496578525395443819903062536599134113393246805756828715784937363887881485415705252738954076489742457254034099169183110398740035897986031817017768734868648910954906073776014228112642470795813100374005106160446359855451186279632766703307972948229907678515146817141147390162435561730572983181491788918998620575245293488742889160330287752809825363854363463300609085767501562649976134856635241064799299572255664387925420899687063194792231810483117277451483337699722435237231378486286889808493341195088451772884197557860468808053582129314525525048790711561930659149271641860790023027157692401089351969650176631925647768646136832441290645052229236055143047226347413845865249281820149779628193371752521062592864453163059091862987002878962760883562343283216976709230642985726228827972883664354119105333659357617280168400876041366845624613930109747869216956687812719285893066549594698987749993289000323576127530400469401859142780051407531044609472535391204684120383525127774693366885953559878270714047021194668485803875384551026871157849843491922905060140233643926271013259462345476847585460940670979000460528338153165420187807107830414335602113770745954260947707595446141262182748898994464781205838490379786936236241228748543478049198869193564064285152086175400312352433953394246600023086151433767629398082182714276758015279493511036393243093733444912092832591566361842460729027714452835771767517230358749174034109391892968018625278536674967498189251423131708439309066340694256057399121855296458203582505635153006595577366905026274717307164499533252697177982694767997421591279403731666827538958364432767627174362165219694893683964381083603929038376421127065945384165575456595464311134159091318312879424230401978019554475189678810187556629697110167319998868665335756917802951947402948399684838532449549820442168371662663181614041547887116056902376370280560059546674844766877511076842736239714912679658510120675754357142512430640325053404885803335744298938489910435894063443615681912156548759948353538697835010680229965613150807321455417507458961183688642590453036744095686783557151780452185974932127303307311419554681456466866731236019849852206972754900200803759524447548357017861517791337393178565934786634806939965109826059305859087105362031350736168850524284066348252254673876528632896350225567787681674186784967872280014694528985763710417582303347448339985192586128909897023289479132722437638378269905786415033991795553984863399919508316123131340878249392124193201699485625944047915249647400897077837861070188637680382784287051270576203655120961897103865846176821201370550084303666816888602030687350669642913738557880269777433823020237672200673845435360693271614127538798308948827868543305250691914871927974739405384301378520304385542579125010001703331011983700229144964362666245572886861519827301305886318750918918446851916232545930023874859769847337221250955926742544549112623774264674993085464248435685821761209831946833566289513565039419163659907838822507014251950617900473855597871157234712247590944872487422934139889469979912902212594600504725078587656302523056435380341605941936553788835349266037047113024220635965989793026265913191244903933589317662235331482708293035455855478583248344360044941187220528903197724737937496320378953056060250593969898885858870865013352241345799598726687337416605403108163376963546681581146672157986295047535589504912897874901754999362536942475326088705728727066313544005871389713345274349305595495126067411202445803255179954396790625748717319179111523701503618116505957411465211319196453590337442498606747463616860885598306204151107691815377084938779043342832960206487172649396053707841109897969662849599780890829714744221482527870838500993384803565783217720773257562976879233207757178856651938556303522931008895133754903754339133497196901324595467570205780726180797544834516559010984488107321392252617387103541530527411944668620569616558707286603301185608026123209850906136847510466993996671517531094602701713456146434452729541170870347187173609551070651422749755297210474644541395601539714827661999193921289816325223130595478022603278433508468611555447465417937641180756018050523962912473647202593016231085189086854574104611416993690514814125557012777768012033475139742066406419623078265217889963951939642077781182163970266316988505871186475161439440491775131549677842653383062749833077976149668010876142306752070358600663310386060760522757410019683449220454273366366709794277139746154255343021240808362004802328362559566105751228223740813376453457170649751759262569548621721288467316416110349954212738814092011811746334867294217956316994152675929853991973683695142476057637784102615995944163933649606774648179572343814849603330446636360259358303686507295937075919747567900295514290112119055804549411314870074683605306785489304061100314181448232582968601299309692819557442463160654449895877260450364559958127652178697155910247239488504283856883109547793497008467344509609470190916957900298535527437802315749198787336134243249931585871940952509372836604762508266254377772317199749688096928790677242263315739501814268767620740634249725657758172972298868929363200676742682965730166845010201391978175553215107549824669625215891370640080533841056160472644647145140162837382487249193333007145469129084225082773014780393848526129968545575270608122499348301538115804089649536517428973189425900617249355229868975032858587704345286884514345029518109068877074207472814148283974605305202540051566602778230436315654107288642275786273700190692475319132794955968405083116469292179196894121341198115179104890404802448771266146687156652472502087308399245002120232244862302652322513881056717094448884167570933942538164300481407425332744505356569497122240583410117711002472509318444703709753796415819359928358184833663994116542277266146413940354809805260736646025260238451083970299966466219267591729530996777708498163363544790904090412073458990556490654976859064347295609675569353641855838424003696161537499699570758181506878359457253909155821599296451194188885523409420852957939999086651132755097040689402725757358964954257574446618634580864983440666908449135896094612092135314760595839604216382471716861606351981904404797034433628901730645876757033380478921834006177495510357671236245979269433417254593626414118917370948659016424432369869010723554252204184856926889918333484237431473703052266318595721701890229595564348287670080840450685735912280612360874216826973190227725194270065651157771860530026482493503622405690505007757264777350734282226107298430098606798002099878661791158923562056061764409919630272166136345972685152209551772195708147274522868307829945722806842573950778065962404408296780588786509064956025626669100934933725992706215523485666297606365036308262868239171516306026655784404629675005518495040646067471189202178563253192148805649939630042038731168055237514774154484596386534890728424977234948549028465583728717437161666171386667606560444753377031871211683096124497011580727711652309330023309291980848378329848346887796273729051326704284244495823265659961259447933679784864153072705078693624099702457836111749494876388076730689199886853513340733808405390363825978407845942207487374614990834768163587116833268904266251428787865567806317815148131722221438831752237623237950782312426349881615304307934527582711858954577748916350275100905184892994967972708345487534144503267878395148155952748453539690553025920898220114437130985481175029144574375937111397856628971726600777070384627838792477150174044741061626899496257403923691923765250970167730899366575607811105761281863417838070255135296242552753470864176714965368140703978984411290666760106952382923043512732367046027339586887619038743023204890180516938387538722889493466449408843211577784135967107138418504751099217238991882437261240587721467556270224805637851678824992819927652083819650048993739634003632163084520761616689949512584895983570104513637821057114747680374258814785013286924643770486828384210189309447288422206738114369839757608172110872426590759287730020278157738534231967314839745410893131817099797533952255975515238670349951131504127167408068021213851595357996121419521543185267760409668950371456692919659090726207929788736993854641850854385920915844756414533779243699335546130840990743758256361472696598461813918389259866112318637108758325579982164178120581022604015069590141989930509772010592711220412250424935808589156920522543822357145344451651017394350611459568541008946930633281318247287909002496826681469074845155810335755105041839704880776483332731454048551818323239042218293667697059342261055547732561591494511118043114712041170265194116167647738769329540496585034310775321286609627422777702461911824282382214591332481668591577924752992565353945543185394932215352255229193701187992865855767130771360188062214534668067493020840511652958397074789738699974162748442010145304715898620414972217729458882172880636293523416697518387849835664567708925224069866294627543692377644268347110088117918695001942786113560207557260489570562913210804503567333963724401966506387696978875551722941296544137014657488603851600234429882686304487827542624394912867484154157358303536602679380096124896673789194818116905481323783434302638474699118663721061936837979653531877729779788979421495462969378107153922595083809838326610626269720699689247048719803772004802967984003861825003332521111159080186251467426003059182546071790131233080323208031969324141362484174350272142297015467840029557882702088847433456443120038689745163684211170334671604020154379812624269293962431014790414071333040808691367251816727450560351244972310548867801843912887519511031419832859028793911877907944961591604175649599736839437341098899602174037316248053833080723810456038957393947670578412536455540885808282513283205440597599406297716624486913057664350679334532575725192904028137743718405451065952663149291991180626632553741079798566756403339260836132664864013875637248969998183965491164306862620377140969985553263229516320270934124473645235434647746470869398256975328950038090976119123341340481491980438290070179306365621501638063150889732140051614564680493528766160718759277379074254269063749047975750460165880815361235363376145885136973620932354735456632877760488709733213876793366426579956359599919404348391693383671642342898760102601576074424034325363071073128042650049893079712320473005772902400757586848281029107425891488933094120082537038124421154718914825100893720637937364710141530558507861903168589052860948893597604097582134116564471513606978782260133512804271708175008647904742205812637019807979472578798161311452481901024229801259917520955516737375213197299169592000004725849358789831235244959422654055512022589485720257291931854444468402317542741252251521433653891740285509076876791631686895070012440294405244796787602726595861343944665059674178528192515831461749681029163740014447195749717064980538191279088908345012343917636038826834196763584454310744793924666655223762405189405647531900067957726799238173279108582430841941854516042588815416972135296246641339061090211259033863874177332075930247620096052722143138332437464926860672842228641457305866021555240367263333456130736572062471641061320587467916082823087211903981104431910606011725566234583289642371884870072544776880808798236186565019490228817901141496371627167915275745631392027775937291782404229840405856574404324954057914613642736784860464113259599394767107743993814395554184888393584670105354596724835946344260150663655488736820613028331162955552119351257750299350936904954513068993198842179807243703696279674372703043308585856069408916854965160410907455911450898211153876999738963522496915683215290701544229049281126927001193190899390854089066370353037781409194178233164404505936806042893629817998199261432352897868156274202347300879082856614903268402080476584990563779992430355237255124619181296084961685228945273328113138239525077234583914544723280638646038268104696488237925387021545054073994936181363505719613676778658583231877457738447085521743570996580085913193518484559170702446712939294119717983138491402345860439749789191393304562420521987876997246197878292809777037759315195646729530169896945350197040314810043323539729882826968014574384259348239987043362423807478147739444485950109580037252208558670225212747989526895097563561573819020424422098818386453076522596809123405713144230015697209860365886380578796135462674854600958963194112250777794722611062014875190916057855246176205775394455838216958459003842183363701770475217845201612050352071881761022770031037851698253813803307355608416431519310002859236828603704039249005311768955512253413888285456435332511535400849102028950085664211403002623995721655775958047006078053648554022526804750466543825563336963661589424011738484751769249177703044493925106222141897563507296393248884969352887254298464305415182398574181281889556184241408429459123636410733005837735502307166273682399934297445815050652849924159861518752163822365367076131914796249778244357311847662471058469527137427806295355888352073288132967094163509154094519181739176069086955303677270069989523874608525638342325659489397370704333257459952920083754471943108432881835848737420220454544355992924236877853903992508028439532620855719664835622540026728833288028606216841688791850267939776358617543398899085227246860617885992177400164347033164843152441547512129985367530246269832788932231634395805905514952375934717771638045029151404151889292092583937839983432368664718043344497633843737873030059591832393902762480364190711764231212573018101808610469411166558028395738088151951110308996355860675935206843036593306624212829351720071589344119721062371388107900534539537043601060644682650129049215830951135505617388204008402306813561767171794025438981437808749533860460571570717466859441881677238874022259046149745413506513770815352732396050711523613731155823710032993264170595141569528873417830697010084716904251194105805960583273505820114537970051596164504743889317430664068229684833830055118197791763160403458689607322342092358434955950487651343015123838312524480012679624013718484365189149676879495261359101256391975537578574880981696609577971121773171095546134654634768969814048203005438431253346610007499765193192032421999958341133658073005677750637595952905773143863537475320298450599241069824174302398365811495664227052312188162400808501295780117259449211995248939490756644559487913914139597232439006478807247227184936459637888457960959638006016272773202957505307354242389348305842480286425727502792177533729655086084631413248659152115530206236160842941197642600962395997912840762162700210566639190913349089368341843262385789361184613074117659258377131358199024240556049857230532971541702673245146873808209113046236578922633919735048027312876944087559452507645596499520602245019004965007701408466677214729425803907271287360639260121516750198822166742644997784812220727402925375732942747099605032133897354187660613060219628308676739098669641340041733144564247720513895492319804554238128759993405017876112440707015026747933082768888494940427490832337400664988395310103659977001052565055119092619716722121147084844038177710041723962576677008270445087569296261523543370618725147058476690579819291795837018914060320300721387750750122569407038168144238016173956862956850254455208256994499816803742665894426232998447204717084436088646657947371607886571046911991105374724718252492148824519942328402746514421444370160713637245236763168844871871361825288859342819192123763100515398828190709288984776397033596084159051154542367270887624564287369578412116611974634444752183866308506355225844000802461122639314645945505611973879758823999193684807771950584966621892567650331347530500644341092911015541879008153652489475208768023252043635097972526592231182006284097530181151410661994122672700243123855591627650350627776777804547424575773909133316620592637137272254575078138939069704971268589101548755584061968774488821459622522733822028073483052978007065165628568955367574324121138654853092964973803766924224505583499007166270848288683335679578961116196723526068407514981212517895813887846365510911808399920480831305529527461085286156038209463215563717175592464489802586064049101395332708959515777898921562248936654694365947760773177257469094851313536300963714481027022351561693864397445423470944917175227143608547207252989287565502397772606850181594143550611542431066393718418158804255763891079998223656926386180143111354439264460428556918146114289776688693618540361348554098293200727871842804376748949648398229190819309684734348796334281366831413126704752500022051679746716713717435163582500170315830757052320237800520434862086668191549970990545678238168799911584562435151868765681494487008053909443762146306725420869154429060277081391887681233293653481188109682412645589081944768655715994513104247763685694929898040330581187566095727926880448684466717143876808184578146435357679021293962422920574444280957229215816688503559855662787610672928864812853029876861753809930451929751713993122961062342043155602007898550262947066589621633137951558867026753744825783461474907485246646780957705781819901814234969702660881411857720696975742520709657005081845552110335589610481270241642891790376349876977811177288929037756943662039161500450782141982981822505399719428778166183035190908013732174177722096841549808798471550263284456539771443734958574083345574542289946248631943391251907679512566880228584124709544452172714984966644500741832651578602633214732853510614350508642211599689461152363733268543471025915362368685470619639261572463596505672761052361241811080679982396511231716560336918692648191025470866411594452616912366144653131850810358202697746874544460856505739113990044140619587642149199034887161404644941813852583332855042941369107699773431383064987142762553324620171939961771087239415148759723168377754286828822310491422854829244255938735494794320635926512085670004613260694811830687971215251928168537287278071194012768612595084382852476102467845836948315967695253709382492818228780633242373162829518611193812903632022645903612794986375204262542863217646250478864512641351462989606208767607668853111570855699513704452572101527061689625634708864700007487298917652758990702904359237805614425471139297107213705881858431778660022896417444801622998607619741429891612351507197669234725294707630267768296385175113382342813344829548716449026178863350736401682246570554140070643796542365220291098740880601095059366722275499886903586356742468093160223331216690708939401072332096701492441671968834668293298962004959562121544071086641789414116054826356688022451058285030019323293826315650329096302743752614795887324765696022057295941428410700414678945891831122558304961289552526093714734025811097601545582623355439148916971338221122271216187361459213946576066180717740632691801244263371758850300163982027629081233002870632680019701750252860725958403889408927962549234660608037647551499047613426981403264586735557440116512930962822536806160985499895869209092834310422784172882201800470111034719512787835524747423443941422350614521246406827716007104302686161557970503535914148214060155012807069053937793239892625518509220873183045903494127269429920898776485216061465524750652794685099330096713648407292832427773280287637482860924430021428542260281514389507182064002268292278389403814354071318177236798870494889454956423204733806249438361682203773129535462858986952428473257782150619700388596508724034825976115543868953255699283867180984092465204323317046677224359302554177708982964523147623504235215984493391665964736731240672448949896005218946086514704582545232963076611767903344677778094676248264988735950819384426407300484901154349960437726881092418460338640053069801420678455189793995429050783210663365384273923801322398412032627409959717477762314063076412224243692865036459155257244840642085669704531312058692410532325902556505683681299635288388952079913731341681160400944976872611317619372740230126924379825612515404916009855691577240050737924806066346746973075444443418304177684091341082455035997048031007801332401083323124291962391218820663066021157179002058450893669412849804025110133502839331730097504479831420201581177748591544240392734313095763550809174598448531991531598207423557260910474851635063135226142089697365530830070019836046959936280508399427568340569393391098227587153926332472193519705649801740277345235921234657258079857614709426766874091626822788158365741134446954958447878606824258836833502407654895720903162991024897749367491802606237093261747321509679719110939586588470854221798319384056959803142443052892690953972899032189062907466215943936135905390901661004731027841139290047980020277947910228917073313902199993489570895350346465491623111513221004107034364038871613304759124382215817570463733906614097993861884321427125146241328146713296213183070767102637589523530752802157810417248383495800504268486613030571643790917931016616711139374948320657367583680762053507053664520456601515806035965145545195990391775095417983135604675176329296746429840472865203200588145203209205449893141791931168055327588490484983913753298609194551891829719690643621795712974727686326242679775632648210987677293557878390344503313849764735895666092542248776560221785343661697159964695815759355239329582006387093747048928372117800880887853510278573591123016523858943080410714345501574594575897072899301166648802192271426196482755162440668102469883819157750362119464759308657575958218930283824688889927267913154795220305713447503615955042779175042683081482128010544799207831382712637660654241393563484715893558433976581737142581071065878180411070862695312219883141303832843050173187933284006449678847596055401205730434383334870094477433721729130975052969046812955389116243402086858352057513565660552915431666662855734455893371942871843065644890226059496626874841637975484551929827613814578155472825286565397350783276205730857977313463207578911463178610305702543146398486061266465207821265701007729734094262426532804139768660841373947712627029593724924488713939943272937131454917276797533806339967216714747660003336952532868455891458432818772031476435104436501491019848484105282089155861856547355436702970285863420315196562629139914795199422495987366967404870019358342235567163928778914418563622287445817085788385572358315547265046317673088035263351558138260126069822317861899108394004029386846620786294549436135236929055795759166910108587397134076714782141770796911644741362119168118689731227894095784239086178041326602425367465671479329096803877803554812996326359065562855937069120734246668073779964206728059048034994801556572812745202560867538527741195965029336704193337214510468144833581574702073804908780391469544264106219749122692277700865060023210944068148849662627486729815269885011772541032181541441583430572694345276112561345925357763957763436363550603114418442581961137781414962546374121432919301864821420309678516269396592944159821983959528883846128618913740510415423717671072223932486495767879208178078946752263957338859368151567881241526951174497153034596642880173264185097451337077371677912899707271188241555940341114351194054070231322018742214186553533086153328771573080974254242552548019602475267817071656518369646206393758852533419449981139516081700961891882515348571008754299451209475238747283671476142744338533438406732361795726190129882659199739248692638959111863668697912742137682767385069208409829715998003725705083856460258417363363794229846254702824638780320567650223977216971452266169736966625761120483608347386100295397953766663108726390149823983088992065037422532435414089771609726673273613797247342203070271803892388646699990692377205241495618650871833323959502779966587153472402890367369330585492018084936824497850310552589261528553649033825127937609042967868639116165956632622529548057723555501320986141094911783733690590755037852519888001903529763009981592964940554494635508630796871161569029633582684725156934513161526898481191745373879413366200793429628763531748496156539687151147744333725324222973298960039970601661463164996237084248864330678915155686063781638904249813524631565718791116368193372734332465621089898311875609959730870880386133429132378088220776964940198131297753515662588866202976869782077323452629530882080699808267431568415348947638486723618167995606993992872994626845267902593756295521646592118574382376621746411339705936083839069208650645560410956755494459372101538191914680379970571515401761085686284714039837819614079800622616155299585439604827866675012366256918503462315162923844605915419109132091808895987301743154350633684024652040747784906959963831287369787042290386578413751100765638295145062518935795829604008090917797785233620398819910798122534430103847624269625181963987512171902664713171716106528589165983217795537256569240198322542490245529186179446950170079806870114784276477372843030001923814780643987121101392056069498155038245537852254454559529903871469220076236313889256839161377188808439484836735340283874233216162636909748595995671425478805988771865792956907156136590714753279104570006221378573091673276353320009239305745754902088694835779668847610699566001303052901846590238547690856004978775242665998088479193762763257500278176883921270090842420182775514267921545489178225504458410314177865604296626694676140128623089660933843526351139440684452967848719728080345706417378592588803670689056431516872984982516451413390005769089499827475137943882453903668826912540737257064656831163954598625757189442526480141560997665598613701422078426089935883739605193299329662818852339581787181253018563799687027480900612160648598639138241688145397578243217388273744716669885358925933679407813459241878633690333412343804441786252066204278614185798461645344984595299848136300809851080722037163404870474446641026059582554494740229801048711048137078463906551738527861592319799374604850912723671044299224423990124122772558557503969718972797477667430573608598948372741424151098925897661269455746713957508355895707218808684477632708179190495764279950339507374945473687696038227389212690550320624011250301117556733005426237761647468241814669740411933057736347146065394914169536804810178658590278095318927138487621693126689975376110002978276965734745031713200980585267990868935239288204926832395267265179818246940081997766887953384495074516087602910577527825567443673201746587581067340973850517277709597433660348749775102321389447927312185383854463786104978879244720983946294018577814655521670355668598582719254811153902321558160032414628045191793978951158989369392653853037236614228774165843550103054878703410139542962420089939093052079228494563485320430561684941114060546530675896865516716002643287930922447715444207884656190949472365682523282851927978160430002458822017872312073202052003808371696456951798663474205471405081842319569865227109287538762853064551716932461115764395089220485571061630796696035357252449870698117019183634223094471783006366336409069391965713363840330784694440149711705305389629274137835999800270787056210577322004389462856647640603205062358056846727278719093755624570754051867113486983056284052337871639535149711714988940316820317401302644136384930795774520604085911239380887908991282735379216210712340574001284764992530007285618754073162937481821210362744986660732109780302571847116440214083369294331658902672348145871817284475172796498052561781516381242670725385372589044235806626232899915111776606026576672215633544987245811965524308277078572751926128584421426949383148157243015996279785573953349602949515468336584371308205368185838565208888018565883100854419886487197429785965573812915732333792713618725437458685134664353949165928015385333945312331609153485143457575760934952130675419257890512250471792643762574253667360034393468861837870868662352766544684292113382728000185239954882305073288280205067584839742110073883945843940218121999841471451206430062937867940579702514220982758841188577414604823174473422127076349518626707766265826639718134621447326514371157420012500474437971272516447970307008808091187411617938841341093875002618556459239946803225806379809892567848799034531823288132057157336675530618920734878987250941724835733302144422274456013642675665138674828675757135178679350395000025592405079940848030048937596036040244015182970043875113452188793097999984183146569101150766438081972959615024988618030481589957152359980238177504207210614952559808505920667832399597007548655058251501008704989299853344616712455562553963002288525543264590555292761723602743737806498187632432071376354405991078243062302006349430515401379451382339446287123164946155766251528868209262741417351159534942586696564850545048790949107556768514724841507629288483479350783948633617210887757219111216632681232244094152127967041814821389939718286113054974162976134270818906540185192493679110801237425988433173410783370668379406858684574714414773560535208227108112985801090390277729363826458600164312632322444054856885042396436933771648740185723448172192766626687646510514661530720028995886697847098502364912756330211310240256081128607691811186982476129013973713851626962042967524843623673576944738972237157744615214759747263109349782640067246355087213855411055356811114505940794802664505483217349929100280599850785466735296459479688845080640689580138451038400208551786692653835321013289160229061580285347322061035524510403438349536231616234938102816225028721128308523846535932078655068151053865584676200587559382367419462428165625237501267556182139356954530556910583048379565776706284718036149193741698723810562728253813181161882479594097868416726483786580450089033744890474058541111617095482291708643048144632177838079216727289845339982902767574077150789284763617363866964703951689148911698169602058787620865216314399637580470539690184882940240537852680218198791918818448959423223190698701392737273191072541265657600352724374114178403886856994210184209342535716612397131176838278519075918654942407209985708231001072302648485458746071531094935335306211090681322530079098340524581560640414517743875640221670824978375907010827700557856091606562430499537926598457804556163603125492438701716437362726102251686721634707324956066607002948330160778549412627501315269855178273499113365497615142510082117762113126627385230573958877777681835217141069936028712103334038087425841501805747595831813882268945795817998001275179606999125238337497031192390046951803662188632920823663638330108260433815454057903182957045518651368660139866343510399484545543916576284059398138889427184416868861087063476973735486736558986318112941322557482579360959821024504485946868582805353286186807823186376141779250046787062910012536339257550662439630940458877971593550688014838017429732396886400748379692026488153474167457735394788108356174646033056725915471022568750626539746214523262268305146681892767550014271513361446334000500721523587311369453057404380878706107878033297823205482693226506735318585536416865131648769770810067737417647137725110002527572130800293207474255287095059974014099520846167264779636161863119811643823006035102153421575262231004611094996429883574039969944112802873765216063407488933594489757364431063469285909338924431057318950767429376313814152933495566817349661330246630950001553451384212854905840990707127494478066665547746178175897074388084271379812810209443291632410060262240993814031174421513196755538325439268052991408786858488002844283134636230171783992707552076688089418494341720227528029437334802504043214729288021425725270091010604581353044512692950911415475166135258761327714141399819441590633987202506707864116259366856446222206768402687140802010290886445864093292747356232353883138906791172134969665626160960020419769613764853488641156475258472862924716439175453694645692399725533240504468491557706144718486615680938313220342524358498014102978091831589792866432501757588700231089880554424302180090875057420558852612429847929339264345588463746776669980695580743490339355511259857079630450285708363399858928447874878197118593477662478562489720864244212450549492426773934486523736959385623454890063821848359732495663126831666800245825039262772506702642972275301390070353755779546468217879370471794508835922725365913233256681484280527816437855334633234966759233406949952089719318075151071738341458087516318070479591736151128103485487288334735875417301802861565367985973745515890972271855836092293422229551788836298546383087499886077926547803191930370498886277765941806687863048292564195554247331857507428151054540506406107111839866691957870229714653376216145344344484142541496236709701038505403228432431027029799831040169561918843455986945588128796814957510087595374512736745043274811355947907851692511260561633835057960510399937288264223830245435598306657905217022328426143336552476423818651397435027561133203423557593246623101755217091857748174703267105544829134762410601914517286989242681087453040189103800047527513654282636892696329656719163707900338250201727662736642034108330480092122566948344830948751797751125519514962529711142223897155628223938017464199296071391552355889129500626540213299142954604725209739825834628504490099954106050328503771356544672445213815074911559434511277683928456075360634051432752221919541560890588552771798566177255919457229893334410293796516463296928553319676690482288781875281084310335148458310727588477423377675898274626192995192428548283790931976821102228812791195824721043427898002592790633147802337749664868109153430627776578171309893368118407015245851048461267910531982422903629932073864153504551682078219433890890218435160338371536795552870778612105995821121119854081201764787572590104423815445296005534187679522847707655166759490887183173495834497116103346034835703422381426675712262178123451280465272883006320387794105796812963084389885605183278312458997069081228909364208950342870688309539003922581015876806546076575196158151186197587565544682680146302128223788205842046237625238557478781657678702658992158251575840565705729020154274010040343244156718130811580584971753740734890490344164007477136338107292083795423915564550546404958056800876497502582528285762859911910931349585075417736363116340577929499075034951510870768391837851761753516862146740041414935584349713530701193184913157954813459923526829533141596597285672218932377002868662227247170143525438294514257527273660795105766223635342004578764234110063566471720791824464146216582661552776980015689282964309890331236396805676333345246748638580198887922349851353208230503966647173480336420204287006370943137506100310629662985600776730891126329832352226200050760909962563807516985648177264408701839481869252774584537045247390449141291661706006561870837482640866167988372036066168111314776339888409169195047660125825093123200001262446875466512780892736969390245516828962453772603696715286687641391997111104249690543261131231712039880753634294003902931983817711995880398178652529385308604859243223875352260552559456224672481265399166962674726486360513660438793349713912845573899918495904993999815147787705070821388679011806024565981134965340441528543306825847553281709979879725690767319339198920989573029644082125703011428570778783991881949526669850957723191604033869615455865840521854555524267656889474230981090622085799859287422224726282776331309882021389642469650100671738483491169236600536315836410038769051567314535266493831130905298659213877897453021777889448003226349801581890990850570758074172323751557651177639293073897293280341532915225623915123103795020781954170112840092922854366562119655210194036981065865704562518340554677326976398027409655162011249165402157382803503699892491460188354761166163249052770379856052152379292466913031477174032669947430080201662834376014471115315928813862559201475380474965452472254428529313863019641964047030269400493117895568039847105936027902115289321043524326406232926573548342184939025328980493118107162722632255013495348231480961134061012068164149101357179352493991766718061055403654100760562624879687619978930760679893780295145163728106024951914524119672648492189291729868038916786241958615026217879053513340360988822910110397199694839093782626638343665283949002828340139751668165690257473390958692421157017976682688839177241752542667580557839425023942293183794923097044074821028147388317289447843299367675698769378962108982596176581307224292066933369174402264111040482469105440615393190750240843981124771423881284551050915076521011909643926271217558427848807809962556559893500813118026617998749591771692580478243938347276489342301761301391457052954976937244692045003363460862432456713615542305139839047132760158343586523777436833014974555542021728378309936866866607609423963474523490801653034769466216808027882928160313420578353729783499583937803671243925001968846926920466446585566468885189964230595919597956216531148461720353575578687410294204852425336791409280321674611865902502241314533528905798390076784002315099453145029825978068591609258061949481617812387415939306742346665435689876159136787823570930763244654452749169210475702578298718114922140447504476085677795560168581852321374856538663475958118844668412720360947532171633494551381388460965079604292787833177265743735940029592993779600825387673081825047151458755588394985313041841863626964327619812761895371156469820318447718440968399908836216648823674821933715574282357897300002828900131417061184084672467768437110904401766434072938678514418980106221201921928537437556548576285361790415537167367309991464924447923111416599685701033899849755331836502286717314961774551420551756898317080466467165379737341940548986703942634682506866316388083236131709199764529667572493071969778055011888571030079489579313157203601461219072513603645639352138181252404360197187118658402287304381158642073507849837642122442042897269179374296343760439223892003948104752296473289012020394627274357033422808434252543167370530336209632655102605060177002787819895751031429178336122834128340208104115512346808100934183003582428774487949409815509625297702086381983570299039874914016911286502869036987135393413399499362174520064174012978625303099685247101835330306991293155201130080754720027212494047291747487909675342965851050522329508463579745769811608134257246400359949617913604947185983861699103213982598296073425689663762442633359626504054616248448038977594119566696451285016543558868914586801370115776138541004305725191532043267593040973035908281384677441823969610076221200139073758196196174979194192411189944775010848160519865450721278070455438935200456263806176697186235948372429447564549658274350950050369908310659572076257374897588257771372644324479522691499402836045271137871700831114082459548538785450897999270547737614167134065017418882059025146495523254157588795998791720481463344595222958471700214746732345837569688976952469888709951748193563517102859602154293878304214528020412741585895532510333719477528073978685248179668674285956009706989842632104328597917024933751440384855654685068626686861279324501698733059130342705579035844684060225265291095069392599202643190442139496743221821298938885656632553069485357617315154315208291837692376261967908384552888031743621729164677701654713937607686964385468548668858212065542599427217401792930477540904907351104532895080171793867149908494338900091958953730116831082607899227863317507629522659311809946118995951652391593782106794299465166769043626369639180589230982612342052287636724807676844905880442775994987758461082669785509744774795692537704169655590472595810139369820682831567062135810684321992539093335443269519840259718032749919638990707675569551559452316328269744879804493491503130982744810454169655452959149113247222322775492054362707946547124962563640259808785943317734821683001628079031882912890894350627681517267842391137890061431465469256098556344554150597119041235983931151496272078794362641738511780953436512114548688238774335707608766428086682245395744411365897042315187878636241323374891888752937752899626261294279244453305555735331709666329371742678218640671086831093962530420438855772260728176956812983729442381647641073826216248527122904246318352483275984476539239906206429244138134626820798073253051896988036256248075049092472718025928762202615119896636113730340922009155230066441900584867428797753279972037840650590583680314567638788603987589538814969440259197312278305296635487572116095454775789852461704841943118606563035089369448858088791574446548978866563152768803066440558559901591717806167353113824339736441397182642405323226688391567355018927984468667735728719611969051143483938184066509880324128951265607156880607766422683026964032438797848529635035876604579790162253170999557965996919542936728563983411344883130520719027224118920854766087315886518503452539900698162580057540940643365855829935760261286433410364844195254527589442778235356136535970497150582825992347947771275391981933503207554491022074466663033597466692793902451678949871813281685243107558783135818974841539478174843852655036757677185838118841849581474073178897144568963612050545844020026197089078407015776580886611882518631130227892960982704211560100997165465827801206378551609717249154081854507883734239207187247640371326285172303343557520333757357619139176548939255192373531750513187421761359506186156354264254622110091608924261396519475296247930188693657399859286710117987430589981708510278528983415009715413180056320423187038454262406989837622728351479492863669239560452252805507848928709588370296387032176565653445766551298516142463194640199862430938244513037002679857309515449710014019577767130306168299626274057337340017474106465942988138103161680503189100388426053574256904579611217511402919054332434369910982320809436193685833137002485612178590278811799687772329831498886462024902851717907242832503847792151456007707319056638894859670695543662355310207896565565503991308738181804636212606871156755491412778552585005642270625197171346346242275246144619361326974070335178276886310864308422724919357932704295078788256305203871639274245565997732867889778526414944095815845727335904643015410372557174264515646441708001829674505023493663067369477403506685454991992624289732874987209712010360455342874724220075138714359450093443892614387279747272689635778634739805010525067018909031775360132734552593121869210912779868227567761421246160688318934895883635715801852463468194198666547191987341996068321200609332420322433903736546468389241904190004338735848144192768375323335478752788351376156605675572835756560834747451970462510252697696133661147265211817192928338048118506939676793567826048620609929843886317510314949979311153140369002990079823123840906720663578840905966996537410728154922533144349077142073520014776796719350814169318107873130546001836664416498621279287161576812460429251340785805343976540960926708357516665363808800419024031786696475325604344989097129618105452502899060440840000543729712051116088580694968149967299474125078599704147112643276657648382715449481780060851160248718766725721633693569642667052223474728151676301894412715219355068815996565203401506245791589416380720904823581693267141164388213340415769768490985207106873763511910433312381925921658246720589926853226316597198354667017478731441182434824356095217504091861093215940905290064800200798836177164998281459421913598656192596009426821386345656171421876384759166712951165867905965147941524462918095936424923213644653407401021741098403648547439658084513365162775652755012378366204395388384432355145676496545876136924191880807652667631932748934427660712369122773035490456321611032462118845113891049080725510009299415334714369110296350059648355794425964326657650700346763564576663046504121718504842641809529840251077272820962258505509664630276383375002918592061725548865809867277890495603669790662970901221003307017196243150182682528702225679935634032677033739726947308708189808092148209018117070627146356986086682039697498543924635512321696096644410488068065242892449906985590538320495775885155496640428450275115155839249176604825113193578573650289646460316431802629531681976485015010013292457502200843089927929254379814695418122730039449139733878120366509999917016486669891075354476432170112776682142333022841423262585910873170359704383673979218127656470467596596641801724489062121982385369642187460385972905026343476557093900319013450868152286888019419353766046700482432487077119401084615418820055551960953840225633477295834866149450255821669921833972819865101553661838286734736372959154098425145543806836182219495124010334253233983952616143887363382332399427027508764686045862531141605647453979667807711434455443843940904307752188073938193444983376441082340380976034893399905572037093835048902583850024321834405658869859395542421231435774887539914371929087204134928393637656998783195032667421782929229075541263892523826690716297928871853079815200723858690967952085565674851987045044041594720742134685278034921304253705525780443829583359932619597657625051744212926870373542057149002693166003340024598883276693761927826308492335711373097299120183997332172226175151452880015007590825093498598741232685894917990040983618351891142161765011924506845756129887366971756012768744927085938261318596981729898192365653596456904248232273602365587620686101077153421175493362110089236310233708527211498655841305730217492415513411736345820126773842667038873725742501327475079558524996362503494353512522025867312380864794501932528238944340715300154269003080043022739356303299933831794104679699659663293748781295981365651050017859869689546734975485150172790567998497041026970953120591402344394755747706858576653041826988278424860748542824287769057763847720710795107914123040665027436269123230215943740957647055815566648481536732044051708163705052094824593498260218323705269201659456949796673478082587951826203662389745994586033690427587057777415408436151071000002524671119443467034122499519613814144895228190882645685228273077502474704389904594924663102876160224750179017563637023301075679890843176047057681632036698765380691180058378679933933232304928848093821450789714833729598209480017429582183372713921191188498958409487826409052608243147870379802219199929764246274522292395423511630225422090612430469616567511650956214763941681935030309066196508575725659157723819649622219268593405057501877630235346586640235434976066264615700839064412143091233630231120009722666530827780482090984644972799178261620214888159219212077568994993793256014408686858321854091113812597482440435810694754436893726233478849747321539224827124131628331644232985370768856059567818728211982021295856698460454610299594905991610008646320812494182291257073755570451387119059520905957034626106734781876897365457899589192976427736350979854712202675191179575438121284539998997657012897629035946247473020587649962891091079765447835993531818749307766467141349605550810379108916105656622495706595324579164354104007834171893233015502177599973171003535943610765318503111487171662392118087217023083799103050712025897249679667424411282941490328781519469420160947354267585440519351210246029187140349228151565352313582157849443843040572537030449025121154278281093354291557587310295856753660873929902082757528392077111377838991000280713967351392322985258659475664123400809552657864842201529854355086922728512765750453515547867467898952972876210777217078752563286777594582727095742204132354374747657648494756037757322405315257368180687699781741028656523566724941399687344493928891700625856076927262785643482983256021538928773192340963638847584773864545894409427225289572135805160941536129748917548915608748855103142517711819811446723107823751146392932341084261516951912581890614719686101861738789386218931762009459190625552356239150427856502597580738315333836157877807585948272419636879120816550525217202761611574058068739629189046745069955508339518551395835360836188677587278729434355278028332531075909790508172751015244980035457194070697061527489014004494255076177992419695612117032156958505456880957341698453733878428264793363589300116925410136991843886386812656951243279262543883309632059876434553806662265141888937154173818091454043514603731354447887969020386848382735426525331926072000431708419542352691924360294564355266507461502551231724443092534352325691687678483470602699680317818425769054474848691156862296359274798626791349086592451550091292269370885142962246530665816106502494275317113072806453442505627128652895551986857894070675718669746202985039334168225432653457117683819341714281644960421676323380157077058660864670302929052522370455411555106214133629049155295411530709232365685846326152858839554157174875141501087730812728879477365147949456471867684797367243356030843936536785340607293595028434014910993698288855237851940875565764633098150475487605204564366819735124621786030885883298802860856549994285777242652659341767131858166627966135859340578816820991659147699548357275506414348710938477081881001461359805248535813047085393438671155163517875653283984402958052061258922829301951557453770863935796821110114714271869030051181785745440653023971323564322565703663587012535363639940465121387235773817830455172165598569294123528407948202732176647671752760871154961462834200431281602150176477912003080409424735923306421618225952289293752925982044389953648504415824248800588905386300366271250174517425239574441551348248448133168698653715718387705779192212169834009824685982071890719497216356615905701360696096989390919288760354911130641562875400257977974037258120295069956206770491390522491247255840219010487948694517168382227659888151126792956215387852369452763115023012467986214080756712714615157766056022405829553596837331205379021836031756809383317387241231801055827638859704718057272929310532185807877204503773248972039083338360007279313386384393712174587120741428923049380555926356330314582814221666422137055187163669626148524658489330099050680470688663838278170532368758118216204953628446304379312148978340520173203230609696613170412762253785390797285436925371989683647569640670206322727664039402275931700336497071011689306759203593006845004059048410978731274775867043951333044522682400055104881098976689250413733891078318258024341801041458023975443205828628721819218976375722622866850050563307898857984228922498060055883151320261014171988472163931653093294788661258227176400840929525411064096447669256175674514140052627042843439094495511383979552838355594998266432772830019580224205868705513716770633171028198354526524882159668436726860258107050678955676466187710617389335725681048028529367064581610923951885937080885187668417273545627312023595441691176039644536743842244012811515681060671248687527008184718972638958220951735162056920559117789233997532364889021965509109233730340794559193555802394436129227568543276655263424482128150397588839123596748190749333935779958154777488937614290593247660614020469897969545312776211747733127653659672408022091969528899802193346807090936891921427234544964681956118171762643479390361173718099081004362143566639864921344628085462889686050800346329411439394455677777116454361413154034213811287756614513007792518667411554291116072731331003531402341564754226492603592591152961754113488628028145478515323608208627689919484395146208762891535877503684717351465102164180809876247581867595033304475415211472360524094108775086377304161040516124245707928737330715092513740335780434442234393005011207442049055970339614473997072503038312314035309774512953569663128024123927086050119645114601815142126239066742960364572121968409294498611824955189087071486504956414563089657865319053874601210965288491767459481231984472032801767885269212285650024902932805628472674758206703016548501571809843455631509438797307352865860237081837813016472055474441518472004801816006671832952892582572955921038820533315687796790265235861464079400562478866177057515203340230395590397208966247625803245209286560817325830010430598834408063207583453433104641516753407160072333569134582366848290219729891268526975562339306032748372838982362522479222948332553609777828537331683589104537103809093267737029097889527560723998013710441765089318046794896921749873807449281037794695335294769006434984747829907358305720880563271125477471274036551739846074960045689863198709238771011807036595435234378587233049249554866617774791319666780843932041214877150020628408830424730315909585542506112388707544525500774653312476860768648228737465583887807071631515816545829134857274675508882475555939006177418799127472164284712846134094401372799595084494661780683690659397466428591534585991935937577063957066162968351955297489043850517806355930526204491491027390268310464634627533638240957277127115458513753442040248097369019164518257070571339519229114204304065213664356514212019280860219136436435991118369659743981871953712826528748502992661639634860463261708405153197301999409786262185193960786001956589921460047971281679998682938216858956848306106098679378778116526867446182850012467794212828642248963539385248052273681017614047527159533089370828389920062525728029392845948666329485419416113045246152897881404311331869220939417102238349342411330572026668713445127034654574293328315442736207900405188762808746371836718151312796210744541751274367105027253552847916334549998880956976077013791275773182898469742883771627262096985140512284592836885511790291090621263531616509721179059420706331468667718788845532984222119197925707247527613706796518858292455124795625689854708317141179916401113021635641486896891574607715923669114719429967845173158314266083319145886155592239269051422976516480271356860943180514868132620315483903214100503896185715179933202021109707387716743161619720077457034842551038819307065103510758708715068166754942735781165540227873037433693165647066897972500513776048165496642491775720636022895938517712306122100166956112952886486492926196474685503298883224492181783666707254315394387856570282603657511150545494398926782885990764613939422888214689156165157840250779020842515139190712277827553352350143149057761924465416444622709312444270726710277600508306811349112674173847951615495511056902739038821125447101242068587443936512447223808129455844289357375498029809465176767266387824250113527092794708040153200054899679717780873053251431474374749528954895095275994091883534416429922132866047243829499888205388467755159567531112683535282197113988504177021283401489250173358472590608322117712051124485817795409415751517499131861071160696411877376505207923471170249168095147930602023757590830177283738533664391872988457798471715881986415478542894576242850039241080219777153564187527401827381055074744800696809682667365670108804109996966005751521320167719190495169652955866834070951329545293550082441270530927367925500250129589098897582482969205547545462245591591857547314394361346008144455518999920798205610109636354993808127083900308583253780803084879233740960432863345914223787100494907218278378517418314593641522133182681789830794065473329535014314356160844180234798783151123235376444852957471613319746828373959574259354414409801041166007671249344519356146790983154172456946838770157309052357780436132507001916462349518299153652347766383689187425598581918168229984914752403926655403252335777473768236576577991038894962785342293313858806595542567436865357764935963215769038976004436329614959474526201465216765446611522087535922494257984501797913003115221485905592219566250494166459006240765111204283303534973041414849377825241857548917482480479558963048651312818087322894657577458615417053567820445160016805953986716882907327164177427575932956153095525916532709484962236833817584473339023464969001969978836534266638602213226224492723123779695202174081183575575054882682902262315942062439302748915856725418366260953686394981601612136052903791654525066991941734169658298566958494020838280915650778665916624323124541442569360281757286634102551388919889925493924309490673376058123107908351892923407526140628305671037182940499408482609331963756166131315107458318281089564263463549298430811872546611343752503596240203000112983699205148086062461541790886200558820896063848371139203199592657698574069826618592216519215879296092088289957038483782444770420220540022996105336860708833836948311653368882043561171297833087621925733803668349630608783830896704568938638761804625431257711356914320807167956448993322525280027800864737257544765419194890308424780062684779402568638108769120774493031526688804167994447349089399419228930554770300717366484385770231761532954704506659993384312284954614613905544209759312663337053093446567803748192651334715288358184107768449423115979079701964889668367057445333216789666521525687268336976766359518790045213961689591698761121263311489023094247947348891120739850415108155869303218137493901826378016489500592131492796684544130856968985422316884137389452672355932550738330359988153115798080560353825892932663461085585174702318473947420131033279584294660217146041256919736456766998930662194173275263934032477963395202894852109575534302047105896544193543156050054596322376919144573658501392817151457426317684375319618885528694533590290821540768570415194974864590766498700665064354080261834225037532021023022864942624224623538754865089904104333268712056053670017751255158791989100628717621479136174260206952329578190314490903487519271845180066925805037924103906967459400522129833206425573172261907992619976890355825695243535063902566192050285271821591790109051910552537611049835715486940350024529060138241358344822456212573613615002279761244232404448163362175976501596674852093273705109611779439653786172566626430423527056651209453708999389121726414882915709927447059402187768993412778761462042391976058952003533477244275170054991857803986140547104132318256975455445579062965892545042551078831607290737656698942612205459127480949264714894681753778291108208821007915807856407700924135075646597973007613244212352709323227299641120435948791188925481449282244091346017719946760977265593338102892167255287271754396288018816685491865913994017763848237977781333927787650488804384806205860515161062603578765291855958622521185982825121863238357530629957089806325753111754499980481301269081731775975748895469735404129696767855979189045891384936382498387336620289683559039981628121314680085026671903936477428678560170644025398745206474461212107444492220173432766877011185455529649008931234700655845429678489516361937128757171223427740894739101664282517999885896498762923720650453760359657425264112012434237747725529571473362981714138280055715016807788914138444305509320677492467730155051091985693353449815013309625968701088086196599144292558689806014469425653389038894757361032854559298659734618141486328753736200075098072852707840289401875846983424346499289894363198735426778988577591661643144612816123134462554508283308720351089243581729885876691753497727800330272343500891145122321561981158536039362746672833982185000035769352193605462859190573508321719075566392222982375851520251288793559871487320038386285905585835227551505802484809308343953932646940103503814420149762774618815550717628657701498461598085944098107321968040924651640642006669811040918246955476802701622606983296457557578654053267531610491455697520180277081292224819270815715642601845996767835525745167357107824817133445311925223120667244064225622881512941256153494121166235949038312394417942841175720989946206882479537518247888429670322981315047025982922630149677291271396016469946069241024878614333365820848903689229414446768465297724972574580208241699058051328401390413179495236361608821491591048369220232897066941240575908821695720106070435774825026275509341404908214723744017257464513878300711939904502927987807900671855119085052522692712793935766711078807372998024934149126557030307529596571021175325130146292716244406152997070302489047018267297885584234493154274535220472980166541196457811476283572644879085504650786892687793234870327766806893169296856770226836010305872922327574321445503743430637880136955572872068374878545291228383063708966318490748271414910234790334683528415972476019895111755938331708700633858806591865798600530746058161267696769081089465063431020053463563577774412387213588951898825969329432823432997262628368120853566655425932227708229746893296464878747850648832568146037084198155249823700850009716357502793390485548145654282137137742723980014284395493172560318065961012000671438427222331884364405401432058030792597624284184196954570451478988900706467099343838753545533834080228511468749897040858501762861127279450334134594518971637603264768020390948882783404302007483897000725541316741242011316208594943315325290447418608196590915569707906740996522716943370784788329843650291249749928829386249581064054188973532999982886695445908567173967426295600829111623031075918613363608424724717367043584312736406841151517254822866608920913885418139279035374172863677434556384673775667392023601788830805117110886896325324703596913563296105210074225800792639384632672168438452132985769112005285755564967408442272234622865115779483871567639714565831146171685610776947459531412969626242246833925070292709133928559817020020389961805348002196711734717988725481701846491356592084623336995215807388911508490190069069027830924793077493037498184939416424914937824975402398809891997772405740911755341512149874485698824539880488171221333561621434150728074148078074502626720594964583421921123298236760031129769852865042454604827276762649312217669032561163165602105149035251954288662614092353501026848234354985584555091909473366249891504432745117874331096190290129244697054943093616719561302886433107422793038841803765573200891338035032271549283540414076536109910745834364606558273681059824287857281765711731025266757012533340678189574555345054676444821418753206036074159241595993779519941669042038759873442410827131255532928236948577898864985428555920821146091714452076413508236657269770095996998684642303854786273939253555600217359264189606585245560904214304848660923654155016375766567829613602160302723770986358854184273252959657771346506854456595727510464637000019091664521571395500674298107058519520599507732482286270675677565925737088001435097504564724782951129356347328344651009926485646508798513830069750136723271224907851438616918006588185032834507998197626533217450255496408116812021035865106218089004620414737512550949461585298703463939023151938024620693158338681089741429803929177483932831864931173365671288788158885978467350789361714889527634320403296790130404475160469661446052154736861529880647023043830598949250682677361725831460353948848714122518389436521533831833344408164765596449103680127496364173862756191084526101855172723662761835007229342568262961139807349291826924759790017507150369691238222122646234910629024046380480460080320525889927738130654916271307292962153764865119304682948131546220479925924014269191716430702635312935688881038737352189423197682356389238587069649458691032441149350148964807553033379688204948083292849665109103635458279657789716034502494276556780130150490706811413663101657601460863319508361908203440703483857910243848526574802609540371980699569645000229502640228861112452698564194669768670033841456645136104065693715239554091515978414977871446305574296267799469051492783641629838814696866719921687679201704717945766968631104974683347651105547084207096056317490290624866582983595972268571408305883875554384536530841303127725254814938683362762624945074040623051620570372808892284510514319762703939058031608831875757096572927743463925267719390013673931468710736389775815975691593664428559116482660983135704503966295826922814229203692790099873224586978399398616747258944849558418956753515751642788048256228962320735445132610061080612516523569750260410293326443907726912182744140798784336109992437585209659856607694181800547915138209811902495745075121578041333249646055456732199966500964284623611376357996565603890391904967929565492475947888095929885132749865960152945084904071249526036186247195155391731574567130859160023242774103683554623478856484845188199372409761195431273711021973591397720889147020301342097420560683714165628902593519354852770567724767831975505952023277750161808415670409991895273680720772250717420947900902667339318162389446485201740480213300646123306358995278979642802365850010654648901168814302018794144817711143193842886944295346835816187111104364488537342045571731201570835801061788435632463772438781759628639129138456198235103537686516729880996363866152870642014859327626460379585945018241958921750992889705937381505385510376525038860686564370010416280901984534178165390968208140866947312474987872963836938125304214777248166471030599131138266956586773633844154335415759882145482834818429412656702196990967814397100916613677002146097091343530433519586157579306988052913895038153488909303498454767050362416298180739145573270474802356738769096675234415679408321218793311649118968736104335011373783263157011938944542769725694262139627842782156424224056314214290604594264786255530915756340008514726828041750425186197176452909863597036379978481858728888342282251603939768875651249130562536656107065628655198099526619652292067832179642308369245773228378430604851138402506534063476963942685909751177968994959790328905445023552461862101134773851747612074611521203685006874998938832782008047498217683752152509935349383166851462489719051313838282452536130589980984101921180475559304562546142399327403732522857918988151712583446066817868631786323495555348196578774078844854150719878463262324028624803609769095768004143981308183128983043096729292957776470178044228495615384060448317331709095710008783188051092362949439170074784917656389483618725436397656436071848504154025483791465008430015970054558421656425041100766114331455537388104169767559638796709426444959715063204560222780983735325998583623373415796986963738078993154030589387430547460714711527690351772896078737151327399203602443192240982486334846953112732387823796235348624841921185378088165002464917580050473127187345075515507989860162696673615846064029400911390303820609303564730682877729604771848476382058994845175742144687709640484270794514941253185723990501241624430829016933139676336550851783327455028570209930053842807990239559204644792732173046497074826327320138679329177802820876841419900864183748907195867571431769538452451124076996815877960322155102406660439747214024759069283771798144890349832639843426099517560155304715522995372028493396071090939290105439618259934203740541671728213283138593669692762520190091031304061676836678375030717004414949801034500517677345329389593361941056149000668616574218482459274102921547738116209282250560301888776307544849914943839052762984001926520846508523561573544248561350783570362176585362144703123581317469565867721726652907365768157734614419025575074253960188572478200631543593866716469141104414837282369456765099683104534668932012695292024630205312344309371851091900157879400066117566319649083326323933408435691487251348950808325379199232902995447852813201915172379645300432460994927503569616674947679985397481250008941745195134896831857695912070698806565057204590906387086768286969135499174888147279424171439870386359491132780680038053625720987365687943245606291680315499878534446435956628074319095928357117250066617578202653102590178610125127532926377574325339779690984916795233977377759655459332485958774023821450978361137765078317362273592340597975032569274239443667814496142555368529417426738643594773336612261850559787432218842526267146444860604262441346395411476442391197593867372058927251474245417553486709912356205043186032067289677643744376512554660972328352502292226728909207603246205037069741084910076998233522477543205167530905105172047367489732819947989653303971071548604026096301577889808209122886867592460492397919544883406516500556204428198474271386174089756950092022289156538284040823298779984007289391099013520830405097080274114884549276163028853081600427546590601970583662075848581397316168420451466018729098280175793198447187046169863857893938663224471069020719106090740903725526366529723318084583147501459640284828824415087523658255972382431050785097948784800357857498540711498180233915462951545412125038759627737077012996103412867987412495189507385313563375163110281173334642080617180631439877459029620384294493285114950188658410598347979574427171377968922606824866029196895988218449203990347546322296910777584820901106011716138865719575751526811200630850212826223776172915870081845662221971971825931062838201000518881184335181868349808134493198057266506004688061630476797643350384336755434032702989651484374422435969318316176097541373970986706720606017346627219403864275316311876437863514529429545251510379553374023443142422651273271604479525306046600061257588425257460987154814145580990087170449852325460553465116629974921376075293083533277480034521777755652509170652985188477760246186322820880507443582614805532916025993675577576007265882025940159846545521703861630760436782761691959723646626782175140324560156978155428366709798962537196991325163434413927663612993153826288844649050392681268420389789573359126224645614027762665400394683756876084193150283177743629926261341312017856677901144362109671721369222380428163631376326539281502914464422750435375920980188167859909137855519862873056468312556450921207794725564587052445464090701166287786285747064921030150381669929642338026966074350504571265075987916441210905249108116855818932296382128981065206968666628321152808484604861161726059169945170893600177336314116166502667272731625648171009128794353336599213657452277479692088411150886232696724169756819894567132817159888209046577180757702259721452804144290837314571780426922294583134282846851935396767931922875282546075097272229852739724569767995081206336137805314810906352618725319351090670374813786138909828459249360327689237657795001531144694801937315250240690843414461679580564493702804179055000133509796291670880976326063871707375999818012072987223712485074087432304013301021856310030653262819558919360074145117611728408129946093073193895287608058837090231296192412101455331314230442820237279451648013966278388693959191047865988613011593681983371252831253142165862678126077995287140981976846542505870090077999064293497084489915429672511452579950343940565295530685093987491033690283885736764019890514221312073765628200136854310865019369638408712173059422376982021257327574750496981213193391380749589172866585132194736709773151182797794355036587485047559425976799946382065368035412931549534907818079452504094123341440480008716897835789897776553046525243641689289438829694296588564812046009959176508218813301204881456686546665678320276190621405486409251015418623615684135976426595057215967592264364901745054239189707782906071200167469319480246502590714369242151603645160927816232519555111373915266839880106999052151438566704006161887098063916124615383210252622207878056252139758818101293012513682443515625675961249918274475070527165144913337032140302117358842501584267002696663690679439338868910655606895338415442381616908837771500051536986620334652367636230401050219174447474790826303032511843156375505448853761679627180741917973529216804092470045004961157253942659852575904353548809059551521061157030561934315179054941538184774571393234889438299594365437513520919446999544493538633351485528959270112423990601712188615134801519099432215047119351362213279794187704553810385984818801430461806750528925840369821247334307518471015148837262238881365581439276135796540917953903111299021105773255328055665954901305274115056458828367316383845567519819562957743353219387021816987754069214429214754939959365110160529809506299472929527668208982544875490753456597811477666612624772342954991029268709259984031120239998613561920394577211764701865961179345282043094024443342286352008938323735743324332942585799269636797107347554109049893852307196730316538131266955396466172875471983541558044874260057740979473104287788418454646845760595908739555375843432370009695520764685951662397148282902366216203645502095038378672955173564542084381659049182621579201113321843174618817318405702090551197560181594858786844968420033450403868728003947397329872699772063999771407687338392979023515651875545939633392215481312739215031233228664577152984487704395678182194280174074345226015422941198893223281165658411695927283385776881287641260684593412503794093398527959217371925968639161777921215169727175983698151451678458415173423752035073275172432431675295423366570109829885510125920121797261701921182706360476347226426377932904676936302123968741279337184645094371326405890712879692878699316107467399689813206954614391264645235689872960255653492503935238164207065567875419405709483720235986693429843534585782498516501429690195414113406588697444210593037462449195374853671949347056746164101470692400129763647039982184987282351729755717844456723533762970309448296196222829561369236512837303723331251746205130670582490680084871671325037313386427697030587280241852588647770617082995862228020616481211153354001067359326960911462487871394414191692682481244213496259452729328678339884433436049710329629919894431290027581790781612999383855449758261591030392558998100831873672612521420111184287953115656728097475260929164431311212012905994552771884394668921365470441978053459081842824410496714395266580310483179154623862071748662885734473462595468602489806142220965925849093205315509806693592945173612380716767767791550600124785962551353644388401988309372503236914878896264705370612862085974772253275763385775953415748427311362647626547883016165796832314196638689616691614481021640343906489082268060934245361722435254696397393884787359812455446645749610892755431945921648000166625187585491720398259413395905960724863522342913109955375942727574988289797453339966808750757926104499635617923659142886813714706366723120352799937574513605462304176464471340867309948504460683218280607924205443007692552565322197687870965080502969571995426085095002835831578513514338289653206609782124114667477351746362549771220852371145987004611600871608926492832701549008804604359665997669261531625022350548898630741660181683258041751203418644988777538305450609945949247001583863959948859942990598364007131456398983890839519077968627270367775706942559065860323071723344598595248020519536520350857535485310010486812492396641895942306231268138594569930360087989678830064165487540774102175363202817923411101379095678623239165709749135207289018648890550695915336370112581043089087948007673338988358382568759261944781983523707769051750720504781152066740376543282778225087615816379813244487744956301571678389607471449976788124046980146750276333974614735382166034340920898713861487543160519191937211591132545079756940960193205716636197721866454744567713845673634106661638683904040240706570328308446862577959618044139155827507563772785787226928993392632762812498425870265380105508326300758922694188129627576114810770536504988635319306482083029330553491615895519774670873442737963458967130318511236227554930434071968030315725617206420124105964649455584585638726811379567951560598716532983640904624639143344176203940239865508424651131875426578283157063017786616429238709674964098723848939522084709841772507623555691032975883975208740922503649690983649494129842243212890909565126991744869669435975442406112228547268273560939601782111040359249662811005950337553995600080367583749190945425204577143262146177050755553844118905612899359149952689120374968173394166512262088020325045700520269038454939301422130606981222595883336249629978565457623470655938573335150373588930246780795280042888893818623539286132092299430974652871502476992181076225443935966742596577776651176045428256599663223253172834161773174037330638324641236764767408609298943059847222746985413849855128404148108203443254291362266529550158803283201924594836501522235248494678879816233100426883208790877545019039540740678989975880319477729275414756691475898960146853163993546924196305824619738365050080862311896341558193948011259679380841621244263806014911604382270703720411673862965070708078434815778022731842528302366244695437408929509969560164976792456168569054302172205724213667784749551468769333243234040238363332474368220574891576511766845299386241341059828559263578690844749276258727040623210249402267261664214113561279581201040964448146265246369272808753605425216623552289961662909643512079222606419394486421893217379082620386653285166383653222857965731250162230533952195319897130146559271410782383329954394030362023685715987419515534712878267274670796537598142846229806506648701174018361087621066451973721640259339423428032226451400313996512714004573671128916108626115244504737451992244041615251523952722305563924778382242207699525941436882768032312379161961438353443865796232127157817762005384943258220804133815423803484936395753285802132769439553211696325916345839959071512488156201364926162947007880981620317118197784913095484844602179115692200915882338556002392244512340471316479202334878605665105416937121755729105794247238734739458227150799348856221591974624049862323142989087835709440447150911807652077656047218171312853281502826879969740593090210355880708328601594672518201223750304943702087260036372362032097671032682030396161563406638023043675700565938460449141665809865165193951338620166417780427712194822537013522651054425768721574993887912333102342853035180535075229266398754779891300630872738146723649650884423255293105698534688150486232529492594991036312639590098781948958624929850641630878965001282356790036555410683905141691545886058061160149172164408936659203460931853439199962047590786970727912687192684831036361112751332057812432656880830669497638515592291010309067147549502512686247152632567770690651016504982349940583070304635295331345202964413173543777949331365589509976068894047031868312884887992237136241589493011461942353007356440646649143953929506604708645270910919554583589158859436504527674953569161438131591698989138050910640681876360471404916459577744724436368278185102786103449888716198052799892905241961646797746602714946475634216622951604662538498472793107645023169172892306270345450271861506546464162383179423035316280228380940735369243792761103867078545797861576636364845859799847524090101428944678119781060129169843467437021951520255268426471908001345958387147094297479960788555962645310170462926414917512850860773170136159645892331060078920827075267153822649880440342581724700497769634865576391491698333311825514055479194392622453599761530447573130844932005118817896969111886509318761285825867910988915936070901966367869666652017872178280068419089233354997793389536086757139945954441249888125947449700282574057890715663066744794094713776570132796443725173424776245748525519108145411111989349426412408711331529255178369196062471570671967076563269988338691330488978903185902752166852888221289895587818123728192486188002533151863315001859061307912300390082188195059189044773834403978820032962475689390731641588332567553426153621614679866911647339391115442568770074238014323327815270694512705858770799717197379009504660007244867849248710431048593444516692104780115323775188583410434985001848106257349741471914949146017512110822951256850556180841139080577417991871945032068090673329293545294183588020041815898641886962226981120179895056874680325256524196003183288679778891784007920607276126750288861637879637515551610896976279896057385983693521098532661517308995416363195529179536093839515468964835226621629406156183180525322642179438550585479511571914107658020280159042488670441702495717663642337587474940376997911731207323182124185474825856680272882704950017477104777299617215174072988300553653186856575537898197500749305749961358065562448854196502411382137672383718478754688135508155228948507503646220121307114648727082748584327937280979075223233838097218012823793518319771611596143135992275032908412803016855483738386832433440856790599377822803554389922164518073439514232502706678731288250094583741327483541361367777649690009167504248431759756637013808205672257418965570428283065594197198037523477436154388789211814365129137912473565103728383296519934143405125393760350076899356708638344228667044853284601074445161860003113185314519974948785803219292446786453670956638462024569019684720308463305076733972879247130841440160151061167648114973412343664135872592897671930345316375248204759906404767069285112645275652229754302650906895695032727788345771266078437826716052132789944463961146122083703908469408519665585999574024598391737136132206194039865366911693227862279422882852907600509180960767367171812258470626751127881431497765875192153993521265176537021210525172537635350804618397095972895983817756836456615991879513931213833032385939398263016658472771390851378931589923356203726642549512774869868019876034952006198089543260509998508245352175931968821943091403580945439819570135037383639183043457558007185803853968066973292006657601033049271697294902709876229543877817069880623696492388744067993560255263535488946909700148650281489179153819753390700447373337447676168116632031296898555589765649457220284852737414989831465512356931202220009573479092296686826356129028308347339211617890925709740358958851895228537267616557383982839117982990254387099049469437107888531584276996100833494065969673669323125040387219155780281569305347236991448930823723125800836399977180965898835998350602649538215574035367917909596939935216838669983695762714816342208598266010731229285335256676597837383638819073860222871934380097203401264250318442712472598957816772264361565609803660250259343216848389566436251728557007102324536371824828603991520225645969709633800710680380822219439802752805568457295719113854429655881229377068402922596728852404147483016041689428224594684073277889076889541473644276113846854348814095918011895851895579930839815113089592841288872849032067690400867387380121386449818660908756976375628686497923759739035158370374177512573105715678871707657779450210886584598150115826178068550021194897391686708625949815475297471245405490629088206773895155818236611824274603173047281523650977358109550130555790295099523232020315165957764872289643876761163871571342877526329022014148929996422057838083545423727916120280554541175215763418650735321749593842926384821344040416096043981644534035881020798003553875359279459717995418681434557718625998788329589414431393901626516729704591873422433744969966266202559213084238244214754151280833913639912493921597453121785952462004467305153607593136867422533194573491807128630431121852253842549221206356884725101939375350951137242800810021940113558103796638431122359107027163503217221043798502055884401965317904563630901054157346994234097898210128234622935779845283522509232478171038989505264199048501091404238450749553126978569952725710700643393157963972139878871331565222761115501594195087227386093547817117263803910205388644288619346658178747690070248609103741394223344080001860383224584940403456906964928544627904839650760569535017056109091898855704499971763475418296706600226595000225657301981885848603271491039462556525280718010369506535684399419124689139098678517738816098664293341515976497742292011815849861174689799350419872246569595051538572567355228724753849112468191702063791874978914730668285361333602101157227583719559153168630503746962268732546944455902754871371128125306606926304239470470872515158950830647872947336139855887532841925298957847023633894032339481302749867667638828706985661253234920563479337236455098824920058771204361149825936272433361715553902362059889526324322550237175170496688430802108430398791951068099667853475998946792996811892103717638944817621686312894119378445716021445547408062937538324032852486864778446939333046126938855110721098422661771574532956416875612620034470849778056031172518266291128683137973657246299709925705274313184025685596450249953193053193668883729044833607577677004453105590339655883510819713544671101760041175656442436290946878095672365725210527490389951834682043198058545659925890960728857145608929650023869319874226487120812544435343734934646445179817137372080954080079779781194195329158710420399903843465328213290233077084694956095722932346711846826456307557900968404843405869409323644767983715522837688847102360300075927442287921862791344129278363906633544719125792584091663080319705344717587593326140269655159052395063666240008378508793417542063232694086617699913571499488715140399090100204009398230712849969323711952033175328737088458049375285288328125014241392267546877621497967025281017693494997268275081888345257660263269968547105181847138812644573266544331170797109330027845744262186901928203349516131457660099994517665814114756463547638558142008135541159315157896227885248261281735280902633226493933358826764087208464041561440647094259126675891440004912571857808935852835554746328500763365471550703201280517923157638109763774569336618435282420992529353590308353501448705499217103196321469180022039606204421779051145116889049145155426092260179309304130463385839874791544388775799760423377606334998144130497211961591664119841076893020490656177830141406949275548763057983096562360001280023827551342538204588294459472322952574939598251963407081442528795480848456047280471609913263216337732304314762026781224829416903318662726769218568892287499945827865176997115206872529460693175334374497454893519715845173419010032110439476650974317295174830037633520872813758387047414791461909301534151425379138504021672573229099370167324189577808364726706256721350109663124251190092121150766949179498963381225431977815463140502582540002340234178997487851318870644118777780213787880359036420557091110711473467676900757717992613910469414792388881523431059564211030363121320501728011567747466863328914682476923219130473771500784368739110591119001181246395593679329125577080987891158589549446031667332767726298820071064594842360304913880685461190216049771733660827347580246461881741956217950301300845457512151377355456593010376735277855707039976397036673900206720598250213479444969500144284984969989348347558389916009681404334329802249160778019537897912907259121310659693170823149673951670793141992590076709325647313477220710306034643739978382649500521257234325751735675724814346942924844291167784991809692959658708074130847567871826644718043893830491035182296707875467592202582491170462384853975170695875030104384000655412608812383073623969563567935297833804603170870223061548526929291864241323536957768932428723867972692629632615086262884411785049597837220248007501697592844108345279412082437050147719073453604349146564907148738298252862982892064023602529990858438858176365394182208315418106858669549614512633826043688965347612578336021490270458595624752021022605008986061610148134331696974036767594953941156253397084648118204476788243951055505827544423831139522873611910304965651666453908980667823180234032436608800893285002069455678285092115939071916512797159094207861432401760851203960951725646895413908589412610981997642684827508276503473996334171112571138590785298123482092090555317125514874749766217164611239700334200888030045164930845785267527031995838124430422572274572315792976361650026130979234612162380869817753518791454613681383937601545985708293456298714664594639853957376723241510781588055794716231957421804376796471880054627995642779878051978138325928985070542737603043031504174817130553249167069218709613021198593629242884832134379146284699517193551253942094215080070394344927968964183178018236880888036611758476483875783116559994673379066967969012068437404664402920636579765778063533385464959756020892827501140044528140999902102692336001786924550575416933045747904257130254992337715038675528868531858406661322530933544402742489657148751344098298496130173662836457481576303605129325253575340794737675221760445006824068694704566690935264333332213907842067922136296819629474205632866580564383888770139591751944254706544722982411835568648377396707023389095251993550892952532528602527878818726467885993916797357731991636116388126154123299647533627358612173136871325865049787801474992037563751586066496969906737123438423946120333334731032721127959328740169566125043690159051557960883973104416088309539814461732497403145571351787485580398282211889833340158282041345350207950339221759843246889142688422324028711239763860033661312046538782022703577811967492910688347284623573208107360407674883251590658089199010245130108583426354540890108473954178176251707752385627316916911593402869722795714373551063732998320183766544814589761765088991579603232316330251116695034291483663699641421968547167133938408932164231055260463542580689128099446873047618456906297701133145062787254179330707550317320209139940152848040263304581797242642276806156977154490198226370735604395741825204605380756437935030184266356000603246853671726683916706821150329039475774219662691077792940794053703863727402386457895857861584633331254999613837638972596233767671580769437936910286408206349065241131922726278842496807673334083432143551898924368549578811493362171334195714020962440800869000696082600378378787956931948162119442968511393782085646210428636298783121994091277370082046505142425174220247629304706680579076595756182784022311951408569854610342448491982423323148893387720425684251777822688707153278864101245070325420375368515135481750716449952430383613758474490530218636222986381909949131604324074315414475737086318515872117297251625153249921476859669475128881298160054217801941665750901459816480973217238881052150519966656124131144540999398821417769940762412610676720166862801963761284334186197367383122223081349162282950224726450514938675165297549773192592283411290635738800767017017316320862084405955747575320469806053696850087823154477127954171380918328015107854926649280230460524306733777179211784769697502840245283515954722829608683252662202113598720842706845613129848634606766059994301660127319009984731895604328880474325571830406788923189799957929294750951403645076822363092959661352224304856339293391929725981191463250781568881007646532062076246186231073119163422558806706368400691125858942593067909944242963708827869776624673387816024449650616550161897874204195212391518704253124121184514863267388722649514273928347463385399241689579003003873099778984529239681882341610405185162529715974947969883588867228912458031590763681442689512829857245336145431381752910095345514140349690616813865439355104986145107843292540417515306716320479941502246216754589311893397839007086118593401750917904189346881885620392149542973317240747192330393046931505225936616882560408684763055072711729433324878131402917596604922321897450340761668447454277330021123336918547620519692272711444689428289202244086456267435486813020747880094776251443959697562922148757841903033865341261662817904044567379716319358300381404832684804779453907313634325515791885321599585235474068528822779396301694183840441740842808580672316044837591232116332389361447045923241372984814473785586007640456304616937527912308446280506091022100853431018650276528756678712615540425752762560824690753791019090757922444805645306154374453442413777228895474680727705622727075144082297548845979279985529293319866797459856221079801594295251178848631349252226259552123179222574329834287896252758452426404394164155127964506957355642162651116796766059757511263712813792177141489142319801385596071839325145456703552829485564730091164905812506704821817651472418668931616800040567245176792609409386405067486129415996172799260729704898744547873964461774405113816146801805779162133625354244449710268518032231368492249208032867754171546597338312172195269335978829073032494432172829875255708893003267171525579950947988128433377963672254943415088355882579098649794796383639592475565325475567873715327585880094084827150516645546519118578392062815740443350628858411869954867411868867057668944859962408459065979109979038392435833952613397553000275841347287786616248709238453729692284976509653652011674393043137251247899400858956158180133790120642200739187631470159012834215940424919774248039866738015645423011065234161430658139659080297431962286792306365260562320381202324776470803478397644880731196033133092000952414163928992788302692715111548683180565162735776570154936040617034330862287965018771502644409823614307407195416522711397867004353131131825250732818624808074237437627218610141865938465984996203398871241982231154673971942532617985245366068873242316998223994222326111365952009724486428293985418661770095427888962803043270095247050450107617086483544667329073800170998562104453911303150553079325628424668352006338388155355777169591611874036149862966958185575679767150549757827482657881975378843728627494735612710148714544103568465731917087005732122264088202108859073797517410953601633536624041180685957700500129818981340283054505283825173264509548426444059959931685524113115160558902987340173362215721665748515742321921076316079680800577887694762020189331953405984866674756486761807852417667592496915416184596868558476293281569528573280270406928024733203706923018237983806194722609061752425474316969226377526940245888771559686334003142959305922757600498436771320878222089096804934463607379321277725243989653619690581336789400195236478871610424681851311551320286433276524218057773042485788803258003561925767629706728184281430761877164900413835455273147123514454642888512778802342007339206877472833118359629244383096278562773071843649115949591430896954405208212229292820548369328238371485046590953999093799755052324093282812930907520222361508766530485467349635386919008626314160224533498020367240424472040972010886743095277072930016059823021111206035036281115831154135703754572243265594651868483679041969009575959314421466001368054533208140905271476460229368203907771367786496383345684626104909440305426247993287616445182959671001609875155476712000965600884368187519958181232128190294277281062726600333520270980719987836657686275987378546951530626988376062013126710743055486383206220469203355674414490805312884587027014225778106128525423780311561588462479618467813944987436829867315118321727944335496838843961059603889737933378025787449112316671496879598263932005536986863380287549437916889655310069949021288378607043352313331645238731204469774942581146504586198210185035481796113701360174032922984512272868167886835780247438166117571795975832984521496399693132664288694520967827319651570921297500200360206940416933342481330940232928292419420357343961054660276041807820318637726528793601647745514016288399577082375172895863003048155158388639423140382246266109490382753487772141556515309553689344703322685371753201133484873199205536221518297884100768053497884306479152956518912218617410626974772478221315107309437630173551785820408138331599741482386843553624756014836866372045134485465899754012629944053503347506166663779664839471220163486590762656620920798178427139073590651119632128802239465302981362101706473562959402125727453395620438003520815604747718783987463701554382442920521952847754058204334326346041157958724734594994334192135829456451385405844735022895339634557677226138059445663170554924436513984393078330657618496447444482254195075063584001084226943698775215632933169488341136017801071830112382425750035040848654604344560330462008589041990963933467931064402602194636661205249245321492403506149925966447241286331926173445697271906044283065321418916408357025511475052005079862063679949669758514068212068177311738655099039817945073101091478497338531255797216456948219853430794530212062481389293879517167465179129697987327618281069079497013604539240404122551923567288742384852590279458482299783748861127753686477967434697273983900022016565901541810263924198998053687914684985083359795678585384912538006898153122193831030769412128384457342702848472469613177078653605542247339115651077532102053742747476914944452692930596890955275141763237359535547147465653377168031057044828863450471016634631255915494951131111939925155589372490177632422033349447874477336665587007586078740036117945390263524683574984947375836001206022474473109886655196717514608546337628848320960539770113850987879023781233612471145162986263183809898606142580724460421185331542760342927422458709658338779107153260389154059491021962651759217885748202771700712431652560823209975268733258298122781370058912105465715315676705903354677919981106606692391863976255902584915968482921199779101079759321239705378486555801970981518784409171108337187526229023732144133495487788514488536448587629362202691975913318948861045900014058929908783195071550232356929717986431381974650241228885435981500959675883049791674242914127047927574802152505546469750154594247327778880174464012900136949189161801519670809418395537334577002551847147778483200829935020318945129456270559815181876085911553188179505427422204737509856599411231676591003591458933455484584539457916703081262445991606078294061090126597813621807531331700181327188121497798942376935699784902039911331984681931823484295900674235938829505926032703685278823426516394225422428289325787427387398343003879476506869515707240721581343800003544355819307777550825451934463626964622258937434895303548527642262658318983280811737661602060655186177160329258071859480449902859309573628314513560558037400094858037696237996949792592117898859390312720896305968720371008790920833905419371840825945339227262905210837194323979125701436436182430898530496034534468665086982971186271015861225453055480203051948255462627589727221642997547233723170219151261569958970254519327362437500813416162680003846784274191462716688388461730236381167367568452731298370812819572236006124285082271088217657499880142789967626055337256312823768256519663357671727171825248743361494242725665935552268502291026016949173031486628887459707389911419410559663429007518575774925911627776241506712732375509082307537881527201321602628126194198408615175583336070204562526145252505087023558222305778386174220404262974624311609266487579259107544113277098188410618498032628308793132376720425814563658153553464827801175200807869262472071994072807566885443278551043890116627040295630042230191185011733810912075694023679845298285126717624993636619189318808592731774736533163415233783918279116895238656710676655050595023716993009710822319769297803256979358579072657149343828329195682424211601045066702511427538820857662999415509264828673002161951403839807294895364565875014865000625004488935035441480222458984334513537338462691432989160280469633439635071122724154777814270366580988571595783425710611697967989330699719797397418423324438985595536393069227485971151790050926441309103435676111485531335942848254974773243097342954178903480742583061884849906170398497259115350482987630902497460443870219224309759945510047544840673111574864729466729301630221889964548335828812146355910563415642100121565154251073616044548055653854655145535633130733470440736338524139490366616709492437907683270933197353515785758977365652165130770361995043869978910208287090181369177154266355974013196991217279212548244433786401292434447213387880267885633423182958342109929960726685856348213441567362769079408351578569460072153255551924447101736086916908329855857891582717572907179321059166084530999766430673862205838333365194331811677886833246208343224263252262092240887454902170432278596396219362451443959293604884702333625591171717528836804901585272079210154158306994160894334033158735983457687973245494566154595275799625254481010851414175090746532845271601205141425331997320941398995485083844571680042518651379685347708076553827341219650154260845328904704950911462363700487546188245327131599921674087806825121771522446509883123624487390231974488240036912857127645087867671067772914326183990241114404021435367737653152264842203588364019267809771000321777303041588329822140471866205991572163734454927781431119713895069115233921261672109675609936831752224754278769018214256698572960556491502374850326098038135066525648722583078752292899214493799879799293605435434399116848161691050178362942891962363385467901103268056805969288518260983333826117369908767227449122322027000309360941551609956397947300501125229954964346900502406364252823000851031522213471854363126679161715939759909952048068201016269580499923685993227201479663005357461632072041241795030482531666317637543466122476928210046680870262385089624344752631766921240088013805731894166336949104448888918489242494607330562458388731706163007538878067919658146022167659648412985027203563499685667488517945668664231226776019722268073409987163570684183913515807855253995080081932775615557918036399332806740719847787660485887898916409240269275410027679271229796354534414396408188492085831508143839292665298902194987019503624256730374047679286882015038727532033666553464769211813345415280258082617331042120188227417904181168610850830519596258168668967410230589857113330927223894622132254810655865008880706826068553873273985086329462059071589081913542184862806897583967513301525038628419315197459093336177650741361787365074864174288496492974746447302951549609245240891288888586301177387496915184874850235407894310124212352966273056868828932902544881249811045755573867426456096508768189692501004004181762470884395584999261901305468642575226466940800566327129133668060532897246371592167467495594321985415908805429604591548938034965632900189223903931657605231457678549445152778859903131567012492698464170970569507584573435078317802164683855215678778496688950378690773938926112085955956243223698808097194979025860443409908428177045309731318626548878610739240334648270466479770311156844600390195773277351834265213126655185715667727914623204260663782170549730847752532008790319665081223807038671830740765652421468732404793039546988837527889905859891197022568394832220593302009111412284356985538802137414907131876552789448962961753833769389696439659992528781677388815131239346177251613775885053785334152911840714184640174608957042791707585976490838235510022818018660182879059560029107629122577233202033459928309402388245265111408102632027927451625417054045716110680422463420888727647268649967652715095614855645014219921058021162462789750169257376037812784971325901172827547074620260035740359531974931904477764688663153203996248521580201920841628277874506377930452114252082023467987993291760441158847870182400147384539907658773755949061395684368695381611611482697759448693024226154493397862173068478124367742982567023000784775921804185958357811530183300437203862439134873537723550184501238507299257633143893743968899884551810816151327481920792308257020786873460677022586609272905441444198561465236845541866858878191623083127364284999538585426759745692477889560906077800713260461012228720839348416501820382673183465483114852418145193728764746251345768739330753302615072378878929620107348738020475829480891381360078699734251965570542941705507087040472183232649042063131014811373892472491506876317545141749052843202249855360351063192191014410370262108863187093100355596818358184183872634227946491180777094912267181953923744015989325190378054398333827429914665306325247610251165908165167866327878217611007806801234077365365050946700760207047190448105344279627984743290485448311351815497373607955579355689786382753467917699649036854485068388684852350193820825914121272075558606500182301531000887973752833907428132209758707831750486788753761199651712487524311507500403891626194926638977455226721913984558344266130492265146935593306409929628700265962082638818364213665566632236220355744636348090976097321961666358695868954473143132510541825287131116739501452549393190830310396184029164456941932002844504149861475001761120759804771028954803105316320287768177917966875066821612546803463558573584061060008067942136810579263193280958550735446569668258522737074195995066633217564570506109810011204434057141536009906102469682694474405764797705915964546259601914032330878537578434455549673137867187760647753364287909198611982135380916967217069606586824010004276403611373856065924870656128170836487086121356084112660247570869055084329972082405309913916692657365440397664171151242449584747829137527586421914144496746167344449959853277544941654826130542346889135490640321540376425442390679979112921985467404186132009209834069277574097565383803943980907118159612039485209629446140884550069918974083365585011793712471774720063385516670131622390692918013548942859271567817698335035373085153569140313280922762879210041253492122168671321798055857124482221056947870894160540986405633475321782628624305596853844835796832916429527778208288301768373696562083617592592198714239394448180467983132841112208142608528057522503649535775044947674674701805214097484998080264542084806357327053733249685972010563454761650497271508274493112443828886012518871695186339177046337939398106893300800042750162132735307533916834183194914581600942207167468244145343785851868235564103340285549458089147482189603494414547512635630797324270482319760665116187050488422970300028796322345435626723377227616007668033581922174461920932819028973887711918918616117717919457593320803339559165206852521928132208615757956033913680440221740356707954052474677130206459053145680868074031178763744558339672474016576986532505896512033138786255224911810093691573490994544402878634472225910712729028024577817955733651671183942373890570868212660092957135804478023867072503092664472182684029977416293669247844002534734039477409117697282505579133589195981639661328325399985369991694248730166850904030750515368371376697280207820072393984042155273332821508605093821326529773332810858239569935048919927167032090037156397407923994482991020283016180018600056188876108380517184053747264126277275174092157229005636555551884453545830864386245814429720969041624490308827685082100300812371569115738373980969456674499288780677590494604811945805205553633504972044260728988753563903389389397634526065762840292724770878632201064958756675328329905587013047490876625358530593187930253739163935618485268941294503307716652190422579069131262759312387051566634217390701515296734295458875061472784302102866056983260825391197044869829009323345676617158730457699634782306323257796940928116843995641954164199031638831373938865291968354326932369163462689827563914169544941518058490383667849852849935572718115239171336066332905044262503891903148621316629532179236506804195697170541646602093124283847068534977693517959244579010600047278408562602704586482776924014920407154135743954653979326823098234814650601487954113825351736117776669325680214681873925429594448656472459383938088883462199925871358852382708407192708893606817608186499101081066974063945083156836831516203502344406799286794145998592728835450032261104914487357845080547838934930279499590955369374884345672247267486240363536498965582543184273734511912149307346548285548949210128007139706042520478962286778010657865625938164637141122041521149156568347462365218975492266400014169416104489221969237974164469074789904080989059856415253000486144553117287329673574440334166806919488967801142207696945838073184694254444678750522787301346433526993582909850636152256584447746895049542418369617523664510567134309119000164113751030369386768025198547900662634216729690581795574852995050943566774649410182815247582712507210107298545863902699787420738572531594497036925619787175438273510218674955958502576685155427985332391464038172446004880539941470517367029569474480307541530474460839433401531332936697833134537073851163662515320280738769363780699077840402762544306826161154577624511007068228970000229042586192504173862270416429568170698652076542213599533319938562903248575796800271370908660990101851563075348401248279361106637712056252142021657189806947110532183982775726681671983822332781413798061073605730881883084187865122072394528562035460849150253512785252661838965591240429139713590454905773363436685553103783848453984485418846366500157254974287896157184028906666372437399967199499113498381317624373073940468308722953998743672233361135136178921056323994003294191073753808735506874867404546963611497652171991799348946837529149623921588029199117598727565127731305965437557870124715860614887013504393479107097407337550347129700484279374948839743879088791807720560013659728644625782444273550941668770591454511334330098749834119672242224203874670302672732866868130437344850438438605833327063927145261106132068700016055675342264310029124148835739359666228163411638549071287268939360527297376107559332566104213325870358020781379231747569339059926675782905999371325400729990103070005585663645847558324306371817485197996639980478785650853627349906328152342813907382026093140527825195203106278412751674168130508396687984344809229428188787007099468851495575781677898190480559619043096973357517138822385147244795656668517387655926718268328223417935765582806899288022787179809441928853310744712908153719059757110253718877477678524975314607440016314787394680385468006928706572305801284104722122973195432826967534646908754759510384604287033705845885856369971474396356105283270519319889937641404025606014789981611599088057336689525386521048460770993030899166710821513091158311676186538873872245214671586784979667286673852507341379889001334710536238209085288064497587277898801997887563879983933228314332168923212241931107952242932847321308022354322737065211160486021765229233260079036043125009615159046611641595289992559854530948287727212361430644475820288015144977041572647276805690431531838707877706694311720534709358085969063475322233215512612247626074585796947383095148342732141602863118072187095161570540122725464220837045101635407190423597496182709014450190629803594456775426851980508611203757887776265364048466340322040692252424325608801462742614811535541888539672116580441529669803975001693983766999060881320888314362821909146793057002395649244438693250580889767488820387607492629268473503731473111139801898580670733576771628407845867316929360142068139327658425919638486018958888439896347534692987000751616434681485349261671453805053477646385983971479895253766198884624237797911053933709708474645821741739257578259523796351139519198694983173196421437082238066691222658286598324872152067365516884241277865210826720827009230322956376356744878951727084015105571485349495964059478647041296531265573070686760396438339201865676157086232563231765536907299928201076583380465831049470675567585313100143771442093112637603233689100782726304043320906605181205794271022549155765122267243745210686332141501971931266738373789885850436727980408178919132793645750490850026741813380563594823586235134264692109867097627474149138639639314948647184953449272064837419898277736114696256937835883637833684413728214204420320264924267906368637474342391216640007877882461964418379109353649984425874879482207015964157221496935187095729873108767816953969707552502191214507351644077947016086021465615042066511148467886782868046247974476519244781437442471268726520214498242075579783953093814565727882955879847202820009544060252449164080091491971423721085132995494591466025155934057119405046617374631520771020736195444244982477159870554474613986965530428098625924438478780078909702546813680410895401656736423480359068918794053846462050531059459240400823764410140451153799240736984461736646289077004094195199331015850652888455085968815107920417321966351683054519805615463459509730321623832679375857792612689814919139434007604699888517281605215533220925760211422132529179248044883393458558198853759975694991258639017831820598341027303447361303043205010008805252175887354108787813233710948522828654523433821580200592431242507696888075428833744055267793818710112230459766391701270452054385842060079489875629621854405987071135369611321676201245193359226496384960080842875387331320299640435681007247393830136245872001209820547627379364226698382799891677681591724047346101032657152468630492083191082281863808164543957581282407285667579862113468642161694792169392022469910800279905532174275054720103236297729401842641532822239071687454727206430933802760530593674824872106208020644578435237032101764803925464970211187657529848979408928444793465466367558751143640943704849249955844859760629011104814605308489917680866775109248520828905725601988460366235639934398515305828654115641473237561327954575089233191186725121398041118089288969356453423107975222144643608272182154368264647747307112539892284979148922942967066780345057234980213976058853496243351526695755771381366552198964965159302237927096228725882766957625027681944907405891109607110059598744866036440301537620977876887938566068573962089499046354988757013900480927381866624584511295261381275408224320742242383307326977084608415582552204332144062475986167954834898058421013063909162359544884622517102476243378611815663063142487867345200704771930031984634388707177450421368442292014019338950799190997758124970388026576762952310266900787061969301290043887704335747545686240899601941785615688020150715036218643510629051275561372272136375653530340495393977985659234748193561583096025805743465633863105796999015790298028736444583994530584277404907030393891271392109051322275697001934407888814050155690586662924166355947409738491883021206463452138300498206710815504641476100341615297679039065574540725483165448370496709411075051927072020172266602194721300641216645791263896462057210523507138809990442457855384022730586348958611280164898141818749890693206412976152716069219080324846598061634175072432204189187681630554229844944606561487363566573766161957661429791063625170321632749108085603439746950731722771735817597651165513366017993038346164248197867595943592497066149237566777512052386423410489561487665913302899460524239555709732156355773586718922061569058979773195077277895361144561213084535548778706749358008946725536200841363176182527945113605529812077150775977225969441779271189374573584904345849079682828695243195723686207992636937807391119286366167721741902650150474859867608931224755430314027151794984929229567862163481829154311172592445284653700632369231725344833441803602514285316281493716990977136089005692592135940284948439878011910392967331667396910481721368117393905200540558627822834062344065113862660976358747428952000926611048657284194696576150570720897947913981212738749093439579570243435162115122323944869425315614565543654298812034745377094491323060453363538445330690930395235844718618720155701173197582743970266696853746152063296252403533988635667703350630753307602327377124080634341975453772001591767850201201585489440010442735190908678736712609939453875390087021038207994248863109395815166516007184010532842195375128751371304451215330760949272298474455198281997633468517459033320844899616552237273476542391644669449902063016928819331171892456452262903889387892698139092418471955322609216343916067999567981455522798153004535440069151507436653192926402142021633842757250228374548711246982958470092032815708544283626706016542904688281037472252275240900578512053971935539774604158437834378698482990506442982175875281956634271436408361031197055782808971759396853268212037919715575863583941643627455610207652299181970378116248719468679649388738255374383681058533950687514051609992079480151038332202727016330739796313487335959790785039369054402407199641595139120396626338691353418804693665082612498765155770139085987197537993904415968152199464115702780660651318682109415603200029122780123297109374961674999787229601383719488335883102541886632698917415439951447154691078771770739634683265286103407628772274183074486618865420641614451924598214063500296684930185092049130644364908797601208789701039323037272686218782604966465933272745690628679658570479589992054624401742333920876461161154309089203739661303298195829404854471639827392375898579889124324868486811951093976051959815591658177977584056636100470610551076621239488332114539412552992378917899705034270775559763387356406837227522962465997232475420097035530167280384505105494664471812110577072051556457602944026813537131932389362108887670900570732260096990634805690987608572975552401408033052017240443360888304169320414718090528209763905352357419559708477048568977049590060901080564923041078644571736664444907444543851982957770620729714322420554379822442645006676013201110257924082334795781923805318777191226462366142788607213951214549609752510319524009787581988712839624633657553137519426444043089241985786809345176110591493800319688785562072655241539793291590594944736502083656064120237264443691994967799050304442626698859445700927486194746006651971992536585604730402054327581441640868171689556287298953644223087158228642039528627710585055845197777060644499570057669016326783371544059229262880451560236793781538378596077739465836643726851577478922748069302969132671949305904176556272866566660981199766803667590055319408232734200929065382328303886880225796307371174423948273123343145866795973417685312256730303689897589324840131960719728594593000084307946372460845901528421636947254207375159761891508771630881548027479191155493797131128652139993721898557270040260530831198363118068076974250992560191175221113777052312144750037968393836847286860279059782799862735342126647386832957089953387616855299650796307233584059526385215864683708937195838350322386215235287267035590310286811174014744728176572904085539991472982206465166840924260632133549734735480885298602114257665712170277558869336351786882154173653812091245810669650516889248204208009996452024260911699077173452679959104064005147995032852766922307404430995308022856377051452047335219627525543366697702355373207148756675005403052417832284370261304344673603771216739263141832454390472810807482761200725059055383240016291640822934793483087472921830182358352635762637502591641187297725000927613147588403604596133271413362394904524837936632500788250768695139540584398406788353851475162357942812577401827084026356774166595724089215192187699076993383737938907016614223377939552353486894514055694725809790913876565606271507652871149235388296209487350804727859373610465342776825676755031927672502374641596176776754815723340526424866629819342497461338231621035408773553243302869083839407336402260157174082576978505176833291476724635068659321538606835497246580469913105925402939173900847062915220524612584505547462693610722234729970357427062205248041705596773427638842717056263543785306252977654766399619480255091088893783797311424447082205121414530658544615772210150307575199064390670627613013254825508616723463892171072749887723508298195606769838773943594459558040338323207785373188479649770143506335535912884672008108725412136549860609250921293180867368814357271405000953991889039820222348768933377661297411547261765626585081274942980525852604428285962874949061367009423954445799416936689231381727084689065277648411073949857286917908786135376901566255477427803605789890152379410985612694844572130680641533753672932792072429693625208481368814176182560723410832930006469148658260793915815183338945585247413028952783826748576253635356071152878228263684490660104376894724948929221018612329382326905268600662727001824169020721526286426064697500915411427747497317527080461045427268695722864731361976222686792215982995024290156931403006409632496474721308789171688331537721621374334003292263803412150140523210407475902600498786029723713720616570624953813149974661756099146926955204360767132510547865057080708443308865707914779481894119987481620840757691778673351673114381046395509077733743593245719575933637792886272364311693952709544646802919214138722350593778222563207956614544942856001752662518444164946967414231171683620955189103179840728141753188532562643607963149386226846285471860836090650611164995073803242727792512154172020987393166778403978636622256890082637819144132734037064712571924345253541122404887154238667331181397622587221378451882267230592553668596800817422459093454185387483171148128247296612909539311635228824832970520998975331771615178286761917676363340191216361132735885306803191928090904913381635269404140884305659636965787967171877627066322611594677602133013696980880099764561517739165107216081284069163167842681896245497046010308450369523612527031021697747864218726845788824471329212451482023120158059552354726852801559881552457597736826904561061349977192950296518733824758290168136954696752682413095438138247619623857074337118912090439999728304552380705149283521731488548480755652978476844644812456197166770887690612792701347618732013324067627850452740551399754807600320447209514794428887617699110766085855091720019127652052278351066727468527424934054947512481005340927356870831832591224783519993226346231536557036754103599452730582802301122334778645788686616278642328352545065897432404655103735524989243178736091879322777348916789451859865558254615994836866732691336079528360214594267020203079417716907888699899657431625573677888944818035978467595854825084106544780519506526129543075775163881495642881316943937913846019867858601081851221671105465158373281012988363179180842696276260189502341219141675153097539890958896033854167003457082174444083021409068887025623150343477418705127822994308550441962086917534553388752390535578350919949842880675497944544839130384998493536601808602959626130094686834159193774275949814825189833346042869747779685319404782250004629921118857684383856944570990805172903566233077109776988754096234298432053618706531030357083526592719301977815731405633945929425067625929391697846276615576415973364796252979891836507643337051428667202073647840432608384066230421879301427422766498901737769871051935590097678023409764234665088207772222284251300603086505145330788705112049492871747177976375102722770240493609220687690363221752648861155712645792756100820223030708667740123287039159632511137188580752872849247907660904257630157223693863747267965213230458701888732475532436766507281476193705134413899981164957670353077209650088002675117696998517150312273697965709229581870404288553729059224283157785885019632369566305278942514106606070558947648509444760287468552614111640197948087863830664027811770378710415646821760933868656181618577150937126310506728556734811413902715382037251240181873357244778182575410340742252658388480294018931450636707425769078397608227908306795737055935519504313447391640951025158431366314327114782826961531687554308059785443888906105647917498905281414850172171603663774713946574620698648190416183318047530868777205827750666044469695035231222880169267855096829926904792331515837084467373797708505351603062217027051087790970286067657548831398956444100715525575968524456202905517677398224355398391460189249586806467257444813360520991878057637326710848476301781547486969590030734986607119169137974566816303847095974358882951317245143240190993433252799815148214902400940821878662457397244404147446307385842972728994888334402503405986800580405806586723512808976393686133681912790431098183878189618947952066402434055397386178578947891496186312303596016238790273171383098428444418887469580477045804595056239348315350142750494098261199912609113326774156929977869147300259706447861413014584069673541911287416222242128530269387775247214607491223439512982944808533663854918348862901357155994189599283715745411900961116185569525478214830036928552667276503351156766472641095696086110396277195833392894112426861927818129602094911080964410868801587155436069992403746751074798063295449863204170215367994128212721431543116239986044359975086988324713853290674541935629771905427120216117779793810659853953519331439262035239342357181048726868955761825906842490501397701225294586994834630023997552060530793348118637647196350721671842546051937461183564178774066040947409406764035052840736981427176732490533098150157535513661539118531191539825066618281611508445090767854211450137939369099725883645804627746230888913530026797927473570977857039439921003436939341918935849952208992497243005006836747808892187446158142642401118748284578416636905649496149811185518669843411709985072303759223178975861889588813392834572849539326230514473477186674905200329335836459385862458302642754276393191894735437725885451985608455876060052557839810701139627290478803318935595738766506815272020734084908718738129171369267060206390234335788628243758622558045087045001364255990928866349171725125074873695925261414412287372835422637139828437626223941794947811976453284945840517097744236493979214438421218320314178990259439485170868149555728596674594976199218016983223721888710910441863524698978257203114708969859691477158332185986882098000993939545684078090628205210943861158302129229295835980859458935478081604331996219687342578897378483958865211224759832862988043565533975065401510720859716998842539542120002401970853747104966076852696839685966728760395914797610973537773828641347386061591858008808924723570029526373619097002238866741882897573305435507012969734687296986701617607150855287203806072453156560660471000494846095889539979747492803603874965195043908516631158357156527022289619321667714876090468678704618377853519695516002782646261937734344404018103846309964685322755075830850920409528643419001953462415048948272545304014953628378025547328550533633514907086111897178178434445187166658084710445487739794608299589359092718645099225406228395938401526615684350898131472559471832153483594464142984579166578085185926287227735578519180122581521544640605864351855320136277619484971226742875100723368483496837976096123987690565499014768631096051038975420389449354579954381026822667486910989329827760997097617141913409004104273931387362668254085930149048506083105049859285895700339528398103858513774181131715605934949775151294998298406260789607018021066749494988149177782956340759392550189317446950493976950627658800930500436383989367447749176960422022130322250717654262759571940304766991007447763096906568537478941528114466855116012284503640426570272404753403548376921383333288582326548216987397724069064821380957250878903660926198558186586749001630102830839329378358650243628255578924901174123427633377743000382630740901426052671377341845321791059242531766978800047055831189122385189030943645370007721953467177568678083645852658497796533515271919371820906329672802709909225465621913526434832757346081514530813757180599615093099556304155559745574062727952496150749701038186260317066372282756533158366792960672169687049490177555444373380744674739230376311248689280862806251541025190971089145541476296695901435868410464696461120419605027089094807155346175443055043106222811065583592906927439603268001834101493142660742459626218069420805565895893556235582080607623549022587671451348598245460356056229163419595090752836871168590539780417372886039458543310604615990790313707012460668409215896156419903688156825044004239787675300524745485359533866731729884382574688103904159931646246638184914476113254688754768981468778848085294186959997696314921928850231075210964607721131143827214212392911647277841069534259104139885979187973331908646049794967481675190037056850285494128927565771286162954085532738251738501280677346597372210093888700070704685203502682752176649138960062435355584608056238041162630553277944030671738878283005463913277229429439150049404558430745059511477645195070091845005074750516922456896293293889996111682390379364838282459466925430777082916610832095054713817271042708242186708494832840686563330568340590076886701068768710570632431620042864535982151675984411939075693393640927406176542398057319893505653335984739835048432037270497784515744114230160872066323885771859312987545131966636563061161731462487064475708284731469163329184492937212710515459478145319725533112239937097443077282054897972478492718996261317253678520736261974297189232620847174791967314471043947813868174933957947816867260761652812079655446283967756425027151735561114333246570147826512589899452273125296664948646268863339367212144030185522717166214852517654920033293923435808999912538612689165787634025316969624753915580009167044313802090360414241415063095173945734346143310693512028784894707221652072358367008432468339706967297718719083477142557684609423156051786402595202988374024424342102380783245177959373418848352889674308807709295459872408664700439669016886141294992479749578045687879446149720613430208214563002538152181755722047165725840964213851114499586200277606075526369127458859232248102494165764399880315724515785962676727444483508489773058485088636724245212501842106414397527513423130153328660765420544562489145421086900250198585915665541147777091924497292643492933382348463214117142713633566224000164909366556973097326118207289135470970842869325822681156422278338657540438657302393756995309928276883629190330320419245497145200047455268514332182145847638076851843880301109613676233386078192219881924092720207757807384904323856901367809157095059042813773931258589593519828805106197963733146959856170391433559000024275317070871031036948743877644557541749706803110714712560839810983401093174864225861163892221472348304508235779702730623111256013746314964459095275125249536138204682656070616155867663336418880542311372714976644716119953798747568647963308819239762094417916164596128304124187495337675450195283253335064565767491765128938109321461456864611533396007730261692059077632247008465767941234747544272816008095271974101246011201973303132198955195088968334061733903482867512809734196966640395338238932669041830321835300534688839427849596405326762798477146021104848958308958787410045159113304358338080541659283354223734990354191888926474169217469512176152394448953956986943429364954940392616179705687203818300537212798587001248869125785276860988975907350157621716839919773597993762451230071566162626460385710997983589400638434645628073619328555155455241142053119609968118409430523971526455430133442224358263930804059611016754090643107340774055849831245384790106766554021700151445650786417852571411178261636590274493777109001626539812421393770018096385542774102981015850883315994342992208492027674798716541631811377185952702462618615621327358087822648688536132632608096322540284708409948792963012624685139422824456722325420654525772977915973945968655317588438917767044631333577537937704501348375989638916975301527502557337335603760172362294168620548914403284297428598343371527500794651842751838891459219564329933224271358945678580273959171146498047124810820377709734165226218298135412062524714226030262763669067638730842520519577226143232081453253360779302581763467184637945109405427177765844189834988461566583650845435697821699289078544067987429937548435763354620997037628413733609523130697266016947095537469772802860586230789757258151550480554681446482920548160707879619636197430391043896730262208834783665789414641158898231010902392507688431402718804413076434350249249846341547884595365358217420106192538875390299224887796260526641182802652290132655276981632457598266212658846280594350424845054132819045516644940598134743030922940253741011969271055025634345767611055864997903367506764240267576902736229777741646314433195516376721147315806619094876224785791390179417867047434938622418223261815185748103605380197932125620032887764206947114010054009687600939401256214411197840052146132395530039350018944980923946112126615069774586922694432948488813500768289083666169281727399813607000147749272319910329987465914703645167484727282244559486749881998494767369883436150775981087461686592247224755772555660471135189868499663487512383095715551942045218937156950220994530816806698495154400141322630384814476269387649988830143630302738122993960692590047927001736960999623612915623365147338898071054282231596939035592986113413758629189861103312119206746710956540784543599340143048121604026964199141848866172334821497879462211489752795568438698358377584939603031801311049132103069426237058700694287597155033743891605583238728241309342133901038100253725172593256931002772140442115732202991245724789090844966506923458683931778412718579875408429377498579310962584016313063185611717145463432399515874415080375481589210652334654556015363983153687326749778260777262825440634793592046359201161928362715891741588034672133692451562936276630485155516554033709065562937372581484693044619485918799233526242663964656058001523251261199320525931203232229891479465174966393379831128864890081200619417637886506682551202571645363126471416278886452670284194411551079621667014039171643266690361363933360462383594188247710006305610068181113617146720195358712213934614038638678103231991606042747824365042164594769365773252258489007604142744042212319386751092117862085251337387211983619220105513853861059655753029439341152443079391204495349635078670299763764556251975216182965496401569721879972884953053472737672193591210004389860577483190609656697530770077219477081172244430186669432679200007706478075564099975948661880093366737506334574398306008525012318984108478167218780591144030553635048960486587864883098392415204153043006442079787545468112338092062841793129681028552009623347847630280982274924083811105902860109064266414270297478974514401552105899470279900923949673672294597842531183958345196366866706215058003473461834139228775533982767139797757927244696720887736950484265437294041871030004404995972145631995286161081124453749501799426405449621593741363939085427941169368822971389512984025032759931990845774330943380298514915634485848169303164464038724838431491363816636081858244149481298291594639943051818942874206511820240596678688010301614169503281942176402370655945317133020761279516330363647966076298758015701298594257408465622277310536087454030739475851958859762623954879977060511187861300043184744018906251347442918408083867901700742069289756375436478151108349417045177091299762902035269761792702256471292206266601711869667669811879944912571950782562073048502701771761740361399759568432868371669418797858655579163597567217763464889122037756722607656569194148492889940435743821861946571220094068053577609425589253379698955426163901538930493419907980877370201190158097740244643718424250306870656990753933828512520133177675643417546996379969494254757741323012235986509539698901278609081859215668927178048310293844573143526759882133407026951515925423684891665935007609039269177302938568367683607493820989430791241894634015177686792961837740153795957998773329615932124282428270509343964601538883335237112006372662188199512179367317623307677503201355770579313616294588167166504183552074020262578019237866680884297715045840180908442520684828981307949421139934559683472929957293173221070202573840130839475478035234224047108064636922532514558797752628727788577736957623842392967903852984804416109761166924736458531925740046628043662921256760735584661790768341678366988281352659911775116290985896765536989698191729259052815692465248749962163607020705788536861160261049322423674294818085348438318094078049999110410558850439317902783320677572059960168258153897370805721545500285406016876674269357041735565017388200132982948356110709294501600808771437748641857881930392430273768550802422305933036830570862204444698597461746122274106323311267794596769861641773538177430899805611856691818630959679199383307110966311969869419814179800460585534502271034800292741723752266354067307218164520582090176371235417775702294568866150534698880419138938055518610526889971831379735579061182496271121662445632248971256596932830755659823452497883876545823283951060490933484899835277406707381433462086055063653650379435670876754182815759491705762036567913002675095415483727182255858767864095779101385900978208922392711854692373322063749528356027567783490448403476387557329846950486057936450192770097832539892309767369288959414142195988266894663255866991543312281402831253791762636007780116356432169196073670310870324041937169452661839964391435442112755693257715309000580429189006557784844819552997293205155305684921455611204316759598434757905410073777745783005184888079048954309783713435168796437815831371026912319170742286046978117603713517821526489900066364213104302419563498369658809430310294758267922114245381725333930829395038776823770959137259746128510192222408913751534284912458944437451048164657685996724821428020837689998883503864541571812181285714128459778564479554725274628432323092261132835199053346596318203734494031908707082284127799809501805356023909839026473266190258006297785276125700762424988418599903969003963905091840719230822004335147656375201793089487875367491145067359179560530656029647874848915407994727765757827938782832654946794956040334685510091485658439571167128591154953356082511575783504373798174747173811244870609373503363723651342260166629267355420700317806562478109777364741426100032412591433061949447665630525145154083935197725293515628452303977517075705507407325235878338752352974261090117676324243326367887694590544094112077463036400174149362828616229726284147024643843486862273940080198182638636169270393801008031294277520611560939130530536936063816431425639495771634553835170503221109328770409907560827268827552524416018064692732015678027377745733192902400746504922848409259442741248015532180214175749198021152489519127712941083080753700804982654711125158100036584926005703335658194071580026411205565381655165008947694302480689424755086521235391362704873306726263636235483895221941653216068963459133577465858584452356167806947536902512762053589295390349165926573218306787357708210644440404380792881679870337350279780124367103393881419321997416200446265338219545998191857958619495622417454144914105947382631605678740105435303981661638135903505021526120288912063494608830078672975452609890295579515507362188428187704092421195756338869639268850887643666104666519804880806938786664840146931975141397299793281729204706083511480549748942459591437366386710113060157829638040436439071434518476235240694804911016511134514649054835557881239101048968849967262669064911776720721127710315912346160578276964965007612623348685441346784677604054064074118085843773996431475814841530905460585326333366601304409258921221174127051570903725588795641042293219011999335242121137460325843611757425952239317626091836991180262432674626961278541851868258444484154122808222441508973807430150285780879490740619684290718965717195421977870078488692024389088801625532586187546748238317716176607429391086032403246269963846105106837301051016486231266344582421379754420328931901455700366461745868813789575667459372824300635106169539124373283350697399393926994893335698685188634075643793928772937438423110284004789898508371882704586314378161814504895784166733265639321473950072612507301232899265850467736840031966089547273700709843274188761842222282708680526054221848333527399482533713077828605908802043608851790821535675817951003026964508473742663036156598644846514374825534231249907561971935146724627083433578727347049277536900725525943484172984301624517431653799858151273932811579276992081871217981544650177867229383964812113124987764204492198353701698853323339087417025091416819984337575456421210652367371898326570871881514646027370042221902783092046996071491176091844761506700416878196559266710194025421521076238394956733081292128534379815640418471918551479860233418426674936902288741034330005857319754575620082660544527433168392854232361809814740990022968099079298396416435544076680152869920648988013189108526551271445264913666434636304740013382293494753432427953015813830791528283943982492112038198394730682465382511975159230412400130975295814420879695458961195237836447434789896191709603596179146949880586952100634066608483561805151010846288750852590603701243763065098823035382365225437169421984797793317745367666186966428896521724287050446580018468539513872298393943372358657610392721896094275541772452563226826086593347861009024307186746820261441004690167536552261384423198849162421048143658218216496396807616783699920288030453688924736618284109276071133097802701239767145161856969499992315673437878012301633445666176569684658603255542295406965803846749688165223721439196397208888853320430044894096250867743888041432700792887716852639025720906972496844110869767646531000508291079430410552052073709656536723442539076251718996772140878242198752832183197515216673400931835211414862657336783785074325938812498473326921016664740995651056001249362838225300200198069715236875056844789304314017384956916650038236476107047296715202108401912202296872311312702580813458099391332098454927915242713015792892726925287802831685127393843017235817997453897964599571561509166744058521687525500907411133265030366688014970627633579257311385826946028619932037965654953093831633772541237261793435369323421712064989233422978041828417060227702403829968849845253766960793836111669210895640021731489350422541027354910358583751659881478951924306584881692837249073383791343206850858064788285815549005909368303117485083441242520997923211257521287591327424012580564175266703935392869878562027367358902909028652710957252656736610503875165447031936347109352044145082748515719129812361233714259846208127683771052158427180898349589610266568789973164093892689472156363939630080623244560071275724788566784480238670010175891393722645079117225862278252946493044740747843552676579434026773958114919479606521894796391708380372927380742058507424548954635332287549428476391992767665920613591062278564688630296775460790708175340324545998845201681580202136523734548825875483577712799849784176519516751826433525775148359365065380109296560925672373045314147542871634477511584461500223322851041128688384250229579194101203614489522096589218830888755332626647199095394795478882572484162271360768011852551724102725660827907478444447187350990996300142444644686839491358257432704576572506163069635570637345458423688932210909291507604340832871395553791216002274610391275865055235742604542298317464034556097112915364903832878938795762574805804344551389164859680050227236486350788773501833401036279718727088362406205577208356706843889264076992063705757878856327552757138885614961007624039315813628453599239818326792202082581122397626472493373490603599875925394025220627890495901726984865665109805583328669783328251751989125154470511106635799724829046009478936074060283203145596313930951805716636357119872815141485603734346041294490198707696247140461148842747955891730932246408558986467413193117725530067480315900864525364209812768511381297449573960515177985710917576776219076039309317467323451528830751826685591404999363901334717709812901672495258563812969618567515277925559898379633121333432530385812605515020544586931495751207416623633194882596752064539292871077147276616982673779730158647542625584291070732260124266910713822972384969284284023622680474977240831634101632333040069825477038192646474830094924424159775309136291746921973104372721196244509310669123396884761990852012978248891381848189492475346918433849289102454853411365356063979982656741979694271434660072940289695301555903711562653775369052183963657883234818927438693146130126608221647934708442534093483371697153855838696433940685540475314256786268671602314520704735539768380381620902122451844561434109536265715535254473693055239455017507713503603630210176405190142164193014156515141271917828605864035157083718713094815788530900762575371351827547435835849531165036361142118392129174393003680542095154838587000899033813450573708194358776601825586055480861946570389471640291515664456396370232250417360114055688012295308106635458298768680249611543263657845621349635197892383634833614149495353688227720490721544242941077195960660256599356306863138895664379873448509631429238237376775802306685737060708416502868246003602498097219727860261302303533912662865455043994489916594871496194417590451935042377833617694775916252561310528856590954477137663922336599112365607191672507373509610046268069602135139119433507344634285812318047314906941088333934052325576403569562422636259952953680311308352736717456781295239109165221258756511985630572318570299470786152794919670140792631763489544334980509060411704231337941164921914826577499833099833417798267793794134265442283758145381799033390283771053715525570056435134767484375119386071348874930012069953448269967082100424853969035187444675440868423120005419694752281970718754848542162588993277905344187271783686047072158564804470071442671046095542095695026946459619071314634249978187083615478918187028510063862842385469503095840763551625809134863931822090637712570222918852638500358465644900749495119709577952778125698445025359996333330048204557978998307530766315300577771823820014518848936863648708907018705192796313215516618375521329543936884938106146563311408369640509146191044165617709536367699292435209920494035709347345648107903136874133767166746441640248127592174423100575924798969495085078444169015921357038347110202783942632561333636317872965529540183636467990334818856724624617894674130190366927029502728384231977525208962063291144638453273061963890735579056176132164380553696621192409857277734574018151210875988821218388358120492155815385072668575544759835891583622460205050318697812440428486748522028255800444245196920801815197637980151879432069925297592105170534832960552651117925484170377317725726883655693476383269845408120987647694773418737643288142617509660720490882721170374173537549598450893253279441419672006628529505073390190720095185379830165445330227267182735397783751829386068736587535547141713922869823784832249596773039022120331190983478797212665024526040566068585208961363531123016627400799665327327860529407340120355456563341507117944562959139702363454180326769748678671094611369323193569548806221369347270676688087002569139126110116852314258806371841579091398862779865328231938339509333864621045121169902191049396609331687928989595908869343091773828191538245005639885020918143151610965877978183814902454905932134479902346319926383464616914312720683777424199646597722203365904084509343962089055739835829368428595789560854534509575494724353203588639913704384473464925055950448421428885114761229655666845007822105517452055413036167470856696476882751186664062501838683859534144028970199252028402002238538977387397771985854929398270706360956523818163008071795329784530264506398573278872241638594963464223621628348804026887101498012478812647178840255796591339929994057198359092241102280035465410881495315842675615189717804363446665148605042862969957330953526000691185491736696013653220862707399584494046524900684985715723943090935402586426913977025586064661850013106337528186717966478442603754462756694677305312849839214494454947605683317929418589289719974325366049598571797724105085921539900908362032482008452709084130909685321966130463341909178116076070961298592484703919586590187858671439090633763785487282157931501238281631267349582930459461546779041836703737467069491508528886483848377495799068498943545814815360320048763328623887048480516908439927346964743723673076137482360541653840821470051212597300295881955865147843363479288961361352590345870124397728091263449681448699523989356466265856842973632937823019598914313303370343874294838820956369082536616672609981364595046504182689971018139821404398123045271659166638082789320723332758640579263295963816031020514898377825218232122955293417662898160331050700472267322912491061095795479995800465503470132471115489426838052785927079693604016525737837864647001808330514500902364222354404906141402696829089897918778772045007010507867106602900405434652102674297965014676553981216013070335197020969964007111595369406510417984341944629610015223009856517829868915186369460065387777740159397499970646399804661704693866267436473590746546931044930051603859863786259644663202980306280752528882523883986439474916916763541593122852683522282233309887549892530683677342701175858836409131858556376430647885090149577668882650875760650894891547017377031081694637091942070096103388609135862222403166128890598817521501035830501478999788143505460208659433169970719601644754623450658626212686911550974431951245376451668128663600619502212931682683675193082418338036260093687860410280622652452591628055349006593823894423334371228827242618839658130478215132127599113956581793703352188411470013269599529405729954874093814353174287778149225345248473662207762498069342186417456462287390570228726168930107332540559665491490923968953461722441209673194305378480023440879163199212973565383701106804938745631108072882759414069806738637996831479865177043929401852413760665492006784737846134328899095867504704215387079281450113000005926411593261378711677674110624904390382329446987666182567368617253817367775847626748378733697348353634221885282126131448539701309169510282890694847938118223972579396245119852195564409413208160562978018479821157575968488503188260291301214458625478852081712738008215465659130428565833863167320715306671231391612752581453434166136206238588116468819175223317191917696614731662106520092979975948406281640199357187111513284403184064810919827250949213017844785638746549577891378679204864711987985978273801309035002721797901553538230549860811569219470333762182297764861895153675910909088837185337762463053214089606462053867792559210132071545203285648205008340579950783243350390380206415263131590826195934244709162633265177675849932549367794981164787765650216458044786199840601544542680235188225588767587883845905098720014989994435169496928449354668872631757959894257518352988163438159307989143021406438708807955759284642231810473687776698130972585260756962536109861043959664152237308452415120013584299721666493341210972002070315208711383999769063061707177541217420139347768344654413389843906057916462237285791334657589741327180376764367194984428079984040148067373742509413386075588380959600529116180293829007291180946256197025768235486494849844821108314938347929714126944827012885708508833477801067691046110445458599903281220682668042463658188653136588569021902361799407912433511616373439094153296619035663917286516923902394406610289722002026055068981111843517238616069995560706802075966799463650042618789482098690183510083314866088358274607427219537806669132966992681635040356452879474599030918494407293878704090455183414572453589489111381810553696925700889194132584323716807022300392908593725764257437827043835049056307469383426157500368568238670651149472088394393149372669802574992861991357980284335755923961877359334926447944077750232360344489153026692981244813008228025693323154553118736669725217142262018796417496906500119326206765692531229211526804804652630397253716401838244775573966329548016652695465733153224500334139189906357262214303135008035164113948778701430750986988181612131529315415707945304769310541503830729185154243837102727589726289857362729964468045270715820373713831219328554627912796430288156460300430375081588003468148648841976435390603219562455322113581312990119316081680120289587165790194882807766771041588807375387616876407603580805174522215886050094395060887151844397129365449153288089602926462073310448848452786309513319560156108891096755615873581329258950029699099605908220890153575050987898921414602209555150665692868482637254279826433164033682978157668141165381942897479254185966434821866987699428958619483022283997061052707250771134904483539973784314987033417080609004236294443332642367333535561884713360925623471900916144708226607548988387839677193989472627645270843190558190705213525908350610720895298584228245705721889316880230007378680230010769215419737375601050450526181806663929426746133187514542620129144369788685614685656342293904495360980989794037923083242882297641191785043605951797561778752505438044317502400132931597487504505422001848450213661444288356760485823403666456549344843228346363781925528563134668389040639395233017954495934624713622053705956580373541306597399516896360915600267190387848388979217556074538769607759550482352035416133879888804202904014055987659518659079987171477128592455691633825929095136934341956135318590218638240987160166793561801241460496371437284574063164248370083128631516045777676373065393373991705276847096309105590441835656556308612164769303291205043073429641175001218460564711948227774829142189374380903665013033097651945056023284810788745416843814747393605262164345686526128729702469136829032880900145779302826045843079133189219432820664205672631724559606891735572738509440036793889169456228018290750707421829690146164257871965826037382423929631901476726940329509304351818454393835509675467453489523663541607808096013924592682674405326255522470023865361916132727232381012041375929719429457587583835377596958458030844516197478167110504599586211205271353937645899143259302483281593128389264453676410202284752375848485921006012730007848207103719120047647386543023003892232550131835580798053043556898233867887565559186437013490217105867949983216495738727923130961979950531850738259436002899657168023932114952883135526712984021023252559394846243804190565191808077809309851312684585071544879849639194337454355826213807682692096979505901908978185429649413823623025848892884280058034932377441407395532610585536168712292515706720663013429711457846342104623975979653952391071285940250945230824535842403886399015843775575313332829097494679940299951202584622391700960504562008983343967237981520416910672673851129345515524909038171316315138181663586921987738999388602050776887440641876657149184452468273018438492269945837323262912445727806074998891013012676518775781935953888823871160478597762916027167914554629750736807327828719873896710636236898899549662212413277906904070640616216599102648595723004507428834173256131868291772150308258225362320909078975336685514359965182159787916408122720970875855331259755761278834366157465367750407970918785767917798789557728240181148449256688892948343532234608484551408568363434750588322654935127282017619507628088619222923022507797991009390775606655053535325770098199175049003504723453835454350777244033134731558536270210429973888501494484406556232959991259034495434610270861615787555540737960848777052801463632561104493123402139677606105232896830626676751812880651241065929847435797147384205809427821970264664238318967021885070022572464993010877226476976896438810024485234810486305491805533267964475309085788126678419019697828692253352380068147069383798092147146862618207400928668859535371385047670436443148450641756227517251932467734439279800228081620274618222940923208232423458576390729110265693766989634240380760403486643651094218424807142095598509109297743041453736336879255829873040902548943535738693478389276640843316322362409267845454546193521300088457214362152687439755951103337667615362049505232329836246535660206005706475664924836263161632916202692160508439397632761176200016378009099162172412173787697336840026574561761293146129254312077562777618534375006417975628628342841113923619182849001875532250624944133256709469513246584180087701347260895966030411878876226937968370590632028202416068363082054135484778844124247348289494791342687102736673885346801936265962358627491028806412446827691412996643661818318684198147858518458313225793289907712886287951196021809959222646325280726742402295597484744215266873051964592864521340104749350407950676419582147445937754505554260372437543727357019832599853988898274508724853485299249655663356879511021339353186918984784034617199422800837659208906141260445718581059535062107441231037814244502777315558208595282688525290013897621021197307352360807604373989212958833906781627146175958326485847184855010390225649654061316201916820019365156087474906853858871195353946231451701437801115973046894147199161533034916206935987000764971347235853399506404027885123023158593954225563364910203608824354602303896268191962682447672532426964519810594682037577167276839636175305585945945445707259035055820977399091445820771223228079634963840104538080880441588760019784812074018785909910596749229122518839100751929025949847524492708059475574835598426430724480861887012044187967169935273904512471401219255588139168381653581943597610228050252991319501766814267392775711471000685120636163936102684643873664750857357574106526463658177574062755334150485117978341643060075573697135789152844388114543377263347278805865306465589646747388599481854529504729306129337536248437858421581612475660752214634806310276305239630067697731265728135447227652956433579260382314299956107028476304060827786605712288718001466532439222677984109120567376630734841183225358887245369950422776905327839307156826122917726393607567728191515262203149736855228118384885163928849367518504773861499615063300683113059711406773681865547802180059871960573180680498192389570761582807755458660469511600074920164263252000068356935812484044718592632423476597709958213532576389559234508985420381593010784176281070309161256115543647561473980185312375324632812151510411551019460932922383833742365482802678100222011092245964953740644374895030480167674968065084163696366864417780040831200940522020776459453934463401472879742565852795480205382197190944263263682632013484843344948006007225944955031707625380801552591772234924139667505472968309820701526900054760944007915692820456700223001730982540043697379341302119716867478825348527408062707793036258763638405104469859235046133789344753446083294806658293408668767042107652182141812272930367390551223185069992264484358299133142326695017000916344670864276301000685985158569530875295395842581950291641343316011029024529730664739203840212265394264781584843096943123632643115212755338920856318743685824958875557899656226897043554249587693424075004965972225322412860941758930274558028193821292380992140210065470469708867384265525797747372858411762760440920758159754446678776024641945614043812301061697855568272848204936004400943028968092862612880401785604882253289561213772658087663065956766135881272533099756515999379034691208762256793274506597062312607663152340962357726671105463033698797686606378723101776126602370345487270341816000881107905638425189997456150530543435874818477697479880321510221710941123010461171245241144919045270433491114727711874219695682353232739420031220515070069784317844191307149896689733697398677202190382219522368306498689782113897038435049413059236244705038201006721478448310826014548243427517163946990000407717949103918271921108427766886104684155809896103642390603730889592608265728632418269681704676769953026501414869641025532473224900096127305496699351266431687121202912029451346953136636565575158164164366305231300331177932877524270178481923450319568706828222638392718519621794455913182509194923611027599268170458475143390807452745631357738358849980122751259640751587687099193445293255988256207907117031894865619653470371690164742748119463441284934266517297404564549701169104217338661820641762022837415663056470374656269684985106301744626409653536794632460761619363748470561603560319736052826324111865716348838955485181863684484189343168996333731513371119231082837847102743963725688618723903974624369004700558462585282317921042282119867771600413206726134344224211965974050730090477648596394920454912283541908625660931256398658058987301269860582712468361236695508402886075210596058241534120302388090026435550804044704206543662207667007747577454561087552508534752498172391083265221050274853591749713864776714812503120637859065130629192034660111165592590302148194567013733128481545086362746206761157325948701345896103140713211578730487286093560400412452718831402009566253123780160017932974367799319679667345932646887331357673757297422001945081515856333532876334545086491764191135338625185038481294310867249108026279952122478902584422570713481307604421929374781920835797711016471560598696928031855754680238178744068693139626853301111654791890120080516436783885782652131920057117679852291051380525975033997148750605493487721968261394946558103120982904596161759060188705337068913375461316439132976712972616673815322667166131652143832024377253042830495413342639904087667010012038509603214217465883727150709052761090190929703391406352217987261087077718066040409532455339366223750798494329512775845804945908700656090387765270445590748762845153638123449127778667573479618770632671740913272091467564533756027771637448690327621563326364087585459442794223555282854596705243084882346619071516179105040161619858919495372871830430955763954282747705560567906046563516117858205758346927674089157658873445193015732011832407932862035226272613112204405688434221209514767943381519188688018513713649597405360097250748974159617176982844422349580229817185197727825839222110138417828047612891042068606772281132885021557583615642169861320482796892831323425517662922180266595447451671552325149102266236518069106297441937387670860983716906561569530844786727939602758002616481113711173586838453274745370878962589511681234834734018524515644887257369247614978622559631859678274290039851610560906332581691258864921089934188909469289780201711694644900020588006140661080002071666413892892955578979903113710061893214825103810934373417614564624469732967311705911010229444656045058203113423050443951179678640186762577290958251875751110743386164528900589113964428307783137868408868076729173136867950188854838402364356765405896421477081160252922622558919919430018254725373244256431221019249988430685766806930381647067551860162775128081346242679905098480535340674782985026109015901518029703947286714722658787382905666663132143569391167593672467703813893698844942578355955890044947854039819381093918311390358656558452854134819385857445128472736127969591144634114440462254655342111846304786302860599129983229502881444359355303216369150014297315404626613223340481029846418951095096196365495581766967970542094335509315938609835914078471863507927051229933842098273869004994611151000546424895645594808028833184110251945951732976833720199338911368337642734184334597533797444135562793520270062954259437721467779375907576046530599124493488087124904886844899872825693931059647397986563718192721568278273600726019074894834201374620000524295747115043241725657685316725869628472079378698869041621158504887703565036525598017966607702787886411586509498184649784685050744152526504185389749419939770272846721289605064621760174331827547699933052577748062123909364156331762811830134679340743601372978524487962658354633179498219708551725664158011070108896888911125714380423210880827250829809123933387590949626185879624471848889003402554802221540546095044847780267672700739274112975945848504341010176525822827654496529348107969158406297259402862994078631842938555553290283954247916472558917786433620223978281035257557466508219716665374572909300860319359219851666910192124411516140473266485530696294780425864404386351536535644240374639024164850005462093977393600082637166836342493823865543801789677316914269056673780949606919884595448925387461352955820953840684803279772014974426865862757352778596581991842190970595897903615577854543410499605121806814860919184330007904781625754191482694042600347901143713301794669603564044598151649669557756862389983124705430291776704309131573303984812807200823300550243091960247809155878107589976151157394242089159734563397324245744956341259018454166607571774560200654777112308542388894485365828898268014659613709288161280008455240667554612119067350216319241488468013514371909589507986985183777795171300077231657784378941370678053268938791600809803040414746035675081608107269746687393212506760420727923174392046615671562324074564993306425881462613938041554887151177088206655161279096682664509718589480817005853026703769612212464709931737231682219089818800912751943098297166418120518888622117666702839727852678665220239094042838867133920262447013262688456747051639554413915281091351072033902912224203799102581602162832134014637433383569270034126249272281057249262778231037358057118924705679525283827072492154330310079958257648545878758567127326272655543116105299574271723796101078897427639263673399932961682916803834924320389755758931982667282521498513821077878809280054644421433821126172122352072377788222003883820995997090077463916642736221055454332471390946097643695083379925329842714479438246073398307450850229699423528055293275055790550560666615282210354940270451233274372769383389238779398154803845007579234028910529384846826783995746469440609707567300105349909948151480334421621028989364160358420746183250868730626569673516128694848246525122608223865462099531156943779729174532855502505046281124737456108714712624547475948557192865003738753997445112710040228196699825654503815296709083592429860307469056712203882414956378846386482815405957271365005501277839802349523802900382772678388840492527800822847494543655181901664320872657723334976646087636639841174733978318050477673779700899576359665928940012948259825831703661096406842273196767514495320035948491283748719477288748128317347462320022556429370355497530539214570915353190802268279196502784554502776408924382361222535535466575063526192634097554021252637906994498018409576507524089668879396344460053026056836800589462003356599362539310433236351579638166706224764150035777302686742346086912455022779036958780415779980619164500776254876804228460988663779304993787355050143407036326682452391356338825293777503370033119785281043684930179217047013180814931674952044746884993864850735757198061228791757881662180168027537778568491557959349126811399180567821746644160062978816320668973274945450681260951140511507810677228171970412661258023352899930671988659023887947674176645619768987561180177291160726218026807676222036121396881865167181028279200816271790449412113467007942392437423082039700601449002227948442201510612403167829445265318938514133705891842647273812740661401869582281017794446757912320793168096985071158907095342693115801571791499437449358297275450455065727365873164249290525706885444235879174304535023417133104177944888800823076517571001361561692771978129988668048853599046771701729362768299828057803919565884926181589564232880104320236670854914720303165952641731457019728458340041259900428380968076590840746934799077651990375840091147369098969670466382761759482519096216852182936549696133088247537878694224969248228000394891472264805554698128507592848891930225534737240098651415346424601913380274674863079338778113430373182690205009373018373230158685939622640245338184851497188210798318137648646218299447395080320569697934256042983263755066545297089889529413182673934836469582880350158440904719440282043597010626937150570899371379281348262306618388376504677856947420565218468699257282846441380878282462098726904396516207805394690587034149370414701910159917510041640876907822218622214022634625297571942951697748845319934364377258427357919270434461640677499989722480948449106807591691730910912096967972489725771125542484692226900194303439806119019947494742126161933990149790744628911593575950246278113430705903921875699027002762457301856030001828985543809567081892429374542095695902481939254067628847496191797289343548963190292915956422440240736551386812608148656469372681899415724481402833488708716517636841287621828800602215212811325151352813460216685702695342089130713737547158692481640860023760644896074614251489938760366081831071789327439729628015961133898613862778964154007096852851288229411549018418215937496378397610355003002068256368757462996438969805952088925423320247887232676633963905200628841147287764071562871948256711672659570352618904057370009821242165002430330363326667062793343050294013266637801556903260734422657673429637582019106860667058354110894675223478837265321337504439168801165597577796740823424750110534104814661899878649777054820472707128866117140740742294274072727218082363023305601788311570608251675333950991022545699082974470105321946475585500811434872970147098476134328516863332010223202166021043779416471332046606853290111717173686362205548490375723805594973667484615021586282399141613046849966385528517522605575522494494810181795659296712573730711238882105832581993421286661821482410484558894384403242540529562068589912717465798920416448240633045195212094221259395567466785112528631237542507362815200959309770977053335308302121185436655323767107052213447815753252074428225404636078696056617613348407253229372263773261653016048710193494501108136687978221320114795872531734797153329787388156690852797184162470992852522148977754427166611860486637969658052060351006372302999751673324737228068945895594915025229562477928556319364382119700225366597815513175298916255496926375179026033281644165649793916079924315523701381244037068860985483166175447650678776539491945768834716526467035553922140811659962018624155000767005119561482278596741013246809899612985319131369300081848733437563311814290516095781117968682428952240531891141242449819654625173404149827781174172766667663264749568208469480772991871617381044390332363964483455133169259379989263422658361838993414809244697517158640566013857380451419179518964697513636584331193233808613620953540238577309494335799382264997190063798245397912055013247907069282681531739498029715656529123239390580527454151104059868887384664384007390896000984569148682443795102800583048720094801474628996205649664549997798439268774940226381879525581320543402217154487680938268496594583200380638757694487704990208876802019880687134104298006373800980089342012105640475391609008542382638794481121727793287854453110937674310700306440545683924605419607813972185577317857606191958107922576293037446190070947353597848495630484029804764147527941073525739982620706887235166089911503104087189996246319597852571759407364794644165067865733947827990300314084916759972493935386000716123108827854633113406592414728445350834996321284349952752704539056832082543000099496778037126940791770218220043882095614336315645635964112757984737159633534641472498857005567446825790006800263204329370650812012130859058705314558841306153626870017299985189290264516190736792013102784795381844614164200381459641825556468369523836443252899788405206455092932246362873671550921206041309005104056310387032529821227979590053770751489058206747565050294441921469460556713340153918461345832314669936369057903138783692145558716740877044410075739309708034585176931667586960356478753958458981913365182385916049169807251139247980239283519490208263221942027292080848752410602480263021410924354681070885405419041472019436253113124511288258308774795110729426391483713344865333633056280919094597806988076566036818771094274018562063290362370853188495843914869690147603665020899257427898063898625067150247277738439337396009469751291817219362891913492542738288373240133134216724376279972633334928455751416970442932659074078955468164961950233152700442481938835145301431882210218542760051349706867623079438233031533513460725951317137601746569867231475915435544527130328689725801959064290590750469352585468410929558079106315352944642115443956040553441464875700689594585314885094811931634042219286624093467391876245734057695392968153238361502561380045665146821351133734402093504488258193216913194346397605849095814471900745359385701790951037090922372091873560558653506089105836733809418939893877943498157064015601325923123395519305281232711983814431665598581468896406961377106708721077290304204961779482326433642946144510612904929666201054573703654658506945960326517274067258496100295811285818241044493016417501258719691720028129751783462309646746328769818480167623493251174886213354422786885062269954604246645852911130820541508144245851479076095938769513518082012856215412379245369387340639428782744708627861438734660106064681564878489936775486088152305829644351774433283236747644478499657547630194308325023993275588264547004849352075517420567989301706185460556446337481034819380990277132801013394383868942233970407439079313188300074605597783861164977204384655140432296885927008620188513869796891778883002126347755568501151713464364371769179976103410552199032163906861198033771350176426515681267001890579565930816825545648985186244262341125187024452976720001750744596413203477192074014619916060370690508943780659371138318403339763685686363710454728934489353979925583151731646143809476052389682317660173108607991093607367434627432023311260317913260862479576940298081428464636988829762319038036058708581445868340156075202302166580214978653109208563003445639448900069420312932386108889876618611683509944855043231908890486475205685402430599658030427447058961850156259624131614490308319620369082367927945594152578236602498716523047583784064065178024342942651288263820063358953130451345481068283545705423520582746780173798880042841080064629852508137703727701489816856006116207411529950287187578900907525139041239588724649690715274773172244718068936348091582720807034792569081731721257239530369576179475937225136955000308033706624333321802264578543767559212023930773589199446924596239606907118751023426616479592555798845135298004803143734449848777505401441746931808297338657946112198930264816782109735485091854972972407177682683881322801113416380173807736803045421114396937029756410491884593878802169775635396799756658002798340084370278414288102407275076094551899477913050618385497411329998063126176436820663084933220016813400671333902639872357941851054348052126348372176101971511829365701477696544371077383135034334089080118788480363333630422735233731250894766003561313879727893874098657464061909156728549795329143713718695466099270632464132874904400139025885517053990096327636457621073379918645191968234363534126980638619326211775007378953556281502535975586704617611843119537143504248957641414443176864771422809676769928314773320531820072569653623238339204744005867677710265034829336128447540300077472671309672812350025206489951303997285800248570395721577242998672687770654417437783761432775338179441002678825547079613823844685479747277604603604889534207673314376801142728755880404851481754954282442786617779374390205690477025769355856324105699935764360832994352246553489220393485079938477845678225684206943399991969011720778584631342476999915336985429310345592360234496737667495513740787748504436737266350798274657783896041452235856850809135709691367832257261370262477642241636966743812597921149381041688433686282892500566905921779804194957909568623422680453761194742121946430937114149809498798228594831829103373507233619514253300531757414955367529932996101630195327442362633938774095757772652710865759720598269417481708133133866159537361757372212582546534946385634619052461397179344888312451930498416595210446759090722500200594571989798234014455395789516718565093835527812383448901224548175960799729128198729187300618223014050033544473410238285705883010802269493948867854892596985587711764443438025524723909369746152698349915597443945285326553695858628155350518459684019305249683454574346613817716326361484625489083014852153668351415691875959646216184757133857192937430164162341635955182352192047099525645302685580975498366669779295351771773386202782616155266617936995009508446147054966370961769093636463709181021884002932963446579706641414035546594474506109452176656434258018854304430166909816115967909326166626204306540871173197209473652565005503037945519409386395026961750498950203576971147566795475950987999447320737374198937288992092403001289152433145252176233663033892090354545585801474662105563357819838887450784943258078357906915085352110224674808848577136986181874783101694129041589097564258300108887297195653781759796650634450644308934439831435051306240995252432053510577919293343190360759082039992407753603877767167098194113937220841165300927498217473547641167368462762130588929935793171328333963837933063756091877575812373395410180412706891071845814587266158828602605680993247027894145156712023142839712453731369563933387306716006199243293567985205142510918015726371219002727134962041495213447095040538494319216353863507137718223034664809103266262974824327866796320090290492228325938234062010464804361046691530222631323336159185420394420866602888381068124832696802292371068257302442658617590704099308777106092799786983641878980663383281427762208581454364155624894965534002537299536132743169825815955849402986287413905203877349132840982289636051140360099480182324058532538893201521234047190916203302185015623560145203941870728111772320663105386612283742733620528293233139606905787848630757657600432641920105074729673488814412783400327682561768152920260024658564213729989924993780781994026551052863544819834443989645527541031546017391118859817669328909068141570401407742093447244807134970721328061201402475066585816851170685796311047657741125785060693573316959685243930052386508867946499942150511112827668440946546988395306454478618232187384912332223420694950427119478512867152772062972538414614254609504980325908551197397991393504735908668842235190721031686978734770354495287340976413610550520456781597288780854659773349690144477597234343301858868715325328344921869099605905538645161368397317859418694405162567815695799661367596029382669727115578919034486470656358097112637924467511142882485466094838034172811056872528446253823834580996004711768026250168656425322419319979108676745716757960012420909261001173438561739414990903446177801328361572655421869347476489904996187819745366812250788984530023096888656878489579865772696450569137389190750312405367413004756151081245799146219278662817756440022969794654113660327831545452923877029476606538056709691560431326383021581677859143039300332356631380615518227120761370444564773829352742303116225982918834086429751080564538255993012234929561899256045238549912787382105466563292472110678329551836931277369147260044608321283852259222960711690362521226198389142443965964003863992174843977436576367725894091799579914361928641659158540404487949500048407013484310019530758732109817565742652751945542422330165008900537896882022164910958321457026814998313930511295773412084940465636435814459236944379098595105759221966473978785986457831541714958019232434356774771035364322794752430684491147658087596995615886572828542254056988815145336622703839420980899870899868685161847105207239219669322562255210108318990174739633945536377324601752754214080421116168246827204731487013444417964989069825395110027578302966171127345960535734990309514301848989847857647272922053463191466111392631031345294179686740240588426687864580796038261194884928807116777465391860557103571020261029074459902043424441243481703246204731965839140271475045824248052381874030067071635186118470794707305389079120520195926600085268626872587176876418240394987882269904861629147176098836254471943370227825407220702078047101851753296644125979211417340315731926387169796568291948332521676453495458449109266049544638747828760637734332203749562646477696343513952186774398637745986773789898510292453002132591333844461046593346777777145448557870737841755892056050840836790554615538896815127970525562700909888557295039577576941269741784582167408276974594792355526595615525461374184897900238757915248648141182251304354493761386609294921949960147730588580045583187552374931815473969525379032194134419821513093410891429943773622736801578053522138924328670231629200721455110518591822923411695117499005111795936255223510111200252623887877044618312150890603484601162200472386597328412651582920433474745153916550971242085905510941130242418738772466112996858245571653538913801451498983986844994387249351930942193532882900926817738322990422776122196795605478255533759175900784488291318589532674965433637478558067809250598124592878053660773148608999668193234097265592098390441619310871533198827799758852909543907777433313856354320684567101040902937533202767495640388322189188526202042357898204297415951150657155505253838438700393277464053427586209437362209245264124049657362503069850275330044121498242314151123403308634912738731251895780207105601286617841443811051040215124399184276872455067530235676072364048128865742715860915574497792926371349591796755555630484692585587941760028746087624832803351342855422634952561147328421303668396548374759544226945906746580872219844466878124750826888373257715683376445014987148530042229890517260640258721551293456034431127603813708042177822542588523970754648949320418584411717706141273263729625079562603998210874396447929470027016464742112050013978544497938581789387140923810721573998607510993956238246071595175209594382250611036098977566401464073236248011061153884784240034936300204558770127899748620444509901333905068903341918616465658152504474669842902497454984470042407879270646466491402894113624568218017572800650366298455081983477846647331411059273881581401005558715002296495197722056474888554662760227101923598361369202595808870862844731848936687101740704274836002635185159808390685532138760657573390190448922459916150295749687003859900027426406037277666855941722093416636790865098558636706733029220784377340888854362197712434545373026609536366446007879505775607256235676131158120183624710524476860229019235503499725902648505923850694541829309918461561530263026873025624362700455797606715239350088807726448908661543951797750447940342003305593321386615673449575539571115921095578978471078722041469550413994286090464634899793840249847371232839161364309321917724866300267674479311839162485012399287553198762909137637452782208619621737467940914261798501167779413668417108508262846700569010271342077847728804708230191396056415801765373427789568571695785831229782104117252362926529038375105515288074688095258607773015418205321233972968987330417518489122749004946140619039740267473164136163383416129010102871019222026522331326734901198815367000624416423666888018489472505393699677617526107562013693630070354441802813633625082921924179972817105077431292588737096546605278861848029852011475493704968899282008443769071658961604829438238755291587592455417190836179130902214848565715552992409211800375317068942512855077798562174294729973836336409559125029096241740496993079096133945258771484069309883940645118940203392052994500636834760809733046717162636870277791063420421250507387107677308305941818794472980928864851880414397206952754870323698550270585925265414050769497615484369078206686941869957380410422240667582730452939215799820377835491504613365800074604291078558402306841454340723660811407287825066343684065138732887133829413626983082364052343788753609454029034862078590381645773273067945005367819060279644663861716543565715890928638452131936915307295898947009139668539199743191776167286750457276734210898714444606602366656768420172295158822772614867717061495824630430784074268955207099040812894406732689478957983937627754496370989180637717793620748837065553003616882757740961291578223178994148682223366753265825351387162254633612321089538464748265631734172191721584400460672222323798967038452992308512738198786347158055835188619960396627089128645564935830598931054565706059905415271471148544343353821631970480909851336698007077821771539137956877291479207143088818507196569389160504766108076391963643074985572307444783538663520696221321774497104283127304812000976782567175963936301383302776851534468969065185474447923295542516396337585826629356508096046049758469081466804528350852098818167882766461037792113928950322198246095940307888904752260450257934617038927094591660799737653373781564805276858117477786054116118508143317737470005606767182251796345166951631739375390180454958364859257130263241787367953549873808501139937844069429137255951394385100706165415358176134398101436648468624842233806312735431981224768883944499074012917287650944339072316776357069087881444991714155397474248713037448275923207305488550132472129588044903862997594204895319473244093422791135391466613831520569864903832267309456066762403195302046241692888922043937273494156270170020747426820755476175672875018795801446596519995658447941598408309235476682233192403066226214862160794913993938237603867398557454457928953256501098466131503515893822905474771579084008463387825122846624297333497018783341696944455379658007502615437318219178282297131525020528976585182948972737013714063396828768879015295989504242486026461059388280017374728782654772860145514356914865538821904687936240043940741295016267045973375575418288198716831399523144624157440399808449486545524671298011621953163364514195170616653246702600065239201947024173277987661795493394221317707843381622473282585015724717045776720248588266404874722687284609684760052644331208231906293754825470114611379469557275575239957593340597453382954745050225547121395893696819758277125587242264668052233917611166024748936124020756601929916983254695797863849462329686714474602593430500671162110300793649765790476412815149209012175449460449859107827659682604965766513567955769641671260968429091864580062422007913837132127241305573801498818604399233638703010776779578601183186446849478677998065040507688928414231928615583655161547700633777026559508035331294457542311078731979484326615048136266854566022764760190926231024678298250464190196811913939982092808514881487751423207066721258437688945046327024039056079365520319687388141275312599214224935612659846256031267435653374091444214293155439571219992983287559786070228185048545164809848142322248914264499456816842911590604554852258057347663096145857103825512517361909425367055260594926496972897615987341764977011134531928919719154867357493357176919159900176311066581267340953465213826769252862382453585814912501262310306513577579756623236312724344945008174469558012823859197348478960892738052951153319662077574496624234122626937789422220931803577175413127796784321677090093613446783734879916865069570271562455361775374133807179204535410927419928772551760839990115339103508933075662847513468754859010830763080913217450549419473280979045249255742797124440730500614147134403977811734072212848978784476777507594480512535612465786263983993537228189349250792747721239884181012550141305121265184439760144066539781852328238457731941968362279129194559138510396722628080599170965259712115156162544705047503637138081121325888316536731544502808539120063910863928260766578833007348944720296407098857733545983897904994359303226865327626962694838319108802689733868238614388513460184956739447318822209032309599739261320874822616139378186167517666874857775322488529245860324216037596101617573457995303578849211149342990288849492449209841369426000325985707837287223069613551644504286439351173103699869502849208656445191101496871591989608894059593376788406714380033188498570021744741098421667271906282229354051768270916480308763680731924378204876874654957196450640673723826571584845693795252110761932500348833481843656747905387642598835225796310754350044800834836280645903879922489173813843537117919073399288778951820116368376404895119871306229030843345967592871656320067401796135616875884909933593811359130221258529680408582619294824667255782861486473804740412370331641191408661935406080615716849196906339371964054107218841438881674284408208366035799586888040967190316841311219638049474185072928232751785839148640579125848723476360758701561180540184234302388077239321845952931127284190329725573823342136405382325206288669350720130130279406330514992849625133421805582188905089160991666131411568320539428046614130769552930128784818292420308641685730911041639715366108764136647978936884472478002954479933060591543618183192507921453474368921734155925605543711517639280951379678329891202068111185989188666845137030713357770230219204666533790295183310611604952829899732255192690137978152995077747410463483684033976923893465592038698976599095872395871880449553801459678458669417625607749518253085882636853969283573340061739134764797144317033480633559610336845430157358289664665304400819654277006458939500966830517186288621986246999416429320781832964809299191940998226943388408766537025272260822190614666191512678158894459126706715945362682480987776615789983705335469906515008551586848894645100485598899690109936184527996396091491099869683896787297118200696061073941623192480425428176223385778996423892333281073225142138684374086623614940471263778993306662207392881813430367703272674902917766093606950491749611920270160822531143430057662296780946016642379837178770378089716766090464103792952333733366662930684801647702978529003453861898187653902821701853450303224002720668945979159520196106981469239598186972586416110442374135688238417878049439171866903980927311124837363980327921637851392632563087917713411276878257506729251890255830740484313475905831760889616458691474664784072167315038516885672980804551573885930887614781857640085305360768260748636093130478373159181910257972398022283208037225974565628270356826562710494448776620774086879384410825992424889898034323693646158261844490099236360002126289635555216873396563898672633056836812621182217994108433236985753112911896525564052968629046368873983840558252306695151467183443042427031590869629252528641248458838566943097070831265818512112940568956563592175720504527293836585449442675657221300370135220222176203871825855649472275271829527996695466757612669027332373237666485552875649189067892634915697265498577530554768143344251595075894164713516084808949482427722618117118328634715850965339529294523840707019820680466316895168356812969328455729810125913637022890345879420607192032345163544678235773608053390791458490310753907065031062789740676671890173732907261729688325562041485218914290866490931862527710371893388048004456460344994565738776798271550002360359600718731032369339651604627622068721548152337613066584043340650829762144950448865106360794398223192587557213155015768197080986833270088435469905912355203799752873014172590195318161895865414794656051991198165067408470427042358753465635142372902664582583175733967510409176249133883451413819045579159146298397491729820360345421317036496177701847863242665529513819260105894502931172062974269279820325038152714795813047509662412169222368071062011285855335098201171430342632096200152986627255547401340348603417844242428890572031068875480372491138418989205954833425042201745170898879584315737933682029019946095111715109553224077797135465635870262453596007115271557717111628227116242304933565530796276512400989316287418341984964829828985574390732564016375305300387627769981498921844740776197120248960157839540125904440669102606897794860862409131458163159572297459245171535527973471969190475317672889825423977949435609135947984216054011100446186212125518244610777040377255035378065469673162687802130488831744228152364590390226337212215961569139494939180145093970570197208069777377521531494450418982249892680951876049957953803983053154292809367944384130641004176876655541828619114734684258092201083294205951104754764971374483667143665063260615216813505347361709588467246230784631518278311603983948157300203451756147429962780517115905098489793360015816091047903208212564847952772709037460066035986805386905272724092358764507311675602168508793375718071981526657266241000562651719415904662678993360811044248947453945626816587525598911836108945791944851288443928002034483278550709425201122321859041510295143136943628852808796239883604550846765842946015647465075130975841999588732592386842687453493030174875534411050931215286782837316118513583973340021656880396377329176438463162409299576906393853497319077447349640330015938842356412477227720837945821093797164030764549981920105094770536986177612923992971475007760947777371546507226141738543732018144426611877332618699563568847888787823171496648129080488041403325735029414430239958197387826704823782768058074464049579941428475550698985626458784777923862557480399516042579783443744862157718036841983216209205960862931020795410547930578414416705400830420573248636175908046353762198403973032654721156339466478979064871315153026652487639552375304443321490183009172575908649535017487382148695250539088541945362961746132904563128484952861489007759234259926703731536996041215719954563798191305815746180698616187239020605319876985610637962638179398973022317563037942264266556720428523281265053954576886126162554913379465715122417526032275257176582570276781991746184996866812467949773055458421648115055928205371113084401184594828174339821307578937855074301246051913683877215731191513390671533688905179329641002603444856715235572356413517511551640503662690685368154566275401537875139700489843593801502518246040983206200870065692194370618832795290007102089928714686425380998195429640533791132071338476997827611209072449444735094832052606747474836922343422597228891573306593514574421904948785050751566494791586426511655780724837776806398537907477124572739510703768774797242569093319770903106585759354653533535893279884297312381895850064273130441737514366100800741518052665093852477339639525639766497741764438138359802381479846826434353911782611236018356066537768052338954320595428340464412752620984103492698243167535472019425931811090755092728725324879519398436513808142143337665710161909857389594915472303908701974816660249052429756301606612785027843788852826774244259892246675687007149027989020296275676794260032445189313477965636136793402509275967444045638330549757352375664588462264123055907435604654098468612804360714565956828008639022705182131605433313552134375938632801580591503121583885989229805107358837933315867523298579979820665269403929374288966196728716895775764010842650283325887554146769651405759880818364996374284877889954387598589891239818084865503929236526072744492412966031628314327939026119387898318394137351736187753818628491500697636308115935670674129268562002348879361346840201153696045345775051683145904091448152379795101292994541942559362592333195634854631688216567051026489301944893450231494532704640327309710786009284219021780496979780367267581410952654460870413957939050797770560808771562144305285628034218219435747633638268844330805355308147398996301327120347583908293489394145152046275817358573003967658825302390749864856904439051415903927178442638438567266201616704789841826911072387998859330918806130159243166459849549276440064068065319788383203647112934834359049647659956055152148096590502127275505972675323305128585171047201788929507377408249199029601833464573535205402033817444632264859266870989782728660315452337229357556704076983937552269593355275966259608951506638803790895613432584406905988916566780222306955498763861316599530985009046639943047531612854898483485630224754848411677347941677604400100070927881526237276382370358031078335058168365613960209420158885153750347202465020372226069895007765518825289271535930880988381051266134396900049351936351579803260738379771054211546259671757032369223082915767088289802474001891954145806358549832098202064728876436023004869026841282461631372677326640141013365730563472595731876981002289798829402382096486346514626613254878584680605649264091092867657763320027564888083533670463683402827277511669346214207429109924984962920634187057090012333608321093733500357080265488955544250595688804429926573708884857134981527062138857233469124802363253447130044880248013244910727781163943911235754378553429513470988596198802998463477289242265486696626454232968406594631725518245641901526828974025727059036452888943128853748133855095215383416627739732860004988815153972841906273425912383657873992176900600972286751820285763805893196973538834131885271459641850756780334955152702081552653313659693658427280117762768959015831424809249460488278465065426053744465496748271550791168437924286236998673680246497902572610619538183173827586150980084936656492517073717807273848903649865264158243971230503631079921188836457612292757586996974313069077814636116450549727282488121894053882863938064894526871564476228846912297053744715829221224450521815284922179014482457187257649804103989228705144369440363072284501202740622890694373592702570559615150371138880409413242458990061097680968455909162466482625923237499052375699104550035222079271597459358614522019950650862562165735042282269934797853446479268860021286024348299062765661295886327614197186103024137288790012714205635771605184181589183779654008847257402844788551287938561796785649548941205517731588771732158446453904098346841912116061272214699498076001326465831891982017367466522783382198062679160255395305111191819272031829661786945982831257479072230416089759817057372932406404150829707222569644524914772144163637961143535961822729966515926072092844023316086267903511448765606548709634030578164656248884116508507255791216802032391404859722794702419386654731020178593775936933486268808956473814063346092349151915748016691083573453149056636538794480017638084749149747960436039031934390450008099961176560358235404753264970845785690819659686531744688074234734307328055046732086804943830739616507160334489087147853447158674596872850343256325423519451091881914313319730638383074538949001152895816230348852543780135592137984600347720727270599147292445110232124693876162039571074601282636840531267110455166727142841099666719924642898991913136393026871017481377624100570048002696620161562420235620533278245945797153242355228383639327487256541871634380649713357135098600990193616909742289176257457024644380755562319238538800906136398030773116507634907688283335478281900210196504007800794851471655190762412825455643196632351432284000446071063659211584289827395442695381623993379130015914242966794204211372713158769737333076641838365885601104864460256974751918880412488255777281939514769711951720301456067022233134827601184560525875309875863797719994727375188998121124578288216513933507756687151726061162918412776614188687691808611215394279050571147807989384649999639476179220595973609256026780281509922502899929021333514853194077048247877334508416137781160941647337955400715128742986974340515754500586041677923987339104797453766731489299739582553792554123675278890691631556934088204440336098313813823429563373292293049559079734061783574265050674080274604118547319404279383491279025028423938241488548590855549918524760933057357220297710707423942130855686807469476078805037383938754596795612699264715607478524154316388724717054898336293291373234587011406834193479901248455057239420541259953345807815624767704764944447746841429430857169133744908065629106365124856424758683130903776015364941394682487971886656209102778354188710730878588993690788061052194089520858476604296323315025272606598724353061249102405306100185685809993942444391903346992627452169648006075184046117891984600732163707859567894025695175417270286293112636691538132976262199574793137301017087406855767312169463206008170930267236677542905228858968725016423804379398176592158652236084938139278715577853881854819174432633994943855496194051032712976949311147822267144700058985839503615109979028678987956603635515020333980268855623079808266057005522205671539565952958693299582780949126981522510319612428324903272901663351828944221779155658224720600010041174640910421681482312129932575095431113622909622730151509558169721618508531908027475356862891417954778707423836012451543099513986849563907959172460196323713460844792140915110869107472488643696260135911126806111019849187020689685929316518209820884390924208564700945401675395308182450373435725320583472203494877878579185488226830920226754415142828397575244157982793188146571038701101247606005617279322236213688679768697280135798179387598217722471246444538838644236676595250260509873462372376517683173324447650390505104168286518783683310412877341148901385464318472059558038099398664779700538581860339290681633635562175048485942744142744122910503060247180969019233320915969441363001894561961825215639184205823560090091640002051787414805710907016474496031856612597381505971909921090423613092073492860551875839178384514220806284417113039104440783691504206155779176013056284165794526415625536572182456486026300121760902492728697324370723991987074080948435107837380868279356764503655073365616185225080128257620711149141774821118269802020652037384628285355053272300240522034133803752858017223631744951337208383602981504587647012790716839403317006237099220602675771571532536804751226907493967138641101426275246161965648141623242684434733604669126831365947784251586846094738988646584279792081207361337883691528079051805777353695919059474612135751952258156766596756893269891553411596547324201396659262013042236586379844419022623476013858531803875125996000781779582194326238697235080884596651041615715994105052151702916317397245698935515421262407806053924313165292123382640796959205231427556594936649699041925278404619922742877376478887695195569153678459663340943473543994385904947806348806503352709698401269181697697113914683612068600673524846019995466142040197240900932355982907995041382766276957469340735543350692045263143964146487560379032181731033933359184524106726512104002744553005715866803892541789980910872186580137376509243478590873478307702104964718364632275677774169365726249678145511929502752542249607704188219672585037094815065473285175242866273286105953157022410956006851891860276897618858536259482212630068766246395161737432683751891690499727535244010073882647686607080805659927299344847095598473026521178262966814519582915026808955487474653659073848653024786510575403249774356827475889174325595484393158815298832215756487691876572842488667032059145310573498625056842866030044026090862107589350711189975792940346537792893602295613709201569414276761065270882170053309339747571570453994649089316147961744679341544662726511901385906888040600980670315041282276249354213904157546994574895236678879153170666458324915730590239492950931858539949201059645865634703005389183269138251684813997319516971714331535660915186085845125089795735655539115049940769357603655530765089211914047832868541891436439685398351921348783604438380964979859447510512863661825627952168446046221892529215568178485812956206974469788525553775106044012682026524396849882457371882934422441069490249217964530717200622966673942409005424856006602960702999868317517780698161443693802535571523763809231377798799994348740178531157767905936160709260032137080951484849357978548104044522425643659290776974601234302640883772360029204732635800147562034914174437181859002987282388349818689616670959983868241060542344425258896127549789506272236822980305853980470028862058592433398915163097579876394947231214335141070106142424825525108574776685225887659649061312325522795409619047149532078954672000063281786660228505201861097721239133231006190128588744734585762518934836958834297471186910955205112382549711774679463058007826832187781461196647963086871239606476924215303898240219282461149999601498815179961650824951690166675010915602453617347487397472972554783822143282931409086811312190905367702545181034703725268939326461283632694117815916972777230502129632298476989718204133062684203389510380564223192630295488485496047150968082430534698678091321796496656975132241495585602430112657490346976701490628430862833780531887389979978935030240447147702519620953950899190589187316686561734296313236271894597203282311817859085888863435363813445407305637955692393511915023455683133990348939736926201852547449501481853638758111411527578215245054867242503473498578187570393142296326196617750358532890612843844691025280800720798776922395738382448753208843143120957776019406107050350675356417604224065587540192038420055817012098264546968440048826366299375483122867227331536551370263455223730050706400510780321708491296089892081057055880174798176426007010455751428867064413898977693791454707376980065361435513625820110166125541412614302320807207847454999235645702365881773391810260618573203258872912149104734706521140682118858313172482935689629257637923295855946240582661304799486986788420894033052492853855019595096127910159659731667934304448001442253610707368770766486908689548467653204764105446350379857361845546590921946586248591755823611695889044491371486964105924532967649344557142777292404026411221515500636062734154989386697972725145199137541440875151661712470327617419731092613044661749584252667541026667639154802439417663442963514323890528008132271963715596421864276982137574219276025878474991490392541772618381092216502646008721622503198783142218108727944468438703315022849893810930534640149378754162735907641785952742542632854917964781876798065010784801020333701883701461101580853504379357010072866544456407369431602105096753412139953611953169249326886398038316692247166689350503691279999283174406218912387165108801536741645732439367585014506657861169503913573639443307264245814564252893011246383983965886665112144957948756910148674477735221672675145961378679637581706910007149130099325938581171501667229043275610284359409157019371736192917361493995408992347226099998677353088672280014806347902947470262975139798083098109949628391072157385316880712368885110253652536862678580084517646260384952967440115596927434022820315573565349416202039383829253018625380482344380063694973294484332119144547415851371172339186441903485566541069383276841957602171235843906140203464133144862515423427193772955101924549117375666805690928675180071350302682292999966959298108280425683399578649968186602711473593838165584699761196482276120802632358106143999165745810057916592851169471573555487189732733401632125996192724216403679567414618862172770312553912602701549542569387236758986587238521571586901720507422031275340293421499758661172661637474976512934932006528916053881725837901812724391210529371886208771819466259260702853204542993125296205319928574588076478386336614836920045740577771387413464409229070317333026899255550115283673634896410123794961540752711136092888326624390967687213774090548291091888683137714636213596712021243441608005909798054113407675298783973297312088288052460282306352124889799372308528808791868663825006179842865559485248882475307722326920512150973140267763680035210700209591720748758504185325754912186867824862728398695992813955991033093716425692056038687495544871006579868441725823128364284422308810395968671372171769291173967717508946640365258755347228828957885349973196340436776208626352880870792406336795352527979202398757422070439992215321626288206646185763910583615701518987277607817871052033878654682496443541574613656307988569402737894741159607458937609032999374034530781370153121624600738242019391588707586744131632006614694037532916808764414109687988750252004088779588227570410059225580027734214581571894232446381663896301261978891033581004090816123708165082358557892822726535750414350119688609928783362283224891354619844769513450319604527604666451722772796929579179981955395647875877583326121564146656508306046236330988325226066549764467890785438117043177775808949294948385254889720098220741959135346202226732304813397686834079986881397628547069109724621542857714337876264769781178171004117090645691142262403468511686665883523177962251353305060101256965184190905726662216203269910004471493802258209968439268116885386851497109377879361651929821391036185724681672688304596364578463048502174449241682790528531979438667182478192941809674302659208474198191973948685465360925153504294026286991723364513188471274552864022917719030492366882458436308673365432038275106929445049515767752341092982631922290932028504968587350088426593214681262565687767687143225792992107899255457792992788004399976344831792096525440916174579010356042045734374870316546042209326259366062336964979669359202164389491423813461621381783834556976909369517555106028106048572935741651196764920844722614809050681856252934446556278895567677876467096014572681716301780231448706562729989917362658447342917268303039403483812820051650275826330871047518506555100202632256805142504626001570002025973763746205276678512480117597779118258116548868382061375526978050763664180563677526045252637171756801886240843806730315733798624558279518669588949167648855866140670866627837445885341268733152293313349782022760922886343892308025719198668124425114633075239739206369868653751274159806403614435854042488661600389895376660187645789619052868664189104351345018196166120386841836310554843995102750349991386354665190001575954622816066153837231026342721628665679836232808528880338327644890248616627437977798694258340345222922183742689668467922161880512530129581442787643463798308683343405003436391160782958841306007888755185208222817325248538036059571703363162382176243059083688185515027462719084304021979999626487105042646501998744758378290449698980921654819065856099850811844583245269401375899070789371709904179870403796293543119319459493631885365706815374346989006736604359847205454559826205939367962997893705037951315476305945907251145395228183630021072153087186884645315396652547049828638641984780431397300846614075646745773217801675392124278884312056173959399032665777573133248666729592184286740729772457102517908332546310862618839648562228963238435138877830019441030504780196268601607314296759349809318258570013093405785656519891080022675264345059374994619781360078227762478787747102439188491308628967010802527596924715209290129668342929338564468907490971480907759656905167727760687347460325004867240698648975638011865324709700680051597942850515895204165470663840028232363447983052528052722489977361182687700933093786028927729290454581031638258229226333578485576915489210755160544282864538909181020807602538383813194194001788419640208751331261913920278676551449430055549887342932008197974971952169319722673217078809918628266958976854502070275430425195654887347981453671455398729235048370904635120023024616660435396641605396575550165899896024349645509763373078105171248356988072175182815249252325895382097429108484684075289649601590116654707658247211691461713932144128847158142833979057907226485620355714582941516461651984676255465668433767058210039512416117114829906171415490634996707172066165892278820066820504321153121122544174763180506716317112838668981502409123915847839363231741018141702036526392733723211080130757594717646055418376380372816257985018029173720778739488619035864980350741510120825624225423706180322306024615151877382463063676756027279775724754094956233942708945588987138553104485740694168033711054759380331051822672307740291302905196923866114928436557600751373848255945805903968770101533809566549514796539968026995474876796888614035239658297239473749036256447200170679078906030600976222458055305984928273759154942143856090067155191661380540975391993429180884931930998921639499838766954897751898695875075615182846875182865569583212924448946381137803016979595007011391937078331764709105231794999102329336136903227657323639942194320423424025225405082133635759330001787662100472975138924282551101332952214080614409594848521352455116960493192594444428705441203555743403614401631348203555186627702811381487831894757533821658559007105626894110902619841693346983900690441129460351638677796017873397460840825871715967468386416650907566208717674174502405917917947302638970131558660015428411551309553446969234897209425767127862096648935280878022026013803118082578969011837776645003599022320894758943101703168648787578826811544329587707170026521905245388393703159864541633284324204189068511267074619558285399700576267433274321783131234389265757495397414998768555465180797959549166950680864403030443705722880417558484452461940869418748759345359028331252944432078433120358888518067215086712534190829947944710689952898084790190999826085417511390779484193392824407653688321745114335684808284885942594703359745880918930184537227865699138841539299020799986424106190377524242953153869767689008288200107370289572087173140888333476661827555312898007334918184860998386615642636064803351603242876715225989483395754972722468937218464240207808044906730078302670636598237526862842908905859225709505245267833644373934782627300619791332890157251336258351575420898599380810001517107343449754664593266953838712604656522875428383825499608972560325280645039757784631784015360356329572941459646131679527233145330815308687324475784421992288792229856814594210078212410506429435425708932180720148854831012371097327371503434117568644562371769693328798107296447057683748236104946985273025292957595790493853016934765580205162290265351907092825030730511307431009491191116183746086114675993573587613024513468355056933266730342933327487509370158267454945194812850206264031506997300477668021996445409554290980009896776466360600047493398526465916345651090314657717544214792276679495873153144782144082069103053335147755384604798763162053433742267304879169739452667617210385649128439077164730933627250929480403303822075868125083166371571168167349495416910254320293726133030833858625405081121740017292735014398590342561504914617196932252308137013105045980370976327240244698655970838680296594780651678530875218433659706753713241386361009730937165853542627469659882524734839178380240864221285428553667182596896624142479108815882155213673822631801584273179185701547409020143380694097685180246448669905262906919360785368103340567699222891403528029612090384200413661529710507584441291651196720823084395797434276531126444141277038695618082781060455333421240531063077598814482117764236076038687259515245960435071582700590045939513394370306637458683233286538921003952640410642471156006640579722944653329821639366185174739994798900107541106676818960530880399208092502747451665545688879217514233411445395213280064342742080207138419034897257800815401612994886454708388773084151019532876780586197983760770694460099665026299648308041762454598743920316148647596038190739890651560062866221767702124131174999163819184512630737803548608012465007477383316714816693191927931612194411665874017158954880343265331881164816089594479110903158236383797631118096688850495287315009309068453080642805692579323075867247694385282786090973219886861572519837134762416326709677683067656504636187811714244521612181237138609626574897141812703347763382193836404425416075031358649124583183318897019113933985901432512927688386675524443830983231034086145222149056986624674106184046514797915864040056560068769852921696323004758311877292440228087720434409639084563272414898589642304110361787492896845601609586746190844911420666080748703999655597012360788250862170964549775814861853613582596295840593703527042201625207868910182505133556068017896880998422693177962331979455813094443966932035901625220691656424738791786810382187303783084952959182840370834622922151190999362622859152055200969773432203982150655642499800905756677868387501103735588399731667178922115158558689449072140617396275824286184364321002016122104514453493942711178275184817949530449459853317497618052130176493764049834019271325386361492832977518989857280284204706412749094475953586346303917461434865047637422905114859719663909097541399881436978967212886851903401553106742262533738822970846623973672264430388336381155461225522563054209672649758294990531077223951778013581302737380078203851074935618629238166631505719844600029803279226948702263051937219361024649884147191339734972347760521350746726505984472680376286980190073290581777703203637835921272190171720069090136651454121553456988500803118852736199089960362770233967211911391729496253002931106830230398286044491341469697567663086693903757412854091986486446820462012788097258007855631374807946894837494487341570810840790460747983946633545339703105362623235900516833405142988618749176750985209309932283376370578326742217920336023508469888741163870436608204605595609581906152025069423648709760479697943016241529206365367321688632825966460652186085533001061412433876006634464510733947568583309732429960353244697849606349347873238981558870408750278976829430557953095636409367648434044425710988328837081347648736981231739634919006765099362615979062906006449883981582244333424946303604971268255720131298823120589165871883094478098582790471679351639035055153437253605059524032369050545058956234015163701359406694743626134522654285892676210152222550400249565389906629590753051440870231949904842370877966496073695168676477499007375103905792483385328588205052244958825966124693157545875187338646094045826454285922113534844853522057700680208265637024798575962116401130779341612241409312140728257223700151399905312507244180243116286581744494919783774449517137446045014981550735401085546283709944428117934817783766268399968883959298888625565512045764495677750395006823572240811158348995836987238619546001733653118907017543895321263094018509508144937480874417193634474908612753764531369069549802415099217333751149274536634539860794299590034033706617583146376068155608171863277404557126517239036712593090651055873261424391223031122163379653956188162753809054156684221564346133102504387728035378895090503192329849383483651047741493066123741177085441989637098554594260419353747829880064375320578931532706643731127545316546875978248076927845309734453209618033395857404256458183668157621358421664669138669995516999404760955822460365952650968384202195079561209511097535271105007298669160746120465722781859370188279826052544428234100136734024043986869008814476844445874175427480399076700128369212218544186651532409317171293019160300674485437670540873616277556119196209707165998418376795950784701844154913247510044679939372733326791843839152285971679381401939375074985524585919708846800792233347353034392015196261659828673311288265231336504253798836615177687331098905118278907064333424937661789761174694516856529637472533915643255220899200891835864447637625451616577836613958803126683944916173599127358653436942049883772194651765210609806328307723570827958671440606473392749017009873725898734607317410759521173164141505196970258612727048522939137349099918319327265210444228683395352781456985403583360155102914159819513459620300919659112294537946625854593141999575834976963886520438478137160988726399276176001866689217092761035405406686486581715853373850417432106640930562880147970550279265040075259676926954640907321904457980074166103832671229266257706286069579071559227337504878114353353788760493471450989232324385671102994034253070303206010886417304075613036435546165529714244297954565256339366571304706065370414164384859152975106961248805287496426410555551898051698210417831959593433541549211451305289847910548343949127695933496565382380462595870221052626860498278857661694765270672851372994939549753170064557220104588632394552443638127452975702754385660333084205107472625704640365569573025867668881543245808385394348163583244213628131853050966732416770671024989446775646671816931882982545396480544959700503975296369499854924288765443990307643075756207447844963069171482520512118521634543471386968622543092055762982661190386034017749890677603404619238315631354642054323635771106453884007587526370728734956791421775845591277791296361274359209639092533336984756480775864954389113307200031157503348422080599918544647016504844228114090124649540396963359299354866961702266453712365085958879101414923898643866297698916853111381959231008176290455246840515837380992689605829085825887348231483475546265866701003887551018016869622726874235291323536877743099287395958985855427901004030799857269529982329087743564595050984185492345872103190462067529463867347932413128142032793933186017418879462688706313311092711965111499927337676513535470675344848942803109707566767245169890152797235973616005691450337663172201654156014250539831016925744233284619739000002169963706427450837118169201111399371633097922766879194304711044596761472211281725577291634488739877092196390917144406677228989580279188055556372749798911796924930514701952493477690056966194444012900307687017730535365589993673513164883819139075463372845694381263523608211546955621328775345661260422012244885226537309253890382643448551885504507040588113562391166896959675712282215104150958891359262314492106670489137179026652907746069728541302582692898848518297537062329345464798669583010816869818402393939581999500024696725841154447181082286337872954580166557149419599219203190646437646380850596448293917683489124417567096628770310609424662046885194059160064291132380465233789838049034444394296671313138615658007028533394965172984731181920388756448948017151965083707379071606248945346795831532134413867321455229080600791814915301891343600654672678954555872315355746718210246511594060641138992458750716088903482358370569696177213000473845481993857882337753519876352815504400173850004173968486999826431602046013961533694589392402276208904767399682248618014407433829703938161190955946658878645817013878038644794303183512436748832667892649518488830897844595036824389712622234144833090709566937982657861930003888625277239727290761861095269994182981677868281197863900200553224400766545896016880352798353085965292303454411573117974063645594179658287163067842060050351817110169430091421356298440967353137929995425698695876972536674497084182440708570126516944480417883531331584919232994982266814418661005759349136544618470884208854818417681944567352884551077705213982419514031990358280572886808678072106818758683207477340795811600932329293466110723256455087429452271218586092222763896683316005145432072978173382194723307510266874429597956674398719444089375014125950799541592017565564790541696280000754160755729982907384088046458385008087349930945084558287085030986343703768646091622999418855502632773008147532182209161946367198369462349326239261013695942104498802974246286413195539669977251983121713967280901849628167179566429034906902216531668804568192441239059653669158826538186414547986696821115800925812846268615126350993158786684345699048214075075258483080170282392952666474622468342488348411863530767743532712113973533962864598548076456939458847770057284086651538932063707555414467950363516040639525667517039537668549704893471349832631280848798164252244490055071046639742968769217777338128601683245447328080452671733722181765190058601557802969710407457586333046144844097897356671711492938238286211317647657564915642493563605065801165075034272486024725739922410441472952900983097288748425025728848269240573536075074615059113464322388054471557419203944663827675701277477000018515774234028645520132433002168857657146196389240371767681620021033442561514986057382909819176210318836486090444581301214694907887330398513527717486964546794837670566404021262963822803109767649028667303584437724377572579724281666317902357082760483903037325123912471494495978959188463847465812170768830446339161472220040906634229567148652078668435895081913560045182673250172723591955375997443798715172879192357687405275155725150789518800261464086997753595242768147517430839157796832165970953377414434519804370731308723480289059712148271360196328453328749255866049858835024138540736968527750102121054124351958122592245512575477313699528285800818073180914371437831589876932193659600205175815505468335407005471392081145647924201533121288994877323389618317177984333566118713602267684589245624167971748354257123820168247236547714256742079308615419608592602944108458649884013277735359679537001609847573581229398344146757859142972904726919977249720776101687388727315618401899826866767325150975709878402733290027594011983686320218324719758702206176052941732524138993001689886189033368318546789299630109276311185428059609888843980125983299099257440749562720105565530929887213711100093154224661096942155487524418338390379339700554567512209370915965688254091451031855213152716504094501748891329627686418110112795231534570049720524439001576696135154579439956072982616696053178748452307493332348113455005517270256145209124350307127094641497059645007378674475638715232960248708805495002963075578589709359619644209462603895465868495367593182402290310321041952921148064908803993300834630503138665410993442089607603453531229658462757758368893311972349055376321123340007605940130258510535546210761161198499601952868967985405456686578087304485872993062765244899908450527566906504048989255166648119249832833046575106893850394045148717888394257171492030392464445482770879670470700332225697404314238890045930921195904264533174008931337754115528834671794967680616742331969624375024775868203147703191026476023565483419487919345124168078094369786638831489854829745130436060502350648392362379812982275298555979295027916057102026876001794692266940910683845470666932743230687967983362115763586042152573194560596447865429009347704275707508066245338388358935242517803176933995542436087044126057576276963188993317221107325726963034556544992335664280563662295651098594543697295230717490062942344281706144741426252350961910773128350659138524829038961404448029624140272963778207841126205178675967593270270750086833288698115191347273430007964461833946439234359404839969783759235113315959527700857852372041703752221010987148551187917492725855032632284665189117397890145005852673788618210355562848203341762627197777278351456177382387489222555644540352737477318831416257259052678462381782955282397343496072028009631567052265922262515466862084554218675383599919266611229303289095578330260054539596639963871120413472690571850355911765451359044637127611028141781709133962706102920199596097675449610755003419555714211875480408589629914253032741133622599232850901257853654212707882422430850869048689545032927899890953049778168347507162268190430391754510932253898765610782756480312756923440896291993121978098971199051749183295484880627156944077584259416655381001019099721488494503202786667694985446509824852028084867238844170881576991605025922527517783327715664429678093260547113993668158578153884730005803508876681663512808112318612766395484399595451474951233247073408701016597042452452245660939791984472162220123778390779142908176564774000481415591285472199048047913824158002839693380233069507390434389221500656838188933023065915885539986553681802185647717804855736436966842098962052037779799768202830093874454982891889874352782804555876631552210081766624741983877603177691463951628566052700842182580594047294890412211021428265823595714240490054661676017235628505926204301107824857478138800868456964762862903858960933076257169303279212833615755363928491033409075148835172519059519748682279333117512239583320437414190153499643672476512043592117753619239221042471859980438476230262275543397731513825434141980297515263083064439521576773099244452651411534458280973646200165910247817277066665761262525545899554071542868625595954678323116605595316671202177653334579454326884001546327654800032776809113591153107081953287608216981896576472298759908629544643750700511870518278801895146200710818847869732146855750255925559937108845368732055724377592426786444908398424912880501610718750855685032629426565114844447945041951579396345480224951104319412657179209123190258803086174960387009888180228305299438247335886445988823937127462230876022343021069541758801189475715208024846465590995795317805016380331721445264095694671627575140561592723422620424942089621476255881683301375342218694806158070321752613743851119046369125184472495037099093008348723911621553753389948555362396640756066601671199645300839816874591179737502652161253706743967681748551027874838723452016350193394760607263289938994308509456150033046221183483181276988180225319960813786435150732884088099061465788577813604543617269844381227042590953778613766293396487540875027623563367472479209288610416441013684582068539813459577940918975773086234946640646563756866031996862372748719242883197177761192531622705996145489956228819389478430138415423651438222247450471453910237228285116427151704324570029985028479577377350900321235048631209707412675067250420870965886980097929289493559007846021396657782734048442388820792119292745807495386943230416398990130115068610642004683751198404030677806340085026655086819285387924163563232891410452740051967721629903941755590832228392307701024560637693832812452535452276249582447391574660151284632695528063504761415627914175045607486004707642806175123047514633788546621036045824825212964982651919093008365958469985867157491890347530918020314559987088491308451712529670009993765116199065938609917205113293055111032018735231839821139882481656844216148824593127110227044410886544106476394371448162146923916668452704430254497435942760687682060151513582745499228295822573190149153180088452124960468415720835162761718560356101923980269829104037840920343019712722595003092620049641562915042347586788001707235677394665272197086367879738704595465505876605906266941303777472006097120572059913534465214090981430970668826645500021356439566170558286608664699445421784203872167903679895004287926633040908876265170352482376375471310712908293688085968261399268652870593441950122564131330878276134090443608009072882102192280530015611094980918584895118110465045027548228635931240219622374510004722232450977768562374754478459578296747956546275956690065818459221671770051691920070727471424190056023889029313847208000473705737280893752881164350800604028983999410170206559244569561545989992409780729347138104425918410608947338048625767040687023949827284201050289113124771966994064304968361927796414110665191471578391482921325162806272495703329663776593341357722857422777836301106874525991451239604738297073549643618836499016585606159851950050204350605615866205041520853912209858351489384195906352510102302028386363926977044003204152807768408928643184931176032903042790179284192923452102768751056268705364170323878993829309493842414568409440940048841599852957896662158130460287548186312417909792781744825875891190613104901739491754809213911953976580817996635894143531023445727071914359575832118104438446231439326343394270507812484574005047859725282224438586971509890186615514316549436741828036229509599852853802637529904250101902904439640946406654887575723399222358824895272522091379627749360971397291831917703778579543980937069011861351638661012151801672511456438398166504166305040835823763767104465995788053572743763363697645729374076980182545683507750580201811334350820162917999495130930357550240112216030586484826853588907641851702892310162188328653623780012691115785503732835122003624884826714784336130715613374236835156587789307708942147483237536059645761993464860922217263686873186996110278860865859661502176855854163484360931036620558344673673422396656273937946826527568043846510539970005577747203043251144781621002852940082909371099055912216833019891339494823603428072682197300890953682775293628893226000587322863562552300524237778271159344346450873029128487535846334233110245095011406678413807094672616689321524512282551697460846097511039260500690095493957641998596600067631211150734221327852434553398707121505063732384618611548950101464967532733101937728221736307688785244671965449986523172578561037076724929742595875067611651057303806126716186682220427026515352457321046861402892219898758807556604515170820147784662839215373553077129801502589181095282195360803202442248655321005536683943399761357112091027064767847310071211621363882624804899838223654759076925585892512693022777210508000625437710546742475224935718455060737443252634577876720460050868992372929405018002355310503928380029700362255639771474124451035768218037985541223884822115183434390905753510319018655530775402685476552333966157663160119320652404715143299043395609074135083352479260682320956001021054312903792991041360494802059637249859160876583020001861490944349680445849154659188192291343748401334560405926615384027879592033580127296401114914788746402369718469354814398139569688034805004291918015935559395403299234365558389327213733065386393960996478119975276257107347100746032144910148796946228261337990445377190820891498254956899065171260704897321600253788397416927408545521519647453143611190182140168662099737950381457314605250512822264351823882403305416987433499561249118294870268951338942352977725510830806117915992332139564365958043736899013820459010737508982735640078631039239116407603930571151555750670292006976666199440605859767195172369462829972989705822623081751613160407923757362305508629246084764349008103515428213384901981639159390798833968197378294320479699756899889115706130595168984867786560420139738709373194136347782312626460030302699165604614120177891871284433920920368272129406686267629579624603638707124640364937477381099512259642578208316061998778211634614328961905285569302278236538183394583281363590622218853338129908053016274780210755321391615712743504787748615349933713182293213387823779983903259286466816915275995132536729240032960381473391722585780281534933335905549011657988985796676615126066376805946629116752265624782689352798802160568105823118710159850856404280014883876815469190543288286764850533912121227548457811326341603843587449484523222683937523985085983061765077951844497391694036631606191334958720407758277661537525439750222767299732744961663733772077407482403387833478823088996995043776179476283778644041370140074049675286363298023949014824815335323266575644291411154013397050027251555860428718544816208545586307701981738767122761297682780965932942021641129326402674121263479795918005182776454612382732161523989030217178693307434008732892371945080783150481861051519468176060399476434191452179657552683099958328885998077551578245503564696726246044270234805199065820856146269975851802995527814931782533869196211964846389352884262569621867825611874823731755424461704142873994354134311698593619097178348882556866008167306925521683557875069898687290757776816168104190429469570377841363950192947788717381875845671051931184099025278546102073592253995597242801591866038795949829412924928360369230559479663112332135232375439743871697292837534978748899987979600414970440723889941496665517948265725968985885944191036386805165248457265162192247195109987636582468290561093870436912792063801468892945484946252581728734394718505584994208476454422397788428617624086290042816833876861765505798987047558186341404571606804343493390331393505925215018569682445556358312339451600834092130448443045372803794120491640901037293968784491230911895118502378764584620206613643137119370291134736283149827351093436252718010828646835823783225193849002942381280479201529681515854735133772282172199756604647456286383858071409980762526967886751084873772198173316088078363510114934738723731066782413663921712734095473043781252551499436314448943984331002541191388696316854535158042947798908278563406398579997331799143954358804518799673508529818435507443652297496786743786159034244797411244255592048613507886953931660878303088598391758952333437177885783737307679515440636269530649569382700265960138274932692054760992203074734202966056506366078995846263774233280856037840739023715742534654929770378936271257057491055317175122947253427031735838930675683603255780857899959629403505493000256357422861725438512884034391133838107599364784435325789346713321262498937251277003501544175600829880692433846539741734954502861988573584020248749032309529095108428940768719582773058166692151062574840922946340965855667348141421381908615224235821801374788030408111256060538316078460630089844272316115075234756448695234228591063907595642891136824458679820571978780037531677686803621832294325566809469636824010339132626386579276112179729247760347873088706247357096852787998444313874867199618034236055523499874063811733226191800937217032188385876568278373061296260945602434439845156172734904013262688919840868253847922798721477336501343796389815123412925244562035327921017284027760771871716309724743655461490976119282693455305914957965449743043725604593486653313147233359178841113110042905322484198581358434213580079254948590743915633307576388291530031158503319399441075240141162949200397714653792566554641350711017082118117272576323954158957058263358643361367432104710969390831262180425580236113041008081662611341857958287884263591573904061786649296920166777157621644655663990583706518348235558447927330930685511946429602286805185802048702533772270996100779960602458731196475997639431582249517496437130839872437312367523415298771092907314945568172947077529891625138779595340804425199715471169977878815820639786473702073712869727274242965223414387308577708845579999287842186264780131716683105758848475923628160263925156035216635834799743760729213772284683793591187160253090700378750695526964690068021105616157324270157281496551815576892941878170443915883091596798091578279252789000872680758001974655074305909625346752431307385493002278252361764278071728372995710456601251702941970477703921670801718660249675720737865331161519405879092532774559500955702906067538203121080706628069021839370563600134533653855825261193723431910127158762725847912278868731951508869025290487050326735421422821121567832976096341175228370732835387532813300308276118112264946117748362565489491198918469950147708908163074007924748908713854966292598868356009348530021471960488928581922913218030671766161606351346985571949172217540225046491590677567951551445639851687441776577638861357177654906874753093931285370930593607955903492239495065688963646349383660520886625345572985804190412473198245164235798830487386901619659961288252919361798291929775447405128421010976382897722422112565662527515891044437106380810211270672603767974074020333606542962651076057507124294457411477967507193515217002108324824079911155334672391262470543539271145767728254553167281184745010823122879100722691576289751844083756237367907335729194112393446567153356695897562523858746474977353737475704705382601140485988125779812334927653943310637168326477982255644706826592349091840294787996690613562420672026365039629280703221611848859766923445266599641395789911089261920001701734698717957605469730865149690238981012625760831030910508289310119432070816166493063570852964455057070452972198745635336063280536844743311719370671781495440156606256697627241430158801513873405857401790872792125910166035324170232766113573701670652353664173004649094027959232624597445630316485774834739427916850200905502892969000087048206268885544094051364377357768682983305736811080796966371743465712905570976948590623163005708690313039294921531624155709694312769285564676995926663334342063649540728184076011160258112540628607533019739597120181509668925002072684788937581716094696262057462562699160735557711237823781129174151845757912162247326716426436669743725463743917284981551416108759381571852119144614677332244640929767317486096094697104787839267982796500530588863214353980216751364665368447022575970813954463264468901804414595852188288792317930766077453335622798696845658794224906957291235332621675252028207650943794645880854610418360072645150518690650586912237009390011746618278519942097307484689315127940362874302458025159945969749855710824298360264288166916445815690683270942452588420038159962196699109440845979479306236961473129800588546265355302432030510605109920536679409434345156134486011907622235870667635051285848030945356009694636574931505138963075901269266889638825732659704760024470900529921668686382884978938266996980061532965217444698881617969628059885323553368362715084909271526396638019549655768165886315450058409164394084748780248281764938432754196438119692781712195115363349358820094869255001225754860762026001079463441875817136124204960283257123099004924354526255253533260312858407295970292165777908516454830411492111010848605331485174536897705083296633455006846788502746543379270096387046194188081822262110650218015668149718858606570368476009578535527091446870994401914119349631455455100912095463654965070282733224902665980877025605508615118445856568137161994650732613009583674524187052266508522663744613821809387891750921107163154767157941212377418338608535969161938427450334263892492223454728577032295530430722829763509448484609369374607650017240142864371067881535841950599783967355446044496352936277359607690341484699538722759006694276355959442020953575963366877946477968082231758748799611198302120323749579935099059345861894775298759422262837191117169841191871417487286864185045649967502004271908133631108069827080729115077989504257380070233267156603569286495260778717578080920283685810569985786432757252719208511077148178044742639155233933436962091523956954317812172633230175284512628534795992420218674688726467606326836259743164066679125358172687339746875005911856123997137179766558536292998847393279912154980546836575484710346163513338422524511881403111224821698628555984187513693744859761250950181660712297502516657210901669666473955420380191416680211852192967480887912554905226526898944458008658731740854918859471900973638143644900369484252004742633173843807121331794203444761387959784031976581088701691058005372070162929812799837898526458125299290627304339600186838901739066154410163153551127429879220577941485516417938136057353562381003608542006529515944950512543141749641467822281007021015327575660091058122015368842895846282526205468706775574573587110204562253289759866149898324639411003339651440481874799179311770076466761651464656537355616254910855847402163506154984662948215775048250558164976196114791897959516432046939519425158884802907506456508512855971498671005178693021650536397876819264992822266787339562766126741451986425397125626553116256839114944482353610780275953560220578941674534546907359107150101345250271888791703293111096972658993385688736737122418455280669069857457875345314953005467553989309597544287750008571971609485679987967134398622938618328292866354865723157112477719153471679542253963566316623672467516700557933724902557449561725407257503409239644732145335281759859012929221775267459551539759884052778257168690000648046975327354147280074121109010553168205865713948107016642191589526432070840158487567214496556227589435263762566832312321783294276573468026432764100081256180781848783783975458911666558885869947472623669950457727027272612919547614458583843122714161589635254922083076526539074332415947916622687567610335199662126470334314536184598177424885114947219410971133434099603419140942569218847516570175860542552581739348292189024022166491181595538411815593129967821721976720429647257008325963425519750198950131294541416816554895887261080139653610097688026423100533256511052004476499866075770720952866621847313320517971767742535352104292655517461040693884007281788195784277155779543654395602248727942719623434680224540176807481479969805792558083164080242039675085915091928770735961371918121642310527523222666811506165519850708320112587709509729141088235763894847522717772970474533949491021594446288490563744871373634371666382101331250320498753860162120143169778005378277235938578297639190585302623649800792471274262985239433318352022107364200311042458126061180837067981632522815340269735193355906766512400524918203477536347815432058001466253690215839812060533656463397374628775590960677081621064188928013737866688065641022112740015002845810695019389470368084156089288944668575233759811962037128491205594314912455150954347692638020374404451121378973804847418657837324204261668462803641090594959380748460315208904027181320214620185253346211200543549572365448839795853496820444538616197289373752900631143784316315464938188705562413669517451374831422471760962564257832674904450156499165427540066372933590743710836380766161396544017377098257473434991030246020436249280919316836896974356177091276273850566752229748493675275163135672173853243554343652757572229305925746335441280369292635788872788239824981825950178576678647550280847318316757045916094239863405992906493199210310999844991419033391120355042306102756725739759661612697966806461447319178718531021344013073219186612248907036186379633901997991629515705200148987190437701424629087758342706910731553149508418239063156372563097246988162439724965090431985883293243713816678864577480702037333323595399027331984830217264133628861244840161121659169010225298689205173631670136739320015372554697916614057427466091971715033410276769772236235301575200971066020429139086491545794966058525915875784848677114601233030442551479284105224114828491271447164384455239812661331746768598917529354963971107707160693009419282133542947171849141184252654403347151556844469524766543282261590524831898045326724432137627836643730047786936110079423425232839223575190163826685254335483991714586977241492988215947917387079830563101996018511617539096461339793473814077251715747500561777071951321712605152257719479590424326015690442434705880058649447423986085544852538288888129036278963763291744888100167725965095975765514533596781337566351529151606802955248612288243801930435220531240932080274425150061455618889259420145787911657505615819069289320870865861445728368605182697208129716364652821839022638155080555670388216567485734461602085748863209971506881040734043243594808114654546728119445842170713838601098296537788908242581338246835796232301863429428919216558313339436198491162069884876157253578962841672997934425361384206521280953834742007312208922161010177359961990337946899375505897988874034989030515806014856562447375212457322560849107579643804941132423663168377284172405437272516241810743368637314400509349597584302772467570850058796090296109291970842920069564842186784595896282987396803211950767350217573441059397967600021620069759970338976907447377256273145941441570375812695040982723296947082058574731695373615472413703519172340994770177430619537681955388419993255240320708452458257327501890429235140789121539476529242545440112070445938716815964137464767692448794517123340134349019388342397114592288383117830662475030855721198212307717850610577328002181749305022750917295395514498474313820805255729623028181956663644961702914386663171289764276496186728334219586178332774588929895938457842156659481500654285046279909382233171432635563127487227230201492748971023007002757273122650997939276505989662511267789701554402229668385760218132772451468405369277211056181291574479083266562689911812376075229309801369555323860030010155898879916337433751070792930525083558773719225477212403941933203411614926874387086665432568951460356756250990900545511981614045486267627239957749133802017049796508279379338768586636943424881911374631979378335826268518124783443952185775958309503074418249551087681763015478340640315771477496634361859987561223032583017137768899317867502127610157938826738972737957736636660767212888049243824605631543311890411573059184417693584758359927960776882853126638307311596306064031686144724331479007958503358386177894155736702361958156215088557324476366743094497864220592796093998469151485915852918410939881998211841694155376073969260273300890101039637656498919676405339273077468155846121254004888597576129043750264578014876231548443902233700145297897951926685246182548099455569879114230947991360303155729847593247951454236157861145447021709834151603392331916066646876126133598616094357211665877591421860555577782083743740109370994044818327267653328025072013533034685043358633086470142353958391632891095218504584245326325594893928892698379573299823651309982824170143976701751700523483254157705876720492987071715440200209789687484073875074833716347374767348815247208430263258229733096350347720832208981070227110962437712364492966712452109295842508273469379845577644073379016936344140522932693311688736599971171099447721405579927191302635477204911788214517745885700999492502676040009112769381709190600787408076785807229256228601581024322785719220563459964129201235115859792225676039797691791854446757790978172427520479780787974893030985761779369036917854266592159992616668480825063146649693936348742907798357633299878330704495913281218153748028087224496150981870874352540274782756594726172686261006857298913144274660730754553869253671659523338751540010836995906762071182683776933028338115385100356557091734061002536709719186964900820572592659580535560650693454234906335348337889002860096053207741537636965729375726479252161884651604631246004122031810413256189582956180726312759780233685064555529423619761794156876531850131868407046573529704057316251531550410995671595677209195835311912794676855384091371335610437868226327411309611709047216669708441666522388413768876146381383360218332310669010292861208940188474796178661542618195789380290208490703648043609449935587793120421266826159617794510150465516541756188565900111056381720620178479260471089837864685374974485104169019858282677194992072359791619483690134462256198622150572086378901500024576935142245920226595583260948863505145552809344042950570276728841511626341895834113430288553728195764660369797751215375513503694566733367980257668800215327452915396254032424106628170131363890264245873271254896340197115422866726281561308806156444180429018153144106871994984326424412533924356072069879261406790835895795340440482463853727030307669832335112184360412927568058791029463293401620189548666897099629669682572446577281780134048458714950577691715893204736512113121542785283770443944931241761004697011170265737026224624377138361214185421474870359829206034191643791236716968641121279053170277471483333835348022098499330417616632402668685775136087661970703666547428687652939201042806410281549027985713706196692559118192307785736298876243134283251457133963116703853623355154996590897970282927145382788904655151203528830962544753121123449252471586551294810735359055788223210926747010140778985959373138201829956277643779016281666934039313534812438613519690193214447670445929511159409721137297681653528551037166075897180859069671781746400726683226467406348910326286874641717763662793368878446023944817665289791337515422167042876021594540051962876027619878414283339055282466425123124744225057224414887586694335084537420337337742163953660993123536939311959026440432897041902024988465522267888105272528773735339339052105164422294024543768006322813761290560681435674240496376952263439118997634120329040421154244544998829591022682475833895192658327614092266320840767712440520640103757540031115513085947452062881370868362790941222616121321667811662962147155721412146340556273791742725597123248349466834128463489061885536889875220830264252767162834885307271710458376753634319417419340894689185317313832550883217102471899814112923550542622075146418502658903949899886153604544636804949963667105258712575009662149502480767563358751948433311226385060846509798529582163346771589973225528298147632710789056561935188537692583032165720847088729052435912375623535870020168128463520298206100581336769312087236099093730106074596504591907319171700932915706978422199531245642520717996584808776427841381139134641602724440317654460732806542931442134718697732199098318920551680129822850508991512162604748921263029233780114047124727174643938533784726755290717223888607599533697246769039727413722428151647469071495225792919176877890422620698237306574405975285487194023115883717390560580676625115410143009370846134827566200000481532973099935465392671252191100430236450821280983661608043410252821011343378536047061772722928628583758503204837498717116018942932973269423737399472497974215816244105867959835308315398694760253746576165491290424677300323225527155573870689946628816020443689967747977380874275080374239574538770859344377837758658157718174105468723205967746036859149768320114693112043320728380798454853291300406478661123190857348711326991379005644348748935259514357208008016107951634300774096004417101959841283548334295053307103373816011410583188016758623197410942668070213501299675767736440696096540702393462264390758231326217031047431559954800999733017604112262406646991324520007784884612134092202071820400612334874148385801764034518987173857297180761427331381237493234719569225320822587036310862710236119978392817511897880570020790138537262605053062531030589101809810776769545395705255791095928936339465552280700281519762079257302385271005119491611096917838225413403077703999117440134282152275750534187746236022922646897920456416677751273291621956762802461473226712756450013828806192189595733838419683145109033412234321553504375243153106153318470418006591612890009292624845154174417737597928267874784595904684452394582981443259935677693045145959199249743672062088418392062922805958640229781034632205457775129899034799796807944847600215779227270389006032021804293781687075274240626074749677337454141485210279739760441756911356886638151946821849618529664500654031352129018639019461792383951254444614112069746455521783120358719738246653473212549442311140941886005499313459850399091034230205750460386272292111108363714000124737104012477088706628665381315746786777124737474620194019736587890388638156442058574828885121966188403717212350827723844102336042878250825559527139681139819245437409324541089096897291271445795080817188780812758738236288404926172939542076282113461618500807489031009785785952894026692243971010228387257379110631156455796644794673122036898479558234892071695624776844873399967775610748914930575449523362863602928134312026568545281346288128381774680777949835118149373208977995892928286217973127456247048013467296431241886944866972579057706604984876302883649387957190088346810426122609310572285463963573633564855078895968460526822135923370300077457669103837586157253228968866958854527459666181674566327498737942211726924336970869967872046721906178714118527462986864784331137859405162994129889873556559216040556289377534209837298856872805700313159207867658131368214503051492899226159064389515491895420814754668468667176484884298704398587887393981779370627629814765901683430078324645705669034216998681587006735298700319004456696330102077487349777055102878392298036959220097585841366371494493983439271568442628507459082848188325434304628949950665873255713303278969803049851358431676576192098938443224932259729533602847101824769738657334313874848353746774874687354052423008978837193551807038415030730817657558129281346938012553013063632989488463095691708043248319929634911786358779226485404696596961393200506605195757572460243983577202215556455179641212838569270858499094467625396049177113436688310842014773802327686761751281221950318118389086325090978619912960981893176291934976218309897664097117407491394265150121868563669742336064658329708058742169045748862330216823686337601902428320433871041548110124775658904853893108758539223191850644383026471410786216368592292317629109168330580209588254017549534267243679108551260851021372571385068408096808830472120216832107697568675485252777256284542717518259070888540744815863528423121659187268479818784409277036898320971215449384097851682203479280909598472254521873946093584123103010517526070575244622096654640267943580135761038543111526304421402710227910377764601391848849858020038796288951268477695143397060017899043635062178699627593242175039950542839385828718222200426848806957788755841683758736332060477523057444861627887677341172462528550378681008606517420828848355728368099086910559897932489605153416392590997009445519140972171462131778868865167409157578062486209578245534824531498732455807359894398083478523529863801800454057001062639448707942661234527043818017311127492246352565282647220031799472611190525697120187497209220516799496674981762738053398777527842515049151095191721249921232855690953990180299145235595058932660796776797363793867557528576847413575304456381122770656252635730296186234849672744531671241846570637615838618653143746265616537243274349382277410610089749552737016317185920405910599014980214227777923997363130763389718390077806535443287073063145683362538037425571876650050763610233741799938116628931795857303467123883630303631629034040115089948840400813745473225460190183957099750487445861207152820623578562991818101221984785696237030006924984385981785784328207949028399973468428737448797009136816069300622904020237738209958337709188356367397204820619208851543972872626277631099155061012113599019024314197747082525714158877838349492125268156370519080104421875388247522651042826942535532630862538010285945849823280275064985235375315074326516933539009534971117071021588134614274456562233466096573326261614508834795048254091239917021406164668702236491355016330198783679317770021646659768307677066387136418291914079237825996519252657749764974092486319087785889807058635687505037511873844995361688493613963483949381819901376743456809661341464593226040609296216190183294213049363693315215590168157372653294512349138597975148794778918931954806074914085306805258747990400086514873297495910507283815076753190545592522990257773619091199767929015798310473742287594205624940283459275131959865768560820982690320375021555549259469329073378611395015305294495101124399976990714378420237966445626648165904560224388392532145405412460704001322189848461332734604425093014797889896754645254160428168172640398936659459914215322048773606026397915416353158130038359990369236342419166860819576589337355144287044743512989422189478428961181477383327907782086644203633891615747495318962532945121049090490066410258266500884716488692154220241289548536132942327276764463355666673982846294858600172904731302387321514835240780349252738682083750019729402131489451376761335096423681400638155269640398422800018606619362101383817967894992540957377655969453820395961609755145819631308928256985067823026037693613254943895443588291843097394998032695491372805929555222886657030996183451259923169968519057876409326840442869686846707754252701239057735435532083597159168176191015208657028206878474060113784126058661968602862445685499311838122710818767721213464049314337608086267605378849037791083008508177039218744773844767873681619056804673299210956061865578084771582432544796408548469490082753169533050312190253635789064437399871630609822367980341965473409826340887126946606803550466728623306506763538945719173468956527375654698603071564205445660478708589236491428816339290657676721218609445381119103907977069976176034056880540647320057025807445721205455518592519068803709081432843769317395829771186250579137631832543623308066401678280523723892801675283425691935188827780277131869822235325266557921893508788198760268595687184069862401218264253393722827786802417665199156149286717900190838663039624570516254906167903955962104093058626808145582247731736021295916581003987259330306898824071207636009771104150042370075016664819365676105984072899993588357967826044247638350207275182526938107121481718366822206225990535726454226878238789043334945580341748727909763921414534844165543106741081185252873359984216846563239935249852935860923076474310314890608087062346618552560119548998677462336263461614423089307884851052672571891824595890111232589441891101821828534081368364513365748364216879060977368097780866800352605155920551105362891010790608840082637244797815452884847367459945304490806851116334605872901946749913006919661548961390283607583622665254273076329359356797159363617022514159568047001727207830177402104873372726651371014577934175452169926228529986199840715252958792330698500126182451567557267949299098943770988333300002209163851559285457777752035253354149377021581913064873767079004849885692636196125308554274343593128918975597579108813017377178506992628939021199091570532617071529241231379418346559127681890926459259032259525419926412733624449528860163554616270543685086788987610430825694483304348213348893748974202476027879820412207681762589747124594766454679553999621184130924641687501769618158948839465805872384542605236306531681106443214083819825426544099589154280578214487774664303153474955365665815858776536790749514576649321376947010477735454991632795538878330743928315791580753576871965503507429071858508995416175450542569515822522896430096504976376145188785989268066404126133796893072003362931190319707058584232939992951004837715785086415517853810312232101901797613201651747760373045047982378875392093462055690601581297451910766057561438978001224449787000205052444182986982914126790678751019687021090993212287714716682446783236734840725978768819760618056931912519395659594156964097217357333194593306965082538271705128817641549807791493773924681051942139207024882480621775888239915062082868419638241594198620241151524834717821480722345083429786601854290928281492479139496008559893352354671150850799621679892652404822257914243996088944269998514444136245667937187891040479438666864612590138813479018534716110722752770307646258568109723707037397532425882477877408430864800697530187947262646645765626942049206354227049222417449388522268010075926432977915538239106765252356864768006654260929835175565723981523697298901988908265238315293375559086639200320273335553808088693951103184151882616101835911623410200910103377777722212464854482943200767003014703605382313546342049099342339865393274381292315121539922194122118874259658439226819518975452768786223825522477602951294749655376428629953466594249896574517338228594800742140751432978696064319172480266865867249475707598190296771380829762875168300383267062907962604898512805276272700597582373665775034791220093607424591432250459226267999739122727134691933836486607092154001205431748761655887683051490404209358980246017526299831179469695057803966275098947811473375230374165338805784208064441543618035908949578853063767803673956455593296323470191911018822434288346831913725908536644288451086204568565246703325485820722257492463337930292643921488120313973261411893981844527442253292388157572379475923443363701766533067958910205285990710753124728197222421940939781808076886526014918008274280140707180152729305616141313743102166776765465819872142355818147288330910540093413851583564170102335213296505089765090784984488158119483337715542445240286027736197929537198355005874488810767322527397662312886370722021794818420743636258105211022849620951869444766568392637639555144749285865005672476126942049071457699612364165421313293979122871922076053435257393094577655398932828915325270592168332863475171699297105423306777159845937563439208280673913569949017001104850859669851614154067475797672672090114786243201922374174445318838907160096718599179162591736830638227474969492271228226625032513407869962396401574505065439876668998025755997066106379521289996687528755433583845711764448755965932882742204612599378030127460427330185005748134512496464956842339369440351811321501140359408360192264325517256163063239977244976042855267575779360191674844001750667432406695337419948293486761337519260240858222853878421332870965557574236257779241042377028621328883033423860475215113961506063468146206932442597718543783750500551764476550003516816903358617637600408686137262980299110952455866626425455609828504687416789569166874535201281098833786644314158715340042780790909461409717652755788421994824415914391211105415381749111642979973350806018212986342811464888603804128209298033761578657778512413209916775734509982113980566213181696490010385103171486520112021766528726344173283208530778707747382217448511537949072213530715188641882570385858370127612973199220542154507461830705186954555400522738781930431867465809351394477970660496389601231133955821613736100175031771011146578247015605290822706296071321775471353680688581327336263020318376373742510309096800593338042127512092843029049857227141103562844667593360589215898690388564959895165857400906081993072026930283560069061807299187219491061826729976834417998505968516729033855022780686872970135720173760376361278659069726609367021757383321134040228316712863554404405537532377459519899181683140127508589906660496686444864458594368566578566493848366400805820382026912230514270240533003164472026928304299209274679094777114749264888843897854020890889835867721206461080237895327405948317133324071067015675205220724349487959728274756979277422391303140535438884158348310987737367779549143638081468954922256747220616090567123395293953689917477822329407635119817800328514143459247160535437333183243765301648185552190598018488419058593911566430668645090287404791185445028133014067607006893098101159569137942421471487688307747421563980784300065884996355307462572176537817638391879734996694350233122963218713097797273298038790849744918512644437799029894789354036332725497889295382516110369438209965249417234986633517484208470385083311152862778237583670878992724577745555378900450468664931506901825297249824679889757760795483319084501918647665543504428212226735195395353583102319403071229287807997230054766326488501007403259073238659019985715366921535787240823311431621825733543976457462945131589908876349179324103156606127437643460331539250246235851279915072147723889936721114270874998551515860324611384463199673088973456701134167969440094813274272240873007522091722215460924198331272239285408050625758492522162315061797953555060068897933185885810126018666241081581783575153638476024518800745865893520281441228193306125162008015205947767189859652575348069027711185965611928013063806068665347935605334052299858917399175094948384097899737772406952579869327229099624823727235025347734026795545030872039484011452172344461648050697538685706072177361104497659121243031330615927928503916943109686082687731251124320071957021987203653128518326591968971519881731638743059560983298626423555286988347435695027304153677862510850456906011223690038352308201785224063941582969229049827290176962441624779800446657772756771965072303847392088275672750011472459665330993857952606043181202019990370473182292174941483732173773735263412901632865845176517962676661025466397227384082734332927715422133372519875294268520716989853181738732551505367247108874981677233169472187851840952328326962469102381509333100414422426059300941018126435544304722405706565629917138609617384393048935997694050750671098474372813728148374790374216476105057666156331834802660367021669059416165192075488724681379716761720192249466539503281934100188049631957968223936826418197522030126129903559713309742685200558792287150147501923358176228689922159276192527508040137449309525466519355021548224141144707829650401074060171300412900539958218939390883551083929072941139154749155782664657023640347801839801193382016085530060777551540919607472817612901778519387970501893277967220900711072661555956829555924861997843230987364731136129499229516736281976710206578409565590539453195301465450153610739504753395834244711170085335045852063081516007967166586492575509060693992889934327058759885000101310723159993821679532046839978939421044350162284025073161696373103340002776276876262029786250034717138640239230868567663434264802230358337258301797460455160191924429671289404269384245663805351940766537460804781603816954441905674820980333943751686381277186700234620137123568133678617079234043804432900956185576536841187697465707364368038164221560628060217555438933912599491673703197184429515365721853540544307700090089852584645568478370568414066798827340554637694245191520718038128564584568816132383233467604635513396485007861530524002150380830342504535262366332813700264761794659695811799984910416198627122906702459398975606672361357669803088388648599593057083509052073553492099907079862028133870081688549704116063858329979738832093979366032380306566284502696875136829782237634058441189666210489768556236062202001712983830368799139791492240286949438579831355934269163775614633276574739822215943067681713603234501775709059814617404906809242233733826072048732433990740140497361329317446493297163602907316979756338078041098949075375483878244462448589179224644247429749007642643017202722912440180325089158254067618880588029631882377724410925796187096375692033246113803499507161031203563653632082289766370791834713955543460309085757926657751046521350499406068022633053477322859264059564290976038672917093216707821451954764603981794435981554287098743990936998924137315468740382443729365192967803847480112925805772353511550724068324279063712204106504318150778137062507825515876973197685701820895449303846758834010967831886989337627896151718117003688179162108430808011432582066148592236178566297039472942312944338164366094582187181875076898503604621313497292191595512558525491720545393109488208249979094916002759896541098973034417478201598665356747426617512778782440411953600901741941492361233812080401576576116425085837375438937742377373376312612913892043717297965607864724462272819984967858962312080632415655149175622899235643125637779983540887063004807538496442639293167042927008465686904627955765575660299790721535604476817063533803388295816668706015703892908547865010501118773614762040894811662915443390552968455830962086302892049987363103565918419070576390472361881595994315514954119263499140688248097292790863405729097212795234054203539284215133351840800219131431013159059643218474214345982541898255344666663607542686865406256571511482441834976858669402580934525211111603562750860719242642022653242292299048562456278803249434467177282778390381767072631597259066831785081828197005060124102252938154721733073286715717739944691920501326148934438079393993613546575243650151590601476070550210160083719767742032442757943468214599333488229518787299352079277243333222581055237443727556173444003509186071581563535738313939755824431997080036406473491186274174598272239222248488608094657132861098598822865426508254605824514266982889562519444172343197286753308821781520310408202475619712706008169830202306915576059024154780147749240910538045005741686824794679587306324585711371092115243489692928825083745516135898024035144502082344173594716171547780562974748166700318009591875019040237504193624395094654182414758696775627350144156180124732907014776853610719024084950001378779919070966984755972621453612659848072867896125760249479216184456601583529811617880374138735175297335529535835876604108816287021675633357264840601931092958776516009528415754456320221662099323721189846657662467519332110806220004280851556094735979699709100390506472281457159948726776196195424445266841663180262882659258338535303881569725371788965878752078764692168153552484005826902109296772293479954563425478280381905429314937990372322184261025323922585186126048870738530512442006613007276300792349395074583599271747232831333010415765540488688691594785206322479721121004540468685378741907488474662873761051190464168588236656532243424725082966300420171718173950903477085452619665223737596546025997888852868034283000840696706735647397816292370488461045941293266148480905036756897957220322027465252818513735917817043025736337112142878714867589464803587142279063164124708161903136581431208398515082619154437092692879104918411473640351732676892391839156011027285840506506304612102993050056850187586474073827312057241972497560348740461065403955681813300119538879120224653106353654032436503323638842154795380037720306622583626564813375246159893967128814604599966778339447918739401714021847464160559002087736364360043641515848104163798247076703551292233173030756334961290053098891317155721775158986096932625580082394685657344262007303248699764468977913475838793306105483972315012134969366355635911512519378421010074518612209723301397744312414504753570380991150661205518532929633110848868263012901960743566350885640027201708537948269452541676490782006621722832528664791491491468383489794509270978348787886923244940770717219576054962477678574829300265860130225453526866200208318655685373770520779168699477232757579100829103414592202843336295940493202243307800517052294941688021074320459890910745392927467862299161729870065882093851877934188843827107051217451463198553358102398562700026214205070623701666309679098553479734147406078586120144064950208759938819724744524664088187501611233820461592752109543932171649596819217387195175500859679429828473252140231605911652670801837533253009338459555032600536319318690021465370410716083492424522263433864163616143067132292219548913491505345151796365024690745939304584744502837181538969133416940969465500610616585368576250577589588409046095683573376683223922872256355835337074583391995641908882670547068794036777291701851954435380410091327655861560098998124238804493567341712703464996372702963966000601272477162223325273563339436333414676698672194172839873744848096056066085416914550731008875799049881812605894920418867274241328631585270661792744506171688382924226690281100710358020525387403785604112077935486519353864015892038180838939481475425320038953243130381075538461954575477876517754917956691436110241343202686275373348798774047334983075407214046488194675424153477980542156284770794632143114285162131865228136978808976131316318120337008330620186383434700840090877287413664290292204103481299379181360103977129748195683146889332734425735805752143668880794999246191823592205738137394679668497169399426344682208726272554716158736361355452215527906677597268278326363758972298034237462021513121167128732232798531695774878496043659625353038348674901705785195594131699281706896085691693142932450199886601254226165501239781158604775684470596092275246795425475146771393743154767450128850683800688199159134053095072772558800363553307553373184762199711254595364129196915482590549267710513034085449963616334299824853732281737495933830214248015938975384586051213095028908412411854627888138042173785941085691558994677500581281937847264692858410918133870811239675972428929991089552382072370957912452527761837056581072471323539704145085438277929626439211967706881202386936986931710220395309699996409390467410509820573057170083928528824678061494843424589796877950022210160415489414115649751321258512635060719932733156822246292264121296221631301746176668624085580135531848703865719835447635377372104182384720748285386873113568483774611508603270606034476747719955278905453773036687437635532140366899890733124445210589319347515896730122009256997707090033238307219626809998009546692902416172870489794405548565517877309548918695277808901925938726448310432683364025960316584064779819919489697877484265364727399919842154990675409877717412996831885033811973103872877676157683817304628221106784896958534842747439702896787423963752042086739739327860892215450091149101610881534289056464709260116914745695864401237479558274813455594321290613437248642807990009277206449209510281899711686954197832956952109009478815994673525881255211808188206984000865767251218738078287687978318009288167577096792052632522574206711017829944239192547359418377795653887240029741600041071227987986810380132468997138647813875653670742216184909106222248914705427915449886153907824068582704491027159944144335739649567312420760660290752193186730316816720967362401138090693507316445648688376166674844908812917774645967498485823628351548224478248398172654258697213347324561361634514703838488861132131451095497551028949681191505884674960181055378155671130112174514669152081141314466018056016833750081810348876954698080173452362522506590459323078938223101244490269641066690170021284048112916281549355135884476028691205680163447962436918426919094124204664865469822889359748063498997215635505653727223945340698543114778318395315133678542072519715337371891065009365648490235150924725814645381057466332229119984763225242542290904862699238067034947072705242132843311279587172460714385892142472561415856709046365926517208072708216988977815830796587609981614220562949802730497820382182266940858307338995016981109060962887557251296913292362370502444945120937393633259870621036628113618760467146755066589056032831469075266504856238869437723312162882112583667396748136547728781852579595012027426997422162560172942998063400576729387670399464533293402728647334541339817375266736394309589542123867279920455035164492001168911558697976747365757501761960140727705814421322826768018441210162940859816406184767847822955977945893394054567789707483977084323936084560499544044420088171808896528424724184909679229125066307295285107051960672464119894949650476447401318682291551710217858043615524021317996694241565168364049685372524028396838500803909151314666515085487702976619348609755284477908728300940471720509892512888522990276085222630826215622147079513710494410057219851334063603623734005009842273414305627300199118850644802881374809204189009379615166030266121098542785800096063013816682895278426038933754957981504035974903690481026433269172872334513885966190196559087841838831761384551863445207386963509082511476300530677030609499290354613163415524965187105375382857618908241221747278478085252871354423509434002574306867706707009686017444609633862274332199180217892081021235814249607091425073976794654369625171602467191303036763305517824893949176069955327968419148946298184485161256603622569538222450101857633508198295491631885892496603615399763084022630296779113566136260768770211637660158767966807100561748642887159899869779742545165030753189615572923191333207925906986780904248952342489842259816434200160878048692404861630184717539679885089378422129323007568149941923369828618410968389650646562272216380920875971304342836368863696998438166893819113880763320924241112381600133760199398818341377521621900641170141779748157128570036347735548748753482586151662524004322583278052835023619141593190308501105607463833804732618200028220750125173585563877351476607292411190217567636866826066239046707652825140612057184816670178328812011994039214455491540867397531324145150354680698736844865764357270724853767041835522813180864925470132144116858803307480560524707289176476423856983461831291492915170936170378677189529010476913652335644108017999094534168706134836959564314902899294909016234897944807438228966141368910743274473373848472295397160182658336875348857189123593007141533404858765053575832985377239544974866162373334374106478970107056866007979040273675637766848258517710053889787373213303230292615480441754926412076574806882978208032209203600534857615390555781260525049922486785368166210974212881115264809313639719802740903774841858548051123990819025086846278078248331201270220301472617666682163538082268082724671052233953354222466609392156715979743990635322462246992935109907865924976563192282640342019644893201333232340587521754656255940493807163561320986501106218461091915048644710453155832421903149540995703174989478462857305144944504579206049453598592361689288454504802825325201145808490981454110357048459899325892607568389461205837838894451883904518457923037359511078938238250639465410834045701087653714265590995015097099534709486787008248640793107622465869861250956807978236372185861040236883397377617557211600942363309050823037669382092036603105304082640851488393298542955835999087790881392924003257934694772377520056159337957639877088127714603592950049645247979280594140544699678789170115842158622750338399714821700957139729817748650106212586121001416411030741620210148191539690976569404468267395865556416768323545075383046462413150062970464234643693692890660443528858736343690927127589645002574384438459113438048336704790142642405493750961265520497723077223726402991078535687999848546906364110563820666106136295536030380565412452433273576495728508026181414571515417423142158571867714268400397316215939731546641925973799552293272043121021224957002172581720153347551845933996953750136177846736950893246203836578643978419802625124073575112671964794885064864284564029736625439737775065886637900429912527173629716969047589502720498404729967328388550872573173031784551060820562151144965611917818348519877633331984600505682947452807031174664119589648407279468038885107661648904555010116821582873350866944026103930758508601501365744563033553680125040624326457290756999105011606033841558649403031286626058159062420990615837349491828955472854382902938354001090793743970135378205414328378539641541680414583709360603297942607134030447223065396067879654769144650647908686499259251035603721397636432947058699419825021874321872427758595445887496183253983872315817917609973111543636426863550535571937061036026422691771454515292084287514740840634781493608808082326710030492803804179980391082790948393825531719374111571623189818074183326774267887434552512714366089029591761603100932277507116379104277234609332825751555296059095399616091852673462772768242620744897775650243700196866368966000115580686076491616886822820792742002169470598792947488827912828503897103184854565581597466606974527578047720338628355764268500985351394350711728064852918112814638807259847785686687810860214635403149144171748463379020611600747763991238932234305843904157862151215118029194010173636662698778232255993578991473730585551768716576371081550564694883176854435353172766585285739976331955029323234904592161650159435047688191682955860918609099559463028291901706793819207623436760280544318823358202709675755793806279623972107056448127263235491542537995365305596129469139669344345073478637522553002232011485387439368823405884710044434370489283343401792982184613683931827675579701994844759656639897103426069860568173226906241306996566032840935596559509046865697168376500906179147238245158898002811234451936093744503774650953582731459849469969927116226356277487560454515553633150983721225672441898135754696967257765161574309696561087839756785245673163860685955822286138618906064562626744438384246904420603593360402729244176228086098077760418237789552695107190048598885532116379964284654719226726814952112267183420165030020933795357757050274285549053648569374462051150219546675645989121950175329374993280463416890450933499775511236803555495066631360603455443829397819367591976733526616533165933871555469649432814385864256826952651419730809944983654318263902509419636392119025640850811984335143406629190104421813784881733020678217441672311815654101202145943351795151469775055587515927656208671231660831031356916307125422915164968323430149039608176761223625846969234301491979078653122838552651958094736447900173428245435241483177192079223937514077467015345533864276965967681958270797219107926760813360272598967825012127705466531617192090673975428713439814292910430286618544479024827658025489309959965979007577301262578699406606734458993483591935082545779446827715307835251561936594037110145651698226805006132037826172622174901887875708825218695505728747883195774059367843467992446388239311517196725181156975103622362601896348714834116075350132501400804638064110108864287056957031593021204669063896144487103070284583939577511579427791687118848215176303749462362723887052288253910342186130568166348124035167690782811425794076448183630696723316593424745097399028161733059523318103990360767956393200555286999556039128885839332900910096278785504101395096161548558552372634024078618281462140349428627837560277656589546954948999336379294507896062196456499017028503227729198660350762155947804478557263117145085356735545254101472812999578373610509134243125006917000163479333958902556353119932109135144108667124849289472562867635048568673864378482436836266628553469958338455361864639656689124495925134777141146315518444465238874254565854669628350050252998741085990327908199532882538882852610187271244747383230850021862209267588296648505257391562304540795882839094567186357079203081870374625179652914610876101434795879983223154882298971536647501505539189512917527105308312428864495707181520113092606038230596366053631267801023417279444796248078948595321021673834710158409674725148782636061275968516725509122218257256680029801126777846404218949288216861262478760579474668040350670406908309389019958329791423183519204754208087365706749080835790656582910279073045089479917141116095577723126108822821630369888123812101293253979124576656268340949489316682968787076869561126510663530631399789378782603155191050957142731626487270260510168591619049014767207545086133803717817649183156990757105161733665545186590652350856933293711281741938245335650025390949112819427297022674443464180260987004619400463225649614240500657514499519696790331732070998995918228856431278030859939715359770685094151551478560888184465631463416097674387787300818187897260227290169376694781641077022356624295276462127769829417485574775763294134147488401195730424268343161998876931077013364500810717781050067025768692028589958351537081092014851150343835187538894300721942018337971312595964102111888975391248837214420188694038352038168170981320431922499343602282062721634945130269941420239444097326702207427437981164008278571264467097805541174325595518616473654939707243449197121015401637712091574684065956447881023383276729197905993011041912605763087555142960034616086270113507821712583530579112108930997556883829715749515023591364142025109313580419044755259120920960496674109233932752660343766449053560029964435901563785746479003082054389425396667023877939232090528881213724991414120841009676506099733458810551149609700321006453294969931503481080120640565708684216357574413965537695216671543718884887510697722794656462049473488952417199151815454707982421175852604139512480281123937508163987288900945301941402553679008752961067877594316018942904326334313653359533651989237915163473512972652011633320208503374993114076334349045357383492053830860042275146950696217790351891814144451794684139514791407390543349385314742471651660208117389163987361330481251882444062146569042393716794499798599298173362710458051080841054310437661153614488926237441998427839101605205837232314579588613506286228508503361323903666975276484793511152311848243850484360934216684113024734938378616981409996150573284761580846674317021159908060582561069515428262679670897068781445673579443093971716388898095136138855472282746105538845298137549463733950097633381802164883766719346272790145481788537266484718179076502371811827855098969973004069801644314371658690979203050954303765921000912625973288133123731163069678246210826573543632853197981335773588619484506835575454542726020114931929283898308112057196512939910923578132001340124376558171947596832064941079307299905255455554523829293352698921069964941412426264367988843052573384277136862071024516352470572831272553086133343948405172816593818752365600342052184974637235578132460795859336516676050956674588273953398699795111422467118083033766607664108588867168130414730813118602229283005288221667153065833583909166063649752401498331896362359260232969566085395670831715508781236326594879616977885913664499557429905780597147370163007588284149594608406195915568502580328703825434575469463804585289693656635716284729920091220101786353438598978705611092268192574354911164859708618267686416129552774681729929732471585358407223719260028054328524307651239946468791700845070647986460970456898580563743187130422229197717241600280723041417213372498891757743552613079047748314518411516444931248825327149158334589824578764079358640944882830272258830654940669251617857905218618071939375839017989713577146393738683491868149172025442898278861029770789182949079968748998000664715366490969728522674928649105152337633838159709500802884816318400235768004240021033839064095333864195903376908347051782739849106655674475777159111746691846830388479240652334633395869386038083792848092516105702151722257912736297000588748515080624583921794509859797000884987292303392477898809512051351780186351422716845705693359140051750410181413651093288072469773987889659701562003847596169592985789169362649172014762064891573048554676528157072433925375111957034778132975128798482235632037560591829687454094219479877662659865864116239540117085533704896099516157296806596037231974381189978200302479246629459644797469740506287613543625469594912675674991561062319159313916833721091253599650166248500736359206706054790772571039337243559125199991399237469068215066725364276538025982731773577671876048374833236430366136491176653612047685397625538409219178311315296208977495331976575229045053392478634953410168480029323832548197049297532174449906768610036927204114342182353783333819848926288621126473400362345912332143299541626975628656615186540399792603428572948143030924127485191165138260606112895938944455041909745535122592891507669298929949940476012211260941139943573121525680920102554261237355213013411656908368499458129198194950071304169134873256496956045829507238788022127041770897993166317353040242249024927869864107163257216480319470832542676454021981707599382587067661411294284024804017515480149369487853754720367967969014912303367220451699081714143793761546340475662828452693325511742411597943408968704352047800513884894904055195386212514515836316978009252700832104943530763470861011162901593090095208058914061194638024517748090072520250936286793937277548320665580061909071353759928063848071062998118370012299620605615200987289451168777099167845293630761844871011234434105832642829326122764153892674119603806044489335415619072311181150357787296396633157124045120689337854887084631296569030583505988169823786237860319525975736644935273751205422412508370041687587626168403106231796953796439072655290215659550611863308641498700251245492443267059233645785416908833804711074284224049309516330006871372782924808480184154094539492785678060468997935379859096955737680584479236724404792662936541032605951876040760219478353494613425745764729200251834908773296855819721211836255796338505125928240983027405197747262387094012170427466216714106319712366872881809837001015434200687305343523048210382767731619617077800374661125193488720658437801813175152857349820623629843300975071303051391490362802447508810078284789265841213910113894359315212719445573211130797847515039202665520923566123341630459027252392740090132826981218064794543443624403941632738926223125384675165179865247923031174198019200242769027156733364777717772908936557169095810979934205817074048660560837876151474429407760823011948850522971232525495251532347528866950729465737139620100469425711362122549176057736620258065372158749141680658076681212889394159258303946553043605105985554183986593831141910426035428357408029937512684176057100072218838571408572784911278479347218376870674115211067759931076756571097747490995623766695021148792503496599033497287660285100873339895263991484842808878087082537053359463274942280813478064936027902258102775986266164957632833370980933782513832205423984335074060247634268153104393918357521270004205790422125696961972611353320476566561463256800777501025172966732350078987470459443636106306233245022552852592282195057228800180412190211980945822509139756195544262221229320348544933856119241506115928867854334688420666924325447244580306775670459226720802946306319657295675212603297369687086903313817568420918569107438631289829384890733199014655137146623911103986120099465050667761412271059310394903093546010775364185481203344362303863741117709742702952998344247797615156353243910057063169902456201583686716441197197774923442552333146132304828515569415763243314912453352074709175183378201111162588811331426609180202524779478839398763228990479874318829322561598292271631879541161386302811635303578559425097761921697050450318384175285497501698501305937464363423550849011899734319367062088110032612639202485038274412377938332245559279389005352993750824886388491313438602297224262203472359560393025460559785415542348218794194827245989336786755085475911902452994228221151040428469059664362708288348750493157159902133804947033384981971988107719809977687026968294272861363803133128215174777934245740735236039828887390832534472031839596165718384754438763331728795721009030569953954036977972694651584831192724940291171800710536369319232757889768218203879606604860511168173592916097691444155160511631510777319585317029569124935454841443176999990441311075732370857374478348637721725213247896283779578406894073813170125975710823387446306967948790081300214302699315554272229238978980173839666266167034080313825953027275473404440827582815964175773863349968815554322828434179648802349075367736061686313925832823003080330803650003766245171273305994734389080976762130065895300328474446502320178333462553010247290675184199986749340180121095111468202794355511157961603550126769433309716381748124888483503605552208546733345420862198054666654456549706249809641072004301150466596240834325207724962812269911286807641850356063010693737993801576127489692653055847770996185173626705681715887652464752200433285935440749551276487112816045875943724948104783749334469823889061625735042383047875689604193650219829582938836839403338273769943718152427650595534542586073189344866655972104181342570838814756082079776074383844030169698524166802189882858459963109043770123170372358830399306999717075991335581576482115577740984898872241537620471724813519327175651338410262948186109530050870199124503779365928666470605185413616358487860648585804452796253292973057392591851790602396985356478387812523394006706505984867510051983159837052647666514529604729296051608559260533934234949499830334528572540059483405948533746788016956636679430522742749145956376578654263959665051209448017311174613343738556937818886851462639696014208937620614533641951156623131860348222921838391328908137063250431554415208269709943889392261516429245930932946997528921118441916251241444427395665082602607543833475658390804472309019766880204347384408574357509517844995146295959640044954272178640546392117223625847592829324793801413458754998267772869217196652474961130442762241811982153767348677374547079491132797814938867285296336899305552312074323090099448747272230778977961699605030481662318920776493591812786606209180120694551167021320971491528937506881472961706421106606893594356233176927264248303952325486962396095345549931458321195534756454588729474678324028037560013906474419466835916064736503867510170112990065755921540259388451172688471828784661328819751314672914803545676707526243522309040209638405495002041695666562023629849888409396017585609932123697316859945269716973289550683475686137796733364674398321804905597920192282016676513855461990997190578770270847455139731742346067296068198706480171013675027678728475964922618188759328755400208578848366538289568965000203493721534409111648725371106911800363063589768256805351857109885168296051353824886894942646166418002475049111147951707435490838554498131412875948981777229821235719593186104629923348287411906292024959564986357081137431063483238280232954204816402395194792122549446093044253613520804855478320599900670928779721999867086821496177291751983206340335986125127371267596812662003223732854394159044818241145063257049952139024338428043510375869477390267873239709006425700890645913677045276800203276578332004770470233254019308269468264492684230426198102101474382968453945127479747872709523799847684015148620021524881758607136882707090026346267076024941923637122715948954471522458738552685514517723104618391565730887807411630399100490455978710656421668756164972328580868965034171978557821722768127783414742862692427581505551445933883185406994109816309554957177397866489150899718835792465356548160205718586715696354990912770871779823966337102581899221240309248645750037492844235860259970735749524080759717018644291149746318532750815112480323037768745327685655221687152791587696068291619321462800598419087057385468446979401209835786263975166982423172683930098573368646675882818939835719353856932057228283813770981558480326856865830604963668266076215829912189076363045944295129468670085490008273905985210466713850618806185826547160381096143573882044424720710031407154086606698196372966391389115571142687187350179445988298033053859468528984448698187132648811801857101333821476497175131500671095133137206423056321353940479182813528556820220146963978506914456318278559877611975197202469529132035961766697133867445502957386596750482149179685466773094364990923749239799946518589716045539514110234657510883661725129311733426746838362398974509960502926918746052178727979064795239303921669727442933093723710810319083445990812434090485426022374375509341828024006530315725848511138433872163012581319784892552647210347720461678828543605138232485252943142281090903953733699224146726199587039364475271089046905233349166399517511118069859050220027149423473808493211344246385974404754614099860322979044357441069804646029965516292539095324691790367099364144770714394517735534265556687118740314111487131637600407887156635986716931653314382260259512047870403357251485593696889946092847695187217455168894694689135011479592578639262729090572116009384654504356917318768181082131953296564188811442437355816140574550530682008900942898759259236914096986257555420016010276143438988434940341209682659794889903961047138931708375033329058807153490701934116972493214105546601616715061772719661133424490607099404107700430920841913738555415401603069931046218321215373828009847276866234590209508386205568742519580802325772209829316889303558892014593991612750851109299098407020668082247132660776256532133798936654477038268376653811744591525371955468114396162007007217134653749944263803042079245343812369418618013027891974613095953917982812896780706222652262737951680299585971256286692739068673199099996402160486313781714957130902800018981231571860422028636701479373001243298344813852567205576785896773895921708831828518219214415566591841992247523152869886176094075565056810860771967854309102293826805177508102344022453780354312755017112614819295443008283373683490905774836935289553617980164670013330850737736662984114887801747061455126804000618378567348786721012170196781324025791856722302348740888526633549671836584486706565136174073888414810616085329197101729696440276298120462825636401936117192055893890322538821637443835549335821313190013997604049414887145086795535577829281876707389497160910194430893574627219704517338735799302426623352115495387045314143954706910744345824387044807790939481347463291339131827751877361906756796401438200692242643075641273339381155897226554888053764212739915835617423794504031920513140152670705641185666766058448515637917142829238807566831676358036772151676793791821816784633184304748124530271707607287598238842880717743968068850524644915498714376404884599716144265654564926571953263328883908784554100533249613118757883197460469400307792350753141549331253436995130892978869799814349221533869536645355718270059418200114627684989614147288300035062660180722090478139070534998063181632968730783964655513230465574822755175020280691822543849645811538951854562310463261924522870246969880757005999258204059986813754641993189665818364010221360917465260767179813769229404744023897534567380137730282472645199573057270550398836863865645806130343656054160023090786387055498168296296225851676787843649009156366847200197499820445549208793262931391630554098594710789029917757305053640910477974315927252602520054217579484735698267479516929343791026716897514417762810827957412278771207237357797734511107966811194358609658647318510530055035695287475959159604816137610685853849434558056077250351411950622712951281220577927236069537338312344345172207381217390325721220068674787799636702393681021677041748053055392109664427263881006671282273310600238158981713453746786651120574614247889958016215144892236510660357832883321201411323568631572939479523785823509803376797634083020354111091506540346460083345175034285025595732923583223022768309242051302684078370301886956563930631422010145229808723262967359597014516923857748346938631025147906975791981200661775764271375431501723808266954867020378743557533967174674222458843597100289574624313228661104753947978076074189071421396387773761033359212139760533181763369400967039066820734468523047357671284973804135900658251493119400570572435844129944688727336258461775729573112917858706240622706410054810464084293221268071853120458798858546005258518944876146998539446356709520567625647351120999392507769543138097383452188797938884996780717341761720652218869394331325164334155090730160750065862094800352708833879359775364130321657676247180680687926116098039486500693552534853825884620978582838261014058662996422471050401991324564285947669651203371217366489046844950229317307947750002278943687404371895853730719208216801449656188721777493061651520314034606893129320499289272708393008850909559480556956871864876655095954916628680414862313527668917841644127121697946348938648760297193303397967452669195260691007388383054133113051240137048105695084917452786974829284067328907554657082253696972076919490231771344162891297470650851486337962009472761911424941766029494975062358797218601145773992079806203633714076326210009698646501174016744828411610060302056817200531479548491046011626732010676070597886898191339252378724977749781206299577782378778028344142739802923359645829825943688042005145345447259103641938862808541063868353756550384599840366951627199442067841618400712919368417923751176179654586446834567008537958762460275576031405393430737225478327398970941419475658747802114852079487792928592085366090141042278510860241102730348956439880009027060205316721507609750381754120827486348800551565939843564328697164210397557393647719019793372848685334956619345651685040207808079750676780500367720120682235952067965945589765583710018765120193623572105626715345026519348759074149989569299770458476520893797783976155307641378794378496538615919289491867328334669914068534521160921112036338090505970251607420444029210490214173239788914239323275490699402903144305550788744706956289592341236001438115423969159101916872642423826737879573249169568590612816717531735662536334741064494332378299514372933423257071624616562502069780482806435188769128956429982477119424089711045076229642211623839392594423490911352333578619129810741003343472085224339637500791334925307220477757615158222696032649436152042960399105288294806611081859826540112722864833833884627475468145448489942223577017585148302078501346460500412677319810688367487367166639166797997100645336199007044398818477941207058409314953302937969120627532014302652072760237695807887153622220170481362408650986720550897733140197270258036173030142176763363152295790704406830378286517274201603193143272754582154731665338255896288307985151073212904993009892436497848690186667153056299303623009401335041975981077246431461735710887614214962043311141508893083020459696809184871767396614981272786567760868120146275506521811022197926350903528635330381984406085921906375635169485501405910663074739580042539123050343891186288811322161493856220492170060026422735799706554531692822284485296603399103181620722103393512991063900659070823673779436801897340819719357018245325849461957666882080433226549146844118075827133918450872586683656631382179887695536919922830486192487045831879895900173580512632995679687046823720870849815662993691245533299094652436521363691857039335325171045085247241631664690983391806107695615140307669560079826405349566636565090691141970415808045483698714890426727081564161192155361816035514319231177038125536808307499693275809865823587085855468832439148035062340308005228697473869687011624394967261684433826429653960180263463484427325871508185116388593288874374886272319355515902720619601912661388957663328116844954204694683731535709207833853661913791647486346339939247817154971529811118907042625856013475387326950756108021792282807636764066744633963131377425341327752833852870113293869675911470907410927982192876973489858953926142979707432781124550165019473514871008668183864014803288287718634078947032977551964412570326704464207944170003957646828154473561541203431662512478462946151712478704861894371578016829457631809993892572805913609553149223264367854395711125730731904686465820931598618328784427832770251655711968464208365725794843224453814591515407945869512379848997928426290273739730771579123778280228535889493568565936674121534833078728444413739898690579249830231877663931575415591930394651854574387337769182757508207218255354983126462476249868076245206527208671829708708204440877975422229031916310731106277583419031650156543907257977614033403929586495925222409027298855291210810301670536633198841564748877950463061065830770567149946601009674376040845191973405016561002097760995311594309104375737599850692383324167337230497740765541776235344813241945405416376087669170040122532261527957152049882609742125225443176739801164089645501871550569918987389229337064623444419545029149447712204317795337605745037663958450542815047933597187062368032073619427037331720907006448216628981807537330771207011568656147146641510074028443979617565347320174529501939952794081584951987176079543881454272129338568851828110270184224116070569491808995617989023255451832071473031460938764146962677564493172484112845968140337758338931451044634569078217133351001619070898915761285719346415808849587308786328312524672184668504584368024104535275735892275780548122019561522978157934341117675084544733348852927852088830814867498121228232945907491623317782772125377881846086972130214003267344721244942030972314996181772240335823321118161247658287917003795291113219123335285791713604572851160689519583872469378776179298631901825987108729817309034161272202732980564216280751226483498671747415092072614873422725937207136917631238294335330241999083460667106792672835068481175792833399507681701059278685545387529577382141820918258304208601190443142648511433907297661512529522227505257642704039232430078182841726634165199952636219845513524663657024593289432838424540788018538150369664972600917279633509098005578958842397120913900545864500407241811593595353574585972821145774407603473608391026073886131608177536362485233977623946524695524920730629109451337798540794738043915616965040324741141231613948218193311816585773214210955481151039455377733060760338502090430439567584140785453353164354721272567005101048989161318333420858345788631212272087682459577498706476646136965750046349533645902977203058068282490452605477634649709932247700984534451928219799416109922499662886770469956901169259718957810705130413350228984901620789967298278955587394852124561426847703408429862674380131893945756036563932497022542800359796600769419989517338043525674397611675377273878990914556675511206836886016944055015295040158064178566215838122367307526060219748230450647094518575876439236608267648433528491680612697045951325298938031019351785137787674374055199394786417064361196639830304997510362989706842369977811177113279267311843126594457793921129299585365463067800048777570521922312044304458199610102069430317391276038826014189060929067178375479558945102848105567306451381999852432330917269258426586271809580987220193195705559170778319856585352398173160177576827169929113639012035269267179952649102579788469983673011752956903459066204855949407705601140636953669264184916732402152967309007519616684194054543324760268981505907135389489986858594849738517925184668324462495233095682188649181770026216854300569936682079006985845157282635092063243008457163723279477092354381330707482658476822962464561730143946513332504478816899344372100037922718030505737556510504119987838325144088218334901999566554433746013421199789099671101669095457040397870090514134932528641712154097158415783318459237869385210168506601344759731927508697649511442745945740257771597980001049841531217122526728029585094592123377560501219531972539924610876626454231786965485065790660085807389628116027039304043347943772600506234852302828217139045155079202958653650461798219550949687802984260909729458824978881666950622905196700434240646736627490898809494695079740349166476348103857566491927866903226993100080541944740950618738248587401689235422215766375713377746755237584869821912485928528523738423462372296590329056420697888796253277081002582801290278788711054494577287537617197251620278944170244187481415850747041414722172360412459316019286327901381936460399868204061758639107504454656763832790496838303232314172334181651041405009846552352121508291413600722197681546970722957766390210090778184872350136086684031896530116883881914021066558086610295847360694103665195316898353433824648975020075449499664796370563105959065017631423218134552823270985156552354471510753185138048145577265403521408483152867353444656155569304898191704386137992526309154023275045732336616982549202971189022763859870236474471844773000079582772696225598711127979265844207062910070847460485246358177716119397286886331648860051529622835488933833354295215436408969277238124522723787046448171141189895103138005367810716197545853133614996646294301165676994256525757796708667659482186708459775926382281847004848363571776250834773716113527393319917308376407065225362895568742425418995510423340164471270981749708588913307198842185517041854431852376197551530040485125001305508933183737900301638586255592211366773813535022354271307526593946213991126126282386593914861143416378296003272094378565867499879555712053425753933430246552924900453744173091343341932539128562377894068808654759733117085382943052737368038620137476001976430912676561849162593226819208236887949975186024489610965862741827917866683690105025180056668229686958920166919141099647429966806231647571525179072110023244147279109757854918644434106368202368638134445593977746681777611351383131095334613391940365992037464846270283043040436257619349419433245622295659583324523550068953325076384005988650209395323825943335028537781314793778131835616564421955089220599998418138283555244209252507058641948577883573625110954907184640512399000812999646138449481205525817144612404474123168412003440134848685821579443601200971959933887775078513577075580798928760007139943376182540560129881639530246774628834341480486757088131453744434091685587740585481079336980512527563361563286943148757068905744512683290555455801096633379533083066531796272907353221320375290886002270009868359575288966976861676201294109412658906115563323431659095052322473530314641315541134775403455571117950244675400305729031368110311293724716771778410968862813865030732128930765336673743367807775523316003862668362364162644464514521198847989908574976122531996625575971848119612225168741650930796701723431693335616109525867402094205909240677828520148874243215779015003172732854299615795091189859558577376334746773831436816158076870378851147647949004838084553572490116308110597705608833396921693211649028269852513477063039125822415484841636117709006456550794464641085839658209849078059498104856472597076694504281389954503121935126908894132027938829454214140162278228161854336124956109217677145728067456117361202269551148086981079720571274920809426080833433133535163424718473938080015667053499500793375148491929601769872795780129721257324175762952759607389631955645428699923409727720953609801752469164738320483146724686549189023358439043013552109668423593302052723735916690411342606702272467715520083991080185244170820329253103016731084589744124901140495855332690852129193581839784362291851680811464371084578317773960377708878990306145988969963094020772422261558073117110567812093896179983148661175120173463676508768737210059010657072768905833449564918223165494415202241964497106802170352554677567668938375065732205012835664520565948880602953113405319039503326776075573838857777081940508416968559185934826519164883457468137837812118302225638708629097765982288687541495621946061719394033239904672635762143332316767554131383187925853804079634259132712747343141892211828486733343603047632768777521792471172336337034636152561153494818887548754816667082289741337558643746092745065731956982282176182798981661908376199580561607576903513548173445168181063382387422843284020939562457710506756931750972446732793546372855616942349808898769384734470149804306286106782224861511638665249104645118683482422139984811571927749387148243359789172026157836921826378513269978847237662311864077776996614851118041919148880531826641926253764080448012430948330525501835202047411967973941212099656683202649495629888729866876996116136611540743389402480485124481521960558140490766355422667657286358910326291319526615299700223767156265673971225604249967657725428258720317502413212597254986772367415134896589399262580058631776341327037320543588965333431961737516139873791709797318230386988945688070791201294575307810098627693905435036208005294621597873719075831556179867947820849212126125410426926929997203234499324450431361426712840119193271069620951126428796893722971268798040254816829258251624139173213433534174507855480421886258190368095996386580231849005845235198011536350789355526897432407455469921459584290310301393447739722204452162347094989325013194626779913416384889170636393892668025804018183201942904664303117060633574595867526601450622019363145230984851852830323916824131627852104093869074922721912246801650982736149913710949036313238456253831656407010925309494101661176106090679765821967544371957645390067754737013390511248970795389688661524040908376955432494125990041653188948212958286544973173847783226094473759626104935064132933406201976427574645449787594955922152531035052010394319235881069374362286015650594939489876240714637413589632197616011113132851621276728452994142622829940294719106038705280756840781747603521788508684455891781634843895174638740175541199379947782041603768151703892907183073453423924148781987868836914131032719844803992903205880255228917786038451861803400390169035645153830626334119608150899950116015436546579204897505494058583605876829815119479926487873936365951145439317789216043247962544739351831365139103343463628860453063346178332339448748124179456370337390134378811772491649281157811579571230959650436672988869181293849862917019005293936114450551283437857376829936994735382000608137954591227852442884905512990409270080485708659212526728875411447268885236596024852132428384200782914770776510708775078347318674479506354384914670083618110880754133075189911962610691677136471767669968329056842555270658245980518575118093862856175491635354686194115245183555268987401099365607036948781495340132052137303684852621489245293509139205175265048610403704603972177154706201000310417900721935490928720273740205047474593946244936504266083862739871781236253109057699007166771020058395488853488849243995237675517946772870132959558476587828542474162440050607419610522096124016152865977512648473403682370481287889956395441148946785665466860512915041882365904975908994333507671395301617355658433824414146395724783319203154614993458601315655147692079787667063883188991362686336497264885348399753563123594572930184494886216089149138100221805616656425570175492002230303331956676075871133203753978862553296790516405336934085815778554372525661281469973095334856057654087093754744305266835103378309492451736296766837076704198705477360805877052068862666155909858763749132584017494804536817012603034189361335162904160057358380506402003803837098971413892555995988996435996251951630906963261752354608349081249954245778027042939075738651277057994595243706313720209811889499433135717722720694819964579496577647171902503431665554504828828958341248373503406625026925737411515226310060829030524692340761886181493412836145636114116297976815054970702055829444496265025829121397644874064957784871123590329410808275142121115308681108495873290149960074674921499167422353464313385101251556014959521607239138130776885110738733945655724844139440914698018863116383203276476049256617809094512299030135171841302601197426995024122747967031353488812569115167929617741186601250165524181778770264859712400791945894941484433901168344506629175594071428648883761102988691799253205805190056845152748770685654475481616015648294113995285770758078873439771974090618417546997595717813440278899397469307520288108252987912813081715567961414236873578324087858814132784766705566514334900933893469109155853968641926652109351777351590401126337906527337442260694695360189947747004213301127743773298062403513503125945453874469240859168487411479836513837452847266724127237372576962552902273473088788611460853883516459069875612344663738374458411609211012532534348061692677335564920444245792628155041571966871805503247464137539833507608100567825459891461807866396097444199478605381580684307647788685094733477591213283937154380423881176746289366503311795246704691645305455765280053323493440062774924684789347790952036742407505987811562760736849387553954006084401024104039912908880830537688299826562505482874271297603929822201157153466392640577550040446966555472619546965499569908227511808422529240683674596688732316430282668379223357577066892730370327729129449331416754983815530168940694323003317065684130679373382850800258096539583953554883976440861460103095559853164602072709698513030405026629171416110481618534692963942990868221206649938831979563246381204323997802740622557828012445727754862946915442008320363894394779077539205968471363397500401955498602003086795186615639202136226431516017769833575192119513660944790379743453244911500941643412392974820297135370421903793597480539545355590389525948707890398914955185641401047742901275096545271778374228139459801323094448618128555574810663819944715190736934377319074274721247821931927299207677594996532208420123368660309833682224849929990476627827871693989958669288526283517113628120419381007115915502949551605242818674597522623925365439399103449372692076250485870351826009592320223310296616729545997513923158370902389697559135463934025041590263097103003018810972288290629955157721437636413029900541068659412728529599400812993436984684504721454745628054027406938657326614855239544191100231337592457509458387537935781077320669414395800702630355076386673389606664639785076654239714881300252102969241682460280499329559149438607588891223649665922331492736051674636228149371149954089965107987858591157326731200308294103373120208946610860986016320106767591192104787794179148362877516746210692195745205583195838949071966263882778988093815809907988234327002332046845474127857636658138466633197807117184726511696543218109186609167836303998656393578818410438558671327541223555126061372994931181370019540797589536687069315925952546222861026651464838506221962719516937838146059545727368114452698510447877065254912186158162115734634405456517929497925146995106238997927304011537006682335165114510333394946254978537026868667435328238424666597634097389631541090426523173476656275799179416484386128582966017111436649950006127133845515527216204388711650081179502204975379225987785293046068084630791227727622638878539082717738492328287170956659899480122096620840199297506626422499015528083180003464513321062024368543057642990787212896134740815299502595493622544694706120013999951553624167631967765394894693318149625038303664956467923616200113252094656742175535754611444288821620079151665422554423076519018019339553648343023043828855742599725162095386666372435851749182758553852644764705092451336039485663753385166267131589330181140038782120946168235299268291695425801223628309174791921997535536647615758171156018599835699561678181643366875245002727083603383651527160932419701715169323789580676349654106234598292581358280414002970775955199290286457908833371840122187416353045099744236089000166477751797000785687513468278256393986658961101676912378552110663181846739829516254447953314018017943622096281779571131799855225424019948463233463993239461595379514908575028941805195688325099966275808448650457020319519466341064455550629797608534271422361503738367562771863200837873690822244306753537730307578999004709417113516979868113456352610612538587404485717443078817975984155569938414672043953998874992084792983467582893411639685181255907214296569742444907553605915131581638278019066041288370246765993925432369249419317266593063031325234523077095475651372560826995232191352265194138207990091576607580776495831450441284845620787033161157084289416431061693800632068953172316227746620047318411254073749934351789134936981026792074480411466703868776177165604636551051343073846582393921921006916858168696972099018646801089444676577529982050976352422828104618596159122121011965152384259092698380809353842918243030788933617453451300030081524832115592577431214276521941607298860206192393799625291022810007660221730058107621983087817043341032630889177904138979089457573746137216282986003343870308781794510437605866448152220765177208525297646572515323092180256887375700715077773106418784058931233231848081572514199886789657673508666917047971252635407638566092917086240618802484819892539013068462009618017904381174469292662162751041164346490166457494842467651225794902229860238465564799603870391562847620672563042364166320639119078014904977037105410915270084148886209910214036734307246708324574044911818921558017781974291094882059218587442355384036602439362494865031551641787992800327206776591341360414070626899285467085825260104976957025477176542123668081323005640932102352049767094149262214697252264124374484638005084725009562332025261201487792047992496484106603222255109044070904877688274010146276629273124366664265394358331764182327917743881905805012644189429927754256279133540377595744397841131177230312892458201224916073160312237275221365084823125315296461803027206385484352859909019764895675685540659022683382220668469431994421617845370598645621175947605933022990366359059021991040044476318545641962533588899563876905797320283858706238229601994102835564786177378301093990333583104737043104377197901832654626266854851562560931126501028879134013264539637845416326456979833022305987104822443054350635220681147135977886575645299620905787673147584963576906989667471825143316451835684435112732563784095099977198487477483537492786027453899245619577970056652131043665421258079110296112100862099649415785173743055216801058607430968208228634928309198826782784126555479191033740453515668508067439211098914847827930571562737392707741051539223278877881326222815344603186761429042588642438872066647783674739227661943855930106566351641793197530552205266665219272504399992842523630471555391403964537438223234984937146054210137192176886697039624307892610237513542179440034016458497630435041485373019841647666575049682003985138724468574098256153702783190343645061172797568836052070404647620453948837131233462331441006093690808960116399749190967114516385366794144441157421662237180370363002083812673916483256754439752719106061027184205191333142191317864310607104563511175160712714718814710871259338785405832909866104624190440855529898537911107996044978635181531492084850378024937852565211964114325532379388590584762169528631461080338609822346064878768317036816177841855414382690168249590436947007458422057943491723104374345201429241207921897636725889485317913042629260284080744189112960014993398807628592873719504458725131035322308388917585969169232403705451924500499589677154486495416426789563992462821802490254290975015124197221284193568253105942644287379806691146525685954381545751701988446506267526786490144886202328980298360007492953500706651826966172221408689544398351926870286028059026776411999927933857012523092203748810161669771749655089568911058125211857053618772789922822441786648296577212146588064030702374532532841405299945473668186090025643454935285870496127498674988270622831047594037486259266863770095375845184911383180775121490953906885588669251112421386070531206121596853226565635986026155378765108884050755426780713809443364097077377107224035488955693978215976546723637377532929838033542301470347595961527880912464741705404040324753379581254782592853463921899613940554732800843793859825266247421434781196605454621722847712493246248534793589175372974219272189434632482614888555023628067261688988557966701185573663143349630824748665277399619364109636431349919019986604378272788237571688376355963070347451949194962637518782328325028715314425677475069038077050196550888986206061033675260895929897745684579916241666944266016734901626639435665604425378839238245976866186018553936926653149793679992872094565460954435388890319425202582364289596691257842806918930587022181178923492425347246096975025675468274939424628320570548055822002981320271426961340811286500611880719331358309384914399617548562765520623262916289057637349842600337219680614615585259421062992872248730164883470268867815429350721467795578481050638625449753915727265292755892512357438466844439712358754483722069305713515171643884170584969144789522891269501183852195680128523175609843845832316546211178808899241550503091864501140965226409902234986170152565386315197533070941004925505929723679871035130116135134166712820630306531383521282280418280265561287959414335197651297784684960135941099782667534156548642850077610684841908798582107588169514667481196577498094331951615058119446553346444547122740078332193568567383071076273812541015492514482386462860057901299284788813151495393610377877396626670917128042416663867658721662068808239239940536774400349457104295612361215840954180288135049772910174608410000947446484851500153893380879130841729109831102928361578790826004719095699323855321297828562870332526945712127333685701541634610748599107161152425597873636910137311737492801533175174809309534603134495316861277922641567431509524239219000641002756642040452110182502042467247335268730758917933449101306477567683810090161542815095942257899046231509638998613733300858946907501444889923356098913027049842270335563214300271136771020972421518071074370291948125264576580414844297788525062766922760746603753132923869726270239354808723699575870931382384497180971526493714201650694219435650296834875349671639695407141840269152432185438840527862309913582392341939999068982184811980253948237247125697795730294114520850201827450323693543713633179866001366127476845454822077929582350874877114473459047521470000440195700385878535719080981058686923744964994699916054162400494730749743076955062536682103413330581807914579265308686119126581647605339386126311212822290779882110878398697001142248139985732345083845149095087954158360677011458203504350679157586532998523263582156886684581112043145357166867002265941239130616071226026161527999826377210068623557222497873232371208183295199556458837607454984598113152803525224810340486686623546639356632658133648182792052726431210114246433026840082601187775216739243024143560672994591929641830398301172000498708531558673109134353888115354428184912846870686185763793295600389780291276616517949682919191033256850579008425727719526884818573626979202101979369855266524764061441961002554902459786010015057265747132189136535255928683636964984691127084058248656916231469968274359429972656498304648265681158038212566801512972141044937451501553588461504687270458418425141815918394061522784161544443804838010280817626947431402937291326549832943829252905086923307643779353297603836145739325431010837287642290404507771453394163662765218923247032472850533303573553635560126571785815494780712256180421151585498749211763023581115765379298471767959380981929811231949239222442156695443276020408815030232114306191782025586437327538994797851434343334107845117434121236406314198024370676359938098117761356396525904795014175838724518674241446760615154388891084036057736127107633240281123182928817726251226944560001704973792453662925558681062767493727554499740879312339566744361507693674940963089871539187015452632962119127550682263752061857221498446245089178628492178924070139091653641673663022785407095608890665283634936783346906862555744165472761678850758024494700075556961863615727301532424398622682715319378991373151154246404321401231593686384159830722983369860123962812331545565721660947524191448966003486392043194846507673178219446107453436498017719094559064787618560949286568592148068312871776802790503144193913437391492064375435947182466086493479658396361039652523833029108120990342353698749377828540248133875629154773930262746224562045861887559937637673218596075788516310760848575170184249960281075404874495947162171457544342273815705123775315849716315847859904149477749422358399254195805338970991645298876324301522786232883996323780908526351897863668953492921507293275275467136958224343363477264081934385198171647856641687572184534729621752057936686873676629097358006126719525864791893595126442963288001976063971733347890701137884796895539934999251451834723771861443219037829726108204194397791578731658751992858509615965098662589103429531845064307479539450205581855748196708333761133877908599976665726767489051957828935723527786749609663269923720448760191078483509514453862538244048758325870762317505146878346521342156236341598415174151955093155260229640345308729637307955405553183396679826204323260835882594250867124436775781723881963128146345933978904581289725098451858481322514600879482551198887755176633149469731960896954099701994938099366778712516476429519242234130657303183289142548075790979553222117527991487201192145820319629448233135824003413473954692022651064056484480962719224532019885834612116130770197584873342388175127778977811827974571144395463562846422466257406891158010902662904930663084238493980486886747317512571992001882171724698881687809435166749818863785819210077689318038905834545771903600712692154092634066861265188057308163502838416696362046613171786536000931407236591672431447243533288453731301530821797598019449498307189434374960940418591456559652376729589931707625753135247892042728262352055877750563019808831483526301091568370131677527430404691999233603949411923636723706678935948046883318628001352582457515791661064429701821834533153665954835696763094114379270406409533966136329826141036826104050805701880198396877011108702675200591387714423129621618746392687972802861556694302888691312351885914970806399797552580525751743788002258371009275176327602417946870529144885268123030274490791489827674331839221021688677191631492415155268588820246041902366344709452659958096340334918720482694051647401863912093793699133221986834250543351851283530239723983770646979535832366847701389816584364168349954138104028445052806774489412243329086526927254100026476504258572453330304359296477703268246256365076853347572347937238963611758117163140101346330110189608689738673385981442951932571074389092262239011006731451619848628161151005479442957350233780280190213408696847685335672481784266316508436594493428437391420369888266102382834252018269052097370187765119681738433182570935393702733642926768159822368417408200921358205599090743367219068019202605747195528383817869063272474264002313597955633373785779115135603001408417425126355584767991905094921126022739949801571886010602437918354071741019567834570456661143254465214025815279374887688361405795433692240029412651131810148987861281109900255371408048502995064843241307978825101765017245936590903784595050937327316756031017886229562282278800940572170906745989141188607617017893902148196401054198439476827216105275792577075479789798971375526656348151127307452289495319332550679515754709404248968666882327341281672964900025156380804119619370929801103931357274505018751576613190092897449435166710671029941767762195326376584503674751338511975824405287847933340947290704893998411323647321294877271534707480069585370516838553201590628171486419849422138873954760036712614960958951993295327528167663251438843426554328543951228790443046780217355757108705873789325660398415778076926728939945956994799608692831611794517543588652740250683662181933853011093136518016932340153160646184586427957968167818219181773895780904583602186821716694787827742335690668681128729643313066531348771677511369182336753320849830269637257699475785442209340292424469640574558646426263011919249258733640199584505742759144153786719045729748820286126899451894784891853867214532721008515472231439265973808091655892154634362838079886786350085405933080098377153520950639572300926493216338095126393172940555085006434851016873941405196310359411477154830519865295242446577158541639283551444719576680898447522738428473109066258848658066799153851676955625786342019148138055392875853634720816724290693476684424474984202073732578238685142783785745803471043550105705006653986882814133719456399928506641419463613509360908507649756956193639770903216833803899481195967858199413078298594578842495132587480829069231659148202107319117395111328910652512075463802500938279874590411968756479213083451924314926896097667160642554068567695365362978433715370591461359529142141493780279439476422430663439139958110655998771738745115858668198023898737136854763890299520110515804918476114456640591026637026233890274379971246492384054241432902730063845277623031022531139357909005141073255389171186281260304558762336551735635144360545824065119778147677427264078095051380419632523919250351375641676938402392019738644529574468735246615537879671903995745873110560042458334620423891255808124459497153506091918902326141271351019486542651357584766186057546597823440149159330541491099075280220761203264957106302411830783698084295938253198807691031049562074407802742807044345641803127081499154620180264521022215060617327166511813705545561509357278598423688540946790712740434292143347426188539314796623272674827844735478634669877729400651355169805898510280185235345815908365950605727920003304988693923186841472034826608160000739361992273552384146065925162205392949637961134701472690874753812814136042309155797589865019386508961846135108121752133169153921239665220762201000680948464292493453309085589031985442135286191164825737350784492732547906514707913380376535027163414461845101793425587028083164039837101992518233187539327578273905203142229773919371529347627831486447888177853749328799327510805866347118470498956633893396073788405718454314574606117094551258775920011863337539215184828681905075307441341827346765155886548558207691349075884174717777770656099129172870515289474185005974023593059953533660123467473180858495824994706639426051202953310223846342404280097466203322062195610460254095788088949752824246062961595553389516038142404607941136045844210206833142893570164143087909645623564262565147448675186554393803273363961940506315763742353703801986775128961476880750811850375575022534897896922486650076890913428630788527511313552693825535004386488382353490270926058272672711451278787977453121599597577544259760688634899114908388932175075415660727428105503001112401753544827498998138336584611435582007698411222115502329243688296839465598752114368085499593628374664446464152771626829976410896279041404577818922417323705312995117085930484624779201988554589843648571833372218836295652822560298069093874978657621104688610785072183133450021600952599903931160154030593310384056934241486440967459343322665458477618449765342132336440633991610123018864754752455571166860469951371169492917395190346748549696391277447222750543925821311914119253723015494018190181253101586445151156077817307247051609402049434440430141402524114796646334267338569531514684108389390529177889229608092030136329758288884868048493885581130764048181955790148310154997437809577962684448562910862597982291287708296429728486027555480425139792098237636051021409551742389909160779048998817018521637870368002921871464565025980320807286749267663440651087518447620236423055866678077157395479820467098473159074854860471442924071306421673217978657121225636254101913208246796118505522184982507737561303318769625398606863475055055750596533946067079825872310084208105129960620646354627489992317301323701926339767768056780197660401321768414572276384808470548495970313099740017676333384478638854157889892232962323077290214869607286055440367774132310390149648651422660275169702915136958624640630556649273640289212397022184724883421401105622015059613873268892399358468985014039940844949005070918406426618370184879274892294478864717374212521304170990427870939089689167840787231147552708055488307414048467579997422331935995757690441453491454860747024816156606574604824712441438976736500443424088909654871144877158915273193556432310457266632931730009002255683590036682928600232028038645306997012758027025187437005691659026172800030115703768269205098869077043145690090456551343006839234722187807588493100977342380276818063232741274371130347561509657775567638264167360790557103214271381179480377677646159930822722113103814534939214604530952010283455218818512827047103898276302868507154166859719694461013902489802945748085711001193575754182908601757652393452178605173211849720078510368646331056351627960487878411678990490351047557433663088272380501108326201390139327335850485907576643409376002195978849837960584182852704849916737391550231785919308100563958050995807023745843097103368664918216706371150393265065429869587198907946484338646921638366898920393438028741364725982630776605043797250602503251256821700235115026154117188544227077279815496675052852650611672181490310102436909289469866635512659137751725096310079580309462594160258401760129115865909962758870102143023138076463244490376206868633453257804704307659668846194686521379265423805471605825129026160521612338941431030542444961140251415099334997133568280220857430519918135157661274661108140828203751135069206340270095067987191170727003307880274537954607221903475581996333470935808498872333933875584160832421986360991557941563203279088587057663024024918510155437259646427342411073031822432803410694372840032826268437285203212728760468092092533464413277586492572523347776687596675199817124820620929304093753207451973853151818103164051720533488575661233241236269114748774839640460128857631043452632353735239887710519495971545933375958372205560000375757333950173604682255539388752662113038392075232596106362490908865941537987108481303509740179199610096502521586830876332491725946040634380892211138449845300081667997925517445471979396844051426429199233098364590177009825247169258018437113276388367502070308510716986761492108458692489321685555345602819821097803375519059619632239997806877484340707495362796950326719763955212670565379375607407580294826183116226883532507297773291459722481673945752629874148520799236555964892454247635306227859203439068382593031659849486961381108821164210374257794034498986530999475028492876597666476553702102246493481903389234754863637129109483797657525382732215120152866515610440812529006866091081498552773522970776994413683921938655380841115677452021671197340542154491072879237054196231747402814669837296108638162401964404174322032079267966466911330941285063951702100690348220230318576678140224288223680833225605725252609906731404618855107560770526863265900528465354844807225179714581745360802206793043956252602934651467376170690205863362384887746125867107872419974559562658555421244070208073694019134658761491051693717443302738191566115378020950423344921012438199166779630865410328866686106105747088037917080236859784757640887737694537414219010530919774033943247607006552115493441999671860065803935086961231761574832805343454944059261671637762697456659955849475920744748135559277018322806809663459806934413785700790989652019255603498960739607020790778447852373331128187288176383402065799056539283448679449399768685725777805679468740287671511974488825251585560287013397770174478611697256511072362337281158360669810023410148956849794747288451361081161109264404689760397672683265681589741639233307242678702992904312834168666038933936123265480529667466612816604672259857605368688651685550531341096398934999509513770599654558865623242044497167684410595163455064852641977241769937945211625947418345462040130457826472133483909096383761250482115549551581163667318576951709132307717081529497234807876008436077737180926365613170452461354698432070681762075044366081686266589795029289117873068734546273851327614007504687683735419557118740021942192748790697983127979948267616267508087284163928397740717254008692871396303660457298787571492768870981285810691877078866610101788168109350180317209510245108474405682915056504050352654103959501651478257804652412187745101504998253045606979823625992129906921462025788477089921862962130508489232638287834811473259895556330180351659905949233173674112243146036053366626684356133875141298344036667973355719057654780683034673709985092056111592884496986245239524485226520415728461262471521301652181728364541009215505904713244933132784066949557327298553182556750644083497080713227651102829430814272465907181041395973892401246428669217343314473667700981852576216587495595506506256638500629427040928618482531282353385080416063628520218480659593240834137033393089675405893476266844410498751076308063522072151505804629593868640397385422570996625943363054198558923808707942402884380822285996625385571617393287290912845667247701836092642330902366964992370731840169425867424428516080595090320931213319325848615198427708994529415908183791977571669267545620121242625076644023372440809143381403260509371071638693003206835074651773694830990620615610199427454930166498383342797636290974332574773838724192014860241409141614979461103048339371098878046204483660218875195867741387007407506664622835543083770125602162924621543211161681078532512685489617363131166544017501891924198981054591247076422133459113387428698611588213251067139379613625063348920236827124320484109822871271759357476599593452336074536776838717707827095381415062119581321888359866872146335520018078805141134897782013317563151996019672879596122752846410594304380951527891504459954654306847514135066798298357472868371544035868944314708338498829676220243750368323319236337718922470939011341961270367320575231438127279097252658932082208897118538059950418532053123690032371339263783248519454148141542294201675318260412854340852768649076647200022870160399623039404539402811273059775543778579291733953920001970152030801821683632175839743155479781747763671043997514622159183038461743313850148200408742027082220739646080991917319497143852880290690706257428752688059600469500736610212797921768054037165978226388255390754714407660586303303385347702794273911925610834049556595537551867057444156643273728134605440974188673010251484912271671282091699070506647141390970500450737773277332613478984760838236316234177299070381603614998471137074171317123916888044077471271330006411328375392181121525482107775181786224974795178696207251074457431113567612407960110732901844372424039234594215703646404125618793570618633626936654258924290007759206462738822808132514033100121915842420186663124969619516567535199791994307176393083215461157643005240004504845622824929499718780339651928254558310794907952654414161384103707963662143482151359299720739806040367552806297670590989585850393823985228621059068559784663019302739726694406407254813554852280235788086375201564284907405096484845257770215747389585944452886025469113272362308442708369391342078100814200521679802413019463238307993726043610175012457588480412694538511042695893175907904316569164958708822885469730082855031914930893753261937562461494566269032609559612693381878575868948879600087027408556036387771172811010186254384923693485575863271885321416176337357498110585105950853868860209912064599845156190959143769936834964413073769644236229670106948405209646358195001349130404782747316850077447263055851453013038622989520979191267427922323970768705817989110054057799204822811219316268476618674087853800096307281002657028186869031972219630279950334467794885870796107980525543302735107177537178007827427251809406526274598330384340271433702825325436730248936044835331987430328217326518946643328622582485666737471049839311094076135985400819868660583368756940152165427028643742554488513418764747715836099541628300105053980464242895424603653110643262485820416298028913282072842838812940955458470208439697811392143637755672652974908867308240223333418494945918902187572566002763338106475270393009697233955978303957773289826048111469057954283299701699647615951290144078412151875130491212223778351038617369234683142137799473360129237209042623813938476033614997006548964263083567087268149759784345902816348504297670927980734987997256517367764948851714629776472823935959423118799681148090686508547900816731659737398450896989304342190440837022887742284985981690456576422670644551376203347254807307103314863099605308636053895384848985257222608945809000244441266230229294460850817748726539085629038116896375216616957769488848803463031474739142711660424689517786321523460002594212902372697955817569013766882398537862486375325574216584760426912023016443644600578148801209033232450137497484104633462916070118021273491358469729727491153170831712028316049389892803364841746933842307453159195317200098997610854001307936053788456037239908845347737848701359480738332040301145304627987064512344076227586419260579626419731054448537853639229299637890034518183725731343188932976128366680473500604224621524415253644584199824934493278497750404800483792302321336493295715725311790835216274620073380624238972812711597471525195136738208775159895763201997082551987299028095717158189894570246952750385660821951474230223182883408025533340416006336710499159544558572233253276606370229811888429723915781126761372833635730756455036284381057440400273106145129295563569603097291121395759520976157460759312742195818551835260624599604730929574771088758601288314591896661835672416514733935583926043605571405688435091651317967374094025656641315348118323751794251018145124016969940439090720424054755040599271426672971342900230625596983928356663579233598249380319271118329085509906216768648205799553485473255526202726890903010152058344550840828629001332543313397400321106913388127551452121376619469561495608715878253307529824139733040268121610560298214799749873791594343255217776634609841675833677806015500712662172987741659588185101838028156345340466775216920971668616868515072368319232040870107321959212360363366149131177962714692086431339384862845640526027247667645224239834085618358908817563655847567428374741201628994463494192890300417140148872505552844144618187475170701877982234810024193047859010049682670557029721109993284691563669666590278687098879145861160331789109145518860119894136387532424662094638763467828926579279776841763356679852375122471854835152555495165999583750181985250490516139324188953390775048951816731066611366026473905761626628796767024691260651563313810018182367332726780378598777314763263944984062490117105272634603674180659261111602882004248965212920179477536718100603444768219660691585143591516100917717497335184043704267720906855398515658163511229890030584016670833113768455494222526655703352563792171810214314283006851669609747124475728619733763060558751429907369287230962279471331334169895761907008280168785521278116992307565745344274105110560329609702291264366342062845672252554154542907002978979393773638268526668359114331630280459466102203207148602478381637473227473172220868562663808072125293079450378725815088110856526848465704677758799142458659684630732780984119701306769030506208090970607811939359877440044045824515039587194145799468329563371994937137110337189575261695588563671683623448754577396409203088247526230947243404295882321592193338229438002457146320185234597829605312985969917937253512381820842375940963766120701143619363760793215708017227026198337970078793947262595338233756680027487451317170280374387957004720431408387829807298636853054166040843677493588480502864689461312325227752189100017166417257965994712691510477049843249786578484752837345716355187107773832421003348745955651255023537231375770609957768315429814166749893940585689415438936843428593081504291468257135803445420391208785975303528758007188707769549847426263830740156495228852803111161564595201079449821199498710080276974075799082531687224223703985278494083419625916435532237296556593244736778793194694840384031883141007708453275528388695310159954487309950304353133318515619547604581451743132066036086060037210974195102397069928607773682143631112694803476598435845994052872963928159939066225254013914251054464370767682654452150857876444824846341531474461676002824120845785529604125788162148934225088999362075954523154305304067555339598245612900379148304084087748185095560625310041737612209407967374027047520866146948519351846610380199889852438140433866324673857487235194128586725505423493547302920751662324582514530487721180682707834964704967574559364939102761323575714844419995885397274162918098007868055349432452257043707232035086114050387063175011401632242524005390183470375188420654449927176461366024734798580036060347818768367191769303020703675872700641251575182140360355649357074347781077663435693833748367979523926238518022669387486121216685774276781270097923905832316366601250149283083613406107963678571859328900911711479698958631191557234601132586590922427419743278808783453825973985547340394894572563359886426166592129573801209304997456737668130486475343912050432962934057679236834156208626694899202624997103634918539454491479065622103350948575067027419481698784400681844631782776243419906719403943935047285238293505926708985945220888913446759863600896924609362878293216069600589006574930616108310190311840521023105830962439415683164537258920941393448769786028597853333060853502220541114214730052970488567116145119826892037551470531016103117915301328332006286565398480520911368634809334262237544762953913035344937549369159056359910419141767298425879003373884883340622807701329661847539475939259968740192385285565379347815508675296609738415654947962793152582626439819703040451481923869967432807977492744783505522956087187395153109502673865283847917527486157856059171042988467178004481748016706847639710788826428191508960990425787654186385556211541569091452946367549004690445992486143737180205181499452665677313948238741418915002549766041925282654462446384807122025476619149590078656162313280785389602938429967081402834867624894315276274765156190000795461042494883275118460681225146707404076082358638474763596776619218841393246457484246585514590707993541603574231296370882641216983700793296695265424420590648469773378944192567423366491500865972947949181114163104785525143477925504425114225290866041747337674475890319061446476878674094358902178014887407450988376405443161246728715795550252691532952453349999813680452165124927948549141780242030411021806997862127542740548349501660355031191811428851436616628435317148630651057838279215867986350277568691885366420378239794756214412905408944651027350639230647395821942032042181177651436830058779539909402798975941488788109274571661097494951221940765766535590264446111880763162262146554311519045250996802728244881578206133172455417157835289411464780128074277572107567577324598950566506873986042715631368120158829351306613468927138240326207743828238876787935730605240776382799259977074778132637026572838189883962993894620153214703332217788663339452927924964591597286554092615576215944996438128948322228459754716977661306887343563859709771308267490896677372194196504080566282255175175143261192023183628598119109011830365576590283894812837636003759322529249440198862330644917401338094689205130410012209564844363894498523152989382434808497247156039968871082114120689449710150517526632967929437642023263597795877730102865419032368238814872316672448052002289573145560245087073725883651685580822052241592393227729331164718213666831494339973841740391104670762362316617711880936658421905719461631116546871046789271713713450796975325412563315562984786927334367591828231020262965805132796027809382341009456108021281795799346669879070237540075859740143154380904389250695336284588428692807260565076035500704957608277424434137903759547322404452557578995335041811858944781243892644805831309916169728124683884978254440301930952380684176544616329244127184710252944322287835206375083532780712801567550166839665875850942493967510054492123314543190252824370884053976315539883840468602766929405536664453539170921204114658689194985971412622426203050462610004679718407001403526348671570914934324261159692986482404339685228549621699123660925853815151954814339921966345555413062376425181416959780116603490003777083473721026525628230795265211978767490068790034306459005768827483195009831951832325338693905744800979302497569674364113861120759451884398778074653446968684723481936980125081276983333955189082961517346347997508055312965206472314173497485154863185006412818429349465603645727076534082696245815211393560680785273721813119292880659225945957070342543870621939766582235044383398435897255885611021225712389535280289260228471102004341688342274822502918822249026658707464896363323068760061233580648854128834446254664490847933298653584572056332268164614863988197401300969041913926093934484786098989719298102729103481186172075068120979378936867993240082027957956111284335285074980059792170381875924124509356061126221697582330790688898540465270693547569296314823646438142727775804431028784578818427772093137084731794406155333536512497283307311236021735018170323629735251225320111007350663031681919073851624975504668593066140941138735566063124195889254691601068840167033315883439117358341729996531603411199810580570651108236292182756440959255427598774368788312813345787483297673581585499846562934654305753748712358820961550269056385825038106276762523091853676602782710652183030113204524874654180524959323289440250316614825245112365644069457288341251748874724438460468822311910521938904013341953252614325916118276880399006780754079493602616222589403613188662869009683809208465514672829008896592760152631610845993973139918318482201922595140078273556599497356042007362503225169723425940838297613566980617659166870309814618551968662597055966186484617928372215088937075379282913122298599257742756826316014527817248040894150959119521801144730316344263379565332832661944594708224918690122648905852062429169717147855928222611807734219550374803540446703162013835338326340286441676542033742270815773988427846611100145671801761682111290676277258159203083521447216499241301031474212334798321099034355786264455534516468087524429490222983954164228976584523050674255771172711974762385336152162467254887183233119450915116965061786979711884123773847165460936352124550079228591865818077428437882735125385300101119951459138611886492375132938830636004983153671093524194192766231805540971436149485710102293625945800794916584225914937279362216541450203649033476375046902138984014900593326178212985682692112956272607949141200118155352606535563604146692271588153667256951443082935909486378883046090732301688406372217407288090488071110360144429494921330969631675966295529862347090949140272691903999734903247464446931756459110248528068599758838368791362224168157219882774877054277347735535641737186060603133460078720845882491066638499746941067991127589617649868415646851459981574801771039711850190840116212962449453599537979700063206927638602141029581073632294096196743831130055106398988481769364759664954828170753071253368914259282837124850714027080888108987489633832604240282062565594825120428539716122480045258362210346369852866714170636652441487483587246119203410515008795655995090416963250757576904982380296596066195587904481517180854636307312548332904621030391141271401985615197038284010142654115408971211673355133029187392388050611992843025514691839551121933042957302539953441017755584252581539600378564017831950521079781631106153426202147359621987485304548731750086299947996411834948504179217616251607105769084808609338120106199149546984849888439708757918998861338829804291459437815401818191820894145007000562253705284217065714548537097863774737650398135366407332039570849037738402800194487946691574904313165493825603974807025645594151475681156970143083369708575825143182280951509785466113881098831196744096120493560437212375513654727945339429625947975149835805283905030477511754045400872083525132880570285086264796562925959569361350013275643985804565648626207004240045899209743529066435666170824386116934066155203546501173093972618336572213895369712562536651505567999105077503316239050430730016634594617938224367144542038795298743096965068668219222184179359420756587684006798270918720951597632191016338128285668242061106994403175524811085492636606119653561149658428497790935413715410279800860465370659819464763833641003240617847969295536306874374314306906352332400358528134233596421212178787894343397913109775842318896573955773358170469302377476789416378951818370466056552593154840662780928699922315695374697697584918212272163996732472171985900034326739026587605752166616090088545821847420713734096890083369777309920369353120844653840631242466670135195360660297828836457118789506210336057872835688979141433740759933416981601687543805842931459450845187623696115713299738791534132588402408413173954651749993877471538524231476831485497846623710498394590691943824591669964579077192339799758232363325404179601324274638149844258636009648265588941838913830443398095525137908401833172085146281645003747701330842977427289212391397569276240284158614948598418804936066239816526571474083233110911854615965521141244238678992611540760655896328583469113378612489956497393528181953256633706732098515766495776144623847996965478481553522127632192705239236720664570972280777104730064322698455783837998262267559233145482433649763631039032953738416949936740293045688976518933457817948830454059083901660971463512242052070713870743765831608814852086046221365908220821262077814575867800299337274232960974687403467701960317889644341983044496221165468461886078523718039870541373221874226177380249889567118619739810543405439668233161635372100474444430785746777843881881627987567594053221885124375282188942709876085788599918197644640844421434940041064616982240456242096760716524082629779640278796857011180369754150503540378931393517814684854320559381914437573430462451245010721181329152957202540771164798562223979584129255387645142302949956242031801502191513973187340229658912881643354877586238532853477712578223795491407576803748493204324424948356711653313608167722378971421186631019965302326309555372666341623119813649326948150887261091453073604635902793571195924882245828866089250760767175179745678497371114824068292879670218556177931124592147270885051601684053709885248971795664216125078480479485504624589516108734615570291139113060293208587901679719264895100803049362355670826525435972273354798681670615723734854185465989113545104377450599625354984519748180947763578511730198164492804048535428245445440998802857433489403874469908069086903364870899333651716835506493736766976236740213445025874333608868872120435971296984101363059403222640517908356347356558689847718612168061988165766726236067104898895519697662251059746065053841310371756291350845515164198328577029754894112596682745705250001342077389022015920039858034587551001662752245506661513420816361395641623474958529416769299334288997187110637081325266262406398293018160164526371424430597175673603528152253462177588885168902351292155984744585077908334695147306609919466117505964107750882537395109476689757126313377129066478591120830075941345294581150926440666403781863307099106749606724048316104742723797432338226761307910556456944188077422735794595753750697808117788340054031699717738577771124870707983687913273195511496081646761272744401914371976400488352866550257322686708537496894338057526097378751994341407285147830813048754618088039891889942027332834861859948962182352055428913899152477799605703461797025741129431003202893136808202939270679397808033105804978927279493113533683965146036256539424555988780715587064824541505539936176246626189296920236567486517088927663497801555493567548065312044924285356518766096670691267636266613257674372191253675941703290011474681306483782505194680937384770272204593254723132274882097209249874415014093487551467458935042733697902021622084664698777686645673911781604632788011897349229717160728654840411080070149600985023359142566441343569102867515669587716735123530779150817107992184793496840429526177311166013336161981091449934462232185607974770718323233335923741473405139370695815043474005803645803227774044486118662305853282204343945964965037865636613630084340751529490709307223601635403509668421365759728258090046122446544893753929678591225888767695594886097616153993240239469172591275888979683371142951814896366344337697686625109587602559125026887748354279628831983762767697038376336501479463346171933479122752725406030605633976973467698250580179620148808154259686747827015245628974602514331561796355688068813862992180929281131658820377286679396200633593725838821284716220205064524690133582857291111627804693930472758751216553556848496266020687581104971630991643167487991602984956796730287673903318322224059960655200553720367638642026073211583451425343614430750680817564600680094395694362314100079905725312741124125318700907237733304559301431266475616261824908934923738238999098081898284641863784030859958856265858488248211934737833932707037937339004388556814632635102064712139398146034599900717800444420810428137037272229964849050016725048094855403456053775585108782251237082306464714412171744004839117328213999328473219591108736566087826975248507634510881006788799140720587301232193975578092003303858250444293898033780240075708977665932490711826365075496810724326640221982402775549451828914852784107611406301366568923385898348209428603414327854657135758311923173530130113859433983505172603306986797695862349786753995669100965754270561593106645887737368150971554560153247737968097855702650354680519186317680056435988950500412416656171292665683183727428025442643067484061267686445104618183839153148642231022299813422990707001268144215816153908984347070559985029067597525225083973276121544477187416356620339120280638922212944168475350417102512133889281454891915618824749955484903756528812091567577972824354055673312187239847804854321859232818854138023993831614382707696863751895822158855597888777488700218396684690615188207058552735170326712980612595484271509738874025270159858385193704380931922506620361777720758608497422290678951168056651879284777760959281447492910601554611844082402293345231832210790377314517830834965760545029902349415879845351230779077000659052326000498953687616076388253918309901309739066029470666121664353921530898959809812973792061865344780570696944197481433447457770407381702431460080587585746448835610361333830215245833949249705780847076837218425039564140160369536026535018898232314494269796193842143172290063767064752977581990262588086836159331525030446819518874946715171905348054963662956523003089565166933151255728976604614460368071775905254731168197708432807952445016274615995509574809751630408439206435339742699438400689944532086365545389372323220154382318822687434677698748565786313806509334784009684954547522584296868374467525116380548402125041915792352725656857897008218710517967888724839597591560799295058579892241123888132382437149214474374739617630061359161036879225617708124236449560726738445556843158731859436882919668996562927023833639154175733876675719061361633066618016034274030315199397855317951936370892070181237216740319222116231007865571367059098948490105337098882025143881332775184969243211232892173429477424638072254734594765508878981803620071266347785898767681942103751966022274316246333604408030196869070057540838253811396005024053029327163296816720850708779465938058502320959392225662115868078270827006463524427355295133363851529141058978863981854097102988463075617016740542843473305086717524076801323392740487587229819145611172545561933527711495559689538931554434114658330519484638327600182658188918280699337549956649149746837848890650315308929387730256387024685119526672691264502080205054866219313905644131883559759365953427752386016327794865562917981408127891241472088844669079020460498245641527250686538478551318966760189873993431271996291629096669835408633083861959135031980204646452102223818318587320703394846314451762744517608879731897603778462516649262715790041960356261008022604694625614894421128388845851295730474682230230902933348011210922227924284359260697238379323688907156499532532502930889708178770234759048867945920148531035239246709085003660885767871059031446147409722674574950838393474773216869883634868870811586694859588400746647113164613900010525268795994118898984469036250279168320024351520261704441492967670638261440944288550074560837850804549424786609515210288213089774290994932122461577621208929723322431597792066347503956674682993411405437234140650711621813303889047355937087426250504059066981387371528630898759277493459156634239678234573768370734586677478724208858745186269022892891330436026680254238348673823419424525283521059170423337522649104762313954004853632342793632625600765534844498276944458783841660142933285523975622651345806018318104854181518634638562813500662695971381830142170303948860055579585803444115079235869822734534734850419888285858414980609548523832496445696590578533181053347296653057489008190544612300939919843305619417909512871407814299961179980157644774496189008848889174058111952373927612701128166505707242205584739349620080769590337119955775529679620620423305282744955565919953535563472731608125500039479660690939377622407909480572528945123222964934322238744184902494815729490130802570886324133489480701086239462041108742860716491874104571802396499649990856545498257132051924429497979921336924134966805950489136918306051488655906663896464347681865630469118785316104497078758239378203177130214576442234754859499250564748029210661966613772031090997360029295142291217799971695466831866617216830828509846085969642390870345931091376394215959684906044246006605785839909058458609117570012823488014760701847564055606267189075353853954508634528265326025810875582729926109129891430954159686009565708275966367706323997032830205231544807579549730768423099482182875896772835293032053883044271310031895881206395440992052556548773388976123554421848182807039267389957950598247958049940751334156396502348618171480449319383988017675908691879882317619077232948891665294594888377795232175746506158609905146990031689365738256093231944745424572075060962174023684202465142701310447742979934593404229429201565830477759140895161172479280184823330246532468771536435835774583514152712234317825868063274249112898460879778150952494542756140851361933324776083996509027643528160787701822868792070802448404226259753963198205490275772514574129675959222545832233579064151217624721191149415443050429830197802822892318690991785902068907882189851294123532287050062829797764792400921637494831931506871198050471000738757640737239049746575221140392486616422274491029927561943088810790962823016066854485888301323525184321060423390601218271608459339036776194022985209118611256790160183312699256662860810931289732240551841337586534901302175336588526009157967522559050651721540138002265225739805684412362143882061757526495525934046119474931096060858878563215497725138966369834945525437614228685797394135596778932084841530577371856333028831856224839104980530780412096435429769656224770831058358238457266655440737333687076762869240600030824648643065178189320540355732914001722493265967678868246003892074548352466981289322494525148959053210353845343118433846874770203454740809679478634711468221896274425771669988397882266162890346240999344441600000895355540448769989825504798919174729739279694361199286975765608474027572069888088963190723351586062639442341624149489128838487832603198626364985335546965067753503598587933086125097369722891721509645080659283379675718156567736751874305149421359255500921485728082377405992298541854552701533713304237618083202454512174424995283041471996634154080990270654198265341293017076765157465885057657396089917618002571840921589694810800884289733397770905260716554175613103999636139523228156009832551205513930717323027066001901300318582011292621553978222864020195151561444935036396487313299604174639264634342119982874363868139176020787425058238796047745070859882715363288789696586748774953975466677916277418150369991373997852026157176573848103248210202459663513565868711221048009557334699427110729869236432757378917914664321438169567593388465179944715039361444019576984872203824869718632345026703018023436086701217377017309529712825738262614410073527879301732942605797130351476712913431330561379897286092782561644001097793099834667937894714480496218992539873138755372539267568099956213811698374830286383857235293979367637820489697106900269848388920137740164535831566905088092741870924866325012185919392341264276577165771072015803106643533407567024246047163906708850960032739712258550337167963443925108711099559492923880975667380929036105166266403245667752577509674251034244853034595415194326520660574871701018311121314568159566401059174900139979923036565779510700470340243325023659987473921055654611555561700333061087472174398710728576465307831496955350166924541341060478241211967355928484305415168462736399504717805130324697770588277455083149394677381071114212193135707776662186143688440108627970136048368146448981283641372929468423102757383475008802640025242366483350529839685293422758521687071748192363210465630309458534597880970495139912882825329064714209095991317778759831681739884373974277901696782602498968334660435223907273998563076702217874198819029749903439376378852718983308431251442977048527073544896411138516773258482168508978133610415704983264586712245549371770518172796648439617584865943425940341691767057676060451414315856241183454321517541008286475951211588317002337664204144031237770270689152644652033193490825732897753302227291918925653102846101324086199071925314938435175357043834607783326230015829177107776491306307482023103229374041641701951143152942364258749498285721937871676768026449559794519412730633126461414725866073213811448312050417893445111184394925150873211850806718929400525017959579432561999394169262487353366358817205063774548920061267286988999770429877689385266873330926715545319673432821650996807181801771379926996924398433710997834019452458630478799828601845196932604042207846083785214638622405723990444458253263429838095695067787295194205916329370524681967529427079398641718355983677230401711220569295421692726081390269567076308818345861027376632855780811626288087834173463173203550805657538350715382687171198670711805898726435267032838258184610814710139537699338507169045813182656571541578421424823146524270438849177701620934912078238248623494882113687296930188182564878380659069010575794698915646329454194095257316376672131044435162981785316026020311333184271858228773537804409657975371874819384086044121456915104693849656466044980375309504804171862336858804878470646959762547301992282664059864236449464699408494974328899216141976320633804359963689190205735227686966066974975505619613990479227417055758349907027243071652178993733460749547320740995127008171798023736727927963105638700364639917534620259051003292799186320736788672176955283993794147032574374778765301771055816762435235271731485836783591403086957106049439746207238260431594601190971407791530449258304801197207219472647370479961291309411936051239727655606615814079879333654046257576532372108871285787668905724145260497728575694294083672514735686883837184062590790697830334363891004732188762414719411555103598327786073870610931150088518136824147970956397676972879590223520899248383959819360555108185726300949856261946530710378161785918755082993490541947251240262887205396338971681351007390509910361133805026870915947104803988103513542016140003422511976099442464103955870764461743208219098955572319565142118317839961627596813450321201159539637791207058189479960883477541878885761151306851285127252258504481730872686437918795841067308716151256478781534999798351322187548288531152600794363151501750081241585235273917177238791391103232056845174240479635095644001736245688897813200684766171839068530893294478065442537044945632198336420891695410890297147214807032869850168460143080778435377983975475662031922541932521154675785911164101929747590254427912240282056097206497961853587669989222625496294926483610142232623287566092019603326144694844817120840076720001736727815965214233668992296267221797685522606276692592017647351615976881477116957078516078654830366129732375936629620228427485257201903394561996408415344033661326359830884219016830654238817892186951038400984892673306904181019727071108010807641631623851059270085364486795363575990979044338749900168674443329037442283043665315937306893703196656293083498538927036223190442238573671417357680256350147266473135884155520090815782701021815429284450914115030816835309879745199941263000439232313761754233571909969233052730012336559645118209608223731404539463868635278910386848474281670162572451665829668428513723510214310389772809474663826143138277022795423090045626152240942498887273837742494898372946709762656641723157393917824940162724300279474226156904117887596684727359690456892322228963624038605872080508265389125682291991971956027866249689996669974204498425012011225027969216137937990886858179505003880460640090287445578976818516656317364120388756434718780846837999125961436584420917445954339006717289803790870433614891447817851455297795017149976439944992781202949593448176296621239302863066440644036122164733808587339541274321023515730498426880372967589623795996362032199676435665827046599798121535794809008767595601295466178585411665382660785118976683404289090829421611569111718703434967188678053160849205814013644270376916408748516812929610650800920717693056094904455525271560785435074674609881717599029233387355854945701988177584565629861683085764345273034177107691372230957346175827275307600718232747022199325491128164181775585935014100136835107451394457045557899910516263383632652858334857996154879790883847399288234903608580749086949735967642418459603343651252646222726693661102683511083760156922637928485056786261202410343039200938964879914016925054899039382634859959892932966854277629975669600418064562753495051920406215761230272258994467014897246349223029473030397414197266495331650681596597633658513541805562563517270315534189541308283557640315856278271373299328243472105978030494536502998019880401753087845627937554114565573585583620116927778309481004887230328596999137613570729496228470609474589979382741655103482550170016754347191862750825196638858303557911925251103539458902040585988197995655199869555378191832181548431383752548344376934749558383854210831752636833643321764243381464553200299180319463106357746677879213555075634077623332995371096659999604188822391108946463401210624139823577102138537430459243051950568411910731669920205838612384603706885587192390447064472141500230647300826431939064429203004642690746942511207669942102223390063440637534558821772197263836454327073858375130736614790122445918028853841747836147306741645405988106179945889841730849110958713668122808544713719636667557090179823442306763866390709532484825774307343112117317125446784363018823543943995972819270803317041284547045424421292408392680591938132469438072180247069399965075542391245191318774043580906587541541909887766630485230041145947397507103212049929721101965799315319022712991332905467754470065017968213287605011403924589164178918037441474501670530256189571908599608181000672196150426237202880919177888934784179651426266457313210118187403298283271780094452379383696014387260584150239672698257568865526398526957881229328320517594872927793745207106503801835670615503802178262971364583763852819414434832630192919789513647006664323618791604346160876323518677964894541962467205993006668862129027775925210182370660069904809868301457411649908813804312578307231467129598063317170269994005331387901240210592857736249826175613242382227313542195322954780302735001915733643962148846681034508107143524207225898481623108285553010848755375714812756780904157645202671787952743125890296272622190454726027538041611779032452732489288501288064489326918165468275517717839531566910272375564787384519065365049519145122197334663978934760599853887741790834012287295147032120027011174198889611012642156471498823566150821555301066838381031494655717972126942092770256596294382864797854535443386971303835939962805050706270775487101529564447175467184661318231159506862957039061650711298478250413926262301887362917519004402806638691243241115002666486482904523410544043171865239359790626521896418444107841632428858797165457667504255299115296796195175252994496436169211347768753488138056960014543689372510930836726273459700230558759146906904981801063130450304835825580950701264645587346151324628812731533412248130072642573751508249915722491795861950025974766307710239773223297750025299272591461636194268477851607930545441822045338162889694422543642021526813557041899003098255880738621917820860706393808660420315189759526519239467188082971217427928347284060958020635733773612432022616199420903383271885899203195597631043357099806637712949294269522146517201657900567492893304558067673018326323033141616342243054383037485806307604163808229393564431949845539929888743505727370452426784915947195131550088189167269776050249547980593928888856767410292630403873171514544791967702265843171194676500778275606379219635090528726811415040351416516831670656322210775557233753504256868200485198240952062892733319349689681788252005989264317076669839261750739492275017227261133363366015282784830498283001669335022257351263669723976743863679816495568172605416888440300008086532246524507149102245245624616335590824366700151981459298434919573118418162762302567156497945726358180966776042422404207467876663658687123896989839619589850555683118898657250930012010492576491638829927595652978509980961768281469216657944335554157782438907662243733018728351784668778223125524914745654703146703554599664110920267479850521061928977979798976667186681403425269803561615523173385509976600773679912373886428615462486436790666097719515980928189704660723284734134215073020796572072316027813588894873800297153123470387985032932468102739724729503706492880153990245224679058151248555233991619699448176903977642136093588530851713209612331299365125752610398962766696718270686170746994888316228531205010307187771473509899329171008970355754934741817200949992458159738414647354152197484270921991759768575115217269989969013699666880856775343531689432685482388122850736241947418061103915279774874768700744915530730871855971513707263395176787309050216590036873236853221282031703251111045209510750570339084966082640706549597544444917319948076761330265177645681932081662935712599480421622547085510695505818613042478151682498700476011560275932826016954601589753266523855771211177470477425508881451132441029899731967899104027788664809887629671510847705186038035329859376743029849405147135039377419316942617531589252166500193643169879074982820449156377674674328377720960260436303657771161333689521746326827978626010167152902889937319175678089686979427843697929789887111732829044683541762249002377969343915311875539765931041328324354180183655132785677684185247941914105596747023166602521047343109400193448194468631066791173513791566921873031310174647557190575994970442235418413687531619699338416739619896044047170203619397577803782269586932031115852244918083940525221527352404874134045008359339031544676993048559974993302452181835399004645390527017285883656229390462531042807581850087700318334220514251288391477909584926926891595034687755261180917385888780420752270082318790258317795856544719688164264693497168068088659349521280160261106734217887657020871453467040666561769372277788004208953918604634177801030833746720734699627013744682414797185039406652803354118884650905252759984356303819479937117924239807887431625985840690530390694593629440754437885561649119117830803087849769364574686468570045002677475621615288939070859197776552425790907046985367748552140795518286835519062743893377707770288087129210229262442205277646074075234427775527779012294918502999636065380945448216977522403561226350498770078668654231672592656091492054528544454357498324000819013665480699279300379901096185687471917505190777251720203146829285411302904707753361196652159711393822780239856184482456665313751889156692437501897268666554815984644246669204303162374076380162780341263074539387365661956683113567949456273391467546894247554596069153954023536467884888103419090314438987217406265598160800008524438473760947834451911676911557788799577066816905644505250121457337392010440454205582719031716566142741265778877467443059237861165978491951048695169968737449161873133248620472751751700714734894926916250888479363250164873182901843658775948332438805214433909446585317966786831151389257075931432428430109425212727080607571381151972864781780310249632670690255959403219574561856912328596697202669774163578972349762330434571520840116474318433318092338560519567218484515488412813669216095222368400099460593910596551193473429301438038733879443010901727302661442258110851203243157789253803183862119637996011148223771853100683212554093084210937854008600588015981120299287790706981075479393451039536379861237395636864667260814103708484092298785457614440410943442169204827189518838153377424922879630084365863353779992896391159632281169296732243973654381443083155031888338805822659740127144648985290111963757240820413706195183931850652292591065379486397766779016761608687334128391015626730843570452300857046009536487815105432894375457078429524710213378136994202809612141940075434621566145175975918491446853660856754582342430269892259790935339288486239864334688434936697502442758226276612030839775447739501784588008337397511776361774333482182702509066497671397656606311876270437783620400840041952760127837619033757186480957848306180184949026523044619146204663850847658482885854620415823624704475529097292514378624684788164297072116216604699552401666673420841007603862961717354467343834042509013182669652453689137341648623904035232843008643491438987991416881602723400123092272525176459458123719708733920575447483049089784077969554583701788346147946406708200197746859567382018328560434252573476252701451758394225023661223537394175699204943504652072361276612447214753191218207013572552589210969897455267202596419471659940179369675144773935626510919329419710344505608253110702087854451392179246714359247007495928270730705617605629207640719881557002970242782848398959771698037322726512194239490077220672324153356075253005420660541312809444759655122257218798135692321708347017063106141068465987618113099510086617389604779657110722012432520822806735650146153553394016488906419165411979034740233983473466972719689252834502843318865833105717340249990612892909920843251736118781493380389670459049374170550888851072514252266357299711256108749621086939483938872633124532673289291474869110577830167283878458249122909203769932051100308564751209231719579958731756705284845299754764575136647980403503056796572724190216297837939295809070658790995151566068530459038473662466645391805223837116942711045542980768647455133986269877765603178717298790421256304545807475966250969403409835960907766122701863228797038159712890388908936973445010350556328179463001191979623619504194425328908051103608991234423684328354915899848406862246686175728226921021803801115041446544504906949281181301604799076021064861927831582290421466751295959245461240329618635713031145708345103108567272986848250011166731833554994209303289008755408997093048111399610926464225241660159112033211498836065943751517999835576455945707619299623344072255256246264898635985745679895102113661965664922272811143690278028861288089964362675483707716897199775651069086786246436198290762593653188806967572640999665976443956660688048091986783410017701752951691850226171967939192339354139082938206855282228241643037869177719516136803000014802591562767881462132751639066929818208443912091193041278781045940570944206595941604476355199230004161764990999424405499538950275685663286281458587938171199249830106364855027489554558680368498494083006092904359781964984233802683696101111405850223186069350284684795659448279898495865010147202739670570388515495805539590457452180472746691716575765618112872677220675477782718089308096784139949300021134043971124262071671052381292996190382941947858881570073103169273765281093520874299927928210434474860757147540356443754266084302691655802731281221306235123199707907858095101046228476058686168996021969770592029805417900652886113789623383115572661502146225957201728152353814599336600781980247942610887023993325290842834444968898754918744900401688013392458417395860155393263671052291130663253669688426970306221488130345307131720468837082541699293193536588156987723123917259826268137028612253716707998465818330208090002362956966068831718482849935465861993754974441629676138124588328992733286610982570199196262131525791388057488682058849438332876543116244709214558247841334959365417304251937266039779832621414964721090418490782501849964320285474953096655593997810173881442189672582421645422179866797012247003232544759142625221991632644617333175182557971211682457849787690998041462413306457213152375906233679749613301028264057393166994413803771420709121938164050397196232278796047272128449313785389408659434985527550613958169562697119457145097596423871615759455964266041333431004466592817100215594845020162433680490506339988304529203101641475466821672670192747616500209372185938129341542806453825978800891341605944748613247410959846388038511162708487010797777785577680190508491514401017279543302557447630276744521617763238871062703798988224488977544401794925122998512378969600513844925261437694243878722376154270121576243101322280628715998340966696318816024760610716841503804198837224596388825180117822427120825604303521652626623917913657947364290437568251245474985226453688590921699509866027420451386611199628819349205333063924435822783964303841178437254668862286453394352649870805054553583509994790417325402631751227848548100365396919672553331215281992286888070300296580863570810066531829873532941378805651423347245484589752956143837193757055665633158019866962323238560192439681323291081828729295134831432148282431087617356527892493416184928392874000884409777902799904856976947941281800879854781446270954011210400247494668295455538936955547688788194010699052241131197510660816741836324957147960178990079815165688614171680232653929784382535940668538241718351718633652946420402296816423430665561919942144128504667149745259145466497383920643919836257685230358549118275680415144923291043797653702372813889966189068963422294820946255785189175643411593583333060316239407051820667650202832609759617041398663626168182270343190982187218666953850226917174750118059949721569347057263051858910617420130109221483273256506054538576880512335281640717625158168209470456163556414599991685703816281278308567662040657932833248266948405636143457116762480358516446968507213329536768614258563725763260822235715012450430995278676444418162009683292429684906044728460748529415001183886049872420552463384184778253434790080339713221364395150760165336806480138657751644880803216449785482117082085675510806196171536490579953830580412359426740066188436296908388066772378865497017851440082114028304932555964949033324118093388771745380719580891698260869247361068331424481277374501319706132059916798182835824488451616275433661505470428778219165999202076843564618891679049581868205188181172320127693039270745638999290385797363478231421769724116721033810296627994186626168368714452414500290420363923510361592031182388020048340510408748395356165960809451307827631831720770143190781542130605685384683814121883305558293954404700590958749176519389090039949512831576100176125248433990778328423893242881442692370054900002207571964186584321689652248292523422885662559432227386532689172476535326540925673354016773441341920934784455795044346643469149484509145458353600776342450715554743456411213379543506621023873688976749302041975799824956934107034712071857287919078147278185827251608610630187129669087031060649599815741277718937967208900030730525383609881731159084006616590227742538843915032512543162208896885525887449509782837810261904443313241492371833979970308592770900341952875284189695452236450734199703441642797251405940510175977170207486010574405493681404858792749547869403079169394317346311124265108929068818812035013281695044355636152185422331186515175305155778920915459847479358367770536298271641949755008676700698683537661498481818222517858358432563284805323158491250317402881897966092644413878127735088544241350693604578456513516803536996505099884169419345052335394527439347504865102841071529894744695567885152750050672306850232310405822497512623862525357335896168146725963670860835643434677126928140218852013093280015946332717003997523446323152751870183370092863412299980994683146313863070263140271318132962831352642714034970810997780422913013396489549077626693728178389164875428201902950010066810706531733659199200097222083367004044591020093843854452942839640163427491992426857460419596119223010628941188709474888883366230747235345444124912699243964548626391731452950786005801642556827777558345032999134003293659474514791969637618797115220644678844586022358353345960488888002287566268769261828345888027394406996902308917454037076355041523757231721712668375224401370666371489620410582612466124260164138649527547710261452811550518069895883074280313444500416492177988579872731490514177587857079788296188233228397572630055737286113668846328345051682223567823127884689632615238675996281715076857576951949297288170099808601661027302829722682236817329316851008146084276589099365678768521324836912511619344352063592436577627021748063730322257867193326378156386621753482731317348431238001272980109553844394488039969807853234836358551396071264061909861326693038278603567611828683235225412399695768369113465202652934889073537085906572637220933584848360314114107782586094221778625704118796660631130887846072552096375917128640087140703474377261386547291582603428524343725451250691896264668990621957056585129503252258741290849529325028391721138403391564147584557268300115126133971599893480122712103267501374634220522994943009420435209556539877666264975525021281112595143721147727722730796217912038264018373827219426879700708510701348127282905580246601758131404199217532044595544123896284139367295678745485993476650195972957168479270815818084105010437608606763761470444155311728152940854259516773519624020473684432537042537325386281033861839472261588505833624608988611960163709208939343701850642198218047644775543159645682257211586189002978600084768475453003204076390264941011129039530715243893575977243886860842804487746373582172615075351195011806402128410815183654175122674599141890217992762475190530523545737929999812924584354344609018725269558232266546406092351440111871471862190512225434005363857710196034281152423353958607748447701473712874142020521169854252438166096657341851873465724166912184952294373717631617473429685745543783460367378156228201516693092360204575049882294384534426616495281653682430668541080623964888961457616808256021330833198854590896900758810121278487555469234985252061654746125473107481427855502566520970754906772417449349650210433432321490374729358179897530310233954811674507060981070401549113926673072393338244941297696102028376976361241507482272514634937534253838311583332719701644832594265164703982334081100930398954854311507012531658437141864369596323744488853636079934771837694109181294137668415353689017585500554347878095403595095170811365179072902913936670059961303302643289014757268491023636017842473252951376977352737386453120967837299045276369194369700178282735836727645495908603225398076424538613703507360421533757470980084459273972765355993821860024106319534396460442304037327001698918429952474225683646150642520246245148225306471340086785142374392262806123982688227750547619400492897076686012766441505431233745554099570569272797119461890953350224010384500458469881931055076236834799523598530060113334861343788450185307609803593247867371531963284471408095779299165809416503500806223667903091911501196499682943627682114437258622183245379206624857000968856893681578916066253693795105284237067602854917948372667990708127268066741513297543411031801485175138928456795510955454675117107506710844212885226651868271225838872362193347775685476559855501540450161558758546753567831852325339936418564635438576404503362120783580699162826496347903834787560025884403535723383196002484869851353862213805990306258206616373897217741373168169399471682006218791054436119429447247634975963860590038495667497411962272128953924401036743060582145753079921482724866755203833289007151441500012362376786003057058014616688478723664176386723413167405695669725775087865595114184262571067778603616354800385947414629305731261654955767295410724928838628968804247319068095097641013252377184008284738485184595005448211175433412578979034216865860728921056368260772971895526211369452139779278557081317177526967643601398954633817285400804467541450967880974568613857025202893633200231546211669537262787128320026974307140406358621323758392223580750278971309449629001578849533887443398710870513769528607421829464192990232555747662969941040193166519813644698714600606897594241846425315910055950443142466444394562486728680628910004652917493270287993530206371374760657914547540409160467130637430050128521176696290623472696045065447242878442500591745677087342489560259768807971948678339754932501087103628795127317256805715361736664591854214843087266812630188962873830233213851408325015101453774520483520270750299256032379428854319146542374784418202912708749815008381446798501818949938386813680214120782124954970926302916378616728972377527129997394332061396673980689512822311229236992092530971535434817066271061039077512119923837646043755993210704150903401724177814824117064192960744059856400549541395739942304552337601741443622738503677003765807333267386422956041867871795041487479006130451369138827549857493578923550540640171048735323840792246397390921332913583636489631555682874942549341601363794794417894606179193817238472800957588665520568061377676485965474361812129658239562764333329146322961370398541972934985674479600416513629301631392736285599341450470761852416278197824726056018474460262815726067937209287904896814579221183289054510622371924547434782036998304209471886585431281452432854176223767957206013205662710908389489477798896663615820553597871446351199822867550961709195402362476638265075216179546417270053056011183487711781024806399671331218512550108406295096339674393145928865670400987401605126911845076805781262801960610556815575628444744843953220065583876139284405409073775322143888027553352397414027747120342862975877221134310616733051319615403064293792274890855128035520127747071090128465453387862166769770777279221199534488348376655920428461287377628818757710323899584344699038051619321061190897272703010050928655216896602465937342384525158445580698930340439201775112834930931529921339118135717843111043856737324150528803266011596368242664747551551803870300416043274281748921048742921450491345354628439914998900009121816326968877879599440814013628654062169481878514095842764241483520652265533284043134551175332313920124204127945596582628852517490836457408296441305653627997700791714472425036444496807727121769324230922422380338321289027355609829390060155836293309092317335919752043976475682815020769383229216046053155869131911144225039212733634458427470103521794390440878068540053051708532562335738590387837226950723028147220634052648413167256866720001849636440493527180705727695859443045042482019398878266383369426148903270495322051672224487510367766374541393066826088474781219970248388145250004598129874359295391525564431991236192127319282962892559476612510784385713179797055857275573979500325103390042049217279576998983670781548293757735967080306392818298834152906190949202860781224918464943225847765629517779682494879941773423648207703339054310904778312363326366422566666821976809633931337181564896718476084939336211493396305168729243822521447086640826199838258113721135789413213933175256975722915397099554726804355685213586094485192542707223406045634353557621680255747538002494304514561683136307250305959740024319736696661703526872267013338429896695809424524348727711880282353471361502404000317325755736230112083670685671198395058949556898381595753058283144894193267041753975201877500023369379464186074763728807493453097707464180438695452242540501469490367118128206990482959434471287260449579914257759648408648437753166838975293047575116703829557645654191574219124439724773619187797080307015179836699672910886839499161030550046283099895084933077471654601637002134485991455228610224247723810661359774430549851162019167125478784502984556452972013390875539490217155333474405484246804673530678536252020276435931591948440416201588736046692470399123622999798907987578569700951364043670804560195384290358404546675549185205315352601049791932861521283449776476957333400718265556172876515827968491538403644942291382804040792768667324706966966061745077933633303225231788089889086428853374698772340385701555872164230326839697504482542241848971655401546609263716468745524978235496757168819158344676740121892284988667368620639466426634914868439693261552311146104089469794086312790869248747082677196196963191528603474424702844750797436231771728448155656872031755551693520795432064947672165741838935635898793143840740813790083397455883163750750246465563741312190159312865105485873686851149579064545968522746808876112484448697935502842127415070168319609375287751882732993863391415341300112978227947385472051895540417153152338170650590223613245865347825404593097983774846835141522000606788404347897279111657202591958492538264619398717622679615245272416731897592309167233382503969518981402997989309579665535082720169054574359677215201955844921261986082386834747040659203494363234756630402840857857801214230415778688574144079861408913261754566915676799961823519013461822964043759184641304934587764827673115350555412087454395892808209650855193986101523113143067004548903295315471852789242812312912507736893899298251581957515247471181705968301382786209254047474037792916417625754546366321490856538316026349203083403287914521519749523520899505957921941235079973116723440200795575371576832081005873348333562060669704294433533316519316066806249824708274667764389603331719909499060398383809331717437639312754643355770935010271001152625152108081160934536359726449347180152717779894149413394515711104075164901784364379517161879370533174096884549844358783678866605304762676176771749528100073391459683772728866057922624102730791390441396640844167359310507014094697388237676117127843560859020623024745249873184752054902355202550551079443102569050281906357197177807212817872443338202663497349242353934053875550296434007542159224945609648600556307917194385013574948438185956070811544448507313352005736032558249333690055692980897474115501953849376809566087631156388803853464852397248953039653692569935373978628478649016446061829918782114991690578710331393767021375229732260515202443375229218582293177655792708496263443345772202477795374151106181413280145301887425090159461583617179174399974034358084018753202419124952385400784072348674120727986667790906416880560301197858602898775093174606343137369181998558959480968992864519999845438758917032038191361508538929162202042939364729701926946734724428884768157814820800154429772485203335633187167107505083791543935844803244092715999727489251363425149913855564624184127345457193461394695573000465433426313781899325924092626015322877062712355894824961931086981291862435993126511380577631681122214854861091432727643706808818850037257790361286886628977406807182641476061410357010063159208652246022067330479252186097589925502808880082915620113798743360762730079048926236160595365009437543795190926992717928751074263356037125444747870534047959736569929676724020240238609710769251378466323039885323485571523762673309036320078759130955775633791340188859473431992467460019659081166014501459133127220766103437378805045736285119421817373060020905977274587543694288000746134780618465595783550845061900120458911288578000792000560163684805358704218467918029159252751401053010395694175432719526737511975390971850953309355923821768307188622636619612672721746565611916305195195777427742999963881213173034986406902077712384169789786893195014295214142465918832896516435047716660754182363817231506129709004385423802987555163012993591892859706888027011340810372730613529138920833306288374858757284589669698650636054897832744715533643935009361265699893104836346860883950723572570665679833641510532669676846265017720938755627423159197748382501668373496670346641676853003553231475339226653212362352705646846272330034832251723913425302520020271799523659269643765220133392301535184973719153251208746631607983853322803412235999408575671524768117227699984012182399217109255465001579916185745977667873893149487093253385482096075704936746337328381486611121333731509400129359184363876407231063627312036692239315022136099263631577737848894556507256905114137569571706566523390539033474948207924416769927766467288911759260722113707244358245263810097822067170507033163518020297402244504192365974964314076987505664648899928570059218470609472253307684792929298264684986487098643221634746972088171841550371589250122868199718272639933823236152345580527206634935037469121009565915669914707556642170622353540169803557582678957582812101535588274061629579569223929179097305552185505228177549190759910811066140222367596712980066544849480873665458608096540595913985946697354286372250635117747314317582746610785734174477328477192020658139471904316754185232086380707404561165482004311992053378789877147769408347270556231236585062969971769667530876781042355076984311052417726829877553491906106669756858811369030478112988748654527058876134136133114233869759414255224145800914750614425768870387378505855733670712610331075188252247680935422910973202565066764969274274909455714668652458071164335884061806254504299341182297128411436460862349327364804023987874515855227359908077468994462035255326718825446631745785987113175759836686975301525247180001587794335090113109672354791599566476101299164474876976499449527199254044621196695782596017158682221330148962655221888571124956811292450636504504933723818953715644461808230177284952191535105718980395242044119718194270767878507812813407735540260056623224094321959734330140843937144217207970958382886574250897522190308353392333619288937327543302113776398332129253039781998075918764155734403638780206699030681623363515679659299892571402051755133877287850871323274294960928040651860994795226802204827435888822338681624045513305334045424584438808456652584047683306402301832190110987468396660810597621872393386645097676986931486557337799875408403806343331157865112850719056092581320786990392201095284889924230743454261979556272288011323668254716963450682559309449593456228016031924815987232584493364120263228464800488444283278068883930565575532010810584346053482834593885265716053002428773397785501777653571639733474106311257161001015048502885555239889063036846669164557298949199174285202022907312151090359883927944903718005057321641196145013260407346065370225812455238445594386797309613647993509276835141283928983095053118815241252504622277462660109415010463093944936265713342794640739298655893891869242644588391813321954003702115716488806020871559112865716914291565085228084883888288364463067753259512410765052214673110504074153186250801582546042048522407200662975480299538542556063094284327061969063265768834185565656819622723580404105441929129945331163940041503278502562651362668495936716759773836037837976974751846145361049326279257660373906303329511400603120475159640381546218340789430366456946698592410401619809163383586867024551296582641046968620713358723953437937417906757370435354532677143394287366498971298106162488658312228833314585105066563740753790242281274840838693695362410598947319151349070358571897773243292873597323115668706189945322633190677301172788817466498513050351086835076743731844657643221829363819923814646238467084711608720605011706713574954021343425334903554539754270374676407577833754260390827028546810205549310472637979122578815820607512179798292356921331794295493721207261263409212003371313584430181858063093526086776141789310063350965647205937794524981073457825237292602998653106562850107885602564727867126826772831230685772395327714261663574518753456874790094643960089277806005152545980593147419330819927639241748431855716282927990048002037957593281012978722538894183948155956370129445973118259263555538215689883021935027918004959735936388060798603246981916709906886024068242208537924612248284716572061677971423223699769743543724822266914646702116316697581322786809950468314519560452864732041355315437608066613203161275739361202438946656169583894489114283157567454689674307787443220830920035025818214809865150053593873105556165553845971476301790706779542841204002781312638027023055210059458241307732936567551948044466129013007731434109029038343156635930488294863590315045971273445602791598251535425385640363042727897562286199927329046012435432055105317334015391367174554544632348448953811985703808078918726869351903564848736430577334606512673245336668624869178667579838971056711341072801113045969601612212208940338545790783552750346227987298542830044734528050507887134499557152448399343550576367008473581941613279269662105513512656267877704363257650587860282207352328078716936502325896570084305365144788688575240085171769489602628931849201879973679860786696854396120558924579094628816965931182045233389486446402954415063476148547244510160797590770008886716908025531730475988085410926588335992883553541388968084262461324034006642949589743450549561192015053851804677306774254446404914179285920636790601742343631677981284533054976719271430155288263781782789785028722930191105314035865671512556398387100834614693318553267970144039518909830151252890487012061410379820824984580624070560546979472967042687015667744440510103703685467753324180649082209182004496319610514477737483222642629169522937214503178137978916128371240787353720576126103993859612309732158797924981460519556171749363979906840032237307767275937407530430415458694193209327294254139979147536875870586544352657833410978407120519376672469416004482789253460564732541827789551372978006183290443915073289483564053614665764402473820740621437524398212395718335366975842178963695782209247945674324047744322992691027289894235709314446026421248383533016744902026244017283346891195835377287833911620493585406242323344776085292095331403942963917396989836475408682573679182645406539570203617628907890246129026523611458191229218901558300577298175395789184483633590873703177559235727191102343242766637812805128137736202900239820933712997805850948222377652735813300436667072658018173394929214102219560385867820202235826267274900517578735310804558883858091766255706782693401377127677383374139966342806107424662356180225161250676917299706880591921488601782048599456972341778349023774981953000436192388050654905670142352197199421625076227396038716457695659833304676258498295981571006838940742451777344028891013601460214207305807888676807833162942152212727733214952429486778694068770183705485237878897957678784760956716898680469252413968099315108293356338560435377831561299348853191000735389721344242628774085096035033716791293624186962984738091001848548898296375326556434441558847489771615138520976225340156965950358638936096658713553404869337506012076861539394887301041703591298674002587414164356543330050338909016321829190024303251936609794140955644146029946253414921029976478590275611604778701879647276450868275483852913511932353517214008165368493158315688138450619856743079169012476897289238366584267783444172378773488024033286367465336425821193708280258392235370209195998779566576466391112424009946222859714991244918341007951238439081582028782688718838530640231350245918991713598673369142975685348439570865691638831155619059226335957843849315082142738399957571580904158739301924310032507291614642760181123475845888030699456749464836873091971609226611767215575435683667656762933068460998580254658449767002796866760953863332161902341734965381034550196865880375705742881859076426210611900233429649699925400994863031853558056711472531864694150643025824883832068392702951976378657487539135771710400805277901391655059772840080859917417965898334525486626598247659267230337616703639437885915765556033531797305961325802216715642685452250290616358135644868491319647755739160615691253048416320188683590218901745399168794913386742411989117711463235159691457155571219056427041232205364607422837717433098338606676242649476431232990723133842620878482805652765201992220836614194677198511544230741613741802404862593103198815140596605873725775399863917325818097773671807424477896404149135571699395184764532693824485007618311521159704624656325811597338856363021173342535431427336220490371326619862367063718006320639461860635257678051108347500344908901186980524373801748669450089500023567861351957679114611734394494291012413071145434847611009475729311725624530842678174230677710985404141534852541039020946700758217225937297784797868382449486280773922132685029776176703701436124009313568712814716329810091420021696228011848745129810862000998135193195867867123759504829095399970163860486007442884520457583519156642822293214350614684363122693746805345114271611655419000768028232220779674339984043622772043982308751296263698448181826004609157051259203590312375505077878676023458862106155599875462960166411106107361190103155938454648762484925032438943508908230010642861523982687875941189215655504181112401626130120560866406812659607587378372965789186746064790561388194290567442209148900866703351313289262876299338668610824585966228370835696268574345554274119245205172316708155418336925995070569968687477957211017539146069489421319047727709432080928934304875986333105269588021397909045505467721430717674392210059816539442361365547147104898916287057488207359551032587890714246535462447961134743383316380594338572561080655012299164880898517237511644824575603571178819279248802692968719508333266857603254473736718219349115798411473746121838819767061998997078540476269441445774968416624806330156251342023459298538273063019438743931837171156657955405067348583685516203984980050104285151809760526122388151600897519355395725617711077396792178485447363034866718285773542556297460789901208982164756324506964467941014490682872599490839957354103708718954579452477820220646424194396197263616598654259666601999175367295179260636330661530437921457506663376073920894351433766792403025178273168224767420533211216168687759854611147233286254135723578782926025810909729373773933524289727533220321499637843784214611381348592150493094223269165287521847271528403969272552291103823459354169846598684689713652613636133744546774867808777472603922551045248573610802903056013678065144807888339950623532395312729544276824644818808210901706948222477936581702556210136970586249589255367906859304730624458862627426148113424529079953209683577085137554228522014136987874120407481225529771953388324826359116408659900514043527393935746642965801349708225574943958110901014157698383274094423430902179900659290621189489800811454673576198977494166521834530817959674007885078075460365979485730454015157135609979927946424282998654781321531409567305573675762945228748790419514620197529970038038992579988700268204030304554201499534477506213071393215047958915089061955604215493935937486508353427808710905725984394868139882787684760066022634095421910156033225303774674988082058283856211486411588033973682801461117957286602551199465819827560879041801426927321441475072541372520365039870241730897408362204340260654809464315945746152472046102108114146960226638044469391829887410441270016908459474411589234400223332439190513211505588795469881157945698157117459471194760681425397383874346976396918830962361219189505019568032255362203554384941333585862023967832279121753246118576037996935664266043281693057837176610163512559941951273486582353992108070976293858783477624366553528703232954386420986235343110859622427835177815411160906904492434200659306197420017417196962246756429370511927515985955117452619225103508641540317443431350601800726675415180428963853455671461624780765512769980570160138790550290468599801601480362448291426106714151280208381740114277447314720810258601659131984398942017443060002150421297292260294796771272625016761674991157325368687588215714072552118171073639019003847670609178517840127055907064545908329958892225092794714044136012796233653939009927060528499572042132412955701745556611329017130432923535661499754170535384568429406441671427496787365874318606823624725564555038460700442787344270053273803651450347346210222294852140885033503128105445294709439141853955559172504119453643700360259706962610852641217095365700490075289023554721722640789247353040265059784672574893702453257096948868265648897096414692104261304987489384747684738038566580925203204697803391020488755283591450897836945311708295110940123388735978771157903209493467736355070334563501899347346251782819900155085770017525680745915785049192410544838718691277691774952159133592478980348807873114567207518017431176601779794479687404631367987600832993799420530523148055616065019571358327419947825047380061911481891383308086509838898529190805908134978989168635906321788392203687014105339053005989706045422015372700977664708447506547249342636456116881231866478777378478717139842925420953013266703429459802076850071586925564210259462450322298497219084765047421226475667833235041526741977346795165599050299883229062360056902421371364780304693897787498952130726891500578740373651157841439476495813857574362153463145942202036262348234854825900080461581218628182925806454864794846546193443750632443751251820888142339661602863831770293381271018571726046128620029177656088594206497452045898056461389212886563017959136526535996057458159020107444802258323601278119897464912778258536934495335126735166258488220087650654420133948767814825785584396976278861649035549466606786412665334615822271235611314901188949263377818611636037209989297852178802311440719544871484892313651611747005074044981933542090638905180135262799483415112442582785673866667502352487749186614181876615611434387324270585555226316637152429113945562519243506925512377377562203635355407604041719016903957359086492479903006789279346169553881136471586859951651057525800801046626764493558500079323759815486064012637386873676517419722766590670073822474080327001550050282108703824612292088947387542602956411696355342061703561906174612175017797711072288492473270125080537218635795549532502120453396115733622733133140787761931240357467003919210704903883623764112097784251496916830815133358352807177660343842560816448157266507846761071068593484383484011897871938478798809580375354433895130947381422773936370722858464207321039231387539158482440606800782478157995692170848101004497667028317809864374480974380305858135267802285931834291356032067233508520690847347742940897509325753282269996100791600719515646692223287712656104334869797226439661563796197624117470849688385113122905602908785280572780841274070185731914874714832074602032049317423340871014274650382423888400984461643742580676771339512722893504236640576811343139049268885935717631223727185368503662347116597283915407475096245841683133687716106909466306931485898316722681889674287154586758246070740358125539455234831546779029220833002744157843977009533643593061072700226324814829125700217062394463912618379790959652993472036327496120574047404725862585040442308200712602378005997342502398592293271343784439367562893159926461112868565986475829402119566932306921922568750370346785576767757869494302523909063641563657273955448705588355710504083023915550887349708625099981498711947826583700809074174565281574509912119054775663714271803887480258091107147762620259157496019558374731983483257031308109555411706141463841562963036700814046303677069174188283965389492246901930729500142366708179894387333014381683567920989435538823146827769950424552768539555050064151368490309643874724677776941857231533768862992144551638938198377987665902843890521618529413175609528514357941466891576071374555775215844874630303811651904796335050900659171622911066259812976826218763677004700822451871095415400638998915788042147056759531202400120407575895974571055662106630883309383040475714791127894879282356900416352050972563095808972816914151486279850605163882059241977576680128210457597017408021517899479929081464903154785979172051743014097921801742863657942338078359652078183376341333504171920771010899480622929069336506876951590685138474646907343861498028676848988306676942619272819049559460933314672296439695356281232730790015399790444341156769679948930252510992158127306468455419422647540400687993401674357106061460061834292136944079813942134165542070011936790563766109508554795127036560094108437657667609786391064705786853326372771939017379779193310237516130223974668723741273407988465283192411609442453831723031913667354185381944081958732970374242426111742050557267926325379348686563741950255815764318537477650926880640796065986006710345326647578869573338393182537514097932918406936013173750531073831413735533612339695812787197171667855715646507205895616639896986327901798059167210004273593389734230430231288314949189161725001152824093565132112812037986404414768039825688079983893967939487354215620322514763748387534062349978565686680958929256886416795940534706703919411524069541401640210385165933176752525407722789798218057186251279211325310828447756204790879280800937952655603674834563782310281119251318638446249475290488455992951536295403449090530903858993361621328929214933608060455523848034261418539040276381098047394010479660308178464690627170199557327680455721518167143691979749764952106750611939987493950830967252366970236183393493924247074182625989664782289103754452607446608109224699606820832589028886925395658269362390414031661189526937292958490451177292196805646336360929133300680541758028003544139754976689388041224039733098967913718719449740160007847658735663303555496906412396506282104798570611433327546953272777046785235391914463910799955796412239891622433923325828454956636317414169465763302746709692485380139920180109435541435946291829882419526794646832643791158906820279502973671880910738235670233388831396506629071533549673301995118862567502039665312650462039015892507926603639779933881460155161723086330567398309242751982598395834569793867799312198916073873582273580647368420107840410273218834339935228523460567853143675314899760067478354853970859660251068805861561211773550575074404170184546955709340116347659606951492951443629700873941954804504631621847773571785396943574825360243477552463432251324090803913363129358037405741825620611992245333532492025111127210242675532281802761437615249420391678892542053046426503848468163428160177023430401507900135574288838305564213235220630422787258476084702210357631871113583762040684631781407608265108828788661829876175220437270380461469873238011981095243919856396859266662112050223188178648640057094060313965994165425358853467772774362396088235818640954827363901930447405474551074611157581818697662145947658339463346980684007513041454283497781334288907527615455637407667547003844537662948631256000700175181180555722979576642242747009167815778826127402292313307404579716134985880374820941513760698416085350585245058199729007031518480768359405518399824718036442573782952507497773969344893247749349781879010895835465649484515922849066735896539667507671981049456636296314976993003022025215079526650127643891080712700262913874924558022469324002350136496766355353701156202108574453741822775289972740968166011946577186397412024345947023157439005663280465187735201876581759643224748107994837287806194948363171387418023721872956413343744117004095458030285631952429259016698912423464860196193774122087703392923905806241514128147508392143883071118562964437012929591285553603394344885520662365216489143204033440445766549274326607929765666419122945668759793313304360328685889826942094649606363222312792808609829426793098876016106468878069706570342365470336329621064758920134358723291494597208720406775595686500171922571931614941104922261769034598534159842802682835859539495181973817182928394954909250060823073611717225395003530746898200825538329752390709630507390255821353358482693436551523209525091278546045297764284412065357312092964353246171571793589797188773041164118795879629573587021510827326126097083001481728643570092400792834167020664911919943190231822988368403233028948825189370666060335159711558952572651302739665389342075228342395884799426375410129062259841160676624658010866919324754871699549630008666393542565406969936183677202241617886350963884890609110448669814696118762574383823172084550010832488892477945929705651154421885510924183073248514746656597456992392654070008659659697434858148350895582693006922163095598684392399192930071388571707043747500792604559440520581719277799119747810608938139069125124497659539155299181380528113090363621398303143025054426490958717837697984521033487212408230255033751304382781161015550986926218687774649277813943318495691096508342755849076467947765909990155122171630515178452395363478960264855681940193203583457297866049398185441166265587132139424607023978634508802199631671240641321262430061910183022271415070490692030259599892438864762653673736715512999738278057164189097169276060422569044337305242932431211264302392717886225580527220668496570038296086087650503813151730286162513159790823726577800166348016893683602239301026904303894580477112976464510357998782035250317960160436108566370459182023526580400025175184883579980055664162864804750140009414169695360704062294179278642177368484446711809870476936349144384065121813675677203993289368141112603507138051728490292393348493651244212306623595520442917889741531660863107586981319009569871815857140282082147409189269865681051854105061904596714029145089264520976983313616666393379697828102857651127621165937858552816047815804863942096420694403507284163599870172471171850644755709502612442064618723768143082702548167634852530142741748906891462616200892940547415225913508068932610199737883297249769283544694373450609283922032868473319059371470819525186514868003934320187770758002258135407256553098696858011581062019647855524086336233750815443906869471774306132631968270374597655816255390796976182716741530484101055566362342859298244675111441575993911682698177425426024684806390039314049594310852308039792776556809010337897926396946472667062503246522045569978118907480720981935717241271328802390410131221491264468220423049518869335268784589189795547226767561470516979043771799618144274735258418110813003401488596724840518212329828874077495654969767069801698231345012426714413542956701778877302334764769881434905351914757312584681880642811557502065267900564682909627916878318219422497777208276193928753633357467484235514162837143819158024863002832191128909215855221187760842228117686349375455971710501198418178493218447369471391102742436716110153087339316718874784197020829163267915535672571274953190477296182172457928174226668204307678437259053461651524867719307396136071512773122042665668192096778101178612797665724036196181464836611561779487256844978091446364032272707539702509692348298094265631738240398448603179009809772241621979598812288177523142977748636939542600797040631597316484651485134473200217278507145893806389154646919152876702416900057319235463171868021259038710062123390905783656732954536221883739201401104995637600576688433797385582925863733750890753460121609263792693633681814032466042549899575702139627845300687337418425106011264822432524595705546440340479587895747934925849599516785647826786261436199683246418801540070302103756104451856886263509529767756263908634122215725817985774813519459402063303454361222227545291942637135831907467533686726057295173939517728017960511798145441387336598188153129981443463318475243331574154572669673760240197600901651411792898035210926535674978160470665544887762472910402269942510143090251166305887475662446794750327786570596985066466240579764505546589687885329624257312633730854353258566663168324193819568017558525615263197638480463557214325991004162160820718326761249134921219509793077849603657508577449447599238817893146753836077779912547351075829740485458870875304621754756616591295103749487543243753527847199999543490593578605325331034979550173693579488883190031547997184032020589565192983436429046827538921180807909506046329557145641446085195872048354237060362422184761876667727621465563707982894988103717602155948547200662319866541276949727120967531302759803541761906568761824575767861272419563930515883312485399286314523316535304040367318786484827855731527629305616236952205612714098104670357909245342090108636410883029617334270555592964558989481094643793358133145752513330315274961084174613495592355973089328893216344900904825978897851526697671143182468590246861559000038169037373795178857703249697588764574424483889248917284326895080891459582994749115580254547696731599149105920105038339331003630143275728167519929346826346308384976469662319267607836473854689520772049010806955476000542172483074759171778708462981710935632436310928275258567919228194710641714231974022043958279884677710324700972662850030505978409425162696994804490214863358219730820319267895478326634426908119329504202565579390307273759139830749822916803181450394106085133779434714041199244357139818422461306835421475166776926817656692542805936976032647263461680689670797762852470330224471028041088129139095650049048505369072925049084296245513418397382244396076174486347638295783329417051475607003640526181380777202048824559940185409660016569770995704976674982299112439136173928438333246942485054207277130594051041691670374398411889782234042110220537161465087128226663835622544441655412377157739773491602225938581442148092522783166834109865027050109197782983991459590334268907324499316176402308669613050292967432238747729577276400575021984915675468079003318659213477104549266962320201433852349532683718443386851240334332052197019629845502886932777840634901891124060065800938807679626609583126909185436372916426507495731884967338449822797820972962304583807084203063281850065623688035844248732223042834997972481967228198288084275231257721099330907547774682143710493761940831942342866332736196145179868985728497457006844817835818026658884444286636486767935553592305482138803252094591308779840680349112193168254821759718410948166964152562405173540744643158679211951529575603201136855824309880308427153525944002718974976928853213158174253351277303600150854396102898390005237783621771781058839443799149908255789064083204153428416677980721816612194885334717486953387676919858422766521392200283139771984983055276891114886786212257451493018094399377780373515848747425995485497186707389352962295970122779711851884006051359611729465709210412695937843082049033191022032603180369816197742426569967536244015758784465649920153409884900821706037213839196444841921508033663226583221986295596334076961454876751899100626625119323901110090204245469040975886526667391742245263611760050871559717214343247902437787607569435379970185739611973787961225690826149966332724231449510732698548674251834200774994273142258531044485223364177740046280280104035164800393834796492325364310916721697273612190617118443787901503403819096237178671188835786468020691664256111880284161144196454115993485804147367257197141371863014835275394076640203367656641414738555212115640517380584996172209185714901080129078628982254025156932792501698937320780124368649122428320590586447339039378816587658802339345081954387453728754208570606568025438103127012699060029973973938704437917771522050338932944063571027271798214250739186814229713332029020478262722310259616736040279318418974427790266057618102433264750919654419264303484197220527498142196173724728394073891162858129755429906682969456296873829345163612204445728850598401672498319430289596461415630223208845675796905271279839460137426595935039831625155767631809100825314699829587677722142698541422066167123295835014609970818782058725544557592241646643297400095777603196386263291699745460763271217119402161166467772666323667255755439401819096878383652353077401377837951664001916871545982848981202057080708858245597865927522573340007347342070577970418476399420709364623036475126632801650394547132465959654019492253083184829384885703496893221840109838373828577363976731892455218860624375408274004337720831751144923647391354540279108566159552208997087733180503723493592215151972761289881124479260483004242292319085983507910433599536591404374468184052510438539867328898163849229443676234186019271676703494844489943102687759645716334225734325835465264732765020541667371829770319896554926006402843022798476953674507368829854611686443896474001301763448558100004357688239069366292332515106235772967058379353192105120139452744661948926329324386493211118621127964418115991977350594903799606191916151167748526244265079097862416371400007172285014450552498827603429071697924451793909005868897403994027782751868712252880682959991005702978133079149426219805948809978177672077926257547758408791012952105449925051701174532341306679114523049211746619803814293393033291554999732527084669498511794834179543120586884572101692077412731930583074117932022908954442587082630080103052556407635864543522323552033123951418120324385825347095325695116732600384572515445526405058187444041208417713806650769889380032649522496250731605824122324030986869392788749577153298423077250021884391816359600201240161295723934970832896008770866918732422956932482646178498852706257035923742749521627649264555474159510199488151418833625395892270124946194858925946491819831744705465273279158980877271966437382301038217619972948185831268499934606226215715384169261441251069135126834769139281410212889790867802596002154007268669828662164562066123362818974214676844453873799506867720126755232638031336772642549725618185234031695838760112596545167983059802584246356124819005231816000535958817405097733489381613474882190049072092269467845539405766485152070707673287622577443835511584425685211037156326696522817717384137808385432990817729545469742033372904953634276225936631933767537090711733063712216550112581089090320103362296358273902896200667854410463627598446903204453076150470672482634830274958520904215695586896649296523369324669910974522422341966349076340597916263941087553268668438739888331620271125096196070956588023853757906055889729314597813986910008655773301618929847607695274621702009982330982262506223789184304747696260972739009288171272453896114150550333230818562454145810007351146623165261827176882462221706442872787281224945778188923504153048768482533507431374767747410035064434056590979581567119764103133526197241171834995264228775067120185029940116331809102949268209364988729043831504708921303782988257094429308075500318651542790319340669919912555177004364878689122898820828497397236730565475910116167521609393383496486138349297001992037483732924497698474948192869025710453437825022882196662376035825918959985954960095251101898154623701651028568821296227088101854666643211114036521731506166740266034499554046528241663967512310323081646302694902607374828751766960763330069577727545876509100490259975455435239848866617504272378154669892290308918237445762693573178338571999602412884701923849919892911831480985031353043804394698770462999707955149262169266492509277986880283886471865835223825093373969153712700177007339912350505930265796089386214721821506766635369315862038071552613675402686246599114669138405342781723892858436944959516668452762610227719240975501100379885734906284181234105006908679926676006292279770650869967794358357793081904751392725979275264573547360747889470222139170354151385393558769259573111404352258507252880035710215973986091023185035272087892546235115444700809883775946617840227585671065485824591440161686951003213898555243130597108553009873786479962846761790377241477473388841182262705138517075295023943545159238125946278206381107864505157087416809770790116664813779065703948575048750854418090972520857215037834080159242293286388154675779880500471850613872842571788115493465622245308866721169517169187519303740267069977881445399392436542344920940517926039211908588054092126261183866591192160512442474870115988256901951561331458067244001474833014207032323573035465385302786059221607711048248138560592597167323427882975639570697646331754873323581149571433924198229378309829856918669617464285923116635805691617207340316582344566523093201213850974350982556259520668949629211291001019588239001180292209709747702114509477099801736345564125905492802770101946272838368286792924061447316518637565971903482516183428362346105983009422922891874535704689526775081853579773172827021003275800926695630333898874789515599529776340423147696551136116315722309379461540251415737684751222996289413295292968962843254094423513724673050719729332483898486834149601016793302531385751963096084669563030124349855448895061626604467453575855639542838743122827762669546507613405465417541230275241211647915217584539597856159715571988330257592296849298598678628029630190813487243720848113259442491869634096444249114652551978150937272283172717376235116764888531855787057147430180670405632327483306863010883528097838339389013652373880890584296767605908098963392184195102204081802807088739896405871227648091056405433390345792865647323408633464397259881073822037971030707506296288027639372191039255518313511030578512370087283584326099337553205173179711261080149964077054862608947033445197560476597554584360820148300251640847369010665505976748334236543791660686387056834075984891027465093985629087192274341287651986812956925559958787248969898347288708874848939943462735590489307174088641765749595830756732126604140917198293820036045323978029100269366258175729770679537627839275658994591350098499682582953016619568707294897644567012495989343616197034971011571631188060672559352149594288995431634303817070988416043168316596823409505653813402157625818564184418214859110865593906277861585752453399052423461808181823696868155306393468224343873842419657170055579192221300016489594079700616668007247711327883586860709161964958581693648804901737961747842607971749521187751394353794119045630395672074674991011363538558746071408946644082267678683711888867446698064650350209833043481275551793466324681281625647668171556457443655500394235801778111442257515627102200438049652914490310899470783564482350691537514499035241762453521841947412054791744446909117062482839441081696765283883748927283991136058142892082859448402884304164593210233693947550761069561060745413445276265429164790436189278189482775533280665444257157443770154202781322914546738372830767478611604207842817396788211431750172045964882243864385998670145163873716373459097475821172902856623486909147375629380390154725285276517040620393579402800829862929271137415706276938786224917599733768526488906964233651345057442943483853949647579463704277332610318041346690701785994314693210383237080706111040916930386553007253902115760166422660081087601639178566993578212750925319538037295790798714989494590076440860038345706397498185752909284326556493984711923178315234847052150713288555446294587191166127974327131021500277030547951811591945657958316159004762484711297674886866609995473797832249778540693787500817765628354121675176308041485202893409230036114868776823695135030753057427667484656465059117805553003478377441733786045112447009425543857959852419759764425488423386395362476724919978936239893684033573193654844236822357722088483885988008150678542099200424464571475893866546728567513890469600635875926582730151021245244847183063777175636343758267406479117422625921903089483320858882951169467853489358132152980284553905093630615898964268148388940046468625875385402085112987712882353845087232261261999436438886892670695826670970881018570448154903853613504754203261877950612425199016650912408616032938056241367685766358794008414936289918284190077694011129052479021843965114555800339252553896375523878571003685634888840039723543542224190649520655312158237771747130430711210801137860141575201084516578785917494818178757395747445152395374880953776307032734778741810928070751642403097783417835026718976664442796342636601699875702164768558892703091947271632239719867225672130619177632592106566974714564823045746277781784762425932814858478610485513673528591707501350361431287026124922892774937336596153823835322558698867932370944017492846427207498506820290957989991987187327895184422521387247712803257324676111268520627356813117999425608845383724765110783842936325200354897708827729893629028923411655908088147990219705398018666244597852366274139702007425512169918618440027173275851754183622008858235856099019753747601180352946847122546139620459697756541703067764399930139435018772383962472411425711046799241068390057268852174304140133547758758807729921333585749214253634333393769749414012076045757835746609468650097833986301929973115270702134031719483476958258762454867145360090054909800841877724079640650019027818914986072219724755998414122186815229092024756201935297587423432406625170793437628599158065014841993521598479495322072197670445397252162255699798502193846150995769101293564785764007635509506077766184449478133773110168554148346731267358376496032362304464294419284412863752564659106204050842692975599988899624344596898753009239513420440545362295960645314133551535487235327516717467042975995034929653057898964524380836627766836886683928800102518282969669332675808066847435156801008020918452737981803220167024812832076847965194251533714508531810102846666008647784563683984540548398795679886772469711092977306622830429890425825369098071572735617112667540977277555861654056490954761280355128095510465507817181697339466991765704304000376007877895203197464951592982768593768817273488388680647824299515853466000309487230870946911848254374341913215661536905090332546287154896666793310823779656256032390474472304910103216672828336281783592690435749238252774524075434309589359743612072432939942831220701259391523850989917983878998694594262722372364391151066926746358612821532787662292153642479921958858391802876122209452978607779978196424498546754240082045752408247628171867248057002984390258034217456127503587555931524977893495940897344382292367034721715274637512228802235270253877254156216174685128442615069662172353636462365995139694762027076867975406071881462539363202986667365656066974094092747317662801421131244557766723890809352447702419236138158204432747714554754417273783346106473020481954235854304837428151303703512384056284101463131226068214022205813251439548935349097264580735225399714685194284563983028590908254502465265924251791170872080721657738510910622080437886216894597201140141119328598321354804581471837360915519530250548652506063472477031661538567077901048472798376264867781496315676987756501817825996793535054048929951381892305696304361058171897555625239567979268897877615757449935037705463898129318799608274455447175010708285530973096542390576341496681313050936902276383007890876922231305385099081647441456219293283311293234322636541315788776278111435327164456666254168186523458805700562608810112104205326582415613886024089745662114837909159028546999960253587598079086198174323363900697008619813679647967288510543608514364468647213397683947420893653338335246603913594532225640332206773202869875160893843437023170195084000433223662793240476134316389069149280432972567549653763819728235514983127090018485872338668323344202381479068351153122193228016577006151536485370679257408006493222380103314935277446593725520072532729503982280068001478828610510455918411700282501041798422972995324463502099214645274123406222139409661814302571952199762582297689661277389226637555648103733185822182617623862129317558100172942457273441192016425170924222074842991549749797671461735000425446059977915662200074035182125943517311877871599474044739739667236769485374000704251893029931044453390686674970314171441645110527968451390153123505440441363721416627055089583798096858309560476336975122275255725137117397527330110341702112913883591091176808411199189627039803410582461639295487387983453674284594323367605868154803023393024733417345291504495598379363814020934260613538138985069439627098891024155566760354705810582737597024042105910096068582518279792289829128409663934394580978041181337888422723248684398565400916537580579475517881385844875772361605697025406640718096454402169998839713563850477355062606316347070360769013035412173419895994955598413837088274163303149925882230660833548146384268024299479414101210655852920898495521244713926451922378283862700191751017934965873831871094990585503309369214493784372037509104798137477040512064985871979880967589602288971853616528046179028699824936791472989981261630250558857163545780900391213080119348040241724668309089003031939330099137949295738473528189445130738974572149887565592142081132397805867290326345790240938661581999407893287078209911253635431972008683168061868054384968304035947414852409552020395671626511102734929706136226744553081151761467031442508646509206560152068000181971997569796018092180698368662666154195697650951975595123770832646362232588699615265460961949368231268717106899233904493037309899157663095432923749589940119720198283406708894003043870861439953815725747875788071406515386551419145750602313761480347219400468506188420587058475271734583962776431245884858803678477954465598527888788832393890917490122654456216447608129903094244780537993026653256701291546088364926458716838416315527877942923354250155655924088295786709726155132190651262266251746798785905004268869093203401553459882851202717617151978809357912455574570170925762998880687211764318281580019702724276120716087198202233022983967166361653377788497321115670679840549462227348978415933317861454161551252934894610467907546168114552072013706767737070069139715914153516828424096413588214173968865119252128131193808315993449998519395210775357313440881078697741489885332964471400800627704918213666613329306342041754481529359325228402549992718526457612744010329863067517314733921739373652608652139000528602875715690732883383261170007199197395138801959833427927791882431615572007673995288233119342492190739851214897723013774944163489196290345672236729114768244901229190932440148026632303877798754741735411130583305206570000632124233456634070840875894035342247667498320761062654660771466281883264441413343849770418101838260630330384857029330004041253968266970021546510816639865777222546005498414830190909148685815406125484348009376503591432443043161617921286555539306256219071877287262050867080998634659931510027707280906298244822118033870043621132739089035536810723962063859927790527822927698000962357071420620097970010818270285623093892530616913114950493360835948834537638567982924509985878522613184963572074938910804185270517568322148881802184518175375143908057549706814806933763473102369733702807585089986435477037071418562785112544302863820608826139446575207177380513608699838360297491239163847544043412767320973205672802065410810209950054679641975648202886500593943353246161922433509815987723388772062929738141758942064657769022757369225558103657391735160283974445505862865060328244603615231574594156720180020203198034035737322975532029515711122779524561554623635914893980040411694947331482145054478181639619817236395991119545049077280836399036941246344267052646322387965972942017680417631769277725691120864392178203068391808458439708840046468192158115560503888037214176146133095095650336410998964179476508531874134795356055521461377549191929701998830185803068673843650879497683305663778794775560605807695110000937714199669749937344837825159637586172784513436350937180463488980176273023128335162029058621146341318958575584716015047609247359275862286853263224659334420274138151594024791140706394429095627167719112620565378968891871501371398822145379176005881501536028872078020778903327813368656809650871581778642962367173391736399821458831428630677032588685006532047877673145927622112801869133225638796549736542196479457269534954067504147913901314851591182334456679588167037576164653505835186123733440821408041716918167327156773757462300667696890902509099232439500919051160068309698907363084336041321963560312405946801317772690498268297507430652524664589140983688762213147237804701177539013498785162318827166608865500978077862585933421482703453630795034017947005386990773036269069420934488936572992994768450026762550399469055448062551036567521804224979121973842421734814694448207298647652898046782724950083553444633870302837793481718320164487488728174136240709729909778364601786002448212280137306570173356849739542374356046553868425959785938255605767557972809179084587269012249948279217668530424158840433552079175674452969205109008908379293335632728399744532562721359969375231221433137947649139733219299309404923862574267091732790820841750341199757292456774996342846782600309138549715845569297081000634303148297746783948951630025430309044880969222393939838336359583902132888569519825500044006505007336798745346419848468382661092349009072785912410090846454468967565946853841458537810847376301702215282167015773168486420832361303562065263128000983846142782696369903402791009092399654524897773998107149245867054997497875548335558485715890119665103917042089600456490524648252614002184451634206578557496595328762153055401419708697704014526181433304163798303058494333970365901191388551461440540982172384097487801836032861639486127354415335143210405606875600822126442587019884783211782495381176795948748337042679945376125856490912424110087594429167137914955661841784845086245784433529225586733253064158802996493425427693496106219790928010069707203172745057806452051046640326435125093901091492512519436925870676117772156347448188603576390173112408707585926739614289962830067144124959720064381488177447866964824666421296974450509336745340409401439086796598425341591398103007596410227158372239098043927681749546322134817738950648107037169603918484512465617192675069130172523520803684296457594575053148417415379187980528143842974351073404194361328032419485525604855863211766952138374822505051762609178416756896118149134940835243200637662925930206710696923686177561783622006441574953997057372308117534899154471561267210478703560182155176340952298824157911810088132373030537131008223975706304293306921425261715597914054075727118324573459464333798794479009870526355964552982552686102951600049367801395943019903567736617817797801857229448963083676403953368785328919163268924327204152172753401041696045353737358957703431587415616815891487312420247335238654425349258376287631441374099258613293929603762435062615514477158416186440051104613613066328905792732822337086645378496882609507619892601318238900700780178537306715316342415958026990986415932550620495839734267733819001130442424216358501035179644604679252357310330269839144029554266817221345743254167434215399153181615525669105015257229606098109428682651405314539879300229140663300491942530098895294583346634265956897945261646121843428307030854874431093572426015854831432936752332127074947547662616482140953631697306453673824041523001624406283911225594399687531734973297581500688309375424520372561479519738492956271712784632823348908891427008746612628602888841939589987748699672197519922058386576447646815111913025091472087115368058716724274223609971956253400594697075704598120038532655137924824687851276516904904256455633825888456784210042486225387028862585322868409160825427927614148139829950488129502244294074433426014994407458620059947004815748602667053643607311213195228287730028169558407097505549098316571498727119226379706824355059081526202084525108162118244431541396479476138456586909960681193574639772981179934904497305484206005643000478129709953479878557636827554541052120791064984097539653942506156642427772453279032566685054988277551526187531074315452718599458200445826436522600320642402580353612059171308039596702734859046989100475173797138758176687147279332386519911560760374211968472091069420027189694568537096839475965022693397418685761016686658900216423813865718330494671205809002518393743855912415937098234690662148498400882026219769619836496584252999416337051591839858891799210623892150653419278335467102897344695966720687940616788242662053881888088050033871999883313882026679299855192335653832222839127646167370963920067363315367926457926721454011969164650103339035267241853369714577667993710526941661700999652261735700003059997361378299265051280103385611186212742027997980804694003724550595914536232703595084533754473731806279928962456801273916691891365974496047288079444441928388338537652404007198759444519934474160397878202969916441962657119765302669750033844427008914028052968194109561521706061445179535964025375353163309282441878446166377824410767715348137010396973842042844594017939763229787700540431367957350767959876194403399706252705512386318079800461455291857376945814626641038423404838311817817596127731537129135360932035954349759085596268387576079826594837649214745091816287971898812509889191334586679036030923141473810715479902636017575600115917285852382560099239180820676915471044551515533001230690847503152641236710346093471132565460195391075628843998845115224866121877302207799989804631325542643593961588366809368103681448055140716672512454398797913004919936997943185200887542454582747813431365801033978934078748792100775944151405081954694983240501084935031805557533213971603407572359558783661569828966199625999656836723501519233828984371334301721823367846895728511470826761695179295343364672171695891180813445912605103362255438065277424393831142413359083582504258980125732051902788711027022152204459780881449075957752033253532875974018831180762096398914488716402978322048534041172058947816304372847286879559781457933173823494425719199580095333343930001323830261162647319945142431013361989217939943109641984140951469281147737757687529787169963960110324925401159205782551938788931571228084175874310573340399112389184834636657619119813618431889372880538732406494692181263512127369072502736826091643191330780265075920166444020330170769489516034333324724022815815224883991368735348726401251148074690040074775444895214476699824870633618278615351621134036998064592142119823901392026743472890910580204999789792255284990964376224844892742815363422530846232513654489500008371008455730709742009457887783506832197406900062299009407969920715485320539747396961904251028065011046905332314168348649383426324176298805919975347783642472916847660261688101536305967013390239248759087874151369379966611107791912447544321518222542245183904398592229731922923053652810861395633596287554197942973049211574011266025263462267055840959396959569523838107566414495113118073291441665603636686748257594535278361491408101008970225238072409306125334974069371977768040530164754018011308173821815405186591946886817569253954243009009344768560753912651777620274074607386737721720814505519437758204664269121096818934536266170772104190313816174769791548025092124008752035791672928933333127218330272053715198474137980361881137108673162122525105119559591463175223014194580042454581129162001858789269219924641124080741763823373465655703125766993886417344792385983341547639552271906489303175352476280892162535492354099842499141310084487003997991926503220712609299999220410534117187949276615304442038562343569255948838014939767007706519576051375103706196690376814257014083559481885010807802444242068675671160226928623365779462944866551861343518067632309118081088159284150891563108189380918929987170553023228234588994827646966215474879570888041596925736245157587472120161331954641221281140449463876184439043621111749138887545442679781304024377816862511906634867880820562336889027362635889413575388194250070320953200285264718204997260471911469635884666026416625275832295322321327591327891913649194988770268484268847715527026229091243154599415696802463660575956750409698105665449547728045356327308919755301440011892554408969011197264991454643647643939545016325175082506881457653058147525886885423420813734363821378798855577589100424282965904644129067258359946477311486136497332810678491707599076222989336140849517143235041113974833631220031765516009554499622546396146631138299178887087515481003275602482433578672051849729973801422975871585022223449369465378171232668522178266266363260471902780502270676017002016960392642265496285551926995332341184881302590057772655223338638206618943175646047837267529150475696000272315389652480609850685720678982570420863921716638699429569417166588414855813338952805672797758781933157442227892384714364555282014626311220369801165362983737045256550513000055078593841929923695098998417904928576850273750715337699246106501577380601822204949670856959428103104691333528960377389420286829571771656215223185327808850812257397463863255086474297470054811277347011882244193902914622092923038775607889123164343163150227325447272744699070070854316597165376272591456033454342409799989757716611262244043295174223121933094542625412024912920092725870713872089234499318746762803338222141312674299598101863280986442861515542759365759672698453617307795908474375366325428933794199266082425170204403033131123231554700861811649584611161345495131164411632670106270109191600051416241877781412568382071305534482666369704960678624303840074178743400003040069727609640135815025409591929789286708835929183293667205669942925516196464161948124568344590648756982946024740290348362589234246812585029187064536831817895184927214494687563043172566521910880492724839676860292348937721307473166754535119893267649123870193560142055449095434572472403028643782873601895495965999781973236909926892698655821238437871036288226407491769826597242722931921958042498542692526517214568356612539412727835566777501995981797785299778880396857860725192270932576534396436375623941472442222498002278645936960548946639134865167286225395699293214098633719051319516017632426933352666651660980877139187846127769808794791216141268189982583823534598358130714813307979334365953507541572557470018527320042183349862963723965756403079028890317394820940739159501330986737953671895014875940606431822952158850527280202207121074851365392352876261444820986402095365537324452033686646869334515063160751599772417255024384826087122040559912018746701473715308890406574392524267238307580546700875977491679712942475511030350947514083851727007355153263317321606292875719113046222897171159536649170036306050402656316183144711227134771723725127214226213294489493609318154503183364929849059636788268804145487089802295280468845642241262354731552098859480088431281668307890281319128392004260419882431030418008748653741192397923131888239447544350356989428610812628260727034464287648141147756265026066608470982382019598005492161476242129413044128346253763840563642664843406695051253682533988439863514867849343916270598214296850074901863796833199411842416255348096788012081473604325044923048902028858436918633586160473621782513326808729703012665935099487674873184288236386440658408268397254774827644809976086536489953996175386176167426526293471722045399365474308645518641937665377395189016754935647444984436901906114202668030891777095327823328801746369067272568525923339261839482078946469079127229720389537629991969575524126045374889115533992686835867832272132614745943620668436729430974424753456693120103564121056061114824502478004914515221850639059804605182246892855941406693986731949971863995070997180652096933207900601014406494279314802935203699527077564212443821456653934192471982407246660819777966385554928761946982022213480388875973917132887099803538559362593941575971189749640954331701074240086233261559515358579367320706760766213156787654720190507669779591632648213044419444233474532311089266464658382888746939100205374196466303584001801075075106376274221381912757064937618435369084012602233488731821949163940331262181297500940629912671760856355512824333202766450994383175490376129601132580268595328664125615274024554102936035859526083617143334720224300302793663805359737853148792824060223951365747171202281483478548240911368431067574957914933203896086962320226957065093553681871628531920279909863827878932352728182285577128515462656225198942834296458283931122574992399957041453160955319693116003457079729591957140804362402231711883091766685644339832990877418542138235479925021224065321846232356350695848299443635549035667062438679065730559840186130251440546575590814893660660278005852356796419460089100200952369962402611335609486621266079377661800573537115070169994303811666504284423734849173445135303233013301544912644089630795982594899152335998415840164912780502838114496907339680047243224267899075816756714108844063333793133372235425520540845545645166638356888291523512783032961639036733050799060590682589486405089286597153031748981688442224036929664528538626681232539734285303590557424517318254661239113207496233116734512386079468064845535359785917056953459547181628498403649194907742263785795057650528952775729284432618149926016260083275624381642083528150676127897494444303518774168793119428495484240065681392331856085235521971455427846038517378321698844504555947251616290114670992476487641399549440696316802099188243754518493899505757612118541120709608168174650346848244491944897204608149352633004846060487609818957206442771253003309383775527734339151113665424775784966407314651000825600514003854471541168962618517592132185343113852067121479014951924711421512288018120745068156214825322166148016564260770436897175258123847585528357422246959770164407826821612118270444046953302375338035679566174461629341578832973071624889550515130210225988034545544643767291661549963172186183269569034115389157064968882954040942183041142231862184600828739578712466164847555921852377054940810700030953141675261753981724748150909675103865418972585158638766692441357853186497609322194683953873321505084985376109673281932549395701392771418454351150480314568764224270192192518436622384941612240085884375734396885940573281353610059954187750078542233639191410352044801830124114446189469201003005198310749575387615103047329191818708923080116179437602952478487903533789322559500586018851783719585587402529119968879218611485624582127864037566389119652325049518461199056688044069717220490291469868592185149015044456886716802744962902791255585392753765309691919013508807388698611292814502201474752389067615883898042761498099277478156402120395964352738885950858147983962610127331859850586298383193430504892732274602860077230372627076416557902884881734909321751562738490585280369877411362195242251272937162890888333266610451043378701791598436384892418418837523103949178539383526858548471458100054074410349829983863169495620209809127512700699601651142405723464827669076902416995817316096063849236867527510611426382105216341948466038735878213603289839601426122622545885990857162992044264923543628592014464800379266321804379274422027512787063598709139800142432306521519122294860668728958960330746231059027913399642150414586036401387317686424612519699990968905321596124013917050615830264821287509420132265538976624143453174582294659760728837869565604376578512688364520260920730977100175164399169474470695889086147045915233937723142906682320710868559478523739179073502437371334625419061676846587023292485713722154021152059074118488695567130267704087691816445748483709666523889808953371715608059859049145324295472512695286984298801317465171527315471700686011766796768700249731279630259386527193026060337703455160559537072844537787437958581179991395577073913169926730091700547224131055900421661612715679646711667683630423608053617753585182425331057729652963075040018290766736022359666515957301833144767712807704305027093884551258124230251983913596348983773741721439368126193338137348900526377297651529555213755365873168513179907468351385050988893333466196475833749633500315316906635482170676888461824382964426056594334698148687029097308060124956349067736812477566401130930952643401274114378981443726824661343390792647795983924006153369481898521170673175293718857037625475775847256206622807416874132705986043449793534621715001362643329624533413587995783732895193155159615899190286384146077900420469410445463930923662759786990924271097516332226906383477200088141791868850315645251224767314845003819130601228191022475083605661029902998911658399860472906066386218003146826882540970932062380540312432450038964760073216236811453509792839061389168111608200915681751395030106085564578752001274124420575466909296840387345001314509646159149118274019064601530307596473779693784715364375036442467278931938251645839292066099208444600369717371598465561656684804502290998237344426756153978693208485869583313378143681964289182744580780900885387465000179897785038144979523897899933665399901150375845608146812943336135174019167554534491671272594975167754291877261543866821046613932220262001667848994511729137566785408945335377537139557646508033517914555523657902077496383473092054620121706168539611838985108689387225693913433041474753047943547955482358014354044985961852841373020667095956571770503300883880700145725513668882946060067142907703039643375866438971895364320374645091296970241892684984021309264181525682680943835187744610751075572377529991821566043402258741186494663746087545742191319535289090029502010170800624010199046028516454929634001979071195801575691452584375733530898249378884670346418899384106298856673574878218980911848785026395864102192184659547646091315923546144967336577330297781869670957060137202619072354720655469345392953187593380933953349020255720005648707305987413000312655470562249445863713496727297863230893566335741099761480562467872914347816325784952761670649474257479964065461844182090614485275307566589255305107375836417037059938076425531009870064705834911004447822474589028908480972940102414698822976681786520852652962308511856515554330849841255707940917640868021740463058127132366174820954589520544001987599092766406034791901378306612206593764320818723805185806629562697357496666889156056346435561751606695473445268493362579526161676418307343561192596643996380923732727270099373449396094017451989245205576204100513212534795911613293944498425725274122968828489073062414016882663397610565077735772044619510798236105957516901992199686833936020063327530622959435480416574207024299049267123477592613068013237188534710538767993792012997863225004518329929934260481437266598693066710328691568379359234584253297202082701098766436012160472947385860045081446260775012682087716509221863941669178057395340919647458724843989554041232319654877956785027554149173171228605860956394814778583595831867479690778685515075282658395346629634537116943556290844051857606985957555098782264565803869791790403753932801961436503156164819356434445616581685774106882504629706843105275950279639293750568949583012135875058540888195094967989037339297830959103911625988193260439512707703199522537119742822819373979264496746834241810033727389483417467890756375550280151228532647757095164024861176383054352157336611907752153658196025042321436749525585681648976826582475462920941791436152945418702985760812807890579793110188098224928641129818838465001678043013833155035132871279099286807508742745032718564250607583781631145634295349588239558921233255363361069397426720921667068504060120054667766574085404700883151235986432898052467157949566104109749415812955813970036353736855173442916124562690441820239838324770239201869384587035784445916142533770807442471055696812107553513264705630291271313746856305213728427718121391819636275061021596129227156882172462358725550774818883125983061353749653386750887365754703905234716522480696846220382359972475009655621966295371342169912419959127509542808702223062864650084221726971536884212742367391416295169229926090475829323971352686572831082399131102071612556547457867811389542587255645357569240018043386823899212104945204631041238989568345583720640713147217118590318547080332905013584840002584350788636464236989380456722192325228572090588301612099512503443974096979585542507788277569963355841197839481921003936118751625770865532412280268530988165821233825920920470469921359266003144100980039623953641651290744739770061475861640434690260734580293031088839634516971578678266206533243839532565572632873911407186427507735120992100806332440784899479485306489615704680839801483294530575837806062558376552203977279782440642968794280750862584002605308371345822392761410977211621959014996733687687741796536538247288809441940265549357354548515652356494992942678173663457421229474313763501457686011584438401595548970521944269160310226399777388537501389469656133921079778673572671817894585434183522699000035426975092011980080933009521265538960336302753279296910374632535864213619341604977689363510844079063257053287521208794829680352209724376071211839780371423198733904915004028993671192999512729399926534331740921309372003638653900897384912217954074139828024438879493249051078140575733329925873642983832025865125596587797839772977975849860464805368565787702202062927828430962250592694598347311647027971601120112312542202416175325807203108804239341244261151370891104177881378653602952815283270980591473559692271070521859713325844278588246313640810544277173927696237701092686096810590226285927694385173050572490073542121039054259358496911095627020146450255534543598196867849694826140856843772192331016720941789539818183261475934606352294575884363676003257297169811059544988993074794251921799239166722655359638949691179709418589286068100232483921162210685061977797101594989253061867918805163816209482417000728885963175235917751879394046396560329714281096627433896429527963636304301571817685068375787498620611551839709488853507503766157808938712275423086150146568952346687152104132486732483488765958913239244609587296980285240874352951758410343141296881262203920370503013444706929852756911696069653519724313811093140560858294944244423849442999740865875849782867785930739398004011033865734404880550152275575600626690408631525300818375152095726468906160193241320338077453912348732540606227646721191544233359638484750171045428855803627244930119434869463943510613508607457414210805934625568973251480021445973266999032021479123762918826713717905638272106194606017051822106168929461669524182096777612713535818748270382069420067484615895103417590864484325898068040492729538685219645596680107348754100575695150679333633232204402143502297617689284689986817529277130247455218277486658779470683434063791958640031990872693298889262371311299166691472992188107032432766967503151904510992457068130413876211556290379161106901964579325213745473004448940334854311747071932801671258930858514749299607390732915079210024311911216322645932980800691666890171132059800925621822178091512160392381314872397906871179560750309654278408782673233843212506103734806467654289919746782527894571353697345037563643443798284470131197769215016054814408026198772860627781583217673974882436149204890228294842851341238691199620262803514248133716529843450686163775675583498383229331871760952095902009275817684877477696217000014250310903885534990333677521189463289513095269420491296375974058136195090952988066413015078017263376969787404058791263097322964660529692261735143314289524521768261369203125500998129491070578223521671594244796839346049363217979540631290286311713712228770357284879840516545241369223786219655896212564513862843580066116529520881099210678072882429702020109231084767880876257635873703006238823847698821626435221550947719409177385081719773257568983119513658736634144432248835241015516729388002262530282471130327445193485448627665459797746859678505842424156399914817016277467211567896705719210754674144745172440736870300404389054140029284403528289609931304058961847813055667422969223653160213197810691852281145411885138735998058156344323356986085679022531279745857702199062682387842361341096854811089464702520596440708391342121228317188037142587776304110458246871865412041500194169092719235763300018794831686755674412742774708827799682472636689564824619049493162537948375843860901873872244952555098043108118553675023403097857484596959328163900145188123074092668358478341620699914608172184744263728557695732715628086891751064709913026794006873267938705752930859617263804583128570690167881417659762417025582074632664451351153037679394207314117317382777015902105590224120145370867804733990385371841911521466444087158307157887858535164040416187890119433164230181526913005024649880338656266138198222147436880641930795857359777786889503597148158324285157535602514307381824302765994944698600693617516285343954033149892956723461519740398930047126748449624418759483647590266693198837064115046452223791284121187369092493305920012604829987403951056938453349502333530464036139291171151130703188901886394643502077194618390728331789932880579070789264509767045360961315115844633259852092125578587978362324373987478510435880356760127521107924694354872026963492416241726931432408369369884296711323578313854967296458446691769887949862192346639150199353664878522419852099374624379099806974591174373545404589848285776365360261790428323732549823242093380605628890852269562009588124728658846918774783589609036705046024666457331475974433710559026551320071844311814021395170795102038540589083385172987324242819359915994554068462816475222233638513044602001750482175311253141588987452877673232373376695205022410667183816547885219340713691579919608177374172028523277957710094120243085359836804334906321604613217330572750583024609061044954017607668499823950624064123582628295697185541059394489848220367428641584432806276544476843878165849227111281899240949733254145528633639294458064691349159513475639095673737929492303818918536275323456403939875455836132993017513829449028302015874537167637552817107770863253307376220701458245634300080998256243633922071516827203521658744463797026925457097023241031289183746577468522911553508422497455267380687430934935618684446689430303456053266205959011327572248318895187103930752732212532112840314264952518834569852430004249243647840623868704492429906348338964984032985257707109497823390282336662405817628061452350016270358607959396878681248209707418783924850449850620444677955569474716932021367806417992240773649739733668974472325965448886359027308781292499870393207841844492595472687590873377749537589563384321073048208111136502661942801468874550837673962068945513294614135880363115633891109938427623238355869441939340836190096596818297765527911390638007504560303646152617287489138112705185778086577823064533735387059987817785929369116122310669727323480599899453490793030312204354208592149956811781742060131682254144779759936101242196569631630385296414057859199152298441376457795692459668642518329589515495838349349869148882073698319214377160132031160156850664760320853082113215770390764301746639090264339409474691388190977238762733593183665533419508744248335116820731461221885408282073710693823404119649992079421004964035068549837686682720568074413575579266029807445992106248496217467296779990643660473495299904057340066905874335953469967683884162610789069720104403444037440303564630581988168381289304746372014205892246382618210951631260674281438018968591438050240023788007772372884911380264596299875052050510762994076454723060475174500843793712816683404793473042558677913191772894827138011814530011197571836785536591533529839524749446979451463712647861298821616622792509000044251592458244181850611280183197415080832429182833248804636206604164648158753837500270057386544414445139610195299605076967130271290244113576740825843042717073631847965048180667343414503157872832341149746390153265032511716408970506156457133403929438275548829762859271855463745380709352020302487617808315071628397563864431066008482134685860688106644627826028440165080847521821649272654825258515074947455352215158378329247094892320316944970176047180472909073817607185091077007641218135765810686517037773364425046370202672223169399683102770899131966601859691868709480815667160531379320040928851691844953805293713190122758767265962064877734055264654950441942697574331518321392790442040752247030138372893187847666450122434980901718054325262512050235364550050768977624441603001752943083576958893825544935708439380493322163940518830396972452610098106392476408424882654908336407175777544392968008257840283407992917394184942552542722055666502290461804366144706397255369720409040980942091431454712891505914279439208573792585137323003523064511095223037111458375258586057109549826341887497969648369523420639331327789891950726487678942093673226536619606998477329275619202345008726145742565536818209209610329502479670841100130435911606474437568846074169399642430636694842627425765333864460760441524312473021203538173244059391897688464002724885853618679241433523417699641045991131532841075790234599082672171023314602275633173018730470578035563783959469043469972684240797009607334712524793312974364887551158557018584592397107089138273148056324913736463688054279873674452400185822532019602267985182980505594883045160494884241413735411028564461361369085616591187297841746532324812387172102803126016541938005935377837248070801948114338822942291733069033031909694917212590635632521699127509199192359603227795632303286735613553866311839882577543547097854714361658746220495459046678930622182912329722434957994120380194274611304269885590250780833198669339901196987202071837157210439262408225027252619216309265751663679178885006216295639369516423604832562712020579402828015126459151406075234492461412814416395109623614065565020742710505563912923427613296430807300521704605148436735790188389822880751503203881905770673346975410608868578247560936526165816685932086997432920499183174937361796506243079578856520848998129391648990935861878487820068006005405449675264368718701541254567790671611678937627493488200374646972192181262421119893943177839466319119873629896777786597483874578970296519200920978702237374548732614956899160670166957091250379221210809770737595531371327913869798964010366733745341424837839138544014388731444396692338215166608595316258739147109185118860845215443297631448419437931742687121362122594851537209471234354142664267487311468595193296593484599384137449062651356659173394040665668623013569400510551423474302991942842842758524513250134232016591571969901945597541366599804895087967437060071725850029863236674430639252177318488074809320236385106748100889783752898098364000528117265051299665667489941468850906048355115084230688421025531487952597622807950571856513159543066402810402406119616808777475231125644692975012410611415905311336359083466951488010441563232775665536882609712407656986538761672687916191292765312016793537205401217557126713584072195729303505560694124402356154664213742594408811950198539169260107029646241295469278590914763571934929569547401211059194802998046317006897218474357343953411583103993642969266966061513533745650383474246517021371360526806297313189884831002148449051166069872929689164293705776997414412362562425084909835486023091085407361579323334263071835214194395060635634354292144694281307097200414012121574456427931812357986875087378461503907761344330140414673723745558420563663023211379502547195458206681916049293692371275043478019965388742918707979780529883330435100801413746626624412918592368455587025172682368415936619339856772678781968140203343324369038002144275791619768554905405593234058343755972807196401272001371355243117279757314541537001439744875633401153410852968950158005985261334722527842575330860928592716247513394532520750099568070695151600554334177498891493997717931530607284464162086184899348054419071969855164371085072464612407396886932571522266296434517174934133280771437408352456212480040678507699456476493011474463754294211224666439264101611895207397269413056554231645615861742958750815750966344262225213536526581307742351818495614304898422477218683312530599777718388156688876978239492543152132715349961683986213324691594302410280955716253894961613549558043978030918625647141288013947998231266882408319453748431752205816408511193038735893242520581601430565093236296556987838922363680996650895776764250115204331298684636828454663538083317713881446567327770851455563426073338359764817400453972881144836747714796280996600496954936749364564486914598365576591827296633633994208872051245982873337332996277854871936383153653948519284046530895314013531509316333993582538361513469020751387242112384755577168433729759424611754463062557437894974923558579356747585523355384910983429889354986522173373373494590947211127421799765354392048154878684912216013590633662687912440770540541928324373070416400156627605656924815258313527640606195011512561062459682189038871617935416824000356841177990591548071713903704475954269461421824082650263275337471232315348160334476595426182352251003579459949283663238124273354194417381948515066472072303825628931177985302266326880367949255068601716964949731624326467085925992516557296471165927364734022518979884550364733220650481964880748130617101109665765681218782633493717380455500220515626064944171341390730109595634443783744113774008312190860819086960418152269681825471262562966685123729172090805049710857111159000918924607115536849637786898943793891402298973842793450682902931590679243699296517783240414662774878609511529450614616686496944454540633825593711771363569992655063622215295784854541623565664239919283226411512300961815729632424304956118201065307529378866278880972550505204139809685810095456840662784167569420977218094052616050454533020121536286016541213912141030430869150000332285894790962892913804567217168728995470587734742922216043649651464351620588630582957817778288419792762466263841447393457756361553208430284765178453363388824046293439272316968683085907533758040930906168276639560663696760503507428399951272918578331066683942784050323018573144591580222359496208953014994125867221611752063391163310658319105838444414866006738053497518872395510723679485317096669276847900821159267377896778857624245474029286532318744211058519867114175473423758868491012059374246479709783711146597718112040607267834947585063629953095550125706971993032647321693589231018386642632030635342055770003224117034970055894086206760069498381916917811243939737191232991774157140699286361131064127317072425054369976461359547857361207398169154555231844232294440347370215680340181004475767586636701691631484504463668836179980317032162965355847635449193611529866891866580715973776701927939496248834390616537432687576977657757207128142868034745037499178174176091710232145974029886756442709949483773289638612985160643887260837649475523910359210825620580685624169066576059289872900241578503016795278316807025904637082377499060598690290040283816941464128217969966436900138815442376899162531750127292791022906739982669552711095736084611165532297451746273516968093042469578906431989422618733296239899999648099800674775066377843163466009744291873873947303027184834522741779654964445770734593398860079555772651223414826093864425574632531906228615418049266429683591389474998395969270466833394546181339060437797195973034104911703122130967775281132165495709477809727172650243156685335699908460645448517172948752311634005545022513923923624039109681637911919732401531960105290369768357097808183732384625078105096154015096436904915503093274951473849388729179379964053480671834082334346106911975089486646678131741123384823490090090313407125512339906719492302223570230701673727667508014945961896797151693094014399752008318887669092943932831984090083555712159988789992536436107296797639166383457026745508778762262765814373504612195433179565020084516554234144007648029653517996162868013014404247463585871464271397190884816972940026595032202372248159878217765571165074112896747874586101903742450747916090117089950895820667349686799099020881670114146417215700907245390688130280805966385549111745428211251203278372236343283827576781601494383153693566309991559018555422682484223396823448659924994911118164870167783404375259702176723555693225851159680564693195069941238355045711619688155254882934847099411461004607141037606275710042717810725335274162401159754384532835248193892096254178180799560193870013358227315843725842302116196056755978309925182599044806830888268368278066261982320891467086778161679002110652135409472713760879041030784101030579707100260930923248817313281097045592029208298437561915249802604206676928975571040798460813819589816972240907565134255553257857122438191621608835883243569103222441675621525827686674815020432298775928730740795383248510681965576324915528913183174747571455688958378079240881011072894036205825731884337204467194124975704249971241915330268707776798640015052372963132094112208183466951129707111807634446644436109189902768975682391886376963356818179038129827195869083107503137548564994390573397706639987513878592764575277299875720811779045857685890200580070418223136119933107191275417952964137954094059992960915441893252133881949026529983895158982905290149988089612180652068733169589188457556273030133575034878546612653282596646079382890932966514185509493436888903281229137240196938914153048109461611970539406009350696866736769085600760158369558679469972639163007847749671358244568823317124103255308632569411134522556343740599520291758929843962886686189898584019020910391722591759335219942755065952043432351445949717304796201489451532421319515209640799865995309564092215118413246736111000092404139076688558931358046528907288869144436943664019475839335224018885183825249368496779960690825308122992854505734446457157390723567510588154681522232491710828742346999785206413935630978167191565286314466159060662293472440956639670661087804789391855224113037502031193488473260257101323712391611853660777780843081918965919337377090598400073505091460463562996621170241957954901980654283643560623221291405574689056452316503025070293666240375834393616841910550079936819873047107615301828530109798985170064457364921703337662155114993550530255883678126533521123672930426188823174115477421347987516244624683485106763984701578325669686355495211254929500277155846080395695267238225213113576702412603485562566343353737919782969948449582288820855767160252555620583336353278640623663522043820012422536501435171033711765057508273685478960474185790734057525062391175713978677495231106331596785304737503674672102673352146530405183243731958854707590794991579803370198027939950250304816754584945787808568803845653531594167822698766524448463819532471238134815541754987549193274000853334762548135499570229577659083226121620976996516246757812550862473948406748912318295995078170690225674521813377783083888317063865884316937538735059906761651204294674380330677636520362213505734861938767381630076018457093966693780583791371632077849860367225337670321294496603217442574221043882078425811662349228784702665997683596579841689787616232945487625860333250620496717946951762177196998340632358956852053657228476406288678623674119496715098794782265913650193034737054641232623534212834239159545344562011179603186807118730177126511831551810126691415208424873304035528890381920027199971974869469728256323452468700198454208906912425264130908642563761466915827179012893012055672698020126148462123813964094422585515110230133157801884478430890581816974535004111236893612777439923863886174746977678215157565702640581001864898777341032167228563047663164864389527308523213542502837963448877251638738720495716486885725448680088898487089086176987690412945842709798054412938200260617084780684159081991300192804142277373347794540912506411571771769653017792100234845858292651926951815503713852797348282966927038734301851732190581995090520644734010138651595451279808310777307343685407779384938455287218512983891380609955809962507781816990965320381980111735521914053594726331886807729924947157407445540553939469543655483578980709861452186908267872317293904007225172131555086023798230356979780431547504469214954235472678751640985147344638536863348613411856719100530585473864649462312827499721768457855161608976266086876704119308094728824733884015548468031001981781722451515205968377801037073138447834543343145039769493747645840433403675318115788146206866971846404073769627383545689438088823035163528364053751451165801300911273673485926169653902572351897297507560808367296254125009944516088560127142013973414318483317364099920499696624063908090769026537771895341407193910017959066014672443229237531075683204253993959727787517961561243684920709516573253270231778243396902770637154271090563705091131109451393762024316807341382500183891022688323311306173763587469291270854655099635854915595881452871526053455083293414736555741474782355074507851871224031695557563761560884992053652024197478087242116958368934889362718303278339567243910808486905011117272678754163601994728666299789605508997875934240006253836749499527569861197929346396957409142386213631213112308183458811367510240321437747027018854995246497237513078395680614206274252029833534291255728748907233435214612685180746985647383476137620768255047245851503532554030883657803820196169010440095914209789416152650247252309528765832378141440806493104326452433669289485730100661736096084587828213649863407958555511941891759080750106796511926015458831822279035898710642315984653097556151498771117971249285080054548158751395435241311047805831401770710796368432713561390036847885785656702917981396438661410152875193373462624643939475915893836602379271312536670358349722844147803604047187750893519238083057234974386375106318251279822199301305733882180412129362606181558777373932407761117839930212215063794490027982133472170842388638123244324548186416126921237894333416291424567308984906027616033509323799811670473590088773298330475746521087612292521665615103076780197438729369792710407257564448723862877859419846768927439725638607997945157783304524917935396883623450414531005756420511694473395493040299407542010546459298371007764490942142146805368290270740615101733886778333161394747832578804979961514146370989711603104644496372838116419591027998417103971853299863841184453695118247105968988149513251601356133072261729062315530748930860854400171727681712493813337895299416980051138920097731434716772860228720062790607905524137879799741318501875957257560970924811378502601875853324136768332347171489227252075759397158760740334357610616203620245864848950454383363134228991479132509485394995710244860135254549519608316624907486406588717960241120491838848874716056413514904162387618209625457684439817720101151500106897344410049010279186724191446348752325784656912632198231521689082457031569349961452899040359141288674511961751392812158193382317567798303306350288434158423464350660246326267482918719210715087871764910203492617656844291810313280202804885004473696223333141920460885611285615958926657883201248616234921831373581694057666422827162921380855380048588616581342853228914931707232947436815006267513590708597190337315344206879958088166583490525374905313754180735735372683171027191012613059768500042185911774982561147210446783211429619200998399879907632316709914534702391460450685039814046985478750953653472855841923018804167272503543289619626216897892104927591316100647733899037277749147161252163138861888639912200681448212835532482299208668313764914706237153835759494915009915092443072017162605155833014530536455205244710741253263098336950528212568472577219448885316081138852013022594388763577489624374504448216660097610626849719369371696978020500846531393731901750209143121138096214056188104800398855125334575022901063024745622677906216218242514472373101580711155281663436480047833642406314032946107353149211200825175918277472081128828030399064383672463906030633279059180057793631723951875142963176736417488670432831527385916316239898957841213944428948205527146094447290845213813710062991082559710894912914121821249641293161048600606243681221411643434931913624312576683717088572131070491204840593902185958517624675208213509507336175221893307477052146860972552610150929205230224752743612748746698901515091880056267622162657051459834211272791212889909570306879757765614000200788577919723729112181266015956524979192789919893234448360704894345784476160262322987276291418265899519463324801301332307197246820589153654272142473140783196782692002568294316274663320889578971519178461521166368587267997159419882936863980221190276713218714053138116833146205612567228349117744720058767348048913032647721479297709033752518016327337515332160941290629815591397539435714439700192833588130343311023672553117562137542457379686365743227068486214265349964718286769196991259376760922878566614542316303484356922882235376587197941421005323246169086070630112937972290345383391470033638861967263220622329269765239768005466860055306946126798975570830477734187585498071975769031446200582077761894060140832258784756841215018093824157530363318278314099148841409781263476621309194146177286892528946403614320671316644693584289300067547569106320974169497686475488696304771457456700401239246252003699696373261819557644310148111427983105035492198973267574067587749233886694920221044416864794542552895708478993454084912849863264882677782408050650561540974211698635744839670302692409786590701322245709922593674069607826174233800520223214155971554245773580599356901513198747130415113898461131342780239673904575423140656068729628789905699087595150072102327105339105718978388635624713958487932172221739362180878844412947513854693043936431051171138927502384974125034230221515686776965856624567553133463314103828658007180929537020663613502654930311557361189528993297212114015704590260635610872753147223739091145101342916626453322010474874905387011179805936324979084654939313696539439892324551410832227199034870888623981386525455622652074478240943844731668139224945450544597544719677301725365450709442138837073282676172546029822659422793309714137639041592491833629230669652097990504384362485875586157030967464197129080290513559003763926353030201838977209638714545092880311485956670053453389120096424641165596698196073717042938954323246632192240186103180608993824616680324002394349999392114228321155227639576623883676855864533594473776295497880859938336792509665346298901240018061219153030112304374584663718706118811402604569918931937926281120348054923823654951680237754597087206997282382775570237137192663600437469357707356560162744551381096630837257896467287736139075902516328488320854019704594303389092838507715002608342631112554030693125919130725050726940921822075184361243575697139757233937809911854114388051478015203257045344494444653030775387358233221828203199063556453122641212338668517788658382388330079579737133633142123943571603228591711078344779022705662068027326806531629427551437786579190884771853737558232946804725436854346309808573435315444596648007397510683495525422268948035063206906136055608127433716904711245019931954155935204208477818760777555321659189985152506448270672739817624521828427631473711714887796321663688541643132804319022686490124772590900291539715312594207544985616640271164018805139765193922271493954069108340754920787081310808038057922248827611602556194687970280520940540961003106491994633714999645517613616463403666650012914198474012247581988244236662928126065014355295039656033596920307198754890451048903383937079240368664858779436644474841331197663053829786417769349571112380900408309450107578905788663832209269342447433352249761835963539123725491789585764005399128116593879677647994899013056243688882688516959822474923273056155829583056655135181783130276491862204142737088142045902874210843011999416638041444461886272249454931721948429928378830256991265750891682287304789318274525605716771305615742392144216490633782663317507792328747842292350281435827968668792477887799021073525283400249902144166513328431753208242776186559869300895463733177066879044627735308013292583370357717339367812832449218040629719791639950820116107954053913117891300009109837977751906690997292576804447691154923475412184210654571031755631098075608056190265764461036622315562655265237754042672035796160270837398753322571711699190659715344991601107904116379289028653779963756886746911759554179339744902675295400135253999035080051239311711116519893271186085483284962983224181426205855185343453793156398502016242684787503020088373197506041742177063716166295106615511789651324054763277928458922931872557106121011235406556140703329326293535110341528850364400083116036060190028064514529522565877285452342550960160643375758202850037064907457279908092968698738148621176288194640790802063946114149371609612586525300953125411088574115923250024500960617946737095033476383008372907074774935322343833428900971132087462417302410009997585667991540351029059205488431141272088763962344649769701186384746695881913023792762805574071162550755848427920629223276334128459857254082661627336126399043192148661051946289812493810443584619594582629520954220950043144904705870061544635449268057736913770808869648006448934239327952053597456582697472901200702475795223558563127124735197513836686998936808863860951809621768845657438939201412831514111201491233795087560877376855891953976538657080111020106131425532267585110524904452313955895990423403422275516358858672700750172481371289304962491196517629534875057760034130176246268267297384062195139956574972976895202676386718621499121642626168155415883824836055005536856929608435663637370548256357242627511927129885732768115059529890179113592753871312398514729159066507338914355148400117763193173583246413975689860788375318775272091809002103829901446871451391904511986038497583961360737728723023790623330986266934328672330659112884640905533230413631593857010163451684247341206702392230736904327161094311360009569533716798843708325693135650647060332894387069426080954525666136137435479304131190896907973805481018076349832532494124809252552800409618414193403039313829373628053458657829926502984107922822452907924182680260063020794321730183111952822847945263749867910160752043761074213406691014742579110336694357764890413018937715650575617240474651470180374724732263002951970956741602345868530266111594828592089948909714687985642516607740242511612230929781108418093916128600834580498871875725068293373157228803755977306809459479274169465456185373954102573492593725692689741816608966586005218889309405776795760502021021945545932501659770225757535191274829515242729244808679670931539689977280942152378200372010702024121969123977061826735956759454895575455009152286525403407501931544195072830832893720980397191008801576080456287118433676715522973218041285109959254061352900099728924285123220423563480472382057942279146106829496719363075236962879075341149439063934702540205833918781800403021259840331550086941662496804555426224363617803553255292443378341406396930407416386613958184893326586243488173501273195433450267983861877188099305719402173989767614170900417857216247272531457465529589716512400835140437059410186264468633535452300245487747877709837334313292364734231568026042730236906458092953324180763777390487991970488064088880289805713697687742571701921140903850747061221116330483314582683680860028607881931792149870078527078717429942398184598567415576565763110943716567867905323396924989387140217776183052971533351993294605481650510233723736710661520210728077517773612273775768067221532164515116370219662642966769069987476273063880017913363351833752901882306198198756640033843950416696678643072712131671682720764021240985690364478240511638648784572358212702274764551922371592485079891640832146656925922260896433867106699869278547132306357471287940485276294263227055463858707325096508917828172159597713069021099801756706146130402932307843887065306657468602916513373972124212726166116167277581958339433421231014398680825670659158215619769673612765317955542454400039080204458265898629761311797870525866491828425992465999866790413722206596446760209193610887200701859550194388539052509410909484130380204014102140245663676040527814654114316570191406691550456902234795897462501772322490549423983487292083436765514394194927985351941600346182887908671488301105253030325010416002078455138283080605406711706896527233242263901933039399677063733918832660009606972892030809746246740592867473140750386124520375368304645940076563399209576917530434748177811574182847515028689194853021281546825370766688313751532364468800057320678723517695325651629939398576514554994752179470411225900241085678203039471313753327793430246004762916698071774381885760380591853076399276811146759532473810284684956664386292041139386623835206734090859045032833789352771591109181461129810621087928811624951904968649707251454767797986575162642100570936196827579754917231272464809562285289173895563099268990695443036999467326475660200017541453916573710917895825772229052326347480256244755908148747133261489771114302908653195370429096702506072094718887831757333634638386521357779445316230247125581624643098992492440554079758671462630189271771654109137759990327778519605873096588698785243663453767746481558926136195636132347476708714356265295716284331021032846720371504530840049233997518616479775948396215743266984894167679817436801122678111467546137551921969005380032599990170571890743265167343277112841376445986530992999395986664132042087488672382310407221906705552047968256789497316822099050410874463095489004769781035192455831576596188057208339272490429883419677348344960011079655758839422823494247602374378183855355149910983589602375660199539939443191950853826575035807025425016050071622142362159287378552112283396709543043498716687555140689634630213549525340944935799721000736778043828992934162871377738488262915625573536595409968141327749789820380812547990557570404623777890373938968489785227524787535697486512216926662724153923114352371803253844878433277992564219431519883256982636175935860016500667633127176527945517822625622542468746466522273557473219437220880392451733650058440001292628669861808399755930721138871536376204834861061471158214009792431939683957467005974646338214740703519869334679329661931751929076784260658777911019799640365583674440327200115855922556622666897439030964273018947549540963635744718377256086125120690005932600908739029122538196457784287806721648108973753745858845686332491964346791111016862554857352120399227475050856795417771519754276397936662640685507628950954257392409220851655329776969833579595554084677238965099246601926671449357120621119147853404495223259998245198041640371292508052080744237417877620535965061165713885956046320446542601115245266481839856463315013116637044104269391122654889360414956528559222278800819587594821211097118535053622096172542910297778080969544231647911284010569696104483361132974693379584999932431407638387012884110902171272389704012325145913795684917375176021639621363762718412356427531748559538152900697496550215520372039594098851990370998154269142322102794209334719558978721532198726821045460687564950796619559196631188048030302557909336466412038858714543554485957607030518243300059889633473686480940045423032194812613366206198472889317880755203597537280315450625374177637621965486874720070285553553123765522761803124394060992103764545060578709689746718913749441734049116058519448548766660971393312876723129805566975768445521620924149855921411531359205611144365441358652215544751325308271335411100493589529242594718303834709411193068225894159920281323294655115549350539266998210315784247210291380859486472231025879098008708502330760485807718851073838731685474320070426772287534121184177705626103055254761195510198111106846310449230997668149129968157017333966967918689185762282224239817471533220880500062079002389092677060394341116536964457579311126674066720861483776242778538785300231633363971960137326176381361139023154938624993236976203125463544537715185389168394765626741159978199400752699613697746254267183937037078867616424323308273529651560000172243471480844762466534822612144442728738939225778294052920113868602215632992610518079827718498062680905124468456862201063836522740065095618916730777941560454325350996110582575918213413388736563500100446512989095714306529092449897258383224152645603192456715050963658416617065963843592137761809677543385594904477764074102575474598499846165998879220061427702065567030565030106914004231023274575369279201228568419368403671831709786805129981742806889095838117131635104503547537241959559760446199150942742736706853268559260950150283755842929887188186433906772125060866809439350150249809652391506275895192633409509518052083873238304661231652339129253219373162460612258446670229209630316197529593418817799887455965081126067114168826827774748010195549761393949473619712176106690855934721484886276248157066919045353191518293535069380024558937765569399534513765883085118659670460071921061723162288421946691411138883853714974172745920491740612449368127358863972005758695437762026009870605357355614934994958203760431269960967068238507690964128614437570454652356606181507614734658534187920963439430100445373400420153360773378813539295206911118330081147433499480548410800908190724380070960426359540367854873376294538397949083590415402879536872331893730787146491021905892152278919967126581359345895883466563018827497971131046049576034799298010888742235587867435086724585728551710490816831370909219205874776390661148616064868314608809243632820378481672604833115145406463663026484710826985097754853598195854581144524439111321707692601596134906787907121491945930578622443193492823378880405234840655060104859729411132644202557334119532432768172069807004268396428798675055677048713837981858499713851475157272700728576857280454080539526918544592064117858961166711995309355431636662905317100481047442403876037908662250183689962837701832211944883139103412261085557847508358051142879918047000265983529964622531023349763548448286182229543284943120049538407739481830556142920786075996018107963757489808382554819670118904888126021180333645348118251502413614219478569337298414755599998983843980073967484362653180784043770112380232542026621829071301064241012089733332439291105862514737560300784324327941404039729520044865355055870079462327196557834779591586986037275714444510274760524960773867007303107971481201150061536622944934695335104341689927228871998842099273202109685216120230006794805988039383750684598297502008340611656844363377570576905514679744887972185075162985618892454943011959446988788256065513258106208452014332951424663514338073430116562162770633456029209563539725215232157506589912008114324116259690341043553776329102187568857744021420342345021366178098964056669118376115719492476211468083299596361522932279538088145478706981059763547460047023054205253757996626535840729045422262493147141411828015376070852835994833509700242671606615236126942934373801935348141012892348760278899530215148337484596075560637255589082822419101481526443563247435712765667746532808043552139742255468236718449367134155225684676989069352313018194279289118657011738193742545532207562945151041990311640039373703419158727978108637277889425594683544561613259739986107680258963587314183231434694038520089811313273737155188811489973772877773483409557849046904844344674142345575447772033623687876098098499774288398286370785790985860663437934855371493064049944712827124859378632064389040726363733113330386367998249491398010851868898264177672541613452761747945725721266525044739251673651836360056332436430066783476001570868733399327673230996936296704161034153960509341145200161264335118403028865395499234250870731275776741188186010150523640777148708559018440125135540129130934341418506194913669478413763752755438282715739225913397745579646705340231809112868235261660765868528254956498807453687634476272605901731548906234494277811092329070937253688506862646010845713613472808447999838860671108405114462933082466254561772489838667095265065565464128013201255688408549650447943053718858946632372879337550848924306063049815727113092622954914612185128585455218018341619962621661962308337753913598069849839381180285347244011645227332573793007251630446077137358400136710374324577504015413189420137767926278374484768962046794304367949620238599907205849815709170654491362598514593875424393629547870530714668019291978918996933376601381054211577533984913051315758239964219495336249686287932659945147326567999610535689340281264958159441359874153687949526850446240979559976997753821213215199239986936182615826754549550071765027732806495316182944042635781829162006685439726109915467451741162610863697190580301664515667306795962506899311814592148647071506104177047459427479873280006500579037464336853690186315407836953802099072726099293634225670104164206429368470581039516742507350294726900203048373273606715248023473597637432152103919615957968021665224100110944331169306784519182992354558615311108976984322314810363373631731099450771155009634264990755321440442584015935227034465136307957470011785612279851719334580801272250011266554599786560594601744155807648154424089662571453193362398019292566981201476283888910246292964996772547731603640510147105790214658209943098325988957105119399918551288335669272803701467163969847363621725212894214092144208048722493138829305924526920757333148598522206091183116680863924648503094426960386984383179622136919096687165574399838508017942633100149518066060349283887711862199162293448670155465698069844593941671776869879565329633930980502813014434139207410789153041494350153834390112338495415405964391264346974125813330616834840454114248214264408054070247218720923330961848941727584813774358363996346321931906021859723487881333525437020410067035704913627138554015945402491144447485984435650749811293730765274553935536540123998427000635399725422099974957904958729529581497041623655828054348766386745997233705434450761057903899588295512801574503444941963794758442601781911891803195632862724035721132450089974521460055810266026187305884327574911237753801255806411970636182390410562674915344441543865009734526965683945677389850524686421596788875839883323910839279740124288717734143465844759991929723274580056347530258891336568992382896284400091090288275651738161950883123813886663913607218673848875983373190814962896008343356099530303489975371850868567039211629929921216590342625522454282085969541994154652467697573198154450779126562660419645440594935854445857301905395666994743374128204613103351796265570191353810505737353201677149939845228161697196386669581482098581369535634839391252209699301682919390071764089716514347791643665456153760706562128867797300052846276110374845216449978649682528159899048145641201038400393848161879887734135290176687847497804941466686936778771663031550537150908655358284731718538324412399745581044017470901048166078642039602807708725455401055407746201954107131747714256352292999242933424115223644195879151346486462836401012081779818406655196127064274306378973252091401638925310162613429587927150903716741776573799679833746308892816483193819744544266465399080168747412325674758143389076534663843883237211278693272177331144797043814348186550689015971563124208859265891458197664768340038243209906845256927417916634875037047527886125783683825570143590934402862706498528635935490973806861484031285019015436090682373446286586373822810971455277423169321655609006911388638320632582769620019835342121196928130973506884293103856794115588100247245007358626961547604069601520394612773933326108080739856327769489521192843028000920943296588043508303662450597692570478725444792059991066000558233680884748870653458973832399233417014104988016706498619080213869830384653069082442855659915497948206500821308514351003635945269181857984813641863565752922012408931146782069681073741432660550329737642260924231632260390139825624904291628211086916310179060506460807048677255039723142630768037560814132540561413054859841386246888908786945051145367285940632329266395482475140086027571261510662256558613143494111938463653311826643655090317056234895452908791015954397179605141040413229723019643361952640652540720717932646847148883381303376162362912396145789265585206072834358192417131808646221497972279757487353355298200057637460730385711681235419649611430242452684006053586009458527777418892539201090941638014832082286985371667173831698044629832842935275612274566165244455717554013012275342784852411723753893971979685042524230640950667168802742972861370620294788111492803421922703598070793096457696960653404971727419121605372733880363550834063250099930668956058630051338342547735276219888815490353296712172665702420635396483083575987884223766242162217814005468928409823332092615161685512163254805027798772065757805710075262014027728539914490303132606760909918679138921401212659781678136424095926182693576545553173137606641272199276370959071619871726122723735713458800609893570126124036065842438702867945553473855842837693482767512712871705572952159210461583081891736879502518595486863408722244384035986283194633092205805230519737793872163743926662523771487477959095454069824240042815098753222872523214008156967866854997342533153034595900807314095661294821412064157270849532651013557727754797420404605838736754933702418213642614495596415646265573586580683859247830666986254040963017715666949020816686828588269881327007612776173793062897191928853553871023972003171149862487945955104528517711986577641474474750486241543532037747907533888396707511130400904544064978173255278249864998344028734902043680555231318165130705075570287707697961077567031738313483663326456349396984813402317590746740623066459095834382275109386741107859722482446051764326577940442298345950622780259487789635216253335389232079181094960928614440732277161866453383339999065090371311794737181088823632834897266650142347025853783611664902093510495180770475371429208293334933322648010601553322772235592056409940032219223111980486532970122830040349951944420511383324805148063772724177202726777208676011224797685375118604385621681498073115274402834272588497359585968073339293755525973046448456765643091523087357613227098832897950662403560553575829483561065554587586518993571587617472169892919815587766558707972590337964257995180514924824260850715828664380481270788961629598007684650044211085571696955468197153028968263586750190605458045227391896276519228266025189347839275327372743078248054547744716795128699827034867371339351701991600197323217353667448350139821152966622243788014833429411710780947149202232641139959619337499179820621693305463454536255281991476539012668547092483066553218424752053497762505496150794113457340353828253263491139053956164736874951154944103964674672452470407740937501392579056072664488590893550437450227957824060710855654479999543271075844694255473207460800767942602116341074540047531639022579764606629056702952472428153722141697287442649440025863909888509754073613623814049342181270586366883383649321384398859207294016818233233241172057015573191442956920821718406764849498419588524521397201214657865834233496557246485016359903957433552452692029555586052291746641615193847649054553177906834964637664402839578127992659561895255444056933220446463786651105894555311999951337577154115193790285599936288660381280464728338941402540560889894439254708669444784867236966940984844303753754332132252664023076160033099764398433107203566835917885175213996978060331797057339520198417303643780145157484292153795312311159209985222476824565737291238279156313927328081020383565381525964508674810671438152663601390553270494728209964794474235868745308448863414584447922720169536504077117780295378877772457779786858854301484308513964228961607486383808150738957251184489360498868684564262272112719743205900512638925789281382173456587225970105970570100257629649628554268186581253193221235293705609274275664440534658902233214032089960004987650828774524770599368818798368792420468952399248217497613563728512752223061938127492365277774167528381859466637389369111762017490698777466519230983443536169452628316712590296239346206019103101475078407099581615454674580268950677460822368885485543879264816736695408415320510448766228757702988574369205588304428221783534579374793529829086872169073812596164353079553301155527260597778935085060064833113157279933076325816938237977843282685134799995906963616839247819176711752569093472549202644466955325956780930155316974474451829026550303409734474997428049280830775799874333488763001174891053662728648720516274460031720620132152262473696033692599706422158960424460682011531037825626480091928856539145001808555704444682800889842211897466886640791600554155789932783679924868731110491583082088535475341588434181755485446573535829807991275022932927380230870871086781112176029728395814921414284046011824540188927105913115869605117580840631096572920508641458227431890102954542759745755937110547539206463552240750730960894432427458320828370369579723667673180400828894089443351935075559957769395613852125796671015336849919410097242798459492693304768875276065483343338583680907404405312301608509075848372626799030181701243925226601355514093915684402710359865444437687041212673434924276548963922265740413199520454524732594953613636034359939758005161348605735165388534914682175776911585803699780104159311107809589980668861850816534800685784390564649780224249616671369178010189438104363826498725436274435591469043291203441394850505018834389772100016881290901751973719129116451507281760530917405372578104770035787788385508193906212414956012521182481202927754426632731135724181420361576729018427817001521960693241049568072141491035625394170268071099877148076413851816229467457599675078469730034422097172839586059176050982619826456789970641974042922377686309507975297520722767791067766508464837529674954728918985428945870795067508613108981479359629986972174212669046367509308848401727314543792147128564327191957420327542994117949229969891177083160708811058144265223616341462593263867347399212368110733676515108919482774511318441174486250749165200884811045306445875359648200272184329963927479874117108976318730452309141245396844603046343570772910939519141395663920072489851631222069618407587306652272623454434886791155904993831975453425292914313759379810950814494625088616623410523877439362435495313274722536992975376313850145334961047062401752089811079139493361758765599336936712662964914206346453025185110667140760823439823710832604106276225539067867692876187610843333341795250400177044159214243693064336342938675165304016237839264224328530431576313676123577254907859746153308402484617759147685264327747905529714153949081977065111558698513604897203399711852614167173958430208835689684647904352282810610248125328907327331309663153222754942332159953703046466472573634470439946259248569287848003953770877023928136198766765661924351601293980153663941396695289081535367633925549204823246595928862757604828724362590251140979017523071372438099725020703360159467759871154999908304848144462145350583936697213289896427953953144226517462708852812592303189654042724227404073149328718045280199973404995818817260018827626022887015856757461130792050164227719580893623033392128223590662303965847056196234002859358790852667746910876114356015643493016624140709216597028023179690152039404483168858029402392442601623540722049083865393481852465284889556277065034109022730483714281109234797634341967591516483801084779248515100007368709583828645727312354285258889962297078233379788149645880316148093350421388189985426934427631661566657575490631728566005434715988345016816569883182936499063177829191981409740263787102925061758109584037945762078127641254074196220001871785672687799907642416433814560776716295944374735507386735529190518022286779794615633293798490727334329635024622692485138771486809262559921597745550326076110748484725071106485636633679430501087732457050108094164472355228015106861326330031193498151793787566672858935870709690080787104050412534084783227209665272371411072247031104539100030420082436560485391416433168143047481882120139973745678743561469126147314925522959512835558551075162590305151412932354452542113242115272526840372882502147370185742496378568291462068212808790663263588373099839102614834762891741447889788302326243086180667465252405554948257766336590669075499201239457270593577841009060322195749975312909859100100378470395330063945914176660735504353841976775643761347112771324521715254207390851432487221550346496430999347423211826099602938701186509943517123933246217181063539543857837385476776077306189198630192921778302254771110274542062951062767987679259581875619253973420987855035350337170669386610571151389850311520324899811372481286086684046886531361742850917819815370007933589411461914433689420476197790928936349603403027969142926743676181436975810923390483739878392284610054125745019396374537280596287408549590131994240864868059587833886689426655220701770736980554425744948529697580710490413292804263128140151124705477222976928991744929702582362440114802170470682104516545552443536999242996332403110867488161565119681907387868496686469932541392106451603971480052018884528196361172192647952447693671904503929111749903679110294472027594970377001164241234566226935585994502881822876346600453836198905927629437239827938132070976312986892942398757162314918055466380336392979538731717039485732089489828448593080682329278368561272046273702307907305700665457881763405021518736333646043046398991159348602297460069223031903337266200218064582025870512431938305947561282563457621413619902492779288600563052676145214145969634402639857743760467112236589475749129407777309569608542196215994989887888374075276971182500108873241601668993815104178597547774247309191948155321482119665256224068738296287965207594030196644472203906160973942469751161825189577134255715598906469716749738338810566666059743973155885315504034790681705938278083381576652467142432833360498174557273617512195887196541332818071646869202239356703992025096019217150256024938973330303911695515368268590931169379241583094402599991737238323154693480899312606792888178530827165779710470235587132083891845587573087374684447620999022585021596019092772913318565304064109878088433704917175517621409013108515508006489756660034710844880730565894352790564839822304222871929591087855937936584225335991033536406157636238620436953923981398478687731990273748806093389008103446829662398199554010996245893973060737033150591640459234865160359632583214055063894342831293023019744777986187872792294828229140352215842308392934598427961992006170517811715892376875356713555732175137381165494441261425827649183894827657987274477618349737081567119054113742016053828673795694245576806481271599065577184448307737712746217801246941324229366056541000708922845649626033324147637112101321725334790676464330327225533290556549220247450895254293289823946751611972332797566283340319269158605974468592081059200396454165721232395776135205157363954529207208412701449369413807398103887345193854317238332211567745248210707291852075495792071623537339467970427521452718711650958926143043460423761953504961468342969775217550892607689372277993669252525292190471737624687800454017778159593908193460833765157776792929781186959894198752378853146326250971067146178075011358668053220764501482205070874099917053544053520568903175099352525023676219254455039090114492851465286030789236532354041433129007281792929869036004628558740689758750099580530473911407360603444163615740379581327444826606609393393596926615145246554576923760024769798499690610046769068146025361082052541763877322391842404091644104588401716093736850519425998054493690989247526029073207908055673638262472897818740146425914085281650202555323537538469858097432807499076664863454734319907048606442696233148132220583832588256714009760740420816328031035990990639535237545845142544049846730649086481545557952545726410810463030345188279465246000707944698466914944325077459570905570169748974847365551252170416019355796729445409820139556935628132394707412239620358414110777042911796742043846165484268965324961381866718963345734741338372969832949045071490110573238720778674563355271436666211046820249482392503208043902216894032029417356349872513109979246816802690208483944567612911118042553887522130284709985617579258698749256000811844217752061018886965412688298890161127339500074493704544795342395145538149718276667950591407826205279819406985780594878264367702814065000106068069785423612609179083311231917302978665803957336178471787790235778299708677668410473984402456997913536031334666494231055353152008317183604994256943972520137224277970245732676616126797075937494557982299409705599487336250149989316834292371201866749751134698234880170216220099521919794535480214353765158357417152568970718360668362313877624054565282366598899276320234632559396547958633548061424157943779862377871322437282235716966848347675792171510598840318872535734007799979018853652341644882476272080040521754440471401256429551388016969676587180340707354011795313321770648502434056716080017331315131656670786870377295645613586400917520306135255690810101925312143120062446241733259592954499200425660733815794081027388204125723667172212196618655303598337492387235556271850021660678869130203924751823824436522704529248732858035577167680378499644658213027990808175816622122694224332441488430998323894857891098777841690679668725696982677576934299554558251622863561923095994756704752484631932843603439913898116977373453051862174010145651920389519443999335464640884693066675472070710772158853716400309285068982685240720595752570071561261757110754941061387593745029865009447253164000281931155500729534829703303987375330811357851805875215202041344053237746273760363433693010451239947094576178651190995087069214296647997316779226868689484612171485288146779359139225564179535403772221304250683933076110257442673358162092658809058674850806058042993599881027918437113551274566386299496295319321686826435231981318342222449050411272665137336935416006959730844069455574615841254435165403926507123656444237738125955344505154107052057030587205220081215325400463614215466684550075054709297675986341272440573580276825354438764603294256918649183489080885982009886882384446058906804297723936726623740300945829231206900804160831500522879203292609451626311719019551770892178470361754683252410543989890886552483338215507732528095259015906799969805393536076216455048961396224279315080628475887132001806828474201703030810130834063275094614487284761764076366630073969082791586680659543535694521200711033493223562003126030926063787118360860143787068235272175211817252476809537145017420527873134953994366968825193482896403298682834625724206533671280072197079740954877259012533260386436619801127345317723459456369243526392350158442429450347694025679512684829061635424585435599625509258652563631046313254955364278603085207503627980723739053426411716846200516426804222799151851364441558442965877362801997999987810502846392192297933653833378882215580970782035937917418237055901526562073221649295035016514998651896786023732020808918912059925041685835963012358407157627685670405730375675656228750293377711123996436383340618811710592602417153208986311986358262912794397729218851253766643959696062112358024602174169291568699548512601314193097387261518576808403321089785489735029049769612238098587040188086803155656963886043584846585934089637217500903482885267237398282913210456726163853761905069214831746141562038508383188126556781369206669924382053900078159820557588897249532549356595978642796389438536422169691669770634690332364072895685829693769511980614588860690852980844042102945537180959520547398405787687483863747082811229665108391179470088578582128642059673443720719155488745896644398265834393952846299025760523908443821254835801612396434970681316017524601639515477153748660948258050899778692977422775171662804458294866865876877115653621760927987236887325673023062401833677618229468143957486280883234386733970660873853267358660446491333631079135843671445700198948838481197515433495016526974110820669355250448765793978466603416614907545398394529747135884602675900446724789703731305271805128687519542147385249429641675711162805388462671073108371648520545988891256135000140043586164848286643478114262093054153953563542839661914140507562770484546426278681988127171081719724439306097030465977674176854582347602749392037343563510715497732278670745339484768956201120366539969407353694657822007444522305101846992959904484235762406587878079769939634006304528596230793157582023249682464099735368181898775101845740559152362508938960054621480935298879693405703035134040267631544501142546477149454044898950702734436884170951003953679644896435038320622190447571212404960825872254824236157507774880339209623473399233374601997688697425102137471592832527956697800802662729504222039078427312696410207614101082847781526488417829054596916037097862962755965903901032067165232438397313491544019312200618583306047476393664665570765361990800611468588620165964182594719644275861102470293861043340785510044687564572190647331437157640200402783074653474103451808795246515911995836139273041957527281853533681443957075391602161366179145690780388286603750262234371580668791821846099034556021941807888500878985267144944935683997300763486997200261473183026839179942732763470942153678377258328178187749492325805770343375592316173820041527788380539848594820755116198596021175704231163738005917224288811618592621622635485762865318802390291437619057596937135730325848822718001175136473950409640317148286968270481400420905069462262494480716389789007853265801190678519225899597319231632585112354132752599201958156630033617414189014832596593280380867806770562975025556401331382964155000187249460210234086818923263956233185590680401985202590804664196992098091988341313437858698617577073857665317938820773275023832386741405582725678697062288468347994588951203574229395062113525253756577919706602577724274583473095026924506453979712814476355240510470920844690519918545050664195569518408645537006978163729501833022196410265006702191617373478811429808845153455576757821930248646721338705442827301193931585917989527195204882679904212413166618048438635830230652044353382056231697328869596194266898281624295910689673357718028009791554944790880064809226676117208303017442274177394180838125988105502553909439551160079263992723656013161563478028146629985854094165224063646620951156324630860573213059613691079397947447736320926055727593846508913298479901225325163796443611747768160285728651572376579190254015066350743380862542136557193931778460587553887613669418338313942643997104530899681678472411575191889078581453580750897763815285062147221809942543645012740175899024582128211942176417420061128305972255568790482412570159896245998773251124018195051812501963481585506869464140000097920018360383391384923804749805978637045721462479619758623184382984098093178747733592257738590944317851904970804915523225776908924847373619904613621698065439313839972690818281073072306900054431416658391267809048396027883837705004252173646869972297042932241367635572700112405396774728205836991411067170203850934197736030744476674428847244762088523238131627830320685347225936724139887545744768875218686492325172432532267960683521613910162069440923050417190153199828225433018901166473441523912998865324475858245816196226462393457590515742614652617168631624332235940375205472590302243351344789905322867122404029152594539453733328348748896669047758237092687778264450962626392432950961655044855901666618895601654207868142580071964049963235145662555264080165996942488848682060090833196061883546992724525937115379760591302798332410988843594897125797121672359092651750439832087825481620062081848821062988085917709887594410707868692818908094511794502318064846463348608201058249394018747598751393859251733608347291691451646055690776940432817195795980975110170771719239237718840819061230193550682910775051610542817056077302115593426731410667158928796676940085389989585030350528249986263511886754247475337915440136082438467859145833304820624507635523514244882717971026888466480804773769713226605486581220298006432852386904729144771464981168803000679044386623696975032622109666426102696843860714724766686436095790989085878617467023312966622327065625623184625421978200237475738989051534846174299371339615386789559036006345344682796251603621048249222714265001228013420703211431046590881134560594561529313934754028507138065851634594780812458329840106100225969707685803391310575904705023545497590865567542130502673438901415026002558667157542113587725668426820860144867453654630759875509072215031199948079403219903470923353830939571183073474967529609584729005666280409777965357183092908575036881187640830104392679022054857034138403865271206846072992991712864565044017334916177163313299613474473165215043269520373556045353689572093681953151696883873966478805030695690301892805108486027965656739429211172979600150338352535748286626013241576343294025001993209892277563825150337415969611768021049084259788638612174088236784348808293001683383934038834093705951952011554265884492743415051520825908589451867177731884664231157448159428702381466895795367081826173762274680900616357481869204958818757612673865357233608800246460910500623324174840269461561597984772379109878768084105107486263993051667415360591651802717721156861197980608979524932348893854657197416206298473689384826556144423663252439595298965159051574304004958016918409797874463727574564310041867726699762337651293857861946498922063340706979249953757592560220314583098716592044445390665879818483076305861384315861641488005384175012412120211044329561204308534902293771347246306870108823574761406111975033258709896331228059593513067668646951566192445318672014778749505535558101293285553284595555706516739660391104618245196487148151667243078811652642585381284667184275663781939644370417192868489711727172649652081684166264121225320296043495710051710221609650335663757955515003310228490816786160256182929642067430673560447359781181076028983779679540176364925373388015547065068914274444073512416946630517207587879977935148655877172422016729208554855311933437221864358419979968833488730991557287562402141633230391706170870979152263388180504665859331414567834301447009641705911495882263693596923196143315503230691895863005821400875434017357698326891316545999549816530244364263683727037607298937986810053704790916838811697451418143480712629449820683691554609835069599114993433054807882203590869071508000100503365958196190948700395125695396317128647481641809544242454219768028622103605102262343023368377730297317776064160039955843447731424169565216554602515725809286279792091469212359684240273222072161348269570078191981435475857206072785873762234788989733308919424094731121516780513149520718773664614051107706215721699267104672935069816216682743612479184133081687544931566538973477482247487606248481317675429180703763525666504542881287080399788699925834233038041457628204510727879350510454447151324574582076231019424696238642694833434425637715972277696494405005268385899051280507603391803221817237170493471407201226285960934258504042406820418245276289823910423451825083548571702620243058140616953917941689726573262292514346841386322301514109959342674174492969392885964128142167973768976659514076465886906636848939571812461058412116524707071999040269109592988976942274423821756385820229321419894488766694016028128643677109712083513943040348183046938234353248548674558837948774704523276451210002182071502492502436368788343915562585034446270972835610064079696465552744362752991206366656442000542961646074663602389234161525008426534708873603847630492534254891601606228223179054990820845357490193419984370259159914595888762476999078784699663090916331461084454823356808953406370936546818468024204385229735095091923241001941341537991027922596522452753716532618643933508224365913815873683281030875271217523981454289329959708231933996401239351611423005078949151624630108274655186471227754676633642302383260353387824387637130700547835944951322186498281966806607680893522829607755223624208052299798133701693917553124264677699550733576890411093025565256186600538760250419873052676116369282621438336360842050587764026230178330491752799204139112728268281652791772640601742957579357087018299603460652114890501266364108023288709647511788008388735051394762287034752561357916576562322024102335622060488525832783557539489454202691808579244075241772136336478483267537688719590796125772294093028995460861935245009033023158214714352266814563684722718740507258066669081556971700521895410717809736427663354789581712033878664426580575663311870519848482539401251139284017825655490558223696478648322899564927012727647907820461360790642809913687834943126436236490068558084539073951769691106791991715939845243175738810933051769832474411416109386438749577853313906062651803233213838072541171728464400594311593154242908717057270756157721452249407990973948765334698414283065744026226222090758249694877012663508098693338279385742691708150484604534087302315502340348945771859641067123831387527853071057823517846561141767683014465365278634550536875957981500369548679274015548859959430584169744890740629299720446943567921355244019808181059155831922796658589195388102915991238254593450042456256012858490209003360437803060591271459298711583048496137192111938495982362080414356685795592144200659973581508035791089566745927889911919649561231115646706998230919799196699892005328038859884710437515681295230260598664639880307768356906090909696057167459780745100263123434727309496510856092666818090335527444498038186772235092782324864103383640837846341143758918288778240150734248480475754136715479067731922758145149800290184726757738547128888631866737776271065985430175675288753426543459676171852623101302746481659785695496782156060520831860037325045931176832460824839377254636411649460616911075882317334432788877071563885233436425857069895127459973881775850658680829433939512328256612154059400549422447006594252878528834477882979500123800210439090270669668434878190019166504839584218336152837953956213992627983738036901047155174627488539747551595855491669964859612898932939798478438376191054606573906562412037280748453438342887010247978053809253262054821249250626755956107786075514063960975720176958602073972195223144770948740209832175118427451575562395148729373246053665101991220289223978779098089425193772070475716106939379610392162815701237335320613324056680336486015796362221178823237371094069479831659560458591752555122287172751929233603458816187420655826521899546403999763137981744702590345341390219639478593433665612988052248806383630903102732216505260111640800149658570028408577640563670862727527863318619175096109456378346383760341139872735333538766236422857896838148003242303290388981028427897371365843802772566971079471814328735690419899433199807017139992092497631043189000054996539942661683953494706565731378913525514945370502164583431456907213668387913039108177849840218574502054970428247742971603369624542319447839691562895004334710497099515935781586282033273371616626020539891457823859691871323417971531320635767480259969617800453820337183873525672803337088791902180904688681053011188141833721241399767596830347115453856647155066880929339413364801412771002885440609745536254150068539940440148808158536806088962655986147555505345150379370416146875266023512352847449520427512813487890969004667958700317208328520661433517486775082669658391208244392336508886230786654898025124775397785995718065154395909087056443987840717112365900063788984719332163909748442211678180296235915713144980338190874904481041079236702049319660100760125105433938210406169762911205775884115858610864772712525703780544077374929050385717829483252668630985283760043482589196655051901321689136505001066172242748082961107121752524128813617987307811489579901632904238562575617965866508525413047744666804854454851507765993538646694914007420198713678676495308289418770414617463125954613106939961296903828664589881263872672217779435813466330047367833567881157375926241954176288755826615768301264301146476606894301361955004107049015676642760755698598941507653728365551812532023972340669490196838578067627149877376198839504597194694096102433358846634362068041963899901886823161664293209500412770512660883915607061948917961521157879827735062268613248557809546246582643729094388800683745463168042974014555701430805681653758378467532596843417859379418619952445026906693361144595316162928613646710378526831620321457309797744900479849015613114411313967329119106695656873447189945389325236711353439755479406242026029048237769942413157187977353691242460851380616999630329195864889816901827772999178578834420354356342945539460435298439827714603122645150417339620423152312168335346516511414785544036521766644744441558284042261639384669315902517200356106563590418110120873965965002541051850051447520316912345805305466258230408647816040430165189870992290977571738615695573866778757878913107082240379052757999122863901229660541239796900458726365181822338276590823801052895843756101201073032146949758117873508362613529692148430674512685442150385098644980001062579664916077883367358182360539585464459785037846916498672773665375556861914064142909792479406053628377803195728232577366873265082689753365814381923906121709908980225211132964214362427335874211367798928033450857602416925635254707718500872178972219233339417188792813724748116602262311443231562086188087615333912740125536910608061645625903649407325712389108419646545557665349366109419912313276091121110812568035390225905603013534122199742936258346075237520351091838821077043817376343409864232613363162588405994777744178165786987968956143867857431436155601796150415487721806270726399416353877059693533545953535941042288298455464516505545917454658044834930695313810070690754378439524609585242851078680791598286845633262696133085072197353746041040190918099139614757664835896404143543540668151542444857099920886739436525561101200520941684292971677831264557761736375361217093009506143970838095411849893713361251985001371139356041893963792702533716187857911778494426557410627429749342118865527639990033637409645042063610128950670116340463317620522250169513168456693054476346227694616871297673530448927306971112358594861539454392271388109496995392832941068743055063985536721684766455590548037900129806086939942062313371705683948882368372379768463449923257689320547424087959871721235806087797685427685257228545054165715099147480907976028448723363872257169922032811870714720963535593817527085460226496825623299610428785592668906019231126459424233924616805492917492694349613311756925274772150043294103309210976036883948254089691428463053796264550654295861623455744114248990755724237417759670243642396067537507373697014516220984660655640625904248450495136318368022199544398726402935338908563852786362486411849441307726018100426319390997870558851635766146864791964115828402665022437820164371159395060475584506322688849300557448815768713532382992216223156393337480570448537431200603498714245137430520130403564816007419964711749632738518840305906088035239210802459561736437635855839776479098220830134158163774938391187601078112967585049196857731487094270302580392367833668637715241181054365737393825635664090489988970775641541514286086056974639203546556639140979568366890857806099639818968870872681184160451730871043239201346400957583501308926863396361223283238259675776356358382947440406371965411259713172796551536895978588644301242859841845534880773369792295389859435998057977803411645656241848251552853959344467315984900766384707177378682314686478567337568383448164192833702747165331387831801187066832592818795786539718471242724556423386603161894451823223766172693764034147743517047683129108590572837874518805990433634076208330094496782658337899820123526705185453498179945168175713194527840468790160474918872629958975629294649923489757813596803513023941509951243551096668515121677503670033167978264460132083932599789651350388077641401947161118555588666162984574563407036608360252204973087898666101927939160158319339827561097456024350314849536592626525249717877371907570230706550103817103733888269696156528963041519680685229510138528981542329722360543901641473299487465354352958723485508699585111263429721386382203038111316106743137133998768938359740394261389800053864866467773694713062503233079082100536446243692003613695584573814907764863824387657095062386796542598704616129087906882320976099802195575116103169921781661950227047168085132400859177463326837299853128107904311072763120468791747402152073128160505401342660941859195297175902970870025154728466763558050398417823276226566431346452512772653260484002182662881780868285681973980958856672755334756932621314035353399394603700576260036553813304011734208717038983079305011325411446847001539424545795539337789140895221086393231220302731238972839789740316211245467551548640795838144295130035612523532290757042221999548837990086433083229162824231656568239526597502283766871519466767198846239517098267944670243103790351417290840226915035170515092375451501942474170108181227942803274127053575370232472397216950343178472215817063002589422083650738580153175923304682385334985793835755015358002691311069225428582972267818785388443028341448661606178489705575384827999691402072604289963911989775493505638428184160100368110129666447551155527962582405967882841098008162296592015597259998795848910658618909396355844900917008303426502270152421962526294532579776792346629145276287983330167134081617253650207166863555916729172520509810576731482238680231392960787736649605161837495969978721034764782992297525718938263447792587581570504458628733476042340222820785952907306727094209731201848472603405998529235420874409472224575269684495029884642588797989466099401165155248664182340469524873808763091262127885517718937343071715621473477369988479963759346451247669599030829160287059815263404811434480013052037216191730448607307326719765837910507556634772994127298532564013652063952493847997117201017962218093067231541214654239613118148973834797809462110513186379614646288999473875508245994231479647526174087683570064084891600460035825360387223844161675388268935962962074567457009553489110085826973280711947911386309811136742315330271490328970863043554132752909322918587569540854103783098602462006641780400261218758863955221285715628159750453934067610558670663463213114690863264394482267357563208982579961615961348684675589004308042093215071401827366570341498787928039656112553349596972148969585704876637003595802125905028387797482453649436005205805740562275143722371133500528139201141478997671506752165756922622620458399865565911231005679137690275479406575090344464034963919434293294198107159065399913097800507986326235786612745285283331368611206650471974231487627693666680330636441543124399686438306537116687780562061295575983061875913627945622409357503465325510784652019899582552981510022575646828599362093139020592282894159075108247971915334780821975935950592938593179457157648242296306988662985515354419407667271605802176591591818489087518291678825980230930560587520206243618840897785940051576826087220965838455779317481043852315245094019966726470848697070198167979614374798158212444322631154127975981758054948641807384414261932073714197594438479269700363050718212521539485786518114926808911371354742321338772408668095592638551653264714014763138857289450679559976991306182410865336134463613933227670434411635137421909154037392519291281267353655307689854168259711599997498109853952552043154883940780656347334996452939212931356480563912540983556532903316747418390497693716165536282850486381725450423069206212657707846683288479007880835153214490251306647609454747727919037343859784427343172430623927862589696628036970548508869425608493757797078426570075691191013353869313399809015645523719170946409966688751585669931927159034404781126116970520422545931462612248928128771556243527268288004609746313920393544047850624101934687154216058159255508228648860341789423012877992709102002176338473627439762124786926304835438256703212586077372020318347493010001439213828535119373563340691438430917403134775927980734137133553084311603246221790076843771564113665679383609178734202380869774806645989732480542408388898601153774503154901717307890581484436738945496802691936482414547171294806381167844312146729907728508094134899902435649956271125632719832933730367811211915433307283839432981932203803759780877365885750812970724407991011672185844585839600259671746456704505837105494213163921504159540932563157979639593816250306007114097330474428063834494311111259665843793176623409998127105699254236350633309622277827160555209325363135217230402560608085812939572165922703850942513837687864773537150312018429297268781607938127136840184730424723998061396742632310025248547883624733626527512577023065667718742504555820479252560041768200181351663935662151725061518756566648404203933557488076987388743069345032623472238231337210385728064258615898652743791860870071938656917189651368856973850959086752879881352255230181916812763880712637276040096864723008051543840396519891611256739594023016871730114541995283563451351068924495983622048781819335055495278396462642013732871901166861504203762749119220282970779220114564915878942443571062444180004323988296616803932141882064022908033593440753274008493322257761220061364526522598648878289937751857057577083233236637724626968119975436762953135696318270618830077889464106605075541078527559084445459567297684138512668566314490207490726421838868306562463619585175416892679653809097862844990613946207102599977188098302422434333594333771824828865450617912786946809527603851498102466271634445860638004196202215678684141075396803130313625653330043708445194195565227794108590895403509922403769764588669398750499378303135622406567499607462462223048298023959020464024232249312151822576494921119213120060958138808416737321190518569281327152788368693580491403269526037154303505817175765907984812689526227468287273963957588499914250157274241727643137888603187423176936780234671346305164721817625436283772351073534722868922859578375320630461275966192221623644343225310533810313644015650087587344888238154255072588192273748746219947141964750463679209790232806473749380307651550023099635111017361746314069946024413848127102980984100500702273413374561727951554960882563400322979432916915946413408976919739884267854990532675770837985628511434313788552563903779259639607130986103644687883793005994290395185809115810424079827152253707333318871514977924457300784044649042706596778486812191360943576688886573704178373449334573641702737167076340787637689982281771540432011799204336030141740573258174095901997534647741208940852396856833233392424494755347280468312114504452737456584014414298632663885311136771273577928029244579612409963358467500077954594410747818517407523265749615771055590603665390684790674331701598823084931209864480461543337446098039845926274756018050454935698259101483789964460526360227087010049634573136723615544527297467633400593893259125145332613524520637737525385883050800462101802609859853565727328070079338740596019483148077598681024920246468135476121249945428656190287821951482399133614818934860427422890968343269155267710301347555924220824767761607519037260960436591703437029978859067426642426304188877731018927859889759105735296563199898551848801658126389888343593020955012505059241043335724224838665320058508782730175772671186851514616670380469408826632859717341752244950005170431389600456130883979707455639040171612379058972577660610315448147684491638554916264388171332666727836444871194402601758630841277528104084831465875255188456064053198794417040414651346604580179938057944649838517816595042286668022438391471385197809054379910564194161096186500598909810119923443993714507440123403247371718469073008527445017316913134321503635980119386501367284564059482404621671300154397241971814027112119722844217786803609857848101288836305685289682095549398175317479520597559229461909295620441755384148824980340869450600296780260587588193572634409239763181577332989274273806245098015154468197951043918380093305298499543984862905058654338815934951667821290082931345997751141610860914372533254045071077437714834104899841540771263314151291882049483012683511487019530642229047673352066338104764100866271530073780597888462832734116295542597986504688354024925835692600377358675841357409442637160565481377106270479233791359532517273216517051755404377032189943644312642346245213557430598594504743895088665066081863187228021910128083515087317718345656527845124847277777583503798112589423249883648695510075295057038348177360571080597972190404031169718010016827041458107305558049291738436840821464492313946027333987326477266079667937910845007907565228763387348286535730404263989788180056173052729585325110445918588702680529519670981660810263494096632942276122541576925532633439926027691604224665835179762570867017839111128822183214323553033560477899641449811021929204403633595651085905807301720379843186943662063396239151605283681680202767320827513592003322825608585776981751208162509858522236462504474289517515814364433034868677096231780511755110860424957899432355524712811712505641200522653999571822809403047524784310175102542492029946412921253823436212788598323791064732144159616520858500548843286807313221089067170345116973057232884437212902295499690666497808116163086125125240415225581106129004619519766401967291464059147451272797694019682633555111849179387832992306434752475350125312565081011236448237809687973855782041520567555230100596189198700942640648586684351252353997924086678327022079077428862799476267697160907713306986633026935327437547170113072629097044362253647477257689852616634597580670336533588650430267037636403319408734743107786062497399441701495314959042761621349683928563885343341759918107483220539830898994915614436987483604737935163999056092406407551595886864196541623975067408604712083300457612879650660948629844894500001346668792627405253369968448385776377109943223444802974861374772507905352655828989666585914946692487415961140665803047244328276856601443563856443809146166683910344692158802784663305809274336382434404008663758387210776726634911252432331969734417283854433861752182182178346726442237042587447379266142714549319150596895546666806133882209665799093276365530558066163565488577602807276396561063940840900884135269007798559105347745870679958096653981261391683043164588648981372001960473007787846816838513610059441732290313905680735920018494084181265839087418842852260639133792377612372228583636892962319855638043841491043745831868727047401705045711818512625527865151908454053651592158435743030042608739927246870815458883619945329181537621966318250673582482934970366116899536460622585456930701400387294025605898316461997622599922503559525872090291554175266252832005943483835246211744424743494534910402098340716403424925942444965373055103126506211566585170262216970335187955620793173758656533561698713985434808130512736750876256668695144010468727737650991809673469619816632606600489138065599816832853494462392158379794773174564939348023193040830280991529856816217921638434073752475490402904901947325105414477578753577653123553203881982789368589843170600454719743421908888579560402111398069338784194392487207636046589724682154737753071623850767158124963513603263876718368344737972056396188552568888300085833029386141370329776035874470655356429892481187531385332626969395881867792984717819033831032178922844026259350627619643050386448315800185092956500163045058196167574032626102150559673578964934937059592141036110807983131203219142389472268515586750494452301271577280194802744819870421360394224454333755204987421173479010785682848588851426499665137726882631885901146098037327798262923826374246416232836677840631674382327759615876640466705414988879900001834994632562598703428941575305741155205013075861043896814817038968013758820261944524733730921986530823912698196626465850706482655327026252224908061209654560731292909266828525710290755106977819440369550637486490879709163490305255135913248963495047097321677711035207303520655482294817094918095957200712150523736607244507341298347063211058442231117024651122012353730775892472837930948867546263882789585978456426316135721093544733891339660636925228767055210019358672186746488676144050233551022217405416483395317663183832175967592896721730398123997551040224933246261049803858371312210315509158788953085404996158922864113014973424637043452168606186201977301167591575810341672990631343374467512667484542221014354673652725783326603161001260814981628859177576433530169448758887965457805826529298220705802731273178380759256777339320663742410906700908141066245610130644269249754735186685223286340727067838151126074611598702704134752376647171924782032923058515128011199782369381586698818207027829918465207670208267374724920752249221284456058674979530356963722154038235938788488503442053349904189975682643254452839279962707503448141104965594599781925529369904149799275773147132799868957868580018309010351752545131333272654509964928117009028111808578465673545858525805778581823462200999835207439168820273173283345971524448503350520706009936850086262735043728873423072577686628542321089153434996515761912697399311089914420544632493624844471841402455103252862149357193417153304669452526214159656067710865718406379083989678404188401792299073535734028292268506175823521922832455222475784806220540142950142820092447317764784881098443325625064711469661617431183212822655943352812026478001504148802603797733522198867448440436127592855136387542362351221233144711333609976833326109857704025532049187298862672214214046816914549110418590507389646739065856353808518162477839956037286676311170504771894122966683345174581298975810113579776475084851722878130277526391975264852482765212555219557829264622439195004519157250476571939139168454053536084061746968548182744682946382806222924880615319188870795408063437483518794803553551918483320503721898823752987340398152885563167815832416501720194336216261616095547971332237193010780802047786682257512607898200581582828016415338190285693295475647973077217367902721398423729475123138902686622584133648941413765526123716381406706759123868022928223256378411355765775619820900601887147886219415099423506069592435049765684780730784126150342275634669356315083679268386070971808050001901015283249877307588642206186429771584601854673962147378922074163765259988355721913186575316171247871692714957947518625415291599174586317567590305847351624388425088400441861247013571458110004097753358064930292314500795836594146887850346825480693095908008736352864124638769363356718538262455204712283326934071658104601001341971143736799130010035871785498509193933684100841699502535236008945807434017765629752140941083030780108920576117298725569438244917587562853870127295274964363312869747419974709242715997206308858978701047576009879408807640134869342312558171850623163081904226815704127133378320616345357506931266206943493711634551912468031162184113618825111392994593818372912319293308355083099216285120828624317483067278225253697129491927784531285624293638495820853332681337349755002440173828362701677886348476116986051116956807706810536170215701195829133394200651040749662190484397746076318831660466767319350297659048511615097483368312153211702910210876830826069912468798052422427048288755711866871813468700192162651323684098299563774306151553208960331212325226247176177527158255547671255318813213388568299906616082540071446935484636018423660910912728805485548433137789418013048135702812644847738337161790490475987529638523843001325119003660296482139726823038549738791219158033075549077420644666939640958366404862118999416708309386356343560378645529690897884674314917923008834678605638361029778484861797164941855254824346265374029178334476631601089784070981004431074651339758171556372815518091668547900171284442912505335901292922604557010828756178923772048680960222703885382467305293228056945734060828021558800425401095810445129997274555297201241877662493398371177602561270161255022936780949749245895685794112667631064543283807535958291959629943107769012849772352761367740192277731555091215339971550351463708862541944768356333528575706091879514207479712785264243523885751145489418100382839974818148559773984956850525960724990568608762488539634775281742871915680525856989786422850088159946225945197202687725889685877339668372515671398627441944886900997289543042363181782230797978395440698571727192580514620029524115021757634733915249267979561508971396276046917932891992426481141367532162914453291187406970649085280914507039498569713658787993002757187746913193197456666615155344773336211772491438756600936237579619862520329160781237082736712256600271446797523726400756274167873470681710617511086038328762937918884401397137067063392079371834597149321132724440645698074518343127138715152429341788573981827359529894052883044211844081025309715681640248629249888208016476695453577340577396970337588150118659452848021403629231946604350306318339556506888831069530758179275465044747780472623918478434417872766901627591832206461762070732374321317700142336110837473901484553972241224016368584501744341498412181694327567399441779864911658416358769216867976819316993156980724193627422663445619091939394174211160305388903028231568757386151263909983592999872708014698392754900264373555136984111774683671082605427430080546237709121807401882616559869079835299509741481680424200225314369725786392684649359743173139506120724822208241197418265073433763488782064006524819690229561285971824935058489342413472362019824812903215646730968629475736449364608371194932341530214999607084823772991808974357539861370430392136709204564039494093132178348000990200633418470307885594094504046054887621429579551255462635755110046805792654459828595024361866249931415038016190735237449953086121013938499616094173094417601173685419977260787356092141425794984304308110620950432696103321411401646354598328935265984877211284445977855547641280352930860231259810150507399133580095846608255811387473601108389765134575261622972089822502598304208248919373736461418411765330196493369223544163296547171621654137648785703240017376394007173415148259109958223365294285906486685542034975530219666590429901129206671832862840391658140668300754866490328948945987022859599857616360841839320060035295796119717410029552519617520741638444422741552100997531717064947772917641105070444015240976924712814048689823117813433760214767796407518110512296664290483861866175503961603847053778768391386692474350186329445396197777123215890270294431452168330795943301492477797362179483261883370373213339799717390346614846597086538914712471958741369316282100794865195928145685135145742133812893193883874246808105541962215082272381938835983362133714252432376377421446172314177202118189843881959171031771337212267891293434526038904763271649365943479031400359090720372464888342220416367198887138916641831771038998953843512972564822207730322839350260875424406550254243094051485426627133964242511692138562724925253708877376656459536620021979664048833214056175908510602123351710943551552631510097774742018907648128932976392118291836923386709278714994303296556597600017855534284182514797315105754845754895085102528542671767001842166955299057383295095647992852481287541838565075845156336218502644613761060319678265942053944612821649778371868158174506491985391232477440641435247134530339789347309216754716864068464961104358182956753082659808561074308614252933617393984989619418467570450970576137289817171438309656070407701976969983531789056262424814869721882280631453700922957792870886122924504061481082076181251769183703348058282377538839569344245486519999082881145511447822722977909001754478121591316160706467757829219163533686388264002345251316351149382560823720851580149692186003524943124765977407144274958282691673881273397531398408615239227694326036515765898038718457173194169216865144217579165432320582446502829220730236012260889163997116740285814770088016935764919199212503451803776462027856768328593034310079405396481520321087975158555595070759156298370631855951495121329850372379082000108664167602956175788145125886105175551873667432529783447771896048980337880822263507765986524943049633856910120284948197786232080798019648644118113443730493699324836362088023842125331154263489982495833290837441105591935112828990673422866608886187624614449619042102778266473524496054879409353731523357938816584303728152548403259513940448460486955103785649636971134845738969234487558931162830934815839073696387953352050302088708256829416501893908846159352595123419127973444093016307208820376913791208348521303318184662970220661891643616618236579068876492344277383702928994494391089940093246462247170484062062516491562948835923145737880970997851722751792727884849928621516522276247415846677014682167825100018139714960366150844851474407851859985901139361026376186583137283293251237870276169481093275194174995485954309534521839285940318512086790442025390830622626028419108203916546672174296655839059530713424697130360201547401082645447413061820815156359609786922778007259944045545912848242264252676669269660537391790771911360288483846730532001322189417879003126140020161021830928707689776889878946999805005002719743749035649671092848738397069168219521009830141591875462456157755111524986615989403521405808758393689508899181655541488539911014194456403910713867180359601389847277513376812656483431405184404020794499733321540258105887465310647527845259970737912159843064500248447717232026943178320680796300392828894288907296683147399103885591749857509751441757786447352307162352984053165136389060035325074746914552688843335226043456850579781026014086928499634767148054013196835379703959588428945773141818360363823319117448089187253651259293382424645270741536233502753601427358261405706292941517006999316565747853830018707999278188851424817308807646738248335418297942929295628463972228321067354685276231092322304977251224773905502791184420188814627195175224446989623661240480336365130527007094603747065374236549076726136882426289839625162170437199498813772992092596147292872862106340485213032802387378783258619095733925538248459672997977021409912102749612591512264195620905734991006035203872953905590001567861232490996153162211483851179535929235405977346858046997402263100789633922524534866058613630837402460692844925851885616075915698958204005791220562411451999858681631800158313163889493862596038781822718540390542785166188163837166304310012761852554330736245583432804319286264313598856947760521908863729678859337076256813634944388028802962180664697309575136136440922818761761636843264441853597315059068990295568526351465040469483713032281732916878748094147245841037481414828651291757562321363553820121082799652204497256725677977306470030272668023626897549147246141507796237870548470449970878498342122227050745470276405580524600037331545225448193305436328509298579209133718210518723198938276190129011471574150175727116662331844896847646811701046709431606867648584198851853570954027550640796375192748279664576556066279620297995386032121508618322497868305418609873614706785104951210023451912308018680637713052473262043152848283298891640950233250105718181593524927085977345579353921174255482491179861639455815438288974561020588019985957721804851948225641335662699839413335748609775817010383703678027004160329559321510066906454534119746735183688667773329580234520657736283877142391107004127327869134131913678566904451163703508392902178724505233189306395100195818195402702802420520992590841669568396656641038815036483652873794416181223679837536555935115338794457760438012657690474271165949987169026093589216645602950471137730673747202135204743520010991837690943225213141721958902738403112342686382122956699864923331459735138520744233649200267439534824177149394840531877312745032167966305710636241902946955627219703861946110401327039697123368178131937065302551620342173430256486291909234467417002359648754635166506261056959246093569674197188901656843435134480386619771190624362195798727899480085313505404494862227169796031585356032018052722625871383176895751965005544445394497061072982054601834883158350218522805578193183017084494632359496675326476593222523862050485631436472426106704353675408820131726397674036681432526779695444754257692721824621600589329150308985972033215880488668260158994375149021336372619842178434226148253407693467665355166308076746344919666429786423466725970135097075759617091557736721881442468608600940069044096161734036626911718902048099974832174913099281114817663649595277648587289628413226384551356842750183310985649286508817697964326767894388348990772586246720685149739328326409818853693231929865154758820803660174650372218346066296975292048875206491508216553091837365162776369921524721554810915224092845402138425019423308203979574755925405371170357843158802819957124735493445417377884037745350070373720352019437396059092341193288143181408657143036385240230515488476073147772068080728614529199443392185193626082616926386405761031384369733541516768391261110881282420840195212525203349913349735336227097296975701863997172595181042528461072033493468893314415042284441215887773042460073165246281187586643136820975688041558807735621761994838262137977497869355295440492064573422701054665062879067670498475573279204138859763418734948971913475981350728535636208414807285533554596082042861699390916321900633029403354838257950029659310573932461643667606066444484784183935474931779197113792390312348874601575087879983091324769863386831659023913148379231318630097937663407559258471809045617625716353582731233147066904623094313404490731131459494038469032725588112801624497554674571582920932055779981969654351176011118117455929061772657929568129262171494174510239209791065093722277257244651772991208484939509692693863245568246612723093160120599943885894143152372129828421898965694977032882231260326095441700127681667250845361997445671531563774318709808636497134486897783679569284309232663459333757437949187860633696517111997915520013787799698727953049050830038121180221776266465928402534496468929603823395308528640962036292815679528853046135841874526627326442790332278263122175233831496088943293085167288496935287278099465754752273389839163000145915867705693435075893388504754719308788023695679217493607689434061305443415616670284626968334504659878512192168705936591071798296392925714232235502712681255110545568085024369545074805118911725259715335665655805399027619264572173447738236479170961905219407769430478752386507930605722677148032652350457479603461754654473679644748188402932967325857792903881190660087508150579881096243977351174174988809770274883988950378449959417710077153591274532635853741246550848048532723762336585027843624156753234270194128998640663169365647986828230513209096086601045841987790225345848865109438767682668755013616746007165545156878005092949406132064785141998988721784817124403986316899948488034331806989669846036422447910532087142751397047969043604580802203851338043614425603056834623898333832779733143972396259278200903632519707555492056181553223854308029418003438308617898115226858720723080625977944189234301862944966416125370200529736540602409139938787085944723500139862710541849185810321432811927577821273450549739697979824643002666432876728717916116608287275169744991886752656626468615673411047583889353376891125435050109010644159815698442577736529915163239747300165089989014896391334457902231709352417268360626059335511534330240267762588253909522858506573785240103891385454957111980847965282726913531340009107615650315462940162850524495677894975598130666904466172715262599678385579685555938706056457259917380532694210930315921328885543243529869338159521541542157556564116210083772435705414828529888671193803979151268736424227198159865349168735688115814615974372063356767299602199385043064626065231420960219253813853154822296423624659907296747019946559659059413226730411452594064018088628527332156937965829871427627836206996112743787940312635842057010762336735110252802414418156077086861198182817064032054905761919200146435886926927033384992290862381318036199486954036568100014935064579595957951567364220159081497483007534128197972120110684922700804212529275544030774944122207904888102036767163042184183563938121278825553310474240509230553619776424185978978985189010901730216247522239036077805732347428034053130233661893365118749030488574019963225658964579809402250351596104550612264466466858023747368384729181703117486578743757843202939980028099499547996727912992357457324999041913601416489660126226206030069037599079737617202276891357832730299993829087009064698631685535981236062528730093563876021942314873431912564341317849818836506815458928583914010251747538388719601895879691758076823489285155426802861190738868024188512078682953695542446195013508632302475387465191359056781531053219885415840969080021681823399287019078474518354205556100135536956662715874388349341454410773317041875904071631110824559676828157524171108865218560568683393221162345087468248724243515061989903079092105861617664533890459634045722732127062003910499060349264734197629962912552221303456204175704133578400676575314726800943468931593808472362336286379395526797191227722032061159707364181621928644317826107361190069335056874856044675030190165369038681701716539961097508301081874100884570161113086431512486055524162349000140274435797399009400987340452881404474325676057801578298000071064230868346935624815033290145120868112278709904873253541311113171160258498938745480618246138002715715747045936124305641863403590528067581886020445055052777172106523611592902282226898623629164431642008227657802086885314823158085448600140445192567411539075297718857070133893217312628578770520401511371004191722473128454248722733860656341625391288184440851366922084835205977075109675455110260535314471991235133576611319487263395084389244136509540550020974483141382992829648958454339544933684171602541207201409577527686520026805012354806912772872194882621565088581623017854530519844095192733797837748562974628025004594787698081493875701181348065016037979554983639049872070989466632683136292323975469795101882372952000926412299396593981338938993736298421922053693301631922333891856673959226287982768157336678075520771616568514158700880011855980594092580856095658028037765097792227277025600239022510987264066455135286111106913204762869766230097694370952784217533089900915161440279306420211548554943850629069413833458157059022674697957185108944518944146180732157096699004735873998013036181243985874451170666673664981509836033385087579141870521324085244834356631857460414243401687527653026307572507523405490983761826354944338207856002984365409711911477245597373744661791880961039779069064289591698646824258697305829944124443420509146547759938074312169385972131118789038952188779374342502132574881051147167421748599148891637938569665430777009014941437846229505698397993828719691864280332932558502372110671915608983173903693778494213261340568108438163520924734408715773679793447106701449020461791626946055442470105760622517731276498091348405172074705204494566084275541284789374398602895845839611088398227311252800511664437116433592635140150970662422304126225721638722397744905522445749374051938378113406452621179463683746931340404631501978659330239444222123908371952371594395167585948207964013233447115595417114007797510593266170335775870998688988132036578001290180524478634827293129036360118587266010933129425152115916521929410894403414180186009999253551315027201970113471981785537552766097576459606346885728802660817734816449747327009520258413289806857378785873615563977731172598258200669235882600914690704057690930202847540800462960849482718300902618304884572226768741026296670365553794700133791561295026702060538322466004850029470314729495480841774593939132262145749150501566325924468329680128051520883754957478461826588366577883746006871591816596042067452924100592794885991719990427240436252302028373659394245481380394863830411297321592835790646367490176880066870307333159430673274791558641338921520026062649785412441409395679971793612436555521571372255420518121012880281594655862756955544812540383738931768835693418628205605951558716843850153886493746977729906131063609193217551265255783701644182421382487184275302562393507374927808298025221978751807257002255668301697117454790090416510126326771603052558200351351515602020944957697214776531721494720155586177948765414786057842264676034269469938896881323084298975608406517572048821597705498430005426541728266798239232234772313587191328717154150716625546378206235535789429094641040569648343507280369066608998095006471541236083428958436696583471911711256457985637557443906759712298458779037139603064690473187678629297517593755981979738999529828485653052139955176769464525720895977505841486097745631976445326316563676093588748240859256063968976486064543034310983483376692396800618270920900515539232022377917765931492875962233370159909216998427799683423220753137702168197471433924159363616998480927458023113134947379832215446494141446174893993743262619579856416162484953241904030098984804148142436333967689263450006308663998354334583180471962685182229592430404334375429576062063854606157204704438679203184157875349825568646416339183583927766763450803659643422422088900086732899578254348789475638198734722056701330867497014852836891935555017802267339362564162997226831859301480328889449566704422073293614729153009572724185801210043066831637093928845857455115502272619185620802136524175726611891418874790786762705250935578537440421586978365463776313141576085197569948445163281144379154821617394249041368174476732050068823086423426830527776298050601693780977711210219557994883806171565600435101720296370638215998308139034070264369695984822387786284847130200020595565769898815290243540884647858514068944405884727348228182227141790440645588433665485475900150137717146194092725449659338665251122808717272428342325755527585478779398378219065766601201968586069648431292318038508913603545322894760425643267672481822029214359874788995361908268432616801586475848651412174936456277790613347899161666646257144540024397460810169851344301324045073248709951975265250748303489261278300029876010683572697642681077706085689179869302215820522679141712886540963724011040176298937613943188263673257385486440016867839779600464036865447070138587847554705497267727038738393019683168455305932528488365676102946305915074798200373383338807123358458597042309657835748680508403973735644257476492704604092127178018168116451483778471594438528640145283253833395333992511385321705407974252292756753652230168757770960239711512308738199741302125742824344460199010321889299624795294663585305275177916666104450012043886234623727990629005308417223286491423629696759281676557278251244165741124717993340210615882639074097195325524248932454064123348314409753111583938466885059196712198380559920340944256072489976083295217724681101083024595448816208878418319959221619669705484875023273342000996104099404131110547455725784129755085086351370932211039205825665031901271485592394895330129522754454332048291348051131052107295582896744334612998635577054019622620031915180132957081102987044539555894641475545656221580729918361307987793383983578453231181537523855545232048816388152494035337072387384123928576189859861061945532450339418630116648457595061569043391462070981586435269706281747059699182628046324878259979834041129348990255306700209592257082330897423636737056915528500713132510836422392437620819265398159435678314169685693534956550157527487296058132850692508691616291135876985292250556958300817154881573724726318957218872567441411841344447057573733471598007487896875857860760128780412493429881667605084204628266050156155888460743490116165967346400078632734452249801603941551029752677230194854456789838308664014190769009764890474514400528114782525985892026781622850996625129977330691222418223822847593817758340357606687656390038839835901225431693994639588578324596714682552098557473257725970161671755841242942277577147491023031340028501944015896961244807460522861907292537229945211001846155592675452575239080270482036842067767411746782519785517835197533179955392542446377185948336363270630643961465345000304162095990573698002609367480367148682765415734331724941296785532637504572454772629250088783757913975566152168445381862879419554729479448847875781446405394035539219104478296426408656403950959943832615802488541892777148264187156705318388763829841374507431678535027071519547353429495213853082638038582249754289327063332508203788276426029046685172400770521105430953486482636143466871026351046078638814132367304173015320825146311982032973587131209607946840556281606969201279474054967643873497727220307678966904234438549691448775313189584712882793182175384513380147083494021690393919471791193341022452294853616227947983607273889511629026371195679481307547384035438929535033031347917999469194369260052543263476970304209812613250577189793684032827215045639811518980449308890434614544022297913508585851501761256354670127887852018023341038119775005249005533579089781568372799020896335185548154374510731793549129653349786910827575891784833167751135859861881914869196722193743866354458970054075251592492698546454582363799322549717776139460201781601730079119301974786393335828453594746975642193872103665141804047936492207380498449631169852099204720784372166623413926113159249605856481809338625545254553878803392293377568473742077841907849438089139911380400021845351458962562795674219702743507892300331577707727070357658817473665949687556859275626823780277413235535535711248390713664410977863862788418189151213534929905732427456105004377753952809607529745461053917171965837424856317141048041435940464269647186861329402909394227684501241976332890896888635969744318752849241498551952383821052108717552202108746743391828017979820432634490011058935129211312997460376662802888621108850096799207934488877605094912339300129962525766785573512426811426050252513129467665441512455353785144098437697039610797711235328050439999467068766973447192959887649212205311942597796967065000289057206752489949019210754453050617826149759936777139179319146290332997625804042573215908713289001297261398486218645216108849319614300649734485565535838219025672362883752822492712969020284374927682668133526434854874341820737093442837062338806784596986626949532292287567494071670195450358671181382771756178957662035546698780250533437665919147714907109042381538539648338536686964471265428086602728919851689875761249633046799642412054641171453445491715039169029894762962172095418565417093260659214650216572758354499977400720304369321633514360420877949429529973928294730373425632268814356939780929222628624802177394734581497975884759706192012416979805458063530665939119903824967779310283467124349828421089041082359600545696760790263503619179833782567351828857843152134386616621486910024759152699602005929113203939120957559652378221438644593585615575811831653864424459061715388045607368258619184982673009771703102323253948984196226842408024232301329201654159464595705302674438276543417627924393224797102525665596139840968081598879409343526581696891441262538251265269345985232674280293654713711839445512935984182274764050278081781666800458896642856628883505701662153474623555430585875680651912062356435439536375452151073530978147016221876034739466386971208632437506162253441035530883378618842981793926550521812095254415645560063960354775108333810118132187436364660943488508130738698670286051831998205352636234054310586823395760460125462808023597701662855887250470553889337435150448836044660830120065124630935351978541880633421018329935663396961287274795662695801020187106124770359873232571241957027235863048654060640319904840904462377009339983735063830295129702916289566727425661883800722096647668370623592737735920827130621502814073721566676105634618173338579646323994466433847682365670077540401228700122756424808092234068199503953741544392848606781899919555312497342410694076725427269206158600903493551176917628437925489658073552893049106524076465869451523601847866379079594542417911152041442558119735789170117830511032882364064987235231241296721054448899872449724187722331138446444760334330708288017698185311460299588899066192340481961182396784066517718695735856321370043795113816781298468246478503130946524950455553359038405561475412897130401210141735353198379928792223816697711462551864785147855927007214921458787788327676292118737382576051693801113136208889202527464512378729173963179299826285091248022218287345474961336171047179054698984713738385749846578579040179570343344185887144608740471469658377096922518310156008701764204119231282066582097419137074839903551908827120675035141049230906023355190463280595030506810694628351108874990997530833892496141097966378551899016847278342629712519676819477039347409901919162740164306540636723618855276614688714771640596059513956451479627820030090501302816529237884426987221017907148904867939402394023840100257089653872304244209851092483229654824506744141845989221562954768404985983641632001016706504148225020903869154943341856252301831184637253876556917422989802979226163194373137968720857101522712726685813044586733672059752212169671534858799520806611624053557251979956434283950055847573444202834845665065415030219464901815170756959543955722539853865247953497117731856942448361206871524867090966107322011499806384187310933726292407653275937688452960132492791630581863620210398552192565488677459617776765427210705626606736115127453503386610532683995555450435598552649870255303559587566767209857590878176640503610334515962281384288452650895097606911445306511648402395015957835253505171108736962856341686154597774100505342575075580008384058249311237996775892251972390737494363345549626230726489734672749685114249962326838707905227060979013618160110115599991390740676783245072956888432957225992432100822055590430494276881277093807791653099881147384665348772135539619975549729471886480926445854043731413602885969183967499653472720595391293577278606586088387942907375546992193422033177144008756809756732796448557869748697720884521301354354851045044121050624690323214383847113714006789846817040430612341753396519595507700612401263129867948199780921566671313341622483378159064092529023339053854971155253581126652900695275823168853445323576692192035364170580056854342546296396975863562983377635542078955809265081910638944352273613933324315777183183851502887282259802207566576438250354627058832179538227899951628152116771354007458102108609058443141291768721221850851198760750629978954161154161851841164621761348587174198132455997491162697273580920319396430760571144248117532672288650902356066353530497879911823423112075401170189551992763908524506823698847143029232516421587812452624299984750180839185936528252316953450588388060858069871383145181045708340793412702584584791863091724484940122985477668342427394185467467796345650242385679336064560826111242245340422312169622670815043436447213033262417751813505561726504262673141806100448584705358866241219349720149079537078134963432261369764520576457428392528097393820007496369316073199795264026314516677463379888406801991697571751419786731021541352140756311079755004264549192096051163602649221733280015803395476173411968643259128692907893412877739076746414695621874756212215003774980973780202241233954640500795848001781053061303782817370487897175115869361918004941385407110949005386250501744803780232196755117847246483800500539390273506204915833500415243937003902683533427740172341055812661807006527631642876162684141841349223685123270446720086023151752121514565913506799239243769845811329133614166128659236781569008594443183763416738142238205147477839335234768315625969626567063628981833337062721113324819403760930237783143219669788822171878418655262334963017629480012067763804137678310254701671009389737368234336454193552617269817811973075527414750110480593083140856975282047256738768249898162155496093424333306892043230890487761093914966850167761585113285990814866663547299315682566224083632996631848006253529513081544814602504489440906067677854071433787520622112239612422814921400842579133612239016125026496391790623132492129733045733562043095184254425413193239720274418059249803732564074048223177295626319026450185571875656315043816710580320594846346985861698411397156897861000783021552397883351740986745771234170322970182832084387461623020009005571820173440814298804124662085960386615345744184105927867157551457138544108562741788401655570307536884277609336709895846564087423093455792909507452898228984118441990458584173183350065710696031698666239743386753282836820069795825589386882727056182287757317283644550345192147019724559591596369869344882496887530547219508174838776525512500811027019931806966877168055862723565469292024044679823834752686982890889915115203102768218217954986421927460063179834874685043866879739305777462402781178612372585630972534999766592689017479835867109236301363592083878037467496354704441176297381922630326526115945573657650783597592612445227978621481772353446874899445496769928134999945838592502825763504074459171847980864764847200296170560655858901851490618687644067102873130715185221963617241877249855596090523537205556127365618099682006380252647298614882601659446359995871008822626951458473278675928633397226205507791512896857356538088739712730444258734869075860897378090913033706647920656268846728591215465688774056492924234615259542848660957122536922475508959035927217916290825489410892296977076233055106664861998424482582556127891477673561098244809100419497852687853430357061001145326691452942457251117347175797628848668182553357610111494701769478780931466917453974631598881485068904957768617522569290741198763368666801849617362201825974719146151165390339176129793149007166700104048005868490481821348957630708185012481281313094446817507514329091818653249105746124052156373698024140284708506457596174489923195111565155919206657096876423995244358531435908743435060178371750983684077111234422672944925163780441871410984899410695819745821140226339748757545261170047167359771807586795402884937028315612086587442103813151317093521439947391991203721635411728372329558437837003769060998553947755048004248824052971018928223075311283609367483374316843860723012760513109725823500457681886378264741846793090267806685864673990396983266067488825448813665455244209012008749614366729852261472409566986419795247401083129616111504467572221433644934855037246225814350242291061471314367931062861967214673357853201753102565545802115525265769779978718570992715027102356751344354640327501431164925156063490931066437061800489007630586009286636893602954806397424378799251447576402634329096270290594700342808846301901972416143186134755127957253592103624884211591166066644315349090255220270321218191698864163232648436993124021166678492442258321207728543566150690814624359895978830680664295962026524325889360554629753655114481459937238411719133730543174426937002942922297627235912613394145491188594341477479197834573893809950019004788666877330575042655810688481991867135288693616246596891068862210379258776455547787780732584637543299861914692928124430084795156046361835202797712812352247042786970000283047128165952937477221606995378867482730351485979093429044098353974219434542947502336083718229546915625168819417631885672672354491144125090970605118551145501225415060298969836277271317608511787692432919291263160232619339932706052513855931779431693588003965709067534492301687964627553261788404782857546663987179123849783518942262048829931188916122443854122287076505397326300801489026254681274458455813773456472312413407752272504903182955931649484227768159040288159776040328535058410614164402712298243918566873556234382641006502991195408902840640902826704596233594513352090022281947581637484489003843750280917700012499297307277972798873145721587314346463563021403899286920962817037132749019841917319954767066537947784995662052888505818643513078624134002124764515215112796333122737601444575319537728551749552990255418466775306597199973653071352567407160443763027441925073033504079363654218796634058749944908583808443188104003205883629381687041852333063069296662323011315981495426766036830685688237938708003467718485103574476520174339331853081013005587181393926675746851982911720893442939554678461956138318076355723119587846712474763013162733703865838501757987397395175120695268681828879764423525828662901832742146047745862799911081300841278451114818188886674619941592746829931650766146873979901658076249064047154478892357487581771874522146138218035909057661615904294103376265973993841748687089304146792649357674408824495710120329586834079716272769303995351568068964206762608941872064451424935984108562458893069354027869684300944981235046094247404892340336000224480552331800016730973287031352833842325755664856962301074326304231750656770045919118238892201110974755706183421845216748664918809642346691327001518697604834767100832161827830017051443317696386452517984012681548761793165959497565600105721731518889082854998049449873198206163558776558491364385842274826899241733928792817329705695920448922437693380826851528642674741677619560632883986170756024108643602492901899934576029804328513274284315590587303221813809071368629917432594633792591838898126181314408178278826243705499548611376745672580081699223268771452872292838148200399779572260098085428293878881982395461795822403491078382994934873400245836197647814798037431575695491721076411808365393010279689883507242345843002007813095549983094886941142746687858654629991231697114610889828852699814753900781176994456694640255001008967800767279534901419404680115879660478743603250762919933552489965192603829849063120896964719786030547452953373200845211100283780897294517496810666678727281645574136293333352487926432861643514350039056513880617222258186219551184908392065590740316598461158757386903596813925902020699238032113727199469091001485546172540843970696003752579672494105418085485159722615610176459695684805925365419462034389072263194320697175160659935198477078461883968664725156673795631230789896567189401169663227878565734237695358696955625923349874782164242458960307644459093714860652181452727606960715314747994243212829082381648891409406128133208155031985332375441736855833470808786691625537277615971399211344089701642741464858611917668703115564692395735665261801974586691350658112046813391391280242671079538111375961725152105403194823223051035834033632352678542304897136083670698916170115942212323972591662871821725542423172568021603908134265492668491384936229281915309557208596966613009606710749605979750929823321757365910675787114517140594356166726056504548899333963205165373867180405559177342744326045063489594629725559489662997691325468111233308064803043461209394161626616785642109847518167078385002206717882275563073084658939920320218770840889385683751308697773645815276766674468188071589393304938820727766577969796375064892408426100525425531281922884541688457181042762756124770008849942477089350168505486798157228436695254139484262256172950691416608740411186248785405028196649199902863024755997239774702608895725662811195378172486359224167708368075259926400374572416433177453699654616035252825442090536046404890869087378059154461375258403856208532969169818314716043440757949990161289892311399333184789081885491453707168926218120954624353090726476733623405990450040735546772820402504594713966638276294896422990906084200672634039661260230148948039841784491049594802072114270732569452836825660040587012196335401307732601543672156543359104659943470177607903379811118571502490700812755570884433700109622587103312165265754227126278126351653233767544115919691689050104776708334453515669887995649691572763002976343937106765130709765650718203446874931711252754929345845985215263277558196334124628025901792318508824513149085505086798964088955695765083448122593897430992262514358476312261348499003753466555265105833625251550293403912508374538910962275313902007145757900321585599913939816729567488262406214294084211946718062983212312178874744427671606185955970545131457298495321221244393950460177508890996971494136218686320458119618502851103009790363299000480507239386684998825091752299612684578506409826129625484744206787960950106391905875035857600275567010992264596132719401626320871188410921346243207298452219316353111897021528309761273268377167116492976859566100971061046715076445086496386495377767797192295509425546037196417072389661499056655144499920381680426262584229693965113174944853362705884109306329187164614466059697919819205267391012300584662580913756059956944783639203083428739950889763317320446311406139442469897625240055398078451014401667298749687990775096757002391198964526188830227796212411409756959864273573705464843723665255907643841775712130676542395913816639821720595837465811340599567952058641411779119887706730039540612605227804465994800048402620420737103348665738571738056779112657554475138366208369103330733836333276619297929394436609401896956139299977665588506360235185440399427410219670358747196904949296357050207476705088749438538688180213911104210918344135121486764090447840443342024602037597878881755795200185269439434220030636019109153759263667715775497418458276704842982234342530062490081342772005398541154979456665161066169185697883602521620348505225981566787719215335085531597810207107990472978835887960895893963343828927462845905513048068101803005563147690572061882833955379461695290859199687641286261577068464250695256521221154290077575242415976015062805368108692122432136840561248607604341686258379182832484713248480746461226494620761714332409144632400200371452738384927715238100510142874797760522956726019038425004890523800439049259304816717295764813916095659771596272516295380883054390456759871835773418533354285986305218422081077895718387747653466660141761198231804844683350564531198273656770570677922372406564218737079621585471928895225535632111961902837753845247631056350323501612517993580540939105190210525067720730043608281648353346073716230874673229288317272956383015705650128058471718850368772624491856760915268807778570404279892922649290449758545771858422546918297605599486754854212005916126141686832523315395164518014733837792413870515005414210911689141709193250289746042334364711609441710123787562816798736693359796248312616111269886578174457320047838222621673230872603411661769794610725679829896797387916408867713833200637136901929040609807433275224522739821912533886778153175959670872301220754021335520143409583329309685371946172709018044488915618649636057971783897536093979632598357952982113724785738666429468390944451979396679588368428046666166095213550185808620639115235170852484085265000782430937246077489727452170623223205305701603084264473555425326641428132849253827664588601296075485569009648294174971341819638490923900003117645140389827450766519307012896610983921473275945808893207797529847522642427939840754940614271774042488350874109568145809315643870113808745054745457045758119595984749396251978395780201907082817328958350894577321729714861171254232887043203846760827767659874770873939453888023581694479222686568853820161816157025147088470139862220856176758722060174719931787575185066575054614285343866369922597479649713822273645576516707841694039483461455993378859091090459313499622103047161563301732049314887176872872922491983040570780422257751934989126488993652535338364406450570746696152196569702066168844005616556630911385448951563884770528882607956351494565030454844884693793093412136267277791333759001414856890941835842230863090305900135226027651340447312499205803940145876693310226268478507236438022724583486694582707228399508855272345542708731790647393273573450884366521049464266717190318416747638730070259605629801635749352058637188865665968682838208982910190109978809965518357931791422016509457261920297523187488578150354466042485656939060289265191170425569383677944233513914092348902180255644671172509020849605121006935832257805168554588298492647266832079048382187234590090336004335326328342117833383659458985406876092267419799887590093792269927717201491525365015929630808340568346110494959259642677994272959323767963292457997768090649775683792513210664562436295621638023637103326751169825223452238828302586313191039645300387771606052276391436897871140029296714758015605835927417552065850333131890424192174788007705743158075059200636957455900444794745062589388513666888736722900957084904364970137342108749157164669697188767973289296571327801205193416242453736659866320397151850305060462976076930425492611913322327461187367430647155865702404466081307064035377934499874281914260596130448218700293194401682803916105392025563604100078804676235674273325650545624740587992429270828440167477139823925307099766356120233717927616114788381202772606879862589881401188039587249110110295614980919080179538526444502528223760395845994336800390214719917093912047693842987386997417081961054892503462327688767803972705713630966047203924995531850947951345336360782660014775191904979683781583771420631387542811322548150508007719997942053114856938035485344602340371856231177736848112743998588970725622593080795292733383301830096403667972047325870688850122288413585338009198477502096700863267076706934706893254631065956469629380600848685361109507552777918138771989361670764828330020783065433331503097378163275074792325174957377022054478011094207677308153141129262458035030817073526983113455261316848481940320984961870446208158101443507180613968175800906325771357904032973605413046743788715360070923818717591803738613818731689939827836071203578926704303922422080601917540028892686502776923179047900103624374468794550871155734608716164811635046935309009745462902484826946272361433303666401978431695091822643949004959693598540101582098465851128279974497333344499240746068001331361772745405334345780906550557840149311186783213476556344139790381551342449331343805269881151418175041544275131733753132311485287596812221169422048655085460015268492641588271748116606327723976422204142003050801761317774978829838407375342828183725360928653317472362868770317698225582887884961358848630292186894154705847931497673657119797942072365525027956446210513963632130826681534007160522963135499109597326648032213913896205696985549544377630842241879378618194774855395637056426001725534192543242034673964358599131493606499558704717386179246151983174617814402151236309132951853205869940166288175434545403012762300803253919333503185738644720369912868522621872657475589435573746653955295702086676797882185710485252679519073802640444165459073447505897525545920371841934987700702601960401598924055337264014047029109985024073230234440386262596095275694571977662642106253671105336832840528292795962599557096342316602434194522919343937328224867753239761868234293652072404950061568311262557121115813538647940109202351881708192184821261182937491039099656071907805250084083463218007577555906635517694698426940624624451859954889811434809338900808357597709378321914311700197277141005984145162635527772704501979990783402458434177045133014627604484959907761681695762848247183802110304154520859664493799151398146029634218612581173638057145937439377933956684748090841530282761194447407343589343407839137753184262570143300921391463060936064987316868850284126735459524472267621158195455224294048415969864719116997957517250271782553253915260711537928492995310739524696779948504917266101053012067560871762372134947119583044673272721350141251371738953528986157930281771544043090029471191641758415915291512385606155754204385391738481285132312907749468828715670043630117539810832463654634600499507777685307356880370519705666790391348225794084468404265008284887036553125416068792485043508116155860552037572024707628897148025504148164015321014839327698231181745017752970732184197002363202543365192368031637125551191850316719850258439425291198667833506861214988536797468095343455526286439705065428355205372164876093267915574954225375082039033423666291665920329128086064839588426565236511248868571099658752749831853187011333814544882826185015964660838773415415966708696902416162960516059079693024577526060704980181885544646000139824679658838968498962251175913336180446545984495135262474432646217374693901422920903392530623193727247966565102397134086976405676248130043941482106461378144607215018164181950629643933497521517921813948182876587458234266021968767599628102854121441530142653380551777536692579668233468673472435447423192570169743272738691621489929233322028414759389468459150887349650304762379355652743748282961115743933014489657841271181383945610964039385748450255756250458465558025963959758270938826514453661453071297992082450998778570762197877410362775190600563271198940562486372281056613412700918548048352500151212611990957996619345129684352372386074346669876765553689927113603906633737114293841928111543291569737526421652686888391025568781729111685714438515264745289073476379170273868797359220109397980240073556118691169605078016590757889649576790839006396623709120735947114355254318620053831694826613706051447498042148589235979660159009559380948629080992102114632110892573569078211193821244781660683688987569832184593564210233131963486676019874549233323659713117312390686569474438554237800445638046135854770936008965300461852405993308173013418141585190065198879874084501891717691645808949773840062665748404922935967966556125407222305485501722064912834652375994307778402320335848208805456274813783982206297560163064903533850402668209961886794955188959235632156157216732808446372617063047476716488475542257321050322479224827863826166779959710305224625222713847193576963126113352997450536386920646516322536821802093501482429697194981581439964357529849548591036517111108027365664362377943661670670858340752049047989435232354720000725510245457609874907503395073952472128993991316075832448141868394732611397318393628893663672118876560172321975498688468826823886343320165033486600367611581967897003054770390466537241763548192514335997714531554683278039902609613267041938544410875785768474593767623482538595789794772950389419240368273132799407368905179947781923796674708170276207628444727795913786724676100229497617756834605218980807239682131250576464748413349292652012633488463010705924205622757836515333371622867518919702580727360324003193093110538169128675341777148807456705673469815063416675852291272378742347420568695323113812321654615386984803240970339194333846025121574341658099246759206489010270592148089989724822001793163558831150180636715091840154891117921286274673666306840227458059930273004200022291124194818072335553965619682402857265598252438830435088161710193669346096176828992077031738781793924373491135232042493339438467087121313428940302405078522858763189928349977453902034003777035716846786405688000497712834472989776992351354218796200505788567695072794518774694884925693017057687052806006679428992100059716816227816392953046502119691568513111325867547614476958437392160083371486142072821669509309124077893462657006085735220645151136147739062493601309943692884795607175774504706061452121708128199357784862927173503619496215933031228464735970870626980911251046213102314315825065091709480908216496748952819474829828606397033777077251143844917148384011431954475851558995253840063191194351618232276807710760512707542909852013838058631521442860030298593005441251786772274326683223694839374634428586071181554035858296254684170767801240796293765691009478947720493133078450057774161520217797489257435822220938475869063398881923662590981015467312266209701825663868490164268156251782082674949181056076038409127075986307040435633914506542399756646212350733344227360111025890184127218806851629981469305442635386170209408750766660208488458789299949555771269553080077703586058769085693027620520950891539772987161457148504112080326085720193190457731312740045394124391408771672587014516522146518115854831652003332695227319511623414463426757954813515937243988624628072494093278551968390906019780623321692160858782299688961013950645865602985677488417906753816973683460526133898747208503413628331142137028744176257755488273795262230681673968574493364513108127882260299625094248911370215887277687906269095325136704358290466109948206661647444583647959618011563636439327356872572693816061377973134467533906973481303716800614742876557162692189038112382349805264514390861291489444479653987478283093317725790861603553965025206556354443884917207701475302912683873383671158132068541269421436310349965646834241476281594797577512841450242629313143219368018943080103063489690518949317806637152238611925864427414092742796324284115047419519648661128837942744896997731284765696475681420350933623975311873664389846737602965214160630286865002164277585232122102624473231579182376406184281539616687215425675946207200806907448230824499272292007640957012672794616322893150852774244517499810324938681995445671471342840991319916919556812274528240488655463494862806728477495718372920837234173450339907350318450081607142428310301111587926847097312600298527873388765736086059717930242845474350603852120840180818006836534558831252819026290074484926313726031895366454418255535248634146105813999321643497551190227343928442303059787052196493922256665697721813842529028037779296635547205610715853913998416754390685459549234750179728701186279427926865388377249204695371855106106752752928821034684901753787061353071199701571561396402524483184207236007886781196745940971294206485403699121341557593541288628443058881840029826307226978991170316122916117737392919223608382083493064838880379217333064367056840143283879542116524825840470272855957232034015605163595480331972453210392553747633003918978377884328880094445999032255130812208352883827929755900213971216177276067100618473784223327896215475506010797163075519654103060770586897444308238684286734712685860468067520665288524164486458637559686130718509602817735765199826371039620129519806996865938348660918173404557650956766532958406583734522665536612572654913635594421398446290073540761345475055410685124314031742727633626677148281518198466385846545452672424709206180741153488931069881522018299389572064735141523896126145408708257125723161562636118771054696335621051371996568558230382412664880930491838011601083295408450518535502146786246021784335685472091417151475440716365017703176847592913990290174041217136457113168793617544892341810846244009111110558030386005355733872912528568046870474415442942905091905655061887310140147251478855319566998717912617873560433984106516528797052105272633309698145519663676421377202482418331703362006176897800817301256320893670882288473637135144098561995685394881649123959194568267626477330396691567066749985340271122233532515045179991473727901359549383929358551975843754659132424118840915123303363970041704340445860173371465081130206555260982672044136052772451073962879673961077423341798149966814500163384671004695964948758071963179315379187499132087285209749047929379523199266362467700872682282180103876325206536349191226477186386692318643710986065918590181120409835691234935454219658429453731979971264546132106567842521943225060851694112063444508038745537996196398268234295177132705572772647479568129587243048220117718862044566122973765569983689394536141062340015991478601361886106832596662078012217741681752976629070790334626720376827662746337939459911100007819451600052877438817701664595790463522966828707475371718787566970879338340098881630990055088196716476304835068331447029632387836563204236929945674179037758152301606617507430787074124837114363164605886963271590211016110540081660851515043909715148589036814983817894187641833947699683038615550261843509087535337079847890869199689878778424210235560593911281209038977499391424873846231643182198011301018068214524524991399885505106895007370053206302005037179727903668400315389038465828636305600821306151999813786673142577127517311934625831939397114206195865981160686326950299015384565218254538725410464323635952654188391573311044579679503518832080514592843153011432537967258061650420574519233284250588871491843538211248487734938800632987800250776709824304685213993834451492323416283105657910160047926422256239215576628387487400784773606016533902368488426781712015826644112035882874000222883121631241037026822361305950541310221264020469967685001677932680156094186540635724069071799249144699742406272644345534144750011851465223995763764071059026139032993354955164365162303028520073465869697837155912737252936918535576674443048827087476564254496559060238442196115261723638051003714691961111296233062599400380761261175629731665678345297474554718976452299656974903356025669775594077155313304774200114465356212271992516421011486776053189981498877095971401978512184900852561572986125649379444625470966833120498691558733048140905484654078841001075764486208935784412279149930951475063442925687796962413499160639298751363059978704120755529742116946884759521960649472932398438945525324173216751993560755071937877104817092181187162993537152237789270783763651694379875663549850043015552374270440501160236476768003389324220298963192296381392253088183545332628564696526089129647664448810760727078749306363935693384169103364864960614418867692692739062013151324560284576048621930081017940026407292238651327314905386048712818535425488802482183508071914406430567361761391297675908472744967672594807018176513856890778325174346035106617818541686968753670522548627919239986074713976547210813655786560223595850506937218214072904669900189743880920963897703567686449236243336127248991166279194740506902333056335858439056738557725282062568225363644155356482437049005126872790377398854161223746467826696288522393798829511970006720288379314360719741869335080174192207854262347553817948982741259547939999301457906527215806698213622173314110992833844903181073906057780840131213322920640240330836354472198715362768072334145628941131605099357683904038543802961805135507364493321290557925300002839953846992434134055223596065153852550414942358844337250210921475709979724952485380162171724098266760026691575341050572389653864045898620216723882655799253011491946993895985446279092946045929519038531603383502669767902696954652233191641669749364815061178352089530531301510007304041774957785536074902473295774754209869884608800935840780604376689585751543694988213376721366246456768827904078881181356633600923358919631265606947938290064361625194659607616912379114545716091539755756806158381262372016351410327431665889661832608810981478618645380628580340980856802297001826336262170027987729619915993213875902181491573758830539529925236644585950152522343972306277495408110087813921231424518210697038749286232579524581092899984103857618492830427665563897824821135592785198469332524883782002181243761791890047382191641663893319206312397195370195229957977660543395820488928662777284904185395171036696991600526336645778565381487822884956948424921743682535414131791469339259282881646488790625281683725148048373238269555695199620497338327527233481432202027275231832845007682256502016966721750687699648455130007549312334950919055796663457903151825307086746684883654583588244621275069192552499616402206853184104605181306064469423410420943566588812339713269364608210486379589326582320777498315341882744340577264912120503318784570047704345766859579805074666881985157892544471140399583423011438440864965102496193968374691065939501629636236908155367173700876114547431280160064302056346914254125790809990245048474124291406181340106628359266555181406168599210637603033183150445697181230647785522205063354917552425642193222292158745093453388827961173756875099170703210463024295224795538804601700497477694179028284147412811435338245475059639222984152956381110647790833417967970167892317334835610269739804705067581818135314470731099797617574398476390574304779635285023522277655733633711553332224533027170479550329226533491490458823560782107893848843007166272857998282241141579773847787132097431622206777637832521845897883065405780373521598171712818627754952208759628820308782951773154385185917671120269334411279305746756201204686528073372947190888894717765420405818355238579427845360746261366180809340698574315454862043342375872027308488125873227333140118272709376692862860454615853252993353691337278288481776132256059556463150404452152533135794020749786215987713794634381513387244764364400261048725706004725791072979760379399184890678504050796281533109486127400642354893382023013391877111732218334117943456294040883833336430607783085538435272552670305893342178848206745022813111174018833936438597506284078535013775516892728290295846777981683797444255737855947538991781492219353742647498990734969724267139241478906454972192976481775956960589393578080027372213281548282393485280289032313010011472115081380095302928408233530665414949904534910789329276145969001455136335380771870978488573246914799420549191936366715786708750002486306520836650436321703133258350741376609211195895485049129137013397215339812824493021757334765611434016184510263669360118531248684172045453385386096203958827910440634475246483545965619566150306875108109080917835254235119895118792522678645375646869662740461898411532022244248990980201737988898277277196572676550753545547309806319931485481393643391468315016544418536346254886287544722579600359748926317938738900448393925769324672588381183039359128372181994914774995904514781900567954088809270411289749211751138903800214181915819389651854282953656902015359730949801834168821718650178797702166038387942880746190286806391620418187880833656097637116546593547958326306643912581471272388592989680070327187107138774745595691266341553772517767943000661067146003913175631748884515202073472092989511159168760897144489743910116587912062970777346865984693282965418230014712815034075218863238564515512450703349491073305599343351074009727247435688641454585738822685182861559174790444465686338776405380874562779207283556253688358161150018866117289514600687297764049637301787254367893604710909825484256104424600215477421527835632897283825310325769930524227005103858489911625583869977904856570901923084091380011922526411815062553396516077676012510877591605712589526862107422952072829868300004081160583644782256395542280962085640962908122618414695852383775502077105258270557710410675083726929538651753067402190173504527565528650398781393608329365306037318694987495639598542967505013506074341116896696803164190822339362805846890741509324187083582754616572597085390311553672279214647685144320566884403118612682118222542934675004361616427088780428130401073500796028534067619289485167379687712875165512372245258509931109345988978273803855012055437781246035782627630725519236606761408150106334310410237241068262112306551541951643935435252398788575810854318634329609579401947229854883799114527244841203539685763743210620233261100934010850331191236192941643747341394751086526889669243044361659732384541731174712069797551958607731252113427137152068817962056696310280847283842924453085761776141089878238478527653186385663485188284988488290229277824468939049763552982445498488124758120088638054769512753302937300286908163606692901541985124863382630932569215759731149836119209933325947964249175340107140511039598888587672254505071476570891208053344982702707290785191072535364429834874928930400838148374860710727051067339223339834573071632541827348602686769597597531414575788316535448615275392442433439606506005294418136117710435323495766097270767980841574021055947693914374916079398503213747604370036281276179301135175283565323769817236936531823226480641479743668442898494293441564152448965911925639792051705512110422892843262656529360390128287953467618461180748005136516002261633799240531381609936286895739269600896865660872089011618361349314434257824189548154389147991754355936346400388882602006171496785006944788688066506409413066963378539420206028959335081899144753280684081113995070176548904639671109495278975029498392532188311797311006838391612616200303673875606866741547214264317176080978343347109679600247520104476600607032174353929338457931089805539481450159583459073386976282253402303799610787695695172855762586154967436047644457716344511941146577713417430693322779524705730073236393322615335356751994489591765379741810956371628751790093340149582690029855340509870425712570167338387108675942468566961774582494524573421659647952406883476270271499402028083430092677444940686643108654865570572400444364421891202715740816718924489380337604230195992435687955495706407775503262142005470066087690408455224495509443578172630312750976629232451119871224104426525639570722982744992680342515227879013089244912995193886605554011768537266708772910262076564639373608236622014549305651881218499124227719822878556542218934188728852859092982454346750034816147096322125669658392227399337055403244030675914585588911505474233134548244239180184801183479368797191320419110197420083527446003460458572986814608957890738705194970635334708272578569769520074731596142605156157282296808219347231887542655019523323565610377036615236035733888776190866413045456783566462779582118400461281870584791670528760180879629343421234763078512126830846405045983672712474182172526158594623615531704658058183575851787491729031434959078370538672641349035396650515847239622530468058387020357595279453423972174641183312838995806584126049952022970327817344145470929122539839764962758680778668567836094605701516565832103373901310559335226236891408455547261481393060934640496530440278204518223886869407166347303957096090754052322424176848165773858874424916422708312801567849741935468016404466194886648053678575748285862747380997815465788688274349902313826332287341065196490350459969362720513987636511753504214983481158098081997428439099168243413925311923310872108208745562777013268809989933263244105070790895287571399548565658558260132030330219614070268192978614967622303334479751832246005173390126962828682852808062117706707239042491588617600784152526788056954019362591251264314802400013762983515950201929226978415875442120433782099979919450862136832198177926493424989753300627717395238689172020934019672500073079024791749423496625194034913259847430772520720072385093250217512494652798614804641090917519920102685795414345395322683458682513691501296767099195153204791044864503146019826487194693929862038089740570640916247871019191015609579773710244902457877604123663749579991519430921528331014521913443417532277872893661788161470721769286043820357490348857160193520533465501795643283019121504220950393175473906199729646760613510953837525580093377507396321967811873220501702586077400074272373045028294522349928317996291587505880266922586865456390460071849532443447030652245084596576615383386171095383837342361641966390461394627224234407891242062317354971329443645311888495012838262369212520492542612005574500746990272265534771700253633854828608375912011729414342119849616608456980373626210238837929047685743823301727232155701679879757029019713154820018157180300925133666069350348140566120503154410439031997229943133285828349342865903630169020178359786119145334382423618703412759215584307529393813598266935850561257098817314163623433025349925176625066955673455575838676454568274092776278515264869701185312411238040871992341841692179815635971224074233634634575624991256027363491113493459777633905834295547628736099050195925534813128687097988599648685067533614358156970953812367698685178841054985502411755510195821045325171143450395887158286140250064445913205595663899612147044826694790643410612782774638821310168250821254680759594295811081243511222668875603724937970456566950062388102140803662055019485346649752115563406808015731444548106014120713664691455971542533898906301184788156055436535797891561497643396677815237409738529524716296328420857092512179898162642891129990679736475870033885472943177394899292207950655285702715961993200861558451287030758764548459441936085247307578992870121685430837113811625850262852290601963894704052090538997914958178552893880933417769113078203972635524441833968196682970034819168161295849234781007386825576587602821717324231416600675877450373361148556473630611789114799104041485663063825037556367422421361462340927878089445141474125851667632927417448921999006340299030365613738697528168656884870933023494002490985483900059373324414960410567231086331920184820833894362376876606741340861587188656222525758043788045446096992606364192529308703546612111974735142024886704567566052052719154612878777130592193859023005322610644357420120604886005688718612845361579635687978532532820299842641480782018051091110497974619355482264280057307155810967248347845729159425349867874296057747094671173159597792109812650205141323458973018210175621033099513267254671025413874674873374413455889069091324232977873592875536844392755690487367724772432333614404313264134810913007575598115614141624529224769433733777925880366765698812198569402588558530787877101466257051549173580925299223982457226775739547738190863882507561266737110924314932745638574922248525676968390004962344887432051306134776129451586469718119637796531060798069504738294114986872036833148406652155899021678076775147217451046699921668662972540934940314322198214834921999256923608502043372734049058461899745752257995545204488169968585069118580486926779224207869503524703320643964311891842288773326074342501317997170367971232758224007790449847477244196036413891919633784315965945146051061054148297434199228421851161878542077641263881012060890231977513742553396094812363160057774291613639586894092576437011358097852668206580976832114910518438160501993869649576716735909749651941730361453873541901384188763282066478878719908087464730918737038651766363905904741348945508717077397012250246327968356141546741419711456043093575350254553190657470586364469162581311410009695740963667989768307896471012280151273486870921769727459158978263876792369967134680725681861880854151310470412911200608621501168363403706791643216112668824670323944611983256961207352936087559896845241512569900078184835194415842239702000050929935123807700969482491220020925319865431352764562752312418947146598243707062584187681945636091218135179988716601120749563181992763399043853373686434274986403781578905728339756047160226417878732627041272110587050269471463930075580398949343548969162282347990043402125562860020630386909589742941701670501345164384734078199108507838614059405966589261664466659031440100011150747412827997410249183190265532133851057577707173850749529992843478549303579534915917596662390479743152138155238955845259874601127063336930921604937401656917891755216923596008496104759575283469659996421317404071598245176478100129768210326368979182097577684745029057427713757040932924531722156988311537119876130944427274600157789465554848160750626210361020966115829541616649358903801755425603134934715414828364419303877074418366105648193964791144044200290019478337897992258512332631894088515965023240291542598377536891010969800812909778929187737563196897359440251282864330626630538202860056307795182401624401565549456344847319532849997464721305444358208880431293473498271261495987049216345141476683151025571556469307020189270557452718370516698253622033735970712299597553018727181689488619722077157932568929891033358822180601814587333346365309731575899797795770631816359058588877195941525619740029115647110060768780530531615622672043135426028584701302242557007128778400286021635072922720109445753333876429039454811084509880890989368149722599552394175399658850327486898264406070253614718014141829607355150425162188341852265646466349937953328636098874042243310409403040103642218267127086599991284373806268098231711123890455327718136837811528000110087744126393774908155318474010389946677324580698454132865915872071328697688950961987474969681901260789543159058941711575143344592693107316002751745560054311130438632187839805507858430291783809091094848596647062703387810293446082867217248229830430023157876470596900947411945155819086434734746450277120616785222842610128679394971169597657675996820382367749843913911632045698456791782497699718865913859776341877927410493861918001919511440986179358811382249141590970361432659447107418181833798980469887460713294425532937971351546262227019207701379808704849826244359022773906723022725395905699596380414752086150010860714957650919273858252901724526065463117127764238787853561915782257038004794582368189762739294473418357216006468515523582261079336267676544028304200330837441238548268679365958967580379533740506103389610869419566722856259688706237169749395378130643120537701812895831681156095793728517563087579987523506095087728559202409257416467033963984797587584230232805656702026790631596694136636281072071263880102650450154159916780051462620549524189872585515163269240651908601879728868096868300893429220176061784564562298160389320619848955446861035735353094586954668146870000888560854827800935262583071852767810785741241589876995465395662380053641323801682417225223712316291687061608506664849616271788227625824054786785324040330030144207556914982036585522504282367912607927494917299838611428619352703513669103317395591920807876679595225770051675483749659855357361960473442926523736743836983794060298172611349817511542194760629076649390425957417978420718854510436824588407130435585083981741886947974136981984583428745506214626987180460493454986818924779829596592631448075059850316873010123994395562627608960307342195817268059227372366125289539930494197377681331801505298113326784677890318728989173864395519162981420738562620470097123326507308064467646626005442069370472489340513589424330420567418769655706722552530216843236163201738617689390907187894949180756002612617875913452272099812606392771488986187066970147599895236254820861036280708671748533195405194699626979419696246213590104952977145940737895793046499110385299088845586298364564826078900677737758056959984225781732759722179056159922066261002123915153741085529614367759581571328436345788403089585116784646846229437068571823691602126402437940695756756168980414560915451812965972046155655663159357109728891105087158395975169464172662161484925890311386834707806254349957337664872093485533892480432973274540427550429117271826578108397899224398278645525593547148949164973183299283971262857734996988150857811438126867405214848086051808811982498070110275666267815751337606748846773682701229062718069907088109670833852728550553950995161900649057915450926356685152687339310143254174956965668615048636242966584106100898445992738396456342830760073239137251301894478496520578882672668578267405061724258745825709162058073122738200683308301950814276241142229594807077472064258019323063605277627767489057458359014950068126928677454988651027068294062066164970866092567011693628008363562147903943279302600483015073828123367595356590766848851123155915502990211392772365912257695940020629380281882843167903608984449202644832239538924036139643105762053895181940306988139943065722153150961494480019303429456584814436714094339229797330328258309407091668257982853450914651752931310645110044774722585356235386731246588794904339304839634067712276458917045967349825838015858716944212824474353072223628976391263135134108927475216815864996338773679966958280361237314867227781297807552678351010183174104925481643553557900837281679952110415616268912840151843687815232242509274219769607891493526211184065520809143272739140658317066070743533029709859962162289483705367520503370818939276074251252662112991481941188127779113833794582138510283998968921979355896090573256113285309765852133564991293120670181420145540783179652639446356722765088319037304011689474940262341393984041509169031344821075284065553763162787117696723687763163026205796101470701065956792511250132859304068262619146273900912026067998569293582007906647018224138996862929629159036679761429337920274521705511042574102869416942892815907305460027432297800621218033857607390248181480619867239390518158608879528017993437959654385603996390947980198673096659795920205690732013611827358180052495941519734612440637399466727373744973305770197812667113681663985234511970413994644183553559098792712893687262891607419631881617469865736792111903069339646885352111584651267586993699482935471198911142993935341472213734922584907278836841871141360371914403852330825505018142821533721846975102158196718142919488914969990547685450771171582441913805416045508770863046799184552529043815495896969330343900587511441906250099118838938000717396036194896420322697625234678527831165502373211539306162650906619062499575561712377955091310610832557001168432269717572383786099667474168849286226953448378722205426941324422315065439915597671269134813275118080933910931805389514336753996317313777420022225239298373719709616523749123443383677966172035068800597593302353116230857063237345153618558956868520007839878018199065171036107305191122830295634821867663614358800532068500702078717431150362708853095831517098010690935700565848484494525592246542545067430662326154536119644283910542274441365563712367778869112512529981303043848208683783586186010620423299650746103652087580615820854201761024469580960550861562715536111095514166227617605013070312616078359802286150885509001275584862210790283780438809301197269750452351228786611465302015418718033209864010343406233860429079499727882725652129830474842645523309695990994513253400700095718783543838278407325627450144075040794069304782429106605259057097826275429262450981132768712740287841006908801079604799273845270218617062796249183245100837924370139083149203168308864772017529737171827567692968842634994295673212331760724059471122342981061500330187083801602829269680772686588047324312995639144805806845553432301582803500601143494711692535936556139868130797801494218421265381268348608016679448907544128423161363571422003517635181007134840541003679167048646590260264802663631414022572027067049186228449200729940515630132443998690525185621566811857617690002757574424237547183792613535480217094798644893662024859052494017014857807380848015455939007711347970874887461627720349766254744068271975379755750340417356625650105300645876148840374270115719554657985651209625550551604337217061367131064695761153546867333679566951196903915019716679457137201545650876787142988852920173670395279101997852023852898197528590551352361356481974291442745933572752286903614015298909833132676178615847406257560039269830301345629413649005724248158400114614499680753379922119159732047582089372273502989215839194010754521164425872418544906637763107893289472372978955142025017795543649874002527547275348790064740493277828676683588824851478066966021005542834132972614041599210908811191772350805709205870734658067823966879362402136837922062113622499310118543759390140443266242384338291996931374059367876854931098058923105539768503944463989572137173865041183483924387276850768040360118337390537923760095517877069263409458131558983870674030412149997423709111679329982522571492431304715356409579635479844280094986820877327466510920770652115366329754927090420229529107763150102508072586185214793028383292901895753995973628745559635058575997116465963292398965517569194096920891312736701048432319333607124257600578039527450555454483629986689239510397732478914579341061118544109980792438100305112267508633224942450799639254442514216147197578298421746854432189550346577710232755785576664529052099380064794742187433290981302216118003160021732378925531742379492082145503806688866146582125853005736353035791479070771437737209177471024873141450957280306841428012670916822201595146625885425234314767288556980688308466625053624732183649237520559597736778460452872900868244600256576640372754659908526157189597417952435439820500825322285574484040298805682598740433999363573724944647512007907393581604618805023925447757130304855281285020162303416713102290328650163668611811520099670260675890128012776697704212947705690972016098816785782934493100506417396415523228657699996736471731843752978654164329975837671222729647161037485583218987785402952958533052654353018347049102327050819283653338668771396006870328348034855319148072682650078271923393566988959464178715192471754279749432560705732948427938088372867347227215411755007721435776388334573532015366835798330732996479280282110723379650186540730102283881479371371747398642834610567241276232183823702091849553495092613102086489171476524066194290878990827355633332789577770211232100712173390575321903668735591911589692007634748742050472641116638137847312850689879836686196489166175680206299601793700779210814934316955923294781712786705696295014835157885608817412797654005828075880004691765004971596949307028133476017650465922178337047842856342714906791471661015132066904645713808910699444849958980915714321702092756777245594419614986900860291122545729318455053917844259318830938288312699570015419492438590020267059346534612502937735681759578570363598520210292815515372393925644465958345212502472561696048870340508253295099650178809641078064472823811055462679328922984978233920095435526614358045776434736347117307369984837555392873980700790768796858894069416816737481320066793476488003067126945343010370949523223096070195693436332151155285026261171997000061996974589794835146351864718061837571010029625821403922014842126906491334001832406585185747589102539684408405781394371012194700286999027432313031078700171955552047572579141173837386523968896096796251926628478942213720735003141679025076483017545479609599211837287999987314744246511685968193605563221636398706849657248716376842477053524380087078052445822330582086422116616110371937278592151793506331674067538455978963906414278402961946753702626608527679862288909171721082571687264026190316513549785695132138779253049634542042383462387374659910976773864928696595513518438584307840335737849611481849769750986223991877631873878424922358118155494717277329038121038978299804068931746328267268868863493842544859595994391726705580365432844301131344137682503811285281453015890840614369021315336889504962255165825902646992851563291211719615096153757866921000292227883438850223945905634328214279776166443276961355894917860901555120834222871898496290516583536871536760833558723889400382983952679529769419728239922865760439390095432230487899786818163543199869973644210947995524647756913745206806734569879532005315877464661124778478582522866549760539531039097090331970566263376723176091522564336066156621462685286534815728025615399820638053788180405258219920297330245177611437453766416146221135920770660034697640179317560615828418378236039414725779823535841377547725233405940145852833078498964167210185634643111887469913832567250462836376973737401242661838634267525084030977336440933193246564207914358821924120254686213156252908376152084011256502793137872919787408852384851683605097537132289330029308403606421299560283064738193672996686961419634229015924993921445542155234612268811485511398384644778283842780135000643603954940337918973883074441957038680730954697574745791922902025931783757777837951831757862181481665327988906012247972837189003929234974464452097657627472954366349513995534493529814834071427062315364490797834349377714313430368813299682059305377865845645574027757852046829904611735333654355509202047800230830466210625832633512402666409606367697256048568364674211120249010764581494483072756770829281415207084863702976355212256770947251445706266048709695245405760571379357027589342560715677738446540839106511128509138109894432065048310291244229863209884434523546436561155761466621218637234189717281639596477304627408860849756225476650708233432305731499272801495944869355294190108257338257906258083346860169616763910526568381667634178272859605028817299937089027298452228437215310862903339516481457458116097072166572817090712755574092732475492969113311705498488919819159290721745220685653405257907359114301017509220042443119702652386420028034943070238865693652254236790923322515416054996297393941086088284341060819943117746602112896313210057169269910603857956988351037232392651665291405034719511455725084180380596049330787558724206912502990920431123401150137994942344303995504695615622916910073363712627663585184328205462712039990082026570365973134282938876756595679474404871150436942061643484024578510382299433184650035359064549255603928908412330309841911379609854993595580090224666986946476973836863287267964662592106443407278680837169284670087046190578085444614124850118767400298476252767663190835827117789921145344627095027259421108662573123678703481743675857704552679587671984926370199171314560908051134246685479828246009320437250688053252936330333650329487997395482846805644161956021009329345474484892628321893633608293456623607337525524379669000192783122533049993523331983341634894265496395294961904305037563489355668363474750833973700243061000204143219142431930756277771805942499826389665052888005734243605568354399873216563449170849050040019643751557877114304322537715211652470661380081501610891893422547483438922036434671976806695759813006003004243685860318037869891149901132455087457767585576269888463048021889564497337712007385797217634732664291958293290719962011316850753723596200802268484447711060981925142148729517159389958775937574899191615580483755435698186735319039473974858295823898104332663149341043144907617483697692142290346218173064154213409128706925496683722724202832907420475223576333476881539255550318017458039457679645892950441170730952938201851475206210054343570451494763341273252078825922790045123014331461618480535551947021534709096376270612975760589486761021371541717961491021817495890231485779701422275098906376116664137940019277760386550778481654798430906941572719556209456635181599596799555761329113042965914725264601664920049889145071385140722040986993062983630528493935411779485605114384171849049039328168565626242494212215883477776340014645129263325308665632294087221872953272024689632736021250804741119984774809776337840072278193797673039323927633774788173213866195834379525294175808812699518980509026175931391218970205416441214867201128700286052965528545413747636240992489370882437565605760007763322446450511991577526495344309486480512075202380511719028292400290799033520324933486718595565627989269468534212656338868858581394447557991610426447205244804208505624405795810236489695363612649791139057202881706898097046739673394803423447972722312924724092513252745493890608422810080658103697094076177041867431238833994239121200388265120664397082572271362330017155401693819695885564838230180801178087267424554827547676536181595215180637159505605518818316785071152020173886604126298426741375798682566477128782858424913154588350197295478702706390756345741238494334798557269202122222439106108876823466300070498937734654808339677308570083741887294467399557722982704968087719134072317276932905178229291395594647221009654565322968497335298968199188432339197532626384397210612961161526697599409203315591620764754004856975327068433560987641714683501465219844969479671036161941510564965191606774148466409281144762043922430065321541963740929188157467307403439458095923261180650284971074725850442360075812851962256658058622888509583750306794321434633468580786238101760081367645992113815313934186375345152734761253919553969961016514647779265683000412335556137641817362097294704883068082328654560118348777703576067108047274068528687575266304065788844862420158644298869384298221975553143045879164033231581917987263144174782600548005511019557503087113593637122864392135523952767589252141550600610541162923996522190799442833997896776460678112532752561292768337215661053135754579649474703650984979467671929137258049205736821916301754854540021335962232960614476475571964982574740360563044088954191249611106281340026175563027303086050874602620823810682000314968644996139265145597415539879279486674267798230633169749688397944255613952325583190523321861723703850754336186772732531777317251664592716846139783567228391806336977517406135274204908413355933208301249886562249528783176959082884624396578921618739969821839240490617143689581503171486612532999316124276951174632785160958520709632740270022143980055687048586814231395422916139977724992660378623305944569099060616767919817063363789899583381506122870394775564218399793841724677026031060920397275367200272524287761947521178827889155332207231806635411658847967564606049083841162267005838638169912468565240473239498552019806718286028065365083587619496669984523557728749121376291529478039275485105305278928957325893844520870540422438062714686371820015632604646165118301406507577061275806249261277959962822311202001701925155663012336909530706590714188081630404408384076029528920669424398496471692910969761154195838422492128912368575466501491670053961638052816697145782368336353471697447932278764131615462623223350319230920818015788412754539800876555504600059327765834692707846157315329886053375144401768698909062236622598249350472860606461661304317123300788212198532170890623722222618896649641652444322895111025476928947301034398406998402074460537864221125821568483314911888721618019375638537419135465547575772300511012787416172488498729799135222652940141414663315647216602889117204597111190943954270221410863172274401809612065825085652669043514107633593927214677668916039231231764501175625031097960957385682122287190860237375124874862927532739439775448429585585810560431627201981319102484146495747174885682702521217272421086989151766979073591410711906468269161673403251022940102446849390188239352388586505416928483462683978264275042380106411074145966298327750934044004203328100518949294380164310764329298623347698366409420354061559618183935186312322322432591509796293800421641448223574964532722138438263164482330764770989972059610370542188671567880059298464172551812297316989351344838413261206673020088390777688469758950755615376733010574747309277986237153415944488182510898429250886233860962131895900742174414845148670435592537947330362051049390641674034649459222144911171783256597281784730614525256476324001745887272390789499070133371483669978895389802062540746816962460888501689502256657592879475536505885250023800246596242607613125739946838368310077056089702100766547631996454816658535010977003981778220631171300945627264081037998726852029388268353618992130780272153511783640255833253815030879623189085232107516258751588983917858610777773466469239250569510474985044396060598507357566740980821824787988573568210959810593380891661253554470609743207503639431197398056059348784662817948117475310188339892344911878379005313307593389387335247218505557951632920688486852477803592287315889334480837140643794823112425853114165532538830282701505792206603742550263972925082736090388524138514853669708822752845176580414506555094334825103606715743734321847067532589450531392612597179679626531832094898314341335012331605687749418905266850530500966035021025523234489896358902313823377184397744831010036879913311798791105792860876920947370982168922936383562530196024860603138410104718576672376429306871252981159544846557801971380592732909198360168055964417159025526270229221024726627448180871799068220916559702140518034371773258758371926105106370664765970248345850136882703897860473651952883573192686031629510794671327910040528566892396434946980482623970626411844635382227129645726941017171106727527981394492243673877255455850515686896612162197620011320678314068764112427826823637713154364323154682240254726505671922633136906229189235603080276564861604579928708443973930091187617216244811300721366446047480178142459846001606243617669450606398061405790688003193335991168826296001511387814257520445038888415521671494928542330771267347723535237801701644854284684780634744583827320667251410438043057717422007413488500820296536918912847612671441794339383448983128807328413470387688977575445468425650649186198985406048308057226114217724264176953744256720003183115179434023553567578353353720034813407411185398302202783091607604205138015390565705395515547431551247416714985193990519391628592988633503256740192374934779647626594802535661010486711335819118745279415999161457889854516504310083501400731093383713521740231561005321675375986176114462817121858328890020304587300366935027613285472082254239942096850817857914245672655940753987587956777129796185401839058051162415499370302673027664167701008380786164445227937822309897893060492143130132159261926668692428633339536760587960327775551234397554100618596366951466227574745170087097700334899825413220225506770972309027477060952892126766277050652852261436574067857677560921651983848499438360530857131744431283796571415167757763172036294403564250058322494381036814588789489401528558587486430343276935600317929250829528595175430765139056551199229918586921566391886172477505000928429210986530223929919211500571170431952141078656741921716081802125583749262757481026139302048632382081736448367580474770235486543504295959473320005744315273770371900216302728884055715906374421767417717960402930036172482925837508906692897070961195275555682066047493224907527818606801255153635630921197397198885152749680325348480115688886798884193192858919632269213407959265362004387795519824904285917001942333425726135958341647621470717439311586582264738451078028383163663842213622935617981620400536082346550187016592910904317892649310949995705479806964015182629599094704118014233123828693689627334016518409768469585950936124053654804075323766639749603712524504870063273126627359139563826516935233827431049474146485570296252596518528283817146777843904063222154666420281284952854412002347659387963804889749211570276527771487478451765792040757828313560049023623936138736699028288056674987124583643824829121557021918555310296396366041436557425222578881761669989492012821671394052623705275779676752737918120220838793727320095121980989230030499253898855224915520998561933420639424700442624275483663827365401036662499423383377977101016331380225407890930133989355740176021526704039556404576812662457908921340989000599771058034242733552041747546713780240417748641925006712880704130817865865120933775178758443830190781475562098734229708196109419513452825058738410428490994162698205027932841564565864822656293564680263155460945000074709833871175868036541042680095950683461081510944586526098266592681324543445620950441564093461446172232435307658955149030731662608854590769009146707095828739467839656944251586028483019544297981341988319734411958201078309209397735336158724378153950133524459853815905419154514929930867186745771499781700748606361786862961985618086593358928254422677526076383283784660823280909331187529948667747876623393131115950370282264088619687078351209346728194188560840178102942563323942064422023096391917559047582959293724692894827035541133542323407468465227033245554198912928270407509298301993985896522070563624256743357619329046924735233495411784512480943095051186217876657388533623365277940085827974143226876184139396676222870915800313156600106539063103242445967361545986773702506700035042516740661603907676019740686917995404022555280945127683023600866672100365422174938590381226869288154757086485245277599212192695840699800486207283468621160616039040034977179561180233654533281386778198994266157684406420383215172881021388822604876821905613585961216086135714071034582699225195570062627393443871939732377108219369986568236690054140353955012058740084864116124080747559295705336973059525138502619140709967638020803393149217943278536324186458345376951470815059674458052240133140579474112525072945664429272523440690091751456359237512263960483723298568667586624025922470002185366093700371837781535171782899990138906462116619154370662491460531127203919850640254842958455805269999980077584242882473003291575092916287009395040049564408694849414815588473619833787304609177722921812176908430546916687974393931883121929886886129059387158712347075297277331612349981584084741344260000983431389795606266309414482224634767705848775486535582641515081991786801257988105755456110147572926300120255072617849001852896781319969283048283360236823738766125031648686014479385123319930944819779867144847209168726093195700152876791692002283321696116173836388239333538202595548662046540534473493594212052227266086307162593295329835560013413633441990524757123323366013960564611228747221512992316985312275185103337572839592238908730411219810051384513257414477545375402943658081312860870627609943312837551880462003323230486100878077679081760330079141536249386999438964307180866682975200020503030676492668675243097308140470915293788515661187386971411943024111796877941398883697179847691343624052078079805656498733165199102745698879929263799676676133881869137936188330943069999081656343916860342870973712184587578160506458645212187362492342855138793017216449297876810951949203530756018596225745182276289857383516047373291009711582005039446772523640345603927243386547439480843072781360353253686487434013299712719232698577122616964693030078274766632842514572674124755945355801211340754542678163402886002326316351663254821909939672243809735088784821522269327445846061288955929461798650064230725776549632001727691815789092138802749973837541423747887800229424957593776503413110833486815695251866559997842347145108229121883784932550536520388417183708460829777807341829136125784515974128147937167453672612891849674301500280440297770810709225295276392339331307932717361218100866909970821439491053474749635218016808577735659700258062535772131942906947182986540160524160730884098041379938838281324084286703063809262678663941363411537376856085861553678009704097249321189988889817841645225614629740892031107126901110452926123457810388503909020118525030418902513111663523031121177581964504677970389936613706712472400667787228304126567586015605888035186253036033220603866997837756484772669843490173706790368068946531613007855372788724570594262616295398349792313912815766997801849683344831481740478895063367221145527105051157994635134597613224973899183849153377665736498434845561435379259505018525898984586179442294672953804775808737831027631650340717497083111997326595360412759319550640563426566983361474036024751344968002152658822142556275274808347855633147796377672667173387575569911656065110576688326793320946086958131314717536979301544111869678448661067807484920996453887429879480268726264387009496818168715407815201921758286584702949148772998101723970610065347866910814079861583406575812935478873901578215623737160261239588477296431329382429065307108412022681095566165459831102597415630967929987977664807104704929376579322801397101528070514085919564034053681845202234031534545223881882826501205816977439416489295950654788189555577691407525850615129039252582781582677468709331257933346531470147253496932919930397454443076834326292042769321297974358827578783748323592244341963965030269861516215952348838703646442986600026202482966542931786449640359122765998742788664358548546653678624573421746315663781084767925014657235481448950579225070534633343539253908609595675626865106333791819753650407843290819482452333856821975904607557670830936717190194546331894767271623914647842166429543380085691894814210566338275728038868934993463428468461591897479274691770993165425314214040301556028282394724784871913073724829393548734597909857954293698167875834201425275135079257189435239025854062500854478884396769445549321503787913054978008226394289191103803806339269901743971266080567811033724621361676962304543286415224721111559331202199815260971485914314882712419225601646513897831877270708986257977977308823644349900336968507840011124381883414096850226096341189284066172996134359936498946750270751550308776660566476873857478167962247103703714709398216039782079924556058757856910115630964501104834028155723802417212811468841873631050526633157952140540303376811644903455720222412267669441436901091376947069171298642744937324429850321792014134836587048681002274468090291003940443334939113075165873925244623707577866143102186513927734417829390869963536925860616929154744488172251157215999707616581760357920621804831618906392794376690119672135988426927052609997465560659060794975012282330972113138166985615767624765102476174577095658918613556681640264256079108855916698722804974751479540151705813045050883117412924438046962880664242924313513609047638032785558149125464794336621778513237350110675549966119217155643979623069636797419974991563090824213636482230357653624086686137606348485598445981513971741041564011277686387427241873917261186151080640111357444883651968252641212167835045229348558344956014158125925635169605017498046118910006367156504724777309433796712078349485310891562074407335042288365202482876084013227301135940534720945905407073881338407875057204012751130669747872800424584213962699085090862715366349861682691356284108057252698174036841097134991831512374271316177394390258220087253514269097959658319593931982213971424777026948226302682560016485659249936449254587278139160199410822118847932052676726006167215722408438930091837517851753100447741659768099218447095609088437917723821865511596122469918341896698103083290908306088129588203650069164429831400373078458586772716403174590017010035091515243506970012473927342058763181783609073028300888961967773918716955910010742562215995484880885219095930006478498359347076955903284851108785466270596520222493795919643705384302107059156061670454719489871718371350613156114214029647358553894062922110179090291556445782198509422449118154654593934253753948149458608724548635119890975941428854359390366172327783390041540619319107055536391627011981655916829984014796893951879726713880326841838230474911075499387928599019166595265169932371404635267048479020378483948972168574464468761086248387864058008759616232580682873107118357371980261574995074213549702252550735393212641967762569999432426333283693656649866804392879027227124048026950849772384562461069751491495692771090615770075709560646278514196181909045892195906287920160008044415588018449756628159810734757918779798022097685833817519771428477081659233494842451089458817103135176397171726382845076214829238565346326755632271998543114885795476136014738969051447934748742189083453280623012445932837889682678056749049205917349482565153400205530686960558962229243369400966632504371800310281067286689651531148111350363100641865037618118301584290908314608076608766396734661924798633847886217491508019854515873389136752150269570288985536793072041421509483114305882541941677229819521379837630497503283843682830507030288341730181958285824306056354960060741935702018270918814789964634822121318897215266836774744086279482298965065918176259960180109767150802792659943576733401792874855702083190096777674493352549065457519529590097930587638196441612067588161898471851867420203075598456888512036675671401420122788545409303079435260672369235053998044814666649161183569230445079678183057822843438345393343708676295438346059896140200370991081050197137905337359536037418089546204463618432638121928341574773864118047686879899816155438236875688374938687966459608855845442273559958320266754002333557995126330672391045800656507111542945230110229326718878762011567829427366274735399539483382651834097609016771010578204618090515335143008203553613018223687169265456044612626649885865557820388589061250371413360810642002852971539025246698962333037145257318892874130667646875839722902435568416696989662629040381591014343842733589011674188367627908234098041165707634192219362433780398839845036764677146127248682192194351612326805603496439477435499678017263068792232403321422457096470300505722791522602609711348382485574577799520826051531877014775424173406229778624488709126426938977354577613103398694944169631523002985404865328764744729249845064824466907035790881898492796045428201646161186823249091355104807768720520997936773974038952895160941516854834203862186443946265917805618264405996010506317915199825812980198875137101567441861841436292101088995419799718742600432312748664379398336282005438633412969546318493814084877993862538988017098889388640436855994730048608369640515314578225021365441283691239231941388830097370164642966847655178744864722234561286763431257606074269557800158701370714037711930084596116905744247720811065329519324459195570022716898200305249753267083873721036192522259631503089381982534818760069128912457515364881551630111270212670985741694518546665434723717196469443684000979962398929120374652971866238365258709852806187913768743888320259917592283202141802470647329892327394052093925190121532738299638133513642410016139335715834185169290683786598052916333524883894972024229117009534145832575484134052216980645994323592311034067030325248915154978748458503757251159294517791179296763247764361256973535007537139987214025430975902107775164909775563664563013707945116248995001303259331182131682076163292189946202879214957144847184586099123834839010933942848734171894603157462835081989604015540924824422464623580763961386363582481150021216343994205799303038368709002027139066339159297526248665861537456787189344027368082328302188774277788402372502296239388407162995092156770857595856154892657735468168776816369951191448030552508843949728762294018440697198926993819358146415088505596446745630981636237370344820351339811558809541713252389768059575558336862341305984063724510240604693485190412703868800816532569465728664596460004232089468831818518342279141556208931739358158288447882608211898689360473238745955287056395759808613852804795143448515074775888675415598546755234780071053812280516369170170565115845393806797532561027921512812241157216768421469796213382688138526173598751819190222624092694256043656823038004933555722279486502172143545373773561595257342149049312594046123445979783628947390676846540446694252386807287409287820969412866186546282079464485903969375311909991475634599496818822238940498184892642819562365834296691304688566673820487934032941827831727959167119849194332845627585013340931087325651695054244967712632629537920163288052957164479657064988112641189082674942641413979774549774858880983089345944881062209766342402000032490676706774297179184604600314399865217338210087381174817721667763611111847985997867249940631842893217560562332347881924606502026962885769577334524853273297009279290935336443828663416087703603941808125637532844175095532204562696803251577833244616122643409119234170120916061643835542904419859468902744194896443333011084931634554435525934128281983924434361543165828500277491253422873275718472732050136609027731090957641517580159290668851332727253441754947394148969619898296685511537922098668112939155158617373090494610175049168432404037214782412840518189541597565181068122895585382929079575819420659069457110393602726583113312617921202757282568210569717070146737384146096969914206493328531738449784210473530025854302061859854040465448439802064799639351110983562899176821040044790386734576752185148593400935196127622113368886998842996009263781781112888335952082012999494971507307591692951423593163406656381512345828710615771366560543033404876429384756967528824301294037255792928589582994297559365548612288010791556530333136816693384240306694670297540553647377777770686261804723967830304390246263291583638081622433858559033047353209831087377251006100529520017506334132894058455858794179705669350734213350948206672526383863486735469121907910508801003321259814078077108778721272406612118309475464722716007067633699112172506775181444742332090790845234565073024093003105067054016755228789373210065628117139280867329597908744105732947214832430056497940088972023286320129228357375655570926581239831538955501416017986662525970717244501417074153150529084775401112155733158602998726390280355880017763227503815350400351901562653255923867875610646655204961620694828808122599929871744269338083301339580169157253243087850902427033688135485661368960551058316996571430345670997228317296282266264682171267529836737020835257261543970937241366213267312636589435121997537010357360470571043896483567341162763732063881626070023197228234351506488764395394846152686308136841442883772329442285586898701468575443882694561020245707222728676777755984302872717056258788269406302865080335647902834335453092213719846515391068962771814815719730303551562295621164315941659412907821186163444884141331618814303160698386328733714394084712890835177976895605743083894119694419841137808639134764741280251166205015437518776335760771729909958558414317182260727057105010818333951108259125872918587841060881108165632501683695422058851751474577222855763869726087849652802630107681290101660511649256177526929762545184213803102448987457760479794342455205496531017714080527817816712932729903145300930881774497096715445467864840996893315760150767765420917018663821983839476710158203120632054480785587743332933944086471947159861072643099841843494393283121931405474008047363242254025789633700454104127316794633167863857762893049488565407748040837127863685134623426860407021588433601935750890817432215020159928939883500313630014751860736988470531198419040829981755486803067733488739039165678267818616847960657707728932272592955975534239309573782569399674419741531698814741207756377259419711021661503589656754997284184404697249748763208301774511246904646618163120563460400179533078135947399536029067729739146404503479285066797744243038252827403562991358535684690985179067384886213079987528276765172048931644688235190614128049549766353891375115021067899094394394818379822958458108455687200031714574161972256936657941993622828894896348285041359849372770278737116415824931002099973464813223974152458275215558321140587344107306438216290215543361213923587489179817880268749962504429485477153271887098088560454594519936376843178973881289549465783855022175582189714887992047798329112656776410880812837241329604037438820043960953743019501612861628792444671427398724240423323314700925330511864773983159103796399345932159933022121661512069029422564654146451015754014931186377997122541429132885847971279108729288600202439546944667090171072433819132799480913684792673813561148050832152790466300342314728447159549903562773820018825928194986870131853917028745417052215199075212411897173596789177927746929876248011335213445258383230444590899438300133544269932624996501908564811181648853792816776414317622122660397934589364879029795242188681135908853330397735834011631583811532313800808241580252070890883563808082755297133848274857035555630469323329213101731952524956378011466866482945531133002370357369355020234639052131435008893448394070730086605882268803089703434628355918745025789130588969706558991657696883147890097921283825589872433790187907268238980486320617176772923612009398783980999793490739944804457209949312308456988036209511003366138750935294593037148910160235475298297916342908589996793351331941003448407612929229678470597891525207891549556934638053247706487841514282508590894806993199746716754245163076373411035914149118847150916242608476774152188777269518853214650743123804168517899354681237730004427095553931982223683067347051023405631321410966953191376723477249576598596961477074685893384240722203472269294816156578714690286795082592588831186539585434552860516256104642768823781306130515662035334306705629223500787056514842575482233042498284138329643510554974054239717155227443638389356648965480168036271881308066524253539092068174698001889068582629378133479013312933797665183443675624987236859106788223763385902544818149659008489415628618065379207413512377236856335306371340671526985811338812768980811202714133088024369741646893056234577106848333017817482413173093019742564755187184412519765230534763376920240561025547629698966237966325718116497695524993566676462320669331004303227778077100115552218008797310555597490228683892106924800581905135985343021829117992623509347110023876878934112338148369450619293252723987710414824618014085584366346918026756950382096726508151642216275613157383404633356914500798053261393077073043006324846701627605622924143309323176846450166349454989165216130518987707125887745421264028521597220004251194250027018407989495464168630797333217944895053494974599536656607000221154525886026621692726529861421624813038220914213467905809195054385384611018994391462679185141532384369243864076579674243517309014952386754904871204514572479019173296068206988337179014590289661510244095017854031812115488296951834002940621653460960728226323121402271587659096045030805284328139107838616702332605099716538163689033451179913753130168888264949574155204103108288631930334640749373724578205200226338313366620373868744440702016669628666838883519421432133969278461854391876922691235463945525166098196837637526929675635712806160014497474708148386412336933323392369616548424138305513647132356923038309502931022019058311129291455355356101155693739178454202768258675032837598352853170549258428084564667876288020846587857142859551255827536477607593553784606631201101606335998096835097845577162365163029685307195168337489936487310463102712216324936719584042521365021536028329859074250723373760034917124979082608288908469460923428391980354661952573972841133930062698629729665818979833312349663865763039515018267919727555151394831016693094468626273289280103031332701617860406378755168071944963779740740346395963710315450240132090106775306331131730495214225532331345630269353355678770715870201159099576015303034968108362231996338431473581615740890613793152047642469120416050229552054139131691006760308350939414069914437297416702743053054547967211911986472550559773903375112623112475612427903403353830877275840151096932918949119184415888487121689818940178699891358761601955578413602621544301189100965982503067224670919977444493079747706484031253352477133569897758217133669076474309800668314844711643143128653043455525835506899116929487780006340297063607061063480065195628354902157077766823398707251593642338886676278686535868984777319724124255702090630906385800352937904572343780564274957487395729155066622266793533322853607397692520370108835991114494308514312949862546007824019168636257615056623794935239750106005741181422071005997251536163261626061890030204788647119179846544614346774296462228504602030737925046856293530539724248266225904894386879974062625353928378281789982620581987364512882172701561541190496415414994102324117835902971843007823268109925701859267400000078741996301365467957697919243126345432480768253742341508439180495788029907966221429763513382495566401103100180036535061402519073062465827578765138133412250327414489746673872050018850681244153604902430602338210340931937353686579447987552816417922329788647195875217211981295183467512842739490056421374258676210498216579699804804306525295925390348151308293116194852727414029912648678665528690233451220728200919907787457455881729918595283166906139429630431323244944653181893416522864866882322258921669822412604290132978694275129200540206173287594800188719259757483407388778822382579050761439305899679379133824276712921510375261054646579680347188573191314357304038856381812230104315929377412485620127323083634370048203084630945199127676504941908188528545089846787811940128475291673356288936262220906554788817287001200210325373345330991033700435024235915431056455945527408213602174001961612483628388137975486461965498683436012265566209905866899475707828185988795982151380151216093452665086074445685468863728446231103277463898565736363543164876976452824276889535059510803929383870221591193454495072176488637919249152205523744857533383343142254113553546875873978247217066637721914331072173856345975006771624431593002962015952906037594731531784575939605252177892947913937633849677514182046735445488036063408615995282100927005836810833596183229310253517535855856093686471826321721662431693587430030526078445532091677354552688309965835724046901278173528594729267525126574049881599535569967824985273571778299528755375606560095214109972363624594099502232611525687101501250506953206457718456794947872421466241121465081707989742540551802256198635983992078550817401209769267339509489240881895782275747684690895695657732909611507561749371783839643814514246701570709112520704193829902687848653755936850112017005602660866783102612244119893498217844105029278235606046814062682344816895915065026920505882433597097838495978838252942301243065214466204374693104221621654844367613535874696222570774550137362452538854932346186679551907800249866709581159939976192968936155407955985038598241210881354818672086578433518514170626654295590047711741283401588295787963808641473903199407332539340112226417929986359037540731810349081995353323701992074071928788399601833686525877404654804167469711108678843271621963604308169922507444887170983156962299765212074294074573445677251061510440243346578634369322093498699318211285415701645580951680305726819344846248659698549900302998508793310926552007847388676081850384203344232790612419815762785696511509405723899792749119098513101125356033656813576737184124968026042447365029745205111545169444471233502820527035988107144223060245385914196724635417096536936333803627980210456320796737933886411127683592850476100228949626459484992250139097337817530049646871320220147184338419357929306557325692745605144532773211418463695471648955679368435252377143633187406081082538597971936521172959210138998848078324881279410067512928687058770584697199842778634842662546943763811246621542168416192521950125546880356161578943473817371004876414846469857208863420846046048155093739227591747297732030737893963606363711172276420324250595356643844154722090919909521021650849451925547235742161488399516978396659326885190614744587777157092667444610989811971066090528088454277662774028218468806033918129987873749647038199249735028661739632336200103164663324243690426061660773101775073673276974265623673720306263849457335152334560480101119064190230793880671522655131356852221410535064729614511737265721776633728158715352324166440331167767163470594374461074735177260256026279434201325902898103194558095786557634715528130897959746022494169929569893097983714728664219510844317406204522440127854212590345442598199352688779761780441220657036347938931459715592118208967419235852008044397695987364901057229627258043481254402351752144390941583458080142054940764392421895689857482900181905197609517791814499535139326429382261371235534504827263731953361382107739829443378183976031415980949821878825613808558240431844054994795885554547944754082901334663604443374057245311240276318256272012964648884268694569677786587706156402293386016612982672648481402896058346741954096108821545818945964032591489044302741246416267996559928119988459344176596631234297332911298916458668423869365121468669780453237332763096554565689613487325582895039449870192579904057624335759026541221840514353022791846799365859636660399379976152189714589207765423711163545756976764042110269748145447305057470195225367547257986588381106821127073580358906721463473392940261136056434277364361242119577827604942183991663981542689923279988132095094458328735879022819695247491751001714301775236706340503456753535850408976253735182461342690033856164368686933302490411289926563491168337683955498213219238433490055663796758770761720269420462618272640945711994939920877088417064359510045299376645094072159953394523095091041382336366870528706906203947342897049765357325123573231623890838680838240301957971732691797820083604454795115546124031073248232475767625777328248474193372126943787611799684629982973583138112067203536361118490382133386722258801214199476400221869254586591439908778679306994254455527372609849533027624692003015569935188739889451922841475428978233901589553876829019849501402595379838193999636454753830967392556211141801964972002870480167725622752960843882290987166978151689606720741025344452439824494872878958584556642356072276982799235164258845729721881885193399448128857248115172079334556371208194460934115427493605245401225191494848080367666779921364349599614735358240830602066712079219026542581815543715441977752743566560072385936399898601690901522170876163135568987670153447510129700634273678963810387048070108969955608905344615042192296218196203109148677328450321947954776692266544165538789316221826642203677200455016654552467984018334674785395521909861852508336593299713225655530401054589330038592868422546288547435393010220122595856808165143908027972450757451734613840070131382884064257747132207049213434524936116647427428629612639802932196574734074065695727566566026061357483477975320042386287840754068270782707688551906680006868520472512844714585871458208559838849977363430232308835423524270133141324403391228315482011015494261421719489060137611956037593637586534267546189679676311884246682473291965326166676980073797190378972376010626156434549051532354649883761985036883897097320364407440015080452616756255290562635359098742308219596521420011495506859270699889200866418689514772110280221902643360236720107562506496291303315690735885416332133633535418037301806623439571018770346376321621279687336270482685677003370168771096913620636618602395407069553231203543629784800998544929705255525407959512090413235873418577121458125432884432397847174911036969997142392169555259553421004854902631365414774283531221934967745740965760748876478904813980927466531498439372479042240963261201022336802849896844869276717671145785634027716760936306956988899749767454711081297720376969884927150611326013562365960071670728907637546827429977740183955105984232189582030707270819902944845060469996506711549479697930524362650855037954157509189942925937723457663046346345740063471587706296802993169153295178800999511240523694038747372873042670098728724843415920307384658458394715468264848927704349388418509493559731542516510984874468507032804666588694360297498102875334600357739541101523805555844088196188051906220121120009664135354055230080948102018050206683489519069901894606707908001778426217179249383810030776044654765187958505060919105304166655812036144526678981908551320698457393320007930467324777100416767850795076882578479961068119272731214084038129986611096562734400773741818801043648523229259457162614068439999527844876005370531811543109732459114782115852935522694179159145314475273823207334254482295066970298506575435196510160654501994424397194539119600004064630355972064850058341291229615394402128059227887779286513775731724956515163561653037105030747051830338984408579403701300616411625965851649624363880889012816789783794033798470028401783024582814442278777490236741612023379665459528153293326129926426953974390766291188893437189590604149049128185020968184522531893082592571011330781774839788412016127464530859600989305973530541268006868367091878338963600602973672687247438063023196082175081255135616594814574100760596454858083624193510746047329243730827688071640413911711541463070080278224353397073051247659257204499583377572667221257086990165647599658906085612400990037915888150905337893187122558050454393586457036313314335759409147168445898739106885853579857626472085469017761513831281360413363561665033191669436629784501948517150490271305114896508881546158558504233704634995793968288992838550592237463310112303986524685721411699725810128013864942832731338898423195103866534108382849385094246961356518723219193163639202407511275725674109176355447919254291723093839408938448712859619917696807857230832842351095319957147804674317122944614956377625205307788067766039883406810393400871039194776274328542501475807537587290926863607849571504065659670470729069652066590882695264301557446884497742363657728315717010742915085322671145882991754742020678203194127849251632239725062485039318341900994815571859413151990165721242306094399852020261538179544342151224739310401556282810049005106650314281427304688212161908964223673719602033492183596399596208740917691621966397830162669027940331256732478978697260413608274978162474611145579691488040784154386671768069920857313789647974475354649586703271724843343185854163573696491274983556637367325561658896030770050069842078228282175394528558792656175754240850397026060387580829317823519661503913180654365173768939975142194342988781161771577435656034021640359326679916064412388936011611492063903607972664176282055731498322049846453695498887797677692661834368741451322976568904637376452311766415426043706367636093808901126596027370848125474448017105657312700283749316180618889851499607419607251673175977746039893157167894013595961329964093300748852396147405198236651774226406693860640824757564453868833070551716893971155158110151040728468432951773827735264248061463637140463821604437114688069626151476810954898701879648957793486981880612377306056865990600067261799985146217701458126592480836956010218521101237245780568853823270632939053757069091439080881085479137850779745456035565546221631435395354561294377064700404369982657380584854709884505234359112873937509815478645066953626109398507569526535938786537959504631109959828564159102408948093926388188103091769639400670849359196363954648926419545411397282151288649003483302551714258099124717763812352356214859163125628020440773695054519291118452952912673442157162111710574110289185903929709292393960397740346079850832912959414947389763494362417355718916400213110302107866603092705941076840483338009160214315015459513663210867355905192507584802668568901800549467454706641258595376252130541275755711884394311187498351389961778601950905153331511598859619738099526445205987336533437199107027335586153951610142138318891909410337593331153694386574070196062854190203549834902268824085454724468906408834957377172677075929141615891920953135479933210743923704762396167513034268440037987011945502503048714996183367131162150701116644395743335894156695444759299571778349934986070730847014941156140681261570123992577826937899705208920559606380262163743190362038107025453457969436970117491632197920657591323073704588521417142915370289026533267947626759290109006391674187731411037240903563323600253006226513710295480086543337059625463947920303406946487763685790819583163601630485862649266974757543500312360239753018900505978031520544991000027140623646759270532453660487933169457139035930335764636163996369757966671517746545673195231137909327785612134519258350611888634792469922410580326315258985940273275210116516375413759026470240226842257906900197208524351421038508277030423003451082344145161485512237777263317079512069638381953690894737360943186406695444635422566747483548382819833098735668896521015150231596657861685775841992713220182576244487029269506970260737448533304530799343693562759853514606652509625264083169270476706453347652617766008434302608066734711515623778950426238006684318004186424217650707486747570544204900486462215584370481743496221879150899361834647017733087029210727428941866718676754013652877456325193051620387205580965543421442855859754502911131294373264001666796639549127090423153909988004450958221691833169341898224640662690426278909916335686925489796419398974289753213278454480322911293812236739023240042884370251495306700148401771598020550732884137568979109460298751266398759962419817847348191320425445922789947435013434264566000441737761846278758245096379617745444705197736895519585115338995242038645037231345297528329815990044164187481352599983458486448205166307757703320721136229519479166803021220314053856602776859210203475394168777429615802782994549084928013046486787963405727070326862374907723474911039681960378533554979565929741497928409164273939914311144602211672145134583958193880463793277513998668996262669691535767754194779417906886400697881969933609557129632088937982680271398509049900277932178998034767706152104614899524876026091616272226758536331542932514956793461872576973891684126351944614798963063172630751233220911449677446707848741907216179567727633459292931839701258790692245487083434379146924413362018385408452696220374684022406616098358483084639620226918692401824932553245751259906410327217435799542241259810764050040524653545539157932704409041483897689253804856718753046507412488863312569456915602002173273552299561642576067927849761332209442980248832017983891948259611548573586422802874557158298785136938490293079068045597150920189571965559643762406216420296747956529594255482220627638867023903834670237084757907812610383254999068517798901326057211790238080355289881591343702710210396379034427045323664330187518741366226323766378685412171948104536900477486542110676072148373785973303609151907158752967977275785319408716604201944090501196992510577353422496689225604608080402083017959570961994946950169359857025293858463913265270279200785111228461805477082822369062033582015206455541339234587572030709689139086981541533784400008034102084705615056606899791673285414917360287954005071816908823267930145640902447978823315135527827637358358387783531212819943001531514146218507568416656441023849948839269312599546963672153999510149984876883625669809889442679245701585795004147199149849612033246816387484871446299794791476059523887560489361759198159797271962314762284517651674989590620923595893437366403397810591002929154167672337161082608440984861741687368094223594237167317333340378964992266659790042960373444273322671726241764513525366121503355049175725619966637798617353527924304804242263246395876374269121366163494031009691214240844929700283604809022620092392026617436138672597655032033806349756364900559803181812995072248390928287654088463708311113426490338408320970396340256437191930775056126113638141501567749973697162987557778977103554609377770913637012601655920660117857802288226745362849200657302796753158870831390665792035624450142992548648128711519124387449285316803767433760944041976785204267801753334129550042651982219259329161555505175250457753170707251619478733454286491023800909627464047198426230971361393630825769490986225436261996688848971528976479418391820736817807681868725562383273555311702927860925329731847877477775853495181632856528647543894378805830862612035817427617792988990735248179711905820775391079669905953984048049490346057626685394409985280366046542430299081411745402893205365161042927032420262036958454310379126604851859821033710109612276375592038042495108155935129305757543383487558767053557209852618357084903510736396695250956599989548617075447938561663959026880101743015685329060255399094728317482987306688742343077911408766673724621976098599198004394873567121821161216923285001564360262514916098327634591234630287218281948668803921808780007779975248743869462671280004150733622714447135427878898833670732341323466764498554487579600685583777725269840143566796660034402944642590278493118458358523022192760376440210345488024341416658069760725526107158121524989510028468225415136272067792868041325106481850102330867120822695722257654031119904513985214919132996391783951523735379000379230528312370479336553979376277116954531971596822198349542921333400350406684191791925242656782116417382001556494542851877317650163304455298732926686207683877328302102772319586112703788575258941051343516676085403845548133857849388937625455882597016880070503281342350881624596256577862473689590805745337502755317206075518300918058988354331090110117272954830988407625804021075016975796499563512371264934143824973475247938383077043663034142369549397961062072337711547102877690290202895007635161446850401117057790225141502648231237520998779948126201607728742148916840149111919983280598548703852467070408822968821934846882383568144640128986231963802815714018317331962049277809578686691431112481833418595102262223957818620488579472874393391395604404155708767723910399887937270883376541835108887270343616826993467010998906692396472089025954958740449336194117536283893861333221667756570303380462335646814954983656427834674946445317156980427565392956283534701229183600016627431360231176157437508736925250150550003485089290304674242399624475966033672196762184978439240397272474635905745377594048688014182829386563193428569304240178131940976476353289880398366002113075398404937718767470781243537850598755306080873650316704758213403558191772774175242268130518862972119375749684313568387730694022665608594284111907286273854031339081836145863992349145201239156106952718795519170580695639365146383494098212643574302792448308471816760619471711128386234690999930695520745949710439279777026772048190213828304762394011395520841033894824654525599006605279094514804073999116453883893833443380643352688929602726355098189496058733213388438550917321763794296528475532640699239481206694781231993889691420083125364948362506044673585109454266024888459827787167411298901361126690418350011183399692903326203280248849857497186075550926820709523651995551237954591762027421979312945216220431244845892601452691277350450475681180228522507543276360907648399032748806556004531760420513489223441441778486207869491671924073203510653604813634370565025746162317217233837699433228832787629405608885715503200211180154067224227320389059377553785684764140756467989699563432502509760465411840519570315729585721054074596716896026601163135974470984585314030248446029766086544374018088629422717775386360068732919044817341880697193345697711689749716790226668015030267095195635975011169221402317355210869020380922289883638773494634813379525700622598078991429494775266650352347572371664749090289781214184739692440927394647372938444107024579260304664304342928334434374540301397445961131160001753877228632481094170792790233165572990636889155598915969136094924815462656005607770128796616962312977743298782418968730428640055024613639649557117636901140746557251845295334022245198079553645236091652079051783533482980708093710699746572951029161746106632025225207525805530692733085750504113226210045492425185087625527549590662968194556455486931586224362792941409374293256238442157252591717796640598734282400217871871911845072983570151721251182383603168480993678264099557314577013516591611133590631652763280539954565018203877249865305105684532267133504140049020205276014652710281006483412492874968610956166498909885023654936041796381832498439051074153358752719233282355636350537595551017472021726575842620882736162421345275953643422301098481008570107042505486370563675539944545967721673709999583420124925499176713376832213199418686854915053128862758480815674374162805226940607599979912170063775723509087381401875520707831136138267475349973721043147471999357215997762371363295483424050917659688092536410618320890712116546185560424529416712603269495176341805152230448587724880013172416542554001387500190234972551386624854744081713958026956461842097943558167657515026852003049261929060732438809040941460776404126345958170634295015390706865870197011992902398826315867074955330951754263591412607554886470470593705539610340282297528629687793904938476583782862402263712310770313179116725468116997940335887566270765807037552520244145094090121078512084500309756469376014338956613754352759196940745979948029075808305190067221151753222507918834594279983638541132396019975038983138147100135120760020144767948075341906722721322600253267783900761151382162848045477467339191073352812078928991512792121685749859693471043384453031776285804816942555005417958772594194043827855173870707855901041626632746178375238502379985506736278242104291671876626548648979109862576087428135763962504465080465591789778006377150088363150238519954168214727320588699860239730448652571487366049588523634276437722228867177131985551216937287291004524005279963781853441989871489435806274339069724547374899427045919278598991320638865758150881300361350566478360659888755370308062422381354867923519193860944225483813415496041990284218910527224102010750662382307278429205613985921412929043148827395729896940389028728361772672073679556051709247131707440110407242558505547191631014576209848259992377699394332050406189539980008910467430329701145708655719482457413155167865556163351358642610454797761727330149625079428007082645358878211593035509748791183269418179647674585239144207762226768036738720643754875885278963746835446060620340313176661200405010208107333310387035384729189544811729323953194667134925979380972947270011637693953883528934979648862929456722344774614156600528764371330565995900860266345488141051759310123823318230438475839614068468435259286577395577621409889205116637531172750175424349719830912542039971445003849840755950040974627609913022137941304011336466089371953966709804793633023178515827040322831611720075629166713817573850919800429773991174271170465534310452301912527640963191652253148630905803342445051305579498399760509599645440640868869220309880345270822881750315577390201548022812485964734530553494742719480144144828553255672985747967267547589055487666767867642219199976957206205368411888266437392151575162406580018610561346106053112348637313312519251737308309145938729511765445704037113316261886893524805475446078249573312100669338776736624777117721771995651693737472582256380527000498769335341792474733695156218735495565021890708440194673793249981604907678705421667649510477157096855319735297292577360105193735564823799483052670168253980502917749366206868070949789237392174836832248680479705870762685674136023580614315902881467150408475473695824001277887732016437154734343396829459530897772484540847748467255596939378467557083754078629572020796338012802868542250360089142604600521506958792491413710142865843042130866942937775292145583637205176965906134557759111823448188265489322623325354152446312430809885512470878301327283366613124823478303940993842865237646197856224411395068082917717613482841655590335325650866624878805943146464152159525489930735597957492462932394271424119528389393727074365812541100258445430609693584716098409756035662430204211698577627086115758215919979591377360311136463636155622992995076195102735284370478903693782052718865002370965177793616933316520325828217556659200656156201284032567282437609163710998557924694115940653036928316691292061912469967002157600776950619903920569891595700766630586620687451179075828601921519877359118017539591764717501677372206121790681720252253461724449748167012848692616934477970454062320940065003090522538512276445858701954017783123915606830429051704089086815829500930671363361376624803657777997863723634145107688174438184271586973236086479551252501175919895141192293454565408229046984233589652756822840620058810944333145711410871820515876061988600763923561221640479705968030851349491147032417273880229270522692393102075089726440862912188041202479467220252675900420138092074869226161964571569731873939165430005116800821629879913487462980934864931700014771005073547842051081420139949400856779074597939145010404476410868391472788156517838778414215367211598576477067199282602983933282246096188430420885798852144555331800919366294221170877154661240342876846878415234962264095959674853193493107305289887636973093400437751473336290758991630373961506315632215367332554294617507691399374025621291371218071594876400342328931872002925249072467360143222705886304274573616472886136958093073699320484315857633764808511998581469732854002565325339613717460404526380829040271087300552381609953000380305498000148256326133665236334778831250970780562907758628331687991823772296757461779267464411394800371984498341501850209510683141300690455512246780474788057885090370865524600524957353629475257209614848906808523159551992510315883796810498693771304460074414138021061284231319231009327768333045610640278906191800219468181354410306659079372581054319229520762230564531351498731841782994868222859053070764298084607775488053469028220448192716091302595617067396426627959007424128298039243769706869353289557963200545993446545437893044950576030166236594019634773885675708156753411660370309569745811864249798047096171175592204884624483062379986098367512211280707451933540990287222365785856195854288284976317017160585476040828646832122088849403777964914180916128868012753174473616709821266214654665033788031409769727378909136152791675625777092492330963442271202994052160822497826479292081669614166480988646984778028013820774031934415321820127503942815879067357958699861286203529733142826916633982080550772462266560340260959595841324806069287634849484170896585649438982293706040373835977889298425757960812015689352516852627665501340840944443448119849043458381319749219655105521373317842462266112361875874569473035727028526483664767815709223733604173145737389150559382771742018497116778039567644368550861295499904112717542021496246944716583169855588093968200027257286074598354540025398833471892515077112370537005986107291757699975121167719905068935242363392381118404605920128199311532886412175183017465092782783321211371349765187182353553946872199975570652069701495627698699336330726996647224599437063273111256981569168932442667508101576809070907447583177791766503393842869219153801128980895883295732834740514769551258358419426312204379469986546069621906933311595272519061684696151631584218952245298252019233319470455063154316863371056905371931173107895808658137930111904063812251425560699066370791594970064299594020462564185333437649379080543201567761221718318707074032060964748819693577429517176725095585879867223141449209774977534189093391768160277235412360048190007175114770790847894248993540751929644857106682800168041280832717488501066943169732987887371444358055964747344439704542620401563978849627921064638779951627222495902467726849874472831688467477956009597887600005943724415040562248864044865605453652712529028707662690051201761568062699682730957826127982032847703390639840391594168931776620149763782256790579203568144295541975115685255294568106355818161197145743181746531768867626638875247901667959339154573272837440374782881627625841704929167314506541068576376144305218683171391238753951671859789777411225341921900711385912412185174542328815288482859724014092459454865494172262809126678919148927759631231322049634433816001150089638162258856909460160744245901310064694505749733899024195871635672075228482117117221484187487728878504698914661447030642962256732786596541256968937784940361738692272610688185482787312159368300359264833858074641021372792130928539665129790669884429737121737524123546926724458758903089190849217978920295537891820705956330025360925470621773925288490278254933579688194541061953347049034482274401972940502756183354039175365523567037531313358696402699829314443897719436813015514786455616608679871418319074755872514264992254549382292873720049683554701814340979044073808014108412600908196661813629129521421264556628701329853097597515414615823653588586843438329597407079283205341322995440860115357859634021341711575948656822250585161590810851222709678457139293486577863945251880310178999148685288564729505602826796723340390953792432829790012060061455873719528372817103808452202987583199319284193181229021932113101969461390993285750306485767833757036328189476287907622339522633531590497636241378257844296375042715824941747493683303944946353924311933370072787290908321309981480871498453545792817977789567984109777648385395990958032364794805106188012931702574556558889954757876680705375158106393513947289749236016745813632496194298665853561723739770955198704718486614339852127504952843440200981794913088040117302889477690488322782571332840249881983377979068798154214035966877456934370877855459385811802266617920856003000780178947797729390699640375137414876115720275551275672084155544708973341994696953229447269137864204996953945126694452843864475526509477816470639285736685826279377309169370179547481052313616093564669162253914516383447250150328715140028183070164407112871621132843076539122040056092687558682799648152072432329186444601541203495298550793028668476078299510352464998855553405589399914259459128722144463257295705103123483876975614532376289125028460650656845029453540192932655796458479527011955962574634082290894071470689625490342251408030861694661758258905000392239127755709318252071865141822454426283138965888584679686594872522354799799561898848331916288652235350486489456960942204655874879824307550048269953392900239277817284605636354762153834812549990618791424562467393505807035013558018379855666997438949315673551892884199312566904153544711820973707185618003969923004448533169169291935717665587766413222145175239676585829082608439140125754425404120958879645586071990955620041550147499115179985413775175492610338704152163157576926001844298542615664353961318701919047618411348587800091789847130902267263380558613828121666740779067549368748400863842240667891832287565879163749034432383001059147082573854296083796854229285399752594915347459069053443218293926157784286494084506694055108958923140921325098185293899695914768263606845178887982941387379875370976970565041749884768956325104112249717137278967386626822822824843301878756336711833059053798407786182175183910011210026259922034685791122099715415548299681770644421958063111049243180981550343292115326428021091375456776490690928084658600393934972313362135280321387006010238251803350789160472755096607372975290523453605045522427256181111506105131332900450025252187889042104949087384959709392491796276829338377400447304968747027461370091534884022098825920097737632003342272662244066823789950180578915743929431541746412423141734817211881378234450202799055169000026243524067293739261103027569060880183669886849451411350845072692926357673107580446316625190752934749012750595060511780625347790632712073722871956849534464967078773005718480383811825730210354176119809059914069887229355458003705885045458137047363624010508727915033846101391884498201497595826937335897266306018398450622918000367271598691851839255974484812333197324572799649806768472367520020692438848201909303478475062504666361074029662551165163946850227522307049746249477496958259194269007284292848946394815295276933793696599663699915461403252005463004923788131694366075121556797704820123812879229307532047963050802485525133766262629950514217726551245760230211136095415248223014800612871263307598619996683692455732434054484880372792372414891366031124931186266165068737179600185911328767850874108146703908096516944084937351393408621258067151194356583828396332492068919989766727839366273642443531248855938543458840588072617170867707719921689184943848657331739807187581980145300135719094915137270992900972729801976409340984489420309558969778104137966581600785275118672490917497085089059523615113513310663077893398460832078968392910629442014780490266156669980426622254343496007240770575658072434656732671803443473711570050284696053137952170602297118144341627059164063195853929324042667763856201705419200442198590367635035449966401690847216726776412537687847642278813403947651381969331468035881862833870865688281642860965322399891386410284428000297309271406817973866023334505256124450553836083210328278585458495568860411746507741693374052541605581094093110767480831633238467941877253811956143593568093206721222873182508574189985953405650392358943787829970433258908011406767331570806781431928542945843005723732957707004008736587280091378763577786592823957460191902150675549325008045935846853064407692679268368803949222981818268352652854250613259133350942187885510561099490698061293570008106109188636215781057885723686084335289187932015536842447835494531560219064393917374544319038213752620949327486028870490471874425645901818521186736192167865085522167514870253823725863074958269475368391797499778521755561702134725256850785944621928563776836819250135523760846007604901876416425740615602933820953884711637108846127629961454361638999648217965746467131269393754778647473307202868910253172259223629454358821468591281668248383660834634294143502226748242821896849587331378934857040860834723435932631624679958473506281572721831168085838200756042148997100458409678182110037994679933625558855665329803484584475279037289691685386943151738253387237072385038932068813278415015808111932994149460745424099593002361027432571729886757235261151647011578938270360543802384783678289027044061649280056309307004268508490909559802976143444720278866415464280593309251977445510226664450226547428106873493290705353961712315360708563645895935442292021888712743793253329568057703983878375459255998209655729209759956169349789766703630336357147227300522382200644891919228398596680379734865176916021487090655081592746496826249478152759436902427863391827655307829267789984402800438340494788018003718725097324935434227667114630486142209415521572643524511712500261978117579969734147165226146697617225632071624705115710753707109381307395071615391117976765190363185017801985003939127272504417113186803496902007087157748381591070283477444415646070117408597173554825952073248724644690402225277305754660314780533304776793660362457781937417990553918024704483378495423320306840254248968896905244202127313920831695617632932322594573364885715703424420242514115068273535980358082358382984892909798097935769419701042269054014144331278436872440289518610000885794498688643839589018158160574861637665328407161672728552788912842973374156169641739057992131897856701527138659521282240110120099838922030003256588685519079907593462090771698720645532234672799094341640167535551391395093048501272553978066563743980285957701294277117748003418285856264101723258771544025269436241154849435969832171987886811225206568559856981609666622387380159354756788397090882442117575815936439056475166713464863008046154320901211317834887441214318653821613905118248463330718295126022108708499485990522595118157097030517073947074357054779003097842337112800571945279997019590999276712131108424881939549227025953649015300983948367052689997041887467069971328467350857937203287547599114732809683499290144378015258721293786898003111224755578907926483896555413079982100958622218242997347521654137427563502930712272470261478575659324680209803000825439706819830838697103594253709335905971678555118841847560403610040039027561199155698538828244212010027380174903136466778563027656930037755741437450945861355102341222128352917059784411830107717702401210099614310233960393461436686890572154147956507578106398585159394463407357553980667255509838852627096349126971734558307126235588754420389654943319824252181393841110036846582470952472964227106708426999565591658576519761289803205618819955549694554304792559580915659282581952526843346239307507050746730549075816711231610165178013482248266737912426158008967007989030805067813562549114092891753035327572954754860412067846367356340752651601357313519330040494622915659460502344594170066155724417021093038071709361914326473210825798317828325785652287680923887615419975836579263236444959090013695742219058600973208920687898322009266314069699571338570713158065461623978443743927740597716207293800341358203510772350924411353022914350403838983908961316426713514908767228763188714047456204118433052065567234128460484225182701359523401418001302323802610141112693138016805897548066281984721466861301674153070083435065366833360971478617787026784972108674278895995542752388155124899228796023793265901091814011994761647566329632380197681267880094239977042422463140857340048910216171973486308682732713740243895922744591563550832111890192011194730862685882695985916588362175352646392981898927522517788416716719564774961693744031573403302318484386776416257733444922162163719456398533490995046488318005928780622236372180126492581748509172242497298737021748921200032904978397093354872801425854920269043885008045502363262710386351991092407690154289941939948947563236210860909263492273538236264215161262512397171835337621244116842905467069396310482879664228254146522874162472830965525813457532761903944473949693414024425409875815526451711088169506991876331355841975832257346077555535978552476660308585377057154295017905972625269559190945943315251274083964085626096469438543173250269361729922967473143957293709244915265117559274685240970443339053004962312763300138197854373979007676239196266674737907482776512147860056698947285012975522031205030755223022868005043217968684706760201862340819268774514743282357035410661499963892048387080153356921850053458061269004602358601275055143531723488641578378087314507844323771092250972988326576977539150898465754160397741307052923765056877260382482614500624840809179350215494156023266547584104969187595933944282017194570500754372088907302589684865765353303200968677247876586457135277002587573755387627290215031974784263790912375831389867964832915222840999305978434120085337805749912919430628473292875303144020546584256210950804885914826413789529902130340186763036573802375276792907272758217789012471778126886603030021861602493495932405321536137109884484633277810147663904628612822657931115894660289704469144407044499529461597862697884997254387291322860266829334338413132481833390365418148412717767118836558200454992252545847170470532294455625108707373125432818076101098851787829948827811794474242583190621762851347353253581780394779756098953542505740713019723670231006451189652730146851792104795907568133367899549151631396336164541516549140105095556022810402165612334798233485170699753330241058421894809016308563713596357369954114261705767692830687332927553980422349459727260680018310807974295134728020813018980511323611777130146575825227370290918116215484063682959632911323036583803802704685836424039023260089430798393368251987436559350946273391031746354636524628482384430022152929304848962368447567111337154425624311638338414522957803232565143154753181033308674145065595681268438263937643110258529063832340841539749387513918950204096393357826735763863896750607642486990604118618842501983490935491123448201074557636838307371963128144219284608719153097339179161598453488827788529438034084533329258745935088149341379528014776522122879034856551554958739913575388771596424892213377026799975193977740229704528196740453995984016348759219034668699370369012398387526424159018184992725036851272916657354838341768360133807158916434422648731020857213851521889902431095760511639376459306605592617313535811295884294614402437591767055984334742610670395464151769986764525591371346915908224388593530342017316513406430243451116426059668980031495909650968217157339479011632747016372691955129590536245173930590764561855531990550796961931386264653233981874928916670067195363930699421968445697448690974295891995405992892732012857904952966582219767780992131505411895069238754608886988746435136850749687418192588773575791855922167153971988838951277341751511959024664723045152121833014441338720391242644497943491765511931525446202523782887877815563133650075022224199368829989393728124418540268119921826998373745227813192032695157167837851595752704986480438913115433238731754727776040237967233123459085524355358247465709876275656275089055144947286253749560734819171930363396030048343605443405011384934522894398751565931062921773470372631089895136613075932325060883835523670765654731494792454915819777103546959514722579942543197856085253214126587234781094118904293441553125802284150710954404641234673582747624265261126108290077743335153192644660847510737324177711078828944005188348010445628913740369608554316598560090413849586158884782185866921785099478133825092455921857237584307501568881334250446015444244737134309765313139566063474724912134652739946891105129180632935033698865451935589989394101436635281630093179298421324570015398477576671312446754339567001633412704816763784751922119076810485296149456577730319128058920891323490385949366692345654523505864573144615225243679045192986961926022126280629292835005242771572297371139466520290504480636591568538850863744146883472168795474389907348312416573535509022721476520118288134134010338933847109742145793645850352132096515060853484028593042879383774012295551199738585697218188879028558990024835949753733635677514926236594142249859918526632269971505266809320316137212470988930824041531918600056191338195446079682903562815725986611584085778794113361819127477178788529184582855352543682652461693256277198601111925326284464940185302483583247819257608713459870548361422650007252674177612242558557407845835787865816417158782060276413867628591318248015285355212409792789891789110656399351970186479414979275699893042683321145519456994888600618512835635815517021802173248867401311759679212808025727316956027067255378977501908044314105035821513803684609172803581033713925488202813516228392518257022514951611376068329519274499852859564359769519181433784801654297729992694732191912733916664434077286873159990232123076036625218174892687806439850126922028227353624806201615945074870705294107382908005608763336601829733414417441537962458918598634190759467356922447091788283139341308215926176134920310152607522906626312917189532890767948519915650321441596928564185144185043903299571414190735705721850053271240080880298780014108178105371078042116954455904033752136401778421580397889607173054578317721418258416737391482091961053403191260241970497931933255195071237607086677977656572215449463100970020261314849787286110627191555841677074199698609430370357631703450095931175802832414264959983864578461546934059678404398815424681941221173698037477201319731975549546454896271008845400135236749593497642470753598176023922796610055586313928992665549746868777724958507494050148223005518014169798909999880297711500918395224371841627169543570148664396905248987645416592172877235009968176882822306431181345850724077089429773374582664375684989955240205584174412976700834450116605352561630615430148447616187239551247140289616892260485262708920389522670222502362025097140458578483399423372810546119626759328980274316832941756049647771307017050837701144885878066318040286432415402160155053204301312171691162981702114086810742119963733920477728400489958539346286978018781941220652589643558170258282767562300325411186202158113225419836774338578439980977369982162217986530292767545919343239551805713726347639287338741453621431167830401558741186554470612912226102096641981019051494024462667431578960004101354534954828263011059136070449741706745662716515800940021750392991317833478753748307706527323307343767006641419903982786329072735350951650628103788278431176150799101693884567425316425705545314995240887241522931890974030632395793675891104881176660252998452097434103143324648273740372967990265543139005711079274894572071632478395405222835520704016107780854292949597117984275330734377667943615913229678500613191470111548007524708377327401435150594395403630388704844728077017306563089988755973302418375523576639254380746566883160469610107297715885530612064856843461815224456119673716434391767213443423200255806607939494768549085632758379265651965195601364068521721981317841156021495235272281478074532746517795451504312598223541271246929050023110892215165176740696840419116414804223779698643901872536399902691357357369926868978623127945792828473642206756885860143581755888388873060729446353891469767543914020409127029583360454315605112265920164205916598605875502349244131175213338308818896830322331484290371619688214200397266708690672282205761678350824279217151380500394376108525248727348604129324731487839940770687851174127119760058929046925948671485609895974200808969127782420297273616761051622096839938588098991577422232206441030496977759734740670130297145978648332758534895275576769450551944750281958751444296138469520737242570653016719003890577318508364346986773985201223872554702221187427110320881143733373580594039737884063612390034681501284461972935311876684308880909576670004032890418721781653444185665407206645763653106238048042074528423751904606862714525387947162889150508712859360254148540454689572033447306947834282523066233439797850694130419159329994933997681674034260237336299798890982222542525980610791776153820354752693569089371019431805466946358988909189054371158270121705273896763647935231736791992177473148561599466677071510128272750415728910651949644593003006914968744426302348310326064439487068563469651599441469175824131453176699411131322827412501043847746604100418438485759727401188866993986932536352075232906312664737908846683329133111347593517164569586763200033252796774552476060225253249942829576405225002267496888139728318335762575041016627724303264984656125923303556753084352152235644108833676968825393754531202677615027518201427157034872210579705169599748701252615805536087174293386497918388453997386409970878196465076779087317450829819311150994566115868349141135155841995383293172768823542754455786776001406982263654950739674124854696607631476740331172927580173254829129598737575886958130748056903347496681815153201727161476174968194047189363966033238615676877902079780936177120364727698243281852968752537120879592607899975140943099278258355847323306085598249916277284834026731756710413698204505334961178841490201169780942219964288044825781076811756215177893809184375058386803711519742328085079597288145777191992974415836820563516492419879128127666475643618564921966329647769691615636697195840980288834287949907696717954672283291395697301561482230798835081976977839722813438436295467866132725940664311886394573649073030834448879280746102876893443441944445063301690729587646378728226181538700162511544777508086939007991120204801023938646092119058793504060745912974177574923109596908018070625549784007247387746606045684256194148579318336208933460711106516215144235417804825169210841329906460692399244062961676454734079614073271890691500254917953174977301745283151596891251430223611830687606350681503078949347937621980061499284251715287317381828158234635512962710953856484357366114720279299540296288643013517098088776717191811309621765266306519550750517571422478195853887022493798968363826350183069209915579092758983190336184840178364986557168561548402670255455782724109667336396250413675927838858931056234093771085326133679246936074650942068150185681686978484855516182806414688745888176897284566727887188495016091394570279945797769604932105232173207168365836068588346618947547968012550428146606367653082820444884463264243332748281967954748190081087503136090179500871298608725396179340267487850366311988628972077578100190920396729831024418439881296217870647947671743066685436968963350936608781988626303971494322030405327665686682024912739306263297424662761308030614821781580706214440588027999710388161170031917159066545816013510257763630112753288111876556365911002921284167163574623790094715208652280522517739685502764388638642294997859774277519281319314167153825679237934398885320758017554256397561307760175970639504737585937132707254746259308825948845956942387649258695705501961081729612545351014727730991507320966871768857635512402780067526500261454535859066465316784180890458122750515408506373002744291046077123370933784714591977892063324544244923809873636670008050076301580887486355207873259936828006116583427477891722458698998284993781915502942418508506955876446985255086101230221273910622233545593023002208010161517718557250466962700475241451551109723809915521543399767009055560534750803734465384387892067170449572358094988853455693274354957064845478517696035894004876726177564202725983929784928729879162198468784076282592100216600919135271435333307486079317778720905923845285931106398628850990350060543655962206185704835039719848108828447455879395220195305935890265931791792287562063021674792983106583165257655997700936005619328085598309274232521282684760414218717477761543809784902040157622079883150565380234788465124812515124913653776649315805741314623147599328833492363354718990596434899117894410866891884830648604935288719211710432170241193554939259383302900229489900577824200344487287358216016395980597702980876831618270243983964128218626260841821020792156129853122705136478953126317602843381759760480474402242490323179256990722281683260736592210603543115404323221904420084346643289470575852820296316500128787510044251434227310695709060295569849614196906327670406824547620794941872384375875619710930173180374082090914922349016638432997161110337293778192912965178877915000874672399392912353876513812146687460410711432514951868954002105165194929320922215362961482342951329741009923062880687684971280094757691804531651444900076949929698697073053658916393814736091780437816142805708203625870195053017958280662287756212437775117808625896885133705875347224997941780602960821326312448550967199426536534609121249929101651215148974736565524056551424752737247906163406768235014826801974272284157355646935023118853678461190818203285586935964856965350103885897195904602063426573183497304711205701322609687377555371148847557188194223278009726562216111378782752075351969693984880899000962728566219348648932553990270582181276277339059669071070434450943652521461532997260706062951941704762660888855336481307474440005527040769317936999201749335575898196272865518176946144290460649590408135311966981435019539235617581502738756729847275682462694854956443335308560770566526793439109483035151084089623948118810165543008245463321937174602369971322684121993356857471868430792216686155547260387003748549276942160462267245184816001806832474368743998881263141299857165613905785305162932522887122579235265276153985491792618463643839384649349710011958811796332702651151827634574747793148166905389573692446442805466267737746143144750061015305023901160505027385689932851248402650752038275447485723320577819002357863729035359153641335556360140330469611347909605199434006331803470882668662414187074237581404517455915041849379625629222071912184267820998655166839128017923434537067362114743868223967081984627076593902475603778026426990946498751812012041904426644474171160816894278551222767368475222348188204251091627620001728709046703811406285820529070603914248226961778292923570751364197324831799113774002034622771040354570298398220367188059172330068145016489984063232331611918153856186692251554270140074378491212486023585091641101039064092729692891215345983849025978610923359456758900553146882883150268124648466095141715611005660048243306817827907008821222496240257117827202659061653546292085915709017331133701094264885826045249767155814926032238324948739661962152227381995055988243119591510809981921746289285922082086123934336658780019844225812062093867216572442285814862202994775376698003619926340674048149355072922779855581870228404988422484856217866305744519859835260568886330567894820156020617472235848141286592776767388398198574985349802465237801118084514471579030758616031651422046276348684440285317697342827118587335946767688389268906980600769792003847792665113741178162816151578028442915224898688533176854440136741479439952754141626239283739806095485454237048329994456364095427391488678904118932252553587473068350554105961572232323628503779307271026887745636648376467274512442811695620754636305295091060668568940497933004647091885657347222735224016334950010458778186175546088160716070350932247443991145376256517729543192402699693171322925524962450866890815246317263375332082769766601321545487211308923920009975760278438392032433021822902932289063268404669449686822021066298356902771680960850580901617925353731617109510224695576775042418585824623530307610349374762220069235713241917120394595973471186641793960120643269771973390931822464831122623717233272130366330679706097517906316516911429354059102244220189962875238163322773133414059879234245096773656867143856217355137569411237817310678674636516596043740044712758411816551301397279211556070432987170122247598759655014185363707140165972212606040025468771118999653453475907214093087982067830456901333008408768748009469495684047492610192092001865070742505585446806490376545333994290967530012000534456292743924650154031208718238541444038826369676151968885105492543947705865684378533813308238158843557172760881086673776530047616512858069820537707855598419974087081272763027213801806944366554251250086028704713900933893761690702257106716614470700633412648912979269101822747237214897641040156481187575706580593509989615857934465534934909249822139192688996659454924239073744276709959109325112166605344622489943868721165357150598216594153531418667380682589188474617126066260322404512754926698685063690861689638665013059470545366961206354636410259251164251610756199271933764775973737660750412977714129227811365504080767706168069242323901459233001425054866648782921484930712086119004169840606151358304895494678720910070590383055312910980502360549815913391027451497486628143750256140893663962471295754562482381561095064267267758670712945071846039007018234520784918173284692447399267553607336334800282271089158653698406300633754209358834469768649035504191289005576777867283642645309591308583784529321184475831346302679866139871181869329367631063025465954498125737633369536083946705443545274945916187454802148515311698588191529144589214416452192964774353406317370921155916041674909881901108400817411407006714627002954880474429166450410291015711491443793239542516060883167999083214740703372435889337169608393896960453261061533944694744618040019670844964663963607438910139843425638753041092556887379557461938585855753293465541256678017443289916453101038925895823467938131878062643589076685768940625816709288305618746230760628319944467711803202327693851817882363208333074615094864344742495179484586034946353561548869497588065440584802913793331278180224896954015047514243592243938058734556706044557364984936764747629071372577084155866804911241881093261377013709001673297623868380065017237515834779413471339372500959755662612610413017896571715501842331849497917371388545762562990495821430107455026542497504016788070359452747147818132074739348022455648806123341525360927191013188719827933839580654277739455096137709504741070187467362082504241890569640728691722354443165745213773233584716805420023730202796675087539640539252926381072429407512586715627857392861519551622381128863495235516415516232584222498822684488062303688472318235689623393801996989813375516774990987784225227897336961982354324125708465228667539876138080854866072991421094134472025422957698816335643903660300522948369810715877154110570049863704946009854338496252881729506517552618145181192206480057654079869822759933783841860597094609342560005482127818983258879552734336736967812919105987978001124664371545010343664344985495682028736843294265579623790531973424068090593523056546814014426530771901756051778433286651161679063142065002400363453493982101861719106949473909753683798954182879685699031969949172873125162299482672291978983106219870504706931394959499421939079545681821465796619779897286515033323546288347713021104599598790574995306591019506277031801930063973072113019963254030666613799508715911026145104528463696815547393032793861016628059891875536660630454270673467719102339283527219039091208911727792964320016934089644056509759437206050500501144396993928486846800183236735887744336297992454381516842041093362860449230408444600628111259771294608094914616156975692618329005103173677242830686681418188786649344074549570353092103224646274236952485302268343695004297699841710418743904120828773650693824629604160990517222153889942329429630952405205402184411833382081574699498486415034552698486000723772780501109384221422299579978036237215657183460573199303142671128194911851833931950585906932172992440618857444447541241321679717566547838945288392170654267516658260781341015288154093570211959377902005333207081285115454901885990122742758965168886914064292761098134278225609202314525356984232990999917994122923529476321413718180635317749826335870661451818310747671335266303118025468653695160255520572325802848396179786934580356764897672687639756070312161953826893118121826270212939217401529552966323238505164967961654198260380562725373052212233695764509100319298518492802523670913254930161240264871856611178350184804843934332275253602122254402628667068091868016465549095789966274405077797864671493686969591673071209998269801035928603090198715280741459501835204721714094523480400682769575886309887259122638793465452616503399615140827639036179843452908114901446271673395219960002439550011077144233778817921998493888359843791005837350426756756064584483836560838815066062563137932037717649573599315347719875676041165772837675867515822326663013787344800329037333048838235667386432335110056265301477778936046174256603061101364970511515350351055813087291450991889589279865432349773723950977380161834637333076881973095968958425937662868030013639318330728176424852617484253171585839732369809388595501987818186757506631501443445044528633019423473960408361658713451417312049572393882498679449490423670594287926760623601867333810456500207750895891833697626818849946054618369080771163096236945592401424460560234360147202225399021623133641319742089302171233067890993450382639565854169359683537034903246103909809715963040908931507857842023522880413150361361568094127404562858665349315238452233817201172901964500877500480699723897991172587647289936127343332951831136703528578708062699273148566447005629615876152379933833125396320946616921171932306505439408148794233360215907759966309635017201786439528840147055757794412657041365156307045359185814873903396853874502857253007134739300522909515802684704641974620880028149522901784992892823327220776208242245133900729670504020369310704766906955608491586810636974418055531435028172288523006943680289646670752580145188345689979358405464656727740148401438732019454561776499328974181168287667090695735603249444299430522496515246775425094198926079058116481990290257039527789481455363935968796382937523713124310817118684897857442198246192479722202691479751808546280146482924505034489314279393996111938392702730175801545817525866255280393004782250405528894414770067228068558277780743851426273875435770485774782411352584090118471061645019446446355853939608383300823444930730421343775697190440921247278655939097716261452347041300251801620080998078805071189411014707779686055983614016624496729656918906898976131059197834314546593131625990340015427154799624082208079320598159069959318260684318430488392863884924839142107702281671377065509591280255345412247007535780608409000460017215226160243448411760329395025711542050970713800462069115592090396324386828310848770855137099749473316915649915726217233268310733655510747112537580285173498890985379427982934313312387645641091517695856184520474325792889049160287387706987453081799824448370171727051418119331029587406938962065265720907899142383217438749874347306080533499474982254167824629685117488242038912841557630726847148372098926288295399378414129780624003135330605955772564591416922259595396746969006234425882868205077937661656397731925499327401652133261204779018703386396504171945372835561621302988308853699059684222549885752730704347835396371769058927093252547401368361176292021657067382855735443551932000984827551051973986687094628256741311403598532111717105495654630887261693616352166638011343657177941465708009599395009396760871454866117081798216189381140578805674401794854936096890339946668177467705937275993445326667924379732811095968925746266366356071295308487750262330248437499568203818217957944318310664449169604099530275831927344392590325895980592757892175417937216681475009351266727396782665998393285455702990814443110284757971833022997826612737416927934423406728468099655906508910138930499735822035191858993802423203477707214474931764207606749178693729807923264259667316436026909651895716844226962741215858910331240480818780984055828728122625703118050789100375771795688235446367253915223369853362376890729187491447836866021700667757137514176230522716158610210466938943068026381684346203082166293169143198897848606633945895478039482716992503955990267226854302415629905984398301355383558285544141805355211138298939430121024380711677917517161001713507235904846411771539600179728904116929843634373158644550439289814537376666550392523201408883647882409734777180458668978689286676279836762131301318220475264206146368482652356401336353988891446182417976846783052701153838837319092804828742642849227861107656742902796771185435482313125091336592596046853561656906939739268459520304513278829134032129459543097100366038066094452942994758189576560467192022741481899487503850832878015848052229158434119292462140581454903018289208142427319698114354187353888838841921035987371973234648801911416527433796969170891857243091173387486951915481490392121107121780716053379212500528078815918856360906326508079247216048639523542245088219790620469176785897689025383152033656718761067622378314128685888499025666117489621422318717490779165926199223506308352116646294472309063620463132468287571308176875871388515344251590458043377610886615680717494525921644522994575149758713883739243373101779657063852972819683983463473482968027269731269357625515824958117193746893952286989884983072821278125833038225126304163019039490707728921147438375464497277788302828113412567582740289001788618389577960448377917228873350963436129811436136310947051433247725742573876195394376626105992513970830184568050622839296067440898801589366901183877232587743752251984425060326525958570696976290914386238514339984141310969646627490430480925931236424907180127306970357561394137698885219133832229781322674955242568137837872446498259074585570639918899948750632914999281819251427958366864397355056307514355828526767533370809820729706668890808283233734102775918571131395252797515489597759239652631071659197142672658100691581994148093810557316124193659484499126034081849579196550692038096110898179737523580609584544704852968116145681040945720340764727497767640940173440562260898825748278379569648718076934495786434711647498270855234518105766846890054862809505012819727401704870782705119655690403201813999473651515160639544196852012509342211076685168776899562524083681148567851185644182511168764501225136180747611006150687441648716028092475444444676319781933511582761881194099407905491727663217102950946340606571663210059778950541742649155763381194682537123790610008738483979413259632640952400565944487024020265560388225002891021526070692540513487051185619803781192496093962420676595392442753652685223632823981585968106482910562300692198190014868397327134724034224325440055396919633548264160415601328960479000414300026009611885220835962968745610817496166033964543952859709307492345391726111613594643500284198152752549269497972078274912667351480864669655929946084835409099870438019399487399946410007581718048094669217666706735686355389347729743670180064676926637806858045312036612598035181148936240097310233306360226857075831757872730119465511124107137395981420218848402892749022827533905450080987084265956770027809373476140430613729379371669429608494505780371796664500305480594455334568886446934436096861692307055506813386184680136799452010790418369616012381450189307567696060189551016029627725255725174986669257084633587759567299345243629945696674297186499006525185449423853133714935587767391505431203616483544409940334885422386965526305889705153694132927910788852111829159294835415137861363694516452947133267948895985930707937274209144523112396304092573479839569675249976448422900093984263178515899721774946554812703005738550345440603783990064841747593292027889151534160781306112695204286392596511012393084479347180090282344553975804110865731350452365270140122259540409757668949047206235949547706634429897053363369361157509541483846115760304383764854630810388206286054196100341474261516807580064170941325762683636215566065547926015337970170817473719391658081258878936239457556496198722391296723745016967205561342616500473175261289480799209858083685017041744748363763269132225646948281921750812731284190873766121406781044076292444062832147119776523578280894221834146196479693584713703043304459045132316281734936037029875373616640547885242504655937247163700140902400647727757127420860095889783736977037634282044822348780155952563299953703985663627079100774640809167453581505329377358880544424135854506456161497068048869407003202491662165402154866692615265566948388737645273134971981894494942713158773989581394316532240044498101788794978436384497348107036801974327292541286985809244641268717558597722734909664283506546967945564711305921479664919540334664984325297135623738083613605879897629539728928965689333585068125381968540439641118045911627301746572567115193600131783785232998428535404212692317278470969809247959323354278495162613128904661093492844098245889268395618028195249896155168763469437787225493055579502621695524813187501061092060950668330478733156479281546068223886949563516178617318950459574703003835626204572392229330286574986656844569388428024874465416009886098909868102559906297586455749775318751143993148028178699039347078590041450706279002254173346873325299100057992613341138925063443321196968335541261299533788092962388175995965107518825192624372170646943333770874332016610592662164989761397138445444834511081328884385356662519195312411149401738691484588247666494203166733956241634398154472644182671053530863852938935491280174790549188245318443657431916286772877357050804321018375089426170846133346793714873448230796400668977902325930727879966813191011964391218324944646752019285313093739720299904173859029096813738080048007131245451647818387711239761042525771894333827574212299799447703982043039818901791677365909938011390395875277837209855479966800514781901567149440465892420362258062545501104832378340898186635196940093382642430134166284187648035823366086599839129006312160308741529456858757281805676743167365859138854886359495442515941715922950309168026817850032602516795461540921464096363971894175672334811401102158723348424499815572887688634788010916918155504263230301681070559571700883825360795193261173015952741862791215607978322613079096614343960468485541656030357049526368944752447557851162555205287212560067277598016444067010160914087861997828214062658142608105909022814556455141822188652879973664309389104788910197608184142179102380413147720407342293043705531811156520555510596764773458631179264481951427568102999424608272885538292306846056977707393932103484980472352081267928119913413907953249090918968044318127788054504100562890132428164680176271332112872076798515528115841837190322079607927738965110960941847716812594414003422014008738555544777870183688408797886097042813886508478857122116766323639098967907337700655051643898609483162680519698407692318798917118538385218737558636297805209934134705382456029212819215565592926824067806750024578012499988322690396507271401602255880920813424435793138422866343773704352515783099275362624460377838448856343902393090649915700313024583902994063568402906826568788886609052459216938165054914933580256034216104237936378269873237141238310569104086915975063330323885618377892740643525079483557890316037091714833670710029459326811963794323954051601977909382652023637054980215429529071574009827600275771019429776878742834243757393754130010900832662386361798122107384478831127091342478690338173088655128757434860063405970070450577464031247535511733619977721445905590831226201884209303535813879107754920581555582379849929287303697488086731974831828813956522983857239079713608430274523077141621362620786789325243122725736935754870546683597783893710362700647470432719893466988013611695281990163694356792630534908551124145242376159013422760108783506517404603733856066403558033142152739436348575917824595182229761159353380801694193033515868753018549882281175575239373138846498604708108950077175549453065507632725324407108316437431463517449985922622233765143589781046953825778229014636281252885066165974030186596850673533718559276357838819846363267515824424967187583210797792463380274094172066224825008781441997890196265402741759714512398263933189270651111702444161152823481479998611060244797468464812353872503019685569957125148167054162155691941131100354561257648526196083207486301488223235070197208595438255241960532790737386582476314893610132350438965849212175451300759178053416291310015792246858759259441773414889723385540479213392629297681925278464347461246258502817428186163594790566902702320041545842011957130073999310614514171226370409270684987516983967598333012648002214906997938423217952591724634890992964795817471076354951313484120234853979532102189396099874551121916227212789294464623036921448174344192666845403275415480552203035434110699005282078270146944285570094179244045383585294425504226662162675951191786077670528125039989047457197123707764681628495907680927182488077936963081036908280175323095523320443663734260273957626333754450673874168855936481448921057301114227235441722427206513337840788434231873900727785670526193734911254055644367256404992684526971266614841455856273807090656210884841202863222950938894027773514053958309622105720231243988988172755676441947628102218174561291579354632048445511964244652035297485548749136567413801696463776755555985535752529670428659238871232944709120004023044265732997009025371429094950043708888271034271448385230370436020752311218764005100185776207569655838058289585258858847534308211486583025037135461460243329747677946552726475192297772592027487275637832212030194344445580633032008383836248531745893461434423014443141377314920297415532599402515798387031438635950973158534627726808403677222963516905047259579786352031546172778724061312275630703785976629999560730288741865006006433455580401137034483614297458556338302653342591776970415949458095588224292636764299290551272219096630422495954954950439189060791747573586090003841796896764840316507871876409838216008888008181459558100901886940429079235218674526832323008067658909053550826606525899058443465288712469136531202493852874790794581935319972999693004700773508998894851195225509320936976378543106853606450761381962959380657306897666573308327098787904995328390063417391820072058981415165534497272456672147278073979666851680868547864518405787753207381650932248278347470340351767479438229852959858367660089200560239477829275565169618768636065626754839659008285728477684828264919417942876241108151401719019685573740126182841825558003843995597487847536870072864312532148716310785028592213658752350681842037737348388293902119728810984260383275633477093110903375069128203844531566299859742067255253385691471948736924384200379106963575675026016697314699114233896774960236275776946855145876828160651051363294788578669411269985439891630809417782970713747116240848087550622516361904850530080388579929175163887353948363795648765772909095536847032800147784868359947734435918080900138040227741710708443503405847175185809890670293049337023057805907835576994746899853462923742950895864307854921305846949574017624255582353941516773609709668265722593719491660378646794792560128921275426716617869743950357522719977487291642390444796234243824301407643779970570030899026033762825157756926637243094063610985322602631795203148432364045908313991092599611363084250449590023536200223571099975572257397288881625805532447562767650194763993952474675920198915650402362381813494228723082186094167604131570899423385928124072048575686587650377899000349915612661091351098983845082104033367669204764727230686462357460700920274955533986883596251308041586593303785017893927614327778480230969591123649791749620441864557724595497450399178679626645693589376479041965767386582474203764022159778828797398311795413479925951080683406415854934955149725645000907180377269524977860750991710864802105354974517230308790916712126723509865324651693133446039012646478746114278586013896843811291942792254151421898121532882151943466284470416616274139767242121210421047138549053748647947940723773422506795607346343977196504047270750470269069348621151015806410604962901933185733252709317493420142030196576368981275231377255339975403382881960147990986204220211022240242148451713916861915896968004387628325001587391233998643334120774038732952589843150532653435965238678998695004812505827056529642881829142702421359834550399685129090255752517314500076730288935466291956552009205805627053678962225742855617128370587054889160000597359999591608149677623860745436253977756047806998452830364588535184897168015892146514223923704399322761647453781126330267866174932444286362167162276422579241791730239372851807819447830052639340335906182996575622748167460849114594365693840594821328547851203355480506343863067269573433278369261547040391208732671454299397495976256343916396319025777305520188758665743474438924952564581877054348596920482928768013812773349251242910171209918442556388222796590153457001351987457289963330626118854520520407530926472310713961183415178961193080691699687642624271331060720862820389104686224529796167535867534568222932860640490919075005922529791836236469133445407158549294299693397350271158596056424859820425278760330644036357771849705834246662826649088432062568202412392102544899084513620197447074619893371530763292686210874104344080823045172011881854907678276189780252980053195808408125906676682034498241573588902630860134773258988051566056967742696117228456158273252196659373899491060988451972989667556071644466110328896371167314130114123677367824708406094418339944602648804241338220874250419785810567537828159428912851779355311277782290493745075622359031128462655472107727483788787999292422672887809491846906731735039424847619682707605776744563565979451993329799632491350825810559245829391460473861349901019554249416651550207320330769805115744714727005577729831231647762154114822176303366526764935105319545229108868152041151709191924951221068156232067223974371993639852270625204802775568397382060545447195969330089716275631768283973030231894480439095175958879804206009712609243852090933112519193325625337583533301994239015189756569434671375481953692219709910598037995091443133622940155695835007353389201801726255499588403679298398637378605853024694762710891792673565570398920523980184712072855130171975582408526137900363880596733247771057963389765278992443560388495574618350835748469562122945790093643675646826429740203823780704652368846458423321224423474344758063539780691865856859523971477013158653852447584861419939140125031428996947627348829687864319622535308108971718844049758537830764373753418987534721506959622929858017624578014790422286669990464029373386945242191893903757347584945970234774048920835488844075948356474105304376892365374004855084874644547109627621963814692990623588407110898376896988088503921818538888999998003385902661925411446403168278557160164861265683708377171809426182542721512027432982200038578148790593740675272957562354820227013524394415585352918818219113102144196036540779639350538394712181724959283940749476746983805909478016685669043609055161416608924059914458082123881726671254337592517994498381513933901361567928830048105645491918167002030827852386816103394202336814007844715331563040564423575485762122565144402955245030602327071487308899036575162152366424963665509659002429193690384030433076423002557873844202588123332196027074397746901603329382660183030177505976636750763004421727479993906199095192488425011358741914894906431673648720694099682593180534372219230879600996424102098702270235315801190176680631264938986831160232272767714710780009877900673159438422429580798746894774297272522982108623573339613775354815375586563232588110194664828596465150668320040782650644275282229872163767608691107358375019423413167188453092378156819537153854518830813335816727312411602147579649922364266155873474034347858299195386052974946296281402769075760027829353527365623933119623286977746985967718920789147481493706385433883952218393166137172057379943758343709567222920549865026245407159179943465650638070503272478621487609672820582823266363738981970074640895629550583630629368160652779582441523832889100305343008991882319144784068741236413022303854842404395419559299200937198598603878260886108970759825552158966839301224226743785912242534451280685698647939761743269729861344394620601803187448297033787508019632283466287268835409346271718080671835245332970617477347012273203543401948777592573754022875908123537865330335731528896343324986279459491581032715401141147151076535645479595211968096107304206033549039547045127253054610521710271044798700567378186179946182023705403496562931881835664516145771922052163845001708720604391589398909523863670021153193373707054174547047865867182258731257868261537586446647989982746040588575273284034198730402863713373573809864376351339113946399148194660732787724243579136326186558756173592416419515595132415832735895578847792996828974205332388884818673695293660445658405658002642262706072538544345718742352527497673948443250203261866134403809674710015707181125860120031210350931126719018250934227892044930767451827533751761013352527400848523494321108784963505604276810928645933139079795279892890136926427535029339178180204789735732044688754838706577051982785026352412529982081741931630553082926239449470940995339498794754264724643761256501148088704379301972429278405289940028261280718781858439726529597926454415468947004051976997815008733780960884274535210803003739003362929100158587643496794151604048294847873174991566630608800570391497921139553988313436944186157826291832281076141615161397649869777154090387251538960784782061066669730913074740017504903547773880872235623056942200162352599524892601087052762838321385773583008104983170005381926469814255668724235445238893912995760061104643956527035859810880837175499010714773896559865095718633053376730338605305163171651432986857425580172934843986198224781681520253014194780018192799032795747149584639285010323339689334749952604266508331544594941664024323521033855128956752990375712949498394574222505785464731488111251168962634183596141339905900585865978927652105302936718679279509720659388117281378500087132473092619058089431573358667922860849666204067214845476638827520275576599104058299385740223659073266750164772625887414522425355234582429788538009718783114157260378045396662098614009995172248531972393526928442330542360699295550670334801573076317462839529642235975857330054729692093322476169995576554258971346749179613043600411058196405916942435744153888641441236026962843110699043407811107808450223625525457021728807512318310027155278216632915068188202658545265688569727302662891267770120777853548215049521606731868175746190205898708874435069063343616268954569828887110056320906736849810507681200166341570389834541199958834205007692582261405903813845745729971842554488789445920201004128081211699403824786205872409267435493881926720211009302751007544034293051774817909296374029747595458185148725163417769761116999024365389620424638181227349708943185669711866891101993068963101014832439178705325757361243546711783940592758437550734097754426704956901427642322414643079575749155129006297712613108875962037030304928641649348557541896017388148386511644204956053020326806223953063892443152247414060358471027751343944387620188871859070719503824385479024539218757093031786733556684170676410988743045463373016850662709298887367438449634733952665694644588664924579901987096719427393991997640786330253285371715837250723022873198008250741015976091021540724267527271196325073966600316946125688219226136277600771335676016453164806131920782910446511824298206647363496427088192374064760385819680184925816796662656449089308347278977640608316781429009363579875207113207360977396001531309501178226356586991052315770322895075196215427615161580776315319650652972366994780987083180542401509883568904521812745381988014853492980154269308325280524967670031999760064661979311917451824869618368011747494340238521741886958949006205007948263869088003978966963950174950047703683408363811673119987412165815910157097013871267760567651483412992612950766845301629755316790952947531346756413652527438686105405456815159088258986846871695920627346208380587779376216422255065163120943903257714036106483572090577490876049602109264097487127459299925502725434658949765779974086212017269412566589207094316123558715617289503676046937982069915052969372827591300639289865642951805500606070815366062952302430716666093976828114393509752756625637641232775321580646934490774764813348211678647960473176493974105671523086141314626430489770459888757516963557292976778551186380773837964274418884652719830096666442703969527769511358381747987311823796996275615746873233591274118536866673872272691264693404628260127473016813932672802441769447801701972453308887823703951364949841457448560056502639558532692249554477814897812842540085859850336238606190409841233239466808966062484385722708474872092889206329027600852330080919143108183195319341033770153349648501380695741293733936187346566462524035454598576080008921792540284648835537481584103830734152747918661008593662164321657028804152471002723515250314805452037124133142353713996196321449183151306288420233913348712891008592444927357941117526426524017363784930121738375079922226056004190342007686999852990089554350782204663759109813252278697062992381115301797555672436819382411664565413126559326067504039581651810620731878919065920724025479129800017752587175892534877422612887458976960677521435258693800415835589773400888046961997703162849322964137791990990696055803372086944257994157913638445716659168782072324893859227661541890502242465861308829326089264165283636171317089875170230019810342156026774550910999533334509471592064040594695073634163112135588091305918652204469156493515030061422584317372351573903061710685395593100238884255333100264734363264459992581962231045002758567322416042470752689461064607621016040203806687216826978722608581386720312888774418079627637557916759156755960023143586624225490856710373618111476397527091009966104019406753659470801475902839094943547188368334298815944385296752300582650396011567640211504263463004359026765397876118655354781325205160790337783591699644767739131181884720569996151154855832296201971822211093593241929673834724383415445460006667568885434722918827429204590901061616185823272839160258574835439555679720604590510596832451983488892567698701599290782981215198705546336597145308264466380376965377919597478248370898737719733524504569137568942315751067384845531058223192236778117023557616532617606728803191796053903526062960301251395838125149846166096122928863790806774595860785199224981839449612587095732164853559320408663806105706016843218376512985183501196865965717788570315079817873308137679990074586555383573005857820345023501135054743678759873751258504440305914888665648909998437774650815127424713653699476205406146419839036265555940879635868342810947681627854685073980856040966446844062377790608552135755835336400016499350732844217011248078614036902952328750777734442674203428030021851250000508039145481949453154084221432647699626502876419567888401449689027829436768479392475412574975894188482066277542284545607769333366377408150621899584678219000304483112407116385923611377159776116038858609446004425389123091550467922153452803470992596860530625594074004910594646610181344354221628004224661914801638483374767354449420509450439439007077678663794756985715907040075922196355267472569276836674926708116059419737643107907205945172111608477980513622202555621165384494347558923697863071901671012788401057654810760454063331405096512679537141458826994705148008572112620416666638263036058428796460140081842385311802876020006676516530935907215419924417828749584375946726387587984709961033886647678214372859903332636808426315025536566730724938216746152798489226375755929182156248222235706581929432071903966438475205903583153223988533869320878463815800413886736163124911864037258652526261328432762473931510643999750544602172594178459920833684790052879221347715629244205061694392242102044220812172891894149011378216858871941004777106657767398642192291255824325082361966430348072157703169526929660406656985202708318521932174781209721959977856630500577104236000451837441294866834336204202942912956989854729866730233153869342735428964299955771102817464241963989847174245679232238907726667180326615995121080111068127444685090825116958360670109585055346254567663253508127214268679516296992629756485898695163137116544183441880605195573391658556639755008047249461496641132949379794529950985498369901646909408675841014453097299577077543354729348796954993243451518651957483729810178175634934947789102285702659716380966056559164732578781399855333769807089220397655470248673069812810577800258643568733933831209699275501212086187821429198713832824916061074648058216675394015365171766653690155936843577829332236652852774795272916831150628270681121746902549593894936007099164382516703423217726648733256198747929284565669436719633069400607556365671026344636070710579517995932006762897546324317231379537500481700645763525178153627100713562036746673606782016417834553958883226516570950131115824438547278254477295207883922030599424744910681603444151731248726947764398901604477345796982029153175157799538716460288928766340934982188597210824664278218063567130100186189977509766724734005262166328093138768396891381570137465525730491597281482464288024007102773275510003627434330252782736676584837142776949145774573809233154293261218514216769197614309248614500714968526967314071503285453042103725239255055625469209510624762269692046108861935291029081589964611848094383321760685613543775306549275685541730726905235649524792212912000920406693968975819068763824421367302764626631393318662181470044192454477625321285414438983563469779252773581159100869626544738113968123908651651619513735640131580950616109659757716098003499937700772579302001400787866499723082436212187131781683710275049532483309534737001433041453361433626595375049902722414350970008927585225681119356829811141880941048668046494519853730951908854411310409423859406362944511173180560606005482694673876113579994766983896243180934182599378110568259727299411360409507095015540898423925816632293355334023747296870022451009784625989140335188045764408869160209957312353413018696167278027082096434260847002423930523989368594988512771856425043473567239143292990283403140531375312052732620928738451148489127294617886182109785911248710719510633957133772808265505012866148381490212990862021959175894224350580893340194628107136424017548454263759124137939849579593211309807385736741503787894822524708794543560603835728676912681563046198452807984349810174375277841459889205854292818477608006027062766094343267560932445013520904182290753282823698898166606323727296369522853598614193520338284406844772686723673184758587787574262709811736915893464666881263003620543322556319486753032538170633173020016150407147213614446814010309459963558699936759162960617672603605968073232151747703386773946948027825008280298806154131380042973889457471969116924385871755074554855291903784160588043475129073326469917163285731739076358363024484733641746473526682038653064573695528322373679761282173877834425081542262253894132279269146259748392321832229455839640837859070252499062520670664721534483252622312810925039065355592892173277774538119735336603016890685453536255532808564849831290770692906873682613747003261021062084391127051432206097886853866411521794971671606775056619285796619931862560485623605969681917062201995747361917082390980115441842358992621102769225213280240931132459760864469049306535773731018295936974256688363681315155657749549212856380576311805753965152572350833115701337908373909403523534257750092436401417350342823753586641913575958249540084703398445262804097916341240928094278333005948013319146705347105616916240954986536062923394151891201104985910468308785999004081100307755469258826088924486266274416338409191114375545004821438601856985631340625248588723408805074258711875611899934190647686732326992374737331043675468644326284553682497948422888100027626604995325558604492007529487282537898223991417675496752151275902610642375317628553376863620480681997557048766320856519678764948674821240465317754569682195627239730317907991537173650085673622173031881857288544277715345957930227770376051367990369358745998179951431668048529879827621842180411012735714553773744336849541623151094070873219454573553433611894492371097051124877252832417534774601808915301063909556571997594412996119829550152984035124474727060276997078371297957257965109931155691621724326648425727499633528516958432880835582981454084721097067855900520723121989627694112281909830665532472771089202330225159925908143586143043899704281372410867002380850579959188585667511514773639937568621919068596325757853884845283327718792990593763542442608328890750332445166630524611816914954150970658894697127352265324674806363514267018509861244840815878968537839040835861429624945751634873821730738053642860529069306283197738587665872706374874766168508999545459443805379466753273492613649068024087261610662309307432912586546867879562201960852505683697625129419444480997977860155357627788615597360126718329492292642216763730015566242594287373313537073870318908751465809779357112680627199767353766696503250909575381929978079278179834840270227897814539758699509889427396792646229000851801571396278853608813533088809645182198993326681096952445121291879532856944521273727133321438568894627328395538212923416294166907929923236155881715352461620875256099870676408089320447036015329344787814125312551336835040141128976646076267832549266413615699701724962444139074096827922056022336714611237679125894552880831256198787231280644066742909013712963644577224412690030638733230134774666235301868406429967392937682697511126323513864582211695400359033563255228277375873131304964503828631200191953831340048525285910141988797196352293713114645625254518870025896102304353273788993873561899932741112166308320503041893175398171798849132848283056051406563003592468703104980554580268460079115488715974836357716703490658479643245919057300046718813009155682804156477702521840808103581507453100302357928504125230571848468113555469683913840463410849750510837332500370001958233142374113279881805352763442422830513134138586902681062496681447442686563991486677608978700309356433057077540030941194054526714877688766467577346601217918393905480661226882031777076989610690079318983673913231861572849933264799821288894499652020400383968542411268349964820331923219352578455926578404791344440868486743979177474474208846842044797727439930816972309134684498673445632785762885502225370628440855596548648880940185642826291230266426667409661483042052378876075644917324145147982035962531219879314162307823610597759550465998277538325605104600371503880171989026252696668970252409818236869101798482353543940918580918116106538170630204797120547559773330370495035580920584449872368054007471741446653388915760582055334595610892730886791840643420177493459589412178833350598924013167025400727260318246806578435936488371207321704989525831989006048370097817882145222471240600560412374171114081316297878001322542753224462677025448331848420426673627667050158295935865449926641777164068757276304461681639249658603975347510042048732253957821791285493114730557444018153474655037403559890552978762381691730283283178936884217439514278246493180207118026504944949237018326114589067472910807377233431596775064057472365633203229932727135123108267821474757592225897911683176323649758900901770107289681762293630028691813938220787159276211009354480757747767309789887727005871455595059892385600225604796021712204383572442681315951726984048580440831805357936679640367725217500760159353726452068769240830011166446396215980616102696321547968964315794224785320486964493942968097879630283172988313189627504424754585960534648674090784124836759648455255599604439854425778906963033755859601253085186654964322695041688088526217131261095315197822696182323892035771524088251281764223370947555800035695422248252853366532638829890245108378702947629157460021643597913819899691701053523708784887055084374021584033920968948578222068165452487144378314280777445727896088086245164004499343801302809499272004841552212027739007191675849644835394707222721885515880041010273644241599005586427057597379294695682746608259896569411083252735493165769041519531443282540848823178634108856705437616150336613795583478541872386664576650694537779976156899624207920888873731287080884786970116558599538429492552525318443257662157747266163802196568474256187985536173119968543411930506983327284535896543599787427921068960024917541822712111307673464615583746684260799274286036458913464644672651028498640325241279635241551266733299058983328941566864215472144898207660987581686529671227211485071672243136815977289943424776718869196900726702181888862103286120210786710913473808128292974863086931266216007356371824859749547793637524774522732085241626670202855168473656947483664867018055917134669158461196871720786456486344852419185866153172666195026265020007941340814811411240860048209214092284769151248384305982696999476959024262140003403139096139296000541762760767284112551403284742798747425514028978278126231331736600501670525977109390338355736389387546198379870639189944293881499195124319542310749555414143126426277448734593342243419382792006193487964621984688913652077808751913649970788542645082041005122585252369628530398125139209925995908556268675406491094534510609685053502286695472380975053007289898755091060390530981068865767730950129510102280951031477062813716401792387904010523060386088534471990665771220805650240006351041674110305298263959188331403942272539616048912887942920715844563435768433674189398462289929819529190579535781802817098600846420880847167978235144945996992901978053398790573909908928445292687721011147673665224516473562562220957748596219236616992050073371739452744205104721969941177573251740108566836419312388634209822429320064402001281935661014471866148195209026326351445721586357989928399919071688658127848325188205506348895120444897436649130440865733858298773047783977180651465404047602920515243474530474770605548678755249417792672578469221149579038729003512404068373456756296606484137146720775030365923624688278571005122124277913789164134995611692699791995956900511019303038131576742975006556925335150457612455631065199455097259306428210991647458970782858562766385424285652799350916209601447374296296675809781908688589925082114668148258179199031181821598215710543058910162964874050641478112302769204851983180848264679398299578250379384437454308520141830024843143187229286576422493057048010274227538072028679836058239354400307144272300513939021618041492751783008747141520153615654128891972556759140561929342785632791564967092321318028064674161807545389942921252716599153316978669078107982801993587529508186000388522004203945021932542177007386345283135184094826811912528692135007441542598821592963186177898182741967580137582378936194525267210118355981524610169636712220121226978132603992632712162147455351387153872494793174064057562736377826166984550338658607268628498913050188864171149715084548475822677790449555876428619127715964333434914670311106400647585248347740739452832489533210633608499357640150005194323148835534952565901668645462673542538201000798044211776369187693167907755284280165948364483568920799666553285431588716545184010705039795368585901953031712596053212777740748654906973503321085111627325284108640169525703556624020061385928001125441805765430790182053534566636919199130455606745194473509963706563378253927274596594112809571351400426603595002253317072536909921114800356958983085057915841532753176574353805132051933523752414640275722371502066139134904645488082150239067369970032530032866092371529764309064066481185434081652602197512343494964269881732619179732925971666596375113109672661510037876741441268991842834287260551368039063044460950883132798304464787441727345003356461809707188827167891384714348655808526969127512444522946348637557536199015169715872314529406640957007654482621331403653428814467239141889738404605578856372079545560692470283643129292613862641776628648135803196355022406031117847664605408340385408819414572078853945413542526067502354137859518109313378194793760259510406034158308539169382542699613697009864252125028460397364616641816197534221930847726284580199854788253452545816778695373859858045654391745571302952164818553935492121006396975742386429224944812699085842864389572074787810627257538887111540374321364713582258547800185470859022935243472035422597951543669029197263898582401830537784763618262257995487696518146306138416988211782869311047902945367874457788737604491286556570597338172471109912094050640059067189976744652287130338650806869284277943338130903682398200383356436047785386726371904120310228456779178274605040404341997775110683367295308955549852761948235889504267307089906591071739647570920313827556181964537503698515364532751340804738836727656672435145852235999689252401174476313674486902876463360854729994605339221722942551113547376503994074249985551324138265524468951905297043658617766797379651223099313029432043072932716860481635746076021517797514581441053553928353393893714288380582563075542611852115187263532486707670960675311262622865837290054723644536958270416667555406049316672004180026097694021174938599107406083245917894122469277454241330020079862456304959967143255259927139891183509521330312909796337570617252892571082285138715651768924661719679899847422665732508139713138353218359354420004511424854686009858520179845919083997439246298688478149909798953463613826334929409678512374626519431991249582393043045340893055944812547002814787286916774998889140150473423970813493178813083795235247990680188835343801716736705426743480309909625313371371572002046993514666859086213645242233482094997731107564975024377890467303197918481017589429023904007076942713112072035959743498928597582800807808055599168279709407937396319355745436160543688100077380858640727316077370038237000976395240233795491941889977847475173044827369502556550366907641351849202023182527192502184768892469914452532337225260774247319902428043806226784882360529442220715676312792629323196421609248477219014492877094103426410330321841670384418059310570677532339477999721707491469505715985261023135644064337746101061808060533361414300750093274170679888352375152778002783155060000016221012241786495278866003077461109539451307976496183785429521900841263162839159449240929466830769330059322133738620102788485501956863761573316667046878190386716072338052527697040673061917689897603527293675803584234245069364574050072010083456737093850486060277367167574714349958931601658474702169329537825671250551799822668356564285680454505564196036812406237888823954459559267575813368571297391857175092642794709783620073945305854275702687102994211141705618670418964513008805683803072813815199598619212267984454730201310862813847225684148407351011618199056267104743583993754700478961544930994952181283784993298299588390263974846569446996337528991428271931086243229491247032259364661818318051031195997608546388380481997558897644060454038172649238319922684171338101881707022848359755154883089954548446003007474570480222308113283377922064506778763177543920667831719077394480220745462432210184449472320536936664739728382371121109944706174005445845116196180494905449739482817212319188120226531498699170720770898990913713055074323895500154013953893565341893412828951552268422105641937790233733737433348371407457424450375625183835533655992892065734823895233651885510943589139932058336723845714072803288802532348409544881244775233931602527061796861362712366561839368894840172965443051169372869622239385799725467240126564810110934490473126272108749822632817417983910424259775273619224531826923494735139304976306493249969510595162583513530213424332162465419098894728764774940705155577188511613005688228624290471176771954453623924240527306442971652303980160149265204325326557320821405935719779633757516530005111349216464840354430443430090985923111177936592717827046702499340299218892418226700203947432335062538157622882768263974098563312182497257957264945731536844205359611050547199616961010589167406179593633879429600151164999199711187384365956854255173588314724622264102580987283133959606042223854816012192280185525650587413609995479330809862763126240909711839598590387315771419019262542101700597653117970405577262908557878009467097731250959375658339713577126520342459388034842430330853606383469530189765066066084579194249353906000917241622278071840834465412299559416729748101367012820168748818839152637879687877917703373955487522561808295465749686131556090404294370879511232799254935318741853213543865652752658363958722185455070341079965590026457985708829782291884934325230533690499166478751172236531489806139289987752378581752164411097539820260886298060300325207366205645922875931713048995406123750125550109189996870527946683927679499831193812383183521398256489063949391749297671936953356698346577654789546868654193015323966386077215692203404902192192358921231409235546576308233854824747399906374141505611031248038685277694836054593076755934425774351641136451002412079529089056362150177228585985505823533597298985849590507103976804136895173836328607621056758341480091905326854553271769828244336178104306307990839067143828738194562631583105237209197755950667381670222099925741265530671729701592300277562750857888752859936949846515060102875254603691833648989601146426182297973472415868349835938501878292529004412827642040229260747961517667451066929594556612039722062440713831619701551004382588575074426370102943094197417598092235840687080519091405648514141274140964011344478561180052939078027943898132644062923257344941946223699665267569816285040641613474553055445444385194201832682415377785968291928773396286882765869376545832752570613213692312259731821059861625486653486162807012905752624838675160463736169104949397453743499257686043495296223107074651316435144318274406203649575032717515690913461348855709705158368828110736319186612032057571436103591754270730385645071744813704175701334282541575220714950800903730962060654206928672813452256549113431942765820106255146307439410906258426109697148787162745887572849703986788064228373516465458775892092660345172423141948740845782637711373808640831775513740323719448546648989019843662285991433433246051638940617053530583534230400570392787763123334055497234217449642784889046450187603213564336631022135199466308558659557148295150283568233373364871389126409040731194629484868825024302809462008860874632216186274964552853703455225186972006486050890505817300050594326643657563358273497562794594478292921653832952488331380685656616097491956310787776326435404929550138968211537352559500528167592244538359390647178900489901667929962844153629589297539636432923142650583582854385931379733338864791882958381537292889931976369098354482129559562555362439576561350662085311835322112153012087044245355921510086421756510648764984217536112415463576607781731470334311790192192157412055912928594424752954705140081791698040286987304540686209039512100376804384239296925664514747951557756059555351525300051678414350212450642399421063848766272769312339858416133024396350787962752254653567561941102595397119191353087225323740118510237685119005995311313717336382301287207102956367683800583965307285615714467231420566402956182376111380456585962632456286723937006272622560766515916000212013365629784106846671481128191871735788828326424526048590230087730755304154830721915037042856605895611986472767814863948401412211598409936204051331269021051584137765904355831169356631399014709764125085429825405917174630095045193952141163722143173035058377288554478784754725744530142972345939634698970463540823034548003470624669093987523068998878489168396626230004162833961097092083041303705605437994718650476823640854854143198433450514347085978562196748485144565754226983767752214259178693781728945792145624409803697319566626127256180258693557118828143955365148554522178814296343059670298262057813027542885608221166236872426962721391271227303390776275894375848647110775683736858979574599671283036799623226946877106998548737417732367913160927909831493184483137718990765197895278245446569840959975570227683121689211718686398058103408003862654864147264799243887544591127431430408893720806144876431941232246235218812407940061192029462468929506699344098482133346641457479542819443744555561291374692085522605251071121474127839025089444871552119528820773626523229467522535853326397174729765909383184388967390322284741406256929159877194572083017490196636297960919407688348847720653010201111541314307341142303057238569093379651018219474898529572362694230716489084144891305318709565006029565042277498359130504231778005270682696993938222964652030593018341857961847380834088558589643982004488553582045190905175851645978467039190978853670506720948183493533610708558483739858761182929007915594498811780448436670950258334291500206240128956322905287343897414212797021833731801878995263768027810637351764568570757266280745324975581939527411073174734543765567215594215913442501449722575806150773205111102781727429362780454862142010903808159701831683602341589040778266973365857694178264447424560554886692178416018133793620381669146300641804453967632775041112289513295537272940975172974402024139514537456729405705590490665706881580908535640091060869169796610604125683571476966674784887999820776048330816853439791236021415310562437639744756847155208168575935613904344946642823334485563159928214832580827076942837053413180104346097513674370509783884886643582814577609716646100583657996803897826753510149409114114203473223235677136199698431069792496986553606294096557958996641159490475757766388531265521477523758634971291308713779956236169553120710201913935098331021139891712578854452249472444037789294207784513972611319922857301912088868147410212117394635248142174350630040371122778396822961151182751692684553298359259058231878101554695069969417961311140431345255204665530449475442843844289706789819060824784087926974744821298662851283126469076397416270464634241940906032660655666278959078720959248391359724029785341265817472035308800311476088156489096855175146435487819845267981241560740388336335422867814457104284914117182984063861706589767395734118355260599594268210860794806255450396091180842850434255734641424942383401042261968412817529178714670462101379249427576612542082385364336052358252835915876584496292383544407616480024858576737406925766915061461841814505631649150518765865874784206555839751367808932264519502826524090239701719189894003951982643954320704202690418330197043198835166254987618208905024094191617678775716139771138269231416298641180246512562765156514085593389199707188381047893517959440667642960806498591525145497699257204527341654918005053860232108563727150729965902791260020319004767028801071240934930209968185027585444748613221279850272382350917020364052498016445395582943133678863014841965318887936774105740455759248189068988073842740562568325565938425466006781373402055900991945309683501971284518121178327461975472719482333674746044992549889310847771482529677941925205032768210139936156400945735170247305488484201762181061962628482280258333419201497008807668619795516495263855674973183076372870180404622172954839925384187085041344881320419814813857721603439065624710039475450768278973995661919907208415952559896792248897165802713134793620944904043361039492283853729790929427546069077108891971869054111312513275672374925799915675449005516341030391880887180379941818253813957968607964205671684234247267367746989803976059542579170054935646415883757965162741804594226038822049421113436307493994724440720817132886793967714525222374261316195395151231301179156485017031595449937080047558922924548042186878155316413962650372144421230636997742969796770728651928060820784650833039442457603530897431720709859645869123337411355178327261894662086141362666042808392481065251844603512352297882795367769157507382793197034754349961681698884898902554349349446420952730539059988415338313012060331453836580266104010564201052646027384224995736208497288271751994000980139302148017080780205411557844559665745145560893227109355156431197833362772634622894111189326694332456786245362334998117054728360397570271050004366498915621214996171977674565232780167771528011319983189256612570655662289888598381163836765457669029525046313748449894885630363001178101137225608475995370194167108422609744609056881025138884158267236231539685403668254019641344586097528936082091728800185825945700903480396404822585041863726173946176403256604219294316381951640901191554424099546375675241375763247774082588766479579477543971437796152728819505597193498944595368755125940044048481757689968079449293267141717170859577121500236038867664391245473768539628315917329861308591456657034494006215120939832110807056674933896942944058106358701975778099350007352104571343353766123617626450324537490929968258179066558208464670132830241617465529966405029567648141593224816501975310536804849165314078734817417191316012847372594118958428332973474354375955935526737849418311142194696607229842696182379175063496311927767497005416719382739966185918563920480179386793177285680999301430684140560241159985782089452545772407597644628892542624672249579148600909782726004464487560968788574958686379569020896038156381782224314235668118038130338050408593140424141038377557156397863760565388069493881855574991478666687975392661817022374915137511462915216357618028689739096223246009615605614913908405926414297516200445526996568184375138325300396466044022236082607857121282128971403515634011402541878180385835578037902307027487057092362426600312648689541362717693734962692284181732016377503466868403943832858631078987993540451498374772220234419280677847525936737992646597950576688612100804436190174189503249942176493362014336116469735746295243083831457925630665356051605549966414765533225384389639885886042121026481727924995776140802185429132479911322997672076304669294078837616812487037758650239120878855231700419981607671300473901930440915176435474433356356816064392547322239622748345232198476538014290933599961357865042652647404011355525066786768090585865422755491895996275929662473624293140790018022212298275221759736206139006985112303892057612012660113400587591601866422487003734622902314468978512875806591510464623208055053289471667052511511455079356092443646847985068928867949000819390736415879681776411844451614962356861902127166278608713591409036946198612883054430265614115205961700860296872197229786394477983605282745206191183663559757328879062073763383427295860798020490941392037702033290864342950868163933958830958441537513269437721054359066398880824295886939887949763577206212542057373668803479570064373265574799941168790699836664827073441492397792397071544509248868635811308646049553131594445996908944049835320933350592516420483149066529105193593362614997452489536484525331292316816929783208836325738422663702487342720830873115434479911770586435969015039091648818788857273896648812465668360344188242157928872902508306692782900608193736947215715762379941905975190609123999550157220516321699837780555687114919817331286456203292347622993938002408880724354797527472352002265532407538051637672197038988492266783269145301876831339685839397284830925538671141194583898793563295097997815263966421919623338565469864889458461329895625449152961525129377492635423741561577311311733075433073341646576239394488050558805092323687354427780072307757830464749483497922237134254498836458232137521215239678744511421061565470255077310141824581504554001777585988980803853844224869009801582455922767620608098518170711880496413797467339976149896857567833098529545188179982382598998835938932828781033209379158444952434858582910509092281766225143556215700300817598278733819081418544623946384723522731783438031435514594067959628635744072007865700445938270394009773133944956667369401220410352804928011749059678758607212366450578588540341435018136977144174316898657868231894165260551950794576177694702709007134595592922687789934549386675376089111937450529869393930786210483352340692515509311151596401242240499888017463335329655779814541079497844217662225510776941955397685334681262025955670742796615435225686080851376588966949299010544073726013711054616038357322381514115253608361350724285420982995104307525424923522143332980527803283156239492618636317846651018192226894087802809748809862848756598234834916070801015693630874112769717746568115123275243245993793746303740374926831115476457623274930897764731811667025030552516849048674372339287998941335182418930353715890813831050271957843886888688570140245937300306414241856446765108115898862478310940920435730911115912184385883359121182681940624299866125513235949342181751512758235111227419131325237135731574185882245762484220745518985340516883570605375954871916346965175441466865438153350373711767280972208007689694959333621880114092840773021770859597419931030046612133723383352981834040773735899995203408984176179265724526087239604291725651011505327293998120228575498295586793948068418001702636325012178991597047807966393806381993106104112913429065884680650782120595408142503346366784612531188650137248976566881480328825788555864820366895311194501071832037807039597727845457928609802129537401101963639422857007429597074183289440450035052383577227524820912718845915690357753722959910484513285778490239758119416752494043149106632777382433985627259720001602966214337235599717041489084058260982087448204165203145065582340631610686667342566355923323056988594683824877462757491116942040809742545728588268698839086258551318238724299372227441948485242270591937538201590260601289039863140405406883917445419696845127029096297170658894858908033925425482527154299223402688989129724600823023895619843154207773123416748537744949079676820663932239127502867797721945023658299564538933468768044343449152746400434391656334866123979816923904628363735098875734514491431788282596618250860887364940152465854238764341156052319935035132003668552748155858438754160646043149709644976924969495151108585424912836916175198619159203576632984040476376832683016086664360103107855580279912538151960065030915926118792530464577436889420205193626702658029975646373401775874583900725993172932350528137086515942786815211862555274208606618332293220823560263350511012984389642781722532543688840615132315556102374137910561896707350263822839515141499384158607359031995380836055188873680043626265120291883267667048284390535720522415949796084525674501473029877812428214995079050834509970498152516347306794637730612312471574149912358310706929764932720592589219504669997928512353692409109206396014948362820406810590235651351182213274838618401606391945186131076619265709873778590935968452484390435294697901589460623184074907601295074999894023262046036353486162528223139368434246361003590162025392391509152207580494618922840719484904915945507261082697527127770611118411440320412752977597853524673131053990121292761193288422914705417856697908142240990821900389835400113524413399177905867784006977925227687351162264232615187697556708684980563274881552425891241925305643507986584015769680241303998398040532843717384326610410505308306881742422452994551087019403781055903872430753829432819077883616157103688010878769287715548549881228932364583371234628396803903109031678258991685627499251056970792654621945465689846275317441605363204662498629010064376507529236639194231930627475357089858496016732317105071026818125273651430972241455663970747125405058633811389310959745530929928044656425783521418511968190862203081684026890293454548441093494834122572599255141581563554483738656666088615351670946121449395533669432999530564855271949238298185085838414311067172484559255206189161616147284496282703600907664780504542639298338577867476698612583486084767924722928423898812762666425491621262880685259540856185249350558893922094490064965956457649373272177041724335873684919753065161357926861818654985161483462991787443367737864051694192607423414156770167987028079997828575923674496977507756413191996985262940267365793908169904681620357712456354246897619620783710850398146736440602490538104887041222946317560277861093460684526055610087174963875964462605535322152735069157533299312126223663251169674213166566376994979082983110948424742593214874690477979888429836888318862290171475742856206704458824275664480190613622681680497331725822523332749842230937590995967595934593375868095778023865123983566997927438088949316522161750244261088695556183981018055354632166895610686269841042223701967113002132257753669543564636950292204556649457048486072459150310339414492757162160347394007629550388283797988847168880880829589388320151640878884934243020463073843571224129941050671692853532492265010187944351528123675130169184358581314185897058267508686870540883643730943226496509131834189594828774248191764949349484554905886533311184869365493752481646245662844650637047879515209729086425245060749557002306600236815722930977317836730513286971288622476389753401435221740359490688232897183977678975827748002180520481728522196318191592160047647590025859272037235474698133857377473861044825235254026416437139170525784145156435349518704448333877617234573123026865712374458594945099787545065771223185172169384117120503274380768624469695017668017411382491127008786452186696201990241523460758071260696155785971521827505970186855466528517433588835267476667871866351236476692652397188904723104338060607110419421713644608171862725966480820307265229784574005940357300306750042223704382807582762433722241460550822557808590937169547359330049547099283464332871545572295850876564239322805322011938034105720821421155784910019930871504791596599124326851401468918430981185103202668823895710988080092789534748174790200800496492680584976998392661639660763572714210136433506692432261269645329341915149417960202447314698128709467358912493408910903923209340624123310177704572675384181019469505432704157978157412594688149451456024753600048926912821493054417464481662705676251213144198109615520563440567831932936049673962818012032066157202327663402275056815086822616552204933627137068605705028802583156262520896303709282209178784986312602442010782149651054507673037662252425647070904602245390867617725270384106566092097180312272350546314065513518881600795441754560439416927523132764129758004450205098513222860124802831390054499279793891150958904770515092075581752815948811416642713618907415444396232353127358386550443065051654718554156164591451510405659122003817644346683325766670755208174795059364728424727105646806035478624171586698705673041396412211355857455827865666409369050965586855266830830383378435902191989144377486722973424119354059942777370036336146688569477357206255545964279845480727381723918222360294102854043268726527039179746355583421300309039032865152714539741908636652412992631749032433895261545047737205676355106945271387771810481155348413024173654802972195779870504566186815126990706894980889524821583004123050699452216321422627452812864368896888874345845740964756459070103383033510287598860832627345587877792896082433977036654014485708971646992717128815664117214198414876710381104928557391333840895269207609355385255486360295253341194641207534693904818351975595284253468963101810562874148850904022973190807267999878460095983590107796441045921877904600202738275680273247005381942763934013347324249302394024541938904621879670404528313485284801144375751181112711760174087116126299446955909671622717166153476069823830541663624271350676415392450121376316045212879692990290694837901609581668957665117922281835042969568598675381585617157030094154401043816294206240724810456813926667485104352083601740716235746550733924703466104606382113889477917974772356931719489124652523642482918351248605524360764310013752839486635514629374502566686142382728989064803575880266294341750495398738976627669863632629949180821889281869746728160889864503106240708162905570751721104296612081079431142073402764728879115001160792848195501139171833885842780266110817287135376164717086772063216813151641640895094669691167701275730308816262043104399453925331629870512129883119117300361115456568522603305495593551801624577405756889542751951575364629663790618181349904247081980490992299522445544259739499100040558775784723885954688243086938825928730563987005049802289582288791539964167596218480138502971035647854589180836926588407950068359785165180066927091788130609031882818630122577035931140051298194332828973781080788039089922102968761192407145607254522515146880428865909711417772930653668649294357317858650719712055872133632634129302829215550663992064609530912657755149288074034017234235932801985690000919428477350650080235597250191631840591897005338705507119621092659449150389411227092810275631727445495621993185296570528082300919932040458029636023675460913725553552832361390812662206856090212682100811068933254878824573034353265754403151862599846564980570768026682918474971385414315196722351054743083438129681778758124308819591410762531536321477377920551498128052039217419832520916594481169829559649149063502777182793509073454503013275322372031857863707717611676682529387112162856112609297780434931839485103312847028587630634001495210228601608243382269254940899788877481101766740213961294745990293901539040704390433478479346144620921123938818448971316774735090112070682822181020324025639342324477342220872960985875701874748173101951788294703603163818722920701170497329253792994793607646880368015600919905642984993632897199103706770681849692573463104624072146592234172963468445829774964142109256747173964145636919012596606940495725112723041603730055247919407743163816708856940927937358578318210383118542443598506763627583787468208787277159299689863410834350258883378872474390456583332388705492203884225057341069737352952547199010948798109198081729587257723195795471513076667727918037067375621745696125981595028582107082101198873591387665273615364683628463538574234362085120652194606796143986970092682839362232647847344432205617056854287919198415081111921148867569037567149192426270360868667560409417544987602157098552529034695797344307443960235521714808569542764705533210317362764091298472513091110824838728238554242979306898659744274640701205515678967294449336557883988356540857881411666995733032332719778406099166255403856075658617816225440349374613406167943721864115683435029926878638703845368047917687801107678737345093860321889413804909586161396420620047896512843901247583199939537446897639786164436151769133480916224861298230137199349631585357509995364640017723896101248912946354312278350185332239493898014659342223408798029997831184950812183322316874377458744464628532596562780509914898965421307398483374170247964511552244279331492383884837607909959061180864411401591756557291980416322717522721007336463239697593020328690722029316229693822999982151373951290559980141263523623717105286899053163422866864590380099571918059386478826304507663315905346286656698079429629984579862366491714526528292859847079637034077839297246876562947673500969716065558565778797433563979492172241483328457423034426358918013567110500919537123693233289138746545152534113045935483727838178867119835351987710136025247965679496689943380188333151915558238513889859670636760673686858372407010686373638966683455559233243595732339219026072085452139662467665928037429595339342456648065439876569354163285234055974307478346009576134166757064090520074541725617292051834550562999574093748267216465479620969650347356128079103516830252981808029812076358768263956094156894740910717261693945385136685259752873895795537061492181729615710157914547198606675590760311060591613695269051191599571999350215053542054428267543444005595780213325963271155678698374424527692752390634977202526147484646090768247988232051683319775549470206429920811430099083416806060212318291011997489219821229903324534598549611582189615499883900265156242515417980761445635637739685132709262072889545488206997522851887154121078676309509139078201340928998394688863069082073878280092421425798690996517179222515337598500681374589318285476990945108404918665030122987743939158404768031880954682972355336660739706020255164931678079820603288870622293469825070403189809574997042337014733986933350122885348856473414293726836353213507593570780184714477783899850268941853337544260870279717015644703860413585370683466507177538800821560947887007888640635519993673053240574822431626267329401422260790921979987282918040993102018225614427541365062801894562447250470177089130137992929620520676313485340411433327650510972197240910679792092353289648627909031952628528875667499564181068445009858195624208965708144010322648004613040433165977241174551165905560912940936204450928140328115629306803122626719548693390399402652279785488345115547635756651839938650784886587212551393859399035305783192322016719733759968582599396124286587345863966239044295809317417789536704827045697211722683139271336092368716122814911472120920850017859251504492767144181077441681021222069163101769263408020199569635122000535396085228214413322471492855208284416014646766811321249892416517781312966557320270624859210968864728933531068960318136153194323642320211602938699133988004213176895480501145931874383311272090017972629473094750830073057732668327460504475020892088360980491226580101807817603438147240898620457345884941071072533129918434191537935585105107649754162879123731759307986616436306069592906393055476396019988407280498588479093333903452857769954157334089021984128370435193725975891236927587542738764767988713383174650642278761261353140404193232506433105895612773164133316422335644989249494139331171002334470401805493102178052442541891760742104556557620629582331639327763455695448360376409738769148671756935825314325875163849257362683383121303097053102983836973505211652840598372481290423501608275985152880983504827116270336999761402187747636657855478312333301845418476629742740820643044618893191841069572868295176828500284216913615638511189841009387429877489749929390777849779241621063038616445800748702664152984320405057956310598942872692047172532100906017708171883746994202371199887973944916120950526392760012129310248389610704904167457629367357488013496023723526807852172560043718664518349899640789771925506700785990008384374993349677195437395474534992810073506484058634515358069721319605826412709147075135080131688877940788808777163000822585403132197290430762115128415990823598360811401555193780084871217275563104451382173624920750677344511560698245767041693181687112073497969289862410807230914475003657639436941015043859531273954485795724292471016439312149448020566758187981568194540095291016250692155006954464917307995003368551271404943484132900744331462331480281812050151355067007163996930218344487329031706995870377386171732263741582949112473609990164754192928621015790664735466834113779888005463431729426660570784829064252111218372454718763120323054850820919693176641711134873635411195152861377734604776254539073707189890555999892220503694293814302438609058783986122874424443550852663514744234448171222641980026793589075551447807577306839003209070952348302447881361944514994037713143476812777360185508539554792326787098007196179525246619604679509982839814930383829250458337810040806253332468624894462262704969323130240526282084931161289459592511342960500380725803453900385479972850673457791406545364768118580541060886441541996429556498702148596039186030449158909240376055615455317403569155941299674372184492985839194841132805441658447138919610918199354553838315446248400584802603014971918502476736510573260471636954309447957590437072686089433501314317374489490475356464383071380109629875912676227369404361326496964065759508581911969697195945996597262798511422604912043021324189001254153450826666756734807609887608198638401189890446591677422001485759559651758935857589485994938729154860098455318389411295321778552225210764399405125771054738466928783933167817294660529575819383791692100886735054763920764556517842767241684369299397950791352466836560548248227664389677192409601435924948253283911659845523639772768540062719005134664405528681259285870447536003559721885418922693893997170694528756891894805259103021690433281911952297098792314325624036701929235500061716537457925554565907445603092650093312882400644980795610926151763716485770130115706657535887466168142636653650944776495143763460366098573490112585588111064878155771091359554118010059092625634100921064984712196210790878690380814020823485083264665090323747232707519930983820042087688314573192534123630033383247691502375037242449747595964978074067900924935721357174874915676036551486748828013644147442096220594348332135214043400684675298167993308227054623551763010795827886240797167590143052795764656849250369114778162638838945727675250045938344180213750096822768311031855783983919725963497968199219402952751551597743286950907228990551517974582261264222713071076357434881148289614778173447152262135911243120651388177051519834001587338481837999134815615684807544782991704516788354364942206505786469029507141353740849159561237981946241058714390538262424983715738161516079701998418439800712057696095304485466993978156578051870925239508048741980406322619270245119802028980928648913629942541106309757430105001570451617027321327984086526750337865803938846935556460660237694734508773939250233473259419933190377688061687588312588188703920562685607453874852790294197065114855278350138826596960557340797359413256519028573224045706540795846088869120924758468448071203669437438263039217251395608134373859631457606156021822003600645514417254837109596892389647781595187224724815263870183897457941911162775312319227187484348128688345249156416659569373827048191211963374756084492956665893474793576164383383920255005349852800098777582568389385122563331052244352564537761714678950238031971187873539746579722911386991300331717910135574561145931086476497431892139944334202939607993871563582313371302260031847613477327391770061727901448734633490064211743450621024748241189994357940387050692112273872553492377155196037896738823806375826868556681139866230643428943103655843998083810279788305036501846335603780348866265713844235214743245226909494400785387084484941051254798835913681936791741123645705922529429586878919356212256409771383080683790101850283971908606766292475863850031166087990618974615235328617983123164737585021358959787229900182975038649805853900819054604979036271739051189579909183445354845483849075878128952147187788757011301450583681487417265145538430921186446013238691647279649209409517781286545603265652276341401656113562253487264960440407692587455414587694367357187133744532673593246184088206592504201683762198733097554890853473657540609579661760843347928482457473341884169620559519806039044262934563697054893305859861237992052574080603792659239220867839266947997004245098030207668624014881878418421441333655946354681084199064781917631255012893001379614565272263335698277829706627875767032351251771191800912328149750594024690148527262862896551039726392901237069811127443876610274429226055449332223462629760354040936444056096887843543669702763393156752520673552885865088509174771583945007523552302270647750059423803724724931050657018324433451547505339733483602598597426001236972567017544305851809858195172824543725120282780435170020634589444950694515859551987877535173642303695408103827373658724529671785961504757824884869055731336374363012034933948368136577669123393146304012460829974007419601132305201529308849809193133220948623964912377530027417630777418108949080048104702732943759485709551658776752007848029379282127258410996858194358239371495713063553856804720490556174555123502552578644596497317929563429947117657567743774076443486239622324703820574135914386689241175196454090158490401798490076146321391466510411111006555094038395909713890689505177039863266133640864070840823343683132325009232517098503159904874849682378802574516261766343030597167271381009130585751648019017447333661951402606272851982933840235234720666010907063582784241690484709336242651081769047816001087592910820213866971489814074309370770286701114121232444322309091504006971710063093538008410068486925611851413622632741327301431482191928837960732552721022994564478655343884481534480806886889517923293012850708422862691187738366654743255637437599865482664870930039560238711447276123337115818768812074442060926853749891043811576661925623145680606377686477566836083222235052207845665716177024187643012640997662106548230472310653471290196992563056031654081044627875994066344923059425154850436201467006290220212818457888285111403796273666403524638967571428786831514831725932266155835760670848640025316813260411790393794278377283550899991683897089940783431842147436459450533784184923998265181262857458959768980266131384572932897351092080090674145338886900063813072813535198203886852060066025861492389528819212310733970875204780485332306046032690858531688870587010677283386666751453844445672852835698544894361185642697940090621830183802061280124168213757284037497753035900016128161244079224165159145255217944280190165404339584741413140298014493590298741034986438108725866377831314896041711293356715765633780576394273264831046397962244487774335078790512015754657366767217696945873025391313128505121128622059411060608206000309581732706203599033863152451878934266441509857797137139277972646721750697236696988727029568385114092365785390671354770440944197563677768257677732666834275958994856452694743644014672530874236068450140649699752023631347443839525485022051655220957912287337216924078926961145121354766888295222686919546597791132311823097404552750060562901418291804422959006387032979593028645619736701632481923818419071753415194956479329704902153050968377756227707847665324635735252672631086502359461074093474489624293766175019791259067042951983351317947949665876656792687637280935578728751192622118229813765683611798867526937643307063195711935088687374636224486876143197122956680235969933125359234892122062439100148092767757968136124995128965481925523776535338448982862838682283232992570938587133063065181598772553116028195072936286784757599045510640530600179100752140808294760171966858273518788539077257807310494164788149051376821335645129778444070178428048649904597915650192207960347717543794059929986449330252461692368643425449976601848137353318732163742884876363571327206312000203472069027069865761604943930504968194824228055598552130477721038181029472317810776496534903647720670486428067818838074570904955644233854543678522611438971264779500126087741989786208979469059623449185450670120911118541066627062973324477748116155894467945047849096697966515052425712173723138525911735404179539468185730332012169669168474762922404836500804576862805680302126732025155694678090556947195209251474825747715384405525541853898807149650302384326435798939720027682059369491448448360756633025363347653830912884912075232701525009668946660819576678361447622500091103014504508362157017134316376871888768286041080070293213011995245463100884897987858211022908768875282167992756800451960343012227719847661688350400032433711775219274869812796353521211037664721060954107637734923155073730868964993525434500108507776990883890621691319901776541215608169043318563568335239891176639572162720194497658633264458469451454928893331576742158496101751135516670181166877251570096224625247887818744613148580838967136148390945394989880782703958566977509860446275325821543884340008309573070194156063011384502670155604716879719120980347882865619335397667649331679397247373660137819326068775355968817224325103973864771123923364914660712894860193073200406677379750959525359300347399053875159252373036648136268304246094929740414607322338110431165811194710303379132641183680944831762713369774391416247699781538077165781513760224948360682716987724416287813584959611072136360826234272967787183817370226560274955494097684122958422946522602869106056758895598826280528547213767520333720287355849638897914765961740426454076304601975179460387238706644889899938219602575634289535479414894530542150482788610264976317753408393004662330599748076801315216776960731187150465213659762307667498123186398805118569509268980207103847494655704640261284992699728188573680574915890183008827871678746011824699919974679316359246352895324325360439994718244522298991168391711093211008863460869319760873475420869542839957804068817170458576000786529287074320503277701232878976254446357867747940521669856132516861586791170824399310504274479396172769007318937274936548924271449731212874054782062131252790505884811694739101846943603124739829016808938045778193397826572879364982545576160390435897828305288611705919962865923169022200899984607042501613760132714744546232808251702009659831308662460794241925324741195242061329265658446006690686535195104450166240917283888973168020758754648452761707927623932593254036503268747971345547658603946477927795579241643698572177989035756815960525675481424070446100914394529828255966017310389045950775050500256242712229034183686975832537094545235930290413741584684386113318583925363237312313813387488222643629385886796472417104454206751568731260162130034794336037952374022954952070578636567245539025126808235830866530718117259485019233722164107722003329322843311727239528601835144185642236279469972556783343402647188868531422977312307756180789196280190553154328410661507172187325129561105463577410436978858282279908309597467516009275327203710466620289477220189268270091532206288982884169273109157346361058554780441824792879692181775360668556527062685722101727211978949770438501428357590137191315220773102891707871753722938058190164223150739707062845151231196458338972489547928706557844901294001609720775850212740048525057423810572723846672080518144955166404480997340403530304048539479546424577054619560051647046557324033509565413389559642763091632203354085189272448605514285818380124040471193155457721838878999411356656950017091605667967767466098688987547940544346555406215075872729868239106042213961511428275853601315332596545412092761641396560214250081378336204741372279760528762724465427204636577929777322091482217935952089464567684915056044316400202925792915783160077536975730340632554618710835781223490987353491723326927566033874036223328279455993481017114486864584938027875594830595112954023224573820614693840371995571185038220096912890120061731425328615845101068958083950246197499451480110390321455574816810862599227374555992923966847767200374037340173811449756558553859047732141805801315504043241588110115807449683618836485809449156246458202112370983006798952151588802908544450440099790158864755207622255716359231239839094207666847520076328936085539866973061586700722642454477074067488360382047015177823352929999141317796518194470854727303499149053802375268356226005725949867338605522857637400217817731299231055717247585697354380091937837497810808829901079319393961709081448698950080863327016742626747737924705773892711861071341883334287245159505951782001317478022882922978836959455915386192829634356339507602267339984759589389242104197518871706775532370869311893287731268494549570221436433282234603491416737569546022685295688332854390481078307654312673282904109114338825475722655351567839383068034857254802618716269893522862937828305099123581911056905605370225042924559429070857074094906599153633894027178862666755048288711758522301330724664082369076353505939348034021017354422271351951899612657473210590139467926827850173827027552012353488565840476440751764804974608096242314080980449503438892563890065492378418296761239761980957315665969168650680024447264067619779723857001227820706616929400250104840635427572542842436616410791699144058118490129216971106809101098132527177744621576901652592290102932881958839982824157621779396702786392235456417935756233491032519770061710399859857544527793034040919710117038637781800968538485574796246444268481943370446297375278282782569666881080132997718261384258182869053404381725594492553607276718292990150524822870985604395262484271984784560181445639233049400045932297931157940692760538830324746462098584554833973729254654917547453657886161942864142295244141721631594572365705073038826095114631125177644020657022343553166849061566887263839082738696020099168472436802807300549457835494899999398607335759111217969790888276392250224894313823164841352509643540431950447771566436037497340130804464467762594341391409547087770522210515517949267912105232737036593580226973071968514544387399450550127375797465692121666038883748068345274021759225008868925728727974804730604722843498244132109204485485917912118539491682208945472105781413524721168861566381777856819056547149496930413808881409083906684799561015489690553299156156279860879719616657290528136912858385654715081874959932416963465721207775427792961011324999687681659629754749398443280889796303748838715536830578079434868389273788478771115349205386212256837804854432180545861753097018136596467887692041942880733114963845787224533785148495304504840760463417918768665652888443845318125217237903901402971080733087929905615642863520365506532508924440183379553506555452523961098789593674368602590740051753866688353423341326548574309607193294328463342504847863172424714531608484239186756098652489749254789993106632123082519673729499127404505782381129792358876793253513528661155124538035245278566073413533107659188811937732494537927164583080137282493542437329549263074560448173174332813723576287453000663486018598010473818327711794272542977394275882017419133100775588342752488278246089794870076938529440627347631458960067803027952331601392730546172207407684011298880023924309358833751006322801091010569665802481938153715441061980421626399286806195792363530055795110320935519077818224737977932984260981000552356427594553693697299407084868847285965488009726532823266791407283033871020019084073441098116452199988244681890278990638095567181918834491643044862228510844688082456637914657978829222060843463158220843666864383211841256191238292398214814068577794644405952354249544523982473046742917247458749300527092713714354905614928196174757031177337911496158619140399207877207224496928793797127993543606201173373491698513990751126285072876053075832479821852511537855839206798634894245968845704533559830489358726590695601527954139821430975035176282766784136153960716812810643289657819661862323203451952007932815964583364310122341183448393651026418643681358785224332993355311025991893760543123695715507439958983528672508963858210302489670657477605756787392454003826156847009151833150667260295289234405277229215777542827076559802010050445758425925703334675335846147433475260234265493857489248167210414431273519913556713312654031451995067091565239640200225300530754595039604624867460004521034513008875308843739208725773124098506808916954786989420205954819653455070859146014820563065925203033729991235078607905838054089341316820182826267185394979263573139148949073186512392030738296432757978382651147975915975939917510168045281809170043271907540770099597767371969873241098078682295712930833773126167145736712907176783944634026072179141510608409854518764564515834732060445052628814641719733715706276217932825215349601946174899366693573262609366981457535210904543886611519415109859830928627228032325687662783052797897251491832984784868753700857155907434479083671648646145680334773020249747270522703173040354579689195548004937092815170888240977811515453237946039191797289541971206994067670746211392449176473098846432126757718184531976802068439725752455767031199034876990111889065336333562374787582459753158086843264684438912795826472373364629928447318715100959284125068090106958373918001827113096394030122428760710555220085960504296276491889899764392560274387691118987706812994604528568140677129143644233118973920312611841964921275034973768975768461425365535792989039719661080388292418978380582165923727196911988380443262226183918915000315491039589877161563132354129615605786420117122047581797827608147340071662154751134158264970590444230440692197286788650749583060751666221890572564317734813712478647002984858171557254079341494431021038764567298563972506133075060404385677432318650481372044418955820986950322269733738577478018562902429913626603670469855143001830255566084021630872159340785590641313330240569572879078329911808917075943860533737987175452563911442804193456924538836376338864804980905568467054437770058300417381229818616645964062303238064222370729957353589255834589412903042886637779692236672636997473182991430031788996156016400457304354415892990504660301407734522232607139332211304407789777598853166591366916148365890916678200903713603391366737595407586953263337031574376188818090189396321829783019922450012881261353263805149343152243834069958559491056479481225304594479593015133235054642077878896991044512524369429954583649436201030898870106728994290083834969697114357634209266033229181151312254069697940770786564882193000758170434771668021311563970598049773498450709476341084173740723886040273232346640588669565888932305475844637990642988166877882841759906297963868597393611355761336736111470702311151559561743305528754623876367362246656370683692281211215866811125894390595780821807392746322036395955121105617705613088291357611555107925487752219099595704764166989984208752179996426772158466483610989613970668577635285936488462840625129015278183923997229694428183407915320584425774973720559814945307231042973915575745408381291414340153500233875671972026230320512992139608965288748265699310653301908232342846079471609463345660989021446238981628730709797846057132527296619201659878358345566561909460233455686963956186764408569916147588469567593457265704249271580466619545265599483203850852922808979565023031211283660448872514175335327431626278414555104581052451045926579544317429764337724288224708293811194910950493811201521018142408483560046839034273867998125981945658929192368800598551472248562663948822347841102752159937106320247237060321797293122998710274371590961013607964110626651751750951063253752750648697609337994114909288745983146826572714346174819854294391849102131450939337984010043567405561269961330265261074125924479602886568696565149187921308160318491703447863708836917007224441856257994565745104349283432810871655291428426946891493184473979756988217066645954205347502646829069422030358068901567705959625524602641085217096384122543001691012925265156364207191095418919740360364841064371009443309978161191373411221529119930135730300774964796179111691551187214295535405394703404048034520767599700756468819142452537332700915572903719260538006816533823387270381699439482192029421532470126484251826016921755676299919298138354450546109747466748991276133901918572373120421386178782064372880179166867363743845913096545641768761741170838505915355521300574783523894401213313153518748795966311951542837499341721237794882001219587207359683774475057347153041343823722136387969056553226381200681317721365839680466571731020811556316879558790016506090931666662599648328567495088455461615533007552279172344599121336490128405978612369390096470681055422216872142593671700159185452351397661904944040604237678944280417374151817714649081117566343163290102984083306142505190325679547791816448059445346783776353880542563663680445540096676927535487483752254163003381191790375204711116813066544971447487045441740689549842445970039740486083631739870104054043276956761049943130810826572298548636752755541859805172170044534933685865159209782652018368156181376278564126218792861307460818552492333086866680500792315970188708279973944464255237800991549546551770560430762526406592875175209679567309842833767370272948335223319844090818239171128312194531697207879082329334369513926487600860529381774439119175973113536194270682468607547336661830679929975295237292164840823957900293695887238017059043076010072771964512177030625247838206623856252001253884917197497735524968744831168050464025144507681623102945849149781015254584737782987481485834797823713881618939533793493065105699148790216862380787435187158245962019894671405536173933135393375771899153001093187964639306286789864902434344903152432883707726736404046172708961592980352148673282661568936351250080399538845344944067047599133314539989784582637055002526086143659838955486072230043959866569974767049916792489558700026732097872087360331663138018447700763912393418992565803756739226783815944353476898463085893169820037938708546905270638192812180690180496423070290199989593842958939075031247098845481236982502364696344685230053925419367225385720651427075118781223963810468539601213301412405985458526459306910813725252120906070612185879184755094719995736339102432819987930174571759756107777800551891490557237646796953437793078247903055495014525660767161853304156238024887905323310856089055993293099404241837748042286133205483786013078000033805247714576770015677685333170333570623821150798511625409941723831557796345199426352013585898790331894870941346743896443280098134675130088974827805598442432160077724800745983565010768439718603081816024099966079373221927662405570566193105728919012009913337471016598953899349010402424025629367199441986719624759769999990449244603480100710860215574669824707290750204161243707225416258905775350514269797988487673539899256513121606260512447581551268147523372569002023726093319114104195632459749850756758215231094791792411523399086779272792177801017354295920218952652887650696426225996967506301758763421512267362236424852483398928973828265462268591301764101525336558703210133484557177743131712142229277511802705020086489899967871522101504127575270469746316814949825922927542490918981496075165542066721907267253407184506690160907417851312958035476525753811040804260059502763475321373329804670101623370978072899951306493011368934857972273429077208542543189641900979032752520237811286730815277051106561804850300345904315511568896249104177907609049773282716428338810777307769091424563525302854422019280234773569310359558192963416436635438733117473749970656182141493302985161815955273307808121402346641328506210074984107867268187863999659820173393010823879448901750314465107823053417580938686578732448810400634262633021344545369909337926947625362498016162139904035725777458574704720077688358965482241124914720245759686333495713548148154420848197263407438179997677872188304883834438762629161168058671714760104356442269000730477369731464545651272272904689487030174252612275448839554055287973608308798302423701853243321184924327259769434547872348975180707373728907328043035584948519208615833759048960537103513591217034263531765211721293775393783223171608177132713734408986008283159156208946994956749316975810182241047538225398532376000818985998907502506321643492926334552013356831768252578404483596175290776682050268728802648395285153044482242418422152144056399288397892683375292743276747684675469372481810319024298845238352299991513489142547039963447191254734557634646200635221525713121963948957292558065809159407481675853994917109930231329223925698467914890168343452201097245182850373526838009177590645172614353987737924298563467654350814658172480822696913024111552874668143083118519559233679386987067372622717754405860418965622920747699874280627287839721553955803964354473869785781932701959496722406288892285384344739812067853110341917673643463733569225822888330656851043772059513628373423268976551674596655696771456271763005284466612330075734224058753221656848080305158023230998190621958697056072745789137173357461578860351782703765057078152312772948180683786951779163713001513684525990662093835336851487976900396109950155457568069015929528136404132271404836906916351891930257531856672937950103278967433661428545106812202239666551196934509117786593194109358682019056307386036246048174555011125323512737465415872768312128929025877450544474856153384293518458240567480308531166116591167474881274258876456259482827868782758785456232526168528020357227741946592614373494890547758938956682085306706043719061271964090064242984165969233990885804024822798213205779931793133133065860908376264083157163477411775977483374830482293137090782006745164835587434273001897635800929511054295868738291502991121943548695784765527416395054006787734721411898762128725600373714919638053664416463687123117187885707232619799960429572673165241640617774663984850450375848243594807126799184834774230467363337817123940280525443346684607912431194310712812412075735815902175340151686432490211457146286873597020343883949257538228299654801054519767095453305582790018374705266270055367163116429331294569799885054803746379466112070859197507027473717167109383713270823269916328708513419936499960566164617088409644511189377920307041231722866648970870498296088524946133179703528369804088008211103490804323423335512758693668041909686324033929524654561594604497999731505877160225270877193369652186117730359311250265796580371151690924664188159057584494341338150216968968579235086137930154669178061864760563398840406926187077221881191788061027207100418049839553657592517576086833476862876177957833043802869508539006544576329246630185803661219448761679694736085284549562378749821401298476757681287892086916745246437402939179525867085231082204190198524006725669697534413039898546337202813626603919188745035905026968583852794917088216050930547413451612531972912007631225559639406104612679616790857853968192684436025760532349719226592153020890764216771419718875394878974795028397524077951586382887007349555493460464210835252567665461631403441797419436756999188064859562762392112298152181242015337867580423561676270331940402239885861184906858234345589729643404117805566251428116321030184380925935151885287928282882320432034046654548162298009205529514254763075997305687500102217305649115924987557882272555282068427993413679975022668129920612063725912279408102789160030866969245459275376522352067673787845304784469699856782680794931978551529608712549565212245244136945432080621417470672850727890789318494697974599289557514303849648596321711441660677668913713104842090929436458976127092295169499129357611058297513087189777226705610734569060643621201776376750544598734005525337238373812431521728635843883227579356975703928842089258125048910339565812010986132047173421925093117026935655859902638854536114037707517496984224759746956689243333497864388116357279145055171898926408069660760450973906127478095308893914934776454927147538712936738157531417547370079135386851782395941701261306116497495344230485155278336614242366544158524939195983492911561654334347251534232360561468306130153250323276816620380489964740928065265024464070208977127654781697754488535508738031975263275917708000392345531463727303479058728169276165108150130427513858142854835643620365508400919612845253161385431332923046600458479408189013065290518908990551749337822573633102135382766866224788458385622864681733559708460692994289636332348237358641390520580076185063005265182298783369174735197006959776449190712817261012435424592284157831350994686084980814497301305783247560593365738895182739052788281353508495019051121860045536738948036887784035010175054552510463169723092394009868591962149734692283734631389574324055303261256508063051207524084330511360476513662480148434015676587097505249507699042039326470010004102603595219777395897909048880929259907542466472263067734295647202701247072414027325454263220193524667953775136431167793527919368644794947035221944886212201185668420566821439647210689246992641044577802739210461233828428169573753483827445635990346633352640562813984626415591271669339938696222120578360717537645079443760020507502109142021890258037586523946129288061890262288466968481294688071832267801824251745773057495377578823017807244190239692973552278296613478849343850091594680240864814310282243487873189156122344966875355852179259901224074482049729690241330664067436292639479895976904816074923422375412161565619927736261842142502022629147437636204304314510978553421404126049261378280394828693979292516767485738711485227638940652703406837277496408769003194612494315260268377431389230949644364269817652793420287146710739311733824507381497404831345273598744464829097392199042247977198597100808135497272550551542504083457163854543992442339601873801672540833593058258467868247239348306189809159402886911552002241017928628047901081866715885551939908331232374110732512916679152227823941297927606416353855450292689983807109623562854501255818050265283919140977296718909155686276049511526258253792413181630000681013243637660765088729364619851921123609346483866022572269357275987332423453247901034381420332856533498002505969475203869449316297980795257116331965753301585011384309343144477243432469462203011187694241078974223650508576985469355422600406871389205979096145856707707050885272320239115456594043453583444271804159634456386593842048913997762176871959485693004743334749096882302107676822211921562413252936523022952569669419545566851017958616939793576246326769178004850668889392887425034218603046538012796618873339527016577971887493384293286060239203110243714223800385955025315103571994764076327526187374800218096150089035851110969538231464115992354368892802434102591843601204364050823651227609063728240619211179219355830550448347679319849840016477665804753486223181616681911601128515733496926838012011117667678390884025771311320294963147655423550022210799091457755947074542173810822332376517178237298303771947424190667206673130935486077470063028960353498956466803387594767001864800435151922871670708987343335892618017808241127832073698333800290496056120755996271856025127694302377571140763900704173761590546597379406456155455206229370900809536185819174170329264483479728639132366976023866444225610570382694944548345271343637361760005688947887991641430510202952545438056316376520441904301161921906772655910230745230300769876343317500597323888500161731399989726548409576491741327680258347870254594463732002483582779080537617901092236963534047957822087363685418047360289895449920961071714002687045088573975344101477804599022450338504276504243977108379864073112789819456513042911492346875951642798100001056749190185464466854738076705213050633367529532323782300769345926994067225995823765959965405500658702213216243192422757656855635141183809381388947847985930229967973048326613088126621444068973663846081631379150099760994306721440253605248736186182075205244337604007631502378944208247057810014752871131722459405880003040278386681939127153607190811755136786981161697639977298978924368153172456983754872789423423116453593990887796102144246393873110023531982438310903683551601188560743498979563391135283442703141653245232882909412441068077811171145852529075671005224828463631207875714818806762116287158341951351672865519252856314709636129804212007918233010823723662794107758339179691899594284505013022194936400160396272316507156540818170200039012321835312457207624696888862814085799913745111206819548049071720919871728259090619813952449249013966802419722560274546704215798943891364342666897958832349549280957383336039824118141629552352103238717009205250666037403082575598906209981335115938793364961669149411637808691984834267702980126146611284171359718149643103464117224848840839194300746123552189369719699146579585804336127152124545749356258776113525781407312989838558312751137290597990944422389237658228580020583795171674609316011089854306416673973327835466950601692471512578225648962626853300900443408878834590440409269605231449858020913717300862261367335073804062556360289107771832466790655837948333493162189904370401212702465630895565234453487279038804103134955051781058702856155977907508732282864296656537468460437223190859662481870045960507492327900128710224961516969338766000868082885017038219569082425920307594715698213789175790679845700822427806079306608447236162598933866043078471163113006893486255990253421062992619929581025292218338897253574825325162980987677153246022059230493561006012214177106838880604148285136679434856353733102775333547442971595106510174009575043645033464751362855938590147092558143526544771070494681983214341939066319652594583315293300235936990139369478557608114367153989126233161148894584967122551129153045069719028880177768631522878146849028929718037299824016162755280938173843954740006192664607317501718031518142612565282702480367285878981563874337138298032425856454201721019295756314491552217794927319225733375432966442629573046650022025940011751631510459143627977750240946268089587953241642213314728896891692075275769451258611033970765415203043092720759544942264946963499328293806331418916950959805686389750388099315882040201924572790902174292173691824963797301954764921708846096901140835923058388080055187242419274943854006511471732535434672860415907441252419773380660806972447206586174623252413076657608811591290896006116196346752082381468218925333751152596528122173516272581870880194980954098748006705346716214407664494014628971551995651382285637984552350817730897360813414153483848763578917874058573553677470410958187931541665128425903741484133436308044486701858462999382390100012322873032509740539486733232757861064407113354312318247015842103824182965105033899415590240298535740911487709163987369646195478497809272765035764992087323050540380322935040366196211705047775952470355562854696032816990253029954391651073517648632636764529648707974281988207927509955931233133309878850046103156918525726401639498618670443951427840225953478570465518062515187603013182767324491242849663972677327944117032304768068511079647844224353002104537119443713016796578295136489281402419623072658330668562498121257628985245456249160076500275416986565829026382013446384707995738579093969198924826359698619898289167574859604132418476646941655135513269432547703577638291566085324649403682041921292197808860803449704837881212453409848110442815694264388213862508538433124014017278798007449617242229835242677612806486010019744860188982872619645544235685200037123040163469463075903987315667528083720106539732162732819138253596637020861159906967449519834234539870812195819416900104433265503781063622175254866533513061230682631393911816142956811587581064546303890307870406408501845236955465679415044017706629047813356629535702899033527506234538796804192169125037125129397895551852995920329060891206912000181901960581869390652200918355368243924308529669098893517381426624007771282851014144555078290781654690218751265535646177418114906895203839885356543431498416407956755637346160125948452591432444872489641448038782275647735608507780434079003545818543244045554310334136915271982620371693731335987142929631529975448051074872806625335133429454491997528891272918840712825952104360578240002894869060351465125744212975894097376797999279426778052621288876266256524137062263943604222311894149555568233223817335205827488068863034722558069810994858846345873209417090482986385337456912669936361774554472918741105335864154021832403572544226725756273423620643416179207832510163923588527713620015006285700569442575168460005812954961843580851817958277784251790912871340816168402638169674651114423171430728860740110838051102116797876649641618954043056136328465367272294854107701805686077248717967522773191800702573733371683863079097794688528651299341780909625592715348409114797730863771743412728904915998624312957452635175129803271869989216065868382489542483539798600724135324106091948435490676202682721209194243521819201447764345614196628767214986569521241234555316188022321187413375435563082270531643778769840138644158492249557333482051414294799298477068378782165948230037292161373200429474140926394493848498558391486518275415042621099737458242689830700191224062922168445783992305015124035181628182476370054968207786970014049100566536701905655091479028834296515487685675470150746332386343014898290913398715893059687316845882168972617969575821563293336244839089378016993047279570107443695078399910541448760992406153073939756219183113261915336964895074425237982094631838222488988132915624188818842210994308304105303728671748024560752771385438958849058080893048725748922157217591921938146529874843515650272829260312904342519777707518913997096976045540472396246398293717867999445024498072478528045432952784914909541831306176843627816476001580914871575945409865909187749779053914632210986951456545117249902548242729496099484874145405160633533303536090713904443827877787076033558548205252744735775392627144288537327899415899475610347933777737237726344450183342368793054330813239113235506453233150196522460113513960252268066553668281953170299059880841405836695624658605436379343349425486402213235938988555431154956480325794633418266753169755939641973611757634402542890890010566317953633342128652601568574329764023828091838116275018108017150238603660791610444336289364893548110497064760456265829493141393527234842713913949865388779875131302176096572130845592659452505325135319270591418585736847799935769531859489407860717784432642588995012789991324672665019274183706792904879447234000646183132755178636232184142472826393452864703538511445927001902933616638151048709705133198431447578627257189943610271869771197453210208790969270658285943774139293350023759471170814648586147656963852741465055904112936312124993699866168778221362405883051212715766931052553178550535520907072035779686259015115077700436839740220911731500623443469805575313083656745725397007833107504202399194613615889312591493421501402494116478479251832879698500780517867129425065714362310710020803462149559934441479195467554316248918102075908530516564956974886746095137238903558789853672115641047127986130439642175462961614707378223051183301029363326478427407014728647347649666518170625990105087425841392135065940515192569793654991169902313275707065121197326763980611300107318711653973783485988308515270894153966415958465977476084518213284395860908666937204461975704490056700325391112314590695058496800136256436110081399967593216932659810577085704163200034114036246871269774339723581692332413187580924888084341410796938274090727602749167867608530166931362010548112828996835053265740198551912828046558903175995339100017175385614501366818482877458584823785609895565211216901264893165614588420265563751357672519822675546232397284113390732199398004316645360584462186163791703233548844724122749838805401227806755336400494913572968052229202217801662199717422315547332966672940414817237391437193469933123998706955684312420673662836500102105952184196685362180729433326557171820210130351755881992214588159509665628195350371192718457452390618876819231359275116383933407128507787697645643732577292466706561975818311682836965120925655682168957550218997420408047909072550083324825554511225397905095872448061837577601841296351589212721331784208281049628201387935484650769735307352227897196610280590881633958425123847728499299341905675977340966477075491659974028024296846601137425799300569894457314403650232588115610419645500933960383434924053884404822092468943949206616818977738079707910281247246558415799812152025123889449650566260825124239856663732665838738546209037739653753693998607485854880044641879849231988942818770043815739766029970924103277870033754332032264843201958013060072833810816842757421409744974914066169082409889769542935051359165280260336878760310373237313070095367434716720021315843268501476926428724581637114282597450291064293954653391837242799648535294655334065069796560732007212274571309656919279849400634325989323211451391558967599825362161775000383344149048886856380913074980310944832800392269508307347739283704026914121091886665262413774580395088558534728205550801517970483845105223001106177329166275692362346457043389950791356097784558612456148318205566339075775332672862866021443455733224695339566954173657762761722940806705785202908326308554396946404273065178885200459120876988173093978796643950834255408038931544434413274503791681164767445128582344362501041195534489190222540670479942763265763872523902981125097584191747265055460021492214383571997537580427415606550908669510156951765241484968780728556952946194346018481219553598975448276898592553754810391798867114692802716675921397668112784566938268210167006858267425683010729342073211743592880808321970778469784210398006175465349263765276598727298137849792779223756523738787473632456452764178489875728546579996830275458329850420118771898257692653075424324678233273181152142321592179078542384305228644754818425648489784673708179449964395472209319461063015414989452438397880382179663127732216078700041414803551562545370610739707048678052141112285890529082635903542296320993297908603761784075714684782888821626042586296043010840224064865444410932073853203741279124428927226879840010100316945149217292695053240104111772218905976701432222508049438997649855448094274296894793476566548051998056185694746631133701534631862040345173888083018503810378045893231072512857091658880172780455250099964242299770047189126355118659785601425539967662444526597217348217705884226097320448469831515740156118794515407025792503201676240998194462317993594274381069882560762464018799517020165985141995945710008484850929642689031153761408787685907874710072141672914387062240441828042364116950916721877685978167120639802493210123593724787823904499221905549109502279836710398767532337344693576932630919466621859810879901643411841695854937036269677057666745738988644634911934750275892833602997754129257152909734868779604369505758148653419121591943711766185212043272741986043884163524110416269166986689819718285969117987211392440041573177157071810385585335212033140497576184568712800122444548613552253498794062243533050225876154866016627434691539544088567762213691671346147319874424596327929610096839972262827128750910729554227269494994890596891017867189743528987440950760586599510856382486798936386046893696994619319528938339424873548459453665383158685430997989597883622703113580049812740094946723374529657310694693652086817536113550303095230871156330150402492391214477847252636266520477231854557946437418523818802322346035746335123774913443765736903817692551728798035373596106286674418247521000359855348111450072307870558414493042865907587553182400982051859829248249004500991465179356584758596648669560022585313704822600417864524432450700817084577169238718965768667452425969638326981173668942040029565042895959065638241875005565588817211702494216353385363883601420608676859520624991316328760826687157610583507841565911293096522800121636179847875985377723777009051491001793866781290830653744807410521980330072421325821063330526776961513748128088350777741321303544351994325262283805054668282482396170854478261408188641741100439004488417364091692655363748956030558350705585954099245742440656560877963053965003557522394942872647526965085993399933872336063406974932530348347332875801899395743101492581180930089308258484436365285024169600980284230242135281000126693133447661211532383739849911596100845390380533930722117884615644999125152676854057060271327140581420935161261305790387818608382957042011081007534971432525800017741906025094693219225935325286962250829271014018502844397382036804410876272346079934035573212228381264321695320812850830534458712850493929372831594547572385678009507614385106277085689509017045891970991726227892358720967479808609407528123614691963809229441124087968370445549525413538573971456286385574961320332768731830477317687019684639957370087204449100553387383830754721950701453480328496516933724634622709327054840066747009438411991280914876088087634674488466797127590523767527555929969128285158870471014575751016339876550381878492360183116197565704430031902806239931251435272407932305711074135881179522803270354635679905106971089982896070159030537427012615656706452065591625879654868255277732942679658946453541597850265998893266449949787266554002054841000192734505005075846409951885951450813578159444453134446014926180025829030460135380662772359046254525766229550097747058602483350342235112726012042986976226712252717191459618945355640726297658034040309481258384711527585471153251465607550843198440906244710142334739597893006281480684897752077552172864845033358014633407473515142335697903077138197443396988102694842166658896404105996670971577530100966057704797080745902851396479719828858962143597022961586442387130340646104852524522765286277019192832313526091078846791582636252433523858337098022415209879839192066522608519968131015150584809105308225769453975506019279623761776856251945360937823140675831505750351989855496718607145611101182201558530057191948539734471774546252419370344780088950442948299648326255792579536225438913701267626005802426476876996420448821615219986975075354827521586571210527096772439031055052617843953085462602691272385069793384869228081187729604394528794268640673871154907459526242393087118891529327740012313933781042025218492651737194350309349091705364190826758405069706568258803494692179701515703865598611629550651820741990043359399802100672328768773465846482562996718229715714257423016452583543077442192462718386344260466763602411439013292378548174987466582301279085339369363250529798753851569901103194497870742877768524279254487513546186653794956986909689700086960283696773863566548510184924142823154261779356600007342059282702665258504252283700089111313376777336675453523754229047998960044250088256429336122937429490166939263606864454899816037450564083516484131975372250359471337668508258529001520181634231253730094501701862679818241748193734553354818657519491384190570831761450375097212945106611539194137830270494665748330916274228161205420546832321242352293495539794415861968071531066745346721976849503797334739576318191501830631343432022938663858209307999325552650521042659113168652076580786531104935156417295328188936065087564657712242068200345145779481742903713534085962502216000938563875745485943781176497088930885427250335234613416875614093224980656114663081951161108632759391809041056033029313746259676639740512685818057012382793421336191116664666366215703893514074176586967423590481403603414373364520167310804094680471767086180371788555142625009642659498738780639630689977886516164530394731728865969122715634409450200073427272281185022288427893244252078077882261100007379008679508271401734083557557476454493107885585539495393035284623119165905639298893002564362545349610755701076158711463113744402430401689696439635275297364390730099453422920003547701772817129077481105552198786988764894861761901014121067457763360599506753866768776815179186306702477518929230140420523084701512835664712425480950194407264549020515149371533647890038661097218802397540924575452964302596601881143070143219136954693215919102579190071994477724056673851929224262395463572254369661321792354663295825610921244791287894685817654275456339351878804052848642878262220899315143203801655960102057501703373416445942701618105110360580564717896610663885032351906587230123018027850115438837102455409564582670125987384670177412430554571192407538682067659016152382573397163693537110273911252946802851924706219862081970626062861424426533258204712292982757359658162083254794306189015352431302683813773779254097163219932376093888235584234654201988307273346138592658222769854654472138213341647710130148493718135557172892828945886636216185906693098497962256247605289507515686493732585373850836415725066991916096027688701316132087966422332071393327411198328831375770609757439466369365434089254285507621764822334854069234793494731806136150572824071125014510266391587793559585212816646861044488662135551583032164416041266369691534108335679451853155669069372263829629562193651379521450617881404757943778411606772056587816433296489206773532032180545209930148407278012590552603859469712452539872387832792530664396822557621729791984547532516225024077182141451579920214006815586231259858683313081046788807201739266012068928821919616798655014059597326823606450769723756421006032162122334354457409148440975744955529575592163853786553858143723746541842504061025327360451633393290371578551189374977814325355487331089696521389981312780631698517471010931035386845343138251685028555062768507889258105535999822784605436732155826466221334349885536221105924160089194045116996535769204557746655090989088329402823034512417779542828403759845614834439951733303154005102126792661131586043629728813655277543906118808433973828187619205802997561052406356740621193565272571473960125722361538177706405303214313431339733439028180826369465737695010342074648527329627038343320026708969888058809883970449226945400319587763088872334111197939581814801124856308079056435517666795694640043706829982706859356575271418646928453845101540180582700083581736506843736352764527532420645664771492073127841651826054558505740292615115697183187960820038330103441699742946768371161432119002338262883385770076389018180636581255863633993236900195098490461957211449776731353319276908387854841342456802228450940223248667405184654228696960679940051614924660962597147475733145268197718198887697256512243859511570027332304592899247235298621455032387619861638945570276443856088376304155119637997798433881690652636565959895371738218307407583893614335564994052573596610084336046838933327641344342890992986207848392767064432550352051707448251100234139965304200358680514385085511056663226346691708850814922318372277327144494999425221463652469789535630238394664514690286252691780543742354862947298760709850431269490492673875373282828160722026350060056767452807260566233596798071041653472571189436143813460852763948578718519011894940829233532143790769123711656639651816959874357154537613957977002191324262431337374335997872279970388605384769126366589951710332593530381415927084012637913532454207724461691210310739682412106581089717240358909859383091886962631506123998505093890905368362778431427577651483634179241361439291644586835236006361527732512578624695017323859631369207141064413922607339964147849442401621371832775704301000165667898294238804893220697088713820997565756983261288988261126851004127975936951072373895394409718768234305034039434799931554305957851677852009282980884808139414484598282241135852758724750094455629577676182073573572683641616771130825526252606187256158008232554569770619162295021088994722195851629402946915263293274661632984606045554866018125676262892640168360931194073306744001633993403933389137822906313589518942020972559233074439948618336407144972987237987605778025817560085781955649843677449360293562272854659117288412104154060631070587585856900973012361771876200606531872983779977406268418903827229839845145045550067429315853406286379583270256326376631464137419611700504621345427024822873146146228414942782391335218520370890361942892992077136336046708051874760798857203107687547430166205645783711319507240007970486359688592590259487122075270054124863693746687322121687406455894808560162420202510284396951482163498199224209682765672528811952529065456631234428381369550282580085504306821694690636364601930448981971169432027833034141042588176781662993737153200528738430090786247488775064983726190906609602839637502602621793635452210261586434795026182684719801506931493739794061422672691448157947049025419928021784467755829683913860637380644582260584499702393528774952822385147129750244115908014173885126728072161875137045618043327752452189627606467890315902355567794428555238897177148656279235453270847529999871478045245836680924210330568954079948014866440703531074960999045551414699565566460652493045462497876487169000788357668842622894839504140381148357477290217599613277971238807830806222191419505086138763318489781066156081336169852483132568922918862476372230314521809056491544586479186859412007395112832873032684129548056179280006195379320654417499012468554921128794221443166135197766454327505471007524171169902927152365006500392733910576798375713425238047259725370558616171595720929668876355743483254062454414715683616035513115226026840758562645659658362650300011674123032771773148050915058752986999370559450566708232277785386675787393746044096765318216373826795045078198641614802747139703814563154873556067353047191576583246533501647822859231504212542180352464570579833728956853347314462091923197213956398446554133187982855406283448401256424758507710350050113618729122924513152744505628216323947773542279153307563177634096841738442367285511473685829340875963983681214093268733714416436772800556768692931143614311339894149402341660933874905838798253658489522289519116653236474396041203728511723359071923615172428376471130415461780459065878601152215523131837153354783979492322741388806019754181430192351159588746585125529387655528637958782241614909727576879366746194558832197724397481905191939386625000927325427213016049954597289244016150708761039609511645140844982896711913726917225839990601690523307998598522175367673437072885983976438226277295579375291178074876329384993229683124682700893003937395096739001033824121759823154264991512474855532179122258045322050643805312479247961883460985697517458199111210651466849122366600832673953440413164423082875016879835556374028058881720639850611585015124566151810601487062330332658707612767030168734126721644580031253825830908287478818518981670593339746978902876111018329954639218776335738223405145145684913477287820831238547224746307419388468100487364217388493703374091791979640359195246291922969721738068287835385463046606676558855179542974329651544045142763215383574948665936574368379102100677792844490499610484467415472378350310359603249958130154915762086337210456860373049406200250132852347213523231789882051357028445464545090222584407399662904955133155632127394168234007158048410293077349134889990428134087699947197156798674145275907558669030009980916219905791260931235731661832834425434759443356540643184874036209835360700650377712888552186646025908810052467120142827525805843208484045590603433354097237256945915222125782712395348542930794625085795202014365961208127874487904189816536502550185996471479593871880195774736902414309118482128798054023641358667661835123081393838209703103047593802697228006566522321650372751375029657945971606330293296134792404648953101837983980129737710475177027229180360618575527077085536548525913103284302116346014490470522532890932208325823550736947210950121322866394725810107820222756480086877066714385286269945593860790180326463574931370423647418220263626107784834932224151285060289841202409002539066857903405213805662305087953203875803788170027836919003995093767549060736719941453786533873311958304644909226656772765956180429339881103469622897632852072857612923541537282866911881281029063151213027280100698243429505016988212541190026561871008463534398647089008913943074988270322094978963899596658013791267854830550630869959859385803664082244642179595562793606133356018064585905179587142662691617623436108245604920844244773485371048002402937497545204395932079197899981297104412661768680804647633913341194997193222211122649677381773029694322210916627357168849526099024289034424955274705663489175213451509923854604593769339059157653148824251424507253369007337874674577495133936820157287210547801369476220219384254268244313575805394995444518588482606109656567066961902281807848027649705792235159431046923015017487591750354247660055192746562139063925180623618438698959594723615795572171454059569112466299365600057789535486811206482940280500381706522161897230533545875477640896699379872573215190826189092253927900430943036209714281743157993680556958873729375442975137474258233957901574809996969537092219728292845261426815947072987427860985344478835689347783512040416732652463708953097381928867472856103676881292289149078454608686200474855214460812012041682171306800402619465659711468742269270122610114920120114979922400912767189055482318257914675690660882606613157425721097767756724784124437116384424028795514213552348032306125839023373740617570577758700522082962805603190499948973897488925523125638271398250289055571487688146551107639601847379317239642883791758435400176536813675645480620564547334262359073890376456575824107157669614953489923007204749334421508180381582640081559094378021445869428278444025447346356805814203559319483479523261715926456367681971255520336470004868624725039153238663072103733379585271798594345230971846870461525193001775612939302142341884670365852431564850079924616613257080497608689557198628245244233882197276173220528151641296416063539306006747577689755426718502437515085440811441008730083979411514898891129120245459945792250456467313061182733323020632932206478683620920310208604831949184431101762070480124276733571457449227255614697921908273688750792994174719509620882215923388587110310166211714381654784058634798451877238179687999419813732333897355068015819663665774094312607423719187789574347494368904395941047612905860731739372575016860802349412817133449159480284017594664291110996705503312865791144397030529824230278582664159483537843431404267231677586145831813807459227371959177116213177872160906911875130533373694475242289595368953010191692465948924645226416835139977841216648198013796554948223978610788188116299045729811126168469727349512100696251284062147332410844579553560265065779502688067344778030134356157804971525874993587418759369332400706176201802319988930040094006374908371407761805045739579514216584569737260071059436763130930682120344944755566423059316590066523229067206158782458181328629000129941382439784146513499922002253469534786134928381950515233959286240195149846207437545291000427716696277202448637249693934638071109338770529760598492908809033501169485205965784072923301823920153693977530060750691176787269584025654192194247371357302999620240334836204004320266712165714218228307628103857548940676056090309685235804033873743679938338452617572442383727081398869716495474083600766508861524149531882394938419704761666315227996495841376137926543121464254235777037660030297059427732841182795081484219179967921318759342804280789284499648733961872153237406191551229179056971381140798788276722490662434402993062283146189525308443015218458168807327436086539627067356205488825510590858815023158046927375949455030576237716612231486315571355972468481981348564761344990688066604587048285775093557894842351971005498400707057714252598191199789700628529940454558177199138831814900141615593656008687943771869463306156323162934267278528335747860025168452475155267748147507823428895982414730640590645789980975589951242367543771265323628836829762724298583955881703808020815098354116240002716284792277753474650070485316693552152099510458177986097423435261642800144330103933493329929270958619753735964110401787178770475556975661485392422221006825548439674913087141982357778456095722699586596018583637247365425643400185210344014845052665894297027949773582281054802383402161673323786282616275173065586184728087794256954189876415547423459105875711180195229304680102690767040416156524052508018970478670091372028042435207478491331370755155671255830391538186162387949162970488151143209299293309361434297403729623775086113415155798953208433313892970770281324293951903747382714959605028998626329905392469991487347341782193120557254731526936704720314534784691969306677996732924683914922423840240818987172291626239920539526334941233242476800081504536741666518194805688770424098520915391083001717280306915547391340457325974706540356333296684284248982800707069559981471162564706361169033891554794774660086796263477833567329357556054038563837409087617062509436618001412236528020333016928104573849938950048481625123332336281855836174856273165916040914072003221792578311843576790366820266641072939645088933873324551907970686197299842801586599045869070080720109094906902939831567621373951172140555163877257258781330153352905900106509233067037044749190595124377316619220427564941220764034138991891845176447098766011963505612523240086397413927815177777298520431853333301171915964599826035406335112189696559774484128688606995725763640575772246409734826760907758584507663358435395493214938635634741419299643136042864312144214123852214763207272109453958042532826347303360946468453222930120259533376555932523520357935315013682083706087345121042857043494726318562943037726202568441916021238213389248900211934561034752607326776395823641221834005712140882631037897026432911528428031968335884938668421838413245580931855911223791252685469189003351819006584892402008994179884798869514558026541683783330648624409107177960009077029263082904789825454715258382486551911901192632007064179652862994425416019465475438403533835047863992170047773719033847537914100780382506011051525989380472539307384677458343050435530171680315757341307065085372645750218055157446603501048711179987028663342606651474692234060035688466413228082921934702451634968302711415284647672962515106939115178155832675347755560937995600409091237844787132216190221566205494197870435190391845385056868104278384387428069576357417831570595242337485128256980396616757430126565671560521457866194238840037641834626095132565285523451512011034389679044530807708346721784400711284818489038177960778795151224879437632019316072316977725195084960009585028693852566491031766441712766159826968214857211386192438572631717225823659235713682399223107181975540895487526198632199228268906310369696590751691267893825093266852667597496670127710893362622339491555107877842673545779024313679632852353484936164565015882058570673163633984488812932422677638086928325163316693187610984986306751452051179880127751877697257655534378523764515316571423030295230456836491150115203182597446043656628934074907016041265757929858644495444574527644516184554454457293681343401367653289863433786189647061607986179172447480279480274567612251097086528533931500576657636179587146522385376364036541756860704124816289998619582328992166319628599219811192911836338778657426127740731458252313939135368355012364071779959230276054837035279444155780577245788320490268494703610545405083437404780844161571713062400285009751215180500747183228843754323506910940510085678006905666969193632799469447351298293093416056931236938379927873251898813726326388456192167289033750478954721330254130244466547761834964273561334724424461843962247018018825199379521855583994840050551746137386194955962833365101127440203171880485056703766937660896038680663815834802998580179457266515848234792090441420797085855003953320723066681071554785058172275087146708406422350164571539737053572054959461148226505334417925621884075723172169025497691650931548327087613917535095389477003027414278312524779074743466150321731540194330266038133019087410348896977595299601108446995843131228058787853774310217710878224288463938087850823361531153622178436161369168712825008113741831918429245050261021913756776884095136374400600529634094127324668289012346179377450995137573883990748267036921383977980340351816317922942806291889886453057376139280290182551725659514675888103999024442073066170299399344821078367557021325760670816749280858030839068991577631127269654591103427934084360222239382104070242683058125140330873918334400872266454028296229339768547973498945584698579610518519357117577376148771441739033263813837922708972475898925937270667375748514826186909765246552510602736465512228432347954633366339268779116179981151007851246450470273975603909717638966311817553322502592645824106637553259784985923116173427691637503054242441340542062865311223092168895814764959608232673816185762363956112317022212230186474073861953503097433250033413811927968956090610172696339515647562743326227795561521200347167030890922375406878125483898761006119687135140313656427142413734509875464679669833444156256761583246372746905618724367791853159618289479590918947606944901074613488883307881648139696168096929782589203209106675707007058099591371516705758737664990015567744436180099409592659220125888281402938288610227598419796412920470445981304427472341009577604501697660388502754938676242323801293078951438354568335256773016935333371478922873166801175086125461689870764516890840401958219723993861430051190510540448167845837734157787280292620801774580045324126011236338397545385485128764907869398513680454301646495183292397199667344941457665145160401108950163535296547217328424575216329864921222994984511696836139820925598968447326511076111855715197514972376752652653093112979168089829176906723267619768483599529198499774550716301781550251454769816531347211517092050529830928414997161123680766521459237693436499125320499068501581373197069102005807524783064536051331955918682039539435861143748964688319806493584952116563200609078186041611941774135556958657451102760160892092188995284942624893639520841956922995087588250383391347999287346218575403222947743664746493186434337438970429867761832153121850913810119825048319778613161476629279452296343306331177061709930667910517851408283934883024778840749851809248342658830874640530776217436533667158402750386674830648570356897387734026257437673232464244293785355373081548237316667705194313041003963126952732603053910174558752208713729696886248382026103689447330540209046367743002411927213870355304304508477746550043209324577904358847694988445993494192930972714568404367904208186452294942615954936248086450844789470627881224251712409058129993750012620175129913098782323355748484270899986579995935928493913837608642868957536406688019801692053692141342455447156114789207636955128825899712951450156058286745356969737161127945950897449042818901843550524293623097072537931478086111327768977573778916202181428540280538957934816977161597979606505774691415237414401755294382323921432772402950266540776220265621049072076304801848929116300143983609344737551134994524783540147238957822973392220228510238644458915080321839212450144067825396966106386634281448632379696962950685905140030171023073707750140626820869973856430528545095711421599038520136947785848346161580883607157506822710714904734693633781231177005323107696602350235992548963090673676127703878530489819115130327028821439513255696862263163728273147843213096554809649242404355925652547808685661028661150042716249794646510068375074224731585042255012198523263142136238372729554239891440352378886445402323901394135641869742068470392722966321194788571784295099925530380025116037691816310470881056768200926454935400659282363741702588736942785198716925260865149090778751568860182092320560712784805474286464676608214923507948214771625481913641481863173903015328845729042409694235901929195950535840822937902834467428475197347573348107185203609418476268964411774473974823839862975536893049351509471364308363853382157307717398278340361542383642479161681866333796992704903119228222327958338049404125521602919740628206642824428009361647618331258430696970157400638126347810072229402558432979145079305255878208304701144393106639761000764563427705151292826040075279634752034262817127039803452222698959335574036485504787438459488140044892800790915901845356718512665568027244335211924547734143944414033242015071772948078882409400081111700096951552299435701756352174178563727189444814381242456849300564606025281227211741940070556558763295669984188744122851833107498090897185087838359897896841474492598091147723214730607807507046018388788629700312911194266591368550178795575446354074492846794182507641513378590278316859805521418248761729827765538127131635245353704755688761538858550558700153664708446274617183620119206045395000536179538806891959342225592334485053924748146959011961004525451323253588583493731272525736300965000592675672450082375631406463553643625366280326851673401330038264469413078826546105313540673476981939787112815475680100226978216242324508647500771269191013806778834186509043990746642556967742047329755376471902236985142846255705090021922663731721940708096482176488970767160496320188297345074659131983142057660630595310898246508357281455579831387742958371796888911138710488869179600655909909861865928924635583790131052807194409448850890516972368067727176991147351338059272725516575695030540669019881716209279425344015158465764212362222086001763240817762127524819219649611918492411124530662345904100783836682538345973387687543319187424154632032443876814140969423795571248491263619484339452038954687553149950595073244476492848945386950543650295785898190549600263918672157936702946998855313390129523724260259044588854436531921453407574835275954132913870014416700164943191479633351009880156803757273636101398777855973749327773534101422062728734299385615865599122273818269186268755456317562690959850078000936007963374660128733929407424656027031195344012770194093545093571788774844372498375362036030559642781972650211790222020675984824816182156036318459400598269045389445467758533032572163958336078482829086311161066905391966983073649273468094285908574244253891198481636802365797055496218659218500099032027397912516976394889126101057989608881857608063114440103051908936201189250032226759996248298624965431528281241648786394019139303519501901920208080119715363043443834178549771534881652050471933892205724543651207244637973988790603738914601990160347467040382076974475872157519999293373119893042436772611298594380950762722477199272242097860755491490753568272598774487400467443474487774045238945065620028193784029041260913018917754903714130331173636944481785349294061867745554286011238489091649365909657817284936794634548571801186662720408624606125262193401210442293352298768563298564401967075542334790235261892732510507336415627343232988747189198520441187006690250741736103098855950880539989100524933569641368055799609516961226403167325448824550481088342865558616254212197128664043333755195485396224584530738628733221418200266059688294603492366134119103641173526985620931977897758068409560031097597609920600892057875775333750390750550756706338777792296050490387197961667487348067013813020683650247910880571905670647504577905150057618808905464371360119015584793100135117124116283272674105246330386764538961948134840529512003892329359935620993979079326622159781736365515170495426229270689306897276777720631223849356363385892492747518693842863431763960927488664860903150830105780850043150964993784239179297931669475069820788400954213240979419827422939746521223075032100651233285452517095880988300850882108894262348073490789819063005531473949607559582110539506161221836249211460413035919956867268204653520991907746603494867206353816351497273365599419588250780676526257513612999219941760811554010949206629936512718033791311928676834702825717979877715564031036767681723572404024500820481069085354403519268256096340271128781937071254901803419261824841677094257580010702771220902975300059590756385156988493872739135133035109213224138917193800136624082145017396296968823919471273107569858583985281131134064621063278839146714942399339307861207640434195876562873034978815769707619928248342932540834736553540322548077401994278462931773425581251456867257496678162679516239370650801014639046984495319479133459871260731374241492114036689517165496011791057055685517856556794985641606421593426561374092711284613676452284600532924686881262651389418440103081060733237234525182377850856338321219268191069397152310096916565648081362039545687720331355275947928840603070515778800734355286217630944467574205417228880920004185245130368092138658675503521358884915762852190371124859298532054209676828394092390274882944253248951221211755271467770163012322360356523327374426367341507622965589238885373004615351775645393572715368082307798087590931329363673585014870320202572841868520372417776495651595173018219205887863855144236127122997282664326469674285045625713108944373762061245353405490648581023988036323607804868200963147492086248273219865155992139148849492817781391455724882030912632446977892887557370981194353201041469241550704183990093593067624841297705356454065445884267432938098655818176909333896060273739966376543460242381416610531969314797742776158264418633372113895724751816056968694436151773849725103304886564341733469530370398432702752783149250146692553571235922444657741472707306045088940291489638408546332464537466062859912614318073646034227513942091425715349039913271976333079011433285630340914309776692071983694806111070559652999860455753435797231915739969549174685132963419535576341125958103766792343003526060383479510031481470337829166463108742738647382989464433655297521663059070470424625664346709314472515143434253168571676295626514850855066317052771899230255405453605564015094972703474239927064046318099056648363399292092289107642689749543434798556236318754605153632961089193766641530603848431949076404100950308354568629400418996342822119528167685273817632905193025236410983310188008438138427362054852269783425306577076839244099707141885356811565448811842736999932686024849785636845927230726412324281545697609652684613059117423885025861389998882932015446832490762006552244836146259202126925255480579795950607177615733437580397154419296355403502721038845674684255835550593441466546099260778041333701439763182183789604597025803381875177405756016503748604105110998569657985586073964547722736958424071783399859931742031623695553302403596528579882738853542050466330912765630712232580562848329282563192385122382623251461769651549832608800322880032401166913655169323651994702348052920071181148672215920531953432409011620575891904375562539924011283648955457596026275286235594295531125060715264726536875908868930210817381401829503662139237622117732383097879362466764433906625498642548033610902204550454400632918349204945498335441091733297581167079111307588124317677076992525923573158477603044280828087649707182327009779143180191122158027181638132429866546450661473970493218994589719875809351220256767287397314805456587773647079387782309833198490487716681846227981834322052431252423426091347230006403769682287549735202599426041701209133159075681158090942015291073512531508296837584624981334117353383860539502726959874743176197892843092709092788004488781223195152477438966677400371851827374252452225454572046046419147565601236562198765682007922143768774632567532018870332579799191684851441125857684449940484525772573734521249623521783202073318747779401745043914265126048800697280826685176748207889449440405337859450428073061573957328023720741844401912998516407344242899792745469064765428077131265559544046819539687088667444017745214249565089239649761949164682775292416882823326927612579735966583959057625365930401143070076550428729471236701562590392555083591976254247312302855443729700916952337501263480508145818838426024588730727588487147164704960247862519397012985286610347434061225666982529249070533287330522750161290856613601549283866065039127728869058377470051635820367993042631356340038605340463401340547854952698922392668945498635016465309255782370896801971269636148563121915940518063466040791294675148383034498849796338265875532597352565283315196841036238763999220225702513927865134795575489792792248054486544518375192124468811906160602854908066960936310960263121138843729069273317846316463989658316948779061436768460507554951724455261319391681462211791315158483828382639241062240973905481426373812192129974850548867708785206002237478643055351522457578494551577860169804970935308891240625939558380671614953026903687270277506939727652429895111558409550446485527287655662367911962013028259783266764157876541254004454912717951977709147039519979578325324507195481266708215199735343249422897466500320140990892829454583868073177516615796220156358488927115897524179970472333286403314921397262212149902526549183554040276958215554190949086317474332603976899025925150432188230226867192671442877885384552256528150018488237029569452773691025572129183327136450431415892031994912048296177939998669504809732430835639396469795419124278701591273837805533711512511300127138863740967550375344844465352489331644006257871581704870003141334837008528311848544959503690178267819752847269302646001980406937438562433066065271366864266695365734089379426008496285338663379198236812886497277702265817530081777703953151173172304344980084379885524314433526079056788684767725154069501736734582154886554864028462263272761781627352552057507929231375013782524792279902473275746838644572247515471342841843760065864046961171553292130511131563039022113703901987232220352143760316668263018908213249331778517137475612078038626767481404779652720879334780538888355668163450778869512804139629001320666358213293081899276383693932561117093986774280563908997828358844187494792012447803040867445509154167247933153617399054458230078321757041614437769421472695987116314313270340675470544191963618165179919508709910373320235493931123863691018682076506315114997138102152414163087235316490048743204376703911363024850078139093098769720929085387150343789979734728073538858723877396451502918322381241099516790903480634188454142651186880746231995713746699581490820841017511811352952375552273014376522296716355756722370881718579268361913102402477851629931556277235090299925454613929736761349778628308425262295422444769441318809348421239732186348633279033403099741665713957226177753245266528309112287325493157342091343020376414990267732394345038579880936527909532341942648854844909706019841010988304342377251435320170207826450507967689020292505798143777550948304975759184585105384764316500608306212498916320165721970057858915398082336479442791629589079187758439911989046308848994468411391139785504861852887854803447441636202608301086232214902830569489101414343362649441248232859262402910639858937559410609530947397654705611770395567690588955179347247162451742237209332022402503425602370322221530668306123450735644114170791217845029843954517066394362752805475335265873577048785562334058735928617138805921945772662304627557431022942210513836758341023849637008834467685296953564855635172090950730815283392232822937472419411457452953964276400446176873593525236282353868514651327402105786246399624957596650156905973812184165663032739755077521748393835094880448964614040107234625732707669523058344725006972328963921332433840957454042285882080510113174964771421405606134857619660124709026145681613681710638715121946667157246552799929563713325413823281603455118085371617983446398691436046335400742463740722172435031629907199063904214722252240981238846422225213128469766257603243494178652279326627429517517309851003437136786202098071039800773534876289659297804915327558270365833836961040881167381803232505304209095951344704379566327680081172078812551613602524447023480265812255150322448001923235533416107787190829471626242024702185224883226554505739505822278743049456730443722198049470226508581800015634439205398665119062744386914361666391903770741904900344560876492384215335573260524149037165499255858266094219902810737031471405768580056469117456434628447747328193751509050216522031753468724527938182738357218863931014885906924524917037697220810103338354035316087738025129721798516046683090416055949661996852430820386941578115991897490417078672035136784166902432114797661848417635231866728280640528217229407564624341113292861293808162373910868499890067944602621114209821472211245552819991923103777449699603856779404519608997603333977581848324571025658788583762959090405182175499352006676356013668960845438673251962651739803641189668147726125931521687684969472321715054444528614324847100625590351885678000574777777370328350969214415168852803794755339250382623526332080654471533313982409032758222945488734774114980903364359613039893077333960118958288107341375667608447804269736223011824531399254688218697468059077169873416519243450671013380324516869122534946267418156081934647155248095726658248438475313244509171981823260652372234215138548777225223346290482564902878007151653299757296080855317149556697400537274416733116400639510337641529190129342854388157430099354457591740710366822982780965376385006624210916795907833927490396890717297439648989086136540973443981701338103236480401931489139316255002178097593732468227701118467350094819615385688142513739227315392939161007512462072863006090274434785952348893902180407567784108842820366621701998213987998638883574478258636047560111065389502027393071098641503509129086082763235925692036647894501610711468728098486807285131166288268438593408880399698589313417549269750537487106154756305957144676837796004208229177100639314033255249648168251424203266795258714335194107057049898454718453335652452051321615217015741853534980969664457137084263140364466054011222405583292402401857137562141938305554608482609802580183892883619510506767952487624414428855771582525562302828203224633063828824871536682285558450380015200983745334676173795835614146272257214465018551298990518975845168340844340495618876778229834034538714131414814157015961640951887470624203285852683593153967586583649690311905829982461679884122299946723164693211475088235196084504101882299312994657367149282708790772002872072287302424054817139766989326694340869213117548294549749610235329685748231246745696060393302796559435514686126492414728570378793690279454054782747667125763606240915160500364224961448173885240662964455399346457965673327660379972113455778226790180188690995408136984512781080925435847912038839522716529756140308198292787696693077503485263877762739538731796002646833001986860350523104938088218912613845928878683475942395903619044429916340518844334504256251441836298102548427748296427889205667177622696886757450363239845101502681387640485633920970077873227986667862516701793506478473798646565433357859874042418648809215849657080861598738313767274749575982140948574849926634992889981539607411955399185513570350655909810678628725410845463968875245942902087829602140920115484098183301851359833042770864588904388068487120525328266517285500031483000823618143355315974111872899468355955673679680833113954027515152208847523247805134242409935336453934160568496990052718272378119226434397424918952749432513678902081323339900440718777246586639787747302469495915399893661409588794687810850061870516685717684467476147845074830905173250019848029655158422221136682319332752977008903010149326829299808735700443071888311374221833965611184478416989221109285559259769872828818379768089819525953816963751421472485724350715138377588341562708840046287782134107044290513301853303948010713438432379992930456319022120413146466464413622336741863208857626878568322340102307137936754244212858137111913411662165240685384113333555887660248674546240836318379581189409231728292662906683944331677674664857285174132939309115570054467190415591386860378621874942335418660340834945078510678337517064330231828845762806700698315687949669241216107919528511310371740694570094733466566790237787350648256580835519814151885478084390416233877931325691505992390259146160823877665449066443922243295347538890681230180745156460235763876049413503700023181068654086243197652372615007233688112337838370447269961866380511803521946782459947859185310434788010538599686191374182862142075353689469515003096839917830813284471315467949549239377168086840880976386243980096704150650127974252303426030894047497678375342078791216050732732023758627637522072789441463001348895315640427258880978584636973976978763866887445285199594440666046794086915491294220771509096901423156863041933438146237050780511681010744943622916622260157704030125524836551214335113453772159253716185895821195745645973540146545358871358908131548075436165197950374918467096131839637104984518375493475042179755907349774659202852861111919314901828956879583264945231075011060425301981831642498832662620521820328184193270662321958539967886749262116748340661725987134180239093624840617581331939395692178968916975090339698773633248869299729495627371618936881594562080607333049264542849687147126189269286545453186314932168276110389248783513582430168372830824466896136448154420501631163926456197420811070483663572543452715010476193364241564970311228651832198684000265150593488783276482895429397448935106305719044686325175171828143768569769709340043538631914634651683168140346523730721980801939095446789923935850390470219470724911488928917614319334253740471829578790435219906877617550374661004443505979085845588829972354914872156702934474061559320195862463588900267310512993100470288423302086751511783910732515457429982719918355317929048000624963111748984781229152145719774894695308925962834938779618801625508040607101922519562055532769853127446702805305580601515727105670415151333041974221029180600499435743871005276606282620947227848860037005145792749848305878216892953944824779870637437971591361702302089934018873725419932027510551434144778590040943376980165420237618082225042407674150955399549857629096302752474063712654370062057035945151227530196661426975936004146217912645924960627658187270645322785801279520950179031819552944144627441750502940778541909426651134360655678842351254152848008521875411901151991923842095613913636869405860760831105161177094117284232832125463394397058905401488884781921679335569357979763082876963438246597128837567356666221494559677195632138707401340792967034909557988229953285992903570695927317297423944415178375885856409683908860332705259351356328346693878358807066916861506905538204212353300914856379610948879186532370078912345484687821799900026536626410445417801456208508853868215467480042128386295452757094974829941919761381544775408381635125632856172022020946459815296855587731428891444524979347326470703025669991387039988590440688849241793542929350286136444576348100995319545307920033338242790238931357464851434626232637637667562366267512084882851635785838643032279168166637395579552327437772567844920918638318722166435888303056071649376473004347670945145067896790738179643655829981031107327428740448937087977424285309072769182609599902637208656053499494339192846380651922370103781822017519728485501364519997844749912590434431344131331636495016967424261251087187666863684111756708654789155085242844676865870981603677647542103452860610852177032004824907449301464686148612961784885984487743832081803664025980795844388974348097982990711482583530183008236301733357481839716770945115362007401254840757712303325406532818684170737545262411305170730732395686551483909587908143949910074864876328856755514078604951226583788744343943684026414479360366145068853264042325897803450457635626241379008894012864798341745022075378138354023089418517858987019974895326278737041527953108956399852807698168742103866499710931008465861045961515613775172925088505317119294097364709525242669400182896683758578806326394681676635756558184308987582309360848196561767083659707683480789168950028340682540314274786346504288992457076836949166161764170276971977363386620239280832226136610638158017123154389360218388824140058361195062094842747107430819521291688600025066240334159722720732360222310410348812697281291763821671825277522366869512946601588676214876664686560428320557265608005248109841655735099245209093474096450641880982021591613065095487136853632354640578726691740966313908859515940554836602843959060086268106657507615359023792428815091784068549374855034423458878332987590601864928555466819628970791965016631677631291998821672994950960790881875548377648861826823405150135015829345256062031715399027508092286175334519981150194612034428322920930445041707311210916978583122181447939739149831203135156554210692652895073453066960982862334122853054440917696455821332558636896733290381996916740643961090134633403535913750324932710874385347123504282645994452829727877050139892966502368477439849722672609429447970273067715549216015564569263769818590583823400964323842421970850998156214330907835535076473306140584458000488575554394444855550736574038571015885331971312803346726453927845397841939607598678003686870876700927616979157419626472911634385482769454468792642336603056281348702738932956445061610297833451193802923901858405284500586943426027553581160786401397537393332430790503454482253518408114645089533020182203745759126541045542618027847326105553415723979771825310994776893475834631428916722432667610908144749229390564424116615178287209101462964639192327530722095129722665145153439685565375852700028460334525656122254909497339511362781785623652191702291584095224797577044513802452589676328011745408283213731535338881565702074642086856423463205075639951136362336483535797070341098493862959638078309156936735493943740577935019723691151729075441604215605122171163942859688957877751177378524253602008945690501811782976471852712585065049472230604432510840958258242016531676178739070692355312640536047578065687529732294700631219052118481454014050617387643315644791472282032123741795912426447743400978518449482738729336145728790195382610914090542592330145516844287604407001959389461116155393443728321027011501963719860220436958947970198443417451040001488768057691397306768832777553452553314737411560362558238314892970448869364767656985396488987666124232725787621963740484001067191871938681450390332919875864416511402330094582735819088167977715625110591030938182423577756658619217080996016355375394268034045975129944099214587470631005108080413157339444161604730998580881823558835223548472129696085876571514804855014820016853511418644395424287038996357149686324277640374707942072057826236449644898627161992928458083411916253477938398805301882403007928635323647465765253014864679830440520272355259863128008496465014812500323255941572416492821810728807128688031183877907977047026081633882870185453891295236655600260923854264238209565402898250450951302301510782990435594324532793275683459215151679531404793653300983893069681344259924089496811706903763999537219358158649067932400127686495324370249749236917017530223086565249148353918305143443913147656635947500374576573888181816721482019747979898600315156643395679678833953537201864146157117531463293773890902091639616512422789539667441133749515055390347114157806760341687420974170268810430122173822037317959608235055653184694377169336804265195434431334680838433840157754472474540595395233719425582094033754752409877671080182036098923487845560396085100248937060451963930929875108505775577838758474805650537356091951782384508752000113537074033085940523486791756744358387738165791968130816781693164027173747283608778745157999567098614538134270523562748414919805306343188137538982336769683438953309131560081831496728295598716471390342543077816972826436886432068815063339538906255039450366044072612616588814662345839273507090589892600028752188241009383739777375789219723972693535712366157575031789715426407236119370487731895378881443656162104850325015852859287746238956552613675013256335386802908825520620987646096876333846622718839993273452591301518075482260053499565426898033020305631508852131201403785052459820604480532698813448466069626458046799897798533530738870197894223208611162260408890976018679759743383929787567624121299715911864074410482430846910137196574836903747615030800096686440270846754783772537032893617851239187497811292320506903967407060221391916438574661878516461618925232460299883741089475027061625558284096713295239865460183801787504817268347622900391140579294064655380622180364965503561511675244182944347371015779198948271371104097309363141596128530450108369704971025113857151732250446302377324299076201742503737275520395593659783442269164378773327811001938351661212124122015421990692065408842636559629694377429436334925737459045722719834578971556166568711131939649439269599045625251413554557486016382072388373714424369292789222228696764036641285892546196201022579691772734908495866277531021986556210348585592115081351445732271278897731650309114761138463621211101213711144790292888921816289846021924355126225934710930746189696951968205413420106034419980603581749328431601821481825674736435325264575537264487420039919872183752089935154337175450003127803302478469204912562734127000998656582177053818082253370095357773466934776877983249191416729319423262606896828382338730905908459478724050144041941542355819761387432620362038099107065519102422593778766913788513725441426325844489746048471757968247078303384316787326721008504493538935984562459185490795006895312491858960609026841801110920226414002698409356553617126897250916686475496727106659001884471311915180948404485433066017478067298169415029619680798206053263629328354433764647373338259852996950745732295847570026072277861536841432875896190976214719532283348122955076704809408942375491266410229031219722053001340506815498738069556475412578714476193147202462997098943081516988819866492063075324779365951631910193695275157065877221405392449472902888897044468196467220542930693620920098004046354859224145693339421156116956595535444392432852364789669730918776043396661873681130060173553658289431186510862919430544118346073972106306321650022663225360620399247901072166388581071649380957299489186322824483740997953356719976235204208982018486368814131218454836373749649824369321426593699294732840205950095853379737269581872319268175290304289231073034233139389022444569353420031267445117536527632397940979035459918110489010855890013607133582164834799747309355192902615766166514084028208669050521603715755836970507634561857686206693702991735632915047001478873350982240952565297484827888252698482673244370989284892521159062829332284477999461523555983900784888696921301758663444434331874943740748736095978036504547269557392950506158514443602166951353366682502754253482991618776621144943534095852646457409778333352184476210230815690097594318986134254780875206047071419682176333406890101718916133262709142698018862714464095698543815362708568166306303103004382035434514649138126640772711634012442890119047156933201376791553541188383756587527559339445627706888781430694800963009593431314479548140312337885117897294797650816849042939991527373679118330143578780597743914308405552146024545835747109780670318384285633045095019906070280576652016207434052304178841757444584135503027947174088399782881981266579717320263808483911483881214400693569411277466387050935925013486345142697250941171553663603860305459378297419470429716067086074232805613479258273235785124325121024179064017651540871353703221921736985313063060714152323376427679185992056300238349258161583095762020849425417033031702859611617210157227823193302043532602495981292358509126380489482152733141034338947695704341098265397926059930997946816626141107710413205781334080738500689328514772480960579799363957432980833552330679199814688062864503104925944741142169517649247738733036992178177929073582259565392401188942469808524812233489310921799318546682273501894076269698737462683973226183451080196779823755593001680776582654909281941396935004291973563457565299765297162289066363784302281661414914241096108069678200019041441730070592555857659625747763803975338670514267434693421643110598510931634705258273896145243939871411427656572653852914246921761684012230792020641114331132470349497384840715668025806325054310345376324539632477911013693351825658108299636042506547636248138874395804028537164857552878700746773181957048389761402088406550824678319347031962984894260642779472966447454569186483422438505368728023203334155387226076310981852830988271419080104413583971761250247036850106080491032329216310528693123063436098581773445146173264253151233886799723103895643991666937647982128806392640095296639749685110650930200945609961038098713454855623181595974029057211235911191686001244212586152691356638528193780539631014454366939397405631397044202886686260569523345344235783912170947389905495112646592831265700822116099342177131981062461738568086174796201050598645668080740273265812151858079322333179567984872493954091068003530646917482304141918535437941596575406895946488664017962069967295472880810750795713691343708421004933180778432815986803295182285315195732032852323073331938132960429827372491563637176560479850166131882539722520194620978779479656692058772538887274014930995585285156766077218937441702047922020580159353859497828530703756403972075372236666915573862491614429696373821139488562111474702332189162123357149074417362295362468105844498623995687058245989568291846950849227836925229487299076494031490101162768739765170005979812255581435924476253273862903056524399090340462935559348928708604541756518455155197573549129267381071610124638586997482737404225672256605965498006321572965137130919082821541383622229805727948282352988447918805908793123529387440947854695695720316063287263292374505914346899366069017793608951195770241476870184984448575677286702357788227207333402090961693160481167789488858064567278142071109214530365503201613951569620478162866785658342524904629702177665340880433504329805626332205781798255518556232766244520213043384424907865426339686459319180412707287141468013189161375184961330474288112536154427855300152841071795869208188537256927213661818395126092008925745308410838939816184661429886960811293105255301376960677250375692661589268801222537058125860972324041915012689735281221841971880891251854531034119323906492021207011668802855549686568992891113214857692261122416617082709410211941818090701006297904940601873162508664088197287866770550954349336510516381201279069102410825141175270433240277889560386500689952918652581478255690752247663151572650881921382912890768869471325193722888889920090674871071263780834822364305583961323973761474394781139874683412504424726813739912009901006443618503222601190542486756625878517120482790207732153724505119752303929148252771069323734390911366562954592726372350334936190254300801859299161936999928649284369002646602157253485495694792600005611620719255243858190079748950034370836803250576345048688862441730634349927420367329004164065473151733904534924752246733450805180085531662072170314759313395105155346499300601738869026689017226473489979482739403727740999484705460987372799377945739683529685382361094073640693888963296037839533638481553088959724143046389626043729207657640167004061604550300534327755761363865845505344061703725229284543350392159269587895932425191454245511234444581104431328424844613738168755918178528283850800842991642003145082077298574142409634444334518106511186425373639899996303450824927232189499771661165867135666902312139491572558077945518852185443567120285855022375927000030365262567786815057655736648305644094801171117289970326033740759862177156604447449230515312852561551726888661591637373231526896709499660712788254976715472633894479490807925399261708092803464120323813023552954953115532258713544612745667444254546265604712358557050509366990150586393633555840231244825487573443180686622697679672449874248971558354776065016981177949524434455797258865458176706533513227466119662667193910176038142332015697289936430006661616648183366344547176714796156928078245035836338773781438431831824241023497415215274167786619603906134958014878356713145748724390232846761422507432612964532931060191790268684783316394404565795261845984709352342088902036695953631743700041188577502723716303912379932938823468895037926231435536246022320197204263240898604446095923262925545947218163271445885027761787663933683648814324867581806785267000304659810225911377531543322684958803558901584941295206434462407807742154239054515009817032299341992910662991363333273375096417749835527163954455992708322280788719459241378228533560247100484484016460663948498376566653581666801558217866854763414989387934685775881308590408948734198642247191074061871086780735588477967953620206745852192642926488543943424499012676165983673532227791242122324597702486515624620767981663049826597074269913631420984167089690938810234226874086101115961511720660396459142105476976246190076365510206598397303842557692069453971081574081810606560221612207584952098049795778801745383148158235530579047692423050997122844532333773660018578054467371765907868083164065556465481896989484954035070647917331266206143367521667944128113301596268681369388235913880361414463078548022330348621490208556036237310012847355286820399658053044835451577044618499570605292619099121422900293204482193026703523693305571206741563611862384232496145845835856149058179495546854586668349241631391279334337366852015252242681023280635952018835908835771873993672254146728832423244864689971844575760663433428613576057036511374908409269283922063271839275244762728940247183356007170548670079373301408650139404091049720492342473542979227561941224599622012450883860791822243077723170691023452665446380633138888844543158862815608407808728346345554151977590697683119695965916741738701481652204680202280044379061367192464006195935450049688262788028954555059872558045885240241344422869764493934511792394135092630920419268971072747913065332314985822844742547033406202309152500811471803844507086661983004892174102430438138642355522669282536167909513099923920896601789654886475353107533101068796220715866381255466818747047284343211581204605501831561445168842446538089110993790853256260482275047650166851606655791263553472952402342970082713091080709987090442359172968885867182409973381434329954022176737515252044569963172158202038726778086514103074507769653874913913890707120039376193696837372242653827317443007218413313870638183281146933071572870184435690548696274168539812345360893904941941910890331603212726553347829381570617478501995734394832244726135152025433738821877464276676267269528997244205341521705100733609825474154304972349993243365727210314512562627626625349956277330935162511719671913719613099019780507852413721374670307572019116906446288499474801283888584845447665686936192539053512417527578705846757904969399401544599993190210976627041998252025420533461438644876732425846978098322215923300120958315838225188083016124369864130783671625375172355245390497589785391578840698839735046154606861317874577805913079857365025393392397044676965251062022527064230319070371396307218973785512339991963653287902069284873646063429551942964086089616110559835641351722901434540282465710047755577982322687307986089078973928978320410669449519494745964054201033322251892564801071317846935670239745587388186030564185051887134064781335329632423986972355230191339670159525198761263473314716800972689276091608848250702065402209086554540054339895888140189907896213314859173004242864378486916638229415326288186008419707512053239299484975759439575430808835123835005989118990177100400575934714589467874992541724055127684101769151094030057841709905138253255542854802861155557881500882205479222904178466026728578067670670288283010290606726930777242583004301813250817501046038889780976720856390989601690367100849879118544578248639313243539285773833282847182086557419025514554912809436312485134874004311583479927909929369729343666716114636361362808364849338379812388990123876599661354515734150043576627151425938947286501781345885253503050225189229460115370362997207128592654415984256471028439491595466417392138540281150555788200619683600767028791295952167942034750565888216107354444530813577366970022816621151244813437857567623612591961288811570680712182243248755187788686106886241723396587810951263378750304670907339198135442726254128999891734963832830487455779518796069059058267603064041452734444040093423696985304767078717157015125063507830180872297469823055134919548578796219629680309392608930267890795103898197609498466675124988618927201926001000373587690775481648884165725021158940029547981938110329063534246930356194864712348563505833892870028300181005783808619763284461159082177949470732063418096607665808021519273389807793340648789907844774223761261896779204081442058606553797406272578952020135590412793502692496316730981224655209992226517202642686637379866777642996032880506428838237330439609863038581342713211491297302485042756185789264355692363728946036853525070473740868314576221506075037750824830148541668224088968039072080749291934373586031355166226386222428979645059937720234616483421960473085616949055723717378167872967568716736620445419611050580907723629924068408223694429828723951509992009065453389951158350693711813259927335835743301758284772284551790579528940812223172519198980971007729996778927810294281599182946481972366789997831509806280573251902807284233543087640944010140259921684017320294873699454805760664700638889232730668637253678852501974509394380842294849075515376250929398496416273066346408353941763066306918927384952777146833162054486687496936416968086215192018873831435436104777764888843605809440389199938735042695580686541425403268901473711044257679622327389956512673915909837019722006189136556922240426405010723911449327007825171722541750174408031579628049191483383462294538331566042613589928506498978053456988227705916517686336127284452019230541973556930501414433265522790397113181453876371713593922836767142344397219651238915694072622302021935885336798119956640862772887100981629291849352324466970130249938268794603855516105341224635096469711984649368853329136751268371322237654366117492261047791716030223012765691348407663122527997251639213287119669460066053087985737819462970381766988168469425239581628563793801530923595689496788209664947115209444974916120810311715058593084556194964956086523281683003540537642334650574875524285913089055324911286046943207728076794919526837965720129919840059352647409935311485806633828591683418241665613062326453887935730978898919943647990649243819557905998539087008917810483546777088908326225306653675245757989195817641589809954500326762146163474371465018873287008522277188237089004219171497863663564967606818557962268973608825972979457510966579203999521663098470708784153255608977846276462924884080252423729298586772093232421049902371790095729090392168604124796974659548603685282440377239800617353332722100930469361827844940229481233064365433427298222108954309276517676083068956625401097274878369984943322307763584634554139921128169522260600932898104487847003035819795107672052762076139274530896137886846760586130350100085487509665400192800276208544786479227797138027857073593031895913007450852860888554292035537416140122453203152953796421852738047152080906279429268815947408182218641045932084974405062734801065499044168589432875553621040274128792045433090588186770901958903401916574906213497124525929261992642928252810480151474342303508852394147067960385129718029274693432872709845296475895681050572884505972320272994084135098055332550619371088826164000403290278081922626030039534770799257584139998784631315110542456080096684800578937366991726141235701357439651536082457957753579167428786850225004974381794362901834152113931931885779589705668902084630629666072860005239229767887924709000729710208680936624414982936795722004774763078455419340989729658879576657772586860603517950554788792936562224469423413637863013556044963277096649586641728935844532039480948236101622130779213919464961560453316556220113360681641586345188361285780089994090121751864380286014188736155065718106325322414623698581735589014543456578742766996574049827306354777073607932054578864629259390667585053675790054295082622196103349257167088561646640063692055137395867330309891056702637317219245842909252077240589254898072064984775092623080430488073545175685979843924356690255277237413322893905574774204014539629839645997386619135731931336534100842447363243271052871632507983634254882716830509142914674511665017068157828906691163771486829839434003514706126806280837925246542365776179776340546319733486570333993708688553072612613447593591040566103190294526620755946013513757130384784213578849640941850404360579516339031893490646365773033219458093004794229252385910650157603671515702849944161884192798015934984707515018242395566138635421615029693162217921083187177729954744839247302389879377620343590193447575467686127553320636545169827341496949734109334191189254013128696940144814969745352185256182844139852233351480976579622435799938755802567852411902279467717704157945372522488807900546395402012331883992361218171244146701186212473296651584270822737105245353156048355554746421605100334492768532949623146482397732937132856555908914585193580700971770591386123615132307956069539725577262635960752485278086063586699654739130826200624816206014728932588594233654521071508392346068770386088487007120774069884934292107992181761046227814703360694566014915489978544140051748585976048825975105951058500370465180556089742821303936092818582227377564646575918502399823055283592086458501406529779342058677287931193934650139617327052905082013669095249597644485251237550782411882950909796495057239225433340548912666997823060329306542082578436758577341176935826452980125685587179296223200326220750221711883327825463442300454545900599362885671462077898580026628942281280689532904790623417458569303926612442976142508057179427322164398781331211883112013597557059322997970755657369505452771143797701879940586314484914498996290139795587601483405776867655527144946488026291137830965716874369264027850757696217316338318905286487931434580372144496522011481472416206468116693770194366824797294103213387245054462065301794847818622736056321241130539091490108528487240873608707221063424371476068547243256715538072707103230716389989556018873707706658244751545090057365056495665255459703403564031963639408322772050132724942583718100444891747621553803004287377500090998565549453137157668965405339948337075138867600876865104821082697474206421695545386918829619297911233141390020845223812082014320383421468745087909954852878318709552825508961610941675589577026139232908063610723393950901970820057702417983386212613563540660401955124156185814208898411299308324410213398266679913707683498067635940733237102563500317348731391924768331197298091396990980674571037768692694843751432655959042381179590995599291247174159818368624853113217856618277449017849240761432689936157274451189536393656529349673344103435491124965316744776413146848704477045138864120222119456800633028237430966435768937506433754241093352477463658003769129616103899730743623804345189647989283709532460778864446050425500987346668603845307750442825056991217612862378787399910147491558749974718446473828225727101860607403107216365213714225051615989893543899704032178096208524038394369458498401470349964382501610015244306131277588499437183947937905948648029035160299420337564669346377027087263812829263468412055629609107477361090603235516625328426994160384617779829401065172622971671141013299089468006221435747967552555523229007181230328954836171860025910634396047150158806570111638619646388206145986118059981868626000352421455514796712220275953068131065483746888199771189874289160735533615868475095477990465762084309899676531319774347982500521540008446150332982075755231368517871268133249301099380949510823255449240437334038204840394045214480060254493871175607533010966988728126099278826784462499773488010721565996146160512653270955111571744954707071457738750252634647934123062658717419366965757138129431833991111028369389421384486410308729066915872707176175477939136226473090078728212125209016590824223220760430383850819931678369532341712772577411787785076809818240567101454321596763527707097960483456956426656439718135957970808534334886560463537297354762731932516316537333809578167914659209421022169522630236427058816999073965002562891962020273666927763602100793827628314506616944238490888524601917824266369280568389964123153768091098078304642464849909663640463102145640746277796929363932957350034165185098283216448164286436926349273640049658153553012194804004098513030671941253990967973041763440762382953947035291085791694942490614647212499372071059099342465276536758228640554756414505285857692489319566665936218246752841922059724003281255662585545093409920654472756951619423529940826789377595445828058103946841716131989304606079884980987614227038602498883266987475617313006721239507923699932873039535496852202276069096117538154785199897008190691104206571525318451186026391208755255246979883221574301533339941550114107660244758384055564318321612066257582155677860572160119962455854102357302741390801681530379377973839269385044528214558592864152513548225310121941838864719481230275134812897820123136739458925218493585569257105505108583712139041243609940784578139645314764615373686620467689737420141124170089112567407287911772367458013897511079234332892169883844292985641507206963734488030370623288505498599172577605935744163347092788692289756784755919690096165649035525446331342827503685654734629896935151386750970222622269507675130842030474050955464097028786223647763321098811626154416096648121878577940786028072377505019342016304922801512162318243045629022041194640321166076007079434091331329330262102419381401249235086061159860245266505745342154863036295353315478553255352882188455071038658568812782830110337701155588128580769431634188939699798187571068300177783703840523411473988324240636686279034867049209349556723892027301193749658617015651356887333410163769758981830417618441118668921057500769521940497170795977375390163522353514827709488628839148409525278379208554864175063570947788017239664174257657915119187852541301287243382845729646907076984639061117259124704795088658044109544246634286367253619129687230030267233494148334668292610469395222488726542965932949352236230069608852375312230023242481685318635543002079921582060771093363875655652377733789148278608274198121893833632666100310501765543848593378272594340575124814773242223523710952242521921150403290976038974369803360875086067439016908996983324432719478713599165616315221067256725718082401173470759360693466344287181470697891809281799858319499165817031926267260242866821892995036135301587698804700131717918826087166183122510420079949039936180240026411843487611041365326887049012666758072297164554073489859342793570633683258167014517945419185005400535012350028628037064520351760929283399279368707666753131767326719131196098101079933619099562850063945055701105747635117573364821502746826797639897087223314994696901992449375064657172304779786085516720012264810776155705257374520811064677247461403603412064761320254100741800306315923343531095656225982812447685469376943244650330716308838694301399900968620075029083397891757445832018391350723926925245004966614286137863172648814798022621708436734088290762673204047775761288628099474475947019809604948340783986534944058630002123985559764567641257825912482961129590962462372429866183483329304115883556184765956987420462593634505568407946479383111690104453946766508182838705193340567056413478136593589002442377524662487288783612595976774187824173726595198228248478872433293766377050788531027178187441275385257257549813663870826232131766292302027632997259293469839439483869065046576501838670118762693527473257196994969783642859203403454927892729016967075698486855517404523763317270292645325255023492661245276110416268426579013873116064038297272588796174508374741370167275721218350897385754238178808724548509387647757135824891026274208450264950944762444244521915603546428326746893868916889465169433992106274518068371439464898510073842060400244721988267908483468211834391076826410607187872327519582389370543655443991167841656808846195695432244995889113840457042821048848382351528869678397554565333340430756281536603095178812000719731573508492643876451483810222081293649584735747666889930880658608924642483747820355604142630076276896174395701232039992321238209122921694799207630805317288291945440117585067544470507681200410863784945917955961316345522781671723169002698170910122974257119437577686543010240961090306733856215880706712918020321338714487666336098329603194745311700554571363804310176306835519992921346347416463072693502785783740179069390074884014505864882716223386408465680208187246827409116696557240005681577439965922549416170443246401562220531293262247028273249049586884052582566271972086523097054264772473818557253021451861227256211852583549943825679148701717802181598366988608395064181694421737049823928785476860761359958200418224343127322090609372088567878906522453778899483690685151111592371529149600255396738916212719051237840980861377215994769246571447181077331651913046903917164887213991044794103903979636404593369207396589644116963029382731990478147813665292971251232828192727261061282330799493283264254573925885247194066814310592527511678296428615636763637400952051228481408195747661613325436358471944873252370381463868624668893877936256669207210158200765540809013096148516662945858856468690072968089340887195035700027197410988385180263907261251582053204165633702590983823375103188139689538880142963980134335327980953555212631418551885166268070654429571159536660258829157923451117208158289949348928544706410440104609344992813672405302475468788765754096022953199809053130909482974474718527320680817993806991339461435277859331047915089325369907474953842585057645147491999914725523708802882060899011346655463613039132599156404176892988903110091358835747907751847320788669261811244828920510003965818019920015080699026018334546719723558879547577593619056909934946060759282057067608148073547573800993409249613744775418076384760270542032593920298006784048622739842155611431875595250696988190471282353137007409240680540312303936768693815790532963262083086820640930754651675672216977757861612824932699277512443591490886765346801600206212552779251086660065805990767240605170883636499833987883755873310111075461961359668619442986235330080964981052991523092879331357094454287917003831785284932241894753723123362354362613183037555208131338544415102258430944803362873506036567894949253678938920228054119458579195193083810085769576984725980362891183402831780911235249613260523302519293185828013179076293014018059097701793933340542721049288630166764495578776581806115425597177920286036828000608508842108721364695946789872234815435478082880871679891229121822662605620271974216404957947351503678715280709739235848741302701781015425214496383537116724403314103409125558597576449790796917941362566570027172297588047712462804845943759759225988359263828647693856901342738358445492088294949446143834288357269218438291483108290690717451869828238292795997536726325152428367860671437717552936254639868703133450056183649283126018602075159437156817092441907813296832342528696331305978676450026689470585739776005461913400255617669464196892998793874373518768467791593135735821314312337347863986846785878223496239868175071771468668780637763979626365675455633614750569066748321830637407737816158312806514808760914213394328013212937270428267964354704464762561631819300849321938999243183907382554925564258333693618102403816872805825014158555898943527853193734674646971834250636230345176572319192634083607257395894382817196141225151364686916530394027243378137495172204884833979973248136324885394964221455749585134359893978851300414804809938961296576283130824470842459155809618757077327360885243405090086563843644497781320707107868300293840375248759427256479227174317650632939878362616442851372378233470931507923176343417057728920134621890697103499424977153798575207258132563515655699250368378538882043004285409067083702563186441617928785830636045762503726753927136567396882244684603367564756391923101486143240002430492951456835108074510547781778802380987891087284467091061081604788505879866932515341173576462091991894816955532212656809935948588957785887626472664287096075442030275307800017279638815362145739358774299237083191563218599285814545126071830458063048875114380509444082515038000375401075097273885300769404280820288480109755429662786241242210342797240474524395214102896711881439658480735271976533053786179348210264079800341479065422422347872658786607779759766864463730395866193545828856709575733030392348050661463993931234746620550569878848641036410506944209318060271958473771969575994992389580350561786073351488101798805025600585430938409416534557187054359330352005123665847226225749620546107912663447913308726739475583525754608524094905894167351803082795175727447273007517125778856847090933653189854210569084659858326943935647648315256092531271640694062788991108437981231529847238844523365636477674397475854880506166263812346475149370015932158281533268284417549685277528392615872190893952150974498040815361650251136747106023324032963235468343642553231473431545645377105101250796452222169538559988152235967818121247952661610530165533804376376397259877611909550664780735666496166278812720431907780996666662119053676400955430136351651945782563260686886247463772790521912357674640364823329914295942764207688038076981632366477598537880730887628275532341405575605235659331230213182789652003718395065648868709413033100600099391409846597409905715219703674182732764325419041926906024807588962122913370318543920267959774513237043211093052743658145433409615853351293459958204834437860579883373714463236130081779718553081349539350606074728563554541529317188391268734109958402617827606397036376425179265439016951912166062366152777860618650361509708821015037480546913590021162391198208674662097318862639901905624203069333306732845143918911743431746816923313430747255024343915128886148342369971585491193726630922489764241974582106755354282543072934266852728800913760630991908691088825918827576454912230044874908148122850537543418167351550399028947052211591188367088706419041995727888007580268769371266240063441582738213523422369543221796959062558605856079897963152172736300989116582669298602490265132616976788632124919439494237678412059251246569061800175804887910322306096301670128015624219905727188530013598887413650819142678666225485291617082096267792153903633452219302146410241715686066751878846571679086170943969579516837053019732104860961815926413203901077680174663062035277398354739045077287560130285859174100073405060584927585419745048568882183923704011350116519174319485949723081085562281280693222561350721821443466478914793501245767416581276367224283259514869882104742405341612001699225383087854740592073004102069962179344789001259130621790791040464689679710369239420218921908203227970862088164547994342050129234962673619690251316202146725376481379268329811259224646154312374517909231477273802844147137091660178049017952602614323446722038638508295212316460258251903821902051467787886424944900774495734070678104981184180257678090388965384809006152390615690058106644236530659154189295331196776493012400552949074292720833077305128481259200910503021665112798901593881282611782026145915185182009282758814466367896664249532288086664572087356372553435174934534225525250087726970266147595978119090602674924728546294044787570972099679716075782144093264601195166961188152381402127401683933245026929191888280434796638940476234888151679446964283973275063537666074490303069282081675332990085645820507948163278006753855993587383092732045433287654283967154924861089630885735982658946252438344752570261783883538243686396959993562502754399075877583161505833082191301443369237749581509600258104278474127609876175161670789971830085196414683719824568795690376412975489055304085903495860693283847440232282905698469288559257875338358464356155948149503302567115784018196877125266063644468237585263617396773011774227120247591405692254397263725413067662614915953436803971009893672609917642492604874865251865957945467921771601177879824008594459310666135569225363816924493240727905416306158145800933802515826356932845638856193843275348479686497100749848432078331038305576738115273658550830808365787056816891561512631976213176536982553542212844879409333479474720093147900262938283049276292209571623809792453825944775447848376554327711701379166830770623173559452959368824677819556236401298922597479657648210465457140144613977672680801632102247057564220065204894398956874758822728110119457191105305106745872727596451645743555652317028258300331784447669249874803579124973859817264388232314006552470024559340541224395746019869595865089409072990702683632674429236832824653488051895592345128770229603210052168589903166463095322397990085665889031434000159517616325284660485272915969888455538669495957180570534076788998662316643635435549630508291830430277809348472869674338254468870618946959650571830902491706168884209567822968797723095545936830648541249048286419965092338272737617711617184465981754230359718587507153181526221839087319359812017032812868646755395316597978534433482897645283839628451594741883096632849237550727461113255184717920689246388596200041711385683081177270150879266276821908516579989665457656352293398765827632642154598708576377793765649847513382753258408271030086307301127889679086098637955113404146036886493212020721427351445120935352255061104083871063680755636801228100807279436971086532594702055454705113268998317545370754534629075096424128862933206058985258840220290686307671866578753131689982759449132404973485613088148532733726830133759858726862149126818888063752298011402811576324910117266587034423940100859731049818296511976571468571970601613681978937778602766756310862886705678837403735629140159015361785880425983784571342023272991269854648173844536843353636840321225431867949756646339173619543845855544192474320871594582020217988073563531663263458140046075940207188059786942198821448810292881037413242903242826551297542215509622395578355280489415741038908346061838216005195672416960418482363544416986154624958643312360640796572257245567730399007773378369954329418233918704861626093408513249831056473001720807724028941934021784029275788820478086670504785965204716798316761931094894250254493173637254369469058103852405394823224526953935749749674087096985797627019686115116154389858685465652649819374041851278764524823960255460906075070834436796057311424123947838974703307132086227530929021378843854361559295214548115414102934736984205686270704348473984505293502527250044610310077955886579498324525233457821387542829050174706055000589875031452925354101683231280702137082562355053730420467535889247539715529380793680836282251813365537643576605845470490317902488435349302921399434418830860282515124712278585648157283873629485484951015836192753257496558028675528205411033469025505053477356382253513991179557288720852724689007916596853903479205788032369912590853304168459289626190687503022925700773676267250258580912661620620412156075352616689342964606282568767540189261792675932447432644176185146690973192342829125602624495897095684493287374005563878156082670311195272215372306071097708969643837833245772096014920444894616238159257861546310480515285510971086155627384535072155487850968016234037596502307163434133322778817057529969494632101614114470567885018297207407023404680801888727777858740233957717861595368284343266877710393722788342622164887823099544485273139574734450990630362026733506631875580201265152583852667679430611800668880641879650840659935908436653335811036852602022941040961211064995451201160027081730873263044561786546323525664052525171426291943531441905303766250278626422890569982408766030149158378272921280018732862106359947083062776914767450160594511396526600944040455505621436847624224628195368243437423779636811001707739768490224963615757378033006841711421060422814496933010694142819749458617912640974927791376861970163783329873868902027082967142120668955170547835209765039338129671287778648540830347383805529234254742160885301004435425192435023723951064509108630981586460756787877480354261408402873576645844095667308486883039260587027583351093642191755538733711537389161542494820147125344944522506783734230065255113382672727587891812162014216976913789509884773665300103350499244586043934256755557385561974339314344010129466543929886047374020769316627679988371050099407533624341923645473206580941044229196447304591898574087607987414070815427436156295020826842535695917691764103591136358591410483112952096584542138414916495738185148004155567593052784651073938436881454752356739565865600473765645993193810005652238269034064258637349041445332794242813503838309794371310066375451299270845438943729882713807226322747229847432062301142747656521303162773964447771517258655764003040201750738177345461439213237594630501577222125170446191174014186373131990273775836323054739394112393469464654274310330177796451775596805919916355924384658144455380403665433785813901792577295668279349880887008980727654797844859941264334515055451080096705710506742794423996911330632360066249873212891969376343766269113389389490530817328954573456926706261039593950912601875687355034728070206643376792426880887942738867937077790864451411496955646539754868064405061726357372820498666008783281961136733498302746319619367451951603440822891327339382477588042550768216238883799998487003323314858068883690597279250592436093019505673329529329751631129446027473955901506822745509810817682110115007761008529005739391706677102392173426719497572434573582045131998810668552031973939582263381310848573147237288237228940178188749271918069857338840305552854442511923798440925512936520714829726716412511214383123501875648770198656377572455862227239541910449714882917709987251912977760558339234797515039730317868276865541601906227405301529120774940818079174228858270685333977726814559350030335972003089795115932972858789191057405164678030593709905179258910345181205384390752800796025335800312544428145089375836735060024742854469811484593152400371970353158116060809589223366656145448901357177006714508632639831112445857015959048195187094025846388009232576243585444205682518896350258546082929425948067282696231376091566234014283404340864054620444722861586625049249854217248537280114671583732745686105483813756584122014641362357662061051866088414273023777665075406272401505723429834208455350485406819551852632345835908807426211563697229558271628536680790985110685823143701954873210922647902631425328116318166686478991196356101429718155349192152413932440289625928306494729931885036602576223948453703860206584030486083215444543893011874650780316398151222964741181837034449583514627919955757492828523189153963854189327715705520836155662748170283561571468238542063520640663746131025049048833742218582504051692549039806118870114024491249758381619616501318829304878871229747691712153399053512707328634936825560715830231185706609776094681036205941951717696734200192524593086435727179792393187474608637896008062872698656711086651937761588204987417116977233266076833423975379924954308072870003847280572887824772675748634942574067579876066801290548669869030868899321907490814897795250390003275494333300352512421881525104113211969953810676110877096843237551321260722006826318220462442876138261187179017471691044730736036240744128342801296896464095861898696896196088981560703403380958181989618489820912239413122096339272625325013309336259377066825068272960677202825614223461120404091010527093853489188880174942210545917038262030991810515260935165304993783035067360458324058367660852450536693220635525331928230278850254869229091634855654429758071521503524098660631204638690578415401869912172510439753470559291859586762071176603389297427801829763352170768055836138819108855183801669608122097841159266472830492806186066103752167894773457086377084228804507950933469412054475016175728897661388658606920048049533773493607991654295983566160206403096090315833086829509377609981701388048570344630926118947856895385169627142282070374857608358404532605155699872830802564036522022868966248029511654995643473330503614605698092685561088977109096272299479163429850317813558088174286718314421068592302837130695028778343237267750193226361989618427366506220743650813977372373017863299175168216221617989381641191014158549443846374981115868272105087374220941824472725655996747382797116146031242410493077930735362661241065076717343327385441406946731183242030236449148392468321068336758931869310349367908313977012034208062114193825287397358079470329874588170177735008751027506505514195583366743834228592017762880171835441112150285770287903007112533558456245944073297640907704594105107006724996540866323446719053841452272118033473976964064121202255805617534091215485415576842421415825462503153092752852540274500693574070775286923654359480249879361854930611222584698321397805966245425723276118083752869844772212522185165134558463632698889273725101031625662003875501834598749725508810624066630929754317346727406145516868640051600174823587375017356421918556909712981585613599114932426704340467201169367586625969621547632992266024846154082400990875373659642215872049424119830400623962676327950799361318105441606387092831893364331305006782520760446859358472441880266435665479272615088143691897690015184441014131553380951566681533712273955018198046889012461279779275646498999639405492122321655025117306756929153868315667721208557336076712450094685952929514641206835577396349982659803671220494946008516072826687540274285279843336443398255162730236182969139474784499184277568355692292892168177611779124418616385848237325656054372033727057074508260764547165246906579576689815569608681371769033183787509153701339657007099032438823941317235160117591434183660984763452821624524382529508002023191123417656172682709424778099050823695015156150029152967337113411991645239762857655448444915490672123529125017735346295218590948954020771878226539064839285763750162262309823624164221781471935490873969930435958328776744611664779638406867217049901985613804368242418924838095882295744794133347171722323191623590840736745526678754684158163140900270174627964810959705618284426676030728491730643737527415170989832527507645122769631362032237922020630915154125068135002299148679895276359660631760988279134125550079930996961641034222589928529567278266567700517462567189802888313317747191395601811513729291343945009098824423896055429383490201013384002705544771458379994454652303342346646210206871603642300597163982871521809005866163222513534017281935091951252305709212661316426637229224541025263888395780813315084868514545750408600667956307298676699721056900579331323658663854713360053229963919645139653850368470551611612809205013224125644270291566282972557805891854359333268755404129076470858947072687259510482230894704854407851047561346160245514677487937399524979808657025936289811165361680307977100650866475902129406426063998883505509299217611690098637595240051599732942449263392918944031262433576595492473750904778158053038990988546098653820188172812980088629291264476438571881445366045220272215764393296875156798936500674360418418748557491638144858915797504856566785271441477880470929711776748036950066602625609345944072930536181151275705950278565202837803743030927086604391509784586755179319411198268090125104410082064355730085904668200864129193874650028035968296638636029389832210206313401320017417079907484208037169013380693721648067446345167802969219759677826853089255237453278220870552005020964870124437445358307283085724416058837212451843624657831174580119649603492807253901857100244743037844640430366104769849012632405498821544724417021169775350457687832641758842686620032323332458373251926893132229946832712378639180821214426008314769671032513709540439931271537330536664845036602801345524608239808934949957388641266689348913502399730271364591848718476948235624076556794723079140788724996587446187564672595100657306238136875561208083385246133070251716318037097757654545674196033246415999531511007627114941818059998694742005787199223982333277294028535615114900886921643690030976586445263609096099608230155197778387333543256644069349301692961441527147266118327350743482689043936425596529297565145803549761333734189310612523187464171584483472757048469585421904874398734237590448628655720266145145125608808019788982158432913098884373483240916385290735030995239445724178842596150000992617596883095248395674312963421745379425356644969338943311358300068244285389013057394482590799072672156881636046480429745771067653590399935005750749322840196150929345999129127233614765703749639502478657232657813727757016975030405804766846608902715150891701088676566273790739481544215643992744118886810934905353586881462458810487859098316484579245783905671634766158325371657132401181367881917508149174907493558534430600766903764624362578433102577886502278062537106484071737790469060432526527874653740370323737929933220581693077056340409957035629007985725363680118097521033015589254535879560275316659793075940673075194923220909528916827013613051020425837296938993473607542938238236489541874538902744048149395827439279655796122336871053152302395459601036386951715452352213633374491998072630104417730021416324832203788818780272153444490273859376207930404783806327537519148990960808840448396543472850709534996496385023328148575068088379279274799823884140130704083859829871870433149370209448554452168922121871448939104070588522248697113462333907199143175402023988547617268231574760518502273553288906589967857676305928100178892100115561479021579628838995614520471461450101927867691920325123987712747720577613077268306012479437294355560406534509516295068428891119069330025342831604275001508049224124935303789808701595701842845787350411284739016918126117828150791408419986817044507661673359808331458235579161748562149874221366723909156955201865215008662853445887001472837595462439170622915785009430253887517053921273475691363794756682031897028368190569559541801256879281675831115017959498315525733974755308528628713060567697331455846205511168689514298222089691976341487397931760927289669531664578055173774326149211352186849860255133301794102656977509136749662361532799946562359896052699995121646097285787990072594899900393954045567690184211204361838088721869810555089804141801744793149025705925627188287129494258962696255339113824259108248082343459761185045585036364709279900415091713206589254976898800883137325062433765832098772803769705555831596107392377213506184229318547292521251755465103543587148607994409969375699319457870297126960626392302566049131060915048304447769563758472699072435445818551245943681739481582620693240258705656097316184950420831254796619744184088630719610663371380151554445797292251675871543603427711988208067560269331443391873048969601557081213792274188297368261961228909538351483740225456129150742972363766987587597695100637643028264459591563409110042693467734111863023309700085615873824248584590251484628936732897626078410823285152939096444805341864598335766620436786016736604018623808092827924784714264938327997874080994561174658313198354894836818036710638453749049425298606130968762127510394787395897274284726946100126393221409861900751370333939616603470545184085126749304388118333081693273231977001156018630746001107081758009916571611951312290254528706103129102085514574928646313011263963512372871608788039744404317345929293462318465170064430556082704340201141275998761643397303223005782103899622854438391510487534561033699138251282417678589699182202762316301171126384712297759784298038799029755631527035827122860230023577656826425161928935174400520079647724451376614905114352920598571096523214898965309778937376598573610421850386062484912192788419369805381449920003864220075232199516894811514579070162585563802554610231631753361089704999705656936341584427587208595398350807792077122448948794556244473217722772878609795358878401581249757813582453063778232338365587981468515399430110892317560644038162691532473103941832988282087848415232548517428525342991585643083760092400168436292530332189446632459238100892491073709237177700178492440476914879307597630037325497444784791809914712421883738997374073684777968013416381583608720692856755407960241520834313043743916992242363002945932462974689117300387968607991448619377559996222053083670952266960038519888158672464456045419313664025473693579270926719791615727956123164095665231094883287670964452383709300418530086054599383861889278489550313517604963861448450719215916154465423373906315447816543468985091245667079137300537968813011801688400866066207390787420526326782012047236245367965714646035047146836492591033822134488509036091181984464496506145426633850574442890817202569284170427624586775386887208147009583542373610194005774840330053803791220126333483774221331750112810885960557105895950637532094660724354591261939893825472420163869586584824881009965582102382834446960615287202264253168767002394745010455289112064679908848424311476537148610030502356101364956116374736339493578448234039625082419447873133175769045614134119080895514602145724113188408479108166569084181009032479995112987050837395280880493734961060097906451620415794472068369962329555097690729054952238211813015841495933135792411812311241936276658009461302215514080381201179854566558576433327520459601932885298836743749681593855134942738774100141286195168500578506080464364116688518873378893801672102162848988739959580378159220994367979525384374409027079991060209646001163720843451112701463514724517251944373575929118868342190034420189465126938067991760815851263394918188722968560008949955566078896275896821965719893838625344086603893683273597781415959966913124413551188509739350675072482986175059443450712936423873300908455557254795597308524695421968661963313114521948848698166234195641072373892349326985335371246795401388733779562077030553450189359325636712459819857636687687632853825053977595179128383439778723751617390284129397026265092561045179602574355764652101891231909640622086264585543008887441999534248249247547991446759626504210036155476295342556686271344369383893755241346979478977978478004467946870367142170982348465157296411043294224811746107411167784585161801843503250128744735036589601049961490136786301693549504548693089460719279881615329174659522590764325430096130934212435539887744404002634904675672631638604684787625368528694595953518915890597634187616279985256830364688973833035009306339068226966020652645355404765664283135149362132459278635887250783293417001200638541882173293056351693169438944551056191693322596650304896728601413788371616326462489232693400386988461047761637183014305311007468873112671881218809402457762518768589346280876418805478847621872532655393208380619273770497437880758167352769114229642489162549476812543236481605414524800643833460085966550844100907907681049729116424620235599939047365808741172327051175096847682657183337865800917568908447749691363679596506907655001826574719011923085879121767092656830167255002671506550305192590565903036012973051319931561570878519926530648354556466771295229270528242719573010046121144120274007551404144945854942254815482420128663366072040120970601915415075284115967441681670499561699208886267247907300004632938309366549464493260177149578307408475486423180234241490489540459701766096892575563308565356566865987542495326628397042457472362275246615602224471231794186417402404895964325059757653832433803930209137269315146486876738121132251661043355526530302320009240895922176983288669086208477707415839066733143068413805772693703540599768791405023365540350405019542039298454152046894916056998481897516291835240859742910944095777835025562530854394359301469508695430640442295306181493831947107610756498916795701648857067328090494266525617827489868460175394893500164909955569405626565727923212200998736834223168664950065470569693962875713125015231485194712632556814830898638316052992634641512829643143827735107602145739761113530321582353352824700709073697566432530813072699559409462577548408428721353432042789426094376365867716355967799940140635731789821414385297862581627663267890817449200427978698876958917236943654793660876821334536467902571984375549477981737060859964397064786488767695943104292648984796938210638304900646275624408511067338179841152122415072338022356846764011348229996449686287601636856961799864570569545082996627837102057708957192933152805562857026497699977901151754273274155822497044753000869874785371924479615270990796297976769507789849618005065733935456700454652466399307653805692715505262968793149088700738637612860396266128620356122931400194533313416885027767593217145667002130023180977966448801374074262875103704062143842667406763607203161617661071266186251711834164464553937469890175568990903400952713102955290501622890408563495183971401677908870556632964455488768187115076635313975864164223214975692468220681137110948960172598250635406207161415929679017636899379708829379681981462732994504729306739940018070850956517275676736174970617170375903540264145966701499675461641270708071039444317495723106929374919286510991909477377434080697120470303442955463556785408458669886551685912316927772962768037076858851355855509138062223392810116940735348714342073664490306543128308188503073874820836882101394035041678620678148444750833541133359557635552998199319592402573766476742730582210216381527289757555071178004688202269223009390695408906433912734715024798171960314546669605657741049349357134456054367104511501892434478143681984820244717987995431728670828068864692961065542784028340801429607602290378702485795548413052427300540566588022797245808944838540181550645822882443863088251728869484938871890148342433593899912896589777115627256489999530256497653002755089641361960040583627671853978068080269630094412599228630222882610414219326023875918409711760982278329061335851821860465962018706415428836088240500340406043916001656915040604986436798057942164583285307772543467937146587432361676354132591129956190073632131109789392421551019790584338064698923260054407205171833398887643760278837289908533243059683030969862425178660608932930896637381543557020106071929832696253822719606340653803806444875662214443183276086181804710178168177355866083828241983078489615124204433828381300219462913265078546896037207810267055734361214363674471355544224654997633628639934399436951088288209636861021998842715842305899204676977223581543474842930333488666342355143260739738736091437314192353243108194948983015866192133333553098720347052654047051497265717862613481780951083443737557974869381561061126521975403987096766637631983560811464991803683997532134329734539374987096215401964237028058336254232665484237910154118094310258217480225288260716425906048120903884872891636687186781383367785778654439909258327560233908792534866341131587255878491133864242857341974104639354354236752916099363537832182233191846592976494131221025207085870966725785488812381551756697877248583355888164725897253718441392639772574373106202827148995120149413158958435928227733025252095779705476499866144728267029780666978826978659352012568277306215005738031382026993587006269136733692050425688839546633846273525486092367886925414531171631655372799899293947393857908629798631196788478889603436239249151442780253647235329280734226341346085018378927555944705742548224719520412032375249549964341230676651555593311691025870039378865824586380437090240545484024797144589348867484428710234178442097579804943879677927111733491646830445688918466302223536545689811064214132258861311988237451109366251255342874372715019998292459081450977533730567448526469375903827471894833067702076658607890736358776135450550913799450990746007262866093505146825857279266979601079021207445515112663022723424489700807549500868925205081710621903412921850935349156618800588663856174005864122972058100942426455221915239032416445988767935746868650710424113709406081227855669259166910816352025077993612055889709891618286436884126388816953566421577434892704491691585844246569731037431011708984713692329648252546614702090509988947815207097703071002423176760711706001834262766604733005012246891332000575070411895634445148005416674016096048022660778555038924147287124430663564950923734226444472224821207862054911948711668727093915781925369200279534506732105788822995033719085471848409455034241428040230838336039268932630278161028370251862963696698530721065010862367768511828129605706363591069960641185928286624038359674910056187882027698107676042373009402739178280006834290340783522828448804394049448411015919735740410833185316197516150609934189079215250754018325306020737974596828859880143402969524126750869903215237188537075543915357794181390467933905324509987264574228340137840404196280552942854174757132664522738348782502713994548062665203372955400073030104209264255234666618869547005069357433107252560643152143308882832414876631432438542049122498621985505562206292502849103457609867291443884834616295878790879803793764832003757544997393854446109424092651418904788317198823881639154034678175313598238397345540619261725835644126763856985626472517869897643170947300270340792460802514820411016691328207158495569983034716437802145750813342675532010600212438911900813660652534677660958689022760661032085114879558209333498283685259091886169336389158203171612328247330547637205791856942308760817841520047376992799277731976376428265556417291480558838521065488375587475276784606606307396526536956955785129525347150991760853818409206711459772973177852911589308782761289710929408295767471763331502815294517545507904478569686819620481332801118863504900960919293472177843185469979922476951967666260274550244790214254688824863780061748332271028064405033509364028670481203420252093861494815416091049192876003238851225814821760660488669676942184331252697513954037787966822174416494104114391482661355074521810315256098840319661051220900532456207919993459458377529365491431527407926224838936419039729158114501856518657288702053327901844263298159711365034743387477879327907545740377147074530573393438625955395835165766790814114203105474530153803913978040401187923673574258679471081204646656508400803883751155260368160715880379933953744691500230452814277518485811514877818858050229639375298343531105493418580467868005844729098371030976482962990204374234779063870266844649091980487691281067451565594129235448861129853265616670781135641043504426855307565191000518695752498593309213690416512092680442358747995605061551767356632983649701850562817637627876610593791267721799808977971529122718667150185726139077887337774687190776926912704311712056461017583011126975972368682204323944451752569227341312139911602213553144423540553910924008044722112199141222340132827289771998167759440517446932579383781953800643972709139315421507647475904089489474464197884616759653113934941193514056562989892950588290654510677184476621212534588448918619255348571191527409858475537816167382587890814959235264919607139351770999881126711050697476114960809049404922528043035535846811003246966425474860328294614272329543837384138772706607894075451540066335921427893367907089169111791096757635888502240996116043018182094139281976077126438584723826115134107996983325871974103470030693127379028432223919329603815651982569232044248437307381731671550174398222338491804526793809159207146724652081498177903458324421049292425633027403221537732134565305531535021740134133912200240072851669297689865475470340578074249583654571408431588203682163066120231913015454394244505228834228134230272551145286573439395156907113345113080456655539504140375793022888777290686861862727828013140492248773319479468452439745456895609183789927291924225916136839001371822953167986310400317614699878082143428740844934375157508986794523014310422068986521097849983544596375810063110386290082249114231235858398016389029187591799983035925375466498068370248101189144903781109446249371951555602424835693924797055363497995684333413413959398658941947026304603638882064354224239518391344044189305075434138984208862206157592233151692318501284553569632320212200892673216305986449961624928952885141438525516564726940686791356824261249573935380776008747144229472222421759643010061355954482395495906391809588952746757775395494811354566424376716068675866906019615110313672919144673829493682699412777433886654892863101590747776596104580542607713455734309039310163499766694231694663262989011831478941407130061778913210717065982841493272330560035436856307653447066366051411885500682363863316228537020353354430315915404866880019617693525773801795641820394354835359256542495428372643302821960540158177240943783567975247015448987527382967782206271089184530234776911194987261223490093061776790394632669016679811253181417206406505921916306935098824671472140338121391717677826593350772380763787328981714329806344043489869251778589695478207881768204985404055904660566457901349532626452008203215880746706905984937883694384436916645669913333962506360599361442232860475750820548440952041595936432887512913754981021387651933383473733412936483279600347567052975065835377593402054824534605677476408246367570776375871334323144893341008544023119174659254741677992557398752869511566888953979880088580759453293971607261913529380866871386972176167670202004507329405848537393896780434972987452940238798221307475973075479799796412978765506419133773246808225004221852201948704110864567512753385261352142299108986557395390738675483917336906087171327007598803804991905369286187990492521838292065538373506200558108653559098170264065037151535698107070851023867211954502478372482004877475165920868866515922153599901655743854390617720264539476903456616177974487145176764455610414922802088005528412240524815819185787884365668634765769175012243484482641688605198456925761722084831050671728604534555321242839424522912034698373816426450146557212732647124247552676000105509788755668947114873747979878373734595774163744715975071291427526951374882677033466613998331623969905842500219980122545120213987170163629026871292366952012638650734932893399471363356060436679107378508805258793475246561499336611957088693283793743649912898695370910817956793541947111580526702751541340714910386150469500060717290099635428843103096049766406586179309449177275294054106885460948869216358022417011754036890150403460327429827703248821391888075773472782596028937642390572906431279566491657772925023612635040997937075739304603807491880115920424735776022761873616716770880981684734703770639001464947933401842280097342152620189150839918580809396089789497670107081801442076675404122016724852012232385573724894108324517255625332977673798116877427166278911025986555320996196192551375492859670374483237696469723170932870654906895704555668322455875307271096151298830296994594712923492358731629193480244308187070143970975790501688373528267145057293009143821709358993714899551207833563541444289860491968259168404978019487387002371378389968459502315012116160022319404914031777182552750583782193798783063064098611916455456589363636132146101186912541702381038896445014893207906495595201971430776804308287666505320087692814075475858136123598256922059719375343818626637049733922965708085369454458819460271641383007480276193287908512305653129582889934416782757783403980031741558457209345145178169611362215194089891870833560783450741359121429426439465845513486312377815227213909893000685311581828585937306805254608774700758690923527961446910862979095634161598946715668822348696191021854840266834751825093709057220346764692756791050324476450329309147133311818997375565137700576317787213949435502592465191936315498013561693444897459385871387275749033159626267671966697159973829263919830893687409609709571755939135760182406668948377122209577435727320984280675040713345426791516186792849873805577987200874780312968639233569025809016383996518740999864633058885876200101723251729396300705118635048578237240090021149708764338891712824257880932341575360838528089716429998002990294220359113787463167827458728202112526828982499401650724013009213882954302182047058232424640576985506847362027288381414132003505100951389652847226400142663569126852323098371668042659811867393641848119238800100603767635538575737298182229654784177106478770558404387730533933634322905361779842391505326160575071578119430658400283642552497136930871456553722130075399803003880669231627441221455544070916687387532619694121235733585976970591998103153913795029674972672939013180874001922678526123900839561815971633908698511096262615515932774179438045043282565086229084236520977034915366552492839796958069191757004223910449315362998258891021699059280287685486847053281198165828254913138997544620347562079427581563134948294113174770106353944255752664855835556392991554088750120354711506960131719925331305585559098146406837346869404699338684655183575058941086047044888509947540490854038124579681550720556173822759343077918224180922529592779186023503662130774698952134664244717253774537751253199906265608016879737067168886890814465487598303293033982088683610496399906765157463822741951468926698217554650051326030136377854460755182469453169564088979705329593660457339841070009558921141014332371319204312483493615852905318831602078342120662645245807834973548712710065630460175489654144614454133765719121858310221438329789794769610285563177830216624492594568839259056048096661879560707744581019917639890408123758453941666853382638458811365737664449810651820520191568474339233129208559610250898532060210695205109278009796327406284514140150687721358113824198396059312579031510251663257989302944839214079255227358524457744242281015921987227637889402159597928636674143176285347812589018477312515128019862081343030172416818705246830560306354262070649954315420881500243362416888755742749720553963631378044437172365938150922580483015501311913347860376960692969033425912065343178957410514919614949836798744278113045221120775015015272731995373312457717367740078397216307510398660960339295645677579300255439790738023200143716583942441693080262376780332974620083829112083210951056648721955049463898907537167028892433989691711764176442302038312931641100035317906947977462587908944262707599126628782453055481022467802503691619901386730577481327955754664116530568158668803373691805048427858225971062475721065883142462125812349290967972173016806280394972111344365168191806468904616574449930623454099757088163583809894358102105731379175066180346864644334367170627399508123512279091099013716353181167758051737926720996589537411464079947338865433731151448989801918959687783225357224976400534642487938830919556038958406154248989815402008303056178389493705240553141574265092705134009309048004490288780814084280673983690969963306883907216210463101679777404067432493993311262636281225715905957740066253460464375261561784169781307514752128129321980167745078883215318935148201568042791402838471393800121909501924549654512017172412119692390598278669821603991151559042016129575027310591993269568050426743162775286592524963543347105051400298527314009452022912581232206627630149486084578169020530446739597136446190084691545985063723956909002829507350740938225850194193407127550240526487304110201426120680224950886270753271550463845927290688623479198048143546199549566238074390833539747202286488184923470291393431905161870408766455883082181550341654616217464925432916502699810420089956796819804443654656903906795423120184796424834987054910981453014670616822421710176277272704336600479309842588409386548422898063824281052049853306209248680074197325532746443592180351138465217338024402626632761257572712886213778694200219371829364064467833667635964477647128628647016522418156018383635034347570138809910190703981265495774642479344064379036186643724092123236229835410423963506651923342383922480978510687969672054794073607553371616795367633084588136876383379637767891910798293373870567910548838854588173185705966469127681349725612290773666384167220880309654656865427783106445969076375428905297228140578306370527210981538193399792631062297424155634439425005753439358842488485445905664621169893793351114499639919743626132490192524666870495573685036936303428190393424838876326996277971588316676903936862648718616019309366226808144240936394788101883089721984032712817382139542008457748875817490033981814881035219734097015488529881138727674095351221409225532008832905297647462832566752852525686501032129954548564040460367164067865738161109282272536217306099501759350411288602482761478353802750083410221605471320612753616898961302679185093361672483681479969958483305496099897978263560598697867744760856488363313893706902662652792327079911744390030334824818376817701118933005490557273578510932213483167157032482914044509326203249561841871833612150560594210478154016107363458141972261721392990446351427185204193043436863036236370225436994556676343490395848328637024268370275562049609862124253852793290939774104117082644320378261096276161234717080841785376174879732999191243502770766022428713862702069861726521759507152402094946734909539830034085619570543579361659596613005971454379751727034907010767685027752039851321767908960705579013559515177557680766581232895691486972510422282141882998590351994282380017582124426591445146223796054091238276163948118249007306572006544199356425058915049795995260294461115295566982453075142158372746117552697472201723797197343030899683915089488825114968975719390469120721331398967689793328405265287794045637697883396776498130392950019071708072205708236769177125402825946338085101063151487002629539140247769895228352544271832902925202876046437342927972852722936202215053733184793491063117938103116666608953113750990924060108340306164393261519794744761562779913055475951544736949518003970800722175556435646443177255195544978812891168350185266787587523998075036214713496214305714605525492482606629328667623040151646569978476784411820903124581247924038227349605493919076917332019520530902146957085994701494767823277209991306148932584290049353719044004666387919002143258930811847009672666544321072029495113391187997545408909037370089129292502436778835636777023323815497282290620698841142865228641291279837468630756497253034342771754674746567317325709423447879675895752981216118705777445366248428649197329323704042871764263060121437875351107290494109273239957910966220763997305721810607988488666501335915481220214814394739490281339224026195983723599542806712917455150804383722846989246756989309298112875634633640331339647967000131452178194014298135695148618320431910790346915169591113308760969803452150280510500692486210540170271683245591123355089861576840700155498921158915823482093763246077085511520401939310701491508620260435301631241705685510400354710784417760557753987096372958519369344769583679094049474318781224724864879508312406809998256157693798590893186835107780643602537083760811948442709229618683891008133609672902096943666113090986885049643348738136986222431583047491710023068322083497540685133672240986954768450896057568390292749558387911734666700537534128890644953248870111286300902911408002480716438573585442569999006957575729268623144733364807048338269534598960303346472491325059419115685169091691752482752221214522052728962362644870078519367911650934418488357741936002223827897061328095039763762861905383693021614941713558409146576170006713718213167116432468471865160647502278995958276033034762159077772450339886538587759562294273867657533610021489984311595641961987609782997720623882460064142063089300369501782695909418313863666648996005043806387433093484975273450945221882907105047695106581112829281319341749453373233682064158973527107796504984234500976887315130961450463458404301024300493910263760263576070893649242835006160616582128937262812186708588595863876896240212855936410614272790811488957339565266046266997728929654640977314360885459420145582072402830475557771598208119599068798609331300377146152243577620682447275436502294326346968331504153498786933576408074166642614400103720701315098886349913168086619900762375709461280483695569377931009969517760893553055889073077239514660910448827690655793945875588841472867677188022091535872337501030846775429707640149853811146635762611249127771886217827623086379882510711455226979692153500443447760254517023681860540859558620687370045992319929729404583832568749584232338725331825302256155307282712541953344951445272398105046287192512692176972290240503704204376216679987860248895037840937959565794439916793149167526033553036407956649275012016087209968185903417212497579919955968700665185057501193522032444763680969332429405803389195904568152583143788710921725949875778357177728494663151310224394533992343645861452713167923964194941092635509891264192635660748338553857326478721128754086883394493313942556413343232986270427607721936744640751618580098510658838406740848112617620559994887713687995360020066906905337613953823779803680953138673068822610866167878331179286815934032465982308056326410371202317531195120477872238491650607477103033126946629426657514533481430241180367872435791978984066964653460292167027755123943745343776549237415248589966873063317669485209310611090161045568613585533565847518359191063176951231340644966301685769801569500258355564700214330711340583541817096582358849612961789320598674128984332040345255027164351761502552814461999303674722558136268496239359235932996474471103611792436770431720766642553545141459085107794414717538835568814248228111552650264331911972076311542830194119847619524367241874707640079956825040427763675397276343680984329003802832830970284514992366491084251747488658087158568275927398396700701530332489648522874208061937738781356889936084992738418379528969587015390234535721644154468519620379031345587056484873528483921552275063278797955682213496744878602375299963784487521217617799109767658163489582735657090113565809445987029267255692805278440704947680855309622498535662163753721157117395094724468833619816141042740984056875756008230878662367969802191767979349400889868575793465152844149625047118851424531777985033289546813919589231211033348370619288771040769458895060153118039917449444093949893676674549902459849981613658954771987805447208488741542194044423132640912653706404489448041131283886144091893600293437667024062626299186596444510534775633860266040262030993415714412263632757809224883188890452636912634026306081926226754084065326465003327593825329058079527178158781642674470954469352122446912083118256475017804409472360862845089002284112530883281956184342313877526576271237087739102888188743567585929906867689011929034553541170151835367329510095165359918073478940480355029120167085059597723717378136146962859808490331188797500998101959532630745190126839511092467289043548619377168533964618578666821157155615799171292554105074689246173720790486708268175823283526967378640393166976030548609066227413395361127982984522384226925197763346718252482580488640336521525352881052880613445986808824999941511845807907092331824505896156023509155271559789566097668066963483799145384188152893959030721562481301250426533482986236522123937138215731350604797713638745444741233025112159384223105652141184034663714063542170385525698776111776961650011423821642503668438855424084634473444231171382896472750658701815912846162466232787513300426270205547004490127812050667458864372658765327232608540962515478717898677851708621059115440694733964409506054987833644063229947770992324463515988827578885880016488612111217193546999891316329645731327430724758979727762020285475950051004785638696633965866998835631818721657615154582325081721650042692589789347247112520930718399203975729458815554327673961104737559475988195451041652288046764043445038251059218617356583600886450571872971352155562672090573415139531560943416084266934898654728239212485314618736139908539352356960200084541618513488509018875505017756343905851026032144964413729676427554233831944448374386830873444784957294204814257016680467563827552829976693810105922747689082569207701458464542320451112926816746586638634466969135355273612599755574795396312447845596234496076190784103507071514544120303096016175338701577503005104575801662321306239046891958467019231225142778379380632798107283041383115073552577168445538597340550255545652248513720366622784064764671883010778004617492791697734957226079152617691248502525008354101096843021426674146546774912883965740271763708781584735449811845055517231309470738950268089979939372310965521094659979246143534794633784651258836138910595294010053500462629952600145081970927334238482942301750536601600627200305230640975681386519079921397509767810105971973430734825937171415873962710012475380447635098126833843392674200639549597248454388034511389427857133073670416092515636019129450453388047087442029732959742587714769466301497491675077086197920906368069459708745998126744879656077780149601558402847274360505693388511536362743277267992957708621658489707337605841401060543148876696694610914418336178715968832817932208796458708554986123184079578056275904461694851300065833515491604665949546884987016083980892074135523698268048934740741706482245386764968964967914463783330571480297060891335721089157797671782771908813308721364893099805380624541495921756537625182728541812083087533805670888080791750955300061574312305653426619326408620671154943291898587007014963270718004660507353006735095332009590036043403372234992762966775577200402946737836609584475441414662821478127043166605400397845640617803778177048956917393361633180421742060501056027615807472652753481609408896854891114821534497582972220441864482181959089289993705393234408652927426228155224234161098686773531912445105258380686373333262887205051416371409045074897715519719042749263649765067397646621736327597348051390177424244821565996454301268660285174329472347699540002090385110262564848075905453516552902512219780139544264948476694817666150492074606366479116173862491978989463798375532334843068778415587175436195961747823068738658316344849394621599644223137621330594650148778498342667310088029170163114672910546091515468231490478534038252128378792550213231398939061229316232453346924423211560425788802049143613821051201625651455239018641694712865084726597726939826215894139478586725015010823487477211654856852904194337633599958981587207418622637996370299671960985432046893173549307192416661143798011127631122895235606712223192418976930741944481153014552419301598826239423540325116479172724416339951743718421547886489410576461758176780673779907434680836325710053944894163371592127808272651526577540916289609937787822350313745772712946308798516099137264672997986912581489765862879410618865046831332589310917579989064698436871331813426507831883078679196292240926166900342376014380310875951135452762861509822510600029577226727288763241477363462202884900668135144539085133108999735547385132462730170843780899377839605429700951442641334770582400290742854921317211693037188735986645127983395918702833895545081810309553166147741413778629360099908701166949498617567999589483243041448877365368705566040301227399809400778423844807815301022761581645616346142962986976969254703421417210472288788337112556266144267943471331863691890789491540261458679536199880169994080466451255194245861471325528684296027819279870219670534142521948504058705141846649593605091168548807321132923388345262879695331772892439016629926962683616763197491230499772470225838679305047842868942664752965700819367478224953460206052268728740318515998292691171684358981296436659023413708440440204420907917604477483251899300543620965750347972550871157840257633345522550328609823398044243082393477414909169806300608240594563786202288982250406584811328810553628515677852060074062106742058159080988054398331952146107818108278068365420426610493555014055780054178704044550757572656247677546678572268884602037815434803647370429166247051586835906918715815501097706680217580314500071367141946534311722139895542453772119637069651144088997684588810113961138972291110012189582692319036334709256619756852681988612771817843130646296781007007727884407386203264305618517376685163226228986519543202246143152238234510712277053994785386139118593863605023098899212951794562986325364400322754895178919111309868838861794814112058971831542622997698504199792876697551133756307473665263591757756101789793067576105167559478252776842292736069968401859166111498375815261904384522193886758720894462697136098699567527937864299132528560616033034720642796671164776492405512342992422128859067577215735510651338640160113636183388778825235777473437007287273553374936847467630246037730192204327388483467836343518565920884199595880470968934235955017365273662396883208638015455310768586312600014684598527602385687612083090922618571016230742993303826227309717403879560664679012456131022274804035408990464912155582194480160784728446031812759363264742534578535289121816196772301698752429141286967058074521283717782092747408599536550875242528428163270845591829505378248968893479490330475370363522445592521388177709724349164510043248201400593098139644310767129741770623847775226271591446493170139948356435056121929590683476358151568945876358751646884668869518651623959427905269863725592767426434598067621940968386200723284825121581822128355044130498993847856065313452590974339686831914284557819880576754818516243737250643883436832076367898019178610498381181534503140789878343619451776684778214611656807204606384653197490409202747592359321944981686184673952941290986924636746706661823973378549772267438259523092397046094596281783162134046890528617368446982969775861952791917198817870281263439861890901587690581691623619581104939767786762739755413359754400174580062476056084196802539810341662454246825865663751493531790334648050967353926617897560048958032100569583831114046942697686326573260128439003543284477079173974097315453261671864102042527157499294949454009883053825172808272023402395867305213202324704296874927580340415263805629916071278823230656156363073050399962423219005604452087184666716766538713935041835469412873144424025550392598825745879917137090151211887907051494483222122182628063481091232763573100791818803327503295980557109727766731942270264440788845556799573731781523639039495745256354121959242912617707880484320123591902223909308251073584885898163445090764562977882391225416634099736247280525265526030099041702640112860358682581181378756266589125533597289246014340408132329162074656805220081493316716845723560163814810935171384735536974331122270738027472531879578091247290578237032194463899155890232856553897975307222726913477660919338246906672916415077814998558435693383328642087567120638700090860230060361951131939428431579763394295221642059219668979276300909147023117934774292592401568801015133991817158975752035077744066155493738479986274321102974341081520031157246015157762966447972305280035426603113717713844065108175044352622700021398422711746007272217356058471038926681795804973299880960766592583999258274536176311705011425857229989493352493293546267995168355151203351786865136577323584302322887080991581951118073871738229782516520341992548363173777606272668544875034972249989072857570796892550861169160202304816633161100418785198395453009998987684681944795536084577615093849668404972353079527839655531743553950545209338192690840543859915478661293795000052798154373521020127643570772358638295976159951798688444705182993989034124045769559031693145193471645428603445091064431737879153736258170073768072556692659915120231960592279226182806811400740937793194855517764301569005239905241956220906282928403650537556759036067562460371365483207082508994910101536866635001427611638937405297619783373853720968615881310720399695768033219626616209129190270374093853795104389890391178997422858642997403493500496077596497888697428957467920472470544344687379512127812481301052199538189411742812807006426547645757465373535081470475971574034328812993075349485093798130585940987131610221793902139298322608779608256323415296327824215814127157252424816260167017778196442464602040175212726246184737932019090306718458956138831226485978124675428821496584176636421983955473571713952319068555611736586802947273149338447948416207249347198830423544238158912168756236815839225627929262916398244169361376703772196233253596536003979972911902129847930272608894648850124857954550382542947552854603814941962254053044986867676321397769606277420520772038030241163827507024972040171179420915413413844404310029415468809984132119013235895932836174329903021026035996060521089705218620272512215355799477278107258560815266920423997094140027991079108134594231745814015273454304673109504354888121679446135510352934275481981230261467878587806342430615051370686916504283396997778798343627255829002603841723382930707293221833173334497869775183935999695764859813423475402391883555813414188702461468772090987336479699846609221819087765714972957736080166179620572040899359236174696142762568210193743986249138263027475011546879015872651327889499091177119668597507940527171760850698539487683648762464529721076522203558056828623408656052515286598426235548462306501697801086707729224815378489952832976175311281765589358934107484896300262861547323372238906896398719099096346454244274248997012813037439439743660969613707451196185593011495649768173282604635042967553646797608848882616360090712521712100844559919041637890125955199678506106168164268624223307912578164851796833893067254032018179295437957921488090726510522623463102333483135858992774426272935872896070752923248329179411205562652130009247573354223336046828114230375585660416236030921534355381120216749308930433628893515595049174994559190762371781040432162107175731204202231498263095504612208322592680649752418734589999825952243574897433256794296225729957893259137857919108000353667347484520805439186626403237227001069811344169278363717331419216282003880456452485901970399593676436441467418386084052046194728590979911243765651750011294181246283272946522724818162678924972240263651101558931996818037043174313893433945765392366079198616944901076527313660648297294977845456596428982621116612031848040797425771893316683728262889390401365788735617041121164632205507453937714533477494590292593544702859411202647705563177679536284241481632339836711576875291448689798193783452472301999911059006229146176388401537711832722340024350318642184372207050557341847651432077220037773349236629857693155815042842175048073716967869415250117154306695869243574584545582304093735014678575006596378744579283694550767243015344032903404613260085071294146574475086925753171580880355000301093631342520159042268276613688603890816449643104043036271053733574614969396877022757533581767679653076657016913434914397505490924425301105639826959122625811203605595298079955919446297376926524253197619089495465795507776532119751966769182814562268243030808627117067549533201735845394057659943889051172731304169937561777420022212265710393222796003745028170891954117965066184383776892026252979430221139482518627466236173942024465173243322970381913330191171781919710546990568185492592834304531656729756810728777349661211848258422692097888141133042596578282046671413735308128231407968978255368017703675929928502488968164026996960152389537548661321931901260222526330866817509743015442559730537500590287148530733818410622624880578675960477185285068173114445044077799980481414521306463394769741526844706388589860114309902996213191546380642519266796886131122715661487192004600771134216999422738596321838772758507746164963108839334540355462373575268890094354718384121108004464898294693385386548327402133511601596046308120712597678292388442216538975447914492012928833936332852782541409460317803871344417355936277138365278114943380380810290566212452752991221017192321252943446540589702113565852707591372791090151834494716472920920034781715556717141780599390384953853951778626489583404174457754782697458062661109121176165414427305451756606538988375252430237478488728058054571013452944294567555446646636768255834049400359498949844497851405749820311670462041751936384337319894572592130624625596744194805772179795417334736363303405329247360273847049098243099925063495395848031082892297840534014833795275168609390946404869989879565551665275466789403664789300810300167577467578634116116340424872157760079239799698463040882891404023394771543683172489703155838770340970591602801490764373032529822372225412922690606195096883676456940634348880836909793456097137676966993875126873276111033664068886668110349725623889141236280038451034367418140816878585800502702356015951093971916391408800130084688402249880036089108614725868080132820355365027308316844883434353994758150882757188743647546848058825247933843075911673950110835202544679459575215934833695579625265626408410771778014415182979647244811712597957143998488504761331721762693419189632104166478625525510107700577051830811729914749105773868927682028849498268134072449488009531859775776682481812174438194409593890264728843998058843919255752438806536326464680658129919351160983574710924726420162979890141141461680399505592546006665416098971561519982206118237453690315411241605537409970242828889547085144997708183818713787802693609767603833654227006831304295066798813988770039322656571989778640117876659006266297055217110047114682497782925373697627038035246531057368199036540106577456985369397759946403212505071267136131872826877685211144854179519662602927976676806045792580014850860213214972282507442532190890032508056072925104490583000390362509888658550132155489187935927913996388120974226061704626026265827008549164168149268427553269023603500997067421922090310799045940880324966981379776202587681716557486969154595715289850720426307625950974560259388651847977846648052436724542714012075844059550419280191384611204719410607867110948514046848119563060968768246766164792383680059726708519277215307736737455689164744444705373013170406490086953986461536892674247671066936031767724959759413244150776599027156103543116409323493306458409513670150629988002276543870235634807716576968103266692205724003247008595302831948453781184537273235830989213481688442060259363626271874750674565976605317146479441229364803747246908007589556511691013027023364572270148913792184062379750002703463240897081889089406461626106660431945016881515528441466666998903101392450223295060926216976481069869214387932120299980334719764983673574033652334774961174184647317189662301953335087643830709844998732409708064734632833176927203927581153096838682840399244297594365582947700053385477181959587477034893112225979078825720474945781420942326224293476994121432696018337162030874585851799436952534941691845199496260313093668059129952541350330313403016090831115726321267993459037011983558571519788971221870465835008000809395310002355750585366439383371400554526565711231758194320023030169019502582847888660236837626810250598868826580593635890069372901901014176424413316184605264175870996854650948732117825881797747042056468997487686967560860049611917061654265730271073970836841627548558533775459121860105607380960155756600908866240300115152946338194436763221876498209884864682376317993343411532569109650231626037768134952059810982677622922781241662418997701615620247511382216467877581983955455561592729368382037060144970881527927732791188974032313609463181899652049929385365117740847793801023453674349408317401212891144666517275264165708453919883577520135603000266087948969205999103710644893027315635718537150183885185521501871053832560406311034138357784905235085741913637982167875906934101927576670449215139004642099061517628802028851427639551873412212704286193391398574277785720198513761035026497378865402561447581846040932125012645555800657172085390262498394703551221878417481178989700917344195278661370309113728736122771689453815642074152501638275058165806180296045232578787578927445358519764286952039557310690170213860877941728615781568645789559485144776162101595809025418331496753067248698268003845623883100639370860722830287676943497361499372023984939683088770154098066725927459132477114203965769632322654139187894932917656209923683119806218866647936778864972853785847161352903874702658518300943701281600951382512691778659183776535938749991486797503376155247638729517589858810799412148286953590310279974653734825402347177066319145857885357457233220383971491766502918133376645746679426370655706170824579679149094206706430539870490123117552390941540401316012056633882214589764364970640642369502837655647119268815970846199993319165372522057067441478899443238631400520553872170294611550021168749176598924053904287288022046142777339991590336507869513494593869508481892460457421198794837710850827358316986745626233286702357802687839114027397138603925707158237489826688689851366868163650414112943823300201303885100442293343095893527456597206537955989535898221201964054622871686935843127326785137321701472498008328973802289159899001100230716301802989217813159652124666755806732608725944001436847312995957774660023777041035741440406044455542585414659629417353340488465230480599133435158331143532266536940960223663981011958485924143245513097479331227700203613017407539069087395366506561142736846259797426503720726777573804913770009532459599380781488239390697449798815872714698538935195963877399105529201367140096462370483429170659818951965608019775493515523645689806224904188302475122925476985901383450381481543205874534017769530854233546032304185502430139350506369656489867801397433997745311083436071119949943918606257536122077721127454047987964140118227516756909941124674622182137363836884631698709912250153778245885854940581419883298186089159554719349650368811077280266291140244631680841530069637371965885460343320701666097673765904680736853126861570980845731271923221713567245646267476718727039357747629326666722715011427624099875961356317892812911565581582882774002464632627282622324603883127881348380338463711697749328027822655330425103854281542488074775824101049858676883899696738607177684416515706749159806834068469237989594177922236871490003747742503703608478159790192187678499496737957937896904985981755523154320187061862760571822996355296767192332192850937297969655202765013056292329604151218354235135286756901439325256365559246366369955583131615302798029222276160683424249967531847474744064136810329863150160572028965367185616991959025362070941763483113515156806269967952457853852176256857180011275996283086732183777810800091844425751166594989807623906021171639288529593995030856822342659403294806831239962336779868187404525802254069828070637578427967060075111484568674149702773250991594569324443687644225321213379925882222673404258686098562528038701979784918437640008819297007573566429537564408504653308130232033661161282819055393127160097635687451089971496532605960127406918991267512781196127273486425318526783965383344019913179907492699832430887118773364281066402292304811718780938648870862233737872325066907546198530857937817836530335267025916488808464300110491838264421725298364444326465553085984286339713617148892064766947644129712601946842203282288897797679199872084299223505499314188677730913495184678200064821041636269285440095371875663660915657565661921336618976986158769364754715988298464763505973980583505273443322634070691908298393180315663712564544630861459988145035952661568351482255702705952420988902938584068733836003763199381564357388709104020278272111959126232368880180980990183634094085814259642433413010618814803926351880640581506558236447958351152287820930080668784951590464820442412379452091744037054364113811077613661473817697282664602118856328717249401994750249140526662488335458052601466590557803063807912710645124657839709208408323608219289679588232809490969453917250863695439253537984151515740405555921459650489840782850678282832040383369627688352434172757315250607911979216097002800054884461983850575303608974075904402241602220322984143507565698394623593283614499371125271308136367826830297146707377005685141895895132218658727894815479391025681981628878579895608204156169662764350375880543462297791568990760063810804088060286087839391833281962699938112199425553180195666286908154782143481799151981863913966668743138343651856074695149213690505452121137409431276529408344561351877257798491619946185640478750994208312159417643349947450464907844987355130518157624901647834261054489891531866360786087908362480562215638199898799641217946135431318075603168634691454890262866405617244308227459385654651873458929699236598625728426056000657575302492492437705217085260838303378375124250240877656684717619340515541357281994936121762209783995049991948253430313157545223145033457499044308672856569751791644689474437718567291737081567335732140148757004674406673343266738511515727441231266064327317192417386065556663489900655202613989344237116873179575883592558870130037907739997802457300396541595872808702312697500096860268179154879555707833472996159069068890283751777545801761583816079001252604982552093631649707990263586817376254014009125790975429180753697238682993348637039807212843664975570579378982228196318506445512023572582991806118477138335552512271371165219254307341243101913127506208448208568269159933143719428859692950273386928166734149164959621142787194853922913547534709142242304265753242348703126256713872003717500026146301516519298065246642552873891857244293186465155121342535806247087531075533129873861445492884312504633396141834874144097280372027218084800563150274618520887246134589223548076748715343345606805332066718591113397668183856205681718723883439417351317830897309001648347905632267211464803105715832633012175867994584805615527713895343314926493682297299980587029862668839886676639712725797994595846801365903483504792531337429305333041018988767629542731148155247660156215072202019107609363020818767057106278355726886646932096402209321481004539269362759921612421261347735580219598375931067853632574212632614820758385933322668818921456498172223116415226437321874446606345310671925792415651684247583297803251141104728543847365084344777641841629272090469593947404319165256834276609453068498584449239954455724974956859838033488940816652738826284034489918460128140046798894037806887649822340302821064030737752682889293936900261481473889724729104929600435784748643217706887438215878918121782661161924335848892453939624222718274548942083195008331924121972246576420337500726028583433694579126998771774638035466707261407260498636159565390416957009059915670189849470431920773827160772344447217754051651008768731023199028489864227319988145868704753381021202360021189858096355109153070148879815771461613545267877222016437079129689516586267435093191720493701696821741365847662894460830003516266719598616475324571411418597616236089431123092834543103151101536009975828677856557953537050608324339435785655039352130289669394632571777827756305988493335459050374242436328284119095795025359062712959207733491279175381830215451922353595230552751446052051999283389748083863472247297065365066680620336625034194566207424970368712144547957668195428064749292561440001056878880752549748831699294213569875507056902371954331963629773350846203656469722377067477890287407569614518876330552676708034167145509642592985784201918162887525212967667326945395217867575656993482490134490449038378153254098082621466425449656274070515780976554339403299143873561073782641981806436383608188678329321631977704390122884463602001147144348943589835072344213978241857816746827896703722168031470048452717642148675307278287802941715897733216874746790441676389574326024265913447035008519572386609482514082132755264184845491507593478428636604474424887067732566442043698294148835109117723498185675660343191237251020388811999750944263181059083855217738967041820526439884086292545016319425836399234115304819680963252845107016086365826459551983997871963879500651617598883102840392190996848313500614575739968315378025470330496927761132716750025567500028121146838435949758485557907123062445407066958392260542464175646089928873654222061566036773354687468970040663856592336817673529551398632041455878931592463491139442212579509136167187042440485779870063367991250793366556869321425946633465794639131499563950541682203517587989223806847297389561048818056983963890127400910690787815738061726061480590900381850272242003810942600768304155146918156191255494873396110904032628640327623772275632564936075815532457653607078861416676427410494835742540267222867857195951205755888751944588663534211655015308474026909360993226764355770863979035908795289986422947962388686894619563734611822563749672947270655653733814048237220504182059278531037900928434931847856733517490508420776036399151886902020269988796140544402001226491490268466234102210405994650652592041641739382458955512974976768018816756663847932587198090000431438838208209528919154887605504270024494778994784418356865363892381047469114853865834444827970715256260886109920321898256524707313608892588737257638649366092907798764633021571919178617081556823154981248350403171720293619467517330204549141130732182878076372101621087819344862814292679820069373174715944955101160835486475582873540097683518778934814806108281739441983776404974343910843523590816244768271259882075110908117096032935332858515877302967078831332138464308670661091265653538464232092159574549350352173508693683621742401425667478754127435900363991342077959940654459015508526767208523944474135528425691132842618526296804995052625014087067112424284349923424893754714311411739106821617543636204870282969844155591705913026633932404673494179245466369727066987958199439290657557553076523595599204550955359906173032237583846987507146194284072444310363963974725287996079869596280348697874712016983868241546729294855382077044840810280906421842634721270990707214352261447190319807586746525191099007794868345064034549237440373332833717122605592822365486958093159630776161108909394708695919912395701349311322259576958980131872552714715518895472755421855540186356015798751501298736455955701475078474746656627378457913777018335148328880437963660594360851762039526417285117772009489967590217898225082043574142901853761164884122066444828641642464218330730310333618250317355230723257710564127763222088106565907747973433376929116489508884265496249777268928874849107080147357979480009115945938461797120822868386294794636126520138091910282617051309128137867123584158459655805304000467042367495038123386243462099472531314281002362444956435816096870418399410316553780817964942247248430299181900068867375250378670135594210276442204786568560796258937233571061532830881406356843029057886989791915734169683469628627671914940744781243203807968348348144830599942412262977752855103513482110897689168446591653742680722913084032820672339209717703569765381576355448424740182401185922713913687885181984383204505252998344857872038593227680775885981957952324545148841096942112616890201670333049433016032247499002158242351207298213882389745351184268458374076315267971924894179375463541504493527968236191408372623389223814567449460187722855213554713757353903288100473154346115100379570024031667091038541711405369249483276629512529393118208644522492559762226770214540957210736800690524337325548142471100630199941264022087085251069061346840497392208037932658152999300924389993080149162994867639432360476560088394314824500783945065420345815944384177723162187618320702976901413584864464858632287029414681163387049157229154222696926670987835661409467629145136773415028445825956851173168052774480892428628537521721450541823914159596460392031086489448024930329856738526675760045859403594849085618543599656616363682076463294826779176604558861810651722164800106746580644683302551050052339699809358173606641030099227544469435763953869765359388186141064284999260737394784889390451333654590810193904365068906322312440674616318652121986074859329723417012779913810400662594672181784933204984436678606997913282280795333823998484277353021493858281065184481312682448718303076405675224243682549884745982072094366833456349068487393065234006597616695355739351350513435356087361791880410052382724462621805883305586015889969341496839411063112141671097837544204863867859976465319077335014766975023878289313948290350941465746943273396718060628912149691471380957336212052568506402961730700011616921005347641161757357719504226606106608541186123719864981383854961605520961419274093840428013054054682103613027107316982062638258648585900818383008230659668067342045929622793942686266755422462708147399545426288459930232530979140302397671412248218940046346759061941074705818963111722938251028519171779282714413456797531127586077702138558241745836437572400837510723892179967047359852146487456871735003572400494552059322196153625816468544321428219257263688025334911149545142435111067286204049949987469019549358659852089572039518934147299429509493960346885722481432428300847811719312598537118226179072511224971310015360060841050006345834628628234935620373759324949352548466023329104733667586423981588168180800128572337387699723309124969067373078335950130974022968351272091417522542394627064597365963615398105788628581820874391429529612112931374188460083175098148261093833201909709492956759016490747741167853870846751708845755745348106079687765804543937274013105658161980468799710610144278830992030395107429149530827822671187080652109879439348954316428720886343470349471968054068448147227507075428048349368963450106995055850481963685772702465022338149076809264466186850737491632979438762348907406967021180008314791213990410171379394946718343058177560466291275243848526621415530323504169671370328553568304384925756494615495477882383391400697643390560751595177600016838057627183202237767200772619461210178270744283583776625182127663880083170294396991343272993643812660683902855677795792959593825091686266406639368682064115210690988615419055482508328053292195040041662981032490022656561562212752723306636534551650960892279526610296458605148903024329167171884619949169995467305361130351294725844183603181385476242873567226968881618615475101219651293969110826948946147299861959608700959499155212060047053979716683116963877997770379618626143591580933093642952376470565767389968730230437813466421752746797176681933899418055772526009119309676179478092962291466126321786502945905950768671037768626386301694726452201853492576786467296929612999056603341668902064829956720267528665442325888184841886589140152705435380002442191816764526093778484209032615462872052087195630449089448953735254084093019141397745157283664763130316625441928592048381781295409326295181762682676082369956513031867036256047627696645978282044533127252385345076544714943897806583051020126563441030345464137617158961673071572833865078586833436777004610658563061586836065432867240498847652274263924067210047462547803334440954650220856770236954792736287984526277405310278965264171751925142235044683076611829618482508863435970563924403179624194661045881284660165637620174189082774878019271980887130529562413019312392194967108375015806159133301440505260555608431703382511870966876896310950485948448786869986036550396832563822838173213580023471482719774062624956922865838802228355004866996281146263065546361089315250317531272324007082153936207808174143777002456770617964411067055642285798703557180055799420619524155947883545342989317617281647731364604661067255956566140056124959609061100780377523768670043147764140586570775367734054011561032657230541692050157699660513003675198757307691942278672155073571832800784808675315774509507058184714751999159201310968496207061829559655855311628479596828414416593354674374567338980043817514159285788734249670638277006625319857797119741708393314993303116730890815503110416319258104454084230075362873057393690731781713858869941270990218424224757272358623413167230486413032214713089378885939480024388236680087869251490095242365812091733241171007708841732364681863834766940583060676112108935849842201084299915959673030892537003916300106550960002201721128324223779970488869720039841541849520706014748796309033621905000161654549132281932634317099015578294146957453786895612391952803523333357537876559459371247883481787467202568092720485886355893964308745784250554156852956452281771802668853240541453246501426789407774781967236316149279009421467404308566067687363800035544645889194264877102498267161790864881202564137591786584832100096534600281728120104636241155675725633126182188916801451741373571629189044475632413702674310739508162927496275582912704912998560777454161994694516289674251942749077609759850829480214605564843767412627897355111280634882677369809745035615499136728831087874162125268781569731997747560847453431546677122885963304325185480755585861463494216862764813166789085248769419757278689018590354681376041514338512299709464600761815827202120925272231005488221846541612237664602305317514845012092968732751883818196064009225693224492299842334029116977747297292731223691309058988230399163647202951362816122443710988085370314737243737690418058340892962910204903892862992789640143795734031090316792359021651333249588827297538675898765081180146114171657684183983915539942943162502209370171887313963590086152944845837283084061685863020137641897416591863118116333298209278624018224701066994598826882889273236562722768606885487538435835175422862205325971771434273037924883977577432056463980249997070782858022380080641536042058129776722110542924278402295213171289854366810560936963148343492868608476035998400578600132640426840292707517106047846667362431574006315674551940027386980039580122209705507844347054561533322883557771714045161389897523881658523324690436758073430234513315839242635273868498422287977508858614684214342801031819304520598451865297422839883293097268857004109619866938452264204312226318569635389763901887872143123021082416724041689671262771933007982040617797183864135553215488694248130391917375159881949767312852257972448008327161725853133992481755043202663120836234165553317737690898598634330198396292894411251918953695344187672577105489571840455880988833116030457367119286667752399270289594862753359260581579455044655739486286206995832582393579364752601890088332586985415910372449236304754520320519161520005614588058450123083516513615702684033057821176902176749094719684853553601617365011274845147834987908779777539796139222149481150323525501039959393616957304959465275107188595919737037976474412233152956315521683118606479724194302914264262731062263557477254940219804554224956437923979392316231002470246943115028325288963469476924064463595866838624866644524914311883328166920846786544473223227201610137935268501783882624079283616022302216266199288732419866258133942877542604965043834241332629706748245244038962238830326613037616749459311414152010242265138007159659244460018302395502253269573209865383836176133986324660241332571946723244835229354360834898196111531462395273776070145686572714690129328733696178814289950638023978906305583434727489899567133069020277731645996493974247172804305548396451176592897335569786306874028611427898738630591901126382104140014295016461798446854992487400525918616328240313637033098306676343800107957630246176688616819491842553595479582473292818821528964135338717011308104810033749507598537154913187166086916820590200853766428539577604934191399714878717785393660298103818499744206254088802344377490382315569513473393922537383794551608017838208478060285467077963087833927497289746748588526824673407086998589806830542271774362324969839137355395152468033334103687099617803742909406756630157766684278560312033064632857339368916699986920963103531711377703487467659858201863771207087016402548652891174538809478126753983537909918004883162075991391406326249951679441798908084687863803141885125937362198176882146392544951451821679004523618781288568208991134861918635047324170402153430227139547761749803558542466469377424160437400133174386341399423128903764438130380959475150545990502369174895898200263719431638969865813470607519712043322805985787390222180073634468307525827539191388226624103403924449113269368475122676623675772855939334741031997853737080648566309067370841724475739441918087393483267711017704830298327126773022792274478645284178140001168068470540038873195802182208531192551964240057114518332552174675223362482377918981341814880519188895964665940960236953694237865362610955979112524277013959780328415936179380475092638060121224524797964489016784501946737357289478524193530948827318807606858400920243469941844694457525926764768903503096394995253225227928305099071323086086495184741712892995308296554979592813831026211148207721610833771095420215473753973665571187281672989924373896727457648793982134822031390398837499649657438459434513676678551208982997492429282425900440704607463857619361585942130698333903430179260561029362455001616873043196776422610602697572610836368628963245911497989155308563413597469822293596860668073913570193827350259907777663716355684866110766952594780351421231013602009370862762481237417298690785415988620286590394925376025966884294894557726521406801067746429290235706092084798878323575046583530873474339512376096373505342896615227299744582748901979492765248518049232530972352324518637856214311099789033817485491802892651142102701698735925194251380564217897382887511265220947541715405227717803985710663199467291827602004762874730309270904695046982019063068321032504556442950276258227126222064712527027018479752359460822707936895033625435066975814038990367909548161518126251195458450528634515982272604301458278763998134780047650148592564265221428385423995402591984990195440639039229524489548496170255064996349483507586279737795191997450457373022445924167496715807572307212860803053216395605947392485810912828862000720266112488246964437893416987242920199867498949580310074000386819085104473644066319752720726929927887137135868868614137767608421671952095509364398489149136417851963989748594408527980247678729197877951824909742682134606251493909207251552051075833918636015049343899340598125314623004019506760669996550156541732073276574075856919543105237522974845871513885240122522380894962625272119182354302440597995769455444369101897817287123089845195533717235347847221809303673177395249985183949999943352871075124560134193750800965001205889770785665116918401965896827522678204763641813266300605854334271293457413751746550219188806237114072258677461334642254168907506466007495348893427407502645428826400634971060091708839393521489250809986308517952544257458857433425870051711538104429428194678519995827580877375186361467398282063012795491562171727024573119521763934819015716374370799322064091559696038286164604981469875494844403370620981588142106292706330182242789432692635053741094180132445645166879460850369273205980114255984232890180923711032239767773122941670077895182637240265887540026882237628594861318782603776567423088133550011894434107661486372547191455129951434570638328706184028532334497263546162877556631518307058011244037220070161930789911340110526120485263502624834345671305826632869938172480496989677660486164658257523218005501496946371364708153562019192333984860494492374814786788156597374722910639052084985802785288845349361172549452774709548478476931475469283718301117820077838987485742365675951317677053877603446236145704109271191740850895920738591431871740283451317230740795179933184301171558016939249282923683546137497966738455446780663228745656516978611588945278436142295843840967569343363295966227069095514981406675515567208672725252238329622374846141455505216388158066302398899695567766680899687580926169982346563344196386899917685238298521651724747656865493601777401540534739908746944548588575287073999528109096914154335963501248234255508760112583029774547132507198067418860892756671154377106269446560035160369748427437547974531606922806276736539878240515889679999895982742165496981727237557859209922159605543110320248322905649511030810683783000383819152023867868541438030116927287948804952911982830083292897569792617242822143920399560006817907667172898603146635649416927688138032825517163743347308891178989116962581053926953085564058160925488833483434996896660344649630053690517000778694632558681992603713250025138718348631741588492199318397427483971019854028387162483798662977653679787519916356812773255749483900672869556850518813157893444533804331925101809679842204947804233981433272917599782928945507849772717596608886768673715521823992654521631100285190321234788589312678215914749246777750628594493358434651062328637394275964569870514911143051563357527206818011336698664149909736395031078809655245117529850727269788038708220392339994524236126417169553268515691353656013066360979602405067499164021925394656456127900083215712719190893829104260178525581358562333628306844568282539032883559939286955213391725928778467600794781242769782272599967424244847304510337507680117194526147172382515094961269938247089469876492239426660876339026041093170019419291165399249968545569318884860814092290414535546318907321648949793200606572942279203483815399984104265372120128897076714531065353219723676929231498922979814380999937323597032420500768890274201664580797354165293266109624214870059170280898589302085401585046116706227360984422369599714263666702973269392405370689734379762701304981385979249184649737613261336059135382237577011394478280553026803239577470859926960535872095024592068561187687081537103621959365868673706909624840724158865675500777060679206315734719484384244231646170985532237437630249171472088693031851766268283958199059579079307736704389209121927951433507216572542769158333482872806958407217714452337166616575869142016435632740935239894063523452977387074680393618005497880787915645170405073842188617890583429842129465334328922599876825754900164926416911764772460608455041502901786744574234006188833126845279473746283699268376369894704003362630199966833425504085691626282430714516216262858361120048415850146611818399953566946643824376510982573483842248561633993241345234944563982906604649349693952001346889508697060490553753431896191842124220918500076911579785263244772195363843782684551466675680270979688352521858784176639441908353483592831613076067617389156138247550826675657070147444991867150001114200515999946031179076687558089852749530333108571547464588890499882275406262010860709467144403240209582414676187966145109884717768968189019718256181156620485839858631801687749730314474688138436479145034293562818247632521494601954709396866980042252298590287092323472650976643879317255867192778057314750595205386962473236942717305701045945997913807656959016617161247888032515527108772984624144487058374553110044751436483106276991731829895901062508625372874862128253887215096940963367100667649844740869131637813369214656640435732566902392599252872869933824160704974408277311132353487015017502922603243941339157734932163191387387872676336066204636238903251458494419058905615814079984433948152726736957266355387377239661546351476837209654880891347789046650398266932873524810122604393535319649814100889838374087057704285833315593357101944456426305941352415933380140197711134159402083659869950887989906011268033664188438943749384102704067767326636825137690706438080917573144242237609575316924087623763521672090136939149422271344372691494431816923809189300052473316077402320629444001137864152495756278197624813371152131082597192726432036689529325189919974799810004283764148235188683804975737983847079077482365391627295374524112683866191672461004381299922437755071374402770283778798426208930856256562512297361979958018855829141832463118804881802574327445981081903913355073086259002080074729071471286177350127793303965649551446551249916071535053190077749695894168344924573259791414418969056893591355175799826745442072414863252147295591874596583108511079447617368876253308050340823517516195507650877827097615215266557267122996897133086218307022898854366596889531650183832635198504457855886092894096699071464424538244401825646738183735228562164385367673959922560693507354645132261196021909287178857029487185820601470963504327515113264106648183296719094591128513883442223562010211729563627182491011912751785868647042862269190171987863570061474290787166153185186830034302904147825644061135757564228127601360572957810486423013106515343997227177797921880199179914592670392564875237718206746100101077575309035571360345475929679269068897760126989714198643986564644692580605051847933071808997133395783663162396976496743839533548885087534839769650080036223835134320324583791573452196535594403264999815941995356778461009957604816613169624570274563947317189771854689462576789270659055150797189845527113014221688752310953661572020086090432946511731067880525917391279972691004462460346618002352907224383190505255130971812336436081075251449395993866199538240781504569249675400387249252985989810596232119744017703154587078500118327819433423744197845871982723432732907961178350679956494369229595880610204138095956633491907218774146999863625209318950071613966201547144591425700563138555315627521913912051715121280679252442348177607439640997062553166848656065303305526394003006925675291905789054075343561415342406176322486005353160704041703591849343694915172498278451358114594277090918388345931923523057596424758292543144412556987415714422738901741635120830566974776299419228302399380903761088136400633284084971492933968852859433950048684014697325079606915642436320568009109510807629892922177284085886402636740798130360196971687521735503499314018431598415100955136670360707315579281212804731923031571948878738111631031441443157727224562798457384377860279649875337858380114494875101955281153235143886893733329722199379646692905511787543434515784457051325596842790918716116790991713721504291664209237674882679551600286727445258995288549083705372698200890751427582107875223433924979050142392979086793853492763504024119446579878872274215876350514439651806897943160965643041718084017210934239229746109916057290294407348062434867140140859570246035888611688053144144435004262727120713126687027510300547276859236928770699084632950696635201251693518824507545430895136933713267539384827948101782440530621000214547364764871848974853441752094837119638182880881025678111215090131659679136735806405948055936309112691558460773899947449768131928968009107023791563743157058128167219060800919531666274380506629524567115238226608735733846521416876297412516166057468598336755221742601666647930937618524662816158083607000923382176525403076775007625169131555075836011140761532614289647521586187545238049537110650862259480642357480654035977443654909791144119673851158977733804116427479478909373575666748901395779821764781453305126242206696211059009175588172728636991656202854403394774538894013232444334891760428294022170542724083251948377996281896956889312552669655407640635291916028421256004979197476392087386738308174981106492558720993385424028421777221247211102246692691711279026387626919038419408910796498242070562351047061100548455203388785784822185159583583375734385379401325373461747865248862583898388430805370075204341678960064890989790327144559283038742625273292403033753766104145111860570643982029262603544641332569760500709232116687217672926504754085710108754643791675666278879930534105182639886020553063451760941752835761820524496911031191185113202074522884859191312025394126637555759709690476011617131081505607586401871565981004104263624875865611529925115593845063975034672372118739038937405676890447733542599895973863587687488097315404064261954119878334795167912200592161424022303561426476346671544902482277347101336352395435314985504776109894909705763929074018762645899162294492759623105571102606604520611966718191791166692003651023198408451075506841171511616349434103673873049009783833738853460496557550559360863037926283648869715320196123420794518867141155812202993620378091188971645966874393597924835709570434619701433083403687168033952462344155368700610603222897590243561164050224812114901170048764574517919719083563002389573173788512295419993436790143007526734327518523755438655427827763507845669883131727314815860396380218352032566610785934879428130740271846196200225664264960781809669773663302408617031777930810027773961400029292079364425046166911884344170522490173005912316126869854013686854252058801284436565017207825355738681057941933450051484439561187064451265708270275340156187325975972038313400592017362384046808535580220937965931080594234826099098796979154226972962308683834122306562717725865457445301215692038875037458840326993096423190030820870753244242079442275660631811358682675001519383470936241039099465696999503428073347549277777938748488427835929567995060717085569626502929651119207823764959847325665537378704774977529856184141614251730152255166948495804193609290534695890496700100719387756853781799899767282682565884110407963587495005573138889119665257614257113386566368849164684776799511087906452268575085795051834409071770221396704771717748329718754511492783470233116670589763998985569774870915621462832390986655236277258706611717842232558599227933218284523196190195202266070107213367482857027323294765828893007316667125956734584786716982226504043406978689571424685015520944173709897153650223030493468957382324730757432331464434750915654120842616593228197490354963400820407109705596153129091931794384235455843717888470711348913464951641383480770918191647979071608643348059603050169359821369545460213681258432485335329047661342920193486124813508550167627230048279026218906053103199930363901498236603459610715404299280467957607302451557174432526334254538642548464910326489321709991476556301490175487247949686043184311474244885396099438144207415786791043420610681277375390751421543035102562120901209949979768674120610702706257948898417347654366626615082639202566590280332117061489277542127561361378093080002788280147809710630258102798664705929549313656004987200972010530789841061703887763132414830575289719858907991529067698487705668794367324061775507149566897018470092274014126747621452673443802048777482555411317190876249572561868463199059996954766293943221141263941806607928068727349250812711693883487369404068286319597383227619576838450699168026914312265315631834430739157401808591618667040234402574817614673480033870967252995856438810739409805621190215231300499019222107588299875856061307959485006220236237418727973129222616514501411352423097542179572929760058381991411600431390696494299000845704148551533851423838469681326189554902535848924798533761038656939000371399545644992762857046908890007701839654088363591607251009932770154284909660849356570050275041838244052645139638088045301834723811696855704059352961300031530469035226260567958746052210525047344293995935861813658473720631796452868751015585740646071391431492399751875263000133811036201574539444774638743076979774156507561952356009184314515391112303947364109583557655952008650697420891118039641007643036724010709974053840589604298974486412636039409366804789120580400719620907962768754331617362137302426819817192500100437931863703149605193789505212761815411757364602560213453652136831554890549520565489904457968667166686622644591799900354236141522683337397831553804254210618737535126091638587291794950561307428192190173026115489648126846380323480793173445492006332933083491184440625380005182277479507708995610730883662858584071005191298362987780586293772026855688474516881420599631500827206246321530551678225598146142970547023446545287082492179029431871528160092973784764173379157258641678013194297944998400387102293665238966607083254168616367607516763908729735966314690154591875247788776208633352679822150941788478055907788074381705196816650544145984260837398827876559653672063486044823513092137594546409795179320512094449483569183276393044647218423897098414209521695352330690474247265158021985253989813455927274861615367905345191672512372393957900473723430231879405721408015278445252889268318348365365710388056574999853623828516671502373092869010720432191360683547733500216144715670424563052382006819362504939496886739931482590358770466587724811722906046488603842483646580201113794336080079792980870662198999698093577668374703073245478591940860181805516347411606008354872896111885096866717368079198579498180559372795235247786476839941156057795733541970739721646067647691777670930568254711584539119440047263310673683760366299294557421683077192207854100663542084235120751483532506416372950723336055406973372513840962589011892444387909982884665881348970258246880065009433679357423073066639311421984101759302328927074879564571108544517347555775574375992986766708761708956721382633021075468194423096828052644898168347355867226486640210405388214436633863018102788831744797902480496842076097673964925777168345426055401043188245817387568460352249026035492560932218202399658114231677806903194247662019236457567047246335519186168337328426697003278015538130088549549803192339073699672642795458156187974055952733528386465971001114958407181249568584770603053853357564913852507105663197342651783727296155277202027829886668426596682322791276803572816274193093915184685787990579517469335272804115157059218393845163571983794820873311266518223594054196531041352464275534307744007148537550451184932098625544880094578343875524234377980629867081185551937876371386728886623421124306081525344563947317415950110084208226733860180977930126507930753914700925281498606979515834070506521845031494405812249594059158377079466346742242352693431159824419910347649245356544013404811766529633423573492256593578320382052878860630640243439149248123401395598375802607727867321371713652811319675569766251665150064905060875153365338929351715356671310269615936803481396560262651860196877609496871391040381538576111834213126235506535008048245482823478253224186498835285098628353657026397147692640890441597877541854679898733603867782665322705450932582972957648906685805106337944296713834940712115615564905526687431053583643924127936774651916213810351577511089636985539065086404480852113563803922313467244452312055133035405458658706621109603107864755143199503621338129904008990676730083739100078959358497946079488374345716063046215298982897832779367203147040283872025357024752344417710409093803868214113436252555321677075711598649453879361513788046541458141371417558728465693263760059491368319311262686382931897874287251679752042603165071525823006503399883211408258275780851818135204685825212921222609535743386540172414594709883374337352693282632675722659429081366642232818015147475888570877740669506887120717602883985241060345877186940218043350688208035651150056457238825959394915684213906681147388426048352363123968566565280440561217806661026155940290104912929049014166733620408688229419187576626574360985989576330662378641175904389080930183284569426923288063951447798074207836156453725649173049901126388011410973766509313491395082697956591359056709804727421426050111394076437046478470116535255548596772392502622567479465438657822699086499411777274897948287896640889429665488108521018259605259501525541344843881184920229728244116688511169679233586175130132139935358903257735179630992430604873093158038553707277611201638400689154531750712188652663740463520597997540260186475891565000025257397336309621950016301127680692120623832207763081593349525235059670090566044597709630295018264572311662035091920307814490898868128190158057034271426758953802759807095669974814485742658237465362920924321154269480827173692030216820806947695169684989684485922649887800890018492074682893161937765643927009786002007489227639524679282337622162823776611854304005242106221944484017439718828917080793103246287425779094115882927842816335340519810912186460655681729440417744235849225308666927099544362816475094788971977704231087598988457918281824062545591856026541419397280834251469801710998246206873874825473420563682038195123274888700440868141766134260718120373196601087390565729541270978552222243612604410400071182903184870212789519511188804872691456522268188260178686951719919725960009328427014112458693727394744033086993180912265211464868356135392743786246670623793663972367032634546025565667584425383545803106177844622298825894823186481183520811358766826638160916581844923288803722512319508920098645014086569748190380317310043340308926491110460573171628527510346319511628969067784488159953762447249511529109416183323013667680395816003421940960632934800171261779744499241677225281061847325848217158995385924374678196006238978816825316768550465628562517242303333660879684963788470616458030949915259633196135160942438728500990127946733107480622326413820592742804467948477467834595221898767541969843905314940947169128411697973203580291522375643331483278449413666103384005461055750499588129664969704675046815799727639922329196036078161432521472579470343677128330230371271520914936040762501306635927879366346269981614315579578436012792933201587261610486250136002048957719813376649953029526565737748144765757541818771322239016648817637894958855861189237562972155513430801888621062356412397051611749982412343085664276886620565839548625301914090159467332974409602877916420267061284805543724269287056350616976403670420175984794461055455282587276284612055290132856658336890032700748825279513719743265724816739410152954701086963359895511415628931115038255255708208838197900922782955004929914450165647720163554026797789212378715783592663082369889928656270806521052652995142250024973764951823954948811644241289613347960587690308663068362199822913505012969478968813409696907677874259811729045436051635321400732784533272540977837211114683354285005373516971770856550061057725051195712754018169668900558583243644486997888585989420987582472817991661569888472058614133188072871474146809858049741549794297651242597495443600595610629724475805248821149437120598364516073036394175505253733120057468298772499038804417889403423020038857881476545399099522885266616016776114986499862664917896883551969332616334240921228988309484353059923385281055079263461166780744827021487695974927944248837627655949555546821500603478091101901616424555094556661619925745247251700397113624464098964545745601639006396193100196667445450153003674842066260418337967656436128654230953490891731244979206889628078610178117335980466112954704368785268535969004974568578805397842213840538003408039477170461846216295895699376865989487095397735252704442202868258474536003571754833256191011219575078224765125802117325647121681471040389572803751300311375737296064014832810756322039291710693199720424159254948497049206689561230948171553237451553739777435469491806317704963191424987609939162559162853682503733690212876229843423233372329705098001035279354609583480790608301291273996575184403377770913505439049297503119226784627951524532027324551572888067620119082741006139519029677845796986861745811206706346816920736326863914694378134580947946300585315612147483602368977185887185452235111799659577948288809039400969078704106745941026587833196466652284540534429983656422537223775760387225301060603522101608659476549262469439373506107658170172342076792171626129731797510579008168162705791868264177356753812219634028815965103324825922240628152593848963338137381748407805601789730668034404183841734242084392294366912628847863363775992451890443760196065511475019134445992020706261966691870609619968536471586187483376888242503686935105231916009968341127397419306538854035711684388585181022709875555535759139863302682160844029597729837208595216536695965617203590668493167946910431305651273226325024910145834080904758045842765878009608538267486165578611684617703209403322465213028479206430296747824475815760031572579420867902536193055122238026289993500662033888992394516189962616347842558062455449835142860972172929778116131909816980911073314829069892249429026331170204549963350949593808707814845721859966999988955787341319793342705622815414068018148178259977221877437996524252745337926732681459591573863190862313639135853211850084353695369607006604042834291197363006400369657769376948558371870248152873661808941137647123399537578883578482064369883826627292981861979663578557959699221594899214755567358118748379531796708393426161625280544828771451609967612634321957249794560057757542299742653492196818708405846459520429689297804621047163150290943657431452479975383931077678096740258910769967931228144490291072038366924990820390605670299973370687104168790000650154936274190044564663101520491038876310842312166218303262686439906639869743578609065531276324090805965217658273170936454450450514352962028781194812852712312527344969309303834913971905392976254979704145693450155805256306647865984318781677406940348524222961423621560654347330056741752579685211203375653976234658130351959197235395895999359316472795735246129434141453233517934358518622610041162834347014836945287663064998512553971362779647458534389161342603880946550004396486345779210462085102272410812804967067573967357585275050825129585049468414249957039718480181510792640438147258379379019469504163991746255759305436268326287304679830806776595406382396073504129320870023809708112263239061475147545399941447705902081675715150233778308425659487230243531714642030828916551007909883215485396519325918188613957716026365664912233584101406097686184503066103450344356011942075459853012176486122053867340087251549315338807151652202626899958249822949456796365180154668376598132333170055466625077330987471086994279758691377782336927692642628046291787912598824351686013599228780927149306519470781339071374545279170828418458029492539355998509116948543297703366944572223207687279707437522507387111384625366041388643199699615506395662653320593573635514322842863836186868654618245413991953458133203203830809166184863352275540675543212722975866828462950317600303237288351946744937636638667106843216182939063365094181793720950858661880569780926907579939547230240669276297687967625606424467555810953029513443537371716062942210937644191022391504942737918741729931960902908574066766452042874895357094650364093742798623011715853763435638820641086720703233675899266983713277306499630200068587008255404107547840612582116548443730760105665550060810472471017233679516100678184004738303802305784126314707493566348109179415460465728439640119836923920127249495822430594667817153639421822605626861988521801795957764243208754248607211072151453370026962610772832368797857180465101027141064543692684060334885636738915967091449244078646219375792571672887474298644078289942707072970512823483874986743847365993751151072607290991878175892193536300008071652302020895937401129759251642407479860943017527001826327778490018669999999444947336953907395879580407913153751302840491150119246396027927784048426915210046444568723799937534966260633904903903184368644108153757599222174644172027933342076249541406618628675094283967166492632578661776485948649163412017564855135809678908571585195014015176467076347991613035076482064070114762052826970190350600347386112563361686341546453091597707655106119112556597510559575400203529604569493198081495071160202889117666693776426730709030801280370997636717657745741211493454938985564485285194668466721014165727485314393884147505279813864309656351445020235847397009022914584201703964812660822504231633827636190658897360045936795618480323910855876403321515980367795899311947036674749642110752964131034917814815519433992948499856078386773468662388629039362028100930710295953823091097048205999180192915826420959156440165745452253044081631169722177177238530286834442862925496652779560332892878378147183924731881011486013807247627786141404410829283239910403780214021325282589286307922782079771261514847797951006145927092028025413412177829337734751635207158101496299692014638544157846482614276810053281974503760839519121942757391655812217040922391755745695066658034710135952762520642881391926405969619447035301900884222586035772385254140253026861116227068936096160903521240051652727102162339701601153061511474495010997589644352268234153281999633877602750932535037832613984234726431389147370065089071775741306755243831426799982287689443722474530901400674910441302044040293137478888942256492533791352434676348547175652215579760556546020521546316739789772449771598193329225204080347099955387908346444419908736712429704960023787060715725057150402088919218939809172426689407379481936580908487931320112369354394846437351835035506883188625925310951813165805495203115834968684995979483780589705303630717392861149367218445330009728435729463872286489731278939019749272697438993236485842639714499077446332448347701258449574250032958600236091249584408548065041694851622459811139000018185550978390795797679070061963332642038835979439881470934015536482397239279820918470012544990619281903276080098017663906831253398193333878135954593983304348189761667577382234198847066251610199426787973836680443001094513229421990783618957068583800724764310258528396661165701471957664726867440048095505936602043983478681422476074284941472487828230593729144224438612481108254809005724713212744989913736754962349018900001881480530281972801414703183581013126119804985250430200861870525553949182261382266936466591657253777549809570800587113888941718480741996746285568940883092023967864032715834944902497771467334887561039684771755258156691344261180089062825137733073680359732973217345234667936623630220583611457367965095851165609356966608029493004259637361504525387117472669754558441879123479079944844944886493863999755049705714547549601093825140545741350169963968873111353216400678104798268551970662201527943212484130637799616472055608720326651012173505630218729154688505658449912755222662465603272015388883099236485988929489026207089121850370701444739683055190257379499812067233851006548937419548230426258752345029914902705466851010147285936560281003273880495226948898907849091456831768561215417931718592290215356227037311436736963342768834931352807068171378365225831076042133348261853606178978165101110748549276942325868429380221757784539506228719282408718400370189570836295893783144773589745236391459910861582450507730300467858705294770393700418676923180825011379089643535007213236075429964493771463287858829575113678704489371387010718367597261338198893483572697905078626620962814849108979428113417061122814667070019677539463273301409021247683209476735902249474525720789945174868620016536222242831441605182461299117886541549062782930942299248888325736615532215976821170611068488948082871046759491065620664463967310488568792494687791915735864682130408838541568514928361532819504848223182338197792252731442017507414152791315831890360644911961645389453983493691689476503086576152532561997372032541394882481654321987532784631286910767977275278598266184996000920984916952614506885254961787940093282036979537157312219432202512845757334610856787114741740650719615414687802073380970308556122280130421171597925084976362972421065624332960349325690831346590392425763230486069809311916322429460473755140592522884880424221048820304639823027496778500217068807371004359563255259727017685583447671930465866375718294931338908656627151221462145748291875766885252042368113079050548283585571663878863258986219356149308780615581861495833504145629664569126303640310235176966974766578822544517859643617286456548912510631599675720341312553691077086778266326526866436203313192881922747573253920504516748853451208670015185305600717552170557728411339046004278731617160503191011552884679417861899790650398818133375847408025579413026679724802642071285940993976108698456474739185531669099470495887541235170550261797301702220056638596108062584817040547872293399205180427662484859828132025918477424179795497640313157010490186502264068130795184706528952462091288879572356916029326393337816636144590103140093575594492856877958959470811422538889413558588557366111013276635077626953000013807669687070840806367353150330806990419182002726285835925630711256864129592132886320871472533833570702371705672839392342339139101701561800507386306785298814020134838087585972504666399951211866778206966830071733444844309094867696364873900163547496755488219001959448135559067406982048802227367523832507415401583454926178870959767405717274910827534848739880978537379908975943412081737680161466498957356681274122440504246928482935286166452490510341377911166226038897024136797139904124355719483426891686780128979483764924945517346966919010633938676408596367564616591335038818062827660449123586540878692404540084374008105019103202004174942215984352558297497246867589188312316146101024496930907907390177560437150653913908737583474262160278354104613841570382526159621865307052611908971889500780097958333264088052007995850055516248876551093582523881029337266606461874068825985127265488265926089919724797605525242510198682081812272989399654417729338247787459622748096733767448500695367654945433482971808583799190030994814371454042393942011631579867359035092549892676086305685078947694462903803488168403407622905794226368448651309677837709043215735919600894271747842266033964711964533035352394459324119072247366139410106845786825778112156185039139510304096995778424363706702606036683406088185544263325620167769260038861372330084185461870329850579577575425371175163888391448499663099232970212734348190357294395249734317641864705691715599522579256801665485620622888400779303731763373684274181588673662128849899324727152356781797360250528025750438073549331927728883539269598667490018623409359729469236097963174969032303135305856049395776609154594585746341194041064828429799065360915956220120149576610689616310579665988771525915383246179448966106945423826171609440540321662278563802547857591567923192021102132069229176168574718607384440889215410912696237156961197529616102295609627820455078272037883644288373517423780769116588817645306422689396953802941429474129559518876021038117339420284193573245580771151679435729111866842408767007267641137001676554964631853357892346356459237459250712746030487771498845750653138368390191857166357202406466659925494440837158193990774506813954393537746007562960727547060219559483890406222503319106084250822074585281050334467847838436262636418316362916947964686758626710648815296124785617772266723039292021084396722289950478411036860933618297800798090553774718711640156441494580625761062153944340741958884334594040871124737090264484072713002614934698258028878614262355896016878511844021804528444057637107919173694485046015830347279370781596217265311011822977326533916685737775633431505339591100038757874882029723142071336870746227937023772601612401082690899549994661487496153989343937578711315089599818072089449504155647492444240079683793464264748078009239902725925012912183635867568797385625070194654951084955807986385629050809956795207134429095731215719619725142001151335382741398506726561549559349528099041922194436422315317754377045327351929728055865784105154375412635753290260411537890180431976702931115874300667838514018354173829715479654395782403449375858204453492074912021226612986476805729367328291159771869968456227724930288608756608657967079599783762708064166070637017632636031800268065315624587434552981568449181848620840107500822911017856285489652420994075724379498747410216924803324550901188750569711514968367880730398093533007096008417092383111643275612599961570980552576036895284457735585989006229944605173042000269464973053255291471664124640250436397991632270428424084462598034209813626949659184563137820664192072896225884677045473360765056767628966365013787860738652718112858531308539373535286147861983237407733344116247423849509535772051776347630226947288300186703311003282075443707618543197892635659894377838503672090625255822864845940077119973890913714656607056387593896776259409467557944822768430473819463125650687501751278255058091113750919035651683888174116607978551551442531545441844094176731107900165333771629493146759011500348969132650504502931524014172223725716050190674866311446663492369022851729713904782240936556186123298793252503713609434596338636196832123259066005430778697939717980583929727588237258237735146414868553873106204890465430044662235675933700312958838912614497311158083300954464722017912104541835381083091469936065182939338226344469726770631670526055791110417596009417611609069285795890875447009291647496825825541614170724758504116979640413073244997020731240409429771357795897010684477693648983386790277531058700788930723721148863664394302695208359403516163281271776541769122251142167017320524889259376475177284367135657398605436953197713479676706192998034891090837164050224178110517105061398891962268335907823977156919346435393152749354733107291862021151491510585099786328023696318545684174324159838469275572909754478120699491289896844643445159445493197705617022088138541768532753621157226773270667353904274302190185940054085003372737914586675574065714775330599189908338740134753861277651050556177735349830573909975659179907921360127455415281451629254969648797635681283504746063650740168820042816270715753621279157823335483163940538466268426837203313357205402086459906723040807539839082017830550619014691193600530895347592683690097845337060888017773491460128066960793183400163094443420150821599462835123934582904634590398327660703404242249127349237636451448350316745362694032121875098979082056286352157585561792844727764829020483686774469020352310449167199843491366881733039052046486936566008246784288725033897570439101333211078936806718223523316161751350087398272901056949157371257246773044602365690296827677508124137767108115550359827852869368318624310149918037104445210790943936746770241717904449655495913820953132186628864038004505945150350355319053609027181040346743431906473086836710647631672555935445163349416943040993998965768962296006596823621737884319994250863013339142756180946220711987155117179632773411780689010853273548323569167065446417476290331689607387789693648378147049849708302402031765247027599498913539517909022880870084730969578068146876254741631554332777127924609138655688645148980736067423355776214237076462358214651170766757193658632606508732858867781581886175799923835990568715863146862621911750101432198478549178903277406413007211190740840957120663376070480125182019063164779571858695944968828837758371877504126187507036084007909262416228242994525504200944901951701579888691540348196305103614106617725672620926053426403395520483856568050510784415930213458168175061756111672612753869170074268181834479529961102726815940129865779641530750432526345523467883318484498354172714168299949774851898864954109379226200435586079213035491628214599474962572403413596733048709619687046253277264387381549541926682429998068127619236279785737185882978469879068832966420707940637841004620199032952130692260845060585596854769346123919067424534203928507580112195868976145525711585419647129323859832243830360048308970694547299043857526394030828381669715761118788278021705715640280510151843806042822583354562360304074325419653222904062358626109988572009982289889230824693056307274798384574320994141955813709845214681758725726113960980090533176606974580966405299063426640041951417861101142133930339370535486127394480901609693679550597564365561611856282717439618144278333012227565894747523540574685808504943710802990266986791951124792170471464190525923625280079572920687727727449612184311376468049624096220626332268125135144948817550705481949606291895628248889919498927171320764414163795564623825282839363951051787389427426951648773762145973892179502429266343837443347769062915533364202728836943463076011904648269036130698125486368848800526057925709668461011730615617909010179883659431521239595807209103551075891195757058624776737880865293757565960787581111173692067780118797705383286294456637375212051603363078777613753002299153546552233473786044250915919965995016964871692145159333062142367452332233760267922270618345214815619928292713403523297946192759815653581232315329487749176734136618141489152305435746285058324980115436689325299869499673855670267159142235958628320858213056813541096492367865669887794924449805610958903670353837665788957247804522241365467481494668226461225390443125204281614423746313562431094756307488070422391830376533752383403520004932131751189044703271402822265264205811396671528780983281323784108875771197806864663610535759526240086482974955690054463694705929148393310782613108435784881816097063559206922494610550245813350417027037364395070998910487406754558911547722532955500668759753911784440900518916024876751524350476209192896508788682978038554324829800392530504590837393844061309879353642553364674772425857689607040250478225537237704241820483973209950806539721149494537967676945094154229692599868400657058576729424196727190920207114286650439851386473818407916463051434673878684377672719306747511775564188868448279150443935802744423575892080225488996642401974403875810440766598582092737291137067796785607753333622697238509778481990850474212978074800546312855862591860615388541470325162821038706361762250686197031188670659300262581891757168339250730364927564695386531330724571766039594559871318824420150189681601206992875600695886389327146575400274446743639371882394720363400590657334022188934999266243280181249741992495837766905052962189506267949407775178644184913764738499016135273456127590188449117090687474896925457946417220518994900749464908581053811075062141275590488464312696576074328942173128596696727907092023234651859804048810731667452500485782992892852361891632090590279918215360517029050712756217116670001237158866109354261621569738024687346320404621013513865596869800935175236649688620621176696486472175268327279702722342033231202897035937536090085019279219490319181896624268363080521024696900741434506980363443698403644387535821010952526403227864871352777412422360061718509254916378370720041039165553540894511361308615979413015572350955575744754659534536257106886238886323978658841879434691135566712159046532030101737051522477517699293604938141908878341495710507014703265073100250848271618547549856958194148964947545450150415143549584329270468153044511094054488606042985734505828046196581623678620527128570046899942092618346615876953311101752542220594885469398537094328284871673845513268178342334972801044012258168638849495573504003362954886025823986530049999811621496541753418905147415189984111745512987529201336105731739703449946097201018363470756143306475962001798675583312766131100659807438330033478356387207389600286979581977544447967122108190041572176174615865428402537607090719181511093037930476042271159986965832259975627644947573398184429278974392727275151560151506578504715149007246944535740492998493801082882925020991790670907015420065708872943875451060149722994670865832605182863115150312715450997496733260635500201536913285709384346322485476268390153906426847373392518992695900943831832379921923301752621820501409111273274141444873172747127076254153721894948711225823600723634119320701306098374185723092937012046478197058076766987931299815752685226955849566045032438088390251465898821728216022910206928375329524191173810657873308064484128896296799913055140922163290969040901550506879440712478491377165289605241193861042571811326009109107531965801753592461947168794337100446232204261382467884997456594619212605416506296848544232356898083627973782530033915028980802424731125607339076552021719953100626986265904372491215512631714929123154701558430670260666710675433954271106760058442598142326082062549921979048278588814921054111491554725061412709812378174795268588203068516079448008203441313678920480227256034913029522706562818433932893608726206495323406374135335294592857078626310610195788990567617503736881079878666775948375613769330228281109534943449874444749205268012917058414515110327153837612484641171469881171299086855356538410889175874946726685564186139812089504171473567199222157067153918667828214464632717695201057184258203134299951280499622632656327461527276808468567592248906440965602235618790699316566045813132810255286825864695058330913674689446528117066268936431620757369251664577321053000426853509735756433788704302710713748631418942730033643593555923425215077955574245303918816061264324599380490407480288740025394848185433574068267170611609342318449633300458146685064523659171999056804534566987222737934282726425851527754786310203526669074162730988975228447132238870963579600779796924739017791825442605994834145541764176845148802701883802904009203627369396547027138987712066872034953001811867975899061504873890385359940200269632181335588524520518001656982814247322627924754544346554421645557609700781310047030833185898282341222895463167203464793760469762023735186384604013452321118028155153235300408896627485570430426548062616406837009024395195296821863363620715923213783457366279288926900087915028178192523318401896450205418104858340142286809515743496417107452232205890846099747855672278292728413663121503417164755339624470128837647254015670503685341961512977019294301137224847075063720982548330883100469427901800674237564534508360807059657630716321981498508099015568968481063774364845322713438111305521439713039425259603689910532062906028689133379740357247860051991997080317894143672229040502376575014414233289511862667958387953168897131964635429620920764427933201500319639249281879960278795012560199388136654157513462001040477047340015180095280596813726910993083730261455802842096658497977298663196352479330915942210543455717812859285230938680442644559680963915300415844477585218707538126051987993325788134321333705930734142230922385448528439333944588876950734508915078327847893654719859828940350053708058715782164271189513028339961751408886265172278707746396234626349220677293595845627914340092318977431995613900877628307881455780073460133608117816551822665490855585781233190005713914709158797283737100162210438781278723497459571963828101830511966591031104564640920521341594624711275121521040316494839869986051825392438146161393672464682911656427521375479354582151598051413663596087522060981417491322622897350034299714691457250139302857303043384709178184304632857054995782997098090781745883647176915507524548221461853306140400177279643047848631648290113183308031632365206139284284403563485141895764310242485522363707570174572409661045257761446940311608724335791654188489775526794689822316706083988942831493536196734442798252974650428959414551143591418310819548679870760572722571320554906924897026100564147046604219016444052652406284318018242345885232533945898674936841247280312659858230077298845656072997125459312464486498506347994837309776888372155682571376277879258928289576549040957534363527020715376603656141757044894682891577054690055929475849243287796537946227131448856110061274085891235126845282152947924979769033593178487630564070281647405313118444604881407354292403592070837209847173586309385944396372768494981460880436450840432850226322675423945584151862901366043535953394906766983574792444089747054401533491068741558804058753347017623007761109724128062261098665558249660119752798377924755788484608467274311850555586614172327991562976739609459066898504140736220980697624374590533360907652868217411436527368931079027497927895550427508786721524119413645375377684021671254259909091102364985002627514833098895223483987898208413375663157243218833333657218972795434127649399506144223893798113779366182601701505102190338907341453668034003464673675244345586869727682833940207188349897371539286488747025182007940974237276206174341119277416364465035460763728888300979342730851774361293264859375889816043722013427848066853951105962940974968730542287245725946715490001731650619968984021781109541618777819374190274555314769653232344170231216586191412752749581902114123647761387145846291314657547485757916289193573234619668534141676614123030188968629563983083643147705564260349379918870234557415670313196959419804937478466689755911828856604503530527154745083216476282263041108311964250126667596206716965049622244115665007510929629584603464822444998231448976796885663955053171484959386741334004732988010041492240193866012528987476305633588905505419229454810125504765859907389926717790104003420778908797820877365164153375886764766688115852901321499558500736749013737342134165282210171396856085200709677810699694172142428439591533531820373788468796459095928325869567826136950606838677300434710695101582899350611321215559847346785219348853834993448859604365748138848385863031947100979907571098281752402115557378243193319881976044081868774168418021406778395114912392369092126123871721640106074356032022592287472103117857252921920674423895942453134227296602608190397117313927823553081139086847745552090850596755579039670313917694042344124715487843322893806615642831293745770322734260250447400745947382091894415755642108822406367212728812050266012470029799830416527619439288887930608699016349952073634985143431662613362900640728382501500780838643733527423248279557529953149843816344191347134725485973262307415590639354524260553784365054675632718284783876580140917602698289248054573498697194888098965667031543162628637205235000000582757824437148015853490105964979276858643771002027932981737411105153831882507384287058101700256754423866212006942204731342983599527082279504778523432192835664306173528573552790758853358099923709218280771307775856779244431646749699758035686653013271104058591686759200172322682455169338634771927581814572712512822972735249299444386834697535998334929043222820185839092818776158545885210926944253057494423400826424620122445758772339212919839464465021817302762684255977215450621815300872921146897899610798180477076013686399876573987444913899299105086025651558775822914109294972874877551729612955868901451620626615106019908465320521415710012109414982318337809360276148987826904442737322274689730901380166831262387850838682012976192527082868478179302936048999203321028981284435189626046319020432545975027454804982903563807988642895875858281105528414199987454997434827028247075134143955363655047094437628952386482820747040847873877238057632507835770713699267714008858969095289491097953142521961723087221337420998538689441628697732960257561015049635889906485797824926908593042558271810171472964655310218468677869089863604328228285833002626055115118316986993882976621754968318255532447595183180889005881063980246526088693775041544480783563648669505052406707820097242131199623225486798763866923767825659892841074689697253516526037144511227954834176789544763300269667857601917865625548601616653029166858472823495856058500849595102935492049661885813354015208741112278685117641354059417987565101162617459328700808395822064027153343441015978839265634108501786153921170576325730255424213828576083286365352976362361737696391320968315006648169728285781647493687140975835698367314952897229686979349335145115994833312007866816311295471652608112103702981234807679460508830669967993640546513099719224544256644953042504024025478861668181812189963578582861350329905862650531355131348927240698507782615720698587751847360833823625651191287931628908892280701012089947933860907301132941148087115563955439631270471717422199235116108725187837830072406383937297635136434015117106570227225267425627032926124069983931215153534778516908797137936153606649922934859000740596390337668857557135349274316682146811441256394453195389394860062988642180641464544704664101515666978371579997461574644021040964305916281735601804756451258998518135142621355000344267949110757800900772836563917528734452038885260664056281604482143381349908740346119400350823425175036289989811881219358311678143036770124562073492249931648986009060313120349456636252450200968412581992660922459842833048101574221612588887432583060384984817270127281948715523213388718356011930882782487640731469027340695999858808805051212542881606288956960402207381624698436372508882149010600130038994916478004348177030677437167502873702706709576428815801498862884341112017172126365932678000146714032600731115266963882259887176962890330430852897306472041223972402576749249633892928029335215858947067230507574778578012561073674204677547598420271591235277809203397395686929571914857109388579242291874762485745521215538237887459688751053138046672004950723266270479072006231400578063398569049312609091788323923582091730122910714706814152825443335219479855763901989247545488260287647358537256185913338113219976035467832147710934419005627944624483783734401460316719347808599053751264932998418824637432192802208236243204970811228519109683990782011921746426903275860356781432284497839686988485012486369606207690247861963041934336289369683935083490109669201967380903327613902989769224458385640277673669138843147331115666936521472242832582975786253929718914991048312783437289710941193864158580716489331683661102451654410999821396504653675491854515423751105494315367253336336154547675325512583436607592907758876133048167133649621054630014556743084477578569031110606782760017522621144213481069244146597063369031918542965702525731164592605273011895446110094144636056548740937490043314362542556959763685894403010677498122550461172495714714919871935345741241428595728358062335025119937789041215428308899690838345031579660149493495668777338785032939007206807369513080246962223793619620143522862293532146429327108249210629103907316814118295996374417124504524438923573814946049505322132587917203865887509099959549199205728600590023226292678970858002858747118591167249308936260853858741695328054696327925148420172139166500705522571437923854167685720260955743882572523133265688853174055340558937599871563645381129008516032763435238027522910197596224957402135892313866316322752604481762736457046603271526614419775213939956544122062948194497723544531893953319770287877456024323523935278527999186024761928446165484810969219486904427393766513946337997144354489816405933728166107520358754243690678389326861537519642621474162591202160581276260686981759787428524290391098456763465269034695436305690493546600049656164556558302378947894052601366137962502351100981853714169048083489099783812862967132871877445869901271845847715454474059380180248634775432223761394545559285995684256605533749211698381684314279439289512233430158011732360003422723049442356523035002103020351915961254894780203234539451988791536323648921233865033422725981623064490597293595158865843019854800064027128426222693208182032789619054877689923205556514989559077119956326192607096197768042150469842351227328128191427251205955246817137876325348457206873151525208161093391687821038557192978148010131678751945391488771591176640321960522747438895919667109376140323343137878617951940580211348703459016886460194914757223083990880600640288468056009594628227539811134519827078790696945332527913874375638454942453368548929916379431614021017893679081904502373437311664173546563120617419389290106541240963792618807359852573015992494755221540761493003483299349742187950353741252624128270038008728820998593351943974145871319718311908398402937281918951216933833167235991349334524971225089540554316055002253911309348708704350927016826398929335849155077658225386610723711043513831310679061512612287691431833900014756341964736158454717919216202566131899065690156966151572859742453244621939580430405692369774548772695988378024040348700281453023124763477149378000810078836683138471453434173729115810455249910312771923784535684192982599780503957360664404242425128561403388200622973861499759434240622290800183243981763780724492757566954906394744822403608964994924612749328405672833146784875982785534858232729881577668741357157326577944591074180800181692612871006973123209404139906069027854366390413162862822268819785347771316209570684391061705069975262151775681731072550531189684536749167772652696966386747385843473859289872721629415291443857719237312015204607308339468548170239325188282875510970937884224764278660811183738912636665126108211669159850163930285263524453646059131582221921670866555069065398899523837458546817428030230833148872613573994533998677201449171091531343742117915839613731063671593569494602584753418349907319063270434074888858455043650803665842767499337590468843291697414095749927118507088374870354886538563149046654396174744844643452493144690209342118665961259631652781484243231013614853669602317109648654439846972012499089296899449303482389072263227231561876897064329770440675389085481297154365073704382359575389368602768493681191452346597500939585681488604372792681963329673626969579117406541411900384731115645961966707564450795201349711517948339525609727470471585388473833666699327114807544497027395040544934346418207873657507422959453789345561245587228445570213152585874113212996036561237636049823681249324240538304851334703499008547863076229392053669412654093751748688481106909231534571359208064613588326103333449501726055813021532708000005576547763675834055130746373627091402005554413991235318057787713577138610676596848039273747877444902703797241072081436352006344800386020979528369582704026323691769694874663627049205252716276199752338418296322741987950889864955600792763544595807841927996299747192422259593859409951107623021867710641092225736050228165854417202067161823015324828148140026633502054185486400864797638539725483016510743491154014581075664978445752567009748202031599688173771339079035248094347959094853434526586541512248977218317692479937541137493816445711149229296156265732025457800499526525572712837448825927726737882525712837492599556080615097153760200293582114468491334505974733863008452917150994674692812229925480613536842190859827324178959226782171573187060500516501649260650834242444700862666566088109979729977735905219735308998719592178955328884014425225859562032981463448468558797502362440538616245896583529756514612353420786999808010194911620850376794837842557185740471409212840371126767245327015521801555689224474994658567735097752267548866141173909576093705126896877472592737631369142850846889476836432549734569975328231377901207462487795433918260777364698294236774704287928222452253226743019560375631578454761867596362642539157802219665692352911820829742880792282078702174537700249330228430923910410021162274356204356519671395928569847381335886629891182570056113868176052155289558245053767281962188663765676331702820872651498441919052589940845865027155433084594939181998382319593926151565648091899466070234957496828259869932593891686819540539764225384354927700091859714403361532746661841353014163022689871226861454211957164505710752775265996187915427742638108290660294210265343828200950021519633762162854427976636710986044178964420367850773159385648530291396865862424932102496027475190147209481748701245372585554425234278879950327149062032492406146119264348524744938172391360185646115075265807678140501394359263729109403858856948273033832377743770610997607025112204290745152924021815887840759473030869624120942584166099131465751172586808718238601992114663991563716405028718956979531422288102061895541211656210344072144332933650502937560383533858789463066983975826276267820738485078478992358761852516502177427850577152663650421893103599559775969116771644338538954513632098598304991093786755574852790686684333277202533223681715601478271617260167663999362247694693840798524878934156336148536716203919469616507582896387730470955236140745846668636099840358619044884436953070486300166755716544766521595777387676004089371894583917752204884762772266449568041091072843330025332946423353985942531535256400733591070892328297503790044606254312561502535829319740376487698537325161674438328528807569093231331239765378270289805182558856627004040913729271104811045379477859833560707032455378200782869838884704929723401232230364196797365752914245689549973190432132644385256812935207909875382684773011798102529611180244192933852053327480234488525081548881584363895669683422588592879919398986269944199913560779538570005722503955244435878802274709173198533122169169421850792700417100549449849550068103414161512630965476974481706321947020001286819946221914476025280576147322401484523324813680823076538605531453692305125163783969048626481814394475142593834861778638508327675159785236023678814998988211017621834871382311853134127151739530220579070291881331555749334621765151468853730211128763000395760954961580571637857308301243695749820500409043174633595138045160632858858311504673434366938740819869999539811120877135082897184861924486559548130593692581537094887216230633073672101347026027123152083511452187665664418857434305326161381376390302215562465707717197034098995297396591807225222507769909757110039687009200320876565829991684698863236355877062188586430424975757228777874639937419808376923095386578170789149885949855757813333738286495116799542906912848266331218054988226262679962526941543013342839046425346753472725220585674404239274177639910011858440320850239870761676145713032909201989487983938736028214376887191532349510734595597645136713265283248414100534398741274557454605358993283231335043989152486691729697940146334508812255046239057023522331109049546137318451159151726352887355602518316118183855256238327085509363032093493634322441824952149407611187446871693650782964904849969323240227416628689078359738979403446519012747413009030635464109629067756821419977314681057271193488986841035129788332318459838651768662050279385361260406289931551253973847771205264529013595139518297274977749618886654825258730779368265508512501754646243570155106015429597473675577906399820718666035513867854392992578827392366130505364807188132764888395653816833371615312536269393993947793570037862922671649751547799807754614710673681562303206532976500205530581254400319119799828088727682524909265486055493941768075738520541246617103074954310554739502475309439006565392286999041862565988729595285000976978948801263010707309890178594617555280002622789202124653943278978476482047892100721997278923678340901869301432791496881792414755297304436708006675843667706819496167454266287027452964230027268180972430113270854702915435376264170148485269867310702020519427463495742125994296297946069791253301815341426565438904238346169709595810689434029663576115365621932830741997234337457036866428639879638730770353039352928771958579631713712589480299135138604080867714842556256057112450468207310580578152351968201613233887859025576289578121730672184822279116993706259152604716054575760759614952221915495963975929084879401007534285333175735232456844878722032284131326438101594782221213493399948408893438705319623731561441040577334897509259592056504600101922698665236581596017314104881009227178256079603055654773293721242554696563252696306712148356712742850611681865386940329820784844385708971157614296043209212835623047325115355566195064971711013017339039220998294542376970165706295264993581396938152995192644628198865218428002116419461973663557505335949742469926374098160578074706443418151703460209161324534675749978371387588841734798295265328636133586014355391740372092116866788174286324022234804703861358612950740981230759860670002306862857806982077571561124511214340330844293901288062289173297647571803290270671948992348140004385782642820798222507539444093543858104617293180953823944154094036493758556924927878720490653700302725658860108058288602739234036987193918298042250865880604567810631962029786164979765233114572536747925967484826073216642214222250943126314666127225420985955738307970579382716553111688931411506984498884694265592639970479077267922049963945248405724935777791980202721561196634692232125782652940777218232035541624959180226921527203256730558374598444033670106247810432210406747679062686699911896595803548579812507580666246437666742086116206808732183395825547821343878900709998472857724594474422426591285363001822633927747892542357907780821735501954820709392039876211017922799298985927556772960801806357043745948680235879884833535834454521176282002958023047227988562538735281838784800492905702503170830247087411899130119487518454558483543236542652401006354470593275294640802011733641731709116008348657692448633505609458126219704487027064061324314206511503586341098571327324651295636544952522066666265414554143208825580462997307232465447683336373453080879873531300478202318695035205380366261923351364251881842252427353953072758503229057589280803871106519874603450489043085436509438281748872542524018318355059482293378137242749556302793852576464881829827107615447215950633472307129209270571054774036922609055275225881274012211727240742368018890511921580047927230243474799965677147132854181130595510125672377431597604432004426568792227280523239892788492534383789866506058080531171172323407454973839720379606281530785002364746488286914990181627967465347452075726052258229850369322738483274498116599309475666700790817762908577083293923839909956546305973975714485356419083567834150464066019506755944361535627118105608766261200314139922784585543259678720792129234191322609469161514050609846254968030964785869259101914292832080393572482113586972186446399474319959457199371754312258713958770314666662771507482344096955166268942796156957867364727553617227581684388427395521495166030155591556596492723533196411574666007397719447111305494712055841681640881956510940799576815268160172615908850505297143308725697009063327807931824574365002344281485542130897286155297865563839324733751421082091016720728205497026006801147618170186234542183090500800946225990182185756760943844211304304620131556606725712498544505245716284827306074546397774143204256839367399057886248252428851571056565028580765225803691287313840016618174533713814919736431838329701278322743363985630648362124513531867158680563716002272594597585299444564682290760947715444127181065934710329575079838625910187553090420064992094379346989161402239334006641507693439377535428729765929470404674489435863078184131692967154043095033978481803556666399338023156838266990172430977644249708554763207643737408253795881701648591912885565091287594811070639594653558884563777048423413641482228149090469742222460409427303521842863215584879965555569649259861751596159085770672940149667755148233769028830051605467065053531264842459774037549859121819592609148734151562011937234395577671584625625022738849955094434398398805168275635654528034699540888569978505900690000224490383400215317521725403841761360632079487018814794708081398044928278445720587555639908799181205754376333614319725266232473692524709393584935656845248383840612575615214704761247745610611670371921500700900952743748554302835449965401738662503538288936534622612000011943617148151034557706411789439794389957667463739578844104350878888380526456935697683979550464748486622652890407804808340653208724287010610202067731558970660655168576531877212190324779128541782884985766411325887291718844316576194588102717158049938158601519452526083203141985709305108436932617112736132719358988164291524019031780873032528592602030671942400311156793396816758561208944911761564646195287767277010951450467861641998428137582242661493745306517444793919573382202946571318080236795301493931018207666605563282933799030483317325414887457739156022912459071480594232049467852886610323440428820419647695454051015291411321502638089473422638025416418124246007180817053821631021520776621817999724870338443145524030026769471436886935517730755704848450227259387416092883149734144037219091180895240013728410729511273990586529776560735873793106958270601955063829023638005353202056668097607823960615963950375393865750282130691122447504478247863296492736673082634259552632173984691884457056089509273336466229041002608597814781539007951042112595285043358227906324034421011416705773645151732183819777086962611657385327241168971786013220052812108668970384881884112762418853175908686897522790475854389508437534557910583551677211303153078911119173980704189099486169636020047021421879688941434784763289329211178493113679680676930616939234673510801272102892517162338037556107172376163078587504876050943358288668744511207007099571468110641209042471548412438046177186795331192560566675955309487661628155595920105737235621684087589394979011387663895683843905861353855836846980840516167519491717883370534107521396697940212664308404215817636726947541481247180529212217189200235099907488537115189451132885843234566624794242574201914094847667882692374485715596826542983853956849287133020446324916814611735515108887710209798659039413057344110434972985002631938157076687360946221917006590103813196675747756021470393170986237647167313727942693896247912475611101384688838369453696855323100825401281095217479884067748273563612642502735865475077687831430395885947382464129813741985690306919846817664815381809248899952712388562180689436055938329682593842261448225915731417404733277749091151783699436656832447953543636552994258459032514585463283074777760668900904405370092201974686081975225949629300736453817657773951295802523743362880927541134624498306093213832666274297402111402307894013405785439139141132867520215675722254348355787521487058720949525624880884050514857314747387159303820533304445332380160833772940760304285204472684721629387815041465456481609098718459156101370009957750916315480691167853676046363454832490171165124161685739468885090782254103410059455737490008950285338328654282469759114706656618530949103461816849115614329870059915666644428837509787610857425909613121661854939749335556391012806845886611950972076926274583705168120006731005566825909268379544309026618057628074687222116826906690849511230583460039496920455496918662611862584659497456635231160748480811757533685316790923139043975553816158874438500671862535737015137910539232380688003841704954898210454790991086595135596150377454812337760042946407666737435184329543787742356469145579572938030217363183527365750226776324598868201857680465089365932522850607321404583878360711072969735922068178398050526821408800924543038824955424335132062641827689196967586164592746756415547860758363484074598361293507908363113744154176822041931499028142663879174976932090478057768419190050115562269521331413297424965769673534985328232890390757002594290857524235363847025353168699632788406732912998913628938737982405836426447635125526694740467923343746031931780672601438479702242644187054126721637147832015542851999602183962921731244125188402922719036344670541573402796440038383717535762951910487947406904098603159267011085618614236468903510441857473114476743904465344528726260434864232230135301390022409945324473860513222544437998650891857481909210062762417600031662918502487364456147038771714767389528560725925315905253004242523052578369772511885875492368824831388900171804145371109714840371139560559668149929175468580792147717604438136171383278333152013287350878915727662281425381325192475312815382137511030395966466213996466276137864646678426297745136171499283757380479134143348267204685762040023074916636062033327851621456959668194134557440389769326046493322020224334962414799533970897105778122060419495446137832562836239914869385173044049037150617056192440449193010592496124775710365278166345205071160218130855910826505306021255106386107513011037117405843008593157834325634649351325123184166260026040669521654498801457643929524078734478663131798649676102731088722207568448607019592226594674995660441365559480609862482832945449404959128952150213418560180952256820006352708429283359443740864082619397807386120980966225311637222971061142746932610598569151602105759868760663667280967742918344835360109774361654660953483954387218797113022219245055060650369443744263086440927570994145559064650033745227358691028193848229275419259430216942237241533734979779142662726589215085621184972592703829971733535217859082186742395204548742509795874970129873986957916357331401000922317462470711523858042037603481626624354981677038956798047409505329225576876135539739390756871612612217931119768068131159350598397436577670822086559039955485257260368818561705933311935137569135049874105167862004392661571533934714135828620670509002427561336996907128889405860844256865702041198127747617617738874562236770959388234305900925654881840921105468013655754557783363495368460585812510418835504400726437341574041223499780600245415433008445942047267657602216668589438809011296118739155567541781988747566673613044815596816524731877929744683854556759146865951008120239855342050209417728790150972505578758632219509955621330617916209120714016452593668704824058977382474683927673823474492694642918951905517917241762215444594045470812056924417932510031841506262797456118774644309483369201724196666945130687775500856265599325313906436133920961430511108863904943593760080714026432271552007014843718261586194507797965371606574780888123867134389948823781358180726825230818794870191562655151775662504179986620474071880907552304111337918779465730139470635119853262353509072071835514722991992985012889174176244970047464797313955455382399430755131855306952809521671850658472634152240331854815267328668480956301365306738100311006502590286219014361894870183339505403960826830437034176095563051316224898450072783326845938463596554723113714985541441152991088130681679077957013172233025683675978765853182157090242927883888178275139112246243580243669717810574628697616347371578301798708542106025914633824638878852963926647577533385692476347669876917982341911170290681793334876563160986584443114774535110915418523976750477805799962941901832865081244009092215386530288015381474902731280164957564384847543293461604449810729669798141022537428378225332599087600590931129042425220029055310548639973745963591140921506882313078389358385301957943910439864340155957340245802227048850085879571482715289488910241332480782202574888793641179298265400694565932500193817263580756858086546759308397121385149202295397440526404897123382481201930731037500146644157317287638392926430389477065037945979827535877482609116751226117379864129828552309176051115794020959537334407503667863395545060011197613904314844263894156700061579105374028588856652104645968918682612740349745367166608865792697138512835029967508458886236307024801034329997928150297363696027706682045926172327296542343727518721831232288376641001615044048280303294833501104786711428429758179296850315551380058054342531793138825122766981212177311804886225594220684633004552779672269997932713997133601502973311432132282100501961018866829591052338060258561870733035163970682736769896491525105036980516200806210753040096096694459210619092331769994818938557146291778276625589344071406466021726032227865945045551947305628543703434160377855102481351693106609264602178191328156993503684800786690922785494885478395780473734980279814365016108575183351899118184186782853326115487450774359815420844752444376429664037551634788195769883937961685245931949177778187660404269878558403111914120779915659984369109977178308129922182081241496770672474019668037162132386253291194107011508002174393026514359693615082545874839032827475739774843417278131088726193148994364716968068775704342761812435267181231086667651618488433015164343956171828017323316907849473230848219409135192817244003259335009622765517105417977563387096188467228427998251582479829677929773616068304655690950320418510074011443073916966009452065587550990639783760979379252598538488473349567010353342910701102671126227602818206742820041200745159630734285513960497316416305986766812347073404198177989743690995485005283924621673375016678890936468255923490731437586557302919067193996215881673585551489247543030957279468801349149363468911706512404627137571394854319950739046525538444200779467126528333695542401742340899467258164408627880522358189339904516057022196688793190321910007400694952397957426111565028024199379235985971794607222672045380630403832878362617246070259544864617303452452274887029927660175568417226109308789241907033692320073020374603486705011089015299350562192996403161702549705029496898110643048159268527621333903381772173150905418016088191145683276974514436838094154924953252107916381734189871345652190178428614014797304425330287428589857568835915460541922310793159691470457301329607223314370578206186963070213499476490281405906585604813897850527025802490937625941341288698887882929551606798159625614611687060264436423977515785294876289273151238077735363250659816121481865862556217444541314758517457303856298946818768465161577206283495448814269726240692531501289339770284839080545359756422811025683740459879127388936595503191752757269508374016059765586380935687115516714879682038298115250260764039022108493268210869207025466432273749477174037989739660829096912120228833584865814947650464699632309262048594085887727474608671939453373627797223013583941817809282180524342852728262438253485279898503882287279062649481453988617844970988111433852042718371988748045918141395826660273289928723635248770020171507216073900669071512135062617296460306458922848657161494400762406120514927143132555519354572652458104455843023609969777129170171533364180298065816216795579722248599394986335054574258963771998742942727486405852907427683622252048351714362796715437033084220176612844652834332239078477068900829486267455891397151612130786129036919160672902520638617891723495970013706738824665742346640034780025454359696957130548150539935293155686515966819059807834010104638453118336976501529131770571645589878259505127411919076213532775747501604679610393099770555872347984076162625533417398709069425871382328278497806565222158425901455845885759326089771430639616567710215201863925226219339450597910629134957112004390603395619079897331572657935575597238422493712665829900145139587457384228452753749011665706836617456445788130757704578241405923519957202337531719775804165642135619436746123125230048306155592808059177871454712699670470163714403596636601106514745501333071686453050654746057875196037646125097874860440534846752671100802230754763685895797219895098831601089520692188314311104129090607365985397465774937642933984432404547770769595117148009547686088595091261411707264055374993167227298233861766142609944961873281923736532585973426754591601539705058659797708997444355424882979615415654195570146804301401662340647402116376151458196785823633547239214059577332548034684413879635861845029647612659108241407921533514215419435925876673495718885693570532288823996632085600511044669802860842076494556482581905265467951472200884178252859501604108412063083173494024604070858347035213833041411855214065508453142645989818671414478239039835492751744721792827142114887259669173983071281200919047229150668331600334589770373149840371540945904037882758790720251626645967665227041158464875496292909133086751973154256207481876957041462485559494004185722280658321911036525522150425970142306030963854878938488805251032387581215171005039453957988807721145376690040234125230719182550949839813218678139352815808691297244463884260211819646301592070773753248394723885902047759900860613818876874832941312587190005597146256318519403936222060173227985173215909030291562170015714195433481184436629187105479384473386265313198096190564935096075145469290812891028068767889015642715050001410000314596993673702208471860267592588511351272223609473230180457787821453900590897381568822670461655255751493347800785182238110216160023897286025866366783881875834429189468428049722830704297472373347471340000841773470617080947656587826893443860029111583601660601918458451272033873450470927635542838491797517004249894466055128122413542907347883514729708812317352043895397704577609746858925208463355978567875578348226777231321145776849631248113751200895341154885394801747502615728697679849669827379896623989584756700055104563879462016935361815494788737675646897199803102831423832991823075265505354882095567548092805623429387226337738214228872309860349144708931018994769564944941946106246618761741872533520894432164840410265466069185621604254257545364855991336516034297791493661857463972498822927804066594145263942024578798967980368989648609026788690449339535341157653541888513926089631194428120860746900838757638024440847494141802404636137444638518254802707334169390269601559876646823031995324596110912030782875347900738495062787493074495932009219061184623645762103787418635382854602311957537314875945362846921305892646811231111182214496374958440433920428884545552917118805011307890599909327491332720263963696929449864614259784172662883700764777607808693029607340551592943439036017292105912543736427081823998213312420770801576926501992873306913589817595288501223423746723306096733898741645373777165295557663082751942079535262143538586587424633525621534892944159035166289002954520947553494556180890713762083987362631617237747852067720922493516651151577557438956859595554298982702988703169536666663229329016250490801249207349478592247137420311684310465188977655504013547084696360094016608440109627168047808631725137181436373437340359836452301448184487566135890832942428799920558411878922981269358527146873327961646876720630348110212180856398992181475773639399504584340123724236379296276045008808082003127501035423590362184487272145661620146541751793431115677601929110400048990049803941661346015767311287215563914427647896805234157753957693576269736521442827792281975647456623389147976322915226486841855514703663033920823320003009392090351289332410010186113773592179468470046918987092069817063878532887882437523690110212067335760573440949798108936453845395329277146660050837320424883997281017519914070676138473226695532820418420640909848853442990319270549529015980671942581502290142352554177960263023918608780742365672891862740845493067547707056630495963266822966616158093216245794683633258163148630711357031517395480929529594614069924578250315970318871258837052318875822127206027904396778913570708851411960111060768942432382685845025911818867675423720365989871965867249968259143989797530572121527285935598989340538938666920615366500175878820386899531453395306012715083018432943131411156733835417891705453404955565818352406114028966945915572573358383365531597710348264425131719734593400324585109266871695834278273406478245842414161007065151893733630103709369895866825454906179512563547931071110295090291814464596850929686720515319911437921559078497517642347768600589971220417326373475429415034886946608399153875475573428949507610735441292784964086609847516599343575115277684767400457433430291913494562145595610188411377024554097455103107549162512862469746702783978557430036146896741144787697608793232117469195594741054462425272819524750258166356361034181740096245199918262730762096010194103137872505830039722778048972876595320285932668062654829979420827807823810110715657037454997785023620505685742253007101233296465368264979974223125529631461884067986851443222637917270931544396539902461113477161835110101353386391927628553017625929047603086932441343527355716682937914968264154219449497800401427604822406944621994269918015538496593796255472454914826781085784600271341895301508368732426243442154067597292777441964667230203952051068742434386072970566332490236508875205844064753787581871832182173899481973361016884973447323821475099891584369182120621322970646198024399726677946147001663494928055089099374930303225403422040860853113504235119957713311019691820883260319127819181097052557658756193428752290876071820477588125078020279771504840490141976717828647843696958676201963518136455006147929661627545298184096274708074146921443184204384550871406136186183919924617679760263768204430211570056762078023594831073685987913224981709890930497091770673337810714220881255821369124729338953888609297884264322905894069067280265608823335673837835491626794373515277127220201160851018986413008510063740690272816073769072758963388574559692535176032363158920316054335332995388761393413282714865506344912885487371351838498196450792116845479082343784713465019015502323903629261219676600565341526533436167490310389878539691228267570605736692159309404806530066901622846486905203281113267872528127826618464651016739867495425758687032216681292883922067765341187532080572850329655662107091831361713026509351633153774510482365537631933707097218149136220377609939470064027579918632529528585439605563027057735578810993528475801719298302495312327918860813738395852757077117020646275946756258593983971235562827243340658995117865257283032780607059213676004143697841455873900658985216320812547455443600208268430824890585839235722134008844013113759942551346276377972695886646469242554463244168755817429672857702906335673005270146098377791748517816216000358393747007585316974997240205559521821350674490119409548997870995292088565458487876675818099760475507097463747283776016995835299452177455058385983596342802159948376910936872282010889740252108412746339150070538045355222351909434620205291775284653501031978251334291621948920568951295689011067631835258166664125348066931622187138228133733672401990990421367947706699911663825963114566037714961705869898947564123885264953725282921512703018190161518727888367021608871293876982819643002275012450183153360241189843547574673454164864772056274724766173459279308256255696544334173222181147338697395055158121970879783754831070746783173545297508745748793978384681778503226038057187733332158821381976777292926754396740317596501881347574935111218527230279952051873044917929665599387094131543801208231294989809076752361489127025909566510483819784365633639438279450609856100535960022622969257695539162990280195461353516971918748778530814594840405760469402668927470998465970681301022644176809775733463693359590272022089794848043053701320710924399774781760211304688486811797780210230469362471915033732585731107403432875993366903506338551487702838295873833441627763048522015797226851759351106630487858749713231029646125898314861639615140542373702071108670852675401523885548693424534798148839126190885980124439868996029091605406932135832186621778844396613775786352692590875463141953694870310232537995474686810213797604874323925537163768845242644158277504385686307428897692885022258129876444011792904448244899884313319038204951905673976855241373626010319607586294422379852691408034818994497699364828033775621518477189031981158820384840034869888705288652488868744925163855041987981432452325298020531844194227332310124482582532346835136807431497117670392607412673250494108737181733400809362013373422465979419261115742377402497210983596520915082144679802798734248483058906977742687571290498352465169080832308287152973872168695415325010628883806239940575152200691757506760664341763985095155954062571156291057927226866417312632517723770115076693654588119519355690311287331122431399786107181906110059019610562491266957162076665800367536238152195018856235958748900177622945360191630578501381928731601967782295607367576405251348257931386726824830747490348945346143189055094016566844087848389958797295192627899886267302139103591735472816518688576256910259415360530749340048982988436067976518376628701559112008034041935654497238422910673461039742290234326509482020925549335093951493841359981436925570479449322133950570575792965740329270838451237019915060643926151688712127484527112130248367488198385916390591425927836372004803798583425967107212308305578608558223384250822183812903301341730114583894029988442169440614932253335512132153982866459689090975337357623670682678185269353760335800422542011270458269642079459451361725301073858466738262364391045576811187801035367194095707830242173593504836643640715291558730168732711198286612042610067684367635088906379709929180352902071419112558743018867628145712038371638496218332644547455913487017876957412018088070040450472392466668065263178443658023100512996239826651662967563256396287461567987535002673503510606815076612751391273972338055340799263322647321698510517293866380072779390241443579619637885715944359975288910725599079543713936055119939703513488229927246543369451991750298496945154654024718927515203354206235779339221141697896171989977555228315546698533148364369561169158367276780551622693727630313972899943687804475058780975957319718880080470514278785187140118472637467968809230990366903803206572153386902726067511306836582281315481157664640936737242388615929381547665377266368958458785207501012677485585677628932032912102429309555747013140962181289900830823439651406423043963309820757403533752772716171128822987773619279250520742284039802088213105416722723053220571266436882154677948352377358179184059690199321201684668973760227645086698620343057726329790284566016532208240363237425686923819224807728621847302735545098680597318479630761167344598799569770931297484318642026512597744796690142066305595105835130815923793014934313159996315869607227117442280292995510122703227839598116052675143634687722095847848575456911113538640026794079331101776625667353760254467479104874487424595477830558402995631984759981897902638079951578240324297430331188449585733735998589542595780885293420246958307015649076649713854799196091571490272297788603464166745944457672520356820494855302752812597532785891538395585986649863916124637760553752361026472257807533792981265978501802225066538100001977920153722295295535372234167378061814081562228490521126734518083509178161131213872623235876104342031484764545395169151136995561673447354238194911675496734097070202899262987537159560589452162850770046607372518879821439060352960331091384141585445873279714654880863897810432792161297718484466888387522202034115217521608801038482000632000380158469955836804229719866462759629556410206480847352578410619292169822592259033603242597246177763319892480869711950878587542526309146181217251697493735450303900034543406641808313932386031177644941900344001363149074189606960134658931479682534782106267495103987807770751848067120747273270577361017401957696203408995059885647670396063731196017860052618248499391081085456929305678770658918301674181949142687101633894730693910513192817589230034725779650511776270515689324766995515382398741854319200640655386755377299292450977904319712267983299731005722443426337397614827562038799476090975288931529104877866773716146126054778912069413960012003378436204162179359551728159075136465034109386724559997609177177431552169963520214932674029660835474484512417244650156309341079379347832730535862838325794085681530615925532852286092248161083297814108364375651317959098756251763726018342667659664654967442547296745726950618956736882020137875662461804765408446674753874033465927750221608716473997797914139771895039375996048605896466407848436807604243191780228512669124966054211152505916142203442937024319339352881695462725768299224768204075945014320561831219144685501309584047248896661870364885489725731205181143974483876677669513982492631766140302231123027800116912261969659110903073848095314848241532049720448924269633443009264130370922911864193803321123515646167638458952066098622872033805900351612270592232581008623926787700133167431616893791772074648233589686541789042923640558357933413845895379751028965499542141976434465190456920645310767241609652327427063224248394830831539242865963252956855734668617750141971546632260701941941600498772925298777146182570098403175112852829491161794544590022183686738283994133411123708339131100526259038171032441764344737818773349845015271704423801145687924087423681704007527030949477999830400642509043405619650724049033824438670632817379526265894663718859641056621561682235599333752437855174266388103283372531742558509591036974350740579940192111039878799629242045500112363768077546003520413163169372260876028527851328638464085603283823875722865182361065364444312220408894660115447790171741214952190001414484869512422799386257104748545019859284204593047252004655475313584660208289874990901807510798904216418620614714341407923531803094728181410747129851886892284179075021869030996865922475062211534862935441662359273283246391798079017487139953728930988823834686425845333175938264105767710205244982302278993637508646673317120089838099599143549068095982589131615336600182334590551069199919222544605225531944377810127134029139751510749162026485086691151353613012083672323580204264010664786791849667943725936063413212617680348671037121093110325727828918586645231018077728887817969256928730028978108753031606018872612533882123934419792444243794163875330830055977321517155809957210079913471457303243457334239654112063024534895806652411333794140533627012113992999093098651353961710274398044316535642156103355929002360181856182041121051920275884060832230468941390140948120921462087800665664681024881774232693515853584295841436970280909622437693417538491083748956162317663760818531824893405181576110333784546505828570648715877290706110175339647572761534499930105449064997835053623564008059356124371725033444587050965749782078603064879683559865881900443660068923891826425721476954105662318406803728707312274206900894382412628710244632992378875818100887272105029483611093933442288935284935852415252117041596017819464763440511808905993892581225033004052319457303215668036564742260057400149301189067376206142443052234419491806463213589240755495943937036706044790477661322016797629001233296173853457510589269464935112305751249512897733387333750687772006710670079877087578511771637557145939598621515843510013441960919959484273628526179879877286895848307960569480466513591413848396348190236285342966390368099846109067272392362649188203469107895683642197455581010070775959296765451858764256702409187546230804639600465108873732506565462422288674825318368419264805643833670308138746844646368943197054140544043117784126074846747849276220669136233723463499773369458436682400548611819457163394066763652142410370512353717555935579044430993138552695523834368681862727006718990613310821746018490716844944367427441435779324347090426886910419930914241959138488567182025755674643953054933161751832749854104335120991116054923131720956019169854300087996144189282517763362557455398647388752148548329027934415873848926588211919318601158868803313272918524217492294350612058827009405564348803945554327091108262604336542102436226121928997396402934352732123912467856584208777237685541850023167626155282561132993227609213677129192613309963835125631601651643331782068372231529862773532951316747173300981562831234915729905810545058152512994400423742204553638095665720283366382715921811439148914640769562405927731827199803864884387738921959676466706813316868614475927775775841780093222325782594654630610919046381991193432271240574909767089135888283199566249432667712800694378916517908650941445715023286034859389231676981649745192858425969431208464224241899310571561035105739305138441359039325781657764071124399976722556953600133873242471485602054609329098373447714156859766511135911487741455430088876284531156782319742013209972037781454246813730705941463827804720313227444070339679278437587630889103099253154786487027958800841262787605543129969322507006085274826341004642363973270414022095696496971174839490504098352935113067995113866545423472180607503186381456947004605073314517248178648120226676727643435992124610176430864022550891416289513893962026379417119588644416409275940824892026526801258688937710098793850865709454924858317725404912067079090216259329729513128747558827868039424874814721471065789012320859909398798027179047873665169836163663254764116774816239068155720342641569210887181418800982544167607404238280647016957657875104799767491472440660190292276516726363436641265735578588315618894074209353147552515010986369172929750882925432497233709317820192829924673153498230371954745036993495631765021474688180436453053737148812687512657675789278852986017358718759029689405151020102360108173352412950205728138847809669920160170469664360118065991851219389265770862973484162524702753167813774978216350304066210927542784448153942640880536650535999897849304088048539433026691106316287294193403017764074569833145069767128104531190125302390643534999756410263982145846876964559691145103307837220956597566418846956744601497312198787998386088436849380101145969441891479985307409691206364734933941710665140980637522070489246665667014704358338576517246498752261000317319988569163787173660932968122852391473167095887586905707214359999970842550177738583799665143324944727705948867908144121832009965335320502629870855427272408329939246700481577229202795208145225247337169073115486396153357421523982715746562620074324274179928165881265271078485056134724740010257738859011647729450684601359502772707328147357111853345075856157653457138087405851253606443551321835494348304967127265537274434927465472973912685278968098097236400385796585072161748295303823413933139250202261785239462404951716188546963687041453852174437887338754026338188602213180227565541661034195589400176132642426064618930531525499823971095596595223392375251662233391020227541369551021070309002786502731740999151063834780586073215535226047449840562559519308383447820626691820411830910966160009867096813026729404621481157294803116525315452367863973091626316216602339836619271787762198741582680851974548795595162998253761190249235459125167676552167620009450179770075179939232623575745236525204858260406076436826079348939214401208441625953178228206714650790366260469335215646954725837452677155239938566839034207839358311076261049499046209965481264859241076604303669089225335235759944622850814910160928253096076867638835698430124467829984617775153003118545459284433973495992849772140493061608601077412092142269722185246936579357550299171186678284784803613243039170963376068642454701719578184180193516312224509155343008355802529744082682499058006515256874940215215185887902509569647494561987819241563962614699618278723755195243590184976604712324665684752792948806925949791904483147836908652142525894038463746972259065770170485823316457708280949780143498902400701203136535426463518986749093909473724631770297238203139996733105605585849576307084366033604139480880245986460618304855186011974329463805739204436920884961523155746840931777181015213972619608717284154139671559064682872032029152181882857004066564121847604732486871458735511634577518806016195483757657793728866916072647663770617242767775303078815557832678656985016036030135653415933924832066356095736286033160197278749738979999087614371772986549156780217785050073297048177067236524889871782904977761095909953516130142747567287366868664722559816863827690145832437630802988143502487649326590441212269021025427742404285726194555614311969671208380510877254693868886026611043983836750252739156485959872447129402144129271841517350301944610554473680320744737284422061050935212689697086150810489425565440538428019925027714244757855891765794458071203020680269695069061440481862474334489675670642945666627570471962066689293448378506602416532345764633296218888088275617899483381068446111123296934226241803190137594916993424688325462084204798213998997964377038036871786771504486034005980985012255590696310213172585025131292654370363119622664246575334667200295681141496450142935319848387707813044492103592169356513630990835299286226880639597637414115467342401236507124944881177445837563211805622270686335917476299413217640590199624119734573945830533775220162672388761315204712400108091591566016183219221357478343321512716439717078872739553319518000525896820836561818877043575229382083427476245483792482854239827700120959939394772005792053940560530300478774600332096592854546871825513954366148847579750761983192359938635059371140394741576671187136511194138092596663000761260258844919076577319338366123182155421365436575223350511285240881089595993852314405385775021695927994788850660565903986802981100985160121954126620021980290739035323616174252303243963825914594676354453750909548553212926387291618569837818466637941022028979036894544730388117751482310203110605950589400579059378788264904043702985763827986681476559690495662499742618834946984942040320281059958388950806508728565663367511738609597305497168195735375890977015713571377841447866577255871864190381117104411801830730672518448801909854766659714978139516718816362422740761934494319655189940238235456753542117892985344254219813377295134012800297666955789345468818935744520809919840596583669126992163321632090969738333351643672102860289901163921885130482799239011256557937001505280562883431924647167248980433008233856252179963766554218170825808798598236684211036658529545932102031616458863318780236395182038782612068186913395934952148237523982008665498173513169021091003180828908252752988662365333157996372142343057928166056335680793174095414301257743973229498481972400000287592373238466416794904971539711274734209654804641391713682377849220593242426993218204934425712914632561508044170000890976861790376418161402590658495606909128746309631971728042156780006824156084471858965435361621333448592067463246040198483989530675549972133213579647792948360107638116045196404178901761108243049131968663329285930342707024279990067194306859071261454837370776500103657630583776059914391143187345712491850795083825507825948664848648356022972077743450031610346302480806341192024369382132689199698713490908407497147065225008128633002310990864032370339675946138731820008048275686442876229291829399313107796429415473828723837222744834566404481924028563629046578064641400005200480690240655449395804930521773401883847566334495891400537124212549829753960411074057993988923726643198135579525685091669947760258929761098339569522938655689901859324871769018490760289451889638870688959531083896336173911174204066695706256513414555577727641234659507449638768837471325888379584218444370410464390591965623005949473348344065258662279581414159438337409622950329850881561764854405860229121685283600502359252376471191962060531422684614949966596506587441037335626263266204102936855850860085000075806834571578365174652503849790971043236554111805820527858039090409204136960518065354130258631877044064033612992782397528850332364235156571565680148293588348876080857337217979745973296962394004821964941639615119076007110530805024753199736891171790201658462572766144403508856398264048263257826711479831043044380952136606073098774614316728691585788247085327234124170045513543504868125327548246713975944555619055289488492909831566044855455252131986488403793413331849455140167422412192051280275296239609737512737057318686419819689354863089441928710756408643322133308181098666400036284365027800792253232941452675625832766234180337568990527534493570997493833707792954852648077413167726958738642874897038981177708077214448488813602427385146467784912606833753534419840061209400509418891212672614552964879312226679718855492936329466003684011846936935969777782441569360475830850347583171881688385926601479480152175797631094128984849999460238208545188939287679509352503222573952894901974704574622600268695541051574356667779593745575342127469430685820102751810425276679123886631088424564492868328723119892674673235857732676834814197175522511582424738531524177104859432626827676149546032426154957078823847912187517821095296760515787434399135091480934760717125541256706591915097173996508581168543318748915456865324347726930950558145457872645106613247018477808833520625803639010374766586115958178147663078004358767663108581772885691250777959457594255986649267942166318817911333845283120266442061135864734601565255597842525103618383507061748450745862725657350494076634574868661475950243545012805404166197576175589801620346565691264614785620525766915221885475524810331146866738444903414489317525024462804701892273719237190314353895805852980050964715916397645186817903907813129438640116449951302235552422492408101920617706342265257043894190374622421487176009413376972317957763576396453553491273246401187491410941572430783581739208956175626610738598932290764918188633010610117618865803792469320104735791661760749632161198951698822713052358151514798361820781276531821761688590962267477067266845450119729131610867031516777144761034571711939599122497431039668472646648207549728620192432049466889717849972442357221384271926796954482504631252985477725352149164452341074446445591658593034547798589110677468701813563472399513914064075555424262913771155731440751617288383705900016859568526489051274327168871100218700986868327912246348875119173742756013600414752786904637715828368708189774242602463604049525697960843136978012238958494127938668929733141003048692481414862865470668143710083128373864806517816414428056128769152651990234436951418610118904807326578890362710543123829312903251099867038396882872966046863545860758834905970812273258220590647999999384611045376887552961209995063148190686031153085069643830052218502447663992681313645835611199940760501427297058306906870359732699054459161585082469390534103871770068406805315658920452753002670789726542540359720616892568857490820596887658746179745392274356148905467494962503394307586070062997783262588088804890304277254665066854879820695164921327876878061717564499685139993010610580460834135307112951568404756356212606049269315095647029031847514511850276662627487011967782381530821584835598504690651151386990925841190467689368461520695283894711289527056993216646302992907635746086929218126304216196094811567832856720026834774510066485529943461829950545912434830164755087136587777797135790579257801205837343995283850317930456252210897000965626888410086155101041820928980641184037562755583932378723140339589290438502812078449020509731855352198841913834417388510539696237655212447440076767487903399856158293453656839574560513633289160647594104759120545393867890082603916536923245716205908158725310346502807023820247523757246066553363090559621549948730078542950040794541253467553759044542856128896121490994701149108965452101361084580712104325534093606259357145058265302744270185873201490224993834581157131080969877319469397411839980451477687539182758855514859163803750577625939404459856693933647396194274274387996566971042926217409042432783636197496374721122009609323107120159716140813252600541696178072333857579066129866334295196592759284923378123939717510577891702145252803834954573084111465353431468910494559835191417925527845453785927784319468230767358358610290007427026381192145002868659262189112925286514448055668062100889860698034123542512028998789387440572795625427526720765728438771528504730560279240766140164615538991057196501740313054526589493972704554104534171864615864379109465006589288279049850680882558725123086766085994229786356346114202140564281095387134207408613775601965800740030064101488854148168552950647645716720923454199307728882132500198617521196904387891395892664049558751474786274129695992448090123140063440009037865559313378445575071449811905901950047195850132062333452931126772277297445142304826896546424462296377330581744957406664068335674965347237274212696149514205645591289435034695798619262711017101685532354292168507582601700357139824522097631357906463016470922131910862302906510995645808877563215097860133378590336624479990206913192790672521908411293484813027555102696677266315215449157774194469219207549456917962643614042614730649821327549108446853682488309873276070905583726167006621266071654191364055527210869083240559744835072328797537459940018159073551906155556563686371846905845093589136447605433026395220169237886646481805393616859725556588607318740322951558770769662877640686715852354985269556211530195488019032958913755779855266946970224411910264976354294734062384675630297097731202513789880817472370792096088310822569127540452391401955291875876505235357708421462795978076615697245317700272762927649125820475924998484521915579956792827016249987455963140381337471615804293023500336540041947402937103540293278691898469116015649084843246741035588019161851224991412092277958189607771123841833713189662356386731189723229655707028141921403590688901294998455185908113231976372329762499381223182929338690367732924823679952189370225689138163261459942223748331097600048013515000571673558158038249465465845214661286582216073493143785358672275147704625729767834833195055510312756861654996988020247867641398579068869318824204094864466587726290765152546061472172688913731395613726110149049866241694439707734534045697254789003922105414830186801831703241219150835514455373080490128821641780469966192428525490612485804426106025933821571173388736334944608734384376195576080532131201976333397341729697483528855380287522427348721706603916334589077277011935520917851534479458462090307940178900010863819509987043337932551845754140939059995316136161327146361098917151494150692692631611049026849750425007606482503639772177777935491575990235656097780156525368733300625867313233074145855157089846891843111649898411815004526347908079201146291849984695872585645302765264408431761193292017811785347971101807939897144070711618393057765552509471714064035481948757363312935860299451036653816987147433941491912287001686006858160907617046212348768784920676098835605761915085432703239297710759048974990398647437978157038845146142648143735356182856865925867934797221699347136572136497261014147854644129876684846533933010350325656544036705360370426051640036350515028257039618887195442625827041116412272089710493806730718529882612966309446294840499715443591225669844117423319771356526023505440189150357325750525647791418603149598156231953362907542332446854057646009793184749254851564432744805939483214654878577745887343620741593720306898681374288351845815614311022720525478457354444947935537521702133123458919834254541220054238360607148821647104340255335193749045972438575119483825934807822319811181162894723043813110096603694617326014185624818829925879631510312207648271916394631225292443652157683099274288061276053857478973821681892242983024726242586280921702167599617438047857172831464713513300315765108565460709783272932095249281317902873833955054704000533923064188224372652601894834005633592924213496834491937245169861606589215966792149620318542446022173332659008936844684660123193453436228761346669078035377222779886772999356804400230157738376147084131775047124601580900105935734569091165938953500443357392979725967489335398984253214873649181803617447149692932923117297653485005044400237254151830248841972940407068380471035085504629022123419515127959972991179051253985856958694910306828298572137324416536069325357278066148550902915040868931822398171202255630320958083099581732160247199396043690842834317337237060630146711092595762866226996497534159743279169706259624196192033448008914395858775167112394693969901051302624451666001481267970074168328699071756123979242370435966668979707851496322834954594829466194569746291374869287604341293741264732629178719137245454476475316602522738045208584312815056065038485694377470458975044003187493743289453959492779655865098950640242162138398120160839289887803558379211303192012566910246722792599875726228941805985393124792761854075026958028514921066477978146651596783006975716818681739239433154180456783982672811299439082790933640383790761372335295406634700819564190125570222931027721042201613459650098692870081866809304180367159342477597556087354881652586601634273216117344956683705866007575843814485594801813917549234839986854761148419735592050498973433958121703844543937436722523410195719717655966665632152622393732995786088899609196031314697812890829165859650924191381123178694731329127764422132377308699987777788355777153202261605137012898160886219736960766579917517035520180325851165856160134986129257358455533430555150733180872928068005327347753478383857033652310887439112740142780965837833208559331680016091634016971654280073761696768018525696570074195405364872874464899509726158826602487069701978087877282333478068009073019768334423094351474663954689032030340003696337204238033854352501292854649822573640230459925909016866248649307633783834596768139894721798539797383617766538659708164196509581312406258106936024059989527989888322618837092802405007261965222728868485468364894253317448404998074663679374652046646157987617003168842714627445355028958571367575327917112217303144339853798379250532301070041010222117762680064657083373048632782562205504532246848068419091453755734593250074169644644817617375252119870000739166357592836191748756371097286646118491714225916385443502142557717159633315626121863231121380008727925252356126089040987357066646969454022932775740405885661133883181492515091840264761709024782327947274472972869798858277793280504722018337087568012638199924748554664412186079883602041027917644111624645246453064213529325807113521962056263119306137648569305382291127682398877822136019508740363834366831974078994049586100463392053766773533148939649432902249871430582738816630244064623682675310402999830108919121094196945219828677322946393459620006648927158584838498403461042334264834692760815584620928713507657064934832526284559976668240143515801324510671914069590846626218285947800551040753418893469148209488009789048915576775277938212081445316589576091189058285627295762166527266799809344175189411095705248933704453636979683001780128443764252557521094059396022057751584591847893880246695086264135356955435049174246617494083609342844776558383868262917942529251149257058676648650812685149811141568306073803852465844058617039738915427900303890976046329180772009072862147960423134684703271315084089331110912844568438224580576089912677858460872683683767115286959608474058954036113877612121226825238790758991148769337272831970213652763815516520000004513305284061024095435879462242370336622113228051965513167875566307138676975052156066290286082408348556700042798647594485787116373514294922672489159093301839125781344855719769439521088256063152747392995038614777191310820077860484706447770183739250961753826436337829807485583419748354222302109877295274197376669004357979984135817913466358650992283139657370588013926030411065165708735176295360167892696867633860197673978435818051189446498252861028486848495681652163091028529432557049366656874153496079790550869844774717484277698931554732761609831597809047228959374288568930171254829780739017686215956652306692306123490242338916894223051568934888643150205310679296677599175726309323471582335945625618963039987597296635535161701431437372412705533093579559786517995261703220034890641235669554264874212409567808261410219403775351879596416358107290563311912266868917483562865031464375011703452482826197877992288228631548649115403050562568256902804793731938933302623819555521046951830568776610104250996595621911929655122239407030588580383973262714471085155690875336547520335332146997681176653076981829393676147759434385881925785595072590130389578911250087004778905589377807214451134223724569952541659640817087780157992874820330324093748653783164787962846769962230788780559262864152693607063971487137868570453824568332639169310284352154850203929612005699805284985984800646923540082312811566917843848969178199455211791977596540594148177533514727664347562723827622726433016743034461313662884706478318233827715835083521314374942107402672493740158107076771558730249350054269701565210370872042639056660659529661167180151932166059564260073579069756052836971442004656874831156463261399594146701752921337009134473873114230085865257821193487896226470592387122244453724672329242623431970917307871152507645092847945472474865228018829449030950697135045141886722985890213544572781776123890493288161179692348602841075926981250946004630155112332998128912357240173178071696123686304214156568701201101654077672408264974245768424163782075712445472114133352250411620888770885027450465740125423360625326773544412584212853220172462656606337188734181756269951329655401728313073155863074018835038369601493046249961745002331634137018981241359810315708318259244935196720233138150165216614587145836183309745030931357480286328747865564190091066196512243996819432153750593181349630506167806842585297012592754384577034890071789174267803359684007704495377785749999288848685341356032995497625663554103223744461707077823105908365386183160364622014613296018066336859162250389836472671540183024036649395555270094383880677807742229648907898470927052792942335157789458643099913377927760316454983009967786669620557992783253449482433176869672988426466776342223194372837921623683452942759775063915744602946707648702707838635593483060728511780968486968349796894255828518532009227387070969786017414425109521499258928699022680020124164580771080304363650756637680433439931816391456299616923267485149302094715704416909585139722946709933028976241869904264610482802900189447458594158754403101805802420557909859297273433696727539464741894722614272582960459258523901790507886089512872780108724586957802511617767505401815448496089503048801019907966728406494237991272845058343146165040590609870930164486002495152158565614787474149877317085466169429056562516239967994665165621218680420090348491724967696817944094728734428879371385667047387031465711353981209212941738140985081323798600776383237129280590525400907551213201143568809120397907855816380216448732010778999827410080299334389430732938397183530709769139666732231292373783980248618249789356634993970289014350086201221480202167549701220429305880830645249724045927100586141128599082481644285071260975935502859680145577769278892951657459399606686171144765656913185762688798134909529434373620700581319968066802103515306997722555011509031448613167912109921453501014882019737351335325470126407319875459301663874959195112828987198375576610060368795526752175541733624800012233301972426199160619524579470934953108328196663842878160862865414830181896881673430637395418749050134779763937808835229646024085070282669386162577537759622220993488170212942031024550098909908466475501475821147556480558849048727766436564485638930569254086179779156962068084801704724244004258167994748709005891044976749705161943208955849929678952316538819048896680213077821321336466540839478720859639523482798285121194261052454180757696285643649993136436585586710432571301542802236113703064776137956746685746969750847925724142304908691930269809484927479569342924587313474028761926285358960695209452983215925066812580601124500475507092566613547269104742146743565729290176407699570415014585241413625763197705505543416313235895796045405567985213893173426909067697757729326943267056003592567495139811418091129732573150396815415769131094115129327007001800124717609452211972757892662002812278462799499865377565790324605676841307580877311962192722675301939118720137187017766832254877046482962929643679941605194047180521151349114221264635020607689037680310871727398750673898603058432321905969107162493731368887573287601569805387013701291724399435553742128277278121421169269973183131522530558149321294610177926407371422316011324097738745734934617811881883165447886778670406476144257017418374416753042299591868617761689352664202479261123377245740603520181880272781240925964085765114554367469250622476308473321229181669044406945410586158510930189468304353427472376110978088485031201133229727384394793047438257168764222088331094033884423618601460357318591475991132716395948077171711514029630497901551318165750089527848171195378275216938542134767487852254525589606023149152135148142736661239788962694482542722030311242023680237312814110705087423592399131987593739993678790316770948358848045410568395846449564567182653614898058446543398336927960346394046908189883816554368000940212288069702145373250104017584205982455193132154181165376013212380094135088842297830256425717208296966788588036909600326952634736868981778574917264146199027087253498317019193579362650097764613138560881547888993661230196745563751948169458938165580930101669145504684094319524240222195547864287072319958068485962401846810867363835642166760962820919857174944303495600772072292389477400642949621707803874687758024681978360059469093537928129131507291440643889805121415904220450740530804223885546723041659365807934499948097633222612349584094116977567581093221048295565013936130399251256805690888781672274577510847043030791415715998130846831611097136279430465417766697852795570392608083395849482029247542073124628482140531564678450526807086872843302939167058750295467049171925999462838142292648199987083632848797572604103100120414309087211539400506370450899172900201810832275362145365835262260862929565990538200879441286270201490282911059682115126970284787808060851823227582193444286613285736394297189155732393142984802578677623624121461299924127547823264275691047017426275441967716470630439770096044554809018529930337427496864781027023148200988134412920792511220486579542321329501987112483320799988159607888748575085679888139325618272256799343522617090645216934392936665408916476740950672234781695887780120150007864161555577052418038860521286272672722524671613879087155181229777974943776271940265166627534624767283628975414028184175231389844585032941643765207442302315025158940804913127346857629516921930611965137727367937997404033849064901603879815319239590050511909258589017639022291520168087647739477381076594236381857643617358047996841925048062204479444287833877402931360404319833696488336336557254784292466938498814599079962350782169740150949165747271012297893924745335333190605538347271199912199729085492006914809184623726450153839061560789321858016026426355785811359055208507389741680063472274306100018513301092170356380632813896740998067816545106404428320330467583346318094673709077053577849695559250603852328862507696191190331382496260644486179288610020821844675140887138051371535892249963422026522082136673350878852236735565337032029255411462105757965435927403910502761820525075635934380685353734856693811335662129287988125837770031293786795677247873279334071910893085822202340869246310109953484002363258493473865893851816389695640328592976408304949343853366973233183704962627045947493889743100973963855878181726563872486891060069020447101689295662537766980686052232804988900656933393626932681301177575075916013647073118188644339171071807029787171213797364711810467692973696237712072481877482166877923920090936458304785886096505023401183596121363394213664289865624098829917384856223210236774810710024879923993480126846079294175100982916236697758114206880534400248397226296351452353695467501534154529665703285019384910273586672422419365149422473091479481170697196399002718508082039858052081328025642644526951203642799671317010872678509990687109629708096455405926195106443194668551319080625562854001738090490705739977804490172439827573462321854850617599837957550086889632265287862899961034392539033477222847087209589042020848182071079667547500266056097595096625842393248531363346631757077185697044205291362803387269361920208205647656680918316268701158903066246770374831647485433081123974719634186496429940645156611684093367193130073752676580762803013370076268100107954617688000051341726940491372893404067884685853998059833993285337430791184724270313575017249179744815373861973917842188767510231090950891846983263897211161606085211226897380036232803628302467372806956586905245012583146521684482160547138489161560596573093480725840192234319716465980759180364358799945476416539855861736301265759221886510042599861435100633884194223609810506099955522805090666271262770784323295257569616106361473775349507855345263775634242511743360536959615099226561540815099333767770331834709966054375145827482593429348473155858138182707629734095564421110235285342871929881046258856463608458927542459180781649185810322112799167398061364074365332210456140094567646879527959636093863976849402600385571001456075167375260295725813752335730049506090894966627746236978272668987657702569779969074220972095882764061199415786796581746977274494552645726421187262955876755493464147035842934820154867037234385354600772007617004320200497835715798545412990993400987167982184102281622074248218526336919897645430865697860904816286663708929934784727488170310705486946237699744788309497711528505601072821808876250301976390406206388685335754499964912073288828527172783790368236481044110658247634824297569531319686083947228456648290267680707151661492372109512886257155137020980894272178909921413628578320629884329468566160761385145868962593921863137566289298777090993004470196256090203112802220173330708386526618613551230681896507150009210844035271413235172080719525543571145787041923753184972063630578450676138963789566766887070108779544463085459656586902765639564336797438336750228815766767693817646018323027524448087563994871838754827011868233302633934400625243625819243058752144084687451432793301798418235851217292918745551158357834889705858026963375712147297622033942928754051766002785083053533653235825180583092307929123255877545442753598866808855341721072421559921129083741181263884190285225237754137699945444679744585058716515388064372291215641755967971603400338320602956491986581988126957538777895124734790446599311890830522418845875989546567678429419033450251671377459433418318797832131810089757266875505357879476692104923573944961593609037793936799799280171774828258007796557737778952963700105248289125416243389788157368755328230962729659029348550461428280616135091271032304959655755712669756653556839568136761015857011021876837898948302696892859625630209759432996466016432925905708418918782546237934913327531387787910441352452552978750175656371572083983991996019764700250346989535383545250654626800626499235088516664913872610577529015480598253889904198294249932500237214311820454025744657369692943128294222266562786778538182022429499848307394750819080512098816350568301417772107104984562934119250072968864024046083299363518213584782062153435184175122753788993020690284513286760663261079616131660166138415371453911758173265229414664098455919590721642754478627879486722617599124555802194028507833700719059689481633268243860134348673906415160566248536861620342078858891611066975283009458648127907625894874291002935622332531742010242236014714836557144939383007901579097684472461338416962345627067756713495284267521730048176512905655513001951462115283143667653960847794124429471690772361235873539657334638234380167995009766315025414477676336704302970182109402869417444304412235319551196536606817396007192602734091771943699603564437997255451441159725974454184535057991280691261264996851141484796197010570093971599566470105705746916221057822367895420802856053163446821194197672013410109773437696168789037980272132251121024294402730874771833677159562603452222648989806689532269403745527788359149464278857481681527783266458831320098927457873720667123216856163040925110814037861592908773994828106965519295347417508083743395774225183789300041839201667431492562528102047571013171969195621573592261225080525196241161938770231230458120862241975912592419542432197566783187628270218562655830986049314992033123645876376218627667968444637913153507106154649692202670468067484983651697865150757842462820890356245001857608380323250900407551742628040683535615607299049271909214000102838414151020361293133240205739648937268505849753797516591861579606257221575840978142321644272921157829410932189300427661586492324341772373481666873067935869093101801360715214850175438235630290787360169329084780671594866586816697634388560505290807710090344292222213113031642736728037227046390284332360356696787101957483598471326336948466693813618551580032756645855822549727487738381665947304037184303212318432505924612618145786294950028567563955618853592290958304999671981204643491067438553496349232864153784043764357408942570977096436008963406760555372895879387744255534541415302034812504184666042495660129119603082974257747822964454632421049754163020774517136084531464191773663059485384752169829188340919144808062506939550370530497793456952095282262056011025305002645606656922728611056258470017789441105696820984504130988874991203612925500558468101613289280924621996115556156809692539401160123753267562510616151672309868856205273242044053160908658225428374636075913791900115971428481895640281897413754837062551284429725182028714823843484812803342708235829318088592896771438062686106001051649625282082736494372747774180536148054673732216416618751260958417181212491205904719345521496592130874033919918515028601823210951156783978035442067098466034721819642481842945339985061015224225175040454051586154847450007719867604541065363056317248568180555172257316490719374575418610325327525667688706827113045156638363002736993768556907924399680441400249464203016456333604840712652141861680238748743263861477094805137995124107082062507701787390949125386961536877001261851088254150738365408840503368263624201708924920273085855840436648466150463453401726860294454804110677758489943547140816503819528097457264790375907787925085723725508712797314226390821778734947017169905405605699226015674810699586425507691252749455938032860651445787171666688181351984253517191322837220800125125364761111523374528505343771553709584710654923691889699875634550795672774213619474906725869226977936330143854416559056810561636102069279429047268401159591778551522714882851728169416047595124630582895757784358931681965586458864622418905381286485723790871555539913061709349292950961055337411999148045273249192711420925625178798659416838112155731024867454479992461818414119699020327200488451052521352642051242377224248537704531414949419890091317574261965238736034980135673325049422860926301452831708501924030213646995724707034580481381769677840426971946092413279534988242897631590932817264444028381949109119241825343352893185584743610288443616451358561486902777195646931824405473675408719396252963084925825604498464805000469705273034724276379814844606777371943746230789969560495765589602658089757424700473389739746386314802710640530070164790266302895461282171457722638494816556865273394069328096731726995953306646909625434390517323060243548941628613349895968000720859906611061178174687455954764055070255060596583599302912098156342444801115078664856455452832516287145999219727911028783452893417781993476211500420484975767715123066751672760879950480154645494004498943111893427189199839903450690176030827662711311360566800291486361279022868143668869312091949433207559390399253722279936596957901157356835476206286643113112098296099528748481105231957466907266532056545593795594925293376612440467646589315895918663927973774503331075870990737916061428366097949562331361644790434194685399732676984173050879171440979181002823889594335376172279687135217396616087924753122686813702286319462718364150347915052353773943766688738159624474436994510857880169915556110525798333981553044704246896338380539178366985449276776969289379817705110935987971343278804066028866392028073935097417625312602836251966223256678177039903099729629349773834223370714562259424438488498880079938440210465349085816104405696936048379555340693853207971438616392955864796710765085258979140461799559222049290439809205751224858536676108615467721409093594640391975611407433713141494825079888134283881646067791056398668807162721710773339202679333711572614716419230650946914246202391353007243012897713552657128430611550596760880182161141733979138290350119053984204811558492962366395954890346465723166108064199709228466150937117724908845729490114199521370697720806870788134545286587929573948422968378916808196909254837862039450866120956506927754278474314041981843826740612923033420334552569242622905670649579993652281111800036448484576554062314938232392503947698588990189452253661964924450805153383400970619652136531131069865285340039568469796355648923650479727717392546803489994964382990829516058065070296189367826150016039649246941388229263761802524108463957348329069724297158799986536336795518099253769612700995109801412193282811674256630259567685743830538325397739263317726886081244240167797124222215222013368956072084628983702654703376267217497071487364106958442087763706287561019787439963008704997243815414906969016307048209628028030201668359260198950705015993474276990720656647420933966527383411366559169040808471009218034445258560004974416299649368173640716172909956646342736293066050351353314245778306617976308307859100267044020181768363126686151354176988877755213866658702911389881868014008566761215049078900265676450717199828086689496377906329692927877731099426166472327099133256439953222883496723720049861314980740068457430407132368416048432439144728927990210984599221546956527888455675686426945818689722208701293899785972612929305184458631272697463834335065915096869546603786424211145335079711456072459984391681066832310309646292758790794201316731430279000279128475766940076884257209336935329517745195569662802559594941907328767493120456470124512377575779493007671315013265384055140204151213643482201423868129000293559255574494896914762029936624364663383862096386581922224470721437445963724288423654464392619003038642849074728970742464982603747403084937416203865105306449976808568201310025294794491998535012682351842616232525167743154782981348624254658793388487791429450031556142086845060270005902090236597873956539155999156580475972810167819074041715389104131969449147175850093882263610029633282476861897716703377547856196690351227044024926208446930985242977919397606354465127598440251749248979676614163055763785988531032065605676334428215533132929817578236475560524834472975896412912834002131410071186836084421051727308838501959300253863837813455851363583231879992950579840964426578120007652894762543436287485209499110844741603297236973860345223270359986004417152656083318370048436585070887944978498434207676217074677522750494539972177196656099683680281335248127683341899907550100244949859268964530867357311157085729831905143188001346863299852008713939803479305104268370949118434631368057510072518152873061992645612479265653433876862582704520346160235213919963362352393895753060924834341078729078285044286550102752898531685045556809407835439943790670645957312146426939940583950586321769968598657290017902858043921738177973992288397445959454423208602848396522126562351801621560867311636469042691423993574982940542372714479306197242564417316521789865896461923061823031336829387076685951765566247437426061062966050332675847142853803735103299605922808724910124218955490536864649753954699270995236110440855078246486778091008149653139810308482178650843594390636589914427808015053478380279961949137347533330314365087428904374960645199928377844765314419308783164913216652672642437294826588904733078662235455089634715860711494210660878023861582435533694000183150003182410161416131773300510030038523060848950934543624393672283375793654993655514943504779632423080164132976616765737184994212661549438770038939263858738126953631718652369723870891278881891750337196915144412973383400705938757215205047340708543218918967897906715140668203261434060581553983594840025801254356965571849994949838298470376347408303911693518003411676960646364875169570306918717702864751207519664311603332722149085679141321657363930564367620955096677483769560097654351359485877681744808639239139790456013071698843173490312485474378514397362146847511789869563652961631967387844135496257905050068959740312359234288396826865808333977140214653097169078715443133870624726137190412160795137762186266465601564780781569281071607085251178928064356327676211922470023321256478615974215167255757715937269211035150173905106566032206391351628127541124869443294782938413878452170662283976898032442234704347688796423664130567066748946562058571077959453152072651717672493043195111700849759709899802212637420413093150760040393012567556413177492868202546187370873298833572130575883173652813130388271738059463384959529701000662014998143144083983716967733404387401806875973341178045048760617002957858412860420908696223870016058566552469482627427158869234595396725660716740426469938653874477039291651785994722654376272259948751969203459135240493181711741232998061076458028649774327993823130361084224477268960447709274263638876978800421720659420948726896100602054440718120728276440308086282978340833311674640994802083546622400838366677017079951605456136344719292767719459995952475723575383352417001970657304358123603124947906864259913831423258050022438577879540127159268928324470168899645257464000990233529807483279819744226822559880853075375945556941352950503728658289362518165018586056080541544270036034570609612861489722157007538034126362644462464404323880436262390940068386979966656561550004435973763831658875276549367326401523664207141290969185102972895814749442255368068834668338273083129982059402172088348619597357814505985086056104202376272411490745868355703197973737615302841934718496929444379448833881070609871700882560756517887453637451047102018950683816495204103217652980625957391288034467685657748750780507617798774521002859028974041990112494387884634081112690150180971061237795556052259899755713478137792537336771649861257216288921056235977441493066435565522345418913476153370148760642749000720866483728923587618546474518463154770892379473589566991097339200877764600515602484281683673050118083820899249352213181889524099001725362772640367138036674818819544249471343809479385599658896770582867956863892634197333918763550628526163649640550372223940632171806896568411477242265334607212860999823775557299183935064322219791033519700888113757667063747179116315744382229734834003243880326496568580795175331491786892941170500452482250394218352149975312186257375932980045745119582656789494216823695095997296566952566225841137138503411484065637425437010407623277163976533838151839548322748570488403473901278152630923216807363850775062559813596592420454907428702945642983009278639267061134125174980292228037368612635268616817973870040834689747436486290578536533319153644731060525489444472760011859552078951526040234199589805457330603103374878155734470558946423177153900154022031204874475174966453439708955118972504437648619755449781865392465450269498196990493274425776370433727491081762064479029587023985286923304166857970466086863693721531456299143410783088594811990909008018481958545879729210428165798451208852177112163073125564215455665242225678474338805779101418198163716606754502057240631862182102644872177808542785371461653667417850309847315668943582701411095857231276221808536654266556410091044040804115823668287925250834628109932002996370890480175573558234036365738475816194676892082855974495006330914197267816280471736517327212839356582774386830310977445159735263662370917409474442909692132578054376282134074921498836674469617161041331049439969507596479946734983518930458948435295106884183234590018462083805456090898773462722127507792647834441675858651951907871533698681044111323063755156755679296432791170859286240913909727591876292374644139497570199067443155891091404114054768125296834935568216454955394429139059423691334124690878439406100812893238234405807191966723410819274857401907624885998221658485027695919159655208551856401358605057090570627749239581007714320837118421626017993422592118027541322909204645711334226159863040188107044932094609791855869019342484145324383039810312135180993665650022330332539632846439455659311190775775200291907325636401851584766361134320355737593084803343757333206614224588623953945743255943150942268563488256876465820614504303853297123686168511047687652339130242885500644561755261620868065082660224506909344132973760980242013846959529356640622635105078612569450460839032587925799488189500021837253131014564457604915438435329810659947505702910696044932681178697085694496134225646453583430761164722203786222562266205071912190169100103686901708458096656326674158791004389412995102921939665795327043248926213973659144419114779625981813935406914961524502192276964448324056108844970465418091340255100679041696619457047377846028360469370690717253479604621046242116976905683876175069363540239157843158146065416567925173371667860213631479056458576354762501146869489377572083177308703012693270455003671824125973547080634091538346225051434695734297184519180198500271195202561196695373184757990924874284478544589189017630046617652701447867009418380720384027263962356825137099836221174672191813301230494255853443321373024311771759061779982725387591897256453738642635154017197112785884340351644016906147510829391887366918845228997520850188670470126770345046573534952807536624819223935586298017017314776765015684232985123475596016063019516968279998951940592358676079444899482359881373177301431711208823914013707971530748325706104486829058901509080730684931082269982730109614171332903171499370308800545990372597912905533612640847634955740530498329486867529433890263052323586569881195152698280130313327218998456176654473742283196442164534862083488310423908063603841917308978259207491461613197440709469438230686182674807280623181518382495333674404316411630393207476131605952993011667926344573460546532734228433882764902940464453472261691930164727104003155150331011273999441771108456211736905855758256688060263786558670841789732056752238367737821733051903658633001880955852881929144283761495457031627218159570246424645384215345668499289972554674230570362502695120371529145099983643412267877233597581644099899792725987556113970219239278283042976284743890237367494944012651248230877865167265339076675464100348440047743256159203313636622603824281109611347905683694037189943373683485091371286041873170339953354282352647588849163520383693974888572100539205739774645159048931588298254188297189555382361400070988454076635627389655743850183487592155636434226513782311953485635332993242152406797369314374269259957994184150452297477732083059529512078011451454201339637219973060485553614039604629891825361232883096984500906958029315068608986647656261302489541826119708357160650888469297044943801113749022441650651080704282238342152480999371468376728018786951188866476887146103282533208614068457166089014171431094710147664937630088699520879101624016605055682485005512599768443380621692730473415947258120382136528582634504282325456837682285868747929791449251893188573436178940655848906693920040172745686059325190418153777260883862795391532620739557631560053824688476677497616157320621462791255984328906183326102516542954292494809602655340076035400754819868413342018101057143495297879579196363685589572663458059242357452230303530684423784107705324734802968751054882332755298862480975559941906970583761240206364803125494129524825069243751590780605380415760628423926325671097088317595099101381215429445680136107092205601407529442979703971197947786583767296603078488021028083046900004279082334793654381407578834980192247749622804444790371218818969978192115864900185604895350068340399993145560568333813663634707169149119586446417447818984249060551257789043984578282481607010685731436274713147966632221241674513844799461597493486612790691647971766409714956856419644999092754280727950837794201071744328182079722826942300582561350645781055162767584482986381922413145472934783631262021514204277823137338058190096093566043801338262510690705167464193095679344078402607949119011400217987937810269603386790761067216005376146793951031494185534523859302546867770452445045150686173579270924846982737815196195238674532308958004888283722608502419128258589490585429408212610398861699402277477394658290144314298847741445730923601753071350355171414987609905922694266682066240282885628985314071416378170473624652033796114461926702179432816110574500202574355346972296127857318538858375509187064423482608870126795759052030125823693077098967399531594453559735712695922836128806626198174129676416975458716860421388570774325878884041026087754649652074458348360163777505939761455916249238514335301397624095835485228747186901162599001698680079054270002131675400938249302726753058560842496783419733935278566276930617496261845795343602006343716040072965601876359391791009651233059442522989223123444705430628693289932337890828427691831727168283637527595649433895352404019050722385214174159099151649408130743100863737279516040102427516924748645325989246135533440202280919664914189376155708416141949305159671310306094180784004992786115959669393730798376123491311383724059660162160812578800047299429600106989121501584366577206115923527237219779014406440721617899065277138062847342606320893768480018546437771085275193739002014074510141644451360355805194578820383465860667629069869846649500295166725027914849616368323579281914517960194033908452085983069480958223219909178005720422898642611114735522019757891568137157546903476402177985770532512032582038875063265197743539109615260831875784336949121917275953016577983459250094404262028329432610047591474256603518539385842725011785686630381092372019442895502019873916800373123233981407639543323613942511307597854422840640947124168748286442567054655255454585911155068937701382499412363739758747452619830740772767029027271122473005653566714288364996298865731064876572973089793972526360731740945772680541070264684813894608250607109008735844395104906838169733674044688466836096177666839069392587683293022545220833525487897748540776045016432617440637504807769473254254829899059099045981451316910558437992261742046488931493240921011435235461835866436297073386976227499214855139562602979607039664696519598136253811755232166501666767269448130464088157837608880130913868968009654438162738421696244958202129104898012817689840704129861041431386641640446581697334184890390006092071240267203095439149859132367682898670783261846076394077266245146256087099462359071188935020888339448418142108752919414572406336213179256359686828798020264053257909798500295679325490371755493521059898295391184796255255389133564852183882901543842112050174540722025995244842134513628958372537818175903879472507682976300606963217875455830687032753677410804421701427566623152211401082623967380884007976087411235297489959803115196023808861458382931101288583918547674349835190246001242157198678966800821127925780260927691238189535130160786913662844913343128135338945986836192072748204698941576855317550919802351500312919943648180137757378910795031992038021840730744084022214661009193068511710773823001600714600231439996780144384820475533090392514771910513025275860120731543189829025391832605937505167538543332782239801141571365526136485579660368699149526063797483367846266936328452279400815893511923640261749527114267264750013788875000503502442636168029422469867340391773073736108260375551451417009548989052217195610302237723470591251116217805754063842028982788349969380446401010490453259160877534112525758638957910645640460999416191343429202317957971355869771448087615985864375222070173902506529845443323975877841303589542080013864809769081328468393275720905015807303237890035791580186738635097474965415949639559020342174705667094610422924033250008853344306492915014571570676174194416135498963967106095765016220309929303419212102283707627622615344989897909427580417353126343647002299080807844115392655230554913309770927503957035854372379115018106433284464796869022740496867521622674431638144192372226702529682324189215161388770779689762080429018536533776013824734694844487160734619044373934053796819851545998705461687753876929611534020051861846577869688714747363454397761696355848874544766407526651314380719309290797492281482360545631414617641334951006833854552263353732516826666333393549533771176048061186636568102697725304339524523767499582765893623779151459279734788644627617884267017646837753124953212230739428998752924027885779688378438717146463698339937366008132406512181444622995384698877529704265439358164819039655523150178581628425899818244245151649565174840303816381694245876876149215890458594402323920371856997342312600191558637789912445756206298799192371216292194861785047068038298986952357525523457541957930282832619335862292258197725100875902601179764059552477516652430878669565866456049759292721816307357268958819757158590180926338375737701161044449609147718971866897762093011464723004583736210773817759831233545893594961853387894169270119023544353700934026223975380512123742763346780872797251328438376363527458756442327052747486350924394695778576615650182178910216665285851585861028577615952650964672132511056555944529181866129276506950348551995225960133501622375660109587750030773244863531950094069060216596906576521647993194645102157584699254973547092776506290211968368020819690910771502758072252390596357062312693955981217089978955653373360272714204707328742804192574548859715233438079676382481659436777507872751485914130889547701793402485998805814563696292989528969033395710951853875180546071350678377006810280814904410068616018094795207020014365680031526620341217695141975706774052940226388034459109638464867915881130476191494802498543685476813077438879580395547638626636018136265133549015098415353137157515483144311258913075034915978649686704917259437110754308182973051181561984113782176519131114860873122205709120879047328043149316944177898928639238183932308632345782815525186567815808535891782409836819737321084709356641822200535949018392610927283351987765453334575291677785641253084328323638661929225374543151078439824657702952596837277514773217760866504195131187820600058337701239509493188501060924404887352203595473861356545115378825358793208133745555558816383286329554184019872017836482809479157496327485703558277276533918518786271764584099005578646317806704973083348962697643271809100394633219189166405195585351626675891139769644488665861939239433229369568127155458560700650303342306304281871871758075566789090959365396023097384899408316011748038418392597638033129455310570935884417501022797985569916313385248921193072134800802164037303070986084699998213018929047334231193574378552707155896871193279015095635133443992317366783594805273456028666212160578975994885828505855278932734624631852921856194805466654966476892574024539345511964743387036156974984710909650578458913360396337268363736618141176865032170807916973747444395505097556605328515996813917139494789877449201323767617978056178545338008824115915816971915947084554894371859312463945184067302105590280001456061795013249160851080102064625411879873423840140765118776824496017467089211950641013940358630773014264462322300859526671034856390167229178299210022697057502107628680593149641802243772894998746618930516933816110582791081677130246087838376912019213739356766598945618846038602870275805302989634380153574099506104703233627995448691058222875539936270286031778819442719639934006980944494896999199805383765704705665673563264835161233337974334147526811886481497431116731414393302242630545615414996332592861964703106490258519248437674996229173032841232980522579966304760771856562367608543224548029532827404735778396480030764233503518855989268438881087330124922764166486427319643732652520571190136945608810931892759473387437975551574120971939930528663472410576470834071260362865498992718563739182005609026603133670875012009075767724910817931914532392229982274078232274065678496709604391631231687371668859098073348892295784927223506150494912017187655162265939796717846715313567923390227096217982344776394034678790741973489030400214677342386669976585382726887416380382815289092732462713769370481769150614340505285287086206916724703918621072638623360940135210767743853056995184587273464839653836309489607407550701293214008720977181699208649015165659749621306078859140012070991541775837476124311525592102105197086030282974680140250646511971026755729009761945783241364968306225445906672193619491179865587076745430739528997624265052216367142295148135379150069348568577167095519782835353272615936500574259399741798270012414274187181598207801319866190327009234384557103794443953473132208231224184134833916693314562415844150172820221906177603022958769055884594658008903796296916050470855577141740886611378160179763154112389639516312971434257923822196254887971606038468957009305978589205578725206273450095178919481323997830675338910363385358699202932679767836053907882668778264331502581321467875389597089902506423383278096151776871984126723151658211829967529971027906529781107215522939479151361341682811065303102292679803053974449124437130373230997668554545456354061882458360602892860689817858807198421558569416273687107098170839241681458574342582435126459936100769320127898532953646042309002455471049652277811644765886176283725927412676181605031976121537260078896065639563149876017209053420246948056447693445369085295434839035664610293005462382448295498040112382689822897901693568223370783517714400856583638302835910450934792654852658314815847266150482134415691114901098534704472059091705302568771844376955477584487782370706971173331914680586292641375533496802791137752115418190028156573702266836133098210184599112440758860072896442094826863036349689241797472237921187567720292852048993588507978216560511900084189704262820911840900944040231023051205935246168660847207037113301174112572294830214904084807786199277342856125150951661467756484078761131270114858791811373716297448044811216785652634637958833746561745472343118585099438756832369676401588695462813218967368380393346814582808585734589241195668243017824607606180900887876548762175023136763608428085620245890966664566580456263047721886162023893033519214472094869113654452033518008955038371988555492817721111628766518247334969905769081145160093115410132533414553481475487844024765491562139162973516573181433871241125952423689528987583051297042527469734529194288599198225561959770158402930511014692591538348839311062801377240302402066942355520139504284689636594921779446500718620658944201725509214701301870257104549446191215585732847393849887715534129688788108308032194760965280113800572537310014523556785402631432343937846954386096602702964855852188253661802850430197130729864623437578215932744359235115897497089919905544053284312370625291132617835466277423100933077149531879003191039698235083342912543207490004628747013178421858380516780232133851850051173605264719708629105432443980417448963222820339302130009374285533512868289622470829274553956928471916580552711929241332963249113671817568893043936208555147109532393295992010146406143599777691423268248275521291119298993055280386528422422417832505278913231109436830382158557229510643849895019506083815291706425038302641348062732397158974969668284344286798517136740113365799826775373646993714754990493257590336958034970460991117439327476189580601802100024816004896575999037102995638891110998602279722858101333648655131526591623113172161306740824581775284060099150311194945861146428832739623909518876513336825578452195380256042581195806775992419346325411418814097127075716088903323515378289095610354971756618741062393441812925311872694160294451600675647766106318930790006654023345883948769011975901982257509889790265241481495260138327535830827513165208445208652305825121396607662166795128992059348322557102293303021652927120592964527622120623871945654813324013365976697314608063348736236627237323362726163235399733755724281491182892494836642869571993685511876071896185126013686208810433717183181811277000127652939746674179758760228818032134018084197166248935917836436251357389651466165618149256229693266690228965872556062229662094732537237471159889941502168610424554591843448342577838661457176736039513901605363400027862488269782824738972705396653421276387820394324812862537260185896840613039672504972203521628091542984159814872575929953911866127243994956477557155580474767310939309753385078729450976422217756931035699894240329145361239041625052302742919403594589630296954602345049819626389555779284609964580564771433229608595384615205509943307189647881257009453561783382321073333823535672741426690530085995371113090992777334912443284756033051807690456586490591751295997551557920625613700965768134889381064046659169015803957871725301896785134981494208621603787900875393935858007225902617328237840608154532479092634879131578247463173974094861996560110265099791867300667042337980354334134291879226508162764487342821482185407654948434834107548662640771551200298829888877091239626969094647739443595478859130054690732534284443285842503641160480686858280080480485943305489275939610157762906106227933596512063949460542025381490814339960033888850257311310228559143919124265522149001361311316362738577097879873217821574202291610381996358466355855673429147208460017153919608201207800034040308931796421338360993745831718352011414751926981307789422341648275903740858581522563037773855817111650110430820934425267550827411384484803330552452869800189603455065696550510384462510476035092236226203716906835888047429846208830178892213827359196801019843404340985454199919556464574952151203335775589262990405352697773163367292359925067674560385744674740390014937963902890963141523522275385993515946262947999491873100153309696792305920116756362484373948546011901444190150650791330097823431382480437384500047856737553640391038749755966339193329922725211687983631257618198421018520662379033860481009909713065709296988546417460615723756855465372208917626765978496893358481818304038307222385849482833606382240941807184469744618210787231643093838318790808940872690375904723899981454921304982448815638054514003630267397480745023819278629226650056396701743431190598848549634310021532313029967394687741419604571037048304506476849735078253174033919647983864790703744902209791022327681528789255292394121862362141778042194871962530186195822621134718215330247241942805727650289540122902174542140620746834217575448690339740577390557066517439111015914970795407321512911156442022775300153465811524617573859387928745102068986736202868091886762781610047500172629130829628730260393425261919809359030014168328927939914155351936377903949393805119313352284838986042430252651032760238468066874924282515993564494325247888481600287248568696224309574750024210058175167776672588864713137663977893517451339947644038406338392568832631278682562362419895392437041622191355083588104057656837035803527294100660006187365724922787720148760676861871803358925342890733959145859221530046736719528709077826584793954810903057589767455885072791069213350968183785803386445740952277573098437184871068102011573985890264643418462875620541545649001663127780621711570878328150253630151882775250605285300302213591063910270544358847029324915167946120798189580224970504611764544046592348767357146821418035539344046738032840985366845108612521374786365469993352976500844772223152106742350600595558013461776810640930287838396354820889569441004190284364174107489026753653372116479067736920920949311789707100782193493883496197837475147801400015760763807340648594383594017552812528751761640554028365878855916063247331592979544221245122258917125258583498626236256781442272612691487858520894244279144732111128208921466467300740497201019774868123390857454847803327024436550370587723528325884712991219043047892996820462151413039245577844622427190424778596187606446479940873907049743425061457208002510085872743103333963378991196789260282789415139484959720212294477678364503497875369542643361199465171858795326580477687718248343678840789231787870831244523975729064155680136214251224305002660473345617887448876300616114287889212331951229233246780523388358566769285086293031565302338622329089678517248030260321183035476008407246315981461208463687387120488323498075252151275788783365087049780651431018327255444975859156371985691253183703757320785271790880953583533871091073876248270322675740621359381630426253359310533856029768080124057126753482579182869245511180886659170385121068146148084696999094016220741653132935762332268079723246974753446241090926963850775918353732470322790973537958201076201478421439197589834701507745420563491668632457641076356024877171546395701182975472472857728534825855882722710587736407533521410543422682550738250792516010772613804352050517876656821788711046502761512323321766284407391690561411484402981205629731943393313723851356661873394955574676788569997595706469741362426109857176796146848175576560761886797388704480540276900096361276503818307830128624441226732604184871910806727001643370773934355738212060094476557293565207774776056562120839532192919307509712094916077777628479919746187179653540739846260568267930886271808183032636498896256801700034299739289389998906692088629203194873714144945733160817922890950578632260147979876148337469720220947494511520245462579634827352819816295338735021301529830632604066491015762453861028373314780973841186323788712216810169621580652348642935225782896130753629793448361473392505802525818372308300378247106128682567479986661248574822236475404361832441715271706848196816887438015575722816888134158652692609632311215766630918469285554349686848062246878088816323161011384577237210681701480700196181448163255510953543029126290393084790818716084811093466430936777702715372242011003043123820217622638615121453137654081282402786988550905339729667743838689254250106523962480534111659260696734740887264183327803544137133206550017376352900273078024451761575445197222027270096604576320981620899200041109555729150905785569109721565441694580898966980851519937462761157116205536744281406287670038801413853609187939501152761673412181380479864193217750564328254180168415379051779560905079526625012403634241754629860226292193187135141639896216348078461331768041392549693997079027855304774768488332666057802828638067930387455259580897794935417364318621310426139044950350655827145916719989693428394435106992962830585246515009602662312640145480525559178525160267838502313637328617239010046786334846345951608660339048357406987386713415852037223785953548162268944287336430058057968960362499451361020177646413602992659865793752563119130233494124477265259385914179708195044630922634823824100191374837820653981711088222695669718167190618918767320921367905552842224002113898243501726607210856288905103716233826402050234387389387282902591901282928726725794117127144226654353529209649749012001352213990759999742900898902966198484199567368511739208854579172291645893845756441540595034163082676188342780554520046363515230259660104475454155735129304275885248933487525696394903065291674511402830999410544297063807914430737313544436375084136452593403222288172853660725341634504060941768040221099932811580368559623428756274330845538662564529408008906300614902189536531629323867165963558990188653532775109854918270518462410905997749423424690766744513033171135176571312292941096830324604352466028440290502417266474769397272976052102873008370615516261756613259390687262314069229910792280525839178178598198597327185437198294242351598584992729068948987884678994670912674839036519217650795782862588061589899712786785359813439929757062845144213458677408195484226186128512162970725471867110477290019391534827963337762758725281373641263701988926673799982772192623847332744059412396187718517333532994889554315008864863774944369013378088351039485947003301767704788494228464403188584140646516207623556576177852275074113124192082826978841606619902640399491034650405322480229982816508486409819183685262758808659383390413000730445203025884277694658743846677486700750879813667214706220606525327382879235345682414800199814169648157133960310805013513370066081218585135681522962575271613381398396585890844598232253547105632443599013114768565515152514938209317162025261533467470328714398486940485412068359311960419846433282806626541568469505974479159764232219876272037333201803279033360791475762361552169620606912976080706558473671841679665802949053610969474663029157088926911161071228326339382862900729303656356387462064671299973355429129663721473367784942477294489231425853838821244495830017760474768944165487134224174174108548066090317379051588526953128326525423333923277204986596501679278051215201589150690789443759641004922973357832344847131962648858400090909695870084211997069675983645531246959077951114148302635094419409495763043746510444839259468466233938561382578548114687665918301417136628104971914637195884626254278898523154890082944849210578396182228489214067518614447072296868692380476993822361408365662462711789301443146273158781662053335849670489699158578475008790132542777362188249095374364215557152532552297794852651197702550260041102565583647196936724967238948140611556142837730416051723222013413964052420114976950460940441089690741113122239643392227262880144150036033658046678002465940695102747626483609930325193639686716744925034915580016046792901369769505966501702967834147528302391772751177728592211711559363492035732744598778531613909210994969617784392292820257791007706741645428495581779124846153627377759163604705793316477427789495466178965760100719801791981458304709929658911169240374081651452848452469269659623254170596205161542256195904628608480183563593791180143414393724724709349459526288389456269805901556259058750695247824844385516988238088531384492924929720778993462614157602747782723101809110127185984793856575349622390158959057620714602820580180839292786922126792439557010220693867688873314203025400950205570358493684748167692503121637642289639609254119422789240763018447937280419653870871140232377895760629073428381608298338817820440808421643703675899595999469706067398594049283574112547216963151263648024802337103611445878284576339684313535701751224066218120242600091525069149847713709370546116086169063269453125334749319421623577917800067705919582272205958672576616632635531991601819156278923128985716388094617820320897136850972185951018355028821470794224221607830255897112512261494255593376478216208481267098963363996328624759981187429930801165844575071684809093380524008612095247239728134550776162012233662098586859922221089862523487839263535557105610724061025487619915875114198044164349010032869494050216443421828229177617577439421000299482738611983518771955674906598722892183391220408540090486511654752713659698076394506369755752029364128484787729327638180677797643354680262953944693555706942615833627615847817475621885903424445857265105768075638641806043707608458714356330426364746299136015276098110745163577377696894985230116191485667318192741329777051837950236838647251486777358146486486564408600402940521072941385022808014323409494247712321864655293710079691743578528551503333020328104130193405381054549261309601385019719725689024905407036937217602493082462458553708831612194590188228223838781168132010067235863272197930269338982188585528634652073243689589867108679420074748384599541104614113290606427644412518991353091079616981160101534624252248731663047045075546562260592453576701523198650742039554094119483790752282721034613625712599941905702808217016226025076434068785817860348621803187744383710957280582072577087709927553721391265356816385054815871485202014853641445714012599556019263743762478277169386833745966330178802528215168559316772128546914219252927302621270770836194314230072137436908331626239400567969258769291644741990475720626014373675416172511768747732626819406937390561624606075043373925561851065162997879261994752244719712046853018941845065308324262870690194771992199069014223595504110778616121274497314132645097572775914957639008654169521917186023501978116737876062725855346354650146022395968355512713448554763107306337642902660070933204400496994331674972806575374942191104593164953264142988038149965807768422282006616456312893126835030122996867367300550793146971355546499067222879495208584851528970672222545033327030656168722743290469782838916524279347797127287223303487103306516894290837539140670118033602107468924591729025760736035411468208969664255776594079397488746491540328583926846971081002075723320277182748803147326916065611092117176889121794097109370436646623165692277817113228026562036260115185565473855391242185369701790236254395034771171791862997308008724117287929796439231496242177397350139494075367198746300997091555650057557725754377276918090938453476206656724087990716109979644650788331927400840463870280359998678934890939982721438735506903709462439585260373445544356138426990760846387334119417037272700469638432403792108193527914539748079667212920701090090593077006938682343859115472353477380927675463170986331953524648016165803799015974428040524950284109809805658622838390338941451074284744133288025295294265600478524755616877863867673444258417979390963154463776378137685818083312657367584648786272845319156783145612198289236589805132374887125767617894683512395296966292531522212689271232316061200691722987078083363118243665102513252571935334880182654497499140520562812791671754095282101463413973606956474514561119810329496836183164585904728980034218949844585546996595322700853616650852216659016196852254475381702171344917757861369273781070139989725412228489079256839975071375950848987007963553087707612331567850063513123558565880975110895149161632756288414421539571379894403002467452700935488220028646097876180328493235805714435257755420388242216108444831133403562879400193587621198024627846567618729804061884036078838078631864566421524720802901219855880343200705537741646824099464378204670126215350733795909892068154108231413607561011872809096298547223242123619721396378176304338413853050184849289614665479986810608258305902941717909010291670418217249972748046097035527524995556801052762662891009195026368733412854913523731659423638008927146489799516818013006917281333842941221989618583976937587311154729124673806679808310725460463533342063905283585974573666834258589040262077227454919042998315603316566623906352851117907574362671688743609490221528357692816872110565096668839665178311103383135730169062424373346498020074259645050511794809823882700766326540226689258402684471260143529525592449866839167923737535442694693219470878571385339706922123924853479893548732403368658519163734497806950224687849399723864680439103241400816495928426473503102820008770425321414727095512506557003369070883976767083961198341895510427839328971788955768826291524889831292072331076853006113233049090353981558786918352968042831928904708380124990789135963373452781680789480357899064494620218760812176410700989406254849772823593039945758270175080628911755701335098429021193355983667997070670119018324127718662412409591709388213716450330094988311918929610022775632053629573161413217716012888931974299620685084330326733279932847644042359562146158023684144710324533133196772049089038848335303251087863166935696194868901300862417511143578563574529398124813414308716206707825460135931937089507036515453771535770854278522833807864550137058524218107764134421329895393255017304930932601495838894777292843989742539900359954657276578031083161938406720004338990492594505752197709591351139795332621742638560862205341394740971905631464891476706081331071132273552263721108558762739851456634290134904030777058806007842006833058116949715169382020911711462182868025234156507701938790926214777803303805941520937201635442653707006675271072328945446346768992374457538319488292223024128172666923044983364891278470193910154159836087959510230390151431491271777121244107108838580276445079866050530036454775617338637840572543273844825859114703739589431777729193191184936778664294754817768259437647733474999767009852721856271623594750111192529695080299850004077309689815764400647298236689052816645416213795747766042109860117733356807631386546172431381117695854447413961225983798503299211734838435012093721118610719710591035358291721884264613892671216435566714604832612785359533408092396607906105924210864773510876063033098926252682609055792688573139559375822424094339548454123826478427944570094394941752816585522723932650190391425782440319472916927089153240929410887918324470853231807425890570122723784245930526457133151653218191959233121696410473524846225505805608611094028409216396004579891617841039619873186537168054180863689790092301345980168103151874280726786188135727718492209736345712335111013119457768381836504479558682259452589403626056354105760588372792124386674922205956073202042819062137242982516561583502346416611349413664334820165287356955849674191011113279232424544082460801422088349599741155879813913781049120949540225962528358766740570581880669515307578655562257521376489872441093846884777587154183309208816094852432535164571402990180392687648857422334412335221211928458290141059390332286472881311870198890457948561598058202873102695084105426859851279793739740071774350426676386357859217962263105190624099919000337073921814035139284859986921882158975688659652698205617038198466535658027850084960289151986715628043125174478676887583542290972258846111664336285901228196014528291312185143421674294710883925834873151265889124776592008969707760339195439816554278608019661613823959697671639432750814211530510732629548134541734257267231795076572795939485400303562185436994073059736512643789948458910154136299359265939994112407602966551505423186213094718332632916776379665114034813686295664913573664126691304338477735029068922864436676036888942600904069899477178828868378905470230034820059497554149300042263964622324301565658594768508771775275773719910307096369945599700944273709578996893486907413282652613045793366298705933596743528457743649440808110780253744874833033465391816487631777296151415170270690173148187881905747590795207472080941172429623520269564200795836321290817043311914975404547431834635122864789388579656446691618228913171014945978004733722410629686598761870039840336135683602459509586553101879953286423646088085085002885581410456885932175924308382538775243816842054625915060972568613475363192282962576491868331419699735426275469958204613794582425223757353114341316745662843121612326707263988979556975836243338557206486086074939024305766166536259353818867553462745966535312934034164372879061462961855264340400047996125222148977492696274312366037894445048838725223677638189793290904035054460237306846098525366789776885223280404676502169665286090273095469479244261501655041775203707516432178157619813098648106203796303017440029339826532151497311882375650070842504415413752730792325209637562312573339083364425683667533899771622390007945819337604586452365383432813356579277504350056131527242795869730352671288777628956906557576088703575139914696116910213538660274115661535935258688596495320019919399054202079622552599970094043446331157802126127717904895237219452734398331116985230445646482981214026737684764124727238306584271358119102249665367769193379937855209529398929642085900789598890274175465183658879889807070060018344376608263334674590145005621656061434589170431729824967625210684506298376610090172424397582489456273406811938356962689795301034698162083524441319761548454002444677235884101110997192199935040192544936033561464242964686906540673375074835896690111205578361481253252565016458422569361003754036195806925545808513165617352109069956381420706242300068301927490468626453762595094835969939421468144274624949392989492271676115374971964964989627494479842319030100453587243942988255432424987677002573256936723118820826198028774920738136305710202598272261034399996534319147315697241028891876802315178866508035190055351800485078843140409402303704144005216671142688345524342798791253768669572051490138484603356109667094841102626484598782501653014771302862256262437233117665386125718031421982556081500087016345507408659090514700461713128502602178780456844654519137343220721934917682456570733843562941208065091296567070167400849539568228078319776499125616123891632042915528093143198943471540459481499622906394268355419907518123229190175844222424877002576715923033307481872541271814254863893344226485119664719294406817665836606405325382101097783443447248829771950281569930507171001117682419872589893657119397004879535282590079738828612080209516983370293894923723229539201228555881221136537102088326763631859901749051111156018197195908378206656276147847766204291249065628821329318971049733802109743136503579124801425205203847843157177681351090088223346760222254672777802042373022138136214211939082634339729195280776339030190334124914534946145138144224143600456320138739878203473751990583315830622144356258539724133034575521414706777064027325265636805332024109270138310215819466915045207720903697458927304197898543855173544996009476409811827250257819335344711915638856392689118110323309187433854856786273360383023529396508549545794253661678954466746177700904915341250882729922998865543176345462564621381510368459441297593479340327662778303250041528946492428548886883462698744322065191377841241597960025759360327231193845851921720694934085449234585130461253700829517273185512395106264371240103239623428952428419066305417210037148845177061048101536192567283957786226101245235033227208589601985573276280194858119332837625390202227712453189722637692255304110111162323261747268649232065311576843428652053994875585356417496785300903189312836930186428940911167049636528485593187880700814768996265444670018971600411002519066901825758496633590754168745654221138550591230512044289663217549023861322267279096596352652646494300540268987301848901566420133357940079294323326991063400340884013312651885573655079766681225071977459248139744999732638709257312353816519822652780921523795220653776113574189433782844009102683755346852292344065464049786245586852191664236405245853294753636270523689740021525398364922008925916968513425148872323928800159397696941333773127388994474345808048119217214639403508900483572197088867490724035894526984181890794645590368848536777778717648756870172974431236488220444892568584169765911077485652699834734446531827842771274304210509774068801455841257606834771003110757926596810266089433336026487064673919179329663040191971525514588094592360341369143575888868393690875098294850757380624060979381295779804701553117269004492795205858277302681235646931209537844794075058000454287477877995897406482237706495103673495886336826711008070033583142702461736265293505024300476622332081585575507146342656748226280898319460998784821176049871976332677530129961701191176015292975020377753986067541227094914767595698825412618410646513751109058287227716419659140316222898085141944212020429084954462414411485295076031789538561026731656394325497112661757118880556419539710992746640115321782019094387873096486814306108734848619732761663542466878138302735919022980056561617016410728134912494884874647726772413010594831486529985302876328855769788905352474304816432424244050443841163438453495396658365834914295129349614165231307491750433379336747658952148622697416841812073470713397068545091599102200576146820879441654953449479267607753848252732876603026250610214825264226367245134390935624879916924203424656077978870739316783374009565608697194482428317243549681769037480581087729764425871341711961009641774385271584609918542460574471219526127354647109649752597605412282537458608060186991216089472646152152899077790013066936372863772308070007615963145137781049826431081730926255067455968986459117541169089677801375889019685265425157098022243394211830034425430174915017919276241966497775021338708579735567496173728004410081589522120844042636618172942629654059040105887067151082848608163267721222964755002086706391469500652229573300727389171276572360931055140228767162523008389119449844444265913977734513755625268703186932525917911071481608289107093070414316262291168113581183382571563938016188561673392677248556791028921901886231786486910158741441537427118014081673950641472872560080610236172438101930241681064942676796270254703699183410037669431037976952013944464856544281551240779751786677391680729651852459063455359608966627235502834407212476131735467716342284041891987403428671867944318208373278232981482445474677788900529438459642799210415186259821177294007380975899175286673034858595346730637110598461266959667511306620158549472055744734769680934268885400423409309604864600900330288126731323432994728038425795722712280670664694581475557099972201002597797817980963196119721668493550882266941992746709362468814711625320575055284644788001312888747463684485177059794969154656993132276698751997604182030754140444884003101113850978368549888667549098650226062632913731996990825849584577982503016190229234050094352853225478540540818931140384704989474786442505595876594497626526497421189649629616631270967344867979720578626416365794185449070933768317192240339472087641315556216368412708030244810291302216613615793254024720018536899748762954988873107416521490186242711097634164480833786024831820907733586779370115500036558616380871252861193354149516932133593909902722481288221947245451535735601956961027833094767384737681072591324262362299464558158816498699413219490148996635436690355663998876601553053342033408531739692031555180472089779374427040495546527270025131896839756458817256603030599876877463341701242755391811465729763901157448238032682512726784540160882636168799732253635364464024026803354241048423118626570245842844535561155894872985739475908628609407269088943745767953956380074885032066410897747470572390026986145554089972866628276439018180157709738621012949298664548971926241494121079966706766646711259425562986377549375626405579249649512036087866038551696813409640696502881079628287809866611142506659456790091624766974036759981311924384418300532205971682502989458941913073385081706940591209055737732899867122897556184901861897169384298553095267977998105968373873034139133028109099907909694149724770331601928046886429917107947550157129735682675883806212355243761883122999249698852937311327831258668618389168593611634868967092565351706001224745763333685861519017388477270587497508345148630584779089259951868575333552276449000798985912345900276217225295259236570364458906602534798392719460536960855700808896873194107118543042033132758766151185792315910360822860956715045500336611342408954041075899462496718328172981006464611968707267398699527426495215992696453510607586404951508241426691510920286482160017493722357851303851470435954965336874982182755159453615733520809975955143036596747833210990707141053099240533284511724479346796205407438750077013690039076259415477375384741770295630874172086921683427465065168990888843519381935625339579668899184688466593049994844523343209858146322968446112683815179883851251389545560029270358196340757249274450621621005947876845814722316014286206496531669309282957721413322446932918977977610095802127754097723896905873851237239800672142315048253326919213835210496820174991260519238044400452018764539187590120623787859411489485472412392560998061526142589235606575852776498549198553106040674522367792545691315265689718729762910658004631298625823174476928176518646180268208648040964161214747624011308621285717921124651907618640030769588240747140301679699701465752969672719168307398115776207281081283293682600484208502104010593083749902444403450950321695973999215036890002288051437678641802676512011570942542776114926781405925676808908400133076798403838400145318826961977367508969176260226022315378080303843885220210144697688944280287194292480227522746675796130037788311339450332879483929323870234591540258520982856952771338035700267718452609140498533875407178839330337792471114224501675314302324782967883070712673786935004797523121452749082657759934689188751481917460439665333368214858716354019791114607911735899098633687039685274405300632430586927987627264822410837025704810327600374601085336518042225738762940744665582658574295688178616682079297226603307601220741269858343124183177276341734108780402240748306198283231392474347667550248095125585157112064475817971386319142515192096560646632885832518647660690000388418623482061359077682223162468459527674185895369640674846237594317460140154124459291678483311324428395913780549620335789506325255024534932233096532689317370658718837230339959542151706798711285261337627714084163915394622700549966843281705215149227097711259422683725060173789750828452195963593801660192812340533928165905943832610250972477525857731963083774400192413355092138515775475404022658451708873761890784208847227894188891216293657506780616317693306034434349187585910142133451192259655570975927144819064075592300942398685404783049877677140150115178654331198325282901176492218357792803406084164302265222517452387826869579736543963825463651304208670738066066779310969244114689366302670527201619729026187115015464004324469617956033448782638045511435095651243966888899520224730847300605660791503778117017765163202061630852055350558040385953001494237391482418152711132058953859526973421887151439294633709853199277348486895162342093221793386512002744435999593535054719011554207245863730773541453215568102019253826523412012869099582547688897857288005057559242806426062426811438476730588059579229505930887707335821652292158346499975486993537387427964633928620611665989321762726405668813907064611912822685536136582739860782764842292038611671004224131302468490599136445175569880081581838404085292463184480606041892931611124272388608885420439430793320893126026527077176637697114324762069927933095020788366426996256838681530143548524625485974861025512917303635424109124976923438742627561384851178134320990042947531148638042003987325293909214391827970861401434566546347494182952628247172802775964975677096344475379779801169502129131035816138894700203446880194010079999303366927782258388297020959421326099328838030469761694624415647192171866590781694197558065742501111486138152212341633672970305727077886124730975390714565733879099466883558321338107611436412123837245693265488652404953912275667370899883159592218901169837075299004980079622574650558664379232854631418295589387401814055114786885517921923036013881999938023480942550348126096332427220686908215251660600398294301906139787446351099370807833271203475421595514692218526890513244174671957446418801013182791261908753155256192520359088575097283166967414548384989280409188174081468181008895401121856866244153859374330630214180577749822848129865337853750743121644399985479251343716992109668557153441022692472744806479132418818232074899908850058597867318554608541705372682551161816708788595903857936177675611278726727325355231275581222059013458399225283016954892449622748761449495946612243008526407472984634172729244181478961376841657323421377678660186108040416608988422465598039800357017573419429910423649480509924147019214733678015951635067047231498731140265524321357107325614254467180402591571731973445903009980557109585791554313557616846684116744058176204991060459536478891577800748243915065572422798673848920998071864507453978177584132453565734362191257658552194014281930079847614271353930432850991728669953267239978703053378524731322502808667304130930624196612566472716661860257509900654004249078857192888674629956652294064731531697449982691012948202868627185283620466079083543597220660417274740298928715785708223718777205818263149633606229152955264676500345961471776994372754090998603596619687420469814366239224469172290727131335227650717202558890529039300569257511907537777524173060326992055980882002854071329281673898251695705698333477727538806015279632159968919031135029376419245599816771970732983848981346337399594595936998660932588024591620261230873521915319889748970741446944490566472778867818420329187347367068570479370671718393365201762173331483859898990751595639682443434884267059947835740419311779612563154753467766774447123333117108013600344137684353978994829363500070003789924532118762956865628128627449378940310806289457130204593507804699112010314851772669044417606112395930666442286962666469809170060054118033253401375279433552448527206359969771371801946573545818963555457733833882039691454800499233085578007567916671583151262423105852170910788988772515543219361971263702824372650156744518026189151839651774812399432864596045752321979442954798781558019637770084052321231225294904760000245183625964248978255665524364699106368501503335162964745501581741074018727307202266105000709788901415597658257299880608645568986630350160610870654072540597109731645096849408100600192202714143883107802156480905997714611533136883128901764347694273909950105925391069006375970216693240709734032477670702830661237331107474618919876459656211984240807746352992807867743539665348148041551372971595126482031591302750603928281835554898358773882083940039970322461831949257481376012980702468429410114982447545005738695618279655966731517268324411144136185144920523539163627645465530607860317003261717078167637407743405849789548246502293481271399210944393659805200563505543862049082264095149647314108691266432789561656810667562900017394125964675555946470891708185191499285908971179248676762968705832185643971572188002301945809252851804213611860845090308519698126736251213037709196695087804852965896794102468061701410665918834977294200625599739141489074423470254301402741946768718886699153424264422463490689843862330550584224380720436595979125942405475310969867065678330682676739087989386532111976812891330669175935956719552898607703046662677497724566922387226952065080396887439349113114283539110569554036584537118202376123190373214029078739817182769959621472202725501956747943044588970413169964142602245317660582004159861614553974918135516191388039291795216484729294172559397181857025916781876046728955760676854554089663855850116735858273062439384401172143117150813428121495618309678098001235344562604769333137152081227101101624427613757257205232345964131893499794606898339639163288252712800569591976312844195052010398134503921377987971834402613162830686745768261662014492483069089776921239210745115777870977845556270520576755064282630660961655105187422019936284933224318125862329779886133225120587949573520433496701832784612144570997562467704199144351429605869429011287587728899687392451866823778444607529974410041267965265157497386657425106781381645534830127311207117897324406222342540398482348640421495984952956787267543010130720208272763572827405919224723153057601922069523036211236818218397819816421699275407408501364585473756847354520142349653781500940220166224260566929058848700323969775400559286517306810257203143908845956833659120100774827468849034418312442774986118835473559772000002104199828928567842415156088617711334550843265977996471246308057688854537533870617462743702986473701521978707986200026618697406092914394420147193182662449823534948423323818452056146275813686553578703110801420697122666413542346664425992390695566381802034023087189895870235548870461452889841604466062342880788635370083926295851424446191281165958165097045599268821894755841833475002343442066747735289696762501395227832326897428031792374683255989855767223389622465766852733537339172249217417314251187083392820384934692086079066331426047460034351892774416871461906326933097745714223412250048813928726304169248901653414256715284581969077688079441130494184211705929867189318278071219756451021025669315370808734617130039556189833173932588796896009130051669334147630495258046383085253261860168717436606042847250065633044366383279547578152837486227902794398318082449392722285309854987268528506805245685979922090322865151231250437568111384785267826302497533753269516228037708515084259920961680051472682430642514533829133099348241694375506458763901682517881278616485102565714444867612363620726546166995586337755449745381001332700915694721724706901941894970561808450142104802632259168168680371578162369485704015530313168674403496959147870535418792006678760206088647851850897597529341462311826644598367912967361009769767678471712556300824433788216500246228517773366607922184226816704815439006536228273600299002902197342880436468285642423958661303827868890494805743628263314324475323010303575736980235877553656199787775190623374099053531998866793358217906441741795935538142540450379444692679227573592993361580517845935460268621502868424370074251300083838681651506848858047300719026585309696236192538229705198361003594575070120460832475448674211216059568637913890390255316536235755152354739135829766832887443082176325497843042049788914692660815564336327108340460276237801956454853619054669576452389451712685646353711723546149451445600145190204956627541852529815584200998524899837312958753370943363408269772550426329731942096574254410426384633536476269573463194287373001513843191130527769093584746722699177604759896912602362153788656841716551877384682214988415392596427509422098089929532189626666544897561002266794966639419288118583783069704416396653926161300711958892786560472078017614288026022460269122182064116277652729920293876805240728823431664944342146184547335514422280182809759914450126961188900793291269093878142789045744587851635292985762905086416867952063872975427571048591580253750302763314593348826075461445407411558348775448383116162070341153601672005775319026384716065649520796595394801647353694287771019160030570077952032233683285291558358201305228071819604668966040792789822441287530040308351030466206084130652286465479635336035461542185928041551627578007988637847707951942718612469261862211832440827977271705771958223995250844616118093048278199258493112798392901913898096981534714820113061862767377691935887535034580392439976616927702382697575171229659003409472997586748674135175940378620007517699668936854054448632012251996776009076404327319615985394611089975167846093832940634058891382409224759584401398180999271733578785389377494747598169366967653701421768251973810794790531569979038477097197333121576594513663729762899464134740296874454502174774658390633865700962380283884249273763482649011207584447704488219383445239523229188965954913537838271487980208661508766128675565528603803083200817168706465795063054110382026398929084104214806889070857440038376808922565923834687945478143477210713489561583027665780268355873095449773643204479250100818069404521193034169517762038548456140912489371557586946344447750699825362867159006643930529119260088950188186866121676886036368743265823642570095849405495257789867865195704482294282145463808776406967349485440510123383366213873398514472177810819503140872809063413890834476172857188857628024369964892976382786750014854583656328092232985517486993094671310520510741210928657001626093460173026811900854496415172093106663620205372636267823881970756381326989392043929386247356369182100244734487392368701599869432246050749073592402832831314308139757699169890490085737497968787497264954072128538868738425114371359740705932568324067066865699231189693887581199002116487938005955205203582189809877356276647040432842843477782425867582756207024509425131804306785428023599660909068527886872588444786679438771026408792554756093868746241521855589361908418782611364465845438386984500509380985675427712194309292977734098084277444370579463753668058672172978652504267550479987937273015245435129286684682430484415360602136233547618612415902788431666928769444797393936489714031320357428725393525175400229888991916388785719490527428049459894770334563307871026615048896280498962827673880079031521685484906049360098510651641034007051014914967802855820177051917627152586964357264457494244711937081627995144800223409044168348966489679340933483413453552486760581477616621046508556167211060266382636858139474112703426523875090813897135670909370633246111382488355772353697878856371849410577160409401770445726127300046220033194365187675787182821495364554007778293937647014524403139781096987387190538743708636076176581609894779224205841594101708877438764933480038721962199108220062007724487939248536284278021387881571652050048537211621957910976935394598229349045767051043577723546767146121871607395380401902997412380533955747643697057161722786742589829318104382369583772819372515640775452009624341581670722458659498917371730571661996204409867913241299866512759296167387094906499252799459118908378321108948421810195061125101402267498906002034477192498251713851793506812176071638875290404779009519594710724498278220041601026828603781737427438336664512258125661768994893306402282705767616753850676123884918807839930977934799180935870725917107323375741119163288860347425332830806691635819135475177968009015589411387092120594549817168890820906188294005851611675529577256605319191718492589763857373945230488707869805100280653186208218078840769058463031832286093128662271404908127285166470018603666083217123318532471569828726910878798063029095873190433078403670978786251429227263288154997320639517755950647805494128163566066488838386607256516209113020893315983624881684707467311735609911548270169515084452105023721552365921301298226052256144211482675633818614883954731728185220239643340903951933301785666220091611864343598568505987527819572847550706526798737448304129319184959473989773460067173559404243597355718578472453026339441400944763033864542309110534963347679373018128518826609277367119230291710957029803034809123079714954061538376500123172368624886850737949637256818997727846491186657004777410446936713340973804343691528028486541708391268339042116170098206823996228711287600067903330603299313025510070517676157429089928316522376440174682988873639087891195128733907198801306564102144363029036402902469953940917505827028857078615307963921826796786546904208039239425309973533213013379324606630504074412567982489666626699102961532337262061152876480181962532598612673722462629658618216422198790975572603794157128946837853258533470647612770671627305014355620896326051278143609071597173660524889682473858209270284501228701309931291340061764019865799588647403394789257902468955205627748791742498948468892338167456679896505605308620872237316466066983724300080974083436941991005925473158661002599304733208779267385613420717691101209569952634157547508340283007877073226128117346056735522720015662474030073668352366227692121957947949765316405356388113268116723257679559813013862646011809904386068941934092161575065612482224385187534354499582396110396444615790387750644000440821371470372527446167758428198083077247775641392188110008996588515231537447114139470467598127293335835079345599151407660649293346900993498801134395493132451409220065864964727679975571912567435366539423959623485925298476343809601726468687684642340976292181674166270360043868421610898175967307116599556289239823849002648089846087190792684827775550825945566804597441549435210048807396607665307934348448087848732710186129332571937669775902413379045974905470991314245553274937545441259989984596172217346202018212698887115890196130211268639333576058497121265008589581443335200706603473893058816768201289788550880534783932262539378295222711868412750634805183032194351639546413907930655036797166438562078522718230857909330289003980621795223948722987335088507895196136073157063540683468347778436807528743798604007366976188848190449037988894194154886822098250120875751524168532168084071591805357232384535054179499874532795750983054338731868727816230008766647033264887324582388341627211316012601898815952385273166309326233785773800295953836578884269332670827385500413846541068858339680188115608780208833758159206900124048442187412762273027594178997076770802633006881863750689535188569693355581381998607125391095619816418444086491503984220532706265088121072396025423587598816457144951715430679945921411029015560545926933175428401766743778072370962385911768697409722665862802721540234335799624741787886481353325714720402027803975910787726764421265886714071516618695316662633397046400538364020413927073835409652094800607561875155706933896060162384625742158189966931822085025027959800803266274210168680631439152698451324367683967304919725528478213628667863543024092225010573886001558403425542913623413413560162160284702424332719398836598427013145587984878100105737356318666852803462006112147292246899942961394502540443939693995237000970433180770716769058643653008162717713728892047281561954061202688384685391496652893257102868159547631384597779577919884519792124727683683624269876688415086387919194710267325921884687598005587468171158373837467994695112771815391074045632379569153079495942160080221339252882187097685164903873494356016049880522222776640803676181526015086865769296557491829780914530076758647120341384309676343334336542234209205078022430937614543231057822206209382532284650246936656113578945693662268745405201069767816979860828721668452218698448923282450890101573545360419614238889141808172190070232464167503027445052420396313028366367475705329310891596707872517729570251492913397295509943351820812678016678139017707073915416037598745819790016581601357109152565068459777306691788373889321967902289204553417350801890948942180711754567712729166904976840875983972888482738668402743449939405500086973029438410456960395318027746226663333591520961076334656837045280525790020630406494379676662576648469663348888136572008784594550873418291557572267845132445939189886399756549512347808295360275865667709434338641417323084110427759971743568672004205859776975118589092122232464825237620021623467979489674144300526885479029709855415664141779959011350524334107508521590616140777530845910688723440239831139113706334273487015649730403938586276940030833243947753257173329944066307478040200600996116682346605208160681149432367510613111508922000147510994874972212293771956238478018197750973750850836101083341088201518442854098182613479183824860991298602950131545403894683291103114898548071084074478066976624207301931413902712329068912284425675349154141795081477810360020167657313976346916486191760225029391843232038155230929156477293805706182406089338249704888232879864888791338402344288809639989804616468878854848676449462875911104259444958431837015324680638103079058084864025411416611410595372093404915748854780196568127283289941342596556233306254060265677909092840673309240144359595425180982852197587218148052057741940741408157314043891822670078973095378632434663209058189459912475657073335606913165095779594321425627460241879679881318122259729203919555732085087055441785218456574268009388006566493338919703400640219588743031170796836089320408765903264634148079451772556532149996500530541855487710038706840518149033773720216137823198627433284084404642134282712703468185571218489517294252739176607097467084794887423801781610197400408389824293687420023251157874614397260720861260489036239676507491554376084318096385699835909040256433056880661376497935659933909298221790395175841818572780885615530171338714419463754820559918455129669738711733371104957171905928264711573211899857212410916426629640405188216641859451337334835468506364488938085404353601180492804338814172943081826328253858999525502111609828038473441641746849503961988632466460410165243509583796734749918132749564687357862479856655456464526640084742268345310482189502550028909990836687424390755606481054577280573788966974969654794993241506928092331427897145340653832411265760276749587807478134583164028544200257289805196498927944228701239818582406119770851546919973650127786447933755192718123906240886076357965753200687604797549788183917334380067049017717495734878845008389840723328824568369665813358739427380800047900871138056274214008703638523581344467249201148246355659376733784638972761898814094603269238603994412411195529611016773221964012580911716822387307887876346984659904135563510615729134530794315346027575563152117003892263944747845656002137303545873466364025193779933747554190951848595535982147867641617536020025839374306861031929527872801531382093636723451022285304753229908862926032245763423630278879540084487033412186593605446402632621428937990851533657251098515812420123124890935141035981760641051302431830379764513406506022392292181184094308638262216079611471294720282569997032794928759034480936277585021647969936369619014977659455969263082030378520351595821456193652118035543699417243057925672424985700172412856554888453051624260274532579737447645420112033019689515507408419400503967409265652821585027622818791959952747636373893674938436653078073236521463674204740043893197714112545060550266881188000655664200974531278415846339391548497875565867782489474758847083923828565596906464558567459505509271890845346983494624232067345812241558600419533691380467882336738305324540785421009591542009175151107903990823790710525380139795914760120782030068549963285954052799672610093302903815176774909229076757500653553824737687029167232231441121337448782718351813241165349737686583194860452658664033353704571901579683719124146806443427583569453417280365389898637415926849541650754758025119967148401204514017704234124524345138598412153029294586916910219839433643096247031789586911826187995246655408268072562292291689609499660159200727839481198274129926498429271991836229672964244466080529472146901001016265437161204930093848806136936074062855878202140377312723740987215730617848840052848650705508467984080766880428362009308112499523439557304924573618003643645525801322593882690059889020981806802207216853156118347901648744863433628192929535157877648341318898289720369612114809837163875400092047431790855974480914893273367937636225073548494583320592192982213925210883977831951315277341974171121691975456868480384521447102668613239912906216998627268997082064521091687049717997085988606989374955481616169169933411649112351426152136729465264829750867505331669967777361668067399909039401123164565927445974673013739501071693235809474870655101158399267013154369513839803453675224944809501266010751675830922712816042233654073875200074293083408616190028662854683477620582759144123585142777182610898833851536123847433374555536993923273970472244960397873425658058890879015849216462717080514841302428458372986676222577000418320806694959168100274723772449252025147862527219620475712596908742739343224505806877664049719008938456427319865729837757556971492799393587161872052251186711222091527322108243218156912821730901666603512009537506854243933126410095887237196537741070634429042519625982214853285261165803350332022402724085802855495114239151806594284068525367697269778540808505413841411364715295152971794711056664997611517517842665533268967896989314325762497875995953477042226981346252628456498093057455575917262397467661475727085706315418409708527040445971938551884660829015625463883195194028704285958806072602469145927304210614980249816775548594768933026227326359707853580080335330670190673848444617606619014323952743759147696030516239696690539239001724744864199066313328894947603949892963700147410064271817504455200725310486792557488082683901439811897191777352861410778418682802230699865476114569111496497004528477492585245850538225896990580628865523109294624679738419675312170534809929085942462306343013941580727343144162563783647680069383820420920159389574840693892177629363208667191242793993954537280997940764717384095584191474583300908908689340090115906513821291283741917702159814715038329909021042019618204842392058618197511780495611536435481097831204069038207820913113708670770753369122098422500157960128146564828093610079174696447556367288804358274323605101364904690350964234667608826095933051855546883173212799739528672743345493146892574849407919338293681320002742441870963676412128805705300426443094589887068556580085039749445739350098606167110055149216435142495473242420562549836104688685997099016605124980058011714222562952714292100850977626143325981822327501469256190762680014383612260007791468177671146244509976841444532279956774745097866032217894328620656835631615564654744163576289432737298343039465004345147572134910488989780082053826100539525998045076311484454428422884431075844651785212730076151262440641079083576012424520182757145097873368975160409895914712276688541089811662576016199054708339154016682270757058777334505981430588934337781603115423199672952944181738679685828212513994311996262194621831022555823939362132202479953579228798961333445566755859522792702931290246629331004708149358503688113281862648682762591532817069421777468513961044159204740768309841770310634695319992444599399564685225014058218139978477777892274794524511619493399458750619027444522720555661412911176987098861921679922686243353389943199223338567633515836002970646506912880469445504173627987467868562201133760523094853350817976768517382843412587609199874856816634716847569453186816302869669709062421499386035808778657724336531647984040781035234535736596707022229461951708342215779856638148035555191763013263003119989384369140648210099754361732464812478533843948228766749421457279479204767668645446149180857641282282179788763946892351916192690820691845839750036680786276472159326747947099556793745442504309302615921928609580444708849217963752487756756957453733665665977096996455121642392197226368665274394820557834694276879083994698197665316544868991111914358060670187544603665428921691798715455011540623315972008951360577262332044142250806895074421324209857842900758490227016500638640220322397094846502050088743329722045714620570176685263544827955571651111256176069783373643577172144380990996275210948507414124022177818636351079654267981388368444972054237582080138043039588402564861282177353802986600847569622578392841480792773690124782134497696590808138694137902302072803066372383571806456610294116454787332166215444336216723560578541385882056175128952972016265919560033986526180410477533927439295093066276493670433887382778976210125795252685822605729134295001533943368888992769529853287360730185572629757297009513267813633158654430457001494378429085728564052166279633373788262070025576517883624321537630528127702840492011320043243958324567731902363473766440777129258026783375910648976514634735786266630938097628713848777687285522229260776381889495098147097964304480009909366921387778818670255139026697949099135363530855495055319234537007924936485818872663302532529582258172903080348295823922428830761718092546137380087993546718228016945846430700516892244234212194757385583899979344859535324257541774209813260395157256803652533091075477621890930296280589888266221901168140834257923441250066021860703821828116448416192436582620924200033187678331178046150944086231442664135534236358662847390159662480938215882258794322509789843075824465764433486827760324051576661389650325658853050211525472860707027026071910466348787358109198044737431462298396156629647875339711204415115745134803662320729500744956220063243012610883693492825591744786850778693881229027509029375931007360015579466687165801431185578723775780433551663453507732746774696450748344014434649379386540847792358948987482755508257824523147748258579115568916596710933543862229250350099668817893365520416654528972800758014538186588518049325819403626283298975283210231349631652300687841922919566379419471884567658078895571559991297549844988470091245866335134825655208814850800739199544263851392426383464596060367500817068024695260162163661941542556004215616788550500416446446129418353822242799597155521946510638472771662729894528032867078900010871483221961780090971615208507264018012533300802450450009945667314363031725042282957378083834350512274846444237887925051193777500670483092795293662451104628123960997915029596487594369729377844534404081407783627437374162554254134208945885717170959773066545329932930940595343023734565944498984534526876096298366728725544594867228589331184688184314640911969732597771213849807571568375144997173320101220795876338685546158208409737545771694565151715174797586421191698925672368110748120634289541077880863857204613713787524654887340164819473505773128800997942671521797599267113582278611679918951862879844391802197964812418237186305266640858006291160521090216084328805491469818939828727299180973852389989449396801639517427133030447024485605810808981131243402144378784205447047189885468165873585408424216884948536754706028755829495305946240505193257025330650182668733414870934833983909934969299600680336717510429717835525983174149968144759921534200708882584689929629327845832532069360430871077460435045300817326189828200116419891886233622757440086998215473725529666509826003442793304213515535037374546715929177210358330076853116903045887439254487699264080052127332449681214554100441342168345038200622764483457716243104100549210249493876361118228849095576330377904774877488034660699217809796392500130279772829815593499739772126372150706605447506957852285201623019907343983536279913321798737377758399119804856369687029397573895830442684033620470410181146134080960469378205463931301329229429495892062063773272847368292974656928436301013529728996510274595190962533011195335041530212621392123821771076898847155240934449353237446017521883340608815253035740200342439877492374157508153825274503839560068129216530574536066249497682595664396071153979040221594554964849073342595174649088601609624222447343258211091814240396828188974370259587813569612882637326936784727229017948510248662550804456302317213679062846571528188969021467368836449156401234908932594512205960591206292067462107209624212587098270670451017806358324057190208630665431187149346065430837340157244138448244883601817550577059666083227001769550210849910428194433795488170032249514197437144174685998769198366843842487326428267662768502901835897846396938867389304673566736830233152862436995852174000492620713134955077050208019903871561778314396661630578691073015181852717092443097906006644717363976368054577650523074744691378798947645059683960686570093600672521391875698072877203004265398876387681646096442352582645308439858175397074361063174053266029304306506607910305323331814836341586069567167638837510523839613116267651174568763976818465754619218840127958359068064055447967753409954544332848125474806641849697512011755546078367829896181698870740422606568724643646965691752076325562903226992042180326022787415735984276831691742339263586931844337127848537782343285919896152693815736942672951564554081941337368644754479745525269457143382843129101431557772549466434822545612665047842685142254063362783496349186645772338110151980001885603323205034103747188413920931214560749466214443112911158916984926924041779290412590527625635260957872533568575533302975708704345246147138348799737074382155412726448395817154059298738808320822773342761981657334042305616477056737988831760797696112846823092655687925253280076056088689000004688322549255317071980540391659133035980127970467924577606786330940763395184630873901636574355568308878453877425022295319849265040214524790755009756418133817318722129708799908072124590981825363440000592518944215047237951597892739515505082989795470569347726101247038712318040077175035685052290381216162706643757934092193331617627626015186393006463041106233946363634307678694692217351716701932556928751648943259795150321381420127715019489607639323145245361612964704686857891558851080755587927844088648847111232763940298913219521760711558582932920102554070145064141177322620988239607417008565083759350805462300111579690542933499952117058291972782877094669170398588461463118235652167605777495124037773902345679318943035452802985105639732719196205260957261393465228105513633337322862995586832707522353631138281872708883614365065914937933194383225450650778758122912237872883662447382340885081526290461806686785259059144799239920094265455335040290674083622497228723957530612865606801648310545072020871902788550670940055127659913870439284313235567051943535067297779833501987779996814343663988070994490741475617580320612128969019516801715222141673658363888781045347953929633510379475466851087096266061364024887524899107071081703345428277403390970017922810087751638897464815975796406906999616610451121229280922263259042697508626152373446975481733591890339641069346364815211506327275356238564755657008743014918244510646487296677940554811524717563911890229457656720580164867218267054051534299945421036454484781684166587490498252833930715384081141747595112995737765197701502343889718203871654922703360515973805971369714843045969023165413477328867035505984370930590539982425749358491086999080027095789363578822080174727004776929603419101835144980614101649716979764113098561609435657904882826769640395098687645565224576487056584136741008592407637290220733132031838873227190943156584544749205807771073227815215527828262352678465661362666018076730689153277442694608697786832116927867690899955341395090373134959021352286152614207932450358004491245189535824423948579295542412889885772834056343859757326486304923688097659108682489836052941271691833181077741984876755785418836104133200049933642101139018856645107163467432233036744722221004937113596313999271019436061382849665301759123625528861306549402149472500665680176987222049513460605558942831188187709082490956666338103828249781005872626432433530198183241179445749460854094774348680964985933311326738671643037406528465993070827055336788599128295773663818714119294530638096479449757130274523482018267826960682443853240287067453992119274827029783112037925813761140140302578109796439819263276297494982469015019290254928731527196250118021029339163555564998047676622076642248995144451423415127697797124574544542320239913673901425417412473142489360528545497169339375816106581954425660228299419339256261487496642833973014170596031138164755412018373455651396108940156879383398205525278546614477044005608579406032037114474814251847467314466222564766432348943884145471784487103829976074032651767546517982057724365927052336173461627174467392292302370852697019241861418794676282146038802155499669298614062204328314760922917476101598916419543981679160407327122571527119782714913963081512083679860713866980866577776982594418564759901011116356431491736809791652347342914088106823853213237740626111989508311118462755618817057488179606707993348185887661223151817244849240552100194400831495488448570436781490034055510476367916980177612567241550429828022954924969503391517997043887689135964353192095305808577363460596961360952253586699413335887600965462026576742250645615874028630932993964645791024529991451334935657015687245403415863191879738705411841127170299385408627593203779814407585396809648734891538991701638476527145062275373827757992584967562004344109504040810443023680884731505071360837138694541097250290598492438364640095703356770817558503621446959981072912048843454083712789377572847872220402182941744864831468732786230965508511938336914031171025602254336528438463021741732527127248610288360927531550059458049624198187158085517067239353013287353068530792317405328519358821452392156632536558613403433275007132337386461742756827788111667176915380435323766732560193102921787074724855944556610380653984193180891499613788868691253761839655780250705012473902893087893211628963478832262753383080321402525444172337229443824019503207439230118696049905408251972136600971159378980421634598549920806070611800922149304109321109460655829248639359046487151478782433743256510680641172710360621491453011937594868765650847669731416270528336926358041320011310632797341511060825674998355048964997589950127797647255224490390199165786915859418385557199174263387344136091503886282825363219242199345853714753906822573304196637556644451655909674333392110430345086151818937468651312926230618556409924594077408360030863210220050910028461824500343003136616156028423733632082763125539189553388349990242662104694859045405890050159573846080255187582911676715718943207793594747368024539542456023311816864694106109709256582733021691028086917887582383461217213156451413450038727633087313174584320321304089182655121919182092476070959657430693534513229201128994441828211572292440773931184711397560561083228120304611962276279266628774062142076586748714949121452029979977539317988749831475928251818288747285779187670235807891501938853990490077643711381179504778312911812426918098004381497425263321437222069367379184654812348746539428483568608244049316627999331134142746518496269474550061160290851847714578895521109388699342101030859463172197226370923809259761626982259994377350337622930385687334936414776388625311528106164344738934425641118018091922670119754430789422032033097538726221452769021634244760398664776376304811822928774248787374712221324377882349271735486221686137891614944602777472747770667206170294075802241583782804456048352591797639512788468842542092092675101315258895536769810350948339363923308233774698383984203170951128779020793043974962034226884119950027319820958051360719188349086618744953615458513411070404792950684758354796402894983755394435649267491409259696698382894219586379903218238630239960593759378822270705503979939134690537538175465177452077895107389235961323036890332024271157008433393602378661187094185787729477805634888521052070561939069208595562781620834004850498060370915127634076153559689311679607645492089131664024766751891295984889478193421216667850918254330161298751416123004457133013129677531058691660584973786813662728049510169188148756098391171657175511207606076924975639863841568138714391918778262141364110627642626774508758711993224601190034532871342184765279512161782815477767458710925732576223727768651471427662445471800011160284152566284640488096793303333329529496522559880383784258447083731358647645843723993720814550299584397790424854044941380019749453005262006435442955197357618670063976398862052972780228003436345091876278967412577731588246949276226614527927358796128977152368852558486142555220474512528401524913352879152157462588176569955425199695368191305243550713105660233840841659786417649052008847149847898465447988988197887868570106971920855173600242195488134951055899969420882490243154703590567626823233687529618836480071622733137589451891531101336887053744909776599337261561263011274565925426252743138673916196368731931748706189576744363327052086254006543524921692644836530305707035187554994046749713308311949195330616212330389188580997201565983153551567274746479080172288623888538527882186832683786236940128223426483669633173435636479449750849398754041607815496520708776773942541805275031905165625631834116825014692597976386111475289395063297132385718883732999169941006363653855363611213603895693710899526799820832173021228317477261769932568796564669186933611825341486862910248930702681780311081471181226743201248814111921128102301790318811788857623864866934511154193044699678851266140032332642954849917281437107621246181447768214476270877268824452770496043290132895220205550133210735222967889311367265369511416710535562345567539076596726602779169482930079697921339982350440357465214068980649510630785220150849833489505644821369845479757978419987485054913152290298269981721657968339093724732032600647758843704137092096856633954640270333801296615838223296913312513925707142255007004452040878279761414434643190443550849606346819885111113333621089805612450263557519130205298950558572831436411659927847288710575381152591473509800052843348952750668513242485260960061663131904676444256962456411740678620927734229004700888271477148091213775973226139640920760161525975932974302135656690478214203402583714862518817066646865378379512325134548045707259613259820693084547449255979364418675849666998832800856256832160393682033666909208616317492626925019960254115086013211628352592154504255188756310780445098817958541106589108581104958244208160631347713650829088207977752680760987682360410206455984404830851041690733903702254449461345931417978951293313961016437020900817166257264123938296557411131209167208678139722237409279268608257119926151564368239329082116401814251391351636131411102743999574748727985341352848663161879101046450718951570631443504237812686372889123196084426596927065723753216417198824464422451171056794863353547646193136935358095914241659812239537106017740388396629373959423932463036529132759903498347582020213543979825784844494808567411455837529035545532118039456856552663171428676711399913940010909901112678625629684334717701576358311459663022502759776724390555714654417125242354710582688051764563391602389535335043082306044896618410543160423849325125029508946281937265436408816883513803393243833281883941840903406212997167316335927836552449389008061167259114518960796669835115968604320992496633923085875158632250364939876785504151408875643965127326554383155643006391950903255743099544648054874756594835144683351869628966446391526560062366965064334870337767460953140097388637742573010067609877489675972254305789002364347496478310043614362621362081832524244603208470555428652952211152397481909727481611853052979936553027087195990787571176249255236002905106277285157069137921251863728122873192223801618274878674616480821517128549148579000074757627140750451015761078748948911587793165908893170908833987840798757930199117252003228041447500479775962156711199843447428396918950164718470147629683944759160977212568998748908906635841739590947209654294174548124663765553274691728574876970380427078355492399354266289082930962754812266261279397928703892167700738077276148229418531853466388343128541725706983676304189818140751793153084598573990903715820591483158115632507363428170040077903446251984431656881089479049506062013333282657538107753833451766001988204364644532102310296801105315832385005163999367754579280104819379330632315236474824673965168796279002630611402146196835367492310530331182923954974445722349871897748936382010276632350246741559973773545773665619202868037303039490909484636771317044033551940023326322491158263842065825932367919040298390158979436337880791408861189833432279756499567254980573256130284455482743481577565122398846887840031872517322271478513691524754523087907120496424338654685525005653590388158598337853026309953760297443224603921968173022845716517836988499650167463002605817228101366768492602630969315548542189634020513431294772317545720246787342330173062221038079790994129741047117958393197212298252940379956086113582976466114272153020183215801280879253428802633210677037056812999823777866430582022062865737110848447846425864921178614089800885565173414362141838343866408010334974113544680017874323179523317658048931465800049719600935877395402639657894634469050867328904046215601574202249292263731664827901791641631567494457685732052949693915091713643057423875066601856675337459266568073969216891185929937657977140721588143813424323250554897516949374822355326546161111690310989372338253468488005305865573499886203610534614366595760252712344665875276843592254295150787946372628137245183609174165306257705035034388965284354747525783147381576425972596440208586426937295827035475918837789283319426411534876738659549400159318857493706766113490714839209222225591448863320485476522187149970390654343135658629874604701016694772231705368312065887592830133207044794467187723360123119301958015582207405140446557953525279277325063432523251359728261725169639433225113103748511738678636074598430015596393161624435165304447002526389728680305657258147036859961910491695476726059829596262447814968420045209806128836995038297452180597686900251983208864264340253268407901870125253253013823200953048656262951193939016339886842005274287155051365511933350895833132079626931247663059029263288349102700565452841643543405203419333209692981842946657039684996962678542064066788924574684772644074547335937477413507551306110634765728313300915130818611815860531617602641333714365939579744835918351408691254556760862932841567032148609132224270870356104030592441327966735104741527192565347388167379183267627000536857395303064860121411448595218557559259639563399402780985620858035057922081332493393336734972078040717304624695432100249770575644891334324155743567551749404425697958112652625248894577293756868105499864364938608732342168412412991124116252292359502813799564966684110951981787154170915541463009556275921859744315449377054644309848931835575417070733809624261312936009363008342294936028829147697839713956578524706390133555670345828847119705372216333702515445642722528960576376920974669256838681236740305862194056618805850425770078933864651481077359773222695620846169541144271295045571447849127265100876085771515288728596474662054796213289373047468230269358657351562768280743642677618221104583083141260879572142897820678549915158530080719967503487802875022141699093342666867814978221472894127097621895167310816407975830466874232773347714317633093425847994657172623849509006384522271535589605561940448529551679850610288919021825912420443851328235671137886891353714481763810049024592258023382930124046755738236252751517152038341010474474913128496880326973616724535435760865672930216546020760645632348015687865203377971966098575023161987190918116460182569352888412129666350369482218880751537167161430649207642098706394324535925004948228991477939374644617285630069547619621881987738123912126305379224449951055742994897024322120831935029722301082103130986307191400162245375583519730589540350910288861301084502134506810740332139691466915973357446128103162927463817734209231087557958867008431310964036693131748843516552569163403428936012688552326712788692242514656761587345928162097832984754100187992955808772880928354254657077582757963843788237920392105615941881774825622656888809994257504674650251483866636297763759361196875481694260139406256650212405844460133489340447333216552432879070838415238747440491930775532873297276640600184344535535723670258479007304693868943800515571325498054005938780684650701778777307610818333336613823863446780896374749559453154953087576496636166480353525623729211010051768940099278611233940247008355253605866414963726408572897243889595638695656675655193592482663933363386644574603039093310299623395577523015584226686393570314663379508766733741724646476703849795157667987795152894113342916010500494773104034534389745362172293490790344009764543364376904510704103524707072558116472381283214200292053557802393081949455612753832483904253707473421465552757016900211566626005302065691055550620172503082281469874025361517788964818658842528411250678979014925451023967984913660794620651490134570472392819795818524676487404047186608756600491157440939699619529273734246003610031179859075300605571711866109571623258012390894113874775808753361756327861783860716748268370774026151322478986889761069226210318453880099320295365144278165443602073457809525544253474842792773154479584937992407800628418317541283487651399390367114154690396027869593316823671950333545027365296235454243927649601122468921909920452447308123313303858779880857917504446927307158011569233796573048740424174993792117004380990644259945361147002572623851213656999849754714744474038538117268114436687043690862351079246694287623558041199359663049401594420520551943844526454422536943479987423573995804528144764108326842883908312168808408845248126677151767843386126257029008186938895300298323651780992256405385115427469487628905836015652379205423912580852239899506277084600909819248655593673100208997005168619643617994303102954716974080067567891579119064470281798279248034936963910773710753275676615231597809494688533270876092316672380285316221593744074699310672981544562816255443895751107596840288507608011038879976114571737184884484639614334594257752912706869257436730502829314032181182262132494349969451986922344872715235344149244083133798877839553081368160488413087525839345541868429864700870781327550966755577612401640755472601868975538708902634077335948000915591475071009856341358850097487626921346086693378482963001656051546254793758322241934627297298361106798657153415913767481316446300463398021981877815395083641648844399045686313013324671915308868406236262895517873181046704536950316308749735158532737480427126866332787203882121363958171096624081231948142518231559059182360020891858627554306590107776545671050720875707794834828671020456169803124712517506992888625146837934099083290326661916795265433070183294999782707644903149300876015347587628552382732347275326045849901545796569133836877511431662467444873952667617697972932570629809241986035462716987403998269837870264904432401827768762101691509298354877757439238235268562544019793948134881927332121054847592927901444733877251889508301502898651293574755714373532681816558920712550374021431678717767299404364263803360864372242057669412301348077148884788681498672472073481800883199681138794076723779141000314565666488927151518514087914537322720117813567601680780458593009396144913829103391277439328820153670980728108914519937367722915407593163049167584694382923125000514163851284273648861242208797030950307557793170233226618207827591519397670300632093984572554534239016714172553588358656151204910762663699146846604132906705076849226423949619739512785283527672912241819263727646118672457028339012705288005758387041143370495516864169317826965196307775486557428007978524263003650251555507334246224742246621134189526171918292590795396238749889574523244831495800320824035954151860404116386708572752772654405519830308384060523044241391480292183418302990692099688694490394885803131437245783936593682369416309115872668319562129737141017283298798382573540946566044331889483793566141830972509175657342140753366959071419471666252107766203314894522700087978633985123740551075672339128512825268465853080976027794089099445510928104536924011538499663439465843627202394261103372022099356253503703397292418859747969885441675660167496131939930902780854624685736174648518001126297736278340710122998607088963221768744066872455856746911662827224284852510394888137015733287656431752241246784394777210718542259781193996966115483258157075789336523380627740335084198566004436492290341984894474778186105542685329653515235983358703043312823271465010538575780302111891539970522035747261756076757900496634551654217041497756381984808804827879933081574335631507489156436778525569661518776716719476663432762696857780124797295853981476445097612881625082554263354633520272423253568986015497233216109631170444486521060476823964593574795653083396298345445072467472331639395443423618365904961292230276778112835961648919173956420220866487398312426584927579172828033282687975950830989055351495120097571282278012823097865774413351118289771022681767508831212810648830388785684406943453408365260766078257108603370152996985999560667600333310810262515101321694168669072274344577889015670692292006872392563495818779517475609190225685567356804458249654385474502893194579666813355966444522804112530092642714822943170529860654081339481481703438812949013678816291057478037948432778685674338229235835168633902640104695809239524508062892023924124970021236173515725358008708920022869778302898972200736187680779399718087002108183925005934468226713110458806045123535543279460376373375959665132828324236073461488911576643269254610452741062449975178414127168744441334702746344554914477035507547257750072170057081322800851951069691432520032171056104373563328787040863465230273532621302360168069060194562959308758768625836495200264428782444142285573850382509826711642067284595655771267732263764985574535855462920052259475690598408733467008234027936629790328202637156826552919417339246707268864470986405306796138589425201768889716310445663770471161971399114142507412106980944466211562507060714031907046385001854946193325445921281491280264267713454455530344376423633377498219467501285541428629655452875827448397241119891983615048440469154462143124448671093108012265643080515983983605540811845414584241737652034460159622295674390977635623307434294394732943153989889391990377150929701462629320394145313013041083908579766603570152900051452876492790846304651538785193964131841862659753406161213115041158995111969280254248688716353541440922007781934688338456775408935734662580066338802705289832513653571730960247535338734437286780336841317399938435763729967216902201553467082505221004384912232215302429767061956953680189753845894257628302417718610661760597805988382220960200284191662016439407602865749576620377609247535513545069679249637605960143971210077034310956448138978786130336068585730881401642701054973334108835981944296436389519402550101476045927854081786451538931466207619196324268578322663936510823045383700120518191453686270506354680421775224081385839940501864462920727783508899591857303830182684549218550986076500617163485951319187739428444025113351443605049078121966131894609062800703692964330338136136758966194393292664502697923235001782842116102319242315671220598767548708548224919539468857164159337416514815082958427790274409718232710993769634488072308125465509971201405051540412070975616364602798786101807282249204196927011411476116580015118499404966552701484548943452028811601495240664938297110097630218195726772614726935533774758951469741304999901548187099671881473784913414917521748380001389375267423964292029763649326737602186929652841863417479099870343858407076606542426796645059465289202851361787887844308184477025848603535469398324610635225786193065651247132536356683252316011308612205436419339878848658649084818523951493792602490842309710204855540626322574380792703742547960185035519921292496453396360235924012483317878249508375356675326354705166074222918432473741311938566051044126462403974209427932871815189602310597149130502562099275144962480849767764643098714846582443467569588417403468277905030522797627289367917748500442877981979229153159030888718076916920418561969682342102332380565254135284809618913810448010794055884849291412414891593762538432811102166939346307193752822283576593995860888533872961065524144133360261363566884535054010968249024545251954597480374241846739795097347270530489007025482322703171974389347498412262838240615233397562037863466264244748936949454512281734806772885930134262417639899232470915308125460194148415157974040545448038116882571099764510099552627047064880542240458554772663221181135444172361669206252720615468718058283210591817010268044926146801134947163184279571513333029061009113967318182897790322934663857504777830334654190272330887369759504253171233196881544255766995082576261256057647202350614497126325996703920723748349707464173173860007755709085890877679020808132188088942886110478233091732263569212513843256275628853806099557012203383556852231807777007622415342959316596985865837139264704048970528354197290978747963613349959539079289292439632690921630559448836958184425361008772627204425074687197610098146610453596298199288733871241742359292617925237729457608197497546225201872802135283439814468380104525547466601547756651275227852866629186083403864969937245412139398023453632063880010015382188024873750509994178554829665604061925017684896046943124985930503196789966208401551162817271886573181280049470724806441819459907202633249001635961785880091218772083259438420466086695299718846867989677285246767839829866384466819048817574770576223835258134413950287062705637460794350401088000381275091712411458180877754259054291880650416903456559074597269464664276618331299785920840647305819279895005573503188829418174496981327769524724458105448979872034881089847562406693885612172868973541703478196750736663093911639725602989569569008475816384398383595652679237098413619728004911684885511884591993816289826445625575093932051167142739553961934593288259746495451049798676829894175744193512533118017504543092089666998660440445299527729102172777778043585213694835476505391138022353594155049379405246594870580874952541692308512757489478049548035751061512929674421311255879646242231796938027170237843072372916215868988687603978587225504525103565913471022519645662112505417226443352487581466620213528796810347051453905164849038253276108275995797510111706856786271156346794020815938309043540930953445533953722444147810222484932264505257390412346779730611689886955203568882236434075103810961810349196616015529284205926937503538446928283029836713554047780025290591935378919028720663043505635093115639069127498740169138835484428229971249616709881861617898559964414097117884498726984861914852457053725602857036952379444513533961450647055629096878303212405120027250985507505803411695118384340008863247360792882328875967621077675821930012369329246977262373378642524746073452622189569908608558693115430250360589760754737520985940352730471582305839072561963192382035839310516581548881224723362813032520545666623976533949679521642264838597998255188131790479921162931519965034390059435090408102872921632712222439028465472345634755656884590335822470189427457440438362103054492330087641820506944105110367324655039166589957510680375395400322018165020107005619575398984878731336511773481888890822355432397710204844878420932888344509388701233584648879904084727496623771022387758122064986262311355200064683552023244769020705927869267931192581509142773864622198220681738381150945668374903563650817388084909381601667900115465625162319950203490974137346809878344697896923880116868042231208483042849529622189491200110424935888293293684254347243646115883227631187497512475556025214676483686503872306792975176762456581880003447292189052583474585785880950589009557430478136972296347689097349356414225676416591065998293463566724607678255031204289179957955793524110144927097540642360037689721909228596117795421135433919133057800270819934023815409476030153682847246692885060172737664238979070788177704169987832108683226466360733176118706360205936199615814627746034930047374671965828754990442662909265902926164323235117914207312484194442130396889795096180964340020160982852899012476008706203702918923186887586975689685047554813325932850136193080884650253594600132413299252574355461158895951503340947221664207000235756805539042364582404795629476000879659979997198007578680833163916209281312291782990555979608022291537836195111725220025341781406537678423080855637814751575601487386316519338081151101922604961051617980286002993769821347891142092896064318474141312936289852893980645304457827656170334096777488365496782717260165560062966391842873153840094840041560650885879655260039869054903261980118202746141015488118199505968444926927833412213147242466418238962544196193397334117270285802178950029407391066487447429959118525056136062719421551806819405465411709171504693040018288285317848421557948548560584710121888925441433482682173880410781146782881184272547306282821666064240207306940817547489514610098791465503981919259040867981575600390388170721092584397123606529418183943758156602146103723150244368822898577916189494545481238260927460646993823270909511587390595858099794886386459519343825017406047599682071186638914546268191123672009775584681436197491823895381852559185618151650203074459087186472642880361957191023830086154000857953071355880349685893997791891832910335711077049935003540770800340324768540972545519448428505966405493268407001691440693371530384260593553767213669448296691111299008880493901647099817506992328738631566324228063324281607932614619517824285589544634224066888634304316019519201997577481783897697660854091585693202381247644653156350112578685205490832947647780538846002046352596185996456635587355339075065449228055370239245072227748429176030876316053992375567168651059587555750364876856276366656290172589305779877269625456118983688951636199575625850741105209760870961017030123697120156789841286089214977307766795830014720754120381051683296081313496847370270922231024539851144880379504525977107569143390347352155082847869539241948242600704258815550737996097501224031322419984531709862001255288782786778823389483093814479507468248397257244933077527324463838506335474313976332104860374937907073532381612029637839280364358891083261349447673868891061674259297850293812009025250875096902840628429641813810314648492493553199817136071502368829507936869170206218664320509453106683358850611422147642808360247914448319419297930097129450958504700616313670106877495269274922879100034684889935280950746940158172667620058955187639251172075378735879634304161649298734980561163005929476084294855493985877670672380898140148787668423029952855521140120299437392651526887545284943431273705953651169995962628754191976587753662527701158462004397604578123396208796196918610404768998920869121431712508454171197073782029164781541574024580878342668020299283214103380488415479723026561331051383630355773580403342773801209206932301071110183229578826483800410320581356086430200039135873226580231334323293927243973133489696731720795104281062264217993725551406178207724211506809659147993177559769884018650667026010286276724041298156880774941093993001069222610295466330423161602294035667698865068344145544718045590304976245774207921979635432031549833524679938342935797896544163531549361870675376165026456324147639958430798311547788160312759794411307365948756427725245294480754993872344284630766124328824264643045971546819739299884253537386263347926743804740411550738491857442189215126636089430835201861157168879390669824159478905209168414513741615044048508752917418389515144939053922650050843773912032809941841269183618432915730403337560326829580637402265411876906501552647505570891547414774508091738264303856424011960448911970866185754117547467617445606976008955955019529610701057972420137259095740826952490838686438739445298273171289723485795301453881853962327534599956295247693330521897891156008555423902530716856316732273210030245625178192515125346941040206561879014591447415883161062176997588499047051582823003904956104878276844343512823139047758651216323235307623877087875767344753831043297005624355165984816285512676426429917301477911773089193670234811267051833754560033298822614030345802663985795211853400739624778142097645156610197070818929692767025824890572991859980171825497583692444901159247983221302379598063253817656388044237049572975256971690067239728027298668023469610967843331285047527913007299704953121975198497351494328584405704544454065374187299795474416324245430836571644219647693967182974154035999455473259260686293045082918622278503525729999222542790829370094140922249456135012326246910021139832713970486489655231840718232006259222081845154249165125409154483754776369968930029748184332246693869650847384317383760611976127107173249758323578089971868799729256704970397488315525348752689938101058220621062761431452580787450165495839398359946485233800196659892583667453554990173194140825262512032138678351727235753481747667819543600476683097444526901636363508643285672514226264932176103079053377480166009772008668085792008746891274651462711741133547922261313624649216717961770303025724748770884947612759578668424190003649038368372593293001085235980662735151995161837683837500090771523723179276113645321767507629695578532356374984957528665282124713443778930492804815706450187408803353335571508312690477215909269261514477021557249072825776759053735203920770773583900515638016398686338232014929388627303104348991156743516565444139189131605855649822079383849956522629830182939116847286260641631622089479562529906500888068116667806461786827564163843509874544858570189836770762906819846847622491068705868219460580335989857264192497963677456067607307895223567772312477335221985969561201193373096574144805401349431744941257063832690502571802731977081876536995669251905601953592947959730843798904700973296422632760398885216227591785332988566196711418289817450809396556466015632146293325173862219858191533776219001625099698434324325116364658283079947558024004853818555149573062689954039989417067677104339861770590281524995063433069709429646874065878460354845459375551100347034841731788941765008516956887699731826031646076035477307291104228726953783594499203494553917474000313547081001870676648857098243128381837722850988658841485377232666400984842677606008649789302273597647417739726770834059595084303056982435758323961495745118702929523953505837422593239389521610699557391247682905194421996959156065536852174271722521564295084379626545499462443230105386430480203632845453597539330952660816271257244707439529252006788016760705561092530746983054002889684760408111828726299262927912649024728137376018596512838440506789737933310883744375402570418351912714602124273962997988525840134336223657516602088321902749971572911393479912228575292119038380570494581655860050553578951746331790352338154442406705961867955857746123806762533311232925805048298005162200275696838124291826396895219874868247331196790613942762972466209858380405964154398130974742968417234538740460778501067226304351274404632916486816898733924022589526616771356004306606027867085630364054461798716528960031234023166195598578856873044173969196936703635885252914559623398485807710536180985430022220016741800218062471090256377535833015044740281776709833216798488046707739000735664531404149386556823363226676881087122962213863655603569201154427252167968983715748490461720233258090210717956109653083246705610236789293689929841097199217510313568089657977684592713692898791021007155539251249695821002544467040312403036134741780205617731029894409539540799996803449951477883913159826694374962142992583222275640341559133764565032159899280075602706580095458569123016834700323656392249932703169920131337108361119636265178031931890219208837421709251488179557872001750145184010716435811237357887470851095181682114511400483265337164977521168292253641074148100782924764629266287612237524454140680909098945400880820088245439563775676542750924597819359616963928369085474255633000809124231499643590955843545668525368394236541218275385531083807970633361587149024553106424898896902149273788280808680728202114836157142574799115078770652280334750425196687956622260066005678018294657224790019819955174983117909510797381758708820405701358556336611634938143845452416220137535139754313435552514459606656656781633813755561775802941942834528501407843032968325625518049095210873709989781354473287341271714750534997268728187471137139035784460952288378597880647029625725746902938398861970969736214092948460725940159560882189553386435653007861576014419831095703378952316350508125227589350797798723443698476249134549116566617682834949390183983719992815062919087621336529436519963595910283305888235357420429550979410274696920463783338355800952152207285594434015367984952820457492115937707244699027400466408411825356550919348129486524111564786475150926625587980703955264129572798373670596047663996559405153527409879188261910235905527069359997140514062929552638990867152127684368020518527165467447147573885764321264755808100180958651913398304818412112482681672597017516224909917120522951666065561480213822426813323747466861906246659510563865454186609674110559311281486677063747466782421652041070251086733924399306997012281596816976457762497521083726776402375628621823281279687012360576026890052334732479220412750400190760481711011546328699955105970761711278706544462718598739546694458140131437181702830314822040454988237163272914305887304909339089803825852034742170243044500140375958860835682065003785770353971564671270667707111634156720365506586245671125321220533519376515209172622829245352096966016272896314588561205549578723883722554444916124358678005015952676889949184970017366573588483819924963941676736045319026284740126938675852319478991867102814780984043332203459623496401566628035720956876641835777144886663967100241876183443707236441753084735107017970100914821704566888543523163694149480978042289574657101950280406215001282313959440596101802319774226297439474039648283855421989200224222938234867453479012787248621347735296915416679202111627800111721144842750765595728336072930248703626907429463978575784993545329339062108205414056471788831968530294605968056828197301192791361205970666887839052456877702485123119026867504780515701511243055828517029022606134554436860525273766824242281253710170802124708584721108282855126379854716022948653299825807006817747057119159718857774106911013381503925765966896412350388956736999336754841949836536948384242657189146453765755420092941899612832000538641055944143544766219701518973769624945382040782721664490378580065451827946005997470824223133038445827027461432641621202215343925260597002051777561124388161013740552868179343129751799473067973373111335663489833865853338085686399332952843503109420507034509662548373593651585854308281968023663215385847899520866586074697791103209250298752055831178844098805817248957881106573592472428674997913223041403352984652793407479594353343999643259186489808960196363899491367058288336399795264248326634295739495775224367086001619760257773224788405851265445535325172732759304466260288713155667551195882960453675007336094585847441515195139448106167136240977204925275127649728239974919587884097510711845563348613402799142101695447716008832288689367242978534008810115813449537060868473156965864749521541869795823173239871649032651811693625011441751523131098229301242920053608737799130832593383413736110054425595649640724537151863186613533736838555499094129681859227147273416760859013849885058604143009129629103304648614400847469809628104150581786791434802115828799757914441540842047600661400897246092871231585407619578265872681940676826373185637527795018466390995358921966252971152356541597854803052322769086136601606543253997795064557553232992918140764108579330082853754828525157343050194303880712911878566444535890151733599822460228767123374206901988865048488688272178060983997889791997947937524988735478537029047703101349536104644083628325485184572610262753691415678452871786236437006376413485145732162267588491294452447555636702814460718359971566674612488654282097829265244428274307928202341048305895809983390068057505826985738570113138253857943090212153045944148586174029921550841462342799679296762392817217441296716664351319179294754820477618363424774265934961428690454250964833240097651621018505015678223910621188682159981998191325370152266421861821299379081267277259646189650283964298035557242541162342725081124776538511225574069031967967527570024001430868535167249706795845874380696014693486522067566473360055339815226659681375094283752971876168141131082739259021579085271191129776815663197926997215341608747276206333855058488590504868248915437867205811642094298028788877566635130234143421627762689716738160992790303159999827368782095347522463317786434777515364215800731916443426989564040425270749071990663657984110112100204569229474293142693738142617254863185051200547198954811562255586240617697007783742237146588723351269688190526318957875960425552587475984627556699806559719654488818792250340988180129887006989920492018350276813114856888769331647371705757507112582326103035900845724034115228994454359055908208966213590276991202134832874738929156175839682629746722360577709566469109360662386402191393567816578421947320023543770347695014365398009555470065682984512268749368175075632560579741750728185450763733905415760892227061794531048076777805472480039413371687788668840294025425512191623580921858638143597106924147580403022542171317894392113756777043463068503652990947051947981813737882591979456352836551895166808142113393153731658136539679287140423433611237818536265657128376615012996381668345920446468686009708771343225876120406284135005899833524860089313222253684197765875432248219551224103054486893344216235773871381291811742665679123796755522674709151005367237599885127466640610785199365071282339633842024778493103751627823634596385499009050272642714181281528749403446792429769225532809770927089879089981470713125921219921834880856056536823687504050656437067040944704534973718802562819790578413731777196205585663083584394954188333093489997328807075818092801925683906668033056636743488476833177774841027300210211067928131872849779616055381056679100526527134251713049865097913920053070979339052506732894549732293627306259622473791064854889278467383786268795208733214450990046591667232336875368853825296655838805105702433929274926045016996891213773071764405149625271659383221102192057156975853709894022233787851428822580098704312311083778866483369237827304465640976109880811541713742197726232169309347534900033234616873169148036145576700782105996280035973534383368773181996246051325864834571896297101843643515517886588128520041625249584131913978772353247085970980647705883596088461381387109850346462243272489185362716290383226711377140547445673215913148253434915461077734688379592993099560412301034378817384860283574213027492901258523653372865334080116318537528016430934769923558380399509027810439016756471702141078116980519332198950437593632072763738309417126264744843898913838268374569878550195749337928384903025795735572432295595020244810415709222875000383460089993226881918067594427421104433986433887321035393397878665709790318535224906931287913411759795219365821924747447979773390272943626609975413956008738555322927835002479383789409381226240410971774707724871152505446185070895866626157296799170868959457707657920609292842136782537005689714947206695858651551119479873589564919761231410947119140846472974418883169919760765419117768404084659382245670734938490558372269887148888607865914999637820583792753416313949403668345379909330508557946542772130033598114840314908962221936260948845322382515837349350155827721012707660543067484068945277009462983159470569691919566659037250000141736295187218508925549646371687600846500588741494220174694389891399358811477923627152023397789009845675361700204446960779037983682997224228561750869794078720584045823323222436515204299795490556426731662939970802094213946131789307377166892771455956468044607631831087260669595464014286780659811277195866193565433123440408005850782678199912879384968318780122203872779205297541859302485750964624871439939018420698882677613128812883274964229289823629525236406612259576452523602282561077320971768141154695120710040490107214977950297267908479159132889892632142451636098382381966489102630801670176554605739851544438547877036413861251424417220101715686090121262925368771296144309757383655591323764320878832650116523471082778245979542979067942083332755948244116130659693679870959165361794515460344900720244604092452364120399909085151846726192618824203006308028715454510640440529077721313955883162593996212455547905579955546270536658729198127451253032638760981110542559996135103134390450130348397744938302196777409975803372815648056370085796956711455889574879607470190231042813487013550947707030627778888749792660870842870808628480579810322804458379054486413263977888552848745384969305622720735316602478153952009014981879362069208628216855471740783115065435781546608798846584462741273918574765560133091894182232809139413365641899535269200050675592856117613911399518159021966178536512823679790083523510954803951569414243654917566671451870040614523728625770213156027496540895367235550828547839538913496559079514978181516758882197171140966807209465258519585657724695445208218961551849294519773540348009330370005769484278675409664822022358114952654112792894880441564746740128956112446660347220093655531482965072875319306259250753354379303717627022551377818730734750436896623545852053605418239885780850914040190648814256849588056187800869665041062731290258551519916996333678738703182374892483332490414941228546809442336141125043305248124927413748645135629827449349097125582402238123852795795109000186391780845989813368565513297966493134393206564039288288151865967842341019691716365532502512341348404787626648861509224464067514198958257642779891557185823301269985928270299581708549052611203668401627738867624105131247724228524221262948823737016667719358974940445548860073879826902960272237922825910063977842794112336920529549177009470546322505068432857866302305118209836829331378220520969638234325938136144747286248282539686515360113733525771260983947662816380526684754302195986025731329729406181951203354217171083987432973823272023259938014895966748653252073700606344097483161782260425123352638206006078415415618319421399963353402790296697191387258633214284861888999744754938926945723497529883757919778318791419640909243050189300728094604497694811045764030902916764252756917637633177815941980417257301895548224414971185626130855301241867084479475650663368578458626840996541195658681424055658429575036805577293983176989626663763049019247084902543252595567189212534117014959569322502010128614425462961452548583750666575979988680487127756665406851404927764922895435661751282153796494578802012887669891810822349507487255362899184186983306421161035225916443363786752796592088666755097238661176259572199083069356645682154896195970028266566946855397198991609821054648938983377834279896949438970150775558061687798701951905314552004934076445692897558241056075804880763702278537599624485618350109577671094007349606773576237647918885091552621688740178623077984662536042562903916274267119524114861815696742842553435978181536115854906662284612657365689818653391039166962871538544428369568860994975532051368138394570242907575492797856328376756018086222199780713310069738048052599906559207701596519375655176230332182023388908225406465769082659935529768998059983412711253910501019910364560242435356033353462965877585853974261417127311759439230728784429575746724970409577885991614156673514475730823157824791687916635706357706008743793680619945826970004740274202063599188608000228298327334618829543095673356025396377349299633293381133317198000527203881800417322864438486777675108309077828962047084929179444130115623874225049321036830928835493771155321271130794054468959028031041679920468869178556099998290528470081553705906448282098877575233730593009939606824719670594061851619010141048720790571063567162150891658989376956494402332204689248868334115851043340315584614272038085953052087938801395643518606066085773091724328539021057220938369109163474554000002865458768332354783221747238409449223255420627971496982383189076236192719891370413983856547848471391872084889926817454835068223989756489344923795498582264679038926491619519420257744621911891387156388966038404281022063629444395458640915232290043265824324329576683965832138386973812038340173301846740783090219854299233936763151273230289363832386863315166134614066706973231006906595735850990590926300300041926839937028012404753027932422977911318600390299537891118803030094550801481225081753249971348954027774143846588964675407764906458911796107722747581517039534569641123026717446401986161073024196129391291330652516341933878691976417480803951868711817256736437595578139246459286988249567610651580324252557958541853438946459855054739583124151086090375950712771192963146475073363757411615637142528574246263521453605849377095063541012195877360102922800576647388666408977340475131411821799602815171844355452271164107735505290252412029980542209568029187315791215206320069488948939854091612425719580957875701922678361631770444565639491408194386566493784806247253231119019499886458934690357255086082156506413387989244291600923908135819420139201252635143451598900129458081671982898107761793538530925341073630796780034379738742978514945363085705414671214566227980986604302295290168680569570721628654172316991877392063635814554452434511541548455500912511745389916083313486399265914312181582820821058244650861260946658291557465978012216350618513401270967291673185243910673229059200377448004599768466509149944868207032724172059565345566299401067419637729006103548408335257472272308481982969916604081189376168785639682208890468498487009001256965573363820590552939714857221645950177529822305337263643678832192237356661081814850258377521763422354482464338833742180048160509324443157396345657241227423158758583558627952794737592237527599997104234518199253399757628137376308615566353358527666562883834007468925737824988735393708184198906124326233925052470182941691350871784284634351155644977498562289693976120170510084741634487504371043274962275785909020062760194547080137937847773258661689184196540538130015867372723700594475139118801692235218172084090963773766295752097434844395129112004447983186763521285880405943914978240902550693166921235788580457857552308815998548271691930529167056994836710082723333785275925248182065430938998505605668230973597162633933119504797168531349152162730777597095728539476866174039218969696298349096215771718165645886235293162836927023044928927362873867588515345931725310108544796556545792024395233353998101759672106653669980700646913010265171396872404830026801248321954381161768046797565254450626970250472329492897219281658524714672506113717732719593161172175975601217282737949080311945867521190892780194648402393384129620055874743518260518276883888273621422201021491614589555588033463601817229470414588144211265273832957815159326694324564303117880380645642291531507849743055587940936567837829566712982816190233911247236246301922674388003307578275234131009421232678384560932540088738486768468436051884940898150710907570266048271598234015372193119964523423778750043563243147142096435029618396771376546238003320917298660647928344480226140701308964802395805204117297899758915683620250368786085044373345882885436999250339890886134788938396766199697965161206017271387356676272731995047709451773510281658824325803823212109392835927792611190681328518269836630467795935642577980181251306088908059041158789034099990755765850347730295483527539380077318397410233059133072391689742003853347634579358990193647244606372557118196394234724834799939974843201339717653347923512760870737270764020367028255269722687071210974058174128296545407691008114053315922153573168223605680375499872908750253471037385917102813135756638408490609697638386189445280659231406002194459561290279596847181431115774050310560534181759713777473990447270404312243249190693474070494842962005815443483475400475573505618995714852443760277715470055394994336983498971696176093955698197254352600654947704563509574827080391995856372218384781084198024776167028558047755470059667168342603754465426782228190839348258649941310160230158683449440846068572062874061099928608206750496427860038115873082322044497900962295702267787442341856803888233245907175608267649610382160088943408531055305328885744940446262394160471476033304022661172029537917456480117388413355678228463194358823514167900669771180805016176119089143761604442071387811626117563526463809786166400040260923039253234471704404287061448343421407345885152539423654558449405713859999000590441240543529983007823963041805439139520405671294366098732890470034032237999209381420769070485397212567311844262461881706209749367936414394358312601639976475607494125615942674717523377117711056597200178779161225873183825354903326114957376330177448997721975172603451120917802374997703977261329305081561858360333957161530556255020418701970847074884462653535629116547918120192431506111264129578695595454147961659837368105553442920391447981990821953321021819671055354386396574452110134985106943051386217170283750222640719291521148148802256941179373792257142786168868889268334060119685617050897754748488024820655546799120381303909906130223583017223427376889498360108888046015240346824804059031532972721034857088220427553638375195415616056194756341413713487511165873892322977147747306498097306010536562265724804904937724672545303598159964022564287817085194596071975680024364211859438136600319299112316479606479958866427824234563610855104737676094264154071005167432765666986245806863318968656121468622841265342684194233049539413156787474759343566051344344141901719619803274873175487999110225190189135353687535878209175958637424689758874617184660858315243512434137930917144408137795711143972032135272057698688387711819883126058376712826382292020727940545545921490664868739233088642555544654962361163638642209159800044660507676372914997974287475840134535650152371678216093865194010762143027854581040200838656317620319170411535847285742199470112206638039330446995034574936921872005739244399409115076642571770536741856611227062616184041864388315679188291613870787870060938356811440635373755332609702844655753614937943723608235581724423978425981350541776821044047434139081642111408632616760185449447495192812926753950720670337191134962363688642189257302069645421594543996891560346611956867739707652523253990988987867549975574009802721833755248242109460291452718644671176280545952663879450406226079307632006156711206094573461566587201884115649921667102639102321010759647816197182795925542597080336128660776559315002303633361725873406552226979435846348254306524562739428398276285184720007149802255651927226137738893787580196993944812718097142739172174100171149836045833643355794541933963623538994616206621382772568387100676385981174797720870308813346394958433698377853602200220171971606722590949859358560670556526211938058299189735292691478632302708451759810812100708219353485444844483021215199018088584559872070201513730079575921660784433666814047981875283667230653977136018952843383122363060851290329454925211431008881709958261317520085260158353171231887396251594401927313659283373929976404459225935659366268058189644715722779588446213135880740478162395461306004923266665736035815659321191500586771925517876413752510442574284430423046105362905255254330971482338113500355552922770909249255353704233177374403920140362184846895384812078124151456225032011591233815342970310533194246113422289665934243809519496751571789795200445364373072642507993002803682874790959207392871451237498017964383975928605255317159141481328199227220754896444956231886281198209447524723450708057103959357148003260418352073778434143695141370302437972443273416255165949009114052248223879293474320566724052910871450229783246241103276577223860085705923911091377730068421210443706826116952828583685455781247920855391105420737480495430129502300965199269112233830611171277667327107125528650830362038247308256691038976108100692827396529578860337112425907706677908555082429330654953101602746371537163252107692016812686664134920180359046552894908271326066026226183592428988567817826961871602936420036304292713421458394406509430453647303994362125395459764866273308310114063849048816387837252996587668252443149725331532498299614107653471089627323253514901058612701385639685158984598332477041027237915152328206390692133310018212938054330673599708596640887610505684951518955103511999409254154768295954492719601449062767730263503408384066115665967480214808525665616127341624044522283414874322661651508328103797757581374815533389238804634828288752730531485198086596830382571971901576542763061970469565993292675642614616619937937302665433308222832092339840553277799004449017670160525680850728373618895144020257570429468517383251963530653927657196162536546871994422428904523841223278959509393161105819513341595442587469259967086575152191775452854543692819399014739048431763184032359095784631758224406284496455123067555879538187413615301168853454412039324762805466674839494015913930082804571679999224411473255395789239418477203066541490212225533507015252940359705155611989025571008508887253707742344478846394785557598843079085425399561946929026787640346830629917293208282566276072786057234046619955092626403997555653005974050801105284665693817388583472736853368721320412744362406370819056175943894091484828625183036145355140130659149478450015230080713204633386068426172543823256984770684316872983996725461902125570403767350880176068632585913981642955625204575741738207204292981209384108606443466777551056718832026462484446032475421134519102361533345384068200228115449905236360981417353511575612448129454306618618919301991693505364637949867404199478714797512683998188687969446379155176415757555518205649016190990094569294332813300699253290809350706010696343632303102396278332033674241163663210487970035315102602251564354129834029585486157580344161664961205744943508165746561899528113096662227462037189261377285290099882064884514458610332991907240813416771748827279635758199259212450746806296619556212321288044836345204558754004168008381794450799275349928827596788256896128321322505903266950618606857365393036515122591555940871682231239232299033065080376831883748891096357633281025341320124923374397565357238846025304174137124840126097983143993273091937885178135047832703402104618603398983305434424689086791208416610429430960659574690371801580641256319605050589688545465988089343362331229150172016805819966556190674144058150259929440125176071558472567877249027422831375230654764294728415023942712575079198390788121300669328437907360317515094229980294033062175062061779378969513492719281956704200829710952590514635875910449718428245798012803651497005070161453667711193627399731075807043742239726492041857846111075709358090726445299829857774961593713778109603839606028058495566156030307212600521914899892221776331275578443249045946390841782107799347503819935197125603935868044535845747391124021882513847651279147167010239419857171782582640979517267129542288620322847012047033498869808977157241157716990146050871793580004309544238416196667704048680036361350752073412258303225416715947500843722541858791640529404710293514363238815177227534978212038157376753046880161651687546951050156772827290926521926813641245360489352667247914254399340103163678432230956508480520435595711996880566212832749745374846678633525275515469395726942556385266589787000396355411181175699447434047087348486209031513780856579659045577217708326330627749136694397060833352924305982949412433868806508032651331001073550370862007958013208334568418405608963404201224675437801310822691615402430033086694019090264505801907137854549902647375802407169378273462587378555859983646524702550765884991073647481999562993873119506041240557303510767162498591499227145114006315238297136669556061957742674515074851774181438461587564290120770420837932820630734192393641165587705972423675349790855721889178816895051585155278346510338274964860973604294778070113782166382562779309559541731557843349803783418273550425242172853587800477981235458475396344888460393783086299826383159400673955023271393599753312767300067968896971013526217349164322604113619054989702722353125499191147685436086123066230313631683177278032189798726994534436737156559266038422182048205284843739516333490691943166147671433711477130801635834415393949177746749808230766357788606178549724479126651305770128066862605421118935361649110078677871539081626975457946907015577176313194925036218324018902315308008846088812626866146796394487423686820714612206467467999537910415335694243029093873774268565315608504431916211988694562164349726619661108156602180895155078389546598612962668905174886757000346915310500850475244537903321108855403782999262633885830338354280633235653443382447634416722189148439129048054386933788155695239405974344541493907722805046087832920158897247594659739713956393648261662513131381515373205416519575679132010828550865391170739544692109821394366719784404120876546626801379763696573872377420641402917261002461841804232094366106920343661027506484077670321399923742346732550835531500149331209563867944631133621445269970771046145152173952985108658625742072924026570980646781275563011758494420103602816905335885755210992364489135966888623017289995756958353844299554203055078409949878934655049454180230486045135266275749314081230084278498051304738391068012595852002120768127034552784269748762534515476472815060496222205417701688061662261540633143007412428250394711281465270634680898754891043118953100839304545615019030326780126524655936129128181515055280454871270608180179687141426787032486548019395518155350003423243633723888361213732893605887974362712045957068293216665212351596203907534595461868170154499224093152970307766253232316054031097692639912377827244928017126862956937385991283078062407187088188840360750717460934025587313857350457562856196083846412993883209723416051299714029375170121739078839936955938765742249273284080875098686036266185985268097784277933461131697045430190303491385803015029181055337676476641112699043105151572878385356257024960710068829912287391477394422763221982304604171180374054554734185452284323533869778870017137700656655295250835426228365972104995030096715980763614039092728742576245599832920980965592943220546050952638484821928779158026426432379106556305760820834240393976748994371797640169263569944899546439873801886873677283613186230917504014765678986347461653337793660824942763939007100896916597559653579598499578155483606673199002338967424417873717446110841028900125922154727745435097688734781611731797131280362101986502197390245927564051411278895193912309265901219455820828920807378774878348962853116602673626285118048905696025592088361815621400987501266295067472438358716338337530887743961799591218255993782788510624300317460917614955830319881229735260478490424705426135844560468667838066763088327133193918131424460038938064812960109621418661700126182037642305716306776064594363216281261782601673193775313263597157910523795843453404018782265898099921096219119203144953373064519564139529895428803905826685348528743339413167236842892783153312660950992885936431589675247119356190933941087965444993521589601273743739283102997856038714441860939335796793334867977319165789863956459215353504404653006682542837510507067288096861393445307607817073248714740721704814310210654380579474020195276952655982255992763756585301272950924349120180687375227281279619588974575722164838686475224251893631898951973332278633342456825659487328446253844168302865422104508854443746241802647597131817444722964712596347871971480607591868676813341500370980540060577122236446598008423955545533321133900711824939232048445280886676459452082924374964315855569175758695991810130893099562381362140100737923171021002376506010945987058321236360899544417662524766709796620628062179062659734115891132315416967487042994237421340453860963986947254073642333847459242457742762320320120040236847608589283961972765234521376436285264530854823593804252312681790563467878418531797550712788803550673326932128719855159683027861887909736349228348101934656046982605612804481592119764447996584924477091922110148156932222521669535413400784958497837232276291585354480528610284320675256909789314868236550034200857735600377438289479328216198011944303974537633135306283922347181720631972043787840355557337931075905756086271985760271422742932503356086894532075515395820709963291093110007389153898860697387790525028457934318842023858112602484909219870527237583278921527997023009586647556831086254751554295368801835615756747643133851434558042719974279689946391764704805002824924655352046297881861765434850816188388460904523090283117964717375967525196428587940809320400997005816253528900886434351437293438819146317014171264100273342874889406344830582370901053359403410420947468478114341651877009712243611982285828387848878285388965741398768323973996054096254480021699343073773620216287622295048684690303909509460152368939511452408088376795848332792686188035356416562468638610869771838537603989851954940746394527220797177796033284987255227407928038910613643619962889226850662538680679625556793841213215646985059737077559553240571897493606121046180159029488997208946673571969984820624483634824865881115179892365550808173410640135129835146606819397610198123075845579993554392336245575114682975038109317321656631936604378464886997151943162224915820499256238270841074654723406023156608890637485424173291316704536977407618783858385660044365449852199676441196930762447017039538727383719109797273174972128949532961874519304734583853221564785035602578665911542663060192802835755677309999236442418288811188792998312665784701523114599846342092136015566946441638369330147275011204560204815646773301655498491777353980848375522929817276784125468442939202232293214960379302912568013081234546680543065187905084117893863106487125952458164563258886382847634135680151509044756875486579806374615885154831696831071858992999609570063931359229686338641159500350509847653881080284664048156076745010297640533830250294625945381349531255182565706597009510172185529318435997565971950553866557956457636686566657317422076016814106512073446259110039513056585684505613112437432371193989074511018102855623665356113671746660975734024289245896188776225120204565694123610132950768942806203179858879641761011137916521771863248595110176976181440708593354285378472125026862739326832576037467772840586755095958496873032879180002558340694201495443120487565756343902273607626784371812066449887414756193677909514463529820181927400046654603974629126527704101421287633892412795406123529511046903791268508358117945568640301779117462150531896262162977607916932217889691974132918168449002051888985550000602467056396451492050604081869336781873451010808088876772974873264391295973992238684962721063886694410730477552412971501138602210156946694054263952256291922610026135344433379862752446148530879912006978080382757532195521646318484068708106364720578170629547148274344609622961331041080232155892449813900448760113796438696777244171694204451342704485998066821793629279048591171754848995938219509150081740959435317069589515514910735123107585046805179608111361986328501605931414976623377887615308024542255628887483220423668450544027587032752280741793368258729788566796411275461319011006894669766844338407918323193586837751977813831480158976803573307525363599009572103204491320452210539196644136364911521885324471905708810825788608837134643673277683823839999366922415020060727208728588691124588964558090470341794109932386963897152318713512577074555266387923098249884355149056582533583209041873746190430019834615463845769442253090723825840517822514087773061948402316658575966607457011825418820644905539758989542864862038198424483926563053060356744981161685710433798910858787988936103980080879232914017173599473135315889385576301369686994123648147024561544561295279175369966890968057924648786431871588949503247715459886021408910091684341431340548076416575219122593899031269515334473227574167052267272216291362465511101113477310111189678231071208176594402625585445986083305618279107261191310274639833745372816884379852427635697876555831207687123205941837879740956686330757210316230218365784973505086837248368107011951968177553193667185905149846820372897769686763827330316531363306758610106890656338379224631019411547582868550512943343096979099867387007379872012442666131423405578286906708082241445183081985342681505430440465132322422188426099996890511519137413945507367404683743311090677554506899413526847481565760383953249118189215482412826246651685800868129039446025691319801061487152784607326937481664028523043079322928416763171955908842298041431525897508364494132544727783587747121420401696252488331546134934638588833510286598514130474099520725376470230168418112332693815609564969375419214783218712357799197583950149254112505206865787459415498753445200028613732476828132100943890181061250794972929075399144595169661622825022811856217884510887119539656459721669280708506693395408722346833178446659299761360902788781935986267944176112531157527796688110659969739467922939355609737104347817903887012707019339839817261496233587318315180283259704550465694009168159191154130640911177418696884769914324996458616452051816150020565293102665244786497730719244687975259566160551407245340263928457873090506621192986252085593025537565383097417202939465940690724013117126079629225850473229466055712278831494013880246246915363230643095867864467142292659950182515311560026394580797930756948202083984072002641053134047212647401187994799396075620364541812259700896643165725491950881050142045764428461831038698347670878247338536809389537309159779841771635584366689405926991961077442450225826424312816393332043579195872450268459096745202142900438799963239208696114417624342066536425952952980565277291770705850831512328999253970621722305429132610002209939576813744062030433293612657738281313503387131338219639801091837127533819485361193913793804316535224646563954893646736777636151281477884325151607939307125383795981248587958107433830105176909882204123330387935152552192378996971889563505999289395860611575876308768103526874679487579146064598300636649556970892678602099659121714630446811639119773284848668185212696702629285575868416586035320213507163800207006107924880757103209925247920734034772058052047982518307856304636793557713327549086841770373470871574697519730619867079192306221660219902639910642382564516571757553748619494364894138097133359964158777609866558303538894473010219587665801840936011689986009498036574437311018534262046842658487607570278699009108638362436995581492176165091716080478795060515038395961034205788733259992388821511987778099872484971394259569365838861224987171208575161768256288562035830854620596687695588952775812169571134913903260472878686364688412014358329648923871231763502870002897423521592009175562184641709725561124940060511582442390523301820223253281583082865372760500093917847632979440228484665263228005597556682608669121121019921714420652658805387347887069121824654028711840438429964664145282106420213297982610952489355318190945797357236024374616040607256421124539605795713090196386784514391411685218282571703646800998467875569339181467417236571602783638936739639488882908241367796269647467108968826190652995219192688703034095621108093443191052491326906478968879095825017685705768200853311144317316000679176343606177026497954982633206293149918621810349982852864672039121706133410610956025237662390047631670866458412775537314809370003219589132162445526303336567122242193651410582821907440386443454448058446457764104915937933987881242952475412770841181063210293841849163491813940395572970223164278137486650199517775194255646072878715341649329268509657573913296338141075459423827292988991056115154700706343990848763606209661698539496196971067362336849529600624314452367155462680330995478286517625448827696617871558362120798777572755173895153875673104662481909166562023295273799343266047274435940770071509663383827131944411986441482566876138352856998864487581767925089922187995300093107628891743801166365213701185652475179508597260648694893022175825676427883885592912806967819181334326726404861783320455399991188506250890514250993489413420717538907803520457350955847537287609275424178779276221640050145064197420336874338967565063889104850808115884551404796380362162658439582931099030567922319231437259174477265233789385499650658733347209935719185922028044899041217835683181779289376996330615502409220740084916033661247708375544702486177289924467445221258323791025267731253557611916417588528666544669387944415327875740109931795982527659599468367078798172593158734776159787344415717258939401096126986443871966759072482367066683849992580714710038076527709889757775013065690355058134001669753863919182390666231961625732080980015087413554677022318253879536476468542068420276491796707426660827100862426428849150816999342463506968074271781707510909190766954782181257711744984291991645507496092658860605806346105524762457929788816910889211120144072440902745909016613791748370300544779108084371005575144496171787814580272100150373349457988416968063493825423149475431738363040998109318251806969250783582394816934859041632904543525408789144948296031248245339750958123891362489461727154877781232583313906264398136553554785814395838439746004588834556685849376924732337544757064975908822132201418762393575524695404717261006513763570688297415207268466970902322671853248446356221135810833043814623521101713774604121724863880172467222073953542384176668132188539558385800341371571360788414434186125535867759617926114021246459688048955743895545533711404019545115236887728451790227413264610241404218083459529154888262882461244711631156200413133988216757823214313567944547415630637358549314797252154534244259949194244202461990459074058331042648355123187350252898785425114044352267013892297331991010471273341180374724334190347646473125660243861415939825579851088284498647876150862368913174129150273715113788346397733257914503606998998858561116824953321562278884271782278821205246822884940009823737983907539646425619478522988497763516940505702095761236340209882203478056080982398234216268670796202375312374107530596444822769740517893864398854959592636573835091566155088352324261847216456656499939266513690276453340739372995443309886557307017202804480501375000481873346026486144725923424545947873034678681928021528716680810780571989948043702568968170155897475030461270219731482034462919609089963974057775052361383565267479453659724244473394223793042278030860981117624079284816916424476095381152029834035833329168750266476201642566445702810416349277325616322071450524453601612843829306960606752589820027458545900807994753146026854101328694238073941580994582845595019536519530975859345910484057121958307615885336730506831001540738319138178733887102305416033452962877316530969740806824493220932796866940182073109277074231160651068537084282628982723790253455783329440080218775174164005196189245256277966026634636899220047954439787445776752753270922859577362426074860211918792451021070668160350232873676341688756056162496648254411023951134415696956942075926932866612607825066796757504656092643563044062137688815559648127127486315425644428634495956224481304526148117240311414666823899877654570352035558798358099041501680015818651841364232249896007311261330211961740927724437111718941758050798552061479930460576595882945432009750370598836555856287739697423232749899682540224616338875667176724974073485861874741110018452959231125915729449703588981478765498204217808621175772917913871126124158906850294467822196110709747922448934846385753678407257470248003357299446497973109209146001398082852038796279418167517825394502129238587973222567198305387677971609037988306925212943369742691849981777337552129715465259693438419505845402223839596034658126454276101457861658530396917210323667652097558287933876749346697221015382031048636545911934791009058730548257921055071494838530106677301483574073471611562864024450138056923264327465410751714967044492741811914326831076094841211965974920518516124239822200849890540199702087363872901738300492197056507149058506134341049622715475236636721719950970811279785757262965002922535469890647681233333449096444509677485515486614132581953369249833616686872458150343128104263740957426890059692318385588641991344413662640804273978104679753265739852570557436281945296486998758303422840695487426448875932410664826761298358411844092604563342518230042104588945312849348748043664075384885751212290177703527702716562662044312922064116700091501660335011808746588799893720376397970929311840094120684278669836490529214010707363417311705924738155407929720576524428073531780471158355623834161008482048441863824643439933049881857617831707846263019683119024091240080328346842022901935387622830036456303173905435144968861634228546145150548630179824237933192240409044340973443087830375052181246911377848354205304090020922498978989605374411623546087305465971708976681664620471156456892059645468303503240955735934894084171091740776411160231931971836536925881237743947923986315873544000609476572377020780674273512138753759715340305494421265718193030146250503548228951472165559464046273847106917092293229310670170810301736456759746281309093779482477690508584366282143766385529185544956743473872227747061618876881016669373975479002416974217292058277262452042731067154709307712641672173744209108798595768919522663548228912647578096366069331567720652871472467736441455378140950898762072715911311565062788071267607918609783400733405109037229956891818210213512653449588242747597446821415576936484856037047655886493406803574208746040565933794056376857726046609127530917290856086926944021388528769031621828987935587779445065570727350696247541260194130083502825230102745402063574446792655243001660029074673520010761016640770600270252575529000971102871561617957076665733614305272786908081573883015006226743151158476394223731417748402645157127044567273761895831914135240882789623031019065077001947611488740074719319213992293607376118818683577105340315523396386590406775835346463660996708821889829054163753323470957111921653711933220656547534031364866114827777012717815786319081389228387082606200777870913655167450077218615512365506861565473629499179047659246161383511784793206996131512423983876600855029324803190970839327613417133517890466866350747357335068073356786298702077596854283143507179059642391196904101370374424819541667239083410601385903678322097114600261882746258172136488665140723309720368870568364520516857265133063784841516826255943879888919384105502006749536379254786130848031455990153198187438924385618109078265474010620595187464756776709298337213807947155588120645128392295675290256536502379526625099566122059927466701713957494547169962504739207758111064904964677666999042562713128907706454779542944571858467879092153510827617027130073508986354732087411867406530621393644588230305516094397339355544704006516697413997018572903577241228478223732630682011238338900103695452099815654300608532913395392148652645998280234368948477713579948222745748191037280085103358921315292522420539477633855837834594023923896488740112281055209302483616824633032721408102297111268423626819598363787958217522955144738593553357810538636157961191337458891227029593744836266209308512519872088558147692984079852707518983314133755658690250000954342253210215000298116308751547191108480665387887523599267842306392812210554451451347894166491087320538664683453298300454595565257590992612211308293614744235701552403444048514811955088681199443234771345316590218994054837023794768676291869309429303094261918886400922694255348908761647294627888132824540941886141147232695894756671639452938086068837693996362012340735893120363484712401524902224222472046843058600966879139333366310468947038555972791068206005074921880864547555068570813554716425987787925373910086347733825471471790677127495359696157850826061044833345410907693567883338715869336664272958679639908330774932498116701553261268214024981804448490376440633170555469102121760176452948424318334287122184925652627586149074968769011597204570547424807418401025477677519413897710955323765186797701190463675766707944372154678559238848166590119326914023221512796222730147606151068503147366408830083020703303466134732232175272791845141926906828467041628126715621713338289290482623281472787006682527796035625563210188655027321876393010594200992516607857839057048129387221389216519138756344296431406349740139460542238782805497642716454849556979721303006400661268234923338735027541897441888359300963506843886957585454446233080576546806220489048619363386827029948661511543804861178425072236405931191363509424297384855504417657452851575522279322938306546041068601973300138475554491016779254168540773149045392903364571219149368766256754732904676881256680504860647094152643889118526960637039781292260312597940515923829187578696590781942510640767491416813282300297250270661515633139260613509583114985956719555303659815326854678842276162106648725891273965727370221237706068180083730539787962650566017930426593111708931777077181842685312621597907569447334982750576163122847104763961044965025256819432214239079974450154725326628179329610040033666806454313558426878667334826011304417286466540914177820201877437447295424387398209562174219507237031595436883860307259780752278582932752401425082208541303057065900900594553202047777080782571377555854494691439364772178196360461326790292641534021078975994138531680657859748428279625452781454869039971161908265145250497112532795954266531890270146648273278655142638540249201042514086743679725088819259498463435250913960741681542713202809369851131710421625289669464774808868104873901956375336489617107799577538305683022055102841215027888767436818058618617501278469094778093429737125619832586697750132412043420779576209222397819979440638327417381234616690627264095000961316667981868665022278747137150948692477628779367000196048250643818277932787046559620006361409045014009470602380692505728058943984292860738244447888029707612758767541609875107041917760011270590521094113896312400945234568375127156295231021315115942751259746140073753353324746254464894286429075194507367325452562984192710432649521061296050763201165128492959010327036669689651142243255619225633727895890980519362346803349423415182029025663846674392451679687400973711496305039009977579609573253451232596413412047479325036845245617863116222388244515457127553958175899377287420206623952127738181821291001072725823282039527757322336559593423144307263159697552646036047405469530127904655481569761466375907426789634870933195070214898778895611406924880151875582678142992707380841924808594055184203676633114978183548139478558423399777731006937709430588569744344351258670485250030188925596048839194025741057048531561481747449615961982140917006558558641963861101813850605271175437017921450537050692897036242143378872097752008191445911998143601887704189842912728504987098908807620932745663819065953497882945064347275267052730702929563637829290182123352020956200700624373513617222569586837250838438207836966719735718818631520139014554585378150107598240288137092538062819044911301853119018412761023190665781558857775759079809120700160019692484098327301438227951190806249424668108142226726798167170646580666660987597485488642501533585915093653925289545125276662157447541435650310137421937746621862929002541184995956947924111332182516160812876912598323201311012673400317496144638217461593024483866951464914234729826542231192358845233610354436049390225717099725848143418033461523324475490444551732607659100700856829423521888903212784816262631211731581118800158547280515537214928466247184569753224228766815007631860386196062194358134489216621034712984628775076460875999170617602946157768936823610471088519189594811368177228723287130969026776085411871300649336977643126915103493008443968224509738151530142437839677633597981725235134306372857630138319528216637816772934954008983703596813793802550644415152492908159097393660147181108206210634204504078317293267006607473765162780143472293229551434245752439759124359466797487437227694296886448888144214848551119482943677213081332755859058996596700652683208407966938357086235333308638877256323547665759652325845134137136583975409592518522940343647607481315987605373979872661797788058713144145987446116819394198269251941733229471021595850277252433552456782687787178003656138411029422311919558053133839596999844700969247823691696141860430047440786303938293423705594078206766801962376745884606086253297909899611916215167571622918747866987127870133880859693483063322061547719691669242316479911424529866871938689384557985475321682912580764953887462648447487666489734618084077381134012165717918801239435920184390245243688377323835814217933525404744310385650098558998600103062297578401145760291329714477200208542524049689608232657582034682514017710532908673198887354534565501376549292027074131089276805594382767644203476909341697188087328908738693764120750014294810290615811201076497837767010641721475354291771078434493573138923026477723167578657069738112024474760188253106666351187394333966709504892249537703067398089666924861135884644989568992559887818668983369595933278291861964551447737496273744837360410914885616497043454216938220846641262407467130045512701390157655334113442200902588529770682077837884312219402102686999452080738968022906851035952178989343357112221189589929639698638648705163720777369326189063206182327532353896087202824048703732651098937120876355805499909386199197131392797087543878126862352378860571342656351875685508793008451196014471714256571048959874904063734480572729586287109137756173379155368711685913354027558922430744143530480205248410472503123068877194440171132580650004674568430038112004053094411106835342940102328754712560638845529130101726660038803840303364137499819168844030168856716739030768740562356163627525230869851930118951234514237852555533100266291735812841957266649128671500730937467475585586529826268858290756719188563017698900301669454339568133488430295628397570191308241556712641659137244015674659160526914715819642748541636439322328462647161412057187245523634157881847711118698155651642825739307454003276575287303859806263269758703862264747377887246430622217439099579331338983522495500400247587667782459585994279977350290267552355233715105536077589987386903053918634890927670361668947977875631702823668319530400274484011296108914887811071856752995512534290255416203899206817974041413874576956350715783987357197107293674116481402353076432869462355809407454377992075854723382568370821214344625167144993478336488040894763524686457685348530769472425059505541618164850271706724409697130496093299077169917767082264788533173225791490849479163037241099380680873298884544283846333672564152872753618521039007292467630278211295825465319368553111335274627791800715332649536690286695537720061315108852365121145281875871295142089083725924471892769244437631283855721140741981487545826305279382860091074585981156147831551898759624385713538020608055131661899178959350380426033518310314021400445184536855169685381044230299873331247997422793135427286572683150244190682593154067726177511710700550442369657796604466817452515801996697144590969515994441393053346975095550513964889339556684008173352542034865347612201965528862390326369061363736919186337088761164427216333973144691048601944442166225248964245994318033237610201996588514544968350997490287808893846417414439586518240353842646705842708799620453836891202768635922476795638597417226032360510777195949287160737590715504631790171394813453237217084937097036640772644948301405794562459097917565122632481359402961999616293796563534497054904720304363214533481518785534328704877325092856019345755460953244532968877460493034705508664431068352822981935139102055711261554848516480101543576953922538094014736171531260314449704929571842007956863891932214410500698736307308334620110370147375207027443612913268097676056987127008221020879742877154022254274263415290120989497698157271048665789386361628397995616861429736930731886355473476298830658732583179385785403199066605165069671150489606589239683419609445554330104782692330773621008869218949233722838916958961596958194369393197121924970424502607662051469675206561885126160386334375077665345115273113783251839533615915611556776572003209427562555001176435600486719938219049138775160048072973211609502828544316386136163900874557587335824100892281440028817035269346057096216500539160704877613772555027949354797883901457787544452742541031746611183014442795223057551697021386913158967475479178310493219490167489782537993140829972206807473295602879093690678662872242364340211565022811830307431804165816778786256537772636375313604063463424196495941901740989889011039743638271997333098226580179806743048585522820238312915666921661334661237545478473053127341694494357229871553520853065824310716400847468537358750231063742276933794939408194622071735516537537824395419045242053883122729107084883698446847942663581296219859981523756706609940169901292728041252877196791742488609672498224382804358899024079735984242854796864121549422828589019366935614220463301823589370613756716927079967119680527899315908015088223403460100652336140404110629849416389318779116466559608431792544830843923496949181494883857993320779926883034999823074954744303492981599238524419727130876315596990525868053466490722758530243037595314759375382295233486556653715641813270556065345760457620253164796118590728332244531848428899997839198013750228302812646353410074478203596504112435729380400585003782563522177364739381686441862668291756869527879054800582762631170101542203675181068122902090021120617768852570090421551449051818710457259997776475925062846023708376705021806186174408048592357080746599595532609896067079784993086005683026961169429412423116019020262981742651731101960147093926852735506955831470407538372031566271882547230940512133524050322501374356591769407501268448994303103212397643418206404312445233700797697725829619827540477720614353639153939605183669901839961827590465621201479830884060352559733922529592457758691227274204030852533500403960928202759338673560598276778487527635710528918701319248783349980931802518067170109974021243162923703622448975556957336497103651508955768677758998306133228082402059928435760056885395638121585753619681081319063963040385302976411596218563511297160155901441945561190388948444359548594896741508689473814768262025949876101048095476156820088616915827588172031926879611843462698072240755902381967339553260644964712243740661314422167401789576339838227074173337390923424479348151413153338035566089505296425456962696408309459931648854437653154411271181306356722930830705009661696182570259264601691447525474400337343626019981384284806889975294485264519768411735760894621463830031020015448752804395813436684262949239676311445396358273500443576898338390043043559361558384103166065238176032515458936439099322105124235169458570509671906951437589130454984253448729363620492383053648156937700933908539875339614345563301712651213461851894567824562515880342462721276457932439274004765333347422159417411691576548214790819339176332636095633495094528258941316595489983399083542538254061878775582361458762633185441374542162838068516980835285405761897443874780722504946000441343996786063293853949567311927730139741849789201176876638035888335806971250940210445605166826663524256979128124984487462005716855594997261181715897259237014010984028017310465661939478762726733676371315579758037025088652622097750385748369103209232638351079367341183153161661670751196324358474001775037824906703151900931401714158025079824028413446951745904174368468112125044440532635413310906372355796865815483933199605158198790525094766444850800751127921510434753262608956025567128816837907167912378597653259264330430611373795628388302031082914656362085802611318450776679489304771518345477506121487271339387126626054575412099624602263771010820220619673998954313172550305729001438374229279078292895288206970184883770636924088415221216404163752986930671393443376018897110673574631806227645989821911989549301075625025810343409611048224588814533824039393537356025588263751443572858745397277199401116878701472313038151040588537473864849300922939617670162710458398940588080992104872096585700723561759926621343530442148549814231824955465846130938814623343759630943740056796181923082129747770956437995702757402923956368193387554140175450426027492415564471324062585290062401794980281972323955749583257262352639825231141575385076086781597688485307660098653074309077040767585007496629739802876789147238203185644192497888293277589733404536629173544643185170486602428109323308845207863775433245632227197073072103773156626193486954466301642613304876741900765355070205585646062557196273783560882753716023469821949660768305593875387143885149358399197083671213889466493595539056853471800041954198043062691835760998071803921711717264212095163551457070894300541440447723191447086181034861313155714440049611274278326059402248271575139709791898001380309683525061259813613483031736395513809680970219851792527626363000940132002811106224816511225916229131931368006836900160681302112697069634200623350403832205501266770470031673508119732141745823612920287123309915284369765226128184001903904521865757492594107101199914407852690917553866610709217045805613956334301883655260088034861725057142742174177680218591499643933812843444641559410173503822401908728928585164006207460197056837814165058438539971315425905868983613892309007098445494579528516830631812921241445737037865938133049505455729011207998781770809564202642680623073014472897798778510972884220359571230449177395792361041042097650922612438625794940762190319384150540201871255852602972102804546531055089514315238210815878641849292756643377751031924179359112411502104618420566761250839857789808140176353070997548620354613703939171299097791724626176919757061882480701275867396070046143957716419783719177402410647751358677522448273916113400597970033330345331212169241057843687262456255087222782990717535545308679274165197082697142581705670736646312343386027385036335573468279370029444800440921443846006809714615631375093181193225767102125027678664988326724683045076034162246273738564886370629614568636016147570697457478533994185521201579371800890766468715557821810016282286904805199286814514446353628005449463334196444494640142479398142287124215078485203661962413988742046660821206370698735666202822992806688925166701709861367254588645600397159430186524288998561022818239567856429944976909919271463543782995230392358921791798919475246070742743138497644946223332292601512041930456695985247010308840998627168490353575270640775889104387262613168906907739969011940646553032085834159608237329344069415261337312675105639242287167572247410230761462269468336749097679121087140103285936677667772320526397745380103425090906119465007312480406517274782487557958125642650663646083148481789308042487498354965557945991790040232179009100357009784281263349147496842857864306528996278300649801866371827912489678395733079534823428941959267137703321265947954471692411733053833493814606281448308841321760952198133068640116977169575676018550860958367635751725880490961620313238254113948574059068802775188186531355776432187076270801140853230643552998352678126119479962374137753602351497848441875521068827575878636569599680841862619772497481494946495660270850375456632325634178645480969187357088677131420121568109331417362318528366687311997459177192160460617543490283924435780110687887901065543593411755691716830561699653217720435933965168898929594836999503540166246496275341901638889083382586795326604587335478905914025850194108280685247041752254002222753509546895961425366693031392858280752979015777472006382218648469185661340964345307632151645816396184572752168000491958324220367575956599374064620556382936725615255554182781417630395070965720089648722136126029367242744654403931634846309620334496967880429477481556547364098194328674238429177782595182914446798580878462969617870566169086596302774716543791162965512268464154444717279514450587437386233247860751002393838785099208522908003963942351242949391106496929349705126262888940949925509516013483489305445374102284015944615109487267409307395127449040856933882987288279952503817081934933364834647167530270660535220652578175996734958644976711913202144472481859345115228065432620658509886904278858284956410287981725576220516914452135724120420613561228218567686274379163119776502476076068940676148322857771120595657108181458216113290123183261701623445216895826253414173874191624093879854423023381912591171533008899047100312924336572371859931210379547351353000613435542350255595164553630812006305035175279707911858756519007544800337817553574652087307432150966719197638675591601412604218032539591642901055919744198156643791835535678578754919968685145651369303410418859505055684845530013759392332162672885078262123984702839074664289315524081982560943864469823289404539471030820448660095725406328468744571482355797227132829183742488172696760582556214376686359474772959074282421975831267418094333298027919792181006178326446293285733747483914162201083364564275690890589359472403130705802835197173369491518221620668260380039154785548823014399674387731960447832351141092138268382403890353672315425931089244773030432527432559087444958786516312429750311459952085474502627496010749587401674350988641137396128802043691784020713940325120019987481716021387597591880789290822114068993879469438972649592777018132866106953909036765406808452430897227184706472619430221963098811097553125746003812630191873328236482096619364863330089536875283595270936390388678467289111606647886632828763395937895197963794759850572877628638674132632905513024834575511893523646823598392780976494887880976568939852935500159027134786030280520703816062691623297369173005634405750185734180599328763220992620951389171535657520250322811313571213576204286118730709499150292639545667936749197794681958336248365928409489127217940848236826183346484589436082534300849845982561218299301379539807216507590082596337212939506924638585704981879064532576535514608135380944287588157688601600076617286242038348492313302095205635263347020815582582951634241575948716415148494119556647678988371500857075423121532858849811607699266165763952014723454281386302578987328212023153330132427762492895473173355327893367841216246541566711473047139946534247623028644736394183368556009107384284401275247835541726213560345381953452577483042337389431365256737400388506250523083458220555896949227830179328326849361715914628664526823817849950687059285443059264837511260830468856584491802177430553706892615900757377523804469085404691542786641467740048145275894704615059289485102420331643654746822188498523465393063948908722767870297156710107880583653908257973110168785010194368231556340382351893660494042942619977344824701021980652824826704635389329826860069335802059733678125373549629628676381997159327858383059533489513814431855107639016430477659192825149923841711835395292980828623979126629270724752464525771561945531353610417100940266034760062889450149942866712366796111842621283952688573345086068441016814978172035191214319553740039686442897721614312402245083067281868593884580354518400142369426853953028340389276971885430606709157875226736557908188586909530158222424249964257230675317396650308393370259843353192288342603683193805115880514148642500606886292559546471549897766285859952155710047939605316536512494022069855877164626003208822928462975131886610330671289608076013814244177261461577993608810132926080874886395283883580496631568373056741746386154156155782209885908879881217826525440325281429043583184913271500696319061198479536254331408396489260752671286937218163947422175989967682570648686506207513267219718836612701832130929287313042443430554238133074374162640183042930261230680547127008717889500272924834674874303544432469506437697194247065210655809648950513918775477324535633533010162442453766056949383489428170519391664467642916191516187637928107231248025735732620599184531608311467110403167854134361122926512187956903042123718298767202032608243661975645408637032474067263682548427987900143588017062267920433259140758773989844034213298812700356948664617434528321465075810552639170614916879413400972132747992458151012395462772507499838373464602482398186283133978625104293989460687154243872542984554145300726307792378014543163780665219419040643002857168366865881571320688519375602906369220767344069787817493106438378973726198744767161698437168807206813795575014740863848783295101906238289921602451720072629093699482895866579862337810359135691905534734014139703244621369184830222303702573976236996901793669581381319995321446175658154417655405402530755097489365272533944528108013820469619692897791280498075935172684248851953058084722362687871388473222162123785424571931033935498680483472921939710924195022742026092511780157199469722577748256792488868984173917139790205695206605967245989015920593901158790295714911330019608338539266534607392126146095084345366478442332088999151080485829979532265310025525580586338356440122434676986413782419790123522729451322286590583136035013204517596515880103762871425167943599537792844660106164277055882166497791413127568487987152895881204395517086592650025513731572104288793829791671945972254228910535504846266242143838292551235879470542919749702454510108835889963411170376536373936671011164701317698303411404382236573830905538069864390370084538056883725042237882271842924911233196754608883405313743143394101087540315752417500353592220127885885059711653068890000865755423527955136715641166372041399568391571928041426605636653386031177839119637228970431371800159130730025715379802636741962321056710718495217107046384888805619322577049597676139611352226818540700122433197235942778284712850151221529310107080678482693382805365476116313598672647241012783131122046597527369168568621377255970993072355522422237343928557908722506451024329167743402116606433384486542001608870560883031289660974844143269359838935452205002814135843047044347765178993715040626464055505777344702938151859140333944509442226635447018783183649539484744328145561286994610366479913360834554951314659614712061749970655876743162820786645868741663706037880076599175295483073866306894816842771687054140767923740791837540061802033693563448062204120888637477078007324295287230120868740787651127148880949123296613277795467898467721190840182951635438611377019069401353499169998895433231129056166685609722910308126341142903522270474250655601369548689258595524048474006071543552733582259807928274337180899159479534810764211297950447467841371519589479538699027127408580884813339871604872851173493627992768579566045237520517695713942752572264028637400987744466717369427514729924592148202509071390695771740622684436062341735208316685649438282499857458091385134639595288910976278487987955104798381861187500666485097828947420431192913676827810543229948721478855108219887770959499543982647910932722711850264423926514495520528068521801670260417871048124154994777807686479283198939051153469189754095614104116127130678612876246866809371067311577654758807115884184097866432351494009308785466556427825167851016533065335966793379740985693752441395215433672210294618381897489056281573947576189559388485559542844720782038804740769585130676651734798809668264094206679705539278656673924060352941422254688215222212902476237957069776214453408561773044377728537464163394244921379807391501392491171138726994263400026741464603982365690923410076511685190768825771665011973466416752598164921529610824302707595418791337759054471595765568566586106309904037353868987144145659985795068001187436481600908098124308020185989347193614052523686737955676594482646793430945203982961445197736555365252195029908087930129282860143819388254453226970161684039368713222200562463053523084643780070619551274154286519603639623661839021241666543355589473246362666206494234570586059827832826844096154135235686590879073451021771813181400339487466019328469779451238515438389997931844876068792718150873624400108146409011601890540761305017296730407811375158388406449254456130665150251216023828419997973626480628919107274425160380538755087005691034374268527866944034248284266724952213246397684164795354211382982063126145195309199518453705895347314284504102921512270604945038290773969824355354475834149042042413330673367296890646034615380657555496197614879420064105711648177535391660947838423709910923557229906126876273101831051069738907930818989144963747369665887238951120052204527014672074257903351300044401707750691025645283903620558705601256976545055135987200112826211878112536051587228719524192517363370070582001177550366586426819559890438323296716869934787495458252740944589293814280364029123712451858793926013730170128981820643923676323068736988299065245675794657703878647600390413024025200229795262486842514533477436923559417971474396873731298944498144521337803371403282082820716372574356963282450855698755536797591746274299811318448632212926753828837204901133291869483731408520896269980826751970159394333030855399543205235786814114785957507840279247417474895245129548000699755437330768075298917506976645185109799759075555888419212707530452573685835647661994854918474389006722754388252911947670954256423012876335853135100034495808913869598145465503872083823018131924415411783859819862619786839074700635475387677192892974722765059098805308399291182933587694036370838858931442123695894767082950954649496504824904491387056957547377608191477189001559680126182208830410100437606580139051536467654003378069106033165046901710279616335907049744438572789785732134866118627975908859926685976560165701545203481283783001529897796882620750206025648157865752059140327869908025890713520653560425468763342685016202667676020413265207458466238939727353658454634081114200903566340064680596700333806044874609575840492858108979836284757435429570235351301765680429685237975366553620804966237806163744171177228706603225780741078831475866563584545941930685106939943521731692286188982667890055780991401080419813403312222745176317304839932691748811739588802444386100505444230153323310716937187776857352470875667765453568994801120843878360340309677949314664983092010408212787968925726866552337725013755852438305405194417629082697008169380066044802779882431058656753529519573340805430010000060509104863698279380637511656552992064028617772581039830340785783118349573588616477842088534846789883864969087076264406615811486878771690022866979322440852558132346432358733615086013488709101312217214287253987408977817394457111198137023323345524230261784071098267813525786338552628170291788744689240552476369975948822104567627002461491483907758573457548273995772784850614815000359560204900605636327262689192945791235200175852608940207465380487802069665975685162936642529963943651266623507539882298553355029258989400667027950588026014682727581799181269089446648682431506410403728711290012609499091373136393600449489070708509512626508695469691256789085182883221103143782096571967859193631627445593511875257253389971647438672933950874654788414781404221843025848500960131317215479865327722155097657092723767114102283193777104768874683074945191699365626037496664457446680325950241134690440459108568165253750655007013153310887384358823594249091167541178170213230345711631201548946090506695887131822439274637266600270297026833168471120998060430045545336112668607721531555838831311498270159329485043299165174184468354906767396605549357307050414015417513245774141612107976791338258368260601640122527530664212590641987617754126903800439026358775185207330444385481058026515897982092129296885213434000914942795625056709200960163333144848923340101413353197378867104259114520652853523610249357363102171430133552295536993404237387397023819438958282724114662049906319436367637657752912695231211481444084944541524140630425620763924987256255559746691784032692442093620553586886767237518603132860217674513742404547132009801261304687773939695355627581749995395173413443082596338516248253158784658106655238993670370887163580552842625100111227173323187222001830433288893859536453763120992039147366909670104914367685027911036871301219132230575051760584142383280726884288437315886878977414635509550351030690962710559857198365241731622692763455609239436189153956416614107043178170959715564711363192435958668889054851636719932792179699525898881629170542712667415694496949107054774990907379372623234383017078407028519409361957931327224522325577433619229664459354883189957074371341305610153625133685837316000242204147156142467287127091579506905511784054318594202741593736632758469617555067591800478038180523349587324040888053481774990152992974967146680951821363352779400919824158277075587380409128709251236881799732826013193576228077076054533454946022787744687766365745625457174213546127413311840091532198527794522634418911095849298799782987964615030833033714409676429759833606255877210108845489972629409996790138844627404156773226437547786582973066751481877691423041331049331174880938048522198677411785870892804334628519472533499894943349220115989782883360080626683515406204376755032169073114117960515580181180532241202364244267816414402174312172087038823153894138852296618206215075993890622207370726768716073916777112044866107307809001790478404379748040144456318507232913728387591636742900199564406322963462948313345618603164128201422830594428198921974533671713053579323215210271399977001333630466700517431695855956075391418892521186888172950219316883374529262518936746809871469491980802598424093285341237845570718751760232778802683945023916869575403851170395790516346831117965103736376792087026596343987443147202870223261032290439693011929108576878384688235545888769272456789260220683121487170982647827830703005861534799715675100438566819604995908154576712429384781315831188657866345355247478278057644363258594843002806334205002727906079239610048560463610563078074347989909527156174480863006947468270819390442754566507213686762004675462690314457033449826533245751207840727331098639264377256980341735849203120397394106668162909416011511897500132369940060694089930978799205905003217663812637664330191310938501592448611416081799563688037477202111009002098146800952825988167370514364386195326578929947999005798495733559899154436530570695087664792702411933161629180154833567150642724863148358133489206292531364567510966004486996349293588052525610688186350889124643430201422519674776937364678548054598120768992374219920197366203695228034477958810631826041370466184800860525463606849220535879771920192355234619393812002280951023158291750657417765949764558175690957739531049008229451294138341848348504147074175629728925773920212438691627747712622317766682521948805044622087899115344167373140869582956173344220005626210358512897532127146997793044244333118727047566989169698612518573410372441349366196597165624013486684099184463922933624513071193044000653857924175635649145220099364223615873000506385376277695067007178587834799101297757874890868922760587278308499618780594195837712348052131662663888583294886903817848866260284948056510928995502139302520043638980983659566054875900902199353641269426252262743470088252397266815140867458280990645062352430497848488729066732281998094742480901494430243352407713838684683277726871321794456144165980082921060009877298435947761950499734579186022655212205483105195160955335370818564041480186120906853186368750294648064425535971755811683562086473951317363133835340029345056746022312690720172032463505333651424887521812608558800637171588732427800084498511085638293058377778861382436656935039597483067850019924076386704634502640041513419300069914758735932840816889852703317664432454010881066114046285349139779358465742066919931988458943472585270644626357344974344919544559618077305114285579041811956336264651277414662107140401720829624043126921577372922906937864083365885804030888170906137703555528123321207291014078981264983242159523855394284470413529124554287823740553926312108297708370175015245900988523195419146965539070460713114717315774354681474312442503775943322917237570591920285358826634223475642662129538165463950768511156208791299443572736730054937794600734595005196949536251732268529645875158690664788637774003462034875272071318003349818887379450011874528165267593901325193114184410364502653322919629370368264870998913158031861587695914262105597486526895936483117351585253243074661551696531154345513077370165497565750344626859007277409007381080029786119603278528473560725918664744565315829957060754051511746007260401993928590153077194065561373826493183129718678089855352457125432381198649778453311928450921483238519167188821922921868321489619494955506564209779460081306044534978366470922341954897634415410816445368654934345060292823348776872335143552335917501986511628574674337346416503895441104966333575383210129704034805128305197831421577318609244444690045439098204771398438946566620060512713494396614312498417763484046035551951298363876868192073966693202366405219186021895308686168490738009696838421560447379718891284726613258175668593719494708184028203114637866269765440557522444763315193217549672560211025394452504423599758343122980907697614321267816554645717561610833038425888612904137951355618110872858527309596148719286004997815358776426396101908657630348781230502294807668005822460865538211322431291504146799097362599825139218921752142739640261421764541203037391041474461264957099954473093686751497097748025718062818606990858149785136595729138159219426021057699669846830118496987961541553358375669519275141954915091822008689593343925726643493294527425588375118307934080232512057308205537123798289808518760674096471834876761888090352672393195596356217827374589237817063456000811182862742930868061033082161266153861342941791184233498244048086817438819953674496227135464456115659696365647711000420755737830133080196526408346271811731604830569400243561565650291618857975598436195193187086935071712767558704271878548608023198676956846661818614780203880838297174010243924076514191785355216621224849740575275339077804080350507341777298297080499013181814822384337459943685127906277341468240196454168823435405654082667465609509008877405977577295204477667617983974681515972533663613932337498210339904583662202202259080704509695814506740819367737792868770013929661889080294022747539926555752748677810420077603260432119642287349562515695126413636528105902379250585820270121623073358055490759741877962362837339024742547864913567701800362393209968711099280878362581280001418674328291037628205360455052674309591092843151920607376182863002042158087700514871888049244790781341953333842046332798109953170942780863584797280026279037694132491891197027333843551672441851854892533530107368908638441364778450689295219120695434293226969556360536896977027126063707856328293478392626814214038963393209556632387930487902848593873246936406801592254090868594540871398051010150833307039324586323543067491180077224470360524239245021046358823656499130871678848977859511849544218855050749898244181733522373963154287530393626916143576800104567891385692678643934730375417102755580468480522416673290763301110393047422849636717113789025420620738880386622173746140830612320166526182712660600540481121677989783949462447012072379331840265230088993545858143480066087917611713102983633037042340039826488436856370381631204151458887843365997330609485545450395856747436851063280361792042258751230915055091995262359679801412766454815456310202765916200905201989033397873543339149599086272168048585102891582303314733786230015531152703266845210397498436942125225429386854161505971762275658795058375365783030633086426895848731910438978095350870373955686018376290394738295087767028545556126123007446885361177927447978791313287768081415909579597433953992864130641394241080288543997161150659643046923877259384344853009608115290587158060228842238234148915006315754043647890431914461011403308622546836292535828130665535432217637881023315516399154460109810524375681264831959833387863805638179649068841069620614047342069705785883775889623695995676711997816279343059876593714186871176848868638681835853927790134190532846750693775238206464496917701367926941888063203502672545029037513930024499578092983846617936837547642990999992530201807969765945902867577859086920540703878828117247386083147948163872424023528282660833354401067023356565386004951202170961633522572026676571740038537857689200474407749238159754850625629513442605556258568726862566187116904597522911085153880976499877891265402688840399328113912124930740741617433622585654643632411704942299795988134680081241850584088519961897757076269114777878043374411675068073918479062441448201028987610646309385908509399668559233008684799422905785993651724436100978334977787307464467443822593944634928441004302578486504860956762474558961703663216265495901443568135942842340351629014116786304337878831790036455012864931035905440404386121571507433027428808560727894928740919995360577880986555564617261526811308891750249115367772556388158276822036887338014265650072320425544695174342363684059616768805460787564008317417369650193165812427459478096180509179545787904677841671213842989807322180333909525745403310449020427296920101987331196433587650494809648459168156157552774754762826815086611411126174371882632719737646559521182078832742087541210270370560581589225738405328800143058049499046654007230733751851427790709573346905087992684005342476769428884812996332636904562605655995619851848260926276768518920430603004479549778770923396676039581768016306114458223367782976234471744641970160728669323320252894546551169132299612461943179141186952000306439165007750562295850159835755703839698151829852546394133761201211599758482292567934117774825415603716800997776938102632477154994898743584402554789276510899871581407664034888074395131359356056370343813182632583312252242522070301289136618723967161527999876251983233549057171753694250329438929576527192294251248013958369629908575425565693867663700861652077691214846156006707598619276747618326847855763995026515747801227387434870372010111019895584548446528652656027584541594393227673045429928766343148437566540116851227111504787376344128471486387356527819191513586580622896070758141613115212995239083317093842091668885841469454245982165815881277641127009129192172400816884953438924179522824703435646873670538761405304859390692859004006152546455676484232489661814411930251922777125149775389898888541382597330509699796008497111410811427243640621612918348098876549755080655221832299344222756002379569158287848127871517706819050306214366965899281187189118105358390703631135293321401511333280275188746004240368849116449946841487300250033402892488823594736877458329532999010368030681743561965603096510861009245384730560218059590147003781096947775835754390345323322661567900120924920947062566245919818753040963049759077679431596729108957228565272806822300568681115057255708678476901922755573615480965596979646687148331923896466742001967782325135631641005914164670127627489056079553326748845346156130972290450538593912209015105668120491574947707893964156872892649690619301819017292696388250558666245608969729762199753510780759511553587304842659715350036883241590990005952079893482804968541877716624122440068063365471232890324782968681503366539375518918986323670642258660322363417645333919382631025397899255667183966484520081475413409232533714700063351256499185660529160131092527414736369075995403294586157666209079093744856193377135783501073713687327692223016681442850486827273822215962081670803282227311192744425798430740720653059238585721845085139564751741527131249943432283661415280619756866297239439733671890302030568554825144178530337263899955521123945503935379246085394206924590878413846864744439830253284647720342878974016322064467512370853883122509791549644366441014593226437334260062428080845269281701078970572553936036547064531812824388304473238939351519577321010966336004321949372001432671724273770030061635335615684904978545577508497825110261878793520743947304683681660514587197610352553716436564687769179819881492746117216756965718379659970880328909530505327757238551032208840976521500191497210660124247134044842168788398208282170016036795771657034535500234541240518305728060721883705971233468598981118447835260275991830864748412662490509927260409918400973738776157932911729714733849383047059790161391086120800865716441654197881298128049935971761950488697843179567702061962016250806046090691171719461192840794156519094151164772257282644205182629343295634910658893358062900579559486320231052315965585584830190034786917725074940755239458541923899665199187991056626559307441871098297703405005166769040177394893932622546241384919572007642499062911777658027493937462608535954000772769558145795691516801997929678500938090479401908718023700738473593551578741110846751044718078301964987559583440978513355444641070561649248657465595326845833325537077524241205124819870145197888953685339527060039942599684765400233865219671935436812198690321806202302984488883434691596692393671140852962012838641232115240707357662772929418216177941398223275354159608156664834543510741018113106428196268801993617516742165437716046039881098058047924674984679271323808306706499728177544818702576684647082880601490579884435325328163216796895329259212243983269440053492344040801410106763648316543663225198734834298768321005611168051833929362717031307064130687104611666245264509927209541916609653042710438404895035372718449855053039256075111735361189863946799623697973995698811475248124799809785890482829425891553495032240242025204321994897862986788414115705833483695997860698608008558272008146834032786394218512355948951635677524043182880484887529986236081052680329459290638198504946057654517139922430515976595160852934352299997133912713355081664118486896504528251109466904629066597426160384527247215626690395584067240322623179771035104090721377322802882726018274371068465556766592614061322860864821126332310401765782775771245152226558672064404279884905385476599808946408203508619135229759108516640167870838532795671123529808656694530138811535049327208832209608458946153611757990094921485642808136554320316072527779170782239493692225406266667972610466558038572488884015340310980956282893530251048858522151458288455550468607520274023970805250051097868109956425656272881558731742894599407769298493988285665536391033218429063363391083019218918856053773114306892673930343563500553222091883580796310850505130049493264085708766516099843646912214390727198047546942752867733667299907421641094184112196381011639292836369818741593089780739032721504735662764731811496218664139938953053219249887882886272381367187519257863334960033019343685754029313550362244272395285081293782232034455473393073698736537330534450001137822295262513906350013176905883763199884035911312952957724883975430503384635457617190931667745582154799111422622919301367090863322856652423118094501250981577233292278644161796046301443538830152980165296674907953317392330653362406897925969733711981043522974684303414100810161123111608175206242805295537831063962850764419249075478704155751399882918419115832929147055621087118312923779435228202164589314416336732721745783136547571662339890866125008955896421583402759270885691677548843887771926375747081224400229490644668067022555464358021522217104341944886018594727809688508094318528042767646752735084518182144789078645354036621178663261259026939635959490157546359460417232566508763950460794043116358809778513516251239058938839643645099824767581445521745753069442903264185445628182485365597879770180594155191712942935762466950516253936308629294028258981659570521522621742801399520226917794039500552455158736391763287845871543576372111521311986538998356950005442692219064707610179347498698103181717007033850228943859339541526884841658465594897000174413726466942806783323319755915953878068317757937942226178335988880205558340851280948606838617692583286039924586951852014702536208487442367898268110776273970365931479222394776353655832742115172017713957759106040458370266987019059425122723394682850976098506374152403000673993697049793587373743242843200893122824007405178598531532239740486056339851874528018587975809715639875399340023498671822875926911535555585530383077687199414445813570105561093034823631224126137585388805489126980385302597857334723931551344334602520377622820198736194946736392641218877227802408615505505026867472525211695980374183191660160651921372270749574016773255572315883559551458446438362093809855616743928334008813379316327563891911302162693923358674705281776353933067127141194825623117959112289520583465169171041009330791274585261611950788356638461049846754894159992340496985263806831378479404028660005039186534192999161894662078913112210066559698199327693481566167870874254761614307673927562843178779566012605766090073113910578627473882723456700402713202981246642155927616351579904615116872255670502712506651193247735764381080343004514388687928992366560126269211792472190229486783290184960232639915109031644427373736621168720998595210944132473061581486690197956726801883440555458388853990223558839583807660381108498877841740075011990874893930210631017433832091569794147057303715272165546829519777101528930183140575644629824114001330669876985784936523433857432810360574261558480534214176733529849700779843949427621582175610487433875414691314592041590879558746248796785982322183494467921479188718809673925378624783738023592557323931432797641500711046918404740805827570839736579220207092832505222740456852162229226726385259881280439392232987550354029471453813534142288019734354090568972179305639758440510489905056074932515253777392720498074257352577366165682802446370193018995309351749505631831832006424738009291735672551639397142724617314860761793555060723674518799288172905295356656646803114468457275301830997108799593401206005325647509950698795439228190229144957442257480007002609318917294090036528395986595596566577606342845641209531832983692825454909585526725954338028743989947939127202907808995492732048073446861164999198635716605537440051394271049968533933764029509178181928468771207475554755086100814363621084361897805092289785916439856188249306902967606256840707013625940368605029081603731732687395862946422173968467336863500640162819413861792343513474189855745229743430762953453736190530878665786501655474711325741988350341196280242354011819820717782695298304890596810781035484996938138774490759756376741766000955946554164319638002868814587889053058891340274590221565963541356711115645764239225501694336473182090198599606928578340600542199873694492568477054614265381015411588776362864485822471808824053991021117716898013241989943891808583708548342611644646162492317872650831039453560637495186446179731761079618438379098690137228941454378616976145844608127265517893834862890005586386061244950548846386867489877776238729866689703775104123472507990664122822570631137374716021254355384473584264990584144101350052794132747860043956824685955837126681418390934294542510603431340317036429276982049194470321445089207402819563688103438350542886447027351540935980113625301761761068385745725568329694105697334796381113300202676494207525862353526037984354413292896074920205055642295412892184731208962452810542463316338752908261372792821718739834104754894539149685883657738766473210390304681961360681338634856518143294106724657977837913012190523417483763118047208102867649102930981589531253115052604622856521671547617976378536428438114890958154782205123252356346371684236433025628560565017698366048339505246409106623616261726767789216648564079574948335261756218923905568914399127963732700915747088859884604732472966411850453158597736338165554549082734040391466821519350505733995894821276896190180617922680520496604661259892755364760689117947563928014011611577622688326467285937220899897585469365755623338297800155755245835273599577021350569210209381215447388505305040789471488661717515214230298155630683495712879125745839835174678800972701184411812900722113349013374879744533007333497988290697658267273251835800903557333833302155549588963497624432466328076612992534581272261205792538016161643671030603760309658834878824874277448456352672173444853118365709857676613625551986246449251033958532164753865020963083092971849910868485598189789474055023306818300757048051594936282839523619491162444872100624630222068643105537980545656856780525354760461929911846571255709267668305393320974987000973877417664046195165291326460800340352800513858839942293603581850228421993489221948273841340671941703459899653738063487080841911124665258514471037242938842094231847947931590677682518779324053399418740828615802446525393500025132886153728615532551102833809780229846909288006963805648951617890321012806429849833749082336709092840992373838343903173044677614457210881496090965808495650891574263486811817176607552610495186874775512908991400140566232092863265537224962382827011958656021566852988834122289045875800007221366224677640623713737732850916098190488374441559145539603977815513987552371872780453486486032748548244189249896053797918110854337940745651383824622558478291893586268339135133839052548315651845084343987842516754762006338846942395612730481239293524682580628930342634251184957493075678578744425041131319969971663713435925474305308243727410597954453244691613627779081475236054800440751355188455655345954022626953957210895116206874123863789979276394593662952216812932711226628016125333512727919963250983637775018270855905067519089233371025863895464603731448561350587640641538358072795575381353258238707265054562581655869991596909083044713996437776408748923681840048360646963895226391481152751377596571021665052719818533099206692918286879950296940073177936320418581687337187684301927058432989240441368053422655052479003319883017263046607577591687648410059053448124040138317150432274091842692633344546812762891643009248473000367504784711556151628615915904045799174529766286091312141646346529481251709997143710244257526369326199482479589239882063089817313784006065600534418781248573680936560796239002739261770212817349165542953946294701609790081455223269380287880221841611898473882580857951568028981308509923319916432088173213592441523554203053837808829845374434222224441956647250578724213950375648169421467745426775077941454627264420790032915893018395419880474512651937228464657398899570392310621857946008967000247372270677490142692086619682067723215034893492748809917941419139310097828714359101318195502997781797810451512546872798734262205210773590892690210162418268098744317097822722039827045391573009746650411952713374568860672281463065453761551603908560724872971924201269869830001337576247203641820478920266344927533466316366326903473777902263450586464744338394848649928221664092470226179815322478510662929224714397146090857925856738341989811080125270006196444616328954182685374259678778770369374863380201478049454980180383513120357416659119757111145930029704658275433862912449442414492852755957993093529807913984975012328578293386707348818823669229721966690061946341523009994901008399202262885266716182688883822027305990860469270230866099518418639520802422847154573900217241623212877337039075026965082022708032852278563937069009660574860808327305658025772892114851088260246778872065222089950724657477021795500581720824021593398242233309521998471810986449519537548908501411176886030769633540136030512153013204920909304621572244739642425207815262213284335412259594068962873061036249951546187184981030582163318647087030655396067247329015346742690368517960736722803054506206199466939941346372490513223218649334047363597462882690527014989701609973133713632917887673789228185419993349245968807169089011786736957347974629035285123341937045852144234939462685794057939318627216556523848769538946908614935965098109093650026744668765165125791757027437401496056368614887744205650323552514175401668577334975954950604472466963390586474486686465298514711603219225908622841382300602919717112383015616493485786743490924031422437643872620364465698442193869362065414156775905322934766455226694192950509087309942399401952066426639930718550934288926986998905122859433843607988734658973171508858136654335801608038967134722429994656021222571314931354286696389999932995164505367489955417833881694808025421794764804571371696842295992164431201375566896314808867354504345417963261938954001991755551308238847074379609683175298500006053786551600665796123486375832574798149481987872108633004788125398744884808624067214970534580813330415784303894989307240465609448012324054863862394232752262375407829435077587559540300358824327590802074293422719174688253809549848437635180821192160315314683169803769468928114917321146219173495590465897670738517257475644700783644532654166562454189333928774622049763992242214051466675017889040851976935790012658236179413453161180665961373662030881288793381529461125970436654941631970031768044500684059722874990126600181859588939545487211620033318918095515915862355300293269618552686563116060133519748005674953406404880202522505723550792106942442696927916822217742131113369218457850414892047358113702502212388696087750105184075532899141818258212753245808426810925405552152921837368157846859779105219155703318185174069145292348742463929504417048474814800270720895350125325783532117278639634020453948483313544952682224792437800609264900382741587291604462413718827431265968982221995876201784947388807850591829076103378867631108538769880810780928832238242118902037359854190445327072170552366810787302305376468382539397218832182571397848506062176521567326634363659113254163862613626765280305238683511810174629286211843430175795000867352984058365700317890192137972329332951630550190690982615298423246827826404710296597448525583425106122385978281193138951980691157477575839926123102336049246383736151021944382473204122393707379118444624258592772435147978726501352814082311015916095780794093773911465204690788103798605434820385250837417100822022738410183578721890075209934321045218991273740741758990926946313947746224811722454624269178830273487634547293968129762301046779960864017989941170104893638478751681849350353949003360867959542283107323073683186475286178336492162179559453997323014343764711573884376596020999386565348592076901855060954435303906474113286219877318165755880206283825469774133462072401530173826740842284580009595280006286519771135213911718717188498746749955043219772528287162680357997977451758931920421361485681819361943943220879575030022974607610894187042444213264986650488971378976427446633130902496347596839373458372188911015175668840652796111163131690749518743188913461902012106739696632024693868317693533220632472531515847787136958751086810542229467353288065071204471622043968088533475089114778703544741920354328951422395204239718291568211268427651727550340834846089011993187294675360244370871101962295287382355075949260588777209935827747300251450737299191101618947523654895667360233339181935107435710091974148170514558976386102374675056923115470131152928197428583317728801162197142875680210908822805000122247794898991691013477187238303240569921807548406646576665404734708792788278659216499734318675957710942147693279431076229316274855804266324329729598524778243445345651448270147922099353092703607027217355198771432347345045510436284346711606432905680760681269895258550115393530743214793202235221118785072257877016186203362154260092640807170961230246234916335586999124313227499036537551003329408439058506577959336151525557047114421578494897679919451886323474069019035381422780695532434025818034584196731139502764566999978061822621081084993410884977738094598082462939948430976137214150768795213870570371558974008616548993163215679805846724936740398354884477498553503744272745183835234657876956436112231695976455655067871126243840356631167855545156437189527492249909490651859543062085595882351129302061541796686678448787632037892335642924730425874030240602456403523805982345695302174795521693883460775065337490312050508866566699277124286233936275751426335013014277592008428115388384095514238858925634754761464517243994703143035285111019221457043620417040352984530730951235946159607434083635929177865299193121762790152459723071079684998088355545735268975740101223681435039008665618525657554886960934369635259019971871590870153064912082304432118320939090617491079908677695113750153544816021937924357933321011845054742904006862027743102917306730268160382607354553877266931710157944020079164658979725249303081399043356785276912733992501848946375906951980563212000899909627502140949073636655816960862146724335479647966444467398894467761875675367795943158983601120510563092648458877742594238293105069868695527107454736554647494504366626735491966285535046685758175279170487680145280066868853929946259810277521006800691667926589423264959431781385340076444311030262826059793352732099698319180915050579382549486718321092057703869739706795253156307210109902735383829319295177159726647476039950756756966729516845475238462733836995592911653863912797907378548823207661100664490365662996230592760572672727960607165021103375986564720942166236966741984425660110696232828271437871178681813489453673391574424000495164387669447141542650849130107033174384073751004455363445588468449998575320836936990871547883245322513458572881599607360320737048609301101700562770535120982988957690736205092412850122366912469157224802917288397983764797990249847084885157018855413265096517446496856373804919508315748355510063295383285223742964466041543961732798364199830981715364614512417221962017612552735860927267633926041138090192482992723710000310592599708833726920592953515032653935435755622279072345429232243320717229074563138350164051494985332141134437659916919728183310013835406382366008131953789128120412414589530693798043101921617363597455486468191834028589442033201070643003652220142486237780315572669952866617312228557910105888805695955151401866338035015743516812353269578967948640699325709330460671766784158232346091302235265541266144780398160220333199340005271802971252191593604534168831916657706845011154541081274505196795821505525648051454323629530317376256729112510214705642616658110608264744671544765978286813600333732857045151434846080551086312456802572913471801432888718524527442990629157942981464986363981141764603119428940621140986146603543098259618912774951440569844474300468579463011818969172714387563577109485891060962765599473194167474848192022085016822370824199383498303882973555994175877865329732679861199583209977224934050463540651246148514547101111973635322800734392167513032741062400359986971069724260596826379529861962583452970467416687572372446103010801510853546675316821947818871591668898077110019363766991368282168013673451413131236201565077867037181778367560129166303631888205932949579205779096711409492897750862484558904312780663484796103863232671779555073976424755877940260337101621700987902448899920164406079379994659396888172967498613197936701731851018144871403004281312574005348988561628384866715200544920748963013310523979917121058251039956698925070789327188992936701949948181985833649977826250974797333324982790217416444616232974022231877203227700075460722729904043635921532129507402516335985921419553939526485967006032163461934864306566798075920932501226726847352658882294421568179253832226451896743191147187114144871254041797595143340880574085860633300343765182026517141504341056814769941221144780862063001509611038800928199464515852981800484658043710927282369032689796792907083292927734279161659211241733238662648577162974761644960277717265670619438849231053471763835844593215451390368695141668350253785898895731778116780541451421236433979842229730453853802729638579422373071599995950671275541563508320293044822456198690860819102174362834782699806077818010731710862462492910997805130634929243225989738766065635774758155448727478411815143053381110178042492233425709698761951016573195727207243189946060657523177634195933520811911341864910267050705723378963964040763923198087985997886150858479823037275441870220078326861961220998586677713786382023044499347635680636788948282425952412979364423859371756332839431134539506469144691565937133919727589040851201589849822327224800571346367052891679783651242691014623228783973385179117483751141694210848155652562464905188745455879314087906361957974200737464544010383463368978185601061594303141704525477419471479224180269421901687713859172692990687944604605192200658147812570383449302375770344001328613890195508542119656774768012898679021527200708306480772862892772848678417485530588570596542915716476728600684822481670180519941234882346027635869234482163699500931176489455164029620799899292082323253612670868738551853020884676080946090161809128226283532880618961929322213762715047417131689387022107004412966210127965949069568100217789012948250187398485929605771187007752708953867329010170961166778716324452516407653498635978304702698517921401145088601925253359515782835519278181095862966170327415567531063700022750322111852901661864749569920083170780780287667093690043957075085092240967960187065732259483599646801221472577051307588316646298738038113808749914243329398406434118413478053700368196724303052332995668709849306023365167783425091719009914490456035929634951413200617555865652411356790377627408693142691156576916853956618343603535999725716356355649609784772336342103754669374080226721248513440838776684923324710754398457652167551997070126506991837741655910623761573445905300854951770016819033292139599681458051261326440686819687266519933665785023074138141462396618512642959243223561339611817752827536077379266529030546704250527219414894073494935633267066119874845209520125998064601687397753798846631022849879161044923068895615469300441779916198699760649517030301021368237650566542685890283763978513409695178690148779725023075248815174152895538107798843500496884773315594474345193035026994542763594746134550949674656461511152768291448218832872091512707741570619832267995957709505702910506717553964993511825114045760557385619268555925262504983312829399384593754271115674406879137542744644206984426226540352007164929892073994945521434810482652102049547323709298606407307163784482078854591127769488786088219245005755187527161636782992604901041618768270725914285773800556471931465382159643362857889262424428564028663437655097576350275327076701660863046444704830859465190060055543537067025475649774627016237547527944299541289579283683559608731301659110592712664016423379079800217734492750350986670805568457440688327843389318299635536474261617007954133795038393632066074593936828881014693461810571146013804468887279487876762867275848758757368086784091217747163150780953386944061385525355134512393593852086339402074718571929385391802045134682356069323724665389152026282029326706431594442875733225340281638005594155842100343166492316812011427095367307067586776846273886907691567977378199251470103408123129746125803022657463467305912412257910636204638904028833145588747248139462112626771582504503983898218831349579790446668487010385786803647134312074513360028655182256861682468178681160971714029947758522223555020816297234017793534474111023200620910234356538328943631157897576310564191422002751040899738327493756500996153761576786232167734647088850398043736651004920628469192271042814249039461815696368071774382263803698083462401519584004344228114935450105601947020760229326228871797181707601650695313702314920137865349358939544817938161222901228805836093886078393713572285546391976619720804381939635711498593896930553537533499231003612667920163450011728403426116039703681067546651866628846230112245797060115279109548734807881492813760922239972211313846763919002012889402037898287948369508200526793541159475391813638538161995131989794906252570485205650894587915189212685601371900203669037370688453391631031228435086043718951211506216864638072584120598856176807071920880145267062639902734387370741366526040585122896535954074533003734224700849683906468351073614555183700698757962205652593929152282767055923072011114627151452475474099572592330944964215727942147784286456385576624396379711728310048955820409869054353921437882002276309253574605855246738789063709266080299548711347872931122502835046874881840617704948890256605892861496486655081137665551318128924550847397968414472745978949010822337869209961272826024800862284325823821290907799098931679841160826759221750885161945481343070238319295961892272174901007615557093840475503871025681529675368418526303387312210511377684694773150863384173635365434941295167095576400502077052506079736259078693370413479815243622444058793220998219138704251943040330771690070216320397140144069455333230643703695985024364474839113298795385879517147479923969207595330143971160888626335828485095872315085122394432380911265303729388793374542984017750721984430534551130208372030115231303895224934407523947377777496009388453829465018068548838043339819347908853814867575734908999600994833215405173720086191781561943191195350705165742144141193419380818961652562076871459021524481102785557319851566130914743293013085077997002542163639714661757252176391341510503249827794124894666336743554401127268237240630239780289961894734483038320393109463724584926187799218235935501475318504744561570305332830412600170195336262115259832026215346013182867076167182864479317658829484783364480825251434659917385379136591449651183917739896979360980842025448864453674034618000288848367821312666286323852327771671752358998498509246076088236195837872800786911011329921570317853260105800684503661757810173494909755569634061759447958851454259367530432786869878601218267494504581041733939282196572037988802327397086638993513320506634896886633273400498386339272977430794715316563832573589549716338481529834998667101825773204447686636604844634822583550222380989497514005126132749007206687223616445529268981832583091300574726220642015645110088112574576816837115491472639508493683703732541783773600605225060966265708519217089883805081316314597527054181663451630854827894292207526857186573220901769032929473727553697992479860970828823564959070890619082244501679324639340448393799382691420753569681713125153231463583385152512919810228500600856728521551299667489290217813729504349135465227991163473245172935976168514347264300614035746482670485307664824026298975527372924345624715541106809833909121867268882464224900385287932436284060385623851930108230428064263193269305065893452845198372473715233011047356771836471201458102889907713781841577196948959413843037844391334492819182546972310123323085260250970471237759345456139438523787378752428402098218663486682209169150000336596016476561481987344107380698096930096568023036164558668676696930047222805312103886492158449268805957733404349419591222290652560142453224062733527882610353693874306725254305721058865590438011230289041479332898685671915838041153092289992614899496271724924716059858293463462948777081751161085851305734146022641152092317270269965710250775133650351424259156554833415562431925602413633504581383305768879405981911253082829608043354120390028542474423231586150212934147628922857067005866385774861397704278138278977113564467148693361318596599050478931466178244447237430164506286861292417197184216949683215223057896831578716662592572734910129489421200990808229299981886966410620478185092078497058860851227966842118871698012802540609594573323939833398068531347900040582807849988181516599904399140488207408221997928135955502293230886837746222832915792178215021806714889884255508261816929383306323217661313431937313911795361603071124852406657481538487369650524315566463621397346427083434774622498477074564739855921681534720553280845919691220487623350255627252894919591065099791777905038961864402211436562294657476881452493313504201333960244564098675480474511550144269009952255620225652243302359792812323887978138900422966124273891529238538371676558986702237465572868100393182646313273324277059015110408902553252312774108373937615323148907866307244211665933836241585405386030724914126591153452662099115337701212315707371405781113305507107228395526754828034682941377185819204520502697280138156125195421653866288807680603725163697477984952468967469529774438009795443408064692349035665994200805281922811182466085770537997615532019916100828315344924346448510520094985397754070363232271709188356412331546329103317971267549332363972395928193589478040616142534044842727744569645866322816107635972948360199755226392290324618550926112938001782082825278448142149073449939897331042253186337750516943994593331818796132115045853165264518208779517996501803088945013184095307772048294557761760413258570073342384642851892857455517083414438359694820906944769515732748509646524599054578411956608041430393690799105433671293482859463634324607629741023471689361498615565667180470325139426594875473384558647212227856905437394245049644911514223481123154274676738866949102127269434055238242722595774050841413621564416956063564770512883589747406462901795724763752131972405278551429502079663296304579100334250416046622417710004704627484100053827217858359378308507738137502251491695637369595145370008937333882389798929032333114279913802783495258800287895958527691271685695723882718367413736664048390212409304637988185352285882279337600008949407878129038928595351134498309943825254312257456462190754842845875628745042556179638655478882669645687023508659641555270249941653185090614551002197515261683864703445170766598535469687543631052986590038177341437046744753818503493361051067559928258637062518479885853277952869731738152206042391807593331560902372199420260206563429098631408281372421318974784327639227929362994701385088857803047416212622513781496489477889820934462842524076428427047848974841994377589490657509859112997569822914384206127381865095179339661687590304334271315726196080094890789156233292799449968995701988063244509337505367384596568176948908700173768760840040144882752518003210862186655759771825135599553916448010170361717332504448728777555984750064679251294570728749905072716180211197455667163971079303920824518163028172357455112353685152308705541186031090316316568716856811745585443414039824036305256075135035794941426644386547617148204373948876218439530483888131023810359148515779643908475331338972895789295109101134249970511045726767575577260056936436021914777895095469912853670312801775204173990548028076125644270119413773689409179308876871070192813189641473994861104553229694364794242734446223991021637767145497454101871241803633750182377103892609402110870321707167692656946201221179629709199046822772353785072570557107564921841919337693438755883742457915742577893212848381061915195128386579376285513889196236066163728062131758088271120841515600179631157609183916813452904576195776956309840014300582546499962932211656874532101915635861919329169653316847876609266969343670301907000409136059609829057971640329298440055664304575128064290298271104329910064670203250011198600645781881000476183406603146682647077767780185094940250933216369535791827982436435532184438379075771075040898237419516738409192160825863198804687773148622272042897680056542738549732080464080378015890151686512054526816593033431939488275579356737403934658864116010958179834005944383217867841307696060090851292268682866523337612851434933310010822860094507977780625634202073231330031047116164733308133946136295326252617318574588924641925248212111101020659152830615926718132689380696085412911148775974662822593773220477037338388060740579114720305251524500812945795925946489782128705184580860641039442982418464757287319767728095831881521223049566132680129967672498455903893557631366582221304693766417976724462631632238824298228036367788336098674712527136751938732576873853194902532135345728928481394113198180480294737334728500806682447846547476670417235793420032079753459412872326993514934172386927706865890361915922918428276589035751945402872193597092373615136584651970835421485563145240130402967144550725153841877181119240095742721156497950883932540391009446890397404714569885333573688535269081601922711720849673784688209716930548085801841688014715670355393956785811052019923489539467614106061423897015242216426198122209223819977749271014105094945341353844924483078123511721492221671750464296157877409163518705369786960182884846098439173081336412924749328935138747100035684153213244130802961516208773616611010317803349009449033920816197892191882900036056228677826884929988211485927740070672724006264469272801900666666398325778497656036274270406464818776571541532552108203038483436104590032839103271484630908623670132538162113672606709374690820377863832264268316648898450154578740217555755851849713970617289395740603316066157590562701155456656948653862188937776057077776839974911208907302342376264933024388199020353757124155240587483989489408382203902976030674458348192727986140075296831157018411143919525998776344506460613998373671535667270513707317633574103355766815692672325512928622019021692058192691189750335017259305026205052627988926026392469662475337246838349899128337578973815656992234315372526998686146449764683724581711993253349384003233037025714922647558558301191912075721889307994046173743632153698807432900109910836836975332029598598375362824997862787589317179614541580915395856709195270292027316886578386909031712825274147656729628737149321835462069227228250290964759914514866839679617691951279726480783427186948900745789309725807891911220421207660591363124942111849020700255083700168085434904560072966460234841474758866442062570372996943225799486608317430239541579752892857941693562212945314720848946598767114021044582150211132547647928721226666406966890303430659363532254841543837786502495512861667871782175646580471656439919360597280218035251685417320956496258195306283430346793611177666284068490330861697825192926752009641813063414002623443071944939736664953278858396240272578336666639480477637147738285166351192756312770262056000100560141328282339569703799248597709721983469673067463725968544903417199817492308654018471906967869075514981957658133027488942061328430405837499066944191239358645310401807186319061401241840531330913185164593647351180655934530711802171570206239898223221757885100466464602463976400730986060687427239904043262185235056725784738275252755646450621005717386406811819970119661479038820058769157938722390606254436657813421933322322781915505394147909590649284644126054570778199037744168210843465033948560207247381346899651652905358012794922036101969507871735960744949523798520110431921549304893995593195432812988527784014594892215512735093758000409100486739734830751884644284790832989351484469569397723553549670941044427063319282881020088368627774387566983010436851914826056403781041384757354956588572489407625202854233433403550761937944670492818670738604790486017152351041174324760725196988418730841461019603672674239179558374906334984708741786073228181359794422451458186710072527544060360380075005782289780901665193645500218539108108941477610752167255333061091179896456334669131431356062746989736708485198158084122509041932398078143271100596486670012540348935276745476029289849370275242910862141907527457356032505850605930681679641483717568108480947577800407013927088327830982517651941948726983239165439545976983860040411734046953226221152125182418079224545178180858947207476791705314207371595827234984422164251287328573517497994103607197313196766868464745089717504597761428032997142310141164323315322343123510556041137758947070110596397523282668242323663360860720853419558742950538603258177955319821064273393746890674651383699233580417739578231956729234188287218301643372636251317679103329029596145343220157173855940450812844571100943079727980839405259232163195546411372038814289606653038098215025441666769854754302445318342591021226462535216031567366197999555257797369060133905721805712193469152244940176689639519366383185103457658516913752891386114764027113667558431362477428501137847020392217569480206971000498703665156870473370814000724058115181660891617996935842477871933475238935039320306482111377803837955194100634939090181649274799061636264873310816488671865834718051679521470757720855046351443103581147411923038772322793334456465665172698748247517063752076775597752698525320963384557797122504577316249084783133289213101703144272825143840937040781862981037898620103718810478649864414860892780164235959035798070194589615606743704043223876306854782058967600209008599215722685888781957325686678872617857442021316182462090724072135572680517791026762959874230656022133033093104764938371184301311654363890934755336156906754323458194924887707153357278271382233384462686477358230298758055499739767036970836361841731397560355920048278760226162121458067327545878805882720655195031689904361033060524378374593237430882265517163856704069946294037294753435999455121224472351427222283271418713044992928604823445592788222050584905968976769469263429270985082068283855659013280801594210084859902930139561870299358152063183012224627880185225058945393050419806006174523087361848764093573732964554665442700244587496134415260215428735814445827847676824756971194037633756162336367892304515252290217517808796982976659316184652537019416262088143167750816999122918325779542437177550429076492861418506007226474158929998048053820917114971528011611495023887029175572843405394850381543225100814595479450801313436013021082714782271150493180162650916998367348441395815222203241707420422831639477409051371929087285652195382230299822497026449347796498043210796511545840015730872029339243646083204686868955487642684293935930081811764553368142247772798872228801035172835796984912694145641442121429946500593656345248262458036319904439806974410822610672057420937859201512123560505358735839596919980257854027776689256325812091958998190683147402940214249192386922921131576791530606315115485279151475590169819553028421732972377644390434441715949480687019747071225517496235376021730628217386869101956797580282346727821259528356896215901616556048143225001645869679629040506614055895193602633908530242416405258083371515054729041788107538875792176369673640633545742182878878497134470770840908145815385495433837514702800568775215785318563250649240140610879725106986202245502109464203783254066880353280793613718209326073404843958966047804259191039506194598857513856388919422607623254277438269122789142845185160091545844304331379181252927581473454794373323511137889787886319785175861818393911223407994682735909424091961235907314311538871551827205188032103131732025019349084910784787194646185164925642467456943121129284222268044739503295943020941207330537473056314865806597522532310942206432702332034756775690233125626802888350447140605767076437359053182460324251779833122415451093725292859711068350374170200848655664250898653906426271180291802765818864337420274727192516349725634600074703258807619296746217931156575002291604431786707629215846350760560894139120811051069836332507139931014896406789719196368804770587372247468800206160134684659346086649823495041277617314965454818991822249172518956630169779561395920727026495035466783966840304845225867579513103974313172213161961617367920131666795817406111128644526239187040610476641148070140076610735050803234473179488072256489488958824454688567135522467887084039049383735933931290967642418991335856926522839026951592295895829306350220391951458323094413632149463596382716054594182800323359692112188263194897583503982463870826768134979351615589859794772054225843311005933199314637107674748204687436966446437418447634464673543993720393359939183169009248497473826028165035240736229006222451888450539516879186434608914615501271455277125124611698343926713096697931791691293405234471933504435859023165808475926664042716124912085613053802488408430050730324843279721898553207825649514219150028180411589585997988054185057878388840527364187194785527262860296615548236435539585265341316967329105963358162562029081184567866503452297494858646688450047077149705867029868344236428675657031401399620522987789541632159648091860200148146204558286160048379068259995187982952811808254393383590039940766800531823258867138119238022879348702187630707600906495911549221293661784832377736229334742062167430790007570968140164419483338891123048409145026231556487742465425253413702970900464573821520479722545454029414170473605913877034807915930327761855044169948397773271128784580656172039419012877912112991869688980634516622726872390388918266700047946826463620182817131611993922745015152478918906741312031144749006042616270699548754765009987915793295162470917246150968529148448347265997539898225881359310577536319060792176405156906725479339039103469824502652960670897793734193417860782198577464077455892440920378520362520477825991942137850550884485405668197644809154139250259676570210448000679387299776676056228260527588670240679269278600930538017445926911230059397277751220390227689454553157098543648831180605838524326332118516353170970388069528952905780673878531603843630623517580240706899225578719417081718317781089911498613733732874070650643457611994526959217337404307924862862760773455692186052054205819178739391896994224081361338520125918048861528865716519004254289900890192886071159338103036932282212510265390219303979275323749539077718207358659464261893399137804654364946306168499377278044931143387639799099222536994420829344974467208016563606582343508830371769474815871311297072821404446448852313334289298291537076429064266144731458816445116566034575516119523019698181949957411883104352372740272615870259167887953997879099106945920215452555429840847380751585576634604906446919467699958501601477178992074611406364292668605600995993562100780364175683816216851605302813087513229162876382857805460547233451831234514510878377858906717279775156678424849819778019281802822991313392346114524461299283141253806586078039509047636676881948303275556014393685242736561161617221493834043636763644908803675933529394546061859922381509198446213205179644068045092135009153535947273709446940451905627038059502285364483368332652585812503524220817866363859329049229252155921163707118521403515876784728693912568782437411803695638109279045825583518720974262658701659185481141978475697629805428166502005549733941063538825220883180211709634088823041533518722549752102316515245371910378178839532524956064771427735510723504968970967716364026966044487888448668495832901625369957227314676106183974093919517496492097506544513148369834191046990424482825079761615229050424352599609335392496935695294256050005826633025740614365754114914644601378909267494122146564081410103680341599484982554339708515727914647306028964680370209293071883182451423112169599488998344460733218004288207242426560106905006258407376125626600995655780011775451899654948119277773894894673142786703283689374249048714262712141303036242127710432138799600203853903027141180455147699617804498532433843931097509101489270492416989725676084904861871308311901388004862286600350049969300861331227604224585009035089029437877109385052984853879517845115681036463467970469234078294129897700546609918175092230615512508715401871406823884580089615170920031236154919713789556907530710677805157501108670132301040124639455374298116077845144490944840915339182672813385987647758808773945707966470022188151379125139594860025646218919595541969322078514649390249842394282326108595228710453087606413274357172958539308078539523616055859805241868454397720339077689013734696753173926052862152054307289560505731190792216334689973134277644667165380555557728296530920493239703941872492683692445340539309573017722504822094658817712318776214632174998546757073141401800658172928341169144921555028815133187923272626948632975636078484750131602021589695236242940581617067885309202375524513788202314686769338763659718968438485838143905209377906524880191808366458116841203032267217273328305114091428881311145675728866576174733509504296722701760630466906428795012048102942628329512908176038576590628834129869398299173105588885309959827107155235447517352387390225564749324240221303035312741070838970000655463566337678669762450804426314190206328736911729845545545764468122061067618278232165894022716217566750840583596697088493203575758173048667377941645648778936960985920481256281020591520172265414529132016067698635095692287815243666728844632691442363383139747878679946560476733745419832761209791332256281422343679875889958061864548329522517748937746174282287607018407278063278953399145164834205094134091472731930332153530856436288547304016673445226490063931812834347365258285446765119526704549282327403613611839458602111905727530963116417677704953562873488656064365251349382295615399178094401328299174831523382661339039606723673653322103041318692712309743366600616904443129331803795619198255984891145215104740988984017914627484142221676817537595685035237729831087002586246039593639718951017093551948134659307126304306773533517666605554557751154525063590399710287222657520154714348972928188398656354402603752926255201328633752411789795136546849667921152096343738575471349584074642963592275880719795122509251194381504519145936108922690600473554262331770812821175786973292269292667402871617009302161087023762996603978994417412306906978511654032220656924721861090564255573829262473314459159265723037504608701032624101816868890965131928419686897487254216584415508785285424773098391642822954587041866324276932642123739719860864303511257523857772700100056881477054600742734657511140414817244369106337522584458703378822560388113418028262663037538918798234533008395648257230789588850925835635238366498432416215325918579640751568296286016687930921251386782876900422735940293305331933908147083624904538309206403922078543394935751657130854897610148326634498341758341443269423121078605292105778817831606608839031482870830366093901203782841215370117163818134741677416674416266252167394849537393932075863381457783881023992853297037028820072149493325335370968509206982305189318481254452306773808341753761617215863883190885534518872410398033427033215466365369848825776648505675022565243163916525541012591895956057853046300810462920348258022958874027622103829668610239915496001173357390638390341472848507218963598759228217993855596206683796011252288658643847495329843242673035405926615391608025631971355061624178807119853138001284969993498831637192461330510665156445448632593209422532974769795174220954293200758433115235454968930082930674352946794006792821879646031636494779786171753529204938172031910888799207494892652456632155831304248852462734674072389838677657445398426985417696866481553241568212790870626781367354186145423321626917002852922247117288526482908811253666119648904961414774340795165711656022207240277997106995106756379806418581581960220833056102187662633032813997065359227097251643908470585935715858463378278930011059543983591251470457545277890627734151929018392491614830390447544678165165174238421404282198019999620396418024620848059937128420559920556500688996643060183101010398542860724338627883685191251489579380151486620245273945318582422323573160784285920369386923461677308133968137698635694104107611008464304885997784962254879503025226931103677267365950736505534947433880586336560255069487294225432633864406243372821712543923219734100733036167829384501252279547939853893469494763949232273332591869106413554291558911656148778236174300597928499342954443594768291931643584750351490529547410234629667206570582083020572232497794719242180751593990929527677823669803910823989973615341403056027760762035441600109510651952319854509150776011796599698719037559578228614101266724842792439263569532415210403376569044940360165039546140211056189368736475120144838687335154473949727285974831182379903602528815142186582905488632287058886162820477082576152260820480683942959902861525338199716503244101815719950477515816560488618712698461644053076983667886157874871289858118714376190529184051649410963920627460450648207916856016962024398973185414303594409070372088530201107820851295611546315487932791989663038351906500791539068165512522288425291847746723234086014593400512754820804922332294559646566368070289225541696480087718258636059732519467480679063818843899149696305331420765734215485909812815293429467131488770871787806586021322849124430005787923989587790930786767642661270545978790121888216854383613168749729381170350460078976217531879330913939866592541563130203360208964245122126734966800459807329326494131147068392634784151203447300660074670034440727427350644096739105139609726352559014469102631419337694777197141618450022740841451727937222201109242976262758195336086326812983819185159109121286334490298569242321789464634708898769635331864529139213684064913087042748001615697932272624821258403890413166409094413850765989006984416258022946855581887491005491947595971265304530901962884788714316857923867652056477037164342419129252049796364636982902162777567562041155431175169506200174092047887763097329362259449200133005102366830095234618551960182234670503199841741761178229323888016165594665186128454521220213494996693999406950238737674525513456951300861252710712346752548350718148773079023825196229569421024754650114754798672471954908727338449830959919927178215372112185512902363764488732720225994002891525118716491931573215471160582561736584190205401416869717494358884267189006475965322686962188167442569995705227913207892912922505580815967089567480540796787238073963096697313674517506686489086504466971158893538366781992437138448031330299025227285372156072360142645800872324011698036401336358454297923792775749554006889021938051550971752984230575563896013972902582896870985716059254874664449740519129722820546537706349138908859952415392253855928902792702365331938308605994792879797800574386473982286613843041850649780498285717162861325145397704534819736572002750061591371408333040338744438183967916339038051132751351040520788408439298058572337780039490915587591751390346906936811714223837964210402857233265142520347398951989941342588031695924059576363003119222245492209490232324787538355179939008786252325585155143570399780717997988444413001151706339810769035003456780101278588892033817704952155234334633644207407173766292354720198904221324449550026557230528591672541837035753043504915979635132392937801206899212631336230819792244797168055657959800284420447376996709135681085478885304506748339035262482712051121257140758794885322623448147537330469122485116309130680353392394653505413840543671354435072062325957796372654524616279328575762344803663693704695366127931000845931391972827951223721577158308764003003936698839337924602355952077552241352054262494528561493125613180597583100857136397618588691161604713320339652870559058451678900961442063490020398310180638712699560713750469715936756859090116675545170269129275374919481728524028887010939027770665220494574365734058431607533831235706707681327773166828102137187191174274266373346082372183494830514945003126295165101350406622177133292782431354083443459142863432846463159912856996158949170272158967700563779142425862760449986203148228740807790522494526732004328708964864225306122472887143196692945016227260547865428585676475253404198174004874232581478574128817835302634189611597477001507462818509831115735944368923836886753397541649590483003806398206269097875622164756124560180884879785187657246810364603264442140672944290800552689369757831611600857630533323217105622822032338873724362970596412853681845775257943891144685098468207118112789720529243269034837538374411428170310740404653091076271318068643546869212121153122408105077614033158061272398713168028978040295102436942925948458836593221835550982454367382554309196205947961765906793831363403110275646170868447163500363866538227169379002107646621027517079132994198518101926887048180108527213993776411843199387050374378048089573661829899767824957719793788402683531129462276645707342081027370167119763327635813946450134930037578974060254078733088658437322984491021954626436324425736661880776201591970298325620951496677682813780627511954256848614989689442943021285555062969241683110937090896175961112114004253921718055188583142007113699069049293656067342498850580852956901539905768716163694440868101466636372842140118129309558975978028680714863618973370389462046039423390288737625144273897442627554510439383941528126149584682607356028204197442300948492378773902304750774022999737973938586085979282909788172998901576019822041343351707950411831723338765652622918647505953586711425962307467727105068177578318258348302031023223150283349705269720135519495517848333305335064873653393256022879658772911647342105035820178617877175819117121479658844735240145641914291060238492955710684207527742221475166499312526659058397293571783918560952301335901945296648636456537864156869388569536128691702913015810584980945640546807972843656036323348776975362612460283769963746767074784000977678221290923083582291141551116395439730917305447528957005410391135735170323550754951909830644292790841046891172038231367076753427066957065667865605907910084457910203308362414164317068141104341881975819899429713765361037349404297797722189547430738904426323945882335880066313506735546556666231713685094244321536234395321305372414016671269100716782176479146836965629955965484509535816894843324356509991547004445370388505372616677784168218028849741402446965193449293363600924646263468280998893964686665598873369718843130367742488518409481097798843800200631097146112908106904283243067464454056274259931138533527969333736896087593472419778354298636909529598730062332623639245607364849803333443069301122318258898846178152039319662296540604740267317451242232117382394215857521355734010559659010905147306431252491189370002591981641011471604813067578052265615521997933411084384881968106164843939642868392144477112064953160237898115249238668208980288257596327621015573604797391582177758592243921333814741688621427503197108361225611086148168704644732004736198852422701788928833182401591231098739852295414876242012637153873237047065388909354164704535160286458098402561280614804107228882344926577441544542406312570562204785469147781216085842169140892511060308238599517893985267795952952801530051232957701578205467603392790011066775860547276911351322362722096019437049495062983668815829162067070614520470849541669824095826366206863910834606254185217081778398119869624847715253241560151558116353116907733160441798274663801343668617536070976698617519845962229143075463734751442703795609091972170431488284854619888023486455061309267297500700592615144635697235943854701434020169931595967556607976727434712032286842575788063137028775915235513896451098171627645364310894224337620725258628467157704454813262468135488677159201263368616719639965526510789908100379175025527136247994888853073096982393086196257686131672201893170800430271367604848061825979725637261768588117797243634271677700325492996532847195792637640199768626098491674034528957130656076686734645080303892521995558953488433139932749074984762348231784431968714358393223512132098948583829436371222135782256090937113990039975184234146980391720321293113812652110933221977046055542056601146108064095284868638204044815540841656432343479227075648408524857836468511013566763676200222092473771735454446470206464023625255457855653617993722291874553501090859956829937779898908454757938053929804286090214514353830158348225154417308189297150300968453142179500458690171906032324827851703514226613086410294130179674587094958634316920098029909909066350877344027491595140319643243688907916135167831219331919422411170568742841071947016389033481010790081589089112559964353407379484535063131332266143009203629283096434003078112593616992091223296276532075139030191492875835399160809029779303760144620628355974932500967212646788406552660717942028504093446630687089280422871838574504322162006037760414028502649838760218455804686041870589630189849846807266304170657077489449019553788572947410137637955665535282592347132114554090951991839994980448011385276583192987213823636938014330700196249835233212197548222163605653543215786240250525147793370032451358832965958509318896399904884760811057384710488380987116597536410527593446499917085245234432318431897992407595325855893765665091727056803368421699787026600641803016320072967572027863607314468777974915981810535311163828856524240881213960282957643854330199275510729683742405150976591722591965373599950191306228894632239199371036672524403456823973626794875277309070091040712967798511277705604066157832406033409438759560127326559953894136188791909008268348585284328395957361061726685981275439650294166975366751137316282081065927189899371892925025461589324284860454019189919019671347940818628791240211268970008319313260910087636455714991000064233636365741455226027005159332141839811663121054763759735543925881111094625706654702614991043088250288122579973729294012348928780196052703632819481418290865369190889996825922821741265833382712726346754374005458167445632039904679006235097765442631476833318041962272901376978010239616460749513158995922225943642564099886791682149821735752182947796916756283855026282901305609600542799389989255278334723100676513911865029536767291725620843146824907898732277269825145633081610458685080749700096526666628088595531104426509537902335027010049863123547775159960824104904297080076565886324450490830833581091368622101320290138477584593151138155261605748121157710867978352617545555226578632282916649282365547943847071575979723987679378147675765270114975249848058116223546822565375798215443385568176460483898969965639619896913240507328948272473528630761032009112665272465482892857478141033148814229435268272173511064829943108191227483369083870784078207755472797350152625424104934867461499300190595523507268714721146800972145265670134059136690072443896222271399931393614905564372436712717596337936728940022569277456254216986349904432487889664998704577039745550697270603428349071365470656977662927352030894184967645668286023099584879278133179475657211644045929545043703826081927656667759647071826244902227042719674580246983638149709970820204142129929122607133018631635636153165335065877003997033236161485799244931086052808433598005149959520309289766394301628987592391292645524703886674866634742351025186392824368159035210429159208132522902209289228296449620786445539513665720028028899436196808625630333090029642458852024640421317416873681584660588737770289512822689262927182374118924049412109630155317443533535260887790773645883446102303007830316267836676877334689966467040049204063939024287936085885131003171286584630450343648496452291010809321641479786509286368635604185375536345149212972075908065673908429182017970244297014768670181124412712983069444170229516007837720072266176930539455548733863677556921295199631851240763286029265276142885321779985940627311806451942957405745573163006290373787525156970617170208639981585269719889361532114877674071605339849977307352951023888458604849438590564876339594954170660723616114203056609447526715048593506515504248114075952232625365769296037617664162003534878517096281828655716164115892500727307537271409797371261372629078292085927903367425417787266949397188192170684473028384583403844648105044296836365156120599533697711058577479904223547737923627671728673675782547333385292736708733635046690531528368315760095421471565486951435142149390255133123357455240930110367081948063925008793298767787473954401325927255023692734550670394202784818182365430582702772368690229643602266572254315824135735133428527895082551786951084302579157177592741680135076337840285198755203842971215708435418339229068814636392928102697915457804778968419329244682893170367016195171188728966678540311785661551803137836587560990579484410807191096853151734476300920549706304233913526975547596300775177952094766474024611215717568497134138123257296690731871157212660650075357245721957949377626263125411415210209566905626072021589211925567474014671662230255110239102541604565711070623903695005490616388174001600584719349221470219812643211124434524780000048115721370496570558538913126073033325775479270390321399656419082524413183281965339612883781036482409248342278403713708964517390082522563723239085702564874023627797671172958228771515581853303969415897194474585274375128655651766807983961260647340090077692659264514857252375816025973001584133797013539506295592852534056111198901214875486453722507591384342936492487965480609077259779374812212816712186356273066739865232282848725964202069475368035911107368644492910019252550122547517495775453412254234159516592109394176125264808447740837583518792709402187190890469278060400024982213135688344021369980422316868741541408004743219576974023296399137206577414565336349115912332855420635334091390862075377064314101707721164482238600824695093641316778224819150779388861781696035626975592750762345534562596109793141912713305902650175923631616220791355410421719873211235431711803704833161070079212240439061498280013314353920793952378378780233502426133486428939581087915746637526996612093155162534503414993270610063768219700107869205903715663172088910974420655125096313399905065655196404163027415331452436920394325925696755233080151279413891758791176518902950675513524868746807974906214037651011921532262263234140506291475561658137642568191226507320371844153994692595136192733678822268959160259672824596650110536465179662999653025387229121734833837409308349096039119381611828089899192872693978253624921561614586942359236141388771823658763408373690895002753934514166511282866427144166304010633568966786825128461050968286853546982386250256410943202280223133170381493852863259106421324978303633491822634342885880486804123013320497891467564594698097874605336220439747225350691562866440107910504382246964916686593561879564113951121910763745803896730825317747700782172103418931575668476901367411614227182235136091366432528653114180888552214720035293136617386885633929306601723049543893144409805042482835622762789598213182217124952515313538109219355357505037992710068487759369212987025113392353913605865285616037688822922021271665100313153179819664961286155208415356410129827863293236538786524153135300359430903431263980457142501105463951842686701590820816129271350543257147489682566401464067523567836716599132766889006687987173136752738709495736859686576601298777475493794852802328016886771917697794487754177804885759914805461519236750275237396821627924668243187195194586155834296004875586821223449317313336198056779242128512244339933503799720927507437855749948432537832373509879482041675392771814066261839987418617864551381590357377810978276295386647004952653782502101088451250650032547412579752231597038232854032110931577295972002034729001539284034397016325041316114734431080277532160333399319685476425193973032171453593808346504970638307804473783857687946248967170249415758604689505198727306182989257429238819949590805775218008789568512177365579915496691860621050048831316486467034823552048560779588968824957625953454974083455616415109381322638634308366341851911147061360494138187916566292524155027775081790071643625918590871742815423178384936180133887993620061190666335830153261770671374128003026418653329820393608522938292992592726005264202280504947339875878417929203064078294838041994506302069245698097162306812676215448330209269189561105313874953847605095106506346150233084190821445872203704822594873716721479156982703335525258752118055869928079574931737057602139865548724197141319782358495917691925528167039218099782256688125194915956215868404701577365791053712284867795925953223125633675814114331724892793171570944086895202944751263756039389776881572215618665154414396958096741763975090720269582009539458416784884259761436397382946768607622157640161949438902466069496715761626168696876592455869018856731527317924583997615320289523045314512153267909300920326468110407821854611189325857558592105534627778656111085240583316470371886768432601966299974011854563023567736201126898840319956108710258195997590789200024312240122273421066529175626243212136603085339156284677234504023567082916338230189335024018572526984668808224760335212872070242696514521606043295565929043122139090882648014183740380947327780231427185366142951848529688951355637812631461612287389956949191586611223646263436948788856657811681850259094647545693593351144569679125163096101136615901878872014790466773180006649283150676943346745312333801981239671189452449404790200889436137413841216361990311075123172978029163386216552788340608666312978194745133376063858236382673198594192460199522440369793221382525914726868744352471512734036840483432873816811451486854965461190206433134597154677400984633646756312579645948783294960303311443871660303325154383296761276174206568779108783115158861898378551369543831699220794109488102815781957856678472591215327004208101218029757692201604645969803997361882912067842247504100783419399204150937880659451914644267270137106750558325218696775750958156080291896624404047057109250527864083823845828943072618361808507139458855026177657432797141606436090604887954797187679897658737138317812648695590843084788595688335319479187568848748628495888991022315894173642189472314882350308737457827527888868012394639459005422787717046550312800225514725367252240193397770475468902919473242614838401996377422558521147618785729744388039669512311508944250740017197611015322276879175832934512453261110653978288893205933140389060208560242014881815973760672322661310370727174106848395207755062265868378704762225908000276675410868560369438547435865771011505019230112108274518980272278705033229044393963786680739052405923687549960886578395327226563267457282689635620888500754751421049101196382635655874368839062591722061198492404502543625762943187035214713091082239776905790353636077509064071138084723608764390393356755559406107727050284712660593566545576149046108833621229510054647204149578357278915219275218599334822541477817291052333196107170358441687678632427863376524338113027013670772080575161933657107358084054475081155107556620366391337714391068933725997825134849184270586575085058935525138875640607001519046050767991892980299428355322239730948450732614214167908502531074099878641881105088264531300909277071125219717962174389745639833268984686449337628881609235731323639641626832603772749025114154755325363336778191405074771399210410385422060620446890149260724805123428276220632927452544515268232870871483022095229612496263055565161535875509954726925267359276477126081193770752195151018021915166865867424996695322276829207962444702777754087815498161922823018054779680827193268367779349277174189470603056414608522941607342208658195868712185678690191462721093202759949913057675581782635564161773486791757879283116785089748620376791243087200450451077251842886941028322701387059171845190747446308605068095407315702815524829650500012359920285202585211451324472136432733509603927126203689222462846004509035163762236261752922477596623925656999787395973866833099567725521134624564830149431146083799630173606237927440243436096845709666542505372421065195920936919010240726459872018938835637458296796940744094472351704402880934876808865213528536878201192535548595914899004183472142044220638810550405356188671864110121333550778666482277004058191935290844038882243741270140444467959179274218322945420655650660767346893231595961746679023831763322217435204102663355074352024998087379162088172487023410039575730387014564038242132237613419613570436561564304508839682695826625290352204883640138276706810496621529115926407677184423336099662823604126283779366016438424034038808809007298622544608307439219802620539033802898217297642667353254659651016747371980110933462274904319667835881320048644354203490834048661746505938729481469566077753891508765459517462533982456515005607104369789486066607159450330064132672831370740264923957343494179415324437202977245375322486845118844837372270592903434027116823756789559868719355222240941635394612538531810490828938397772371561302748033496553045991720961644473913469125750744522253545264434640789876135187510492591369355482623358435688732341877777339118270387794806634988082568520165203841132113040286714706123321558600518418695123258541753914338885576140778507075898972518868164553682754942818469265555565034838444916563958998944015555750713888394095972709588678650130060819336558587526519420719581002749231203199837528779706529899823716896398851980258879512182268357344166419700011671421050427890009437611184842098230564021633434104305406344725986810393841424521905499533446816365865146511086613428432627684258701547462122747159201430435849295525337903888502661126728151249486059502428675209132171636060834314956611814433741576347641270087937690954637260337185703456631068042519613316198933510675079504139682317714065802027059356536544026962101406510735039251892222925969615552745744629892626914288085506274779577973718710071157720108447575264421662820890720895181580187190427229635772611948288320189952207195880664678787546097488441525897225661165422093176686245679049146302703871724114497854487761097816735353840967169747423505085548330170752706548565119346430955816910368801225296373587589832941058380962484477392758507903013228023879653187707393649332970456971828408307752909628735326570663338316218536211962799760557484785520066441500332595885375312340314860627337965207297116226991141742944856754001136366588541874152282813754647245907763724571202430607087697228187849311535467498000537914826133992175589600288315543577654955480995941513303523128538600400316306310645675563630981677236868768542783555387143170637826162416963404175390468625410794987893107043756387001736432590717314616092045895054517446480209762325679086442128937015725004508312960073403014779988725395910449881466138732447868102839466207610203035680978640180822722245084706609951016702405961623027568615996918374771375525724091583366879914506257000769048549799244267345345431910298883765204144639465118068962097913401767089466844410959675900878374017376822550627545726899580258374402139838923395189739925769750669418393669530536228755133476667342567696805096264216795232265302832419544587482337888300195307127570229144519130074982063445814172812230656858246153988152597400568277157699452653578940167370012925512208597351836786729230742349116177434039010358112656537648579983585434008050845769520501168195953104735214794706013003007985206508356149773954111552730106045684764060171187366288741721652109300725854143916614952520859142225846363944526736001729306116254143551427571082318883713505939305470673068542809313630931586207981233155378296536715861170907184464316758261256629060297861396335605852973000982180715501399080767150866745365974129341768371443929633740280531959605991291802712913246778911905119515533140951381212594158010908006009383785820075270551827181588720870642438734955965120729571973529879343057740971817160278341289670970522665860699466899329681165481856828247523063305021321667165272125917699801783344247210819468380685404454716086072221686378735316671988849397170326856801566311865655486462673459164748335615975303740823623865288749656279054213704387106642564025560734905104193023482742177913034587154453469260640455007303706649319551042163591728654227511638111255666564707158569881948734236936318763155618120192931228820603652487388995874245908877314830531192136364201181597236713367243514242294083792291922610785249914121950923629645957456006896941982343782494245101279149548086316683337573163430803300914127180495022661247821227660165328545496910167619302420662436686516149172619821405500803420796589331866817521754240699369749672853171033635279397397588519083546741856343026654397736404050491123417748756356529565499837539426146346832015883908740876604420604818578448616254587069514776028250538034784228655839124663219409041568264466044795705979305319176877195912871402738499941338062683097476880493095179592880336854168814629475804300512680405597313869128894500925495109279985022327461567523311132392079323492216041998034935016180422615847674846364987530734144940975872808948748500175445435240952442654649019964849236820987865149601430541256511963209795995420494678172317363863835279863583806805630917828923171819253632994287974804172631085022814746915997531261268992942109988985559605442964780351360202608589089134476404235599848815986892651248384783516786598007452902569320892561202949415724527138977673420087008910387772824370645965301590350770848432691862680419759637156959538764736301833724988294879478951981300521206882039687693675387506787559006204798889304779957276232704541497200351999536720601023191126244207600517183340335364725265101753868745895575876490046576343549110288041536111694836649254106801718832299047031180236874903903222210814887213998188003749732397018506172346466407418288309957037986827667120266412862637425688592616967241397669275339993495166209360902367591136771185869906119642386740585954676431592156245772363353771942536980497756036339978258908503211646505175186924799377291418467135437772481978665032011411060965817742072659677165084902326362170609290335077508364876913689398274722927795674704596486567321748062319704129036637842004560017645740005495738095861970409980864003259065517445283250594760732821098517248785966699044089065077700587326097562739838631913331675777517488001077472979761386825845048488847452499651284278130817275763436243064803695011653035434552896915031211948345050913571226976780854297520812854740579157004279815753901549137978982295860526331467036814469902211659676597537975731310693022200275353550998090463768697489312164822044354916292280196595811238642886114511602936054084285264181920759569096808517507397777913107555520059882506387322022148991376760922997987085254849959784840111415085953378492855081942844706076738361987074136368474033567652642029107188556039139712736543177967654473210903361821099099687594941392398857809828288494623001959010071286710532065754179264579528087342982551924392469234768848820000020191703898278906131687175272140790426910556800675457513144969343502307501474959885788044055547983526557954781547974117897572379049482521284597062578449306262983739869943694149052509871844521287492414993950949307390490152938132873861041262247495564739271747354368857381932445250337539136377148985093087648861470370327889769756499226084237606928098244358435138357240642376249858153145572037319294046658886835356121434467395188948323690165651320572425402658675376166455806736971437950189366817298530626700917593314408943195127055981291873121426868964447906356379841150488250019908050777376335179621296944636948505498856565878987646403978565431686003594149484965028164893465694145705587475475135589166887326909268431974563552209034949592063835951731848589585600229141058933286584711527024245703455281501468049548141350426077008291772487696924627656608229257082261850151735201981719228713707570601330575064637928989118834387223363837550574747092875557086428229483767852498289885617553597676498860350077485215916467680320370547805115941550074222718344338606516567072727441273099363119739541903904107030514158547527064928421840782490427981240109502373128653670956711289057577368365563413755015705447701849300471369655598387476398089390343436131112604405273474267254594692794588787296997216438703363149713041772149503982758842113793173609466696818450156648866195007526139959994344669808698867082375515324676238319018095366090454170271802611312830394656779947600357750402368848530920748425472609088930628286189878225833131905592858017085760663339537036242291195988022963626979570195052355552744682953525458734433590456392080387345625283371314728968615340467243710648643895317720240965466938082462975156422958416381706089062200393843951949208090829760473159014851216224938166497498322871348067822685166689719661537777603567106244502003014513068710320802532166487483704278992983881790626176126580420236502050613025729531034421470069021962842611985670068012218701929921888886002687922986937657588306065431049328475306849192645878092417004491278187601673825433023863303879026160340375056752824916824106055626852772893300562762676730919708369976512631617836115494799615741328250054111823506780088880338848837379358743638211852876490496884017186932412042392144200769960591493807983734260461752597590827865978952367779602022751949711233054859097535671514470201046742131275397312935576602536981275208871209206376596078086837032611129383136012470581226072218466706463703807796891664695931088925685425002313520192511079099712056550830493501096013178244198948161994591254129203207050626971640328781377721616587449329298665994312912637337985653158705559593405148700676726651462977668277040817718891987134732443770537412411646803432047786126344149589000301251461153640753414657663034565438619805942373223246812718255254121346081680286494875233534215742044899781560702511844035981467188067995835937129999970189379725716417941271242820527579203273990392620778327087503140341236228015843235652590209372666151242793754759903104287297198666461114719235404683867619784811527558284693638687158102156130821302633542931432370105139488610633489969436125592254952557939874541104319865731648492299349800497421981813149710564501176652725454626909172773575767060751654036546953952017450162778123202003256044286106890081084870874828350043692624685457593907566264550082614563782368026396988961039584212318601070635005956599974485271538028219424576620415640702021018381402686344504806386090793331412460461867952486447401037560951830575246005697522161736196194802663419155964470167060416763905052036104086051489734872140069700421046317631003551196352010944212902489091025851991052711218929203862651984092518266761906857610761538442079833735905274570692917450948491183517662288587143332346284302436592948002361362130621934452924957877363161043049005597256877233726713304482627310978085720966535407245542666252582230774681089433648164324924477959865730255992625357558886684834745985664309576319785990701909518549386523279960621553037080586411020780235162874430857039473136137221334780846336442399874598673883107732405284363973284135046099283145023303502355314456487616425877167979779835957367025435492957504141247539848885485846027001881751873360647961302005346561683503555791524395389331616431413083335214099492546240658469048629488059084116565017659438735006636933651210218384447132132007853676702638460885268636394129051994567419978115718162440480947006197391409297718219161362875349836076096202956007955121209331837101146263610560786146003795974310422994949514030392184260622596250987083563420227289074630905872614356831447931413672750020139212619249511437190289352600687894946460909016299450598552825090099515642686479609230869028330783468524893600646629959875491688765557421603568143045582196189442950103002431479648114333105808610214005519624940373062515456504846799919663486084514537235958554414069975306594503815049256988927376038535257213012913593891631556036314135516596366009231527676602760258312825116000857907826478986313185314773046672814767521840036456755566685733361802034450038458297337381800674683485016810929192270807161804630944921353135924213684992742381541919832498483282236603523665610423396230514959711297556998848517589172112546735736638145615629222762227930729654841031836985808309462550849070460765294455585219236491447165343191317505891488448593162763596989919342292181202000433833832253663148798930886968636603216079552843373245240012570801725130699109768319441583377026887456347392405520356527003809424165390663156129977678623738165312341682565296558476974899696237915469977110097586782296852498524151254409096512182049566903562846037305370724062336195495660081375124470127740400612892690594022272518988006012999917463955069877729812721456766649512143266247883627325068971940023477152074617710835888248384286562796140141173873185141163765237792310936573212292367223633474193446525973438551157737413051457543624918596615076499101458916472009397140389316917008302402092555716632832943855539730670428935923514441987594466925048768650830701685629093097216973821712317795835910430286099183871002952522418728475063394880442833037211436699834838443365587482945631578647609956326677999068172479639993594938159012795536592889209759399134514747809965568161559090925235966181413192577981080972914154448147447174486994197586686769526401850408367079639538035360416077808607853994297486425854501166358851035971225859055009065629152840194930408409260853338185252891600473155558735652029959474833587290385304376276485621591606857636205641549519753541151551594995245791968897220990815319776273389977788842062134349702222152506276945775228922342453646431452523669022121269336779762891761455516624052087885607031662196113861659559247132882417472177769873669141408639037176420365112937037999447844798339129394231908317724597496963526845503712524608353159998493231179866239370622346743170739062301418787860720045033805700001063222940778221656640083754874041447304822720019028588365088829004896350650236287579655608818117749762660488218936065722806168495127473649223801713108978136487237795546296245025404831524921241575942954098871222017346077812609781110438585246852715571612562324272608033276215502640516671189579974107621305698335314393093268486664119359827006387694369200661690917063219016922982124739974176944512155934739757839685788274006938618545126179757663002061676053895163707485333802585030764725168428150497338068472790303521852307694626482081733809580333007714946251127261636978296092399611545223332453287272837476651264929162049611013403682614677975831858130457994827369010505882879673646572188585315780291904048366250216229786594822133055870048364809942185313295942423799444457870570543026798164679634118438588505397257724650552719473888088442403412550708471480550898822319396433198428980843223356741512403777789286231015297879652967374440238019213575373338475837077343843965856317468380062584650084382135237250898563836821801523024872702433422983386265663744013269603604361742015389502830117582729350611629325415756780174683180585899302860630723489657439351894569985623285971274586454963580807876456020918264616797079369625254592741031151242383502505090180168203349927212496540914615880930176843489352725955774578745129738372805981243029560989975544672602534417674228637362291107547621050659661330124658725595047967469124926328311254029131587077840999095637795383976161973708163765333067349204252636503303887384137413030007024662300023337237823590346345547617077533112490955005784552110773638922838500133248467688480566457654364767729397306000599763572339213581297964967697562560658090395179875354299385305075712607821011423842993161489724522845777256980150804787427917313357435216740901424682518697871522761483028841101151804372279678282724232132132720443903789615465110603980608683377354853967610211396788057991408079261372119585458704642348814227066624863306775944503534032594561937753582413179190706351003609789141339304905630740273267379122006666616721396990151006722111107784782571479189647210405489362836023158891296417287744322020658829960829380423072174650802529358304640113930910758605756622463283574856956901863418968292189921700201377393987912768143202991213166408740724686897955887534246774705166484945714860857135478759576558837244361094531638158588600839137755405401681490329766454966623103649429447413263225274720905389207622578996408080099827427603598178241768455288212273490359429413926934510474870705354507030034591643667306408826331335861113512537241668130699737188264038832477827834031828241950103771260934460757227342704079658835392327325611691991051382781895619727320695291413393662542422660225356371192596331775641132653677603243507930257219692429882461823208360701840410864059409904942630402581861295140112681650492191114566328466159784183084538661264708614534503134026989018083739120822485854480600206483282289472238154352508306739531418167226189523086929234826802450414796299735820622595566926358146294967557854453778276624371437351443753577431077803088083077809814846140022431075042124703774122304405266416607480460866476159486871264765980329467701511015739600359015851913211563428371322123846082732112488022834028736403653504159452322869877957815587682393585571546600312565147675221163011426272352417489600168661127349414551122662090781095814418356486251056721954619259525070974144979540799831038529603222983448145757382577066352079404910764506877094622403741845593345838622984524901023944163171895671129966454512091286302352906410234172330088070353081263140300630951096146763330840655350521708979959505100164122031189090720011912589260322521990447163696241146020440733984371634614092469021420471178956195331850851179639440483228436180037058589878011837422111974071053523528470716487508111565941238315050831172692689521656965037694297757586658644592498568903566437132663113543467002015510303639484620222831501736841986693320072720788192253830309805256059411404551408688796174681395003673546618824717384491447711887334235005233451397832097522156944246346237190297535391008284589661448482062047136041761424704746867405480765374161441403145941567363271652357887397597808850891282567136414488619357690011735557894449871208617608953360628478575551393549347470823581755390283479122045743307378952788714073027371373027932348114043420635674399674116047378903466036661867837864247117493263028511840416248569284347456816569595975302941000128105907994074374242170024739000650952597216945446223880418076107664253514417893978346925219355174474810123870997883576161218497623482707114220930133010316596679615754781225168818706009892452249297287555575599007040567184840336597982086855041588594086630428976677875719353398951475957906940192609825949954259058934515310053702640585000697515237048359531127875198839117092501041037326640888774578015210770801385930982482564380788184339363255170852566041572635253590674807864345442096142181447643938362645517607380470598112964732253907494489302000823261750040106424995901178063947674754650023733487730472654874401169049078632080961642049409829647415130903155712608390407098613444577202150370813577362093562027936803177265238401242268868799402729725260488090220560442156540025182000185321000186876300579493361630927944051585521391270387724320199979599516424379656192805239537998966133541132800568472707655198627863349739339431353104805497523457994670188206270153520263970350983626720593070558869582246573138474174003012287884112012314350934800498679835036489498945101793905388027558839779045697167015174775577876192924733639589361787231424887501033217527425752258071696874612888705895606345791341866818086251561749282644747337459207593967102170127081884716802835593597831766218282969267901609480890049790082815708944448328510560395793762453298569267182366967661265262964967989669808262699898079852946574780215585148132750457935843779123756462221050724349511098191785279994113366479572827286514854083652873301707415570018011317938810545667377990095549747644843888017859765372125630033680858950669665908108954349807154529535278710573120634676637310539751884500393977061386460543242259435460390387264178890627587146220662599869823899520316937297897720829326147688048955987249379498948730191735230842893295468922202523307246189889119374928531997918661222472285992929336711504387580269713121859300955909591774868070003180451433880448682655953309925855694627320397843661442881801672899287551048684131994486633156186836298848560128426247381223233493788388077467934719298651748072125414957754050534844444271846256861364683012994880862349885090506187179987226356643272635246063293117724804782359044208423405723699027744084195744901162274483732963236851727823140533284059136346718858073300386244123882528428031434572761607652220568393917136785248422088944755553559711040274925952215443762036199824856838323386000161540450458166863987913861928349521883563857387253982684915844930637146808261696157826988305590255221027558974927116477721797988435214221211102702808487859940606411865005995960010667624002611180684639593755790401553014420384344467836973167363622917469735011777421182566305847881555856593013752100779615759979316191173259147292625007414612143621895105268208255880988366561524125054000327139150088556580430804145930737550824205937135655660622271684251179192875169971542767487365148075785887966023188168798958850473486477106426505471389341683723290378724365608964973463533095814106342415893628010833642115495231160900354603364867095987242797417470496512572167389562579453951098662627274897652953980081759260706814270535408784136878266760182532634691850542624876490673120996251639492076473452733585981450814773975837249750155266207903942396149077842791451522454622656403527022294669382652306730537060710098927772139442691231072177098372045330752121681209981102541043645819927077983472576045802841654720259230868876051208172679178616113885644131340845400476402683892097256737256420838956524929072953432146974056022807774719823768864980407053820776091253165814592024070070801223645724021920657979398789362315608331899867769312693653539188508167991579848992825606709263393674030178471838714945451609266360791058543644882552851808445382521474835852660173182637764380422190733115204959139319275225350377994663927882427270122056311030373701354834566467180261410662738527812423194991192699182755936933046355997308478546137072181976787529749253703704249354238015101222164174469068192191653738497569896531523691654701646320909991905868760883633841928798420312435855477421053001902724966120468113780421215447479957204713028742913086066248834744967529991586441656828558731255937494572501717889198328271537566402323915223706603202081328363426577783302215240858723128555996548222289823670979216282088392434912924288080119309950732639870663821290338332490926107761309892554441785860053740979412272947880846463263504715858692781098254596097478608360066228630366257489849427329836633604034569293517061737994285009651210117897045235565769620026735945948842447180529868661858970521924275873788942978505037382520851941266733128249139020264714651958757967727524170383559934987621800207915896491933541844487922379866912914110854746501969881174683095121768622022313916611734458161147278352738154347769261555628127707330963913608104529002349097491687793673199181928535899256485232835044897229170785591550870952177095272326463341229510764332798872940767003696196383713993779478265603549427754341976304604091418015761106062566991272662378463035412453350511618744752429100090536163236896482007465323287042524988687099333570602065533896838225020078358694109550913697776162001777808460266996275489291660933693663886501285521793286742777083758860284935343773704465091865198921012246868253869683652197339032494186295508566828874132867741467992149015234855542164930038377003091125583837259770473930671532023329147258532285944448668162780854369873472519315869847944996347535081952410983280277309671979840866574699550319351536432516069553680352158244758616945560015264310151423408969480372328687968545150038035526586779972797803895302031697552775450051897253244250109647575579679047968389726298996524071950805068703745281799265021438373461163078421970240975509675209027966638016176890655109873096129777392184390005258511617342800584363747371273386848883055787144538834637841013565609371384392848879850299539734954128762194527735733474750366620183867211144362359375605463573021102395146605274175745018818909659386695917966345849811592645497808761216308491681273163566311121057586549056017326842515507838122996754714716688712496877678327622423238432807111776011459440510514563045884168272858575944793148831246814952339007761908554035618224985816005575003181964066856574481879074773140677208227529500647933970188761023686844624114562423216444317420597983575297200715773922860365704465413807257707335027521999031035477919582592294333490662674709348095121931066999187817951983939516089503203864662296494412736536083261856422108841736395598528374522888742463645577825659123621932791811490390061287989434576501392342870144557226090808504837231949956137331207119602784848618746838819841532166658726553599611446416969881351133159228341750543434956811728543503150554826614602622335073995301328719975620372654940025516251823020466162691224027819154057748866586154565558679480658837812573232251630228691202194159594375102867115572251208309125832513561103605103808600262658495440416727097928759359776948499974498865580562637456506991842619644425350633398127973105064013345936429404165487707465229666706170110236694807231917963637027114366570257029251550510108179749218782145174905132801369814182487199673809410481250930465746548954369361365187903842572725628942109382500135707936361160742751369301149142305211347164374980890259465058126437539920347726508478990807952801519177211636698477010990088584292364529379500032460359871509379214094753267704708179046138315853681236862853863143820228173682313949739871546429749233203890662219138477186178695403591641761597994605711751718989635623344294225146504735934765537490238837764046294496813403816969843872433329213290118915055309008719113701493218590475555375356766937715570568192003512244920993115978264373770451314344341438289949983082079008140642798204524550038890728860025101580967021418056903297120849124612919657378348035445390635098090192231733460596080914579233045746328005395708578883178612077624390111856412715468506124496445494676449534106498942881118860752317546325249108169001377364893042112734379649081599353542984089516354435824415682893215841758154489895520365903914773932429276455947259288140063531904848535794503632746238752771215434623652292783594688172572983762204946017878847868889462705815242217659835678223192929123108391000325616510473573276351145335433997446002478654582176849479132759022303025971471524019639081496052288524911897209081294342207059327928887823081343032961445669665096340221561672904897443776067383474082830378292807143615667737206976823486086123034747236864932641680630514730556230479820977259206219199240044090794347537296756622385027875348382720519831698918024135002849523442307026824842648920577024713917549724623531840009525839936694986677541318639879761978343852374384104037909648147275773943782767418795639019363202422253359139689502145819032111215306983145818906492884936436000198267669441333403357995348535976331269710449782221315391538247768455987718723573452519861793812900574926250464719494449601217966393544109983860129543506277555272782476167700608442116148113798244548686693774184218427834418146378623512869663507580085365762283840687090111049769998041853659873924116405953845096159652795987787143670320584614552442710519858638773891662415484662662992219792637562145627218189402421427637754839770470652972954090677589358041173483646859434104828174322011919446877309964491482530100964284204127213673883955360864958961812998811194791562401083662450066880621524420105787601207882967039388454102078029934501714773249569362329158061221109178633262049308335329281168420865384885923950458013716763000537220932831333159668391685497544637563547079097071689313858550492525467780799237524720676283277949638486368452807058996301029010296500047134614119087985623239823186969673080613024169784618624968574556532918832237116780120179325698188435564006760314090081387622941814815013669087532406599988043050778039840436138580835567401960976148883709241918141559159088225314898021652295144945723540733454181816175247666231447429680315623229551749752932067215969149232710824832515631762290187318866304602745634393666281099017009328434287926389587432881191940212894267238633100816998880045084008139462482727114371679184420921786977214459703145696661389329587667992460506036024522728380062266016632010714126003656572097751102151442603353219834469159582148372366014718344029421755113616472541780483112001528922274031071575099513320222500313287261052545303803322033672901344668105451113821018523697205672170767428564651802418194922922136258564299697824432652012781120851115667720897247840649236478652102412564068809421945467888110246988591736688966900015297067336458805282259796176540876838192977061025949856991343273703150939803536028374639754394787589235850794670931199497732015313017670855602914122597611791225072706554423664405367840317977490285741049764620019204708207023611247938260607339152333510248736876737319853997624530384387626278061457341409191687712816241445607613459678198632257981781758950197770626943685641439191744233750488221651380090286414872561941575551574258579269820198855495277248664121873820959389879736399769333214494866369866522629355614865950971069923866283222589985405391852258105552684538832946968332599546367341619317059625130914526334278000330580402758449509333060318554152823239030974376851315144563546459353592478108908663512272521720710802943344601026106507794182091930440804520187587854075253587481011455054124654705385649606044152677612745228797612746048968004134960734959644962946716457651786662897418809423683709379256036959610805016566610337513824735121279075730011524010467497403912103163047891474541630231543871835127895888469565787846073747588071325982129371600523572975399946779727678289089504418689601603005276258226617919671228783626945655597030291158552000248941907802048654574279230299278915353619342783056170465093885391199597821743208095991593198180563004272289764345296113826954815779240079232172182527758512824079413935226813995072801574999155719437362317889557756223629691281313961971122200208621123104191144765233858093142608838938611398379810955195757139300437636772577775431647003394385753547226156598527276228220744591290281395915841362924656767169151484576557041259217100009889524515886286936439579560739699551893674136421872133896046767288500666583481790824078163655878427687584578255038598470951952124699130179637303599950734926270546714672620963734051890943485220299423798712741842656532647901182571625667664261886339735064599010080809041847766299610419840053207442287933325651308812084641939750262492840334439292016215475671826104604992833082616789073978582613803932141291998892883152449680290708649014803926883631890659396058000038887371785167027830416314089483330876662142763076513637813984899360993023135970412942298488287800975028643361409534549358681268494760954227345693204103149516947095099136960309660047329883994681912913966438920869298879441278342643533160995918157060232660479346604332000486948107049910731730697333487988863110575372087373085026232740099248211789802816470664831614360941467806122985026580514834271809286871502477253727849395758287830937000709584652203519546720499359126332865034754290992485753758785040716864533432147714409012916416971497574305350527923768940554185458040701562602367013000012097367597304489811010725909526528397003195342591681264667871587043407966090045964102123944648121727395940344854285436423082024314256657289186792765340797368888346647048189041036264833658726850147439054000143950623481071902882958097089643001535983076454166493160149044409444879609305133660881686842528468097816105169817177692944091142758478746060863773351705447078062212773137218932066494425202481182433638223600012038280067266529263055027959470634946552250181833253911805520908474923774926316673724190416591384407517853443697417017484629408100983865221526271266365642303468559820810472035450637108876243744664481172322333455707289182304768547806579520900911940035206338946768110914314291674471903289350982922800614877688486388573332338583377688849130707648439908545138720851106795078977514792631337253271944014151380741018242993118440850298143277177579038734037564606777332117155044881689973135966629989859048358041411835402275592571690612423330493638470392889682678752545174324061006136665799175907873160951464492815149998731025415004238229467873615413251970974555032878166166191381279572349729901848220127591644736023295151331906181048446626847837892409464371974527579562187166088415188897733512655118380633215987408494290050987169641628310844496780794969310687192134677710765587337093594647973501039610431367310365391676950725901322704520389631940425869783443515674310967725177658798268991103586838074544805965937443353915978029141094172273258429692102531748381817263389245637197047895895245819935293840549369125175534847493033896172230659520544881454084009333615201923479007739659556052701137014995362589102733976683863610400625362168882963490430556633776769701723832534146614285148933543414349040344731453427575595327355755204749869463955591695803110155091318708444613828025138895572861128558785538140423931929427518511148925193129456688582566804025673571587069448336725317233433041574971193885275782568087459171768412946619195643890979820917814584862739865011706493199770484996675006782676703881025185126745017280317060730686754984523737560915962311900127292440722063413262418330297707944359321761867343291869189618603494456896465821545964460279900390913558996344867527249090023142957368429968977105532207805817558503099904824422754224590730074611094739173159770817534578278800665976318063630301494879228834458138218075339400108524547906861366780968880640547458915708431749782411250514471023512298058339780417992920270459816990005776345002551533840744053789678544691600692327208980203931169433103501000551324527102381606115158409533594420381109755199056250425183312303438898852132393283163011261932785264487338767260577012911273276555479015463446886576653134297386566335113717785779189508366209510764021476030267500214942630928837343028496607640311742342884745439636951310478690712885106676701330544675914583535793916047059882488469906768722203212223518554658125125220125547242428060563883438110663191892336651315872204006007114328640701947184287087302363540306342734420136731216697561054065865644948603437229274259009358003796427097152091946389707424827555875822402549236142261820777125605246491561148504758323462790233605724555926917872052757705952101976084555422673741190902055784906869555251431509007603642088226069722547344583128648026147176054595887368332443735804120381905174267979990847366500030270163568664896000770185262151746599447983732420719778869850465237202358706512910218030170091018065544696769245785343918754890836157578337045151421992426050797297180697939650313834099155157688324658664923480305304318211222673994657521851478653759915593680495374235712213513365003053225187826771509657472247380803872705777272424637833056967030940808016080765229914443127132682622306179637710052040200144152458648357823161024884530842082426490028321112473374257343714849744285074081305584209894981980862965487099115365716014733231680271545281756372804935348754865122395555125552567157208626738105845944197941051265843433646045749338130767138065158014498777059705085585947580839314590338156866690206173748486357368593932460665103269469395595196375525562787643906362543077317365940090424987514703014248792401915102253005468092942097575287707719584016516615999093333718674910800409566587073809465107857636269661324327608835206916351231947590005208384430781142428770679936992743067322473541740735555422071571628237879632928927714528891099845327852518455908391475698936058350715825353993650967768611922780027386999118735988238389468520429117461411746258415063252159154149565341798343402080398259356286547848385398313237874774255002549036274400920968211838434506990908648580743085872109704624039109368802152682487370624042039516210033203588587785827474943793267248566442088370940696683541531785442486580500096349332577977138077986718967578098589617062754228583821265089017337695782480928893007827711456123308527113932348659269236307231777582284228727688782444411266074323404689906246332406805659797232847229779124027352967545098497962376051752996092628420025527153303647872449264895281621967647495692165282311805178348583264055256192705648396443268250757156720844170495481416428758354307404037225439648446499943693966874391516891314851601492394465150008855915313951719040550976918115465058551816256418871531641597517578946793796226255752331344699859296051808038510581046792204574519384073039221920922623891364359023722035527993215576069671014170096429805059352987704050200322417707963911894670015589833979537382545524590709873895176252615151508833723751516921731742881077643377727830609830725181669280038967149972017642355903443630726339474866568431115153524547736095974605438985653779375680939596941436813481609795701803568937837912978782785955951351772529078703568204123309763736873224170204880315440060330304046500476791586677966166778150776390157726399862527324318480781804462696701436924242355689090659608296444768655259787388103183837188486504224104765890653788212602575958068409214064373346824577185063359298479319876194242985610996143713842352378402390648285772629578964936568713968117876896949898345512646635255720782447124321924879404656891337129610219643525979852765160018885812027755410945023515038800821770664072496325262410438197516191258272903443712327974925631151192524395698541466735069194815163837226073925151887751751659741006228807264486022094569304144885398829811085124923062608837596678362164975341253968308492271134251394953995693625441331401738133085848172315887473225668621392519385401022494755754949471583956235127856703388882449555108446230047240761216595278438625283059992302223284865934566262929748436827730812030144345936898742597664155144120979841339980159345843539347565062432385016043273191880512640667187135377555766214670931813151162879500509710551795152818090931544810580447673641221661000324250982631662574173051822048071548822461656389134404693420810323839903254029881746342496583186836947486194257533540363312238382223924940562708563780330562135446865930298682171495280858594941867653229106733981768485077576151785057277099880627370814385794117668763599758144991498903145940985259603363779899882281385790395460850007618075488043395846861964109276265344679645205263473393286074979323931503141172775669803931481638585316802565234504553865343740087456517066923758044978640520288146982030338768880576341135070972017008552377180244923262573546958598998464853961718349736556711697949536453907976584249026618556882705487785206032302907049638299862715718713942491572296861858587270917704147984955629387059651395770053260137259470494746729788145901363568617551079627321220820381108481813906552484807794486635211579401341120958315156142653363927278257554949491636267678735199932168698701822467023066805318256335924554816706653616021900255866415353817720562755529797513779498770346445098804036566461375051908765043458061786097459716998482846905056973153647778787737618750177118562258945337480782350052045176292666829063655610617033310485509379488102232451714159247260807910163965645125327990928355389491610763599256154058115573316633435704241516830816861942550901969215634549557625569345496898951147871837341704437532411832591389871424520144176168298127225912461973883547815524702081408008832678382811743371011550863704303762886057559612371695473059899549898850553242615982405542896606897986693572837719507213102366635995441492236939166740378776220048428701118860437530953453600446062801850021382593872642736725752069610391180652759565816965035290642915585204764388603353276972453395962250986894401852732607062203245497088297099913189789254017188318640740280796839506510626996567027376302552237518447812474838860905137214922207432073389035977248514437605342797215936290354596444170327168856666518732455804862579904678271692020817641930251600166769003940020670988474360388660941853336479788440559054078540862351717953835066459750449065059991891939589394052970593433447318506529999194852748426518979097983979400022673254923254792746514156654561454512602452801894815617096400460008792974756081568088207435197537468837603016834198036766407374128605346879030649550530227201585062707377308816174568476852876084601514286615410004086214541551891517395924059982578329599244762053176567263687091868455607514049221818044886751222984550546274661729645023448399662023598131592861526828957365891037441634095370597684752368984872135438569100291922548287970052234520533320668245413722903350327407864362833238989369656851771633625152282611187435800770438670502358651989039372547122754271816536651100545561311794057735061928187699929990271022555864825113184627494533000738823519034376613964442425749438651265182097499248651447959310963207462450400342050486515884850148458250710149697726324168062163162030539449471335839182137313760270461108951311688137573458373140405076175267391362644210476828410581667230147043988705343304482389385039278623057359134491468861491717507273049998770301442961998926374180040878383184331601909213572036629716800022810491511506595014275881338609701832487198112781576296792074778568665294487225749400969844896073967639655187675443020787398541767809236008533115012699451587845473319131011956090302699486399153470721513044016933355819405830521075114494824065851782919889376415691342212510724471067783778891624958785351291407525609596568719996430503867724418930266778235502704865709291459896350914893773042183003013143626383098906496263436625034138096533646943507792765013331173272233647022470444593064559129894336281006511945934417887989220855174900258169385454319923687952359846401007409805911967235289183115659897452142017295439951753987108468889736966552602572566723164700444321499092481803596882201353953033193803663310789638111105582845639269558553623028593402307837802797028063287880923750271668625018917448153102980208807353570523820714352245128424885832000769212585865289084859922248020569477457883506266651881911444802334410497340560607290786800443368970186738780576689653006569134684529067843903366833013374767997386101004023248888021850814471352920657635167218005260630979694265467174977679669539522693650400275524608345511666479138918386896540980433245482826558729811364529063647458508441048389723244274498301306456508775098665137715749003763932007730376259969202359556537716403950599438710787884364327656164675859471209418017724501351725727688976583547425953624619480578048009273939268605137119046600229109403809663368583405439163739673227725231818304056182116383631207448713621451566869892421950917978718326938087033210815833184371202743943633201835715360530560981841866401071045379516936796772010291876510234051672736118432486318047428891767835091262257345908578329507663965387643075941073319009504483609281632180548859872964098790920608600740861851319247741624967251217518890365462461173313061635497450613071539515261499069100614462889211925576372100758060124290224552354711690392440152980166537998184406459019678672092204448303702870504159735440819807187828330008380861773408156920612946442255807730501773645703714483419250540181779015327663624218579641068821670892117914386721782293965098799174371647377532756194836758373921190901406541644549958262100356065015359721812717178301108387786639858198504717718197875084497889637349425555139660604935368867182400331645613651421333345651442838764730785563139610943114167786397980516751754550272004408594198665401421224905028054596927506009007968939845066675745983672423158609407846251434739835166353485505427046300936666931971905343617573518163167992010170651377271575002262422880570070819902363603346647563368455075413922117508908386082858873701125319449743940196882023468978920540017502471311251732264717600408062543508821702937441599202709718946647557670138915763709163478652418792976248938084588388772582277604209224181753749932549715164141482329415752068054738325387760337366097419799895740151677030638937896987181941504677533109896631984489263509316038172974529782006000129016184258739286963436057309049359053486003230874271735110737321461219658086478755958507415764051149089771360136080757554240897500557597157991568840371343832972219484247313084417070685901412001689327460155314872903882610978932283316684128158216547013283284523929849571615765366576560454186702026582012411300980772301650081765715184171273691662004464109613097736601144155965695338335354651517720464185906195009927780811281318931366072508616976490771295392211449635623295755397953016765889456776551504963144252306427863189710489070136592766650595489973636273741310763061592427374478522493481185495049066107205396008351256508107136746306539088968311036968462541847807047760213254436027826691780501879053214846746454009612399235708009731163138865811752223342189141558618076249962558646060966989377295886149719714122311368722003723446854685284655470010845994830063404336610749653108539681905215427447085890934762819087320943544162855267761301599555289104616322713449937974193195216543035261562846859576905631200714779302088905001529536565955563976072346699080722256625306915179950939103334353199408782154372066264628666711179099787566139283472676448955081443657343359815419229503148792937760262355036438706184122294052623245922875809491688328994118305145933989593559660338399439556179430649445333218133822582372181884909471751650317873342994336036674135565289607943897776639149349303335089082490429240099685441625554607099075641231358466653650363193916791234174850586118577338974098312959541870002311189260336251427229286880021082290943639123508536778336515560190890217295685572336895036523523603519651534329145974873728281268920916018259539990227010755616660443946816583131561573120415474559910807907664549320467405301601079703161938444772781998759077658815226870173551020863699215384689004715951201082498026564097417206828753503392446904406938399228616366073213702334567954711036479739858674371119940664623746736750384398111859665573423602059238216122665370166108127118164537849018551447483298319901152473322851321273840534884767431387380732873091714061859606911181787811901341745290809407393579352290862181937664806510986467641109657873527163219864574116331559203272321778081998373617281377122852556726471783361038125890912683763712798476552191401702553683114793408087655189734935999628411545166756248914907438984737433937302018910515008121482582027567081507244734499730375555171555401150972510745363680853002342933177453839783173257341873772464411767753718592606281727408387545594451743686607835447537233857148418331552364412118787614291874708558464850389554116660485092625895595301026259401226556546921948589460068312590384312616386845524588695554892277804799030569515360435456644194546863137840144441930709074067592105534885654280992254076598537850459708870456130912807624122747575038231410351314862599013903355782059029253950465890057334464287937123453710875853259307610135788946305240932805792962920578592076262641758660004432580240062030327113525808365518462482173765444793020845846961299900528513686829890999375705099396983058588760714076069034308511770555948103388175289990607455337476582546303808657289730621413240265651774129630232652008322101767545288821791844592203961750594077776754460975483281191898371717973611257791117400513436838805135262036024382450125763714216132822795749881400412831915723189570995010119058821327665683020623189681496791631901539781797217483454984501824417232459299606525861613647495386357133226720870622749476540099668500129106710270003874569999514454164022043387985542393521513631634043493517336240859178704712409677904113640502512707651111343032266751322012147560591145574167025511568981055265142853004118662243335363250807402747796256916654398642112646534750890406015782874811321647437720567165027898000804145879142038997837201013578160394406638476583962364378827235225719424522051450430885229072259829343053909673401664088041836943967824308227866384575959965760381434738356634076279372642436055545992896804236615251986429824555248179904976090783288534439659072520477560375832333179839775210235657418674796113885053595619507298536446267335927522440951418173838275219218542163552678652903276727162599764314742989057437768528305824693419690398318006941229203241872882816820375229709924474242296341813424455423314619907671404494984032925215805967209955639889980374830863014128288242427264343816235889955620684043807399177119468827535106166931230066168492500577083815984262216186216111604676967729635041623506186008824757467742310587244971999028909322789226555282005263952425109387969817930736053200670430882991260543792310534218624822394441195695408431125467049853173817771683782930012421509294856342608117880936796780261462960221249607130560833478793866241794709954932056743887888148142979461096053340857101206424024856016317698561258026355393104476476325718565684906233354884702533089366956362103021713182931005777267884972997841832806039256544067923053341185303946474395512704347307505256451016571999152535386484350468808918376802851355603347925432271301772384633746538586387222896074525039299725081028758781188622225107558080971061728308722409818478983195597629121910901680579792401320076877903433972261125190447813398866931785565312414283248954697630323240001767387472834461582714115392789951163079443922732833178960300377653805320344240336318258328740231089095220983821958537445463108440828473304293909263827103803409898175207442894920855309943129682589616583902889109732119702300996808635715456521575839895730680505277537433156957662229709041027024093730139547807493123434302194515899076889726220250217074666293157217803125011140163348597891424265332286369094871466471607750240285819018225047616582766239306037088358624493011769031977214435532129317164703222488188134475958786018157150003867076684194904856381707224988405665539029986922683981723754672315293852664273041877537416081540377611053010147182926413512123698126874515547646296940640839917331161091517893651942655825505928873771749376130263504488507022067176026793384283230497501705085332825747481956202950786370398082965069440910630807223694116729990431458530021313217840007306586275658279837269107787182061924439212872071998411439952825891564621936195693730801962115747399931766715451349773197999660538720344777669492736925537722353512400258855959331426727880613739017349791135880195026755118682652855145903522724019903198749707520197571158349271374439596083809341055055568102436147405955790595650908701083658661899095353653690835967599525311258796883282979456156145420592151163589742196397667008269591070304593175941144690738225203823171793653724419946891781205583175780938120975736891134078205067514187235681229699940876213596690035397614908451446815044249146519396758214658606363803254116319322991512184851741349985780388354550426866522553859872914516198984586960515065489901882535270053787170313841095094059631876324647504492094451531646615453716548036128500808462794627940787355095163677785403461164083139553222306597626537194546462618031631579086284415544980940591770996309589979638434785225886168814435548648457450426065134068598079002634183712064026406877910959770689537102246887324964729569697875755038415410976409068088187370512894624979430222178791957296705189298751063813337231761210688374281765815151660076429923744779327728764735610087500549394346731343148989694325158029302444241143049673593334615050978991612082100217739751900744211538598898234361532063008610789585820700923249155943874337068238778396703440790536978648679509853149774203167160150442293612407739880723040486076661947675263048987606016931456946129479938116040394978020591059977443685771228501858758604631584236068058226036039092962897564895754630702437698537743928029728294537965551739006165092967550561543677300794402899789031205836530828232859786253289872421292222519207009719589158255977640499277136598779932337365951826979256664705939991980167934924615142035346225120139270142788290554077798160564248945491196651089915293786070913494439199842900222798535571113246375439865029290889399487001865365429246568304581733185010282576275725452479875881535268676753111219784755938649232028168946815290336807837257369164073457479088776403177230049002406548941914782935324127199296012832276448251016512586370237390427267430474489846546774876921875578707025180059042755411406425934266731824380416393573917547668593440468598260167322480289885304303895343474046293398706382984047542329054685194854070752577439980792426419169998585608040638446783844940065678534405961861857079746145215128739117117168433650785531344656745957265510509128240308942534939184604855812346285863813826295183347468016804795559245806965076503713922838805843950043303967346454384981050138489663165275870273023142489145501544323993657474614183496079027317040820257310511295705702854299442832927584897495299462680028880478737599043955346256566637984129051052565397118635975665804130896323342337954026334337065808844991858196384311051916492537303913309319327428499820140992103506672945386574104834236199866772249927675885444888452022829282309211369157570414594552112658685132242538537707926368250212651787567659777109229173477668643995808498581580834286451206589511841640219075452494855764261568043347095622241655767725766864833006735479232811108385519541893496928288235518078115694667837675383562919045452135313530871191018346893092260129760590705136208924458384867261621073672199803624243130364447955350984351112757762312201726702497524588354168993393113549707208234699432499104781436742765151499232115640116231956546855551938895124842514975702056598349390695116527968363232745543446531756750499730915270209992746931430644317652805037143584207830217571306667472224472916632243963216446552844272494631564218353310797025569203565780457061418779028817648504764030340161108258826219928397550519313699385909241317513470789169165095944628773698806501298484022568208563618377632517558696608666144181326717034542074487608131310876340732511311222678645434053377036711647014923763957840422985136028343082450322604501891095749920387337854577734375770311454878938680096165803243707500833378355194150733615097716342489247452113350885374395309785885261815225715623643816349083324067832163646742238908726438198352787851172115866207174877511893875932065481522794257614680053880009152140313392886767309808621294439521695191942541276635068454618417018121676043971213714177098574251870862908824775398001934306273300800899757203617257620940402966770609995607180732270740844303654354873055200451563566642068646466042824752970438354929951425084115103049123242264084791323301606010756104896586589962184663171124383100946846534572072639108707264561576485376453744569793395395871008605408645038564889874914225800003099607926015589459294880950440380226844627635615470657841888940449814886225461991663497810389157976807796530114562696310581756326021843608082715433538180179694056879262370269324840204613044291898701942979681666674251588933039698920911616800870868453630416188410360478307994037937170075710382691805105908240643900069329706867430855779407923486734585483561361426424365998695830192744933012541593565416979065934799731855136779627543018898583633284063195874835372245188910678864791678147803549733544246787161375291296358234267516650498566097522682200031661643489232231279592639620829364046043754340387977464852748266910674081038746856396342276819575225236340371883606054086794818321271838531036835706889293279437993212930341750199098716039506615821935728137151555312989973915903211999211431573669903028485153896395690437324581435818636544011912718084673335364401154925350004095110099455578808917930192336992202349419135968143198322032941014952514068418004832861315840090386285677298371511649332305948288031901831253491775402169857438019533550459554947740337574428735730837781484156318659314132060853906796680115510572690142482054903359105327016546950166977785286974842894131103787795278806410893993351756390375476812948601591944866517495977900105306088385102905473511693960700882765248973628902902634690606680241352592870167363109203521082011918404489980415170378767529373878080236380058687546335546092525523870194340911661478779847675452888589777237769368390183804612831851512373345888254585918673546552486842092199588044353985111452396905369511900285514751275165304859076831482012343464278814024768373552561547914198574251531719737660251038430420134426149025174000878113760793537051697045485555236679122100060327911800165026804531299614509599012470257880470967760518340877300939640026602112907431884479049430597067247112167301085414890121615963654022611650351445618558673513034840774962347216060230044049443007147593100031614618052157531704102940275861642616398086449804518154041975693818241105341593336196051740881236825215786710101913978157629349944805630149574362454524850600998953099293782349616444886202365376930570610299876520153447483631636719484078899172789574559147045266978618063050213832965386911092235128316553158987134074358103587070294393658663251021486770462033729711789980104847569099838818319930949982385157763242847114118406579764624203166411352268987135441094242112867165537198341895261907778063170755965973571933388636157865371787691199537684309073697277828776554032320189884500554177709944008017118003999351632659427014396780146346509306437225757439407383917613768938877113215083327687655573135483665614550709011176492934266680945033476744928963809389513764725971590797503545921839654796698501099758648143898734738390259497209822000530166677299239560278015420042902887297215246460201778331216471360535918441109396980770470038804635365022160331361067507883061294768952011494136987369210299266914301521248611366636000798605264341340678055451386055277291306294592340604622503804581710889491475263835805834574738373201348064978843634341396632889145197578217851564392421602912913365755603560363293311463116043646958499923582191185103439054175420827412399966336589500163949910184445881423536593647676996020509081641339469758502513034348743697558881205209785245054943681100535635084467565438317003275377654901612280718866375374767491469749201482296328643949050412054207602988183684578873141952924575064533377166582179485057465112060571617398981528462304805376570837589889335105024359899960602134867414309545487128202089688293642928494374389147431573620819654613368002610134046244148807969480608443136437476281954592717517883525148357104356185693275272120790832475134414599887835098494495322009214273671912959349387882689207701382026179339600722933381785380918803516338345519948885210855162338756086960449239210750911995363463451556582416499370117757102395758986146014070322483924252817293879103555707676236811836600508683858449634746577613960838499902154427267821950332844363674559833811372006772691445430503628399960099916573265160042421739818292355560998792391172470412567504614251029089974254403184547424994423852001954134861681557385773753535533177778683407575848709246126167013648279545463935844864889643405816466340121223546504475611605259609000181222963552823526162968393913174703034238231365313081389898632768298057881888499219174743981013024550429915494653010757864159432599631470997641703987581545877613030934456789777036622021790613630354630194829835615347691640418209836762257747129500065219542905006755636023700827295308660425205694272407829317735997655072980038697556296240626056890845459149245314307584038312179175797367250711909825883798130854981013656376327805864852760090048486416106131917083389131808659596503351784676442318141039437991507463930591432796313010082858830115711519921282159048127224023950014153408774608659457374521248675616890068056833964024283821037394131392262494539692058012986792488728379616931809651159645513642291769277646970009042742832719482102996464911215761715881838161105084428435914163265710222215611923732702597553426550522050959846731358873418719666326414736550792983803543726022959847009032949751856057650770070452971608612740884252655262053885498707130549149097390819202334681482027640170900914126335729779080518110847613590688037942798233143994473059754119313346833768656242126699418391600581102979971768961132066271690888179047050604550834221398327359991323751845374934717633797904071558347469659827485302510924815243368879041416042298808971537841698686899592888252270534588705262658499755113237733853398098309686108555667365688622682586661607591530873667353438972178290447785452825314529083714071631903474028123136592183806720431021644417586574650999173055512398300928731336931853314559990014306880617192445617362263501705249851754166153286011749416942977133064198606951158456601161722039891046613443649445262060258761502817155358535699742144006464650803313419972187333092632500533007483116274014586036482247791975261507071669253528944783435732148469770538608195801676181594622116492839246538801780010766516378842616493904531419645096210294123526843192892223969509724050663482592756632089335781075006309875692084000957919898535614327412731401170496816906667507290860603920903947773357231301980300256455355534164221663076839741200884520549045009351680226656154742386452968447835009833293774337398168305681634704581251206325515010767044890312988792486645356007404464417567242253374035149099807022686435376831232560339654891757990105472131558584737621680578141552985155145443941005150673274780029216234099698854038659392541782212540313391810842568109245930864217887283913288061857297697023313668770875164833356697718827181124960275670419604765669980330730835319756663271832431025944171261002360796599541429403880080259582215030350746699786560413360276924730359079254667004039659306999075342936731263376329688609188357081359322863135898492564277251336027536822623834686319475101284790106949761708148180832207158787088313882681825226795927920872403535565180490999763925944941190545843063712949100840561143653782670999404033467156257905623832299291852130030452016467589661760547711567852567270114922877815262314400344508691155094163843511432707151002088041745904937609032721818194737633330047698409684088287861447200531429739835000041437336456740418880554864966937934635116087493693789198263035961090178018462609285707253343764915499042372837787848508137246296788514822234671367988892225104640202939650678375822271149597440318666733985822983560897604428985639231396635047458163591117695624099567177402263411513264072425734168859129760277305912126879965483506593790163283317594304318176768825304367414386639054393076488421811325497353551796295235707197313552477750095374881956976769041530582232969662188718323718996363627255685153568236333612734731616343097382866474807269054005249846969557640961421606780403547641110263756674186004943989030433435145228819571335798861790151330900096002543040235536865186258923498876407713355717146122484617005615405953454135450342194786888517762207873097808781024744721638598293220172010305245379250371225331627818023064896807310541669675043539515754050508859009715564664619248335778432039668213195793756047319652396437084513781891408689813103643539471197607225344004429444127170893040956516579980900988982764888869817959688224634135003285780250128501462434347921251044448254217154336096732325067100855850856410992710340116288983166345142790412550506289396009060273265284822255525002461477619072747247722042289760754411442204366481631576016179444526414218753716447486571175329576658090483193935142188393001213916799819591424969061383192159117620898606008722777983553109744489956932005653192095058548642161584833411329182541361676578794127320641506604027167990135489371938373594316793003894160323303600911603165075854826635144111598590474290589209660084110158891739671654402873208182657097994438525107865865665632103669565937798222648525427187529072508891840977194047689725561267203401567114132660141012152726317135974206683381426680685450472910930271955842484031583164187213810155670945908711586241628232861033472336191512598585599002338474206342741707555405787942048957233645974715812685172455655585121087087216725155834926270147798060705501155943551766250284523555017269468372268260013654930614039634479490833247617541246674818165193030479099761107205097697266895674520834539240561303737217636513839648943263501191608991033675644199338061421108309082521205793339420042399100606393070182344467950698830820984247531914598567328204414301595328896813750314154014772858083867834332758402756016009223915724204189218912862411005726271452988310355298322838520043968354399048531358031881184893422634806394663582987240757125892697986585234045875895438050262371077768512675043247640636220302428710719768703409349367581280155524349120224488949232972439459920610530584591109794229703530192995587038148629521266993697983115979399981162895369842977944539183249309922871005781275235421458657864318939337273685507835553339372227935111497689056943263043217674575334303444333004034168389371998078658919307908141396557800431589001961077990227773914749031129218761425783638184553587855731387670875724160261934674305690616785434397682865358363568491310253979019137829965978399709719715116434637587322044894766333759088050784183173377935032623294238648005003776860589779138012349087871557317443622270037024093778950820346522147830299292212023081795847129398449879997962230836929282696299148353389987541474274241049469704158854484554215941866399452895619423569984894159350290515182485143952901095173296546633351490418685609645228143241585941828760740156917147965174021009937854803554634690810220101455999107281147936248981061713917812233720814996745226423684053451734592076027247158190260869057912121280795793751523817798123700226650312436433941534376937701002511632470406560871632356782935260277989030028284866544489068667782317479044591917515231729467218681017298525823559788676329902173640887970484047420110983351729580249771221482222866946785654948897445106577602826651780898158280534517857585655183263617081566733407776784263751448576540598619227241604278548202600658176278169202116383493135061072036742368011998904655515032883652472636243190150801070205453791903709532588678908322373161971098968265177444571590439368335860277760554633022419110966335712337141319820027510862457668179689596031231295534241868428218036967528688327114130500031712481973419636508220163822334598023374994044283709156248195347092062418717095032452077467427801614214396280923015806528043884551026432637896814928712148634801818900075379499575413599728023382265452148884699345148053178836684969366941243720222044043664448489486033560723473628729354489117732616124738615629524716525302585871936830698942178985439820185953261205023056282222831073515442023067502126962079539887011837295495002711783021285470796536783640106815007377560201982424829100289291255225709796741324543824666445962841511726727803922725171612756818584801649615215227666289278542023671767357622584490174621549202741261714741004553977483175138995834949377386784538837067609959072175528101443186654014117401569075683724051075919042766239910374169602162803929899836029878587943878952664609972183019495755965933901372357650223791211240077433937801870714060343378649977334610477179880634116672245116556671832815082147534834095929879758323599870772088127121398094287113402276624528349606672017106035099463796437130789081061124117318976370987919796908350406913077073781180437261041392725749390674299707061899911575940335076920226337734619382788825378591481916951885633306667246797960628723246618717894688394595371744178565535657669973495413614454790988721898179659503742265967507279895003146419969429816109303714032300664392766396401973851289082782654260910941343498314784086815284115506232224065370712429091620660216195140289765947457496488636520761610560428478208887697068567060670490239718793907145132877296353736353457751868034072469305877536884599857403691167619376729631476598599015792890364887290650113210888795680829426126853190394701982646170238829434972104841183792494454630308910192529721322217618324052902733129988675706549710401563752885591749383706505842126187206839526086462686502561961783581360618713039800395069341578676551660110598089344626462130430677446443544101090467286429765459968147024021895352318955375915718711153525316645628959783815107081990831137225209634740148120108253894932324522059251220818183791246145754565457433834502170045769249336554279146932980338743751854964139305783452343697140173234677728438826488558876242052395187025932971188514857146557564994120670928542842491637109382539133755354969880106415979531039997646977222233753730609089262761949165391870845677896720111531401934117027600340786891598344968517953909670658606561204217007191718706002744796714037011120505347527560868019168988387571766824454200034590329451010622832679128569107762306446820849588960335719143844831268741260490443980899365759436987852116639318328971785990374680466873837719852960704102434180543635454217239382127923152693252290871090158148619936994591307489521502722969072503640935581849793088474936244874061038726555484771720938131873395339738758159130504758526780291013455072254414461860621928193732536841876838638984608488990986039873195523603565016621442268663939901996085385984781619490099953887537225547715889440430057108013959730117823191582275210842744808858666227208135254346680645515067267836387938172316414749696733111830953894876634176399407548583637994864962135614701137206975428160093728541965433806061928526194731695891648723380041196209956121938438118994320749393081191443381708500747491249424230091418292669296513649851864693024671078467946471649371130515170242205553101353007616873444800118043474008994551865003789260237972900349642490815146085421423492260842118740338135605721258986018162202008925506371215912779079413371751367084847318775399722542036222419298882042110293958888095156362483736631429166797011944470092281780951461188412467224192183178389053046495589550500971830119590231053706488159396124997371509589970414705790612343515649146105322108755364873035184412858576302030338758236274498717359617281841512082305546115854198931124402955071290520301133322995496523037983093595342089593997883533908994939697585913342444113540061815840171029724450198240360259588169385394912508974916372972322189322886193680714869857764120351590576140800294309338478692871630970298132565405790429669284062372060059621880387210640228970003467595659819651684659969749086624476867607038813984037039395243222644932826502781728026513745960297491766783527709866036642666483866817057706167489453156284183268033662688025794709255506667723014387961005208004006836264306944823835382576406438950271257468413643201497868365979879050932180067530072485585421574346157504801877414979496155423003137206316777854126999150163608386362340413843751028718079935451937132575692945366165554761080486590946447093388071512716530443073541329793781350838597966204689359321400176215940420956422077975893605614739289403457347685032546094424809927861516565039757470758335013862577140536717749826289951230188868392755208900126814792172607136223300476396891896719906676886221322096755656162928184845582531135731939794618407402590283176275191273808392925517631835380877166175935467449629399331421890756477412900643820936515136985436597944083105113106334597643479765509681898872442241229511733803806524833451285080282900702443394733065693847899893773269964142691027379338200607579824174545646737902476960979024375467995930559405216534253130811924069442740596299992112351974287319022506120242036712104981756431913782846821039664124902557399514394767745980656396016205731586248579051080639561514633627923627706160982346373287295012900210348544936225898310167908373995376308567565381309433701402263316602760654014324660115972539761797240893335129203823781694571446157389730479661020747535064891385956245645152852730166001133510732209724432951737725223445885110595003823335525514291931237607733934737197546213231537405673310833738257915520261579065923035182080159240278619454882057081447599242017322799487096011753446271536749376109210329285154264919022681496780340608977011603189566355399906809970402285265396086468431226369828386256934284801443126630028521481780682563117970556132264840846431816359914919681762070027472853178802626051489096577482288590637810319322596982820028456917161075686976561813970134962138517780491692794524525291065655553098683451720615964415450266430465687948694891151582417023363235490292017484550449703732408953690667831975319906499694088964222863308912690678637818553859382991147422696630442680415499234543479296530458320006941607881191157623479876016548565365244242827157137673534985708498104507068590905340233322035038312082682317439798033704121971343465479022311911905983134566302025826014103423665450897168148802904842359409870241951751910131638781077416344093185540193897146414132640460757513300198498799086858086970851515531513795318718396740543850349332669904729589770414489915548779916545216142478240768592711631984330077567544942779031005173640909365295191900805735302207268406287775888724142684305068958073151839184854093893216346843368484709683770266619653539698343757039603123417495182021469119613071359424990704224746280482048929032825045324723102396697737520894144479593069653857908117168743801530298548279983539724453299211602573876609348814944883917442762270804442314914447676692427066594189843928938000380243832700425086621355184755881698662675422714682120841475609157523489514968069082490076025991972258590267656190556622645426341456021459497654447353118851345326833229557853190809430067411183027442271146294843308974012414921052285964540079735761964096227399784915003195329362449867142703361859100831228466400306134399407971529480242854386040244052570654983990366017539229146487706785369869713693202151116463719715439435937851564204602830226359416369000602827559865354056448014220073468440929576265907810910504201787568448182777411055768374369171030183408165720390437347821548792002297460574565340974080445905194238502653741043973334894724673293585497449013162024347354866911334605543389369297413316404959725996128973222355757155668619283821127717718059324415849568091081094387804456765356853329667697387480250312851243190194465036783862279929439307316290788349753850975678959932022422494944437144230485155976943269409593054703561512886892420841791243532940513986945176299515572535062225476860111481705908695495812083342293198720078919380507168386892529561017946150916503607615701522553238863433878425348541414705757498026435356289931945208111591843280431134854563740226886963586809100940694473206499334042238148998126320481276279981077230171000944461525377422599693747179190388581740671619176296014270041754770286213292012263050347760588506791430287504213109442278636334721162415108365368474693348380456966255265420075770155048941593602962700404896468943025614525314034111064924612509481411999764416952431222096892521016871383096724548068758530959438301463235358318777182310484211814210420936442030829005833392556204744724349373610229425075082544810569450285498674269187925067390539300938900372388219375003858574553253979630373347803603358284254007658831887350169148711435584741040350574607660312240335675001724146429262038496445650854890973326496340785439597184649013643939984363831241794192222936486262629905902441115663621399866685977218073095331151559100937117875819572934622055925707169828365443115248543222918048806793095501048291955083194329492194023458832137042362915737039394939425088751323708354103705644169828673507519359878779319494101787566716287278450363402498817505239690915428481628296113112993316297631715304182764720899179698140721487187189940929973582266427077148807779613378693807502380356991205153175013903727951598116077306861479648317548409462514064397143173716707311954869384348300016719357698656665145633933108241534093044673940653742502917086006532173831676280494191560127375302435204470124547234724135052531743758363188698358035812303865457764309124754645815685607591328978140415397758596280751203329072608938654630011331609801263877467719797950554004040235098412227133685786389753279114592139121832852068488564701934862509743817177567476214775590813017118131327848753840572908764413905279879846530375587092827843420716445319349205494262951897480721793509086608485931933267411730307192858109450385743794208817692261497268633900624788960993677107577631770714213653819622678433966132043172405374880529916476800612733385264017813798774654144140468883482270421075115229041536692732081391613713663048300200964734876830562916151035198596893759213109080972230108170918571659558903985517304673643065175956507369406947852609366832131781629856484193526794027251129716906930662111478555684485221907721956229312887730319887596746206717884625384228758796175185423187568092232926055319766821407275642466565816023538283637690108310254650951027330581613029763464745862366129074595742438014676358688508210401607518834243927857907551056937130153807159819043805436306087199897294158884446542411147822049850297133823666392803459794903294141588634079915275591106687398903378019138747080303176534422566567842532685149859206065597603624690129000362887481451133599672046553831108200670397407649315885249337773849127179037891090418552277811862885309449140941680776228346469258107623466133689922596551487005633852645432494510899085553073570911865255995016572028100105425566149789419009463930325164534633381153657838805438932310864466445545448433562731046145074692186139842269840708211520360200865097221341451244919146997591293776991357389182219793438034291170866116883291556894482670508417751710058839038885111355765546146759925940807415729776171280519788409804397612171478402305040379788826170993403882617193525034933675353475587900246912540980631491889229777166681536695794096703161952977451862632108000460972094810812638610197074265578124805421201320135266722172257565315828920558982379355135285627184317821905677238628079818827730762738643486476426022328069663283472834642705717511454307291890500935192693306814279114686215700597717662210918197251819233913691265428325762729809993424545087221456767137496541002609496773975997325958471164043806562616057298160791948534351605628698841791723732300836458955320351138682612880669186932374864334337175870691417490069317200465896808050556967824012372527784263560818393512708608580652479359731936096437162883985588772162767817405016199494278671570188017253897366129765665267095584242213158376086003685543358008588682290861617804399225711186745787640505303308971545298522037832004492520351468295641441891515112978066259780749095920286609647048159352398619955086028536810393707385769899283586552859666762015122882056931813324439317274587589039647113052695589984870558186634903817019863509200405648656623507266965245940840574105623839828871111756670356049124064016732182313836601760410644235064806440526268550114535034089142874184517312602042119141443621317006615443648429205497676576990160742056770246660919467726126533120523301302225077698321308743476771370607651560974342069373424859969191009449552961607597101046704385046615340469488974179121788026976887802169264632439339683981724335577124947114748328817783653008481645059014800121929224210474401486594184517503644051611831673478501926860332466836407847203507760550673498414130961287852027960785296430612192130995259262927986231450298274990710369110982771417032846087878676801941024940200908450668348449486583381817502201350743918304872192597802812352456925636945812833223276396105147471004754178959466697370118005755870652864071135620936656102460768925408807898443832997006596606229940936569295395797810681832947461318049839085427981620235954043151556361659290549758033075341437962569512697253645606670457467883680100591566925184306708816249329606137260832987292252654261379458904368822564364025677269538733336230939596158977596797770574097049168781156839777280742125095957316980417347384339656023500577480866750698019296584980899488961746997240384364564251247318523582868759286354882466017796748783744876632863516571570001823222449412930762150171652589257447691911892971252367859633996062961071601920311925455944287799910758539739331851945684249595616240878704003056110413568709366111047654561607386181479542244391228985667101183693486272095739373939984453169109478623301611369835624499180300093985589428466412301833329729201599792028818096656587439197501555122403330614854106761201244433542994783402260308299906047205718036816856870034582917902319503497302177819184460833269588414458004842089642068543735814663932512567966522388725243584243636161629522754563023817009871808228237830957427701078130433566715670831306142054685698782087120851623269723141689220821939933194069684713661197471233844110937813245415985412770257638973537000807094695723499357847979757004895822545305097122132852744491876842951862370172525507781013476440497679132238851626145021280669926203030280592514456961124091683520629030012025938597736837053544157743048826615893940875906372138148353579625804388042128152258045925767377282375010124600598697437421031191124505909184065614236444798108482631344414747619827245144707668927807973687521710983996661044052252758725214450774993708171967823320319824897523835196096496347600388414245845732412948322065236407078805566559928778586800463615716891705124834723024944024623155125305786286773795659813953383033028504050139381884149685399649383164796492520849702376749917166919828463761668734333183245297522966589974981152286290600363664604728510266545572766047848740921770471472324777590513356738781348434569873982793199526785041917737206390473442216598715871856592370687909673074670970612289650496280578052759765767633961815728740952277812536416983359813016690268958576632190536708494094605372957981960674896218144189988680988075588828955487112708281267559167088333800008461449710515278632006228749491482768313367957390367988692732275123623761107941286844215058997572634107658042573499165334129904140037924450057577638689653146791929201054376435073351326921388874962053934439150394001029087083887720480259905135587239830277230806149236565614513299928831250618278779541131689740574128668349088626545622519336489377776543192696288668327495606155452999312788527253298319584476015438720924106977927475774856023661368274025605128161153658788448325440380935006720460380116333643848718748455896680106520904432158131412543884384157740566209657726116569829280849216137225771410640733743007618892859139046160919078429184830810980993750253798130393126359937067180703391414448381935156868058697477612102873847692361337285765612265487127070091858393374648073302472232759779670180450183934347157775415465391972336466484514636336086396589508292667848592051939173205709792680169190734936432838481696731606738389992507758094778755941605535130959509602191726130276353332614181971799635632520962963498287531347996862091441606194221796953111048621188845754593917762776196130786847754326840857017035137261603207109424422386901081891319057165596767005753550191741096818726330089852144125305092321163319281303422644441225249337899549469991686965435841717321163081167258420436924064906233475344383570237688339240780805266751230780276091026986174366070623651181143001470946566620304355268807533704100199759495872144731346758289822050499554005319050793724660212173132603535775673320372569880065236126615392293640127798090122850214153701759869681277057255042217917200071154963060663106055660872971671952097432264625537322671615061722805916209214028046526987984882268834568646297887987632369584948327369489380235096656297865410409453365352420516966817717985114339087351000721731689462747521093909460958989371856778540734984511039670870125526772672387771268431520302503891485472063163191371184951044687577682106081247091998173566179377810828874044993346472845958866383009323788659618136497459323690530901796915830833384858546210653965733977327360893100385085186210692009095293458422220609162013223527973367735641637472284520173499578333352803734757351017404511039913896576829163829763553817291014252152926967268360696832321980034161175814973655303222378222705054941850302095292181791940334978902441497571240349368262928028470617498824783778677436555558215720270941778584946015168099701359391419804267137778429345466005338462555730091390995919515604167697301780075559733252900578815893140195761683533595589383271490439868917385617976808733380779814950407650810078537712040723914789282930926467862945463372163589011829197060027546966194938503735935096045547930289103793487324013582619379176634801936027316062786034748266681754205761681622265465213285488233108218648333345787826168731692009741523112520056802394139710662945415690071005052754019953970879095730537973100528693830478481273836786016007878357151556202271600158767303002712700182389963475882735491686015120891401692255872144868548874335157201304587557761969862747394789736132114509526303892883159118953673081439968060637950826359875543459917631719940291590786376825990859132890661578146221158031960101492187343841241183034938222257657471167294701023092739080262614287531776808093811296806149458386929475027131265040626898565095141505938655212183039664765698327959612133816765423694949289642949646959760758740002944182547193539112640924129070350042613346445363382183246205275010476880058513854607603162742124366452516486386083851020267496384592105545143569475066968550141034788821259426262374541220255491957835444307100131537261467639810765020019642773407979139919905414027496131015226462923765121382763602268710797164864270759497690724277672550940104241207852361681384846333717044956612457557271396129060634093235203221692960636711365659997361172188727534431064708915191729122147570757132154529564384039709495839946781391973579988828493867981546532205575784073971089341604124777885085850475230145712850477424642240851622605690331589071424241364143722304929062802393107359796751774504971026471760473255618670268416484997424208829517095864044897685288451639644187682614072097080243629141226690583588008085533500406086186328271190236919355008241153582343410965509303333973134807463830873903074053150455299905823545926358077462816303859387122025984562822476184434939769020361709131228097662166333512504258280154399817884552974621312680065133345005896954277922422094837611495071388731193346314948085983654510080478415693289215412770049193377963315297003363075554607673194811620016581535533885559741517041317272762399452948254806618163678495432206524411529049005850403535465288801592631670908437579297370259737390435338359786058818030961867757567316271438109485139718714828846017746647429330446078084526035362728947246655105208388554754959139364381325247937876494042698200694740339099162523784392092165595136362878637502820422176977144643980133659170682658181214438639517750329426862004466039437983056087986934893482490520319009493580034357857335953297588322020825629567090210583505523859026194432161248769358455391306788365008035152566252952891515267919065453422939054765227621789894730776014570092334752602673208962895975738377914677353189197102392940964739537360463012047200913128691682616116230042779930620869882181690354568783989282322577081050071354416610094248209228080593343104877546032110708602450461515186399382671330601167504968950342532737272725582971995231923965307645055687658052174823810458285473386687554758149503429587125398669445680536538458305054722292745587615942926671633100929599147590511059218483794678895642443459200384792621457345983935519178504364561878239855081706508131936324247640406236671134131712090509658933328822420804030513388103739517908399970854644000918880520620984912487711595122550648358218762187581818663489446235712545670056117432349974139891481240558191657447455813309693866581318712175696742583072963213781327545841862299762769025064237271536078308780740008111719305721906160246325682892238398818658726588666898805673571346315944406685545070178062449655551073465655299995242413319074876480711079940166689690153874026330826445684306495887816886852006479443839161523280967670805891837545021021089410132051303900925394545359477628213883657464415606266077960961317685874337418591567648212449506508414591816290246282695477256998896506266473576337582518017334087567068628442912929036027237420992291729501100877612969601093197354402009124696036237386259358938971459505343962053954723534854775486547669163955671969312504452711788655094815065813328691469075816315844429526824573336229883927719497808969840630308657446714671672561925211254624777385132771361417322452026358843771499993406988798388683591074432024472835967834118982736855049867708614713134546074302853922587708890754937313766260087313220932790911736889198520673454073891280236253862857413987800720249817775488024832431249949570209637821055871387170605527432537774261896927692983893387693489129822010559157252280328463358078048982385489469831877975246690049348525641537179792538806083601774148221573151181374421429589222212297745792617679562168790697225019450783555172395513820395292624275377222041836167328075610342812192618183092339089157405484501869907892453623598289369478222596593400965056464435944620058646565763549570054921396645198847041777894843916282745433844986634278317611651200983674586281976891165163703568338781592099002411970864606719853651957056125062972762191729020644790007726919032160145915178014479596240735984533536151384921176085994977403702845281380504550697185749542157670867116705014732753915921723694215070303414676350101291016527612171251909612737099109325282132634800570802185891877296954671381648753773566169428029081533052573392232780174792346449907799774515687868970036054176567975154686500418607077416370999942540330770139059479951363891647311541008049501627697852081043323155920013884537411474928385195070813904805612786689807701171720674288623039003538505452594970725995429188171171237497045949743424085264994876427461518299628528850997167724118674499067251646570553725750189713583883112736643410777132511729885372079239165489482364894916810104526467441414933037240761776169885066260375261766852201646041552469772108203680369915369684961822384248470981289513130885051759820927768294595067320931364916032806830496307243836354581100304758110768944321080370788510826788875841929646511700565420801911742641318917811772023987092217920668182455379471179693953278133481563159650421773519864465489608638356830289939228489377453514045178490585134282552748044805432497169986697156196312588443926303708188152429120888751682152288759644746961391094084213206199442550837461961801631349772045279469922083897189581067316547934292773278096920089119761017625947800433880111083717724033598121255739037912484090118344918945661673074248614888859154681978361757526483373923211203058951810022450937335424025082288882978499184660102166217485828283012841440039479163368983439789319546379196051989831604115787912045240910500334263918107426468438241961884593723382553163310296927606076553998688884371084372983010362918470148053942831995144261549852460993828483963070231658221896849158732626327289606004728680130912337547805582718591717825997021199793183136906202574596487586780803105392545473861916945804878009185476415128344015518894217009584672948307617667308606153371363947115980694193830031253647650544036953906265090178731867313438086167387185326260242908842072386406066909181696450657760761924223307076783096582250181539651615656393039295701852261698981807840813516589404035776870094634943793652107295303789163165526668613100884298860898705195358103567907565628332130747229646522223940424128544001968942051964654923569564638708217366268712626188471351034125374081179446856364363872971562602397934320585603952020274672291215666516824353431413457856009951360992561295393604729876626735805754780017722740311251179053905267097979697276704759899885232726332915851124839832631213892786849770129661586798369418506045228331249669547767164487938641754206855553125539750640066429743221076295208926869359217033655288011866465498740654079109852871724025345559302936533940284167139139989448111998982402904344131343626371124351655429099252766292026610164799864615543951989772402949403004868203089676852348699405023420574416127162429138056047692855338972361846173100586062694389291281266540061487842750817396051622952293853771873310046665283158126843956009971099359888401248404604179475538829296768458825811889768023883867232435598104057701256817196099717559868156938964994386504740690427883223923311327165938892879116241657518533887941818820537222162645485571221781594150746245439437368137978623023885360119936267719514693506192185566112328806470684646493135309885325485379716634043327009622723159699620853446791915803813703053884915263690516429682657807599337984074860107783340371816491058335506439552123816137990681162952926461604664797476559974021757403046279908616768875127720915563967885368913320868377642471068567014407333696751444048629978966937753394639968877267399420150057028490004320799767290628516357409776892787510463318738860675825995115205033721205768660525099018393552173192917157238441604980016406103761658746423764199407091506728280060979811018257699411131763425290408733190535306195411948362251452206480975314906512091439457480966418253847107029584392657994264089082074287972241611645841037246475207205279668184354754375590344191407601070236650388781557113077852383705416316423229705305682420492778460749448024968458229504615535935696174273479390598217409970594728341409635675231769031307991485199331574879123342949469007864643331191437181052683430190407841217063027233396326995227404378943295136195465496487540909794628723185573870212327070459558766881199989125707188450111712688351884366077481395539395428808382909030593958262097173341583074020694595571016103279171947721546305317161963883810907404197185275497013011231221177309562352343950883760852576059576611041965302378455487999429545142090260134208085630755036679065731928596329331148587610919447567921231596962605869418255176033395222583329062411078448919088547736269054999751797155704663081744468462814189195173279327661181795077755698118212535165768511786170064730959043210906373818756689942954494013497956815810991534954545728694482933080439218518147876978730423991842606818164207000860530036907726556257106964465153521807341248783441681946423386981858945222767619963307213485831668318316429560240516648459974863173505494565156643508632607740071725370281466278729285449593899042419871839428969890919692825818473291242237410794968171860048664173303544207203944056142624557092779313647793659520592029268205723392570330419051659119555162574574870530637027257160476248704909628879250685577938450580381699064484547846167314497498692941011730666123560518275200280738666099784828958462453720979854015956201638412679333323484289311925270382339792643851419320382920402670360100720666607703125956179267254776932124593322086437829486758422787509624419641688201115159017851143377539623111778296735556674242730268542130185925563938906041127260695551816012680252437018401655615860152340121946206354780918208723214811516376349534396025104759812644454266852400620194241743761987808995844692466269534963322209645925537787027165257616230338068814633041363422817054666427178629795604085177806804498816542474922714719635504037155440154016947556539601301625437630113308519292369301800898495263446795252314495395797590199925504166081587583362507378505032074167215319027144397906697927246001546322749592385549665479818969328229426687486724874270424437583528876173943092956825237735233373058246416445410492282133411115927235178476037252511395663943245500098355654072963331812274138359680765405284793538632609248216094990240068826693709585505130101776978741979685174041206904455561107219684082466687630425055577901128725434817580130830360246375480167757051677738171275141841379574694098436845767432973791408057992085119461188622261014703777512957865344127597537227998211968143333209306822742290110285647597908719151507890971060481254472035842300473360921661333659872931782736076733635994487664383330371659413159488343566905973704410619794467691716443836888541130801350047950139456856921490707493196898135168691442755835568325457476080130857211057084612217393673555761865089529540771625426642151261391618771897130092220624823092190769909332516131076958558904533369511174933161205106674178221318771241914159932306534502998071279223243640676799050620234300750266973615644168655291019966946267939091081040750848738411609811001225053573508699631586161195376763330061619927071398004574332992419011319934325074948122834981375206681267789863090248968447900188835624959358054773775579666711808724618225611163847691145981558166058345436157407589370047669939942001523578026585363363841850055136848404248194308057717856127502106761068423460863213992947538914331446215261473162896869756183917439573843543113341311848763276417767007486423332403755814448415623286395064452383035589667945148927200214082745797185684433442610005768928733748211748164773249122599297860226973299385402076677737547675550664987204536193779706211066701578336621178869309568574144887767403526712701093106255221545378907722347055546514659606229910127827092659081743879913550280468189790578675406115137071433827335310819405894125372835957852085424070904302652131402316202471169516571884753160915596726877546827850926385648916668141559621812773760287241622274023912085787775585454522176054151915131388180505864422825089516351957076125194272633535767419517871974169555974963098432899672659741283071272268972026318204268477751249011657966626526715320277801057479297869192499603174787132519590541867193583928011767402444555016941646125248255764330852974249843420002160568185908454871928171131022856496455056479575795239583353878064330815040264783010392418369083437165054317826315432283188845124108536342305616691477361059820035075814605135417220891169171139384094320439238282714508933544149251888925324052896747714653878022767844785305203884904287466509051206922617646307873156433588927290813263752677465333086788110245338057195876215620617150017180357348971029650432004738513590281576987712302025108582143821980878652948140812249482043363368668168949166272759167684743364336796448189919304884161668859798135025176483431520940744267859988126574292449020354029843525585233408107392487218765886751291911291822099149040548756050973802773159679944961495293989225632103905802211700541050116022032266529067727634623639336699591306366932809127698659007536856129603906653237150548956484478920015148964986686411072349330322647610479090972540581556588537202642812681648107590191758428276819494929096090366315244013222783035385883511878806038221818162127579155438611974002731488511124176844669034260316298063380887954777743647417452031931391280484794855916617913764266459037205977713300754642398763625391904913636240186837710181224655294019871530205884750448827161003753007938284249143562464673932970796822216482083266302044226695707079499433608470007601003990495525517903398631758864291331192685017536292440857149005745884832542808643342002347509989370407586810196208158291234474533077385265755659641556763823838080943762501853276401925553838584052536088477633323800314763485887141965875212753221290395672740707225212726793170187145421052546834256936000070184803346767708309259270016514409275841536071048211170725100173704738699884648864803460148098963009550503188672790965868684409750316659959404240223359757689643168587380715861802607389809784948706275511286087425594553039480362721852169251185276594483440764710595189639897186294789569130944009360968654630505747083244766508432904200618094405844256471912072806034100690230020695673715296852213227869815502791847237551382203532346362535699171545549979575453929495733245639314571310008049401592935994885884086309971711474057346529521062655502638777704596007821130995608712209179605586292573041512759135293895848393664975530472343253436262379679462057431619406688939258712547633123495999443098307757067910412785014085984022088649032426427334978915431178156161458944366450664525992370241685192526253034619484829081543002541330337664983038966936755283969363532256567003069018208760134943016663323206123659231708644925346431407733808098416780381123495342967416478861206297944415824804008158390700308591710137675322973558623927330957771378220645081821584334704133710923043649904812743136515990922877535361818057371066536114063298229812949256797786058451883853634369589188140928712929658685736483930187686319853486188824508710476223229793567794981336870146320889359350418620126456186809268172208516192199942979774203026811291268353297534293888081466870162846015706439052122959383819111089401228191159824936829407200961090581453614078493735186364573327514519184645987285375892862094576447656723091033795584493739391273667605615145463422850196638876543466496990415348353880229730473440583330021548402746241626334305370885010193346374807097213018559482016468161919616047507688243576878012779893353873939220617281539780887301847238907893591063235269961107756768765925870337180770069487044052437452329199415082349457060095658513356079585764476096442658021871225188812453623710241670424424986824295867339606675764331708840728313728449311966147432490450245131766721167238539463993695253036721048998469999413540844760426350633709956958702283631508584365903057238896020222297081800024709175188184144372951444837306579562641994438624901104551237979586062812837940111063197293157692245110108651960739354103813837606358855705816115440210432356166253824298987412083333469556297312721630440344816211577862378445111461333720020950141470751272370974488661169763880841057693008587893164409445482792289852425507199678614693690787636225450137549834091841921364020970711930809848877955302544601812351632679227550991502782034154386736520730734125061831524207523007797239054547317404578472102288815377464873240990902156433304131219421758914142058734104943811369605512109803704340237412037740615008269801444416200795509515721192371957684485844096783629604922948655317965771463088580427838718714325801296811575640831603724034073108296228643330378637181368083462087552297590750318398484296565469526051618672643613136736047603234687218562976911579681291956366085483438718004665853870033962857789690146503485118170315873027566675474037865991939296687700747845260040787802764839364159783567009577945557620965442550808778698368568085113736558717454467669160451724238047852243262855252681452294682606596653076790399526071936982050848674332889548260933760797041228412014878794927987318412001355219675400716080159869684394191262503747819435311943065885384465867097184010631670571003439242915045385809852911288644302341276551271539480868284380634411299709942450643527065676949440020685095148055985818366997549331468737305504603385150250683866533192967983904276084962363217240322163444842018028059978134673421324760238514899970246187020277526937641461079270796166156142526056569948875020468451392992127093857729704613172252093248381918326398845441669845664603567708273659947025689216290171927771502007965026290135159608422858529409504354295559538179338233249696490254340136110545754780628983324180519399257323201997748639261633555348495446055615165972153977012157933955478750181241797438149114802781235237066069655022522398541803116612004557471217423139194648004176270113739335352664296725275035587901903957887392694906293491418797886278980532205412091562720760939422414160339212940703031985619610081994837360357515662359406604337988402126230144797042632682185039891271539567253466512014076883692427913319016656299459379448000921649019410767863982316992753045623662310303705600833480404809705144605532717219052471137894669085277529996775863772124538230907076165526091934240151967679828761347971179399552719553552743120067701821412940348973056402314617828249842796704511574704141038357479540271458111234108409147312659891228681918979289525744702473895521031722401972208629607967354209905866809771262139678173822465357742456562030821773151558075784233226390516442964313643367218345950330826409631762959439329439074642818788985415705243558792875611873292684162608277869357615658113049087647159436223524506601363763813194618703184903169543811910231924701474351333127978160358923660141972375026530393503824794858500301792570672142329430002878139947200092041768385114092869143002618281667293270775725616088289376693243355430407518983599835265186978897510282317071522447571428362581268025414208361345831039025200582670221497810103746551193109343277508157163335250033244235321605271163580478586659680126924774732146425871876555198744634809621807558449192793301865000888591946459657095556758878197052637355360623806930055205764849733206735848998742274421814775440659087864153669806268433320726482093074958299024216853662271151146816516578191041112218823658394145432435849585690475976355944355771012114653002495059709580114337870393521560361816275768010793383057611832831447844766479591342119156122671320216829007472452184337668760914044933271743347190154188183955034659711512529119134044787207008271404003006483185747842311311594485449723614733026853712204488657008679743207488167803780427624927684042091254448438918458745345149985750115677467764900726215654770911500235482697892170378299792994567133260782271102417975972397253799596719500237632429140681808816952655936796372279396883782637912661692497034639308095938957773455784030693998794315294027742193025460514401788650789713099766914449640671175456827993906391175565841475399325374092710081741143548121763288229976033150719479880072255235166118324276638694255689601479383212352982892291292952680494312891069700229120403228909873128485177682040073402231339578049463129175674810180593499075487849523899161344777111905125390626865887546607394559828964393595709504860103813662647954822958584041725921638965359353410748096490801362735138518724338344785712897165707757334494728884718600565044046495655113489451445260579247518102645827179480719987075916583001534554183722334588837610049924842211283645062983385420694030084491525960870773891769944074400434812014284159781429454364970820020459632053026505269386108763117693375130211745535386612891377823844648516197610418816516329686143978858498893990744532143314602592731346453042063552823324475811610054697201697682446262001646755804444606343516336440524282163936598984637795135182737690915251943853459244090008350967015784261936165900828101176353437884608840661316702821551522772768023273887401474451474241141096576742146112017133292975137623752490408678385551442688861013473334060627168811716490281232880535491063269845597547576667912137605551788971077569010245506094268814438216452620077466950633729578523876922857305434976128721811466599599010627640009624365316860781944644736850610728127666105125123482046323815896650942780735812719294690209255344989394742863851877432072674065305926666954484278486335281612241369820738040037952721210696698006985190152863828990785745927787996091331710852824883916097692286165956044632915281525029659714287855246902739546723066433681692147986612295873670136876130473968675574995228161413440726046151037073144493557445568148224146548780697022740401838235635637694741609450536035664299300193583364253069328870856438990805904727648422630213127219790895288294433586222654648768945037319469009519259068317269042869039708590789022108208206920692374970385555300007629799835176386625144056242843974563331715806738914422873861336237806478112117509739961557722661014217296765628846679941040115080677118648695676426089306570375532713934666181678974262625057228732593924326525444338501886338212486119770308261384346796740570589502743134107379902443962556715975680644524698371025852142647693197912302820028372275465595032147556439293418499533466610489670980041305961808151857538804101397647604234301196214097445450370283396312259473506369733525525468790691086220054015261510518603490360714381770042011439726015916364612844683717456154108822865784373342721749277123423718975860380509220676066715324425330595212931569599641773798029596672317773609267540944030022768723732640114807271207361019907797021535496747116530900071971492370383348374945050313502283692675013516988813688494840862134239703933339469798527558955885211130150794033942149332536548023513278071724930084922749656412903288892517500916916745217386260621133700515128463411433271877658003698314249153877975285191055478051697460324472702042210940626373983313163510176465581634701700576710770645104060806767818753287436356830129992598390155835228263488822520831996075007755438523458856966199959954441261900608218406154228824492977708086211578990226468666520588068627673567661134164686419778973244551943237707998083750508081139512838847138609906735416505830973688897698707011923920998549217060868924943609197609104253752207853065842787384295126626151423444531893642080557652912887670080263124006838727580929209102063730352227769497627623078030638261397482221071214108168777610981053656795333522810040635133454169330934809052101603622828389751635850926100624626732630455987760805169324891198965235039288079284171750971203841176951996164513710851007240876012378226647048369239326638895902773607590628351279758253934081775951904920529761514432679000939471275398779727868159289092844740145949142204497209124021138723254969825494591947043024313691933215968784886072814472780138536266708840079689383130766222875844903844006935350183340278299958725159263462307637238993827494219857077257377017390599315713385099008009303212708222008373342496774833932681418006513951039527077291413032137514962036831447778313407824918174775396056975716975000137173830074802738844524112052704649519598467341649488503204269232874165689009093792741117820961948513884744633270502466425235499485059105278841536372003372411264541357244364923063835024157412428923165062264728040429549485755299402836508618836790487525998674349539381132284338148820057612976882208225092305307029747074611960641413035940889328873353385307114076997923314254718453070063781161949535423515208730038965049501413771062785584403116505046437051130483252607550653628596897775573292767477752857427391925268834902701371078074119918933239301148122855978660209793240292220995765234289484391679393032438367386082488280005757795810930452838225044453634383616913490060412535587253886322085089592405623958128084293202220529266969408516206561235404444259277522343840544520250581401386236362502783559589561843185163241714589295941025800773991790827701419570748322025668036687542480066748267690113422039994827418937511266230500907236209901084957037991355870128034482537710531962759492769086104341990809498736223007581872037180374451268973102334224760023483402182577634160034767732124827339194389209866405628299047910647817898780126648788458273232931269297700177080570176692874283063020106577641692189571573583791922720799934108204442832955375883077967886613511385225623552455739108400661741734333371500741464359202942007237257094671978097688759846231713902556066777817525815827562755270476302518594095445879856261982719877287094952174956962518729544472447655296158808884949251363591225371382588878093563293102524675954564145476921566231141223903054478135336877153245492992504531238337074719867863981606831805057347583843576137765359872932883644569168943250629165704955687870134580891963797169409871063828462781876223304401737536238889373530187501302598540184385419708200571782628274305608631924005161130221455350163068984110215042507153503936885979254084761787899205362064865932804816298321092242198949511280644961722598208320075951743982631934064252095257139017184218224121553643618693957336408856790220141764428273267301354374851430362766646513657238059487538628797654443975054064890999169970860837687768379994658249591235769623324554688070575330249998993812905192984113837400621782717221492696607666258581471757212531907570594559311155910696206263827381484193896640856797830382360415771627584195914738385662006327383160274970431585537523805748172762962692834699800120515640049003178412212631630250728695623126268294314761326204888383539074789689741032170461030664409426164521094625368206911931446606456435802758041024339716176622822875066882393335140230654453196116010925631782290260408079912874358559476090041386843756889344596049165315520432409759603881757453365469066654965926338202166598479865627200989284759396810100930754931289034962195963317510180396695393518678716978739806249642694183028428142734007613387068090147633588733047009273850158219761011983466982776159266676314630831372728473743367953629512680308404744331895075520380789006145048160821068469593209182660608790109789851305665670557806210862529788405652633099254637737891487744133556469133850098709786773988348000242190499423448556521933369810992266422512737582302385861301840632755391899146338237707920134544013212650655232566286064392545355314978681301556712415856693803211619048081673951104571464118627668132238937974698696651521344314941587874767483378386262621745983092304243744282357968843192112155743242546869954475387751225036426335194139602426072754772898410188161536752189990150254906942509636277272310945067140173861669071152880029191140956105357120980153526239115779446372707079517282513377051011949161741482915978812023048649443271685843246861218434329483930937387864381165736103694687798624376796455752840280053781483275220252082775224864100638044387807121063492480524287907576707967595441062240572262485904499399120611116982517668617482284025239886236385915795413464848875860113711969107645861203139243455581857219936274591468083334445271031667662662684820494341509011529789760695900533308823832470754775739957849106139553973837395484561272663296691266825463321325080272431879700994977109889842291188039713850439521060164311407010944360343923300545775333015546783669378702391069674068538265966782003873886435119873824856197622331637499107273764897569953523548138320063362185235431284873858407469278120823146363063037823148353830769380031141480854209851814433359966009100797931056312825606901808767018589275467717374441950012126083554534657291483870027473993711035383278154110381496826797106772040306863733455453562744105185040706829237791672042506949734776847825475960041109845511252075405010599329028034668230039216242221343837284385204885048476051184837630968830946123694476105528605485585778140118254763884561242215511506658018185457945031005936877445322531640675055441325369695916681645484381359408375732267257217201180555402574968131114924163924175594883866876913960735100120830931130139371013016508174762622302600000362378352508369962012048080122898585562546684179210667378125857043472344485705593606266282243449699043718208873741751600842522801471153525100452050141785956042070592107819711725109361771347530528196551562477123713864345807868449180248118970106138919073790673450053185550273993601003003527570250999171361820229873379014821051666802525489488947755960919514554039427797082488562935838926791021802529288468426565806494622828313069455571972159439047620735865255142000326918470277852189970823448598815581001392200769903595430732707980134139081261139943359742735001869373394672733735654306597695904791136255774977322908771296542321899256096521358937341764072651249102005168634109039068622583007766934857018125591348460955818398271261228921532379864109906257965993680841443972251502842435104257789174929149341300888394538922487706707442512346716617249084948559358697990351555451492527146446112795345370914516406724947141342488494350695931656265448867525887729530068097058323873621738944946381155898243242978074161763599182871485903899946351535624531088498458292866301271118630185194139641122983078192812965969831501718908166750668687804521783684956550526451583947428696471965715609548610797318803509077787021093285847544007088462739629665028616235543714637184961762603409010435320057904773354338391966144282332313930345707835100535139780370573731636637176556396823873315672063131268224605136986015176945390531586519975475389830319878391101740412679312445302367323388871864929947574921141018009248700398399989243293755109149825266362041343002345828880210439104561630690378351026997650983668863940274240112199550045129201318061365836978336118860896028611328945638872636693745460248094231953651922764946755529077643115407713568641185209114206095148480258694637536326604623081885351776238606617947631132115155959162988399304897569268739796094337850361649067579813777084579819412294429277216847236402930831122789868594183462625716229572542690546530828684424190609489956642587337375615509059854248751758699212904970641244597850729571652370142626181570178315613769168655686195742840006825521816673346236934677884222776548597419228877295495357920567375640617813413018299909200416679911473114858465297464570282837842171554529714325436438034429668637446450158760974505868008203517166961435341003485711987125049997416209664091993522277267022877122394155199960813964098485202218027000545292276312840067609452690658816476007532958930089097502199821459452162502557150137297327104184237198200792647517507047554999241218355387870374821153220545162215440871656852517385169557864427521527305106923625947367228063966630525870030588076268342941936112678955840003703437905349497211294107752770021199286252338999203177714765648075846347378063741756385148901887179835121713343844399836058036118928248566978663796783704935284654905599385179037354325792204867301570734168280377011025563727203730682535567861031190905269568556839518079740362206863814874918895198492582735350346145682481266681850013982693058558697127684954541228159523208328710510863453685527746313996478016250301999432193280971536427260915925889010507454664693890601290911530845869364153770786898215661170296056662161456107240054595052061924555094968685862876638500765739684072075305068355749007484437584708781451378180655390913190054912747424656674926201762868702902962062529352865061274705481403370795984835910097862539788873013997018951508340563672807628820760932029839635469193805831576870041342325236339549943615267122120666060416832913913394474763782731674150847623992085682775054129455550207872796994715688533797870294672563684836089267703007847869332942310856399159389253565051061335305771140071114122918307570827133182156799034672639265671849576465309759073596248516699356280941161770031366495363966428330034658926823020165590212053794877954869858044838531260762570833659138517231528894789617679137317728861576735919963354460377706117413740379098202940736469417618346986097323505048848976266447668628808444227700502341907273050435695226498949061320744019766581772932009431825339091183852309737622167005068736948068224854055437949708485396209477127095564910218362452535211822729758357773997462062991382248821662370544420707014712568585240211824263867301623938216765080060068549844245341862926356181184051943926173386174405301039261195710634170501719468773857186123709360769504346329825326289742646158887269195974309609659131401823181423214886503449855203068821705832447758039136687984115605259705151218666091033740101237989952696913220020096775384832139576466603131247393068762667096317857510559298238810924178437773131977763954676663363383116552471546964194958785546568976042280304145387760969125600487702936730184100779653511533177702718879454773537074158978177253401715656877781680370197302620167170653178182025190949961684896006790533182198842659166383329820498691620746989552537062176185742417567487404187460382349210052133401256334207952870880849493251382073930641485548058082296533053488984636116332680606176122287465437228946153897500961889786249432003133869115864096575993392962621926391500386339051971167330252707839470003440624885314373593471952327019345073968756746742782258214407874554868437810840682039023737325084307844455736510264854625153779427397806678676434268065776266353250303378386027182293468968952243061849343309749404442710857748759803276246028912322251021754468313308741855635222087341620780005978815409929256813892955647854734988700515302199321708164594349005006174275425526039205795040916432278610319920847644378581221194492789789913358041805822024117080862351875052480234947365770932715794402450156732850513474791782762404262720943748517523886813027104600259792752922122840309445316147201533863899264646833347599738491530892819904877452757736068643943262225974463914039443683955755662772807839623927517377863238198999550296240801280675456578616064016826824322440894289108408115281508022049069651766230396463880152179206540075955507351270319433154534746185424749587677307855891408802177349001047732349010937721300486912981881325557712128198985295561039135596839855267971262336233158336912341268379476744434652826323859268957385076902075339690252062866580203547871051376217431399908831240922783595252918967897584629832273196460849489253270736527617728169675575457801351581775361400835616219038692771064832963791175450063278105590661138805033418477937403507164850531292398146151678403035070264631800412635984086708491296127514475069717284098831914228054631063464275402919316911670157395391160163343997744836392173846122610506072531973481709996815344072625481999816355898159973572153383293383928971284955644177095288833373864979457029103577382856744695785416632889865929162536883282948919218933913823760234363685548226760628232591606474183807048606035598235544451164797383572056064732209176643386178382609392185201094324676165065023809215347577245470065813639321143001202222235763373163818251418140680033331738915970067714403124379374097304139777383419845196862081946666236261682759515365321537786280174214926486423229909130022396253414179775225509990598974998234363259602442848579265811788135848074193823454429442818001528030199189920792429451693261694738719844642067932539531038084305543877103468091669392301673877517082354484271348292689310453410062712261376693783494581191216890199183659481350811047172549967881962845308448203097953067708342212360535542887373477323574770685125095593737313335957460859524001589864895039712768684033040199777690453525846290107759798844564457889280275715869097960457563574050435858222896530425843646767908005323654029223056959738736406422423523112305996770422358516821028048512631905901452521104317626433212185650439129382518013732277379817427557941776489555275659165508772014361818600364744982262814934031923139523372476460577780431985988482644556903779382088825005668830227884113409720195845359491233791643140644713286163544892274367834241052860151613140342102762182789092210876145159217538166346509293667798829437219435898302497749121304619870658633778892673648814307510647625458304703271807686422246884408707752572140956559867301629952009368694174872980063681470133643203440927083154353196581206024615480860801011200102760953494219529790541989246953308275951052057264470184182536495253617465441788307068808506472555168592227006463735830731110895359796366513841628019818736301593964972340086451596275533136073489827840853963159521967749971620766743609811254368791771037030219541092818095266783624269858495216103775670445270604759518948994704985783974527997782895782058346898389568184657847659248297160932931107956467950885896055918405315274960564199811736638315779038722371543117369686106108629370143601859024466998369462530062458595786347213231016130286484101623446250148424169821067519117456314654664241494806250469690147766172206683132671565148451221389771470009798471876973514462105777773087002192079961828916096768811042773892094571480444036428073925832156113493417069238539688240993961895666249260434655292864348387085173541461016299710767607732172958996398949118253238451692316269830415035388358501391022856633708651943973509528559303880082860782639873516010647413780725357866155249976457036483317990325308365585123230574929917359626880887642850470185483212438063906769269855156899407672737691192791696152943150157692622427508173323518677634641530591892532853335377059792361106600613920297219744235118129766125232461316312777354853287955134285473456895736935100208247368093870621568275696847742390321181824778221741223408448851113531360776490235987237286012727094213455453705859276245430870157244498585084479425568955598706413951148061300436406454908345739844843606878110233436303833730884968848553566648195309748572473381690246590416712079894580865521401665785728371278350799179771606940609770831600852811140799945481476643498367372250315032387303536699984051780679152956816403684936932601084564858321385364620271762255790904596166896396404362918061523096622235109092023094619977738565116770642113848240433189739158079143293216123072310079628574977324887406474413781533689250047319428379516534128301972418895635774674879283100161988701176771682287074134288150958352533611321566355092022079886100022362326836700076050236819315613611795224784081794907302309607922726829344414317398806535299336715456646159509850470104341229338592283728758996033164680910394816233520976290505611748835853034019808075774264335136672286920462789839845628327426122066200629577253877735842083715805229388092424797978378134829216375401905640582478913923266578128812155134066675663095555306980172486996904977839128510498795409163391975877114907131159788035249775296101898755008754714213865332919291941930546386763322717266126204307191689761184438847666229659656776529632515999684952773735594564217263263199745730949917126344541570782085729744246419199885985560393038488425646837642586490440377444201034550600384602919758410698938695797238196294201597210957100024001444898027540115746322089559461049691668302011202591663798556158338398083461526764019585298657311805006987427081127093208194896988246461575084988255203209513924821979108729127961971266623245667262437135473706304280814621277664111176853956591879613740636709907313516389990155204602940175093053111210180030767086470538054179686511954392445983307996064894750493853150518398767174652703382216324738042617529298024753489045603118642108859846808733780063475874669057504040824184884395998786853641880526142987197694696016857498513902296535448377843208923750859755799891168907212264780623592195041589905430773055125842055017651744367972306880158770585556592204861379654392308588628786092474074098521999720285282239628871694749040068483437323866252685014082743189713681639352207069218160743260954336812625665918118755350026096696219011413471681849768709065559977894105419823301013547092775274761452692961322494796441155835825372883808523902708133650103707848665061847954400083337142417781984341762747949889982270777246723019705137980116906952501345827245745327981626802126105319623401727308948743527498079061575797552896139762024571633669819125531436854699408472367937747793645497507109291711598509674931199876273037440321400721473711064742542426265007184089595397817620004530148365842815446472976111139037447161571666682388772043606549734405771486576201433650358435428260749423163621002546151551847223498664005189552888023211503507090708639380671407068777040278884108025289430780590654232174179798751013315038739109757270977964107062645726353981871711225793772757330362450146762403570024657108608270913414063270021177830069818164599968193654838350020414567650438215232467860683787853772989652095537871466972175775316236476727462938146482440025256602608468518071387287861584647359654830205629263548848826327547350317836924746722387256555255186657566619654403586298490724741345859690722598619207006622391004907953030585518944470469648906557740922001046223113280432657034567110474150408170022633515371281862087190816769671270072087287854741933473587325407230569297187593551646415914912970121630961656236275314849906273293324792247183971792060025658571804653977510708655614752978265170890189606632658767953796768545556184047999614165994873895760958883698277830933227166034448634657860240201267894924813859226377695250735722460074304131256801826092859048271627007086835992487520357989640964788133761476054079493925499823471522041022684766161097778226888870417497191338594176392927296267215331354793856353937743468635906683277229487782858639603020706988699526779698702066765434900952073796685583422379884304136624131220818203223350960892899428318106375318340328499825319444729392772723123770854910735276428712700490216136441946638837628028213624253914615841988599220419448408688678981731758011276398301005410825784792131812556331131759864362578778878197486711366380971546375658736451755857196636671201629102674092193249215921524380480009514337246568703683062299280942399923421585924084550331276062677545584903609073778067141409258644340598918377123088582182371847746564522405335900309231672663529326733452484080651404382885040005214187192909612302271008434221646084589321115405347900365654086558304931503328465031436682643273272744103025701231221366670112770636152243429675591979543090500208606661683532249862201980803309835443322686531416065588236809910676864830638657372878750035933225686463110243265983965365144877732631389929809767498821078364274276554918410405459883887615912567465036962495717395290844452157320272511125610118155283438914606156196666716972980202226165130775686111092602193248161067123562203557722126933487538864867693151333730421517424170246496648198807517269700586020488142049189719518501013010992188530882691007942989470325918370095592967522293365359324114380434074219577297110782352663854502846369939106745113532050309212497039721079847689203327163605775663447709060069954422659546467796351883378737055208228221661479122854456869909268757014592579668578800693394348915122583540378186947418077897712246747279759317511418381616798813491055583703565857831618520977334635738163708952128558867854974492265652041771138767267380682919320358907015956627480726592145699905844443516221148060379269423450628659310191880241578110805856583849542278741457626673889249735461291668579363080568825282001946660316592098100339445020998593174960014744604052209307717138879917806515594209402014766855831090205778271690902792932375474615289800800105018211975534961874430392749405968908726014703908016374722479113396322466532699708365145054567382536003663926660352799525036548838083289758865000108036163842977893562434483536823615576703612434312373154427554054470804731203633355183304735380241543508430986606208337491975109173803541569247936918022314563198233095229901781356205649946813789803860459820100939447836979074456352196328424534216037856258028528246950109439360829672962088060289887650273849197776809768656155306526937634764477980913712250193978021767356660994942629309305306829451341130752418120871529566812227023649421379843075986820933336842858412933716599401159484739480747205529657443987520633352795703686847815164662423401335614742368710661819514446743866634911358977380137250665388099597146597349519291250588505111926729733450848435834498573610626243045644914138373170498254961213651132797083041685562833167196527264006166893791910938556056294205388903505017211393807755324468243887977383792886832770209422138397101140312947790654396736150086079686540118112131372757726692964395549233918040946907397898303440902310297318188735902226822711720646136413664346990723292813705985633100154815238400608141973934630639595136952556363738496381450328445964908248222551130821854066855150721250161575123341100653229895786324603589934162941815433227120940193975060495517036381427907149249410318477192297824494765024794851898887010036615201634227551689640524243373052690772274439296062969612044879369371587973328542960047382360625631216426230592511862525110275948278946818167107172008119843000842101659324754895263090937981409443590816582314120719647609810211638513867430694971897797126846965012655306729145927096385213635836745911340628856147635488453567914639274439200559457255440009911816161945566798742179918723310413970638955631318771167509419366475886296289540241465678659178468455668404553497014112747136980848834107396305748461039102794162122391610834565737551561734919959888762907640416313024624594906791083194321798735749793148324806562841497411689069490868274168116243223736581032627233595460768336703402834263519061685874110124353503321701115292873506157829062762348357342543380076007342022729090726998979461415697388537165060247431583436579266845858724758043636973449641968100248185538457789709003641358654381072799310935292036767172093298887348361950446999336492178873464899176991946506331533309897518929801731172087568812797097718583866174927775903333929474619586365041388764091820436447805160494166883777263732431138636337359953847903469447277567128152682154299384261502036598554903165731103582746221129620330576637773233361453576166327825740889912849094832103056145726451234449862829800607572331093040652201640801028150194495698368520169541859218573338872282016921730016672803174280045699204832080637343462737509236298197406668142129658331255676921842788267669680796937380276740653160769706121553014095202298225313557144704790669001641799372723820170115817999779130559260525737695917916425524617977482618686338519458922167171522461235050332948826918953659408657278649684832327542109029917433189956431865599435273606630726960690053019143175749990015825536091890815069223823223242434962259650522186149593619528915332547567648907978241528340002872190621993652950178275645815314148392742429470283513661924412729900873198058733840008822895910693788323721688884680264642975166802105202320636287588920099710919839843055265074080365434989585796137465359171692317144393805641775351746988841409301697568942481588500456597220677582499658809842612232881133425079129201554433904023255673001810890159222767561073868979703497264541911356445014924778397912480320576232538678794352658721277223281246078422466220245506575700363621398590709772712054716358459483931283206921486459160448583259662358190683335310934656843962785841967082464354468349486378848579992898667377154509983339871531583320249838464507375713754814148635370704176255628756534541122756812693373996161539063350336616862580744708162286921072151513661685113541975243500345536951695399948272572919126665024143942566496937934057376912134202835395211726029175290186848786878257697215751734036132071768555427396980754838221189269801765453642412837861801114060900153421395914145213913546798535549655568490490571967815019019095921331368759836130615021752759867923603483136658846243233965631523864096890323719529597611702609090984084323314184436408901558684449024295414229602893444623228555334707915788294376353825514149076121735656921912440241203246739271334671686335380920023062390384689864981009104753898692335358030751985366962440567324393143001232141670715306876088702690362600735598717858352042828275873285489780589783191484870828094579242635706590063110148095216343260625742021011143253050980246655441778557977747766071521257036537811196725848000922827636142985126313030161469795668658391735401219302776256099980896025123655586617795311342081861002583161594923822568180494320121924505155278697690787290644308583268033793617328292024115845463108076663134497131855528790491473111334261815667356751219544103440395819866711030871648538752610494228366805536153219172406044261559702512276389945133601268904773167225691466452431825269558897885810666595679328272569124092315832669891474154325581084138115715838379484443583832637364923897714158024182336707791070374290459114765497076205306459399632579614244646506288135418509684134607718146049359893591578161913029415195478385553229431258360247259861927515131344747542201270274869238424218640586330211890757967867069287714586960320538013261095865499511918603965546398049590145306762225110632908433114980557549825082574882598214465439412314549687353533825063879460997888324156849953461820512531987748531296048909317235624501856698276346048891140954729892624642559704171585733999735368683416910799084671309048331265022011355398200460149087484022502029364109612923704939589039395698058447277322969352061582098376995975278893283811970033259532992248641131472985219078633458926339241707392741132147759374862623513042613628255631472350146225502386611125980627115838532700523979801029445482831914078474429040622881532267158665190044044361144293507407853136050119484859113855477905145549673804486665183955411304275184741167826475466120223621209437855161080980684024454373656616593429279502529635691988656586248414971404829218214054416382880489956839736456852796954529104879460964135811594072198761135942684093553674864009363966861026626450003912950610635872091068504536440314286065963186172754520395701070263197979884273706245982634985205569085983531708933064819428550057562032439451855798357312227962975799272506201702795995673054228547578987220268023356769049856966991055687231304728179795035972261081333011673054293038592463480567582786616253692904365362519901411347152158833711509380016692756036925834407444827067872071564003672228461877667723723636429845033477877971929583744753672924243850670041656331021844655028739520636809146583991632462241641516378199684369909758360313695626356575296215352889243684947954656721731683212719161122660117984148221643045348946890341942378454679230289970523753924078832351373733524587991040307079317147873408711909057403145681474279907667140837433957085815040653716235124019295240603148009753884857960814588453146511177894314194784646566390037053660197065944234805123253861481245245341339452788513729513727553876613720862581649073382041070213945029852860572960033614425992693024243123528682431543579115396359942106545660587372750852058409584503126400883974679474760943345930750871282465497890292499185319944081665200682896135645495801205138123110874877602624865053073586431891210533593122769493546561960187752259415444803685930502561053646504534356163715697578761320193736319249128307094486384391226254825881054706639508142105345933095494482705518456981963351790179610457641141910560356958244449602544866890802910456499301209163263266501616906543110690291133366471121291639409174056262577670841700633454566510222139572122701631042195260377043034293540676951803179799431936687292072132342037752507835253828059906054632804349868671082312350542178153607303004318760024256037468624092413445650923671247331898494994511266921015341388292294764249533769331056628208391532332943533231080285817517934253864891231502049737785889267256948227661622984404145168066225871810270648905877370949683907242310338111924730518975511589619220933735217496842256690078571146711385532265164391456857497934253535675042364937288068125708658795044248721945957807704001016837964824420984703932135230929694706081282257222388443028528741633319007060845036594289136943685538013183924117719908353200121609555017023944495885829485532092693676625701107256761023438104571827400236341255138324850053550614742554775713790194696080014952805049707826335240900393053946047597801186372643733928625815307245929877061570805946716838680720176440751377742145996339129527086506860985520603303887919449569787223642732571507005602572706531330603050564526696273654721880601449375831986882044971190313764642911716721798619240304134372079231252391500975041078460430404185706976000597209354497515868829814014832702249084634145516281024399965521449177206633986257822177189205131619820075761034884187856883561788243316647994621311296644064695002718996129251993448872340466501320157473427955160608394513183160623534624897545855098743860046023496388918550121329354207521203570660015040193628801737157357802843975837503158263609138729869684669323450936947253688797261851837352881885995085361793151876375735606235765536232688222735368709462274411874445426369804686968297840008482052026434160622528457377395161539070860833156520395584840001082735608528148872407080795861434286114835886485190582050930135487590238379789908968308797386306704817179107473762643085350830849969755284296466601101241890197515324895988933723029412654319986562685730931169903337460028889287963784829867076795068887045192697321600137487815015763069971059965131091197105873073699715500550963756259798986316267296780713599057147440977475099940522333574390956083403210734250254200698916791940462097710884985811589374712867508198333947555832892722081738875493486039106949880873345607337758826373641117805174402899979258101000581703603925841408205264165539705492703810052555832919946249515753089522223583467720560665772556653038616450144938085908741016178059150845298855962909169221034489058277790976681711449428722398105829191519916630977368316279126267316906890177313617012602347214465502887321575673444239663778857958671630798330164883860431614372850031862517084132247649777852812593149520122333494749481531757295109915895179404882049481097623249406807830444436142914431057732798718499307014101443140740480120163393448409635340973808214890191969074184189837822493244366138630521564343953489332283564144213569928034645366977395212989865381653053615478155114081900650963667433273853174693743009286785137218096168066175879499607617247225056908289909553755769463627901354283936155207208181781487182017634774538124794656289956282595994474027729427785009444986777971233271894877559181624087600932676973015373632066121873142875885450639978756730163215285602424918168733622512719227829898685415009380131592622494191752598855988726635977347544281731250279393469684810745253688866362367887487030077471687795469096487360347501913709785786795382942782163415635292653499163177212743656282022317060607355561794651483686329838913213849236304424979798170887979866559513869706251494428140123167990588975236999821479937653426523391826412649877790064354562209573140910764722428021144186456106811033188354919684733605807534571102231850087341944204574407154019268094168453382512289211433787349668406483110753758574546624690534556268352528347966785433627823313227261657214058588050727955451472147190187590290456486816205996899836362422791091703867301196247212473564612489223044029126858821258178318465099460873879102941171834372939920830715194976819410220034363442984381897994373649414890789145819104175877303623889296385826652672591304765013472605114558037302287669321316775048787760929746507038720808185187219226684072511694556634112716144040198052216712648594858239716113976756425271174360915054937544504460714114646272580716331938437214655780187615484078264727687917979295479359803798735075830985960786760910087854296235935474659542034792785724961930510388656129364650591761505409722362172163503968838161009319782172342668805583525875649329959516859704140094366161528297251761578669950353443569563257035841868253606155228472616159681150108532569171900467767606344445849684361066041807391977972510484200589788678473216665681605560735494131760329166609696924742837541367778811289422555895842322034094101450606008533113202080663727712531499912429625949757385847257631151052795102212786668399377944377814962027001249935680664325659429734320514744970654462426516756080244138648506648728611884391642980606753730654946787512005664974743191234125898605841045103423082150887536235693256572488411502994857454948934480956787292215773590483002199701554404823008288766047619958342023817190004102579032481598227093303711090777639893083365210672107916851711359359575716934239088192459700433330939793416055895193565941588820314387557879922887924804907498220412589382829115199890652208574275701731698298365111714574518576664095640610707016046454964165137172517011677426413807263569079443254760640743744803512513745139045748919035575139578334958621661021941276125801020788845181978721244144304301450893991509296298448042210574554706854599074302983788424698459564027876848823309147989584348507121014930767183609298362933365133905506217321332965494860163254764960560628374796806379912521583038495723203273018363789922162536485058929991490874082120530010860644575771427255745308272171318537662285076850219147392890949362183260764229444346592446958447924302253376575733199027844367231624274641514021538822989264956117551101499413469251784718439812042923805362509368160093232475103892558703191120896253644573913571690049720956208391717218632251208264525456542856949482293835128380820173294003068850503182584142648291965816619648194816561941735971771208270883215017771768203354135159474533990412679489999384412687559067036870749320271182197126433497151402459446246341251935819801059194591694378269672535142786069856276743072722988137065237587811170828808926844551352509834538827464695337337000755379255917061252851468221953136245590526893200812615931817414085713818995836538574716987013613013853088038862634996983743068930196463964195864460230524537429766095337935261879758982342209233631518236654388413616085627655195150727627817766075483043406185711275040459328890739766295390665215034866890390212740736453938645270655027963101613097410246340412624140844769045126135997201687511188801313615609818894753203634712611916010835585166549827410520741183840615530603878810218187197536476447125501382896425333593234279113153385520600043351650149267232806224107791014425862492348132366558841673217795097306566900117056322951696830982144273743755355728940518540426017360699432073444633637138709810879230828237219181575408217076219742028397918179579548959760708875421399443314705840804351555283740466586386028504439513568536877896756369618162784689275424587257380184619512319712304687729124325564728894455585738245108581065349817553377101686977729406443702366366594720954239632360923089409188250906261575142492180586744993796621667254332795206364739941097896600956082941709352291925810066659430591048281496309660120894907102410867803149975036183231981187749993516285922500523286534605175064827755042668392912802728451544503470321844299817672831505622082986211975328099882140844869533067485594506193866168625227250331548464759075509065257252975769731982592702834885496353658555642103465548227577119170677809108555917775039996760649117039076220819058475741300077727217994490819844638812759458928898566084999248185336631989650061639418622353055360485355758704712752152114155918353901929110652696074319099669163584921899248355003049548337515846098785897482399643840517243820103708854353388584883671763381100920212833928827131539223377610071120005039529007832662707897831986111494978821740935669808789838819223200873567060320262930034776547100374210424471684468117336406515395429059062616063524129236173548225358125903237602079075989860076583313767130636395515819998622006727994594884725623758913540314129981847725936316932636452130790557314507293002890170643182247732871019732088652066278157864179765149692024341537435296143109567065102174709590827437448110283544789605408971718386749886385082299320687223759528377500805545875187905258148376488585735821154914029386973078504737559178620848331719675004815291048457561226093970025482341682657609987310488103994599520760515422752417297871580155263367740738428897457098357370390854995597226083561965948892652889829447393731227013413054949759993335607939935346942565744252297505141128293854496411253008277744357667359688231570918762264001624551846929462871134776316166817874995115444444522257379016547955948949094259137171166922336593493395167793382087858664981482978212002664255208599064906419647073657211350777792516231134944031339817799193361584024068707300887473492718381141347120476001290931507783279473280547784557064772277111316431684032286893544161831531371329239648656868240230223407931740895254546693140529782790387446575828176092279869713269614897749636316489925329605282290230716460830866056528154868344274009531273109301824892278210949491880029130604486246648416176059355155258693669599456898303994126794930976339026779616848654811627378498905421612906702227679216934191434994005141537699592188488196619613704110141803479407087715787611662154923298260277775740316353089016754277716752671547157494456484797906551811638308665306577786782915628731048542827303863401973078531331561162392683406021501155910293018392374554255667757032768131979054798292253049083904518742800770818810779134839601576014930222835354834891725444192680521223044947032867120163272054476270373264899917446044120155350413409162766161457745031501883699498157209213979277801361950813447513739853029637651362293309624034740006691581416302254415337186487183383592296599412332807459360338787521787697692201564656675165300238502982817444180635685107464532896111996068835984245924707900379391831110553538839343540740834057805937878752176868119872525748268001564273433209529559946202338039805022566435572885377042359185285724180463984186314693152612541383329824436654161478166069101890588093729276907750031669790992956711257966425951320783156085310277376585510574660295434200737567726003203013568608880608923716094138507081167285738807795712602609583760035884572558275783196515788923588678752124274119299488123587789335727629127367206303253750346456466897612786736137937467263268870794031368589590068640698181129802141327108840825628302501824625731879067536397749179176782297576288300830480875919507463239388541881870268141729753361681016105611164314002867000627582452078538832005248794545358709260301950043978673638157174644785705403400511584104601911843399466708273558459057134091798868775976914432392197875693486820910713630626560939879116539715341067563382280389646726744996779111916003104224870662716742340740721306438501481861839919180659154258997828320167729541980983157742838876229171218256058156815361661716726511838081273268137020594492342674689099098355148285981307029323406867789607551383594034053446092589211511906041123668971137811722679055892086918921358694765521020069838505728258424003293755632339423418420108814848585673032711676374060010807458277115236721455397101753523400830993749034401843303197240770475944995253506832904477513515672091685809436436066584687864799734571940230548852920133671193352789344610474954054065095423965688371336841993397316643929448025259545809830339161338824004743806766750777969764047290494646694415803143633682302048934310387979925713384291779057981702720551103898928292629043681033917846619638075844966363280468298256001963834361470808125007159169849768806492104631911744740454008669523292819287742650884625890746691176398093099010404460788249328161251289795269759433185919184744914415423836320410587037096608487641982789398208859061635774940532276871221046205896884090858455417860701463501427002242411195124349267441341215295041041637248868188617761714137850377922672190512894256678158141721122395442378983074491957001499571773954273612949440571938705254973240798681809000635528047889215080647858265218711052371982355645713941780804984964188735317049814067760133060123396240329339615094302231777227436708687240270404158330758965514868769368246057729009615419858829765514146240562024946778518469674862562336799254344565130930662346087425553467709835959952723117404430079846519378092684811266030568532964872948595140529091575881948605338906889955223636560322723476897212733274685304705784975734391950883810052189694203640091219337123048245114609217494853711858664944831779454282542562325241390410679176914802195974692217322017253870426270648294854175553267280878261584414081406013139734779100639880749100943613113513846274676623762995488989684454105056054965560714665842996766897548725154087465250574095943225434992699370780201637943733917351029446271009061396538218876446280431451056667621738823830689177079776474818940461864802406382161986479286567025969889192950794484721474267521753039882987075035490362510792438987605176344517708941834612305001120257537912111770192036837352110428901836093804427900295353748603884598922749370765580300433750135673296849335994300644645872832953909003456159320079930905013871042276073563107771626148596938578807579029392751285624255663564979353778892281447614391115756015736184909934186481816828700741174196507851843427091759986989817846995013539872817658453990471776526727503397886085040994383640600394712910869553957917559573906647449758632531312502807812758708470256253583938346794697385322077759599385899455649494221919766019904710310758726423876181629317320402829593562749605814574561338996773750692343275359011409951253221397775653843405922531825279427595366306108590199134891205104318788801489161916461636758806346648963208392484922168105827489235747900654949799371353792729701812620008959009819000609113140234682436618748035009709557187173525055642617517244544655326684549841332140344305283879473296366224699127170243201956529510302936399384730208015379809055514961200769951826493453923427396754122080198314730944595457633443950556287770769216881382767225835703085495170502266373559969196029645250761139102976912241604547461039403132545490235850148649946105050772538621139296360553915386378469368625786843057514164955082940458961780268292961837228776699669311118490634854193492728216723562542683470049468213398253336804212093496660765181851024343931312969296632043462229070579727665406949734114304405211518194740128126843063545226636638159259266410336128000224937650541844561338039019235690694086945986608583434923485620142424910098053496639508701734833755250683450804158397664234447512402672804854511513458716935691825514552328399950802198748828850623197786671379759189104545459801191416755041987001153866744725761553520920347700133961628643175255099747820593514837810553654146220258975992122864206036289165752962572881110672213987030998321459078303470280083521505984983517628462746934617909588719802161507221328263727259389449107828992313686049548273801901761565933472728584084590354110387569685579421019288658435027950909111701728794113369503889695143773644326284734368175064836406556005204596190731403412658734402905323119677735743719667647611156726910292058244644326156951256894277761619969341308846961212860818118562489311330610938935867587813813493722332798702071839300797527707332385578614949457328581976890240209130580525181148315914292004891080450020805247212301344947140993569874181183180312287419394984533946563783295871884431948293616584994532979845478865607101365127462640974358262345627063788448240335495736681261871708353753206775628578817124783624947559094881036213836770337438335465360417777234723046668917410319718331018796299376791194556798125281825900580606712049413609542298582748076744645992541049744224627277571849375402157357001670456134307062102528528333584202234404153839155998506420605230610670820470341774818574118118769579087376296549718885952087821900283298248282966803510699958532798086020680521199601781829121168725522383194109425837218147759718197262256926187595937514869011050452550484331979520828283743368018385178332193854127982089678060361106237215364186170794463192615229654324323326273623540481232631519574571924050577340550563848128886458199453881313089449143286508393254907583337919743548309963041062875223236931018299403387459109429016564194638971368654538637619028952948609490369150720651846422982254678156586785550208295527543697462844006581792508048803815925299605099451446779668187284862082631178759914357937847119291861640777944113537088685383943805221267312602914960454256117086938823967285305544578088930546028448479002067438220130347533164675724952295171455446659289960135010425879626350791164548426737540851806780521824337115421845680689616209296022419221329418186550059740454263059973658474704562923117408275311288416150079005576329093719405410960968326095972669356197947818151349681351674722850104989563815922167224659876914445514970139650471365400119458007099785683454580868194059868769872096444175566700520064993654572132252536168690273815449230483448670493364080193328997392823412645175625508712328817096242959212838948873839968188632254185999937470454448422302585001237980931193090417074804280592299503254267568591454760667242661671074688670670005123246095240125920103257878472488524288084936150781136532276783331982887135864410887232160571449182412474504212967831837489676824387580183233618210459892753046601557644887861454668804536044188956079930487266867291944770874207940057427087505422642594819758960092281430281767549989039229605159294064314949609280133905055978417325811986847061036016066779700637945160002072099330896326272555391071289693100101177198089564197767959299013733853767016951700084487731204254316945371095493962511953095810233629479651886560889110726968733060079732356064070361988032370420897022761904716910765324134497221760680684540242624057602300003877866126554601011808140852292501923303273719129070376791242431111539773701320392803302006074500844856602122494813851418513214122712581061286547390187037186795848477837505067338234812801449902978106243807247269495788708029799781238091196342048388752524469361519916454462201978985466285618768432558198677890164908039140551458522863794383448840922389918939362708652061837204717429470192190430855917432829132854501416422200234861520049191411875635339796853325073069529415885558390893689342852454172027187994155261705115287600148278706393919375929499070360686865937415159652316428122805693797023711318710025830598962818699972831991040055016622999353105890596400067329387692700975110860918157722020313635410612446076988984862735001055015990847387383407126402435236258027058524357176758083701776583297992515874103913012187942770853929930399019053279506975828449067459503049289880906977529662089847003215089565266988851473586507173392211522440559295041016255709430317795571617296577030996046873133776770513913683022901053026578262985703502885804024046482048329557706655780825702855992667953808431626422056477811283477533353552719556105277194601824597396290569794814808896382864934158863343063067837171552358997666216960813187280684869042000318889657311897849099146472195041710010396924687720578027278720016794062313838400570296572840313179171106944457996699298619153864462860455797226727419285861173178711681661309186659561495408222704653851227734387220043403758352798812964009304722749748149689336289093737534099654248954410700845870731038484397557795854197088679457801295200790956863413803105338557514989060455993979700631906331611303585606659194180836322904349196141410894936340571655910660920197580028627371358684984263015709336004015535728093830602472318601405918691849457606227595167811146187579440615371978267372488899036725155418970423490877735834594375073417859324539092724316952969343962130060645211510594921125830782005428650528289641768919513404887488417848310495296401262191100822435200716595008135991313533269867927962424494854626879122406894316230199175672525437246704356736779920018826675252778701822537592456980074827907350321993906664129244456001038461653179334381020417832553885441217637663689626569884280136287567244359102126262546236262106160917568934996752877174394308433348676076085523674096344239838430740589803644548958183784510412158410687943161672747249958540241990085505621331586018757673815317994712367697210021331293444169328494729819093709332476025086443387662140429042746710647935257448563374415206667701523898392394539355250431800416332492414019633474742161093042781831702299816586098908267183484394038067465540888252148153458489194527499074294159066055607852008465761500496335359289246746528197107355224715582143531984764525365103988193296501000085499919004487087560464903455404019420540487211407123734997651812303679952998304891983991915642003446346185982410304858453248248909525407413690033200545631392730067408264355683683847312050517654398424156929406104213099418658638142979937978671406293207145167279381807453087651850857780829002876460853700900644424486882881262341500794215591843977498328525969740336662627025089983892143373247761350915447742428809707100411944086114520477160063917038228996322800857393006457813340571394577696465074495732377987333975223914026908507236173051658929283202798286907920428955523257818355021841560028065716672580542617310729936629170089167606979710686833739432921024183536538758388978127674632663938220289700355031292682735006347516391710683000955791896926145144168732961839308689253666398539165197826538703581884911715808145374070635534310387099686337968362248106361702789721800964213750193735726631006557705194774267848347827741604110324786599954115658521484951562004626785734541855916191151076502288875226349552949571008663555787859718393255203423178042136128253692091684220021199282998040545795631573051678452096127831191779608649995955412685668194613475959836971165506631207518719737685777304792861407325036077458710107642735178262198077682541759769554567766719641543265547944355967805641827197108419079899609447345625651394109026889705847221706469555268704306287524902626937619915541038546648671077530164107711912406509548483270758949710884227252232575576636615930164941416763462305971314664331094393606056468238119796980806370887017169267330000919913115809809357233949034833216302472556464599026776029730814664147270775787933716842567292961934961806815342630915791686947866565358242181048634363974329316685894586671187401466308809429463116732778649662426340662361066477488651630839939991257117740516692144343698792021979724078882153352693557867285639012090804564022574526401670377967930312035855876696335533089006164616115409269572059007193369289169087217464512090917080363890271349750780472446722276725215413580685159561231399793818804549103711993606575673294375079815591938460149776662644861159356949961919852404762973059673158380010470031566580623392636880846277076901357857797923050476888786734851762875103734481926194739491720570957180908772003791872469516447550927125677570373857679059332968746205085018334124710104138567515381327953491593999837481056727529512870324233448137985594136086320068529076467009528179077798357002890112933397358470716896583289001707405709756785345512620329751634954811602287049138361956215487098152803853058180536243495900059560843892913563232769065286140135115482107165495252749706988402211851126480387043221803370020091643778431973005725613139473434937058629004588519745374366890586588390743938834639210904884510335562916484206409397192818100084324325629890562096333462973259806274773160877001466931590588255212912986193734369520264197085869965554385938458873821742019714722280742033605550325619904752050544625033824567216137230529381337732762984013213180870402428525004382000194442959482327995802665936244273855296869825499710892516031183437240203875084747519045855390139598506524783645411574564663731297316724324670397354808753304686604049540671530671168872188101187591738346462775740222566502448370131516545362388059378230005957900883098616271909274199747829961806569044989806191182530535154323496621199792346110140045910310996958844690063690807190458696235964925996968600831730431418839383121236435582641229093309592761211632128360803262966467299590179329102730758261786856695599329656649012048766186032661269618463334347848674358958951041244158112898813122053101014419468275437528838371934112586655172475781516489024264760213601419998809095038516921796631672054197933589793957075242345181096679878305249121732323565137572660957462867995774870730011058817028628537921289586313380905555779170065461989085852305586611440342368728209315290054677638850322418091134563932116753121603272532915898531341488974704046448799502219075364745342537926617292745429851676964098267664205043770219413430524422626490130902822178222432271689424693646207605743093787268819475807385156315444051920745261330743075344185494158395994523999677615569266485099965917793972768790622527406494989109102070442704241096843608514337249734022861253401282100683150682233416832844945596765526852060584725650995431209021321472080178190487356072245441506356357294792095443345186801455497893936118704211544926121469177296386296482058650380183592319962510416565554806604480166812739052071050085057816267496264929314942494622236253964869162614365349193832339497620878485956223340769197823576148742193964837176034311292890824297471850307343633691530750949528600636813511477016265639805535699437856717858531431540175191256024997068637122738320591668619754634225125785398091590728978588370192529242566267616641030820752026956293207200789053567691002152938376382130987346969109680860615202895239127664583602905469541210460843585722068390812557162693280326899756304648593851806664348094446027808862550717269004069797359999113744459427746957135722110347335962892653350911989255074349089655277210326532874824135781068977110544516872236833379851732991833858882431853913111039220809085817757021669748362283418967894691891747975485565018567213555243099842825651998403308263587628971270820671247290539058770332846371079385990188750294191496380758503467866272445361062636832230944456330220185000651892588180967839820640540535774722246096150275047047051946690594508668736913664469714080489603378576952241824154109976338613976901881797938065478003474709964139719263618313095804829460398369226405596388437835213980997253647677877936421672878825803031300741534392213411010526756893541662582619657162340322737093550640276912573194940336803939156599790980042780279380160369796906763786063220968031452795000404753480475660904330984470124170381422465305123720520264998226039218539752927313440776300464672962966903929667070606558162576558809067534620976331361214468213559475754030028834558499258705977271620110393508302881920239835942692696057004951346935501510241821227244361018585891993682509334985452050167917695823142392114676626392577302332301295629292770382525318570147523852527228317018841960922348443431065542001447068253414182423851617731871896997241751567941488706933330382984378109306691304618092271822282437901486101914284834880459323488133061656089714503071682710568927058493431012213242241909881366655471719068953472904667935437155092126561689842752509099476883651919616570476318387653300327806117310042047389879647566927540365950491813079091035745705549543771297333671335971291788456260061084992525008793996256148321749094901565566085300165017740747574624536040119268405249158018961312273203897528516378203418802761104996799093843567408809318334881061172206303399379554561709814948216214658863126205894488603942954780181109067876232145269856787858246007461599817813355209169049895548163142099766117758754150193384392321467560506975442103489572939890941814757958131197913229465760582812003818213211241761832722086686063582142528336735678414352484909991399504252203989791898071836000852255875735754452197950327531313284751809521674948647473421915283768503174918575170091842763275796962703235258600341086050801220558794818801547265875941439848967151995635484996049743728036263234531605023150405371567913053224563061420354360052927728674895142859733040949866123248607914019985942779108856414016336633845517176257936764076454869723279039286217496813972813323388560782847015367101150249731882029494920033086176996083008728174485845010018019067179637793695975030095396420413168067222023547513743829559989401177762694526883505398948475121173218846097956844124349457763068557942939012341572203463934068953850983513137576039783838246217778187033784160713804800747724645800122778048161008854781983675264652371115605945009438164636913131309337538818716491060338168080634715539815270254369899984895161008540351167126952478854407157158119666067070794531054594454997011248391595372612690181889960086848037593380966306725355149873978757001982128427316044919313962759845891096288870001968616807038927403265228651102522928052208150809859173090043186034315897147459938963234562832916185442750341738200231793911087211867740780824564948036794285857405579413950809684474851276976489839941390993688837010675732617495381265328151507105090333931063054477202635259588399630176392454899908782614028095666905492867814137147495370142507918196766077793482975430448962447173974522501561150460355329716139265213247248227526216131034870987176042894218202686493005979850376793248271287217672474149640631137490887405181938707391468398552520229621230434383850953015739677641012295817581221657662903990047792041420763364796134563582734802682883134276048889095005909655455196814207378747247285847393887022924379787157005936692277653959674081642183806343840670628846666584754358240055199696221085433222169448590138867733896103552941336019736165948098149780039101194586634329552933591506312741551456683158330428466721255440121776863961915373817508914965631033001665635421389187677777970193574054583099667220361223651875384642106434232745391730123349264948948584614983052913852817586470138814260223142736576876040665445959114562866386312071943552874191169210664719781075851685485971750392279732519293802614208398347363245006800533150907681542295895277057552893598229948125472880868683590868653231944156804757323761480919970029157714478102739091389594728016470882451514566085510926928048649562581389147662245404124176575778926726484453265912595616882312556614133992200993669321774893084238207189087689398946260457203483464870358262725093112411439503794290094797283282238770842110718646290061108480657588191965481021544016110992248144139270810747127523951733047946844453636780086815842913898462299884071173481597128375102177429200339359986522746608712673411358824776697371127482863344831650014250473433681999156696424934244241329987130564515970211471064777498224038468102804477896862857195054484318961232033183887862582479594582695045362886865147399778096782705994902446862424201784379464992588191482645348577206202225796508287951594943042665406751246769431283639484973041796213945099250166773211109301738863327950692441529880863088338289463913487779955628304353514317899142558044004586228873092581388227803418856984686090428078164986970885160433017256627842049337220776690050777229637392335217755530103740355514034400711551678769515200780131498514551489908200095159657456411201936549823507296500839349122511299656953052121654209385332808380024820013048168454383091432169542681855605254626567260773470225484193333747308535719771271672563135560935829649669738415430843212532056396169780784228516923017518744591970509577972779336625660347549157683117526848911736514265189807748472346590978252045759331847118259238975850183864237828300805215989961587408338167821381479437453431439192348374965332783495619966269155591166385828177339484978931902406563098228366041092657484897154118363868563833825799369310177892117389773694316816396985046612401990108427464359664691486188492822667045447646509653002784004889665233035482314245166995042222338201257664245791262496636602999246675163156377344453113395435096986945287668455138906619748510128216522986591591024184431392537247504997054645821084991976434345225922954521237044774096935649379888022149096831043267051087982879360894478277365393961051546347013772633556751782412642365669071433360030355507909226637142156351069565921848836237578338480232827845710694357730884039826874754400573142919285405315304856031909845455634734341941708046206427238745741237878596959016686787194283091744980714420026759371024196719348257770819584088834570582750752956626440028538935442235811558434072314985812647576353883228736044635551611219344310909154777819543950345000432079299664822684671009578783554014687127454221745605565044682608354276262655145360958922664497219578436425875642303740101016336885146425354815621968104819729317787420928974170564696358815497783937235705867707814922097502721133330152631524084098762456059395170920486191542863750654841364891456695175335025578737040722613791176733207825375361928218840130574004771449271740108046157473703272259171080463279398127485777438729648263092698611197060474272224068580459526276014355474405093472819220614251098748256715777504933824744826328908396068649758869980036864271457700083057489532678277284042935754202977212864059272916506013125123044769274161435852719145251675040809494266781512573535752241675894942709192768644834594310223761829549816788332657999962876650347787451155959351039954214044770708348629481901229408310824670423813977015158010668486392073549508224099476637136679346329911963536608567632388965516063338770180011074424701238924029886859162390248885501878408349226788809563751683150526211492905757864189005598561869445489461305451794733477881480872885238267693929279781619662909207260722871825956496570092190760455319566711440290460537578629525760883262307646344060200306624934159426793964345363103990250323100966152829083714646197840595555340855743396797734106998202257477983262301025074554754249732848041979420701926251189963838905821172896130122715514988576537691508159492544538703181940694666494851927713615175444529074212431747110021173096671095338510474679158190495574233165672089231981609835237336840242575017836421387464938357135834604808517426971477740484977090316259358452920756552982764155537667054956123726031144689750018183342195781777937247733592265266871408358471486807666209470612480311986454995632673167965525106942207235509004995183805478915484326802529784584131406267618687373355390051772185836826349082527759373740859921569235537001234818758800443744492456657775009267489905144633263940897212677674439233436536979924953059011330357917892860603484432622345254374837961891275761687444701939991222773032190408046973801672460194043324523510490950799977641107990559960173223293115100303427421671459461504699761506978537260618213276820633387271004724998546682562117040991715388426087297305527868815639702814610789614599214184403880911489769493266326979763912074328492647836770400465720608754250092853443189564569159425714579605351667086065027430429075421932143811358587161076999577251550730032305255953156247303214172017384035999408071148379013056086269954093743382983996489177331304664979692186550847341062808962740131420839020435316618105647403904761583410711214271497554964727239869182559244602655729467587849573224793129669304502848878668653925436355431927280317654281085546845814188828968814346885370630865610649198814178728915924764459757832136698319133755336653149676208540016227274981494730877138492674098874805446747164338456386194335548786213441647788859491950629858105568592302905581657059671234595372946761535828936521527045847742586855162544640824118581169842630836255180840596271827657592140630592906573233827219884362919778321160306612014320876768644292824528688938328414681755426410565366852975794728447994147037844280663188575870752824753007566293036149660399915446300693243393879798538311194357440421606405252306307501187179203872131147132984615933982619693168832431684536622038177040816378821835634599743341986583072527046240360101249326739530782889271514719845002370137041052000543270794879618688489139717974120318468228721457299926756596250754145639845634623827689376749865674944223962241117186637503210545743928198230012219084591979479180318751111630491463918427817507720285663163384378796289388173459686141435433862188713610383335748689271737140364173459609952656027980463226656772467311975712478239759846854048445406530040544627940639028010151961877261106389292955411310553327398552851015109677969470192723626918769128362244803779190185587876806131227410654478621713906838320473882697725550702125940756628462096881514096197850294078448897030210359045452423165338380903185837266181425610396055066268250670120559522291856452732266322933419529239546678533107567963481163545023759012454567088848970143371811305099523617468062295749704451006554800210009278980870381238207068757984637608120991619521332815927656571234818343239058153092389768819619417940739066352605723225642853326541858163130902864588229237251155065261991714211834988436002290631222884605173867579198221153350161535160510293137155887948432024819057740009947263918194634761034910776196007636258412795446157614550665781324841440697843167973187824872609246918668102126694209462333819305721625934370003429544470523413418001693183980876493005414834200357653927040733413148615939065281722982630925761788834353067538436373163411686159629616065591050691300305606751553558591874632910010836967431827848539037390554822776332305159684600447923870534815088955983250954025460033179137703375163370053431176140097969848916633536013043293279696058331231120590460282735901667601867916766315736254843069126682539458467301131006251532031996398419033325278721743284492784292256344726863445996315877849278191993726571930907009588810953557592095384028433069491469001536491750246360427006056543520524209915401793397465733396499087418271592041551561472589977698808798721899864784777803418720072423185231052734238597501333273655875589153572827523028083271609876667269336448835329814858812812861691774601575341386757061847960089244579560445062282872467602142414141532894758794551198381526739733681738710862610715971825061536276472418481771789131914857260711021357999770349352899047868251497940828725975054978768048010539643355360054437161014375397681488669939255194494566072946734053591671609922619506439874352481043421738120418270865629173448439634055158679343933674939195990384607473928972584227964332210660141842416447565930109842743747053230115488170906910204152704959116629539098197152858559871301934524427294623248760280696575765229098012740856667525096263233664259242705190427200502232978762535542293726489525756982180001329102962203774616602161798165317908181266109832330697578646040838053025103044753970783443491902240995731330866774888944169038902851635627110944013932350561965409345429880593324898458730898087603906506827369285000462252770780119732068260267811677102008754192166460828380502929821451429605200477948827343655196594651781181908799154330403501467841200518398199220155224578424344767019828890330127977737030054491648498046458296257760875710472650986368997757385947386457092268953532147627372582515092441265406186451538479366800432180640982195624287728329835134947733537910612067376034228400730692878018101074238072742873599113756449619698824411519029223308379884406698030561224997830045929763247860554770205070429898015644470638327662538322010693974259211394871983064347638328433982522265455012020799388282459723722947699416823125198920667473838757806220181241301128932938853205331584451485751330235853121983801576469733873220319496231759850047918284579378187720922327233605238488332695854500098574116102531355839196602195105089203696702608213909401503623097337704317293244235554133305389208645393246069872999894711343279379830517883641655151477925256339527787879919550810045899206672539646411803032408613338809902551941710358300469810740869877461863052599536292612003555539282849945076223288653744062933489471951158937684100371682705597648485099277227603349714785739598056867225256602730096798752097247120971326655830278013848630414553282412487231445128159966868383307783362776834413718579712442409509993455107485211613513104945849330307526594526487904395931772393363440422637790620496396260609181012575298781832647517523280187712288231588916002352716488244493193717302759988756104605196155368224648405858085730847394686222128657613346960521485202685476905755786679979654513264312433983666504565170216953055463818637683484760745370339847506474176355475840962302565538845744540949675064336557206981143013550369081172664427148631783505409603567578488464398512654235434463757422566284568566540136746339323464938427905504361029389976704880869546857171251884156142591689847308536619471397146354968323725393915603117079970633863254373096515939402341742773327722838346681179201247555074791234607159595842645207584418098311673824125059201758328797414218477066249685734916470163361303002245977833735531138762919277631991073190077369780811563668658383820413794864737467842285271630706635269382388273304633439819763893169666908253965931619489844245427880848512933074020279601830493507796190291137369893394934915509495097895992737309218186460797452677602636903117924756523104427576588860790585338038950515226546402876463537579686832736767300493862101315561228454973914126350650032685752007761077948923885762883706834457598121570670613575632925328778419717373885465791892774733854569046503995240227222919983592327238949663221167452324842128301783057275522528742093595065913130959207762965149396394157950399026094309960310059152605043474703834532883500797585310346320996914154361118758356625762369530058281453181136837132231514389282422458155547770864373461182297664298521943594160784821245328608391777709190856671962780873274759871422105441599607941235882559547293275943266055838306954124342906430489497655062838140801645224791852177049116404015734943897460034569624621975993966864165631841661785997889156622889740100645950125835019723577830356250608806494414573316850742109530999450964499283909830826720348662388402660160739693521622423534638024032012476529990121320375977492508263410052917333687414987414238479601765102844503782745688419016787276184441983781114520690581133220155785786137675477401658394129287663617369924435277753328834383812683453787040486512103353963516137583406059332789061970308578010171345141956714194598973880497354549354878033266524686059492710584025840369826975851795664277416000214347642310263821492058538269115074986416196520589242543190177317652018049539812886395718721878962135297561487237928478770736555366098110830827370521687135727454137378568303148491762427694772809757083389311927316627601387798763649274475802876331674705941067171400509839078001741303447235266096824839760145712705860856827883464606570770064846412102349809442089868376486959109244479246082069330198730112493834970366923339055663916660812001308356402281740469899201215142256402121331887921231467965910390014221649650932130962471265703916977056764450939965210312884052458730859114206393908387414553298633264175145974645248670204029016698022753493893511436248130550633280651884620463996081811570773609484888582182912905342076965897547002269246649797936443720570144588254569045456237366506463561168881611942211580355902929747604634455617823738123750488645658163844643593631905564648430180017146657394537267363368320095070648436788182899470505539548555441125565679636710798191516483758637820802163465405226923575099638746565829081956140614569671614218143550461311736554014292263171894959135881925402857241874101187433685603897881425647116022661166161274872470667166205212776172218802015747707482129779046280334570504825531056811502323198832732279112288594016791896657548489789798740225872632449920362585011819655762771273775871336651517464379366170067865824369874400855813821689198423661269105314243776011924361484154256302227542074817352551984188773884997893846370517356679259727236625697883547382477273587114902700287704190621026438486516402094405086908015630971304842410996381701004203895259759099602468243335725412400484915532913071758607686754798506143121465207244947564199641773197447191335551414619504440323549921784683085833440534026482065120721157504070728839072642659381071238996094552723483145732739669331579885767831135248913286175039534553685564714884020021593079658542801704135029230856118936044030889658517238090275431910470191831315706377752452564121415737037348694560864425217592607158988114466010977893121153567888572609189847684056186621811200791137278112465025613401839318336595192507593787612144023364943761043473634316998065793791120022233319934711781358930374523782617547315911852977901713213253532875214215590390250799445896593812798467632195076404134201992841682876300217262629433502325868174409920502108244263519923568504686569415129783251187684502146285551284488745726342159734891860960429581307924840151156124307234982744249928166156665872056661088354101426704192579021747159551878044996788685880235675824623810422750884704462995895707136077178970593620503797707121227965687496538949697521986785348845257583349208291522962616981908277272894421350306897119145262661421867452202913622591041451788758339651495311017704601230265318519958491355575210869046888850457177744184888026777683612026403247283461291213735802004240673373520117730265781901556700788477678783068451553126690417769868591417439162366465188308643548465143393693416071816065524942881442703315734809060081625020528672629048120782646146602834731307375509359370927937062129713794973270894169334427262998300621134829880460378107144925832339690101282283690457782129668986214563074189831594810509142446883403478882585823239065512007796507351277580233543507850240366080603456918354484843642273073162756717576530205697084374639458820901901317263872653752692883116881213536003053023102293887840139381040692480016829884311852911591273981637459896840725064058663454291362387071379880507381517976459996906251099684154497422611757480627566623301747362174191391599967552190197490612929988333434368324344121547958007680810051963377073087207065389887984898361801393349688158389105293764347541605965270388431454999296587386487678470246639649489491645183193608067875878454937288250706544306475413175618629021250420581135239302089297999191649264146885299100638201670890482302284396312260045783677881272028608622430320250408449606500377853915674143688968134455438898905726986369009935278739111505247843834011570963193955769518345474449292169331739413860028558868928309700165103413701522434408052009679500029543764323569375652557939223491235419275921951640455746554971408125925087391311704421401891728041841607385868737413135849650402622816935537504308241332603894114874008306696567758373084862748194196908587144794582755881438176668251658865543594941851871641390612457520230045013643659056569066322474020817902274373855252106088954491625184576236002031809563926693789653021891860825682621100583909908864158303692337879385088158173283892547887082866485584456339522725565472677231797114871413219832372007388027257216461635095381406482625364450623961617634373044754725508556346671385721753796363540180147406661887699389536571963293810369210448064888629612586719570263822833925801617372020080601356962886396004292744618855043444739257110827233547012174358343907513505915287142961968883001608725010149407908057158332331046525894052262532926250133460268525770406106542015197671702086589234029856732018187016568817764947689361945922611397273238030538536597742389892595346637721302070340055359141578812039309589955881549044294904598531932768506261577290957572024730872742416903854223157547388908127576980205394575966592935090274034764717248880278498388013693792565133880408572495177881935503632257946552543015933974908169352797047536079308161925326107196197758054731256568784919489785997780008080732473185066570874764654393525930561160639286267180145300625160794068406809529491459963776672443212598275517075252144958042838299758673439504912892347994259268426524356687985467225304261828508743872271271256346623647488791624307305384605622366156526281011949312040759517252169208919587432452205390466931827543547641062634236419986794036939580810888813749372400524545024697869649320862697900402275304291396322047925774095887706799412852732506847710908317136741520037883430288749066242836789207737981153609541551995175080628964457485817348723715959533353221872475296547147056845005344372163944937076895868060518782952057745050818003321127063753233895195457453780488958712147754626037294418885681870604579479578462542096636113381015576003730991167898514952626164095721030092116027473524330532399951168970475179434936849611028887335930234042396614431957148030345719037093666874715066892706695164688203087035217684645364326586738300825344128039922085664112013288899617397798466321284361814744042996643977851795294150537789678478387029792380316985068408884069153144056300132523457489040426522791540001694859624636473173913577425272648593829169652756578843407440053235859657540261493166461019345731900163411723908584294997160530539121743772262680592836768897616203061286678933156032675511572859262220751657705933968037128234199995841534641008506936445031408050260742984905190879550374095040791214478006125607689711975517827772179611035852632857290598000310458234397896202102791885177550172618827986048718796407986987818792816707096927109328411999139094907768187827701057233118005218249895510236405839501798868002068128854130144921907754683645837362717614251412458603806590293513555958833572375938734656007659070945470949030893031308031259906792472893317337811218821092227097253762654785084299832485984801629650961064518005245502198180076988877575841406492466434002437503637075379694544781158579094859605213803469655987829633439825138392400457166894459170636184537999812435881668793676230697355175032893640351724657740230621043260402417875544370433384450792919368404748149359463259749079765566710850896390405538036235693488478820211928525152814931491599756680163896717765218728073629935982120977349133124224822048721034558840271751214248688847255882077895927155588418091728924564915500368500044302897008829467075682746979763503260091656581954245144678511538365306316740074567530083382812591021721317399854334034884904454936989310716185669976370311547060063058589529285425938580459349368097760123656460100055856991822095804413455562161336466434767420441218869771828838092460673599416243176244253412044481131002801519361287488112085472836560698630458099931641628386668783369561935255810780064493015498942968310816720224325820973978942459480903270532814269593030024279704861554919003779582600013068795744304598641846056430977579207985052712734983764369492683373656914342545954199548537226191358192823557764925304018873003570988584298020446798277368367613947740477063245057595774358762776737233170754571537272167263585640147399594558937771622895554236796641745530953724513332883656492549952941021348142766689725334667770147774652117349197748015578411076691808728780503389046605429309317703204542907288575275143843258487415609842380535269533183698102222058385256692816965362192431795318230076436692619036596131466686005020579719110949170691101390489949371723098584388554840498529402741417761940171539048995861373004979868136380931309061245590025162202969563876219695591824543144418483384084194891619426675516655267171807314105325708409419127861835879528259039013053437815423010088801169990978299018239534343861189158290009969570364181968445588183258018700394674243440637542054076551417250556888840709240041044304334815402545458927017712846411603938298551940312745480778809862523708006823600097573234530772353642308617363113163592081033543814521289264563666744463347542109028611965506121156152623283369397974708232428070071674446126443498205256708423912576667600185009676614013678472534252394237274874232633965301276129596035443994471922844433308183697567636650543572888474017474674764341949035905207973079772062322727297863468689316929636929704038462637176247347174835162363780109541599499042714665231315351263500311504108791842451286159243045343249340498144249494556769972156741711078511809055824363813031259429745024379839099054532371772024224368260975778903140247083632584077066757721507561131346644417958176929724615796036840964381266004870786544665710528062092063830288585038545085934573534228405967065575907714024661296431149474807856525279623356047548238222475286123312415317333319676017166268127218524504851011085818293864913990087289445678422189327146896638824162606425556374689605093138177458272068586494351300257504441296640761105596377891263142503003032077083830631493672014400970254242747751493664913317483564577064262769437750016458845615921516847347050854663531432814849167082982988694939114769025984719550236061411390123372735756519679202072032610877584914188205869975146574508597179260653775401367488633688975398932253134092286007113647610335005249356694632077286936628756541429178188085873660462753023805118951189721943675602241917114866103329089371875614265207607463761442253842029795260368501649507408493980799390942059449026930035055152701452128194089060686748913945657974613876925497584936575313589280801625076862455617115830736798390243118467818043682435446422946959228008619428945368236380002583261211729696879864381638234486185079775599816772571665171375633966134853303041572362980552695553868082486727920677592557606512649495454613314740529366001995100689931910201454925182049036260332409363078304242457709317939516238546267864362442617407370247238795965425894929241884740112471676974316351208040249416263070030518440074016742288129824322269042823679064617467082411715772061845055670805429152252958558869858354112488781806954866619177623326709762615814036815254030972875730602805181729022606877769706227164393912198840436377699009661230320435988019535110960095686935119447173206027136372600658865946320444551398570844330767026861107715406365395303977954115519358047470975920731520071879433446130257489900603721571505146168016305681741796038686805056644209865125306118247935291247934210950077644891144540679742377250183713860687179243424966338070124779269417752288945435453324361265484236550537831076086999241637267859593841059452278810310174232264707270764190634310915002538828676781695820195906721758737269722635040602871540005745271510051808429436007129775242865006133231771859834843584415511060216496785889597562413172036536540175623545956669961012915498649913421253762363177806100855532676617226557605284725676194931887099828113048612006638242089199394432050757519452275154016205424466455430107562064013765900046776776565723457101095475620521096966677732171824823991936613842481255643742787203215975447776077204056726494296171914078830491185834074910039339011437767696207460030094039511643226615473624691572585902636781968047601941033828636002227390644900675467751224173691475937880220838348466002754736543258334414547435366854624980429546459754356158889718252355985811191298928930968078346114244608746757841462898874279164740788048867014529394837828568901739065966276880817367393314103261709043004080107474746045988475322571579768551481441625747125001479333477964401749449877133502176796826254232010983817221102782150611777490981235510527820024612657161481966218609239932444791651309018310900385779715632774059546414172095138445810451956811096646664302828783059233881581523737618740013126525124240012026271635694670079814030619184097509851781179094349773496215267303204047146044468193996985037189232698191253870251669468921497927550487356832151467705593499249802178475692599959652040498138117011018115874433804811321230465914042269100350513492130902654379103001734166253161910595119707290737536139326165040488908315949100991019381601864466017539739545546297890121444874197232151926958687527351611067366750804579420221973588299162679387275683364926829456514014067612342198306105397613792556564230706182467825361081534528825005924704101562368625441591744580904918680590101919282492146718580715776886378374282735583695946905199333457139924083341699968148609289631005117041203083791836973240072101692856019502742853155037029907479030399586763028016308031836951854214515069214631647521458848206463213382159359164077632134536410510810845362285244905875496303426058415346662463545690105303520267719943933910338320927275051511046911184597125099346277793489582483470257813731378237051548302644186930439512461061686031036687835859062196898374146890637516906044133150366014700412329346120283729101439439003150405947694956448283333362077791742679294385931654722442316372818308243725080517723141496984148420055565330251829171324698534772417940710720777578407807966479464539957034468453251861444322369705429802808470579687362987293449882637717996606293172221212379032656926211493776825567037883515058330508359686376513536281735225584836560667447670522786769824345449469958226163630191807910750386843819234665010371782681559260231661522027943058924708331787919720079532655207063046695041451651611816246678964563170113720831471547579889075784504515087804626782770703266550030011970583294508776578677255256547508079380106289016632161790679705118068597633497036616497128249031630341890957286399105916544980548837249924236534258900949645488609943984001309721719692236336834041078957805019351659095473444914445758213247715485834004008070409995244275829762966676899141411862898251743008923493314980549249912055660139948706378634526550003672080860976200822923811762475058930261075880931509622253193842604082627307635880228293519678141167256361034359296110428888538271983611063567407608205007733170729413358207472053992775421832038289212258417209292100244581447725913271267587524973693957537370169293450082556380751798258187719520949224242913669034971105382457754523891029663008295613258421962668640272699408166734453433634268045294572279948211144522995112737272450951400228689094725289289590647289259568541582121742280135578355897745578417615524241159139398472478151482677856706257113841343946628769336035436978166968681834162653115344612420570018379685656655100148356322673582490264785860989031087619961840575999080771156254009325685214407943968150038065041112770196017053863822170030915715498524356974053429006691228735750734748767184225504200227604019150214132071853059707960453132257011033525302651071590494399862722234040067673033795196921758013034219306325156823144179109350375387825162731989917476896477797678624990793319530445334986259820134807006276845479986357425060978217497796140411967045342752321591290999597818869466501827712556754170754888350353260495371745861584960634305552660031728493386478431117608246676018283364272450354211836666302414129012732661476326281424603681907862254664591646246472891994550626159340774981283057648946043028455963225324578802545806962612443805341675196808526718996865747918302271427355868830724389626380032413835607303040622136281439175475705356553036527373614292075540699395680031556743549248834462293411028275868136881589583398223424247800429408551912586674826508915778107742420674098687747991552460012440332178517974362557880758241102320527522980563444409604449181711273189304077557423935065377452436147503478809841664842381765798419092820307448329917404425697988095714869360057172871485054494070968623269753638673133622640403588920005203525426617577642680216280372059888094356753908990586430511166835895621096330419246287462273880392621634043173242373694416385984445857878225854118842328068587245249520475843794987286433779297805037189197520793467415602255876811484300217910864393899237026400728261339081898723920343781827675748498950239385385799118073524554860008842247872501303015843073433097469930673002658433732846941327860358776060583776958877584038054228099651729615114623530426085728577521565729813893594609063298977128505074041077635898782162748271473518788259160798836577560316098283008564952508925364822985741018209023047486407042542502050991035391030597829780974958988012034780507536464585991143858050827594390574824558264964164802579439078782097528314676674248018026986154785099641633626250185909267610585481491186997171184790341029523716530118671753946159644452509429854784651410484765785342226483186999882651877527988866352946009789823826569766706657066864039894460427699450906383408872557921594281532421271703630972492023312151687225751895861488142929872763805701191538505808155298894171234687504527203542995446116442644570580961461716124323222452818101105225681336579490712297212267780011931743610864323244565747015576636437325914360787570540674717911691485146376309918721768994908253106083644466072230938547519924581379879796219373250861591021200013968960484477310237849745490847060123324625642992152827822663888775628890465440083975338203192496027885408811939742632325284609838992064795025643730740636782101319362970369970614578701418205434832340804245354329002442832583271385741356344766863631513942327000957733846915160921597885102776999671601324927567846016882085938919086804424201309074884754671033057470898241406585017098109774580471815752102221884145755821199577048437113112805412457194615382157654371445076570103234527636763903741880913108701930568208151977864922772721682558058732367399698792904454902093117870764762995986770212026676252376374587679357853201859602874027209009986444065580696304426087723316174147999348303909665774140917132096573399454528693599186958286557286568951988736293999990964739880791409162874303657626806162052270253909498337998581250847610062375753438808326506600507492663417497143353096325645624574421867487057501864561411983884478536322859218105257605901692008739922471506220574518078459017761497581579537457802907449431610218035211646589451584677395820263515023288389355587297829813484702888469796275997256426212390323129060793610155621926505933562006750849693095717250648759933206990611475069620541329197457844276660356216631416643500945034833352174371375122038215471506232589150215194948967950682462335704985343433594736217786796413332816198130779452445918208014109758532564523661457575903454415268330329836074291317994858676158617849506309504206145581165610760643746805364416698119359205538430424608944486289125227401280439003812732784472066530090385467868190445477116778034000023892260976183665848101225291488119301133377578014918044972489478279603303349465293705096502670978548446551729598342305160731684584330337178145613627132522278289542540535137550078135844135331175195340029576746073277762720847016985164314168495186285482080730443080149162746237050456530388215693769804031659259732757284432793041918632060530436087599406949127778419553193656039078243964815630107532017698968240641961949338908024987219667790688121553835648977854275791765516539957516944100319791588476161726448386799083262317721727908154993213762330630715062630086448764153804985182474669114297148109270463727104773020252870326726236198201166568826101600620484893530659898425138828684176812348386611343143687231084590406321800619851402637481094569580656298620574487439260988545015371327797578311783027567996752779123812339332941449780108485466633333688523627599430421415350061476178847385181173135714204533733068119955026294058017806725676668674365488549085107456014025164965965825982759623902848451700781102860509274876588733414083010238997596939987640212349801195033325997498168894519487197965025931743177507315809398325505557945673155994345656377975550528577589263794189634651812351394175706739957800796413480934766407559427655351010031230136841170911487434400591839718996519537217132400345768897533386596401468305229652732474952450848371317255286204165263584874739478201084758400163351063680966365848062600317537640816071378543757159637972868585275139510517481804435092897504850379584380527507963770737398891385245890560896976840585697528786520075159932327399145517474580644937622536747993180688283790269410506618519557819594579025171108801692391682310669893130078015207937652304303275067357169283318864971564119807745393869372712975348795957072068286449377428405380730787666582750992461294527977010706006658900367387807053983000171690128224471930287396952016535922595784822997226555658460526508627195043306183269750989267828500359142760872625329943404069665344006083824704473294539152272754019192136044857243208602084530457006366252901741894915226689368359601678341590216100986721313281262720913284938820107735420308751586840388902893811136597250612872353165007287303966988522526414724941158762520099121892765385452817363322831538843207455042676803271840087120051974908808843092219458540222936231999361803021299191301937910888405916109554719139112750378427235268774032311161202814448119768084173309695888806630606448274038783878991605949362799346823536985982519262631847932231697295361878843553711367491961998987558513028929143887306187688466010656040880994463500900698417832790182387027711387282605651022713220727023743659083838406043057899023117533106149037698938088130383805899653784295520153079988677712399852103616489047442117935808535031613633079772578240293391623667217362220266095122519849776263610367037565508487556584071868223556775878215308235038421648618987977169975136443823906746561207207865860546735622663479463876050893518293452710892224285358558306805448501038632461070598653564308941684540073558586618236184339222485796218913039507504718171684541320151884011863796356621218255413450767895592372042320454808241224398035250694158596561303587503284622801344486890537321782672464188773297560560418240854322919504309652678772117827294102359149861481346476306169382619721423664388752175238648501071024711396383597205984766881355900594835373082718703357338629844179535651408283209938855362153603290625182871278598222218577173536974057807666536193856596936537873005670629852349554513574988412870548959962394376257715759159148718217689989262456216661199682732749467503054089976555939877943751902270800792182578515381286465783012656294151671618908845682787941787908403833637006128863032587236338287874087546955468302118319427750643976445947755847256784062577873519394498220617082291309369603728183511625824602992490502664202121848625227311686011096894267881973970431861340911443783165789215646231151306692355228398504291997407629972188969748540744040119170524617954826385904327368138756964885687918709656494264087631738977304583180353841733741453256617455308396322746570895032838661883314097098666243887438632593682369825455972078418878173667740761183021892701001307872661325444068378858848168678978221030323386326476353462929878876160245272757825425087849132931404348989182639406286743518431947534100003222927974341591227755343170869037200775238939005186830576163616200316404025546077467555860616387536871225038781242089020197331220648382996859012991680446873686066989338257195937885967472501368763580128625946710323110203269666894671016644936989425471001679716126541096242215138974696917638621204751605749556648197613177085305958029468428067867307705972733652130184741944401623898213613100915447768168459701700290330442859809402490908864242096194828361836827623370733802075218147913410714013632022124887551961516797376050444391928379977348548345395049777990254861154938976645962131813890492096053441739222449179982841052941629735340886118209558073918669834761074692322939092701150975776666474474887361187336638420515920596673846714982988258092064917733970417274045774159904647681349229072372855430180567079080979049340076671264949730119541930122730862355550928760640430113302900887570785798955218051365653702448969319705676063240851358222542181179784540458522274251019073285620500813883699484996960123951892594979223026311184930422591436631934125949132908861937017295426191558448043684518332005260939609921965718227223876001885756080189624895882824934081661464905379124985741240190455281491803979648453289667624964047587373719342132461129042925482861089657078958662221706027903330174873867750821977818727726771556472356966629841304272810842600641445953901541705030846206944556355854326008196338739161867155262106197429913321657266361020358444605649974745626734382541358584095563448676323864274899643604050226277971067203949571554191910445750158824982041336691240251166340035981692489271911588819804226515069230776433826331444010205162952867382730657065190012722563119680720812340523705048264946490828956531340350557168676859543318988117490216913450697905561503486517741097993254355830754291250358922695448839612338763082496112339518082730739581896279745994473161670438291962032033270057944128209510459824794547244188535617901987009454994744591972558648744674016050476052734354123252200166619784137072428414031308673285730012116800197592562222020928517435042967541802940568336798040765585700614122083605564755578037509408623158459814589085674231035054935197879083282641832626674504466102060278386740369971433402339455648755401411683794837946260068207744159820365139398757885715156279998298921049681573868485825954240573507396944325975173797450326555551278981922687242482809525066784249614220699275793574910987980273014896865372974068691657969193747790996236165254179804505911357920046843553397284558433196051962912012843767575747389639464723449341465842539434080442771022558210257199824535643247762007478017270137196640530464522925455149807211276118814136044647130917000638509524119180100617651699121714707288262885042676772576506135853988723780161233164684906041174788744056990113457370728479840418477286555764499107488901298936775161979551937804858727396213739300202159775685561780121917833089352964147794374511144630102079077671890771788239927671559909050174497969714718328825026173365637240239233143686860246979198036936083588825981453268714636255428195210808221270674652646442194300640127115630986943724479673704933622268645726106745435570144196607104530298918825234853534394466796242830990892948641171897297235407472506247185117533825972224131768873645891699979945450786310632136830631541309747047267222831775633575170478996195914494411918658538128173665168336189030214913141714185139852840284924063101250854176787553053678686395125533005833660278228958825906301109811540875077237888322016809159514967213880460726276224734848210200790387519399377184847750658281121643226176768561210790535257748438917296159891836914033037259901584330001179825554458144519818542417869063423389512937723558968143688203014199864391687413988135739537602385934381264586358831585013871140743871275687083690721575723670716672384477907153104642927143847400045377976553202621732592670282127355907774334025487433022198055150985742694800646912903125588930968114924922976152048280826186370296216808149743902339619733631329573344354229578990403344829721560929653086040557879525578962802050214466552806528766840038123448727443578467910938872127380225439094966479931766859812102397573604967153901970200586029504933769866179366860349503738742162647862080523338397534617998245017318534970143860063319919824982111170766866814908887927870019796242440699500281305077592958047035804533884922271265959728040433313777636392447274876373201469291324941081361676918459863364026328808414106393877958501243784652296198856415688133563509407548292603646948939638334895977291114820842115767525205011349407715864366166517690708457365460309344963424140842371795549739214816940293520662407570263837202602247165070741285863937241153192822566430716925589329231544575330713699789948060407787033601531983635166054980283348354442925594113135924472307209778263512210374920246268330604038646610691416120270672479359112920549981659357947000207819431819507885341737630441574108415531401865199555152422816339034630091695285809096924528948728328360702794120885896381489441514076725238848062749146239945761480172947166841033267753333578330485868060168345554649867368427894466908043192465578164521101589611453665321910707135488192881384707236025196725478595480648451597076799660372557177285088587840365881880575331969288024564160107489409857289280891093406332278949123987954986359308958086057254183821964069548931842711290019161141660290247877130726473688845245159326750449463974316054251383528786894998393870807554315191094287016026895411090323981739204903653985495043190335411834090280056635258893666777035138073124707527145255387105028935389778177631981734401613771749334749053278380397948178756874940135510777445710451761474474907953831665249969682706008277933577017372278185052982159364150903491109085753654851319638953957921742782037653874294680024999095141805199124896857928963689987978271460466635481579957493305656461071558034755283581233909785548669439443287955613129110965478695163307070943428964539203608070998940744624110484297783037497057998508999267231664436759520012671779967060097264223862280947539904393688698309037186990593639553904720429039744433120778328245065638717329293251443315968796474609700107056107154321907434949530313528190524477050236171498268625093062281640746787644904785672509354206830893863161037321873606351386585570237525192846739543198175480274324658843880509243992510192850766864211792190850307561109585317746072505761017405308243659620186638511620880351809397061297978340590984887985957672320627201814037203667472200022586220210172909566496517759166607273665454768879597502824482881608001357739695609007612344789466290965684753808611962454461924623477205461282753076061248609313811745462450644514519619267300368243313871596839468521382905602132130377041999556110100086250019882844724290317875689550103876661762956069099159953913368424031306157150903401355173953025017287254120861906649142321124792747352436491190493923667743234972251691233927380343028821778382108023780356237211951740380935620020155716465291491931093497689920364952488131351455756663655983681040795668108587661792368866825153688936430413797867977656116785028134532862599788874689799125999762809219398747228000843204023514661983352678395710789321326357119009768972512372344666726109550318646828162936494359558450811411025823451294391300324050064054353517162111886204595261511333275279527847983260195658412392951768072125897123070119004683560597964837312153238126074675098696923081870865998707270258854333456749887839561942020968821629300366118489220107395632370426953937800568424475557861070798261910732775598892685895525267249390744585742536527848046465917157855444772843175399209758545225363506597520735473433229366860277504814180435287654417633553767700143832662151367266973686651587073473493522801921565678059977635581649143172627405156069708176816057593162127692218100191395832763463343130676513776797336595955196764189192296084710214932629274739292137440456890819055138458103339479094803327827073474567540953228089604062673640303650209502847217832254021985164934671968804828259482017212608028294915542063455302565188195927664592110277037288332152851854146909561593098497085911211998555148378424243113077971897131290437231783671082221545625380336865855960060609194358469909939793197172642782951417018303404151428463420773922904999360726750819539307307885497779265296150209395857572813674559714887074971419467872722373689840810166344245719488413608494049386873444994209575366729592699627290429762264434999763711179860437807715244875055873123964919675047033542763625966467569418421848064703193577411436693507317431790211565348182667213484692618876394147534826954275038052594487087512339165152082253995228382737312102738259758211937027529646124165455676937601545613036413988341496341998581347985745223071797837794872535740786638080090499537648926660146796758878483768051625874035403493615501827019470442284946974909463945907713228020275833135462699866329083305795607520998053119605812753702392261920649838784488044996007698971521302462844704489405194054649156839768273878564057571987563854629674087814044758313693443140843596835737346419572029834048933198716155009499611896799091004615068317921152014019758478269357884963403216266607782251039402051721786204741926682626955172247577757363596936703078878027783618855503234628367875485542007652840724915854797110024774993705494498306627652495621319489175804071982684384885797953651807589840735645756699949599391086189155557280084315655481485527778450470786211767620503720327102876709831651767777261751596573666187519790455831853135763813342863183097791504589858924178111715812839387735420051150022287374090735636728046355845934806831780077180478462888583867786514939507878583283763268612437798341758225552645870479919053651670682606742326843824568309502928203827345210669887690815747038561297122137208003669326065533478194189208126358857950861983501799028299228163484774060599230523398323861836716670031165595619721969376048475584917963552045103089922298834887279869140348067439703242402278679190578231752300516156343269386175635159807963135324257643046663965482610529844923628880515804043309269446836612120015505398743836485500400972272865838308558799777306810416222940608447810838723001025558452990207806508132329498225862454331743532541627837418826392211329171343381112857377660503319105467748533672346426159526916798461277358321926777805776722062766781600240912469463596728818329680924000368688032007407222428338137002055063097072725968703349726310004742673851891164973683788931079246230229101655266583079773363485248971812073418533545373322934087292042511384273506844674191645365119136933686408723712623179062754779102236798425802343859586264194469808064620914928958436873557917629768849680405964800031783339450379963922661132675724097612143436621189174077121684240601085140930948089099465761538650009406666501417691955322332563116323581796989017340186359366602501234155608241333873483401168584635235039290228693965875277405919447048850694832520291674609684099506575665777694194234998768875671093716733575702538320864228641654162701167784437776223175056815558903295725690886666271898217753264314352763157282182637307842837914131130640013030776545867103523261079987694197525254458741225626300900830422783067242504039320209346061121826060286942256218101723710162148703317085733155132922851692409681918216183253488735040627247913420890714357806983967307078114036681336957431512282918070226846527562513654003367256154508223492092311447316082087694250170480358176474906934780705765289596313087073889196807135689062831136718407147795191012417691114545711957672037422757593464345032894846627855508372548046934188309363642764476434333707881006518318108784280849585879990803052556360074945463732214603878027048594881966403161749546106508184346222717886040105918664586634061042042752363603450318327157369985494073185730374929024183825753991873635747269589397742192619804554305074160223119600309358411488726273924260157997772712753335990830702039082089454733413548426584655794511409744954376784185033545737931003235889294668108487150317217720187512878280654743598747885409583059927493450609468281602850847276499872536477581928473573938258630716893922793520681666019460008615272369580578806143017029296871956538899495893812761739059033113031057430640758193606542777661666895628905011727413578194796356431039256498982535616788005263558236978259331213442244926881200600190124620464094997126223905534116510884914381749056110564039087868444037853965554089814502432253298679844786984479048171977662694140193733340495478078054179787571382655749516640886820201852299125755781150191722866598075361940486790828746865168280103553212414903844122004786612703180267533222098466587760121418430141049704919536814088057283064081624730544828576509240050215462348278845150116673463904328308291631563732532098886531865063933212599450358746467964263793409977577474614089264578361893073433767511892332619055034452828943084856483971803026013250035001586591646779496365124418173715586974879000218493455604641171039429514251741976023393237304600776206326002807126140792738583429772795893115539100257790942565939559368030380170285188216675030550529769209104157212532959649726273179997644012053580611898330927591388464899100355939005086872152925888734553851458550285414209833299108158639912974166745481722253272277487644103295483461835066836984143171244980742790813272477243216194055200033762752019095445205418755077498223382626673715481217850934364924308461311436060820912262840250208655215228173801261951463547036817047166413061876217253218370665078188041464481052914780897481062252005804694776124281200370055105365597716542837573702729351509246371203876682768318063170500102456643951684955746628971940129622721490635065116032336806264500461780636434889914267349308480861653926988750109400585678301561713125875395203965708591647837474001498408370173879656201043173395906129848794004044262980633470294154543586795895613802679747826852563043460348811497771281075053618473701237961094613320069139441395171369376102613720237225335925286919282339413222282604005551426106624355847957467205546618218559063138337633849487888810864001691889925547742569777399415832436481320454582439058695574878120913084197184944638620980011591302228249759339222135447797185715335477935742451206598160403084732987384218082641581817071707007141572334457644844051121178114229650397551443192278262471825347276821073480432440842323005162343030012649234630101297914770567499084797683762273197729447324674354668074380874299982530479868259393112214355338732333277851674263824732780646310998005069352639843450659308203517494835769852494252501172163391022957458562661851531088491203153156256822415481175451632324783860770559638897519531653354592713109101815731771697950502269292910889159286005292941843496790850444704694848008664080754520910742459416834896720206251661853654333326054420482785715117163793558341174702292943711240718760006293072901757480874167659928601101131603958479743566270721077595344360357890265486784907321622764648175234273410023705343807688568018114010642894010884522393421903333737243659229797007251199952359100291471831090392790262808031282209466510059275552481471165435871774618375588409453555840640525602851342935194253520083512514251541186124158227735567335293436767634393495061888112605208585052492243495198046277763341736226298220277732368708055169039182353807462934149380877886300750515375199165327630657935069634194630634361449959589895818829442660445845493240240101034465971458892406304080639552346216241898548188290626362140635741437173483117078120415630131820733050915434671334633952889777626406673076390739706275610180628615133295649829241712856053599641387898591047531723988007253575832958889718304898012124658386138930127304363637282116301308372090102689796243112201322950802242387270013410965224419580015693414226244374205159003893169260926575576400852555248221743700914060038278748173420827572516453624151829742167615710509194695955090804355034869714393382509943119127158624414258841447003867640383011376125917454606615155085763440651989590154144964914010490492301244659163312661028236921252179753055086722952734876725723989070084062720628508782924247721612049233123567052780442461053192538532654118160888770523206634501601561808035880219917638795931939025947883162248086438112866624108632865459898055132916461212160234417186925841890374660348333241746744156621900585356217706455233392412186082092016102553355476205234634512200878438310460175995804390406009086363058209708228683904496947325468458998667717675419867918481136081833336392169204512701987098559540754687679010612317794657059704145035102934176781271553747685047042962563142786846540775959581374522033499199846945180250405408878055880350263157225609022785183628071910188921007567121113531733589268841486624337060164451850640801263156182821800170081386542142585986893932066325217056727214402700813817378882466655121156822611565172175075789761894706094228101809666451107008741921759138589402149592596574353087427407170727987787742065005209117819682236041567876639429949246655531316741535354645892819515078468232444602886881831971654525205954117947606289517513983635439207158936673988145073812178926439547098440650565803190516062483016572841704489038676596785501082018452458044287600073618490490694174912373179392886014532257750843760086071036090446089058130440665773211504547691205604202137359609431395443427407467466079764132265315888806764956401770801902112691030627500626538042598614018780541845448630096296604064892837921472041472439403993163985607830468165126704078186583869454930645498811552556026259380776705607780035716522604028137936078072454055349195977977145239763146166595930006075913292860858793971407395863848242883426736396477535275333550403640139586832449732867636061537100557909602465251962294313934267263758520472630032390941204832414665697751933538371045210516936188000342985684739820206853069261530065184384861143743695305134501587556334707274451878568080478829540099311634530413061897289464309931925124215556513552517214549077526891813005609471599185993715512351338298618619888067398783830739562907182157179165646569160991597785437455924020679485466088191151649922999237998217959218596648308216389521484417460416369335570632138165814364108847625782394058844047117442268201975266437109446711651622920537202212385704296423285189535329073301377970188070542243843715660952622527664866880938415256241686829988188311775459494060372484237068487417719651522933826482532979714173205767715936064937148555662674873149702208889488154547574259060868808024125975258037385762779698534903434450505477266004036055864875176753083888159928656573711591475559056155082741610268137211612020974000075087025414121921717443755191835770827096783101314137286730253861265979357728566913974879117513175998865295302069991584556771765948893907064798796613023201881339335120789169502469633884977000810952841947288160694126562596279242754142766151093063951742181748800750138627340238919674633143560640864548606222016563122999961876855685841177634742978662611322768753974949165982545360166100756847874445621760909207162890584987304700420832137587943648230505757256817430718044380440820061594004308733145433518502469174013516808519236577661340360530427117923015828090496211446503461448772447338459050345726954623428717554892027296413821976400427519787344296787699503852323160200545085773615911865566172447237790251662354800290831468724375012244825126698686775167029068662686295489641213427650954991590673528596268435462573379802623959713703395448990151339662886625189279316860543738345960723031725924160237916556747138322965022652851014469722188118149387078464179254038741745393808789250762976975224462681092229040919757550759725592822817060765065771848467627937880268065407697930594917840063708317241713103506703772671075521828740823664493343422452437935187268149906165136912091203138933789005686792006757738802449818569012058569796637958301397996981715300974203557799135449225174894377252033298974639510293127590072820839312053813751278538311870945388549922094099188431736598141112291609572184986579648095454596146803994798943194505246099998515003353358801241110761742596372488799878824769886811328470545294230461390840517338636492454994879536642833880028759101477816415951493822941114924400856206044631992350272658399431036859742321534715049511438445844660531294427840884558613507067945991237404875373341898966136663985280542845286140579908674416923393776702331125919289459879650654829531546315355543228434860550814410232296391636302048360231557797647945454923693542331823826272470157015400823518007335112785672063721493935619718199456869531133914891303810767076634503558467901557604306811745209403069608015217651546619069070846085369043980632541484381968841137948869460525811625026901171760402076342371317216097802236240760700595270256177478970731623334308937816581537831522987681842064808629929479210641026072717583429407846264879437786163204315526980140922225342108067177993429136156383593775400416973003352582225366187559055140056859204034620156037554507428271913857633596069531449460727688043588019728418858138268018042017246931967661774758043272096161169127974462765763025199757816215122601211053413943235296721418674808171635501155961335848307691628442338911204479230057236848163140222135378166249560457516213900543929657212135387731772742873823222952854639872838246602859111558363104987054121156073555359175923089913522867712402887374062385960308496762310779627862132157635831310364197623553980178570425621037968583314262141740558849264797223289840615262420983430299655344611578008971506443565132439680801031761673287528493529451405683246243490688638348085444766420082454870142472413496984194733727226622849473805940459576621933796359902926102600599077366525981180801711667760914316058433960191755949880633940493512695245421270233525798537566540866291394013294962423716621332646612861161443776641083246319534270157759165706450833216669300044110006389830125020566572118753314864571821282975662951993845945750166922858858660915942056303740390559464201865697384060129827412343157001314399964533367825761102505853117794962862592143658871187503378647307282156308287944024139014693757435251104804929201855002992479906731154245370398815672923788098482147976574996972303115782450963791985477293569019214729080202975999417926702463286149015149962968013967398292087950222977773012828661138007204731340197953310333752018231646402720444816704929972284596133357517583878532166772925831727416480654899577539129721331607115404161551803848194626280232632428151666713741102728795073808971788470344449231130467679064886395000876879370372924270458916516892970429661189190743184077287647097592655755750669188990054084796039205357740031135952672434230602467582594394531876330857660199944740593034987978342512163540343023850571533561612300201971909095079488874368809352081598670162050241094664860724852170784915148688616273478379795507843417249936241899974266704526191556661124692018416973566013467100365862266224719742778817761413393322635205489312818275461423018537898462534465831047563459222007414309289365314204404905780444563681152275167482074623829295409762004669363610128551193479626485251219445512722676757462952955078195719526755799507785733830407478054193177149557356299041412588633514189765308500274186844751142711853956760089648045694604580884708253795522201825632848571681898359966866867263738779411158984580434597274673406648991770828978701101379295434053801167541445767362116376528969107831922314420815429193126624085086157548856505700850444056512101014512347115159798682946643764011803931225260564501568570889609792330106374681651032135563261917816831407760596916413480564641881443079439214481988784940501794468077364858561650535574638439461253675539785903739795366404542359093083382828061481582552989275802955055975510999810694358711117998582887569750275882238880096185793398895167353005570374757327070847125454630575558485662870438860216754357918514544294609460292572095994827796906789590986463786132818602526776808698928528508123616970385198921816459995236293983881060002469006237573285802611092647164043792621997078606264812478061881079918776160900728619255422608200420133360838045472754435634416941797566544852909662075432924988637301928734674447424572432295359747853943492158191284977781261519049768926403334504951362373007874780495105984538330852741067837755240408390375444180456718363269593063516752294359033723070423475329247296846253274721196383163962965789745258462421760536928136280008495804182767321574881138794036392034138348516475441198208064863797744080692081366036882541310452888781890514738649623646223550281211443614861530690116502612968074344216730487702907631824648690320350356838660447565503568332766686760553908555674375603196995093484903519365831169282312800961997299755607540271724468721504350456000814453830708307608895045973824153827868672188356236533212231325955453889985835078818293525966981603027238388161514932060058261760024689978080882049593282353974736973001286358897825703280190481056436331733313248351059596961193034718604139899293573810047705516742841131177160156720323079097848787827855307934314825135872028183433833958114271495274813429656893903887359519369163724760742327975211805517332305815845157145651739414693574335296230825861004918796199973610023117105140604822353748061061652337019792384888085550867960242066769962457673255398234342053897039350952710635118568540053749090801133947065079263085849770280676225109048753934868653877311590085462505372297487173128348097209402923306776344279528948504305738454634433878958200965447092215940198534321751214999569935974149937182550708035794224685465420789450043671740122289335806207328849079111993755647697501821549187223714558667852224227800022665620641967425932373666472871030646638381022285358384487854602839659599406740014591390524905609964499529832433327539169118595500587593067835070021934524190295383436747911935586217704284987771284568930694046180789613083619683987364378771802895103192031060347751470641999249351883960470847826183271413898659929700419975175887861503484287537935956414173863264162770181775945808430547193689387932348670443958257918122854048705776310037657706180456122837796247272351230397561497226708252364423656452691391700924288935662056424631038480171146426565428539520356856055070452383756195555314383410098041245425602951345471044214245550284668082791098966444438567821023209141859828824866685226592481133432616478106569918845978890436197475803624905122949202916091300441731127318203915916714423962989472516273698641914009279003381268722151494661164720440387916522272615698754317500458957196136222061983658975663938848967406301082443406616722787985237121883879421839494062834790349836759619922332515929547419089623723604166414763776129483348183898699335264555833050905084888310522725236576422563490198447170231140528914565290366212697118053043409916441970374163322472630256549993341252475487982177261838792929495969751978228815567606376081306824604483615919708077972169440223886217555709517379130685996828517221349579279795293167007878615004096105590633952726763777945250253918060613479135816043618878057559666080945540994049605750094334057352623367664133925441416511632445352323270394969313663576096915355236300166936513008446614213362283503627718801305034544653933327729525418119410631985781188568968014983973606866398590941192117651208943698425489803148056963414462422092445348956131211698043079169936448620681843377497833649082684834985235971054761306995106020928774846140823445035437413272409132902688775140051520683149573486791872252193016532746102996205227353558756882479300426801150519736116378772783203776439459067066509502119697319366938817933621415236463478744768606065381891550403405035709799100057001435213278463848358701455270014119335926357225147951408234313056249226594357250609456465537495614603561540410516980216549010861857859414998842631579339445707876394169346447376096648741254749792435304347323936866299863553603072243362530817480439664519370913033310399207890110232454691971650025562691246910717550662691687219768644744783785105396660393091979161357626541526092581411917327773765481151618207149970519323777672311138066146157118180695858202648938255677381800823421974747547653738013316522725617912615765852483094228988980515885014527355832560898659761834913096409353712391514663942687187376701012317634991007768494267121148898391858547814959332849812123751143599532936200622811743690218031226635946786899053708489429289976162127903497907397528232388926297928386119107409421175436759508103608166055954675062961191412387585732962380102503696223162874508679465685418891114053994477681000365172951550143775284843940423755097292547685451823411622593041528553534658158728068500724793438859601815424566304626049695815042240605797724045839949629443954510011946118466178613406591483089945914537876010660656426121936628521174598773624792644434812283998113785056509299430870486741385817464565573246960947810202560087729965859013419381777620117086040556492110253253125314604197148602483842325011041423741490129284813972609851908254484990580060953969571935345979568538314204859957200258288079894701946181847482381417060443667558081505669819373434790694560970852891924408481576153894325141417638294287986905967413302818646141473670129580342331197984068183021194415976395455043714646428125986751832299307420809328624324065522564298346296622962295670437478102487939751467974571986472405748449222998468844394947707060429712761828440798969044541085962096679543783244946924216024774012198700012762862820906564255216095033283152006154860089118515395204374907509992821233121953376990934415525100912843696304674717244990879640071369156465104618141474872973466674614789207842473861123945543284506971982826502767124331078182295693043791519203559595040668552540178273673510090341818166451840683315499304819011084846594647625616647689979500664163183611764547709307261728730533887618459858913325397946803205071198112110633533492693864575248087594877605317588897182885548878360799374885769582868603601147231711158557042820117986186355186810924837291504737694816699393636559810384346429868894047092814063821517311958667888081938553818309762940370143888227445320337866418611734567379480390850929959262109548621036004782234374684812030606611653215299134997281875933906267974966927155695701492688406953757063858623450933023543837749821512040111079448758998275628493110930779097379491061598860116891247013296925242425852126633446258296587100813527447129069439756497167147149451343721818564298595797927754180241809254564044263747025283555505563951570367224084770525453612018754572844426284907140464822614780367785564417638120323420643252791255104824965500819630894808589878169877648082999811592339601426039009638437114113990783248101943619962199297250702450207445423263237731518913928172783609552105356545800298838398027809782045359296297487572841367678983679887916630713105604229255634463512261475551952939641056712411905926896375866076417432155266551662391689398663148390188319628537468480178283742939828331072724916368058627639447133503506898037332916687715522752251147577541229638498218601406021074560195595327842705845157421177977786152211119632284686878968997667506816120888705602975533067854972755516326935007468220997989132264505334353889848481345478284712553321419026933321271070911401587486841540021784659030327902953482668135467392741291839601443921607865581287432370642323580479438329933817246918982967821569185111890547296060606895519531434598455006219314909273697033592206814613994389513745627832583800045800828166591132507213658464387306289101152063161958877082513294287676017254557887034829931111239505942759840873296252415372613401977929372747608385476567462179478504293285624642459148466718249616236463775686265228702370907029974538680681546552198913258611733971513507980442179484158054673922665409897684944768246481638235142531708019172092655643691315971834260856315725586373970801722323009710079213391547547283018808286996913073602232758346833949895040479494055857076694307746898178521046973470989490316594598669080374675813340358063605391538588321978379219987216916544466003939325786264102550542683865528299418124373367250828086072602627500670812597281776319402181046362487408494003900249529299426633372233340843454118545099053337985197861768517409301943693139279683015425752460423852109301899407043231760947324038445371285040153843140317817128614301344297513575475772392258028431152231339463533917774653745280012879253484127725455946274309978998049139678729178131583476917317369620058125044908757867405313888268699487615844816208659485527878631292825963387405428059460550804446080455636891333552086826404645701232133751263139619893664819813570868112921890899038369413282700253664592213729391171354385209379479753348696429823698287061156133222875796857129494299377719463094047468584755232356001221245600475865108478978551267680083899036336094061611898351547769545674414205250027743868161130247264113429722214248273513260619945176880146879425177941536407238124421437938353330580758223863442961415755810479717698302896388868699825053030771045581039087812798465161271862622049916614746995994099510878019172053464502132004438227731296481114285417873262841248992003612260600727911178310428550242613044128800415874357788925276019847700365582304980344561637125999095688799373325961838171986230029326889057188570581854489045728333355044469466888346513431935287276966194776222219358495643537040131910325107070797167956652502998475043830707081523709278975938026102241600434741432376818316770780106833267013704634642396689752991760716886621232184818095511561316647750022967139969548030735131920899236132112904131669251704288458077577528865976228591455935103600100722917211599370211575210505039087426503400469238738557170730131877032691327270654307671301538122901011935810115403761516310655389519573054516902165406066152295092415149448874215457239272487274909501885686271613048680228432624990371676801426167191677691265894356517283888198916177147420351090484401539873396356656496248077298520849807340441999973127031590568248510531454317195159439840222390050604856028479859481142020973955039078481451057444211997764625757048433683987374008362900291171799439710075617835009556033408204403249473455743460693760862314114973577614456832150403101327844574839250722218573210650493770373417484243513156865376260366262352718476587049465425960576978389966675254790117872340286430685249749401216276168116728558429675075148322830707070736715160835651071975340123473174278651648763823088300862992902537716358124458166254842032126711109060401829478817244274872439006913245534301052326534712053279771239496726124587581045335196665931610462104195400068638871247033451206744862899185673969824323147538855167045318001024291693182438178589117933751068847427318836560089457947575119837526112306473592663565017413535897023361023858364234702090537874388406237266145855567525363787237309058821165787354931191230435084964856283098890253662170102303252582560353978022661722947540937289614064733326146051006349731306820394765466232354839311423584796948291400669364650178687651348119443901831094210077221622399849551401105518858451430700997982700968046906695211668532280703293091375956852537256682347815715783693422448388423659595000756355247746579104341828116514364956801819813115959748871208215165403526984844738954234228132453588452870444787879439474268455850650063435649280661551617998611261191172976732923718791636879654419356197202584624000960870865712462739163802038080075889194186433571616346666688057999031972631262636331393900997879776535800157811678236282868844482323285348695948295074219188491528097351774889703636001481122759125139912864673991125316965152727518657947724363611583751318825394536379263740938791114809845972757240629915540936742591030696329197165416838260920168284710644653413530657057906697116698197031222976133649124318911563319970835308186037638497912209033358145240151994852013224859607440080441119847532276369710793809388162348183187432989684010293529970029351961541542394633438800449964493636531312504234657054489260751523446543647079558487293052514783264963539132048045254892546610926811132878819491573530393124661479446022630663471338176238311354447367532932380095972615972412060609608594988675221619278646234619207724312900429935002046471838164961952303096535798657045379925663365087830175787523340842939863428066864274111440981191650062385074871551294984015771981259550930076266339086832774319374250003155036287367974582484620256681568628826384111681446907291637515512771300795632621504659866381464139717006514882131668215148889442960983787199099591836911703476393047720216571815342839675712498472491934983222754150709605733240534925676946193554110718179012785729700016117879587070645010262357139932033006821022806563254392769847409292962005173413318039448293268110530240591380039909467320400574221787758427674489619911074922822333094774597224772453582387533831107117376517666360638232530001545433765655278688834679514887821249700897805123096041054030268834269499106509604784961779881626373873468386626087552367611685249805986698737768245193896098266043881408320412878573744215695658746600144384411227276620921681374537139298581553119123656732961623945149967766517410059640198073556839295098502219819726071743424516669514512819924297264876346980209100092960167684007720693759686879120347313650438362288576695810563984272104849816329381683167565656458568297094339454688384059874699555678213351213112751197579434400629483666622980132686541006975132749897488375250109528654731063926183066249069705406593742592333826634286495697292367877605917537362176085252422818619290770442756617353669146401748658608546305232966001041808658831693517224952099278745838707513466552029911710613456833579679088180512061480210846310187800133895008364260756525410906267784006492048696304300699396283921818508008844422389187715763596870369199008322295216396019171016623982638935109907199538221728884328020754693464258815956869800048989330844940612207343860688899305038664972926057107382503527753886037406725535641846209741045127986371375321002587854241100402200695797865603878497205450310368465710472618972605463030209990069808294780349927867434284515103792720502734028236977248490016740221882865828860374930471062881176330780664090145034723090404849357313679316513017669927661467919942874976152093214448730265924643178161025544241987566753276813262330063545411118045071876925864785095050843326218994681288140606128869420835152915334004249101407335534551892730548268428569615108306113811739485939990633498856410956297308953680705983198976589738401924825236881759243604579647548711405964695102420195555407980861365609797854311053306912468883592236860315822317215807543638479317942378740920088163003055621949268973102107320261561846943802306126127344147370833860015402449292556511705159765255412336914354502521726374118923536729310863616812855265384286650565840604720094951855472565668742178140494565873009375607610467030527913213421063787964302196659244901776463806301918142782921834067019351894120261779746422363973389628503622075760912048893935897943410888368773161815860411173911494178378315470076280438769933749207144041532962095881604874367513051100271421916440197552542014058812970256316659539357794200904856367380880487263002737082807647478399869135063372236061685073378575076096674656768342112121729865520982082714233852959452163725737095286127578620027078482539296692118654512938014102191054670551502962206971011159868085772742411336360694687323975517461876908234860819884175659866680448227017291433291138022204544275431076157153901885059523578199609636997045318231012632120982539476772005136773157772128822909822947005801982910867856594979987159493465109454059583629375094376942876159411373818076901728447134306777074247489353313837364855556866196410867596665011905254279890231874649843530493636304966182395542096106719304180584121076685522690839668119516427581483899274797860440934572620830498561214796249253749672732631898247320206113021396969531399617200553113780979860002001090284738458682336502625603812470884045537602989393826447986360091789213362082785925836363014774378282786338815773932426506326182160908329567812831141387957478479082048422112544378599413817759584149784910135419963999823120433345725534700450455723506405805296096687947921612447876596673866629269870985816685244677118342838133479311247435914466486255438172537259825177858252047992453392075229239346605584546184805980383864850480247106221882729631889069296940029478204782976046898196100878997081346444781677737954389553903558934878246276158716611344269330104843793515204092112377614171116319937571694558210133214860710225602362276572700288308451686128130421707735054550855907204905077835366650771624712675245556016483475607461318693291852572931207132823742939796515509872949702270237889130578431009379778573632882243099139209954117810329998744805163507055229035841922920075152060149683519414620053246031118714516653909830813624258237932142422902624346773568950444844666324636458762272337856297063536396206616535058567070197387736825295197106355217671678958972345484901623014175054490388781855936686456201842455626163301824327146879462257090700010947688049294187549730218348842258108142593096942019267173774296107381198219594023187290789969315152799467185379392152448294167758650316971330869478679658018203960250015143029563987444649776081241421334443879330341826192844655769697741639437661663427369997232501216158214334619192435356053946745845581128533170166996978548418402018823957030259432715098903188130552207146899975231542841741861922124884485153927324661146462951382493123719604254745887743682953484668739174906776279098159685707199480930226147853469709861644335691833986295563874278820084504281813819013146432287757084015475010459639986118604891581409453552122033099834434717084267516605051721803868382602704864498312928633546268676776315493089689398787769704122889407063976096556031470341604762891163705655671708199073464318137188311144931096091827023346163183946549131769634689267356549066151635508186811123667253367053548324647636025497321911411830555268140416787909450450321904880969814941746544594508568491127485287772712235905302118937495781817174807878836838883418620597965009079610895459073208678927059253525215036308803370220199660658853901603620402753227296376650543963243898079059174519886051596163653117798306537643310892372429434106713900036121718073901487771327757597399800071811056490600457824598458063376232168956490047143936768412872671202230653847398386335959777102802628795224598409046617794967302446794189288420804129710953059300683668717243796179038790790671938702489612191961043920205898611877436900446455355915721697108808832699242598700412949985792251116889433134461765672508512937697024260229483852287507975380373339699480642535086519774212026503686797812734027908646297191100824235928997875815767922463578961956776905546672167889727649783419054876887079175732524225015993010071135158982947094823665395448827843878768800100930242593821703195689857825402434910466775681430248983943279131049919434317145690941641666452740957370595716705222661107132624058493408369271166888862290674597649233780827208282620294383338336141337006146569858946871570845861756018245037826285696737369111556685320929201847883012595463817132111144372465223806192345368432856696488858251858556604836292920443947790504522499000368080668760661149032413701891863775973602505179914561471236559602705411552140407374611149983428119059319181096101040240263025109146464305245080020152364583223601299102970036288476717768087335266316292731566225459420215971166037422161614237522318617317287592565747415083802206616685113471512924168991226532190577667845092025964867319693269991889380805382334587338799480354290513396459276357558151397675319453822872071727859752170439656959554941202257355102311309276692993089497929927174427641912027532840013776300191264362657522057304665719193975487013610826296448279015027897486961976088071646138569408593728331505116118800980132650757966171982167656601429228238666275432954702322600026294963162433165899098318542938872025177111257313206138649892978759455819581828051992797283770752781709465649387120612213879958105653772874469720680296876975667184496663552521973082831369556632035093385080527851046011359292619232248771850995641091150621842927653910283705117025768704703275213335346393920413410018506401646501644594376428299453508957095566423189154420483837508784989388503761887240593523518166466081640120052768301164671238796135406018016128021469680353384248263929169840592953586327215015325509250429951015645826193218790042926364236401965653896830808947928790529012517398206827865193666886195412722660466541650317263810790578599122672664232719005059252908239948947381519424114106964212866749881950960229594739093664790301598572205555424140828309175416024380209008647882557564057432933023500177282410648603519387682433259187301134601346901982976926984305930560749769116719728381911432429037568795146999598721355444470782725963513104897467472919700571406121673190892133017326729227328308754942619525529351886337905098029303979699556061072645982865480315684089822198497751973374225884521587753426131785845456636688547604203313518451823453270322436162151795941993055947586216600215120857157610086677773943357203824802787662877627965745519920123553322099520515003053654881102420664874649332233718799189143079020136183641477242012391295996178406392827207684761479096204832704277415770915053515689876854269831795640653937599241856880268699211710670555763201616510613888301807785661648795103003137669036685544464867922061381144685068890360861624521116674074203292034396277367086501420986420495495030505792034888194207432854499691963522173923366591671470162085735878092575552286653358509012309525087591636193567696548763887847268194328499362748271885521904332182945302693465097098091990534237671519774060469185899875629301494932882414912916085666725277578182366337398870359741703938875011617047173389667337202959995584761061913081618565043346111045455708755225249736606390740533383272498083853869002046150047723605355088346209478241282981921078177035045774673342805930487070710146208697181454050862350930222993321727617612231608252669771197230826780507981874132888940783388659943342390535026706900857369907380074162399782087346280985480050466865616403448234196831922557273788590318139802077645119963473178067155803534724482181392011160778786744213626111189135636907603686778998021193706112687140375375066164741275099543493201930147523612057932849871222313566416074957640745283655371128269027353630202786474974142251628894827726916337474276537392511059580415293788430789266422621909595378382521653261983525339373898036210676306155637455160111003686364932777670400387074203567206103272379574658915827917071820365845409927951521869948883392977288807083802522986511169411254305927198910213468828168452133504658517153335397290400049516250813558233318374148402810172833961505068532902622864751275165459535348119526599214906814578934941493691899010051132157888136941195085235882968759533085546188446338328676644085664768026707746322208553390173895811193079171160174604371921904263410502731029107439269101413375662087475447670787508543681535200063545448603636653050563355060168847347933872303778872181421111763587492454564468721796834169827103757788540405768084254936557340153654651030033800780089574185602574381608888728396926780508106593607980919163907496457204372948672878947412679339289157472500045230159638353862332123849087229575627289804840161396613738035337203650863989314308471165525228414869258170207465198349617371712190249757997148748174293440398984803795120311519055005705112915167924943989520510954200184569194172084624440502869762136943476641215169937229234473917986100309098267246304919292389656165474450244139028418317154968474807733911648498858852201686154074445076729131658792007569383695435652761694219311154638428987466728078392868616657000519734983809872531544861307574483607720128044633561028184066088411659855673420076060789284723118148957414199367319470442610291341803626771036273085901721878794050670846746683851830083642199066341754919549186990633221994123788307168024030776640296116052073253188251785396696614768837566156224232381713514878284558477867257238841511028241091814627459597649801974766756729911030279262675096308201818332510116036809956614915833229584897356674175036867320206782503758663717642137033505234647201937398554446537956793857234972075949088512955318936240225878564714578406640591755219120016862134161596018200487989332991687836817037313736608612246021380996904517346122041827308487835406463746290155908053947711333484876682098961376119741752234692433664714227049792965859931434089391529013214886373084108600795397167760240014127447174124487833305355823049051677598673857563431698976394715082630782877058092344933595999361699906329776676660320793294793849960068003063536893501672123470290790843016953623135951347685363845405998267488617975242274047485017479186753527232299282217624357407622109584098947675397599934607519407889338813502140347393499359366477776207747249595861564768058042339970482342456186795089026284705627022336125774660311858721051222728913243085013492214705128754917436253657575329390341600178496415164182927833642827031070979094649663930501115448320889266656782590155871359070227123122333178122186180443703977217223041490620203497436586455749032706473118776391881283394262240918788759584950314610593067561341811941875081564326002288150579274900761660289596069193638521986100137102226749230317167832961953987099912129934287162174309684504811833398570539496257438053082800457996591006167513889492846987195168010518653269875039993965637197988801896839415848007907253680455911621120994699879212012438078850695606847473139164999851808212764241435216072246623602610691142050925704551271250411754485425744503512322795498942599076728200816203409745131167316379011282422478664210768752495001863804195592889514315082471686385473513335631091255846857497638251113085200636917361193240408603280044171421478838920102347212944520714262448421832545986408808929545553116903825113052324176166609167112626046900135106775876045520562363882045794919814831634303547432443131049546982743060397852148404234903994741674748003374167551111076282341197163328734650547641268268807873858234627042018674229368994774621694070147396466227410174238631554006463021060175207081261128845039966465090136047885350441421491188090496346784230105285991827993068567654902264956117392606648687131394117003084773030540964704011309568980308548797975932508074038792654814405895443803572165905323491436220771871379543789456773175561172657568458602166485134497941977835422822639586328328036073432703226575314426353362627838269587489487806068832173039703996521919368035375645516312121779394302635068526091291831577471751698948089587852512688526692950362565947036215182891868796516011037404000335871203523762501553467338641514982862701191863205519106041837868657892940560053738324533942484126675470838061443928358056574211101365125261757859365367076726307884291175423514893585641150332914360447059335838036204826863875132650850311385077353657954754481003123125957963472588473688927779662424869020092011599922938216610097643813816404130322790048285711289948295769646108165780430832756116433481586010134102557856644971221872134557796590232473974751596912315766310092927794465868810052592067853910464614044383539152394275694445709460337783907671103033413366701271781644926295367656554715370711459724677169178365318125578871644271480271127751432796849346651580926386025694059177086764125553926851498861658298155218698656147805015853533057909354897412493700432461780646491109838981666895146189599458680900840116408523130581957348351405301588954549666493667756807565707074450178998287336055142766063459412617562915331263307002210300859214563277307463096320863934860140512147996019267024487863582590511126764137185777585038743714523011966361203481083973524512519549529624517964585734906414038406400671976737594927730286325146993692155866895803137351827391503676989474688444768595633590495932845413220747123762358742865291558287128903239041123102345805621628752266655943007437841807160513018950816272356461633011686174150689493581422168855147891185200703436577073833581403692083965088394154917443769605417467747566872726944306952651397534680517404095466951783663844933009544836267255086565822004799431239941307378964373007618438097347922327079353417450188757444369744443218607848483605876979821930301077802051204390736122271405080231005770975973371282696832339236336607176998983762391091079609263574122995538283346126301112501060353324965369027280506646834843968678349273034317317366309899282833158302935281012095397069710385451509970282648821472511678711137892403812511066185929395390404644182482219523615920610339440285629172924780846572568824636776282819906440423236373456297654786745813478980046282195325498803488528353619305751848415446042734191220270004628047923984737880634439596802134832213664801237237329853483488686657105212630176569318972998146005588890842945312680400858002333153898012240660901388471655323687567626858220984148637659889987715871295637535581440251692627526457120004871832665227519604862658258895525613867068187738696599409307624645333789648810243925002518346872999956902581837542556961712439774671400850719878758734468799279420176625283285670959369499684606145132208738502385540610976606540673379190814041704432179865705236273380814526786013383189692714812340597221642515602668184594160804785446468090028424514830419004830902290346763567840853715910356484465490423999930127769989286284079146353935121837893938361307946711008411892559409114266831941348645963941824343727595187717003820949769337697089156176596293445155039642630315674482290473099500384013489888975769561837520379369808735039439195936118554918817220858873072414303413625603820805454817774806299229861420790958230643668602425475077049612388473831672333780877304493051723865744575779483547608431326551031774485394902902495130212600432315380547373426557960234106839365689635358063668531419439581901945112665631498568044083191916393692037416341529849026529552371071771150484418024326196475746897147106675625526317933834097644343248115930172524155019423852306692396288595351386924071152816197287379636902718024162536343404358644970577926774235966057198573372600505601687511000739171678579553906031126798937383894000212601916754568474085426390291118341165543396584249934838730854535367246391243425761616874160727082699179662051746237842827465431824010917734660325476117903395859793245786853089421286266116903655156514326705914159854132025456835896153789434928572543809747488758316252712547440376785431472381674663653661558057119091953210613850475041142241878706074095509668977541582735244040830401365250984472725993107256339420770346189020265838816933667634316411619116736919759510153401572814942122201879185949448632745913300863584238179793984049412673681145423183923794618157068136953908353557286496256000237887825850729613891932283189362918306042486304657827141748482200225222326884415807202035151860213562209989549899176204377730741005857838932887288573026460536146560521110328823565843696472367681966867823055052702279473780031078102795554805203290812779157741082932699809917172292846934668498791253722606327050753125272196589528351210059671376659787368327951542250367308826610413805661396575796061796429392266440459702376856880750511849443807889917550275991769747958375759751905757245232533448411063404969189524553102132794995237092346389181195072305431318422191090021710154211476202141121661032262037601968347922274011942908039612446472005004433716025192944169042907365485704320417403328887759147764303356199027734511874329065025891524938045970764791384874027220048363206962528668215096562195019653896188430150644277442053388940886118295546475293666978856647011068991770964031093272516878767751529016458356730869382254513479706776310823153493397091679113735193259635910682266171897334345424524091956857198234976802131033731454307416496780945232746935227782268508730250676036730598144275876954874186415574873413558494471966405239475228434309611123398709523071839380049242500054202315682343514762831589742323268506153633054009448143844334606731074792458099572182839090071578194009635309336466740914902125154297359410666786013812735045124757794720846274271869610070417545155894434634593599794350681850099354118696764883786912971729707469606079790402335299832513938420256045062231304154974669990192328258958724315696217455421702359785412428824087860085145496971572250364525814367294072489572769586070692326000492009505019218804929079569031008664557629449190557193754865095892140207139537545126956300864983114954967468737070009416329690120269480550711325122459342166607602465028034849128775234950793317703199586404779764344939735559718540552831660445595046270113150452268997337983676262809367375213282784060234083958240463637388281749264945723095099682264795407383013789435149558385434928871210323898898929942757028948566142577614266772274570984677130991048452203561262597232517383603764696997680166537245263098561475535889998100662628970085931158562136156109626493294048641883794186934623048809091744952486217343440809186323127289815405087946223258835696119184712115737071595021041771026169220634070408911684291789090774508226653024409375567628413048658186506341504728151873505338768423681806644112936722056990150111581710545735844281015358881580439400132601469319367395931724700557410994977541079317910221075251058399533588454872952691478771723719229131057995879068758431455502752859729740697829373176015992820086950555028120731082741036198078616913905376698266746736665880307806497339015628152055627075581545844725344970600687941128515877218765477217171586218489269830620325313733402695463598363461569533748124392498679405275142551136513511454153814925822700736995706294149854167534066287652479970084849680936983664351232470296251049621343058737459476206489463788536710350445288111635992483802236671947680747959675539550599451540634815210150049350518282244482597728238037443479156865357786665348729925078031173502343529181090741690653374874948514396372866912866932672591812426722788376966802440950832998786329696942729073342892457833416112009732508868979905265668354939365522105534895011497746700061334299336674941310465578291612920532040027461780159269884905091882456744410937780002410378011273571753243919250158262329215992733931142412242405604529046896783622343710464786435054411670012531341567448995945134166198197915266726408268325431927999692211736981987503884078093119657029215343497929911287824953879057327685066039184555501528614050121568067510256513807943583960276936911728745465152903371881632790600054100128547156957905020230469122337577766832260762901996469514956440501168673522594600684204575533098603745459754207049648734773018784045854349272357423964906912032952754986391193537589315536246321881193247806204978237575529803523986179631504547384015070357821177982592592692742640327919761308580984330987600075073922436826667348173560969602010968663759896683093352758181850830812781605236487020513710775938778736049177382210683740461888332865532155217597049189611616022608108943227610085484306328865623427335945939836139888168022735420012961157001171701650742717017665832454539311082514828816116060751086548199194821325779852946372400313249366962356221592839276432785400494180237472650421097252514955187288272746097592377491758322122801164359072624861152593333974227083230460820606280432522858816780202657015679597368262819795541859964586089244791933046799409132176178295118212106592661328569748331985163824061984825031663548862939109025721650270530348766561879418992328737082174070195561733856398467904997389662251792360895224262647822266339477706237364552190090278384886815469809967354985923026332174684853456762397902645349810782278843619519986252168855636409110375934386553146994019238663512077143021188056278109544772121504427872882672243088173580910491396940447415938420434808653974335716440201846605409855642062399873692798891654097584500622710284219493931948904156090926369587941642372000824471949358651049762777792533989876208626143971574318171545236317238254174311606433187777452383913824517930641665726803860071600462819551784331867237706444591050707980457877492600009781147070640296502867635670487666272934965157248318905840173287038464514837473633576791582531367875182861245047973716295593970314557443054733158682045516129431095745132509771551310387727964282836407606932376863376151306519953696912920583652332755839204651570006984486985672560112214029666502168114705374918541061062178889402821425360673077580130053656020092986023504701581856457460629132280732035417181137068875014138619405014532780755326821464627124792033417189291127480696367543924717283587233260448204241032652737203699785831469810101161723940960221215394879796202958308943755813180011730381043821437699260911631970104595900864178846756141932686871015828692793618418726857790942426451204233256582386861982702940088806910638357594778232684719469643479492159271047363043205795802259708125602748004163243471096844821765140175994626314440896276964036207558623869601518443311998475833680629612665613289576619380673009475252926230524538047037028100300347975518894591058633630575192764344142822890041602049367882036573406725435042102517689848318613306860186941632083422297323803045730910251188359353742182239986036750207884415864371668916046821641863286904104108031511181306580772044598078099429672388320539540783239033958189163897295277032147957990418264216423685206289492572126387507680002091499721056351094497558675134129546105577837176907680307882780535650170929686750136077138401786715912149621443881726654578906101591316509454028829809890191922936701718924284521922955638190192908232337396904818558479711820002440760555923052221324995349885162368053192632661358038149769462100829313506491376450528875815106419119539210879932983358064221854085044750480836625615482117461148206667006865211904215806550720661307234122434944788456389275265202551721514491285720991079926092472341900048091433048766936272141232260809477250896359959525107820780852883057823021239431446488006464308859643008189375438014088302302910982933832317125758004024430430876212736773906893487708185877116888818857766290493426787996575326319922048631211011063685118418962270080070424341131440233146484765858785323786045551300804691798838606409289168181419547304875100811625175431390549088112191883986856858431817315649335712172544273827660033620883014360875341259678227782184896050566411557890949081744289721364972138659713927635597228822483757580374274609805989243563915514720211168998156479499989307561069982548334281101026294664336623465478756276774709260773177778556998988021310699413134342241060736479323763879319961433701801347683663584828080739818545740938420675638151205811741791964545481402226995684588035758806154685225904702410771964607714253710756103295989852066672891591233486561132547500993798761178665090867660546433565961751443446704793385866079018701717791281982878152360571457674950215451365689962828812444720066946923044817786081897091778277953131734520121332929878571154994385516591635229027967506508357934132499334457877170207101172661277054471850322369504324778643412956119831747867891398063547634979334155613028707828829811987580696979884900276745179649760297640747247537903613755600623381791372423277929694976875980888428069604187969228753722412466109844854298789165420322483387693531755505802218820147052780500558437714685786973531796557703958242397361120559837315214941717851465915445030008307578704106909273271230401985338704082515698381043820954775898262989925425724313044619843251892741101123173990977548405347190898271380309462293145046453152306223376360639224116290414201631142940333152925407468091321498067133972090642180474337132159676941421133533048593979568730264359070333794294788544954557114230997750848776093981963694243482027558914018866053769878356101246663853421192238902077623135709917560374571577284125618442235876353782797849259897802535524648780735282215088173102905875579115819801050303094156596758822412061333694087146357473640938637459099985623455008958507283167476007042658555454132317938769473166421485571109939112351029930559284191561742439552412481820548672379610433566204617265444025978099136793835585783006228428700917449582442334252454050343823851865523650647745903046390007847738092527762582862710143317314583877600488168859681828724727926541879674851365884347247465489701892645794717569181698460382340010045700597414436218818199853652602440261220242979887532278752372317897713498378961073232943417671153430073574633434078699621265517007108663086002862029355280206044322742727639498376420329626468914710237228331258065038162644117815474140008739945530055526647420892624446769048677560322306533864012852259106548480422076221587077077338935280842231131835393506585231498254281231732131942205261835565806145627079047925888871681863602100450886427551574232034579881525245000462176723323992970859283462620945415113351736649296550423987705309977098507622127027721652618464715843021136703194589097889578268592056241656192911531023695141703613854484247248576297198988144036114811971577955678018577219274751692683711667084971547701902812435936926429163907174174369784965964006553715911019323269003223738381888304101379183870679353003050848903702599014011834640619127961395066494954280471980266872589318132575621655390403791216101764248745595033803774756710809092373436151626399005167067717321904328880732428647135917719689502942296336723240916440515503057329852831112538186673331505950798383546614510835098573300114360865092570155794196302502828754431559428077327334886299981024167996409167188755570464891221131067288842701641244306358331471280653928875560873039950634915845179973726975388153341718164761438849109253365460970367255018027014934081343666503083911103075268650052921092840321377440272266419750948152242535168271420404251098148271566145823427642411798968235122887933429639714103958255364914963479987325398381640988904332120276582046790493132281546087632511089059119221329999392342530417032383879571128827270490640991801601318148442521648718139302787499227299647239625267965866016325319077028250529498101442304660148281873088416925753506654419044897554828044666229945807193879561220543131370708120770581337136664255904582639817318321033788176388019671310132376344925403984299189517985241129577964404029408967546427791080141956541861484895330553639315158937844614174643034720331331639163820486679225820885041121220956577063983823010644834275773974782919237149411654079043781787304349192416472470382232238808059676583404758704750706375355584725182876584538476739396623702410181264950326457480524717219140692332595408528865148363503670058260704960823868938298387126551478117815883271819499506828633022107581213311879385511640612265195050590515936355671546514379591921839762300572582116879181203754121687367660302504464226112298439330702223057254596613632761369747997570808024864156715723789550845296949319813795075653593429042006603983054206751720569483369347030160327322679211826349801682494216325028520712849644129349771026118177880097924090834250337952170421721053570526824930896830847860951776143888944849185199561652443751173460321739194357705148320743320926974000276569331308569000517709149021554406082898510031387238797315781616709631291456951685924671509640564281690479238019958050776410200143708388461875121853059731687928695810938986962054545239892065660446147759109311175052685753513655670660704826537898146214799147613493886310309573473405872644784744639146464091660451944933915131648603186079318194595666963177574017397463291364120790543149686359603349001649288713795332202451460831654179433839212721774881283477991630192988922164167960368910876339372910794498101196379793186879859213484107463180284658752380489940905799851851303213178214799737031908740728139540488844845390816507816674926282665670245655597759895592991904561593148370844868587850781758679599883281330037650746054416931180046239058111020069299282533834846126132646922119892366280172332872367502943667985100144252792572793296182379817101807392003193761742289923674719876132445482431812412425389512562070566162080943571459466791032951806838145284519242237512289168728271328443359970428662200813633145087867116664941456384762831074612818013242393493097799314978222205088056831381482139693182801252298953830192894777353767467889437723887191545648216295951008312549091458218362105385338545315517079715608048817152082201198216809622856108869680256528916874672020361605967393459994434393885294793735792022609325041982107767091533465932898724625133065071185476588918751180843260218667139041676311643431332221672315834502175885003039769836796558055404758522554511560818236508236222965025898291591045225336446268534431207950169961188906101322742995092197573653422703443433635945858353265274415718811721332825354548446653615266196736641474133770988551745718003561018541335293065527563811696078172397432100766819549504516304258213178823825433504762296593718390512176982931969143483493822032564541379283559859442806578286284888180408498654979587123697572980702609756927811100566053023179518536502463834895780662740058591103233515909651414711548921092953051375746110334266720436811138709796531988486063859468933222386380148932939676512008381597451414693664660176297338411053369727077336555287473063805651442740981665252549581269396139688677158576232837771324708160665377830870314752394618835220093543674818795829980344695426180859332848026771185061313158889409923710184050129038855074087833728456105164219710012438884553841027530667388184609970267880413654812502382644861468719137569980767266109461690041875635333836565793243910990335210670397625839101389427328499811951193211661058275638172860558830830866136733546064323525247666918900895847576014915337454312336997488537465783814429356033773048424478358696476521734446130143540072883652779155935888769237874847485194583409228189922629014650987608680397656544446055202675311634877233177804632716012313533832494203816108828028311337945012567555314870300428193838451031591484285570464914276516143350998982874478996838784875146271668353675089999902491392950394559996986939159849494359762153566204470622141265600001510925427357685842165423603980623735157606085105633513671673927767731419201901450052526645795726769812201327620386030184954038228208864939196260513768775566045412424515043863776929741597095898810424092995682615324613055315553653183476513609058284284915585517930479315874996710697629053924974495969189822964002641502306821546492233755151082755496379796808604653783330882701157730274404658236320856521857813191965314740627159758095588451543153218234854394510414899313805603575869988146618920820609808516060099815560758071562446744750487219177628327999883958328267766933822096304684610327320876840834796920174726815531566604079576012728980655598464559969445815024122322594026252322083030184274709806046570474219814578626879969369868832958210030151695053845926107995328280842648759481558853428958632081427778680508954605209423010445991170450499415558242663443708643247461547543713786989500222141610136658629176139133313113753753033882143435804241267831613194669826932538095579762091349040563187391332745524077858334309692661127105705687969939489766761737277434960970412989609967989832020816698008936641651014089231169823365612562628699292382892501591283956230501089953465095012073016203490977136386230485785848337585953254126828425671738584291971023794540669549155053040933043342393504115462812272742538558371072303726987937814356418096561976936124637752193806287076897612851505182931466383298285328573985251224226570240470416299645782439851660568475572805396631436222208907490795927736328306152314583455688460999981493155268659136913913677838482836875185246337098841336887663180099225213569419000189846497245122790451252482811459616735238438413422752683331253870566077844813138627694850855354626775023857895577385446560548973605828345599190523616670140584677802451445724410425034515120903295996586123392603254606883060036990703503296935218738998130972213623330060712525253524953376013240340508944729989922213789565263080450324634216502896015353009020415375558768467692591340785199181799197964285691917499223219868957769758210323244845442364727975775737278932429154930488098420897433414231088285677288494280591307755431491037783336944009642760080258317527944619273525069361869849826448521304317944360839240430118304466380942278560538498744553656024150059084831788064835670032472644309545439294204591128098250561708402134995653370473130498394156739905127940337745943959997820534752010305659750462977565261188951989878169656816897004781621656596083580502870795572403741606109479526537620658410964037798570563230106325089601258005610327799059307104608762125415044307216621318938503569575107625019836645885837059193685241559760653163409442859421836308498168135232059342785261072889869550509699286551424448598422205527388622277659188023232958645207950862178397446010275047671136612787764989929640693321756586445746502839045809322771393559473519151273276541647649407976937677219252789830242442792076527657055001842901792300217188439063701992891793437039317101238859369229651775776964661199642948622382816310580941534287435754289118793990161088926769371697511747104960980195841567722108080995971667336529105750653369000233237755769717623110572103416883922245797163393585386249404405892967761220294952370325506329257808932435572085750223460256555199389124864601972827565446162091969948645913130140389082992810590245097318111473303945198802143062007083273764737661640889349401051178738154564595472117809251931355916546551232399684433484406311125581836236546067440359153697460316625915718288207969251464319422513401515059737601968364109653427141095170088472159814809780054863906499592884825407611397334531328137780021928245067604965677113224121505068625086722402527997933708034563251122823463428320356392533826502449233681386437521418916039329101681137949044554358207281347468445723910801101269048600429095802746758113351366730957505919128425587092664373384158429302755051674742590944010200181530270850096437021905381887587622835698398929861098856180992568282058138160683283232925393625283303519296157197518389387988274002160579717594778737668163762119256313949894989471431939379767747873952144997318814872747519812777912675883897574354912711030777174596306768892153053312779440133132586760975386334107051561473436857683390066622353620072390122146540361277921003843917439256697035444628903708195684939494449129093069348532668744626384454689892771615912097911813187020686292047140574968372492067111348857186541555304710678740157203325098625654694453149953423181851639071721244810945158437825316691595049597309963282196575905838075837995406488724989788666204577741775713800160323211019242213393624726500533443552535976623381904785651056002259266893179191928141375406579738486466021198873294193774018296475341901734383533830112326417333333490434700519782524454383894239998955339542201783978368706647131405918776568848253047409463542037741562552859105231009449455570645358847012571140614449144365179124143983681040235040786422855137758840973608639758776436376916413026612052530570133817890642231808274681181067465404793610716966598827103454884342920363497573382814897143318885802681661369499157135119437214343214218086808908150967381404062480391310595784986017770719732393510210703619503008262650098751320528793332997747023460232431187308997640307639111636050872826759940696402932659822675095622788164558199739630508772567606484981823239731380117082043542097008545049561573902561997632623507350972577888052055381056156507331765091760276568596553802049855342854934983272475267516548843155151580349305855866743355095867620376663499801160222933009166333804049326562082081673308453190228727523251836325103612804985874163606292482638992227513355060599107589741638156002748200235937232876430414727124084074204873703127478521056141854431532618517427109553090176864642110897603927300813580501904591358971566517223330611197437096557288892925448387543631515941646988284350465627946652899168852477132164246115673183331877080204255889123154485877388375988249188236937865480230593720370280699407884219062424376606491800882724894401219001607123469835155445076104170433014780050061817628243702209796856050966285384726707096767618001340284677921423315176419451861378915707385597244996185077271635125054494990236720361874872718408224698718882002820257348843595008438584283674098602509898740248272314460047543763561551514650736378132817435193520439819236314430625499406582586876311916722086757172195677095250234499403697394382350664675214459280917534530238471248571866381572298752584575011678884446988717690163137065326143418599916866363448331426709137920784605772704941953888556360282760660460140999284689465725928460983723611770139459002525249504858902764165063361436653347387491886460252598187958962430368059437941663791203951487503327373141943111944808945952319591866311337097011310886229105779436256205690513582392311927715545551613684386125309714588519639794871490380100422051158233270424290507522495520699623588608147722291935980831731226901244315088543343785558739477167391663190119632051644326727986713005631433915269619942697427730364611916029447961151996119115744132132625786809274515869985151515795493129394244942631255393366820178826444545680664316917801195329762287647225318334632140746792115422514011028762008717912029431400725926083623133519736574145894556212459767261636138742253224487698688571675731794016512296371626398661767310808583062570911774431273099109337014485931645430574314933674715108713563566545031973365762261144986730839232692481600655666343445664798103516580173430942024980460621939523049902129588983374537048532696820238950127272345020911340068956370441872443294185247219979661392367813995296029177284443564497129985965582072733439713992321660957297271232266677923606836972210018442854023346616537713150676049059359300458821087849826040036677369568571908673770843465721078706308992509608106842175728978788104899196249095090362749463433100196555551699677423759736693854957339542607142531435673500852188976926870791017166608215703543947403762771174280118915456323297552921635887878651150335720276856666206996390595526301260368887122107980924112494755618026721289102696683229899651200982566621943519876133319536755667116678185985671967076358677576486526018314358973004333072222264633426536601193698463938375098221406225671221687362289928591592884620777490352543106365334104224532683714868709480925757600300539254189783381481049233866645237607229247712499123565564937118647396806761394957702790587743812363717391366569318809668534325852041431347468212270472559698090902138135664117873181741275785021750576322850160857017143989080335072495766142277459427207064072988309231414576325696701215031305282365039482963344300803512889172298409428285547203906548706077332327862844147176193687715375955523377488873035438185934962587370084271950943070502998725955909795220267013462605947757981653318163351240043914504384118370358108073007069327218189787656560762078356822095015682913917245197996816654642557675005520980411349197682380922479442032847811722636989044436298495907877134394636741106856506670259931595435564468073619873488680268925660781332225666066935261498702650668886796961145570111364861823640901192495511655108010961726248234957485230620158015964186550331766057354332326097126814212943451508688710745478891212954106111920658227620585136762551332248228937898052629434156271668108929657624799811458406773139489469686511912951631734373420103495115774501040329181641990535724383399386556969512014861482689090372005916456701044186730803098979049216759708532444236872726496482259131143357606492815583440699780766427431410058958067096449866990210794542112166087647395039455021647836900853229632471023034766933726750783611207044062181458628404499168789107199153739338389424143163877887764397063517568782353874228940724130674404579688493214033707882762519206897148706080114547094203812490324947303642226259200366589361582013239204069997561714709663934700725321808624122568148977765116052218024957960521285995212817008625155518241899738611381161023118683869219313377279487905905507132259586071751843179937379812646834647691720684591825486660449971986896278596348711899741237969116876455155245071607821646578592618840582192175499618611741948591966260056380757422511393148445539180729392516117092922191803962829079886572779038872033188636379137232136470041038140542094238935705161109094073730178190846409424413941086815130260781546967298207068428148922096889756507208781630546249933166334275151051782094276532638986317132278648562651683889092532807107717555058599112657534633680786304103087893209767385331087295159859274860612556169616184455643942401966931829374991336573758321939927945055852981555637621172115872782612299701948834683384230521966973255812752848033786174572796750290718088884934127051036780037161205557406914093653550829269323501638882871611422281380719820378870727263719698254710999151474298146046524574368196020514119782654651512623289337216122352317292374066001565195618994093465004412470761008746558006344574600580263001157428861984555390314547908248653696760916512732333048302516351123833304772251627788590728925466468099110782026525787895426400557357056586870390429380772440949885930508644823178768776519101499510004187523090633426390331344084538548625276346128773991292166242883306956390423363454577551341712395946318110666258865029829231242039511757394750333939240361779771576287301747718051061139925174479447350639801805726127733220155497898446353883991366684887201585235686091693782790326013617409349177478207020131611686983441165593393458351183839264611740491897474263751858597485283860712540953436620125106695257229745929275054377248563839455504817221104619283793082419850062120397160883399386701165909236348707825979856385309857346883173868894144145838880251058843454707324108232548894811942371078870255731390523635847908952506167257691226956896490011058746200210623187864961711676062110630024433318473058664496176565587844961188366107369949337149162343435385008159950308796154327031057201395386955127653658940069819033248454301887491834207832407629634463071011970734781661728850011901590140551310147663373105078149246244309012048875759590190637035039703974164357790736244523280936999589076801215977839396110843852452057624647331510144699794450821853985957698754480139321350144986187980082352323548047724046153774004794228285210129655729909897260815424653538222471838479859075097774827536373461251209135587982201269861949946916629680718735156923386514478972543538742989038698638404990862059238687181002648735724310699921142278577808728870423595395520255723097760567341208599403532714031335827493150370067681749647010327074483725617964512788259523549245780338009392332580556709485798849688642354336259776821773846098989050803101980440040727577893905165925350995147114005794879666382399362702266217150939675447007889344128896984181223443878115582983114242514745554940252096370598247366015388617985716048638559800243658188221275491385726355027416168265785988588705478218983181945048092605344106633209836364729567711837646661107569477915241760574282594953723493079901687358850830921326096070236095663888058907883803927173811269928154870575800410533562651205649964921191245163749400122824388347740985932251245296521231372642244452360527078714799689643090437000975314929030191941100752778199239669283627889568149026050302707280689217918384040919398889202893321369283160128132515410810659905624277965342999722129127793674995839322502851568028283897600280466651704544677528682526277948210639491566430799786069237002960092229036331101474910018154943738731293861727479228138044507668072331677096035326190304847014962323931994693834787458986797573565352855882832755636999900053507704272640137803599478029190670121351233636113472094121321397851056797044474171132879075717080080515340362317049377702026187474181403561225325800159577744044593016078146182249115275646999799942487773561972195850665383289155881758445263431750509163943959662531366070936715864078704695132340229148487296148899718088479505071447998801049765092999966139597075305939428890126025951248005266373766055265194891265560150421443983448990605081042936121232493582898935350379529165860142517748927729259748156972233632807950439126005528912416853764649194674963506720801647991610936792946362621985802541075769473300880820306819249676220110236413595952352915944145316850156431968616368410640973291754013723449891517046622556759106317596083794191344323833767424221799699235472338356576067760159299609396354546038235433676851020703407394733130458686737440303350198215456900100599864125545879601578299862269065272975901746075092154246079004400290976189466974870992365643801697237248306374077241074271488810121082902099358891873497793534921324685975453652678908536240588892541229051047489343775574218435152366497860480504955966362237459431497897330134799343492862757787924583242321178018986266499395562193252692297340336547429199463656073194291413857777567593067692119583129825974307296478596526923840138320323577607562212613057127991887651416242051242067234089887380914513164798147707865512413718363739210567065115253879387096957468179940518724360430493289295038673262772271206596701213218815884682341492498700055740523410121868264390239177141198202557428400745692544049970495928493426660766716160713500296846862332434333046071671849727748921663590360888602691526135099336176899725559269227270190213502196866325018613158914581505060907834988617635042526484053719821313190475317125345414449391945944559505771577230366120150310717141224649201227744647159402915114127186815599152788760542390673871794620675732897012589955010554172284122883041860369831394633996442824035954117367076416891090525535405354145446380431839730844829825208461215774680696393464403949186531839192221718722585839299241073596906814220981480911615149017957282321832605099649693434542690164106015900317814424946557204394631183513951587912282183999801780597598174031992345419715115502824189056836663231906670963206599838283037481961401597180661107675787912005490138213932043870761015533111759365530651862220624198983377209031909129265163483453218719253745945652353531358187733848818943393103408017601173026748671353382102441485934458519514713856360643290009048227713075146130068164143692752538916617789187243321495812372142006414726695622573303273317797980264709316544851986194256362301135364660057142416554495050255985897622933148183011741242952262498074693711559650460828716572924002745349510043350030556881748190151838358467711655822239866058096297356324052245319653164060786451915423629587807877115810353623656583060355075859820043722186977774965760573477904969777649436420695747382720507272060872595848742004665096090224662302035607865483000511490120973781736868785702332078024040148505401484959999603601125599596393601991757630234300957091019439115250633850204899614858834807575777737233798615295873086820280384150844728478800715126316006336760867250516315740715231966459976587846352513512453825503290381053720742764450693018692668702270221498487631407262025760463685146904499284032649822487869163194866690893058662426072429781185919694950219572684070295757460386900276370399800536709855784215439868436459929203209682171888994441767747173424827985190114066867455899958778648804832472933344297091291191332723683547925617646672659935766816985468197447148419579735567655866134643629038163696582896698283066775908566323485544002763244194350478995631399827331270049919410471129609865506600740867723830929670319177389732022859558752923416952466406493915282755427515478089005586744811797879048084142104812450080837140394244240627830262546878822277599109768549344751421993074254605146846489710323014020701442169553070163610322896319210719865481557055276931819188962207453560641947140929655788447717855922630844726500140434488083340511892541700633486111472385925883343877560758962011306328124475337856097366914545781059972834758670090142804411282131737429435990992510921643664432801719508148421429050183650909522253287480907866805581126759086784744460374403467037462366579601985667458098814113776402241604613555564813265493233391151109918494475595925938389125003022578437267396104860711787258989522570396017877986478423586360466890329589258419494790797354426249865707539535142128832736253822773804850574191225333158588921816607265002330387058522015559168718605119828575075288191918364367070265592865374556733748287954859277574969528083719065148358755065119075192566383497057105430123641768980997433196146997262378892564557431468981925667665840760776968071831996801841388926885373404894208187182285657240698614883773367421421900724754647191845264276941364784346132406417268394268653848319142620436140082071397432150714856293278347345068214334571433756468451994927833671612708173153785715262168066896988920430920682248932422071026132058060636997460804123666713872103862026015252848937795454720388649276999051454673674074238142835087576494381041668378140639607599005365375587586001958219450457398822764973673676100068294487596089303241416207384820456046406324229973664510410889198359451193628036826891531853892898750951054143412080396508612648574737726192205533075301599996894703742214563481161986087569770854672109090431841546163080026655762210755475159742801400864459803934671820345924770029770828109401199360925599153488716645553465231239133887549819453753540467742356608475509166713743040599435904513313578517833469672638810890227509879342865777271100887558256001382726758603712058460091684755607317761904438891581582240065564898149780951756234077721499058682576028563749871381380034209860985503577789854187204891100155341053129478137015905766632527229077628108070627745890705856388068399782051946190429525087516764304058459949513614155606280467926457487857634718347093909230729163146742613171938174926622488570171649471799208948358305154257035619710000018983298161228487639482685317502231762961218562172065968570167880056214288659977717747057182119083733834195680850568888847533812682479882087617471685032717279093435931126252333110012724090361400387013399798049920385910136244997429871389432221966539007332694972565322111051837880915522402307658409985979858210642046845406028764260705982341587318583817226649222312262392001325669085280942137252619604018776878473317290901448398000102770644859026701254897218157760736595409091707502831508115908691844727911738042216356365868698878186192706503402983380197084076050106359574162143403067372766298220990783093921388404998634115381896149557947532858972988551955021121022017278498408890464555903477145310427905526948705072563018705038155982189163354549795771460959443711589909476584043743080921149528682704861348375986991049594287850156910688866574014797903593883242028229307990133969634533007485337005814221835521167782772950497504758932749312305529490656130221636139375911458433616620766491462032828621941026894826276493752877973096632122137895260347983735935824596208038406202260106668724442962017992063486000029304790562734663787143139964984459596212640964055103191171264483638106026026325077287800813406045336715947982702367346402428999999984142673447646394405393745709216670217782127791871484333148615880621062985454929597168553149549878217404160805696618868179314565614310596740586360579516829051183587251264347640420852837352047018846913735467770873052322832440570240091996347937744899590858421674607810910754528485696315400454212887211864418682989844998914142984500498873934062121787994675675843818400610940380820211953945745439996256029550105338225483068316250126062955189865169000459554952785750767587862917355282555990682707334007959773829139307763162467670255926425489939209280400324265167327355632765517601735123060527979713017074831013141103892358311402163987854447091705227720839467250497486978419276542329185870530546252927237154869028077348390287114264665474509702167667351791665700628855666281752180072247856712031300303002979890828357673432576983015331899805461366701585447362379163827537424462815786281924797294025618240374656261422952402303147760861896241465614420982227089659766985650406460854897504273383451136500067372621894648251488999309005644391006927508567859411551059194340632097724952612555120653921180406334473841091419336003287554461131647819962170268192289665202483372632525106713298134878325436814163347570528866674272167392139981027911384927033290553541915929786557387713198440157740590394452578794290306660474280635160600518286899541720664755591765003591956999265798553188071854712702550895136516464374162656118314149465092744084101645108923751939984438426232379613483603937203100583388876231844410337429618734756374387148222673353374435985862396669734593229238809106235233540916602425726404630628052534742959815901842684847971102136485147699382210507288665652414116426249177550980620296748003803324917825263614411831692279800898355027904163579505751192918060624228471050424014264945610768705152827527230839284132278274208466402411511021358208003597361994211321579430835234724600041514724531409169777523265278647657342413926594553666364253051954569605056339989656475280738994062238629012807415221207863807629648372885298875978481225947857877667723596947454754716082914339233186179740366045659821985216225337663534142603979705821828306753947542199679047367645953987897862350332276801156203597974824008098277110308167799082319871577506173686610599019628557587726204584341621371319562695871861280280560993695913268142756180656834466317791516608798494935915744209946864568718835824440011335153684507790684242920263535535396317401289584230734805378896745161166123365013100604968956651124097383572365117874724261048453023153257999071076498010200711470002289150825597629737985968009178570709441660391681971445548610055627748586083277187649351282719578357212676811463475799814949416461183563606601035660452196657762551153088803675353872724922206861506261653997094912107790481826540581298906499915600413580468339653169898217726829740371002972736691358782025082997617181451300761584158554395335021154101847384711270871161085577827099360906558932186821258879799981020680715780775410567976844618680417772153123198895608963893747510288647351667477581954326408014794491349778102048884061177414403403888020413923316703848049055424079583153308960956292986566885657161022310213073640635212564361344675622118235779836580060908449498430245414662267265943759009804604196321935320713801873635368806664664596646579775515128528575348673875488503129789429167538005005159934467468009698556112130374556231580152529824455564528444983694489524171355353440347030029960677379438575998650150802438820322822685817473969141873724950022801525945084211661040900648861907247510699496250917890536276807335256085391616586757184404963302873076825835372043625700927489379400474369974215542723519400167436781001611700492160443770052420819262382969038340596881812525894828247212188455988158566587701029495564659443761220921030444998664396213578153151068883535485797544398546375395296090372619831884647349389393978380225887115157866341238900143758677698844094950280674994619177955923346631656019584379484970626882618745534882939337771751228170591785979676820094937949009357304306343649978528237041880290147696052855780683649078603460492469797852635409739249186439230996518789420692013554460659982246582853261115842663823317702329540159110300703488924933447707834214310430360497704583843916186224883078470625749196358736092957573696200801810021331811162944927542711839867036842710924368160050856613990539684491829579460550066295196736563024365134364009262495647731824691099297855621998086948901823450081769231363930795884670574728726598183296430686805401420033690660812527863004500751321171840961354607120795960123836415537021688525808003622335094910618637637545586395903264518733117272943273707610127603333310345107972452276628975540787719301492999096599854271373540753715289546636512768358042160925911610174778542387707675453287211240076483926575048357017411474863629597068835328270813063752229777856771292330939080160686092142881576277744274046155953828707368038891289606952107045586135774396766078802603576007971326359166100633433622623716543373969358841067358904408400638672731815909149577828669045814906970938635495496299050317240955981585523645967513231798417752269034429841248957444205456337268503000617340017459419325120263991515059826144533469712616261908976893340552176555125917716793965956678710179841791351230734585106653127782559362626464448771405472022559848614518298239059557873896155888070018656830677388157194259509019912484940142739788001728366416166329159796808133881294609389689518492248305413547697601817900454814837013622518447213285470480151006074888319280228928652873658210324641265455668424724229067441289439138181410898160789893649347886788932869774364272651950867876554258366054675824424643702622200843457505916739207514691992516947287891762372076589498501616111737318709817120057136714473638535144602392143936572229198581346010131469174725192439934129732880616161399157935529302375697430978029683705348153405657416917972506530962279350554971666973350336720854042281406525681539438877412609222380434851122478352753306675103838355678138808497076171251366063753727483067041749620273432680517656831091654093636980204589382107583600559926362852481387984078794255993290425561158504943255279911494139804941856738756827833415852237758287922847301246537903645159851615743177011043078314137147548665734167699525962381362401422482901014430500440171021673002216171743125355580161604581267614620179257294133590201174108601803376255304122889603517198819302453770814836987680593982834996985369700849927757097408267136016848530842556330368790692784330474174241945289434921249435681710041570216849330670162185483694331085868991986362718649025348875386950751221474645347333931006645545922130134830640770449342586159346537326486326456859583292664523935659300354240706493464997099176151097062899425355984359818356959512370679366658683243505390749827103699657132408347127257034656469833430596290391802008540833741287576305914556215778290991792950683300856351343633662244543628920213152094758118247906792590008581976877189650869860852554107491610655428727700956107375534029988849608191061665197740424614766323748511847824910918869966717676579787123902474850871950307378426768258104431268862603278053833544839363890394243549584870321224361269866324813889512128025677052628484084905333035256874385584209228155017270171068049810830347818683070924349444920934278148164476832924346255527021033060443612633028864693980347317691730422158521102832148389031958522655088830972393521407745913921851667673769459981432492185705996193334226810111557386110534601724467562090684292571886910934412645949817532921894327105612021665442222332153283776245735130911499925946701149257797865463182804067593039269699784428811932288827604623033166803849112597063389420785456758752225181705959294168778393131983538290917500153042791910534241193453891369192563207665014829743486523603369986840265110715106253048954936329741861672574618350737087421099543629833761299497658436191682144334872771296806552554261958772254263106793144770641717971013104024981620979538496191185539637904894757553329341474336746878971419657463926214587028347185378795092326216814331640280240236699146666084477713982155347858392805922322071277818151171777475574959831257434174716525550322179576531557044916803852538057343670785560873926372629401553201404441963155338052020831033137708866022803241309782168370738080763609777474544212534011152056396157098121511448520527886086574628529481094140240515999424919462961933283639425138960713258077382974896276939228140848906810121668177541088950862844448882019742394230280188865716806236022002593534457783909526280970278293915926336233924060153324060497037230037522184468507196548640468157464126927649249715972099253391887211810316653988520887556712952106293193801653873774407273061001368509974634552081093697455676013861884188222342362240993604372765957779608415898553853907588431908619819619451956149764043685951291285990800956862177161869849384286938332527426007925892088033574481489924335265806608806035505957549303441509077828674162002859833207225288356696427613380625614644148175612198802256847896855291380294706956135139517701586630661280484973230514196073197139542408172193547952228900526902794817584378216220787646571816498515302905803550981366574946498964447473780529842244567513181112673575270160424833488634666254134431555831303167433728077241615185736386779075473515337453458366526662181967380779714951544133683462657598200376008277182377907606243726110738299600637925502010277796235021973814426385284991855161903019407391209786099020020764461648818918648989872632824248126686692424132972419685122577758182088223559703579385020535438659748591211929739280314837719136336712322258047676386435623927683102613456039138951260562076113234165501674652365731346761591635001068380804186756593676581738622386179838567005904982816444744217983934846732800692608478690395788061102417066731067106787489919311983716614637197310322507149421979758992312695864249945719098913902326728565612012235285761644369174403472748749389638765424365278850789303883725864058663352678357665652473248501263654703302971984488054765374366199688225168513604629064857059461021022496573917198050115512453244150876226959506274079950745965757276808218629986249674570409985125045396280702962941827445487958673318939162634264706615202394436170389700525197481129833870202279323586669256936888649058988327482122157689429885620988155697553438306703699962426153667325585602723285912718929839669513952471051667002413176262990403775511342124025597783127831348646305939113258183944715145125838827663755866912941799605175855444854153241382223655524095079784437932517748087715162859202988996787989441252551825752303392494842798315261266336760831747522940367163761487921076476775829465546597739709030508691179772163937217451205406075303388993825816793317965545267422030867722465640000455426276500856783557036282594694819084284183228658588082503043718409170865529306450965773173999349716791229844344685005569830021372062915155324070511728734449534510747225896079203083276835598318847943349942131680935954034590116237045850189529881460657265278272293288062875157463877903288117075051787161844480873429469500394615274001080719349242015883959275588794598024679020112677213590613687167219935994330552394637641961370794018822520553272504462703236651277039359787631095233264859070451048833866003386151868538315210723067404351970362319649569790029526294921596930917891720025754746048991949354267887426092968720318737764965154626035537748417473701888960064965107332451817132077980693692012591495211286028211916299126239686536092983823211996876362050989085460773262301863562999974831205029578860209229268831646913401490865668894037980855014200557904978645217362571969902102102498251556466807411483883333836093584062707926576234220474276969977837568230689363190348543450153913109191736182459788601058298003022093994574320206094103210708087107777118471632888550813719808042155096476498537531049840609916023733415677788477059099122066713175557744388858874692613707482510230808943165533829728875630762900730646762711554136287970654124292559793003002381796979520146180242222365802824704325965844209359800402386613927962150191958033251651665020107704063798602678197857048921172503054215721582927912754622077652409759967341243271477074566430055266795490321633248086200019644897072645591453798805682382651797636409274405073333639902414501500569757679746030832234647429122749150246621777039597813362002320574323714990790069274288446469051578746979071594860052400312575483707813337404350821887441788711016267280277070851887148721544082461336670088698426721712179107867430480874989102344052536153083208221224822645395074348441335209608517966735149721211106943165986135539144641050668050576808341960995980336065864345858784111974761909532593752066092978918853573580654526564065704066176486113246081560904090627063924656651480058455519985312643411840872246080900650485328083948082253029913794848542160512752729335324249548535100320590901649393215018657417157669126175568192484438644037767806562947473631631104393408320415044320014282402732761607251884537857649969533677927854410592626576172428095392688346669757715818081527721601011449177330685159787134238411623057201553477284531788451150721862454299092156199460877501193240433520384437829814449172708467034071348499085695436734053969752945103472257273533291783824683370460434555093809327117473437125976039881063639673054843726771242333855187621261235773053614324052784075813776013477224372367333208386130071975071621280114697412009687715411883826840043285386793872035888780484237232667822457715043004086693707319961264857682552797379720201912742103981297301170461357098084793514458064238013560763412389947921832762911764957257100727818955878753698023449672236253754347215327769274177449035746385656497261723437760477209183455722870588130005986703008378443619590428705488777460194192402084762403632353280047607291035540664564411726992514179532357350590799581794075055760746484603351516943611867503727218975023591287268106803486978450196174417595711999997741567019317271386986418125509496944319469248727249118356803389420992086138201645435611185383181435516579109105852381569913765037912612874018689835820134596011195712910704491597410605330945268697274466245118788615800806788078013464824015264175425621830114677019659695773636223258507169326879313901210722804436407432363483682760271144601775677252146349721963291939653147123326229666871687809990615074931454918585125266175170628753751206214941690685430751997677898543635189568229781024988344738844670422724250102082648350243865748656905830733250487423005244671445940090422171746913839717446128870406894980520774722918456864964962438820018709775785361462801297231171456740305864198888596298866051732693250860683568583641462080841053060518998777261962832828500908033176575596652025142346487710411339265804066819318585746757611483115767489927978181135996545390544051693912131266820643807034202071646540178845412515813887471008274429100632162503871567185193461032002658334716850149930034335836433304803597396402309056764029185537238843308606581283179798098283801858609308945320160112112884953531663077757249139524067248385008288270044652175384539038112797446842998487934754159443093660195797706655464647965840497524222975944925726267541315753848561576594312274673463430711472241854687617414486241921317608049632191274404070434533936646740384505635108344501251678783789983875431993929818316142146036924773575517350442306098374899483492963995238533077300656141586107452466773022996247600581680397909537510170434260694029363616402184959711610023725021403886547591515997556254372155438814495677381191575074527476238351824064966451143203505134682838539494877361681950639817047763777719013663276569163164104285606324270387155350134158838111666023211769421760778735819072229454019247761922574513827788648003243820309605617622786304238596102964651551974922906326941550824173913063065343187825792837311360789887200917378948956719362961313976225760686252968295936310550149791090230329540828718515602721425103532192626800302570205153966031742135202187096442232687979374682799342636438766174756705648419424802503910722855400668136230458947622681538586084203689581734764185247666946616131533685889774336715308691416997033790266789079326634870779723340648186529180429478909974695192839421595258047295022096127979156370677349965005642161082440053687219047796007807051787970762366828747316853707367548125971401031190398907575863337401257236294796196061150268950798717500342965048988875142488509076160408060383018886203160789596785241954932213428411575672140871363141769239135942777062111082050644884794182295573387382659108266385394734719370534192299392002824492003166011618624702214100030390121025748379832994240458353427722324427884953899809632565682668523516727406092647487417063304613089259621544533277590319662160391715006463273159130039627179719063139803672399198352422360937212274412815312214206822003688138747892349065432687033099422463308366775869060827307433107404081886907959662006516390671504510653104186779392181327143971580060402268496142212858705558703206295402153479170975213495100016967383626779595609038359470703594710851505837580472869758100047762853058089868421593942121847973166630926281278022346807482589894301875443589455450553378479155304003152168361281680896855040139816082492525464081854853174295118784014416083970674633692035287792393921244004601494932717966179470936285069807553939559969041117298498718619127688364931005215280712664745276494865841268600034874338343622035736810876494337238886338999095527003722922697425333687326313419292065649274656781195699814582444285056258076645837167930127919839788204317247020409457051325838455007707225551943207973663143797690835209602170350930381998649290052253038596320069100316386887640447714126719358453642757094133708134786096178486044075450118984182521359051675359622584671215458761081469741538725236606109435538033058231072438992632639935517434465267580946197352919174800216219820981795146817808884259094328798463999754571806420831835753485426647452317200037521405378377026921463003220501561903039220636365359686927680507363226471781473518688249052820424677322902533487324324112959549481613002672073961529170001621736497032190733947026762521050980529315219055734104509035883165484375094119514295882835425415647468033207160319740576561108818205108354883148373136830005030692348124690034604535114427769507351388786146825523055006689666786858458028698835299633025486262251277628984232369959652355625052672204479387830681248701267698714152831225027487468252378392407122303468214342705187604627175995749666991053099608045151608606152987193423605286134803489072778121763824816929513182471311389085377986787471934158551353626500239291757101619998987204371193253338616840047340646279660233467922172365621222033419253266725977765642598223273058180246866510430186927518159937968630223574033962134200820713592296398630071782218843483929865636630924484442450564637594759892000571390529287600745622253089765334395049773174937264855290585122940106449124891509905436433668053680384688406249050401695701107601231889841137894373144165527634743857199019927406435901481727080004981649194799743658568187049628968571538587177273762283798213200126015957980385093235880680141584408588563401045976233396955857935311141537418676277057123633118124329701083839442166807887775443138923477484199390302474363772216620878588868631783318532036003777474534927778919396878878595844297279605280253255125928566068647922823221940169356889477058032729179515496475386279186676699739000513393893204407205948236769485177050101659399559092771334039202142522840576202197194235723494603016143693333232858431073014067904833762686838282833538196637950291305225817153995518637906914391457868728182836243051469849035993188118634471417071713628663949980116808152236755078626878513601328195254330119671836687386446245988684330751160320890873781763740484424854682871742390078634421809424503075790080678167841879996711961478745866204083902859278634278392226738116798596092594079039306308086363125533299844111390219189830152588668216951545001446015936896403890816621012658818790677390266307441079243185168891247448987323864777473343512806105740375515096475061385170972624970521199619115004679606662066430295595468005938440583384832856204458276490301122754442247299442241808685986453149340260808614317878116424327166469572663612835976799339556989343786780769401420599240347640730740039919015599436023614862630186040113736113357903643105448883587550787304579435884082364849349334682260700507052933359897128821466871366176037220279835870381827782078238003427535039352159276333523800685438073323309880057369932715126730906777246843308402780182948195485488115678818901778102534519968862779879893441351665107669968577304555515487024767919347195912494583364782504583809201090837053428648541373903900894235553314179948234971618601100739932806036172160020860656867900322146256091380062273587554598032132463614621964070896188721806809380472674118031088279249167615409756331866004328710304379035850787477565049277727732918703550015640761322812842231271176946005570740865048700815824991114580887431581200498968762098684956960048176262822529099126824592168711993526376617605917231594466579655354050424334096315593616564669643719811424345651939548185910320122448467785052222234984865358354930044576720877926340484223978598911830766627877360841359121578445545860066738899789811891421231873015253630122519415774763451730276987120171853333793119658736327217987252673426270502172967117078254350751769456192871867021685854628542114538437786328700674296319072319774428140647280872771781876399954249430335972472751010025385911908947401718654163555117354994005320978235423383670811492655721248555820974037313722767307740928267292494916861921458450590537820815961543373469596361514111112142389448455129112332964795640095330108502979690190229480671262878276116390956818273593111042499629702196780252929750083390167309648375864186992832262433277121279420496183585468439612766313839926219554049328651284160625582230352573829884650938479199230211465009472741019245162676367163186382314924133317148719869823534041505963382086076976518842441057491788587866446405751159835882860343444944032667266371971794815160851968720984804480222571963220092345098731336321116615476445668176365047055564275016632531077350520667212600840352831680345753046304290911789156875894502450285503648056470351491441535023102057289972486410541513884298355318443684302319320033654913850784400953636852464939702665504746153082591847184992439597484291287895928157759099057285902993001383246925018628420135613161102576374366709845410776993416151191215009236172349798238325117592552585229890888552172621273215912470564487614126937117897480047821684598174727841096827498255268836744189763620750073446395108288254824963007389924870556131645604472572686762332173310234982235325550522503652617245769402607178167126875294214946128892677466405722000914462218479940481495054924583427362575937239207613824975407066843857463921025104240010768551513109722031374985083764825075708809372587735938805800887839184692881983534711870145903858569762015188125858815400259655632986376764550242503522455161970083198302941242612120516113103943855316945569870795254740764114562167348402299524158418829078312286140636391965779218971253439989499105021373981029990638608627441306223824236777683329894082499457628141825577028528545062880960591089363263832873762431781873418462254324158673400651103125703001884082796592651758154607086952425580430632280138076660836617934221916776093791341098754270172724963034519753997104430266683689776870776885106691666111679025858327476338938718593927254514109596917728065534001037706317784783679303951789487953303841475849262262573433708465353101026063207805363311602911762216773460318862360798212250991442790593274571860017676781664611414897424935847426553243346250082466099935074026192796754453273455989227612794662142025990455023832003589162946677621988246002273593269634152532977609500613569360630016298220994068351186830521669533547558809910973135354842507813938828269777881909326594439979405952938672259938180014354582449402230190271786491796136613025701588031407032536127218357336096237493451108477701978279876178903252952848507809205956630604346933057317090660690264499877228248109088580235821986706345528678194795589819894752882889630273765122373469042452783655656436908273902001675896634576952367007396630337938517326899469741174554314629011044812837577779407543817363477907431965144534272134015689831145995079080940947506123197606903072368128122091469774233173454012493373328576129670820577854809445404376305659245845766478216537181554560134861078740724222378927079681680820460009964353629335805452612824779578981254336691732496206752500135944270093104854046083022688435428154234084487900691995956557600437614656623460014021853431732200179922193277737212123839739561151797823519487713305949939533424655978837272353384759461994631965893316011403956851107771100401609395938846959102329081458489853557331469912704620035371162318066227843200997594118781241513899477750734124055529340266784664663148608595797124636701636116862739810576817350837811428939075882290748663571503814916448778887403813074085335108334569557777448733256694139802967571305053075208197720752357882972408116601468431881094748434958403569892359660946679708695918682572003265565859220033918254132020994179030656646417025490746066204102435393681785251746680106746060809746479108501704502138386810127613635982506339689008381086182050948774712616992154352106352411954129646231832417535870619530372816606432435092214778420387802785047592519782796356091481500993439591607389029034773246059338145319295545857419047461807725369218724913381137068075819403063174864699603374972642265960910356562777271157265348324199087921480432958303307553554171613662019414831166738696801358352411721519434269268564958584194270902734378666888742091979449693017791336209147877890898431887913498986712029343320356964789197306352450536098056877026110593412794474320735932742493366917902977738701719944200021585706522998729641336008912722444012887546742778068238671933710286088910802244699773814882843725905707427392400871822744600995026088113998685753755034646544742821261443215118481623473018338042305560833619816409268292428822721118392845584889529630414736566257233429171642352452319812866046132188279443169849688299972638537764330163145363255235474944101131143900904649777772056644721033212911346771595409355486274887400091657113047676777602512717798845467990849913773400947933331981256802376117776632234125358666231811411448742134706665424918975608034776004608516401241768714104290133178558749823097120881232953251041907922821212473880439164427847397625997201387126833364052828661679521215611469380508511377394909681609476068162729960511334360007939809863716933248535562850514981859626651497056106797821360308569919086688611939733966467567016410984000314398314816916858515472138822570050970631712014000040072724443195051049358013824598183705299785853987659833489572227433034323678454976259104388960111654745564032201405258502044103718242225956956571483161746904023247547869089711819084039402273617565836152366060754647838520286592021594609330445738329087270873366258648040129324162200579049249204541123944926578530477070006689237809616951106012175098624939168628361829958262963984707821843219508100135810546895663171419828630505197555900204487502319875372293382609770699578233325346276869864630050653108147121593681682341840408446188394637217266369218631253533603146017230042343621853981365967567289024912770549605670187077509547331337651668051698953138919226697271230938061788733684460246084246034633134616281778114225656104614348478312533161760014695010077281200993920179948174722111120760628788887858459027497465658268358941647900574831391390068623179709829873680078646882979619124799893959796136355341437587386958447156740096718827558585019843978776960052036932469665657798568766112478147998641506939726996884239365837866579723308779490494248925434197478815279432069532306614482323190189818714143987617907701945768817368614429319714309516705615308579315953466127068365731891317650313599605528553487944286723277948917970843860826220727501916755920868280882844097512308952916677672702655385683723387210449211440389938231828957474379057827350293846165122385569077091664233698618264571245735191452093795001557884104766283070869422955089049692651223108287837760206667775867686138352614351256075599395079849070242126952150834324462378597253579149951251563791283299991247913927406180725351937486080588234785166327163784522465129209633900093788280980284508033793144993439018185549624515283743674126266139488051061537107096346814036958370008604844049491434270286223498584127891200117697317286291725966545602457478571161662956214723287249156663380056044563523871915306411913046934282806170817141003175219324011174985783510510781632282905171260676781863876767704484333321903543788279065375073351417619604889828011736322770551995924824131848562255807761471538625980982047259774735512391447791406307809555622033121670192266945653366583543565639216796263819555155492090828293025744786394198678869378734427244630282522044461972612705510063078565631446414521851801935912683699744590674018128738525964677209241810837843366133563468313409562399640596535347284234991763994013698914440215440914547957324009643020848689675616038878984399434408130037130817262529486597812959381408738765934310683368955404669003282316927316899975674294944192061110054887572889518655906566375947497638308814586162087978556760868443682303474073923742579714541938529307836861437624477277053491084366134947085558262128572535903498673203071702540629497712576687754060846665435605101063356640381792437368888858995229261935078642402499166616726848506973370521618737771568907067936376792489025548903165209736529485661028695664112134753906038293999674240894078534486938185326903088686183061410815995701226372433582655707695575220370440688635752270674816727939851980845438508331891226825495059235224780081461774350012268277428636801563017121742968486956134908725065679911167824523594543884999870800559019048794987520943066443260739097866574400520437598284202892464700220737229819251089174231696491146105656872161271373361017188586888469708162166225643869849916391708578147257551162061699701121418388381168198479982444755875190760499818413221653802293913249741220762232028801963326270893483851682540345385196286935081226575175063036754489933751285676756628764635236851584104622346900997498169059308219948007718369183811475278650581415177769169596171294422699862595715293239471917517174738336215442135803928224401827170839233879525024899597452992953075371956297235581633426582035296380203278217041182974785554053339337863886999989048721242662790830775738105445580045995812280397359781448004031258771913997777276148494419191200052425262094867879347234902962537669736194116238112235244665951458878819095368402416867804273530228798376486015541659033903464996005433636372843745887169354419555829406720908201757136511841459978271870070252154098233290451481112035499038715544807316008438597413745100069072240244714194669535652327369096008076832477261629948344198238132274598060522434940750402488106781400627425231982592626989140668579507723336622356554922096648986254923525210724271369124906731839214129505231394899115887171492706082215903527824507860422739623913965539483820878197310664527348447518888924426548645706248526676268302030117316294656863026541300169577662330649026934228426876725904730909599220975803023138622866202169825660852137309277857713753488258285990167206386966379165658802675393617725487404143912775604497113797579730212983488704665968832818420913695592583268340034333624548960090611537227916408045140903113275404961539399867301796602026549200100787164323578823908647215913358345091425773993715460275975328079332368610186789319082108607957872520145505135420995516239200559613056451943823883694691676029180255664484296066101599783076562622339057789337375504453904542499092277656942633475259280726244238116542428531475594471365127251399481560375182911679642887053040125466684516578223372574141599175507113535394419162820950183741239729873329814484413880540496301175285896658537305148763160425746511634376665816574159094570838807519561317157091724436230450535035222137912282284893406571807386651899845979354106428952693235665202314008296470335274056805010965240424444270111784893602861516649361090563629000340653276241956977456061334499336153357140977095040802324670239837049126057940412138655211580090817601901729691487262990467070441353695144022162377812873051927545020041696213904203935075849670046025145871126728169802942823386128414098239802078499637440393704412651234278760238058542531077483232101334151297930449867814469432712945287667514934021643577304143291902915685806398661020256907765982898830265138005031176472290550508943382773811928799641618961495210922503185430867748682557789698941722722232548475930796724472227615510618964054839618725304247764810927061471166069292678206898217660953787735602284639468439242291632242376110935220283143306370055906989315632886701372970154418231797675768722649766063719967338150008331211208171460666425035825855325298146744978701193826392086118268157248308971869571382994530742254779053213424378410202179489143892674563553272744698586268811683553383334374255721097165661289333912642553260477804429404116202753991873749403150158430390393513017215180337397281478545915193444733905628005864226463754794867967344487691521016398286341536501743237292259943026737636333006031785009359842058356211138653948330618706190742805752106576938322559885895596627639228385593692144578051021484916913760795872742456275475635166874530912737662992822066962357186473321743431935861798011717953826048430667864794482443062967982794128242101576508191268414562871238751122291927584363535365963472671515527289054509810763952693221268591683221322398317872516382721906606199439269062491632906004422075710971066854639881537899975066382273435591415910444244400404595618473672487143072654857482347918432068219657614882756140081690167807525277990335559636994858019529882254206938696244969420749245201861810480277919781661498759093920589824889081340009423470879864749761190243497302033573195122758993875930384899504030239058722387030545895827281857694571808583084355982012827503039187179334658270929836695953865608081426588254056307005236637598637579171793331434983241061591885108286153170412259217066904487892095781667978784435459278397234372923183873147451106972360807669098974061753630406369585670196813274365609260200395129479684199507711118874563876091225804384317689453924877257679884946824623541869682790244422264226446329777045984837752456572828791515096949620323806026041914612121574825167094593452397367163486458742823532330094673663133217785011956822586951775891183202456103731578678872114221293489295906132385391084346960016720696854567945944441894181845280175292217472930140143274587736527236226588190679420450624917907385884649472080573875891627527068013910925821008419327469809128662521191164020140159896948492083751880828991783830749015483291014703306987661364056916531076864090715636245455391216531421522066954554802840996537491685214572287739076139862426810170723083804848886311042004791820026238947182979744515248525969849627140855949380657623222404550960753905566533047253911080867938972798970316652344652018774667125036373446212888387364227379332316943842136630351346722168980929968298548871099494856890364964303897618637487592480747762885335559763814858544015499421930480209473727433945636975939479037611896127118834676478260863418887070228163073360768011269156636386957372392521889027338110382631228894278266733817603793597094290791444979440944490339616277174606599792547847705590288379834349014283867770441621904955625444732168308541605518594729553134261817069753035092217189038089079003255763329209944327551618519994995556870768630943920471425993879515224756674374766279273784583457463738617319378673043331215769736650463812161916624344860762475225676408435014247708850636377159034671973959326260669827315073723354104734913902359298807457796823246198979397714702746962003936404454891995550978935461676680383065247383864952114328295307592328183033176298569859543913378072450595100717348376207532405951320807323192456377446116275950620046330729189918350552138290511266853867958729355134496369189110979020567127271530571199088341603325260161344554044904468216657591618780148600536889357874031931852092060149049944831280230725395145042852296374972752881771780305521211468434136094246516193579900144925282842848370181587941340159468801314703994524819353390522327207833261762553739986568816920263780510133874339053215957972967540665554152268911217212425385585333685200772217753767229507983445128213390776672401003450169835904548546989822817531822852884654123020110201728248332524218268743093175516546542145643157036008280346619112205276809496969188992549832590034594746788389277055827033946029320572402038456260809690607535216882970771256547852313497960759943078988006515534214750332240359595211433843446781890045392881904396183283823104326915915672374917531422591384397437009727779646219423417401928334584535561311706643528636938355870652427729580141114814511693524061055613538145065767341496719110186821679947418716159819241314148313935994243964537993698730705975822747832980862014211308429931602150509536017165345218453049599191537998382294714595661676830388259228835294296691262679078727496854267057302457627080414175899515263294727388877778367804705099137379926508103854818416016712939516703211411935991072862740734574925275574910621085064189965302875499301230813097948290128534263799061957256436674867328716687433728317199798263547233455863575618475389538654432809372774839877379053792425715120567918215208343149037548546170169648220862303761985283677630633289417486689725891505417096886577489989251230085724889727695558011148482665147575458026542506584920507004591218229040187184139397140777635576428562615481575802297592630242905629285330811228592248426526735586084356326011737540753815386399340784267792559257179318317131101621840801612527629573978932819546971609027744798498604596936590998466362584471840478786384197336103821494037728604701052769697566226651288160477588521367381002139333007988265114272969777860505124969788442139509589235740363527182229284448773469610586144016475067829327799572509461453144962395728766478265591139972267604974825879679463745692539823292984528890009149379936076713111810788081537802337627106450564930629634734239971016654570590450749394098116984545549070290762450857900193808321738073565123756489491226262390251563311252439589183902575323673325263192384274009311740962803159249658219911027623392043566149326219022524328666773131083893395356881295371248461150487913685197589192090119213358773377752854393661802974785609140158956819729568133880830124145575247055110786655219752387584818508833232789882405561018736155630108786470029830660567564229550243865969295108514806100204895785227206923675659246666173006411603564024953607284821454595153790444644391587376380988541610868058773663488018521587899905075556610692822438613276120859348343382087252462759468420708238208290188385294916711372112968638069868786949108945763628348818479607808786639368128318226711205151591379800926650795643869261291813017382872136216979499144786970663198368868784222152570626389979601606019320469134156158519665365277754039874354377919236528535783541425896792754421218871491367406122568297869451114410554681320284867649867316865482903666575096104865662691483097059167149508185830868670916720212660774335776796489713308453410051691356564355844963825713517499126511545616591526275362781642746359319057606952830007848422716681849514443386520636635465026184385849209607406080720771008519837291760971157875015810670645205898974018838554406120841844557786929572262690779859345222974723621885168188523034557993751600992113132514826255691040036181630819382932256097515181526621451139633241919671197066687078089399685272315284889821084050739723651248270406882006863124440213513759768469760507233663031305970999597731194543268221087165420780346497272142490560276367417801469780644049653484386836995681930674007756063459278165260586894482544444609563368786473177951292890501202213338658251497431837365192901270995715051446397364007429725862313226359486645862017848950883368698583984980346734155174800375763601976788165319804960500414531637019074192290055574325241558427768747776593184056312646712098574842812008748172471292269620340526988994565504004292987980076779492904986382268952296791905358184508044754587531268147107696157594417689768377838947638475345061764534533029978726335301228248606909470789345970775133636203633396463822449362335688475014020000620319626343231643424419984513596264984718304584174979480438569379541201104936274514599791498820411945725476031890135383175799893516551397306588973387185344948569234942397539660348574761949514885798563268236470453657792894494763016775061727105271359931043385976642755586747062444294867086816366948215284219247361839628069503393963097619240438666303908801270452375481799255134723103648265658618126530602988403522783006882000247150179673323373599237507544900771459508177923692672330365394165862961259693132044316669437262503664542157597338042514190050220911701649639073759767939380510907370733638075499466017545308073845973791591338108266161488805395530287454843694430318250413899643706773447366268523336891050245416204774277744951259785294718309304052595233159326304468141154919528317827645681424883218420457131081977280304697485654523160898732321940731091155628664989672559301600616651667107981197171598410061840908869250158120118340657740701624203693689494342632600693285759662195093155787041803289830241951259930032727996104180432685426231249831009955668292804887008266137489063309391223556939199203589711017992364509288048192580197139059580617519309820811990616561964284770530077902730165361231701196541815112405641006071977141109648171784261913856053740115294916671502001576288163490968131159333611627240120505788514139591687508030948558633657334954152380988337072473247375795464334749118006045403009643424521512077162189309383511194681802097830284484908566212330011366058723882104166513658479835244758177043644611032672265185114163384080560746771530679025317487362576217153837948962134336968105640684730790824935245453208316797854284659608429408619829138298859263651393212245667281267820006453170614262730153784606251439690672505592560690372987359950001785744077187630498631981078609940420868717920464223554460813203826790142396079087710668747657695222646708858876382007937177945973462598469193445233777471819777001853468236432191028070924625862419158660107743530201589530090310117899067966174071933798552387505625839902591723364740949055298041484921575586548616958502600655470960171900563295886275130930385052335110634290038153269534814895491359019288401975324878570480232570407773428807064584977325199529488818392037153359348490495152375259981380159470244244674816313660497795761104198393052557174939682479352808957767487664160642451901960122754406122945985434883089944660844717459517438661036499848832098205039791613635713384640391741904579525069819864135383960122249941608992179550403973109589398210663985822969609263092043734288768830671246201781828830501036954639560290860778717996555357877634569113719543283263110815509038832134194191695595981042721935597295011207644618544128263132387046111478949910987587994430513282589027328851509744828913814150554450633636237122905766698824914213241478503005303859570203542933589351753457683404912540432419244748913213830394584669715974128039694706230805216174698827349212926518498979981750023209411779845766337339732313473376524044513045567058876073908794378030743760701865621332501088921016609256541827209075193663531547793266115166593814254648767190748694895730831606177703699603510610630666082041978657926937644329497517042954353661944261704351937636479951302393284656555559493977688539812826245703595812920282582728306098313115570301071390335278028717461313647113960262084404031648959020447374717098119540852749374991118404332583571003624673745795082316410420086001114026937348570425835232519885504217307266609530143536051322296253581665173052904272204713441754166289971006168844626563071882878842641483516888626617620558232794721082902712542022339049778002168342262766517094915459958622632997695761273345519768573655116885556207911849413769564482985744875263833857584417105013778698344926946341394491803340772367864495396044168162031978887468636306541152201686745342025577735398543299120455462686566527027254268716748598262621900158901325544305072024351172222288697020360528039720574141946535506682514157933846004791500294320664634764176783578405597626448968205433995597573872201522268474387032728405780424851843714524527788985945863062726683829330141395095020657807647818478484469578803807433708357218156490888655966647278624200918239945394541713993316191669184761795425539281211024257692633936715756119611842631306376926933782439063928412653080415641139354267908665028412953241596584414979346185808037365160665333917705352593191551124139427859172945603750263522652277155122523134316435003468520446346340549262261848667771213353731605549081776091327519409683295371041830148718323363625222601156550451094100940719951345716777466429437805936169226813178679046512204956879671363169799716979402254422990262152474294134231099048021225352150459432118135307487341421363539249828755049904970802105155759949969993211311584389944343832442527944579442998192304641951384768108253513036390267769641476468093639740751893152057864672852779017229842743987309074947889809016727205810262241550825541307990118641548309309667279482393174946368764296732937766356551544054068197362764585002014759090684175314742672683604103172399224108669385690978114509214110711095761999720515630068353619811180145887152896812408574443615572210670972995278906196550429828610244894093693252436514513162152843958991495786342889568113481588046593417659013788986855019623652950101387667200113236852303106925660122569574862701717286994034813044924095005161037447994142067913519869102639607353524966040754775510374437778025819375805687614814830244742246690714756051337654907602035908055961653294635150349741896216182669869551422263377771365682699029443049774668719037242250666894080785199224144929349397976135236932542988958416968625355601771434276890303284425224733702766238096675225029065862478264132790831252519835844574332520830980364806228848111299812522059264457783210013711053903386683767034634036450782781417879598146241418116761337886321033299861451791864039650279801737613851038548848136615011031750777188640700920198023588967358794794295568975507224124990092053250962982826751105037437760998413432015031258391602333678619883697316363808140896173390071321068726931735105401309131390859745732627539254051048202088602926138353322329829992291605316225807470346723243202414675600277157895710286534173936812427518734153681766730524956347369686498925948671534159280024911742425346865072946014843257159098715107201002534150295116107728086440237849550108131204989308226737520174702694758814336828088437106144229936808011203823168025327861513090215582115565737657716086701319110289708445946826961802161965627064472637552529313474726342498789783566564795180523001626232673589969390745376775863035773218255912993800146356423177840525745826083653118074129377443440001714024958599347588813218456965089803084152293553748459182419987852006652201261831057531278119212174187906984882737241169608752924742692195941729924991812538931590057050579392614196311467585662168967138784439325749432242404528726191361008198456501481540161497600824273046109735072434286459440448969461266798034592927940500432509936054990805422904661438399024202981949541565173714291745364286033635556509622047895763789143682936917385869120676745103058357042381182649316102539490520358435315580222188684169237207171849954793631948565839470817282691657551539577922931191838907501081692454611023860327816612007124582325176850439243232503575344105954180691348773047384168254340055046006870837860124405838473824766757969324372448132733120951683077878722604554226320739502205247445015376981776048981886953754122185409012190275775309655438964501134275660205278324275415626112656752917787893275946525653753058220805260159657332358188529576711291170817068233509488128408063298315723464360126359388574984944572781767591275004765306087794000655040716403274358490013990791640642511989680471423307745661251023524119347092119562253779879918714724113619569459937967806124539501422304869871549794247715592194680062387629837009064170617184596699973411039525506913956425506113408675781551108852504373666140389853927688865549567724128063137034034817837829991324770010639379401980007210531539755460710698721896394518232878674700209797041105954255452442922251768500714917548677701893256886723223875035636691575053270221909218449976764553758106863128330609517192212710828296659096652076378861131823513368905096773816013848175712242236498311733576974151774891675654777927145064936039254593026389897708867004092407714436252183555017174147802119256300062011403410998467819004214497661646962869399271432690835397693865728956101320040956591296933167567694184342131875960604441372844849136130753433936029270546557125240403105791868925239246815974401274341511857128778093107177351651701913778762669973045923312609004124890429734738215115816564497473169535390473159697687910898823768464428154978950995289739380762370407817968846114792180261142058980634716851898570569089127888688643828369604334941116104253108721714136319535359357549811986529633161894669272037908787097045817064790275683306333781045631631910376949878590057614044180123397703048405030463529670877928663471093544024207095126454444492160728730301938941668754256613679513035313069993023712907355403097363906931456591187044520521946049717648755442421775443854788434504413479923727208630823417643857319520470955424274637932888487832265007253175801329672303850440218140022361751619984283324898529839452280329515588497726098981638735245499549925926996428412043116033319211515955939975186423154191636108079453502907499441891689153186385826769928675350191587329055105411224194291372807051805278091332183244938910856981335918887095197863070586724764995320846963951220987824991336741263947777530332835296291765795372937579113083229320377179188104386285788190919903505827007246312646395591688243660451122790925799275339494633651203425392654181333362246196392547188223414287763631205911036685698359579610449273054471896410379987576984724847893376480796392360546461462366881289476798659606996695249309489005380072651825287466413366733969648492230623497445338587563943377514155111817626164373892541622257046478549141062963086560750134751418785828442599786079238247065068338768527521419994260507728140102614385301638480596210157271571460155711291884948554737476586943579994022157327361956020658125596406860151841081551387025087000748757301621296030618131622989181820252469972658201510751934541015609299306102113267474818680804384276044387628401302046084070089860893602327010864698534191779576140085616123538062765193730117908145830605016483449523802920249363832877926260384428218587970840475912776372184421900123926109543439694222730803040229546623130317460342340870835578085664747989621886599664050202199716085214353565332651134332555219487595213075626242550155353571117080556550281255816202021492588592753222713884367852905917163277255407934019627269524728565906257266816453967866385424941475175225322565306091389732691504626244903339276173653637665079568124385663152782169757885680343211744046353376460587206740056683706843258946786062314296744175186970942479531885611012481801534598125029846174923395878252234752623818283645147975958069286394607761790448969691885787789923730521856435361480560321820963275053653750653590879224610056286848601800091532107837708215637071053971766996065724913317657786442320835982785447108797508111817221029006730610249418977968943235129378869993691140179809890444622514820773271299037790391084931980536453009788536007874491415440932920956277415592378745238398073786897332440219840694428140861851269704198216906379933594910036413088247029791792269676201703459275123817429469569824367412018996992741066429904106581707006648364797091624577088184940848522473596129593550470830456970620117281968424677958692610272015398900500894539577619232668168567534070422260266889700544365931543119284112331224655869295385006021038393789778587475001810141895048979840552322417108478062700786906884042105439679539900728197928049237587135313378880048357844064022322754145249473126047937183918280745791268711615322411891362181198226338287909157547513508697396510254579320027366279933807446950168793608166265106867740488816083500801038217860441603137092941647844612324708940609178924805845731261065106360326817104763008816308777593720674407307220538452210131911930640274220336427591813689255587164674288564037845127945707267104134201600481660500275538905951039788699551037477169610890798977311448749133757242506411520719567386169889573528721303605272122897523953509677103622868408938298003735950249713888447951006021721535061224532619371039434119208836218088183679787959302327455277562247551943068280281756026911808941782456296532233917147191950943424809225110192752170103366046899340053489806988591657151146530735431934061059215891365355552023292755306407452181173479861515043040387087715735322006692473061538188421670679711268655939234069549187690993052006393464893433335360876069629207932161409632587441672514401831413617154336373141199454907719126383879245508203763122127179453250836695445245566593532216277654939315913192779386136220327485108678102973010994468693613338403633797046285214409414662924338696819652668282836982549455068363652907808706771569218583205418462053325236434951878823812972811336998572711459892645486734098263579362560551757833289128158961612436609972860763784377934015180305931979031396463880473314078975281343991644637730701572318579440063789855629122230071377791633092740950109940304111708036923516074708194995203321233015410852875272668331257158376644102766914027380146973351306359350606615150429588734428209287265652841822044266195823187913025263242069192292783743322475470340159777391854644890830489884270189373131457904286763524657905014259161031390648740020692835982312948921600325656839381219064197130573225710049982731684357110805535718409407720259911824084711379190299669877556289729208240465231434825087992565184613706885514263058895910667199832416345680952841689620539971586650676269781497122136156811275207999985470364961250054121945097964403850027171643140457144913913314022988527615979675085144104437561200176907643777659772199834818331325495054298823428096412894055680785469954059989413233326237224500562439892784546715529370911774312338789654858429640546142644178859793940406905191101297184538817529121020283271935460619906124641924835414552838599939154859865693438649675086279643281405916379261478072793510238137631647317162609492363675893049598570723759746610449822201356052503443426521476856677265612764149614851288063933101680040489492594867236426562185852030777890057572856939882469079150287350190816593626111828853962232946282025416672970739566696281953700414883801985400297293300308686349011926013403774837039224238638270251032327920195389228353617823102525234620542264378099700474661050661204038700201133616798050933501680424331809034379407375936836110510952747101927061194911595232012788111485391844345610277754942597795068877963078457694941983673840724863124636032113835493101832110235519058606303399083149148446359339900487881974175473941421293296257465388276323110966168702578597619416727912665223962201765845339166900752521306159049865192828056936160683609258097494960720267455564218807405903886756670193580622517078279586765573579955985739731920489715970691147850157426056158066399515678262146629326970508086666456905644404976171781629003035825195094323844926552132776231860587362778829114456751420523312802131878092498346220963161423198014483061921032521046261060203432004912501199573367563842935572152265127187334493816452404186232435070894077203929143913102442032378891103611760528436525678936662221988671089455419810552438152642980761443310262233108295092876676587480201608857642868241590316113145621260743449251889663578640020784871971326934423834571062197789195864430798678101957526404713758356762248969763073165434759640134490891856515784102792468651855318366961339926657007878211310085809318576857028515869618855345242547582057124878662194357977630912527325326539951371598993780213776810535551580411432518922881034728186208546887907578734197681440583669320125560474012231222567425001315225951924230725386991655184187380510409853843118729503481669153822940403982409504666703713612953006990173367237910817651999875362333584061811603069134820165629269855701440074878025302877419216303164060765472250883843051435064216801584834580695464790482223215349412972918405001729826359817650835308670876191584856012675632732243905121428606383422722678907301748840711975182589567652244412504504290599194902074087842702360694722475089878375194123361122489579608385725252406376248944015382784002445046655468618310663880387349883795214097076398161431829512415579318366007064687163255937590832834047062849855093247269588163414518346134912738851671571401931119663731098132848663309881526610349944603200313308281515504178804050625897500001656020021448432475767674529994861306190004507967608214490601482092383749828488349545577317466129225837493103444261637436707517018127724943357737227640391256558102774267842638102802076676587865166231249694107764210043796801501032291131683264729711421892274513447215794967126898395179544176027732128594493811254795162065098441683643264573780840450734450635996666178347489177164812786824118021387296164003394209581886816119948201750030136193960874152025897909119566870291783283720733153677631391474928948939124436918079529342400063087386372818144614650892870706615212191827059270058743698008325255595757662346495038365478484865269351700649490087779296382261181673178818191365503121242511686767787546438605116028790034776820454572550155932109533270300435929736852073422023086863903228193742032993313536594690446623866228827157762706428872363937076259143850370946301789920295725517048937291405745230277856266760408343106242713712776756099285236241318516085390080769884778077847237036370629893567850722476503768215863588253317869671455762168809106321907290978577723626062493222384787304732510042286387183356221645060774623400412128302722488552780919285339279742223704476808022555629660650985721005312658608155974880865340625793551077725580915291903050073312899234658194041096010450128213079997096347358176675087174379414812350803576204620761108221881812040599339650434696140189125374452211000963037082750813575112794951931237256196007779876335132509730882543916342221436871983732272179641029328188927565548880416148290902621204210970237918297769138481479488861849555451153728609111374110250547251734085831411409908217420018101742002554209169002883759658205309152885789864837243274304327499776013692505932378472130699157717642245554642303639094695089599011745139518134345155014615097151924504209487094538591111331065562578439904580489897941085596387970669078972989054212078165986610634834825439014676535106798128599910700814168364962286290408790017639776636148544551330576678439900583653308682902468643093269752393090147071188267839349371729807252943893561371519619671433176572690025859711540994682443519333475570586331865621308887596422656245732016797019575912015908186308328187882873003165875355744728558273877613988455416366197333019937335611583360371191988747336407204696781886499236792453500969455667942629245990410862025500120743485301270186591373838133797212173809968051387516880279429182179951148121306986345737112331403309999313985676153268351234620678907814332184460475977287391779048317814200658304705813217541636098334908632869587819675968488787877452173751444073165118637325102078755626964906139956142033637208848974457145315499695787661825792349377621916881220970420926067333901667423023338363366923784531877002965845427172776719738515059007372378797763927887644230920231327220399676316533552337460485725736789800869183716933794047561866739245918725903380378469420267912680214567878574539888940576353539408905948592228581998803625910371894476998489853286714784382472616647941177647584237243563199707694333181644240748316888670616764997057604401389642413492208090706755166155289369139358032510980002928733969891983742392654909142251884044240722793380091760398173203505212866647404609746956473312195511399214028807725839922045479241907795093792124278027705611243292023145614353794720678576210187793975420421623051040107533447936759013857584021555813981603362167285555050919980619459534747710948873374067907622422085446387127221740044395437158434388947655589083105032033134804199039100784248682969466820671039846901624373733611028058309414035493265117148758847714780466212263695274913682604070963774861876706748087043820476005768570474022214364831451363036983290485126134468852865201016104863081318455377845582515580865100903165609437600499770331306280957346373816866217776035370681937790309916027606380263500359370995770994730254915170709028723168470581929065245633082915749440610864658709325933849609409171718818042368460682088774743259101021454936244159634577013850542843771187234183019973351285418043089422368422021475851159029544930488252434689419458765609186988514697462470858792750039523463534721196869384911932525767508377332140711487157884271137514663084042830818282429130233896301558762278777283607552803559242029110966506080140453042776834633693013482331743391063352533961000712981020534520134802268888506201446652341477719707316837309680296827574998912201652762028673900839368856306109818568309509024176803754047586454776817780848114503074613770470882153947900097242501068777051821288961327562866563709196101920073396904629727179309860231703206875240572866586072917162946368813177507651733769010579915500835860930769521443035322262051301391007215340737221295352128116037181874447900808658363299737848199740517737943959467598155836621742265347669696884132645693723357699008621416859201204562616059883354506189819995430729679660828288598322873108654852739942983959303765257068368032995710514840813362486875433970763770555556211753506070271581687632705327499649843580500705967785003358226310677469007067753208836636594685790006956829432830552529976918573130122024973715365938854336553048000978845753035993257470672688143089413235263102614692068460991876721430060561416404006575100289937654894695272683841292444426370706738411829839264626460502701152896151844915974605455791087402854691677866261677796743968289394110289846177151082071091667906435822055964012711449371899353596379307536822775797992484437698888551718515824883385047581096788118836428353241488187263010129937239049429111584740202201839879489361107595677799338040870446862146656490338956666378148966445600917084199414894107840513013326864711255322694112474673928805968666373029778491764624620230489229064740297062679091359333174976035420761191589725543070312979764740113620187003725696023600596058652855259879602676631814222174491027527824477520205261395910312176762418568358781066985012438632510157781149000151224199636627389861496981662689447749090394101420093352218430370455950346609174268494205760299302350496839902233357143927934438663229794592161262951584639590963638328694324439718188673588420604086135891896574653000343616561024185964695248189228589620670325695254154967350248208891204705763360184447324202696060611843906631488694685428649014093475999216837275185521593634297033732960714125955050143922750207936020453494486846405686815760350457414788086659559612963467436388362788398865779341972001866789665082685933650400223273236202322800626172151430382377121452370875403392357192447743545844111164463168289235994596205391412115740992582946859081024432444015492414435258425688730301751196471744160575924481929630550425608490399411594520414422388995159020324986851659144943745365982518587922158260181935411846682719661389079471184328505292664835891983794757956620098517279661383107213929910571300636587332077825527002400539067836878200013898502877606842550254403041608704746632128142681499886039063560660170263193593456662234638944125493635845317158013078390204950406153418894098964696996007243310476581387172197507174303801700722440208779523337523452766891329475897858160551842123032206768131313997746536053567651308554183535088571385766045102650522038601309606134379730893413143775524773507065363518464145413790469746496711048955009732245220941980618520966871919243540186530599340198647908250586211626203542848279558036761356936679278065331331979682570748850474636146671628796002269467512933909873002311322537100315309947792990064055345125599947635566213545230118129680814008021857774713915981477145310629816933224165241035990909916343921942074060858427662694699117624885032458816106059276507907493589736082027740960814020400666700061028663470220928885260167616649229261668393551410629089644922914154618452280179791292934353726764711577259633431815551369976289583806613049270620092595145490812307531930579897860644681079578107065538216436389007742681698341878664495226123534189299114623872211775691419839993155926385440639612620040625383029919065648051343579699850194192421447372210379780362163926125931171576359453288612561376479752883345820372025690340268584542215851136164117708862412359921436503021167906113685015847995704017868980062593485486565678159352939497744865638590205620482252798643577714928984239587540826640884144121223520458602076897089735109563206931809064604005320836761130911087003140206287455037634320966463857809506326731072071118371860984686094309281362870423199773523311866562767109219509782815587623438026001090555830056271465851064115914439949361237623273866768605567980691561357551501908684725245428119993665462215636927084326565150801758202753444358130574617984775640460216347165618351001674405617370173173275968216020469758608255623038535683422430357830431895665410313858453902881059814672552140576506392276952893674100162053499609599872536194089253833049571181057678693414920713656500477423762187678943588927731274970184069008425211241782433845329678963531561507161020595847984231750004981806099448292162152890465011185385870681038727532045751034144650474103837245877174676317088492543524100882611327169400212657055051295044947321279419755855946514832669544642623736999671276612666489146335572732607736880628414862640690623476475522084201038268655698556583676742352557795141089899719998249523288626446467898431569847743632068228866758079401271339495896197592431070138581159508848885407079556126550318505413620906012504306708790113125061326791239062898123708678825401198154681789811442721597290086367110918598411716049040244968526724367832426076003435916345369666768488711811673628643498035023632951240651833407518523768030148967496230350767465041460859110290419882753078632943038404380124276511898962514407380294109795240716898815339203836374714410114161665594880637307216312862614728868406146970405697100306264160463252398309957677436818059341086685064811718837421543778931254658198538351104293007940617021243303204258470538651425311002069231966457216147372037715148589710847060641660425257637938114583077133840091983862698998684976874515904879715263315260006490428675040754951568552095787617797478284245800978122728392201942157312515407459077821711161476623476466925484850956716784969734855941259614608310281905115827871869871307000780720062024819710323822309414301260378492120712063036376211909385030844205239129121495367296778041836154072194999117402394203543435958606197986145381089735755133109382632539406902815599031632460312148903460332881853877296577690893868729139409741803022064058914643952762910553052963720610140750713913628273340639361480220566991971984830233007852733567611931119691220497354445071877630340247835035094599919424186499414957544575216238837215694421186870739533502288138134807561247974744455858415934521462573038441728052080118597619613155860078765991000597191800032464007361719368574057378794139931767562258940857523328395914116623619643999242099254934798774381619784933943647479812514063490512656341630229354071800943554526627285731050572513887857143984675390070930959107350319889795485572038856610470823551132467847842530560317493308060117026957827289008880481595666404079349717542309743084980047153638806880743371858959056321389792916257067261782893761238028578482499565946557760003070628936624060521416999817517352224557710393855031621976291703239040548029876245786957850547958037582428196911384456940395547647147125796225821544668624956264330643946828052379725641706029485127673647776628194684943741777559400991513870281580738259892010541800140833335329203986878184192075351757054280616245417668494435787498997103027457846316215846519755545101433195639529038156296456206118851528685482664792203721759807205674865640573595214009598341137255918289367896009811365373269360101792357482150740387547766067111492942877831390374631319111141483016192760734589601695465202360648070977912244180232673031094112957373979476794952021530516040974201614326362087898843174658283366253136602005666513946299726088645796898115467852680090862540875754365579129139149157152345036837324934212313975436533794966293460351767933561292158449581713419280718874702295910152213544171030453447480897802771331138030738189627727603951619605660424786441223605268802130104581530167104203475730977872020667234876011184521455793582661774444529262217838865800368134937108446128130488499809339082914958973640111773927744658196262336033647032063296450436025776066126975256272337913814452850414809129174560732828654978883646354040617773983028699185799229340245249204711198723212437203566753258615401178959349568103546642085239460904431689737052858270917605653217553553404661810863442576913488801264711271876048045427544094446028548117125950201420256588746002199484878247719504405972867641763813562243877880733135155622892772811437420516614406685960178402305621146984784073651754636627938518393743016055249524389778586918261142473268332380384454739208554516161089545454656270022868856617792110929686087610260641899321141253362443028535437737813397356380623462376389682111181699147916044764230435905776407074820569157484016373918853815546666818965643820066571253979719275469762520396829612497004187985457799616173538280490847100165032324164999931487421964744641928154011846781455288488185491773193817597157977789463969924742158492580701476470131796628582622281499928876300300495751230908589752001515151870208855132015763132713741600879524656413864802199473705621186193216229411878275229008755560767417764084782131620677202818914336710624923797068269745937194113887651404347890751811161652902872110761162527565801192281752748194802767165919100965194555706815108473587066272844809037882439361246345082220642214971608640187947623204146986750665132678463848531932667629521393211665326977449572460349239442372888488642954106535146583745465706334377204596444762431058552048643529269837678468901225920287198704722519568059717166110222937496696543877634479768835254497156396034180099461409964746659069908799108539598306374236074330024368922195103873206435834949259030829048794376130695932400233194335969472560762882401818729388023544926533158234358878995920950164370593715247561883560308021722941293375431606987994421677017777990592899694622042221367810402298499184136349591838538888329804034184167658242455372186379305330279965793650069464472073423585070848738368051858876183935286217818901613144250542059982040508508710494835437447272450525010295971610309852525310464723840618363213930738480818183468575761261737780337610114463635293709649175594939374726727969987764681872362500292517447755286138561373071349001998114146568747147667472835670594564635709894728029325741822043843030021693147607180360317463427697444680614123772173508552965742852734516957703159756948027003722121414825168429997320578375009368369996708689105111007127372915987175451581715248426998549932866266331134264505206994123173700423456773605795336865775064578930378565621099469974904883702755136538632829086793486264412455850556822401856692178691072277593399489642116879958061697129428168210326579654499401250128304695447311909168247694082445296810497763711893202853316245862473594361956024438265985784985973932011087623779713017555923723189068314534281046467064573512108990765315419431922216239602427456110859956666171181264914232116118892818695986510715671358066770625865625126292306498851636595479642754466414141464633529332705192329338185132350198814569185343373926942039378244548470665155484842103304470061740736624084367622615446017512322262221181051118173918507592554261545549434119974231312998443035137031268339292249966960035335572529669160718428366296562953545454237941848320015927416022479021077208799885457515660938375845444864353783256846530807793470639024226601538890532648783377004035299924446794754760097944309668449917061922875587844219661675916887916995085159450033890066157281357458079007849120574190455853223213245329291052492429951563433001006864819415694228342075718514022297373336437483522807441413897064113283216983952483084310632134176134991668214706067601996035856524857528724191099307642840863170785293860130074453671923130226195944270797357748851245690947919973423356830276724295829539880295103931763301228887314301312898307475972859490302580796223534015868063681108162956668105091090392207256388109769563113195992916518022135497331760519692640017033286368356725690932955025196011615881335503724134133848105243533253212884352019995156215102180816208371051215426013991321546966320670120191454915226514026690165073936064211248096421627465297851678173717470875173125424561090889043565691358986451876022602564485158293942918172676241252935247830231417050326871002481435526667514904415906664595789968469630070550189013241038519078744610828044566963994238652576730208720330159903574030869349442224823141390375326973588986887061747230262891336345730009473002376861053708993225087644416286541516656720367903243695077921689732260529544402503675215357871663507747398306055143132938271258947867724518752351283997841513996442759919292660469801596607274766891748925134522530492463066688454153182260176492697669853490689218494764768332579043695738941226670739515435874758717333013793375868749878382975195807391163262898192219367755124051837545927457551244007924055320702540344017354056424535699925686466142337171574641644458377255521246574863238479270520167843931243325943256489683733072409754715819576786797088099911550714514709099136114910680176742974564338832180574286010966197487401940813822997729829813953616276187312063756518000494978261894412120357039899005409128000821838089104707389352313012246401505024476197414195692162369484302738214654490795128963039239810629154161511480257371320547217023213666589385608599805582948647093724830981204258589434573528945907625406904321913956738216340224279595851886902414396504589552311615334030895294697767345443543214003499040089347645211771330180228521693322940893078394444234357193651366751162143825336266780830423716773806450998166699201981041310248797638181642557295861232000238818616414432034294254745608461634652747470045400567329536285690774603955040317357747942970747650041096532604447396994987050815837117317367337051499698744284306417758026404121669192418069390532673399172258226528636375399731517304052191333020889614923173766182976891603310609518582935183584985315452499074963777859583234955887650977564191592449960666428270310175996855417440099253998002751629445091802037493539499280903084173697522670808722200497468090846699393831458398511805158572620668210449730609609926207943072436681198258446240745655353708186197820713134780980677509261459371430059820388862106501280375600330643097861350248258241136337688998926260551430725352548504434771779156205062382658380707885454836672965395487893215766330769895234147092696816831438319366903218490986189097074890978910145642513989596525345107895655279970665178844204493941206986864955302071433138179109770098593780264079049146572850229556182722898082651081991393603438766235690011445139558561314102508834823017261106154713842579852452524491817837827392495044836891743621082938215458965371205497247923744107878176410840604890659803218483906602287092213756752283185709577150065496282485399910559742996974440782529893834864715073579822570811042134880179117042127115326222228492790982347774319145041997349581293773208691996031324375098159511606629648449468368499881908179484889130667297965858958553610030574372073465720418746679008926129010472390296965464915086506005790297147442605274594799102857936715566369067838579986698216407711743609655641931384029276381974654220624539561475559588240609410680263392260575809134402440316509145430430773391929203845458662881829104484874618382629404128035721917746414459587864913411414303869922778333083872911680979684162181147461237431146978975381834654146418785146754953856863627278103598234047712991547018906198721653528226748103261029442418560980203063176251352681792136181509440565069986056672342896065839002354264692591319738289281325217512737670536987344819788168359245929803354702091515690165016899612962467537982262486393317670922986932738637267288452329739085851846515045471086382262629220274538892056344653862770629861266341966789739920740224283652114643223370170913580280411176278790486185517052198116122534480362038320986695361228951908848839370930009214138139057743322157563059761118830871386143016972246073397388532102887286917274566762376880161646152939464077648139999265730612284092964074796929876758076771129125345821171097325817341044813667794469582774799324268028715873843307145666028062045089582920921510645318302623465519042756602289531228792137189577530555413351857730598251086484096689685259813777377915188984788850610477133165382784250994322515389303585660068159327643570600821719464593355964982703786222529527424194480749790461802203923763599723467243916855303350977444935719082115385313388992360817128898041827002317735327554565738018074933760929073285196123279325346570614728335201958726808351489265526008812775519133169011584487851587474057091687100541227130054528156019555931154955717979420214222787947131241880756309318235499734608788459504882877505430881004073004990686947922590601226456697506006557203483764798011854208802248060057178046493481768236834997017113395627878291974957398765167825288604511177238021431542436159077617370481287357428534163726848620709722391205979145625940563555083717216823976689878822760535165119951280267430819727742741817263941039079768584332144326795188653285606236835757200849046674626261636923515954576316670950467159150674408665594228304921819298909208057792589397084643673272459254881934269156302539469048874191572746679296637647400320128714876107525038429936687492974822943868255770725743408262925724342849925509421905733963178071486273096355175011190825640515570667513838660204538269171416587403143776889703032336663493044097477862920372361652970983195494768489644820901997834417105066673317917115763555115870691107593045258554818226587989519588232120156134348471132276034101751737413737831075704247657015770183519648735964124560484228373284791600824865641794141046635601562085712604700798241728512587520118740454529400626062201383350979836684342260252745383545392647895544111992237764041853359073279909911079572847925578690616329465131777407310601361547794646855516591876756728007301466016781842454749272289735490608100093073439681607500305280743677461248493887824921961669440541388680309040666165116228082949285322812963136266019184967927216193291279713453593435455539725248656719995570116656177004003883667604420868921769140975227422026821387288979283713536915608734843151725168553518628201482383570113831106689916449183269082957481653576234453354726902428031599446373691805563228225635178919560047951744862733361719689269184880046373800245646354488388081421964593794270984858439963426394292122291715792231542352593280782641908012292095260424913852628504498128882572190487401113985970865839578818626874734987772744637125901388533481370214302860213483734360739004757460846647554376432778124257459684136935544763232759938857470950149253995832735687575907220644373869347751068885939793906340241936832999695086527808398314753608391779700189566852384938625844717143642412881369411855346415947303207640854872547195080698945615755772420476397107971691038327104685618891023666573507539009031596958854556632103942949947369302640897300773105052883275117009164394144514719733928891527421336195805223156824505447996553771468468056043774650176041039949654114475753392743334301489365224669324755779899372228811603420909623563424276587351407328102006421240370050221213534968598210467111964190569758280167696718278870992228307103254876048450145245279376171594381268043371361628487445940984427736589935735792110745591579873986053524599517149341248400624870368579138011308269236857859470276240116837874648898776068493184185820351888660394688853898406156324967169634593025411224071077561469525584437076703573591120970066110608037552810233932839650244153854858583649444572943315094137956523143889534334905178548117199771278988788731076660637146938544672885807079754485088015479571537250903861736528927037585831202887204072999772312820261807910319720398782156440292859909942699652205019768212404641829810493393635027651593703012141703114387314870727379393688705363954267226357132036065653703216243216112384968665546303910494252792304187362787512944234888624400848893442425721491339279198859753503768890896002885244814300035298720376987150517487049189208548503031822018347283034520005926916254412348361238231137746815835284853455577617968247208845563197799536296554986283586337935096337027799259735426390956539287890608996370997948385820344396832449259142849525526196862032713741066126615897635408838063957228610762243899004179356214091184437967497246044111343932791882998890287748567362795997100574193813072570666866966113231862371760645060616387700745556957546313624541128663016356067946079432612685971412831791383608902491895565354722044706058607357921821724090741365816287849312570862900012580183986331562120908001258576929208254962845732447179765749820741775924437885158775742665028878032200644057041644258040500769142497815391698712936552137166063892275665269419864754851300049813806782208782685182667269517888659665303527886173059250970641354931026976202245078464584763337550247618539708931375211393267346921153981655739254129076246640470141431477648992967222588557409823915284837627057819199975382736710263120428646106671588006836793210933960098484810604665460959132632873751516490291891176982133593224866309862301287717359216778975601006347083288332565134858378977887187542886709627897173940859325996762986058204315779396862132395527582607736135022202015996491375868805179625312494435556160009202564776058801993923438540343062279107022371311060209387774797909994960150876122509581605198714297583971012380828792325788484703338457650434451365058302935380721337789929760700825190992474828405272276493608425974750950970455577652378697172165943025845998033794868201294325202228740530116490001276575559561714429182022039209692590281869285687055724536832824628584317494663014664317754536510468696625096330683839598302705808643810178753241997095027368239387569480809328123286995101997349674624745609645869197127864591435764152490931269277524590901236418070235207321376190600156041350676559336181784455017474931456841138167785071614246662653235438621692877101006071108074439069457259414452211724526147397874169548154793143289457379743683621367753041953910822598252872613280334993956844825361546752249437086248144877702751046773088953218993885672400033918756042579207452333113665828087026942813594424904909862026298672915817137785083744620577949506806854479914921529309996626270856954250064349493146555771605293303276189389049087407505319779718946087171228499660070397315401332975166807630267909916705394410062079537870299750767301521257158923755855518111740000554145565840742035610185430172921243594890452012171326414261575081212629873559291957521501212227786710363390107226611792006850874666090869058636056145008906610781186802101334931798011386330172857805351001041752621510185430128687322508395706977847171995923237127468426305466695208292962921995143268043521453160453519033269679941845689512885723239965075747697146607940516754272474537215625831594638117452224309922517158076533799141299409206180240169200418593112283935823321498162784317011260615800481363382011001449755545920759055451191421351508758499659710024899489515886296200790804952709487173947822728254101656351281344943712328785204136625836851104083208614332592114018341732421299735721977046064252620963591342100900219698880594135009779182219232591520156890074497045007493131925309528127290382040951768497647666681398157134065806079083073632794099961996145242748725582307771506783856978665183327472526453723883345008337808705457501863651048704219981686382643009623011890879488166488035568977516311349919586198086008308552768371641189986610336684843572205091486862116304710609458295109723372223600816089518849314080650145056555636504793268125196678189647114459092419924103757971989968015473642436860028611060124680611760518060070652281808527199916595040262991052773574308890371689523537228266412556626974891889934289165601645232235562136355153253412116019679085967560444867767237044426546229978698124608799840571710332636434222350559321347367121024285907665837685754273219867638459972741091236934032535966269157619669241597726608461034394997051860208365378901035041981069980569015408065673270868846408056509867063603978398546224185090641840589138569548633525826863635938955327472710945576428998610692285301284161461481387836977069992968806965107627459534429776156290874578107222600831259517343800448239578611766770441305634409461772921666883941369616683074590467760786327615930831283599837083483946965631290915485824626619279279150490394093733255109175406363882785741507873419156325236882502479871356448850266435994703250150526525581352674120388557622943659687369262511153935145937459791541238224519006451589958245436333435166550758798283933136107452325896660422300585643762398384561962762107801960950726498928837716238005475136978749799113713207126508119787154309819851089310994592779756557346149761769735534249088756493908553496876777949621111460996010344496066615589417965584702443694351054589000200485241357356295148417281248950028821588647479681504080695475145371632185090625523397735653944095282963981935518164020925416544389804700863143059774414638267899389926587958145239585816952142835479587877720597777234118941198145157562376403246514630939206310863364334882553936754322695835989548708839648923155745512596766547613893917594402501227881010365846266135168452305761313026788821983917049931916390067233239631210336229827404100325424331050014732671838667950168513006636925712156919849234640512338732844287221695385847490104035791745968622047743068483059620903473677951671730892754567987753657575489675191745000684881616717985167192390514039671638566468367509527579846241585320295467900765707202580774328719871234068149951591954028636985541256260878029532384603426070920599503159776238461248575797878498256075536341691216122559903189505372534042710713360232246850244756265665028038067544663684132466778472246158110060017202078523038570555544574764484034552941823625101845696510775498920300169146767653740766397783384560582480273374520797810455733715607370389960763871037504756930970975819448229121651018215891818474323374249236335894419496195281708668665396520157877844261160031985322936390344983131945259227350233686414297126144364900363565670142274626669854508211169635643582333816968558600581627607027943990747225933084904867905876514773344533192062933061177031733567088799778756850283454064450735818403178779062011188546705444570172886921196933887546220166732224841451140948424981984222774208137214967987752483875260351038964014278577265616343695369340134751039022037453637293721521307488237554166128127107041532491996625381540130466969053930339020368768018621829471398957289545839412626035733293498703543412910174488914267340289320984800542421754342128097515753088574458936656304419496238281482283726382043424684553002827518439081220851590249462185409671505551295360202194125008437795663548384388463357883987893048483942389022545602537519477300683571534575109688312484329267701237071467528927016570795470793643092401318253296850962765865593718198093117787899218283149180675106118686192124776332896995018341758354741920205107246709598723346782063111866337363820630453649014443497194268127370364434488325328694304504631824462308125465319045807882066372780115176404371343961188054837184891835303734771858197509744006663784808635967095675041563093193630231350602963053159469856741510218554443481940889444390605596573036931813720191640151645106062978412988158347534880630576974053009078440373057167761748488103057734198113495127962383598871337825647152653555778981435852191923842085385823043579839040083191921442429313150789436215289514420223600924839627612152933942685281152874226443952035621454288761921768512096122723015787101686842152448650982156323450244409895960345881666240128746896061958985963969415307707105201174021543076642491277801098555510811003588666838733687211705592838982447572397151995667260227125045539756785491258135095707762673617877762775825730325545821203180884273873516260056727797531686975217868810330636279882721887924253233333441368013546994218185543792724092236645391580368267961570150067700635893584148950316501256971121033631712194698223529969794186461465148723307930800550043552548769445852707039907795231417082264577168848447302436269153583276811614146163375384803090047026071869248970973191075468389812342626250694832619709480969219345784027111027710128641075442806059447079107205786035374527479220444861753286421204488259391123297284202785882964247916835935577401994123020635258816197586335771934290020854092369041116366593800011641634613543215427030755102545123297404273408457556710778268201727927428117477466978886549819258937355683260495655906361923076725863964310300240587322305771378135843516953645764209162194849560123037469341207755728070871906402344432748173838966504183006737362876885138189542776663697209496842145757580806619742590648652358370910148790209676357437612337495251722130525117954965383900516411617868480120467758914186990005461780064234288670410699266122842568244849192886990096733803363018802248773002146912442012117074844098986461945467251016487830672981580550477374910849265591637235226855943151503132331741938402665964961528728933252806353462476911632663441409916721102356339782997337569659146769629729461401192733851712776195366042551730239707526071816349236362002849075704073541002670137844566514003709260815720474574188939640061762032951174802540655276457830852851212324071631979485164788818081787812514015478060740802206308476464429529883824566474996232917222138871073082025586775907322370844391863620880234882108646560508182458277491029734747892487696879256103492983533539646192539319611681748824502861268242583435111598550796000916995377171491836929247463737700578336074592520710934475956745423090014290385809052895270837934008057217255899409717069293233295394809173711140924069503129110578537890925481836632516446401091359474988023085587857191012743941053237634294983612850905456201107752762015169908937622991009636002978161054375167125727232063952766263476867818981057232618970241199764478856476633823369686610458295280593051023041085301230671912396360759541062610972267080256713121134860806007878220330435057327110319802686379671064223809038608255199022202644059353551319219508592375478229138200850466666306325169462433512301765783141573724750385869796423872337047770348442570790602125980651257417941108424288456512488052633759021968745422759771768738739616383285380671707723038168029938220511844373012770768725629130080866762167254433161442144375702960163745646718975572505896327499415437909194672091112190462181340531253658367667179436564200676545301687240640323098580227833930160750202179587341002838558012395176601688886830232753769714376554636594200613655207150977560086431776367670790727619775940882301041366278298202771685607546160421257179432965720085977068056428616270016862672174887632363753557572036761990166669812222667833403600880823469562688391355646454809083599549769156061161170989280934157568028905958886644627235471876796266881415695097330336559499262693895893497349079173785250960226011651302844102733270327041408027356533726236523118537353183264126990073207153086567277856164644197870313471590220216115267011134061851869318142060947259301876678496949510075870563376054554741072249833317477330516499972063696320982957350489017601613075021819544814466952774671488007970506976654318190692090151440531125625730652411362891209030418931906629984944297646010198598876174110490804416486966870719926087536286158661477794577768684803208509883016578063366107096263200692188035002867000985616151427824478865221941837978257661283315216263440742102703752933841343301661202189403838342915097262138532967280431081160934551115492123109558088231028933661442296176476512754652295626064318993028633263067591463866144206742193591540489892800769718634645506070243113131084902867123830308105243336802043951653269550635798163147675251251042721260754130609562274864345820267127632750080693296739890018300171190049156707602223253293697644055505019822861789452420507499119625194099052234900547858764904499052832412817008863699192112222450474490121196308524963176554112447210353558734818039712595787787625155414005305959493809662157659625038916302325232665016861343499002369235201717391358051283991951489141618541373616523781118887873901727589553428966103928240017955249413724943163324299561044456082832898109792760923857927543102010534656487250056055642451669757848794052342684846861694055165531379108211838223888815092080482177155091623634626659843265631363828653826051891222195989748399030404276861847436259509602798158735073294316770137743298186415915632924263233968153585348871652187066527998103216725238139258827292912217166943665005927881891918048884987986712889452025383765528947274884128018776919871013743397797095512261434823629461311245403347211154738674414444665095424287076731568446839197171234453370201446136869018335310074722361712732510278061562006839970306410768830099558436452770130394000019276083985316394199400028321506026004644931988443950872093412162479065021099740980257995741608228959655938873318519027720367114921985454644522198829791902853120751579751804164024923858334538573872280494540203321043287488390716609254234504389253289852942445334869608804431950504547015602118141656796865384562127545822469466081221511523076383280234881586055842456334453998425033217554016771071564206431941158032413843476950134474962432329994894337220465515307009625067183928628822587742239552174309013905128503811805444421090731816290527178845602729927201648909814928351489699291112879075971050304567341936834225758291110647410642457309061415334424198891122249813697517369123619110213117742478871231437219636705243175785829128438255465706486132651127425334683149151591224482171063646944593855437744742391616664056967141106235084013486877860759228902974959578222784848414705512803803366429872693224151489608881672504927269485518350254615907394694597006914768854123890290439935053807742788234332695382550246327309186409079270010988226815212772544271201441421969141834773225505052084924303124003089224375253148148912751860107971264772230042200575325270310956470129780156636541373793993840390313793112624459794505434823724463247299236957606682366285023965845846258728496430972141771466796765419965444702200138771367753630866793811319325470447821872304334138988677541931958501001489171891213775509225679627673642584888264217033562718182403168503730212499042772728948225299757335269950175769939874696105818785114104469590547707199720804631632315270716644625916532678246918984952391114683638249712638723834967177810372367707666938724652767337777323501220084753516051340645435725236381838174767136024888314101176804196664746036636414983702689534585915535485685251351709667243336022760561986485398664812347697948133659429253684475139538511530215945301393644632401400430237087955147651896650359071977432347004056760198793739352377810804357372307936901084678642233322626920212954889312548765669349371784634520008157938336370585778454110712685653788894285493819700986858980212406690669938512161065095421252864045666935665906243435681037074806324998539068308901153414137332869886162466100292825912152582444466170548446981597203300386148038457359453314702140809205637025320355861380399445967724686668729606313016708692796578176623343041384844498674868874123207846254526177160613595078350432674671989456016178417952161349498321435451273713482861652664492745097610476428209247565112936064029647514955950313636195762257532583342977194410016174360575190841142159668882465080551073688544099321231634846400808186424179773502046014917733911209311092898660453837344478349693526125292729851631032346152096748980855132202846414127165440198590273241699357102232610422927949246929721639380350599846352139467480268896394761283374953429820042717238390396673589143553852903223799590065919159754304232587216735428084399974780123157744416626610951689907920914441964377371935375305209466144210981225771601521231367984739430088221122017432381486090684353329812206203510108297228090409178541297416684047355840502209130464145769296645929956937648652673623993277740627873846523631147439404582969746624495357500436903282826253365726123444190605901996637128037088822220977433586346543741466470353778159338640543332044550000237005506323739470513160493669640836972964258552582640592968769061131799319895845388699113806988517043138147413308434637815990613951322473229774571575026512574232216166229306819548751382037259488263798446903951052605509465926222211371140373088240126896479602350514398271483356400237306538733594326054390982125201995208176013090097631299595950820572435467224317900910089702863376216543253583073365803602267117413013959946314375942395395775350134509290121123027269980474745920568515807769751303552509661616778175275270794571193246904701577437658701130659578592894571272274427534254948790385850999852051890048758209054277258248325380011778303989870450842783958706827190362977603528808883044299898121340355350908480362289950989631144270774308216242126746420434359957877902433650769217083929624958776806895734751697235186071120971922374194861581110274402962392744881566835556453104721821934176607226972337914656418375064643751513730500852773833691399482940372579194660754420838155772950372532344221801764205341315057257733345549992827197974020194182621830985784495625520051040995063086253407372122284769679902018256099207513371930359249675904940381645410630363010917664692996583862627485702460248370507597861059502944531828108863778657984739476355475034233440097096125394350911997329650950804472528792568455752960017892171816376446562577391852321266836408376462517661253507817999122754805104250409687688012929083369287871654016238693377074758859934000760966779640481411162813906539954924726183962423628092175159465315437304210331951037485956439263448226133745980464751512277925062401694553646040845796315626549172609468433544597141090308491278085220022909288234609130257281018659487926862254425211791649060602714622617349125630414206990199990059247330090899184161738727610351298263495666088870430173180562443716945054457629548554931028938303202231197927235881966329980085816503044843374602210155007660827460063934713642630113859101562087221835843857020899260818446504687734995301805158546943768383782136050657173486590847010593918532448331880088467788560930973081551607046541982300844048007711296730570247602717447015478943172035103299876577119317586637668523482053632038968576654980867198710310987218908835655533683211817823204571162933337036344147914016200247646916666400057816325995590026108798484008391008466966074450870743469117229288599659556404757033987612811063269618049897970773176139862270296982379339271904183369133791991516202472648036621779374960080313422036596428168061775556953606291997979328850681952437716588895611945966004317924962213276530257681188969059030679100067060799598756933751981112500383937340739206911712169572459318695047698016582441822734839540770214365692954095764466562543306739188627205309280020358767615263108653900449581008067635917755620772051237975366128076791125357272952916831843416039559160197143303997692276692097790354792519631833371031271874478662211287719085196170711678629839427936083329450039927735628020366352837617623188108509034111179435058876306231297835573540688856036277564309377375246020742227729830568346531663276327493012513680976347030213814436230071621480269484415207152399457672629913456369162119020690641691201319144545402629915563492130521666207767284343450484328082111363759873829267571823780655236129336663571183841802386499672850795585250760870931429700493941809929409502564227331393678365000361778012235094977716026341461775317864908223168018756974290578829091543364831330412731168911393968681425512628360852028204310266696593794425440725917376602219407854967607736052597323634229682912262782518727224532125087822148195782924732188476109991356035724706833250038027038488934606405815206483890288263564236374952095326346699901609653901673284269480426549460694948519822099872440364473289567342939248054438072526585415443113534480740949313673401860153717874196587269763268240903553047965860584259631664361782919432862123191706699151895971250084145623898032807283804610777247407265943299662482133112098402384967454037436343505344057446871862311575288063057323219663698826674611617153374678749856738965433722975683835369526328349954647515867434041618302289768086065538085477043892434981540162913655683861352738453561650324828777066640628614167036437948153716302089473460130939940821946131926097768406998577759016434735692213198750436201816274706644663628042125299651223187800054902967774592485271064466528942665511800788664766834507173538025419638424511334084935277812393403590239583156856317505364809191452513672575480695954769586700416286201706051897920625344109435560757547832021527857256402183173211378850313933612443327081388248045740306385033992156970768045701549771463370592676350698631482582532709704673767186291674852580793745362733370719291370524199199092851052020997932406137950083678757684843663125641009784984362436957411800288527112808852674715784106462347730734404760431477190684923579229015823222230791703722628738184317643002866301085092625965546192352727619638321281594783532696594905755378640913231090250846599440445765124562498642496583156419101596951917761483706582251029904161150794794319886756601072377471602944315729555793982254432197950978804996436248487015229864903459737126397138279954258686681121003972827305951526160014118804289543224970811975996012299608975515263539937500683203704823715169241359042634906498726452192501690959050237465432364867957423749814858377842026434019956364461029025621254961526406754442112839776377376278386388239333504597756599806447265043116083465484851040055314589533324572130583022496296416625715712428618474432272691247337141056531321237650900092981120973629192913566543773711726660959940070379798309205123065822771926883395992457856956285503063791309783806888267954686373275201007208103246911833877446381589005248332160739848442733528144351546852095147634714902575685639550356978445793582218840294388466126269785217547591446547138266469885570621867559130951292297761520548986966916945701357699287360939371738014388341954399177101166383822723061082528491784556896925201028143941160922532984029786392450982980793578615341595501820464981696796912820894250477432525955894338234700911839067969200190675238118807488647511646796794286433677861282672170765658214529422038045568529181401584043497131319017885980675658416864817118443494806075801937835259380739849896559261917970772248297926264525039699718853120612943244078953995345779257214758678672435058005790261391551099197056057687965349377829418577933287784749626095281452990135183644958464811587243556134916624558517588518460243441351026118445516487237745126381643688133154095525438246514833479624318547116097459178725773163533379921597139159993368933653570533211983055218971679664655244062712593934504240419420502107157915890163105472185640009979516788878893999766112329169240832237491956859725308044306840099215101020794609304782927077369759873432709774935125776361170675891308161597967153866886869846781772405058341866959668768955916288393382050757545885110407046189030328783874812181559804831254222333834922606725869631167655038558287112441725196551562261889177432990366238506336183590643098619348943408634659813450194156869155462744885824034662546787373563869724802320599364586042545388471476614349498187168521156003813536924604147703144099089734710411252675733076025944995174102197119139744487551088915494624680763396601492069401064582145085988578213282465604129614274158671330500217896415864583741917369696172204632972037914704753055919533881388471026451504098712330950491625068487937350180141312207937281269904644673258821464950709308408938353060091544147487816991025240407349526309111433006705839990361592861949967565353608446192742997326004581557366278413494154609630522222076538775301810383085495345195849510310552682985492827975683900847748635073007574088256744591045215191948659251545545514096170354182968455202365818157399566902373550068698099806266849197884179550608422548667181058132665137027623441346202636206600009838292215735182295526709333458964783601748694116441252014488634781629582356880988633595936689796185298053410628743336545931752179878238316220019181238526287889086683496185525458100074043000482613646163646630006900515838971553902853629157830519280987895483039174611249194915341721169469764674313721502773823241473833131184638633944224601740347813341576226663456464787524013675864455739866458053627950200563492017738574061340878495942489940919834482873741562610339665729802885256470697898906859987167197833084501575259112088163977233891835435209742801796019275163127135036955142761586327934400487920207659182025803158190732092788404651509522602739840157117610616255232531062705870115240308298657424905212327194040391266457451858141273158094992843571350403714910139646312296245253258937312473279075803468168379552857392664863096708188967410710216575001787721423353529539705155273601048103068794429487957194834216061905793446732678988307646781183926222769012579072610173706557223124989221872371376359286184614025022203128102486046702662730931986093147005700049961674694429054359572769512550633243070608211838761152705420988435807126262126011106221662174111300188273396707848326774657227249822467681181059930568411982981930340235802654467857258969473884353657493727973112227472749226454803047262661983563748744920109755813498019320030669609165115706607327797825569683614108467009133464206791211722517451925444899760815302662645611104693751194767535589236891615510165142829587568777579590826615676891251386026709678843339906868154647347830340496709696334115180732797152292624718810231681463572037429927467985598928582656118394856411552428836781523940055879502881026243643623663739921693872060181939353261199871046376377354020488409607270904848411341433310262150342482320387117005609872627196942576493247791917276639442519090376005170832326369935779164197371571022168160894019580618610670301235109061044652785623498389567655939951134338270880007291484536982993986648884116011926223045864585708882661439391485499126721364216914435869868915849368325032453870385943925921646341242726603280553055866918279114393307879807506507992503825108810837694489184070297435891961106691031090917736738767122607484120411604716652830508836254163993436036094206556148809428531946893974941410596330331718290534554939284143995663858318973769884073902634134469013296373575367693720834193093738340430354296655970693460683338446705458154269215656839382106547527929463862100495557468904099464213058091422783599025667411845651649093373567296859485520429898435287500784827461215864794390222570382741974364150684475056438170636584316873931370735983475451951338174407353640006142497190824232069754039229313341835311739979489416114201541238013664872092328018142837040915135972978043177326112701170633603831755082368742011858575171550127918323001708440418705921282476721984624242276648225424911580883351793394590827592221424902930979001213325054310919801796950529685671559451091020527608679499392262699851566148361566823287221627087682438790739251104391525378952594602390628956933683884920743984861840626712411988962098916959855645509131543457215162155416091363562606381414846104678092816196547822888850595212453693574277643354371336768038527223453986522561426094978692254187854184055980122169352532911325411517863368859976264886342683523571185798976213050911973453081120211332160434936801242150187231477186241391544253258955606804181450423318415368450014614661108784489135314673539738484259213204766784354702026924699901519086150376714886697147322302601480509909864091073127242315269630762974542032699290916474996822503412392828184775165362621095900987779852094550986532337554798265737435227268124629053263291650505054127146390619308908987929054415545157274707257844122428263768214606555346588463980448878539732215912508914483739493980316708300697449712105456928488864254316944875970532718392539154742670037430963224710992476360807538584815858831806335109466499868192580218243471454779316172236531847089785188329724568340095437652807929184795249658433723398939350656369082791291190309536861983316220481757316841205310979347942861446779691327732189207505269769067042643285048575948108637966783535535473320329965595312672455846245800579481792581144112745761386996940019860544522286969807186165704957677144928274718145174870261436739146891875001410466571212311816767736770630847064396941637142311406434145065427013892395868062454163323158537771972969844138162201612980570401785825198701121282028034434006508193340590675341150739328736140569475038246619565704780710582845215031537155120610518244273272833602694198816049730623988966388852303828628796439270089907238915974635252476027028272030537694968238153898629586110621145815557060809110662586307934046151758928569237818565185566208465048966070775471712251151618879091426984151620752009683427034899467336837428082467806761165694696966948936756616357225431384142815901846272067970059200849290999404557636765580417982983355011418361171578679510131173975841029801002832177750116303781745522764643964086131603492614268140855869313874703335116865051685358728664803479390120505716128227647222596501743453711970886870954368931340224641146209706963576447886584291876905121525154280848067338717421099430755508702803317223901843232351772081673823531477217215010723990667120771583071414446036355635262411860173693122261742519468289702104439009088847780277905436257172356161764064703050023905305243526531595115694782876502908983653444578181173220902631854258723185270390663478690078368990923070320099194718819207551209256575714043485562114579083334538117871855729480391728558247697378721133404229636709335240765121511487350270471100125937499736648992164395556925476926807048202860364102478606295367681210068383117762702898633021891981930727750797899013301671560428540779533405072784333760051006451637679879709719911106554356003039294414159491121698167457566720300757927735080025498232541571705119815266130885108914792434561058968669693254392581425385555542913383105178968001804163751846993996647340052139244932288253353418514780111961031321770263951182313912568467665618088219742892612590017494623065727004321399257989275060177999361529669592004170704828138053260688157957737873868996725473885200564317828061535922569592911535484856794607139140485666605688760926826394025435385959457601027539958384458654946912215655481067570542762029321089109792249981739797883015407396437815730775443644937718239471612996388276482276804461468648880089137261265068446342420130003387641591971917373774028325110350752554872688197616555655896932347490798800161869505718632720223618704476172564783010660673166848258060800638206684817914817487451384122313942969704804354318995816928035583519659985733543242251248104203337257831741252931467996275761416007606798197477039015603054414320629763047406722774837455616771918337647162416990811803392850202879537948888638651833259653945926374104681989583340565270661221145982279758408864894085156468296403229152580589003141777725189155074759367077188686050402271784705656197818603110151242907514038839492279282441112392163284907240026048684491589106070098941718699878202219032137877276272093909708619100323383562648788450980261769036995387770929302000889700415463403210546432415215516403976687294797530599921098752301679345950646716486429924785636040295337049252075957193714772436174256395549122169786997242132722007819626902897604737727632182033181451204154206247479475758714250605395792624609240158884165925610450780207394165492930580599939875850822390184990526323085424158710785355729460388212414659946158449416343204837191485063550522733346903846230709062484640103952644310452521203127130780760476868926659332793770384475282307688295405631199169548759878376393123101201807680202556535161126928602184163713513004555098888004974111422771204819602129559094036856625141535441974262801453236575984072372643434700614739481280661875193939113975759960624383771071403798275599378749428496714462700690617929654143033975575894337364223677668353087557860867192028775252069496237754163976870923563265185494775708036546320352347267313600084458147968230999155041236876316278032467506142280042461430385886068907627312105552090243488125248995160849458162123554387704457157536568221281503274208563260865984996564823783374511717062295623529567443735292120905156332717132426109946074545148543666849731671823938621406114691543079717848818814212591636060638371201959405335649444436677357055786778883962999425472173808850884013298662368411978052336942267057336482595605119812866133193767582806861445923926429575872023484200212367156779427406847528502743703518249380499548315514059455352179650069229856438762600525312954724406961867612378117656669593799689025166430066052132157210204377462943149190168535546307776045552799462263323574324520319542337710580909549430583475525424266355492139258765225164088975974366669010306339367487258536329552383537377074826982847398954797266309056495509041195081917941387497032455970194328588470776902523564150409896371992421365608449002448724031780759220947270668997895327067097292249527085934337110739958637299576960467792406751457919637649920399052644363976968075170892765513747698922295110841210599084527392263056908732226141150359940876674260928881400512993436572921215143860113645710887677492698004966840961201525555394482606418029709526632275780420890686810107923543690094960920977807909641152387689158169688916681765669319184356351436156927940864723938642005627695742582019788965645990019546904445884531238689678721012878266309533526360509242701240764389056419172338126587726893511124693863071626847371545870620421492759353257590445182241311514874876805910065561067527395303292456668284722058185999207500940813922832871218170935084405383223607231419761612427802385482202409786437555456756707711012736765114219347545699028219984440824153033738501541996776259601634543485023174413107067819861427990717795235040835266225601993820305634368155956684279757929064309402464233012649287626418113490205074991618428439911126855098192527554273889135263674418552147679599327558284494196941106639891271583914087635290660062946120684762265974979122055265460293829672511145924447181706293708822297249651714203820797790937609340453013418211960763697309166415694684627850108143322017698785695654638239025529438865611366033327269842423560125745433107015782605436030062107928749903496290242787860634288361994563558710189971670455986409687514305331827447207381014055235883860200611061850284286259571378328476027593982021288603108212360367684998132870828845771963354045098928858778525915570872626236007345994604367689565670112652294732519018943001930449892826270853689724580421344598471286225385015506896018260042787542034410813681270646705664385810728865209185273199832854753710616304216057717047021816278481890600590542359709020414874647101331407840887739112632227498739035232679206716089371435160411920199435319210564554877991898920116725858179319761499418263974219894714502220769637070020002717062374200576738003379904046204904298586913747915092115608068622119064018046920609761707992214355956347791353860606925275639375602962715247296287870191303482044916204266843599325826158148860545887507347806859865525880438102684664196366044986889896217532905174637221847477572047180286618027433089579768415650248789359337404059105691856509392733884615343402224581741342814144158550455960858298794047916503133238172836717251407490044312777276294877704379876260530589770422183306395315466921136149467504535300748595312632727497124833167149311304749046394163424890226863460331044752897430589337772283965116628349696845642613472562831576327330009101368608042069135772067047530261108049749711107146372162280355704055373255868997061405214863247339767280837851052484115526211670355197378553729158212117577309445976989686622473585261653444520697354909242184875749515372390788106403970158363193746647917917319076787020016095604673102491274928271575674145188533404976197092783378110864113286968029072465621677308486995045639844312819972434911393539084714579995909059951761179396682276702466964357584369625665063398447809525785668259432276920470620507953490854441146318634659284904683027363660346131013461878042284917209530926601514378116402972570188719533648284042658252688390191040544919479881028472752893213273442087888299151858020036525258021346002809802400337674399632474223445492972410188908572581538170826172306002074821405140139856169425082668032459565461686185916358450590464138828872519627946004718856425700110657594012531129092913510513284960456497715920179376483822941304117096595116323239438421405926537890266159148624642664007255546950677742388829646875684929336001923199261982021502609271456866932977540329597022773540101422327232187250401994196171387623783356744340752580174624431310559097207368487998047529785973769395067609367609563489745619606763680201253870146689570155166046185534168545329863300960285657745521532646664501135560231229860169040037817793177440851156852624264420009246928964361135440174752687397757841825377671115538105048736648960631843650920913496172240966990989884423190923394237990174032427286799271775542827415136213542870815398349549748854147596167624647486393984105582601838197280776326844135025168851337163055353306233905158710712162716140261235123691825899283138936770952135425119590556274633877730832313862073157577036419874035052878361835996797289811042377301729617949409901973247503502112818259911593174031352837859523443005062716169987003022211570551559681497549471380685552193846309595416896112982703051003286918842930998661721129705995754258202804801446295892090751396749081919296773860516696612989669283268181081852762796692277960469894124282086169788711123390693657773117756417030345111137644664076606647607035121239838888921310172371476231435776079058879071701725228050485431329976383230879352193592128841972351718938122560119642832515216085503897300228199783292847079611647996916566336024568238220555507488720809485102373710831303477894286145009002790638394405810902123515727677378833999846448860539422019177149792460982257083263715198250679601848344206148087888442000174847484047265516285032222296238985661894662207144213067440913567637674612086115672221214616241311424376152894436650002630851434930905443862186172968263643810558605605575434807443487890730783516092245380706623448753961885699450795488322203200161171871398070200014873549957594176703736275708553659337861632275224739256826512812748316525220360184992111633571670481443201227859029804442102947315452862749213166522742439481990921645068584527763588130751959554279943670973784191112571318730188485583179348758732731831390784191469125555478201114539394703090724840864708806163431206124707464440935537237562823395798107685591666978173572449660331473119465068145282183187142194194252847512396014506014200281035244222333819809631955642890202307563388272371983995133514918621839606161499860136707996441039620044054855570443792125977865680603922461126384773266311852102917189604462272230456085433085743880904860268199891414146100720706420762997102722982926611829545934748279988635859359250311549720779222754126092785393097191224026051897785919107993266896629356637290368312917815506338790560598463695013485895365398870011984871004294524564214497531260877085653581373779203152145909961286088323748841501286074428362949658097119860104493783837752890811780672573905861834276905877369775184887539377647852221467216739001997962660518369923695013677078438771297461370377947714426327809480326693599196959631759069049536003673158987451934289849992896119267156847030352664198152929881952092243538362404179178461680078800476257067413034991081097978476905128797716618507795245465249291121889193095889396830663444399654298832352847861906540885290343812561273724462727136373311998732446143541054998805430402734078169460182559332671892247076048413007005810761681906876365082236750599079038916066468298223262523699445144321735159105888251509606865517206392779014214432889762441799141419025252471464975148990384462128576338610088164511399362868822277906857539606294921227134203602515153747247897282618928619717812387334371817035986995817609759778206700228552710224901744686526483732742978319481031401611639886832963449112351474900083955603407057040414819686817570371499019415362603642812808453463530006253345491156185572680993299805080511232490287947085422233347796267854007293312556428552348702462972201374543447203066646794721024846329252259233302215810532085206348609270642988113266314860882923311302176941846801563429877804503212676441704911171208269058064888838791646657254300845730529867402091171058856107702259150197151474528004827267235539312773748284735656530109961009484621119144475805107867645965873647468510506788480702151843186450315519850974467613865072230205292522176492063423615183008102060450117541078431936621302791751116342425121826945581720361336297421051967088271473310932561780832849809124205218949144609879107812236612567222909019999134842787228282451953550433850671666051705611309470132777980851626784499560287558375051156617467083896572718133246284468516853395080775766379716537140636126016446937357691932787140742406857718853853638258239813635653577987705319410094887708805402642148557994651875142310940006142456536242358025635828645309658212902044371264982354621195348567505351051534603394975446138422854065167773476780147803894173579954779243701520572189855605245818848119379957576540051107153433514406672085997405958585722907075565637540108845877969208422295134967749875296585872761182091575371913513281419774422874476203667508052745508282176283933340023921311659529989017722168704557998907123163966863805703621494482450790425369901192329275393242434940362921488940079514538469786689043453670314785126476770706573711735497028862432431351841475910350129158491980516274300454499490576511083225826560764388408912908510013957800359974370995258398807527499429575421040319704492080890857185214533236238137828542625641378391468655484860890651847780198209689768946230936532421130792269889960672878762846956912623853622349990912803154121776498551708923687447675450810617077612219841874359701136058691847586651665514205033822712053513579026413809858343707874183362146111295323435806909384513118701606621962965615527645868864352264045648848816373994822491439681599557479925847276163059941288095826017776304027131921082715442654623700663983365966988415229245863587665239836022917583107134100317184516653178293825060950818380880244647446583988471234603058046486969000498945005470293304614844572903295806138693600225948270080312089184103730700704624081589049234592088845072248878783013555245543018913974742407956057119683205830758195284408866718374427164862315502513544802099657845066469512297805601528030245269732038346155222021623830916250537955255576636645355782100019064586888225686566583102837610884985243159539646788686112252063769907484403881393934341425862264080496259949745268389715092853961426996477767594145920962617476221216539032521380034026623748682011116669299723589951241876454556590829731241455571869556677418666529074835688346116796345821731684408775064897345380308978574126201745067996761730024999729009583025811071552248051250171219861207836168589474054897316288498471907776200400922342283119248396927156672538822603069904265679850747411290492241323553780825445560461628900872957040673637015966315707355939126065728401599283103788385452222387488629526616930192389641596235965202226584582282293897499676194009846222940785251863939077988229120382556141559355041946884101011478496492034922195321232774632771786146528565539865534909960682765233616143797185868619303035130991203069965734015949465435810839764102488366066251943288078859069024321388720612074338432765820790711589993875911145004312732972053727108216257943794649382240270517578903397614140190934486563769205420726142211975243784780093595692497499024290719344404082020575453531466414950949774588164564241988794927701613815931804792901157170503770060900379850440419809789598332460462186577199028319692763478595482563175591158981557000819741043178472691859200307334637830217089287842164348715079666127241400565827190486370522802070143255459110118414350801467426720169144041074959361976010321667470587325116058156477223340054882439910384176929275039175286225994990989607306120123088472803063734221148528373850211637553142785378906740894637172264482938711909896791061684461582459484362523470031202885080186461927281699841425026059552290470155927051217693609837838851855888306095860763061243252214690896145642311539005929791881078500053911399351294639894662084430966312559189776760328570366540613266874704499096353365903370820188117126749681374959147917774733773388305690248860493498052499573017459603302250107865992484389427510535287301698343049496825881768604684830842743500678935130928286084904955251339277299931537088546931288022022324740045498099559965419674235889287599394698733745169786042325452746454664753648579241318949738324396797290863303038949800893185864568583412666881067100664098133298118276735186932319123152859292683912217474199725892811590424544392755856261268117588388728635613560540691796168982796695015171265098238727047609103021817348247167971657249281123106270530825860592094244031463804690468227657743944416568006334836465940286239103576108162786296741383201443116359614404281643707254036144344240894698106228364256154047247104549203449875465082750565233819001800990489565239088985817847962583309213312349133962668149185536505346242505022063596104894766541188499470119422019770560787919100601881898077726747698778559807674659058960982727726486799737545241032234024652993068632743627766307196208975510359902082603024081297476922710950676164339419415246595288243104049633508885103871853672796581322089535002086275135640852620758840266710793223809259699047223418975078020353206262874868317977054313870654920724815320572039128088445831075393671427463991664494779580974005227457027361013792832347168546193937899496748180169865364099597279377392176991374743481573418481723279074748993612615346028728630423259718326472315026721017460692257878419142664665927218983393621260543364861935883162931050865678143972625738657895738282269722764161100375050153789787275153369958039127145519186966318760120127795119603327099562240822270308173052134012120684416278657324927107197986004795599102377027556247061027517186419837487728988921848232644140720163950748271528128847893397953082005847253604254593517428129295294440192647119167085972067720457762962566196416322240335086910508877557946933878244896306360193014207044480281730769963773464848680592317964061122256799757281962059383164690375863787976322696143751910268398608526957355960564937916257801663411639722035991970743713747057477472642827621251886519974379851797693556772186095612951979147473590330696678764924102435974796647405865322042660135014094589014677925070601687059774268299918937321777329855964342934627289194520453362900466714227759837013712371414627028294193333688785175269634763094887504679517698874274823920911697004877075220925419401474055195771400550217954405917896687721338462534929374195109595104794265453545715005154461719148176743674676338996575631017814828701430940946218758905438404386005994277673011316394964486331724591920034350891747718863939591137654095340254410457394132500880484167648801411011988602365224570737951388189022037067439192218059152447505961747402486124412915039117870283820960069350438216530500913750454165625619167881102402671434526402486037102151567940714778010559368937913505280665228730179856089582311020791391437996464713071771714024706467816573611599426299227356659558231958218099439195824451608974180883794865684826579160955038628726352412171210535377605358762822514794582699719736089638934449304071457957455376543736797412042448466510692817052514459847951976440902504536823562673442618168659891503184687563637294209095320766095762886030084168259779535756137652560446606775309857155270417822770940449945369466454529230053072661829927785492008328310200538757455671217807243493093767725608275555307471849088886807600278698257000298637791258153305345151951584472027044798038007662807538371486826864432914450741539685053166566662248033032277486463346858204803281576635204832312620760401984710950742958196211140651898087474785749956821164256834993388266227898160360714316735195791327568466446244111892752195548372910248079924748090945101484945119531036938635586833675409755630622456892153521402396142449639937331131473989143338199211073929141926789154287245343272942554484845204530615294839537196077488003969421801672968087816902288506566831207865338079920107186667277125900416584187180743159205189067599820285185110181313706572162905895016677392730778571508545874307632094239356661752060816644476728265193492823622783689118988020216196378840388083360777156975324201336642305450531787326399205769135604530972023782024287483970483782885954798355319491264843456548964911496539544725198717211518989970560470594409996015950793783933981296681238925511797300180987212388533793763684811199245387756038005222109789572389916185903078625363029215480778351934624510456851912111093861725131620593300991399602870743177373936672956135232932682579832208962999952391283955330880248434329809333310430627454272025575932564259025887138063026140340502173046502419664252560909391283164044864838086790073121259027732745828501571698828541669079755140910164942827000944711934510625992017741612260549458312522216832197733956897950468632403093191086140187564184645554023548055471423421504585504755124044069430307102948709611880205768029030795356445991883647900577514786033051856978956507630513465888224589861727803184496693636076345169243735136880892529726513237261859340752759901632009303726598218205684270056798048437845926441048440354168950140654212445839788755681074213391196217547459052384298704125866643478284734789254420816497866717986250185810964143985210401097441730601755618577729489901103867273746208792637132166360237348952336501709382952901737617625186000463441183849532871950988770636222678513607526136466989198893970079348231695533912505085795101204079578114075375276955296312368008869546445205512003374247131126541158504263991909360991598559879069382396437393613483898050526561880957926964652554215843844902192678001775583375093934434847995026453943094713709858197701472041572965602643796048748063329481572070318654690250790673681167460991123462923315766597926918420810038715992848579386805939532420622724483542218467646880822413641552948785539419570423174059330778167775172335053977941952563561381530844079108086159512366943837340355426486069511907176770072817741557871389281039190305312277612826894721563956828901362282030742129499706830481371053772677328943129431757850522826330449098012580182402720826141614954245430748266662377768092199905137919656287614382500422920533701170143931411376005103319092212186038284126352562797657455322099353635214079156254389912668003395917332472586555232071462824317297060427242599378389463680675834608926460678177441098629521285782520657676883815625069644782413667666383022864420609163927147696570338787788858133030392888665401833653725023929849060319155023422358566092375728952725942312306001019344219404799074023843592398848373063596142341562682623946488624018152609039085607233574870799616945672425571399028829277449237398937738320052215754385037214600552593982824259091292442072643674973582766180363486372308693657091419682473232926277425466718682100574017095444676286006419629112184372165878276073437035487564650445371342130634929514005811445483291595528722552194526988385261909213252446627960459971659272338490037587014534488911006160743866639675096318490198195974732486558906918227548729703838532941853597681986000720499042254671159716795476315418821533819365229881700924981242751221068451197234071229623832102896242150863364857059848232731288560808444216824509884842783156207941420202633453758568820064197418309955678165982298950880622264779388543749280894820314703282643762421989081595396336737653478023869106066803813467776947782314579226723134007895939211171922491378476578552942041986069376286618608959165795469770997088345324024276267438711666299768795807518077606666332247297893653630951603522773108975622405211696146758159761504265084391854198998403200786697179642596841988787854964826349732818929807056669513112655134694725830814654553755920746236323748955834588759444860859210766776295341958802544034241283774597881387006490086025282841231577164743903264264884686226551618446791589804006370006596119519676466349402038474289277167329344292355712785776915956358652736050786106807827701678567308853089198974913871151845679953055138695653327333976139567219990026846521731200187139270658893022623614503098545378151670593224909258462825243573813467107557547071530248021773606695844474493431734289692796084239145037456068138456856521695653894791260997839393911731773227858226403814821154483830995781836904369891634823847825859179250276266886848214937261368643562979855255756481080614836757104685118082609619527837475434517720727626938286300389315485281476530377118268244682011559347647185635898562563802953940900110555175513711011989622116392743962736113498798734826139807210802396303063550287198596268909823430397283890082791072156202886442197035311127814545587803094350273299461707376227813314611954169753115192880416027912501596524105781240305372379680838259474742622833864824198391573533974807868170267514552171132766119946225709515909036801874473073435232580464269206820669826715158870004891757562162794287697769297648720729620207876106771628484338215801814202791833863283929554112203286791757802480942276125619984398882809471448164771477456816345174073291999969822168319049460195340631688278447983354932277324262035336797944330354970536816993037283502992450756528465788949256639298873873426692489753607657385572108001897539460051348621553009355690714275253323807276676349631150545348166238159073310533129598979983377147280286516447918648926641900234525234701286424374203021492383056025646550050682353913538119057792119774582575919734359555946674726872897950961254562598421687891653583781401213469227908888789275624086744570249092840770022068604726236164566186834184066178004226914681663253851828085962239311371989754053122088784133154968321802715678021867751519129166463547763191022820129072495549769492585886206023472823674985426849322789761559215936632310954052628301360285248777882469424336325908022445908398643984662406170331870118589167850292565164008900188640446421832605973452936704002077699045907741481382585973196526801838802423459674854110856913350019503131569112308034090127345529943942199940548008823492253334340177668260025598545982347638887088884347025916381966688087311399314736401415950414865246761423911645029885291372022495039114495201987452704851822340465088781566266857221536635291263736127567069623483361502920268763898674980688670163213794426707461079015395137517353475037679294218804074026199784192412113496920131860722861433618050025586208716722547372706906950579742729130504304751183754076445949659283953217089250147843155391835690454023189830956132971490150231746556975485481277393499132107753856161491122362120394007217086878770879053903760699886787723546370597761943779866003996104498920503454017499877721410777435548616736875833655572657996579330157540795700734405212250989081780827295258375016596623628789732408707912452455911307135568452699418331954332032866508796276904638560424296335185541362189854093020265429794329371772339998763637849390212972876711497017650543816284794339810160009378667617485467610179581220191462757057928753664932976589072797196577557360395463624042697750572597470743507095317496908637194266180473742361284088543467091594436835701804660771065667427230345063229740257432336686732115894765168354978255343326719876623090369696378284952823642987181834990246239974114408315813747552367845275331465006752122656583619559334859719425998863098149941321105578051082112411641621126841295113067907007890009767669990747828745669345471877524859405124921430536031494168386229638063806976813472418516727830018391712943572772201598859672585633200852617768945106565585266415761094712633285544515987216301695021781553010894720333588751058470009343975306666613307302660003370010684830847964571332560896095082267348017743859510119384778731211935310275454263614388856631205449596093231275680722149950644985006858530368705076235352344949625629700793086774992848973410371074894044583398577227366724785377491392731264942177198866341085249497931246659963145553693816603831140930860884528456987823276729405393808632524709562982166314050274170272206728482852347742280223825491820676784343896881950788748000350946718370069469028019628596212227958333903037866709402452063909228654841816887121120614397455266913887948635077265114012957645879491012426486747397809692194515180307646983831060525669419286699774041047816245990689447531862176888200483550853970858728346489526371919933878545931545808226301623597713223460114059385729405240258276675528336450577405422460208298238083454473728154858660432601459794430963573284710034854831697353177111462861301940090362194933555279964217691169925915563487905669240899407871825209155759095339777334061826892173734952525500885020966389521846821913298110077021295658726515774647154530466391336773340247136128472341304868081645025055905183523748692735365612208707466330000040249517927295855264913741989862448442725984506475989837278773148449824440054106267116952062386280903392928327318673148503738835018563727448437615475273495206414340846308552378149466068935701607018913172094737216571744451853174581248291744900834500584576622316321788487391301417171796721607679609113768892533959025992520940372416812061759651374376952936308403656214824841419771635958837856736582224085238084728561065897719806944100347975640634966026348023128169607300966969426960904762999806137782763950613207780098771714232363405269111847050578401102144671718171993104824403519298283120257452466278725170767336950958480983786928656012381398091480073439996673190015517414918382692853060217677016670626441322526174095297420074929083160402119927210721142957841497289036822452869102046908940130050096964406047554347239702223540351683511671809513836431398341402056351028605145479339563596966393052813506068033306060123427263198910280263429960106429333478567416894673008108851366025296136896751166967210416341018263220280441153098553715426399904933563361544817479904085988956882167209202135592444951401022758514947898842120275464274021127954518581261010272516343209853959445001820035401156386430155484685702331247421608153920062375516507571882369498817463940253681107590155319489560030811479354749000689167458364809622486920654435058909192119061196220760463418357037848600082272733275797401990393911502864698661246864512894127185234253925431805721263903050359218457768456440508181789309284436018271500297670054189200828360755112798462725596016484918041855148186531268401469438869403005725286933997190108859534373676408390256953497171508881460825498497215986795040735093238810545605126808440764363844055248480610237191315130065543087354315763778096601684481678816741628289069942100229572709160180142444909591554304016057050641969065550759341738010482422526561796275982199206803020713612624452351193964328623871759280279016868097505849371949967078690681189567871629945653128188812501982413544825624052027498891739952674502035416424007482034968564049191221690992711347452887679688487247200339967546756821445516306583303219829185557779420675164488467970228319421913364798563167446856523071708563988540553868201689075343773810710843118732440365973002885003691277015315944010056368955879877071569755381540840327509180093580359071112093729082341492121995935711416212587481167066287765921882191255888911669596486483793043316172065740217304235738291693479859282902508323704593157368163393792495309535407037869268339556885259123433205537058991280736970320018687922662666945557820990367607918813385537297856083419397834411701522664860691148534348746515747691596205145803097682570128658818191904434006222273920616358683934215298500235706535874105969492398807991908783324250293955327061019548614633255953980452141883428226767731925042156936768896273492096724471752263578848217214351675498256692099526681473888703514072980552591578693082404453656241661097986747971531765635553405090471252683976166414269067946018689021819112167702206534050189522766157812124132365808267437811478742310172437959439315117064077024073992123283659427700291058044398593399042500144416235016165839637258803354986424313834693692974596335972407956590983465947093012286735560413321248087478917818924710610326894444931017016390906612899670019145356224442774408842885627829788934241372269949507485007868273268762676934679856284714896677138638945057202946095402978116642104525711471523343583345234552484806669716709874202458494334554814859393227452813899719150751510236970514996986408278318085055403339132841604169678075578112213039692787757106030043860857805629704079383513019753285291430121506786576011271697769180380757845055084247154409188844063424284229319004265347067571167212599497371952961880524101398057449386342806381336718235865445656893009057909024649551195627184567439754056327383912733443784445343174287588295187299074074001232562317180856450089552092919841045827958567581441026807622416574933541715100088969968081250728009386197085014624580216552642373608709298397189098992301784180364971855201237094285057905608687925178109211489483767013435352189363694855764114858417296225594282735213823553650876767992310606866388753026934358354982114262348242602468422481879538883862619820845502626866936065833769301151437080826810928289731622736757709351507234085690559915139261870055293381195237352035745459195500444406252638892756095508981724080218888965976661289538835559947407770568415818030935224540094944360595996891043080764346223282373632124967668311374887135186600605140388556541757531240413254461972285266359580511131375671501676141271951222625972123642746209265519873335133722194604719718006950640464258819070303714326003648830163112670135576530545973566699907965807078701568010779645338508293478899422768071950657680323189520010465241541714450137465571799148650730480622370737663329021013472185487124399017255905419177655279530743970210056462584661165257705758015865214393507096742452459206569233152808249158771742705022898098067510861022468523928756669207382455073604944783399979173448803425977911289940956444839271550646486107214249104290277122848326146637564314512500563752681197102133088054186894689500775878076258059767321941115970973849561557083446306733963820498121143833944196511238773627553904462315411591927905290862972493960456219986604255185455805927084282528859533135375578776848416670824063594536027624115960546572613306953855286527309353589153241754998686859164716380777600259957667000014766442293679678249774962363820165225559452599210521893196355853036715817520520070378795496944696177770685605080700753614122433529491900140468343948053411907221941000477034248741389285416496627291731399717275182860860367036839789406828921127594786043582238422093987452829185574260114919211863280505143816669809231669660351431447766133553429036668976513363971100729050266432740453670174286635432813515547268938334305237399183331070799576947730767460453210242473280886816548572398055691455632620812179876894584423607700728135518855859487375277320403848066146245757541679203360331697866396481427318673306914932674606072277032655595523615081128732165291348464621182753724190607367183620734596337273009533671640356828798132086075166893455873973583411648566555792384276755969164253138146925296158648474614059167442969971493079442327676685154105246204832225974012745232009968543179004655633405973355626469158264896203347174379518651196300261568739627347570621453216074791750735161322878524318108475610398876964838220677363819671165348737090881291066522292153311695281746782063621871487360757687769051104576606838903469885325150971534993627632119972167689589655189298740119462703804598891261583317589048275102881499656788629135193966455742281173526964968111224843911615793169805116582207974596048492918908110887384141172521805500111148334017213955855939576720194036391091287138869185973905016242367233275064139949403766883951194768227009354846893589662694037954216303887832258190718024360576439876533651989065553816545706975112795377540844402112481959966386908761372968710600444569482022888188881585613105776479513164514068500444395764849899491543146890160945880092722306033062113036356110004599879300941071770066078160990994025395655133816282256500469126108737123104327263075969419719184080087948376255107755880480835932148425480611216770996982048458498326853109507569394236805576304854037258004955336592240522045424696970996426854904186766685837137556397527272216999637442776305592636935463172978922545174206332074745198672804987018377802166285036724707493619238736256846809317617579998607645920621762060830810367028860730007164162338798190695090497371737377741681697535197761317333572163297395661706722072866558890549884762448072500830785412684262628738132318556357928207371351797885434379852136695090940093109350183235709383256497505000108414248332685292420115419158002728344277701507379346116272811054093280574711632137803812733455363183582804537909041743032705557717431540990633069204776869852399101418782894396316418690805216364455972138987894763098608232070747074347474176273978898291774709823669015026716714544804554100605766516503258069379414441536947808652193960304992269503472682886448151603837149613629423845582063784793865739558898711312721670858945602080226163696985085626779466568411906102118424430223219280752952206950794284064743108061004091112209201394561027157996174315797991856281675400702974705142369677335368283815110870403026734285346556530920969042712759555820418213495677708825340236639276151761011768511588825442551587168571340959045760037650010526391469957836609477923106492762491345703309423080686323406640448686592847190432525224554665864447740785322781708326554054305770733152878550498422294520599859826128444900534059829562449125926127579176897699368849140430357444950369347988779296666909039799010093990906905174039954373004727761402047060104241440723075707115996549130718433038412396169561772781127670796324440152347654561945179958810087332014961858262767316612438836031236659432872115644601838352132932747953840152369980536332710070118008487634463358317166308116954219639219884061844692842061623295684917229109016513860310216902592886945079020480980266716795902867825444763874771272647295294786059532819106063621961983997044309369453096024879051590306010895537489801850878952421223556245950457475724168325893668954420033590143840889152458804766294461793764487359344202741970327863848189103263799239468648435355606885897720858300295812680507143938063227215801599475352580956268320407814293080169144535097452876335491450215290912307209951536371680904665764137814696484191253204302303182877856281227413674532420852239546717688688105056374583775967357395722527644130890447573949411230111535817256864167933096161187705007811875163848420233474406685975835279979301518975788959149299441019700392373716829229597033377957651995668560577454833432480056131698271756805769060702552932610139575066386092956137566826063056920958313793442240622574742868880474499358309927668071031472962002241226774374852139810695836246868547085934707762438318479743599292278521661230822152676466871408600712381210555608570917648523244815388192547281646024937337789663070729436281589920843009836507228773632911841783173551632865966456485992902237676233912352513539253641469982871930392460052478766879117931513719434626199914740720815895440752698558229928063202715879119704316714635606418002763638994050650900206185737472155040850637483001341347428787657851262123568207798921298588631572898404482701237838851138126978102143760011729078211058108723233857691993216117772894277812873328361701652263298702404499342725879528076004518803344794705540485945476724879973631489959514211089145064625177306954428986840720486962760646236065635068511258904244304733557213257342805290655784108312179261945936432019178015444668265390881544033123599307210452552366207852693809242749895938987207634332582030385360354125663854387977683729860505171131730021151698752756743155104950085239902358423705616181534940050275314810617029166413662361627371748369776376478249141128382926517199694324741948254099174028290116921391359531480351439461615831852539552973762193475031118993625579531528441017516405603985704791074587565274501441044505702440245265791703365687505890144520777875747220231870529775912464605602828976344070007662394960141061109254244064689181662198876712642829740069069299109364602683887417973130443216360140753096009921110212472159540328426436807170078681433893877311657492224824052172528438115902407657098333282413863869327631352581375201382638866956892302192332898391364983703694633102314223362050810449810646283947811469342927154956156374795587563851764489961016646458407069330865147837069390025197366008141631635313020315993229958747648922735107339552805930585703084442529379012492258606026989913631798687238389042548370579403947011235501872527581462644449429763382833471900638834403305470365902310665410862738868508255905757722120882110861797856828634429152530859737583703271565088614399826944867402631940135706369932834181934562244417395026995704942796683603038943905447211835404535536444267570467220090245177375296418117938043028896725912118244069873761339128137156486881556207785102400686645441864231079415325298132389301120598376075353919677345694691749932778264971309728425408989553694122135778706322854891453370431915647184085663509047929739936164575166106021942330450366698583209395923763263695051044566938492757319995389233067991865934468322108046505357302374095742018135235660623056411928947229112024634374771045980562516464821067491157661196558761360334119364967558171209488413694671289289834193576008865996095782108467964161829106479854723019191024378646484948166975389833993844823943992891455880457494089044765555789901606786477187764704826587698486581652491832833153689774378710551579158810428610168759933386248472974032069184478321470767034883493950252067167074905957797941858990968913460267178041008157529394921362251986544316919603039080752479575721044921903820056279055355579802401592860266792134330851043135895946214476119686424681503326333358599622534897711495508996957386895731370352771193498344452753339109770884006668263477380160507676199835219858406968951954547085309862395443968359266413113113475926428256113130660635021022731774911885498891152095142294732985028332911905518271926079187658814094831980413921268043428867539589605642392185198595714945989989665987767973098597416468006586007085300153658864789816764131470245352953106242015902549732802118702602719096023184925673608719869617571799902104934365009468553959107723717608069938293868000913729474340195309659444437577192040009530596662245925739551228737563177107348188896030399015755664443338270080805226338521980964535348262545049441759381427077749810831046069933782491245656713351232902419198677499279598022775911548651073087273284854333876256679436163256853487908400953737583179632694901453112561088355156577003042801138644032480042307459644327173484108391045886890773302180031039699015223028020734224444443672991428955782238106132565675153795092693694699016289080668357939758751518229361264631343935720971706018317203806783493652101886326917882222274415468385283131316792819734275478949513206611529632475337925624158248495009119951959188237707257562145950629333941348355146218434725709739972259959210049489105977376529019919984938412103224956687055282097289324181877802080820064292158755050389274839608050859097685215636003568182956360305259542416435498710348237921973423156845939394822122735276325170703188104686119237581947672270863024974915851070673050530094836722170512804475998171952978149570663496976679811398488869412712560035569426944019742492790526362930322783985880456662733778921602644070762071059533259144143401231624151399291658698870697804482695188029438049649988358422689303680147988821730621573681907360379627170615133511057147492527835080243839968570839739834918331404959036570233583533888364081471673095823558610524554133328540985722100276928321356881727594995280088701956466320463177003760439915350816294473570677295139437412678548841274240247849968725422071270210029912728112070047433092384215510027748256678557702962488026381992809420729025598352720265080369391623352845943562875784648836805611552497490449178317213364778233957429714940939904627479606804017336019254359419647439318490261895236178524348289795570111779421683327906753538013359681093989297570117531594744881769340873204494349263337331045344224534479253181324355085638150728438380641137272551398925830831610593758920829622038883478384795524543384754309345557920464873471716210863198175311426256278776120446899846309862123858800056861861116574889480319389290919132667659708438827466417099546130501883531719195184946135461961681092216819831835397945780557126180799757965671902060042661860028994311820168737138590404589075872651743507209823911245455186935181327910146654530439449640114426673022582350575754735992827762332542406227166234278890053428420568632972571017144358068699606521968760560807177435823665413004771501191644287417747133500073394619129367413909602229562126953361536235424367976500439651436028704249391446721904451671295769218830034188190086807836663217559675592348122086923908785785079692717067392023925933190174954135454630111159320926362688249845716560404521118966345477194013559373822642827083248181002406790975837262096993451572348427715085099755158188743995271264878575624787844230226112241301125267502438319994406107477742817333893644959174525060134837736071713589727721455411609312795219828824518967977976391232924586231312438763837449448822316935336951200543488114330733357815193574713088916059531628007618268391363233903078883310172041990580041467771831974695443728018634682838724318537004767056913977420444896075027060433021522921753080942961319812128894273697435424442703618132057765112963082221114009307151480932816775750567599906275960903231456991921004144666634785035175863489731779971120631397479154198287116529712577243292389690507238857327149630475946938729941882903406436335022192691490960716239833605283693203198420185107585568323893399142939846027000713907238094385834791704278410152365573264352620642501866180356387286554531120061909365306422525437839534171083729159596107366174401847370741882165004411593691733635418426227214658509156402508967095462057913542396878779446623908903606099038865008675205395869405882802535539538282080612470902086125482832642269603996901509803110362272545488647754948525659602062700529709406935817143669990957596072438593237993458015204812304119665450064938089334021885246475036540220166091738575366732283702263978142314310248245164669919464452269028177867776447858301025520255384964518924009136503236672517122506621136894199563637812142276335626002372161735853612465789390947438765080125361738815821258217761794757065679352392642023347599663630219745991336449622056760762417559098615278083984450624519319458244896783986543286654011345903754537783654651362743745210418167900950889223994413226469191482842438659491202482583292670127954516157030196290068896371150015886723517257837524135827795122919323549754373574633097068034246857749726578252429968820015006467594649424688735122755223238026396972499918417774071086553143465880370122366773338818255150397054723120317306445806569577616359971694460644391152156639698172127218905829234409648627552107103514353459830842179427210948566783389063809916209762015567686483745249444378108543285298201837504518766620831406766077810828762715827128315769404122372216238077981182515507460616801236610765209488905215774573936876983621903012244004813421215504490480294887214296684933514626955414748457902026085445334947269173978492440601698506563840074406214243441162551378701223814463765645451153220553834249793622670469916901429806577019923522437453574014626228029260258825718937596012875166448349393905630962640969683278455201258844140292465965848990998862085770759992982345587696352627350289539716630998081128179736460578271124074237058695155746605132993217118300438719578917125861162626643846896217139200943081387830498939919510392024989267099846488953251584097381916374575900911299739785287326221607242033168609698297100634964545061629701521793628089659429528542037036205091505088900289415719106407278161077319277794799616139166921820276035949620750108897552208655217308850821723034444321296213516986348302478151115324265171967958215174435217497494986248865878708582638527115990225351764526387757297314333880238058702028102136381651674616515320125378208375636063883130462863990196415901419762386727183065133378123228585888085582542909356555789028436022067553035057634044103498264043013507370642617232924160022238374749701171205703436505658811638938221976919264593537789386518537961753105553733843109308046993766062973986346767995863975460887318206239843106148584356988058143698045171695709248645660688850709947995606630051520792651871070468447850924475853891408658434777631626231338421268697456220221989619107120526107411648950666315200338816552687721306058072108360717343730281777476838953068343079091972054865404052657461973515244716967982427637392166008460303104832363115429361211516144086547729449413923415886287829442659262889919628141898848050799186671582289110008372058020956632620093086276541038637582887621590563233123829413267842011606232388374695923562449431039226266703149644432095765841376710725564789182768345968848812920492680924549862283305606297224581585017307359231104493808230010312164694141475319943767836868617161788543877266721094673724786381059248902864395200289834928853265376052377851333182095963711153257467111900975173455166138968914982990320555398618055247295897392479825681202522735320489184250743222715617250052207465657586913504438600581500480063974679309211506227074094197562975901105772588438000016759581108871046497779003897798317544141045319826748886293324537875179675059687144648947436558632224649110145788409942733310684675955108178908336885867988514842041150658796323769690228047992204219016744803390747795445527533491408361634970856235591090733170015502209063417653986850559866994904084000272254005837709132549319526151684456290472560456181343170348116740400564938853459365150056485129242272508378825951394721349942610547389877534568366310707189128846107534456936325948255344545203901507784186385033601113375295194242045326112399715820755435235112142032005508670079374473650094472452345847262344084022509689372795982566989738617422214457964179680732680219527795547788913258309518699926646960922054725161575398820371952885777253007791078547570009026755358683886082560455188537140878010124767007830643755126405616452667904877889866519070392331336697688305383672446922312931860589925194201591752699640873026494644585898736340400656746147849704757424256123352308392318937716671392598737333996248126147353559275328205758736355355166099832386286207591038745366313715099930060231390669046243418396196901654620193650430654782784058798850869314893348861785952216188346996666698006267302011255423232707539484962187649736734701030832554483842573899566389001609512198664401187948254099297673998141610260750305808699258332155990625419479706452057975402648240937626202424536124792506966731052341005678686697515762867248621551490302602272106426876205503253931562925282296292156077419828340086570927625296369298729928859195957143718195502616365998161772354198888969594865866031589312071659942483437790715335376130025639888352471166543575426169799066543315240987115692904947265689420494315908138975795120563963206477860165913739399537798004989224186611867232978551128061519360064225809948411077720721768983055442136072527825983678553793777275433065583595683356542901212517681105146721799022995856182110583376596722021404023114454212361991253575428974489048639840427033475330701969544746021310536864341941169322586100468418940108167690242218184165083102906433579519897396388277184622129877428937033470253464144211385499526262452922099380177155695903424685296847710093175786144815792536307876639126443732995665843346006118693531223481913048379258791091325197551492408198247468533763822653497632045121056033308995651117594555252176947122182800595775942293041378778430284269998420725611335374094690345654863444567692108276186706347429722380006100914312231305492944759743705097882918654645679841467026616850006746807393174127683318794076120317533315759492847415208443509832268472637406820147857489886287694945412768349189625072412094169942325207342914752936878339834171286965356004248696226165510930930533822960419035984804873564099837798357751423109135655933333408268797832940996364999286768461916729294751274098725296913325774175685844249003423689348147154321995431706320628020833921169434963823689114736384746769143354148351521261070660725507106269393003485599444136897668665101714967808712422689567332448499472368404349112816634927851010996028446901433250941510771268531402782771155015306979958930649666798228588352652899939328981538776227601522195450239716339754375966664544357700106218403476531756675734732002160583931419559679701461042845380869095564346005059386257731457108789085784848231080747518747010931346066839492484327736400759315398966086017342849966340842814211086408671837766258349825439713942532487786922516584338300895178180606798598971902078098752785179761690564305840344001287491937460268118926465155450268527223552318059457753874619741371502487936006722980846484798711809164199352686908218060434396284667239322935849046164135523066268905505899907707905348755894442923567599707413964452447553952064526480648423061624395712649404322759463403936420168660836357121447792794615380115249029056428231006990967861991753997003618331506629845549573203171514892505145406574249829212657024590845528035636913946909517122829608698160553202146085298344056205321473560650901557922222245780466637067177960691235767334469032453957289955817327078007345382217787461274261913722145293323756278964703340121514034443148161631784343148165857547615218470039752537008070320356455060195779386628386106192864369791257099388266599894304531402912242933592657940257810324554169049745865487597684960797727111550452306256577213798225783547779826576196839696043781837122329508997209298021098823127722048310652634666145139771190748911045137736925033321335383166670428195052972055254898612504658784158768655703725862264503416802387011346748314485898265266081641684798456655041508793942149223801831157607633525881705052586235468993219020644878154232324394946227466643618235043111138021985302802077126089354540466514182997259882181550729670685450821113626174289684481524702957710319414162718606361870216140193972687880640711506258809286639047327781343141750892500622460848670636868384016473418943135901456527578330941146382950014746466427028201628257315007976693598743277160208657009869567185064320790950760905281173053566859564286619853316554613524714184796876032341816203647420872834966362095517432230852666361242216727358326684912014279383749757438900410801726215618469329447213289997514895941537696398239441115924783585023818366037356147883459266373848645832373627063050364271082189440005452221211093816273579963252596224136881574446309318567148315514096788759458346442952305509001266938250880436339659291248309773937705889109836772998485123225792949091501595731570607422502041310497822362024371314840037275414883336553534813545134456849008088497627771890679338935476181751254960873853563999937768620376222868890530808711641594363647076981490880725879817780489438105403493032052940230775679443287811987119126753640485141963010430680673236744342253838890423948645260038804638704067516173732715284490626948720587488698478856610075257689508477208066434922840049845784688857162195969394802594783256904611608012364628631288442573289098752023656302392984171056156903474157149538726667874055110075362438898011298086507508222926118781987748644390066589505340207173523115610824921026203516828620586152314709143769542538044768105137073187093412550035788628359937395747666816235389599700330918035057772004907457889342108487060890720500486826671989664956503791555298630389181054850524283236153753105180874015298923172959459953214146689434664601291504740302538968407542073638422051837780882298419938576688575723677740368361751730819343721935584665578033653012484185276726467278075681565050835595932260080605490383328919351726486467818179919636602733094069852956032755634028987136558478865833307987721545195523879540206904420403741001749981615422180000042548250108238768470323844703582535404696781818680698008368049144424530658381222078887144254743267569940704266466082253788790778710539247494206171245526173852324187435032109447294930899287504842212081406848880190174749608925392194824274170285986641018380084870940643749870198939016064110055637506431450910696039278742814870031023471231782816272923259573917548637535490214009035983584475561793648461059300962498526657150981199846507871815134189633025361703205061922984790954279397379557595514268751789991290034170367328169758057024305924944686295589638864319405508237289138469601783465238325885448452459193014461828130120416281939546937805463334087364463902802252545103978149107758407921234007359493747165949116232561695458252648010146685854072380088142321328496521727251203499867999773897135987343277626257279751347403552461158171343280657659675807629066694746731915114306950274287359789569347205636547141652299055775354115511340924810596658839908276008024652179510432657956899004349717839391862141956704310389812141609503287997270273198638805513238122005966619990476104443546630889146238055533680247610808350809053157737519452185031306489078779363998956396660354192397253488291920411098217715044313256639142128885273760056985112091872104583658953930774027819611985722412977568596780383477071324326060802468641229558596957481084821925841525319903328602529508107969620222169121772270701624417027176054729398848738315730803945575755891951752809200086069528710752645329812226081175207759279132264545048889513399550787556671859601240893836628266922655244619634575248118729315664763335936878343064681282235473267448883726136188435005352366533845821786243014819341072581980642551666945428574482488810200429892864799809531866727920659648696101564306493067798453815376813797702751516938445165806053001062499775769207154957656701125178302544618956007225630371794655899224731359982670129739077766448127548539142867265951417527540495784047870359315067946043374757875614743777126663807636498226780956061814102663981653807309916773262633293381386404609203543320800423060821633305657358814955362002101642959734172713318116603237262310729651342806884304199562823571016758927184490889403770215629142464618091984369465097100398906595041494929048017307071969638125519342102508918367213807835638991868357088483077983391573991672552344582666533410957163974326251278450666634950923107900448777445827445096310171566190775062593681308644352143799591762500120798689278247525739868436602076890226594539496128228645358199646462265726832553260047994479437281202185736927894699327883779139887634723402105301616517290161481185192291274658585194739931011962264733797337820774253119692087592613386304168280110814299559994830106226988773936914260582783887581252085658198675338166261256626160167707153401771326459564575885670390199607311415209850469284981465194425582800732044309663661834302271273515621662734305030117878395314256000335463899306414431810461082110223940505016863866223081636105794831997180223535338736856018061566947983576683627584720011854406584473048695281910135674457758075503934412180670458757541511138020892076216207085573974852314939704040150889821936296774271606466081036902538570425650159889466673556968314268175987167569581490961960537234029246424747661992739040780976938763366376462735888814670980070792438222176456393663174540084298640485661089622041198216618285590717730971395671288420019933735216203945797127543141146326944786836809638609198930440449998225576168781078066599313242241784317636675159589625940758932429128351512355032277648931162306361650052687490099702230377697349461768843850470665766528699147531260638036687288858962364215000159750023788912043553339721929501373187512978463978702137896481099194648366323691731877676511826686743715715859391808805931387584425940428530807180007800349683994651317024503089303550577128761901202913776261867655859876547348722487829802792677578793520463893631974998881007008675715079677048546740302744379128954470523144141706253422699624549011509012014801303213796488048701960698602520869859923985309041578982750825108755649155909850611609473463477098297180782435814105965957861215089279484637461996087575503365942358623689110723052575310333564301800204852654744939177697987567832656859559004558933153121691830022438681478509562121610368818002182879047879652334815934717393150521463244437929356727041478270138873895102835314706054601109421648902679574889659504094921890771798386700814884602120992858670439984055459259767309042175169311220501625179053860534106474594557837266910574582769913944313037499683236563093114796608056038342356365502107608725670298672401569891164757944129724300794568889577145287506170488607473299960160030961954543378145072745638279703684320580598722679538544955227974350780584961024223339035212559306366008066423735708173459741749157759557514612554577772115286616912965336926480135321145897172556747700511268418496241641045588930848449062486502357621945295999749042229373432248343286041885056360646598226405551210620599244179816610010953477213590717301818892938850758293025366100032353104504558018606889241955925504047261754260035432646956543729099989883890786694865389935232156034358872515320040574297077075422617258148674485035049016645392425016532353421563943883002314943033056263076352070827717007052814464109914712646022278684244415526886770919339462820589182780460044166889486343117191657363519731238237726990191891344726161919720592800086651933123581990976783638570976048918438485251089772552829860897797324541123790600369643920041526021663897674224562325541991902702230010381410248324306254788354350518273533975394525566723821516965350273754499850701162038517115299281639618240525245482505494010767521524609759408452997261800228363964910841071667224410515687175543290710352863209628257569790950129777735268462866452400858146384333136000388488646402189896304758468142112296191534140234121918870789644528533350341911118281281486829926582711713304795731096687123780798600231656728473977553014482545912865122489174047493992743767899271429305474846591909602252477366569981816290082473495036772708974863504618328652125623439607620605458736266538345189600208562675482264335360511001944469549526510524667360416200490047064467632915352788011937127515672641297878605952654697645877517761034228336613124512767757485468848447043830214991672450483104888197294048969154703995479289726392599270704159306919288988913542721693480000113764755689190990168354754595987578642250114622474549024429073170152131946657408282438672663436444426608024047463514804996615892764345309687781866829511529607853369796772918815008172156722708613667018572310461634777063573915851553654586725033303911378938967828016063561111295556869644783065836829709162770470788653775902048672679451631893444169555380383524544481317066523936940592715171111319433726099096672945772639253565011365095885440617412194869859810536272337751453594489846655754365416819452723481220928771660031073192132633895556893582273799207612401581121677912261690384135499505550383186378749060916609548613667157097118772192412484461730988426713238001488002468830813387322068018701609597154853420296367766083622113399088603137057552299679534965902379957466944086911028150195019312845460669558854598755587109781147353079519518922963992047708313108177527370970229407768752271835146118616938027497576368464261930114699857580451278857220236791286968621029644464284582289563460457836362142852554764000006745495694911774475846772910143567306320913381235888315704580447895334364748661278877782722985324328244669399859396709275056743505443333732745651037179159072965772394518513882593617256333012494919367119337759639422282374110768414939576446095288201070193607812100161559640156440333886468337616665736375297161878872750006481628610933843609898276471007365909851549949593308211642904963732793400199077831866163405290815391151842976827684233573322764903686513615367641466526105523811583568346044155636044844310744256455106780134725141280349352475688010526084248123069649852826432775727054479547590286928211980867645305619075202006563985012102096939351409973998471142653944776753416613844954112222760846219452584009353051900187688307509094005092043448484755543204321357223449872277360681672515253134127351672725470178390740808376550420598843325882224833274009077718968883094294503888474189523279870143920074723966160160373800751347025970082520688189409474920472994388737455105677345643304969662103446479432050442213296172885171127971748321361249196105891033418359769137167093677053680092687463979724949141336570640956720621281676359362685801275832622387296050472325843541106940557200664598690365493150011629841288434919030912850183397249053995317844260192413038131445275435052379222594459793005119424022254534099953276578927553986369808005982238037789799203255954789527689196083585959157986604937097859459605668935311838922267539484022113482933619620427530642638191948888972278172316353536329722637934847632258833739927044312256640445581655290583054082708447620455637518845547312781914310369766061453267103807380502563107232315907140060486478679635495533464705050101398339493047735265516111136811281519503124468294882358908252876530085292102970074712226345485488222377889503159884531544808141706377798387971364875573900364812789922992452732965794259878615265604913614477057266897373933125204231988748750851175237285422600510243748916086822588253111750159917741185209511337265235545913706399580647573737725962406131618285314043185743659157829602866264339357140404322246434300692094595807826083188228577982342974051400407385088725313710951037441142367333164961497725178720902313226246496180283874232039131758275249701250511372707898054844419687327364748242041514091111574428584858259668039811739755240061790653889742274569552269921215528657623709774191144388905476709665409254120062117144937203600437036426164211391894605747864459229647642639150032705530491661788653364334147387165855800091962688236746426324715033375409608630476135159840171727754803136440001886693602697343941386038530311634966828317457828664969558168546933904325779588844318656242559000500190158531930004754421826212234121128552014366915679644222744812499274827650940416650539641129863890879161646188587424955026407857076850865056230707268567229246371451013165957429477045785941774386004609434463999897971772083334457343843149484239957691722601634275381650893656537389068814213877779174151036593375756067435377876346558179583576654586958429324739347315222591335874218189366959082254829806432237153886458331896117081419833393535819507263713999058808093941359676884410643945581921278448586377016203468506311117293323337193603212489445169408470243245703241330459489411506624929093798744442035778274149557982368196118307398423612505249102475386225619269558652694464348850029339719531573037624169889921169173423451538520923702456330938206525832279117242041444239087919012654767658142532405094270740131299249301241767220589545622272982208508912751723388842162772862199113931221343156368947337110929603730986420393478160479738978395257080403533126753641759281448570267101178777120840005435876377683684519664073463677415291867432462760237568004118763491419310840022494953308693005703494585300024835195620518028680713911072966181221910583843211534181744395478678369487683009008566880169732441890789248204724864741554627028742597023480345211479142147110996849571463633431455583439053792470233871843017207394261625845234796303845286549837837725491909917194465830648497224952000566470970397994895629711717747525342768884360126131703618524585216952657814619799477340134926376989163372051617568441025335717945898885855069344789042442934191944885799727111166957092665847611729719187210117708837513347146388485392676108862387579980733692706067555805291346032645915959906157404624600339550529072182238215514579792881795854167590266916016678556502925991849212967320092019874718275146407751492579843535416460217963860311724093130890435068787825123834713566736734667254107091959008009431462033714522421480183956402043320359125772722166742139253742516521172028192788632796961598345611707102322198923496816079791010001717584743752303788279800354300253592076693131162909773849122387189309962205823107796839978967520203185201308180720647135454333275040299330598242040704091607532802960303252904075987838420770352199484805625542494024245823500523616167132543616564653510834958716604370047153335491810675372461887850603131282368640769338808621209278598873661630970430008426517023513434499218201245432705707165707753476131870188582383715588696548400180208698643618758858289839321960326470309667689296239781408071593619874438010719075678753519332510248426332299307430146618012459783417048328640341898512387279493370067250673258302015239781907149462418565739317962900394263840751936579887441823974356509835529246540991069529274863393727317257062045593590653113251260458120615290899006826173633348678223873841787148004945045633734219894269469255761824551377031617058188924079270793315882529814340416497853305894647910903933569154311437449676840253226957351847657699098455783229915971668799620219357878261278707386770646667149648221866162905071937261927513596958119765037004180255288436277655670233592014400357445440550319085338926141361503362326101040784940025421120285945571522358630271179063825090292343601869448427309761921530811412783352172312924399017547168476431473444343681355273971880970689267914688351714989132989859749038635686751112185243172184622671094137091166119934849746687861993149141012746027660870284670372715738720405855107284916281534251769342707232857138939281816237588391986813048202906372016748073234239156185590710953643334309194132999349942788829781835539329282939630520059287505622622440301209205498836578699879961082718895048640210102624109692153585999136321681083645551424527421077466767096448911210225875083578364068097990608441540426661206055999551431190752453510783735885046530504728417927494091944216120834460526780090445066042845323024451555108584840529697424842776798604770630926985519950695896373414884677142922714983761118202602503375085144295011379081060762071548607455386666529092906874390048277983763316560107201107642153477115390088435512189163735215232913548376269818853843836312486483570864062147841309675341149717580509490148579230607023214232892124094130320934941421223516775905848301840044249224441846090004176361470087988868357532328241562929901183117620291197290440996310636887442155205266067412925612695814852973399381039071930577693941729336742187169861950655456201820809445765141287900986293107726963929944592722564397258889583501906988859280621133737252303425763175863921715598325702202653652721567724743097003701123270013452532665384376765099277690030974389296722962177788387723898455147551104070578221619827294669705767659727267458558206863072540817254784085753319304970715950559689352391152359697457026489405655819243433922944792078813097328475628113438320991812028495823137806943112776064353560367369635767785405365019564744696091261569496956957229424050757599793126971377084550671418408736546070829035089735776976507591113271568287022324206020173712386429373996536016690212586985268107062445731411338171908151832759447673675272264076731376372672178807694149923113197476231283214970400380604963684257003228674120755780958607583648971582659883836710058196454771121424800802546241063715844946270689262036261199020551571426317463983058314447396620994232140302465347292807305808318416374609214592536758372802904723731365703055155276903332152998079214177297733765110577016287924232070448692444929612818075754156669875104379370215505784419650408681424323567476079752384715260126011800526059183912453380276907889646964888167576641529543018417052517993756738507112224046765485594635435933910455110328615152486328528313418467179542193706084152186059847622310003614402034084362999434080521324853767156448805427341189664361278772010790705766090495348688339693894118928762713914366966273308315089449451800701034023594699230485224440143089307618039481344530976416877379690613257001079612803678272559577763216753594772516169917795523973702209518293645254489048150608473047840093316457325281977572148840331842762324342806540590901547070641132984552753367734990827839579691294716894603248936272724013465934224841518023488399323466530684559723904175186873173906212354885781804756545986708304237401324689433802991162329838229031943666175281973437175621761743058119356573761416496921195959357854718417347589165543295962310454337370079848575066076939239082921924603100891020896100166416577888703430309440823814254432353905404902980023473133008270164963455065357319128376394262721274830707550782607372911048252927329472140540417262658349831364269130325048388905628141326612997904194993855172180711925325725064243246951160499429556028858285310692245159477763260960779235809302005155854475116305871740454522802723204992906119414370668975727851679212921061360457505339786362663599363406819228283731212017592301950050785553948757515824568196894575081937083367277712798933240544077261825629745172268777276222819375704840051134828562640382309198606104914511336116999704674728149572224948391392979084688560497832870438329124685607222890035110898208719533980173941826859233667374653732643201405983560394896377801234964080155319032390880364508925975007047460883945797495840707704051627725214594042334466263357890299583300287549369556216248935822156830536806424946376411717154386067415879346491046163093466732915552314210110559195777365112626156624756602618066633073598250426981925284241940590318635141010190624248768149643991342628841236909933940172199961834041906244088725667085748577046284772100427198551067568819518454101921934449363357104086493254765491266938603725082034696948581551094307544820398786446101643167563968359652389158364045846246220928661514577877930058242231052475965408383581703664930382060607918091468408860817005919880349382622350678175594554062557919584469176922039964472320024075824493863905904690416416508346474685608294898038453095275267401442746586567678188427962534511621522146282514216295291937756469516818102812034706354557516194651949331201884606856800354405235035477923121561257319404468671016605259046104867892174751438143648673908015482033169660359502061415635344616177692474975899896464100286597789979961581833258844586309947515989460897651948836360774565082672444340333364366027803381834496072321734768841521094051068573820413813072711358782976855698643992912811711385691452336199834344936776633387858415283167734588627022968839432927611632008024234324763426016299978558668120405202299950499038654537285381602721078090726582213724510485721725274941780817342153664029247756733079860392544824875527535937210733328091847920035760724634238451952719408161144489147416329684693956679336570427118952544455408281734090796508753805070601122012238275354525943142092377124997432285760082396458081199558168629770668066475979138325597331122366215247516685278145438955442337655342304573203829835430897765677459818352195676152964860681160601167645761653540082498220136250802157678508796068469497956462845723985136341950051276782053835209457553531826930042131664973130709241846856881497828471233426573441224015362731756694089766699745099501272827100318973370853659005903596735642308995582457810544002138260908910122346263642810226921301324841730044472613867549419136820125679463420740942954525431460293935950413708889475500896652554895673066066337270360336484855170820131154824431242192808219552038708163538284851847749932734015903684582638154592926187377998704177843133445678635345493279403805116706141762197745428802974301741424264092558082616878308739479230167334588339413760157951728536473052245038542428137572286033965323724245538811906095415196501992892439862232043270445567909032137658892018596059803753041173968307127790934428265479904112658264689276190811980831625289623085673600188379919357010700932025049164768411898026983440435480015109149367669479822012042068786057701855350079051679557910894119036431405630487263139253901069586111943228204031209002419605274299760690224216468900623171244194766661639467291065611963453817252913784023649298673547557975093469082418176272223243908165043684603895900644679618031571427678737799135918960859862925752204332786120013466266826942066270693775921586232371244464058930209434540212089561256261529274107949428480131789516184458045982861983397448167543368164872573061496941072230674037564526919508036055314316947028848015392248379392917515117498179394213573704881252666645102782462590381606455433380392478183574071974970431211260025847873258226280391368454601946940920670546054089936088619490762779112093291351088104716184705584266997077199076628459015380681030460492215315836887461818328679217845223505759309340068785050720341026909494952742225616570823035055165112141376556109825203941641211796195727808951368619734208468221568538803319106665512176320349146959524598671323772872594341512154647179353495834786830889855714679001507039188645183982131392387882194270474922248444280900345636291569212116949382669438624125368218254866493789929654827436023717832015330057807761438581076246117804578135604517956637279768208211313856327308442062897606017796655375870375899044161890529984719629912025674294900202376682967221087344043769303604893060030225000326234571338312295321445773353822599176523792599152440308926711536034030127210728400835717488912861598970016907571816860524320057731754294048427549031538682936306545558070075148327271641031206997811825184736154424364366779625578966919331681660065993358356946737280544462653197077702964164271823310283133809442787002103378808394369008276460575770603132067853140243090683110475350426532855029778490639913972062583443269261451290368534509339299732129898636398421847275686242669091605060622699747766992102309560141731466187556277581387884242950667769807074933139203707769081418741460180291970233378426637217795536124057687883732174318468632784119062433349400158935258315179374068610792469269671930414442732280052830127319145067676448956098109699797418292637651849369371614464711238308505278569489315994250857364804576148141835339752721893777715846734560894794333959268327714029243943494572024560475491442766212834232552386596393207435683152745228346568108960136175752903402978998556135753863681470001459503984329844266892388142044609961729770250769993733178619744678405167938065776224917214711482398524346919620305619996457106115254331840852167006586869661771521388597211304259861085636970467613394375226268826188766197240818280079632874562075172916641555730764341852697128607879553146290661331827083440792302980992548755837440563176251513252595749867762037988934718743606979043188184185458535173440169963205778612862649391744858247113175965902608208783271222202122274767875948384687529879425382865538420303347114184473238639835359276568859792261955272370785141589562702594878619314980064433627655347600205342108565355515568009173939188854696895015237493257662134669564724562171954338884621118788122356374432456601881316434744822442606248024460018226151381750265958153392874428236197566327176139326561595916132110936712120340002905027179745368158192764296863229113719213847479756863984857053754082179881385119600289641937881343997432428048310826259487120660175491149080926277289851970084496051945645018564121644968830262584362103727263055607077229082479389982281009326826083807756402596312823324961041412147292162170516074907095769950268633715251818518336083431811891189040154758305552516258602750648267297265794587990254377262272996859668643769293457788492058058072146066275179741665106969774146189723228781669381429975367243758556653714750357636987596038078159916253513131891451836398420190985452535433107000679325004663604440497475676765652585282814045193152639482695222527186611647920237831632165616049713042091391506032048525850744296282689827436378154532694650442527910481759710171718340423237928710571864901935545507594018614201895781813300178283233552337647136782907962861043078999797170638498460899557871160704604957491440116974596455073911932037633817512506671588960631724667306924772053850471653144412624655345856102870072812610890948956356943482276405608601573976247047876623589685598498254171490609759772294692341149147321073126459637167071442699784908018474109617384706450046236819256409691238993678396042881818497106904814823319840177743585856002418024291157758405904147049689056195673744206953853511162206939593473074021022849887316975382400548504144460253165419065243520421805086021757521857364615818941917158233843083455929443917162524734021991110133122588215278889196064031539612455676504666301177782744480457499312650059459175328357548147003742750089891544048644935129601808527393010142272619515101087287472709462731379363255094437584175499972675261989338633680285383253420855692395371774461887811681387427006461223018117980825756499744836531986061095529464215584403341589969728818881385402780114697782977543812415067773895215960303936114597472820318090087515424290327084096393039424702479465018669519262969243856356106487561802993838468925946799325973441160927588199511146597702128210274078543214097633821784146887343489003985290776740477300965546633963349207084416783524913759084991128659148098881184634818563952712829736804727039230451092500067122787287640789982505275902897545062645378304656199069849633004467044851848049737472783802128952845635688454733133275063551438506945850549305468837162968878527978319472740819851820481095166197320006792805453389280058919161835374465885145462810529436427777799115087822001988628492493125778464128493165777550615351778457846420919904630924452974141401408119920720989301228818629036015793843151569012970551039126945902652316324123311485834753650084632770279124437766991967238849307785901226540447090963901186525606116038619415427025972323819904596004767591806601671190208366671842875995689543782163130619366949982268134619553150046834057186547904517499556938926465468081650642190712785321863233490659462556492286424367277847608391217733931619063032575138797001999545308562323148953772261488500647754977997153793665881588049798734871042920936430044761845251087994040696988428179257308876400372822565076688035327839749862838248323788500486472963765753685463019216231095594620567933607526365552308544662959844549956221835471460361551688570173779197792470010142686495791749963038517756203335431022851056286936585690001230557596724185505095281344193861061489390141839927562359998166115223257628484641833569630628190331937255856160148492680689487904252752040588272689613000873253626720379138651266776749521014411035621152339719718218050065609393281069580409038258446712067502637434640863289610541003080691431245766918522073516057687942960517152835136932191446383789879108224637901229684853806093542002750568617229238791325816119480808578552022227398843056916559073430701331965487390281640763925076277097783134714380938711046000408600382813343799558140996224372450054789368043877022404579607184583705085015206150355171861197617523936426905512029600147239888919319637154922050398200406043059289106423564314984042586825695167812366187724818059847262594016959470507508154022564127134769408239124585861489777213693616135675614236554866049426123488033377564969231800211391450708974479704966844713703056446339589900647944466055609617862710538285550830484140026088321618129507864408361355748884763957699334171475923254337435909083376889985634589192268452639166454878035754528816068683402266978542946840630339394033371835572112708990236661691654462571902011173189358157134414134749128550773885422085424211430566316581365922700149430566449477970892914809603744476001484537617507714337605952686802665500291721923790605358096214038768859693286272880808239815023245201926984787944416387706927155900769904552800544936458951715295234087429730014472046416731525830385079924173234689850193667082313095367265118417619456387462505545839407720336476824675417034013452206747655712537149075043124552365418864058211756824600473004847421566179423439316942040927838888208025036796033123938676753165029861263265564471107661327064674785081199761749236358476668206113688954732857658649520108220226441788440380591479000590816123315134762118358303969716726211493802387921257248664346046673869920489867569171331012533740953201634504342911890360402632970165045929949002227713804447365071054815059591162963990247908934625250431711375600859943427634858917996246456262436584420919094497076878682803223168700516322167440914943429447756343320176571185915577506950491787175576636436247761305316778245884011757459100195062712213885096839532175944096140095193585586980830986111587713146320599648783973570969048932963585659609538899104836938533385523213851759220050015814485189607131050802764975250605621512860276514499711679090737741485856797315407826625516243352055960290032962159829619714303204797258970349498316415313930954686289582988742500119274707893751986748580679888027892273478993702299152609846909862728297082142738248686057044304885526813051392690843356687336796148723104793536288888786003968092907745325534476433154124298039734879420721509534131462854538255091966677753713341844290911805282780033203521969154528204159748767724809478663394420736944802620828832046188992022139622653733719308412715015654032585641240149824491301253837963917149683390890922164741647386484573917394105435907953872868625545809455955603171583956537172156543309254796488746687989597600214413116098279904623625685256970566033525360358595188286203175503280529851442552840500685394036394490715551085026944875974867025439998808496876731766499641595197651294100217696937690296558834739923061271548334199525158119123006362302458549805319949032574526070384605144344958988798617040945923510089222743250517012789230147620023028089368499004828228262496939497309138421919156732498773335368561328915851996369382357459497977657805438572334497097620625921850934989545534117599258605347843833979168473878930347443432685719723916026531109869657632679142207058618527402213562411652816150153487012780726275795131474670721211848615781051185854860894289394538823720228131023917254976162911926840137475610017073752061737688377513879878788510181926795088364552212281806104722975792089850047972908233107004825977594671697502715544769026119081045130199392539959522452267182700915769645255344011175487625147356552084870952261034761636844313890315766377607702780607806823868169229921368596065339896383153099104383132411935315226237303223917695601492311412378928399344238877945704474696684553053620562230424311494271167086733999330044091051953710470588563663314818497337488132729392164101333480443174330340901790360144608981386054734963133676892428567988661010467829614532912645263762310111098464152892343759321984234118991865292790240795905388280416421587080116970403253141226834417820944414137281489990152397372884305980382859925059768748230384495398689856456450011557535889766833610063322897154804219112819053907304725438400780755748399770459243475283263544639542521168784791257828565259701107289089397789085623373883913887361896973258938498130104638738515957844149518775799549445350642396879837837879073047458049732525414093903196166310426795346778165114155126517131324770956163819680272327090200534533144151855770049945482218488302251319765745542746899605191090677385800935436057958561602044013841592604456440267705447188445082398088539930538622469305393080563627628795864928167671700551914783451881185039527106718442169294859130760415668963945710464825290350693857703916645270833140389218978401057345052839073456706051018500242456290317815921209790923260145291186808325956361479647978763824924280632232299136224372326107002379596791010604833235395772591711204215358220594393591214671032649693348771708253548056087442032878161284605736376279994945406971192414796609945097273142587503913071238772946016310571574068734831543404470299225019463956082441644187517598802720556236007489805403750128442822134442820537091815992732719216908131821507970738117543504035988868328971945647926158721708808587999366850871345213328140471673390334155714643185689305025940442647096623017966429627714759005182729007115001597327993205145284690385323863124397452309405196535200031096222939291903014468680985983766108547786536838382690682744493200605186188867230154129701537936500590104786562498505888059638788064833996125467823536565472195688273648486795091952767980285474872038202759540780360079286458861183909317769575180741989423548865276701986648874604104577488427626687224255625399684260226483292193059957464534070702509686344273649505863373505313354183432644183783592591792464514623003421279719506458542108720089755338339091147953072330821857089180795488422666103259511691202265999711333894871222124934426571741771516012268199753049261398709349578030147542523454770721221375050987407312384619995974521811187515056080377556238942861114826223918022693895857959185126297805236360561539723432170753939347966881692884299147253343477864821589671408344248517260844237063193346256384889904122131479519579473407380547036044340835909637264627064947816282769287839717102955365366480538842826720030698859682859201392057926091819178639202298183977248244915211430384210578448308293640759767300375870930233967346278946881169195627158541882372369659392417593728262845829360868276731810970174532377976941582149709548332318436434978178408301763455908956952865716405148215836433565209998780288920211692676015866082930753509148591143093436727494609297657367297011576087556657680818870009785004451959890240599432491406171806814809837617013603020771318601218904418800038087178707431532076630381481295352646786521923690199926153902627620493062039251986393770090203579496885983851477169035111324448832857201954669669574347633990477709737829040120372821805365817070521581020670368691512098536751395811940396677716023377094214749191557487894452044094313834158866021023762852225618858079894208768156882971701686669755479726817299781599423664024834599641011320157872138583993394851663371028832707841276705642700720354953003135297903510265036335225012902669829957338235542174045095019611533901977191198277280148501174020707630420271722328281301442722285276673825750873610847726272997541887851902937271722933726969129445780695962858709493977530750932907843575348509676492328776623840560046450091747956036142829660200999257588894160473551560610754417957017734702022820481991515966292520199866754497338546798715025903411593501649318296620051521041299407538605519668494008075872661593283220875323146192607280216514153072067644361323705771649357935555055352381420083298875623250190876913160907268348083299650164053270020606692919781623097380561063932263704965625542896641843024568906181907434761436850717723240095044057904910606412844607544504249707339562746254785535640135119964554407519026842300254888047189935049933727915145059004616904450240659483827765583297148852024277116536367579139751136176476924542553594126432540497670984547588362931777901613751486707550339651022833933472863187253962970916461516649621303459926421847907801821050291422668846286602280382519024502126529295425127856847848319418764484832403330264494183168156028359748730630210393656112295708108908347992643337163323892912835089182419441598704008092092905744348437255671814615790812140754488612750906673956178132562996117811544832179792737301991977640495981291377880850003989091803974921515472522252223562698291750067122915196274976819620419760412961527068244668884778983019844924209964060344670859005012485683607345497438443809799147066647606221208936139875119767785882564970594806916852110845114177231199448371803726929323901100649078041571531782999577769945314280547266864058340853115916280586776722111865902809505641211611756668618262931269601102398181114196703548336888208318847199360175777987284925819140200586124314843133173225313590036203699932090854551636240747040138663379766930082004869457864869852231264982865681004051837411671133019838545238163951069737769914302644900883910604627027946320687952822283878211025640521143350207028895771587985249456478005947063608235414996543724825826020147791980258945223166071042177965554508140740237625372228460239697975308921340524909441398367132388410546376587712204085154628584233903656028699657161156117258663515019287165863717368663944887387928407749259801394542524858066284698591381220192493454574972736619351133916386845548669867327241716096910749425794528911701130446980845202671278057836050225998423517821377879081356041660410135606416703546530530663012527342333007365656878209054381419402033103910760633444318485658168603512379763238177696492749046773157087689416852011672073092665494443034750114357421918966974437352433220855102773765712775982031233576454240962920884920525244212441167953072182797149429314390879075032652553991222149376265362010513242162047753215449126004343894424556461832390859317224121902315946776037980032051298886120551093509732199581430150737329984119002727584828760026016185376941625014963028970676686387258720024004207807834106161742522935144825268165951333604585810968837728201997548898737969968055639910815065562180069060379875590863092380299488692091551205773871916898739653248129373539808575881991542731686331453861075288426661634435401671679581601991194652249291614543286270069610647716101919898251985946886453905227760262021678583872865245716368461272189237784851669582041100308124144315640252097703691312094542414662222417646274410133173932423233539255342984808112757065234049103943699226777728291211937149649826709836813421728380540380297935602144116838929369396386500687516210376910130763648689963176977274517392307542519806261551939538901409650307240997707149950741725049928651219214204028000839859882897999292993126865981473275803677443240224494929443054491850123719474200829828435274058323895700733190309856976172374235208088639611586678611879126201889574237135537735566866484115791210730000503031679100711033523833263051600820221450873033049546761045332329998113019113556370286538672774750469846214205306314930812008271887482578013738742005280642551866776834489002749207052322813204849839570725228861520657740986387124775990218348868361553579525755203629193860277134570395619999226587906858137987092810313908446216545205455596524634910662539612697244177326966159545445567985121457852295619440383693971096163407485964265037259849079543701497397651824472498122737700278076855838886642287650012047291914966386164085122184568421947088441609059092225449143862919651477771128657857512092446557512909857621887350404805551126105629801331995343598793768461864821808120240621360936858798975777246707166083246239634993653902828135959460111888743208634265120075780861396997163344654225424144048016976918647229242750009938248793445053310798137531119551821870668274814625395485185131775452514519146032760282157417227770479096635412479842219812161525959895692190431578363181908293983152997322966202224044000838894030811250137704711721139337930850438928121504105780322441440880309735991448836837502046844837817655631546556728960809239500712504282102259022372494566724521920906854811484561796345897104700966993308049831352408316191890837954818644749989528959898896832792215533637324214390109845374577417559363880591063833359695768989654264561560025013914206822823589100417597027157034427091214111588259378258428652854933421834913522733336481727504104936823681145175617075653412496831006707674979462785793810808852115936820294757478964844026193017003221202641430019029288082351281145762565150663421582625909331622057799951647312592494934300513180423445792307055577269611339895210622238097322212289647000019149709918841868573444190558478431489411182349208016443655022567572980656470251131569390408540896567992069007503491816686808851524443617232546352455512808219043727690424101296895133647772866702053882162833195285507583330348645747338049374413145935984234909326571147484336303493547680856424602356892330364582780709997610341313804035723027763713006023325761969910710598547785270398035123781508450209756819233124341847855368984665931409790098834724485093832247095945522751052566069820401613568786603741670725828177335082469563812578310855068297098517892076531947499683075830418510259510416913664525942135460509176025631745241706227166655724590229317135829662313126111781516144791932861031397340307565982032389164310159028181821939068344550829993488044608808262309171901162678688998807858503106455075744933529230900998963165408554952915009190037476638185150500084138894926957381386729780810915303618366095044568992399508612677019245241386328860122180396354528724495793829628571924390127359100380131829378904222588333581705242868756457284010432576554925732012072996233866980261499949807790677816849968901475413864277851690833300105381067016344783553366647541000274023743571920675355919798710208185519913771279344103602642772335427626929273085289352978365571240961364582135570908414636622136248254353993176289492191356133218363801078494579066099343477938494195666768003480104525585673260723836642252382807756997228712479186079818461814961608313265821691024326024113479716966710592559841127612128763091392740689348828348473355225179469542734829306045066249265472320303479865084126505245621437903940357893899528508511734851986561999647909512638299163330668320497828542724915055042932749758208777934978665313003762433275947199348969913965982202660864522809882873676853992714935681507867699565040122419998678697380622371182367641660115532833918119673084835601502170757263977757043041699080347278032990021119487154200276714827747468122375518089085196147616178047276576554000058122219643375343134570459179054301786781243861135521982464365436027645371747178396778167566673368619587725783465909014481754444306203059276541063210483160997135074294980677953024001126294243006457909748616807584127523887327190880503792587911982511404281367610553240183171056244881232833707255437374682565072782597955410080295375875411573028951818185707571367672984102346215512193371265082747309152241175459629403414316466739915559537580068374087352755865233911321098603093883830338131201134200587474138009857364381206428937533658120426512207861167186636089935494419776041114413928344100141351808601963379543958472443040755093036239802298668848917064561119844439935134797696902847317629387836368055189050333614860322496813154919231471805733202971590373248346548607389594694723551654973430674922609270380571722338547717267095680648302047566888137710133460781438796247309604328440009728249184430129819480295225444230131648313737155051228061088604043754116847428323299131454537020139449393025190577174455972627482568975930795950709278757246898139558262441263509614884605315872611747545022622988546116409218965049703893075574469083641391325921106428553262687518736182183701867181553998634210624049131627020509121128684822956595967283193637286171781217625366323851802235484318248622517186379464977941890875736748632825403398036759544087720165117748243525520185689130372689862762377837091833577019847116201668182956319686256179628784974756264829389533970772702668439145426837272177343037006570682628746960926629308027682709664964736054865572655541331610900604379082138690453821398370795194073151183939542280122515176901023523499581795235519313755548032881711295741001474855960568596070679083275165875207695630083019314746847274923597242981900171008111175594017411228486653957617256718425632649499453458292841498215038433630309996194456483968661176773886909755551634347036358021918984300993242015089324619175646535393928720973373204957024163156180134683227126525816366263433556781401916683624043136060181441118453965445811118773538265862275749375387858995041993006895048495872061697633128743765927503886201922088817294587429912831274428540613441270693164567155417539496149165688984306083757128460225772568945366138151074986089707678277938407561311662713419032081365990166658175170203275629503086412194576166571780886263923293448733278868204238552271652037294598924563165080290211929893753094206843528600787457680705986914224591634424526164541388717979768955841230614657297014916377044575377417622021244779164019262088765310339581599788569947126093131409550680441982181155952675939293751922203812846384594302565131344768948899378904955445093631401272414492923356552149035330043518561575987926110614484306035540513424135086396399865124669922439661508406138922362448730068253910223496615052370388730167977169635769146774471858320239378418189783854316727618436434414331867586648106958000217310898949499788153523403615682782977827720311347636709610762251690528306063070441766430765935363505109408974363623789169720746563970617643945877685438769718008165068150288921672787252051071871516367522516010346569057500042386091863992226982258767737788549091822306837805195838801905569542833950990985560440100762335315088096450227739078100740858604646211552161107586505324285851638483055481041597864201972601722006768232841324778178804857662664469650615037778963848471267018104107646504144075654373905152483215106595788965076599792256390529231690934329042050538277107116986018391385275322354531068820327879498049842692609945048646138040609053145132450515029054039441963138733503770824749419810638164262372004418032778696589537213072116482085375566109753315742666539337391185176528613558224437082969878074336581862135324637686421445385498046762850938523811629548891083983063516613350706272511096587187495388634561429693227173090507639438286372426823310335636396451795094130165963357872934918590221903726173133860679934646602626681864969687044063296787930682100143858100025214818652057119171518063308071529980887677877088766755580728570930896132471213152284165112906843646247029516139377466082895479728915461821756957248925387370119963473300826783165088375199386523626131215674090816453995264080145488088088551022329351367700000845612907705652969332674022988030101727578129528539588698677633069281295818876823365730446831653267614033508068852482245047948107366398095459487387701217502667403123416813796523952565536948877659946652675740481557754888670496552498468151598908380467935927822956130744113055198959551915955989636995789747329550842315578843621099734878038913931440247185530029456357512753351815260914815332681152261228966911951210609267077594466590327724220033505568106945779226975426031240510590815668639011329558463945370415570052230993055579146389397150108284928822869112252042115749522357813058021880077074922810825771088146523042077730733298982310285752217464360604668620874881578157659243499622415798218270191476577422539928631789271151993734523516875801273816875876216920739570054189171791662587860741335438726173954515348863351451061393127676168284725472254104615676880698046344114760391518848788501672871174985610947212030692760367022441442806897735870369955158571640074700625894932817486924353515687740118631367562704525774406495699670828820582965930387304576749135860453736987915122251643230581133384752227864892935193921772081650585287718841655339308035283334252733451023619248204399159168671423411544292549416337843004406533661881893668622277222080644417588206929828040519626499516018162730421194584793040219020908461211727313635399794233059054047109755315077619993143697576641539804319777057735958183286562330243720284880365219892441755040935598797178245330128278586784222303096660275959358771775092239524842779785746513130637638325850872162159817553697824294348456832195550473596278722754874528625990415900557911866486027723200865593660998880235380873215298336738290563995256621264363051112955954726174646719832655175145980898631488915336347030636969366996514208825597424640498736746980729611789133074482032767772996137603174234284779465597368201444136453138892611907461620951666238764768502051082490649709638290849604854946574746445165206412179756395741242854059040563187164347894655405083174743639404835421621107186437604643174255453736174251157132921525837892153251878716785143972562819295362797723868547127349636050660516367301810797682645440436617719221486774116493729119781935079354793120511290461593889693445846769081474840627430966223454316407718501254836804866728948799816676407471428096070439450463131227084828852009903967007206496079172280141805350700930867782184279714257670171164418290598188252840204482203534885632209824109775911953955446231717082859889750405337271187236473830790185313105952265841092631730827491487376274392892898329391629914668323496686827078022559791519976136569143437674184157996115487738925657539465147315179755936918259550038296479216822966033178368892790917688264805280811643685691543183125052155936188471232580511012138776187994845497464193684736097436445583122053287376021950659577369319017539478501663562064885227137695756366121482099009052923626556003361730794468034554353864299573010915949002988695221369996728570343738370149809086939295691171786179588863338863554631625260274814375712972286365956201205966857975251475419283213041168020865901292373950201298817574053033894113113030460647383856665494995730716172332610870140773861905878360152877630431488015486366210421646316043076090043369005480136258020436784255193570917084925343679426041432345213541327291159384591394416162280045745469354245223074166762772098380521583114331172061677094874065290133941374023686506426343122868313492663836515275727315930408108189874888734396701132064367598572057914019952556178329856730520133361256531932205534835785326830286829836085874655840701876778905422021639009839649257932739938287862117834628589131270523944235448749545129413163231977876303874533602806907313676614950206775829427934207167923345968517244831192424513762379393651306442016140322006150413281928892176051110309999113308150259922549390704335356352086426477194112960217755105003387945203599853905828296804934296091527577629165395289013661067532532079431684294700484003497079283784029355818337890488322385641970825257884515783445670613897883874670720011043190127695705338068482090551125967207444542342464578020366464828337696283420406852137224145065583912651249639329760265936582094524348749920751579234914006786615636955003676104035026360236656534417852384038461844959325024043583336918081073498648614592837024457562217382366479740180970414698874906328036339381901975339696723493914205284794873511310354298278594761474931666041979567274678533554412369481523456342756783518525357387044326506496533029374460950906443953215409878485742045788168162673406927669436109738067778704786160303966029512145108846914699225484453725671898394683371163664053118252069104378105373259539040113679258801874801027055282354558235481067987619063209274702923649209701747447927387202029614448023037119304855667765882896864642408055195742651828541036456873762807681257696401873069447003568219106641488561027024239908604191421699590321173119055206490264270549324008295652503418439946455029725846878851394802112031390226191493762907176412552735220893890210078676325144564725754779729865255065330431685017436762756739034183093194944684921000483132397845184329452214684146908689621262192379665541440571102701691556612957047418992611909607271646536873842609661410045603880276592369765445754491122198411962661699095980347628709659876261757965316060169157874878275774078557099550674384009400017390258494914043811452902203930650469937657557746423259224535217187948256641953522289596973584947356008949225201137676660835558669571765991560103391224533609902762510117808737263454238079356301337623358230084247133943586714916959475118429584922996519870343099286955297997053639315803526013478618830038472713257196893694123736027975999409903734143989895397358967051371123194499955752356283228933077566959329441294398504880570239412945574377291304620945209694688736235943369941235646151431553227195152972929671589958217953712882967155412015626531630914888506410456828905164929055031372618321669654987542595604487056303536587085852883139475896575022074277640002950927662379939358975179955946324348435924024446482605051328636547762833532413879003370446434822367307602314753022258519599882324059459820747666685419862889693881042203054609035597576405293369672693858499818540588681372369308712219818084047632191676133070714144273893916112258903095950953569432905659464723027831333477615919091450178398681998226437403339552806084578896953546078441570701648764182662278314674474849786515891703674869981986403290725467222234739077106052394266028945832307627319840672728715271926775982630545642259486793734783691075952070322641889627320919887962206294812395799660071909254744399680975419757934464332360358854155619695355441248816714434358847947951689711681687584502055501172822320491328135661105388378814061165679068936331375529649480877281707085191604557415052998950824523371066796862140524069583062164879701809866068785290195918367961009420423213764695468086337829943963376942347341203569149938077263199163226282143488304674361682119734473214097685050036224936808102795897926124068747511717521515549627906613277337016454362647198477177561858803426211005116400744168476907546215353951244434712294920039263018909554621668072036086480144685677930632978085831462598500229718701589319819187119140352014803252772187083177871243487184212530917014379680339302770669965640771565591834409304077313113687376688565396937876773923473746355713111942841984250632384224519322621334228421580607295528211475977717848403478528600532946005956882404109777946289844320081317111491501044612037832562224482804591798090617187110571467815464356173449768302705465913725727250346333903232256743895245477734728146044905148605276280244606473283943324544584358895967995352724118210792949683811187779736820519783276888986796481465686773206708556634010257872962643854388568368106400852272728380025820960484872315649800081010310180092922509509854483774934870118984931967495080013505658450075236991067284875103383326882892178310316869211830063178544609722477668584357756531991856404763108862089366316758468442508608693169283440189361864714403828024995955757896186175383540320965097099248301631229196228843402538611794237293426841307388264545232701564022347583403273550091527325102166938412336683293046067744878135789600530708897251136005501520913350337629868966792542868111759387204487806164643809337119281578016635531624408647504796392940348373028777549257373004048320678708827273911164111671679162894594061744788105397171982753853045168835032561802915218905387872006807014052292552845908220886551639698599457949057522656404977547070655708248576299250162114008763455346300356596640215316792898149354064549798886944326749202326871901952598558892859630797596150671233005070118760813778035900409492627551520963437288375619961005532037307343179540735463550651124635167988856030486601365203854525088922697627271674039906934107375607112521904831238324767932605089917470074880333131792406214718979974959187891390399738636416629464506260791994931013798645571304297273958448742627895170584018332013871750939499936585156498041256617286183862377984377235250595923115110958187691120288243822013725816930259741338459886040202836192092995703475016125863518982570880244751735299453707923518071186344644145011410609909019525789836611968176872091003885168303165163977838682301125251295263853454737084114072861420705816917741121175752046214819955713938566413435958228366193588345326580729918630238296176311217430233711946453630965592362936706083936780907961419297229633506363105709328040357146562033275677879349853865268090588924462393773848567673495274915448771131970379864129381832386147325905553961743063903349486134691496076339729511445562924887734600711950930847436275504768760842476808264229796652904960875986708487482133591864964976574285724400881585864086962859911920157461159145373911613964727774286341637369776904619006570986021960131275141365405100069252919546864033046533151043023900277698246242875076995275554412782136257621225267009066316028185687526949266876037202952385795294873433998230003340402862372223487796018972077729459742291369107076241894206330518304423011193548419311093160558753850143666288585925441343595941035809149995629542575992200759274818155681619914536846729869736678641109342278569220789941656881840918907356779893712577843374677046543032975899994383623978668482097461820157164705875930659402642352649964942998418307711596016120614961821476475870545636870449006742794095812064352341069991168405546021747128009742948848068335700086782137679184053604310690957891008640951699137588350040290603941126004372523760029627413072599025916178421356714166984108240314148843851313939804648081695675920388822842438973965752191946484034174039446077586650240994932358083523004943624958848453332883532773000649167821959385732712025872271824918656524655833540055874561815914403479679289931876586173092066907767463044679383175987471406425016582746695694867809127780664365446441894812017418895969630431081032148902799471875070939376304503754938659230570273586291337572910534282209653527856600579780325810048436352523410672680460447762323043691094512266440641308679238654928119407861669700465840639598422165732097095086356630005710204226139002314965207618978739711590568481488558302381634384515180447489689663998955458915034218287807521886714735323466256160524077670000508467437089445073725241056375695755546386400110900800101904415295958677721113605340984645849527483709529052896545137999628847294895026176716904776916400197487983342632167287622424816184799161018604519072174984214827700908106659327649172210248309538564406638732266651277676997858684695277576664302865657220213328014315148910416579150541724662427427186883892432355405542208258261478441899506844540495486567763734568945639856744401815638383164284094093893161679012574714346125946634595929215541868014120288703350193887382347288102619072613169243962362929095275761431419771131440329507522105989653172552175959639231619154800231623696834070954166510669616340749428123389565310058444526243150516948405436425739728279959431345287661633370760925675163774341173442046974837540937703963173479965592549602221092282491529857296446800759067636510812915802727270679201626764795636730040381775738335189550139334339478957177801988799747042413102246516392947753915923197843174397840330746392088387265098148124439843398740044221425540514690949466358548909524224297714270084456666878713182350854970204637625744639690996317712068553153207155455110069407356981608242142860280024174705286076941997416986344311728970782335007317481208794184744922171427779936124161937690583882680394405151371511584833456392085032421701607179081514377003747231817588285342351380414738343684062974551433684922359917039454134904642653892125212886894541037215347670630763311601490325004180342815103708599397904053425300569293256224848460690570420148427449128373084575731292248253470948544378329933950885937488396499851730323880363640268547473788124978702907502964199013633685001802289717347519084268429488347289551283996440084810147870193184674060748594279198714256571647431924674522865602323118395827708220316576399712002114824105000726590979761506037010940617856793190242026943277063663723220225780835490447815524561314182734790964886356034263491377160750304250108251518443381527435156513354425225343834947191507874924602873592558128490487958490569101079748766842489662374252073401338936549821665624933170824924460960837435822494404476896955304838899246441928695269286750875245168978708851939382266111224832292696908385309676103791097396576366306350482718928626259342562995818530566261583184900226232698472375870841087674388060463419528397203176246806765266576964434079488920400345314442605842632990915744321371819463801227050962266178548050706754176976755254053352208329301058151415204931349594959641776268101803273599614119384910128387669607492277803225118899059116705223367432386442199376677660943525675682676639420289139648776721136508472589026723239496313556174944314567367858368496199912679253974263083974970378472214895944091319245214200467161995754522834343784291817672441453319279501657434567107522525837580298563706353786102538815909523670462211721473803120125085571863417629630232339718662886907428480945883756623417328211120178050548764352437275744842833620623817325961737683279838478780341830187473779499090510238160124311970746368205004952167494955171073979174882148521957674854795181958495000588398368027774443958508864559658756966371426637794877428334115762828429514677185322637888513944539740961821366215254786408883812581423249309387828904645392432984902725858638290078790561846225511460506693699326505890486060190272234476307754672848398356780866326299060464556377861347738361387907027567273318682601645639178584975918935947643338043237734675128833160986295642869176615283374949900252429356060653833891488236885649767932290724175253658798343952978917677871622498867887626031419670943044686755811252710655067973041327440568147659541052927357523026057385396898951561297066327381250380064970157653102825181334929940477069985850230146968738187594776798844466672477332391891470568783196717804711014221617212184793192363709963629520711961502593547043180036183940512832322576349504595355107488810446772490112219673570446510796016557003056084968523032501990869600427038750819599924341490884975940464824196706377815382950375674384308010093743758383186319345204065157891923849461173343177201138292579185378275938418012894896877192380774491317346038201819939117618909632144687452192967420663200480349169168249914676321886744806753299956410146094427682779837075480387095928852433102055104082338443309487029866612274039550605486503070076490764566201111394550105500682787729943240612860155011275365222490041400127611049942954890101832142017808524850869447830343930038325471719916988544390240124920633222876927722137378071051002449462114796590127490840571764694057542844376025151759282729299578366083888799412653372117943078343440719059935153198803822539247937022614404540984092145476696326139212634119616894094802662466097225747373125605086221528469695978836784800716943445414490715987621767420626189142303632866849249486875020979523046063641194800377368842531414820259940532298245146731025523950333392030248020650121542537694504848432145715635698399723942186495886330614239650040608952603492775377264196074680668517571589345592913893275495348936349268866036962897777023282182325252708829954691547201065073614200110332645539170344777669407725526336113579980798610783924006555400254094626264064098681303061665524681660404942189026682806428709964222402393191046274649262254529730343116409085294508492087976101672623438275057706419186936230486761565551434211331514213059317987518401760888007247999782329856225492809788298415085406234317485427368646321426186509331217714220850780846162309181823255123390713303155389832541012271749899108226426089282977560184106333280164824779837269393256160810098044434104210555152408005380710364299532963982281020016084796813738611582946354424100997309927386246556894931975103401819801848459938242249073541012334025356292866180357629674580113426916842226905629362992121822303895229318801332293164528529097731559599560242975328975947779798738240177045400961011512491631964691638829628885291879181387760966017275253409695651147388014724395961813155764030407613065819489532787539264910403780578615296477073378564976121833765183809434405618588683100555099105132392111700896542386578542387233619807123972848705496347282563483734671164884313677055729365831041444094829746453881861908042736515727493827161242568347448884701802575392471762959879569652391321125193736385354621773565406552825388060527630619352909303420425873544087354517566450496659147992184346459749588283132643485619772628366381381044168492875795190168398677558707062539027571745814455317731429378623706527863385221700503664113625224401361501716100685499298497452673690738705729663265497068144434971034911628217340108080951801728240891301652958165032849148095991079505264984915344639426655637042793945654434678796757693686685606508393443912202847969640648140833860972248222453455224712118866821941437206146816726503712107634453739573594878544759579763485383300804175018669534509459224051873265350351963506644362763146440355281948967367574252282766392629235550837458063752213535072530445587667819936669690285711652984546665201075180848468194690278779913945761054284461006490768471951063970067145281086749697553703599439946261320351101618504219880741283052263447771962244887178114022909251359905579430781397055649830123437970592941406300956479471350016384782654810837000798945375733145197890682146969381274586440178286592554460376797808743881017674896339403653206227000325349057957994077525668907907756761594018771294093670539516755891153778437524559898114794013456647268868958611099871491168653961787333990827270748403814800011226299449030326099026317137804124662130391103404957307866249109075729417575689339390781533623976869971295612446364770455272745834656957050366156098351041423118366621585861976778012345477234906687559197109474076883993137030346188441671270306272876957086848923500215250025056353954841473341384635510242121288432638248110221072535074744187368729471149554075850078714293668017527900146792655289432348577932980948408649183686398458204598055774411570457177114592141681218031834399055093289545252812856906893100747916689996492638488261504242528847186361971278623112435578426018989519828958992619677766802876268501625883663877937919113391766645661651128854993638953705914625510680346623207963205585212853517056063460583123014038263883543606415324067339845563573123312995890556291553020469415152622379152788399754925955488587133505343928010703311488727954741744219444383420921470382020217494151869147134922013683701972176051318056069496383172334442263257336476825747775020724526025063463472193686863940188764176752927092193343757242621428186313321175872809502521287142211612656517518886710520843313890519636795304841083049847579323038578585407668682609136722780340166044862140005276012984692773164946591500227347759709310322205224606170702052054496078380581029760227854283264757763790166161730013391144210732448701804577495434206308547651648979883990331635757131119658803057858605054868920535206716686447883315599180598499480301271279659468286766951598628621279289009381575783831314823997736280758807523863135794503026019381540259475038617448546255697320616667401221758696411431743180928632058117246004047078028466257828412776513935147292919487730397724903851962498780142005771954598606809505302998176099748694573714462081750378684017879305881927253408412171134655654409814117581515499102881521443164207661743702604739295701591069460293636907222044140948980532332603364798155059090437101791964068400777318170536757758904581198320377629858903138584136838537605296611270982874641989420608944001507489401593139679939336301876877674395109152424196156850191200903826979410376772941435930434956337475911558167392215339257044443039005506407495237780423725335828012852268061214485670156196346165917191641040067864414197895372010697797721511040462618459564989875390730676757216726942648368295427349213771194406213522757251257318955951601854103727129605723970463721127951477584303999795050501996490449244207090021921052104376199668542401308125476842862254270676672604966129987623832070995952114664392006018293501652110520860858315754602872469092256087997991434323726277870558720012961118914608142680410009769607016916772599086515028328121121692851516646778048977842952973881812170245566646415024872164683936086711619550454085565466547654213040737029755460726291637017596136489512503803027534211537235257653632654144960104449083058762027931849045358618757144175300685748016375988965591482824842531069250982904731153999045544207705353493249208521359785636971811000733478557808330819715532419617434076391747147261144304925319860863413841017573373544298667334504836970349107511622457390688662758182848458631933384892184191800774113937514009432438056239297841949372016433169930960417191908241824124660730633753529565755885929684281471414659978886596097615099655647997223467336656361339658802344699118245428953028903454809171019575381138122588127869527489139558946773570034040843513702447998829499084467198306557483359283990377468981689008875532722775361683314388884272872137787253432534786488854022588630859492419127696301824871553319672592520976732006258671394358346340639297823463374125846676348066732333992205029409012243060415708845766116334364293614685964079684441407908484864243119945814291954857975176663588633502805044360921269598442181787690073177260856768994190418850380963208604707610356806579215305573591080853866577599762077688223857305735367498782970408495175592636273062417708778770055451005251844110203822042220540339835307653145023677940098089711410740758777523870200435541408530937162352010204262246572359935660596352080819518726304767017442360241029090145243134376221463087175241601484339194174071440497487725275987818691410693808664322163609760461654403202390115405472354023919155591441964927730534712010824490043671164126465466438138032923392773995147973061587141265401074798627521063024360683059100154558908904664913704528066348329001465961662159360229572936385580614498961640856588077637614903483583496352301062932601734491150842038307278921844232559440963086784038845194211448522018701800383219704753831000695373227338054330239412487268644621115146164471736677428237874739099830070885046412248858366062058876729451717873042223990772967520438867621475738290774201717080301637317300726366688323379872399955531843134697721801321062322723075099071391810030570530423664205536349203517715484744488482340651947727090609597766556022147386481170172646381495925626801390531087590380367402221265196563852447130509542758313099248557670731805564842866778849175033885582859811068409510140229754153190280793988915516674109891083053534923079937929842713592756896658871050107529829668958578346980723399977721006060476864315024336073133006059500848464982246948617449734695844299542610961136725597923276626709098525638096937884998393898856724675006024177130103680678622705937893175080532333098037328775870956956123617190643216376508091427310851492769387078357782340008320231275597300690173015302353387980287172911542037875436590713327860472634697709238713966462581640527567199110613321025395504365871715809201422780222161573104544932499438423483653891312908249861565074084965202010423341893757938421064120997850697100000660165857072104953211760637215667100188461656998915441071127047634646298621140763543114046817692129051786312796580845707312039194199513129228243085438793363484755731734708493522477086234411157960354082899553488179508167104081604638895801733822110917448011843269494073100853078849387012806095961324436668796525890285850121447046977187665829541809003732867702690962826212061352907146313051513669501834748718845899882417725566995797833986520092710685477305856595268944961024831133392029201010270820301350437694005535196766936213467805139712669227219940046561323532339212057007346752171010002043947679092118407109888814775020456564996310360400984575577244013587936067510391824644876579774108152336159675346993720382012823941983484075663004643949865797532687963619267160473012754568621183663448212514019282123022538631897104289871800946812842047806341618902766223482488605225286824324696167091343882714295334963673121439370869294515236682793616227585461014552769862967919611754961536401677371639325306461337760544585869706287089651331087332408776573181460113387928699549514008251368286240068618751061940272030354126419085768149580741755530407160499422021631417496770846480097585145992264170772452958689052425266648081432315206729790836557815573083094664798332224116808765407905126708613933965001127568951912544293990483323953450683008952088421473222317927736272532091289325034823393814129197615011902780984001856752057038715153620141916901566614760187367541512998773891706793883341845633365293635444422382516574356113378596190476553682372812915553269574943096619765032801462015272296155195711679011739919312015625993759384852531535930517886718504659525107867210608683840014646811778972931426692208407718070448105615906327576867990369256130219571064793272498692482900169663041120574341259980533082987336081527491215202768770525332196725518751844865350006120525996792537607453057330684337139012275050317646162134080054692405833068388144120535158608960059192942252672917859227329387920696810037488975311680951176269562738513671025410390142372039768617011155995264443731117441015498350661493111559548545514709383477712252912704588228392517175243892022582235416633554902250677939335609680085609367402157921937168337665683216456013582712330873049796305077823480229284741868891358352854218052800828538779511164291086697271004114771827803522309710482725525513602937925406830694435473500036690496055549143512921739051293100714915188842698955005666103283216338312932925574439159058345600197273811876715715837816920055175651511392587626719463692795091229889801579224686688503664554168579560322677545112127242678051123952639696353490562873855622451535550979421771223779057866715789988770570295856012262192870422122694121448249077470619227353610657538967578956160886971667193216624472841667672232254157977102057218256148604435584866558017462359135159405547072735479474822509977499934675699062653680719256745536500081467869128336722714017496083809556344113940108159861881602879789540926771529544358202976960690939049892079762638742773769506011339953786845542660221033409749368357193732432678130582991076061928461325202135285874590997749327325406939635846432821699743857537114188806982897297480776482827031036137053279103113566321435565854297555747150046219668896866221409339021278863763051617378870776366554981602279157042420621520915887372797239919428426216427645467529259406945528122997321412709689697951589020198431810087955897699324651319051943898816250528914002447437662406190648113262147819416357208004239542380962567642567455531805818041210425505265775719506156597015305641229404669663636957907774207738675735515677290691642638854733277253589473024593025002403226447462500388519841023403214750661258492032488622842504685703755936187535785995325682814913429477597378434366032641716409892034335004485313499653726954362845818498356460454434870220776776993504224148307204260112705796272295343549313284326423660627995230885050389856735932497579499706466365107634013895291784142636549592092794749501461540185994601734916141498586006902164138751389929757100724561485228711606910594053206321672778100976013498098589407022627983506727911320568694955359558502731138129583493379712494236282530851578617239000609248487101191597483247411419883921347587410714721173277416166595046159813469672972670152826681440741118083797478780883493172225886603524735328214612720073885917057946131237560310047176079594320070052051226254158864503379233178069983619406492352855707713351725128651820194014288829468965512753518968531494247328369312582101472390580720987176035444288396811959289259961610003045212203288213823098316601655553292167932911373627678568042527643286884681763203686353031607103158162647851192330100486353328046691298762087783443496472804791286146643465496864792235000772508161901080130865487590192399340425246320211096887405920327426310396208985361372346136223775848733982688088334824875097559561894634949984716173702045040904217214514383928743132897671658787214794240193595080987771915100388944707438874647505489589025341921647985876144894093363744936340946959313424227889595132552874591524976970719115572409964251490228680130914713308838835672206895798188000394317996689149458252821519912427792245757738913203531201961438412361691200806124393715950660100316528244493688039482577583496183892152043221755641442241667358571694830617639279137747412890593341155586131991564936500054865506194116972120120492623820547222865531288291056041948577056358126731099383171885330216627120731564888631649036626284851148638256729886094522609726258256606162582859724355975485660214976157944779231026570976698856404636193332032116987817318651593778622290436195972861724910364043067548622273929058561404645128732426956087264169419664069063086252636053095022563352675560549647113836865682338764186809053696517830223049279118693095668213134833463766033467324445345940537234221970457524030769139637277182781168245029900853957545242290233614558144797596283327286298979705917509900753373008759753130617368734002504737652784667175574825196610823484777225634218587324096437928419283314892296829405870417815613795993753428585867131752027178354683189321604180055990780358402526228630724620315403605819325644790357494944175360657624228463315066925764745454128131306967801007985641890063202859575467548955336354193866773275268294040226600191688677728963782270235835367999416058677320871851421679829174562243703736187112010734482499212289238242629693707682912045591378382701270388405954928450101185144936943815829188088038718228959207813974371852448414810202642578412349653185758821301152436761584722092146341970981541786526666002164473885800784778158190537262843457329654321691947946619794052572286658112720905049515142553211860015980178335665209481846947771593704811317009407146103391263994758335173410472901731673439157237427166591697632654856206933526342906736019961223469846815415657223283255756808815977323785717122861193539573537789787238302359175483748290027465007177795903017618611873096673316292010458518495352985426440908019582986353174405044610596831638785222636714109387351653065960923802257711788884899563829622356403868540398530346431890354864666351581982691627002220906756241622105051332479708270094096589126473489007715611332180978917462488984727094190671324530240769612176177255022622452888821787301665545545545271339357899654949666522060602419765339675286594169289568761052018496125351135469616557517864764707280426503073741183367673942000725620146384666522925888548056141270953850040982096002668698798578170198344080226356307499797228266375801299293622287333996195679887858903973549654295158565970610647299723641342382020578755763048927292587923075406566144577180486989619087959488126490150885794989668385371849760755927564290757930683299135766167764659544207276144345865316838958029840594285863194623783957145269136197363685336830458520733468235086647997697053347255737996664255285595590573153061117454226967771124472806137101473359040925889370159298175249782997946590835220399588574029558083477603702889579565610358724825732446893590545343758758602515684865469071806897068899167406332113552736850657141740966032600407465260193276662615854617375044594588465557904379447846894425459115042360726916500081709780842754877968262882292240889557983693826640244978087925195816596839808881736592208823598779720129567565353424981855272158802312255671503235346724931143843251129448409669874257600550463944425027407494414944063084078722558549344094891898728086340943455329191470949414998637382271969779559268616445500772808003379771962559843022438394871917653591170561710092098107967384785568655841282558525020785680962861107836147230810993994048357621261042052862517272125099485698030443953273454726997546374926296819458270866757917309281494898656910029644257173684653608019619035673979863579885467541023052835524367956771631539238231909386164032012252372434700759072437345303599709512520857266355284819769025069976435621560158966819847812828085873336649603190808052046049103189346746496569554127460499422560748334077975272330789196944831256692523132945651334092484982970775371370123167696788232546945538159080650642151937419773844501242523394746657880175897442929836397739586105579232288949350395726626894920560538931094919715355842083435493768837680986822727629520700522196531450669119518267778004628098949152466817292352297033264920991052068042673019497745530219730109736166027952224617757967156684251354531199621394014726177703680515969233175987913057994218576711978580705387402943070261494836567618450634463834835204641539624071841141228893974898469063278368927242988196866652816857021389336731901964517213480407273402541744156172658910831953335954913251222098803852258018050850651352490725773249253504011912366035310406461027089839952492878898431998464227920321785167501268886235631996121779977921026750886999379841485629907713322359219011467988548302595352333942475035279418910475991344329935909677081441739204337981747409921167782029874687949262616264775597626072437935316999025590936982741863545825218103573908477983098363142595103709792302750989284290651488808492031444626338330763650172230776374295830370543200053799377145572337809259499662631002522344415511955226654955810822532093558494356962596629442104831741524486977043699280549182667194340650279476456253812330522445388665280939407821181823284836391032138199934652006158906583186401195052982978209427497862973761163743272874262057245063809960023427376574722443977060791744835829605685648048104693429374382816636139245097128124529162190840656292261208566859434361873312501284786149311768196803133905633585476198174956558137396943081175739988440101681338715936502348414212845252248389906549522689724882443079800718987761993253150040178238798051722190369329261100471225974793930572380096485771848333694029174867947839795985068980039923669626431473183811915132556212005831592409063311094606992342939095502445257912623721328102213689562093058792591291122363514075551628160627752015310286672389459563570839774053014431384919522159929310262800148193249381140482009995922032043580816903760426381067637703688979287713866244759194269158521082563373178407455703359732042200750171990644703715657881298454554624157731515068328237286724270031301757407466609475321516546195903011799976583801420010734383016880507914356134071031988152106051080516375278778554180173631711532086990592708010728539060797914705783565827343014228109159581146163451492747569764863663361535962971371227624944429020667573910266247274893706786103544895954727912749114267833740349134214891486812355450510459845255976959538250016949878689117638202933705103508282830371138253723475830657324302269555538122488186960574758131879520280485150408076200273076064700427939656479785429778142486612227913358128693272812947863878918508479092635987575338952070239038909392221031155610329043921797576559728551425076243263581894055736497951083317727215133958508335514078193198935535539791416703471863734790966837602639549861280991380739450378950665272637251753897763864826356930570200366360861882889896988557527135437750341271291171752922692576705921919000110176096103562026765272678774812353883889451481988639101725605632716546614210340640974074200132323763531821438608758721007878054594745867210351768288296651496877955967291916001500030384807520726758884092180296035328147703345442482428248703032048783414022472298006674931320265986181396061348284960439074182594599710658370492059726164442934342257529448352800476459945782050817231706763449178590454397992801759753357510411883313375341500462480267194627832519235991566519118239546889901412064268077560334628873126789577962491359978846992430460223196209997634817170886351702875387438836662516066786025215309944572744984876020387191377129816590362759702160555950060980352560032224513532656280112778881013318304178351118896427329742313223165557767022533715486753918123452218986829202045598092929558924006303698938610289168873857076057383536854717413971758262343429340673306838602832646168056614065629291350328477533379615974867759119987693684209632682752762983425212974307144617004074234301494196391165401007039954549131492398996062907749659857731821931623837499851917930420615297008335936872219528899493042803627154618806276002811472086137361918392960540496244597261419176179544491976061821301579836799130310959298791864100847599162214000448644373004199763716855298175902571007963124602835816126359053051786053706453202284583314796643196758398659652263375726618762892876504823038905973210448684589001102487682997154852513199592375132173272120321256450609314788058541419977793060083994041268025383397862750101053477446279914418611030951752321389318418473839690817070322188922027715346669429294206551803400533413673901532246114664576593419216520544960308440393857037476178026370480496356332443800673058902090214055739184857738120506084972177712237334882820490603028329588068074393989029598788396012861806356792768095586916418011424753989637636100812781258690800813075378362703619333332784057608526850130065324821076434653293551316037706934409285322079619782365339543411988053105829614016765457691032105719851731263857886275420737846644964690720512011860675330476327972814062827919343978040208340098886129100321390661989573710096116045663632110870968015559139514266992602482454291607966996908736462072062821678138802284607395793530102376059478443548959534232792589708180469988781240441248199090463312458811500933753860315429760712130469508995953468718910333698116619312598577141140318128002847727037589025850297361275156809466764853442397024743082621085004595006691311821766812878736452937655339848637915019214717552376695647035811440707295660193004305127380384399248618124689108221949551082377742543136768637841811888794072896527518144944715200177867954018898264196307031270298567266031586315833313682608647980294914566007336993287483387748332728295881693962385106922976170858654256945565422184587057785962808765359638456544661608564979442139561119997723252197866076292159849683265521715018742058647742205606542057597005553042264585517404741591561564950623750142656419808386100752656089052941722920096779235338790676913529085371629032613031533496435101367126785986618643278245030857490910705236423557923302339273545784442467184265289323188839630964574554644726433443909823894330315124045809656420322227136557594789862484305574814556677687218511513043164434778142937800921256868484427296987564984626127818403792151589080925123067152572925167884205242951476617266227376471565581103282013971454779768150867667479425154656233794059647846284720218585236577056345473515370839580386997350312753081362891507179060335656155471271757972746828157804418258983817365699889761605414776132827891840965546581552656622969495591699098212797677392568951263518899199006388259772411806383542498985212996296387800278005395562819288539682576658175461252407979245065370513421808957188272903967876749886509594411078094115455924670112424331149702979616003002211838555850575602921583956671105298382781535580634875696917920141328576214928455287740219416327637228748103916662377359294038797273415441973019516937683942484626082674972160768953674935296789869765346554642144683027336976365362695718813032838756395705116750635331152945791088444129485136860680070392970563105152565442631260492092808615209694068900392925570345188282927178909581445936197075988013345788027204821087289686745539491431118183598125637364115435464323311985465151676799067197337833839612808138960711441305560180196238318934429199738240368509023837986988691575816165767688685007786854749997711472893647118671469264641629191021087047169922404633481685306221184985527570762756049601252737185694412347936516999102297412102254387058620501797113702064216138648497149473650787814269342771273787244376278030094181525882106417725052312166150770447177592774940171929581985312976967685420190687838992197313852214489343370802826908569981925883841881979967228742249296588782142335357264485396184069786246863057709937078837092134624198128149249960490297334319343098544490689369414808328725677480233094136522259237736207902105642005928688105690879444485510367173298345459856326841441886243447419135557644568098079989839154928836297082280768781319090683823095326094456256026198008725363861942657859634666271253065955481276140813725064541369974643170277277726032270568262525463724997095167284521388727922705769407117659795574883954332408009297662588235450791287103370976046330307011753546145088355312930087170262355837311367442442703180002102665891464782820027897773526971763402487638854887742492320832833517931261435897661120093828237781237788620477848419988822164421104728821224747010851020731593454353646354323763135446244846866406020261872506228495352264493899755989242323541875982602402190862417811236218006949601699844715006538481430873814811522663744976872258036284741197073481091455504821731413630237400444498605972867703964199093577291685696851034287381135595598355131011980685779932696397944862062566074780645797113116726019859057166918346761748037872524863117425174626957279663383708516206146190307754124572985183439095334018524141569046088965455140093288749264372690949750235291928407235296561758220378097255283170171422164828458637137920203903102030401702168511253205991731480341056444925443931762860311053880995297651285244718058691743044949383452090676015105430429007584503622208291911739198709451630801830970590150053860515205298511837606841038882270919725897524407053996599891031009997181096323916013185936669953511707178555505215729879201434283376903064926946893411557511192194902515302752128469374059171653547961851924397362033759903554308811522578767933134583777993904727427754801048664295884228468009015320694356262918299441887234885682345327342442599363724894536518041854271923540093010774606663336272495210628670079382485284909214200294591707886692912058556643280046442582060417581356357956531629901796839262697824310270358011925009542623371863663492956621489198978712583407691986087408642638272045501224598783656953952289984143655741507861151201272129305578675245771856660014924146462511661314044513958864633526772146613849254539469634583126168047092129870874292386062017505280148852781996495004887306707106848617878185606814043847101737512191055902554624288122031111159792067217952253496126229555772904065660616947041107977206677099836522339780642024033976314598692716788879039265644537877603607464886667265824917064317303370902261024733856558111379651400955161413187589148826059122957086672684003414005667889281071367887483520069918112697012804931580029827724615824925817719253093070338722926026131580712567599183280813409225442324362311677328386225680439977270618256054404902497060338822820311420025511114262249393203830212519718573657223854788649452010033221032961776823084969939341431047730675636948649798728455431039865491566987009345827644347804416700878507452371243385248978094046053674435100225708328255171367554976394690441780099013960461778951726093510533677234600879594122674486667375274479579801266092565695437324042318077625561374885946946935371906037512147914209377989874464487872996698158873892308332770164579012218698972376600318037376166581669850870213432114060907648068850791563216512705308564954700596083708867302886580377687137099028920967513704843469880433710553343090629477333159853880075350517323693205395825686008729284748217881237582648653074547291902294419597785747043706215719925314854040108965894976090068124670947542371449729045872164227537183561245886501780545499892398659597778548137455894046206108490709920005475144460717040043556250224500245422767301003476958264288350654120195506143981572904345195334507953536159385481966236961243346791022632912191868364029227524694877170249562269652646468199805080896691024992050251413945817482661272199001105720441223559331692277270412864558261012164772412196132844122624405181380165571277036938190857130062378940359712675305825898581343270502795360684970557163772567240916112165001984888958470797810396908766297362148039199621909475503709315644502881026313608529090268541937487428690318554184993234094900183257703801361007171136234769349937612997248688316602274511495098383885864112579489179090915490644549309901545430824488380705860476660026229449316842013781373397951711400752502675760105221493074316829288806226035676455247534296456888316955433483255296359755962203295456202674520927323818713296336159754905260726025284605300652701021768796191963564131806823638091259646859447073888172711309041907795563683771173919822775636453865363020834405316005516601827986416510429602724281509322207781551053039036050218595592415169391366027942326787495583777357578357653478515070123501975947663663178316072484814244487800887449050013583691833023792862898790743212786814747668774771364031340066823714459784193683219555558617522243593553021709999143800992197267692846576851428590230454244600707202894804902229550504486437020030058983324581808422456525220838129507584302293732270691340839421181735820965331008588420031567498752138153773491020478246368071572409309520482216327839058824448942102413044722683430708895287815207202065789213649784662226832709201374999520853546597433963944657198974554046870169669557966728204387225049252344593165380678924511394735453420185940805997101809418604332216727598170730538102587787671516672498324683564193660168170380798175432637189766031515947286165375324381496372966327442229520042950718016917554776837785814036311127709919164641601371667598343937403749885971379398010894362240663594762894746576618649220968954638205675790209743691349507038923596144709184452220257234893960982736088910217724314131918831039358866985772500980122236060415298675011070800625189366982925764995149598591407777971308225889680946333716402718486653348164930017833248889306348315351666070907955065944023078814930507969301321471088675240091777877771055608314763774309766328166005038902152762777881442793877021236870725913277853784039948603888576930289004490761831045503391840397086622379979278518827365005606110027735292343390937055365455954159642734500415186431638413985825742558826486062030439763541028568464594365395557493598961271215172311560543938288626577082912699386654595621231107947462446652245176302162891399544505168913622883585846370949059365152172887727907904378180868659803269051134947483900288728221734362305565154253618952738198164321038663983410990101224128165479284349511748037359737053235096997772029745432802304476128652740732283664109473920481329872211888678361345855547287154394967372269631261953812503035365135646123987237046397482198617389209654734478998442678773361207731725824128243530698050760213501532657784336354192729789585411811104547875606880886776865931160488324424726545242647860656359327294058292200015478008811679576627263872581823997989093260110878032014489030233515773431970750425186270243402273105983351280236465271351484609698208680117727718999332346454066539787961569617342235327973156160087859161547172771021628001815253751162224799069545736253594743200383195767113023608368936104750043127067769452308216409174714458756029802218559866665467450869731935439776252266505801020295514842991125976839442105630054094421149271720478856277844667416782340762814294809222247696120367259890792073751674550722592273789131564287881479608457884126168641317117616029739501876003837922263026877019021584235302353191760069410216129526468655607764271860084995790695768680087704794198663846847916180819455252549466772988878121635055624481864306266042518027708635684916862340057231952205107881003572654784775183611024409019369010098352271509911825444981281723140830762832976559622228453698358749024962648491448217007474306723666442626622319495801819028707694307426373153632864209990624622054838358332876187442133017810066072446203730191213344864183811817438239948449986320438361794267472993417400525423896043052071258187727482746870100899302184749912726974837900399486268918933170649026854224349677196405250484371359934548217052535340713932373497290307188127211446618358705087814418357000042042443386791609834584218574382693123189986788015862283994780152309245504323177078198051916552811634744813506478987344064623174886048077040215989841508177061085433097137668442741653956621610224560437697361296841877285338701718115190091757605785610769334304581061300779658774689854208040440749715421367073547078515636962267203454603626879450685444039191718613935247810739815063907435997493102964218949630288468994819036131174855769865537961205188111532719101798816960880782720403833127924312129902856753212772981449761781585900286558362842068950134342065916694400448764969388785843835238517114544079574121880083318650097162772517051132598834913169590211104643379557890521822185473399700541788834198407500297520011421398334116461441916072013743145715748648203900251759622071139833687497789027097708868593406818254525642107229669807171491186685019820495593056633757814066541154439319773269820068931193758970177446310473120554160307393701923851483827526154831539812978189488927873862144449796103280957705996638795708970156461357047206791954413846351752316882546703786777167143752567473571666597320742630209936869679693892396376836161062031559889492234198353379313537531484104060885392839429177455256849741059341499596890882970149411255811686200042626744010056863780222357792411132469304597265313436670546541347356865938424365646634195578930053640235462462453378535460262489126108239722617929621063100173177619994181301158876623933245711961314904214020501607345300496605410908793137409140033937260974248598087271394065932711287759477596795369635161771124994971802444339664380898227269003176713208996421369356017483365461086653346664491652227654947796006799708117057406034127035260803777394785560785884181938086746936467671738927024645954288533374506939213953900230942014492916229478005874195985371710574076166908352217797146184256191806727967476341954719921365460828062944620005151043429517070751361434368019843967390879512241408776974491688171834791031152421179998433497103015497316138252777708591767795723119590643406341729042561643631597394515605549053624917559944522731453538086946052077935238387647253005061434372659767441648261640632236465967764597801905877347167028076603294150945040632680166663446645457989688684277684100915976236754670372154142303387488642047042090102337227175985841658155555426406787864336301126255175456244565890141281637671914131055211075480654101108219834855885188709910900811742321240303125445549188310219441290363578166587443115231999794651764872780462010018429964121979568248046139263947517823402862101771357908220819417056518376863073875215423720703890832240712823874428006652181789081091128915619553138496889386722615587465628441779209486541270304059831788209385598668195057939631020093120663022552179305119454786370933992420686195186781496906301991009268272547320936211544425938462444168443230359387938633887319844458865599973412954425682124845430825901166060470482620800088865745546179854069726587613690999651614262132000239450072694028325170968627970878961198869803859224260260407477768667869329270546802333387746796823874310367289498121214253102546735815293199964737500860594774349078212796654802626188829402846343651587123754725792140775718181264543201697866957372899658657543346642750023818758711802462001890323280982604723110658810346153925924774632236379942595885036126715098496972440056523865578416065882323668205435629376881867409470833782628078325842363027342509181889003496357968171433448423654658035681487927413629731236385325591264956829046357344542313772908441797459269095669192681182241422268391178791095258929215634649534447926277808421551184339494173531850471596298443236724093241812267389988851561540247822006913371092422751440204437395320537171928565940499786463190403029449147866960491169835614686058141302243395824945409521599490453651574397219000447415832890535283802809435138864566485838025378152878374158842926238458719734764249443674505347211812015755566789843120455296038851471200955602856497886844094530440148928620013570458449204510679166519943883460604106950847908816446886672211420454314574680734515622519453306755804383746378864142067523462893262591367277264526939379744922526862425766033374434389709907987523451993685818508190023365311761352012504548088387207591553719508529031316911784597072056160821146353414560679952311029268223414022406600271607085348158193085341560809400448066097915879607792897435165662262113534943026631244445504443950407963003436179199398876365907879498396824304821124473021755204496359298772347562994265134393780067393170265052390566783854529890839330411112028100250747790553070340852939699841123764792617054902852080901335599025898846460862020272104790752670665454989635321049637823509307861418590647555508326954781535181221398641021457681689232725369900470992876064560650130431685572836924195759492606526435141130356977257664650522129117631637725352120660094689111729738960674333635504740424830543040669985667953552531061914619417632041136422421182164508606781600820598364538262273120772990657048170377082925203542623945330384152465557659873589698932147633179321159834411869296293084040038360831436877869241913871933957709655751402716633935615500410387678735834388225776793141441753945315539274184649176377318125261628175212841763326680654975236628390381014867276468945172726057083694783977218625030295282351133428197260750181387498208600012818510393788118042385906338157729555378688405904832502204167032867979249265609340284257120557063139882740340401562316793828925227631239709602950309882618099827054954265457365729697096775790391334392386257976689780237617827911103279177334075345475064765721655191889775912661984560864963114722898299279317256279363319398683449253337088896910362385312163637803721627588542857820214551379980526196794863562336037933943616750533513889240931742330431689600138554769755873002586239028616497709515404825240681918969021950451816327316218773683324947309068366019647782403949063023781811086118826695140031861157352386392342409824227614894670575078564324903972703865644410989129585909966774035201663842363692719005852491715251652704996587890744938459361683513881971236008102397342788274404477963857002094401293381583146459166870191261323732606581775450407411655377830761289769701887807090984185348565405643267440332229205741165631394657965917919279184350305453192071364809929434261256422661286365821702234862475225771906940664431273362779709300457768312123386380782984562173038125459955262156546500046794526179840928139302791635958276041762335807163006554492727339766828398317232769437798133535408965953571057090157933599741085359191702617747331536221416948743544594695530472688729412579580315318432505711092421716218070572288765463032241651006608290057252349554151998478747280536089838467696247128740288734811826028848173881535807153375977001973762222551203156766936087315160922069458789380329647878719348499648968497144224105737170428036788664819346694070371190383837745704153852756164588622506005374135074919485825807670587181145512925918236846504174068360140944241597052945473564605764031222593908512000370984751027236121789832679367847032189969008672435192222662867429333771671622921080372620223338211886579485017085820137272802652730650724530917370830478451047670536497482039984405004191701019099835107124178125239259640618915190301646133599453624772290565199091873525419955259921207664645110351920243263606915838070966334884390501895756977851037539710004410457802308344264514472121960091895067048934156452729429402038072510112973540518805505119256261410621914128487267192061886688467136496266490742774661655671743095723506574053478078635306476858881955617499533924170342182086466529544399413701323074484103442087707306266720562714971041480766839566766927180185324085165481376057546635166571783126727544119016623466394069256293612144565227165758671762670555802102750135205843256667395122676013572340807581895994551708088775434126007301259273658374260339197568304032189869035073904767875953306575709590571212951798261412973500792251582907250223098101345800232785342024392391651968889632521132517869415544597453919255283183328464531035729612680949146837467899905074383654938635796423391911530276751178983525454851874230135483629759586580926513968419552532863802224123903604154144585281108658611436423214447856276307130822118825273018529607285333950263945427035640836466903664053407566320268374068683184318133524714359274714610943952556108088352611104819964690639609624683690635021602306564962748008119765659607465740359621011037213590791951098139247479910541350443419758066366475480422955241143458208758168371083536475227668104372086112290335446461998935174809497519540873377260553013132495218506783337337485567078883458251763331316315276570295123006166744114627132894986772048020795878009813202528149028602954164584786800342734143256535268006726967275864872195385150292125249472029004107901703475819682448974562995742552356777866931746202331470144330326940184334703488757000740928135152623752045362562167234962937371032841643379752696051464570156286991085062684639555301912160435877360697141098053115230959958392282887147989871431645838868494425051005090710769720196270972561053145774538567218665630938206115649209751225121105713441975912079825378819427586579733251942315090123045092458814961469428834856498237931209087274969704644861362931961498734452475918046565607256016625457331725514993053681879751640717946110944790819785552053806005303085672810199170631655742976517963255988681930416957063387091664021730634181877923918257375428713491154848858908746366119372479741242056708239692996914268332028043976604573879971327034079227658130839364534982050432244179436795066962411561627278647704040653222940352019700115050045347151391891179057918670291375229798154952314669240256430837371418023616054018635406170330833896349494817188426148711440758333811683716767548801687750226251503909140387977010424593477911283622139373080715225775185458399112155660184232301162719030385703981547370582076116320603893129870792354326367888059208466235077613902729125210178761567878557433112412794721227442755745382078206535855393872681944210313038429741338677558707471798546676638044932820913446263589490116278136375099778277846589558463906644878546453618516220423171163687842513199504722976345758663082835890045396533334633097470391307136665384248349694594936926428940759793531224029805420052945599901187623984142308328659951921044485507269457303568669227329597619267939521721118592290408022172547767675443079003366730031164235991952913666344663365380834492402340205544197048713984902040970753315638130782308779961389419442101297943164500081186893488355972976039354267273530701132379978262595019109824446014911602682636038578919523825959986669726783954114393822044605523091854180366651851785283075349852540282782551637008378582263725433433672523039272407792521078497836894867092898224528432876595246836526725351075681456476768862923041228182407063994463826056322132595658002292994052329651849073709185567973685292592337680594301126319206355981716457869189198279092737485297641699077822805346742582189753304298676073679778724982221131514046752860586860714589181452117095651818775833074745755550628100181617682322879635625227043841388310935525187073933330667067899340533629972659837420183460391968218083329304896937688057312454902232731282175078356766865819390059521825866686144697233242480815953959017578190776176238562942615389551483311792635631332974160612974125165486601338456503412306931248591109582088843205571888129442161126290108188899357480467359732762443847186577842134014452385546336824879251053766749250361073992577781184072293187265936973898688289050096836937691403783686008954155015070725742114536975065624175314394590067481978119206840385970448777798247046564966637857893846245116427303907351191115650539686788975731837322797435179349038258471284562144292331808529906316930071675703727190645613652501932788088015235020507281452916792013725776479141519939514572314530811180524021293111761932397737454055340775410793785763580880941580528073916280900497150031873431446971595325022215600065282244805788126487964129198838672044491362271224153520255425076327994089904997457754974188072689326850955622403391481345559309867522860135190116133017446689354030064939690487310404122019583731998178882654571591755986157566274232548686617482960581581506263905930448706848429803148545370932152506171878572741955437708510027305282974337200121542507118862189829492074393596845215392090413531951030746709469277996573513989601173046105142903411393169081886030810004054028771441394631974971127018331127646266131203682541923961836901997999938338114746038990049502329712359598001317972705382990080357510508747985974725831701003714424369634827178857078280135000425438973891861626800879418041677419151404914803634302533140486411469365519066504262568403377066238024978050422475588758678251996173933139205355607251871245550467707288630495940315974813809021986453686561618829431115296414376212816622293495111065229676255441701889747668624257914970094210925592590322571766226282812735837241729372028395039578761446521295943091966792831670271355945154996979191100773935051944929753085510875299885531500476349720657554636930657138440998307842742635260380767732083843165204699949756425206249808153213216436934303054995911874415120670465791909293072080530754364675784305838263008847237908260036184024187756066809650145589972676377186600737136155153814128932874110360879017027693800063399684193710204645178206175239384605582373578865002119399408378967552569336516752651033056523614673228640417625064925675516770502049353165831513159760146908757731979044471908130597651830483054679174280808265886017201561196164403748866699840269483733661633947958831450662863320740466141054696836264503797643824247401590280616394362284793247039571657504680946423910370393137609614603657260040083485869843938880707375300243595089705231575018761335105648698473658082546306716047412837377913588355703994683013515982580527383225060573941732393585335163921005009789709475761781129974011805843312577128296101941547988998957849756077835076570290909820743424941954065435343207175879201898025867114729240656195573906002645383836278305778763663152125424374602842515955463750460495173112569200474290823027260768316613367785699307907165829930606835010314598403298636076779032013849539961078323811431939799657870689607298049698035982427539352117532746200108703405033272822057014693914178190712848964530430002757818479493630165804052222536272313425004704317914502559617548469832908749877926618912984863020855246811546890815471821091487180478221774047249709847370601418150795361753508483249583368376565714013137765718438317136211867280664998822312767343526279243569700778397647508241072549067422744368446356475543267475249893168287209378725908380635373542743900899485417163211710218508477781601211192119640906670400818711929833915338728749028225076390291874376881109366559792171817433858171700007980617137118070603220069373753205285541656489610281195432913373556577658349180347847634309076155116730953754284771654197415844589129614600324455726652926142680767056169044393255049845666506838639359512791057539197110377850329131558901450152756343273406077781214117629949440358507544700909066813469360736327278850062784635521104156494860189318427142283044353976112958049346877882254920305638395095107287494946437144372513261782183401385237134449943300848411322164846619072647432844656098501017386814797308618816376420407876285609113420021467188388583792783723489802256047944912510958807222224067362502011139111273359802405487790689528082129719302165604825749821866777741409349822990820034266845636727185949845538154410487350817039363701912031403046974691006289299273110831597665791341010952890950168320467556815912502254652857754228220646535940001001220341386746791562223585173774826150644382080707219153503827805328180325809116120017477837217822892838918161422930864159077413971395296092335743741705458383410760109828238892938724543060674409977034761618027826006027118715099686907426048184684523517655421834173320771762106919676289359974812437587725544546106777294883630214693287195752553790447633410846667985481233686200586457895113529759745869477144595050316309927922675244762134229351700193809465978167511829442291088600468622601305028229203752139740346650147292841612669273796879989835069260489455141530612780302244793856637701823393424097300305914836999139415245137223235575862916573552732269386849223158070888188431652022888956158753285498524854229272376521304896312864582037295069667242166036735886171700889373017632473606302913820967068982671141642222670185499528798073924316723861036230472462479184451089434398029647897901854126223086013991626906020630312810361990000737550158668399901736890682874559974466141088891838223751887549312810948049735855451454813330363852522615665081724886738027529909929254878844168031990683275507772435913648383547428130192205632416574930897345994367674562157188920224420537858237799887111178562194761205753151644009849313352611797566097812588140869598926672380999822307708516176620562671735174921540081477419030121079933437441497880417862399134611608856881353763081370008560102420877280794255976007352373582067239150168862886320157862650502699150497552358266932998247765085275795025037726314870170608124761203885551680456243526848670588021018049855050330352480085671472818655949545365918645778292607104993897326825288718231407884063809757195383687972380942474135927750949926308905387428958714725318997386650127132059531900032123909087641384926635402688674401282394622311902528660838092888328747979856276301349562617631320692051122407044370824013317361784463164559063946399833885522115566151471884430105912263505482345543184512812196813363508763343333018296646833993512396139425854322663188594171805709012103404320725824261379630731628974989978952498510525459781763190152266272873699223948157008153850492679695182396339034212317905491349294297349771009728606431297901886884785715060211081362718356621362746166595811413653135070564214326228806386396391446413585234109926582837161659624774644689975813310215140813978811129377634844551878099316632986893303488114316196578673096588932942505122938310390596184604420601026481307312714256508145806742600156456444500676456376409728511510717817106837158497144792522054329508070714024237615285918971805248699318946405557194594209081119309395383555956973041056998478610089450703708625305015815683500500936172355762413670446214009279811241922231349754706152285650735693863052721225312508053368255774851437126441470682770362706609948833329245388307893339072498949225325947323505256805248657974826174193118389437346222529317241115984301320722584171579059052931394380629876227864356183681099466375444744724168040196990867394818280570714460752120257914163457246629977034232143459126655838200341995772503134324426679814307931890906610146671645940767726040183764255339856091980245787370315090628948664504142576787292766780880719801838379627180058591693217620515889630041816276163614587100923033762375808687640297030984665954189886405111012183349498454846637537637777873729019653130151659267829923623246725661422001198558007729054695853747219599509282993592309640900645791016501197323057637847373626651249223235956414865921537530133999333458096403924108607704777404060638686705962285904216660040307141226214947892255629143264283575830132203175589901163869264212048389961830626465727047800531134772635140870520253467960155594606435352120796334246419279339537412132846592213426031875243560017851804867204788822205731392918536907818470686726412157552526967595805944156420186038590235172650870543354985069052289283865839339581026317086978344144989207681622804245581779293012515731354608329191921830724079562556380579635613678553097962638460251119055932516220703202714638492484551893973339540942337651129747712857281387931354360952698476890174043059703002646190469322203905137837873406209581892111069092807771468844224645815555500310116094011324715873766721427377522659162805995886086690995839296240750472774244548440922916836635752400971498372316427468458181815675246652828956486728315934946439467394724783334466188474894743903431298804868760688804050134418585322959180547399144724497525545198143710202607314606578115696856850568384044614246092284806768752964705037035038720923324735287423696268322016693505403786140410141193617256205706636545747585014848364637305135645968844416545145480364149369296743189036979218948733183617393592485428981030735376789284698876463187958248651537831673077034727081101928435776938168145397053299035114882981377234864836008165431780944596097036477852236950148462527861785219554463928743156061622629078043071020220918793560648414443553352941677104482586524051842873482014100479020612213971311935756635137125278710181350493001291342794568909909097575843664446881517210762596281203533639063964818928801684821270881926399975657641463472913214873498577533647155291431014274585837043228495480497654233649779765803400709450914138747291471746437161210582464690887668817461665973380831648549317002261658146596498666146398999339961018594269432107019043439132981798117543730522932778875146490541380554991515292591608470022823729748548790510097700740945856257803341133708078961661767739331624938094604368407537569411559657324220057663783184988911531706166117743711383506967668788549401558596027772757556335585574130549897525712403441556254352399585516211158198581682619682287100335755925540234952616118684687801708907955042232021565125426789410341483190234420522167135141661905232029440948248163246869360988581829871689329046128914375896854415934840307932285601589795267591907215691039284253224022029844547333965815281387342998239923601253869427839820977016145597647619061818062431703737331432578484478273674368265449442891650893320687497283537008271184161773993205481804011201910585027043217927575231827317634212661117682286712541572733511620630518107161286381379246826840237290647805247026681824636918957844298776886115027892555707508670305582073292312104091860175226443963094215299065471670478233631265458717203130016629034675382650202458118332460454677482730324932729697293470692773535310578462164730932214873058297504322898954194801218528096239035219814899635638458129705286403904503397156044576725631662224375858997012752566085524107172153958485602523936633161144979153596720617790194143363707358611271052662883968833073106068597814180100603412261249990517563437183171597204512242875372201959922109879577215045644350793360894866546928039278637880390983325192106422502799427344892741203952190465677154425111110186967517611748029054654395395219461701925699573960610473928461373053950558245364984915527902447830534920379081662243846839457420748155337390615016358163417802867874314782110862545095764881142934098820074955283329364577292324914981478355263632526069993063921699364247383189266916496272895755870113328375809505964377648825431454246916665186151254762244657657510783730307809104449292259346811205224997670369211968909776438672464970894092053184730881935280550776177011664499467547065250416648599871101526406044492966517132254624601897232012803663753703901460258009636673857101035644927506104802407702835193800498469920848428133033962404015589353790905484141611115406078811535069531194805865021629939257186644675910012745267757373552681007036544246642149387885550350951943376781310646791367780905539122425062095927648901094939234229348515147417840428252665089939805661336753725439545988569244470483767463564975921728527477697818102026432988256472848897730641123497733818691353661749809078142257083625250970979477770770056690255566989118362007571391602380831958306287190434099990642471795353871947625708797428226713436099738545479266602199348874072244780611975523852268248794984984644309666551380018496762574157057912166646791757138313971317189427914774236232770252369758881332312953156506942930314665428985722705074238311492356946545542232816087528537079742433013174303651726760269786116808198342694991169203103623865268371616243365364638273856913863636995239943450897818072875898007291142949825772581360746221342988619303594314132925501079752908187615848082579297740202834960484499379474139771773183354853043467895093079858532564414456677835855698896077969379066242439760564758091043603047886854931085740203438075611475676143832538984323853394012588987067398526198687930442166840225851479257881132565326874583738624964226533384527053755848586545283139709571099903946261493504332634730024822325124702369308260150300422432195521584371521774285715981205301510102142112317809958553201120787903775354082654661152149096502073564408218822424193500608952031175427546164067222464645667544388995792218828970582703406471747381423028949022101921310550203437524738894543588277513772043672274124758272608487396526373909200904112244569047617037009779397552779401395669874867069871036560840953358381674238202185982011604988274789595041990086274046450968627685287997192667489094106953296530972738020233582717057921034620212675585513425342675823379994254743072723609901277712303291520109432988809372902092322767478473318583151106971335337871552794674801774097343721951734053127318035008365157544554707651322417074784831500370885686514200333467922302604722717375299803823266037008995639498046111673320141118930113568519229704088641046609169726527686482540833701857261178163289721442314793345442074661176400073359405227748819940559985254925614725619216149742909488932318731219975152547683880258229892951727841888058171519206143520664606204974345771025701854128291001853124680842008881460175663013828902689352053971062499513359356639523690292740035193131391526217494769263073347673334969094912901459867786810208583045167443546982238124922345327595988882005165603825458982957595494941695450662687362965368128975041710298907760642567744928274918323557192637457906157751982166302349446081550873877948198682397893249102160157196196363574623455623128688818092077503571074034752498673853717958701414460111602878528368328254452312753993495465427823833244420320703828538115861824270738406706789309144193874072688157622402912797542584983853277956694361724743623330294166247073461510834608542875967716700601749530561695750001743355681091115640186272524620622505623461895733906442312170547742766872653411145577799103511934810519169583396931992874571993049364053406699806601413041920403964037672739564496106803164623125724243438598394018961586305888815816914934406589731644508941149351678166993134892640704251922293840298629497892475417307113001874296981695896860201334235439740092490244132476773177227233088395038051420138523526423691738565990108055429313571692720916752186861209570008333656422710181807894102991812881251573264493194190327780120532016930240684445695832932816853633146844579895515902001933051484199643213227531324622301627159925611127385525541268762733886050174536614522262813139143639469263062995440287148131449004153272637419812339656568812384642717807372559282141195785840564088510863386538831634580416917631411523728587221269948301892799746797102831615685306654564997295988315115364404538390382873028808855669593022018471139366326012332087240261267745750956776815438540684505335404488688680382816731148936097117323829370049807276684589055624579152261086120905407047728611605211104039948378720997685631697512880488103955230275165941182731876419462232844001275221568450114463493021672659627461228287377992646597177438697145227956866553727438619693670465622049113392788397850906733333826661195654447651554270257499776518497038372218288384641309170059557334152018947756468608485391195340476665582670298440152999087408797392961138940007694072863762536928146080462467776726822680756828540942317572527527171453201375020114515390388242407847103968938834980764140044546543667598341511167529329253394252421233511330996995882159599679015556495572660409568215829544829062170521697010640328034940217979300461188327497335339627066052016910860352265426432530904919499405758048302798662582604963830807826662894704946083667813049064088059526278228849112102969466983783539772128334251966322067409866083053591382061729401188502317711558942948990803396257094216921683371628931431193997988471486408882529813685401859343289416264810644257765267489553933192701867970475616599403475780857117624050753111208746503898043043822047127926327555545506152426044253293433839202344353141089692534801481773531723545093220570731791344871052105065336516469822800244340186539928348117457556897186289064391240647265613952859929431079792637343954087451798171703870180286993550747088729139231127566086691403627958639451732756775836159469983742238698291983231262872397052958224122626786540315160797724077372666248734254891686662250897383501174388890193095106174054511284485227188145242619846365594732113159715443674355088357653378676470747618868162234025614588154816207362175088069765050606553104943859309265139045683716293988701469860029091522576793764639760899967991823698717470777746270409337169206536357930279616301324572736023769382802717500128419215524940785032307268936145756904583363743649739540964593218715385802486454956710741312260208299669968924264943192483932957592317790405430629464847942742009173688436837082331860031476139198805424074571620602948972497519823301084281109513130976575295468080480875188504423675038290287531584719860995193829604322936115313097639908203545038965561501618841765008034077722779518545082944896545385276807553785359618585986207355836123785706300781068794838128044015622022045708586338873036480454770161554319389678482890967613288169789290448305067409347162961364320519920367782217017689010404976028052110108862417129328809419183010458987777309842436286845881057053007643542544265154765700813705688464603886325873158991637835039993623800516099949280644461650370823717870771465077351949144884129981566613356490738255912910017997105808102354359576568327429380729193197508172921044669441179647226380661146460939951459614560643682971053893152578881005562729628410212660616911430784469971715246008755204390189496451166243189760843653998043289616727645782882433242011892269981901959189331414614101366040792800194245635029433690819218233022069761206047666596333140635061663958065658810256709677494036329275149303436555216426521757009536449516072783169792852923214593838022744647617956390492062343076161832142811938156572858397498211665351883016920753639210654229183393588098295119509742213668776745889711402877862286022841574713426760152028317522427392587803257345565565030614481903171850425566231474501981935436630143152448646681359350873249193438469012888225754889885590678264924020633259584710139277765073500213213273785943045210947999357337131245235289912452843605040044164313118089227075020146143149596040296567000840438229007620365806932435542785557790426000789929588507525828410016106404119391734941267428474431700956029261248212938815937036143037953006903255578382741368435331147384323311691071081040074462111996589686046937232770736317068109189185715795417374818613212747388039130042326310351945936765681059616297409802790411653607912900349830476377147734180191236626963151767675217953846042242978479155875971647800167885421526413026452479467506631431993254316289068266851219609245684203996922038726026274993545024813785986871083073077357178190057143981738430724477098980403340797692297664542053208414814860310692797081226438271160992479114666292759927907435929666739148849690496233410561503589455247768432297607848174082685893137869569977125073472254827584246408074531535021624140226488709051361046695361700502262178768599324568509171225374554989287820760008867520293916382988621727215690581307188483193688020439655369679635333244679263319206300589499734592897188805608473081048597411017555908349578755171876217704514015555491449654038522814610945832626674846905213841414569555201733565383728833028413366684379616828037358988414597396670630192274441669857429997197972787204683956599517349922967677603828360725596678134683875748936752541344378355513180279009327988771114350080313722946028240301503236627364279250134246992243215801010243796526187015100521136894355319788407929728734537255235530644051448537687430821246469648256175132266701607526009418170808191048952692825236274679831097904588679751682619015895247667100550008706879407539204262902739592655324219024216376943170429557928428446639498689629401876707743015822825644698696102468753070525712679761812056534727952883688902746342599851421811077473379296443600537481578200731766954857800257939677052980646053907410325495260656375476209654739419234965689933645635022190054306532577136466019983396916573610644534243422138954836878507598688777086482727608299523824856958225654888739198055900940628575448701619536009193820402893716040000930868155030582963830868060542722387546550224888251851893335959559965321048297985032640625369821809277304915907928716413696463247604957091200642925163672532423176344758198481169072243043035333134217373437170490714945028126223534873696563253636777753148159188357627296981308947301529096647416510432444220771820882679689443035470017725135862294910088331993969418717032341564055151714126799586191223973790175166898907304978172872075623833614845347741570800523338901352869939936999770637530694490717456785315591902485163196932671196934809283754200949432887466572255146273520427041695418348609317749712372240932111687415050647322872653133694196916993957081976237807962696561150754493719668181903394765719948941148045738076467153205188393992728258436551303397155490112472902092772395952065893486335381575525403523914061191101471345403857230132612274504847299632755356824995466273517574667355924365274493768773195640808477708511399934812271822342757345349154963651993637224948786415573205949146838270701711726480235300370202002092333756794156901521545869461358937089681967499947915096580529670611731433712596485334219212297777990848611945207436066112851349512221180822810296158298348363212739629622353387570213265353272614857193499591208912295878638662620486557294612332136435378752465282472381318917659354539423017152628580221284327046442725960805760088528544205677031636590114719480602524775815126109657961637480776247966532871262957665793630118320883005431575665838642719517365901796994197550177349432562044220187740019293561183727482676417213481962363635638595204295561993341855703782774815317245496427703647507715651498213436506738327174922463694699864409167077435579515452253672722379212278546928585512128976905020109174090706539802664709882594219812909139053236413564836428744158466161923471074743352360105720370478489668485052264199657976577548969843264923808888423614475702079690920322270525444804811441671075892578981961541747838122973624428673091563819977044323733375942654139809326066625333434725637483182631434399845186016709709481832944020091278000044980158323785865181727137966369156398441392402148589549985688589037329200660101537016753521427717013202137376669990423033094426793792350530928464621454118893403296432756086507498760875126085820790036785956716487830635025381541527406103701996773778072494495194041524295073488520489897890236944499193302221450927538936527227961083102362658622935827788894111978527038793986539716080127553565793341863899050292566477152656379737294113756629268110458023427337762513884592645763144631231231463714797436175724251545786368121270443214971769062380923412715214137079662505515528148692504993731658961911235487891417928178291915427098389267218760206107254253935689675681113027413145866520451614907825898694871877897032038819064151186597923218237373274498771021570481997713540782554045401248412176951497544047867227988285739247261067531934352620168024142968068467717687594578033462412170464584223205425247473503272862737885038696006344134345128300154890336729814103407145934607040930715622879998317771688662774388718627969570275072685620362828798642735408185213138293628207580660495642381781197361861351999683325400588069844738302588759582291276756223562269194519256927616289345495541604896043808837099897358083719988929123726753574074264576417952933215161815587490884791494957912058719910848682714433848082770147359197127665050605114531649080141945440108636183725532906807913213391366778399596371774901803697934625497939224132762905710166373784124148166674317924970461833392478973521171167700886389930252757997889940915645356721063957978217516845626466320958118392861523222323945658632896515549109623748573255953603659980941291807067494416696111846643231552887117992540170747306600777852364838961692615851417906241900314764024296950614056467061174999996325792978209902868674874111155889817837546692487942890529629609720257282671681434701750216829741918998196762286255563663834804556908589709328677045821083017319170399741252271343732257852704287963068510565744869031290836101381922509415791860199140857590179846885564282351055426082001854582878546388280149838220797297093705536042124854862843639166309553328413163318212449427859376228384660388229353779248529741483245551364412900267524707497427066854336047836468292584902253101911915242742659414580843888422750299883890963465250975188839402364407358349725167000439923864526294170016810597917855872067752651363054032589598528237715677822444120611930769160859628247603009121729913397086165212079197673528839306517136884880236014848180575282717685462363796515560974791316819523459583424998011485462919426798490177913136221928260897627171602470841703452346287694723323986260454338756477874335552557769239084913265043091040224715172262365107125599251902548833025715788817992711429275311991740815456275984527949496392887268905538241086863926618118823333211702688996755799143955897684252087035217358619632102423390527411589546421573950642388468374398918951952302549714657041053356283509277874123256608381701215621094085235613241340341739969268242715919048231415256948659127411049002615250072958029699216796892343182180269470475343770064984574379552812613039566498769794308523675548002646474143533932099108245012030300951216053586152247343651976996946828631298870268651618920663072823479239868302171661524756992438509022110438233806562904011574994494278521874227579763426963497505552583542896817892856629021581490934258530480213670821284497788845184015369850982285147022484376555951634033615358858804784090191617450693595457426349238369886354431288667124563137830143948879102940704531917211539598825435400247298037900009452204691159850212499687082765362261868128676054981655444398359045252269032517550576287770139936824472797740123738523730533760485171315853380093707705132080183766485180760362899488137379127298225652203155467159301975320024822379920171771911707256530115760453017323748941282652800058193903304751977797929148033770092026835388665877828631238296940695479321728533336246116204088063995474791776844253957669297641426162480298774145496915160880285998516064049512416690367970908694668787891848979098480115269055604955797851742834930553305447850005916132952227669256308729741232803605721266464299260942322455023027596479559643027209066616661452325048988126581721691176299307671782247326101571685636090407519938906532149586087262578751209755306537107699413548609086795772619539547092933167650406850996999916443015109975026302188699635526146812665919808704727325884184354980082894095368786707290794224905012334228580399975328061758022865015381169078787885725080445103322807193082248783495526061168914486712297441115080545032757995616756013189426780232712158152368971306347742493103972185621139890937971120616127254571048285937141949608577997847124957330511104620858461256617354600193820806014188804697873560277127544431591584246398200150279127477688059022891825713918665776901909969006110599870487871904289497223926704094379989395191363204514724320822617460649883995267930601535918887681014300139732196354270007063821566459710358805356061879580761437436931863349949030470189997734970154251362034005436102829687882737178999718489443128713735829922682578334599367625935447614805771573645694701016203513981012879033595151879207811725136843856114781323999530542859427425154492038639052626114643414830479524891011915945799905996325226019611873527980361295696881134460609058560152268228990047774380555915063543291312088404075819757397433881724936792489649035215354567990719793481205579023205865029060633445853350391788029873348343603298806046990216341279361355947099890997021865347975056597303881534085478049392098912700012032345982785622765163158652644023183728217918901411793256568416981198364761441978442683523435396749678379342732886979578715484300212015602523456125683058755985742186285049193409336305037727088906951295507087203805930048798097344641084418028361225639517573166450136135244161603501379486643718860930871750432404513432775726234823730333841888438107163049304971371181789519624088089909080614177016450419425231425297759785428576068026824096197598359722501860842161276653000871755035661379190039311100718043072691010860212477830357424525001594407822482416721297940785271045852766262285319305262497807621356754719058553564040664437165363843892454968368467475257413166585649358955494964191989486442828520284590563426430856017371118936339478141832344939004690860883365193653314751654192831128034289920725260888410180501381093505129326686718726078452699627585231216811278147012634251576586206208756662174006396703875856907810453264470034847560119515650712345947681475346892297502584158523205663245355637713925083664992169055100473620903304907046760428984183558384261359190946258837912012030578132743501029587879622560458574987021540303444573037535440958475917101912149535072982557159094376791054719683710209159470985354540855302430067735519057536424975907482168957937658207006134361318051851653427728492189036519400280282892670030269480607583984371909697145156431869042149561472423878680991038566432326149330387367340855504974956338534940837756023108759825343452088625385525617001395676198529477557835357681461155166547948257769799425465711433281870878469739643773570928826490686886022917813052303793224426550962632023200153119950050997247185907085881531412704494503077809594305489980263587236383931156485963933129554777867101915391481340676062236339087643269738700886513004690005445841993050547084856782759427838389481092846454520053010556599002315236643185749451201846612953156746617775883828518039419135346049298715599715119388938375447110249269092885448186241168892525886212936697828446376977855021310798589150650126186597971817619196822655683351879238226734842674377438047330434897470312297322943619316221395382862918572904547754724312921739285870284297306747662636877824422283873115547331752703816998057936563999865131758955002875618166395564972874159908243585941851382235111860158316913611688790397529585732810020569944677101043974159587348377197183688951324152564880102299338770220556956520730093070937069547362637437063801701542842068045930819896386342618100769605515011314574703953698184230660054432486295256529385315896305448993397406079132469516934876072089951315289761892127988146136946975080727904069939300268538457514786987863683752910742073739988488273541358658238166016043375824196792112910615750837898950139105989788800542427344970313118467199292854816589616258017348092035212262499848199705238211539337983039465975020592734936998908770759473605901448673376612991764050343294572425661964140292488078105505331246528231495095669785809444159595061404983992727728442381078847129048130757369388471059442250028904311089245461952023994655407078024524678528195655985987252121322524192763680052028495621215547881990988460673039055646786541230526790746737799668370685743867329038907226360842120560223268837608970974780991740366662683179890960472519292935647337595447830180707262807535450989993900710020822470481706674894350095915270553383035488748291908649387269839368435809785862504727844025136441513240952687674315470317618406755194391879738969255076016274227126999408844076472816907080636097209939419371302223955747574951915460499167947015634219776140980445553172159013976008370008415811089360301351267132644678822005528253014734263370159585254680830346729718807247345622926410088442624883865985479832801651709958174761223493065152570691209621407843183472908789492832835711101537827662373995873076494983962480778699021427757857151366067445293182142260865292784630501931781723762026045522819818416565852422834198959028701174173259094053576829805267310188381572892847450563254539985551465827563639504288302723964477015688149380110019344335127079303604539980840346566967673960139249494293598525856248958149321390292493935160946048569135149123587194400137684819690256044292278177827692663549048182928726038429891186164776854971672186343638905804467517772064431438538694762285301321079495901129747012800583743156773562651364545638034982681930965834136136188334700550011015606932060623096979621093641959520601260366114276140555412776548925260342844375361126619545653574114435113693416533165512167777943150693931178983512922753544721052712446216090205025587096634375316129979760451152657011912135734737970647767542907211781326417008274707560750450324036559577163059519137411628656148424085891057631140514780137153017985730606117390264350002541226610679784227203586639243965412275440503425366209515183209094406016652097161038380168723454042698370622262797240344787798455325309175700995836080433737873759725047783313396970129478997808013002779095985875207213378517742608248199706167083074523485842424294154067099308804198861645106976519499553429478078458413173640885053142369262891992480483987751303386922405138252941123838976701441975849994966545458549808378674845875439765381271551002895596667595728908797220334599046766559080533384374992289915259359803583318401504581573683115995185309367518692232754930633585005310743132100247389795603830884626385016488446111601036244679348434999645906762535368467759158725728026868825572222546167361627627204594940548139682353857262250994982831559355766964885156479049430304213213380438230602663520503094374758774735823011240768100534340527932657418263240313495879802257870550538609519037653782973714453719073454145456961467003367854539451266840015151406199561736068893443897446570049506496067895186858808005463506339794650005733343227207324382493248475197376078040032334203962217762952203213199321596157628910469620294985418489388618668635382892751161026085962134867138172629273065024732610753196634334936716303078440064461049687079960866004074710108150519042182515466055841626728923080893459040225762328757951180093077658109273289049456260002804870857635335893853054071058829312136082485136928865575463087598738214191069839943294378669559335998829188216420065395938420915696197684756313326530170006605126333115743547226021945748581322760157270383544239640587786755848830376807606478876579192517759719593374199923106702776234480932420274865033591555546219673818435439268120295648453557086686709920565379474423334481943728734346554910609231868652612967994247069443957921260078029194000050866784320127805914176630121666282943348155853460678122790627843209439257119783624490242794185023776310836726877192475486869452007443444032838722463884477445311119968542354403675303447060553769364810023253832050292133142217384994800245006166168807214812524186082651838403608300645624618506218544414506985616983231222260823383761735310674191796384375709177384190586598660581336960685728579248519366166686165955005740554863959428375021286984395702096577887297052896856063320258270591356151001249060974936950561737752369931441711461338871335770783648958292918181030157952780696216693907146666388392082973478176083405001730025265678194016460939281638905479479179388006616687101204247032164365207954632334221686010562448478522033073487615115052813012895550192130339461368245084089229330076121195951803279822277665611992936016404637779367280543578731245159712144410566719024268967510950739108199777604253201458655544781088991989809906976996188666336231929330366839199622596595246886854671835570815319110836890360188495276845192948769912549030137480627713838283340738458874658951642016789524193489239497638121960970380950220282906540199821474426298535192873198216335790761281815109909529605853595200221781131693724804898001181485106814175822949096579892081818479404452185611248831382162802372111443053719386512573278448640312215993885678451010674847303743044456153348682300231811275666771247973552405647868922059414530641549794798235255634990781677245213320184767883499938407524266861023532522024575593337066587287076459933847631116268783339730020882482523620536332057529213618289140390450962492756358543127571696749777422091714515990640982572362178742852276788596512231504581474110108101841524632009057699856806287283367353925842143598643761644172610025495558844385849476119807967151823479782539819127011671285447540907168167552322789975788240105858001995104359309052291867174011227199765623754407209287698582843375826549793503607117499203908223154811142085330557937847298151781736987906719913320906276594295624772692544277428388268687522063147703054321561038379194052791528050473965199442008915081852338250429121362540069440580638783425202931176221765731943366450286471740603565377959376379080710505279435625535189995410356778282447994912274062427309802156121101667131501654056487077265767546747327828259833218778684916113849328254814623122408904953702907245219760790792566440426591712329359798567411838712006082626477913935147372716490878558646919636164490470481487968304576525623318340559686233875333438510285552864147139343003688865752315483227141397665569139666165908289502040543419219304790684894605561356416841829255552310449472439603244468048728285467918202876435167105892196808577550941397165501865044227681611057668492202108866973832805344506689039001363054461623477770029467529073265224940575320467980186639566536590938142908345297280048364946226994961760374400928839259144577148070493172929107798555765001905135743866469721848333194162434782145488346905010464790774840059611761354998242950955978007057845685541519261082387665437133916172428934705540593806292938242979969160303070157173675932212176779169042716868237692915873790160461353870800493676039806197047312737708037314243376489344439423860383151512075635169228849399479781401878761667192384547755138721272511461759979799617483073156419183390071768163491796032075842478719604789409019382358703380552495166720632259499891715587079315695772155921264847560743457383808395732353789591124698136166239829474661072784289575106060080029221505016778043448241424151653792911950423390257060299363478100912770927366461764927409603322053560639595884916304179192305258534127345738010636974526816648689970317201376692061882435994624785950312570520596430356902600328435201874934415656933910647987239780675721431571448024103391419677049851258918730907829827801806757126716100720590832996401755534458378391380736895777462440163359641040175263425823793314466546324721399734017800426003575254816019960698858061337260357856288369764275070483879594708867719191291844739235053181995341028349416776015847290690721387337599313682124199106302951910332944901441159117567429843757569639392846760540627294934391051233789332433160116695952815553939122953665881302423528820433360529476320813389804693777797524573473542926338227717523106081554398089887357194259528343716782138945062680260676903019432872504681562757433325359837277651338636088929383026649715071785375884358873666900101212932669089378632016009793469224575368935655993257883644462722901885086001818766196400894374295820694702165594082262909540935706348452305753941820433446115768450803656331254140008016769559419751028460573243674396592491887841924455859332107861306302623275813706729554006912729469706801805035994612557455760985918998206484672298564574387867147211388129124216974812240804747073842855015442961289715190159719687499491324201361513953378587745338073085326959169510029831937258324620810610536158661147614405751733511684171248037185314548686138492525809595437145303350108691093964791800274674980326503419753001297020066569815221655029674092417711661435088179173377028429502247035285462603652677866425673008999768074459405902204116407710498887488312585634116067268742883492173835013156748968213032985980904294755888628061904745798986789709818051250943821178079027736525835091231287161185221887326155391972368451260633906139248329098044706302250735260495157436508378015204060243112601024369014196893993925123113144371524835676987894953079416082149698216504675937599605491520133499612508903549102810174726099534254207887296503982870935711974966387796797149217149009409994964676368752352901951313952264707268953219599481213621637060177869801655660204607846605492896371018483008854363161602883446860703530564379742893624407567410026996240514901888718055654707362958169798847563948925424327518515400382116994434470008047211490648736041316956526361414810223827790150125758223033853744868231456736871774141511382931615240987256209567333423415735439673397362175380209472545071118341276396941277555384381309890980226419065734959619052171038437210156399520766086770153739633537878564826539973303999471013995146095931302765222315093712075014378503079709903493896018309530590616597385127672903776587199870688011297252735105838208392659400225336651278526047267525488872623945985918049642619467419041043240098977065989134087216082390476972998660070126704699860929099864942511593182810679911646462706689412685426239989252199063390390597223301935382597065466067726917746135395372897030477881707120405091388088075021475198643820977755764050810437956493032585051813796907056426730460415747148758524696894344213657762814940805630716139169063824810117077405153993307258060050317723676176547176568635204459586509129374768667996637984202977166729074712690343226557394039378409020462068815234990279904478702951300666369232410009053905174727957213431968566785751010790459155654538947780631623234871221063555600757464966749664007876688058333811833057872651327203196134953596095530287808468219747722601203565290612274700489365537496469577186035132163967504945154192587653619629442851706080689128116195743118003489271670562408921569613760059700527510769819873960006366202191987411685707463256868413943951855619129771163125939285414122024163112791860034884737639051534741253685907520771882573189005039900570357559995587914524921841409544495905656003457853539705119182303699644255166008731197153199636457799385507413662623377012665336396147189956794659813609599744392951108751747332356043752310519176939740648858045152490122608528533580022108370953675139837279298316165490494626491436294796985845070898863187854041935476540712559462802667344269575791143127143068695374753765832516916908934131423022723738732097550038021080817500945116869155545224173937782381021102711644253425428925989658933789490654229649832473915330843060604947765042209399888238623828917318964468733497575702303167999175964286892813792723195184594216056960215349505726046068275312374516152840664256678279438802220208054712791355571556356458037459599661271498393598589302625284602754331452826314730260315400892045221525060516896355680413394234491225470360893340245764231514993652350507801865319312216757177388268725280875538016233438012212045728600094004837301202253955624234411290597594217965644888758822798385016435511480147498294204699034565893600320893223263574025185992934427499681117072015860872454767164774173983218129948151861753130968055967701338363223887443522847956386011519754677783193105205020601409243953664232176630905779698583805067121575441153539614006473381335607753122598352762218714380416436647219228697887940076011596159087910061085618722957340428448445321236035336073306080539163858257199937912036022030988642702868259011684999765891310488354989426659526079088157025337754800973159548735135841808558661480565775171068371458743891782849366296759089294928116925394160741149866462569599423218902575235294088821078374107779398442950180257110921535631113194154733995774220431634482246235593018304466505357960555855821554248229321642435320260062732114108180464071880546562894163964386137350617399357833161130518329648702950957915694996811801889980999309468734759866833284366013621534366861529891128173805595489689217133620167959581288267108227242481625819233973603746034650487751719384123389663558772668817376003985196598643233897107977975312725821061295396292598422149157172076043296901592452037682326206024593986344135200946297240657738113595718008799092966877088303127037669320755483251357921651993829732603295229329471682682584021050021287127137575463986017552770070010675881552539342770010173770942320509037676160983183584036240447651947267706455634115238516069997448516743910960126305773234052200403903741781552616701719082435008381328607483209462136045227548120689228583268975125068712829064687860330845114126065822357606470112205326583056603027812826404291675286946514351041973377279258165001244791357136173920124263850291909044671155883138505352171488918885901035983726187175295917628003537748334603970521870391181663016895587179211655236317763819781533407628670376084136823990450144185099389727020623022454124775955120676622663213778358228775704623927681425324764133183186360985181665795309410831553218318852374542510348688931411249801694082210343319837841215790114866238961874926411260322021813072768847125197108759010790547299670123049317217708522751629048673229965818588839567361910569077602683602472515720456034246315939149224246521765427456547752524632434371307833603123958293255331903214192634918058785128261201394426236382996705498579013987378225787741445275301878855243008737244838303809226595704380595100631503884360699139170842418417241930766425752236695587990230386449538555894436739103994264011787942384179939325554185126085172949798975259307254430349575590162183780227497310869776315083446838031899671892489327995180741521099265289131106798387073894882497077627875928310591700659912382358595574230403450137021826584103955032570915507028833530700201395057160364599365148316758235552973398244100747168270198365219273628535558360059320793001917350667714538115751369448448298159121314524080985453334719031626874599930586519811206232617000219566497244532601648355574114972580041059732518359965359528716090900350016366235087050345346440207732014231672291004926114629404680378007915892353987579626779499551749406985174684242546303161280400143309423843160150247857239462589306095351972688229855218441234490877122258798698755170612987245528026519333872138009615615603881193865678943441770190711166489135041560516373841388068387698240048902244225240932928813607749970894019603596219826650717493285527192567642194805767693130758900412209347492578864755422185394300010119367072577402543789615165523819817236151618353285959630366360144396923264233668598011671216805328970911655818760854069195382773341108757120023666550538479617916825197985399393319518295475985215339554133301350141336687164263506188395449744398791017281391364964081593085505572699945170478205852709587851084710360988965840648385527840271427439851135499482385739013264912254337005867950822591077347187110611382125666025306828245686887878271709533274398268853855961869569884562311427376835855044944474833253040627648690792867506904283171768155704787374673480661915741748041435972008949061485918060360352457598567616140243044381571699063419848465760126670519169736237269420503927721395657756671425302959700342256091861222389502651518349802583783093291617214985954299303224852654940853258947254249856579694579803738832354720117775227246984826665584871115646752184921174030247442769372615792684812089350396941796479646534633250007435711033017018054793073569747118820384150079913499008239193836001504981919433191489626682036392043800926287679688357315383863594335185070406059331251275205006271133595893581992515943983265608605193597779591571451637917365097779262568126054048861123415896360368544152317954171721629475179941967623852942889695362636735066530250453908971411839012760700732020758971676249645286929018588381493066501758148573103599527562372401281934790758060048575018357622896647445524743416194347118662581599584909784266643542245864042445739177825253020415334900994598082386524962684043718448136973557938159656439865103846470199440738201530333969893984582997659371821248640777234036828850333354800599186621190169324028860980230653865310187282700016334669654169352519738536376618272798023589423251954090936621491927006092990275799526998490326938565016147314994711007204263812397371142176600327518353414022631435536639356195322361227141260650977367980351438348189834768215005981909113942431452936340831334116477337452808206704633381096493421091303540561443736246638900579974999536819465208194298736684944342135574935251163480474840858081602878118383033772429911304617520859218886723288137765874949034183829869440571191153796319020366541542198532027660183938598977476938678130321449215290947913057688795018949222579755228976282060815944427099759101771704711783009193695152203316450575898444994952925940367088717239776543438447002259303121504627320762499564008570285915966573736276973790186790544840599492418028070241610931982852631507700617723569178240338546590679659342991506410270424929708405069892897094216373492037560558192932928377749812361400627751204759622727826954380822415823485996488091721688335767789822762002474665077493439272852075425928359785690222120027489648435209330494154346873351973212123376864607156281605941043536727341010632330063405341567215237181150141572173296186800735278644876746379609945902107116058371950913030223837685480907618885235199760909483945869945166354180675330400373968239362260354757772719188321063866946382484495760251431317351845552492633614973302116113916778464697171149055904508400765235811424220467597669882588283620173261826058914812861861288560060093106045514936672424856793161617613189041255399369784874381393847197507532243271384048508250152556701639679029735217288765041574565730098014638763911038665888413889849180702648145261831346160686794701988573241744793664247122283030024415690958509295071967847342591174753950525538246114655810666885893136355593182985788562020277020154822148674468814490466303610645664263568392725706486076609813727584713145595176816537960959414911534957935883052629789574999850081228811595362565903298202871846314353866430176439053004329779578404439349884081458139542338022574422059608627821133245593915989920422208736254855989979949321756249143156927462329555002703296120153893387732488691105388249322977853611171952003513893942064811283198530678710430413087377835607437195211945828717559718921288961580716105616373754625354357659740487444935536718988573690169549004402920913553443963055473725514203930045204322161587851394751645505690427544862093108091456983956868481092272061922612053610058369600518942598295550887940402917271901973219412631662679958334299791685010567134683504079900171591167134615204191763381017174878487636751874521277216476086616541195529349361179369979721829474329910379398121214076256692474522626644683691037424764874252305395373834332208170291851013348356215767655039050883796811463698086597873275831747352758539154892024064905223373748835170321373645294527129513945245965422823843424466832235374412661160973027511837972778481191138507413838516150876972816389474657228217262447034982790835190968815142034836330165032205589620345248840683172422319454631204528174338056093864660123819813003158652815409302984399308537208750959730833744176298517332804195089634865948137909301394857452791585887675952645068655428698427261040770616594057517479490216214019253246760838318974965478918448658590483090689501859093334591919497501455102717991481439440019240083120626008761588332535833565796714402571114089117635629639664109506777789849489336913428006323863366246134653558811204217876038664424800998513554949763806302481788751113036314318639789328664186274020834359915710221372305471474659400678810337721726552508632663074005740325791865041194976425744100058932928953683137872018706380635028655131705784249052705436023032600952656280516259614797595320243155038665014916012206309139599348188201029641947697081873896156826102029520857535816921035521176703324661307569073817201307448314679055205760373817599725122547330555433127373122013531829613208155903903987746394967732711512876450444590778304341616446263589125697346828596249599772448407090522305378824711196725971417459758213593896386998349340862039721337029411654181947154868514456861463603087570610688150099912685352535677412593356374304078470140623057434019148619166612969410783280094664667627392508213520479916471958129238211833767894826076582068951149853350993178152816343824165143189292528392322947338390536288673694480717432883628713755071441887110653686132081308367867085140457893318571135402718813536070282512077547075085700337749761071691471994715105277938040171921997339668960255446556684221230182410994345992883199868926957570173946296470009865746214242334075629359262547372395491044131106231627923895534669259118252346119069336700504236552123869898545028503914585333559345264033550931949672782041234411754724017629057663379459887958008636883064498237144747815326799992591090225961877876736400586260508506646082092821946957962231103212026425491515982851654301170294087881075827437968889647504878930844637746390914176246725053744884307856785616033093169716663839446298381532377226517369495505288086327040585321807440158348532231984196962439354476775525680651196883102256504286641868806992202103973447078655700194191305829249645365927582336683696478369058595068794521133438202122550622977573894987124850210176860435384069413868593600670762244055161719497396243383394753534150875636227289216813853416437139119113612775295413159462582120999195416572683561746754503519580865767374484812490999137712801915800784862661337622306260674852080977262101080516629748929637659366300105649268138930370891595198865393395230470200945829850935725237442979670209047474630300795713889476873489057609316714930754388424934170213624497001131050041022844373760646859366887614588780236999259824461307089615546557218930761390840530718025923516418522836079533083067194464873520984851082574905774302654561888042654429996630420964502217062052809277420338739356074411045210185557276035929916367158905147098866086470511142308609024063655464851407789756672687024153389179890717309565533089321122594066721939340605963875208586931689165844974854006250281005926868742505373118249272010965212115533084426628726790880228760745230757416503438616887161142078677882909902801285240816251459255697372268125019399922156946415154258311761135854393048948508849822410738651289072114030176414835943690887220149160297892644151841327273310285010918551135574101860170979512366122191655535624813290482044245000606651273373450153466929424083832957087361444317386428198070448447315693274144418653500178950854319218379906825854438791039433347626588565978084869708417996705618298603235677944903361799364840793827511570059308042684463766184370763934265129617834314450744443242164452546121018191246416208768025186979349449561317929618847399414644370574612044631288586486908175838533741004195767554188450872662179850303138799147208015880882848205300645007670177238871874296250912014476312995540564444707363634678341194826830660082846896705654431014353143146037289174280085378769420714645247265447254752061034343726276413349030008598604993093553164004671476998331912530350112652523096117093427677013186717837660920272211498573197544272301990198364944219204556276773323374954226246141416619412569412790104694453912294045626329173936937212212054112967747015075663719325355964561619498558128040300738308507183607158557384246173695408267394252367431679165070426829534067454348293569322819426567711259014673346458040820035842972108898219652915091995428937273585980528999270562584703554480889552864934953099211773361759649239032470835941808321736553206181768987070251777884035739713464963555597771885748151813511649910135250284463593659188914701393780106356349692142804470273288524068927446840336665455317681068683308853633255561398014169558531370802247838155099832283455805617089789422913009511662487976041918478910674108156968438747231952494577738992684326384682076397434913937092848025498204529087596105200963813568742036301001145473591908424508979435509817292256574054755320162595622161980901082794945150663866875398291771294565233782163457309097092395982164066983471023740360922617149575701082567519811196313380128806831564157842544829005291575740854977488785814436655167439587336632282534151943285419651097195720658719108385503906759858094910136585346610825703778987757883439685678628327758041821656817395851625912240824117583984963003004762305930966450552824863641724190049853131495112174081491050379553909636762176779181650481321782581289934171012914064108904124622885813642426785782389988976402351843148780479385213581652318583403931238090248959930888016318811387287260333071764735611582855799575965235472577065580737754783742662903753528501021270398191041617658508950109119323100044410894491451281874228208681862881205023815431744265049448915735615057166635393412311539402659449541315780776173414066930063840690772065492132576579588120506253419695753801293060014892816980302238379619047104544269531187367389914592959674226011012724817807774260310674586478165991383149176816872290114320477450723508008671718366333426949176532589169985227606725926292611256802185216053279482832655543790604047711551382317202062689114035561472811726461229589332149906623780195621779087312289750607889240734149003593727313120347437166047884207626010152378213366704660577651135686476428639442142495551161696261658846396681284005730370515463866581726589598203694066107931410684558802513598805716845043550398808801634556507862576208497316675527646094818594452453086595265301803758178653088276537420575890474614335124568718192838677904176686912226757017561709184777557635126109029209194855634980934368054462585600550535908703770853830755585723256446372129351778375958838418040838947884416129755053555296762243427590722669070530400253174307139111166194449477719272498892704929367567097435896219280535124550058166779970469876731136367802834577505347914298985392002951051057653228284631189288407607923989322006541711408923119233478686552851131426540371613062385873904709840787059864581528764386023871460304173350069820417321366208990794121211050897750346300030849843525132420029235448472538434455910895569088351758862908720354905609858962948040091701942515713598639930925426467686547916145594021945257782631809723558885873639663249934735085228126472376484754801787712498501948171480377706465198624517573215422936434727729763980568540063570108176655921005462735218992681565220640016675261100305016728165680705965862264440560064999096017350395761892725550729182976867081853511813564464190589514612645457472888316968653481579201941870388900122354840769889449242893836163240072910119530609030047177150387856743213939677450520908013766307974827183219190816489421701952733044545640577122799158359455871345397190685869951153884979417653086256913004562684835185057977122925988728787340483746652693776805276395215679573377938929120746879724463214203312678845119178588737341810673933334494907278315966369185824570182621148443369395430317112946656808772229791403824450085707417549377646939316911487731366898561406048536919689966181720551458876186222970805555089467955428477826517571647794101895839773895955405630462118364875837610369731976723958479240917349365564327340443901708031777523544941864466809112322499650384877519334494920480395839493050761312491521828822917849321516393287912991961859592187948046760883296773952433472096024366423201129321508081164778538651005672060327117923153214777405052277984836428044877796227077860922428092722503330674696219063954250030713402308168981458790831384516933347710113398682035125588264073781809340387635671619064087502785136683931857664839551848699196159129777391574266796192745940780639523619815015491821651403243227244451244726287083075435642252765303694277016509514108333768105482588725347932657103300630753799998208304284627946106428318572135398501731500707968352762699235092289151145141065327742655612829535255513116472938621138891148379011736013535186084134555307158994628505390834482176921697427448995432324229934298518862607246902066957744089393720447304792121368084051206926345806861514174665434332211832557122496235355571145579733521775015419562207770845202685732408503462674387272312155517007220330007058328868602978275902623153580370745706814358650235642382148946681998757216387309541653416090178359445815588326754295199235901646282004048052966151124830201044477922969785535743353799955170865687397371579420771265037160109070385455080666765774678009543317210501119119032629437439386417579816688404210831184985353921296052114840530980921801857906279364560682208029312079992058353280255586624670922527250222215066844743356417732763904430204627619052784292156300788671477528862571018374676185123230350172850056693524561272711815266427891405608190492467589273499903230434256349437191871504662167150731926783279912832130236631939187682129105174852224175501623100834228802575255160805703395107483588497109646058957600798008695729797968590517647029631157288862482684119580166661683049590978616723770046825643591265905720414972727488246063865524546683866853898653202578694080849186216312333125007438465630338644166003773404495991336319622180462411041180996406650780477141357382131953427097881873153743073473681070119783050398237103139187355011512239509559590277441485948888330955640716255697627615411920678367168244380329781156990442215668626268805934562600905658338476586881003092077089675860405188726790410835016919425070254606273858676566858450325737018139861802020579975576139358786873117057403372396569165927130764245054055559461763341773624333038916150393837924308930919062579795629712456754356442063195507470185899494038278794368084954101124518427300357379519810708365907919841050272126595954946462313465758656197639691091082826722144733044226124331692330888001838776313633972355044439555835991003446197899961640795061949288176109269385309835599387505509744507244905227698286207765000460559987637052264435041178707283035200011632505753694638253334688304623179694048754731325779375284942005805241409509268092076494507244864371894290463840447867063619641079017438135081785739358900323111903952564372973584540270692030534061968732841971147783071787237330064616406950404562388411482692717260108856918797618374651646781826334662376408482032256860814202177240845971923733968287707135884859129040961553864704678812986542845172816737396761513096382407006375750682868335582692095290676189399427099109701855506393065677521082562376836927044336134755800345112625350576502674692854633054344408754060922676506318924250797071054820923385449632328767601285932353721791878044603162937883015033136380475027935669293324357924870901709450950000701160692101346342909340547381823215157631423651538676895151041836721694670692522172338982196483965497501734118889835856796723887936717767469072797705552308978225272736011391758570093903021042354119138862288511196920818727315648643118050445459158551469705192687977159982376104692206407698848427812623513610593189328684993377548724703331629071964974019358582897141403643963303736594408004386245237443517488434231808827587154217188714033757036699470637012281956325818403997770766510143197078370218446871890889709038395159746678015547567298279025602803582018747544851192398944317210120552813744668074110949053991285878590967668607493497506940406885519403132047794823415034642845039663719226536962091785033377381031168718998094300959719548524234995570130024375032440235931067893256181228348720766025222861486394353400057928226914881286490994925018356231644770813246764407045838656954195877478492694556918513099109118517029457008823670182781582956330084589019543786053045951713200157592605061459302714783502514866194430894052698718035684192759244654859466455002874029771118587173209189974502767537046872202949471079018369692259412746037516267932516751508349465407244021870054958426211656818862703723882243457790956737161454329131379383356068879486218809994960581047515565400695624936077397398588895418107380710494780544579258130891837417413429609397060104137132157152834273623294244034651996062059951539087443146220910067712000228065690519397807627774205129062008091564104678578573376676221790529360747761558625876109663437298467351011631970319057294534643406340078918048092319951070040788661841917172350062472196589100879117799372999159992585858324082634821919320792149013937878910958284438213538898915640252985318309933574805528662513094112750499609708803111371414587612833969164172718496064178440924379319696658188549343921038118183319346698599035897737076255278899300674014900748612457949892944287495091915119227279588522958809539625394276123188669911299792886629210640999829865478971218263308023212812348638433510336829643527971298336051700211662925760083686474126423746968317632268773802661365590473761822831722879034474761411318668734154299152964629418166870544744351137522746573550003367718189549904821807312729764548973881847327123890568604094900543186577119957486214303378948683379460366444499870796473478013729381626220775673373320995301184362491041986945292828025054505118952111396613560891929260393757406964155794348568047523003314146795101595566523517828569584918336687643625354353014941766166996126780900466846538830531357355318527131864450786195239656822291683505428686209805990163293486779700757607294401596306072665484918437131250388256220735344865660946595079926916691639709202363158573606475631739429383418847219514223898452351294756515353589041882358590737108726886898751813256647822724729041994020975462318150437994136648294146120001039261599570145925729453046501887994732257953372655303753293064723550546876405373338931799548885661156009845899384440298466661002952761032373770941057548925128393413948747377097516572039016219774599401689080210626589081695662941764360032210693674485069354491383472537068192849424583148182066803661625269129577452757728402538612657717722061377245606862800463361276069753026455909780503904451900599803650040361429067720613831420800748789595508108208717867254188461271540428054727944777331977055512873503548236066444036977843226802363544254189102435663871514156378582967102349693616492912767035508373308062654329916155257517630616761791746083003239746342432689412710112088778792576418949558508529728108800376329760057845286963766589138039074196227176819881047580150001082879288262745637530891386624158666807100531351722217148107864439162884482958375290082067447630626146184881093701644214321718253601273863032666379260059238748954996667979187294547454554315176591516216291627279647036940716018570911136993059890779115607617772150752245717870747113188148883191725009418637256493225362349453793762791654307791496601014853926995224663532637167805619060789136614091771442182916923178406330016001209157501010145506267875533987439978802988583345326906068157076940060554133997281801597959704401678438177351834978919916962436237157448778469001040568792283351339387273221469003454420751600973168157735921953541337661411966175700602962379730757309117936067488709150076769082566673411866620525053253151677860478802793982018291241411691894986303271087130560190553453435653792017483137471126502684968498816723217952619271737795663631603039555310672441124885116660250653609993120960573620864350677153301193579526268676076362959641336678450517839755708088317261424763666396208744108089572768531604320472278381780042247888316774101065259070088619465144045386726523453417520066056342386774468020409521981273326415867681298266080873106785724789184447336668916721813552670040058984691766561930478970886618749435755513556039862779914558781149037766553139019118736066239585645165939808312320806594660257899935564370639038554355855821609864340069138672855428162712013431795965479620688826019731120310129997601479177550010181913035933006108450807124853981142559582766283543413066647541685240164584592858534036912726092893004223641538597237940441112592871001758040911165048156171272596533669923777813342328348989159073751815246131016149490223301924316005839529438062368206719130563633449012858647728184298601435948360494467595379833346084668964795344002385015047740934715041726810348133523509080650458335100881592982621906189912394391250136625967723523990106682331781732884733954157354620933085023608617685860482375295399048505252190837358829106822918015226278064141730022389764038357435504838361849873185571119450674847841693533436648450160544838524685499206895595378922183388429032521994106192027754742596739057243382221251419172075578142039522803575866907567702633374026278023496989970402192276191326948747724766622559651390552133292678551410398740236874614866564722932223654975471368776953008016671876128124764555955968302857884885183264633819836125046826829527738792712402863810181685440002579103996714962774501827483039984401124270010790190575129411858406769156349457109327699295509760146629822312257749417443150528417695225612653456803059790708709794485026259243850178734009304673298413993108163345157630161813384380612367377674558310763530400624608156922135871254995249957557765212165162778282798799077362657386317134370630529986611527817585820633002111317456076981887985458947154913492056762182316597656698108577551437489000791423580903391800040787040883206522401691631227839570062818329480538890161478041458955413741236643614061742940296452520045361586556110963753463375424916832579921583923297589290812777350259690706999343432467133802010177238492461609544917401650825474551585329875371394017907548977226492156757992536314089210104378700962571903344400858417114987566178635244053398133466086184086276919651911783261677805925625861446352425046129794087096270467818570388727862684384570363761337742278571078362039190648338438080520485138070689811420506783779968550290071296230164413445709494979238663035928396107728688466014005004582665790702429473401248782971556304394990870506940199869781131698674236743502783305117059119191164488099085289781038364563952954652447532790734149723166967084177788781064964534204254523403558459814001683159456114345010814613309337891913020703411206775756186030947535243880708738595928682647385305961925367256004107903871792571429044200703313997066055518932224842727796997082118269964909206459811289737806563417566561474910730813626013539416239796025371161184822774476518782100124394089311452800466995872983039502798479646191730692933735777586318763393858396172819809490249114636426560231719549867383709804159459322691861767788817834637350757841212529689614596408603733026224309895225729752120547772149568555040702315816176425155098706984841013546360536109156864588565471267358048076949239516735153950331820228132738485656387372156847427863671302063451209192405550719672362390552679996543428314140551775582991141485085982030392790053210073282574497613662033272306633165919465593057517816853026369240361476424844392208759757688798761887570001545322488577376483334045135934375710908861088345848356550278493071527325143894109274551476192170057646561918968707498714147103420808618787361783390514142936775991430256192531671473003019717042549447166462609520087939842894160166157046178292438194058209934106218616167468617329656584409309065494287645226083979658217035395995375689231420227935545677557796160206528845781843846130723129279930678372410629059897102542256547104516367618266973063242062695045435741701344343297695492629180146140439544167699891633501756019853938283320539105388834297225507957511702062271295986363540925361262729908704436033769829177635883799392482403101296761696229663631101858993308831158805497177926145444037788235546590424959463243626095711600686436350611466783359631651925145956877251711114562314717238818090359744175466295521553105431937011975007414143680096133306442312173751789922043099904403860619249630165530126166924766706868703235167744001386068407583627827735894794940129667045186150133825401534065247706711450831796822307983043154829684816118229279129161807792152169000382278706346611048942146347224517065376974421125613344556103533045577860579018688185557704898603328326596547603921103567881971879761599731663264085657616508099551373400883361245563630203062823617240814033570905660588568343822164619396903742239280230443753963223621396998392976699134579208545025069262745851049425841695129943380910725252740841172728418301430294124956800081323203712061646154325370563991343711042614966701668955590415616953805028888327377146249104140353246132862680022007565645977478301123476718895807301879474404882697356362538023028453052865643405062142323419070548134667086807697585400026879299403157206982105522060162077368116686514521640516114469917786809780207543082327074773970291406851973153094135543235729789331864718850161320962263286699385661242880259448438685996370073912261428853833009410845204543288173112528713455561250839416514763250967134289874868827265636416205557619089523467896000748975182582981630250078714835634526907905426069819566948656665850913949855297908936356383405896099574053684664698849603823971941834025078978755733389550082859022725011823070779029900072759784466883158152717787138146006790418198769148914674536237974564923617925230140027816441457470936177288709309013767067829834141868418053771054077325807197605354344025784851824448373806128197654776421092480290066067974059702068775798742207918173083505211581324421512601973876003866829373551962950207984219539232267443400680562942269324187424312969167554777212194329111695711063855428173645673913340395976383602104409667389626158258318807721992736654843455047954625425455256211458793644426423322226165622254767234640752066679545432094488487995132611604328149258590424056840745328034395193440978799109006115276920153901251504613306795194197923970591749038283201943561938806481090610612499738666532279496113776640364463071831066752352755759310561654122483665401054661309703786641970460221891577595621949380701021760343104156563559926828667658625156966650198481038241015810217961421227462019862900099020076681524807761931963346803663715483223917222355003695569621901644527142469359630938161769444104855040432603035059565977674769121356398561853492045679225214219861544307876388606873267765741673214256344465334407026821264978943574211323115460361807140469891252440738260242386543924994008351008314920641111005046862038472866501021036119776827278767729149461139846465378827978125255250840192727061663233834177550305630461488359072509375619859892879271387166499732556246552429019612596926086159798054465015110323082089063855707032002873331755343823037190477199178965179583598740218537672659463384441714198654131372995298932472014743824487929172782599570310916995557430529201590000004696188922251492109799003886115979311328429835342130003647364987368878124976494942436809168660783900541375814727169631603696674382958766869488516762547700478454773362130292658900606647869364353236324145054224865929515826149425930241647869948160426361841456692753095322803370561159655913768930459890603821651533425730199818858872737709329761109882685418536112481367658230062263661297180947433518520555097406738327484007734731760910600699588568745480842240254408992000652311598596579050365165974199159561542400617674174196768504943696861731698692582326165854609039994711662484608286733246594882781284921074094646147015871361053621787472492538424552657777640978352800037566701847766140751461571112704697119325723428973074426182392227177535742187474324878394575660487942697855642169110977752674844789628006899368730755268775934190215019038559623721462451723440959921792183691846067895775970688564155318026040276088182726730556193604760941958404354081167522722092617354489909873362665904627539543534771966227171030957243084053714381153110893072905227466184430827955353096531992752868900610023569021399350169879389905137246863026407783476893306591362287209963376076796569757347906015105690581006896318186435292879890005881000034277309024199555696974970191665722153600766502297284063964762198578019153558612597521896070184571347951701746072931827892772515298148412662908368177091118618979461517034303549642430417479124836111741258655698184634290085481589695334297950139954751762941741356430330785971393728847138757299913978050565087977929130651272687363123842470953881818158992234858698993738812701640846099002692188730191989955568785262111310889287787269142964924503469044872157310286128082428120041130024432072672997470867414598162283941990827343226108740426495169449730239055623246249235736945808547528488823644497183196582333789121440210527939796521917130096340895771770914838535949203141577850403438416733004881378390491151823967887508919825798782933309445445286799775633957994212770093488286016992294780100049899436722765192985501820201071261084498579940231561497478009140420064340508484695806144230599828410601326979741850224036534578720315456765204305134978515245995805859192799224039788184970468668940685288038186178634965103380416086295648835005194897711110458296537352853093886455000727258260447071041877721681918456636551493883823999004061151833171765032253625803778322681392451683252099460260209857906645653631194024220730267288846711420177743801073299654900184077603422107334524953283746206680745565540830803167651196893502921320934197216000547816634381290237717498275800187435594817880108417222275404436384062631550007898905249433308333654811631203119898468983337493645962914382110619932835209236612848660881728671370575931863987035329410887916513532909955800739114517668872519389819970541837262368683608914243820234785562395686386222410175241132683916875043732894115600503403780670825174495080982135438641485529811859422801285697283796461990918249031577538221770404276800044124268472305945306089677066244519132610755192817683674596459161227887565357455982427273857927392613299316340523115352634279659065427259646901270308944666403101936923754322702523390008755282342064407556936808663667174432257203417150781589091966516305212092829405701440610363622573545498667470877422781698945615576951964013310178333242206008138421747197683886209138790041932416876709280129878028558226041069193761109659869517417585635001126029881928292983323694278757438301918088952230827291190568646810996994225678901360812454746309376160216956203410798174196216322457583808120528597555821360782177219256079867921723029110977201668938346756790638160180379386967167631373796823875195137106122691434645813545184972074419080366605248974339549666021876598205521752232783725708860230420903022054823259760113932920252789587087266985809145227752995659174831242255387304726463865133938965729264920024207318159305164027856699362377028070469103182167359951494619544045580271608192884804938831065706511897202204953318412386926514738661431154743741018164535186813718268687617973447928877913177320583543795869456417467602566037371333164039429438024290599891516616378875311629262055186919564959555402765790607459163646850542232313821220382914239477530009289627600327819261468560922220501350514918331022908653684554808006461059769256520580252297230193751499560527515103476302759011000210132072370544678605484546462940091699176938198634521421058953323999724811090403059677301368100612152234977872730745979747828700191769405082178371978894891973773314789292953287327225540915300643383057288415621558060261184082626171776754180262111170683635950874033555826307221978775775815942243320117819821120082750657082932771405163546851325537955755346924254155193335258906052709696327964272470634492687304717845753891494989590656550822558437985507807391737183922048190838001679903080649500588741334698846528346705787184234542481725558109123201611921939284291293638120581831010164844631099200875754862953093970578476009366010213901143190655157364975409579598218092261182012536138274822249954878261549324969277938780541519468913111325087455806310809813865573080005666521354372153065434919697824131561475058762874431867008188682106294529992482190790365443959214455248117913170509644390560109674035954091422182204471464917132431797552351290534367962140789015159926311950685764686237515171735002145607852148443293706570719127684750081694918834286682270662179284164023828567097105745147795623910289189989731350179544969087540980908095864199594598922272231215324466135514893639650862449382377981210108164564308488566415440741378047471338108430942499818390907762850420635603687269383272572775977506878887201198016687223460833965891507168126092203938354987965254255787280832059852355171742208344778558585356518594420603749525738371403244769947638370449179791843201631462984827065162010975688756707835183193573516236154373072693339071017630468823371049701665104825722733451079554946328168440528231390988880736102046306785794788673140882045585381995604010191613003961652688251088701897094943469543933113332247703975175729433622493529709079691437268855184312228597008600376101971902999238659014715428760601585296556040358843978451486156223167030789143376257331978249798878090074490985571886166715815874632299713855063374210963381791371675772730174036078227616937179589974146099599367041561122336800735700625026762148755008479075031564485184515833832991293423548773295965043725622390579953283282625432683364222360801175517121858802565317641732175015201625328082619450330502973940657386331873496438232401332413261900632786176054909050106875506329611286017185531146372414306757467845062168550526447959678920069799892968438369691098314792921404662505349288087706009570723671137037777828066840647871265242751548668410329660090073679650437000698904507339083267695453728957246004530811460561346416801225457285973757788287256333446738619579220039511243066821158315278138826514963497778597703812568959138048121978262565458723311731011353570715841540886984772588672979076416003396180303596903897441211015423816325812782942574148263417387310450686262797281174314691581395375452789410139231926697413540526051049192728384547028433262525776681264023603230614881296715792624208022432347402631712121792704123578401862038020636909156789120119621852344022422611913006811646142068870926179727372799862524717846994736151400540945851298496141147119010834998922089446119973850857953691698492647142837775250602326965613851347744766468830994244357914906886669407945466037212079369386755283447868516101299295365087401337678818807886173350214867686904416369583101646973101087318850472065301101163801865343042126272323119598424176574360098549951303743758722410759472044089276521396773142710680812829086235999493570914082417623023774282421648840495692075338435012623293280872111864474497458060355632144925627169627383173377318220129212240821152023784519939762290797250857237109987249778584395242177673187725887513006833308622456491617998314388296185201286916639313697369971420898272196746974391151143685566081408543165129824237563310643195261879045325497416719978385309937338047053569351218182495010766157667256953618821710766382100908617180242909442271544770388495381119795602440062467988685107971149741885074076403194612420272348165598198095254197075724197349834951278035738332394479613405013953682865038182020657273623454762414005030853134395309873859041002829413324567086523407900576386627373831403829936952498645994130667715430245933374208665408100392723620153282742634140008722744975079439532634540326782808737268502406681304044218829429037289989377015500815252649764441507317822229890109657395301491332587804735885631749122129011645013115419089721659671010155069672346070212920147352416679497048652314060225393284146466079715399032900148506183960680067310856000852652623924558134993576767595825999607951106678843855227938987689373530612052672789027731460177971571932286011713710085885792358071127744041195910964823194666273594476186475279509615422483570520043187590961440932031139936903518472114811552933345938670704870887044166959120915571818960189868573226856441391703135767521217671187148437593885265442952511607738969700389170069218551167619616591027049795527114187251577127441608224409464696292184142232934101926243756072369268084204889700502787193966882007026156473869135539961444645658061095994265846217231867476772699122407455353553721844344272723091598550861722746355031498364370897846902396101072063315303601529207752579397299693501174124491589538870192110863960651927107640349409088802745441412692536507635726594488569887090349195080789064824155000308543354982364205726387440058570323345266158871257848160419070521925711129288910251412778228355924379104405518599906754663936042393602082469970661153291638484286519305884467461939212719616018226929355500069414556120369036627033024529963514076123244469725223007764698970117714086659901801252545362516575835047249738458015343893114763661087923392717979436553572782206657889033069308335498155780826199375210445642065559510064372258953844779598697835621395432559493874569923281495703828568028442116909682411770188317058505834990357097176715056612336611089986133672411638748454861299940811827116105409989039069368016458313908664663239051425679515099256193101718896107329238827456333474384819094339503618271272976183124983410626624823287982149613983636511525033103437525160610985646084065609652785439846119564080908369593858171159162544826742185456739478334515777361284827254402463168461086493582687514325577525235863911345661303284835456093182641815190122068717593245658766872209375331030625708560876792081890104676807179217347845018589131455563035693389233109463946939664672105504420949115122099521809811832274722948155829864398529779003601650206449527765804490414696067741995719635882688348709862308280829848032064229055394656403543133117633438717943438619117473431090643232892852181530552771940685922736698519400002545298790453618982554809881431678635728075848081289939606380656525053518801381134709430686246285231656036519150734632083844149160499387722420819216524155609581038360005607225799225575869838946488193673339505092019577953170060727059046141454688562206561418458669502368549720032837189888624697100406436960920392921055124935375315303625477629988996910519389625704901507980257186150822977486824406449270798105629223031170933975773202094731522390651012086704471397951127112180707514359581975949411717465144563907623595127049572915236177032432447211380517055681242008889781250035760607902105608541214576395554431515130406727025133264762892972183109671671779050036798409359220977002096846587307565566044063525388278311134120296910433882967415926328787274947696793621581606364082187177912300116651255475000316797892524298601637233901126904064887085208672311904628795909512174059985337344675629550527186153864028827080349019580566098729691263049540053404830696679749836087390094099732079208023005337276670794729079817210683631464620609552642261191143881958467054327850052889727999617457598271118714151893276145736879077135376847427978528639792419595811315773889243148474341312746641550213839428429929384732468576096972681284491451753320768488466301852272927147645643519913815112691083924011419839410821730608533792225204337255549013265139909765466623854344908072233362699143236802882703714162211571706819103238826127845152718931190761465273356721991970476018491710330942309301547067760681036742766938951654212309834562631579755833363804139878245158888154807525130046124259898312686909888580412855463147037277482660740818486443123344154166689306864428452949915622605910700965254152015803473743486244428228963644094106324980519001230915113665683944204645580227986733850335591806880020812913481512588070907958813273492572301931531336868437088634865042929602381224877109119717110426594441794672135722393654959201061692167117334135493798429725797545133256986101277913602668322920531861643934298830617253357512849852553002431709631317080846040194639888323915351136601176632664407158829901056129821328955745770407245727239232921772539865662719814000151039198700435798352634287784152775396779887897653208241674860399893652125511647826714796074216170829359378204297501814200462282301851661865086871418664324337890628543864697523806548212786653497601378648070360904142089069071485039048649590023666156312965280298944889535033088251157194780491531320221640845536286264105407525750866222430110705915741842939527408869969235680379190809826722620550284327189617673959417940479247581390662194253897125798838275186254281917208657764120495606553530304940178970737215133189683396428825501249775103274733446078387476881255226755406871424751644867508288588672450941553281400960143146529527244099735781422639771709950925257680982005647599797809811229726849428984819671822598333972861511272489141650625712375818692453025522903696578969036037449349643825911640329191372884273567689706186582540337377483115281006066667390423128871765145278780868555689882508514636734930641956573097614630825429685227504064704076756738798812744938115439189061667485064466534595557542482456496290612761951894942605533103981651345700335265423461160804282788785475613755770807488843405698924151754594782189202002617770988152997771222145629444742897050996726373259035988758340878008206865562989534740557676104950271446073277335594961398933787543471325287490581088243931991601623052126414705199391967582292905546293262263446945360287018750806435044292008763763544287795973980835749328134307147382372380022204775507505740874404715855748320241792810431426281658549325064362263381519228577847211892143175419758885371090932077163963916575629473002893851249449402810932584209484532082629333485797251769809166060104811520029297622970880559905219798518754575956073301079912557747237757921166387365369925075440249141172085896811813349232971859052010918485830243722865537491707246469871420849453152311847350862411684416628269229349250457581757337480119596357054770368902877481383367989590610852893662997215863496269060991724905276417089995118485526440811994250807022630175532652519022581133617891555405894157810014696646418461037921581135359068510598527441935301373575257551549345428737169248889356237286286808658695403374974641536939257200390267446167806792405747253250276492072486121133342310675385106031981243352343732195019357191346141881207209488000855689496256287055292193308545947076063190814433433777921908848986143939223819137957994267947351733148932190994361982872864521044588240356168075787980113669727909449290047980130320027214140631919532797522342550225084715657619586402059299600757894554570130158524838188443624382936720425616612547924418454999069523948082761311609083231687011548512266648629672050997937718376369313505506534494314339648709621329415243751900343912057247429864987270596942093945517802177555992208058434426942432144160006432051654081879987054945246038400643799396029175793353387187289330862294639551976554607423152782483259825495853794887923236626027307853934092258366853621737329908291150175707682667384898317395358791455956336874913849037369601209913302144884733520991254571131009638555232783032495966054476826909887348881220194025448417893260419537380044758942577962286174064151209462012582447315609969992784586423246353910984358946158812040188782727322515084776374562340036884751953868435841872398709582160769755290018207357750475008425410868676657768772232294135607289294545029702599612778472535794122256086368602549117570153922403091887085387628024171326842874779305197547919286535887455698717154642883179807485390130971283611318504109383772576113174265627810804899709366238591279568923022447597938784337744040184115432073371749307522297709072301839891169359784270957148697432502490914850091966849049119985802062292601472085290780551736017479553548129072385946817717729683682038824687546940812329388338443758988366303548837617592340813106096180821391351472701481666077634231238992986603114622382239724645670511256482207966706472205061634701339148283462801875088278028214257864924967818704103761235202169453440269954806486861253027863529453407557083114607357009915796666562553016083299004240913525139406709580499381899346776016373248882920772178818859081843553429997288293902119196058423238843330539334430934347059642189783965211736403835788589592471886707975427245034997459099450897066924380808278190050456591529710542346111316296943436226067404968835519469244314679927363381946775803906867918532852480015979867930314636136624500012426868940782182552159476527930722410944805369275166711339961489508404324766878640802418232463337345179765481013673629731544349412568203908832299133506323681771831564975580853640748733710331323619236343717350923739138452756756269255417878555924088361639539689468269452607861183943632414620810600079283413539626795220053475990127130040025595924034061656099111978366178259205909912153865943558419261353107546681267132383385716016418403538306085512996714131594614558724060193865171435209351155486358378220312688426384236306897226561854232592912014803487339541346994498834191124605421955292251430054612764673991352439750036858441913468738666644959029543012595763842769810346417382278416029695355891211180604754152883546192795070465645065677506784000079650125705230250907040225513506427431614155615205788356923652711895464257840062147560449724298913924604232662042820114492501867967319658743278551894482045623588535290147500630451847325451467941893300675900169439915103622137827899701860364298596534954228790192680606360722567742171974755214098616486415201945060033946168422372470082680637765116979274384192187599427124515007592236145398313002504002843393313965022371836656769968285349229140603875965056141961017819820931259128104802722017486243676047126050072502628507804901936811287701479233085714382520073429563045536994288568562038801665253308041598798648354998284789831781890829455446645030974288729763881910846792708766167899945828290162528348542374061670805428704237036817782079792588068907887125549728396758184736731809264261600890210642468519799917815013229877229418660711203363875462062450378115414486814785451244087658108371831176371736046784212637176370924245041997763351987964934824062930388490495268122652128412241453966505985432503971775682845267234172369210370492135243438644633434398994945779240130793075803707816853634616609311683544945335259322789521289896159650432707131805500432892687071575087141989948337627443684941171693462869591804910375606004184796583321877940686336182499693290204953343496123239269590065332971150000232967158102958724531485120540430939536912386132980567699949794360856490277568967987028708081780477420124281337731297662301346895029095265347530492374997424700824581804291956610606729920864340971232991397256752718938251373210869159271603557388975877758465137223708964115146021871037421188943438075139261019421187221534205511805662445450537328267575659384042861121241723784075499743691228456075000169721170430815020801367150376058596535070229768000403144232981141990953937423718980795721237002939631292798469123118830921244275516311126709020564147340154006635500228987310371739583388279617783823307273279772375609397852893448454229836857571691426627878890397199233842538541203948039699513639254003625995426973366446042703075522348082905904312314114902632767388897594367106846677898923667370338127749833718070234002231503831004953355208586228227730571003310432195690793797106240405513130446274775030943116323856748224071974532456208633927760333667345513517962492902585455216869015964356056015703195843070353992576459074784094641020065938964777920412534904728875991778493160857811712480977794419220489396435516830873967325726851424620881408611499290048596970738197518229720608817787135874929103313936630835315214967535838230488902353964470929009092640925961605542033557301207183680851442099356188808781820829890300981008593627383858607920646089789163903641729617755773320616827439930196436428568311842088318857264820161100403364134076632121040262005120164989391021243897900799728940630147012042317112849614461082030511155700372836510980410986977862198642539747644022742555339666990780659610092758092655705549903379947409837764260480792920012710249634011199223425587645767022105106325963283445013818700274634029831308561215175755076848666148574722562504686949851155807500339482688256083243689315931326582605510073181515616446351488020373895555456944639180413075273840708212995315080281584749914486214167895590292624906147557673377436597266906261428207536521871141879880571070482474183023466458141114786439163866797819941006951762324408663889328729443780343662202413539831322516133758930570844458569941718928608013970257891873125142385329518799475975858969338079494473636618626990888439407798884289579243034853772748941978376202819482526064821244132558143661902882021922124059739208882853089062881452289384126649524724072669272028574759747629845061882395362462797538587495676347196867568586068602693932213361044453516709203797288764278794839746678769609367612063838829835914371716550181204390115522840415173264377088058875458285613868045320062452867819797241426275780574799183268129471058825140578431357138333961323381593773919412369878988344819234018571996834833730823925324986953494346154087713471226211847862987728226719907604302470238486284516997179897475324756250825439569848923162142453153638170341802265243272905855979507609220851955724423080673620748988298550940326391345534180915685516551688710310234581413134420549767211165846621866479389181327137381209120161251889982250757997064016826503962192842179538598351857078201692969297096744257048931203519207515163606038722192755789761067452148129742070365816258031919663302399488587004688184770163692328645808098251537675987609877947053581158871205720824403389277974101726793296984012597675926180982950931950629981227703198308373417688569893990296813850477201447061879601466414815357817462732096415805321646833781650143028696032609213353431324891333339688951237644847217102606469553177019098054918188667765683706165946962244309914458594542512213823472035860856696337158551989434617816206521486244320344345102146262409612211328053335699406457288108363959709711304880149582600314287336523291226211797915970632096255216311201301461415028755941429765977543091587951696034746411593562614615498095618669382593929061767590123535185105378536120623221078572375895116427222748144728919511239836912949807993724436023079546345628787282054565774349500164890687507023944523361015572471190311658529836481490010754999016554646224704847916581883068291733595642708401256528344983628170185846389770973769312509698678670867365630149772267914172506459135734247530562576498280603118192310313121914384927159010093050744618050203996393014219729496508278958369204606999616553030048412100662045332135359040933739685023266059040143242484477147739800331441072759912757137119639046038232107893749022074166178499531647925629367886974007709113694627516327399512438480884161266456893154244674334266623070423039385413678898097722740301518439016513927566089435772250382588866833132163028219849898107253093999570632182582746270134938962027668526507986539270297808339471017380337953214926770571969265053880903232339101403325146986682958957362778129026158780682538284210754624367342260116040102724629123220873288776471463804101366346882356224958357847110234766536079356689898461972657725892091027784765106640824186522720796562968789178603136389098789436520814281319571927697772253185586945086481496522680182381619069511790043564522092621061694671490593615424076873664388911210742519900573333681714909057347702546876212550878856742952397563491350275583418073012492776319616331662306005949787737923521821669582214391325407609237241419398097723856474417244111677602620968754980838763638556545068369498248698409410378362305390412160396927710969457482091957122986501788626282791637067435088040553574273177528218934174937385569587473977497501206642465788456604227816953633656073802999754240537507758691934335363619790583192485961109031438504387389093664468889002848315422157754411003475167441748544801074032280252674678636054231172889448385867655775192767744379712589104292844574072975011232935117961623459685417783590196995050408163090476068625060845487906019671458386936941258010550827521441209235394322523796505788420292200928584254469900987511733580128525567244233726453604602012526820896364309059358157625371765121244401465186800464786475581127446195097010583967768588348632143890672694090121688278290080514487274903809807388870167603814388563041101191028827608976687803446363079832519562584735860433586278062892168464358564826413699265710489824296264250872807461476221487509391718819020056274017230725693599073723590502960842675041163716147678405788694904427968709980990145630940197847289502307641354281297840205218118923422970171168703181162578568589178158418948423605299627817082756936196187408511814940067940535779503113810650403435594952501069897445237438748937199490206328227605542370248006737900396520066274657868732770450271440386195691201150133842181606338861222604844921345563935951043315302500158060948043248349011928563744382448099787752375975565474744777514668800807157949483386625155672729941799465401793695045934293702551284845389610687566189478949532774706828223237823922651322777556051863758329503125225204082220902738222926823596517408449453451877251221626657160865982982568291521748190649075150933726910367548192495672573355737385857055389943109773280154981268704554390058328692265459281546744418505445690204489299883473846213449113164369752678953554258690294341543602416843127017983137158983395216610345600249778626658275025265908676648335643912950772728531456638933248390320115436552591512797434116045076396153719428952318709861828722641516436105854232054937275337866097589675190347411902510153845702699174317166560602230368390465463714770530884532479677854376439930100564751838489091294630964038091580221218763586138157567637703844153711489837457797561422749939098981022531030988417146363390712066476409115355941818840652938764130293033645583326948262652446259550462948770329637865068202943908568222619565028201641309834931634815459760585548145161725093800258928400099053358239409503608807075532308727301558124709043131455765643488537051194181051781389296339350187460205182252584227632190371909624324186749176145111166661445504803047859437999844444344005631468592072927514711436754475106761671052268899903126004313166687543677202944528098341173469333651723038506264145708429070305572448754499477367871209163308156185437157716815665326533972808704758957553944727172815803257743021016137801111355193036597708706941068644590028744729326440709979054987733348926557067695254864337999091386228776112224482382423889285161087836196679070991925333354291043614427208313384925355511649598881039808851940798338784978420259580715968529037032190683233542426574604722855973063322301208430048473419025982381864979470534173116673220274745871578604335313051325763975476622254115601393750027558360173607307880453258556684282942324544195038567602297448711817944226706183985736350884806984628669949988008864724164548706769763916218806652196513096861176604267543970549414452617067740407428492532052674024842528134825859144255748319899583787881644270531671056535070967466336941144406169198048058541038542134866481932943042782832476566322617258833118177653922734858352072303937078259634243034533561608263984883848085327317721845100495156684914887544560091735203150389011429759605290412970406878790617954025184658678835016717057269794991982181997672840272376779547345163338049556288061877014491717517353842704988044412882593355789885518176608940341699803328488128206796493001195547959677056392446942660562811409484899244348175247264458881343509875386255651748135059541355413582417197807658874482426636941337930780675487799933213421815021747813584768329137634271524227937894703467492738329275907295905853184610104080771889974683269905223890016067084979073912301992485231181038526493164069101036524386322412991057261036263629386242347349012354376491696066752157534786182154217019042333904880294142162183777132890492184865094579391959839826943358488444372851800773206842464111648950540167119969107833611350905493583376036648874101706575915569267487742034319736115891368323616739414271394347119239852022445031553664624756000756867827073973910140765563672345327348665113799424463059323896041399493060637529467845716858283663559487139412836359254831165954605172350413173507511981827908294509534794153104256712791838694295520623402386506695712080492632907460307227723284181281981152785969164203874781043424826584955089338651289313066083672208534359453584529540588532946562085247671197538202163043782792712311461087086928426692481400511577463752629259174934557871653239313113169831388475797917025129479853618164959236690191782514100149123820851887530169912881843516861870467790596055021383349719327478195995040619570689895078024866267610630710118448330395685970901609692370305623383957566362968490577409719855445924487983369001012972479388094618921446764573206569046632949449224152802873280959838783604631358422391240876906181284316959385400952052289147518680068894051300870676273835317101125935540034022954077420844699044037594384817686718327435196220550971648472705049522147590224039777806940541100115765906800293660271792907979629263743535972094666787329589224468406760701707341375057979256648414650926980781365788507765790602324448440221735277358540437162186815196444893437988571707385908317902609693978745088524396606827531771496064351987030711322706966375440760136658453642831440711227438240623880200978525621879974752702790023362852823224467539266552300057423619274403819739113669985904835539975166490576421491364119674351596103736910229948551995321652407540849696359652246995842427424346582178204551330151893041054488419158179772863726490008631628285355620130043070648776748234426309507958988872279067812148504482510367858520835148669850882325098388506498587666054425915674411110121153589392220617496629166495702916078825305384578584297576615313189608761361275677175098790716481500230628374268067504192252194419750034764728808785479143942326164406746189935527501391940648992211267698060238911916173224154682916257493808885565791272642058585763238853049731103438981314001678707582308276485777577104947764595496410023321226189873434830517713849754564222214588046507593057553309251920513316612203085066828549598470882811784448252893468569660611553584931917305321998248672174990035203551043751330396390281801937284283764102339851172208319663315367993654741257237507838529684084150215582785624952780746048982243616975870665657406624353005539835791419762650469246496865116667387913156820581836481271121707042252416000267359924679134483406736830798752421426067619945375234239016455370211596876573841656131920931000571886353616144844221889326306702691795181309758574751610133466133278709448365114214741291468729805170124102782756722361995936580650318776341017580995421175241817607353495981694331621582936975720256669863605998702887032571925449575973196049252113000312072659611231934240459124481634747313134932370773857979004618248155550154913372420766900490923533659928820288928594411987490293198998449137192864014119007341973506818095877518337474168773084531681022799626721853765216650978027766242940571462975934662727153226761094531152228056016442403543234234808429172099032594006048833257974278017760195518315809940500421586975131590043427866665997802331914440654016801275085472755376252650737354158924384987890002259846146921477962900039980355982630853437783580619617006844638674590902632010649429309645470399466304497941490932195228044456663416497349128107837098446483012254847528620753653525331704429999416496287891808812319748783026567875830863847902120131853308773956157994833592259318243939927616357339027833345163321338860988920300479009690166949518950288107315260778881609751043147174850347045773429786986469692882195812684769874667856215963539649561413892031416391891153212367821299826271415079012835471131624956748280837679054158433787237617343456505066823810020402996632919759743156634086281594949755005666252150048333778252282722665438664125199991020378458410510124022855628159708572862050847349549825548730238617998269681356858889877209519381234995641752084519625439555090051851550434115267326793914225497489108458097993281436950112131336835555014942590662176763601988181407642560505639117386649819931413920066411451149229632409768829007925249671675973595470791846210704027848939749573904949460514685634745139039510887040815058299599170490627479168654749855706955827378935942187421219818213192159558723039796319162121430814041759254283312614748209316509050127810328196230687205425502107721149950781618135142522428066592310488111500675136494010281636912107983987186641220773273337939292804514863509008045374805243848012471216491441667752400887615998388353539339578792076373651786139818453952059489410906045861461458508308870717491208836351415688206663317170953588535825237992946396318992218837855176715803273548420320927533790234548635520574680311184905212661063064447662550717661514694829630024484458661171954577636372481433234477363382299833484523044288798095235775443910535611775136548550571708884796898157914655347795803187366071328026903756476487004489458547412995890697711547325318270450386182250945150011068903217120531710749287319203478698477775056869064386341655564597908271951540718860838636968414985316259033698080305784616815906020965728608483691422043504509712089829265858887418617860185117844686174086720276231893911391396236858713807749112026155355470588740020543554047710766673023492751298136854968631987575167897602229349837513673302445160158313450168473167644786775445098891918657095254781970813535521460194955221467007066348331730267848000700933360666245756346886064950002817976130197338825511194171731250887206631408346416466218146240174306525891742489720880841001588224553666106919171007618428543335904655119940299982787235497557340394066697315102183288937499105439026570066191354221831152131041475214754260316585499440736405648240235918908774713511368264344922178751279055605012794012609804395190559595211685321212697206311959979984648176400580948946660048620049546141168862630440683587204849824469544480390093547210606370204416614587879679144109458557646639475893797106554151361810727256091045998020705101998841410262163132948882372021763177028422623360678981422612958808489687529439182966410596517863645014344407166693596322822552616267201007349551574347307102078401498016678319333361595298545707398177564626376608569176371711811273782202718319700294358512082098773692333580859850675875710795130865000502199943753454976502292338414836478751253154345737842461622600262885863756959827203853054662942235844432282866252085072486023786925812814715319989014910688979839055646548917498132672990575576720213831709321232192741960496000652739226451766702340239725307406576312340397377697461145980331583606798808567447681793375792065465898937596440835302063632703750852607717138082076741669346030739079494352883888665161570879721533277382681955069972706239410775121968482548808549186282365656150637390918648810943995504160426745242187183000912598983355825376320920507491497354217620951050655643714971421241938255321325778675783145642999724189643234128216086710830558469934217829794953617391645013533000149560425826059028769739673065215760361115607291602280073862379705741244392703146804617825643253549457900495988692338439798455227344336944956234735896008425361399802419729936167741838701301264212987023927108025077107838871962722407016898636635352900734324828491661605024734318337479834529151768901856274131118106747051021669747898033776713845934012412348994650206052076731299565490718598574201281502846673383994826698519949084416222173123111916153274082547626845151408855716816500841901037608290762349020562656528555086717874898070641816359946874657033421595857527208087324377868461935600343178653450199539015540923978032377326701029260853315792666008736635701606265008805026976174244745060598957212662324979568197759234581541518959614819497926563423262738400616480300056432055999392040721253734239862761459517328382826119636734062712888024565817089701673564790543397480742160105803810220947141124086668196136619419544142802609400200663863075381318548525739999289501116157002315870933887693530105964971393381861573337317233302822966054847541676626525105007282561286666114953769626386836405175885410911312751790621198403515971761243774916545610712514207279934356167247218289499308170939838871540650938312638138818319758787567054141173991446971571158885107064208491177869641221691033743423467836967126567795801866308998326971724768594232149535357875274970993633678575546433565374079838481917615756581285717250265194764276599635828179692646611786789316592423762140004676892852309932765808548415407743549178723569280008023494105651004611335595668287756507337158369297722882164047715541641887323179354458604034184525514814837786142916643594627038376508981761030185422326279780313943849119423597316660000615154333791752281897177408905131291727113813395720813614060499516804994950827613782034006765364302242010287450214113452640105713269687332596055920959579191151740782817050601864966401012873530311830971291385556548999773947776028180789959991777289743900091413927808854982757849569267722587097083759408468288216266255730323381596781291946304446451578225953465774830424607287028482544120416793391455371781777128055056473503701151747896285712929134896201085387027134191824806492447411883104547345878621515684038360593858726769410460841097054494200445431280272031476098651722498952288549895208044069671969540611497946305544914054216161527901356488508569049698727031687791632790292204162245234760133374242106638287050788718964946563318243275463650337661491281067407128531670621888662459133506725203689697988924440414108000326769797334777458650267688132618165742593938261538337283583306636777181007241407435898173395836268055890402617962548754886025232695683312177384344912941238968691005792879207844838130039794857789380955008015099547415790831723071324455637827197426226609290211922330170042468415372996059899053917302415076895970163973256814854624106988274756509622765164337193019439516543068087904545826648086705778867547573107716255284931897075636493127338303553197217185335194338694854796737488842082066086706915877800050621958300868824135911782230408580731751002845534035725581683596453756854940603034735780736870026024752481462167428520885859831334582445069488167136902865277296581142297146663405407877707916205774707305711780773228400545038376903407575539641761308310976537981965718178079067897340398161925022771594469475000097796181594436560996114594163073236275613938569543836460694035539670054953363477210262444054526533937454491731821672024779013620549772537441539619200722478778299330998235679071475943373888700071001389444285736483678801548618826516509275312974686734171763355669663339263028466989227752912821272015170171824815982518661051007612465754617808214865909238014368912393891201541878599392028303295232541144199671926871988571649981352447138906775137539593007319784124915859218368016466529872720391906520240351232001476718181429252528531230015012670391797657295520696945456235257840712093254949875536814210565819894053349471328554636851354602286516565045710315967180497170948116781949996369950148648285730088353845500930850692913075227307509529439793720611792323713266295130604231768876386093684950642443717419823030162958533615400412434237324527968079457711187915225415296463943913927885332849587858363468162201982178664033917415274439400074656244538716599805826889598006416982322019055411162101490872841197769329166723995743918099225332729012561669965373892614578600529840634449078504755961568271638652770900776490578249676068174497034310694139329376306366615203127605727781716212110581320649070270189437501970895510748848769111152457223154570920579503224913307566694232107064468550241827395770733853086365254940566926055960476152508587258462751698239101088883996599617289835730438305920645406981258271017126962923034715673572673823519551088024468362168119542114495895521300648649499895061836785909857289795295771130207845839319653019618794445421375434728824345936022235610680383971555798045514882163014878064863334084684176268889870109855362014308593396148356767878410374183604570967945741313962255217488288195316611491190685429253717988438059693177318302156379575611817498554801206487004638275246079759233920166998927882566800395230519807884107607665396921535475277435954954552633790673343544584398269919038775915747620344161217559572585412779663062436329766591880424818047583327658978130443590160572465522802694177859124289262515788506796343123565869052595298013737846199192393229671450578693823825469737007065895139661730088744378134614491556844128004388244483230513944668664724750467374880662060941468456432245120269310517809494816305965099392382511650688716339413072018742183084066211350558169894055214994712884441116945812815232753396386438596308644939687920182250664217524550398137634215997566007318270800713147763886685227574846213969541312209191636847244015316728406592850582657501622137851255320723084744464946991416745275849351976910208594973969073546440350913578407486943747190795939443373453792246885641813034666285361262005720813856524369798559599892247111612096238043519730130577702153262336072497220699599147048797826095357147181123748453384386765263847430217957793558519159063351614209376194058245672283960463668437222733499877248609074632978427400254822146765423639272485768986955065844242890892182185484194769404832735818492895334744126322469280705471349964687756228463713126029098070016114159061870752499815781506453828327752133221577549753385119158509572279399286932514938817214435598864660392131095241223485317024929577664667730052404246489513907861339677262268608563719526938089540831907060890786934359685630946504251506532078821337798719484647796082522821271172983703756028148908556975649905092671759275856633258173832755947097303861611618998410402080874098278839095453170696693095164899000033004319194443475370481781377297656311769342257229888673142610888811757114262443298056489368363893795290156556733231911201948671082495149662687234158933701668588758769287232496345036321068969127679825175419796303309464667692534580745013503859546523491565565414565963157423217904368190042922460461390279123161752910618145798511771642973503680755143007215126276770090801972962347731112330800104146258650539728099979690456242779358500513261462947750538393663612979674652312571181679121326471196710514894749526831520718080010238278340141304376117940677701884998614144991034632206842132188362367641620394675451360840787684550275202922719143448317698081380731503539520595976111221552358610501813293516236030114110918528554331586728549095166426833133588052711147415627961568930122276945713174447412797844920567954942489356964909478085993344858006914195662790309391702550922466371879071760312374560989666504641720139944732105274519151978868456698997532911790567965868127865060812225732188974157761892464886685816326061412568351478347587282201284491013749889770223325196858929745850004660322066338196935440283291296049946343240542765928554674801616554990994428704949321672249204760530227122898791868698259357857004702670007763750376398910975370609694996841324250216164619025050440499830432184829372358135021247836409032023220225937481112928021030820525267467584845087098318939992793434744239425014750668605174875911518146585581943636420841616282668129052547814883371711506963379131264357296860880056213504050404346281662113508385106636185956314245627899803143732693482728275451569792640865481176431665062112310393687033202662049302999921982563679479818954605605861410416666222908372868455924366695308439449985739378095506351763249240921348282028585599170225160896533659460008438870302050499907701542516115740879806674484584223755249519761713317118429083424933897934072303856227621672413356719932941077658028115351654667247567849374278396719780928802018415490059513348234325009202491815820351071598166346121036979152856918065171569216331202576567387977643928580838526726967680621546833145048355140862546775248146676808847440598361958727895669636131043753557626090740184676702331164795591577782180785915033624390419948872011032568062966728934436506666575521153357280894498684311186445676145643542854981535979850101813931294039160622780429120337364958502794835033523355549025912197238028149648700923798354917978262466138763997578032309597825473434619680591535857634851398656846333061585447418276966756170965823695957231496792180830159899054198706710681893350658805193801809860497378734885211254045226350917674462933985306646311690316256471065112788057093195001404689642661493734962809349958416758216771313072932050429706422565308391230357487224126888207942835397503305824875328883877970387950085760309598913456064276661710562605087526404831753318751157932247862693714573767280135139476526839167607009827235848377292406389569015100803452011481934947117240117161598823052299153813412745461160659196460393433297930463186157016921827005110726434718863927936587669107363055455848541935255913922125844614194671232007693527315726613698724624747807024090899364397961935463593145941952653047130605178823441624819163831022606712036901666775561522219343156479787433580919817017793965141988972437102952374661824003847997113073566437494478280435513825038674936499188555075544494525833252167639797192376555713841488859053666488190877704736397308396072990094368340888656849376738668765338439898396117223440255708611024736010218202388951377625449152304996565825360803476930796554933380473362372214631619110135892684549424386413156191324221096697965651933972216030445683389460828236964822426986784560590686804218603942339964254856611545084696407873245011455446995965414016687824176504303994399273491549719806084369166824709302889920949966417372385306124411139800097412438841049471531528901025460767166552086988372247535260326913617224212684192964954725913502347268741946452832882012459328691980599631744126102509276338553434924361894037000902455964733896483485441848681131621524794391378227168932964424853114900029820806826967302901438463610331765085431082621641524794963010930892766246212291219498028577941151341921942129432676024229395466146174148402478255413101336170938712822436421771341012776446602346365630102426676959561917123030937077756403590613823066759194794786313258058071672050839321970780051864663291341980114681243326161392428943134571556256749433039722890423745415941963029093833498641716304417501004084820856245648746089053557297544309918945439336468876062453005005132191724856426482381481945492793551183859271074549477008164243454370321578191049839817135905633801884805396909694441340441661396777387573290040813937839499863312974658623428115493973220525337994783872225162082807009962308786843691592282366814404870354105276810347842930885826703328858617740935887325796343183094740029074851822909486585818092478806816411221154864758831465288618140978452187074754108845176661217513337976070414316646163615008100248356167091240621427563520168578688724126216990762862289697477130960876602708537635684088160488919529904696848831032628836929448256591530934503644680811400230583979561077626727228472591189517300728011167174319009680234963442630963200020880426827263859546989982794907228606326607951294445863322709819438430318797704655797410639567872264011831715611167855048385703094144768544385698332629951871488710889272991217937223593592324349173109911345086715228033334344571817960461046158296539262227962922877553738524104584863724727187929814901429882238455144682691693169997535538413948869045248972725511897644431445244416536485149692622584979881506218018837573062644315677579500246805767350447068361808091810429297102664275651222126358136279278426098185524186849441280751326966020309198284361941948244784879288124584559207951955946254196703170740328370545664080390430069841927186960717144720404360617150134157499108536245060816042899025619555176442388106266301238247251899063570028742508630947760419020544236710871179509597180966510296252695959776695415524421083433955180680185803076048177345928277088569693473975418763016864561961378232053301768115941890543674422752660939831497176805564858481323589955317690197706691911339727487276914182966041984997427332417581705133732496026629544930398329898404422499870771558460989373923313585499844008599134746255546030697739255311873108850857245550674706422432784282292327270562412747648406141558509779137946058603820231743536548833175686425988070796244175647020174005347807562972165236277307610169182559894264691045888870761553272098392493525201039822494004335914273969177092882502154548056505479871342850476365971402976138813541107818275518304798502240325020720348247323872811400264235279470575171168126126384994874653412772473768998356281575334072258853388643439427541992956284845065256454625324789369675101758458387710649582122474410875899959633075438037194482765067050208553155423609984920846953445425988087033445585266050489397513755596459997229643022451707634844456462118284521336811070664898521398996772268980679529920719845706266606595892265391050401752543993088859960304682620218356632126345419446689194538103905811290623038950509841096548972244447316675420090780047257435220676124898893791122087433276260071826966157615306721503488969472456295260473501451658347552169630951530366397013214333402111269084881997463137725365972485603332666199510590878694512504203228649966883492477057566463031502670333848577342562985098389194720417935628727693622921374370730368698046409529092857319245061052693096169555033653611733655103745245900765251818802261159963807718232774873668004270360279186922008799201105127872222094932547068907563977205440451193016603816482334948302766102369976796176006937403453424462917233950852569201186873065916781930586298576827996264638857759275651909353025781343483007308200600651730404012131068082740555849998175864043972707008978402594344022924295885051096456197776818935774204406587389236604391508536745053662921328971342559789164156100776411042687013129708395250454908312794408299774427370272851059062244873466121469389941602871886381711583545951884635118240822639745672293151576037857762940679550408881893411714466368104539702488455750666774195002447191008303605489397867276302828897657571570774463564096062415369937973918786499125592686597204330578717122107198995595784910583297090554765017502561940990006290285336690812877514725985447950576742918278427489519960428628956377277120477402996778381092543109189008305329402029519156807927677101957438209027832405907205544873637613547489619993371698892146080463776041597054957574689795036983951718425250167363553545219975492061459424919054137272845886387343159642789037819759517522106587909745735870854999815050806411376991646660009500133069439415554878878301793143951941270058932472458371461494409413093328499946025235379955617545184518818706527176018060059004814712315629652740106899566572659745339648276451759918548556959915982592601270342198010909996743218706071870380566050958913499260500749407955658802562048603768055953212451568061832981858392960731591797783931033666732044719415630606563147702540517720516745181381945436740241242184275363171058607815803603659435723812273455326779286139800069323979776516242401754382506985581332597272405802761136385791021338693635496443680967406192627248393003159091260195355606302032422001139274653340639404706678739401101527471832271585480586457730066544381924162035703914911635795697648618762049095360845243048721002465392394751575633423237145875392147929019978721645232394699196930514303585838156382933155974556866473855501172952401589520800253280510880203627802626130503786197838508784087537332266399966329028341528924063437723493147556080859040347617738953437148462176070039533114543012650712090639589467206448658750707379432617529760082240793482854882597622367578594586497682688761185829653135172446187370892079816258140685041254104861409861141846365312148610510734635157945145028576094748772099425337165271023333914500406204649935948459972531697483870115424170555187273101010169014724145321687000226657163993411373309123132935516423594486639214089644680741438987267072652124156884363722504936411271449866957118047135702020902581903993594746643973457731149226179885266672051593329535734622295983936764823788035905766355617448537046924758522484805632852188309438070612923464239649842777792385125357185959733675894754775614960027925739610548598051202029221157398001538234741173853802673000423732498176800203941582403718939506481385118651986658433759283947367860648283708168165578121081775222877873336894329017767995727310027571248073357601288637051103778888684736123844722871839429228116319802763239990950957600717144887609002946813459045471459306074518312621846041846670162517563661082224647519836684789019266665655531543195379216088361670167320691694594418461888394745648270136368147560264099160726436191341304458965290837081781600204043507112846320444486631639291008029801110204021222452043355585566487678770987907368848556532630680412779081003734172267566662516381270491642471342191469478166693260923126767671526329935653201323253673680631880615683590346065978153456739481571194823029802900763175578907255885734687088641789307402094460600133883404494597348755302714343787595322722292522894413871862085654770187008258567303875247868067453557377394806602787760120548733951837985664017793252128308599419743106343651603217594122180618501304785498665115803342078207929552995008552585448165101431926009603163249141019837592964200236619600339433823071003851271672875107140885071141331136558384681323111228411379181032480377848061316271655857223294118724516881902440940405108887743311845394178797218917916364008308296027349394973716024613382403453877422275622501455836398222776527393165566961691894945485882637816798053765276161617247877663518589682347270439796063468734916400984101369032430532884942835280062529781935203217129400195148493291140195670163619227069322622594405905159253917628281230039176528698291856859946824504826202205255218541149677718477463301402230616121280956651411895299578714689618586655714918217449538244197848811102385308696385276662627219359447060015143470775867335767406885137895943902422983702402565394726169960684414337047911640943105460351439072870498049979825304483357009278687705745981701781354287285560226954733875619945791999099145727116145157202610848931022934070377478753973146926883083372508608710783064197986015190820647641829612069393834860828645000145488951450704827703033992858212904017034179962021439038490855505972151924561294774016477545546259729016464879971055974712597928297260776683487309316395556632472372153137843848752166860163736299098183088294781423177238396584230458724837415381626824212388318188712765670170833273531686534975299882538803477805464107666415218547346849460585695912660849467369414856159659031083344631832657535293209368901955269589347088933862203681622334627153486564090425703521434036577525470395437740860823900065270438917015022972271535316992814281125494020730400328739678759739187466006287850371505314893607490331401689505344891924013966433180801518646915352356920393471628997466970455341769998046398948799442562552241434094279909986049209308445283201659828045398031446409424051842780220967967118785259178396307976354070250806044734923286994959851811179708601246862312109610192653698341205639412925830889690571226180834414470357004799457209921502686999702080482675882441693722188239090140499256662147999495116356677083053861354878721866679047774175158329854184372727590669624807775000598109138304753550920511086785927072310602899984108114793381928986250421731840420924292936760764280290772486540709309065296047577329374640884404533047654779247469843712355990655654131341256152823374119530939128673616954764502976493721763201600537101193326774586843666294970477127316850240906519665156708987678388655217612095063602097054524809217353047157821787844239873813962606172630777441173702386685615180103991303929199279990633187589579358640810098352073531767581941367237616965951428983025961829010028822926538194672029423482331024296611216343419119474118433109530213882873900232844010748357151768532818345360152949646678769890258473827297368824827480246634484068224549251719454511105206806054683695378419835443182365402967005632191571349216731662157941980474246832605005705499402637070126062390674107686013813442057250214159165860976305123875817670673049282759565770375718606338293572562293057315836228964690728912416930834354543966284571191640220016497125638483947136587653963674982823203524529576041792396429273140396034408965811984921879004993166046662169964788890193901537827354682502203085644530386343458666512327047411039879474771533103233065204032658542664008365064012046444215455085592153773565923792062096275401096027990940418813151976321855501210498579394036612218693969599907986640732271951302207186634832619114141954683605102615274174968859934713319668682276467741298149875186886105777160259892164539488401512995713612785117888628935734223232576197773227270232893854864482935281973079789440135874268807537172457727978017642670398492884327947656927694480360997695185385084897988924310446741602435218293840050824165038495201247174916945498024961789643953985954319391787632495315349325017142977846980871947123512444285517689581731255978859447598272849147363358383244893600764525893205646885498898207088355129975069327697801293033856250471273145935526531850894979671884956493652269387227523919745684913551034458075337758425459746932343666440604274570535613875688235398372393169203162677839850281746820811728234261250373311379327222446580280325606828530423281412431137241099087565076900543557534261953037679908559539937255286882094361393728831487594368820596946644323946576697497497318060217330266517908424333594154956703404269675230388841774243955690532026881201499543800742535153348051886061148840787622814787416072566837275891775750188255738405622082962133634259664723149824561160692956771478327860739478237583911814900514240403316200460706007690536529342236032389291011207030468758395899544518377183838624454627495544060199306795611702744739654466323606742374437157834917770413486835499663748617025246448908395926359068931636086982808021889167960436312399368872697394471715696098160927896120571578635671827272909118524797679205408799591087563610395401711945727583517727136214070929335085421498646736969586613338738091945187381544095338521589551658933013750371458516509531694448180371372017302331409174356037375157657276890385922756259518210821002075673852814307996859624920344154453476109574822201176770305907054192670488096905582922837672282323652067046855030480431145707997033544522799381382977438958130918976154018601935818577915975843928043322971539487533736352205003034744441110466342911280284565136445163881046601161280893573984435855467803885798483712124344443858653759398932186356080874545512965058684189790253069711607506271806392171090737357015441806388062103725574956722874519773656161950016412545490978299738317940679466778701596697390117293459890122985321956822926902180619811014889248797834165079369749044087835884088596265775195912804329374977365165444113273320805708668199120652976752510279459014337421984918811133284289011787998056898489566640667395338666938618929317357500310526545513795516398132758738077843601874407905981000658332375724867382120671613191471638738046713588562514330444687181058490588207685967592365737381917317146672578691322309496402451599085657112729507984420842058706925293979182108598410603042905366958896274306296715815590626283983653887193429930971729048628393752600068905638592619276663653065878776085063413911413604387519281441139685025116039458896549754083101417703109735059480491367223262275821595923671755130784467893833676571353425351413238044711457659962760652510802603527212219915677048574451991714782024889285589361538163778985402485496883682289401196750274611882860410946979110306349550862475398351219070324741558855460250169034301565980649383014208949759675458511984585660057817846266234687680651748986743260903525325913458448594454991158575487428160382278250211911217250155189261613963430691368319970267862680289268666966941723266480963277291079489191769317199842711086897886363597814778280745196121893523951420857232787782899364240008157162161448599106661863995641610267945424743409545784249813078253709891837667198352202532585613185908458405296009680303220345819889456846799950588614277200849924517901826425955782305131875819023026112564975400355770944796876093872425386644916727060586560043748447610586132631402814071760853714964791858949879702531642239467960635154868423776809881846020585250460689019667281650097362302958613005492936522787420859726152946582781487983929385479257093411701260435732764865555204045813836078593871848042515202156662455572180233004229756306431067845653609406818175056202203770280576321315716211923565549739469729085460875977763297221418919359046124683250856440577846212333518647890513495812505384223797404060626643399461200307610509899281746699629584666269117391225660027392831150691213480251457641220747725596021267569240617531527735340444476819252789796021089302555452811032587038566959058038268526453303808166506684148656426564179361056314735655861277664489810929940748931813225089408036673980003757056146482241655328218046658574988678416534776794981332080998965444577384865109481588850304146466422070240854738910274994313152150285827757726373479688307637684044027988354311741704141230012908491145265600615314150866452995694122219603423430276497648396739965483193894170348456490453205099780369689499395702065111527415146871243385342871996928620486665603712781610387946905013331934341174406518103464300330631419203071554041681232766316207227735054557342859380857652534246290424257078040833015021589221339386390153001485246526448768433667931567743786946234781090139146856952256589679832880830444852793330835771916457321021462381260700584375381645593008755939294683509161686774253241369673003715489881369904281921930529409376867238528237052815332005040860279783545231639497720805237320414598234892933770448566254506506256553308431191086261318819156390431557418274428911122928863439286097246449289487705044641242677651667461504132284683006685067549631831965919754453137088011402892772224582152623779235447001313281813287516008817407065064116602911346194063808869591720039541522177893478709377837079202490397630126535362644407754482390260416993745940755008007714811726645231732450992676318143260894590434452212276526043534881515594420388540665955107642989590299627184072984733295793400146906655621418515420018698092414200848051726179199026551743480221495033131286925522069151855121069955887168857788670072874945768523065527122590895223414042065670390602965152468838161010620405637677569986364436162011203842730699618248408240556269288279231747900604589190470109936192855328689648946600583646647372790776209577134926938820475712154381633850027926255242288659019931358288079817095202685239693619196170449944808046608792649434159580289146790902852578191894900623100465798317776429307580839837015249391484553446167014874671739188362508103735928229891987797482514855646295779434883240975025307724074918910508197524542971506781738211792292346189311616416294271163050474428631251472293390446241378491870883144176581229269381589773266277997364997572198154583876614547264975089566570050323310445371280103377554477426034147635232694826501108885005152397216853825647526460951647830355653830807959246568094141723928550864244258427881415310340009796416219333745255517996324934801288206018055225253784086858592335643524441561080351196979541258205920266629265079773171508326062248023935082336987968860267860412598678145390741756154387846433218498320301365906955880584036227118686534971972034133544839195785503311004352759827807032599963766651062227321787816383835853494002164811840698339935556159678323536870833673819365521859911679628839311791369291418453549664521027534607909080429796423127206942816273031780645297337647677173255726358218894940904630025016298619085241551134778780636056816085462812008618954999730867320878457499406860327633669303786315999636485217095539342063228215648587519869132025067438075173297499948354350230447094809063160129532147058228928030007852430440020400134315862033856700852329224517430962048321139330128579702052730722738921062048193717602499837938318718781241903847834036970157518840589945622464463643766282033815472742370441371887360246900860568985643198541557363487758762251857339020024797832041421673319287856619672620143925804683261707830565661870059029904344583678994212886761048007495435124866603189013890231568530837412417896194112305530499392941970206276718139077530875603175039470175257677598345127395255754768633466747988037456790182672196828164853834000079393013611723538522184949817426958841103165097105698793376477613413330291871838566637540911035849733707177762288324881225026850761606376898211190065624023760145986278581434707611789820260504279015112549254959280565757375920987756954850946526550218221669446192120958100705514311527426534212331222180783424177206602165217791023089801229605236399557775810841529079065344743633992239518663381122243774071761856179509022354989887462663037735534290276290729943734683577845235016389367108339508455136454963067875435482862904743704130518446611933115584391651598973209215478909423688657671658477531391885765676555134238760902062156504782140698091497805669177911528642089347201873343327775987822014792747965209727473046945294801105088028864800296780929159984866601266161055290813810504703130120466685619335694277458425013600833892529722938230415864357702874115275099186655597170572247681829603568719462277854844912485550335057933354036309935505377367315986604579822653101972331896850469089187328529893483060485683846484174593228820166937949515356278729498877307994668015037552075674095975951025873121737525238347539352104271324356700998861068762542809233839030354408244040577661880803617250223701258729451733741765944930597257961822216837703777044477080959287682289353438573088044435513734659150361266019244377711977345559806789389765864090908867317454269439406874290048110086897798496269160606257693301745111508977200030031976703922788514931887898467670805531715255199643090636063683315715818048871903361749588218844997806912928070060280531330415721315282611100230752883747802790112631488851566093911408154173536333070083044008956230182782923466351303047194385641101954539387072376913515550659892987288956035135301027925153907733300849514325192958890309956871110695729716797113852273811535710548140819926044303723720558053886773828998311995408478895754321394144876799281622473903676689534277436825815780988512260590208697637437010963239632851143260367717727049204736108054884452358637832240708491750457728486235883843218284510480105223744952173518936571236043295041209513080458491258832653258495015940863629400208717848079401104353407688569486462769768940887125824091996446632350821637105153017984703109715614089959201554022188743242286697402981986510320401684155192563927928633640293857618552310258675405475153681026816878758309681741922424326264477536227172854998892293411128264401316646705230895890107516573919887464105718022166774882903409822394151854733297978934237259533046550902232074221062736532111434499865249258098410914437975231086020401391099338259033667675333286383947468797656397962609268482310039023447295032823670303848930730946036095959086345674076012493897664274800133118307091192775539287162185377436091201885013238260975066753083570954129922961617407949352323531968750039349049111110403282836967266227364026988860437015713837680945636708546038892413900291564365632541926988174342334359396744528286477042292536685756711745205449392338890627210978085183929931586811155237830514071655267930649901696052519120118138599239653691383691637630561378059671070743041546463607772599011997844947049242886150432368216020595846841003190193731139527471787261638210082437650928190667299582013633617766678516282428389443213753127833118664839823639557029693881334961935008345009450361340169689670112343489996183431469572772686812976271162346017473418317915879884291683972990554534906408091837771587788106216234800542753173273000398845685187165223274575987518988910668468892461625838522529130044699325865636387061432631042306148250162947469750937931646670816783932579162424381624517145946404001054432078985542061822004550912963456605862706103065364100644378721503016467273553901973788552140826411658902148671147830269887459478654182054645462980803415947752188007309123473537493709984978804067811087872990832960240034717265903465357129341868589763324544082150588982038997160025594147687945529498880392499445190357066485185737356938290401056394201695597627795075296879164798366756176664151151478701157070061737586895679382123445863953777406068015877685519486577445491698187641678221654395512470812293914343441253789576260916535876773444288616263729725230408811739573820788029838243455289586908494164469969758743046397874052468579540550542179912910588695443863580815504706729248127158262384648311757506512345210090930148011551529741048288597107140573584074351795788620247599934458120423763731036379187148090414359181897014974550377642716945101437499482211300212489763057525940772683404341776044480569828214702664429088763599665478202699706497580220000516663564391262573569803864086065450880531796275921015775117030615741694786405176701142137206167823648885379929920465788380539856073840706516659213917896980375080089560119591871285327884764064679450654038189499800972399302037331848742045091965798909242617003538586310757521747843768210452611031463863565055757795302303152924923233461533031441629950010236325013890318619887701090768324791802713080186532077159861281709902073478604644952673217873690152492997471016962696632178681775618067769967130685156220612107427478977608254021925377616079277764767839086291999846912568664135974309063962289793166535846153924349502711521283203388274251945975693660990501614987809506039920428824248479989220852450621244864863143186187691747528013017842013200304510645165514048862181375377875401653632491636059655864567465599313567237610192850048491160579845450337693958659349063589101702007937629128514058048745457768459828073827602661400563462902829784776199220108515541979842387560844020127432687167902039124516372772161967912043658447289016484465579797505189850143238621797566147323360891327098887860280389987899151395783969842411414724080870230611292325017151403608681808586756588871854499709769108985777572439720802914686511933283294164079539279166128989052479268358354650090526663025012656943382941656798766788536662938441927574768901284229765627689596833485906372105152781855570413046099862385918979156425404423250371865985347008043293887714218793121667998454430208776718532777576903344560136645702624216437676812621063452539470656357322277583653854978564785278955773547891954636605676117610020381711691219891315092990178358096443382526807865333257106755293007700885226006169628736835868059738481156736502309122176059284407484470078952618005949862533206552616073223497334734661536297310142642229451075968143561412043031132824407250829900017101463102170464729110480117442732704580410162769867423971137445551545336653030470411246385503046636961971122683508403370305351289833749575682371814225959493493774068159616106659161499471443444887093882244577718928832428272347540370821424995182690538981577883222334101539917534948085593023817230196859963028943051864647031523440113128153734541613511739690624615641877111545988496301783571703669108768646757043629220152506111813453643327427978678081454208993682251625069446838361369113059594223603597242006861718064926432511367370676177376932482141240016149909701912070902552053495097905774221548890034830012694406196229146695946030023262145179763757710301180362859180918824850584382109155397311753547850571522807741930686533060705669410586636044980882366088443066562782901172743600728082460635599069581528429315332678752757854433574810410930374762195643913537724107030639637775826571729811501616874211019913243646330033045487950243349705698992627214400047124532667441811711005943962775454286488948493108061845907767745276386181566603333878462096237378161165252440884826038809461655780992467198864928961690633896576104126600774137573106501149690860121684452104528959849331209741202171463035797401497266079754837077651152456715014812047301954027525701022719002568853009030237013749530337814554878952042625782443582948535992359039836033605958178053695825979694491632168772024661527462741483359137599702133436756226332606174720985651705896745240204126199020788646462886139064485614212883376616409723644917895987145420799638695569649629372398988254113820687560881154454733507767987146975317718551100980074436890646450042044886335337036115197947706612366063412828410607503818841854070646155441343344199125942664921640938973256593661261047515621451317311858766292524921641780948375464604126444131157834659132740382689328717075732259285393129927120759166791822512082211766777537022894650730470219168544434087453499139553729191938017099412402643076727109401021371278088006848020607717085478482054917182463091713836854288910230055329758123116732571865471179257691587268777080970007492615750715311839531357633496508561402821509506143592832345846686493012268135571460739939222339470973815799693649407879475987415823927641880997874557850052706362222080955951056342242550246952185422534122873291953473595455088527610878426390583357360130981420848062583117306211664074389857343456429986061768790284789525802262795460868369729762565755647148848150896197412137803525292466353867071473230572567175891278826678601999209801683624156141082107078959611198732262044231701881536280675258822487563707734369847420338262205923733137700316877901924166790014772502932714451470448882609871285650548426387248129787834149339781932284053874313843715814134047937983308219633200782498197564709088698632678125215784578776762960816717467908397056949330027043942845376685353999940231006773515453410369263357972849632262056959663541744041560443714077829421229383032532595288760502901712674818706550562357831016190584348053405597792617686280330883216495270859988287644330916230024480183826945996719349254090556458552962371308406792091689067337037922300030281487782335319505731160740040701031279823045630982059784463009807327936989974935497187365818709267459747688110851006327271107482062164365691667842128756871862550142147311043933725944488191684801815902320385040566451127186184983681980211389355641927591623058550325107431022463484977943575358876292400849172053852321759827046970267285339192110436817841934416081988332103584464889999749938332021735047938590572449034599746248218551929850027644613169004655671318713036745235721129967952554400059829191610443352017900899341288059254303251399277477077867612976890515654737106356342414192883458056094506315813682392150183313032673153971035230563894657443612391149839446476276031332484718133371709948349288492878620924421646727625975632821910728559913086743155479438267038242268288702127403752283352492148704913418955823752789150988674097581189464218590689446076606551494972405741213163418642439087119583731121961015939951529842784081282769727628146620322732079001365715546993172513711924096081260760686454014231866732537076459074130687129773417806605667939486450104993671068356553327135778859118164231104613819292012642960707592656120183619492632835448932028073785960325692315542899082940402885776102844716515633536767093708265791600596012397295078412480817501087618982812830925310893047249236994058880132100005191837122426524568659206970976965393871237985703719492450404541642483129995772544951957085900126442013777070998133048214933186464442887476336050401213361488877317716252150181204466984470759230310894126247001416845330478197129333265077105947697650734249377169186906056079928321991112778300966284343118613845649588593074389254227422680564349054990209026550249435697469536917173345912090847042076218105723739085325325111530666114435766627984905728790457235003369593692931463348279499962738140269850758131858278941130772652386897155636388986620179114589227549452800583502357340321876117792328376792829599165183782365389994547214204837381723280690760672332384445798689867790417306122346903756352456245987833628471554985413984110948235198033271292778843755479488394518766235690948039681260703119884000610377011890687447653562134752781527174610538100773029246668333669723776470040420760186984172061638069749374369062322610530733452220651509849549578752669546600773365471359190926313886798029575149685853081129110710165521881089925848503144249227282753353571794502769575208118138243643767582718681852730709825587305783814169328914549448472958389079127809426620315188057171682025132409975873424648710840819407117239843557518942424401047266101133751389540769533576972583984378812090438326484537576158670252322105487895564251546908740378921520157356100957285714493790318686735671100071156359453878488214007998794423805024135710413210948218131290602761165928509994234604761965243328315195120347634814342160782576370624383853226558029959423038991397326646967499850795013772931248090623709002778475787458494964539010788646043495150050326782207300322113835108194811331540763298599416022912586694317876672756498177932278613989148526182422856064564476582736337953246986166134857979968683543462821828275876095012010929800737644685563820953198287629759708608935222645460783325580112380379905920176554130700407796736352585437192627022952026239255771484815264589762785928465646343493028604422211542350279949616831099796851125782006554941916391592290776763434309553634676805803182241806239919830972564955403902355193256468869330094439445530553668617615992115364800660380048918777137205537174905980190181953487513251103517560080216508412187673064859551103365052714458094957580328761355592962552356473256078243568709713892308848099639357480699399833111759245025366519772602331130014582674411610112250781471120073846820172456761244108853636604482556883451286074820322178281400933586153551330120500595499773026163416214590649789554567652355543203476285960935195119808993166559645334685830096476981886389366146069773508919444529894447255875014074993141461970646601417271438739374452711118758336429089355158149890712442049436865755058322611163973888515267033330717911576334136789213694936550057830024862535218351555347284147367450483295683480673695397756690685105566743233041199471934547595367067730736157953561148287435447178407148779464127331708208214299508032832188084347324843571049227551037720770027447342435394484058508036993533487327754524405384995909104436107418333308684219666546786248800437001432274024221551580174133149923246353022084350188604281841762259047420386920848827173237544379096255321320040086755093901381246791677056709809479263311745211712048602444754754196896003376338995668961375028648314769897880904480188343262850720133927923711983604893032921034412779452986670648142822713214509562071297171695092597098344953746104215107051084510213412374394496669020413048121508617171430237119754750484133351623389812769660983019989033322804634003018916627680593950128617726287775099344158915005154488262362340845105203006920517015368520944403335430750748245651488765779262727637509679341769479776737098665173395565228650532793471680748095032960010189912849792907970235415409296166706526916314834469909226937572712964234549842827746090145148887344314031900956905626589906921404716355728240056535037267560517009165956349597973966153195381670746354889933591720606025425790526955841571510271642337968048133238468519617722224370637226794815389570435448257835755504656667421279347100219271146945363464087592988814484049676016704334723472719952317203423764243174604554309254186522234718022270537252761533688071995290905808493894368016268812674394444603743671555084398542990481371117385417586205325322239174968849957767416112290308154338396262375262277552783801468425457932544347021483800778569762772462318759817232423250097537676984516322705497594390233305458492261931459908394716851862464415966407030777551392408846891114890298916271170335976133181106234725545264369666835856118757258661722251387052937797880705211199490225482247217045862656676257576779022346000615500818519078842439005389077259746821931860828439487791021141238027685946929906495922070689529321170268050890069758465726396304075231609569716761441442358422881786113652699687614673943213577949235761655860279337299910130211111157430740365392100072733480714057020541930214999381913872178415346333941730759458512483911616663975356841928345998173529400712873279521727262495470297388623870649937687201199405363418202816572796670707849327191747381444403516798020798030521870509419570610036485548089062132793752065997683465015317858734506687216052914641739554726017030711095272930628483195371123444283971755868078311789287093116495012139688916977746434770668852695167722872105769758704202342760417225847513321284649393711559823158006004807287105678862131455546836305356246047263087545085159980233749479401515215704065329310212507820717066956678959674278090510147768238335032533829199142415968629307660628444692604922759967384742426135122872593216022931175840917555482991283236214850135569625145426366658913687795468165236943668043141577558059945318708101092554052562481405750918754921876729654901944279043771656237509787933039201219161229277260901002130034231680124264210700857615318380944322020996040046375611382762207015247090158651370910128124158806821931710765209468213782799275219208105097830328011281305981379536074786223148384175644422087129669403990431154170170267195851600769077897232235735579739832243461930917557042060051581116750958989567314193062221258965570847903577320710994021036910366799592311162230651524480390302389886726880361216479174604852483695037703988649575325761636604640994877251802654546747098946424236745809017455867651625123612763797088709956925829643916562435245921724851067506630802770287585524208255576144304130081323412905945075028335086288425725058099064841861682571797597190788443318985661130513457505300895545730261056521993811613356398577652773189240745465879816322329775401435412104378571917841416882150268502933243120616837570817567971029332089940037425177053071290614566969244868563583632330315413231898008592416408950542919435753097089320330774467675659078626746020945641889601719092258219805833823725286726975261343676794448559067423876843469272979785326418278271028548920657953623495419931026004353536145232095847513964586503229402414539440123654335907684967309591526762974041577605758827079188527145707769321161832683233413092571367960787391045213512588917918214314925047999516118846173268003665378414131487564341677736850105346945756300423506785035013771595509994164709964952847424071442336175020921141111554265422489348111099959641151847149460531614301563318352394899516810276399610741149709380836168646597605361969654028003081988446357278869042595057505558570633262022241224083378575614443919084139739945520967433893316965791092815321291332224117332576923828100902526840299648283577909016491023341958604596632159815244963569053268712602587335366678974379563535851444077967798012611875619528331735879659162992669052430392190933393551896705635902836115261709144138794538320854620486172745133976284423684761776559461975368122579909086493259113798575693591734739553536378133924343734554904422016034163818620284491196603429262548655551496977776729436109524261764136570249594793944417657961260595052317896564638140123579191089830069821645945115404813190810219300867479411450731887602678376183768757193868837984655579137889343904763134632805068922368731313014100168979507233207703675071003237552369693951619868897425709046582859195813147779888864867078627327142957487468385906843775505021008232225226923256381479070278555831398244569811276073038801843314503180515725359692998376864291627868585331630882211911542439033076983489660939326732737588885844328984093680694171691083036159552752516275075007406956556017552189023857151922360051616341065606576449095095466545648658880250447266179734004743035331765931066553033407452213605206997409237424091539345583795919972613706153207347934598476063483983002952409474214079321818633760293450411305434380311386535735286830984277586130945954761248919239040204579003925291650800679606664968653642928681983212257287221257387257039000179645445874593360105115677203044912233259384040127332387668322154980124615183732423756155593530747777004235712949879496891213940751693954491248693628604267602206766645989623361401827867901726837019748336647531172702645774249436081473386773806815671631696683923310603386859766142178907218616469081024320635394804772103986256871616148306611602204673897284661170826584585174517270617264876973005277728843263292157155987147840976880994074378296659200184164757223519076542374218015963264859631035912624964730533053008836997533067731486792365155011601528410028721029308680627542169134341518815396840836161119018505250772941223766974500406937549034519451567327905285771446061231432528517002497379480664885275389008618770819824228018079415904267652487767807919368187937990628719776614483355478945739993656467385044047468265190225533172832626077904582343327447595157618431326177577562126236723966731799616620465766077397119642246175828072104662351230786770720115575777905295412720811956045572034511011653705829367562619738834037990869015210269506222274273215056308070499095601175164278662975498455566457562848117684354248180658267651571626433866797973329311690926986672464651004950110500041027675368308494937420085755134873000452169854284918707026870008139219079098794406676605506338716152336922682492569811489570443096623149815561121918501734639375577925809273058204940655291405850445106240565466102002334114136025642970301022298952957816671343693941277852489236095282344501868908547335910174042224106864419832992463165663177592057608757200904417536972586042131373571563774075694148023069046991322590095514647183308975922859197453056249658917625645583908845091478985341097385596700104181763766787931052394869220972595850958397277402498414696779635245556491914102777890608072797842468332914402291199173176062679097116219576100657004080821263177913092112751539961060647924059099760956750295028916332510348405348475968257048196895476896457088022114366009497574036140589250567706083120084194782206992924681840482703598573301487827828722009007706689320401445475337622962884872509968798892549891606725201044771139928914973851588248585143895071715642649207834463124166236335975494014089276758284971584318108529294474055823823327298286332168253393346565624618078250631025191145957440754382607191342056705801551032413984795708463655414239232909848223751089009524725172538140932252188262872653301725451899275352493991269809460574834648122106089360493913405645613706046672811380929411094588613880726520289060823044111683204488444144946166430128864051052459126952208486310128562006785983819481393888894237708505703857411757762718815277288498106495614547498264153432764981210745055122799247438086581501253596114802877368155612527161063247606611888685847722062621581289530820026891677004099083429308709877281323932103773440475749034562708729980735491549882633641944769866211228889027273239357103167074170168179676060463013291758704583178694418450310795621318986425865200214839732539464119924826478427948894335210221353466490908754219933285105884575449462971149341251037208990881562829855667620474239013860896851850271445788726968084933549979240851480753434387575629548717252533007395864280407925977387669626475953262005428559302554698759233219481825422336673486717644265245279337886512657832735570298998626139964472944211628255350571800276439700794897920797366986146276061092059894830405337700864934642582455396733877647839832912011749625560482096537071821883396074876342766353536950885027064472244502491027018580399228499539307250996414502246986923556983929695342496538704022826616560932692586790872951911222035586299479791643481856264980886077338279453865870524169399040384838846603581305639720106239571986016836101040729201497217783336647743973006232983921832097620292293597419153547379661110844682402773585416515815099483303426895703784582007997027674179145159933904036952202074950420078863035823578942932903390985243908764795527013548364781455144631317761459461427712948637418699057060462456533590417785584750828703407043408204522717627520152830465824261182502024503408192515878537141562704589975903405716966229411446879919072963089680525488253613345589357876342050501605122177808612841994664754485073784874372037477059373569116447734504148076397744321636821823211058619897815226220368706851043923196613681056947228913162086338713040729349839236366863255006009314489627712178538672743958392480659327312955059267743526714932260673383577244856789107181579796816463964379436597813341328116092988582360392633486575513162784247224582974998676799466630912607720566062637110516477875384192873806298448147472642729012747559493461624429836773027808387332493903791585308891997169047181129189351304996918394902108003013352516136456897275404816100747433666154457670931820967113505323643138560384579795343808710676249155011617135515792176444745842858772264971223526042652837883269641168783067772747729339842760794307696289499036765892948585341865475002617923062997537222312190187835544275810529083041844532374105515731490748168548205401828193386926322673869379864518431715470490716277102299229998964256551211966709599818818485673535316375544210101395935357393589662203153267650512592012979250610242090107820514982108960798988581002199191442456565957869136304872132805179313990917769889509487710504715253084237463973248046370433409633480643620810914388691813952599587021973011441361753443667755357580186641229898108873992851160893875284342280374435734318437259132799220840474835499547434789513574102526789218619586125340647803303223523228597544009193179772266263620010962786330374441752250097652855394421269357447466329213536989573703668498487888059617094742754350862337824190720142719639209814745493564937266130465922601581923753219093562773983601399675438661899267850786835850019391361799905859098852322834161280957957464815649258464407595375508313585671524711593612369663759638742215866155300101730747576135140820330162236819072837009225763698173204184362940969316280652355145926077593364011591446546114637125384632254316087719889012746004454932991302587344655326004466017553394439924842903983043238744977004743861466251143302654930984942560440504440961452304275153141659837186984064910361535760663640956895349637436850475929500765643370833349561815759723866457037046822216578662924057535012313076991693007809187955442128609947137385117566654656563267685014252163714899745871040138087007543291082617977416219691261640501984554036126719687253115256133431554206426681473859143948630629382769446159650150573617527947044044952394882037052549025361422015998662214710095935440298737828192156465522655828533632138785282651917755769971064538941530235391061856738107303209815378646113861637653972001532666280613767850046888200309611493183002711342885666731921632307756561909002576819836304611228206979470929212403048928678083628656756119766270514028114886623874239633961781838722678848270031423650202290945052370623382846037280826789319006313658461090544868598515984640227500111962901534272585330128482384735700041501566487293823759820889445576003004369980810935407915159414186989165589112971596309238010730546980206181353775460636350312078878631355366526680302116225093059372468754287142040414399170190669577978630847562915303220142018971191705863492387032518301177886345406697183789241264824584213066209115900510459111011855119256397551955852804678473785025024932583099338515132448055637490513233348779778775876750988281349406595312900909090165640330905013789947722510427519065231561269175312584049817545559799435318605379554030022767579764575590230561706905283874102727746785727445443133503925456745306437594950349910640048225080301728473718862293928505679442552334259306748791370287961843769097284999983069268048479802579639095336999750018389019207527883321041488796779092916380152993167792589689048621352081040753063263966920355171988722165792171453340594110778315926277702616893176720060011265033896640091516658612626882570020750528322952685526580621088471557203310626740938127645293421133755593301260363285744277207830452464807231841192093796016290468665797190541745160581571370113376284692603256093488382253108599235577592319540386481154294499038008165826463224296279450436411771385023891474059981180918836079594396929757497172226363184674566523952913377046439216670843426137648306802535376857299010900312964693033093692799369267629209232869718039061825200009456154387210157093797250938080962648828980007828512538648382209931366616556043083519853453938051294612647357605213691518135487473902664296670483271861006712483796012639105445781561565081784723773500665330093136316647023325845635354818981195347655151700283859998914596133394538877455748828637971989679622787278357236109552369268904330839648125087193244175188954877935473074820037571611494166825740967564652391043836697692456650450028795568490481139140702015955225529390836320166022802825329438033978739951875588057714146397377320749698387764581198179937334184302944932310056903162344501601333775947784429007645135762225488110332210467923886265075875727287320370330221221236549602872882823128049994529310307357222431771543587404731262891592596003361760555031892763336514750141443835030526824103102947969895801390331429915139385596231869017629200614736967414286280610491107114677270778654276034989918193341292729100985766604392110543257966294790423750798789979105125312816502454278413061003820286117740190049794451882219094672101712856999789350894699321595898719508929962679877137433269247178956391070888084997137377369578176684222063794091991197604372905062742897699820566000258606793548206921074196232490016389237245486299422297641507851938221724602395372130779366567124151943871688275031961660716257232824198534260781225370090947858779155007600057672808247261991617993619587964747926906354138178333295467073850077895909669993248688900482944696301007608528333478504564588708702508565996917618708422337839385684311164129818254529017935872076950997663299498505815703655636387936352832853205682662290227708060458005510018497980827291293224630223323488868954667993479316523436656300700637941170013121812522523564398539915685967377856468533712717574340135841647617083234325066328508763225543541757588770710953912752090199194984860701671887769328770640479307732905563640959882094130170494507785553438286861490126311988180452975329209782908625869458988570314916915235316465361653877896142336280222801441518598844499513650061344047007718189774415032422138641559024218707930049887642187342831907865342546997447531963627936301167700993103791871832653325101005958325073108292400682297878640288210272423419549778336194408425395355442653480186808517584009388126328151520712103313649153349328224398240110834412807508095967478519654872049022180590976448777755984744335904970546768489624798938909799856497466097738645109070701746549707960680915957561498266661098092889649613949198384640057550867524337044960142915199012885195751152829968351854688236799676614008272512432185702319031205948303560876445960234464350933564026634722847981036509239184742145264531960333653326605374612003932583585934038787640807451987530247371780385622433444177451065673115969420415607280791124155288786280199297623634444018962144144735079926893224863004511629563147913422305337502144553098964472788196347510053347258656547497823894240424139667870110353048815159749368214557050049074268992015063853947226282201086087763292880120911177747659336818248927374316665671613051996026048606570421672540496712494105299351519889080776922183702999361296233563090979570738318201829361170067276739327638986973309435419284349388928006454026474735180147929520993713865250419451351746778302063795425135890865787902020132119131993557053998666411288707418225532409969895236705910091394195760210714924666335416274724350942464331534381953700325202615254788871271751898883454272002456610813307897148052173550629767070223519922665086390781149818766750610131434608405371203867667832745868313855169631058964174832231938996118306812615431473719976381026144184977946769379511361222375250064635761282763059965604881992725440465428190729865014131132792664420538087491989658946291189505010112686468082328337310230533988394650579745675470364676228595751419949579911841349045203183126277932004103854410804553456045943813419487162428582502838747499004849443784900262978997438623317257685893099053291538301127538676790722344082963967502742622656194424043456837691105442985032219108334893379695274063161163590101664765700383920833953834972126491948037036356520888457274354274827902598401445706985671263317234159282521715795308197194649616726902254695396763684694875045043496500394213967830073445355592951695702421751247960548376793606439163838443946055281795677866735654891088072943502659643699158044127620568653289794350390485112409345938201984877366159918717780608643141001728579298598347724312401695545542285514645298154795628883694300764611159799810806020883010538617380045624461989054165686759106900480280857763018480480387106412923455615584784331305705239778788597902329708444630618188581331650811895698055817274715709166612911690515163201984440333109720407021692822671607967762686738785461094521025189234337639540887936223968676515766932869857848982464897878475103332969808456717192945716215693102254967720278276661251345336872018038854878183904108406114875998378839484087892168173877867746026215921595730980760146369916409357617702467881190899240184642854446536262831068921638462607003781383075004491866188918045210035422611306525568104514258066672890200030289539015321775924282018665358034530694920170355098476038513070245780052817585950811708063652508519310697580359159742601020729053839976674446722480589083763344111941419695788510789939727667993743764694380283188472558823982038239155537092415920185222522483475686333681777112438589980652305963585723115226768730857963479623427771649255995867505713327195161161376183512744836413988547346836563710825143950716782702893781678302507598963092554981603546458230971988390264018150170594502381081099523884256930831430136834826603462573735749038788808658241679767591007419087407273189165749218137025218083099772985226987858397064889089163212513049147086439349005886105549319712239242413586463432141344904839774811338623933404427339415927874384368338308444458198155212436795395963735535985052953916062754685604091831934385694002622044871063300546728359882181899712460187513960383619203098969251451476162210079850988540309343511567662675800899265996200705866566646389542722551451483978227625259393857592940771184503599111049086992784142714914634168994188446945248073660827630740289493539018921212971657189347675087323564056570681607129643811088103529129881094003567784123844592009494621169257385145089955016745824776956509357611414529176096810080545214018025321337203910370194060028729465355116915521143883007435573925820984306538670991843770248358747409811654015101040989141903937448163190836447645554741308149795703683355457322696848688991961601502140930073557248059229778115211531236959562989653063941173748804231254865678353828900485327774767652500628218381354069955242659925223586593839920499198761653994738018371770608880404675341776411251817928720546095474139542373647862231467656657729854020383420646631230796836930757757776672627571419198936849841341708184702212220368711696901314818161427182158092713727666673629603933298053771961298227179878208558588073474896857240637690469818391512473805482763206253941305890245827309861589103537520590984087223826527499974332493058094182518638047720548625756012249395127817453062750083152046311803267841446761376439967859882290065732874262277583337043691429391822260527324405278966147168097485383955275690060794275623180567852085473006721587823952180254837643662759192495379877352499123280778355867978174095296984629376907710285472681745248790405651775210949909547459905532095243965027755489996423354617220906741933862757453191977483415151266201681827315343091773223218118663566342045214011438460590263352600956011209529242138836621824636451190777988446946360503709575825789603800001567387401064261447929909936137231581831146992766427412819753952767992522153468806288955145672112230702048456905547466004523144534207514257247534975246103807461391717889299973197827885550567731268507676035708791885744369338417794238312232484831109772008548373535766371661996815726789240192656265468143978305637901471746671096165153979145279170695132897170426558247836182209184629095507310346328015456831653801275770928578645171298948570758290798158461000302791511274444862024762301377867960816817505469131975278052692411178279712308262388021540268120178519986014903411694381817164231178847429964151982896838022816259335408810711482029496804469502225587844918864648068742108381713536580525741916539309507275326128280912194270780438171883010443257736963166120748722553959377756163850009768805356528252945300435856102322024195044767897887935160139377788993790326150080417467519405733605302683176478928605266090395106401310468349049849948043246034245410401904687510600029946211279593222035571185260802098531609990651800317502108123329514835796153781859324404593568514505752078136656215127370900921857401255720949021924164831806758162977269889912096041459484322038743581710241165419966988038092831764843231952935322174599219528181489239047948577526202215196807627940064308869079810553353301006641858910193199002145744973595088820868860029270138265926077707901021530106423542225133601764746119810937381320687033533107469866327728128606401342700078163993166478541060519377588798148130884447352105239892353110019536473170921445068094039726291474511402012862675752318692128585546995107788168704540938168763276372884458761002652558860155810154584989944187154736958040291096268115972204457423468722477573757852259970616426544459489934176425521061028890297246504895898848631034325618954803049731717043409723188480931958899590989282973602111687155815340057572205153350072541790332894961418401407131776684024137431267858443939831250737940734350028482976487720473820016206779201731615507850624194501663471301824802205632863639544062593016078740331252733840676207346158403014986265900079948729021074793537926595481717814539851539012804464820721155280375339634257683391210909966419017442240753796513891134032153735201394601123536412208689675537454766975330008542055003541205486913353796085267549095566451704523959073861695124061220882039206813383352871510873383793751440576441352219227546534984183564530360484046594567790414948391142850682260854425568055165359990263068170964780411510433987271122995259315932595148714550749015622430906382592274268376610880452107929747644002767495007553347889956154382590173900176357536099107653195485609125617053250464610048122339313288382919857532390594387496374744434289588419384227675533633320964214379280566778883259361352061762545178893079300896111187882445640719132493114433433340521862110223857782303896513514900434518151202742152032707719252056603052438130645010800978637179075269851027934039513629882776737338755094789606778465009149117916428729265599989300553502366954518534514157948872009733797672875068275774686764505920804466644030993684131851011612294698563134047262479850864340986693224047642728009687307666594317864616196832895260683988127956155522830979609611437534629356347461759964414482969664593989777750126352264425018881849260996644826195161546561802540097631931208258274808639822247122896366652898516690130614434756693218891843075240491473438840241125925747894933248789637660931428662438024625772742764571880120502620123446248887836944080264796271527158780476112462941792214635041348911998254206479295213922233665760204549760081617149913224291867239006649329697980354588660959699006429858982607825307311143541060042501135415933828717739362561985970363379237260881412746847846109195927441112339996311459504001986844014825975118899233949157935173125816624665112450172669241068609223771145361543324009741463695072611159293849289914690561186095397295445187940210987997241439127070178755298207576238337286904200112849459961584998828692185846674003030726699327020791466109524623597220085206807878231199319775112994480284650558591727405858733802531322048821562458014782708769819585061130682075563495682913617837003371896987109744865727478066549855957549012543539838383917465105970312930983158631620712072345979358930180181940352962810372229267954969209612216253292630252110704747762764252783839923348424244401370489469624294373152680515812147698151792365217842302719705668525085766804430646555561340948545895781316203044780511057564706588727115600244867014922667239633452754969919261535790463397217359966084607630327136633516494472354361556635218752022435377565874721095349283941981288773027102537299897299561279575397991399844584473064482643632027822909884865656797460401892229735998991284748103442653202318937797260003923315367818876720890976095065877438379756348128370818239106512115030201589707893464220659828953298671211818350496429648567589768840651603587802208222404563821870422571200156161635833596872852848630612925880377997443509004379485913825977252704160910642036704057363038010016299396620259307153598516992472421139011348176802261301997232120380379841633036232131966524748302956845150110294135271131902337859036938368086860306544354862835546613833676842567960000806098468541979354462722818449672565079277537586319666057083316814831678002006479322215099922244939349498387059245452252684924342773990132458393794112068386422160259514127890141299750158997485173861195489261036901533846160053686290614228841860756351098598224603233881903579981514737210747543038338561635208860040077067808847073737481650939849485883157433146695991396958895131393196791418158262712273485858861133200844012447926043161003207414831706386883671028389584299485434314566246267799653215334588141116107952469120443608330766416124751300510384609160295150772998761497179007031969360241473698987113779137280365060337249929103630492146509161424674264427856021035234474914145865200043261300177631274843453529146464714108937154012729846129170165666766360972649078407861533120482682928348537884422881314472702083589930500948052400078440208321633917751949086982676804742378338214952893354215542929927482922901795899261126769566347606890434351373810564091731179303681611790060435758950211913204802290319785968151166125919070063187736720887737114101175350637421030296525595403224531932646140939293895836987985441637727459639948090346419817434421175760719783593328652213430703538050863792272854356844325559977390221753159145831129854452702869185129152329734745534351896854291229610125009311941795955951911783820534354874697913418539014075394565319050029784158217832457570751998016714989081629628979242083184767802069719399002357280965268998834758592454545097942739124387237518382197443560998266385096526694944024000304547691086945880732415159794670184268487871469830884979462935096011617943405794693400199564829214642313716938900952639720235049047251367851608327210731318663771548057440749756182997313952980769082553988531893826944137497374601950569081353249652927632902750607728628315554012995002399316042578386634319087706167050229671155226430573611687338023925712451997000353683567808932254694879614450082071623796314186628898023051337076722631571295124607215806547583216611592121623419046170282556623391958548379042023488435765726411859309995443025094072527086003510704375163760009374988454819939593676230536655276570232900453088507232260887417953795413342714613871874165847320775539858400701504657856387366374579107762655726629638690267923318716516058682979921006778236421502499032671938514457842121040080408702441145163459730293377924157928204939526697873074976386609981682107771754261359710404270851837336296401852598999699452190721145636027571290842297747163247077202535202507346563767799946352186782306440747179468796875556433623446720230211705370045211700585524711288968433105466080612736453233213797067960314209214081642864958881124324237896376547812222546496127154994387359516949378082877652360697735677832990910400967006514780257609046657263207110261687763845460945277578725872559510951247768966893606024480331787116722923731050063458770533025196042214680525112115427332211101293850615007604539309312829040162441881266129191409114665669088311772630480532931618020622461799915679358318126039274977513085821607141902014846151224683383807566509789110081282806400554689758927682085258529733118747674814739305932576052287136338744760048865391001292215464726072588219885652517746470701833829318847565401029784686085416194677421423497368552502108271076954563615319023669289575116405447039717643076750044931611684024777323370482816461516932219693782412580737098690090310052682999479937408260409744753326272234624851437519304179205085898010736887722789889761607488260213630221769948744855126007183922671777286847963069754643189782226923940323308821326626338553475863917451398109025193131566934191129848177914256238341979131612693196658392846234624471176580321649607434638813787780262722356483412915222138834056347037977072125266875621279880490787986798951885135014376867360065517239554910442159817275406072524198762299202807944955294045945217201825631260782483582196675109317297720048561109642606807344161328324477104629056737443266150544901222039348710284774794458596493752448653554239705268865527377239640667267681088333021540088067305047973716006346959930949352261426775911612090214567938917143709675585434388627106821395329574190171295097648506658003465932883547916757458312589089638966195924366233434108672857045856638036635327692194045706642435688690265110595585912265246942444977337208050346118918815863030490376813007389366194864228422401638495244132043450901865988758711177081239440166503411073730045151712817247450959620913656996966268072558821959497611202403938693468631486625515406941615987361147877311867844206083614964170669035594888384665365943359392561283180351492420419855418683498390936528227969164688050200154868533683553785511463796583084028820660791838825811101645283319590509009746003869660565168559706884583145397714940420683078490110693988823441573497813726881920335193425107522331369820643427302993168989902909406930961308239293965785800894237275435836639287403639740069387121028988449528851384700978848162943532922117456861165489033234700789579419312977719387071714181246226615091171393933660997000874985594909424939765901981687135295111932056384360544068432700972506640657461265702978549695860804339018683594343444055746173234466867015921018383508561182034136172014127735800361978338527107487199194362829835570545841462130419537573366228185997838892476740051820986667948462237996375281521919996436344259098597310359378579912421644514755822859997744276771003370354561926219593904936917907151876973598865404102440258875847642478473215968151888434722348428134836061249408342657091418395938907583877683985650884748467235588466875958878687132810177626271461159925409667927639086899608182880946769777903049142962916593386550221279126985591360470116479444888575977455160245703580425637065623706696763126744175929400578252210748342614282694518053485272572614656941567658587228582832493704793935849587818506440504350096781442822836182703578964816936943553738571074460674279804061815089564120677154796446478601987340307007188222495805242405373065206002457870709294689205778870294800219304796433480161280719839841091699146011624279425314527785482918681667507219023063469956226345159559801962836478593268860418616145144922218843812824298180398726459585452286991712293576840985873458548716656550027666589042950528799370676864752635259944009204886269494945200871163384853570336277174929061194197068975887892786161748509576055024725558543212570883224356603229485459759812769094244747732666719762108864479911564221624210876746002500209849294916355368823804665249444789221246888702936978121030391513290047092069659402806256257052598493136199241255660715526352891846394826820998361510134405443502538418678469722974691232839744509887617269104401730808464353292842187906286365115323874850752859389280274111074790161382229854962294533660386259672212417424659247834542152934024776286304496630675669419461041796701987230821297153495105082980858587706513847731165438514904369294313539723382610272092336335222080171226164528883901677675514884613998240838003107206137319477793411651738531059986876508972474254360349632801464266646615399185791603536764191874151980484779950373260459177959827153688542539803691612760077460075441835975222161022431280256641351669412516983581130464262568215245344981455890839514446170098866440473406260892161878809793960734549563430698345594409437882576549965173426154197690882601057927864807334233017528977570999138942646632983793438510388922064649967190605217329783689826179811609759246132505078878783108891704354615431470799058999472161184005269991677962627551056100773989911109786266099183015590713493672020998497966298340993842052941296464133336659497948704159739132764781043560142971927899174684205698394983525773116895359636067316461703279848461364142460534499714181381548455161127204557779372545844566714687340791437881145327370208712328384294480954115069968518685509110044135887217589942779127014186139809352260193598857392261861966895521845021472227006316306294706138155070783574077362173379428158575561145407008322666135786728381692486874769698474027599519260689843960810830946417737469846319741028151143461070659113203181726021825604221289971519639288631475518688071145722328636233636505866767953872763297488743195674222280070388566074636391853925681662488409785727725144464552064081617760866612167823758783755305776786179000396180990916922539569870329418564014135166554045960930004793993845629552349847867659317616399773387938877398828335554121912973955449077660949768436859188427721339804802616366801159363200841673342364575928167570577824822615837448418121705539042717014329646334842421330255889331386350861415752691338311625046811794057117296832597702829154219206378843440987385709989362890883147908791486373172077366001316335690627349494983842750241292788444973723727915568044083479138209199760422294555047626349164277414229948860816246149553902808993630187122719652721810532661938944177304990890061390553466743132476502756020684915707076263820014427352181047199551315635068252169032803948659209126598572009183531842023603055222083357658062388170996306594125059663731488963306060926057315558335206712988763310975444561452466273496197981459990072029359621505816797601176098062870323706679721032837501048149928312632614926603395550886822344115266577664289822376238869432832876851373160390730059798868260234290937840119124776905991522400385109607854096642126079360637007020347640706670759374263222874655677802730331813802000948683084555050793047931747258648075699340607028000940485285718224383654160779668300537895028775618927219009059242076420437038539495563807047703743202125915712415080046797323759624389801859722608542492496654549259476050654790784234241558116721650043087914569525225105170184273934382398250970242190453366814015032187650580594316553403438189886458419245153189991526446054760142369261257283762041461243081668135221879578419122202682383883048397655211985849328087759827243540321706811061097570699497379833677684649201122453549497057476163526739354800423756904031938520452798781740237858709844499153005953048228398704473715446176111583410536686727796539257268781358015912528135847496634242357283374975303936186059657294077235562573374148576605395892715835050494781351579933503269104872692910321069980076705634353760899448502695345574872650575520344780314125839244011372210715303881561013685571647664917136655030135740481382486548194518858495037532103741702872151414472227950913106551891497580474164986962759563338968332151369423873802800765689235973950778706091691916417604045768966793924549802070674821013202733225587237512792846897196298176653381078572315003121464131089033710603527936705295711098611039331818197695952689161659891636788271191369782769597286197625225010191204733653058360480583076103086262254763935246849919734905750616882507850750987442577562407777641331099735538083223961762194686010922082246276049957054489309233383890330574786455462759373056748914035156492278165910796965600645770234824440831048091265818290712448196609988015926566885219914580147953958844306195117593150572628595219136554251402566461665409100903845571573853626894453931952436651508627129689060468901763155622142236070700693160282952706992434708354330584538081746362724894891833414041486477060743983000059426737267598186149937613010660237732770908118462366088243639683608434738564456172189255606865991177987224445671889566944494815841635491371095962930373437530645058503890729030705816927101394219205987487449377703547823302150804420750836081447274647029640222668802876889186469067786276024749214477531979917410919197467978174237216325857586150279131605632032454696683418179638637928443091043096217629554692235849535754096969401765046179494715496930457633872178470773895441856280351654464970949235269959933554570126710548389550604368216418606665571169886297503343163264355402675746989728841899242604620626708912017010875696705566924735027796394256864122969934556393271567994151220226810035679050834800111129563759921383903595677400371513123869279836948933195456036909391582838582335712309983631684057053016040456862059146772839485337700523343313799311976877241893434181580503381825205945468294268172167369717980236567854274658919101171332196899677179930017883818553310155040648247118292612925151095512380563616129114089604358287395230996797359678663083726793566669446482518040993143006052335532084703320914396044791030325484991141381164441132299447469490778288069829874710970732629242029798395211316414879995453842887867220264031553261259746583457102897847498452169403589065796998732482651492501195978372273639290925576855037391099333163815794580200849041728474615971976167703558088267502893783654822052287836479407104199687457003184178078271689967828583151631191196815313221803722350167625729021834669519468515273474358854661051327230378744498094555143714280605851226173175073314932487229949920706624821038969017029134904851015980071433825085793930521152619458751228200714617109088790430757880117696964386466331120484338707040105102749756469090454868218496830270065535086050514826158302319735527830127556168738125734723549396958599707771388394817077560828871684534843533970288848312327517419719510126599066890960575637227009889973610215479616891240167404941604457963733502035718174265071721319737457734316188031009263265784443884887169827109646810557850522258983466437260317080414292014276108096285752216047514541369610941086970871905250953944808284006800713007731894200622487419056249100422328031409698365228780179990230693118643100319933291186275906081686595374037000397969803123762577009179125923281388828545165029655964393883233095057079444559482734759792149140295379827741309465255538259585900541408549019142951075783614531129054573005609766646921381299477767088800250394649297817468833602408892867877943192347324353462810454319599761788445154445137697063439386266267490719438354830791191353984299035111371299430986519058450069919740198096078791469572113844791963186473372574912290219934479784200856537447169991863174441593557577007050185551036875241873400253411961323393401380729282066091690747358344255028424417079734316108050977718008292878833649000814483132311021030161738729073278014936698189982133215493830496145015266858474967295346664410825425518108627789544935828654484724396166148278080810946512562963115918667989049730686431777815410108627022700808561095184897993671254785974073826861920054788302303713205027930255799299291286944396717338647276653478825020826688465847764494164550877925267622665964039989727117755254085489394809572914246862739237300133919651084012772112899208214373117706066469827678924070698596738977708740712244972332469090034588038107722896404460723749569921505203676592329690474574336016609310783629042418274017106335581260878855777671569588779212927270114817764888726984904162137829121853179781831813732393551668741759084929146135272880396880796735894232264312627041832868236708920335638069984256463916374672394383520150969069583570288832459247698536419901926590961806068070411110576277635529264371471078656930454249054376808584369318725856650053978675445244821664661376771827095030059474714055214464836690454033196282978493069938831474017302643415981033794360452923385588655732606835119333610942779482893823542447361833681397643949156318142787367751293025466856761877853619490854213901888049490289359551039262428600936540564494112648131994182359064286242784869882791984681329983473339369474456532111606481447468308741211867416587216172018347447975022627156396859714243060232487271716024788562881484678236402316636561256360695619514829227652069555213135651462076586233597987052560483582297572963744094384120460454080811662742839954808295749546249742125814171833568936533366098825819640051041264979632211537739052914508619259461530821760791069882420244159378667847972533131442638797228773252685999044802799185288054513760577428313922639827186668746156631347858796905793259976014077887138917879420628872884305823350270043239443793878290097735489478106843528769275449156972151746056788337991699826648984909293516929681044717901757578524858636643591556159875793304082987400707022605637806263907512531172164450755121168146683805337235675643909167445364876076343519521968776762037060414249352952684020863512537709373854765510197142261678043572570133360405594532778310548542435429179665348983097145921558811961634814584278935597446628699172035174709140692677697511321643495195253728034176707856191464352966148025475090587345322557161893480169914691415850354440303873941358589972629822051986870145243001620528929006216606675435314254900418744438137598462074785257005429300081685381203523658645244519563458082764720456928753878018565012915164123030246459314915773249501441611732352839602176570153917534196830379277991790389699547229234171619381248370848851916829456184372791507811620545701137316764483656903512214186980195431572139550613027615225313089494818877059694859886136800578326733089119231564757194410855629436618945223095967578953985324601090409486540933044990787111342085468164498175756425911486129683741524546494934378156241664859145726038081384679647664591875968103247334600558122373913874078242476623291280190180878462060246004140353127828159708417768616158054489066821454786250601365063726771550175752764324821575623984995283123768628314583776655988246924419132568024834891608261727721452011460050877953097106968119569985983754925077182723358651097786741004216651618464409977198919791498351319114403692629902934714111110953339007622621755601799006505389677123069979074651423478500014362148272281280200109807384424166103340637831904453668215875772002439463235188499662651830185606791926522301785197010894981912666530653365919468367964529564130023411502211054835005539423224068614475100431626269563987746898635925978673814871362604011772938216950655038586372934341614022639286975421342353303271697079989339608958235488430036680276520645201660110707495797145853045952484722526884733807123301776722646552706818372555988064666268710815684948129358933305379230873888084889807371666434494115252087460648563610076797659082102031252500790522284141660986582334152463154058227267323155770416247675555580135197358137570602560502552824627358092229946360027733710318359590092498537883164863248483285394065816609102426537400557703440929935152350614654539232738451963421037486923455810360579817752342686767872202283604712350270968473998052362803915090010087402464073163593791610649125464449515163251044385976173408578832494756124916451540899131572649712555072810040792177763370266021983264349085241040066240323312080691868573258482422318653293050625107652469960411009875712334598204964776421298676349196014618603614520956945818857273254822986075569532835116246243812284000117136594595727210701030299186037708280461927472445457033070306494026159734312450534146050990164939740758265817424972923406734060024832532958287752984125163731253312294202012401098682480124286526313383759668438001387192405106348223424552971021935483674305383052273747439019828574120206489982652820721916318382784826767176560927834246752596115459264999868102204197033754027160998922917436153148753767127650338052660508217299019910673001553499355233709380869944360283188259279643347224925254777182719847549408971213889815703862506075035690935269854199717978531882725784822309481772195255276493353114070079530043141904376266286750099632313980059223483569643186522998622209441999428418088340313429442661725174501173862719182827383993296020029877632654983503890562563726050272518600259744150567757255399618894855723641026699214530327317760688192069866183471638298948532707153444508179286245114401290634070475986497332115950253537921173733269298166452750364366943784350871442821568303009409440518800699360634402913197365393606158151360287862903540460463510586091375356199368948114123290634614937789537296345753998881197568653333784967663212699747063018287967302005791563068435202882964268652123344249783612513373792970252480608877795643058617044374683171670168081675905049347413187166607621111582153916481386969739217646883769141246558035502954435306562810340477743159446477500912003241108576130832174968065304938326494978535027109741623831121893086070457547072896119798953540908457489000668272657627709124664902498925165447673776950708871558653165623788935864249298790118491655526672104180345271789443885958990165077592755652781389283824171712547615793475096349239117649873212234996845536232135600105054824204164110713157215905272090746952641220243112380829547839847191051841630442772082468292632031984059149380640305840087230346381868116619168791011996347616135120922062139721242534734782982020847665434409282946010611591502519021459406165320193495417548932552191750540617165342792644453066448418240272775166860289329304201781718044128619821812052094365691521937170150823242813400671500596299617327249382779244654165892851341405434296198097016938814949237125236832216265137622126235336296329345301030523279734499818612285029843764499795926305890501869268463268099080197919439836349631649874717742703304531128603062051207565621782916187969883857615410304024981516163351526650089824905679220010155707771355999983677335181694356811942801254932138358850192491636489131960354925915885063142936862358095920645109007838807067908783941187119990731087720073129777866290385210562097062121346864494136767653090936745627378865007825788489291888353446341618372734002063624062616570459758703903356227219929006974451315508288720065625936438240805786249392709045856716244283100670687197762364870973887388782742978652886421166636728163327883952274954449694140633424576106266884443220035202727492224948014968318103595793612483201690675249732586959141824704959870718506912352381127898624103315644868848589041272007372759615462019821665865472453676177365670773754435217569208468707523948783553472195354313361495559671120537339153553623555199940149584435198171380629354970193582116123846992736496306454569624062251644381164474858582552602975801502805141561124601573181147631837829994308773697523081489558450347645782129437707012658398948792147935812018620544353746304765399873067052635305920224101461287949257352471420037558563287075083394575492697030021238351602390148809157177175113268195643666832433351839769299830112369504266961442858397673550129993201901951668398816391961148843126936411754416252504292742668658063256551134688224761930482313836100067865653708502065604258413453214386900637798388289997340242172853468214892218710706649260690015483988732412675912969238552071804332488219164396532482109840646175027433318768022048641610575463689544298789703304871409756577483305795613809193428361645815247089303427783022054898088735275525740602274563302335863857831756538503978698552499807442223628482881783710527656505790250933858596191663547792721283978042977984819038638617124882795342356888931765290457380041289454637048028666052584925044015557539828402131640070249307060142877680043819349593020538160295847002921491020668792041758603906529741453190538014809385800088563200394724075228261325713043322325384791175062799290080529439546009812000145420409363451249699839288088392161632562531683894660010943112740711713344931152444818943087896342732388469163797020513783184220666675030084734781230037710097705106232659478024279023572931129915995470681887037508440058699802346131467795770963543405477488840436014006164400007386533301057887686440099411150923342533453477779233646373278567483914140882577103758576906551558805408201581589833117089551787647224965774467942340799816460439505090135098407152808366307244728785924670172965472850004025661068156150681352333470979908534460212614301822193962321290680445089300744500377159167077667152465750437457148518271692980471900857217108472686992896509421174212024819785720579585243580629946257820856381675566400018139552243826281394744919523963359971377426875101862633001339468982840125048246378413765899414176407116075499018197357601002082144053136162575612449312602097588079926626538452966816790360572237976455684642547003544015456556695559934370560448730722799385257452541271351121448792561552893628649810808421379754860888892453816750088655572282179546871553261343053904628175150811492162264546821863615586715695901773109867481111280552047974575922299862760562690241351157549355843991685501042111106973625031927480152105565574286912553576766864361345285745174383048365708944963800363889158196676136167461208181280169694583117846025479308892699343930647584292839125467393903794551685791193445927987618437598220656950320418896629699577945576082639134795884937971788550242330734637604575237203305653626493401627665804564861940543500137788412487222173827329652693249305621985648893660472704014894275291008917858315709292488076914508385900277335525060615479150017028981148047634778265310897325617112781001109402978618819026530070940727214676616538190214561540415846134978756154622389746234137286554014962501559888266346524101305712268031664656677285692510389548425701146153923355611343092708359035951858751946568705111753364893110942944184057691310066361265819703196259835819289138507328192922367992814491691235535748165791429158374722327422883998913593173074661094439826390521955908004038237797209146076747959899074866409277047964149349043756263008699422316114295791305049755790241956697045090105337871300509590669422393620177203365461140083113683040933723506392739926454533225287393991308957130368445099023260947190224685008494001357706866073751704542313591913755093922496697731123963926115748763957935360552725073143819033506619814588174791322950656016906484419089537387827436860578132095543519664912082499752575076069052324120804064981324341036712139947849605764050585627841957256414781209974993686730533822750293113490826899490257150939021801832005219622438882512809101231613818933332243132379239443506604060816533401856699479760198671524094966571507436950468380358920213870121235218337570844226826830567141499765313844080689912170405415941465681980549580035907765565963569346802573966960686597925885927726227091123269195148277521952889380919278267061153378085630956069289836740860487474354857252849396256122394324987974689103843557617803536103199033032243556491860600488852158255054314697844741669424580030608577392575337338247616343456718302965856135105150394186983325569717503625105097481259707180310022681650295021074021598460792306707164989621059010251054514771840575937421771847103232972703961865103159706670180449479047931383736131097182515444095581556575987176423361612148369188838469588535278623746783154832270348213846845767285365409990308502064217786633766259905157499426586387438031736255957236292474591050917780755623391236326555929831746522728218993789199611319602481474303469520883645550377676945269193393526393875520320796656641689990547492140878880838821901675497627538498246164315274288020385802125346683222141854119530484849412496568376571895386513239724856180821174885104579799594380094411939535176182167316336483318040920686216561095839503082941214324627168718982341426064054901156074168609395631706213060637735359782079900612186532381241306930199591035243461000246129198188919026369174770448897009290455756974276290592496395060323818973197296358757916145406918056325991728633387202146197965545481913909861264023998512878716830693722082069395999663811952098755764208944614846768902810151827602688231007096970932406239120094507531033193363396236368747548990029597268517068840459484701444835588947384887545651296920986561086560247959697742156130427730832669772645566426691625427363162792036179836061572878593715461149712698666268105033884900783781629382720878473654813051761998928889189817690326076824360031131681269703370752869097588102002538678230594178455220863950862056040827881966253705626334731469588550145351929774620237152336933344509845366895264423782757325220793666176462630586020667314068042759418900239749886250720958648869059871663346054205311910313117650612029309989662135660576963455714565075627182926394759264048754291380517186797495477991021585791382495678878022233420792405360524606425997281548273190587564479513976124724965253936490912902672344618872662654042626902603190317397163747494495131078439545585388095032131782702562997890563914225457146622488075356353656102686304370386318871221066896209064791357409191224928422330741632831292381963340185662580270195568717922057671711730360088275922666049785317196183392279078831077627960446127897731365436706861898084583384048710052658678536548564276607446539814642140009528263717584807449820791413600800358459982414647798467747744913841808211761570578570905455180916270939518429391834445965039787209275589506494000200364501973259598349685562786062069750942810321609551447562074503161223467868838685851134356557885153688308033845024812246751956651677430670755100836557674695579070943117707744901446843876364910372730522948178711028397088435172374278366619555627295464625734523188571293252236556245106508456275038545766232007851315946599725496324591628815310946022569584778349903530980225222168685213768322307235473778605551112537053077403938619344428010398200942865298195016716185164180842156301142776044556388576798988568296561406496334940489114179556940000948032617477924793436129121349261503813452130294948773757569437771313158295814227398257900216517426988522540417826973493161764338894409369354604615108028767465740247394528424033562190566471572556065464437048783671297900922418565053769889008066275972951766852040106012035329417407685304421639021041375994604368820679196019524125510043389464452833322648721109082452941411810697550097419258367584732903506916548861990231146719401899443101774224956755356248992554286631471651810856717041766483085500577180134369687590176656783513081743612334143335027464224558602516658225632043589971123656800998909214663835158575147617489206454813318794079988040251219042207645812234731392601196139414771867648046803275871639336322288814654116457247017905076209744511265998727715613012829466014615012969039120815854401790048042752744821250126685251566568031874279838864611468943575008303097893206774509705229266526818328254246495080806325230817724549551850918537634678747925390715311518687811637929719118405422931591425566134202361702363395601255015014864932977741150272956552600562840498283476026257184788983950437151893974060051877230807397768549533238904010307142959114243757161912686909402189620246776318076271339923350958429009979590625938432485997306880925436743256619188421261486748373069926375107753223654612848302662142085432953024734148275999661394799750646653333739769741582833311021722181856190086635509444516336946295285801188468403742273599767047544714846158683731417974081726302519273473809107685519718230013017135613871727908004233301856067817239270598121128605657984670778440317657859539334282349194951720031895553247899700286176830166830645151863840244938364851764125287191196309687758794755144491447623034962370328277732396158937644216137555735966608866105838536221372609713510474899817086778683549917474091586076063844894055939698644081271633863767757827416808514628121676127921433502606734195308745325215605425772648094831081106728306116742945831691142825933029973687511172778094504725410240328147784451929433621226459669971965612056636441120312435271294910892898256869752097641554196418396029292589942041741554209345911692762124582518889545640236116643850163374409452641960303638479126970715761011505901560188122636503754978023008320301219432708508356993534984289318388942104757899087027038935125245308854956276738529179843246477207346118714085526121623411897725583025314106962847772853485364884712712645462152456983893670649970218396765139691671466455985715540191664748532560791136866324741588612193860340261662668686940979370134016817329101161073754387534951235591025803682830708728263745318440169530871451766195795800552887311372481981698319827541339508920782520473065386571938948147387622309381392733557278503726597343845333055895810853877936021746742828860975156244522623833173453808402498873614278825577456812880517441395409933062116524202326532677055367260303541935625223271827112259660990555234226595063175016858701705104401326372527892747941349568476133153044137038695012034923334158779033717762051404401444508108586535046689861994496279467315142594473960834268583311390376468320161489522782454484897739968069476893950221465057484241072604770801623252523868399148518717554649337310133563128107251486540135780077215374765381900821627785605145501734652461918418975956076368147784431869948177543343923070265239461010007923984023135466709490663362437462059173493705407288606450498047771730269341551626735874384461405138418944072337066570360189688231678916239311006118704383657857672835689938009991448178467713060258931256738531311514121466717180350580155802493907341511209235718221881247612312898841517807720719697979760711822719813160303446826380363009936108672668893719945701044063464260008612899049400912113139816814333478078418247257421835571787777358496886670102578715899919267766738644774795186419893494674618242520825062041987293229172905333578738432390518281356959132211853571798450846163081291732126516285313666140144406004818379743330834817668120171861143653887328777864548823072372051289054371941949968756093057118183943611263810905815593963100302024678337554522841899012180797524773173271159413390628739448396818606837721089863617279948618310547718029990277052209646043400888706291216472161279397112287308964941189100068214888031895373075223830835511092257332817491099022803149823448276990433678363274519155368184403720563646560422548496954840486104213619844904521786774908790110338191062784373779790379283753487068832569476253589529946442255900122520669601118839176827913993297435881006187114564229164367318286638059108460185956347910666702044011577644041819426394181365162888163054171502662517257235713837637735157423200134081447665858309370796887654517625435331954953650241902590067635375172842432611411119475447792858534147492529896214751639242278909544216915987553980909255750928270505675668061980227890955419398610034431128729838835359317196897297930859814101138898274651636061179721736919350756468602684321421997518768534245079100380265296136727193984684856599037015921976387587617386305707542149093413369905187856414252147583348749259787877098099868881980696437060280407918511605252003052283711281972806671074670451889851256610164061593118113349173182357726040627169472874251099190299523168651770189821397002389410418930154827285574802578072298449020098265109070307743348086601949804509573713738178183163657500980019921607572860329329438269180371831249082811841118820592485859455848324232191030602254760429286998758613339229551928907333133386871468734061388651411399977006225351382066520905093104755287120982819043194803755690873032885654884815170414778062260636920716757053933213797201950317144158535050916996162347104820726183995006446894365150140007522172587187760137148438030667968051004972905200877051825829736985887495038111846264723282418783578437614537594115950007868256087270056594249823693079490408505228019950553736666794704505085902427835188794145074690552185691300257838014139183777586650039498920755991959413476446730226743130134541163369188481847806528984285361939157186896630867972356381086452023764323202463036696287612850385078549290277004894386596749407023255081219134532139414739519298590975371875915961937957010966484829706819278589240587433646089639903623583667725685723608508092488346069670417370665789491416846363046522815054935066776056557973793363743160701984776638785833538736334363960099134976954950053607713409406727567463709726671071803651544927930479351353722281239623589010917379619248592059946195864851040674285808005013779775818823893734038319239775581709025989088681319061429191047630301107772408239455859913083040199439829521711782452122030882777440969583826255054203350863722326241350048744365455473409660332029584968201033124870352108910079861169210088933473883748751647720564301118982187153918224870556110284951426264740507195696830898719123053451998787212189168538488741654129791486954752483644111876129474971296105969541028740051363202439402206566006425635881353805687302139452143585638648600379139332237786027845954641439238593025501599267058205659312207071277026830892751144387081933222117529784455002883151203097659448295469387277670717886160634972402307913673909631638099011038404110662024956771766725518353190300899226258023650509529315768020441990410148068783606928219546516156538568112385678425763912214768734223999071211928830167321423826351865734020642783420503432560133184414769477195721657666239084918229641891220987093132579241838648918765410033488761733529124871384462126411781110365329725787844472016330774781653269146428197215779737126696707936094350257904688835595350376115423113702054965492422100787267728158052053932008290716252367806070888909191721753493050171937782966149191285849953705264149568757494910142330526719869915206341932327099363453886154287196721659127656960915869182276664916720117031846139339634485457955103257389241739818628610397257888264058013647951161967960468782359240600189097455906947644103030118427535561340468474318105484052953654617008376092212530601033687713733131245400273696863661690322047141310652027098950454982716676419584759320382615937332317056054775680909399074361868163982721395503093932545839045229086331701376397598117995608894008677984108090228888948510796762116801673296583604752482785035237156332386452901476501545696066793338717180411724759305429478780671265149770463396256970286317998418843473072576530675406027956031351723581174376471440345413212530557356198190412600575492746045178372842884103798865723912599580872908359716789165673273272524894294771243074124951211622546091437073124104051873105377174042898335080071096584985520144067064999181065632488146822117270398822490700595892623432758905211066840842082481916165890757885756060802976656920950266099005018786055700415019781203057045070179993034299695078124173589203897523147986856912758440426372746675276599271719643997220082557551119036012421261985152174085186179895815460288006777792850944729041212599181356726385305679546748258544580790734911461692076135684231473101781906347086161435625821228220572203284056161369778327829382553572739462672223968244657359038896325126392792308923846462065439122851124194769873689294879976930773702906732264207540919805258711751212498496080794510544831465801750898981021210777065963334335273872244501817114357491330638641631054946893381139391178651091690553534554557784920183096311407704058759754405908480299248205178242356748871472902942160121947179637481382652276436698087292430692603010066408218547244095931990164897824043205471764697549419283940736743796853141620941317427253685579409574625140589652419721579429451984184965819051299602734303738024375177619545349683001209991192440945141210854308221824102499721634727893230639319668160241321117057427322300285757668801016852452550314422561662823030098531873615054143623284457936972598214779634033903622229749827398926182189614495860926433188305237412669169889577769096012766630882805284068826552618651798464544774530080729869632670522253475179183285526656174391308906249298769674881045297483161675415770388843753137852263566300028303669405933802033775506151905299438906870237990487996971182850989160065048892841417159226925486095940440323151337395039290001448961512118562145947783295891742132043555074762946896843064186728643881704950896607265701585594555875936469928244216679616009665292040370179373226004404767986425930758269683249743281582974927456758274051429458298628408393265336564678359520753980678754751409421951147519935426506104444647985836556875004678302968367090831807322128709951020143835262871357126965235130979260241427998166221004259653650491206730151819485302110143994166088316351444172695077943442956608845233075495394812790860858133986221488580591566171175877175677467112390565552694846243267614592893595175940688643051398667302665788272954614801897979090687607290572868956582270631400231798214932728863942886313934920016563287781795797189982957723082926096457227659115023746343133978945021159146295109214045567016240045788381074473372152334594049622915441915520210291804234806481959789499857284310104164773556932233008575490397269251909662429805842319025028315746679042825366326367812311507373441694877639437503633309304632176597738821901017675712625964045867574313034591359835392364657860982588074455333938017916381340241557597357087191507162837785461904713655961980412063816110781192851915052558066516658405669885168342373013163065249320223251466137684865738114404288119327759026058962568041965867806710506296229643803733356720850869718916000330523859525834300773177662770795493012475070539825860723455959236745678852023737454787031462885894792795472393553762600657139706566598190936700825230221544936129759083020566582058715816526250691155669974574644008989349979289520663620447652948119537244921018656068480926200161296995706514479974898963243011598738438675197607350119423311997369425247435026724486664436092709041859458266369431591439007150832383266405494328847553863323811537853148526260586018902192404698225497851225633486039925206721767842305853193454030066135153751359231843123736405460008936080962978211029535530148676040280936400053874001046323699315776775985627080648941825942140159530711142414680684608917217295163255556765715380876900100032846851961768831555603932478729005144981834157293386956237753727017794793832543937582739368546417630238853991152796868612705350281964317991688785325530379414880108426892579082322085723328310410041038960727241058034618699187597979019417536376070866488699726002435759794201391070852806458008132094358206659654809977606945477616630279100756697840249174128379683332144774168222032235228583615457001882526239304191828849256985065897547211297906260471684729589796005305421352667353277208968024910599686493577722422067452749817864833969865541773432331290982506131204034537000432568486678571878587379574165733996282628922028480389190063869854959826070473789192477682214602417359011814081132056931246236771094003851640511871540987149183226482263857267432636954526277917925331842042520556411281387846759219959623665141334168320292254891252786837648822925751230900399317434878751014837754714793825587036003992363257406299346615507561660845385376670506336280611702595329794505196113527284520319308012330961269544826279661064578383780526115938010159766272327737232709130792863861999200952827401353696101615121642208261224099648157404261214631897431713775640161317873731047722657615194495581197190145810726903312185410375316279469286884651171717596047071604044725309856310612878383480191246765220753034634781457645258642669088254400981764158745771214357762446602438784802275247219220312509054521137373788876247832876118320871769663339593367456115721282828084299603787102442861249708970564899374480645164779913571738993421219003062061535636378011685541583223450308195133661996843234357674782461707435839796549878773296090238276718324612768320906820537591614526269941001860310024068871848198542041457916930441073353560702328571436179082558069924976334263264571545922126218135202077845687632005702498799135486093556283996416349700286518927283826098608093378951214974129412887905908530013012529942927172256558926598038199043873588218550863301493423732899501045796795725611247193372076508499702666683567969538635759656161117956469229380622566421338651015574247971279007034072334010947918320454113974841637381397334674968226765520084633677609707466569319129349625234845848815666400064821092118248010258824621915701884642856923080755668665733520029215842298499211103371975636561519025055547211662500721733474261702166283641178001768903767601753448027664910817427544065784932336848956626394004002593764864046356384905332829650550711501233184665851348927833937867719375691135634225061986058631452524335227176029306739644970428228466763571656117778300041977701746039287347077998329251217157397920219336658624759658649403243298165463968441699478016863617953128228594762454573357207104141868157511717316253759163778540657564930885937579065935367323886463950707017587345896649326772306073858609068018240766543983522858345407234217310914584827462615903546682056939669601818244597034941096320639815555714460897846845598108343327558571625403245521310503037994853170238486924768498495257766521405367477052398273804050652156960460748959502072559302546940195696806049945500459583169510322995096103158068371249712246854587878619061625602700322028449172846710337754688106450142369135160986316732394109048977672480130334129885531410415938640813135567541741822298613401585210535268754145826146924925311182519125685943459748008414983689359021000003134294092956997633785442989145144454366584711858112206652080555001687199748894178811987005883427536395472960270012260075100573232757368080929267683351626551371533901211682486096180826212732021896820383107808778445478658065566943006365688859366564055599967472424325056536217576557762296371787716627841016780237385358029852233774283605895093990666614514328106970398633900733275005986374171048497827590256241408461498063900034992271250296688197847506444725016520469379638398399820806478171517852239601886259955927265801899158117655534872993829274930905337103046194397075620423584294356745930149476645898787201719986257460563830475175938751879496121057705117192144288431317366607315317423383446723971568807014387879162550751015398199907102013654127910507173972561045433587775788348144934365583995957555817743902372507035366104492738140260238523501890098015304696149006122410579742779347955836739674305081357808530763118244641122600108555370964929038935664023265238703667354718372888647053596101750693454549828662956249717576948693157923935601810254160063408700085981117186013543374381930075457916788044646003676939389611656552664028478531392748395419990589076006709148198026369834657416224939966662344569751375636928500344680668876937823582217237348614688747141054722990735621916658395192827083791476898950120860309986827084405525108671969765182301433269565345527374813975897436737527108485375583457179419325599473735588490913976701770872308130217625400552864613924067224319658793649830727328273958216958834440662195218235034122718280383969430766396211110146510550624449567068535236885610651162380901632394520265327334122393579840295454156489975494663532086272702234977213717113512228067802607025697083033258032239994062652272836887894816715924010495097822272978933881453527337299336250447397501193018397032257059007772234859893477102773813450210450511374369596201640355221715923881220179234456191618517130218379537183842316081303048584454913908811526341172563698488411184383100009700744258889068180938096447450399533060821795461366033620040261598616232190248100051956276993449529745011857769775788330606516997882330551283185265681464229766926268567064485835106659198605395863437742805475545152737715332366834939155216018339584124780989499010894324693398989526903691652880241665212276752519656573896141303745311854465014902880479401806355926248964588777000830253551661245518579762642778651424959980454882824436841804231618782214852689431438905635970235400644813494233390114828005723827388047616928208429737567723692026792666668994422780331488385990448263564592028475364343944632221492167754896242633009233024699012362422940104422358513316612752294700136873168951687215480411949841371610935597401247045554377350600351442645395908891553651066100523938343810700959359281365491762299434805632627923144094914613887809245000480576796038591973100415449336504597528682045734564665833487884746648116894550870954633883159271252669194301734894426131770718399358787463886644735283658866966896568748749980674220933436100119214278617801674942205672770393461744259843125451948107454410573001030581951023117117196621096258021152570797713415847056139372448889936791354557123799918546754586786951450870024552076740618450092647089732751589414652290899541340852003026889026981886251271714824409264528502758957578319766030616002547904177779304866429114342431114812592462368794207496450377710744189892994942460296733882756754289024243007216188141876907446351296846332011682877663537472456110279987987217177672400403658267602230918465238529708512390261289713060357814911389215881686170937243497722602470893305951103797752489054662090748620395208306151930311339698733948189508656096833814356655059223277942667774918155003492424046109689268383174037306922834321477154280186988024749928148495545232501765912987356667143061096309608370967039167442397910129222386194813232996482843802035998060602505160989159695989357246253845322953006911414183362640602666796968051736448106015929626908847006290760247823048996080732043149713752719057117149700134468706571999828909978599002755581547107124769125286274453434524127767853681257392963008779651429721609868294465020307760308306706899582691269717283198577186000578590492432865727492716559195371368593355196478120350182438099966770085142337272598892843473672014302968133438247066977383239363744971440731069027126683664989019532384422492866737997812433158998721284889662305287967148621623345475726098044873500363370838547425991957204691084941194867901058081173201402769091123767393089595827751858448563639019490383723224516410241650104778234866849054958376720944720553062967335858921313992796739880130338002108576125537072725344632832190907444134126434162593494284328404187879129055961187646026911048344025838102175415414920110256035419594236104744108456191829359164725244318558870120883380495493330665827283642794695194244302945864668586969199326505329256354253201505682567721882548656883600456773838845958741074687965742724136307243798915829372566035898994519418541561166459504963008115139619284953312322739464706818807854838415832352535798778358781794949674200697218426511723493491324866724696138884248213412835275053561003874091112071230956665300148372980546605489315664782692940656614584992910998327655462600658751745290162365688709296298275503588216433601273118119980100425652940895438507836036474019019427496363089855823454361101519675361682561809080106536112322377569370800208650692062039559422412264793468567800125931488721281789968383320540270217970756622371980832559320668733553086234686242614547862959826237415617236238599925933804705361729842440669802553738587284700689674269749011497988517808107475013603515566235978172168934725724469749952236408823461096082829044826571187802982547897075986808157024989570302846337653785444859454756186536871254610510580497129402705922596924433276175346461641459167276606811304709532457894311922195829315702625673237555836163061531869730468640603048650673117656625488915105891998390269649807909746061592292419620612252089824188510877472325399733634768989746004034219622434263947400011964238714269329231344315588931206077468535907526481165388483389879928128343668800536104490408257409381943896769800936716379573316120443838683107097376983404140772747044622620820260689251157355174410185070704419856065137038645427093907847308464245258607487763310031770138269635482506608563547210442873738358654133606176827883529327410740671835698803067498720922505195097023787221866391336810713870641894339486847771761172929862614285196259512392356664437036156458499173991018009000514401657203747014104162185345300924037624563857918560287824349474270233146664208128615014496168341665446328189634826130292465263290749295454459570795074286541770795455173732701638125998826140404894654089516315271752413360999040531806947467313497220891681697256777250552775977132209241480061691042612737285921314389888942516906747528069907334057019572893622756705297506104513177918150147462450630661955909379379618935323374531692755539638323806151023715945517543326261732558431363089515133004119075181909363928429796020270924741822630471353211859920285458753265598223761274883240538572891432351216610196668352540454555521317988848247559751612189280455944529762250013019532046173568627083958303818736395751671996941671701081844760809340583410668680661595209809149661980478914513983662517209640058262040621356832010871866333173450831682393810396813832918888207122365850578596634500452512911310965263974847012893672869385857133236267279043309115466245285894885984661846922654655085594796388614551717245715175005991788278967786801837297982364992027133268806069843356954908193722188733276117370596403914265175729448251120229450037648219941076032404895218563296393789208256560081990653078759945032137866188667872847369401257601005163117965908532579885414153164527176298172200525277259597661606793947144029655680468729963101722739579979679066065433179475965881091140064435821113845025466104918714560120821710589018780809938873061724286061643684785589140047150569772452461654118374526798612199909676977595098887360069922467189146778598836403561173194565741034707701430103397283497833766121855155956809853834930147979073570363991995688516227124667598529457395899082517847733688113802154579699681387984789008671523371005741441653422037388808612216778875383093579591210568631245579780887013709141140790350643620650325585733041538654329670901325731354257864087595503579517080868424695066711844532393715649787101991460269582334335370832400043613541209007821108073600115507191221741952600935011829714187450020380413745420771225078998980956209202094286619475108132031104759692299264611869188586894676774024525930824153358187599961700135420343054390110197014018652811879716952305930490100054723342813280929630679890231260231692067007575209674821461154261644702149321707068584906261947591426785002392172996788217800931572412700566580314658821103299540052802091469438422326892241442105289491105677886797860665895078223167027468766577569511664814105784771319547580962973990954526281903142377721316188002754414761787579687411440359774704487739011819880365357504964860060100438273573690263200475215805071662185512568997057721507589769926327029027676025899730172458878374986247188243813061337877058138394216978317379119140216527976456333067437938848895233987122686575269847379505159620493489552067247495304403182039846672766732921243197761064927511014277882367807437341565351116277711620361237422872532778872834628825674064151685476452552466508627947347790832987700071606897575783752303233745098671113617704762324712103031732968080446381225828297417511132446787960933065718211242859723712835564328337270933530374628991175832846216813770270005637614566499075443644900008231006703186853934625916717457818662016788182377768943400107958919729784763361556960929407137861208783662197844849076694151878926001209469857434002948693729748041165300786740568828584038863222972087207059675961576306812580932389741860940953617023937394410386505266743664350821704995373157740788047700641409097583507505326214554428157651996020655855216594374227747678192080520234354192884781940875363288444051758879458250654777568283332977076032495387109572431590177219868671039059806617033406559337785227144452750480693245984910496615394343188096362585640581007602381382624835420369493019292888233287215480731936710719955124123065785582700797088191456389742764425689807475769861373239328496793084339157811200481154465683594287297177847787402905804143682628751077258322046054948848997839107394918647034048499066826179669232510861144617088117026616575425567878989566886743742095493492867598305528092666039204333223756920245182666527855665038526604352555342048481845259973606742213786609241352972955926901377086261581199186222966956172697043867034066579627894176902440551625852405132853487155768212574943625804670148675411650598396185745834468037332590704049013470851837804733022940269561867674779903803022134443378408806922198893593441173498375217032825656138622969448494214595639546332184201709613896563140839991451008716564332451304540635636493854802457412784879542359036512067315723675657255704827244389845241763724315728630289807466847366074114548396201254959459771940047825961640761986094668880343458939840148940163164952978634430476824810625466034093310462954138180842318058116880014454791166316637845018075425596669466200617045891095585487448338474661117304595409266918577696211741590812462192293635442294538458767241403544453922101290053861905256194771396189474123814378034782116073552334242472887651192056527957816277544514806175489509073122317895662598340011107987413407305494870321162629224081475717508182192845667611884492203400360287662831166841581670736171904379665321643253450190284209318499679092633094095723411785105080797716565396771527283567250610819994089577095502456386040618739073813578801065266299367860410806951455304362246601242534590000304354128637228091945902640129697292168611482199805849211115055054718180006274030796720710999750503740797770569592544077272108164185014541998423930961979282588185698185419549546273766108234949300382049868910607332230762953231557994373555037705074588570603116515672770015605644497332255237057656208211617298686606350271196454963209574219458939443834808519135516640468206609467151220732341760424061327051740686822455903284675777897640202304175798783823380396757476156187601220402830092784360673973357039183732656280848962544821659248208880698990424626973839098123659466369529937897228404900438776382684687985318893818601120728656052736771904568003754357965666808317543176670487099742216146054598777952241998801688219986378192014626088372168004129421548871198572434258859255738852094715477322190607332633531897081959424897117843975079799630615163244087380699620844925696469351933654647370397281534664805731992491353582085718337699819685441938671158774972085085126309381338354816516719440768128795038379492392985924144379057305541478651252589367758254708442534347056186837226153932064884623860868242033347174458941242898390020423293669789210496067776959537663125886083403431543719974239571477220529909783310014433938283632070772437814913294695199362519793010659987157198736616109965563948447377094794965654339450384758852934362192837894888670537537727364731786954610873152327061508539808386174118871851228113837196872366049521538371664342301723384849588195972152122517161888019033307994957458578741256208880192755529001722079528407798280184779027038682445557057849131347616977569618384315518855519924817078024895139092820098976934627481990637561249063886645406734156517913236125477835600782937695953395667245896206462163386775867507187086899901246715919556720833356759541021721153546071592335467838936140671066700168052375168423632893468486038008952572173067281405319914925290053631296133963089344999598310013132756197021039252047748991919630837556419684558603497873606082622994958667051876377077970459628570360384472080701833369804203331840355545630532708243929818874664135889591786492576979731043024127882925897470381814315633848865916927386958335982077082591471823252526205861503414769311631477300645117784461105891798758851201414669150477284917012696967191204214784576080434662126961987820321956507240498148648043895994229456797781257702345416972711945858096975058495251064862963991492295153243527358882008982035490055512801870559741444571965608648048412001266804182215630768455363627053189167961641505426442807822037481246971443312034399113424806658847891075243051939688706894600133824810484330145769301496349981171103746834575242507289750983477420248813636632994516564013518606124413254361253017040716068447523281792189930312828479122296223173615230158150630009359897482189505798111047931730064895874756827072077096865408749703300670089227807770867845208083026080292496788508055053494483304859997940305232773411166137215835071848171893171876891282124007809768294074472901384227899166873706862575645181752876767773324524120665590285827136731524276744769320732238064429669674511245823903985523072313102948265993341191409689753357081293830771845539479466253774429373833039234094120728841719207447071733413426935630364750702712302590162668599597032611509655337233495733954224362221331748273538269084391109999450636346540656360856115066270096040055871963126525856687091598099039036787603656961751292527713324468706001844142312522576684435338734539909428046143387426565512132375031120632997237184414560338908124519483441462214705698951823515890171447576611980252152468813705809464012946826937186379455989873150760133200510455709450481537492347364933404108227129538957531782119988122445967792373853494537806379251215204963397581728364568397746246664046844420697017696630523598381696004758416690544881826376051729551445595426542366551146934109758316083252020193520467710329816678876253322069298483074200393073847158044499420288544245349044046871048109767479615948630868293398615988242385820272937789881566230761913008444213049813961892373147127161339447203868948319399126661975821997177069495906176224022706915265041620507782779086947700034525336608316382392082410857405892681466073989061183361966054589599372403259682428975735152234828760905587656540329371639440709530281256602387101032918556840870363887449502099490759585512859410034297620557229089070577009823688227877472927549730871803578669333305369006070644700299342914025680393750049354977548047532339759291658414938643199196139951827874286463161432879146519102138630967067012278956933100312566619108701008279983194474077857910763746886059983063568998539746611084651359316158017450251330627065215319937357166045651842815559708134804436952116008367983532244799469409876649349141682620235405561065099523218526764522082133850608351775353655700457672019565277513848021672090600570488285373269528985462750019724751386585421961169111282576418409816633427494126982251549883323121308109628064333919270714410149622185076580944684967403800963774450739428097294079120095231452560575050632383417363603117277246867501056767040841083923255890653604767721446326364975124026271089010226012724274549268812042128243620909985219058199514321240895906395342798009802534011584319407838489410529824139511752860061456771643118689971694582456888136429613322472039735835953790884502390453037100826801482556533385088976245406072868458771686755305488547285394740116777882474146554852238165799021084313179036879931148743325563041438950376704844311380164298848570036455957923376164334908660195705411055486608284523490546931337573048060310441724305403885572237401072190470643318008477087125141571992668321331935255341695764393406880908885342590635719454052587353228187956755744980413625051604359683236247468599633389645375383626114212457353042147445141851151609827391841177557161311957600159266449503717704796338161546421619436290426067109036273581314214926459911576653843171982405094367089242740129575448345721996732242095706875239145256583761498276054031845258713154540753273055983874388614855479790712616621214446015534169145766669076950915616615943757385136490417844642180253211609858412837967599258519832175023180474414096087592397919692565567532468611863787801896306452682884191595824795341868663907400579063096049498882295999782363389276229355124410002720720884179022564825755137428797782156580343585594325510182984259440574128021150750232551819704565901812311140644044003924895533415738835589115130828587879827690845049238364051593281824188469974564155513560660931029030763730693528061011423269179513423500115160360547840862029140453114005452202323657695208104414656859952074453861249367403618831197437017686235681923661698018984879323555954150282465768229476946748530280170014377288513760779234965929400503575389209473127277990575273530883198953466200456829408900098890467894971289833219778364802434336475131140917589963533026754109307265840082231625615246121381774363666436055757022575474725810188603742218106410050246418328230938866562279570867549436942884434264473094005266026793808003896641220523519712402080767663304598952756717410065869664964646307339738237168333598490276071051764285127270347635591024141553634934029284733077614154207593966155696070919659343149378954651075310686195584800309452651129908614099521896187580209822697903490402049056845920608381923023114126595710689729098879559365701681374691074872902278940649539160702727190276097141967584891268448229646748119458963151549579360857721898375223994036708775646743965131279240755468843815800809864422293605928670908174421414862296220528733452834844434735239705527026070354730964251302086694872628495887554516361932077644046026170930239306061476214398374361694434886148123874814654383951787485438944559669313913520429396975724250217522190109685415775668210785083265229066413579664487386609388392625036492161030824770483478206226429477781130740856248036043643779005018083809179865310138297338985964472001076343275365909428999202167403986269247487470147639403869913052462762359542622514440452410527358974561382687803070202321165540891872260618780189669672631345624442899811717643261001934428066989531850955495837681420754928027002577463736993170372254764691533513168927362371733091920258465227560070502916642398853498241723469040593328718088262625244952809229023138539813792617845049261514346732813406880516373248953405547570221074884806728241303894538878798791724814768317070382324575898627656800279589154361977340676218000735887062967648749987346093253594527099149914558600496357132901745157926681509312722080333668307462332713013073785889367388757512695901241215520647515134787106242611816562230297623852985049666287733003484368846355161121071881648740903847771749541683805031371350180793220113817353891830596504372871764135538517973138878565897332727639137620005124583681766433200875644472986998973565080130794455203889060592992481053346811042943028729018231251148395412821857962071636804185159971062406721522044749969594340684582353188193748271584661351381043194338507265428989584954379278215423836765741972337034394825054797131386077896869521599367664234485854190262360376361038761607438418902125476658812818420051471436271280655593749232745939644033224592142221797091681261291304528380378985103469724979801836602287881708403850367497789502518744119952910908430203068788422819815181310912344030076080561825609903901126250884304192391258515062433470736990145661850527862053830692013342410504747188791022050503093477073393885100754860291223691031468717105976221523329915144390518578218248253955861138696725999608489545952083969949386960475506559544877237259183561566611399589707673130970859140891893959054177465859295466923909690938581882894772829932775813969808506856797280519296069643883190351304217482200118742635130314583805829046753197707074451323752619610969809378474061516644631189958221871887147700561397522232165087367700295544751384017233590066817932947823512366909753370749010693112164141744276974597484634134260744622066859633123787227662668315934589433234893099955870917635969854268269162999528058030896832262925836728335045202091305729646266233008933430176793780148124329939925059697737193215662447852096011854520837914751659937153995577091524158258699104714492573276313727513689314286830321487784352972608983203370239252142398824967217603995384160306108006572247487849653578652029086906548026640677279104900682572069245493607067420264068983411444562816201103710906272242609376578361085001636243246976201885951582504709667301922964061460920042741805978566894569542536125675642531772149230441450619481884201595513841517710667401052716076163494216199306919631068834917664199313038729662913876144018133443656813990758306182082956723284410841780513618689144789429872178577688983082062936764653509445748599042404719700661491285807025293305768122248499802956000274623533109935026835679022999118048498768383041189256319732088277647624518664795050968649300542469105144238313686514298725821396087460944947000718043568187378677939093103980027108876136442830078687488930213115287029342616302235383144505341686282095215582481666126803205830268464638903244282120952473393042567033879061180926911665508407989827231870340196915657562372205276405336886885122409081158040945798053033251590737480805414692671292216911102152680185823032713589057154751247935070917410483149592430341488457140336942401449238921782971258202206800280874438704843589000421030692047933317338183138391107838168193677133769752276494496560704055152582357985220928879017763621677418544735682392736342159801705066802273744609944661345782426528477974465273611478426924808367449875759912512433456572865092430190913189942433898384331717628024508148493968493786279317161528359697079020124815654684908917403368782676541148116100119119571209224372805425722425618869813496442099967324541806921665979182914732554203576397197829661371459308322312798974645458621126419939703856133230269439152339960267380817367622706814800075653902403972293993737356659842946786578504478794172540609987014497451251034590699465060027844905016415245134219908169615500530149933561659570517860575500898268951154150258574060805404741357852353172373255754052917019978256400126067390549979239687310213162626261549489712866360949027661846252628357314627808055966440266539705054140734402971468655087745688608055714700946626749327397843450643212739332193298594595333801555349907398070791264673488403919444330495691614878678519247603397332891854700815605461281100817674809029440353079264722976083604099349198138648562917352774414214333854757017456395610091674366997027756695543621551133086918785261924311266545378675036378887633750481429411306926512668399488344230934579765461935435771397860733027896004939614438696611344994956065729963985269975481340759687918715896034031565983135250213851908633503329849329938230870596242984132330376292366077854780475177015959216662098912455106888546407793043611913401410970529197631900309707790074457657103121665499551120067529712739604338014197760053020755618156176042794185008264585645539557156277902077292239788472867983398203777174061461580960529074582237769594763162631221259923352097341451752598446819989255743185641342736326835132142681340926634436163353902807528532922284559823214575116990442564188035375347956417124417706104866207077733950832217688137187436038059784300487703197555885426560579043216251827828555690615481894476496283536635911511569118502612236979098289051999987706805266994950963399405278952622955356120484536670188191481508691931665377376652475315060847471207137676694630363977414072176806016559994618566867208863399602574317522994786349825997856312991419848619537270102800738326257350879749748706872137889550842217008261209290747652242919959499691309928779711163850267071126438141411696159780629511858060467896434228651944931229116859567908754044173081816567194793093671721231992856532168217260482507405721428845140545716714615083494451639433936509260748368022309559996034803482366558577893039367804714492025186699263491932307504993271710254672169166958165382290241931587861922955984504587258997217929960978668096510881073535019830661163289252632723447660400693615964018977464745825215786060251620282819217581065383954421789864418384691191892504635943252722843897957811769249014668084208937880698090258639881463712300505016195137660952163146740463763902209338869909779870749359431205317319959851023138655169608883617073721135385110593840198980744635023122029705413516873183924287283852665040570574110210570958597318419440845288717232742490482265102401237777031403264986174146303418035562329641937338314500057714825958523200840261274467559761258542683601683989414353361136516715131692387055699589696600012519646654840562152271878388953835541626958458137514613027884855012985177702486967502526929961124173964368512454545730329740177000565269933678581574927936736751589126230344304627841104169653328921604949805898562931247829892984703114466181435431562208399201526357508299551365152911563368309011955686653458480654064266261679671408849509732201630766166044820725393693237400460924308086347748925160549505639297831332606466746577162924243884485454590948715535738900881361079268837333071134539180467918792935655476384703995501513879045959021213791076935853128356580817208157114227653576477425124594029443500878897916479351254505712116992637361114240295490767232521471877439686712971466259947029733583230690437863394269644649714631963932250342462155160101226785499277874576937787212666290845141241562484836841151728023880500353409467174466128998674474637295607431733891765077298313973422862189088299300086162856404796380893023975751650352305091116764050512989532972673832845513719955341932405825351500335363662318525092485894894764328799271200465974403699002467172529696770508189949290099466563015009900798365961493152721530072408024930511389713313675230180072003596515987052371843083212428073950900036960318433279572178950917824723385601316646288218503103632062709354699598816709238642238889282550476587523389781134308538807955718782346058404237011027651236343629279659786951419491522757557217206292654882566562557696418539918668320637589067456456805862187408072259281098355583640741129219952253296428184115721027959872831183835652769157875271709056630673332334658978224680233969280035030758704317067284380567174869289927744647847402534343625491904780649150715869033359177225284582389766848016194283807379427121488919838629349434118119373830647799976100712807631751461558792004807772162144145526624099809387814548471237271692142472652571956970572672458200758120702438090228379882918623777040275292532047805146133957357591414479037099581066023170710052958445062300105123683912976477493386416266699528595662775369298607158142446085945433856617151435154987856787346208598068180733572095497034528775770773701249519527669341717709787410761267285321992737078081005482781542424753777162376771764393366488865505221795088177428976344680213388041675235182198135415423729733304026372203546549801844125827770870707701115159304335120689169934835095080868775338872375687995453198054418488360565728943001104130721050274101713527927108852744510307437826489379378914658743260426233763809090498175419897934628058416247795750567313135937892384296119449846200703633979646620688080426999018528905536644348492631914846759739241811038675362843002351117352966108972700890000207376832331993384075429778896463315044216657102100374548723056322843784595116569220808694735891864061366332275781505607799558754894226347685043363236277782130459847253522860728078920484489325798828832491062734359933975527854869437750624953932906765137062954538757147744055888484150836947806080871105583522534390384216444275524589300829531987303372809450979816109494921515508749925739375762661142014108605236618468088996570026359466528247553833085432170084545606121406032065313250228078778567102448413954660414919843664683388450904819473652722343676036602264893284491175997656416039812946976289806231800585676320398365304482157665774756212896622222203972926465727587876187531036726834773727644162757024458880966398543137194548237901933232513688352068762998373710387121412739750974925801438384050683023519678018887891929341332777371900682487948700568625830351214193981242454405634396074446960084549114249875441443891676593842346147684609706895319358987827456598684360888215075877815293572829427861308739852130136465536351661006240994392543552049540761191655395306242824104561518800353909918885591525694926223310286438650598505544783942126852076435671709045894558567909644466405051963134916548727141550230199263198390861438546554598023714698360078113625839909357309595173086475433619261259738538551831608283790238253262444066701564402176959758014382514913308840022727587300021887223969803038173646199609035986109295165325474637858828271703249903016561932165058768301234358726657719417416484503477773232186871567750129287576385740464356362654856471023700296608013798863354630541008277580011269228119948840080024841243987131116106716152346302317006319459995817943505963614350847873941215828023479251211387218150907876713989930130413779745613879551076431397674380629072364765473580289154690594304230146970302820578490456497453456833029382684876143398488115909169495764477170534599064902003144070557469585481712673369853548649162117447552102550075646164727551369930037991512178063994731740043009441821875314994359660995522677476525618801876577989844753699214737942495880058124471825941097986007036835590442909303656852117738383507680771798468361939331967130396153405900889979401702107698641482075003485919869209288120161105028223241273934745480390254450562998187108019773678045614799796725979659524406745140108572830528458360172450257458053703999764763923153736160061943500131289928680156462720076615342193821509734631764795558569797866817085187237469607887724935211798930830270460005107074664308371058851332509847661467603871299925229447086918317380205724869631131802584532236762464474988410988560163157771430724408254054232302653925397091274777054130368868397547466074954982158000900521493460935421658134290119262349241255653833043650162361888558137511351908496677252747744931908764680675389264794930933836504069979842365053973398295791744287725219787322205254832316980247061394794621179713077425337291401678419304789691883862178774404428304287519169915535037405922455751067749994043871359341813320214129846609504071625882680360788084129786376913858558169030779012809252448637909404141573038451794146920296292841896548519669763540809615846909956370026474142491764264812002405366448558494588472659745685914099134038212745664346834812916479189162530578430501943092061988796042974816226835581843134560377436675816217087484560389601725434059230128851236877193812697772299021738030904632378979457339624652869922479535751581802773245443637406533101622761282070435218070881727597233636295818415464985279994034909954098280311281989248794818212643083351330265768337955167253306593009098806128242869684582172844382304527294004514906102967459758341381346698172963155105418033293474506114519523467760050242945155629829407453174523994891310103352634425049024908898418386784706339731377107503167861510021280736755226091816408233724936317945258369377699581337185608279570206105429819838199450851169241952065830622691647203357824537051970932321399971984963363787724245132027601298843299258391102696894239708082123870982545447538457252404906603121488551774838970464147790507027325355185331638017902125270387385796324122774840873179822422545646867743482850608578849395698581006298985705454269063744236949800156739395942375438605955481957844558288569117409184008820991613396720433588682459933263708770069027057860073490801958546874938821215656054103715987213449704204414544953712193681340013278534996313129781372958053035741123720195400901146577369692220652729595666198784096172798702110795083071444690646641609831058967226921412982529509851084341907756135258293577286186235266457662714333492206183577596238058291953297892209076097728253575136303162592028581631832153906867824149384851380120217403702762314735844840076222242013001727939570260940740277322275968263616270732403431391899919012144534840814318095919126019266840212013520330423944428851598645349515834385319279117835062372395538945618792846315897121172658771097537165622661096471661224414707858323148743782294377586502007053275562176716775131093273647341421895763950684393058914379785616000677459737304134139440469156446809574091666658057104415815172839774247589414031050123092108858208189987796377759893406326991412984228336358635959627031450965961547194478103491928759269399445601905832797007812094590746728686021345051908795628183898962141235568963142434797419349696974678239656339338181564475324142088019144935382852474301860128793458150947492449279121673277483291267865217341060330095100855297163931727478741220050923260562774309606762270980594185846775261218887836853042834092212302554794763177583176125382121761684304872093590998356912399143775113510315805977429889213436109331444587413894008032556097044186237942658885383372189192780787050560088924317238563236451679510243263844397899447037394760292221014744187119951698909828565881891598762544443176846561286792691557203431567243180645853919275296065344047542827476561283166303282123775576659584423392171810421845260323239204865374495849808450443862955752709783956009669558332832440393704969719145672828085804355931714397940497699997316092968781564651356565390167135455833537591956343865965635839520849788005412433494008903879557822191717236499208600874560921419204519245322755127580619916974353420534228346098057062761309711683091599281175116150977695727809164061091112649856183940359305623212377142905438956310241354136156248894368583796999322488382233290245899521381324171858914257200779667879071668055826838595027390449826020711535569469094964222523264630715564460971550411643316768397505029031334882788648337083790836717109548497641083344224509709944687697395995026044620393986059946806977727677187076263665429741448190991518486669810774049081101194940019073536263081339346337993817648906972968965242101251438096036916310254345545485845411261345586016472682946112803933734787375334151075981047670555150534757166532777864064747452760717118167147345940168178002903821204655573939129653706029992220279691706311127372844338382215784471085841674112059408618786700761764281577222590206256109081571830980876884169871493553797320859432040254336477282195667940895490465190037470010203981707556680797469969365588098715055880202478714506922004774448214771468822039131776816530411354820150295564530563815398349220958326881007628430999470823390241160617966437306039816199096173744029120660817963913668134611459688682503579664935409250966253362398914561316616626341466870740662706390377521133950090366037357606478437645078012870663809684704813641321759936810112415868847928677576044715211554646417399326484656004647278314940942245610481961780471555873626566312002190554160781486824268342273990851612481884749930712854449860055243666172873236992354037147182151578890574284710455388104470881364957594819923547477985216149304039371091353631496795649886125716279295807236765381687024676239082929031737341210327888138333300037073315284744747344876897143846326580414906360081458705489090979430067606207937717229171434390924827141492138778916841576922596379869567507004504566490706909093046567403749067328955933824762430369103684937299737682465598597094470076403969825019012627764504783620455091963769627796843261995708135997857561377518542426774607205542849683753226949011078624901885001399267013756163492861437137241616919395775414445100847206128079840780951973532226286427178239020412923433684984010400461589700645406539320142688615453479105913219979315466359680957848652952784781017947695203682918503749141630308107192025190353973688074436237451266919112144181770483110456401521478541706235569165317619479905903173584638302233825286600299540224211045702445377896552099326958795960116761109496565251773655939765875359711289955123486219519974975895658398154218816750898878472040134704306886678865547804683260128086945508578652672017817469780996299551549952863266618420798316466546668252397904091464779645852933358570385148685752058627906568885778138368460569515150746698041801549652549239227112789388407894980084116355931498104177007602065472376462054726608226982463643510723712236287998306252783639305180022746977224811206861645277071101978186724240030766950832968780506931387908614967490473990662544549839315228308927845834161842934902607029832916661980079332224264697107169541486107076392269583589443486794302531189433376435128855660050162256382446783645066868007140444458543923570540394386560786475411563904389079976930627682554061462430423994193934278160454384590612677596295424578611558439277289950852046198917576951297866272482864182671216724659126294051445452762962657263492121799601605483947847671109292999812403892527031697633494037535511218833594317215254689729171859908704102188831637267470452316829330853399132775507412226694759076089310999073992806721013796175482039755371688289742496476894446102549873995797646278664477503605728944174611017695902305803460174094376618575848275722197954525128353592725012735577844625520823483576091526462897678002474608412962096137382696441296452160118884899268453995774266679294821389166954275460373657076869943660454805463944710527613471475787152456899133327782185777781979972249438744954562521947094937877645518541382314567897345577229176990516380356986125078131898805937872619023838544108142653209000473578193341555517521089371955814071719312705244033006255297241821122133636595083406273904364278402342155441754806678617176734413698881417978409981068276053087333786902449730363902541998355191037592311511673054320651383545055683020693019718927440299800019332831709414545455827947820663097185954981428300848046664488476684322657758880399973820235249322832044400175206085729038056507291607589612462633580585684617569093767202918715578267984553844922026915127488224160402282911499930789835954808444947679098435740864542318796684433233126013743765859754100844213885409567072108730928322892621624364352016219921163625022644278319134111432499163664191966461822863616114044975949203274725187344938500729457155517375502637991426515010896795105593459152283591955392512678949142568743878555286998463509585487706324843609201748282182285582035316195409408464734487818895053390949493705492991718183833342295152282954776880444539330255943351960375204713905562961587929398107107861732459041921149024136349362398591536367250832041853711201904950189101575420634733403187871838565893090033012559705415604668115113551764721434258386011507788751053083372817011075314108318767852240585585032273558236115763053063116032716997888929682331026564521465104901903606261794702422025435725183690564686090757521134120792928616892158438903966327607760053981290457418527683354316830404785693451982121860928096697082921451400846503272144050931237972358565004999720484992146437351046922121499871647050025099635116424631270833914759792276986798351934454674546557134919858912026575629074955527917955067196012957729586862513337360783615243176598410221504801268031827410941398532963186350978182297662323640259761126102028469029391019776089748123303982768586174417454176668283814707069809617991957470666484436209068187990774731520464740737456382096898408813328158750290614811981852162967123422417126608988331677067323470774999209390265221249420008271798672138495099063158914337979671735698076848962046211224513118079356170535433114535078464725846154109803709043793509687019300713170849185813008115888444015575212399306811012863996422957490746744471112997366019810813972727021162592120321894901382110385510919450815432804888507186670589928065449665850251569267825161537995708269813439930362599459052474263788540669050939523929883182026943167203628098645791608619852707685034190151332677464677700457633330358747748032062045749316245006504107152159720324363811313834199302396181607118874818896031469206228430697434416602273781063021181263276592336839862262174675854434233591992617622247954876635593062303494634605121159271934501860271284383542661754098252593191734335601407999595726193186519514069343841083838100332274823027550163017509899870797476326386573657807119429594479323660868845162127511838414365047685636827521237843723762990347430311973995526413342544721798537961100648133728182758310412085464321048751714447874145661576090736954906699690821607126697409702669722581555318220200340308126400686773240659857226988987595325389490412792619079535209528090249474206696631633291865828868335306164956115878526080600610570418516317989408691978884452636014526491284857288531375121262856878557412711247348109693297847745407364200524141281522042422588467703858593451127464370405022970145414903554236013912693827421302063078628210193618735438083122988476293547109566179834586375185844778681657184650309253964973362444297398374887211078847814453818980021420063376137532106661544840442816720978951690572578273567213803691064905077134922226161532895488388640022419106687131102019138027771389095022772122346184809664999819634677958880277059432111558930599305258613169810013098511255913001749455640764626132641393313413688694888901846395439973043123361671187238862796031041713928128361661264908573238966013760869501984626796167370914701905630016041867549975193519821217574548867422781439182317492238129732100911953891589524042208762534474128872532501967674846339386340702627776899033530834635696155573933531761746867360486389666411665662790177861804528644555064480650999847510321477086222537492550471471490722631321906572764218115942883325311370876137681450483823937520316609855806729285161581349353287227494770203058451098431565666568751164812668097518933227977815345349130922548221788187319179613440787302800490019569520685458756525894431809712543860322326882571072808968471551124516489011832261726897164234440250824737312113934309950452425224515301526728721652591110029074186135995691258035822556001982878644188198527488882914765903199882234360614958701364109365054493635027416921611207083256112518605860950404121226901027515579512404074664084974667986063391399518403598234315523991703915273666877936959789581783041759246600930162797634431921669233074274574249639119983835718398195467581926904484367893441757395016219096139803576769157868937660118883912610976691861008139096664034048244113206421388554143637898515087109630423465730082576640425485183373008907019463966287958193854028371131726556071723253180817924587551385836167825067327426354866243451247117244586317977385601561444254150945076387242698487035436398241028020326901624027511721701961977463571861249521136030409964632060201868234810120399839632181728770930473921213787851005484167457489953124934988643750988184518748177871034951276404717554256922551666479246698640507936613587674606511063452486077526545864884065801786402201823984668962311615959692453735881647425205588573876404705289679682691366340486172016656115495288194648420437372639098001462539211156674897092570371426906701480633373583980553924221598022988160507572635041999473686570274894799969592270290642506176565016571039324679589493829482629237077534880321906507691374436662433647596542152417953184932017388241445991711229853490185917548626583977451685652607152668294219939203511785832570357402576319189426247296491193525813516130877412512084518413095537919482653246172817119382230164622279266979769539203590505085668928389111804352771237919901109384584223587345033360973104946448606479627414127892129281682232097115640750081182808587221816042867307600982994042570816812772044324414088157259395941014895701193901826383956916157564913375566512627835256456723727713720171112491417553470952940204105557345961462408123114886138163562671081683444016737303715691368328906540624001664766983683878814101418042453876110586002225679007492037260415119594775487862271825477050708702228020330655550613806681315018308701654485010638263534357350318251027817466796309134607137107417725279760479379489781866729191545101411921145423565116385254162552092621088214172240979176008232143330562526034345444543177824826499605762929751949613242268267620339630007988396419259993293441628056029149237957786777487717214779811609324783145754267554948419866870147554085077099227580298358571094335091114969946674694516560835737913999036944346450261966767715291729507607499135133449455400903595435580188816569731070333305098968199329513208079333304376564628479179141024158062453765040671737189085282085440944735655515886229689469053152863150750314073722632358701095018307987155789577645238506258565989606718641448057938999938569912070623839894939386603695017914331811247876635540213522270704261004311650997800698778026663212572734252438144266618245438518245957037317788357591584070984905392990166297380051755743394918518192392572956966674030040283847703310107701152371153415769223746980966496423246801772405368672626173429825563970053732607107866138389702184419758014227922714642949390319925945696876987061736729057626315193683522010361081636622560259478092893134834238895301758361642337671294791838060895140475114125472415373123883447908836705605371328968958296804480081743395445679404858608712508136877193285468878296740638343201981320999342171863506550856125544203947929309785540922988864341652845093640192933538386475499205211636472862497794990450302255289878543547867348874477523191476288743582120417832750887996850799250892867816728045650701269560388295678073864222849059082401478353506404412555652168848445546993342252833067252191436010342224642864470457107176042905476133701723169631939726199585006738798290628991270851742148532762876612238231121406235264015632302163675792265776874593788051528289097010268435430655963497905634556346139067682805965379623937188378067239474361809213643069565650613223439811878257283906309724397984830949295044943753674539465696919185659645584528534183621448762123332202538618242956075943914939235248118529232558254261151800868984329457697463402564261183786133407305056639532877773108802189686090843929297092975911490162512726844779414028722340334967542248049360395302678248750635550650478553096421108620829772848928821130725019756853929155433371575962689502602533747702420932404489735825798713110030780798224259100264163745435550743181811700301763883858934454193172576849584377791357776807497101902971064277198663164309945313339411357940066008894346682132966746173738380136772128831408890531005893268131757436816702395996714411300665231086879672516887891531094161137745799068515525040635425481209624328474076500538106441843018236004184697418536329317639788403102498554125049426908709973683578399665077140249702165663732818499702785454362743897258699529601987565299984167306217142620680545668642345391114192903585861679511323771930817993842748456239690304519570043542565262299661701294162644312070891116483993406997598945452913822623046298451711963635040079359501101785019965665853342877484862366637245439192533111137365478432782955810558034851857380992347773713329598027401178183109933654987231174224696645877565642091106215756496696818207218654431679460181021649470113782433132385970332216533982984195905008562176628495780061418223927100347321352249421565115854202847414966186063734767717206788272236943312856846262570753720574241174440472307755759511303267148298632412157828280464696315556544967679871827224530766059535143132420769218323669828486230713894893026118274213078273953454956182615141632696590007865723195501515654982272217116804491608783602199024302905441979361349360494819781947142968175295768379137470225940527443720538646208975591377418935725021011092100858106335776569318893015840206995344621284646838717430343646791298077885273772653449408383899053103910003516016171190234755436617698161073084745924144429862354171687147155998810640000580854009793239628573886089356926388790224145204181688956448147807213784986463274802599228333451575158457723786653896933201083233912385951957988777520328849613464484924658278306475916660461278929293244114268032008564510867894208453334510264882334686585413558740416175641266030237835724923990499481399471976294709967204477795231021654019824221576642097504517993741389294777415884690548990596638302645306689576117862945416121369470325239291286855567474661193491606091086950971653954010943719168802567620248807869842475440995343552426994164313246928127611571513035577740001930773515388682211617545148200562227583141961512722308592417939859407294141565498418009591815993335981818051065336222360977284288494287375157526591505914596018364938080676935229554979077692459221640672911925388118127545811933265518282361909417638387564308545266475275088545562443853536626572387298869189859503952663965804556969179299551910377619448292989408562536538239151591139826696099177636758403578453682087588279266328211929955902463718475680828397811422861220309089075379386532095487487981444564561238982538609288012096941730157855735148441899835747685584310847337849645085816509152520438514780462274625549634146683808821167957091767665522221913747716148389425637815501139894583457340705481162155852984730616063117236945256332531716740100494342962218265178766173979098586045766609982269165634139296174589557465815774956721198240585167848457906194010796669225116957444426121939203470494584960343091371603623628112034899253405403349372103172671413126803749895076288424201569901323002181466412439150060971248689100503539729664154035025592528679981540502024467185981612849448618721466176659819086433294644781941576729064736141084121020995983309582153712786318625898376095870434850331756697885971838240860986020475524464058773442941253551157560951367439215602086796463737649135478157047072265700583133094020758695330068993874179294681340575041522353156871652209148135872488780273620344595575863297038570399120103906240569839318018105836832352828008862493662509296972134187613238112560379212198250499256491890300619151173337716475729814621513021109417194798578094865637430660080365651184867926164580763615947654487812718122871400844100034708601026438360681758203852466320692344913491964830517197324111090629912441669610169729489239305716608180310691935755523703668753278055184726234683490490448163601845081434154887127783332774183661091068531704014551423716997066270128970668097898496377414172688337218618353994477890672707471656244137573270581116828368802075010905803056823821656869727089475050148283331621361395819702173131835993411002649232998069435172930215723176818379884786966528617238070317798707602447152915474184090544726038447665411441535146128049814874433610843547748699219612914647872487328144917798799287228113767908427296587588909110370525144590016625557914522851985843842073153560673841279464948636823660445551948927830671861095644331183765142007943547897402280862953691106893432672431563732937857061702493152751667539284505730378891963215922119904640901512904625704122538187917129833465183964232387668416234931261502217002237771451986565325040730385517490787164359675785734606282739545686691805269117021659432586794247294816938054370054095786855080426639481672775861776685793596486193895147368203399036523452785742586240500192634834219739276959530476737147786316299225462000404860210991354846252089459217967499987139738880082608487443718443545578070373905988717100112129294404958676377767196511867850157746622541993770999866933075314674928286871652702370528457040189470930845209377067871354205788923603886571777074249617983090987911192240328084456346064951454829750378396489081301335298234797499069961366230374883821729033944683837446116380264944273451991180237241399507087613482175382794940426172943322697490633301995093880527580360909650548037390102787496061330562273712849589600028831691496415270930455192670600265131583652884416707614282534867718512971960818448330802168918752361403999819128867767327878390004838393315805491916908198225147542579950394923569057334207102144219551230803095971283275007405799561833476376339385134103063331224281903899963500068744250342955618327116618192782138368489013831908794830743685841510607261696317604447539134293095543639411823825024703525018481646541305937312954109440663566542125853432945583259587076449292523021708090034389782248694993858360396943888117479623985899660899936704676606151020760099898930676162966942343911841823653743812731369113218725091023709117687599750658615913497990305434885386588872027034262904436371586848377263696160909987248945583792546504268448118624766856896748441030171204461290490162368356589676676092927540145027477759658817754646576397873880677838824636638657820624342315116410364504720005729786755220339842670925294978016677016028265440969285181226273766934840546701837138139607996146357743929498399401797351199946499421061983214053553536836715089319022819979145745530175982999236392829482778039175764427211526680096026337543782663642392386409613330660962597983028381280409805355349484053311918805918693092921314491095919593617052981915205933800393706906537825000625275279832448661513551930801550023831467699244965457747658502409452427921651381766424392728781133694934808251007483123634776041235833943697221557609906785578792355592775110226520647234434174953687500963403539121650946271007419659221142823472482861333687754464743347471350398860384665986598820759888936390480446611808496162092391100792434500851333399323783310850760773990948877637256842751068672086923977026384184667216818983108968905222536458744109225554050724696979406312119496389035808029429203479778533117534683062783852688985321610788880327817416625807016708122922103344961286349127250941791701603518917263889803716151165803189396509186922974202509750149768707800868142595512991852529265016894628753635547142353764819002245117845734889381886690587727737321112089798436577026204778732302758599415844662727216154810038831561187847006981474782966850822347797808654202512824828438532249315862163040028259549076535508222541961009943163137776375593821573632323065434234627486394522975330179373421296030318303090372689178382226757558870502282098504395181801536692952738450805016937885673449796448604288522318831958270776625933873014973319514764386336258401354332462859904662400009970502844834726889805300119974025645470178957771786368647266042328279894047427345698840315367222559005999231283573666212858033805122378052285076948918842768160478644095854316612580216579494430095655549075626825922102850588780829680127987904624523425367026881414898924040769355546335105540477347242099724242793250872157046001179455270517992622581533476661592197243730058004738402625842462385725368819648005423171206076154437530434536621895309035360770430329622896766520966088871523821873777692722996271048200049911497842127227618800654015994728642818904081774621564981458793099211455014794773553016934133108987147799248959360316591064119483124375786467400850258258536349311199080437396187229639076534639234320730317806250078649718951620866746954450640701859368848166726845954669353682397441960465862573392535015617852085390869716361033051988067644132686759933427546060984259898570497886252466615660242649908355386909803184111210789266288962822833921077028189787223083384472736713548568612465076350169772057939040815667145884644657214546595781209843276713032721473033723511466237677350086945030206387254850783049583327893916768970604160101330698107204708318434038198519259696404350987180298908264626488047940345355661964641867156337022781405636619127200124215059726233402504632415439257223454007420975988221102679597067661620063754288096271649011859312619535489561410341934286713121987817283968593906420913270598428713550388782396086023509172442810266325790965438769996027505533290910380435827672096501864639312979597471358426013283085225918000450982809370751810662990166775029386360238747131914267944182333609830624045459626441097285299793641485450121981616106240308083573421164567046853121827876491848762393734579651302010493045093313663788393805067834485739862836623193196573706187108976202403899017754072342667497054233698436080476110142237360330259698652180577205625702862055285091800616018937176847234896446857572750107592025272590112258230331861287273490917399331259566429416047903251541005289504425246517623016136265176060172340204509763603623572502887040554612944393585975962806406763923520562887153709318605063818480162514622350767273226579854575182865862225145504841657616595543406234081582123137182251047345662687123121560912187163115868260200990246265309993973216280140191327265583503521282465471864194768232185903797324658229485876087831409170617139586778504720500742303149119405322337333902201326502747339552966516770545065188834119608772528739641170331436809336023307012043626584186878138886182206069435333041095398243743785381585696136369134924952617431658157146875883563897636849581455054111884864414517699167319493975354988634575468267734013572855096909077985238701417032141778523753466730402858810431148057013895771352128171513429264946119032421275972153108293512560550833061467067044823603173039667079277673983336829390257212193838371164769763304590691092489058532194145007950664248795347725579013550677946522680197049728317777245965541891563049500006160846543123072828240683911269848030332144481353265889182581574297404970273745096885764774580202833740545622568480952370432322892513077134355698286407876185456491309580087794522722838347426598641131837452859372600917963904739438866008379081267642858348293744130108145241704149943975718849827604501360282120752511593664701764523738770417424015379500637102963656034192573805302105914848335498048782906469937284438921925853796318349537897058268980539456028157669422983580872395599165147937592686677798701372942859695911301485391188658543041934674503391899834365046154539359506481853508328446102934393919543493028011424305237526367326485302683976923575822051557564832640357931964176628573143652419292162597881957446239583271138378113446154250275584545731979764559793717623539959109054836661811396770841249997443808595253595783832348208347727245751861372838701611416313076088455183131813208722657051762973646287144196269519819071035721459679421617040402828469824423714953435382584270566652436085710160658692912744478037654744891469849077823100869039198409167634169317929756955840349903178575413706850523220606468663274061819945681964233095924395534711470237827089434257926328748905457343676003389574843031951898021250466290155757394481317029555653248576273062309452278034139691646229777222506177457249060185140070307272059416636418270702241741840310681561108568600807073531032003257869712678018181284003885371623766552366584161624224108642207438593227901272832601840237298210329427965623455515325332026592178217055438136745744471534285862148379398777108537456883770303240930055950166308720231701725207142020656729330019101698172630134276942505362146828397213632263075966543515979622865061970862883515832619735317215064202007905914146144288000384594822225330454265255823265479402631851000858950689373866793826975343454688670695935035293555021887377011888599476082016026436441130000240259280643115425728983898835128666127231497827308066418250148342052165550853362877515767684554166390442847396934169989513542519516766960702101143209650115968032938333513710045422339171188198066387352610243314691977510976446656764675363576735688134145669782843927160220719222961878155009786377685087010799342262303834088435884251748854546414158347966165909078374954902326967168928346059897171544583494500908674052158598169307142241149112725192719825754570830161463279399768717142131934194153376211580063282362575899898080496752622940181207700407908548717662451043402830043504724136394393968740742419114593269714726250669155294576564320502323488203885070204138601521867781405266706657673385841429366195158823255808749713188869510435386287514091133143019228212155071038794872981672078930016704928700087279275809057096295585431465097251947960470070017073602728896816264979595277072057776234795985019520040271951066775401593379850856514864410704085421202628871319080866254802997034850612663146222930863728526679857794549901915901443988461132875106494737726768672414252758170221603057174422232265825668651938839606258638614950989739622952540539202392803286951720243297929102506583053034831577875280615261645199429310588696004540867564932648351832031240384838244534027754916503606740120978382566174061712812276574839606793733849642439989996123633725374759328957261506592234206086081468830934386445363901853966061147906336256985903742031717441676856966918981616219983393309376378295620112274903753786350378283227462190883771002841674008687625934434385530785704179219397139670506900441573446791199815800017189449697579582981419519240270984837486508381639306548003268013934783846077710181436205174817962456876349039763473979210437917019591432836093125160910154386327977300654680538516877750774870107237111604026277369937110639926403741920189459551152708073126889021445362844042130338446578398738183958166600639850980005469182132801354121479930448235177952703701227583359907376528326508478565064695653263098827853650661118044675840335426289389433825880299118995857181329501907924795410217636783706827960924048075722089025692858378457528448942981051543920405304921933926608506982967588510994273779920407204618159379416229578404921728687504581360256450920840290786726439701091519210608337271378675799452636982897396797499838789092760049619422288351383036929127849392608542345036889296174783076446781106840965824554576834487470092340935847225885924485091843834575019057457961470559334488212649923040915724407228364315886245289894031428843479334361892205717346801847937909988450034834630584153282156605890495199641810236006921328702158132324037363061564706590547956973344181427766926108055199558122234526665826831961110908387394808393938017084450812458525940962800425869565863878899574367337243766123172501925563166818281717321431438251220929298959550705052023661700212098387329838704553123152151844762619154056158348710825662986407630885368969513483693708715467266995553644887764627290273003418333805100500026662962416128927360280099525587987632488433379162344337404950692985910527044421428657422596944627000772024126129953323755113344562020149117168662584375269901014579774945158455450140057113933330797057130674029764460219046765521141918586756055152668997634111692781227964173143054483081049589714169385863292864126461228161303522010870742913661679672443796752387704035949751261488515085023401274290748511126727542438533611543756777632339237462455897115084673883104426659218100616009084856558848273227056189999066459291445114384964891475386242643967758655834641149462792330379701451855771470392011328764717868993623398331966977408354252891511915050318640116850979955958881892617838092170950343741348539651758627844779601942797380609252013707331005998725965112614011750933296335311645944956569234111472798960377173784276142364207002999531553922354366133199404345996007764334954546796493873753460722802771432083023560524669897552643002292855433328667185106198039368049307940325734293124943285366853707002291780232484332451988799230967855526843692332115008576550572997615192647999864578668498710487617108694656742648226154310512296915760362595059241387750647211511209661074388388521579906669709915230633124832104790739510708803740680715374828671429829314440969747174387914975361974308127747468560256542228197212218443110999060144214515440912077514174365436676440478897175875298896142038680514262155549186700521424626410257631699003921056562684464255965143924980670031740929790678439104515072149421504272650988039832406153183896086718999642713227295599014243310648967218206860851721465501319540558273260725002370883444050494055793769119944296094226462840305874695403797782709338718571551739948606340077127095410673810292549779800315364278397315600017499291724295710580755783814481901096457042960366924495074307296028238689808361299235045048964415564389338214651285365217500291639771899363905585944796972190995518946868407364019673696318486411213388843773074807674132311857487445325888477285358500437926676410632368547785821122315521824149132172102675132179493410001581777774904182489623981386500287329386963085693160013708714117184560911390575399078185366862600201291223598426307327232505569687195363923844407191281726125086784951501322098667650008063078106869618129470654068479614340571693157446414172035271998357170328099017888212257867802287716297720376061135390915769450319523120987901670507526908063895384497476051861221315031425559376006542289426409746393513811424588898219303820995649010501435286617805038264435771687849954589978320349962805202015067948642898829814360081610743074962557108449024454564514836043623936451439449059508659226228919936060761063595546594742347097280298729241356695613536799121652786013558241231230980958183164655453738493078381712387739626996288451010899730960596027613892279671173459048928209449347806893342032092942497549958005832100731283554957433875942553551907362166476447303008545338035845219397515748311775294882751391076223664069583222162866360811637522548366017598176338575664214512553202951168032903180134830225838475407343677274638291765772799961442423385674942098317452931419145042831685564078366480239822991718577458380296687216293138616231912874702489258369381812941208044377998226595497572328982197907912236057156235192754441181865315039608582437564382876474050620548623721993788130120319792968506254671799889683621834994967970243355146283076195125601476370535683582825147016140413853393085493459788071689588720514520654969473049539423938723300852715789065255765661876080636075211619650183454614201804386662023575617859216885581576567520076396267982421491403497768954567032744588469279491582060770959945214083940044703488434619623573757619624933135898261391107227184139730480152111108742263763476761146724498420027531677444456699498699289980928595553163968414528955430496909009928661130446380317810588650790235852817808787555338659949007215561057010503472343805897648721385945346536556012093090405922225679551803526890853061830760513108745671022480010988148414900147352564349978035646134827129604865304489167766868599506036089228991028057214059315443646269845389232483046173546401709590561711766472607153760174149367055951472018149431007357333588297117765127436196292840689711592408018097988976379810348352032030236576955003220457504286123941748243584674005446337301072304594232631101815085495042758867960787155390467136774112773553631841971731730373853335409215995205406810219759839277735417826691259331060701106423780646515376236028963149173642697565360971655043277093753900255140815005826584822875014239131570839755274604633847533415173550605276629069565567682054720293483409564942527815468301059767624788735408757140510194905203365244049385320864305879149957745422461006086656579505314441535698875265237394904165304749262941064638699597632867914117290929069851930053400759429587396780995198538170659584482446526713044198006109421971708334706067257726245168627920283061616633993170456172464480200993717374135473966278556052867735764109716912118720467361667946446706146558587071494065048633398404976719118808823318756653075100925596060134202451212418597234946090410676121580875707331643135442215619177261079225166772118585885024966594152562579365915245186998603765866301996042909526386432765240509718248859948673959687445518374063631293769902742971689034383241071569994449474520209601368966958668527320647685458604891238876394445883495847501553424759284517952966599970328000708081778391072532375810851132671905799401399657964655623960400332854090229976359487107077626438183970849779984071643035802921801033077102266068224038722375661097246598591505711474591848116566364029192574137709161552912676921723840828541206588497167748132268583471997013539921922470502875648166926541940239222437446930635360803502554276152634447360419285322179926217442524226703834290847838341559886226456556385202523106902944950807511659761598442827870105182136186621776848326963555851573913391235345908324012401765745390881445556224174838700737017145761333602440072598810920044386548470771362572567438533351961922070889756318612417408657455087351976365659353973099447431744584095931718411767140367477658817009518033586836585575371447428199863296407087785872410884626943001020727505799258239090829155097110840630054967857528970771840342051523200786078917241245070211444658528459031895095080906447451212212452250100979706036523150056558318375916359923967322268406465532050237671274375284540039742003177587592770950933061306361319076769369415770337637860225430151015708193488528757334960078692197869505009378038072524186925643948987036322924727319276895107460154401572528267259525788560787431061415537515215180109370119478438379600450781370217577685934697807691966445383526751302527291165417762968352299471039716171189912412243300812664727987509613360357823683022391210785994101893956562632427085574385688751765084450558815033778872811056328313026585182246766300224557590754304223433425816668875564742570964295879860956417625934336003874640526674028128719525317335914860028944170540831390881999980815144624309200049403606371853360763760282091940778509018040269551250454182056623377507179126364838781597246116148939760934191535691453623070652044000319667193985324645737799083034698961802785477309168666981854036585424338294775415172461141634593778399860771320644648378757109017560206931270373039239318954989040912583701804644151334243332911616536220997879595249681194881513370306684102113300667919530709939783154090432987289320845232112429857291715844279905280673314169702787083223084560643241344161620957657890230566854945972508116028304435340548693866706443916535344979355424306934008759823511440822970619247355816689042199101286072211799672478580181927634077567016239430363247979027337354320489658343798909293769854168761611415518096567250089985447842465519926239818015073068164783832581073303281150484346004334158042702699199191826018899799528968973739375235163124319747818723683845675182414455390891663289257120712679110494688364063563496600154340292939286038885780900183066333867661487937255501146437825709079335682508670045143192563783591014286708693329531477662639186875010563822945970098274065646644579378309618987407797113658131288109321127613154927350436367193345259506895521080381382831737399141636946631679133296189685561585606269751696950876036246478604496276135817282468585422124779072716012779521886086636657019809686527740727875089940930653238478748580767912207506611440390846465338841768624339889815912197464099323215096269892702110207809548284672023240093305595037399909791708641310912033211198675349297824060468788711825286014131637662911527893980760637832920188607171838779141382069149279593166903259897214827755581413368646352801278649393085987993291700833969082787380787457962444955402828641245205360522916954106418240506464045913241989796736741293536002210351952027737128482929203131076861157455090875822673858860099965032143894483134379973912997471164653181030383732480711579376304640108286593228283785936352340553475487476086351566041104869509111580355462600543048141444470240600892314600281071534064551742480103940987165337880256991137047309513342848213834647412898602485309925651663755250530823159020845390797148874816859805528497182495226201082829060407742200259488753738487023551644168599496693522619256398364086287148554364044052857520614366615592499168712442250092302712833314312377669847046789069789561111026162851824587329580551993538385635663358903433407980436961355115353767641166787556900417499519211618444220410227630536323230787745284913969551838356781918405799649844132504105429063820907518542330991144091678695430918055663361788688468996112559805445932530881033812647933435796716273693227287020419309808444422376528231874869340038667220643620795665891042059801102906084921573814417111170888698564112503375087710188681797348121712696623924211069959715188182135656105849201539144463803288973371726268395172338446314650133823116066691746315064742990748507667593108347803406250511364235940834554568916429451640815964361961879392089774483241715101551066934880154589563054319733078588056747447256152389294262271499216554080797030121054080045282518195606963348503815427818170627102904941021329110162861174585482926375355166283695647434525744643017918221203309882605987778690812130383708925179741646002876432052408967461895296976239749281860730298760937759346954306175934703764884337366236689458772022427946846620056873003780267982096113216491687628939904600593694313502728904203089236967438675203547112599857223754839821288453012715142458780980598359144794406778917728903096840808323851661355087279776579358750162214094520619921853030465820071894321364963506069887265099713476971173555872468533773586678890729227885220065284123202697920570684534068290636628516531376206858812207019692663975261558487851609358291747399084712656923464550348203828147062570025670197024698397860548933316640327358529512069974000068174764133123334938610373894603053322043718959282489467436277601589320919742354407970292673156280537080326900030235043124260882020500868320193654848454976075282602549228570431503970048114110575187689791150136222791441651372931394045633074720670937346957669302406779057417916682613724280459342844764174183328093858147653080949875578057951865008030747930496366644313317070558846114227722501154764061394816236300553425689905713695631175832044473142874381318974530031998234235286542221686541007649664513449138815217318001639270507260628481956941710930395386471964651878764426042056140716291908538806989282449336123209369934141991377783709311967261238618023355837198446050518421989003050018437549044673490704676817756752969976847755920079446160181838741199245862608676850761163790582213085979156040021792493748891374005143363666695060969401112628025810189740403362742242356943643582963322914359053355232969216585101360342849343854634077426287492179946602081094373352217314220642636027091082825555005936399022858992087405464075310588994072306615145090115317145717834628460735645029470618464809602489303725901212604579550132111882060858007082553457895531021314675251999243370745430472882142043874402165888405352885420699316908632746972872541186994164798684755288518364471252543285636733013857516570947234459778852938737926995891015645086440671956720881880172263777957773416513368176264194712369051843269875029721604301582218054034729353183568561965864904326206758091840862264353590317863495694598167018870854003484370918375992218126383661767192392174777656293136168176666778016765379483267082619713639014816672093552403210277389589474568858602651696033296410592351567432551971863434890035491011257097368278176112554327856991838638672194333709781557048448213195868645272417359350259181765158899410511137847386833105959316291127050881234381794556765113559023510763726367232549153848472150894289302743325919510926140945903229163983169322012025731795888517514062367364403424138537695209332900467274265264722643315961437080766988939464357539248497899574412057556564498540978180912767797090143945298643171626199015664283046195103430421424772274993687054218779643891156730994517101090714339546341863723206702599758463141900137407693697173490625912251086672976883648626779562226304583482498852055663105699308494311128890780264675249575685047682957149590394570403540793280562746789205598775079259399050731375669903807197765763724112736608148732327334476951258572965095946982098805447572478532467319987222791860870332477438848361886554116531737719808636613122626352103132269016562378407996201422393901776186610719229616468665524250458637808485013942886079266568138948767424375052501759998722511893448959656432605484126553489436545710938507155139850178429284168923859482124907483555444173351791827373213142170785659707111408336416874715442149098306107687703395100837507111198988591788938153953618415313219842085150214470985008449104482802474972109491807874503581970896480578567718670943585609211154420842828638124375100205594972526132029835546163825617819658102494034504242785649610821075668858747490937733894988533438742792500722642644915098603406517202128824600283076984573191880356487003577603947895368602357532170393583880858757150503285729123728762749621358085092124061981917594374806282296138848821559361222551685352181784905309136255615116399574202963613927208526259628238034359660522701370119812658813470589623957714234587825603174720844077356872923592242457224026039457735738284248763793922368002442002515486729189167820230462446924896017593388075092180325984422214318407693334951367012492580415125731670616016624670677500922695684690245998942675049965138310053969666023445656358773262849695508474342804449829666504170535997738268590634851700264562298557647845319092222230178398130502247872819511720466387740770644470844316877705377754810995756011335403775238012235795696659428611949330587486516383520388361812177979172586932093104491770091434179556802273813537081279675065619495368167458000405768643675299972320772250208743605463050019838695733803403355237428455909224314556237771796034737986707655296942288109994080158424740412668315327667526963365705794848228297795153827574163442743190707316789308388135461229768230203932342309384753833999588300600876674498468722208824815750239273158676284134944385376758154147652902390605997563763358577117057193034956156668643599270416719794028046120673491546701521614071167188906918002706357475394875257921201532252818550583870888118147308393259708929319585539567754437504316695741658651746156313958962910086033254578856974540297347144629972985323235399936922459941003094852784198138359041742857571940072451868003423592109455070330589364887447428375692810273547856191205599107482909291830103992020131924838824016359942682088742249784720108904427326664239011684184955645262204153607456765367095902411811472422718624253917168300356681328147009281938890044573572787762272808414609785271037560461229082872969784933157512918031382962654921136739953576785779093702279388951387191892762590265659429201162112348155145975368878602008240449844021753458506856541660013592656147521207551277042037934290930916056105021382099717794376056985454710743061510743500978833705175135038822324744423969312163855969372419251857752921831094920843889009227678292859361987333947081726082676064724186568015904414043794228398917004166875315682643034427317174900149794348099477674153188813952863402673372993958457446278070759664916812994859894270607797172960443836644561374385328322818974232671907325312382565934398782029944362312340866451277699223505562601354731386937779741899166631583050013078776931824253086369534746540714522497541553868266846265322148987043559102329177886419042092049724864363033518361839812785957702569836010213090123192594071597476269540809621060598715166702351790282110352928345490435219561639435584490977326468761662409791085363978333937333242401620924840616658615147419678649812346504466595767239218859801602246237043814993145497903264140985820099756735261968772440550713643829344793020603757019361308756621464637937395977932320428745015075956394599730834620907925880731364033989416484141645134868513588526980090988205680935407543615255330106742250514774860285360075818126668083332264000060830291472079313409976635727246468889253588763895072873580020252044885732075924580657358268082348009225119709950622087181028776215566241209260951804016150588469899255514483566326025402750991436036560163572910978209614928163139255943245739359992034786770803075763101119797017363523785068542674148460331114368510001383297642180795185682916964592012593913636107756286593174375183127433616747779188540511806875569919239091136772079909595766807125616674030838268632393673652390184473936016786026475615568824554296023354806859916988994226267327820311272562761571464376058341089924692793229119739525594958354053072806711789497836152089823038592782440019677748023236963040616436429616384896431837876030236622099605888477352349691280100898340745823749766619123877110368371836815332685384595174757997434448609747189810661408846711418797892544445702150106568903397122789422596669832048870630998648745793808660952774850110836504169752889889705208614610409665971867701237980275842690717785144734958139562896759857305577826062337817085303503660707111324808857542173860302624898685065033178584438827700326465209451942403671553657729829580621570726430718465803889409590331845524544115106708922274618299103063745924475891978495165737405987264386458706333237599539549943829318880869953944283235511815989408267432870666309433731607609959814569415896986898100211570568107109992904251787866752573692663999959900126902504558355832893623099241757971922425310973542470654613710761635344298355428537214760006491378840567046277937562442166439588845377081796235193987059570058729977640285942343850860114107663487675917807994328738767552466711292782208050074628302066934608125037381227889687199984641070410250105648888882005293111405632359579230042609799324457060876614427139321054866222257006890158466391111048348978713387875002211877435542111984260329230271115552839322750299602526542170682289573989634479988982494405803694889643273003139401258536238584416058806262671369320935640484502836851604927317485120461559942769744330006359896851659907845997525459004119042103816258385333992391452749549973401268693233920065845816697499735628179757350800331039267058401960711328736382973175327259426359876048373870956505273118996495194152726090364211498759355386100567686350397187698865995777275461642547075155264987832341770930679197785768530692760387440307779443275419234614714084098582793731587726489900868068024361871011339543823624420783167311527779889600665605438506550822429892100621127710262681014659348782522615458826987405034697607658935707245131259554470890445331581191732680932674048660134459191104013789430599667477463837544210574524438430199175058754022742244352574232755610284117116343537441023112938162440474029767225312596447048091281048132642592924700858133572550357776194963462812253112891823237779702595173828542759757332566195544662342985184206288858867097303394788341590680067285028469157583377519097817747082785417212247226706965927952659803238727412264908809435353179144175228237989154245007424847896148176699598592127144846059994475000258877488616380537414540917293264038651416449312800001526457484733964735519638604862871527565527716186419239439741293944049409020955114170721005745933865928836271366126466986386604021912964814904165142515454561160223653993212194205227909121809240185753028003021918571653823566738957674120911569143834694845184291820393189188077923342039071764712739333690132924603928423526043315246594969944862238795768701071935271201737051213203573259334963722659195258606189063673706634529471239229915550549670025150913362053433165782185203751467239111402720760760205548866520802775726004522353307572505869666621597295276745344330944972133477137121927312176991616491458611093093115828764190857368877714224283949480267387978797909791101264108535875377459660295918771034400140251022742352517815254847829941165270949984178033239478683388409069514202332821254882734602903563094864571069847025268741578344617372375778068058143970425530281407862795812648766400147420301825044048883449296371546873725732962994489819545642973976211336255580029175114399178016917932835518712526570574267512618356239758910584945088829441560284837119460382543688150232802639689709905053584723571580960634946066169824367094065330875372606343917278942355460881113284791488332574366254890450054324931382228702513008978151002669649431542964247667305216515976271903676680821828811569300526883987948134437487215249302852714488104492096586189538608649661572834174269872729172985514957390627685738139746266386124791892634097275046198444202279270915256609509152998749781941115153267939156878476187425673944618464845776130998852754027996069386956350810182412413768839656323176483153100126903828378719294495270456844764308335078505136675381213597738895246762123386513132721666307733060355057780882104390244728651540984944823373996023717934818225862567292445460341613258304076958068997840835649823963616889210082222379547270688160439253620103928875605990353314817846124020860685318355269117126063677776658405223159669616615884293562793492905233726915182904823852441202547832649042818243090333113938409784095079426085167731555919078207439086779857343324762782058199080786816377363411569727290907460309605355567168485104276762131341312286730251164319654206235553342355320148550887053100543139304795958369817526566608970573136487991595015484269311864119414142926998349187751321671514253455679233097924689899724868582272707934782372379890527471937874076887844522814825066830090722169149663629586189717603690436905170512657377927243424476948353348426188416227407532897697971807770705971810050161347748123207569288903044086748468397890783933135193270572886717184249385879627519039175749935258460940402891861994141548248234484311151220971428128702545490180139511376390253887550369451564075236437565073259355571957384871765859506940708504821871618951815401100254965178142246149734646027001962775412036879880890935843740699999228863217783905518015768956201386276684208975175131800893088272301556741642194019343473856718250232172680408042184378573621400481929800814960393275904094743121729434174031862106817989391417820147055284862855412060414656144774624332038862685305334039160411021706915817759195445511697960836726021224358176942303006927399541971461643099933676412977864633708883300232009767264913861782696899488248535814397124381666707991161259502367683070274559262481671885306509968286094406256229309708861222075612343698336535650235067063767328455351368646795133153928981855834159999017762678165385380096863247928875929300364179372640773486129244944085571199830894452263323204981171722686033179558289890812588818059704481102567535221457649938895445758948987330152699455136211594281163088193764425578420107199640993201838827618598765270971797322341183916546076420413773277267152404411875496828005742179297780414452313569895115366616739339871415123904650409418960971033844970169787754641508087268773244811090620985501283649991325227756582270857766380748440567906581388382236657261407215410353583993223751496312859220290476544547529759395806749195791148972711569983918886720140883892459334540378504461591745737640437067528643382680027542556404394849014012776423194356836659752986341609616611221444356955913615062137742572968320874783580701311561261613436055387628361663957901466342329140150484005142359684072158485571172173883103706914969654550820486586333812111331865131490162508348200302290122839619001581922865352171513049257638781319105126584286671137365993150472973207140299015640131855179218222594112776432611554268390262147026746017764724941055942012462773642389435069555623370214241850143071969925414295587156285005342804641083475550352038810447936698795835390876535976768089317739861902267985496347036699230033937183607701269837386979821151946208082385932665773221440113123485349219428561293234392541497687927081619151416448501493005286430238495832463300131924052354865383068638423587203834167623352439661142097167891743892055978088670082147263146700324574447063894453285382219341837088171487169724930510214099676593715521508568747393613911687823744929038029770122597690508154081704993183312410260443716759119325440216215168370933370965755404525605959651537181475314970372184249601040613770797661436655652210335944441786437166480751265637338774656753818710417571630491907662759000280108211804805811041222655750289805351993147933171909680032585006929601489205923504838468271736354063177158480416263781594831667246064465490424974717886593240107124541770709584306041358327782444641840275155622946012228252503221334885979861545899635610397270473537322875240411194221041152182661257826528796163448536941545522005644167550949011168804684171197328667991156916917597770572684695554750713849947977871635477483671384013561196752310096919387766600650168847241339328798677564559238103104338030827567129689267986724748443705220332664424907087032693105071451427516257164358522653648780328514447019328883953253117294032903531500604537356648233905063486719071526390586889183980054245482835809946512074852533234812807264926024471208232807008513583429837759068375577403396948483772029458463652542026118348365351051938894129625325452832743182143071270902466122283169562512296433328231099336557563071602749384454009404170029665639871953586271640544249644381931284036690143863280005782834810972211173220719238449343107488888670824353241122888670130039010763733997048572118617052615748026109709500903880060149872769280250711990286354253586175137262748176620862119546517114959358253295238986027008965521629457310359532739694014798277982143230137121398385130758161138364274748740900071498742377828475352084326702890969952842363359603597063418321476464701949143430753876778849582680315477083792562134180371286019135955277214557731771766563150769888687377388727188192586867792316070864763063360428459713963829096222809342045765420051998848749736680515268060150404390214840621659305767518509470625568814516680010442500170594809139110842050947487128900338550556372782254121646600438402095188325215645459315886103599971185796880357580669268912297069473675209172562697904040588262670543115556697369416090951942585877459084650917210733567469074108043168563738879826441582575057407520602862232931945948632481146025012239164573422238469727272632906780043944260769276971131493089421968788050378234014507314221837635217196275270461056090525919636282119843459899156763299169600109649305253047300880030254593575601414976117510378492133128249496736400640753832083202200306072472571050649745215054958139908362122572102131006739110606669180081611049108520605872225288625003226410133336007065660198713344585600703859933095326450983237260520445677587673893594608193506005739982734815601928716541731539979697871318689889919855518497608563039019966763749802139856672084995861918101237328303183946176880103166779321715514699160197676048185405820246681022521388178760426381960649503644517838910830782996445927931937211992576117129718326140231004696590333864976489562032726670347220288897219457393232026527162312368474044050509531186238294074327218858467860018053654098322342255434182454093402842600907891163762729559448934709519364990706041188198576699537899483590551542998469507008991057615645970770424090681236670391554666785873151038791784948253460422293211465859677718644474891902752670799122094280462952072150979778661768247195107032219323791512238088045992883546864926572713456955123402475501652378689278900456719011406953562383151252663409495729320068705192482272213308730827088777905015089959382084208143233131269077010783062796108853459380098357775276605101466770586472167092564018467489998347540348332258783394562617000944354752971660635368675721498381640599086247859074385591121745689664734807598202217572257990098797186896750122686924008856027233089353194310563935933409332153917018269913919556388928318586398908576345180600403186169848139953042001873132335049943984821996557002729628718635130127812664537504407090943144438472658468929452605743570397770413129165602914128772513499739009189383326496103857554416286415659693520511096210284466527062110887473876037167282885104529537843816488685472504086199286946663412016029900825972479654621431490008194293548914204055538186930338004298800812497732277787393352218878391616116997107591237280862769981077739169081503644401404140209660851288825550803810300866901083400060209874923224519538924764471340473069509689723297711718785782996994584177600173015884936670131227562226612484723932583316551903061657407610840745136424646302274039963284213758480410973287085889742719590123322610106805881922945609703854512424059086687363448085309183282222819096531168292438658619953016557740793980831869725920000363787771474533500810387106186150951848460895269249149650213465214120214967320307873310980620900143344112242881681907921040150324037443933606256449325713781707207539501369303983572818239407310316464075986735944131658708029191195180508824593753897518694514955519655055244984416073197583718304392195282147436121727654870968652671872210316268947325619567812539664950988518297554476917665060215282511886599092021798598727545542714204451580741994470697759689375717147268327311350393144854803287559401753227321494288876803861151001856945866676603374249382563273139484378655313442142624273476035990855552934584048593885525061941784690685802896128169585147185350505979520126057463460859191814561070131242217597637310441489015983949123128312607650429119173589472738720184702360190233561780846820074889373160064265363582344858901295748446605331121749921431055698107152655082739356221696321273840984766355102669877881384695216911166691233471600422572991114061417701996713360630305712817387571008842491493112163591017526794141405541243371589223717225916946398562047223953710288717526028464473032189620396562637397015672374767236565717166848839511050575223747138697846985234957511161526807137026723621536369335034611938779795129955933612716401120656853116561013059297151434661011662245543950267668806652253506051904538146930526750056569619391919971789315584913036657895692763752516672353095295640493489517115761508902923360596842420500876850268964746237366414764340113780643474953502409438528692219583068663529254925797957054626084277107142575530542563357513450771951172331009269459219600711625681998249950708320561582172053312372923064600999173597943994217366364846558634494325342876676370332434765711835529683769685019804056719172735295676563064211036544822432531044142337915250089832980699363693205412040790047227113739249398797664814571306348533624555963839357150735204486342885492939906710203253808658369359441321850521397812179908464038910404653368447661247461886526682965134373034242372556227072195193041746486610048981218922693875877681460479168714872053418607047269095480313075876878395487471927405365367404889909737106354970231165858339754748321951831204659687810711093160156727978749432581410585523221010697763549694297614274490807453684791686868547233114155514512097558568297064037111950001235405574652032852573595474711599022681837711463225780433364363140083879542759055640146224211400786789281085149687467589151202137947434626420372056160792347453193991981982957002792464228077925005877608583818092795186688726669058374245672713952341685421914141045704125266241659740594114882842308551956687709183471609764983155051982128024936555896211231999311266608861576373482512542961798713038315462104033506164317187621599020209874527571319858683064110026184702314913646427721371025725347111414258537057719466246807684325974022095278567213212894169311697017582635128341778377737221546479527212304801126240733445204957542910018332279701132696304082484452449261440688295885241609614972155671634546593958106422388355964981989499038118834574067381233732324227907844595830344040375842621932066257380539370160657094612345024710918732116408801727696112740155691590307732032754148832565731585334072699686463654205847905736720355752694896559407683367296331664569573418480816496276529652177033917080810028422323570667318832093262960022080806236031166125478395212219297744333023828156739114706626009388596847869099698253377941996080901158432615784138299652167092588291507683553450942557177565728940687304297745731317304708968427533746311064027813534034640031491306089321570862531571875882381931633546737843616452229754236831268310807927064641580782501307856564568006680912727448030929104827385189440424761024660591892279873491554018395263839523537266031255464629727312016373582493445253316178556058557270980400699811188885485689999078190819906135691633370206865340795454262704971776848753973559383347328000976929584453579982374263351268405956450338175533665135827653691023689308721502725922338210109665842100282926878861077552377086959649656861426315631191730125169776072086701155652839827155747373051490747631914624056420718264481810858789281886297423623791149709674313928779621834233399585655956331635605189642798969039510274004282847388543786046453394786389023886050220580053340361194046924402812664976676080190667930324110541014789999286975639583188569443489829609449387720639852024888759950503620452015053634621093492115431738888424621658143037755287397319130331141667700385083280328178028467106284329013218013525845747008699159280938930992105650656123753634730993127654743050473094076233065350803430594231007972192963257119541907145460021727882236676902443409546231213984307608542585438227615322346489995109665399441847423058172239615508393026463444743340229317668210579333205502238570729520085639389358895067007661495071449307019104653131661784852542025385818968533451902117736943803098605671378597483801232785598976859577038451581168386831896496240990612214273672759053679223349610752689606167347529114659305615112079470829784067321087796472095794690892423462302322331871488879895763301215344029406624794217547465991072771206039020037388745708595599672359262893325944853723276591869309794171676169630114870486489433512885897522242496206727106140430114347080490717520961895247332761779047742689805918180000762058746297542389175888027232032675322521609504017268922465505153005446734474782191524208765422931229196186122178694439301463480077931208309044539690729229749160638927715073266538374540755143956879143189442930787598932846766590058798487096152927593372549699331688640649250172004336887038448724396944812124210279148619229649447573796936176798209414389185608657402221822602784530551634141134634640618052586973126642205883633289327088651268175614436935557004048914779825282821845556895916697109295234644354187147841604188699609044788559148173638184558732443154663217841994958137659643405998319955796685381281567533777733032512499041022279789715546758247147720389836301381746913595371585210101942314317431343268912518917810179807128274686445010763247656346073566604983840049107130268995054081906102476004147802945615665266123098600704685226397281147342865128852250745393646005262974418154061822784120594921483324701940196827731279462505776380600476923470519943220146057411553023554995740118305729488159257762711291505185397861792744103330595944249453063190968356931249515257700851489769625763287274712559908634511630604546700328743032867717419361763659111858184799595001064700331106620986024086759992360429178554481187327772805333684388602607204824611201914631226905868996932178510272460989242620803552396030114450306681392593571433521832346320085709129826606302569768517128908714074994735144084038882741288419519635610653788068726685982856038541470742281733968162116066363407260539261513331279940167092786013190114828540638668468695663892769659439267996901259522201811628809272702507216946644852679812680880889444629723016778340377500830249773126204148201888563211210496742297026493659014905070119998405151195739008843470446228400535125886160840354777332045355175632446480753302305963689863096454879609180175578222293586835510520118913842636791168833920806144436018386335798673034575548408134281852202897637591151196857324309869013277869998424521964754515967136657766438627641979380473387574668469038555954032755495471346661175817484655812991038587408609759568637415039201647926098857444025861490548955458859102138633561282049174420526150008592917907331509810322764083495913802133358865287637475390947409516873163845247216023882526760183518671304954372943027340558350437067781688854782104778037700894360707791756407603825684389302393518532905136534746404510531072107171602717335313816147563443650040813076105828005323303660206436655623567715263703540480568461287952122618701870376453797900951726342090368363599567984612653033287284455484480701990694845313198475152002949404301992997853263026376503714842003703535427584662813113515458121033521797993641925053801119815227653274691764037474153587639231212508644344923910107286463626122752767063876540913974255322751692367409732997649184102513888786588399806710676945790398493997990849061517044689408917351165402468858030847707732099825587713208233483878023523154720031592813252614921995251059144731766855238271410715807901086430326355762663772053015373924178531466607075563210667513404080361293429848025124235692808868720785196058926144777300936807778879171084230031648986999197577918999104089163366081451946694625414991755267093388964464270628657366592824450006374612163389448838559530256398800552536071724802371946637648572593684334636131604350442116607517240380406087853356719669708208278044893317437637740482869135360110078604205826530922550638467565519764916728541298720807764058485666091183515107802309444827192364425821817258391988868577103528016007148398925474354189637944325928793684444373952691347781745611272008789652697024947079650793556549057840940252929868357371173517423906736017477625693428764513896962379211340215503790324097184134368963579236087554652708100997602881181268591277035772468006376574381707121859742003468075148550232605273597716821015512026658882584325665022957867511535449148539283716234597772906108716531156871906393002801167036276237805907036484665286071147559747816014380364960851044732017510848143747181063832755831076514406646143822294410881578769032479419344433596591846129482566951349189172738234392339730980165079970361391069009401297704024408953849564535622133433812036410417777836209847819930320614256193126089755906073837210698232587789246553505398770839942079728733520169724174374688525834217417308149668544881603777840641873377460237846375363605241988305188634423474204866303026660315472024687873563578599231788414428109242711650679473616962085174638490917852945738769126636440736036521623928708634295770322841506552675618594239822844941022433464194056526880997020829031976397536157335318024138682921917424586880536513997346616466259010218393215085682491283536432189350192832540651505930854539373128505432186302577572250228952714046663886529642777362122344391341415674672395998899561699477292742522640823675651056836186623352255731178338192934358784793387986666105577351926852817194877343763491649605616270305889551232120629110675563446465156040013041491471927955174655838848658504784516748046463462510366252801644233314212843602005162236070832397905627135709732482415091103324157650141143240363182323880333297739053569710528161264561154518048863370208986683080660422995977910195419157002161228617616360699985585066023214943178655360672730888289571391989761220272335856139046163894246923516751433677337072262467474109484858889893780283852179747815973585936321389639032416685290693287027596488846453987043425521630003849988765402529683901054370284487198471920062080176157001164438595884014630467228818116234700094650375290355107602051428814786857074358781514869449354268548170347658862913221463461494770693452023121553202242651804743482783747471251960829252590436021375845382964830082793085577307701330543621640297368729681613017471673561174295598910152971008578380951845983634118878280973164211130521986296246450745787220614106660262739120348969641236824136091349522499959223629390811429042366826359775111443497696418918435472124152166446119405178820314457897382590600947146061128605812476037283682801053412562133112485575757862627825933451207580497653677791278505593907123434534887753279617561255916298930295121684703151138505521029408322647037658353028855197162262977176786064221013787530040814694057565733777117931690241734473162291064264729512962255393486221145385744410172067552552666893110246755944092720997192279434386554909778166665764930950682156762270284065878360113480457885751830193282706774819262332349849376582941521186366354017769084837753845952352253207533236172528831418674962824032312523737773035503819076509647663031646240563293669822695560869409353206473793960846567179078817399040318429595465276305682031038800391964113619786854950306477548986207631197710707798409167809042580988225072975225887596245814517878719369216821991664543171147031994453659832849142408743783086467325720408707612808413076166555555243826943841708282254500812808228704245557422009689881269330527963914269836209312737716677122137350057508822587671587285838913831164556145790332797224816135978337530517079575463792728986950085812798302323897740751768186790720772697755004024508496048232616234365576938142960753550601433704729384661074353473251899353408736018888959627014843119545165835881081200748322824240829115913717453996002797278945701598015728892055996589763561066953606373089052177585054895549562863710619502215321457073260723978574926948368477479198781008124594355957493352459696934271184039165303779460821671108871521746296000704747997098150142103650783747832639867987109489468801188683931315012573556170920645518269224899667177865231995727624990353246498727534462573834093068001749621154741350962121783610485746046766017685986782044353455023182223149833173637692198237989040374952646619441568979001252750300157342615574133032367385932408861153540573758781722421892697457616751404266300316479737731465927806457157642270944761407415284795697400725654123358741920434424454624479194873893549846726022102176345080616938833380707628008600151867850362791697921270328415314972211176915261097147822843997812371030319599496993134303463456824673236690420196238055008405986351759130729981803240463437750561908149540690305849040985987142102311421178048634273553283514750493819590438236461576429620931760155096673101230237779578556204786491677431033104586746434823519605889671761440186828569340998187062378322901996234508566508960008720452028756102834940672523845440124560896086723183939715537880639573283948955587125604377462073193679745121428168705586994832913177663409294152360829292242233396807811846466803706905187698345401781373419660898574913274325069347473490235265464758256714625760301730235857718856178831554063645372105639117873726127836104831963535667828356347634443747752713099364784491566947866340930607043263971449252499186738448242223122453774578255962557980504449040702645124501124719416029314277499945879442199735844864662611135242134588700056438098335312836757036494198235469443268245129384479554198217989357950259726202998865109897518038765970571369908069679194083101207813465356614257991944498714122988668438967950249128248062336587580895688123900624619838016080102888460205743963980649451233790820707411407553558632081375545840655374611251423598855812765400006593654198375745158260291517904923998263249840330738723204350019798418521135772789921379297973307418921602247962627515404197649985447914959223486667593175957283173994961924289566052026627117131254315336895658069363713412642398654877592966054121251165548566052049920306916537362624573368778360111183774141581640063833095749495884934481003971452931700552259875158682486123302636236941420278131528634608290465430857350724620976423754180332132959869934129816706515419580917696464054803859790068927065434284386711758831386548674215648623004977274428556412240873998919463770366409324143988857875459811146924555500226829899813037856007619269687684424304616468663377566940735072858478011186871095321182597362942602090251190656831062259962894067636305128967863338948063734736626680933883020504196475683877295871564901808591113989612153037818689093252490180868573485504223631763010927605650624116313119437559468808760523262129497221048520485493485196513191581621591212090449094143409208273480580428255056702239544359254981249865801382535673248193003202363749486074261952371363551155502619371061975665214125862736889140701399119067508529328645226054542912300156431221549264534919831940816085642166991406805156672726441812999282930162833792785015218501000327120127863937434153301484868139169344297727555085230608018970626087490409281973457871004619802456743189164795574162698494598527347900848791938321750580324501136495637568010076207543974270724258461519851152248987568007797060423875045761265656948436953969682159991072396598718164555053606588095419603121565141557570998413076596571084136097949939051005289693426553308990473322068567356198855986544425391643796692867054605165506039260991230258184280988108118231571128065376548665280404410940088757476898427824694846627382122413658525290543463505671758115650815037656957082989828281500482799139031511542489979861444620358547031714449161113901264371715010091702810471319300561380110830870952690519528145045665619275519609398154680080919566644690904376850294860138826384333855606932694249661859048960156501711296902318395582209534399956097255102724188251999759917990916359431564396110259509602588569135322692507518468132557817887872920078248524892817306523322919322743665643772117093892423727054308794471614345288372148168990600874483038945938887848924202814886420286391779158601598384660457085607591237912000009752236470222907424148624789520269215738815969862941964438434852939333250750053946703948855251898005373139190759224345341368573069163588080477201372779776718439210155369316966227993917085201525797988190698321657043387967349833928586439686032491598661454969607676848187460699163887646998780910856156226002232969167991305109341701152849549600339983502987145983323256343809336060660629656449999188243916302623236088434562235479238450254697324575459347916839346431844308578344722107415933973806186387121767965614580217556643321393492298689666632455911181823806798019135634009569730777070968983839376212212519029281469270754690953695428248771675324860211036539297453698353337088313176735666538393950352066267316360140829505692818720572499560675436530738533285920818302252200668160200596011338764350913427439521700883922777021465430522439258118371632080394138458844421212985995246988298651730510041438769444568610371105406956683921109103781764249676964905152632836970063317975404635407303097588773795307467052943059416814889154056161990958841427135387887109678915349911445152636472236085471819688702548434179371282256432249691307263641505198294662058089171728997388081933209855153060262510922621117226675882057810332060983195822849899564931329139586300073258146939434906161996495712089624416775356958022045751646213208663478603282211396490391927257202059753478237655815996546518139067924590015253899854605931097812356925208232971796681840446830151340901594381783400685655230284455348364653061654897625925658793171897548430194433953338479701951005303856176365680304551296158728521752440676054689814885980933519609163361593196600583785551151342277122626512898978663652465959650582265827231277023045898715491175923983867399743082561737183592060257044981989111710384517340086603829646304296147152490939403149282701479061781354968334741853082156424155956456132729108806298002236102748664804098933316560097487545161299349740215441274077689939211663764110711584575816743596022671182933450867140077197083517204174033486735048403090725514896887554508316734581998008370589520118372121575237770994046599912327234757653692508427725416854824140608058818681529022675223014445157859851061167929783727892435245035903880376923440761705602199839951594959663840771159709772254991647213552187728259967869153322721669588197858911057999999362461887346016311395057341473857611443488281271901700477357765396863220872482740645481145660675609227045245992112378218551968335407848074837107317530261528783029817129105876681146410804027021702572408767935610919290048280132991820521475859373840462053346367017199367404715098327638354868919277277196336132773345269479351957516493979906198041419419570896723027084490309479809388491542836277481541121689204965955756875009234559333335787893986051298498322152718553739103148232941653560352899341613298726793816701471701078535248173778510547234485584502162838207879778092702990994348259176043377261456282757264794954230401780830488441106882743035490158274430961320877215542279642469337797905209409427209557733197498048308869511617884288069760528834897223146536169081519701920983399111784132060960035267010597441456320888408423071197506449127187944180687241936619718255951585036857590454741266934592615908691782251991555569583547060521651377858157294246869255794644873222023581552909192387733210599010724569528465894940555749981067912109456102847395214444029980103108013513962146536196150022774562257324380300734885448919276560633987388712618572253860044473072574476479670322001372829819820553996509610493400988875583038456579155319416317331134049729943881104421558485849904354128560378470920580454159041942827165502020012978652157554113914632236936609885529545047287757858318178740018440007308143748921660893173887370041976249763254923679189970802191064219675707040415719890500573805819027713807548714911886762645482743656999559565292200219905000231632360667144764856922475222839134014499960758732339061252757872315406045860867375916105652130045952814358437686961196951610730962490567111998517668710609899179523166345394758839782933088672964193207435306014989683706176712610730632733738423535973437531201295311153098839693330664972134923928832569778161661492651449301589718558158468812503218005505617553948110174139316357264129189717973552711691763334460048752206100938191867122763178518772313383208594073009150956988521978203711379252669333694262328059071525495519778133515099271332227678106748248524674511938600605169858113464374101796640185680480535338244513459755116707789932620920632638414442818418994304755649735495590561976182777578896836587791713141841171221619501337571395730822803132060420258081085448167421020130994760596783584523527140872818020363388276459120794330569886414362498559063717904116926636912982166772439356758596584275217590575007017941794996196359392941795570180940530891688681737072508149614027506902298107537682665145821470145797813720123782436722513783786551563539886446882914459566511260180959484247661850962765409222380261086750146078678644465696128712797614198763748542217042202196851451434741897781663718240022841809685422189597837294736989718646842558874774599886500569289505565768668916520600653871399682381130116449316485007789167380059056610913869667885797909914621932510392746671109566915463717416338175603206314132149015261348924145434855104961882277735088636480259387347251066865080602662360483247424499105338955209892354260074936827096545120879077192613779842176016145945209374297286640132807912890538708207283442315907171474318671905196471012375765941825824234305364356505347395322451021005097764802572243758827846966202784553438894970692789490219400593858874810048865879611243247182143506917510045401210966210053230460046451296529402390617522363087351192224920220205274351306977204644938339787181007971804595858961778564956266366779075296409922152345898959499221217923046298226270483270131429280582524185470713875689659767571718670740153138012768528687041902762853349274943909513896308279485213344864251408216897328268175458470564453239369921064433992643159812606061064789352951940769490277934428952634355297542703773056307880585935427252210283159963118657203390818953155935458491449693566042200202341652225906593134665561040125889602482089011604512531753710948963650045699644628776936604426046644546697476367290912202397979890805861569878320798117281109162305993269951320279549271717664828855532940717095236012477911583348103720977153894119472823929722456453215107595760726579817324932394513031031549136004482316847888294478654806022670662347389743920733122459790870221041431924622219528268350871743565151559962951427086330047330188173408995265779080818348778756681294346552610764312245440709595285183373511156886157581280189094240575049504268509148392558824056451865718624527363811023621955626972033896668136696993284454005677838073247145084208477398460577499856577521222616657913207316443147533384277771815139305837307583647089239311005565745992755426727738953871555050146040699113755088601804268671547338151701199746460119950120390938422240480918440443107176632562320040450039429005497554263925307908256159758717303866573053933079375469699847289094122816277328787600549293922489471625363041897090665865495095496689057645508279610083217570559635120702895743000744580949443049299601347062667457262739681712903462480491540904073224459038280082002651569055325602967262346440252429218998971178671857701873526639688572160479188666764750562495224840730703163048750249356319815993162661292170490806781114371034524936791766924684799125153897925806824174233398226547731399425670916666604139304905107287471072895581035607912096549205328583473937553184388654735640858009114115131001386618489713132756811163033116488460794172476150693265277734496224718177358813943295962335825387307066136195957577659980251316222159384781580171812127300029798815211160991934728902226194995222934745095991775785500051856525141077075100427577351138437131973737409339930307693589351729089516102248260316940994155716661354503741970583249148696733369966872623775230393642023927493658199753352011948508798991775438433857792586419992118668410506661325454732672217476952994391607912570139132908091699723015313097907407701926603756415215667727061851150305623349010714926566562491000666627712878162522116873480201373236369835698095861200193179903042554913729387410464196735275300654453276947392045422062121737457569193489790639877779187947518659394829155307247101248867279466806112832924401405996734797766416896431376445007189185539958442515018168477535146954616286744049290697935465821544720002581760142324662902058891076955535556982782760252852217320707723746123919371549864437092505395823162370766512141680169284883718443311707371567922570100214495205924020337706875483502268900246049058944878729082243700879288202358231647019751844259915930659089617831004214771587421886420788165889398184114974186481288670002084596047009859359033806330036232475529715824066093458642814275842197127376882754654165542874404010665446619935403509575471809740022883368642559611915492097100339039194268024853449772382487783099830508496366453280464669996725631211729582296002714224075402779643182116813677820427905927904967961066035584799711254319423986524132813556331869221934292885229109185705933932152770539437318262662334135820467442246507807319916347295569217282180959780803683222235489198204673438598408168604836352441212010720211307190821257185601281587624135706906087517973157548876084892875341506907413550780598880530543842198676899048772837268656642905240869671328152519808927649083911513867838920586389210108696689619235711563011648781229952064228727712268319069165491647329090975976256307391386623178575513302114394327384852630181244061005262578563427802453393867240496673361538268230286833671410416947569566484613242804463051964268219495899346469772944476668843346497235903075548074559745807547470722780877354991473952345303350919769634963400922948299077521071996056778446195118336264345819851864477705109326858374581957554637040698819229701594812092025054285906771081386415826191072561247788028534267720236325283644666260654355255274280666654693025104342847826355017887885520758754844781096355338204854103353046974360575752113809706093993651844964095152248074628877828093905227217929188998988807405759244893776932090464341802706967170316462132794029636675426782898987178472021466135153110497016910554048738305996991277704552246048973543073282012975939290775030303863645478429356572470134592381701963016603142339219906999464778542999651247546072055982956536537658880117519342285076436611430894329876200338182188205631358196057850913475104519836414945316025250427969480776508979116229402323763018585750098915475671752060050794596375376936793085479753807426369510164285970608064353898295087735637467093094825000740922449959062932678417102736587076239908658262294309625946569969343637801839891607876841249634050471520410937071206545803983985496747866249849681648875262684359533186441518154090619122234506342103389159907125109168327763026651929792009762662202516998067755646723115528428215577085586762278192443469931487407220412018492487698773469055319047328634029422336009544293802907221675738204252839785113485504643276945098253160196086322858131922185729268132117775631174384605734765487401123058613184078970528886065751575552906090436449164914515305817204756517382421616600422964693538575430922161306087260712611290640674288787297141896540576403085686109724881284525697399591042131672827900333811759278089005466322985982397882876238815448050670657479749990889707033602919408716123794212878207134232425766829673328148380495524913415321516691434425026673541853372944159483566002765952400111079668362094898101481639720552612701623330957294851718135923918340916904816144900352695625402189658667163225252648993328995132959982866829083376872547362978112347278004584097726444750312916443282533006595048154818653409480900418795592982992451271654063310079839175751655073424795488088706597433400478538719332114739321272677669442346162527373331349486422681511237587549262361488637107478032036678966853683820918693289968435167304340289371547386146139483901305819530073205229104996541914898886987825784218911246850350195226060434045523490807770166708728205267675699810456885466064659159684037744385362309124712612308809602829768560438048753064695147968748546788909514314480832670085840212282476790151394082840675358514918064105668867718771550915228825324542800113153313324831803330743459672083719032094243767583584731172312256519861382413007481823118769967451988503912759368134539532071862697460750764370559667621349809182915006883472116441042994747320991252017801163962291680641788721428844264206395599809048778277164440424068761393488797660066115798685585018725670046172176660028943758185212047961518886049023677926903395179083131892041589751262459199205197158255949607402316099089603037150286411384199832197606412647184990026308150947476489430340957474513649797245329507150487388744577694840529448243572374612107423242450148040090716076356709178403676076725257352070320440025355248079564354043271711883396243937019920377086072634427620035688299466376055465248839953265020391717530197569768447259554230851443354907027988081132931236558911846791392021841689097481882028402228713779001033427017354897748852289553711364009317263310503159597234147998813731445739638946019473737823602337086757169049831464721771433982420079939499688831682147835191016882111689352294454430074609875082675300640901979414309860063437280476497814324332316029454330462155563340013120737282221299699592232293557099261811670416041155994332839744741052150941275233081338133493909053441058309369432573047641863815100916397257716136559432945746276708620113846010126514084488833097331328195818956513722693045357533490267545631448646521394373800274188833273103786355309142712431310714037838917736901570422891172070774146763870694100036222378716637122788152900561821250601088663337721622754756538270162567928229193648506224260540534246923349400357564557424359847899137328869063740873819959397460712448097032163365118403954809383327004617244013266501713883053364988961619722121735298921384243843573580405993840728682103318335804934484832422902449100350399287554476115745322886086057360617038993414286116611409587932045633561141269083058474369027555875519019462764018480615617443287254896923369530173251833834302623944079819831877005931264202105299686963881144174712187317791511661119478240685934904540009243573453269639009145225118516292068173185163980907212979220210439198822885035596358584707463925517943953315330705697201735933974194917906891125907350453853500868281013503781430866512806526911273266517346053475925331389407984617803437081949591214986038243861230752942431534330815690699247988485318439240753275915587186882890595078810228583538244141136452931503407472180325039919597294301550948196298034629847945015612781034127894462250056796605789140605371745409339193644452557660626179063756913257846515170135277048275158370426814810239095868421366195326718158020595744050636374998646643150396217755577883960054926864939088009916970994192144651546584429016855309319525422756094280769515871669808233773989336848150395631109959116187429991386832319227441979262037369631875913426923020758971778525098991485565757761190009544671472233953272196624219516845962741063624668972592104165631347442727495429535695967294777256184109207814107363570118002960918732298299898709952606073949245149556706988043198952363437857925714712807953046602564326327673233498826332033536968505703147782362698978204736074621279192350050016409660440248946033952948089460162241413993257482724158960100473050656153790159234301201540812693121773116437452926810668990116271381582025055949942914256818959204234770251530980604138651251735986826272188058912611725371613051782021795751406545514072385218864298803133355736989441808882831823719300054179461350533964973688524733752943031611378833974402800338739051932614948020365276731544298823122330454582607974427086135631305521327496234565921204205518509731599839280372898923705694858924925943929604671278154136575591093139912926038333380665870220907603218619371919742392541724732647848388733002685466009587031065373255259778686219571702779188188223490574815456991276326785015665141594208613659809608161553270399202847775683104991004589246615931770693108647616376349860454038709276765641272740132985438804633697770668176199596753503211869340013541521799197027701026625013124012125483106953533152333610375966297900778646694038344054520110770129320831406733221227334427001560721461129255405878762770236949692923256207886875013342932165550865980186883305299516952064498877053598312515097284686874393948643763408494765606459442278211986244507715765738726511348808416728382370552248682385982140709319230509453611857163903593434986886388306164996694481109687492233287899383025325244968372094139592531519426846262288722926175481780389437021711737186303196682285403269734659548380145968999218499084308425698289127302821451647465785122094841299124841863095769006801885219213997881809635185473393239538527178540577773345101618363620737708532536038616891550964758272175160908685741924762783308746320189262422619291286715906294898356164544922830928316651195707326712684267426648019332788696503238397721628391077182221995420531282092793582632971312067630988500106138950354641898697697146327847241835006685308430493416702049708868210253139735910211654438768033560853924664724725654389391631978844302338529726019185999258510171835466008354004614345296570341177225373768071731078818812219299789464335690656895388432463928988823230648041765124860191573005592193876748915653367679717487599792261620803806335068729306800848033286563293583231284476828659671958396820350178308568973834765195203518288820551348792578953686554747753064916843267894745293150871298977751184843504475297423457371847031615775536528529300604130026588806048698566837563730934887963400182344675705162515411332280365501575171827768992498822791358356085011366513085741310725869577912533442871381733196859179088249674944934496923766361195638308945224853142482442241985420400038373215446758126739310992287646513066309449823023171176681155868775308630125250983704675996357404638237652180910193638792552399455718962008093212274774760294162790065321121171409599640600892038989944125263802072116972717476933736484277564960936558887338654123986107999001887158475305351796769629609764383483894795007483988201188981699824053828680595265909091523633041820597631689989930896824998755248668298506242888571438290994023192969193081650159166551337347881759247810036537819531660703183301220594619719662830091077681915210837938495740983038038196859250674675420989238251518684628649450304301049302803995832069503358134358749881163555571803631155888303520518759322722826449379017620284867235136080548120728008525005397907665292378254054192994022192082751949186569420603069285784791822376613609738827952804754411906673647715601957148175071533348272324775078941772215050020305119346283603162095354843571056423945777989771613664744022972726410884319471706335613644390087382486116807686650138352604464566072529026031745041627629520332736310277469749358986764771703432151122714200597051619682154392379765137327147773134265301339521780796729028349750145017366250443785361697041948829274211492334655369393983304531694040975853878828204091744043032157411593383635806597441117767483974348608393109021011432639520147619872382200866863657701359674487675318461037464200529340479638078750299154985958647294792845018518906685690601279934661599911028113512670945124272921362243911003743117829767842970758170519936170492838131249623162921852070733981804735155441594114029578833588550847671867259493923488397316823980174370726236944075239386744841484254713518408211804898492946519694457345615618079651438052894326809880363427391802766841709512854749452050787822360559317271848789450527401879845774972630490177716713839494958504842572767488199098851629792096504126570755918144891115272214472891991947777871514903419351845675748089216615620636178494294751169272445201213380583940645680822446028911043901922263047879209653524434635605189011135852551787689170775970170487970639976100673535082117367526649595126283914467598023697046367357335581355867850105769076723644387557224670879366701663668782370587317966561273918154535012319954318209461790423836700074949294207261652752688249625655234500174822352443102985500950401118308473559300176180232352895735097776667499025951652707476925637523382186619302407132910738339552045602507884004830380886218184888765765696307007338260196109152982963554214796533316002191146571672662667914189243907942328023067286476860081948083040684857525998329427836058431579676066362483073571683608075175416985065838669269197209315690208425444046160799889888258531088388655004094383088440718056671086987312957915459962075007248551022319212324096862900794902570417795167652543620978562142565804134158359986106983463597133517131515004789349021889999557878584160393503611205917301485786346786223747311836796920704300970192648720409350031219622302577050474137134154501180693512147744641924844265783564066097898653853356055651735041440922103486059302878488199965405975704557745644313388879158593122826131379812612313826974823288399428669846958134285970668047776051917732568509678570171538868482079911799079917614299476738267490755618346824877958154421976383593245064650853566779944864250564462529987490846869465516918385274276164717719288970461873552288565690754989615411386275159239174863580749897916391075078732492099450008933049173411623297915382192423648724943151100042849429022916617099043813891905645481235705177184536290098159654000111673354217043160613645749499275433936495027354334731094726704593777572994399271295861634096665045724119868412563959602301679311428758957176299901262640630354671271802289180938817112268931460386784737343851585171455574620937969108738580103656180465652520400583554700774188393747494435126651546246298895904510439345622235583602664325356957172569089492211494964440946176846136309045843530465863342291233345106572183337159365631101644920459619773866629586080490521511830381876496272028935252549180900270250653526263320991812874994559434905155920898400671645489888411162063712030759935341322582848925815806056852507466336231192612334059986798074944534488274321118323488867204564571599313022432632904399990372032203035786504644648558172215405159739412264640184848021565844754306777640514855388449724279558811630686903667191802232517201743298392368897287563455924765229959063535709686169144233745121923183556232646156905313974726020490013166168885443683601411300078513542630810221579879929555975979843679529015640628461511267115915510904173370944506311917030028628321318900674272907411930624610981308895029403511890648394607887609243255333276564050421090827114338199071916523736117597600198481219459246636394232903953252086126287528408886654367169363494004318944380046653028351284138404163242238877148066350027808846504689958754765998389479071916141548413839887207983975695150779508117885001226804630617361227203977867538455546815917439757679551725959945671225029005033147340052230946774894066498407055987665150395486226951798401443521523274389405857231366511564450898591632224247288370850833754367567523851955598560979626521356466108030473544557997160116682721308353566348098154904345331158534199251675986936744349090448217542560466006160659609013548094950199839279666186226711990931061247631919012045318655784753218850645624432238039191186761630040422950184573639370193391517052430747871567041338427139406062336822853548077656439318596397027407628691796519473886353316194878078858559645853296966512508835615558424885095863649169090300707859504203169893598106533370419108909461689826071529638133638109712212353871364003685446018752077411626173183839354604235145028336491941460052075902789329706034530927037130647933982254471549726402648806470940203529024746774110812524921326725385507771669666978581182032181415117513369788698135267549735146882723175008022267630551258797018547234788482402605548386739186126372968310932588155241878557149604410254900223581905031065355987494474712350084576707943918950397703229356520361854076315375837912152568421099897994846288767023167296744478994361685173880531089234478876199139693134485860273633654102975029424865163787823908983896997617694762516512617659417185855546138264687866717976206484543413799671365594415990471187155501509129180502522133114244916670258361969577687061402574510798768331272039192783088356013215854746915870879673248243630345194071125489562059114749002489474613923583388685371032702859119481965568126195087616166444118619028281781529664126605965445099743298673560432699446905151792034277626845814717277258057202851528016417077436261769976532172320946925457242107620397362864776865473619860217281939863787178281812548456120360161262926882180649585192540058978100685830736753506887243500835617300772264054637650372984056694276239046811777096000320806242475662766355240753246980868554454724224519882444792651425259467431507609526514724814325985294852186034001735080905485729692685770432554785064928912161610480952782252675054512181427549068668144586327582981837089953238516442642752972744918247199160114048204768584808080524446544589789561015667371666842497120188135143163890993846247342388835767189584933638540714396395007367841910991814277223869522562673679761139760634508610966713362087910087117702555514989066177453151909894533122716235167815072269101192906761162227426705694885078959949257774578276053976174457878376831069179461319081799704158984093437016148082367045911092679673546219920002283550902045502362246872486262633933812681374757988646799735680492535078971095557665602629014133452857097431315903916788740280347629826439423157485035312633940923789098784431150180946922706630977914188724749619035236436397472308287508485816588769898291668729165881933776657178696548362293988172172732174571074386812200896955337465696893069561420041429053198922177416200639431297709138865339457542664444301574711052764156253947528924992720874388948866257268180944762526511852000113247045140733426818515958603370633593686558249693129363550941441490929214133106663074295768526814826214370590248378945822324777796132025796282534729476764931417928728151448302785187170136017644849664805373814523038478289026872718033545247467199041131159291220939408225284029209530575261214870147938871261931794949149060994152845742731357856779631764732127466873407071157163143526364974251297831216453519638927725523797840950398503602482128065151573026528041082573664392802156832937898520301656719089084637804816898432064567468694374924295323711604947710833382093425486277281857997091541204115828934651768834438102802265939252340458443196072155271502424479242410826216148826729735964455378563386789119210475677901324559715802766404859335914714356683533424006406025197277191828122083350805055174300373319882810957593976119201902150920619727940256561637287243096070216548161800465239107218705281093679072179249956000480835567565920582643997242129682144489779937961309954076604933394425835217249507758899107070299580276518985330486456777051218302202912419427889739425605704465570885490885162884874646550795283457479191852504038467757808370257561392481117223108328326195323957244235772449473504259374081663715606592033077825812963229689268663401609624758648242800532201586982686472776363405619317503421971911834212080538109342900307026239286244991490658489923058195890892827549308721941846539194228022024062750678982153570853287586265509042793629277603324611059761615345575828798495485862643006136830073325246581518203450561720601039953300758028186102039557857089478740612069227389300649169545800798947291746091360996114513654633815229757044152951544312969822332916855125102756700641468582649205974659444449326303695908977619914548407754687873435564848733245481011944248263013179294346287869086103010198053849399095478178380979403951471385201920626516367284445525929449729168369572384423166822735401583083411328882371377725204350560190936433189380016853323949282023512474876950344438674375048907116334563251343959527610202960046422496705875918472761848868425306511009084250829174670117192014478429580611320389498737701604351607283063028327593810604981143518630518595613924336983198621492506439541557363371363355746499283223663175651866559066462462798820603017860918666920210615521236011952508196838226351834387532015605343193687611229079938602341030558622879902191302454018461510011501072774190180304888163147461105531212394226035286205195169080482548750120710943152575599927366440627070754451042258559921032850731886932678088579970675437092269046338872329690036969941088644078331022385572886619182929682642057754409500711771877795157625244810790315745470237009020346639301172340997476210516887882530295624870537781821281862203439550059948374584782432599170283726531384957173731086806436866479946610305647896201385043326842755271112773464823857150844545168734704348191509330506748171975312177398277439652301776605785840056087359829338382017945454210441828811092587603613433275922652431256030769173147961405682465122700475256711849294839529393020330547985414501126144565986447018243902478927479651779568813716605804846557281469850439493061865775825011781020066909793164177425795691425874729560527430490482854665536412478201385939165736684367640534447027310918638584591130180174678531530317989826543180445176820588292193800995573579462529186339776851840039043096746186964437246078755994827977155104859124143432873842562284198637393612324293945485423383134806180293510976762582179526365899035284541739739009381614992343030698043444286284522386582931961372598170285032881402956043731654123610970063034994371975319762204346937397699691676954035820444724616783966253744740719107924715937253570079182350525757422352354051390244344963482765713557145257110105577147226992412087940074055988071995397584868128088448792036625211349326119513377539133778445556363224267319664868170058636259673015119985893057105741917372951339966066114600523192853075480668618845769290998070176337373213872153321453331226753869574161280435623928519210697446025076384011871638786305497385459017442129545915216594966332072846446330493422107150737846371728399064959358089014205323225814743013925059518437936086967996982123738330026281254597580271000258343023562923776691739843148419916949675471660039610527935043549703702913098661112065368598401928816466474940270873561809089497711764888726411857808389183709332389639699832068430198823719239375026259268646732132943544893913233604771276730070926874795315528447689248086688917378752715217792890780313354106520593744357942083655715662871108654091028663326041750295728665390376659231027421894166779551473024038145754200928450526879643581561769254652423967335524464108187319091655361952607009575917617580374495042773839737000242624776704455948739645220891943407755352980644759645764515861794338534431341343368337140637406019162925054834592684075436104373655158920010793985369449497662914578227091943387677616446744010593332114588591367691412671525660465660593839263825557374992190018090566263221387916387899612423189580007685563839454572401107909708220224845615390166239741433726609546701272040324757391887876285158432540630047439700935065804713692998791549800800586246118607826159852661916902481654890171669663934765258866487636793195283897915882306171168116022015430087648493193530620180498547692769426572270927116928401104351442878301791082536735134213887986682149005285522266155974397440638677527895701005851988154927173959066909888834571879607707759661158494326781456897199326546487618972307184375987693183722245031833255357124313924805885974735483136892109212563122643243425440739695402179323108665797119930879272076926864278923814860755635356952135448478300059212546674343566399047897930641898214520385790590790035373016468892382341172627620601570152031849730530470003477715891552715503245042648719724339774398720830954203549709431749810653312701313286395069502143628580299585918874885652638850547993407067656137262827504907208385270212069610635038136849493546839116689936727452985988736049474963959732150653867835291889260681960682584038866540576118279371004083571733735209084011249211288960975891620259264157873935758629006421469298866105928586807295488623746121885989734906690675944209279259568441079738264059259966182657838322453569207300216752662282429374358762181580119531068282770788353173470875195854103830389489652604594099066746065914576761771414363638461012574650569854293372903065650020763562545939974572623610423921461369710756530615265166145153511248949313313124056670206904241959264067098213224455099626192653162416243912485983590658635042032467004743219309379252051180718694832014130633251619145840427814660461660154413155632772858834437316181442949554564437644559837225288405829672279967744630110678928843892106190499981935900748816052160119802967521131029628657217313044082012570883701402425523450324915997583663719257821365134489849683890105519052246943621699593404564655906463165993308127395095752627298225708835973799048214634360440548734942347002004803303518521723220800924361958639460281228587208003072970596035837024080214443232490430792572779880735251401951415997076640264021832675167009623989447065688686238170267070688404486237529210020456803799168043052884914516276156298536554176780727594377023370289011049626084351530610518351166000226768670622156227228531463257131144393185875836303410306938025267435587896200405040581774547632788640908080028749616848783403347496794462106162867641670187557724649080432684206842390984547377692994237366258577878502849819935523442399609778709797615553447887649040602363016117186817920353962700526486214178903272494572931476238487478127051206806282032595598921090935354237686872211878444264235095923107365241801818767645815719530516597241755538609390998921639491417991969171861076866837620003222462519564262609455926452542939451155524990589918471360061623145465900450963779298526744618027305952044899079106908805442719242226645798711870918582322594584978344262756152537226333167309205658073919905147962867980903554968464450378406572770660110697957679641421785730269675844895516707762736987842910135894358059439965922015780774970006728061646193756081000014826188571309686760602430277673931855370854144126711427256822462341445750102653922005399196691463250961684691042314715617881864577734124325268765206286040584019361413424973216883261955104476069432565660776888437971455766343448422885485550728377331871676239695067387925621382851665399525080863876617512116087212853407014951800824838591462135729262732648561617591002767670005335286211311532741919595161435702333812962477531494757361364215585370631467769954456421321445913019990703852403298494506915541286375578913763487777443580049601955374646693757591867634866694751966219412362679098548171630754909968843485735427697489293094517897859246980215244846285558322196388400363272448936857826356070828519773044212456802124868064142664727048341935214455954104515100688012102959091361314370868313743401889730113406854425700382827476720044393011868827479968251553962919408190957602217830707443070866789832828466097596611084400321165732862626723956965172986703439179979222694847858718203572921319626370908069895944805545648605080138819777124290164644017238056156208127847018043045485956266268066106967412075375378485184548613481949081703687471141295952185019166301618191622654332381616454393757626991687035095768790333401474495135994851374809023603823896724117546902586641398719440278101850704213842398842950988958811304572964570414309255056166051373048938430228591015458678371615529441821340436099553266819666849753342507622192317832397102669920982628721352118473580304923871885790089599476993665770970766099539360222233434531633092919459080880167208401787799163788202349313520668076129373881016125157107740209970386436810896791026500660186225331596040268768902790186228721217151543236310512422164532640062749907139006948281593603718235682882062386218831356201586645411610771023392052476352373364492694545331647578481363602392823442600141367806137445091357763624605648189188782056553051969520368797277097936776814855398176636026050253162443740234982763013565237211796751332471197149931087799731272706891865289161694984492188694862234072853435960881380296433254444683011462469474679470380634512198687703074364533216210700674824463186551886582577288156310420817677591688103060335355134036896009017187111499870218769477980050207115869696947438473296563078750509799345848368559605345442119836851669868244992124090521196876169209271621752981211303845955037744167858772857161671447929446685447210383522190135257594576856339579968114970816489900092038409669319758966495076143895359118179221303424311411968324032220560797698116472757127728654356617467742684246855824736733906245955596720971286769608465898220426586480824121775544726455029021131014710530080961414540406979972262590924712185013516220987131119129315917700115602785731225408485759656236506696086393498624750656870762480590515614967718084968511606307533247301634016977101704708392122942137306785564778518635149066607534669880327009267637378503254263109590935797737858668248613307929800412431173933299633451050974610403633750493329597067422423378878100484394185697695048996987469175254666139646089709212370758220775854200515225463456897838817438984261019182754586664226028803862593186850468430025691216833547734974223958571221524118612774561173528644873338313854304997805611642027000548763526041738622941670837703501856562976834137196973494299646924295350477911744382107137929676793346531906994744060950973472379039327623261874378807980135232503630646878846916500765595104299554629667170995764374029400416266698202506884182144109463473176996899402793080899868930598125971989850984232889322835568878063499508725508641441329545017846168191891464154859704685177321915028136372514857561212805327398778832647479286231075237618036086172312049118360137443793883799377141108845298979575005261638342559949103410181219840110634933644244369097511966065437157103959196976734824807077572566314263316164662099590542051718403117719248657449701295579677005161700753642873731253671714675362783148429309433027995886662503180060465890110150135517300239823700896633140115170257553979610123447095026441608051925445738460961407090128601887087839972560556011873382522597632495793090735642285672667044283825177904176404960534555261672715461882439798080338283223180233967051405046432719684355288469520948375608237473437293320691854863244633678133210602250656732997943291252890802127178268336382203961079099700366028751617291333463743357148723292749764361195105690490805000490703217398940395112438373126832557301094595459615168990109200943354545510128790364158961147168675227974042915032667264951162524983017378926288139018210382180888273421640945652554655586670250390894851144384820522167144793930345295689166279046992440338551527329909437172875407345398970901901089234664866070684708241387101271715524498819189836878635992742928024488167152454233261236533337602920978017200356122590079624825979995352786165004225408113877421105640284379090513758385201697800520724940492770541573631888124707019871599930975193005416661115829690270167186330880554707918361086600298727977388378054206450955406184466301363317363967367865968401527444032355173366837591246358626937228174621052803407275065294269606678535547164222000233431647765208268903739137606138002586383683709461172542388356715149646118820384813650546555633292278455937458936631864494012607507477351336424674902529529366805707708559302893372826397269349768839554729662876381088608412099684998739320903227371431787894671359670803329829244057321632873973542362435901085263595021225573932798692499627736102123530445827588943462716656668700498051366630257927359638477794536211510473611323199095171902645241359033178112356193611252523767335209824229988721135428399651880716663232443413937307335312127243837430343839755839793270043091619496679991693827630669753447497511024041308698846942998674218672981158591135458444559563359928784399337074778771357980594890022222601701371371165767196151588651077189644943910764884003252599591938652916579863537962780867392284890126516989702952956054206328329013476084452915720526135153975031805330841460887280710431688017956072332247434760155382831422399250266366558950511475485005247889791132777938621089596605398970212865762173112652230478100067118635795159659174614508763803572799797114768447599327443692434709564407538857555344322065084639186790235629199556926080545627252441111393401889525355351092426196918658028767347219451737874503804418858131614463578507339120905836259216227815733091405377806057476352066949741784550345154411642353902407546502696953773425925661986776099692313216338539921772824924292821542420017358788581027223031754085970444652797219260636367593587088869656204715682665097209784058973368539308861105784983263760907148397693167013552489464864904804648221351083493245836430507860937461874092181136115601791559904269884674610549016247348797286702625426247876360244881846223014598355445691885915671730377679224516665852802263734750412519584475121673080491604859844456781046531271202956211235380526532920734686129633226393338815885082108043916906212187455356426810247572231268705996677216247076146425601110495488092562252631475008692149373243343064134334299037651055103799548123356912810451342383819005545455527177621822594266465370860980721385286238331673492511802269484886917038662934906145107892266656360903254279527173963850334668053628064584205190074784428141700365378939440187030552296628811016409243694404656923992227161475915004679954000215808351329663634989001099534017690371729031309614818046127047948568247821268284553754122316273998348525961313974600777600284949830377212922998939413841181870496330351198835282874238695490240568844641616970948267110404870717553978962249696164114993726482492120240879531847696829804751405664769991957861507441346205110237694819868715565209996700129443782239353004002598327898409533060418395818887189282316628888849347606888408710430495436372642620732677710641467677965175074175748805264962995947460207852578329058494875006030505417128016357071566426577382908789758083649130941314131559839915642573327519505051111657851167405742024442992644801044511392915968380473758054862368273877681448919703724836006030797469320994486910765404444089119158915773603403535294949373884965040899855554832442774215791079985204826914001761845660796269410653662064527696140523337085308910515436127465937841433022287041884074926374634909070219763110723927969722102432650284486211176011138880882253399479873876516987172230985279641681449903167432383423670632054755067491362038075707401802194374352761210216055116565984937253749297083943586967706063392945302523933615208718047796208468730312657822748552384466934305844770295903559525927722293363018414090767255591532478771765130756330068817003806936382712775407572964670836253040784630199179329435926230841259552514523200479356830696366051790011150446047073798246184687915287439381873776605984457035393964581437188808592243918981191979035757423637219074324191263633534156786427430764145323846224645131329948270277523293822279084567077724651713645543979969707199854129084961887816607830188992755420503400723819351256966949015205973622668810267228488970867141475444590876838034874617169706092950522798519438160903262848142159734779770157426476361822049284934613056474370884501969028977855215865938914620763848764708401178424241882286299996841711764468371861233234670554948173521213528665923481558930684856514537318202602688927038743644879743097647523055366300637351007820809734711297067437688139051963392339379922250698837911050255853235323477747923081454757678268555761571473077745084499962722010094634385251802215511020879904870436489271492864271186428246676862766997885325329490177209488482027015673879494732069257774209644254857337217931570238987913228450786067244460568516102278998062587502059949395226701796893447648100790742909257829538051281259432839620969870652223072567084714666816462071375084580151932199910982418441722237119830461217153111733445150112507460368684568652936093998451949357012405095372977477831572299237394165489819807345260500511645635805365973284344206441701094979977130868069003314607886193719522611210133516775329500539178665561166151919088350929353804554950671772042405778005513117406603798182222782241532464786870162250450987270562428424361402274876236302880499766032237189686764045359883989824498723000745368804864098205558688435484139756384526472204790630962335947803453188367300404162637205273870888880946891721404177923896730511373967082688177844485043915987161835696120682037407714103830803771903123347102648719498349871472230490403474439551233371315157037011675541843478130169194856830240592152220468802200662582467987574923595320093148371889194220538827414456241313347701585248433807761814209033253627041886724583675184137103347715848026077106564049180153881733857609542250032300142421607311137175103567626336429139426253173357132382643390647884168190955328452137619872196124345462609716324093786271219983082461459520241569381030217425204832274297942329744187470270585607579645404572733610601794629203302832639722589018799300022304866914180782353363343188339794708155921808995091996199236242252824930310331984770227200086519155739581320049295649839125808442696408845631950460375166171258639228506988563912233899773397432987579575421477953941265697449882804854442596162486607569834527364167457182121663889044117512804126529774846454557222100207740672612534100983797613827509542219088615782242211451209395033846675412628540812078433560975760323739754790463407431509413772203772116443854830631428374886827081809067194538713107438728461263159723376521795293153212793091363222790919034012960903004466733020054528212721526763245260996745911087746258215779155030101843282745837451917739795232420192089103381970778965456603486204484850394745004791645710352530224735769361928358429606120553530190430031192931302128197798161404302445749151050471592261366810438382375638383261925547297922809003672522369159726093898747606838147651304378731490893406617766754576536988446985482746337041497898399858800949804786613905726144926231601310917591738506788391507874072446486397735571224366326313711505920737307292768441750124088739519684007683042139075620633814834354409407609361242442553121916657713884773701260411202160493646481326536358224748055895661963057589406614322407703037066779780473705143170890539986667468925178268705370416137802450409946594115373763249236467811310692808968451262246842102364755248719772175176835331341026320371427326642957743580073871886838931551357438969764789976674133496750293925456339962754957986954627427100565919259215292558795296219163770011353912542730719840503248588568490384587067837097840087300847539669494456120136898894501405732735953536673159389729478618645290128113472468081199501548341995872254085637878287477090246656533312337725742250355717611729459355344139212654892399413804511959616943333406236639751742370594865862621333915678752173229936091819253435699866522277043753586023910562476484574868158337269906817990925893983884349878829034541008363271795563739583981102894267033502382062898528131197482989029987719665464383137728081085238263067246393555747658765846360239789804191975740392194398887398062582094810466768048700133815029109937225022225091435455957406834789829267462604617481235132761197151894494858761179577199984762660126889342945061212493094133046716413896061292363783572756869723655370771619345567518904284388238534371110861484938744042303982989420596085891584818668169776939583337506932965393282444426685804908214532812575390353672325589418243523368166173123844650317362183486342464692200740062673958596342793392422826610099295564756857237332252677624549890500899654446263920786858885203241695893978646834062750432115908196268816475465048288804974511520464330409875615119911109998638160266537777762315275078767928479351146054969306862440566556244805624594363525180919721275679526515783389365419507719654324091206116255348342309148610285967543033128695885226768839769878988388411828791520422070319689943377122930712117303654632082341934374708634568118890226454358972997971457805205110740723563863291907920752697286691131086291155941029205272886532644904781036109621097933927655619282056320954897534591427329360074339282659924960731702378878350261082963554055368778293507005448069971381040002926424690177621883765616219915051595913701613918223309298872042718397501122455836248210837189444010199013992833313075928287477070047455992676591849710838743241238367076705835938696570981661334821352806385303871354666239093791959585083601127752670124565684612163696191343518440145578591829230330251297834026902692106357484760063008105801516322378229645793503300625618700578901737714512615357202504862290474009752978576866938010509694807803447717291590273374187195261319276161981293262817861197581403294685790168628531247703842297797249993264224928678887645918935164155153539099040023430692771013375494107901441581740000410399468212033441546459267719632038297983558363897888511088796403502632402434209173878105328687858500344587179752821528039055230195963246834426836842304198497643748020159996810686695010144636709285976615313909973180156752738415135522375078954102730992895909827549736992075269421944673941375567886118171130712426582665327499990935344254237984574809384999457242360238790268354187095210070873387591838727033051849883540966218361555633978661266491514226200523863254224387895743637321541783079787127303870559356521651160267827194077313371371268238069671533966178420507884428643551736599015231162597130101061040169289691803915276352940505268664673387330780782472118835164814750693071184503266526982205859983771220268783029608910327959886095205361350968272304623237899175468394738813047014593982205980744311934701284911132907580293784291849824976816624994375829811952045042224610306007374797430404336989520253083712949104162796991303839003280971151573272918265496047407081786160236056249752107210318471191264140005237213404244978400701467864397338026152415260780782598150715033406118470292722840344392414520446540725051023812560520168365724231448547284847502880332835860516097382611697025503690787275325598083114255869841672881073182568211355025926166786112564168951342171130557594553521384593879708817069433888403755763314693023232924346889238146353721229868617193500982013691952931734728555977645176982181562300563118595128842604249903547549235839499586942161623128601887359507168187731467007593199839983483180107237164689394603139468655590500062721432324307939384251760779251713273992693512243971168716803617492152988312853237728109562317698653993645553972201737129075578347500413190903544239400420019290930286703562648569393681962713177146773784808774084032628471499025541930680456228272795088024847314189963526357994388006119813155948429937197000087744887841173687285490986670993401842493121356837810226312239975995934875639387373761405010782490182834552561966884081534657234009296990030910885874831647573119466707006550049002605013444720059071856832079352721202619163262033863943757198180715534546672164258010031676183634288952523132961288425496575962780603056520408240481644314736250361446518595768403840253229106638225885985467294035498331915231149225194894947127474283505688064523147148754797236400301496089957240495941460707230392171542617452289669155275577435710926947849229024613720543618032661343956970755246801440676566099008896777625877383355323638804131280189198823889157551490768338089006394957529003427166970961840278827174196449618817172303902979097788414051663734285507514804338794205938488262362276654437568270169558785844512003590512606630909433692753821530337590826407198011522660211447359612162114925403691218814335392172727087750778413755962817369663952219819166927262559188133729604158725737946423162746123338183243718764365262906310911227650747967390653170251405600496951511594704255379828493303076158179578517228220791577281145424403968789474406155562724889373773952460984526248145577506319581364545735960741628940882572321000189726027097568596271095945663075732633841999643212719849380560084351953917477760455907223834476893526001623888607044173710316782221267515835387617713102369360532782319299592374056772082548671139126598775129657273205306685081313199581039291353295634436238945543401331720723140864908563078285082374730425739490080544367006961567817928829571528441238618161086543695941873502645402309945553377824168219463152357440480854450569548378740769328420040278146343488046336472267326414291723160326071138925990873526183023855924162274252134491675252729626330179288997732478966116127237502923157685741374536384601005115587966048584590942835674147392136376260105116732700826069549051289078040490761293246438233896141855189283476791425237093902194651913071037395289363631843137625493740604455378581266208378464808276901304807019607423699660737015178752790326604784738023459863515280583575419586475968712140631029071136106620904601668672403463527658983450799827545467258312360864185463864894435000447375895262325894246811108496109781530338173025164923895457423484247068787036034919316641992876157604883268228779367794989717375560964922563904922958453091516935755052880880889758950586000790498777006654804497450773282849614170975506033363029725179060330085047409363369270098190354229132635740810465046039120947774592569605720804422324706870927499587254585855263826592006846404348222109602055649262370477018496113262780257243217469401180005004852214256710507354441902825556282461985294123389810513160501456275434218460407596244028578932766520088667874123118630254005139789926000470204125210438765566449335252067653154316359311142436441087790819479851461395559683398829090277892592791317011737428961371624616241919894293530043756253140041139245472066992245364724490246015258994041395536963983277970784058818795059170748957433838021138373949660285113748417600211605310103183075155164457469620498514903772712339001188300509609386433376461442167544928263465228009047021772724517854710579860339488872536840910057853995526548601537308359436179468455975859233892323869558991997297953043592796845499768816164514804358527865271513072877025391209466158663322704495435828960497804666153052870636379334424213912205643463254789255444891515007780840510053755150706792412054239348110089200963018805111671768091203325283974351264610791060781014867335950420852860995293414479724566258227661058477764025534599020108502808926081816718236390674921444526816614231047760479173532793110571501824025297617232738313643345858111579938880182132726431667933889691754006033218029986878831727736906040272552356179988117053207980700002598454284453305402896947292191392003517010437542586790469571600609131264464570150976065753944532293280388680365193237421890142647849764828462614869086539587418183956146566350288679826771359344916580787365306743008360753485794991310101269193857228545796946863760908429020474978366877747735932080616594708959299438645016745417352677486987839666079582431846446190136159556586920374011428148611505056477776579139805365214687612405604387250587367671932011389795667239033605026021708378573208245116094697231220413982359196373356219705352946823500714542927465913883121577834367396365714398155379530715001898584958699723565587748353232791521384750003873909423560026087861791033645185355162721742222798560111388278279799540386997220610091044299290051484239678841215278409130252570207686798139665301234185905337211127604770849870441216707492095098418915040715328809980724966801777797504384056765025630259757650132397006938441930054751965461792535605753927777980279846781213214955452907471251966270951630651802781655006747990115744354696786095418847017320771621256307365225114236311525346865618165057886328961834850765332659940213735236148304356563909519964514123898578207939426624880566513360525328883895117746820816092303690985928997964811866871210837675405061589380085300840884471446463033906114052949542657392243559416120196765323661731864605190240199174584893728645363899831305110768897976372878996336426941500629839162192052062380663238479194749084683307350320108955731885241284305969231810599714953436236421567745899228558085264410155698248990239668758943367424267238442849620639071829922537417770339480295094126685701526114999590450642547497374191646910197592341326050507395887751697209726549994151313510427387834349685395454108139087137631954307529406505836212547021231588484110801668265771851472862165404340887140333127457521940466641505865628337834007397029632345358659717829575949111350520813599170648845282353456434592449976623626194417563166893968939550979058151761627133051222052240315774747467246034710639999644717722617967856355581169783887310566381395746678075926161203487649241616477412224473727647254976443746720520098922303183735810580663017289962316161779036103784679353467830785696145944914807027678113796719564179026027360369026428014613403351065651519640350570233491517383515301587534462629149540966858845104530392689511862585604770941540845670784889636415298200531143544222337518507367279731741010903656061166999608355918632906225507225520766445806210995368167365118906390226992196735751159463664955392642955651136557256710554751887251948424533867656950321567760500048342244619775333871266137407151225361487637458509893786073670737196665039639448685341041469713078244963145162081551109268129832291994450657702679528000071473872039991322026338933227734232321656760213236769547760160391269430664955011243127582041321206609745251852144483775246516047577671331199622284969015164520625350147832702860733870182231288247869136904408447329837283149370642184739494797780383290897315469171198438671467915748416958912242289408314919474157533015971078130857284655408067998219815445123013495510019941661718728206774654694966429654046992530691277729126330547053841281508896785465687954297238679313541733122765100940471066848019148652380780878616071079296422507035668928986270898019856766773559149497516045271504573279741510580881825647661876911363814798725593004479608348157338120123914972496559470131229224441377135405091540978809978601838078226918478521241410685721476985073928628385904449214279788555335471351149380874790195567289162972566742614377598706835332625451502766610469292960492820881349102355908583347954815544472544473694302250411488991392221558217736551422374520525399232058466941514110181023457259653084900607783502129598683754285779225924126403398661932597486303724999914206860205994442766212203862493776451204403279431489985153321606671510411263553910298889203474186340872823523611213488666202725464700388501599157348468355316357860866958257651811252642354866990103416837140073535991329067407395909488199556877356785435893552773850297991868718157035723623993713974859102508041057659291265269817104942090062388704318453090417629693966754611606725658214017710165890661862757552632315869195141637203428606906213731507744822379493130914199975399521229679662748631635023387788335340845959244529092939766809525577144242028413791941847593123971817828480154992743365651905072716235010548567792116176621246422645438473810864096925533094421564338286118396652089391106021812830493455646828544552473721296478316342086430304929467003387148767477673363037413307870446685000148249935075496799330808700297823696665133978414518510942161044873503122665607803009382469185298765503105636096348138760046239507690100606318083211073186915620847560079173831350852711610006618092086645419252207428660862296331485571504413167106724190474058079170632255026100093855834573529012425173292051764036057138816076080243935878427415319498954185889456748513142862694944994752632820201266343321679725340456971444949671724318377744491098857758066830612703346307355151788288527940032533064843329957093068664263780431209226782432696354535482592058466637441994510842429886146142751709214466287796641958652360374813774528143752021430271443706680035794323281734861278669289446060100037759278282419825555563311133391657448261403728182472642569143071865502519639322881058632679180964725720173316689239291534938270028331983967924045167312698122827279947068111093083384504323446721847824403819914651353592589990034972315075135474382551052409394531278825442087621107857482885456080222442314748860131482237893427113773513264258437579589116233843825948163301388307846489210901506631347040555381093590591317342371348708557350888283733244965762244354707878857972854356442008790794527309122513608814769202771591666898500441191226806936353843090992737734931855020313777544000509428925028970040078209846869400533544609376931592105614467648367173827791787472197170945138382058859609707401560911832998896886958340477115967326584668547266419508861758306362669863614101097836809739115656504254609107084245042107089012319009010304879828898914270369418827934967873823386880887594336734208902001256443184289265312320893538468088347370867128264101790418784888631697314537299134960202174434030183909295562902485898379766271324985266286664793008377079230690420682460246344166698744954237950343572345358283686749272126908480623290346518013582495190938040536319268092896735966100886149809304265721468406569970019995246535330845116082506455340911040660760062354489242307071319729272280700027749767819732305339562937223963129596026744331514221090957055216914856112632482669830075972114054147582129767149139938294471706852917399393179212538436243154956806807569316363588210063780643368951552466623628471163220574416896526855579897182825203876138069856320561752884867760070387202603297397364313333035232936614625188651504929678544080805689849745789534991818980313644321548036764123829805311502560463421292718166355648896800396949575819068632287918874226066608572400463817438835348364160850718251801874470362620424148185942850191088422006862255753536703220645280882510072777868001689563110731101170248744207120941541826707670031399336217763065013476516968762033884678574842524380556140901754717364621244802632546090904918839183371391646073073543742376190831361331618205815663996392203653229228466366654899602796588302780217919638649677016946302509612186419026103814248569913050993713707200050365154063575319188870732297426128516109294417053157480530585465234000456986115703338446996948354588478812701446140883643223220515395573086810672622491609473185204973768317516264500206921302763845780394379214457850442648879780364132779854360553857921704039790256846533226390586698640742774116559642081764694504884813624175938969463732800691379393137427395480109972305785041755969624084436241518883731732323506647113032462916838611149436157954088803200839998041686732708741331630252470902045259185533499748607052176794458521925433856109228482377763997541495755996497968260645440701137842708965871912506096324051101006435422016075395591496602233495869164725796331719957386192168023413692012084854294130708591244927205390357604918549893048391826855918162821532624177687562212701585921389723945005994203053833252474572302260353486296273979079014071898557094227081044088953681017736540732064832359186362615237183570882881995470992121860276092629317394687908852196216284064714011238154934997212420727749276407283266786682790234476348242926271403010071681244899159557261137243949293169242343696744750650586962707355766534906646331792270782585160838158959820071017889788635034245988134312229245627446055038547646574945003308820693663232826681605827692207946769757106328612026703705628275194630513552665837736566787388835569109492189475357672935560296702698489769993566353656272613432631275621425457979057266333312891108747745159590803321796085718642456640551697578678883131445583030866728928247856218541735060682278787251601414467406400661674390921843724116825624807688014521002631757829867761705181905650847630992779516035968264790905792642305971488081662892565742703120930093612665063654862724472559274860171205714451712254141714325035230462368242205210481168755868191073103082271380153827886136749757213979832373256946668375489545998754746191495637940373329003622855905326608156163262624322241894841969342221503798599120439920994166638461966300786611552771202748115975989537778114172257845896939610978587322235410698608239457707757967042181262423765839961434144927999904561952360194165951000958565644120064219386636198693137450114320254654817183683933317661999474172934986068603664388188753707536523481369175230290760756171242710428752063294350012129327190597410870821614538117384109513125550848301619175600589831993349821025412838113141875725971536625077757281981544176562937151193975115068403552916375740183187199895581639439599693522271143485401172778766863356998441534797478441416935055424528518986501977511689772643531624564529393297826423245653589137555683990614052642054631120496719826869786269497740708954550553221045053947437886322255613146085283080524009271852440954845170447896881929219750039105072109718901454954960604874704200940112860350328959416044873662564913081667576853019265796345051203925145295488068058688007274123962302611015529865245154702701476915306061474941650737535462714438296409078370182322308098781725490090017428666573271654082701956874394374822387796057336941771337646318903848414086125796703740803281467515071183228517513903417471076929265472006924488787842458478182162225490419925162022505502773238391041561870436885995968224037307902324428260215011426941610528038884794098198350503003014156532800113041429230021522419825964926746158496579446157181331828127889479845637054350594744062883104176453251906568215241573037250861180742677991232228588619012558569701640201762817155766762810788683702349764094181913826003532186412030996712066609623643615544179918664032827211884141970169460004822371008014411572696906046908967780515749647609793244199763403954006744612630540481291598067154737988279677062383839857903453643088826451448186345827889389176709341056574498615927380985842957404056167602847458068678444036145889843781900918037782149331087191374263494001236701440925724040073064726475008633753354150870254869134646855176840842015806473862371410546811546877294643509689917869103974587637846613004895846932903192536897886616607123209257261531150356259859483138235897784852087199963913547287598244306674630206232703684211277696076190491960894592776450818709583879462432260363517279140290854095750393301751968136595077698913364057370020814641601809225502044128623058383080330837835667019242880766034737394485418571123390749071952310063520548407692891200316685596393302884016368245399326398914436432238816172511513793290250200162732279436846111076654923943808179416153473447393782427467655006169665776475463241460933106224599098117096252541154712471477432302089538246539788664225560664561486515182172957111874469551536101549888076599712102193839934528985230514854107415806487289955735392946940720023155774670259772951781303298034100714827092752225351005800070684488331283033656257135690959253578721395664711817060918475996834163495247309291444571191284218447346233502161821139412669712503515878488791085660809989903784934799132295242780745801957504687415435572131444059475176389610724645770193934616942674821150845005704236053730968094732825533975353811913948857869442595032840095141736849345091064519451829813941835378035637897665958279614595870197399964572970805236329219371725894954380210197594309437605648108590965500758100809691880205762999517673977052559096774048464534986051631979333593521927107272162778383122842304302470940225933445542746150775724759278165911466666738533562143540220386872433283110486224966901958265816896550442700024685304786752106247011301741155883341835420160154185358103010886327664763668880112771005104131812605834999615549354121347450909147364398971359089427749344488207075525421292535063898949972620504959350608675947777302775009115278470644121433731962367468077463367102809832568903226741048764060708123269987309479362978111504641633213749546694223157305600083797007817840149404026518149462048996972708794896110107335294354986095475727623285018401540906934630892118597287039740247500707159224124655240973008522815876134967131124490863249142607825875141298524629465467716175399364687465170733999397934716270636401710163041770833049326486224808459128084426106835832947667396693317805293179913506519773019643303438745337436873044547884308078615148283372229876028287440369199677662500533209343087957168810164230930875254588416004957598052990798841510023578124705123911249233298074473855423244679292872748489008493105543794636131283293323844406935387604308566046944904707593187904919814974799341438295234148720164431657673155648351487110727643341580497890810080828046821533115046042815532008866603346433909416908610024323800315607356375594248992522259295404485978096591245923522739963966910848364533411215564943705805012297852842747191382818420718370891994834920296184301982001773997623751465875571113297618695933970300276398922705253298175770427639375048355598027929246334361741673053636668305076837155686783468313743326646830562378432794765793708888155438057435800062245515368956520886121883507112757390090711607075955381601386401891678446355604608581307690109400847577685607482218092127146426741916569733934069483651682276158314659869817065297649248495324541978311155255891774142191687523339370297360757421014170184250450738948046715250523346839715410596618117912024043190824777388059983369122016106467905093226727068762874586572216182193395156461698186338485712335417699018924083578865037242586546712718825510925396864738891726741646322354002432736874910314991627416934311447907396064722537262406256693229011707801898877282083140032961871279824355839001931926060714305891041415331703848452405494295150077588340310251255612062969840409671208130956106340554297038487855580965925980516536133827396737545609130736151923663248798073191881334596020719638888579146806898924096172187422877609148148743739714786420472564827436567412508599023486272381710659938279588946801589981092946582206562462416727984699375730960150870969919788565480756003472180230440972676435528323973292719951430306726410432238053557159474920471036552345180721416945853566789360823962084883612632098744092397367482886097939302619232390817294184498300183234454805964869141265373115922585774546239439158902603268967853605596223422420672454524428483415424667469240943937973099185915684632680301079749688353211233760541115919215003315972346694869482507347655499393281568267298607049924138922534083506993241371813924882308124956396040041938105027020359642479409244174316606285574871104960938903704514568647170899553478600568021514727375470648406357238507422762545102390374530624566404987399436207819509419812673695019595884196180676320147789152787477709033784851488436744939468282913185249260087651783783283229359961558691457763845803383945393668045053485700812915984434469604332200309988211741330296485822915030562514837680044918200102811121326724643724856097738141256140785282194489592629931747970055399139057000280074128478589156151255409968064059325867629862431900673467173263815692803819954733930845375210768867462940042850691907062036802236130515899770179730753224247395573241360688659356594930045895706005679836126358372257990871269918721989166204487172653647474846381917330208811452782701600127158353136706204281875860839282746836593728904459590834614007594689647085693672469783750177620671529957951837138437167116889561947840600055051151399928001837069160786133917185873463423937396756279414290253254637462444075604161248791325398441039781268433385747078974540500083031789667690613711367844651920180692424782214622338553013192500351436859311184424792691641970507846859993109174175219836472603337076629319396012616198480470984808382718607779354942275353224670650283427217818776949914142800702579329546656413805789850808064902021710178835103286292765418960052745781534141265325291869092506784685479695923457618299983904288312746160790133129794055385927458466047401977909755831166589682131687130594578107368980003258425900913127666321426545211605706229294710761681899955046787960828473689879370297076080909161075209501342432496925824837493548210115339788371532099368774906251009660674209892862151890246722610692799915076745161180336898565843065446355130462508807374650184490471047783903259076350352313222875688136460371274853861286271020137108684482510861986716264282983436941303318597075071114680887164048091109047155876019957754768409072718107959611111264846241561685369361878661963214774166210817405213219413928611667810039290230530310380400300984448186546475293633613589761028610054168846926199831970905711328868467602813107875176672222529518863056674193692613069461202339509973883094678629753722979008515370573144678905271445405885177494995381040421586170936086168383636156495846050919240603607149239930480919506573439219374235641539344591585770697053164913670805004373308240795972167658637613817044045353321701559360056539589978966371409776946153971131841367951950280191880154179394696002053648628959238376380249741989389455686906323609602700660196327397400990898341831960746732654751720342285192086979767939154836890554265936813936842841276316500103331183054247914743486135557147309105889993311544250600303213044647827746259131767431769843371869822364392769595022740425410891968493018346408734036818412188143384281302150830669121556678015682042021126723612728964394425006662530920592334565912639086841162082717848562261801919089912240338329027121642791215246825466020088164577501042098721696516719534999125600689291128903266279885618677203559565607581929025399457376321304225771406880552116576988985375929563576600837747075290758008747384322336891793406106810410756231221114669099139771079802713366501002658425446928566000390798858014145576689175938964820805026688413152855080228457291548007301608046080667871143476025468205297690570616042579302380323990162331433179259841838571336787065642293553954808071183447239192175738267768863463745943698266914979457530978516115904842978346368289976764314647655169615158227795021068043249450225680850099042414368381952279771299019586771009796829860223693217234044705965330264292296646985417396012537915654137753524845550983556804824666741280995889793331632748829862153822882424879841054756576231266592893612288823774106342747061236481964205227078247162156136082474731846833725711191604280641971789540656336793588793091431341436943352274709117361957225431488696452425925841041252465921877991251474955228195700745348486983399311022966431914612372892404526873423740975775327355133133881097705092662500078959212836858488066373692018532828553695988693605995419480181607972445188951325943137746179865223395868078824228735448154393663534580708475427621444960502624982201193480196870797200295004967815656771544628376863061022881063537423487795109520471598437520748020781217990047680578880901905315488353770112368722576029170845544247357281786769060512789262362014668808266693041998257115291135544268720862497210225911473027645280082629313912520646238135331418008146692500189429854164288408163083490709568179470294465645493353449044406663626834489142645526580844743434557299144843313905645500869183874016135460720703194358563642321981027215891575915003528751911816079342270882087496100688581067109676105581467831207109540195590589030149947951506500199081383721343335404829371135471444884501205458672522043194419352491718051435363644867241809913653575168749362722311925522956687121531612309093126510385735736311637882034605808176812005282975493222876440568104811868808975491377394749022291727402944796131354370625828078245908037347531966414133982204812228974170345130312038193807133519219002903599138313704304477311592582850527803668451339707993569018105994815602474387048164331363533839757218407726290835421526646651076998797034465650579599470821981648761294494907858530222921035900445483483046546553582665559492650091561347737276117398056795897291372020688703315074372689157393048662543613188388240247228801853166918146915247637869688806058009595084566085025961591129202665086391075124929464235701381257273760917708023115444141000696294176301794811816827104671072028819085629053767066786914665538487704405309467992183588469517304531221567451858099908935037421840129191952047719797317830665569029574510755610082798000626880901732774880662417167991957062946505764133209022674964245022788650474758503539676729574559872776783357916808250819922431447571635230841219150327935739090173028990685408265031948750759208549696327449674781591609847399602384592231159409081953249818268851050615007223181634324420194066926048489377418974769007421798207855743945081958578248440488355501006388373083349997623844166715730640146240227270152856739500242818873738609292210330784499417703501829216804638186977283105851560766456016386410622685934774405388490424751343973814206412150770750941701207832182204764102137050465899660502688454209218242317678214426031627540691096732548156207078350997610039257831573652674365662189125875899502463246781608541365333693061845387755876552548668542181350045969208754969238053996880966094747426152502633545962172920768417600572235519299801045479766299110549063825403415390445667878568803894099387112196165078390223679225943284202904947353681479357924626848867962286919113172575621584022507562183218225337072066572572616656674592337929863204079486969946361981270613065586681309750019268792419421165966175326303531887487859551569821515447510988567479046973383966535469236697715534071741034412895329631268090977826635131581236450558778308729149165412202056180289129232528967235125370767698064798350839608934543374901124186765950689192577929505588362298419557865345994044420071978052322916619931791259787426810511801419394837220008070427307310863797520673527224189898538782210318681274559542918793375917625669047416097995141238144886160916398848200053363285949494802583251642239052182029097257965672596668014581549371171996491946038775160056900351557929783076313468544970671361869514899747520048149968652973575856886688815757919941089654925310863730715008662745959385098990790736214212507803687220285702849750579722408516506470482133208737847281483506583239037069259964035665928949232358539139021998581543586812520776918820515550637278282292609222092706144248474287134588174558823608474785552815903252200114620932757310815748524442461366553890985934103109937665872416276269946614756907486598013667501235092507441638429831674262285727230780285621098653549278828380680042011451213311164108430396694491784920871189094819695449835687835095823602959931431163900739538139313514879511312951705297476544266776258036766103178387072266645358656731293593532916662239001993179263247806651935066935868800794409118022729951552385390786185682761965051165300379798343473485410399801410546639510830654589268123294038286776747070246679793410113248385714937547784526857274773453730274004058132007520032184248512419664393462463331981007983734278223772111293945175295395315126437226275327396332637784394912991042629584339352893306075873639646576706213483268133397372638975031914921471196825013037157115774020025181006182266239108470807887083851895899824642317491357430487885241515036567241274658337226696642658661672761869406064370204824850250951681871434843513350501569559391082747745258529360180707987727828756280741372562488879737978158597000196369369186326289350900847230541294178993776185491656491892768716481168719004150326042994159821495996267404161497925565821680422205290192610342537875488566720457239010986471584415676086444685820346557461457147555100966236135346456109940606436385941272772884108671275875640171457449226202849059623606524981702033768989542697116593631834892100108249780281541617883880634720212237490384204055149226777567180537127280662154324296042216846806551743250601438197413616593417422626347561845553406833993045939118144082576485272447219674464595709415685786567629415618898046593828891384483402135702736280339103629542019557383786961916815145570498877188733736740781635697492247843309513937299014115383889980720389274472277349072369001513214252658251399513569722751085148497652901092944714496067735739546711669330686956514276548901450329581213833612537465264171556671710014989949838509873245616987240724578780958840703281266103509839078341803838546101689389844322091761109007350712879134965579628027900514974008860550913929603212927739250313694776990767424830196766591058335300591580197648046016083355678369675928382132320801320695925044893429921698934822230030820048999415447390168824585097962239359264105826276038636224878072174626074853738160794626132694835853676188412594860572725234329257532790532867631295335952492811972162463653348724804197297892578773375763629277970327871799458319312001277542723568009316881524521500045902062555251491128227379920594807750514366341146708554034755397753530734210469400298734295355702507232739902591706108559933690511534483952557719545902144618804191336067951859640271441055009511054719061551119494589659077781394939452703584542500072940307438355732907310130876522089977350566064201467337222181902433700952199340671591079900414768497247945041624829891398369452724681644840533572230685649054418345237215030440844220672647463693771524553535826767686457441819180674225059780085980448354435089524305224742652112758631144568949176363524802006583771934965838193450901318504069306746629951627661196866773117649279694827766776337831805330714591728590226042404390994662573827756383325974081203746094379390386634588837060234395534240581481245489962677080752577941668805294681153126888214944215662944494338255250203045858501445864956177660940050035182164974626380069538615892231932411736436133725621919811023481362353136085909428420765605223824417779700932296634036211174884632692646626561330910677171881551901081721888892473230337374158592640525684823108389291591097237614011396680241635754619260202796311130009352375371775298128769517848059247037412889048906194928572840084181683575477063160277681339785617174044891474438282950764952689616561286810415426348594025966976396316226127448934525895186501130808650475059415970766102132118782663255191476552309429904035173967109765517780901438089506507184418118991264337330255583559132223199186476611529860015187195003312060478497662301556157028294101441149923077538224605023263625753943569406539910445859457054607185823084698013612858517792878465079847239806836510375371596310715776705922529069465066087983686958952231989360261712275223941503898653904364956950982102628269986100637120290724121582924874795241386155757550617924939400242833586318842900818143046838068281125113841196726385819779150449569208891868773933589878008902157072891845616358092044786133662065529997476034383297450812096017333123136447184571777479932966005569649316226486748532346685966905945719354304021304231557826212186365742916390286728579853137093657580047837111131517649811788796902629696723937258750882705491809102414150722866693456044255098174193359778390643956820006703567283445873996326734999142824710219968973593213293946283331857303312486886486717311212304972926728534580521154196016982048548282074259860435120127693073874209786151176809238626689632622345790762486010611868281790452599723290117123767688584859865475255230033781653212338261949971049696203090809477165068042472675693175730414583295062610113894043905216100488441775800701057776722284652849531772961305105667345436196376111551879285933388764024281640195947048916871167796965217540344675271057326425342697337182049475719642805846094956025638535107366318276796353029664173549582613887795520115189485565325562557418769010944074161954732435030174666555097463682082150975847005047823606715625049979209054888719962364987080651519158307687935739208224595158884134600869556654828462533899005416059633593168672043570072348419087247798295490549734915024983969784005460734553644308426129211345320579840037322828826370665507346997955549610332200153957149840383686989647129086775624635858241738123204909060041275281492448829446276841488909254637292650775307058192541933680077329517996268967923164777585313180893390256139045321301792167633630037387823284533393038379183316908241405706651791118701099927892551115732390645232242039522323649270293751793525929556255424356684991213498189685117395840511716701740079910728212952120452422083650136229216208737210747057196627483423779873616222101436554335430668827912335051319698696118896582842701055460513914735108993061692979070174354258374686886489028127411025871426828135201667435211916475013872995289503393932854743735199163168724163443636787778436104473531162459147333238155935054625288020183409105741182193249058265660972974216305220109418135985676493761513651426037303943149191740162253353033981473826511121111639687809186215189896151298914860053975704498328902624030202609471067627958010557136777480967054924637069463659214467060969127892572448273441236468279036042413075232314128720533430976351308944830408220811883447009525883843632932017493641500094538137854650768488001640064710636620153109785559813189835300373348626505884670156720097264679031977761725499160933237085680666085188619600207115924484577303301148449264684820546166200647519850573501384021814428649463074407474845202899093651562593922878051175642991740849667558460212860009071450626597750879283163300487629543176817737976986860718646862386983574382903172474269332767701429454809672089647245000518285557533870415089136208131727951982088254708672213826845386109894736821966274426379653432351021748047297473039563845431577437400022019608863231524213214007665604865134316327318007470046590391130872520510127535445311148369961814020836371279493719370682048223815239642497181147975758715841985132938182635349604921184003868374821202611741124672592167081914296260502068920651093005679229619122027094023856285388148505183601172855391813538010977082841656082945543604154676380015020020818832080950470215040568889932773021993256921247795206576231830881334559076613929119251397508646992761123019617085938263446205461578589623503090293014026322396512197761530654859816401186384833465366522312791392734271875812236369571463381664595251748766839635678072211765973267579256702740193089386792967068701950200870311915235757203951981459622899976915915658091797736885619385369456013873408310967434784659858805330456973730310737297368828094944844010317735340107235180893094840596454300392153221512721705938651610173272022575978735800395029685258147010795948207437988863851756580036254261211820383304656738013610704862330351962370853339825993283500284724675704816407155919049246874069961701701565320803738082643266115236916247237668011684763287740573593566450994036409471408947154308539874399317114396905983577411429266226144479445920997099874535818307729685785758497478434137408302091541448283930081053275317245386603888026270080613942313302838127940447608617066256273632275423907748881786469822526944495059376378936632479551473640967211768205673325207860810468434733782634881306156578985283968749933912823221649803317663162224196951095667959450508032108403262304503718751167868999075872196141840557128296593046876023220268304063939112325960382009132614883457563209169641776256238708043148322380754512879327668265254730812707370687455819860936086786730868709923729612074719581010392643184541738346931698414499519705100291608014673848291412994396377772894198836084187752855737971303050688134787081118580705194794897068704870354854673396221667517961156314691834501154842958092524843503070321564639606684450426451078519324336174209680639632039919296464473697651908064926989553679003112722674948107434979977478176595753908273975324090593081013521483524158329587268025326133724273876716157876971861960113177974806609220477400561811900711662280233537534878175035603082009856640277289000036987012574117422240226553395397432156375014578191479920148408791854889014892366136375638104131197328026102194529978451324014227869099488863563750967479750480993565180578980362982030138327457255831565093063706191934490870469350454820595218610571548889745364708750031693662657910360168189712597177603336455898785758607820189678828408412258121974529987566267161916084832383195583135700703042851360065716651450767728591465610966708060439484753906057737270343473674695164965306892588114228565320425682868004192061992937153148897149440017136681611250109397313236996220794852982393745025433206629113353354510363659103966753775845625750843989952276749397316157557616172980124002361484393646599423256258777731787665643894691379547347625246431686134005597524959107214078641408117027879988005895797363070219319608883971353798278398358784659697267562784993225130537751084157658586179539655295281287093829907688985869960278003525449676923762729681716713516119985526663092104439397021883119513488195127111649076434255908978794864016180658245308297689612173959893090944638956759170000761136046209120405294233593073472686249820453949416135803944202094984881752753478132910409208324059916693809555027341092816841207851533064171043212854507497300703398732145987630118039611781522262228912703695618200436837249913151428477470165294889702139631823827088557869769216801705134086632380322785457601171982152449767517626856080365543576277082631080309310249515330745505393372306145654333484802892913842439190779707187940694664838057031645310528351935940390194253660877771724162223814390640868372354677527196076846376448741823999136693885242131461636855431459298060025800934131568470168559873545154790138778470148048675400655495238198170999701281248194514394927144139468570732179875540807354265300340117327296896184094297301272002064704711968549103206579585024949273076596899304980206928636813170902548628745145144287982835532201586664605786081772687239520715448559444436432499713042196731274498658262730882883692631695346900495590236634424171123538077219262767385370413024176792533722998244020124799336791250279057590655531781558330046212172445528183963635314191561573388496882126846599601752901395915910910344892218148566086117775661655043957771106264900627106195074293879051822356515802420101974674069050996795010740144371533077564248209640347823264540904682973719043504875433116646442147440559490783107634281646809383176348961759594447346524521742099733751637354764275750765960788912304165990556104895033305542457677485280619387368345863459514811095171279181043494599227074647487007287727229592862868796111093787250137278385325153756486637165765339783628542314327336187278947099671354496788308126466372035177838241349831062230466035039846666135984921208865404856107501703358188503122168761536603792365404600098908596561535050327372848217206299968943859545959642952405196999370401573584334042139049927785184201655553389067874213213560445523334330582867762026543089239891108067317413049851968238832494313541203890013297708332577885306508826019125796167779222760983136561725385125075020220126596540500588454322677611005749122086560452559117157709352834962236748737948877972559084606852582760799066310664455976429526785470173730171525976184708499404926154737058811110171316548304997040639128038871852446535590783562010942210872869681277651044594633943180292377482325493660648639131676990823302678114247429868908009500021823176559624787888934240932405756557373283081248934337586037150624404857978311214275823848358776385218901829678338017168123241887744452366070853837516431694524452400302189487126890837745449682601771508220939599117823098736775500651829196805816516856324343522484508929008302065467429048814876054420327691825193454124267302577325159600951387011456493840585051207614058711837771471990646139714539998395135614169410119302153672912298410128602532501844375977870128099493826950156781647955152065840503256351611727005063435084146857776596007466736079873877816361465656772304762116728517166045259319850180633342669860672399747994962496388101315409450152330049351233381125612976610532776627091110256459097942880199320739388232190256502558842960418518496473814512876811857784622072391094701940884142497562279464884814156063233094053283854949481464353342620031122933340626538851153503092166692962898557428034872339803890522487194380505767515077008952621771452454713827631275417207055876160440953858689731995373061889567870094725141195039095868198047867418319051709859327171727322577575558746744964947146275545828092301349797402746443367298007762232042899843430262132985341202561694382432465270166216890975391032491691025589564111470923133922227184376988072967225718053739317301233447603529879998724456962297452930974772607811644170402399313013270411665943865297162206655454137168275928043470821028499918749181103581858008013115323296697055537024695206353798735878515040678151333394927821861465004698819209905326256005868707855115600749829153720449738068825208875579247377689343304023227917558367610547788710429494768858235374133031901459474704208388253468927058932421672247965881399268020182383779616206712601415159012147808488598604779897804232545190204816310044495123831397342039697680187521089287772792268213471531948549043116112323128886618017999539088378532237200756207531325315559606060833978605907645404335082912391200847130754490236917859464690439782728023168963294716624430273917057722702455712795067443080048489892985126460416254359371592915222372467450926933413702045790887846968910774985927706895387833947186828403315128032091144901272812114403074139523157451039911720039683376660870797955401860790645888589050937535194000060984937902750904085118518883956323758375327947818532665057274790448460956071280170916302022336488666148848250080845874218701032973866898625285871129995174361060961595801047747566640312738210391771908787502683292893296681791092141108775841791382631936793310864267023548106522160767293074346614880900683241472555035835121872475489552660595923451971170408981910211770630442570957047687782525612442517793291692514087608244046700362805151552025891318516281334244605291568550624014373118075569082633742372419481599459968369952471364899384421160045896330482105738516118350498755851411761745876989999073328846433943849526776672502358027129788654774866677068265486246567023975786883835639383779203450267134409875826004609412324070705348238058797068533905474424148633461905173098192246177335562973573857396277429273695603105266048086393377287154565423308865743443623248358096472339992047290911650910452992722408908317093966489786835370262142011863032429819523277751633123846020568383268978864508792289768790891016233806543682002152976356024396200959077821282098044250870232241915686332101363133646649723540880954138082235871313224251929904584475222602799831324555154125152350677820401768537341962408614214807134452393779414262702937458601120480757525790346267119161916801695059527168461958123869453397580772730226458824243092996189030296744687360723242271095990742820631288341692371411023955789604475448968924484152849564058501277366574605232536766930675802127183144556753675083618293191455043763788962340426841490704968406999180259241305505691102983492983482405198556959110920269876935767624266401991818800823506969092773440688265336189949965938822458463919810216770800853813145288986651267241031300661436129794932891306746026141662131731602195799465721213574046322675930308731179267903693366115323964469142028360288392283353505808614658904539899953292802166135653299428338139880484238363639130331182358052898634275194639962606047258238815479232313515375307114833331552118168345545785119810614098453031297499241910638226231367580428979285500662951925705132316402415426493511364419310356650524273661817794021132890470427670075755549668070248729932535524941660241258704503630536251149167520396459317042743034247823032714356112606986879164817339199059761437737084335611450861889428587392454888228478394326409953876446752326931565585015067003732244150688312781070806417663595588515691158890103051090653072087508035707528156980526514673160102974811966410079437419305812188855490837243582359018147273361018758169210332291116206868721093414579886796624693020501980746346765570451038772668721101466615085005723264994323379611048317614195755817247798577796269013010499084896931652570831796292081575248948386657539101993214871361479200387074809997216789879110309709353764822989710174977712942023076117323678588851081427258040180005476997063845809876103435012505319582021241434711893285865327950600680438203342674636739236092140633162232841763840108228814898335291817718798862909027844902567726901999778484345955872690860785293978912925291351655539829356151997316590912898913612601879654476178563263082322266376344735174646548889343681909711120029499592189808006100565504845146494058315117441479608732418464228774498793821591870502273732504743961433622872348986953226184376140818685206353181864061857028515681856842109393446993668115293217620304218894863487171276826943871813228158281719530579621272560084057161943485691052753402121900201501137120481322568509455502928082114798334643248985490744340360936764348551770290654692642287358548196511761024096041131352724925247852074515408361285066771248864704440212774184342784935145040693339179025827081740746150129551553054652030566387278996744347882032631008825818208088357503152957093015753956663599835713087740931926821940047447366042004552745882395533534987830864419037870493831508275303826278003809157839158228841395292057401516043834625771871814893706906309730544156458232978356957301020246617849159159615720626304411257022176616110584331581293385087262899522133797341493646299813295320153449396285805701612373120746566313597516443712142816545182154630696227413400385414571791089805738515437105011431138392750714016484954757985384917511216053191969016486848551719366899015623757726231797019394611731772759855132229358406813099252740437697946773177178537633985432990807972502283807431312129366866089543840745986996743265315490983947249665937271411933137924880886046940135269344057106092017037453805698791766594221260748526209082531757031990858797246016132780264772531660067712969234579707861204211638113524508084006698227708528223901161296890683652773413015237831074781242638851991890153409253212140463185974539448187540313483087556076368341911984895013157367713448849821673492176347828619711931780474509831838779573451806723480661586120705775231103802541370139220707731552511807570723669858219568603509069092517953811119862202015174815086443636571518389353920672747050216605713504487294641353197347884586497750178292005237957690863658870955213684967923736064951182269804394485421582233066270283085528080312581775244538907542906991403730537146682295507591711311926553617311441986361128448359495314059809489674731571485130355014349964903818170836462739804247261375298551686432041685106213988639230783145083865292586943274251214559846663739477577404859058738548809696491511330986344285961798464028640659395694605092971354316225395324345471365349092644011519433657523583383775598899324323038878515740614975364492115019792068972437861246434474645520448347749800841591868268976551853027437524024405418071603079657049868037368647881293621083597303543322603535589933244412549158212698527869706200868771795604137576160618794944070037968174059184371445263054025966739536538735530322443452890706845854605429273841922961092525763049673854034121343150870735799425768675406089892151093496752283870538966815199961042594870729563357039549675395848916008645765901257472446878248569107175915977270333434537121383537265096681015278874195076912339124658971263527722699511797898315720807348905668570205042369860671557956968959370940864359552939081132111754275910501742075611522273865014271699175233792943667488490943716816616172628708437969305464202809519060718362105291518848431438255694171920482310871729372070661900456435316102516937225602437825155418759114340808146666550470709060084580473685454249885753666865554506483792443708136020041530640302338993572107502167489287308794494037255059184225581621845866531870941584926610062709768845454154763854357727989262867229847189641675676380790133179047965409024527556498183437873825840807654681358672428081956245706094355505906145974623537864128747443097579210855115636671191830535445075319504492345374685787341733343764412536449656057881460725487158530251854005168961277856758016613111507902021476188010497010484247467676382479589877049560377852551292057252269027780966185777981993040101101349050666159959413624075267074607631258827321708897488517861067501219463831089899523994975119847301326477185956088931276014559174475141506805122854804851870617039489223872124697505067727032041906885117006013663503667411403134260837582417584551292812066733884875349382729344997990706153326491454531210067332389663248027555528237950951810553425319333708534080981397489984991014456344252744160861927070223815900398005519795591732910353578843494630919654133374961634245412119771482440310723514254313421303543336384927714237776862547790333826066844491893322807196954743478900437956232249144244814486295734887518996978304540465067270415916512195259197115112824187266190120522521157524042421313307398850643122932620525799548378920127089853321253915733112350435437109878294384033415555105683215969091355054465760849908938228292658458053672045609101761337407614539139830662837449186224526603896151928411232324482405455420356315673337495683201345174159898750948609681928923913056616910168426391795727043222860429096829701772262342466866415367587132890496494860143182084683275559712770256450369602564406715328139534790877679626232092918629903425050544959775421872930753994451993118161169118969628130150505693446252195702373689526680830219869078850935379973732199176925413667179046058008672824811921835795875077915483065477812614651448319720787148569058018945628145181466286537066868024247454664146227144627774555590739004536789336071326212847441513528883295093957003924405518666163051228315499545297720342861436344785681123330210099724071505144465450446547385510032203664320007610457773626071266983280172012132479864768219888034865055987089751073381010585749586102826969193238736609137997381525634564089139811063431056226998808823993769840789310878205398520833151777379297821092633511024981332625106337776601582687259863662281280153132824854251366248929943987183683312554099723703631788127275673431730557809859221940312027004602834974423014858925989163378159769316095467034712135227393399877615964954786994266501425766251949496517883837261771354945125238000662702179705002600701901531917930280828410145821807809572886535216456947512163873983415595547751696478464139289695435744584293605235770481020016760582863439399068827005870327054751075766499220206699139806316171553404711366304083721480195020170561741777109556123618173406451593342498748393395400068028878162112333997470837170594759154690172189087399411014170974260858465946074462238759413730521880370207646107940073678994473851504047009557581924935500793050138583467580456178349213493056462803769931335742992995888776830179416175726622827023916183678621385429479575172934614442995219751044157295029097339373318888458861755204522042314179028421384519481837758510194091131804065178218393950044562234190160813235009096050365002824883363735441927842591676101111992333764005561858729276010524136366418789154541369903272835312452377649224865317028568727860349567862393377144069567294802410094718854252212536061455773203454415171989185421479564309500028834208455212081845012986865390973676478819951274197298741695125248593840267042439403874874121315084144112235596096019110205238395891543481344546941070298421018382345598516952810256486622584703393319450920292395620692463275051811373347342317689504113726205769007760246179429299273867612179896961099936778640796163495159568841258024148761461044738967118512556035976537948965671586039265450612876342563314109963374013800171369031367481044713093636936307131703180714464715528092288533696984415087798177995611382108897826218479858115627684302843915995920120831131939732476982068333924288382952151628012539624669291949704297352106983225250012542188700187515255291134767867499350018921927357239447062575876353481406827174920226453995327166501943257092176448489569509212152220075530023438938109289240557053172393185917638120349574517636349055671521020603804629457470928553371126694387397733023987844693605171113060713150161994577022205200273369323862077764126460315074201000171907109654443919417275768652789528915817875211324595341136522868029502911525111630427039637047356973474180594709607736730577122603618854327439023648284743947745719296974560142915538183596711533350686345742798822864855512479488779728719815911338115439440809038644695004295937932817748981238517479164784439142606563120610529141541950168504434215677379362529756426139807339705364535496613158469415338865953109873634824335451772402820393813571869294473141191853352897200084434360685102712675655404344477375176805844304563258868979210848630803917175145186377164209439807972934433749912845390370712187889910306582693435386116593354233282518831521093964784427679404686520576152226517134825101816658356781509208107823515022320003222202711664166622081730646732232573703350700744198662418148486052660342821440713208589830627885463190843820216278190636964038370588755702502598568925943878691651159780875276179887947259536451845995256625742541277084434595053156558266492845753528965907553007963050176981069130306678111771494457617753191628100007122688887381581749356024981015931047382188510434441613709125344562969221480869146787139993267846298038704870729869828203658197207832893487311138298742039378411980928744520671142224474394740574280585911135337379425421050663737253129974848631122229850680392494748149113940743274916389620144138184661514094530262435074578849920578350327223372774400316794011176742203814282810437875745942076886843822933387802196117595492117057788889423397435969138091994159825966608477734051920961934156853561163801135416752447620094047851118036426667623628815595776204838180771468545556609321189310768532105891915401800886256703083738601331695062184544586768294025821885103747046769458867916135534619554800290492709195772715436911717017454751480523233475474880668061712996451715893861687798829172644731149710004952584788934883683258947384842943529354405807563804794042325591139615229740982595557944650452847531772666083964591324438962899127719924076278016046241726329902655687379159362283224832595817064779651884573018037171071354105391853300732089781888628178550606799196981153144711447718343020669757813794130103201930691591116496871772872884158581791124182348636547201119180810287089161745377418343155179689167229056056564553933327000062983310368781942080128865549976636707280818523487854296028176809652535942894010956086712825495423457328099222783601151704940897204054701360389981452048795544062793652017772884352496444992648070668411222568121294495985018972627924753754109780503945900418195287757774169199275315171591149162131767149894984597613484812855483020919680604856837941042011043985401783601598047821138792214539753871657842801599332600694781922564025209616278216609158111419204826563895536126957496908568068696602157571170205393138247337912530955078656554249360339350772213425706285244406510713901609452311176455927784938123608339456954406941188056590405269489202099183218384706364359661436961069988290361967429877507003676001709562336428562450891247983528347245899826148067413713095459656525765864124371192477931536312918846915478112609579600180894366649692482368039047509578894499072559054549665957036472299743563755208506416600504247818549980368386910842721842077772280995833242385644477194527066527754062433809424104776172004021759339357858987074427217056146985719124148322845887519796958056332825163121055181302074527808722746053027458896102918823517904640641907059282475271504586463600126370153454091411045335064346865638428258661937418681038769592284470920930292846875940264956892346935014004436352346819572790250443219724723511040681269061342226978177410605250799321933690643064234325422799648961772046232893128896546400061827503439705503387649215411431151743290630162209213985560930310907449911517663436115598139161369363505374059049254476171176164952857794849833061669221438978244819060151161460158139754514239345396187292639867942217793681187594729778077303571037796354152156302675233533226800131747302903662112097894192425657564145951157583140118874404347553300993191226104468378746161099030676617923983678168792542339057076237473261512886397143740522927526165224678362922317151326795772592402425921474231978820730512529641409681979001975303196372480647098078703633579829219490485996088629093235878694447272393907046471411027301814578114424409367710057194370609524339271960328459824880824205151969799541760182098421547224552669267503394272832537867650025854975463375990697440168042896049030693725257528109747665588381152764377289412419867336529906053203352736380063712567955006971728417127690318374978834881995801896633539129821048593094709222850050368737620687421903577301896101065698847635643224658296428307635896051948377292669389177716884276988042487516733374671509554345433800731046298263113329656749524265720376702436570105634504244430682457075669853778099328490985152840004624138905229782339352224921244773064805151014726286744066356880572800981834060963682525045507489222376833281991243635625078037199313294610153347173767779547773327187833129178710328710366965647339519199934076237685735566728547265815239370263642938386187125055218167800418869398386654366742526928762216576843366522187293444212029452959274187008463808727269767194811720809840905827812739272515360198379151826037254843238709602181256213518109862164305682802327414679728740140786759024903518214464917911213256583931653760010434905534853061110214901577899811556550535199459061868732532141272379126728999970298544420439324461788391698112260313916383779954334566464544963556139841563077127790030070606981713228948418385482133444865577551339139022011540402027840161821908234429932544885801697973292664439575080789285594583672202097247025093465692408332189531209752207360212544166767290619565116831304529427072402831959647986263729974599666331655717940530840455913410668208175462981663786381464334946694288041404181765447891658013402951675159527069338720277097206720644218055144721071998643117699209773442396011859454395413815226543402330719102851717785012551531953143851786726332806953876802875540541813670379985496695476154694347045794149093970464077062635788791523919288099043810834825005877347508990917710865199972475447607293666439210985021329837342542629901098333792043717622951691280602337526916175077956877137635057037295320999617789783962763834294230563201706793111295246217288097763955943838288306655099527141570112916832123606290441611269552405185639847628734304230577637226497162503559185932809198714772889165479234881998673428358488039291022745351518737003860743287456288608551068380785155385753478172443568391069166630022920563848353355278991635069149911217991300615234436721694866434094205715276609598443773878150128062404906090811967377216419617647281931037569561539566250027132282682818649862700121087607651537815363776209148196264826149314111132646400101368093079749787749468947910392741566666951322181792085777559983469127686717876744345127130415389883637962862899816737078608768547113308548021268543879826415512379233069139124489075303604479583773152790084858711203760981021050949183905822957714187412799189649378899184792615920642045479734731246814781160174158727075043771032280617400920271810139040864086723751151277903409309037578118980307134851618752519830641746930172913517979403276107203591545545498655998235518020570440021891159589645835079906134817494497780289662450336624816656416127731060620495746054276402371546381094045478855123980558359773517657385614668981289338003489281305346523783162974481190269862095466446416481293496886355842121713286639220993215854844856390918781078104013610203535561162869454008088301136280953396301410914663337498163820226222418336479092082370442521205434247156537361147294507120534486598959150907795425992653937922875490841165894865995862126666524294811971086851297255171148251937427072705198408649794436910296308331821302023717710414035749726890861081670335120470962873666407398360804858852835011571393165417564291764583121536457496455232439727851057179534736026694035080203872327534399777072691841239189270483378868766794159122752692462537448830761144385621224411118380285064629939228829119402930261323781773610568233863228003437272261189080476676669544253517980365361485641546089365085677182109533698876206580457125527801031582571526669421562847837061243982398208623971036479121789890911347851673154694021845010054650925086217923389677452778629130921960518951294269241170426294737853444561070712538851376700342853758798225145659669678985125976876961160946204833899776870294078026543060274275275532744541956633469634264028773789725343419934908912899416395295064971777737028422141364241145968842018123351186474944721159245412318320391013833979861299463046941806692062502403272318207496627389789995681834330968192932953436620087966755809638550717128434175758399853808307340635070065982410920787430223110056585045955598948463038401345244363665441742033721558185259934073762313674340323633591247907818448338595697646409795562511462029484355997207659721438990885660658435012031188955688061220596994191259955950298584100565195414695598111463505952770682599452755299604363974780622831040186262796950275504334974122774793792488487636739188333535939140327402032027034925969969447477698006206686754163093363153877273837731599738725775725529247773521009166995628927247737583029703340727203673913146613989551790021456522052476620300605689929223994631028103662202575369221064198045362790070927879150649689537744045281560020762858107809994738261120489259478042950029133116108175055558078021033415654758402683337044298561724696680980102068104987421308393405363386358599942979216225408343735879697913211929872827404290282798339903649455049506684498076941068863330122099324288404350383321780815088147073501219434505683869341952842218262575438919059867709579608781400740239613555848844677217010135302243489169754407701875062042889833776028728979959377068036260815632319364236312425525392751895677216194421719148709431313671235398948925224777292805034103077684497487484470645840098087187665863291884693620758672419436667264414363851516262289711579083135317024059865777902389369259185907670431633573757630990408023514003625582633399147181163006865825091199472137449204504199670568892098446069156863182404993522027085210286123310182675125922866237696991965149737579132273826237762168118748939506181557866307458310379886105122938424973902377363897514492625374656500469466768436218059071613408948354899853734944913991268405781392933198453634409464408171417071032319506409334352000682259344564412419581641662148130200657491895963472697494955952445514971446373628322896244561685849229411294690586273460248723548877382158630474969189715487650390366100623922685367709436564281153909141065808779741978221466920744019505786234983124556527166830073540625253954652269483682042492187725196411509041140425279026709418412251167721719748679413765096169499573769370335614519123350617103176577962773585290825774575068618202616690836968482329605257000602873382958605294363156125611573606210850422532978743450761551634299771769105210880939100329663744598579195770863546931458236923819683128301013861736766951907712342781232512423721490427736074732246986211256555498020384016762342341080077984321560060289077089030688723175340429389830367366696104206038674944449070034719951433901250528916658975740982776145381182644951389905572487351323659281374380359707588513140643417364118386354433175938442521945726915550352199145038941224536277332684472092072067286681022543267892587780519752737499553941783193954130532360808890803456411515296018196014712865633300918928561370749677585300673792107023076774046241263585770348327605746231091222126272772260424295873660619547116603038881767729421996264420434800224560511262795351124520257469640943017518444352915965043874668495477198524194894558627178502122465341542842369186351471971312249293601907837185728073444722103479258263490128163986246718999722267859455291403929932374581156244648392559342121172450071445011375523772021347570413301519679718990134021553031746165450422334361113292570912709328723339709160347715328057696583117005466937095559074423687609408209497192746608132543612512389549966882897205220715668394377914578869638551113436540362438104837406858632541164721657189414613377548156333782050821368179610911081942369219231988968650151912594781224471993662262161757583716603175465393714476722661006521823127262904405532847412222102023627497389320018149291978412253632714732024852349407304508355070689419131647329853787928444591753674769972749624444707827979098347056463457586299908005267622419651292623063403827153191288313390764702036275266854412104292747061472297424426329618604085662170003482903350879778780486101835011659158804111222237261372208223184398228904969194368894046503586991810903638937078355822998715954293150077332931434695095237037629237705906317970014902597146363608264065405311397035320166830216399550415848518654437436730095696305765413876103384278934017176879370439705404738820678580476577119858106801969684372983361467041743573725402473874175992356863192784939757964789202856030877697494293353098349835733097131151209574545936652598063414302298277359538050769891073438373465826866791753012265357091283357619750740682607064056381543610271199640960384078183586779258712230805046320496102208379761214437731548943420675213953735700096342097531672924771667537992034375161988915905336265988047525475405506245426681656804303536238371583398981454624858052094075276633133764687435228561732578182945408574000045578182989390685105326714266902107123473981477240966147399499047002091574392428683533434919997748595347814001329822293038100947378907448065414321061638051953725773824355501940397682017743010313174553438418700148897965191543028303718527854454202191946986496475456722930702518130971150710957706725441579041451965737307262846984245885170253467957446417207215229734936052497367382013637844920674951899457846094651527769462073321432602176607616848349254633527356307597313156476941723032423719907031307434386352956785031683714935061530605260178239859563411922209073813560020519443869496060013934555394341156990138058026678243458607880853851589960339699533464553555849444795889241987297206422632324823714924065526828696577962649847047168220906413191632053684010311742899349340072712469884969922760076797379697757507743309759016894497126533394591126275915416752379271546774181975375758951920357207027618074491924405477335190152992441298549401620275149150026262593057815914127198386379267949231583092607418322352260066576819674943757427827812983436598058685783965834649518248954290214802332675231327877642991089337897187455157785042796307007598654396397978161842963434984431176275016075960196807303768203002456270720836314531934810675155109242411176241271673233699017991381336100452275986328749568034657562913993471100954756520880342921691015117946007651327670078405998412606526378070268269086861042082055467852411774670854749519459720780278381611400732301644411768068293115260983718106618975582765291129304111760022329046847666312805081110847251248878181998890156380364013335723902317254529435864239350137744243306939835605080817000048682524012181017469257433077984852230461933532966832109147489617110541093717927942517646718544198021562057087555445495466128546945820155584516178328905544396047888278138751848668918088341605536393202900737798923531308410093282212066611855857347066135436839656574193131956795978489128688736686937487486660418017479708623318298394791348852558630626240581841894439970967471100669017237980817633705754923921786253670146539414197391248054724499418100745669599459733584594775972721882932149573990299359699282728029711294806635725682609182264357161831027130874448935797100583026040161508060515248542078491552590500930305299045006229012290952676281929291911565108606157663961629836739505401072437306118018619587105061362418968140543584181020416231384509972077651652322343853266735039698900114835475802838403717905382308841105068906396549889638909707932912830327027695013998704707262671029513676446701857091294959287868161741850048675971678614003354581787379819082614312634505463796924776676697100614629962170702831545225347859217419507794653835541109579062063127494197690526593576759489227401970599727042984305314320855628553008855475750387242212703521752995261433093372466959321676651817972132549171699030629407842567854655803636741281274915918036562320473656184773013613201143889417513456404914302920858591151509895820457311050171177909363651572440734876582805885812323290844276305434640239666105824015568821089838109100457028752881652246135242032806081372727772648988584773075509119137903725258742338901573548783215869930750357191782527626050152729931981631097388447343391849590270220225994626218801464153761381066182575852099215443781666689266793252376046179025830953092790091212735519619277207908284986047193128981605312807479274806117357582300146053565579442945061992613819541344019245781994651435763332022825378499803880251522775632082608743555564075143621838389524943274930149805455770149764043822126790284780098305361871006707738274586803637949973426163730627802682394105026577027475522593079413728236475911955737167967745795080704013349207333741441793247694520087590577088846056831575430262721990827456795911243056894878564132591811760022176724232537204080186660980468558371878166852253900063313641425513696429282076224194161478923780574072984787909071013199098226338770494800900485934549061793473822351912249383047062199967463168894781986713488026644441053893279951436567567743181016130563216827210243031264308552896379835871446076241477199060311993311235372608661415228840997319467096704270754401353308397109967810213436159142730993658312260828910019636309040785471758013780044486213251243237736622941732146638304306458127793150083317788550585172262102722223221903416149041453861242702957192658358847467786596250739588601408955024228705738582406531290432033139896653100935476194695061747419726202521850038195176990465421701445696946809074549172586356219745931173975020474383389448556761696806487898992018497668746317429400246929393593908255086739809986349960030318046723376928378459234811213116616169519084909788775965748411831266967305813828443771979114220832858144818124313679221410939443596366405021098333619272647556180306586888321071477192666146148174283694411203274348873943091849223787285861164279343285224987538150018188203181518494862537437088254718418920980150229821849953915167830055130902858165123382947419169670796238479910426438410386664328085221070013292977890606081153132701069097396855607422828021227086009541744967458228522694607536644861206608127694139466607932709059797526330324682621867031379320724024154250392238697799960511614163518890674054763286870299064899337779032209868143458033134505230831055988524137549730016541110743147132003890493957013571960366439310231178612619339922399517021475187086504752134663640246356046063098571601397318108836783680190625732803558716514798195571364248867750071884857248357188745348185638608006895747377138957675922577403673575535661194478264278743217310433350011166264358626354497433583701587090175003212486348974736749279723264366420701112006330915776036386908022248516250573510114369356774892768264849395473159348644028071686572057816126642561670846266474385847335402439317285065997748196637035609394483363025788274145965576550299088111635460241294534782132638921262546879501728716918123904674408728866722033868990432851544067576798208106211842001731055647055653624887849153067310355319501495491923602692162941178059516088782183989571242569742644404171260575182279969522219076301062290143744980857641354548865463570090151811529927261129426619227695895384080048213786443898248207130135737681910982111166582342670683856530908575860889917536370056516003669193240911286042495788035982037258203803540053806094412523596175904335426054696036600164820149076776551562707386775199963587901450456600910458868859497771829100845141725715277369860299805358068635809574142433192949803618605484366995238618458705668917057583953939545391223883081591881032053061432600480861588505416850393578690361553436287112005919455475565608567333409748557861433130024609077225153955199863802596090301290924301976976460722764951745212173233126477860186993487988725636566278824385174095280898324143257751268560157145053814881431957009570681924879783172324055542609964672002688376417030002902057604010824484097627961475936804433695108168810004823781878023639123751672533048700099230788585807667506075962351422926148413256830937978486707299684223454421690624621077385513886850288016428859787945330055566712174636257743663465781731730415965001366184705943085385237544355867689908980144396497286612359966614139627501834590959834088487500139136186044957995305564448400404711041947548407617630508149247899772373037612717167790248775594940492327591931644239171627567806024791465619637153104037617983897461887056258166384244651239774036300430347827927779033294507511119932957407910240904413649603062668461015870964349643038300334795383544579610133573453569545158391278602611770620736195836077368142044274620500748524735746147634019128506675442308909503695310624437003455129570375399028455414419395499790689492671173152057715355300947652486347966729271536852382358020511864719830218379416584802735060926337922183654284532880941819986961795239147070424509931697243827364536225465058834755425965045119249255597246978295483295491662599457836229597917476940052143965683893153503612054704075501850169124781443760507025739065924701067033421894260104658231577328943077543007895227405536022779742300314166601065641030658342715129991792674722467141974712132219587999541507158884162060233306251313501719335922394085874647862006299655723772772451226488973315926656267601650523154219776514066174258010495157456024803571768091467530623053766757779647478662135278253180017408014719477613831151469608137479991059045868517591083214261940430650018887893789569245333647957580106808361939004905260655510291162901443131620426370981157626799693387844760589268719193337214368721662435838951396407755480556210075940969961348527559255835669172744955385270875073431420684215269652412778267056643553050199479142669354908149571884814005976914128284616817980413172657097250550257183208596457340638167644531406372179926600882113205151401597254209252535610379710966146423236524199756062168443881585802780332008562631275235898578037298234831779071942800862333211294780557790067220997215964068759002892307733180132670784120258600844322651888541960720627175396132492513844392663288028986177992155537841193404307925200932681041068049684178900537367323398041566840935713124230882837455461885220072400468121406018340524868988571030877824453460236053895055568881562290358896395169595767450286985299347581162830199487668867567569375326183066887698843461114158822143411451247229562650767769668767646148607585414953565048426897810785526952022108203005320837048254806875445972850883904320714948841396597104988553117442422398728897548759044594713965928675277529865756679764583908673689652124092331970699783030702427662209053309308505006209088251357254714483835122322697620338649752921993890209513251425261674220232716303721098793142959126907260465864868535118498953408803213163666807612319788146174134333251305801609803921151908079549697741005057624121177766841539735617766955279673434841319522901893690990476061298423852277035306003250971674477801691631403626539087249793794283505068475884876219927641165612333399303458539842016653258102121406511356507855806732617464317197507715957474774393600638475428871901695231027897579113845234916055012162940403002348275099341565617533569544712484371794158949015761459115260177171346850957859004525327964743154441290863655990412634971762096983884934040256369530498678827452048402877679671782177481674303023394765989837031172368145811266182032927541917925564426391437455868392275817546223768942627359961719957136405453657503734296308794881960050192850938028422927625257277990289060081274757803869228591273178220801772528963501113569843983622548687315589201658387313474073347399512862212721466408998124189740070115276074886847959443435785242343680517641469105945502892948969018518949495080393518843817917676970134451768419760637039301250864579324673071272384970192439255778270634811237115705587139300277714283098543798220672630551179675346846187670184953910079234473940524379559184509539994826356993435094658327214514841507996588044191862305393806166477619710890044422500739649313148175947647127716925647726902467585845562241273459851248570976453555353600308605353201378792435511578871791217023733673468855057399373888769464719273399942877247315751454945318986125385511405964704123955332616746198607247398266891071201613541575546611994366339763211997901668229501196433833281049055351929039007485697172799012522359886752624218878379747439292293046289963282639184004392193603707877419693202596929865720490376051328392394182129477036932669293111811096637954829889613527592069965030360558419521405576826051881013874405628894703473924725477237953370450882336819068242794941516400030118655810697722787791785199071850398370555208253498997041221371776619593288200271882059697278117883882304634221601746871620744502873852207386715902842791530105556875294082155516776625960317112041088348654780297693167709630736900552399775089181836440789587446496344421394727806330447867880549749808295132799604214005682219317022873035859447012637868523913129595851236933544416364731526192572824592082836070563267106650144316047279017474200492099854148139427157642950713509230048313911576766582877007883056137946079399829645772084741428054909496420973969622353105384419418886817596925313072418763972515861189030873781069666532760942661079447475428987977638256107407458709758115931447072800599487814253466727739994527341647960188623076302182607990427051363300325992353912514352457287302648979314876571201761675297362219923184991985768796042301378037209223820736011875664450949520196710529372571896452868860059692006999424903659426517429134048172787688743743417311377301601783828964947613533623491184165353879134052970380970566489286556431831690325125575698214414160513661002911857091467102032035427750461669522411413579802476208100629316276463306660289468657788824194273131659676614646289127638580725607256886162149738145749469665029884545113565361045369216255712389648137029800544081822087061421650945311083053192994433432657753513687909420104890613949782397147984165246707147057161928383807992466259510616107043324821095419569327115882507316182142977682187455719170411625475160064328696699032966197625947444826062690168056636025413717689693101437191033308248708953868096047160423345063564545926547192510185788563247995487084109927677374399779445822675145368021810613843751834395929170761498260203877230156877419940878109700108458101642741502721710106509020732937097995967264333080718651590776839693635401321643796450217020862775513714246450200961610330248915474269740760761503288794578074254541749658401631735199708245476304000537130987088248441935254654937570676063914871909633600404913267244322883463892172431752128392011410317605070742226920946649549186453684894179277258300302395040199675524893450927390390027793627631510930300034736845690984969822177297671822026369626546626703124582270467862772372757512509259415091910265602847072754065933961902047560988298207620910890168092483420557122172117306141839801292196091658936323316124646024196071693664901691634681082368334782871836125373306698845128457486303890721950302914184066713857393153892563525961179801960188424860017797935108230718454292265925123261762888892366969217358320602283755097062478294033705699853379623544366774470723985259263538319494249954616717886944097309006577751131680632714360991673582799705988849042286394234517486165217745076783586217108989293259672100433856119522257279949895246857968477556972347762532434388022822889055556979669926492816916128383612288686348336363597558569013640065841913470998233428308065693038837588936338614589068213028406978970637282654893305113219276379258437693583303795938276181064492232837046060233166957944912595165347783023678828821186854448266142043212832580718554830952524961324780572727409080509981649526264706497550857130851066788682660606504478882385123168341840105230093278842598260668947431630149587263319780738285820086455987794566654512566258078395637566634797924762017814497475997681637463936459487699034985612012263184647121757748374955470711412682610486366509216348203687538275136278376525858171307677096351209494442062747879242204656484810651208156583462471391128043020291043950952190431183093994754722777126750827543089068107270166346409437007712047871695025140844111378294454802678966155258886854954581703304631274975636961988942367098458446154721669804312854536937682436615633112944521265389013181139742153562098421823144144644175058075048686500518150124631357112217361551462644669607389553551868248326740760955220857705944702015398075142612709108102486549514572210551625634331867989719905841487618917222188264620082364634445667639936813768947934668752107467687170045812049553195793860846816774121817564463537836326598375332463328975731275291706679198595270849376409199320957947930854976175174894872877194859749507808519512798458888724763097433317718786017654973319670033855625413833522679481953558669569170243101021440099696135937230651905847351602963788106604932743724162513267626738953212102925025512039595874362139548782402027762155193089594592525791397083123588060790260202309087668176185210033648249636301747038626187171582939106993392324517529654808576566002427196552409170938670679583850121223175289062640621572659043944643632273419096677445877817375860159206696172313860721544246902451445047888166087883300382417632311294646605317470582303497007917924548299241111518790046161473439451650703873618915262907821746070995731187508521340517043461009613672627986696615043629566818052301119875635135924039543256531325308967056036299549877633146111947320942377637596012558928605634263361620889920493719537443715160131537782954683041897816810403840632197302630393627870932072638815290685560668157320960761323284308015864944172078869979324989352488219560704576081939712572212256101447935163420331428336453355102128002280445306094280451862642121986916678270607284754377444499226217927287104442365070086843941657730926575906107068108602744182191186283029068253048939060371388614509310391378927915977878004942256086750094774014792897538303366037752553059258747022646309695375488786660776838342041332406510104111158702178448625159057249066124476671142826186910064065572360520121780395512707618590329187513489220011022277238203625812255693793091256213596884037899855240541579755220617389797296336545178405437320943393533428823317352580349472822669595515640638857161769605461471533437975293720338474319185963145030944365404269926130385316765680879550110253986224067358605292722117726024892566564260260751192888104167322254473927042039926767944902333407617442838473316264056368144396464873273311463282490919180557450713687602775546717662345326179651960492641725738704230007679517660593701892790434523336817211270209799286548566821714701303615396428278923365761770293701987346681402797134885222956889577664494342001666446832400280798468839232656487630120922745726624393912799667488650567640143827202682960249870674415560015084691990129289372458548668446857316409631983961597358288305082749507875396240723648869376029754534620645651315627275562909692480569910682039459505364288786649201107740749071808647734427882694938803385194455422140230445852776038169748627551690176623585703474692994964157016499203253202864139933391112134105227313281966174254719273800184557792727615556839987770982706678103428304660982875041702517779627792061634384504089934939251573872106802954520107488846690751044892740624764634956045546376383161694880492558652243434050694347877094824116147902091129086337531505823849152750526374861991190459473953793470420777387218137238887417236465532587592161245887025115569685910646245417119599267052966643490126816980478729850054387888802409655131430635316488151548317045309857361269286143407155441060052765753421260424243205959543282479684387204205079220126588032580969497494531907432951439588151669418344370184524798101033016772787880681302414512317502369962312637590810311127486100966006144577037287299502434156515021943214237752590726946115727919182648443562154482191201990588507611470099184884731122805843810077796634694475428499885359893839448881135864299839141757257972587245873161431188685884879684169322588542971914550632230170629511774278766212352204946629212175084372601734753006345518927151583542421466290897193504158523420739434987139864674625046373071306708002692015920659935066060428518096560504415965857171539664039457544403828756643824186263304687337751101092898042211496930235838667895244287704360252228500494790941466403981186338850735312234540756807414924309857840194171605908466026808093932264391763119640143209683697231294465462819995954927216918987540300314840158290747918052986382554584674200484348939451772573008785378895136936620077475414288789231993872858133525365721816591696596089996348550270517034255074798159323426072801643183284511242751796071688289571458727616787910567655086106084269581914101516948204666371272137406934122397297432612677190828157790551757271398423963264337062885299235957562031712134437427856196934591543745282324158138626094938412409111820424758957264059357144984538528634457135895223869842277780281734120269772094568941412223861089579865226090175088948659377309095936481625833594015893137432127104178519424674219609968346648228587568049202866051737493482177468437640307443438236264917780877129395341737955001796715315884693612767506905778804014206510199536501399347742260569650922325954689170246576815038345013240030114453195488650418210716387766456860780120434281307929979304939859046411656944142808608276527158402736100287115290550685714827369487255029299318107094364774610924389417680229896111220797223472068914874671132243027707527393949359502152072087812947101367317077104009811699058605769933140959372564718964666549621495409705024430727976821900646849645026824382281361614635059997612751219443524338477395463311051942757147050622257062510571016610445186845667348022928983024700923624206819988236237071593201229793686258716501987388683431635366733737127880583780313072777853812450982463557018972482961013369453042544168504601238304364341758031747721495373327994615934222513083975711542743379893165833696811482646980746450542246438254004676223296945442703499272647653212865275486975120668766562187435761294384987257867367045561482534630845454784651331248039956497275069306299931092348718987092188036459967922414939097075589667056403204762618060214661345334498036944568422895280895769752145632200026617830237630729486182726262412893736705217632235104932736089918566392521094627379564687473096781811320651520337506530314049606711451250889359775413782518856958418640515350384724297094854958624022183790782743910585256281917002436666669708821366585957592122655058807248021344572169363434649421779454998737055930289181216715431255635731256888502051284341435886996422740126193366955568917438423577407197856030350231794789209784279506670768876017845267597302262315554604017292223994641347611108236504885110457637613905932143424602456720381190812570563026943273038227671991516854297771608449842375698744923118308142297375974466848991645018534628859197543258419799076797497983297105976819391349570758138003492235347769853365021703418008014430289423179616293158657323797566335940193460660757348952302414947996705669930449812922858350895005258436483848392317977107377882798730907771001468636212748688175719226828864477055820940208303069906480826523714781966176742466663177284381412132230723751737594101176181507818515130841833922300974428530291107813502753170972080565104009706065068243023235747820485747158187387073660294632150931811534335199185759530003866003690536564926973115701857445516020707618819864564896968776556151326218157778723805816377518211879417267944257362215180580442885649994470564490932938550148740168229859654202799641514870891839143717428353558431441130141260086967646386747702737778843448763395552460479789149367370728532920227046144237110387414724819132321759751051509778748461694742720136468265243500318228668662813972867904340327997767673606470517538467386886083271118561340421299485317344246613395990707646294981697513623794055092807315549426731644212189267776420700838794499434335749655103449332833561736487070025580888317832224410024422039411977031874851410926760776784864614513945648652432776306775333279098802666632158263999013520113379621605436958631929779558383749872511246084231653066627458515035984900168012803473088271174965552482643634523234811207814886459502947802837430976124797996366045677193679020932357688852177119540354698759571172452237162732185866718274565453321807304204271988919770421054781415379917753990607039232637854396705404049414807238859349013017316224693754440553400125448344120894402902465890535316283437801296468044583201077005712001014616580600511780441652723515794290018373299364385304193796961039124954756279330599973325578899349439405548900458476046840816452668594490074654300062135474271248832899318776542307591008781197672506448009504837930933860865288893194679540362874173077525060636700717015800893679944976658665755304935742045697662478644922050831566596387478214342370450384781383829140484092691742571468902200678372262824506354200280883719059759033522632715906471805559500035128604946532071601950494390324935299462476947804506111650767886662510837800135806271964301430968602125479430377192442684081202568380906359599071555828422819509743522282475509183240375130644448283135305851802958489187833247839094585024635996726970070466779369214425295517785562791866953398135681309735610208788216916939383839590660234456673240859339541094405870361704618106080301492646273256264016970395378444596170487462910058202296461216852975304860261288019645388986132943140352751523952100017592490923372098527531824445483394434333391858428499085925505245698438848568963803691143425671093678140253502815296734840563289967866205333484874295121625626530150831512912238527971944572001167524112738187920346594812728510795264315131719481639220820398326554205361721350091845580814380181648019139039418527810818934660772471707991885268520327830870447375635957489532174653669278653480683587935818632586528486023906503300397690400341344765710243582620598566332325389403549647294320518097922626239677260047775676700002478811063826191062353493927331741183396571010485791164842824183172210703992620641939260674268327697322548445046203955347113395317000799887323598630510455911856337084948708863051199405093514482778264673041802565968786353010332267644653529546938825565020710471628141772003711053457919968766961035838892584289236218516169987494670288210266327324893686725968577509352812826739915935375485688019768955753221922184924879371160308031948367566333392238419037384531988520321798515376141396152906911171297728332764895032055908609276975337806565326737269467008756849230162560445639616491335017087418656650767436172533715930904229663739823962335704876392190449302435857520605381488311686009760507390035263304119587807753803483796580117379884560304106995561908231625187280717113929609089854322965816002358357609922169409102980999330220762483735136157276438226606872913757284459532096815654784298023639146485354487358674880210287183842532550890361998480383692083572578233602725272808093195355083324536504434496345234033884891789379865910802532486081770034226157061432497342687824092659349999154385341831711702614076259238713736855728975978247200209066047669022374078095207291488346533390719479664077655226029994267953204137841450226019934785416199214158288904762380657961334218958373055275491132294319010454709215816904620437915665767680759414730565282984235861380573548726003502316576905804176138638915172680472897069735063664296395991748362474497693626250274781637643221396715269528199501580814824526954980893917027562923841126604452082019119517130032962798175112105831070986519918736039143099917019405735202939594995835246356437834130823812097178865097615836492305378507288194656004438748573353031690496022499414414185159737244290232400489834900469671183399019155625279657172378043419773936278129631367514806782612601575001894576754701304358794021187262487821520912903180469989765567575270061664750790681614614006903055613944677007459353392120556438986517943489834669196401685695414376393948099172593782920754421760113300130984530109110053807561916627528717593676336246346287960105099205814983479709843850801099514785339022649837235386500189016843585919987850467315791049725729734782185668116302815695042627681953716988677897365070627282595881772644399731516214151724607107815848987548147623146571188268873939431373093577921313310454999578345079499876889117265974072006277567384444088588668805552176820302996954884870918522093677255107814327600445985120993479249057456041162197086116719411174233016705543084339609259611793370750343054079381340575310933747796496783224215377500287659046257162373666246506224608943937600939919454233480933627381156930267483554780004622002451376065658326965664711094643655531861913325797498940799574143145043930949801416081287406991912717247627450640004416701825211990065693070546182086696672726520228723496372494737365093805319066387702920391580462518612861940039237528780405596579878605670099139290732895995448235631179393379706500421787286344860526359703471846534259951666168044140908055587769111311588565546965912870458094966074893628191551248191894434759790693747030388656310747848557285479937741480746201161517179764349018537426085514557637309968110271954729062368481017745789099017569257211453071570878105870041038676883568252883438663822218514194013333859584045206839099335856228048210414587553836118764998322756566005224440886901247102044941453000788400872305448673863011986295839555333934560131892686042870501660511144873970613519071918390279643297581861413837171395943512636385654346181625628710890067738785414852052131273869824976964754695785470707274991250277560054404231318581001595740583716837868606907763672816931775614072231258845146530961522844366225404452648547653622693510289423442515120118323341823743989495272428290097907718530150111145262642722240854782687556144078750866247931318437133912500217569128808646321906012128109214771097566453437203549754594831259427558239091441498365606148107867530841018344395182876300634233415119961416930030573573490670729438619880654408745797633208474919076037519050488561512282597541700070944147121382402426165389980736485442018810380134414732279459947091780492521703079111753131924356276396704137822333364173812550068223805040957737280471488426690691454091521551879475880267330264461854844832918713476667967919700667070945017323991921304164928132243891545459027345813177964762645042046926667613425327486609446806787376813937455326053028560704741555824835895336650776427562031135737778649675315188761074670817503699329196712549817343205860515849362893583351995488501023589658329422163132442139343837081138148202375170289806336786035250946596160529749808453265836229694696422787336648527325521568808770755652324968701168986995746439680952058938801777937354581484373620368255370723218456830853436153017930064143261110419430945422901451849234518249059067252534463193595305204218693001602423123311579386864602078529717335367916966717852715662433897516722455235380396740146721862393297272920899701630913425582088285990455950630567581645620623519163466928262253360816684119087609952050166348258272515652502056977468926145020775897796198175566871342496795717773784660149400919397703821667556082288192237123272500589721318994189813262467509734889196967495487720001838343551567015817637128287945827497247203011769138742782655270461941199943147510547595241168827633885913919387100967140101225076664978974520942597870371334376665726604423951580707109459494913611064491113894238377725435990583893529614941949851306582533323472423780905410347444194067560643922586175132873735119465919354280175708781742518868215515361169882889374273048865366902025325781665068022493365265447936596252247500575241220957829917380041860759195062865146430565641446564032664136340492622148142960439833135266904076178507418568880262107082292765388763622375415651624079617108163603797762691712323218529028891622555919961188894845322495371672582534685117663002859382014877957658263604000324191980674873357202009937972141990207884127491570212827575778599060927346661087679773828399667924106835569860390455504853204070839221494845965420405503092728407843834179851723987920306646730364571230202576532943833925506416171824064970316369704576342394868103762087274872175677327665554219253511412315078645274027996267367193841083214319235384199643744726796703861549158416724485957417567770671811006551673863896803217910008510003811117216868957101861214722587999567116351054968608503512913148911083548395302281036454873024009318769496332760183061023546427299034380782692908958321285483845652212780017095559822364225697249555164672898765869437286669244725230513125938739065284325826440385572721076533625679166024403729866304420079938915713294147450962391007932547443121142415503076263339360835514619428666405113750841039810412143220368967070095715870379692314153602867250453635868013692950538376061928973274490593404202257795870151807251954860891224550641061336990956296169600029718637699264515926247249273293029574809104715220741308718515271330750566113333070864402248697694827990473093062870522932950073171447595186974491016005741779571758845933873796196185582038344915929000002075597632910528174431944928095820178251687411096881674105932621198534102504027528986513463605402852005540929141808927528449491914845022305950857034293662466235411370656961134029476513038690494212751907821127960324310836648114437791710689191434810935678112558800065582170008880441585558607205962239915059355226694497005738365283971979723402796945724617825690519659473259384778031095590903913051885327463251559857855008178345475783168520709898397248649608536610220997185597006159337070253118550431240679225107096043097106739699105374727366512965367991343066230101387868439337848933043848795177144557648030658265370729747278411290761392543801352807179135612457995754006189382678020631506268251362887644236922885816234597578329962612702962108343931558694760066245583902341467040142991612843016611178032802310245466913344556049621603477789458839092194501812979371113624383083610456121921572197380764279369073300202269666966837006662720877309029479427662115566385162963394131075853652577738302909395001463256169255722154658806775922063908466218142550229347270698942631879829674778352303039860859361210554363736018730341367799258729685868893303705375782631049579802630778785509429774898999078885325420994463038489836046292586122091424078580216356080232892518745589218592908301478606832765228062795388348453409224771221686508881764884712690479336189267417175211540456081909067303593053215707551591209707408594493941457396712801127770966407279781048671752437335927145556938714011680422344336445353828704163649671727549192622998262268175000441494595820628268831620831765393018262165322143743960658628248273152075283363084913216558168235676636900930661421332612317891047107802791777154379053422182741490832287763457260595968277186076480850820703525204112098159023809736807338779170114173393796313591322119863334175435653072811391528490374991031165604380811812673213443006941178495695618469594154113868346213731548613195577167300361271954156829856989784517149048769303264211640905422641305153130365945760942508017049117749611607821966153247468583406805145734227865253256122620842101051919922024046812489934917494747264063893485980457231642449295523790001702825097326988507249328058396224345114716471986958577572645877266233413418800800554102185978176023951160191292369018947122745754087977858465767605920686335635904348734945105756093742206337423426371980738341782001007579185605296775701127263576210212079666493358222393700974404639191721359570667234989569958753124863120200558218214229143318923748475686579889130989614349615990856008622351220450510722162538733825383551401296850793290898758145467698275569476414556565143418708317416734382846330879668864921734015535128549391882698458461236185874097725904222508082448581230119761505038969035577546120542723824401515992026484696256370603507665784400826528785248046939508526009197817678582330574856064457145154616826114851198077063067935109740038788118769792731692538082168162568246033207066221337299626963967166089668781879246940218125945458201807079658838134408333683260241372781860466687082482483547984986479122815994212626364967742721616621154928386558771940092188220349663497440687310838636902388579145129368459704421588756697867366369064021928646524336197904077496794117337472661904823949117578238466722953430885346392282431743583601371577451135329541755124436260032187038356795083157427496697630364301276780322269858662311951080382829943512578989279969710954943579745041915478013529763476894259225366435973485157534156613971070887233486040927758601092774912951664061948563252545526260642813338856555202221768090146353711416964114185615310533462211689790273883703099232258035554509071634679801400247259299654500416695918818179293511979289867169307211707542363746236764609175947083440999217895774355680342718599372711963170022290449230234912842459457641940803267736695896017995030412449250874423274710871376707484655665637895915293074676432376297322628002434784930773909952443997622218447966796496919710591218018864639052866482245984193581375407005043378027524284966598948180562499928186061054324757884988820537834314905655041568074705723395855086919243506169119002444853547716874940485567148522685953135734166347188376066602623023023461457229790015841440418122326428360500371196274403726791932251276587740038493521073292876798224241126082649090404182482284784918061247559650032653024998035002596438184010723374552356888911716690472332311252645706980341866167546260340417273322298832934712332076280836095634860621472832921470166731617061776474631445001143077692765834506306485522589369949047496342888008621691962715831514369433798418543157429154968365771335567319809534865751403183388652283068934431707804522244836973971969248186079868276883010467521681224981421956840373452319569448347027801530453752239601991794329311827664840374511302235332331509941251947602890267158720686897764060263558359062788891161074504037648974268553678057009526958141704340672058035131190536950627363070398695420760359470279580390803646291078394345164060323238018220168169771799422469221207229246290801526356869107356286352206598503448661763754779599827765437638344342607950449048518071979675218497642434862341512436811786046809293565474289395827882521976734452104366195214638089060514413834015930269288652823642598355209790188192088188640820544627698224680507177504792841674250573099450306395167668310541114474836458206597560967990712787845782482583167299161964451098762730558010046327515962915095583899932679879078843220641424704512768196353388872953579013402666761228036227037778113714750283963495580148971499886202981878191234845647505270047259101540410946722385478812085921794535155413571559205971152136483540587376336940651189351609818485607671345171888492390117180263350895956069284176249375918754166607826293738373920564191303717938888698868300176992888738693816137683136664535580480937848748766152227261813817671524327639881040687674670930594105262979661525794977110136679736795466161407277585202448741312851299583791950868171022686037884284721397160575596840108756750448768134286968910260248147854729648507401851802594321075299435581571438421003532541304113731467748687557986098627132943785254694243600413317833449224589971971438610320886322015602807729678196935320085725114915442326396892709959632925641307694690390699097688687023526465459197301685883822017755125095913998309469722393314381126086206368623931947609526330961993167752282396356330293627835019996238436823607819840005464123092602578073163114474552682438370536463346423947490926245677169196860692648931046802031095949129169181039801959405184951656780698449397275780463881982241406304407722919158717805899269535728961434298216936262203479552439664890606366236233097697377615869931703080262777326328929863779997892829247990243173228677063092712109073611596274606128932561566569786965429248625190431436231480122590863688407971095824710771933886221291389543709863960548998507479882249532198382383815414654090774971975208397133756104056962851117563322316991036486404186639224621535382076699154285611286192517970919584794242268006346155781853506857840417349235740939719593922554457239984543698226154429731311309776111850041276382068837325579379167291866422221139616428485025293555792585144772326388866101496690798993339924552003424510238682784790474634985197961215608802641172917968847472544428731840976332387132609922332265689738726424325528280944523731659866275682993249148098922263419614297954506729656545429524965213157401950322059854756876760411048962374646336704520331138713291783621545363956640695061924637018649879751569750993149347789146207071810955493556639386650692115569895985991076421034943672969032353568499594593219378043943322231090540887745732774468232563248205198765703767270673458312004711071732289539253772670637146496113877560127298052166548223622357476172454572181256866106907358549365382218031104957457774013762800915539135558137502502356544729593095752808795663317442065629591151747042701055400762142167556904242785146508142501428276491355015836128226696540527860169512961953783076447250771594223158844561626230656839222168098050289416981564431234004162229097733492356622109612375166787833059017799729415188789073479056492553371759643495585128702303494260267965760069059036057864448391367042166608789169527919834896926054226441221681547042811362130158014595266504496622133761069820214024245090726677073417085198646861411867923963721156784259663825549752432817179288015164861574412225256705308095493378866859281268134907392682962011962811632742413869252008836091712628267468418153408293088593692631566588548951734607900331176741939491528848889416222036011433265502819520837527850260386671450751446213419686634934472013484553076921271984381733003567969797514129006946200607559309268949772748405226950422870010752200279627918017910291087086124260409071554730171312320217317774115221191939419611742757674279832464669437757848642667589852899172910201115618407286102093157208372229712651063412026204082355696434847969395586230701495337636303779670871572558502950184334458868456789896467411383167042855190418507561456422701777403007703105240421479724480690344506295356555453618881812085557825607678556266719217515592947782927406160199949771597436263882856313544078504407677587634511100922436183316800582563393422429686165998544607269537668316266003072361750309004336930451640832902599104399353143752888946756525153699227634480010850661948304068276018307899003010192772041762797277823239847540261772324959986234147779151286031935800363951984681512514660057026871888799299754244465597694100042139032639987573144462463741910254134501393959360187775208126998935595566858662918933227182373592802742628234730570551402506117222378374214808859941884343652861208669394974321059278264250032887243659036715911026779505673419187373965496955479370977493587882517796528272628041079182696129411548122661652505409735557950618922479362073342512967823910438639010161440930502960587228217469433375441520135147257726704948340897336659565197258664180098693893806062182313156275819396773555788611873364120828280389655687708620101618201151749577150661798264991808958274621477446325278512993335370789846508631020957043266001474795748099236551200695627379201480341073685079424038579206283580999032267712746143491634717131346564623998742727781384276569799087355280830369563368477349712820680031838217542534563836272376241269345057399056988244869680480551336834752965993834702838525707883671677635939983182350782329085416684689981688754420011212186896492329080630460862727612872117402748200545020381880136375904322410275907648096824448207540726592506051387438229317540042109462595141197696061597424976877882898795452268558713027483368986518329308169418955729001305912773718071414643827739178640131140345186851490433873983877647117095479195947012484234855237632581554956252410012074224158139292292926304612932506670992929163239616446336328553803584729900747288048661698025188591920469360649607973166195060294895683072748528361249375921227367917007496164963610893600209625753888805711011977369461150972604234044943778435046453875414732471666449550090358520936026897442698568982296507590067475369221071694015361666690344634023812124080367395344058608082504747079896541928187775433076406163549686642810615087114125225829804565854567149025180251399276784132268642132201662475343490301265442966904752671558453669670676212965414997332020586885208264713657184178082165548396224021661883810840779606509214724295823392866147124328174109147762012330237965260158631780121938257765918420142798378750727618037250464718550591061481053621785575209355759139164736576704867464847572746459455540546224873648374012011434512055411315008464610410604400267577507937904577212352660923403349971559692965759772032544506430737876526495440248774984635906718339523819624529815873956645876020446902070899339079141226810587217947540868379666992843624510968556413640128921115641618936117862184985201115322020983021283258603460881235017275991958297092883496910531462621634395764283478075226505173686782519670598089495428810932793742679287468670884245387832361293957046820153343686452705192970983088504012367472641128388384920236993669558420271014367338102801320101416840124573548051182881337218281855223719525293591818107347186436322226889326009834450658722705572440162490896459792486477471031691846046094704329870593612933269757500498686770319211007997821240201353224891864873381501857039229722416531685112313514458939951318524417076453962939236733494585925585998633195814839935611341460533462066828672055109744970746363715715322075426579685494774669554341454224420519540765041875656577372487883964073214058146484214798837437046681402323654104534864363128602154188426482458131165835202870752399663643782033280946259996786560624682085077608911082039091219353952173826605227246008034747927739737944976659614795642551954314119805051266606909069214351135395909891947849326425650270738588779115201198165043060914522933347480215764154906543738800003088747582965519716346512428649385866192454429969845302762286967827796701642866908239970097774924187106398241013279534550099748379496908156414453167591736926572237217738196004191317608555998343218741820421889775470672549385302557950986673291710304153539008244673610979130648022265862853459622357327525423873007705383443049269667012692622672134625057697254246291212871901424093780090197240122689423305317528180659524210303680290235478107835698305271698693661985953959658404043395589293719002339816787755796916870602117329356574959566445118194021042862037284734314132487028093440660049554402805078910494458549476996285725862023762160931380589830934561721949728458581649189970922139163610843185930634829613059951045566525624287636588165836755006103078725746054211036295016262457750044468741631153701465928186684875805832211369733534489544095976055994469118792648945678409525484110784076476636197203932252653318762115942661872171005885474144884360528362881042416175236210131743962921516228792258270563472791662812404263140603581698695953205773895344444426879627254601987439461652110008144405233582196147543896494602961903676799885838457715379874694681665536886107781471917779386624306129625498524607364139152942468345036809940709828360130279475039448800681092802886092154065168898217943626642756733658579800308425087370961757074502685837393080389947639807914182963026287218595495675151150186696336136791882105373116775497026879238287004328038523666788692149374827668614067633512150580223540648995080936078010804071679168300618445901707974141559321205370211945818218433628023390415870997197161604049423234545258396698473677231094217880545664319432552958932008611185594276177347934069649312845772834798563686674667238008338500277104899654992251883375214208303574854466001604739904907091908455164195185432755650476590360125576236474623139514158472680295890470546893010910977864581929625849976062349484550100499436613626678290560692532742279192667331249844288195649789265695635671644382009278510497083831660570544250593297751702807263546397842296797748873794573438049882426172007037966207697572326361594450906382931010521037887851308386142069635540820398594509050115096799315158972359981656039073175521091621910483106175846296382131854529418808271076202411192907363183588553348666024448639381247450891332584946023795183960618508447810340595032875766379235830550382299041122308863759537673856641193686939400284340073720431849227800819983419432848005943191590884778778117865558001715439136147410675264530701124463268463776058316978340043347020378305434489661791503144439800939956659060150889492337010577650882236060773469090630024825409799004958357911852185120367459445466425486022170135079802780640376398897213500029335034240642646089706102613411475984650173651968350250312115563467461363798060389223954329534847888383191213982123225244295059563095743725917762635785187169993025454273356364956352261775135984608963491651819761439474600011108843778759463630365035458619571411718378185844442001306812330547755790509140975018190043843760698282404400670662705055891041523882360681634715266221687599473172223386614393074542396537865571862110046517014549714500755089006802440075616014898207885790053094596842972664673860867075814732733933484671519597985041387349105303588163410446400162173834238698691616729979536228251042763013324349730839039072642514864544992537393000624116855327126669284193825502928144550472982139551134276177118237191896803787914687062786466813817109800488796110788367528945534461045018282365004558209098544061052373981449940170893464633527321616374678876882541426766763750083478108687623271204332312837960969698072988798544095939142469437865563784226187530481393650310399477794519545981879942894346088754425839833844479078422110313803973665110586790554885133994656754406533225302358657765471618282196768359489126860308416287690601459280659202628819109748798713746275286174320942095924109308916764416002650509091701035873775457568709833347963663514207251029244738092692541218410131538039794615466281289430426388937628963154375832407288347349131632982508653633392663406718340741712436222422300547636554019973436840086833033655417813388139863574840243671504741915285085640646108209869154644809234876096927627812498071999743407904094223044425610805734107825829338388338919964529553911516395967516530064737869568284912166163073063791599822147918402659553636358548169391040400901778489695875028986521877857873218628776767113666203505151887382600287331677838190178995702458230622100754870145359866630133504142724266897691626257730473617923458392870409187165697883981216138154398702983020333505567620053180908172245061118285837889612732871362038891307303421467365296921949742583292978638876743902748375079394887538224233252333260996993509752630284084620101010726868572708028600683280090479035518585780493473250257041516835398885609414536580317274712277705827919867823500201498550271949510924527841611960277762522419673651406537279048328337166981915942968630980991175225511463006835759691319969592104983052384968605259626756840484739874501034168957700794486753845147253029483248213990296831640144819090002441268001445631233955313152573317581920998400077436384708634102779269800567337820266138953689614526354676385140317302938277612374791180054677969031957204599457874899937178521410459215317297875930638112279213358635944446968759563419503553204407106961749904007698843731153140027781486073668027075925287867787919523565069471908276504176017539317989655882261778308111878445809619351384446185244093933770964010115819504027854108948069530596799940934592937468933188149699316406179406689445992941511439104146311752351180185233660809697198555648296721196252556842047554718148604053657155651910275924167149565720444490770887398103985994387571860798113233390894342343384102724802378115499698246639292267227149337383059028817202573491598064806173797549338645263130868614480602523018670533464525262999016731063368029694795960766953669316398300950847060336194194960635831453362609074337341658138501219450021871184412835154606462005290393814968300562301836566157437398067547087137362852999420477968911412241639686119604339823170399627433761261985616654173772157232190542596362322488495425753723565604805378815188304525652915926840222080753542129235492974399111753362288987300866673456314649268509041007144326627390701072590964040701775832430606710871919302231606724693427425199942903711796363202240095327871770134507806114521394010555554865681306662222422352240203441274527451306198153902241996902352953527097059063043682573309368493005250518455311274912326029838171424171199973124303651260614964945577124806858131455878353535089025970179842221058961271544820766767844024605728459788736491300708893041752572279755583924228192528195240810146988473651592669040753953870173038499895370783559992142662186394428562218976653662373728956719620641454993383897213331102312344394840372272098370502545636325819446884431403444919171094494134029461335508399654606074342262195698536690147622012650089749285332032402430064890039687580397132033099149089064677036608307984100293238920530176649002363106848857003927423581202769702065176152147239602270104678539489767483932613030710080915319522760946679923047052188464305588725610072747851242996941102639591177200808126721181129196658352977750824489296733561241572022937708229970212480108455634559129603557292733451322069237621298542290277940785755293727460153749820054995088125181365923742287751550837221359999662533198343044013077414854562849528995445304980901697489626122142179282392930387488207169635406544405473685879334809237625503434802382280248378354991377889365176481538950172308040856443070371647421107151099835394449178309997091634539008447132420756593685844819247489386704787856445253890461697617630644166332729117707568260316989085570342214497837914925915944621115305292553462178491083266879530294388720113437268797275210343595274390138532027976974764021109621594041772575395966740468155920404922545179281517338541218384548863465873452728354407490750296853471179700407700360811111452693139879570027855542823661872580341451493120836714782972849539225133093659409540624963136017557527533558882461927130074249221134215234108803015890258673658293350670706081299470364177547466746557650813858153688387820362089383498994586579003739953981465154767657260448593388356569620556458274272513579170897872849631994027879599976616715978811476135179768033920338825642351939110107842136190177332786385261653228760363124465545941584608525434713594821031561192867887272236137852352440813164705573730712582660194429400143945078176855387044463769366143443468510723075038343329588350569661773321126082732113786552978819856647871021060527646250186645336422915319651318154262221537132025224874262602055335322528187125583007416535105887525173764565029459449039716647703903267170596193390854292139540128457778754425143140768894152755891248455159303369893723088231189893320271792087872796970261191439985845648180750253196288909477540163344129163453556062628755254803970794009362326110913358853056693953450676336000178021972910076941767004166907423174795817828061158335191374106349267380944598105914517171720090436185752342534051663980397587335900769706395911553089780409366263597358806824206957871699289677936405944872902482140003883051657657938688659837050486387180326668435764968600318323491572943467932062896797653097827069194355825128422230108493353287461877707046965726179031452713396882079122084197997253539074877706820120183795938621429592062599014428744173990276704826232937478967623729471507438562507191428228906727716191019993614521211429292992096650496042437633180203515359395314445264954161488396669728679843685338132051562874144565774698430870396990681572315016293197533156423011826568470688622015064138389223802555788947560089198088476638556633520538029284757025393360662628734697390842276422106631013771630860078657602992682527094532916359076414222272423288849819615952410338923432450850315848168057977408895975167619945019936421419813581979474749819433280597790338971891067932445404125980659733522073032607056435288029576457955096538058878450619163427225275197450739164676159861423280506894924787020936938178286838516021729864519032494487629056040486153277963295281878107646565176847783740869898789863627344755596151325912594455916869612039095096039354090401447160277853777419192719283282765575308582725687503993683866575430712309212159599820676861642758608275842756449672271483124060911911645114480060496627748045122894617783641413588427448326100685665037452054597072865822801904123324014888928641854945981766442191928804750033262039702806468988406582164845322662911951263897270505342887646399806447286282291479112366550439725649669082965593731357117791022676263060171380356545627657166064793320553366828399302618543151075415326508983491260884356927285868217090201017777958946235526128627129724528233498351701904592914478527173491552954870553556380257936993902007904877955968420230036099397245123423826888526206770426216395121156861985997450717940222179106040456387762134073686583365981511140077343237403592772022285815808823666053841025829287025200944196258551010622912231133164153284357630805392650240976563060876280261972457251194345173437556013334067737094575941629932028596900511851924710923542038412639563601048236959009483592671555899377814044602469228918751847639071485316180301294904888707032929686384013009621206650709959314553032603091013572887484661958383551986604030157892155973736811911902070370684100897044911964456705186476835797470149325202421168331725243965501945894721482047689410186559532516375341358810495156210488251899446350781124317566016281390878394561472804378866453601925988624544581816726967893552348276360446005788603374098647591919370544807289685573832685060747042310705041986872080187235758094776146482488295180269959491760423743921262389301801446369055271394163378743985114992776588752753492453628363448860586198148749476116399304096246162690099407414985674677969022152989181879094446901914372578712298918309338991934868568045201343041259193985691783761237089018147519149120843390326705900461949967985319911299863180843307239670341728147015237240729679363311213981851396396747288829359082528849538989489745797252737888527638701496794660816085579738203986351731291053620546257011146250890871631318024842685420619793745330650283509647685428256637441543680376536946936401291504898113294482993334684056242532603241248459064728294570998039118681808780452750220704540470526571825425947397377595849660574539206156868932293437063170748299132918908353084325333316626594769105743819280400556167733607857349160969271878556660768063453493439277891020810858019897301407230147525131210406060644667970037078885350049503944844206063476088803499492387552693750396104698617934318408824337020700501675906246418111932727810497350680428117503743237828123878122493806090691465533029346437520403684795411310562755500678319646756221420381135238353134598960203212812618172773175745137774062045469745904535529885481736723654634517755816232729106920779709305475926517958893776054992212879830709409906700185219880158477719165953848718176578516226698830538952713656810375110213386741519024690784009496821937856116445256485734255267500752032365079314801821036431107306390984693343186499884464139592749286204511756486155201135173476567060861863951272671833076706004252202891195117431568968458006794211703729997552582628218970941616366652287580003634926046659929375113683121359104155928537895251207867175303378600034649726373249654818353770474144878318343487829168377709148873286664028615230297680443604448342204891850391819151883878333207352041536864275487402462929669917124455886315522210223339945827927481782870324451347653020183904122970246717853276479728672211574569564609384644806676966518186556324922197006145189763821338873952071135039170652328376367922950374237836455454980355417529820552641749776150117867528824690590139855282978680087041516257845755626002101317373489555566871936520514546898839821790827345065068369955534576513714692398934203330128301889008112016297055225098872251336167844078615138770876583485813413235577513470868473196231719471023856878145360481411182911538258095627016943908154107583067625140510236442418198576129266275461600872807121727705424715040437337374127326467126752062344909969301725879775043784578277119066248990691329675655137927492982159352746692213712210879997740127880298400940128679382306132041232677057228829659657772614905243189226648548747397061558084284400464304791010466657035651569625342476560150529985177835792169816564558046464510600674124577178369705661089736970033235220780454536547010100016679384370149145926146563699838904937087125009757012399105591216526109766478722399198556377905137772482306181872634555294620580468915404179324997797756542355522498779715499609923247848236768772475010261462948154462662542179697637222786895549122443286980432328175552271381827110960395417126691013377017069992413899456154910038171083592805730639398460174706083747570792675809827372601823243010353075116951921219324132470909943901123969326356662689575821778555862179829904423363273889044982747853622551385100562920653213318001028728156529680481154118380851822196070188252326768356891159768498638052055692135056179970211025803064462239600280579982772042946313889557427058964406691483590982672000667560522851618335162460241514937350379930078500283328268063473184675835560884249452900098228503517497338359326288081970244437051245292665050418544369938266566538791127729303598275662662225177031461161193177001054834817870586208113208119528947720578997089873682537293330373579037023586500287927949072271916403424435668322382360734856474997463707224776615652042054876289341164840327810681931096098612301764459867003870694295966512906250454067330075152072683939319666859413891611806607896518643417663566531246022414746407407346093430308166854564307327481589646622930772078020689417510363170034219259629488561714460928596854603234039411942802443275737637464529767562500867308714409013061325787613025389430986437381643390644514635248900508525662097370858127084079115399324362031159143175873825304712022238917188118409514898602525393524443617434885713383190171873382859053902070176255377473038207137056254149088824618765680627097395552699886986157477619064290695632130415090458310181313465722791847622164680774379493303959227807055766152789648738014786881407567320930277715030157422787629126509261487052262730952605595154691110885813092120451498414105772919795624385256879782331315260956426287464043193382861001601503868337727552983512521145689071473928494282019287663793637129012691675727530551853101839099050843188189912089191613742295518872452162535686710123920213904159408920518973224584947469053885843336826285697791206998507417071381044880171881064653953457661978313072844710701776439321004915773193522075949282363196253613818719336150609544811016987221551388303288033247622189896722637539284503656779930500477139882101799017521280162359089956511220525158710552371891252046604013330795864381936794162543031819532518762059832462851042393208154038953994266470468582818956450450339634583934677468256730784232032976365485480281903620211959528181534842079092337184709400946626791323465244599245868569313665762908817946242004528773687486525974430743343249747166646565979400592336647878485939918095964025249204026745714329767228318505627833402071534943437683375679294974953773297857392521938918946846042119093880036200239620725741006462456211616345403722293285795438606336108091707422398616277080261507489565882039331674873763539489911609068316468276971186373907033814311697210104678674353005785431243695635274934807780108023224527286483888418222962181030345374762314656459632193234562452255524362128256350817199965217324737089035097261529742515557889794716311404067205148003224948534692765659015742289020302256336212397127532460130537059931963813649624954651000112735762391275776272599776772385310949277922374038280879802444618856017511430701294022078575957690580594254051395280379378909890901404066372965655291730292469083363110430347701053433419142992307871255557111000058999094869200125000311329009602902351212571264895314629570496818185644280671602415940822147488941049772123098986134777821065049804866522198370042114612392851081642375626497889608155983158093148508202221544888038005128958492935839705512305402992477610437845104357044052682384214332641699647607865272541957238473980198772113259110038881969791568704348209457411284860795658639980830803791730153361777641238527759883382602091622256236862227916631641452365357328604728107296539993111290429268996130802295358485484888549162869017870437378665785933501764309819571000779451765728637313914057874452288537604638897015715940164687187063850601534112882580569650045853338210375281884834154933272321243762988727280546915302727435480096353423682313642700536891685466895243542202255801046599647487498605055339866045216524009786216962070108783555037364991246318402914672410410421202976880323205267018536902159724530433481904621088499508824180299496163319984503595858214300414237310024241978160916448687733225656564076785052513153437280767815232261231535332338817639253964635757790535082274272656814272380971560853414553500661080704651264455046777869468896664966621576342128940705926071834838065709292120874115314868841164659280282042100636033204513777083698568882025497737688903444535985343338143372658362288865639504455907181618777015849363773130953036953592969130763630298525512139623006005555886776327503011033648841051305056385632517049392485481246567808213853849538586730838130515384648881013327114312516269260030349576162027386463711478710129700087306123797741232473202534782500447174188479593240109497578265886977982841649836009363644623837884051941456064764849321271296214482271927878420217408751019889136885906296461671940262753311053465248837053466957514368245056356647048937381750765829051028190667186234095721227361308417762730244772916440455063853435622142231671349492190680359726372366985601783049756954488324455883963624420338078156315660779629955075617280884338178338387480914101027387862125783892004535880460330462427866705524676723769940942093758331267336904062365529364956156536254914581765234441714237874117276845494662672045378265065555656656154787968375411857069143455585608638236005439111466864143922892444860789444363133635417389009742280914252002024507267251182591182652589231696032838786055080422320221087426120200662725335632816363464807122889489288386568053206879213832987545982144878655780123866982435625855542990059157849439368025860863642149313141684329226584517441038962419864828062571080095125579741817750733188940101731978860329982477231978514624012683327692468584013426069409016995176207720821665982969467137498762730183538981741542407053015001866462631328229954353495477056180447049229916522114797377047832192041283337631932851855914259312087335579859095330230958847959718414174565108870253060214456944199452243876891800152873084098349450435423971858322212959289764961039695648148668907952772436958166845391908547960777339082561319123913464401714720960523899213915835457409476874543310119467536199997075663522297417606809823487596156220479041531242221584112346339362178141850105660256487057324996586754009763420657397341443922929636444204232592992090310943044539362015457449554843960031239419228007252278310014829132690704055496251075880953703991160292793334747042690921148438406377882537865534189830122534813014117995131154044715713937394913045018364274626620620849834050391550062952872986617635936783990159540845063407793694913022785067350186974877194403835482653862954297019625386635973871397644008783784350453154285604422194688267877365801343885694528095291518527109757637040798720417293211006932516510527534438354880450960439630777386728788479423588429788033748784210640406016705326130926877731094363126758072522266695491888433999282129595952606417522022988260602131567396576133918303075212054876672844709803565552932429217510847179848910952773321694736120235710021228543349033422160876983661410948625106199031124921236365043724029105687718270385209137834812242631560115471701214872610724256792363132578359872000909292654703514844362744442291164539153770027671631982967172186459982334850819390529987896105772259008068884508726771749821065051637958232865877293325528578492102682046176924904195138223070059751781934359126785395048829867922498138483288786568296480411646768053816507879275320391084865547770145034730805805558923800483194250046068312698063179128226102925041491426247873245308828906811905786332477498761469658750370075298463208607803753277825657289584214098469573473462589168449755464820030891794696886395107395795883334651716252923881846075459062148128377584881508097174675890737161724328370316776382305685895622185110650424865755833883158530966554684764968451199226413738595077169110993180365896737011723844685291659661277795993104027469708655776160258447935920921793765377638161427427132189588292507448553186781272608239609347933027704330547786269627303644275756119111781509638505598992437581246944968682858594074511514743696236611368593038923405770670769156362186235006389888662902223799096053274193557514381689609049573123202771380706982908683203050956626684950762144026570249599158085216568377223534173104455287117858775594123637928066633609001156061935494742542552781306687499389084152161123681558848000627767678661714051218387933917849794834688514236715646152436521532837042306656039524381548688054595805000559413689191246460015127649404637670469953180367398577342785652078646705592206165860645668620885583672592699953736168256327011859524042107850175975379230777854529340498757087499589976308765260597467059121989410289159674412534826096059273190959679226514330143495168665455951004820617207046632453453052581476796229898784640599902572972042449815941523445023945589820471877846651676589078509259290490605211570093119271783580022593681584522823131607234583510939346577828360107252770023911467101321096349503715186112367911772566351069133566710537909960692793897131499547193918475755441335637182053267981459083716230589334822478196732826903596301731836616460466701418573342327907187844499610148610507774048921988632973419799109997918892677975998559125582503530205222165549263125163581818283975019016973900075428412135382499441863023377616824750161704447308113819254123521918446087771413331579463513850035793819511289635347658513703920672461726036191256348190883132846650845146692210602735920124518404285622590599967438141428185655544187848029416361187220144724330574531733094064549978707416008672558877389308995417074066272732641636769872319722814043453267286383350260211703897955685382799451969327509274915322138914273994111050758395752030765560058134252131293489070270149021959358335507633014837407433375328678133495787987589286009025551228845650831341368642661863166867953976545433681754875598361287298027217742999039235930609545737324781387771374694215101493095174959670656377737039008001306048975505315312187622159497436438449739270607531753455643825163052655061647036883539873527105900207351212272891260634086502430390503132413719348076885799582618358031548496914534485968249032317459717314486076130239530211709712508417785449263255086781698235920377962515797655940085512155959787097116205815827452968952993167952364842645591744384657813947749573714528403970965045302257219288224357378701224812269332412522352032282234806290660109038496406968541435370380515420121873220798818263470111459488824313906725850792243579387854167747414191475000307896465315855924771781086687393871371391225376487321209210891755054750856594268077680462749663351770024378634094666900822133064012553690544429899234756574407464622395876530207182875456695702501378839885970521508150645304864019732286261632955166156922915328954136379895647001035956433299106541225278776888353179037136282389935531597895337375801688635502239168932300885346189873340645032557263119083505760962563889139199160896600693012994903189199733860618465487910410085170908499204138403630073456727969013338630283445293175855502704565155862104639431829937229189742968106468377649810448183226683299682025908318584601745295503179244170453655815227241185474128103037250441092718216883818697500383947536847320630782702727412638057697014252850399419128098456549582454515507238975188245457359850413032807988927149089259470910801838182407273944848758371757924834392087149756301765137231650762412524964924075874475633697371604240257412868152115641881964577816617470997163035476954853614603497219200500832107864410232958511398929715465151887145546596094786596609135887233417969218599873431346110936014997614545016404583898603648854039131940959612537432546017721515069660677083030552450745289394446235836006106817570070541495996155319942077694645599067113599585623613787873462364856761636077250155147816089872130781630766022209743730330300824528758937749251495249522377442106093982371238600918261887162640901938442303327762630494941613679721732272007189352067661480085294461943065674427419209903729065603402021528680841256898312466953971921427726168346646575707659923635570280735551469782160761173061196398311977750243444896467589997542929802103617950597674351373266474615566769983951182402360440154262623616751871603081928394723053123696037331033904089205112232836640680199359306047887523999369244147507048676278734368980825547756380743133240089074968850896794461456202598085467242600189738279327241228412180783505335978997352398770329010076465235925469838645604325089688404071719836829814347563489396863159424452709427709661795016906050971149167398665661045061423042865682339211792646892471607148384815475264680826301330962113098314368468200531583983685723669863919979816974370655589087987136262306218934068325073943892153765152715698716930025345000667946389522244795382545058120866579032881562128796295135050455267754861834567441313936584758507708872081906992238499370044981073446660881536965587593072654893613413400312513618537020112303173081848467841092252105121992167174540902606549589332286077069756535260865691116730634595123086604449374723869586727999145514660855743299400911923144585397769020808507179137586486469991739932049360191399824953993343675357115249682492828984617601251725107519888578358477606017078337476484621758286933699179144318286402262064565609369218436735404528206272335433286780419625428159146650622401814538910196961832505887291962252971433646346710041937902604698590234824550663119986344249976452851819295284810860138809732815859991381907871073446140844941515444478583275994286087512915758914316528297791238227539903525014922243173848606014008370587377503872224049411825953740430001731573830577040405417596435395569613604193034503163698077976529386783334231112531424187793637606042786008174792893582380433015493856515128672671603879392766039194903935223655737084143388105433723376639182486353636680568547983308067110950665017701453526526376721099022619846187583994319581521374139691527654866932555906267801461425889973627827573257729347354218404956823758954200845994364695598413896612211287448874169475987428700530616240680983124343943064667687464751544157113539491008176980588582592359280306402287253253031153200311660966107766307389713597145781054933853005043808884636274345758786703238827574036774126200306851398235358961631808554013132143509173774719031168773814668316254070114362098011597589774747454926893480743877593074252835112791837135623627234058875903396036553490750685681665450638226455921031711550914352936834790778380324326614920892768550587509353755104021586093800663859951356419779507987509009280137454191979320251486997810537199534363963725585646498041712561754860678153737827744352798089028371427486992062168992329939721438315187445712453300512128940872487260661746765162347777161353878361754192662905453459995248477154030290292030711154154683674569838161271008134995107685878148025856885492370199577814146946508190664166267927689557414541511498549876433708816816896666459087277945988907584316534685739382568833004623973460465775089652706880208259919937316273812994438378844580776410314476455281830854447852115683340949767482499555863771936670751192614812792556593917269315922807856262314520964690336109466060014811853359746451842097897730718149797053025736163920493102520267441063139474083923660816306149931914035347705423733385496992157165926390732670578023892132689305417265511192712823629630447679784362277667715902169142700326674018858737199144146524540659887410206630158969767910127631192141221665507457168474144135839125909300147994797924217134934445329939489810333863874932911772108088815855551721460078943272739864205892581065436573771871474506548520847741373752874109680047032170850052842992410208235940206347835695355246626306529340362819219823563572241655050932580662039873100299648006523432094968843450280629953546824583467881241799334830878559871512683398855721775915223836508089976725782342877619632057748830222961708349924100616702600970072091218446372321395619930156021918686960910082518004721486615269683952103005296777456781533044337884650374278909398445287172049833473290724520975077693146804603676896812730038827752054534902946260883136904693751529858229352783895479986722497852352041259863962379524702354569204228211688682451438692958197276658339504171606559409942426515541070605206131245968655021737772408062115673904254841011536199516344516760829259420190812917155057742488227801168323023511143165539182539344662193585542373788153632218543155555347708785296526813516167461796069386109953189095577079846669313665877088097163171122382233510546902520621424924761189179385960139303419893725958569373997478908221712281878281504244457507907334418245307327659672499983261260396148361484639388809356424160106464616464199411780282697397538875880842969070162581449363153336302796971492667613493835469896022085110516205265079421627642569895316420884011376605157509390109006479543629254205202593616001728072273051361064181709571291849420696778141397969716123374992070109164209416006209444373891115883904835421197483344696266336029714648725324064593820803328911634845669114349757639027076360356918479660460822420500473888427138021522425828245575000593242280808935233303117470223504169611042427472460846780551970936288846869502487679408074033035026147895094485414109164857029677003896427163174393879910508773391917483899721810121885687064392468983534630041457333258992939003670761023165734350243383764990526520388114792940060676668141381401166401344525411142782726466427097141292972385174292515317612242188927031004443686361218421500111715030691912981801862883568322405755230856816071210406538753724243940454082264178681775951612601706960861073963123523381736435851597409803291902685645705980027195910282218474185135365852257268106698700192964516276863612621287108056389419359544518177221789514297830804185713501248250996165248356368094144865864453876860035041899820278442524474093507101360881470983393100682279315399236492657800109448617108238051236931530297948732226945029238247977585732336540970271826640461889446419375517176880917116209435819944975521227823649582207321124206084429044928329683597863209292853528873529322888687363099369153933075137416353825948814140673373663465851854908636195622229693558858253073437326217069347357577251091915977734137548395687371132395318266814417227657796395782391370406713102109545023934013003411303579563354236383423313679964706989430635277644687033408591036853781852885258949389791291007332603809959347594617417483596297849884665176243688310709369949803380961181451046068978263410260904454310193580042668747206583183914213239127307520627564978886567105959201162205733737586931573506942171000863649310538966266856057280754249529387044495235570007634916468606323878200035219909897966284363698112208252395289521034577458730538216684913808035678664090177095249792791151867710260279420085774836564506222249441598547935267294802436189664765773378275510981379619388741446681822722393744691759893305216094409975214385454118503042425169082857340956843464911613507433612692141198046978618041924711465985304988234011088631659818718683296649955177766554596349118241950962151427303719120318239170980466441834738567518554521854986608861418650037350707130785356892765786795561957026311987198786598237129756315488113643998278953507145682181191516011559643030822121026138319132302919143736962621620642272323673227175269144754133750875985789074877163342923194955389235366624315788404963998951366150364170671274262452315920584111530595198367821063649114302951955068023062708897022867898987313326376829227869867067121514740804618374577854821249170239132044925118306527149864532685858594637364873135256012898864853431439790151531907252456907137694670668836636451637805656787222428221344898846045610103836197798235738681629949995531701172424003097821312154817948981500299980574620661620752415518791866050940727401135781603578319849311533877539285017092515742270721670977581707410924949009633175977870486288302552466715901084269469972261741785579958215734125740792675351540289586520581910374612521571763397969413397069562751596397819257637116001006533327469505283141287926981338206189820586639657992082674256399755855472585449451200152635586356666147457069543458535516126038554594252092846297067379293357871083487823048184779137182766007918580176740663802456915704475448045869100124673830627599031034408258306069424351567222707015449596149737907784295210978177459016953727852967175176324166569317968168677676867353388599844241028542379757714098149452463519449588295229624145686902214779945884104697114262857114801701822971259648879861970261380568075491111950972215594821942630825766939724823838248364198038876787499524805505965549814328633798042511171993569462801181101919412647622493801882752624879680161013477226329995047072178354194632822663262018473524111826483661575034373080863729608965522063672253252310108322899274646460040407994202724026230867729497312255586917149600657964300869393623681640146516362397023846116081783971849307940034223210909495021511039479791907090327680383911575346137764012876029938304935181443309156401366010398980587778602996229163292656050552841544856440774568454748620063602718003308214124699653382322766929860222697945112722211699703097851277458762488284098803541396059345085173405722640578375992592426946198630499609486290997098706006512145869860465848339798483708937355441067751881734997944439254099109266048515428189074685717363151092893776273421316324066434288628720072519733611873170662576777445527094002036017083877444911454311336593440986808566560080437867287763965866197175838004273081162332784874335153161378527559821332061648913337737010116100953468342255515047411129628323179888217066754744316407739847217505153659956660269792582512973190927664837268299879451004160060633060416955574384862301639723980786899498176943396509377731514232874695995176180630409941460913164310127149284507500766660411087986313807048412879784545369571625368864859045283247411026906800028091719787827836042964617005522115495872626485357621241780539215282463329159579245422843265427772849766240856373022454821232067926796484810104425660563657200000201382013639944131404101754689339800669911772226461127973919696887828861958651723355768430942489272316414037378585005125951132948273751610340781225414712036288068911689343408066823865668467741105528998845280699387568038056626502071176264839979932432579393484560034854957821230755845368318632300233698523469817193499005378637857581346216998030709085544806062781091817329605990749265162299560585165461004183171721273410095883969770145348110137546415513134311994690427297102265520915828230350325570439138345384646625694449941122090825430290292801556181927123288531668981520379831892197372231792621838895363319241346632242508478630939164709801102010180770749243797197465901938469694288452315239090372875088660748263406365657524198722093657159848470447192649871475854548148607926458510400096625552938930973363313683608516667280736774912584439584591834871787629650625441336354077321372779866623359813788379846646442228671657315517781295651024310473067226730088391266772430935204535464615554868687041109202840818210476476971403497379682010842846698825716099677156692639801613554520135091817163789370468171604986710864464225253453781674544705135429167865755701573257277397846996322907662142443640323118698050895466069574035100736000644910721692204025920773067772155507385069929706511867721303322070066766734397754730244086808535726981632748558031662135612409731219124023839149135095470366921742945820556408976266089111806363045471247124356201438751489916762415795266862232315472299443641472075449644825322392872311845552665029425120553806171568828847475466285683412173139754120259170615867381142908805996066783540296235722220954796728748228924682225109734443113018036320095782231849916885066559069725381236614250942021261788644579176030028426153172551843355739340916822063492655782009469363476597037209965306830700011656432871898721028629742754677565820723485420986954275018148207356483374817665118790285019409744893903182910554777658377077383060133782007903313310301292002678195969739631209280116065615322537915527617171496689719474029303910843700595212808930921038874391383830317145014379832308403788438076177244257853348744888506457687447949651479151995474240136433815499565732746216045285351690114473695912408058754876854563610551165104354499327000631010630236355110956398223820159118498734828015255019527727997480330086223806462831981291013969359246584081741797518385423047980581064629535356565959293740575037456151568054519165714479442572065409665562333914264849754431028169908274734725223618387508713886984834425787688813852867752718581069412032603816488142273152715147473616947486998041890634053758391532012341797671767021962458679485179014213687166918587193975046835136830240111185136872207402005685895258559627031410544559180359746704957254613388674558893339913711880278795202905476240655694662768682904651946159348588231103792765065715209268858164222779787932977329403753244644492847999884783053199796818994045290236472802362730194313622049987063522057807120192938064002857543099227525833055277352722948126985886902618029993510983969340698949486197347675449349991272828708248367042148427869679427463452430693645112800841978349067224885003792808142544051312254197774204504269067090343516549821962920816977404358997916806693745102266112404442013068948363960879251324672704623455490202317572704194052945357086950581836370805635503683083481853283420749474333111697317983606797650277538172058464815841753966633498446459322775151177411900547833537920085440381130388681573330988004008376177921168004874305552830413179395240050828142675422878828604687366451691018900997488081426685825390486562669449342165496460268874584788058967455807779976139078341820070029365128499461186580701095399271064059146012496522439512048259594709060350366767218214537131396970225563884894662914417575443372770416996974304966727926659417002641087338889915175746667758713323022723170316178009074186196891275583159153101691885952605946207671805971502280458585773270077416642407066778180262456852444907679717676016435439225369364855216597395169749757841102486993533427017434547380303019205720483801179804117863486674246120254414242101182101909834536712184836452316237931890948552624366045894854191930488791891325244397807366601058355177943374806645430049425022620124512830064305415804230870229765303869547773861577578228925166069810832756460956610682802309541829304797006801679212640987513495034018733946690128290994204115490646153839849937967336123150021648318528870970175971240893632858417153646350764289235723411361408638783596026465127239680849250740669101967830019969153595188423987964398415897951715359551655185269917620952047584504651444751261847508010006065741093029241138368904482386058324870061126904597123499458991879940469222765998807937278307788067498012872728336434140718865514419828063079386838598031890991049397479381136389941255968900811135964388424245221408482566919072797737390123052747001049259786078740038965042542464950010718691902940807053981083590594408607400990391796409032916388333527866668864904315542640682636985871376855449747480823515588971286639307345373949764734828431425088854708419708618228200080162696960992710610654201954086346029892173042813466427263403509637173115954798998777683075018759269792238520827335144326851166163656053822243898291262431333507087266348639070506886693299303731513796541645848533181539500806614048212400212939825470447337463347788396970637631590510838371963962558445624611215829761793994900639022182471947075219240944413738433716614966484566899780970646821165047857673763444222207085567564658034077206840798632712740089785900419753343655457014398320137275922255590035281129433681461611221325402853010090004387932179375689203419814874199715039955873148220527777953567337066030485683287798176189264760709383790675101274068600766226676209394402554516192403513205621974242892100737714647868291156987364942551385863299875442905892718489149788915501927403344006393309761661459688828680113510091799004927730654139936705461910422342184567191987105165805233044943158172195443696248966572132595814198571035965822954398473902158193642788078762006845965999445537553144223725418940549456609905306258024371800507959154397077148733680241029167557364262532497882457362023436314816108060017696271827944049800079770604894482747421424597831518890834820380218467352472536545712234345578446403074967971164097757928477487946307083040201447998742780227374488596846872066034230646678201887782925766005693242522096865160905308948711297714539385682611128914913903200264674443739563649224719405293228312243942723657532998551077942378592926814815529328756076184060596408840239010684696953187854984552999134183124374697316840972162499097154083549871582973945973947796072012168116749054912483506743570521608688531538040730152263209984216942521968086906759179771122969145740086768637678286191668763448640638684680560065707206308796424113326735352807706431724795422956997638314891964115450857909313204006655752130043500737125212958735385356281017200549070799648722478089975495143595248587219380462338713516437473051354351191162258657102160419890788579910941953530048927977602189351887935045843804421768288447628110733813029649877189614158828531920312643232435843411223292134379789132492116183723590033646690049164090659482828367927462042110599012374437305392757953446317667428725791491137449844439460321255071223922386371768593965915330034982476826311003866134746972847630302625185441143108508408713882830575764145176347972795582093098698624009624228115969645575987015695212769357819943199375231129108013517383639143730366240223588951511000380730578560489122730417302264708201449948854199426137570792322489863792034231204288284625971718333526501862424737316140668497106288386927047918674797496845297937877297562889969482953731054405082121321735128979746853968712128029123274745035710330125911737675967382504107413783350829160414258298257700080586795420538177382844332745599033900845849711799981477496362968423845780162806542349685918582619189089405958580871204112110430862188692180697283920023551806034389510960461007709000490023987298035720489661350434991597341585762282893461440114378217772528273573892890203441596820244957438600503302068560438429533448794092882140083257984589805630920268468388163750657079904920496698932686013789835996434883260982419561826932753691358024053145864031655277679617267954693651321101697973416937734201233801369524102720838034367988069721098930613716581260483377695000781513405101920675829833883447133514303843045596900316547621075512765083319202777850111804667880123504982674461988315308169497599664891254594331545896547469211311384779738819765985000403679645116943667312896464829732324173048081029529135980586428909142385110047549641145408594395474414566847340573889270846147071970703384913655948552900243766516440992942316989535992095990868548704481386387501263884716709588379658842539767196094240387844699135108994904709686313965138783600028029900761750215359178253084548985885101201248032322538800868394251401736174084630500114914859117299320305530290228379486597441971254506295633043580910110507054583036424239208430890954646417470196995489149845539853083281838876309206661562196023963171498206025557608949463687155938826575937790270086067946284001969628738348813199310336372240457519481129952224672449226861900708175046666149683809263306773940844863442428794634157033345359471587688069924087315126494731148462858823504507520735769892222729249077265986334486427980271197261423236219413942901198431380848902795163777974955765946165757212834678176749130669675418548416350457384926938053411298891394910140760880262846896042526816306746897177752451568560372146258090271300506343411416397233785596090733516190384585202979257297944390625585404047221133594504185287125469108631876339248845763616463658419562141687919142152045765186889995596456817355302261328434403487573487780478244455258088421503511701441447999409464694469808177626397856785979773303353726268255592028477066944639183711343306697863809153903280058027776900414190992234615318897634526480157477752029741257782507383991438071720769486061175897955051247610103821155420424762865502402394877438858441216219260951650203309023656896198802570989501668795601655483627331880973057796743530415580119553177531466221671338788567739975628272968776757287755451219296754160332655833572663527476328913477646042686203436854600287154144517207372836882011198926748460068514054736155560015590879402146150486668585307313469815493764949500301869051249770349830730132933346635076084671416025250388127095958422529110140190323823676970786969442144499178473351598774353894066547239881635731010133011317583144324689745165196798471469919936276342122012123666931129752818279964983071276288894377350638898801381992697292436796836564649331916294779773699798343153982774894031674753190739296189563772334977312904042558808966283816510612921289448412568511645291893996830106592696125479415851266767522167972679361195241165138318030314368102583012051615295705659445434644502549545352297509206794354855330830648755539561059898650303629628289461569318178289288170632579283547508959467656224078219813631526281236818993017609797522276827353051609884717489835750769356584884985383098552635273236128617557732928156221412593388976948390584546547890656910279818009015208948917288131179148177448778705682198042688577214781535018523302455099492886948700144814009328803249300179730052300640591770638957760084669849015753736294246198659214109089746805258207651478325253671892096728480532199958183753859416500633429906768667701678166974520195582084969739090648081729896727381485452392754037391646496801251748312731724373438292499191397968618058202168076330539101498273490381934801147436065505933488608887967475654248820681472520073051405629845064838893667018208716736542553289209009954370402963790421928139982870638900294761556874637614875809238779943429830575866452411819898394715569840709485478291830983362196498424793357963733334211125269732025702548168737453088159062644637047583541719576402793971650427129229116962798059091399233959432021271156290442241713959681016671209019455454344358982104997405513916758522181005963424334694684184646690917504642428994443320569507013059300865637850433139357980580128824148056874100044536802103182542158332983756234960754248700235715828188746937265320628557079632059628576125690698146047172525945693444374258439473890139136175851530597176380908389909372530637572541132217847311521940444522454162709095455669052740237662454145851913164938530358274077685588421846391979938285712060481517844058953289978189155403861324259022665300106169627250623628119939830521330705201449169065455242291523825619258883151613867565367261029702661587982007207478792607095594086317854092146293397280833532032957218668288001687156333411444348005119896888227607828630718474096017225767188612965955064379537624649807792412596836195122718640834300243960386856673914030016488914819864244497518866676737310695064247238953444634208174524961785222109480853496226201159505641577459413565258269845472153171212092543966982158141209129623996761743368856413264218843678946551767746766815251527115111275792413065356131523187606791467799073382937098684745648548582871620358155925060883304500171280267619088373905157578254962019528130461855407871541542394458382580792349688431412962869143027208551240885525852565327484931982336214133669215329030315019938374497573093158636134549699535295046065082018706080883131896768578973099983615486940366568113944347215427761335719656708140562546929383019909239116165268272337719828124871840519666650840277387901296316947586986666357832281625744453675481881632567142052177649793564535758837785578411492709544566844336134323663320206342632041274520047014073595199365259316181218409491614886974654083281536470081661833602516886289642283160006154995430330981105019266035079296530162908945014719153652397351599595918633966397094131749435290260741355174614781996176443515177841850918470459521705994459365524973168709213612194104213602492091919480065219303702628725559473120757144828982346426898575548663807534304463222370710289247585221342911390660180732433703389817297937711224040249212400862480946084120273285339807132447227137249504710949399881752917880954216046819877274966055050990207265655960889140146456542080761808527488199321269047176355427132068988791787149262301044984510175857462149056458975801893102379720602124433617101066427938111250003941572545283106532891964472820141685853351699483427715265788033992735733441674953851523397364538452663528229721344095090083299746594909596830831982352394280686436863313623405006199056710464073066967070466723701827165155981554998495655289806457262148322517416347458991312069835226946489718358010024331121403542679537327311883067625562183926340094243952916821684971333466576122372088299345462561155907479229668498147211876861140844092639427564390045821077678375829603215772368906223461367432351560445530821275436164364205495861647883905931559669384600481115753874786135526308848056704268306934455440131566154043166328945481121624779948365354520096022440524891304521815461412194352532404797246486961438962301030040078334373649389495916062612599143117816611830369484497636770180721599341021786224599421235342111231970235137305286429725164625238541423655737657209695080051452873740298959435454436525734681451863369457253884798201799208605412174916512196801388582465647467149524493431194956174138219200139014699875256192224598304463447969526761245917872131454257905718859949169064781156965197468679033177279329575625075344285434855696194105404187020905682747022412066509026462369351957349938585862550310607180835389144037419074788394870637668919819625073617333475119294933828320026619200794809002700087667323737438300682660842401765838203595954988232656301896822095711315445076830131717400859931701297013557756558175274875891269440493915389107630493411945897857089273135138545919965764150494776283303609905842259731157602897774653664558246369323213037206915003950670507970767126090071008914159825375292580537131599145942211576715714079244026561753658160647527955428308415565114891359728331050713070507642825655378868044799825163993412065985331629366833100728713261608718061898194138353301207523748035224602710509289081958540947417218954206743845016980804732097624788967332821063660367445908820408770786801071892694049366605455077457714976226676619048513119146440024586650350336501442934451575577740153119671186736950607610221509770874725975341260417368068026339837938952340506189517860268202213552401034940833402577392013909070986748625909276963574607885335715862576802275514982874270881143212334179455228178325346615404671036859055874261749840015903507737541356452437204864078563101738002313803701143843090628203408447008115723691267390262499990513929244242035141274095059026221732130577162860027995714455469038887842929977255212323168722140142143890981699436125631384174677929475474044059133269215251088922083825753927754320991111864024046597249093173957656339718311968040743348705025589504192305447022262853659277692358879483592848157223477822376652076168111293931408978891250311757859524289985482709581915797338684000235644702373875060175926030587183942731057038593001620067148994525809573279400781363693262018102657584463790882185021060637157982733527292459215367749501778352367129562864584073423033852405239493294208964985245675629446653772914897227732584384221888579932899283299864132958554752666419335366515246946397294020635805970659171378724507373583505294668960494305359947949293297959493847859357284016037029490276946225367547941765456055567553192803415863956704229282470043930111073812083278056841296733079333211979683287570607184963156696547331059960510130871297780241789933284220898263643220594398187647043008188558021028189101819251921089891028872898821489250088842297935166880358209962524204250748167709157356034966846880027552959392972033987467399987990553846091254800893147682862837083077025274871018000425420962948357703709999864339793658009612642932687590367384158290541428792058549542569306062251358246556214242704675197447783525458424616174653042716632044054177170974790227262627980525154445968029604095328344234131477528389274079948922260281451109435224409204888391656936041110736337925687715702263693515977776953457968255332289443629642340181819916336362962026987770868872903971694676300717778360892453230860340074551052212148864911041597724552536558867487348923412738846526137188756019634612675888153216141359042622184127980426711350885196012298630838336112590174739266286781171119946292397836638700868748039999962844663658721710661080657036693117327120382130004218751307007483426250641467165821558272625439959137224156761558583496010305299747805452202100498077417019345168826366144933638000840188923958760114901797008196819824513043543661499316289687339942088739348800811057768144100677109473958040819332914261139762488486408843303600771065867317290263793333514903192159348343834396583806923332519919341973973274350296852034496327993684756471400075326564626606370809418442985608015099255947296908271381337847899675448811007265556750406142057352327410459709989290154242985242332348385477271891516075832864872850780218671615792172564715176533527374385301630823574864119706345353720474886978074991943471563643121232738057063096523118463805024553517094713960906851222417261812714105967036785158524982478652588001470238648861921930710245485341061723245671603383100463247069932174401301881735641878952057829225638912021488435831788912307095136150032078586099191753959635728363966543052642742117323886984643177953825519563669953176127369241847521784200447155170998755322573425392645462365453324118416149503986831873650966009842623671212185733089461276748816053834632221174485935028721661488171538222007563142104793756616221379298853830837091658562715149183471993521489409967384132455608804892978484998778722724127961253521323920379465592286732518740259468296899256303996719751653237703880019170697295903884733920528426247431411795718533662878137349376580143807376204979241253695674745108024255988852963098570239029346643772260305105316451041827991776719776398394193717367553960435659387056547491751463554140013581615185450933663799160285110295188901433366391415290749436240588450883993210188953530454156849405441061540247185255820110446701737379659073870944251342004531651522249621135264424500262654243961041466291059374308384475063341656175153143497241328462533748881029497504118169606106341040041144277227330580557343133577848753393560142944628758856176552773553742551310131508396577521194285542913297388023555748502859037546299352233544900670402091420887581922612408654267821607044134768043047457532617129873131356548544020238078814297739580202201274022713258125120768672727603262104103394805381158354116748324951130571616304185015804357869962409370269024805237058665018423342007790526317847126866237253768076030561091672090864971301714963967336499376700028593288500507363119211407579569782907124793280421954227703139434320988068618504042753980644293558360558720835883172713080786427619626252786140635827189572389181294857015777315996702165131353434837603210790335035284374955500864206895474759044915350796551882245151411192871148141178804578953341245568096718544086567404528207314214218150963644723448514254019506881860221016612683044224406416805740793307206010516055032148335188485899883669768033977511030657012489484437009969860729087101057213762424243165114199762705983891408968232987578612266929557073028725710458669571629867920205414013338951987277831871126140575002109718610850959184313383554861833591862102871821775943948713105104768524253226257599893628780328024330406270287437353693892515457378186529426495570664631937435133375550353020429297106261158464436322607600155190838437771197306786686166454509050075564373714137840152995737652703326376373227311271628564033618081967478394933804750147527036088681442117210310232306241746181803067148047359639137520819985491561971879420820033601906624763380252302777760995089205582045052770939327265437514609819473462712759036492565759327875885359788501390207616244750333517592278072063384722028058441173897262614904484942722930236889138585476891656946053978240953652308997120992400435539773378534844020595227981920697971062430672391201004326474833087524978797233941194259186057853431921976530571127158409801352719950649195020049311158672678474762267247941929717356644652543854243876384939503350031698084102240948274586626506442940297369785268512046903774122876376548397424237880753375202800535723595783757292076689959414775760857029227988950195827100710699674595141799629408647243887765824025275766005835532415779150133240065003758141127641714555221320045529766130855906637787363136927524909897181941423768984381101891538282774987985447631525132750622822944913741629152851487961182155361652392220012306449096786244279653999946039431570891206244628897700251551200384100107613609934647340375546524006879386386087206914950708459088166761353738030409340417400409519710035763873061774166984553726318346414803013821366429509747556659892996311539197625092175301215490289045212328329927226920430815228283996302757624817998768735863720142994677014732694511561514043779739754100318677753823966232374826165444957611688673892295965863391980421731067201116858449568203461360752106466806687067131631730610352190191470582629577859137660810767902931808134157930022906861230975011360264423159484651472568003823107166603553113349729623597011194418574756064276883093073906693533401684922226370796178359490688408331430421670166193954733214193197980796386206920070206320531364087362356570111472428735646076471442126547460213735409618125146057267556082523809692665349567897496153927984622728652182298006558184875933052240772711634611632286994430329391325500856056035568581660164171813596934215174065414786615087068940839533666872207441751655987671736661546667827285264529883077615796475349388390035774120271504574052935516596769256459841548357539410243661470765158950978783871350471066751325892681216755659625845286728364028773301727501009556233717285718530060171926582106634756013729451837290318579520284246878483118614239337824305442714564606129724246826492233254440505857778532742121386641305316303249561126636222555671311978899767578949137861309236895340146348144279721942327385967511229422134436072081830741607405115952213861329798180438155024990861995586879104796681157930220864494377727211401007975880738880027418589693981512356892318398194777934926132844321110216843570865586806727179221530721509479981960868675316778798988344083138232735755124230300211868870911562378983245991248746612417755314254226992621301502375040399849680038974477423473767152239124477600014160179333459283461255024812523427523678329018192071047322181093492750634437620303565254007022346257359101544074583584717957184936726501074070847405073279918757940446908327373892885511659895947583968107977301710535379321639415202609025066328739648721573202620340982263611663565058564455180829863805135194739398577432637305987327860272266833462300746954052856833726367337164058859835807413426410676485924987554208535819266683859609179762285838317251407827001208766824486765942250518626289417489724482754839996963495949723864847599956997824042450095684042358274885009567542199785586333991596008470069873577265623665848643350663788412947780156170084356221912479435439611722156534406680052002011036932515229985243973833827011212803503690692846052396104414465025490247454583026928472352380413904478590087025324336768919608765600828035757251458516423585451172269610523879247108138903412759326013160669667910951907320783799720503797739373960269660810821117048638256449757720874387098078334051995058783761400851136669286239842332287441286188856187794465318825641701287563324300190922452720320155947062870319608939098689505016395206939292029672507702883834365017290794378530782587375126850738697338277384831682042972382858386222662272439005908079124288691604128518077194168442966320351982070131347402867148065806748470800512771215414809797203566177585054455139278993384215895811550777138484827644852068866038357218544976588601701911133076636410779778709418184667882627163739431852356626509625421100120069772162372998368472238024647593408155911568622024836918253820909321324320610048010480337495424697142492626840171387173869363011871758482706274000879563791850055510257431372031539804798501335246251296365532422967744367589952059993655798989200002615193130245610023635415216908649975963339265766122572781314133852811022965611182726742767147494533845586602173216852955898871710443589215902535519093589075763284865127650099565022458214399904133576949481285118204433130400108266960563833086579915879609060801155762013073247920872872687666501809135290704051133799530320649532349604159140851697334672931898967462814459352032754732431067939875825660220476397522108366695474704235228652035101903404969386921796671081166232254713868940942507928552481390796738295126316659907429120651211240208577425722936494599076708707078732227171802407703302763002120441740393998571356337645456941734218486653119916745870670884015370772340050426489726261764133160747997695267343710857229280602932559087115537007973986959304901750665410594626608773891163923219681637745443406327185590029563455520580142797663632408261051284866329691406312624806142240238362142058476847655831657096113853747255811584901486817270862554702489432827457048140000990374412535375364316674038700939188913338782441643964437776873641334548678692142238121702506168694215019401777355400006441470424147614243534105043659452927406161303756731276171297904930407712953331596163345849003824275035618122507774218748961735427410482298685015903837755953054628078054565573050102793271454769383671636696926234937910350484751097120658689627653361084251000204325358642176836506798445231323260072372882813102143057501731619296037293607702571271970675573674795492325440582877211809347929424873125472412686816870682258385233116353072471855969067481245656109189676569832005508064684078323010682971901350234331637293589953040948937489643324565746776364090442320727707567927973202878990396202127181866801086908815798028319945295317345614579211004079349088078298673170942506312822785141604079299106577526288954182409354519376052481141364505563173277184126217240554981216812128573205121084741610492433859869145785233880773291250946238449744030334586009344794835537588222529765321027038097439297137358542367884473965222470345824641526171300629543196666621243151887330137737648017607986233954849793099391102803994867902018609775572248039496402343071387027891194540558865201401269449650773569561154724865585444569146191600260999626132447818937511950915593899530853650292128419079290504088606058139555235234190395089229131366855007670502400337771613924273584361334527330793878872593456507070173707950433673311586978508287687442281957252526457224426843911377380957837912556461223953162114326949607235098322710187005237398570296253955304717934112053005939162053571182029476419201890896787023291755706897858113812229187858433662603929143690214574243177330630340027678600696301640432402049815295047472695037864075267182865965172003242153256185845998857015691013402175646360084701753587003624913521879788128402809732842123219438977745803353669280986581760173371151736346176785159051780465665993017908679144809132891190853208147697092392276849033846795196148817596908161078229586149215542965012343140960853020867101522555989074512085932203200519209452768033932694940058652773251571765132753749923219509547267324374180390802106319144241054892875222123325366305444610222616226820053904993602176634799112804324776609270967278799829508200030999576886354971618705238501536770623074375474558371585225714325290305147247707534473719193438039772933340513688870292430609136721618990665310643289977438575062405883474590685782417766200369623030410693060084619299368899545834373946031235447831846855210448825119639554385768902536762347924186850727652299571615986763522172927662084670323708406763200424788692754869564372378970263580629326126666331896834807988385745370656924030462596231582015568199868255320713517000667537054748898802728163325584711900740145094977490072937786850851610917812597459376913910380068006897708469619696334563714853885323051217712562852056445244537992288398136024139930894695920964778096941601172683613227792630486823275336323897770895002645570773239030818209276010147941965272373156918496680563672035393422336920187838893564024075977087637313929951461066803628282560254572313451328695906686082903992964885655762902464250708509199075241987968600684490722354593022649821836976620683322845365884080523407028888473658971270504217456103646908907932018235173521081297548357148711295945642657307788630795659654331813253066138212272131183676464140571168614417043401952716151727174752976828928489507610885582173786312046090766080903427786718884723010499761901204935761791293866624451513484893071114934186515956753143244278670636211699280720929928263280015085992216913659650048918197681198015013538073034457869773626020083282117563801543955536367710032725970907938511109922678765638147326943409381341294284519914416266874606250433894155328471195484088910996536785484557366462816753884266125495746234538258771632806451628540199177224076758192912274897761996170989269977058902276700766141027063255418984405324980812799817604113210338552799185337036282777017475018218308990587013910667852097224544194692565011228868177387379466295506042907594024482828029881674360654895353273778949590448633112093321768004085087972727430753156915305740986173032895091637332241013283431976928038483223389557605570656946883514307367106053324542496924539729383355484025745084988148347910923966466325199512946938263899079693385308404769295784285401822583802325821432756875792738579728200253020162409306456403992244036668774280225980654558046251393133146140489090311206227627336409734039256180810172451921885039419431158002092543760629248984093871929266036426821220340609531684142917193047549305149642098767741288365531554904579121486727031848026945522584917552952870893335282407429942949793385130867819926503241251068390529832954293894798431582811373641805451474846795465383088431071534738273824062104898589620766506080275783095254120421073642187943204418999581255566071796664663767220996303531562949546921677278393258032850076325776246838434086908746920867341011913483483621649646516151770426170616540050412339833747565323617075545605311797501302910383840009013202212254107376658160349068138581702652803293891892609070172215071303232482805678661093357087124998303694311527825751076912300992896162086845364324620611585720202235305492584527115479432978016108843272836600709925923223231348716537745089767570267090924230434255485039604747929573617116459492091391998058871404876766835316009421163036023422760767010355079926456838645000588367831436377792859880151632706791162078333610995264314796437661741782046201161744899621846674756329481913072498324379333198239698967947012214281113112164081303756777665321577796342320195810501871657740558354662366134539435173320010682287029122918181952782301946416804910953824508887242463142724002329103705832521001131740258713763416430741697051437687533031614699627797299842366755236996693799662311184385117949649847413612986638729696143530954658156263281615762718752494130046662819876849311355160328607398504597302144591661999464196093767728425943111339739105865994902062427366421445854730705953514806421749171126557161367879418863238721071528795009162400082066594431259659724499849681788465493538093662738647643919749343705102983908705051669759846499366432357467108588312332071531688660015284528333202064257060311821203895840965626388759329830252006338630958564394698000538626682009821160296467836336318088801622423080472613579516893759639784681121027655174781725521253858420789399651103877334863595358249168559712426454457581722231073740657498176191508439314178841824750837102726664433120301665078876911634995387814959654223753249641531675856301831776989553258195219733895633443822985681506722478035953658166801196179038043214238463285193007715029194197161552649076878471536406826194378015140185634270532463539056428380645386410548582930279995686944416786810502562129550531545373901418170744925231466002762286890222999089675390956113490898248982129012267160818759819343398398098435703384575448987633586019667161398903022860135647676606287655786964651223379398832233175632685821878471671875876652369347710718354788482627108975416474506318224329053758125915506336795331940750775321105473547749464030440541678510410807576341850279215435796112163072712247469925058274487707514034623117199025795412500676979122972795718674865938938452512945879210393931772099226539354984691139619148347831847057281915519201903047147798532080238695180344848261813187845201042365135765978095332960902131873532336778757280648913354090716842479668903912701685827227749178925000205396433766487277799309507571214793471769132534177359538013553659120863119477156129824189094434884789504306166611479365399757904433060647021670100429604685702074591963959182579899685182041196514104621940058007472136527711295932173423217313132861189140701765847325008554723456216953431413752881678372022710565068934781673708040627298017923858869190075613876761624070919906246324721241054000257796560639365259801618236617581697983376052919957731925721525920591055541832190668441054697959513746347557984247263340975025975240029471564649719705913420335282616111146691124086861219548413898735400509249292283251325803770520480759952464842034641449218267967424516018058975968010821613193369794429809556369531916178733960484013129486944586966025473178771223911206452930796753070116940382097271152936732616034650933496353925627050105085968013540048579937434342481585598105355518466945845307415757390226988560034264060497607800543584114359272420493478634285522571532241316062794259382767190257681689455064993940842408845563407704206885271491073123582388052310540887417094711050731740580836098598698049144475804260629867083033006854291971823499283175005130194644593548595288312570323511139014860796173027932657483821296273565216795042002157374882097572554115250326221689319771974206478292890429670901201400348962853642644417426842162085634550121070763773571380074592329971376540188512031697891526310073716277109026652274619768501536298481918993285338481239765192184175960007611092829399480555786524814770905063342653488453991831262335344477356448679526156834752587396650855239103349761351970240420733466586410868374105943015857723750731408868076232643200382973439122409893480302937473518860288703698167331735108291382543050232586815340838543181384440104795068562518729335216900440185933703310282968779173179791295741646762136987398358611347297546258837710455045691654819263422556539490279861720950937383737558304567144137625397613054121575766712586948085158566837270962411480773647204598876621588417628362158377710535234274391594642581874785887352604850141872046031179938501787830760828522957112502885798070018600953809353445934892753504274443922013709311021652616412717196272288398069490883860205245323287463910644510728610914870324506560144198316047238823445586077855138531696894297268152776957603752519623637452647086430677162605760126059429948379334615119532918714557595517325435514889287390515530873020340199886468907479410525240752678393393163652245885024130058555382067563356311153282597984654804795248334291941696627630991664112306705755548004502918223046923864604281338534904211282875475475806128479422860568216846078503708652769652002000699187659811299346953931561266944297932806384403428097869085901616796283528416803469847158963288826728714541972725822060906618497638742392176690067090819785799886191126514855633152772201117963973851620622628389749946465803682930034835203155597690888881314745880928780535673968687677824284088749730807853607034535631932266478860327460219787476429063542476938458277900175666522659652856712314227580949258416927762761584479911377103944038674791971014544235350780896246730581700210593903940337119790350288972055356433488027727067235893224688807040356588432969238932836152764934207929858863213449534328677630929908085436480508170148028680624577946693334767120031714739099149082758947156915150518283127798739646165400017049516923221697383280867747711851015678266309941525494934417126800264345696599529876923108625136181269675408357425047827459089495089080593028529607617220225927805852546299100473030230219375106297796706878871976764379560813959551038235935761632692051136395842113248074792643625585349368733035751441105485573098935986836658968463339645071220999858194835387055626037644384475368556108301686985972851587562252221998043013321291251478015372714009411830486180075456401756728469711597715160594835428167004159872892613577653526419571195828634236802658106572608013856397195633588880765424603151654617170693335852332131237412399715422470282342313692127805347627704004023598833998705105496162417476621893484247168136030396528675981617572831081297870481771217848816595437857582602662882764881141008142539733013572104909514362594544729585217188720697654396943253705503433886436660176733652020184311081243783529749778097940585687521441406560935997867068651458995890437975698069346652815642368710594986699979944203259713316253851524368472342827688709477577322335264578762170660391537870470128121583695279628842332693121188702570522665825503903090206834727545416840954473174411501790277681606642385179793850798303570601440556622649953417993292916521132184676684176817999050373379489630637737253629916356904669226404367423229267284878163540186708448780175724600299266785275482504569140387655708876953817769969675658283068964660411042192661055097514355797986773695104866066704628411670216428445553780757600238806405575192541538416122102834909033375641763687484375843401025359852362705163026717795209949158540595944679716100753073062750121364517702050007869634578949674670999731395720825718758141825336310183219530809016399969717235464405374049792609945031151064593309055709808545319677417039844690613189397185419569543896219105976819350385390626838807468059606873235183811280497472520488974508397494885587204930739969599317370401778564135690990589351789867355305838046233317372976077164615353752155446613249562773806364241326780019617392695364466444120108468106917185260839715481384980918303978686994063660082023467222034636964574257194444435862251243130816425779964363366325459424859004294822123943851102344188354445133002269434126124167551854815664622868490178073214830094293141132550997781827734661679668522769354236808892177678310246458788351141470100950787959099765893535903051091262809656684399080715781418181195636819137260989937747204526931764712002880670135144901344619506095221563136422303505766535394028272464484264769756910444177977537904993572655176421719472238937773529818217877826373820250190234686888693109583435938563100804389242530468153399032492994019913335597703497271718485528928647817862827435746994595922429489321214299582908963874499490621462155642927407514954161176885208755438465317584239543450222293247785463344440806072651014405623657196664473157403043902038360188011431129109128294341282936915961972249691136651699769657346605596161374190014633931352613093626342170678387144200022538677320381318768295804043454446882689065995600240537264610960164914502966677918365345227938626150033397908071282451577315872609419120541123471437354609325944654219624009061031653456724166664890576828055930367163126634661011192871075419164623790154503609434487588930138269236376123298945294794729064394022110335129637058614157827354086557424124784522938407490673672757171996519079902322637448076632385493304172837663023981256664480136658735557542048491733880775313723836481595047392881871184401114715580417563684032827922997794082446221417600804079345462809597611955139000823805237658534524846478746888811194162888880021322114370805891146727986182856013019692825597516536503668395182351828750564767571272667046091591034379935847198097517865993632658908281518537654818368272089587722667297501123921485737756647025343638698959473694300404635883677826290727818600033930926356902224964669757421861609231881466792577913837791820984435649688738479796513432565935084708858609543463701836211734711367160289640772261705524090539992973482787073264806903822019891672900964172938189829050614240073099325963005891119271377346024279687849931363719019686547335349653787862855094914288776804938001719989914099173423508184053143443674500971999654241532013532444795845125326987315974832925153228212709485695619437987641154309187072790798651741248118649303772823694809821731146524169039350383576573771670686179036045826452281502996858242577576853104938232249452254791940140709000409250981205691572558073325210179474129044001653561301319979588360246012641212236101275748381814250877571495647703066868775270083400189307873482847189943934049176277820606440258845192957075228171673166602122302837032354604010806403964692210770902041226445690882068716335719821474094236019186329042405543327708370597747333744435969598337763185201259248243329132074806963260367494160234453681762543812182864924471282704560005231538304518476321631148393456426157470059566014696692446131542592520197358232251145945964898530607471658952216674654228129065819695696104979223688658727630985659696476115732828693654123297595770909408042342016305204938448895767752224051543081675628905238845915271610333583738622047308052314556334974255447935173056981587012508626676369256341599033148714129506938774907165515212162381653699199487474419313288864453013483441714797890606806279935987430336379857275144885649329849167377205678492324495578395072121605723347439004486140388637786828426382742330204826588403622461444531302982366002287968024340781666451311182775894632244717669201436016280799699440961364628754414438407376325831099519318084082950075757745573281261792821002558397771355844953991516931932121910457675843317154489569383100082971824906973322981222716710553820576655452914330478167030817666381099975095928954215872997595782260873294329943983463421527755014041755736928478589493431360707702578494098624682181432707730924205358347017182481613024191352015713168073066309836355923957181746755572646159239818985965794934314936688239209856158676204746686089887532029192218956593716673083536565045200023524844925471034815684830507999527993936777072014132134906208957703679859629601479929411589943580337864333791511637823759366495166552719580623180738061894419280044864635638819253337352364830072613798590937759978937066206916302589370002350133421941008105287685835648365257906504861025401461123023634285326127556150548260336859043196312195043778013464572043815429876399479168700120680660095980096601899808032585189636967228435448762406534651457809269038533099555028246622057558541475482459055335125305318216527077603280976780242931893920884276490115414841042520379274766667444836498497724591421660759211780419033699783005754568494290736439462326980785788671417955934356450042402142770157116663100087486444787630911603481732424081986367940389062213768412551160043279985153798362088510619210939851991726648993357345481148855606972747645094075706864704280858259611507895552096744357877212483165800787586250929980880248855493438271904702627959156129493884765945607446780298253068646037019548183070807038866540894501683107030644097311769369876452474687767679514874584599009314710640255446283850617863390903253422549478263985223550054371583183062093729145986458595694608057086510996698029799654138361243756931134224087251936053315337394590658058524080066695053993312148358958116934015772137050747648100328384724843651529928756332379114363447062769466934832031221828128064448979235864136424568473470485556908701720084353016782296741344469418330130766985384809007452201349388376208969038321502861902193333678536573300184030245844112273479228789917473513251859288740989379740427704655500041473640381937337577735469284749368646412825896898152134291223880995210099971191813973854799303520322899114251325505834569688851573933858196997602256874656179845654294786026823445435765567015141285955074099442606875807614385974314663493092372421394691823332446043343773545347023612323474677014345639919286775032165596739888170132135679706703095217029707032534917695833305126074153562985411529117035280714497116354121927973947943526483831218287542608860148961782605247922095187132583472168020627083866932064024334767908357806988587123627828865437868215740745323989869128385008662923765976814456647518595469028230397914164154519815007090837604053398914841810536711877600632432423733107278366781054177058474867254428584709258510948255285185555515121551630203849009152600344472519292964583113669040211384570813866774214792157841868061558557981166962050910446764811201524942507739474259849286968521131117766388795833934254402487786752315532269734581324503580204066852918238203805440886956591517157833464393047566845544229639770950495937866639394042488067153985452985729362976651825343498964019125962032602854794503479578602200147012204180413757740021833112979606220007292514416320191693507461643420082050877509483659012636439050089174149242069877942550421493890193124189249314029906719796153251149796868218296581008650405949575040590405917711507612162020496297481039702338738549047706750887150821474120463535705324907106256252047495677050589343967585586313938104166280206235919111891301871654204717160913550984676488094044818971978495431516876182814563732146254111200328726125587752561562834877251322962450800256832201136950763837142701013490409775559326116707536330574322326165013394920311663465571036451915083174575837458432627981708101696862370302948632372064877258717522918427281812858999884197594345472559468827609727816073582304609457103712369738181001429700790537416262147497945234202130439497467560697528580832106992699210642064601908969157036358376727542162888640593996958752437144907185923762444566298315912180966774168079789005520412448275505021401221630470497849311418914258210711941292567127062171498511725011978469912637444844338488187342722041894805244895143507286839647262901892660156212080499922864356084389504447953229216696186838042958338730035071894383250862105308385053552014020092416660430646132766711053856605837746372958513816730429441566751173694902283062725710488365335780646957178512414351224607792704415556221093330566034091627720942870379065657087237996744383623635485281428135016865219615921704751155713745877614417343352813597205547896227770934716534683562395367069983844411367220038868409799233274757509299482608624225865339367109020756652619377957397037885421682359540178414530317562322883770091187264555661218227190610646225573206780464011887286271398776019324297082096846483123883269125809842646479182660798997365421261662839723088200998399864654148938986572224777828083156546241192586830747707471508899829150619807408986848534227362010208247744158910434901436025977613262118292651626557667571712302606239810692943786822762676027215970407067672924669121584009485531041916783225644380727081862740717834098681617648341020879288886704376415677933960250795482823449995836559112054458853629430195348716392035507292737880646882480145777631594788747021624117902236450492657200745738919466131852166702103608008806510490903762691317908085437992887108947222797671578327304529547642603840930946114416971331100999001298660053772475430606894197170063011783028572907332480555326857033651677324426829687592916024863010346990655097132663388278010734375431903820033287033129378967432789206455397436959874718885350031323162321262364198011012285587584567702560850053985940897693071523761141841459933024586374013497111453230800340470585540125015938657118115005083237908332488475113656999528615620830207841357615374184527786159523994723118970407425405183898719523039725272268916286314696181024154244898507905682372887521516038313749894805841115866318885291876290513425562478390924800342878609681115824271672469681631950294985802447119975001165239382131879567650803032126192389602141669544663401910331764923802831399012831475741797543985246867295415120471899844186906583281895764813913825458500234032634178847155427718886423517618236954863399184884171879013930038287285748590246438506745930499138889755021010324771484054530466740604787120221736862748716726921439333455233822568805292002733521845600593792779559957874382162723404516784441819197565642343370641772974640483779173458449399125983530754782457358581269542440446665164691005311037247751513677479446560842248307017537647907734645110871889087072973790984805840880107344811307473200479872908439186250797052776541800960935938603819718321619688394260112974104035999106531033109744306010779286915028893228078253033200901249762091435695493281870762968985622630808313632062355081781431736891976205233909823789813703000479457675846626230153580489457382804732183105465128598717852084106477815465863116942145170054035073479776232154637226034760981054593599958460399525015424187290774964097877031979805356303745177503028014924063531612075808641022472845320592756648415714788403008830557722126420013115459957786732423836429233120980214559242194522524545776050846516561963410195123751220310566247100977701016444302815634898542033703985067836493758842688619551738951821190852169322524981905129739847909675392388501355542700412047475092381508735475952161907796528792652600615037442720799350761895552992705543128997236236913768138613256101467988713086519566626092058121512396395600557293901237254250372617473660376891949960701518526355230734604283364050037050126715892847513148592144057342889013857881063722049013609534934143425889188712437418682004332042555145691056288232945584962278931243130257144467798594108796068245314196630240943679019850615558724066616668980207245217305483822760345685143756610651925778070070176178271824355589883328124913737673343911963583810671982114451841542094957655105043439519358187945195883737811314272200424884360994710412873311814109907773812032369352128490173213535653590007098937383756772825634418275866800666909601003484417642839482785080439536556324726719389246797831653588044999748399322535997820394084238475563292712795519103291968381486004426484111813519969466312896589674366277920318219661042529339028678096277715218573148675001904591428887305602964622512024933207376827735773140925842597231478332852380620159679879382257749337186760644866274249550394211853740048620860601145896169164183510665077568755966618384884145597744096244422311461876802264524952952873209488418840066890105505354940383456437252787791188941755514797197433070167704734771852138714777586902633736959702907861935447637109728251186408447079290502999006271019156851118075895816055842767940042011223584125651654471350818767237002483142567262517420551585986222679345889085357629119303934283962970489183440119485945068974835695338141917629800173257580700135683495985695956181266377603829279067314681956762691852916610270638798897403451964727027610139170955350030047579090737295799314550783007193208873518200639759652754982668880955595975787709185802327107182494446768132699612142996642470905199533242747812063571114504048867707695117564548394610655331371050056108067263876283418031747025619454720416387716677083983674714988612454639370356462254794733582684472717232726359100860366752583767182668070584968474302592477441149639000902689882860190066696078451612323098133123395765935419935424085141353178086901949297017138223469401725302789229777513126672079867736231280606357080734291131897007472838134797409136775435531424369494652934668757660335744096318509954679024560112717155896464064275751366560563398985126456030740374982149421905312245650820484593332593048170096829544458397170542242550832616536573418452797217546306596620604685871788158171012274521739995320655260826114242356611496069051442794702966145146365791279531569864715572134151738977455373825248123932820382965267202357130531128313676564803506423089896047470191406103082445054450053443559614874938096557952705954145361478006388640704632832012356884066887660623780274048732994205714639383109982708123845823171175349817269301574203706125067790044901739679439321589682537250214465971974485649554542412959277728547326642445856094003442454982382986601861103256128022528048005664859184084407692833268888322445592931517840187385075606847261870797852974858893001592043715443658621253865076508638052786670648245688303314024076028540639621438186638422617872998672712684658700969404929346921764502370574687475077463906395214337202129801907400483115505469839912881825427491544731614779979366886534033585331723935665397672771521765850375533287665402604888452667665449205326702878156105853100610449924593344628338701508507081097245006456671473023252352846411601025802782108765908956742676388285842402588016545216876321096754905126501778626342572719495994300599715687958324218549820484903270250430495019932170520399372942265937992069156977110669628235263455402643948655986818367820131521220316740231455080907260651105231176602909826622750668790273646608940166423981203009165988876469956547224313687608769383980367576895000013750464138011395975091224493205793226411385111584728338587167742926305686412600553643422938595748242062179959323388337641126390158228193022505041354179835067302979558763303039385325045665250972909318913459499674598706012932643863172728955724377677765633970037110674226717480075757531639882301278257628140309132996632244927148345807347156878541653262916853033601268670398527979133128132599138837080137424973263495376221825841018779418668001634546740001601512351772248107079262948475391665270503035991235167923411330293297236671638629456480531964283253769782239481435635339671068980703375454371621462408056645912682273115537556168599292617579060484033505577738504635131871885304971218164962273266089961222357678885585472006628897449814954628268436589167531197658940821509356370579244584960804302309875672452329873490049641766416759267585076705890661334806696550916525850060370829021478168802689585641922780470404178351512480026130785913093114137328189634038267712238931316069178948650175879274525227021376124237131962493400531920932576401369653280956297924809835788434991085580463030445885823663934325864829070603360029620386076961381462308985538950928818162994620758749730666829511762486543288733493637143809666068747673632620209701612242570579142704944567504968151342371762965786841039033921362503775370933809834711175033857779607523028332083945365386056983987049863949532977758275437878265452981073170941520757408849536014194158187035615461100137738208989288424201258282137561394366963780667024690683375029997122699753625497618336960703820817737941834244167891761859544429927455326798585690777829994232225753769330842262233622041161038097495294689615885507293725948996035007246749578405812465160028859576849204281893210303027183565256903038266254552202146057110268981796154673404481205766476623057250983214075467282728816566602475461722847256243173281134137541062579894661099209000380307368492588364539683569292832173917498112623455024577427449939899568990132409596667596085831964914305163818902388699330239577170221239756571578359239420092998764802413425892892634667555957600986212543556659880256407085075898330127208074781468903579266250713942399181583453877010972597420348234220558950461595424236025225874840331186273083437666017948984856159237714956361328668522683627047042017753755528942504939998792594713540607438931564423232856388885723042368746122109577567975882104827112761906967346472277205104716655487069515689339221356979267845713939959750188346682822127583656481424370941151686000444305509468136379907044214898521380582112810856680705375921550984123415524875151443051170637409100143824072555178515524828669507136194177192728712303217908796921464426586749334784680994957934996822118824967259413735649433209209893341558266275147803310193237931310311854518025811439938017398417674457006788446743389362541664946085765742502575596683529708838671744525591267019469408710473276846904068827814958814307283458781402971436422401406215424676842834462455229991280139798803072264249363504531035669566161635167354844647173704016427446351351559639026984377139262021463464962020537156528468216217342412964117416342287034530558343127907144448082726019644466365157896941276511195240600370699523492446802119861805982956799808479653476348232494280304405067272361046961850902135970248752813662440411972318134009109716332653269743786433199310773522192553155956989167996080021040411617610522039906202760857408822511525072468103212715419109916447349882629231769561698604290337707580801769733344088306572936216540341870516400175190593823630548519353462670317391648654200512710203672276771862150105342633821740323833788001771812776361553003241525035642566087223371970783025731181548162613784754597420782689299052550861839269006868033945051369031054011654281346782941803174059882461991737021002067539857090948409986885821601718733202178837585075964329908432327721689959391763525135956638132296211740837628527203863588097451918006714264289558837554607067636470480177579406841302396518464474694759382828371158453518095408965250624273095102126494577840992037542900204336500141463820887341998078739857401408527393394774982575331913138861704560853511674241884437648262359513664348754769935363803821677094084965757553258186539877137027750742522761289975955771017445262769388505990590621230277903224263126968964643830275290112274515444062110710380861173723327732263204940583465859720995813220385023421116068153514673936962038180888192436561218668391325265060319433726753902013900639802741572864296325619923855543340496539646271834006738050987329432034017788234849671403290416947862142920025050948462723285790823884987418046434301530601828991066204992564445694690495885509880339620902894640640137532789624635220737120617482770661433280812511016499863909278594607606624396965872727695159185629451027137928099380007011656982114618948637216623376060171568070466970784743082829509283462416755606741543049863372229687971381710344007054810740990821673192316554758507976672246224015909981462445657369548707657446062618651693711061171936300309649250971231247301740718003448274321834349430397383975773464779511799675278501607256545676424367178900186141652132084218165186117017307288640301517630309726799531389122886169826090835806745632065798812984027034723668126474695249675556257634415179722612948348858251306370729167519255012915446123946375702818942076677153305171806106392824424049590981974451997078861964888140094607579315288906167347256351235427635700444616360978974411066450786592319331699645443531494098468410471279018591075626393704134604396897629433827350113871794458845976126653732663134433907652235366188933581170072515841102499611709288228348849817056564769785466800842792418147456254412790543584630257140250573634260939163237163533237890027489908359786665689653197750542420464297858522919114760106190421646033402823641515682658543712865336621431858489811696404248555408162667730340151011592861067945697661501177464677054688644015993658430014937193214293322235932131700263272757570182818804348871108464589138006779807506446024200295377252335830851457918970101638793522717758610199136624048329761703343071243360740220951398825172612355098390381259333390080277579648623796495580711977004161100305354432369482370003537916546422693605026743580326773757765594251397009003950997921193483138788596173433411538457528473682127051955230130784521826056829749679100447305702589955734585547550809254953415175463268984126566853530118614064610546129540990325697109358285981602570480735538599327616830792625426885415336713929810849223549041840195433842029007432707293671620732265644494596848315707796030165634958784205208901046768909033482682355023163916268924110646646836166276407757633836308592108018552473481583178780121365161027136033894108946051325886375590737714504172895806151235271077109534530150984120561161625937188210144172456207677779557887879235201196469486564409966827708799507178259463442191238946666425806571324787358218419860045648448576353975788459522311481761849005897564073208012114105543676091958021355764620894797847642226408503245991421114699152023188346814493718437602674577606926956439065588949911747600196581380610611319367848523239094650985347797897356718482491306960939237083675399707057819607479342079490528526102537702357752414074509863973223325895022387561022760324492139000663555538453478809966379999533989667400093747175379825269174182302960003443631439209502078424324191134905364767274769818756025141661438128737013571479798668616035231821032739739541040419784966004810960315155959583800213574207732623987673518925201878184471841828235792573585891882141139092305384155152680033787952250930078525267144525890871381053402324882071983986693752459156182693061535852196847264887843721789891111340731804578368148568134600482422216825208311296828899111757027460211732315017770367404970286993431629318442160094939541814272785124125773691839763323429282091318696125553975374597640461593335897810033067605881222017292505602594263848288617780827660909598916534114655538596541958766625493131535440985523755926518579645506973956103291518845608667653537901989507011665309146251378057722967639192129231575532799410660611889750803181286227091764552208930818108368146124179205735524838704807947866570625866649533463513474772407222335117988940233304815743975190624744736896729889723682101423089776530804477688805135445938414168458357942152330872717732036606422784677970483943821594233890544220285589808818240396063241192406023179478163559950328863726433026277444875066204823844590722178069024260616765500344611051270770624414899775820622057960883717503727672924353678605386026995328160517987809130963915843677122325802774030708985924646768880999067806386061464394214692243945333103032030076592797412184557709240032093154274479271205572056315354581813269513473959357712140762184091228122187869711461491764618222808411655423388016843924396089919904050292052242851420093243484587286669974665684434924202864250535866816935460996016408886437033658631167737678112704587428327000611299053746505177935894823840261040780270996685676767909857393564375072377495379567046875494773670852312482639047757685915617287390134830703226334278223923183867165813381277881879782645763290606411165796738700866026569353481075920769352633621186754100703166916723636474866975938455561322002469064322481456043870952755430612487541802785570948999020359022724983636278745799039633488289059495096296864250324523576275782482183045871161766142400225701339211322020655727436215941367932436892134397176153346732285056184970970980258872475074108155004554489162057256806511888767509966308486884121974480976596032132081486822607641312058102990910620062328030589528657425111977662716086050807488911622059297266686607175213473135855450901999855561974722816423943919780669701096441910103309593860819495691682600904599051050127083408319530584431970933364654435519829776006921097854121927875070004016916458679354769163222358000713089891200423066783822529001765564913291949830133055660596449055196794372704173330857876371712149268850521604838598941181964044870165902801274930420764429915240610426005478323051983259003522036937106885756882486287424731793998265249774596882252570181184570453684881831963970839911960339494783419429766034180822316477113221123469981846695929231492205687701975327367918311395775554979170333132120857110418100197398481641012548099947803343056215074529847472592837322829284063839938767780980957158029722823626053572730056937058936719778472382544893510901746590474455056244280000878207316958864983191293765881217830647667439846956942454552828441107983064714225205697104642900771985460584770468909660048531517912307465584310105858089527788029409929856550920602985557315727651083762199720394500784445491638996037881311317559202590596626931246050756427702474566365498231859921653922792714823732079150240447672899333808449369319362218661900175006200984242028288608364160430334203138844116313874617289360281344954006342100880270285919306793614183679098158144246723550852940759101046225423772152614605802343279622207503564741680041965380860983431795682511756521609379849666444074192897820063741667043342251504607636505149449503444754621462955438073814757860475658480085569178206149842216242955225008797864581016257788325301193498856217155690361725272130467194016155838944429133644426181517380433331118426640147218143875491229405307788384226538576984132807747500542327699725175569343188937263945504888866838621369463197220975183986257344082132393676594835607294658701885623357299840310414638260294089307676946807243276276164073520441684377723314236180549285741280552048820002797076287115355950850831833524816287745871195226156899774183050620180924241768674481144228892534866703646894013036497268219196307606350988435290211339836146481315792501513596603198132550141267162623026277820565192656756583975728510869957857207587597079156337666313490870214360900075903852220330159634188797415761280259645558258044129835441525315064491094598784360862045973472656413678720573420111442688231066583808608522934205025700984396786696698754421058726151623991277775858493085837273242112775861025615495733125091833839376005802342306707089669125688382691540046657909971967927116297108493462947193648261829527469121995340353348981819009033094456208486628988489873767358807061567153357829819450604997652080526190001302010544689457400716762542058445922669725394259431431184402779853274056907790189400727678467842716169731128680435597504243718065918818757175798233914498339938241172201916510386972902020401668290152386023037065588106965895308157492176839522093752928368587811474399353909936435502180955548431418541394151814370049059156745426177275510333651766497495498435572703047636393857032466780504987746427300581869515458759539960501227781605634408274417061884569851400456249759426927800866255513494709056852066255217170193385370892553313320333507232582939490270217189703954394010693301728814336769690996117035633825072477393239511061079490040184372814557252741822250005904185436017898430564341253230970900403001638123034615538319998681158348206634495281754672375921933051339233438427353849018630229960793539286145022381963478422623302220011417025443070426687455956398671297116826275542026079489180397126758097951070881189168182863430910124099279842802671664276371991275714248958332500315222327395205148152106322390826667587941546512719713466240328518238750654912618761436508717848727320964306565140682483552353348783807472615980503572136101831143736074128522927544479253906058048787355183496511353134243572401572676143079063711966214327717110703420523756794700610146338557482499285750189313873096989812375584515399298856826711249086086256429129780201623907344152235384907463224221262843020891844968442598861365766332164236653962728048409903271581013146711414416010749834543497660925805298686423792414225140242104019753437450880177507594123234992861557741848813900962206472591389409713726195223989594178613102065232781020214408340630704046236566544539087577131822827122534577395531221802766706431216899032729375529818575530661561151501488938372977759894127894068143048645691114703985846308529336267222473524465272370594576780019098711997695872085484148724283979071293973651566130827509790693460012773399894924936805629005438043786802524561677728280533025302598371246465381645566429346237773722058831741908164721370743300602208656720574443749808169816079642052615611223953373184763084696020674693076122326788645431109542949122675757825934385305763773951093064350546623357663241543417824846444616657179932382152906644145497623566591576317929287213612568234256374163687043040286253668042293011790027626622208877578272612964323081593350824315866768817891608676268535449498348395874424476195952264837148242105938906435414887956418366763153062874660382985887690250851636941047443388763446951913823215730952715474195137974850616275220075226660660042466374172202515834005216078182916045281381600274515710263528202295666130721241069441785874090969692853020892746885295274034139752703794856228920676135331200955296508543696863903396027022080848423101875778886800984366144699880798364569465605743543693452922511780369441870473772875382879989377649223315242424748664869669748358560897272660506163734761179911374599729001890915107648828663280377907876713804149690768742316598652832424147173639756248922062621451951814350524240762902873652284484398732077737555199627416537249983069510027424305672179831693663562093836027160158098455150040085052289297578824476586642313708798863032209969021877969688044082577482626887884977049191760536267696734992692122465848918188722194951791096077992670869928370530690284289051102246673348526978616892563867376653813678707791455337706595383699101426937178549327421259832346211978209170069863016615467350491361529553852109264156704777848277629952525507920359191569901018287936352813083117067092643367675312786899891734767750668372837203399509697596200947015351696537094499157296723107412379658140364773409024649872104908690431596931226401537939889344454634567939815527098441732503805552391355593031920087174465681092880666836309697194579359559795186358542625543700638200155858056081115373828358662800378044469569515966044178772735162522641065727999936175224696794076449610030270041412304852395041772297186011907362604849611074460617728301190528065107045335721107718949850153309087523394019276534100946549434076052166675788457064561753722834303749720571000841625797444426275984200379676145942590156867873332398682798989197200500715641474658899782450183415536015156044389193922615043724528000269535140709033837642586615644128751247662666946687407994445983944584569666159563379191643825176321266998197257497766415067799322381748906742897368910136229864054378845305468310186500662311781552519249461022529207895297707476830006206970052934088853502061037586191004532837426394874994640669452332899436568152541332898531649594173665459044462889393474427662343605143379294583161057866337450826722241007449009492498488976269117698728949918778385668341428136078138676906106476514933448494368933946569682172220050475439058028491002090511216375151115362002780387642311469477751370853552790965915634722776034030145503138016421679006452544615908061243567559908392324041372032532929763295316505578543044018183169262964558038061877113628950935142145664523903928314631453189877585198831809251000750461557685976259181486049720276188158054135438998118027777146743003299825405469599176766559479280885703372175759377069102726855036662073400845126660942980070532687169113684508990338547464140780940016194215804887829881794470173712530421690891724702331643240755310577657092498546193456188081162876559515358508847346398469236363359619595148427576526734605947061401749361772602903436689823938440832010211254618628208057794189242364148845394405260826719469640594670912041815414057495814701859636842961788887765486464310070604292590148621226198252047737835571775110763413317806820272357491379783492832986596824892934943955273492065895173410192474701306603394380150777011032399233589599244576694045704095816391503685196653056399917911445600407139448078453048996356212442552520100332891114833588502893825067376963164686924689768694615991807976687690523042831131136875023511773035561091704553359433511243457463498907134329228946628326587951151696670779430502032398621063642680266000356599481822571205111451637586246596318011356799295510282704211828757773818667024681866988218285218798795431199835178840284992452176390989519872314656762709652968642792106511757195803699882041751184820753849004793540572431297708092216998635249536684055820298441696682726145998692905034416842760089353577501811014671986593006287705283840381527677127288127846063268626059339084668079519804746783248930622621936382821011961940425177699092078423212627000254488101614391636016803274768347340262060645569394973221040600037673288296792972243470699170773545628079427845743985296683356454271874835364353452779724259537508725736907600450567384346273123737202801432440994547241574918912859817715250029716423467282231105713833927388000475248165457090662530534093821467863735120811528165680372796060508210802572336798484924391046666054021400231417761450897841153915368959946922775344767686629503910448710068526315982386382179401773266746283990172819199492327772405437850479490042962828353794160366329815645724934118266179126765311773639726630141425421481115988023854580113351726959702399176149375680329326438043735641475112449334416239397349080864160838373382430964606236295636097239367597686403007928852189180903284449326199489802994789286233203306135954792466018125568476652712325392494705191731810145732758189934770817755555857570055772871137324774989495946756599786322005300247292663836170523719596575377677953498711375329253999895307959296961116161701658803374472137245090989260451619240689430112933633273183453076817745227544770020506393635134705750724403879479727920611543789545650089441502788553547602785831255910543204549352833672103192529287582992257096211897249057897952062641439705778183047985421147253715019561436604654734176621941707158211745277292554541179156928409809984966999840186979866539847355322322337244018503443778017395128516483145186762020163294753940731672933560050056537789031622332047234778552915391693602643167749470564764768720816000782954670141734027621566201994330658205802870052367323786150645586998196838668753707488163862854047642491155174381688391846068292994015206304174693887723889554853000887072555846272896444051923838447784149335990492187075367239629997629408964139914952915922155112769133587541602741656923591615012288859065779418383344579599681361753897104721227203715717993417044237156276865203662053401693973015515983938704065617689899580929196801047821416316806579311525769847687119911268136402257349595707843543296930909471104404251158868882138345116485918305768823244056608094143365226117658378455376554656952387997831991411180998537327883086712948331264654265046118196164034629269682941470361126424881684720473346833882730912378903708501570536331928849878031588896325582753512943807459442813573455862442036622532074990665784987814471960316210231822373052669880326668900777412888645426120679730930311710770406019659565402666882304212154440922654393427367015783354469234332170953916247312811229008352013887675830263793146434424814514224180860582670408623221298551803502735990244794944739879187110728571707968609441026009219994266027596104973022425488794938276290370620140657466529197384952398719931384607548628179160740410105310718246881729864698913154167859509404668331622526676328295943996058480941530048623520162822502444181554890282120995734957385052086592863224542174389995294027006005274302380088392879606685185805095916500033342882832918930993839520222184510685323390466556248905516190889611497113866079496241076723503083087782860121577586841756597604090616546455441856802942887953671379434702988434789852545864389013916607865085866528374601672321656896908148264655536397673033195477288892092466033110329728918587237189773928964778205340545925797225062278948298911411541960706545551190830752017007328669766303502518091580477854243181551485198483567446943242433239143061488705851879196439915493129774399930811971680910799526576120646251561949749899661641187761195533356470886750531111814503137727747868202512525868810875454037105070428508105265334928083233124508663170841648470291847714875936854445607887518931768568547806620897705172576579885968441336397822096428765595381108623564296145880100331632631439382394404446086185774183331312243022409997112989445868917162442245640988690530699499374471546239273333515217330897079240325072006140987318535492291849769056760672222037374956396945198793767250047067572097178041693733574044182915900658358548306700637335517206248346246729689432626069909576368315162421299302082540177418965068073881941113268762405203843374265930485478468380854993320282122750671950550798987104438381191536237090520353303102052202485221746191330964339868792049013892835527989839351546196437758468967564618082580859591894405783575356307451748098105812093695532079458366242608295534779248642680999553229672871433177267203966062702936184861075782969268742815226947414934372940025688818070621363803441011134677220100610488476966106902684665432654474390705371757147333399748100843054347520849401280747788293214012803470048318616848281703239091551601880043516752596527616753528464823640240352317385130284422167338540796213172260120249352455769321762926510944666532687051670350191808166097151657184314328331538616342832486415199792179450953888056090703134486157389059362880615642135674609129574354522509930968457502040105468219663211959959563673461293893915780532538283053003968401097896043914470121773407942759079730784686192531923332105917521413056646820235897466925962632816541790936828389091711600526221867343219417055544228865694585300222880782074374104255258494115075956484925661358842495688947902084821592161541387396722452978810965858558593259990748958858360514802611862831879086611876590463907217435498905823431038619696564455688415227596521406016169002898236072345679716589365030347089610872820836928805029971552536466229765124661902396750062363526654504862191490559137750329278041319780258814111779106696335620645590624512415328933707580735550939617319918076771817547109219015566230746551893993409914658638962991085031604291041705995892760643624782482806249258689162584065371352452091190701085788135579480983547009270132921164074573824304515151705055895644992780083836169275151507852448639506219223181392135578306006700553954233398169515752394990984854849888172284660909889395061886256955989180196996240243187656467739138749437362128696042784618648463499356545720566444716233613507253791225511524566587401466801912988886375102156021214923402698356385686945444783117595190092823840196305618994386425906478905424697795890385606539926344033419161443906322147030493378033518220530858917135108952243125915528773502269413455512259734006921256430586520478156372429412264273166510537704152215907566821187948839516860061451610675614893308830421899166477033368199075190197915795689288103451942963137496576440080281728156568893806409163341784860322212830490968514922000511063302728695238485538401595456929530911342507770538208988090395004819287593022214647057544077619639925405353222957201841607871468556117653908340109235716658923484381562911371439932816271861529680790169737041198727986288855294373567847501456831044624812410145189558570616085870462421445563502104086982956007524649653902879922774364925684774545888329326919660020512114977036181025167327979996572325143814311692170134245708883498858496231761785288040022796247414723988083381029372697230130417017693732666570966209879390139160390303248127370268456951501377038410517091268776572668509481456294991120118545715361818122488063589991548379465416831102976749558824931683158325746039864227656871572877006492668395526914009691311837544716030681283645704507184053897159327225708142733772540222098306961063219927017493642689199822803772365259570571158894823680903859347022007187616709681769504982037690255623145229951032137425351517931705387922147563348485932772876231689801940298819348851703932520604887924271311567657455654742540779302281986185961868190746004587641105401835410342780449786521912921319005873086897048700516822673341755976775279188228670209714819710590296007455837975455907841090891551251594121862955833399006445452652320640476084016922678122687010618239282622783738916718016828465209053411873586201206058599790365773118431959238913469200576656187483708471895625718777179038127877283980448514389554587871546027792045280515310043185743044728894463996868915585884709446212395748287464570614035340952069897231868519245161057205995501329477612956131923388286935434715637625005835321962465615935816471791766746809223165022621664004289348994009986632124088700569621614748572213568366315236806998821400261323115153332716503986238988732767776856245670596676570534309731701165488795331525714377022287780581367940634070931393237429305453511258891131835917135034038095214473946963857113491212244533363329367066445279307870060768959768900751854649400698856316055553513402104698389757299235081666194499152558067181413291657976901759681877829326801625739659543746708831802957394683669138943676178703530657639534282691907800069081387393742623838273505266814930009663974421754524327191137896160687390395316519045570120384204539600952529399402300986889256001297447005276068369588360860990855899095921341380825491624694369879396060007959691347411518663874120175387377639760330507352673060659250968204330353659581899363726723450091496453539464893614283975417442836170637035529840524932581560171880239630229349307619579210993916080785261392564825242127496753346064106737008721113988565896839877696061699793935872174994817774716238282390941598785669286284173042582383044800981825213448454875987717853298282251089015794937418910513106016766290919695496182241386563665500517852403697214111469363734008955113452677794732183224202132296466178769562805465109772294439279469933919400135920100147720467069096245358565511421862386358427695347591392110666789108430688497834596776533809057161421792964555439513186817389127718294094187556310394260920742572322701994805465763166019526025849110832383865660554932227789762885800201308511417787521990540522947215316862884117489121066692410876343745142464865608391702491978520938471205845929192977844994342099793434279158999447806513733823040263713840061496712416797935022023995144158456014817509832100762771677875231016883812762228327327629171138746973950625776778500205273073916221092213348017211878773578142736368693324399875789475830468601777041652594261439824805752769329901367903860187810052659135674918429515035416270952769396883590318445445047211139585940011578496742468426446749619259307826123093480377330130533674045394167753867931378096260236222548786390407157377498799953738752412079298877948164304314700657709504231933532292477125415935876558184968200530618324286902083351168564119107870003890195710458426046602172277665056322512045156768247905065631818825342271250374810963620743450926143491002321189977614577673369021008173868208401750792933792966017215253669403984652588911578792714711753685146274475171016803144332397936194106123346656496200271272136570992091187560773161955034782233184208299199806653553733287465568411124319009265602826809226353851223953192703150451233815827305026913591073014881285887079791651183109559630027246668785350544127386843904645504092736961923531357848730242781359017945642100710645342153955540079868774271143669340054321865228810725329099426187039919611344472865549664966633726196649508220660405541440662719680386271715208296999790351831917756183240536566431509640344149412059966620917110935564793857537445236921378255700498869646442317441543597824524824839718293150562059443134763210357470012114380417724814920540515898913962555594770137438133602602788639942133655630837454883342931394698727433752109284076878688023135165075988557961156075973480169427714257107149723957491316429607666399919202301294131271773154153621339274052157023611828456024904929310127273363521419696221739761247759300121931070514849482817341034104346348848666476542912267691458763632115197488729738185524388068156780522859027449998900676242378617183221019050727930403171972162703150442703699959529131975878529886636207893027264958050890226786199211113773023955252052684219620052030829770689304906256963957817703761605586765906503056864418921545706722879149535089409622146686832628192281779680539279352435925332036040971162355467918185630931725279466350025411441612180128597994266339079446619386769691417597358664737740939870932329260007623717237451809072406313730974811227309171203903895387113977353643972719971279975220663200195534859104844476789771591254475528730226280168594971797386164596333623284393338601399453036447850645774997569192536875461626310816122160142828669571208460281344806730675570396157110079334994376396014418181387213419914429372087462155845908924844863258651037972673248333968702300126803266420482974914309165056614662146797005109895518342371575804261597088458390133431625366822738270720059302169713124563212630707517247380480000541038051338681987477966340987268581865505131126623134186761511037566330372176770563438671403987039745866658191559784294261792782609304739120399602307773409847560539515801849151866418557656840899430196049559884568840669685883119258503491436582509822054406535206307208699652872704266858109899310934427878843980126515597634604859240821807047285809489765978023307240503857215067858709416301377605856876466973431491072177554719502948298194639719532702595349547832224372097359133937373203027005919399206894629091818477603382565884074379418733275911434192952840179240158957923039832767292488291988281235339828298057357987694898080473594384451704195172150646706018791522025190711501678954790121190379839969251631113384995707175922883044342372973740493251116672237424493509267617974606299147730410360809188780774754006833796650471299926418763924469851590718007044738171806827384335399014321561470974290412915097229478992579599735964958142466742316073358557925031704051408108569624575399053720330986475981185750145778432396910308133803039508532825987511323908307951392866691156707704248641029704706345315332666036758759686619198320408307550147285394436272707565973708377272865587069522512083008307706705559915794837300488590242782671193814157629529851916140286497656538662996269674001557576731586889925971893594928039637357496959458448109484525062330053294801110193191245778449425069754674996917714735073467668113670874055354221790480828961263039091878760221392038124300251547134353638878795971756351272175580132315160535690888090116739426632747562640137083524766625328526716378724757134630763022211450552213306125749516981727830369595933808427970034977019585753841982368092895381021948748578283853895138490566733114815395117773087800603308198020563980147430098433405756214718614783304441494092589181471064780686729683020012046897236000129313213682023422810568843969631580459388118995779203393346725389458501919256285237089175635031740172404655445710610871577471601094076072953888985145998660038563920581957268101652101607994120218893249651759646673043027565429974236025965676596739035579887643583768560424496667959671305388444584615038854646063538470558451139105769082018748617077100244403305213108549653742664748055677431098933002705544895755837659973607433296194656562032183519769882350709747254544848811662836597369412953227165343424742413698263855053056273951200104790794165771543640904407520376772455720851404869471884849419320744660452092669780020614880967468084724860844845357009671373368345355037764107835786089778486834680951036888133338157712881995223180661295210486183664841148127475888966692225257782598732165998665283882094098832487039568286273141642967281052253031624559108529133159390982624761893934271837517857195055366921168022402385032691431606049891440780712615996399736443057776743023107920824477165907324759139726158655039467043036076568166598718864054467299907569197145618385291769655003490397394193825567661342309067946768101779961031172110629647497337345308684619160836560134439253952296460039585485442216467555180997134215855391380432229939419490736697162580427398539386504245876209196437257336867760016322902211858368019972888593568032385866873701692071996040542874407651146070426844493714588192844983959079343777542371161163358620567242820010919652273210390977042813837914694894990709799781865714671963312207171448231937201890558125988943472499726920932851917785568845693471461375790016221882624691777953429310006383833686503759582584469906910402650185636870827728473268495349700383166749409561957133210539341393848405718105079787921427426669705532997289727586032234818676193827285613933636859764130835928423257248609731408138036399883597577183359605113141465759326218213690278505024780955396016169935164833287974365303819626101474409917654961066491372238877364531040296135422669491124627979534310792339472102141034103644793153279682389161800460267190011510773727861548410614367486292968328317264301311824016528355381788237847144498054662183537350471254367416564615748686457102214221916535980128349104069156132991529849659548853157977031961508513078774169024428609056252728989245579403967496352290467885672909579823053702977755423771493409243850363661314948023922345269132319296291341914170845102465034052936497230726413604281079985923787911751308610119224597828156819593681566165944155501071241729911580267993814850152732989106391933284047203688922257776531635511087039394092905750073783884490042991713087169035593642539801489587504994846145483598435399258380892323765357236756237538530979947918330671896962610754018738483703390267448023438743354539217021678465096419203733793794027506728894444503281921478442650634785947797645658362584424946123476709362720885190681645780711726224733643334451120270646819195993580265859122480993263762556826639277655327519288531293755387416665925851461600235978289833129508630484612693249256082483476105463837960076637972999234469403464829032617703594777650180290753222699504847347626936154421262709450474205930318919372707467208138685606027424208748656863647261543789471437352773611081554251631649533966327720415534514654790856887357459738234252259591635574415527324638141533239832706484123530683881108791556207328019696341532280545316542465191744206496470382130381173826219393539108675835808144478109919426065902125025923396692483040533340703930049101491353390830449309131863310475436474336617143413970295921489306467347783474604684885854367477068433860847712316873174680022513641979476335904541270229894799200335308410029064710438043067306987711674713070609319625209003750139045175364035476538157119449357046260877312239639670263361097473637667394892673985473979451371263431042100529596868613460101662031869890041899686215691387464857493033392918544055275633590128370593170173755162248901380757776118400549888309372098579760600337966408513542068050057646282368140469875611484615203855745038250368173093376673903557566172812607921736734179360586010001865471958506068351816659910716325820179494316586805026745665925031784361779103516001121030691004263822415089965408045372395739261538572071150315568119823363716647233066879688345493702174818082969128952718703329254132129823489794004090059087169347467536670469746107562492803947593048924240680283143033616978848154916775898869432450087736738416784193182479958093658087624849598532153110258889188726496638983075802759252568569106562915979014435750627490770283688072651976407208813873287123743531161722419294508913609464786042379811624488880420313258580807651626151334064462302575022851830132586720255018198873855373743000053927419770344546262048699505697314122040133884463285671072200592179207997212454576947937209429826025733867720442800343476750685255717771848972735935164477029011265553510522360356799921094837876743996470167182937560542533459364676015199197531345014240598119297173687262320134065763586288883969440964670220099331240648221643372555752141952410964950192777405008097420659594457385877804250836202011050832586393430707685331701071162477499945563182203945027180443749234589023206318460741017676837637533997713639060582590854323168378863634322481649325427672276343336455362079625959167886302868944570797304142562709062470524992906957416152150578027999310710998496067093304819905721764594836937853716822441423130784028530716170623392828104854849180272347265220640275483822408874579556975996072999049212105952380185767139726222618523682493528527967342274215873741374208436725837013801806373982882729516626729179392453109714148953309555577862315353944676479248771992726002341273093036145896454607156491602883417503745407199180366905630944037202946197173183022510530287668911237613537631594220441824702134814311237037803974361942903146486221617938200455024526916444453903835714723113593035516146291968714531592888047895901502113277712002740766466162276891381552923117417825913304303264686778604440451492381763116525996975854829607480697864305552518285549803937272762527717152744082113512185043328736952268276067862443276494383517610397569978156736685140312426255310635227622830538351753491310591484918728597204727623036535452129684501711362491084137215464806311938446774085109151937927581277614702675456289893753164734972488094795371398513635131038638501109885096539033162046761896771707559380844821406641500786018068116101522393330102751141986275394835130370438632735548246919500751119937069033080542911178227060226171597989996690392198194736875511043232019352286576233231829802118206327823662656586807433503277389066189272992282295164979260942538343166197215301039016767356047693415362089274609165513139417212900509596592077994890059391602261781304774032208556189524483028119962903691060092860303396076579335444379458034707462137968728467563561660187141326164351432418152466448921120220126017719014444649493668314327053911943553882022898252865226948367838566362701062772272428264496376011914763761944123431619916771282093227617793020279310821744382942312897737117901710198535021006318224131925585486516189937377566225458578683531342782579972885310332153449644088764287931937117267054655977241592016986729366483690804229782643994559717630465769217446461158271283939052387734226006244076680046856339043332162854029750705904144556115412695928411057724553249027500121566744267816681940734620936907444349267737063474708951256217225016314262589523778079938425813070282732331492784153939331886340530267042860068528801371452292668830012011420662882686025953095760777971359410110855324173686454822108826446519017018243267458590948905078235051482312364187976542831759664857575630978807798291424666703473790340416515699519391953723274832999778827098984902775102652803647450331335039393129144450843773342100619357089288810631747230744295679790407737477474353724071314399927075340060181648357989595873793668645980395404841606186230656694728967137895333066121869479056899295406376935475745143253363847764058274579018100092171907064256117494207991900079707440607896901636745293780445084407928006182037065971169919515511273433605588673794272106678541474406377679778307497449939133205236433351420906840532404479154506385750092659319813083695822592047145528260102318098106587454371051251744152668510442278584005910780122866588584744606455075386319744038474333912098785113107673126694691435135723875110192852986617503581637114481270305853062165699230822264913714319225399181911735306981001742069035083699729376876777573097535256985113032092018414879869250363789062284540179910128528713082909755375884128120812264766111417530685037285283226347119385050073722065468599665537530873696893078190602828892948897213278538331264426582093535928395720128089652765993682775026609860873415609193577594518237887747476571192561894247591497528692607251261569996157412549098164240982898892690271448615183278470108137379927533764652077831014680342251845499476138622778761211752315822977024055384384975428349868630071064173327001212177220373935776244923115083920033368222773221347128542660981353673551521702188598844941393746116455388111540027460861834420271684712646887346913638828539249638301998132160467735527273862789612564347574387584752910248996414213181431751548182021574001972551216586915343706048043372709943941983198019974501749790888689646337721317188423497385590562673585536454970779933497638316762846205820164363104546199616869714499592478245059534829618911687195896799328285116355527894548171855837678890215221434666482891426717862050686496169900835935607599259397398215933396427454063354945833893375928585464816625410154993371293467110857331193410000684657925893252384304914363719852474472325156089398543994209671923131326270040039408753715655956704774637679062149494248357706793266223525627581134517682872516167817867640140389106338637063940298598871355265433699432297371995057517615491633263288397502540432642213727568691493102506649273785747104367629534628092751923071230945836737250458035521549338003596651001547462257336896984825135542629318597574724682250174066752504567864754030968270349556361713530100045563165188107703500973545736179475631032494359650272812079987434890400900885496932391763636128588129969941783767724401254926394773910027236112161314835717111286607399574915994690733680178985922379248964676144050355296552756229656663230925999927116251998582184445958343403887311792184495350590761602814084219004423001840091006185175907658081840610174424628940420790011788719795114325183777337702179019520677725578382671357591909648576641988026198855620756896420775774994127500500745696524652813038384785726991370724820297200764910790523653597743175412561712449684362664581680271157077146271715664730985443281319414221844750215113633120437436329159771518195102479945717007427372834922008075567882848560228329345311438652976717934543219412692585457733258873627760768839033835955697889568162601208847688776449207247580295279324040312969687512200738334865257276485240403267726837371889339399118917025726628111248776604591581084988912397849445320256848447708849956741170348270108639615731534127469205776404233375808809061926082375044956928673402783503524528383815793787093666077291911489415706416529356610266768243660881737245367930328724500253376128981135160925308169004283100233962170618331485416665654401319454117776547189590729513597189606855945934524856750818953435198202682474169976193935563027413186793138668628970770815475673046210188811330046457341724789109543505329584201767029000399249263428254226758431727024171919206776567021256357083466407583838541809486987439086761455423072148379036441630603318593425159670686902026778506676603854588947709668310251042393501946451564402722654423267146859159158906036487313345328680967425824118109328327843970289826654889605329494738861651523156456005503334711863036284373243624052059652576242697847273398078602227733367234346417409323700251819418425417836683646518850963340819971018955025813721542847410312589293862739396727040452505755201542118580731821269387770880745235524980462532294809787787352683478917113133816809509126042916515037799880783562146307313492629830232090647951963268512155908052677127162858481938172887886084028509005408980267781782221934954293536193372663735984604371728135807900088758830133613663549226455800599136984513910764477642696420228852820734775392937247181622091688646234686668735097536325359359549074972651203964634890646137713352402839789987512898862172677866176866319320757251237668347844266633656672163035262711161452242537428283335263494149146434480004027685564593946327987823319547859523109712837881615251239053070728983565390557515006042115461419499738467610435460561022639174438712332742976883326087264813643941775270544166608970451790494543202355321404418349419474430919072144669634591299779973754743390792005794852855213207424686413552465695468919846897572338037798514178302005150111085912958117012826423679014572644868489309039798445541530368596577305566971082869141627892436425176547040109780868825233084340054771641911479628022983206937354511226519648630670112054627418141391442866143299873856723335565758569098564702998337715303228154393143540062954240792501167075074448776486985820348375207605826414196330800060817078955010099659185251685955471949413761565262549676720456038246913368655213663229947870492632486463099640936161728818461168293040309315105663318999857271461281234666840304846306749653439852070162317464014196662080044957790323194791239570926307031487071506878310382360015077885048964859480812632329960038229141012408111763600050506057138110148656737693898585172341769086396704031958556339599868753271055282204638075108396352267640613765321886735823421989226111993919799534284093264989269743283641036410943653595246150312595285655664699970579066984017656462956912490941868236331448713569631927207740617376301690052704423490775183052148793665902490261710779317448562327523953974616091250457018972053140389113761986853884264578112436732013054368891409923478403555800953455353825651641095955282976473874546843361021697256510219839812563413699148439469308566746580956149294349480047582457247413211959136137123061746674817711576522726794764074635791022231645824238109450925705468264442381953097725205220572100276873056564752318814516759635141377835338988966061455190415136241376334424789536572050703597984423262026904248170158945803797656169493128721881369202771238141957352988498204372113958866121747300829396332603482376382862630531087579934400694905969789307788759637827469862255077623402183857808731274347152859533032995362549387428032059837119993579361186497014803068026939198130267971331199953498671689346544622402828969911228867188752298914666607946080971873823983925864907180887699620755629750745472241260594058730124713775969750930053305471288243292898906658351349668435345641048777325854455099722703281854530884114416095038895440646676657132120635000758797865084250616666869872501051832857532213814548685282016963960184326127239119662341291705911515810028446478544555358270787652513751446456210815606910287549510466093738492770848484829051923385353875460821705787496601199031731421705190486308679155015213305611953301296635920677599695201302343830889272223086927271447998019213554508427018116598820239659877685286540490729517152825595574116727390293225956329852554212744816364380941830351033715899082757050417579861890845232808900159920642943997435065549940935908797920029300130310817770770378905583225944997560373434305621392125975282382274045950015702610756787905472663298009838044831644626371378665760509002677545649446919453124589889222378424803046301243963073142421172704274018080607936081483043026504410482937255834343267356329163795619138737039080871627492922944418490360850189316392641278283056116337637393419153619012113763099427541308242990016023891236442758198039899394657741760646349950877402044410450251053122118245206043718513257526029135827849291528461548680612772055881887564983679567099681811374350510852233147458218781467725117589059047802359938401766874570284636410801730832396513122142846547769631192448718729474194272941558878345668116348751009986767356611081154917997626914181472342575459846838158424386104704219170156347726693853702170643703142348775564723705116801803335937430573922486306044896873378316215971927427075162513829260985145585112021637152411803143236407610435479635316677625190567192233080288891085849046551058400288087827240316267610662890654975535684027040300376003540798337668755278308348675014830974042078277024100185290992205007009063762784668448755855041491538728469525876716287525736866040829724458261500735002636433702572711841993932071217063984070905909101711959805438807957251525495770472520260284627697950677846080191926644160851633950774805264095543291387467641500313386441389630765745110271065189828466707504388685865841450585691859263619464600207684550641718161068283487025935861840260507424018290552144415992491742390711515467657929652928391363879309912208793508279442317008331729250836346947630961719610156257554113211473810721713888115943296570651595717289876277595585477742255141514858265512505864736795310642670329105175242506272482546489193199830453936973781750444991257188939742588034449912887220681421774004187511557515555356991920741224646911711964348218604269062964929121608190304997846094676548938788722790052901906266194011608919649041471636679181322044784063289902965891189429332759777277103558095294410196875421969977640683690332689304513120353119834044704614529357874027752252851067903483358708597306456007421575542913395173480239808365324149219217457646960415127888036912204520685737512565088964994560256324692508793247719721473553305113584064752856935258702525880406946160653745403311916194821902579230837207416696015072866022897972764518438096291027600369158570806517006767604200201681688768782943844723855948621071131697892764237581821339464034100756760227752237288225736595229120450091053599376817069046618306914914287524110789050575596808069272628322358456957020707185401401413367442664287542258442131573170007919246923906459990967799029907112535080707276298605013673616004234733571964775294494920119888309847211637357260020289143222065388945545178859743528937723334116101608909004798248259061110850975250921369221265473017066723180945699001006556945286279048748882631324832705632914456341650427147434176724952946561304955920964003710250346713263337003166309156228862196278733382543153576744940013671219348784958251786361321774844487762092250199310059793632963109371684332290715904905117807494117758693499647902104037433026369932404724498359507286892074970728063143939429822160313211297637417857443558743266112941747211955132846753478463813216052707504517840655500381841036916641104474436117905437553165480287622552135899921367204928277807882067826496320744728270514461098568364605479634158588235703706617291234784266601070607741922044840463198076079072809745956256468266231374141361032473344034872721685883730574777551672443746483373786295365528846801119937450450421156167614478347642266406987430800654352941680844566607978531563923646288346900904087065823415872398315483853594706980328629880052572640037175512570983165999805332795777183353182053867348663263973367363281547639161719023739597447099704071787468331355621588736849603372220429853260808692149663021887904259563271327104607463140400973583053290765231525062070311893691159949309906126246550054180295782055461657469177104064022358904404441076038515432393692478312643198667194625982007127270171553394153546042350096103929444394871602164947094960194442013416023171744913454487032283721456533040588933835585627937434555223817465632448660148786051237388324052074366208427382485673798794205128575454251497161313033239587766876471114770576096458040604873744617679909423571094790744701360077969945939866937594707958000312947703089417640985053339082656804544665496466273036681887205764678356962202504982203229977476368030613718553638999762146025182785880983653347177651671772872134790485302468306109391498283298060446312334098521661744951775564623898741336807709236267306499998175050949928358581915215377387544433555561497448457432729909976129989613647090785380544758211097042453267019219193410066728652606409612436481150368361306847600702199040883310237226601979183175099587214443080428619906646428828039689926694142159569174501596605832673564384497672688517357593547195060665282625449957237917313108247862854845325130841835347529009927781242453742008147160169441794645989120633885196034570929225760336827035934325412690811625958568729852463064189303356251885793395247174543826822823793062200860246222083559035114004731446142080932374921025815369805400979477184806694925586850744347160018608221016741910347351910860540759657344325629298928924258275779750503635951826394811206722881299755008218268403794919420822444926123771279909505740208622375770860444692765469099762884430422333530019514983421743718669104552344135084715320663746339375971421923647046989332493562611137422903681031899977010971801290742917908992438190226040033696988080440695836749633755783639303972253681194866774127866102891925032994047325940353028639260972291107095428685541443128972201663858861090348212660271166959664247311355914654509493209398413250696550198611230363507679033835796493029107367649492689104431811987697696058541435160051179998958204675315740401992229714329830756227033829978000470405399894840178705045063649900942165161341422212198351980069452594147973511901298358748996026516271615909715569213558705219473072978138408121091383495583194109303291737981132803823686725186645135510722002128569625015200719354886851527018447095720880336436421127789073752750282523935266002720551012129689133890229674994022263417466985070889874265680231613242184790934558850631796426796284140245501800496882879930280604151295782448440263174050125396858703887147131004986829823746395977768899117138860130622949619202793378914568690072704460337797662068775843609838679719807083265790891464747492848951244836394925362230978549416801936755852125490075696629799443312750317718267522305871453830214201691917488191336013202833213644365118899644514655789777831412683301587727268108556323183076247827583816667584498840119001253259535324873996828142710650999409129186498892108290388389845011249383026206864114650094431149356643409025165081322523888080527584923397043146416915846610804458175712104141036812525861510421808557344053392059647967840672296381997571133213577416613437365381897561921319617573722544200526285684851817097194376252964570195609921277852257000366383811592271502348592046824279758551122183286201133837418677801184268033558120792888836340989067868097143445438227324114575410929815812804370785456910029839309314425744603855319583879851062945338151123094452483243322668198052905996084823819305181849230635560193626768594358480674476691857169247331153981701428663761969067729033807041558368633110769443482859969446343791309480678574974047169940160740660067167005206867375697468188828649512334212106189952256170011164148205762886391177511499869933809941541949658489058119052481320640797317318250185787033415693520029716990379756489950737302948505229007547467006198221590733510845271453997493762627915116291358519476521300706945795435715170835966470684231861090046833633217496632844792995067301494395621955466658215429182189835371782062334993863897827434556883322495211846295110553870132820426838234453794641132622275759929939258124315701255158134621320406482680743893527173168070746194269366693322684185848147946022522823720576628353417348945891525544239757832845458664208045742230004105759201627301325399807210810489672710858397189190136351301328682564208640979032445250676882293891295856606406931645934807532243115059260118212340389469845226427465681691248167894887802323657320291398137461375266554202682149495651071679990601606271079773938871952621447421429211355309910615288288940298527453502415429811037389312839905618967374123296971044830231640171199699749073427424082507171517181206012986699667225675715232555509896969710745560976899393289181748581160449970250699287412112082050419454506015475754203773134935627613860446990001949253603194651083153699316873513214576004242981531386537790080294274766101234971114938413099089587286856562106920063088514941090678075236584268922072000001629306839643200967917388292295982628956592973790924879660237073473724423857228195822949606569405564348046083513258990573783396477754810653982064864123094498935328800516274779045391875305179954444866594486200876630279370629059782541101323418497162590788784390796754028117274541828131285858545292585154422362144143052444958022850881919132563939828685252399794151399437816047581206985706523671884063518793507052633489966791688773583816560491977100711650478474745065973462789903350858119042399006330904727017404862118100770680008734222521823699701822755017609036873808641219759218003021707009723338416286152634964598993261600450513911912913892742445282466055581548791270156929931726414936617156869467796845754905914003727253274965525527974528797493667691974593049976666133751895104524511649631696897670101266612944445476576417869237147423586873597035286902396438241400531790210027587059081673399903231646274161125681506921661652749820748587735709593535831016750308685689411210482905736857447763369623057145837241344745646647077236095886791933061012362315089391820819570304327478394482625649237714197236752111136602838527489809966431520910451986463336330152064785858849633757578262494177579285294944713226899236630819501873456146000170247997653472806626408886200990286805162387997238392695640031585279591649612187758972732458737173896202735420120048418956011416218846216422909467457584905997858659455287112426149934043751857284917379325344883960359377008622177727283453471642528524744033148316876807174816439483031147802851992985413928795722119445210609160371574688702861656848920464988647530677281867198021129872694622159742609254525932127875919173184030644836045444471085591127541246040019869548892436664296439365309800229722865205103712489029246304481171455392224275412140606276533283861380598005113608136716920567597534282095451969658419147465170505957779017904557470789060529737075013549722209020960744691751022865418523806213170104949603066112183008898679491239296403642637694968939566070966466961403246483794200072211599447121056933011032083799377475671735687147833062013455240551241881387049172579636200398491313050293086720905812172356537869790471316986887660944511712290165361720568504994637279299968400204517812622912141596374461259524489245282131478869667571908368394901940658264063675651614471803019466295155361089968921208422324867578258056448135355776400611081377938191126081106033729912978903599879872848160421419344148394850545481240574979551304699661475117180205793063963194441904576617024183777162083293993855242852931588731839554776191434028196624505028147490225285239588976368452305897396371066019543130378837808788733785374080821201983618174754472617084036742990451096671209104868532529490211728389906452088389919084901676398973531145804768505304655242250241758858276957531841986261933531281836726305159257388886226487543273482597832044007866123856982320649707239396470319224020600478584723406990775662207329078328457908975273844005233390024905416068080488167865061916175668132773818215880107740803845735579238182057200243730385856547145029603056210589190917522173813164889401158469447370628901965163173275690404882293413830957923682414926853827164400493770295855586345015220979423353801763715746857339574782597984665965149828740564691569139262323996576597531207797217349353883648133048910860502342143598590123969852405003575430951418043047653072489397178677222777890963054802278504042435137603470212705690029402876322652013010300964860810157863971280116699875221434744150236671095551269795646800768904702291585660236096397069830879218139305497113470938390757555368316123114951992009586228099979819616957851922855026918206134822799084836571721628518936834113096052332863111897090746988638806255490978639225005179542681802648217293230846678776888448779323166324215604057958314322874588099358673149592849053157422483954547252971452711097517124910857946744250237453717785371206760538044733108197449650034208246000309755000935770507633631891251425688767313385380962514566827714943339965676706053136524866642109390222682921697907675836704921804746541137669107797591374151572918076290161637706643521086809906433226633610993439698589135626262738939269064237986708218590536247202856001401623579533267860894536230155958350811096420083234773396679998047064850231683299491995643399318335818802187476015904422344488645980613889754124661610230959534078242798308320114552032976041605595577457598894454172551581404022155582685232912593453306687968914669207998922614854368197874344759965608015895772964679981921826121091572099898257480484009593919618990904061057692155789354869222131148104245735958531993432832364010074039377982355991170046092522684045109825901491025301003158766524746337961587912612754219088864945958841493695452709412839570585719712361058658582945969229621562794887738715330675576786704534273141899746995993043137863880309691172150774773144512877290437236254840833152597286266685708530953707902074302148808615077121848996334605554374181347686331008539188268485832822487284629635997531700366674870538308460218820871916988351761774129117944300617088747898692304491658222521536374548355097708959525494672183341040612960135693398418552027697030295774688687872573287301007704361355415139051023648703864257724471086367011577805289887970383713097875900648212513690220117200429686877409749162606702263134534541203541234299146594470580194787625949871260163044223909968501990965142560386786026837014199253392188762465064565342475623890741769352771458943693948678316123216659699236114455522843287595248137077781531037726990453126463303332021900842727947119122746433100953432899686676877506531148032322515613960945774412270727358257302615930839572773965494139279961953940883240892253558319214112901733067700289568511684411718807336689346944396435833989343449335780016918770455207637783253973321933086108130918997880756379990920192894603762091858567569226581546769626522917053111787772373632420480060545575510212965332490316379165120440999377807117544524466491587715236427244250516930472106240292176330186564487814774788517881279920276800258260494496476265857554214477555687370199841750019648921669336747605162872472987981543930262880469348676295411748170351094122723617391606318125968618235033586300222537276407930290974672165223226564190971569047299352116891649092253275470395508739702720889919955117943652461689515581383242292139078072697435322900038635955569224293986905530886725043592691444034517071857815726479836934592618601388348308605847306968138200996549431203292727010074480811268151543951408850031501297485566361430714783551761045599280622145724838233101789005093636849864095624904184130961758488447719426041638641205806803488254849096325752203795170245351659610326226053533704308865932077861029742690331580349991430939036711157475206809507449666126402529138505724325019667893350775413615361956982803448964456429390982607850853985527028475796255688178409885235267926197895031358012665880233662527569918109235831954485717782722528428216223500014443108912991441167519197703814979319005570609290945473583988998065411336022054208008440530347801130275497918950659867548588280023116694706241629640167199579574114411762044199091644527304597945053817826897613567706896328081384222486673723178337197078190672460189456256774582847533687852463292834958696450782321677948342558362210035944959562174254167961887199274966362828435072109803006521160258174834203756173166533709212264228816544180535620696063477834388558274595788415090691129673750647355471517478614822184452380441036932441401678747529598023899135196731714983568093440968684313601965453331502015582198174885050990671030885342905227089540632618740826380705687353360718966539400898818430433691123340810333144188265436821432498060939372814219570938900586665006109870571029282901781701117441457132615826747061829054499735603726342574811151943263215092360567884610743531032222106816106708157889975967403238031650072944010575829084544714340176366109718578737412256418313057357627438131505123223450100535894829454242133119175079119507987883934313987721929257382732236379772438211505829745688584518268615788338276619056206126491754609456976622536436001464127340020538056567479715861895200843154454124730799702666613675778701274583237659980927629990007355808334852142443730399149569479182927991366908632162195638060572108879637688979268020527623119471976485878473615177779960916875014642239071235099565852526909634011978740105906550189220638795178862778063840409745373568181197067374937717751972851332149147819822999836206864974238420610681693967603062092865401490208919858179026330092564449216865953331478384845303347440899091495714361683967003556706290025134688979031582780483013758483493597563225421939663811719300502450779594705990682411110626164021459863781723933686238824101652720334855692031601710813003160757699635336283341481566163656405416038971429341869794530539284305088745975951966270169069961364409369086168015044893377804936814179736772477739412944101180249961551440107097401707331158691932129042531426162755264305522469832100421102503929639100347253499752733308437818313320755045196039912615531208652150376019269067053605870960949828083361222736976487702145084636865510592771370256326725442937891196148568723789690139353926058104595949927894124586175750580335626917972088690584256489022172027308285482880556394899366162901491906435770576130996079856871738762928980788947281275963600386607781000370697590179340965866512936271276487251387584688615688673964366850153798244009149939082934393460141942149939770869699077775524121187604053968459527618274691970986089297020936262536492781519931421079459697646052953029271931125724515351725698705710298557393205060404166568854668921941193510292579135708069616507810142580451057492522587631511620654906000946063320595319925482295405928669700796972420755981783548655448146930298937775187310262529288681244334406874667131618061335677937966807604065650621099596720932103544932831414033404853429903216938559758299948502599198776389320393270924566672681371322842883601681829453683163106901973459912162927777037868822670029182796635905146553200056989802020449489710881781443864329714802700008662458956742521326294940880573410457727825422621272652084765146269814810537241326205286218942347354658333757351013574446254265285479023142986464699102930239546500152927680555924683671898987422981953444862525256116924602315866650576695866151591907424984306027526026508620957167199739334447862664584904537402458678424341913938363318721511928072470603851590088779429437756638481607736634427764839728466294446702539829302187177977176329577383292260346148648752852814529290610035512306178367927354893486641531330760042739127976090224237280987994889382026522838806651804391370553412803512013506839728183800461184506488327434318988798474705624533186822879337464804240442294114407219343675256604647700352656564710660876619641959557260193013802068538604117390315923169098803741865176567245009194314761119525991025465963809673783652016365715703045248120135053177107789021182255115143158945821811108408096512966954527817104724190623141393462184982203722550672557422162581299346074792999019596733344332965657928053932320131251131641699409304142675553789232154808766720205398062028182382323877791420374285560081189180840477401581471995057941765811495096356854359817846158173191204737551118980719042861465895615171751613104158645768967190861590854031675595044284130835718329413517965994294807415191477621332975018070084336304229298449428751552249686278567394155268162504116801733202298677181867297042993883407648948014656372207878152122798399832016206952290939578334317345421228936780289572336395139907651743459796302150160915384937432718564146418513416747998816673094830074414919753051627698101539047560540977857686561907764835418724990004265820925439234302504099952865981091494793680579511893131189889868115801092523949817553105082458249316050778600347162772792924190527493479371428389694428464820482115557371615908818957666794930521157533543526196439420978674915663957985013144384958187809617710724268406049472785427245259974935766740237152403733251306879996542199359727834983539856355793204988256441320667427264702642140489919759960113672371844969740061872544161980436672950394059063536662245627204936303181048214640753591629858825297735644415633811673253849595427848750298057745425158992875539771779428989201914691833286212189427234078727797319499136689240398709133456397971014553095544168891954790983518038662691190138586575835980789747358390231924485660533559151374720874666817335276275196755493588180946293166846259194903983882375865641819265789413093152922632054511211013383519775745560176420067069913385229517552479625716026938668637224202204432339130829745854232665939802320583303617972281854612229705387587146527444711589440105820548749267874776202793256503208138338172977492712982535265872864664437872802939100257366573579111781694954492239991754841945400288833938161566492493983123615474249074460442864464335045569477896280816956040227170419511015533381453763611180463919026074675108560272349185719379324911910823146013707647488018564461384140932006659497593991714220318897444406744804085275875274824298193490952340100442227268438250414973875739015559554175378700623012976079349114861640867894446263419476297843397724984561672055463213844601727977763281015680516415044608757761803633017915416519918801005231676529334473376447274219894359081855118600837539676717456271987991604928038395752515045177104050194821999402582903689397651371735507848193288681429906763131979966514948977865166670337711718950490198435013622743869961943404243898491311770325835330964631223724070470259837041043438155488085360564814357085023117736991116380735444245829314588276718896409459221434087470637999154595778997763125075079139840272353944711802958865166244959258168151544981721498458488766981955307237499907371380417827669987705552929324467399803358885742440479630957624782855017705646342629443001788966695048141852204013902101318478529980877667278075533779906763551420801010746819548890166388960541170273138421943681866830512862311778198749268667953782221858383850938271614222070032913112025524555714050442795854728338367144694127781106690935758465465515948674972251638539882974868954818289358065160565049897154874559994230035705943201813583763139637170194096607961102205450022549532451459047911499096492560559600707269713624417102856974411841713345688793972212923891244552533860054257519130573646831231548078239895782551586673224192247332131781700157481438146130874329547475299276046267058178739984981010302218773069363799205795758665837191145464595102523397088064998900126383718757611524688745667848078878873086312189735064064884319899270971751494179359076926985327607661846574242908767605993178906673661876040180098507749441020557101215921497085809102154150508732792845183116559935665818752470802933357273998193674227388532434030349891287643286060506329885812153381053583438330487793121298521144289505320375501325968659117289469170509051994481871169125002637836124961450999576287482265914731772750839702226445181119563623536867367606548701090407806261375243883294589779755134981821921508709313778076552311762499984236841725056012716008450291258320956527790040413731954359568791237625247549566152133727897921234101646240699155677714754090063142057301898945714644132799492308718751867759755478105365595975336316454250011708394409018975107307885196215083131597508980900384277339594423249615330243520193940717242931811275898204521994893713891272191426692176839898322234702106134020141863169028229359423619548943970095780220103831190798754653354386099648904648882903715844729043029311586286500744466136430296186626192991088364453189943502010691654946663176851279374695725468053079700993105663317921572717316116553606116479644597243595225600939777384496694322739847806789577886879288558274669846490566124222649770161636619780961875277873806552165503243140834600414580759688082074703861061023893038840080890937362932688004615137281913188730950643641979028655133641164557185317309204188963417950363568919053906802636584861635698568369256404290380536940996468558255793686595939579197360586855748760277360198817478846933850804437429826714843249987866114810300045692665830756594799889017248640295389801426195457791728228417647372538371118662057316730209511081772622572085874947311144650778903177116910859965942568594429878544372494669045466312777441725663169581857503096001208492598086473316437995042068694779109551930836378470241138676268823156244264004864825622447976975603699960115229101187868083022468415284545344617103259905785844404055016030814134387056152993007709358854234716746707395537936288071499590431535584960270490141305685829622549088135593699930620641684534984910493302630130102466364411878477406709515540881713791692017764592113137467883594568890103464994185506809845764684519300790496366361976145286970139434032942965465362318536933298718471956449939452171050312301422923194564039392870827731800805009410885161373498331507792216188768450015196613135499543525571787334511894369086178878051874802463472550217437103123560616190910740810425722164296210722483544968944866563744081225378873380865007817955145604785601124512936480846301982357846529050896772422345034150353248821559240391123250194586967051642959636069034567850108736538058635048056502548692540648996196103734358543105868136397866397671727883618634569670317086422902582221026224452425318118028199285115640133211059227006794056462286387792684046318569955246097340874305211229657673915519028360802619721666618814972004246408455482323152982918191152489160673072133469547054719663032610483965212757323865004273537621998828603493523901933488242180409986745893196012479225751895074202007879747384625818949749929504065129001770179004895577062618252975951708216452967678402447773015502596451084012582973785907824359999995604388882351835831369315692679502709622978223768373815860090459880659915310508263588839603053364339484470258134625890193326275342196652799298157849122954810306104660638629798986068605032086024033474163803835753498131023591249667358965762977929354811155071773392170585254137367992953962921089385936150985660775982710458046037785422476837986494967207040186059448382161285166706964910394629646908825664870068384988544473116748591838668086541971240138920156615455174799452468495616993465945694218216085580032661777044066338072995183972115306315842424771622424541869536580546461674359823515068755823009831882254558564965900349141338585439948006758871626380580985237875168670613649085828302480347992574757700338339213616075524343230642153875690964811546808707763731909217626514086707770051256052054477433154685669724334239486477495605930474448304992668313878727230085516953582088889641236204433745249529793558510906672594554823512205356907307899176737802771699986112380325630893946196242937283726955945180412171163594958250137110678887188409752910608555560985650945703905439262896016625091455090986387316868439863478153248229849219584680301564767358852198864252931081933997518448830569399336315139209029604783442456690960650544528636437158168506047395580070289323178711328919534991450492445623983849984020818203938113598606816383387591834140637156142298086132017925620364792072247055787927584537009702224793398678043811515381857063735506396750810356335262979440445813016451268950060224440069847309420927305472266573721158189453623952589684548666512505192329212556497357880047023679773845034019111055093971935154714909522214301939415636675383820250560667351575866425847497122088005926200100010860382915821468595018568461996858742065894754508995649836604068537456330737272094492806263118300808425902775670669323978453399154627091114261041414187219525225040167497010527475651685015125575654011549744609631217713644878622556204344515829386785407953568958667065204409874287270452550196400192416271362843598333105534064883865371878356227816774841011517152398110537852984116294030285941482476732186107340751294323783677813456796667477400606871437998425927947563329607025839079772801707554083594316975923543622829259020454507815198907602042895652382317402645864929496793042298741269806328867077797212635703428264574604215114972629903242947172450508847510116897174856386761792941589287197406807270131374714231192146959097726322457059879131337576923740370294602490714233058181611372179760019714339530913345629520489025432188500252195382426213154861996757557940568184815205022511652293477285642994777413264470462076368713575478040112733560839469551023384782904232985326644266902243063555578310971005645997328725359061050818534718055683329389824330897666185924056267192409847722510779282914213809619874530108877066654417766983815564024128755279659690143738744351297852867022504702484352089630148020243212806716739809427841237854303634922352486218366478037434042758090774500082458635523185870662376010329720516612563123676387146671645542007682317415407220922975159623453196201276250923414932148227180563175876448127433859631689436306083243748906457167989095381384144709999794880271319756453780058539721205088462963784691504897574305378256514645488864876979877891554126149464999880774371557445398070050163368486104229772590971405415077750551011691440815407218945197536226091707303122138138667043999892283272982241084223282397366193866184887254062591195729739708445694665987843244558596038821338814942173062632934180459842024507938774444866825944696553944568635296352835603452162288762203529466828097728589322942272084913118708188002727444154081375687057209395227729122649438527515912746753241680839930662259503912343457478859724201671672756980783561429232663239819352510481843696717931786032997217367394727076710371152887147817849901104129783379733994168364494901523699369907548435285275313892499930091855558183005908589095030491809099157315140131412579420383663521176775051518527893718596072663459805744266944364215973391719163747106557437746737918737169211713269172255656417170181958751685193566032267036643630914940247768342739163180547541976360340234245526478297030837164016886442452524459241308211121338939128708741659487245761238110937166799669200251601787983642115847886685307325401879887879909649303781016963164208680319435670952871228782846428555933615798049524079281749044804663649228792410292800381936735408689745661198343299164652249969740324588398989587266839590523299214622810663804604745136191294901103713146236270273130545618664654930743697451966291037807628744424788930354492729801634459828608591313099619575577740457415523196815986832464950749752637444999621694453685109979793162369092737710662259643705059406970876228575183255700513665592340719765356877729055429654043066500578554394264625336257007616770669366512356118233781007296858273615122750685726935874596278813994517498216715630169503885615726140849028887239776910688121678522526888300010388464476879436831268652140249977296804855526927258702810120042019083653090994030082343107936745705992221833948493457177104816196955282031509262065542989060036521588353300291916515811228288272545684904787625249129570687336533564102669098971625228954068101087402789276815400060577043153826282528525820048783211054758213280039225221811369647969554219390482829800115896714589983022256381157856394398862109231879664780493934017592839062729273001960813166374016087931351136054144502341723820406966196925851006593203175608382741021990709635674310508367304634632600990437452000484155023176963987045233389497933047159057082512921318363555246136140671791449922896466276835017087213332340872791774603306728368093164935752214136379242628341453406125328214959401874512340347830570772345907937672176967773954152631325387879644569296515264158428191370722308055787842381263064630655866917278471945897957328663067542708053597454587015679526902468192550721210618332574066170846080549491518875186484051978732835265896439963109019978570475668878630693793633041209149684250289254693522221838219635173672403987349353525495828435638811127782815857601995048088754605474930510993412640455195115996910606273234114554300180333404183895844150304134602585750129261409782677742532714854879262919703818054848841762691473007617240930692334670386508351957452045021177911896998130753247805508905593019667075354762159384211616023191798016405636105900873593824982441017984003900186385726124238510927931761167871052575746640897599109513246347438570972826268182601993065293042523556705471512600381811427827088528653564110966485401900067213602860166078982170826055280462599436136361510931460808378476863710644675855171579289923867899288716699338215121881277419605720422143742710877711872312896002016885249192305555744220623692898340926022169433520249899261250306759152597597124650845358401350103839784415350839287760684534510702597963329621574196371160088066448168901163295302150030296311911525155366291581658127356593128772430849330382833322825875996427145306547700510247558518429471904132395493214002682632186112622178142091068693970897578610369853768733079327354815617527066407131592108825857884973740187529306586631515227718922096086921534147334881859939647051803926185663286945696306787799018353174673325780353132801339870273585988445177455799814499782490493828720700346657457989530852026705643144260235501726251210706522411006418813879424296421400452725950178434762760089254158568121092540425358043476754217393661565033584219031695233324805884531937443171036046413059171674922154010291717576708727476864140506098988991827419182624040967460929823208727307342819977490381857342628805436402016669767608561414817063466487472130218543094073236892460803339876011288190533362267868209788433615195162748123650441691083460531602500801965852873577856898829370308058001865459475087025301401978380028505590118654338527894153447671828504596369258019384327965595276902309048507103727221194749626732056178578082875274682583747144978353334449783203341510089969060708764244461685212832667177542142096371364648076135812117097031005295105463419429207543276020692041651111664059513772050574234415847626780481163755544807491147489966447129088241881761510506510118263467163036680458822122130257529739442031721267682456968664546201880050697559006699399675675766545974311323248033704122314113654411666060505117392218515515573329711921135672941481666300304906907788540146302075702201302354539290996190263314579562400542568167044999334989911064618379693059454537000141630024719875378908896845044270522807212787893112543127498805491028033751200024984270545771046304644277187934439228529965522309188870882380141463200641618195347636386463538729721183825470499051582456762613600529040540518034134144707366322624530567873078736861894883540144885235496295359349691749833976352218968423805542274225978200715053052872222839458438493247417323756368117783934280276789925159595275235272822089483929420156907312905365561611050757821498186413436612170921090865917314310268247269351860599830567970509720386069981253086605153340802125111404473296902793064808266024738266730510479397965696227616958492094133010360944363095716567158946743650472805756382763135186447019222480595478187022524594073067782546145033076164617038685024480255905296774335033694951768433111760214009829523301938772192109135729567387722650551721717191679330945110872748238971751761479144940872887796621706565263962164877037605029887693048025527069911249586105763878679098711148965672567624731796941527831909960514192389518450171177845143262161146170045481915187458675942094557862602271992173687876489638924524896185086804883290643307239884442603734360001190409771659966450544490892799643552036499546790387347088403934833549649699103001480579759348342860900650150525120734019057213349058641786945691022557832490217754961656926373101417438488257359901405572959515618083706847175797000982627611285017171439500453189530258391440013752618438728741958549705971415747154474337089376644313364437876024452548696570570417904240775389249680712047018681254408854072935198897553162841289119075680022000424847135965103663671226050405934746552927764242651263425163543282722524160106817598255905150636502504333802439319876766165820659758330595658263201028826825778918236626069108014940746248297123589693844827122620843862504236522007626265540937481889485787867903461171174804365637775353093847878669187464053974802863438443874741110132278783598283454671535288180308939190553965972500488263728524138535555345707122104631731838880911307486053032900097774619111381166355175759558701936662490523163916381695958604516622473565964878167003400420687571663783911238121673839554533933637064983905343088173877808737589021946600066992348945850490082356110541346371931782837795057062013914782148083163214375300343662806310781542385013017550550109765113040665554309057993214793450589897596877038151267142547162146083091925498898926178097452049474571676848184806090438684937841587891911696373632706203086171758176618822754962468239351792827703037603314133687262728609593204563077773833914155175533212568698963462924798638807166637508386217050423623737905610683556015467014573866994752190347804665911356778670995680626285969974401358369088056798728930438989407157289913022940386094198375587108314645493743510928970335940548009264671762714498395806085967172057316906853978888986163592236002803270594385181119820746081076479568800612814128205326810139295017821086954471760631914637850678044017376776198364642888954203076946185618337879410024634803494485105642524517701639421539097254980547207667098047642022352412839058580243663142017992514488297407434741463745285787909716220935455976513552470745955131925292890382409381680819138232379704906590622688134747325828101794235511080122552544675515598834408794341695917381359914413063352828401877245167793796246825184322619790047164612257715471205681330963784292474203231214285566148687815306516417879885522439781413019482237365281935861519135607117821529762126226034801947408103133517913056883700236716376859780037353274438211995614418307725652229490789511577781994542465486620173974836479714541967523208270866540003589018899951349736323207777625240912636920579381566333987572726936608497330673790554516066054656832711978159305708643190500006014489418364933392192011525165019194929456179408618607282961321289947463808717969600485637658714480580988071309906350430570817767860800903977596509856247420821985046533348282497945361301361234256093759127825949087376118686862640296409661855305677190715326349821899500455079990244630850845564220698649997229049953761783587710184735516701496005486625212208715458068744676941468291061150664370513305785443271356063808207181480664307050951238642600670101923926143000904961769401628963347272978133773472099300716565216885175502600059983290503809128747045452756156572528746673637747769227508082263497578613825820228289533391594158174830775564487649224800951643998996435671563685888394616987328633580150922833756919705222102895110047022964514433854971583827078470894546060412278614728979784155754404801795348707992936250164320817201711887315984880503184562194266446088407775303929810332757792092221239020041312585211434917338213077330638439683147505953570464434713943677841780586885232158718202439831551907683580150720401599142966031021261428514002213816145946838693335520628098453904747048201108696681269873110745674050786573972171654762113442720671947549848065414827668035033301687058207393687698251676985721867886471461379668826952148004514042271307107605164298949801067951684971470776458258216307961811099604581437958941501802529382801339556525664926498015191557078833275161052260865849907953211636341653705037677007749018772704812803676476261396853425100568899304003226178562401096229236825360724860552257920925512387053357314366896271322790692623806698027623783341541843625624030791887906417937810586250859998372659171147532773705636481209366778956468720194234470164248094400212883065728428424059349455110579820181796095757851140904104941107610363745706902765423025639015977261903033832233039706866629373404165710422226420840014801200704879838209817323851566719740028460014031123038818738626682860549193853846116161398114212185407988296733720310486776338148724850983655031233099519981345995851446981441550345269888217227987335318331926207290033028055806125544553723795236457056289955926090174069108792608696208838709528353106240594993634787645932321785850589144064970694694825815066116099345444071458093875733384322484591739066256711966507416574566189309091693251394297928480643881047797612012893039330135371795692696566102221032899639487868140617805306466069542249394163949960320365661828124928776365701459886172173617071786165961329880628225888504352656290195009063764535750298760703729565165129156388534061235570438740037191494149671511754809925103856568757445384086053241679012425608369663790472451174124242574753693976094925236515437270402781792673241636687406364644587035869727329816529991610484160665664340770195474549170350623020558925514262035002962162253872083265674875033501634082854029888380422418646234347621369751572211019852434493280603792367632297092927811461001547837316904457898451584531031677176137960149864495211147827019130842180581247300182083712186796677999576162539985907229286198891885022674623615841848998705396379963530801196189589620912929088775117788050194059024110796219085579226049533600581694276155099616575904310920022081204290624777634931538722630028047297135741880777385666839597761657140073301329786075331238443329213934868474919144204573747423560564451333785865633502379342974488122569962353083067398575049368788809898217518202629436302456340357819703537346818516460561856770607043521911109405782315534956175652329425262086645269092193096927223563682645079260508622813128195703494753725720610431211675805290676784251087275267745767368847227994385653287740468050746598274684152092671259695861779230745393949381727651597857230158521776063485325025981974401717356706963072609987613301786899982806948477719435658957474980271610004326045609026187416805285767827746449572724119521870646003181560065813513563729377056467174990988429594993480488620846523322943533046375623909583264652032519003333569695763761801684943828719369990204657678747347514310552508685177467552409817381907758342882784527405300950642575595186289315251414235539953424016689836565307021028579672325776342891765343001013227763042180612956572209885091476123146391852317343759104711381944572375521828985436070413221841893040281023071361095785269453314024094297770690396676753447477300703966578007574273089518984473081210214032595703802705752431538918865517029823384564562370981469589257267243507972637816415423378955535586017594074744983732603772489663245139761619940489727927266483230405282138996036896901194430796585049542698927367695770367845939851002379641465717772293519060601986766994951029839534427398777871717161110292788326206927200777876075191049040655547055211384551723206714178298389758595732585689860283675237454233590485346739070774146780226364480402842132232443682561492152474422669334423521229588615418210460086286959607251855925454096532727539434508816982896050552737833128249697688481256198371434615289355339527273980119416704470593838522825915396045888339067148403146385203569879115529527200192084917469294128242533914003396065080558131142221013634590877825237595651669212842072586349608668234489522236542910340978395688144557854721062563318590655992992883086616220559658475227227460426337833716289595405322557542478805022180269526444651621504511856723899624849355199669063216841574831825245045121605118556064348197214022155681940929444263712279157642925690562834490421561981958337493221639869011505010121450588228239781710852332444561026889751254051557236903773744684759973859681411186967847599630095051138453763261205636602976563014551377995399885644060611538156176272355620988682734426515450352198832491360095502760312810308450140618478967580412642838039533768123061401560633427674359199140101010192238922189176256029707713831508114056433158688594506269406640673185219550617308104968335583861164815137129143472207405575256679555847233394186723206026571591112854448822192235077462359721129175992183802946211076813891347746572658698832296212044494644405877296566751792014301803881891267928365614542432866394842798389524152655354426267959454458228527983859168979597079310934271371356004070220264260637594211272916691755616826915502272280157828806289207907219961191197479889962232704374982162589410790214632287273452574944017344174243511988606028077319765420441512480835733968529461085077521132102209976268521729421202510815444213926576307806825347724088888660610191820812796558802927533228577693236921961501675374065194717383515737952548929804638450144644305551137912093200567367195773348105683611680498865849009277718589349717872485289532857460524532777836391960821956090685358120620632775431475758258329331085739760758228829652064986571641206336494217894252457650478546955511246046154197854677777368759499809558676519975517257433428315315903956398920926109445617778812096768976113983566375238337334302124499621514294657691411989918257536335725098505279140819319454843842707942011802332448512595972573713513134068288280169214287747758490985145501048800642615875403992888310699473961139891885599427355115174440941728967273253261139008204884629522547623607077635951385839683218238258290222515930369857440735901294730192359487700343002019849690765170226260427853196257923788395430119260362127398793285033920469144308916724164437246950304250803054133477404233450851291226501138656562454518855890429940252807117359858993993949153560157666691887091270370828233028742298237552568583481595117306536151592783526589620965610180562309168786355438364594023299238485823198287957972809791111274456925207572552106465705693128369266018686580850609282808873626198994684923092064110045178212243443216492683347315284138398707834065443937409260345843942818702855739828270391167470518271073142575743176453876017490977873949977739454572657443247765074310043723992541578258494072053640038894376494233569270727843649923582955590226532856255139678255359773702572008458484567181096985729127692942991988378655929192626097936984982704469155685934476279630971690726033209022507303220077723643099011826127442357867808723441851005559040249657942251516242692352951088369497454615418910862284584375494389793613490034544209718243716860413271985058661548146648875131707629435054925052771197797279824679728230734641558588631066041210547503682909527651086996268647265442755688711247452199550935258684003264983113595872771186499416112290429079911012843063266679987585865802898372577562451171874571215680957956269013392396424890499991521961559027611980127504319661443777125366329684745221455284542613638995064995933696096841110920228770192408257414999690725296906799367437463905357553674494374656068644631234382340495287983495899785785733098381493228352241754395323158520964387929102498144232482541226486237828404987256000931200531824805110939274615502245921760191037765436682053936772064329804737747769479963774065201974914230609704606290705911038948058104402192481078673306281415334481612765461601038229458588321075979651716657283449472301631496414684845936028776407621659755315162002390141505958575332446439369452821567913064827313864047563911990392961298245555076679179925819537299379725234966135244909328924476970733750074661054261545872509308439524438301309110094895351114032666776185828240980727794848898230475997169938788999895358335139797770477996067242443268371164289902393423084109251404711058749991357289906495650118151841719035083060197154741728991448175336524934911943598422455512459578407452061884648463395558696516800956464149483439842234125547279268975583544644951866512817582822449966727896186284614495108542929870792900056523946589257387738036818970535363424713596188355956488023095090938692363038144731426210005911925879417637237086058497065693740832708628965306856519985861115392786795694165507892790720261148143762039815648904102995090899122420828498252392438101467801001179711654685393113825551083973546045170736591724547801817592545887976909065717788121672876890845369339877496333583096864336696772930279931983698182924909669034711406086937625033594913923028781860671913764857545505382372120413966317650979492015511201115484310688572378894748994921582658008689113403047402543643495014591822332261347242755166157320300561504467638269770800091874974812420810111823704622334297570816729187237231111627160062101736846966437283418278224393258071762698604647797129834709809352873723481086561827572786133627834546377781008744520605945122797664335488292837518384742129705198416843122252544318366550533615665362436500746935509214239266784004383203339070648733554766753296906879996344451508589183102047059297559765418508022540305318541726145555730201863128985801395565351518480477095827268566982071297362247751351415702681191916924863554152780553892089892157150433534071307605506374668923825358780579234644258543828714337195281354805505369342977129178712074604956563959822115048802460986139479470101531673461382835065802810875218885679541552315304834813426403649738366220534477725278851513422222872640919220202889877253181345153177103527693770953657346716592711712998044351983494249894213181734047033623866151057065436095812537570280181529663079597812014954885316139855969960129092638158518540548446212540894907856477286571984392176215441038303965347640545933448303637547790550229817447559148217117279300377624324086902609939988016769137506809476180215178019187926763381531773918040354774043395584548906270900099311483360167873794585478600997729944103382792543511545335913085487909449222865345402903073337918710265116858970929356960590399485329338210091277246480855027198251450191870434500116123303152317424918132164164802251175657845038089957446295162267961493718617018220419664776027155326960232744274324048424729408016403866312589816868168110974683682100577266051121036786592893398422066511587735788075818030652741814103285858216481117693487313183735779412516295358909571851211124726667999175545442671848457226700499138474412346106967930983625470866488715015651964138316018937968866531199514517128123716734373795637340327150150146685355196259547574279165674616458840646089664117661617718622591445726928260049531228860441721297787964852720506953174252386198442715405111373429591237745424517840803473213803545544545947017949001485917046758141641093316697016047915724052840739497866006352201158915973915381062761695707456392973474460578267797710016739484505131735061744121425054810243261055760892435680917699221408587601547571752580483923683879215318724302988075680436575544843297330461807496461393111717704320566518373007636871609804886930070776937242666189560669534227938363743006520833156105517490572684346021851628317828753064175845038054897263211753622813032515132252154913800085543942552240768182416223864489485817397644458601142843324752119094694803756018490524056187188979029573962530773774097254115359682645591335789363957035297808843200193750875026449696875289697637168249524442429086251066443502578062905466016841418724199952888801285813468221502171906317848896103287891839245011795769854804363403369959947371327638934197125122580533339370994381717490824538700004040941454421105830962327096026182222727769586763696659708233928312830445025763465535651548673182845603598546932683864775013357756472415564190094922631361606641813504365641053950157195844987910881013996967965996515185169186910999638113210616090527155138741631409492371501461208973466870317330661878785279303930818342434707393101403206735351933379992489201815175769576221986038903349129897802862434308406998341005501113057868304237195673379702200659394534222979965861100796232310569658171503963090142569429201071540098217772876241643552030072767912820065134093739783722267417282336038252479189859060183556684142739959498187465609066687583508520958453965423240068929304059265095297611690553078724709463177616939489309402498664558720539424902655328426293525332932578656634123853025540462195365979760483814368897695971695618032696255613193000555551494114942422898710497512329563520582084287786188031332274552026801191988366450509519542003517269472621894919111597255578059629147851818975175821620662999440458530814089771569405907382422366319300022333295762455078085917903406712138352847766500581391598710327199341959482624379942811583995972292885618748709051248470964161125526493718819781049241544124902067937547924304573891840751374998807822007520971842387106474684993140581253332405495683917458802761374123288067186054754212080096724315388949869866865462513715519398352805670491244366553328743407300780785517303921395992079259257123380864548158884982479056020186259047693533099172322925514218040177949160203318534147662605142977844221250218506381464595220780120270697674776567142560881531608812810879516851919032307398896503892659262310792785821523676247058598855263672511915127765457880258698498301402156757792312521076878993858936915870295614362920252358062824917581019921571332152094377395784698162445341227154210092362311125317008864768163566778080993412870217806152747871290300462057653952762150107846940667215527963086498489764511618279965733817386819674514801562526009511457249954978527746870361680163219919120771786563798029215611014519395060426919025259560672108980801122653277401963270199267049136365370825652286531586057925040469538462224419127716876631557255059898674437529993467078141028953938157123553169180985017520008833353055314886063575401902635112291287821027087047247079736128309059850661767057214602839260378635012897322991409058293184980454523869174967264422378648805722174715787903084599427319403563643209356820409123782371246088037372267134888508979560501038814237963637672291003240554996661096195071770929612120045911754226119219444347882793944762736672517927718984877267392206963478845111791082243009683521986031664948627400658296150022175968537466078995766740124798151059017606775289446865583243710497506370852659485002179781450434693113259064772349440036438614403896184300367299585962322429867524266945355074453245771052088903389473087935957315502353416801463567037694261493940992010563782429548586158179078132205536247062761779423878095080223923928636798177125998875380776034825481333167598242296243196123273354111356313546536760701910430348601751039480664291704663818328102379891740644508765190628212077987025244849416753235130578953737911150204150072300041560222512369664910702281255497770249495090149709176708848302975485013630109960502826387305036894035734568423479197167796261477964323294936654019655091424582769404556513817930220172213579044090100255441276728871842133453324846781941276705649896807339626773276524052460228491977176018166344957650089445614952884912257486922744127071958556232884947471399990112216405632329367946479202914819630528426855385047838166098266586533241609424861704854836974879972696602156950297961397404485895668364581340240757452461573352734509631101628660484068949093341941962385142704830519846678863862175279272948549408962178456257319151005968096256670099279284788242942981212329471274438086090665533284566038756669627729191902879304185795264310776938882244068091022546123098295169268736850060895364037677086588351035554854550938770724317985291974669219392592724719994098246446984512896733374482189055704890437534553662276606657738811572315500511354421040465542409902486163326917275682514015105794224575052057690062838822155793431612052568891535580382916817404833032789311948823340937329433188718858627245250170016559086306059022046370401741209603414146488754044480702821387376901869121971276270709430109391830649165718682137269819201701520255354088120986965567761735776411937955954401716860632357512991362280040575076463680720753282648659213267610274112786644196842582130751199079168866814359249344529331211824170319738503603261790073287086682095864725025503439101239591674964990415326374738051646059236317792446387179525788611595109619866091937117659144993763536605327272510551234784300249552317565801988914390563090893409434683560282269096725297457134339443392863189817879736750841581568329558287084524210858813328578874510040702569869321862638661485721050943885672421823536569006121529140902359811185303699755247489377230993174179775891020525369658959466074278214363334017454975931506378361843214856488250505429690563016687798761262085287181936732157255402173455760184717170355225609540034686684181218723421849190369648187501022672483579606370075991944765782634246729210127879483684795232471034368686946972898971680765330534765448113293842973654386244836158702990712081601311967339135484973896192431645521376505658700163230088323349762161970936699595654283577750661593871782060394837671915877260351301242710352914979623849296253612561189086383283859530491007459515525535843132089218684880572904614309707878068292027620963066549770134717251360171414264033008019089184912947773886703669009178251417816281249511757619970855395997544652003422260597291385549310092698651103804732308591959747343005228686270700878479340293381500574659775401024921379274679933377790783162010020391124952751964170353162783347253615367248704811333891617970028789059053193156364250108013469848248931949795227299576323894628858510739403681069529634596674032235911330741149174395029134339234476217163435268683947996927220141768623850768379530402397095210394173406138985138019243227449884776411093610329605823002556512287812091466573773671631042069574323388717152620331175629292054533722468429675102147528133948866017002907663736256754701430067380843750939005309022943026456257347809234806882158426214646186675890165292912614312784194691690516170133972179108596410379107237511262137342493387142463334632782005244087777701028254706782165491014231276049774529823532706350616614079592758719157998118685065077138896658536857098758852150788087754914619457431857622294964869886251673916319602276684451184034450620928327082617017111726162197644242624479348003275830304711126030729473409981740473107335673427146735770268967287076196521176435574316214167151144533990016876356137212692275231406198527813634840450796625171750534169936919688264602648928642854295612619806476102682530029697394705300572243856649689835525521241832439433536084889014549315773059092540480551615940239765027758618433181318356070736391803298268489003509631304467305084156010517974508451437405516620385477016883267817325598432562120134594562689491850932638399393647636323366588548983640963029394367382884328950391687319646154464357473279571276169074884788786825569101492299324405666700613127046298799838084819904249063931363843465869939003917818532942876332033044219736697625602287199666733714578947338321223360493502271837174523485178848495753379609620436320880559657538106600723736525892063420630019469496878110669758592266317313083463528702767469840029902286568441034457725158859534202763988293413588671354363821438005051514818516209988671978760738052988029116716064688711178413025121540355058568092944367302097273883570677260826956596741966593844092785850185884567963930043375353923513577112365429849846122933965818342009870502246186204846058449901658835978569243124048287409289706685785787923753451422365543710008281640854866314448314094398339878962256837115741548937744222428128897078942695599681532980770145059489960677900568317106128734844404565018590112211295933492576861119014831572664207964150600673022177353119498092922959493759753842544176468732329114628171115691335841614110099546879775948879722067871975279862557874456770043509976005733263133888298201444388685454989782890451377434777842525298711977508267699425596683148131401317598527562274108849298444358698156668908115168973610536073465064974758953957784108295033888288940681796923183435982019164588219789396280634002911372460288298527798869962926846189892805889755760623233007341556611424496589774130015486667506717251228959907308101057869597271897889602124612418487879649782778078206827172119482619722907616215436662217102613791066427016989852636801368974013212993586631865518864481579679703138530584391404909814413532225711698965404771092601734306361504321136771959919707553422121727138059054360762884567124779194140889462570091292115972721890589552480374620977422996162194326826051011868592085887674160507936996911634599672436269505913859389195797740239141755165960920955083046918840169235322406302332398065956318197341570140912114691851245317281603668119233739996224136381437112598866245845404599415383020237613675971412928599950707297990503008174051831645119973852361580749402836710363536519428979672996567072239858927057657315396558397343222675222307194647324842383609273243072312475886740567487156153919631305959495222660482802318782696371493701905084836782425477220824358941794367251530444536255234308903566395880451789615564652611925672360089178658325290655594199696908853056252564331187335999408882710043604587478422240247143759121605740086054749887725299834292456904445341126148012945138738292039286678924849895829758900466285128492335085823645444723482907318140705958602719072705218841182036879475504304395745167624693134479750048606655977666719717431598709070370389711128180981642444008548934895881291634346513088253364169245469710972555490973844903446752863162290866265092554949968217393785132474759556162090748367716375771321756381057757250358885160368787969644101012439492203517577423553523789323129740582983833925905789164357084050601221796946795288405594778612084021601577164857999450678787452185860799592153289549030244113550274093300335682292751806677531258798855976609328521516385353105936311722011353687514452551548101789956820352826193419891943340297487146133045891713013559691169819998383800092544143401171267729719684416229109478204043210876747405936470298305960598506596879480451632422395579088293055318889989178710640166063974110905073109388994298040587537973153167263215480130949390780385790845777768315091730993705160233051820663949755372999444822766258390949542586664342258611195209415420371573526612751954743154383621416463677333980859436251682681741635920958477472191054633973886542807885030935283889587771592653334363686118974365585586854460558747495010864314736661755196943168290909478954077597908936620544595140858142723102959308864725203284476177008859400423369174591273787754031418940594554735647963729779455419754821349078412720166977907155748575920976316496743049460573011533077946239921365348513830510156325210982430982096011217624120546376545308985399283023008102496280295414317645599764978759798212973319179493512480250686869401239868468304329955519099691994329733461838634164829891715200206743909563692719801152749825278767197090613572144950206751458972025529180523600891418550425278255408337915106578643166872442782229969696542892630381136760030531626190154520074109066367169156809947203593966624078588346576737789361606770106128349411507774062939209526009992357394471360439515015704650320843222980047331651322925496594189300719913785361127600789135192236705654597303451888192913338072941448535683262307884185406360148092145895983005860250813881882660020193080779990110359481450862552566038709845627287512707505817924802511605228106566817361175020985171455798988142027246917853443235436342955855987033368355996618425049836852041247660844091083607063110967585649210283780558166980822557596902504366701710569288786659631207296790208106713616803739222377488573271186486596146238815746353189005453137596873005340828477383084225662007889101653327336209057511715975423816375523707827220288039605311434841630577721814085295527805098118717035447942365708217018155202793858387420982544018609416767980294518690238925837436114346013044125740417135915305712024955607372093513110812214194200973290763483039411837671764257410399252214306758349952387341817153495165861651175116514615695107626691471829991802292889882716820807097645464376497983902437446679866037658577731289928772037906902713275811754301208361751335936951285929725206261901466114453172059875200833948125783701837146252016273316174159697309412183137851315012651286899312188544059578988964480739129261227313082734952083140350475249084422087736624933958176716721481441908277878320640611322117055811978397736560714030739407011259619453955129942153784437606337123992662356073847941556648437368969423946206080944599216515294615823252043329218802585215716212261559257653601536606433471614928100448656923872135174011085117013034848813850501867196998601747937197110087310548917885577029190077055129485819871257849541353602710436859730488514447897720935345126445071993954191960623662477515251714511673021325074145687914382248574649900438318012187776980931117348360359082677359686427996561747495460406451379609958213218828280530507643796133704079917189595570490923824333254750523284488653418771447351618909041646246085551125442880600357036361449349371738941296926117303047392231277863122731552687485578401782757125304729384243878900978052973019675201025179466067429164042437034139741470269924213348463879504054667706950805016171290926404127249844972450723399570316427742160092181413939767233897043867902072278619859863245599723427142571115894825624347528736335391286525448451938054296291769123934880066240933804207175254604974749545777275498688207698534384636198558726375350069060961252337556572687544055862527018280948542940511731758922574159436879581911882796433792192998058641068929630939218111545602130376516398187818225449050881659163515512178961184310418550551451685337006727409004553311679823126104485406818642718795464535178122547946585826733451595335626451743474332834163758461889073765821605177300243975826325788398508177019129395966622130880415798993260865287209260534283369800040634091687672347241739953603245309377369893907818122702685584552088268782605357129556062749294671465608880139815980188269441005748701611014123393233737049986630757349484969290362564046411141512059974716977087833864054281579612248981014391199182874979698394111517983887114682280229180351147406992349946604828229215789710501434748879433199055792087661898632039184324646311749755723639401182742411491308176150214981351590906156730686821968722063766536599511398471099788488743324031666370588660241528101074667681898486515884239334913279147928666740698140237010938320891469699099790242818984204888188268442256306694394314857955005773198048405216272621546900877963813891368792107481636199095349761632349511332478797477627565422285995042730265787951477197845459983736979744792665269327772656399373381753480401968732140432013319348875076963613175472937505684728250173773326043545251615314166854376703718750985859737280145906833280994228379682000275309894512811187139506222323720094531917077775940736139323006339181050166541497368080076382823850123653451222256688901776549801205308483281758678155890275574742231403723492800388451780858616772631527382464979848113038553267541108786637136562386804311788666414191686518258301258625722506911239556009263145692996399708126058416598200060609174969378232747539580038025106296055414868919502106455316428293944003723467320414885814091898813388039677440851777248790006459000790951561041154413462334413844160475152140122063114095854940176732318096876573329045044086479761851821060457683511994312931981910924973953781293775468123107981853330622106674528380299201535484164276386452822241654066402224858631681165828400144913896276197146374340887206407757822578572267343536987918426735972920014029760022833933701720715292074858643121858664346939975953392055446226919558777936848730246885008550765742097374666053029055326433031977504112113522200682031076055230474962466591486061190549942573486618044089533982376205802418632119280741715368029491084483690964061983082471461025241862867952589930590271695713753240417613852071168781772911786576071851047052267493788895046822156717475064403064783839569376769434849296483402601369479141027386472122069389850285421062758324619876360438919296350880118297705866212827599368420433621896461720261462430194371585759251944769320369177233291832721239187154160276570949793303025559985784504515654325487652105747270448982360029216909539781092858997303721514040303636257586736739624657218444019596994531261778507907485083070427909311741479536486771716683477179685181465033576048051597710142788931068327182749318492106441514995920443773712083743010479896123150629817318737970077130124991004675967839631141772108361202008733786813014902507861744842600163673987641908221116865438351696304158453450225979332421764066056510662601581528054870947520180377304992320202488955079201187743336680994508522861838216374662890031202472357576525745820372253807268705371401819100077035163935371414614492624502828435164718801647095171952326836157846246517725282001748416367265964458636596849192419677176518571804893298850046266061063653524482696523836037841498736586235649820252522110658219431870325589404004064474968421000112611497775586506668970355332482625417578423135756840740246472398053385538504896012101445541569032715435423474409051908800152386297070999419332735127898083207565400462245490634956417259670843355386015192629984787429588653661218199334063943995330846294987865105758516518702092038937798723669397357746051803458218123200593572233730810912586891398598733294034475205941672534321653165799305453897062291756227225444283460389687155494057144361185612694282982404816899938415179076201074691232950750472395626350589181526785252303323840936137408526540267910154605176582670767809076292397016869143240131310759217905740277947048676074896188374793277301696720908153497126111005283992236958446309906546632810500558234941384038927665638537100104262784920205956782737939866328427510505123424683343694447701792757663809986797939488164431449972174657540896254108882123096456406293958130404491974913232699578721946741023739768363551566081163327875792011770181282745207376355370518842776848157549306252451444314460139085929090183530573701946791453725157538520566774228883718230213954110253292662020135540499313635822833097339514716894623986497783607727700193375143979734234748104464399148017150758985547326948479197355988751290526721258798419224167324429072028968755072824554709966760665020619328737809406162246427155262117625368445774583446360357737030528877919914141371185412036298866172186724977343393880072588402144836045338037633356196628156764667104687103691097069814425096910254317321405289941737239177169572655238805779230993336484845943592222191124804602658678844538857164385518659637307692866855907895021475179449363189815122115468968799634650342724416494636380713311250303286177612574942707836429384837235636351897927522396345805635527316011107761690881463003136554428178608255558333548806468066951633052067093915054080686934912673438403875920561280037072482878247066503091079011225161404145051971949211635165744204384446882457970786520978178678425883017039071211948238018625820958483006779161252040981052820285242894873094854676619512579238630788462554520431942097987102825941631623369786498904891458887743987178098813067592503545678571721510195701687453769260058402968463089177123301405398996506723520452588522932863091424461258500424560292324892341562437552098768791068388885686980375967832449557132959340073857118493624110113129209769966017353168062454807079388531780197980200484192956405500238971783051752874300428038832150143348725432938898768679025400961766656725763573075308052433301318172247408722297967629380527711570011653198174941221610577695358560312975542535456191729085382325838407913441003729783728363472870103393919867263083927977479212658864380846864444133475007208079128991096417115230494137609728970859786186121044853234184561395157843907272537176118830188893787309128497898218215565526099883682510910598651722438668859405486620400068464907221511739195979645661404761000328634269294978786051492831872673748648890059524451399560431294045113149233328340518291790353634724387552876709449023718327013793686383554683289439035569325983050665621143966140972846022713270737715872250968710980206130111634892282594795625570804254338317077596596883609768360765479108210849542576406970467426320182860865806921478100849752693753990035646758924962137209298906193323476286731719204033195222046421104861758731248216824815439883556927510141344478646037942151698078815577580429675884100373158486277075850426803525819674861393078023167515752844430541094381716255995542242504139427112818560690705701720599878481606654878262242250017769158713639418993408244920545971687955039636412783621467195933744576655860898836368344213234055791042721851869500174829613176237080347156985849513053753707180120737932988542469801290631302170924479339394676619790510413839517292475917300983665033186457870844290899183819496095192556149963654894559216304604003841378065956087734695356100415963718237791245943096308646254695892470271296600157365724587033016456129512475927526507099201252805394293929136106000362333909434492744080559349929234941895709911123778881650195407677535624082334119304283890699272558020208723775980387109134252555616595050017544043666243855382398471150093464106402032581161464846598410037524463448659730439568723343248830804270967356190757398032678163486642064231839678154102580969811908833135290153650858486746049566692327310682315009395168925806308176925560316693212648486320314579635685318317803567644970077009845411754653550659806747348300202032721284482946065482974425409256340209610380251051098640234297873377854275434424649638692969852571350120975282689706550074223823039908271292290061344565291225061817592227335622198496967011663044757575792531555480275589850853680073818263464183773002412116002986675588410319637721686476069144857997848369993277889642120345712519393634933490702810205642223709411585108096064188095115186219263880244833862059060477593074497822646633289789317390384116324055105701094806214342849993557070111982116668935288467762221438121230157049347298541487102160589341046569659505155809373665932328725517827622884685621543594636624301653123655911826222592117848512622401935888075166353252087443952035939095567593446825015308821381249332138732341868322081149033502604437772288897073524608409108290183247998771417326689883275022965770877427759995241611890305988372777210464600548862457499578979702728226458211767445716139517042881269924870340961277128865557557926595296549331013153017959732899237663218719140168203719131618019040768144065479986389974110651190368384346789337013754556505562240364066517752663375301769269936029540024748847203089637602285259055191069517604764520481847053950627153788355113545527890324993289092409020089264875640537333753319321808698668981303821812256255957345127502359455543218234566823624707435863522697459029387223343875826209664510561796431543804208588206020537284832135023664133681561377911000868456245937752070886528285523496074273225790440880539572174504537331921656499270737594137374060542539657283989839969477080166026132550350892044224423160809087323857556155268827866907280717773009267055645640771260566036747276684520113938948046065398538329814936235916381836174271784594334400685187743664096239070675597789474042783691933202595710409426443684718247122856272248426700629630465639262286372307632956546303162180717403934646431860953208086095115010263796514570188351588935813935097519274402890811940334602490472036125914747581741671872637720050403151746523608712710472835535743918954501546661547160537508405833044673992607344394433465586504816113523110677708160797757631048219732036833202598039669268875708363365187227497656699000613405919667309533621086050544218894652223539222556941199369432392163310489809934450307742495204456410386806485602964417153461811201810168910047853200133353680672204180483550450399645247242941482144738644084140625948996438714628983960029132189532470921954949972414730441043880647718544667277693769391268575046380788318986425050719920742122047979306334670817642079415056742337250429751077801309529730032773184846180895642842374025944668127385391739625129305636119560188525044933256569056218482377864534063337041117453582350471035362111038534337039649631877739799258492529893919663152992110854679293768607628794719358816597956500232766420525785814968147323103840585557725121453366890688407902774017013029551792773114360831021548183196238801104921748848489345930807356963531348210398861475986870441112444272144580744101608229461172705227672950426646389680134894507144801938817281774780468905683792787242606332703259445751382118803736137721021230161300447204557662320791901440333659709135819905787573488693648835342596901129845191756693698455444009848076346983484347041209337621482904550371625170119029234828973789443489362897723448460078712645516356922405250823497671476052927214472949669871040833421134099447338122764791042759794927550261124364821373399748678433715822643426212081562594196548028568018479066072900824267458786706738974804863574559570958023663821122866946388798343064581989505792627999218687803409264545746075608385910225387108509398211343236113841569951863102850097002910168459053746196798588474834157427694177680815126021368924272277667334744541784116791571691006602714640239230042558587130365973206026483338559690787259173274328425015920506821652607741805126543475093613648884461911367154799002310732230638087412758993193367002796327795929502343679212796775640750933063759390472044953585490369253789286759524577944871022351449261967870677639556485349151628193173531324984487826212577143351212290998586433551622742173326524681097557473995233328134892923896351252547312374945654661611058236693455182063722173870563440615232981478364705346160451654313260748059417025567824054727002856134363223434452677645778815858183241144519258495370822413357918465576526993860621929435859603161023440165247065085115315935357293417563841738629664626160626975304907764077096598179850444893580167505568423739499136267764212717822463798713191925372904409271291048312682550815462331251197128806033849567149319524736298290488103652034550925219135037146210886395128562473291525217248327331983521725179177699164336490039895810971487925983016481258346030256114756753626412060895203066339329372046176348964329413030271070552565445199387812957481279907632305433131130470870085401825410052078200494250759518665097174062433177108345901082218972247154668648156163001535866764366214633178360359841739259754928384270856631259329403915706373624613005560324591862592622017966766101285246220239320002856257364409010267229753453090395327425919741927404399299904666976528415040626722630116103603362249144648763182715271099399826045517322697254556291960438833770899862872969392924372410026716604450690200415596551746823383602312206475271281457391416790723464659476277025181171006638179804619880528072393244156452357348003511908340864552083484007471951175361875995373859863350331081844071499411728198294844931869583427623659222621667424408211112352707391484895520908496813350414717109225754073169572144612627120166763704838076266487782695707232021232797202962025594939753205576983088153480519024680164438590271932926802612696252368294461547058728273235550574307822025252720541569164296731415742316031175034583584442597126175795615361518296333923445889759662045217503235028057340989939088821213913070878531345551919844143015254011053975803366569750937433075068940444331718423310973440815094866980410572937687057862943453271033246077604828907945996643287674165146230838643622252239553501460933169844843079145320884645278070145650336432171495818231915220835344776147095301860764192889956119542559242207392072955771283361114850246508657098658700741146629712130779179955066103886438628031612172657538330995962772464288358271317316703006150960400466311455566761012065842254609864301299498993922743092075801282893207618941072790291202237097803071555255526024315875981048699848803384207066130684984958159529889025833967999228631092969373780631787405308983444916904624326472434418173891210413238229243869805985892829471349856684235528249904791347343945206704874938834371902408937714699477025764526242602431380130593068985921277634496147840682279423936157051811897089694187107263804573685811507973270346125543570767122835343979721549700318267336928422306071927413520406929747377365305168094019777188278856266097863864520908884405764697146278986113222145362555326698725775153034214610641505134423545142928755256777061011230835013652599056054856795817472984317766084022316763913825891099302772655305588883025274959153469601146271077017757596294269254970811503286149104085791101991172202392803285278549801327702490626930962099829438226698064369158922377934112224311554108765663071588769431188080675531375041623521161309023805595044205881069079565097032188858393774564419683026052216856416828512133360877638878446559009755422091762766596810057078102173923694721517860340347580000456378870399215297417869811720475951904662288234888253832949624769732841571204139372502042593184390971254139412856854744407030602105480329515249176665079978070491009967142183499650442046797474496168600586211694435560610968351805914401109857804740735552408232901326843623413826688107505532691259966330302027582952467281767343871468307982637035733701963368446517697202214201063811245585647598174243593341286235513982729377606438781057077175827880823524552431134636379540097997669795450243134121256554153134480234707187643850321174817174410233142653708828793090730767481437523535104914639030396919938410489920078881745794800560083158588648834015333283170382819190259427920872945369662861219182627684110765977329892441827111334354635583836473401439968328746648868182323932183214560904055807993991865528953979864875356737027395877457599445013998281639662002705076687359296883858350344050735255336168959260342656010599278560837154243827533012545403425203369050153551608228569667770333044059331850185449166484764019866193396436099820240376075934647563658825825380586196812766351665894646275945198065159207843484658261962753798461077665438873914129411523735139920286943492429492968777738226978090843935297367304853859417313506878417672694122766198346881535268499649529637231208017711532722847684020191001048865098231302854904018038368557036096384771097739551835390750730523744287336729995501605742518979260813885485495648988351736679361965837235875197278858449743793763515160263867158061319201765751206754999431314746241903871574556588755416221566733373511766270611802326360925348548473246882035088503754911852154578357116301296463197133063688381683304549636626728498484198780323867991115473010364658146698693261611067097027429932833396518844693495372382287400938859685276535048458170439341841505901729808850654590001611469672290919774100403612964864512065037757486943976356292302813029588373983339945004060382291328700960509696712158323265833473015008249859460463174728423438844815101105710822195992165859112991061095108462642956542426050902742242157973184256995528883423863514796459838652360944630307513663302958866193246154182371923698473367134994258194649141870817530824713304927458365773574226590392358590081161206058451098101757826960043056608664009105511337340928761006656827375639159060982669430152284515555707762960139493037909292928623296399385499430003645751093837622230837120270643489780834538411120345623168269863082920322724360393291931968941397414993224918463859481861029203463594396368546216757502371443476963446850353909356430522022438315315457348394432497958269345748563365654259156685460995614455049610496320343141284624169777219960734400101933472286257099720384967816153850439725116921346495017298873100995899468966309235115689194067078629150182530905740240397689142097714662907388877009973782403784434133922224480884225059628909617438390349903966781088046214972776983521045199166748666480029727765373662113350616404383380953722938311473096049430165430987910342074415563241814810517981588507909299757528572810767414941627308952141382404614302886837408965154137902161535752677434368576245947793284698124520419089321760328878259948639386190144576683837916032980148831590111760240983320506217547334939110454994974454568110576082239599854150396551120622998030487109640830279354912303002293757648599954836724263044320510970792300897127873739311495059907710583835899960317050795995615481105533152723553605556146485618770863111869669195949322238749130856242146506618366068566204265489993619588815104713298837168586188410554446782280938478749836770158344861400056166783130621506662850443163378691538100846622069181509559763090145188101806038022802991639269747896022731228388170186168805582992313587491031445873755222771642349788486541989228796922885373784522418876387063414415307302077900679177996705976762905632661399149761024568454595265469075066183498603793404989350269144136001750165225339461168811072398174008774837685420615783085341644893620294096677991619711924250391640121740305789146122518929038458893691515476342638429291674938696757245178708061654984207631761366166527423228767310475523378055700177565816233528701003220939475509483166446194595984930453695531849603548948917434631280305974225565439702402517904962467865095573322742915794248762021839667857782734784011410469300843905773556648677662198879103003854607113205244039190927282593295634512602293651793535506155378487654945804175376371204755967815553905163540705410842183252898915961054981716020150738877743841680181278763808114313636822118797777086532050109893363763045956359206862974925932001365387186644987864617144556673554947582831036582517361722263734559825755431777938280064654305787328557717467230995339382554273419026861709902139021960690848112544441822402978731675271951745929769749333412324843716039315678265359303458333124661534795811797395875425675702202349204210387697592609436422967225320713393684877070040849409733310026667422830497229724438955520940175269514758268634719540692063117837428111841429029005796407556313151412890879466369592023584908996034677384876963896474125431873106017858741618918213279236690193559481215224423023984643095790450797759634321377904415469789917580407058516743098583012269933846971055069298647826355690648562261643074789483999448275496650210474566851796288748652969294705825741360056787090468446476707566604813305419719296623998154975271180418512166644359202697996184515847785788961320573957544650151340547143090881882719040549964029669911659953555541052118767869455897837476027727480452790035141145359092243085891947902595066241490363202509833499012067085150350825166463412649698211771082267265362694646837479196226159445550273693940720772478966458189785951806240428550027571588955511231614797996514134283333219754111059859473331744358933375143055740152638686591811141835007193820147451977619096278621507883642402955517885896517748270535202739941096956652794958917766878001350961492982814026665365496813154444480567720520294266561776316735667636662789553138180339906464960765145980283428122530128031788569695193715385456492623709240825719232490012524098723459333982694662676796155330266370927692242995814683595099206079417440420715991760717863763481759284335012684720476072421171247425344291943382255021095872061806295234625680279961592266081119462253919591765862047077438639210911709563648198725935222473980186241094806258018326365545290077400711587570445999766643854659269786841656952466552401591733954835147313628997313849349998991200352126054918340880254537392079351751246081839393307672498580908341235628723615748093582683655999459114719182467845998786789867588548914041452062909610591387808912931661438139903461869211944148872502519714492575681246311527740976825314907093169519719489512287161714074215108939128694486227414198108580477365695970199155904301726154727995322487442893657095577819009315729433920982382985421093394942587217230660877496681512217682727356497983353987063021436791580533660151892237587010886891730364857631881005409054932594175064729429859566001288464398439610222245829863187158093243462463314517308096277531820269495767934279569832739720999240424927472989822987314316456582247707244215902703523559712554770766689184910373874666118848346733593477758756517300534484780715762660756473376445355313598767908501838620475134043773150081343882768027463263748337403385867356229355999789949643937063032180975437882506059482463398833862307822271528078092783347095901517176065578604837859663628505872044544597168851066172635477938674594585526764043873805670849349657989184412914849053163443740436328972754509891238794526706139039562375453027424284276035531422981872012953240239911657614240036059606274614801968514331004806898238016460804129083082405997591392844527607922438720076315276324501993475005805216872990338444519966479320902964324076790550172431343244362799295847547912715745935459138253206474055644276977586945548326893573070971827042305100242386716147383228451980329302880300759662153156526788474147114030670291245150415448683678953142023944886733440763934890297699927366470163393875521704171460603385466838736925084158445256034498233783624033687736031029653817178554229794183530006759426236475317109382161369383573779728225149852122788114630367476615205508317340824631712692619882379400213221686986629863435158432126585330151919897538143798670041908025049429721820213522793729833801903735825598855664093062589305590017493218316651574888865230657808605290946794052270627622391138590606201628159627220009288546002184046868794451482577929552119011182569297059422381598913527788269935979078698446642377363086933429654813171913462507476285700591393088729909974304808599301008611165517423654952344118037947920201609774395717276792412924555259408684078429896299177624088008013091034582382939115360479840713596955516195996211508110202093895455995722899791130732649489105362317133977970480900004564940333151430990916170188200480061023516106033911965107654537375807570187107380149523877584861790291765938049893691720326567970764263189253289353659178081111061416364285184080991652952720712222340211635609691319590439258838651450383925865553433197356198519807412567048699409868692643037153314685065080588531590631680451537785402859910725183174263993194003577663223233812040286160651127682829769838780512977148400138058237421243231102268721205989454839778440260936123861741302118096533039025779685794302458911173750425110216515024167595056902636516862695079693879531487927471414518133376860292900662579570447357674288169743612399198894490148152205643633039158296956184408989478888016227288979035214668153267745259700945430688627685082844716908898982386727301307126611766862025295658919319002603649192067070859839226247056320102643862892717215799476337970356255106958112344022089336831306528881004274689657665823342812863799500502379856613037059865343500164505233786781735677900633009661629968511564746384820339594918949374728150520822703567995507182498378699890315444025383699789832287592908442170031362287262409573868663698401055148189457964732041391339915282567867093284942402426482095420648102914614261852296316928226990979339282033247206871389733201750264144908900063303275897088754818949671268967376383325633348728325706951835364036655717228104142313018576467939796034477577738349563617544226898708671421145535749296528432758562860229341075423785427998761198952854097743659312425774273544237526651297672131773700781112081931141268060749363167425457846293873564342712281228910288375356749725366189715334576382492652471310840839095982991470088198758296241528098660826453637301386475731794299701508056438931291718833700902173137599627717125900806746921071226646699546087524258256807627987313112990079610404532357357777953740236406729626903710604814904441575110052799599766403241232609473145080499359489870600392961258064862029477328975672293956715372682279229601390462585630254335593413790279051101807705210810161705325757889621591972048339150341990094779748108090887729380810639234740155765928898391675076290462859522252786891384146863428849467199693715367638335857084376330552589920227597560534954709796902490370721244486124186757726615311435226122927199946539140683285058582924385300445483932955198235560213557181736763937156701897121973097297955409164844676375337310949079989253534118847181138395589805010647789810514350326770432239620972169126774305602891643383586555952828437913202579795343096501224552866063129257527930435779210495789139639349080745003035397605459891192210247868930636439462906719038492037972832837608562219636883155560574058073219571395967243879661712417230315616025609040042002431545172232055548927442515686943077258373971401993444908988122146943698805481806912856511656848721097170310865194507020871910758398202438547732807266658518729977132688096543770101184184886324049571477707523399477606621499097010686501183781452701804593347204366228878084574019124789054421821823768510991020231758040504895130087128427651632956032193412305793753522168053777012162459574769940599383726715189172374204861294011261047318417905114719082944256839169333966126313717848505401857396267982012026459776674209657043253573311092051186505615319689377832007242273683628540197615326343938035148371159579277626908536747686684742268964668951343273945278035536420064178676601238580991125407380560055202478559007961686090051782662750851985944277831638987983620410055481006541813674027192573993524340292710880811999751715599216866157208478907660594034607430146279189125409060516637140857933877463339042561466005719890157977023049912327300902616647952408037544779169713197884349538797480767697191101890313908795874969269773895358278632587544514237129113742487173932545481839724826472698399885221601699865361398602367175831850483382668090772314654425936838435111729251772987101478090116775810504282767975349072254389034819648588401543720430296992711461167024127088915314376322279789502687325467407851063431053917703558981168482331604125238549026188339225681128117057033814432390761881675981081645625945803155285082686469302744789414140543348419012914879791722049473152553605238084453441091956835895787004540430354271082244734561093191564506458949469862896084646296191829826535051749671296702868764849758135148603875444053377031620632449755802982737576569263793296623403122096944537829651265685845403182600087565245660147959018740379839912131449928463553844956433827541807339227350766086609561430409636668040158055539386036460101984481894773541551925448573434089134234410504369772496614033198324270862380121830452413173808601859173140654933957853310218316942277182307377248308762804818674391623527036191814242123080735679526068399571472060523837373403260883678115214203179555173970153103910165257150983268986127909810044365553982225987429346254009801705782737166968588620237119592875229203976571556182433121559567927627138047169323449533297078980319972358649026922808627689886511029991743275923240206823496992531361841765401615070496579317020484953809403827151985204163040566793783443117165987854808456201714483357376851762297751456650827451291620110322104375075588798125626310944700069069747891675013446637666286242863786363932794263861769521375547353183815062464226703336340595996636001410639232780596381749422127411696412483757194951751944066315842291924380557175718286777705702382181678855446904660090678518867067881201136138365320184698016863513106621664533542303096693687507196692161715922455738845468245175058979646800872828106147344640710856518567866889831637438171461227753372302526382750491902233518210968436344234002571122727657094743149483140345432361111796642537379062645884235735617429193386617467180021700946496673386347027921172406520392655084525774112704597778103067929714308625711568482764593958899103218070505562390014017328745067906359388994234305000623536218371757655717765007921482869199632098828876725564607070279351957829407628939246147513006152322087792645326990833523231855408737355863016191641905545240266605328154074182252850136327090265995363028728408817665680541656930038013861043709727503579580851997712896658771219733275076642870834834640414008773992513649390589692553201945241379061559746140551319554335530648665847785601770268021624943746983161333041728772942750114339495534302024656043337945526537000576292072296702791673947661823746718892281621884727040987084605213530670659681890874595575530382293950981465310260821241147446007950668078024467599472459344155790970500218217615600876599065663117752257308244013189673739847802009019024934363394436715162362732661612646245517016161997197870992913944464017851319321326955413895979865156482160610868270766379078297834490348085598611581665225621831071935355700548718647234529573761647148710985347297810779312912217714451829291785409004107637051637501701146171039925410647757629706510199531391236692215300241720377218946055210153285709969685999593080962753820677317331898972714538355942861528326273444316569506958934768457963345681080849423451059213678951956331465312369848322893083213007137897545435020719064941272598520728536361389587215819530046723161974901740840442661894980652856884087053236768545682132774774990275041945042699195879392289108424030926170866856559974066050498882196853264269006866276259316746906604307771685245072577566371887538172444524672815693341104631623208669299941339377425692396500865160060410618714245765114123011326247666353651312668445251514153400476400967641001849580265361995619493444446227707810882141854811218039520317757223986331094745123475950496078117321993409462384352101173549549235405364386209191193540119992959177430858629451628157618112015362017232966281437336685331254622980279670997741517562366426157577829501742366538874897566735992308746352983252789088324910466921155567126216163534796759159181422965859955630563935486773930474698241508030674954632449557315927854881565096203463055770743668629913822936651350143409664636453299204219677847192170515238974542504277597109829203372638832633969895619446251065160431884345807624611763697686466625840284762270299981254438191669350296672043339734439140859228106082108586441667369550092345617942207747136061282288277563550729921757225764796791058327164443812323057541806518484562425690870707566274284560125611239866872106488600431071034277606631309144953862569654951647688408623776696467437028279008045992695725701006365773907116902057142882289881277336333017189410484761749563929477316702682091141456174600732885954998008043603054359932751724024986027513228371014202465999184463232073449118090888968393177735182939661267576306528240858475702969807906963430213007290483690431015073393861974109669719517928784005482435685699057944017695433468817963054871098404113304824160939939109434936513046645206721919513981655081156450523339348258484395261921637093081968590834999802387010467488838274034432970890521367962141654982927970304669440543979991564918044001547202846360283155590512704106339593994821409031872829144666353935257127416720232598213693898991257819005334776204159708603903087325039668739628134339703729653355297801584123975881502579859200036577348497922573730449470890219245422149578448146565861301699684298535138599993428575444656279792635450988670873726521623546503204624420123236638714616210101768731393750913593530310382186800970199642742573336378030872093937473520543149376985710063865487746641805443685497645779885438879190611603140499329016127695521726386972506333425377231512874159024016661639566116165595523376652624963664688848685103713005475558888690938137188730452803359613681990654836285011362169487883515037813814457038121530434402802408541870854559675276829912385540940848075610284422030957729719286154145434673333834657431233497757063217744653481413633146668955822762148388695131982547635273919179466043045445157408207987955664147455309566087850925850196644153110865474299445966464643481265573832092339284576671621585699270673882362199371132231880100617400058842283692032928805658534365971449419481424274796638255901156676132143470404518133227538087246410436078006552301356106466416404933720717319784376730804305058782779892104338014658827887062654136277592898789931566817485251324438727305164880556181986603982459142927451708594873211018447631257757137938142586905456773613693135695378146145276173979227602955652761817300820697667111743489261439889276582312817538514691352422679999814707554939247399481358488443876880940058703713862215579132571512565943961676453062094116965140972287933611503891851875328209479950382587867195141575688770664322699995712949419598431745542784244016500436289712720226520344893905385929821394032341861726151194379944340188759949892191353237506209814770340714120872119299659146133761310227887215035322950880469905305167864934439973177421823850710254595093552582476063111797687456022923023832044304050619283902429042763936115673401564756084283862097184857788619376170883130934119070416190888214401709355977993464236622961971578183710239288434011518326519121600687651471004468244803689127034920165588061180916431542481417318319259561491230313816706075876337819119178437765986554714989224061379780810331734699424604918825707918523814069881817301773390931882765681854291006874945918833069937545715731831939714793842083564498597840329850047239904545604441801987553622837539802828734125705419161333231051355368576226883444927007230114574814525972098082786926181803437871139997850258855296574929426270840416394317969299327268491116121953487431542185052130502850066755865862889046625223573511131535545136830739403074179618519998460833285984112972203208519286162994686013521293734349153299317596830293741726865155038851832391467845777502567036227310967943785874424945658323963173557590387340718793684562709031504844390596200113137685139817264846244448857858210893267230327802388516652324762078781166140950742468864600575673493216166897012950223848626203830034779514222403786857648675884370975971636352308308067935121278532258874478669028929937016690543603645543174244637529649784260595831812567960971454223202263315128470405959684561870647883508340259002246819879038518824926580817834352019622909070789397173413541230234848147373486293808266168058998444874046697111617845370595709539657248863096278675980946374194607832825042831602421685826565584884381975865174122477381811506548885893276100155512077014483427817661133837498504954677255270820225678551325412465471658335277339319097068598182620955878356555420698509745478236972885585093799256382459885545300255057968316973983784688473791922926663510256547119174656911299011732861876756219546729047722350219359878249460616198718089632001397220311654413795690406763252560909367197328160310771983773266565802182910218257186192440702725103184609105175745908556867947137061599250489193959820941241244001226854209663472652655930128850977405816450830341732429153736224350195684881784325869618645301515051830005075755356081486512142849066988441966934013512930068605162782186382721847089283817844095209102526497082598640834144552224714784465994753866042565714214686785014549887209079721210844931149194891097443565152898646210850591256586830457674995673755339516787421825299714735818216180490981037153738665018512120213470327707352669748014582833974554019782496615149219585658511342881318282141923414975498935430169534233953681746542395769394377243043924176454918215454256295833224507726104090229849252010261076483818317351079431715957171236311273696558652905544245515170003493380136136639202929492048021557256799703484642395489926387864050624147826146426381193309734007193038918171976424568199067955721324006293733851870419358199306826604971402081880615248098125626313622207079886622905616092568830959623861517197101453050934141967188392137734633098783509981121000644483229174801875510623792569956059660576761063313460715578616325278687595420044633397930739321782109220418870068493662909901951314983044780178382144103159395790775382626935929197623289782564206342129642763301121535440093605388870878145717185787614429303596625372324476805939151768434177024862781401015972635499761363406323029891088135581257497053319726964018826115736193814371678435351742995768740059722145008344713551555804124160812412784242139142720872959385260209825055760480375015835939555499203738839749312343080049591639856772141092822206000393532339523811399745196021369345385279476663370287490533836670795747076781229350189587651671538890015538722810827344162232072573717747858111795844340282935832422992047046750973108046325285703925867130517093648605674225133594461284459294115150570771870544095285282937346716710774511494405090802180045115116174326160370247997460610705173510953821822180150944652402701033213253684999439978167746246695265417217394232672196310804857804091634316293716096835504551682473975238006128660195226992791792529194581441925247834228202322065641622772623386364107559853767805367360514116156836832273518529056969480606693766863823840558058858611532425413594563283168065988107209771097279307788565273809927384126805381422618520753157581799619059542408826140262209912662519189349651361935633938242559407264624909965806898419463531759535799304507925728611365687206728296230619841747248494941955988103928446758656887000488840648729962662476018692707547392799553184831078951350252419069263616489304001944066814101686339757729560376713419424208424020484835397918243485858715272350399932461714201798404959683454609037683879202969540112415557134019271517918185983536213509287605142979242992787552256122521278565384856981145390877509681394178047955242886331457630357254247380464398023351313027387569740965571967476453974164647428631145138623526176901629578054284481951686030238345560117655845079585110822418744195292417941833750217265159398952074009253797437408885022476832936049097509068378995933795456628878853081241773686013219116010388145694798341924349547656497334925255970043292678493970210751736191741357090153788692170922739150425775199476362414329319572101706043887645008374852563663296957918131424313938441582597144211716791523815381440330810105332174599658258524039946680102744102904901414258283605060705202268765677793139649030389368004131468120557930701670220443100314877657257864935496493498133699032550362873156045327253091140027418006064190028899806348569992345743902696647027513299316808779018311989420246117837855940333852396616107954455486556168382591388950435740840570755753039917287114679695591212808392565965928180647977320312275755675951635229661044065234883941467215283371420909597195742997010422789913930094288899611699628655722490152332536218603006490243526223114487229856853691050330354165582611009822561397526298926944777164862399465567449741279435479447746118066902794582414207265779032839551053909954381453428951263680892318947082496278264100394136531147136613046302665758944950462811795481158565709411959465520584651252116512471376997696185635399490991394684934966295128788405587307654398691109984180615416352009817730238354093343011750173657668287990946360650056386803086457609781243405597565961802578320337492921707287310264894482753648045506247103736868974063927369747399063373962591122257246151502104881826832185605768283040775105760717502065632637012819806823311519189818787770919441512200183274512351086467612159111898572335965978421314085536128592599687151090363469501959301119164847608623756782409500892165568997134358722680047570580579008614794404805423566473354266717670700189224871475899646813790813783288797217609418963031589752927824346472466281926632500776148829945147517606507609050642802415049399003143478030986826477340700476941862479112098188122009457664221803002289017286803523470215699835636513338046269847940993696345869701627770130002656682657252569687954412029148732677583076022304239500583538374717286558664235223583887159009528191486432235296987797358857469844543669159924315999364221432189699565445435809814362851636418028719902084496763681748665099195004621324230262231669322230953810026347574872483795798983395499374769782490026930430856497505567527715305879732125381884639444094933081710076808756337464726330424219095611643862782352429185974908276837441555322165581900962821447154644217599782974752858589999774400880463171387834848529947208491291833041053079278903849661716276508713873250004232555321385745211647672028949345624506243137095260163957464688757292264880036059526376175589124980677085873969380956949264147117019318618710172581206816956585853470364942443788760781619885702596295830833243364609372986006264780042865651575311156949872221011163784570591663665429313730868532164735363931266927326139321901243250452125061984404708271802783702239042553951596730384002078882148438655051658776647569995332789958531622174098135524817384328558245169240594848992255680574024619504008302526197164350592582025678792090692109291091584406280273634594312592366076296627984431823466042489817271408906881814274248697376348210216554639644753495635230475241031101325322353194708203489110338903891106954091038813892609895410037692970863417713662798370961116752871567892994388568628048128361553619943756104402169666488024821067886595220551921784018917094088470353890701372513056917551102361849415628013503549788882927548608804451610723550285725440174762747897638245976301603723879510461449165560055978039096899350229259561997716878022906715166861431022422879040478980191220717883725505556199496709801769823035864046828686835246860260358622208787088555043273206620792677916302233130290425217871949697238501776469973815475149510081740090810137994717591521704894503491371115458232398009633562880128138291888535670513984865296741511910353261078355231617521146402976212542471950097692629726224125416135042244942335519325955523420772280060973991221264468222631368047932009394004527461119001265800927412525860876372017761693916989901872927302464312279972807376060786659470913603598440160660990449211149032847687179274413789215496595209386317142280957402216524328027887161378216064327858213108488711123656512526091051185546607342772279758254925875747250442834945369680859676887991280570036192745459743406540485041916853513842047559118303387309941393590051580105480806287638254846604501902056881482727086273519478524689183988837431041292667852823568424128424380429132797608223017877798333262826925656446692736890776900416937101449711785880156617450603757429102052176425676781494330987124971449535236215295386484355725922321996402610390480555463479986971163637938558893155253311729747487290346874865378247261075532595763734495992669913285276997684056516365772026900610764094561553684592606469672933300273488495178510050629694951693390455695555425040416581718701487331897176044010337447057716563580197867324150351686427014516719921431662071287603034482444897570930920858783610674835267510687634595947391495644044334939455409187440306628655615489780150754143935229041711194947196306575189406824296720233982169453304222864620377232375767889682929060315671763422532514549992002888854487435693405780510137625652807533217468312068184836226268856744393146843070124088224406199125591531275870477670318371934980823573488319778980442817939538941613637858324461620718247780162869797437817676212863900640065715202528765995941032353728815140528233934265114810897408584630758397377812509367877764823686643475935633122327669005894949455370757942903126568172097050287393486051279246833422453548062857152038115707363427249143238037459531969463879647503248897658364077181668837025771415890160393484178428192856892220008104936130877261340275919942715841163765493804550804830734917258626051113904049890476019640890053687941853859130400924172331290436812717365783309900864958961227794782244609811063480268432664200034293596412654534351342398047282813248995955413088332799187769856391014535358218790850560871525984189020758646399326394436993110359538155211070993525843248265256887356777704864012804653656989607059246060442398167428235910791481832194545801683616176980941854643796992633018153285502539569171805147102082755227796438419479600082636506146268870420628179052845922528916261242748747919099462956400995772697913259654577591440203815601467193851258496067749161329814668378049174705992153986575368169904224473915390246974457798182550828800958623373529020881403519759174922794301012319394124151395620073668025480951393913576438848106682494107273478282460894524062647729711214126154654454255586798974951667399413234771229919689087357607242533386025300241018028390125120811960059820152953528130746474313505300441361263941027388557487316168303231853383500851904605047744092709417252998014289182534016678692402109209749286744480545117020681099132994452264706962327534604496250510953739386194311626770549527199863179906203909404066776603936358334255536574417986930008139783496705995539143727538205876922061818833974404265215453187047946606396475859468031497004762219292913344910235691427504861648653861875732116710784896249376376350053477764212184522534606991857424766470859366526114165606190432025850821388037679533361764711328382596693784130850256722046125749422601688750962709048704414711375784467043703989536140850193375452388132545297372665523970410759978434429406916446308682221387704858216609588946418577414860639256969601116928960095920098302733964049167936245268289366352363060757880766026311685161223335401044426014462470519158910153311803913226787731384727290846956888899712683191319062252222748166667726374333643533511779511157593184585700055178843725389296939832274194248982164188313957037235741124922459348993536532822870488515653999623342026694824136417739351398697783427575350654392118273139747366928299492700164762145749671942092411001751272394055752094636969942471145235688737914900104129572660259456638688193091484907168517948136953968321648761503934729583484600990777753117564928672268267251320362244592626429911071191289681222030650709330733260184138091081489114626722405753942012207264495974830524292023013535673213736468043491570605447039979334163401557200771046108201824092227968985895302807715032819315564442634650223796337258728889727297569756199778406072494567507373256672631833126373896742389525318764664953282807855629849864453652336629551328021532712399069144006998803985696503472152863912844960633756219597229348598719528077032337995575306582668276934025589220461198518604509095254647165027419135330144454265501989135512619289783396267463637522444982578372505691171829938356913266170121835545691497059017139303332727005519421561704696936576459151429598540402054732891435946143300639168735178634258987055670095074387943367272599711411936088172553181105365545949064433395768994399911575476372163881671150027268054512798049178555812364140149308167282065671334687085601442438763348413213651096502166824215587220283314507638468542611141495019291117239525252956506406212699663701835570760928761239974489117163371210316160105290976105875010541678001875221379503583280802035983466216900869817312401407704188413233154304873971432045519167225202876429873465745006655411987755468434765639913542733936484565402440228941880981237605593591591485028183369749364090140713544368758473019568333683303096630878620187926499555044326127418423663214747084622258346241542157697744085542881028730336756265223994246932957399850712063484145234230518118054830249478810896761851777749125977468136107478625672063288529357089766355683127445288928696082894490307135528797367282911247746458491690042490217952363938907410555481500951716923555997327786716770813756672279218806949367507403245210193807547509293910606535083485339591285560242806995463847754397534187132509813553760148238786899893995639358564391867889209889869708140906373879889269886926780397918648447788122178690467467035370438501324855259872781053731186954456208409517556658681715693935202680098055800748024929413036837139361147506359207832313578989022045264598655425526719490456996846487652496388588482977451661297346849320032360851441072984980100424013463955817587982169750883041098525639201747820313523891269912705766042120721621642557767369820726589028383631547660578870998581412170514430346128551618905097511822739102027332783715486187748074937517512196641910530913597374636530495241623439867671029315441725120544222799279092516813612985611570910973907401701406081124436402078376335083199936124341918262243137140898553919162371441338713757330203735439944699277820884546241895594824045013342812805666637008375332987370100553479329495930681821088717324702115737068466467870609929125985277847103956779633633989947614450666980394714095929428918954085866921423097251170894444780936883462615366664142148059940458467424435797805786041250637314185521605869073675612405054607097184932615134889865420747035323996269849347764114125545841100879393998890741818898748387590265415323253808640780544843091040399092278494798419385112750617135902572114383197777549491434711647663080204006717369625858115475218862221590274760915453001208546573380534249248072487802465109353443311011778183622728230272779020390166170070646759167562131152920718544460727285856138406317840461675926250153086752160038864228913925074761307430629400815051845089699452204877523003768385805011202740963250843175389144293993297518248027500469921607672459596826509993719002770767810612363975044297040945678134437604857975569981129470310665408260382954165142348834093108931389101172923553197203924347860651622973952645810140114604948895242150480347102182207384431906076108078631297821328811355117084697711723198553621020105596866686929800299746946905550302067093400901196419230694037210719799760842689590874394652083267178443573921995354171090245907413532189283930541736272915112830283243783414968560078078200559528834243754380074650560419596217980139157271071949677998015516104730644766667513298345937519429416552715581560993411343869812787058194756665056981167676890152511965556702353671717980940375026463860116690958437167620203553664084256188932226625531158122553538795736370396957777118341421864653245653725804038734538709929498869069169953040810271481050385506910825507529361581398119551267998593601014513167544906114289065350316941275765978330911631024904753797167756862387861977352494119426857535185897566723137911990137265796487104922347545542428176586400201210802340937416010096281669417607662906258925072663526104809588942300661045920498137141882816272894990249015800914363963961643781843549449060931329397854757184923060195018539158371302349154566162147865346536895923204716513861916516776435690347341185351865420692902493823785987934686506851283781636595214187809006190777932334407340785803304322339237303531283434358601590946307202031407332947914538314417184102748612831344525517622618304922368993397037726378510466103106692331426965848272821902588929771700573146795689560605052276482676195430735765959742452406004597299707340557082716565131068818513269854006553103465695724240664055873792102617505161705520016645425672394241553203012257635445215931969385335230163016531248440027267408935356209032345158297975163062882486622824441963556461483157298838250468177559765070120858990902742678798039871449010505139668395424762091781872917513343045929473409466203901917264975392246378151928739137600623680037247872892540284589268427473402135076507486382260008566654454912099372793669167575294254404939741671029309033302253559373201721683589071129035479945625425170821228635663953087130324249994808604425982053628091233150300085336844808822799233186337067137953600474231897331620711328754070191597541196389301499182086089878114682259222299872635041618113723239514363723604991934749135557651307898026373755873255839176640649102326828430492733594591845022552499799819700644638340545667533406551540974133763893839190123421088041527398975960031666478802634339049767847071993905086874550602135789660019091191440651455776741245744256175621838831947199512710470218213936813990658828794103694105134386228295161616215640093218396100352432794856025325423146557788604373321252448974504753212220804077090635839399645118005663478282119111563244411592230895324588840789653580161035055698034513136401716489283551414473936237269759185594285688406292572618194227971038782189593518929934316934820016572269162562407217791132058208818845849663905786932408917855682417928830546248118120133134523959347924961478886508326409752919713920465452576334001517846180698570553474347057778453000124129915634109531599383634008458068944598680729601051925243292165335807468910261379521120996760062131723747620420405366910995852041225035536633978399740763838250759066440168030831659041005461578757449409597763761881572721921039594941368319134176012499952824905983246914416075618277832893339725084157467306707342707963889999713053935068233691042889453580942470478030652249928604904806954787530331774725882248416181012925775546029774800470917021927915038326182696057144931126458803603947083060747344324301024207084888547838664202207740954315893159779111477084645722447280987146562461533622479078386894896015275837233887312611674716269292359506646299944843063075679200575685534295556389033304217794660843450674027415573854444451039327802747129539298179069277061317074323531227366442817168902474446565466594850306388031965060781451985189516666573673544088865433450384483663204679696865125268423343985208397162437491029931425882142777336180167712092858089247475421087551929378832596427671825103428084782561093635311189692312933215211489578774028610881236311134965744552496762770769147336407290720531950747788069678407202804208982873420494375174690946071286653013391482279896282996941787822680871906671160907163223303034898474774025047273634268287637065007768836056471852805683415393355608426456005667630204247407333541195975928842386244418785180874524408947193605741215065581299171107970221922189833009074916386444920867508210847805002032712460132483245953312174292530738462327974716957147304204481910624366664555770567632154125532851527464903146600443963221695938060287594189678299228744503703750929346507031070029851170323983203502623236322683738370853560272995709261250856230559383367759345067961038289374368796808905403720469477568336230293252479566858661725317506516161915666071424146804035111593564992938262164680210366033617858097986503510382933443702892118406134524022333490890187505420007861916039300182452714751207974762565684370308802166961909441686571924822798367103038477149864128213173651907895071254046856525609255647474230686276876392816612027354550200970324230770515963381638593818150677869294508362818597373403574349140525855539444081630525770565629051775698683082633967821681198508794786849615245352736853364763699668126429945032721925292145352460585297671434537212135654942102899892269747515211524079421733627919596991927042147847087703114448118064478422698194405931461319756174052619182818249680048405602994886717566837368272178513919067878594457793943632157357877051323553095654365401834350467595411598741916202623404174649728592036743675253044699817784338341383762678708912635163506146571712086257088901355833409773738656594677099781427749481871388205963404546778098614686949046389086528047311495560233433375562521737229325354425183610009064459987619678352766353156034275815969757788060974080184831757532157623693033587755358235352382744424778608389545249361557340476647774752316630272985098400442439290692240140660805309762956249128284857115136023048133249568986948579071708367621344563811135093306871739978977931482142489048652404002447001645972328443594400290912113790051126573441084196365177413730835039482298060331585347559516924556097602422416235848918869073023741188319066818733127777477862737355596302835508824793856516123512491481785683449431492207785498171086394701093753014881935851630661654900113271890525127587341700917838343583905066755199724164852728712126708786642329389571094002071988916538170973282763854735149929585652287632792366804013868510045173407828675515899996210058815573165023809020747515669251917806442177540436033741307052438477109041655368214827984608048127035150203455564156945633091040676671743793294190590768298480108119199811851268454658942469375017365148642192458064618246711106518224269845113746515293836929543598086207637668568602360831805352103474683284907373583799647378075197269053499886485168964485178832839181839577917419221668274817880937463837209390352197893781764044313715649557036566592943108729653494785670798257568511968407823237754877714958787083430811071442328744228410666424079131448182419755972253439548005832552480145653802731280546122318949220876034083599261409935693293725247541955341851725007577739406850659403606579957959532891541696397552283055592358995049463025632996062494867656152591000196209831897811110097620080067769224538442006602857108741092781451211425193139799899478790676612565017012798701439048965664834008088255846954711901309326791367741485200048043733329594692220972394149640352864288894897628011508683510878948659975241843233212831738272310343495880787183882182653861033466204674767549803048387558680556270206444895093538422519634476108140554055067334780479161474630475427510846150626095532055100362444476422555244842208954175003826596725032517724090178496118000055131218788431442770887278145063195037109911424263337963653007153188760782278068063194378923858936931224141915235974828918113765106837169589326609224890958425805301413149776541610972672741318799327210225426762480371314073339859861934410398754370454152404511492391567482647493087784946527761693454244251032205742348189422444963250137234496413116954716207742319667871510599738969208796796344682196294672218142807091795528172255221259945305602645439284522607790932755121266988421710086497764129988066620924690196427291610634176879693026126340798985729189723160149858651206227410225883155339643084594907635310866194938929423743298556761533125161252478687715400896859797254065245439798007611336732477343533013284547029360273582742224185996293065779870669650899004997778192400139004354575827916553977830048565804540444930252745381320727513561385154028653419841930703288346225419363034089883546126712350015206773967165553686892654078409859743830119204456071936867501604963449019361339269389777648846075594506705049719091982039292574246620983209938574477856001527441452661904828227594695023543377904219828023438079193636163602327564752552451522603757609701056437110126549324978932076694292455063283003690478161016295469820602078879303011119771561475123634763548725939378404721931204506654039611946347941617656891314177781745070285207852096990514418927017023936415636340348866964538575971286053204799018404596065978710736243302092659309425523073134965461181504935355960213915520856394143312141373806741177446392924882491133191325431966512771198491975969296743005304521595676990323720503203818694224107463479343144992960118089238690743234060831831322288353342572281107827397268674853584582685289362839468396299428102697045694335876777113380662006338862376175446829224864407590239431948296583736732681810296479639845052069675414099635620273839486967932581953891415613898077102454890904348005105572876393916127110387123174928134742062156131413659458306947971746368047531755127881688491028970387156894277796501176447783517617046116846669087619127405487181732723448484180096751970932114780639629245375560652222679456393449506419624184549560322087064711700846251345586925800122691272511079157080787358355701910358229039487269890159246069265019472052002195129657641847900810553640484292390910718454440581188960134281374174895632879593706192917618358330149593981108987188232412547389069254891903607120449225342645417667830741625104238836996293545763174780802072039567242190583157112050970603802824413595164916209837950317999042508399247445285020247385292921835562330751182821404622600465606836854060931253973417847917047116449386900710281383199569302992021459035931816057288447295266073778167101465080189098405472086352016792225157697152504477920105318956623498652999185793185875470655073282587449692980213833420938230203390543963993771969388276790354515386649145765161695534732354797391038920760670973419340630152571631455573500072842928738654513092713451360953111307486162966200671545095856926297715838828739185002393540679630967575373244583682470781608064811224390137133375784512368326649136995685144236045234168164013913785698749650208663552932556996629799537785007251709778983729497569838176131318393091916787009432996651888874734009182082033765632708062186498419423106590869119932042497257401671884074207807097194516302173200270899501434416150748818108122360375999678984000652522998608648676661154795539134813412764820554649795054604850025561119138728439186049727394675209698316335726138479434896590872881713526139901184566130996266012586484937616250374727821519171917882065100011819383734684710723775377117736027499237603667236534612026277269593004192953080466092093642379926970561024400472180726337968321728584733897859504476272803602827397871213417068805352682247037485393411835465584495800489700966629184438491481395718745900558161416926546990393079097008559746061817123373260922593212450388028856464321009939904926867317915091417688620281346365760217107814509927793695157051730087946357576134330191524375068312536441913374138693323896010144878578714522333917649946090551483454815886259726987564394670265319058825581103144964727978856292646431836869884999499383498303457693229718775549227237288840260834322362622216608902154856354453019652156871810389019274253356219205741538107596939481576476208710976462573430174113655410375514953269503070960889313501572817103095193826004587663744047348856590679062819597773701391617844352100433133172258835388231047772062515528601954533910896855291645361624241899135469367221535424828325638389510559849208674585328489985847970731813749787318454892972819706802916873108180382081333326793237961245963136110946518153126099402022074631712892889073655093362458864176355548015416361516283152802443783160204946497400290137534776828266049828305017607846695572726585529331179273402315325512931022037631693150606235720857592263795395701443524258948398845847222136625089312357900945488342710267423509095254050727524640437377479978045654412575114052033422092652311653414044427486709531165597247804095956743145614784745202596313730199601522755266425869607330778081373972215600286887200829189288820087710924814599090834167607214563282820491869966635172119217955748618807578987840389425059628319991945967690440696438134464013149750499713560417686196026363731139453668754004379039208685041709603328124604225908881561209252514431034229684555614784124247711755764691358796966506602079240990331456039418250766366961081671925504460890134223410914719705000356867095695990718464299485498928912064112630612954052681645848085117876170225004624094449589359995172813376339912454971025911286802867058180362166234264099524943858241969604606336211725043489771545208384366048588648077697632692257633025539124255129523029593391584085328083450798692427375357767290305614273220382173234579648479659508022865516900812863954139853543709143794396181104203250720189479612703454065223966875109142176329456496105407851878891265251321290419490311770262200365432197312238116932629905108171188856563185074019378811079136788957408389569705643381372754221191503748069016610783772052950011874556561149919824123881110859851548141727252992064551722905627650327013966227818198562756485779301386712264849021051274467286498420916490583681301725872180907593068210307062593495591476039607144246009481078196621201042880100487919283217872891528446388155243383977308454393505438522511503262572738414130228435018893586528923814520516723013570607953727383048735871821539493461220060822478574278136906790433412905441055140382858957538814781365443762292339128056201696895390591156362657609463214753692584410083631600198292644370765500760989052436179301268773816428577893025111675559603687132114950438229023690756049274929958854862973431359101092903556176382133279482548368235129768929266267520804097194186220900469707588268927302483636586531275027492427157859099250678659817146134417490148007178472348074641737123265580216461330200492789305256595843237153905541414208304845458802439839332418974269948439806129261797411376012166660885062321030020756739663425916433429656665636818967196454184381649476571863042131697111082256076418831162384268920314764989075450068640621462004815085907556030995196683860422370708049582928090939808542863063173068475447046192059420938264000581000666419673433923953592285183501999116162207855229001122853248744983642060919801076082438417458422534448866061684144697417674551177187158263785005286219500419082476081553631426716817434582518822183077340684139225861489402399968886727962648237072460208703302281581261145529145980727807755877602817460061104613518397583956079579978113143750811508337138126070399713294026608789931210144643303606043228572060517415516509191783191785506339942352527369495394890895461780495922561836926765066269414222141582398416299206407302904079603528149581062419718803452235068746050029923099471161578008975649475127649870434897890661734057388261475889692930503454739382626049889341544830343349501477687921270100720161307305090927570817009781120759894307542078312212545304963605702327210539481438596065881436707948293880079968479654694435364296247053631645470837253891168604538427599360211262242184416524741201129198616825712385500707497762344830351052617587161532541360718677680560596617701099953866019096653962210563561453710814842820050022772475456514753656445407753395792090998949299701042772260828089806106694721391862797411732776361887802922613628061903964230026180182488484820764397659836595696712390637292173857867184935566737835716426812232281146072203370280926311114314058709324231409159727178999812864360306156137234365996457390802812812783969431451440640367047315494051435146102463604292252526499739983565511403799749962275758951788437314042121120656068258295186971940758016086206837557645167989970254427438370461675964769447033018244408099290024313568648577211199115142284777397637485065537853234654255204485036014708477728874234237290030568674618665587924313349001206225681180050708707489127498951373945251194640834378967360095066807310943006047108535269914175533159172283279913096942173753796905172980245889937926977699031001457949067634792935434875334084045096699066846669860916928132930978706819462283912450963335130243433781939132842536128341311860106832860473759257157510933424321080393338164137179751715087646684339269095123356500547934291376622300037535704327977816251908691431116327999540689782629688044629773322317727578796697693119174911516727068681499410095526460685200503640225753012675483591420023238580722209521851663351625666325892533367582990888239253505664291666959151375988854203766005962539499459667103263874861238289344170494638429276576789462634898735098197955365617768793812960026930758181780348324590077918657119662452182667614326840429420824869856567913206822095579219092508180060301953638934914005139305251124058951010417455666331129397989434344459743501488246621569563776726804724886951174696889191319905850804361027860730871991873033059319523924075479064194888321985317002520077854781275483102795214211566804396935753143362235143131369186473170732264377302371054609828338389305425385026287240501671894328417921497547003949169271431026806090380851621806305371479902127631722193685317074209489140791806583024269397825632593717326113035360334840480831895425906187427427191374794228384925882939778039832405942497446075523231839066286878193034041479028734929625278712348387472366260058423795664013087408170775038718167265201371202836780602371212787839877391048389551486819177296395924116533506934054633502387274497847617681466187128822837029444912156490391145275771255663007063842539899971975668327884763015487377093978879043287792759002586701840975984548848465110983883311217096337302203807057862280448387653940411740263785150731868704381368621411568302575444276099978193308336454734615187820289692091178187131773345146332799360993845757481958197819660894647259733229053501220383059684530768224162959093893037787860958413336096809382519606697612489436768560579437655025135876590115462699392007031744958158472955133494530249687616811702630836816700893827360334975651993471626436952240642118061053735872069243353059374500090364416791208556299630553355153311174711380395042339901440874342934156310946239852158434137342391432997381481077639520765279913078142917977969346461706686941319608601383948512668396418373289816595524359754107099193858231364371279134877430205946287590344299648943103912735107898505327006444370437444468019084196684922533295320850540685256662236181729534854246348466247770618019300165209043384947155426175181088252861836023466762715732942878485701602841161390933082817723623260038768619312804023304341940496407789994877380562997644459473802012548764975028080144208070687211921910741824176165970043076474755521365786212424051065540235836193441367888176938314017053982298980112873232970357720782642327048548973859061127894272605557946229580230506380376041071364010248901473522252925927021828298240519935748077300999340566310661369593654812823993125104845316062781514416257462048989084571367860914863933817878619733753441774358702886887995662140629741372686242402497394725929942323955441244669329666700446968850106031140602342005255070995107615214186729899631915986859818220154828869367202436468127766908923861068312949729320765623130694925488967655996144358542013339211937112286051197639277672162204177885881504419887202869764883221052471963122389565314474597541956962399068475916444962534552209587056336438324657887732859356128433098314136818445913037223121770092943500660384014361372970587486921197577933896637430310018537657747460002401321720145380928013565046481293450455389449550147429720022884035024187138654704061423779169812023002288971341819277446791375409328842596300986892722932291838107462490822332441828685197611206538836957094491372321771175990927379623856158678954521064717090077193366039825147288055102949907078881159146757262337023237159390506220230632358634876736611735568296006243631803494334007445861824853623549222708779881471374670666928548749882194196239602666727263190440946273781390083592523424241938872922677935848724665319027604840276213489819563339380153917186725829611430102701608319209393548476042941609484386441275358047355260745766434331309223580629754691515321978432581940498123740103381197511887617928575776579842462061885797904776772927272956139644201802921719771891779283895161360840387212335951657177402796169555030399743445172956020575254408370209779404190584416891110049098098714557259554992094790497217909382968456584568734992520375875180926540098213905085111593058820202808200305297479888560264152394647774884088319580845286231612356375670598050916044898178069883530495560082243806192943499202702774836454155471696593003286737249678469909351393086220537914114356462787502347789015241275407464801259963031110825331944221919362427994678063868998775254385548090340378294154502612821608951191767352509795838691611058383368681221689582468808800312546694173195544073908270189752963376791565625339493172502854731161611363744088620796839277790482058171212351188180528504188165198341334898369519754821624103946367516715983371486869601986284736987599284431520512912403889080971197877601996234380745378526393598440604213201057112839012372649879809764372575579615157982072733674741951980585817031442771560366761710918839745276999476023571827417227333571783247670929012213981330742228279817601297082107478374229542983908722435977015002246321600686282763687050670715830579949350361414999673345196335447824902615529154909650621209689590863285051826307966164166624712271426536175343660419276181211737147092970023563104772963692183886220928548036451684059851741822270004747850632327016883213647384722585873895949504404682269095900967668905726638272706757068920050483133224551656270829690717565661307086082182530405000298203283321282377055677114833233360995305364907829939599877864180516622535878017325568948631588126742802546791776240687955454641103727312187275982701390682907322881694455285408095468845604044290853404844386992473446787728548513166702306761949173909357741437744704325767901276529136571176645432722405298141965547628540364035955317762028971329775794878128083261076197273447248532301140586472620991466958050561373566083567507020250187227908572272831664022303137809141867469433975922321707788716091520946155129388130048220589237424441810317702513998843393245054038974063615950453841269674476189820103002884725011702106229834596591501939451918315874821905186890532765141906107984823974770610209881310625000863505153209729150089663638756905433416943031261455340442842165865877458119101214442623787155209328065905211071058149669583456115415023889185756827551590497386423327704344063393683936354566682774192905305445946390674378808396230341263866889037435431328848667645379713972933666459679181865004775747213233798625214870294261981067707964959873331161097465866972286296084628180708727065865566839104133853180140581447590982331430695794614830615600068483686708125641254544386691366991912154214084258794914676836701992557152493575210364098785603229810903243492045950809172992284044106613035949572238034800261187118364376880867830689034555132696386289671473254132771174211037514621870910576487142420319830547114619162596460810574956650013200312040862381381334912343264997417940349536957043721957544584606897971283081512268369679101233651050093882628794166348334479726511035264992099711120541976626894433424722800379300777184605459104875736375024774389304817257966015565225209499059475809538932845896242182279265877592618352893872942065880260439309343367850897610045838974642092210510807964728320835427217094402022151295978098457922671317928953549223346440052410407661346720237869064376498108974674398498704808053929885397149050586507873647564545362446584606703816684656038319683267352514424018423850497680470502942093260857689786448581999677122996326003446697281086725193089350305547096381503395328648434097069419134633989800115127803431639489386514363038323889913056627785819195939304740371476705423872389915333540150576264281976907579705337240474449357048363685957046332010803252707364995854767417213907534738893947721156290910394095431581238131092707752953546093160669851226336022485513286376136208344514988514296164522833980706539488841829452943502582344193303942409740336383096933603223645209010053564977982393252906869193690682630953111533721962625317230721361262031160549044063833020932353229105885836990514450259623380156026129585299774341882702967441114855445120766433492030848694291034819052610685222234650803723144092559693058232299481211298095915242902140913603233504025282990333728585562174723576727233589448906634253150371791082812249225851895232612217566014469069983846503322017998736237046490406057025648622583550644976474512686245767339665046319422307515025306106433793771967791644354258853821132676024063185438520700955527038954544776762136754970768342015473773879892294096993542353737974369610142521002780792739332534622704554245153576144591567384193611580883031455388492429501415146810378596570280058708678622915615277464796973935104568692719887305013202751055729795591023033677848421563960862535297693571283341488598672213513872215380206244936480612503497093397275449740470342978444447594615181727148419694030600491874660456813795192427112082454153587460002902652261138637379098445631399588680623436679413227217554873360859293662209299012706074313854416812673022647189161798200111336440729107456343101318350308610595233897268317578380256244433243424723874704356549204693275671111506881712945888393301004497009394035134776702449433382828401608471313854909994556237136621918585915636468963857077657118789116489253900129516989528147000308566663429571624832764841231132842741075429480351147941080415519111523991176361257778653429343287038286493887886705709366251152593811933265114942152797343824184608783873758155114371347294694936310107716805078292414603091133170526511004945161192346976590346688350279055038427687598843446947604632796326784704614495689973151942248354819916752489037109992235545232765858623548173813808376516533845330434091627430639521170595517153221356447741839327101299939651979373310122631232851368918609935593004114767468411337976029575461701273834505334556370727052883487978661644090261201536794877192793752129252367120126627321108763110651448490620389430815988515539714858205869587190661517014748750450340665996601490154849586975087313821974177180744315124869267509728880651990274921981837283948993184650162008163270788015350538895621626263692445413096159156680070320744542401235700859485697510764961004826702816937483853290594621727681479743599991874711631254664055951796738729854804621433543629710838663960085856333179755333286536483622750928059509257619558575523248221223989040280008858520135433988754405112571010068380662740849255430719501224228005412143615594452141729587170746490766909825048160678408816802143824956193526845746024350944695928379538562015424605494506558003563882170902502061136090970448143653054900478040232972180663962476736534725085152723965664122426670964416494626796137084894125516476735445872552419558011679614544339808202699002862132745475760978320600419244715835894133374114915101216261658182196823351439811383431123788826545353333990069124224780532779954644323036106492511525104326525155420549371009295108688184549830410883080962976526508742460123574552557848915148783868796923342084423764558182741364786753870703041950360425101635499821752735425442219589009200871013023023264038103962717949837843267790487051237724184273596069177539963816371467275512692436635710061404582044818591414192827454968327540410309051202102673840510085294194459488987096216076186865011051859132962917070372495798559518670638945697542743772422305962239084213740080460032058755166347799234230393254902228279189084473094502078797640119161278922941328174004676763797921406933783651885139430300854929455569112428828412582230602703415300540712101775790047356351546578892523136614997717082800891492873064286100654244315672040118948985509048892005415321578357083058273532895425066435436455613310205511649708460901514753275458022527228703089236521460093818613323984747510430858071609536690913424848939475795565791092280986190280250408653600935290941299368731126310245405219762046928286393211524980696385372153590092065702091859656019958756162874780261334030521335251652703747219284102556203645229521058839172841737141819807557141318085286725874340103321160815260289429235233339335042505615982265802117537392049779051404119387522140096800895439517068724741550948367478014546285409767784966703702341265310524217059034032449591541905402159577190207105010224273922584539577639285517728988455474396369879010256682339864197237990408667383398514287150182523562735330225213371867807635261710148985227194573193748915331342236785560726907055847789328747743261817921516359121059659044684426070092513070266205475963669429648565156545852948086460514432355105533468895333877715518955641846688793914139615627277495826693968654875720595702551612715615272952989239638434812685043452945111422810645406662407608842507426085862314863659763839187061652727999790073967336119319749105107555040943790242907110790122514697688510108296242860509034698564502070917541244770483025491367703167379109469737976849574995866523619200801240022054754563858757611206769760130920102174831753302380147144762020252375584724660531705072838652247294728921531464634053668928381557145366460288296080381971615479878528858590532251957389746654453832185121521434405718238513983804680796878253442616637664432905269194067022013701166868182045503919723414731093323673282272345575456679969831233455690347626962297295756242152585429193983589257668503105423880932844079057321446002920626370382128490518668972460615548156499213188509345959053903778523604853911324670144370165255451917969713447575263427366922177346837695044377787687605997425733380395192019458806410496446092667434094888449153480626032414296443265839026147408149684649752613886655169267809240526725736783941836285338383380960581576416948246081089153756691319967092087326991440867911159865162862786124600355809504524732292386818808442533858539133311199752963703653962068391909977268042537880842173936655450618072655447762365181680677717440717080296962775901117738981490433211581809270485884391931740321203558933343684869590565945885825606298158014398248957740861499429786569610497668153245591881594157498299269233437895139172704434689248772860597607381646826905791512156326337580877190779158923804123167423708928453709298983779832057467783745633870755559583229377442169406555043872617081378182819768004691301973057252653974060442935495488682997349301488585122495956565359109696264540152096061964207880339605896003745040793627368067900048939713508668201913726325096739641973474226225981637886421570648794329650110485171196463172461644009148038494312813535599375102210707461045772360501577727897728450052026360795973658682306835453365017780765727910769188997054250290819364555922111425903175145936941285407357436361104792750519458764498950973807493367808908445625516083746543765118216560843711346101621058851399658560488778790879234496132386605162192748172813126088255574696138293619553569176568843359129250997696342099646095580429751598732542968926219431090962621083843930600877777099365275500575541075475585581342886702687461370598949936426298044540651023612402562140847668910032446788987591718297245454654845204123964868573418814977593479138550752076711377637335529657183452622367406439904382430496182147562969440600900811216147648272722213883113160067538045040364836637676942510456084197872846513521911074456514509517918441136390179252459456211726942795492701612489903721324176114909808123582352325789326086152052039145586435386193491420385428516060201741429969910997088262603268497146600690202862139470492069487018838179756972713591477152574506233679541786081404583063413474154003246186696946435799264834634559612326665624396662960141916787904246221874029792006547755580837892366116120365709534928370880821674401969138484175590109704166850730446954377375034170074005496637022567809220963377080476786449367789770424345078007215617460157183127947276906571732686839491469949891892529717658472824547410337183515345033993258742393468387151711369063367674663570522224313655751431245668396651315477827867427318529295876110465797247187433685144648739918951272816729573158966655203388119725710421957223914455707222511246499964551781524652737458747735422423832497844231221628648083986754255855164213374800746912560038510104924773631623408906402550382062899369862417040891714395630473952939428247394991482894414184421724263993639562561321910533505840843716143863900086445045399030979228314252347558670563472484854559413557345237070130782917203921579562593665613702792657975183560991831859486079806596509720346601918307921296480497893386352444421432675690755318625244901664283514933532248653603682450000524537198148092795018859079043896321632079916823241762871334505474662685466317781844897178201164514164418779712579387749197903623283533959711374161229206415096134684359607762881851313947937892598479859467204732310811181489629045886918955602148639572956296857985740694115119345197856371124671250040305506704797581078370772870622766664573933415556674493888417957268537550179284022705227452814002383816971437473189982670083335620964540552451423329738370519214646274295021315108080533265524385319858966504379926212887907650971293921037510441324089707694331532169861957129834162627263918738443877537766474378700679313191253054947023853378557854331166250695489700684706492870274718248599876600958726468260641745883322037286755047899664918928212255272202012457200283734855265778436379574148513412270236865085026267961021897783231208550145796395697988255811757824587296653774362281413309287884491235419941976046419964220538257744866863757103358873866611291889649641299781015204274412672357964117920024953576088630745344978724018340545304063893885147919718987148119986189711315381212682880766857494661176514624573334443352494124425690344970097551043351962368007723848032074312874593360467664947989548500977598910876378509917509121201404670036363245860313397764299458902323502156638011266832141462109456003990066214619146427338642874674542413061919135206553018046031328126063132526234563564721046297582171403947541462411300792738035188370986675415967043813711754963935282990729546231028602176117040501464099325861720129150526118968074739924541478006413120134602669627993380990096243727675539969516774772986147866683986218324818116457150235642591605294245885698821635004441972168887944267560703185058218521947651810835210857719592945018654572096400255268240212539663039930560316691596188796726951514588051211139130805057946685434665237820804090144421985793912687493146315855935372478529550924412309587004684042402886730868538872198682333503260511566663714438051720368330158450342181307554283521927656703569030146326723436094462112519621283337636338616026764787840581936951531843567729126970597231725606374734989321807653101158358665391539851643553939360413612763148376224329197834778459036546515807730213344387488981073012463519706016121489960891846208145635345565987751022243927617021975557598901341288049185200895831860331491803283028246714544333221358305555982643554495531153927857744471276775654550989717454380734603904808899687217588358903730802176139408432205360737894450963922219948787988395012397374566989544707762601892544321327155678132541591107419873040164703994531785702581140857599050530223519147025402286423054616096889678417107975427710953562720519275381759924485670387296022320101871570893119837700418228539366445558895749504639872019649871563338901093962077191529461140931295346341451404254376485124264279452757345799720339349570665746791069638688278043974006978128778366569703709829179500543012885733924088918375516053222138992149701528047370453209928500703555604022158968809592522276017921970972590928658795119203691217689503872826835143933531867815343698681573290974745620233456648471595616016317783441088288800388953289889683365318834264303018451306605274591443277821128009084836960054523544335186922894539378309015934635144507988269496635390032017680669979585625322021072064262035855233423863276938136446035851340388376457505678395316805926583849717645557381531379956737127636973122228878713389407317166587544000944613956273904153596486689661972752985159462285068300537053307726173273487732815066326191159824891431024313637839324987240674817934155278175676131756086558287425607862249909809491337365639932924159262945276299896504714966535371367517972121316181385578482723842200654413537593018164146469052341037471234097648063363360428571201452695369542986140096869975294232840908045396230522103020134266274903719607408442101002727265369770938853866026607630124440195401373169602242090531042207479537716945368877053182466844331706146046325463149107282360392889689467685229745512230593622629101525623266993268004781030514990749053454871180098588954040321733101429615524252859512756922134380600149701671866913498283619273995268146309828954635049665654936250086703965650329847623944880964182295695646143577389395947784067169641168641397601946375841793251096596942767893119594836703007418642228899584475396103097151292215601553527798436552804614944649494724392032984639096053496479656130162266764455023959234245106462865814025882686039693701441216239015944876862954031983106889467772059218515063542772313486851724806250769830620206397487217801551564322518761482610378615442336236990944594434812575415641451871451189426477113331286743186281429523953581058206282431259591232490927296805299436683165170858451489376750370029471919703427932068204768645405480370277510643919134926497837434782740472074632151317124206261845077237661084243556952210369235517399419331836795673990548001981690500538105108926933149987020465356562376930558847188862292930059412437263810235097786713575245148379662539494978096669183196833712015184948107856457678475418901689950170643474578337240417333074596840863640277164352903055094731212869442288130760063480039458919346416574718876072071497403042777376587064736819263110685837608123151172864954521014652893217798887889591337210813731061765199892564790417129888337193979305713296351021415502446997947065330717035446066855485670168381041962263848732684368509381462075748153084358615916481252097969615893374958261134758364755083843479418377868931886822699196420988438503874180121811306385347773583219300688425536815265548844861363286958099595430535010735920428404521451753503336983714030779249345768997807624840186358274755166503704965649026885409408312930879514433245191060807269423268480344449119454202117834880009032867071472218321133085277927836694811037635301429485239673007577156855518366384527415165435045108802020955048715246437675052031601349176633045940950330252339212690159954961979561270803669821442537364863778430861544874227278014108559246510711888669325936089591588471852549131505026241298705235606970354582277903379232234839204047332006982202288643617039491512885011725807260667209901183857216008406182448273347419469283627208274141218712498364988652200938779994750866996681952059904713375580342894143046290153670672719826248948675590779094687619760236609195626594481161894296043815369565206823481645678138679558476214811039509654187810060530304746778973180126455236921976667333721607786481852361683614979900183252789300484898362940635194348722552005445746596896320949661200204360051981295315973218843633413303946321010602465643833575551575282128614292639727192989133551751175430574553336947906362165674908833134979755971410735304334446358663360409295121671737743269629718237950186136588696933201336720915855342758479119024355894531208366426011418846965346783416595857948255616030130456553575977315561891620304336612640687304178926314236084463297582423073477818794172493098892480448217262233523786429310181258720785565818304484719804493495505863470666707865748810249342524364302750241134816250222608491701549638363685364772384154308924657004773661414392194124364476695666487384079875045407485931105561437591017707854348975502675838659878405412761253537307787800201445713100663199625232558475393210855650286907220679832494290547071537521382589138235735034486068949156978544099859437495524705303110797463334687642141139153924983007613221587355942738519105278468423099278531559568622827420364823460221486664669884591664691174273992677539257741763563756345276353002344515643928232472518259904437783097335496140640360178957009012691862247276323938505897861463895262524420995233350217176588591810762127093828493024331927374753512710406838624595453070365869967643736018942531469513465294086231221955889880702776358429789025764686387754620300490301249642935128676627512262925572705746727664588192064893720752203667220611387021150306116923764295615346736792123677408247721602282394287141168453208216772426711172972944441729179900311036577652677176288782881011968793781201715360967625814671428976127463085116208024427195955903433216025471086780057293586238006070087998399133214323643426892296501491454932835656786416673728590635584402791217581240947945177151042109763365315532750205421717692961139235217473076299102733470427459039174012032401188248754064447075870893185172446341087129252463948374192876529782714941980256133182338014455379765118700756395033180596252456478001761577996989269967600852415284258827226681585585092740713513474109235329848431142999843520731425246550574173967157747028173491854428068835591077496815507292765524388248650717756205672273829736472461142662408844902188984223786457252436647752697845736441171934145325255260174555584810561663648916152865427410891407175545857027269650943431573156474372103784539412005684581750672000507442079419432548483093578227488508158661911590827242946313666283323221916799522179586042656984569631860175294517175066458847496707194421392493054914506966498304726193500573073930106556051241547418761182929035494663596503329889596647975721045484675466903535895033841089868093563775253549124981934349956538564845431537514614316585722761888364516155303745551582466904725730118288655337268433781262682592282484099392647389959403235388054655729363505199128055376850896731986062792465878305355535784643605182772659666620593136156598974001365611794451240319949226002260880678690896534959504216775175311794122873794640240478239809829991446060352831888467507719868456569608715789716811889029631116478411988634059808397916734646889072448648286347418801224740996431158137939929124512938541085505906442662719228164161062047765349929131802968227940375256412437309018649586925583882264151309634734468252271980547901816371425593453315819076267277869013295770226731602668831395165360626097513556047746469982277601595256372881765159933144860591987986851695213304235876420602486881711396170454397203990556108530595691530833035458739943147209263677407180440111426207258302996251437236327939818444298858707891832041304618748969339909133995706831636500844309107950185895615121348856769098598896864730276130700613936733603497170906438716308045856564240129422480954590170717161346357198193124664944853992636636421088406226263819928653126442471763779575067198097561465561263631154847887802493482346181468502716058185550171021897644336206853107275233785000221532243320979758425872861892010877794046982907479636717126805390904103929178435199113374603992928937808212730942019083137164023815221715878958405014622318856556063335178598182489702562630321353157258481349863352429560701299612765352603632474864058932302906622729218605300620975163259678748661037888974877934148881430217182802594059113976155414412547419474492409966844076025502503390071386491267207560317444643340870216490051408209398338743202000321877936893222138032952464001859631142039890134601495714208250199037460776441249973903977422129643091914121624075307924525311358824043982687846934416820562292257031562574049571626776402632325643456263906737406885070505764288304347156230978430623419847188353602080628487397801199575894031693097563619353275118918705811559339798204827050325071435126392720973538743631845910539155645368478164102372166611761756766722477165469487494485942099447584510558083803086659679792442358103558747813094680071179664256433352916807864050092840519241922285298529220923804775297028949289010609768930306153124552520802163553335902716429820338573767962867668327838286582521835680520265358323523885119281668315767331217348823619359739306118565137508051738749606793733943540781634809283993725730400149194455871681021802237485056413043055075864033007141916631503056100038369086706815786457988767171731445524235327499914526267296105823043875446395268853513589555264616368058180584993013460721171233079973243976292881039896697913771819757088685888461382195511720147256176907839251552382068741718161433518921116097124560337051979754116911516474013605039833349525120827854516857247669824999851812232876421823342432350189496476448904948727286873349150513260971587234538245104361629337270587698136777695462575825481121574323905364106112551475341259970502165271322245340429712044307564600335941549596758910430872637586919131872975917291954467914949868453917747654900115147870863162488595300424655483433942377464239987409948049455434392879972871183177440133154900018053848273587842522426254177316472385965514002386750339429347850050553301525597844546210272681573204062319917074852685620191878050630530740424604499399894775871569789294123017933769180410973818117284585351979618566411849607245509593086153837225759310890304608700995052379115438653263811373818590362992166795830189924171779135332806783445171320420465389154270494240976308919232230295039421881202481100701747059379149097541424022872896316296619892753552561840045840720975126336865647456865703962638328715896445397085785081865048566903766924290254793184248853728771607940789472370522201472526392925082517125163267537298454036388575993769058501703525817589206928560795929686356789192431622547686493611210334033255050547776230749246975817750086544127052090192646730980367375312100200388641025594681078733218203335649911521056392721439794103554817570078344826058148508201985224849584230544171807647863160864324676027558983297583053352051467363310676228079295284228342060137109243592815775186364948596779070738743589517763101855384163176763429117982329344715685455586434672571892769157104537228028521964483147805729430825589305259336921709301776815149901628314790211501193134169139277347477511024137753281687954715188916623282570925574850789510951638949624126596563541636802886626237961121411782363976198262194414712101480709598288819897874461178436129953696328065462588337651437913984659812352406053812557299640916113691632451031944659845421936535815419614288115834465074033032075408751408665479910639492369083772750811723367355388103218023011189372536116356282461208378505874495188855452872562913058447723138936386078806419683121836369273089572033709085600887697895702566785821997619833971236588025358678287350588037268993063902511938481671265371329081377036035059247086635354885322407099557473059459989062537613988757432713675933570851667048934777603263553584269570099644570437834570301536855138976984868496470328718646930646805494757957695368812922284124749245322573507698541240623760898299213687064300520092180136854956006734553049868689323609352016378581528835931046175192216021333562705704104709806557080243757805545178943537957768486361547266395540904439615671848818480613299667698324712985920424244684027803546361743267063246242612001698207427474667731245899935870712160104155273783045370436281186253431977014683246024076916336776462535659242274863284227035990250083684328283776191487830456361161955694427987443297295364305186962203651074898966409220171589121807924081054893903502086860605971013244997148413774556052621783712549737879905638318435498896036249053077275345326069012507350342935920399094742192351445776747475906028509177062164679169221630919331444716958311250987526347150553222879339752667893025839239474882371564838621725082995794726083738727185882813855705265077501451232279360649966907328493634702870524430507626426617349022982027530489726220650750279068827087573760447218273671732123228572120782535865222470753153943838055803137704270599123335107379775299910899052931614050380526077510982755494273366030408068694096194675910533312498431841575761884058016057452360093926814471612423649099438061455338249904283767409533367983954652988973475986749027444629702236959534345650562723978448289799291370738217805997798687476657233678210275889769409158431605285392667522506256949345278255609799957344126712403305438762752668027367714806838380666792004569336755832458714339358013021276867152513182909825864859018601031173983236022417974035694951311054478595763988346475357988154124294480713389987849870851535820157819176539220309180654532610667827845853346462517149236953719481602882618916583842193911381696380920550151809647869682639133755062427627043301719026476132338773212037542130743360237070929708980752380547906493982669832464840448999601498859589893370974876089679559619110965368005709087421403755593328129562027464873857595087210379373107444970451375256701129674088227892405838757786250935631003248796253095038921140657971929936386993479434237498057159468391815659914741523912330581087528906868364796961586019268419852544771051271680965944763835509842262446351324777374577222777256796980695646383506995121015794497294233082230149578411589432652988184260620709888938867011303795821193994790048751318733434203819007258085559009038059912349904252075733855432521329916032139733674765685258923686863981082214891909038709669984132954441369085046021036439845680121021889966894704063278088751577226509668709029069128992166190785293896082608536948635131519024336358874311713775301490450681848246993243136839392902789501519289600838964593078473724215239274262068588535883645174065606341074488577111425346998412870023477226920843887761452804555875843537877293862270400001153929273336791611035589999657359177042831043380619389762951219219804261109601580465997650353203679457260246512541414954572215890199176326952693090134813660215602505178927400171063778215205967493498803286571839596274735745777617285008900840045341885734688779489722893001709311986648877747730221680220994645175992177218672647680422306156591742145946558474965819060154391709456344059038942601432165745955951038744801805885982867592054248153037613986550986555381085033438190506240690881640478949466134170270308992514621207543997277646816469067333711201982378510105079278200912888563295440136148964127532745712026818568456148901998849586451248362669208607234524954149106793367997059169142542885992943870989583312772539056219724227705204744975590922992000164989875307658970129448382691721909659355983824825981953831962782194161305507871028420125215234277619278831490196188645899007810083512067099171919627626397087775578354120811328756071437598301267663413121942074558585291403482556776311640800211941647810320082425950160632930024667017845556632898885630534958382518790555734453350857033162830363458159597894841883877526604660028022968921341017506193876209427462020688541040698877296113197927982234056090495488838591491317665502020010021983383474644143455218262303111572152773130715627119913266331230063305189662007498269505323857726086180784845332007477383694919566948847184542557401042876083990556217915608589782154884579748396492599628343942782433923599070701835532229352148223884962239370238913414796354486789062293438793606760236015122824096879988161465139660461338283908367605497345237270429837677124287214703668500186077978694408667046884214264519621061695159884155316171914404807164510366078461414394103319384301925623400328303469993394555646938746537349321833850346918368194965443407248446542312849231662551992341418114440237832365393309283700234077592138412199058608536581542371948426760167688908339693096445557741644533961801922562122903364732673725575645751585352296136948010048309048860740820640680205211017379023267419162931356198385392067847428303523187331378903585851043495571624489436577518309272762723302398664232478418929652993130443966612909454533199602251280033380222034446283121915664885986225567974095779022810118781856900598536452682074246353457811645054555897784641397356669354110629759834575111121192793146662307015846774672166644036717082422796880013091445386633950743576937571745272367985253952299308475552760886768645635136053469717947583917013323739877802260249555970982308098707097083436060258910480111652252923539027086097052682589589063732559775652102795499365185086188475459947046131322258201641683013903266973670124945625159942045942460780920465018621074483453297388813309677151147321958735976990818995313972889945567045850278280709600397196957237524991055011946221013130124350837040698795017407432258362790906369787856350616491186698812841745495517807893460042295999468925923960749812090683147571978378338019119739335148213740226587989909551453757527214092684687139588569198348415894229478274957169365002286695358267292262210499181036301675586741936362931056954496700007225819811563748356317053440829432925781537060826303716294026821759032318205826479685297101583206631101383096945391619769099314621779338769488038963050528124631558168637470491247794792508995765014155942430013878159801618770919399541332750919659805472061148048652171010569714782808558871677299393490884254076872793396111627927022962137171007269637775352539121335703341492666276441747122554596400426544188167733958568271145651599230986841122459080918458742330442267830983784331249156145629393609906289648048049721624284348187610452214489695154976566464697524444981122223779404476030123127805877246404604699169684877925763329194132941619253462711196839316555276356460920053620338391634580602191695622865767656295530388779101320984061266158470653248786576901561774917670808118412621736239052509488107088640025905804285836803371773203748699128940164430752524089174359927677883505762201924941432490473977826557973828525211156101191039797575430844590128520782280828862156801879227020068057051418314070741717003754759149363490807256863961433734146865929101584484385089439680719862361930356319758562604501842294228238120446185507234198113523902920639938979393740637741956422388126415520038159017854672270409839706300010345535872852039046895852282116559765972365046313738135968443784025200305658157171168324026245001522375977475706382139151965717994541739252406734178240178479334508904916803633417258112128752524590493358434132099383375250554868949110932375439073890636942721473705200695782576241193521661010720866583121956191412804373292206405505501831911145177383784538996313404127951145747725242148654730671362568253933670183570339023971112280904745268056666385803232378025340368622755595441094667250915842293772194528621029292791322524382895414840025591309217486430726584252725966610186627729780871227710237056136654417736649029400974014011965056494086012382200077315653373578406421134540053700774429944355161229458060538047961524012617946862643303852555615138007166269264274710706241038797709325487667682008797637696579290001987933083411765148674629046731067153310067767750751158144390350430219129598219795914392939501819728705939921387817033819738771905264663463918885365630475778217582507074389520249638269901205205616578376536010277124953492877977929438029352071210692552170805896130631245169322348407651624526915205030838691413161151419820724064237648212281612769239297472155569254355303016305660148134477732956737533597630113290554522722019345577155700722670211422341809292873825843124006909792725255272285210812930279029326434203374215170637456423144201486973242726049694396286629244709773230804154199536548426564686963451745026575796290607721909588236072147887801585106564121221740499324032863048756018009356442116189740022548444715816964043009108062064501342603769241975894530669235949425540698078190476992727582546524437401052357306170135910745497130622515953286471118501901519350014527481248924374936927152157383279873930221492087552554580750622851722890001746278558960958987873224495191535094259387840572590955434306968587919640558425912808073825451514002152645749895737779380363924304145722613424573097940574613887551402019473816118995928165031455191022230441448620164545861864657351834341121241393680945051884022146742446954048478069928230324140425152838925665895746611553040628297177489037274983518240446107362118630451875527015018197259948292276570529657148590596227757995522234985174904785013252763535029167782129719071415977699773820296367408064690183112798402998386303438412844026495525853268521476687524239642058539854909587373574967805625036283095184389323267108612606060991382026542643949200254781470717291816929575691035345991254852910548252774711981709898417908822907040998992975650566008689793633580855877751107865925372993611205229471697888301851717208685990184846268479300671458858381081052704932871214120515045605090890764291085206575972376797761553306356368707233393201100873632747818880936167641456794052152152272914310565713505648323287307169963957092835534525098186217915077100438063542184981387345017099827350581821900386301086364840744176228011713974208088936577221180409328275156239748841739952347022786893085261175051841712736376084465971063954905058387957969886250965335957290625099666455770102017691855381509588853240917050206960684273318630471079018577913712712844128347139498908963189844269449769787874078221752842698040062534246646544408967153440204478710622980932527388759246167734917743682915007188446621206079727094423307380398006569514071211884361456799207152311584227757677912987047649748288180256434979221841815385244015865913894889081877628743809799445068604622269282717489686609001065577877892743695006770107027162451003492996873245755160086053979277865978103176975372322106500700435024098147979309068188009027775290716355118059155241104262083945191963922014600279862818043017349896833361826214676325145097402737556993912096095181079512328003661539081820044337541774551572410504055907316477481354156478990209621197241620772827745434991280543065820349842588075738109983122873047468558158367915126133493001208776455924503471542205230160979345686480872845630259232662991375054782309921463955595984714781146202242658927215291564087580131748233009579024308090351645162416721029445128100568195893855514418081985341424867351453737572528896682824835494868365256550356296772089721199959793134518156986215576149552149491854433122394032489437650221994300713259863352339757544532086303982423927490306682681394416010289395781574232384652394404083562730481596574065275047468232615029712230546804872403179474934498147646647028593378399813342677765505109523762524956535310773930895490842420322018616514081496033269659303832382211770290409339223309187587487995518631039659940765704535046076827062979979105100005624007509556525219619273645377674252974787155385452946038714873840178014889359458218138158212623299164851980783442019090424216812232602081896850008692759011274742942548071759988900001072436411595839656619371024247095041487831005611171306831709575267995604817305349902131527619396305688426962708738917672460683772603305526529392746952193080203779659869917718615046179599654372103474226851461565130597462246766156081235249527738287536394600364365055088231241034029452307262147206372357021702835633226665779211536043139195239406278685243109423585125238559241765604199353123603271229283739343198034867255356030901948533500901246130506571289312315944773996745276817069843271261007491277206902546614518838327882634026803818041993766430325397818712072026871465845098287787539199747577633956089673471255262122087726012425097623351505583429679466623335703125786064924796434213919164793818908611134584005868918977967014510241068788829177584298007257091804852192836489336958699786128614314482528884030141497872074083768946724308138431995811825742681687779911325860577070290106101834952713047606371933645178281953701158818147002455689016741170464009387323543258136885834699015599831537429303759735636848727152463796478155726944864344051415098834131375570003040369195458038457715205816009217494077135560736219662776438346881376678464793343900288702460337454888223530862867385727479184623817185246408759932232380055690300570222874455198360419739533378701321818008963983706825538906020133094017480239184076586502596047302809425032646695344367025311505802220621108490177528403936853901547485937468058318769092029986617716077470955807812010909880674622443716996145927283932791392724954876070577219064891196430419381055820788578880866049011084625173545588355460040977036675343332805613694961024643163821491286212013825726455252711234669840778822662813103290974293276902652791950109819480434255549564759985331826502885243932825403036285366411631485320492702867228302905900475035537672074016576836075701681176994475233530400710049861753694839440877488700211331908344466281216814819129892788697461585546471520517628649567420357070426868253485913312677007555567049710630992995891813817055882185430251524328671907045114685608129089518741669227634145201259190769445579010667081296250537154783765117002348184476271145649718475018278126604773346584830100594873824975132577871934756574856709656074902144791494555761380467126663367737919844912873042080727793660996244800979663729269537795143959139650699810565961451832687663030096762293193020210619152518192787940479658315339435000828715336518860089690980360441640181407411327334252701539066468820139395724978746889260517466549782904386132751820863722923552707063953824399680107373062603130163252375073325982011115781381014920473849990305892416579643951531371804074742882598522857708893057975313180323461039465216727048314208095305957295004907172758021274261053461075120612162384014285185852518776917049349513546972130586916004351841836240225488218429623954391001330416698737352197727472846899291811652330802869035283805400004504164066882800973254901201988480210615662894928152503981681128495501850946008436149983892630338522484508129217280573206449838438106309969905589752989276482071415940613544594547121488491670328204813617137398078444969618651765169627678329623297495893944672145032114867244766679277449131697199744040595877923202599623157783684845734034055700673692099224981649454992545545202966594091302810194707091766862055687123273128198614514785005927766439906460385692165229823915261839809237791704000732807153707131239238441070291992182916682357390792059194034443777990701027679308091963541869214315626094509816758357343298832210272055460140527039779829290126506124155603887866344367135173225893237473382350338848266550889170438996948206041224979104285357256140425180689575270256844101637282307300618340369558405763774172771444139457952998876246570558085268605029897301245753427872076019738098470560419317787937088412532439290938046275395683499768564806182439399710549368474345412705352666982670774946279078318958412247434909560237722330893576828579090201822961401930619770632703923019668119404636235542947541710424511663610608368559433185937297385890471546738341325695426130090301599099036138610751573903625396787572574903081075351393587700036517941328360130196101694342150331018592220785919800529714924925744884907735840195701983409360901639196893688084650268628053143678584981344155105528310972223765854884151519651441530352569211496437005402759375937458462525696486694508575647798082020176373440789554397169346908029227183062535568692717271168930998614681691784173459529699790069351255598669234794281997178449937436938865033236118565178696623991410003137026762589776249330630666228660864494238077423512149298923024868082576078720511679764497910770764275656813303699899738324755284124959682930673067686717233519420732041449231631923859159088246636751782931163074421827893428608766404982475227938220713021722366398694989485832584251396378001586189737411683152936877208909250162652111671276361021955254759544602089954518553729888446983497387319098739222514182979719451441383539776256424564453522076662831046529499454972673176143597322280789506359558404922800036854327858731843752604658528383319254151820425832164509399507438485380318966810436528779212799396690597870470662102606012812965142044338381332757685765686651679713824103955321246023297548769498650590369021461211150449932795446478221042791854982715072343701480296657782925919510284230182825647444650498520617644721920808843050100107529810717738710703730933635251532916735215251931503737821809075662183095735721844875401988274634195780614416583958724686526705867604465399476721742554379600630575070781375309619827977458169321007913262092912702149325366002711603215676926316233853384019213756174883838765270483908986291201888829428158814756875111879794242183026027854665905634217424563139507302918065935075446530403154606025971093238414592682931375909671295096711843483137373946463785439825888680032541760620496996102901217537239144067055974473989304951212699603919523052548836516946779136211418295143504496809308023242724746214064782328518649075326065077571620564931754217990128658565624826974848227129655078977025146971863422095597779507348308296579565826138312997867228262430405690553296975798126718490916131399231877736731853048507393710318028571051259976769713656775386264681908838291615650002185597469806697202205499432872053307542060974890028769325906534382777758050058266333277271268691577887245620327627952868006900212616783473117408507142251503232859602008636408589283345536092919499324293292206533099662688263843852916815634681859211687148457363008445512848134239368617182511288423552329717341460676493867947667499509746554925248584144514747114774772598133045187364053372845401458516517637877688268430779644997230500273971483558323248859932302495478290059511492085024271875893563180989920994422661786292111363068896141417132170758880552083260872745332685931601105493490246713967217792124329641237553764081060112611518920707953095889936042194561829639404004595237932378271716553240277718562382864522028530260650262310173217446046761809446316940527852598700620499805574864933508316255351918816423384634319819940974272039068921624034161177622787258767178233912105020885737108972475391321078633654485317418574906245898807609905732275841075067943379717130444682680546792665485957074061457677551679200969381230483865239346622032925066866653182303706245889552780659231412487482194435402706906173152565451931646353968282342543953296790180862312144042840555414386243349227794316750443741980801844707174617002932922921835764876972685004176525868856524121825299739186040558057757420904050533209119721574100818167787772747086310212716157431271639328433965945064548945270412716850616865927023700768489311017505445256737278973519460181005935712922201533322855412376622289259526197857640644750189199443868346025523983306618038395417577749804022121524535093506339409219755556441385735337893790514838207606084536548155642444344628160462564490343318116792830572276582905501374309484596533048811359392499993149468538598275762114493104392203724208687953757925142703670976021031731461799236998996213960041902149187511560466330420548033497177745533633839059765518443676734718596575930316584431307567778018899930539172314007469990532249516734122639257958931800737961542427047021854320481750398305359208002858122939328135512913211919471305269516482533160455346151851924575670084654704159353536465716873739280460180702482310265662490632939980253142945379050015155964772489820374810971229560353103145303114596262573843513440872810210858222645022510868775922967893644830239020736600047464172932963827343310295960205137201877819645917046513135235693683264423385994490724096028192973733402023921669907348115180828855410329874998757531993035687333396986340978871337237983452004236745839058291696373084431497915594798332800391476105816860848717218135901300585878708679354398289494488217817723484357222587658889877320043362476400137425636105858241333659038666334373885084119146360009114347596547530993900451011876408355685858475415129105405062578553735069190019774308709541417427565768978096353738606789938724363201715154922848235327845109854335521061750461557945402138419776709925617933562117899294509367770449333100194985136173720404703108008163490858722186322029310309152527041744505230573902285095749962143501369317085232737312381963722998269213790118074431108138471913085142696868212758270956413049216283401675716376076556943478052258523887260985244962696001566697398535565403574983821719892169374987111371568880046548160232453024712030727782003759932757743339842685546769393423561063724260737342436993259724057015634205569025453239951079636519641015509810627471350652201167686123704202322471287950092440365912410500361190153706222715079792420241477411581832304146084154013267028911759765129994723794766009219326241503081883711009994342174701273030536175734602413773147975044049278231160711881395443230724331328961188079989643023924919288964091994635290660356849775522431353308536033253297714475479502777268048523131901263708353688713980630327435749787942585372919109762434816817608017588092564180396002992835637558537068473459941417831134678176991722468900448445923507055822930651209973403466216858698189707378990529627306624751309432579335368669004095353630463303518723972329028965070822719035577716307041843123551623494918748126183410962846107057216785728877112705525930926902825343991606827849736027520756647057686278422956982922293132747890254167574961682696946466422282426322301234902650895357534969478033257628344763677476584605598288386749752281968341301157538541661925389935541853271135308995963042708652949386258639589271141517269435223379616426888609140508902494970019278421834110463980346328505802239323825030999488707981102130985970333870563157078779051699757757216597994792025534836992397500406714338591372749991297333955775785104900556620096672612840041722305253127474489979645292512012291594149581899752848654065793964572914344483295341737655937586066973607204193747874234703439011133924135480208208013135156955981479030005562721636975822827008600053186808870292159004088251757138292240457844651302468114451716999995166412056896486628820878749298667200230788026075400279640894270338290325419205388241359307368755970576780010192903829243670080641955495191369734542542082312072991284387413403081220756259387601689253150632591531299455857098262749037852092910326729127322736493665926975565708105582778685906867784670394365615074147375727851095158208703420250108646026375589658933500295281364480832561866001728727478189817678520126320987985264444912194088088427225060064749614610718417306992014449403875662573970087970051983124046135924251339920203489926165354308029533721299637318061982704095007716449775209241690336385060236603255366536775416808485020603233408115615488663792085049457080422874792742207424926797977895387332210473275323863485937361448364053337584442555188939690494372671132935707305932418277744967918829986632855150687954477501750840977825006862840895385377434789345565925301988279421045158371769677384131007314597752589098041191447147422763069982403968231216525174088153553794652209737731607560470223007164355955130519701616933789450198763132395909474524394191061388091781977251998666917316752158477996197288343992975474442449463341631436066736341866308412312360863589797296359273583243702934998447640393843612241198204745051460850481304961118521997980919492822441261079496127479723161719034384080914873430851127261695212605190237268949073402036807907744364642094659217884006327018074204660343987778035210657487239052742671953003781390787081641677010697758373338801089126284374730735990816529558401363450413913749830085186800919663326414729720870751126479100527347006607549140271985940360429857722314096442804207966551919018175937032859070117808331461634068675794709708760967026786300967911745851148360020172303016753632002153279166242094421743860417197863991748111958241732329551958756559230393669566760183758275982046854747903146579969696830661516627482950735036228430858794562233335440395391859291973990455505271579127943789094892001309753821650523661461733231018995041738690651643648478338134647516035003960830873443470858015018816987597603573820534614033554664314247013643818238801322206296248726343068715144136933511828244956979864485620687250893796837907145355939255222799755596357145101830071766022531376209885947345830393196279996635552091785259074504114558887409492656327983716129234252707239816899313572542497116036926825899755530137361241023965468338036554609237412967927382854090389798406540053809389025340376625069892322710981591129568103674730949929821776777352371603909293495001389115888150436371429134356366812889836519608956179251231339926655561489433010535575434200461128736774989928011223273187185349996465891886404201705413173215807152245594637202949367783335706391734023780228180545561889268522663886900667720354573565305905917714325369020206640229655123765587402577328146966307477285431414793228108693742999091282770039987566094952900379334325861340984030426063100166323022924201573749054029971589843471334356713612804031557211894451340328447309282982016403646354959571299890182792601249097938453690146055275528638630203370327075576052749888737055932133278591985249261172990672899453985161600525082858098003641596997659010768459989667465622522625625225468684687626197082291361241495039285793293537594332086317427327253274199235885217571054588453460367875815559603346959490553094266131182786808262172462705574479316491355708942637531965238324124102286624933743565168051037782422726889719357542725285433253210597108390304625440353509053787696272412752180901800838708095311575478331998751683078418800882599896387547055024860175121187194596393494164100129249630847880254616658800500728420540074657192959771499400831195935572326729843040049851336201056601745112491243900585873472263239811052404858563001969256515850636375910737556142598584731564332625197097511730877629166011250435658026595180234680120368214465706856798278255945788118541358101155510874328962660869447259111716752777272601011497794473895245165931670873999388913210694094231093768090564055488498489166666390485625839358318332162116061053043782267981158540500070098806298686133685364965346587362443795677095070359876980638062830694741595436146005147720054240660495196989062733974772464737198885470574488831401760282798244234596693034611772148293569113634379948683043936293595897137576761040501747884859911013067164674884709222924098396105427985111344290139284397829493533083077847499837518003878397028317784687469508629671727442599795885978155070408639570820719128775414810888237914035408390842866257254053866867528144100942774910152759990983194356962470549969143423976767711591856998837256945699479056634179903860818148008722956706216922828528077557386393048113440728172264242263961322788438046986426369719483538059014687518582952184893694312025873945824602711530093804041797370229432401327996102695901963949162537480561063391027714328396324507795156317864722366238286937338975672310488764537360748996151005671828103338080511902479521817597292079058384235508190629910132375311824091578661929860453205244236598886974660280776368163522153874967577907829635131238254407164656983011927875991880160869772734091667772402346678443184527846448686340823504810544317869307209164120552022964087765060492136091334945224889990515063690528787094007258503665620111999907163022790996318682409064652056252036808084503072428458540714805487425786341080546267048153856901673537695080900529061613644605185409500387626836109307622670292131996750289787138280687943108252660587874099685562490439325578212943818078250707873178835883358386178132241589688963405023460299700800022027186472524309886900738141333064689159494329548013826994759403593833847912481400620529285996136326997147852922175247395286441237262100482675032878333100460750439668131766302215086918554111817475692105189524435226094368850647050815838302227018064695336877764167400326835577219382764607824653408820674677467783077114379022451484484215396460216931754152925476604427425660231831739132875203909155122095102445818073239798578833175233690747664010138927610144855681578425899591282462217907150463306140104508039402298043996709461711272746726776177411549302915775056123239875107345172919437447936371037864129106189271802144033775756057754113432990371512585170502975553154515970675690029402701923019402158916967608798957868647745149204078995282660839911635614061197382440100865584248842063265570403950763007276049157188970869666968373078609987428023780124846947209687355159842669739397396223247395533443133834406187452743100444619595363836652599783582305614049261660582474981549103953824149850376422637338810884745461001562134060816879701950707394578230510592856573586462779017609243527735240281035014870953783481120422736568484059238281341200927729608985430027361672794511514068317497557234011589633357076135567179339017257098523663525715625949634609700361627217878019538738916146415036069728167732450476903362891438945508327682268802928806513532170127868351374151817077369713913785176963981928453287206984457575197144741015140631926418313692623668342313719506100291853931748084095982568178591130372382246002679195111919149605835905628046747961890566093342901994120739001756639715916213950171117633987077754053910779693119441199576917042909048433279814713930658857772404585539622245125164145157549426546432643177096271949861793721330506492327198574223516614908934935180272491269725050939821411907660181864026379899428961198344126487816235144700505257182836415442917579569373143300580365722053563307935269235361198978401195666401799079875000478801749223564865767232043629420529836990038993424653528032293350866522027252750725520320365684609904582157428128314560805760946500134010632716137123241095048044801509740602750453720109019396099257563710936719319184264512889535492428879642582765096382612174357815452863572856965736586072536478269306878760463957812065459071867212582937911722765425091367651415765867434691023256928245387707140370171719453264912569668058746814363339055846249785529280634647311677922326395490845228002769811020113382580455966466553009086956088508615767784338804560177452180407138617285013691512810235009217828131901065690414560804849009523515057090739837290163304703024468378246313428907122034862583217693092384257458966940354343984034017342528718117055079160837551305639352073462958709025509706045350858025269996557141759099674232375308562286517495253150760780407138051805876407837093082879031846896933483878354664919366792837662905248492950028484453700596922169309352265096201461012272763108838050704376624928166872999216760082758954495930326855841189925073340173992285411428330191572613503544056266273879900557754994014261326416618450150118648435890105801421734910107542817316194248838844636049950505728955363924301072621813763158989866584091268237132116200828804916039665418750364152353905641396150669914191685321572241606231277289951507100371783717432479001184275700873285561525148173829031861266152506989022315575822259877956063944952772122183244149016420911779148049951188010601568607302248071192253201627495481133926198195194510008435123216680141646148562948515646331559937858917995952685595080852745866850707925771400083933538971837646026918765134958883092685984266320145565759942063477471451438639762064049985457771461637663527590283974614652433209505833284876583543647889036785941405468948809312454730339175020448124314301353383672073290794078708180126989925300314990558493068941324704550990488768128538324743996971385525632552731170088974807523026586478955513955162509787506385429901133866682759957512551166884704818419964126104033915252489402935384138036236817456106747460770884793606512096988751454126378498826392646212795691454369535219556573867599694358852114512883764442927870235996576697084477287118680494755497321059342552335532533521791806032375266536338442414424105087526486651144235682038641824425177942464491414391178731736470303265904687082907422006756360454637693628285237756493493607884410962923882380947469369938710615585400853641910576322694945082699650122630681033676429658762746578349362040916503184629532460853368722181955878832169063444641727519215731993304854931598000046388852312817618725220666599521174539290117753214089856838652538439473754591484903844558597658988368236221196485527418312396091843021615261441510260720301703303308997615390927309196198011695506367416659389317991942074506233555298811565910284205997930593996110243186722348094828442830844255220595503614436210385010578335910521688289386502836138011095390241317675466027048872044981072058384338783207039895817776339144651113574357467776862243107314028252473205182844687317763983144143164868028949488185485977441720215998927732694922853036612408572029573403768849467867704123755449178704299490553439761897104760804561408936283109271713658330915717797140239545547078256631770427843158062662057501470955928538878127880004076987929655641547718687551196353846994870375371646388631998974792560036823715586355379995228947826336427056940746038221850839036754634068618843225217955552794180493592586278628423141445305096047961543250753184940304208613702908548489869199372825715323077959628006557136188217049205438531818351063245428242217036792643528520237462514415474637349398023387570898033012229379494195528007234812884833560490472403353864795757381946636247906787103364569208672354835027263530549771112830854646441574768887936676529554409644832908362245980786241237600293987537725142548709569524149007437959994821296460822267265358113720780467210661581268066489512261362061930446837233599540234663439857585634858332978971209870264641190378163133808938399254534044600898148147381524819876727825464587915472781605524226756405632756063958981517459790057080498184095303613957937747750964543504431809124667564259204208837712160523544866757417532242733289458233920875612766539685608876540219252769593857082110657535064908018299135944068900195949018958901039732422756098402883469590527035953453826508852669425190137237475992491209740249701924527908681757035313965892343440321491505302314776658733303124770337479119561696337305749737603918559401109109727048383497087966145823082806570952856571436799935286511631759096519383249548397267457388427764897612367246120787324145159282127896817453259692059414707621554394522704063523891371785844075349824475061430713888508728290722580154008597197574452638375426263264986700159004501866177514541542283473204903817064027721830387636683044759750134636619911236471919570632523242297875053793243894582856536777052061365240912205955062947872731374008877948415893782919756839825696096811289993620191024945349165550252055131201808453888701977560951249110615092797317314936348408815107487966511179988542534958427216021085360249349836317533449202806027645418958780056589807562910588234728359492068945750359778227881237883865842319192827803173970009062434620224494448704280645118139402092028931219673571384478200654948441129925610012268876044206625428385539996742672105275163013593188204370761141312678969818417387442646054788983841102027234318285490451740769349679307033831732686622576247528472672725434648766534724588527230922046491845572759196450619085582913287441251778002312933526157523867442612369168584673293525426392478133277521161366910013881803109482982265574803193437274697044938688772601683685641939097285600429817928989435455574569159601429198517215725681922214489603133554094147376200161446153277308793241588946572164267920720217223735851794483794795407715306599639176391839578626569915683735865807939681016274552181692941528654017783227800560902872299665935340940263067463746342350266773881633093896689869937106993715340789579052383658070117401153230408465787762625736795688498193990419227471664905071495741961798117136716345046591999728793084015305970980016103629860959395850087853368297310422157307751372578459934388827376459455439668942559869503448024507637311166147546302831403783499542535693825807450763207671432797024939045229879239803342153027701979711689135284749184517954739303919985004588515394335766739471725993638099154921571150986026519093560490676009112669074063724491532680116171441866295223253166840212122115913546949087002892764791988011677396136836675674745546546716203480386006483992315592275165866285534729965675812490587763800547386823267540303323416262106050460269794598943002509293795006006589901582435823791548177639301354206673730987367646370498051780494102710864788487745951820597535993879550199997013023272642225648817699360846200721833280926283448938789159450975423459626439905098095698365802654888946647614095390177312849892115080246780558783062579195212705620551513514804890501127569751305394286123198958995555787023255088557396233734932859916186962082730313285349667792919425332847449058914538806933371194620548286636281368479101095519495701789527476533949872283074927274139830978697975230161762944458877414430952871624357646900000891117049399556035391935719501101778503099213706726511332536557889632204292299262268619691946122334993594064438283051123467015141263144179562902628343117605111282951252398837696623472228668071297611210440321041072711541680397457659187032483448303254019355971590749067547858858622161328563719675893384073448478454527352864031625460026984309673139162065653173906691550425780541015975267937010362692090168913440643255575113861686069007319514800891474390514786335560714363008432142915843324935543946024354812465890180902536822370924435283675800917381931141138543790802123511324010377768586459046003444684510710638063574983011376110879767897181900883568130790208364632075918395386933782863654000327895799391524912902572103928556851365889737085463228230499893059705158993077540477740273852012804985377995793757416850897286354810327953895976415562808176442626795003748685499091177042132442602962922197307265354990296880346749927879822739480813128727632407091197770235694855230999792089245705337002044575262393694134546155745250646189434951619180739138565503246950351684515935364620485155773637922963356878996954028703501783567923696372372588218223367302080305426230121776534455677828150836640389279747860073755123871630456785867221120159739894451947979106407590461644039896837764629009626802176383898987669198720055660943145999620739439785930913359989767869246334686134655903176840163285051195295047743630965345864494867692754444395902170605065465789268447320373365364020836938254374329562403595321868759214029697592437534038999763687837817528750011576859508125195380320963044420797206480022424632970264928917894002352218256552329066043550446242807747527751682789570323450309836652750282954648002081384629046785778570016033415060839278209270955230801938891871634178711234831514282408215792947692608784679460791958675291885764396218903977597961447242770998989479505427477562653884774280231844884389308505058727559755511152389576582274946739056524140494663343329196969719331305849388961890612326430106977480777335150686029315818897810686117527506761587079826688203203392134050792292619640799939448046306440514994296583297449463690564574323627393007364018439527391648549851727574945418587871155661576198473733951866695000166418345774457052307286500409601434924676202213241577643176790340020075316654015964673571201313625518440339406870996958802886977901903730003876494191470105985611941200460364210820898190601130038861170717324438146831308464202592993115162352525223112102284600626029615441385323221603115103072962624586185077092931537307894379041208241451884698959637107138197058039939419752461788043816762742365550400678624700168324729801588142957809718411662396281050895375155593703261766312897664159921016890224318260201148632147157482055958349877912396134301161943657222532787361536810960844419658920483277170607138053243479155688051011502039936289860521544277500470257825803553621150251582908513597831255656413585913229262068222025806176427067606596492269946763184091466909125705176204163879017467286195983201611995173305105834464843400650568521066623550562197599180736118519460616224232408227527036721161009190332528656914683650840298517459761044835369539717632895964378671668711129020252465024626491937401091472868627012321557174066654724123616791384397859586817496886552402419433545936038346740260088744611609739556353359880837719124370386766805621762283375829583132826806312242933542306045962527508173601089795343407095328094437274869325233753825463112439035672124396121985215684230502837453920311537935892811844039432818395141235031653665741539058231661116557446213862769626674028383594112341071045820255831425596639262418330245489576065707962793186623267295187895395373766226798692271634423225594851348066346365002616137286591840572511205385668045224231391531224933981153574381497856680942199594635000757325098264980537219983469629458107831669490745645562022822598467526900037449188444017935203445291922666547407873043139721186172210581233275807478963850400325216923104265320602843178767456748409528516375121621328630657539259064493775308550877431686801175847795892696595929621650607618339622926821904359929087692035160868824428004522611587860731588818281449679612035539291763582051871923080555181342020134633430611745120086498967141133230083213911092553508507121763381132475649309849792477305146586689227456496028710080761421059130870189061076986338610919510855824588437502527753002087864913800503230969119136162826164985992349590362313562991104948946069854685261439660878453025994214612203555231858699974418497248890444377589469539714361698240923484169822452876618331100538336447766570285114528425633255353044169360568071078067025954563987529078726860770213663358336959352925585867707905905889437893560287253126836581391611508539360358332431175377718037979082717761583104025343674214733211886667514478213364740439655125845748992962273214522339408397956026119252451302007807305269928533179108671889644169138999573837737270003991797211609848681089675775689045777381183004161398058013968488581466736322077629078245794043176372692490244843552309933024707590511668402189690611359075215137211939481528967730047256678646351702656569001892871649310549989757449938589730407609305236941447864550668552284043282741067213742610305941123964899399477097128854163093238293419497277735631611694600909577425557765013707495086488144102750776540428328027313288512889959039723561490305406521918192663897470398702611078342402449461118507859941764899545412049239009938300657471787691131979716900590098594220967204609761096044538529100533195556510836714416037820499379660476025943475124032038840270055146227589418173443778401339886907602013251368045061617813346150459197968305165690325538390800809786959711847975108510074956362156046643849924888410999397056252054911282020381825585014681685637985744908511075626862480224457726453244998143379766989756960105295615187228498702587521308276154408809048448487971179524318304308773998556866046577057584652427826558842075543484127976134732824561061990660461048070789761058703990140939413153465637082863748747250688182760095169194070525752786742859963782658073713668711363608816885375501630469526744436117468001209616231565284738889724963706199931385277436138065370325484703861710679579766814623326602124368493230465039976904710578100761864953934544890919034406031146909923170035114899853535170792510286255026410397249900742633416253929673568719699988121131487890023743702407434017063131125864733107710877112014005029783562259156319603169809335685905603190616419748427227576439755592264007746204414160617761487563196415094638773803881637618480023252212545717587518455397232044405832569209283955161671323175064913988466952124195623057120444546410398131294345434567554856673576479498515571515843225465200821066776748867578313590431291930389393530350843268174493804085240956165986696459936002014074129343445995184118286776438183726182526536033505029757682494431084629103348053339363282655371379939475823270610585020108470695822786678619251721836652246660020253626662738764174937564956880481062802200649708331753613336162574808834617187462355778884968612270650458763413725139689483252852778483523403733231537438736122078367922763872041836259048970126657521732153014178418070009095171195746311221446455579395255625794833048433119092194108389981967438742669334357100011781322481712734493351602605999389909427345599745975036588300368680468318833664731829727228874491453640272580072854904554158682059400755417038066214233021178634619652011646908532978387854946077986992801220028679612763187811031843963749309505890991581305159301048793643266483419713608123513221448574900325160024367026018288411084106363760981853894379600689314838103442163482433408667502973935699376994088441733087910957356906059908533692618908261719093814437917693047244538409703137286303636039806949134821832179719951065605464720086805733501826546880054487088040886964916649893877265108905578422376271180446816222735288913740426424110446702416585193883476941042324755127331339932889012637595508558846288282316154357878234683727758964358497142061790482485121949603568016849585092173088714481675487459964364054662532901984286856622370727352380062144395325475611066414938530123954922402009229644542521290507512800741181928097756041955323919194639540450504050381038044267626907733415852720654465340592367161574145748609393085157857327955222044413097822505175087191477793457784548147062819706092917627548825485987837054161918631674412544918326958849949644096657974507263044280353160229825143692210815148314700060695063430431008428751630791886308042075690862251728040909146973936115175360119927994524523802463205180095028370936974038799235019593096349404639127579549746811181994971578132623910319643012826862934097998469532983457066840598905467093148634683109265564576766483275648278685647999539399773158110177147988687508526798123378011660064537391071968671195829239152754023761774211202072485100353470756329823551849616657046603854765493152636726662798990018185553531289231885833461787060702162488105423829296101780733559955684092394401184836105703722465262809489446102043481542624903340558985026089056943439374405847923427999271419541322289893696251740883171990619088278659768034445700892522221455023696439957283228249988590001858323141671064397469464736403046359177143905392652539668119356964176395900834860493126012583907869401631801618881698649720839485711280790879046718622910546804048010786487441455266430566363931041437772046103901831208640882622352561836804403882814030667259360787144573321629031209685514189008502809259501687027619184314004291663708004300031411748971708304796548062759931834590101325743644379617158870513736678122634476161466298114457376951106413238506174497490238922690986153259196756905642801526345400834415651991304516758953523257802089558537052272993793560437954683877635564770362564807395861213106803502626967247738021566504261775921998636762551224321486501645481577473609296980631884521560236165656650879197568836484144394614754077910937396650342786142962761664586881314420439963902798301517809758832764982069131624664815049964432158368170679645147320900492012803390932644477616263706247495627384538523233651158124932923898062300586573906418163494851825914438212283729193428600508171154071410872852779469255198780399762932311965844817495296253993020475941937816403328653554126434120169517715431390657897042993014452325783137349510946688881922256556323952482699794981813266953029424746962626086330828516965577777514279617607099609067124522487691666279703245105724371537465783873578554075653883697859993872001662131872359965872375597653502293521926965373060454935304994074564342771827695441521017158102823313157731937942729236866073041218013777033360119549853419528870670009579207507029632352936549291270458084360606607473635332281450757014754300909678958500158146263689002684994523261482314205126289180290541531214123439446307568745139615998208823766265845951499619017155485159726747124236578044802875939526415381779749510139579603467426110333388128897144298993739426343669885779298282395375616217972560613310385238163968856659761403405739997746779465862222509583685828061715390022871669273286419026410685059382470743956573683174473194942805292854810261589276672364027639117686469321098623201758863747877596509845354406034196586159371129835959621428992412840413516588383985025406825418800919419797496814450435794591586478358385167323623663023994793645595825211460818545069358064634776507372376593063723888433854286392440385408843054584763803838700371693081816938802658353101938352063470352217895957384717343002681926147839287114696186101391868533288040903885440361521914025201581740241068831122496167041271412697690904639479243625187150775572570882267900815201617904438880492714227231745399025626125547952404738187491528483414636347564445587467062964525674908621745233280405777322442011015118479893873513948133376828953176490152236253869487965488894675388075400595435839586334117103809593930414292159847956708653636112526442812558324222101224235878922636992145107338225031260060374005403653868021333809296606781215599417215410621763213892213985129174300966478552917221856316231725657579381367124680110852198156217281248664879940627382387112530978095627242595581549058809450704001526232219353849913463273558125030569355632910370211105398897686854033141765938328238037871225736894985151399795050198463484619173119399204318799292925262050631731055273824971510685394809752406735867299426378112048544002622529322507147909350177256106185695690064202837079893200070413904897860021715046544349760426178088424670340622083290212464557366763240907563113423899955857465237810307839514687663171490441271595408665777758799398031885529311839941655810218229950343537052914173222101623687891736057641596130656859190780983808964833572671313568548454570554674222239247694657311957903149013785861425585842499002659037619759928390637843983518466666800093956724672238931406622707526959403081755359333704420764685783621324138690163552226742931910851246331981084895220432431674011937292255616185287586949620375960035594393062470867785087925726394676851128436891961393826279438452390117251428615766197031560451802314263699236030116666437336695909456081762844024461666852113929048365296522039884575212865358927829045613959976798444680119878158445725091678304335857483905099969706058522393567924411254012884452431212370993442284124686466843185362369184610197872465128251293336613312564594310539869061017786926751350714841064822532802277024777065428540857778528432437677489331457952642748689152100551303799997937153218581440047908145318738052484833299241815892111308388035484950672217043629113228967496797337979079846204073099658183315189609536273239558767681678473556909306565068408059458278033152491483484329719875749707002340524509658018911802024993119283110590902113224938339890830455407701813656075719075193668343176764615837753975758943761958739041037902633481181310455432113789395332067293784719022944257403679178008379797872582167116783208730844554625117598112148613299460865592653728154020816096189223453947049851244864496785573406574366755056627824242360594983362712335308450721219935812548095637338456200282485431130063647840752472698890307151503232200368008935804643109206828942510895856962813961475633503541438510221053545975463608881412526509346113742669659129976238166325173654951744710892285989120426732269429146209046064461111698117264744588498982330330299476404674579913026949869850128516814795313878088983575380302616038757514975200728943738311928214914377115283751459380981527791471000018395863509669338879843063786193749507854735476597367408870617081797636212228069697769995071688771799907205778023705177883030599321481731705443895651176227493862445026361712236581169576613780383297177439474260156924340346175995497355003047251626811443659268643000739376188792930033919193829312150993101117654297539678172128868144461818526231931815827642828131008024610537013755451249133850252387004037423690784249577411312609526527014510532477205711099266015556121138083839069893372346314291436924598750368665458848281814587615725049067134361971691861446843597017942803000396644827455451696305582234884992869280585211631163720918234542473555208923234238963760255369529006368855552236884333612692593095190026793976170261776800562331678569664476235635415917449105368883444483587379958623652819027400115836938154956913114087249764493471959540554867829139531591659954935218054511797023047166692465512643567938686064500485204336247587174316738366251630540807350756676499420442002582323510550135965020898453059502344187140231849059311150761334083837405018166907937231716467269619166710359837693240110376756214262034441616308263724656466399435337506921778913077289617006200835292551823821878053416820342110594138323512712301275233960884468759190291616447087507457514788789309381105141871232455636486274332601776519753238943096211827983401035057719094015250497518249737346762265153859982895115992688371026229680949714749524990475081802379540300594188966741897316130513261344082136539443011998638207476495486815246758583830868599265710608184059535711910306304184243975686428440518245947633245554360348060730832512603325012804055119524831948964643197444378569462826608727317166859178304965333820583035360039220749874285460354370119441269503319220279213230319306011470912852621905831688864623096883154765924942879644016145677554838122654065840322554318598612131854349712823677531984206153681682735766347202025173187692388182343584880372399939623133296895479074246570049108588279411423487878378983949716868801795987386156945486891036701743337804840344098829192531402356893181725316336359228091735643396155437415069245131769720962153790727107535843205539747122332496357813448543779339876195932399356149876311455587249033996689202790366241506348667135574217148530762685320507662157354515725258834956268459912194424757463123065210389108056556347706212063345115242567332541325267399195396098074858882679540186801081026489768451354715878230143726212500644840278747110571908393982185786434705744842604482760690140569502816225904462787323671558464320824311806313068397152186616616645576544615393206906803798226300072300040023747370403843707239295180243107018192451616092520747668515137008917293153481346464338676389589844713752856964598290914857515124215333024356397365508527999540326584770830236484203180004330606753924873114499525520901181050182082000530815662468364914885731139094121406639372527266026886207309136648070954443436308682040120076028746715904513063231047531265196892852997749431312634179229347925742653522089288512293367323926550345515319519587815182392606079987770498557567527267270781601115258097039640638392515042842583243716480614578396947047317178373546360611194317037835947459844131725941947773785030925154035397326509398149172751817901327821135212822968862187031657513035410220820573556814757419201846605756464054414089990172455310567104551558556880924901959948439423731258348508221709398770118192067870896647572550876916804739204205823590181620898606124909355337517520908224260391389171233614266639532996181616861142924325354264641818669652488256211950864830922020427076681717251549306112717544534793922229356635036506891066703146668245678288437098769567268946209519718882628203814661086319392320063516002712765160624392534496269020256398331607027715744471289920997330065067343906771059790175430709615802443519182316468800141216319958929482330766254504866106466006343692130649771369946324087821393555804898004718623782353642138544364317140874014781802281460397256277479824013045659563052946789774574120930619009767961831429202380744692191307022043883125539262085390400859593358831400487995157220404009436844186725434611200446182153710635960705928374318719963249830303054205903792789773100482728676582628487255826409013109819710476158351758873705871656514320526381749035748932281129424491604309685817177191299067927632859338562722121305119974290757480504379685008252538604412631494156852447950737736534219129253163711796859544560845880879591959707914843518138047552855192225821400922125236934247516668665598255027141711526410078275148429337774841122794041705875261547763011338033547661160330515390510323665453991142017002601913397276751795309383882037973691206240276773723775976507117291827441615989556563679531133401274024859649949246260814446861138003981701730037969723728728577454905836318573732149126998204940014313803320151429589031822294441602400677267450088142678519685369305619821599512105718424985014392928935812716723953935857431970932349502259358846018690019146687645704461021177805625230456776778675235109952219085650133452548010357524773646969159111876762759424164562518335303770851727281985077280941547986852066037950096405160435805544101406985206672291292531663109666629711133352166645621111177049200842720283886763868779349529174008676367401722568083426603566361262992461456308699016904572545098566677934944367669210245314085367344140520521131067950665778710734347554153617177630322453189091934775154713784053371404284423201192746909761154679678316863711918887455263039618837548937853161214286117829792421986579530189341408809308169622392420222371019119676222510618015569234524995762536690253115452545418781541320449457189558544165067045202305606218873130428318854287543591618900614310148796793093271074666039274013265809473441573982115147970948798924043766394428332634887619600962349929292405655983905758218287710985946879942634360420219128595635741243217397641034573684620479922404549737632945138506639040333375417247416857243818632219687326274128337397455221201446902402717580120624636672918687350581823770646837694904494987183679078259183802609813102834034677556545459534361010883939059069811350623492897729250742563880996709804054814598009502493392116485360016874481921172319198589971922747769168754588558103401276786091643163446981594379272715498154099662461283922154801193071414401449625280500641896863111682144321238131252339901225399550626923798176344531394097497179400881637109929594764193462164611360775342374858980614364069049845854405792971370518134350259791445324995587689410507745881298095468585855155394607190650997564594756174266234412980642760508765954882242801445651803200019556637994621326439470099848143220551169228651461492323932459386221318739524978921140427210898986162480658396601262059660560651891128953723272623047229710292828084770783743563625867953866339495909819620608961987520331774019731372349935416273188476090968509835785562967395119079190560050876472340342199403612745366172995291667597855798889113166348098542758388905101501958489843332941709511473545763681438594227936743573099896232615532747704901303915320134456018879955797884867082332003795674992217084675747915132146898045358302519293327828966272582922129015963018831930539146733632184306031016781213148584176283587492764015480601848331749607584255221919013854490044153750386483157489235622511370485266095863662324468990684414244583928930494173872839375743016887068305143247718666230370865465823254485511569856634365564745564443984762288484539571946226983838071105534090037883393701726771266954344741383372768107233356483346316650068606260919021928456049816900585849557158239497221300004145714502860528389073587152325564306709590771050976215667621555958303936572927018571636476394497480808540691756503765640249593215823745051199555573209286654613858160815041318537687353016897128779965159748117130574281473563205883985903973206522334031563224996272522041404227375470964103343517569600207877729334846015992943180637492583198993524343262661039143685462620633996816189978948865499574586955568296919508557440065062092043609571176495522355182083897970136733739739315549483785789259490489382135673280523303238888154966598974851605816657044263661688210919826012757335715787366044671836908963179479288646753765659012444726568265195816433590163509745451407252363230978294634453641401199499709237105646388415272303119410653037978225032894503815973346464874218695182561865454742934758684989678798751854163855900244583649994693775464815431487886933974064556224155788319545769349353397242352032478072798558461627468894895288252225910097533423754971317650249717121187993713377391870493857940931651186163962179101923539894748088338737169258443687126047091959024924577054746360947364825793036429986101543477860907861400786716374182524978924990011761388724484176810398918768145671847860747844918504871357456300055306308557349672447864138739265170493924024493264694486317325931796882203534513405981956617281140935502453608094549547311314546982627648034023779036533688204387152119264501410289887552979434288107569818650125097032073146990074612363444680031945636187229815491677997280020501482937224811063177059635224135391381111286196687135137544675248742049852873316736897210359411374235836775493885996080986565259663323044637471909261015119383973176964376799961119454564479241068897848370994749081654317386809050228468978916617231921362023621783978982750920442527830899086688709851697726864871925037365730051387765613599548171215391075274784461461337976377033003197104852595437497632892133058361875552095457238436634291511032156137412585739171851223799384767654492981934701562400698207716465904144489016136101552386653706431685468547793395181486106031615353135966689114705069375004152385534442293366663724418450488701694279487535744176683884110335826751952392687088492489816765853072393941044086155404167212012874231105499878558576122362317086790999724604168841470595211529031222512622282068319446965917943810623115403412918035096046823425855647417966204594614254628554661048217417159367959318888539643770584401767205907797295862139308202358449084770718486158673773818547590628319481915501703963761231933858741979433021090041726529246733760340351900431137003694876278178584534377948539507187879228358859802964171175054136545511252397849895805015035521199269997134449836274598975873005320126458306555746266457536542640104524965291517604012023628327937022688352269985908097712859576829809260542160097632522164247884241417471069330758307723642583008172820450298797416680846378498049405584678390537180538305607531249806102789850242695205952782215727380766811519387145797955340458910912811099401075653360384535817188530176660480139758474595903126519526804604470444289359935090774538058410687165078945594570220528257271819834933870749455420024003510222124663967453377818263478776117869423702552165380574698889432279669477927597379256154768316642955558856974161355872724705770006349754454463003771199998797403963292343708532439178882818590991781711765063997517170371657833735612811408393928667275595362748852711600773179360008696116143889688186090016275896932456664942608227335344482880944037711893078679290682416984928438536144316931310944545634566141131863969271185124207017626968172747573177726429456867112142889688566737109631467208646181680507047361833259479641808640740950193151939206011611055134102455808636454056217450846682602218904086531407873556213797300536777745311175826526778443063476099545805577524620272337308479483767163131129723617372239655468027707076396155449404143255106750278941538747274005696804969090437572208892692927661561639202326154925360060737553846130549945202819738760240019903777710659013834442937270762053172677724555132184590820710758914814647045817419706774613137331504444697853366156613360915189736966627011819675262881135668917750828447270712171822315139310137853963615368741470770411236667833912483199431276875374599003645708004028386758012935062972650719364142336636592468040881994720886456375317302768539707926731849256202128871217048779182779196604370414076070713916453653694683841398662889341476425693819085861267899068560219900695692677009032826800196841644363999863290748590925809381249264479422394477862987553302590480827197032551528380093163662831408217376530239105062736389092443171817817714007820585745365329316478580409197956474482649959915891854264357113299524158194506754795562103008274606276116775733694120196000116473487765977401005696970025613083201481947455389892070063789039541645468447437949048870079575683164576113392591347572650931392474728526147653330309600283315936389228023439523988283996648997663725967285132142762598802068051114832130066790441615113951739329769202528704030349238899005788163868076033810509356657565708734797729598843209078666611834645492373480900804072677441067204284815641996669440349575629955553867930815591013773741660729219816488153005591011737161654959263578604869457188775561882361412441507261000879938398392711764647808132349454382636540075195970840026247713344528491587895731540712224336678038693414517392743110242827305053949261599527309384162214043520779576742277192357833257041426056452135063532001856096573657617659585650084478666348546876625276613942012776331126989516545543806273722655968101063373093516657596762107029943684181278131758225315190326787145576413116521425812033423631212525870988623315405426375947651245659584833972189353543319877380678249443468956104151537931441751140635811369102970843516100169727006795370588204985838663997238151360353710522219101468278107461766606464345096560909902736275623623121443182528290260834438715182385451372654031564374788877643618560163924095606171102769103998008294332395804783889437316484629790119361950175357543219705944565921896343777304576406251547128308185690726275371763464928851541377296154131066946513339885235766202403750034487342435708705607081698525311273015530424340014855757419635332091086433044048367059382658812642948932615112218578331723993945056969043630063272696983611916241570397859416811212048011105494688815855525828414497180926589887792761621694049676880272405135908060248276725512504396144184075540282798614693432909744621755681808636383910857617751075019463933652319683389863873561615842178835451648850245129352438378989567735895479843913529155883342653028162389796533454461429830672566157400254192018600004710489548221061514907096910876502245894155241813680943025990343868550275671940981389585419580886225592214116106586521910464696584785068517679535620081147688770730489461263366905272631589464647601916280444463781017289454766801767780519041057884813932700977862831860755169987159338978912305867518743855152883230326548914463655262954757683561155072087257441454058270631502793338458629091878514408482960942270133811296268105848096716593404769386671204440055817319289331461392168015476037541033650193923410169894074937896863373181915182098584445238050027008148316085954675181827395247238442064792747495837751261294545372200150720949517377502378304284077404381162849667692920265114607624260496346071336329332192378681851473671841459912509124761935891229320486101906823787080807278596668372038512480538362702228588058469749339561242166693310236791098907409879009175620143643202891141735000030361593218047900309594641978698517635604383003120290042594076861712506899077771951998046561011520719480717879488995996685486641355900503754723832952277917204893223295346711626205752022860303320539927717151202207184282621390631467025814971180702135751762372774773639877633309457635011015850145092813425319310245178351487069598228785888533177295209553314687640299870030462486521936988331186154171595301051851207576062612013366239194581438609500054371005383528522640672481415204115486601254317446610670649258639272426482108042113468826765946890081415716738041845592402169079983935766392371686812428298114807865963113750023469253372745607519673015154954814975100929154446055550951504358250185020142119910924330607222020956690296052706425933198028548694185703385965121384603566155672614694392567615865744058495778730756256047714802251271413049907219416334665636333497986345279532805109011632296867020919747107735514264186052111945346345824816618374392158455657338121026272307867687890129007589525477083127480187636402679337077422796416322119401484078792539538632315971327702024851097619773555571877164240071375177656560793256770152023237918911004931472401252974518994146507303618673206876827642968689431002334438866580852530416221088010327029500408601043764294908150018358814294518966125428089855962253154733663558714524119222662753217990104048357569720468660300122373260358722767524321440428632796758431335744805521166257270615306372655405367884330628483294250863842844321796207962431981383632690202789369936653940602956165984617746248014989637474345621319493959765727801686365705481027749200911360671879914330104004494326687028097195930047873385661110029054595807228698779838590666693391884005809497341099846631591721319113964237472922237112617100146115175123762291982298176471392678314356302254937301365523739510199860957009908039544887495928342203469792106723516120799012520755755065701721930199630051659486217793502229569691923927698309092261737325014417132469622726663979743537088304217938093265394717667106051586336332067302368484984678870865504075494030371297115469866021960274022145770460046357155381845644485250886290597610441930973562813578383265139731175670790504238468236636198714679610822048772410224451816088096836316063409364986022016427611913015352320528056908688728335330249415195897638839990099601669400557597634727260880167307581927604313571892408950767602724118138107828643255906339186342675758243469967214200706743273325373240954729005773345990646267039447271366240011257932453923722738750623392661308345264029814643893105038109834198898062905954709058207255097903817874691065191503540671383492762831887595618485749982615532246898861822850406723095173265297537762808336877676485958117176129791617472967952688353717245720453595821325904716479297863823584008013058103185060342400956850392575734767239553211940521067311973314383690569181637399486602751335938660261979814443623625563907873211851148281317101832145275582987464726098705701349918368280338133793941504763056774370850847104347256546306771500184126018986220234266814458586259218568409234904915920478058474345129996539192289949642812437649972544904720507993883739582635085011826608228006259639207416738345398684650551387879827298968374238631555614596725302426828091548830566057210872945595573213245176841424322359861659278805886743880755710885759684260929453048050074105612922223070222922644596763286120375361193744131748076378809942343918969381697993852443608196096817024701264827058449018834685411191037495983148964161358947809721931560453026957225524823079843519148886237195534059303858217689046038298000416596805933594253962542803892839747132136221294940474837529706875779309660735005125566791457489358909245541101536236205634890817630152530172468394980137013249785526152403058000466089696584051584436835949477229869738412629953522428666616785224436309707122975129570536565063181102600257242216035974437557181358885355642237003674586745193897401587570000564638555755561965701141071873436710964422661696203391868206780385124874390350777361411799333569825466943312023115988432126721530961100219285018248015435316381246029584171978710830538369454330695993569198093558477300981741499438437473727001452888711144700480975145175719726952851409444767408494159520574385746790248830050360297226750735450084501927531195638110037363070492724850020150397307515117483061245667142607699311385744793511364624019136919342715824081237500014445087544884663344680062215995025558317115738546586465732354977814721200351086707460135362660205526289285283095208256128812307098727021295300349490465760832281543277742946389007370167840781015686706959253637035112742738968546083945802378133037231173862482944612277605674488450118574933933406416171696766817539008289542313462796883894971939199849580689874859706396319909917999363493641824499749186281505565993423580650257488323958493033992242305021405112365234740965237841765451785843419743302880974183843526627491491161003363205629778999775370976010750991616902695313831289329054277247703110679519742285159745239516550666173553790492773857033906062434339749862470453960619622002955343693983826700796977502141885093927963787011184664345841238382969277417865878739273109070302890761518165496924582342576181934044035489751287516623490913819792136410681518977569589004568106562613071966628624448658855862096039580771701680451802475329270495407031069541481443551728018487936009508444093562084881741855332398907009456953617296308415209314872984829542820082205376095717883715104372092261644728959873228561045576030541247561032761211055592080604611599852878091234088192795148044791574091642820262063541551345158925085852282527278902699699658132525085624905780583660727817017623935142511571480761256896249997966159055067704718940679637849961453903266202014151132782632537972263261411182678304845099963577139190475265046130212373015382345884269640958746828495916107638262591751265171032297769553473778838626810094307717696316760038477226093953373827982807522610265957123931564363617155407453009768198653363628785408453735991990632002022595445917403827134905202857626694613475091133310243144282820453760600375734945478138090052510097299827746681787628916324209972020735865589186225712005116524880193067013654773341428157129050094330021449516459681154975847826626768975872251689767789097198768855646260388872094468682628421640669319043574689626768774532286414595415867963550640526545162561550482368243978428586193364223208415923759237312311763927564626917679808511017951209271568776411074356878098650640652998784770567330348034763628021156141618951353537567317027492791249114903174691508444616589607996287775038301226100268077500477586838103650733131714265331298125281047746901414746849286221090298560692268211178595489454546384139212799582165137382630656079134509964205476131346559034139821296081279357825187634655475398889630660636116546175130920299419053346548241961172894332562679182521796903734924964413334495186698433536598156155916113720522728285528265223623079782466971993699867760866167737834835282830334331056836374034801452157401551869404485638130466223565410929915431589626669203714438614854456623868255862182897196562433322603342381524149224388868291218888193588395465531998999299983265457196847094453865016326451892068799744707553675194424022420818777384496614912737552544758280411896615300594892100232560799702956521414534044572309021849834481329267018097020746310340786856578251174961544139734700937281662073364158132955769489687655353034166212389298777087623819303927116175598031935123107329607859783509315607328376898123957523688108435262510275038712257601794164184548543739041724987744224120142210069325936129955128222618704246827540310068265264763430595458973120598071592161147845687931013097613700027826266778031980077062845742459314197167519470947170668860453600058599810749838819326194853230243087953872310536302366845529496080384794409275279171122446990554287451647056712379751249859500843080316128791941273806334360449072054275928112090395876180760739212013404558785389857781327885709698148290808499784953817404879005608100170077883716518652401473894924969391437652474994118951240894228045105493787901556198446010188616632732759742261765381000377925829269467727962551261677781552680604892698939124503516844977190261190573520313228519052784424711912503688433238365139135533292960906417356313334625487785764308385367687528642320735450614030674935004816113837299637067970883269096329206550605516680887202973392803364964776408675654636684953415364693330377181089187816527739528185645241849023647136916883772365837630814480169461291591733574946010771114792325100975817981791545025929300678275124484907074765590937084692553152392455857140970726124265618955271854975871155562651216076197448836620966948288470254631375817068806773373959635053162986581228920807777520029098361539000355032987406815798645460472361675954075777803858287712263614393284732183277085504483965533964290905981826494321317357456903749474624368048571041597813875181304475654854260129107005911299597924327154723676383966844382333266744924525650411883801436797097703328346550486745977435727053785329553627318595021302092232375910723281538993409176694431611792970768034322126504764966559820314786310188238289121337343321151075989410533611151457259893672082344030491385731744086703841182468854630894271520220344769115648055285800721863121367169065967888989617949381724646333870937401243050459713135348977182753200449282713838941696283681654588941826487057879835453918223053417260227374325034684327829751549309466620956379261998750306734215601013734578723585984719825747165137048404514743939937915313230431577693584326007541096438893694789571355970746051242587132141214306783222928828938869454803472759103748812149248609590377288694924030666757175564576278884436130497743990515223285611233350681300500512466638335629676576951959323391172200244914470988385516257777898202265365778072923568820191245159202895039995811841928284189762950420978788722589883826714397527223663472700987796287054438102541184115122430744809324118831677319497139740019902671196804163282858799263384469803160436004896099454507578221801048346693618676086936316367937065861328512558557337557164450066485533018736971708755858033493607948892491952398497602864497120781909563888550497221575080395059080002034856943447467585610464287359337157162634742402678025080816471938826298376521950507182808929701951459596014926925013443043913262118410743846876031434840922685383044627210959453611961244909582699079977700219866984556535241628364772270371117506908750288893137757362780142308614804677487649647511654653523277817764095121465961257817151875845772293063246995386846447392629857055986201623086006283580539849093580969579739933023037752143675462465671863196798492364064914266953644750375476443467956162970257769685539397620659398360787098689653246646704707147861180649710060317425378973061463795078830021924925722996477993167457959281985691403927302919590871662355409712702780226387461153465250550427957461981124894585604663713794634605438745282779090613514449534856955106792165261048740016951881555341922417980764150834251919115588213399209181183237595203537782293172381081242682823593379159272555211455623479534656118555415715533528659322305449778473783880516744539389077977502687802993119499752608646079266122913623693328521981355678951066479259698406271599371884218000712764596601683748899208127621056904408844299684904955593323054914762963216198614100489060334109909865276392673826246741410104226555551360632726450638036186898429087601798881427316975237220887394808277693152103210060211422471973698414469930562624752955827597607597747766913106443846003995970670432486101330026860643575565601668377959973874870969050563754585792533297858867670371593385558402549785052645173384779811925481698859734523688479448279144960912520959473575409922462951169244020092060898438366665181996938096563403697286401792946884332773025609451606073900627535052867017697216192547913452622320563852659499505076481364841070141425603018063966784144376007048309238073336615660828623280229069913972651925767315731736265871157585906680634036419705569467542367332232701358690172193960867732780015011891064249254430293356210745641603055765382368261975633315903842792443804430220087672364695724946446397124018247941054072407779715189663235704650011733429858332010751955189064711592103487658678381512676510986693099405506238279668386280469130293402122090455354262162874328114916605944661448198031789294217171342141370728594248243361177005744563082258820077953014517459920713324605645561934515753714107852279126639690634863057131214913069724623716951924241431867807318226605042710811758545061457269110343657741786496730540744334898801235922248315423032938030877942657596440378635638341675602055657822713803073202951058700562240658131800778425428660557311163421143403041133150196265105418937446486844190817970049848909185934677080703895751832236370635159428669865860868594086905378644211233186163092268995063246764472509218442509082166539815418578482648776199674189531743635457816086711694737813617662667628537693405608706542700023283078083259575100859962645604839713836806568976220267027000532876040467378928961144855755551512079094950400174226096544189588412137695899634202240000306953166054383816751890584160499132457935880676164440801940538933416856907396488307093221617258277084364217243399076409254885248163726898765848116986736357603680465747080331240807033044717738946130149010232210608295645568978328832633445094720436000892102631826178926701821873821129724209181625191959108793399051784937217030262465663934510855746741723837656912649691899571667151358650513085721321566449140210400156900924691533575153494857373031037877364412119865004787831891209373905526532951344628696197759853146966873977915280274914961777372275668424601464343345931347940227652172803004980909429568903379938698523430293732462979286649138413885194496804235631191946661222448059742346241259508067609326294730313421185589295373894631645159464068319432386458764455729063205587419675813782541083403448573188244101261813553556243336722278021770434146565740329966860767388189288808409062787447562183900203963907155299814082068509832940306262043113254587404608897755623785488205194841158793122379132994065223381535585215096526437947843047417718828967247087534629150122615967766141810778781757467383380410855494025114208974556644421119308378499248581213497599033655099869372007968900904648034166754420470530769056100930030061960615713113954062126661264902971154352466806235683202802511964740363637701344864598217789943978371219410120875313456162512973146863325475040612076913060422703895316324692847579306124791078063078124707871885171480351388800182165667448538660673056294991497045796858471847239065555802358681044657218608322878525975514451726250006306738187385617595811762676346040894323571311298746868415413136999241731925873041116091652122111010356762569048244410442691216591007185265027519776332131325002644395681430832543704772017974373147998375775308194398812563010174364716441067769547446532367161907641387208805365429724857455206839167329615183377791075741044375907704184365700552104550573632734912418856093410297706629473144272268318037065814677953394325560392422424653712185257524665229247478154710515294519758282163410105368139963746772415260399110750656949645635088779026313171554229529848748826451686637378720376879999572096794535240629667700338581332114019336595206860606706813855975781053162120935341279708776608991421383842942240826227285013836805674436536155120465565316224890476983637711932913796118500205043387080636572792709296183877223825095891479852136134004506489910170273458356190293229895576309321759725247234733503387019241300132976546261226574769591628536356747685254522326295965441295303391221074186108768358391036232109173849641572930600213119537773402772319725925497699477792185121456841307591392945343162273902315783164157772211983372654305582063436163336784614953303329661819201142188163387268729247522321152789001198058404481067152302870411249038617834876523871672523171461659297490519992806467741278679642791559256714077791572952536362074373824185696366131641447811916013238325510744508906095749771962602669493153870850063287029560311413397643675155316096414337390276221004819007721748415721358517354956325222915488331204370183291630169454007121975048226829490667568063671162773750957955860533587049441157963694191637185276257999833712714285160188721034340209554763192566208053363487141034251762091601509384179030386149208342307133596824461512023663403496376254654561341897743234291241009148081032029467001729501856917550173301273780514746924444586319000373952074765174934376283539930741896696475335357265246136182926882601323121146622239051442163384939862200538356756904802259025501264523219656204567676084901091127412535296182376217279385033585058027406764504979177624908571115036195569284361881414194381088916340224237690612967210987081384656661865027748216953460402341062137630745218746466409837703228961252231310570701022345540119803488282801797437312927822527551189206062620250920510101070078067127411520594266434378166914838122471928328951689827121709762310773419961846227249186595917802092095388302786885400120336038391111322561054640973511472126560967538642000733288978685862753121733572883695334821962826631482162442026746065916170613463699608796978848914724439662601837370857311097750141802850798062556781938816869327464213519459096318321572955282329628101330333661360486740389766301656403044100195182445819195356289329393603802520247882926446031195615728737102992533065177413587361396371497494988264018877375035335189082663903972776186671980993417688027491491828127234505514689589912220268029447001217209905294469368945019878618287483904651484418423382616363928838048392938105839279676819955792505248545175760383290312081683372721203659897147632328850545796961549412352633590930388588040888586525593751711139629319613125156319835894989026301478052855915713159686492986225298669696352904401483550900125244336530494360026944824539031601367372166773757742428740655413363461607869462679351279020479113842833629375263053737145050579059756968042940074831232049697105731394797555665994274020051749293588522719121333525613731018623806407138927818959667555058986243770745146618491253286855877732402692745791097575178328860709765016231564115758132977080946286740467703117845835889738059767950456746626777743997936236036291774506058337865887242148689600163727804291494454101950640682088980741661221371743089798549568174490146928422522291783938043892908464083720209089955991327581147400231457309046222779490862027064700534197014164001569210106803930899908546425641501351607364252895310454700026427854320987170823504874898505875300810188286813945176366307617923281611574439772151206736284749154123903447667696709601685656921067728565874675262313750645232446365618677979227933902991807423272809650313252895690887719353085884473887876427669967662417327948127308446894427622872381477451105043241054353461993556070021051878422314493631359547678233380849502988312675906110948856615060250484199665962522362830804473731543819514605362149271360502757912707135597978799846905973274295084536685278428954915173446378868947066923955734112224157809924599334245838345966722721247089248427869059998132955755874236476802595821498765986038377496415385216287439108904890585304614122958938600750795158522320753438150567583634180640362615040231275253594776147295165667719540782479744144515616441609672619452294481846254992368856997382340565605553280663372770241883836964328281893233962529936135566694912325215710235511654528365985094929949074433381776659424111544259048613900812427604429954705375049270992645812917256387239644839478026287974758472658380754976887302869931523279599728689919692906930991937477897261386765165462156648578485536573609320547954610045192721441376562021422063687007963426491447872197493412493608298460562502986764423720712341458677609997112645993406217997481307100938617123939568742162065292936982311385543845873045107600419490139169292760707948904622838564448166980839167990851030922528338686820756380498723859671258727614394719705515832325276793729865248601605608628827312825870213925814376904741034413888353513336514540603929758927985694637600600447558709967370475664811509664861517821079647324236670993339292261932681302901148464713701451304910228039361606074571047140950790707690081857088761022398685189504898141938605468024562788104788816431178983970061649722451244143129863110903234696185525584636436469332820169360363275230622543102719878537237920197891869414952740028989885569356328272723181688543314894378232656323037461582861747067127035585571951104624520365809893734015444958860368383900010431683138774342507721679549813704217994892011575679814454229340174997740419662487403489662995334203109008797793891654774871448153096549893527490860910002406497666068262593067489428600464443505415924363506577054470033077831280699919364372446893688140173659220618469289123607302033162790198841620613765136346036940061790267819939447578169926605884439321471901074051060532831757083849939385719378763751460093400947727009102463706150096064692675788727293554582827470117653701793983846029476842886499996185824921147210892222941334481481023162474934273807456261138826245369421512011325442090293917348444454722677963692314779735461981004907561290981310348442103327208819985729971575411480196406105702346948131103257666119975690563800092956799618029317018429612230804763915392669249105593212141023340216704505219517922243785712830100969744486728871253371712254433413687691483146004946414019607182190027453324943370532122767219903266332450882924427952282865176056556906055281721785102956075602942312880294190017931276656676219239422508110989274281748759542775303065525898245689270612169078929493787458418811026606000733661027256716393576738646940963671526514341166128280743305154217427392860607054312337681440348607809823935867094359214177803924916124946767867577173415932700846565152668769735568774999896402609799383504186884783604377919326800063582045701302475844561505439574010105419306880305401505255445260875751405788471792731290079411759796888456920444178237346182286486093874167874296396302444300843315481496595722107013706597977128357625898486798896478255055311974577319775038350326175214917805121754802890758105359075803763204920792296930479295537440912249519761644952376474072402905799867478507994208568106916666362358673510801704687231372972631166609577246073343511964084308950601441508265845786012834230676156887614210196137260561665104404876028548822752421994138154291734225148527412043726779164920616164175899514034741045451391115321059463911318808655166614698351780483500074700714399672437875118294686817167684706480778138487983734651057775134987620424370367064122055342842101150276121171148942791050745967844016921113811110218311543389552002471332672823723426153670922373920974137427924375787316329360055901656682065356181226865289423032742796528216800764988951557571952617624805514994648009849110174782824122486326744710354083754025628549335477203621572375438813540856788056384558498835354048383004511452630671755367082909682505367799710371309914278205908240466652892858942681693863374751792390291668620468708031153870544149536348462812663831518870561937706797512462490749786402983288246992728903506846852487088929979662786082103289591702830559059227364592096029232915774032474500875287929695321819554619598913564507809844388220667412272806085499518148845611247009971070845291278079626934433893950728624236980444973173446965561428824781976770970296106589044835889540201538821655968572672517096857455897034931911905092403625910652934691732861530960285613565004080300992662474978300084698434218470981845099390544060142466995081668677177056572585795562107323302086480130030241954744936042039649648997367349617403053828950589126378597898646252306969521532699953852765114040452483650358842797130378881295772949169675936844593905499793878051224499296606939746694682857840001760456223176229142194006390288268331667341766490316884839618732835566891675866785763722203256400194969482344925079150426539694537008490224134715184491117149258642191801626058634562335358397175993395694090592010429410093805579447289856165770984851237731403917893856182372584911970395159110505995169794605027410253874705847404847674579337084319107404489139153725783351330412532860388037469098098139919470031848385283395088451485722161343822442798619228812777167753517045081269265698673481068036096522307731787047091256352701736275230248473515982779257398303787875149759200735580861162896454234878205711852011953492811348567883791693510338120100234500446366245656173755721898368552538547237005707900247859956209952834453371661758557069909107984945615094456822562008040942692024884891251310302817367168810347493155570772748055281397958589765488536813038199868444008128500831519855232852337083506785667497199991594815314615419912311620859861185015694101376867133066077962557972492246013993853867484294995712729723378305181747579554586620137649872951799226723352734656471230100933101657433506318192235283028033777757852275414942950273283843979997341297691239733498127163214761091500635993209608450658439972845508871443982238251926788469558156716850943909060061424632178145298575016534503950244511042075621783909150494659413068389965762206197082772689269578926304326604451233366452050240196599768831191002608186610751819021126664406172383798557507735591913886616502074369314947717336082039498806847053949024963688826605193863114452133656305301679126921390451281433669347749669210573930915780499869887274529675915020371687740177098969440424590437711322585020118440527466103716863315132936197426319347712242285748777276316393853563203362516458549464008357982425856856856003742499693778822164721391464644947011168833655023480998988028550279564352921851536096285750985890161864325062488466402349596893563287719143117453690823028851744937386688880456576569762022985856713469348528806315502769656047406391217045595972898903270927765378037522896355897265940910883781256240099981125731252727232957061421500741921273423781748844484811191131665995648999396126841122125224152801248790345303515522638750103352845594223822541969557169808292196626966959822225759362673412051261576122856640386906946712682651345854555586902807974586303755371334214954866074892992513264333937797986843842374483966152132657746040717869018423605262118533433611420426823246274513578645510134528829764253704769237857576762454690315961538123758196217266484140638139698086041450005871609366250998325107901631464066212325898172445880567490737137481337025181087336660328445589233295266920142225877032090031720322268846394987387387782270374069630890338298551113662634797970285175235239649371223616568577167364240622412404132005936948550063176881106672110950587526781287132933373276422875555124906127531662476798878008047073442287409807907327867466704480841075018118301394834014861432112987135055089569521747081957336051766040507901253355262631858738123579124541079789607135781734894440743316676507517243905745837111673031959556741808410084940780397847704897143483243363340838346028079329192410617707355095729476070404591596318410330406093797884728112964695420603594636567820592852162903048327835743867881184866432236282266502969255843663637826845857933558905894934770149371731233360841928458034444461643082919301306084114674333991529078028293729010335666814227528009214542991481822526711738251023427998006050188528934459937645624725032135386423137565774787628352368954088427652056913141653735654884820835780735904694325555789056715107370530509675033040354047203505165467288283272920492366798159683169291080815793098131666601207353854080297426511021713350039148419110483381553897500358787223582728430348458491086224193871109863187520207414501064079403912579658091360595531426233076506419591693437645175858616692523099847794594424472429118014378251877139410168668145554791699180479944250074074592488007397350722869716943717791925218196586578664525559930812181518408410853416481324589211565100173362881146900312443984222224979785852697497324074712209682434998920118711726095287111031769918123993467850153282716894188845957903867994156700584542029361642282627035789536308032463531062688649488766301330953907405625866046792329307865806937737912199195394735558324536108463943974836454837656360144517421084137230487009011897061404846766557440456554199642959691089622726225091578901305974883864791768099432058266994109528411400358462403630743103834305310801054432505184232878206071861165543377883394643958412346368267430041394839367953901437261426061898633343728442782865555725421259546265790336610135946851527133190387444636894196511825476966585576360720849314373232279479209257691063485904616548435498296385115325132585601200454597152480076635863848436460297976317146288772990719303018757249828547723218279927339304484097472184873799524236720592383618802484997795174511807146407653405099624002564537604590431381589323426490058012150802461644895534762538707730739276381804633247813929438889104801567099745212280808572250866168761595730155154573694482359836187312892908670870519486273121673769147760835016075547460222793348457926107708100380068175795113904984985237951655719166866519213634300108517313299994656896872742386891325268794175256032060994684896293257519200361649683759138807093250311637686123383788265617932871974910755792347450729377559833167761733800834222577163470406498724984721945673074202640438469625526698031780107476886012493713752650330460193784493559561939089142976751977483443774226667925063263477024789312027330361505788918403387899640199799980780010908681316935947053465908924188840652973826104796224770102471137028852288292521665641575928806877156995662628092393447251054922344316110364427255072178109582202720846383560387266339634194164754535050742069411007862446990279368748917300824583460732683979069944296472829640007723592671831290242525920267225905671265846954207661233365563376866544069439347925978765150722983686132687925007812830939847871498741234130466015459030912803155607529047732938808366349901317878333939490679979934433138667850983241895007132975185374375861883623452813295569231687757041612201546287257768089568630278451949792062885949936241020874958855815512952762905231493170796023583040675253787821153727012106850273012561461655663952215761665850574405315226897310738661435002813138884599559926625492655197641912073008240082619995731003422734543105547853697371949914800051578706594737971101288963397291053065880484861474427185669686011957989174655196241622942166956365292228712000167981946877857619533904742176086327602907699913316051321732563040875576650348982746815792025051371882428000952065349551254798441917196941649026929369576616889940498115453856388556669493177860501951276691250417880391525031877409098523290781575876927745668384792236183383998314842371659441828150094847222956592787610453987362619840093880712762565504980410373207438637411599057764666424430361507830503284056513506120090444027865058137215241215784867825295494334939586091684914464446087898571582646921609239499595968928464097979786790524226492931648611095557299396664502052809797015488269753865310337000844570924614206166408504434691157405431312798922155908159835925311574543444662690142565623874722518651544431051227452141969133566803725670352455879935463512147740823202678573708260626751294893713207934938026107500601282699851018997192869218755041695198992483232778071658297302478821175693569476952884639586403364548209935082895482264775222662442197160546450046761421364589758907625654468026578222830025862791233373854593445921930021612692202090768337026794234154868096024095108648106000780493245191485629202920774446515619174227730601079587103885756251748091681393618095210379586310403881511018156804996150074068932273247539546736954100252835952518938687922407198607063933986275301927514522042615865395036486446016988205386235567078196226561105268216701446410190443762619271553261201716415352282283405847030802968772029086820674353069673194605096823537166876328354129261827050918525283635125057774122168896614929203837151582452867674679699104529193696051026695121592424353204357121237086207627536541047041996950650422957573084249074495539953897509253776504317539202202375718775413370678504481769769322994191355600249910992375433075068251736892861192645581988097223001132938596116360782840959253624052691238534829388679147451023283198317166417919352671372103938438734643464409551881816516490104300261255711864302664139096401992078467928794070902040966858399137451822856594769883385415128041166211973485216406239253050458677688439542437743115733282269625681462513952398645478978849195436452179355274866779477641393236988564187200819875439367855090865416524646217502091529215994373684198291503612432788380413393580328402382362489009305106512607748666224113756391982584924906024145393580387630933072176615731800598682439485084623264918647969032660870216730081035937427699671423787121449303197716659832197342994359680436022863045351036716069882511748058242478877125789010696604404360729511972045689894045196466432967150865623972284120374578968594370965146754222237804836935770346601161624617685418966286357977050627428876687102125598026618211424436960629007764300966213108028944424493154574833858623278275698910608774366354076621649506282635859208663004938238242112899017039438060848223563273000422567291395082431724995745625571894199092511878328880829332996878532976752972596851431979804369351055851672064649937593287654064995173678626922898610376480020040043835462888462885699166656505174449622115098218435914549868761817152805453229098779980097927597949576000293015895712546829081200910573024849762313150338886777475632311649983912654530253101933479023997124812674840447225586901622517039775776899003987018212114711823366693306324394879754953402545927058620202595446091455808620666109462058454468354440273075389802046670517956000509698693249206990815795645550870306005504126945271454158236642807853076911685943779341978429795974145544438730153285862207184111762768235656632981707566639409787681104111989844179118056789126240913510849383774854627131340876447324691721479431933558835442173152807584172793108837464921800816302160520557426180526314916824500294520804570656646529678848688940247667540283927466807455896277955162608567974731892628493437806070045450663002031178491046453486782354806733223695701261888534494395399684497455051990811267086095447443257153961094896255554454504594982739806451020611836322968098174979178637152366178768442394019226480137829672216059665381565382514953179451182952997884821038400098508289254679070457954032181283167393366669385231805696808397142613149051397680174967807384118603072159960121045050608032476724127267148577491740147554540133652499625750282758949913630317791076518095820553690490946991171256195514809296605745579164066732612160394151221123797578901420802453386374541854042145034969155120219968420118785231012611704010513532059902447307441719924526292902592482962127971043730571450498981206283004391499016872807614533085241087646549499986900833449659407749730429235881198910593885289962314825025605515767041803074836495595060006761655792250583518468368474670036488097726106581496517527438922229768730907670064089124494450193192876449696885869817642482116894251256270826255597384344069398616556335774545959743395564933436518742133058080643975657368495462164402042477962869087086837168928539346950508291894375008138376203296158812283842091771874642846258097572605517738280512305120110486878856274732108727032589269718713363627662241930271580672326185036729243845218950126169777016365493807996265685998816005383737387148927110463969572970339555666758445052979548966577573312706873432750854057058468009979712981325228526073463960348678697269749180590744630585568003769427381208027737190381002137710078762054829099019344925327000094520471349389909792923256565852450209134481483311954639322088059318283622405986780747882055336661293121822740293119092863985501495446228801515415244033887789957899726582624870926822208445856097539319815057447821324259810380331266244473167203644371183756791953095223805744368899567397996383318965456480448931073505494578486045580496098884697312264001496525817244321751960952605815216847878983839950346444468969019405789869059956871047351644653027037695801928809346623754596453071621010096995641303006308163809323842302624644170998500450038474700898693988030899377162437079017540453694152385645978254691421695216217893166788450628371564800756577297167123876288122380437724094110247403289815688774986378180300921749845588592657208455524597806121432256691843730363798560042364663362157191297348693189988617671407289817164394686638581033166145476136497694676502667542532671114823549893111795809848462924726745222102659582847591034341898316857921556133133354474387989384884476089954652139824821018066949637424098128645466686401857787157192710178207177576427066854142168962155365902680842706383767747054237099208423230701106757743297767283411406799784181485290347290897457609440986727107993860668720643993077289919149285768014854493078257422076159190626752614630425409406601530397667420127846967108360610233403910217402664223018275343398689744994706032103748375347520572040589182967012667708635253656514520627946286555463731181825166703690649752867517981077596806060508477504320180310468267340302079826578056405104666016004803748348240989984634519290980569898042362749469364559968990855277056365276547735475840752670745270690317900346921918107799349139236918677784784133007263623277813100195108644731779102823063560015212364199721993887587863111808744232020303966615797238599787585595344227528354758958149631844419823463891358644913300739118290859199733522736420165930390043950459641191120388321048928821412537431075062913281042412504188381525993389605594765623665195992979469534175807662047828532144239787583048527484690154565395208704683296255398048779637027078300921236584481676583491670599731899989100139863096485518274807126751602548779105864878070610685250002628230610193509492715387969943424141437748827018910525033138215895238368307120859505126925514511603613250794026017064667673000954940440436360361903505386183611784229326967805205496180361623832632672729597759131895214647298569816413881129868336258085217492992035969823491704126233533705858933706453138573835431676679542565593208630734922537985114027230451957152719525328325191859960930985502752897085120123248539186185622651750470495640341379317216109955337406682822654876953296409991240748949518600450801970678240577348351603305137678754349248173367826587277663275587767434641174635090872858965855947662235358137511093645504153663026439811519867371297598629511642629810723933351622451730607589642908152947168214492804304501419778864066610561422150441816224608863444161780542617915821426461796570185665949749019298843506866047799234965422878844294862755882512384840670662687886302526332739339717412369069071397570305957735241314070018748448591192651883243841523770004950156679788179188198118303051243282857290095986737676496987255295272157773556113341014010186442805129515845496722647764051672387636626651513827004508867837713906570309995348462775450349558337610708951835754126432995623400354559176321307640898122624530404023135939050320060046440332472453987973532881347136266547976719854457860324501867783786396468501279061134471836329152182173243020927470271181425663682164890726905678110751007257756519540776942701635731402889432421181136297808467207100970997737139315052953249833282010625861650901779000033543213499595794513890192912576840818140391477550694332856996433638167342983022333912438222382338213622089920711203371581607342866538655333899714780474621601458793634670573516568224987176524449375552826600303284796478807944710102649446744574541519210169634105729518355619777278922972441932875679044220018732233488769871836245743144220929723042177264593110035940374637584003805528146583046562022166113625138126671224420757375688234779005709042225221061433443892016679073945299870529090187908128804233720082117532057519533578389973172980521756204263081436834072836545330317003162965385462906250373942974869370290026625461078094695257750108425159555901436802976464542463704123455917558455984941250373260052659683272689421135452767363255587193542763858811511472895548659938704709761590976985641646600195209683162982835482288505561366741426339143502453719987743427981733967141100390652466132644161625900750961377937479975729293141229697118550778871772949932514667331357396209913300903478564668874593508190064089454893214904918203380329279030316126813781914627306248978294378212555159089493722358209821268475741057602886606900943161847428190126264455815094674350768552281603931366011541337200931798350013262751063827449556786795970742489560114956870192164448446796967855043866891805764748393627672297397821337489160191421400012232023674881128796248092086550970098399175151740682338812726664443378772773219259869437721936800851537120060133705528449455201233629167120762643226722389825021806924110835842853515148107392749699566255472768580717203768279265319772354364782627780439037467152762742172778585986289506364467341725648720844051653346552799399320644404126071507195128031231751336011084319861386803843888330311739191161324946242013803851567466503147317392543482588116436281219442831388509117657108437613980700887147415850535065121841341229313262292298256948054276955874722961001009741231228963242337778935148656928256967465169991952593227162914836426088654976560085221047027025902411179850182745520513240012662077993870884899615162476074327297989806664965252436166335766160549035652404517707534432142889109748553901184945828503062471108213169880516633782396035059156618623552733629493445959911437181135890222566169239389593190988666128381939967691025570840685817209898036626454259654743406820669867217545768549561069125118938648159098699436135512867592412772607424950820504035221408399397800942235364178394258302779275908267397067950934303905831466999211619717245343307262008168605363298880765205353644648447593309010041998477547379539490312260931702630249196044749904303126229115202058229447612942279298422094545317908477866847432729919647415700861691223968865347733918136968429154262617210580190968335626255827740821569281648352611162067367026649367958511628481302577282487458422401834961064431828422352470998095811379285985608102483390573628963451029334284638350105656940564959907695957304503310211067130046016114364828110167432500003556064864480424156881610522666400038054653914839869224106647773425068216187664906798663302367261907586228635826091511433079241215144495934643520126042357491328834975044889346575400779253991068480680446021585972257741024697172626756568282435021730039980772720799526910128475974169117699666698888782384519027824474094359709287712209261962632691761351235006915738896114604240045156421657387615497716281444838906010265894294165635119661834437508469296668406628129414224025163129156814607009613833447336106410931000486204133551152574234013288618255880340940808290832862322085707367415402059453716074424950887321879165324164681896041202293188752622674107655900523986496063156984111403439224364482011755679778738985260410311574362029143949316461268844230420993837463576508811063062765813135408363292088180654816952848811775335182708567447254747696331056658027770955865168777116890647437140206739579211781576501056777982977439346040908992407679972068562789402443414297488814013980182919615221490078287310340254750304254390176747181443102558215042540681855456972115355381147840933854572687145196973206559406079163277124878006277570410281773941932120661866510160994003879852483032225619775172640185485244424390944605479041826510628396292012943544058610934485534150482030136883327651085519269555046219178518155459529370837687720761566792700998112568859868784689892986832274761848450870141939816896777822076282126666511005371885694160285089673079026482889696774665823371745202419935187093641264737561727359221414530663124231055748252117589411615203795216797059397800227415449749902602146909045403952463392148821959389894204222676352910523545289688633991521916384450904758303083070552404302922776467868392216328120219700228557211144067319795726605326927634813216128779121309616221300946481077870378243357971040507656568863967860588395067335800560582193575838137419291736918081675483094260375556996420399947270870615860971436520525987026252424096772344386119407841013793938656924645228156365172513104248905517251092818974772530906576589658753195813818868032247405434195203387936101314049149230303145000751100690982463456904911242629479510785743117478690929465744334255035632500395310256753493319043603792137723195145655557591702840333748033300494878347471636851362857420635984343893100599715143577823705206263319778428944446298958754305377761737303188037055652973835019353606540220245025388805694058620487788566350722180389531206066402529346566038890796747302310828562681111699910045917973251270918199523118423775864137699461732551621783892677060221764317789897649088049301820136943845588523869031001065463979145974143945873066850531664971458127458616812392877500641872637133600088640711727644166400730380286224144402058806217094627784923012053938279244353322143862208880017849979878792340190152284868484209965504611780077355518188777553654055671338610973483557186346901368884491604390684463966360893253765463836916741662345004833737267222093258938566330863154328234419751341667344761289517632147817810577957197278389491321112146252803788079282024492395511313686692787833183837339282949650503357618566157235723969852069772442349352878791299699991731346562681197696034275779056463240038643787807033541624223642210717264651136353304315799372484927608960591521217995540957763507595883089498123195842375669212281466904520490920602679021937039120657942809173919330137249089563946586088101450964347819178401256438818025073291530359469965858810018636828901078296072333855905523254755807991059749922994383534261038112736207353333445966790892875093053484328259005538832118126694359201505230200022727637825215869053039986475205046927208199264968228132686720730291239714162776305218097134791470594992661323062599944946227848431375809855420115816530614654689130081206476748246421455395454796334770858629949990898085545541388758438072783216131585837124864244863997603356386868001363705329758432495340117369196131829436576036445807048509884898807995604380541882600000793701677156742830171667880580401722101685287839820785205541343099071597518133662065396515314855669342507370633340506671521934216126106698996056942362209402549383571444815823256598716723422992499345663158504802668066141242461226880115107691427182932604129063189229474000702774406100864525929752250245276890954126841501398963952553165159907926143773605159020345543606799577253298902403776146241617427444540607062288288350661537976538802184098415974626762502206052233646813953954895573392067296273342739936492819282165225537620360184389199485660750965780372440358723470208246352852418613138696736722224179537989397754030620631575882059200229125203543718825332136208976823828539799277570919662729794750689574432644830584936955127518618454017401879645965059120991730228606419266636624957780369859697562618604361357350116896311123368812261322140854710317191665374450966939487620218163172610166181352218539931585907680235700907278524541776184255419618256538076912329871765042577577928990032545146948743870011375869870851295372380083710700734705978967012790365710820831453046523786366340612564863327876889805965866260377408982502368643510772707946419001436489726171538293298233112345527541729775809226371402821389594058884230385167729887383852490135873181846757632841526632937140695501199433381645904039167857173801261915137482565891193315936053733605286887949015877756254243862025142784447152996115597407867951768190727089485710037536977379249328972966013915730541310735882345050013390917977242561369086651844054071274585442077148252717220503106503985787903889333253543435860410935887894434059341052038777210376757437551294599684154391353613287405471792043492778850020591605591981014099324789980829983787817321568248241716778014045435671514055027946861578070266070674562603422409062910514596765869829360268424879847243360312720147009258738579589696255777437509906826093954689859338629258647468104280126107559731952755893258563215908551689670823048294246223318650933342457793195792657704450521350231254181090651843778404938594857485603924774984742558222178357081398212378706675595695060482849135152549000155088507868526462808480870631498122576037952603649157583443606615467560011873034077331415939691807474250720920109896362594590634229291572205396467230508993284899541790130453262283364429177694600250421954023307340538537862454267661342066152835665009059618289835837499428456209554334239645085038997988082253344301066147720384284352371193754679225610927265421672109789884148690213731782942136765181174710662464005210779293393691585200493643394562274228962894173902974568308589200074238080218849893419534195385840718750082726787101736098465177466689342729682145979728839669171833472610471228850537672332075470897956392418833414898196497992217760902809553822306324511495510139311496234666328881206108470836720560022614856160138868468873902200378718348225601510783027407633955054945060100393804943532896835851089071982046503292276548088099871316545354067947629041150664228216801651870231689725995463094182068160323011169328505999252208528233070703216426128621100815165765009486138560254927830473067360383845575426164053012100469622386837361203406224258512142669056032580993448546655365091439863245486966827079231639728356171394654848520734991241373483399191808438392055602297586932049473250706444281744616649208919522141084968730926212066634063445152242770274149614977445258485782311644176139317508010657503355344638539863221589833727191652989169221665395083312690764055663004684718619722597532901755517169987964191511814058243557088115989500982714752422832869869563626076567855503071151015476254249841638421071757256361055322112751163259930314002398720775177876712799097384827201255863989056307010434577868055095175870491284227425789087999446450173396335928422516088632835269976557318127543385826705052895668975505706659345394974319619899098143978957936230946535428210461182700595499915957974693665060178112378660469055842387847555501264839337887992176478531526696938349488675820460226984880291624164963779558438425662888779154475458858024440459388566484449498116906227227207282322504273832335891242748706798133191618275946988205169646488169049678434923656813393377586845135908891630943102087824832453483961081501426410162766684110845339658541230969380076932406887008212423303357166644855266180066635568699555985933274314708845567580101165773801025707289799158061181210813218859052529788987051502540275693797497436377183830549096661190644354088361860698067329351761640845809732870965898687553525696617386956037357493115346210080526091757564116801024596597875916481816849912612493236719086656311345582813488891289349790238666668396253385268765806693336453132205207277485932644274368862914642233063255240774413389247612615221408640088896388161246380235795875276666304473402275379447844795199919625937987175477009924610798915259722272075886734963894876720150707733788533740779000438476984300982132016392774484398600871221155420551100254666064967164938021074951724853372515988137940400452336652973762047163978499049424795960425978926419232112522931356935113678438642953621174600627704654370932309826659356203628219923299619104963650953921625380132908957053472441417487577053710279600013226309199430772393297603316312460259727283153076696489524875065326619285347618481268059120487817253052862624390294599715338888463326350392309317723486892935864215193738257014798510458465360909491702246609614573908717260477094023799065306833506830453721484341994275534761443141808138925359396156581401928850380631971361810214322114227143291377846280616867405390718394181109892484507433083921014763391690974568483473521612291548144253248476317507785906467687449570551718203907089495470575690890543006282622946202071845361237094670373401755045302514989840132415984075942936389325587231760065274048410395328230089097563015146756729514093390681716634920927807804545909149315912177348155706497081211379465385994753227725841067754003189549983950977819011852494263083683092324078681046697980633430265458384681778355265730371126082986685657309610796247536302913861747949578885620902567965803194393682990074597650894038796668010722305509282277239875413130396974281625216618975574300433115673970701131925019803139492529566914096862046343948378441943521823450327462939610518763721815482738514204748251046709749489406149065750572009673626759296917711755726209510772629716080486181470516751320228424786027123745161668527549670079380995466512093283719927804410512377509495603998921722635009162969054343465946606691664710481678992147584495037708687922979859291196911595207009679152100953950264182413064655705843806316978945410067315629774050424739236402464364107332732656126595122031836016888738060813602449277885439050663320042707538089304949242205839243768548112411555948437295132155104920841842344574814149484036537505903479987422855741556988692937442193228010783556120528415700952833182792013234433894407145488942766822947773383468773352882170527692677844641528732468171792331880721736790880581179423637556972089778247489966328298555064494177512488291112880139903085075739827349106954654994404823904285954436193484886725082167131071783443572624253136067338529428963047779411249714100525304398183780270359654593797647605489344134236626720396643722181935678598112689236064309181412368615539850660434231134782877525488934285325620239166714886932655029236674999990514635063816198081996285555619806086155166005905184427930820574251221374495588508689484537113109980434302248076761229388002906384347786030348934897957436056664842876544016944508474397620705222172264919122917330762359596726110966854592054529539183899565777588345006135382437369380839095230677496636010734105013867833901240785743500308765034498099095592562004652468602625004577857277545896311679726493616762971669116769489827494532364704855985605396994707873114407021638454181213888517189636253623333343201536602381596215773260317623631818417111457760648563795050154027747687005530234530053824767547667146390546228408436543188921515161235260540504957354874464191271331645469632710514123281986563401964010483794978057307876166475780536643492798634940174718777766500239746521899652816375611161986304960759172542845377045107553397494560687440217106441984071398801054010476885547762020980294490724914425144823834960936501721299221010111282045373558113264229291069256124510066077468532668179702286219086726158640504208692554044367471378177034693139089673221995544621842955946963233382262387757369457269010938830917150239803253576596827851136003899903580042038249542695868834621078959843977832231139537576383585809530049328220355951154907145953899346338020864562410020169624911088460040283373729016894290256178998215355986328687884245374350298666121852539102822746768494427929742129298984998564096183247409815089337694184437543627090456321770459037878473306485348353943047738173785614606823528643905050470090027059601891348756330924203310477981295875064233801444759199000509199407813349203988123293392926612092959156819958555262294968133691214071763604997223979743423732707886953333058592704657365160544601799222864652252693401760018508301766494874525661053201314869346792863051813531285634261346293895648999430465110224057474624344026026157424066054771041266557591149061873764815823036358019864116339300516076713932688596869545864211564781360346869674960742841329107025069604653407708490409443527289872160422019727025888012416568859953961855423595355368306466384943631274267425186157882224690167013899029973703511158445799422203843604159679116132914899657695028137933937519908202266612902029034866713277981350287070008500473289415517813867579956809459319155939131067687556357244336939812957680977152232135847046898843678244099755547741712912702516803169672002226724689536251988029884042253549145082911172002098075607983458435662416635601738664590746648909534640820998004723943986675538806960281351539251703009226407269236108943325855375517215014838198151730351590887471482421108256741759983335536203627243057117112739688963403849154884939292110659448317916000819342429908184413223569125580956545958370543880983083544136402825897106211164361605055925881893970856954406869274089183639792169523215918954278265515249329019254216558987869578481525193553546699541044211907307455986618287065332535022017544227621639303683221586637667971432693681937163808115552306982466290957140621447400812673133737839210207457521684136577611391856411956095090759996937235677369791879970267366384317347938886511290267352676860366184691041967707191186278215522946430922508781451062315244455884767704101926097683306339885549723617674749201254988275497556923700168579606498486701503087659738133664500840736893428372945020715576158594425650412972968200324120455581446731543296099984040771564350997661128772584644693102574754252546534176764557955286645725403269667975725171796214126224689959834752134211300528835560619972093209524228349104681698983028852245472770799156452907976091598111277489606866340697404559038074956391355713271669401944996239798474660423878686172488927832652829428315438111378900066804715797992551297038083222055196584267905895505309100662929268278016068844619336190405881492320594044322267112416309095158303200295896186198141469292703489633121713092422623837220251146766790106122473786872344744088534933609676643011224505597614438005665878001996835098748322244409711234750841241448922235840623300386144441956847423794978816729692146690681494838986943133048475337172049671274483666396326983699847165712868124927228401537662197132806294596087932938024621442112023508499453171942583850520285258999064484832919398480492971490380923954620390454959704709627234228110916749578600632393484166751465523503377769771820078652374145791493748216592415368105683778241672497203645825782444828707689813501738477404403135168770467533143534440977233782104150618876634365127948735201537547246307121918719869810942282545827895461248635675093184949454448449979548003993833260798664880120047253900179246000058366698190849568299969282542368854866744523050626511442463571475987548165320667352185902348398174409216605650680836275763909495081278243264807429305467175754897641212585439902022392622255445285474169441549604162662649135503598483613412151038720578567441369717254473694813936405482972774840193784188593476860663191199392094514321709563050202924199814740782441524106193392285128866399946331819855245434009639141333130400420933816058785893392871580137719259266117486179586759965712960878445451841839854571864425686979038730510135590231053195679149748641766193230513107143327810977887242062197972366239801132338438742000010874402360652560191220810819350419227885645978880485921760702801312798147962887158207106912074800107307058596481818451799912150747770953305441235457284105284705858543967220089980996986297347428057203313147584528658836339216153052354255083910472054884640449169684693791261269819184338586555935914157980904731774922847238477700095041518355193646347988169461116165529625729892842527736026770286749148171585970323684508467737661037313684016558783959541848530965607359653176923119729390323323673573432200612340326461505850886787761553917145848141429768563613833960681512349476769901678520165183885113890006642131932809035321198701409951809961075926644395861965663430572619123989133972843184004368380781221419953833626380423746723130108539791765041134526618732259842656401577276814761036764629176419486529041676737804136464093704507185375638987483861425050272473528195764358634625778376315899155232503759881055370450383795727367606357776130995786254449924976802388431714583827078835063375735474894754338785045312615783807031273843840918471694598858421303624002740240173973767016246858911858644949616149927890682517320475307972946448779855017819868974979543149060196089130116288490475553941164040630872340614456385253399600688808030149410228007528705670272990354214720393108924599234748035278435737229824128772667068031660913609367532756835072265001104168456526491561414806145972725254918023016769378836456590878308362778627220733551304118859771085054321525547862261590349180305866730454493966399276318875972961444894441198875303887916713397042823371231297383216190620854124056660864107620019435733897143402635025305640481175458021149221849067583649811030878351145653595324174645605557287851623266302631131389483030550083663646320617196609183018394211455956336539980905570963909524693962254994559029575815991696605404307511733300629180846810739292747649771684635087735943844825937842454575470137855675568261909287890329565792236444167089996630249483140591048692176738713266168549941415964022885536606824229352453762473986900677220107800291389328629521526343318451602706993437359549717220079684068173151104970433011217851744974110318228754078577904210481969344029610734708714316818320121011780850325741195816844717047321065888449615688089534834618080205084623672393575486269613187044128395338699207580641060060423933178677715214999429154216196614012038356881176584788111195928464444292712252547295005165253471696884768440888776683810564740161524091073547248450403965347598431154997865639570942043180271021735162809562809712260657433301736072424064081306278584598319445003934302922095636144044296278084006501844611082293328538231908809827527742538912368015433175065753454453499160205195845879173054746303097954518968081318933747239959244710261456020066332060116426078400790150234956364535584746632023089719942110629596436710725586519469055069584683468378263983227992247477558067725868042845279540131377657172728727155566006311681725614059804078782955011760905361164826892518172770999851638058006389661358970375961149857179287388629485826595796008423174973899605070915952039660612490085999587864357352189914642142226993292187138256836437447523881305942176664759120520679003281631417783722183125137875367292888574528115153887380388904119571059365071029948134287903924574203572799169075227581360317524516125587877701890816330166337620724146470787612099787684765370254630860283421966886541195704373631515362837857629659082026375453493275043626538450534667411963172996124420455053653126451942981461631516827578419831380850677210606780895952247239275176270134403348713472745405964202810081594067048170997595550651597222904952039972563431964760757555898611576790606887573873120965707118455569161128986360978687208783180929992474887364927152079130843235023120269675200086587720397559401847922322272502655086273888230867557439473938757775179935279737093810561206323062987454562953102286912230277079648396618650327751126149472291540244014713611046586637042309837351789323293237079134880392180680235636548908621892325682444018516170631886289469354228886944048093106257678698101250292478540884838043913256851311781465358034315038339200883793930923674515073386010886506217834899337281985422141644429705621552381681628969424199968927568863600573108342563794805591904297015047677649532402061401476777220969497561752897163977951935933317831073213731071962859551963114045757630342500210206470208044763610916264956003063478935042378134781360708313138975999986625959292750203476073129752411019674437096414084533064122271055895820868896392176216691695846587520939398934066879112614298830648955040229107945425376796198732561034778031692751675425639202565849632020580798327038753605626292147835540399221446867351628087684937102597080151713256565936438634002757328372878013036593051278669659057884237399690611920161424155852292810758313100419704417936218341680130888401885716442643029094995059234923535089343039094644485395579231048834535572480201125553168557626655189520710207989431073691182407135265191262800755681313367283536050686616328741383627183014356613777651318823180743708856425708108433400587873506988361048482004595221534717582701686129449428590099801859459005870663433395046633798033596382565893902008261905888613116527233144176380099055773968076887159326065646347064980023229451926968466241648260086604068714280107085404592839872389396463512196784610568811560701654681361068702522122307267527081963932020208305235599582326196070651599207443156860146967741483524282828949269122109386963536863895499636259757920722922084843690858933914088005535936955352532352390734490863330727499173599694636724000120341214654511286164559076698838628281189536877575578461274468374407536731908284319177974010752885344449524503794547008332027940916977167961948375480719853639840837205332849063112180548094200092380444960274145236288163911407569644866003473335089732240796298683683362561299426174134763054613930858059711622177612958807355766477933991163184956003259536913848533887956617443845994276663111511999162563817569830046893180673568715422262518762687372168414925678664330039883276977118630134838153069503431210432324166513740679281584093064845359454647365924855526778872977577416408580117067670814494318846199772727676527046846544809054108492150233471689007056856431440787789208572087442965664288378549676464115542357774625525941758732134028895531524588122236277734443576135087263802235574971600874199177416151391022991615032034964184773309098214128080397023675995914208033555428206714065195962392721401304170699179572419427324515745607628527620002555337007827763910709383034926639068683729624463414505142584751091287206662360227774877801927366958701428567149820191974337884247719863141105683411626474334909257732663985264470142058195528548797048287347453039152124675884482681492700323614890461090982302889366282389060469530675468951382296014047565834982291344851206483896922858500257427993501559624135862701014233258942282308871739343542313785831077718924347717496762221708969440116283197961163071122806057140317650642065075191296122600744119710922324019658264255537431224898074872478243991904427966840011561238445730552328580765702050188207267826992111930991920589672328770684667805587807005630988211743178239780974094476358968365287884630113166694095292210269116172874759331132683668051169102180978290096867910495879353590498125971306215144021085255109091185083874636325965063210725378620934265168488879459711767983506310148878776747296405756324233604883845957579980047188681557357641530730883669159521054661712802497825551367185280122819869714602351760903617133245599133942680015055901318033127264557577832478752813609696592989030441384508625380146574600998640469117258233870005259454348911140613117908461905465207055724137003224361737763652246525447384865769582152501679696335748527350952795477121141834922261552456680869971148505580658891016795999817907372704184562885776299846949712692610310210753702325052037760803127828681931234801968121552291753294285462036200193919130716647714163882486821390071485963261716285111091539532607486047920080939434210475806046208562697230122599077688838812401010480872905065184415973756829266320749696648011594276099296098271436206877494365159735519735569717951010459433414000219104750505246275002594665713143787098915824835478648711729650574407633554201476751826486751258173079954855514164819670787076451081759279742598400218031690204588794318844157384895271740866637700969849252633140549606210387391628652621014940611441487385665547744658628028500587361585153755870805894229302824870074003865223540550350426818707701318572016877494773297931470283385392419613411573929279471284960331590085349131867312163154286023140557450825254123798558871243570961085284695333837063814545308926710087004883641348949899024057749449122126649889450676108444182224054723459301393619036951747565139727170833699075314123323698947201730214460141766279272312371129920281369823698995180689876843857317708641383604445015777806102476148209762487155409358710519430079332072249771987656853288969696865371949405187061225867342231617059528816088985537179298441022560622028218758806730373246936501433385344045511663699562593281836583222438068760270863782442620742768392630796690131614607471673046769170496824812398195967333907290960710089099712392593686706943597458165146494724367785807240841867330903823851393633449317003339299634639175150899467991945589924434305990649485675735169646262041829209768671962066427826353101708472631986711633040091270994037039321465079531698128694734758235650827237486025615467012629549382290876785432772843143899953360078810622907634524007514031518813011270120296158165066138795981251779777635348066877338525198565897129622317036803560245186232868443981946065875045517725717792672387617281312155295728362927590844296887049987158520248930362655351170669204354426525645334236973407480880093534972400747295143479288952225860372202247070046289324022757134943832273859960427401964963570971462215779757063185512373398957274922889671012465797617935976748513394856644690795332892048687877231543145321841734223209475298455503498176924817366228758428488653990855648191903162357050297761194463483643169639410379137795366023382031267811690531072096652244891968958355838010021848087885567858087331077911505815881049530920687917389573410531533577300599957665289497031814486714096576024018862690183052160983345651085469077082911928021963795601276498228961620935696579455992653834926054915131706766656581615389781222020671078840918828804955136706431620247812677713536439526022970218689606387275079054337891881394294254952956836085376774582035471830948682930220794964479218719950629113118744650499978706036411903174316676009128337274583499722878338139559356873242218445735681387403985407683771873686605435535819208935767662713780365593611518815299919098294197066916837061408654681840971066327791484322659282625403333686606055702120652512826988073261808127416009672074837762142140422767556711202641523797449624781503960345395390695855586739045941187793736788528997919959583577704074989229895126070495865284780442281393744153864516893410081168805074789940461524533041972523380254996534614868186474650859056388490085178495496327433029728981010059664451419046765066196886096763342666221559960446587423198582187731286238739918014003833292362013586038560203037152192150156424673299776115763321838428959985309038036852793255268640801937927682016253871678965774627421533428724018939371475856607998314468146836761296453029700012441483854770238652096618499208257366136953381977383054994795387461692966753246663458390365004997862970459377406378040259632699969391406040147902377318010031330620924207030172093368747731013303622567566391365588285330875382617666294506021361670893292919158040178994188328354609035495779315834041090940809280780322405891331106063166166139295803001349347235282532814050043048776336210074685720926848186421633544560321544002246383583097746485067833905232694116939904657170057867370396282582899560589269085604274502533561097579227132425327701064402036394914969657721909327288299599742258471333907716186510491923709623050194916256006667762351639067924898032967300275737248852595560548832799607320019547643175016919276007390800318791252965179111373405355199423877722871705403079074662934430882712050710134396668487017339208011974806781953581847951463065534872235024680286320900083911485647148315998874312625390864029305796978272061198293809119945283785632521679309629000543469485377208683181290940954323872892214975115160505883156558644642887620070584793425996831373429301340345046347793868124686077591743766111116785266797445998507788837824907716020464056190297637620505736497548331644132213347808404100831319043874332873814341791987053992691195760231076671461411636204971009314001792584666074606399508739872192078454229837541844103323934353445622521568228791746145752022133484868875122468470771625284582919470765250490719723097486369436595029844960320465348006467605537962491164293230562018014612126302863883838949687002278032675812162908707700603378940603792736131225390255131201491682456319427897639081660672157366302458419624249306914983707248629830913555928496346689620778263241233302467580640568811414328014359604537256329137073165793994799084911101888894434816406722084470057292051243995725548893155169138986276414083325965457666544913891617933561957991854514354696670176635055338148807935172946897961652234226671565529278116689492466274758117630580150641990625256174309874338176017668399624749266116688082218054800375510650026232308506162014236411430883335953296470773000542659604055669834945023346462999766137803857545475717669832944693965584681970597404556853530911312969968004148487419777440967204110316033127616383573947023978551409430536190193650715361604019596487081246188354252417442242548722715097280564386405012337788602815677425513454727958846807396894058268700346773223856580274762325630149144542611846161199802552487495128222911934471209360875106920433920085876238648980346059575197118441272500620276321148157559130342055006417893881699876241207937038173119996898932200996545422771530783326440246420241974697082382472126646940262878946074188128396781124050639755979139228554911582253708899049729997259373031329865705918675709482130040314564758858798995968354437088647485738682045503137401683373911366659664433353441527940116178132127526421382229109800575353856711097197956401240836203944204781474802339925785760013535717086061488079839912361942526057167294690001776455284713456203400037702899060361040981859410978977062422933040323968616945698652649078255102955636628673501224386902167454473889501269816675141330874833793996455764776055624308551818216265519402911647117260150202434293023553568598432331002294991853793245809244499078295057543106297654492012899934512520784690994492763830740233865894070499964743333774599303499482946373226704366115548954862353588047289564165927089267208211158409525873063288854863555070158911365770121821988258271912914947693558845458926812022968055988780784293129118622120811842495775800933400146542708216870046983924020603454497173142483922994177525135423477135613419593584464869620844937254396649967125247373217608649760231256873676800284266165048478098852212787846961269654022700635139076609210715000587155049712227356916333594941158019815209079655265370255048480430378723291390401241554339875108124482390328517157856349737091685536558881198594684796690795392442098296986987517904597913486837130251962761675567470899189979536265452937479431758515242066174485108069461067073648366901998879475131571470499329570812778241538567984733508771582437672676815905833778503480875534487309972131032484450448598436939754795292933463460272206159306414978343920698610678278581492599630203110034456561865989178466700128594219279362685497500126051683679175383197758217448725141149268258471064004118390139019793010586886463021205277687061017356740447992811452672623421106655610385668353501410761648646552110973132688470407652730862311213036219135029487718066496009504374911695039065296513352315470672111692393978486461647121634953404968263018913179026597980141536291681557031858426460454888223347627136233904121632605529947420630903597941683251512902863417616506624654555966374513685482064086493219114373364945441701223914233600094643051429704207418525370451080128063082424461211080525566354916160101132778223311061118818332177953902542948052394390390085727734687895483837872060368600344535094739511455021830189668715147432850030574644751161659174520543770495537600208863867532393616199473468902119580184724163803728887149263646437736542151878612291746949702299135937192092197243083654547859471160521972238284230029706666096459871502031128717832290099099241862607240296566947329953112174374581651713452638062484778418211533190707827572391113864534894492629536070688079345020497038508515714221937259925017558124699835732205182146930330814910773448256283528840257274080764397745799550707158807964979212048360158079343384568228493858722151741735781865394622892359288593773195112555183590037819789784285565078377060616775858109579649934780035509354767831101241281272903931022528740468583747891999969867412129135241691431319709506400087279939034860941451458563689265447682787389904290343388613465601111409681687321364238381060750847221935939549263537322696354778393527645985125484321895748330574699727889457982957956178844328774320012841424114561554474501898691173045113832722577099556516092996152472643530432542660372656925793856489063338310892304750413528580783493874220627380734232610587114590067340981448973514681301998195268378813525089779572265211594940267215008586180577426428720567077401381590680139310206683454322078552694233186997916888590470261024851720427166442673793016979318703555018700714351145675554045197884755364774604629091940852960689462682233818605391683911691921383918138363194062122412205398964153626130490379089343623656763986176721415844254550468307718018881398758245385451830050938103244945580541544257429726558620427246736516906467775740963772673001817687252387310210086458845283919311924536759400872417952386971358478821624567774530186486090189301519983594358637276017711920704211050365697171696096599752516728316599224601081359499482630036857875417553427466293887556287844497863456337834830104882230053804784176406617306578858113016771063732551668407158585316126999289699885584747611702991753614465563649651155781387690768093318689523298527185477643511182918800313389280404817577432327399171465736932392840479723157273867031543289229404436397936725304751349868873252314266158875751410931532875845406227846931683397509455167806328289686048066720058731334180289590352891012704400839366221112168333062906063125296226869495746608812091356401952215346717825711045442982731340785819235015633499679580764560637260236218532418319350827566889673437301867875218237688555795212428965169292511189419793587608945594662664440768627784445219430035296882603786372362157926134381673014786735755994377327723115697432252166888503016702478836645413295263104884597341244399747667018260566765352013615353091353380247451321217489904669982231743233686182346385794851385663808077410918150764838727700522488984094066080561761041694611103758276615680065360351956988755926959986105735244039438419448775925360941512203221058085907010697800197056446532748998640715782057355366617305913899690224068533905695574850114395813966563952919510871408643698790833494613893158015732972599364515976013223463750866930063692931945168013116168664084502354310317833453126470533122492388893908431497464228782721009569390162244728798198499255298114927667373018863538474005906296772691225609981968303110052827792865944815986089074115528946902686740024716834794746223716365245245405770695675977952750587960952143330947396549145710174361750506536159271271035198251902712550318666377925416201124038366635076736292308084342436656811889341189012729694981894922905769701620914902882353329751956819762642423546122725136701899699643381722235660875026585141255798847906060100548622073792627557869884084445400076648180067967296066339687681549645045430490534148098149435157358325739499151586250175726393752546519873605755698739514088309350934697591745658379322515938430469098406051675238221061573044903902294717802767071668514889664612352399105432699020785915543006137375019100237994560208240890964820509397646694497744071470014351196427885991516155474358450137267990020700934881693507832454871412468552532539524094072120743569287877738573928830897182030181889892098873965531874948532945408238376836611170952640053516717055856820592726780970547258160812402996918477783778836928917706362525164403682731597773620285434514189606767708613859611532208452756770056138091444996120771994366141731947561944082193570490315141519555396288069324629739413970097113911466870372768360379751233115079789704688676226472665327162662622448592936416542067557045805554132857309781999184000602204454923431081262569298469160937780943069106911937202521675579664684570970553519578225196148807191024656929436471477519662935477282414406476131587471995251089549082281271186606729211528412576966424599801606339734756242156779498307707482904723303893997499488739385907561742850279192864121250990919379974538630775176482410833868720897303192389378237138949509788579658680518804709628155269810736033915850276186585534077549200043496480875415445900285501714262154256797625677838194407333730845332028221672699179498758975693030231384996847765103615445132811945124134163992125128757475036390599656208846860004302986641790547630811309178673897613329995707671755131127491349983830102986442058211244328444914232076876410412119513302614500557952008950894609355861343852109835698355950331115917047741268246508104325557670111163752851184803323957056304335909515237514323757203027035027014966887450083409386308149590397850304932685559521776445477736322028286355803872085220976945879250113610706999139433673714523470849953716089174873747577287224132456659457360826112006202409515111233023305176276589137829890519310678589300956316748016346276659882302718232226704928162405401047106138534158924722078096730484517725091078979985054446551221279795699924678200303428472549764300678277938869325292310890760483540123520964868311271453857223725925480820831102616971810812683767047473845816517582043747159171195947392263400075072073426640348770522973107574405583801977496150877953466177972208737300113443804869775504212878384870363868489390579429726388995742981965647792834541115418975580159008890671836878531703731823486485193278206823562089891285517865462175563492349935969459289765384120695399314734537427016480074075960625558683841987520564771150881583450395654873583924372621317139558958468385393531603835448605207940611086673780951522123379265685287709938697470294091110357018395797868489458425967808382428972382561072718600830940973814630183186055269219718132361208768896061768203828938475673948839553245009670160363135398662946541120310878744271349497976346114544121012302936917935983681300349127437056025275159479547198630085168587094631807745848720882646996678884006314100562705541891966236463565909423059208183644153679964973643989314016135029566581210634153310246461618304670146427943832842941239580368746310023519555373088521001777836843094314525685443351503021015204721319045219201331099869017877791254954140576302577338825192415701455292400251837784762572039206959303729261717490032860624125105147797131811712302531273671974273987968753475473365235789858472137151724857422878182496023910212229880238766506133618694768212014792713719535913379352453290156097154999289536709579591262356150647847104066128607896073092589347978759777356332245434113750184652114418091158917047064927456921507295196639118311332059028524525595495273033995770376198288132623981414581527058318771779575574041857813164334436678993853422435907021567370292478498200527617977794145219861161573359706174000261448106762103457055951305126463645195883230466547262326716302056652655858139404280913599187052766331515319629066644830746525938223914466181768227544887226101265412220734044895611577674113481891622695021071280769141455655853873160835997616606831633294234808401648636701183263607092266460502656651591042137024460170863875612329235905094363100460312837846123651331930097193328990319085872094099437721429780720608155116550011291811881251757988769173094978211016593425950817367049354450977542135739821693850438598353244464105826695887589941142414235203815504565659456065095210519301897127610304596296498618571069859223187798174689785037337328820037437090474696550350045421688465094601697494696237005297959011304791508423860770188186826957547518925833375550742773373785535634121670942790673673560474170771288362707930655980146782255745381694398942641641544752304574099991818724580799410698275732780562334333230633151860005811777132170218412983384544578609256689272028216904059566612401287054493321193954171376098054966706308365256318866240519240860272294919255370825846085041745540958872229237076731721606674832696565291503080413201967240857251009694349631726481034025396055200895603850640796681011376539806667721906094024593657840610705914921580397981822319100759171935155313874088888587686337226189403623829949117292635081235390250055333735171650011323179588317526967508674426490131542721061464490039010350718174012373673957830397405940853894101106636975605123627041985045091751182125408175452019615532259327409700931721327752966175592178592096854248538281078326350818239182763200034205275132080055030626749390569881004267643142278930480786286425177447358633700854846359087974347934613162695626949982963010246366262149681444152578216279653155917991015375510835741792752632327192068965757514068876427722033805048199437217501187586468338941114329508474933604783645880156429738388739873909279965932492944711812370647449623647073888391074356253183266269709351715315415078199004514556426180640118115273928007760770285132702546748597610228996057037344698025658624225497602940878288169995073905613040594363254998863641770308634001417597769355365216906495824110330707527501674131623289004383952209488299676519454717926235383977478913642281066842311538227852772196741089738282290229016090116506659198240069807893931215829163934137183605510661310748461179093284903927199571918996793355142298717365063814695308948011649421528120384377257658255050836177625417873474182482661116119632041519205273610812039494881655033785256011590971209864707945782269140889299459641841351950867568468668706054797761632782162663081829181949053267314058303889359011422743977971218036515534649741943222736969463221550385466362705064101454205636423176679446778352072668297598667622555152923141684855180627214155189049334090416096227812564525730507799114256017659299132292241586559225186326750502362093244561751709208825779717618766338871489579931639238204113183503762773799771355021292670645835452579488903976206293647252625392377886714940213721701465238380346388878286946607166933326442710946915964819492767843231078780412619290433803714571100775482542440045706448550157780587759589527896333096864691426665397683289852221919502225594836052726055313468634666907493981989401140157643384528655564625884767185625249108347196212013181148318779372860979285923959423349934030301765057439585139708556439209888834596585893456356076240206708322737768168479123948836584799545207158239692151566557778366203480197471790659881570036138656340515646746556991164634809757568688683130936185596952492994640744348725583236986370213752548819993764233932411238802326467903198412306178018483551345793078672896530605715243648643919088635009987675292792953408064220088892451159569014590363949112434199399743050921526805361702409413749327766747639091312375873994186046422771267354041940012745393164810974189366490891043992341103613952824631548601658471250911376752424565786186730588660151531190403049430235167658003544936940423245517005207965553662356662983438232574500527340814470752918240745796645789541800853784518119002284210196548056622012185670342915830465335918779006111439259405009590576383490977380326977774529753656336324102329003641591721439231722283836112928461513212187597121539565692042012380462022609756827093782111637830720927534293124056081123005970108007112968914616129405685336237034973469031958769085765712943071576037025097342947838509919938703336158632559958278631621087265211106342262593860788752203463797261132935610998448551159181237663477147332934438902059084802132344724140719251981098916994845189338371089934848831570829173955908493073637299436733848814258162087589370752563040884515742471934235479163902466442376442574604368630096418165505420461663644197065008809797596960763008286660022164468045962864510867659771883267193156646737032107207487550374501177705963522118470181493987089709807541432755814906596425110737832139441568481499111766547455462443328163891216046723288237409382743695860966675108294227538812838869064025752651148584628435313837401110300639328021280174295171911581655717685691198148297751941590883704961171790594630388919442729348268480981215142386722995349835188264309996922687838330658973615199188181668165103779659167615058131816385876099955424838874206456339615927425379307429294525516250333780067109541068365577000207514864004110899679184468807006110832746568796771366807260248448095721739436479646936645294137407245048715971228274589823379317601976799006685614060753474170494593764380834958692852844174966627788551063763319688975359065558664980384594756067277249746533162251124256055705780845766117538093076067490144618155899894527130453113992367516382202426960974780708936307788824291112363063375377867410816702756507366777140502895727771934966775574503901964817302922986564570406888867152351693206778741670013467926472584827809334022021960503007987665551719799120248959828573296318123426882569467582413522550019249331669553143955620601237743717264965753715171017895499840157319939030188628392648536769467294198951108362914755621558854914163484081882057107720880408921630075978677662098585783282339205474892076937338759967705197761208289173468795101545525877098194082837739938733624381385242738633767717140571934543452970917663374790243800960787169542585844265743700825985219310775829934849117748630677655129244576908468801504750760293586738219544816593544702262451914986653869515492282957544820070560833285640420585826464518349155023172299609417266807025904590687102455741050552704461479339813933380854528864104256789189239028913880679089922651258840147860727986906837988914829656799109349929273000608797842046354271502998598906843010073763440529228622475902765734490796082452068548035624616293889837236337082323886495897222065274816780346344473844059906370848987334102366001072860070104836870602024553715947888429692322967133784649607778722347026918503006943209755241675643860444906691094534215706399750697121443173317820397234978915485204893346783560637649264613474843016431833499617395130123172449015121636702798157592045176986752615637160551961163415886813142511228204309650261417772067635875813808096675632559198819979487532564398346252348309792579866907596960916087712217659683032013509982263761829966236610185167627976273321754588408616991454959341582843665134086606300803215546809966958990591183202451319997406881408837995673132110737993945072780427881505452925289033780277284997814467991227428343740687356841205702357924283338629109718785482788892346638696814997438550765961450699862514112610679210887052586210972599340619709486991033953257783138102897514637323473275019407519005949502204129081843715170211120416077146830938955428025955480760674518134241199044751356134369120129058919991227577477500472467025644661222881140004636951739052121873893890525563165523533657582606145316310929184959616107448497263710217837551359072008976054231421202174900504610654166052578127739557355852352957866482289266801108263726695408214686826937485224349329780069552664361181937479074638314875330785592806709479656663856169268782762025965372144113911535124077625725191189835502313420277726817385128823975578946292645480234622886804110850347093302892138569260651802363416747553064348558404416448180600414352713286085581586576667818214837162463921835410416517516886216311564254712883244571479837402285114619534093099061244043665309382749648224744566039177366062886793315152622074744131611159414738839491066582120249811819670767961410695502273534043184631517634119516867520351898202264627254202298323604622823061212982105767102436336480441345545718536516852485975616771193781135062743852509495403861498705722477129722664692393878923832549472519278042868460317304790090731882554622235144594526671292393832869176267806785326544360072967293846318682817541381103392513004549273164010621716236157119306021856775934221053529050188402231771198926563955369911955541945490025181551475832623284488946568450935434579835067630051164502439530758112304802962811664375293321884060981575021200467445742366024163359227231555539534158764432230399210950103166322510636938578413441268427803953616858417319604036359311929237377875476872552597607982970050323571722394542994255134036425226352701737800151096282941474957739697898084228241633702922100758591719674551433948979061879776466184941851213170202648114165256980954612271368167861904366107330993106578016312381615953742183956995560300911215737069636415554082119970618094197444350390891491991763233727561639892607418087160011174998149754807925827080206493545001098578886280300959539897772058050452993311557822596977043967766542911015305512363960547149854294200409780207059877234863977670673149253707252560641270527329695872261979237954533773698175989285144952571358694386645477332938305631308692656435845414093363248161163796841906233012754671882546412452278458017500432636883422204933804512899755881904618723044894860818321169384227507141360732636892436820816625284465762222353993932173026171592338563691832432177706140363783024579071716794707402015308460540416458930767973935326856814372891309643481897445784663342152223214856428805195897829637398864092244245874889702143352501022389311380729655849772370843184062424736766891491734734776293654935619981996120077118960706586545027262600904636474671560107053036006187553247306482840163410198331608307427593092556312829515002428549268694963621057121263181819515426455119945911214332533885197193571970525148980527358908123136307526884452947101469864099597165656512008699356656375067003439508907189441077855661560194548551963431849448743149173065297425913183829813192544562567153490642763452521587056144155001935139762027924657469590164287041198372826498461982197485260841147356590465891146490249530322625150203323692424132467256703618484496048291847151945932006020055044282970842038995183561148410469326643071406742060937715953639986396877921990562920582283818259698787848060052818199580392219906063600686889957778737198241034853702368561141812179043207347795394792719800403034467889792211553846145387963841244914643331307514387698978915017529490335363316412098831052904485813674619532286274768912669104236478629304756283698738330781212652534780063224677544325887238196586083778409732037266499231076372316517034289253741719118651932522783277201978859328337674460455105457676100338266945318571953224439091269354554039395221557939948946972152156824421996174178221353129917418467616621359611994646916966645058580948810055314186011987634165365544101438942937055898719221069472906163757186036201185893132402999271644806827564353998087193723762635488440870922286418985587201270038853789432588853356356129631463332104220993827346073199224378300931045146609492587996345212412537478175790869522075052085561249645169985228524830347942498081473437283423197830991428557209321653520442668602822223062659619294577595431909864500540696020298041381898793542822829239827861211905133854234560585226437816227127536524815632800466022197481118554908486691863465486061242232502035398057457924972422495592801441900301194757832632201976537410785742535538712395699312766911125507803727489626384542157102363516670697230347391735236413662766009466228331117257553618111796707370970005465111873780764818034701677517510244236594219747591678548902368932651589812074681661772220276428869736621794670157183444256286931488294504940760152821321500078861754525562756230898653871167783949431754270847419585708312000759109818279541352967917938130816160244944737700889664925594876183818218534519596648577641081738128190283029690864368294565064702875589247752950027677880055207759264577834453531476229409737248769478834877589926525855592429408054959828577943512276279186265628378710180423411059305234775019164446013026141189390706547739019923493249798895634397526153080700016429275994794784807618935358650209551675705851018903790033851223684923283593086908779093349654657944346681785499631496695102160864455804797829970061885196421184018851366216118166217351726714675779450939493026740380049218512478274690628196590798293042233488350494302927842350326857945323724469377721586875926886338582227740976604884247285182716102773423597041789079222833365388690704417062609356196440535584023594085073881334460435491726508571220394260714537031832358210648617449017862653645459237187980101162366754347544109187393420824520919833917330306046676854256563332595677660107057832061559695767502366145656022037211963971966485474864100871900045037229606326337042836946679921065221211315043426066850506292784493298766431709110551228334656573212687902776155246776853397254831940459182689497915785784139164384009150062847727067858009887020920607191416294631109661591718806240121286098839177589616296326256871581848756124437857464720480818210272337357036878204810412031612012520001569926687119820240390987761104566298122596825046939958252911939994934883722449879105161294745814335548536108832844906674686063709235814571510779772963040493787214982626838895134573955277320303872049426494857569915550703019134160877067013743120017102820787913661117397210428271341409758018070953600761341361942594913970913505866555933667092246608452085023430175460988666354376966291634687951314342424427998429112109645370900210356416644071213567319134302344217221884666133990812293729307172667286740281762183740807776040637966790328929212790613884158037120454713106787430942801637959740576495625500301165429995924416457040838255082890112338179400504441281873228692013233636446621810502494237101858438708723343443816170428536814544221432444388292436837752650047544319669987176244426485122536233306206312619548308874391561422703408827518584525846527276998149545711019575289406693708105591736275618163171680863431552483047171440285869473029970882596551904187921508696175728838128525382319145565270210285151566149788611188260435859717621143982839458122444366530556368168335592991643170615765672600162788482482470992305115475527502245958273317762403277988945124717828507033693467876496306875016012512952303817784764405127856677990247699626664813277021805370430748487830373227942790824515684396297491613491702885650340432217669016210837637681141858379734219592514251821335981083617745351767789535530140479226987288110859024484218774185404565131832663352817341511042398316551611530572072045565661003565810050472005533569599649465044455756117807102994140572080852763179257430573784540191404202577198198073640918465175360105077081032971929190554528967512856218829543741630810376676010139426996966977666482941792547429210516732588330098192873220527700336791250748767143088293145606501109613410660517300049289111734003468994546682751476268759312938004826064133064454548665327691262897952426137648422047039390243574294071382333118013682622584733905912841231036890893626438172247501434773123636519673571389205732249928859915219919418181750281983128655751238511484862915681247479535755945879509504133324758198421031274428903365097053440160282705706035130442670706031125184936047776352287747636064258470208836281544158841402618453578730034138385972624181417596644983827828655473336137670155057708360367884653065549905914572446321124403024044658885773988577124376196267417653613949735596179552184570868498262569385710266035236716073570539054037430887594681851619368732221357077749131901398295817469767336444103217258501483923222063364879261645241181816317645007687060913593784712111763124099454325283087739725815755051403430104407104701847795359423530294393808354710893749778335523378415634432493667812581860380000515962656268218082093167459652142603878199148556226641831056244279304632182425646300166069235455046681553208436160149802116696556822895050949649385034544406427099249190674606785233052187850964742495823590871544902789385190825497160067431834657669313923953562153898167567407576225562929573357585496722628578436273036859948742455907003052364002538923577399046116404690930590602488763311784868608195670102709105563883151999553299453326811005748619903093792540697419999430647909436331554689239903392692827075696177573979733965443371758946106757475106473011780172635645970376496140760165725761704903978896659033684404273404358535649680818030188114958888141040055724131027659964289312898154614038391239749308956950682023204863916479850610888298747437293144985671545024030087672186702242544838303522978405822067295851988586336690341831677038548131868110729027874605435109586244604459173045445593222770769670372457494818013749361925017093266900238412632011287381802131209294694743349537109389890527545665141590149027937143850949592634878378355070934071608560098967563108643445570495105067172134222837082126436069131353640105702820325678883324707668574792217292999340421042292219636634859559052568486188717090065540306206785486502188528688376109327077163941652696649135808095095881110491144302567050029770469985326646290237201050725189472331808888363261589040561443835419169996038893069009099407815211916794892275272873498104567530052903024790367974457354178170584089197262196496893535707434834306639165969908342113936129170307146485922983155716460730746082573655808138269494959500429077283767491654872802329915856436796754639014081363115086176041735394084927221421668634681207898597210715342844558683479078365916197231756618604418097363715938409622983043899723624981169720838227502906023013248539418549921741251262845630832184720198575851707217477942122739780453479776016361588869919298331191436638589462578151982859638109747343456391603626700590741356728684936763269122008178637785939368545358735319187666662373327297815587609763161849255743441717101920585058486076368829035740087143511025229128454790743273803572939017746384602395425299101156450847713715633281426051356050783721160425860971555709367502563440819719829948023042102839485660384109027857018972121261893538954382270780988188370083437508357675246305802113522786438135749976335230797613678753774877588806989745140700613985529863168275258233074139249342603288306163956643219470822759462726072451019326618741583927001033504550422606709515565322008401439903910251404744550791093155537481769089007318040350696995784075581723035525131734831979260779030574743183491927239236246400675760805577023687682203565406257474330851115840352881431346053530472336340865106792769436153238579948030472589946407038451418624715335498423603749509549643385832436215397636051145621225805124220401122368042746655280458740020418411162124810926837588909419031033906579982831695758106076370845560112131471565549858870083188199582118808994858523876813870904175236949806689105492291696809583873285962367030495599987220010462399946062197500721017404158176380842418051982942984231184611979950839602205466087012966324009948094685773126766093444924301147779185453511776893648812310208998242042270180240103435532841451496594155784719857427650495597749994679684242871922577176892976684070533208668348590268673883621156260709140276295333267867949014443641843743177930921590214737386380465988878968764158125662121119442572421402095959898936508671740127157928297601325081271163130810655174871182212144888223574482941295179457369553983746587757948588923164797154934943433240250294719338124630275974222407244892727510606406848887270882608014691442573204461832245416303387262376710916877705355814650555689757687649491310281346257291572187068458125747906278407625294366226674342546430894970414638672708393139168838004033276124613804556759210621322169535567248844542804149910564151215138176050154981064178031135783322515711930450777864415124068738295410854879161717317229827633433429123573364021477056490213344821220404391289068060221754622535209507557097839085544484227108461012166237637673814327834435949311251840358203681652070489602492772651820288274129041616850009615165030778776588400971781153380124258483503906851888054879260702722904922609584087783808514828709736306203475007215140035776979480195513178471059530511771268980505496972927963893422545420644658446480255907421654298436080470172130353993746057110605949510191519847781058740898756167132229718614275399603630280621483410356792750014095970081687726731731875978583813006240690259689799415186684602384931693138872954299917391734354819532136595105075996497697059035515939498363458185207427798230695724098579210835184095474081238014522947299261240060416851733164435675570844734245492571851934588026621630192712054879831996589223012577945017341617818732285940772704783686734628854309561014048378976842131975030905700741256734668613455875731720501987033892531940102643849355695261314737174205528538956041248893325049590451228250276732431263782927546765601249072722924907625703994602434073299715225635498659342412444081715644868883281243860030979595443789263697583747123094163212749171033780530619526180093063078631723016222443322068250371391825908034159650591686650986567665157632504429159451572281681616422780761454364554834062361785229989533011667822616789151811809762792292183044801309701969694968769108860297984197625378332009232203195723724480552315008989187688913980344882385129272375056617412353437566917136895349614915686328337311342950070684513239020043361080633873273736778903261373498236676469297112475293904066714786683102800749971878715298340717152494687361518791322370503193536460294919278053888661455455031298452128789854237560504279050356925050273389333701461747516809248620455067895815003239565168631517429641862644418977976788477758618747418950274114043100160901048467616892697558371023865327682872064982881451715063491498634929023026320435084039226884729919109286246170759031565735968474735911073670369782088833755867274520050432955019029566945463832691194897246573548068420004137572813453874536854122922651427492924147200612016260975843257343100213029901698817313007879893122423061384541900748663890151752446829413066528018180347463648682882444391136345561692490034374037984285079411377688266772186628086587549760919747502912213510784464405625796282575169860599307201538518979612759274608144724408450246922850466289732620235016735709864914668699844529927690318816180233450976976347753209271589019237484815170809813413445035366004505332311878184055688577851882434680172502099432072074175497381697423899093473399301342246408305753888708114185417452394765387162689759103556180597079698865174743782315052315857129212633998946261271516852684801037900724002523956111206484533938825923489433113265767712741172471104712487272976526752772274766490594733832314818874539745165858625801774247607556293647038155630375528350315542309644540127650402723493095259473620459563950767457067176266126661715685437180671934846509475057930924862846615180449305670530173655024359282327979737322430579105210984249005654914359298684844475523715310501807887581844038142404729521532300563686438593457511666638981676018675040247671468634701710837081298120639073287232801463636738807771677348637168383470682964264377722319860293373251293419154834148940805229794370435084215079642545353206456506353013836793185516269414177638560537650634009008176341096091674859470390676294444242927427895683782011080468237354383080431720467002710415315465539910187629540877934841149823322892110643194202692485723866741129449533718359036486098308375649337193600285829213325859136057070145681836658684248097279527262580249463383534598057830296498572158268118210279759087619874688734075483853825296755557502457402951628380672194069935907803344653133570556246324351163078481074086164319492381747010744498388964646151973871918602329641321442630539261259372765711317563264406477031732055536728530710489161222349038169778105201054094001317072279704452933758087514643616697396762969630020397233225416549489529245111658491023048774196201180149278702085797368887380773067924214612383408484200121043863274103181795248406005475924828354947622775336205234772128456085517506828870025176587980481943475531826863009716981105912976151640629575301960129395765921217615166537018613563914589016140656208123385120101107223300550780961222798364802309254306394129908521621355944754760710879900743421823277680986230773707795978378935332814477445906025449891701998042935500866536442361534099408356010442539274992932755231189632012035727650974968898467415832081098529508806369476083563691046597972508744832859262302545420490479404375777912922517712483066194298793481167736005032456393541316814277174122442920463740909382498080007673382254610134172089817870948760040071529885648198876749752389828848152941078633438113000821737288120308337265848348634554111522114802303678340682386128662328645875838516104375405506137362216344173006123955343238699605129345249127634489968816521449362721337925434563143342988962062308385179029469530751164688003447681916437782972193106070873195903423081905410545517163092422769826726850855939744645707793177368648042547620826014157750486307584614033119597369883490480578250031738433768617525546667043600236542385594312482377072114241318149422205272024728943407580560409283584527476169182672280529271921882189356589517860881511629868036856407733044323746097435837642794704112893666544205652832755254848752142323426707373565458625230592356380571452839640102869023930383414676316565708578776602929043738301069828355518195704565105984108325088124060799797027492983258224398042102291501008198690539898224160710756803314201500704706437533980091821570451162548765403652556905496059111638561748023559112561956005483968552264609698549945612028117957252149599592945126616732584610010689693398702393144028601930831674529955254068491075736246453458269277509130675162516788371341226400020792298736544473410870467442682669467417971165433496711102367978906332299430079507321307096894250760933004581903696401056570546631292947689954017617917447337829348775816268394522632379623838655748823306369379203429038248016452428580559028991666288554997416108805315111356082652590301718740296714814874093725306489397558304498461314875515768174240764078785906616185326964441656783679668081081715090404251192542565389397781002473720264871594275699311578430409372594808033074577038184434311846121720812808703184483742766920063261659623044867321315567364365213221424270442134922173923609374691028605366031581458868586258113559640307508663262584636894675441047446074425289111553033036469660944002941421948849077716217484990505570120748512893075427422421204153404742448757068138204848226259009250123058817429236442704241748664231875082368288600761316431867384435765195296742822368929852852796651565948183335458542587241374973596673830322626134860206258128471949747834415821602304379634019898322151148970447158867916205631843575879006344495785319408258054359599186964044676453637590537494979734882139575362285426931419817152589367837277078097860550623769762118719365342555454144046459585285493487181989937118078199328993157860677068567425580156803123593917440033061445401140200414714980110630576921146294068661614317996251008620178615714181032872072925011932488276153453064677752452598694460331285788712473516589466032807645160285904812407462572433851376066731900277905624904082038548559383081002233923834536591926307631544912190340237318993262313719094326424861153753279324400063757639589375077093095294464764051546206806365440405145463031931787343839805614274417012665167782341015785375323097194072981883766002786484706502784778224925468570896440595229568399620960213933973028004509302358017334230400345199853587612240330464899917435735468022746367746436725098051921823872276953299236695669743572861406139766987470349127072946822125919175408451439672448948100934210290537961644141022891963943561242044652815882340994278225730481305768019945708473430182365857009466018298244003736978265496200696360816414997286584370265352803552606479754409944471575648814386472192550603797028319472214450693032853060907254235378375744908610334630892981014293093730147109326071559736124626243756236228843555816851902117551485339269371982782095595026708305860097523779631230788323341209652129965734720761045842391533948799294371400000647257491662389507069641745340714369877314178141713816336802155538092345482123542183928631918585287555829333307740173973897525468576086432455922301475407108804753909773099771311715017756676207514790037467941614934185433083720774957828960445925947530248682935522730253391932969590147330514111594174882093251754394820196326240362303357247157026937378135319539438974742579190579388911439422572305010001359328834794372645638822286579799622620484771940318117379397612572082446208233712337604661348513470149621829472669256390622602840929288097453131366483246972422431451151059328590737719193341104267497386978060911501594887555537946903685608932468225199839241433564994870850172601371442016466959235662431187911895582699854573343783361808755420152091844704895967685645437850863626491274166269776170315301349998723906297704526817799601877682256920017738718144626745804403996953295808323802520581408985413221051908213437844100344135936155341487878584874887041620598114849743861898667702110667383338825471394151692874118973268218587436131060183196880572283182143271079515399224622324103547803698612394308935302990751327338139003590683123094220449334608301067920572461964146902878871390581309849727645843792315903246803906402585935792289348867194193149483523065370642857424997789566258731983798307721824993251523686145023312379661280224949317661100893557808252828675730319278239232965724873416683597163351719055786069484117825915020408145867996107320363437841636379655882456304078233589213151917445686815361252835331155936848792120732898506228438616884579115069452056223409125729065816357188157266147911571248028579058195813288069750570716744239034159202834826870834635332172200327488304137556559292724486915982227345425419358368855620247145243781474215101590810933858676813479458250005914104552932226922752070552743028305413130689621771475869925493051876666754985990150020163810774131389140332439277419341485863855201304034683865134898594768729697954397579205542521054784544682972250978941947324281616208244664770382388965878903611529105207716537702022809744949791961666667490377498449348345451919277880894809467786702164760782539102572968419910086646284921108770772570211287491840686821292985325006285496801192204741753428317859989111241700098107570612104798128239947537823635325080284278850501389339981674748214827285088797464887597628832200413818788216607525673661146770974060918311563265594898576455968501761680122108216080494039216140284526426410136679804581674453335147562673054889450221401303322834313999081758359585891947367387550917937171981337582445169694973047996786689961556567252105259061088199960043659613581777708410919878202732665931071690289851968586011730473120790380907596852869068720382753490777787649276937286548432916759662279716305730784121906101884293830585154940708039712635209010221813091617539581957466097844179925150942119953689301654880676429242461168901255010933575311113444779024238513859174003065380321357970249602050150890109574393472945264928915609207823975668418042047221382398704122329371974529702503352858393998731171049070564513466268825625478387102422118810523187960002522687776690549736888176701649489246451059648028256270221124851818551243814799183478584053443991237605999533425181352367813078588503293863034011350568056064070577600512302199053963851279288110470785499272594862822838459277703140330925353668706396676331096200634437625658124360072951993760865286481722920741286053143631969464776852476907205137392277265595723039016790115663966581799640153161186086450924743948570936678301829929115865784085509643056738055547537847904652870133082275821631723633580155043011092125099137449402519915964672365811496741915072632627032969759127972571337039616885612855943372398968362362139357266923821393312060956534202395113622489060213806625742740734905319360774549637811592848292161407635127727997380704935854491122051675675536433609972388648434645427224650750846803445815412802707807636849411597542931297798438201146047277090647923824813978376532636023528100931822301352094896555128192210716250035053025797348078090547665489884529608278905227994168920400080730431598854361814382630919852667293352077969056389544615372113295819896986447996116475657307619828259328649210229740131585536148840115872560575522708873036948150827948896006081868219266994855812111996531484497488576531799333912381461161947739069810617998380773865992927185201496160511528758205874740516056711391181644557609611641333045066465503600909360031037474842539378231058985884106373427444416935933134680740350185516573569045457466082460047255876332685875589415488971606822515799938569063862485368036260923760174304660807118110304574780864847416891105940116974793029219236856414790790323057351752327010165675933081344761821844412809301550089460034517348373298148529451391835206449424504351810491403642461819349241680503490492014341008348074025311942747405472000497883631909456649398519815910272370191722044813803794723999083259338055139701349871413249870763729346244393991922454822222441480843124718101170881661795802388006199364461530905012794580313837976797661505081487978474407313648193783671045658753207935115483310862477147755690586222255215720282646901970132739356183761103724719484556116838562021584609650625363357773707810401374959655840945166203967109733263861072737815690898732555459169457697904495056866004437630568817061301636165447396472602044866860634166164845912584376789415094944328974088796655006189876719071672677454451247535380344326088541660035010210874013484931443009871244323766867818712268753635804064589067965224560492294866396437740321632024067758273660768459397102779791912112198659459916579496560431637799226099536683302514217048982757332108475029246794764073775080958006287049989105523177976589836095168133828072076918864403893525553476516275406846051645111945493691018043665495383360118285016808688053862495738817744718387776551450580743821658611514088183067731193686419488357602647266179621841970273743488818906070338692827107970673583273276640270971489218169924084465748685083943520659481512478880044282616292515432430616048668354840514894475732968036146308270759083028975594067952639761617978167565213990092959593759975748966494826468641857564621491210944458690436198298568557337713752114320583143132322051827183405580569635941271660192779705038019540349633658581349121328686886610500312018805378862079247297558367666152555844844799435916775296823777871025543928071025053094611177139497741381318121319242016111100111584855496482235433620911647079378818907022364513810509334797827899029752741816350217176048712189389895007035967477321759159092891872755109579354507874010147787442492176865847413852438004984564366123773784910918408970806336141512887826331658350859528455063503900911804182288603812342571445999946982267020313471962193690989155060616412666471529504806338908507495802860321987192716981775313247707654957173471927310681946901089569143352478106107063416590609253542124949790387799305536025058407327596631229626295724268714611069027422398006857298361865919453730715783856500203883580800656403133887658426813870995915187490639345085717251299851847180064774879632421764051255315555090550285086729471470180405172530365661311017326365071327611446571047554294526010085281309652379163200266444718501931372142426497275639316206728993165469991606797061776851226199677449626597541775858774336282397242547865271199937347888165558182216483080153053425805233091816820050200354431427338409459073819837084185260169530314723600097912617281407900697523554623047348119778398173824183157517610268348240458075296766468807786568388249224973141121449514026547938556832457147439289377137578640458884938959438917621526990078870046503702512228637686171444577440703597224986494602503461859671477008101734115793139886281005119739794184582312819460758047472270701962122753906443702813604011741528810578900160935195822578718069915632122759375378481561621111472884610030386657102913462107072391534026523189111945379357404242836832900991259633606823931702310480430677943195086386830808271614649858663989480442160640064539750300037389793766775025818709782737464493982103499601806681231434720637505039389418282732656811453620561407682106493869410410705747937475820861454972821350187704902055799745676465998533220293874173917214071582927385384875901055560834668593255903051409278297928032655527498510396528651550433640393532768167756048222200533924293271910319317043193178418970647066323133102946571383817261612022012948827050652216421390349225727112404018105142124107025730092473200505619419839207625431114388409715964505615302879216763078224551080278625819708157475711049459524611199499349926761144012556926107566446051951754443294262514224500304989297950690570780770607647343763691750040904214826914965384501851224562122794967756286054568632582662469664025428496071657464965312223500912602894627000172931793744908548648091115649457303855994548880369330172544736773654784835981711400438230732787249225876199895361226828798817426830161691355000615501818411415039312820641218604601122797742113699003064560514121128655922647528236644326126583300532880592957147148934296061045930822976295002092432083550047512992390900913727643595382405190186460996023560749123140683140160996464519946918307748956661974380750406723281042222179468428320695138617093796330651891202693558701676007056341121710146086736832727874689408026804398930870530942995693902738339093945171131401428678773294541025090933315481831030604347532597260097847825740857944830116864924300610866717392783075177084882527757817137648212035776266008423268034704923647673678845480095642605163603652081938138046011963282124167884599101790890955556869884619777277797650244987746269516755589324132863226283651126027075575309185496065843359826269507653560992983669242667531328384944882825205427252022960180247479749021467480146720993250500885557540298607067116195850103154440339392297005326867715764871107354860765947976049978285373802932153369090777414678105842600887103175712609664686320819994823918914571657612613592391565458897314336217866948731401075530634034349733161048503311309364051310913520616416711270349374474031646806539684791630638123631526121622303956745639739468725179869958054365529864513740060673168454969463890278978803217862329069872022295069700575522335115431546864386677675391445184914641809783740253920139251002881526889499818876648467044201449449508435169362564078846622803267102550692528487025430410884386279528788728749843259139429700273114454390295381869454311947712761936107285438304653206444993626472809071859900897753853475120013843080450546140501963479997386282485288389824742865315027378427464134278394053906769518970434860612441516800327216581725496840167918031334994215273814885683672912920692290638418705397934887231511980036638191410977160973922244212875768691498230534543467821330943642154261103660706682293015573228577439117507755268687966252651841844536162365748659216296388797271571322656322778340992066710320440524348953651597033614305945887605095866334912311019875136719390450988760175043898542273762805756393775398903520201746878385884436353452120686912478727332984427283909280968111189525853957456096003253886056016112877145803883465232884515305498061246458503856691786038307664523859452112452765407816853873459155642716400526276475924496251288170272459015381874484002709881606483548848485506967967503594628005787148710755077974799434248387078783245235277402208121403868264781347972803358417458863953355064421205953253656109162735700282276524943821696133109353883771199262259855442036176933789758899083918166317582881654048180666558969093609702266277256599964829233920718171681376999333251516957377659984463377178861420742066619843561126300945175342624510699739998322947880617120041881365045265046526263675651505365856450491492859137137247008967147043010931861028534269943583570954188683056042002684568722726175371553868817445204857046489263227592674163696381684773859641405746586541613332801828439990815213116455346021868456202791950873609866837389557044393939125180078809858435502651428400549801295984833753325647477451899286763640353393517758331752546009618176273005584168209908673178241975027400632880106941663885648593778177010400296700001050474954672177207279887862432865222029344466061002548650251163681134150373185611018687949110925569652030101679231557592457132843662334029585846987318412328332945313894124416440442085314492945559693855468101710838038616767459233406343801754833222600173558582960352643191894742364468030433054586560571883647099462060913950998156474964083014624211496040146649630551253489526110503205764840082400418072721763260415609436216887894756878515105556475414869748120864626881832110090068543085585712008403739594521387847856581806004029774165030822715901331763762429116824530605443533770896103382779708896708040368952396679962362137389985918865712089031587250272147377894854987751949313756533178083945691502964861051015658354030499398586596570826622445485662216254043837300879324118082044002267584971751717241603280159316663033772231944874638493049907530693823514662125976320476847657553499690157847232388737428906614514312081526601503154087878403347008981074487794377671886660867113915281736982445993348933327845510312319307626300632079037282910759553727486546058427603220968868022686765247562088077103202295036712480937295383061617907082049497211006941227894075049548967277575200005155356167349816964534449241438021422978103505125200188935018704120695488232164798539135971461663104894249796711577266758895111908130562550685673303771986672226686210727701177388998233319502939020088614506999543605740603316153917116037366119426503740552270659747416095050339324404021879291727878065781024011305530517021291172816576174259412957467198026920327832463277098939971864161459302299688275191785165404860067625271669643623952642392780228851840724305418587638786063354463253940572769341339073291370507923066684952898205440854009702692830634664794620309384949898605445250135520806558232170455384971557027822156648906807056426903067882858133916888911070207128331119345414900837054562976127465961923810408265606907755786718227075187846720028618660026866976225647804497833630248373415390569687846006308218758549346777534986074904110511322617551425441021403187113529604652754960738666222204932246390597444711291881926689175078048446557433204642503640346015778581906486802501044260699835661227577704735975192863074558332483087326559028150828208417718720445739878739863953603465064367371763843474551525374932903053804426214192016666604931768066264144260510035334408256801189970996204542932475335616741792015256130432132078583796650331817561250362943125138633534936685331250239655560780916986245030191616721808489278464692725810838722807014990063584111796918798524715378572006009067872382983477790622144473654225482989382994117484884993855280856735001629756424298850007072979311758117168472541913391150805225314320118185322854437551616885275698526001633830550496513817726704835597691714863776497737142344942203625017597670253684244138100503941478396057892797549899270918761423877962145737478872159972947975407200141389052276138772553472620675326052129198454071206738725036252563947262566665512631870077796057685033057797718291758257311384417478838141575133866929604966423434505192960302847322626957284698038863735945133160096954085073555182391655331919830609816759074411946224999411648579505260632789726074553049862202730103374621976033841111090294061516954539816439130793734051665357450900455908310643018239430436408424088818137273286940964869046603903448003905037134254874107165706907675903663656337574773646579891550131916547434083268972383649785543079846805853467261099888247267513584298262604402228683527580066597040090460456885962630978872186267541368884149524784913976597855699189842622480934270760964213943970484420103256286934384064257006685770466098278779750454692243302689496810990124565609536317368957962188975650282952179700791336204846532811171536685535589315208038258175239337793733528366294008380022582081605934416667165477096450817757681014327236021079755237385175174966078131410145621848833402497614135373254052957321910491605954992354241265750321677827025790433034727573672537617303291032371017059106628207761456888582014171424683189786108260288797668695003774525862347479286854396236164833969152806295515451194682223000155671666540541802410212059467550171242195846978682313138321594160749563006211883511843166182079182757384418442490874192323419345711252482587784458068485373715899872318954778737593184234277874420554758717338591214817342595768504237501396436245559019762717687576083223249640791849861171600887223285899519857150388203470558812951654555643565443682805849365832553575234293667348281915565106534134177517874914166028309517295252288101499520569654531981156441792820403687482059665977172768968422869158804487764755602759431303524954924768560716355899183196072992230249261184079659073040608636790800112414915197107556047511838592530189690224171416621630910427781133074547784238212348362820973196547963696627014277505823965304942769656822316151817791543084375494116681807353319098665376481995349643976073816271964274997430249133937347880724603223386870314029769251314748347404026715935038691384339650163969820070536310243512133253714213115555080271963788535608143236141554162900659020860040301929869437818013868937971533718654952262050957286901017874518006579168592566750500325387396319347405035127745831153419783156638718174150954511258376553986694106752805504790897632186048609871372943223696988285770269808223787458610754950246020529293965495899479882232433459748073651631502397120963475801628903060887158361396588552227873549211921906315995190699921748643403347169685992423721877073413484456716335291601108309687802674948694350553846864745830237183140719304792374096565000481909601854267667421754650063652644125859603531836167544000050513760165188187665146091023704220624252457450066664158149819546262833413602361430053020566864809657072795725899255046687640499686755733669392555719737099812836364849405648406621525543962145264068815882545016571468229590876078998416630583564387335064245434704947805030324174860710266927992839830644914849070252648835224634694840635673965031396536090607700748248929820596001282117272832609513239688940144589991511148304344666053399645118887882793925247424290248031469016903827471356119270059060154088880041935484920426365466633278655773275594692965824442915287253483738923696416368800470068670918074412953871638203454976732702607970375203213294284312910375587914736304628604199104567796962621819372144340543770222375485931245537189431344510942717620322526923252818888268101082718153568346617235467115557754964586806563600442095370844714907317710196979341236108833139163183657656924839706454221200878696258328653321999602296535009053673742333759285999284327251164405599470101246522522558950287118064090632621186719465951752095034112741830629105426190762123767454365686014485856020985611298403672216759371462756331888737859883660743158666722047869229500196009636939167212490570639777928846233523468873450676460115316402440597317688473576467165218426630708513796637438870103802325032772018699662083052075708321312163430155057221291794808824183431639249509641014350426881297844425847341922471178079709431824743654147854963930140998296154452305859374008474114350691744240479702362137294398650515173089063969732181055286113767404922932137491493919880841387381122122546026830226201124902713661469777770635819719563991842087024911697554244761280962684920621380818409549904625878792966749331167320783854274522532624296889855986454284975765930374858345265428482084317112685029359028622314006566336070500433731257561813875169078001771402354323618738019911622003074467736060545192447221015057644911998043724011618758370564795630907772076072545534481019992240062265177888903646534488598887386756514513274815980099243285404620639368115634797600205062727648256298925501513277964725926681074846067277339405836107306874520654282404281485359271781998270875720466865005236376394579941580784931882101083759001100333661160391928189092242739633999003510818638867251968744688917780191859259594529334381266985973260946714448329529774569828442738946610317291646214510051486315611070751229488303267478043457395190437404713143390793171077912806953502091259552845556093746024275934268067970541458641104031924067131600872234702192340506476638749888074972448499065986853844224050786299280582873965096469543391014130622643170428339179073517580242472336869992347487861168053794375735697122378429909110467799641879874232888394443006002880001495377527314179507301173212940991664254415002986820423444185028308480781858971834261975745373881182164229845665147331265203027320473959624549004453386713479910273364607987030937639524259665173337882418325871499877275074768010276641265699205828706866273639114270897670532335144789167448010496376189193800758285088579687425498226958039298459340836410926347961123529481441896808062207667690705050064402618362891799702470251181588192919417538456018275920263470348076715593182059462776678666014016272718960857794892575041351758627749019640707517761395247361007946101689053953807145279813755272340099481754616927974775057400870853244650907259348553863679246244129792477143352392487959546603813873727439943187479220565042389016910320858090842893628807741370147299775304740906098704939734992142943024827990530824225038203991222768382993123093408998292162411688217652981254630758875775215669031894818723751638971068097126580722676811213673096093881455084656357415905888184931662670869144825193185107617093815766963709931148519056990373595004220318968465448888724608168513591980679087498232352751373751473537308386823459570210574916051903896189403331702184285410467326807265283855644092109072628705786706539201169711071344974883573154165647718664632521020568602695896288546781089773277778666510154736397883595737879535414689917295222219372897903162889001952112047144691694923623547002915520427651550466162437135612544233876695963407038746932006374046700518221811589796697630092958464554471554234559195137253493194240700239631450315176617873368464536936593909040980505944644848380443745077470110571871540160853136332047413598349059480905560373025457518877768187499523520605397587880249748037782881380142171855193262187325562986487656751544361327407439483188283790856579823363574676048726650331873489845911540004709715308375942537206827645404112719430068952569154940582293722017633712264966196508549822618094710987067398256374476751619130945246539324957106125579800770574422666709703673851926522112182398103059223488347184612629640926034986283193996088298260227220746068388340242618176233587023593570329233152775067016236671119690610361654745193567422388256032375298859271968539223969764507324268434048596512490739617599963601614539457792811854826384947383447653661023691818410794697926040109808510213812167575541405158563923983119558717895923574842308856929570720730164576315044376755207101274040849062838597990546691713232576065550330131352144641825256470661636761817157341115257346906606832881499508831026401797133548108204105649792037437903845990211093465509048868642917856085245493670368172216172490840942516561633424793151958266033028575820113485900759851585952540656096641171123511586429863016174356177863999443759358912069991379153809627203213256094755879349264145254848119311521547599388621097831405128200469807487056470837017935119327272977306563636703275734352954840860368629298169061236981977980802451405147402486514736145676545910662900887213190974498019944508240129789982737791949598356428789970433001390133032923054195108263350308227567960867977013276574959297603899637855704698246381221291075731024525797160649162040190363155128263618988874687532166740497904132091456189807466046850652028059709847254441589020436382005429590601809253123550876499604296610664135364067429958917241736550418285180073393546767746634939932207692940961133808626158352858464582054718462593983108121839582212524477106078521596862907158760896989139825012098062214861184103698788986583090775585010137949443869169388838659237568612950337002222733122700523675842999859504197110674832450137884445389167891200823847232309656451797546444521826433517193521606742004590464754405091974322294462019558364101861089445277304415998953991264226311120023647465247761535991789580702073055839648421972303854373884875204595876996257245430822241939138686893424629708021016812644547204728209254046142669660495948357880132478093398520633091751964437133949092542091758645695705660048715886847051035056150492591648018558805882178827999652695759518150919165343046807614855455739610449342566964223874188727669493263399760556989073926810221234908058391875818966657704019409926747414285065756827218913930370978275408819556789936391236327005239422928948329838384158925582391784870543827342811938548960321898318223013608999421843919226596608950469806644090365406010277093603863723188270828433687000181331846885358978554579821045955337316941335481891384796431136651453255933584087967712773430051012521802324628383674678648560531538547035596052158113951225568918172622458972069851674683554928853814296181084832927480984115674803559460077738169943170044886190432748504306033115617868310086522679050600002324396881394106026562168778818075377408097404063054706812483523065478329104880535093070797056630650842112316695163948703885403407927208063513681177734429640747589672719592412432404873403286303310723382248957992342142395403515419279158109770025556843850931515514164965361125442129860951057071143343498493477027058862372775965367253138349330375016581272491942006697313296959524051449304608659189704898541634858481770856753629020540543060601273992363374993683005577456278683714988823489750256358563507071251460834790760075969160632754546039752167272655102776825535947492079090681884894572878623817592010535879168816006673905598608481607933237906162655218836348171354962556028134191246633391207810621511610826289526115133748384899159533202932856206902070885188546233014309008134859026550328549938688194211844402570961618509086547996724645860381710620490675750796943222481681562114772919748367054307347545598615814285351446240596584264882614305893854322054000415435296207230435540575423009956323869041946442146398892028312144939253607795220561526154512642421289475431943405789745284480191182858478449247824662713422631001953393034781583953798264156561259713540972061541883572256115208452901193890689656149597995171595293955482760464343440206466512565564278274465927770012062522108394285717950772788002902726272642839774972027497905032646908183005708471940061888834310513952669381193419244353998040409846846073436681623639565225228027298821581780405411756364528281015857500708145321030135209342576485226401135455078512875822247465742181273847600702165848211688121862574940997749341266673709019092183809359356589981902557964696707194368611125440484244248402173144708007778635599698571519908782658303006985050987150686278619074667953731297048762382895513675128169499873169288835149627522654361465427160902026661162345412240481709982618652016613156864440466137299203997794860335388485291311131485388440999342387426224335336683218067959149071768867096399625353913990063705633581814125378344081311162324186938069226325216315443944191876890703543885156184538421832744605692450318376733234382171954817324156374848531216375522855059140572688026022850312958013967904736359749485698554840588810802664394279821426331476739849262198529173206648846665929990135798673616185831936942870544593348572668931168310958241536390532148008810580871587805533200682958473951079064888052827689028388317369242797456005158767338310424436434972648159008699096627274435643379629983379688041769001838677270854045279758018416566613918985959475777893383752276192268271253105190960871176372193157394089623394315115249442819873019227499619008462566328507280887073312315657235232356260972576226709392190202261295871888079332599780539220839169149256762244586080642670991736414407505444592441437348229135095378569124135003014053937341601984338582928173185031398029133794434958271690965119900418986356898684711560035329729278086326708476403851948818308937525556608322104260802975709437603079448110529074551078133448592999200323001293493013354437500509418808123925782391761061872282280936347019022479065681364259629520598664290246748095534294994715527755951133560031137360835075217403259240369327795610128503369675131928672302456710999916522945432517026965611118150431440717968960860594542837721884638642835730169464229317705179983758567138435585699886997696126639516748611270928002319507660954092818044612541768466835730650782964571762752415215800366448651439670266175893388808667781044628616818254402161959281819088622914602279891431483212515121326225577568727999329158241022422472758376452008256432529014144410684777006609733810491851694687801615527528787879147985490171141407946553001035459404055106970205393010039897841794712775623764205984736765442906206690645705055363296171573849769223625945851403539282995229860215246579895198021304083410801406324764462632444621540580671954343380738545293703205793831395592487581082107531974299810847449034583872083157457494215537254261736599227100904930289231233436551899888286595108165332176537274694218796867734814923383900593624671028825104515059665439961185470328744369808777585938153106198836166213563102001960979989540766010050639357650901491696059317503303195973242362525408008333076170329089280737608433335534301098641540654890938982476581362869733219094080595099124204860599475130604373225139192210336774698885265916935392165318659569012380119830605174009672047496458254316985951068434749511984824881501063557940853137919791319304097844883813329815168740686957554140598627495339857177400767667766990510057907781117628522323970459036831367305789755802670987958750478641600715267898457150788019931458068965718426406380962407253546511727976532861581532589087452682408883200050419195806060391455610219846677249833993897807414785754104740932426198181309155311001286923043180723746439742069326039891640999029456524806509988955864430643976554129635077599494281907049101714296134304335025401658270468688513945198683732496703274670669433978091423563817433598504188708996853055706774000064858211235940347893023816398262930461152631106401066647228539408048008060313535120244234702884968871413146957862216133486208681588472051246968926381484952904164722843546413411360557282458013789132423024070340861810322110847274846053452935822717775855311776610772109549360292134053108711970651580958311687466768235524941607108380729164788751488785154504989031169089591268757817007900976356456545913171559462842986641164996041776484673328222489087842263396416983114178247525613815033992557438482783399874962805233403042835097274268601082133626981974561813691750916599696389062934355826589616513981816240074367441374082520390400536523842051464517323271993882631150492988475367847996614124301710033059432976366790629123111223304015912196941899257084660803825889120064473511417377480629052382968262847072063094823529717283773716137748715814942263947801341047620233471367227718190334063680076765039061813424884387023100821234056093183725287621254457713713299092600827823694086746100643288409300155004710965850178989236068378851728111994259297102162332187292132376668080972761696452445182305859989537929068157149756660877238174077238085914901216993830701392594046087117035184792711059668690253599205771794253777122731321703465027620284149878692476036016772988264657272172478999414439498126228766684378120783907834318575753423800490854192289882307647494516555872824501156725592721197065849943018942346725229815058360284784493539972499230402320398524432160300046977495391247088122025812284605203977183177263353578448570059734420799640439497248673672709004140019575889242587988113180624250776727240820279205191242547466512558083514323462620091487803238011909469601526881604178198826604273137143259996473947096964526788908233706585217648889882844279248046779838033678268713251845334519943530399229810043908968184286761854744539741246216659987704306246105953274406588326137725121138033786979452922621823493779927737806844065244552364816833425654020757989961425168827592268961971555323046938341755674247050874675609647323859976457586072473349822894876985221208630047134633382666851516347139512432144422612294482975707897300896783904700569131621958156644455062282475077921654283676373264655121334145434604986892790954014635341010626513627370219293397564743954322068992120718351280347050205753096903250431353399128049549271773909947088291699377621001862124219097071846506588662562765128318103607110858791484495864526823606732390149786087192793141627281096561078551169305004803520534467476797428234342402797190863728224834223512825478792352613215550296674817890531767532400580558597794555729379514230154642336771775016244754087531837199251248427718239993380996397062679240968216168007967101930310748647563754248463421050636795309918853457588052363497477877795012175648516545782761346871279358317980985641391581541734572891304361782186691111481227329533406012816747051112669784656129613654545831504758367890094892573176515762179370045467732146389838282285737469901545602633362170799519527536065069587613819883125563005588618895736139022126301320587878969385565576235672231485450069561357285870031487419372862179607183016323210863853832192745428022751215191116497331423153742176347041552138756112570697277343610679527922266546455280619443854130743184481541274362338416101470532647622370587371814808000076587742980401639819370160602886234026263603244249793656908806327852904316088830612203815275157429185059477619990304287413735294217974306016880560111894078017469502845684982442836897982681533366715584252618350746968073521637855963946472224842131208858530226085995162293768075769196612506549706545443838104732361056187738853306030642311018110116373681878485929765714162432510873354568131351815025059406296969629619872234559616773042145570242894394181602831183233791894691342165025998314785653661264657462519354950509485269811574500326933118787219338011338051587766713180476651660838051135952789265713744872217855277635732517503984130348166135054719683196925117164424626826360006078744994393731880160948427375554348037736101598502363291954532590888411708990029893255022014381155290338902847611504428994874188820661073714902253859706900134346699824875170480875114461515426887992396333527368574370485815949637967877025443635689470310627337942598157694579845476423655020820909128712381450181244338051628622401155359724648757839968764077332842564950773083531795893237354894648634643388164565500825338286947022265579448784884805837219711733362325494103294785302718960990913036955860920146783465174511825616328245018616929064008238303544214604026888988555811650044308808592182823986943246192799533740700548400769490733708337359428894406140107894928348174661075949566607744891383458607670986767675799178782225684321121553473286989462645968511635799141615220231435976809533231882446717717238838795700779998016381686860343194351980469140582119586510543783432941983880940287072917778033609591094146957659589216848160736149860020375257620890561993543501318358316371287165487471426812891084254790838205197556547248874936142396609195769983620174613571625197582323869876916102100335075601755456154257801491989110008518585194549313514282514280249021083312484793330946560141713385373920889159951444664505198238327227677556687992140129656877083457645518665405348310138286163956618077153820521809240204446583196954945562388649703722272881032365186190308210788544383876117827214670340621866024683121638870038639751864773619693718751492871277005349529566837722465329112611846755554099741276555722408082191750128527001482503108547145968492122506938486089744712468535340590884627350904872436870322421422145810665783898409709251259659021121345590669845750866496778224123892308348176116731966065235119359074632087433637973437290544596467660879415002321561211490880066899131812425645499457601069458710524342603185213525870440585826076133915050539213648138805378228046366327371292140476740581821063622694399321716598051865084872969630643590827261456073471158075676757233683736904895020645191504249012448081690841204604467292688480037814985929825519935399621566536436080068979866146628296250363211025854652518907953125143415955791102232476747228355486448168008756747263826082700325326901831980672457045319908714123917804981019672170262021660426325931374707316556989750565428678315762167874992586595930523730166861630686473961052324643397162237596066091835980826083354588996522463540044797949153103366644980387205068537182492754632216196507889159864970952597806453679824223286443405490937873645575136077595876906429269043729792766315250714253056184146408358879994417260653922083820976708619890476038289398414169677178677377563109083194918206427986694612069470671992812970866198674981798384735286970004632186695165315951314270969980500320643252960901575647162559348594976823424910916246201828347447194818160360069303538849080551021925035885748398739661589015154931541736793693316175503981727319094147103066239581004271102585637924122625959418877313630170638684637046442234833221667700488076335607679143412165883456796853494953479389277646284245981561518214364241731101221949934456764965830892236758273015386175985823000200450516826113384142079642064277875407575928370861539659942136788910097265971411970904063496335369492349418349065124658686322666310653909040885431608699642711922876958459967024451330622829807837672062943590028168409669353142311994961864356631921439371165141080417501174655637767902735922879081116675332902929451303868686559566952671269897374630602039838447815929504496765041805500130493187603357498387583670191947398846363079841430320494834431477654078580704199091801117342733093301049650164109769476337502081678346315791192718142443694205536289936702130141352036058343737065392916626152030832496663550567465346774342669363910063222947530845312113087616358615688993618546707709289910877012681487115056875938148590758159841211629631105529023595393253427827339317152206420570032405618092324340628837768307476407961823390739907005125609807736072805439959857860468764915334357713846248889988484821100369950905653334127475866006335268195788337548720765999535920649683772481187433720119940426855380350555648091031565511270060433311647697771692845744850606493736777991847665452444610256156520195081494307810615343100546485411095122492023498232371750536466149266241851110623646185429011914281557505048108629175857975851066803715288722053759506661443451689456120861301661587002721726117698544907725472078308526942711685336195188423319789413717092061360415204050839019613786991112576683638962401007299080263868282050538961901197550007500097330724835258920295134539106622369448695160443165814580901748851938557911180005437760531337541242169209922798739482819011626058003145454453793798275787267140047497075022314948748421205559060304804091792526083369275786365575456518588181021771805294921176473000482835928789014158600187462095515402945447848743214182447456556526762536562660945758547543960276772085503468987849849680817162917224198930711324223724763203749544317953924717242300311429536993240677138956300554360221545000620174896875305766256997514336834256797668235309099989314490975584407532530464548813881550597874650673192519682703514679338749314854747353706335447722649040495011519861698369229955673175889167222138477627226611906334354831458345353669909093764317249733203743694538012078426363536168804969102824586907123996884688573414286478255289833701217441703207360927759214081583959781596412459221896111602059589836057240677232603488980548444927807735495708814011930852168649589243415696111488030995584455559342158916130073908494857757410829261734857456792042451199980829935485199477660540121768872412422610164541404314340897530983883053044207639387725145436789238467784459800703257796304347287942880625991027869802652977883109560171355931018645885660969412002442533980687370144442407174465677955760988473355307139222212074310568745089165918757721188914568378172398418522853911599124753812658964746606662054736930867914577207096625433319271089175750938178040561793837004286495235257550557982327937758741132400243524497659532122319581341065443126040590905463059921857268267755597228010679687018406903699010175619856461313179923195342111319073176359283016495985154532798885101727991028311812538938954296782211800904496728294294918937470781588874383621908313652994587339213158803131857811298173716257803852162742709619223754404020628307012872019180252493361371147021627030960642072338381534658732812874245256120842553042520261862311638028391992186705777794461130710289867636248981828609610496239403303134708011658914615834993059323484411177141104006168307160519086770037784448239627072406734467862994030632027435292573755400162548336948443668861571195035830545795993385583401729613513371265951152748576246360582549887673390697980319140823874142707356373451836428444518246286996989645250729503206948068317540619008311165822113053342534690253023454306783049156357051755086353494652263399910443056156257211765229924231940281770689702316964280682374343998898112183170439089610850022813790869261876978573336586108939218760141404207648380305207945392831321740724835578461288390012885167366488870943176182722594002179910535370629155629801035711391872231773623513009984573081731304099409231474948605998171841948608465666660129140326138389002422838171746641980918376143370354235752749480422226432735549093496206281491557042286187845771189721319845030511733034593697737727701745450006277944077766032995570356669725118556431931240718027158459069863390839732380793894578891558340317296504717957920566446815432204734064174299307314584988788938779985844000936204117132397910682815245375588917887467933538770625380843242838620718811507582917020159665681422507177452371765959444440995556695433239401624122412233123061691563434558273467717866309047312844959715640658381277329162462059897297100571332590300063203178867670522052666183677508490440696058474686978676878929757710527916781183475851799659850424466081989181898599874738870795963173986212595207344603606371912721388597646087375812535367297161628227491561451679927929136502265215425063301535698428406660561919147038680886490626620250883628625683782882514738163543844706234635021612875798938659877520643437366931727701537551322983950389571614765815520051869485504483513324621440399750620973438161084132212658084901486509971997816441000263704560495374628805908562688453973215559335955917837825390378230992192196458507817048390657992804907071361523059207115115297225654439214267759347256198840794957902322992055461730317976794672086097324006522588267168657866784730019678057402005172546305567332222010404973771835328976123173974006858305774283766804174771604499290137407654094880265821556419635405961559091673146775050352827011146973357847065190406051602306948838472566842867195784367940448585278828094978917572613535958680359715621455810780421400175085321932882458909798989229617301935174270155069163060441807474866324614767305487802038682972722891467369193930335314750948241070799536638921120915658864208937844253470078338860101370802435283469503656738040187202527556505173920136055902418028002916208542521021282310246666192431757629510542312607981062970295974566670855848875706685480365702510895289375961115752070055922171936917598631280978380727086113585907721245794530171174166103917472846504801070613389968075312721778036794873497158601723844027963298137100366758309439118131603301941325742248918746785699900945937799521648693547289315781633879092925401455268437927706298219273565369262635957227353304120469714674581661210227754883248901631997965989820778402716602473309879427682158209131462124189798967567885643096876267795891447343475669597034089099061860798039698136458452110893964689711993659409942993581239849519561726681171630596840779295215251807475218241220158681530919988810862173569658434284875356280676430507050031230232134543608722699323569304466252397760087314920987614263704985420774329886872120338060134769937455806700945775038314287923596959713754637682742227258966728070172405869029222520208086926139009931301267126117110110357314097889536529155928005852923898275183574639078953509485493701274782571927081126941924146478572085224488922493479604077384822250611787824672120214394939553977200633133842838642658151516622186931369371326507860317051387135578146113826911081134026409933183280281605620686205998459434831851339303168089733371772510755215956443358347694858830848363670688094795507514769865763220936606733407211969474988831514546784720732305183573722141744528354070358355327605151707895094999891870193753589701398767079421049364322339352722749443387873813934127543824612786431074986750801492202980051676757691443944457514595763642431191204652374013379088140509828992704137007908548807676050385744478093801633303328043055762077903681367612371744006316160450817031503878308012720484764550346964752081356426049006057491251256847195197184608285053573791796129417322139656503556489689043355328615028808523058553189515287828550402797963703708405167215349515910378534328698451594406217119607407694912060445452208828881277237144679877228943337923984945327726201145354647122815367205160151902296937062111534043124014661470152068113871912095153962284083899175919721844932696172654942271100754278847690464435251579949944533171696770349017235705565958676716484092438692839391681794478729897662223584472382262020431622911270532796739831589500617053182834825193415279310723948588077257598376788929983038516355870456112776194525570230802214413016674657104465178758350166788496469027304258426376388561814418275012877107163885086069695885582668713664754919758431575979406889101609515036765317351428213789482826761770384406337289115692850602744788499959504405818338203150299688501278197564009251016099647133834783685868774016079525315025375768878979171506456540172893569204571449438956433595424973909474188589588476650396642037736400663552721555771992355668157075392066284289098380208138073221813067437239492827430830344376075759124161335657970008979210954662787600763650676747690012465756594944902499633062384358914545115079695526465832278299379119422677226290477972140648484075610668658857353022460012712393567124025021610674867445316337212889472989609289270321513981338034901948641739494160404087617350025948152778009821463933114128793701068276346640845061889098949798485174340382554884857683304548086942467741653812037655840353662441086411372118281147822087897499389230289652272097962556694211726338118912144375495194588843731256789971783402413122570678584108870991880833815058562649239444160359857450009234707180247734505298528702481419335388604490287227341512169097204638722053595782539561516689655349163126502966077759212250803656149685068772494889716938273160399903806417992267535617668202162701923382161284014295814385420348714498679407579211316025487765676288108030804056071572271582632206799941377707583461973384048656556310539793285356512053222826923994222938205548937060065601505232209688764736490380546681036901285963769643900865688095255680620103653529946127985782242139936449188616489988022293112051077867702844571602050939682905470945864914787634611635283874123099151747971804238077995129213221427313628085638552156951369966029368849362096012768455281703592798719121265589643179761530669872431906378744573533217979520170061461620823898882046406209711330252156149467819286269525007722058960095695750229583589015414858159728385792878945469015517570099382169811671189204785452445984822562715967482467953115597404945251135574423923546226300840466504143650625184836160040706559573883913335373104020959895526061364470162939371597126836954764674879451184126835473679377264051865537518582454055000008455932387063138140461778768205292915959341336090038536529814022211680471504806641312015510110310588138724809057507011422428726922408470769328071337867449642457193442202697457118730503299031685063627655032294999154469929751618991713874191968236567384112546602225684594546890855287820597351179508881322872723887904512974962806721507038765644447789054471651836601204016144790911227720289824974015258813061207654115122359199660640607406111299175324295176650433906512617816527887318438331923939820752749960561992159603578851824448894249174599362959811236751826470516590522748492308087388984491506920910514358601541158403273728095261461953730850194815936397033516118529453573293148075681345335770525901751481091330413573871642003805849784643220805244061062102661582105995194588234053717860183541400632007571308273053832433187617137141622755084945828355381741609992052520480425194620444333463697243048229247083633617180134542777395724235855582964495868951683489805301999505104329051818276613936115493874076044411697690649677035210812712536527944701397651317319829810169788891258637799627498769213265845639564942299864301517439937514734924452789539546079653742809482379957144040189112116109611822061329226695988429491493252198312602462057332740831676658349349901067170672242697109474194777922122262958867804108705308089465013500169445061271822885800683859811180543420915304009087950565929809174282927957829011286029878734652368306757504785888199885939497834077831252527538303297331415340297956757388475069503565588222371330447145811186618531841486840283694216516364492794157648429751943988292300460558199599779889843659292021592148379331128027739995837937899228224015679682227240054075763416847251647268601637473483540403493035133784659246884274753004722385405616807651035846921093556060532952137175630906741540631032601131064716601249002303739410588739825650767485954429878745164765079198506609424100765932176776846932580482319674382895601709564501782908782755244568668989031893128763366567440738629652101000002911763265391873348443707308949655224769679103292626698977441641776195035919747662040276042994186429149806353050595003716484541476981536725478790853621237146336195506002684973203294373590075212164745897943723038839454292650024892751909034513915287313268519956553335864801689454280259079353633130539684325718845501907457954630444977639977463088930807540654849142370915838605200141556425780001226226274942738813172694329902426613539446740405084688179091341391910960465922095744701795474675548596617893189526603418640212123612007898939015117282484664381172757609204634339563495560679564612078181886339510736500370368626900257828390304679667319532207757599505925230154202754367094659727490177671270980049178267047087466083670075134066349348821267392834496632895133089327026505015670464995241170733996622546102545367341929297019148637096948186593939129182746249376673272346627129259391737148041378972118012272508743581925642657689766077008771778984789679164926532941834662259589378447089577994072499417853995267825283131626529287265520411968516728037774734189409279263630053890895821034570494488801950438097860127090117709807789276897620675919000992423665633830844124791533183648947167046240145708253238947836186980389766544599374419821480423268405288979890483575744558018145103038795072848084737512881236514824157223173549089475339942275489629485281515208319220781812060644959582340700923791937107809665654256260861186016834276204309136856491476151248708960469836262119471343781397970614946218543519366204998686401434102040750297391683756340534192502293345718621528751306480145730254502926855723486516564994070682634671865859536018785987306428588482954968699738995259808678085182930658688828176226000356403820655913828361806513325534026140245323417989823088447698010250904817010506242331227770107436821205810482839738600334034382249263353706475450712288797518721741156247012443707276039908244352196336779100448158223795448257119277572369954615279720059143383372847288317479220979420906071875397167715871917327153003552986395191104372092999363948484636714629938177728314810013870756472135363517994533210656598896342753658512377079140658148345512099003783484114557658600773388600561436486500647039068670733898308517222144800213009545613538600872981676729275322849054880289226864209650175630210834614836041623506311885373549922664993837069366664759692735890910696789103669919705962156558364482746691269866736561315012633497694252352938170582610152297310563650649849052738734355113267494597176369906944043261078686978402638135547318842803995950819617559999429781304037680088564302784550278290693363817284585490324849729833476700203133621681292054792473631704034960489026577563217065517401160151609315502238385436439737833046693274286211505566641435680013516862734486647585460413317100424950449918584694905403069219230560566751464476711853230511949641809654022508501539343062011305950992619582791704699019761945546443262087238721713494608666425860514199824387555871962255893462100172285742643042969572022336242897967418080992157060325797852328460325166402651576860706447526869961729267559157477975458961057006352698885494979042855446156237982727340649804352906870000932196081496388782003793551702497609182429430147993283486818660339206195846824107559822651850517286500106170092788128997874397439625544097232079045398039659954165629976216460185936403571581128578144579923038409278364093368042916169265843895890716721917745837060264828017760412767030150311951105355236023711711808040994860269641610889220127697343054663486196554111352838225245688615192143127462931955930673729925701847905817042792125474389044857867215870234329240172857585716648636710144610352199827826175149906189917000516343405110118430562156966314246910614335152641216083125676465572449568549327676575423759441020648932869195458150570067282268557440792626260966340764716038338760319860922938232370149046629042422994672692575912379525110377835460228258260118090797358354797973155593910641732600232471480101182438543931302266237655806978881340661902177108946335126323211894842369404031015317537483687270352470834057959235745387886698817526695644670633808039675239009488128051383144925527409504417337603714816909737940668012483747188701967170914403709830837856937516188219358694207098579047293213911247662718516435822906120015793792328651727247550362397153869313885035540805986551647020003578114223000727284933202415435440305957278618117571251865331521489685319978690029677679337148388593643036061961624632291270810097421752542555612751408473660857405865398493882482040652374796906115853230279049721202124145827355050934693769519299680749935257712030255910153550117315131672954387406270937992938515641626066193823097499320043171123264198196502148213389644103022532671222629300011900782707115520931865073830792444266591177786503436134985666792915422793108368221514712657820871457767648818093271096653313423167710662944838851692944195265143754804151609603390131392921854216261522291670681780483741812395405649675692017598996298220451404874621300968237428909348007136627196972530775844744721737361168646488541082817130401971059873020515561530881548973182407641977024588787186348684588134316988090061606859111958176846526367317329508655119697450982718667998627417061751496921891652971418282064015396217725747234254110003495826615730436764730023367235892853281198297260523674394543283390235669641648655904352255042519921415846012000584876225879974809171679804152671879365802922535667595706526701773551738099380409668272906985098991584923519999850147236005645888529666339362537889050319365561705119045848929522705255415398520555085979043144272445699601282921675887838682451472682745612342927318157033599457284597942304498757595375918568430652411199909907777827697214997754250031843766963795690747378796234355109583976997671287066764650657358944910951272733992685269026142478546294636069676904426907701812326268226353557758784097062765862265887210687333605977284445791119835015800026619922028094717666406383680639859287015574047155693475185141447180519243737140844860673584065600133295880502474782757331153585373116402883798873000643809895124041556699105460652044518363196133335186105652399716328061054863445299944892906354530048983825867314404894208148087850062655022345512555617489075683530300793824276064521448237976876404310805858071422095497366360622401844329469509597010520846544589448853476706404227585447496590830699941346028030276139126486743048992280595815142483106543498871061031918701756060500629240141038691620961112511178922528720050638891894426593548626277640331547617290179721948361219030511306295270876883776279554094483737377205853804171263050239093608167442614914179591195636065149287166821865709234192503641877792668052302206303058078114631254143398733788255720995107266670858290265849046608184469690705316374670770576625140879902273552778941696082275663588076229335863676765106985508692782860850334943230656311144216851324255082554901526101909808275886709960085871215064693280914195357947545493427074190932170061505427884392089794127090110535020860952682688670527316022676491847610129721181268070616193768690461171350972230446643737364849423650014522269693649319979949746802853271932485834647217289198366966416929146312488977767970986073985828546210717573697424669242059597928240979294782630244030192566574949976555235649671887511234820679673897064163700309519008811126850645393990993281285238865959067724507522169431266322291097946155053548693619906600199062881353736806952607617594628374404940401434023337863094743467476536991133163099485090365539701866639613800040308550438757539294955674382880177621036430419592779364753853448598874046452939595614082062887225229209161270683098152315549376932137768472583511265420683038759714908465121335839514499144246097902659745286657048639378096244385657989385340706434448012034103038233927581918530620883250766443222991428343191151189996440070777616825497012116017394859448329226413143038181027329501963036947277676689508000709529455637695469412291364165517335005426822037289324790707695991138816304312251391279661497406428984844691463346770169469943587055692033089556167295787074970909733104111995787511821938666464924321915520819221855856714126577196219357811823323319186165354359515543605621442218395640049566908325205929057609908190504649859935026931657635199779090966968312877753811762526204319788595349076256034769327378724780351355058572350073456171313655680878699655398643801312033356903235501612645293348468506498524001326818105780754526031353712109098328729644168217109797100003233202263746977348407465943214394149995934207134744546098308503299520618835571094076477325940185601961137982417484077476142506285247786733155376652642060027083948017081935872675856154685459497075238338263594143896734810819059514207265829331272809622359620249179989891629001824401892468789262100649996650625777109446370625779968517380270466652828653239716686407869156276525697660700202766797728623481296559645094012764689926843160906757910151791240644358232018160421212794953621116012460836917955790709934249354463737332095206499131246314464701009888283620972583574173834324274617306943670981991064457570585154055705370133877790098004240517855248359748931707381855015584983268759831802249891880286572650950224258251405367429132443783570182974136079003499798061638408238147442660752278439038255260548113482796091254764139169441307636067642108134828402979414331893495818771353802739851601723417436640155747662039153134409991470359650858929684215075449306744585370779247643962759116443969751596403808346299085941714242584631608772337666175585765907298570839894445843325809408660191983704123434279432691785159896246405296653745500314408196714948607795979517055127843188574862276432641514302455745255178417980463364913535820218429775502343987508876222532515417460877524272503945029533547712323886917939027585976273218926642497062594796043624544101747946842790997794211231360057304521703824950832254699894030228472749110176046211468403822937774102665760033957248708884740612696588463113894959756356562705684613275096108085121191638769964775511771206951896518303047296608721546156191072939134268160162215607260560357476431954012111027178170642027322471666185705335277995731438080660950815284844307080110899984978417438570776319562314779863805029643129213747767227734195047246033003140710390938760883900256752231783357900456782416123743368356088442043686465729777286461579432989370300171788003495298712352905628976059403932568403679925497254224632719633677128504228414639252785169892312483736957437611904120247428209428167768231075387784522853645309946725932554907356653364923820432447054198338304820429977189469593881995032645591238068966493604838379911670598599533430552008657660358220445282398571829092450864000202719787838505934376845471987120864600429372268149919553159600836536264494877162438654403715335690123954558301563187620927442346510923743562717163852786558330809141811568849640031002334093522807796021534826139777455542676102020559600469879498911533370298495451135336534261560013010321936346131837754237733359192699529649979072341283398299307729363028015600429847996295905741941303688750540063489155108210386936174719343185206583000813005454608755330685243511889499629733415714639452455061382780779525147577522498306538468082974903385988995371781577851601874751677128563007636169681438525282352562112648956836304013943374886260823721769907323948307709508719204965974966032664208865361496105368907842591588846893056602832666871938913728321464873002797142151102275874898585157245412373675663586797282172678014912893529535261163100750391135759523696760221122882390851099337210491409309512972847382977196441964073458623272194314399506201755665741431154770341215901276095879750857785364998429302053942469930609237398812221404268793564869255840290701089649617105931691180052377453012834853751140894684420824241771560424418917375683663091826190088371373675588672270552161014803890130701560059340407735706262383768875475652360873283781727011820787355900247359357094571720929616887951845236358526511359406589599503974294618682629480235284421313562057188412720415913666154813367595720643244599793008047858390603057483979388489395274117380586098494685729092783144988053350030991983512589861241344893351728894740772261274179427052118889902686426567715815008338623102643086495376473861570044329036958458421973618085839276901715862818320259758644888437487638467128908100446099297042891231328431596290143848423688712535774217203326824524996032982035287893988841795881489673461754892235555431384765700818558257130529010262061147511118992862244723571927190467018146152224524743333653386629565329036802111551176727622233154118240480349249148595947205977746644416193076239316582603239953844021010736622593902050861654276643707106929891386538371607662149705759017102179863887504922008284835721602299879118204191925541987813610442036976972603680544769984379013124980328472423840947809516261842255762858372892733684064539059738144373796240331913618082305620472038349221275691537904823670193405745151824485797207882613644893705300320031347718369455512971803185939825383390040350306730017671459272841438037908932302234071769601300160170931250660751463021840562578641669343826035467806670682633031202977328309530005859705795172075522437640133989585285491201077127584086235420149157662046798867974885670537623836765043287300548600349398681985830602948085553751585995671824891371805400359201444276483487650967323238024143565675518172985827141866844076045942285603546237034927387293977000306453596411363916298248035244971376465676073528508010901892380639516472729304447577353647465721529645586541514420307160704944539791409645823019022494635986412707415875176594997218331792552531679597497891611918695017431015142783804687172873059597897396632926578116442880239015311078055148115929488371622724496942014114955188224150500883631597237708957471865512609037994018445822650327983900339602419133870340410579305931426752821646048338158381967721815332475199677117783602243578596283175406400807063861726556200589131125728640782668064174069495247248804416305913581333433879251225723445187976814899256822329507980049707704476802007861568168940056821626478758865701326360079783793948811322970343467378632011188816784786079037142070344514990614674528768359469926086395048121069964322876643368896206212716764368700516592124510658424617091764003012029702058249035315884377965875755868479864539396312081926228717311840884323670935755652171085177607437262254635187971816223490497929634966902628905403916351529732467479838222180086194345546643027507577605405815118825140043014318732387420243052363444335465522465932419809447504189266989791585140036489137324937045869983020986393509810576818446666701357632807140613598029018728681867944895603775699813777082277515706702656830959309208653753990136644366364839474673514746796071620317282911293382147017411084042242790579406232938555017079627782443190863696571118880268880830377570296508647482476219713933351463070843357769979782518044746743650268499753419803888698550014762843651815239677724297757956179648815272181399184423010439818059122897593249584881690954420760556211678530498896747843051188149059375744603409713758352043290466884245764425594642943757403275640108400483598144197167103545998188089488678591798172819800461683538086214024620118322276529067070577875898370940147078178934072748418421925491489663089574857109045765209083590662903274671567323608568761894106715463056262766249435219596014422238887092960599186719910989205258229272260696789332617908585153319869473052748548739026476399608918525413453618211756528948676718496273470215629740700528934612274995915385304412071378358474304114808530273451446618881215182607653439391986109039894140746960912338283366132088434811710620479136457521481220694064997730682482455700677299424874991584196235531003115471602110189900262430313680387289371953488974956127032461806132059205689095919564628196066535568972014342523458244690999661525002580592728114025949375975055788457085471956590012026552657614773767019555585763625786691927235574094705135720658424413175882584062706487468971739754693834662675091098495288865911753421295969361264756943342626209052022896360130878568810382874120565460898040638055667743092844106742160829888616974332802562658456400760718118302038164433188698892572061001174585503471008009123294579658357412454336521719070283191482692340027155428926263521099046257160835837370392719567745307157898728945199949318641581335184168179896037749424740384334652182715030405946117398715099243276497494761338601546394787755571585523636886830275848143619500455806427215465563750802626460926093859886040709125546877065929691501879859989156542943251767923886438527305730899249868143882340243626304218458206035346984874439847363828790040464486252839675508706930268051286842542748652114906421406653878129259187757879766551769073423129243628889507323160898585151626511935911133665063198692283281472320949941797169452294835754121979439006405852681286050012507516979945789262721040158886471178149005946301356208424933500580304685054705359666279815262741804160935616856042236460746074990980860204133211777942370326210942625668516377032931234752038005115507597969432591368850877650908721002615755968707362256219719292318819817300110856063504428793056761959145313180876310615544659661940383723889585399048989815909199210441975970037920577581407175136312569277779497563432630762003812716923704115766927063349299382248683336949793266758391361492982460129632891138741038396162945364961053110610078220272903875386234314427211937090972692875927258125869176470818389225839956514595397810080605867338052816173805111520075240746722814737541231199805591908520114821874503305632552805987853722968236025897369182489392721822523127858679919744928703369718141770895731965336495860728772941715395953876691412320358041975657344161142259820754770458219575460971547625347615527741253504890089561542711676753781692822669201277551336974658234729598876395989734130472598181872938114051996701244358517617066429256393393597330774261664871644122112354508502676959773724495850223579164230790811147309456812860641410721335273567676025436692807696900615982937735988666922936106749937968215566304229097300366884856204359745051664151027193432881864731378296031407182166435981773037484471134292995028751046476088903456935932229318770042423069774991559443983868303260964062713552254558006904119058696616766857972242153884658039533412627404531881436268205708968247951290617261280026669366374785166364504188830550610656972377279204364289151090294450318263827052673361481704047540382061939195099235937851359865789149950190015037761507255367859541928518153874765784674130547778538505596971970500329770999430625896693627977834471365313870242757750485812752840506450502850405327103471767821031404781324080348760653939748685649467171592681699422134821548230675383922525021038660261039011012547094759412268181916298548628339504206345545315767373180284422783234872041586559652497887029559653421173428007368960049491341628047508189070076586946439479957517212829919120384489356043743241140283669813367969339853372473246739697760846244869523320419525808609940063434333274283160915206475750513220765174050766597239214584056073305701952022214393790846634666624228097246355844393682822603501596337472445915698313177334940301442133454640749774400136972807182671313318089242727286244848333633153923561614592920863767521849339400508677498262873937005343202341790344192356558804126360125768017666814956531832432518935028014394936966587981512565480786319385145508438581403899936945804097394720754262891864014204525248369743726230186155405845125603749072550682106373347716551958352543291778717307700330091752566479226036505438176077545711214798702735666067679272018993100924232836233337564710992415656595665305624063513421556344187250461747971730177878470496100415867315282327957149064865560495900716784392050691881008137246991270802758641636939676635462615710808792193110914380445049005191887869030628885711125845233811643760259208670000748996077847920123310227595614451666554007856111073588649379746287589961705079036121004475530554759807344565046919384466274755866406471576212319065149691780809497347255253456754838266702583458172809810971383928436972255383688156538349836101030428778944987315400552053846861996446520114143060800992403016696741930353163871899636899761236763791144549475951562914555343622783698347506775815439029923324057420595330135826743725999678682506592437702181983871654870971885857440522675123217981350472166350285853675085172846157969459829927657174027802192084307817357070289995783751176486852463381555539859538272624631225915728378634655074853127635665916233320695046640956478959989758521203447467842795598832107601174620409556790783054945784014713440570346137248040168010915387459928096240078980833931305676390931122576731534597290221674049850937353134495588657670352865398952983386111808586523950982361742413114648262142942541300296753588707977906306211021594098188454665571061135923604076306201963174992904461875761649144446460867005259865434487429912897352649332424830264126407927871220549251109850777867733397679234864933561050760573557362347308566597149086618021267372253407088805970964921515669708910025658937415027507988446522594037236496292193394441287310492624120875004861715665042761971971990069170456907296549329191221651412762973239975631057705706811369238908436296484038536426371476191245048065670914388318275449028377720901612821091949318195157698021225225156374102099248819731134001470018441474589523905940327294112463422251826915841856854015475359654305753793820612937419920582083645160241636371792165788703117669551829860589404372186161513496757749670685657260608641496772072904970533072347028346875853520883199962803423705021156861443761125629638930780814586076556436764517203003573862567921967181769073869850996977757997595615949140366234242613637489259921154544801173423039828257997208453249715201574766672543603954530680248243058966625979163692431074365000582392825203209524167180182503913341410341528218722512935040492484096089394626752051700244461442127148525650902058184207507208695344678364424360147948337384533645402510722079764540255253194709861502732747148876518433323964651588751916780838324248346844729585077357755083945491541933170112761557729116389204607937305122144990699240016534587939326094975702660644340663379744081975757470106989434872221313594163569507711868637884926098960835619721063111401395271441475794067014416363514200534204928166709902859535827829067547684676441241670420611355369332432922795365618107054820949953669854973002305012330185201074205942489908768363179941686764176306856478706206052584648596000084510556736117405728195955502911035204486565058909040279986244647726017819665746693070935530888119930972118599422516160626567741612640619066824277272315671277913370755679610530312820527144581737932343864322646556464680211459949517955466923117515102823007047994907194285564983416419167596080458760711293880320336786383109130237173857731342546625997263433061311672352363660067324600909203912926344897001377233718771464263371973035926118523475513972812125625955400715667301396036515995070783780299804750036532618237034760187831927250924034400002026917103631371596965334883155838432340932735755203592998225507956155609663752983978691582035840940260717901756959250617519474597116962034542691658277081908776307736513988820523138422164768926349004319116153431803248244094828738284318581930149677237571850680212958818947164737799344711003335541005207540588369572319249745085341880239234344440279225458480623788773663627286172649672639941852458269916356566373609326375783590263605247916375010731159332076310959185194942088177315752419275289992868867326225703485134041327009574126392189567929326629983833124460151644954337472751058266272792005848368118040646619916902742501917125268611845734987960669236873368162413451881359500160856487117633719343830549057467958024043463104083966699799817930032603742769647931550814940492206809262387555479781149540340562429688641362006021705620752767784037762246499264707651622143939140699910077967345697544274484643036406382932168339320606963300815468669166157756972120537440133288197167092244700206256073410882508112757722506785701141043773505331640293210271466552687199853496858421858260478447210408705410015301722333589558973613990820002802471259385168957374463066260366599332923337965129683080410639810155114076145279944812817893639300131866115291329427984987054657008714249822682635361899589869196113574569343338455918913335280104000270981711953174991575998563967531319120970927336361923029767889970306807071542956269503254134861511840589248008917130299188201678910056192345305922190651825492421046845847463095185050037429705314513478886515686017497436815479519050859841443742659807803645176579564700762429445987018683025864256800681978653485852243920240048247347771366457902072992024053320987052046519019977519417102844074308833548023733231362956872648665058110571255893717119393667107580264497941343843452379233634310064595442573395207920480833370900471546779672764788418081541826099160368605642059175876118443239111196211806573657283625322675160781140943698008224515009182799554190442607648701506187319867897025756995862845542726620177785081094214469512712578704520717215688971377371092558620206144346716103945749786285926797026373672654821852687109417262378057078258937680680427461498844960993318375140138286648690649445183036468422899101152234131062540410639924858482860369705589938220610000821397552593582045230101315518742581363999042123009609256273188936080209544153968633410467565631909093380140131173999128073985689625828490899698630990964131689067564482483799871599426971299064381746673360419979155338474986646882689900793734725969829031604512538440644949901725013012198091885080532611782464147611460766712791791537746245986123700376680753823708932912606306751822232703119875859858205269843495415524146302373473348914447955970465074789099437991206162372266783255553895931640986011476217330889958827875132436631120059254335543129202796494387730614373931690767468562994756433735709900076623290404240002969377239718711479822564351525246378413105350366532659651656301081213191919819114021148044051171422846281778725255912499421948599582849884775032918724128523582941135995057139275336265885208012934892556786208407992425504966009040060696834845978554171328325564574090824574002911408445174440909159476553716990657721028150819674488633303562521242010385942372571139617050309314440252340536176303727891032199949500640412822464293666746862239380185367402523289737380450127161445385992106546702202756673025760398878745465033441898700607115741342442133416198764997252077385962965994500375029581132531206629582849328124567177640928766414954024535647141073415736941030859656403124365323566369996319166521601838350595676043155595812614514771343608366326463403316120350953405506344513409717372605888047819154875287616214238474190864608641562872471336432892360204868705204801362467140075380750604628889657396420233754911472236332270413402382868673274903846429386789666748293390295773284547308556600809475836742568457513556026485877019840511279146483790726233425819814382510013086193797699154342216641033744741555500195022578231657265283493807244680871476761764718636603658438294742517642332546302388888719390490057257622761377608437358309739027312097842626829022233934607728397418100696591325592918580133982865510279785731338479046429714549358568398086122054954437975681143423556134862283528413801906818099290273780428954772432025651018058434479980509111095191682363409759229727290100522687085220729475968788516226109290232744220672780709341975926814748364854480841784790976800502702950297600169077020362903079932442913495394016552259300307975620605074601145248498306929050099292391834227736909398484622273517534437898506916932899822132184945543057211945261676702374680887187037592719410758043318894833226398216896899774960383278839385964486737401422264115587364932427520041145608861207778889071646548162916761831967602215634372542607873007617246682079129662208510651490312434684255838203736423783473002341759837828077447686062453120508738076773222807116496970263208800030158020650779420497767468525582571650360509802844485409828796542820137265396475813297963674574734939326932523899135460861282704805991741509068385655195376714028841017017304939637250903899543994618605232491436831820729664131350365115925907365306767643194579628635667916434554964357763424731016505780504298838521065832873662237613809089750435178197939533734105706870834996214882679831053082848593116058136575222228525160061097266715606664319511477091881609491084251912922853676720788302971015959129397546907559621950339014325683407573370259413191454439736749090567667008968328278926811089811946299962722380882919992037609964228743637324756814022777030400493496314222122004143197975295938317853873106351687123741953847066992314952920977882916808872366843636681049378251368162557349665083859732199866774803816487079109682616812670869918469515220312927761088264671407116039260971244849602895600595553870769594833153856407632288917305004470685474910666089734325642590582787694606551665879000794575093826709948089189394199570963167461539383066192334389354004242124638490810078939512847681704213925790454308231055880739624726109238592354667103986606873095912483391206696084956575573633193245698126603790180007652976814820996130491584416642758508836170325456441725491817514106397917576932561769879489800185610522474247218548830569412960620210043679867208209817226990379297133780505622859486774398667184792310552953200732058573404413038031789137386374910644294022545046559307435290746038413040909089676305428751720679607256199076736451254719984046955947711988098401426019473830711224828287471031300522199489601520833092414697094732632639325108918225808080906752990618358812511995621307687308629392729021214572560656544491212712854867907332824445415921715912546786674228678098571519159644162118564108694546601315208424737504695395775065028791532313118032265542999565847299788173875320132033156782429027656553591510317101642393976230959466374094863271653480036023821679869239168615707292966072032822103639222985779538438211576155002984177472539430985449529691075292272283975726046858596518315475847911527537483820751914403150856584375729571450418798350112013100225152289162112416952025403988750228136036923599064409199668852063966563120765378911770893875758497461902556336723553230515134249283010458806178101293098300400530753434528605431488839167111211506636784813202688275911220450006279845738945079433350748278481518994774153251884696821577428706635894315112377901826096568456289663087246299699357374967175474513084923588213802924819830197207205774098507647276309200503240080219080310822904194593974553063087206986931749726860368064239841319867610248286183870950427662400455217204362727655808286293251447010546727394710122560464527868741634317961127497107502297351521232712844377316012286169903158584000263858398481828568437923410034934802395962340413304189159278548488659006416684316531746621063799663981283320977258192414171327997221837891114086634989944240092923661833736796549215137757920247761858545972343857975304061939623879376074472319036466694865642524728418870428105624127285799325826073746720979872741851695023283440750095036623301616838706016472389920838657765576981614687437049430771498829737659958581446304812319986565311290793922252796708882107270543519447615997916461228699509738313436864881333671857802655473821302106449760546265987359868560420655727669417810201053444889502779922662307155773138646342513450497843703510454475126932924181582920527945724234816584150430300359805157396207091931116795356025462798104552741068017368886556978152946109342567125668653345643198745657488666771648885819425663062982401378167657257144003590380182033016947511774133938080830611798639386176929852974425248285377136390081687950214547454034537837701087120616712662568735639048433188338716671063591861737044132459642074358913742103260295135043171120790471107191355380749772157349541012702360453219669616784425902870689713129094737313580611927414182508484003757357762539347693579030697911877727871648021940193864436728689801869000912233821976874445236827604651147115066432716753430265115332616681290001145029211745679096132704308816421957731944473228255385388383322513513024869915352393985662837226849109122011898826500111380878493850788694889411508599261400139022789359679750297752259249334088174612654528612605316197738614272110856225168575960047924279957534219913781712713365303146676552747853740396385792455718715528213479847694540305987840849680838754286648639190449030120234150947629428340072709604603647036514969541388024302987733057530552433647539933170245099232631082728436482067658230859212597846808658760801185445086332353759361724964839486129334103683060145811157622307738475807913065850360963790502032002847769346058061983375286555468827916120487774011318243804802496663640965891631063479031402855141065471668097212894793018075088442889517486379412555748581918736647997728093122606468908974529719204193943842492886684887520900633082978582301694378065688517118632552985741923321597125828070603219594304095581309684126513206448181026651125478174221736400742330497402086988757234077590523266179844822973734395054214647295172104044079774820440555415361597081555399038841639455064272430499343654120343533780866874201836204486037918082841929191009702752886516396491806881179573654121199989506176325625216005593633565922788472562847233794712197696279029415467732576396385048720021766157237122801767596395046111999195856805362284672114618292402721619061483981072443055166784732720789383853573746906140014572996161905127365790589469149300704900457101891428989783202372026539793064162192365017060874568067810764129428997709923933204099219890093825313703427892609788379055171165386253417277900280842115319297809751530839888221593653752146360551255511899871808386598060575953903136342807158603012492190809660292513639150228824731254206094906787431799187458005255564007194018508027877802754469435468574780237784689555416999924578381012651646777865292786889085872764596051796135070753833677468441138914290977342059627104706704137028137207385565289064889009471069661924415471871374586491420016374680131056390561284979823173257861945946164048679985710587773318857590118898234538574150964777219604115179599870796960833850434444514703847133502372371821942604548296112322641591126227856151702169076272420626206471200415867654406728776759856427498274274258579248118755387561437900517950704624775800643329392346175763344794648555037466397214699808426169260039780384404185682580815947219934165811506832031656753229419094388878374136735293765699163295096537077218157895803693354514226961553351005236033098510974805251576928813783842837142574937754573949680123532111495880745942127350278106294898352477615384785939866157618683332558326720765928814812690337267884322868922758510174396696428086194217163494111474526040349535292408706915110433495992973782868069904837409575355678996514741339944457712155222830461930194283443901702233347255318344205370733007987404305658831889283676160416549683507031522328017227753927596326176160436205369354831462498841757136199593741457473042954035697455917628409207231777575422851858329283736333629093620880648944010411447671128836346812735005528442032142217773623957268006366726070609666821555234606637928153937675445206044031760772857855693408886729620527188519506738597135348739038221615080705903618403782260449268924363415088599221287180866862532414484495610940413646083900870650355232054354651685256924294896478925987409689242071505615058356384090441664978586119576927555916489339920234317307851087399194121979116064292159050151486611729578414273839041085521639050738610483903764415796621587297718452837194436761688638071550539077902232003943318494513663333446758892741576428393313495206045210407280323074326957589067969161678891054879212106128872070829074204970000618654161030785671789703215072079138451355853531985079694104996990634162220349589884989315757110109998213598156657725548491686238290466097085380154046414137987856988407551097170183452503757905064539938740231968660209377641541090104992493132844409915952025829395488410773467798606220993850996345266074395265165598764309705832523257669922956428808209281352873497304971011770753892301339260757342815755705566834091129533523700273914591026239122889755262172764255661883266597597034134766392409081082403257253597158593095751886879340602909267123489170760095812402387053834707445531224631078771550729842907962906400265045286075778139374587809620396736327560074638658353805556146638552523655132327040818641613325430922258771374948829580808064507688729804629185778696502794264210036818561486015927788141847174689616443639776736512584564153611985218265373652982327782965407495416137079715451599255849970797727835736592764329711036994281966287121982422921563723370316721346779884699479554512400772864961025932840009345478902123457342978939092737018363269732239670890038708119225366145440227438910893224646664429140211695752676962719243866123847617172969976821144521445440181074761448200323371814852752440614456109722321306153717874805144095308785575430705910359181436124697256924866225751911406799702326567200474199208820485699412145141474946163514884728164315771903892306364519712349323937416775990912215275432330808045952308244127568545795043264641982753974768653689581502490571019073534022330502584305143657638081875858641157590107494536778616422124224267120650977913084214861469420447029132824259862619099939227052080765592432985606435841575461373569564278638804876482051948783377211584317944556785415258417224648039206420519108181759196598490023956954469441466663778423775734800233740204624916132290931936500763119699760792569068286059194571643115966918871366085881684892675187797398251863171620781167835013534503108619639218795610846685260637191187141904813622418267750952726599389233818172709608567573858464852113013994805842438184920171827307201722942152914289174235090597642327675951704179631906682932876600313657340279822512510295070474684706848132838063613781617837541596569027297087410370290572915706429888543893726598792897188950577007564932794611539020449602285085104814048707362154262435624462626011813858437960590901856053426443158414033555681672312571734505475923285981919869573141415657150904723226864049003001223775312263743596139124803413502077366724526388175029653880581758892727197343094981376898705870701808783323621686183036676659265180387068446278813728983859914165605528382996800303175869916904610119552736807206576023300404599216922910736835052641343747524498058361550755612907305865505737965831197426348107074390562715178524182946019810853781372427069117251059315505911525006993240157727986831393935168980150561696145116087157494125818026359824113052538984078279360334202496619134847286418059228480436113617588364901214674210981862101271752158877790208325327097298138559205002336565997728154820792104455931965625008140496878543417683097658423115871501950064934985073622305145929855320053277376525454903225621631756270022590724978000107817547530628486753022417723755416220033943240270292345079245805966972169672514132391483520326446569961660529458559305827772986425808342433214145788982388518808812736833954308871584475367892361076915785116108787244270573495676892659634661576670489685558461312761579529152459466256502566187511048643864462739721777234780862187106648857459324598301204832169827740827078105903737051050172690244354225631365564415624272638504169236062308479485819458875489300524126873615621921094281062193680328828528408383315652817258496189978133974612624720180503859136620546204348407259178570093133234530320103900485027642243950578010957760690804047386801239252240693002623230974784646608893720675128864260136890308018289505713832280194640480988895956353223367427772806928973990549016282419125185315461053064869479880066830114255853773501239633113118641391747001059140437603999209543774041906574939769674775983280232803442048152536540526051570459917065371402819763480447829835355003932991831110369601071605590536993066777936155994946291532755627679546241317885185292399246023639656533817126104405956163922088725360552280045794009095729297153608235892721915964548277278695623939929403815809927489647393207720361644886904365419786078509569213863232777043671961924107527073838410741991102611265285024170672766992002284886932263917109875502473475671071990412547354408766327385674831695545626916543627062299769658498259140384016296259888282084196940156634994569258060929437566930518343388450980720055130423208412073984666354953212920445144954590286999514842037957688501037308269970100320786463765851257260753679161121856380236239985544167586732565032594432291332920408178183143626904798540767415938943574996034442874497989611250358634769817390854119582284694617418925386694923887718784648696231432210452779388753894454791450158382656858332337011005131411685835883600903961748731720912436739196069456558695289302352945374387150631519739696973620711680955812205283789645049064821235311162843466808976204040830626386328535761727813369841769380977223901362205243017138370804255687318182568598091936455479706305606231590895297996338783412160819990012097141474974207802344738987330580739357981012256357658326133117451302262578759340624573660816191590862430932539395170203388286120642559137304155314530145258742308441205098238619504006938183166550247754684094960541771384619896397943189188545473816859677143831897825674281862168590746109523090190987602532065826909881004790830645216726615283767980109060921146589039110049362238867501493081074695263515534842261407889574403406531809700995572419893447838311589377382511036768144692746413509663528380754025116247880578914593921315974188726828997306058915113880304640524923167615810349011867062856917106191799654135750979444716234507987342757347883665160291578673149669600420650850157431246499409110087438137475119072062824926350226085372271482712147916343922188746669963500639125602412731560811448197043450954433932705961920407171901973135282569387448880525953024643583871471837881207101252141284904459695239146494024018825283996977189885622007469712361406297803117520596493489515565934984558532976733593996126078532310277058123861980227877304839191302480047933311081358913632993136343244396985158330725349390518844145120284447868726011665219378778661659908784253774219885096201653609979863137475078819967859204244649628199570402953089101636370060927911749048593419078771745006687514790244125879794893587930704194651411008172144110733527110893160627104334647088718924952174627386285379156097238718644445824887878016106778115450732042201022654320289622827650890500830844301224912025136885975081591897058006200493762833359434820625896110964532826409700595828455433341514489175855618888462003363102332327073460815027412993816457427619451939577949905372483793832267444874183805317599237631348189634425024357091104785299867126901773314356792122165331843386688352714981795036221316208118086231109670402669499295164006917833308904840608663517498461329186279282113082741686456976914275659777411379568138464582599766277872934658507256880897209974946411700168708388265129740046796975493698282137655136243939671471335186031882359717244613235862273514416048532737726000975039558562615851926486967790451846858657038752195141477874098726913913757121825171336670226118888371003602546431686479439717515237318975416037040427628688156454528665499708920030952387661987080555082260011324957243990408476327405842639035149121540706342669668451880881558085249970090806021266645102063252713996131362768537855269591507623686252696234296642654393045935299732667169593738709104993746261539074418227450255931618875273365587133030909140157821328904313535990736070096047193488052829807584152715385283525421464769534501080907352425183656039318193477484888295927787228764814890667213506573090203587020462490114927901450603470083922617440585951122861001351437361977040396759026244794365311783825976573014914663181542494150478815142785940303466744612981221698528619095150392672429237985918932413727202482865901203703000049058875861011995183893969466664535374455063676473865527405702510190520467123832039143412447116554484751654819232910902054326638278650504728573431405748439796435246248849096826836611122027744443712218818253411459393199972754018278075141292048250627617517328516585441677490379793748509208589671086612511474509589374038145512468785885561535255824980236911391991819664947542343328904527764368472335044015531694729011542890681816284450723586765838848812561457056844935701176355805193181403432894058402417737919394905279272705424770086631294119874358438143335524844932112144893111999896402889233296781484038918001284991201790890890253756759443006501340662059176349695100388099261029604415984767555586571439528137529520693258685704261935713274477198334004844006494158131559367844617965504462399677806259033936258390620380316973848334766110074594975610611871733316856577136238772122832075402628198280238477055282713689950464505086380446039092525529882058805870388189836544741164518028712177219996114440529835017425102755426670443328172568709044234108982982956226198941123681907650721735970026425180263227686642664690928526492634080482521426604607223283818996144191526895207984611804998607601327627606306351639225220317848268425764092274972603094191118871628371322232919499147562415439299050850672280730277443126310112704069224518579761308523849027159349504374334764172368670103976317997380956055931834493747419238375814698010865541279585336336234624664040284331948162119863493155590140969990816336501576838952124984692478524996934467336733749354406155382500064638045732090032256505573407450855114701086983220439256509536278192153489792478707847743030327751454106526639904148058549693682788509228970981750280145977269759826664482032421454150979351013345858310060435691914099595537506933848588007803857033443717886574115778741859215533757968014942156622482282545039453797821468566981917989216701148929928524638456572996484348749489317489036799911508625250462477872859379925850653702814013600192635458554267692473110647600759727443424189456295637793531771452877845085001465282071212836188018884409330002697254467559396010182253480135938556863635277345457159702283720578977545975737535585193016718391393918824957009703179624648621910679923191439039698738396740925685963819643965968498881013316583636962796088834820899686603291689225737304450594438286599622120010271165739187110421828095592333426068403921752422412259545090482596120268979822817456476685518791662373137113508314469676936296304368078715337684921340449638817877454505919212789584335707559163954290497629111421647889430074653411521758785941946970432892627862044247497948891371932428883351056476040538152066588075704282346234932967929285698495572243219015858592261958718053144005834697277453441199977298599264905003006238534771199898736042673278729195776552815300534176642994644765830638237381520430562226320183016467563105014412703209862782465994565782495963950816930211956410513240264368862918572985098716409316962802331840237845509670370379914227196352308799739002564506086128320515613823338168335139762240145396108854579445360809105700624034343207793078945387891590535026421715645507468778973983175951547930020908688895080507805215718024463383222665902282746734023685969707154279986644216333935183427935605884797458893545046398113018354309516309793996073174195039462727493020210086816203507501619264695844255502052676411134719416625035193137529110974327324755946991832335946611851674440576167930276442528053487851147188085865500443554531207008998855311471152175670421350922370019761239668273871450999577212480334444467395067774158856341609692470539915938358221235144419299480279901691254237625482895800218039012424182141365055296659195439590374160553524716227620170306401950293753912545576319685757699821965828093708418196301967417338616929864257205115243534213334028225055969655180334522886155978782899596255843356073229354808598445684255403233213002425535600545441554128793799738341301106647998056281103056298460450289068797415749921415106602725987721630202868269188372735006248593398405142773865895422030418782637029462354882856773861358252359492501666695968607313688887935138285203320152995139668687105384607788086864433888900603207158971827005628259948108008436202407136972374203287900508974087311780167482284927630260175281591182529961809640799081012332736460038471536022669458856768410352460646172652317726552027622752620091052305598330845013167897236531174863666185258798792976741644383226181119699618926508898056106104479568218044361376505006351591502793688429618856053053587220181787874141328546908234819325596768065742617324138759324074623011814511440864499159687558747096827246948720390434366443341731349307086312676119996292221163668035557670737097597262115815404298521660892259863123923094947221849818354263043838534740661209417349494042013259044159507026536558154294792504134653453978368455828942375414596822346005872767380942983796558191298536185870809566200132479699074533447768703954074175578257837339038399717234415541272682924466268935174881397542940855922084975620733028337599210495115979491455012811132568556749066554595263205220528061007075820077959801820973772949193868064221488282747204677448665879208529102597793754036711873334369796538249407982066496869264905564220049728167018382824935695012715755406189082219526818219964999620076011374631906622129151821269519604017150088680014755290651357842583217224337917109681132433275553763108178685756954214896082032251367204532719683729584331489366072411362203774340117388296447056661954529851948104525915506729793353540142464014120965674399477286556318539892117573079644609213255644241542678227360918919069705449944685000699264552779736326406660226434423004464460837138133329853728794798581172405275043581368721979783399925906154544929873480590241457463832604464833144144077660738698033693045986421799973191613325667541281794507907325245090444186330187363665402483059252319797616189830445079393937049505324861025637935676113483504309356219691714080242521255899082804566143132688811138546377091776077605269178456122882118494497701913616473402480142093622852593313749500526413354982686727063477852856792755522359363873446900451096321111043130134909108899282627515299283916741000927462268036970149789544266010023991359832552217806920713331801659747086644814517175738556020630220426794208870255675595050228005285535186046218609270288554363188865319079043929587701737530520586677392933537183566003585397513706652579885761338986955548338929587943721182461648758752452377673829723856005958878233846823990279387538408264307930666116889580297886139364332939470111400309788835181742032256867129833647767099741286074920652486679155495912341316085365074575198273048203007971148858463013140766308856438933090466923771062321047262016766789259265940533043427654940828354858142607669097430465632856310670594399292633012907870988514583023967676411509711392158996421155028560394570928697797443528382657450999109922544213893124347871347555224062008655945963138564816984551183399709156957843537185938285643398043121352942554140883646141404445862844791374064298000190224715162844239791981322075528941567144748096938126048949270014478362363885399327068571084941790805576081344499794106547041502830697764107453968688958336914114291303944931582531222708866860646730595804119462342213776333731059104509097169292145021379996387295387058138414307844043755880737600854193269073575408470840014522395139585630403895989825372541280312308056520182200231470282983886137610410539070779529217142519826999197026589101692929856163752596969190057661329045679440130241224068129418451738187138244567544696049594408423779880471851241370478934602628609032560787417132829311372295000794757919764927643931953901091016182352039984136938792292233994108367683810996941277040591230437002521408677011514124679953227010439345981747736773340725511496214775559723386064883958564680440629067861204722325088018777225241180163310903927793765126198761741243253222772636009029598478616862748910957050822519861656724893426583105603694421796859723618993775615017930397711295257931255135000259947466237628858164571374910529665214093130731982653264630122614357727511664516383176673094079453268178429594209340366085912709290509545059264721831181267138195502052349426176963983022682008494364061996273761704192381949675721160555411734617179051349426521428537478868891109867663983553459606633188245477414459482564212842045592378891402848113479382579864274768032273002312424335121377932669614401201159343459804793320711742717426697756076655227158281989038432478594101317201296836374313096472688802421883122008625440899537466877157407029162984090022514204714498880507424303163466473373023316353848178674396871733397753865453059369087801790879190246605918145541902428385873805744494908997271555572652288547120993135364293761581623962287598357156613528215057307855607613115626147575071741192474493635217969191394617511476406056875060413942078804640432211073374492099135107929352452777259618240929041595255912646690211557702859337226944749488747659459593862285951042619933163554461684566993698771058820347106449231598947820718253975115942252760861152934074051475588742152622484625640383943717839129164572907854840530713850107877891676853791668905396571522875704258400704115006508725121437668677475569829444965368377453119035245569240304141424486646095000723202583797376725597562304406377900456232210722264891352623690997311772830217795171735015768725602592436293453738025567101496354947916910018514269087086202441318421359299326606191692715351606954636403505273519920164047677686111762396758474113966056400453307989249548528847428377988977513482516875627806812225459284103610590514215316141708718148561758888980561706480085938010660139117648971556652752869554777908906724317904623252549865150320222449871169364711406957399366114496815321917071751786619675018535337357732132055019458677702078190452613855835242403024548430175026611034584185683342053682693297669162879962590538544118349580044955328269431088574075929645793839231427329615524362731308838526359963590583014705976528978017794051897345628894953476876815710488496417111057995724263066747547275855997247444288790288029564885492620632766045140543557593458428052399984261235244377750009528855833349558524639507650759937859400137006314685445830107026200577893624482130543254469949534619906850866969319856070948090426317825498231371166954900945346707075286119030954045725316443803137239943782054096867177468544352819075758229867393696516857903719494284502834973219291712058735289932587475132253943420205252346684964338146963525218507572989834052724274695773397346215326739717495312541555259377067089596432928757268801174833299108021663809259555713342234975734520266957026255320436730084267323301176548247604591911372724115086379650525484681867497763829618384208163734973746902760427845182834502479064157120478138342105578921322349000470990387164345203914769279086202853572779270043338918616888284323832052953746163328099140441406997837570638078516748372451670677352998225473814627484934467593822330258981097123502466693158796655137693448224761226335798223743929190944606401135182846039178422026539715509116986522615900113011073146833038134248902891948173539447278073502530583478237435693587935939496320966928504815579641797474306517219348724407832454126806005224625772602304125447276480768478393156629970226689419854798612694374968640053804240261315593532769574158781752809732689467787656658336886374175603395364759891881242421059918244619390750273714799706012477053875697496230378315314114218099091759635952236111492343860264050325693121463827735923449574980318382786764860329223154731211106243863858352414152447288412816544248642420219355629032685052463898848707467221682484626370584158257491033839139952129210072705375219403144458667702055629935556562853497730507790046484117033663195623052929028106026234827676851467385581085206639081140267651010948949002784193471586182605603593978039109302719813403163062294572783896990141856618391638660978040989144610635894002163176670451216151578288476586369716576298923409833873346060830482718381437309653343259687912356674737414342928481903260810643868864625983402553022431682031606141942054922404391389300645431099128909289171679252871786159923516547016809819726624980558351348395611562279670439589486650024782279143728330299559282311121007627664073534268468838660558765009043300237769489414775386462824811991034079742300615940522418903289886593762670140733198442595080991086205657487660420526275805739796547594110370221555261777245163914974022893051102572397705089289552372900298345782221600210582681288695837308713017243875759512355384211451838948156352219665147043027902945511709404176077643452281721855547429449399517005066383356346523738527460536855550282973607417471338079584395951147781850934164507558472635521487414716074747652262884331340234590383683013964190465888253047393543386187533681440843777434374066416513987875438672087216613649862040749363677102995061043305194394709218993789911232611507474651724578219169452360449966021001341589511004941391817463047232086033344874049820821942155379083270540041210511572780705372687164979447789204707165485747436316757916709994443279106467197853430557195242660260936485439860104066881726581907538138197528828116587355799951186807056881451596452958391580651349404668977121176351406220678119985485698175512963406922157154918050691058655900292052602908362026936261552112842493403418585337425936242127119711816165141171266940715867538543001790638518634422433482653709540264893648879585470757942080057309786864081264785327984926881522810327850446457056011676392166832514888676808518548746470144401573642296616981712800169702742171739339538312439373877612016044156809515273053379726358029701823335431378696408906432823961974273498044650343885652238177863813080791300499799996620378477599728459876090433854569428912769443252126694961329082581072738103805243727360865270335598450034731552073983443634088556547312252039382839279375854043628452876366486596196150553690903061344007737367205312600005512688719721676637757298766758099496557080734201077241246992822642766035805798893240280425055193410992247996229448706640503882691997732334213508571591923607817969735143345362528849553851392379028185297007030277962172978073428084870334515754907188927008677911615653146469058330205149489580541277212788400841185681796365660122317694053142905861281074245312071416710022014428811893398537111296531941377106152199496034929497677592500352746819391214807490006685696726354481963939344425260104972358843376266840671537667006498241383753474729058026800116108816602803303838812868650706169334384354059991387301491675615299187844811224535109446675040079763341534142218338317234137479135559677276671795840598180398808154458077959720030363057226912048145152670107884226388230719053087246114852270626120919018231531683623357389795190515242553532768348314085051422968476958056425392354704162492869861357672658960129042578853433623462649162522586338982585997758712085379735864526795853168205844863615685117165134158475518253461658357251396057078260827739476167121034100752004290200983391660137577313297582029295341659406781212251911033578368480609662061925305958862359297700537226254646034685319826218465978671305448121190397437787695306142949414591369612717412426137690959821249409614396358168734155685527034961317822245108371281342093170893155437528559147315492492445828482736432504674802045900217724625729096082117970214635964566608119204308196567759499873146718949499873937839436151466166346649409352626675529228656334702393016800860181471326759249832312148882028162819172311695715132654604016750202960116217735217186876056880375374853334216222435213542382609127342409409372208574021661681759793778287672715080702245313500364149877100369275700366871473268417988163617626989891177918522427332914406311044017696127165257914697688198773633987182791431778992020108671407612516374807807856883473619497240770167692517181549822332264286064962716067507228371571522590901583024746871668158620714424048024836560320948386489436438358078259427791296882552068288920259077827721364151679433257388570531622115720056421304758186988505523423735725970438407540286841931526738210352100171255779612905594466559737570143999909001257659606908805606955147722851777375494052772592453312040808542224844650296278210894861890914081595133660322645606622351155375273567070305720636346683563885933355458679627036241759500969864920611143022303571179522921119804235237180431031469690572361955845623098176692727153879375681411565469231291680630068341546458851887253089263739514870014322052188949553867966934723283234734611834898957204596040233787207559986556578731322006334482600994046550079669742019074213295181951221469369603452676933410492861241937594192011595263688588073125021972954817553929812647068069744887234292068215217979581643877934199844344088257343031898202283001318068455649192864790149020850943689283885293098598767807264707329247337758931134597589537960312589145045457668489334324038215853196385054679270344966212558567741129487115403367899768469363974851065126215502665324490727539467367967530571112858754115203978747220384737278181766124555170887042180456622974186498682641345109564726666806624035257648268845918699896122920990351773871480384427723917838330739749693292727455259926841191689803306939212643113188943982238374543059873471234343251969210842140512570134640925809486681236991993767832089513285280092182049241440986072511792546505064184003624158428192744648867706785130363522358921344729349115995065249462675387615209453785292209689010080199840407851555558451974174671755809858359407300782514027515530782931376584156848384527324965391053476922574406898735703476547423533499318260663460823106457503404310215042942983342418449966569172142674248995020637930555002440066520293579691822181638308000105136189561924676071705642021232862015988053157902675798972608334089025092307506020287940565917470373483696689710302552053204794258369484708418766983112387752904555335940126027290764620114708384259072789438999957631930298110246699124294823855038786695528304878987368342460506459801703962934025068691759107020118979201919317439813906734422917958712137258910320603776856437441555546995990296686591556599821805129563804308100306307998802110686612850846722519618484586419468876038083110097159412196243006890813039116979036274266700019661545899614004585906766743457048420490881118985834856550976177375731315402988279062667459363884799512685637695098113383813871587986547890606426907725028548770585985858755758894019019784832576760724585418327509744910998631540801829774856392323963870612708179765586227789257951090557137463950361362341403898920972060392825492190936856329385053947342873149336274284002082367531867277037358830613677332110558009048385269345303996198170669386911963711283221774693755422257231216055700212553090613739525432253866064019746112307999212010153438203989284020149279278827622057738393719936774712683263326537072596374471032149920780202874735976097240694308999867805377221477220317147516528400016285027213956243125708021260145795891093300471915706257264952449938527713413316990361353843854896394282283005382804982133345915012557160719098167869605668348491745700529959513057630578985901138083037770609739770654196187877402242761390410797881456798743597805952099696942962335671857800783382689394333629388319685365008242709080453118670597347694986190177136712487804293960196284200075139992840200661456719782891212051552079745956247483458857731993395570895263557816974739466906223754303318415778395404586316240927749256439822907281275416168433916036691057265823258800213962043058765196323980112947639567214621981785091083590108567761201792639761120164604076667142667079078912131387466854486642210693206044495075062873929060110494942559150130671531362314282064585782223955025317271351212072388335159620816787482322205091768167197073269508286865139689008315080036223298836977494177021523102046332575787582112016790031802152001508845797018459330621264202788899790115415267520205364549847629834227592667923721059869534464125850768805499853709532491251154245849632738262418627874691085224455474977120993249515569078304286508204927175697007057755037054172979993261201254414883874707231422424671622276300579124196195836852566070336765211768283376731200849383886683786178247384797709850192188162509319699891292584720174876253526939235675948301346659198552424433077745377982459748348367100367783400028197809475689139315486681817255349799215641092868095284169702902076321523051005877832269343707866487391787583220927481639142448355258113671657230212960783330603249842658321054240028406823849970643177370858330838258669868513586190760201219076358241326381980504393885760196992287810682264531414487597437502862148703500633071575336299197701372673761008041174281768124115375056435796976580961977565508469200179366699719727619561509638144811087857804417791333751612923180620072530718365984522367519784345787506636178500724861008712718855373954962619361095172037971244226250346743037320810572381286836870759570883087467933120034328077645581874894208911779196061666227295830714024229269538495528941657151373791665009246046039226153203820027877405992672557754223177251398513080279899175669765648745296955178963646939845880783192389913540025400582636125723681498925539334969720768346551442337484457241526624403263970720618112447572872575173138055515824732153661757195631860415384244708960797626603371882414230618294261270346892661148332649878089364229886930112002560048979030800769811326564637847380389970896435251249472672477258833559487317215984855408950340939137128408164926653413519959276497306815298968791277357186834344802895569439706510961726554461967436767167923013989080251588069416159338150235729270401468759173288749670445548238014113396999948665231223640763140730691284270623193997772669240325745537646704914866252889908968065396540446520296322695094420419948446139754234123415522388041981663644369331715566032647926379855706998242224844655113703554463651049690635041446244513466481619010225781969001664036587868063633403428654262479185531537168598271437538774110556353849026887446051621799829317477735071562874605961020495194497421366055673136580917044492864523357837492614059399572555231327115577087935950338291929998358158447410144826899271159748606675600713577118582334814344522855951237748626527167435561810623990507827721463642218329793294211419059378937957837498750930715742543776673896458332328446542047690184163090322394336589425644232295341283829377762687113746582570645259267321807592196153491221928693411312698287184898960396447426316552366204296856108104138088221588376940661818881295136379217431708560093554273086035981157954579818784552195373215457015414557717445368839923956635441192706942758374185010460666313024811999917989990195161204502103541044980059237752722315377125108013556033426226266077484937518773881696793843110644522986382558592544972266258321123818118552889683367579895262045620819716493904118675417076979851648472684599144380312095530005642855902407081176447075193467595458895760349076443188622997545989543863069207384584256521538106674201835305378179431102686485871575162244813271516763032756144565646056553626769082791402774287900969545336543300574618474234428474829263138086082013830318543745480394965177155695218192698535788572233566127034569044816425606107821527177659567936926736183736369338740404122554770883363097373270027211082424367003474856130872035688000534204773271292551162566170647043634300848955587022168374823783413600699295880860056660258488439226894847096055815710625255303992111308095233196413746372161463661437851537002622955763718149494131020940688120873002675943517454269505948905062478967346319408137827419133296064875277770639491459395103280235745009395482167681806281907058847696808251522476061262569929150731972380729568368569530554592581763044161316058646769555994954471026381137872751400601370738572660187048156305342494635097082912185868693349035430875308316762708560545003693218475586532499172554081532331652325701691768141504779243249495606517595876612862859050071417250438788025456383921499911274175343718696214660749803366347282171047442228354206041921567269793464789298299196359463105104484873703687026868534863768042869550879834285235474087383153115227035766828423959857917981662072173138162955058175015649179078799700421434297569035728488121703602592404532258689081673171015325420932258307773648203443855806502419886766500032317344865029727367107822178124970221491910756643450326090421064885703751118647524736471598615867771239106187367223218047950751728053048553190855361186695892765942151134875228124898781507827543523387670449950941714034201193090050758669014284094449425947461484542446317349275201930101685263957538195737986119303646276711641203643536110490198384623887971778326742159864137113659288360361312240796322782974207633059029915878214628833987346535213886423382936080859439020698363710810357197710659808620547691456466645970899872741770257918342088502768681853526876049157979089487147613111233549707375060740787339692748984090050889686917505956087324054022206156918651154772928911088375378230407975978238623096646565169921584582308226488058998066145930975452818117485469295255976037606294479112822742711949988843770489139997567566856646716562261638800637568958607173031200659641338078166144342433174923604158428441217293535509590935360704653769424977048855738274980809914699551290932665753445619952151160410343275874980742451999507572513587110481523941195741421702214505734248636747581679320881750788266731006972303280804650007974722548477937926772555030550297348443600753646119643005262569862741604014426327217363935756370113984975582343391123030329566792487199486911920445843995520777804262484265076534643853768954543239337631804779467158464243794571493912224664714153071540346743918305272110527808409497251693820922927818561657992774087551556248849821313789407681333181625250148699442141708839276482039934683444130614223072617721140272204291777423097806595990316945314176598628494417974947411132126662670788370278608634096360284754001654353944408835206536494131580649046903069156358354458835963311524221109932915566188693656793408027460344230189879273843937040586514083419686451340665725164325092215204776695218688537270071152275414558892288111334970023592063870917261604793597909277777266602376838092963101736850265216639438431915937322274849151824465074660674923827918698756912316165262532315962998426959491422868069583209859317599891355112766913518962761545138768534264493825814929059006876417687462704190428091484483111613075372017315364712575342387861654977426997976143611746058380532990060200471860724968123294136668877617196386194014948804270151175654833344207340904659651608522934216371642561234396656124710575295233818649911511501315233558655728318645946142030124208040519981495312401554776719016366370303584115931469686438339926293779202145640909306640103931485549798897138493159117713706763442187105969374030772664069004944864572845269353677392122890332930639703231681627751472880852107340161460769426640042188266886687768078710463362024980886466728969991780771704103369717402206362078244792776971502017670679079770116364729249387051811814626229279192754587724755182537962326410448202176291378423383175957089383936772000808603209614887137103399152200602709962004511007296963620425375169872900260184146628069246502409213008914202357718268288430303723810119089337243154811951254787369491144319107513976675111169745483882764434226081964820797011166864815598400085133507539071051525856978523770580820596141801753457026810639967827208195337994085666342418558132068091554651265528898086151261269814782376836416233965531106286969870469977685208772022639882285903077966493903687629416399416034767664071374690922890074789845175903107332088291635575793860605407922648424954238919367385006386097185042290456686104147264396379854096638090987658765977712187235184136705325089373381726561383624339275923813944593140043522643313411490748693482664675159188991836515161220502219446661110711243404406574462119300742041327340722607075747300795518586443292270334616081325550454084531195645407971591460025729837318090178563275293011396391174032747978247113037868692763728693844322209831599168497407096599452444995840002016536910157124002464927705347568266329831229482312381063498271372530656425566308455606952096916839605634467441753010635206999949115874647818966940993631910045453149910611076011121188667360752450005390063071194111293238113911837135202151833621218209221822294595643183251558521960576409978047100308152746214815266479773374342289005962549200109112879388087785379385338935129138700781906654222253188263367116694623615035267847577533656453656915856744091417434879503193761782359407241051830964349988264836547094071597837164422265013995280557547209687585900633985754727839155972140992982732531116991321485046677756819902250087213936723160134049209009026553088254503226930622250367329661126686845537279334778926811701399865143168368582853505277631850211331060961225491117633114003795298493712617642983079124976137301309176094320316263420112241378980161185884695056253862944770618443548395015402620907771552725704400941339643243866924051264042115555660315790830684397453839761407293523422669414376819281196795581264657156289498502422028179569964837103152286751462887051729614731049742533105239994383501756087550574331537502142690973309733199685512703766639981214036787461017955284242382099507145065539796699929924043116467948044514984623234216950580291271726361590260160676539997285151265476168790534456559416222564931405845867388935368497116349551702864939376426148693533931179422788705933280676305625530814381286702227214317117914754229140004106757014168660518192090471261401427041456386377213710281591337677207196598379201839196638672824360168706871057893634119405022544391183127152114315936164539052109448650707342478611773139461941976205754639628538672654267098208739659745184090111127613666047712356067369488371751663140383293003312451119929824146991291707669709021149396178061235722813353969315790510015936027564570151516491088244248375446323111174304453843946437752557377670704654245941702017786375091778075237245054104721560556717260855377242457383716360867440519937322269684158087459056718887223323697266075110497140965619072514665510278748697320501956531503136501962600563388825867143664938114355217281395977342897597941927037664329989264306542837381900088564927506155626922652774456954111904235402479444522122134004069524574904947359035818704050608460279269875712965825999866565099429192382165107365383295871559730355594436616794222715855268647216580776720280219584829955422046647381779308839960933845819538584634499128972331877243021005528018708447994147260681865225598631245012694733561968735436009155974416920407695597103965755927671599286653246945677046504175826097686047741995687961182327427582089004105548490532455015194746194540806848067137643797842794154315117608912809382776241527916628762652256858427898949877077474560712975721558355293256504897023060965737040150232472847989863023635021268313563701142463460992073080701356328044033819408287378875188707230167895678979508428174309373018108917844137064811882903958008190196620767469301245616879214982668881532823589453530215251070946055701459790930938698016062776942356171901433002324280382863520871477058263744466951913694624536352250541860237647505872479266824332120184659039518908754590329439142897854025036747652453220633706495753158335408062499584569248784448127652720713493396007459503294175176399442590002610823276042391852504228603371541148356265963465817112047936130588562896800275134152211408759633403112627927674486241242047506532751974980744050850656773497809899722586588681327071562611667807365143727451701366263752708420715886861722412752553188506882424179837974701275968618550206821927745576816579058750933994705888594085573349124634286660171362263744396877414389587894118629908495377900510072543285952271118242078770200064208396109231470179587264064316760298348994429535369157697535207157860107505837444922356057538405504187949028895074388910147990348615703602285194800872539292903281603635729687021956134662835750236698503095982656426355421615134544748984439152242962675961885885161437332596801388814339546410814689362990330585106128006244473881564770590550662291472615231215976019342947781801923899019057986214670923537582533630895878868394981349313451361154017709482146057727919412745104144003355416172012329723925533946850951189968924737707852204160440069877575588875716785886923539529457112101956709935318774885737465783725996845419931210959765048485186673617935189482453531083588272206808767152165338651542619418531706716816702228477853797163500087949134004642056745771320240677441581346851523519789532066663986112617386142421539817106639932558101866253033317217027240126089142769661965689824355798910832735445094448077408808068755715457694111603089812501787916953603760418338363858407598531117393055389011856377437969118357349445160426330288482288121960670546988255005163523154717512019725000260158399572315362161390648814042244194177244387082668013610030917979136983352032926192174861112259806360717767775264490079057562446930067829734432070643666904144788185645020214400884352462505364368764807035975482327636150971157433802070252282967796724604749303625808488514674199892017879323552283046432344080157148496470772745311186389205951891843982370439172887732090132778178371947040755655891421267851247217322514080035230576448797981550779118206210425739780482178137433062876678887285095261021231542243749453352519588096009294343054046295504579779026199635916401125312427982718187711566088930231249492839850631400657010747487683143517584117829113973439124150456124776323469913986578661450000447346969588050727685973664450972291211637247345038532030404844113189296860197735282089392864766855942163596468268026604164174516707605956297260224027819687715196695031644546763186400000993345720494364550042661014657131378969007238668546546575631754542012363812679112509606915313823648613064439771658875873675785597759884795204670201815628792126485857145788114186896496955864527747199654085974071458515334815562120854710865586988314423247613108052658025438794583362510287658772596666166075955354695422483251461857932237894502070058148372873427064176351776717546302021890616888391940460651377155096962722700465693817098175963369919101506310064133957096030162013900045196571996155472709227246941829937945107502937936912324232460399728630407139526067137282830266301384910231063694543525833638517285194607587972059667385024466644657801164692247240130480223424389966700928300010978261926367581694378590741568475636800309252460779141263681296458758936781403187480804407114779383409430979689255294870519381053529337133821476887566586364997561145592672001300745424258584380472550038204028629112374581043462237263383634752112389320801702302691167970748774573390134992088489260570766589694496994799730549964354520633812965104034210103462070644752401715174529003350166650201037733323403118317587932439451228401420987037137966351562532103414201324462901436169961706640370441552506914155581132284014654013174568544954849319076530867993397942894929643036999653848820652120026016602791509769271223592433841782273279577638023290636127842304117495727403502625328546466545341235082189295958973811071435852440241884164079520104123427528644066176915585280455312069125162142374384082998786922859191300987349025602691703108674822983063927153996501257677404986149068402020548046387866589339124524316593664283164475472928079812314261011659600456837559146194740526987296419195678953339476820970330698528014260733958320140978399255379319311712976286806049612664122205466803386428786234672820469206050047641298852702507291565586293272059623927338907120919827595885918679123528972154817960059493096691695191488572957839958679749426074087036764655964511894694036547890328249338295995440140824722028927150384460088741662854965699093432645933268619862360676569610694387024323287790812843161524751626584535732225060542927452753096666556314905561620562638196001807239638826748462039033680133873091457253161420765253303096731188817367881743503990938357706203464880403104187868056483405198688807096322087080085977710298764085432343174658151352411542831180901246846766483621770624396708036514813914775116661161543702725144594299750474404625023541041188620841531177405088702245525330881729245208792501650542576691494894404534017750795994591031005630158379003607176324582777335614861668262903755295211923545589320366993144755279460030776692873142270628864658312862651000749601350894102459668952083420357315368048123301477830038731720871322763596999753188082377326176328703612340529713539590575676529023487275612756051224494918027039852178093668786738295677058268999064980655132111560644585353038182357602797365599174628535651264232110194945066395664845907593412188928938854733384450038731257776431911345139917158210691557280580961218307587921061748891599204812129561254601322411573961918078350146150371571444689775490765016632063337929953749035442641628066201468181236492514249054060928053968349920877801969900122705218747153809816934918541598280974573553284203831032926794082845301849171779326170478546043892541799858256541049894755703271999198303392226415164735700941859722196303075546559709124481598826604295026603807763591664938253296140152128081545008659684550307386167971294930031979921258886903547258776780089947013356027753163879661203238122438870943912864339913265485303510766529384480134057068610100444377648492618376145416932460044023545150060163473524848977430028365204822097047138027522397881185748070287162849910519092117427956417157601026042228900144844860154025145548548166628795799692904832215352610669937859828152005885206295359806618907474780323537064213309714960607239515971667452848622938071310869260557592349810135207055900889968511803779496364917368017605788265287989893028949668792690113642646302198526986321393669771019078760993399411695217642711703220476490533228311164043120078156622232770988296968494688742270256764087613285961502680132374737567759200317913044314221461250583454783432505579974918328584521750052761099544918159240300068439244530786409923527918569877438513237874646389771779873215234411388378721633590347038732244747298540908964990684970588533791491391800159978630822233775932633858480379569655362969904221041181403760056538164359103057852249114399554909335287993974101763851921707953501985322095139906205627840018723034541911472057650653910669413083702975584602566269038240430160182248914512467828185056543869483919478269216987998239741688491944853625770695490429305953429808705587279673481966295490928995930716362460485392763345728244308603933691781243834035622244826630892951365847334869883125897880344878999014077197826544400814853612239121291913234284744177340262003962315787566401537123364295426541165632624371468169365992241130204937089267867437379749053952553228852621685337389168000634702442414336707969147277914792363735131363842895571094308429954725943328075205331923941037178722525600743745155186065263035730160329953015136738165455211698814373114855749226143942918473636555457218869318187440118934376723361553470520857190229535461332377339383253041528994283522233013127508977792014995571810119812070866244095901710622610190831907418740482185187683714131313801430338479038628627886292567850221450589342222897299859658950030756912584000057825353321463585717160713470282462967281728878337708211098276364852358293072290846184354417373873871854865005020199957549378030329866782674687448489871101163800283734278500875139064478066743922864118541112021316053034427462344271661617945048617547389595097897673783337733964643772716932414626973802646872230068931073375289161994906733040936164550913985155773094559929902494703020752219357421239390321775515335077710078827988389328956320682714300835720657377734033513686545052757078983991968336296897557206862613340015628521674401969656742012995853463715844532048707389214853251902237079775644144991870929543578499321300709216392203849669448016152970596473774713764117823567055350408850434380965574993777355960281709043982938738181212743677030846143299144941739667485103002698258760789488478516307979933987736539610829845611430252864264018933511165743533847271077582022463348568513730460324586631775012812795522747433571656858868029597985682734054423710540734377551852888712957858527621472937321149503511240173897276349047481784254441405649474187256162501117651915137682339940996438063161159770048301763224313880471784102655518475435205785042652953296587688262806969365160128714466531798186000412521955888248265251724606548404374126072342852945110418455883138732253456346845644244688994586435849315564123733520178371150013348185038962059753465341218176446279687456344039178859289763176563320140160841454547995952252665778998486608180671568580856291386220798307191502546274920106920808301550559380981419884782971369219289169625904225819637114995442090021476859995121765473896369674227175515966284664891699494130212827343370175554004432943032758948825746303982945024357129661625641762007743279287148104019754584784607135640975212252925923207795620299139642734122842510295587648150085297874565981419083956801567366276393620101016528490577597467667554304250410921621431788445602077385062052503134291977401814010136824986475267785014367921071292423364101559263652418041840768684684216856566113912368143158882264856816233593177096569128486755015836523853839879578437220107311661609016179320684403943967706735330278486492208760089328940371371031712793333509540857996864395295150446445832464529796034728540365904662485254414077159374219139472466262175850555681937677729694921508536104698785385448120563507414809789083536933284376889602626219352865442503911861777928241281129496767855809950137765018907034613967047820986283309465329472116312294248741695459746058950180541201278590445510290595554458872599585229202514375627161126212727148652460955047475453520863966956831089149472779530134016751680778090572857557614503899223492978899082573925502675883027011935945754964817908037094253669216158274983606032040881003229565445773515837356096864334874095580730983986112143014394604100027932941445306199352668477963038995783170112577001134019455966526410897216118091431064399543506030035309318816379203243069795062496348900376464709172332997635003300934189008074123551323238366123458298789661173116779977867231560674876515738046245798058618766850699945494673208492272529324331248060309810426615921985458258178175575486306239405824246101304778944890683544528313796785440933661983399675511801507288350900485550095388054449988108085971528275286046159854629224848359883628414958648355533407075173971192654213117169828018090207189188391372237647275995917753538349487223041809166288664197185282106101688858433168802544639803702437578827921206417179132414139313018788383534392373416563413718735504116214582744517426555982872665105762096096815802221154364607873448620496064629243623889389036492458289249947262820318713692633849570864630682592615635987470960356722124686029768946803027353517359433880356903599992132329014209321728344029407576282012970092609958968185936903142403761974237170059638565622452856793644411183119735155549131700878434292083014769703484010055815444786556440701215181101844500791837257109032907071893928246655937386736480100692914239457192047926937089505077201955080107267802018084270676139994505875586308111117775961183302270561846455029011321499441579758345148447089778854918789796649197455011179809022349691137589061846419580587012361187845834850929445793964855886101485145937741430008358815510795983640894608384945372404993874428282200112575203788087072024597093251828907990969363002591002144771320497083264284033292364751172873152402696576272000913491283134202869785989357615686657219607259143110029757789394419872283308619473166256801883122192911893509538989322060263503202271282671975973912053675050168696413710592712362093403679632165694310682499102861823300373248219411658928200861501406439303660884695114197034956175517140801242133168673251930103631885148767946292840141589000813979194155461290959186056973543938829255738279524529153029672260061378675487175824496965443300203709200555723641302237372023444019454794035381508415534702823354007429721530523600415923307183647844157201634812644319324801669551278182923567848419335066043381712585842181723064686536793476311795386417184327071284019338950216483654346145998345809213211688436110244649449780961442839228461631651459270345402217522860099949268910094121040565639271174628910456775532068646463377020151043679203596903297927181382304732868490111783941966834706821246378417077846967930190146852265337537759684341129281497910839770482362107422180513259271320754767341029959463487139224074855258258824668744452928629416564625051629625923201718779642650182839168125912359521790483540120109081448186015964596669820811040274649341010404003119318983916701956292167965148488623840992545034086677792671253200920204000862925040000935435893962561463492870267128555219392658413622072200825656460475303921278476123716540015016461426854564865340681822003969003850553296605651866145045050142795296697745080923382499976043083045030101772019298120911580076017080339291850080367926836846963224352451556499066478544482295545053643442668974229764156675570938475347053092047475254373887600066498599242643806699722357603793965714812368085154073114809176762450507633052251287063616377431275957094403823448462703547008836948860866976303757392641744890422659614881651866904413844050163297566736664833853083164624771959355470263444633517562297183589868059336342720928283313606281204002650548215663083131610292396325347787126649555998818393085735462897915164017845873339633248013307651413900977899178993158579020065632029567739414641103445487073584502744601502652320850093105675272977006067940356476809104045528924888708566996238405204796905523683523985682251595463844724211144298300004234456881859926831815825877514447938363499068944820195869967344891981037031935414898714937463085371752601189929430401140616366202628782638784402903240841637823525032263056988270308575483961981716839528627399783257033427426706889870465894597986806846854054965620700910267696875013389115281598513232518942799714267944507829461323542346924342496177025648369786769534243400760752986248093807267716953124775868637674311416229130698270860358495526050979256706097611192822533651723191820663524089150853560875833077337186796067762148490741941604230119166167636006785465601478349450970360337694603764164788218553232124102399556128904415809382964910890311135914701042417057203623539431598176824773713281305783737686805301600905841332076134285162930853264044084767322028890646014794645506066693221083290396194109101063315249355008154386449010253288083992260621494077210131830073946373640707480251689738985773676311252718584972484524455064126447599180324841895511528659219157033343440768315405577937079203227126589149707906108054716458134957317915395231678184536767009689925928789600322658352513268427197697035548563450805994999063319152315328672795711767309989997582062402125877621116559603631795491871898386276955503741170797930709038353102867606094807321202132419685843941756559154512970681490519519908627496468906006361068727450960900790124435757069453558935597344373028555530664269702269447453409594838332128550824602594620882816372356363729391615338720554975695595211922763741036822173323065675513395092148213551801019860789220982889724106020268903998359971998126773365207530622340116354030815152928822367803834587726945152612393301171011107763210091002794936508624376736648696352213655839950155849287097311650403624396210090055005860576891726242849597713787233159244207655939723962747491439755426029419093423092000971236495600866672340727896317879455311333649131243277465643824694993200586453976118391515804448247864269987728493980421084793371140950858409790680994620086826866385246688911607780524496589828100758318353148309599141128996244266434262769322873418794345645108427721128461635097331160917276819409979650756564737046495618821466830897839900673282979733960442607150175532160769371292018072609562846088003625000070330115348799675770072227901194471860923061366096054624857316722928028832494952515198248569914950067853468211420589206834654043839144691254882477989418590661212720188621037965394037322976320455996482835092383170808847785285107919600064164833323783800885742951300450815980542501671285582714555637597919819426132910346016239936210503220490370173638496674543332608020458934810460341948812629379067637189543649957231084830913543631634743408025743339263815274976452438144088548109939240720076377398930842775630834382602060150921453017478118068129447745371344826099815642131676203410566856674729559983418390395604833292293085292298671227688836926056753776126378581841477146556959351345705730613292580395716913437372781142469351981311593185285638603668557305118167665291582453289888328137160843926663834053663430271448977199255877337322258923074297683967471225696082334098520679190919491952458817455752556468044702220648969256922891604229875573322352663596151220023806034387411652915892189912481619069179766318931361762750024348812356709009013566109580738454073410685268065615741189257757440069431227377813628467670706347017537687604930826264308675391511681658014216373380004699134548511623450909971189513518689608477568681206486176587995072643837060055198179394741896589412672880247578600261012527600200258420160032696264882470638841999458908130369378442296917482285966977434582523459293579554112731761076036713923244919294656916462666162677793564513611373338612039390273538754566378148385676473076024267419692896809249233777024903654234044477489603700762928330704073184737268684302810012320648948902144186792077315172373645252493179662935431212675293873035076296238394907117485780040892726108460978663914172626614154946785776997689892311383275633224664666997999240097894899335530974150395682916902042750781820175222335625154901310019588085076048014018237098376731294795749052832125228839260523192369210736826143055039514350697315269388210745444968507000425241795182408546659635049714379666756889367337003211179078299767210802700351984836638688457120735892855076009693693930700161360003963026873164431038586793724796437293852684322812460232339013126980518100112830415375387750020242789618477161005213045002883336341494420921519722354735414514564768055001446885468070657957174755592743651048774341338124984239187061189908952204487697741436311808608605657455563312523703562762361703235097811914982642801509902831095954614206752218316666833282299874279686111610410014855706448129985468351162982458767025272801429041173838102724625527140833607470358587492921750808109070789177228371570272172312971968167837570524844915868362916236476549352738199206608375835581222165471112513707961308097720178544881275764487522891197587831908311784191014529159059268925201642714561807809329051204693267038902624013652572897527175263554857920929679568487218437184296214771561391961789987008425162666006799042580165489826199591664068771199869778757752253266863428817961376475733884658001131548571053161349395733163754313717179418140747505107879792326630390127834485247245045790399195527119790896108815477897555942008914069093873602433029114810174099218584602635856149191138787271957681337576432004771671449044460959541560895434963468554879410660793107544013893327383800942842049177215287461724569352491312099996251032550634347947814783067376510113862142637095415647188515198185284469815061602281207971531760512934589521619407707285462806185087596210950650903350084292663464179631758395358567873365041491834574389014680355872638289399032295991363488306074288253540337657341718228431564530453924293692472148994229279983081810423093529000050171221469435112108057708577585129996053776845089985862301635151840233173360469711680059131510852936295064498216932589828212654323802239816458289335527579083480988258692000978542677564618257061274683740511238640915080721834397806638495067093570642257946500239837855702128219392201729043732086495535992008632618903348089893130951118913992538639210438499578265629102204528840184306956531396043895321340068741214824092893955283200731842693857430524755983260872070941694204464650062342231953066706638363811088320781749020787670272095097987436195095846464519456438304621751132152048259699292407052950322998770543201306732823320580658389911288971685157038755869181251708201275257437993817412332779588901352336145053309521195499726498603578700620116184647337783140281444065222914507730094164633094081103373642362820775792002093881669969242309145758901969645660996868906805217161152621300651172255343891869764036456936694750382528176013045746032444484301270559777052636211279443938535514056516864872194664418417293281747392487816175572644485291243364661680067230321014595842817723916080555548054756393919600576884029643541298795920677229604502351269620534040334669977521223652473902241876959588843970612527465550221794744141117269683255040385531578760314512643710190392688402189757931983789862464545127733323509908192315611195250615287487574288199219517700789253498959800730828428319947207248748389371381699418896616495561801304143725160170189615110576637087541051514823659939434083084013629395260097591991612662864066638187242390928724668381301989945826110576515563205555969930151532923829661862719108951061500658462915393011777861010147489593257136823986637445185702845380503084553026082819528411548330234129822600674305102123011310927470476947381351350596639738567668796175926091043691878515040108911070618657536078022759263084089262968670325479940343056905694180568900618415004574535615934845898343734894598005032712850995103357275148646012204428509869662443632266199820957797979753523162231677076271376388430969356748681112146224238403608004712660751883721026515491038891312157115247454619048940503463057686977145812001551234117148972883473686452982744075673834883016011564700415991963595603943071992095633036270482618361917798561836371253353950154764015703394609174525991230184131278440872294847026740826926823740281121859365153820513074919020791191740772610759548001478771818202433346683315768203355296555066241261372670430230689145348713768755603119130015024279454595868584474852799119348393150809111329945427168857783849972206957997880479214610379064504061909080741796835040664613552406438651785133568705924498109631685766594222612565436447194619318422226350178232334048998859725089556079158816154218499870137724343636851366841493099899185163563509395314116866517392861531635354175368275864239676737139231031213440273019860471806549911891988547863876962588025731648135726533682667499805163684437851597296876181482042570059171576920285107572071167122618009892572995395288927967383499924898580385576901581015308848047444994925117812567748740859264607509017485684722849360202630729948786218781751960723309238944362676662411774327602602889764426383342607127824637195259504145004441820240481352768010058779040345326597363947647036316282520906122222429488951663686723928488214233516862713446528219058892286876094337990452474922192856986970437251835263388518249071900745159997068917860991410380805616746378655987035826405483255078635708689598972110043537610697005373775528596135721741094329559765961524526232599948785026263046474041024893346301910643886761291150593898530047757156621075095499770027644237522513304608145005102440974279643126666576977414750076078484225507794831569146509511220280143346310697408881884917818223549227206970059405367386156487252998655100554590559125764706207287123547887323138489526832827188755005234550366162276034784845448352850492601774117914474861527228767780734218526610644068975424086943241674704428035275294205880413066729791279808944217330498669727767095128161966078817625914121185437020013884613934306476146386799839342442977566157546812954877832637747071611698496706496991478529186225144111579882490204026820990522700669717683464228848177213927382157719266860672993971831349563470110069100987950164539220278717668204964089621695235341060381256712914724730035912314795551325071187193591672741453018944371401704395030421139769503313154996506504556934163551085506954731111418975152613359188791170122515374508826971403300379937548021831138352232491219326315080109699142408468366542531920172056461726791744520519012021502011565306370406374507653365085389575780668847336405001941773989088545416157323467100968601828132499475185212254724189464872650329810471392041851273659284484558853334548882974164890851501593064368076178632907224849302857915110230451410424427638605514651466227451489427201901223729349204192148033980436892267213593675443186062378516092372564577286427505724777109307891694963603122564550507544594047035989661036089704192933749342860238157837990696808776712025245470102190078391713693401811595925657500142751181125396762475759542407809228073871290997593884284155033769878768244851290943969043056474608895972462557889546955438256754066518206735567700163457253764420236577209775443695065908498775587134226952911235915789623823953335527527848278857970989526824947325393239959887829535612963079990180729980613021313639113366400132727163303750516122113669700532143444285203387220824951451566451147408172401557235895259148880072211794370333363862804143779568215348856176770655906847360076943780188065329930462496902507499037623689622722926360771485356925753046622713048132518302867494766671288401799729187092652169610517938195041979790461656148882192125323345416461907706341310414415191018902511947404259430762884323235434272815513738146372701829620419901091571421125961307896637173985831380787648398654186094015152038521549251822037912649933371121945450036903353935819434152185381577525121363503925986915097054166163442012279661790371880478388183977422459242018234022468739899059072302065864487113904143413451758912882435009405273162094134866310785961894852785645495674130700331101979814973979641219885314066772365806623240330566576459266310170693397645558370926725420609422807248196489771335104008405984580896507690375060174159887691874479329716234930763367306100875009340700431651051351255373260312859446594290492992459166031560550222513556966667923547986207744402010313917102138748845826647071415178680243253079026148336055125812754650117781858043902499328427724952662223672080232647671162567038040920308269550948876569066509865521554920213283355158257095430127915498307228618479074558979317208158635690747029108848484895970985884815006581279389926427494906125918219089121531263438499858117110516985330118414146428692341969612352014832464765442082522498905068200147226637372985290544279630737170294137847692074849130551435068328158500288431910791240654514724600817969067828769669606335988538339592963582578700096479212427052955055505560527676542715476763963547127591876720801451660120746236171050233336451508702441885666070696678218331843606692138415048138870560032496539922354249234517251661909376922742727415528906154559821062370448594900483088109118299902246155227090433723124196001965151359611135704892474742049750576797971131732661242899250153757737534916850966453993970341595058109283997346197003694890656304311849405150598486658720368053824188880095992650733788883368788459150340466759142008399928921540364420485800607603597391664961207538134128976915124883342377923680261725280612988700181352379684510051341887135365701651349857447319054122010233858465795373114738773966462885970986749695842187745785046276565630359744665413818584248623618398554622716006574453375224574321176231694335744271534100397352443549244464961294880308442059903547850280927684026188854796223626046294008458108625451964688332410413858238417316350390605415122201486150017740301565463282017682882250539106502221240294800464408092915317388097388919397049705100701017495365972050540174205651869022196933750472258038008927187201117297267022327892120182053800870020560971820286390307763551927316954876649435759093081465088708777294142940948499429822772046012078407456921637446086896301932382251681250723094082755819859368819827050753856532623647414476173496325812979215751796599136680539362198854858553275388713432783815357404535975031014252196276579044245573489835312617836529915958662416738235181760508544394383238237940210989206773004784413238696574112137932128393456327468758164640689205655584313657760426595045568953141461469871427715273203730118189448531231802185816467269251696275447844486976422950707422511592751923351811034995543754768823278218520095804822523605953434031966020009439582265569108140104576766258125962829620012076017738338410567353038706717056717056920463620784011339424774771353040426949974052623854835543705905177857004674504671013331209870441824984341223979984963725702907449718101521856147562814396794060071457274303182324335593512310622335232044666802118618952289252175104924243045608948979478627247033509625696720064171982945288826046833110866153389847542249606187842784771263358391932077976532795302244880220938059949040706117984591627011659482558689661328046018589039589431213533763524290644231815918846873319712205593862777361924603443616790931709321199802519289860303062502507940202361763217927498118045899001243434023219958271489871815061869196321615185467942623611221795899327083776845954362446052713445174395948900145867520865496722378136034954541403083851558525871143667843653567488985672429612404095318793342610975583505308041899276036020419674818867185761977885261298250796836297437420342184618160214929811473195728743391081035970986904938851535133929074369377392989813423939443953306615767621580092528574980402257091439573340132827056353408940297488728526744907557507534792469442317134456523407501569600531133401257139765286938966555643932843570612630847587493887853063658723987139171217555908481003340388957843890915248674912655257021714219185878146941449472255076114391032341555103390870902565223164295042809881228238715764292685877613155272640524858463922476549532403675098339156952839365112554685090438845310200374143713905980848396651672701168955798516914377325449607307656691865828208170333586282506090003883563602044311835530165475228467845672254825402470634980045239272255099051720506004841975264421104589982197739804582635874608667137448103920385761265456874022604451711525366845428052602566381483515150325251398948008253016307781358058345272198004857965234175647848404104272838157069640467927117572764085350049070547638222215593472044102580284942620655726306270734736069882530695246183839024669367962094619263302649590813695163687112152703448955619556240412222395090055132877067723798607451271025225036222654034051052473462922439982868415617183127051285309198607399569704874690707602227393697579496422111542825186419544842450976714722502291028981976364050350102582545610225062533511654812880996665064376791212984275775995391851560912916845269965717278447999975114059620180056929231478450185362300760709299031405924335651431156000450050013257509979725679036960313929294067223289061847218546608356628685117814929225342093185330638586265682632330342829079504433459970590276568778419712713046789217414973726332181552652226778862088819201009757202579583838479613155992946855495401341588604148126863697824658060701065252118745571579298414300669732293994782419259199723428714634492788776359989474607382765583248861997061444981987765962487180761398324192891496983877096093456508923228144645506456010099731332307366069278249503137644263312593196095443943324156290466683667007372186895445784123810551564494968858062791160454605427806411242777486064399534126946441718127006301927813853868553295024773891780344095487823993056781245179364449048684000080822641683388743018268474964353341454180371042868619454253925328687242744323425263410434599439363582736211027622610798718291954631673271711587674461453323862931374190014540947611171079774010030793053455958780987007119187374634169045293134222145429110114491247531771042774996452701964261220776055816391189807574615826014521210313637027211148571535387803988116626798920475572009782422811536443754834807249638591884987951187168323573873307971154614871944015925444284136970469292214408894682715381670304834241328934679936033400649912730035034191287403471110902623788059409027581977721608878277708555666542622985557613761637244714893453169999744531966001622168756268627185022295214782967557038734961724272431031665712426510072130441890400812818153496998910264000368339301176444952570224933218610710203176104197353990185813008158275392825345982813312233043870175270844692119363553588471026045224522483166860107241115585690446324145898251510220074697008637696667779559039090903654115941180197509335190835953729609736426900553496296358111443365908509509722461622402114302108837381729239647107748831159467803781978169555392982796698488640308580794266554430088508382093509064463283124412594814892355114681506020243906544535520879752428687279557542483726653083830241022885730851328381180217473641002660419713386490714149560540441492044401339254972009731481040527142258348656411571257398290536610107196339376469648512263079033336024446756838071994250579478613685492216045045273640153114679190140294415944492438927936688543476943350780577511523269672272366781934102630253751322005749538786059708281922659795811590024966324438255915420578412962741946695123183126611100796647289819434671328381124228789216346482059136994629084004552036976470023114141914352050768142855550343795592555671712347576135627413826185912784283038336772640794458826445626570082201471784809509161601788845916012985427873265907992515347901425576732269856648692703219068673789760544151161207968542528451194304633004304878832541825626659750548950343626320040696499968060380307946132486679100232679095696270102577923395291125615796661173699481515802780061941535974294714790612833254370442423224253604046875738267608137905351632494679255487007409540056195191743630645626615637604777726814450789248841378345685915373075672359524802762921075952800843767059089110801559693717934573820691375280179578620811852715669372968531729770275324129376438118968867475260096896183281710166913202856241722241789178532600212828215679021560841732620049010486524488207009390262604569184860479077882962959893053291961439446319583295345092434256131941799159722303130838283841099767188516601599740138951552608090980984274963174713087716885203591946936892940839149903974800976698166101624114957155277819373075783907023541696960537958876366952601464055137252300295053593206102519763071373793226767180970927819361451887503989787891211497127196625536809342500825918339743398231789668565771932540469393366386404433545818945420739483557854187207591325255351832251191810189356592058210763880999033324211401548810764273911936138716021611136561445253886320365028284004222331483701289720865260385345965793801637521555443865449294808246187982567840998511887321432832053748540969176661223770204260130517096204878884417554650017233549044029777024315019304798770920226400705459916111526075980630288453400452843577218631462212439605986813510536184294162587122623132089581937967859922615706739834690983792212360855168633375557749985689024452010983372575584149316627195010183968150099978161271705241679033962855112966325926173152244889254780003722591661437049566228052227360196331482884878804244551629737183077997374627202235202469377310492537945651938091268403912007888120056787874242955046749063246194025566860272519631031403013122096592974567995680065510591966956561380415805177555396943646884729607587524959338175036274980930369916701043890040686599678030579893989397963225629063897708497873386139793440345127063212101975745397933457633847369601994846647754971021534287692550952505280041358583639227142239860082118325582280385969981675629647575987461874245888790766282888998237654319439916380849152730817128484596016338151333584505922707359761210974042266236358319716017641687999808332143882303182845720148369493986878793365696401252378869981146296700207724810057444935143610464041541048777595744247914999345662550076358158794558120295794507429674726733369648204598725198154617397929568942928206541474591399183436267434940024535459124311842430181628605585748903093430640145002052459784479573827020818584199577017536988671994847906522290356310866354064945222152893141389649440344089106477784743188796685361103339145639061231187255748367268225967699051967832893216976321011225086822250467359555212654814676271460449549531766192133496555349571231792408009110133146871204988653689612197805471823175111282216443114045657065155213057763607526336818957393635185428567938421211155843320177626058306331204976368216422923451933210691125307208377886677397864094160415430254914834621380150620743606769926418691136078960390874527282140701868816988069076913835885313408326654237610092455889190909782779009034245508860535927721280810708431526336555004155701962599143506526559338447297401609638985791426555993422558397787061829892846693708715102060268296069645535760987458671370542994174221651462596843973003106507670687962929593235194424759150747414713401682136743544550178599467342274439707259962672388054235736160177027691405983415888748096044085053485571332894224966551744769564065869314256108833606732638972229078755648840256271212786276594349766449679600790828633487664874909168419975063830130001576617380506189378215260224457767936756242964514485235506366794762411921819505206616260929817063156602211281355919359960471115020729210472631111757456077459035797716454366840683893316407466773994926801998340781405970236137541491462327233102741528900428865531255662205329467625543683878064960185351598191819212641645798649439066507251266550599507143274395503633645323713750936469727254393144871863494908111055775677031387726416092337506342023566221807154582347722132231148453826088497716287910245503172436287465498412723600016280662630673703076626657508649935298492246360054987596585865280723554756705326361252818039633028460733906738198804197670749622319874586101816536082876695922569377404783759914754476376084385019323338795957921021097850704594118879403871030730946101831016557476181522544888734937541445682160582854581255300080120164505378208081046563298451173484734520072276729406286994484525012896380406166710139883198824577862661101974610245061657882744367149827370043837781540565003017925741800366066886927917068802744191419941821596096180826172133853954308142776747164200892318606519192914592780537647233246773346963422756943005164826848334609249252235456662508061707018712005064462362833596824552044617618484836468490712761845914157283781055691886107240031630894839470134223399683658627649462743761664020556656120330346987975272954809126887988241497559717025940494127053844776399334539536655299918368112856478262682595286015073760056638538061259499132420879136999802074598568380525351131095080501089612603558661036949167694432722307881114054803435184329475774511583282510336292713650194293344955975825649815420955503561753280823510141932052189493359427734723168242221797680620057412243375835709990698178907808364898551270273314461188130344540717279617806900383878233234145341203172073577227255626624774727724902727901264578082158560271817786930234995965026622740739406254916752223230582715683938292802856189655123600559452790372080488216456652509217751472854444310466040695686002000810054541195433750078640704975753550945010422902194732930062938149463019056377457997928275094814856256011607150455452911505564284261668647547893732066607469481701405052823350705014496448880245320984389149841147370678834450139901570095056433189291207067917713212719161957931121231788018913186938418673030736608626597711571969102538053293372922046546250209193488170503422081414357620522536792285850353363008554862477455078211722253434944405323370336182103422709054578847972399845956697907630001386448016143825920793615328282883920906212678357741171385588213178393952747847110226253363385889148495742557708908848115308679772633095016412646064979075575190225750473917755426072298661150587203135080623703098363249588045510818017504115822491062844257932423023368811974100755725855549181956075032477155039462413443784342297208075206368974297643049843803484287355893302082628634548188985809958151218377997183410366180867269105921702367718442898599073172045914643390884192467387464073941959284578616251204873579590520935546577473482074689584374916150553461105234649925401030594056223192569551655201694796242494278646426948459089266442456035284659348952029444791094054316416853459539002708182277351495818913268827608763162763571580246093415035392991603125999046746415126510957198068128771947041434223799390691197439955781916655356368709781599581699795014664962891917436561771679545465281194752103540119029184250761287246622366901156519186132985615141326682261778685660115072499744329930709270776171886864370564327477892317954527387370144630210493175517528946124239060568064600396350936955744488797534837108444606182948883779915444455961658854675154392589101160558929842891775894647917212493680235600430855443478112952404378072907446677356727024186351735675220159278078672928870588720644967356323522362952784866748018686616970488658759449316251402358950508552540253427914212686647285732522211307106561817723352213092067838888233569586346679150078945975163183276829638283433116916372101978585334664930283652465798818042738136636578822105919410416631088870348957259917124012743023099245716532520287063453313173574930482704466970348129462548408286924828333218975313252676133299303979984652753246449352814035534561194392886383350792558979313360513350464853413916479935446164862875925419502069082493489823394667463177782580159262631142476595813025641264925582412808175029371692649897453510622190876509362880061000530520386599338159209860114115270314189795797636476113790512059835604906192749701361160867935635768357804914314139053631613547561411879956583195708286860641963404006459792114261974092461014190526369554011979447774895124470220693999415952929752338772369476655076680637553191564149321495142090755215435408499818814697208254477673447230228602588399297816309869553637963076409056933654265771616224197626424300992830237217141070701459572632070544359716262792342752882580847607496385663054718847280641826257031024723901966276799835259967903876504013664200086205809047246817170884909944109901310447954343672909388396624220734266858041461775445972100374565858868629244709040006387213308426865975322517821000750474299350108088720373322207377812405404656144479028738678747640278149091729730835245813643466901780515928171013411396472819039640839011112601287640207579708147814433034630705892305909811199929085894310989320791563696527861113486319945564951663811678075955159857812095252154834681780367735991699123608143190078530049184853028106708453604433590619742180617072503604807706578413967698615392533642177421552584803002155319571836403461317143419688888025618985427949308536607483925945415366695046250291376023282319950957923969550767817953426779843142317302872832154844388838802468473140907351014139260594317525147471103291798703129523545067874209471947684761285452923084145105422919226246573579223934070328554842125888002589485256612961624242144553616150713931666916653427094359201534061485795520473611603503950379055886400819369459197649555932989146509361697495842016267688854728109818342328330403220012893938119338626128332774205124520061266093394453183963052596097326833082186629617502077538512245918313441969650617810493135154995923583405577396308154294006937825628217263855252281987492058831981870949510937507562710043086870645168529076612345705019184740769315866051772769661036019536468516241677085436971868820001411554146680598849661722384864443858630924622539880124356588189393749551012785414873503516651468225586673738344395406862770466007730086080647059392230021630418893720289804497834192592229783104861406887529126241280417006334971517946090725263854612470582102931745575169474998006022981816960525940281035619498796527626730026095742724653162333731337936364836479879009439723068529480342590926524270328908514181788860435238701268743866732922995705295778649082882711147532810754918152781538025814841122889682113264916431358038547300606175418697705612499209866817212279980327082269460150285433704138522846789244454426645683017831051934986101321670198716910939434502111151624782660734407032980294625481281335584778298615661926759315519982248682063098188157446152952274426042216715791132460827186496337714052527786279625701603994407540438394400602308274514299010485264537431667296681464708830814022100113854250886295472977184406505933377263639436352234551775094658001351090804434617739604009979278129898993734808654154633507332453697990502183330493044154231126936941362329974160413956181329894696283638524646589868580668294447378836035697269271303964826132466827129771374164971578964039429371501424683325198447243270379982059878503768698370711288418852087059486129364356850025786129262579088328890384753168756459689740241920370357107306968227112182499767911665685643361176437477373053529517347555298654591487451697609252216764649794403431922009396774473995125907952218613203679835347019531658849605134896601853532431613567492730407840542690650632953762947366503744085327993950694707808046769503165512269592389779636761173108186838042830877668505559200213882005919605095564116743904315508051309963681817814672511308666395255590398349459777650243381214424857998648795669463017234719695308459943986335168741329033398614588215543097381197290114954727237952228061916466174762372836946208926455116410479393541955826489308370727652686835918626240260940082154901475116894627537826339131754870041416082024543023573440151473599113901277617770012725844059438874478063217249918792198662993820610665794370228086345975474725648872362602487716772629847223525606286083785506214542042909128282540793081421517282078167243166503185264884352539592083498914115331039562431190463020607664727625751392210010018552715431756845863894859262760289310574516294626690487117032303827117225024056451561359067231282578580615307211866973833929361568198703208833641247119929676570907517879374140008097705691744334947794088392348028625634118567128233539940805265195386493402828560821886355228746618505398789510169943102429141478750922399627962291016172758613371103413612352123718537324527212544516042822505931038756048128736608320470616333369104113345710719398247385210706809500340187220159872611899632750808683536874041543039710761760329900166594990012511733714166075438246845210517294677486318887579829364103797704092105250534388789364783965065099062138745330140001802869184935396169325610614368823076391868497189297913041617425638624582348565297626340102354453065645682847336433470907725261811739248670707637498318488250904777014690377969128226198868156583679087947122270661687992996512514282773195887398533671292979917173443119778127846609695816621521096126850055122733902515099351151247929428286090938667651198607001381702826590239238343652155759892669094710757681102169842601191722084936231792173573871919044956170404197540667930880399347884323811284263001059444288227746839353832768037767405432619860245632352130287726068227036176879384672495617251069489531687914893332390006216619857453920648249696786540995829190413648909937276197161324595666193215325058148906059370877335004342632138725236811029224002471978435139215329881956561998428966313539867743336118715205491124559579021235588234374354075287741205698608858974795709824979992514537021862961653772536211449486653752693748246435677725973129618130355218973141253903030099320893933396779196131847213010132302770863910853625997004374539236280721336127845546080525705846636269139298573493113848375274909754133712777484060077669234096700361822176495813451751591838819441930555057058937079631811940336619781526348191993910585138656485563035218878504220069048243346202315541122794437422494119506715536578510400558974914878545532838107023675032495744434989216921613462119357870971703430180159228200433215825581668120931114991401264801826411346216950131264894215923427153392229722730007956818307129721504152654319232231240879849686489853536279487449131195838117964285230570884143381102024859833476291055073242548354156993915355907220774367387492870417640752068246127925424410909187275309793046531769440307736006110578720422819100570192533086665065881362753466124893399774921521657456783697601532658774770860150990702566182100340047140687023043131682077337025473805148121693824466120269371565279862273927383030709919829473536103338955350886568718570462660660083952305406749858417190023174425502141864024368893316317335360028472553081080740336189670334393101289895093644367910087850791322609430128470851452003162314950204894451352490874622648673140070884028861679895191578717754884282587574073050986066150193379696661862533085350894103371726858585964433506860585435373853840878588599202382816573266048986194198422591926651804173805512540932776722334169814314241623521952485322025106653096379469958967983231176820959140820804360253858369975735552837118181285530047722006987079548066184020674111120563623894794019313811443227994573295802798372172238879004198396025477673550689484283230481935020205129297373153498332145015788763989770298225665383090207984646736041554651242779269647826027349680286696788669138773788990568641069211895740166632148770927011078896221342788065754981121724086694572076989108494954994651196559798540965824900522660418699715601703858438229117734825988255428093312091635796493697413276941536219567291990184366805412460054882196421634421552783721122411577334113551568157222274485649184185513776622671442998339358258619744495255087461267295061922320092379181694856357401991922889091932440970326898683787215991968855504340810442800160902340785159068051107070515646663648210802800322855625214756118451015349790363656236035590623588619249156482677010624513010694646803771961562183310430977854515893923161816944449284512494485745214476047991328459349993698284039232157106792062115251607543135655672344006306618394629538716059917791242750875456481218531369209389120061032711492943992401573352709781913875228228666614870021424965210219002452493792355655865226647631921508707524935982897141587201270274150144561804683096733078547416446081736616187348955117309551251656862818041633579543679112863842709903058887584094170946499396107774969449413505881317083129588013960846678160064847410353212051877500581877463718610761433247046029964404512883787338885190438819378877468171992568489143994593715498459313658139369857389238868392197103775303887480729990340958562791684266514949736937737898847280092608289433326964482149981183600955640913882873676284071599147758044566991864890649269907777557376198304565558109201818945471389234246840448524134940488258900084189245030275686300634280909700182540418541281827298310473152223213945345489706308200886180433435014650333157921089628651198453862289585083828429138826029611229601492295768283239235388784745150775758813353938671400796332543513551106363014916258170965587475233508627592751883890120633472310522631491387963452915486813961828720279886724435107248141730462274885316410241024623792856475707279520196426145962884691879115719205010871542174993726484293566755074173560846593087951042865028272440696290161655863584848136914071409319980180245359749641062785436056505509276989171753120276875984311573314300666143846550539488729105179040489791218297833771565115027416784237976726849382506821535998263699655289868273573448322465406151101332635078457282335922138894107715394175917794586472910489002356409653642813462851690771181779832971796224831238407026197234311939351942974358103581290677611197332367391303833903692525757813951558668525835848026162480437031105829766201223471483520358844925278840551868263626171324115300265840265610290688548537438875598066031025383023376756951955634435636714797839478534941396925894231701191371186302955126241742415046529151550499096971580171278230959893447567843258832582550530478252738934933133145586574696496408146841342287093385305397013989641643709878747962103153086168077160039741936252790081461204970886866695182517848935564686425617622798067751739264124629454516932666384446563971724809429509074450727066027752173148482853010831974707498844551836739502954363456531339929050297675225314820410822680236342331989968365903530792668644087781453931897269478360506159237546674462544102198293946449462091915167865530779514571907311785288847920495008751727798941947849612822554231113182706692745536459210717504288071433228826087730883065639856579929268648700498848927771843795519192224224722904850743061058407512495770638170203956646379300040837366033048714183054863908293228662017351634302503145695728495337640473692731738811442475904927412333942102162052083791173579247791397229767439676913767748565045286670810047539889072677818867733064654343268857398247813063853242173575429338692670914795304775599260079314769370244720842915750401130130455269187206719294094884240589766302019814658869035568729212146044514597151220825613050394884563290116818675750945914930683725520184562817844171065151371110588942354918940467675484382548202349911720371022817390663038467764593634532775739084473355169651332532639366327731177481735053228492378616410805634221581241033039923559963754567324650583414432503779647305445958503960838210117238952110731504957753585430059090731888550960379928622235399066253914968802733785935721499481240184649036132581525291615146094346757865811684840587581632422897559105002290697320755820374228842283513118089816836215747912056615419946158075110991674557416931577821324616935467362048741937120277445912623638541788192752331997947149632220966427618677217162357760629915041492996449930722989631238438744772309572629211555145880937964495647408919228303633833906730614573351774428922361095031771423537211073116554725257019109595697723522562924111162564238215995935424382497579893678686955007791729711666089734041893549864664230620305896951121730499347983587878433729713596722637151160099788291206025434802640430372013963811609278218470506463180136615567402183129838189765382204041358754021321815492018275007149059790404655874607053886804186113089463411503689026319078844901861256119755652231216302195788516575032009358511747794300444068529301289835512661890160648762804698407979012144575989156329124304136133769627437582951165342627682864987593711996930633937097919783081701179577176292678020573646744356112987254358887578491798647276239023477856000365224831469610975131617357069462655775183714454281552129139256445645511403289015685914111317713944998353757274332296320324487104916722286718340328079258646306658466209267899025639329885234239650853384415705592301307939815733047088886667180307900760101977608877361456405496844048744240422843122147679542510548540436137132374329279957032727994380645787972539549139513179001533304447680816886206906970778343970213232187873919865728798970309780843494294996886113571202702889659224504369546761426988704352785712162779060576200832212400229153567369762824345993997200550167835402727438293650490754051096164118224052404711221462382422094706115441306137028121807462532605909432102136863063236347388492783205943366856220302078001148550563843276901007914875540425699236606289468964012252862454649861977718844455435734902053438578483486085790411214259997148745227073350085124604701213254018154191695203903603182765659650951517018291382196544052640713640117911103808527034181437727077625761064934064855371746808542842580924626613009528200484773568185015433493927484326306230149987251251957106629706555711840050380199276079298543861767728497689481835956865458550526008206025555040514674342894642455878164047726532721206396747726246705920928070185217015590710198547995170826792746357287179998918730483445680504965016180742417000284417759911156816515387829724259510965163026149216824458536842294526231997295150658437843660116860256237310084547812215922280032477843240830205984792087275221322648484420958927664346276162794588975049506389269574862101731749808438423545189787743506316466361505735793009780937906580789767238819745049182788565652263328604622219693582904560421169989348342513534326618731721535916267169119727139527904140016973306218691655102082815213663746241469680377187474848705200734128330521066010215465542520981121499036286059825593900093710403444217336957105128987962258712397892323312769502739778558756230683359203995035283298840902419604543398060183485297352964413860960373888811339276008863201694865889993225866476437165716299258039380223190842548000928065688377554360284845624259340940873425051943310212134737039638817709663226450153498923380560549507715376728539430901376757973081382811785373846888683008264213144550877204124184899701326787975453900724250381996975249550319352052362989679925182553827468201220047740134412716913175937023890144528293361789939885726389330578962686176267899741832705608517507829587885166572446044201428226970884138701107904199526744475801160844231420435253859285392178429833753557679656562961004916833233619140540108443593276529420842073156416180103388489592782840234967739877240294098595997517854710104362325320919539090222600918809250248615742964728511631805415723908317324428844883623720271871260660732203392549337457836507342071883606008741912325703199283285186460369161480218850203820937663192825914828404685751119523422958852935043186724543850838469691605982712802829483748922443498637932135005013662509648294622792779276344829844818598096124675897730138817209399958147467371011924290902402698686986607511098632049326826321894036321414843392266549929887889625232192833153464856288078958026747204741533092096149688289746486605749438119532093155124964237988479474268567281494070226645813840149465595086294422292028669446163477834544982928332125639330216005651200018758282125954060725585393360328522876252640903628262582925175781548858660415818609893664074745733270474106940727872920385941297953829549011367350504669556494562686674945613338409828016530147237140790614887873813127680191563363104598919425717460491739869512634118622602933537619451787708999607196985188073304762847493209036140397162143780663420730589586619671848958901498778302918856331051969814600061251986012033956730858986582739756826238899210663497814619348161313102664449680341385439505083902674494870581038800345939935327525521252665293902161704668526503809901874063567201974780950341835214370411144999730227694599708647304442228924664959994342425350612830314393903389987955551121303768548107118534527215294440357865011832502004973071146518190673504395133139975261838690795400929684402523292166334693991490658833221568236961318513563835913129351883839104379649651820958356015076079556732984582091393893085011728134792158939670930305412045442426613696930741272215784310685370380554258957176664130784538914822710540745291106065029144274700906869214277960375740851483847212577386416690362902364310753877420573915659773371020827862291819987675529703857191396135668782783247585808286683743163100436516826312101142282702903896909677951675779710624022033831814032422952613192170380887460461232567018831593514256649119609878181810536764099510181868633591946812399053007506641789009531553846650167743856768759569944465751785577477875356673139552986974249853715358680386341739274408449615357448443878847599072678002561876834785678873144211191480624740535072198015709476557044434913065144247748614928337527762542742786088120969206800960369691321836753313102953897973748535232891182869962839641279823958213553857882824093688038408209135975798254458349202415618285166757866056793123005541880584083010965247359310618249688584167779578665083216317495229688678883290495837012325687604241925144573801918073009169507169799757731686567322109489600504920883090444723805144923207566804561531341696805966492055085112229970057194181730787337584344954496037109452330496060848002514666570189187327653335167639978024939351489966732453435790750518622745155655434629425037021665646725032909551432034340529705046785578314418062086289664028961979473206374744584732844567347876554117176436919009527453312468712875092497828114835715130681608159733797059372592759859687111613910261033579129133352886172254150061538086857564749573509376264033734632757582832086035110763381015731740063074873853288964501433715591295125902191275836062358607749209573286402978588456515865857938941004418988290975919684430253667027815339722987646857759296162642971145001838754340636005209172361499200640262797084027818825039192369052009136834221619952485875216132699043697468902996950345447622509948730213458913179789663300394823257731652125367723352613773037199553979802157261579573652362785070787216790391917184828227655031046653838674003180268613705956582965801319110849733775072661433067615874373686052164182888394353456092619398738536149974840205068290488296639861061021284620946412584610163459811903294137119826802009594520414597816224230205198611169722482368051207978109427691718901803548718777502810801493687626291922900947190321438901474762609002385802871006595337344532039668740570799595570168677974006171150252539021412881977142927729773516470957071656258381869551681876752247427271192781191869652833960612142391408050311646581912953391482686151299239702294399293471241417782096777446860366068570462971247716913683140882856612485168616469216215964925263224963438648663784803547202650130364317394813167229525167442773161428995943400723419939622134108714074144965563189004763761297808769103859399237162604213344986774481692670933516348991861851431936747897746363312956846331766592814139351355068512003350515615911204616134955832626609496188355126580325524365294882926754639644361384901708089397051358082704369582477151977750400799551311708916359009116703025030763093101062748500728070823659078111284806576746110167518765453246767607565222648163531301465799386291080382113281805251558164359592451701360278200405197476846632499535868064054156994484604108109193741111784770134064082509568964883556987705250581926287954922353983019487882888597023254399292641423516431963265011353711883851749937531382422123939162184546474673068135700525271877617651995690461820791461095605238926033003147079772251242550772381345370983565686248472191230208988838174188839555725939106331943210713206913989857032004535462704658384679860592938874822164100822004505049523051900571630105353230745629342219412579328755911692652006129051585105213366227094429606082306391882976592266214832430054822889105691370681340164906269484399067168420542776224486389888450629341332474962147937240751904230782490933032175551181490966996143315938742876982078287421375927515706759135948638833771696075129073656104248300439791643949013478318019673167141105249735423714353421139189415196059793685033141605804268687172163306088945894982751558019720609414144405438430364281300219436470283089051685334151006661078985301338231877202144764806870798841361772157086168499549125525836583137547273529181609704189988195790841056307738325222666767485448837379780877810779846444509145801049535746772386244590219334656588973969995925239237431578681809911996076398023684081529070343271237689788101426578342951300091759850519977310261064481236193474586404480346315067391509657398898809526794776622322237499836509702574409486046310479405589972915543040964980657228807806868051477116375202206167871358710191472709057193670888395438079618500183399838194726972426814945445659284544606198449000514611834499354473092799949502005954465413619244670151074723110589379009128923555968063051794489658155495427686699545694104488750093938186419760259295466063056783323328297136140796223857026182882794419068091325452357971709166868319038576963496833714249907870858553057513065738301854891225897403660872472571196556256817509293223347929699824109663637844337576309710822378766024918741265183227858277373446153158037946965864556969736666711187108850810064840180828386312072663083939407535520194570207180501509785265737910787720348205871949259006897938043865907805179030588210515275994021998670413970937643729753201416842993146868319060925040951955826713072862335170541960516524368326075364195958442330869295463241772902109995091852086400409439770454473609312518831064922742148439206982909677050032664310839670036334050591505618160040805262533686771800585012217967946701055269843817760259403915990392350792085325917248313378551076141088657853551513024407818758475534033926139402659384803540565076365623174167769428012731533686519988496692224383257657778754414483174721446468007979153149223310939198411515828194217513291115677344086828151429658285973994995961496989197378971905369451655597160512816407436035915118576326019825737976362784927226678531201943000324557913411515953537671889822936582167966515875741764746647642174908527513629510640030269209539303407253027321682893765426200920600233144815806097743874997722514249328691713440490334934407870074753498090883970337690508722924128687605124190689574379316635959778164917848134601076466684778441956393262428841831942822023158125013717292515459533964926257522851855621139219964480962605788653286816008352377665206936094998131735553599564401754521012895378701709132152356793882512556540692079347672649170427774691320133724180203207511313489914829116585814544405347112615948276614284337815423070034443425755413645613902516950682762897239786049718657041883647526734109048322808303477929584878084729889241720337490558944085403392536476951379325396462907222302961909957478705667792696552922962143920050767093714882786310479275221446201890763025243719888632010744482680940597499265626475035109933722208591368028599458933107781884785088035999314685568352068084121241550891010138760456782815263529390482859400564063708665533024452027552397208155021234783420082319725035731960806497072319557030052109356446083123511248185476432875577632193365392723167965239379045625633742806155988201170125700999853169297261681645433792180140979194124610082803328363169166169982657848552207566191170661226597388552557852418028706196860615926416703072141697143941913608127248935381073599813450336559126913937486381925229051526945404901184628982640431699706100430257867002407128356853623643189331863411244388209629861137854988425751275463205199994904710122998085455886897606056568596534592300527182406916969804119692074154971722365509905126874670137021048690154530796036466084184373904648248922704720592052968698549461443005519472084608505576714342409952569724898379629188181855394573855749144478295412282014670376206548086157830845629982625563204004503045953217369007530844993635081713654186083252266576141748068569133537479939228031140588930813182755216791612647781495487240121153941668738402932419292797267714661653488944325811830458429475144414363459432863326239894735419515077237522593510005346174559569600347285617451374791845817096382530463128904045985541101957013405291425719217630602158244787551708353738768176412063227654581258795416394575478453220673717115284763332053222041441054594103946881467313235073750476963724084249948840071470190648123083899770503749771227625032209832328593880477367925714214665992465585528791718234738343064281263832665684675634857692796063451496793299381387944899276980386765240588618360066174021401417156958481537607771187871162819642995858075456736483205531086024414399255078702663222601171952790172740410554724626420979785962896476441168028354723823302228384040995098753667584418031737696740334759068823357778986664379739967714531465697590244288500152245357554369764724168128730438299156649084469137260321615538366294799257156230258772884451808209991342755993607510068816824884678193612144652563228673993242541355189826687078075534666203803004830684704513106349285018119586961591184955044086189241503737205042882296371816111410631166157572603455369387388385535527033903720545760474402057704452025478431354033502297187159210506212794581529560210193614800499763061984712142808069103172873979298841707432782550016818766464550128488446256301871655686332548117834259972767150850334829925002243373503637076953828409123041505604469928015261681874273082571741570561442581099373365274255129780743878912657719823856772306887857475890293781897272621667597835598411476639544200697663230435313094556576596117274374611971183525043827738805021660511133829266175497537358320506055928470434588065855268541410283618336964431069687407185381825810313754856658898309104151635602636581079988668218089298229301426953263871037534821460276741687850727729987759896440809548409609379251824180370404125300040485631212974037777704000473056334141332681662970682813479989228995490109869455401717044014500690966130180172986052809741843177651477157935693682143614455313286893851927695497519976244652046117484024219378267259032454371147818679502458337394112701918702364415836629012089448696906870151298780780199146938068325222828137399778595294176792974129038987457933771861643370495856791143899304955145325258228470290731155656694673847868918989351914777270368960955540171672035336488250373613435285670834492166612698360786386659473980685438057358105434652828768871388667417467076910929998678966621519303320394313911077902224664834262562518238710885658972505134063890981235474562588745432674121181462888690721885104972617500368627249802721298196599683202241051327397183976086289335891942778381382744494024479249354701847035365386201142634516457295503701970186545824232585504857016168389069108108592718283435487782947374155888056998894107529359449897313175015733562639071608151918216675418536163896631680546357631087429123020329670212083390078884438461991245136969935916434515984726078727295698629583296934591838945258439249326661518926756869269775533398908304115595548547289141086970332778810090839453276458798857970702341074858327890077188884055179789433727086256658010156933185719953225077583252377415210651088719004366809066103244963408710133640514140005011939237118710668051246447750830450224611707506446563244286303037284159949667421124975366477188829844057937439177532814663948646553037519798629085563716247015835180929556628288787378087893696799994591465293168584805646486779611967831053970723499965513562519591842323820115527160878193026120264281450698692148939862756009744534951388791614680963925654555839595759972070880190052787374529109977333730795922337840644668780008094598065049278724559216995341143107494389294792004847595777042998192091573792791789941759405635102300701843208089705265747271835550764958813819749690211848463583480860701962056641852470134147998015729305976421006126732505768090431977932613002106650796022320248230671583204866834243883798246417594058012767005393840877928236462965182120693591438168740733012235168913065709075978679792474123510465495080543154968501093113095773755453557290062414784280430526868468744131989117275959222687452738616904055263282318507179135960789226784413106665448910071490154151459921265190097205479533459133820861794295760343908577822930783437565435903165403767411586767590517909684996773632123347541117994632752814391686191776032523350596461749033082819737445436074829286482535373388238816840311084122360759756181437906701110110342894617271067738111127305428475732406980048117949252708424657803547284121501673152034544923348074395149734270611757761369155041535319943411926554265573491963605749313369075222111492314508619327848609053210208789379553163445988818312451579653395070092141697998791339700373893028587864200983543992228031753251064959642056379917980313837745851193021472951830631680975979776210992093220419205935614672173871039703006800433478760187939723414834375783998456110970999236506343264768316414620434637495796921678624556622802224759259843156842997158995036895858397795294418422971787319576883790359730857977462593743979322603186077389100605573661042805580548710373529672291452033460196410765667985908379905810172318529807592775029907699686838350094454449193126728135924612857701519412631540899201669651109635171224299746910737750416389312059033956283739584742397674791569933581947920068190101828943050926503879406652515896020547645121660297586667565729182293413079577453468623923958833414462852220513235202010547735528624203626014876964457583621247488086546573701484970889922199688827569766370074127692377325555222313385179151870504945429129077462508261149363647793199123478437319770123228118162992761873183662194820256447741769538546487173772102023212606635120262965748445769066000852068125116686767639444276811386561466379464409254683085438873336351206486743013576447656005809413682113226953483050444552011438355020234769035255222011423205424461619916377906231491124050175512837859795344237260870046211253865881266206244885667796984523865854488584977400861101959041456574628725171835152599476089406657393629259647310713668029759756034197222656908402857626297183704831731158631403118483825139535017960577926195631352969634938522642047628095744571466744286353264643448428567902402077071471305117010969875684201090922600049424259006673883176637634615217969050851702253658903265644684833351624815571665063393181194412005316936240034111552427332452685590065121050195942712256270810335110774933603820088368382957459313269641136454849516697596193801085048523256047028116174241305936876962074247105448927006756054270606151130667877800125351088808070079250280608427792457922513912209608582453479770438997571889077314577987615372655262696944066285941544592913451564313074295756930600835849908259281108337049554304742025162047247651926543446601276197632518161300982587034165374432764399332524166397039864204466564717106360746014576414420984059413575588681703885879358488758323168199038939762632082949089308272087510250395590972267257728290458202845281333595885870378735901906750006055719501081554770773931824929429288815424932482657109362486274214829211151295310503951523313980984685378097149880054960619262879268576255695294036814478174389648711033525413279036675756620482657060715590635089454177112542330043522402656432087721602624829705811014162665236337222875033903510669202941698340912669235296253498989443568141679069176618352783643651097896949552496211911418863236347166044143367117056469017616668519181054953524359617542067115692783213837840019316905152234418696388067059673782633934360257645623376019751134422160820894120665274372152721883371640004721990241525769552600074844700592792528597198546934453675903580549912891229946235540816456283068840080693264627222955642168323586103547173007811123413635918695236507500001574379803148810974891674020736991302913021195471245625728096099974981585188147118502476742002721901492390589048561823774267955401864754305143940262789929881869436219332036549335079039125397716041174751348489938177113638119398895249192280854963639109078987154236163781953296667429640246102139191234296947672305809787632049492637716175008236251649394292385537918014112788622593570224646074951237062178155481642081074222159674573749324715092927638393201207971056942638692169445768677989898011404313092908895701704399302081660444718222578503499715491342274353138644106134601576915708603205033734833493136382111873651957766356606946149887507326323782682101809805469238895671652251871578195458997024195992013362150871495072122577035363226287325425673596744119492403746080854298313768629584852846291140405811982196015586271227641623762148866783884103171689007507051258656459084988654624147760203188763544586837935682236517905410455712509000338082830033911858681372365826804891520689915514196837316101084248956497362447785407381212156088401673317063598233264963743162529321029375046957243318436574328549469446518864859104522730833040625522999921596055480392496451433277920792986026367003473042683257055313567628016722940109308965621363520343075865056214367315029398511847782595396684746174082773499149727447670001177272980415260581278359320448504898106162255780623729757063545086367453167667341657469130297937226749585736659823756572715439587645312396202615215933707441308465356130204535207459508366072010834351721720970891570504311918728397167196457219445670237509182959871715936280594061894175182793470211368712167909680367681342150619038860951844335363933559230691578040762880404490453613932178996405656512958739229842956661935556017316809640292019560450423437325072378098338643397491062396440979367049446116305943844930897835047724351500582933545924276981012655976854013889947542878992316620662339975705400945074688823393455005973024207861819833021889253457308270466276318513061483631680839700673487668549871844686350315014355619432374728834328167943494196357634934921740709894357393303383740249187785457311354624427445660243082179546516991029382557654078994197649242734344934102575580236358191857816154174975467719779505274418181202869337573731384832280574416074899446181509441549567255129719629448654129839601478342044810174358210477002566567229541936673606133418820594495728755234340876146453980402784132925677214027290605518312776085334335718102160188318558473710675486488367149853058013380120750226313273753419308713685395963836459710065636562003781978556218280545688951006247310653594565129622139055543426961987391006428523238664761142021061076346394592073265976729414898725999736913664341523058244536754458807333749160888346168994354347245479734784936595266972235060903721878782267594497798482816928184757483928455971292213941281995711079988193355340051795037854199577606375130637208477031229140985939560690739336550326358449688831014877078933163538130712690583217415102253316350805027356554109143531839855367012793892327882046619376112605406071268585512279968421546216124978728743993735268512569478406436273245861927504703471859239559411491782990147447615068394117270752738008651424700188670926471604807289549884648517355657124701753183651267188728950685101780779047587351117763639974061053909252646010290067703457908737015207195391335286425867017366062340289477794713780460582032222867078437912001048683696416738417131885350102195868746887011748619744221600454719944691810600018060765275679739047136640158004066314274165114285390472713086728535136869693982763087400050700081101657729816893067071766514719604483242156934216740219589877953039806675382464525102610995594248508141053167786530760062284714501611812020636382446299628024663267200869540270275600590292658779823008119556851670057092103742626672537135191987074150222072505220688766948344705687491229677829221456816507214189830328087758785530163145950334461212753115927102905836819379894895631550747226659011607701103862129992118238341242795723179391690015213857373931314972311989076958419746007166949028847520210033085007191154138826313895065825056904585342315816707543629367690301040069752987750003322089753032974699196499194807050589948058939434035859144691204504168790892167385091743788104600841690581370440639625627640011407889503499386175879684992698101654394419907077621246081440453026095603422259205626992056028912365064874308461226331614846537239221703072716132321560460165141367714803694341046231804007811070881171192690665920969816797020366358179278251336593190303987574734906301071010698691027657231494827384945749006615792122094259496469318045380520353373528767807084182787540213039463734505002984717846652214513835863772388151955349462752509458555307205718016378801443414548273325414865967331184621355647122580801485226899469111290278856177511312680769746473292683958895634350359824390824652991204378116518542829318679682983466754247286993719751079573882537614262256467655564594581053191357873054005575711828764068390284352356156349622520457837581787752876220937468646686414430062760168072120594819360773339144709821209368733724220644491469629774126514272564534582423156719835777635006411440799375551415220571091742672906316990823679934874676923277452798157512621611270407028199885768101800986006919959080245872221722352320665308082016854464641501520807974936568599259720279576876141136190241900659394624417724351386941952280153873152153250064791603033993925521815079470884102836074251962213109533794956122834125157828388009550546123301802997205119143811637206811597916471453085808189472881398988794920847943871718156263913286576228561144868690967401814608454607544776843147951648504591299379104274530087970848064311790144043801062391382268790450373466696025454979843650012503827690997108736495247224814767575438694701673202085353092704823160294825573246172434336488502743811057326697823651968828443060590665240309046781707275874745648923142309920968853562649183448281642261878189156161180512292760408675865029695800368001155357042192226187974611924592031731867213210341298187136634888783819695609920046340888805309141887408601935496360008272312891514559492661832496978037774929349599968015843195069369829605504884580476054846066865110580953301474722259502294878916189827670979251646142152394809785922695448757181993535773140915319574310929835905870731481633162738533431741142722504233449363950100333183172287367224225213550050081441851051262411211194504506309389051587253295698686013375495807616509110269364542699846828511325091292330124732335452749224152120641025859217540752668958417627780513498140096670160402324769577701539530159105147122368682240807838748535326325448410908100131226036220392897296910182836907219984549013660305105169439744541030982560844558011096393624333876332661813128098014529074037406605253528363108356511438177736041518239986476268832203488831536341460721679300750576897099115481026663198894038325459178489922304861282338316275838988600241965270072843884140611034590820207292230466587048438427009733488092955236236997447195191643083091411551384964325620016665957607396422539255074429631775363414832186427330873568584358139156367803617072680231814510471446531802605543325328877085363495194638046501233467661399455025564917788311081066042924835046021927245584622981156937845562863230112923082109994266362791177266624451358848040098633730701707772869823544044839012115947411729684401070026941738571858178871141503851813323646042753848989083576206550191235680394488170645446393620628146408701064827067212489153403152337883253246862063712226728482586069745883706182123573817306092010389829007884551093711489970366470817774770982420536932821643169873562953718043563029191183866536102550814501536052306893430153042587658581093834081371022290946998055359713784570949214269114613857605819656500456309126760429869101691471596980819180482216211059788966686284311368932333721917439762869802219469433362357498266239701289994233903624942666550075351386803643684245525482191060074466235933421983016176339224271981346494244245417769002619510135953838927160363355519626056747023955279450713160632178213017334671260938151576646711012059378044762009432952605548589313185567869773769435749657332462264916928067652991131802098031747539305864238119626732834463934689736476373850498957518881712415291160308261397988524679243594689686675343321826855495570455786007460689537153059584453559409632496640493912896436418856699116767795750719562196426719150203161782722289444406317513609513164816913528162852256243460881074247330369018779919450692304090057682583967168882226302940351992793669185646139766877580397732533127505286854010586833177787493324016033549055658379404282606545022996550456531774916192762718153390247998290892508455443831271041481424972083949879588959279665473683140430267350840027502547373380319333702912828944695745756559175623175520061075602940934219506279623862467755950196718413557103920419053647956124451314003125433501666457787440690740761011232325765161824439140074027782105673354412731581708150546887210615001071832855315092403765430401118897559974266121326433118658175830528067800721976311522366661449203072288456768115559005595086326213338941104382808354780607152214451129249053917788719904939014587966006045598191421133720659141716898367767738745058983481411975574282678075263674900897467178978373761497725858273183976019715440141067598224908285447680427905263533873848175029862966206811420267193567542320727962328800235394750959345007788589728398794576634622579359315302430211094745813621825548701213170680524840649275101935999494016184298765994508392391572607592795014892544091955751110855025843104530742188963168692985238243642225426031313685192238595641902947942560354160994917081409949975559874319370623017685474030050868679396286250019284966237280702756279441526878984951037905627949393674325074007902764026484031552623890887900900588945323813202978403883194580406751977297983970719092668830498162538565129327988877932613782104563106287768909331376254219278382097707984730927130735216852279920504271149780750677807246606197060785801754490253020203313242635716981279735068443547995863764311556866663812212623782596605307294361499864116965505792020395895655836997074307691625823807843241738708501222672814668878506056078405759963601479203752865279746823502726208118507247318731154619150057127681170665975009330152392605112261217728260545822872520398013443226766281914811103978281563023959803744392239055768441130949404956120005796458326423001255632105646406497167949790405420040655986963270850643982207712246162594932995848174227018095585025007577144080569455480489065775478620333971059173354937515983021386020315139819763981867751271490717228156750194449332389306304008113351605780830493858256094478839331574833312321369292258722628395419807841931114840467665104091681615783075934664314824167419973121575251608013211613065496670606393265732463072513547763227769697719383498756014037047137190640999393710965382536357237379092964745831619656614156783000874432732553259072523142722295362217213976258640109677863658333992659944151841926114001121483218280957851079514114736787161584948771303719303362077433392176395090514504950234339577088586320822036501029770956362632807760980789639148101809348669480303429937078368979102339506229769309446271670088540966611769717766252406564630071010611974784296392021828725252331435157811115000250390272182931073373932466624436128519477935877933119684386935691466100452026127685208275163335249984929982545976510183690667873537748021308071180531770779750644256437126882538470689198409828346707517901521721500108513077079229753482621105973423455476586248320175744500285479712512764042549888437763646001328768811603302052143922701463686914641585865723599304102547865145528439825909048403061630411499148255729022287661660816579941041146791296020519885821595170861447250842773547439030212922773206212051177958673774524302831064777990472540337416281329715840380408503155311670821449845775904290484154351794023524516423114123256491254057560758566514027516696358687881940929056931271851659919530039326249630128796079951417359514270349117225202738435152375319331084115350704245801894211299498438942908164059389990390599431428871070300007333830671515703532331898258548287224898176802260431119165087706829097409196276842793780425711832472167642946974330459228787731314402750170800344969378221734574692375792981382759290029671413160567807970314203176377939563426579090898257214237757860707521301867083064147438765476293981332232621310302275280265173406286488196707420758692673082743101737204015670461809495707236303415652381476261990561029383494322763769807335265366938552104436900820357831712413942454070108827792563613763222604526914721258622779599489133716703125069893618118368404955059959926809866600052475384485197346122733818867214472381022419764645580561773568576409643305619306816870314337835210131802481578603450149672254898699550914437659267940713450082120717362016887662920215494986261281887876820134356742797636802522133741482883008512910341755552198441348480971581868511398022175576782701992948137236952428972036048245057574723437998511448529957505091582791991162106696018919595220118304125401428918170866829193069900332004356207044420517332913306015173396214502224932127902464708904947421140209835433834504687404860376053484403065797864767945776280346892857314968822260591956853645108079099184927225251491984401246500577081924176199903585885293342468842101729506198716872657653960062887292295691425330556882674032136288590755937465924585493789685432299500444883813901662697614478359688000886495077990480287597674502681458603522035533398769797726087338351677447484325181143380335236596471031281238512216903205710335716217553308548846708884007930526621763981908276309345549902231174394831266206043475996178908494772998428371423772812894624398850344389793954802310049212480506435346954328331607505302545007732961319297823367957814814509467482969266914338348673155507279323015152611880516600303949852837602434844565812794028190316013512546277327271113234429222361071565324850667304168383940188793872120539007309171897743913969635052401858831970762245762169979809075947892611713367746853898955510499675725783311944385163456175683722510406917129935091325181233438184104654283021410246133640620751938426587954584741874650891786474747985561984724483711747204326806665288518536712673264474631779204827106331306228475903539807135000976797551856024982160896644413923806840460726520199115402460189773408956961956582474313232849066660018329788735395746192036804694045214570698380706709985030909904885404353666560941315338047420715635423572153685632515753219734554733400606951232353742485748783064763360615103752814327245865164692503965654058897039930346611734066532033523783283060356383145259685372775902955028827647363700472241655793064670521575678046270511380357856782290969033313388585316479783026575408218706950868633916102761308134614959704440566733612526571861391200422696284504542415459908861115246258040730645208107472939953568954506737249258812349187834276250585260841346784502362508714524076106032445413205666442071696791525118271090660281489117609502029479049962152135292401830076363062268655596090188062264825727985262800565679524428478280409054970468083668940972573394424909265715472771411538447502073591015272391159269434770139419765983758989660972822649899410604488537218514253680946694736917152229787727188376710393867851186067074145912623062731932032536730448112149226466234575986180906543192801937389629794104275251547945280783363015211359958601559889460255356446163279944255375084009946217407718104129432959235032094816917390464535433673221903291617883953553074904057485285163124572993742086798930282273454917650082028011359602423666964078525079190674068864344219653316316283370817376344921060097482518470686758853784463368759756275036242867058736595614295063057040999638017066735937377558147414722868121434226666770896795887795595303041634610156345323501323574210987005421427869113008080717060459411864288771511678973661669445318329510441397019357830646884725016284678770324398860701410589079071808266357614095163433071985798830983450942029910819741972313180508474092505924552010843966777156111633052282900402197925729348642943087218514532508384045381937690852824333822021669230932670299742747987842441340623512322421650798338902115741444488087389345639758526189535364264050142462033368472764655537490486193489263006491879758919626132732082502189474139551311262470199738852776098106753357808198990087721653361757009804983315542611112297165416514351437098495085057726375863401453156738030099017116767103399526226036743317753524845121932022915765276610178819114491306978828245273258882763894504388138087282312978966222841015725430556020840825458280792665467380656661087272389606385825491353873934560975979812792728836485594377661110775012614260033504943120388544474478932609639265046592518625415565368310075406162717093740259314169590101926399185176097511768200780897802935356535908961094157923599713408723199921472411277825796054015221844971002675760957501598227848276810288422634278215256927564019532280438436562359003614895730210862751881043941496721418646538436930633507954606744822531781361732252145854112240710289647995835783982736712933466529275091130782792144072569568916818525296325691064300665652296471898056295089845836475580289611719315022169496050392081184981639161183968977256347197466872757431171533397998182157776826824359027403716150634593608673043388557677423070740761200242093947064821105703420221051911389932971368230997694584970408530827725525572521012118742933515381497390770237849586526315451539505676128411282382173355062290717980255119880034199968450889663738524107402048649649780496673185695179927640493277909917778058020796982796254686218785468285470951867092242016420850076949057592373225625410797314356783579515936051796416313669148645286346684080028145119762294429727986655664196301498812617072364731480321136450016928820178007161568818535349328198945871533595800610944597812992097453929297116389520502093843626106576561019306000865678373496541135082406469662636762692961498902063023300949596668113208088900035781495519586926997813170791174538770153708621766097562428803837489352352635637734405471281350563795823445044799618789799223487462036173713219870412287352815079686612394261879071196427575319875365831212138248145836357555627047555630642726384731540833219599769327236039356585038772879340510280880508411645107135517389050465460653603000085647381821322604850907155548247103418341841605834232954709984380271598756278350110150595132810576126773949446781991681111430162214889431010722512572281906882084950648958258101611053601576305062244378698055723325397983537282321466746629500735330172706454967205412656324970832356427195280976190235267239248777038820405535260822991896192596388017923794335215877394807415849014271315893375827828256131641104390734574727139240257507406206377105805285561948823674723037845416590999211475827372627471846320560352489879638675223868424294629127303125610433599062818466134274609439146392551037770895996074270109466394695819671404255442798208835324013130239636156679348693456583219942251051974070677698298150731798680659073255396626602807253995583999496560651925527610683650360961254010501827390221886788417978803253685207844288107438050674670369531428491392784680204661432044433131024185716529048911473939133016878036851902104002492928939405402968780421755701185408634258079023042586477619109647470925479389105055283056805981061020119456716697236938710058099071921739882020216657354031198002225236072192912740122810529005563120694930979508643687404654163146527286208124768979365604959900646034421476904539552816038030142323202363232211574591637403151175638170106921886231879685773990014941447324105718333566267830389733401433784354434323729348408766056083034992853191256548196462484520284787747102192529101926263890414406699011098720369216175400606228667028576570890409035987117902036579177558102242436662813524673352564522779969408435501185542221026629916494661121377484985170611109608519467769955913055110342724358393267293895924379903424326492649669770418843482593129867587005539635338767283092073879389666750340731658521846200190172116843388469859968333971857510224452830178205600312472724748655129649726634502802433868692353473948126613665958405335815774034206089880161596681538939775338520422578219122958274500963582010865609392005906859187127785747651439296848504563449617346767242865353508166729323346818576638805837568051614967263485489074059020046413029026324563906572098219262131353633083301912520490015109832870048106016731016357091685461827393631939846870915581974632676279880747386908160127311384632836082868413525283377273684214418486246269794887192146513015523455640088786353783069378693078966274885517609675372222697660430793929813265335157353747860538371317374454037066840154042852423711951437408651735524722516285438585473848594218859437439786168049984370652327409788381971354581601826711012948454021885146533918854854141252621965464475541827503889945177033330392305390743454148972726440839039166048380685157373374006070972718274373279139933503593414302251018165012364002663424965316348057095141463450690840835912281501054380008185995177312722089210252122539019641272889024160144063339586553525001026601619460857208629022349010835165132306251808064965012589135617389239509063310211892338042274107377725444177166912316822813433193582944291759821053815078676494415958049812017037314595731169786378495849513257488169035260093317614299083961499022280697783209235025962397878580018509637616403679807937368952536053774319215544961652845772309108706731323933368806545372399109225543881740343580370984441417710214281797709740646940124393461548022581358359992189623623270892899665265076732279182012751333584038943959469822050760062995531179583743728236650874428240128403476052812644755868908639160123455325705827569316687472443817243877790886706679070648410559902397043039612544154751078727100077668865251962583951707463578636252241570409072768452574978287339477734022933818806711874161068552476389712652319117133825651738241879398219472150435251685815625539341711481991257413729794483106723038149554475747232857879997855432412984054706837369655462653734955364843820716820361798895983611761734752285582073444311486404353857877605158264003710913921185701566191109733029940543593771138032628729873927709970053837266045865890510870415207146093169511749841525525758333992458420293519518807596914799807242873969569541855078920846751637702009272332853444733557409004357047465452719248237229733963443542820363883363931916536768094278709263408735738149914084940127841820054395580129283123107044458916228626344369021598770086020226122614684784840541844103112467445796118480447410608257113850566392899357685545807785474086790388103661969092733033060697674271348816452965757093133897618754974489743513239992784095602569469254247695467863431292887234900494240435751132647824674633656178906652972842606330324348337796427629242443258637240022644114908266682565178723412297743040878355769911101425187962450077553888293544545045931685249769430442213763644104701731498132764184988991396847228209641691711853991065039073920914925196744658913180349484633312084041788342084260890249564878379238065197919495823556904795520239141997136860218138216590009985878619234396890682080043189766080372241221778992606791849268531867362085764083444928786896077781453656928187457789075791005715189636850790611434971750415841594913271343665779178497180261413051012387135814437245308748879601951096372610586398115889032936815666799479554497365259633861660368839475083784628888200130739404361775224359505736091698856595764791981856574453468936233955088799336940574821764082169025383151718490024740971605604852913134004000866331433840127037404530185799506181804685770661745583124890754720727312624583278828423228497880229549139197975213188677708191334271307940412640467716916258163203423329121664497618677033662228251037245224661210998262161098367808257354162814007340306961217518326382012529924697350490851753236554854611208167435513418561038035851289277250047665586197061627444109381880586473201300909198437152814343381690437216882779703856139283660309152144895712252494851065964154580411589592139967178199282750934369621654830938967469376400793922462353270354127155665113318493148415479280815742420256716397752965547303582287794081738100676255372618212519301544630084341664125978976076054059082601773621275027837858004385900900119697667359519702155157885262567562835419765907899779273512850476480852483934679456877933631010857208582159929302612684884028348318529976690307060775750633147467199297652118118936547098536458694603495740746996734747977874868725816113191604825958876648323315691322099123039787889532445247241949479514454975908787454977058522085032354735676572808319730876965647722817505831401294586462395945529262654409921380350414536854107057681367265127843999024458585358291885020005628425264383727109343827596302627201790607511626892611056193270314058269116046614301311362896682282135605590463743151471710877277750700733428629378501435636375658551432999339610318461294426210413319589653380026328354701776954920661703172039108444353208546242545540332412228401501576489696241712755164835450788959610733494679282189601286569907413128126354715909355254450037723357300636381273180869513583522840784429954943796237476811196187703670441798100056274829446464028574214692275146520265482096709966627579271968885518942162238040556155178330790226523547624651678865562734929857223205418551157738024976802928470876165522180658828276347637640884628698110759107364176564720134530726939591604624328566422711332619745041840378891815797636341626060993427517610946495949731135901017952492725581346635961381822894578353287075236819184504888046323967380481612593884658670556010729812369755441628340600004744947933773732124088385966692419138894943170034544997235036124589791909364314708138233435967305253047781927902309318627143588402376834991535639058823907558872026346783522872697327018085013915608110676798708342868973096568128385840081499275668114241869483467564862885512912097028973024387888564077583402969693309512618804691518364419778301153666433104284662500712078950864643127012534929247564337312267405602497780788079658640090177021118371977602701788409998881595278061690625313120502510316510723010956290326467620807736328854703426394991872557187832328638058512628384275137537622805322678233908520477790604425139403498555754588715033002788958522599017647825514499732787304508058816816395321767616403464122689527178511701642845965812082197151608003924066915556405524111823864606692588368982380866897861180349546179216338446795766767495273655209734529879244370317381822659445927652493540336078485744895400607067486772138386573139425832991661794953012607575781969593957441176926216233951698131966665824029021986979988542346575778163213855416157626569231637701987429269336727011268949238299578318861558866977774742932624314241066554145545037374681974745217460379693645401275984284725061448129378569921127234108069689514719453135079711368232498938665052628091239988186834191849851743724603670752500872817123294328665595267933259603532117132988536925122318962232760252581814730579828181352650955994345716858062673589603425280667797362999905802405602136863613559297604421718503707569887584706995145904034218284531118366467976770191141619389725015925853914918953873908562483394686896652807945878960605733148698729833252605954919119804207447436799025892262032321535446325484430799837343944495664933099649182052961578777902849459915587508056921525161446912899943233862123167900214979478989369573582236335781523432875296587877223148013253833455460689095792136284746393190195437893282831198143920278893257730523508378483418239800431427559709997348835144411879022755852195865122556222480219468909156604520013712252116423757002238051363293465739404360605460895473550613084342181675650391157250778022347319275841760452590363517738092590926949073021063379602444788432313003927436117467414320672627445488396096985274516610645483282185564488247934263802871025992632401991343629267907974204925275953195826000664407020731710720515555632462138037974344858167761296247460920479853714555334863238902191939017572072147327022926806870049415486951683419292056445898268894882839406521372125540371174172300351273132602091125149652522653877303550909939305844127844036089376517648578102343380584297096003083008538299109022904531751366201520629957406486168967698452753293597901297576218705757378690548238308378738927265265809078711244759670457352051747194887108268973946115046970823978104409129262925741573285256916563223507678408081248033729111222497525225923969182891300553469785188165720856874560335803270931390076238686895959322174675036475661171506197991659431052355586953952093254657429956686195264701762306963843116415992295901085383483449514593322815711458687762574177197451218891253808206036050932481424644257634754614037789586114754538223887033265576102615804379227651789302624692977286119577142918364222357064512148453146031053713285818327429744522358570899135918307245850771295473125714407532558105526656799457083333441746570569854255244628737749699885646618256820352538615746523355078479348280117389298888077603610853138756921905057879180382851785914491493443916460781344629702992252419395393578569881503762056499980080656672631531374412307701928260223991007810527624764053832029729069911164045435994182368071274077415231010216557971397672780549830739972284763841775838288645468564293044537247628204218465155490087120701690287899730063495948596271873027313584741246418449555547962377863599046974186288773650448126833024219784156248013535746566897424779965888424265788325939189534611451332048679498231789044487381193799624718308908308764552170030430961470048400090522053937022579825600860939986834375702404564882827695129403336762228539597869152409813626020923642861284853828961960788261151001972798640725308562050098611627895757882512331082622426474898911243146307739167990875247152571809489161845603824378766717178885309137080778128957296415318470517026340561708407398322065071392978931877673148520067031160784644639817271708103397356643177018483437138169677827104951629270863805849833025043283933673373332575341840925180904708928012219428202657649420068966019671635074715388565005789953519014446969705824958215617690755395624326899527838444404800398350946400094432819828050334261411952633752012141722055717451466355039443253044798486697930033390266060420882520571795595469700034651565307824303201991436156252595280504691144167137613841326199762234984708860220499021387958817115330503875050498931142279393126660573562914008899268518972335597263298170228084544994369506202777792028098966811728123179656217441201876554552967125871659948200247383150643076620848668079685736555523260674261847688728898934189087984291696654154963345826746249036525350805725573319994753722199420529187214435754568993472932260078334473488044942513536435340138449821021303769673558102860884062547567544788149807688716228581424652118204061623828418369476093189717875954859098051653980531356681746917989394943466660427293632821476106922905690715420902689559765045640844417535527761071054270739189421412064710486282987062936648607587101032204672538103554212137674909521727250976530853752677002315860838629861180877208397011183852498639318877299991685552301866663787200548090601144961253469571317660417254038939109540702724838627803674331579990996577758775448404835833437344200621265211168006866276615581326952746191402609697224494414577210526752382178774231668962101934646792810264471016588298162062375202912485653207740508467806238340930308987051362147333766779973606074654640704264693276197606156915122975059945262898558538561911459780351385463463997718338670270188114240644607887683841867454366695877186148395891557062246660911747021002646626256411180535164631779322833866235960983948702912460276890957010531206448117402171097945452356642006292643748883221847598299013060904246449130217109252299274041892819737081312120233560051366078561587263720675577242313565768224301003997229016846737342955918954511850932640797244124054848315665551832585301328509835556028494260515922120981108767144676384134187261243714048913650607944410170316658352012851411340223887894208139883580452407141146342524678675973738198337297084769269313890995829054501023946860915165642123373974808336661062158641749007053297055970507876346782889284521776725881872752627925233590587319346216673430002165594284399053134822085050879266822657499588847811620283667082002625661763692111312571647451615747671770548813239464090245666762264755469096971009603807002554874406357805948060375539196028026583694726252132022083797864021528788817727312051763505773683999574684697720956495981938514866842653845244386869162273073964582653654655934637389807043705116493489634711913201122991571304405241190877233991267093203607377772141657006835971476628521866869828238492560785454058379600431180453866150117760869309555531683545243815765319539335759676625660067309104085025812142703781965233788180642272914840632096917477685504917286700562529476176452890820923006058179657692035885784390757116720877121996750762879937025864431010944911717493734069812746795928460428681722503848592412407286698165622787579254370129145756706592045338634514891536970692424444539286354780392107705574144026878842895426337537935472621917889092102088146235204989145291184367811543181885170847262971713980018211140937546317124019721523237286432466642823610024317677225717646414639516145854177398541755070282734061293518575384989078443273008392638044661851049846278359606841979967216316517791828424357788933716779389467952096342468707065091769577174624032860170726388798984263251685852728872674689694304759613913190338658278447398972682338172668707560714584417687079346063753582005107237524622319303547840753831786389540617896477237008932656731060301780092918340542218743931922385089083097811417785240801649429914793475604351708422442489218060333428104452241282603087088097002686302438517493097471171673981307540403577341210787637211936123875793612152102031538567868195638835669798676140054990485073309689060840083074328779770446060831720304500548830691009206657816442966033637558546072183817026179526164817156549999909515139646374953292680529108327290881572770927001805208692297195756238727468223218278534084171917537385939023705827004194725179799725766714461727615550667186849525599862072453315111005945701702345567776228016149062672715236193552655817701475964299044204650482976795672100450046586315168948075295510117933776716876461224942445546040140870167940452087851747139359496388585235258798447498696063280415535969982651359942592525505538032653697853633284524215793434428258663019982814383314022272097061099478870477689159116030526228512440737842533639810530694963232443927581612726910227242017277818398115117967660896445233376151914687108008473824161383705372949345964406366743283898705280394612321465032372888148361971554093374853610114693002538594102706095968155422345028470452191384451480122770139713653001491821273003411965030928490151390640252059332424262895532330120288132831357314604153825261123697210355219238499595321317638921501685519653897251278776718000075502357024459937605202579282531136174877663704288487671784919154972000093510831231576528786696215471344726503895639121393672572638624329889630898059895106428053282562331891190588107963862850999897925621142013085461405968498627448321325872857881025421769634666911337118553281602849730124882694787983724323787477800215769145983079401495071437521047101675861272156305731581900236383068468901733922990512066149271848334388082471336555833612052982161765188927747448500609952866762666159474498059388843275206754622818748138807823071631293393897520709729213420759806117578273286766157494365703357614162902714229628020764962922245052344332246921568671928037771139970844525718619691644455110811995489180379804475899525023037991403380420680970841547564726221791723615449690922374205572972622681852016370950827843341406008041145972486039929185672475214859808833980798389705293728429277577199221495841980613327202061930139964125911385150286341862241265147012267693279622994277417729332548147467426394938143305961467635855756633863081149114836018798552721268329478900091718719169285607191116746862182126839348186582775559143865371182449098989299951718996111973274579201938645467674636566109963399715117303583245999172328915156712585616993066648888347211904667153676698023215011097559510287939963106543619680244079576949734277857137873021951829436523220741296789185522831542106545992444165592412640277901247108933775013962420367683249279313613679633196117809948768767466201254497047395966928512197696955239120365159108512309216586760569778478558497795020366290234356283277096880762269090158784377420055302748471769903915582867915951149202798746290405061031601063313628626877833467511042281972634467255363835231342550906073109154202501616234835433158667089424682701297977751328949591894681356021848298245744986105238092985461319111243190628162771208177712021460721970010398843933051153575222468857955759267507471637724433314799850434605764036912704195965693017220052700117727286790258204509983251763178606329752643827513269757520479855734605432419960372320687953804073227857954629016021604812498067387345026887933426482685461995882219483684058567579637320400402177183181863925296867772835006252623579309798419667405978752405293107178624365896917026498358259536239244654650766774625357921758034288474263696864123749886694343911690621607719828035599416501209753264663985784056384263457380852972364350518939184955244738129999395262841823388026236901559516207573783066737869085205091575466448519836074729461984107064758769885503501951132606778654531530389303310215024252030385688024057143207584898737574135948851960687827082876636365509652551370475793030699710028850351582786738222833761065183386264204343852901249914081884607550272019798412048773787255699655510965758767598364041745093228265746020044872095846386282063294791822999925646315282773869351693379315051706842152592469473354026703157940195201800049984411096793449054909991132881687744467511062473079542931215553602159266143774287524099654485387042756458093721801989261662259467049815372831456581807755741220821756771853470706104214816366009965086967613661907564721302627727151689574871695820912676920932038379108169998384757003509045812061770559393387349070531169659165711401103393436179956269846762575729948465986820851584736397726929353418682589360862288778345227608332259839941934267994205002642066104823758655566825939314277207589812131297589367163732578231490058594696367737838567622670772401681656586866185933494851699212064782323708352890619428131255675127192603219911274753485612203921050694369999173590798281631430813940992104856354932452408424990281601551683074166716658146131691019244014159296743010596541126382408312418654107450333947483965655492938459721456699418318511153995153020599450554402010402455779607361549816820083053860758104449694016129436492063703894908786953208406345960526131688981186395877964859099993188801007495327799357302519388442501410473060153788574122694559371940532633308086184371073215735124234105327250149661404785460630219099252675169665486825145873094000200895518053623346043116988348253107536954623075914053873690407697127908273490880191687559143679494024055798120966080953633554597066842240500435616640712181271080920405815668832274689421536021418791454170125702351557569631667646396501105260974153405725363628417302395424531021242214931834237269498656408468224967394597174521035768688121571114982904484300837836631031583343646135267240827569308482244655875706599652862838090266213405066811834627631716992852944669308819383007839243159335764911779645072741295281327353522994221275030143790531851465688795202074606469229688509447337536157382480640874236995509393639369016067087606463801463727572543694990836904194556462122540015687065610973040625184808308251374498670593307235270170768456481705507674663322266440119336265586088301497332600162599896057615229325403236270562884056803831741321466986398067149924862179838989505829886960199255795684240240758940311707103020573392359843064026247478318593754113120394909783771271173837741591141464522314914402424589184725465923325802804751195712443223028909423756898651361053502191723088474621523188203237698509003984526122752412974635339208888569787363662316114082428861886406841637915278888876723834540199708588921584945157680611805211932203956344723657087512927078832654325980905656908926291488454026508567550551920040723062914777634118217747000407826389910913292422115405795460343813341254231474472608192694614334175201423463122728248894250527360559483850339873062292220282014546299210204716805197665227439268260756882406782077246798231738639656678564078923801563352242443183314853858673669043693225492009075816886479571667077270368481356550899918646453117821781112458580182259821762625734481576759353439795531352067258983682147826365295731357534066461921030459123515157680771219435420109391828284944638776298529142626974582198193129014678577660490659698138016344446052493865970606311758811129765403291367327430089976816337562670005717598065039656391271649730785891714561284618549857146258802686933662361130614154724583649864853297484965436336472332924313762009636609712916872861884954147509837961075145661033772475032402495851660060452867240633129532115584889328227015020753199351891057394227428826119093472035148642750031137975289448377352528143356657733559160194851513241099350027285013128352069983176445904309827928195906591216038593048413671541511076001006291633739534572786254338418289991455282233778653604081834756367402549869025360719515639835813588079825193953447267215990219253475372559141924456303520074139830209635861117312589627591189746170729343082372577539097577814848961494160627841256215207771452143947201983930003623494512355024137496137504101965335352811272722476500838597964163821265788116513912399224684598966114732207116429140499609841771132898633534636424896856280117567847360979662481148519623380299230860523596684118463784412789727068458522646877430764895987903240387664130643517785667586157289682188340885282380304107755481578267467073469911845849405886692160639215531307254433426472811438153220955366117327584475592489935375848200186496379946816967894340553145420882337806645082436558306378299566991624424254936171523618269581910377897911075023801789126867723948657183738274818820913757719697462791598741826970132357806117306025727630220014837796991763436668756173265665886686450701496637647475253575501524108124311433149078256067472063317955653267135179583433844524223536861673439171660234052234322226896402441739215786129036760800747510455821121389309782587200516955448514186970445189287596008786530611754835754734124188144466619398990402366297604669240577856388970767388106453929918221659284075301812180876538310509716000346208410961040487294822702969292827464068318105674555090200167844830695413827615727007523437069378539883513170940935040886361791896534793636929720583176683906229223656586757157991709738951398067189625572005688834009687029608066881679723304160658454442391002881052266669234741889417558988232816864390112161281743324999569234001471533400713843437031860875280276744102624608201782308731763179958823122510869659548514597000825875092375477231366534697143462456235670935035187642165293375093096274150427039699490712900200866977584685723591959363505878858642914123689516102822525073708985031557547111960856964307752718860396183345478029382771654129834728400971742529965732473255465949578653521544986107446961644047586870712166724386162159148538461648028833201554905363506747827898201619848017186582859958203356118248090511982614688881668371174542787980805689287793024846000525190058042841954379275993110718839000853798144513685461831853060958087622037945518957996207000780887531552599262411688207045145242579026422537466002407863830547940513051894164441039642068407176812208681085776758816036040396026437406358648700113587765863603766769893076312364694716331976685443524951715634165222614519724312540867654929563530990555068482359733105940414732423231956897730516759922049489915192166923764859586959945972986907516764140139357989563324189629885847377459869661770181817301978503580292685817920956113709484992711247517614187679092256854186136070749800682392611757756535224217225763901103995256943810885959955715228843031976648909021732881474419917387793699590484423454138304771935243563898003966052720249190451276490861767199566179844456025029467002830941995365537547695133311285235316147571700316239449829880405877690690327535165980265942865249381002437179237245352512712388770340331255453518126356501220654125685595003588969267042985169224807697970128806788266046950816211860342690408481699390102787098057111961865259294702955234893529507450483510018212407006846287610112358481779890452280856456768535382269592476393563349966243545222689807048020689467150390164351112686218277852189665755586801604582238897860386967303563635559076115286350249471851105320185377880314637163899170544534314697251040698175076282782378231343127078929075023522966391336079715052435369565534633398323025776872754277688241574251915958865500208143062318886808615371894573893705379329065878805749274967546847515502929820917079864813335451518583587716299462235070877180926467942796461211611253195183621620637307115235766890097618045485185841419411014591714377922235129548385193735524589140622570848806814581270107214072687006560801611576355008971720097941795948698775343577808922212454780833012258511134067274863905740872317220383396987617606946200837738396931442954032768681568403560240207039100926466221879143687693285116924348891000338439390766250899350948793695070345703831758435678642148962618123356437130021971655233782461110370287260639375824108435319471811468319911602675884188236179036538494451144995000376735739507825536964444013900140169722333829329350569328976143507123929162216474760441012052362866015552424921475485554695007780230237377065130846311950576732151169352629939141888669920271718426778145685016583376481474799582617026995444182252903690415086784855064222845454517828241258330340787857173749563618762035785383815570320439916623283214492748381729199851169739164813889843631450493571501588553938160786010772375690744685363944701462496330365773637355311939436164965547449598153740115608443386453640271360900477150033314586143687679057004039443864568579221106414676624800108064879667364085017545826586828045436566385819038495422272952848797120188554984198777076518125954284284592127670029488722371982711568142689708013953086936634866162390669192541762047165524532817851056514603226937920572973454718272729264543549037112115461610333882386800718611707963588267261839069663227864373812044972333753506283857997401703558721548735860368851464685571130034909712911666561165944195985220067163781546740462370568114075813279551214721342029345738446735471852885166947159810618214646553103417828847412938091210741417746217352964675463674247579231454054644350505144306398177099268932135373151069499325895815595555516361703912457161600661400941036183113925704539130438266369742370818108096819673952368290632893962005947662309580532259020312806182184399227496091179544184863651597337058301173828862104059705760866782649663690779357573768298634695070883254844888158407400082862491339903628786928404434057940464226083922040503778172292348235798152334685024252018276958267229777097992913591825664404656396353785725986886086626192724002567940890099509663142022857574262527531687698337119348028346632191640715906501422557322466007588142006135213970555713235540738148121452508814741885148111583211874221260850445362325052625716248376896999259841772483342629259607540540376799359572054850484904628240972682977026042271162222048863746580819902019078087887324975469199958202076470310672656670919053936981197563938850997002328222114965917160543728450705914731772628868507755577739701410335440144012281066041544821894616318084407399845513348320656504595438269967163175313988150144480320470066857922294648086433496744809976195197482512513044691983667577787689752352416096145830422982862686426920387111434324022349922663255181242561145343898059494470883929255216918887572305783620537451765456775726583708173622714997909336210231789698319113516458380671909963762231954386802703385548003413728965413318581058099318249881265657463136741075707639999052249320098749609604842439896571457053378471725708697346062776134884666897320787518693235862928679486980650873556823635803256041787388733471157600874134271047717114219631120333283452247443242893497521836143982630990162220258650833569933833915127727554031380158519391088948367886821120164795294040488672164904959854293716147506126716905151274839801888088926080366718045258763005356501426571779656129149099723164888117045799509017310003424893597785566643323348944624117761345380832369169037582475474922035016645621030281873522898671120746654896476481421709392319782335659204003222108191643013664055733926733742160237973560238673847521861392690652023609190443064682044667489923193887756867233011277610490891922970838348389975690255407450319834852328554340519141799002256587409279841622713335992494053753499133009915101401269772963998919619663387896524750934567773653390608391450532191085840494078082257019639591305988978641080127306454559322838884711084533086222305659579671359655448360870562289748472741559157490384517851937100699695378406177797009417296456340368425098503818816968545809758068669208365702068263271854973581238643846312539227918224275583914400689591121585008895884887710619207989619219848243546021825577416174562821804578697580593740605220846637156343784374937099321706668578744538704517930991207605626245468899719967694575055687941650437378358637482694282526745431635046588479411636395808319745099644604243681244843479510091485112268354178985333195409531626486246333667671081228671432208334617783454355424368586843609781929374400533117263209574655397781909208220595953232518120886699886753407498321862426555922812075058972278993202625364980135140826945945612564657268038536089720772166439242120533444764684655108912535448844007014163936274186419555671077629590803176304317956573657216263952853993254732747160170223427937257323684252633954411821695491291817199287841982272399015700596953426311962935257277621463543656191074696817312219567169596044904372533146948134241054216285626844585499430969596286296911279566922586814716416867465216553096286447438984363740573014236741040191336819684093534078639721260668187086898393686278750427577886598646429979082426208188007707934530812705295061109124456021998100553981133231055542458656620166573285998237663553620374833970457903861971856919565365156365030358838798607620075907407143080475334879938088079824092696318261939550438446249305087578750169032761710280460254686373462011253235731088665463700736813206342764924966365680358814005638674602777459000263226945001404227189768878355985354954055182173247589004471923106216020587493449760735979413460740604892588949381143971611659106865697665214977668253908421938238496026581892370313735416489797627775224149219866426359782792812034990645860173671570496528860588683971753546862101687971267985191656463892943959080631736753421296144602634600446131038062050127113971870412571602651857016234650990596876929299724380586370694642655973360781388158639551402210154313667770162391138488787528534282578317198838563001681121217469466544616684362847605950995549395496185157084030904043715127082538384754856942614583850418885792097306481176470431412063564382781858162074046365995974328865348132670049836199522496514014291466491405412667686949004962592897052104526503588300044007951554141240289780269687865572132247080252214164910944340196462564349010121224286342409939179376186756212053274724349600883194922089211130208661668345161894891203897680948817799898713497911070558448865829301652775600810275270544107323610349498997278361669518350181372676821740179290267967307174924528975437715638766724205482082197702122170453146816591485270350137000510586661816371295396531135847169930984759077962174420023433728812016733264956524045078559359567323085575486684142360958232107801187215161562263749977256782912281729002785887413757715968370651885297318189749055017602247088501574713306046048505407207576294957076935511037442893965071725591483155107616028350594996338562529320431917675785955576970564742874294433493468133825292849363487843078680282664094371151550810398761473320046452882068195511337568335492951941036210970149685648669089941311001627583871651298295879822393809486424427590884503988501113134685937887264856099639783808247833929263177993293668056998073068291895146489367644031172655439777876340066929520769694029640412518772117560157168981275630531603750983972184824583617336570985643713682282842213195865090640912776663556289193813264232724681530762338145432112857248621084392201346046491505585138222061093371850218110986895545188426654126247522227457856302252017023018052792108772179313830483719319899925296707562775140169680971443030490183254757859823463879007644108547171509248759127571255973304168379322508829280648671665715440352147711233060555026660238077171241828573456749866666726732452934744002510619807441374473318413204895128471344902335521549966450855671504988291643007843626070499918326277477037842121645961016239977508608948918339870176397364222266983039549934442059408353081474853804842063733112612306899077189024141304196429112571570369453232087261629477389036581447644600155357948969989277750664912593450450227710079271394835142793103014562992116345008343928789082111445446394608593651405052179550073164540392494167748590179663172365181768011464853374310644146193308867100840946534894130921670344747845752939920689271230993203134886759103590448095020350573350728450033434374777747945339703163899538512186871918557617974772696974253540393434696547191920098261454931801490345189984665746107869648638607386341839351888448810475143322728053848796859067728655495548484660314600207500296256621836071324581124501055460883848809328370041357690090913413118535556355128971670766799229105062225609193109118637959803521120473888018418958450999925894560985283217642481409693561971386714149417588729851259367915881994224322959868421836139785407818202455117785237941403406141908838290309199138048650386024438849340533297479415560517623070428841734191700072879631870337924617937488760176989038830921531553312658551877648251113404858667395525033216796322960334966300692335200416269780732221747659834087432288618598865678460948112899785196504346069095554249873675422333508258877524712794168328198676317396676480102900129425152985190722627969433281252120824280651518768888739002526293720429188113883396565297276840696049540141644880080070409310800670400088651346182431132072996300285884909409182888268592711786010070498167707056207081037009299126072265343894011412837734818388106940418816219088897258353038746212001800579644701483287416452772603616309092457794276389980035928743361683550537563802578070550732532674971379949431789891010426707997177097965351543664786446488299039871423475029995993999732094410657254334928638043903686216877067318071856220351605790967614587850047125734526498754383991759064391477755673074990910209771571989348369565544993062863196658536441514809135512745285415202227570008788372154608047993828711703070298382347652729190719159780768838443754462045952130650608617498234960348493372118078810284631786557903900255765615768552407259843540534137427512474977041876746775099918981012551841290055085067298565163506897217855714902648384454067389723810441443050861531894124862348543360352165367042273984016824034270122929285907945717310547806017191260640793191659196202001527966290835439218635499780994966719177413396593305618538148112595298025451038759168741179673916251820955329644431379687721957218985581025622322822946686438279351574761725479046428761819827244645440412418014583691301884175142062442090787919613979451424165367397500205862508222359912856517335005834600801038401404414093666213501071467289780314271539600151104174562096648296549285446036322304370590254247282625359514820767593936727227575424169222708380409650294048600302846232334540059484978302748400367961812566603285754304106439055650558624097752480382223099065577843311126314529307882996852605862483815944807980870502746487416951257758905250202076852116237989828099923961716295230644032445844410085665765085039375897607411289101190921399557688958236981784235846288009830858308846881304510218822298445291910931915404762705012325322077001964765774214784724021725424012525302450952391819603741246981287154640518994018906602743522041608747593079316610570239146817373136015352882835269389187170917948419320674514113679268036684374483216557912126797066385269925514586591698540561523662856262944705584354071667341215966944422367430177633587077785691037036746795696979016506345638760895575768665176041206509214406201795635114884591433292855475439488305492510454914254080883833829541977922843467600247479412086653864401396267474212410041939965241802581904343756038591489498041323005152185232747069477131195813999686757195367356288648957153163141081099291223396312335729180530575026528534896442404026974676711316173697384040629648213278281250039605151055865984321370391342518012083255627729025910753850323385584163678794442820450885531824606171059548627188307230366227056834635270858942671818068289141945865807750434313547897157890771568735868613608249608759265838264093981471425392826425717043282112692192191028721715527699978061483833428060934705945127122915121654047324788368322767192197166352789625354891767958991563749158209884374811579046872155948098550847549262767681737483428371543400498572424196906025293389073784695410014840354919146489235818699985330497536782851641553865667862321076647631105178648832898339465285113088387509275525184446376608093716803655723379379911532573443413548866283028438163675607304508911049215950645726200308653325771278263465931538538779938230817256328356478104505479971646886338885715901484905182142084917777495064042386103866815706647814161583184225331288073750867972505591306050600478207572199745661773066752774201131235189001186647571255885267240518006826983382754851641637417844663130355564755555343037567179112051502347593205005408297203387548262029759432054512437370450944802515293473984808154012942840715721882854777422315081704393884167084798927992004578472915196652948151402289205304896568781032327262324793578372043303965626389197865236695290005880211026228937696715985444979166123707274056536178540053071504715576570393478199125813754044127685133885432644262374846004607411870608458466973130037436073828918328298068559460497204975293651198461911467143567453680081750088321037487817547230784846234089815969672438284718049104127561516782626744879379126219556843401890070901786064413217961664921610363859211952919440605049343981075270437174715882395022201723661008300238797319378230451161125200392564814187843473997456313857496929522115467175856700525792145275115444636258053677952703618791686828065552541377641875941791364389034748686975270662094517145295184305426479355963557652372229850905888102943444988906155555523584835446774194808539715792340685770066358020933305286743872529116581685893133718880080482008197073363742775008036629961626081676617930623804721780695456886664283487170309555744780581044602750280063580269530599154501029135719848999445913329869815443538222022736466905678788548671780306396617595904303774739932645213850261299632699544653858238905445592710754038558502235641421067560582548195530145600041854840127785317941095455089674584226211526415968096009830284456910405967061578142704212421241815166355352444279294577705867230499243030244636636971658214850394922178187375667900943167799560632574707820929676890220169034440424874172351081265392764727453426793166639266291326129579746473498592585166932172626836759086946341230379114209799849532923993970608051791379526274642954434929152236513821219337124139857323021147238139171486293596539667358612404044259008183269572772128131381210474397114782143980744788460492396167645027891265310102169731457285948655710548958636938314067401951338824955818273793233693806551200452788987352405795375730194004092302479167435048909918254795472584514776280054094500447450747994660152045820467641402477699633531301146468987934620886409668580041713397948262494253432662944440178334506009422459352134850248206672896877845888992207660419210403750304254495955790640723988781422474689141404118463942942493046472569790767734366518391007232084385124666233051452796354225641685094262043162248530276081497682335221641914440380979124354650464567950524580343692230457807677604747537286423780741106872675711127998826423721242370361361392102583950633893369850727298556556144758019855773845771929698208335424802054764421554610668930025010087712192091631051850587282830422509196487639899506811390006061948994490728307540696320864228197534494784402563384319342193601407053038041524026401172440735070877697769995094402596384561892763397944789263166180744775742392064194808672691377059779593579246528353872502826454732161013749426735957219826827836740074456188911641516276956618988179723472342302750639695694662759007138339500678728156186577925734929613445967929519748722686835227838966831443763807665147685474635590216604568473559544261400678155625991470374775473924789122887771837127527521208017530789956463809030504502626525924530346452878370166995179468483574666804251292475385212336970829248311506328041373352177877759887758415609140643819964211907427085485396924090557846344439952246349208877734267889617204701426999609610524532472985670296949813647914367013785828798029709814311881795927351409204606329022010458233046365777655985202021442849999087681210156663194195023502099328064650486311153297069928441893635880015137429603796462115564328955485847684505860258536129044344283181461953118141079073817278544397762920389722184340025678246575325984803281918308328371546254432518782557763440835058992353689943684609476448865386902562948601877484883449179887204111006129653201267073404320653712232195612701754785724397819161716920832392680447880396022076360443569236110864424577986159369798238932975536862826377835231352027727734255131182586478027705514147797361996554709600403356127473243891223300148008320868244268836419452544012364184432226060043802854526954079169729226202038597277785445690009934551747843607909169227052749681504109703636543895683909779253905098255007572787276984798531788096501285899885278136440410157683977941870070335118119331878897236057375234601014116178666525964662823264407356827246397858790942794755510216978926373883875058040970512249046799856289918935897721292175559722927584218507193047496764247003381409962911288291315063989653531946562746691293005371809539120929867021780459153477406888897634291797390729196108313691363837263494042132013395356462540749610374931695243075687415413527531936587463900095679241320033300797812600322197980075680639381250539117764897597325909242211404470221144222963467087022609926719292721711476254219397621817916913939698996090294305720008775773501668169255579528855106628655265390069787524551316707990246772649348895294013678499192488905010221061931385028320575938987775196800794432102560656455158313686009140666431153166314442107059132543666136540727688529163349362630833504484323611337695163567344329221418469831699611982845904710619436083903000847236915065219097971100515371295065684856918751107083594613069907979990691784978748738729672863617980378422892718337385156802120133541343176275144526954100420756425034773622525964929597837522444734899959742362656344653147786759683779686111108923072795794751113740286196550052500419564001311129687480979571025136597188247221255621673252864952199299268047965117559400135683228217368194336400574601445441848298684396098954114529272347895606120716831019063180387182674317634127552992524970372575293157127424878516530318597907763023086860761000268978441758279762291546332434323969197295189818226923861513787726620559312614037888421158778163081802842947742922268833393552977437897935083312218886339353560418286910802665868642715732472593671862014819045087571005715366783717878569931627086229476844280547296689070572243307635864808366225687984339698024958685541035021226872438868442898589444670790230674911787785975539333479738208912547397072496198718941175163346847561078394063235192878085032237961053081253682189874422997446591752381211621108297617784916147339504379253796534636817547221213865907704171850399414162018447999412330348636316053159982740121162822647326665355089282746404753788539730163143398687052511178118876150785924510489237838811427886441744675204047101902172234266948947173484411577373917213940374259440454864060594451683015348717098308973212287602506810413721456615784677438273850147101353624659430801555217286531353243451595311752014384665323058149101981199987741163739250979810379037125668613698517490955399368965904838022218364471290845200751112254688868503308978510419437188823231932131349010670796572547406020469333338634485406033210798301475609995460262562270089427217895252775762272266809751706312704300988323390892137409068585524983399532015121188188557747100075595321940518113996921903918800793792435786035303974411024834805468449007218451767815323123306702742754107747519274606759600282925702673977435822843551309004282039292440262321664174488204877637998094177882957408047384427417868205514269864986746045282363808746664065133810101568240740306174038920160349082203103778634284829279736367256921249467678132119368024687291527978150853045036030871134364775466343877424440794362673644788486681060585780627684575286871956310239344830192581366781662357830301850756130435081524592123076244658136736583588140725685880785063149251017318044628723007699178349300204553962608393423341881590693465425930648214805549307179003497340544743754629467762428886900251372761069862013356783847004859557376193079942113076667771917713101698618641038963868797039591611054736601853836077176869960142937584843100620824467188239866480754432654515864414312942525476398584890088175972611321049147310487824136038822697628835969559760354452388747547089732014870219593879753658466023483817907971780489553300271116107376593045548438536807007423312923635874993456226924694235831427700272907656471862376651654397014380411782565897598907298795131166066928722537642013911948086602551696255935949636798175622486879126544331782465406832080927565594882103903196164282381752932004051394131055029756425506011049643917504245896544455216882934816631978108133996447751229198966402092802192776623830965790753777712762595099147120569505841417615781439834751240743269000872737811801078643569482319577347615373505657459426026525901167138608278347276223227232338674746676067294539015721065335871100831100772180028680265555454773205739451280265029849409148645930910135578287287578622760114077169961384852255742255421905447687137337735986275630306652871525522380501878905665681378388159609320994211084983063911838377759609093602643150680185982437910523596187028492185739394401658729707760752207503201618022968421932973769972389829636304842247411918879254664484222259602281903277030119981945799812231769537867055169554144479052727083230265638289015736932454762042722806789558022648825813360432842408891561388119144373292224201719879617913879036302897702194517789908007698160294812835521257731836208355756585238912072751538451285508529053580442403963881875650505564039675827638571398260604033632650048940638248139891107275650332732703896969035050098735413660673147375518677597642561915264519060409212020967397910673858160237886700128976947946757339776679537134764353039804779727014547462654862025489844506432333747086585006260171015536764515465963321886216009430933220955259502143569780875116091083828999144193114140472022306954247166510344662285214376362443677993874389490933785675902073766513064316932612254627460526761600278990752348305459684481630935616059186536379941193273532288996953185651975250837319334255563187575472283530814919844127395940986178139748691382874392974025454765409305087081298098083898004183513734915076252303842240040906313766786702254040018044091046938332957149201716222106845435909213334462505972577755932479697392952183561197909295398113238758054687865349335706385251168418180532349580352758154932512192925906478636876213301325314964623531971469235647151238593309978600842511698320858204005680825920752139347227413222677637873569157540755326447612742822979115527318857182539099165999456494160103149371081199511206561742597523485437812612107954637194100452074019639784953342240912273251111735452128725913010892550364351225515463807365963549744850248501941917187425783893901807880831755631846969759484384364901267266591598599039482400408665968823349218937233015019789857334237404837123898324275440139445171025906264266539676390315773834267950803080345492504250102845038656102024982064365397032000097327298764961957343910886508741511127789503875438957910921453472673688368191235915376529163259256379671555138725501938237630803894320685109194442784189821991932737593769568266252221148317250973286991106732626020122496002322163357571755464808845972425324233107240059269085370236474780869998606878435942933508133200739674851647565730664100953952935659554564690887436424564878951756881764320736876765772671885049599378963847374572820040637715912583911688579043073078288003749721676735550159222833915029731518713496361262687942569999822087010614697023507019043529415769578938370483469057398611592319507390991940737688605447493959543275172062303362938912186058671667076314096681850929968543687372684726625321381768862507231141332942536403841828208488532072411977475000822388340816436332088578514766574129452853780569186627295067788645760572769238605748988444064524205567918298081112871966025139442791789379931584133578125637519012261778671958064151733240869922835843044937410124560978683635545010571198208463671355183410117017241954246101869908234576221971933406800751134596980763817454420392166161381111141443153970665926704026406518365588719579210071909008107763587944436640921624122664824284351012081818569442060874822642596394052512794412396170883104321838197111659226600994172607916417043063377937519809166776576556675012699555836391447531978080459373137027943349120932181373232872406162344152664045249009194218982640118114181934317163882000801690581269995348899944478107424170587945968937550437384754282860534439317423804547007529589492503202037616267171176868072594950961590985104326365069903740010392739051857173800450559740616502195933654207946233677892001558672676179744604307207897835412056794905684795193461448742604115553695756182755404354073922166404422310740409089183277425151280925476627533458529668763152180715515672464522003876102898941134053268957678990620796771400909882908703238003323737575950690828943178394359121154765950976330359554309082501525806215909498565987669640060505766820256396570319278248852199653048046437744751598928277065114329479096498583834784907225458206927527555346173721829711206503385090902248562993914522696194287859597723387913003143812044150885245352955572425829903856500170090531678927409776488616256179876255139343165952907360071655855722706809151854679449949253836113746910749311864198105590978715989038306163078551262450541972218553337672624921473898489020685242493172813324967030517922092224910283092830682269613560824248182323118351203511936615426233603978324358152651825478444900943935085221467240077226717858127234267412315249524828306307644199268498745831561413632471022426227967720583469349090662642975269766065515423723395456016201550922903147477804919547845624674080517402061508651158617742315580919799271943040706021559528135117495948783397230403489997405250029319152681580801331397684656127356854583423891885684941487442987662277354128019496042204689245514646266822575522480513031961798719848606506210617021952126076497399862256393656388665698595436221434056934554288196686464605835480767051056474386832360297341317611342200491508308975158733612036122017511371328996851261477636736750931962509512363890580773758738097227591410342640649426764409762645476000555556146764202719276927346830091822460978571918239766163758013813143504299171829285030817298082195380753753098472406659442077431847985273725835302165430172182325609469077401114930945540036106322929329573417388313967530942819065535880282165081768363245455762199181688093965381293047158693154370157982912801126567404394919345916638490709251421884001966190871794639727216137565294322068247470739644204842759866220987219665587476697401000725462399894420772242662867410018644330707045364999721351195226026040615215251110710581626282656784227264041965429557223844173908283087181834913480743255014475869679073639810969955145102829666744832781771414487791259196969077692848056450453161999959093826734984637539104018532518621476737186392089200397187714314092241375836566093914425699120481017606307222751718241657968997102269990530921491369060408020365373261163000986131748936606978198588498353102413725426282873964693622752427939198176463430624361607712826832689087906426592205090446232127962855186541020702901564386429388858162047975512066670439403395233398355469326658497491229089450256769621925212222786255433671787996279193914982480701733040343286620027353664181469046004349072222887624798715213206263699106622630741344397660557546675446171260432469777828752883675429681265857897961832574680678311442168905308496898606388561582030061976825249473250787133746614228253540553346931598296647368604950947789395166529165070050124911819902456127556036380781240129984687218202723354638928797524286829929973399324189098435898528690618365737449742225835942183725555408979434216293034683347490001523658442408699343566880227148063211970902659140643531620254488396008762171103110957035062128170356931109535105068517609336466077476134038078818614236961533185155565934185238276370001741664399255776382773841845593778612901532266966037253304968028430797959534007102899144600071367477169691204655356919440088554348607370922053822906125077861058958670262566417536175318167754727982248057835176737322063712815807514674642888684696122425339523502604822760720352039522095503783794662532602616500601009468337367415248907959826177712513284192207255207455945087538405670314114869449772660719929081522664385488675526079551469133016919628496996718988391826087138586078895776223953165510332077052906763258268287504746806751145257049108561375291513121990131846361635043265685102220061943431262471289513655277417155194159617593640719015719340650580232484281007186747592008197763499519914213395428952425825751181729984418298772396840060916263323246972512714308409273564194739179757933786735077955663520058542059700839633760279292667606818286949994212246936437007135899282251691510719828145949359295800124696767131225957186132342722691611292137249145676936326487408504576801118267675971661690310764830942022346803908766599941010264630438821895409841060689964276912630667110069909701597501379874907602224512893288812449747704106680919205385707656603926705516050597333187065029341980242857649898572630536743819776567482059349114413180774857725856709961426491077083215683933705445480885153406977398635919312352389617943233169617730441966010098724139035178762733004496306990883872460061295350694790669789957544504546250088015914839146379915154567702710917174516810264205972534961922313556987235640843425002956384103070194564973574588544454674781486745455612424676609777649488313407931187423509770465458657650542465943580635686877292156105279056282025966853593222434027755492531612264502383600339369117182318221864056003193041892004453221042147705430190845698625246884067604789213464664154634796933450557068101302715967056665993644267988633776949681143723174428913542249882066405574675939768122999046739865116113682400353316973212380083458567901179251565366646018930027863730248135757765025593850538631238985859043947713508061385050989118800082629212175715029942459792425580396917622111705404824885427221221511258604443337677126329002096984897656129892008042591443243596023944807334281270455536182006172460295155713792238449752756719968491911693554108936400488838400057942304798254840968644436447720674281673526863801255113411531865841051690209574846140305485592905136210699854166083965952891116662894519432685770412729745484100604685497623468329828484571578916885573615933904397408047753547318941656028082199312158526072407914257594090603084641255993426619079329712108792177644360724858467512242075553740661810576843602399482645228551830267931735729175303999060597252215791318616910982560290791332131113016915888492819083693064970342502146297436107752120709619395597782426917949921882887767818748350632215716100226782512213315325619301870240915159380038174731574865810420322141733322651324822273573844161879349725706945646074580567372019217465097398639152625554717441855256610399196662837714864081521549495506717236501599999932013975315619875034967177884498083272337342592050046777741417262833906598341631703223033480376974523042049017765026566041660566176708705761956863039371494672557261952795935405491311941634343252041448611251260235351956625575135230043492059567625690256731713206226518740894553802843204836818447892767699408850780486518135355251259976192179176597888737196128983648857171308201149967637020334567517460490796275722878791095099613744030827123492803230776671233343256182606945272982311766302003988754923918413616535082743808155558821104745148120283901892407937088135689328650955913548547839580962608418331492000492936225957358217570384039457711289594509703080005970716827668507943030703366105773770354356789983374194931462249604186272668918030236976873773902129389767302231696578330326532088569947807236742926804538606340913422431152737129219545127259335740148412086693756350153009157119150322673599543228301247384977154237594137154827850584218907012943450014000527816194876440671806382851235066082462962799913899055107344683380545450688799127878338370875137744208742820142294257954149418035984426110339763496095504194160049495412134557012574621353028250774497112908715808039405729586313583860870052027358704007694610405300795867855423986787105907238233211817092974040272368030502987058170918841619408701889323770320354647074061533655556554777291868411677907835886460949328592923790360451493195391788652098118416744659099482233862793752312607393749725911567415826955745511141095407262785268170903733772652521563838326592096400900845122339509258661442263148707713590894495811828611851515493163959075717295478443735811685984611869473857347565033240793791006816800206720885110647122744757458864796484652297552021813382052026269373691763563174989903771700996381662792262363553732302064366409260057268042184341027299509373637724282388519796602210240254813029043800261699594314100842620119558733179438195441575459489322013712140132468911529443546370029467286984584245779743003239273768849231371849253028011271688827499708502678166253397982925542064174342344634661662845868212253041819112615273523732683948618111347640418242542315285226446591804087654419569344309631570596845203878138975265640261599209168275465917895962227325095119520042272913556829513077592073749096753815256961816215285235900152568805757263160291590852680233335826620928590338485604397249541717423995129206387731195358259775094522332957657897743966984267974527059717640034838806699769942748595662993094922584441240314888261092886066145541909329334991635973457148755224600029886698154892154968243481354719000771301881492753272306861011960396724474549204674049126957808145781305974345263272399658879101354490069531916855625000839397886845854344996570448439946280864003652420906158103236140711944981800352351548901183703574097312851102404926848053730905627238759062244459346060013186435990680343477786396848920196049981985556311268346884850717773599738708471198837944194310013478421295801913083954491296129052726635962250599037002444367139920402712497465029573223086814100916890678242096871669945364917613041586151992631249177699403138081350904438733559207351028392747911259418581905339393195951327157519092759383340069264806351257972811529114279408396046883178696069289141250848987764315401429202559242076210685600256495833647765217831928354053059410217395055865367471910985116070055727737202493814726351077198489313485210014780505448655401108265610355993748366493630174957261133312710708299623226304239246809671348945725531657201515437928711530726294710005496541954587951767011524453892213436148377254164225315172628195493002957944860116431769476877934859666842703967569253805828402644591492271776901585059433471972011011528674950488379916808353686405907197001064190922082512076935671364051583449855928637505591842881731770246344873241640405722073439384247849839355910168461052569308216356208844359812495668178639625521844568098380288413009223184956793251218791365778659911054041392629583842148627552532975848427993484637967306070375737049401917619676156277300256736772767572799975690431094610912273471744272316370559653030116963858293357491580111872160206318860164986026631088301229773454367042341150375847206839560643340341159222195587619934248372644192426375391434216958721866894448421479340196287229919013138504019425487691039207407107726740080552425928324189225502241187117613540418101301629815309890840012758127259693934323254914073129522711203901115682490089940650125410806330596544384038307256828627014477010672239433307818487744131748667849931965302521874845176118937823613409060982881826285393923772709839959480783275928383478722726008182680002681994478206108044410147082993736617119441941835558935561525722414461473681530306892572361727924936008320881485158149975924325369160202008818999852389674691266472459346303429357552155723318668291959647276257679105353117831842752738317043064463389820179163901291675806681820166369844574914027427971598631023465592467782755092175252397403547492610931143629203978580492961613427795788516539030210239017966415306793857237469762562198966855580299050975764610950474771002061166761709278905427181087749764378755661569006241151760350864615768981881081871632247005609689168027614024724347596211329214743207986090870868133545321667347696966926041810929174245853086622447002360543039153722361134463710052991230064564022297776728591083224996812590955494666460634700814193266573328847118031456099220863422858831813422266179012294475010378351968012394080978835926509656825887034190748935224650945602553515374000512653210378097690592173823348435267094940136762946027757085367659194088466187592838921847807185273198921561962941657319413105470397813829841233101935417145644437960686217950155165218024415717892739974540508143948602093059680853462009951811717794593835837352557904787004770009006504839551719123960353581586918859299612898211895791280894521685563173593560092273404254884736442495385518029897977201251250512513625537257459827061054586629222413708605723029518636885962620372485541968229963147296317078015393178618026793813555820687072368810377816448066008673225512397699950214096532784305777308329541613840000417039129429630542906281046835514781955878540349191833707620741736264769475311590569555729008082734715161678008537581791116998601866735962816022290195689817427642528738747894732277556316066969549241619842818663122341354487348717495481631797433831112932629849241338559378233151814497423160044818266233899727271356025388769032760355199955948149075896224523723216163145670001074095374731577691092964118908051484035818056502780819521777347181172885307039419088250173288102608874031313442665250889993375606725979979050340270874056371121908386859499371225969378500436890485970314718217487501529110137491268189435367509859109196962582022487502874286765913667838405163299757496544038776620068009119659095613281948419978309467002652152439185925891178241371211688361698752292955648419265515860772168569895137176396876520453351123222015230252815148835658250836390491138120491722598605437118194897994743072339408550523496436661750381363361906529548708228259555572812647101605673073227681235831912393317607248554420435268045785676295069572574249500764191312437602335458830343112933847382332039827727605517782011993792212327312044663696055004076737276526067637513348491379375659144092521367841585501854357030283922335790795478317201762659105246840580073227492971418226987205466636229150993496411383957400495947260989533756072816698318482735205562213289390375247223499311058780909314636635435614064832124684787517972850914299542195818856904657887896769246700625939269980845697448913784438978039711334225522385312628305690293144794372303383987925247191988675958886882712320769481010837300197672804275521058986367762703857515053392261014119692468466677203031110902342594377333391327400991549379139778113327221825826179441702848946658612343137873068370233781136384915995604030831799923074551796295176916040930171672755163038446295882993527557262410159431405150557893304007135285843584806836152736316945660935867575342396255137093378325788303766885789544834826915529608080954768554481807234317552510582263173410809739851727709285619594043169161185000804079731197690594558455742330787666245552056722903602384774234212859851175869168355646035267607095672523885605682248992529085155050011373912004595106249653386797295967328026709266026134534507029140155383575219594955941986652301508147255999946929732966389518502074932239130329699800421601833706671467479002447896175692568364431099316389599719895657572014208428624173180521527544088327384540566105407422426281198049867857759643523056229756355623227294369842958534832776579840492602480957085402115676868279322923209686003820409203876708452917693087596005603717118582386035790989715197777346205049424552972306923761445175550591136762148919818989508748274615700193119643952068819622466648327250309977582052943212206939634711948815695061859524837704185225405826446912416468141405684466348431083711516590966400415965266513559726290045339012743879537141888861676318854570397530806045126448463469377765965915717478251104227046884416818960970410418175913064578942697864559280991023097057863807954550391543770504643006607868722596625577381269390680445750253479597343046487426434913136463365906824848997534934352086822286635269522592665892318353277457099453484468909091575480195920336794536785500849137130413494914051845085251716199408743573664086633848194742008073214740765000592038363128049209271603254240523088503478490554587313585107215170121203945607844870946560030303721711185424302349447887122188518662449509232122435201282707295586689351326284990388663901813541755941721646535293801175792318849848171876951608564697243369819617909321141332832946181243132025890193541137034543101604101138987085377215590086391182474833911862657368096222357145979672991030022796069863245651394535425526739305013327527266206393362426843879981953572889315371563629610556877996932660585016484610000472759122429962815024556286742906380447180099431456649803363742073010028594816698755203889560423402301250848879894012294085854030257804015570968715604389032640101037151978067155452085596416310883726771228822550994930778384255223654984665002371774096715301529151634036041434955934802494905080267058180843219364101252761859617704069430531386217148804573109667536143738684604900825991089072345289257154277906306777442165216108883796451322506096652215566945398267997378551098507445799331728820097627957240208406542255442422360064466484172501735459818367131062161015241323326064376247057088307885071471590598431009752014552591062270734612773538670131911431700697080939617716505775599060273561564552694127831350866739501287354136455495453437086772466786089771368203175966939868322109765369652011712483174723784099318282352046893049672708261706148112151155587528456295060627284607725659687408569682924058401043067759325857050162059079956694737159527801808812720822450129282915409750056625675418406056139473582689517210658104864639413250416417547662036918162344309307796277295820635299788037119027242696084937166068497446738744533377336409368820984086802042679946306717240244305666806713582197486500714215861026615211673682907676959082529045972805296651937168797933954361606252987303614978973916537416543808798925804438708482404200074096593699493035907157093155041026048355998515887131887017812522723183519720751416133700358812317680526031104231159727168363489520817853608368202241531770165460558376282212922031426861233139343073643173753892837110861521105431834651420573293747763247803801669324885619382901072168270946152105490875371535757359256793399872628093014407503291171892162805336837496912491384131626779314217498419420025618530518386927428651582296766402326828204714970046529694774174006508170447182788488897134141024290512243660456833605169568980363887583730289133499649092822265920618671506126653792997120722982869010189644616870687747112143718631883930836017017894401620570463929233297810241617269930581939031499209105888597818446980495343423612939139202062574816882619414006935873015913438346736986720040680820076296403371172093086058722031386711983810447837346630446538866570070247974537776875108343491452902231545159250385836931294995502626176298397067543127626368122841725089477089756592067664495320619631568449273865381251132988177074385022849532948597524078591116576593755392129421246585330093993656835332460924406690015044685578178212118344200031228744867584685583334400641422476771756243865371548091456054000019757028724389302099517085161347903639037301300723610224337898565182063108779658261331182937244723320599304771634020367973132487741785979199261554108717084503235353373581345404613909732658977933314716781332066777388456473118514943235837546151091082399678087151562420206169081580168743296103759915753656815082292356525713469205012876460201598651264123777730399735888225815702933120823360012483524706242321357780157799131639268903549044647778661489163790649248712502157925644670874919554015778919726730655144287222748206867138474230740430836848412156903422377120439457703971380765260422220858012324860939498594637566777923364969982279184703214278338040733172078239991553797417161611073640090248432551732920686525847106513762503769449741847892696110614068794364284773755048065631420448936051562952017793545459659193610723757888150445364751645193045322323918917680972739374649124116196996204659312296477924521592514111269390930964410466934736733638306500447318714781528620292132592150098336162419366078363880320440826424488740596518672783424617495307820246473296813240448200658975783344010461608633146094683144334186040829441409708951376549832416736519007531547400279282859647914098988405525827524487296916023620544460327046669392339167963714122627586273953659289679737252409376855027562490333455242366797819835532283695784874867640039188670789609648733648357687487159603013908916263435440404300543563629940274042626714983798424318146558697639466742650383307558090109617856120521352812182596233065513164832456693807038082378735844633223916519257854080137819450710144716968777305053765172608833037620334722875148049736694921081488509963283963974764130304528490123083713181071660536570142579505176676072641426981858703289859929306955882329831910265593346703349293541930233842112211188867543565628147805328723909331550812572034735816021054648876245075430274623393721875904565881419490536029887229096733001943408578283285267647121045694211292069295005547676014878119043540643683114503230405681485513265624501084614099319001081648630948318855797843744438370845585448264662151464106706898624763020357138756425073725259742168718026490582184003047349244349890144084445680479928160107800700911904775679015995530994330727465390403167681860828765138076648085140763722324820511302107718409878758519955348983424516475516243845289076054636651049398577982503270341298232928346231346019682142175528477228885014977830791041308288700524826492708702631072561242396843928896266765936691409131803922937873472667460572145068457534943721220678888116799786177112753296373757018059597891337374620666711210859630012108683734649024010882935540365352835372622451133142623136161161853681035893986062966857585720605124867158670623497123109890673075022428755861896697224234439731407549146015797839148136065137950242815627021800673173252186811081399958332960805912625400686527323172326025980218000180808077994504518627429216001658681803134483500253337866911152120644753500737257047593065003716551369598330654759915978658030942162907502611732223351766857719470877783545028730436801953054631513747916348844971249463494418707573537709347444987025194326925669954280262560348806174981318209271948435586882536606126094720441044202886114577685819630338105180984953961179318324863099550725035890320718246342517627537865107924704336508202686365046332041217518777862127417781841629895854667936660908976493797269408608736665628436520870456239339911465047352207434155920034598573176936285135010252987887463241491099544999434785558115796996894462247667327752969969406371262768384160817900998841955871374301152041913874186073559406427116440439093376847295920575662968743150264603968542634000701321032723533270882463216000288757771563387162646381341527234382903681829793018185941305639651416899560731967477268328382366826467963542476124891512933784364779872633474307396255833548605490910154888428848286173126557415786912818376012897915768359744538150987658321770551442626644928675448589316091662920036372815613851489378240943251724867760770185598731577157098396511987470844231727997449114732285949363497079175985293377090712165281006140684510572999237067137782985046106078574914695896773332990989013976938618306774083664486801136071649939233624571262011308421536024613940531258852079953797443728645917150511053187690057579459822640641522614349236466346956538322091944087126624631784431476128966316899395880470020905345990691377351651482502938993539893021530795834297928641102173156400678862675882847894890139358615151182451419079300970541119383667721596484351099567467042040330333862580815567928175621921511733568890030996011322724580619943427324349437887234425710302773813211447616606170359114938702462607859725359697908353767197416325373243610858059767540164031900161118904812644576675247189016613632473801346025410288918192454464615307926570010905330737806443566536671139757164922517098142962288353808796979441973400721149236326429497799620677852084023514559642278247499403222446788634125655164031654354559291157904960913240887561362408697036432193792466655401139180730443736512192684389064245739410000722584286954961777808556099493260864829475156260888638643574273395554949426230207604099176012270240455476002165791063100307680664924861633557842522560711410924368847206350980835199266442976865754687634901019372859968027475934528601169303526999665363275915859166233937983417329313459021788504823475407082902434727124350604548479795491453584660271839480447519176576331953160430739116961197099757729175277050466357796629230320497107379490010315174511715806290716135411858922317023502822948486205572420644982868472849312942543582126755443677174328002945818321787758954124130515585979176631639687877648582609589580558556680923266937069772057540618453227936703900189358414955403696975791205362196221899225540233361880103426595653006780530876850938522577243610923423293835052266816879488221221638416135838046905336837934491490933468856242734595895245775148139682457154626613630656050580821262787758863423782060199092996041631560556579992465198434157624982336438832061249928780156302750243159181941832744690249547432050582224700174991743366008145055980425037497174862487050206020384603188167703996567268412082709363078788531054249205631955050423336481062249896168742549456175388058727921238597457945317062035874393199678050863610734588329890209583025871268649080471424048698590290739574332891927117156030950741329239124672651675602092928557505514449930608974448296439489901969919298083080386117469515064465838734925305970861084047849417145678665983957308190077989169427984132273887511490984465626845978803552243846295481831641075814058658103002172571324296075178783797491983736304839904910776914609075780751189567192553707722362283646125817825218549410735727658892328914726748747363996976513724783223479727165212629683734680167062742977648910470081360185830380536000237743993467310444189176446117758697683358849769084173095700798566076295059909967420433483408794201684972999926058704870998147303094317541928873790567969198574290232746580409381506647847875456418155244140168259600129506386267209477929761550083132187766152226219684283748550856548347924786230632316689926066778702979098236525762869592073719107679144426891055959371136259903522026247435714994911566966043117090425754621243705020937653081924941843839397960094814616472692396948377569311556597080788017746963678464588930524869178256487545673694752943550225246771045807646520011719402505422466116971986139351927212724186501648696798583048771278469793578232076101127641654487109074732236881339867899414226037717068605040088187207502915922141136340992154193594345337484770697518641550096339876275699957393495373938672699120223375626213853815220860934120069966905159793713132194807603319055101287502461652888086469640925481004939404184230855344395878918045222948559793661337681314962926699983736830206393649765927973443872635512493591879157666430505787951646381119281639158207733180077600929080297339852479394001967410108236242142052547660086514918360860641601268711909547372773617077422064408417127511075753978402270469894431272285151665930905537238823442039396839400092496598028291162963542639721586247367372991408692166763349936689808769922266515436018999376221185261904518380013967802684236646754172858127133031954224984362431680170181332059495450989503119397710861458017778513810812277676828670533686986866359267549645090702180196336520482363852231104357554171402688442296010234470525914405654561736520557532589678304993442770307887113012673616161754210840427811422399124744450033353822001752868495409485434132873142171447454617547723698699308490275581183818495610989437176739894481400680244088075593068680742152045859585319683388370984358146687888625521908840816234311895988894098162118832987621164744947771346125482357459341095671113858343879453055831934045480947607404209431188586016755375860812337126492881660042848013531901661990599673764889467382170989349448090894203426648799443162501560774677285385400307913418592908139639401737122092972231802741657586125440671148538904813735036895816656186666195592735177179762500248570173603459411038842620436224856824645812267401716497762329656335842374599455294183344360625471736467146698551580008848978091249293681411012332147483275608401831985099686819346348012710238865904017749862767420217287175846729278243879257333541372019046558190181990846932357371379560160582414467380430022318439581963232379718108589165822113957614329279580498665618123110418462844163463865149121509569867684879234012949763067656100184489431445595700147413978867732525086411863998910370858304228914904495098897748165444011372370113930832905353753756442255545552255490076828922262240246392504864779552315865785936271677997915864730247798680193255060567169908626357237774768977998966682739567846215211455364560391418164713191835866993603490046353634636477823059511767313960782065442206669925329865941167672790853840582577640845734394955090182844621820172475775294859932127944783951241711825579034309405124976566620514537166977737862682118118910694455644016434584704780623657936010247414429098861322126239808294431060974051273950561482744010876009149128372078040864963592693270069944471691944074276003785451561612472697183822798378936419787134095298907589732421756626583364062854018104492288524095283442645062684310696107429772249051343185331414378711303979961962744257404460880144706604062424075399467360643679669610855911668025342842207070027348084589714392127206346647904978290981918612198771503316137674453047247029838283058792562470532642400994918136157852948547980030558984066656565425189352087872160853457381953941389389443467263050405998315607918921230184695599847567880540865920512469485277305645458644001079059278368514117102825606304382153530500859469459214205319024168099053166615890498416009795163548441646660105183452813869194058133468485797272677868347263566802366742879170122909116579114004837866978841019463332724815774218687273918727055575843451922882445702721740702899718047327242873239111004851135827958974259551234768878500698651335961398129308852446225649570342610444686108048781875902441548818580889615283132647327125268131163169289948508413470768822980112990988695679283647022951693938972395268839333978707686900174926295698184952625831373464510038736813089712396579806483425753077869756413050320022289419169050219430628158203706063357944646262374766493502067959306302627156716181106957374477274032790631635422029297608565752017832671707622618210274570939668645856842211189941852210073924939510670686513609442315551725018753298228599778018966943470849722740575480903981793110541856612086258876952158597063331011969545314366461028395417173033963458118982451165975931456104225904728951854186407176566169297189686984019845686689064188266459634267513712615760232669276534184607150182233854957673648432951376320580558775190328593033703028056465537521692900983648254155892150069338807099688744028139797126929185968318513095957773987987971905611994088278721688698627388943964173236428409897735971849163999292913541013273433869619045306067004957919022621716616806856973301586209552815049445889684932051151849779788896367170930037403783536618843881747132361682132962775575382700628537818300858662034587991021137252351054965685913867576956184582476502209466302797948911466202495755302809605541578296416299306467953934138259368279725590357637812011365684620206646943566548342469826457727510161385394021818697844633245640022079123862088468493512820838965736601713492629569064489431548327613517603576494550808852122333534309947884150304809884514716486252159740841496128200129570975236262375821887241818210668399678917043809302015506813056723983866508803370534145495982490089980264388507189152721996407548465618461833500391460874403865655842864595252545626498899501772908961811955973012362292942443396161497660890399619035004754547699102290442063413791866971750744195609546929759391843481804925764047886838387598432089104976058200033636211553938132598511534201200194701516468992796916220930659678379744051034554316200904574214238508968858137888721786185171980439881113089252673437762572129668394276859052607557442859048592157041399690740843368681600704592770141940491439336844638536907984801748542440659283046662229879335633844384308136120196642075783431964329608795544072543905471221799525840693689159079993910595694593144278178606221743247548889088303047833110513078091124375561787579206335884772129689568591508696480383059365132512896413414098007133502338743498342603389909813620120773160783707836711077811598966956059730468913119095018065906209595724530084785720706966139929186844302866701675696972980623150217636193117613907750374959437169812843690668346747160566137141844162208648287430431023839000589618752036601130337338125945649629619667883045852384896766363965819477469800241785880686056670414693853131584999722731063275606792603781121241388712575917905631465150972400073406242848695837031818496838440833366952037857245180974051484448186534354101461107243897136776009804486820869413433928438549912516581293148264380927850558761267075626199050507311537799683942468662508420608996792294035719964950081606908281802957906621593012983117122700127901988844667282885149357793568310059691540726507179223760467894335837346847952220794293229793020341442452671061903809012915335646015181538018766254969272767888430311074544497868774930509417739348285630089416574946375281677315065995953925922214606986695711322386660979916831214718040863310129593750149021736422901513121750959014815210958837545188020301908451233196520841296769479437468392499743517264100577265905944710772668029036770323480285513623711748645108670511873637458576797526801579617511833493983236949042183447958935993141723838638969684695630483433255054365352569921295665349086809860664426021407011632832504010078983822049576525027196247190431759545439146844935524550784656303361326255522064266365696555157896562343187162140381749615372390319416488366377141418403821766746388770090886181230824921267540956152440654728732054460872027836816955961236242733285284661637260102961380331079629972648674494575668388562041310791095657781613207496285539743441059187177147146761944782145130883614890585883311969245404685753856340579749490679086771278966100099820921047583071410217254037441905717433192038365101112760983352084751177098879387321902802860805165525006307069722361770831823017057505628142821744386308308257250660111872803401967710523013542388708858866697485358260354042570109819202507666287282886959055391140916389247514005452204454139325322412360166285037891026288150097137377101570196944949264430209807883692646023856313006969987263219743569330847150080537121223975556967278667272768934337991901355677278280506193120203418599529901620726261942735265446532152952625187036363633043883274347333546703537944380995261565633479005084936846289423419257541887134470934998584943726719522180146745963668211946942062907986919195979920360926567641293492444962943881378121239064184001502539888954687328107930519928647441027203864176672884001999471776201283665707719899964281096118616716991604699823591973274789257250279096787195290933959515813887761725219482013563034892409604460394845905270106417420653539088248597448227834353866684129910589676225689711919793868158232878121887929389108306182278601993454044637176775780310337915963118557940345463637906036311084954293755305838959040348737107926157010427380219350403045307271550555681576791448960260882537808389903898119475634488635294571268619344887815935963915645328169310580846279619776291629849573770899007044800326860959787630604460903101783714944042531859465921627649447777387212470332100201670519130367836573993609638358581783581491535940350247664874721651704501688454304564278145864708163031293073237643355644777849856137182324142907586496414068552932498469588685974443193329018084693320072573923487085389147780871013266468455866638170510904579590271837397279105944831841178923688350802662676481158420067265365932003168789501694809534847106706776373773191254858503971253100403795748537552735033074763387459996194440020468383700159732110126985288297708873699810456904773383804625609970374828133370731681156622686475417500163561717453095788610075210749773967132421679080131586553910421591163154658265833181169150352677125571201662097287367498892063922353969774637621998743399675022541295510938136623843607837958559761402212505931491998035971017829050338239392845172988646581735093755805479254357429706679127106847831349269044846791400831033223796734185741275439273164526338875464526660154396541704545355207874392324395983071257113812827888467718120084818722743205376690350569754931493597852720540908447002341889548636637706666477821831719135444615828568859194948543697063241645925349863457857918459227250020189597541111842406641867029367854757426755785909446990338108802918411573212011818758332361985355418086799764186833469253366532764415216629196617204252526421248344290641291627769553184884229803117826148223141241341385565001794916456812799509984869441465121009276337952078026327703902404006687955990853781973686866327282357088984389236995682188829830351906290732504193212646612013467750728864350827254073553514518926584632644131256448812759858133687913044377868045520107266755116246412432035928624280534473790387915201044554791344334541964946317128384016787215727523896732166957133060170564249282949995862172605576753493223224472147597452934881352783962187416551060741115777959346102711725601748308047702408003325611427340256859155767012939616290070124746871507922760738855813051212019819242338030598843314772751284507310226920002820979531214983925533332820129382826428678583484302637158413222464420360290572825263618317414314535095580487870291294764382496944740171203149537761712042496734593753118780233091252694652066866343730015249273203553588950051026019581966957608498331623511143887866585333131444825337151427527263552568446562372711137661709629401389683661465749739502531767632263386878359437463891606469228669975070414592573876521047919448174414677430282182044086030840380877876109467556888485407395535786291684321839677652951446167385260249686599078031941356678068199630740308249350935360612750326890743663884482559837760084171550281762142107645698443609106117251793586401225352979347907478616707128875375508655559879156313095333476255158705319135127738858649984593116452982810296978599913423354241605901399004485840611886324737573272635295206494359038994888208864215432764160255874905282841467708124502170554523143329015084719833723997602657773315283923803135007064519326822064110132077961053962949579147422523535489621460115379031882032455179786242686477850982414513997308140332583602617867863608001689964468261591205075310041005907094658860639016028222960484622432586816317013726975081750660570165545134918595249278622527332394115633833633890291120810328028421451358215073465705354737968083053921059980039360614134149728748673489458265306798539330354004464048725852128361571474222691737152506345425141301719694499112751393167114177693443260964037204141812422630868560564326631404760234219104562635992691859344052807506513113390443551233733524481853904989771260095812270134699838766431005797164380823516032470538215312754705163602520177940454658893855115684201655917408656220304780743766814410683141600433360962593073043712318070047555366457818458849651935964434047292827578136351826656592133600744072735197878401570353926270270980559645957877043905324939547628171901294807312286154946807702232829287449713171877274878966462033920363035653937222476958084654592439338741740221223493053694225209683432245203082051007152309792098060255723128479925755655322826254900982790122547333682979036469835959753817194828001930799001990339533374185903057328037654245166158754050039309666251237626413418280026345743334076698781863449375658377545046770217914536876354375111612200326108528176125985597703222246486440179750983994578903005794762041346287965497362998976875786048705120294086157313868323265027493123094233128403664726631003890270036608689485843737472112545657175418118959463602160171442411443356857705178019827325420449832206505373331525111310599015717002668194707568380425513993758761405698887387264091527618567549194376553558537606416218088630934075679555434488399138562196842760831623581904250745832066647853426379420582292933386703039087343728830921110590981370314639843302729453196791711759147366034021154155247605683683067117033048469636301448314723973629590803348314809631155520038785758585468099233762496332428121832175232102375372616534270263672753048198606417610517257191272415226393150601782911949032984945241418622836821438730346439150803726232957192480927248670022917780079753154776879690878761899237969181678377049247859664764401047324727017664767327927520396648718020393021051898958109873940034403867951903093761700599453970810716927004178900037132824660164511727736851730447282223253070463435110763427021647759523070853368853005086319028598569442450617346530422319810794041067199070553455712727314851694591097463044112344085093423954400706138007641261742663333660947723396645069754686313269051984412020530849974115495821290096459709930094618052517372901936260366344560115825755015466319200609517142476318704316230252621220835371962555604893798517763343709164238211404303249326620558716838305638295796650633960308582460139946143235905845452719766390965129620002721934786063465821934314933992256598601199263247962830569615022549343722444701989633311843681492342275971754951851236076456584298031804441745964776408619810112957540752102355185486539065859824792786801914447315549945415063087162986463091023456955506312442066153922333849384463841138843347697793762992368022522338878366905642609275390312769766431104353433948606189043166295824812062029290825219146879165665429525570698067065000202063461394561833299771883915448942100477723596206350359203458881434643176458711899096107127766278448405019106645190395774178415892372139288798344138187197646395079762240161386702160816595009211815800237202317874026454436644980354026693345939428377082371073052890741566592427480019952345603689050643908178071466528263768389842236823059279176023975256754405153059025219028491697566638867423810733304780350579462823530450170378843940075972359938490215822361283977198682950724483597058383218168154991275092274608456410620387173418173191529374508776308289914862784207095144645771672683519333792012343628839394303545780306799264855165574198498883206284408985061549036051308534341327871672482986221958894772483873763859960015836913234555801098214747067636067196322322803828214826944369253637035715954987854773111010116626570622251395351321705121869543326060392619674800461536167207013687207117860913123748893620426513281852686979646131388448773795810614776786730424919601093116495306275432642439666098767178406033758974298407070346976102627382977664667422203537098942830990591970746055734223298768954525827231760064398250658255622852130015345292813397356534037938571017916770742636370886330441832164955473451039101744647819464897642221373083096217994766185101215670417001959598271944651953328229856306055588538455523966848299833516950321395326345271787091284954499354717666609625481201149406043465475828450116079468408532139624077579338015582495248232352588326025251354336006412085444792789313072704658390371402607552975631714737014265204145914793828028862350704603592207588899483847574170097037266743786288545343982416625167726751928843837216830883873271109470182728418222831352912359741632344548817775313652234781289082723717370816266960940683455180787944121039247081930702006914416341962702056137870060851374364722335708797353321272545533715001551790519884961204391683304828659981475509478075298147987751116854017461331131801265315581553700943395463792077692941591587378237890100936628144400046404032856274513130838467746948263302699669193480832184291918568980560869532883794041361127646702461143725652968782428147157092478656313005642777156349692542110393791880350203075579914919134433146755750276660589275357002291091585843661026238050040213784873613435330287129083241401825979246279210035254212639320184576948225020754514700988648645001444398818706680036993129598057233685219218991732900879630783201866210512527405414920346236951359875459666172571846051747566876043873567002417827740837438189784077909275555147356021059142361151578450128228193670980387861653223669476414836577941492653784074278082085665658710814664358122380128332797750558440181101113391888076002017954263889445555709548338015183522056064055492681722305003050199959410861178592082616829396770140715688409033533762249469320008877862542902817483422198670466954984133804567765650716284598272910560884609736640445755315805862058084776757645022673501512555531116165480586870562220946838723798603962180930656184895635218506536195874851001172907356641469998245036092189674657643889756466027973115676134992637653194534814338242098316018089809318461112001100839331608218907472698406921379746731195109283788963415286280056443417878130985483357046115606675558585479647317910924627757881597105859286850810856261388860691597503580824884879013627792503967862658904172945770204470508431062571500791119115559258620069094480385936472006114346864715511858828529846229825988321241353206869993987736930126587138704361030506354186347336225680275110640747505052856974780246300986389859394213791363422161353626959802285886862531763447345762508744608031320559614547894426241651679712974268687212190078483676457298703459100822486826978217849730288588439539765495590103651747242590005286368462463837445479651154471330297833754044376576823927947939862684218796486779370533886640082552005288567327483742912997294308470635010969419271580450945865628266584092489633297257692500816583493459129676333929588228075978449040755863868895440267727531521320086249665658079621834269285458417120311729916383202149461191776418400121034667096679150862251402489389305193645645895436681525949446312064570390497049405132712061330352963341506654480525551291415090426113443921493485727100607030201313538386422351405156351516719403502730166752449815399004405081842654718037840776695459954820149404689708813217162774473037566484308386370275335657381414785444781129556735868205968182370668079179090598455152592361844233816735083909369071869820645679056162064124796611583500698837907937838832111690803814307837095207716342032417763693265164413033038072271305681958087621630953730643940958538442983803054926891789560300817549993069491399100406659104370845078317245431663893031941524919220194539910746899447477836839095793784659324679238936909923782507440419218901733846677030620992435330321549755145268284121572229854946823865135882627865570281829836580427718734655178204316174272927464762896939789984937419733403692076299074590010904068883630383802373907547917719583425623162823196986822210939858516660737708854067103124335959605207885980879041466163710524549375725664029474808646889841087703210630011998687748511693054286860805519086880079011793992747320699181756590281873070592081695766537022520979809434023598819620004039756406128735571936956323022630133147941467443955286671640989383474407063823074210501281870515389934335267042019464053875746766590024277425383155216397481855583603105648627340554066040686168642645050743082711784638468056922988795499152460058132455200693797386365758223611009563951879760920898623610864042570158130097607624044162877995487496275297438343688517689664772140499330829177502920827075966901219981799958497278495921488005910676976952370274282410607117473310437240211941297067894359383998796449003055550509969016256291207110970813187733609403927649986469683349652714376574003647367481434704997122403132394184604566836088446807401964890447053171772640339810770905959613600950918938160002296705853864222978686164979018985137692383110917532257112975171543038129580491115842653634730725790677943138653670166792878318349523174174230162191796595807896539173723977882690670766113246420688319499478340980125764371159227242592219491420072822330933153572565193843477677509034025473302107590178185860162488613923698457363903051881313586014801112514169790293547864428424669375781465930065474143014859577564461485075487935690014650777396238763356270576108839549100069791466813061810472109508002553973588357079684414016377597971529600889705369141823824297600862897573616530703734677741850455029514643110543963184806326744757184351912915813825623291692462305291006274098111029638890808306963282252257097516951036372974575578397386157168051406361695597476361176552880580297533964831933292329899700326756207128687099490572010237606678491533295346307733278686764043057647342281978342944792864142704094993882901114654133143164559067471711480018964114406405203216427232153776636714070370123905406622644262410487399781556521928060885989634488257201527856929922508326427884211325700765508910003069571182584011664088435078913563154546900297311045046628780798410855269065122069252066437225529410199322061972423262937555597728959750319768371534102718745390369100094237345544182326812446562963018396163800955571407223467326520755654303648004183732752023961502407036734391686143721042837856318193478059957864841062659815484904560579128576831273702811707832880297081151323761134708604618244448734343331878950938790279014698972108886144300253126036129398812084023252717474999076611817998973527427737698987895314605796211761136507342465128348561979455848611197802925247556496081707242486223927985861898908411928662845136313022706287769339767630141476329810543857234451252282152767017322008313866522779490268333999022937340593660748460925594114543277915814339332884595420263899588550988109473846031531779201298803900174388224261917087365044122829308059922154363038915562282396494411637310481257691403692730075995735184265722898595035990957957237411705090132783948662713953979845029591981347918789698799216696765952186439475716113868236433705393594633483934644348838997493820746415102677242678228066865652977758518343620474762550587773535980505679308272558325403114418811562323047245465391438855656359810391809186005190610850418159562629620931124293456763899075243883039035453143577119196235532759604990643233541104189867718981061380732932240007316841916547660336954188549166272277577072781083760142096760098211298226557213039904859952998649792320579404765994187449393455125970649935189652813085928800798674007807340463122123689902889461828078646843307565239034024390217638374678361686083759930286954655818770861513785200554383813645816537037709550642325673076959868609763827537672549359928433224028950556210603653267297303512191175795777418622803659172479032102139464778186361228711743379150126686036578089427170372363375704388793237694869083383898202684548940620432776931521148748258110726054162890667402764145952663143985020876074592597518365890979163990495970621026199977018037060854674827908116205287710871064785686744456831734492552414268282351031902557633921312120217697051054428028636566613513985739033303784204129480328321374477208519071204474864748223557057725057261879671824307864149835477501666674705209551426719284046907284570926758952245139436401956012834229648952489191688985409745794014256487475034403370488710467818797956745557550121272029512048908389255404529245820210954946063326602326270021058800438730214899310711891331696249956488736278663972341567364525825440519826125008131694647697139950692113378480637504256874674509653304675640822265522170614854166002286616285243970812387382357405816732244794056817329966847786130995931648514704445143148297256546371431906012805642291705562044991321258818738567582006104879588318973178212528301164072196209584270187817571830594474272860203327395558246424565700534310765970412095216144448771612156033427135302512102373302863512355624926479596879304598235951186251124431720444484314751538548733914654111559088554504475871785354696840066405872060264087478255094699179975774558542477235251236576436790028649188221567441948782287251260197907745477977884351283228238690396436884874466165253517263251686030242318984345679201475611032253169477630358846742183074271006346241801315550496128137841561461736856248159028871999071142635202152983150437466247713484496425662373707204391237883361926715199395166673762944502534658232836649237505986504047857985799857616005498605457732388323072749804745814358187040703344914735941259368615815095224393055889866251028848735104405958097362096915816867280607702548058188584373582031927656035632975873441543801704420674676247242490843836718776641951048521964477496874714376066679475499571584179867579659576547916059475316249485741850518941701645166479469223056924746135218686043377828703743385174814173126451037370497434069874782609377266046942365208942761874680887645608645289173710963238978887152609441424108293646034035132097383014154145262901826579325233578919347196788744570609443012149801096499762481315236045494585565298479330050881210856068371830392342928771484018061695138288773206036098364189495685057879336821935562453387132733279086692105090124400287302017434142981786874588425095545385889747872296940095252627034718943045035355787441002112453696458002058387713232184290840024342297071348440693026448231927804467733251064334516142600139897900361133134352880963867210010238138431550970060401860009065641724632102378930278237524325482003198186268955248437428994525896657167041248769019056593911902693264668680268065143247728108924397424639672619553590126455861275683125793554523457340101999065525137813588108619360681575216081861312204190232219047294245534799975629248986933513987831798942894152457981410335574214626471042281449834191090142904055427430055670962834884766515460704193798263370044980245301189555240510299504715269362228805064651685440586599652069054336848075297613457791905596397140208249883784029702668011036350905343803401958669771698039474194784494798632928494480233823137011148533705708775602640836350345205282848802396041824727461333963662986252541033959172501246096385807883293612656763137757913724501152296773809525695969771415732454777013316186617838191153989145740397024003888747764579285705934217428927529057046968938548700115129669041568323694534849079668106493634309185191886782195239464229772788847312342342733021657401801902626882245407725251433042035752945495672885487409942461423491258236074896201359980032323406572320714814883439394065211834527789717629965111327398294372715761415049062048724227840608707149074648982872446471402079609618122659832033462507437238531096983630640772323870131334757608440845425585662399475768661444763783013136706823246139125378069064304185523987054651315208691320449330813263554393706969830227615176678638462579931553896745675134809677661803771635261540925556227024195174535206706703745811722653272260062540982315331452955578293388749738027019168187086584449932248788140171049834127802536720764097068228496773565449850064677140632496717911723687359865191978924694824202617583947902316784703615453122562871643437522045999368196635582927947837319629047481885371428777763001105623112783085887559344236013487641623382981288853775303799322443282810444393928249487872844629462682770719194114898637022925621986205090433275198009900957591054323984794528238500440857057260057495000422341452894563821668461097857649851987305091112230608787801921296976022162764186589168265126024142704703029213864733221573670019966179414147847406159201588817477502042410103955414014113224659635110347650064380483012314648771443563138918788659328368485852293338641426370648648866382477626163237336281656600668962407881274965567195619559272013449985099531495681274881625746900195178018259090789368859272847452098601201562630121454214095635978124058659288383512873817447165466045937706546343186205760838425848108576867425211100862861775905345198683245234156822257180085738980838640650223939093038410399051819863751979941206283404691562907136587360398524930204141175944421943049332120552644295203466577841476222813918573449990750784476105437726092999332263203480466741882868057941597326071330821258415241264955840576136071960445135149068259775521418853086053075767673033545579004571505030085521797191170703599432140908858192165075279298145830058415145309447990213927343781099611036951586591482938609423414695032527180822408107184774941966671355593463365883415222763732033631766274115445982340581141127833891157211705488174245547156432606443405420709845156863071036644435025639080057065819069944962864086037641276982657006317265116529279665846847397588029806187599725230530952273772547411972402318734346324418875103099035790423225952261974466963575563832542022576846900510159126779593473345918720671176413794659252159976852637944037589852977494219125917352801251015226262626003194747631725045570526657233990631622232006330100806079861431044240653682400642643116295130801329431483127750576548203572392629401082177708849828204619505619983799471740864242997555257657199822601988395630217231541745750534828300523619799581838008633347822950006086459940511235497182115936481370912307641669613838317458068128516882320500472982107814954399125395763222802749658915559720463189774650121811358787380838006879003754108558953073866815747151268805247034458045028502180194796322053120767155590073996534784879857612208266144520290945458349580954157203010867082361917791555612191154524796788285811632073769898591884270445015794877719687981926523812053274051419914170210777776945675394823172794941359107687191046551956586935408957396383302077624559614302413460382818070683012220003452584836004246846379520650778955541710529022441968799625378257280088982835553915243879440216374841600748685804192524008778356232852401515941460356675510432985131754010017307865394478683001083443985123392070519905621175779560694548445725519434222231825680698111338223964723022796726649833336151292476542424821403846695100856666397713499640388383576382380694615334492236290357546471566406546884461126626937606124273533906014165005904060235201863645805953909459297967649016597860883828595540872937805851115533128002755703648623895971805219282718023753977798439910800740793650851490077800178315656070905397560054256485440567554983278966909189925958860024157947549390818715496946275573867199626622005865695201905946395224147975058795469562176778893173364350872054115760930643732132571911642047797910625033671893533339381696768663719416279102932104497054728658451180454892039995325051183397187845238497912843348699508880911944422678299556397903923522248825304200065257202947813047141665667556678457953081286504460472485041644274790417190906791557585819168455064899048952526804488281794993702566766034532264850219009192014219039718297282553226179818954522706534711536026399075776683956996865476540013474552154196790002882143996883400143717160760366831172837310059515824215325914062287886462143284142854775961142422107031515678207256557286738883239795496267567101806054129821221194255963474372285360396948791881400174853098591625338709462699949080049277439122449338087147293487296966653607050823293145991465993149549802243686185849968106423305299430588670209938845978987510683597574017461100349468291543651376352096319585931063902525099559694547484308799976647209725360945248309051941432323921679969657054291194366128105420680612932275551747177411585793280372453608101400870602482220077707322777071684116867438966365391026447738399490318251438019673498835578764088324714828114560799762290438886705049954326400586542782302157200168356487796931189575399678274832218452728623369199619500915852672733469779581897997986634961597123069442552014846130785914660551996955175651999108562120208191789599752168124621765595576565683093439979273825214782300173549121864205857197795532566061092309289634709093629123073261569850013419747866285860839611319876586305663352281934555176807192114915408331995842347819220257180947887269883268242158995176244422813613320218402564502997353121843412041188383665406887482319503222275748518506474499440719134088447301854105568719277191121996964797388799441662455181780423577165836596410598376010642187568365777180530238171365220591092704530703162584954883801725293966277654707979652129097722241094188400075264570966882429312325985861252541203014549159132771397705731498541243435790979028448928037003239763672876571157848211315847156455160166219846033454033250863524880123205114733258287876048567294276432394052606120369032718710260330318804286623382513781065289610432596896098817606958415332098130180892899649853098202147879932946629548640286448825668650506845429448825479760660786513665503171420825034940459394124198522697049391549754337710070040480582131103652164689770717365611036839233884457806571060398517855033505028008247825444415979360182248676012858664804867070614149411088958702027641745868354535043246983633907214924955024261334886190323068326497071240765959100811926648918351991900154402547340315936040548648769018266070334273118056066127356975326234170248128152661343518212999502014122815704068195343794954813294312998311413796486691768029199820412718754859235589341106193226728885919018479411907826281687713624263526542140043392120107464841739208335599972257247032372365238882677183557920481400479802865806498702778036429441006958147736563839155801620493384372564739845939797401340632340522089303726658406810579168211366478316210166852959345437552969646459461379042500996383566443282909048452490675530167854835345931968849053637079800277150921654119179638470645516481186902455571206530035312788435427390988925292815861671238777185572319869027672428312622162755828629636105481535996757360995393011556160863737289052385627168502208765273896328586663474351591501478272952146852758847652148875162148819882026034326590516231694165489808966423208079307207215728063087788376122574468686793735188347033880151607342830384921209249661169098187984516379826645157127625909840024775595406175665877403441843420483206721699598134313842863143699566571183762516167003055284605671337338108178273340854692320977184786924250239102634919588130012877440329616110159650489755373253382234134615749218865748317226164454993808680023143700941428555143924413368939815508195941445749990972259427559755936282267950006108554066572842882073037231766460144842139693007897379902634104572714080255860215523258838055759554307415662673578826063523113448133561336542498763855064933437821174148146142549624397709449415150445437106420200632312003022288872001792156303185865514194925976293090797145662564051592706645901214612443507876895579460413105101589656615757188570044762266728023270386624182268962836106439659357613077776637795904538827627339752784915282198392206947920484331729184217631327547976534181013660907286496990292450021611511426698524990993520152774771182356444488392658894525548516962198801879500038906847426567559614564765219468633006301809638477324441925834804295438962613918275979075083654901953697820025603622295579959250849163167040654052088566547478958924486773743487123577462758328380644383975994147058024107334607965555298860275004501809821147919539536458768851410638508980254728234627493119490029836882014830052385219318716349065345398488605816130605431991129898026071870898993343039500559067132842497717047339156716860375506527954495102516507712689596433952875536529464602557625635590262811316686033654497735993114801695710488146027413607935095609222410648513804482790618320520057866170590106885400840878147099107473075440486144631765333879686448138000213649272969678537277168530778584273970917880221252866043773799095208286107953649924016578202757024657224332272307823139131604004638388147646217255039505167930629223007784896492369744977335477406671529393478686698203731199864091297191521365833282037699576727069069614162327791982367725522888648925353834440874282208853077062621312455350234554451609563711593105264848777637435360108212704632364545948127163534168041994634601699756207246938589910239851567285841082961420417860267874234612259767119717876122321648818724848307014519184920525568853299015682373042930903474645775052521286469466038235567171792259512958066415578424125373928292405098846887115918555854170114561984618157810296800461131238932810420544346475715925567673548279871353900556175763974563677492673318414983588430430016264967743806858106649282417697521548057853711276029488757085109151501614779180945859313729248664266560326895995721131918572888220190769635874726792095736311420938955990549187834831558532204725719070281996001746346763053408821800661145835030316025558974021248366575295940874003610010720468821848835448810582740783544333290065804206482544754976222966978353460903517202546998562546707788085782615741574066603444786853920083576316618362679230459780456100991775676514215695188704967623334126767197695020511015616403285170788169007253733132578055235872326250559872220438407844055637136177456438884494232647239428076842136688953758304900114375405898457055751717648191522714271481925908855298599368342901393931990996296238618309353954774304619355122658779732310938191411955111340966204601339078722184459725667225823224526785718587696343218535573999818942050076321697882333463848209356131960013345309187441077717331009140309507186367820973807491168424325999883687587481758410941224096865781373638796167009234893265737049578781112871916011866707269090814721312812610061634629566452288435537076109568080006541721693350151839670316378948398749194426885988580134661475980487209318107937874354260430630191426731657188208547753815959623528736243998188019661459209788919917655878111332034716150856225458271616659372054446126445795439258609172007993379165360498850937952109178332694323232513731673784770967893883421928623853842339025980350412429073897535648042812618484463855275185784110715074530184166225437704150220112173739490752823423997476181181503866330158141823223159348146663200153331268894778974627253260072476779391579375292108279974665146224558306187176969390425204529834065485033842777804309678984907421995234851203557147184339061892713593076636407216865783172664255771788303112564995075668270659812194301023964794921910675532134359198408612460293921969321223962940538206610975754288037950945459034999034546540418473983944580856906664269074641881950324553240005489959179359170813537668992973304431574626615072450297246412641363649067400590039922539541451287382218565531569750958165815310565012015272580968434093096132951916251900466727557389751058572601921547180186108982611372263082058937395341591776004546379525129475200017724473128288890554702070965410189020427833808261186411855155789137846795829353868221726216316206911443711487166938708069069857480558054134673530381651284351632066645039280441223692619749577240568841331071239009503218232064169837578740577879436605837167324436033571989727111402892161562656196271402477910394968981718121098320294896411386538774298241624654861684627260967496669491393120525070290116995805045420693581687998822501694145497380912178548636459991195255762052507989020277127020511739190251393936033705318734678831146832330090160252438524682377263129504952667523327604167911931669121189890970604235440953610055984676613644344477485391586818049988711220550266775146360397691931216228662273581214363702316640138593517327938755796788366910813921756903005065114791345741515954518194184921695834894085968643912163363103179009668495856074426739579194166100948767790238725206413314518527262828517906432556043875280539312359658403899141613862436034545112238682669794777068216001748830405347064616131887625226135401395017018248517880389719607475700806203831041718981391408920046256214234143869129191783117206942670631726400135953433074009037031770541813799810336671451854207644189240727296374134291390722980157988187806379823957540696037012436688729369672428911560152873115796445816575715080863656213581822328757153362487571216940365994347615924128716611014454911979896797835785441430330962939584097095496181623613178149520561971249242361415562530849101765831422397504933751275089871606433056509731454853675013612274091846396645290931250617955834803495771807627633548329933509608390174956295393876615755961452719879510886851485243288009274498309331544619010793224871938328265190960613247478187568654084331734244718326130837080152723556727148796307273943760498382542417179827552856509276085837542857567859849963829026220892409652240149082960780033488122056630886004217013888068823495158264095171494293263273708869996685204427024152226734162034002393604608678589345098801481827061081206599199777800927817057227915580856050440253904393743361562894197045872138493159263088785858615243380239948798381034963492852086333729618383910998560967052325709574147712326065319660712033338409909664095815308557138720536978368926359847674444277063113717826048033693076233740876701405432844838438418690503747485779010733916455688370629367324701005410042973820316177640107486166216513830423287307562199601043767630843601660830062965963274506318723387209346727458703420724588498431928000630278034586720155748460144007843711524341335166429406365063369508123337891932590988760228330111570807625949177733791046292439881063940918709492246381078509441835927313093409075365250810091170595005672388737566882423397045394523064702733611344517929447070470352396253236226847949827453280276539377338595482527427185913160077615877154998578503017243508632117441881986736587138743741719227458336021833624338198557868968321454270872801235322365555372801095104639030546003616228644136728737574154236872445922131357136168332043691261075099016916330767337669335808822068111901319576534554845638174713001767409344106620414046124978951722086242880910533124452224393216618090268317672284456666679845023257981504109000157528812598340064345206740965900402828299232911067580070998422259691399650573166392485066997047232973093596920044198910545143832010452575660264311515598802827139831453915962537813115648038463150633705273493606105116533788647574145864696585693449946796641805922904565535463723764385033356308762467006360318886827983725766787257824991570396163178593243061728539398538982497868476919698108399864410554623590516974449991976316754655674037074351099880870268023972927857154224584360666676491801428104700376436709325314134937272343443131568036407155261987347867017387665527097544500259527959514980760757341448569397070325740398987061882237050261952549805851053358257053390478097961271648833329269755249502459796427883775156660602866263980983399033800649777520824313541114490590914235781300851180120042737258607864817670474099585437142036279987617021986809859372772995918463562506718888434836637379480915762935348797873848656547507384669019219302724067825153000251132861069510684544031782406206914327049275716603553499492043113952158044788646508516863559445252371488696791255708494176597712268939816870558949229572716111784242742000563411334796167982059182325441427700789719518621592501757763250302693791867682608645341370828439120371999698736915205220930898936362226121628539982982236337520535584288751452118184785238279231486329505828550568615971808094295359466070350343128656615892933142743904554695604555282961579417311824831653927400556427226331487303450792457012042432493661273063147306106317441689284776084378568672034515857198929587472278713505859935497894552062473056524329850793684016841588569652294820219523630440442145346300743366211194035828210252601695451401735219015929210282803232118477110061382740304756261221290069439115345024387970934758263699187032279740801081153872548117541795551904589326128463611691163331484389311242465383981692710172573932999298605452057007296741916939179748199694425823289907616445755108119686794642138317780658700718638314272207657832352094090989728438923149089642780657484435810993050573634194429492263839553362632167019020720164879685445401050323760295773873952288022240826515400423520896514488443735026848904956309507588601474765157165848441059383520323970150647547129863824466998647462097157045579783190756262845957049285233470946038260735064535827717626442064147097037770543247974215061839932344839019863966911926493027493297728488245563245242731050909513185921844154770898214453732839383767666052156669620143079822146537694811026483041724654224693178409368119798971475733386350093716428399160710601888234838830015975780612542543785280343061696760564235195455009745103600934098396922680036619286715046942005297969649145118674593449625068522303670787865965252991728025386363248530657515133533646896101073632329811640437101109993909841623186414868047025046077449199797261788293494917454197322737399319018656322267514544630568279136811824588464330975302653755902670057936089709293070958385563132687833620957960850840708023042411954322152516102772395002574010181732220984334269167376356107703794089516460962453757389275485389983926276971190580990152158194590666592640133492748071662543924454516044867446466269130563555915157465175035307675901520993000655764462632618677968812175999455034937100043523687281061153382582265517984906256429096660684124747363859430289835878084583015152337498530885489547071759541117965010202255383243864061382928410810862305514747869241498816549407181298191743671576805449043040527723374753055132155666081952595606475927815016534832558711281332919947282654320194659976986133675869719083376260276677318140025129068709853027811925815354311834681661515587106545077126333901858602863491738607669076418132286942415098628621651930348913254133430160934947224323241279865252056045631582811487226968086327370938179560982903233624474253172433677961658425434078647811878090281602577352122369425054715677851375792599677180174146761196117124826238593645855622881899904388161013402673382693611805802674972874064841959336934855380981343894877582981011785229856527094746414009412307553844450201476536267799817087911393700897484689011830181575117635844825137990151120999089265024761418847887876319897835514305780845265662464788338455083516683283322682372263298206876391946059122120479034407283754268262907135024646884145211127129056802038074261110280978213437534957758740680767896537015443669395970869252672477237298139435056684701687655403530497158377738259143059989335954125882351318769337188697241048097882179464400076165237705075322448227558384955729352975735893624604968622434724018373182184737711103779903080449509676748747464206868825823703986481065886115659901816874623872198057283544777327968321290901955372118128683661016922738859181283728261006010842857058721401376639743346634074898559061908638914782095305084786274300939228004343293516267849898928502813018173059066037657729884994244599431954559116149535430889824376068651121679819136999019527540361223707265999673122904846154497494560186865120742038356759249321610024103299607816254154002936524284851399980538920928312886616818000069244933096211371766129351997839848358636181765919853647180810501536976033759039522902036958492154345382473701151990062697120992557950527562054194481204173003890742582680157121649980602637442107035416674394745263232578460503718089359456309310322603391280690998465890763246945633514921253355418474662468075433542247243047768103028596630264060649007337369153195770588569645512040854343274129687914811901074008452483724219313166054361346600926764846276865169998361675682695710136466087551715399155816209175100606086490073289247458824649082269336757032238422463612506757562681798826831046155462755335413574434950975821086212535293186778990410070295001384760067732545864557325884904819792918997829582375857368252682506343400803338011157523018693229462416179445100805659716217575213776113226560644803616144020744088600748418573547543086749522419535301541425619733367950171839124603644572199568289045617425056747825035748676030593668378280516571222449052730363467940619074708811594392029048190725088223858119795572133159972940196244404705595515320750082055385321503083667262811935897872008044241835545965445410499102122970715543965424753065095735568259774550839949905714898085119283870244638607661880264683773776022474538121539655595139760334712699539007984400653955065411118193527842963202699676346776120972024512663788303693456554300102726381214466285632854597883830094392323624225342677763654098151678107146086187353347955112079549907308078699993091738817721335713879080118972920529587917824978979276478966533100092682488879118317885093516769352821054587743245508054115340886076399236958838310428646749568681187743923780017184378471298365895392501106055016097887944437863246538634251988486860510273053300879829980040790201896911173117199881386731342181898113442034281044428886542343140952829585900224229386156696801597603798106966896470151303187039491150575934481839542768862905496460418058288135172040748684207908210384789194821882250024964970906389668820012940921051128770769931134462400017416541243778117558085960816450443047918177513089184267082791269111624213346623342187063881496801497367719482377371938632552894529020658823914701076860207667471053187586016949860531219266699404553474792018213192601582958360429322713231271311570234648405050345080797026663019891502726633248167339696600761524220981773085734337079686468342316066441215564585348008901656857775168780715876571911981574464461251568300251342396701655140614562997835437608640494709672049971999207728956382660584874836310553129222203273421211367551248594296337493510462389033657749430735665780717731686758494146639320140970930264417271030278225811587467277086951154019190589318751874414730384670746830450453421553725511843703729791177645198731722235473382979683690309318008547748327102801995802944365881318905604253864794157747158513924648826936544605535699752057127126224452763413092477502268642014278728545898317777480277187309472162025696549284746087386018447391219549991667270297342120295858958630423330639899871806557025000946376356473016214677557435731099000713732496826247873458220319397417252184485179122730269432699293568502873708088433730969259010144363605829092505383222032940204040566866216417467302253483225133288293426545652002722517445229793242252972382204303838310287865847539449755320106799738143939851514453882936760917195224380230844542520696726818785460646357073375480326884624650283606592742782408161047956142209832656281527863116910982290418669016053413918944765536663604818095070200069974465308142321767561419525219175778784569160666791548477682373664233035967009588074322971345580202561717985269293262036008176000693474901669641480314211593592141066148831433941727578254774135272382859829012613368816537987008028913450111900811244495661290444082684392917591312462551320919130099295250062949542282713786127702415729489790679481062372975253998388964430985669086274465949978693391797141270209573193664637689854564782684117623369883003943618479461413803734421418548384482396597783938753135620876208265274002234733026985543864643640237335624650230189862381511759339789194311560327954118731538574384028172746439891124269623798219820320982028566061391320600014724703205712024060766433625228112002278939419420210414611156965606466105675347977655762537483818503499056458421492524700317458175614975233997327334545993105634169081478138388051407375803142665342486900835881254780607474342523030811095873410695079843559028161854821618500812643693134366823842016270764320955171648569137217568129205370124409812849757834590872106004296535438763816258023216900994816096421864796540570866058930252953881690031719097392285342205548978806760317711610777802260123229980807241417393952807323956550822501132992055495208572346507996616772014311751869689479749039101947102922433512563409150325718746279209047618591651019090707001588216243725809049430390529458340171370783302624123280086783223338467016054900488041794782236810795021486772316997174316799804415912443135601325689311529927976493075709701486675648863993392516084759519908290542124559357093727463408277038808657136549086921920739024157270446157969155115400584067024797570572899004213797467419534184271266446342106863188802467736032768156741757926672555570431995907672796779792400465132556580445009711378655729679883144327873915194931060590601483062112373762934891675684287728273896246680319481543569879504983479389179260914802654915178023970689265986344075419807386425370069004889898417352177150922079311499167374709096040487765555416045755018873710489168786380510879925523866280260770239508361636843936189482107844111017227915693149517676710424471941061180390918322345173887710697989048512039151781100535838463498813257773470739105524603365898678653297598617195066180341601926902391227880620308485303597816267318438289740484604491876345519684471192076186072475493428339907993295798497470665038341325655008493159427858920992506748564953764662820417806457849820021522052296277834857228235347935849422788610580466763306093604018405383164645727145511571062075995892346978586865438194216873893086995371956583416767035528587961161781513422993150212156265596607242561532875585894369393293005256270946885427346638418713043057809912467450756907769953700392586371547056957172064194323400301789188247190596828515824432863426083179795999948407291240848899527679165401519448926176467856178645265125035485005165124065908426406054468525427103474771449270343826528292524150578727063101163045737362393740889424653141483356879626374800842955681649230499617139363381556414772977537864797301117110738140828717016239696435349236450534277995078538399854440852526625049624854754876064706004924414924384493274758618503499667515259372591515820334066723159637647820974450784333217722118845051517008829327844769528956463079201568783659740542458942719014255123798525610807044388025703015529260092785074071245567486214706422950968240807671659418405341223340032941123238839935565680341790454187418243935012070743306076675747175824267675642462463655335895438683686048828663930911650813892238055924793921125826403771912830234969986036611505489262089982153412623443832314048617594876484648360732631919228588204353484477724007558456584369580361139953425250927896809660493096354617568779215304627602289314361668646301217211698412634239168194467212723684210712715988994721856122279542206688220776002414588026072592495867705118558752906672021465294679541256701220388923998994639612785539832086969240818177277023843043658991630161135776823829864797191878294758567066119933887315681424859201174058746772619983475406103589111462423447403955390875169064727775286439582724036583149745456997448659093269300389181679514782477133514017320359801217354019794250133970474683972667496875159868579604847102436244465007632878490519466919174346096497920888659102938825445916352581458878608960434332833363507005133110603866637519386310470443010262042316884127503524029375781211367189141289238580307338841285690203812527697692872515517158342298549079912088173973691945497112979660884044814923942065409657172971129906376793468371672878284446420392739262546046897747902118371749651013669853022220221692001740574999672854281903463088271033563073165011159208376247455284569399712314454578470482520837207418286795884813195884363846336023091573774311843664498438751116076565181106462138511793074819929387667955917463109327734746368270585614463604502553412453782730271661910782955871551523876737519143855610871301625947476101802670572640114906622644830898837108681258635567571154535979038150213824369227235302030995711361551081256637690463798983220196012280609246610764056116829123461301791200393754319915969258383187411485641150900668920068639193960866436343358835032036136572250489224487337198166361505014415663105482282005936350397183115012925084682714926835382061849134239932340287364955836528084004002797640612947269555673852493657977591255093121099238891416129314171369972676292523273863309273905026474553790811189600741022130685100235221554951967930324661521694786969086846974304986029789534468479077986718344370681782645615535152615276631608095293789019388277160738657550145290851185244974408366358356863626960966784968645898170501140942124966993687647342184560735123467456455434176143411706423468763972950802916387388374043130593758020029442008341916121616952723601468633376532951731599773373524865495133231529951948783245576968087549765624315975918820654351232136010068671107699812718291306452865951796153728079003105699055603879367273016491246589998151684128984813610469955825699105487249154446137746701372970283740799481892166570789039096920495672019561155211280488751144559414550129362842565723411834861628436826043924250045229855517050001157342514502191511710214621081083408821658393720279862793708119527339980430271010802317555709037866435059357801647135474929139898756904845347926774113769999232320709731463840850353784412397232668733545219665845941976076910275197752388258365369271858368194733522813116719689700003264543081114846306774572450355756015595325476652206839557070936451669647200204105602211989776945257713061259242910898555037783886509356993528053622314843316662039735792798302212695199440328706920525066768864344886950891016647778348455081009128821929533351409214483471186381179290853380034533437485017770032946968153394496791163358649050503386900217552552366343754418006084850849919838376153100201534066823214399701716189776600737846819968424348396962767995141924402818395552499926609163417694418964093940410435568401434056429394301436521499330629035897396405777066285162021145778301620680354573109913752769140017434125713971362630502293981158113206505417780111249504313279337456917133023542057544425097531896717189893964212105183284366194267985658811096697849701483418685493716130652691289113174478063700290979425497112538957888737952872570266577913889827290986790573578460238078328946490018902180335481974679275911368988491338895696219523376789068449381686408359065521701084361242791421371188554271128985811777905504448739819438571574300055063306174944680412035696852433139107901973656214460023712600196344094604178774747730241583196626140213101287562277054925942059423693511124348032918090857596451938847027646366115310235403333435890937173866805925919126878534834185430996238563762858896054586655098153829649775408335304253703755829197012417412100221794773308357704970387426005776284327982213444652654406433922272996842867692471886754568662649182940340910516053231611869502253178147474208591817249112927909026198130941317833527080952558404502604438097814188253580318501236796959559562748611647630515600480595440976027183936633527555534775784975918023781001713216701283472051661113068257548515287207428709181190841394336696510434017214875904174853969681468027407680016073031927505758736273024399990969519223070782290927034861747223184300741384584873629138459621057907993916936887812747157502238507380096776718632222049041289382484714174097774324011845931119946113519602577464825806408069339769386771503921843265059416627609432554115649795727251486718594847212630935654212263264318686077892367450966389010966931522422200709344608923657890827245575631445688210836230765453271969961681504063774878104226248625666586629931418479601236542153787768181938349024909899777057538747640117927324992053930370411851999073719285983125209619322646803423643622837677839654722240264691507904232036770922766235543892474583488069694055412825235177729552773292116808355984117708479629812449847725729953033774173235192826070116948243912423269289198496882218284734489591099610906754597343909749956184015397319047781821269609245376636952503806525996966862651744001630411586471289750557692866911056007701848216730465358521730410167326387809854525217453804027351724910412179450536999925706557138698455378634493968351067038148650543442293522341470590134447746860226558790746067745996501153879553981325108140327837090205029686477178094160348940068754906880418061662521010148962912692501284865831420718169716392887304830997604502736629764694031860840229666497223392862425290052756142573703459065179586911564268240500048683819850073905706954487288440508058127430677108137614866505209211296115874534180403840048658840026196949328286122725485343639264896749669115518597393749984969195859918174935750933454690632574068184036131693102412292693732341149859740168803042660587396205555419858796732020750025626598475284945176356111692932784486553199890977240386878392995009352758862363785153904479370882032981869749467453951601421660953042426252504926957129137457534717956240781395192018075484279938230372934086698666311800773445637514164965817831946643756976433767349929931922329765168010970250623727053714168850300415103374306786225873351013731469780186190473087629937048904589988692333759470763193325046289355034650591571062344538550957328824506209250356863415320959483533820386247252639570809813579876367096500735819591896138317041873441685328755163308180321871948864245115019577072833026471344769711912393696326886947643789972539844169219580982923036264270121640543270069815186648139651762317091846711350764095419683761996061879319286213945560586395010750038610688871711495694089804882499423174547380750727076170643759989647097303571840641395651423139647398139090048201775623221263603260527248627887501699568359221119279297280131878363117232455625775985945370552677846251577802171888840130166856580860524130800877126139406482275848282966050550968746332764726935312592407909715172724925204178928759062654976778356645190186813720203854924035463975760704750566315206015018952256910655588887743456109853330742073194161781664465967041852331341052574952902100657414112565843002619738244320569545426135882223287441387576584393272226308452142089210174385753369420842350830798988840502652090906716662420127137774946772616555408927100201991833344576995126821822405747507665565770791012119749673165226325898409162932583976612896488109645919247032660135603115927782448195099716419207291041670045857250310214727185425019962216705143110641539225106316861475967574826795551350981380624513302083894573734382665414156362390867706796209650161058029331037596100582281926633477194349873859809141235323526601447207300076136718702037542654888774529617444316386723534151762402706573465862638220690753294123970821631060465859669174255900250104709543210601835097020147096854173862623526463631923561868295512533087577540459792389272578914363671533432586992874993862986480214830977591154540080262145994494133257575303290859400052192720966837354068516936856651718429122725363019777563349906003607630340857258385630060314824901157200160229702695583805078413479162037212392433598754390119797225648199195687005454155535549939489618755864648037086614658117806605338239001139193360118704944669027548930176458619576257052717014872933303951552135287172627540071285687375544616944044776594030026267681752408147399523965314233847116332894726276894588080954310223201480063555089411061748212322396647525369587732016973478338251533067373020038081405690012888412531705498906301054892235965185765567352137380728435003259138364556944902470302640649119797639478657293722649663041008158313836364120735092185463038694446960400910937234641374654273456415608986517980401741531607218841317972681879528900147089067219539057870568683874426198162894106042977611787452569048005928434462521233524549492000519004083258188916790211418396768119356128024763726533517756752391669242077547102821569068752592986329505494605949815127783430819114167197349530817860563738364362131500996472961320251825236801781079542781396698017342648430544459632593361126333794098538923602939645513818020099370529991102013050389952076019968334663751522669002534102311764421399214770985662606719304904141098985164086196039695690544069002279427708462001643585559743005187683009379395261775009751655857056749020687135969377533334926150101278284025612721845544357935705907249790522487625852033443608326269487479015572216898006643198261583217246466929969539326031011097963212005118849339981530879700768449987225446123388225769606243662189788220400462837774816132347217245622494802400014014419850811940743148319346412314670241829801339880410366365635170775353525067332341931822344247158967410914794534414984424218505408341389705289653819834287793379926244813708636524932286634045091641700522372126554179212812293497737600396426738104507151975513316580165910828921826478722675152329894800345680042379640438167327114683402575773846084158336236642374405234560369516384330289607339017157779180540113492938899480786527539717228796372909249425275428737641811512708354439391147827960030604502152151121347504274560211576741102521713624189035052497125489672256023526583303308762373493740478854239424153892381381995798442623315325606487791317894194919606858442366103047383227120617450762849583538886022229050283334899106070901449383926524205715200051745681852003707319372066314703858611337322383173117549106809882590053166778477233379388206753870959423496129950735333240351376521368669194883586796699944797482879553267349007647181843078749381995618717986787403417341229216625200256434981691065326207662076232393351114172177627468263221908959860643143437585495889688878498589493170698102305011433734194592317675687025225662690033533125116593039837145726341991602766068982203760683247232655940016748664419788761892970540956697769574250847785111699177511420047760367423917001304874910314918171049698810829196914570120998831981764145906539443509192183411427168201360835685513073136576821535078467789266556458673727478411313347437283543449424140725965124668226453813229103488673773804690209718111602904938748474634554946921254810651079426726469108129865015599353318217722873128434956050731852444585369226239750515374439955327398638114506431913836979193320332189462913603413702743695253426471675775987135133766359766179017654091536213355139815912892473071334508250528826791333118546757260055018107147597046987572936157108453584808138494506339224207529873267205593510708373869418047955721998493749126748443209914667378267022127854926402971479983539932791274575676074780397805143953427984359996002521696091638662238644211681842229495762056228434674897797060703864718993193582983441393429470943620014388243518607788044237042395745142509781610692487627137447934430652404132969417165131238016595469151391443222684056032353497706108410231404129809950079510104446922303597258938404465393990934945881450468221822170266804516583148565178642836586068132879008125222185522497747518955295621463061306394372092697208779680618201756145363565528939561512906689049255021042510031029724287094285617486734632925109961337296937360075078956427385131465418998093924616242789840741251002104074350920789498026400141522673673189155523935215316553398787308062732840278628596952330704876664139732965075235422361670534823316962781731797634922013626080987916556855027811503370668555367398288446550779614337321549353996422503802557279838849601093646968529589495913946314152973019394891990043854006005134403751701561492298443194923913525832131102396639397814406770064307106899588976379112063300217792929046094180663741980981594706379769600319028281528506767450845864161578400543569022305459909648477536381841267367296900751047032358175793146782932147063430650339834104350831492179239330202383516329883532860405042753730678802676574667273692231762495981699728720294413628335032044963317649307593460619068121965148110579490681947121517862711025700807332336321605025838026212682068568076811109516999164193393863790693412493094356853687468808368237175692347429252897127732982669649459626654855918356315070869065199209890308564399996976150500101094396895537158494960770685164608459884202284715717200786104927889265579462108034608436051917389495573682662452687643245366601417942937606730470808117534059873550312872311063655001743047491548125418646516867393867502514033163725183594919655795080443942333100014861844340335347413880177403314532822672265257561426611266880758514960977804479661346087312136036568043732637654048413951028106822357541322774185475046799240941371098751325603306301607408075044471247455008135836799321138530516953066943515784843763148910591328517184239513901314630840853150699834438321365729586158106789559884461376270389346294716014320520324694136293983642293106090226833019641790095604747224695435274964435096407663791140619153892289878525879369617908037881381340557247152714075507351673075175636493685289555038826527017839665029754079046549187486398058465621039636299885631063762889855397739831230877501698516851937338412990264014356888873001422786954931952383557978720479239684697519173536281480047403848079249043545097798384762355877500973544229932190839751419134789380896517710326298713440826415188672702015158502517573873870027407986790361809494938154157321666569537580845696254511431296576595716920258770165701883404704742741245603702333670362008455702800733026694913970492652316219632465270777544820350460270031972791215294898950683125034974080579146378454428582642502391164441056594766930734266719414599712065182960216923453488465645533404163563629266334953103526336690610985827095657501455906549433373964733717097989340200996668056950221182175412674142954349304783740048438689319502346081309567003067055924102558124420075694599834944053970990703097588067246242548709568298487097081339219076112681982004569571774555271225707818760922259516242252889788784876693900361034618711577482360462642072787706881085260980886286812453137205414753847966959819381486450594788542490688805134341593641437143114875799529952362570832905331264720144879775092402698902649099854951638916090161167313227991682700291482983499120924630146008845556744300914017555196886974664906574274662014170258101521976939738829836580703990104222916327501753575575161143316519709283724102647817649720927918477497610088140789234648719007400632620430235016818044470592127510977947814084326250243546036301791893698022876132054562088996120255480678115903763925923102199768552012170309171601182700512931180943982241774967663655014156861594242265949320649955843354345656919762843916306657856788598273238925283515272342795750235557587354503598863023566550439337295380179660589632075158923253364637089042467678454825880798343406978224119860313876611378754032732955959297850826760852389619198101566820135712032426789954177583089649650341422086534133735064936624161835616543908227647071804652934324383004457820264990939661537505596252059644110491650184410693422553260033703552243389501738503749623237595511988187865846589786655503403997702340961014497557981545561698390470592002368297994995553963135321862450909527092157315729159731363690142061873138045472150782917998123510032645893515907942050222049067195317770149644398191602941273531803999994608376499449711200502593345362948020698362278555196340630488638088248058480350324357209810909542166292365806476170259564028428108915221545083880194971821363804037744300604202052385889161463209558681534425367572156945931955828079523272766327635249837005719016604016830132201360523673521796486539151630764637851058635253866076434404243723307185231745810052516908607222209685427529216752048224544201249277476671339228132717641768790052882171424749302724020287811138008883442351107156221137026352564183409715360013381022328542381195740823955837622728296476680660314097373888896649037995066580868029872895664392905002940462126243635814757495879726865977311830865660070403116861238410682086121164694219411287867442548570515058938582683915581861006856175157702106923318865645866282807844780233962859531410636226426595756148438771479803372250620834340236110858557098036377813456373636354437880483813995218075662630473334663138385654142942707980933892725148028264777640052895559509867708439506451401217721726999534524583488958128379155296695876659895201171630238668761806028091456739552794735752666177680201378268551148321741109788681550419771072512407760703880993990091137285918801239525911778832535602690932057050825589406816510108061416460989494140396983053630524316842101010677134265637669351183012571973609408881012452896315741935568964076072431673435592191817799989170782181275131676923821861421650194813790457607371066976985239108424143335120267593411646181562026426403711903408932794816947230612085977925998610201572897209369906785914783388909009722736243402511934000996323827444649267381794861293457920399453023761863322506158231738433944604760354419881772110686690887849307927315241325333877965395408089496814602426415862829552204744834275199420251179010471232104267465101939591716911080236129704832432060226436965744931702488994478657769594333481790165391040028888903798649340366682095790471649948356822736305238641082263695655582638386603122262856106455677853467343949520598036596439257444175966002426526606717621458690972700132288665612683707159686352207056202721944464905947407069283646746157076116835626399699058218407307622717460528804624037228285696266826287399385582285131877110108944077934356256948809291480741337188520342833376877691051342498111405295309282784608756537057977184991619361183147028203070456911049225952382202999049141297146743296522483849349742842564611919773880233432282828722688308929733877059978828754034868224199094736045866142628212292444396420222605731292349932186694278537013580529439978458168921267938645210826038209836106234692837427218980265390354624449737880435495475524100307965270567858934063257897465916536865876868968417851007607110728083674877281717690928647865454264761934371268946270483490393826181204601418550685430671280054295587838799391540425232486953634395093058026393012229126084847828391252094076590122569254845675126990427331905941419951407068600450979029214562945169580846596201134088654592432874248718951843824193357326995869612304561248010796497856803386258996361325706703611594392913714455684080043264756033464060117087570171693352345827213750960929711423928446581228398498220620049089037228653119785133565178656767628671964081805898242675701011140078481082908240268765780308811496270647026986932630590473678338079166883520197359214085552303690097005498674660288647786165613552453555916464116361053804164566856259686057864604829696116522193456779359517791784919248790812824654568216793932898670722946266873093660835481163912697014114106607020815567293774683978159415534946648912683164866024776643842311414775299279912657348911835286208508714852606209712780692862842973615835348251809912615169929454261399263049529974754383379990144996440276449969604019064036238511202805941516769841861039002090574669957154346576908370854499249595444583230760797393582962340390533869835541702066105726859777367556209080050899788169652034329845366635404595193048881481177080576566386716064352404818472959994168000637914546068673055773350033417037213834915717776776890750663655123806329612085928875655438299513498041483652957779348842974204082659679661145573754459560949361337735936972110176267325571215633287011728823499521896078029739890337647293210161107243206941559509607377155915650355639586917558005107677613125489157622757830036805481792420189587327241929833006445453418995369249864112633550745418073757733363226157926446287945879516713989069192117109815602841017754081601734861089716756328542048237906762229872855932645087245181534655324013066458444174011948055590402161258091370881167705650148424484282046001155723616299453759369504960313373654081401584178961476712163073128942931927206879421675705578123867401210274910381049690067503095144885480344083505834460662474220414959487379629743582181788570276347078698600453768375658232276592865389451353495957250834092118759460172416596681365393903446299308494937604954634067175120673348479166273925705092454033803306373237145671269049979336340399848026770171986796635395658068972801437559406534558299771151622009104611672314975027782327881087010054924524365284303696990962428453986032338909429254285214549973257708130693685039425652899957020253004166453591663325312475802586574081398017678566340700147746893811595601731496275190542443997235432883609071953805031057483059041895674070853314364773587414312203977173293326172614332174742836649367053655011288220765742455233129640248575263684856239856814768672780419332589724817092883435311103917481269834110136373238965943770678340107570397693370711534853688111335693246361597938368958509962441625881225201336629740998078285555662361376712737027605602696776465015650630531842494535216010137151118937601293877684706127169003080562406705574463656893231038488134341033758368451590057701346268091130960803704900084995198837581160932859941425063015080643718330652360391036768987218664946682986040014191737457394127725942439481574973153581771269681043910748391998193834978414303154119339962841342173415991612918408796328750099851137242290679615594918277043943106153769693481697698504938615256948228228816829499407213600895217049502986516908217229673433287638782698655947769043588575075270827467319779106571894267607754980317880207785913907585091848597728203834357315706138614301262947815409712365639209073132635106876051592622252177476395569489315038336749899668356299541832183389568153795558813095857204853287480243701058751242905572754480381980323886112363176874670294173771248803530620982087121874308823515661640883384750938144610593744432027461314802125279194526309594084024253173688815610463738896529826550687291075055629987492398675716648961558276114025453223137268925179734887351201974622210094686191376986136446902738730086379970961119745186622810961232804678616728316761547945300700805791639830109969196751084077958357620253186059233174552751918653095141856223362380314365097147168054839931219316289636134397847224541594725582290658418627900311686389287030565161796158363002007836218780077411854711312100097979337385680899438629185952037186493702505370892913775735327918752198046251712563704912526692495640972417187955305620485874515953501457734508510371518317253661362760225958888853388543699451458603084582951797254240176273467920470958125942738906558774471068071368433744513903039879165312866173662843493436358892590139757517148869277743672206060326712001851416602349883841181995864885389373937501824351590278806626928435220724982634224230060242627802889478374655620149654909163011356365525769584280748771282429802016509136550683841918724034090150111308850414803206644741289353889657394737787932413886055034135574874040765934809732856590322207746767364976547357503646054917951532221206898716523856880303957097199700608293719717822111641346800982652921206367430634406942759524851105971364024539658970470901265649543107265631037597878932275476318960369181346083454379275031040985537251491121697139116685227728184344702913641693675490261260099317535682719918708258472336501416143229538030067864425789365885945954275701423981039010031678542344587355730404806328169306056045025238580075903810759174877362686609312750466534631154835493982991162047682364757683253782351334860449054244875331301575180483040597191205091397460638388540292753684134229075584449974453630338473978723781277812794343997607137729490848991895341619185532234471115390160742056006390506304534867643363613628087836277568076268276078573003201154343825566976203622005322620570889089567117744155308046804951234381976643010580145281405894004258862854916568170423280758858296646649879515628269149988620340338981662933639977774171049482698092156322600710751474262586406125964283506750036746536613235879140176878743448707536531047613583902954057557153378094929810140560121267357633033801409380921231882845789490926290790203024754435573133430324920473452520205094097819833137136022236518464733697863839554699878526930422877342133070511805849320415609453523334912271488027547033297750665916793063410918145949754212338493547496624583323867640952934877017814806721779359721533727601450144100080386052648514508408321755271784318176736862468782210618232484379042368428007489278877958029271954567708826446970542612428120600392632964864307175020397635848859963517695141166773604485950977927212340361235834853615251947177920767123686758505886901657284615897547402140231686866898106518526470943789203087527677196120693141754096153535269319988722501519059456112948904139426253369294860207072338718989469287588489983884962855142901842306818765182881321290519598421700543139103702892982741495846378548148614895369456852595278502732833950750111205556683937933826714909565050294449731857317575696862744408374902882405003789805073597403070649234789103817801310778830865420186806553999180055249694908025243661791809755825668091502357623770123727222145718953189840785254800858007770766894796416303425634381735029566857620837694466302699426717135395011622489307504899592557073860751621934568421448845544001875686472768192272611409342064401036219140941353166968817213735450040358393136272452577038310472523212595295200417802912529930776733314458411151801515796049844980876421174711549330860867089469423225218021601872121696141966307470976555410870424063367774696456214144312829041895286404387433007061835569145069526683414557654178811412889286955414162412084640740187422875397640709710983721794613704162888175446705081117183066896047900760688561856323409453166331473306141672746568783216047754582224267575310317651662655992077965143524968997328398168553217211771924665050485739933078502691226313940630025317267538278722052362782416205320037057190079556648672578584567806819525565628675579114947271632833901459237373964226602256677121417791170916225661437069157731037066398456691267561639079767028776717169509392906210255226977724830162522587015937833204147699705728298727965399655138952637967408660088325491381917365466679658585824656859473532725019715396470737657702140895077793783720134401722950884288730559571529102322800078108840424576382749951165590199682394234339830832741426531892227855745717275543695856723845269583587271669567927455872806464723300908241066664054935363593022189086606477034803343664372210610672884625198018437194011117605440656624190062492154588609807064877770363258168946548595252761135596455999635562158842890094574440149456385565458379731597939255122623071899040060148768971428785958274027824211963958441100954118260042389681807447301850997220463434054342895880342011974342804843529499918312963248074491985180632940925665641493418942879454182771646219670072936698641772423215373126595797668508811722161954848041482330457782734919454083761340799603439798037777349326739881669871041670078658845749881000317435119844970866033977648878751816122788541457207676234050648073149917040708328313009625126591969781769132980760138838545784317503869176301198767956893022813863988916270459494045148753989865881517304757088575043846315198768683878543920917594297284864170863191367749980177014897619209762499624058964322410815086055932867567191349874084562644343188637607457983182793490278478601223750736244498087770044546747858792847492739330213944251277636458541216115830770916988420175746058751343684878141366291480502047535660713202778654106126771692284718968323838871434054025027208446694616393079254873567849180765858078329370086530302339979230119897928758551674497040481017605796233030285128359560683290154035715652212054645272483458583181940533494560281808134069159229527243079345632446706479379846162121371156052212498277642594714814906446393402535516020642019734823979370005729260534837518390401208575527566260849198506754629070668403345239273031403477626711912449109855206594655593440967980277307548478149829357868493618162928704198200249821306435906930428288771367179215921614197320718110106383558303615147435524688301331129916147153765855009582446208311559676316570884209989827533462369309861004240717018996774293063888892558239664000632111695923496789222993083773504890451294676325272942354029383282071075352976694691241098334051196221205951360460451102839138173438734700046455867934490020853491858478982227401170240061241623264341754805735508654970787439112751781808906880832914674369009647268741532744589157321149516319768946343244077400919398107853611852618136615332252369977739599032312229776486276065453012041196135841825153219027101605916833289699664828443675615659250413927775642863492685136983650513800348327918256448624632156257640955132253471524551784393010381249789918980725496398849141788963506513740611193991638482498309469850125858056898203756926733400256868474438073477648735695978793543193721253034234020423350367581275920117784858482426196186557025243248827630502791762559736074805263061817590975393431522791874067529670082538586665821529895041181460024673481068321880642905495928665981439367011087833674685425832937127172250191759881017448949599003789691504627662894719260860237849296293897881412606240495865900321302732749814578408551267354325426579826377265425870161869626994479361645351221071483048731706083903346188190849974954218015068080215021969622969349848621201942090145759804991950603099527696700663171927736601611497662584062787454023647037584619845866864609578846182740927405378674875477067570297420403794388919860424168112203875306693849186598267688724497097657319987874980880743295235634331210965325419718138334959210789849550420514698122409841139984325260886700025837322987036971622354050763526285131130724298892635949070785120420806216219981413019832916949310714378284621749649388813579422418803381968652992514342607790690317515629423050800867070290101970024709179950269293605447289140230576650445622831604098025629883963729188229684518669826717661489909264259697027413719861988681692896879249766327170109670525208864995881116982368228309356872652036798596598008355990266490517391390509804338300394246875236431779716542579198341554392602108287433643142009676942175860132190905312650066305223935811238508290051563837332576798931198611952112512582823679191114956659639311022957619056122002452856096074337140820369795550644761573931708582980251557780558720481276443289774622735832073917531120488565362596850483525933827316564238475348444517252688789220540228037501666268586703255291523144149780040047739932954423972603559667392951332735671965729888551507556749426014094697710774971320655130398603647950606969854391805662509403673077172572985729344626537117828113482632090244292422167157016913407742683614640037156479151787350970540692096591916802823033285109792529559662341142031565865966309769895142115163887296488027472004050642733040810471477629772575122247641062298871857751499244607362563116917418255023129387654080088450736085008243852439167619893523026423428545660049061989631582816082231344772502792187732190930372834757163099953609677957020870571766481241989006720278171704104729037923980775590205223260435513462144024676136866797287173836122945221315011893918255853074071410988381256324238838396265824637145970963290393483915094487768126410671644786145100307482611213010016843099952955723367564276444416301743980768288169901126025874974316727162850516177143229731484610104787677615853983951644643751189793140681097684760361069627540897852678988434405992953058433071076824265763996922851818929831572693043777874118634918314454714738403116413338586417444823602991779969190412137488507335340711769597601963545764762157385528019547137383925045303111688731380763302179380903926164894416199284128697988795612464775899793886949122908579195356963352215909759035195418783818407107415065942692972365967350291137896243109550069081810726013629843373643128674736282116802985731421945218653755435286578102274266887202336019840504183470539021735427880349515756213841653654296557505147301284646130874294877761537933527960607198416556912644051777800735236134298928726057846565997440767711380656894317463575119163725614896306539188405675940310791899136564273499140303453624066109134466667426863699950279559390025817829278760972576765241788763652253686907067112022608205394046724664631295031419806359320226631058276034126294344970143176767725880854323444037914282699162640820847661772281874131712241214837904841442692418001607739270827345714931866250512854248466687321018301756493430969682432162597744248421277749476890359274511627496321512290244196970170297549072890338820614736977129941730392077716670634380181280285191904372444852862739875326160170003707399864490290837050668407025191555266230922292040694194289571076267611596932748232861379835535260662023012903126650166181413583652760145779272207036024381397445671164411180971615037817192476081996249459183218173707549076353774133674344199652001086026968758307238458172241524739504083471965244665584719530054763630039174090192110972906366365695829573242570544179431656733397272274539879364945768988928011800648576686739188494821127029938937030793644159828431246452909354515406766018803969103049263708900944259449821467862517656944707559996251386021278618962390554494301382348279785453425435711830575956111492662082086772421685408448121173966437411120377185971045156235790427187159651606417705562667657012291011236564828676459854211687241766321653107153164627733703826538216962706167571256483943727411399459105005140285766185432795699376425915974986079534642537669408942895558765947613239995512736667885475746737318470781726479089349275334851592324515252950041517378099588335932552841823832229664403537559858433631278956606192588819406373584174208947382342965135421849793027137193543503493508195354377846932382825279392857766588816532266874414367884909904155178815900726002066390417339040096175066338789712838977338775164586493829267897491862636319220144871097446254344017173996644655269144279673599646929735625079559745450953988285529074514607500671587520516684289440745680367189319681225932310228130806831779193876500959311621740860735526873729735603755181714924730538036825502452053328137675169242908099746489021138780186776769009242569070004354805035221872853856015497251580644158822349182753621767795626763538955018530880213910014423591045141176754301709327745859047402089775365980044140244972107450260479924413461333582982665770970380327357055747552180599291208494955465939175882133163430015076425759027280279636992762578769419964429819921341909567320132456145292123883665820687140085725849768721596602244267846853963831000977882267551958209432497672631961702831073672153428516251828883859915192522430296970963102009276959950970132378429159816338391598696460408243718097938292700674079199509324939537258863275114323692119554211401015092248378245064935827082820468391144678504130767307028173507629411046040187164369671569920288780404424557244738719307593587774372294958359182554224124124633534336579105501570711796923889671937339278001467889416334385218460570661741311057831219637526662739090067630766633423862580156327157842065416324123769151113538165174799651660844098094076776475047352902794554741630028914889644675065422798734555600195528813423101224831440889003863461791807060079060620408618903623589495346796109892721718049167945094864112415910436951949813513362721776728986262200187520535843430765169073163260497192377242836732800218331236044063073055009918206258855662979200501391486672443558787018420534939901453889209471083105709947205583369614087403419716315688954505467172453684996839488590074785163071191893562969702312436355534445254865838352962099824909647235481947953840952417817013858890099748969688653858336383606827218924733836340777468419343185245788615402585085034221174314795468373217409540831552661202941466774798524253884054882031045495554998708577268404240299929777473224351198925380285609388706225505833352634597902420566632218422735910025770232239668209562986282500446267509161877104399630601570723902693730276625939368070278714372211955589589375089587555762895491936956091733664554746735522529143334147985983316638682581153241625022949495959014184080396267929641179407741447817287897467684885213799702811374195407884946775993913462867067516366757701345530771394628189070337372607310598453059058944737845182632980232868036715681842557089014399277597017766666627033040873417598117588653124713781882426652711210791945488315326804139644970882543967213274861243226645187219830701917246572230740399876368431763896055179056146571303767164482301545119429618422275746567048760602523307281280874402243050042083568532982802983973058465112110072707543782672355762370176771869711258836629760739094696732414947995146462272985261461037126768336613244193277569298897316804108822175165892418371144995091079748076504670564764351422195101496327148204295026896446186002289779365618647527633571938995446501748649075957785572667414619346665271846444010125778017113727575364333808117929413459056268979161040311349836485504067496306356194108036484970177542204219462242575025292144438433526018726414736513412439104344473652346309931946620270128515452384159553980810515535601156998700289731066051137708350080416154328287680008901514544440105635806190369507561179921346044336601123634486241967029972213033893572361358279719610781050004109488962776155843193282596219432758427295876188752220906407711854203676843841051670681267069678607780731104382772817646888715592970438076461132903852850408553839515696693800841971962444042018328965031096227425377659748567203226352538504203811797488934981475861055469696441658195933286540226680647310551205958112309127429422162254817626251962300857590686598420838441107360455828713569424833492500033307495163802143650545497059578624734097445395527478379308747030703042640301314119101285102627351405182688107313396378204770271597825887582769746093483032586718591907042943513068490306546371212037392919173904309018689290764015195104402471807107053797096955201573708692255087640254159638047478576472554842705416800922899303545428937177497185700303687340347181347801237470285644180148988164440391523650589890247643825303266279652952802260594280647520521051080518656140727986344617619110890285044727697591453652648294846853913388595910815310869273505958289278267828825716710454408587007949716997816847689115560545364169015890688387284229106525055070050276206789678829059009159838673901473728726801956546833504810455247748772446828067019350210130521972986010304890907846456942532677398198006607693896961175901283127746623834135008896027556984166050327190256977984501150963455222750119643237583868125055084983594060062009649775284909650525907957845314341474908578233372079456872820559101321955679720062607987279454647499916882243070448668485914902966690119557594676164297971630436242067627511201371129135663290986499397706342592433563952584422301786686770725043552943198518215015824849441399708831057360344031093453687137276752798629067176169122870225978658286519436454952869836472070047348205570724819690207725083668844753436519506947810975390757646325635155350163726565948514121516015116652633794637869766005078529002535033059450587726645294497737876609850877199846136232586116181473674777419402484655773269397379414220695063374339543228363008329773572927985170752732925799947886225760443903263089339787089650658205081108943701295168758206066627884236109922232195702537514605210664165394277636247217406234815512127912899514377638222095000091822194206123226384376297122095748124189285867594306609067921210766128701254004874853695400483421648782299809879641903208041396737042769011308542250713272473921932024909707227200405203549948801479753846771852413404013794154802658964707189909539160530966338778202804917328588262916813062711730979060800454653246183085996674218537812580073890713117614843711810737912448222812873958471948031409462007203379841932613779036686475986640933575294337904367307587113524187505050288310770463345336534188926030673967198751273278912596817936055617649652138622925893515021986265000860194264770068847450499225992463188950485179594164865699522210277090092917908486755211017245852636556540173672652227509796432572324660667585306164165077037691839209137822393956513135905040430904657585709684969368894630443238079606424563903799502658371962429110323666122991971020269762003972904800416676158062897831523379107839261880214241306123813855159087186756303876029491485184900072158630790589664506761537722073749443986498336541383759201489685476035494881461342015468304477037906189629247346019002277832389772726623778474965795429531137656269857264274710394462533438321983221783636242956631729784718357543660556062589066244914031003137142173032796538153957698986372326964663070291673310424212229852740201871352644580411652677888417775826323403872879372826114160458368100847155554419930018283351989396890231701058784176147932812828028134362093177866590510425151159763316689356032697637911196005154431166189634355284406688685679188949987193325034721853818310302863581675388216692584576512844954691533824007718497732525944982559312867382495127245825816245479643618842846889677734151491355457339018029628627149239594929738377595492679688609482974590174912066044502334147345107692702735990233465247254348104353894870662367958807312734558011706364809157118708888859863101537039218108619939847057946015522173110743821234822678801714220266706937449385057275089700330088722089922408127867667035821040169862822908843574131708818554473303409460960126248476060909091475716328828592852694328626118855571778788486650443723162930013796503472482535884339157216527965385301222673048163306458819253766228318895688443600208050131444215978896988384108130367933965901106605124962079794958851092608692650690365580497729726744269805918241997873811999317948230718786013349547418443693754650442572923764988889540105777894193937860671091314842497223526497593335521504243818094337637902898048623611600064109819382476685315821164166751164800318454846618255518752429385933771521669046172589731776939347592935826713598106155693509391336641806255642912193218492495614542712752710709007231823090995539416052182932157894158646477853279999948953791607934249799889723156276063574714450340174268789545170176439286242872459583728949468574535977923748232865941185824321238890234680949942236481377051844172834530979984371940414885582422515238134942078461505118433059303564647199999152177368308355381646702966951618351489429455029217337413771420334765408414366341825388152597332404641825390836721217060452293256394911853547878031624942818669859422547801251296216064203225674911612236039329575725069033225883573828518286804485422106888420315940120826596373459139199193885095190412168765835542310655449248753638807075489967731576209057238408708105163120881935007793359123889222615041888017150545253303342837130187517498543941524329720382458456349338212066769676441688850342938246741374606577921381806114732575486816481528583141197108909690313147105662530592037828533455856000432265079386820359367812285289070675432384425786959720559504084195639252047937284355031569223938826214089219453375912324488281889381975492560089539874977481572674005434805599229484342839756880044690508868846558435108648445090485794420117950113445215569081267441670770179141955120387420211644109490882913640176906001942096330182399892968324315393825647356889895739554592023199657026695490086749528530194559973505147941292425968845079107692983615632606523420286094896884104849095187079512490746201077719417936838420052103703842559728565441332277844677421649350360620635797767313007303918652339188943135997950633045538361796351843364640610351402234086933547277006538463403595452655517655944521135742458674315992866632900403122484775608396734349853591180148781106123074847401382813197224913400075358597363667836983667338137014554701983656904695721339678809219969320728429932639445785366823375788677800872767800044037219385809745863641869989845809936783918206501629940200166585072381775414653129805898517945367585774046211962276745176782741343087809577475877552081136325266415108213539159216742995523505053263935603838930206336140897300967854278696054857320777954401932432016373694400515447411482987257173586978640671806213729851073993411913283894894768579365267921828048644958967349003058691695075077639171664523139229740648217447793041303149425037869243318879558334602564613757929575034885057779036499704722885279528198320622761802825763733585310646260071285223934528238759409283721459134288960615872066283203960433507361740788050925081748930387750198671083502198569338466214633990217233510669594950287990466265122831629660969330133382330705445029862447599023137572201714506669853789065328138390690003780947822339156162658488595031916453736362886912409879087054346147552615159480995232711990111648255361217070071088922000142277745770856253217497929780482913117747784635609061847006946571210014195791029604269208114175115682090863840063871041098652347539167302808161569650416738302644720168973901571281987599055967317297249966299394866943469471085494869445483473879174481270920282891441650059354776098564405108944594991803352766256391805900262792660955355855161069564399905039494678905642435113149442229290519629915595554800431571928973209601236169515171188302465422995791713446470004689271857184906628417520183964419200732917832022741219475534351563751353133578251524212033906973545890634909486942768005154422805061910335205381548078743009839285382322856106474043375512242683375880189376429057985548025292893797153406580561155958368716117420428283563217270620984591695886745171437261210994994317421362968900859990718510947207535727469722766517296983823033723056150789899603272641336984328346622847805658530432214771337729433408714025261593377384780376977223259814643273598672193093712934034139571806022023159569603174360899677851874510119431018128806058507887225371037779332741443378049947352392485241866976281677594462872618373909239296159660031305478891527136064887377124181398051682244744124986017324515622803251989188874909470595873706504731989371241493125030851055291520498791827382718663801153083602360984753800828537115436262103060426503095855084409428361555455522066537952162169141544718730671701524390926233659973678684097824565821582500531688691829500747465873631678721436469118672902314863875333574584253001788329963760720498598851090626867579925806833196299315078451888828645646149199540161657924144035119490533385987078242249981365420861921023391397794344827040816752296296309560807117373026017915131795152748723944096574609742600243431147777117913436861849077629663562939113825018935516259450801993879263257248348461271824774209126893846071477310315334858232376523100169819011797572818293094266741534114776356002752550454836404025203151185125305892826162148585726272416038807127804249029045968575615930584590649574768049953005510423814995378844451838916387610352345226914160211005950509250755191934495268541764479805575485942421132498424905186285712266500380378791097146475739988005178580598370987391883425124328828246751149041097090946333752094042545047430985857086063639861218461642457625923265431536937694601546261465500006475878661769462538664111184586967276337531071969856931128351337238600114749598663236355238398341625181629138723988365596632724885815104411718204314770817382225543550908883584173634413605455995204723858414786034416313442008278983899495807813509750456623980324123971465017622692238732366648184715820669071146972008573154505271335012033349887836323245188496202437009710106948131390652437319381929844685073379676531433222308405429047587772645690740041924331076190724465638417597114705236504236781519911740514968132031646538372746943757932234143625667107296723570404592766799365097966379914609106677095768356520746191439381979867673189518326383541053538373368755737087750617383685021334845606926074005377793519121293640224328459579609584856394611948583318500510954832880228039339354179811628604131616428235437783438917507266251118166880352478022704996544840211842797408987068263143639964285942538818788418804871300433665856794136910606524656241935891201314114840054739070633144443679616289831480096243386347983945839161913783843993930262870102461292180354054945079546521768871917522897922491080636921349190351416323608819775766532867165227505001525253061470503624371262390813917730690452028514956152730005801629977156020740512238780088888319125899032974764315332894445182106880163892245863165771491965245852646565165390325135116351631193899600457743962957701507720621793318287734185249680229016016025134923360016713396586114101248558525339394358186789089981148940653970155297769573368364273427398562245087252801718824315125397765103172053509926093879111429464631791228157879291503394575553614430275923868848013112117873295876245493441489042965519981714029399969507287228434920523188617910341742342910102222435182729478023371094261686004969407113970419195325234880657418903988499163169971073086034277436159233298434039168890162257009645000177975672354644210677301993320402430833571576290446527547666423221420552597409429426178624549443381061084639310851981144504836873264601183953607120748779806585536064416268577950037149495844959143009075718962799252328737842313648022597219598838599970047879742388150149797207300171303996140607498306672467180428409314932415839068312939887980431925371059276448784362672251899456364299405104976103406655236677791282298257234312040375642005573684853031254140622697249252625023646503243965452177516882024628382388110688033089391759605778375694185877073177696184172900983183194776133389287615844170811672905098550428879229452590055612558774880305273573670861915056662065524178943682485351612735052954190743521653339333783530263857954192721830580908251920009035405889210131721467235024501151077493872935416202662086091924233875464185134939112464659801654454626620500768599463333092487790054038230037564870858739087142073409997974492758283192353116440061721483169075543882941817137104757811529814199593565736072698706272956206573475243232106462329155384437297551598817098767767946377133515531650092555320025158395301176207817541258151654693831755533484304282301239441379086762521838212111573787193919487370158092978539926433025244362450938882154910062621301063697625147540034840811285597751780420732040008334299151988344826270968418595382929305736948387821126054614579334665011324591785839877116897448830095903733926170766901274187404666828585033760641093052383679667571896454055206453330294406898717890461636562990164338713133091245892395226624604065766890265388521330906183167472501596959443021389140095381784513025973040988019826037013870532777865453235655217341973191195995602118416644069113548667148318894610174935289103030667072217834072633930451318019785807234481741122397336985967043919477006075007998846267472103341575839497690532605701996598108650731821650855193022763753518805329707218843565349126454977431221677611102101769812546309605062499474667200134390072389487542429144402619077847621274461453196513588164187772973845296554543257166426882302351227438428642668113078316436328340134498042934008095697597361172973705043654862846453555057464059892325025957438335808543385876434733722344402423429415578168137915634644384064895465851901836939498410593527279902656929724254817389234067266803850453967447822406464576276212944930761731484242134573100218052209921544270615977991028537544210133261166821647581009762149104991754265712346915640341469416148631658740451377065159075303217778085845313593099283039598384598303083934020423393431247190381643793403309974877361438903562536516009992298957691419711432554532304632055444630568218246974824983470384081761796001587448444983184967097969390838878554887907234289690018923339304312631011457301113172859651819164083310273950723432511540482169452779807524915397451048325582834882858500541497376452316480303070492830668418290187390913685317192840360197976591083264524896910621648249125449267436047278983750012162780643922189972343181105390373162650462514686936462909770781701858778467090664781486309289524883850806293404565644924701418395815123402933884703287083253957840426182641411824916995859066611095081209675092325695089114012647678521990875307288091038765540750531523063370355209982001659125254447427336778993436342875342766267031507701953168943733163778191684218423475986080025802259541781827708894979144601112965129535781244309548502311910552887036685525892693601842613369074692161862912358795948501692904059510289839537695969481992658211470717248046206450363441579891747283453849104814653241784785967036441003833365180529032817004097684375372083259724967280239539407696701522176510587183161224937239873695377594243854133988588295274209359303167852584619537020750153452269155408622690974418118119145922672413003122145040008368459138731449707258067652629507947202028786702529501489202284647349634639554098266315812911214743360909280412002135323404501907663250020233213787164455858659998611567205889895914466544200503870600279886637038550042122487482655418891829810495197918970997928185218789441541831266184425265645956278194605742159654352609235104911932804969306193302164539504163540879035688600200780376673939262202303063809031292375933968620014861991799754099475150891364084445456182934188667030502081422296850027187015753742113033346885433094634610623061685856818691562047477647147444064069912033603738050290155426829591519486551153041983327011662824923398615899616337864106277415213429935476635442839187269588084481275792732387724462976728629876720157989191308606118709576596380824595965559724859439388812263960115208730346068727230560759168701261516056322577551015753554566097661411148242478677403463291510639062530210731291724378106921685024325175513345900855143191481293394667056444065770330920924013892910095401173789996040989978294224164422003428216111646324089548755863815760800964322473766678112094618337713819865439857291894840976451872043059053132096451437906016356703861685533639156351590174149662950829610430486190516971171025240420021661420430022146697146020433908268310846277584311703142446211232172455505055766945692470265235170582126447660933086369080455914673314789771340913128012514210116282865926378000884986831958875600830962780992630004437932153204334054149311468573242204109392217695531697538618914479388463029896473244744733394425543781914035934129470560343176423463351135608910149257233169874129428360357338202953914524448107590431276376603114072082232335822712708087205732362949018338295095877375818177262724659550865364962128256512873047941489449682243155219620399541027822691885913757798503640286984433244535848061631678558037788727619520973261541352811835686286478624052923726470644844601274682645191422056362909301429146702442609410184172809988329833311469040387317187329182933666875667293332220595207397415029934985948938211521289905432811298126401463763540645076436064990494863456421513979899287663069830114812914276474448626901538835773385212557259051622792027452564559745619626522775613987325303818901698590385374375715412518790410458560530206332028781506005360973952384912410264821241943709264273400477050169704548026681495809013871915693040617845914685597035845935454672808728127826621029065245922620562463523556381904482753399663741388740244274375858251741406049913476337388623043771320272517824997093345978771795915061584311199713458601847812288009570687016514267791458292836140573026222465881553818625642179375056101401133163539489482927175970123830237831063128957323203230558450277941579740260279314139612750642043606642223469678896874555830338715094299570019749825881763844122195346858288009703075624681353556712919051885815836623601716407916426853231192947640366102043235510418071191767057984509809575184256823489505628962871381021088054568673537194521623231323257718178935112903183221507410108882238787846778699397669008267305041468051753348537104867956290622893736330562641808892813759049239425346507722590525151328924783912490956072172980853782680855105555589532949613150129470663904963406236496084771024650304608733198981394947767345173759553405514081719321648070278151532941036011306751957093236299333505270215307013539722741274594343894497024112252853262747689972147273138562997309768826283910540982957412866080560779590207189939106885477899430299645417754846300949368228377709722957004844968101825470700603899195856607670692666115703076137168814663860775695811864253944846992307625108406564160563085664517469800619877340522638042485134702394360790415103474687096523558026164083907343906050712260134267860542798738833071784427828968941981314571389227016714892131228773252355455064773775857945489339825390341042711162205168583118674551434912814892911085312964998549328757132131028728607830381886708194230593675876987318997875496135060173914311075016027400878106421215603457852285257027334749080875584965991061341128527899449152818036217763425536129139861232859632003326878425836209701298424109698843252132975185394746582669616999068508655579248439590814277525261146369045125719564171724974938011409460997254438118506389022880055271040266344581080134138048001600824394354877641306772854768271215894384256768219227541061562065029381343921790997844857189112399089923839755535983412438354644573586260561767948396374590040189339029114065551712140430815587248585109050883507223893357288260382698940205672976565230820277385341771662976742409437198779461609495357773484760045716010282053389818293454604288482041401901574305964075936914536693208470310881633524967377398820126117934405047191021938143661425511634748933002977442375506350847147413023054482135047358416803019929672242493162330544485739343530152794012681538696268107163398024071295611463705920733257981119777547423240332720864414183773673125986658952788170328637567151587603229497932218616229194976151637008428640053780778756312885007187548490597626586141725723117906994106605779090591114699882420208261927631967364503326752777981737449095885727913208604748845866318393145232841445247127214236647176491097846322667900537173996000874728057875877772797013768272587071442718136035925389214172440989716823312616389875762252519899158210377386187020532722456614140359788258285432140864515730288206479931165726024512849793676419621797861432648107332673076751337232137592905839506773193297785236120238263654446932730154145533134314125191349289084020300036428057677227104456258712785037994152088854906763869594197392181016815688907591445602473535011429984918089710922349906950132980489475626467442041988016941301232333850468583530417649221137573717167755389101602546247164679347039967319982314117922951615036990269053685865086079292508326509282141451218087906472935341431637013114895586495775166955705463707648787477032584728611867709413263955109948064256238160497924351186334187264824528677249622352351793991095923258847460768621962398454546760915462733778360856522048082922756069255378867089699212571791523320122083497063679910793703874399559574146852329893239098760591233882832095841319400247070557519361118708901517519084790010076251176984475496517518288887352668274586895442527556365390333879160451687357122366837613345559791348735812105008480570084818409825478404885147380108088629055824365610636285362870589123546489199903322048387846356458807522034204202906055129807498584306393035414503929905513836791181634225533204627894048915011134011750062001219277201171897636629321408404929644583663561366736484661601929822926813012180623533857816493384927774719418176782263039079538278662385640899808321928666248587412331290772666012471329996441389353920609737587483301785451888604606836014133470088910115531103760897429938336582047835461545993875456594020525445600281040631921186822247159909946719410213743067019644133312468447135158729783219648477271994351172299571285383620233199845668083950806488791641335412301619028251738797297510241424164638106228948096727696327319524471082796348807582312746297702439437291511060667583426448875822231246198781562941928840008510818002492044757554267254687540549954430257111686559301300009973491535906753169949098338277216474541956714814784743898322346491952325892464619137516491464786812419460918050143435499335529705327307863714701148134367626785912522227664599028453598899473102260411081196011563937004832383258197294075601624696356050462857115408606082083030415496771401383514971226365896820585710795283202151307325590529797640155230465811092338147702137930020172183227401319260268087210900669133807291730346694653423582244760083068735135519351148530649028848648813450693603485358775462046108956245077914764654900909693042195085737523830998484834478263771466820570510813880391063118881496057620584198374496042063470810430826097679835956479850964946028534981958856824664221092223258646608298820439485876819260302229749393046055120367829282152669327497811779657594859142390608552519934011667024539607589617808395279968432243822993230353041362621358436187350817865941113328467462451787583759642401888875649726087671901473790100290074278790899494917153880447392357235814809843700701249157895763807822294868608651274733330638567796013292511783139616082192890387523412230607710655659962290238208241588700901670425354637167787078252492164581753854051253496288930371364647325580367263828596214760801270345352151367540566245255799958612064832828029989062230335685663620137047656318943944245967038762181688375080763832391157298197988630434535809336886414613615060413958105222517042649014087363019216759340296838325147975228501936659641727216322931891314287176087190873957027979985368814725794980847248422410318878754133803739730946138588102957067230426274139223562843012141201021767740990876774251626347635636350771227727165446919118274220843415679018133810851517829421979177698153664487008411434011338913100012218171896056453157502588347327897720742179717552535504868920224604224591248326241683624617025799227947142604482996518726567034963075157104581111701813532277235884466264106275297652134485582672821488009332451099964483931595720885652999094887504535686712561052946053687288849616027329195664457008856584135270438236554260292392088713890546869344295924478221397922046681177876955934527235684648051676309165601015790966759860577132828208074755597105406471306132332619589707079301856381708390282848761237138834800484907864621727917471345375286076995436765625711157095428268737263600057512250204615814181309439414363051375838072855356264433776840279165134438146352317372203772519619295860691857894322034513909808219553128238052781833196558258286719734787065726266770193480317874472453164770445571477259530437315571375902549468264341496584594416305101782398731256347357438492968569093939347692647999175144220369529773485654200880928205093716584276786428911758308668948786869461529122313227215775898897908521037174668998535479645507018189361566211057412830541203662148599111819550761582214493478055699145996931918377052903742604496255196055480229608238151329524388217383496670964550718327806119093575809302556343814267177913322902838465746944203575247702186021468048246873440659194188052147639474504362066953694619426970523468318940249022043616202913013254271262039689352881952291336206924743587628019012997635366368231915104788655196837691497244423409376274146111199123310087135033977415008343721292814714021481741754793930726110644632437399728939558406655195226291758099246613168080656381675631091030357230730621395102319815756235700340782310244612928253677570130549663556535515764865210893323437888309003805121396439292522007537750525233017189568291650922773979738545383461582905466831500424950018407001519903093394308842560166715788737940642155349081237931364706773831713223042848537737348024092380199801244636017637030257078356126680487906942160114628272898190532458525565888418876357829645017373081343453567522355169552550070666163334905869502800145603130650317840876761332828686995769686870333991536692782093808034810663721074260622179463765182329544711540788881668445473466176383430834884774369485768593857803440610795923021026792698536048967013650801521337499845661493347777991284015207485714472549658477067735955546165908826363320311304717560633008398259279531960406692470453060671833654812135742553333378159735001601995401583608510726456919104061236152974183832339849828067676975217832467854586385762418457320592028255925622743797736999083100847333573350417896664302497896329882848486223452785160916243096529007798459470355658973368967040531854919491476990786302472080176076585678469843198892822156752263064735269827092254176986997380138788615869737830981878246717907605037957608807760349855595950053223212166729418989633922188848412600912505775862283046824369686987367418064335103657937883784436778989996137959760725891629732734950454752038119820181336260979194590373313312217775706550865740339215181837895334502393685565352076105958349713689358323598812180349643999805912974328578513421565076736225298738986027071639331845605359629378414893640639100348448145566063073147395398369714338371221152679785835982437257371582427098042871908508491240220518976213651298322175103774856980448303758657562574096566118361252341700069446698892581187542639142385149051048206810576442161595507434599259335888513731058605651116173660806007734342670032579346582245777867643878027698637543342182307408460972646351408714932808510222545941182133324434562088859276452587021214275764174607903348017886520340083395228313053106386886143978129374159841407621393601188571999833711822326963074395638076352102065972856225799065122836750536175577664438129329711158857557354681319240169123419239696166786112151793639438576116760648072770460950380619800063442914785930709996164782242656478504611847791040241260812783964717408958990984226274735143649263422784785472998132908003487624623147579937275011917543135910013305259836832832770517056209644758396724390528894564632457096770302578033849293134630846364940776537130227753214926187585713933376059261375408338367986673457459568476223433817704750245382199478595746343689664011646890478032030963350718883604828897476862538693357049324907771618488790487090151621593000592936207066317767362418411110243505292226636869353890763971827065019529539362894675864152619558622684628116023551443404066503530009327752183689207790826346896282538916938624225283343229078539587426425625992935475541896759967338758962714827366650096082254512621305888620005227945755501509442390692045313002819327804644938320206207796513491325003260577985787070950595486714129774949273673199495469891519346023556822389971070897028994001981043165902643870584005230022867300090901126849346337098544539376569110917372178388833052999157584150978810503722893188256823828464156581660347390196966352504908258228884609447278515732584391274758491183631660459595177809183707792602681008661541057517225693068910698438667105876176931153325534457134661588720370553218960677627607091090162744654610242936444685615461674479594817880351574177739134296748442557826893538828624345940175283601941229440265499015479074917524336009087578226716632875113202348524943547857552926791352651507935057877673763667294245315283111087642292937407398541456183658917600287881509469303449155796850086657900267576235598792157328430656118434494029045219600837580602864998143760875095248908409174630092716535285760233979815415847437071568668884727205153388432886598634023528347333218905517445202461618509063964749546314262506021112808620736899107826278692371954447519201317315061172543956900251414296146857450178867552235158602629361204338528587259798231136376330143985006700478717765561856524033506298072068607997939003932336105038841012393459055623183830887776878132288779245652294731404262389653325710250286432929539013525853253362942993198898758498246752799384689885158953241670404245836789810028958388301177002350875494409315285099539354794202635053746739786507379733223868673455140539665337684462912122499524526426722871051488437411209324954157599192215614368858845480080094974767125250135582534104188900349553360182251753870783224502225928190395406955181397001666616310386642315583865036886559536084689932239646192124738365771099839800159839046989880434831752185225893820947900527476461107020834198240472788592211378799879888723813785604600719525025184095062347483134014651300251132286152884731991464416967823937340387840775455436076881792716734299608430263373571823475209596485831063537170408856766811791986106731401029995546968139294471958471619944029575708126446934599212829346547611952437031886788245431212758542352845368412261325579841991678856929637135485417013335307193920293384617912196760914461637177071328300911212856082410551628252288967235990253748940058744990436690316594014456125221907805453240737741456022458237905697438370478577306602287329854569936262051299309843970019563876971550459719297474631083741165957359192734538060194987761506463011005953548037235049113089151494937008975845136971992853535719269140801943426590478635074494668314942875759580546310798447645707319567256356226122445775846968780159798044469903223257697144655686342502010302982746871849326103457242953621552482932648616986658612658462331076603637856682239356952956983119334874002055442780948710870861165588542114347875457528455807926130393157975498577466153922424573452322653342290248825522019372313880105112835330723685710821065586027636507064312904701200351824121114283204142162049773801473442027126341034970514110243415321023150456094697385288678302085511355503225932011938939667248695490533941851700026087023316301026728860877618029441874920388763296314866854875335205205989322165341015862558274440682152246751186035607409289707370634511810242247797657194754213545435164178611185554740389778457984246730389109840411366380822285702850315148305546826862521582059770638522489573169510442175469405892661022349747496754539196445596635850072742655727844714683639242683047205090484545056725314816933057406298302617093039639913717896741863381804995427459820385489744270371849495660054710025536081792138880008945216499835813924790084749921454724654162655391428277021796811691481942613985685103622783315291073737887687785927580164139012404470453471848708245677506609078346019634148384266579842699928467048028920486353307141952690655803004267899246936467910337218793091405640299093128842981682786749990424681235668072984024593574011611219353673777389389870033588839758127393438827447337171327860946439916351243493038227069765470695058383468562609837355688193119752192348950233921430650875407331688731989024638014135258058166474376803930885797870924862996264719368565048207274965291746784369407439795682238902094762318570052169614515032855899853654351416623116336484002778428721247352469922035358173634423964703686774056823459542617310210504628884429629466086053434421224273139770533361296621380643842726093446881204537155763815728981177956047066501128018561030040567173790778533974758525864625460127568064493161057720289547823398567781805392782975398602936098447710637231085883001625653891565297280406377228664260041539444275155150885521657999918364623609734869453176428549646091456703639312213255378970401747882587891392771118336081907751692291386876867851759965606784645655077370092458110453672027262079228315950697624012495891134377986704229218753137249153512664594136689113374539126990471862612796734118268502706911880516843782900124921672950265543262080664737574734942668493697222332044815082411597026616642396290340454557902618672108205807490746748976290005765211046106411928748171554414685717685769294583294928625950010253840223217824791533086751669031113489087288552554588640214984685554369243824508770164036147145797207365378890283895996641491578465722153270243294421934842955336057218162213467273404761375900427693734891523436159816461380840943174583765837063465066532767453548593951354689523585859988150524598373636596875462502288460523360092835101529336770322787717521528175381521963203169977004678359746621218816725556036360821789794625886896058217411328372078530166814447020274701314192698767480876052051637951556560180253800750450883904737235727548008560578764423769815334195041119753039598191211561242208406102142862148684326585776414417229191621323882719165782422459446525826909341745015038026405250339450001524624930717847312893753912208986603890955988920328483375749145012853010769578720018977850256912685404261813378696259153906974342319308672403944099624526576894405170226569803503927151475429149349554014875203282809365651490939051062729967191963840805896759230100026185016259253835171992557285628529240626893214842228338102919970373004478585516108480112702495346349098336497901496500336824540296075939766771230746598974769196434217310088745781892280895248386662048773970501406571689548244107493745001144429402826206257029099745962752077857716167394935300067274015652875386816733456576942165587264253264345194974736050982067365668186443244657040489727729932061015756453638042719621981711385857859575701991960806451214883544557663231122622542853549145357155875802757494191132860057800592285093670511359149794296880981735032875400610103893053992887529980018449245662104001143711983000258242121992650940631055697110308745311346740966447598145079004674534275554733431031955784893758774493778396521963763190534620655512406395299663610872122823937200388740421493985383609912240785445555759688739308629583029704449969547425785982579467856588913110468003086759116674746824481612262510337202730118766074873548159766039765048215224225088606099352924514859449096468789547621644475760903597064575479042974695896035360977106675827680258506948473011716202675859965974621438858609715872813630645917664845198102040377718693935433142065667766478890353412193942445354928438361793227454921715823251717777672512453709853981243155820846711127755931039774732109977208831033178973880540429444068143084868997355594118379172735864329489828306046491122571999467597505707496144207012353680250985481412419651967270065252377331355490820421358721224681017028375165435907335498685704278666302924981571651652587262976175439811075230319409541661008155105831765957779575448292851367564488876270365181548531866831093766007389754253087605456688498987507957583103204405703980567700532155099521720496046555912968424060411354125994565612763850179659214749739811270432168471287241642692328210927408626584830403778511760011097767413553842046370071470221720174327429103443304445406306690025705273020640835664379377896027062571653282317490027450688163147197951379310258727724846423153917091912132187523135122459061762796104058647455705401050726839744342124536264477203576694534662431626650887231062928140800328081911140686948947107759250820229366662939299300836005302727486559890642656010175180120055008467368332005242286178167213089366828681357730210870122798837243529327359098998321414083153481864860319664047703925894419998129377573965360843328263982010127493192613333652745368995614473207179683357377423049737246288057271840592401795039549188418929642933469379801306069225517928448427177313138168611183096526887128844430874961570398626723404040659913774589950493832572078198001594669267779795546147618148055455661753185002042083088870607911249123570000804423856281787894570872535625097675116791815926349724172651613740673687739673452543083037762877732054951170249354703088483490439425182938697931251197346107720837647800238182088062026356600648093165913802484669045868072582364298383019814568417407911275005995922538244744986630763441779306707665371203677926491939815132469935991102332735345706377025898478387130691847822523597083275461145780853251486107609302892829671903888031989403193623023286444611812424913215748091116870439597356657118157123666327053186197390238047988991720451959781453360705633323095922244985562780627575673691279916365303971048033059182506367892626575819766233465839868821744018697295783667260807004617863082200405021265391596757416266719755479607111575185318210068803460907620331421598941753063575667720336401390321608290310138466995822448385991485068947807676365517808492124796083984931994292422310207518143398482852789499115173519716145106052108398208124039236056239703672255136971391581894929299091514837207409902579886894479035597615028808998248289599751858764520578225435538593310123952747615602651578081425012206420085028741781597566160575205239978325742132381567190200260147216039424814190433823879340610805391132445069022709211889236146705792572837238622391194297631639036025381970852458250565186897784367447484937401915637232861370087324457684638913366426621798206409795406001128157257085528579764031783867456560114038060499623767339151470454750494786733344758592227875700872351916158669275017878095294860216227144356049516543864999472015089918942902803599128765216724619496357040286408348880240766191141229340211749045021106964549913341369162076854656382174427334869300251344644482562749282923638900445534508511465691924931663087572451703164595885365129517745630342388367344667547901854270809148213180544150438516680548684775765630533064216476974177915811577473522930625617517404256341825023438208199390203340621115862567138912899879612569444587739952343060460316430912486950848124783914699536414680393660234029794652642907098600011217032449643103994882017538519930462122336734160526793706244028127544020446398976659010327866546326426077489529191171572867062163767581840407642703360780374763174064898670364390293296823218603350307475658826817621088628911644974994251160975044537604655671818946427875176220591221783294424386348464272828238527419360665178100011269785442257702411781754092576208831824701465779829746593341265215700505269421037365269711030032901117566633089734955140423938301517763975550255781512350116291206054799226542613048985361405185925887464860580528888850018646133556030600482055995533944674232387608534152394850047570678634508773835450296816499210798052931667423007958828245458309895905070960362020547538930994136416455590255247070238059618046643311588956048126074351424317536989005775042091089034746661484230197039174224256049814741572549080568289120819733292725771395755444319593602492010526593208058334362840787044461103942439384393081217316361360113953035069944271108827200110640068652156802404930257379878289563907164014001600404702222524117044404392212375209793148832009718924769754323715186201181501059261997220069141289217377268701917737440091211749237973076918394233839864775369578842178844223962400941444965977872812657770105527730722325986618226624621591107333044957970189724580802953333625999627718309742452436775049563217243678561310547797536911208377596381945733140268414866867465349881384698473006766615049470582683458456500482337805929644279495921669661381154646157057156934186148857338523290954439541223423399931920262539841405650166708096595885909948078489411433892378829539616197294204789188988725594647782552139200241492989652852627762597092946555276828015133098427017261727121017603471004436759455030684256053496132655290058268632386537330904930330003542944703223440240229409674982017517227024262044869327648670005479903719443157434767927034553689234625756450375967221452279026665792076895864777013691986398407494292806876840922966193425075312456526237157425185768154154681872236191892088722329328020636558131778264417209224977191752818738818526805658722327788887970954366760187639524649586234445136549572765087270753691985772379535604863228191963907428435415344142269803970052109108948039905657817292887052193592807424110250098128211232203723700250339805263907607881217578707839763599996863112683412125580284054605269932356736414209689049419412541337142727359964640132271773301450416375987477462797576938621777156024059281514936341795200230785748130697936706966692586799744274533893890582953717511706598519596495573173531397706551881769795618386296919141782136882901237987610235631442954902289003082715993812516894984194939975932185978609924049887401979950668244844646714409307995092406323852462437903264206719338629422052179996847647447899170680407658198827648979892131418075374593947766289900511502296245175686884958767785941332930225737438088554115495396695999298665976927460683865799657667017563245502219638072997594007783608702245876191192943742253942433777719548084845092046581588994795650673563902569746938751570884309382194827261020541931151226739745892571271505665975529613330173428058915252658909520234869841892356538573139424416721808024660076090013291338434781304234129900127241707530600919306377832997607601659233389341754363060254913050828961864918805453747288022378780122303851782188554560511994398744166068971642389218795611768828288296856075500928001318671365864224068831971657687756221466448944663723954690733978071076344735800720456023878993324165207341019336010084709271990274949253546629376442579758030695778678759988459518464509052777196293536672486578221861157702417966672530927861714620960557450174173667466569580898068469300979259947271257364560475966367272525671033413526550538191021420199234642888718641423014222125295125223772540453284518463766166760054153521193379641027117905150171544552469016179651381910011919248937751722066297853585816849465389481843850691084540862019103074470142541966329032369208747586912486467435524601116012796401794518460792706050906860171821766952012990103472865407368323516483058494395683769583272405428103621747266329093431423250859018834311255068947559353409538175848005771333327454515579794714796892956030765820941079492408159535816732139814578990610767993434351323081623755731899797939618115682619393397306314662146113451637559819547713962608175496108326025408442916227085246452684018195439440425802941987479934579851009739127068048014756663093692928042938524576245285416555349275994252187564639951018602178892776458133748342490590500447618735324705418769584932312764443673812601939150011340391194208989157424740941709930194271173142574732088686676225144347079782256576982350279062577669851856764452587464827684997221688273371560840199655076145769688203475924845187874269275598558662897063999868809024239866713200159546250608055332816173568693032819728371872511781783162838807527125749336893619368851682440807941451836591951734752908091755372380319366105854190554242655937722111613251857686275343517564991085593616232549002687241734399669152255969616733147400716258669272666844648653116541179971369329303779661404811881588061566316997401857638265274547449707760376033663032494492897792435211554587370030060993850311212513962048264111541109791222353156983400306549137248567235597332812342310793328106311843395572980101525530573090896216857151853420363864804729123221611174559590858337399221087664766299492770351607563109146827647357774166598579133167224099092790964467348493609982253900832064598703906014965310753618054991243005574712629064142429427813324429875754063211498726262764564219054639943321315254315107297602672650543490763692762191789852192288108685784546306073467764974977581409962724812538404866165415900113597378783318686172737722728855167640284902174690544933574053375899745809320427715596219222837363942324072123712497777130128279348240512132395591464306330294596133064715665305177333745098978492235500737288971972869490231637887129096728234762580883176398008150084509014232018302450479393434271630998960593938863630367155932249053012602979400893579457555114433430475365148661338921727387614447492947222986297194220986487500408499707338883554389237429651874129574408991591986195916145068969111255534686580866895631905789543104599622067350380824068385814371075393505352567700386821416023827008328844077902210271715425843455500232235702757732723487304202145909430600899987362863927078742118134920635106644813533672072708403147377182503833559268477722221616988799409786176262992874709235029556905595342018152017727439480990048215236046758140843726659805888214646940245699785246098802464576442380154064984796066257793168715509625676305293897184558763920644315832764844385238860930430486569138238691280720244093720591353441181606583714457350608597863283950418727956324702289565151535823653132560041187748455734136145167425034837568261153234871846490138693797870714362422300309443118256391466937440456212613680079080088381926416676803977526447839644986540288493274528653953671975499067971958866432340318234253209369289302654446036258306682639650898944336645707710096878091686087709581769158414357897101740097240036654281831125079199648517255733522703426930554407431250780299356707376035227935233866703147812629282751036911551688466058571834309735710681748145084196193913333968034362479981806580392218782128646263470728268410784949327239660533776878052722996118501953457815846221478738438187202394625199497799195586838932695526086616521844445836727053919718442812220579209174786566572300098686189176536172795058668798361772319582878057188829984872105106063952419886554184828056287602388433276988725231109767515291032463431557670085158725043071781170194130666638547543714567176792969080652820345066196054914906908337858828391949977896734276451738322024353171444153013409036899587927516501950147442974868600439640675760243950831296039117784194369828308504883535675502588306617880414502744940030118709004416131435581254147690159802902389239251376828297771084348855572116249709163772113115557522724283165791790374458363415504382071216448955915842367193616936051534687989569790585945931785921473302084512705421457590045088468160756188072692874546374638769319691033641658804977684371316079277119297134077217841337438899164161321492269862487527485019297357901531075438099633769643581968245269902050428059173067804738003235840487643273564818434547698192362365528210084237187155048318138740251900452315000992005091081790720242531318900772941452975863427801602030774215981722636149940212015273375663493327297152864400791197091317624952465725240492764979269952891313990813051551541400434181235780046066179746092618319488536506111690631273414470887307153759800141388852845109979576274047257942785711861797169484391613077582152061664905134445495759463609081682218703961330459758603268723092326150996578731406025798142945822423561009658534509759131848765470400808966621491771679321693497610563323540125975893996739738371922638265301214133703868554687462355411473421860223736134253984455966732277477274389051896121698452340844611578042705800734966252989626982641340232441750771145644501948414283338437172513265784783896036529662609556916443319949690133554927616829702490475068994934680950855704375598322033532706572106609281227706503507307986818502322735570265739623646817842638096938498721679383604352694903939800799522131424896612806745349650883392261976810623464524660251243967158330502586938013996699636609177324388863690588893045613390271416629821053350425928578539840575789421989718023879168570189035256173074295292404424875971333377226853369949520093534199877195751333382789369870591374206477412190492566360495396174097875021257031399316777992721072262228955553712496817212875894694066632649624851678738860892884733779099560774977549071786489833326577641318473683839286697288508906013909014967442730855679639082383275563556492460388856134438829791621155642459095967016692064926711237882610942800831022650295279452236008896418276365840062269355241934808725515517628140488575180612875912029738627755646847618829455909335797037454156947846164718052167453446675486974796847013167058812218905109063008758055942545722820909988527368618726167430766099297755636084538280203383663221880312764094483579455470613834726127839242461282278221594614780150345837304503160056835371921696363446038970351959043206161150888334417552566242697640727389436002456496129299013076165408910446557844277183286640089666002049578475797560187593597956774561329688888586420541785766503635817976649093563165341054780335561714147160977488541840415700240531597094189270681442983672037662447355753593793528079866959624867682626600007001444655179275896386358182721390224711952835982646425993232371474859362971201166686636030027787759406074826400238476859176173010299418638931411406668022472535566950305881814558409627936661625727480366959006947923270230475259878316516545356375175689957630141110005506786226722598292732479978569037862851182425302742750873511498331768923982350606153096273256847997096973783545478212354294683204809060086279400622209717130258246868844944609428833783738578376054322026578559901505452543293707686429601564122637843594622291969981489709846728153268766039728463231850231805011869454406613188269364892163803574440505993066848749764137218017015073451821338548008668717058667145042150675256788737760518322558724865308367497309460502518862684765907997433790191303772750485963047854968782788744033059455533547585224485671497424167448942075996822906293164728085812101987564192442321617952906483982258507283216604875553172678985416163041950787519909450701251424140541616425661064770413532615918531724409475890989280711671513433059897462481041575950816597400487156236257920938137555148459902120863919565840625265839322111587220296788862694486747146322027131889854237665402740331409928438374869238140482038596682030436355305284129408866703250225350259138676734532121760479119641845239436654344561713430103892476967587056502077631209573985624881386818144891522412098431360321878448430152121279243905963463746095852588551386473579984945843490204661546250244973530511461854872156971540605885469165926444782996805854592200914607663485032060360631277820345069908994803115089243576250132932036161492903857308928925240542788788106516164966128928908854388996971287842555436926956510645501318723075556357146121442305769622710183394844668327421105077512622840613084878253741382571782381224111747072789739085259578670803560885020247766064039105137109755779979858276016671427910423359691955714858751574387334759967768696945643254968400593956179304212657615300646759246280641511197920265013049498320568004868062389934803442568962779317438573056951805275138749526057361710503854144812863737013199016833584653873512747752855889299855955341547559698289865405533235295696689807734590517361667020257815496781289929438475906342530372011335450489796253628364987978907317424231982778922398368243124601300459075607876440841169104056576881277898684973375073766348434028009907376832428573442258359685354946128194694507593999710208969251161382582319993719019856403162092256412491095516052690444756359531411334119309202725466716848146245192369056617416672853217577259822805652199657764596197998346436219909304612719548204860895651656398018838606760503289028946421373709813291458946814022610705416885855608893894975202125944841385025952480210852885057482890055203721277054811364183109773559470297882838981223909767002270306495627717303716995642165789484839362597083655514388406401343404426300083519283358694236667011258911546707243309542475871761895166476202920886991576092219229006735847461699486083838156058539659076187507434715055357300273771015239525369908204664744277458160039803361723266700378039291020989992761433815632383798275582262580914370435861236754911278727126436145186035525726024026019416327311255502985139206627844707103724037200194944538111296652735156029141272398971671376268696171876628424449466128617535100379816192242220688045686733787198308831996813882311570199671354128957630958373980480964542776521087609853249946783227014004467966311651985703083055230072721300322312557437007436631107845491958269971443701857101794058087532408897535467872174040358574913831752725354059665810801247642194266398567152848988835259380548515445527658901172833272041163191207569786525414403094539920808609546056634687056366182318613128166593244522251145473250884163942740105508699019121588954314210557568978927462691621829472446827651557209425169594223020387014686593114325851333788188181058691445092293713947224678737806908632923497543910794816762977175826990894542344402663278209142638201260635637257720747130694605517693213319964842332916613617533538180430582265968614326345277799201550460452745131554241492894132753792420063769011923936663790030236113966919961151919442492877315147674031039166548267741111264942188817604021413200452543114432749217176588429378650165925468634010262656871410541117725690673426398791074790416005054505429836356689681674178363842413364601090613240883400331586121510216195420282745272734099370423495132544015403641940371863077627679474763034446381177865348268233017831471597299673905851789977933313361348575941381029401518352573026769372630410233715242148289132252363812612918256514134459407068446745577380130117221576698258199795249451185760889014749177707535995799011222651286049503467105924142170972492536604670230813975897751544196665797258704666261142183982492651492400232899193493571564012849643199947794797291093154690468719390311788072106188531073164141192070562215444116164454900649189164075388911915564083691256611862825028890906417984457274103121907598721349122755871333847695550308556124499957578349415847081875631240855698364602240970181708395665262059692090832931183884535548442489917231598465276329570413474414056191331436233800654030016506264487968505277649518996812514953463250519944971145743582584331610720629978604635140287424023955564039552283299874639562900594869842954597128565557103927490470460566180550516105278793652195459966086954762437189851402955106840982879707818941753136689668141194232135778412483860112118537601829021677784739777838186953723551195783216723581111779468711994775167292091891993705549911083037793233365623950148667163987674539432993319499774697019586636176422721587400350563012800996152254201041456004507933045011200316670538321478491919760987320167931445624855517204862169419079444712766635041322220945217709998571757455281749797349498492390441177735360078672019751071410273448395376870035908762241279087789144411737144097125155443119061057772316261590079417322153860154756222998510090731597974020184738420253647268110830221073361359182287490443202236404995914558899009797377866385205660044258022457462405146304693714628348345625994833867116815054221506920681481568676509461333006949710754052385003890657126403879683570215156600030163348743238882250250261771854242256140344395836993357949554010811219580830678267957672378359712391199950639213279070937444583592895565120786842962933382250995413568216927099535699469688837834030856666550369014250670939849714875778372845918271674977503666029060791657702641109672708126375305263109722145742240133025493817907134598972683171861048007572253572050103476267729842060957666990827517680467828368328083509434647098386367887052276793777128279901283951139597826109018137886816780593386476079225318995052484807425973110353401860523555919714201213608741816541317023485123769281699421869153055634194511847209982926969381169054565248058026460033804211585933668193527385047760411526849633688149908094407327499133617913078795600217273305426977106575510940161300627396918579560569988573808763948707621197118962390295410446334345938720264841637527508199803582741711164608971722338715495965000723902847001152939475256136910842535815314360818094611856522715004036853567052368167891863819615483668879930497750636669613827337663310988452082941625464040663408309591391709648190216530281094318759025286505759054054003542348990519103609865921275128716806994703428097322285577416901159771750927378521992758036674822407067762997012559525667352192361883537271617083340378578643629802016863322299755488245257433414181652102488261211212876051440019139738411112301939764538475489384159996313974511790838152919804015752170457125730353388225657194849360444915352113901845173076250908673793874125401862827832750261447854605075206425846526585839510467782109275095416568386818630181468062655022457576026794378703098231022352815671448450336110017879852269500818894646985055886485802095040787950634607250179844746990763866205233069999748137168548022511217763710058404528815842011821465664555459119399875506404394054294169171045305657409513982870746086888276720134046010434196625703258534497063424955812715078812791504409718450803796787876898752855546601374640880474776377288016248026538511073208963286093742990068570855145068382679730947963610034934457246594622744041843944751185246147069184771665990420688948680803962395286470114557539264125670394160499091345126363693733370015138122914212378531217454268212763935388454459147924846807960059784382789607319832934954636691915622161268782068640314462650758308536490169144443045728998694792982858933586909461764764127427402598512663345288530217789083382250471283878279251521252456507866480276221383660030075755210506222832899561147877353649150191057262033741046034114105178920145389527998698569481677436918185967485421353838632005292262125741306829123259429186417623102467894369539353101484032190098407567221720652289470433761214893220500627466331614190654875797901144126606729793674863180554269534038657801722310442844312276145799284671736044735093729269372309001520057963703246316884605617788880669682269618661296093643487536748272869501678910857477421505322462226626622727538603494586739306824352766778785720723838622989355150963867356895887912553790802696774976661612304292804913704618100762099179630976113256419666481378620156349063276264430823288508288355598901567080776853848602468989369493533978751570359043462626386871979304379491280865993081172709277713117536772465958318955060162353925839253752201560983770447467230680551444201396742722309194441309387378539654102139733563965934532483455411146794063754725488309407295211823182457469520435313995988202272158813828055208779963975241433333661503416938497459505843957441438819788875044354501765936564921029983965032744796537473544671860767572365836578407617228039233379090915939839528143214454118834257473164550921467655829532145629373873690881168543654561325738551688937764267283209081681370606101104087856105347764346299655505381230034939035196894170800086690503060112653204375494854434652502416662043537855903643518143417215790686979882512089209539107937530438483041586396806073861847150483423158200793342183734298581404036284740379134076508952549964518205245284470040958554876001016215684951374295484781980632661249837817820723536206179840213976964013260033999563760146217217423139109071885889257196565450988540451513901683349933463091143259435041844641687446912801224403993728045322027934714101217780451283549555786443652389728763234638386055809037269886349812644196435295739927345078211106096387719119725266607037056529227177686195209860236852418825680966023959339497291938406818495709204532520987955909034735068327188701040273456901683144051694321985789658152580634289325469067907818445975911927647129813310546880342981070238768367635930906873372681052610748753561714075626391252572763560995638374470884602683621620740149505358931766606027425856961280651935035470808714281862702433908397680185601546910799192101468568899395610466385989089514517473965223571643481271910136631760955138515406202208899110524048333187357333866543619950429888741104700195885201227888284737244601664543240116952259583333114459342988515857173087880309546835728810482561601166260313924858617378500325246319522898586519789611591404047486169728413177978503401180248429081456260890253019154030115819088686246206527693133370069020536705838627933630479762638325788278440575424193003040897782066045968383159311194505054814136593297277698340786826153674962721228531849450540699043394352357076085796753724123748580951702026057471494698696161846749334881662637138485141623302863267170950429755823328175644198828304381132024813620994479341292460990406406141041857317110557928131631569152539759587594199313627163799683049960555959427796554779289550651286525577389872767413647831643142767465562590402490409084798243512886443120214934226103604874547379510716251450564936026191290699305974363315182700850586524155090643276203589311319613411938088184008614770454547614034181695951078984188890056877548603421192343368679116423298081587683865071227797460024756013439524006834284627345891063724290861017028158254334561509128488367401161672778957414958659172423547928654875840836441200540316813323247028455362756956454309245672047668750186343034989650726288831842356410600055871320583268728765927286832228164817922136721757960934649360669819004341164621666374176215798480590876062608868575422485108590826480001071521881188248500705023561307630812834631073761472964001025244687539861788203231214450610716638337405270728074886375626743769254802421764298967426498167176499206516832906671141093888433878168961026885056598085551112855713044992635075107434448346038280527668846437797417091249145487832546052061108043770559427383990054513001825050710719661927650810490082641990795026736079480994918674699513037842845287983469331887377304795102459860093852671131639628330453136580565837478620957145241593529512282496871464538840896723815595730511817897114479025735315906475480515162610766404680290022114051175691724734990497400163784730907185405378575634205903747355560725476978220690961562422548876549257883327924609491389962749051218265525485956730969184995575051767070805363645864757584761400188301302908630887697472400496069818156596512048342765121837090079665279375140637837318849265014850540684727082794008726468054725259819417933599294415112811118427976449427644365344877096234356449365589054518305890279417675076308759817675596413108720886929645922633041268196744062240350612060543356770419848174914448203426930053728684724716974663830568446357648684392015507341876712288672564387275881657557187117701878127235357368559893619274834156230814196815264268389196697168875446100412137261503026816872021002316724175954341158172382301495695545344479847630391709710648487499485907978850137929151435515794127651537909275921044852082424842762723974953143963541384158432673399172611282375009599141908442166358226939906429509666070325398116053417500596790946168452600569212021559515140420098183843002371881102020636726857462054290072678543336082782210520605670648862957346698329765306654857396359454118167747899767748228263541758117358960687084441539406692191776787401430178734031108206420760096031507572230451117243430085150775349893809708836805102070343400612308155918053447717427863755281484716457716381620028927007540712806119862933637758891345941028296144455888836792029454704269041391347681765508153358979757833319003614666376202842445950088598573752887710636085963925911627238112993698115261134711286873056806521673519027914907104114972526504944497345200132520552927583549925399220572198552159771474723525256687917982630545517749403237454980445425317566702996701214793468141231608360636083749970935047840402363214186853915164284662253893057290506890332951074507899714007956541627729278237011391461864249162063129747414478554908016683903095461199575723665985478949646387563966200390591330021144444472281633690687931985450867395024794518132659986169816469224891522655198468559938702349759693920526308273434638789250408718156294952150797492933685081416063948920210688429815733113564845730288593254093947265285833052453909002683020840979294275332730624869023999697505109329200027137236649679856122075787151228573569443523650474278017744080273960815870580229522942329692793767840858265145926532526228620098726460980187658429532593678663506483495824093421213433059386346689096197553162137340613883810965905613662917819236464615659717476421778651070269012962189042000223039462319562664787084155669077459963785155276045894270662577900883750863574380692015780764260809283092081925653511337913421881232537719800516334897782550278331603948241646793149946967902831893855780658279532821753599586269365145095290994008768288909553887825914865873716725866449322077704809709254302123701205829480563962029237098695312967362597993396071354066721231731827663123335703546398691867390104785473387276571807083195956859150762753267705656560448759675589314678157780921222794915851948731039310452815776069612932818007895634499570382676773231873785600889532839071413333233406196025624947628012024742997739269540881818097077241513691672846474515441493853677783814357241214615514857179778264415534729556736296339995196901504290801746899001914675220188319818995903718994584365342354660837520520162250148285472347364607291608038354301455746941512607967065108392406400367713985665855047707341687829801309009330632352103956143510521738058288462101148557919739758728006266338749579575797792906545365036962525055847857674385783109100101713532694723074317016425133520638132657627237318383876012188440582060533524321026617555543827035942377578677066063277001866177394936377371650757803642864809529553060274789522581535709836671466179912507019544196529502311968412169419854854867765542578152321448197860107957277369426145047344042917266975920349678199819514121018602656817738557755303577574137940505091763115515340977042353983701996778745790232079638053393977539877874440088746254283488731415172014503811097889051196552165635281179571158650699028116862166228535393488673580609940023371522063864462570881919221794982472970480583462870174634576494077229868065488131764972354871438369476885296487863403815576309751075043617750759776933838143433660388790192076655790728406648195115919139665271701434876932431582290832248103149983941994749336079326022406040188168319134293062539351775923519006286007410048125515840213684900520448600389046751810038511566573054103323329068507711445936737597318022770260934096784848422201213091333042640299691414359172979689466550643238848327191059761556112815947310536040591352730352932445868902225103556693006067362342598574507635773175867916439760533933406460144254438405008966108429298445661431844833746430147413043663130984362899919788998505862950759235143198745290426530778438083951729100023211572397034945889854323593431007349472541378113018247345599010501734842781051312077738730059294200443440448275177951004331272284269784842411319666064354700079523501737757684712407906799816932461608242272560675408322763162445828175698234285006000282258913339985961139016108036045045640081786061721461785077207588307630866452291194691828838880333738948699752743558350596717158976825156266643143479523253132247139798017588496865987543372737867167202765560300761591645516292916990554765917385772937487736801707858351026046462532788389186514070355851478130973778231479071048948346663664307169049874165949517733031130470532334844097166245701269034828692778888241099724607125915102712677446153818980271588892523268955007813909830408014043968563549206458487691368282072000213341622012948607587596664376878415112929800197124298609007509713184954167506628730697681055252725526081936996086594948461121705681784601124251418437514272494401698418774697097374409824836128323197392646627194456011179858328139099946312102390349047417133988686163250341321761415805105041870699761395239172089702959376735375298387623053118978976507596138642079614067644664561938227889731395487239143654944767827147437875568897751271203982976072848128765078899034644146700175832616386264541648372909267637309953871316374195268753695440279536736972327023885268174386118042596258957970364612945366876045065566057998139689918702378610292178122788774752071403604885961923590380742712097282445475663293053193551346429046826288559108311196477621093493786260732716958191397877158873578605135278873056696953104280622513267006215823770150028283921053381692208732589401663117025955060531507960965512208741088288639874992226809140780442908756179242166866227618414593905410938326372989315136782795051351337374205169616053134023068526609329028187003617112738082714987701343734283527303563523563394266736292554856385093999523673393713837214310614593611038556228448995581617424890926628385911143407241538893994519289730662109355961248169026806660929049945321390372728182676709257381778452362202232944373787596621079559924724548709407060705177201608077983385678494477372598797793798342570263233720954948350223259229913324307492241831560828386690475009585733238674726279035175224304853405348767283348782193192185914054224680645104010113731736349805704830934747459789893268476340814335586774466998740501786530676003284324503522458147979905180664271410943874750694252814358554880041197336402571376743925560620707983124204431277317021436772787460947279239897458079800771824392859431099929164408008264354681525943010953690897657665406159874642883973528102005297007449198239297646253304302585163630453391544022662939115260202376428051766697835465227199808918918202644803984003358935286504446755867137978371609500882065970251280600963738008516869466820451756958092264181073491481967723928648870927233306429068935150391582373270900400086754873768300492069886443076334803190555144911524903736456210919890247089595223763309647117670517508505550197689229682669012889208538458980256101862252083743016033320881366022347195686035813601690926216722254820706596028524318039673625107581080169346836466282668762369819567942436676775313006567283652733942446974737357143360168986940352992559057118401487241843511555002034179270909015732734890137614416466074091113789973910078356341283566518054510031079395206466339137311181912827006783017994366024563561923594402578395011440455235641641655512719533063326407501483844894601233180090830840673140360633220368056721306652828019635326158177214829025444337565098404372789896163753578084973407697128178213917471046186284517548239544521165743075562386625181462043474144178305538227928520510005814794820006242995471355349862478912987746064485591338899829662332265260369211342141537728577380480017810301953972895973639061438867259020155609353290752763183303845869123870570084650840509279009203942784090426318955481799259860455884480059427858011241405079367575043054534926180010590530176251209617792138154526878445038359460225516298976142029075106411140812445826087579766591523001380664660735999906705171991943225218583417647706399452947324044057016490718280769460363186633971440642251589277641460194749273774089210387662573423073974866747756486464431301407022062826730230546028208825943660648433680409845276347089546934726535335959684538331559843918027128960557169174257851275059280415782317533352933819174510130106371332223723723734317672570593948684436247532591628039009621328557963206281462837665015759061641509131473853188575354338685222086810900792488256149618727432248337381919137714385474289427619054670015535331139044975258065115959410082167966111831099267105770829856153522660360839627763340668352850739898406152001539855554946362859673612386202881275183187583153733930415531160998578975894183478741042989014589863227560746477907744953982748581780853633033947070902915189430939330338838972264754451469377521661407821349250455195340633735457998097483759762260109461133391013588408049292317405931107611836768795114735630714804172065211902576452285818996729789275314383402015378711590146045613399154922278611371135251974011759802132358097197315554175125090235166283169324171092884999473212624640935764900057283150209932117407940347471039612974158067670436016683569073135125856502910865760562903647745205737869721586319196484543000470813661060776661412539597789764779410702479547952838376442100533114604976743445865797716018869916541018287129038444359289670115462761606691960105572606476900327249466781355861447802796478817535547217058781941079113503103264518817380204749603084289786842770082251672557694097134556183107104797252692422448165139527550777190288485501332514483732333078090345322482195503550882314541557348421543628770512993175295368800677994456485445820550959942782863615439372387149585520493512874902820901609687221663230316897114494583071481931545125937597989350516476023062595182994848028955986866746930650879782197284825549323896977602121726833221385797610896535554747818925347060929560505277710116852570490789304483016427790465252037758886444068390710093146771307566697241466783945339887206134139006582023477105231250425553136402362666125231002461018331465649239279852939341460431834053859796048625365433285177763319104458465436336720868019880326873429530238436655967615817254835715536797700333576185460209256778381323710089659745690930204995873606901836937555682204194372670739816505897037661351131465594812818466514800737190064719515372983450803907602366163403720797350542093326702155046433474823302273918083937642559814634576598826978101304207596553320806738896036400151446295207446031560715402789425816839453849249822942196953199612394057401084958943697270592343881512080996105632885148177585416561856675625821730490599369031120536781526972526052258274039586320411932713780648214156201426028913039963510140088602058714311732036970265351255290714345192617457079766761264478536201676972663994128094199914987847958127797638513061969391378556806942426353822942219486893360259746110475652406254186800322377569912458806335341255179276948975941019580182033093441907959531167495466353588014492062879945733413467927627670648280861672955887064914564532168122809791740818472335129968268215620669459875980733663197244293584554030314834594410978397640710330581668045581373530304851769778824579486330729381385553459871773939172087198542393531147125011246980798149595556739594290360358732862214637321327286034646007940694601373437904534969342877827859349808911111980017176074823584444315034213630655906164673079585327318308944095300572618007761161092271959426002087494609518708201488869971807122038423600305964667841031145921987274931811219317634469826158008395846174551324036584697763436164947333617126355682538363734028200207507637538845821272955267773741900532310391399183686284245670595796432817308846247139405931260520672054431638606173132964762636330274413866163799377674726257579482974309983002896645892403988303308270672152975039111087722885449366855927844007536076223917847949081049481605619410134195949744590961986310640962512602300908344746631043729260806655184352885727769995169956256899611958291037953240487063437314105613778609646761553897921802990788179631715211856985986893065621928235816583407666152740854432197068896144337235683725963604376524091566470474015358650225813728289614892684985034084195303422647281462653934839094707061909395525567694676078130843072951949452266597012617343882565587529850528674720180243570829213117697535222460552253107940305900313339263997474168944520024378155753036454845738692284545084955079404030349644566062397873345314937275668401699266884435838965240689207459227130629119122246014436463545112775282981697784557570911428049226074838627130318361683616218582886682706693739310320447658359775282960293471325002153592420390462514986512696442490391991171466590834934051760680923560637025706262781991659549736281614774028986121335842115517989461591100541678024763823907810686630182889623463782482637919105049223092612240809546855189167099876762473544986919001052263877233703267200307189463438713486661364750548187590459630091700745478397299770083497974364503970751182797959240906540406173909903268903479045093382597390946311646931985994086627109425400975972691353539851648930626093800027498689759418838348612482240093672942539661732169754373336443964478460304706388033327633286418406735000139381708739257463666381404769152553507438675454648941370731697028626994035947592147432128884309379893985664977015733764088596453137307766909467841520967210606989056719172942033643480666078551378416199653067383030544392426675638861621600280670463278035736971493198626733946285189536426192229940775846374054330466331077793389194222172082083798822223562502852116075039983290461337763762193870006310303305264487384382355706411951916464911462880177550185239097044195744295385906470359617530225414772356153028486680593898439737974457624419049444178423510566112926702408482079195065624681491892996195083318043569698788570080869992079313081410021663744215895411577633029776781266211231060578808452781602169949824814664599403555478878553648368561593698501169570079642444791075391519475547696093078458540036627732114776705502180500561814152750961162575158455330366551022606011166130902422994325048548507143700353023239064229648657677140883326539921046233930100537293536532826559640673427910180163261513212016396957598927572124453397073418320359203231294668003128316784633946246172775251118865356866834912352926824246282660201453806570587483521039391454321576843774155185788849338458716853404859647257833537897092668585148769080074472612474550849132095085861481636967475235677866476864758171266366118180548890967966721682701247794409760683818722830797167457606905129229593549519829900539741827549414469351393439031868544824721051221645819411952329121580134243825565934286325037891727507432705904309110948073541593875321327785066786329142162523975659408516188177053794022969266456973832758122335075468062514074342648949001715996896626115082286865987802843374095448573962500304598190825903753385454942925535689848390740627910489249190119531672579504629158815287439388052345281625208109791813403983021999675972482857699115767786818069906194174195749524959833913195501394516141306058006813377774120755008617147060268967803761835162238443116388790797196716311811076111142530445787198245223357567562387580842473080209407476684004704665162694422338375161131801691751917533166513088338978255933341052944750788107689736645359452853794464359481179885928494979392262900370567898330101220352364351694201910675420656034005345114036536384959566742400325157903182808437253486913456565564559486148237453022450751794165152408299183068913154777044699473979705965562204750330356711868121562679378434111829142155928625535873662835824685972573563475806948918518550952546394816673209665854472593186095525795875432309661387276296620320811723239968796422267067014942550239885740926175819766341272392252770971581260843565885556348673665522073669769697781563636215448600035319285173851094951690197575665892169996130429785105718509240256391904559084294483851919520400361417341186646578332041357832381146446806272565612645835375647652138649485708199044713031676168505463302668956371744192022065387388392760282529699417698107411756357366462733676861525538007029642078839133762453525506734354648805300528641821984956622279553763911149965708756098868549871085282638145345567027613484713429947522009673990194454204039188636988833696535316046534214779497470902736367808594670897941944395580866543464400455070213421409889060178446919016085630724548823254344641781974138979102660514164089335709085489235230771511041730555791309511821656158554652831885746963322467843955277250389672895792226852243484536374994662002210854216513895711531578477610273164092337388835775543603461273429940131844331005536786389804372287420634027024792525443482526710204330164449864695450377594988256773929293673120623733979422513584174432283434308081610396902408569600410672827147855989546661708641112201423269531450404657549188426162801055725418794808002092439967041341142717663090110940906510080350980306450418142835575741500855933143116610546315005490868216693292425294432293035182079816177013827525573349368158837864935773522955947857010315003738432791444260644144108492628463995858439193598045068535732229801887622091397221853599007011470877590374665171870427890429907274015236281898600926961646500263280836118277624520241996837113284608787091120940079182407790336431310252656517837382590327189130065743602973530686990072856025719707277140704321998251985641172619833478741182499252895528563412254655181373265856433851404310926091531723323523649043993402137471614415494716919642524774951708012249325331165963978160742748269023884740439098354397841177149440084019614300415522068899971929296294066311121636865571305670943996396905479744576119848496669131253384505190274946482112303647576072729342061071859668334793361591935323460462394079041080075537873098080765988824148565691141389042029545350050912438322084804388369584164948146198365825959014695145101674238907087354778422945387861116285325858365741520979353209729056230633753785123130088621179190968874213823627497940837452212030969353015155977720368286334173383222909240180433550302653675148276168369639074710638564945909926740577566050299652497674326201627747664418810650327987382204585606177558863102406208890193281779549969063237193737090701716436488360210741638439910946106857124851770396343979959982059726881335804269053799327468090982452654763678027904485475809881184465998646349824508370290047033799986553654473417074049328342533478145311419438215614614430795088799822271126473882606122863096897102345015139053420493719714995666996816866714544700985149610340227198774509539190550223161419421763507178027797626075823419095640583654737791511459840593802290131602478360540957603979960983339190815181802481641795614959923922006844031599396604797187234938524393550379459559349286443926013169013886334598537772589404991406426671831519749478628396555987788663306552892304604674885752253378137745640738970091054204466299391283884967736680289172288627562830161862738157441078351413543304724033178692323329787840853807406604030542236319453780206687682091172739007883485415341544330445328696388981920694488365988649792329131220542143569762723466336723251840006561017128777339075804626019903813155556205386876433986764984409028354624305798932730744455259055260690814925581423895064540867701656773199160332030148901889472969174098334441096194191276784285245467568312203040372882466079177978206901841103406227474891899604328877512187266440754852618226160818777513718779047277236650083113639581406191029536589374811309311206750446158159388368137153334302487162372315396897113642230809591550949805506563414750625772463422421073204164671708886966849524124374538605866842409202642415930700212613755374544964089395771216095904708376220480217219520725798237073434527245337912102655331063983390638640828411761826350788852700641577546702692101694528344067417870089889637890335088398395452671173107193490732056068924415555174908052001620023622083124899823176169067802156938866470377060544187436638942607592544770069380578635757303079672759016247318152021797280527235371006012821011428437427148593861967874082353407840430499361277955428773422125064331315500301563357738178643234953812911286877898365237659873852463749569918854145071033783362596241862936735325713083129241440870067517002407992622222132510081652510103413119654346388204914619404874533081968982543629921390587577219470591350777853307424414476862209671606668088765058537208810625750015963911294728611282012145156265261022380685412989105317936997865596054070468524448416357639771078677732796433033416505563857921388920626686827517037922633114022438735530344831798263428350187965841917901077141926669419250540101977576335587805508644255524781355223183589148321437685019145347251912332776791273588131999158576934798156427240025318694324895970704955911900342860142483683456258570482936246795692153013777498273321271574997263949772853207207465331567324050700954783397720595797245509111484319784478494320520529418321759376436841699663972500061582365422086579864791502212405496533734439855761918409926672557934258497808229096336720284716159095104993243554346750824001724234277484213101050791688515562726941533159452629417942515891419822595509165160149711024123565026630182802413577685493663666406955272410650469331485400678837411579603526788199664649759532203110839677541456123530174916396452898762653940860843478249686799094387337301435586092040524605394327280587041880658627616609812796175477448884515369810454353684392490643869397866263717025451282259381585485792665574124991264526372114952194933952423073954897446146133121645856941553799602716060584911810320471139931885969838113739005012136823392054151809940692841747822446955898132999698112218007104899061175954086016996214362085282883245178748862704204870574842911988551946473585860318445422361554242280294295163482755320060106949723324106944139179110550645062719544935773590315116458026157073752500510212054338095262492367688668318452613590043104272022745759705563697449623550193552537062708872516856275405833535353281839143639942685722776867727544336200733257075698328996695569215291390902720164300815301244353459656810790988223942286522661159778333130920107347620076057060183416369611685422490191608322839574834121758890844391142257098686498382352104389175310671305836406861830180776921151569398188330012304342796381584245641928280568687019847022084304823392449634585036139272665992582958314445082424682739443215255707610035187464440747289332719104794748083379980150899069042082771289909112640040028824503410252835755138262517019847809680082267409312921785447742684237476096704893438610019354563621819883496578949339536231755736724473814860461449910402767385633716451547008415586915348216689225863590365187107062052196669964638882367008898066776341702927130912012548695340786066276432628267885881822808695276321229186175849022853995076722602572553491677445800105296252104904780208777865778146635491908123534241596520612463947366987073645558494305715639341300933891408173289450132367865006110855407733782244147831516610126767084202162073257340795361978863668100973901263916786615870305565987279977887746222567817277314890825800886364345679407841796913231467651839697223334663082603306075731681536836146360683672695865485865972199909477672465470038436615085470132880178369629644305029874177126224828142244132883841772549411225561386452313926678730100773446374129759222297838140076024906954417879294125912651969445758719567434645878959097099181060718844410766944487749182864410093099762589850096068122880620235435959133450018970851951401557059504205035773635044973362862683902723384095637957403158590429549870923763613654997593569355819270789191822141400189800240798384413484066642762677461639895586920154084020915874590666486384567978265920066330555997060330728945280415781929891057736810452346845949983559810411828402094065789113800221924234042210156209761787637290383159833786647749472716007933008763097144806498796834964257442957584699323654569426689693535632201691065684787819446533131644358086795212557329091079457368440636617004837922972199149669300534652870475844776758536620261012545037915397287261496725064668720033547992123147699219768203005103237287613985562370687690117078494647538531621492148102848680744601971796779371014336127697598328985058344095307262234952461901276496871794792778686028422679534998806114788945683276613397265272061755729788876428851653462219402628006272576658510711982755928244315808628648055097832733540818182750450174785321321937506936943696900797131162557796306866744528732066224635510972057106956791798187551411696298477545983474829448476320161675102023397023534585008535455944969587881048617434825035874160111511547457135407654150821519731667478918248211098011419984499021466283305713088039551642808393074023879422345801110235010903111108900586197478742908012878791138145760554648812000019754739442222630889906784585307500073122932331905973534736448854396944710285595154830529000736242790185191155971299476971568759374061723028847359985640677380710770620955990772694792700522062690870173576297699901312752080878580969454595679645470922161756336820406786734216636514414190679734606552023173226226029184391966859045317445009027029185391856761442253779441665570424206067101350955292738768085229079018980264120212942646638216945258064139653022140213894866228615800844102139726004155522520166208529244742191304417070005400664609035758433112682357383383252722167240023216059991305252969632049477059498807538789409821527385156323220171052897884311922874405820739578361539878529575314530861246100108110704866041236443662395750950744341185156429159631625402314187745670310222982300819099871701457039839380535241185002035178689182689798584836702796188771187988689590094006950068612627587449080729333376928214815786525321008427125802000005549128950217980777833190591629270051626382280141146423191765517475884295288112572570470081214282946442075351935737518960268161095777770515895676834586397910915028762406845313341351223240583956904349009816054356801345419000244425494596931100758795347161979830849483927909465692336458605563784221423104821536947995983391319601115567176726713462364962677766556966833016334989119842126292731152753497605846270403124183650189697060884130274936924542834114562468367352210188561457703502537468489991619322669815072106990226321469970212042477437020442694750526777603789828775041084020600231144875069694798176148522113577601412826469822610689096523491546125259476514707156499824909313227045872214901452374663077467581303583052338731977077502273584912374423615631311044181075638464648604906947467830371552575852580949103064938527229703315051496311370909045259300880068224271630226055372443328244338830589831712451946267920233317086130215804649693234795185828595932605516415261178207536514003441215679708234801290210733262442899920909857364300767819995705844917359331282463055991294164116567459220211624366957854730051081878634160591298794256219511222874654254595128462559012707069519047564091548183948752713044297095786076903038392435482806492377547225391850637395184246591682183239180054701130369083757014948832431992101923683326592648716001641058683821577329525866062154220543145527358192477467158562882814385145558707994873589395428050067375063741370819993462869374832557030735428535825573355879726927033072536929287511833700052615579332702533934568756503327486696110200793439156749293852277196222036341362053927679434997527241918780722265459719014469952367925305494654600539271982557424284200448614792011439068138220050670710773799215304311264943718161744892962747621248116505110337068442259339437391830196554532352678725610378786916719259437976514193504174206331541500464289307258576368114155142097949207235142561555856445400864767133895197577979111099453562042448482268053710336158648049610158344413275423427908469896537117929467457886994741581266133123511341509421209355994344013891661618587539822150616664125436607761768351858354089746781894971843487414496223174179742331725834106548406353145255274743668863453100391863280588713672687255227486806282633082405832160690076101032186319946562201451439204052993130993954620769758107569170196897909401922978520482591675546142394931143255518791731081557790810575418159542126719036533043328276478219154840169406055617482217774621166652471023906494640159368532786152465709864726046324308357251612622939840298364424122216981042404923102735225684607376860344246828500463737992839643913312580967128899406715684590604034485767933506542452938557253004979743281228325341781640748897607984260779223597650591076714501648738346717897177115752193602548904781686960367818560592759088993567150858372947206230019271426121985305818086543787650264881165091253673620212288926613657271732037682453231444786263716727322536003967984017480725756977815722878413457815468576718596777793397976462011976189968546181851515924370791045333633323295120826615506703275455015857865444690478169937118476012620788653985635285799858774271531481017853800509216780157218089445171509046291258273179932945132213244287599577134248817650656715697392753930325960021406390389573511701496314172440260599329364251269776280374840201023286334784996227627871004987653654574404196569082025627963092041534764544075157988776410693970138283659301246137224635420172780254662677221872019834723879831139405234601407102525876769493647905946897481446299319303569513679018610158213897258140203701514672415511840378100490090295203921807124480416774745948117991776894926944468754885367855309130948358475737887435982139252821008228583973102621214897818797918089393820890792103406737541533698599908715780156977308655256277477161521206647573199264918761306695839478490443088478144950092048337043723390761024103160362065543649748457254464205152206402994694732488766390890874955177829459670048401140448700896562722572869354185441037130548634974328218967892648506163887031917131970185065222898249285635486546164430339082218889795143393555127014892003366427339910443095195503632324149705141040493845457552684358016238684211183325750295408995974744686068434041780292319725824153505176970527396275536903337202812354349173856273488875727017052864800169920727730510375463390027449700590347091106626743824260900099537089888517441932617945468947845961678953821870058987680483357536195991304332898250156143775465699275998267079110907715088304025105922202123850684490966461100617393348644306304235105599151752437832278918067384644369289699698987327379044279963331845356853546382679194024873873155060074299672148042028497166893185128161414912341117507502568313471463202775009257571285930091805538377648616999320105350670619615574771274492856539052068174993991199520892705846189431393151831913464048381318429627468948125294003361257365411427489335329119125170987442935139501346678571412885873833253641167946145559577174431980194862094041219715149391522350267989057917588887003805902566069751515126490992202005685366385322470578216436214381358255095146898622787730333251793512009976655463272999589773877199599516782636896293887048743932658218040415985151425408179896847894103706598477662278279729282418534830074685787213649842269111535127950057459888076217941535817606683691517935348698793444025492275544150967995736992291876049934224922248723773594980466175899318121104548131824617247589674723440636343019906176066683685279660857942686827114249255034480134278619076913848004358824492637293798516607888432252396891805710575059363495809093200953961627759651532319016633589967468037988218549092075895649595070566886932437315593373616033364107085961431800113643284609543324735859336827818190593970421427327763216025540001716898999478724307946431165267269625631218555578115133385877624234115784820444886164945813944330312968338455414993701157046089986075760276944953097619169701002688843651168150210420246686207333267216476762872183366393907345894263320301112223937631603607455077602361700661790645484959961369606245008534798737239349011035581579031658921221074651892909126357794055813018260112683217527028359809084501939563115402530538244635919641676842457613694511076748517569458208522763550211310038958751977131690141653822554650135314103947500257490948480347718170460499201921011755427652187336194441299529351564332924666052247452157132484172932454307886499107446505591459996302051854035352405401231182004653394654405594927735447468254672129021007888895062629288921159490738705590044723089597730936494072943636887462077786525791311379168922104355654261893387654105076760373627408613975213037509074105481756364147030667418894286941178811361047285531185192356096158514997313245703604497236703597331677952345758542916384231785326796755032343551394067347359887806219093445595479130626659263513820925583892885701468778308663703936187850060295318008720716782452763376516789291516115032907469780156623194020636736088485090474821264430940215123569947766423866230424262606255281842220020848600655065814205868483878502371384317891169058502970531772073584334196114476515576419885627392545147171873136282729377927048640201542654362920009948860158402548866757536906987362872878237195993615911234835190102977841075530519929331841923783647312787439681945451274373580068094653031892156028890655517863920801004087549308673180179490262981760350845949124484072798775808799899353712195625418980167941811845005412643092083066410704057655592686970007713748070743308133892623618813089897124613109183552606333036884623315864723037449725742290885435680352796116202717339193665775529627554764271990369128162594009456071295009691667009888741974108068244139333298313262985329171685596866809931679439944749793753039284172597901308582658558927352338643453960751662088391107566204763761743207166120013234325195150231709141018720734291103789197411189706630358710549555515660351087035630313450475930269309411334080323449954911492643733801741488214370290734468653444713588637270295693788776011620648025692988461951650979935504293170037881733379604606487617108228681182058699571587774971060925091307976344022986283910854594381773699533723506924962298539576105140463806354679966661893909497621161381175998188935302110854097969105864704183250576996666858735044315889474379496368445480058587806217433215751951909078616499688293431886267898257701963230584665612256490091945853818672280700670231039065168318656929933251000970231745278327025732922166215807534789374861983129478476516224022380445232038237843231423206993066602900182974753891496955013316917577462238295306291065603900855047523703569583140784267394875273343239790019104860569722679517113193942929660448313964877794869478596703642077357122115340527729532342374861486583502694140485329440545807544437419275822237087579148820503313744550732153859897701965523457436636434366340164349743312576620469654037366496180823668367294607633446568913352911948692217617957755234498001503026842424010076241887072551526538351035178736092716797017765108035599027411846691349096610244152123996983020020449627942102829467690129434689802464218686437166469424732680270619390928578605669654681228973621548069082810929480128422351262718855196445603946594697474155990345727859353889209525242038684322068981455953157634660549086720524178470164567608573503982066634344181205534290852083539467247484348217909144232783858923432908141843350803028914919346598726004094617979343698485410366625854762297769977750385136273688080729464011584047650355537282326792220450915771595123057124386159290368369636675950989155230290873149367263931436365872789711223783282578548265425508096945450577102852430340117285410899919613233907475526646988743202647542779215255297118939666283360729078589437537621915697104813569732780476748066221894164691082391216281773818124991017605268279013715451674853666253888487173764740412878051535105701720809789787141035224124435827177616533083317710898051624646273395194309628714404308324049697799653955095032161968531513844709597759454287615738271983759870478436868869479960444763243327400687616067818261562082002682828516909576785693286113831743542065751566894924475417832420228312624628871859315944221516344830271748137097647683255280167260089592225432284406878335019560141451835144672965548976281597292502621684316844301302281322726500983174047520867493368230912229342750407494041065481067217821949912806186827028355826446535276138300530535924735656734910879790550267332070783989694915358741129402437561428738233155229658229466650012817516060835731497682374062547155238290703116245156228738470081471783799829296988752645164176275451007041212497143585303331246917127731693377436216259248265174501457864908038987678969438572446433934548444523178836335638723442829054237939604639586207436107486324057817553968646574947174121889560924770000941102046269876919397177010302355630438153362847930015425051799831921121001998503756359638293073060382267821714980321386831477432088146346041022481290588793715008516121888712484852597231664376829267294746355882174112699152097937708133272988578789171399045056645707170831566343178531000317402553148994636786283277194702751450072094483615303060273950514555537985444322856674971698563452335698488056892037177251588067404549776303505603037312394762589433162514771729308797042917384470198185676630748575298575134824285930020575587711652770002577840466978965266431270871889870228927339840950181570676771059401246541910101061165565514752024997781719847754973503429329566724327783084855263189178332952097725404129695018045494246536364439854395663336950878233624438698849513708259089348526781664997241281542243406754002889446070155526269181270368135888492509474720630226431345830370842109031974148288005424401168839832322417595448307478678894035705175985312098059599368964477530427296628451887775943410782838282868900811238776475016889831262264943880059750245105560297531765918325302463072835248765985722553554074182960311980866228594591361811832852950793181836993271427692243149195447572384763941436496610200888235481335490302050835655673823385747026100583393214202543932086856735972970474602191619885565833987980213059976775712298363834462937360018814387955627293980182595164614826045803217370312945772095997071362807688372392025018791494351253152828285741920083864157481101969257767444727393428590587215998857109067869292937556273152352545136215605685291197189579725274819506712465274654808185049443264972590964411500574908682431482556989564589231089073937787495214045549116681619044480044451583527222274997177788754052339592907556492475730597415298627316564026197840500306047502007757897929167184068406043898549347216763134712272421799008083590249240389582569615257415134430737206013841624614520521981795490226567428367739540243123258953369364820180130463788570473398499759366292757408085582686318380602171751839926860684288524094238895836880962447193433977029234825745242726259153472159044505173873740081322626906733330205859045937305804302794073896412870471601006063120506010856699354924315260006323578632360507149201514730034721789842391918138602175624613084061045960174963987989153149910411096974125239654900008466683973969765261651053606361241571591411408123377687969658185027965673231425196432831819183595267475882423010470863862098599251126887642795004837942404747708725602835294944876410496442608277664545611533429089654256168360860543025472839151861156524912929274262986875731256582541639646674071994621704407417047838134233649228770997291833205217376217957715662338631004371454546528454618989882860093079302695302913774803145168073552458408102561260914112028931286722763748253690584674309794699498565494246686122637443717954007006699483273519347585388277047068596735704187332398897797644769017279902685332137093075739162416727470628502585853197330209976704420759215240506045530295987386379314492480824782774249325443702720950017591327847350608383996686445273657738472607138112151360282959947961257242741488533006997012274585895038293550968434073371017485996543037062712915681981233707168341145551233444451482967897710297136436803975355491483487635921192145823960110734798009355897963468646612100778664822571585513473694759867697711382834451657137529555248690779108783305590138306184299373491797153488179409184666543647463307750548116660814167727459642118498866183518549272029361062894814422685876693963491685475045267148153809004235038048099254572565491342832342585341294599573162847533693738768342479449793295102254564922724891783186648507238979120496778879151675052687580588919398417047173252111452796769185596247648283317215363030436616149156266438541729761598876822791054828780188317269273267863194289702034470421116335351392185110627050303433094713037062747115003699983283739332040109696319953021240376092857892026155647407580734805731782009603420226580049442060345683203299417548839774767642700203744882615928193641660043692086953815910038303516815449578625828958674173017830732931316067467991119013662827675913261380857643236426025717616758795875436263341725148814513145766924127133804254714643078984636830106154776799791465715400730022858486817079076875986183798717414356615975270694976617632828651566369740745427187662721819828716957195661537236249481504518875427016839799450101135622842461733334523783957071468029454660648133857663474812271376083886571542068331175286134343365320738194933410744140313250626101850909902726939515853879768745349007363749653936343732985427018845060376191051255584237969783319969978373388084750182927699655942870830657919962061170893634436074715666410474530031062977258369481715823035208519758996000225607511568635889581397177501996361587724154376211054885388779285606388860927101420635814638541495487814078054521321395809493971599166174833202679784938056296315206763431543579037975531343750902843809560337355201021551229776690832101760133937326005325086938683186234725963657490636699485389634692859095858524788260360473611746631516531658942974949540363065379511490386306610111261707429117713521040049911334642654881653114593683386912672518163876638772357703857469152781763478038672364006245571610390205234198848274378491621551013397314694499967478797917274490167997990661508401502857079233755273559664198182729361730185666854493550099591623786735275126383494996208381483228160428339625830499110655294877928021302774916600483077608489428105237242060156826115013984698966233531372187328992771392856891297034477229729062400156460536021376516647056695364765780348194662557800745173783584397536946474806315190911458219255093672805604382379231377562383721033515481409448639930858709068039263068427667071599213949938815164009031186652529252552738551612281767657450511039696323466075491472162921051253860982732361102663560004987242735871919224504541467748736324952890994773265021292751905579538102854533638946130577576780880099539631197920061242713520065464662817375503489001123669417540414187542149150491723972588711861668062694292922784851956583831259822383231229193272131053573353956396662702215046443002165971499351132893581875313481136142405319244673803791129401571110517825070248693737610136739501875787667546867653205788422281702926568224834901973417536687741359640910281944444925333263153549683589581555950435295584215950858289702568849304462990249004800553019028897488690080999178432819734182703021989306516491582574414439466830298824296602544630958277257346939782402037388244540235646973841041012393173638860434635549508856525871339648375320377548667943032684820300397898937242721122950333183616056574417395882829762485134979837285143347169949329170324494345271566152611987084926214840433114289174961428651945557300057225078569050593481286352040327572243248702960615023570592058895561654044995561877382972679788487918105525742781092100150886245957313713058966307658616666962373234154930585083127485924482798468058133321552838242651305216268646484541941291902913727304476875829119896903785718654578069265286023784890137047823283859695141221158863645262532737552732508967381813457062394221540608387968762234412944893398239208753221122530746150190493019424570133330748816250573000766985484088175918219802340648988994248260054716554001266640807727412331812881481732283151131077218353976992594370086568511847498569892240652725844362718936317340967203713659635703116068112820412710119409022077375866706314054424663599252389723665825352276079016944837314905324026876937982763104132352331684149435641635576936235247751688268810881386297772958879160318546664918536199170656532667218352579119802257639334602685759438617512400256496224854834211929134797433508561473444453705913129801384499990274353160827464322218344650998234887686585764614594243692126692691889053011149007480560915446692712443749565050056836476789522687145620864994067916069078346013150300017501052923929765967450188345559988875306271018389894630970923978295129143151140284893682779721280244442537143976542165546134358090290528269981519652559656395231180902143065516579541505922003230617326081406693429747204738211002104112953213580409704516682188989642865063929782535427585400159888375426752419575430073623465808713156468046113217533040791743329514524413823136657950503115125354493096393593530928111078188249927239049411264380977931820470607673018420166597268776261118154213827301863379432500628664978539058640795133503663246600186575159423639547844159544296210283000325229277895666839692239634789893717999375529345566554587748979904815984138769980053555649687784775235177549296555115739547972832961494519103939372498417623298952982157090103042672124030632058741924048039850830217822112315089889996044190782215631126714585559162199026261775286950665450998575604762628388599462434220273727145118958915704828815636128653840519589971289290775043651828581281570964500812900045188915269337808715368033195743966877256940319397648240057637756165429521008790876109862222517476265671144509725239036375084079190775960543969341977028609512740263121368881581632597945990463904516493165795928094032347942737697422328880144592608383120297439655915729678753105754485929648507149073653532636555760652744205764714594865703795309645372941462276541765844038542580537367178647138162945840698877917833730284810818866994746772444689267661719709016164457086942260184849288599932112308953862641260614122242586496460209743504102653868671606614073812093497735663777398044918231154740534394135973874481510980719632247826762306502977073970076452736586607843844711623455658641489755651316353185351886644261939227815816112120126014866278165617857583999191502944373532265271967373356738204686580248004214462343977605881257693481546447155048341037866197416032315873164208312844041771406010764070565972729039976299776987585669070961946498052289922336340623294253729088046407039148464522069619661327686582378797297849648658273915196930884833198654818699316687244091770198228388459950377972647151673962681807967416027468811290977546762607771835819808365238969067197961656050094294717641793841857256952480107262705167463409604608430451779916799297482754238492444317063677003939916650743819729168149744643535426641423569473065952824487635687121856606878513470615802618458207469007850456481055347083198495913825210723992404604997681480476796567401176431874729759347181782082941186832922637571312798098737535542471689425572322176218948087693346693485530443070166563376643959821538366535182520461824281971552860831118601454427888358907510194724023002743841183740111792296355361082352898723925126737996938007228146014749534258284633997959742851827953413704566088127959495464288278857482898276683962363495141647937633218274117639427825875962423905774924745783294914974792359353321259855157330500501051723951907907746482574651787760587082990556086591951995939111607972083348533736306824257312866567290409000808386724288598073325614944003181776751379071105627877859598051603840746887497665492847661643873509719824845503042632432790461449293311695853899694504460378996387736248868167700273674541326453177515633858765221793079003554914844637660614338290252757444886661346717426401616212918036812911320719776329951940814483366083101394168207141428869926756312999524801409840201575551811688777318732903289276525362887155277099928872687600158206742773384225512709149283259079581946906569896298893210561764470359141552546102284689610374461135066740636714394991504373221932852537702229929553951507182058548125281654185630880111894564155620590721618725529067304078195240976047897374404194195390586566619999541436329695281082175023760820403369566658053774938059432622702852958848724592890342075931304033345943503221248786283883975319541206915742803162750368805412669985826352205860603948605045246888912584662725706627518273832595755933347654675836594154927318769123929173829526990418406421004765777787804644972111037353020844575714042162732380728301596497211044176034085139599021129968029715173378524352205992451286688558885337403010441446715290139360404809986635008181161925993531382332908588597520620027177977289794226115123569563359587369419979153598282912000532605547857582439908180287200207140117910321250850278498864201015293453917675576279003661841882761983496025673694005851281936220276811260487280668569309368871546816889108458347866150438855156463466815599157025616909870860658695069714089081567306766648435785838903349402278266376516428914996894122727393560663182833558795905906645158525197166721834741493325872746389357827648862687562645757391992070405543701609410939748769439133471224943132651305654995498109415569625595525745336785677339782259128097922121276059588682895037329351180628126090686940065192870292939507347096383476023903567365374475040393036720603268503845664143811805358872158397385085169021214780044958184420234392641300490612723502427261927605583760718899635390927894051977355836209734153263551689621217096170876104170293060867770581179241792386856570131114583597277634170365887133184232856004300160509658200254338521511192215228709555690249988649207119689355365011884436845312451208738653939824058283529451426358398731632244395221800878653816199630475810941373594924792750311988128523104904351203642408864775384088194841237671798165691711219056350027168306793173030397348309789273028063617214876704011714017339537350476542649275199507164482292365425808762843107880329618986205738931040856588813593200887709546119061991998108686745312502662148003646918175984747526361846858589937071491764777371843900789201630757044474838353951300516167632656440539995931360263683919350434262297122783691242582382688465219232518788802259985947604985604677729646123953849696613947655060246592807124590712831239780340137681243451445993070393002276115020788533795408231394398566711507768619286237521178909571733618188663861174363476621710061468503828860818996528985236928914425769636012834817251596952210026751193498745462817409812799958579570254760470312893679993103796989439941823845632315149904889929157577687252042784396815555486884183199629246285568031376019691658631536633203726331081513438554252556527373188459190153254532711465250632132196498179027360890531062522548927528415115576999187939697351140740202149845728798263783484351655093851276291158840449755264752647074824222270233182258085016663785575212545490697578502257452794030123537113964346440927041765875720399562642598196181763867391042433723489951377825061531461508868714490500568003839437689933090917404886812075824894960980553604858903792601271830224219336891736322285110552136200041906130876451085910279176743190892483569599594442176381586057343471017261411988547871060848133354495847478586213566070477618919531916250715966113156910145178021284812901628672852679443009950977606775450515271431889108489043113483598304615066826852272782035787241625077830159023361229680413681176086908260540975082098788746789677340984744253027860805564885191350481714399727863020882845529291696442098008436933632065892564097060138144624900383875993291181573166444534636948403427842310219970256493851247908048738074103959277063522970452950016747713345769897307542755907031747569000278608231066755556554107787390237837982554791269756657735934216028938356818135155826412802257085385469161528634713554071697894232273831802718540086883598162733314584043603688274524638471942917734194198726453127138435412642234635202371807741514971754550421195182268087008946328032521185591490922457344951124473575794863002997864237261190667552494086920783262409297666310980095030282972447783056726063817166260173987335662509227690025202074695643551406299353206288778957057752574962660861795062314948701795732396110563194221140505549036855225903277428922644937708636092681881149618222012774224224303141238322141501802671681364472342090945868093578735848112635573705758307092136886290852891495281846800787954975224490774043312908474982178689616168108915146611988949768583101400386213700447455909539712930990967172490252579437701168878182205660616768650891208748964452432181533008237501698089682641541436325513469829450697849405721749842821251624592088727228243106664834532385511525356273408610447435081982224692572411355653965540927476461417635904950757950296588012629284631798885839717541091376387134455114879226721904287281756373951908968836023456132526574390811507934775194054763078661560679827144503327132256075140925790156197014646182801069885454720911061165582743267527887779944052715020416314388296548557023569985137221325389324903400620489394505799913053260622233591865740712920736022842990188860502239356370749938863376001198774701971560075169887498654008242856037065117551065681236071257699537567567289521074227713289088300609499979359300395148089565873391361481411730086519847893204840641345883886202990482625595098229838929880577696112558559112152571723490462139076782958117596486929742388945507611930689223928322769061720788609450759783307278766775872852883228501097318769171995102550419211082685281732525340513360805907832938722874860007958145322047697849155387524677552520147334499872725083757787675465504354673154683219765407623077184255650287553238291833183426668695501881847978906537336826491862627842828600921917510787330562310072942043076475136365015182433962467652263944528924425157820807622951441936980102924368231620086954707571251612855641324072063696096567903533025617461360743185102291634652236068313323544276784874046411933015917844931589520541390915351527991905393247020145827219807833037064249298310699495094566678831953995682915815044825796157342350061231079167627781316028553240873600864329107108367054657633338123740718717504837830674367170704646290792119581941862926293421316566189995232062870241322567416749104141786481674044242803546447912728514543305051064999554346072584567588923773481149319817220992424324420429576058689724331750573486548746299836420128328558812877285494022569058415434307442314328360291617168287504386558049923988019842515435382303933833677048515216891508823794454522061344679427293445263295398457543272438754136141384705776474017969299194254592009699931157359000313123618320103247600880062158571526174199458487125688602675012968383442106170163934383836175875989818399322955416926373080124744970702644124884483796311399065796832181043386249253708521181482172004244304237839584796904485505390367774587567172622048184861777401130840963200188274057786943918596961218366661755918858763000641985149069320542777940098826188851360824349441752688942417235044489084414071138529333554241760134091662496334329809085351432677506837756070514991523178877292613444269162322653205800957404477242903697980281674539579271144245599097103784837622665770962109976839630471010929721858590619074195658589732697150431667978656520267463828407664186471503211481782318732155179663867112999907282055501334748882385189906022012769604471140963027736034513297359841019184798636912353542985284066064620913337493327755576744438489043489885342395915044750562797738523716206828596988458914176410228191442725560303051372318281096997465203090380969710164928073106476054956198085540636295334188000478144218177541974931907399678127330884606700306258249116931496245047759728929637824149325581712177039602396633868942555662153535191609727079429355989151834909893135274695038367475518768739765548178043160887539393755481609826824042526989157306464957792478772742750432022251968241921537975808419754725925904749418374466372331765445025858765358130087818009651562298703002873894951007747441195895796452307941651089342762935013015687410113605672773415528598251484503288678615102477035830908791163887462954117443912150848213270950835811494459108959074216592056310665815824300731925239475845788081734988284438360315138826243944350436536944284230334415521636809941373565889560409020874001827304597650842861242842577362635990930901274726157642358241004315858979526804843330488225729581557481606425057554017239581107055022963673863959754463012102440648126714719675355818163805393581247753464164589971862292148474284148543712078075589505228311651224325727682844434432874026275285068800100104839738364369581641272244613393342062714171809639891208988701712801448087251453864590896332328112147156626093186158723487501327128425427038308942123400682436616821188806806198712692360521793013793503075292281795541475996411472175573108731576132554007432968746193776420032985107645407576187952855154111900265705364365639155780894316912144183001749867514382564518805127527706027991418523028908817481396347988840016502704007384148951612327341882506284674386723048497216703381579844385645047111320844982267870415640957030158580064036014736548276366772350466007964866295865624629981624610544315155389151631166085203478265761687278808142154441146256988824855996973706301304005984052968820510426456169230510427954072829650316464990268177285497345980949543332482024657701706178377467614279766988891218537343827195232355649315392850789440230723273350038971565752329713176623963473472689967795109650863369781757107949491290281179404997400172828635614981047020317048403496083808701082274705714008558723552378155222766380819052003249052151898898942168489850589090348727939218507145837669840055363025748916961191604370096419493556457669621819184790907064329793448914204564576990260556574019996284639481785842701983637111293805796632005611569601762189835182640420125714254196258726478436629003700282967967141876325229443905173804178203939824886929508610344012582954703521278730488921466757615934467050045034303505681333548812164295810607651827171965532848838120623669483140082087753045799817336699987417481002044261846200809368992632261377810656080482920366994866966235886020527366812270519249755706669515665701913716510321858519091410883346395004611468910560933626122415578798622102827728122141117071712975284139520280500693684615667217607016827788312036575129003539991467139776920846681354666967542985581254287674200843366485332955492457408424400112175237671194659802725322418139333409805127577818785402762274626518933159128382243891237997991525881077016206626189141421647946288800114428935687769883939451327664716748975155079602772654533694978538553114125325123444094249158246372112986836761136150973047664078337985616542202666247684938791613238906567147538582894414055066564717738320300634807755268623510663382207969212861500079702086374406130947171269282833810843001993386058714339979941294914026899369889621873828571530868436635860255313453870688915815587389889285226276947338067609782076891173415893339927327942409044241715569133876301451936553996576418946334337333910102840577075791683023118574725769209054142628793278426639012474214126142326569744679328124475433208839682412545168964018015668783052586339552059599504312039412900358448309212274434276861581420553353809787679006268643835979438670930691453212850957516590481865708443437699472842241398913338200208282170484594970881334752743659155843126581192545094155424776719498403873854465845896335639096545017646996727214501060655499044083974656602291858408191976603718789232733130718158332867626736424753839929520336258586822403857055149927754279653613588914258144108167324273735137509984368633398154788796487720366186347311981552738183311044095662001958464549475460426041520632566006564985051727339048767246753987775818933356297561133367257196553253348177221766725035253730631218331692684974471956025492781158553457715211601155224181847061122975125082064052300769294044549901456298296334472389796348860270375549243771381465711873018181743408416038714108088437071365401981591330986629856096413780605371597462707341987897646364798381300120222983645810884338208608325197306970725446612407324344124459580935855653225627529502145083002923951658849212164669949803786727770878351698549557387089758297418105157351333022508722251062071785278591121475709939819262509070099579779119340987597507394027937380712459007668115712288323367459393388740881869720057991736326541179708407010170769883189206495742914724930591648662465314664775403505239489940548487101313506578873214819460111501016613897653649931843772718468812680750489829433841720946061401771023989171111335859740094218770500237564075033313324479198142491981134053298723806731247285500402575938681471426979993580369226991852585871379351090364458954590679822994302996024645586101421761064888151137408078232816085459058773095298106768777617128001191452598184397627192310700767127917409164269914909313212891528217467102713885927950064548405107208993644691977465548751472046319721077940606886204731557862064343547778558987735203121784454320248471812839594102912109555442984168158027359359160407605213237320879133005229003434891202216875534788033896250866774779026458372717309911928557925032800866494872692871157333134735739370604249244121703540490434779421139004194592767199179544112595864078188424117810158239169765319416850318891769520664717685748140052299962407599652941935875481999179485998601606514883545875150521425666319985193473311760628766929353696222118485483771424706464245273051906963625928671023780499916884587577876762181337263592281681433634306710698135653299073621342364465192704291270976762291754440331063629280461795333017634127409989851387133348543432094571857289464777833149844911217754100803181043814761380218851080046982487528652625628258481803086614718245815756942393528882918453302615110020301637448776431454024909627698846454141698184696893655076034244634783215473545425862874961205003637020593110037425380184806233936467573741923435331257847810730297611575933350108047150869242164290365242391184525102924431921000451064947146263372385370454156831902250638521165622896180912020242345867984921677175494277558500932822154818291233738550396144397482928891721895934758285319096282761822645841286389761769758438405988062573881614545125256442338187171491666045540624919950618745140935479384208620971759717675919752355559622483708588906228842742702079400476847499501556083919624730262861208621468366984013565326572919716638164883687351303808184087986855725281146034561144751473892846586255241795106816874401002558146939104221933725635519975917347143627569080128230703191855531838740264341815878521920617002092402869897713275351146862234978397827244734949642170492490987143784690708475307683259007864040208884630083093025035087372440952487571855394785086703736034162691396245112264024525848727355074449225986866759595477078339596815029688981250349557278512911000544545624021054510326729061318900804184058068779243650237329072633045062225136844218285343324206494926692512129055457521504330872161407449555078309449756370998228235199179723408943751817756356497441346973172094315328490753911554637613866403664790957714457421137120843147128908254135711318865887548396361063606715866707952153267397372593654489139152764587859976888087490002894721845813830756165566730494523101473405969161939909074445208457831102619149471369232413027537849820495843059102590900039822432548064413518750755700232606132453689392769975395824034477369473484466994527011826467608133910706428135492013370615861692355847781788857186876042726961211620603387166271221617947771585980113405557217740357345210081668937322394022889422320692353364386261276571112898509463407222351317499729103297357157501528609361837690150905461298548004626865969554004726002794293449457450200661033749044017461473319600581728473623526476265718283701696001956374803887664249595549655674589780805139205741641557660401805229015757890855050752824974466906518686418749471219570237098392684509162951355142834826135168860269399296923484251029255096371449884691106015726072906254906651977589154249609877017740501883785395833188785579260675051177154587207223653434010087359352461243656595189157854610179833803944079389764784560631030769786587154908083692916363814037912295392844692397768110278612506842089758814038278720991932390022083962810298072385046098189324089266091546741656466669803133196892291433883910948570205698370039556220072096443486450435302867417744729584345944271685145663082669119328749812387378747239285148676477484709597877450305498632378634560839964243577540613466742737002328078009633043335614387914165290813133833418697539853987212176374705661816091382014686963907637444381898331939227069807261801727280109068021420822688547930313616775563759556103667166236480017819893239347854368600639777619478065668126763383313418754703686964180754825364693248699391290021423117830992262330972376093157542220622141630015260024339163454651837858299655516292643184281211251119449088252805604469707293261787930454404706740726927916173513044018065253135618053836342947928051958213602855073713800593169850736287377605098584799496074588443600009261176826791395691107322954607950790013574311089733843786295844377034879817057649457969807489935085454861780996925771182076766871106028038727183717259981611593214701479045403302699852311387342974822401654883112366671749908439639541297636571521689088559988656279012619411129058768675963636175420771739665098434836710530725435977469386454025715512427029342489396744818984938874600814669992356342972691018495648073701813130955653648793032303481012620471119107745945535683596090126759221919126260873829979660976506988454872440321399212676759406001079505483428861847609724928327168214870910280416875921718165404315684885897996371489745056981267254418414486802925217882786693922279710167137751303710466480621608433028620508324809724129354034767258371318091264225328971051056499405152329121566878564370407745117571144116641246631847445083704278638477265342503608039420942176081102652348596622648144963545625525374424096868728406554972901202991415788368312024173142001801530265177526870796677643972035889617809912108330176797349672086678342256822977871533489973892692293952188015522371476732516023434344020122567535017882795713869111333479723638892347793380224212839462658447892972791160768019626536471897756650229947834186574706150022448585803630800494409695550562345819123761393094857588406581297401045389139326420186563968004805661587102221602013240862388034142089752412205676008359529148603457108887699411145512833895177479815885362169342130063194610403906504824502308983230301924993006920661721715493544374547439229180422699569153854961576783778569693812406507211009650392357102306218002832693386902008690312909124210727805012094936004580043296027114169830838241757982742445958615200900930395858292400854050222524911351879294942226082585668302585586919478048696499730585373420456341257231918932770289325854699720685380971895409798491311917496746284796389284843090679032878158675030878693670769340924109879939536121866438910576250332974646063526514143166798760320388666149156265504077789443663569254370845509097285800257041843666812878543033075216037411291298756601742725317944196016656300196330502989525534594606605292631068089666691427494495648231710273693860923681808871017031518571482284060493350232930595415517200047049077387626590840922724163978792537921244603959171184894014314303281960119094770328481712217584292310616981617602666302564797732946511443565422642574263601711815083851960354886804825942787164711063819509626354670887036753506240038928647832231824844097127813836062291919035372110075146060564648059833226950430735182006724758077436715425173678926856394235102739578795187339016993050393990994891171266493522152222390630818944566515926744983839500935285213410619741739089016280860152608909277138474905854191623120817936669458969081833200775687110868721285507340702065288520909082693513085645646654986780996739322577067960192137326211193568900961128817578710645096394636509248729715186530304890222044757828081868099554912724994333167283635118419539751043290430035713007373928658742729160256237965765284804248339417362989587525375993203706006872103311451530167370715289390018658682062419200495050311008147368667461221026740222254659763938973126873759731905373900459157384189276245711629334382128425330664593825358481259425377953459732805155765087357978945373583088675141214596534126437898691924589322596450892921629511836582833813258650649071490908155489116408058050167513089823409277472179099363393057927309593578706118825265607863314986436392192612174539495054192998806085166612496984204409000760134171337728570324606119537375025676921833138869610646868334366776592946627757435997781604200922157883886991457474020726968188513113050867075818964037237691741446556639027894505344648720895739311650202317294058440732403995308921290139835808678231325890026963062044414048835008619511430398449668974465401723645256454458811993132494202544309825815047832708140303402791067016188832478307197595967834792683000305966724239393103894690595552380938941296965204784475216478175626237411299111242677653741836666293780423182030244881158559859800031030830889242822373493102313265957438018511643930374272943423051027212471791465578203490571629179035981812913518709625849592686857429860440943547302171252091863150875468726219227452108724866073742340930944083557274884899038281962753935512218621878128769939408435057164158148353310831993897590905863517734484908832222017894072762130328827482882009906629713930770852116060819967672617272147625772327185001758328711843801912263968795410542879681532444056896588063680361727593709055477112167817430302836579623166973441379559538916065861385091659558809852927122689893715673387545523954134297105024918533675628814117637428263580114099784703210791685236524073537356907298212563250284164706011182625609163657746561065256058555129297393660124961049135626891979268058424361582593891323405908643492188599608670797078047480402852383235305066807980027191028304067037375126658973017897804658300417279393866443065179421746592327582959775100367367489796169475522782588240251426408298925296439473744128969256683604175118162797401279221726852215356072192609224855596822655924325568928651966388751467770130500365339283709022978354711174158720711982438015243867791751783399113398288476822212832899440938126315658385006985561568514936624250965323494011055721189550075827818851559360196448738884764053031942242125914607414493897179546907685029337672751225481615122058300631937858785858413030497656581917848037601975534929128216444660646990564296508454698983792350096630799946952161235901469143119050164432021757324289461409492888359753176448535883224120935293749461471564266631455327266837439199338991316319598462467970814444768348192039016131437570890469777491828594600910492121679664669706327699211643503297770175199313203909778366508536704497179504533879912264101247730426828949522542218032307734257803876952642632467149970307806893522970210736324388087417878966507856581010412788811516013256288451340878700077088612900313760475382288502729945461423483593556160820816592509086137524877358078067339608210655203631020562668203429820944150487948143291717432102647601359598961307685317953591600437500806794526553853175456238447201318554210293598576986056172638634594786329551803041736202703079245273694144032529283670262394413855539149024071928144001610753770681692854135426953466450146465904648328079124182369067070339477734099433376538928191796269653440782074776048893975148144038310497792162826301313887146653706330723760998427898611973795546738954166558435369060973021061423197117354819620191924812679776215867970193709090071862376944032303235965667430557886133965236417129538181829216708639165630259406607196706056051456126463659518520318477824876101026337774116075982406837630092151403424411700957566518485320893757451677267478208014136427308811342531572624128825358944204280368803423996730592340736508074697640520542791522436441017580100014526033842866948923605066007168160880394442627594311030464111122228518051327190176204823614811156537154591395928243184128437758428287166538296343643385264099072710003010557342548109120701551541397043977097431801755998116216340720823989060060565614439280581033025435460163759520490296424875388401778802214839666696312204420264778898930719038997961348804140793498750447550935527964156788736260000835792500395917757896011848208277590154372120985310979927568113746021355824046292528788773812054929168875826382679131627339999173287176492342000827623934520010483537167632509320462797800770502897457421844249433139572312369698209128567192775987596831363236887126840919605962532294436340385843091653908057126042457901740664777594564473013549084352260640079055707086335090056895944760091783083856080688864900536582368660122580660044072874932691786559258652778978126315028522312889367969995884267818081263513305141107857669358062691133202000954688673154892302315796511396283681516948013847025048403270287670405743123088441868000639274480703842840416429035777349170997265218973392346892242904517722594480041065720786171134104971733493203603663135552677243905161699649160140302803590856841019082593546549814897120725505902585821020196877506506111340975538380269527338055651996433495743410274770203684423660759207093777706039673359440054553385655289261377835977357000029690677542814425193886725643019587944418833960549047439642954762892072625126446688180656807219180874827080545327595019221264531985455872373008849684874226952135516825012965460396246544209321205857206710584683492848390624892992760230379774802966232769254967570390333618708199314531989908801943337687716618012621122554771200035432234229295453172245189418289312326499139615189181465575694454519113338414498662648795762297031971780477045733360427003181978467982195729151903260677547258575034513720226768692941682244200148807339772216050957023455499410296735069405709684273269593639640715976426797125877435214712130590278395500429896430719233424449636244332002150092766961821960980235386812878765228120918982555870314500635256171619738878017891265480002140689591232522748179576391638225757081568875849434797175047260132514270970843658832839309432692905914804232690164422640533030046424429552749866304171086647617875814236989354338578932886291386130830726429651398624612047796846256907341676474820257316367609632593361875795931808750473794888581600666983837910197157419422387864881070134769000188715201566284732563144003648083636857610987535642060996162201985701260242070384320451104617871436680863424493643995688617711480136948345661212472934202614919748066368133528261841134793325517962738452942309150421857033711882676576295391605535424726704228763203208239666789188500839296215566600253415320737148341067473592680439030808486830052945429805891558144171652711692426317560180721758788505305488120541383371817427649426159812666420928225873461660928989627704767207818623232288430598160765960716494522061994401930037281138887637349465448819004255632608630595678542504404641656176649858925029597563638993856229500870356093124653453059204695346555813755145473855452959424890135606065857125074553381687345724465685111444669348871234379229387881327078883942264929480908620009030178694025978818141222335917434269196983230510341829766745442690004919054948527844333835672345368535324545928123757346915838833937323362598925574262300156538074948015930561281133183522209802106407465268147387658000240092577868646700572800480243090440918831018077321971121617576233219174921525458051870985728979940021651618008149465960662061993537793590980311221890632961612854248403307267318919707204344215669449799035655994079898339480279787844714948609346184749962305145843316460007615232567676439295978495757276342860368189928666490023827428235591816490271070753866870574009453786826788561500595041185404238176211818116228448502530893558895062930905311972213665879809134092342878552977669094181359603657393921134888085339928588111723331177892512799560652928978009968415307389815506560648118772827303196992816140323912510834483194662607777566478051140559253287552179713168534757639519598370856192756543784051129061136659846853293187074103107227265633454447629834301315363259953477507855640475145707432175145279016123183361046564665628976869093098401418986770146431599420780239338577870410482108144081541180000431852014267569688787465826280322749938788490696679101386871078037905952083217049752438126826749944092678947117200525989029292555289125857867880932539146112066145997653530965414243921764001484828924961107073992760149474257823982372504212107326674490865600265774646482661803523930537411240478795989539519747121722887055952941005315314386048220674203655484901141964885683906492919433377220413121725170175235914029249266965336357206731916027188375007583696055363572091171298884830355897487043635263785691001899939660256640259295171400549023495082104544256678531304519715671107812507640382942927407822867167159022937079376229901862082960262507755441684186613974823578596199231756501951417421509690711399101573938783982201223663891250052880148613744318104730357254919790858973151152293017672528701762750714247773670631043130493604782138288719391279143196522829500461671370952664219128896740796698472101341693349474378707523356395031267162552775190318953666575391883471257946684570274737664311223685614068211334090361759988348697094390035834969108510756314199011789195420514730875841632243551478062673833410082581128846274083810001319790951972807365044559446246616645365886488466213350754194550083789583814887626510828156767516832233585994819102087978319049934592076982314278724538581877247329693763622061607981322736073685302351132650613676728071456305823873314281640727331668456414349701858258797685914910340017878479110843297271663998088431056151598951951005064470147702218326854688083610598063456570510237077298460317248367107060418966072207420878230837809376550332710938642988703348321579369550044010073069374384469784158780229929075191111712606411981963959252807600625117708598292044803350025941025437776143301037553925008147916412770901845632267046175704522635248673447635416961982991250338309488220029707794738285803843629563842601958070673507197984853526148959412867202175876699005213384622899183352188194029926730141112525695631829174797964449867688005764951537018721677604835419424774589475604008662833536604700185649481988239814721381685863882666988107703433369419710895210364290192730434398394330560731577679281407912301580446776062899870238806896551917426096578325150892680310353993355197545672117262649575867854113763239116562519261216741317108055206290942670961650964228557133173232795479057871945207174655819289772869177945450473703437358948711712325414253910509324809107514563122917802443695231521530370232096722575225975203204871126939572109808663630998585600153425540745483571112298124081688683577620628156760632684086974067693226278010308925301964669181146167052335877480425633596590183710064678663603360962037104102323876563194583645911273313805856261782664524414298298024684171043957044297619345037822007707449088510995117636079847929662181249460241893509224857435857369001889601230513574242831137272620609045437705042837638005256708070627230289714003965720376430602761646126032557037642627472485421691699777356794258789539950159716793652887394431809924551387007171650460404431022381923954170788465961815033168433947621387724966537358996668948909014123713373809442780275594628391638413148405552077062414659691806051411444050971842934935562715261286947999550620931352431136211771136595706283366584624493579926951247842069168888347632437149715907255652216124493186297938636144775631607340330810801672119764988476407634237687675532584790849686388614235288273376291319167281415171730539298651437870220617841907154581001517811909983752189894673087051236721988099955959349134142483445379941078563884344043233579022024161435488174404037264244916539104396337494013848757691586002122304377069294015124812054635906636759152316042524250139819880470926760605104112505067532247243255949735580344575592251427835497014693524520595477015837133211426360958536095044185362117851461939535773222655583854507426548017824451651356754374044102440946039002439803733910076565344217689209148114492627392694826919810166520597304841927104626185127594339789700547649791372107258945810625245290465035202963999460053390846307070475198175807571881112552151416292522900249809382449306149128744114134325309883895563022258428117752317272821974470803246227145715736060029393997731643961262937995792403300664028549638474913259953940123405444692584110941766926221495778061387028508967521228201211481366233699328367652929170921329803678708565064656115087037126081242491748119242152333378219099634591843370798555962193018871724353489471338193450724982299909307071106917552350747382340989043820719981865374512587444401643549536753755278277335115002850296163240137717915948663224594048012512021351536574431550616520899286963083639389292377884657440464054639318424618850077410156378290779524582242421974916873103858370268826083370403586383342881575022354664799601495472915141511168020755713031376118038253126400331866849857361147248860512364569801170985878880660460507518506470547965160363553023847714006971478268519903302252934652008722446694881757877458886373925763559319528763798674105265210071382480072821631468449373479475808191384984589692216446531170300405471342688174678162635822733598470484250895114338780376191188157708300941774535897949931739717485753135589743545647242222250162394364727859724576554233629949393574877557349122979167979566786829656694726924708721301987132609321292665700837409908024762131863855269981698362174159804857136673303377249475565177681574781993344476052577181444611219884696454122714879312635888396833969494891867944979258721013610202163115396621380885681029223364227593325428346303126674786277349232598447632576977145526137733848756630924733408081135721886145859138378175013559382105698641816575126716174504979203548688156468016943528446228684079741674837502954775899487862313247735618481340685861630855798917358106885859957090280881124256192631628350398041821132296377709932459282601098067101526936101101784144862756133366894329481541455586664060172068503415393760996108083160251012026564785991964173463793809905032690468111059941335546088106533113609614499824121362979007236445053242488842288939850953855954741903501635312039323925454788342564103338669652390896775953650423447789733836069863631733686292372116846726783553552388816428068948320483735454836957516873629396561949570866627794875570974923440011963890596641234957223078244032661526506921567910449768644032655257214513155862555532066575657267676259044758885228638512293158401444187924804446651996782789198211884579352787260256403131788579631649635792004811084395918942429286256233577932811885689135648028337330246167606337625093364353373643901600727779311715026836338440711804150972161778147598057899618665074893952712486533491139264192837643041478517080620526003115115866062641198383997345110546479109847117242214283848919306394682329793203575013777760713472915875127982659225178019761223811339917176366236275891313048358872172542381202850579836662768378913056124234354321933890454905841747844815785085850991786523480244580849516003121812734517499175108839596194328284202048398974076620806671569161183211566905988995070364637680528723211477454212819207156487359081301036886185076392655626978682336415739034138238800499131111267762661484963495056763658344706545154755741098960882054343682542790868253204947439195890480272874480481638548088970025151338558989561299895352758737404895434468655682481271037091091052877172962819207858394002504879389088177358042219051824054103840803987196903352421369955509058759517671725586848949394909354485476625953076363017416937624990942535555322786183122610296735692936108238663443304942952221082076531769632306997636072133904253870714455616802576655667478874004548466400951004615666769491573179275849884535208040326354488099004351583493334837828177865321449828589595208626526397048208637365103713693615497959608522743382065687332617461343199148735384655996695181082472725823550150974296745759614153427571290414892017810651706917312042923518323118157852798378505804117653789943244935920584287703697437344821897039631703289705069973732277297283911886893993787763048827294985304418292550610124807458068275669557622216966650183615579560060700580607800914642341304595389635084015655244143799423637922394761859985146258874008687792351820888534583267652654382319955121195058586792867443260442373688809948898798514443087936239976848573951822401426585930596213448430871892525758144465168554156648237469681581461240608603094597244244511631124162365767811983058380265095926946643540136571541883204644114301752615607150921868322309791123024256946623329344742542498651855946753280154621472967098511482047988655398692264545809710715856929294571621532592284685967921226820117793975103704636241967358174728686974217963972944934001904219513625288414944962868574701815742151021658082398581360363213144856393131486979968203522710461390799987142357167138669804972823628461688947565599552891965184759269571445254550245362408322726573165208838195384539204930760466187145211741398590100134332911246727949319663536164211385673184782473018570767118615345540173340723329538388589411099459266009631786814809233251913368223655170335651856297123834223750103585390266462300772813150929732044228607193036952158317318435666240297490690915734766214716659753255214899008585198330450280673609827074344834656038240704751110633324253812280216710585568610177714980865552978867875203711973644130980502195657085093021920799751824930700769387094644035662269784027483135488644375093938727748287110204929106752368027015360218485831097309183473709301426657006380611261985652006947996562116726747972883987277062470894732716586562547696166108768472328491278310925342227620678067820990005677841256339987035987828086790574021186474852504085954105796306815599051275606179987382939733863486405783543936092595184084447756963732815466423551183601493167754705449110857243988538644172742630148782996256471445128834272951496932326955114901334486660552091661314143676605611746484883899679117272278791748412096804071790644100024464307195000802936024541576560924363147420425056873224750214726489809908172555611526442826615107125444627089826580413480053787172166386052585724091998369480865496624903729541086511882513144533697180411893715799975369947744268110127122054272805090813912363657964646347878819356864470888322218297265253298276032207426517153247302419921586811069260314000805248791651523880073602116260399625162359424478016373020926320378326612366552208631841272925370087176960685806028259144583346645101014361382898755934277734553046451475845212576918718364879209418005020840511535956235369742139834620344933757003430872153412675732716320753125892277165934504903780122867660683914440043378041599231875647370650249139217709962247646081747256142585351969817147942828998515690024215873494220211281824797563137693357889689768749000475185520715927773847053452437616955219078667760224235395618836826598585617316061328760379586696549080935905337319597372113455834196238012916714273111684089054534437407536402842699517636374755399636657206428796269724423655460067680541733455824459711584678664358483619396283093489831635028729463287103709686573374544436219795785178922038481918439316699024380034587054814356423169650962457848311825328446217935221884108968507713836750039808872453781710318408254547108664119040460361571139620626333706346481573181552837403160931496258239562709309570319003246530307850538311383606524609279524272544186803237907465031214105891670922058193520994153149077052080366325987919602065151017642162500418851321727738567104603058444778819171241106884642302189411829381324093494454596681037277726374134223983553932069629183874883774028797514505828493881627218699428876082840709731842657955382837131170590895385935417796112156766088579540420867929732556558327852929996941771793563900026770869265078609273059962424386811813199235788029218142693652958970828198467088312650616082767952638460459822200331680751046368349863835667862103308311491176706896744287428840538491028761467974526046578858504584574271530748622078924796738932504850250234468989405739399676456998241128961597983866577865041591884641362291518395154042676258460480666193997465025080269524628591108156722638843818745888407229219727295084358912424343435159206965798358971278906631940597051565898822519954013704727623287167144471695808809101395618510299770147320699456380586652656697842219757538985741842211216141761375621911947383882242719764457248558774862361894135903672157414866734159251880413467645440673438185495985290492386781229914108127843354273399124650032220978064750421988174459033169547186845099108619193069220985918190231410005104961690353210922004576743120667498997466488825345118370236496265925799486496548850204811182403546970121347137721937900548998619193801278129986789585976027866685085089379628373720796409277177153509217740572861875422584359136794813383281931709379836682839051899688002278281277792730878556794766205584649082455572141151782836635123354313156251903793050819551792298473239644115425622280451588133247287863301406010934402620790988329513787021937087455921473686456564712408063651242618887834750808985369443397916835309519167012483770765737613727426850677665953946804152929300468746609346462890530463678183719710450517378557223751105334639240297225486750846625313258316401609090396127717601753112631740420033443084422138953795711062228223140737701456925171770151087070148356315301463881496728131371902255953967741731328830466902491580049255154333713949467194506691696796271236464969471776010759395132143166549089280288032971981356170670114977412961112574670893606404589854900776675170985894430514281213231972908402862738888886244803468959678233781984447648249539872322573965620983878388348476047103869774855756150669311010424199500252188775110965356314870724713473279593511859377314148511831410922549571804097893526375938732461434521639038611027498127552503095387054528392648557389684737996596948228888487154270656527828029511875519558889647836637489015679880449931850610091441277563690459190490192791980172732164071917420996527389467528807947357663711383005788782363374416217816507226500617746157882363589055876672137893339694018629804630328944662153274356245252242621840273574407015569219390650616573835537875033695645560908581826056373158280140027444636875865601640066434781184193441214352396624468151967880547917107773235107189308570507777640237029099971540459821357313782728444931595860129890535962852061246756342861960637505410085074546722523093017518354580855031173301962051457984591788617813735300749808700356068128597153414995290666099581830702094321623889229294062475265290031149167851852409103881760367147872986060277548755025958047003117732303609514731224596235845325904709351515490228072674456998927522225778371913829557271678333634083941231020704113906176796865838588279268237257160343526808609467956983970255360556398265410016440614976205345756454586580322302564581063701007810888948970381121980548039908210032090219164934549396314042364551857073706823558354756779746920472815509524398525251660123572449139381385150086092813911377119139366279717275223521298285460012144741774605364378829984834515394678474583206383487560866237250683281141135096649031072312778996519180628615386873363433480896212949003803729082152389135981199713063421755809645639036368310411055380472001946728988968933302876561021268183135912616191536081929016003644069336050929295769012194032469479410360617986753130818903241557099401181550928767824157552746469593103802551643457983040030884672518303924584973505582586825028829815891816158217903801344406171530400677257256558868031460821357120802932426584492012925350935611997899637151116038883778348242241696869802383317771636685765908202642409863670948853377353322169704010467815932036084864012505005265061096851405848053830743416869275446745286342811536115498470601965785405738163861267517453730859732223209742444785528133151915107269339348553758597538438938060258091930549454263360234384464241496416930131125440299582305724988364716789030276258863329897343147637844451268036993377092055875873130732971593434293097170781534344526307341660812825348083841963967337219985758073966896868724603901343481604909423305956317824881056334015041971271176414722148365813618458183957188386382790051028353060091772892439551146146525551536704817242993992739498140341872449533403357610356615054140862763455658935125311763503014424729211269489565431577102292110481123470023280860232062017210983429309965895297278910102555049467951054946939804642200778362922603589400281183722850011504177084267686856420467885768137571042146413749729278499463504901220565165944204304374661759579452753442591942217116258332640624718756548425022472261601440037837536384315388225046848316684775421870287343036478864414564670322393699209806154140728126402431609265288732376967715854640435796273035287637495716679721589247469032929088472846584268793580253195649453002629091021658093076548602410353518989354378463013114382706420627485677817308185695498694744177548043481057276673690765740675881660303225760838301021822165625156481383967527209361889075621756886269425455819498729855649443726795766926540212871907376943098711434791743557299101443561280348748809207528067753414042345906215729889790479814818664268933638082393787648371253586744475426318521744231387383551592058929891522866108932103454338705011377720760905782125542459216329135322819740710042278087795513200368665175581893938083365791160733930633313583980814134337549295441263719174911708989799527617873576664218205347725243641064070997338998204243810562547561749675574032559674988106767991733843529201267741804153015763163012401101482441112897628790334575446819963384254254299178717688116769107344875921353642753054891553693031622535719583636146853623353141709014939201912778129287662874439161680534812021065190573238897687568474758031651882411792158290161270158124288155580911067798010749208031303699910399432736396891238706074884230034059795013110177026989215883425600897826588802467396241284931347045087944079520045645507543806907874253986851648352487954063076423994170932954547075382117291427316886039714500062298266868485553524387801181004614501219871221780528671566414898982569905755547208740352530822274530676210661414860972152851326924750416158455024812930234442805717841899034505578302187760039533071468319615241433764236304147500578271506393137154516076556341640073297066391685786458031455461569063970888866387854467259120353041770701862402408072245103765623988788021219691014573556331257271345096282838388807025562721905037952730914719522743370035920868185167925142313326554858731663200828005691606025928665249867691583642815983965672342060252501354770136620605276652924301135917744014639846747684172215978223268960948334191494510223909702821358702354011737739567276750987494043074709099567371797046273014077045572207112775957135044167150735665792822922772561262873300506238555605798716744839999337916739134834266235653556830709490966430108574529838814304283216854866642886154148606015636855990589264663335907941044029698368228434284719110173555990435676342306991399130169096480981976188064456988459213328353354425082644963865078710229662800050280564344197432915066386766214077161857211552694399339302197148988203580558334404163095667713412220914773900390801608439857072675731503547112441427540712903671466010635324091467573569897528289430373978318117892976663680835673784770752916572635952093064125318682266702490757226861131883517897224382555262707500025339525475868381681694997248998961890909988622441150200159388463855362689191254498715508017957872782963369680282596215396237228660994338869544197384412836288237946780006194045705629792079207244980041827604450884654384621801485898297260265203608716945217086490515047709473402064257924913710544198950153103099292172277290247947784932332077246652086928517627190423509114867215883607373242663362818253262069872347203829361931179003780719885279553896559166138458802943538158138779727002406451284656534095853537824466429899122778853663964335459544514645745268695674317761763417870720593928708177899906817225951914935099437026967987317936229458461121568685960492665669199599814986206577662710438985547190042701084352168916321272204579202275068318578370326659068338962923782021113342569452309358907944749138142333553693974947807257699013515241387675639952085252299497031183688679661868998339308651966534411631020308712572598698795396108034711636806635641958607613549782965196383993305661259205176404654378705373142791884405089968954298479919121250945099338187532996191640803147183322499470590847640258568538029347857552762666499802789429390325000011329220455171312771189924429228670509386395206486311145414274222565828818644534410267783976586689640715188406333942220270792616981372352812091037716396246289018564241331586894686794591276231302326147766621705830506580198831379766650364072518634099782801517010069214554867859104367102042715687619820486277240637257044182656567017480632103945470873938583793421460785366548455949849282009399156369206485807948960068010491166572425641518402465290479730979875811501150013220051612897195065224941985029538056113136233498896482980616582221544442874072671517267895707485145993374665183739263047988159304826719226026450497443403568462670498212210633911267116298614122689419049016533037654459539203126505600795290437823127102745420913567860812202951811423626417636942088010898150301058757824430039332434302582939121904782025754052121335156209971625269641769931039262730031579881472034738524022409440161397456639983980505156738310140959817201197695626038066419244270551042785699219830856014375834488466713620986596699145103789937632017123244960222350251985917128436950687643774957700436088131217645616136964360679796872961758606909892785537229763898641129590914230586898384513135269985512445808067056382880234500111199162720638243564713592040726313875925415982139295163623438720113162961780847703049275043751306758775915872401855315211990464863258804682133939090174181943659507668217682726517233242686205902176328047148861725133172398787963469448824960194116764599858321899317065418681480900467426863729170091761904047023233205034357621049319813244930252766192953030422401044659024811742996279917679516284040752814406847091062041986665156226441553127552624234384043156554868377322653934585463540314345354147445084844559048966421233386836017293392369848698864225535332072008152927996097734149983728268432260014702664614101945607792079456434073839695458920395191650312523740672257211269379160023161917056855302470881298186561303978978822966503660685226244386957032024631257200012497220399744112809594428804402375808189246993462058176523446176793548748400465473996907480085178343154641945505511336008472737214727249613506534281920037461677513229637492741105854953530136533519232068197549778520791121905557605825511993428720700349471685126989816721901033988865594425954309117535143684819855181443434876806872373013683708919301177376644537680625660258630249993594767725253430343426824655258548669482209258366927405904992409451042718905348080972069665612860711669675541328448523456824282415514984528498176917929753502567356085375259717308874241601795863904735000198184125881043669509361065395077793811824586891554326981199749785325898099482494494541575795124109521306328052873182365816626671278153771741749337526709082871682371057257376123008067595140882220889820693526803887460325932165849151648870085430514858060251471760220339822834184367447666523567053089686354149206847479433330861140244002817271716826108058356722877709180505383304109329017218457952027608600366996792860424062455511002703941949191486426502101988270748949961258813942640345677922905290722972643100194539492179448152791825928046097503941270003400139282457733967156037832473870071739863601779005188216622198102789088337740941852908654938634435242783919229492769627116358120950308202017199143185427125218233513847897384605185277148056821937424883101907917035962487172896050916376455593813755681665672065863809623702696728577417091026124453387719386633081883186614596608654393089291534943623983914585355024248031899384632038566234272838044418617865345788996710881959274401119738519654856042388594336318164029035482112632673103006083785966543716549223725323388483117976455986696276810220804813051209523357762426349450212911488036769907131202100237567130721343375168844582792406191003241257970183976212126078425310278251048812565084788795943683970243026383312735299212993319083972841675804028091852257856460727583682774422746622103453352507307664186038470554325281144850634581324839133203600855283535673500177332360488572069394836133582744016559490896351594974524555425823474337465926592370212027662052168813590786642501227346963682454738600936080405345097559361820260131204998470534340208396719354990346615394909660342370970452751730701651845596861888706947464709561087382890072529347780273058932049972312132834578151259297242339321424781189566203389455362061949443795612618256076399297011874143508629090131301704618590689790058456891825802330332357681367427501823713658163339563553065008381271791550852724455244669880645042285553615349083879923054999176458710183039902284635340069306282478885947630564306274014084764491791028948219848357947370926287329545979925984069786592130722669510419222338990798412310434089463501911171415426222527090004273676537675677710904592615252117987878068535288115745054763323491394973454590549124849336960361193858396801894673697444789287997113794634164899085708701919062043901578424274747158839150079033693830454930100103402540534140388579641713544836758697952957515604642716442454635255375060039536666989097245193818992116918612689511319593158346438494014234651838960904559461300658808971336653306757346899094638302948046461353870198252378891309665890745272271140897188607155238256795647243603165219602376088494945722842553178420171887776925874738291438016425262387923806573212061553197861907917892684372531651171403855231496319529345131700308359416997369771012266958949314825644898677273193353868797937155014203232571696358890185803759651351883542518767642885071957825355313946715194314111035130058906509870876141470027747217928391110334516653850242093418257760967271973862788458356119129621302471826799116521783750889306629305608352469650738444838938673801288849578950300502802570769062686769381476525788885910807788442257036216354777188210883445134357783659877460933923941694806774988749532099642453351568460525529332662060485695119654209260906663742043222224670753935579980655671035064252577604615461010375434066882899760184220752738536084488592554343118659921575009029156640106573898230809978232762013320658403840032108377172456034555255200084476046936261954140917328339583015799905123217797901682746838675242308887617629034510077727544580755802490749389250336100766269820223594545219641197657930682990908672025517817117391182612104094855867362719209297963379453333418747920094371821099064989387648027345491093018843465114263167755265187163461964967115131778862470016786019436259178481479541332995278363372320162933146006134978144903222782823394666713548397702093558860464654454646150647693689981070382736868532527966405061660565402843914496884000345379257184092421520941753420238229602275811873127776727756100140333629895204320965062737281959484578678135973869261591137212206738464824886748534416861414836105563037019842111937905102360186770780833355517454070484323422540792784336253620187058222445940419838792504624790057559063414736630160045888684648855109581248155862140778081640903360006449936672403789444023083238330284887647886576834710894511877152036146224031865948030412091145189098337778023867827697920109337666539734177146176513441037866038170667308401296763685611070396421188726482963833126880282682564264921814270560377679823612950077436855947653883950467429496059112790940412825610339381739799100104218646870392174713110960077988388511030820962067089798587208015227861914645753367125757630175158190819213305416093832652933104127204359317335979018313688026455741893745064815940609439378240034459605177808028920344946497634468663686322976994952312127145954138828205496471504440146089400069687152871862939132281840045265433822056581328548792443763176139340746999144265893667174340001204391554205864746361237828813634195924604202467037875265024959223212499362706004109800745133439860171810378504608990264291417620099674074364715911145355379162040677269029294480041519879032275334007971616012211470787187333491341950024957167343886722426424438989844347896352345816589013823716362643444995689354809984528966015737471860608822626944265502615384366847574180835014445815328244845006034770518162715691235824292887167340231916904590104880498856250686087656329401039669508172491579437284521329677454628271971954818141884561548507807411718183442725453973254009921625307206555970702391855426276917536546532356809616935833692533154562527896049129568136803007916539194448794567091614126760227197964042049855250789363003146619368556009369214928154108667171965228064944632415951512078332780279159010302266299077059226648648359206826488574559899887733257672222337129143566631122245726784018368797323273700249912158889028495640446084159341987251891667203705231254036072280640958294054132476585745706549635322235029054372359854852446043846885535069288773715074769285762938496092758498550524113974785379166113203238900753583122125320623267871991107659447616980805692286060521114574345498968759907612126053638307556783238126753428670994684558238122478860154288957492046809053736574541466238547087148767918029520057398564741726046629076946656257769977208501155385174370881188464964815070556083639524290973078847018525666874629194480486393395881059193034045856622315716029098893644999114108230967694469256923957446356351269828180719138870391048442376864243949123512717118461669931831270868081821665875133329810711323717311578208656529841836151517637095205745706947491804669985394954928805246355602960230828641027559535554439948355176001733446134970574021141333393908072081987452017563424226595153744684871767945430722665888698692530826326283665712581499311085444610128947650238208450262742991833812852595296791399953457268139389073911168916083739770984435796967898790823069585604600661685499754789582227514532789151244965709628054726394529213796383768118353183522604609101960371559678889018897922031029202317506364353622063139853835153464642962610851275201501470293452459574119029779032193032556078966439155770000810650687509732651521537769104942713567538010582410391353587088048100991076750492941930356849831392525771066766635355078971580877310953731650085383556927253880100303178303079793824675597459299142130984493134525824419961062792554742308755843880720455875025708619110535294056413356489415098649893004460872623252305977332573679706898260458369598098023488959849944818219671688410549924656829096077538723543041835145232097581912150742192176020457543434796778325901092133424778694791723035967532438912160563027802326368864721255315774818851481234908206469996151284171219311944730684649758147565675851451221073906144723803105076270626017177931354978609709913508211922747561682937786660354376735392220791956979327642710163577711888221408802734075168194419765924309499562251759134485975538405122413679502280749814471777634882366018527914891773482556894047913879319025164556503109805829883663961624021621697434946009179257882046868134113649398153775485929279334937334071307542511325280369046527668115756856894550873573141394632757983795649580972960061520217810144206913406004014771154740199207598954179154031089344106053522779815086408104851123635154136554692551879301101690088639259150056084735904820284001158056872177348425605524046228813330465028057255470491532850054562765404877388049651688773897522473642133133088919990301350115138773495787377780931821576301778786661695700035184415143179278605112353116418049664391686057782220343920237390671951156413773655084734507824979686251420906660532739645441368842655771256451661219588752859420508300534263436025808729385241459091331923627103041431870909896824761590780795059862062297125771715128941413573486987527230026590011927514185379097616722887492187194537518182167096714410346020730139014583461070873694188495748537670690980848822777377227056411729004254609111593842635071577649198115348287283996483574380487808515032352812424929651969228879837809498142599150066145502263976250322815563238066733215597347093022402859595680324410187579061779889731161293918593294576816732653799463933749338435182529226231665553688262887610102984268215784618336040838783716144718130047201549259814528020116868309939594580514465421296910018301646987099274307897363576596460516556023982028080715894584424196453382699048323215406526313283802783551060289935432577577050100989494780028359800365972068894014255853476470322863314493580328038836654875265133457393804684061633411025910461206920244063724374271562719814083720164323626145528341950269074924487844040738326821537653511845775686269426197540206309430735347216383602208464158191189413943612001069664826515707391302434479634743786651949274774505319911581258497683937991950539291207801426965358975775464113397542168834138619992216402872582492964722664242209936692725351098489410562272587236254951625146173658811822881714800640951791234218995134385342930484224258968734137944427911252802665738749384279636441129543495353420045406338839734162553865069827945856913316960830619876611241966843694372811712377669808466407315787840018248190239336575135081977765961092022771564105417836653156992289622796478689831979849606762918553793849553990961671407225978032867497188915369728652988784425889974878490295841673443795623928821978918847934529821278380787414573925561953953566801433517103149002236727227211142912487580279005762503665466912799595629394515735319211941843570174812373729982088969804520704160776732480517057594161508417460560422543790965769728132935226642551576318691555786544637398225909319370610793425687651217065204607496973808245624078185212706886966618128437732967676079850278358139826217918572140504429758580341891777817646832848737664508265289362069297288519389476537934966096534739748629323816459875831306181660537319512650002482865295925060490065410382031900691198994857742167237788003672290157892795302989569481480819968642957505848376658360290888963789116040031950732688942308135263025364618237695877440826775945884445622098712128876608861144190388427784680253040406422101097628838255512510388454621282992825723300353606419096202914622620343983141910892901034278255381121392945778234852752628716550754998531340621383557814600327520123250243058775018943269179348078170470858483991684734254720741520492327729240995544428369986168019456111182099168690385441208369793112328040654868319165102714731284062878513926314030545280949041777399294789591861646872219227788417828425088603703601869542588880759177187542032454679833958999180987809159179646353593785772742877863261131885981203692705690892984795433140415924697919578517800672583473181595679010863651112623986138372526878181732202119226827620070032654122100618023641711870919396689805732665777362751233191009675384286655412507440335200878650324414913148022537588650627417097971314673453627810001156896945583670285282891450074064517185883440194263994711324064109747770972218920926003643834851071845964947450556379208097971108214045630531029428721731314349322866601773297697970058299144472982812887472980042729427636127773404443808664903129192050074264514745268655612581736946836249948172819368895343081963660185786791620432560183233258893389459111162660574638593069447319027251735145454621232110243009877156291168312044854880581579071260492377048085819102966536410034280696989203415326219448260731439276545387783762721816799034251582583112531943727617173551510056478578300013082619394850971776286218539970890870233567511560243913207134691979472698047440986777329216703198460822447678200352114361389565057044834483130237203251984262026564231564093596138403366488865854576890443490417521171518374877715432074263965601039372237563966219207937344623445027433975642911446020267610545428449974387032530207962815637711895422272833963057343232846228791613502312456627376258651013421304462387066982510635128098210414261973649744989097607992120848669412077482837573013354158001733807660868556458082805412071116062526516705038132204757934111496459842056790672112144937521902164877218327929890273340456976918678410566281224358140801294699219640785734012515085546710750094899615405545353877878272423072204715317958831748244341880555269573155451794974396063921017290050671014910472619278724417451161817126411657346019198953277554067670285951198491589443393936192446736349172521440936907703257900683820245030159257712931838196262560408875897775669821443162854850685680845565465324437877450663595395009864649737255350057361969862209892291100729461239691163360795334257741309460483926212102273734808321142478870855079270340284977468973852801176886998694798368300149196092811668739284605099146824584309111144946231501292621506995810725636447948495126414034632340841752930518194587981687326848358723042112252894189514728232873679442108476682812886249369163395494083816501746438291158386079201991980116283262126875879915904309768121872973207181473636636051335001456478436148848528130299988828820479041165577780363447982177996944208624487002353899570433981892360773638764921714357632316872311171513339272741678586601632596778642826790729300854143683621872326100024684252635208535966939662765547047239432725977595461598091371998061407014512966304760152361795390041866360276393555576261482158660752644044776892168711908179465039306220469363451989367960882610529349767305400832143364131280737401062705045782297789225373529541129866174772213974515506256828404152221934234510470170617844684354772048540539558876050223837016563614835410980915639677863225967695856687008758865181217374899843746466716519790903017364580324462607538571563847992901642988918629177513899195367585886574265567657340179273372059123799456674635186570236248733602485640866801638224491314291974410690895515264837946442884139784671679305270262977118285834052494058038507611631750923360156295894170862255229002203455321913054903847694017698690061523240457629750689037842700926065748803824634474407896579785102722039246660760583362931645846896959355637639754875637669022419640951701149903918253810762582979712923971361995067614855473760674245692940321487529718315470769571800848890566653617037068924482876886552508833168164430926453784508223623904656404055374065670088240925931675324453311069750301674431284305891950885807916703558274473266642535587779902375975758850126571856204169064714749279556761050625294815875024025233638129589596984986406660746436718764100277320754523761601730428670147014953680187899164859917134388287007053904765151899213023642836642132391317524767036956885653191621746622748508255074762800454681274307677394441471747674536607553236892489517464223080039998812779783223260774506072623847496707242677008153219096294510619309728103159242418360455724727328836323920397047049821943310747069260653186613503442295387884050389476738560479259158756333127053163857833533485095572965791001481751998225211011023848307745156315523373652817662545282922289144443604070697917718217860142757053412876620673807615236198104679957176596814278106333412397522058379841201309103087196578534168231803461867818541436056435154025978813859904269807428329417940160770138241051996404962530562008402161829709227400046407575389591509167877308193739121529609094119620601384754976466289288060347201922920922171960478882094083066242436809641524380635289335963007558035684493767385176588936456833988641711766578105952812944361449284694368851339681392391818993032321562531410120031442911601982860361581601965045128200772699975093863315612988736146327186588806847863323801083027072280441712850896069411366859195302102288756585793323874733057996498601057111560938434992391374859775829858008282883173591012923568226849417998111767372566801693450044619457556057913886777903752515298460447232065395558912703797114404907958884393787895645977305731831061888979707657953077387296697827238780195266157710408756183062049209716704919739346300062310020660108837559697550312619989307893410887838248579085862130008381108125683777314242684171091098397221448076193244816710954113076880336078576919410002521630328009718866206975521436095324066902542812668247776872768370718438953522880471742864598287421058170384938262242291708905801492206400702901505745340838025283556763107467547116596956159043856356706110432431973486647044269714465315776268779052944396609305707589867699604486844424176843198449664982603456872233587440906393087376581673902279141614166248222675807865068246580207053102735016245381154184267712344350466801553856786568479474298710993475317210974531120068942807937906120381487866848103260606402993331741090840905667482122596631066715022056754929132294910240192417673009350872167218272129783172072204946879826037595660802196589203888120099375880102258757362788345500274058414127985368841696929071357274926386068015386987704744204107006340941190853161671925200733438497167571238477420142194243423008524892867179098221849075019420176810139636765400581229878605088313965970446530424749817885637685719527371030688952583439886383302834471039111897519151317501523272992765661243184473292707450189496722015621426995843944686166727543490479840084800742754473532340461983772212967893074359722641124601675842663489511530955598065819360393870739508328338410854787575151718792776426880572916691555228157226017065776134326360194748709254872230006105989123765510263521289976911906743803106662448612814764476245745255829009136169506626405374540462367317107885429359281772760512015060539514900856202410113476616737031465948155535809294164782718533672695553726337946135486069959981809570465067499435231212441483902705524390937650909987724960376611964613221310479254647794790862205146688295270237517560128812995601869556701040061598472309587345262411399746739639691135755369913237234424196540559667385198702619617122388781328988683140855303828063876903616208186994546241151181980529056679673606856653231866013611428861387538089938206994609409309143128949907821315650484569987681343608475053704286948237550621096954115952160349822029487615507098700645687819797674350767998134551899333560774322783985821589044776570778482117716311631032267770798680155090542673463919620650323315503739074723845113685670040481134636253012428429004589735926957371229182143373466293783510734061198263603043821816185782684643196193440441720748830287735621037041386479928514745189245704721695439646369943938292788374518995571967355457036976449210961972804604406751172716971373630619512415838300711781331659589439311666475057476093426963847243530757191864281383207385922101999700008360357031670431428571044431079056806451620472890324737441859269911913176383947172971223544770127394842467608896178662785695270014035497449530348247191730313457104698624480124296106183309179067264605725359903158054255223927049489989178917549720944768540992110226750301960158003401906458696901360096097718021579768663740531687631384998130683525764850688904216889298221084823538036479321875980335436763220097629547606458140536250624127472629727513586276460361142096797674475267086519026419605684170264849492299548067961365091805108861498862943654330490948706389433301957147754214380263005137055850168111498567756998285849729774085719458836829628848308840735163808855893179105752918287549832967510435470906395169706582756234923126783973536313996726296232738619394939339135743869595044701691144284903598094296985461924514101132671265367038107506697776266429712049050338423186439973941582128694378909858407957491426563353024489629449747000313286284909952383709514172601043197857063682612230399523772984048618998057994677121603182140116932461933662660403204975695565638229927021172915905843765794572878881011421274135027128526506005219213952706335608120108542778573099743677002366154945227636287322072420218708354071706548752289010455824892387440611121881958738845015614475902136784782237034543894620870951900866842071183769659157166315206652195435241036397096758991546285434501314517199758113019373249428500269906905732070392533012690944825191756337716086379657412085862634788436838356209535848771015353159488160301351695576854469060690416021142607358232408793318973242357483650551995130323357822604638526008894381393677230402621404239188210947121292047398796801022828963657040261911171979682176213975913875995886468371360112266155360970136689943451206020583892836113270568427474696477407180848682461128674528005349017560601048076092923235466944110258275251249837507120382920936973738218474911845970213630992341001572148897854871887100523277330014524674826231637799191444255758301180757739278738124729071142968627825828280831895947418030496548236809049376688684820175613581907455544204594337063826514725854748881172437938548554088982888923351565317966401144706125961872556888154758613691056676077881328305208392249447266343730364065508179608728642729383539419143234402318395992871872419326291341200090629526844677525723059094261547457114980942787065175944568585467598698118947235840630859999828969215266918147136886872693278873041645271874674090856660551047189606084682468506742074757226473026240285579119729871064208266079877851789465309919966873191306739423360806548416040305697465989070993387771249605593254062047006783877047865308016778240114731852505296578297076073236884849772499244748285291964869547653031799831188486139117099791536014180959744294179151880475142775239378622981543848857512116284244510552228160408588590508216016685178254249037955775388157052488046236330750961216138542922523413284312892235195192634689559865744596943501394907763865055852161784986992683155658638668309717915980614799334713727841667708398332722162132965069434646577780865394073219635403030810895075012041553837600890603981385173507674700532588518976388487293099096322894254699750540235833948775692984933217204109769496386359190676278719500054841834335857760730353419096396616887234191261540289547339839716649885746245815853374689620251871217490953010250521459311331223904030646613559700442772455870477300810095771444388530437680705016655296996641042134286668036272297007529685394247971520236527529937001042701255206660862416384227710040383537175059649972216591857687123875832090977246421122381225947349659881176787548331860525592128039745226439108420410283002502419543969536808428169811691019270200189175087496447773798913366535553370466891021041577275193328761909640346224018231421610626083905709783638554403785880704820103943763824861899748403040055765296710198457951218780511827760745572636761585546277751566177491284485369989544356748756540965688893957045399455675648220884981911679171237223233423301844797041144175308327406173465906542269704207976728554668033308032385965481210666085043054733955916825072583094813649184039426465593579452206870228027239370658045166864224538824478897321061210913995767963702725014561376752728095527675259950690315009053127586929230356545756537302322203578084380886055726960801927658705695469613070411289839758243532416394373487661376414367478003419781109443244406284738801532619437300439874489331492198266752832593226636505916755863381267688824556618579302497213806391144123358243780962242821790024028445273244940981917464517639947339708489419068238872015698869081958226849716836320092233960786384297151558688850522884271741813139085186616604636118075396609334670851265519021684846238770220087669673781869585525638065479853493161390183165737892627084812795728934329855352969031045935288057058560272327498817913729984634032200428484620743282896846156493327719941762252690055873430672990059978290912270735630413465024976069513267174866370234791134098715524931596441800163951332208326084943674366894145173069434072573999083143088666863984432647109505960738860251865618525801627765056720591907934475911638919524054278363667347309406576122570941798439030463452201032901435243765961777895540664833032939073528920209109444321933048659030149857029707930143919598693851304570482258975508392667620246686158299634592266427797567542983887478903609430214513600996280555721136201505727212181920866209755747797828779210035270134052855821285524326157347066893869583156377899676319845944454922216216798133611673787880334447775570786517360343607639612141533543308249172736948912372851082658659030163458930984105744672887733602696065186784528726323385585596823877362711004080334359086495127822387065609423828869134441374405394481017904053186385783834517940175738590008626704895642853507891971832803103580477621760273697658968959158770214610573711114153147401450872749105493207744908175440938376355849612859902354502793144293583264549128614336139832955860847809185947401591269572980597464591878214218143152297933449333115450803241325319655898252206791553785067449423097652027961096726921709678373708627666733620802171166906616873665439499311066087225920882455491868271381993137521810083088155164778351537251806812360270757204270291687652047387721291949267196948924261736998105293256295780340533175205144383695022065065649134223468976702103696355796389850950427135846306760238346353359473723327247667580408563456733559512909703700271156410650343728797827159351837725846969493208869642042403960927931838573833032655192148332942284685224962669593330436173397572618236180040172444381833887608776987882140934767462216964816198694320260956406301410777293264228583716532468363860693694295251556201602215990070037863296461151462393117695813831607849970787486035513925425972806094644246655320657379787447322202354454385516002593918407760450646822619918995761146480244728763329668083146394014633705550849449236153996045399499563472639150286527142852949809457275514250477672493560956473884659734640020168700592653871857616911527060533472826162645743318580809986897523584345955249299536743572290340396110769897189349829632455048686893326592361674930504035850681159616536115981362756714366676699618957260095649908025961490409160509905345152982242508313280221339032737197556904994457161823772282458554535640962848723836934857169053425602276367979977005531168643305942502197782606370093607375766306772430146250941788831631876038568140730121572030520598884640202573936142968840523280186309925758838692139958876356125523261142216063940904286566223324451575097170110670374966338403908382333747170534545878692996112766263115169938200931598622599796040488372673947062580245524705232484873631000836804017022191878196961745647911541281758143721015044122020148931306169356199260212087983395401121640832728533183056102214647205599223327488245276246301331807851563439172045257223480310454221539485687689640658984697543799991465562290276644586874100235751741409077284598504034824612756775562812389114421307169024808290953724533313024098803504092398133707162364324998431608535998807881982737867145208182879984382385331793166277966596987738748198760941806522259865884521419227006898784831845683752090689349867750472416500101340987339220534052078017000147497492850190583916816587346032328205305782715669531450647563853768221006881954587636766685278673115631473006812730073959700633866656174301578313743257847843884614582553236609164680987929269160795283590972295908313176731615945736372079583811948528951662176873596805844585176516485582306825410793253651531781455352235012961478911771431625987238186328093325618872988018640266418583387956420842310980725872681199454452976976958553651642153779964619178331927241155146692070366321305351572943422643487663503856255508594682741940621380129540829501394913783174196328689013454128932048476631109030962049907027070079057199882982001014905910192059242384478886873445253144550258293154871544693091888462360987115754018444056512036739473321633660177750291703006534484774475225059136087217227568007986252523986428583956138578711973939762850316254423768662805279869558783804324923313981945206579950670916663078303867443344222603527505806280041262255471391711535519154366059986036607066345111830468967151245528825859087386330817242950349469874220143128564711514732033831040029101659871214164612042107265209026843701192584910165139740288774375323259983142275052516085053930900430099112529776358428905405146811141855096018853914555540816974053296481042241668641950589492596095677950587967972121750057988346377451541085194981894055255097121872396231487019294170940047913802079245742845085180258382991887278667983341259244993081439768644075634831690013233427637690019866072230910239994995920376711596501163758906886527410308592297742523912536482002518311710665256890881474544640835442558507087785614752431390718892578594811762077639140814783174228847394088883640589486371908769789666032559049248784221617354669466045994093334147299057181932277442404640955813189173176043509608702970096526227992327241146952815392230977962743260256629595644432500479146288312622672145894834741591823213173645452283939140716107806329033837063262298717698444337627528812438815993729712582009798522327758949334147633979189860041607802808902329519919307813169038435262189006078763055211808899240126758217248743480418749329172009011790250263936354096770372042788744535147689489894427630506004849453368048579159533298311236841298286288048786649885534056439537641119074863003649314255757312731700987436894770722533451449866668748611590055736536188575446866351906346143166336461994845502178892245581471433097478572986110814013389151960001782564385851253224550056708795366518744536996262556518140587413339956295380707029951818900760234668026238223097641855788963118097441029310412141514336131934287995503042213440834934165168585018038840606319286430498439591118237752947930871444435490619078771197612529992786101539105557551592483277577311664835107785463549441921479299654808148092985112745487967244834966755362259309975576088739819112878729366620050289636666885768324159694412060233759054089657476308758949117993591948142104905043137431044048445745449622787035063225140620335136106270700360605508117633841307316195159485358206460973749254755557060005239694826969762156867943778317787145306685530245052441501043041365536131816328479455444629035526040812232842836295906079573279605054449991483670365280357035893703558580309541474764078468013455003186377332967447065942501114466892878484496863139378224766797870660515540711794134054436179256996025811614735029312652973861714383823319175611396221996039679199462040750464327020586435409863492731305302962414441834584326252747670563726727489335611748454599371710445201112380396640758246917401124471101114670527765182615535837551253084276265343234655435876971144348602034858950220009229844479583597460837718729917238735208697365574631426041687302592667998866717174838519172929211078756514641414602659001629580599886961241020463329759185669890403445296026365075460598409806888840620907199783954524937455429006682533379897844727150737528785682696826595692495696999693627983494670123284031145507801915647224901745567666703392551660003936402781614088952515489398744710983270963166291144089066858491410380388356795540860248644887616017377366358891116405869421697627777958475463358500848812381971668119106921478139457436134877460093781155315441853333981739929444982906744273062277797693644938446374674000041900172992664561574835386859224567284973131721002681327429762325616616119961024252461466074516028432680489278966916807673742262739070983902510967424361899300852030404172168644915071379769767538077234987380797471030867591617451769491619567447200733074641806438092725120727064434619540800975284067104897286514524839022099219781008100060172904396803036004984008938797533192732161294222204838749470128345468313705700095577142131266339772701168512948625594724626191089566414028292431600285985608946690384240286081429342036597333464974840993500883621421827274802573732892690087716869449898362489726918478077815709700569587025052608294191447754525350128609264292063274491163663091592383663900378916189377122923153164319386940816504983823863724440121035691706240511938651581976278603192451095632469500522992489016996996550294089580563416322169089917828752570506741573596483704738533167390629989325622271901707463946163065266946616049427243671489697396245397950962818258671919129648327757533422642607274440119246884251031766796611387262070976953252059906992024318652821975007962033710598644784923381028519945253520936754516176750458799352671213706677725306440596592063289603813939139914631431678930234153127156493464899715221666154018813087471200215185575163801863559542506206129206409374351798550446487287460933994117413474711411266440371413982984251384506285635698703253718521868514956592470378803871350178085458106543020511466336058910050689015942145660096654523223708892233990151547141765865571819802375316110445794026790172282595716478416473396969876567926364047688741869727170062234126029976690926148507786334632065572290398747172395204869603676531206551566485845609925912560154353409132885124509455576020801363920429792280082392260100849901995639140847668753993319449607090656761967743577079089561760605137787749926123318222644501685733386467855110674199792287267497698144790889884424799028633358765978127913898551162626933156829188446303250990547158505683943957919400768543940044101632590585987309012809894704164601044341956924621459776601124876093649673609398628911251980500983418553925097560771070824078262561380914470573732708089462287955353245429974941989772113345468694595033907729127934106595477431365512351322518873811668817257846940241550850791619650792951651365073967398481994701631622350279947490603117879540518607117473395835769954617618115310946374088304873307297227717728727064850732420580149194567846895327516229807839226886849765737598725895062832478713099029091689566532265005277133028728305941837981755574252547207672910741538642874567621859050526672553940656088952558282931531527862925421659617042325467295393444297038662478791116763596505851870608917391105748608940462793303941529589916662050480275956111318475721733556862462931171678814575942110219871874659572145104688802679064575409891906874619742722610116082376779367644400565399970919522885703624198275045296285962192560742861914646449360854535042303557965922955708494734351040783834120474439193927935632326489256060702980613038649748636508576198715173965413235716888592041948279546013310281590833741074334757080478937819486560055980126580243687959847832130951823005936620068433974523611860732600929632170294232442782286602596654782716635421462211415508322348942113075124277550014323161398566619513964472328523436943108522161935895429871232779162412381040089152378311354287431202603910044531784567292593159655244350531400562022344676063520532307391994578854577270516418210531745071140145667449899860522687366149454377214944522518228981626050901455366786171398289225566673838719471019555045358017181068108688318342893643635351684442008455826903962437933045872361619532779213567696752880333973193753586489415298405834914405202816959804939034415814373064293766244594225329229371021359429892535260108992646534682300626861453743401382340343228717388374189798646147694573776684318931306449501774130866592502806487573938864981645541367482693071362225290153444312185043792113906637343637006502801353142429327120805679738548816669823801326165702631567444191699551952051305888439268115814175330357731306327582285515625862662880113102117845411521700466052302872437376912669536596455898725220009059563719528477004888663296778713443544925810246827437942289723349212912693444059900017081826226271591551314561918228290155668367487587386520331292832109346939013608808932600486664692008770361920333257133858918892578186963083043133986989548805330952422256331687799588292376948778037169458856691504934268910879523454890846751349139761981355477946494224874731540979135813179737046381005943339364115041995608440305346843706363037482303794978557169139513401773563230930145839858228487455528647435551368405348918517072975910275573145695347559358177609117193859459996962803576205123848004965255432304161826993936893554117620727178747371819644366351611902815514485623537319936882979528540372177621690472980641285857594822153433942397591671480874944585323452691224426120920951203002318486054757045371874797011485754057367071756097915988026531109728244961884714619423823077112777465648340569373235648652811624308202096948819193761706254840849519051551839834926182607942867431335919238177618240380240438167375629980822361877138950903854132930487875455827177731749248490839899670652432924120157979362664927325627687671655994318659115855175343050280077268395095461716191028507951603555517589006249683297066683477457228613862445411257143431257444846888785023971156745107428367562890547050739814966945368161589664830016409735559867221947025156507423111254349249022435605481393452238950895183811054184101970473200674238748856377269908661614440753254729690893918317921368488511544342425844110565923835160953469200339499905020505999757912943271294128588207153614884912317254210693667727740237135378433584666237449193960767575014304982020335108944011331897575439813046650702255976399109317495642854192443693275083718906193648268094443683390770785966851966602840363162137148726274438088977883798984654495452300394322256055734531663969152986885372794522750638723195760805195594017925371549894650532356385835651656624290068538831332150415818094590607389278254083547228609132341975202211060018956676812021772946286366183730163802721614944705807054871590744810757550596763667173041239191156266872196519729836783909561175574582457678302835805589619390905398660347660452381943547084092024324403056013451282575673934934786324967273741762976320915694352712550369626168488222043862497485505416482079270910874805824022228965536703678159127398722947131615741002719581053090438669854951659310874748048012652854557463427123291403622672733916429374247230460675552790639648885210784945096822415142900109154704932070652586108358699097407338932419337945745275615804306141341899466658251481915167595329838261234278580147864839529030471109330512167312554802985090583773713964615015955670289866819249930651424731409340940236617408345501643233205461386501169962290379668988800615255037739366323756830289481587848566184842222978269565732707697989754996160119724488001897798089732956139735707028004615275620201169190677643187888588108564277857661579037543334857496566542844117163658242553740921277423825652223483726101034257231128293510585417885424810784204401906619130548320582685223541303399074632393261448043155776664985122954671172967969993356676495903989198922576175885206123363188126402551907105201745591232750173772438582819804545879516631806047611825716577554964308945968108129363199296935538627486403194638899383953055733755975933829713578508889358778570567061707589943608111736267799851764701791728879632526382242238731222243867593658779580122926506194287493854672129897469501651630012605209543809301138931892676673864017448168429747405164579380559357630121320041233440980279050994129800193877106393513770471609755588076257619307697675420174099399863455458404028971846792364047524719817045410616581605786128405738470590647284992824607442347591141375351949675723543309702685971392382274463598617319300270779763280533687887474814325457259533719709585982192090052308313582870232983009965298690063021261896244975845308934724723423862116777704386229333909215653777029690791902014286946741036057727683198047278040311378134680731507759097216347607987733195700575002459013132918185811754333302428058120456972032759948499337282169438803053506181134089389267021651455844544996813196575496215143490981488121165849655740481500203959465990154224647260862833928084847619035915686490574859957464041852478693762518912472187625367115586330025879233257385662702257976428087349728841215347134788601677143098906565746613606913590263698015769987157985349772078065011169412675483957906413250485860836147420682447396419240391738990507623743927814649000291349704013944100283023168364893981197533370827090125182250659688562537209337546887577090478527565821332278897152843078613517349886564679731584570741948777879630274756220124519700400456373577544915839786556884432024624404384969636534131590747389726560191387400108179488012952074531183025338226168496320485335483305047173228312961536215205189415399469136655767351070982572820139338093303144534946997291520074627667160885859511846043852944211289655655298542968268090774938046280268994368554639304604135553969582524130512557546889361789872633574970720802368077347357579346896531550738146389053256011799924764526038211193308768455207168916251027886970435999409539690964200993425132926570902042075895715189948336236499621596308032234971030539344184013405008327247385814175071784386141783366251703473582168679142819764090269383648297132077921607381393251066161930638375345487943597889970968134293755640004407501284042325268898769770602498242024165587973736685171061999958666482968214081031550602984363198491271053663712354931654837193571721662280383578460804104905031110336591081497595166488356934771382584947365663429200330798618557284036192389016392737910479028281533515434189255899009124490313375966234762186164753725669417197413943309366325378808683906488706832271489885385205949383595994520188943411046991994902625364015068296664872483185920700433481795957059534383424668932350435465866096452745532274656574674632453088924843418472651792904428408607366388335902226171046427611279584276996384035804405298257937721116558610594313710550474277088875872698152383923163154643042210260618919614789110161329410354957773321965256697176062828464569762537519428464966301557315799657501535194965285136776508874020461141173288785458897663980783078005051599204999192062949126085986691060949379740002822946588210567035601539908564752413987783739576036726514545067011088921090295575921108493372276820054258520357132104095321264741939201358762654359996443853933097561119422123232186089008976458954612115724370537105184248407948463917434510652109498802449646936094553307999643592047596566009133282950352971119170990819820906195911943247056128378747721225496489510877135540876203423636135250537568355043073907215426341184946418401648829637203103059410869267975840585202793810049076958555857327374283879945657329690435819444514011777924253616177618254882740763620579382451889032706652584782077722895228107321976321870514998331623673169863743972187767723240008585775928532250208773536291502316438419756327385612678643104078839909830980064316571578823752072753537625063264756878514501810412908523799147806174640697219276589603665193780451311895401887575562874585093218240278662290974616254642041963954961412660113252036529209895198870243185119457818907033859908423715262963857674085636609632915087069865634898170882524502027594867832536335772798642642390633864348924652659575789313492264537190251274005813021064706958939858106272619695111093840014286818442926715326799307692223817916752071221741336137583226826317931862937432664794047387509877084842033938247799548236928372943080238785918736679882149618253505116481137386799617765777633892545345256521780392776794515970018030764836290170250398877364099568544567545543037979214666950575624469663188158559313337137715639612662481506336871260233143206081310112380720021809635992995742716123111607244860753650363134682446365235559462723318940732838846254966728036948497519737549918758790590454023121264092616749584855351198628947462190714163484745858850306252368592405214736086070774368720511165966209103918783366991040703924875212844777284066455265119490281677119472014245200801596235099987840715491027694287142770376681951109055766155704645272131866610587275736168016639062693411647876346113813407888335290029225550078352066567269297435462401277801885848168164701622062049192526399198430057571802026799391197099049451765750856176874651322303487383706293654632137870627189581591415123314878229148973787256472240562655564580452054714050162126902773570442016129878676729073709946959628216901053910633811065613777605808920366656449348656811288151773139602032819183067995338378625303088595246957912677799173774545902018888677347051138326097347954656830391050407527929693765139063208885333471175358181711396334507664806746267305527149939278342927118001931868660373280737990985079797862320199222969416922264076285301315196747012722265344754465336062952579212018062364179406694639366596182465854328135586620293192317563169151878832301430093757903171321045158322390426738948726808071586001897875123958131821368662912208867392456699656757254627426866531096872111079161782859696605080015409873602285729728165496501443313072504892712266382304312350694319715381830480705258986480006395231824961970220707691234480409704861824880460124834352124089466484432852749171230346397828908106128246687161941591582538999311099742398614455467611121542875358455397929065849104737032671414933263514155498868297036003904733083896584305865290530601986833198719588968415251856023222972188976170231880738443193959269622897434294178810091879422584022758146904813462483681042853564456254631133372520506209546988863866602813321158054154672249860654951887128376743427361090772192560315381401492109330146492087522752605411253975982287327105735939419359611714011396592781221444901367244238847228976911439059013194817827606502102553987214411073605157473124675419791881185305584432358305307603661103806520628432076069409348793769195825201397396037102730647024832816744452496936238653812243909014315084173541461537006941889465744568025931275144661352609419967398792022333210814659157822465896856950023252468500259905246126577837763056808757796764448967682356285619768936770878154467098737624470764468434795691129027010699182848040113874285114522945328861111986081417307228562279278893734702327511584613989911730264544456940132280937407549084452182515746762069350930996639627452343105663100742431521872430779781015810659639852191611034506715934346182655436530662063354182565771677753922114127053552748100740604316631373081929557021739941860701848408438235797671008958160355960431036779237658622912017241940675654492631199961824943785143244099447312048977736243987331008301250996726333954256007525384876762797050795433326055776108480645800930411326554741148329550086858140006362170011886527000567226664873822291170312826535109902772685218075665082742228009187993249110858307333284135785133399695650357697936402490010071789815196372836931323924693060422759132385076034334784620087942813631324662241577243816920754442492161937465521801056525008987620147486345333167190108984593517255663222480021733156601973066205337823453381243742880414461527531196777253107683527733628888600446698391333725760413502707879742029256415523369270632183293291082852281150217504876587889311886552920307329400708036526884700979404057699079394904491711081350739165329404114968938113650768923170230776729205266804513912973140241452173936700074665119589383076495050422497061057739705395847962932805456721716275347926099308774786859711922088952244678574849791678942148478864675680027403591802583578781145115766203889151531870024487136203135286919726384338708835709042541318823129359687639895135041441041587999295916699462585889302594633946353251041108294710424859441420399160811174541106687899672258031329442502805553916693274983356817039622874317855945322251899880647256572487757681172317152358230709549655097925525447811710236253107652441036998773125632895944624316508396128134627563497003899444659893137904494414941056106330718319749065959106015988534568624397348240089964367631675994038266088653497041338224121812618048142496386462424458670862122017836665056239474481184897365737904066307067287058428461244845292391484154974291685340784141091306408042645226416113073577500594352451383627904206459761453670444241722512648893086977800938711224161269730106439545281008861968004775809208794226078444138833741231536251577610786989721306013437951787518906024572067036784254381103290696304106602022539285859768214920598010286625370674420863279855492995506238533774763351992536440715682446333035067513853257504646695982350443538849087394993471582101861830941731592369461730185157134624316492655813451421497598812059429638829229305583519562367191713978364687392579058613858553711791095865104876999595601395341659452979812610706610529168198815272252560377380632857561555471539523253022895475592043288950197698837181351500162829474667755214137713207657361115676318269266345568088777305001971043331922847542571300533746728263995569816966313067668258269822061341696944975038352527983847683300836175305795666889196917497837354132644265633718349919516892611992115516536702810950635429461662986689374775866405805134428459406071232344490127281557967832358970985450976115449588021595306741346957141443016179997051808096064301982606393458527506165548048469814063212843452870805344911603636370113870831516927799220140048278649215307614710518763671684209238317202689728836437536881999790816977031919223879129508167138796524652661929112691142908791340874064583711497975223278171099890567194489488206648288433362620670255312517685898674032962028374353403919858110961957729446322788354197440443378401135488355372077339639194916774619976284139266513052888547560928981017019691593071295240404970418848935817812438147660790990851028219813135340057905897086952961000369666409937057690360420852055028935575162985739123500817300273761460887947814827949275457190972937765193709932449182865470411475131543021047904170962674126356160150772091410571939593621394214877902832869780489029321081512422231757707246837564158806289456323281430744818100774231016467829713551519808606254728056592445009539092510086587315960426122431558909527283767524812783258213698725292212602219945086372367013983863694831940173460942977747026760148647713048867186938631895602022680692331667432875523586269429342069121558822985210115261998357428077136237818194733697185602300212516595651284428782534047592665416200188037800012418702122171948713488498234066231294343384297288566961205401111280868048977538962567993217926345185220935604847511565226434670735649343309278599994730660874261410685756964225122515437292647404289708953244356946061329631126636395583581877865252012889899506265726479498000765383712780864517602485765276904130860338691076266549527833586016968812742534280906802203411572659479143789180655094299364278142835837178002875557903462172466479601070078711281262258230487859578453812504376536074234630932514065512555504627376900717937322865921576254585104338627676341461668628806033363582419276704561587572226767683795960420968590859662420543514849032157285669132750895317536335539065450485631838525063713390689898094730782250100002930067559949642695673866083500614949858107059728059203569659594597376489718480054310146276639153072914046176186971172191787389804024639292793003938663397208197293583539975406357641290192965507444984630906891220347194392532746803658034719025963530409001072330610771401658518638722692892630063810648984650379700441156272446414671572332365048745686460440997436093907708732109061028412503076871546122699245213437353551150386574108899050100809425984655110561579332294984763022179961677562365385691254769210844686392255918129916766966873392987326639228435947188760132761894898752160407447366132763733495846160192993068494320819163637594053857336526135970521480793047662471200447372052440557182265302875660412946584361104822003251010259035867532864934142194540072347687505866593995994085491773903751387418611752428730683043981833530427979784916910384995822333473142518560897982048021149502298385822887147018738869822159995225717441736555554754156476092295844010158977890044226843610393212891226870242979342985634308673352953409256148693742788497900718235641913239994961227315968664239840204362809073869633935430508956665240394391698433979702318670888920239445056510358431423135540760505059127821450680051093167459573003267465105953025230428392654968828628243156952167400482472958427488239262661126584541721396878674485558608610419713882261479764737858325897076946948295040237307360953387431231303560823434604593578297041342552575835133930503087603736345039044586139814902291518902848258341576328390563139411882290193067084666791829472528377532150134485121480376615893358210447381103551860867849519576364066386461420458976679162005820810889404523559814557636517177900292074396107563804386761495920914096722040105106390551378221759826694507033860997946522060889232877943270011500743017452112190839243673449819857910849212785619253503092322505371578621970532193577243329095956088627474118356480324156034819045718029401229741575086659689935005387457904215480118657430349305193769724395293367244951634955872380282855318790938992000776277243027367294269654190228956220981417461968442316891670459478444587749761922073783987294668003719809234649731052787492638800424405946557475481556088340402010299503743603775156998866747355736283526555966909558414682461631385505411873340437171940236992976193171841273410239311129055156841371110662124578626119866789533848728070506105395348016456407532259510486597646947884446361136786167008177819642666269287973521896262600930611393215610802840783142311603304008564383571739786983767634927163354391998963000051310663747000413563463418868608852257334208960485556223525477668065784261435395232304401815661038555629658436812975093874402776189719292544829637912281275788847965886674213507499415446704382223051912851721451205151285990905822176163609009365213160522963743893918762878671162556398143340569675855726295604263035377455860486633021569475376303316240816618969908311429414154553888317214031908619150910606854810316127449807525212779273685814307687675008275524081789667252727628458422804311635514693071694103707855115247357862564273306181979126200501855914114597599505293265448952711891643339429106617093093503969467089954292493612495190721031224226791419384807968160208243256911935190769705404551898741150933470075067820032159447896630312747108811086662745751010878435263963524732315928081056437813536640542129092158347178339556138303735798261213848666514626388141470618459415611232460686272395453353908366848229392482698203472675031886319411937717445820968878065840544589567421590757098616432985574049023965896780540827086685447669032528173864728973732231743064755179865383035820411782452028710908250727633493917362648690041507883129919917372105434956268189578425738565110506964658929570184318624195020343131615583441603538083443601460674023981125307299872110534053540477922429023171814428159898442310603354854938813141427987356529839242819476057904996919057107774043700705081331455658149925222018331487185244088127402400558018658711827480227571219005999572772319791358962094721983699579241939294153940585218426992051593904555029714243562598861623171389190388575557287132033737723993871432455708591397956133756324276597511074731470547129175106761420313971003662454066997696198427435102846033749826080903798801735242878327301424564834947138924511201804405965705964150947869865259315276927420265526569889497073198722880511718687124408525490548332448593778907416641351731495596769168564605497891774043192321998008241159424604950081476451489892969829326768370104628605357856556747325821264940921434280047589549732843851907324479881447997484043911233776340384717585870671226382145990828825088685759175052991165651452270749576736253906267350770744100738270274928115747233809298207786806489504656659630602128376480178468671565840550801587687266273119072627686301004743127304489897563347224325310954535063862541952564398457559078454740768438774147129127625385457978958616763165015427307191216316206909040996886400302944531261522036428257510698853670226826506219698398054574633162535891097230370108826412213518363319984826293806344702588209801476508953204843044760059027022522620498778069615218734753183223282251078278827731262324716690535704186785466907092896067783543853200979884007451489654788835547660216615781657265553209765345634367901822110917609867771200200462575896387547538060239349132061172184716195931812527201659849466476906475103292048597268126910904520926565814983453737440190055961638025955982436737530976239047467954584630046491217223835238919239514737724658685020789135829563916096170568761455773297705232300198685371683496803102559398067514194736580944601287956722638483430474258391221225999324177273751010893419752612581182441646983302569333083125916298089326665359620496125959843303190178772785908788648925320637996689220058880256551794862790817777908906319552788732884114887145718787788339885368382196583729813201447835531734771179266361148521659367844094180021137221935341630185798729383708884533712791474950606979942310398576185083070164560127624008729542655270536427732925274963442028561378938505982392001244973991095778354624256699352442213091007771199516141336522116890644318967236954187292593220511195324143686777286249910352416409953845745573754847850558677773111627274592996136708436609883539950459221471987108899245247516558018913644728386038259175449969933287902924186102089680225577549271490650787265242059320324172341177072306187109977888817362768938214731545598990177951919210230576525306509438349176436176748691336448412517355693020309150141744860763767577003509001562193254905834167960135113778670172877610977300834769564981178538869860875975088442111376632794198075641778870475055114688634166801950380360154265100085672132844029276077393025179997942958186685179807682401951839273167863600159855538285035413362794305887971796669461311930451725023540540433562124110816415561551922685596417113588044470230681977151449472040014603465855567443867957264908018166708385498046996855109297549533265127693221880406150645294225741804431168339258607797497593712102229493278508778405758378031348452831871892799969153223994623382317824731657783195851115498174161630641969299705331044784559544909170954620223461741646996206496263278753869042904394710986878703312386780549955795708280588617538609131458631978213726341598999527861550662305755731866600994621769689741798961704846825427393494971626467769886744242961109493199720039645734495338306975163691382983542554941388434303547507502671091617838385313978853520513272595095357972047983442786890415027396419785880541399729102522798088904303507035704251750934092060975156551201037148534714013883754673323672266976768804900556926898994611258928629060674445691785779555958533150130139062738612435564503832250982001967953432079896730439961503560121762139468071649968472936044691172162596478247551900328306427020895267237803256281718861023509667418300888392345101030897880926485642578517912874241443637147336194064336119201023658748747683660445110303075302371894445382463598085975552643351673358346472349154150595563304826776023900305976843068037984470903946433201555784297901118445651029122484915950649854990451124259479510408767528776665603047031533239795035514398840249849581929149878442547809630414330303812067419144857035052299430895180969357476914234314158687669295524534219081657683896111310210138457238999454963944258984147473304468137554014805085619792037248706715599193408527052672057748904169296098242418562624116997244132940977872308424708316484720305971374364537864612043153025098222692887196570031566381862997658074067772583880710324999659923149936230744709752431303236090899694478378039450491650641651896314862166618857607051396219280615799839642010625400743394839685298537316718531647518824161100381324868763384632471148780002261359268933331282655166359865082596080223474736546821441358695090346036464199444794515073017478066662499982156439460203260512048465535911553702705688997117811041817486646948092224968268807157757287844444436783951719569132998291409154631198559707536826534264059022732968064579492178185523553258370359869390722574367897989489700452471256368589277444997087655009110983172277987312528705602881116380493520990695270463648352204274347086694962721857035357043263531498404668125731408890731387605707914190127993715750651969756260489296608592626107579714960660536961073219021954716094365737541256859681575460939755545390806069084421095162490108288863201133402234881800630734488340759766708716339213909111322079783385467679675661051034157568887402562348571655081685476188621077837065061504743214352702750253083226509831586303257296915506426023335235112474646710498941595253154538839760749879073043353833506967667138289459213952732468286470574560821148196526417330844626392433890028885500516344421189903778124844087748658744623464820159853623341730510703366345975367688657236015140412489823796644649514685345463703699359776057284099064466171057429447886818257776933904082177456264612204400326972381459041547782707536208650524926800496102923298683843763470649206214901104008567707639439638066130023554339887314784770888590164957713742594048802815129680876671469218799781321239958842632877655592913330140737747345843512151345344838208728135871971963447754510480836217702288671173656240012789326699206812594406216602011913375068590334235423394132416162704434321241280936545824794631561210006123767032125360310444087378448181864740710430396817404095604962157540602147215773701849544359023534692394653400328669807357183389300679013432268987452134536737365927744039530663980879580630340527324629087968380348758541631722872386642641204369506983887988282971030276744499529652320502980983955289657970640608160036888247673232867019157230367922449949468467892180517939540352781955654845072040852879875232575683577234719084335298835182966501214133766824531634685719452773280188272691986281760627537069692313244931169466012239878542118982158421232995658660853692231598103009184218907111645490866730077086992004570876830339635726307594756084824560840317317821286794599360233834585403833420369530575818057767671063631321016047465310776464918631050856866238275475186765014618612826521948420928249901201281482110690355121114716250184912097568266508973875150346255806469694316826194987954973654759718392868740432718370992985229511665196661553887869163857629096421357431622990472229706586747279887332357344876007605540757347353107248876942250305882695563100691035887009517315082696933017821622831132390186840233350596381595878938223339121954823808048368751430010387571368691922592001929582050001169024234518868863015353388288179640649364084717116412352875004084845906407576431794735291929959431693303442961321367166028018140448425436461137391255774799554219994571310913282900756651773260446870340922463544249537634612085361289987277742737007357873023279971246875603368524800279673831683221908325947576207963927021762362864560758779901356444446148719325028947095744368044054354976526375931706671002627530336856459143723960913040088453394862175047053813612164685680432218533686019702758788327396454260436335002398591394047962207896418022066523504298047841379320740338603757739584268716712376638715301828242256202164564440115919683347831018923444931733028722829795275036558201206680848370548685667638160664874048345766369010950985326532464804387090859919404238648887812812230602849482979781519543790796622158802560770587168766253454509393203400941128992736898291228423178248179848977497570788940720374285020760710014729440496355112927305964348646842799104028888881575271174298081378518164427546570939369315231050037515200430636356674234356714669781135586095274062371899129623168273854660864868364227135805828097079442256968452973508032599851955340534260212813339545077231115863957527421649595079306148122792713217304611017941529896133214598306243540397811098649352117799850542367311799014818817614494443620016574478550631623641076378990380925730729923870917963051698776847938954263095344289859076869633516577981793170267258877571927282984381024545339521327935531439461272169552011635900566587596457007137113067581175535565076856400164328880206557257502223299331354973938716445227300456653368558661163551110034459974307277600154910847615381787364204646858322429575772866165026631701961685916247423137625046957052585915490039323794025208115986385773185268563493182828190206920275629926348196850138731753611411975393840575436254190194247366346872877007682635206212340832222440391388845155522124521597013333852839033707206171981232404824227724214558815326433665605420019337914122976206570823340044684856674070506572083526274448064776929003912218488272869513594083749775061814098308924801751779207979396750705354331798031116029516273634033358415627743827461313922079569463209722961459717560501764812191266871150254431373196828229354287303219793333710477481237811986701019113018220941919011428884408562377212884139924268783008782663096790126588301998448037011614930979429542134827587042449780335784803944067498798406885052994643103246172780607379208563915849791121785580389445453154590387531098799379491824580352089661191367163302071663929997152270545229496292249987513374806595922157248603646703419810044152064585202899665756195603004286074834661597609618081042523887954898703471603301289616788612809324277841152974407484107107679098043939380126448129158678982461640545992707026024855055305195149821751854028211994800768896602134366368736159952958190196701118624786253051476234765930201840789400287422872612356478472517118215122306054633109452075733879357382259387049006354776260878064164223292444824694753814048397824567475612472202619683876851256535787909065209735567876915764728797117926094995680232241416974367107913412604825702683391359187261333159572070636520565129279636314268622820567138163115430131746804531079045699487768792647255262074679209731730011823273914419670996225863697829379599222358747006785640496887668058319289347517623774568292930288073713936558920568223231084715376956448288060257742478383141165046499380700715521364609215209467423979806892354429753499250524821675465075142760425093132641624467214129260968969796291466523171482426149155932927997418946648051002956802159628734465610114428342785378110744618786558465759756716297301344417122735606485421625496961488600836669468548628675511384383279302971972641109357695835583585364503951063596317091171979925362545616658026849397233848423116643074772733468113778360776452646117116184147956600961065150696571266419107257486030792216946056990962010220573016198816099696998495313589097799116545770647241829919802058623478203255560160966502395307808110310504190090603488523803270159325111945116945828016533879048883057585780470215544929824947061677162331763282158624688568281670554283009811047050977393533830466729870216894681318339132858813939930629444788207510510767627789532979961623480172133742857755907449778151624177547886960612262113298130200991262591663443137242454717901653024201765120583049080930807677625714144573738158562931830631033515067031517747382846131327248816757736101744778256441448310273509143886733229967441314054274551045074401650341721025999466888591141285472701492519489821959990992438616119251114874417610165647025640088139432503652321355108665693432756318049904708118512370978185623416901329358186722928723943772587272895112926461471967516234036583706749308789160206709194914247617156857482881510482061826139677966104100780348310589442991658592596751825051713584912730847814359109535823821205971761389101471271658769933663189762883599038011109630543033040358063014461540795488861622444361976501586312914534806557356337478381443397829953489719634001120567774709280310661591884865985725523962097906053359374670442039293193458794719110492770009222395969128201036268090033961471764838066968821149921357659975576297561601161512385169774286724080639869808023284633567929338823069014292509499432477362364874066097595764368827227903081531003862452876624998277403333600357377726598257464643402959724058514377145112109120212387401108680896515168624586113845056840864526695467785094227802053235587132989860164357265562966721871106143148249808450406282939328386147171405021011348538014621774783406966975029583589602400638210715770870305026343579752886659849273786518904428313359739071114159106945811258370373288595234208004302442669052663507970206089542345854712991709093097474393791272535954701106330555689692707262640296315162840957314510525938654907032986215504494629185156061427280801387926209805064700848615221840464295723632477037627902336736469417447215574900301715324066820317316479776049800102812974877056657106004968515904278265409518254223400819347887578653123405975571962059673589098007704114791832433114849796122189082644297134727072655832090871557371109268604602284077709587549389986060366386660665113181904234141691713825911920240576431962304191324120387848302797489044608153489531472258784186976354674439938036274083420650216862549677186032930760240672181516490447279070167449330391131957705900055974969427266948475278836178187978331063063707517089411503214486500865343164629258488407257987382822908256842793137430594035729277764483885447963917839465430764168695188112161856120855959933643194348045275046522876188408355467577682490744638885997146109018710855133513019005845128711277877488630963612546235930973682598342541504326578250585536947365472858836385947555251823453767192198368770117066149476255402751234206648736173311995052511905125026672727081460150842022569501968143550413784343297063225641683265902176144205087250498489372147814991659352166328427274688782598048904414827078681836115753949575472996495028024276845865113596630074011333699578052827183427931654596495697678322096498807759583714564468261550726009902663048879000352321830855179209261129960802151761688727807070924685278379255122545262295012033642187411924927376874302362279392860530360116945796263635070183794411944871696648462482065440995779625667056547954576696294819317091986570516228254663419264508251491029071283525773505372878275735100949306697954316427365780125938048304180242875045007009430293952240528198015461090410103039222174402126110166678978828999807574387048234788719791395883225784094505314967330365889339422889754751194426256663495755166111580378563877615015548209633655382270955858009137101691263714321013741727500873657070329322612456253488366302301606069932254702806803819611865493311614053709051547175224350330295330557607900312907225814771618124853215275546859747429676549479324559451880925442793807798950922923043407207729160054394088592400666137997992894088490237434219897529412443651890539829618934052800224201433442975467181870064557698025925751878427681871203559523533426556415604446758287658309736247713515363492717903413180187958208905940351063664063691881482365384474082373704166819812099734343369838759521194740311200633939915456124553253857065223922440602554263495510740908578793036402856916955666176338734268797635076649754333014053078431710930201658038883378501381889143795219925870560077430416878628416808841974033791305989636729804772027299755904694626205234056554734195411295990295368735050311211005852901165117226806293520877542217252516146614342544791431226019398644315949317151821319833556995629118581249583766100992793814822135335966204601449923126259908983188112453967081626481894263462330556370830436690910829885364724108847823184034735358004571046262579962347248151023893695657646847925789965478066456769609341914435222083792167772762678140884849228645687046678446798588820702575086735595151969059849364769832497015795775765274390059319277724747644706419050435242358661600241472759973354327240292577165765019672346574101489916648417701421772776847322296765392500895748874059215309336333100215072930227868361633437576600820459653727558558060242235740791141372708176850947855300509258160600702652012473640304134813366500348734925868829316032830594974423400359019583916807028874667600373042542232554382880335551581794647652501442035874990840048210169629814186899775995581928954060240570315586153184883533733762583130806138899472048251065744830392384606338663425984153871620210863037336693748169563355448247993413920304792732313628679238452031214875403270240198427373318638324355088137662453736469978297163749876023178078473212205264286665497728803282186654336488588969964214338424552602900079291512902579239073714977465666890051752307850005331589512761542035998017326442414353366079010523741662849246887500473093170295576274829491559714324380759079086078632791713124383318410643930004049325569693456595256852879664350166815319826400433931101851429369791230575310137845298605930753859814408705097321359296789184200292547954648601540496607819202131738352020967897772075175686102543139920354510075357958162545056470136127661535836521956065365124467940886450157906306919790784302594194193245473693362466591471729456619372298687760278917204235740151843631669513131487192436146005799121692066032358174872297628250543539065781688477351997225282033309662461649056968202296077843205483057705390698797225025834591486946487590404360978019621005524093346192426009890790982804450846347594800395212318721938642451734891580374741933283193598178469297818840469249281166131807435573617939893736380237456715789326215022069668625961686410339031160233306380396227121130600425645065789331980043848811327677681566584371765759766306123924648287438451993892170162322011443378020491753090622661687244150594736523312572394472624390291093263234395517546438541976110737250970477313890839142657669970332195809196852197913122036741911857583623800159748050487477969172766923279987933374244717561072433417146520204648623899685056864919053273504994550499646654987617975127922395089609283209940728055350030925538380968038817134023446318516186129541209460607526181970860216814840615161992303958153375496721534680596605647318403863521243988747872690828685912049728171394383881577668080900791515037306192751918716404259127150209833120521256801673201494984253739966197347609534790481563142969206395400103709338496731850676716502920087844370381591927942973414899754848383176996673049129464150638886235870055435334748228255622241179655005151917073577132531239890112310202850270485494806306296250551280785999139643903791249735452511836290173975417596916864055996411432508662038917875122100394004408713824505203997488492991587298126529131658094388717296552306257501561060366541604657710660701714603491925352925793409835138487863732496037680637254255249947779041803843188469766567184130649383083371820528842561966925555371499073421321607367822570186758913752707394376791996430797166260212507633054864981474473153475604355363085717200532535101951565588054483861193371189618836487564926976766017822302336312133993090954456875235488703263664017034313989822137593553663620838871429864874402089416775320498282942380023586520791383320491863384297128452690301468940921566787048416126273082891573038909650538116552440266381447355236110699690019729160926768831415799470840565212940392205913355117832255915312412094172445701692215686064124043710254192371814610017009609700640637850434300565383244396832387276997680666985692051927926139885354691876169218552514066769716100208523917441715739837830195149233883265973049708982949140982441384241683399830672099800599746511780048449139073745301669900027021486649495459767412417330311875607696442960043457451184350054761439636498028346161838097032344796657509152267803455869745522095131228179804704528097101279438843258865249301210627349519402620215347398236739481079144079812190521323857643411116001159199045408566481100703965797813929533731665821192917777985095352961759605363649657165611226554334640639738173576809481066698283240491293546551629362137251128910315433335274816656913477779023266540554196734353469076739225527690764293266614450282245010875961192558421724356125649812183118260375060787277986993780509459102855529115533678810632278273169736799417565926848224219911725083982107649785549987942802135979930453432012661226086470772987297600910501015580057543029448997666006088300124354879119870424690181814510356974354445486301075092831052641932849815290075911947980524758533944837565620622614081145108753259465814797928615666834427561941067537765831638624765650720372285844397911677398547914672551732566897405894745935181368613177110556959017893871078352459361132959526090962342196684687561605725134200590688581443886213360672546377070648297036525128466423343580604436223391758850650947484014290082856223768979701275185511201153050813137495776245067125257434593680856121315435947928396106258978074706948462782479789603907902760225712116129170809639723837787882280884467870972655239219660683593412351463825652921813761141884202227532850262579073387007797502887651106567407965503337305938040931084997185959156694589718061611722444534068132944731663247373552450130521738997185825930330891684323034205658456336672028957281156477270809744919567206850208585914542264952739361651141875170325773603185075688078636092482439399016463060270159885115115245334986696704047934310925715617481394243747211283830349022788758441658499887462029854286559473619546297103471192189414401345496039030004296897838345818585405355784290673190173767227532752229398541596865765283637820510231193208078725640830729173907937809341514008549421109332004678891875432448689904037069077022995623388452346344679535714281782569326683456967700647205271320263417239623325211588538018451454321414898291612773009555826890518650992735741688723999961283898911041124075673509439687607105106730228768387372311928866607750329586750009009217921511712794037310026584487053035741030976704522775996318084574231773849594364889715296826630780702446877868082882948087231736165734107184608655694555768958990177617184138319709682086692702753807627132479438181671213825255900858034013365113253246002674150566298981442361252073121736996378975610094677266076426857672809607211625368292554496532679597950624676190684365174797973894975157692386229956538722688378723266141249332501733924336094273059366368380155056793871193852332515639248344799346273271073464608297751087737105792882992487240471622885254595601039237988677175874865607375888669048600445526945432524510100299069080343099605565591808479293209921101090545557097843022761974757626747051148338008050452198238241542657232907592047060375674119978403132264623572949679029297955640649739263212045712744761000016160348710673981102216147741787972749422829340774299527267358788469580220041672495643868872090377063236090776307919211292757417568697187176809751797380128974202501931164857449253104923504353033696829803134880729239028377054180333033223160153482654361993210717146028318434931179266306177667592016053526664603708292903862051095546121953547684444851138971560603150542786707217330187893214381603306569617672870683574590600255145452123346807705984867229760353447489227861389364343545750961036865427259348882853824075698848485137342582901409840482329079079270439667023595552049562360104039961906178133230996278918108036163047534173052834096599531283504161081337684885384447030053873195983157303394572746451742595652661295757740738436724738085450245246246221373646932758337232520207125122668140285608421802620965430203017611746747446217192843620589119895347186770202143355597456312613993365087704975189347013617488788266617578759438361766010722552085439100660129772803087317854516666280054868907090003865592389374764985518213208037796546785675673677728930353981379885480111717325109481104059536030066347178518687086263735971110656027775045927955320812935909005815547271318007197134679477737353874456430742471528796944707810606018805239710375667208263869030888571478639655657471640401320737209128517972159773323909877333229620389261514193520106692375316127521588250428047059590427807986381447939163672016028325857066881575156013248946926278741776727102736508258502040755919668820327820659127823469878133177885029379222275534943683598729979952145690028798529298717059114946532070595637545234496724548730667134691758489423637708370025506611700935095949226423080254590044457603264764125940863658664406153162311469633546005488991110479795419039981711903071885212390704791835365083672736483028159021008945946190833455593285086551836617195172876885075181249039854248415903198716637125093982845853447332648671436581507361990672105878987049217055186642222258881195854138603913534326944976844554058947829574612378057142264149310866252606626859244348253839110977372415860512679099809614369853341810546547009505390771109357869170852475553036431120654082495331871701709453721278528321177867369010273871285709748039483977959292320159431161338387651237086057561859026821301077715071435304737023034305920675800354677696252803431730544598053274116998743073637463376880523558377284317718965930713997485671326003167991143552587848841815214013792389225336068704395570228411585063047834068329173024858697935189122397654309732489394496199559401416663537231877764301143950745204283034313230989817026350126269715440862473456911861421925699357539522566257210716721010809779007126435490678957326199611545391115380814118098101532650511751308600126973567379311036049836801937476644732373274272952557895999128582695990615301986869527910099836223497693823297090519011350826306698600960386368199044000442917851299468226716789118205222532901520432396983169951997712786443321100107631820867323647166936028224119498724623881367002414025497112718123659621586053040185166305328393839983481525496828489713960802340703764853632753377504025506327968501898965626244973005741925190145680102088294256100461259663242523932057842324447297584119920532454265327386348233664727048787515660792699427879437916891544057563719082410305557674232236955284113451581717569992852176009296564299040951365143675508287961007356983718313412019360362372954755783000538270826813411490017122121303679268013911422522785094354716283541749485819858305561148181636754517034849334454560055759232813039049746358781504600807374208278266743606847071203065986639201251950540279420279674355001402459137688650053288443169925614391226017883484004450342001688780609088570107578768655764623224208186727484385091866997712954369194666706750762086031328212043616533866141130193323102479489479427424490205181832644771662181215244562095039298324869873687320180646074114815031536589961045017048284189548976849024596841924769960667761057283041735594977709923855960502954049626899350167796999349739123824207792867932437806422833381357859623048924661474398818500860804753279056672076860294539537559412725097222251272724847178140799233140582336870297751449220600252263990741451867692096283295686232733069059132445821322213557951534492529761817060051572291958091817402348302344555730845835831800238943123176305100105572411274816891354549876647148111252621744059235532785597906672158365467019212122800115757283556716324288620724810510071806172761615184676222415246867718765584129163273913052582682555941565354897568722354269160257639801353717615853258222047192376793549780715782405412753766185105178835566877994392282583515358073716308520087388464602202843773866328331064133721789494053374863794991893379753018168453149071561689315968147671672625282623390957851076980412151695366675512084972711278746627130100495580945886880165049441857200897900382401430809461162111935670422367274152482261320896711327885338330566662471027891579078556775436119582867175421583008711375406864169576753857991996281284624362218763862556710777063069130456897298232829493794123526645316625642468592161837268539175509337846631916647286182103918838075038908158775091603485604304890641007936978081789561267465391654207118084787554441586247293847780716381630094905761733304110911765920395942451098516494237880213326158328706858387274386786626870530175002056371352149737150177142890082303562345823820680034591758850687592955374966513602924861510194647619784919160408795291771681374559437092047279985731950678242202329867318986842239576874053520269127025231643213474827961639684900263539006009975568265558594958508673236390414717169648162810808374408759980417239861315562006928023349652970204452838606644382709544024784801883545986179161507340072854327486727387526899418185039820967603617828817950790283823686528381834971714828593666339615887759512713103366755093701354591254897082125235667922072096386319035892490463470921486063795489068914966096154842987443262819952558893195017372530107482496034293848834133660691590885707947644323270001580777450710377826363984474253495012401122009921623657515417462064965289297507486189680758683471987893342767398758116334866976219094180836010152432038557801281383822608580315534438168004276301972960892100515239645215326327846801137996332412890682099325432321230274953520949447416949015992215993481596037952575807740344592238035817457114277970932115487074044285063705035153459609117363234262583822055112648645151938598570505289697029047084339431910395768986307878527812414402754806217420988155598572357429197509772763418093712769922034326635928120593505110628545948452369021475111564582715707534346146972004447161209978210682571253278656327770367584047890623423066499975740878228064243027707985652262967198261186236568045162814137001436546845313827035601794509490693230308111267178400607765971113605579770964067168638527214925959929564788024869802200557984718347830006381750504420145419211436947566847119586655844976152701297633494677831815519408959670288554522854244608615158424932130406545277473899287736551005636504730730188385937016717453231594593259924965548099009136420142957934766996472631508378300157744343954599230914305053842721368064611887341557741947923264171106838134842282953865069739667928641085031246258241669498829970651910246450504816951090363366940028827894713472595699036288219061351737832657813743518185560917939717198341718029306939517444554005737989024774199363031162329542258116529968765860516907147572592602461800355758829035110960117703934357593293395686554105241131269924965708278692981381492220696986643724868514489456228939437023944356922654405510016305605601115960599544784705564076703747757073793854346310371559248231671443033623420727866549090060401086508051156389298548022392419429411156933962521353129582987086007906675945160875069533002145760871272800066608679882012286073202507264636178414773390588210772336843725398817796773571379071691155839603838510066075357741482163092847678145853813570343284335624516076577970388356452514779808081170258066173853564261563301905525875498923678675721926652150372021477439648201521813770860762557359255798717245748267636712175164957624827493821680297757004816718594536919459295989654636247188074699049688113778305823948336158293603231642577195725656227213634305737065288195226910069177774310290170633660172136157731028384951556069934834208896319545305957682252323429938135957137452755729763410918081116065022208185732815615409795289969784184880405883874287838577929558558967305966740512142586382078020292582770238186308659825058366317271418744241987826560956051645840531748575883996679047546476144843676454048796444941297630849496826002778282422193023968050502478866814085198469367842481586419024765011632225025130472846712483964622000300164319985507056762471650203158009946422032565330332402318132238623479207844555126671345910534826380063047207257676299283873986203352236262437884194532038468567221587702516270350351220742590825511066396184653195458299295898572410886115767660012173596761784519101889221950458153515682679302299091233402373698130949431157661052832232885740681067017516789334976447527816360783216589762252092306125697142945885754032342526138960272369648516997363941198389397963580377717680532217486300099651329006115807015736629405498678623803588849830804389193033021225102787131803347140154678125512453119915718553023769975810576890444679298442679398866018394925460123098787906143515045672818102094360565310053402328387116742264826117892182364319890772545786795891428282746558787910469885367673828491579193678202495760276426980109374805428839610106407831378240255600817947590507669558382736993489561257255236222510707202646854063799946942896430216015615281115696909650808611448259075631709316823403714014788718492840756113853247474231328621359264093178913397709311809603303090980048149442530896782790994031753658268289922819687009026193722167279709528792631117632693323336412732492538104975462454819173180674978987193545412895035112449461533795094344021663360458572951339688707895558303138086492630284407722340464582292026803172621583022947747824601103487382691118510135777848211384938471017382635582535002472435089597457851231825891060559101615090844388124458583404136544684063707974789396357223242856952681339702753710085535834239907760949853975910587520081139357173566855002823894136465028508149892630570383505013655821269832268220614668540459692265512826349515019313944882307363218666564237441410191617684886123010063275306280602006275049257777834699164657274641374876162139051432715958567284820773058195889822418010515235506074206341842819142564831879621398579343686729648123501969237224090976090805528523028330513839466955968950145542840420400844539795466652755445754981884619568856456975127622973463126572177154755252507235436342360957584457067425116299809820256185800674036572820159691700774050500236338733226528121548187519057248020326326817943912002133314963639671011834781718514732941574061817711634753333103895186027314403522634898168283054054003598736759872659768185801594946750125777773433043962171346580307235308787028923121627727700831541417886800736088391256607973619092514538278172724481973144461879113008669401587281216331325187216489294950873071689538566177480844072115970753241568818611367287390261912145743738407827096998747332005740570089815643227580776689908833894951302932622196149277755781227159749798262771033818825591425219464669782337821325079104969394981277953287818282755140857180423216980148151211237138653609916183064688970334261678678108480372874375173082649777901582752066325768549953704487182794774045904744791392921955152300058086443799417299364532967597418547222035677969768837713814409849997905938193308492479422912190854304359562023556161925380277012944988954691092514746302821676778312480869261983863139910056965297200005851626408237687223077134706954825376798333798698941278894877427992246053522130931841458441813327679040982265206350450169203816911347963254941500813586975327632163199586506734542612275769223412110464894984095146188296704417283018968767175872890059280905128577870723176400124908850315892346382965700678399220454824524758705414774718206392763294324865525830576166727760878726797021484862938176103680814489055782028508065300267910512029233328838604835731527442660119645893752949421125996880342210586025622966133479977985813427988133820278699593316180211650207898123664863661120765052176213032901849971762231298300656622997361023051719376592746053445475433444333225249100761071226313666907044277979121031255108705407346593394793006167037186049433984066369883553882589595876434984514770987572798341915133790356827954329294689870852196076503737775785504241770789197887597364744445103542288120252769201811104400799264572402419032310581697233318941545286140153393818444495305504810118137613939135543589465297484971851812512905754561466898288588209526181195379449582141655857862593462160014141802090638786429086150760675734011392438512492609659547798680857316302665697676827171005786260443419674576838611900070459315672185340933552032300512278674585183751816000793222810042012422547987120735084417732854140841520039305531964090032487467973970277324370558538569459168099058619417803646025294837936198005292033745833114920682492291527895155919441400436449214912547391649291303884353306200476830806139780265178912747233997066138096280251552163773350616888956459510957405534631143931102252131691048751687431804936935839127100352271921553959602081410960663614090450511716412998627454468763655516325443435512674904110003492066278516303076350740081867276138400652885694080312882370179471833738153442988599655707316449410010295680492223668836786805822383059207891290028930409578271715446185567942511569573576194928108913677199412250826522932599866756663665633215631685233088445956030051420840109807862487609763974024505947634152981668414855284326671511200686321789864161822441099521508649114041806847541944982387043404703606295168733296521049655186516102994525399023703098797898565040239500539690115295562107405357440225886096624863113410071999505166885683120740958204903435576824238776964445869985569347742022688269464065523912372580646685637040693016093200159801178934941302676432474218347927743885869056914290391153405527715386825444733474934286689876347614071259589783454727956653024431950781062220112540983851672803136231667132274266780314679289131800596783711156269612714419489517106134294916668595991865778511360991002874753864290720404804097300002246622935197695937610887032198945820606645682409044812428477455551204950528068478858719038461571238144706973019648657336591321675263879245636878406502511949920170538949668240119134196517226948881743634310422243070626032416585900799284512950899372063443806048555973258367812118745903816517683405040183854973013838991126443225331654105914971967189323146525776600534181682994931113166013094089956999696511955390096995299678440279157261647776461506075072486588454854261852644659191461004431900957359840603181442328094660133255597838649385796453745306365856508374055486760168460790556514730762576185526918323653274782249679411638513955087386893001982572683336086956306343093798682333652613281357838914658838363434016481824225132010121874468507281918452961088147962456234435907784515269864438931748939246908841248798196975188267282065414061298072509840032898609669283219260953542799473542274791278622757986975755483303542335602014741041409968423056395609599927652336220393967159135648125629832070784979229434661134770123939827452245118610892650018493565360120149616112107131713739646410966383022541772371407500416913727579474503481202925819590965012778837587367318373417674203149724812722387695959112989045897028864049276594474820617628707466972326021110519124896380326446131302108222199603350618620087989065944939186316509154246183566541915560560191311124144649816678695519537929242932955193963024343696392536005662273761979329951881782741485300136665474195894995664598554784119980871354768810469650673086170163458290699958822278000809616140304472167714271416365883568798623749153594861303376549832881940009649485660330708050252124260439628154234439057217713137966390399127605829646139514709687080788525059862063822087575838043405992290760311239962602234721437519603005042237121193382085269454984334594919063661392953409736416314680681742567079314731414265733830851854329258703103051218507908923970147898794792162489102148455847830591896787910142549413574006305833939457787877551201492701172971727402917450085068985876932239734947525515613939033766421401919399201730699174500137487956507090806754483300799783255987295779837871492301174227505110154265745534782437637172140527424457133818765056904198221135862295041394788016894790570268762758953621446123027433147523396343385837645248115060387705988486864540302392508206904315110557887812602048463798022729412839224615452040027528926667813960678308840205601767744692191907969985379399148881691182353795547264007418011267899242233671707049926440855263417476465371534136703650865384556863716738769828301171323717143051610732039429127307001178523589193153495162009112163690407999440437232850442756484997486827519964965253428837874278017757690161172559703921196384649094941897114103439822305597342078995701756680191011257326680464497453157361186961731303344347424919460394119258574577408902621424288585306539392132796817824673770017107534235413748976894532633907246940546782996368820940205976432268808213607656618406093954946472120895318198981515319743073197986478432642102525015614355233700405678357647375567433082745378877837563007214664446220959507967163733980579099931967829799455851300210289836083460721018937768501325636971720233233043418748264254064545735900170950743761669909301788843869298871386168860615857446147815328442221563486801174516686368533716531371351701973588229846185099087173937611753623532604682390462308471257761172572339034731255487550798359425037966022839478574067883334351512965721803744389428419656771603076181834436636940515632993099870838579180875925433568094733969334143181360811512752486431833922650615894443135168896309137246645850043715908807067915980046317167051625509356616902577674591248598320389505475509216523807555095502915902267738231107884894950359231053441628535709374289980042427141907861691804580917203840012104823020016537659053493813277812727420653920948430067495303613809218259119863121297745543777639932566041644098138282206172137571880752573467314774617838764649679768396171134341104106860859182273951444013398337054357448687993901044578818820892465399525485639645880470001186165989677601617633655542180437664894973453282997126383587182246447046489687827400535382644544006719897123730751064280780582122160621917074844551341299522400734641558762400698834306388012012866424014152700547051765940092194967859022704213465343294116389936813796278743025880817778887428123741159462383462239026813283348451557359760850732263793309974644303451106424915929127857253700849700095333265424652372335880723708369291861431579823654131402783465588260981694470775686767392904159013129332523291768800336937151217649244695516679283478540548285122142036757363088361196277730761383917463016583592036537518442111634573717738730599648114273624555304675137130842265258056973654428125825894260410227584834000781947276532719991497310671675508891211164089256061341298456328625697802235762611120606503105092580300736334649119635934668155687782540189165411354988609965970829180842194164646434199314237467338175597551358331717056019594892741452573207280763727039656298952829142144433641187432509586147470075807825768987705380449420176372294622483214108614511680369326424385553919396926068667541853617520767504168246712824388871584899410036514765793898247705070732972439352695658437301618946554293503691947852466781256757746917758359376959299871029252182084362992674715920890200941277596340552975539201989260345391192771540358794681873315640913246652268421442034443452151278691913582241285836565690220796711411913596968885458769454082377737692408417887244712079846993292042318828485819863677805270132837574971802197944860708890944710772467226701717971104162795974577359035704236886009136975341350106109006967840195130996979721899851951961767417152424212167921249583399030054985187379321230559149868094722516762988185186390056664615852140788038801806153755044175827547927946093532972691966326894300209759000108362843182790557749671046256957681872845086026907369831170168327111100336273619566131961580726410528815391034683220607956764073396044819511458878854913468694204254992644709580047925036683711709216538286429763953562438716835900038655168375875941898966118383710962014690939462084325740906947637181985701208147712371062748814398211945746886271361731124863158814611195053411814743282891629469889142925197476119082286234555702292979775379764179629187792199265412531265010909561752276583340857192370714476639295445327145906178325004460385280153580282833689308100655751296447523321832539512843138995312607999779087193031630300443111265790567485635767944652332094266028112561944880363363151197805770537051721143623075123826136264732252947830145118251021172982376206088398519069316166291285727259891106865648796605947526464091323802468944056685751724147483813038244537444032090912263986883381695266917930889758840097769839529963614266617602914977720641795155282300431185349943155514559833765985815591828961736280523952337319532547588950773701068771998334245315778731240119586249281679761972285519403944900286830601725080698380343891934673243537241359773117905976249137792389610814012535848910018195399353420195070360603675910332769414177979385681465486034303332360433430313813352027358404369646699499787862559599378310195390159254001722412591939643162823075127622546045612348583168876620927052011300199769117029244448693442332780346419119999498076790411477421398166444829200863779796765351478891307933627568891955643144205152285638193963894273733714122143148236161653739026910508291590455767377912228090422386366729539076057778495046229138195865392364324226950473812390238686945621698776616122617811475519378341648372750456068908701666899673840456587617556143449816986959950166813560492507967923448221334674032438580298810749987999120125413806943728240124650789767863205317331553246228178831844816387742582689213517644374985172384744267706594794349893409207649659834024018684212816408611221306141249347929465881888997851557749798007372777242288402106743945446578108172354651431863085358407954420866814467158468127377919568939612349451429077935044137558364901795552705018195061529993299046537670291952162519117110253897625375046007956654030822371525966406582470419376452583005939656241996779290664087448794098781510048590546587709749346222896098925627840487634504065583448275449869014882872529981534853391768473816509230105764885225859088409084566499888068106103018384105907884494952567963146550576880220614932251721053763565392415827351580972835421310377462198575246910203142371789646298559267980445819029053349719001513769160217874821452758604802989470495869881575299069203419566135748037793677770690747811437719029083094541292168497566732631939639188747200210070683620252673782862035940081236604781217730561692215324992256082728836562777766063544574996565462903973467141702974570613455524321521184025853545435931483114277338573495274229546340935911199131299764716381308189815762997385004278892936872382558840947849411278829051231346522855449829052286733137916594605546823730726733897378872847723023570239868591248201914514988554216461386545644700191768307003471861426291479219431782956813873397314227024014420148384473953443510228016248931830708066719005137896978884674643680401088932893151624856114049984012909539272006001762949967752166892140901255644943067844832236049161026369786045434428792771122087798718367356219250503568686159691780228803320727412413858619978087173648693799438382461598211784659189971777534915524295962823478133316240968143689685701502672453541032788453457671673937196308755659369612084159139251903342366938316661940760433988534186677605356259438362007149337453195691662240613865821198566932520775725947036413207175811370800930868064852178661744915477157418318297018422012081798062960441685426560236582769735827113718098996108201863806074482928207915275673788661976695895030980118943763453025192105321692513821873023008252715350174194410665068256932284991857148307716357466978479601493771077220171331706112696247552242859440449450846024358267637117964217170516465736254001501333559749494295950436774947720124336224502396238606229067809357359320673301123957838875972202516263556965003259309400316462052759568370131165637707196638744641192985863147386386611857282225753950683937549616734033270684688835868192447410379552460582402028377451286515713556218281539831437683443783810986038733226652675406123387831106640513670418805467572825699458715859135402132685257179654221602082925974054881285681591018527075688123374337382145150578206005192061505849629354590287275741615310380574379742468200025231269625358305807030109166929073856988787973836471663879193266862796699833045390966902564138476987555232458295409740791774499327530308375864122158467505654197743763896330349093788157265308945501886551214742580018198996723760141386187368725527489777217077662265207186285859311999022114174645226909497981351231217364691666012180708312330412160500353852156509359580512266480447742526672484469421107284262790727865109742613891518552955027913581420089833463887506413676245320801660384863250040771146172106475069861746436988089762348176048620103912950601584396212633553593011874213037902305740839077689064566023492942701873873080346854890518429873559847541739602725479434871061177238424076439049997616933171549427543823070745333467223597914323098206600460643369055297615006621333457725138906503475072105178658059658856942375345507259849400481786106723726296823822927487530092212596005706103657125862375782456432416108733110077999969115037711524377148844198693905988242566367662621379588721178941073790609939414778144692273794591073635587209508901106620224782211755929740158357909605251375457638049436831002482848027395696813725130649547097626825664053854882335150942333859163294255798340421424578548707540165747877508111156262044082528141485561106791567331448966896850933963677412951373555996257468276685730484256828246700050005888412038400820964730549686599337962997838107560622669947783555726752503598706049231402627545534101707068059303614755494647626604548895260126852805107570920674094696333750445974482826484516472072629696535333268427139834615895405437707767584356560188065590098698784502635825253912613481023906344327027740722193015103803489705579569776875200585897631375501706560668917149486620321167260820367659218321850082869251472443064925311179016018440810727672011961758194484471981959720134341702035162087144165108345422110059904321407724745704013266168698713110336200350523167430305874978995004290051843982767629368790145260357730334671820348918067286982051975316092319675253346886708884115829919818800435423329248207786288965997341444706413967377441852016954977914073255668702065342008193907226632137786645482074875497466675500548799802423814492350170801203215748642190898366663262647498800712945266648627465135440537669821546249826522641848837991552478968206377045361226300288176655822619295195168774277471123836679668626164797467040776596223341321733973884319402321645872635142331593084385073703645951817212824338038511692692298857191333489112392609403549087397728447127297533003224453325462798790567437491559385242138024397800655972840102811079814028291024249815684233097423834528274853321000839025852431815755611028205982609854412055051284088476939727333872157977678291832718280843803762206944237187892149277750805300498986872389417338888446010606973109338318051397247747242978586348873129270847239152396444713528098857826048024145372812576091207309210196159716124885316623295304387367967247858309726695721642985067842917972919799021029160799051314510365402394344886691094235656538756676773900684675945691766617748239720986574951936252627578521321598809708030134309380014971728124396061451436501171415816508531058436946755921528574549815155685867029929196211203822364351034239216925307898045876206345948480503200862041245541672541993794067634322153534326321954186593412861757865762005606291497579246935907964456992568327007117616856922314279002552613218964688157258448721773671159563137475581450712721672755664729045764255792317332574407444129188631019316551860645999368732601288852309200573591744577443748108663775073289113081637522151446354963821540558753457572933453133608884697311015632185635358148391508269264609802825639121281395586435343528533521701610824645149714742161507193615580028448580420037834313600887342486274842870653373648873814298362342230902380068404294878552689085722710534461220326776884556603008982850386786766736096004587530465731678650424999731563130095157110246951239656670300484666586649266129681174786150336284559502172541744929025371880201944432117349064992176572211617767919673510641385255956979490109251829934336646086062174077387542017954756049493261015707169957029537376634966343247502386866063068764298496195530207533684038583401893041190257594603051017681245783549870772081237698236792281183045131312908804274851858606422846238961529060857414800403785889265452750915729594058138759943010175763594018383536051366275391511693927420648238994637945910740778254567357691320696493311057250778721676027046016135392995331149753373386006842279069242020314450277529878429751610043214969097445787541856527077271641380968437951434886247722255418637418768924537153392370010067444709494009907261554577107208103101070037118210420209956125536884396991194121283447921053276566899093351033277487401830682148229504551842474702597431090878301353666530105891306335342854186043889602937707642905352864664672291286183962882277526333460799656753338617879838727779417752165858142636484880606520588767314053883794075665515164429527442039638796875398977940824392276267073291448816549876378726244255450688895563581753234587026902633341479890801455652719327498701082392711251819189498206866250829848655216790443260164684927936553725117389740921370751493545031639565057071610872709977984008001792860192862418914547822556537498050846545643164487782371467263488828434408275605740002002001058417790284894422672958945984393109717705257017825374062110710326861540914705051660804373014653692182994263919937507483375200827186327798340410426636449006833781042930690931672381515811401054626447002605948943122971436006014386687754015148734301114056256838357741023973764361830935941975201738859438341009525015573866711673857767514698484482279661609823321730760642181092484048585095961733121970419708540739109682224927673230018285131468347712598420654804051790298254864896451759339650950818309880674807513649299222742059082621213410960092761084598985310683226577633122259549757292907893114727429722627265315892671907823306468241903780740482735981175970143951456632284027824275792677446221120009995026411555267391691251187292718045161342745921503526132976500326575764598192175721564396866574943399189117411468097403493244755813571378767466523151632940725269938233033912615952152391989355231590206907119988541728266415368596549873181722764891445632748615088440429375401683128182431943433874401848067391044412056924473588950449807923404761371283802203171367537818104592795853816752922297052049746997849635556909300426444430710126894895792662869232922479046984472756946511958832872894894286227568496069312624571998219694795109935053432230537117290925153444647224522153684792810943716416672551682453832570785657735723583097378494233974845086673849944378421247767331471316598138416508607063998282641570498974483352414664492302427340575005306620658014740405141560859467605349395804236239765271791502684558128185784591158594039336162875796725773205294756319859389169166924888516316735547458335018631752346566414469488350406257229301057009701917633284298839220797071784778591717907271566670467192755367310551687899382284802988441094113485153908443095477453018435972367359014613858770454225333611186803513517112729240226910186402039936562390716168015705549256348888220897431290576893886201313878843701405246967883724399270377335381072319025801711186077501196320147067525392446627709658645267830408683408843348732716632972321520803626454904377414959831164605341856441508403140946329991711197894852079311553481808366001222951494803123567668476431546843414621411366021861381891824548815906137637991013019253792263327402995667900019039215074258124396936640763406235206326723424803135106807576904824719474251884148974841033217804079714891173522727629638680504992007238665592307853906605714684167659825383149454456575053824373128435931985380009602786621483282763844524664361360539769468027843340766138706609125051369290848914090707176736656298596827559183242702549148127213415701291833151658675353859031001175802280347668298564310677571411011481125382028317482667064192276562624502024848005675707492363219250090736544997626660690614587704668816366969374246429715976685738180267518870863971873933375985190009393819381738192185124464198360254945015631592480967947483115094808445822307946697402209092722185184790831699905981380825521956011417434219523703024346325373190129387085766311417487406605235221264915355748412177249537132120783715794099440619827461257182150775073250845803623742078615037169669186308780972649098526914632358163509837922729713570027704918596686644080717396054679264406164160716512696960293891059396588719737151288537970053257603141633286548989799828041026761285820363044676887236175608890117345734313583212424773351447994292556359845820587669339099259399551934004761018332666050581604192671099344666016925649096858429343787204964065644863437079965092489005364738014069591685402737887021425017677325913056839856127325600215556772258976521757933529718714072144871403653689559111119065187474735754426181241035000593048277941134567531442837858251125108064636843939098885172006983812381432500764327248939281731558311628153837220474596663677900264804338661543444742572414094107775703816342647758358919558630277774550147918545171637477315777411112673047502926868071605364698741547001799663427259139246121541244035064705202909677487061523982636039378432274625452090498903132256860604626534258202774222491509506411388540183339100617638988924808280433318572398439757657514716773892657229167731288823412606752789687323355680546827021197294610725447731475603272613882451492635203566805602891510831172211819101280407129613616668778941691023120317460039088861177403037967415211340548330151216295275550231595245953479308806099629350944734378033893169878803119456722208994360810229146481946091168915082818826237409078497317761881887792120055304677599081142660332758009881168927343048891407227670500200203345908419089608591559388999068468090194991997970562646217246287575551973933143277885413648495520747040234611228159340683622023334765567941956376917713485555582881972851603303851314244951275716434957945996726968636548983075562900531101941383568259976558179138051216676269111423990604242594567424256117646690099779334042309586881111577506756885847974335319797332279210393466712723645804213903105029888530951853889084575450357055918545756014901684254290028280204976103366522160178871723247953543050423649919679734308956951938709926416859567495259564070627579595041756437436258757233881932290525781743548392143808451639634809076794841538338201565481443351855449121372202151146939231805512817510859220832390679877228215243568478213239091957721127284770891871480448808135779017108076214557171887617504590293755805957749932927986378060232368442419437839814481160971520320159294969668977411426131119409339222591176631023031670875263148319825104644767038453515173850062688174173372958419518315838526776135935846448823203589119127579296009945337734862587096454734872576579744446864698476360624072220163187758898334131929769621564328691925137601105562132545679244454343139218878963933074622010183529792541098633834397955883598591588849530242032187108324890716338047566986452542161916363005392388541700753717755086941660937115656065049547585941552763417092196854488156214278468302934737755516110992099507057528277239657445821952281659921483779698598420453141943975360552460850890978188150046843868230401311323620593170103286367981062041142867019412693439105371476087334558876091977858432517271028372498321423222291010763095070002672433486029377127586353305585208976785975439649504122094743164583578393628563699526787797306457199940194790169500948384422857786751093954752807175055176622792056282926075894990503105859323882076526136252128808010996998698708823227635952153902408242590948238239147983757819542729374437607533929541669989418068334619254536082462290476552522146694381709417471307693249315123541488567697004499801973725464301685728814217888386575420153360397244050203127748506848054313529082620308073318428533620286200664594476445279087744731365742863272434313025980667574471004913061097029003566908244791949187099671509587548922501090471369513335693526650304753920646369070414339734938779368812878069157738522802043819273274519566809737557340537894646665112750139977680932698538239229525949442987732332358378451009604194232206189039688385414489194730397248680343871194642332985089766042736049449148229562025740170191986748567517484168654099621988205832649070250985963611155459364090003483890978052169289135986542926097950157900086325437547212749628735018117327815423707196084568079249131650096258520523063687839942929172550272467504928670638508314141127204657875532856188231034971980869691984007912683388398665429211626869578097075887023911173050207059850320594101278630935985411714835528193384005703887583954703552243478603614170187818935179276424092548584427553373818705002995194956973860284368883646444061937653744783907290898993868387647531079557982047656406359308753465162335175487094665612541311922051997966644135213189058296091754679903039427677626701232603169000317257932297296212288031196167934292750020541552912579351103238413423117869427026765023308506969271816676390850842839064534374960697001559397491364934360753507069312746320221414524444658343573432642686822002918532418732660248140327824304617676250852285167537580649595811171729057784390647413942653146347463064420820019780378604327148412624857149586883725339466335455712805044716296305904220705317538704909970340030565204912253377408419390541376237746018935927586708293041325998999577326922968357048200514458536791922563908820522958538838269789337927623992491667745270468765179884450120141196711701723107631211060549631043560761901103312907128136787756811349337622804733129494626034536920528411587844248053344711755530715334298716708029790937492166174679252867640981251270087533664461870859902135417413435328089278707479518237876160444947669372276762927421222536303494390682876700917896912594641490698184210096930584127468037396144483942455205977966348749829960973967615759061616038013136999189069943213636066773998589114059180425213644155533829533137205140198191718328127343628499214968956394234834553022097915193461404603698335802755980052141472993853202833684575411716744391767250501311381014471843716595197666249497426592794127553732158089974370011244207234560385301937001705997142650443629993723271165897388399795843751939591094397381207725289131431713423095202213816356498947050645170077571899202902227236737082077473400750924990049936998436268214324156135054197861599406502816497737110681593291666339912218879011615621848396266661878471270197453986007303778882427424531035086142824835836116308544297634122805427745420632740761933716561327655285667687807261721620913728862526797606287739816326726545464869527815301554698578672729481579938313063108429162230454244072797358548888875137404624152223508675400056267444579554345013372530360530257346365368430379498915551982015552558918170117201153016020478516708987480010391102664115167042742453142240317877232232771186125213194164353241531741222691676701011325856204947277775322865852857326432654401334807046233282075322624995558081988049587506341245103679372803405436008847878960759191749403821263218927061642020774865832632771902726727208947421731477439504569585602117738938818528293278870580917122761737330781338239902711648881569633521365185564348231894318719705904843961448102191236489786041291837324219470364621843371180038965280454754294241441430069742480772929856231067522456582692263393247421363262698919321349696465324635224326387891634249026336539342614100170298610162073149085025793834309583520127302774204302316833535587913358946566796112603324690225622450181732525746798709444389027338668605932412794511924012746875029663103300264570937295460650483864103383439757914060527550790442938520748652419100987696517096321488092519774273704556389317007787629171953450338034776091999348415660984130990549103246696034169439444004000720292285285587426741462589825121522787482648308436907260749475867936764029877743402784661519299509758605873181568540813607176121379231219123726561871481890035929798945208706858015946320440658369034958431121698428784453800088450311260997895534686873935204173310552398385682892726888937248744256200749845040410197062180322106934979824290241195006836131380188585200192470787861933519469827890283260810867619828995396915848856936587129644660371267253371082439520421531612276730540696373788876039106519510715325058153833359953449551177652035867283351047367750467857956093486107542995996826050163623607690481952054558194549135632749038269243639047845608755952736592738001172848133714261591080195715131507388459492723591834023487714280013728629790731135520180491570352451364482625825097671293608724710178901249681966717233332584770439403518778904553562120396516118356441869252168647164915703503710198785941720223099260615654789205291182613835666182995231343649267043300749826925643833016734094542573005854252427428816026321917519136818780580327887035665114277795060519415328971288634747470145751144822977707645395792634347250799278221294336413296627551059510085546312739529259559413276222489961364045813817864166875450139808640032101223918325242483491232264619764121676139712373407804029136043047341420366114540858244170461012497721610489057769044326039439796223118041596278181861639422052631415241042584806598157791155286803902534687724464958158422036253504754388574720592116636226670064627412799344108386978290678871564393689416908085603881588771087372651611114324012635405898722526316826431280090410088855623710658372082626146422682704053950788396792408551198506741415152768908491662634729843725208054342826748404090093688757652263353413884120929944035905532471468033010803064663572288634433541059945667249021470457642588088498275614246828343900601535655276873018915489708399318269032663210911090886809834175254153353955000927129423025557650323035961945109257010684986669950860206627968222010870724772762845241602925061654745452201599953147779796558920744680907596468450497107583349178590721553123948149810927760693733851415478916880699591291432452582770629427422218955116507505872185206286531963593051484827316213602324014147846842289452201387195731632836005352265912394660302720270366735610565788867418976461150764673693561608930921821866156622933241301934825113585880944252732691929877090377130639384860354415854741382332404021190195276079632542584324237684216105626441204741678127510069527346150041325549354983022742792101691283754244830289814882760510286670665112565370430434812763041383990008733279821140626534260754488124292978845806247456689934754232408728224753116887100576252819738184458205560677002483034674080946077419473398209790074663024928358648489203141332029762849348581652904363245085284238197432844416584039979953447368310972615918250046303481406340256688867002378578759993130415500460196560300936632546943836609096599373853841062057901685266985126446233917555519858095648156157497218670874426180318318474569917788706258636105533251746756543288902749854446384937043798955715813042239885484449450540506682028375588242956429639258608790155031456903546863349986574305960207934288739232777423098172040547220534209770737626514982864299804432926728967427284751231327046195392103789733532918116231487285525040290747645362718949396963828160004902487319694463354946456467456893811685331919871449004455132268818837315026717402284908414402182744960128562545938659512036713159381889875745323492335012567822457643540230119588900338977742268630822652014519109644983665214152389917690998866278247744764394083999721418472581180608928813210369052830920406481172033290229133438935687378823808437862359988695612720665800640048616584271752275445151691531114144393652579289132052431249835537092006568487374074786494609347578703205910943831163225484461426195066206264027327026656502037474766902488477894786220268739264001749154612365922268715251237416867887021037567030987776096717230157617218173362701506553425743813798577623284361969497960662350245396726694580373247284154359147896975985198407499886754104354176241248730547399280810181072500300678766400752121416574294898585854734656833985083745892230813380008946165099632382575775686377514499774893057774752038337182795299666297773276104760621917640554395722817500253472846721072752273579592376223637961170824766967761587606015094947851674433724274154825350543107897426384899929403588427837360550575349802199649274160300548774280664152871546848408921817383774566223548590813550599955815590518329417390082950912719511658402096631016951780196864409700996382342721019120947878991082083927599401157636377718121720473442139227934447667259096526385537087319737116510036345902031307631559397665305568912052394975315990646960223949104797672832331390988715422023115669612350266671844028513239675629947852744497528350237396257232500086449367675674274767762282324794931900696538799402562796706814172793127916765814586031520387072403126882457674810182235834594194560526662755393735826154639873607228776487414426584392059275307547538312507834261947280050341480277277346402158680389669368203413806272152953268805805921045772570284299891313098111335879715144046105520115711546684167857688398950245475816413044111668687066946394502383015356661968186945894845755087115294130316101911959237247790727252447849433780095474579061991769854170513478494711673717591550122038591681465458867938379024779792935287564446625341658933396110948055159067591450168601363575817493087734218725837483546533831053459784578455739958615580048408728304992925497795881737281361884822204684746439713693965216275186417795627081562463971909159549965841851986011192241936359346590616433547054788946096322045525847201379271172184177401807497113481778571694234826816988298949903295982150535334607317248100463386957985244722457090988475110220670703634454463585250727655494509716966013401221174539927976941171935215470815947318631146939175919062139822142761927621781397476203991809631753443711962935755058090986760898615980744909327820216953338022630851768656693741500494648569942961993613678525412724342646975451948571208480368628077774151434608019766935623895428789026661979533249556309045689852633728394253393409204883168792289037847651376280135165438238633857099813362505031423515959029498696253168779586130373654653501758561657490507573930358199685447308448599505465845936761147315948232863468835620329341920472139553932444560845381771103301552219324344559468848056237353563356001869108065681001561196145911594850288018642826715004606064038743773122474212227283534913609950114876354760920288631934800592433967319011189990913225769897535533382680102657334057088700583399641651257892571578662935515370107340258869435884238606847362994759813898322228301885168431238864946267959772111315220700554758559947289037659595638376432929388239005863959419140686247709473883814057263117458550516573678371518473969486278005233818813449350677308155911235280174277164170331140992932613897294727443777331800491808515826267968177422799409377637197381926512425232195510937083457801227677310580574868873629862188066350742242213088695025081798262072665568512738032177742340223921279717396811060400527454729377423588962955047479547882107657395342980310783099112610352959204497884675228814950542533826452191352571294858743480572335087323617312898750963277795041704582808895404116562051707739027997215992318873252103152665510494381240314419378708991602996112134415204354100118537439774010728867297747250068692448610546294077445583874317090858709628494499889860982023157526623936443625731141411306445860071111562805531693046554573558093925652237863000777736293720365894453537250940946714998103404406635316809922583470574114431134675270473347186888582683350970363586139376233290730599274430329618576745387890118942172882822826342170359241738607260785162227943063428928087818314914482571653924331710541389822698321523211352179913602436154039035861567428310416688358385074770133077502039509448278930563864567225023233706876117696136250563392901497235271445528271439741238539201855472088156345435119625052840432869222965836761533361026063199943345552661158486503762853922727264986939924413440435859849106934805094736442055127511446884219907568501613392857632334607273382278262443477938235577397547432366106972868452133413313911606163285837227292643707124295704914179577065070967706195959055480759983068492235427748277176644906308365833903365975841781959281025723053334000386000513898027783214986647266836836592075136980488347903964386161412002822732275145223607396640139986577929045641130438282822744799883411725427799811047447552335923315040114997457947431637215259094109933358840045851330877379470080195214585957813051138946936822834410878358974486157573710106225135780538129861640117974709973365565856661103332460508234369777251265685487783658546666996078558313545248486766596621356463444066788335800516541090174305724351459496430830195318322616438965147771861133941908582851999745645391927123289753860543778445075286572132952764539679695496712449103009327348505862686957910864537760727598880486465795976705823451803954006309774408169813354809750117084243725244968316247742371407071244294644038907623273762244856780282420737245305811968101100095637018406116894487719741175457018828314677538277922303719944029728560437415046841312209830937525686628455230867550152550788613110293183704976296994301882956857246336588868307800130336343021978232389815264654032692724636169852211814786691473376483704789131843093278793816902919111856063933174616819320786501971199723401012842272196705061217620359951011011524227366675876741297118289794777080459776698254058778658808363450379802676134831002556770738139726451192812055375225972340321872478778029371440469710991661507090900488028996542248116259250777133882844543452604221671968762487396332760570331278567460314347438981811312324275735669301976509020901931914288259268160089677471628597109933525074693092056721347027085399676536762371437047575154936780381231700585066834251133299526424511838918396763186925851492436593086270463343480471346706858421806011833186096985289538349112770589339486541143142246776100215154262534185464676360648304756438335274820259058204202683322001531450699098396982718911612225522806279102817680772614887179627634118763277124345302626973246803739860770503479601502692048400532647625569929233466656984553628200994455965641682500281108214396943037227561909870797391086240676057921760931730529786229252118326198519810522610546213567130763656400995989816796544753633795292532438495812112673867506648353715607977294225382569709974718695147775189426463356997677793362928001073532699159040456281671316710412149320342597953685696120070453864998075634792450161686971488125725869758752711379178344416407157897924554103301384902425174881896392134472964962104877310047364490347891514860663295383572865658733060095735507175758227928755023600808149219934756938053528354870300063172417046658616015818414366637054873351625256837392404628307473330119387168126290462037440939001958349268828434130765442358195961785089505286311103093547490732186053001307894160431970331378673176005746874787708966485629190838427334898054975696093931914736879705968810302663760830642378087393671382749518670138784094905797225201011046119667361392457088273673151129678869452680679882687923715090003463853162232151987444585997207561540212018357231967290845797821981685270557322328842447909713580867975280895878205085449798335789896736464583128723476614282179878676090398713050958740973878862303875524646979572883825727652542772037304276397496020971944017556641743941904917825465648336929026800426563311455977278576125553104944750528008884331286521102768164730676508352025428758392732982455381125668721236520159594855101280649238643263551222782237481056183870243203143664469005851517118509273032016686729046148769745774206435229250984507557435422924882035143537305809707979845791334760387279003830028819336722226525820551842353370541615185890103469728807983802493363712602808665951583085786753373161766016290681230152218727410682658261897575701838847004746807321910391684591001658061320476663646811946461213752232416607984724131070673437749340792655407217027626268969262046033720791174722582232257428731321734462229783456662116838877543979003021650766280747129167870628106517286449523555896002133877403071956354468668311081801190090934526344076709151224565921010189618262583876131839550109912065480122275152575834038434706855081047077289700481961159454030694309733872966829060054158017998333309943172000089537937345918943590528990819312134343344618121990314828558024465499360959191071576913980139156076415811402357761621097325137482291654100045655819716577805470108800077700894324087716223003619460021716694018062247240307129731617125207121999169460211527974250373659103254971505141201849324051561108067990224082268717989088747910568745958781408285859285225454346463908811151374200746644086908441744295142262692622521046488959973927990086751485698178813845462888428018625118079294283199411056336352509106925336105601810122246219468326975378184178160062979891974858211888571670645461119017805215851864974000571786086090086135078830549216635797819129590685361090816961896733801427022407274939215679406219178365809597409058762138920099927632942950379342231617526564552348443956620708417471272959018683676126372424180061045114876531617253954770875304321005210165280262479308552314433373438454440162047369367590593946917552695122236651894263268494324031276017380462253556686178532890059887617772390505076893766776219790537204501174612748369847280130897961428962279913500133652614253502025935347756819305857536659807771382054247816064513241106827100451930143201717500294574337846440616076581202821835300765686479623634466385955508807554924354736301443194228183661522002638138172877646955795565389159826576001563991961222646930677260799739898240367902841303263352404119166676845823435680314059806039421507171240991429769641947586578367462840180280473422362065248339018145197204997281966628805011475869949126448474709576220041080496836409722682401051899067885787727808485577171141583445121953107548520206605574175377604606336289484345491320664710113652792457579657441655507593563752831385590008908907473622327037591273730932088019650462837172644537581802741754442519694110113374219429977152814106741317935913441922221383702463996329046385996803254648127073694014901095702386073729426655152426174962047195396841446437280428908729650792761425020872281963739454140809776384387117814095380434727705551288042871907298244481531632099505688558594582412568619852215710495630293183201313664213108730245254153064744333721813030563089811417723237749766922544352352414137232115383848404875333452306002100266803911297624201770211662495396908948557085836732279572697167534026198836839348615876443557605445652114385519249093231406797127050967694722340246654325449244274781157631553132843041850305885463510657716099520636833512415888713586457266770213983205927784984638548169267518018246740613063560425308412939242471278015325367892417014023443447855949259604054688114310777264103031044590086805357568497923159307352151297033433521091459505909835167552962001131400433944530226174834532783934977873573832330028625078844039128879623108747760695389303615737642979652173525497003140011860713103573443391335590969884993215784775941714294265406375249549432466840679102467138333402772836416316340530334792166758700053187219139069449727279582188214088486523371585659820800627019858184921335386130470411747625848449029298029034978154391886809197640708979950074517547444162756150304199469472645204195342662062566098330117926901179822685208660917647227059188564033930679471289056309039552609169399137550223357210621607505631766526496419335262473266233039332621919543400118634026459095437375700155900746714883457812398474250586616575933837596703685681312343787162138158676251860312871729508010912064682046135388783949244675502710031503750280172894476906720838470806313567381465618723434349587658507890858037312946205692479261883275495874468107098094169835804194897487515553235948484666998599597831157164737686645135449793042528304413645835872844358912325808360624530806603716147136094672589868678999493265668431840510022450002006236272878344772483756180635997093029816054919558415574402182724773416309742002614809695924623895935261989370878470756600192577173709281191410382295679333460625720272445618806049274385605664191741132198835295105385292395749604046852546834100934081740640067907907481063129008204066212043956320326041361630883864921701899888322362698148264053809249902116059089513717910661962253568267386105259186702335399872967354043739304988852566443328137126075342284090798670137650494361546431838863532090934763701593493376862678818520242531628089658157064990365646474411125773264126755699918072679174707755972407189833726739779860180214460154988224262668102858240083510527462289866486737293195852183358941570313017196654577019299592395252718737171302059272978016211718518144049733333491051512423426219476322687350477243974017552375085377594828663653861361102266381499999896437042345806150316118780437853042163102439528016370819463196674496154441823502235400727834772000618436308636438986154951009931761212849167865120438481572580247615388137020490884801922615472967801210620226224807804256188758903122868501677901800717098240056658393753317336556450565733164373151455110503233828368335233388593999992720420567452280774935617907933367277290161020253089602681079218803237343307030545464285485718774670066114986032828916034236121021819936786401215061204339569382624143634976870884847523564902310857966672834667399402880874022939048328348092551623906780691148304505957343633347919837356080648451941358478032607057531206447653828627857977248448565283504454330919269085848295597204439091651597505364015126493211676560320107224129753967828496487045960578352232816786874342399203012231495172864939139278518824495262078845653737889757500565749862078387768890345114862473265088436760731126483364401355945369099502686898216148177510428796663688614415115348682830015604945327856372746361900637400760439712894878072841018649973002151136955393725970875922240737002701064547185167930057355962053262477886930705013909360014754732322483881620152832249825620131271963513647296560958850539957850739860986802404412415752076644777034930657021445172952880907455474320366544671580918870029404430170940153618381407887123012299546873726878976424558714961392833238261411530571793035358874783021256122102776919169356055237432278302590211929840770838799917978394610532107114141056694874651501976350016960447992894072328629760714743403870176833932708141489372348875635387284973923837709081261147823285712606593474332348961117909531318165045280606473978920659724780880365616781904580923225590411102499808091446032817016957661175461478628559011150011153607750690158806607793738719031348368144698210491089037242987960357796203246823712314747173903878793409395215229908389044694522632195522521766349792277938669620208153571962263285717599612560070839819720000227157710823551117013845178967778331873536467835300635797502535880066926077373548435976792247812589458447864920820294725925139009903606325356421759432541220903119392519861755673808469787859903473031492317920788237083046530504074689132486331201483536768765082649596983570741170882852538458433060477364702151191463321033418977365164917955625689734878322452431200429780879789031191824547702214495934585949784299682282539476153174118651602419461746153315041783758604915886411956896212545793110458626460682042893807935258624321831218819332403604713490060080970652752554131208372716820257716402243985553358689811699073132209829034530971080393735481505415359976945674712215412587795868569011744547284487929191471738877933362146362376023640210159814869854524127933501311369036153924714086483515769530450078146636046123724923485280084576140673024621325700899760500880005617586068095302162685339338186811480895657546395584932038918750752585314513019422091185106472705923078672643220975634520022972418386756200870296202253300537555262355111769484431683781132675710635438040871879460176142561861790928737529907859913695777158909366870429289714583108498183563561841038154955836924818368995203484212555279755745111943926534285912627996206742670628838608537142914937211171143987418934244953628190467291231823784550460329120554526919712555119120278606949838705427888404271750732771480565981729236161977424589533701423205003083963216572000418906369621945692937261807905642021489118242488643889395552443667045031933112803787454866050970195903784561072101484430674972271262722503819560476941787746751790559656704364477605543985445002666303037201260058328078936883760742402806291589856068343746911224655590389790600941886520955302542729359215562417347728260024497079724530532081884105309163446716726703632996440336354767390728261320938228373194013566441408402860978513954403759670657102204615241540409309558490781626111599457389553927142364319676388334403011101548734523333429866336103357509305637021465255171002132075987790370258022738254370829398268568348848396566164799970524050767537296716289865577540000622971570475737640276536517038718134316856462539981919189739345890682515248608494348321068064231062058953315962677349348349095565098941545263760872101293752679225276931861236839615838671134281856051325303806908967004290822963654667258788705019611117023118843344131617608226321293489461599561236030139608669389304819873498438664813609876709438837544684802981085878433415238296471128165040040710021109658711475733257177810879874851092413542030838907847919275745210071771011878537427161210892135610439998207214484037558010222767133174052721056563348448630031980669155013180720835962397538583787482274243408638729798283907299339327341708499660110151045802025885660842244901290519757407987602349014122846105333397811727393942332721490935626259544737727136270256901775311894146493567533212948865933508033736066437101402074371928486846511592154075942867486212137920553248955963901945009044619710187110522672162778540717477129622288420257881667801520185780185621177668251048280298982990785324035314891625657575519863697954933014667836970692002805212042370987966130587330858377109608622251772491665018277195998371291673240709648492560830682305446640523839046811449998477987519846122281984622333617313419276390530750955382132334807015293013496968862878646969280720375592664497726164634138656197659706469811322453606053171086647953155029616476523150237169232020071845935037250421080592864689335987720691089515670020489596799850369286514878763718126003821401031997807691563640374448977701921945714820643387312801085395570409263145689713809166724618090379351346637377514106995152675039791483417623926391992334511610110497191455543861905114980220759212292615205937611706172786955858781725622448719592260340361157415030475810647973107784829402479213834086490565369927700356498023878058179113652828758791449642627409451309266287227641524706431230730545632268343156562069724995213273234711949871714065276073775779506904749589953367749411133550405186865147929584008097139669177457337243570912503229334106423903578163916885192895820824410312995838002746342758744812080008707706214920987704420574896436136428931248176832031368238263885334230691318076330902415923916414919343269967185085361730719608538186063707907269095151648876434036214186247599886691304416794506694132553161526376332502610026364351930418894429967664941256961557968774377357885293968456118632130365739843552497123225890405689582656396656547225366752781405212722717903469216643208246000152465376888307628349486382130188979405019124625782479112514208431140333080854081888518949814676763339213548468076370010124135833841554387609586684846051375169384617683076079140988130359964039341222353657252385794479833179328901362865502282738574331835635322067371638916241252787648148482428266009552575978103821486008316884013849767200063758637049784146089906477679115700476865518472629970485998527563338361203598675161939028981512704212656110279539635182209794420397976109323627976176093639512121705659694259084428324609916220796667888978188295428887918251449987984070234504767381033160757364958805196661252407368209849454133544657956807158680367836585446239259548485774719842370472010011160313665246318071544292684051257196579882076858837539878719428207413428877240440744288079199553243046927355887961165318061367842286646913622455842949237306161218381100825734688512546199044486225159175790653913975776457538844511514487849896550348818840140202929381849179602550399367516444213482066577308452406778944373306309616812161837810934974200813559052914714006491663338636135188718296613379752245510606133671059790153599820761295707190627311456436998243864232334689332874621316995130923906829481303622490298335356798707664519161567331704456167606492869561757351704104113761530616802459054714775653331236559585021365425981369874003212549032912771596841429210955237437980695260515515269247079812052866834202350463054236524551059474877084474597104334752407220642875133050932587907609405645393845146550267090428190404479100663739966703789976283403688669409324549878856042368192844725878935072098831738168592843092029245006079610294851457909284473332677053899730780398086934760690067597678175095399265154852269694734761181375023624382655498576088880723002534223799529111497962223684024174338858494762257007995869806297453133015201019760465850607543880706695617394400914353657497636344805785866058543539578156691443344474458820641561232124440143360489788971246744231679517402005851253956320356453609983997915739962713278321976678593399105537638059839919645351457779857021219740461296498481366595152824771519801281231527704586204039230159396785884269343703137774407026815791690889345978691968198957772038338504619937387613315244187964464253058120437464065060694751036321320373745709911132137527732158466371126874447407017269327551398328329429455111678785157267571854158201188338491495690856931184555172569204388399289464987686555406173252568732057804238182552457718319232576442217494585061693498274725445692082730409212930580871011894009878297193871337942070425842898446779439722637916892094135256603307190401533489688971474646121270968304462771392544140512211690068961097483756111234886015872678763017626007291991768889998451332721994344328578324066382829185749491360804627778294592485743629659903308101912420913161818288331193276181136581397683216840920348777265254353136268225488739589485936582082097264414539263299184732488115792501804657244787526833306288657568637402580291509899359317142451765389158553007627530178870839203129647527672731865063444074193382211698889490405857448609840822773909202068057170437711454819834505937958275767748942447942272507195041141961035179215512883658505580854280184672314591881377510053825874836006319400704951272548093775127713453029701195821831309453902037168528715229671130726568239805338572153419214336143305370977508977111603384165822070871711710956215018048243601376643012769408864840537879767714298274186475921422837373618322786187999173758606094738535429586305772612286622029675684250677916840139304555458371710603287464370149640676801307163113520751846696239543081880410319237063836966156051207678232971685120267308160812230898097469889808585120739238948176503543688289226432591432353442916523117385051754661048231368422544819419614037768294811444310833623086146553407845080718701052988821397697268613099869616441537886789252092345643977078724973789526729691818605164831477263855399385827789398255341991762494217919768501942212161772139763056145032731510272687724220500941203072734440563593048602208611237434456908524630288874571467624085550428998057004115263051587355964484946087578879749328272110847704021213781532585706749848686963357601465219708316052748823341385212837227980335464985030948640122022050270424177628171640654976370299287826515348539467311249590953982706927480734736376189811958334852812078052353371246285683675033245083493912030400214658819372793550741694470259095778577189571346535747444270545182787605461799769238735371688831810859800016021699257226936418134876233312267522273782504849178636255584548597931332025402031895195369773040498383747909312913568731004348564380682822524916492066116389691034427458547300980679294442247062858205130632729540894099456320390442247377248099858559658326501821283168282984225382074074710495120721750043421597689246226007661253245084340168629214109741769144961542349069841313973153772330235529168222689190201849468617988091722698484006694270705978641628704902600065916131032517178014669652274322958607492714970459550192161436778724963800716638237597594209364825576350570876885631048406343368436571369706113111412673221825990533532412098179346823577052505748991335079488432737470535866862620706869124937877831432699187353955927979298450808616570466450533703370813938340969971981812282061243490023354632842798015257067142868572552727320408933183155012197044782742439484054474149008920597790135833626830497776223274352390937614100359157805535279505508383574506232795434749640181739297030233886204549392479611931205702061796489956373596771176708483758243937613752400191754740404484213233243402247460273164919734632993680582443801262301186001342707317106447449447302215219536324963957479746062215581857821637447268000663512834938365698525114459000918093908551219026051365591768774931680004459442691561098743041263467924220827487428705159522309681939334094983245076135789579534258110143008652351963152309049695178064303664866650125984951920126072300772155033602958353770822813222032339036070417898007171409345144158031395304939970246718040942626869222033743699509298432584136976000132247723239335979630204627973801410039275832927542320352827987432499634851315223384066698101572166572403664608358131486802558261463562684923872299318040887522900413023976922184882037537029845475645935829056716268289601910356764349712892508317110649133018408981172863412262562020982440550166676119472096014452545693625467226294922890014741214846320750998731165031126500639920908196781784992223293726049023193903951182071123887472434818952983895223913423370176854420441522343233385542768395020180002057560474621892951744037642595756211326942655804863637124020526707466842110955309503063652214512973379278465900837800826635633585516086902777615376083890866459464607816534602138511909682024411982897220707556470706634697550291249576189355127916243477600251048423998646593573181180525648276512687527632912225036667586097594933291603549496409912546391009110059227020461918211111943094576731771114378966852635830292294473856556925238081027315254632381794546922793188323578242680452495615350122484366052629638810447782001227736441151186357351864881793376541755984482488110666700403990476236039413042431394284309845566100028378435166970592766803436238947128044203255589865365173511664649466340752384578716210334492217997748916654646136954283792882126961257096728882292554029803360787187443190455201191182977461182523547678427793074358031674183636366684232875345640400076318577407886784855955536246747260873593188577443555222366477814082282437544160554634611306156757616868367174735103642450855145446244892075206042158891255479151935850854193687349108495918201199184225172972871148800002727859445601738271050530088206160304870334314907133910275336500068628489397943047807635055356907214253773760748306186096592277271280093832067563312231228861186658991240042443214103241061205150010394845555249832545796780751228007590644913232086300787981377550316150932899816098359101607436041896845670544792633848301553078217667421226505512607093478996550277376949322705006588125216794161964706924951139823152015508563362234568921856716307910095579249980151404386758559463383203789574294777938900496296340550241265341556258063271252682711133445212614087318120412806787888309661509252480408102081508431729389557510667099516405323579280552745855033619554545878849448420256946716853135715889607196930525078347950467026191513904985105610031867409093923238660986583432805852780138118769677078562955940198023135031370446567628622348372042890776500154584066949942382928984171592787514492522327367634191971831608437891835075421675856288146795889794265439125253715801137529958715652219277989304084474593128508209787632119306822683393659614413395695470461864541726084652924604568854346491279706980180497401951243018985301650470151463699346588923555293216655741102977151505295039235059374668420250255159797491518342437617630949378392847407370808721147906492529334124277390997320911955402981044928471470733259363301258678562350967025933754213702067853669261170382698423175963014136187561742952094086893162737635960094968417437227958561957829873354282087732049654241188360812970316966673602126959604745250954717168593466289916493517298897856480530505228083250989025343771917461695574795436255177146325140309091598644055513973007939087057564878210592953056752559776546725260539642587627609849903095300937360375435169143938637665284349379202362615991492276853274532364593324961085173626722713001545549458170072705962636224312700824135185146360187664171759610732923871886429772365590913785079800242855258828896793869708971462460834742440415335794013860191367126126489315375872245257164985437625046588466241768131929109790322313888258340053025488380166702918201990864338121606648303607065699416931260649107469861515715578146886660140379372533425667279070277711739419339445945316360531263619879800474682955549365669271505722397141171690780232081455674324636479247318375130426379296983715548990416258544459768515436454208916597688653729518930221050876366285655495197875404271152227932256865356343749696475347407212440705637717943344879176654344600249555584469656462168593932506068153063477411331919563509524136781446820931271317836156164990316069028199661251464614332556961926415520114489652528009809800129398905727228038446321685052777224339130839588743687297714488704622274453883919019108811432165749233861370920256906042332136252932996901473545669782503801537247651129560767994927723749426637078668139193254449375441578898827009791721908401102245536059955752372553025566696327732316178839650560186999203391545631431348402744022433370429911148294202021466722517803820725158766773728074385832982747274555034837913678406697642451964759118611930353128428180837579691900595350101239941644028270715411296122035344029557098081597498500465901173834515925928078841977960420621612113031262075014014274840129686382352111890131729812319570275781567271938999006603090347957466084930666505237364654923670423790450887251985099974373333522502763345302350227585946760889325905192548539286880482174568622355209666409338217992196547591760552679463592298149734503986956238273439263115206673273759052322146771308681656864528401429212846615487621620111414658343204557407004059252686119207827572543559937586753766450892626732919612604524593993150105805813108954534641367876119065209978898882047219253917396730548905962952649262819164127943978056724907197614644770861257282301154895154111427977757710262546788239000550083187054432781687511545851513082769098430010827428693001502907337375785724591875026238062076908885483765374407729697858118147931245149133105994011025057212198376006646663653552801996957041409562123110998938412540017285863375800160943300433211062143503384122583392904887675284364827759627077732167811844211146631716418999552304685191206676131076738402774035573431362666459735833092942932049122512279364499495289169262894706397425475900652722055973524560902607424850466824281666020172935178369333984410064663552601085171721323667024686760697412120723820607464069210719057720228238023620829218028654758641686256649153586183153942288889766373832937667360487616425851295462176153037538340487381152048633390380263748127756047844257723220422112786480363281352906639893568902680622037084672123201807687346665102822755318187354049160980305624336463454484940397593609589856818228341650432872410319092317367478699655186282770192927125576566651928694035398293848017047411079973831614116284748104605523145546949364436088983870011391305353583321041694015780864167037016131444193589053421833857585584184430838465363435649413795988949898365477391498845023803652696702973246910053553787588292027993015513781997330704373036747980346191139852459626108453238060890214170309175340122179317022534276394906542285257396821443943802055287011977953990144536236961115624540461265334812425215284670971288259757493387271533469817668038603606338896377879178342533543363456514506964570622876282167437542646018945231315226514817676226846177842818072288530993320113302448947227948906273713550387274820788092841221203944334971721432010849219946379724086305675169590287052782414518500697321476330639371378449468532914652853610765788473493190650330738155683956450439902068014726095266238431270913343281713490796785117737987637099106396776947218352560113605476582842148245356694872702238588066956371580795932602100901919235524830006870038176619127347227349127247851765202201363850210197527293937381658633740707837966337954943985177492905205085359732205867292227173782817872501305024111483152576133281064603005061549649097406139365510029590895480010563418721701513692663070280838979992255703855866213554770576578337917193751934630594428253434395760878742888411494852735979372032721818647030593197100848622144828798449063641193676041001665266165617263534397643862334786474154141572427411264472473864349987371822452968340519565972100593168384379164802041688350332479934589725447900710692303356826944851183169936907158042505930106634817054591340881263696700990646412364206125589839852618144882684177154847664392277029249451505073321356862095368862543916097995734076773137104118011842055895265538410435521075876523974154250074832584227978455845990880741165002245691374668916710715093019133808832952456580858228849275198248720231113018544977929986792597161877932172633916685693981916806833974750800535882745371745825918521265237427259395622248597875976543273161421802145117761611483604140518318199586873610078744703517726999427768373866383600729606683643302776374422866746582079400090554955313520884691215720486835029392165200768928467899601620071803311246954290089024622363108973682559175803189019419185872338420050849397858393611161328205979650712532163211997419500373744071156653157951301558554624978071558078413479504682923918064739095777638840444218476512949187300590213647816672871838697205656844280905636721446489626359707204056138802781588995626131835229297608739950515020214902717782243741101451483386824026439729901323794187401230739706695075423575261974651591612838542152090743181855687129724629352976108620701239219080397149196823566558251573657000692770794601833706609703885048089884848925517305565179755137108934221742064632958208000574408889727657405623711080062845901783454306211307752724402751035324523100794559310715706279161676188082541855599391322744217567551648617989766551037230006745396773891118594020629287452764011115387321505287275312233476885653177617685554936459394021267695404926790109613725975608825464644439868193018941840557706921292922279197620806036974798252557098950749867405886439165557924925232793086398479070970752329187000364881016290712676537939454212047207545220662612385945108689147800731258873849859321518114914961944087997596435553358476031355474713846874802636240164824740533467903206963241512038781172503221601299269826080408019295682145395269024414687628605433695362113387250306747577870098377077813656921117845474781397851736936116055424511942111489645401233599101199095963661889630402993584676931357279176930583490650034232835193441981013933987157379660304244971068265766409018246620691280680997345091203903556307170204514513344236326295347195799861566688371958216519385842473456899447518940339861304723890695962227924410611821184009325359434589932980660473891627082983351355860571845569769897576266593379106747920360503135801345354669723661111729184594780227671534849973453864245175443283033301421548659853190831151647577653516866474544742595362665377056186676123482937929352175137901225940606090115645879013284313211365725971800068777546517205486051651373697242044742085334008108717450011051726995827278625552834761546575259668411976004492259149489524461575615396355698532395766511831061703427096940170975031507762827615930576681619944839281649829548640257072659392759748903961846672450818967324407948417397878468222298210780846641685206366326501350135748562317617246733540400221121363624175443944720465289080665665981445458240038208501598264074832823901946819924260798983841076112215668182644887463337308049901908361617277025075538100690516370223408658737533385110547467870885309032738794247977718768726963702855036632390034863427074874177013011687180773875776891922092806496033970900757583601663025327751429996130175286300094844630843826486725958489494432882885209423579057686512970780356302260398432531527329797085895040606019790393161580948360423636107265601442536428697679422710735422046731996919950554096673490615494571362024162521768234450490866973493670173316775032239727878397010125593131767765267420051861027803094812820585769578782888017938302289398101575157800332037763917922695423272223120664983111129419371974019077554069086112187306829230322455896238883456005129871591337016801806804346382201501536796569485289870933438837571139011474030445392927889943435787508595623198512496226595635697157257740180200287017207847039334192952066163389093136382341848120942372836750322548674432162133812023232205068710420917461693590508695819735055723848471936901313909296413752687672056700471138839182659800909921083196057500077236926886052568149913451034452990427713898856213692324389608852007099641706929685582064205593879338289141465780873236721258412472265429117541981911181759859798529255318811428972018294126168973136554997473972555288044656101644958563246215211095151128382462010794326682717456248732639293181893341444540960036269246382322682045048189453680252305658927676210893986676219950324197021684774462368123444679627310051686462455235648520016891370648585492043746983158174350994949178163980331161437731836967790121876945975988865855713931469945614332681961046779040200764676151129205376768351683528878614768247920142847655615192545488944485141449611270343792146624727963048605683359771630838879207544602886942197908519903819683112120097063290929967490019806246772550887173876057186378338439912109287495686525855312932763148213219545861578620423970646198206464556612650600746326307626554264376432920029604267055380730077255498575853122585173911642945185261717463309331246645767712257286711452300893071383355339045052004441712365163750976904447150566894587252219683799524786225816323005281431084114606767261058496316687327259659491739688360303828274829423992371465914622929734044768369421209827315691406888082599551500646345576411361025436669541373449890574551532480832473522578685742198384887462038751262460725117906935002066562944892277373697937307725051364752782336919068638540690406089776305973717217101004606103998207924228204540610418003317653957467994787279841645998159157511454037933268564426998805083035605455036208004954545046360760768941316071028190899563988262230674680936397421874195086224423769970670421892729080493056810653922220369013370925934054757969052505408420129199596369002005867200120482337228528220580046072946980201907006318118941426462884508871590482830692908882167257419186888656655465417501698676937379025416352283389085804074145819546091289449928982779924306812108236166941830941085451313331524915649997242639542140705424934149963685032090432350514911675307799776526801852198813643210620060200573742157822504588100518087704466355833964906045163994743092287499750853963933098091266601237626703845933148976040750954860408386027319141774006238132471085340565635523484308908180749968611315810991346435347743391619660419019065062859122237556487616142968209126349779211486446130717226984438115304422896752590298810003883089762345859767714899804128542821633127032462642222108581209951475111564857954132926970267843715886388941887180075021427303209445273430035162134008060680096534145474422795062781733295925041318438029491157035564173846913103446501538038488744657826776402061312990446752549945307749154598020247340432392245448836329435965728211388761044916318372550210125762866164109647845931743638207019556066335595598471037128585837915279196742024316637079073421691795812717106977286333542322920120392216472644662664205845347304098623108853951068910118732640842724775274764752505392859592766643566173211639416206509379611357997487134306593401706732556471244461725166228214687995050291235186123090482572930916578720599341016454399718550597315759388848296000638475135760161366534790805649125151747689589326909156565262378761232076233742471189550473161934712537819279653924276159974173567288176895459542961066799301567978008699826740567606101105477159136504677498187377462631844860606076974217919194380885724873637921824068954647400157904169559343389638803831906457678435422023358148380121861199474953544043049920224450933049871622439229116707755525175960624682574269142745460618535257644491253287189520384702140717683453863979799381622346597839087534843866995073536716117348046565080403789611795997870230053573712252430292203865327752721272066979479058604932063213414823804180024293688533831253188096182364907562741795110745496964019934451786110459195651757061688758050918372244868505028624254789404556317578288558802250821841807053517275867887299315669291140204497336667586015136538572798191815502821199607369715692213331434369166384348209831914343317034775754958002846052751978567282956266119405775566547460803857123162578776059475136446871354945808859317403428750043720826260464733056695774296696615070246749166905764916199902599758432236905654861152098340599504672592444254159752203222590284243967027091912481878470298492777644951609002402722872490088593163837763635276452962863989984681808759452552828611242959757264164436756638277849092153556293916609966797517544134317978074672850639436405320624935287933970708554975485719615227030192538031131567852247860324800016572890655914812150462663954500448568121930016853331315488482926087744390822387013849741484032593765085310498804063069033601380309684318252312892860728893078451445399646540239718150163862770977291100729838376779676886997879022758031377290669787670654102373352175907880254418111815223636354034957447617788836495339529862072568014611109059749558304843523402518445270200023968111451237584282346546097659337056812810918984421617959426999516273345210893290105609161331166878466451208610777217924417054181171203687408457485225268648877168758146766373232293798111331691624191587382009191551765987717334083978404920742555161647557785515988556948861306558202911998349955654705101422608796953447775381429711884952879921989829862325371947438985548263033797060937356666720205149935951769608872214459054143138947406076207651612723490355678954085459252131190758913369251871073920021659252436553290038940597403818906117406221456942693223591261707383094451488563570462964067261591071958761325444028995962522056928354810444204374359498928096350433488711040603969822687255281949465394838371762440468879805202494209745724270981096151785467842298288625547242753532391025432194110687409260447710132988016807733497941355857711415960613194295252525032457141305695998570194309157494714011308160174123220628951495686895451103251089662281471141253409100655701426114052370204158812424891246751687659194097504885244039676023878138180963934386544049172580920648970569760747221946890505774360640559605230127059598378335723320761401624766231542456377894428261139045298730772914373447607408944014529732103399712617360527377766760728800547050458343146697472647712221952952843912278498060672415545102423998375509612315854670049697901524464616390292064825974281797599408447111708183834141141543239378382151740309844905275745698418979527169295793807208420323490420006624143293264086866305607106515102273353511081135979688897198639377340159480135539126229110523930446646202814620041271573440552269872090284071059763459620826026142715673105319267626013853717076973864415627184025406181376187871801252877114741006069243371739690247336970711996576078959949315687655977086218634865712950178336272743256186133109142308086596863417299896272777147218059590100490569726466458364307885501551496722687023619207603244621276232613206966804238676796504585381959290451410240718009308964889822101054389412434541803021421060213819837084402425183868263697460950313993445521690203377661960079737083414547644663548438501975335575927582753502069885253939331828447183640332413386939028950545460565997427688301008649888700115377305170328764994961807243431466090912305097221280305909608147362876855943671938969198461486583103659622630990786501090738196893599761144411540605162193392848255985064413902466530355610105062130699021360791907896042368962129428313581878998830681152439831413975051431796236885170016509906505930256639842093085112624717648207469531753048961474168283730788310979939692899697081454829393838841597983743944097171020505984075471432312839904777458665362377044908532549645532226883605640760708231040796581317038697832589255750408247259196186147908857012199971208500831805594138648417785872514580775363852293876948169538082597612657638970860104273017361393493206836989179862858076591803231942680280647884376101519594590015709843412638583917175875069218162344274523912899773599457237415629974281027412856362077198668034971232037581583596045271166243145870326343073766867832963048541224560492734463098536653337617210477393908326215302171893323213801018320901635377747693263618730143839737768707790398950839502567950521147789451160696085120896139479422514201823726195289364609901601454478962184558730861075244754104832205984414303177990888404007751911760004040249638784435488454658593710450143068410724578129831520331074101672382161479211987465613697212775630451374438078190434119921337756354593966097845910798658545101044448716282223551657793787599879980069833380839560319215213901986395999384248863162692432679124453192375162446005027801910084668694768149922201750753381004074353222127624332481566920191664181152298200675935930831439788367467251155607228462677563056135162247197528598067229203325105767498058550731897979095844173583751179292573410578808635754587010822087234718015261976626672167690654450568731860252991249253328844293696944568233481858335524661060004990827412761886045806782559844184058423993453188047088312192351914796085511982207347193792761060991084185142124530876386261096159014341995529839746396976977776485651369073616602034800523536094265988855928794077631392100568536102664293306054212700731132870748194040137387136539314983811853884293338831508195141725990231936991091876220765273300070175713543728308581600150598836492488702151016168998676984404727162676959328739597004764092760623938086519620559527610827587922536428573634448048597746376207712493964715557232023049190606100448468861097160886416907139310919694349479437195229562019866861448812445743623864426821913643764663923798615415206640763451023382461737379749601725593422472590840226097695677888781409122218194974397677488901993420107711256550711339736435528910727598419287426692195961915383980267542567289756159525402950434608907401777200855729931016436507184085046246541729377576356853527411555476948615470816275959362663805311458188600515670856801459290173153605846930633975933233823416617730796548518686263674079507096193304711257481222279727919488113153164113041739470803430155711586826695944139002548130868689033556966754331979864660188720909556070808536976101735863679512543959262874320165203300485327313945496273605014972209612084089530580340807135131388705586808517657446546876547055004286004215546549644474002240972902507406960899318274676614459488876833540448542180096556043199348569577561646196035117740366153723140029606530931781484597630104027855904795190930914868317011892892556540333386825254866191100324904800963945968326579687456072055302333642322129772111826259946424413720244555393709404273456109128366070945314465072162295720503597461923619319931742827975465902538646983446547359528296978803600238685543272149995926787043431941212245457977091110554407935849789028541553065913164605084946210626398751964027479993079599359172407497529377088531350064556159684469132502586205610742241074851484306633793353499509232669614980318919421171387725273927047921790315801608095886975301189961679391015633977264333578394374951591440751417488256833982313444541717581324743805283024487412407665730802103953533259235614911137271172719997812498586893672403411604778387453112134039422269317530647424758121027943434639450649867505703779164060522899279160021427208526382561824710677013533438075966781848504227488375399615949877632319898880394544580465452167035600258254469493348810100272281888449346245744140685112018410503551462745044565382006691034638101478107662433520529539206991127702825879370970329198078477755495113658888793812537213109514445982063859777551313509745495693995947422218214212282230446323475666304551117381534529673480854870160154512571653481745014342431605305235567298148659615120761240929644367613705969460486802171811669421078442909905667397226233255027207748482674328341624107092056671278643473874166724773336997898378411300506403881143654070199833212951045172115330392540077285796941372441239293081159447060175943740144559582725232458557834652593254299716270694738186175666065064770313566978824578802775371972808359295509181053241067965806261720922045392878470308487305567994048593637210916278179724330341150432785205022431223241119961051736327409428485844323408691107991350764298622514041841070126574496386010174349413855983372778508792497220720463360982388005998616267518988145676154132059459446033578061897234373126809353011984620288523690265596076709901345298870371499667049976876639053662387395079695054683219126743289056013935493324266870328715853519235597015561770681004660144922978706855737757219391025069254004005684217070794355960093292778391270762509957343490072713226162940971432162853282667328351537160180278295791618342238989918880699744282352755198328734303794276619946383421302005950817598534250789448955437716555006612104540007819587396643544381285712853378150752717644962972939671157683261998779626336884657318086878765621679343891906674979063336154376414800260531747962111234662891831589096360049911559905172352044645732122303571830201214987104826123718582729071111367354562356517713718604261779253272886062045069662774726956968999903636910264728454111949459031537275130334002801181387590290034251788146832175055743599581493172448718685858164899297158156982325620843147913300510468806444464919098895264077756134493881240483505184531605673652822826592960058256385699802211794953281601478534185510266340065635065245777533994003934893177764344760869873337341592360446247783509065482032170511466711051335852792242355460412672556987498387895145222176035197028266072961443568707200120710073629633386238372755268555002221616405811958417957767786184893235912457069350616519178891945017653054017836716501400555592569461514054827904049078369249382663519026264189028388267842655151813499466235352184422579765081742804482532420689892434089340510570612118259281897759009093073463256601425417844277435512285374916405504139694206080957045729024242636723614522757757776167342999286321932989173610222058917066109325767849529198637392580620862569874021725798748166687039563692242174646577841262146211059097061713714617788168449914741214428592454501917007112884917184916054667134246924387505015862176025088280285609970598697451348100532640725717730808023927837132533055728324739663014997201529397431301945193115771765355004286592466428384309686458311648289482053414515223630632727686192205074340359700246632873842605364112464755518837230347594818883529169626241727750433976594081812345143910922522827874554616417443181322103539579057481562885309423933905406823822642311856111679135859946772841947338627605894216701940842363985629365449256594610222540993061414559855884371558146197252374026622663944158137624158527295088166786596101633917290352204990415377184498264629281591918445188538045392525497150441648898301665640776260440072575200592687089136341498177907655217419650235936888838050380489542111740204348000484054439170297130022210361636116739984547259781687161179937588774387723048784285719978989955077660042176613027245538283788877994639136033230417152255826056946674974430744597612889959584403316358171799572570466341223747238824939445570276761274703186280348943337896863137137968695476949020098125275597605892787028434824892994492404628524147411596494517733101895911843934363653733302305537274482119943244622794133492025002266477931789107804670840132606635744776049151991510010588377560795587332989046010534341772952511061934336553931247037707272030460696888987746595221949441968524186031881492262545683696396162493049287950936274069657229905489400337106093770029048227321279185652345003570667747498702415016237825355269015986428429527736579792058346041553814485625858336879322413978392265255050022174640690984694857673057639047961154935448364736213001806316474283434190475197325611141465548695520739092501485688751697900051006556610889733052498916058596315966809189548460673692895459281485020766443880256567926131326488464482816254049836304418666137599072651451256840495047879928138695435862277615387660842585303688241760234773453579923455257632064002618369592730293044907713185796915736358259767007432449621690199168985902200092337917424569617424754067796588428692865359418815985159417235283338128801994557395772703426162716318263923790075251834528029262366030738295992375121501064750433743869933071119738723551266451191813095245576302188380022451773850817258460381492450872002022131486392381568690446674687409870256565095080081737526249001277616439378807196977117786071806439789924620196523791306486151423871421787172373943752011579881334615407160842000409261381354404236486595295163197038879547144417038420843805696654955554696562393734434220718935517880416486271707935845874197227310690450416504812462061120233839883263005302437200911113088228051812766896455252663737521330660663019809080235692459911676764493674500229697047534440062457878729680989067876471578634040637238695591126568224010302570142614093997662846363668798766696465399622395973371352151098668164911650688145696869155715982804507859844045455982493546765425314408211636293455953723390612474239024637385461613778441860116952534755043533205355524237092757641285155629449337134483850839174922514088595452959015898948195353966400225956232417684796875120930841354120364737085908080728083622735904400612336265699288572901516401010860947140998066825910357618487524126753255312993888556521694922030669957805553430905291760255007646477007855644595042900647858786788910104401340629579572917812110227348573664647053038977751261966328154144798847431235129629263600670075194177225370062431747331856688596141625249658714663188054756336126028304710073562645107740571606200449345563136529269392959090737844841962851644961769655810835051617825038528266883997710933776314709916499481959401038499262614053774300854983929883721384195129508556738207364563575092310339570471714066827813802460743699648066861918482168032169836598432233818994553020851841324366291025325802939691439558245475133438712321728898141055109538911390408279475695196706405829181157275920490067489134786234729523271328397417728303000493898277176689102917720100644259980003952452862533766539108586311185341322970130010623134197271595738614690166173411257681165294859549725472495781170398380396726112821098774723425024791397294708666501296914893796227358248067789760889740237492228967335789918312427000121388638659556533644264457766762144213274069764290490715152860625057661175192858782725898299028209670404680921301528323440359424989440447198106965177894605893113249875192786205929253816371904956488938803289846561827330859506740153852586582437150464992411658468743982917239356794368059719157594371272068551182229465345740509408788370558765300018602657541220406857962685974829503520940669438491298231121925035452355144898839470167916181452870079307462256583369063840746153776010995099528396761119101846652097255167815572197299273086066257654310779053197972301679556526568224694628474042284676087032663832553045164740310581232316013831877354019481605203531215833304972435785933713198718991330617516042812742395211107186136165345651492320433802558468154987432151515593212023481676196023952820991992719158424872498304571128516367613568053522383613454918798203118510695032797359240677614261113104722841099685786671923545615207120859816980655743727731991444677947967230667810922872900558223537403225418888227498558112329416886253017118697652230031590117134638803561047702420671774354804241245529297596976779699054991869475405891876969669181913103784779755440610889241857501089139061999271783783466950732406480952093708758437414769532343278414060018835043078155584493954402788537989236012573267562508947889413252020702384026501517702083479746054859019603846176173372183414545601061551088728958976253978287830358053202396706282710014332634325877217168346201076873009737612188370759729481298796740253047696203463566251302079909325617249212784952284280436060541772359420703806253939491222135048875500458400791691455178610363012076959203170399271896464955188362390755181089445721328464769764327861247936824463353209235004972222635970258588210922019983154999730293150922542513674045798497671160137259427421399306823409326546605447567948144220843652649562601812268234157498916787377250687647878924553813426840334457387877188866028659825188074558800988701568990780450233691098761536867806625388959800181639197548983338357250476719803321006763474893070078766790927933261151701821245742713807992668793253807361654805825755927323135081556591971001154564574322599350597428890251660002637185273621124862486145307712478063811564911017862858576021182896610922001438997921664000258061273245209986732340549142755572220972778763337799660711596806273838508675061037067805673794184268235896427546166553512000101820482321204031395973310019753420589191512927822062763846557794707875623537174316724098136421460101572418012457614682922093112058944875257817569059944436202363964492332604853953827196356879343721904887475402049939944830234882540853353877006769199237961653284127212360262950058067828976768915815744279905584006434331779922910850473620109208579796565696780157376833849236060570289962166247313635989616692051686051462589682293163469474054096820005388217033580388093219533108545618214750398521957930688473671819388656718937587315836134007518178805726707975819609338741983124951374477230612942511733743936536836293594686829619342611628434386710677276303478299526549728243484698627909556193208266188891312917857344287024263987759111746587872660993932078079391413792374094387895702722706995894866379341912651101449682578445154209921549454268819367078857434681675867705338391081240850799412547136037428658189374997575484251734856040248942545852680962967055478687074557761132608083726902204695717280580136438433844093605753942733171515141077093983039164228105853384644816316805789597788273945037436415658184559676078149441954431662851221147144548321139767721807572696651907528892272861160206135612482099474673550993885246570006681415620510209456058792688178162732530334404813610788912819598920428589465869281030554266944778500655641551771936340352650662156574619244933129200268981007304698518848782746234637898948104043347107468419341917888589263468122201861839316727918687164889388526635743348881798214966714518981732793975966072790095272960502774574546161560711931141133006340317405109160668373404443014812348768542109088874715544144073416413915337989820014053465340838799172244512734263347179011215614990403509358266326294082333763444873600303349664063209902701051591615638408128901288489267873914429679983577482793050749433647482863576681252010754465981563218680435590546476770698009252353513830654028102965550510613739210888033955907217334118096088582046737257915714040841578570658200158310453489936556962477242597090838809876507346655516162470540777333119765352079969577718866953175994689331605000150865150737718028719307955026738382055336971043983756260287674945934685469337545909375282301757427716335115771549473863777942478332994697288741140460769550825226522029671490401594564932489952326463132260541983877607149579758624052533896337925235719800220313293484240703220793604829262466398024516669501477086279584929099113272782034702146078881811138793096880246088722966599472562582986739230970335658376374758160869164157163898354291770908002567814159347211989471867369016764794067715914668422371623110677385892424636673917667695678478800303382120296662793198043682238957883161344316876710251557430776018969107499861191818473394679681366997993348112250449532786940661983430647398141090520079978194115851688372767743954167930412554568415267092192583344339577541674481684664769206052571212771344045594269261291727012743333283001862646226774199648425075362840652296922548066849755337898225223013793784305080138450026705868975404956687657282142407393596599227276263889903072747356822595524303708921948714967321253198726194341938143773494352057764845340585694297212758375325695579740811248968384351563820866047688983704172644959534611096610830326968769555158770293487852757588023860229246496301048962292009708504122561808649521601803599581863105858216498877179380338348102252360701713779225496298897392981526730850104093105057496829719674247371788543094206911380084883987544216492503849987042373281468979397397956698188926822618859928161986482743303809924651558924001311401645906260915459142686954520484248202173344757033893581409429950322010176865790768580922780010742815200892886162069975100391278086189707313979168733593769302401293023771909701967836201230980146539659222622553315475574410185475082317830671769752333172607151159563715960496127188296390798657252914610822001992977486382787767000113656060545250584510720476961913270846986785472978944000666027339855223141362080202243317997467462605838836636496907788470763217843264328775473113722344607417083919111204382551442090389445702008720523882526037784717696277227836686870416712887177162085828725845660459656986709126519979362073099200634267932180651630489830469588681338238547524453390717468163051084112343245425259956820408277810370951346844437614724668240179341732572849067349550255763699092781286189032857243733919436528365735877097312544543793052738184444256084947018628175883552616651501071435303997443028104527761900573196689811706126984813478578667925458696748028969773659008082884458055376070108017678308288816302805258855560782442061398166258908542899499439397919746242563865809860355821373517904424327474895535995602594657704743926088211981562315487458831679840804628152994030219772783494300220258399400441010680485761198053001056948865152848288550297021167352275510785699357844225256760262686192058486834881785292724255403087418220676151425597400149180479710245358689826600288597041562195932779275685915296957961440050079501746668444984303094981119286701887839456903256625165938194338400158949095573377322475504560879342996770857145722161383955965535541118708621489535781839752416947523378762735995804608836337010488318885786410306672841680831018775795162733926012605077160425738239811980863461201508870151406161805728769361774148570724359276911653868257645408537163143996903642215490318790413583419512895776263375797817691109322012501131062012140101613021294317127694747653860243425910178890563958721838892280141361657688468116849599316702900487737409389090993357619501841204712167689112026979266260453218396122963911868425948334203190334522172839344094584283690502812951828643188391402325539359292352330600599996495087450296939947100065483513745685419921495093929030949754560964918559916289998777594265955074896988406296295345507172260071417135900996387394963157729623339645011640250868870714334398840775005521407290165792682770329024280291549213318327404958492196626744408967478772434282746119042083179083943984237554430134244585978457008122845795501982813108011725886672181496467931719658218111940344516934505977121125782961289299480585192208342782709412808128216033103817714111730654692043412342294811067751082605520336090264024099678381121127740776294367368882434593996543117788717733899870946290208913515261596982978390879978492857629605004494191556828890819659334290202171510932069700692829945613028248766033543187615705451454351114782745824377448827146944695209516164476228604287139311765087355859652809568152276652848839267303192805283953947503081412743979839209289353490160332237945298426931779783264534025924019457145097348333944315630817749444851558627736993584631308210062349479906985028172820329141959990511194428520957631958435241294985172886749128584385100538903651153993513071880066533715698558983414140424614215874160755618590025370148435865406888873445201872205574179150673476057062025091855789902295623319072229329660594852271026544146092410068313487143356422832181137589835882854941393596677932021937413120127337537467009699853868741034179016570069429741125568837576835707495912585274125253102657270147563842919465093499408045459246241364341154383567434986798243218485170217489681935563866339857420566880090431460008628963910512268415911091132090190394347015518925013906087793326408443306312636753877251065443675044191155454411511252740526628792015457693533067582786441989727952519376620738779381485984843831751053368670002210263275520126524267690507501411644219943437484755182709731596525481879764734372795067460026263054324645856709762357231847116464967573097349061001598982524825760415203380120804097807258128438075214185296613968233352175996899244361804917338457711453432867544816770540229311358178737226354285941123967179653639432310322777958138381494269227266391405671410460476624372011728566198741709423422734411910533171096059775361345727491652894628611280534036167044519825177592418294394695095444615263938938072608447309436523926400680607945447747826573986518095686493315306224624604627443733858196963138659426959075361231165973572824144969980198431540022991068134440479305289150750721289971612803675935258427543397851816903288355590387282601942859223435864564638867893886553816589712035253180381119185823076577679590753864902748470015872898454710913360170014604311626217920616289404617802141029468762225180069189051142498619006441080333894166251415946930668996609018067059754586581118934835173018795560020040748102676800652228399201210112243075017259930740143393767764324091266876133078067574750282624514720548307493463482486976319641455352596917792806259704272328817105818931491619404675204303221527984512252494260071111818450178946558407026301866771098002316086065614711691036314540452683099336593321111213273630004722885830130498023317835145038920553877566539127877880557068064096516968939226186663010071012612012714388754618866338382030129332377448638008930771995985973703298740258386486614437182868703054395132073227847262039083365133431955887734010021921932215917652727397629537311307004347897991075487872828163703590073910524259088336283013302095868397402506878872435694518144149020917659012502495640557607808212451988140344750130272088104713504666469686783689425432578618012757132078702694640546854651132110106799984563448269205443425235342977187530296325883903724080703209584772720126833671856161898046440427044282637726049504203161842633614915716257812277871049301720385812121790150002668447885925804583292718499531499799437332757213272427558848285961369574613401107675594030294620941278451879021205564645312083360239648419684960039779237138749689450919373627818086234040810687472452232760550905388489717815455584953781270753923701109976291407214527294680578395200570767069199548474043316197342092619121481797414180417268287424724706100976454730774380459455135801104829652761864489782173918320966825087877274184903225906358662431193695764149542661299136649927218438506785348360712818478237123080871712165864410238433666925467055853751831554324199249315157037176098501199903727386190329026233982400806598136468119874213629690872594279202085454216977066135976800411769176101658573516774454886159046315462167485312557462887971086316187509068675644318886007054004740865568314206078200295453425522699702089382856202921003277495429940541132359887077978965202176387144034210097816878499380327101720463229562625770496071708700032987052582383653227319031639194347267833044881396164517910191514438001746093170078926898261906367420563863851653915838448188425705875814138707331375011482926747754633402559731202186312967743235985221797115642671546640613299039269466748687502248796889188831282444609825519755095041120188801401399030882887018698832417510164289039459556836832422269151589506308602472761477167440142442078686291852687821439650192268527309568568324762377412228744014593522420112384194840391771737054245484448597862435772048252489500145363393324441704980896819496334809589285044372487879406391336621433561797275257905403858017378330434206367248378403544994458862996174085331300631809428099297028217819651334261182583222391346518644710201019290918042392628096954176322854022578209322581349597750347918704621555091503413113160339507287599729647032724038909529735651580683517496323237851243868833456338138208281684352912693843978237563434625980224273327108812189724126900679536058345831167713312458571489353994709788372382111341499086085859551912636338552041878623902519857750289893112006979457554167585445395856554743495341661475215752097449027024140060528304569508223485842297159748807910495411056180659844049081938200239482740856019517634252587035889151209014119822915073863883931259204788802093054763613628300291417192819117320239704593506778792720133999620584578744516375730612619030739391601399389560468304201879174461600772319140857854482176579138371129330733239085896867189923672513256575963426928582300466540247472673420388862281209652989125748373697534361538935169804756918039105868479750652516111241838597736241255631201900853994236267678595903015771334911109449853040334044005057481606471424142071521326493266913428735885124636902809789630728323680971348809976005025820795979232108800063545305076616730666757724422470050843523864377205375907199104044878578983130680964581754712482936941168999333596057763798623927523831478101088010058622818729396708886943909227563352083547848880641742365554131802574228657688760990664653223610284138350860791784013342236498444684540078696209790352191623588930320136173953754935054640897080963903321742641601782111769650275894670104378890747287745275128725608998020490089453528873967621762542067966000337673968931597746541575390409855974490864876099663350658331276113128069176020418176778118150346574510919466071167595442426170141487891705741626090296180269432056154700911221474241075086255534036277725947136567369453169081918580276185912841100391749875454960228442417812970472818423945059827662175375112481521558150607671546957728925081266261152966381364785287472830459525125609039802184806169846033976855761868144059020618394078285947418332036719763099630302642929513066629907907741632551486783552800755995182427934351451061348295352067280519817390573057285655862879366587344383214966150796613993551743177892495772940508114971117353421411401703292551729062001650469463127805050805039650792385990344684881874323053859314205324389515834739434637589106386758946798462374024762654260020029219102133497919292080996777610472081317908696786605568813564299354322420299894545820993766684093424444547094034540721713702848640913228016964459079912856325263435177535789157712897131986951195538055280511970288806594208617534382745877686399289809228956896203071698088057084438634104518927293936185378417463918243049342881949253236094238472990955670286878403383181528402473990527028819812665369724919778116003022201278209348276140454330257373426270116157241336405582073184338927288730892940679615999823810526360480522277290694098659541769024877782682456716582982777454034171744726131303844325001480840445696237746099662808027432750620836261718266885253492703893487846730582460621260190529383999924559239263234692147622048066662579227757950614772598177463529346189956405202517788724985253670226526437445548473267871580869890021174351730172535167733777692854950425914598616026172422337324445808263872395795476008155847430674159831467982884232296257460333275107362636911292308395275544222955384633411027837529354160609248872135487756002469196170417912313370391878397777221784857716078694750561219568651602414944536526809998300601445641349369053713998783800959001342840347584632193718859387699475603314846281201713487807689384864713728160346653608539129581886982121158137125751373803339697585586005492027810135408896417350541533711092173982069757461221716721662832425317345475095795884138752601708156878339223448159160181161101153062628556561855200094925488930235125980414251042143686699777949788238487637183861402150011040275316939814890269579442294720098355263920920160335369819937571897911778198364369084138834644904826804715742231757626322624864960054766859743268114244523361059483227678298299581461891069120944250081497377628023288317873008269228455701376713000476449654668589583699230998853914220327222221014833780539913734010032476872170434108334055127360225227166657812130711188143520212488194031324756898942315010398038789065077464614015585288312747604809945965721906076385743289378770001296169074405445472598666415817464554929894922606349199664196294700571926620768518230688262662903810578871625232335511575259654386907518464247114190821015122953646095121256736850810006253481952647187138421425173112811468549985108321305477522034855741188883539586335078469439400518703276338998085477776181405234274350664358505201289874127002965393317003172995995499955710688131313252437491779662708383718909351488075629557883581541681738861075297798877662397012583492145522118985992490501941438167083562318077058434309224273958925075023734651876872394718381691150979131737666339452654162607958577261808020811265678378958261800225448918467570276699934094941392886843102263276658418438360767846366004110551149623035504127040777512431244524358955430268983931559788926351752996657386054977128245880260444308544331194268404957828901004388888158497620911909304249601492786105641473615786503553753819966014205567421671495093701071535782620269259216929135620146096270940551785031543155527275887551996123748674131558914952698498329249078157934235434967230339363077267875584745812676663567207050940592950039771981216251067215786081480282656820001213148749504586956882180159806342046375432448901282263466331356438080440527683546891194339202626365061372788282666484507885060520015236862903035168258022775263589742871883227798408540739428303023336379287648349871072352951479086882628477546783736766271100268203550025023116450613434951360115562391952448171079255444961229271120613330382116356687970269145081294631030863948675882687525004343506063728652036741389068292241380482480009700591471591104609061997875268644022547335341335922695876133113453046074254887691398600246475344021386142840401434825979340834166742255023058616367407397600735585896413441985136365966764448820516591321399528069570708479429331404481891928549473288011976097377115156163011657024089687625455749787060230999917159692395858166341990325844590559087106188339628142173416777310693499282118894172807232675812385447000342137007643109858198810947742436356177156150606855424359448754855826095985936345581632854775574380780750463254623754543470211115933525960129523197877083418728187229116361987482317092501940870815807867399252278545761112045454719381744179949821623433271834839585975784287684427900687328251258440132882540041737819304825641819889656737681181117219569723007627041861331553918805220357996417694371566561045985702880149049446184124606522001267404472788520933555561911080004786735411690637015585528554255870417271518205729305196698877232137087721170083086434343896405898663796975959965519839473543367891674174891390600536308311380058886131368406605515839057966621882780311009641927849259803841164631016453791360772501519045058354332164123860194910185570840815158760208976065515619918991173121134107496464446929516824683830869886061073399929739816318855353586628875500927104464848627939650152895079995363887173490192704174961468881787522630179428564331696275751239933293910553661614199498444815723547762398498745684903329184359483385266340714481999130975075634295857371981406968391482923691265705334446837015173070870283036150358457927728410243399508057523764476669652947475694040036109195720461615223699155964605240618884758351629886113745410055743392533175850398782198499992389248038338218311594502851189751327895660455872936347747431690186854407208316286833201929371729382173159484595175343078490637562442763225125509048201031914473135441611865483698469234641739503241004212752629488171866269762280414643064839259812858726855057998746490295683569269684710005178148604530679804404698402098375123883875192621480232136428863855242680153325292817178284762790948379258754444798264336180280592183305810553542336667826880705542719538269582086950536669489251346094644216061228846263714526405451578204217290043370516383231480387895638762762690296852224767366282601179672406384083234440676354400998493407465214908771732581606495070503875361273869633690478648628980994542564553382355589452112728972529625912468105077907183547132963655300693514238803641163544919723785597847493342838673706167545331291496602276467282365651794626803443713233852443666720899926783794669023341558702642190798700583696295120482839129875733616818769717510351391469343046932746030409915063659602809439077696516190015025375539920001896626837592366723172062796621359953010569261432341833487335645017819770156747894635694195298495725264253845150615945189232871054141998243382621173438124810563912738909332513150237191298476853131868318953962583774140768325241033956070720132037220049123655053448424224422876279107324250000238513655591296323556122194232674379606131434329227464739078379368861758869432203486082938563714299306116561982857306668162342380445486047773116392932870808468779749900481813264145506364667683962400798699129534031738974405690008082012732235323119002583732290751985617918237739704952338768473720836311625623049984626040148260085822538212998848224816984924048366293314873478471324678909013549211722474973694937580322202902165569306813431401675593148518589880837947017572382371180668231432543658555930923289906259162360642748966867087063012632004528440141324123674989475334836139144103127328148250214316444186110213886652434076119007115625626869563009851543603299550488120985321402814248698721785382014795541013445837776619400174828222406969985479678112783155290091605335274836946082905077246305225733322623923198515677600556697513232514296511819059735552646936013299622288153252168417587340646147156441856921136333034231425549768961773639131551795276703766073153114371218126563522252209975337094361890913765044580826984434574824311678232161761542441967811075225503160047839909552208671837918227554337287268585190653787238110243735204212074561552982989475036606501937296717979352432140646770445441307140171703538111253381118563894002883405933144897376868023662561275038248760765435337664532489250978353447831036753668786813780667392169917223011295494490065071037675647028248633847330025039680763628633690420815840757036646817709927463411291408574059423094187224379266076908787029311157607514725382493466547143150353941243705492604087212303657799595640422180136233510985172057007129311735922786879539565675453287589126656570277857192438094131174100297143092325196301712092842708939707382438408331901519305946428788188124053825281408304856559331669427711338924545519936832939270207679470747068249928882772295976450152758680029382169351470819649019927336574100364217471394563589924766593730017053206892518816163291336816377509752960428360760493797714478033732630952476554340129775040470247795253111556674214410720590257940300046545260583838327323151387369613809521030479066304448197950836034504600413241666698909279081566832978795852101640976728017921528724951297061122544394745880485208543443723904245836202588243780206417290157642915875261476019652446507026269550989043637141623799272325544165751656727208885363405610522607818453914915656353879138984438594148876467661432222293556240112510466814361431084639800198188866435863147303508523507706377506999974721209185563738010531697898349985310718606136801340493635773051404141369700861813035226768391578720365021790024926513749640674646857864017396864499536758182989563451000272842174611625309906862474055164388572367858792207955176143137064002520353609353415447224229627961929999391344915444454780891751025963355937574241117771459628413455955898461647848519560569553378697819260222210724004555150091798237290476161594693844311139082043599963387484125147768703891269677230881122325846165135855250810387438604142111183939226185035151001261501972171334933381419915137629735826768252589989690964278039404961106858858933891039487774298618102370105164506065654496386295920346637041899838665726424982940290575482146974655640250171415022788956669546324536907901195112820322253995962431081513673987560711214055503388863891422543316811971645608969963698178919108150056605158950596379561233953281662423833727712077727841243833064033140923802414906370812159665530994519223405829436702966428670409694757542698203807738401508981725796340584562061564347594961811627646136905099525541638837770237772029388981443724379666058186071351667350552218254262645319048897997189891703015836620316760098926597268527984233643456506953834412376760219899449854238548530335223580130756275303989881325802691052634373960789658170743771022761999394286379166489426058105056283254122012017640595992585080322169803876135269565361040881058025582936262438216134888341966379885871182334499691945430612455945072958412337788725165033196608129993362425432543693758904861806728741674913631972608478587430614325114972727482882645707948594142716616888905533311176852232152361922667620975101567866700559102101968032387795164898988074484560597729428135552652185352090210319654271525709650015150324363898926293385740116769566303611456743559941772020466215999784140433332538304850289777536049294671498854512088355968626947800872875009276040896077521065765161757833549465966477669749542342152526797136563508337724040132595544168138106448770197685414560517680202145825714751510301232732268473479847965868241228687210712764572824540958277993946829843324805247043016617487479504916251129657374624064650644732275124618831227711038738845696526040417952201747292992974441364625497349014627714100837272006100094241275474143988712942516398635410135323936376948334202539012840978436624459522703860976455525231245358505698633897049230968184621043821810971382634043207032455147710231030320825694925022191867518604761603402383197886521636404495922762545127672652039129223373479369432788881732934897492157416943650126437759643242048617403805753546549333450560382039707500891460151118037237398559365955674293494535338911047247785782512767036068973659385115510981907959447710690511488029387591772670297803632637939372320474027931634744956786104055058967130385269291754240757967125345583003728703309164376593916181624084558597498483116135238705849404868810785874841093573511951714216480226591279289797058024728821675954797252641827685014505940245294535083961920425275421551808211061647435769761679297656072684558915946677780146748307760024994926112725243824876600405508557207895093773611886607507068238671267017348848698735577698129734511935606080032509946931560675712624873312184254986890486429140879807017153228588977959508888033654027790860182982830018330607324310907061845493435684508498739135103548660026086085646580390030808942748194672913416684064543373505172225088151252500220109933614555472953180953698073904566138727926355567198653886419737781514349408297326726858500300027790014309381076367048545273319445992845110890202770399793324783066960895823928774024610163062937526848906292698685474974510357165409113604414884667686158063212522191443403295948870323068265418559475341450412695140772688501852053275932656711439341378735486188916769007728052193582190863344914696826045629036485038418099366949433997721346173456983964774283792242567191788190456852794052280206091094789427921295898997179452165911331298444735839047747881962405220978287596415982402534625189598824144097092912487392755535600279807221342826715714246841780869427470709478105905228045434541448318659346438842696764062962457916276113848585329780284819695306781757024199733712318927417105168396147423838864298364113281495238501197520779832599403600537943677146533034301468859813510170249157853729107965566371632657975725734808716216556648366049093136958422243552400189395639443995753800120723813988468889937655331263801415306790149702797406903588683967766168619315236382881428474322122368115867122022985453526712051603550094990635503976818029509621924719498092171411185406706454499053197311388188980641942779892870410971393743272672603732816947679837702038996305280180776743192227726692655811636060243158223069879888377596021238442060878021311672641282360554734673524428189884462612975614818177842797260785950431393626331782965584043250229824983717006422215892770953292600096808222278472449434214910485163386342836880774706620244959464602103133777536494374510255663196515873089317589699076106662462492357743962836215915911760264259907251878500909070661530021927443509012924685181477536212911955002751051700724026448575366620544006017816442043162256462054983820198847568040279309982537236520821624155125759466930022359627421246350741539791502920663699036498719198368805430919779834387905739167162315331342325658517404217916966846088664672016048545294040163521403576056248153973399787026017322799397537477630525620239991537279248616538253447679341633663219898613488247363926282945391755229180270544842808706299737707339659418506458906009999336049091207426561671509456557886950737767197180191892420265850570876464182600798608134353593958920618721702956784084014403290273943977617511048785671324289833848225086508175268971142761329701015459823456185729914288764845332148736987391586402890865946854303009243572120144216138431068441256126655855201798013496933075708736826927890144240572031179396474575866105560656624246122344760343434544762659118493383105690792346902772378903559926669307652013803988282460503737183932050624197665403967122113818071927174448670366021700682167715301661243278318478045912560799202737436398173134275393883195463045333503379236558953102005774343284592190758336463709662551443196962088001414382095739032551233757443542929335730824722880626728940075527279682495274652789124589204997365011743465830959084757126082208572255456648801282145053655872770662824300884463759860009009498981786086585968280867539261156283385552833009403123785045269263637767596348722782387439164908930987018181376198640297815782165874161113701451313200672793383768673203985326493448116675053580021354225996200942846296178077340290507177437606062027692927721664439289530114055867013940920768926503190957809382110320891822946814098287156641513119726374419800364252769987024400009986305377654526125458705196452431144695823959266653742002063307788747549245072375501340301601866218800500970093290078733142376460163842687322284737865082564839820941647859522567713861837304126809057645332373329672064166443442419900373823058080576637306709799513978150957339762483646793094210779848024966176505413550573543046404209991771555129656577553052536731459584622926542515235828356235651051845884312407080499140787002086293569215522255892467093835189548788246918387396904264693963427698687957619335383888864007783723881072511123672390027314849566576099151291381006207219694512970034464544367207128873509032071848152676329156260384070670433483441063069751844939669579023126530331197305660266048271365723353933133315504805439315022705677314368841321620088364012665951198278662077975382639214803386404489066120999825624896705393629550213015096654813230618305416533100572064899120332611802438611121874701418366507472588800775326483538070628779176806963005009921883517191382763464631674936014216259396770358113377905377588352168384955150659856050462996041674492779939421781530959124207195357606085302093964822366645998224563924910481803542585750087513675694692954257267453629289387056293732775449472890141011841804449137682446397419805360378813104408705649515856663281326422821439861937682483090685676248131707605273661854588173190690921509853033183893473849475917022914600812561491195870787941177837525289699312743121772052018335039393143590835897626078548090260682305654475698979398668811574118359919692280290581141079470584265255668353513936825452671315010772136381041006343953811270048325930538005250532168942703266868052054234962874435940114186206546297380904200064514823458425813074333380016602701624757571307130618466616894084735535835599924452168443221410348995445991580082119422139855357991225066961723679035371830949769806709267059475151339994575174270336859784528769242495638480455363832854346134165314099543259851654034745508922117221508602089958316259247798763495437336229242277204721437904422472629308178101195712607512925319655406056629243758162191532167970735410485924274745198474709051518096923893617535553674352207076728876838177021478925895312282388923042225915223967841161434699963162497264790717782504261708857950426834617398701673866020502671798198457635887756663407451924331890509618177245834868031167461277286575027139655386113974278172568285466586327584780513116047664330367563140691362978945016186313814353918142331678317337446917254250823381154919717978174320564372254275602428082731928357679173713822246882303569413436584200837917049160094738911810734887260639944061679490296168064441446909010545321318013786301896884724266298745699131638517966742933572973450875203732666458108735815742027897367512743395020009178274997518107017917875352878870379074825514329380406941436182382921622775295971595538133806478256983769014842121291749438380362115162779703454205311035249765780693032252706191506737083736019154613165137921267276968209539813592125462874852094548367378162956510727172653386817375174058140257246961601827104131565052573127776499147086985365300835743783195295341125135941880194754132759628943389464090577400231326645686644756925602454476562986652224295528730245407177144815922210893917508197549015851283943571752106044516164404860897229893043454445977805543294343288563932840320272511370200357646894549385240261508982515280989752291202851038525632274216990890358776666138269547870302362200062199544536744110003359531520916521285379794747480127189031669263822866950556123970661854436191172646600292663363707677433637733089878032638019453580459367156104769912402861588098108731740889394088947235771320173241099152833274028594237456154020497656088117951409340009409479593089542268030163826255398184615460802823853491009910381798140562167779863915474946287897178516021037476983799394213207765593202905769473412782509376115602787134685188489597578390171862684978470224694822535938096553918555355121986861076623615174397350675272169423197905647483472315573052555535537947873610349329177836500312500968775839421319031562977549582582771944359683225287659658576629567908474591022962157231043532290688965090983472670792291123881601168006263874996025670660472593189651305371432776855659551563527524831342629076541501374743570108060463417911201077868815399435485423734434336597710209264591214414776181582712725106598709841321329846549666691739832877904840963201534339713213517813283863799505490411428913375097125612169368524817399110244835967619374531756877251455383576938304396401366094868782562157208970026275053115302369330959104717474270025042877861220458362815062462501043902468375335013319213638433842928424350719530830722598461842787436864817318926739698934900792072337272745973934811335156212369002586393211486669159817853211376282270095727766043615401011728789430510672954620622847513993068039574775428760189379534512845480001841513778155352708304420321839687623767147006710387711252121550539382699952747951288344143604264369020419092388830634876976603393039338195376913810923447748371762223665967352906468178479169640131613608023337171902089442405693545071492620141367552842501735523852057855213149337554600012209206803375203689149558740095693205299240108490331050740241500702052637675274908873964790588445345927092231221415454357707501638626298260735632407725479247614000399813570619201985680178903907930857716428363041381883591989216105949749703711873440784755474936330810891362026557522476131125968508311290156173660649167340627064436714387957616659118258915909781829157082466893566372912288693926333438546039778716873076359225792587060677247332686116749912398872048143944340374652803535583251276741436006239146414746687666868188818194707592506947931707752068194867450505065606122419807360090345926757395443803840328970157548280902152582268975552714322613637403991992471248532286100437056294550239466206273070480372056473435342716907336334205570660510676584265480019487546010341538814542093466097913214176683019402147302317212649811114492668598815669237312269705053233263728031182935297634352019224754071733818945628317501249633916198470352518060360358737684629281449475615701809021147892063343356816465664576454565550315058270219051724298765750284898004853745279091986336236355142362168139469268044856569792446551721878303713936206690822184588598192699122163901933215419106177707636152548547724530405475710282774485552789471851550091592237332367180829782828300817965598140789410623795878844985412017467639362076714122904878829306484781881648080224291128429786951243026750644868814930671635711217095958161253705040868484197531800654535787862657234083433620608861364142693383381989074328246644382742834995612038499234552129832424590455659659306446605616042325426784154061303257265083189147224476440265477051433806111525171335655438326773423315157203892007469359217826706554303541192755617845095130276758930913278701341395746429493622918800955549834348265807778309883227972522429094055415974971670670956146319433312502061807884315836179181387659547937412790638949114900832198448755465935251089324947950782781494092581698479398510315928051432473222011132672571674226776593353605508656383363528822093044954595869106697357596496931740970941770493669810131297171465105559617045772618310404455672511813069804329855735038139499756164045184163905110075943607321211399834244706387049117337854249526732346912530992504599763554330719576115554527484371800096914477989863048713886573849315194010191903925344420057055691209821330396912417024145282883173771955527370207994743849813993314235547191232076125720171374303744049297179300747717546108682665107862270862096125072878119942444945481525967006512773583713601579194680673196371322541756216599168757309103244072801307286483053303747007242632613307873421911732572012013968514833624540755224438085620062607568712713742439819867500752188929653834238468243778952652460681660701848169811091200136197791596444077690300891214620970175501100354517162524305566869483510699119408682124958580680753290605855339894002369879084734579558382929368684821574017237530548781226129726618561249085677560400907818108770170049977775848219516876661666210243420067671432305380579146089203856395729394050550889152443235116909730342548882926756115436785524071185394307751588963998082661958467779962051389868243745588592049595555844532910103827698232248639051999756745917086871782093690532230392055407261057937400770061028262233496688893034705416517284315405582483407733925614557028420463285599333359427999018315673071550484939147481908928775379376387163779430558455771446225040974531876616655092187131875669315765814619272329407767671487552682145865963481722258987470818641696812053716739776644774730551733005106170136864115824228487729190004902544471169906287747281020780201582703215922384206756647243920480551379341408517315598959821611833616215994215200633176179014013248548584790254290109645349423964768167903725137161343373565437853517404129925661852489223967491931326965964897235259071838054600365568751873962634089935695296157150740412106760024865399431803883874358798980621835959914431550100507991787045697014701975937346216712928220165869240167917363553873187378555019300300380335936100398743147827229946521199343018155192900210770489086931932518486744380391417520353582358824182056338629154615232532322795093014478808356570919288897231107807454962923954984969680826865080406309130246457446314934276348436821615717939590952854875838033484169628375767865348692221855697267601588185036705996956487462607454026936495672249152010441046817265631865894446122546734897093537733619430510234155065189714262353026455351799276163710461874027925963942403262929135249309760832300588726865682535915916439582471141234535432873223093667121071518781290868987054243755595053454082869710504646887979096759000742686382804086140242406065501708699919605593955637619551735727443560483963351036810907561349032652600572688320322315960319243108351757343404746413304310274441151697657524380512258062959164952492418981940724492563154670505630981390691893782633709888987183979974112426652353862789628327090566100734399136132291119135036009560931923512671857286282644565280300391186764711750137385358143297672046807639235717059452241986225630531345353735371198655721229007374407377841166845550037274872710678225476462825051967959425256439848586211752576837791365519277628446566521015796199625800068234141589421107050388443160595252688988307327910670392654057189137672983395120603570222312911218433215120147467185095833276846616539095183721251960206127089801459868930848885675085567387393010293884563949281501811344087477469950162258464196476375200167351728508740041649371345281644065459951063100770070576714440483312815695805679163724833189300885096575061213623357391023276419914840538205295888550220792304121223086537504739394684409229318334206579139901400867121005293089008096184015569570411980611928498940231042776446066758172584171976134314942931858078771320450068289865389413902266194091204967800687095167889076618404309320474719480315405827669906665529627014324357487113106198658278272216444742733783660999225193917222703304308893183238612602766683757356533616191823390830220569916923727260196464014991384942147657828767296357056348847491561710625192373039636061320012109381211164214213069105335224989019097058941169028645795712968711195385868818088111943678234692854446169455786121207023985723106712076238263812244062835921827689497212212608781297504394653797588484665699780344992370468949018972800603924422680543985416197752472378989022353029036301152187327634156229397191164776631610027105220532602748936292159120837059047675467627165022052982444889903315932820239560770683163474879568871232469654339305708626418481547529768564666114247941732278810678741636885102820848314621550164811036859848220596334352148818083164495623273561912117765122628119250911096342235285807561435787436993206114753213890499348324216499108181931191721896074476044491648718262864834931573926640747807598497541067534973945481387365546015441483211212932855939737488833903379135779808241073288051784726575824793232282861308936314112657428882191033487567596908480111349669647023274781296375244644358483020316457484768509386629310113057509019117671019885226390068073564348098285963561961577743145292908536506411619621285363685312417896892221032151643781899127550547193094636378639229781223307459028504434258101281178895122409684457147014786858573138159669233095935141190845575450275175099701406599573796313187409789126799619359278877833695743640185236169033774740204478250750396891578854999733512547788509970585589022602882552022033667018627918795357226194390884427820447358146357686871271822892113273595931880717254217294488740382624965375530650744508372921539231846126393316112771605767129773756873306219192154239790695274312814096591653383045791456162426389133248854623572317865300807273770475012695538179741889866231630803112688195599219372978400063008740156533174422192544254698490668416441695244839095027508095158652463043891143246209581926966698018561792358353299043077830558696456385211966830402039221434810221057913274323724440865115259194509227480859171546586620949153500617914942459804909095173573818411356334846495597575542598687898889395246795589485612102320689796792341830789137008134268188494427883363837300022329768154035895613539584158212918806086919013332456662185696422329430492549940939670558216899274759138066662885744717123964789464118549857571730616216475431256394438404342477643966181929478247398937084615395754424812641612693564534956802129236079976641708054778030366330514641989199376258343256455449188188273286989703899758252706502224704136676034560036667590947884623913982755729812246934351556312331869291471101533784728521400968830557976668332645724044173751108188181892658320087998643262826630498632681295684224448739508558019877747654662053988645096283956828911845220495304073588174704685955611546956864752043602403814219317112185421218378576992599286106655411154120992602982759306292764939384655715253702114190268518476546024864144205789933925324403248500882120555771139713312789630051047614068198238203294131745286975185420811851549759389144788302113282117152772121174210703254005476623049094695470709077615220818148263900940259826605806255528249822543165916596136533615635725782794700931091247648059899332972602719089358470029471102399867975214528413360368437353249101166496811951002523268415293796979179993684333128532399729834809432845300960097156242494527216303103863845389392461125139409044377885008936948971872362670062282615319629070337118157816864097518453833783431666216604172577643194689860211716652992722134055009765791824787961694064993260121114424059041751946950155811511800186091678895744874113635721132843721746636739389049125356273697248986305951005514627588725695825867623060878873833539989289470488278894071963042509745144850168115983864958557942978024268468026623212467963712587827919242027013560933199363926195041168464993040931964013805719085356484040354251075603224160167616556032767319418039227289890974370498427925370416434166091771341539987780039838227428417521033299250576489777834104283227947030751759779557964121183589848979780463304840722439327098160724190096328942133554956170752679897351161238219689613156246874722143417535431441906298605293085287083299080955683833705230100884600036213290564878882767880249960753633303297481451130016561912339357516153520959663352700718141027332545819019635283478685563191293990137229759236868678779426323689929153761913730716282288152404017094734191969807850886700764434952079128641319631014564875080736885514827412011967487485434555009519836625044463422195968173014237274883591914464083543381120336820803992131587434933946171930792407312859399933381446500210902066255734463952263568688702202459858732156246498609378286490115915430074033894289055714787813301204542375419517256164603622663328529421480612259445616602370742016512512200134268275570466935876955447101153924478633763527847000288480105280520208375638487613410590187600268018465059201051652809582087002109167836666279944010671914350823560942280518507056889889444107310113747233724345494235409727904875659013022227748186418780763497571322669380630634767907071289615304744334051206774994911088949795144149199724269021221193253516064987119565583682135311940105868421226797406644579015054047427260335969569588783040093884126378905262519638638432187281460959552179954086633176271709534069760233251975292523305338602635157373988946282584967348141875403346621324766634324966950304070236930898977588136591746359130875664360862549595819672434278159807570865279008452617173534389459729246923135292746124531348797245606318442777361020861547272306112888382622902150971258265926427761335213690511521616023531709019699179000641614256340041512237769801709435455062143319330984964150939282677743651718419670405448589157900959218922357058756116704159848652425962061293018674528384442285899644352212832922205213935269355012956237766735709973600063435457719497826556524733087279436051455203719467303881906765213816343921806477004824760570334423485313932949317613950601539314128986777353319327249489174849553783338781577666558589664180448386076049705047356023908874604002867191553641628355685378623123837324115827455877800175634432906041512141721928112684658117613296257711686966296445783925828585979082717267319052957140072816581104127985040345400467343029778593590361514840065761693457712769692581767992055751804863662944198451473443717680263936558322589596919785511509316194782128309456986578699534201686336316325584083497499944375613583148312554676351862054625227824351602064519737986547101721029530260389337888031807275423095582042772779026851757434846067205045417517076907103106384732990265246904331147692739764559976943778476049324093166791036202005034944739275153780082738999557579248287774525365111704091846853873760182175238882746391224061650048166007267312870639182525209142970623107751703917092031509707136561292099623365202110077652919552803789479832208325201903444504539732944281639828088488782692206962733198619249563110902957536987430833669215146697365630816207392465146317586981707919014183094467992234654491261229837676718054526837687578600201845653020164969981481201787212302268823901466387935959947692578541218129304398187415357893168777032577017223081675913312718637332364345166821094715095716760291953192957825427203286754064202717847778661704522177220639545096831561882959265882398181185423629958051484197919563524575071848878722986886742367230417488585719955255476039981516185237723487694110804707031941757600139872955281359714649548847564553633784787845589467191873299783124940441517438015020897167801150880373286940127131140672611537980872157759616377211059333827282584242612347340102984669011202600561772768632224065057648938995252456115931647265177652151001149207153401139344310328340274767995348255140382329270420816310008497876501742953581886380255772277051243821235399024543287874220790174232283597576989503778875983204700520885774547940773208497115053463188917497895725646349723035122211219232247194602192495710369461930416487122198533683450900645280586208656757759385153416273922678475002505450051050964615857712315588268956868315763686972410407797329591569993314925809873438417246555665695866125932963558371807231361177686841656057535764245882866542543158306975408810654017223672653942553653167489377890396583712182116771720873524281499795988316464967388339102400950687608177802244871899943196458446801489471253074470263472135669660304875303963868840834001971552666765568144880128679159931734727920990029798471497373084349539546288614487563207281825746419851161220560336337494694476212099788415922979328432613831714100095765597926393135982886602765235820985712173061468150458386630151192397100722519228285289094235566672247728083192776904519555482040584106292094733943487212610765793173313375159879351577841680784674588764307144396672454758389860411219553192381844735220484666304269580266947866107790847380771646604343528349249997968608064296092783040429536036330207175414046697215125983222911062946400184749906345943899051436689926238586381185411484213191486477392809026748749051604778365286585433139078445609805567522644543700060186741309131674212835440383522385433066709214309325421256382090228196334257985727907278927360311617842811711368274810037995862795795164411320948234614594653167095687495729220104046977328912705522407994533395223059578616281379591720490956556166385430848377584037561095583860979621795723797617217325026631667791590522525658855111307691867397458070543773361347844157787321318089015432617291998657371532723325223967251166196610048144543173379502309643400064099328136765939127212181602540868630183695202440658558074947097880615834386611162676329569883864810312908392539182142824421234704912720844537960129390454931843754124563860482395028548313761037280487421102114062545900851967862108033318233325799192462636102346761139118736449991393068181911297296657109172016855537639319580327218721574740335005213601544736341072005124050043980581858346923143181857579114679432186559650120409244512114787664648458884161464662184151469590192900893707412180788424372550084372692162820166000562067675951708539964730899656726549023398338202823630235853626765595099524360545250677390171188131216521981802531823487449577401400417306223950339273874993339750924510057071267094074884403467131210326922838406772644411479819397652942542596864261720248679761911328350640394559135679827346525139895416839871577601208060001553584995088065490157542953672984352811041958786084157859064337680982673342371238325301286900022428811433094844160317783661377991393337651627569717991604441417606349654954721274708904394083923766394304602518230873777055078794997262214287435222093710464307281393126743760248293373265116382977600968376319654231679550153805271017522737156932520338715028389763591251068896138784517472333792179092846524431993983365082932558857144671793363555816648060929521854018243554571535453483415683335158472234326701043245661340378074851089377609833371183723251394100880970265759811845747917854056544251732820260527161086178938651649177610964482693160354502952968410058010583733201057110790866571725676981606922959950983674160990262290689043425972729299229027676004752373192940494117434768242815734316448814080893839340784682500480559697712408165957663012295000819892768444390368261467954279727272768151610352363326039137014860250150927876719709492697210617682690800818533706900572500188652020469165675602969968195178906671377211888357821052197983907979058441077416604455073334719439098073408602882380375637223564598283964763780683092297789432004210716326889967647571608872881012033712364826471951908541006715140381244382144985217524164249471692449178666569272500605812986048452457945322937985589805839571616107555776318660044193744930424517889849781230581021804357574977713630581564054047000967744263947984616028754544428192434906380194325354176775584150123816704727008553346384837318175531004001775739257625988358940050329368471848564007033884464311250375301328237988673843708857428005350546427336264880549751383217551978850551915320404177035774231584006160525413846679800637461774942115834945871349529165870384308380901396488301756072346066455838930465468530366196541962564541802314894761490479177165872255097421673046023973792486343103206044649038068340719549987122271646152762390907578486986442240879213775292192544965754362206920581523249387793775534770574556624441806986274686140614409539287250234961696513108488463463585692125610016534388459747159577722063356375721357527747143190377314507334317646768175730668885004110444262107408026760510208144285453795700475547235076549072966562712761033639841624490470168771127745788168926780360768254644699186835931961685354585714748903201201006289879336514604887448068979059974406781560193549252151942309241894232961688843711813478266663271472934644674488912307064839752907288121249511838423051131806325237925449025739255837120549238773525533399310114740575789805659481934265551517940835714695714449418323499661483089333642761528360534975585057312889975448033869409877373006588652746018390165505489507457618434793303313705923247536596625394233774584703434667732813435382332985811352001677297617989049989587545776066641053449294797389327526515436722082224954593500554366721194503305327986669267209349873899828075904737498276512727870685881678107765774809816487735287878991779561665252898348068966035190572833531943010300648087139684410089276255646236113149396128163082819723003404172399793637650203421386892996481219027150936743854919601047349132589387224393505469981314388664906973688027185501453250760481555681174985718599854656040236932057977949570399549928182997323397510180096533948405555742962704500727560085237020072414605376329898592576729751639190710667346511093232941523528672452446359771114726409430109775037796527140098102953111839419217345254769704240763752845780598515700598831278660888464899587157961809386881251626206645200440686761958907627572611135593365503983830473890547346487428776262236754271252776895356875619848321638338020897299253361440408936823560864419132783004256439646675339492973709193785184457842429699826907849063932951477450318533377874234881079538806730358793959241360468595260672711721122517395711866714758829331567448364982699575340313347295592895194088165506857808639605085171252367645676709249034685643422717005988287812582340283628221100923043609013150608393167099982989172888116540263344282001392204937445485600091273070423134937372588793780226944799792651474079110571470372758455566473603210435746975454233493330898700301438865878966461227617751164865894335150058559609774656958215097138245464032628847207066356230103952762562466339996577667354104940423086862316371369173731128132299165827074017377249942088408344977628990382412590125647939012299647827513832175314699489404101164758210217454960354483007186704256167030170830135787630790175272040344831617656752234921720919374891156420378903352237239182697743691250475844106939349696253829371072555197315519408744011395726117318444922177221662088563041855582187479490432342941306887570377382710666173542617787157203246164989916331672580416713013398599484339424737040173907595082886618662927956629653538091456818473710575619440091729862830316305459977682489192586683404292976381151456210462496264991514016029926716063805751947278162517790956845497594745278507257547050151168169889029894917485209995212116687810586505029691759008432130980708037305804234039861896465739115056594221991830471224328145304138412538463415804178443902135089297824215338051792698253040239989757578082876886133040539694299286980374880936168070289259478784175552952980777108343674299982034097793021809705746790242551472961911206886560775132699551089654929929665783300122766909412868832443945990335077654277573992105275039459570516987362333557631241986182171363504207666863928068153381681931765906924578651247820768324065873489362353026810560552691846228697015858219610963703276938013409625447282233442836148401750761244496192540646797807009323357528012254239786545050379559523925637937760901291147184336123331074786260734664109345728379023249198417022090297984648133716703807377530251598636135755006313455907945971610457574177077061386332668967946769005429390419830669688952415514321127158346277448088278954389051521409776248459906009024712997001972979918943634283429867788929459292637598069117922392483333282347539751945037511659398289401947498277506387137021906877259129520267132011895514035804588534363956847087322559582136352745286208125642823492125013030356463887570032432961286828520388015778405229450012203726537848916145674388607407551411667048886020448225082276092230291772314364894960486516591520003901277808383746651067315658805558062097849250610269265521766174987196734682407081086244444349277792057304502786767311760915224787911371086549716919417232813464355439538993237966782165269118630543682471626035481414252918136964444955929209172168708974392855453633477690225669163381977720723841569211711150102316999742102461960036767400536944951234445509588257080758342026485481835781328664690270088627572335695121276400313754020240268721209024509940451318151022525750615862638135016093937847957926389154697197386879686241844688799846609518431185859997310612036184249051712435297329459428830281480210212869487117151734470990432669330478997322979029471750701958321947195965856637272443553896840827839176687060656117654901987623202323595996101657047515328522914651268697588794131123496505998942100894439812344208865768047204039178752063607434825028659635192708090763122418461877955711086485023779989810969900511792216525238815150019720920942257644915270250601275674195074129048517591539692800668108583322250538588531868514149476292508413730139297744689885929834740266358963018031110732595172409739332457054128419058949187460410997737673111914397504380426481582455400877952030846384213598505010704459246822343629168437843808689096811772555401161391695193286746217949681405508742499280789399149207918548905224191987018750096566357006854519890924645659649314108761020612598778667569078550350412368613139034378786726433479491575912676157618417255198193972032750402210357451801031947504865625764122982121568017972206900298038552333198570811298508675855405583336278585404149967990209500583789959304085756676502061862633165053018414206070095447786365332579974528229289336046796011237068192143938915537670001430306079665721287923455223969684771967312175513662033800017141860493034840881558009066880141918051472892851282782812974614856520768657015030026302292676793047400897672334065116717436793961798241671929815702109355301255020799795341137985889390000789173539907439728249233388932344010082393429278492267890501044178370383788090083604431818820854374046325686503992884569665613241847356203671309499654578052583244668516238773409338467757016749751177992930646725515568297601653610261842565998235937668527771279556330287743749967278465963238880441079534367819810104222306837208355164949671586364633146078899123178217156165223045634128555657779237656259175603176890154569408833486717759194617501982119952429286951780834568955912271115714245349589990252776424397149593369608408903506156439127356540108622786538287376305152209962430579672683668870541123508472398709153901238654345079369173331919174586208378150009266207823716012961882019485043921975706259389582800339698175752576998222694448161723637639607510454148637668222922894912871305145074806341176658242229914688505400762693675409131165398521790087567313445574432066907904094038424669536536194908092522023213326915224187402398519920313288915073414342735942696327635025812479596165368698961567187238245048675673678604527025940651706470311364382848397894427185361925384120801480848332312549932169261638810341270063112699950063886434127695733175981087955920204265032568009218989256150053793785116678375951964145735051496969202145868655656486707337360637482291379308897269281239905483442482424953272254530140582693134523670582442140718053613327292015409226052363950009795940834433811326470750771509153028927885942722808465799688161383847215969288643594821787895745304106004249114195885939716837592419808080959595096983580358691224106116218954500859721981264049481597532277427395394233393366346854974876654016714379358803225116861364171761062321844537606663247629015585064347499416849385514455329713424166706711018824288396911644644012956449937780025929414972834174643526210177004026777452468117649346106772663693773069645429888624573943391550775028801881311020684154540110197353129947191134290632943135794958811970211006926414889695359847275643645841160591572600492817438806423173257116770840064881691041739098112594707968271167445351516807374025029371064842212078164053876840939186956449750245377082979395167845431213804066062009097294958727110982627058810910875783635671286960396738401712493509401590596404431911391443895974897222479591714045546184712130301799931165395579396963483655123667754741476272635994098286690510470371081363854045623948925534876858384276270524972398041545478768325168945578433049657587893910517778770809298181740865965157830972215551322553170632034885040505440649847293383759154320216347028829394100484921272743045697795435014958295650178519067421838986655815222987329351825871912487321185932966561463434687828713330781427426430259081658226014005535375193514302808210271416295551594016182956009195048471111914931800053201339234483662649990293754362466869289157554155957354718727104620350844661728188730454713839956680049482448622520528388358421067370937925988262103635359213729433772889743170331397548687303729249618898864132523513737752941095539011340545495679187914644436977403674830348046930261788383495101270695634791594920342486907562260146096849375091434864137981103231463428834558427545916381024569437077524797512960947189773717483380336212922795667942076674516977861033579084951749358482772915122434285235537734026060548437875099773809252404090672612781089259190214273731873795597844012836677481409463297571630387034656615958993943241210979986830275345220907111102461167314111775200129043113397888768572727891187053134754517078350163779641091185192233015995167681950846748117850957205829588053092505321528197741995948324778163669473148052876518942366869346921533332877300107807547885955512333201584419279074517506204268786522621019830356444049785319970295131697307018921324475273819057944659401947557228903054732857202701042039590299445095806886112249905328529264055532766651728291845316920503806246257819527681460495042977529517100859922945776295645492764496454402301456602446831334408576984841074236259710539993403492408032953168457634269827613699018492760427010080312900641565864771957702092947813896295910869536025905871158475821736251177195849694812122396268619690195023346201522374428170511507887756968708119140169215279929413761607715860780707690378513297736719065891075352705849035584111929950023031587324721213926547505636128281368135818531887626669973982732388103022374304283628920837135732142155629892189627698687172339968897342217249051008928613812475604344945999610065597972666706847523754209632275655387403767062263908269711744614022093724746932942640069491333061329380279020821111846680793340505070947628431171272931672293255299283924443105100689652377814168793840126270174084425503029173100660787322564689478178790365551751950974001384493470307220565922441506211227043578523765262741525222259441651728515736990783170266932478079974185033179024075783584479013940260075674740063295402107635948412232597204093993335973014777050628986585961352460168862883373432134601048683860394369918749872407075019503966472824990526423850949845589027415815197629971222667275945556725874091463373958786544501180281248375635444153018923633593515410437016287315452518413903943879718430991065520144142620267663901366423678739379122214496944889735982560114383405309456703951839694100661278997222760218678999736311818262664810321086218616218437369564720935824007175334361023070943716710913292443374508934061425876555799578825879478486203154369279454966289362017659209091988372765346309976063338799984476457771854739285131862986158317047864202843384202405718121086393980940917134492852128601473942683636152961089824612215375654222074889739755216013968158734554048688542973908906049304862774787939962613442972204130377213826568823710607195588306065426887727887781350600500024857049064199891155131361921651412806443257297174651217876933140475940796542068984928562274696185914897937672275791597592595059497033181456125505020561352438252159059289524506625709712438108463797879472802377104981065989731808365899265309812043387088232341679298850760993737644537995402172180768638091710129617642528478633715494126397465532539172476170774659572562297167144494008102112940467896029808635369672438536725637641200934184276377793212062912883515715413831083499770768764706132896533014423772005948652951467328574863048801097112109526064533928006682056005550483543539332517588446362273164552831846838833919689999976374796056025852913613338295739590472789478135902647357418209258683300961661179426824785543919090085552019454669052204511584660191545590807527782290546627830049598698471276221123096397836903134250732014112082664748590498378991988657554039128397563861362162785513624351751050220873715810129138862498640869323521889718644358470930165152859160192646502473458249964714146628263868705969638519038427399264104794198821637834016143491764323029648121826060415668521613437257424137392442147694390837148067670763334292314783454717477023248046245651363670580353553689928515904238961426966415291455161902337914514226507642348596905631634447318369284318728904179934249560282635517775029039933335865350561318914630467086852822048319635064605693503614689959981668215906533905731455872520983258644777878915092321588997868367157359758960658453586940498284729457739605877813487979270862259843050359372075131727373595576672942471344689131589704405146947735833381936292921057053947255247687687576547844115449149414863122988241842973905959506598881167986717060530525967653012337672336295182419023724964118823713641357834247724659776240056696299899608222015579104235382442054133900060689153162775674009063218011244803762374001699406078589004343183233211418516112456366421089391240552592108140732095278028755347856358302705485393738836432265742138510360590274449064043037360113120479944974626251299606099628784116451122688349226724591263904608227062428966320784480833254959961389993269548581943179500534843312453870950873347894096924106740762739825823890192576861349119565776765173043720358159453696051709753198931787726968872146213930653409117586717625708104040254831478142766725553631904668791170304220591297171441001667338484842326968405829183299643351883612149003428936855087388584363568777330242493033408031342571349323971825398847610525621696137002906676172376994152616159219990319850424462056991561881117030438108620316190823286045828538727280873286939856481100776056841844100728200755945657836133963615666856324831309593407622908293279797795662611786296828339351221210661252104019406306014300250942089250707593979962537787023534412693675773580289092637125204140188465844893068981956051869009158296553767034716375743852142352004932132284646305080796871843704183120886354967875193627772029639841969360286373200465888337854697906913664138168728879278987545481327936815214099108569829207391340070224212818467206184577214998128362281721640473930712006791281233647486225283589691624168373128479704872925007840779017179644920725117527890041390484752781531457195583093397475211089896063798146226429218483835296967718474907009484258508388825877728585309090601072022740844860353013196207369019474582277379493705437338352621149604521320533432191319455837462345705739485973143659962170861104550188429093548494685891002369155998430368041681105747383690921619051411225734632736478745115966134126135701253465215601129673027510850973161722458432890310661464100278946216867556481618058709395189981960139844227122303828274468613135045740450917809170326502713050099214292315692588213548908940406247432169414078591421388579274089350660342051712623238736310463272331143171822101683182124328746288176373502648153324739135686755777244595574148914479143954297767391632175140131575420572289275550284408254609045002738900589100240064693798565151890473505843989309593327965146729434809432253415843098674594432012727633657865264981933895841997728735192092931139835558475870781061056251959770717080104101136652363922942237316002002547323258073554507960280153858548683378678941630518397525194899880701389896522467245413094847236992451889147130779597658303764706783158832796864620029378038194907198054831130531800942380718099133862241315310433998399771601106337294228909147027469472520939388663112806407453786600815522280100215065488279982615427858262999115516191659197223849461889345860229276914811242420163596452523954759588922048122281424561867499911497590140990784586456561843580228805406734267842796973981471594000300789288738933708273285211311361741353779067935392138382322032068948381570103287506150237111804485562836127276498093086324634904159820808770133158233662212492275659047500870802896522056273070418337041057153202048426982542776500402733979344783943737428937219754513377392545296307749382572740887227502897909460983882192589549846517129067516997298119115252477485922863467176339431078112103438730485360095912096689927776404619956008318568130018953894308986171591429240076275934180565015322355090473011379225921532298340375271921711720173712868500111465257106956178099368504377039542878568016629538955469659791542823919110360512270986756615127041027420006948050979697866316831440486764405054902429068483201719151535921876902790794639887612510955641338218335121258296179340705128089014603379050432333962076901844136169005702821093703981769890011704015329059969277873310207622276793567843495238055900877920608528719007970926171648993030984501246582055670622454681588654370834990845059583743313079147293766829231796783380697692210212130188195559487039368563676048606856439557796076691673892366989718404639251597707106882264607031855647008408780062422323104173682962472149698557324388204660941494657850375047219706113446979251765932072572376443051218435663454387211175209529086134093192651312884841586109122837352326036794864850139876270750110272618229004762812058776483703132731694988714118506472732065885678786719141530202217177208671011790152310256173362122945775458298712100473108088215531316178128002263141600503075610560722769463531755439348812196367625211279208987667232531609109887637937433275937104553777359161691716499160045077423870134463683202736415851461089640228159252669894252771269072505360694384155657594683769650316135034657251991480493780620219604422553887234586487164198665321019078532010708824083236842578406110759526325368969650306249661520267260326470712486863844523258466038017006023638564786712992127735606469772260480860172817630172340535822108273200505725859673115395628123832584341442967531225317437436359993729469385199663188614496623169219322853891571209362014031112591748301591511118306302545411857635130296284131152646591200931494547549536174629273491898238808132426828691305127368390442150633658235277868258874293434042083453129699779182386196705680553194075654864031570029803895498248533375281517502693584302266142604530891869213821986767512622678448373492926095207527176768173402206795525326134719955557802755214832657001107509764558874009548419006956190169159990245197662230510984089622322512403794693129249314375507723885081277134258749932307213253831522485037355696882505275200084831760994896521449700072097889945272226036647545432630595549856495312075633190187595791846512450748121428999036816083824018187087509591111278752364499254983169547183871554584858051867410260387020398264526454830086770919684747897352456242925592830262417457724183323775196092889863292694667837223436058918046259409227699236196114035460652550714966550117936031099215390153714976543116251979509265837364172296030006635022974531197499416621895053693575504616876626389800034972186935841720772591873997069738532739917299457339395298057278176933401394746790565250996649207628248547321408089961515634550804500640303577271725198469201472482686183842915739143909355536631092230756638406968695024250684508058102730238560279607040793051591368012783408239340291332747218506273065115961206310613647034549698615137940142535744721431307239781020718514878605532752793027607866702685348235948936973730632378252483992286629827381419709973869596606684339168504151563145287844087454544483694400023006984289848756870326025725094681893358736250779339058672188171237324541923764579178275944976404372168001442149993910676881452243809737194730231409956306036197223212435882165577371806338797064338753985938967291107463649882694190206776009303518963078398781010885715334876708646288953401046661841398300012384284379534875057563352660290046281977337310801377878467481995371754986967102686478045723895119668545851535822533603102492153857786903114890957910977140659241310682658163339246035792670612085785071362341436574198334822305858470649495000177401678134502852166462565694828400900156814905240491812784529273951232152082745839586971118495747647581602904506118512379695410600902393372425561547637283542924393189389611038965526476759337247045411957275318751665025830774047289262836701067477486777245359431888928675563842712103635286206898672362754248172661165461209355362840171340669966881278315934952285661925999826219928406334670307254901138909076916450573944704277908416316175896011955967720665694734783389242154688127747408360300941399878718364547365127367811584620031914377204653317848410157677861556146586492660713712366438411101915126703321547346935463713316685061215404200473732875057130276827458664893906345244520275592467771140401377116198769186079233939958745686093785140130085678377709570317875653307950315055465566297632249795949790755014321009466339313131992939104321969646164711185822512070610060901560331587426031003282114943719770911773369862725378775779251409239039836517999395166056359478600097443407405712873917551191897096604235209202165951885086777169249833132924760431264770990999340720649319041392449586104023890360045213008920140313128654347487622853690702424481338269953412124933655988511813494814177016155190922981119002510812157512232077913977837978706617852646578538488474702827291811556125660880303753830996776082159269734244578019180648544967495288081454905995954852702032832673010425931378560927392354078594307232796293209510571750321905733522453526849880725290013942223134837448661260748176621655288469298370519431416915759676180894917979383152459004242368892772659969797366124719089234133883440536667503773525129541349686507536347008376566150414765263841610942334315466534557189160409773350802018640393666754878794145137143386938210401565370204392675444823853205404705669422431053896021403215553137918587624087121463506721642303765405112404447969842380095509716002741810128028414388799531598821558340867523060742334952262208907175056489561204960969362684744325893513297242235083729457467716624916899226362480257973649675591396734244754071927789204187947683968402803030308786151776213645246437873067170743102991563236651657752641477174697193105672646429765363610345441073395523222294083450342406781752711374419587268454292458870520704339712385207016948474001392760682733969937503038374317444803192339607912088565373917633181289467012781352632460070398358400931278311890832732442906276999609725348951535658811111484721117965414055653953239424572022494535131660336565899574190361776469027511753918139896819491357662404103409404216756589926922525187057609672233564284736740991602682636313284832561779423136742488365333683306419156914877680141821194336181763327156032091487447434749178736709429459966727346191601107267813218171485191631157042377680424023717207428082835910106259419023453854689923689345249192041429273649434431209431461185008054226248403403764100571778918121841470617180568005407803198668001729114039275036019351467754785886831028215013759127020925836760308306651071355232082207224289557866727727422802192468988213437994555877845853668587999187221866342304765725053504419052816240532606328824136670486508338471624631641635952209009746778321585468953855271031366245038129792303064357517574582062974399026312328883391430274091968859969704867332592244900054480418220685078669701390427176499019315790763603126131069034071285558291934365055111758219470470840265329312572842056161845028182607920110436775458016434735956361454184451642498903005468004930160451409514832487780599680082859888157441468585244530710255188404299590583014311895546615710225108495947267067158408247886982868444523777978371613295834032121438383404544420273973242130178327501399030683217425929873596657044551128156315643735779983034928145164717833870640810528962367167742987574870688646841210171068537688436313399417983007415633248281563303309786580650154482548456536845368765218288846423347443712774535255185881224200533830129040277104832674848149044161588852523513604323975866372372920900361544632980940892518407659780092912293334506538462234122026437574757838130421754346940266279987842194244417451463766137384291815755242756226003829202313767812264403141497729103350864371943123766806002696208261570903885647662678840030468900989639528767220648155570586597500652294498910573669819477458331433171864848242621388054989592566830814146315872546165498816444870403302717054139653501873978350389749409761591552667837211486116949924508798563129497661933882753081514750897327515908756690033155827318071507860950109324854216696110614451046662099119176508708346772253719898045045069496668878822281615309145613381424310039514804203707633623541504234680779230363891526229733561330561902425620345406454283198498510188540282442341566971790120340837183345434953697133210812702203182751133618717410344004646027393299272819968048974842875023309610089486235182624575502675624135827068778100979066466973424998885750042137762411646856785354276876049209634721217960902992529951063181930826701731966127869300629427343337461419530927876450780490204838982258497185156169795223008829179193382023803632475712351382708208985308817933113387500966738453249028949713344287164753880878554209190027016323233534485354245344772595258469841435759024640102321614692870820769934415149422035863375290964263264773478458458249079799442218812026922884957873001943432080043597275599809058523173563943078178122684318793056645186330453879730480350735887843035148742314569428386015825649080046017627971064017931955388717174524260999867109167561065569573894923325985563592151836400970222625620400488012487033978453280702332601693009511688391256261417771937519197590966405827432641524754764130305471539879234940315247956656344470900904312921853131534039406595706852977900043607871197184866534200075276331106371053095778471570998743838018352395896970322873990428340561464733180874503858752026206298773553549448612125317654720547674702943691473386819083516225823314701578337050489409322990272294088359160531394458739575518129600031113686922851849603223878945523026254571445906279091682330914992618770959651121730511715509802158089898479931541638345590485728556671863683103500890043274171534923298361758880755000053614001752424780700274791068405964195107031771473020768453769278122643773292857430604373724884551262287137755395340684636686685211801554058706042144979734547416634281159892686362319456536024432830345642840937602736975290021449324625586121796391009800243765832667434758746998169159415384779742610274043165494151201779067732228687330948918424993066748829898395629137072235619690076541555717814947572330455020392178864012564891631568240366489915883735782873066650607533684540639116965047411584079180049753515377696546933380748220268039716664500564515145667746597438832056272254690187160071066776860718596650246617207763571250549965492261685622091155728070014021937087842846604151592729710289138795594893153973596453364358925639036069127125451617128653517622230035674991178074934134907388161895232975501986867598768571672833680861267620570979113363010079711490909094133220418104062540419527327930849940887237844736587050191049324054224399738751163835631010529181314632200864802008464501820526082131369957982985437463941207488823590242075815841138075687733569980501277274002739677525467807442815012707555635075460404465473686574786815325068001527346894496290958929301170092622453829296892867981352199305469894016059141124212914817865845716948987502322439193649401442934218473214654718391401448869822625487983120868788994906484331541334446037935088319364611673886496896397389997807426603860356267608841912376010949109467895583674155056493863358415091435772985957588281738669108889652687344923600988973256673154292242577498663409550193092968103494158469870261504943979720922214090736382686816424100322723015444256053260449778306055636477690207836886998759711717907230661478482474338164940395789769418859227194484923007859540498563754480456460020147613140357364206460978946616765846636144105048908685677650175730002704601966235749431344443415489055236506173361232348931461276280356382629388612698817852567536699495506511109685708178970257195677180201471290410467225347504858528341131176612670653791113649700307738295778402890793782303036041344611868728891592030881256594477135655435070022283473171224172978878463498673533080538159625688968390832433993783179744704130728781291089356605331152355615614758721963569571587889431859742740103288919963994919836448123176164118213443569031831387819980298015259662721873887153076989153915856108833330592847086451705662565859887769841619513388062456865237185615567401109346200481245748859186601432283050708365147103157525530077897014488339266351247969824408055220496198047136369718303932816846196723047307887024984240768896998357538956563723396644629732456127752097292421553814650827852686170109195704261969260368081003205811659740552071940850114781658203457052633653183056930146913409348739033100851378808672338702326814745999661943196386944844702797644223176736360309629651392578135937250658243024594037127456438709027244870285438979644400334649345490329480608333630220052615403582913411398194039544433907635910726634751012219722356520229130349713505790388815919594333969878213078201221622899013826619285169454660880037599236413832219562236702126941815697581259477974658155412488400091438749169195649167803206236557524961825475248280217901620731758949246979070389337839087399047599892452793342332354067964271969019769142440795139399643415670172431273998389122845466779598788502557800783132783302866610026198639703698226090154201709938768428505979437020835190250674316901058341546567851732241341417142558265200902602745711136264055525359447036728994114870854008192757765197396301285270129771067230224498002900180752171603802614607549082089163626526854356856067723971036335258112913344767570579802036028731168623965621074856405190471446675377414139133116817054667563799321287963384274178783401952814346908053293172886735783625527169246676527822334283247003860300680818613536781302971265664357106623004849888048438606674734573686626453705928320381290956940220285519295610329976337756905915116657044705109474794240264853452689930449074276085544529811205161842296909956571990181790972162516306063962796126876909867561425268515267247111624237713539880789208083218648363711185504221537872019078505828346682001532401469595142981241258602529096349606573165345499291696703353751216017713305596684346699080096269646380517184971068636255606486583883799441426480494043056523231549284519115897194408526453235427189302474523237317127796559056307761944386185307837352535094748881325400630502141157121113847920436011002567014216860124057226378202976020610873963162818207568589872687846816826869725066200710301870955931318804812151761150222676237319845618029433208664962342426949336978856687052709933538054555422214164212001371499459478773574092708468064222012436337326367334420833899792132353131019631748648983155271208439833813029414566365654963447479930365873126881171702527349008841131577554066810739082003370556065767135379193699109491462010641295103513723565813750086492252874593972504365624678258612103591784091582321306882267249437551177418606815667604474929159810716788217495160735201132044545144552289093167700471296758123734915005340592082529004438245080704651709136119348525693380927996316460724347875112339930793803047159764331820018158913733518584350555656026222404170607055483492409745984603973528153842011914257368061298956707175353120069459043365288018692422918446205669465585396570231696232800197264173378396839915519137194166465996936079932196094817492833022632777508305610767203704360651144493007463495281140533754095857353241402987129735142153590895200960308686436205619560087100045286620739374088099697959947965252718323603985438611825396344453304083442320907595596983342768292525877236301068751675621953741046080878497123306294443835381031915299066373844912962861188967776792301062241809440081115029035787197370219021952205751333265984036209804788192746759215165202768386967492638256522519371573768557737090066853014107515703502172860011114289223842151030806172980531222367447501379077324598774110043282358745008078687908191064233418989208236083522107928195741475162206292533957431145064739874457137166467476570448397940689525157278198249153099256055857677726384369809722402033743764484111677664271220409089703214126951235756716518412925343109036719255555858253405467850378294778308830101880910108901072609915461275737791615344761985403455705180270734041311797251363122117307375113701143342770036167348271784453513309715048465902503333276998694059347675518457289275335262497006201796502030548699355407613680839694196779532616687381244155100077002959079298840838368258096657630024643107225226592602655926597453849987953847137154426360183934388694404278740829590495978201957186416609506098773129520154255392385085469467307565174757176578371962122907663925995006363604566225024567615456705048618940704703275107652354881677916250493100238818453891816256853975178516748005836400593782170100659644712672384704228591464507681978874659000248773143668650806795047306478877663196372490819524684615882693981497163519332198958148413867410568888902135934392986417550582009957336714078589413840605322810289161974465439792988660280945693177681203895370307518414159028297749122374208426892070421746745430916050887316200478706746281185657806509521206291372370560377793522108761915173797531376080174472010313650242552958305247173622172651498652371297543525340053057471667817000235789321658449314557635220373052827986015287219756300897092957741501984218135089226304479650565527416149887308712030741402458532873636223230636075794124029041086406001922972196125503094873991691742047201970508199968391032572529485841296819979112426245434830254291177897330103935469935194588185536141773500875465453733816880787433596151502055567865733156650103215234861710422169924225445744636688882196931392565319620136841926426163293573565246677292674213057235652918427250164953528207469540003995854943173038785480844193181590087469274528275144559376930710916565013036269064282722432732059302089047689745950509354608359363944714894857730943776552889873393460032954923021951080232490972660233674089714457316843523522305690869177534355753171633895503905960873454690749725678435679326728698263226887750377527021011579531073097745027591234494639928521398382916264685624360975916682057057444041901625882229242566323370637519721121760881356113811736747808918258002555496795813833150165096504408693107652616337927119361350893452698152933314998622742390833751785552150722112374796676498048824613015301989718868822498363092920203286358734481897621708868519468121425304707681390512366613055813498625580226952560178266091862257260681089571302500917728901678550367884202672183867065061659384155042481457219794177502656750028033495273157200790437619441492670139520456320473486882195532867944476726090026405017578900794380882950846006977910868843216274470931578747432898295237616592411021539228124974981176848953815395937056655121914863686874327735935419922283604695598402599602146244167022180398967386514786330523514042077876976422342363373545878044451808721541591839580888726091237818280270414139318970987257359178348941316305232715590431720208537630216378215120942425564672442316123692159065488870660510699475845756917124937320817551254974465117125140275025295544617820365193450987611518686556070390604306732894831014431021937693706689440838355009513944976741347810349762099990311668602845771007460752082633854866338834852064207206563130883606373885396149167528888336242257436070173930093072610861519150765180758830603691612966569479744924958736977435854102085645589236417740652231670186259018892976964025874694398898724548970149416012723378341831854855272389800175280165467435972677812581028069717177452635724006919223909542000593267974123169932154644596318032359765568168726310623687382212610439022828466108957331316657300392080115825001550923733077708023548841243421400786179199904932404906497000622511935524611120612816633678203194440846107621928685132387322807517805138767509028837123565281809069712716980282271155226690638455528543173457444194753427021494864571851780881338837889870037369196614690208124100642954980049709525954328950443904474990076539765850475748905689454359398619146387315821316947129041841937913242015544222553988210358069560464387546060928948284640470010206539512429429899745088420991197866192484983219217824482999090629574403034752560077243227469980522847442453130433479750619085416475401471973659466328755771116474349232288168714371858309279117024295698334872405316720614356413403276964824701668643166403532746174228449856988420928683470933591653591768927237191646520541830631640631406757242351880673615036310174314286120699047884768814826543240920813993386036645727113492678663387620183093721028852550082208303482841610727342080693280247070405011078944967856458983265638581390602160742277802884662813473640810787035564185804760470715474948645685803069790709676928297666771722354793858125381914798157018496638584454198502342881159190058034607766535189415231420342103630241723604610944586941583564880197907039580044999236560739048984518557846793416007282014229450141903865453227560952147564575548091273793653483588282505466776058067521780608672468429489991418162448826147570837871062349026854758074768904117416024368029670394046997442480106075713790163238646615501245199412764478096926692571748240626646058194482277355143185426010182050437963071323044389758353273309004813313298128047124899052820285812816694689976679397751125865644384374414799663608190982207692256007439161408405675690738535101698106034792963403077858393703118839953811752684889502500342418041709284008666290984749397050593461194690462247645787641069967488352199440716571747026087834056053395044319744472541378190825391191320529787088987194843295626184603499265339207857296741149771009517943483425404924180599564258102795040104872604583682080349588794076084848698095603170028381284500587276512642592777451896766572385460046312926116139292586704396783317152902249719772793004940905003525417074012091175052013683595797252231546072724025227942507853063210215623884608056691624494079800917530931072707592599736176492978209476114036861223282529490819378109959182258349297594365931575320773340478693022233574118067209009129868535135382452375387777284589430629582991226643539247360027428206793110201557241264114622828162611101857070649060849845576486725869205916796527550387934533995089369858646627741685583114093531871085562984801351011873496110900002264572972224443063874922636297598306567018859186013704276155442884553078264573805479391328486098611975455986336632439146738690111568588639436599474050014075968020319717764221779886272779902374153867852065932237236150030721530027693748833205565400259789663389688620196042169008055697633222842006835296668959236493600852152217123447832326018453061505402141414140480346376620532683831502270858055054594525070208989715236981181637226307373460228735862840828299807655862961608122325758541080432641677998914385975395402398839555871606251508590591669897527727091277396304114907976305597905055514348724118283675705648967426742921149886374082351319432217104353632233911006490341690715834043698508631498824564464510186101705183109622174256668182922979685297581033559376570374931516725126622585805080054291741179267324301287946937835546141375520588816833044862202026708694446483634449861244616065899637968010602428927863158645034358521884417065325850282153488481070134413905428480930333388219401592185342278456856324136222894353393929795844956396629093817824171709215333517236721051359244182808344328135060879864058231287425758291976328008121855667757828671640089174047687802089086593402830014349707249066377501069290646877653658540070122731778748249754418750366954710237998455713998946564169633726101792841195991565285958235555220826069536130745990313016149857973214502886276723839528504170001901712928643550641509902094501633051101991444643857162622445054710374989671660537448127880144997620396340581567382092215538187033937942813497980981309531019878639340666839777111869089791332590796744055310709383641867882933175900543814805843715172395346773600701803776345803694126612061243189452003639209594782373718705305803759243418849157476872421012821297990494093621024785371610393057365109232395673211220190850251102866730233115021351942231971152227965943243698369760190210628275705341817803479249143767775625913983637561767868415126734190441387581585899073564867620373789418517718517745735983020769910489944526744448128121606640494161647177815096627956099886159502572865021284829952216062115611267296499616911274299588308684409625530544398521309635184780643284341166738325614808027975704374409098646356360461162586348604462762952020015882823996382596476472169677946509771624654380504610184901780333950427971433662256161204496846986206806787210408307590123557647382036144100050623633731554778526657544043509191674316060923237080890082333736835861858460646418285843916758516726784545216804727900873087880209483533690433128622103218420545335967620390731579939571966427957682782307631163092317201921249293391728149749867303332508014874709338143568627460574472954034062378369536475418798803188263679738279356192165963136638663981416633079285822495131562649436794691261254272889941958354709368086389152169744021843638922735127371424713148841688322264724493726959086900481158064753094654792351959477238930785751738385935204586043533450756786017837922516875778214893732658201319666737421550153455645089531492973192698559690873808489522920931624194195795496354440670567034466084231452978659495178181810574085172215544762263403589410088641547071885522173661838939014639780364383401672144919364024068797972587270076845102198969284069447654508487925303478253358208545051892498272768584984468801971399042566694344781486064748798756693433433086695945596164379350969957713031656714512446875619058221184466849474288199973245864863060326954356192126960622818183284417174315730959274733386314020560534982855300165958075585861540391504651446797852512407715417390101998182202116664572202236507598164148252211993385093308072627803509316613307902618636404020011852050957137419715689263298702522958837979442880041994099387139793683492878795376290563091237514829590331600760019211878010177921778312497901894408362578965679895420494352075982396756046609761878445730858545841503532234324549437032696121438449597124481422636558143542462687507666670278694825115916271982695721260741259563235263196741988468757133991786844012637137524173046051168746196923158425210857683696612428505365982697286260263401333773286788709644677165178365182726323325926960139742992411100285626439482916152040364143119776346222467497875948986240711059109026593534856425716378449215431206868270285091062726950849045236286116207277884265631919328300304604675368162890227440805802676532112218252011429029306313196705204768914809588392891243798792335537708682659931638338197408316224638854041178094552588288869288471838378128761877560430459577768983825295172506175475411678281310357077315955875871723149153712564485576876749396279553033128116246419440370176503325725393551578488226181186669650557905464859499364852335352582835614194098089865273954576262757603870983055535225049985657575547810736527900829644735174351003590023160076163339838297025229436215974779755191272883332376587292772908067014935544330304981624197645154551145418651068594447248781111005928707696937038834073079776873635368544185909494681676971033900311284352036578827079569883795834934741999855233705693039780025485459266557762261819140904577272237754749764312871083196025006229626408901640923306700565160106439509716554119497183351161122833157034526863610070294740908965682537130425115051904594512492614756576098521881787307590364501342314553154255809650344729787085611612256658581990511620898656039292423915824341795461193288463574163683822174837692032004764010899025899707773861520274505336439090046097841380416976944670220598755625964634097067132284024206539349083043440362103942395104977855366043830635406001229474857559295524787042331376293794919617072134586358372927053631946902795481089199333210510979120893734442818122171555520176539899209439083918870506027353376746017873389442706559027889254767709783075421374281763455120205287371218244794130248233357206210694964881209623291423744102994412924464116679407634112280662397014737556417513134242961243125283235757855364949480592798280583543630771637020277883448382547671662150868112438322538296664293569342158711404801256623000985315810758842265349558909985063755224399295468348658156017682950666169286623768003665733756108935399458600052686728132725016471391620069276006792562965694829281800201423946355054444264607235422703158417462658108306465325968851241476880919808823316677680146661376080018712770238576353172343997656106665085814565326864740002630714012194869377551814046729382361245259848200117473677471693949896722587492358359807386501313543409238962713795005400102661988600521580422584030517394990122381216503453415083148085783892845116697812224605852685726289004818215813153753868533323861563232995492192546691041855799752551314399254466673215450661026870360480843109599037542580899615988110547517234658573757259044066885780370345096125700393379970123434969261486654941680370879410220830784375043790008435151284572176737297605019286811699109101779708771590267208105340373708254967010184357541404977596418253003140265104567595994826563104300219834151457469803767851506610158562324823989939954808818557344298646454908633346921926482857471048892591443372618985040052463502668398245467063482618579314320141779480042854731701812722781678518223590148533988306159825475804867094248812101477227600335236733129919403756267794328220074948227103591879175341575840658584242988193404546175897774347366815026812008267063147163392486799821286441986786816483921275154732604946535680785255573846959208174596128368882064160326587998271428114522094941156993114052776587465962398883643656676824197318899256741632828278690937921894584936461080499442415249139965606211493171013723479974697827520380937897772182178958418663627632219238498053427486386013009746319578568361328233096002443223251505728212115908549366576181702907171684912034555096024190763951411964034516368440948612449406039248990619741311835532635558239185605085150781344356713614851130054591378925611157182913903554319112071943479397659056292333881705616740571650953123399968025530826503045842499257186614551899051092200738241321462787592755372154960641845672300243420268457200605849966011536056392442909183186708841504724651003241710687650086203137575821971271901969377807569017056741777806552191703605955975088322534566686604201328198761432725937335419211401579120422102354422636552892802036726006251636998984832864937727579496504299727484969109138738863453505354698889660535172369085588716389806620533579495718511750770245608663899005060700373223319008096724613044405533592178863737041686926873458543110409075579186855406231167360413642164807039420504874735852231382340613913236364657697376081118514013256285748531373465914128604631530656730214907413577272127580951968833463913313262932007255751765430411256450492864311778564017833788363201851930948240144892815779200395768039105936346052672682405919861710573179060398782864655266361044643109941146164937181558838894198382429933326623748002349671851000571621125923960436819025165210823016869959445128728890675514804333371122846298012155117549631986741652030557566784413135988496801505433529609749746244751548716964618543635274758321565701109906958492031730000311901716413368982876891970689413041095861778498922526227436442158465675819536565543490283907038222691708915069388565406474041931208141353903290466133939565745040893172553307897506734202895202474027278220292671888210631345806571623389204056059874616361064395073423506088232418046107016908751648230015897290853588437799732648958496775957520006252646704402476111371744471154428123316692630359978324809359259321346309523980550938276720287038781453031359281261198806481174248477315561062312980637587915008384420127105284325222476157354819397265993540943081412876294472551433951733476417459382039502730965333529207749284750094886615735063015422182752591190910594134495802133745997748588649556964865306458555156545446186120399939327998523415956344415373537900906685711626016914022839929964125183883398404811217175139178713983884460099050079907720977009943324629666797985608073583659786163869866459809200643821329863270415111167147700619704688030965781257199708483448315797716429557405198278553577134934376218509632397997770223841269154243169135601421351315495585065184702932287630213486130229609865045144905558756693635121960438258020885192818867924247061541636279387957852211045003693986065247216537091756751317519624101383394031537810242117449539023230218462493669447154214708869990961814695792840351114006243667452870552233522770837235565395746776779225968520186783901683944842397169813889730180851240066077449626599878053148645138746689703271019924047912304442516485551650980925855192318130242458930086371089955167157420215161578069073913797528984030075052913476448226303778946815996733025223054309306416807655564760673070792489265179956676589816563424862013804906545331641325787979297519815733486507582995610006865201638353684655628831782316940780776455293511987396466627756909051123358021322666881321159884809003585919896948696985176810154539624769219485791259519741423743040365382265177293397783741567430995792315338720939410563971977150874315699033340086495351645030764630744242779948151626772544455425662397975565041664661362136216596789300363153616803806268790626707158124082963937830433850719150847078277728068280478106051254617975241036581825446171395759375475996973358909213964403087560952955019735382561486527720587421394610078012751118728259338972065933359950422630013579992302250328868324117713878470267475278156710280898553549049662197870832577090197635325006297909003989375772599746705588843046968340246694198279659080884289283367391311126107309458990486669227395002632730779382661508533403221430254818646159957319546763048713772216953079916513359671832189167891260528636628328946131277393984890380288274549677915781205335516325008746975346946737266914780633441046397949441834621265229353590597031111551725481046042849311023524366249451569826663753876738493532152302012401900840565164456560031560592608545702853253716965508182530012054810984868124338903639519738840597796717234340802072581083550455837997008937025445400248055996677922066169966625396566269214983441759935535524788016251419712741768091588104805160576196617396071529692801556143126827662744406086890960058084069988457579458248443399845371600693957725562882620348704485159170983384572691312155595321681598800035496990694509882442141222726036351191287124627253905491482820267822008648961295006178514567748388038572079070821873840891538569085727712968685986609931796308264213934965417910216833074801136185500849752637092889829609315246112312369706729119169198239934854078612965339114698364180776633907601544171577525637957564413551408595339105712910132865244830813004613456477140748642552794733663907212522606046217718725044447114793203455557103884158218093222142169013254915837748518229813361320930306768363232113319296606337906087548325491862638973890725830621686950052716888063803925270000867990870996587553558208368909548886625460044890296437722516917599534942169717201230070536744839211644187810304650861307610720652316096516577796281944071721490659510260697588923002118451814483484601483926685368977138391104478708577089401960113554413993133864127164995598400670717220898355898729946349226027554508766521391767250569844665575840428212366209860552215409184531626337278733490047246621249334092759323818535694764919999029010472154673151330578466867262953475448629076509781672884676947809194654829081355312586127298890823305858739996922151976334939537359894691239013486736460425169628201719239664369687631370467123975317543350998536444683937041511228744543621662528383681584357883100063854983794326902975318002276754026985133965510210739201537638050996090818923970665300420968146011242797053274530891152978350231604372777636289474510444450109497565149384327112071543677515245244099148570477800087054768105385046001167093500184273009853391864367801461760031325833213940471517997345902041314912927911361751341535037023070119068445520941746563051013000969945592491639238556694591961700832047914298941503789738756839444792809003951824090028768099661805588396599591857292456403223884082332289465567683374800219112567278509375481609973603516318102259950127560758758303347830727062251037145726188032623245057943266824468909289561011935180809478132202273255623056864772123479149838984218843752325612050995946380610346452397533816991767450664047495429333361264673837532987083853203564756585409728057622473821041304010473783549460320469155329344498619018361723103304125135966710384979446285619459814190604513000289117016508131680651930528595778264823741471730402862493567726241653396280489156109831650065856420677173453938552227674894218995788582281326900595500466280339534127360016184517774639195884798951096339597904470343317629032663014708214171716889734051922797946894459035629839040068466459953062658496653070889571914723324771910308209031539536622012157968079068134949886894782535146367457449980293863041871121132366188861764183635440884643635652776719730408237092596720354683024912515964606238201541705249461724365282572549945279202090319565508025718171495009403388913634681626465876763032249196055344755130855922323583573664988043317153297246732085860680808511631714652414422507303248635888910373323562981061698462746314138842110273002286035669501692640362666796945056167786518260125743157526741035809458901415049539308126704634856054552899222320119253545939679839497841100540083820986366497786106754465950583475287001988627652605230779546626192127408401444795173226046280347073997152851505686893263212150991217593165333861926260009787877857805416257550404919559414091585607675882898053932105379772370486264646610466516315501444714695877168681779501768756484834314427258532639027043797850503291106207277466741702806974668955607528429835942576913677416249544097786186273612520881643066310401481695779249293942335174416321651355521206058318099771959345078097029117865984234992279954169808514674981653788348488611496141311826688402477209829336941723966294006999211393994517902372246914959166766494102912939131841970089863401237890531725691948044510087294543603088996775509554517449162294097127334237768260000357210718923305528883728660295331832173470363620178644736004958249142754547975141211266854828419864212429718857734603277115033719094360179184087000455406110204642746318400045038619476196522123359944337751113155914480575980934480399987857115637602290897514960605880196690580373478961233451918986802681946320688992421076369553929360862525411729220181017622354304298395376885836531670830469555679782028597348316208104430956840175769368681819877052160772466003326916549510380161177265742613817622928266032782077305930629548864161672551345800488155964828802431967409294338090543793499112874457150245414853611571582495089774791373690539783139877231642233736407509134175308790375670077548627848434689210466923296225127180062727582269366514494418495952649575786441907027409546511113982921086718920285564673352789626466818695468425276840898620471237230104730748933327460820800065010829477733249477359565886702281089296219566809203958816478433893918087540405027624430880868000303175771817927449593555278403637049384625471846646309360774782043674219790299767415326177960446043056456984736162413024872030427366111409896405080575579475159303165077017056728781628342674561433069582566904498021247345064412769724534094854064036945106032190303103869349666669632099780855616478284528650659656064463639216230050903820300111305018116728879936318114463985504977610333759696922491888823577646006855895238330267993428254555645457302163268023772411497484425826072572088144443953882517891094130736269294119285390513670021797074130641228941670439460583253852904686884221915982096266030999883001223525065521003180334165449107474905284183602401432157227711219952330121977222514599565916355126867297514939416998832005336902678462563540985891636871403035985468824422268316132161275999811308963947777197143478465628685811019738480411414978663176888260113500865034002231539579755958967812831733704676048652494395529947130117026852968256180891334151291833342087146193881473940929989845352115409754709906090843395880368437391293109544441658735998363526021855830105730360176059609071037931257305323272883577751771769991304277108163087551050897183174294515694306474161381812748061021724893563553982944466556687002341311277498753775125503972067554316446506360876725635092445102806071984475668854791606639094833097152381249908969492220308430710492535438752937648521192041145137394153946767272239074425362049551716567625636348374858552194689477406189825707431390407572002888373759988071630278620914143421506903729331320097716076380247102165493575832068438082224280339231372907136276034896512992246232602359842382361740693512754870877027691430350120688548753287424942426686827069061093362827161031418852772262152529699923115277298554422135883987865611312098919807855801925562122107183628522814651694294979889643173620304043475760588760600996528625896334190227967695532391352152293456405208409605778948591487278755665884536001590788168636238176496059562445742803483649953169083946410598182112228771022402727321294400578552581720318469842357555604273311026234538847733918893389900137979171229815825736702279817516869214627288686498117454923484514142859323995248358125535621611030016649971012278969919354088258153035599494319824872687980028048079820078425447984818551590923299325125674834706925126412815304818871360809902125078593360941296612275761353164695838464770161849540226289406247099907478299212358072325391628718480471819521244069248089707251289376341102216093348919980094530617819553180357736970508431927879399931833568906272886598298328572423491292795942942565696442258834739321558706744099479618075802253424328867579745131195911524835019018353838760448399068951699045985561372565166708500188018576807180548511289738738762274579048544008669613955878823859051717384538239372290084854641274749251824213444356231787083580643659756373043915651464268040257361507831565799621767928922812527087410801083904929388956270158673248284336370667124010830945879100957576071373520102891056785254057431071570711333480935255247706451941552076842737492351207737797999175748270767483628244788271296396623768691947479927045908824700647613298228325591535738867024354308995274296253052826366789401441481622623555095347644261693427690231908711575569397939690031328992225401038994534453389671810458353365350029906392080600458209085579535341807720891498582206886437943725866749577568657057690879086743163450923360331593913098025221555012403363390881204748081858901780064896491019116570640866638470562267370250519289884044159191409123671693365073985390714245275487263037614187915350339783351635560701214760504254222373086383989703734954634182326306242626670727022881383515980173401887678369354312603224654524740858831672190879155841929063721874844066047565998356446620964490179000220131946611749253996720721300168419732565979675791042535596851036033115472671052797663437709346303182169020059578262453027259448229543905928499522399007289448874296946653694457062849218753935196659738336025335802326211335974776272533061810127301594995178665388620008434419275172592134790276835871811737246047991924496235428662456193968150775452505035346749343741206770200992677786240045480760192387615811345694178868165832910866981559841094371459342321811870711385103826016204797161347330608253294699705301924064828933455892332250890468991557316109351401608488235153207324534491700932518914095501957566756536472235647336121966296126354522806390786555098057392050228746933070137148713570136275020622753496863331766791250719770594104150327913046928624526087987236832915579114079432122468890221301280360727614493177995525976948840038838565384200722489880178661362410259087593281255861810000224560650376540666616612469551693137120077555934699001578611233177944719493563357571987297179314095545671488818482101411653352807959550276754539781270754783515375222228867340310385137191804240176350556884644790416705170019258803132407790998080186688499477414887924251304012852144914655114118956313852017778946118804379789006167219356371560781537516247488792368942072908717238104702532854562241512939655276380792444172378316888706316993670117882663886202596235556550216998769358432716479271846637073037476353245222262779972786719515005131736705792093697562506976170610704779690912007867781812133251246862492305900590456131777875374636532577572362742883920224470888550659845985093431099585928652292793221827462900932351945402331558649946095523655062769624595454965213952120526788260133997928335723191237841928902260713727286007128494286559400563226690333673585271165353846041170606566273091508977107499020518467993395377721123042278509565384269812816925342003699385929109722593202790220367240740809000938415528959196501697679982971988232319961247624695955299637539029772132601927404103532964804509629073772558129383271884723883191811539763952806547598000938454808151898957853916568038824113169362308436714138860112613250403498357022030894864925777916442621595548382245729862555909509479486200447198719924395927728640164187499504126675694120138713180836013374523213652044702415977738907294451836489527724936835892460332274529480909168428463867108253733094695002027129416080515138305603345175411703897077058420585582355760599296694090961618429418545866953261549043766553578256324669432807278282420717498971839330092528688242226843405604365293228455948137197500952342188328106003349299479567284024439448753177711226223117882805404104986020985220082995002111873566880882130889958110606117459441066593310606649358675641564212225075698710521370194257913144795757776301562814224264202286370581534093720908862275030750673809043853279430515402015726643161328675657908709700803783581593518850693381623526693039662468297129571315181002891849673625372013906600376652055220781680092755035305142433141558374594732054656933159608867424547696963821639857494509393310465777192076296599531515958441821159694759051043125765656127387308225901641983301783075992529746466035988188884173933163381216739715959975392159309822413332972835878867219324503227203398970092131096387781759912271680040833184799816088556210255406461422590859920322075561250282661886258207854362817251925066297612385087041023484156188372192528619034022150842063236238920360991305501057342286430987041388466253276390174170685500512924283671515030159091301430411439336574709615885143170625513164084568316547256841198683187332661513569536155644949195171754328644689269228200055797071308277136337096478490588933838563166236917387498194670464082621479279397525824379778576922584081604797650425216010824818126941302168758549726943468705395665160744328721764548825880634658351736324043678243641957743463162591479947035703912372311156934369648493500285950474038733201560001858174898914545148583471629235154174207000005207159399669482083765298599425558981463529258946550352511930040298066231178612590847965915731674812260892789949495219713584916886148820486968081937785596588047934302184599096982450279470126700425443280437187443073253436261283567753494151287342565161710489332883631207047911037627624153126067306914505592206293784155574587647811603917609512374625201213764372503553816227697308165386099734210430696708459478762810467499582175111084478019485790008515583861876328793212040435746218737919609931656030390653312247552094766910199977415067939016229597986699774433869617385085897990106755477181559890498812383931615350044583787039281630391144098826926467642713761926990004076613957993460128711036986462465778171874358854398855015763896625085367203216898974224276362195166719915859043216965395170928462035710034918606922136128342343225324616086633192523879067889555826439605312262037246260552959090238086321185761159476023385185571663307525988334813604550770216566977112969563934409797506769129171707610569619902809872331911038850867377845049008003379884107636789144030860110165169116649104816242842595925706460465180641144055435482966710832413974066463129929922047648799587013265830228080811833731285320253131205185754305189881160951620083161848825223396868752686064459545661995103514009041255438037466121423776461672709639532886485507432871784626515073717018500135131493681890189986963148349751627321519091852894867161855683021731932335370462521811108122415559158452347179290749432567731678475183869643362079230918258256558811559406424396858996758664074558575606291256857812927543379754834130389307858457366042568243949130217812242315882681466900123169614343385172006075351484622034802872250886490928099510205184520080581283171585198240942041610437733587431959684486273864950587336457468857724591932045552666130504481234393132052184313609578263439923824224886567561813381457583870296164554685028617552344849790904626808631038468156775810108915239215466246372235280296896706533735682666387528357304541030667454279713105331216718955340522160869121428483418055075354157428264476857719440287426683171401792883770643458863851620935708885787710819018590046581278204485652364072192066712100307231604384929018378790405760888341057718290718378794801788322778075324107735785100445260683139267375232761556856390886908215799984163787829385210705546367199980442144595497982313166820593029361754221350389505703473438246421112083287404850693981504260894055356220299891494256386379791557893501121302276766085617011822937001105874088796811150291868745214065598614503783674338386633550631484213422859582163281475309318668592264383907817723987862548173933039442719123128709591574104196584756942026766241996088554741070966191786644452051620514918555521763015789876194120187909089636652535034895539582090694093155503986115457177972892884012235270122671393011249877168057123828941980742949443054746036534614543566087685190769725379584150030628773480977212064474566936029405555023740353660432869285321032654444850813571469667678475867639206703128471994820366970830539953521400145098539961866155330796438156427213391257928678460516825779037403113678896792527898541210463222631546968979913968958111652052886767747390289988318835896112023778091620477663196813736629288585577168699544937749437733522201641415936510493092619552363956570219810899302727391854604220694461327509752436972530344335421740268794095793653500935017862691595945507690829019958847836396245470419137015537221258112540227461988327676797851951950731999724581907766702221699210187359561462027123915769597196809389067101370344910348653139859108167876135858940275366039134322331438449607295061829322169926956559366737786562325973112314903012237129899244442644624330596316514146944701274584405580554469649626100979242689976194317424880830471827847410283122320528199679136623089405837307933709458381596711801893804854832231457511968789234889603116115480135349306617574345383067752970710971974250232585399679296524769410485561075907580330023294430211692861121761803991441789593935320385120910280723974687761308604416866252360681143867534843839891418704064618267157677917020041561400577447336220967068116270222060461147115127180236151828491343971848657722341656220020431575318499009038152082585081974427392009341610165533851934035999570547016623692040037597707521375746834920202716962051056060604250366011903648975875380638174667867331413676057809577516711761478132658872439423316453129807095386407211314417961278404948574858668077011194954183615711307793507282271774037292509104345933665933197526283385398546131158002528321537209772517431407101932283642172775523488409060873645937589031815667455346801073721064755538969965673010234035118271071896231453601392456276477480584905606964477554219728641719972232323302460104437040876475048485250934821845205387312686516134814180108043782124166746174203581227931963581958489130039533797233676491181474838017154732659372976995615541763897558592094291392137316573060491206428494673597159198186561768443556047273119624832594704874357882002304592768400122156770324787827063671058784656396884190185038623389041831648422963874623357197448591635652727747285924414291797896613691946464481685598245612758100022073850982035633604277823764118724416533323456704582769909717699113186089288719282758490129037773657800684941186308482714243523115139695792221472691710882120179309952934351808773780005093148860352770760248505775036365592017853411120947547494831172184460808696330834732959728442886038991845967834772330174990648878659754921255733589129801085897446501717336584846435861855422684178863379457831765919605202178121204842815249125699723551541698562455762053694767668858081926914520708045208910125985790458334341476162115041460615360876661828668156154676619955656358678289456359662672438302892391127576274170644077673928305910143266029483264363872006037706079845709819933899067877591507845910957460159717329846086025051268971374894035190802979930559794468872930875359385676529420210113928695275160137430613494368617502519647483637190093838252922155952364915957531688507764083362674405486889742872261185436031092156800317492542806983874582317143110117676368289135234161278841737098565262334035444607144553354538909019819595749042452097679933914586719258775654637434326562343786140081478742185961636860576782575979300722490767730206122493503879635081332934250121732949209682319223064992564017283024305114621886056878550135894746440262691821455115414868128646086631396530968635716555166363980529887367259982027266008638323596024068607466340764794926146962292871141548573651056062596805561785069820009093056811221871590706485382785656481822644767929215179083146796250394063001321214968577227249507800033747583160688297870764789979164756077835812184698994028442887349411012275809195958095589358857875762697437930059952078622121255736632056521737501356088220550247222953824617116959550723698113961291918709515446604376775796774610524595464012754721172192329720789233221975828740601882066602507782820804850859195321743343836318669645397412827464078220871423640593492188817378948436123410778237542530519799462799521233044065355350835645505310751807838407263755507543009862867774573869457971851784746960208410379441597261729123362879095436890028709016526688744414406141593544315814810750373524258538292687924368507064084318863515033289829977116463023005507542463708086463113976081521161989306441162499843542391221348316017673443195998106397178714942922884100495346325233362098584096779241842575877325269990242668787777051626537905954435080787936530462550071723827129601277294297179101672586516273445837380698977217440767826438329073790617465156074847698593663214625430893592200442160439979602460365503766087937649498286031041611910628216763763305886906881658435251344568686584122612047626714899392975062644289846096267336587939574094066495574768258523226547842766184267175665531749793960596587676762965984489037213001631948750290165289438630627341917151582407447794346206361051312914249005205146624664828597633410547991316407702150147330191187329713089036545974601259531509932319380657363486559505128944535363580333255476596213901244219674067586639340869582723237113389236932586822039563927167774579479580966377996099190186394520746198594628507564078581507295726260075079770701683309928454928852732264557294855992356512839319958500913111490444255934305694529251113874146585923204350059452398512359236711018695798280807116129647330620172823459368070847118490993094524012340251375259617529134038145605248623071532955862294967727951338949213865315229164845932059731621670622704258593012536769641612839883528296199050070470435900320691626183840757795998300431232238354046176047197255134272848331508666632936110403429028610547874337932186626611064504681859034050817691091945653861129143031186715525685641252286357509888941270284304841961710273799580017330128372109273107618596525886456570837736851812728772143829054234542251757648586823258670627465282219698284169267579795422157234471326642992721931516448243509341668373443182369382377668632781855315162129390599122970850173974920392964611117563200385617321911938564902665512881039601475165940540431073787048567116521772134124322543737506477493240984314173361250927231325654987111338289418397024542308162818312568394054280359316859114969493569652083532145664260710589258508420057099453061703707377793480133767451073134078576054043960478221846439882388324044991847595586351163963962122706043120053562853594496066543198232952562934852978350147033961741386330975904634531097144765870879120476103468949887473794823572087602962154838741810815367109091755401771159543676357874178004199718626978668557109842111982996551243384434920070358100364403422518628944876149311487086496564947195149484949454555510737343205570964543483835157390199258098267740768834492898586811319625080104245832439284260814312844338896193522186667274939334813194836173894590029651522692253321324144651759769513820196368214783645563116666497788315887625658387790228948401952173890835722457396499290678676435200729100368611974872778936916598855390346824555499708594135522073328528749783121402151387698134710760876090534342979953652370338077373747095034633723826599412592885462915274755519883004264821792056243293109000756710837930743744829708585513861146520711915158495950655798061146010855002417057931494806628758626616001965400888223742373980500128979767331542950209080530713014951701323424502379667107051654986159173185325713496015959222960807097358953771399241410445156080241336819122412853221371490495851535039362211677188661922728650957339825480394600246879007474209622627362596243380317415022974019029642391334576051590758400578358864426577844621649986941877058648784358802054407719268704604478574741315237279297950225199749869399911893380498275812854285558038085779739321447375964538859982494705645597080365671696396465179055551555176039544182618329295614390681738418506618136015485151971371201890553872374589045247461137061427888048936199420682427521293478062003149513999653992046589199995472845166771950461511039810768173459634866604322730896652029163308081005078978179417074020511662681473588097158611295437871164890666933990355828993386781006072407900733091538929213337121657025800791952720507546033029637059456866095918466527692719537596826313451776005056858406335041334245195503553349491232924100330040589482693112708158695078518725690588956169083629732394774584331381813041076305053343007714653552658123626189988974443298585895749866758887839305514895942922540207521873105743304467055813722371877729743263307833426232795497551843935865468548064772275864057220742572739685749444530358114828212286567965653675344308697913273906939479263168608913435535102874211141889460958389269520978016673152599865789431667374459062081598833687065704196722734080640631961595422488857983799044194978633525023592423620599855698098885856166818943543038397797596549789383601363928062815418158696585597047750000150917540701186934494758785207697356897079782485288482013195224078269297046651479901207864467270550504360893485713050133883942614966160826813035162847970962668005574421830058669408446140790308768239791532590456027764756365636808351864689247759803523192348042540012187908184316474952404390706065762191592569870174889679368660334625251596478782555241436506376131973314709484101697174808872945051423035624786508677298981651391270642196178221385580090230695278414507023138598118016359553135265905510145221224215605203270485991786370871901192333646707585119800746619399386245050814169570488455911430930882595483037350582706698792211601904641382331520067398738841928419111008436704736851498960848127597950993737390694437802322372109153605445776900684693107751482304936069228599111182747251277161178301999781928678655192436611626269428173440558662824047426284379309294314609593682157585410895571618533181637672116150598001309414457027404177600126649577974499460412318457773998645132301563405255397615244462879261236729305874210535770979356377719639299125354408468273216931833718414154323651929269374426594682138670277239798025203618202706507141630670326265814557258692291432631472783454362415917903385446597831802900083473137162675504103803208626930121185692777577323042104026134684878093932163128682067727385489102797794816802724027841966607645982528382398427547828090811535644377245285619295363312179231068315182909833198552263397810906129497764689727979688103330440821050088939835505606454118202125589332726895097046472424260502324295609092546737467934358949559345147895724582971989474994585397752213467024396494624558301317836357006392333506135042741264113161156628993243072929523049046356918504168213683589632968701360770506263940350270145012017479245609866353427540273637997074561385364751893411218036770309977071921371360718234813981014178277095343099582947976597452517134410036235268349140799958064618842438456057253486667572940756532998540230203675763428935098604394265527828017259804474865999419525691290714834260488372971435349531427655619806625125868249107912302660762750891744074666446562702309442042026109425024319393489684607890107590357326416369433434158478713813908869217124430761155530274344111334951115862093958702743937317708238754535484122916340280187180111879400005782571153074805696759979409645468002440898474031086577063759331383201206577403142910032188483794864641579746106110356690625919825730351179535294335875693344249588858464250951800100950028294011943024410570882674457340800298064984152435614812147726055664085322267155252333795960032781585989957564123818822055405420051921293750559911958268934888080395529886020206333240570262584119852341116695320143858599096433651621615586196535296812847271921880934034028565978400223613076608442746130808919483147128893277391527984334634826118215219609295284707825577758942999958488506692570607965762142443077133924157792352288736807821097949289173040460588402393602266014248081031781771374285137550902218871716399087690417292756062684169417891468732566780640052083895395699493368333038428454706880582049219527829776059424291565289225458376634792953953609273601244316831180448359599394388464707471421707259124178773971806360786584059863121538310705529191156099606345314777083182389427936386558003095290636172940315319637450737033642467793190536788925474513162855977415519908203429501594794061756061452398310768979292773837029492322683857881547684044692085771205944476608772741881971262931942815091404996011596421110863155776728756185422085898840124908285412452717276049891597793061536077789479772492927965291239482026371822458889464289547000931842961478362665863508928717166883336582103891523308274960818478474553117132022428380130756147495232212686433668057662300626966597518200643369207287747460132513682756976172859580744765577214240859284970012925135727425488992493873880580119285988840702866481794905250369411949051659308444844893066660415910668531051826715583196929616688119494959385681845204505984527344550531681413355800257252315932113934457265131166754579389997755139898393661169273923534668158520030992170374598789560824652389508118270726464226498048851293513920111692109600662681528483808072300829960883695794386482320666981405053320249572667732590502027833112935676999765513986769668950230741028603088848888080279495328314105753062872149140275738853442364983723659854905627701839976961544072008478370283886691984584465736801173156621638407322369664950447357170162495178471231712264258365198199073999295695833271832692191874592142430735784884136050960401462060251563455626948360620881318382430804190023593472670786370021632206000551511085292038129153825405390687499160060812423838300782478802810417285441896428631208735536479638051750111422190542635339816134053350735071766366791457094616226848064691067414704107715810444570993982270774750046095736301946604990905238423510052659942590046461103199615435345385025715673042810814459534488788097394867172386950702208456932298318795072157734678794109134087930548128261331544269652826727910909764994710744820551397044224385793582978515270510721413258690542755296283154697481280096832119356971512836703017615080637538675305598189919353805682362334072335206843850306421997387543658273915868763024979296801002372676693307388393884415492193666102614144977476152107867287516771101935041264227198958708282391444194304012435676849854120131179926296121261566533759597587426056926195824795837395656603842978469036882245868034165869244519069361204994909309034482684133518260349788994683331724299994795252155808323625126944795397723634640581777022026496866850956321029733624512683643375129816596903090920865120363613260674675941966872109969407415722490160968774682280862851585787094597226257214208371304212060641549555221452941891503991429339572501199914975347107524344260689788057134864832086058482419020087728451182927245366727818620957074083970542148382480532547449363684490210579618062021718193114151468642880696910339440511790078795841233598052185915245435320125461379900912723233933913936636095475916935892083920391455546077729392322729113807068029797319128274711274818358687398881474614822438165691093286784359325251503298999155689084726935157632069006129219701857990226884039360589687231665317426586240923273011644537725648821599941483321254625831219627077856457289124488189931920221909904211372666624325127501177965653026893214955415896988630520572819786788869617423181672541213831097516000842576270884489695014626532165985743030139510240825722906412489097304415410834742482547455564238190629403244412419941099448940443471116705217101045653002123240587826408243778740853494640484164415644587824665140811671762323537643954682315555270787043203838183414890078868782210365904688331355486056467911637633699508046932494212468986677226917067878609815104491910450402935074653027160175703734350873975913379039154066263142801576949913428800655786375918668191690521330432370088338689475151712166977374987754710640433404501576443272394790281085851283581491340198468893547595189066594853688323235581792669185881497978218702580735268856057191790748209976055640286713432507271895465059795872916422855891717411126886790350959399233662433421004484745453929071477549708215563783503735888358552561719049133535405751718749628743988240915035659223504644058394085769515874334568286723019425547829007203297086080878784224849335662077171113143047834856113361704647051748703713111968867818124220193243449976422030495819202540617635162148011855124206618059143646927301957650460646795625446008172801690595281376283538739397759467950518600846222370745284218009714012003407847912773378642188430325275395620480859348473484748433307575251407358763558974686427798006640198230796388491313140432577253196326582073483607635085256790194888572284289235705744757185491298656696638007167075823254106467561321382311474959374515468681892845561719856253285267609988230057335572986264439532223950062879946394494623832125378469598359810357041101308412802117165640567238970683765568307063160573211112852057383722703090942747219658960922753996435114112841440614674668694327787589515904915162608810887476829248894267267580028470413443106333261696107611699567027441498624014238928384125555935858236179566680866835202077377388105283928132972085181595087075824351251840268332978065837160333032754443179922260356751824906397086183014566830454406348229025871130175022994447272563882719330808204247237609444779177484153960028969717720589492915712245482557846631261338792623497555773075041210618444518263104424037782164388144501532439039780844450511894962234295873283350435314120233017693606563983274256123066987118118459037340424317101044164153174102419481368780275610061143943367151713444653854312270835374485933841214932269717590755336646681983456138730492321504681660106395774179699814897840889311420022453161947168607180197797372117418321286176144395898500481311379923346828340383790819500310067038535470496122532989158542433432359285382616670335503880265403306017158322037917719516938793947000187876999362303516190574439434198349944377056561656372457572296924455506920723726093794230624966815157963979622726455180268546636897109263530784705265008401596004276662865559803492843126177451256801152234489848140729776084068257089625935562554740601239826321274257714354114481769620408466786487406913092510641547717114422527428611926730937445506840203126831943490621670384205165384346408040956060234582258644632311813369382180048015585524827260657290593279805763823115464814089151066391108623992168361656682370898882873579482409325298305290277321656346873194038482233963790841294494390044349734007730980327046746987261415651572439390062429268846014985795929262564140961015112995696323644278887443990417325933314022510692219982848370947101254655450862928538253848914166948698717176215430771445432452068957686258153733817446949963824201601978396312309130591121056007901687255753007940848228971210603863010070970381083007152939788248624984297468955265122152973494553630341517281425575846433973277219634621757454595719309264316481421758511310681268808033649364012445147280643063966214946453538089303016554471132553940834920095007919930994144500264027800542579325748549384654882372824245423732905946462248347795886658543108098533584104456645546085295284346158784219992609664517093885257920816409093448906540675974509723120392870158401104079585770633340458183412770589306557701657101976885882620336867664665646032820711987948432631868513116874712119062821842381191655109519431254291260702094529623930860892625611281450188963416113542847620034583791004116396956957263535065650795590684064434895181721447430004268412104024547357617821182095154830761877293918312424685188460459349817442815535581054167266351779784253219298874107045323779219199061317627955751742697511435265833173685556482795418165796231571638876543669151087979171487710676549516933680178727481292533887437168425891835211794038869283576164981134813120250257130971904185340973752614590108283445400675608067999142385086507057842114766258369982784097258943948344618805815985159792371360830004310274659393285333988178435259313720299961769500461835287733478192725892478384584236674030807036129882304050583549941084661442882029555181762453923562224733062823705623637699719591767086779409521085436310921029760796019804153758347442360971371497230506290089201873640187849610208947036325493675817362553645973528956888322009164825944797601799631212727915845355006413889919122305960964756227475223285910200609542585705976084491141238727573361510246246550779616313335023150505084427885588944856668737042094175184453452683982182411815022835275315695048442129712490247100596482629189876955343377914818652599005118769640195546259461483899473991945993810545117897438561218524609664482306360222636026005904074263627300335644296635181435049590150620378752568123957294897460793133949080639847312005084260934592809096614658151838402474081982866322824298232667415431906126479088893114495454110707493538090757835281824915598607427656284039866830459119680650547098046844520322828133070813155576099398491206515904551894886659015925508324579930669928684779801238042760112190650828441292407490759301785670745571163668818052241103031004885548662911995194550980643413148360624622122682348536340602043803831009265735681911683273189224316527693824814260570815382127974324196590051999586618931782882893576008955841017527841109728422435533792569157648851593773573246000285497954166008933973964543281500832994635041820494468872251757946171694862691203235356726641822081526226391133348631984553946013080817946861312345929240519250500347291044164073094770101777149782829281678098418516151905263991816016517052174762339725416644136736806266762657419592290586583943458626615034482048497422370473606877021953106055676625683859325101963305972717360083783056283186695976369740932253666343247182967432411527311694948367789466805294930996657130203700342235922933935496495718945891937923071744122575515998925615171263548968048615536309985033669039991605733977688452596832901072608719035323664330198254626145171455528673683907174068986299164115014070629275706742447359927802337853561821161330975473156347346824480837763708224428942664059369148037768829781204482526206208175115719857238229048625335944515470312056657202525613905758584744951798122498191590449311021051947074575001801704960058305289295974904444836444220350581470757160263776385278319993608953283503088164281536179670871733711670118479629108487202596178356108780664970978682477627782126786510562026533445836195806288809340506063598054056709308728251393067646621374968098491179696340371311719666926126591740097251822741989122206994392653812205909469061067911277977264392492186519234145952223248466530826530580400099726949251452149548572264362700466494516492004796864700131768001575074394847155123790782887988215400398192169812430456037469922660607596816047872428835091180113352727687694304371856162439545857203245845008934386946224505751658469902489687365240859476764520027638382751536691432291038847991138231560570525301863990815426987850646493817470075898907727636371137930530626299222506711578376203040264305352029231337624368495185577007803106103991799011231551425915885047747094137021568182043163167765870533645088238977177793410378430553195071287557472212042430871964759868171845219892553106581728546320945016418649996253773257881179336992553397428270018501085491018768270267964007585162164002035683499922312803440596148081362466893742002370682409299403328494286129056854403288808076655783752503660267124028814433806463483966345079409393378588468875170836166153235299248328866125982535788528696255361556121551564779687273727058792289469276520219301589184459765695610746420167350908834726221493870290842185009053807071641735304022674703428658036985032927746498101380373306349209928647627226283454842397527869902839602428390406859508104574257107753106977260663229647782996453535336833602068289705829163391610711120860735028420163055434165733658736613139306525318223869342972685288414739549120770593659391161098516875230504306688129355375163681673371221178935086717110947034202484383257105472777360558501692039686161326092639038521941354763513283541549274873241029712281301420822831991067198791550902158750078963546594319563077386246876218548803607665630591168386083125873185150026856229450962410592873936620678397071935359066946058599520804843180978393114286570876106834895454075987693425845227829136500357084053132171643541418128463361699341009449451290130925744742147976195854346869892635034641921618998483880335991864028577959937737613731362005389836568305440455068968167693902776344227988548247387526026358001798481480388565801147634882551910502840409324112341383896249252303396674642826051142625877864429472574212503608694270192292672732944699795523033487537367059347575770989251830787427290813641655062593005228010592246097061667022774916814442386610450764841988032978437506566382600240868467912804044194569493967006868894170109020936446255903732351394463790706109384194863294157801158995591138220623332799184513820172226675492815818074206456656408903686741840327275994372796098076030507688150683582957001635255562198454335327379182219026548204681624444381897876523362966539720502835983753669959249433723396160603741440260930528987671741336397791620414616608818181447137683733605654792897992930312663736559720908014241253072561975933411074733424583139585808046125146873027183410939111984102829224207541668372464833979742023206205656288182668736205181796990905095769906793965432482998835099352254548726418296654657027367796035281117124156889517392399631169907871333765057024434092397467782584580707324298961754914153479020764724360834028580924227329606145387585527151936398274032931642421801191249633488167290236281657904696491753332953818862232717574522650259216851943168839089764678483840462852922857984456020172584337920839739308659815532034033844546211939993359150743162216176923989007165892174825422829796758546423799488350845769643793181887798936737912526240397574679159079309072583982129349956187100999810321111542912270065968089818910944422677842243309260479632206933623403792726518088472157483853665306773176242314888800687243922762267376379711940560838076318604101632350533696833615969770010809711960405759944559575274914922632064183048328692284983412410570236934218300020500842963298508851010559726931879521533255862113459955021707664190606010617061840721925867088656314682178745707107766541618717650868391946492031356278882720763925505856246878070124555746812490842100822677183966364493066498493770063052514041131296452025639447434161415125313674064146982281966136849376544824871056015586491171845075738085935082842114546820494713449176221675893486060400765856145188400821318282657468537623685953785537064968464114205980661004784616321286454010659344427497487194169213126368673651115058044582548151891900052736308725779053559714673595037958165241161457380620315719358142425986376873209560887436414146912668539308424903121141402471341209572752740125308320158968565980400739558467582532494799949571298667822702204370716961215835103197554177773372213529164586574425029956648656077887081777098059348051225847056472866033906837361125450847255141170200273527476818672559233654849253155660730488998362956081198106191028978856918240861667256715231541334051059401233431347694240364699283762608525022874625345108534074088928599844757109571331528011068035832268166787054444133284497326447048026176134292727182902752924732378125125152187754619786767038629190968407703429946392826159034734952630587942449822143535263950145833067699171561242237666455206273420712601251446361507822931737141994688634180609438586910751395803114353958572015049628011765594896169579196925079377461323614403330360331724960009650745652881200683333832684581013457488890621599054859329915390936553140366154012211571145938265530486433087620821268317348242215731072674531862357821786823766089509666552930006003452272292739112570237296321728166950601884038688266816682901248518416188179559026670933599653185777683963979301911474827536628757936331457335975356327803049247985472814199968782480091997411315271640010940499072015052979820920846054773985687418842822047605467474870889674197370350768521079606553502581083901003209878042253303947506898225900963609976409880069421387388567023545266269194175829648018080366795507859454327393148523881131084760313532229524171545640403270444635931432872908075148060896989011391991350546402259910918302310001762875231811617352484466351513748414840825826678867365551417462502818688025710617899657484056043986391016641119895853591187756337000034184523866557798888744300033018599216692385276356014784344113923712349083554652285929452859746952388508136443313615008184049640955530511306458231684783473233098956183014005680365061640191567182414416878245716160763261453237451294645261904782374261471027601232930306423097994832640087847864293784647544517042977721236108541294972932881349985494391674306415660788395991481518371256257671345700619005001391699071036833829308817114238508088763959190591614706328974191103576022845297579512503304585029439279701644279707664349624177361477174614302700171843973849289255107662814025779561350344121515949984817436212071464245982718368081281489211468866360151774949755250750840022192098245486525632805893463074960530607308789545348522643099627469507093412644755253437918824625576780349555830885171953819259777399992778104616148503753256262548025358368670852330780999329929090382084177149861508302649681954459546565842866760495521213276395910647130726506229660813576951339081020832749603493447739643452388469815746875683670007593857920735249205003714854537277964941173130036911205191615277345224238452288296180257582623329396540159092134579565072825674828589184240091378172241326082712663311629828793597049001278497690048652918923159466276021716424993536279342470693217464245100532707857965021587278392379228518133422150812830244913742217833275972069722429233943133617969678108664587004671429654089466918863144459910470143616748607700826330581303859527882903433903480744107306265607981279890412383313302943638658463404125056538386363487533320850872083247555068213098316424228314652090914221517509994265140261079333810149960358590401855303844124920227213319362668083632056191136692858016248964762495106209952379279018895570738345700494315112733214999060246694523071969190163706973861145227238131694506851818230310609173904983248693727212390093821167582726665498641905786457000038634264599080233954313490941695506406750338105235520420386726331846469804790458782619035504200380480260593720300345295461708413529669189315826118325476912999135270450265215573564225049733653212897474933773469091939102506007259407897746501720163215515156543419412482504575263275804065631867497342666305185771959714832058818395086628464684172625903791695510177885488199163157502795660515527077103824729034210704467040693517908538105417404091876557654894383167735430873427155455493531395324211089330246811898824411749335679200950619448562729297441490242191915533230157773681896115501072768607274834259741163927736297141205116420651613332241909180086125145269486273367032257729323589786155630842869744209777255890097838667610802295615440695725321482658863358403307367442370997082207345162573947291664811089126417287576556717973040571298765717756208491668187093202617126665333797864105122204128718725858321004620075088280731130042953552315161151618126558076468474900469278247723415186066503597126287543114700646748626821863437133320244031671844294861182947601205704699952712887925361758648054428703999362990184324886631479427077128587733012653455569078945827474552377399808499949939517439137826063228414082826646561727955064432820247111242618511624057423052798279055923032813194764466217808042270493761490897481097212444434804653108245961276242174287778445775308161706063717272234343910166859130550125021803202760365922582874464112640199716705161750058236044963375538462363811062421708093059124536818184751750160379335663180523762122763095375771719760108920568175106991298714390278520889159089400935088132490592497082589030369074232045609922710346394542384656191859299772357604959894178309644501550842610020802239476469873670206749274010327851976989083091978358200972965484485003258210091263378953669868005453010450737965877669119400530728401214816161243972120369836772590681339696643345935618965123791516083543422483302734017165505602400528062920288489240611033902937528274302379117398544875311416271950643811353764987517037279685671440107691092022040690515330231422608975958935397337234346727345815070073856771216326920333708064616215633381117028483452355686745621719867510410522108754731856931754348793193971961543620991970677328394230494715835849416479959148514612413252067346706780937210700882973049062272903996752501070668922376584809458750415363642142925909038587948453187888899583517187648165733096244077882299353660687770286614660411719330611695246696436300749573925695328846612116461772050066079719840523822226314193044641150340569323117529037783698131093013865176563392623892926440303746242375653346780872870021015096709664510124871259017917437136663774765937034684648873713669307710097836776613225241542194858702337445360453572188876064900019107671295325006400058056763839493799148685335441649531584984897607343102253701359468179032656082411598028887322288520349189842180544168467315144171023840020725520143802802624993442023359410936222278892891300197530712512052184187679617887630290289739814705360331590473066636942623995833803950240745779116357290837340525136691846742335847073487700715771502802186521793274151112718704719820193067376018292240772602554704987582470119173887756533889198132294769330687828414138590170728489175931504765417083735917466262467640625322197881115478173462585046309068428572945202064980824780426064772651716821225533370442448596260778260365475348702740691978923018928502891107447221757674540577781524064842462173019249619153108773111082044602342694075432883054008004623736422300629396921067129735992336761869538882119991090869191777322263549300679997607553321197004772605547959812014038181905612525636479837765094021786609765274208156277017402501763690614561876993189444759761716220830894701280663508253672878740764677046580210066290980353976855417649059525702794619888230323654435609306711507632866244962947991232817791230727288561610675503093104003042169554471142079706642189148281552434429636650444634278210205721708224293840610959143034383185227729983125229628195461106114118056202324378731714975490896312571356712486467212643881737908394062558346769682925462974451057629865116077190874003349819756116242337610171768695039749005837799918576692358953992375148717769441944139403395292646431220436552173238389881763562438559523166514436769740208301227538224973583821824941880657250141758215392540636650774527786373880135606475723573644404233111592129460474590354898866140779980819863441153043997252962444244236157103366341775358240013090819679844809069619375892405663983670784842266227309109175580681000521076235022963178677435578066921479922228034147549961002266476392770814564133113226124877037937334983642226070894494143039507911946004565320160425969957798636207434201072355917325884564909109218672198053721160330189099179397546682877619051499854027394862347844767893248261447142619905202170668932884891789374910571081818465435747431285542722934865251132596022554225629778398982602695221433697610953845131854411534017851738752728673602877966952086699515539930695527071941661379922803276674710419478976564669181030985570235749362528315380186408280810267358904135311495861310055158608960767277505164090422212737944065968272221991671005123640055847099374861783275245357183067090896387401645096237478113518836503913898399222651611652400155778330387709154376243927315124151298888248163328147794326484927863031171689168477385998119176861471295066759635514079755496034855709084104481109952274432977542381862208148669956808731781800980864388652211717790925992119227114503496945755854203620078373335717379575742218668281103632904697993581877375853739554755235335606420988037754884916481052285556784605513069520996840990516180867838849099475689036505832991516767406749666338541078903109354459970922605278503201454125180420405403222529924292263218336992721587588615324930752240230550635524043719633740561952145040108003608051841376458364696220012608767847679361118866758153699608110490548735857357118072928603017303125949180791973171666641382419281335094963302954301724316959166845150477440864055654868820802558577685483674389140325700035521248394617744715618531507919765398527393975548389436583649282120817028421061501186131145552146551741493957334667094229326942440718348194002212463268137273741375335477236026456787502300858229793093359037163128166452360778385412338841188893185914729293992151681518831598398028254790367336623983412037086189281448184549243096380865739050728002602663669248586271576005123243249198431341958250566044904144612355954145897479116532455103518782196655574866056139393362293308963646656891544596007964869053614152858417960597583306686333696225012692287130831759266609050533167762449862101998476378821514358430124460505054927012684893913629021903217337704370207848363270293795333631049602247512565796335502653739294344583346553708321478378956999644601881241568098163619572577653206985356752973183280937855941988147640855157807541906114394366814418495421301607863840358668966549684021981987092794726108532697011408905575225004722849725456467215231435786702691414303022141202527241823715466421322279544522405394945909138766114983226262207065168610182172555631321954983611950689283057594718387383031700756758085381085463136792179646678956985164419902274195296364945000094300654609346984773558309392720084519534645888172892213940064594384485061309698517775761473343034537193919497255230736245136719596287482395395041063172655937065598103112153669505028473626796785989324935131061781706312797479765650907162084133037832283719870537783846712183043637342995493515821717741563406130143544179344771438141352307250044614972676362138801303113969375633661488839816498952511972616744143113612804038529717334454569409133407406242477315697624462816790471115441393738885492259787131718147919901508125955159287221457801092066915750070202756708599760255069419126522604794945789356771288609544665713647284866510791544393578295268565964941639748151909658397524866426770338259233584686943910689889293735527235930705938569857801841560792849029389794152450580759262545134970367600450539893517234080759647891307725655275661671913245586709201106502375901126353551277610096337421228652186716538727935521097960490397510696771788511039424701200883145872857140954066628494562586536869361452921355481366976093366226549557502811964201772042184223922626794993845310313621080968707630438417737949146234386492671253037570728014665175309645765594075555913587457887233119496976715007646886616651014642965292559670594938759493074728737906881446077557120877723929318742967831281703013146945398019940171558888053538728410169109874748587422127214752919433498114974982387559358742421528216646235368117973618146380631427355089389086590433623813272901348184764897460889393681634947371046765274225676012322354396279252951211091421277957109697940141128068568735044726785847491168447908307734450767006473268587482426501777491412692543736641992711043878629039573630584167126501980651555480340137894974634366682039127577428800351134415971443635801843894059858068236856209464997699746779734491304855296304851135351803920525721400951461987854710775708325243486104950452639379663402461895377968966221334330856057226972530792551364917634016054805627601355747020845169206551351518505264825735483569461533267872577608074072256860436770145661299574800325832977735729603677289972058292923860413182676298340510562511127401016860984632444896977705977646159565468775965459368269554342910753111411873862394729012281764995184307302141116917918596293888260777483726367936343118712230189281786603327516326135222198682322172755518427930501413884720611745654094803500822999196572021302882960158082127037009355101768314169311487957468845430828023449012614261451257278665008123130531565107214433967190566719965771397445010321221645494934125044032470028161576908965187975083973744943871918152507185356947067712613921709415461578239549752191899718290028107762040850265842455505546138879077609508693821544481428635293913029502282961311519499918388282874549877551418586615783649837646885234141852501495665809123971761007036860546633643964626851953657002340108891654339791268076797866245290113060847085923031927750020961840535554702718292264464680781440629891173852848626344643953470179144705632667154624842612302314971715817051592578422598622406099546167522256452051129785350162509574131573895126946913803887396612661318774601211612120147999927454162977295480994367085723331642865686939297938971220103410535526043175123177326993596637020037421155749493911208815585676707282875255165761349011046579239595266392062243067160241366149021317682877723823471051879428602892921965680382361276688418373766691670679199992803745477142644975839476423237178295554085408097663565477908291670238928737336332044284490649992904383871481122524641668906068035905112065453383280868224978310458315174074453015187136153107416689005464963885731617315206331702659373533342198308858213948845280041981310204797777556477057703994360508724760627005548860538254115710306292356004215671667357947743941625213724444466806666265958247373507169632512679908151053237206124739623628404268450047349653566723161935806610705029598577564696026169290072041439999553198509480576324905966617836297703332505336284147419792834887695774661373792550541082475969798981878766794671202540182221740235248270611119540671682100958541911741146010849733014820055453013867188145918814325637855045438668878434245879576927170940536131175259721449825910554247042198647130033008122613402613825392490187538887193161854076947713342162038487216527850939758305507947778568624134084276566490486162722741711863849208614775823979406359236284623874647906627204552529523647441673853561294887164511126356898481741063938225543703526211076009062866044424381344921470061424225326832627629425727813363270056829666139947395521796467539858452596361603156290621422780497366078885935510398213867760557609750887357956517647043432644418322854138122765401556128615893620379391836003469822080865675397266243237804667891069081140020639030848362155858149443531944615575512923253375823309987320012614779202619160744838509663955467637559832626830692286466862882903942074387780339610496085237096325721554250983318531054099971766442092207154123088479383708373983487016230887572297774567190251676279802386812755232617028129068855784050136411826047723005787699020216951394257889485044187686443794442152594983195165893921614781436028630594307468679050296681455068376453840722760246716622080490621629474532647743264404110338614963043805705684101028524436251173997706261800265369913320194386697771926694458018544569487289632771064933670687783835242784311842881498712167077550107584346429168888324255795836420922125314345675743421675712953391216284825571601070115206672195814440840391903040989328251314851267475773016376647878539316685759365144730768607299926504946694714173405771504909660713590035900170948680688295611552885581833416864688787228173753287789333676535527629371299689353629443876849011731806040669357163713204382887523570200136620064329260305251765167661712430885555519280030921254530515117474082688159480496433817688379715195913254898544438957674522249296160176506816296027468210505287189695607965579073641682156672267860967371849104822449614289795180766160511654766116944742209252397591457995450418428338184470142460397245469324850553319556692010360876288469553216851952539211169141641596141707739377519468772840146526175094574683477188706703500790772761303571134899177741564217700167973005627330740986919635036113336434376665086952423795619734138924775202042342545826596262495636190786637224698632725531931712405723824079611949331620040140678911227864949131681613460158045953577438055380293075490790606175882952112232012319978631461725709267107420088226398185278120097664085905340197979830174281410667964702112687369986898194449354671382110195263758931716233966492587119955924611432614151948229454472470137052383157564642660372685031211136121506746017979041795066498486110304308012846934168698912180102856997793765681462424069411700490103802183892223586175686541590628721978237449702217907667728545425591909161029569886543207026362201876155458804673854429406651136553031899606690019266356134225730437442375538344295064786856699986891769850726708807500647536972448019599372517567240286258429775189613580859912124654814232972859670189704474075523477746557473519427105461789137326599607744115368009030770640594487244513060691157398057537678076177151508015653523267941073256269235247740648811810146390542325743079740412990244721023748204071844224271163817760387258699392696145493852265789179051309999941233228923469669489267995853674824166466172891821534348998791787940779169920338085670038839617457958463087141739425717800315962047944305820446037408162952647628645824192708409667423507198311384643362642099578971503503464116511767172483254987610580667063003480778456845831901257550658467688661342810344973924777329261139090675308232775890192316990904075231683377999653546804038515683729532289647525860485874209286756186628118368284395547913832608703473727206573607773538144951386536665538108660598880742229609042912102180248183596714824152868310867969257640212116317371053092642446489940186793496835861918985012966375045227222366931486163656529878683235447769679151332901573903219601377588967206543321773047001831250754429189068756380237475435153197242709165544474635291353911217240476449038437874069780259351313780760476403616508290507098089776226868605677283938191581011775123999475449154972487208324107031947724506825273684723547440443709942301540427467366477214699477276896621854119148546406018638780545286405857294674001355371156846104832580666447086684195532044646918033727429508077947625790846957560830892035670682240771062448974605141260286842092390246385666500221150718205166199971880754845563717046471806702212898990124980111084911883367047357042378552800447628616763771389625801071022608667022053178577147433299294170262357581203688284148325110918638814545913696764907368242067459406112789271095760077382538979467115574654485797409811387539733011134394777313932740031500024876512455929423383638604322540690756899066597047664704664239770210286983419544829832850127837217652951930001866621522368651861793940914636020016738260121147138988555590540784212893366562578450997661885718095571876880169500297024122572542678792391212612105439293458705181808306193077537647133966761174231008650568841090391406349088664336748511119245763595632051786262726597344865463716443470659397821146625882679941373301799227438282248185332534772488469665397095813895726037570940322157961839421326643083681144811062072294829434797527852101853810451723902749498923581938617596827713864526630490147810775827923207277956012215785753124546535564943231934587755644540887420369549172146423879264134135114958679896669223841782103569707472392235370097903171686326539431975758842111267371523691235681881596601396978098057916440412599842412720528761785342185449758023978036528276109335215488868593123952321281369236920020435331060198463001594614873760315355652035553902096145476145209028797878115390629619670892697115404659854411344530676798966070595656138485453077317021857582578581172446638059980238529486101352534090149682109351914677732539014142021774658140471182835189089241645906081750006525775064014867669133577306993540779900844345815608236487011808008508701937564805254057246147203520226928008399296763707948650263614048803676033280341546526137570284834970539911299839198327271513048425412465499129871706892853820187099174007279392514818322299619113862480843855715283397448289048903015704054865845823774339675171310417640189845816274895037801560680241737559655337396713178758469915918834124003628453636473275413480095438835641079081897387616965764334991170193974182696563786651206361089480679369501831987352925678762990038402584613799112538750561275177619687494893090629062367773349678427824330484480548212823170848976727717589775581812682322568088806883908378636254675523661369361436867670571448737161038009193414435441272752180958693832575734723110269482823776723737990913731034579439627908713964670853728683209454209839143228718939797782421624467163217019117763107108877379267831703696087447271664129222728555763643450792878333606131586090329156378510324701893972955347113094981955675156735601378008369819851040457850402976208900858647260870736204502963562125054254479388979230894332024689209145172273145536335085256292325827550133459692483520662587051927246168601716401686385332635674962248274494724530953203500815774196399428749858225037320326744969630388506282473183892118012121619238474047674995241718041830641493292531954986022512535634152024287592642615895738817496311069190227308109741725552833008378096722083896246644577551944247809977015510911030308343498473254350468105184790175636637174089389921459193433347220617473973131053430990814288666007027567959917442866840882881498351066907322280855001733500682831109343306186651312779245470516303042179599190211580184407124836448378228098046561508597521978954013625507057138894470024731785793180619181844623465214133139230671996308521738611309412769610896424372285092810748758414950887262691834831389018490328352272923629937004680389197964917920121649862840193409888716109364788938950428751103768640599323053139112524613693032242523027490423707215067874370454185727557790503752355620751571031005672546002655632786364971349025149670479432680474749445433904394808583851362125948247737268114213859911564313977396605071385887532918732419734837554684626060346323050684306962577867186846276119579781735222012564588614124755148986557068671607784866189871489020254114336309551141162281600447151689644385794026508488866051803523364532029457525614740665713726942490725125383329382865739050726645126548223568295475572669439598696082889469300439145192972598043164776378211866890437853860062348156865008950761935510562266544797104365510715313572707544676542004361996260464700397473548847562601886787212463314953462324968376908045962171079971694783430959668916963064518453427340382085804762572515657956822492398226870810007856586045349906444159835496007516262861603355283037198785597770447687446651446835766838830694418016459865954830216743017394630891705515456908279624144199116641008272890456800650836255471463675852118574237790967912309985652266822610096834664146541891539722479554250259217571540862649802632598733226221330514425889630727895453770845464274635162893594697183661572564548247732985878164099258587105793014378897943280080895737286551534938500461518382366828553886566405179266191162309666215932869490780281995248996716015188035826169381783260819323214330194232305972246644314867437265521950954198894055964113096047398306922639742006057331631213089002788112480735436569302302905814761054432385337771331811176565539583774702112502094718482898135592173931745276263547531568787840656378432179156721653464192087397929381111580593706716331982336838385990012606070106797995715991428996564606382315782775165997807624198207699467576152138276028140745472213499562171635804182616438992656814231953235984951422519212834747379265166534087194699366382431498034216342742223299131411196598756156605320404439008644682525669813599780205630690513745905663347490156193898577713705572805845159447819477956004474901608630886937481601026605876174871597275912609691917224142814577979998994832505026277613748337688042446618573836816895302294939058557598739521104855334314408638179290717537709424014368274549256590913585941099954417905402368661686319822640136563435833004296630289811431886394661395260705411631791154166366762876036226942702638724446823579573116998981622222851112852289027436131756068343786507023446322603997469997561258260771487101951594911603942555350454870124937381911592092374925761715502329799818301458643684894348724315385378731131839979041679588741042603875123572075670396626638758786149891999585202537269360773369165166601125477449217621179124891310201811169804513414242675115579037135133847397399189033020110732223761582130409371080787246976481041673460587835985927740408993320875630163131078596734883046551403369710758383666810703119119063281986935968617515111118434982039384452561812699287578880042372886170208114529081704610750020273280631439408372189183660210495029050195974119638180877474432882543667159474029555493074393891888082104908423481257028081015105156699989833914137205945329817574077307899839585567475256627798149145402195500229887355346150107851663262025544826833519798920856069706652532692614974440408581950588509858152724422858332625293957607297602873333614107311053475415359158087666775180680227969834263527279354678730385951107054873640955169983764053378020283440992646214415468823967571700100765942968775171717673630894083577636050527197087989317542633390460665890748664529154651198297432032433290788807510024823428962354959422229112044734795779249616840708260759698947978765267756902384675730116935736840776261331926045293896119023869388679474175769764093782627653473452582110424206455485707278264573801853049974156146944409989788921353778494709009552454426453017895132158204604088853774772118258393389876894275631386099257260325129295958753562535319231415770561578224527333415391180865967608026935496415807516953821477312469525210398981231826153741508298148380446250685508563528801128679966989365802573079295939485796901373047503404089116105640841922323387852830455726125554576456115913927871788697550056410548142035269869222948506680230037546595492710406266567799964322466316959223260757868368525300929912564742698658512421795500554007685847574977998052654083453576270103802132718953040638041563409997340108529393942603240469774680488639237968465756727163439138669984210515793155552556865739864504639968664442072073485976286203659145025080904267767816240216923049113670193089075489998153223350488989457650853238230325113019472051040542056748150685155124095681091618807581378248714315267523894731741873031781973804489967628300107464686194932943816278832117489570166673279937456641064291652026372374165504380128624342292641604527562997783738008614657129362908093181605118228033760800551910558534719263220918254916240741865210261606719070974523678206252827692315448417406164736657359846130989331001446082163306204666600217075248197216416881997083676742967788742584494838606444882348759422851102542749031381918188497224591037618968465082322400864053407238656928302465894923397612723671978401118113072840528642774199148877872643120401266223775328629143334080397102840628328620616780347914926298091034456610099314583709666271917412798141533861500027473627255146363975841735823599185076957894709009144984920612033239071526702888010363030151441688905812414964879099851754033287409256552256808960226937809456788622142822230677633946447928836198852061494586040602429162537963502534737168203951812196784705391501109188440510421971187974301618401280094856127565311433359750231772521811144596613745690275991364798396376655927678615184121028484384096143769490137898267451301550141452676434970386246197139025409213953716628812660767921774703875026176844886452106945638457235723145809999333824127209856765833384256408849355137915209401556337353129276450760598072307955419789551824390747886245220450366875389761087432362979174114249407137944607959798673397912348753014788848265793876646858416825848603304202926979757997112525531701508226905807206228618593929692169845611214209166101173219651024425591870492781986893938522543731488304022446628872593350061090441874902546126071513118484055179173561925430507590681641827433584746703314158393241598342156204607844439018734142477259443638290541652917323290079690546046250468127911207391013814401748894360283883326788381940914484890293888073422179967055734144737022899643276790732879578010234811325378056291571447597236189089541586317810729556694699611118673478872074340120058943964378378808334346898496438580370551269953391023561373056595019160907458045610413818225391364497963577515738719645738553345446205487465551844493256607738691181290739375921402171100516953191046280251226340771680910616391883041968332387756779761771706144914632372345777259058115181973105114002427282597235325146773895103611898736870091438082043801610335094646163983346041778353281859623590138739194831351249700619708878623167620498362148991510718688574000573342857835135921437304008399300788192057672993434547390206187536772593111757851934339657670145070927146056290734825614951840210070015098573641019472266881608971496910074254417490873550049299173088267815426405407871019562695222029813560934224825939504809528314247588062341141283212772865029431291817882410216146580131741230956837540043219610879272477366875764336583151434383617155604409644433095479701195649298378762675150806717880308780747031845862852667227647694404598335357104111150145651040219216367925854642321413490176625736567010295001466771568147029739516350900852918144763537469701419474198338422096450771429720342647550761046666186949285738829643131499109469914762059119326911514342386211113929749776802206724852445185109524717084047144344584769650740795689467532969917070468255590137000351670081985912675116413055516325212805020002046988655910921675987402742008455323257102201067688008720967270525423913779856573059946068953999968982056554613950135421392287210720878067621013678781395999969853528048568689379374907593973333471113445526606968244318299965169778942764515105926733343314290406422606537017604559884359595835210455076384127346160737065164652926784811842937799430008386937328407266227519667563374980813402700967074712182993095221389792188457202480331189150165432601154063236283093233175927546926341443466889333095712415527331225919260842598731686605800161234660853476802638825323044787053221046864381848692560885601264555471299983457478546046737415198788548661437550684572759520718824127711053655026027993589436710313196520412632531693610619788526988620027198234483712633762561656205162963961349415975323271079674130378207166309016637425425276525553221080040324781124676419723713540456666315518771511511722298647734660518300126464501299407938163735258385892854362667351060819652278553668349953648002056576903458184762917350358999892936043207778549088605030095188974576713789122047961303492965031301744506320328444779327189688959963142714824777826193933145689660369280099534492238575025804589432615149575376571104308956880864910941660928596016235804447602645018527725065720953099357732360493928191889286070285250093945012805897107695385894538828265588737546561095230100436117503454424213863477210652343811168082828954459194661828520401879672057045372005282873894253707269782484775296321462657464140185565221886952919628205529637224788830652297615278323581088998439379737126624554712494599398502250509659637986772965701001463703335768711375711107851946552807773482122666085977606157901217101863188980232282737723345987550909323950920227623270705486431400803666989887377223334542463465509609738656466875800198731045213191183814512658529241946103837450129805849166256656042384395182784855145045176572806148862760546472616964994252760338767315794056300924857580548377942394835178616521664027810625082560093714565389533860155761399140444882632491149071375022028896736699886673232905277429399847206021294154198832927746829375674235460075265386253662439530070167776704964585263573027011374089376312650347020014043470907205374106253913490512820772215134985292659160718929973108865030616460681607681266307913910884758695477086910345946702665188606406834864776174949499426744846127030987082640847320795469979821196044421984414465476835064801010793951796517272409443891631427382225929334124593235501641163791380407641569102202527212088868671241429753629765726965091369600106678141887838371035750651342490455890591362543735203488209717263276385411328514886978680175553891743497612264808837657608728508464576102313503113551132807257007181030190979991794808251224056603414387461021508277127885178320042241325634147041438713714390473295677705482931467167697099734720233207984226919275762112785270364965461853331326836955553429754240663160469500578873842183757223699704464438099857124522036452999318749111812834334778796237015867373012196056024216597875669694133972058787314700536739557940051546441541419710558183870274915966985119466497325897445432668580865879520415298272540055901869453679289481955395624263641323717002799513064218403590832272148480887097655923150524959498084534333523859050940156454273376373099520372038406567740203431311895601454183771197139470321859295311324230209167474721970586876818632503599272797512371614092498584707158952412905609347965010933489244896675553287806565415567804194734496745153226075565791521121892763585701385952360451290567890774170666743803819604637830213285456936669664693551254477909786098788311940571106064119091807186513833549553039330141844495732294564092954569222132044438152905004586937074110888474481685870331067951549069734176859930567197379096791185567461459357943458555100946966114272688216304082912815359867197973684789534087550688020592574859227588042407851164863214663182598039177647599124265520361873385425345571010749138322997779697286482394388321769764411131484259899263440254534350241834611445292030249700187626543793182145357279518231666637062000129624023383994712934719332633958220449897236977712865949986360613568541525432807489633426233598253377772983491967075565604118564220335687101409443117903476963142050979748673478475309109336716486871009382344582383322730312288819353464915233632574174320074015774208753825719647680761506945801477282348901649604132818082955487472348278223184591489270399229650189478094540820694959446571366643318880801434132689538987857100175047829777911340066448966900896001424872107181092639115786622887261329865005955368895794932982128099949236018393145637635228945402362613600016901720696659506848394556223275952450600327561779737019026540054438753843068413909716032001573468851719946249387317418326785292789124904273522110332150808790855152653697666243111530895849449945903065467199706360329937313504053829861731312808115357440606970730452881736299154999084285086771500254849476850780217969212073014119591246467592036753657833873574958607581837764770773425462646439361390639708963264490949555570319077620339339411797427473162632487001502755112625192740763623878965254220063649619140792277641010469979959086350662813272917877704176913730635168528086883806402688374090435610410457130832045418458295039045146952437417577974108131356075606923428459791632444470528040261257448447654502737092151825661773944443732552705739568370410498849168145556781403610368800161564419507953411861953065633794173485157714819046948887670331265275001989292422847528981304787847258292051968550856054405390358940208018476979744747998630165528964125297432528121112343505414418471571700412350618285586661024918104259820350811394913451347464965406016844418438020005688494821099095806448329354952491184491360209567419369159235317237020653950113325190652002019160747044318808537482958916600554108056861336914631767785041989247938161310959823269805457091773321630929245541492925005946426946862778519015492813776129452658523778793526865349092008037639500080041354954448207011890290360959007911805980489998243437369210782999156271149145305270971163510986975266623071084612967470033026609491611540351128316401094232884686897064123610726949340729318889461672463811212581828771514545815442632139190897597014992882998430683303204741962129808791675838862999396037137607860841401404819408639017036836523694699786023335994956188959077027432056271845623521493152743292842881228757243359854024361135327693409342196020625887221344160833243155750163582126900719296708922935494570781288349278037467848930069469089832096469332757573295260220356724854950464703337786372473002411469253890542237175605798633639365544447787291750194757940866546875970083220549198736325125453940665708801194534918798964049901043037224920431445552802161058945663461350533833325595583181508968077922959099093484525624788876249490471431655804958114229546015206431309489190399112090840901320682311155319671884635814951269480973126429202224822303606200406641057510914089225848895457265990895854825963181208426819434856225748895243402641364506318414819491262550205408308774836702940088586157975305554124516191574408560819737879065320638170685963101851242143528860153368179666857941785102494490119649773047032194935793317104896776726306809640493188822749333087995823007974074271903789158614098614620252099815402032038984956505047766777411769139538974479211565568299269667845022668357403954888915364032951414055466516319760109484548123686359080702099566205943045335468241100228046134212944804883415794626403681025912547459044519043209504927714045907001975439598574137310566030003582506924403694768121945815307684635528333699686724511480431444536922139010800967138025912337445676709489058258347149675305095778460783917073532300820961335040810173065972395746583334349320797693669768296472250600441464960658916971579549588307890163955559651257692503279226987528916576698050423226283092759921862858474181575659007093636053206038081653623196340568363235931596791840972994889100764638753924447942901659815268013802179306095717825265119115847045320572445103442598047920334343596282752309082910421015076054902977712573764278860826175237163297251139617324341079084237054001865380810385193687131910914575395892177855356908046298834605194005083440438092200947908531475715809429225584763476995376955242340893383512269908136196387915103228916456787279759752550139279954795000257957261720594160878857926115458750338800412659113652193334582003822524189417643551463887014345406988554737390143258671372170884839523476561632610985708262693516495269059266627113937904364124698660928530304802025309015759052802956174829629240062322849903582077587998549411845727605306474648553265290907344249635974394052196115465415550891609028865107530892570857990548150901096947937891862527013369801144328390702001451531320476119491629907519798623393262433407604078733920534329134414021193932271764374635567200896768967670567597211907928030101108381077151134365140187522499581495352961395179264438304098300668981052145773630897184588777896319360951052635098030114265921181156007322677184431617663827275035136609459702413874202684458153744471898282676681943928608147356016756288708186154160387600793929238014045441251668333669471706271310844891557398149236596821511123528630565199418510106469366114941115597637019434335027744096446269587077628185364458327600999581985406961015166472899036364326249715844337002192821677297859593627920104045183958170335340284021859499764345925707345051324371809844693423297677751817927130556773903713745729336941402751031382433320255750141644455474517886601717222337497886838079433246170264724458171729770246166886133718962007559778610052597087857355004650186786922860494990471352737388993573204281161981941675756210397105091138033959017560694989349223413987604065729015530504283600757603943921971674358001368311527636606136254855954675194415943012619562629562082819047579319767462250247540371054123374469011747104827447368837944161117673987217082710633406797940459551009026606330572128116062453455068496974299215757818012836437336989417228701761770253427728572244296965602191961400915637429373742406846313073765233982937945124761266215687194064248151659426990368770936464733244136040023909770463956236296283605130342249217876654474786555386387107454610095958476064079176853647822926062664606011872437289918030540737631338916044156188541403699104210324332995889542779720922076512113056747844299136769386003495396723784977345714337527501338478724087247091251686566931287620134938892318343986508697558174269111087088709258563269447579619578942674142168004528310139122884176184228430971919457800095026886191291136872648461317929778275642584529518251825056994231795890474428801607598581677146479735058436187936374338223265907276148207010808254442125491888174456744788542515199951028993535978326882115691808884117480878554462872045684797545394131553818743001681413476864691839287383366119248309853596411151074408514237958619154569493738727564466857625215413073187435679286769881018463496400656114983730713819483051791819598378102555408467682905519459269362685757483296571505392060542526510278113562525534188146953237190465803997836789387561771677229021097497899791333751223618760036910565673949379986343788196113132459712734904904891060857308349318054968309293860341764382763599429599370760694699064490082251500267996836757448061706205093153901125334127771632471359120721285052365455391236818663721811026997907048555635804648925855179844664798676800505176840669412939851313288228326488825919247445845701139765585995890284927036611413561578159161754771852223140258031693701766414685119729836931441026856391492216280900789568479376579202703683371933550805234046371869890243773421211555173162888372593074539935576411057447656465074455813107334867827255303330027189094699563622109118884827810583245464012048143006973630512109482209970356341065944757547269507482661646935749429578343361886860338451253581901699254663612895277953678039313256720170048722831317942753917188314680257698056003186361281338326029059514142969817776244489555783687875275348134239165694991265393355037743397159415559356019470186825094284935078053788530602731658504504939327604842749159601230234227469431867300941431994263152692997818308779416075931335641493263881735362237514797264391793425471626151782534952137560820916845729621218318944537016530290399095854421608985955357337597757413579767345722760815225027761364870792633345472555307023163725803625830142339609152505386197477652910123230043160426570012085629017248911266446667910269164583097641007952325716678971653912623312738255527546176693447228103379161244854083563345609793107152205326387981099722466034756620608206235708933229000303691272614819096667743798301965166739695522767623448629650556376155414696049103105786109604387740101791158394320355004547455623867042439740962746140017889967093604531214749819216495007114077980695570122035123635536945366863010619302862965674514057831185637563677124930176246473652395638899374313216332973501266829837435174212052881215196244724824483540126136242383851839837747150236740953713805837302402150548196108615810030123793679678820699433680058310412331473880765765886563482282375651049150829409930296267362451561562968589578712763078821241234069057860303267457648768826272349236208894093954408915911349574833697149787142831985798997739276025482114334557984899445644866791417646575321465029630032608377250910587824600849663962234001666604818815497637399604509385881991193222711218347567661829430473953653562983871991501435474966349653541683085591653096830604381441993999386035236075068700866788078768538365212533938825910494320510525733823015297630946399552981035184326065374226638622501996851474993940976099241508919321130951535781030135859742790138157474330122250699353369059127497002814342623289813523831356709517480036689078984572255240529620021463026176244372329259282162433181188564017278435134953001767802714638677007828346879927273578478435642849665345572088490335244119189514094485427517578583035484125746572201046009511902493360064654185933917621521383601822189978480824579516493335465257287026230784945472991491224997575681034931427725836683058387623621357183643833127701191305254010465914379493860953639037917427580556467040445847778656677297598954644227881989290677215014197477401567491672989335842741100596057227945391655745059044305049612642067534492872483351083470269832514936124416519708355401570931379184559805818765268328554779057469683395571101447025591245836418197897915842842242156489326689426568345381619337477181491226751524604788326249444385752705726467012842194423995855159842413219197261573912970692436032044463283720718535694635942609223444113784969759278005063768522993648617194168594650059799621246314532695534290487431312255610003678467625990655875222348731196387674357228457480901902628965609178383627958283130253851260499576617287716291120154720176405091991933310745638025582860261136367412281008932002795497510519380008449733883595772613725853995346740144334132111792393993757124241789529627093156624426178974332722503594869623297896040817941794721218589952774374390674036042599157760938311791717075672867681759330818208319050359097220130706679083317052521454769859575701894412666740873977282170299276333071778758851629708143500873036750335510231310559545035272385488142561878760555912563955509743665387854185926310080048295625784151043780104235255223316094027888136411591314700045185872480086138326915531762490981918030497733844574374551298782654437638545277595211428174098725648833370383160566176998064926072557604449571814689859733791028636883093630140677347678060887813992587118691471767429397193733955961781845386147204755494981161420261001423744918409919984901456046523866756209280251900271226745268655150610065366304952867931611595582492662566778798616291567104734209210993477858825518036276360681843883882194124084248075332281599338381727138575809667995144311404397361538668292579887224712311101288882879047815998518706220793295450584690123236115769589509479458845331724176824821219898689031588428564092700370196555521037718181704095569448007510244226857440561066040660242956186103490064021443977353197454156205492630797512879850066876091906538072294563424791564573704968469440010181127996290017809273359562915764159020743789519012821164900515591885407557900013866385304008664718206690574364338012255358442873533961301126408031869802112939205166758292455074464097016466197308154079884248808194300721080875545837006585717802931838032481250484244430003613347739624904015016037101614152976991765978114162265594337799081074188700738749555017944666532751933717923998822685925860982877336468032080434764069992138905828583010809667371765315104805656366585185582713541853021204927452191729314116042455218874385465528957861326879876652569019974810350149878309150244941807516642390499289632458097142017801084675803414955410883296565355251308812889389535623843634960596377955760884502628932920136294791571539191320240727828018747115651388724413920299106868774211855797622832442516663254470226559978545706391521783081659053817842652163629849433926607681447560309444839442367931591781793690535487861021764704236156840063473514076163524690801364453263341377171667168442752205801970764726042790580921822552503663561174418675219019487827879675797864534881717415817090347955032304606763243654937103232331656805254581884998941920390329913064052352906869445448414565422413275020869065504653314480979847546140966158728574002948652832579760395157594438944617737319587777739305980394736209015902495064475634190868271929787217155156694955066377108605757036167014375945311378469018414005957143569034898471496126735907116934754037181413984942801888664155506528160455952372283651874615690882355141075667068689868907516568439650045220526306127919922711320281690599168274613755417633667001086049936162547925152832767717877051769513874513934444373069679779595171590524968013384668319460042237444479490974935166039136152989921407091415774580829509996857002459038247570489154547599031914342809565820629724329294118432982186091253981607423146386350789060092092094380095443960738459415535645093287404661748907063597650349093395739664994899623797676707188172227046895620153458422421073855507524275870224888435043772550488384673977589085593283905782873588255623386342683305259830327659186924084344453542108766426749989050435220543384144330066130261161935602767557914609303839338007941373430652444064842748924641295356971843356479470045710919167750292738981573561556598238542063084736972338486334430867174297313249433658288840240425263415520044792124762949846292493325063780982909670928270976920143744925506678883922136790252041782979888405487070611945910203150458058610169254753417247298524719824614907642414498047607097910598979293729486070045762419523505402171318842542243552407911469634956269332152108428852369731224692313418547168760451382539119519802378514025022617358842038069038796381079615377641448157577574693453946253204502736706672012014155832032551183103038641392817687125968535674991930117702856136920503896227076445755393515950044544983223191054261649749603366671340680659040902358986981260543459183631781216431194455723492739114163356084935798618332550207562691221093900553346701590435407862330674274889076368839883354917720250831400587396348045540779608548630893853213791424014140487480132859352946748397490080044253591618835551123349387819372008445168624526174126864584700073173860971543190490644718972149075707277312100403600925165776021813940592934477194358403458488629186120387432083586115094099944137850953566474463516522617291471796380106035601906741990643998274494461707797759243703541354217062632370326333582932570418383172726386080439165304501519558338208916868731889446726411603700278541152537667611119806004146583286839719467222766730431250007314534987514343306945640635513620546580032793574086565012161449563418939547043018146575165622097694844858020173532883631942834823174878859040849492894239862964177024444269445334153484089429322428283899365171203639630189252651490726148632659463019718776728649815268433245663854996738424792634865020928589929342141154950735711259765451863246021192615789293040026718119243061308852550782453129741657398800411247780077198551436238500252154084783618436038509983749744414150264644051200947555148189744746470175639594172906607030493706873182373558900504433262086742080234301200252920557773503132778182502731304214954313751396435917448939525607185076121156548522928013085688802082737996346031824765036336216375077597907884324387067863931563729292975131824342407037408465555298540141603799867960935079197364398301591732313034573443484129535761367267647557528032413891754495638745253592159235260009378136674776269659446902815728535671161312840275957447846860047924314529593228099996093361406713040981044914237411576716657743443806678084486386401935784375922941090714866245990467385219854500848269245175045418018012797017777502490361746867645097207796016493789441064928208834749057192586724112137086462490527983671904026630360599029664198387377326654751656742813680373373329749623810248608084388285136847974806479889047253602117504512121930936647716400918894247655650628662784557148788092710095789265930808526766014493428562039528734201926296550560764638324888835577726885213126082794356974760210292499012453505992521240805710025985304262653184474335089019155711121551029613632467231418971033207208026364498378136174689352930391890277284328840176174608907204148758209706091145603915752793223067404316288672657281270565233431389359333873334709235190238007487187595426390977538357477620094564589347746617358694621011649792600817633046530655227503819434532586898618848226665831463449450582302160625593382548141656780027394320791030099448986005929543444342661859431391149050516493807407420243656088466594141507540575745668962609874905891254264688233305023042920726487313594116590344738026647496382814928005895386338869230558226408414102168533451840080444448052293338892147432286211544956153185782704047782742011991563049329001193513611699517843070838407901467540511099096057306595130832922893843443831832276425063848527607490536324794622899371973868709436337623018796860283150153356624835112480898165649175753469214511121473988924320998642583578120309329689715305617061078334598724273697989881289369781679595643255130894229128798686894321711501041358978234022934607605496882591277818357208269018456468073296040009831094526282169842197985890528324323336303648685695228616265824411878822380426316515604848828223387006892570416446840646968173964877022950874865162164712177147276401587540274668428297661468424013867749364412170537701045256652366145544828491490136047683143332926195527286390482206023248640833414058954858338169788535489144326610168603558730723171694260416307313399929843605783792065685364120765373492081524147111138312700583519644624614830783943602537917537330716726703348467535809956084260504438130557108947036238589729706231778523895481912384609694720706773977863473487871478233723645849373166954505767461807878052317842921306936023879493815617913727236629784021544423943122767762694545341873547608378577022636112525020126487549788940482863232524293695479584600568695343255434692741587939562740574067964366670321794875936447375166682926051054313596194783214660500282671177113910513749757695619134112505523301557761174810455958891334212326503654480253831358960268238227355043585410823602050515472484981282496919265373446154825641098470056269088502872804545456880529225328202239960298946170830710217972816376679820159614150510928873178992923219040279708088856406064254225809506220501398237755416040425827314247015728735182795098989906411775453866426257027285357681149830036749109505017856666960375241931791371014236640849311244748881342373996610199785909170872396899617596247226106935282547344022704608300787693059934975486589909553296640882641813415712063772974821445587625971951712958367366931394159534033833268706210773237384307443224424364303008402337888562642866617571681956965209624885796364954258343216477354322293816415030384414435343044599811261907672495443855254062452715598757090838290337928171867755407173410103450454879436752842593084963255282504417851546495123629102246365769096829304351810354675803954340619374097732096094518867044636872941683456227879956592318433970455387257510824094172909037470431287580876146307870740643175518762678695108808779588831513692058037239359319066871290293061819569535489783258436494277054207911272679053960917654173522168008789157035962963798634151244985312192978868860603773131081601300876459729824560447737109203524100070055488457093065043915530155919269682709242320633621417234118494876205801864962310474874643342339844635663390826464260688165697532645573297030188909163328147934921246802144300402920941846967542990437800931671143703923570949221646812672834404234008144446222584583838784960960591000753059262902849142738813644536457499044239175343761155734963786671906611589003772017311087841997778261328669377675035407506916896401325561492742456772225287604961586056716675392136962869107431155955649737804941866717704805685998411774071014712522556974057624776976056240263580074061551520549879582355263532715102501029502721564213501542045200592305439490326218345389486170658342535839230572444992130908121092148338397400522471169155572757534467372926316036675915933712669317072056330919357969603620420018474740959104791639295356101943728917268151416331100737736612398457128875198250468959125262410222161351767423954777710853606031619450057461381904326074172239648575208417617880215187002633692198978165869766953634510675114360623666146517261430296184346481646982388939315671864392275430650107060917388715885369338439532965690267247895913031749432057906202576743963579946209202822015259156272817103677025566308779845249481420599461202948933945558086028291237851950401437768322701793794635238826327551394954912117844615044106705899255106332949177292188867263775390066807696723960461517237580477185933035599027188640422900532812118338704812619341118858487484154971191696379676243931153436997587912291986725996281941699864975007937333486347436664233146826971477765203486340312994250169869579338997227292798940523468613476225154888729174047988695211784249246451043676120906778326821456982714476716347654584653095528567540875866040089685703772057871663259693028974116548931455013900330374418731892163730692242228658416285092675778782000893105549267760811142283486022674602357263469189184227082205245961092209221449870060866904554434757187956544815456760251129367188100032318968927714378034999504148522939141999165595868273624037252753461435405346549359005091952986407841932199200395645091758377975469663326188556099815606190572609358652887660209319367306414466978708393421956477380881290061950120034820580932731610355396417567944042650156440585641142058293491819430801528074958104755786177852152033083439972108799795390508170436182867244285900517948949257090148029015952021710949334156762373306722387785222466013627774526309480070536163135089973249397226343397215409771554255642362056967031985518336922542584730558453466828072006140061540402469387996313239308706138868104265933598743454450232176152414442098709617220370262904252068950803490338600154186537514178809979942225255161162561734213254604923165750309465881870322605073035225728956821596600624175057955541485152446826101192696997542603135394849184727757112400811547140140941968616037137392976448798391605785603468717117557664803325856140132600370246574806713736164426149582418504202695290216128528666572054478539910987043866085633267370732777464140843745140071437079175551626590235388148037572172918514911174758820588475155255728080777481249276153958840269339089033321334790358700606456133561018072389078780297041055225079402897180067432511209610641466699338209056608253616108979732955327841045871632487080760764502279848981988681287547616266746059142786695871505175479258441164127583692054899789774850454542558529628033416743393900222047137549557331030233178269385173396733215184237192377334395031471677156547788194188919030477489266730353348485166458399442703318178944403041880961423959250843530515558974108797441265945141249801191303297625139930692631750515577581352769997729570260039689725826962869676646064458295827340670048949359513705898038990206744458875981982500424903627973308765945125313765186316054684523685630709828004684575865078994311453265434664600387086197701770132644486249748651050367598294656936806989888699847061892639793088774704514431816115133635558024167987032483381379566100938249463411520902670223929051984183184865645690199589751406244568105904953692741012666627542357158468015585456846579534726360286003169590045954009773876345193221539159761789301875457467407003025036355262353580141781555900186789267987959790315047982637458806190213888758197883925894385297830872100321660047128082526257288383221884983084271807977722135493385276099087935807808892298919471608756461682819064586441015270248408776713132031788512985247633494885407252552751850271079337499261792526148154043656060029807625108794259031740762875855917622365774887345785423056269983907550331737123826910317030529928282317486973528083795035211717617085472270293294463296283808915303653238357303718833296761260546160775287074412192515367267659330747538003276945708767347778465452684785830011228933773079199320855604426130361011427403170654185008103705011877649277926850327965144031695793389096297839291082391026412261989885224947040135776458331180833111626396368245011080996233911063460853468319456630542047606053257763836886920334794427199962272656799627719501763485488627900094074184151794970686629273119508439404383900388958810249007300837506919836422600839078017908464556008315135927896937438902333855890500573851963897515674051149441568656191297982377537988405681962168709187856731445956471747510163957962532582274253277964655478468904240280396637931235424839197772957520984716272735800903925229678577347090022588516974933459618466892308806042749016821847188213370990769419963121301169859264114051830275716780811520061740553496225431280339576433066282848396699111595435986597162785740805622451634489618792770313794265153934340114699875826473877866505249337955926413803073367359241019486907005951806225860266292943942602906789550826174320625022200431264127307322906624791467791673287539514661941889564739562191377895747025703467598860810224732348517862620054986646240164261052699166586829446367037367776440620270866462327535486627429097399990599834057712792465441383716353429546335013808995637360058419772937376719252823743833617229853538158261745228317935775884643679630660014242526555672868578324409306645424849066486551805072986126916611408371530208895646287629201983637517650450328222020120756104255869674988469457361453445910940236445973195127393724421147316362502341934492771258776863499051448701632472438670386962127363618542234519659738806611242126506011537950535807045873514176171047306834041642578589534880525366258885205388510848913382550488951295508481848331664963296676778042950397062054609813070940577627744031666767084602186976695131377097188191578408704471711399718986790318068920563681177219923941079861415486844088062011485431845903833000792278336229528424043648923906122570339765979193496889508107063113978460334609064590467549103096506235024895112351807085682811383814130101952568804901179306756222977799815405941740905230565212403805877908120673602494830081059125606543059780595489983302827010444039120389287152951189177994483466223074989293202095406743717283471969854230650406008146461519024250870396939333946759997339107128589086164416175958026392794228272580576444254820866076947371611118096382401632592038169512682397663337910565712227714664723370326688142057569121743960945490945925452013981755515836931500079878279355562400020621628310251605505394296162021699180652000728036655588976926175399207345503188625714528303047190200596480622065373502205249805280925735808540881413838333464512158839881159678102359218417596519840731486862228429220202076031864002626527657512965454640553399089460606022875397380323956350974031545550784613115457580385347371459646359990993276893392306750277990604450511987991547195403424939941656160920128799441787340292618393177436323765291722271036982095738553768804028406338273839270350997605205299292652853699387280881993458161936447501727434121479537481775116059081095145309336332853444964422034108408188598394809085717895643081574672782567690529108008226700456319971028928360860288421247233517776523979002499693216973212458495503180885328036238501553627617550185723450587975199259437690417064535674464433370988706025000449405189155423549648801561302981405083868856344642746304591827865295104739017004445018535409459742276578998081345470771947124470900154212291087781970403421545607980089239111317644409734499203192778839380441279682691106504190789746395704750578746927281570393676514005326241538818731605185733448909146246146043972072263447054957734324646648852727912362170159142825022450699916283441764206983245981512351771767505752153660374005729454830174865758709758626238455065802628238673709306263227980760528545200734528713571793450360907896194350264708396123926693475306878276474332791702484224386222028320254251162621241426338175160149200889554522153080379315341540598812330734695839828705456829352427491132671815129041417783016718523754431504045510942566357347178860267823548728132223659670566124964128343708765637518310914134490771883517483359348449514920416094009914625831868706966255830002026568863538697390993366394847761613941174235600403168947938485906427484951841436458294789566781542016084901049990549604140142749058993165909446354758260615026438911219490239320820086151912653915714802706998338656080606581228735001030036052634845639884450731780333530791284439599206232469885354435796142855873489762072838830147356051471899176986833220697416272613667996572032328778476224050306052385023249928759134779982203191888277775447895012338039449652222052061864531963327508409110518068152969632366669384365840948157494741975670115751289841994949303507197603409575481475876150618288030226697632785718369923558802581137293607516996916782277121751755332364496992488610596013651444461776374432426143551782715819136885803159790231556236815914942191158886029735332746923932135512990129536445613694207345322934725004820219136482710048796468989304459465780498639242397336749771636136645491633604214389024711485462242698333326094336138723620971762454026233268088208823424725564837033950858184084018414803346235199369030632326107323666553359606174261782084465348186748789320593102052900495295394957204637381581556683131139869683298529994366142696690743529318071761040179692165912018733941282129111072064993876547201247352455421826706403218247511693094176667701616550745165911521941861156079561473091676222863601090603686685107190806427435649704152619082750548941427271737059248226324010605224638508263821644914495885944779826398574090583211971132273174680059253139343561821909196889235319633395070486752863128138101837713213437464587706292513819004457525524650063845930280113268238279545291702813433379420199318271452335066126200007866786919777189527048154869069825710731493671224682367120111339446303065631061086584377388022875559366652542097212094630074815790269937815647249399722498470642905330764005916648490195154280772758176572601033107208540392216220783625609014315873529168239095635298285548677540061472699858712731712390147291222277584939876020070426450018058229573613788254843345372746428650025241267866369999333221543131450472180477509198117303419368309930413670313905856087003613648563396355922896131704892045019129701072774692736141832917701491918914449701320765258690755663178376262433872079549372159762476787132541187373692243571741433881121647312126530266388030154659672860874879064292757526800016600636334391410226429929112368042558393070501247605361927957375178570615936255377938460525541474649459466936595086776150103923625072475877870654053295297552602839141538010549763846222516933432223083874007796322287080160805469518513030060999466922892126872649488340785652696364627081941103590642125687588065928493740991007666946123374773077108621238078846685636203041854696236375546276109677773300257206091717423982266161809450907663308210457906170806109835414428313756999572249141698466074346954160975365829476948538334601122085775978765726793396610483797131545105640840459681371144305003108195107513961582611801865908246903379360599362412324323784361867698443030326235070030250349946081504832786025086170180456691026338497713583094552271531167820732941801877497987976962981617275068065624507353687038743528371171057598816112216563022429806193811171256691680699670150241053743971601298163585907351426382175339189385472422751652419904181588209658289547486959578850716269949092840602370926249913186877306794853277706321845178157693285850415366050668906193005186464244870554066638321767206387564295874657078904180272497799389791085147689238095818567613928516634267938026631623153292534853641244251169135068884299845826149469750574801591535647332350651693853524796023934083819150748139019778807424406367639093084506338932689615169331997288751624145827555588906972960591199689217827685605471105656429060713703529938748403301185580832759002796885340678043139003417487559504571055553243961234449244109516182527183690790119572351154611341415179158435570512116894308213687602239056638529541728837973806647139700728677147746965346973848790562307446651246953994684335743922934583964770463446050045796131653226141262989525853157783558935690382114332346185946339140778741464773740601154771891975368733077649352805101145010081825737362868074822164550744555262610241952878380584589541066736136114736632139735392413721613717836827592069053651164244081491578205055333175595144105241458701882879098426681413024343925272603036487471914171685733285254706566564777572817328920137922158050098513073911630652483813458927045754150867186362365955682308761653820990419703434393106187017636825684027388179938860056425993269992759084643461313503942516573508280143323538977959588257804184753237260094731949461545785666838978202619335312650303929154318713345732526338454779956239145561816883980729967482105759127603534914254266986102551841680100996336358788772229372427075105704410215597817964079206626904903289390432218027700793317533738703999543382600268484946201551950293672394365840365995222781132020198697953964348460937211725066380042374264216848659306459658703719086613206376033092910799342198157185941747199408469517249029539192659626558329093086887744689766693177965441259994279932942731025027462603735163444601224610980656919490358372644519082544952226448523390028256334677487602687337712905924497038856558642710577821078414354057412417344574130930794627541712811586249177827035405869659889150716217822311243914562078112657299634824413754357545474760141337759375499494668635173734907770445074169373012529420730085981165876591574577645822894176160517672303990071697634436104888327946925742808834093925942526685810272406133662152296538374748614785890999512609093594421741837277716580570163849784121762491357794394841409099932805106788662222527800810114504175261541940920375503891157707750560754106474407188767148119433679211536331200210029679006014067024944616429924896351001940085570656910663341611264419116764790473914493594770957143814383326715857488474220903354140351443203463677151876870655834876459433517871955349348314451325125673280849131191380693160096701385097160773679741200775631401291081217596010745888830690406348326436718399042218455934238231107639782755238141403955710471772474198442016638666621229113728685611998161168381225945360791267527162377631529787335227178479737637625583663763375040532045844469460892631533675254630358846518494707603009903963616719194862234115041854382726054506385397292285860606595561879769325518616171628242219949045849238995332074409350656184165941171374020329995943947294922644280187484368767523972297439908771069545348538688983296289248675041719590395526929002204098499326353928917488279554008460817298002650342020107160195339508389279832048276615244238488745478398093910963188460906254618965196232852027542127122369008995164101386626314811415151016660104946089812490782516334202871654619351833769449744296702643336009049443089230896077065518277661977290291772791705392955360489752062106159375812693564380655753192715411194570673505710609581004676481818560051283719252729794343420498684856239297952210717737443324781110479384927555489836261736148706365268852616507671161090682319998259096185268467048703341127563966880343512862892631766736264074988001231273670024626312600948108121867448350667208695887193641313924890736908844779073169130689320120139487355423675819324508765898135134072238876673096381417191622657837481904349685248915351511515921861827123136303619259266228825359980952522135214328439722195202788411172596777262264139229879377133335397905046694904237631674935776213288890106441676462364009479783614209198409135858527401383817018547762493481956579104526328948434588134638233134814892806508333847841312140329937761694807612709818479254766211196270318102213993418631678152975347230519094192152524361365504433502122150081589904622163007220896831953526861895423400315647276835906976964785868481003438744530921611332561391628508306077158658931983732510145654690151574145212836036953758872408658755096517769170920810554934415022092235917379482077174131548742523131271117886062553999283967874981076392237563737211152519236270627406313348235136159556172708601832364493014899132234820247979955293265278557140629729466735045214370436223747679480912288855081190986114299885362001572389321567242341641034047658740913646332646355809499917189659454157483059284850376184497965456171946775957170298374072135496049383963766706114049419858400112317628669568200559474625002056072050340749134632281530207581711842911437155441344354385123680354071872722093727634194922234699016855554269401988229453511180278199174390513249016880220068813568049546613490404833342132227160829220029867444347826066466232011764394714868623572534022496021046628095655291631594859249514246764900998174469016108097095857086195713123399581545523184474625140223877428991763281003562078800305145645398337548168667125742293918368116866291028267323506171746770393035425401790806160871701622304617075540956549749893536524888943169405711434099946706816657016147991218506634585580488659664454411072131907655672291282736048822014354381485140196827112612104400575498272160639210792397374865313807712415122046737396333383432831643162405562301156902889122237924643085849105009154943372509035121955323204441266576671627526664075494147444090413548037000998032141107344414584457704794124855711969863627301622373499099811551157971334471797357624105191460373687416388918289936470420159012391790604378071392057840160210487092267096132786850125245487501844709769547491379705901864896156728555070470537207367192126991798049817589748264486810482709318071313669504860156613751573541972196920798478285884137524838243079647656187869736435912767096185462053982683394565014642739675300386027358888044639404031411104548071548337729863208295055390471903457224491303609213992664043152938848473189545559358531248950810878705154581030802289047861109310027718962834172493011346038272066823877350127391125842875709476392858377132755954413462036444800842640966942775249920612307863329765612032238142596713545273136494423333570984552906840894350089000317224187874685604524184747733725602567550764188458747250145351369739955090157743355824836366717198254287524022989067800417205097792606275377385867537813472096031264643502534754620336021182679677412639022517251200184795862350856366029034264048210064248772882103881905062739425631551901617158738936800049769173397606610588693465483841419979169053831180588303365337982533993735235153276583010850867334395449134081527305546876823848550693689182495910452342750153424339053030800127305551029132890470772981491281268737950822568607920481419748244642450998767791670994717756956255934018182793550301326144354055875762813206716993259328859636125251416431660775146357168296339969125662622451406070726181306669163789851409336292034712750627136381141812855110724186849462902722169787784620006958626839405430716099586460182921631230423989044798432022532428044790036511355404131590507782661770681262385108004690191908471106657224212069535696940611490147885306505736631143464530305387566141070130523766790049176260842708989074299592027501701391938788133972238506738599277465755283684231618493905615540534324646138837952558062595282190950498550296747854305232561839130650943191283396551315502439698105064212643651001127259025576145432097212910659422983176153250379463049942473173606527335943205439925536361118419019741178031783395817579106951246329291241298956240141965682718506179071254141173908976738551380584244388810437053806305391460249097625302255479611752451765629247828174241962988669398304901784980322338085563610615559496016253266534325478189432348957005834088239580202936978886719929992437552566207086026477152644391323098518126467163391425418291293482140332827233552053478085678910543128571825634085229986648401023439006447006983809957804029474931395197659967515146168422496919841843293732971243753875081663740486331438390706672131322030905509237280009438408860219520619162070122059356509827828644885161187236204865321417672346533478891621015054216836405080837563879472584721631288616392517406065312447661675903646308552238382915422675674866203707932753732744235314887084702581624221474259026188381551610794878155033867657570061254702344457297925923181504703658515908573140437441456394294530282145421887902125313896495092595177055378093667234239178633125019187996237654302589584347954055815236751753525529267475553622091500989963696524013844794555188177473384633538677481161027823448267969754365274705109126227986235632355274801136820608012365709930780934061785221325244059623576442336156239628126435947875522650098794330099478161558535389781421916095822879516562442664176905098783390147526298642688371659178113154063930970740304426305479625745507296172801162062549164283027921132134517250314996594738158314916748078002938670790684077250179006816205607161078314245392581117117824451626257225769916592442681624447942691621057129232490989451961886953752765450574765207467208614119310078111600465367906013147855529445570200317261053113819247419517381183691529761146523958910634549708995696033476264069883637431708427804910008750555736774189388111836267987118715742544009526879580432665317422779922360950134303552865117114838282151778038082135169657343001514751884780347532971347416940959648790573202570641877874267179059976217599176242026223516336006184957713917388769022495247121339993591437194738579215313671013262050114275485950323205633859202624489550686440213116944622827720551268748165921607176532751420323565609219558664158224038841106968150589056884778135648351713038500113903390368357197440989562217076493393016953312584479095473957475102974050396086732379852520237946922400803170880242340529450596135207370444813183541620688073234048452831115868320566774612703766233909390093915608484790430279679570156763081469227501713053489754265117107789988506456405987851996429011919161628831704419145187641723694695563427092361806427551537515286019177938141526307390872616933014648797220845459504585719324568545642698236919734602023891246277475105203241559543734812103448673261810111477846153839825807631476393975184395200250705370342499354036159422306224781409849205091154406484849530230999434552080562092452642445654983016831825343357997047239877943581177708811104142251224347713813992687035767226474967350106796742524885320553005227432127738096046441960858161825685015118568038098064109431193512913016715490269177186581189963086571420592249111769273104884910076163375462052016990585089746633149223479208637908711347194696817188619557705287022832800765350756745452375161947182017747926004179706713467268105742780026652329741701700964391941628181101308544035774978137338809065081866203445573814116827990976981946584764483007668088819184377084711625536373437214913305169493979797502748591279493994537954634450499036390903529588574912102403026849384775428584393645030896898767973570880996280432774755239373774502914504806022844247722491806351607247418664655710064400248802722259328038975328837097700565630316140403606928396170902613240166285299988316824966128284534831050336966549348784584241590948061378284667668367765938020447300051572735002612002656886328841598804663674434328315491764723904997960817147510831597310513150063614074913094536373763311714619585322284324679284689432907116992109287757398226554715790953003218436893850243658257136193046510373505827728957805703292626154464348093054823830206249629674214155519043203348503889401890826627195945444978111752918408840464984115376990251854549142817336589364154502285552318956539086582809411063443767750693741720902599672339965281495653348346083907185907674481773557107267871183218766360703404111005725107519650533588912586588383309444337560523393959232916880178563795675062249368663774391735481499006936471220353600533685693609892550097099166230050326351416769324458786249008693273983621316629322060386134196494211378085685896075061477750428394681699806066272239172765359007612535180194064090063854395431505145202717664787397183354229743669735296175623382701561916095802151124559238271017650141943019410032266682379625097031026025175008491661700748795299405809943944857086479041775762661424020205873132114714149007633823718499344845537734844043987401235859580861643991045839929196992148064991860390094445372917103461894256791788876668659283580888590082461708695623167656320014522868452873920685437302245485438012591652794737016818665335666968309406430192667063979091731278528213139761253153336448930120675678271935666124120720913028870795399411614892088147994722870725365042587196116862024205643356760040124671357307706198462197667621270315281336556348834911899724513538968918572264590772406167589376665287614494859563938552894564170483909698875514919240785772888467455825302577009798316107773538408095256778211416697948181658823624617039192176137915864700802034965460424556885397112899045316465694639614148475028348727936371211543981106978363137304445893221314708642959305184370736285072665704291688321795815666771899837308468240504101068679954802928965758551533782124940770154983417789103963428720545457507615705185295524569716858216690461168667468051482287892821231821631977330394468875014475405038675830631707114583459401544550076788883624505568417800478821859076755075844397374756160604349228319412542589183781617407386207842105489519392241322607949480778702336925490189618297581439474991634273946404034040715892396219203923348204723014881051632041853225481170743904023160235299143299016240198770836757188574698190038193046453548734264065504672099195218192644868552527210064242339001169367445601475938598312498316117334612715790386463644310042602091153618143874234344693268080366363367005261136316838478828559751623259320445071658027292969846511296320600212219129570064050092828827311354044305544861663210202418286621617913122997128546737203499145487375659343386939647184308123674230107980142036900575614080233790341881927090870839842865076988044524250902961413037355018606069107712701704090736036170597869834497941037788669289372456950579831240586432468258668986584889153299380985451828354009579427807153663590822853316217696333076421188267771084641148791276983230541636649336896718376794491256690668702424312461190488183967048818727168002248299989180913122446248920581347200282431297988800908729119487506503653556428865691131137686332812062388855991554858876765152609496689146746097987023575416664304791020770518152369126761466802684283673346365486931123063708733421144409017461057698711688952712740270784289327771807071783580794265390220606246649787242045204136445141445360555787235765795019985877113560810360734506694733679333399829940699731809509146730941230505600630686784957538944769393527594549290629165385440149796661834336376838575180140337779878153274120286370312856441315887483694764894006632755562380219599648683980488332030715055858428500927068776671802373094310403886618690406600715428876707932931313567407205590609938502594548068316539557651622909646952524337444385518254063333462959794902115229886555306072778491179440427607845723550938437797470927678686322058616119967492109788349662057434338263480935550349117758225527524599709910871961902394144619514193170856701859877779560067747399042781783113265918621480373389811067350281023980326152411632206466761200892778743176321733317468625518427186358480043784136223630868583421666561568284206613803990730969108745131086572179095076408537211368332615351368609909146539054783088758726039811103868192858165436576933295489809113313420561184292815971560521209701971271569080145449275304496657250127941116650268443410575442369949296996696917206481656699420846229203925191973943670070571310598916068845031651969815875540684393914435776337340968608765101231852530492859442757018438993373693637476826162063193822130366848223101529359352374169417049706179203718438116018090603797750330837966820265525245968538396365273197450660471570297899368138144587947550123890553261490672025460222038184553748398154168728261063010455144512304319956535066604456928043109586576652227891678957000425450368575359991425547594410449342813399564021366461863524062388106349110312522744257153165217805756865759821081456562060327883979436905742598686258130268364086622778679257789229747271312913458432337828343770618841149462697408892813301096121132365688771525783827161874583279183294000495476883441740581347966037437329559509050905104115890777039680871449584853843596470794898239136979821784942543105723020871024901847094598974942191367596783218013505266580017833909975071494013557359717406833457791539385794976982569283501836683534524664331244796668200767587788490269103687808843549520136219739406848374934226401426705141241567826280987283636740129209577694852934823158776014955865358641958672015724097203651630126776178684042485633641160496820325191130788065965214403653637178632833683850328839072599107769919204008124225699771516195642037873372637665294948506623985856528339891857314943200639346349719274584813832926687566675789354792878382981464456599502184863819875535223513925796720526065448399166474146240650679011117576072539338653517713544864812315856359224767568793359752215988869698985555328951972421460106336870276560694016551450441389344753637982976284538768097081147885310369677031741202670769748166051900542345210522759262194375566039161793327157054944299775897204699217552435761499229955971811160096860112023523987652410679036145904774590312155414580320270213295122898537708699178788810330029517680337113406504876090001450801645459069379727575266907570397255346117350078669583485952624120849037286694444765224729030243284402538911077854990398928632701134781441172484341395684393339968595214431814864603768671506395921949579621875806856303340455244581319438151371205112770998439102588824340069108460314836503945108336914846557687387046038632222018443323020717654339803666963200764408532563420051082656870734149456630594181911975766269072439994084874489987191082540737822670568165030308706797451695520051695662431638703648029608915394700013192354042325698059730201832952483096126853460069249617854311333241926069285251935314264691675962218760085914820667424761796974244028843292673051194231247056975403690618228564933587501763585941397462433071335203092485282435512738580636586175350725077530071495164426214353301184625004434699770329310141904756483214444482289785454231773180375987055499524976490890308177219379533558193271843411607915769374927658626516031820699761469490619378979934188770206860710512780525755329616196254875840298353168601326391236471153755547836819772105878598419716189566249549584695445908807764678064565223316323664654952041824100248486885228696142513126011784594021537157437569036746153019381248490147278253604039474249924649884768939435628608837454673380275840210345629702417732535104134599467972970426428281814423076725257252530941499545406986264687818232274232345001361334825329655240870045240251340616475388708890814551046231569785355240032670334727098367471050613007128996730161747201793275436197374327178204433991709491658890911008653136635598987510267243795193757631259099169039978316026651279261327509838061385062551599427939221370003877803009498601298788189022594077509800038927567312766075747084100330584521687448445110216875890020058479096862760796880007796127665255302682362418968230564663900938256063277295759508922638834008779929399706347619925484627601826478490162028481163828024145253278659535798212576965680901349008274318039445169807543909518259932843412427756427616476652684221328700880954826637901862509205788024564842027133559946002343062221667824915302601754076974895560001458692561772717867521237902314102899786028616364054589649989286126644395080948705801680609780813804291089752926281304078589175930778741216892419109398291687644386611823838645645109517499811422262581582934850418505484056343939309244509213111944126375403991949693617330261617770868010648240950603880786475420858679915735536230164566607635848084737811480856475639452286171317390547118675016624688549038662746390141932084712380719759561457398864598749222270307313061279393720651014897423713688672195172055018748481274108771442760814167249597254124977009293005008981697767603193948912953517773366228888158096345827249164581586926263814471748508383237152294332189809471157858109350707608744238665330767951005371624846621957976910744200011054093056162594093362352429276276008487205711407408323646453202751869262034044565678358517217017357267205883772697097581362699155858630177590833414078288662651663662749567298397534524142584920178379584706655351126513320950793557202056625144921150656909256743253336947516304539117172690521386435743126009831749041802820766904652424364865574499552428486553942535486718392099676391758569109187896666098815232971951701158977436688415566465407409523166229650631339973362361006461922389407296608127342184025057858666957382128876724059863053278989086919842059193349736115913698491180653449381042767184270525061281344669104062531555641765452290742245758081911244026324241579952411964880985695233427071930174977415371576817760456154756137139125748418080080895066501067370956238338675575425994559985129031574812061691229538898196065478747493119781603385895152468111182671728897924833601000392870355182288601247732232628418859134848442265501292894525686912581649525505282728557821722155312428535523192819255145990632087592808108949341058679028634558178674306546996392163340315776819185730332951027745340247882213663750582489141133130509094948359899449203413509496896239245408980016075722387799860781246902257259943044941445598345757842123877288205302881216959088055107746868210273336767278222900561818735743669602182235132998651058886333331911488416310467036777823580825118133771252496189659805623686060910866414586866719587435525651180640672956855976186922200954561702321109576415250146600073284400558405408118828828863791378489967037246135128681033286665172780611938605287490841472335766565938757864619213136474631696799838250583270313670844892736804553719078216296482712361296831572489336610227669785511081636646357389693045289057382962061891491294235737755101412185255215419864779196667123772380974746770276260837123549048079286908785407346890336502949095798006812959098733922582469384346634338369603593516203849600068507323297239820499833263046837703028018108304489982818296008791508203281141479901600400819829022206809247756987144805957846971597687793172965617225368430941243530282488674648736462014736740462739898196386014921755963883853291012175080170438991885979460469907442246945227677384819124339851305035950357797653716730648143174828392999170641339411737945761821408572565814600478908977843740332922337306191104024605704554186908443077639539049899908249590890864147036387507776993124687348960954019122497611268334024510601134417378363839579446950654654412783328875637598588427158861860446642209064870584565026073572733269560436749749690608313093203026414446341745284933968515485740553749564676863831447112124933807916180547008324236319178568293541664420294148152586344866608972170426595090010439433253524950304124395296935192834407946505943285035822777542098698851121737784733170951342641579848058326152287177587008405440344245622439252249368044982531461012889812188266390937481134950685794628215312697829294776780827624916667210807762157576296539232624105283518964471947277554012784575093948605242101432783558077995752750226558479032823902299012216197956036743444611058325926895610071081083548929580508321911230553205245358635359949182599178000895232104953146945676319766706496136360374140634179635942844137238686068005171058065239360634866599794821782100680577321678852384233155283399511885691822230349797558942552723396472042163273337788597104039621688053897876024009680352551492668589400517660239585506689524082637236155920536148369468264774868061031604705269789694601922607000015900439696595466080930650568016491367065064108198563509288037906683755148772712215469558970757118344193672335712529084408741236578585833446484559952726110668828343125807630395063763752198953338064238279743395920179122462891669653018711778017838803844753461400302751368562148284866255115300920839436630607404299901361430778296442255416698418633888987118035202084900704550880146000617989006406106271747390099026078255476450589914537079688395874192347611167830081703311107186992214045844070672017961387326096714530165258356434747321321598830134622502670741322525581220319987458286477007316525905872863544011050020771798421686098879451089498462848112589549084463120222658219360659094989748863653014370530856466330817007252023628289695951722147687354204330553649994393226995372033115121231098305057577673093545192161110242374481476021313197878497779265716456046346420225910349419044932009606968254851498541125390056036399313284053178964115429330366378043300520455265517813498130587317838490825424470608941350456321103124040456889316638092636246861378443064630782663183201398185334076358350460198528864995102235027722218463822421568940401099673175473704617172282505165616025457300978556270331480279684653143283157851528762347490748174902674840167041801357884692272754376777144193302352111450570784734216756201351679421285958090467002799767666564742864751328921640439106364844469917712759846740295937747149585283518881052059715222798680432436290728730749980406314033603126323797161010434375569686854089507661042463058452292586208747392003338395104275963034128063070388014956117020359001030209050254794393194589646281200728217012189486038435577473870064333709392385596556269315373160183945305249024505992491095848542608793729212625625799448932773594910499825043136703656589356065658988132422253207327523802663882208629196979090656936127503809089849420317522690887589321669126725434671225530265462762273472429135054554017662493151495634269083256286661434274047748016637483780678021703526016081035062972955557474158984122233424666019999225093434403118926865828043242481260516815758449176116819650095656402716352338668634169234223398921749421136513598759512756811377130696780382034745403426541599162026971967722689211336852453306957528191116061510414837882575525040708729723324546242984151504420187146274044623493836192943479155427317614731209465626566199400456590835011152155932423329334906301912590460133233032394672762490742185946395446964787082486423087266172632499580114515947769005257660523698073573454959691347033885842505963676935961938352811938132783729572199840475221094204252086021983142175514741472028740655958996709217374640047067945731836427456744485412666888607411491342851938542542619153746260944235134971835983135638131490806830575722585182072615995304768931125340756420498415596063353106169743367098582577734618857875800485403239569616287893311716889231567392007779259767669725498591495417896320432712475764480592499281911830074154628830895863410606569170302309110140145944651998674416803378244451306883879473918406984293623608369820467839583812031218190152172338679524185871998650892706550783780179400518030795522917679466756400201503127346429120973251442315509557109575548732430728714425488187160967119812148293428341191120507744676342985225663993620473821602203703619344406264138582236754591628410630344500100109472154801891154460907800239664055920002569870498541912995963105157470437707118380289333608108261158556442103111532402911763790522477794389929524546517405081604047685170771163694648378482173000718080615572156729249048882270114331240463351628627201213457392608839211689986924347473117646450252071146539054900475053150337435361913644537463493849360744915704085177367419187460550564637394455600314443703439738850076089303022081072186611030409136287180660716650682048738535851122744684531672517664925104765719071245004822581445109972755143441851673475040051040742366306076288876788722028696070299748411390916091218854059281936539193208615283284711185822876284704519388621197467344530170296517209946393924581524647044915989854893761989927225143476755890695566897984104546931747830376040594132109814782415106287721915373545142841164226761004856042399328711154261191838669453425162666107785001437918351722829167657353369479407573793865871389336027754768523262257093621541148719016975445676460550327146634106408842151986924381011130918110918966208993356399686135972667376980429444845864492571502997933834084580593317892438793590847336176771471714157378535991514953949290425982482847416983561840363963444919162432652224175005666859806359723155164878093831463605623576141120514193904284063291148193674268155778976097138732502784780068210087154287193153589273066295067495646078157317077138361667203568313510207429861713669289562953080386828152459987289735707711794750951049951532261456048804972660966892435188652608789701359654226312920399977277572095606158508167880794063978673935496285053950843599851275011788534501749280693149124465437474513975297552009214654774105303698831850353791624229195732121136122187969449801934403489475001538715843453206457204945045611114646589697647215730270980775699429837501542820610349736110545997387162452869908856524622908633948388591273022580502570265066224516785624737040287288342971741298577128481220159918849146493391841941474115874691815342611424215777764973033360336056929525625578621383642803056132834417197684510748333567843587105789928024457250308015363385753013338360784643365577404007180558194102788882099889539802633533011211915797460955175208582773719440034984923384998866555803375045502765790591652220978354213575879506140465272968460957652921335919259611838180155724295078698080744027433972820893861172352117627607549512939465651364994377096027995796894508323955726863201789553699377544491589122843154646759973778995781381743108400318972484936654897599174598594785279866834423667236756540921156227806288591726244350738578435383235379096706441900582061144971553784100251936877859031058018958533332288318491729662898713922619701071057119345707236080468102929787581322129610318771031469123197058885328167373047151236344310363604234441150674781658890630664571874999444538753344156422741170086467228394210644477433171753248069067435648118923564291465213557804572834891684293719802597731508328343971561665604149447147702892536074760054078255096284767207505796207640554194423000961981617663040786966169936823151693960038496658639500509471374441746593462092941260237831628502353114439318158895771212449520247571196776673558213819635580494805040252507174441824777012991129394163013370419784200791377048162233464131360931025585602941649270651116267872612443172570940974520072169059467689411914343743796375292491844414113315752992775986125978872793304697047443821050336302856166643420090419263069750623563190991142551662357951298242305103380624687200861298497947838935186223233333591072483093251229429105775875135405291291037856389135347737839118849645761928614817726173175598725043308077560808551238620188426889783158985539792369824442109717296057209863347415965008378472747386719180661739348168030498866650736910865788056292631836704349685788235015841206743452024537383110894073616103131664816427238920191427452282758574692041207014527340596432590443805438107292953302365401758420493354474133556260689960996031783789245140140868398360916374701168676523131510094568920797674988693115898717292742838715218661394601421142236076034860371604221789393794952953742803314820040457346375057094613690917817989637145807031032928923461682221219927358937624194592401409371953554939483914892141532736005926631437585902824250094498298427353321584315420418985062808989240868649298791117989213015893159381187813031339860892445122864060365335071805728259559323612553115571435976446024885172504462318172740472805860859031268704548062373057871698625717453004697990122613851676331622024977954044843229877509002219758788045223198309599673756122508496409419288298904003520744414142311056918904825481747010605695877213398038607268682881856872112215269576647683791872746855603554732912830243349759927255327622629196883087152454547869054906102956610479449236066688700318680324958484992462209178991084790524017300454334741385059251707100063861378783353588538192111797562305726226820200852011555769086741014059753183929170945299898146805161697236851658734300638005970750077177126582048917585936233709890820054708850355805008532012302004450927109043717195665333163531071393898572656581155466408214727764823095705701881720782391366751361048371443952413247896205772906369924420125804845227487634665568200127153538951114556730919058346600281303330721211755381651253036611895097601751830326867670084144069518981864231919068091779706119092301075075264789478357014048151971758786695739167429880574187631658931644392419154317430097987965788647211105797302415318310122307582721489580222160479637955283840354605628105384486241233275549684095412333319777522985828355348458612027109101177049546357686408506495152537506306069072782555937295200077177802925072808001459884002128965821737173149230459695432697055110267533740057948291179719369124985188713007274255052252771349241261135243678080274453943473075788916212840443733967882562144327413097557480189211099903642070724464171185055354084254492951566020430646470919852447579022973770989886634789533270009880137536132351446428798663349563706298002670155882963437573971391561004343255529809447183223566972733015077047322107016322337040849615696355747771728909174167834698146042618797030420085471422552781542104234186344077563990491237842664154058257502122834427453918379022188174960453022514316927373598406689540488029801625024020713324641470330907220295664352832486219259000102820519724047781065919061055400713542144852732381860013099367167247722867886504770292362611533759390145285898158125722476380934978176539270085571787462980334908361380550265528190357342391552756252023434268838935153715309052111720994683818101828439116232912622118997747704149343802132341357487699393080115563163617318448682623004565586047344398342241901210350481274673142471610287031859063539449290720974530234277551291560803628749018992568090389262594984315684088127253164591550372310120444175011838530357587350735367810467984565944258905961141092737227524603681056378447459772689599544809731142148624136283283748558873944013528713104222051359171515872672787837943653477864623632447308543250559300538981666319120717165156751521066393508579458996361867546343486709681839069840274850451326014806403439911435135490963369036734992632707160201210747276234022229605406312513442299893997315803293237238144190948069673743509688910209373332690547241833709802219480121039559242280138306052475119513028488465136262272797785757329206807459265424780055487081748014699660571934127812823665615254108237724248864659712802361850996433273607789374464854728601416826758621587769681351054832082583595345486148216433174270339261942730187554261873946008633036603086748275954176922798269105560796948732402773125308294275725965532765300547878216272890611610741024944226381777863545482823787753063541719634723043723275930343939907096626367282383302780858487211459584808274291046335126159118342274237387156861503322250277309184443735203304141302853556930648841138009583201134165954456119090042314768487333898084681500559450031689896501804461138063688856108935223210628302658934400450312099631749383603386619536726037952032407848890620443752057335099166256435180133772177181500111820971520454207139282568488864391813048372237845367846863484314349458422982535542875025029586347756338958568738719571287080075761049952609052106677365414559229158682890574814584308892402986629598873246212686875351542973865885444855800649605749512684981764091373213485141200879015294173909017197777312348316462041933125687672063367076924255727664949596375098069792544102656951971534397494078815329753525727020051475007693609803965376231077629037513682614690995963737402312346834182259535405882836721036154829225382751357745139324628004709129407227222314678978956828427383223405787897068852028859092678640414852019576997829698669677314753987029387039811133207045732734475896636121502542295202961544160968122297146042703395190718514654616614721092843700936988662946895085422010734287204353116126500395283842856111716405731845415755736813577583295585603184026014227579377078284298367136765855522039299357758357245615928114471783304706069610686401525834954609359252815580164480162921242422345606736095911282940404252499500341273063065109531477866688461765430455935904939963249589209899740853775842058898707827394941787538594273229532595689176118863267867775526060634229749769772581776836779828890408629296200411717542811356496949055676366998250544913187613272655452634609017655435517971272246604084199594188581408821954221895108825802004650009676866465733104351610090247180885803263222307572059261000134495043849511034349841443338421017250904301399400716580031449472686321126539427579521986490867354206165865854985777280751366095368728268204285302396004989740096172596839708259106820981068701204322751410089771128026737933638713594642960341040300929969532746961881266149504779989766702318011814155533814029220999266742878069884998458185041652424934321554249956496084095978056541470461589916358262250045328966288980850756249947148190240745931649279498515023516480898514716986042988559307487666986547581887096891617813361312189447626460625461161793636541505324202582832597373092988216358354775012023301170381074996376882770345984329144041605866222277003055794927667717184056902469639301659551609190681004880980648703270470916913401026493766307600708741867144396603648040109430213464817334257839485281292583744617329852279624028684178301515463768301920587506700609414687043935156583383395226918284382747416588984820806083989280708624065861043910315869748293228933460690461331799096304576364019303255855797542601688862690020714935244892722548615201940752662181782325561367836984521198302509339135134074486433473755564621473944558344673995105203874305791082510943206387053128533333861304390643133330761718671871565116369331291283803552646523168901843603313857950335995343143383210236839499780147214450433599061131514772616974976656770206959878464765389541647544219991626926751620070025319952590595547058482127668474023491648118443564807289659949261183407729950648991483090428113390927868051144685270741592059274616720392656094148395575589028527557446670324521593194190696090011964680265558761274393608879424060529367419140224168686770302212642724909066785629213507603368628794750655433840708276454099465547807084641015873287597500067637953880377210796971795593496936201908033141124226395275528551708378062996061699254405084715508785860117871547785993854177190616026149038269562266092194979558708569876052241235783667015409656376986388891025371507382829319417628977183741586335947681388852570343598137229305800221014336053397334466869105968477487003283845506667403873448805583855820438733327121862142030477104353852498272600863963867888605636998769242270912198185022325762866153461944126762034115688184314502734083227337427187041424201602491893168735768325445255442577217771222769706755434541476518759094305617295972484736837161337011422528852074910685790304264461453464130043258639510786391300626416480030188695613765075716331762439481714386710541666723616389333672758924117955487410182560998775560834444139371847733780825790808840090192019493304546499155390377077282488942940840268934941350874381211188138008769661265653335306310402300041514708620898932688898637236592137199466312444836076096605894428405685397484888243483886538782124530459743378387907602691287739535125771219332604717303264094605581180869098058084252232100103851784116822808600372542692601335423860944523473947705667984285567823326995615944653063479666631981196179365467831997476574670414504415820864616975725900129689444956229460372036008949417644248552760638807062316458953801199853396725842333678378168863837344980474031936578819442995624694748697119750663241944255672989043268466718226500619736736859633025309318903905479554846471422872459235322160899587271351651009998768831750885533361473404522075532860213905579192395975630244697453251038378092134407551257784697710353051750919729052259169435936072424808788195591667500257387489324831977644165244107268822748054554841086431047563268999421407062322697832282178253782090721910419413672171941208434525855493128711522656820674911054748888443276096752188544692632748476917995532127867311259596739936499486521598768267968022065711462357304693361600172387456740997765318644020150390021804000675094516978576826925557269758764657194233001264515358346445117170777543129461456460241912125114996868364962553970914167876652820969961523957641760314440318842870680467754629441826028907828059864065207492130504420912211543914710731291551338782194963675899393440816696842483274802292460908580808439682729767407337111560736359202843458786650152419593118311184046092106388120408348821109968512086441097473216729062257516083347598780903801582566306491583294997708646985421721063626202818353868646230678562170998404281442050493827238905643595470530237678441774348554435685064736013868647087424149711675104018940648427954500056060905085850001047130483843263207636251102012075572741249736777999115940482871008789931194743793795673383847507374389194029561386794528218572119617146847598716206152140751080984621924820612328262549802672861434704015684051763184433070541300396149085583445549145057271578396087196610990639752948400681304051570808889927609703458251153085073355076850812316883133049965372282158425604127840848828602810737797983764564115775137889249633266146836245726671476482482051670113065441950005189199918707035515942826235278366640536612926969324854989565661326030576837197908652802215189360355967404462524853455877183162545889240138098028909068514602787128209732295608621177682030390965071663933193849981097187884481730666604201626542295446421121985680991867987575025561192251833777494222333790002133421894415576652054502772981542112658193436413720193917292410066333499112947435356298187165286091897829104677525702651938571426329394720401033568001080069088421635104568753794025861483214439530160817467892610254185244450332392103604252891371814588902400253050651466175656569081404732957136025855299813578289294493219143150025103381386346432348169445048421241613550301572453907436554354567915039609400603555180035314157454745943857348241380770055520795876623506259384162810443698500818915446246811922376724467103673588754658145314453334372035031587178227937877314033194449763962699346180154648442103181685523121331082686447233635693349482226925282442174359920678951944561768400262227780212242126591903948533894030893291331028934782129008058972959577965147858211036127884931618336533978361230671283459800851601484239151849108550313924578041798739275838932056896977293957292607694344703569164213818486299361242778567179021273981917039267253526074957259610791842536909976130021814213880119525264294949439812922143729403370383083018082429730548403463195230825965809458009717317410634951869301131640038455540881004809139119261008093025488397827884524216424027384430763912939003409839883261830350004091845039758230921540670004814194900091679738746063404472059180907143203239618536166232597955942179120011805409045005383184236663623743009497126158151446477855279029279646233970597603408969847258269736210956275727999991494179478968686109525694862298038749292905991898672233351570640998187985281570248171204124513351301677060853597759805512230387327575428392922974357578308119058430393486456879147443968025065224235656544193464531161507192821015220572360524763003017538469643024315603020688003668898926133394253342428056338120750861502119420956777641967707323852936427668466837899061958114444525211403536815605787452015738453928542731682270110890259133504632908255553364359796836566224202628347993583486527897577009198854254383372943769473564653418696773347596268149988423656982554093925598747470708173713229844730651888392810673009217758717637128983919871823901449980906010554211583197290670603138816453010381246999059745792638843229455098344644217718345886464499610388314195110762905305785437372014966433156152248054429762440192380976244171749212097230808132308934536881646212484122016728844602986718882072230449094909085306412741601923756036251667810906510457411447526478347906399772135388845718092269844612301001268739593563544291582675087975342193193337681087876484855179389016180861700225413974072417219205966431387165283909560936618461815072103666982227040937720573155714182471442522341933349085275373047987306451398725967225742531600254443592390959917517861269390497252622903513623547372979342018444585629767200518914653661710162073005386424568786740115936368368619537278384706101873847182941024806641009086532417681753043072897862757170872111457143525025874288577015140898758861780192426404118564559594773148059330959605970747877973686622796333395262279575123693081042846838598586343903445109211548617570245420600666673451298305202434618068491281644712490553254701633899922447933475840166953876829556019549820527930863077189369826364620423723347832502644506976759707611070839791817808612265725809423078961989362348418423907524630156747704296127695516332830436142432406208039880637106956985515761998096786162791663706128944337619742243434547916436548094521286394324378695318481169771154786664409379308159130239309052386197479029205242048302728410819048167251541636397936400270651486608287656835496105559197676871064228812175085886569034641759463777366757801738743706783179890569177778824630645107076495977752988458775964422124295864351372902580447473026656465192072274552346498863671278832401938269724551568783512735739841473650745968897921028480394653297459264778622320266887929818410397655543636173998899956824032062222664613885830177939846100460585499384026798756811098638838735527948527473774339428854919913273694204251764517606275783728141001255605661619806428317254381250308733891060619721046081990626521788235080301541695364398685056207251146641056458858041456479530299905845884670815081984543119693998314001614827311561394302760775004114841501000393812910287407349021562838070718472024327420516054420052277438487995219162954274980489798321723747093283764836805147256416988775122478789647885318794996497208148131658933483734244556511464314235249719187550109817267743298791917258969659230758341019769856093445952553208850717728562665110381487316955878426363062692818057956787160252005171672702146581249559452355504734989704312865772949079603551436271626410093740171940335677539408027109805564887991506018561278319374129019443813566640303349402451149195304885637177492304885739203182622882128417874742243151993245517778143123680130376152044489693377287102963522777984242570876486339093050055585290008051772739892951417817568543871131057798219555018443102142558767800497117943252771478428720651333336654079892328695044376148542043013506299520323150745867104625372563003550393384984438763703836655036685867349375793457140437863306427726325825396878151763723642612467992205918676351367238269871788042931728499284227599027399650181312801095882071231526136202207522156715008830313237142398891873038025466007502064070881392593013066608458779821319716190767518373814288427452642859820349625094853314619784320249419745756566196749837275591979338983966230801582371053248295739388229519682195269765025940268556392988690813860946688338057193427115517113973525417170691138147675847669254270231101844520369361146337069625904516732576147604030930096332368400596770301329585839439087803847847422100860349446940608916301688117721157709685897156482946139795022433360585348975062187895904255325176467337682375422941759554756877830722297966064983615138717796707702661969946964727857741197891570564074841805352069116582273590635318785668788783327865637265316104027573406149547457393553514253622696763228661462261618384478055637870479093579807919904176541614757192240025042069346280868560137850763445950125456195792537815645238841770362797246799877612540175461032667123144927638654644176905757697666642023127018926598419878856483640749987377311386435997360491907072764158039102103715553906857949406722008740181572803770085112415484125062014146226628050051647447055742024031998422904461069985826901011039400658718490298803709547853615473829366290300463429805740399942471200858196841836878715651222345863361088557145459060349976769920882492271013822544955214005410782777461477593541806134876059699490153591631539673545098355589580465722219760758085369334725929293255557740121738725598243869992204339337439372451633240051001822847897774403066902379328813944244400706480250496663881798315145365360165091633802022108104540891322407544771247544873940463562988305870367372754937643055384959753858171439363079347977020647529800531681931242676030175074978994305446525200645838949109669606294951553285434909958645549282294101430331164261816475769645718003907674286343785598831221665642008032139733869029630608660755409785097302017713607926396838800804856558053873810349079416016250857216873675813660696821319457504085784878239187765206976500635038321147123400209349543598478948935471021958983510135968592687726441457538816516820118873410270437715252180347557300962510872436646811499665232185032489564349220844273072960016425679209650893599758230176965139059168415439566359251362886938147292028502524431904389733183200391959229964284239770198259497865588072000489751753525190165623169433318119697040385242955953751175861201811607089876155818397927646359616845608730045388547957326615831893174767902042841138720682527222115966658029436015188851433808095906704420377105935008328752303973513784039026773034181544699008272643157304940835774360272433222647450218700803226528682891861724345546824525714197018441152086177833514092329759143613409491318817214256405394969259105234388238241063110798156538448192832980534108789295251085016398330496486402787288996612444174754533416704287413462645195152119494247356896281678620965828956666688477104367067340826940330958129675539595747436443416851847995326320653666499069249449856134434906686782806864049149091938501289028881401616781673763159880103368325600919968848324409904445040050082116265579501057434017924966735061365762227876815849226972977161641640078885555523446270002050332079402146059955878587282475250032134054263685085340491293463617353871766683570897413690816640842431882218251056725346042555780613073896916775239429987082242084730826979400763087516311560280726128406733436496899608806721008085364663304741765790619927067352229783926786430491162402214478567052677803804160688383938497845861723519531750330246839707137474811754446694994404239028481385843458809395141196535442604744970882883856318418512052587951727484632837337782181229798202990303970280492890841263703834448365763426680098168118971812876924719507543767099180235686702772683871321838179371434796595705687819275715597701255811467551404625216851510075054762013386148565381838553179265702434445055983890677517495424991261079866153213297907664925211264282906890529994467355850270329320204160532954912909969319391754977505491631159416756991477873873436154459525980952373534812270995689064353229574722883742158997870971831734102586179322243164938538502598165032001805564267615216194730448579335133451097867325370603954446554466403979425250490991891604209569600408021957647790253762817479187223037049950413912418528944104853607053098439827500772720176127866296647045509767302096147678681336940144702067476853531376920511065905639133115040443861511593267787781666004280784281149474963445694421364941856439476044256689271267473903646304803522610403238882786663878863398459725424968333814438283581331887213307539977399545825234039329297113102984089846463085929319144382222837680982912967341140639529025455994423859355010661903543638230341677976896555518600451776410655762946908152962884301939333857575893177787221067669275705751983248977930093540090595356365650501203356542130887904150643364064288058663778077232479130660624271440680134479978093405636571988342286904594803010935039477268229885809616213376388023063259012211571717965007621294813189122613478119421602006215439988827094951927278917280169535861783741505358575023917200353844212781423294499532668094922424791799256527647713572297731052771994844722783482899193780586198581782188835442435464337350552348720525878916947253159975545773500583255897011625386326989031123006039259668730050919412320741596450229754568762997185350926788297478487257160764040547673118715387068429364196262233373177686766334003855387726381104081599603764177137335803234687076600552543705708055495059774343596170430819090722082386269859014224226707413121726244733268574047369714967418204311165422799350696760352421225035716797617488766446040628505963865393657055742532945701555894784020634822585824651375164348913576720917745092021971078668892415709348334685514492518361323054779932150606783642303671938134659325599128690457095948829579922044932528661828919176375604025755444366840034400808376468934792025624903804418671993511346013920610028354805761138406210361702227437899324423915676061892743824401934442199248005596439542787902973894613077732082167047761868344194890647318809614481277316089493184596171880725254402360731742622400684581323099145493873704422608371168555766502443898105845040600438937403970798596024794024271452300315470736686998641807327401258425715222915378842347104500542661970636448494686871137803681464815420388984599794522189211619392665393740726728271041520233268630717424949294305358075648442927470113601767971342735463693901206361828120138021642351118364479164347522962709191152824885702201943221700778824364500190081069631052572727468149537367660928113750228591524791989720546295622616463974735056298290725052792603163865104725324929770066409911648147675189950437500552739548881853501504400152521855795113241690038880332053220981747465884859463469688428264226144703139256059391244357629882129066735041481824532726922901766440406539744744852635037997865397955239585689749897223217764823471477617278239928662892357339379350267028820278145270951517952188225996452847061647021755588839105457141328924449774709475611414414166103993791338781849064890529471876601941549955862260470982534718947793859001992531098050786130116068056830511159752061563201181895217985010935415327713856733444216787654415809136574425924808535524609324285578985479266606754266526598032647739414969358513178211809576202830689076014158436277849486259202476755258670170945422535040719327573076751372429747729573505154746707043894501156902374479617380575220748563581990656781899124713993001445636236666726450279423574152651070738916243971930347530551207159852337570723671787314985288962605981678620216035289799927497342525005678878689882073038728717715714785000623553541295002757417309983790686116291662226521053766665334224430299808071351777023903572074101019441016911937572109548352279935094119605338550867301264721876509899980874331347367280866376013745033493525294378677417387287914569926856589603140545376610903832997462540082274898399977021802159601862514718168929981565127334651563234880883652799381810435884762171212354692615345953697814952295824818340601964946938103177028317156252855854581976260611888157977232598532898779016868518752400861144217017916300250183009661051395104586557511165765275383549966284439526994204616246742671611122798070312924964707458134734496576643665608471622352554504068252278946010577138817995188934088802521838938710577346751021952273097444394622378143135316633647914376157236104679055145988700843446006170128668554368327307056947871144439169154827363443713300414001143550660063728623868894281296951795647465326170869257892873742218001332810144994157260230551258217557324063492403921489222629689337478906689309377550269149962218213164371112949814942898158861225853932378372674170875288902829585320630293398463952608630089501392445558602706433833458143432790440381963497314765017150170662366054866276974822401674924206117871873791059477247570587223334922639860078565108101647258626037916199798328785782922383498060970363177565188815869933212766862437063599721908464733467418794506355967803604269736451917950213983404477843650474230824109394692321801997606792708479115676791834944445572153447090327874314869998866878631933232688164109629319472217672536886073603824397751914228952548282996567836581241775634886766518963138017574191416335125706470513185181643098539216651967431584855234277382678021685613767788674614432331204375010481659505362358029935370438375136877035284735935282010676649490783162190571858285241053483432442306972381088816491758219740698732571903604643413084253122411636715030544958661218143532905408590893931517648499693514055726646977697664609392967752842530043291916023311982799187180439845864535627841472073807254572564040850130948220215310447058515568908264198234880344205810790021369589333311709678472965364002349099923158528421387418373222578347509962159236804087083869849261153932069329044096217749467251128681983451347569611262447846431725739749594746306250946228525516683907845033772007434965181934693080868048509106629241104029779772101978125143894726909854780728578678695919953013450775802304271074151716148497394006449528436885103655912021166810134837594966898848665153138321886915047962583548014978303778750169191580266275446418405332932534937073300238920051848228112766695719831541437229613874098813355638082520872827242825517787918691902363556705030027063243867876755538614899877179893491527520129423802701270090424723579741559022188329595312922506236354223519557166459865681334054224184298638416552812877149443759743764050807159388309796041383439983898257012078129342157316537539829452476915079804625964701621883653990410793163001175097618222142569654089218060742845924468402781299258479071540615493146849365657926345615991987981317929870069999015976268416453272624760961146960814609129498133565094041085169590049529759292531565809052862558274092698509537839480086302942898845642796743416034307931961241383236302612489507594800561634718659888750101708864873473758766608151654481993857995501929174998167115210405309008813045264055876931231614769815395402435000134636847889189771776639038532283293441305921465332772240185261756668890610251234340457705199158726796922525383371526909749102422692745690026244179056238122988159946433442006859588170725041706377120743450740051552451340783215458656419961695693181791139044918341080569647453069174899978850931596096733228924155505066292304917433263213711109137512323004288854077006801838916239021824937511190020134292674170163017295798276637568823057567273037981360717278169542639526639818403225951648937505786740670695485450106934134396824231774788828771282533241137863688869599524110392965762143453994077972171765253894937035291635635392009440869889785003080822684811693803894994418120138122144739026923220853978189175850111825727084752871375271339042942280569004378667836482919109031077012289846266049104278817836482086683755411961489803463920224200257059069375461179529157009832187165717422479498969717125785627008403977226750811810434448784531775008799609448477062819039412188358314645713887079745149541260431759594202957184113715024838769240589390346765458646898021945787986726950462703187208806884098797232656413888865172818084397832320139229612962231645499526081399148186958220353959693316337156465953659933609208122747198311900152644812213255527738563989511061992844261631429737870627616164118929715898988976352009766658988938718637376702649859654279934333819952815570602135403989053802098778673803308304300276360239200384451671469483078047396465517731696873719926115230125664474828903468221715148200670104117639013001289764216786046142197426605211595843395465589842512370542986131334594106065978203612082416760037216486394403213444979929544925890098126818251345507556010774564482019837590167377514256922274953883046694424602893239931010975731856862877179175597425444778896820678161378336293177474634534779006052330121423724665518401161952235937271548725905813998339818405020498246421170552564861798586625165092240506838788012371157235564255360221940249935014029679175852640191508890485239164010674146563450349136095623549217469988293235919415925553533417164800810304087161439703932711961056920932389232693512913020063171286777990000817759899099213058383651052692945693574888780814708841931444227440825853311128484464348172114200753124713709628323227696053442576000083449496570914760278249457186526819863226190435513150537369656429468415125403739135113615511962143872956993525924654975802273716324576791537629517740062042183863774916361156727986748363469509646357535416170093867483470230301448135765716109280902217681141182900745087390159919880349874089996475075221912608936445509241071344339383868799513858657254408486835164505579712856324009569704547388512351828788503055101331799496446965369292657116939852485810168349621926723702212160730020111891479261574220765870393614820619780828992002190942449031768476426828862391782980006352140403925231051722255001334532548132858294875471934812911874441660246495420915932102718208575558659002124809707960427623517679129060210293535843571927375450354761804152906127519655252872012924119727663195931503689707078554229336644910036179077587673252900523490946514697732998972191723554942638794211292656524437328162130107357143085989529618024616456577421966869942609460778379253836228889046497184687428453775248786645925489569460699190613095203925169262642743855827171723538921503898327611053438959862663428198499745994333932115511167567683453433586267596694155418973039134752729756081456233685666243509557013618190053161829293100061192902301521011004926704997009766313814763652813515632088263074469337535364321700710808362916764031267975471757599906027215039161806866667879387826361862665898653941721875768792970874382955427514893153882430670096608499436714666663949943624736969826802776865101391581769327244584498602138035119360459825371221971039205821197085764163063639124495077055830462852542051344037113296184980646085157066547970102014371092212996974613259578877521914450899374780652821574990249546552842404857382392399277142389781599209591574956673476198835315067441719436452442364460055340517275924520746316201917199341074837342535386538441071396470648337987244911275208765092661180870721782402969939845532447703717295314906552339808084088136065418644602843180521892147677917253044048045596350939679457891861110293907603709555576277650900609087438484677875451312456677462815467446173504303049624058866879202112022751967147958848168907894847349177492403436139326361816629359598234720321197711214804382804814739405124873403235191285324046112000265170889305010784922580922150289661645111381332312227016084267326117355982286846806342695367168510547945188085238269016837732834438189153162993655740165352501949269070519251212967012037349635116646199997368344275773576406072671194837353262442903514963960066823763475507967470666427155492684085230553870759577323996905120371934066923285341664118543632200376219645421929887890132552864033135284009919180950177186358482523382122092654043550655476988591098278958874589599366470537771515163366466558528909121517575567340706504265701522168565297155232470295605449326989234713861425382223120486919542283243459222759707789355029005433340533339729247005250491413428777775597784059141700226989193005391858996660802088523875684124325996634122973499479256151035791672781538981849136317102226359716589410702484144988793978711380710911157845939982093070416188937436820054014822936211247543241243668583250506579387928676164269881926952536577154123183333349065919668268534875902026895628241656389736670621901455339571942317060217457040281628269364163064596500736085627683609989918967682764032446855380040385251644449361960192148932686288946784121607865925916878197556883472188893862126543937404290271583511626998690206305251744562366183316744078508977814552627657761577345382789006627169438058618812768745808773973877449787830275678259621366815157759126357380638363063436097709752607392199637734188110935908669689334560956669034979054919404506897531894156300053133955088682755818885519138666605963040566730040350774220775091363608816787057039560016550449842184353605158437751418315157841509875301057654623086962193705656586506558406067024963203007422356038187244448539447046272549049998095922429666175835650681862525802416842619278434151453816119906590347693811955996509677621264517625631281875673618546306005899996173757405858366367337376226902001265928411901351803262762762823411736111940340979095621005971936394505215454209182542534401098684107757178291630317984892466720395955814819009190904903040102410795551826131820838832382092147544621319726869234936677558511984648889781362915301885054817946486614038479915001073301822911876640020872494543446901889844804786848608254778958481604854636900817390499122024183962209511330074860715727219476648899418130528392459825770917375004592591667141117400506884823260458991359250683525703467788083606008053795349575035390379607290097308706630047082454189270969083718089840997094474091455228844919528403720671440481540409074201466177852212923169735739975170252839608426585013026156655445003324580734240397055471903372873361159872706355549129170547443338220996289156690991527309833448148002136493820437579994018587831869383291963894807035222651261435925173137191606647789069778601711500835160400100649367330991688431549423443126231928221246821457686131489762017909031505072404133123108766124989523779978567883796660429783905085698714391316743073586711294208107875311031948600683928934243941628869854140248887801336079820913056322309999785690037922604798034051432974594540383608207561386180208907516064593193326115799206612439288116169087206008725785662513528579887563923822876385245724732066943059079976825601665264273625445045329118000838110258676696155543130811295463899650070438040258017334067142907870732920111311427124467251885094756344684328460169181369841960873040512881298828918676477105287021125891054097883010943065247335346867166005844467405020514096959812968487146116388048480634965445329103207513535839993193742574539459446098994329032069751504915828627256010232147996989869718264773281331240159132003593579504225023682386770789479289781527484814027068414893233928899995351336979670823236792480295178192901179829405595972247383900183350734815051252608089460121647999797378017126279377939710576234332977455983593514611138439185857320126913434536847786521603926614438675143957422130984252793345692260594017855429094730031035994601028150320954353557936594142889572469097345439954550368259765792457640497726513784784789063761757654710207600231644597066497522294351370030833829373307602495979778977898165121904760335890406308940121319520999820291421734413588296345293218354867748889110529539212393192183903883974394870188439710275221446305134075730865010381707305604066623983859065002607974584244561632799187713042847072365376901179433499368158190104576033739880526123410642331188135807005487494879263988630763199447454464212444870658299057995869009211741350763864222351397177293407207592709400669122624094779610147842208021359537808470884035962223166358986190025723080999200477461063405280581439028095918472832513238679766813362678311936032304170206127629385197480446144301413664546447616018888759292877853889469414554224768120161277676307270217192694194779183920014544754875932186888562896244788049564884327627662128585766173014893835568885919204632389108609865284999005452653263753219128123370565897945497772959087849801097913419303411317226364331489201866759877303802668747693328292621607873105604906695786253346484098367653267013214549820358939221321048604341637581911635567810634167367603431442586147449849500884794963810850032028525589403805623070094438508858563234867997438552012442863531793652832378416523257716617923891577105107923602325670341454916867941887493655477869179148479625419293873453417079735167292749570137038815936368740790636535388596137850783781803276619693461218743998157444816173017706436802072662780881908898315132792859692374567445223573025652067874565791880121651497998717847038628742790858703851029247898145434660796731882702159234791172861728048351594849151461323664772496297181946505951678902068664716541192087216254831453864054695841581892283254488164419165710181836110542330696427344682351191149748933533076227821723052796191317999492960772798652020571645583466125929357287643132058701384160143253039409512489812045363609864020625048832481882395761009159262094999811079395888406876625483761786426776994855528912764465313859344342242116670263386004285418225805852670746019242281940933316930047725387839617888066363850059090571100775071577418829917416911490753585333911992248931395883179031860370447090174027371431321977067247436486946804294395839337258915260382713318082641553778007036149860368758314738706022270949412638098682642637558450476095252002016849196681879063470615771482571013415992544780700264374594406519809629513475480182696761844095486307061292272562660520391460676304419337583798381988441665806651600526970352804843436448231335765552564130417447661657908085947106922851922895019698210540035130501942293667257381579475635250404262202710305963096691759148714504232471668308633856612024333978770805853008200687852373325632270612411000453683546406945546587912166341484912307674407831968580574645466092178921749098300768561158720446816547338780095972512170072615515745765864464015045213008467254607218333309508303564640829321333908922312370719520225173891406452882860880282621047630275024931584773549101815171121641633983637030113158892762037186192680231751828582453776626151360250433232041063338928230758396711392732311868128859660057580247958117860048636832788020413466913735077604128334193379069007957319152659888966445736167539298807456310577401109967181652079707615554172905381005704611624590878160184841655934037638603401938734256115755903887419874531302136035511333733033994124917497952549921278908969309663953901260737073617247735712335931185181101983793677597309337911647488171035164714061791956721978774397461155162970234178537079873053960440004778891669034185836875342095227818992000326560864794877518742066660834872997912487480041935741655012324756451481661283541526479588299016663189589243547714610881066704453948884943630849603336566313126190979660655319470328570079206637791975300022582958082734750517557118689261295011833878812712023620844028592839305131936407769972097632265485562833448516055366827567122760230314048259630202580263620838266444642918151882165380334498377068492871642636183048229410631520787902889378483127908079093425865378149185499086329664635358016545167889362705852450219502413201392693137563043930884981077541919098896471820768069450883221052546680521464571587372189032449625032409196071461220624498185617049707958992833756308270980242867963479858767827175334257184174559302730203391349965867055062068928177648501446376275611204472532883321614405007568900185405996588146404945694884101935188835917016716489796673292885911494116136137177260992333381505728544600402839054563209642483802565522771935192555186190552798536729395793973438793795924547841664826243755553436882869943990400073950760167344940013252873172737989107845892981328725688640246249145791809585273004555454901862285493095857150383391064678297801114901599318502978296489561237674309277524376973142072487904218868432571053042055703829964625621828049890820749625422009275955117283239436707565580963971131668831545305032579829098276996507367317225310989432320371875269737063154717399433264800710090363384697387191701212519018746476295283825695141280887366451466276399048341464994446714751939727018631372202150761044733843298140100143118273010027842036023633096184028573082900493230660075122306646246307585384816010418723766378777830546660633169715416855292521513106945373723121263689535546569480378676720003392475117908615382585880795833544648028675176672352324707240454495295838470955754825090461869528470744821713665698730265519614892655333358992315221584562890931334696826450189981938423499752734123588260646003410373238421115359458159393277160580026791165480569135245547037493306650479455084962974974533069354724998539427139572659393492506679812327902272435725804851875199323618641491930371498306446594468096250172490536756225230667422004107932736414444268411849966176435934925884957248294531263936824406399118802742408118186475561071515660520143830438576392325972426687996038570371276195619494569489395493892070048707444641043572122822405165256734934938408164014915404330499778315683644181498487289981810028503691283024888226828433556865087151469778424786405089532383433273260603681959318564329606167674273186015636784657660346868189291137837035578201748029447421540946639119320132666134927821002454055695499109244574008287680352405061356774037906695913201683049758010740434940335811944292737512980724534795931935382137831042160825366540096284104329022633504388018791017532659011309684179020286925785039955259202147626906892369971259031350380039506939045215709302345819814794482045584814955857595803048351712214382590370280815917932415701310754546206216098811180356625246988688676731336875050176193030406090689432962634484025293635157630738693261942732579155330382409155091294726550169594508786133975206288590300975590546049172746661866926875189296209815129993476373523850350459580594138723054190588917330973741659434117819903414166756062239384734391012406651463618375868779262510684586556584202422204604315937746421990277279229269844376767087586039734517860107283083576366302716670721464501584367739696587402431502206644544131416110431408837383577374577050269304159582314066372088454975444169445691673487419678160517474849998849229569591044158537462035685537328133618469407126305349568324431367144158540739341066003597699754989518006723090495388354107842059474024170772227540507416412623958318981082486449591475242577014780966755353843558200988994340619986739049732204028655936968421717361225978525889142057557255180737266979834239487230889658930241164577433747143202110811952388680678141223761207272792227892105135025500281596671255898377220402180239951633155414215574048432035109524105057713169137793982106773188816784240202356452555518802493219612002921214314633943505990220832201641332791075885316118218373705090446059974055635077905475560524161325819764286132493960297159315519297488786113278034082084269589571611596209073330150172999391194313255814340726245013404456893577430905350567268205683581600521068359109556443364584355733472615046479650965184350801009680362879473965874917511733617630114769939578714904655331644843423045446973831009852011843885099219483379005257841565780915965346391330191280253018053952452947169367730601889757932033382931288954748806624234525230327121647079797199694987452418157415655441289265517751951143078786116621079795401352401228382191702067331961823303193164825736232235999302471657550733745858950242781525224687237980783776227878087043680355381679675222397782085512690324060484448456673013664111986976491774332928015918140093113126278008714170482405448179766774891019158040416041596522065330281968235522826968845948994282080254744881051241561783596480787544599703668786551609398441467514937864862014116812310718315133101034446987545628016570974010737977834576671589115090036832099086332003708601669141227244267473923350712959097521237613736989475353437252934121883326848302759948955603120190306470786350581181062372872941146909588454953165039086794860075398476179798139916772435677894473787520025264125493212003701435552892280733860135151652450408774643600339097997875421414866992385246638077867366053075659401950286304615228811302172337756792468846907928430277971820541549597557807418613236642821957431974472159747848978627878959681862485243875482851735799615404987721892833904996488804550804137067122360476545291888470317943152150409631503718543327145113918957155970366133730597608252075233815458060085603693392294026983117434852450870374597666669414658307472218426417148512656768281139514386867093282785174471068798022233240241345959576867397765008658302676593024827218342378718544716980454970898359324247278449690218161329819249799178218723064403113734436340943632941943734032789976967407740405313617364992830434162478745693892546156147401120565818222272776148093795585646635964480454717840112799887383325492667812208279731567906980248297567212393042421444720570064620011224403865513669375448459968385171081519130987257966829307283987508364714403560107470455882135205854677756964723984052323784379497241405534699093412024748612243390438090364820774162585378870375298941592947713691109927708404793304050701221938446756217731735927559455115121930467155534435090909433854361133671856517231495781335767664490579357681016224670501537253182077325628363369678701006052827211824974509112969255238122010751242628170704789443614635088599625741743463890214720166657957983566492420339751353237411735811172966655024294228696616538489140342665811906664005404045708146667103968526119287252913549953992211945382754643205181779202515381793646909585973500904243108724558831990934419958792980395227942348229355274495481352555441558378236086311261188685777977057422342650759821085042335051622211019340601378997573301800798045017917826701782050729863669216062125101286325246137207436009241385429567979752404879890525621794106690191862677532359537563648583884358305476567833585314092073760394440101956095662590848589263875159671833972292936779465142902181188036923029690555548338792838409826615031408857222662527676506716880405416405778495342363419419079279187550962871538273280084782107939444053716531767256526109441479408743128221605499911480607530002309807658702335624382600493875935897908388033705320072753074011730817676026478057929624672147444387713420834737169489576690821648719651828156999315596037950528273247884330830665026112109776500977391601349309043204285638613251267577190767512049518134753563805749815367893044536208872548377945486553955347854547288083004643731229460169447325218228163095538192362788275554343173377827937618924181489607524374929237715471491703649547717634734005672199366072872149341924658788531598498791859760234045087595547439485674606904021661490814205358273512073015405783645361973932806204212204540666408926150276270226178118955401356587596135477222007420775305224121396128052579110684844543438498519486826342167961282402513388855427377427796328639891689264398538980076315370134754136169536205083062214650716631013359543907114328853722453551391780450344696673979024750077060484334710895769813861029199976623357044403519668695247825353363437006395663609986947505354924299280864952182241489971457919728734158450103506239832066022490109163647042383669031198059647794551471279344073080186134057495567413279005413949242851716468755767118578982229103666089824590933369163034709232900935634624773074478972708244186429760432975193148822046625510559648463003373019394931176582404292647977883142539715984213509204551667652779109574400982044727039219529798583594660435484132767065654357906290779926566839954321678147945323261280929361375526328780595845186246206647686667367082148615380661297391150766540068973707913565557099529401087391158103956389336630942695677565961790749364508732197451812243065231046720505207533895944785385837032053805881245127863838740911937817564155481011110138846043267342517759703925648007712781485632266216583439961165909812590968858037645789518280482130715599852230147772641136973131197701457814597009599555950028366059247464111565606878400130142943424375696228299213006980591798601374638952010843697367234898531391347412016133527591355827193306092200273333776511009687838202025700805547723616525844685204977194019476470984559199045607879363452255419209911733038665667940700987899873829695555252324751024876649271080542622263348228672007466263809407162599120006787636645642272306863194613054247793833753808472589769800603932170641824765455177277063583890334454301277154660986104622796705362717256367278731545103489978196250572793635730803271806134006081163312168219011551985720807916417230870375718799664070337956714041474520271088967579220381542785952176471505600875693716144485441077295550608415528681426851130030934229794926836261520409345741518626947852933046531544778624654755577882336202048140112104937765615710287707853390163167022217041491323351839152994236968667807444283859114456795185024519021089344956105653622173712657488006341978489638178454917904007154349197113678668761876149846132752597694516612352712461886025232026283806863878337530480602007675523094470196098203589963500544483045160786923673003819507204144162162927173580242037226187211363470110005316897916892413639192223687819309426377092777493838225004341222542679230086289546888238199950804838058865333557161271388052211549892791376195110384111324449935666639117856842754708271038466991360962459887703405889565519976464425254896276591531304814006458502239271824513117558898093460602390078655956078038583909751438132039213013309324333075055950059895794870500796798944321142166022740417682230471523515990137834006776785648407133075314545771122118160903013230860479965623506756460162193785002628072582144020937464158780015811128190727744949820997157559440779030687704586354354162953907010694869108202219484286955047991116904420868312966208024238197802591820281891811852447303500462786594094741909864640224871525893783059203443390978524545565775521151028841652486650838265083811506996552096733217668380403799875447216714842562162764890405506843533321666874372458896756376079757221214799884468670158508042000227037755581311952770002696669839621688777451150330494882530399426139473446546992153370598355231569343052143575473603703681736316210976105163525222639425820719604824548483526433027602148973493301807962722369169054808556852674545265701015478028673279098267221798692157842954462508108243211530212406409898323425485148119111262051987152710434983679165191953734287170947035542268756795333741525909870029536811101344915155356830402922195520911414074829967092933566200428515731564067085631796232272626269502876177062429969935798427254532876398750577273799415759199227263896315911767620779964742545004752199550316372595708312911892121447630276744005008392957047228189235254488656840937663140436228483605615414849387329772148832410085470672750669338761871468280761442465222325159525847724845025973933166931340174346835572684331716949882075004234973302537249695358572687858637113836888201546817721640391938404140567802524509959154045142958532444366819544787359481690290076818027480433009313638296719941990908163136236805894121641371834086320262244061830645494513776101344589979684701631161144280656983851549944651307982196373609556390785139927434726276269268112743193178677289723550557847480867618652444725685847840063368415998156747025543212696507870240693547739149588521238846622318530728296141507469526796731291583941204540034045417007056368250570198282661914348179322117904283567106085693065835586690476325778728031252053031016918042332315413556028230253244254445076685090433177426874059341462450543531263076463848137322629227207798968512912679910258894250304720114210509389473570515671862189655525574148157473363741073749999984731654190744310334820597781556254068739888843541009081275851355799265975092662005934150201427260235890047982919919768343190363015011479301908809573079309117222249290759670161298228649410381982721781204139634583809552728656398855630776033006904550619061360245085935788254278833573060533329403250118750220087723067953030144600925734853918139508747854230745458156371511772533111430464427597696065097215109628228863246233667471889853462682580576139295228671626676744929631835686729957788622865308930460477479846429801093107017683446211627533404883128471865011614122871901464593071454356414565054510862780433400994443994593881652717910244351007980823249059126846672348960618647615355595933738611126611444945834327663956536777872216759162683953126328460423953996199817035530354548788199656874913776637201538845890224802717266171509961364882520799316715895789706175025914781108354561763937431308794868951361753364583899364215317616153850702161832370215768922279538761622792732095988485595185921289136963035469630435435578250637418837415394962796113351350336359726017316955758815565439966766655509358165031173166817340134896772341430874898712564714461871849851198047837825406651485737946267158808427064651617550996066815946861833185357615862578653616647018703158660261070867285012921010908054833376177142938977012619877876892192970365332499679416715970975867362848022438738040656623557220897485167620210158637559891893766005612668141630158364250997104113041810236423357919606694781629379239212256432953617087770731878084869995526871637821294457892758449559429390852346854776624998899924272521570796150252392143719828423915272965503639695279685006682974475356873233204816880047875088596107797512369480154633102322956610063466487655627551210169110336172132547438505994737955476404663000996148835749575207506694441109651928767107957705489167493433378111520810751873055963283785946552304267950355507156755359696855892175911542110469014702422501941065803787339133243019559840604429321513245507538631361815098767318991572144669261667501497141049521326412644942450419516375315246330286728175971769714759606924316034285567593685244765213649248497192901723324757074393361638449060898160629383955867762985629973059441059726675073002978233919685751072072319641415855686533820247227930887868712452098696366522266845387957099171712758639110576729422170759591097546467752037262075186571160410684724868840249224861419096839813335136046191605018815339286794985941585603897539669162841762292846078301817087640664583331695579972098874933789728329758896842459199852401328317874352903491901948375019410070140037344406278602239996506481933253588089733065378220010959385249228426306439052065684233847203382736201221983018638411758182998710230131260964916312362589401688633313692817077192119714192872287077980243445662288631993841413628522075388896916188198076628428537327987690896882215133391157728515678404794330531207669996716404682251705300665634850628164189622741829635988552578523573839031297478367647096540076667084013811148500767069072580606388486801113168805157288206567471120333557808300896643407415734544388432695214394000786355420670331907855735977595947085922032535296550484878455577271917855397478021369425002490270637615993947762579089834230664703971344547809636644350879452155502587916365108887578571485642937680039005614984891603665966668221428158975588116063995803594056978958662194123221669712947933955485065914964002681095577589396432673481938682164762045458617379229580563793266824154406968078950710839780186363717849310123331025438823419055540557048739870483607602286845908867422784887754192253855234435114399978054145356475295595066685989548493092155234067879909926084429711551179201549792358371825556539486437365843529801058161476743234557046838196029612339362155052637971498736192291864263064021360725730935159265789332709589333650586025641739784647909292678549642974606512862898619982631409578560117484067555187417272181291344847840441920973313174390878509083012079246041767888166669634598285043282109213695251829185286993301796694083747341283439703827475009055401794480137098505545038144810887260690445777344027938886854152075445223818059529218197526542733600399716217862305507798104724480234218300195992540136249380389451610685304520010403923403798692105354905837616615113307022216936863367490426774791629189021298587167271835306389217199214511080613121612712870651306516155521448056694390971716379593285765180787098057372406558512715566466757279091589153657286994057250719778864184974144289558441044944976435391481801504130609729035322746843572675296211345253611331128841019967830774759404246996571818758552291077332333466498998502961685797293359543564533688125685493881391386013672431248130345193680540859865540381203869932576199846223347845064619848103331472763308540678083966107129089859334129907639032147507022924882722454562919805803020165097671556622830682377956675870935904097049568501835508347358976226190198620835248116969206909994766323096418837832071146608088208644338436767407366189766515927450822286325176545610408279205923954881250845123747497611504723948719675624444123713976097652693986392290996866137183637343927655454254232024326342861653825906887841252336623415570357458446847500928531486961066413892784151329303289411713798527522177841509511800911806271507943997920807559829804619748554369168391833808966135175430469099023487461473168915865704168766272998667934469732885404522920712201834264556581240023674067448545899090203572910566696667078308616525805036384326602882376270894890022361052753172882726785554576688469160347682369192267387543483597496747880663270670779237454453538594978204600271415599394594701856863398537106888526300950186134627013980523797601811613392707886986183192778990423271449633104270535383950555307295355554286061291322105592645870227523878306282489801322848707944176264135612432723811472407591105931837082002288954667644512084558664537197095033160152320673229658465577545470420555581044404364832495446206571381916585110796954535593964737556862905226927155736208478506927974690607913962417179142075433622760574785825825024422569661936792712200593202524130692414017451808777348543731223363588562801753302405313229567949217114094069138922231838160694580858561572162923651250365074536892818866181109395652435077451477533494409714567068797467316876432446390244779090244203123095312810535049818979699302422720347743237816148170201075261818483881459873720938620083690162227311493097798110344781718392973641645010546549551359092285321385791047691090967835510213255838734135422701259506026812108425143442721476093671668706216890792501319875068259194058439647418695966267216293182377064712441146918557514519856619668977250661689552564593759801937820157184299399689169627438985466111323652440062747629902752716382058911710811113624609538476735566335256834782529329310726003095958773419300894506631157557365303297632386364471755947118800920889522340610721736690958820479325534041834929971363366377021027418942502517960264359229575187947768869348089180078413254933435669011031778453039167464046440926634142055212983073298854604500171732736798115801122173997068685313875732504374044744046676925289957205590725605792225898995550797955943402868263331021754672147263432390728758831560031396636850088335446013392143643406647663276920732521098440265681469255497924898872451333318165534508832033232984054869964362189784036414335153320087585310047937508634213708688214133519647220929088864337164606166309747272998594484346281223477791666833590074792799745478871237952217403333875107655562594368991703701107957527947217488697849687428321496871324705508927408143666379503666976519148606802751634515287504912262931480618976868166199603656966468571908955325631137022936161069944727962423393384814962340112364231133356590802554527948608879190875066003777731261000086677696688327318133946983128540445121595474388572486021874192171438668599317648397551721183589023967295197405008274517439098208563846883303625387158409668349558576475713551138647431867176035720150811096230369795456505269787473592905897436114489637496808150460320122324915926100140121785895431444174896430395806091332122042588533876417820673781825466817104453115921410695527906472097351274225014621273354625885659491481202538530011128975276564366135368097264476767398813542154803341822123161637430751575138345919549877254845807526263138711319564494191373679603306903034796061604792453330982934365355142151063171836861579273958751706754962704129262696844971022029299687136252843873995316524907972341044397108616854284106837965333887375492677967363860974311510631201663677152453544459704902445555961011928359655657807033198552250504548312284097943827555627287113631456284860885773070214270927557350908326231301265412272256958191511604860302629764498617170347014035085254341917073730768117107468797353194371542255559275779292381515663898524128728888490379170041416677423231751155186803039414670697197187284157573375577717722716339835718538851023384399565770207707775161481779409875231727384874106263564942341968510111142086288560513400519273850051818167508224585176771799168527005501519118736400533094729917772331325572443717626886324103022280486961358703175282548513593621429914182433087569747063171212299666403362813707968864968420852151267364136253745347632159894810050137862906922771878917256896296773909060512090453165494732015947123481729543449628546015660295840681165133254484832735174761570257668672710413447510685584915305967317296393712500321965824588772446691791224028947873979742101050877251981601852908897955046519489515152548483975450794387250797464522814395327080954873498323076576676544896250579391536074397986906425876296017673701234961285278949665633262666312297409801001616164103952399748648563425704273141046702315642830097036160226644233318340491016570888097915029511651986428192645870242011365093578618651432417790213246364993645911409407759645978445231162786206362497767075522475395260753407090332619105472210779030443813309055916152852753178168574601541962091593057188316558225932271824874436210267935446790981172742796914853034068365461439553696144282496766864881946670829344239501317575775341196723276375245932957829827785785467879167401157627775354030178577517971078788204722532425364582652466673776983363181378456191502482498168296169270523600944053754259143989708966941643332648742942245258040980207611614795675773905592513962330209900267208731052475667905975958215396500359694114268484254794577045993754681133462321699294517344819985068397336679064350536822029295671751405653910967250129970956333935677511706139267209731671476213423426397393939043951245516450276092978648395934543775283145172016859462353966781685865723280192256531965703254399201551970455796522702188066330316373989875714245365904425084998925205779563859143844293014619572587037974774909607887078930204948957161359890295550087330185390400141753104329263541133983651251073197048301129625653018408026066263866687099940156458353021799753906732484104012591706459091742096252027433454813319180919229441204835776673551303953042266429587192537991309684451964770424405737631730648945395487225892414742343677378473133042372909272628632626947873527325399038890870696195431881166182385171092716195094552161694312834615005549416346063351653623134034479027151550495995364610122477473425815486939384584511625178175055785639435043672946618449906040670402071079122525920782520411876276004276101285028936463460673099478477546455201983943036352553336481256701153577902958157038531257538085929240306850439283952489629467268378152633803290519823472927797054410883746252845300528057711853769525793715781281587610596356857105278966566210738849734771081689251278799626249499623992251446414983567508368644376907213805382790556404233901337156927101510763947172306612915855899808495567311334990400530751745806389865927616763317257168107335059664153450586623432794891447972237010503697618387746876954007179631260404912242836491886371550691354511025425348521732760464932251849587848504519954896629449010230936994966062481062463845941863585582015823147749629652045589428637801617915217857247327723967397528761910726360521705232996503621795981660605296827347740735452658991168132072980572474598530582750927494850893955617107267009773237933740985539479389502484893197451196134478029125499568540952239418954687475326570739316609054560277828020689290027518078407651463195551693125353437446196627154244739136331095518759045848553640775792628772368397034324994166862010064399352553422750925536680168410725593575950434651176062140231428285729885174108334260073221746482909919163574245766688033799039306996380459013904485494519162804808299042399448153616944502234716704022493901076060923820974771023423328012153738007812530533697440986049992640073223996996165904883303117084950036743531880803013647285629036977320994815542517139092957169718356879444722318225036190172987080632567912790472956851312137177976690478477652946476794268989411324197176692721793161865862064032006417774802293545627685737010472486057945971750598327073093578393628866171488261572504024209038344086708664267089726461684582457814498438592317772571304470530699076005357910569886736146035750014736830338766761080040699818433056338293371573438737863551194349164071742230750591473023831637058113865992685902824432930149137885810468742952221147693601912339003668237565489557814390682418597279669795714842110375510261496003671229373569746411999239448225834249980496128735092705343986066375511971380362168016361210030317837192938410415738244917059279749715423660947502906317697721638059885369148221744448143857706673807272657328090716510833760109907320384948891235158203883891573611614002318155805765635289437980860573776814093628379620742517641623397013976507535453205695230380196808268892031063655887942008071761154216558660658560852464608886846445931756532152871204183267831060592472992965620040352514281792228322772809596079812789638386076458515457711426521084318963258564241684586468365387483356542833250097305333548733238266403265951672393338760426011759988534666789252849263226076809303832043279006028806870955653786386068197750424934226216599531271483852931157793414133559403949121548610984888711042145316022560598958247431581988382374580236437634195199489098096680607998791394016053692537888430583931727684675959062067748923968256597965045262078392418387197864098605131512793857307001062736730303417744172722936236906299131359310807365921889109617345487794792230165249753743258930667035385852108050960104055215033825676238618625313628467587248762986900429012777468917623553265278617945508398740512157339501001694873123410721060292860343467387158541757562023214816954995159409124456951047867566664352271991902273792420942788856286609899018188797527167817274136395414233744969705746143198876991417826236093671831518148212360297746258298384271755685420803591079647416680142498279313805424550267551814013686786392163503286220372498155682855324777014802486682222859327132515972161802104963257958267262224985949823107179970312137253616878143920753120885555855557025640609907934235600588382983148900401692455257826301200197285248276123347199814533898599643767117790270465446477534655941147080276356271375818843253426118884529844610210891607954294755730009846649716908203574718027362354975474472804526329317392336996438368302212111365286673009349555426314477114295595550489781676162571899936147739322299989111671101889395762985593881414755061182854678786337882267813632886760503727090305549274059710328266288662775699570839985220178051675386821087363247250800191869031444588689250170155457485186906389332365003451523817405949953321223241539346656388022217447482016637529903424291850895110962159288892234377020542518979529807523273969868482381327531325217354019505606775599019848202595127063735350979403287562500574470785254581120343715730732393047276691202071864207616829642679986898111264399023951167248948063611183259726744244918977790721441707244404813833221782402543061225651843522627080123207291692419803546453665170698685851819587077939657363640181317970027346661841336180573163357766450072349301546481253434984809198918740173853646175618752830092862524272411688274887092404201124640510186737177646189844355896850043874455882477441672231015608327746774564561710797098116441282636953026764960103583254879365439324658308824593501660912203912463953322820325625681168174357469464327031512965683197715282255738104536246152514364282356245312736071519152698888661934287009697685123877117093810076822856700067204895146823660978176997796024919262177128096368195540664414366851141588070272137155468804849455375598121983770423058995279734105045551641625448284525666835872096859181501745340064169669348153930091188858588500361933024014701899007333809293373037013970864149585660980383158221625592520602524639376057120452366864065604740751300552291126487477949829287212196915759847458208653650850687283980916808270589261628470589801793564622422547910918750708606333196565054178731028539121263373045771433313334862916360911905368428916006962542560413443957931696889321521868942161089288231401619174522580694001168288757040276343205645676149189815703044432247650682009013655018689956268730503462534692801724072776449369332427117254072943612897562129693563691872205255750218321974596198714972884857278209715235834712064169517518945292089853051383441589441719970123423384756981094221668979842747555910554861443706757493436500602412497617572303261660862408752060093298400739084063437810357557543228968810435232059580921902702956849630340959034039806830144935395886587696318586701783101352422406637826203410835453231563187162472450937876653645924266896158641029459676287955735951261429145574706038082234620576990846583171230566872778225668640386138649538807326285857901129030335595854813801146141750277498496799382768132597294548871542230556121109697748767230488822554957044953816443459571747215829410946890785537513732011126145536630324748748824866299905775633009313465379261767167836810787741178756448648727958135174599750767037905365422339111456196362344443884102767043042484979341410989305694399245803988186151784713956562289402213829198847351259561491000259139518581958290603270172920670606092447938408305265924684941987728277173929414237178553760911730307002481226148008376615305542202161636542863159018421701027417051684186598424815284208286287147635861986078998236514701658010883774015942952453182211677191519047147043200013760618157228265821434018444271468050307223688716472325702941666855830271864930728114422553736737596421076599046589697263704227112853180400499739621278937167847978442164454458019174065900707388473439028413329719733268464961985567772814139006132565213245872894748602178025009451941470205335395421325931448241554989853014518897999298525888915863558730970671740647096336003171870200994891773578232382675419699700424728672588318024161022000304443458010618489757457854578070434238757210244216308548441462520069654768283088510573651898455652798653748602842985228920479053132705271534941462499398451940509677026314653509871518400453626311233485847684148340975545621348410540471737971905105434259532846027941715634463153751412689193201131735661110553521432830011437814905985722214747998060164174623576997326171972864752717182768522697507030378716323733995158124504167522622569246771486149123673088507174771275265382430953694535485252364533727694815267400011266644654901982737735657125297667793275086241680340428927695981785052403532428269294893589248495241848881761918155903230642132209603297805860133131182549977171602048602203448726847064645486256094232334233892663613856641614893992248386166426671853772742466755129722144685488469664681516410835328260115964190946211478673430428206061120650364223536828663239056236216595414174039761304136907518129430574662686971783013677932947993417150642073794214476159177482023137946740586582824156774107420487918023878370200737789045588038526015565636457394810027669182700493872330631229842087396468133121729159485516767668147788187035270081430831385684869896631542037181433594329855039712234079694855114536503327725728995598305200211061124623212004250215917732149706336723659766606736751071583968506768455127474288081050834441630947631372088983159027736006526622343606190414605095195016542369473701152823549004801147484867391928426450089953800051193149517919195820528478559283303907641996527965190992262761177776106059993151714544307840324012667109230533370512506765391284433905633213110564976671162071945937191316318565531525322408128439632226705214763619646785766108222064900201462059187252199837195017594765252131102175745063214668269631099769437451390538869435068527464217254939235321031317140059282658600540990011719013471978730917370259589888619328506797893332499934789342821682378912953674037925428944767257067210348381479686570201871199051936800107466227009129957428873824407029325625342784481985730673602267530521498817153440035334430270903892025369269729566418258463527735824096369727278615165456008388330220559880795037617993266527949721048833938878816212258419334724129521995635365116341262428118030896707098960268080586436819255649339576110835829521517946229742364222960632712083844228441354350123570948722294442709593269210013496978243795880187848298343708278069703457359162351639764449670010609837437309329705119996528087180635032069821798986291714573108972805915734557638388681156364968735646667034947114386799423693414997229467241510351673169112285469876093523536939292366073656865412139071844586252303335822959694328464900923179444302367808204573832479471932786667881115572882434758197797997187758179844041744630190781491441952169664900420076648649535652065988992304237648143539773061214843059792045500676088043994605171087562752944145669907195440648564542278958866088578559205187465534011834752764809400922952096034493732326718771611901068808719968998908568853083627798625799039620781648045543739778705896279064711702909133902011368896804140731383139286701702500691383830632711609945285762803757719662430347781763455959756920775556827697172164997574830919981994700307185354254389350402097393776249607888678276451418164133820146221869305506421547408027717989047099337187754111618437096588746303772748056051676760574054118583455929623263589911965395928236570722539618740545775054872326614547277898920068008453585784681647743687413058873809580013449904283849654906861027009958204397975899465150455104425056546174529039934913498374533280402005900005781226510805545796099643897156721122002905476167232566012066158354179101850360584712978782154193882275527284837772038879573788882219976423591431842926152798303284905080057426894233101440241345207971197879514763169370814266803838917544987271878065004342033078821018230731342310536772556706162367778052722047665371429337294471713223822040668347100020608461662226993060072362232359942106709689474912597323313496744863005362178344559595425037349685898081035447914722338838800360125815822902817923044889700438501899283031821675565378338101763119393326203534716096178049489878050968058932871025037881882386717867894525629976011706359967236346396225533078144252458530400052829575020778465430453378719421683210384966072844352524325162869328275121698434153183630674937490095580738258902187459549033938802726895484981206048970382826533408881611633167006658581926513334635108286485530552433983377898720957744961948306526084919435293569515347241373609878817420086707123796221847493952152166672613575244751159918735814871039978354397496864143930180415794084004529804733888936653750438918558810464901706648514575548443068485756988040372110936541602829802140625489811160919258416994915260526327034292679958641267441317003127656224559068094038489659439110083514317198315235157674107264968407559012793443728888986459938280038602546907871307286812689575843757642191278919809005378607806229567094459244039961223191406832775639033332629360567780623975682718601676774823406188826916509900856040101217098363024491472616149928805537120762089932801324966760398695398329867161509070471919982475075646977379243865604678898192532695851995754398266978629554572299732308907188648737088259070458786707230649413586942365550792463907282613722684727388750540014693075147710472961219614085117546837780129260467743128594042634513626733948023118966441559667972190887644231921464093309861718810502342671443064101915321246849538133960142827434890157630143496567654430433818077739161565257794527889509491805101205652965785147897603497038087966255662181620193019532546088803200750713734881005427002393493072419820791004414619160004998741506639027640092542328377998348408109312845302540811804855237080650267976063801102066120643452230400078595663669154808989999860898022779472204584544101254406518353443996174176423010389009925984030994013933140649177376291216562693998496649401484224184593862396862952503814969021518801753977069167380895985648977376410988627728712425939730541237817298942241219423896157280918516297582238519987479340297970885152752351207426115010459690434510493498578068068990595521879040947886171620011762656748163004897107767523058576011373670973733008623445857759247203002967968112314321272637564284024166935020560304942835278936408453525652361933125977275281999159836299011532954883620921181457802444512137145182210397748832518994201316919462104558806432787778942075579498574831611737734149467252727731352588790019863733794317536598905850333015726212023486918712668666868885216225304502390666977895042041176252004842778164639010529015013807311279513376089592316638211521789246855631156202955416699919129361228154507996088189713224670364984150848888104204752614433787159687597523806186070636911870924246507677622350610585314186733336572699960554364471197697083998344683632063843611038627074880863492551365794166097909909314460872987851163682419653324470312603981814467741115248171252802490517214622834435917513121554922933724167123867372300652913186322427101924372690519265337046088376389350089917859033644180390831421071576400439712990441464491426878765292933321662158051594653067496697764821438722894103792099905623028700751191851625697449252422255517530709077641750224930500461379342748665528102504845552812998466754543752575561035646494520798994439343157906741442875482645880145936276780332477255717745933690979907570447546155063169150711656957911547345761179437011843549893088358739531178335438931452293445257349767390442588414923841215446420608475815404725798492262839999533558731911506824161876461262037360306991553382395277018016815002222138118788486387351701361710080701920211147786731637509078809871315807000646007681402995759764997019342676518417317734222608710319078548140733577243660119538202067070988209804573509670528365246396547103922758494969791192492836689510525960644055872241413832294690980904325890925745918459745302428244954276911921484750078037863993000066863475791506848099397978116597033354432663530425240880477501307622331656343277689368724097732947176209865004087188496380268376641668714591986310531824310808794058409881805851515474461439942669990117124502564601453468605899972621818070459236760394484478437861146483336396014549828907764014975261306925686449499806307495625006007362960126955841078202566152427345448760601474161088294252038009334944910495585634954807695163045096765941707239443512647988491410399958943491203286675483479636214866474892767182421993420788270691444518092726001112784534834639841538450897393798521550277790987623339280927958591598114598611765134687712370785624690180054638802982948213870555309814490419310285767966975551694960865251136547607848058355405602712774475850108931391531415759354589299728040864108742432461073205461563514053177421389841142396418291783177398591715052192997295247730379813865025775116582414757570683598966769545462030366930258595837473354198219881781151078648226289487386271802785599462243218672132098650151767687753006880637883188596453574580270451267257929266596320858753922271827715140805397444409642886520592373280600611691106961984077387534047187041748320168613405924878954747470216436305210095647311487666726387953697145592135911240680995815467108966828944557836543299370913045172194481250722086022274348915272988956968917165715125907391414904898917535561009797794019809995514962011397910438498128959788584878930457510567050384255006695919555658610150463402390087337470482181663366977155031782792699978732072143932286237194461695920924962097880073252510549193792067869908004578228492053862217237362746447673089556788208456633345304428482281077857360369069212885312233474561160305295667405710239956552656306410314942233209006171121308381001328464769031622427295512180510034229217905972689724133513714905756166643368534254935434071324526816605232570368500028783208438037043924163355226565840966687391863087221731268943399659022478159990426000844687765131547789746221747352395899980439455542471067458488976868895684058882075635298179911788870143774536406692550894087337643920083829855131766079512587857986578622107859885733524504887356833078546981565295906746042880024058451109203142291817895923564259151696898525425388606173389547289898821487650536508986183091677052049916870671429155802447916665863365332112472800632602438505332719899062272273872083439539562340707267490624313487378691183964931066064809780406411903909776021319057066156801911998663074388836853208608721306539303686728989273078527289564049666965242724191861111828507494254605570651911505535258232792539364384471100000716025556421045885344579356670739232068430311721214734446213219760572515416260144489346090675400700363088584876984055351793726612914499307180531821595227476152204909765420450750467628513539698755045317312572236727499814699547257876107073767973963816152145271717649996675195536821808231075363758542914562183218310978396651637193858622500376260791669975866229892356517775855605215678543192151644484852078287285862683976378804906673531276446204882784736960588474896657015354778430720623513206067028089792507154984127683867411585796243892389058506098632940748491333189081971084542464984979582365887291315974258102592762700703939448663463356733836081782946093780950020816882848223650651236163261256374094912512463372564707044719410436194373963202587007425287801153907329221771990675242641955927892667506220711788008660092809901383840544019069914643058863680801278721625811645479767323952895623866397817558299712914920711766488613672613057973805846369230813513195256336356814486726588819731989020081791986588969615055664890167211960485026510276581245507418046713757658247648021132372006814090079027390208794724913033811024266606673608333244932940868880358620517652644129453513515518090277368705522382014185229208349562950949037536816375026703779093949649186619637173939061728539377233170196231833372302220852211423530459678638993183702099049818903883561355472234879880892922891626646314187647229097741493537472543408564265700069499376013280955557288540530019129260320363877492673725416212881162931803391856366839046909261382142989475035099833307220463936375869716103066346666073896809641409424104926818207597308544857396797741386899652303905708443090850259053916507983425623150847876156702789378246524251178724880072081102563538971646167976317415449873735440102272289006478777062014312199812889522552662002237935821629731557861393179169464124514913584507129922388554821260659897800470484456964180123792738574506166485648682001079527712096336514948269648276370950383990053385278094856231828675305380824490244737409290285182815376434972684887719869468701844643639405960372834721222489409891871443386029455708133351456899053365816391538374605752630514299968507712642293064854750227888206732366095963594536610853246465761153725147249493852670597311885021936283134632332825877009510240123560344273461826676566525347427945718138557966753666985883382852140634769586734248992314765378268575282146333903560229607477232114444983552334421646018619634688055395008217812123802987103462752398433332228611302319080565878655613434549164135952516279044351184921003248879938005222981809174071602019926115101277054472072901380940772467567509289105116562840546254859470042363269235408070501885901889549560270983016591032239254567051166052222798398637732580976304333105657412760377035110422481329802829311280374718181384799644280032570065770210096007264491601294639140238764146554490731994603056814098905684079088159709125691469385997147394359974323591419180463970492457475931801816969358882212798466150518679382081591644586234004677248007170072706580095544132362605554850800792687605581909888167070189807384526395204328229470152470501888380456628191922755738890829952184476321432540511717231472190952082748045132911226214025362381241089279703691232474642921255172698403806383745653132882943777591021686363970110498607281474173178996407823414965353471983072726681023978598108950968539640281589043813389243868658632771125800064827324788800312845699818246403808197626369528491642279505831842109806024845463531734231806466896678873538766706411232530414955319671507866638291602051466260154128276636807057651518869513207972396102367618903293259136897081662533327368011931373100093014790530161379164067074117407494824530491885083154676773152575246121976351383439476588333885871024228757360281897787110565224476449005413543740323759478204769504778946000741082452924574212921374717860685377456025962500642500427213652352411730969842423703061653192340868611831405501364334484575583002779649331989514494974842142562313662255047739840874084872767737743145025099206848331701623285952968734164998760898376122800151172857583220328018015115520996287191599355823784404365399281982097379271549715568953342507570113579290437711111905456904822348822965680469785270781161516518705275881852365579851141281661401517465853015641700287147484819760424623625038512678369008715735647421537613908004839865930509353636696360297404508136310463366113364308582021872173662436676069849382642906923457346572630353251420383054751510141953011248531502738323694974645878344265881598068397695099839705157439015050893733718507001270882263862548157119794777225650096597990662055748904791121181764354034729541054660591043979023464906261600224294299059230641255781211620317508086792170012060203342373588645750991619990262289417868009268617310239132578200564327803740164377316566204138676737319106360092261283316204861079856546985395825424213981321218431225100153991511833053546112389512859299374141153591160018140010159229067932777739612822128749520092664481191086910151372707636239244815840291381251356447614222974986148984332384640114672502365732595153258736361753785919385555822499053608522059034322584376628197106550201657450500302665988880454280004301209463917629155290104342756671976385967231015783140987713859188594395758771172836252858583811881288579633854751799500295118383545316445918621164603391891956428712940511458297338725278589215303119626597734191401840650990408928893183443587283950825569227914949062682258037488167477548589348340012601313059152907553417524586492571825098205007442232933269084147030334485716584134563373679105705612520541856119217609199169200490456862925286332903541876798970221106819930556108397058308718569891220573126477332987863785468854394148679303900169390363741084417445762228751852467902848605216914805338034451820384881857793226674807932997230089692060896446952313678704460001432323620548754208751670742245901529247230652652181753966974866464366137258453805071939893986882337457713347045561515210926009403976205543192391611428386251192116924696301638046831702164043888048671053419308229260003870149027863757437568630742721005204280740364163809725002810044425769534099304148182488782037205846961319146290697061327258778836807426450522175902393520774845325315221258929741000270053136306309046200342442477106921021924688893714795774920940191777447591900259287169865486504546609252875577398996614284854873398035232931257506073761816702848060697391497945886185833514753271196569584613295109715933791020159318119652042582884036921736686460938862601626202199964970459921396985314791479583061997071805031420329395629468773377441686326596753608786167723218234567823780994991690117510495143696115161658265443152908043702488986994685318837594602496025002967974352303153928287020459335007462403132396283136591979951143175942634161033366525901488508483770446786779727057226960251523601360512683341681587427093768089650683913002130863636212670649246316320685984418229312673452876864163050929829850245079213411957054126520324754696468509797714555044239929696772082258349503079624543877502715721310331536305098506688548802693644270481254173626023268195217073359620884897297121987989800398048644703326780909753155477245727242096315928444797103868841266248711480727699013747349559238141143157886624774462394390270041615470284478456028757514881176468013129485191817057027331833301180335776475987844914668142203728227236196694581054739080416504535042594245378545567187880173112575863281540371885425428135058600324708494060734358051768745205443158234927274391983979425447880178255701859096713977615128905244720839720441570031536466982140044067327048812162579615578442047806680042157733812233103957824425122748346173448939579754495050165096548739108981452413772592908444658963992708266421902811481039494221471649312489972995439181350163447002615097231126525646471260260076614670954561749065425724184668308090533887728472058247876362463844120716801654427887066724597679946733892160640158771846808566114701861640620254027517883821736391521741160337112851882832955540344365027126849662425526270718533521797607217942646305811142083233476905836755778064732877744491063607071628894465345850028502766619338180183990891092561932312608753838687794611175330238572683203905723997094601631089109753871096153211903713305746654412217508810952233621368011778695251671061473839932047594093333014284875340009552946961909265237505921794145068407102374143553427710110310978934022383948563883144944264583373041811949448114229052243742411552417291964337130965601680195931950537100446321488473304424311224082120874224542910691250555685527381075055374998307139086023681738817135923975866323248837290290408614240152674000430769033328568148048643806232057196718726562597652265862170502356625213233357508323011324917242267563266806720921469443783486318401105377303746483772935619643790553123152402194784607869140554704609055219913499119806275136021474873804654051598227290162980532759167651719974542037128168793401832219014376752428052899290879889523017438948319405237812607092002951952922362545146482316926235555683134360092805661443047971724976782145987833871317313325385215559017009788130063881753267207554810309411017111017415515750787009772893649697597251883100078834755067007410039103526708835321878828988663933876143065013527758594770506501178358058025331693857370371071325822698731728337560089730578298156510657585121231032858368224710432555559699887673300472365373241953778416328736903680456932350705323465755497216960260918727821945330627003292684579485460567962043874595609427905205107989849151357775231725384395374730380355044857980575943687754801075965574570999165547643274398977885595903302534323915999542980645302562978355790485721791979860884568186439906555657854144556277633897003813642116919399582380496803967402440445380813711546323156950871317562905790527181696142402108553546684622205722312691423630927035498529466895045786584362700347446007916399383439067337948339746340687910016301952360205941744862837304099951806961108207443610825612125218653747061497705331195850385417964020736272134949262430528097881607730385089058331223128900577741003748395964780517281975408713473337259140884573303576698486324767455033519321505955931884260213013590874473998282368793980660852650057589435822655579584833263179668965132085026879605854640618674278976109375661709706058333409521158283364183331850395225441537285848473310646572649871596386376851039833285658397749317251566209342704110702363886964987942440930240783970652041353310416945882100268899594043704964817144889349125080923332970034790605161600860176739084925055252022258508768370961294759663234100965275732727259238384318561611082313303231587721001181969490343495831255183531042273949947365214905986429468740075702654066613058075377762365434822522882672920332169979156265664683340131988955541336609471993125579250002711591820917753747577856878909440653074456532082195221984394365288656378623584388668772163005111890725067830677079720032419709623405950486760797411393991264144685487612017025535757730850362749411739895167387956997166739599593749997094346801357601736885586445190627045599200945660461665792554884998076092642762089667728593758944041824550544075601946721831296017992370145459625549018320348156322957948289255093755463394239717094658623557844646653319789166336359578304268545981904467076030888762599872579473214006499806656737554613966909026909208571096487715028610937370950149532069437894409251448728370726710341207042112015791893374720269036565630598553679536963265277367849470086343728298281622130096226970630598866964591515831334415262880344201990438861824982613409614211058098472413755480716288305927846875955789332651264007493606840575929862977878686295748440624994215581142633193648130371044871505429820815252639328685954820141494773954749231062221932478754587578855732481740922842865351288640716285522924877726696611943012617734513332332357373510247163427027432178510431493990449610473254377985457802816021757868244713423103047797421060926715730440919243962281930744924625989156047190058742404633437239762462265420620215483432776597726869170313718703243469564853924718582334328751371219410352909402671723178434852454201738543003108205918625221900200260629166218266808791448303193276595216630897456033198724237604921986989559054332384764495236348445087405711433657458361898725083379032108341341521658529745759788638133036979175745733776820588793194985394748172228807140662602353432956349150967852416032006140576847371255718055596984969011420904063251171992775910740147973576123287333585371307102218570060604246170272590871697876087914285795566676320636236939560452357727605358060472283729584636056833921615263226764126707262421525793707757398640200438228799613649992552202970709045440733644464635247018092409127253139197893743232767543267498140081772645442621613313207677652182257074537012308506361781175168970147536639308242558974734466821657721938491794638335189137214419830391854820108953191713832391773092317398591749892737334767238400467100742071806871793758369567396411299977797446987274444380878647315514467357217619705140660214739140945740020665977602862508717197399302894376185095228014529921233121300486609428285746204140446961490942392951039596233352065477839921658781476516667019039568503632098386414746570284340532946946045277042619949995544254468368724013082662528540815832302830551146722643082620636286862823407517902803357813222315326899245861125278524512090521665150392644127776967110761115195275664671477481050268768408166390667759050114172869725956976606532763023730922540195186757188269112653757925143855353444169335137279584703545984742957384570303349286041823217743649521331187440530449067091145017023987611527098747616392745777215420835887113702798406000108779040560217683691946333930585972545403259663783487513596028047545219772539045128852947789057949809230483560259010849391776138486857947505991327282906438987191185893573137910427229018506381199950773603086045422044945191959756433269656014668733299429645387845616306307184353292754014850769538137055869512880083948539278195631247656644627259384516077669981825011596039925443781581616750888681861111733920174957368203207864079563983702971176909165337108632115868626407726756572325000317814347786416825190803637661588637035241990443406819230049969551416401280216150398723339675219401646652410012767229764106502798784066621464402369087459892201230182240388280195965768147516406105494217204270297844325299807530370639315437338560143425011631806640975741698133223282398905258842893281955760318552160843791808515087750852797179532144762477333909615713359095435095612374039972205930844063994324016720677134501057358158131103356173852040252416697675681214335739514115914889368086932979393635808449068761608969764401316485693576850061629065744350477402221420471462253400999096243361810935836287702306229344938320483129663265479326034595447991780629529754559368558122237075960283160160549754358274624059664480855057699908733261035217525166385592770643742851575387102359441200328419257571415335797674631757232734528172954984840295700813318203952756931602827196370908465571543973262590754058379128055462980776238468876358841010275737623224773857687070715719617682825683341975451315889682098517188399946917936976618786386780435241151303043730462259794667943752002272137855703286014920369260603501953363296047798943608653568341134184170104573613895162246891701424442574334616375701851794113643862928578031489668149297820137015556047714168155509089245233559316018123067200485532634754557516502387826675649219173515449195454273067566070173077707274693940586495528630891476703952467674469187005131626832975714475353497638229937536337260536673508777510101888737640762522879037833392164093468561783112188407388944341349437640235473306953705345374744378204588536796905741983452825940819727308663802158218094828652872663123590705432797706037684505691758952479096808998707085364559219210165581649805160769581968434238703127699340587494890851154928531506007053405263855496838180254591786518642229971907647700631447203200937234856897176581781066717627680184552882799996358838355467457268497005824603329522382263825516235581889661408051400171240129507250880485889087203065262477043354744401691126646741195671638619959820944181485612872383562840857664738314634611005370342624470058108129533479864189474520078751056298120673978599894401729239499898864136582260528837924315947009403930750095625206916387627860358751345099266440855771989840267486344380247702302996423242490710861078453164783450880830108101673690168333873271442398509413073305298268066638113186902361830819222597341703416249651892410268894751813074649221014734462159049071210769194705343683211876850734192235424956229689240605681851099550954209704760749058422276605331940248617764089355898457130819763837094459827634023478086472104121782548999396724318137350578330382549443657118994434308389072247448103970565536167649193292646267951245563815046170764274498376443469651313657568737949316597287416777473921601818411002570427873538972843984758798771451615721446551686993537752249932756308230840060966644024238318761396467622116208282004572229521481234099082830003296536802904691411321982826639228234212092078566420626120922147262304849805421900409404369370073891042738408161216955095110594614538155856909876381172689942541751065219435692638795624308197676428111898569942800075954116350919534859445771722045053399060739562681954228656612079612329373157622958044296559787853853830133282668325123126262211410054564088389783811185046050759182570193513732006791634198435134284196424075955526384672318098882808895972154302032723822655085908371273571200493077159560886656920363750628702747486805294117788060756210940362489033938664806404040763876174093142114443664390701730755907746202436177811270545914534068138234584195101805023806298719818904955131368825055817988556098002276340768160465490499360258024838674027139804033634159662119620669296441125426853825997541966631845565662918356265143676832031306023454558832323836617650751103786973862897153909925339902027644827335272522724799888695105854542417583602418331224119776296572117804500361324274672447862963041749295480603118105810959528578589462299657607538032841960747189921364304031948634868300892534114175172279551879463618136510138833061934420307555842721743853577764138362258345527059588517173019913765756528026893144225820535010799426800223873051460632388339078883060895563762077031680946446865610990972560805438995400028025891705863122216453249700305363026170226331681498704545338557594594070917238336282551878007850018334449675160672478653674405910448391635758738354306455909533639865309524087160916577272651428665941120267814062481842942936417692949638367225046693347143882965789069434014552109711270182307479821210223701483236477237813651553083233336573638627267722426499128180455076461642563481838544126258917338317802177492442389068003257720845481019020204236589492732002441850920761064458484251854589064922271047212165811561152551471532473277408098908594665178559358648505278269912827710520793500305150051222756958933398927472994892476511360250531066248378853823193452265066433959593544338374773803555925373502035854679053405611265042021525374273421224629334576440659714097107673992274682088809013529407045515748897471551797079312762683952232722779451289145557192600984787284473087542084906027900136753696929361202877664469196687238095649082579425216482467321095728651240565456554462235477555593740952278970317467054052238134454909322608636709016127204301281762739647819898433848253806342276255488437198549250063199972058659941807303449089722196296494583283834121430380111878981703080574258167635603975123524917401430597193167288259677060922710162062227841144710868652438030735755462982288908250335462058200554534982683491356629331236583966422116487900108775943020192236334006774041320055338258650354581227011144869567800156945665535689571179470309673447842530093103824524258705912629836265829831134736220743359156491117178377867021095575312935506803957128267705791467070731005115036797763268545187440185328316176428869541949934798759242915113072138203897932357684782648615809582105437798399092862350340305672238164467979727893710312152111090623173485544497982973444672186429533834924320751048287724226278373052662500717932162913033844513822696281737282787475811810542517948516534379093430472631718492922586341474441646865910357800455637901216974438373878850417743506807675935171025658450111612844725667154051576966992225101501912329481723779684826064197740948674736296042051195240697307110883063757625124529889524765931408937903432473478016567610859909665675569231955890042142773412709608275653019660038945244483958319707689861776865142147668104381002000939102539445252546999509077071443303474522805190396744679639072573109017935997332504294324417176054901385782438560363403602165239433913508211612866116668329807931985023765834978751586208391810370470511769568773327927740688348902035556595473663963840542742634360250800774611879729854761757313053093166276286068162347019943365094180189275230019640951765645939639435328975693985756403421914756581859510227738064362947486248237684572468645248315716846759532461348701475823288171491037269693429699720611773589456151049365168665628206921544224616781639738154306072580038673518322204895724745912077822969387441157088985449189227356661080281735168699917373453200921757299046705236818289926992547407835045230331100965552980503091280781347143311798896829215245322414701719248808350313465832547449981872781671074377608277523990958073665988476726258058968306939390179087822628634120997341887504141723864551825875510332940068856255916235545688405073609776951510078160048169582730824646508893863208093327683274431386109944081776085356878242396048106631351183576201152589344128125661968607995242597908463446080288586883450189513414982708719801409309680816257634945992719396821931013498302900220602437626591178708833302783675868446156869484668234381929724107836635266927504775861088710350896787610901894359796392258793236093376341932115333196340248817325455532467654999908281521774776255174511862118184577630485264877982221071977887541138986744194178791237227697167354719584643412893975890941268957566866423990026086075748861723728914364873530354697313566573096267137430942863314075936369047414080590809202985861541482204055856859307486182946965137561046452508778183884824083787007032944033174719745910841469108147983221294014908584202271186377718876793039244666954652669225970265641830736737917695661141213930416780889452122317516197345927768814455465201637009396995096160515964073661180047133732233059615774541919418868203907729783828303040522047550693826144553157447768639341667630458222127839957227425596685048802576020321101785639065006786676487353186928736819830518471573564453255662119068096513694120960175257068482357317033071885709199706273258596387511585646701288039193607072680450245396630213231762731181017849006563380583849834513596590087719644814155691457716108988670630418915977194268344946327003590979427409223671375806530381387097655168724323383555028463648547857149271771861245462180493734885492244896968253518077613612630351363872245429430754838203329402816004166817666981988378816124977498124596176530308120530053887320383943098357113674729227378858972505165414701115866892445009398337467245279345044307141638263817346181993337008143713694434593235095944832989268837918323573172141561100994493286896439121020707197080654370623462775518010137822900395698646532797961988782218378349121493894982538883375415792046089706102434620069796698526642061449446445794035739961125879503216007739752191223559472385332927103598433568322127173527331442727544332060552176996626179716685154773199164406222144999537439803130906199645632463234714796784681876115258875835098910170669263113841229369477253912917084311910218686670321769964758525457917585452366210009735424689466355092131855040526177273871122268790604875796034982579930620470877756377104195849498383176418741021763872825909618049811073327936126409706861444501231567780993296234917799394812058754818250900944247797954265726320046044045755067352384239248119221960341244793858796059307974558456817385112734143869414891881878487606533698983083138215692631297942118609262282769388736417865139166758087907064518779504957427960915235052624353844960720945245390222287715167082975486394472808985431732638855109718134546537533650512424275927160811692923395405772221727121560891107502749698349365040630585411036321786565187627944939548324309822142373363714222514118651001564057594695559981717681033390451834983969617818306777039321830731328262657454161300904093381752051486719215594459190657231837084136063574707107749170992790593979921824068915525800268195624871556232755840444074899694365033427589177577683954634804886591417600434968603390256683045464054609569078635608191694730977650006712997480323636251662999830451926462217818048680925350007708117724588224057367610326381085448525428776312097628955136304995110352032724912453796052233759906568606628778754905027759146182606263947144232061449499091386175506782213337310529415321826440380605281149823228454770973344570812543567864513460223227545594150652794359555625520164150722967140681422822394810524069428743200591833637533421404414317924253803018552436539417766287440130533520732080157850804943906919928231747240273078621621884744803108410904701085556814600287857196210840503037096147939043464399669848201189023340244796309222082798758772080031244124950473407905754863458922695115171676569103510206742436966648434190442892455120756583555478366307661907636442167982773126789490304974102725836365821310929931136977391996112157942306862897834779991279595407330342283473820706515446323639637385991655653661505813458912085674612494914675028994251388857421486755373282630939794725212217406409300075031116630330366239856957589082875741349040664837146951619000887812507568966780658280888809375237713998035752270847296910837709897432572961248112954346160107989649286405157898025053077709252947292558945693191378798280966670109352902898476000612378110653440537011719066385084419361383582141934819710819659670704506680906172391904463416536770183409213704744060722497888540622829491954001545937608053433790404376131686723072864002675860079927470226140666757604887177107724168433719261181472107310681821395672783963293710101911987275697632037142692818056667501981866756390406431856336407767674340681412384880187060508447720140339822482915560996899614199311671013738204396258159727173866137794330887598860218987670868096583321122781692799011809019570159440171217015637998696854928392192927408945601730812757017033690382179795978392187486215036565166454950691914577913570469239454227842576548471596554322669078410351128846236434172411853246944995211135825659424984493857814075716887726835251712153691430304205733852698567098433185930223894984949467088012030976574010665429142523704315309575412210837313193476981544809367452014025965307130311146425871352896163145483846234876501901808143149143483973788050536793736569937026576943446491735535407141529958308671095160036573355017904300380376636152583317803434582783369290278926409101548660365486025378871483076538390723157856363294623162356647811757036959533647928018965922568912590568019314942140264810863234201179437273806032981139481876524472576108410934852738289129943345822796559123144291654949787736649464980471748674974570359204137988801316595471260125945429138764152934218001156837839670254820636300276773210517529712702486802119379864166186897290556450802944889946656196643256778667540891635687532605138152016773995803098200667074556895925599415190362749127984571891942203516059587533044282905366137832239270747692688275324801422517257881469028113707776758417799946952882375536057772425785749868994940968684414209176708377054212292263079632771324212603793202004168646591316701947512094435869053810247145558231354033745114347373885279001656042989691938707121710614283895052712865904236467777324398997644284511724090375185861783734673943128218001289134925227030608273963255815662534834914056270141303694391627535918497019796478894011476738101205467714891562674016431830749872983478971059037820239282189217410036332713671030556374904256808705004837124590997787958247444652823469675405399689358527766450900413847385818137152134601015547173610729512911660610076948973549320957467314776086587103431759120464312663970329543024505468789708766743690103291282304168483329251233721412410968780559971133632105744527472122699153387224153102264981921253797965097258495494230523900035934226712365130652263399824335520115623113721321410389527027801449457753202046673530501484465426984045944705256166010041236617982860786073025662441559461919243304734758120851768980000908877214111354435468838514318290307335136561705627480193905260703098269609865158751028823089131390348429958258786056912938897034213467978880443370184269003252475331453858988800641338166619518624227716384116447066370809229536555477890488480633233025667051945970191209827977672805145937711907725155103285306077445178099728683082702740550127868861898873706960866480486830733024322587524727413458414926394826339456104012888665778804110856092825081640351662726310825468992154618594729026756242425086501746753200643440402061603195290778195771386705409659656946718873182116579793625937664963858854066676360983419422579303888122234949425130510911496563170725975300055243394198573127228197257340414911362997720856130765177606584455770057704082123710517180897365326068696704123236814875494711511595815823714034049439810700058135725173959908268899517978623553888921422950465031375380173788903917841495175812804628398591167094227985297433929508194550067296261049453763599708530502896146287489184222765587214541945821363374221168962754372757684763968521605034439616864379082964365128111704036099205794396250424678983010686960286262055767563968862643308932378407056691448382808912897988436865712236200171111993642872160635535806466036964817132370058076287045287413667726742955853776882061769638284589674851783665869741841335550889289580272104025370902656790060589236625717125009794016277507139104256964019916832398141932578762126309807107009020743128585103436110757552789554266616041840633217591850114029754461280161313255617092982420087498623132328745075994245179968778061253570117299492725450147870057788759996504420038111303469004758021667909194106851378977398422185161805544434945381957794360012201419048018073899683350820981279566188195168955471701892152387761190392676477739584389224090460391031380197567980479659525555475884714256129782436779297918372248813474215570394719878693052460364517737364520463344285618173458120863910657876227166179235407274349775516735672599700180891668914906242980809574392297964260259723257011509282232481785747537097545665608849263847742095955221062338983402204927940628295936385042604530579919578395919140976251165767027925009629386122981383241927158988836592385922858566840673626224525357429773768910731368896246161428260604044717966210764732792339241542672526428855020470261025492425255476091483432441521920175670346687273632447658172594247616046603822898174791259289047031169331613414167876889428655747752668282354497560878979923160332795840436973588354235329617968150538348574125325240251238602922472649061340318349087507061531606457683900759316476706740410260156657673965284928117480583798493684398830546394906018077479378574230668305843571873823299436610591886031592234703786609924847903584419283115206405794667987665246958782291656835504803567260200337035748712007136516745350818255902497409113126747893892839970694838047750128809190846916999095277545705628843681330452964180176608757627415156238498248840442275801581903920122706212882166839686665079502062359287138416922452430264378929859496895314726147644877402800493533561945736612466727052744121983860780867912935885322725923851484436652016021948504543494936970686388786926137592200376070916749095228770567175497204710699309192626892845240659252015258107007242379717274801053531100065434891175411914295463703658504964390771030363348684588670067982304475275622157884491914870132204549838713041781482631951462256723900081062916679247274027750750954581764917442391022766503446673400524010014615948505570444239204430449150302481286432823224335736603339728637194285885588949977499633198543589450234588736605819131577157000114932323786426124679848031757096077694427888634595120687541815787551318878541789018144802115157672549410160174764938560835731531109872513790188324743621370086482670368920639747354356851670802653131032896305180591392331849521358185719388245224215785848757475841167932289990852523146907741694265566132437259537345915263845856565106090076429566738791966205634838350938221761952791056274411712823323651969335620657868042819271987375023852209575662618301534863174499231256146309149858172114509521977286962076417238482569626530915809990563841952919082992911635951822678483159894601425683246184985190598753707581504967249490048839650934063656804194303625837025336088303675529969145160330594874108438979614382953251751876109553874274130338774508590057818816773350666148676527426695479496319036802553294292549353397384953111988174127069069415560767166701963457368902537884617083060797352277004622519121226666186675570292138629447689268873761685662464310570013040198530032020102746572799684751182729088012389941618911903166227213832358141113857766984883662107333436862052260151356471217992071385665028141517280103643245541119694456271233833358723787510359013180804603057593905847797927252870587822452754250382467277558129724708954000053265453607890253089472320927202734504773251962243763527952336548656519849508228934774591546983110230821600029234493806822202928436525981019090003332068954666219873526992541745120960367569971164008105881307758307370341286514317559667083880231890603480230413448753208697063139222455975351575232699074067937305474090586044599768250911513615206541455917022033508728659530834569714481851573809695591187071351915206213636247249229193709668914297744929333470823375651439622644293171021135150044839750286875407281966289390233646497607461944298685285014193876964683736964253992757745353032717558426128047609225432604150037768724241514413459653584948485865871997581921034351754008322214151458163335959518737855304264743173257243136354305714296456352038312173410790154997693854856524844839692023515080832233036437810555987518734406892425387734213525825213369319094191157506453235348040091626430576821722555711546792404828208124302472364243418452760889056635981902330724938016090373432960075224116554610246902541384534645243623920606171471078626869549575715422702487582868595096070247372761244406730831651331635247589627071739344271890299564012513560189911784559915740070876691930596780759618513955301340821114875041781845585140137369161405810291807316526812342699973693512181301052913188353547390919259672682183555543308692703373631841384225193559537228810549407669670034121145794826937702144028238029428052714055626053306375071491614255481354074657259687457438963425199746654318588299465359135401917816906354524254711375522724729202418326580809927257216364657640200586264705327595043093431278056935061648668459537589123231824760095450193920631782237861447595487344486415558584495095777310064256760838407871197254953467858240305386557544323416607194405849544985420878684692504055768564609977683720248511047955711599819390334901489478701910566823893858143236513328730219690810244114807269844530332362360572811897207129904163186278277243496436070510659786539880795847556658238915784723194835605010834164510588100140651500134185063223520407558464725321872512147767647785559325184764030039412298761644476200291569457245530374713841504447115675108143521174503182563933634533286442075270993435539465656430306671492597866272410843908125187808978655972212893575495520295051493452495086342990310539630015742392584380578110368902297863140722358019929031868743307918803834328496047501524234930789095073370870010485207280586331775620338941630452589776747157857425898147324011730810414761751163358836246176893472490332037097899313641422503707128735290980285977389966686878683694159967692008660397761435506060708514764659686623352705872031768643507661742184539737099090095863852445705432649509575190865625601563062984098791741229146402045448462517929738304679782787640389034037491742874795386039270342024554959624903305628403954550014234602325524945258620658984344333375986876737012531584602808082425251432190799714525617345053938501546899196354601978286531447464522401609801667930625839786010348063848927330534137801545764289378610403922107793855129497294600236047887460762992681370497850331291231585795940498860438690207583185413973746021960081182793988605057587547419739367812998938885823845484706501694755389058596246066950012535830879524970770746882369654158714085612462912934863971404384179677095593602557206790306421429059953014768910820110319571717571213388824119767098932497443247828886625451103869210904963216705542502530414831106106338347982899768969726369177693381017852481740096069519332852353316503071693869386176056612143265870087984184657319907174216931599994499073751253124214804522914420654796858893786720120417463962881924071393053749294758900614224297932058286159092272647936708151186001313784520674143299850273829634402010336365151604430757395797290871229472641997508542582793858189361631977574038204802154638603010321057148912115203964127118409974890711626750886960909692634749232870161408417817295088108251676452047356488473984462576394009781256048378594373040440475790154488015761626994149639849987671683202254101636945618070317028686329685421166513769708484964113104488353544821440349828284711675145491038925545606762068176092338978547144873759163372124401452042180168459462405106338764168782857802493513293752206062332084453630037753239326547438406536408702392268307036368903566440318098416807254707284785112833638489243004432326820659402665026299992118882249220017919629985754567288311039502199176089271418284115819262347679113981278304347200834944722635464507124630675840733964379852147581903775196427835742767268671055408935737386534103633422166649166133235718642312353145292233338888677926845068583957873504149995388612661307252468116413179145176218921301385127360692957357790919379886779549800257883781845056480688690365710828081442268699606937283864012339266848917386179545350441729989595575661004592470541323688280682711775217696713949172129978543762740285060640622726177493409925631583454665469001712589165183767851714053250897772226955383962505341472617952410679242167955773605572339361863988628008693004154180223845034111414002831388741948743235805429726879427275148016695313340907962256197088331899821618754408441933489922562032351076877530770073528662253880616429789491475129142758135540856145755186738152361715771494625001518720217282269931703812017943261505405345407314863192546648196801817297806976917269325873387331819633612973433145633227914419801869284038889486466024161561778775063424348560101040833569868801061367308078425186028995972946978600121202732482930153369261753298537712559197192423008130398163571626447494518287164492660394938035527275961443820714809849854283629366558535679009026030584612013673166913293016372241609224780367504568575612794652819513810636558999191848804619394051035297916410828050741740684452716651719123109124784792990780332293059967178156650569659185704350328808777323237715246953906639121232639434321779773864107119667866809593570511045975900809878161534453044606556070523329195366139660322088832787257832807107075238778640922933623711460423462788241829915534605107954430709879291093070151428773280310747637106599653962463916290517320625564406357767322274433261195778283625498111185644860534559404642916388496096249272854100435680615567373292787022546847432338166315761077967883949566076224730305358622628725928776541560085112128109150936098060199350475876258230830945860914601117659695782024777231589990128145875457513022537463864828893123276997457350194091661250630849996121117248132100082582886971736787307397145352193891872626504546090341082077908881674409630903540752307162443580518543441347885342411065848833669900417629363957759860841998258589404545522905110408049630497483460159130849392653348357500136008787117093302512988539584955814743529444080507758659453936849905954108636374306888866502027310274225795739581642698720740787107427221696124790963980704762086920748864024270331613949135990813126703664430322089266193412095028211553768036044286562272165568341960989565411954444306804554389478543823675381259557633505555035005901353611989697615116225864565626028627411875919434923804989428533162579813178836365634857689160475052883297778328853909564018329826359910955282455018189729754072875403570901997142035746853462764322955971196876517077695233607772176616377621923741770766622732196003725648337912628589164354959152540931005046724169419787409967658306636713739036415987090468765748258988765118768568644188406684896129878377981771479496257663097787157326142392065528354807239439535689999821229001574911482114821567378765877831049164086020103180890132476786499810497599526934369593081752101234623458032372135620905703904903251052517435738859052654572030648512293610589927353671398469487376136327560637169866679434767331109793211104145865661036199943383741463798057797420720033478884802944826738243135875801724601230219325541793704511347330190083934901087999584750033697931987471997464180254788051149553695015436572445623901988402385989726631586834007918723932355711356190600068361613265195649626905895485048297103606958930725395550134305919032711069234595113676191600919969857883542241710157306084160587894062685627088609011258282034418298092543187850768478626514698295603354454962666516641069757957478656739550481642750975814015619116350490099241908839557445014763446201092242277177951988568135140823628498047172778003773042368094905111695038895106732216278876791590236119620514772090545382653778778378089326798507181076331209578786965161457757199326542495667571005829373668247005316076659768090460372183493285062017440060655245084880674508591156479809719194818199598387120654582107181677209701485118922468225217725719002568268045984721613674049181981038888714675617248997281788988203314895301242434935677574455058061597104230709551991914476238613202700298425899295181317135697574241911773365827535321633890111021637595567613331867437456902617279592875210218020539731829760984706312505026825718343745220154568794427810519453671201532412205837686381274515500373207554808333305986985441627516886073415501249956972450905567805171112470795692286721067659154788927931787652352619141717417328860094472210773382390742858634925603737297856652387566427912442502828489722382981387002375706172263563663369490638125226130680583757927792230004832019216123614292506299287042332441891510291522704781833848377428512143341464650066083972090695318004546955164431351123268303535678916172113308981869415557231958626037780607822731063231963765281765191959045248953290701731841319571352451599707608390625631477207216447966648096438012492235324765838831799754775476325230780558559204954508816695521358481182898359298343689477331546501761397228871151506141306832230072817869949446347032004699488130639720874656501435982418533332202713626365471675254231745876486032159042151849990930494519803947032108861951194712752086102327395470043751701584743818442665484131451181747412803384264693494207855471992147121413962837295620485609961042358149697144095864924246580317384386784628249958135849596312089100681952921988335337362002241841645474386698374267257145094515543367326580350949076442344907025927157757591820808703807382749393777813916193290045085321480134039278056814752465721866467060782987234958317987944151943028083421694212753859145848776789157490123682305866477760673475600060261926306276201001185019007726734890339228691915275409403133228587037100085307512016981659741139167238889951694267492976083420356533417401803388304949798036906601212546903031747413684356467154456655257913327180189091898825205040583915739784965736781292396071466597039951780228860915522897901444985095695921002002710583759683313435682568408289086059972861274965847519545803551164973177869599084259577493334756712556690657685698018586704121900833753690186933873741714354674341114659920700423801916845643135465611828288219523240720482683847565800594153976996757159722432627411399057283994326104568712985674774612424309873857840123027187574452695213031727652962171930636879160279798411854282727258451324417094605119522556219420233782981197319762808518617832663684725661247435441453378613400236723887337914152300630808159829823031619978141244888734986916829803785392875897958319065191040198643160359124030296822814581922107980268916867668560929021806505392382902466358513824708624105596543596165687881586241101181439393340972697677350122373839887054811301594911553184315487391800337501650843277268928043384352297751731838833503671066715424459370255198284782301855959525963926216521421291650162647790042205700184547352656415556160483496851104465047569532708075764666731929732896152827102214932046772104664825393166690938734193365932141857520298386109822977757098620489309427504598535121978447066790554905059447745565627163152578661398017350054177736467122213025241467097206128531689989652178221572381572500593687233865278006923166035548287845865177445746232168541497840860259530667156651183602426528644664080063881875136611047523160212043380978374271899052701638710199504256485457684745689393023288977980396262179160804237443886509309176320547123081751616185626260738115172764581611049535376189076150515015802054663095336186104728940429121297023625480486974474078345655246560489039416112894733551763565400908454838810451135285747228656228568580528127001990001446096884224155686714199769329729884570728448101749200776199734603259536669278843156953254188404590597797157514968063803113149204439495987581256793532181897243490082775105332533087004180149498432172680095159938518873336341684425409993663323790149666527489496494482339874275648185137408899060152656907651736440806670992618984456179577874089199035692845136265895219663243262266785850055378780256443202813729678275649833703846248376983841738188013865659710343388853740450835257743926194377147112963189834093815397050056044195685174664381937335684811303264341586653915086353958643255335507198544146884133876659229318293734111149120735822035065349273070506328523622269154720714942518162804809329269574969039484682990941505889886518453607383828396083390988734380438636745455376288200634234638886422364259495893314281276431432281308054417148018424230906118825107173943489445403069186461073239634262401783046261816862209369342321967452778412157045758158134658556009785390137334376219521666502534169147379514107145805240189681847497676421512353800786191152867646340838811202052225368853637865867382583021808455713589812301069057811870368554004671031193761419215301448592144969694276304977429455847832688455892485490517950221969526434737058205256028916461836658491920560907254244189150149273061378568271126997220525879411088650798324724033960275515554147739789784181270435863064561100460883260815471313554588500986444120805702070215214823665959151922807820918879487224821009093688923134352589100924117352151073107511707336207350462918543506182810825853813584950973324781090800917040425170692659731877278317776708675358905445632199834361822711627756651394112197179689601417506942995830261564553694390148074478336907062834237733458142745222410683173296551168309949972621067165166184783304327506910745083108024482886203331154287659275619076337001258323302333873227902640676314663448310593674704517713902582626031485907302591311981905336817764198463664984756264556086061053003806694809675082639150765886564209959860529074707978010617460326294829349548315181153032293612760314245261470156876428231282762779730619234330496984806262678910506953629410486741865057225165868607972899423151542328763513775902278484691231679771882882813881518869471513288984461446934416872153029595770069766117061476630136975264338403232218597682657823486281104569710647097954232331327461172417430498821913355568961822165358701725110349165664675385724448864823529375228841898333131484154443306663057267403221125770982668513238062418709666722234901346423211729715873319031398035582223811409788060014282152443992634185604763756406537950927135476830663353815539102405122381519631650014289432044279700983387401693416090651267975201037877558623081660579547207978249947534958453572041043111222189870427597622675277956633216837720161814078725636155322269141567732078385323159300220860874434239147904183270744066176095633917690264584138957138064615032556992212223567501383489659964238702115910145928018265946249243975340177497347671494832831314218337660700738539809901140481853378598280505393623459389209295633830478553758847351892182329263526074051044538880080570891556559060397684468569605636612618851633334196607727560269184817998744648141557751582128617479062377748559858269471545413768104048695881407109234235655040518311322257591098682624016244042294376093675963385157415226642200998511608026532747907055012994990899024449009534373217634408366030784542575761613747185481922145298110602872099662737260954679725897987947986081298491315796203160979237804293001934397604145469939063639886847831596155929721103078856858548499553722539465928101687600625304480686833995236420688201280075599171402446197743348386365413832258916219251647287159736055488295483895690050912652361534281071724860417270491035908653076420053615622430888946156365556692621221304638085718479330708856468694178280523240165187138838295896757454535087740722694088411898245646722217155516476074628913698400522891122146006234387845797962723369918426574137338387717622815089194585041146649841979213182895537306314233489207429680980531991492973409924028901895404999135937538610374973213362460366068872016081484137444876644035970207246254044129571065752671670000902878773555228128594798403943299574645321816887883122540236916962812524374330087014165952922675863569775842674180327627513635962108301020087909971541448710857195652014967465262070702430175630702519012620229316346761020406346141299892929481108311660730639458310489346915781742530263636280875166944974001974918159765817691550136462771128895249536451083814297238807262691266065831768630634539200034149295119661134504647823697948329267786661608218371244503068474664516994449924125339100842006372155336006064211735575443987686421686761319027510695423313926418890073429137617321576489765577397529809298298795411767739019048693122174089360867201101079819008674554384583833866714688735584044913532193225569038166214269471209559598970780280030352518725001209282711857207210398444644045703554997306825310084957831141461548848119439159105905172028257452431289913651451714466373243427019661200006433185350120670549426696410577237540549938279813671975794066331696942416879107358984004511052514116861212032649083255847575025883754353003112150043261641568055894027554464493241877644757586299599497261080580076756178002578723022052133645751589893908902547863949516637103997462418757499747171320023539503120256317873645130869941337976237399790863052377920621132319878426614518646106387975756862550004423740129654454185452382018561033089747393173620544573765397961342222527639364192293997005752129458701554711465819988578197012268291104514220908475633364818901289948551940177040111759486891896915260323500845072192262406465667450710476812961222717925138137356287955923142167965981908083448702442957967422690035592160930664307604910299306210655298729882926379233338681583444128901538054664664116601496492726789155147177691158512527897712248650329303427621834309596562033649786323834847323155472220280556450058955270547987551553106993909825993165743860516734768834146789710217438370952674327015955516315063841501763008043468667989871586384134465640134319938475853775213180411444362751496299139753945540794103415870398804084990094485733448937981931287998670999945364523865766695132894047766511673577409116261745443668475000788038343937318022940508715801179703480886662482648505342892587190286960191431110544238343101531297340194491669822530609759630632259104658609209356573551784643507253964485183906701731094598514915849408371642672901493249486121197674866250331273685300110563360365512628009094677994820627682665922966210937568571993219489459600909530319312119137580182324152411867105708700174775344555084790762228547542289601396570945684374170003777165140701219142340217732280606007625816813608441890598167641472905385191683898930737465107507545152514754803605165576260009463280294601651871497129734209034916760419025629880063974224542075925165658886374350856823884280728665829137923049517008562842956571091635306782371244081337062058695096240581470004314785148025129012575177684916249880106818718569899265635546696468683466657412121500113156692915111295635323405372397556852947286337851207071826185332176581067232856908137314717826147936970297749399029304763570601416251219028943909952623287728586587353927451144427124203871101260981634343062747003105683465843012756747473236680512149497730656556214844754097465978546118630404017259882357075696669094990965149323236300028772395314432284603217896518561590442259427379878505598058778475563647591198085509108057645832356346676019367622054121630634101452220622204503278833352320887853484595785082204287313322929706894320472778908548761932436769662393390117424946169471507363883006387012835524428299834740278868922165616847548942083584995501113616577547144671969486731546974185815373551146264680903409784782148400805659835099304763018940472823267566969786584953361013427160362043249543518862241361337695171649925323706293170370377440967350475841740709219927714636881755230168110107556224180979401455750368922204006432305224248132320034528332414864820893630601178901597009338255083624527840758130233031685814106341980613848478140745034556439861637304991021718027462182808936101439326530532009506766442278708186508528817473001880638646581247680283442578473635612210644294562000288380382361367179779437120525902344775043515966074406263994677646909248022924190262124706163399373495634853763781226879763010140758415392751634624175856414278603901937230791864571018367994005939756379541380533136995937915523549547016421299505058112423510640385626709716326828301152103978211665803781764624266566404352945843897817982353230003951741151538525806398746533265297434079636336140829783231880114039893235639589825239521185296244996482432335472982410669519170731146750755222158669941059420103764964176882968488941925271302542524661997887745873206750241013421163007117465228802111745386902860011552600079190453871835102850007913419339511034933248218377135156816442474424050250036153108748518269526321030395552193491937762881919043440388862729667693545985600384424642693800703964239811319168944818695128123087189037450538398194272430099609539552668219704054849153085244675648271128794690203464026793457971736599139130941245490789004494800007100096432490678592785987536068432106241686131270172983939455931159026877510097892680293795929016525909979264902626600830327010918889888143921579862207208555221692004896621607077920748237579447478040497131320234586557895655077124367767291634957800786847268309707422833436793557589160660378682149095916271848746535642962631427623715603220654081404340736320617394315689604848825493506366968187302791061556795281861141934922080621637516308300331267312097239715423472006954032371580162962694973556085845920601570469583571366146302526170117056147195570659880498210728040569487599294019747965627011843373299363968611609938754571793956213995961593195747098609213000599607718744292232578499387193298187381074211663327412091151496741033208517817735962298802411450137352121958643404575367186140917612676039992078236918983701697773795460507802331708183543070200040138810441797332151830669083199145395792356597488146956849246334602688939090027459008848873429984077998058358909500097586842636831180371887745587438495375238735662154916793755082505930625268005488152613502016303599161630755799356003456042225606688891469452683208838532862589212910750342290846497372443649000282811825216426811078684627689909796182459701226049225355595164942360874383550741073096840295203152804651904668571970041972863443351106862680414389456749024861006546636987219210292954593166469693859014834128355006095116521203220164581181398024911455809943327859529829457828594491192633625905394961022289257492462498159135046232834008317510545458579523407488205573121169208149420428431080093497075481653460784855176529357974769824518764015252873395822540827573716295357234087446623603819362058897409965292785057529404177066676033622614069203636776787682717593558196276266325175865460109610041118776861294491375150140846587733670113935808710451562504043308455519395724829611177894722129185285204372435848265966667091172108149639738872848852568543012100950425275914947234189588237456670642473167658511942794568301053690726241576845766937881845111524778827629389538265168382546748551335935583042035480410974498528010797124940120985254045683291113125388851966390790673457351456292811326716029159697548157550927454851978694583637208451688894322645103987841881549266677726127531360336279642689841788370864062239444161677556751869952937276460268368956418821296422429823967173089577083869870133370796571494378874259372021557190691284287067585385310399799340530378063371811007674407859312771250357385983082875839530658408351618333148069250765944163031781264497640508296390969562214783779326610589498954474339160201973236064700016565992075206814531142643698002933297843352464643644585935584557797707438699994488630928499235870269698407055371629448729502126206123450496798958050857248868654861557748782190289173048303790953624011050804729166283437370222601849941858332910798652700347648672070480953948025212439130357735813952567134592378209622317549884534864016228504297045876932555476509727958351549538801879740442647184693362770583714289719197749043971212923025751724336175553180657403278083174416603833586915403754711982107402764782054550835813763161778000459717906324242722657816407184447610650589668475084148199400468626524860646822056052431142975543323949263812445796281986559980669051259932635626936441699489057563973556246225212834845707096383205028261140902956586625977855654741264783025402776707141943919621426072166042965410911202472247970726087018331961137215418319369390903124031832081636163739362071509831327342606492077823246555919092405948728736005746128448382466924644488865586489071073732454600801941403389161347330457541999669701728726059906565069776200771818218179240752706460977585544344718526549707956328574115878927260566599540808454474746421354200054383231630339620794815922551875437282168301272377496141307466405489331982099298774776308008897184208366756861395745327811626620309305144572767622708638772319815260623291624961918786451069281305303123306028223109049669777223993659682629655760461304332450485000714207621866455322055824404002587836517646486506790412061902268830206504364161831295044690946663353066431033841029500200824598703445215083720280217728693206428096485478898624071224181124285553990552759087581452838239749872502571420742847238375405981465124013461530034622526993023240309368856675865006138048202500207502687836381072927072915747861674057215332156355999310874802218043814576967172294358599925362130732063033111128635307064283618840646977091122284927676884533600048525036955188688804997610684539009410723587061834102388465743724281878732282562820144437704717941043326432752732864241754023342880148644875861791336169404354486363284821200880592278041872312874838803000339016618400167577963253090503746815055887340148314923069484805309778102445585734422731388578114681181714623786432756254765587232922398509452267027751299627425777077470216086137603324326623716003459745249025778404022511233901083404878864160163919129274472211241901879355809835290250930307256539132683944904359294388973871259962554747947816233774108707278586479368558547658175276268028935385582260264809320259207122007115647146619975070290306227299444852364925205939860469943036617979799131086460253198012014875737887951204351443435318361588993962463884666845680251181920650752012967800613216798906532879635501769535790282449560523014032169073081741463314126944306924782091376969821544511221162215688646623118823534937308465658405251675693278474348288901976750064977987230141560120793592234507032125586126825101898019237169496266923114270285582610879454788598734481661884216129934022871624596945504196757411221538672771743189853088481005742164953962183353835243734106693019799060355681825728983057731924969264940627105299401319934085681572793028005888547983021479025222351582784822493201838151228052772050674732901673323518006967257441988517743782207975346924594950952215805752976243637606396617598256911388460193616704050660533096527097736141123668391690847809437526709324365837639725831015811909237173212403632288536755022970073014848845869528923358729528204328225919285253276541212891174237501938882841575566454660620271676022140040332012486603713525932959438516818421080199565845799409092920435163779180007555979209848572410380291121385311394534249134066486291632312067921024695751406570750738781015023271112643256004164373788116809506691980034598614240760369175753709984668231864921264701164761684716292487425242017578928027637582300960811514999612861404123728287762264022122039853437963483373110984820300468560681529122856514569095787435863504528091592429677538986241548656964570010750760695581353649323016323403278430514387771190203410439327015660428838359316799259477165809812247772093166617296673693557155280303951636354448980766994770616245633366469650132189718895486160470772201974435061051155712814659423084817351081579650068320203833770839548327009874877016118551665471881579776874035590037614912196664739599501597678696814021835857209493328630869707781107616478800771242414415793938195002810316850917328715997128246202088767453938339802775289740738237663450760700620050779807153148952960901216014395794106876396254918794147892214816788137681008062294787731033172389037400799975846957327598756349501739054905245718751321598541190404333436463314374742084286960539233661310345564599600688993218129287232208733292745675213852371608348633447409341940776632992224945665418097999047074007464738168628082631304935091031251726617170987068134799267673186103887029328198941061010537638804105204789167973584838827850804650559867706818916568910257217605865931423635037577314941088790848071093567453332395200615274844387945947402082419621729897774161515437948382216839054145144850379855184562055274395667910252114564957369829589092501367516944398081136140066971732688441437670358672143940591059952443349035580998467989765230148478724130076638226522119027707916937132497165158304443302572222960948057556803925953553546233385948566961663907702502045253743672226746940425834286092599702680650306309821806381577214477388721032537441651483030333262560900531313285457573695279235196615857663081204970157034104887385636650981503228045112000513125233680926578729479395593252435640327303538471530075608739878083412967389330060412172683041150550742302847544470601208242382182454185813434179181130901441468923448955619453600657464183798366018527671315417230616862424175914063587902899618696729912464531968887553007654625551541977198184865336046725893813781875242459134039686439794571661081453114828197293457491103036853288409016892084480307186445560770166435590489595901918710062037406665043379787262006043392055301573631210041448018883950523720497974585078217036472299918453530809147367191676272806595142425780747139560760467399913940122283100705047978059232365213568946839358297585897229836559559037513703964936392337638458008749611348185593404701818617763691713703310468238178862992963836611910705192853297062986362000914671451835387559613307540124257608488576765807125665090190014337211742463866726516784999411431797841637087299918431510798812213830942665979909258856488309404330238851277782243425378593918086848941049629611087395471992570918133616322364340323585254699120294016799292910621190130038011170383607844299624763317522336902590946432297870373728666914918742207577139179407779537876616802849452845888613444244533825688891247626360277963926210368308450812574698899802197039971958249234432612369218218669925649866044870158107755148185999941068428758013849071933549440536683849218462929741761096042879579572866597961283275248421988983220074919728070770922958678028830245846223855720758505796872369930735952506201446063171431893387027684656636867722128212758676752715003093815784869682688786798065989552332847733520421654108657637986108226984712053390485272038818763577737156616127761794941880904226483003554885510308491751664285006209340322857708424956363714150594666431679303467077802235703548628804481831733720918151753453283591710588437979192462652012702270079902597200505218200586402459767399047692769982773265015793091444301045222711900165177355390952971347330757118314889387476506570890631752117524157443680980001123838807442223350031433862982304057561731513863902667123955872081226641765655789169173622973090824979560562741950327220204053682962382702470777238383048199533491859519999851719529818097788131422537375353993684991491274472704302650715837778600446796023649844239460010599739301410600816157528359500432810933915194974777478834361454773948394865942405243487796852747735468986163537176979400147486929500881094229977158935282759180910012631734563335322420865332460284009308307555316840472684107423125726741310927866528986210611235276234299066411779846824425308495856200018242113868290147790116510105955721148621626635416078741372759694868647063314529297841045647264151117438004032651027277356877688632507056727923095071608495470247048399357368467662150044851901889341031871336403086631603596156093216976513494452510673930137761409696199675938869896829464980581905858457486116716780541963077987513085568858056588388903831915734028882498905509251830267713132181707229222575364009343072960516018976225748849443621029680559197696100170885713877661175547945027728504313113929721573729803422207517545492472218157502096592164773571510222689722075014805136605910184966469516617248384601427355468050399655699997022546375433885568350727607118011836123507611519459578581424901090026252527893948446168511597989880429475176336022542254294040029494802597966990693633299036087902293273437849676584030603256808033389138303479101486147100672430914384475518963748012558291285901335239719066489547298501875092935108864437236119024401007240025308678527126849480984502917300395622693441299261341610111822046179865750423146416999787983905077349371942731883618560184127804564829219280146870406268720118812175611394157908616443899419227556817181217517734589930487782958982542832681366660825629913673230474015670024057665604457438003045601018875665300843926186092450078360562458394013938789927548173771564719664508314274064390651535147959498263138697444824136495959007037562818199984012270642511416304137712694170507901067443637765055296739294910255869076755765007211293546194412444530776558435429190348837068100568853362635917133504221358173529819457864319914154895286087351964601594389629488459253062122490236230359291716553294062300563253371452792555595064720478676581405334160610495361057336596264547052183639831295729681094599272548120700563941981974392805533556541037999221114254098863152215473779292189019268880206428875088035733766886578792577259851362653528971003868998862093963281067068018316955695431542926078436518699343526738943706445143553609326894910557611267822086439806778653841588024121682122910258055036485498837955543835139152038670278433334041925758130162325681927680380870668018885054535758834517667630037043344750517927429892757045907236108335376733887240289016996175713817793354788491729767523230614313750311136750806371752986631721533414001797265447840204243084669985110812008610980112890407378288194101242676257979092768314281228310114360654879957973168255402981313150264352547282202561368932782639440138520310785948311115994711337220657869970747740658110494136518265918026357197809438911411421100741397078016673340816382474510151655904085425646810617413912143659001780094454969627576571852105310350532244691306443908055365514801933181415304250201726497779682262372102368030065423075157046326380630728066235221015521402330967515712372772614191336318273657463501608497249755692013330600124468557978205753516812213549745318502095896082825141152077737612198936451337167249872705936196666612374539032354346489274500518780912898600394851587008946624463768920869883151869243085636257535516051086532902891083765379780459469896466579707732463284369575335369523976271648479124732407209356775160659734601114300847240812553122177889547453127123612512057032053642751613053554921204341279183050073532301568430246440231108460645854710159756019261125083593505764929507267774742315503444070477622095265918349082904859151669982825873268657260699603665778272117743899385914643809818065090456293868105361659356059636009859859288726066624847563006140861611712062411544575392838527596375450859804642359221844723060780680559024524409604166309033488029594739678814840546247494561847792366898122328212537682439365890457643949828181844824809046767545481783522539904631336685425190665049865255880038669065415110344077151328942386475521896985420102636353970666802735530728241123282542746538827853431524299982393857240446772743116288772705183563160431893702582043837814718643022224144184801653364711268298416389668204523980344159878581628032568383117049692261683026724189136086140948487276534117415885192192475950125708260969002636289054231112334331723182322728016190813853962486688312241426024054847113491960440975045522530875034571683302533314206308402666844020011775554228332261894281820754964238735151536519203599729670962695046302862277898048915226589288094444271476977484763274372785675164351558431093580267637733029713864101799486827305215898726543940989577467325652566102715767327716041588046202507117513115181690477611139637274929382170100814791134546099226526127120425558829421191734363773694004252397383810505849670187933272514511141154320012523305081704246795412751382157827561261428442772127659414935504498977830719171811415689233933503867026094771978768238408656943706730966525606413999677112364108286734198943545535338250011138283945192338140436518283403170154998478374118255160771787277064775334627723827429246959921144025721772983444008211654907471252214114500270077041989966886968727277765024440665703893608555936739159938550592514988562988754614614154756603710172541007385955665502094223659651775013820445217715139632899088498434740276870437336702392367716293654920337591844361663040851902212050977252272854084990117020696701568032023451065730459091127327202773880324808735151548146069581593323030094474709581606816545388376697726782436645646016184444047364665987830097611389187429529890804913479339879005892590238719589673203149187062826548724047180162497711458217921823094570985986581834791285955216147128638604664129939848928989320184997365938877566842827413429028796593951745585867620654378906620252216116229897750015189410856466987573336558228995142460099602278749524157903928143664737849019136529443054712029915139045051930251118344116193889060414887901394858576911861662524513141785274024084412204078704012776047149820007910193638225808652202105510356930023606704008452520921063176175209102274614333243624919054707718180132623307052803453345013490842214820490615673103948755951289986069224311175488414889750096723021869583634390196743177996369683516545859668469130094169933239137823195947431291083934939526024344231889480868512793016343288730045492783174460079743346048580768342839209543055727678372636515315499468001663351843958953766984549510518104923550654887983956139780611700279102125528835723853620562366189752365580563378495571757529584631778175885882452301721129888261844170806451781654770250771733932670114851649966357888008089671433112127750339655623594373734948757521668971368971944249054022292312604007106133264963753744558770899196557961073180372749507706140783537300988699049186195691384306228303518068793551694482286450862397544579821855791421486703163283260443891202355930536413774186903283567428638390101992752503408818165363456173534509441337827715722882559748477963598039440340610342681209266721795968927198423146414369026901022481504934842834550345809122194872141272594930652649323609400547114688180452117608333580159189953714779631510830686233922527857966031350401910929673394476006426821056804225299588700871943854627001023684600695454047674213012986620329680063187621763814964067196193802793391926257894660164040124769262387210047033723236044639982945293103019998711696579083864682583493359838871970528409920592747267914965022859369784415032195951244725289432872333557298216142127463837673947797987799931769469400598244729546844936134841437162690471151342071218498374335365771463688535076702857808287981813794552268542176374240327306467498318096385768520383419041948271149414601284423817778366417346941201692864785056271093506550866937830305753465741083709787461897077106952149389317634765740470498280941267904335280538635859241163647527872612173979413935474259680865475102612164334782284057042138179173322397642976934856303608214259471530462204531774611421522386372554580957776137595019025845358782389217378089740939582449487125071467977707401792455181805776816306961564115713163975541583336662351657226102714364233490619300477144999251381762141732885548821880453128790242318400501939965226556194086520001344358863848592482889136102038804909926701387289883006065956002371751670387673781977172311517772582204398844911136157794463030621104619969909060315165352367293129242424190338320561216187645797481483253822424772602000907824237068510842481418427408299918438641136117891956918778979282126209085838993794915706749310721727814171473293203390417729742173688983956235409060175942799870507729647479271825448276222345218856523411682651325642595810027404310878744271461397240291432025362218036114942084612449425704502034272413136289459689556377462097625379238124243652091708427809272907668960778814882203960237889839406811374575895798504057571809821051357603642621982071020112416219311081263561270898602765726747099876596814860878008386667310741592074192559999442152339896603345769951569755494042113742245012738488709833945978653730970757357318823292053248330000871203476022553908100354277161366820104065434604792842023803333981912405198824062520472418033489149183582514169732896072744538693417374147624084275728901520993076559907405664260696003277242791601816417524815832340217983140672113420853060970040999682953376330631062878919801048685517437497430252233858788090108015964934548158963110832841562097232159694404684875847710455388185643882200274444856590132657640939693335240380352533105533639359659080058054777041930849857797740063924709250875059971674592753286535791822005990227436696825469118059926890094559730138380172852494347541942706368609675771931254890328711821706967957679317049415865415950588511680655217066233889379117486124687370264294660795169514841455119418004484924705975244320514549551127449834587188709006681653410886661996993104036178938224040888352659734317094881185766797300219493421544028031429694904604167931851840422277791282168782008398654166426535435960722054685780444933220723085827742971090327421893897058831188548156233776539491896764184389546063907532527220403532728083888919788136568338772441429466659808204091387987556594827520516418412804830214914541752071943559309052859952074770230614153972791338256360364843352212423260405416458649496820286751065262002197070484730387251936625324032370270547271950654659585267388748243545646261914953891458137078156643822820861422498652696299981856510911534968152637152061086262981936186512988358895703492528987123521395838140501101429283388613798300767361162210306894564756154356243498275918101868724694355458556750962535357105494693705799414541018125087694798229001893016583086950432719462571351022043239740606816753047270893741021631901146182444653678246131096458793238314475031494385261377735298961422118177273851957142211384801656676322925784536031307042565947825787049838654696249728660305007767410413527314574373575639419236915640723936393282562892234745870099024610028512879718301706881866721941966273451656202353947500590923163595868593710900003472638336551006843540311378675424449296342163275519877225357215533374092469313261585241825350316762999801330441771233057320044061260416286189459874961593999303357471531573258034905586783549636209882465269958768121336244319268072740383850003003085447975146669498826745366916402914800701228658535350714592644869199193656662535972576477687468707046547398853132922162695841274625998889240690406972879532286324332540052081039357902953284512675465166697890029613046928209591803781432467547880049942632476052320528602399667414795579512133168929964955937009109646308338287466511245656426148586635943453729808127870494839439663177302673313689392993401377476777780215021569811008525297060968074105829006345995194263983170932894602313727574829103831169269915856149351927144037449669982771544369867477844709697955751659545500239230608328618013675958661492610925136870570405903122218146953215906891466761487104819697396092218642219819328956803932898141029989292105213504606505134074824082498923582011550949770217133182765524651101986796942063751343152730690274350913793554821156927286283870378086288309982597886681929543294478429831654972589765728315494961475713876502910839832659220122246353111316859033496384818074158805013256718021748961856294226721109691676880885128605639953193671284320627547537889745461770065886330336486187747745064567896393447043321784841963235738321382196450079444477618663311805023214735853342727183779530156959151398772820406359002684916074989335175636284477089542842226261636861009550307739389970672634723032463351286538854397355419521925624142844564080323838849022045014146125696237781576268599467116596436693854946325197001118152019760209975942806823051132072587747022876832911716491377727337221920215584403617525668125196373767030881064174825453488450327703122768692778704237401087432716204169962287082023867983826109428894735233026687486107849223046930783509633739631926198851502580311148044642074195242101042164684405450153608871027735429429845413251679564219299469069820152447133462766871720770058099922577223047663495977365701788777761332700715217470299400507212352001909673882617887003872174943105972283095495222280658600162662010214055407156642554544058494631678253667906477670361560318922368722549035776859669174955768961211524467833231906656888362275526770280114309431938556005325276791489884998277107471644868167612790228988813703864303751190833271234777939059547491038893619854397422263668141072548559909384984787228552872564386493388785826108960760336197670490401275615226556696758740766792995531234462522848374217082270598418310081167261682915615029818244322212305882050094741859440430245732278224058465924861976864164747306522734723344802205860836277694678142943758740643135225628047442481486144354240624859653687423706741814238142131382591147069823110191909824570553828653041486575145038726953430596034489856172786967598133695033335761151237231336009019207050892957630270969695273208599678711314710590485753221645740416502558379099843384872446370675833206772021411889815520462211805128209170449145374168498812982857582277416954417858275965574150506462818062908617260320935906640802706975596032640665912869777417312867897679484680954016636596709655161566473407613680227258378709248293213949426049365709523182300790378472742929223749384348061996475962827532050640119590781155916496211059787002800656486704136518516691578499646263855021511042008832255324281037152596820109646933311777299418292904307413831048845475603234687104150863751006826401186767013092320596476295064032981239720210767852097088517497304259203517973425372613832845964646104652978029507055025283949962600588787215587823090640791110182192826430458960645896385894538051243388360792231906645701893601270479733384838448302645006837433058230503018856654693486530653961659282741635255050999817722503543370518866749282353536772654594740750238786231097481222089835887620523939835073027038060430994186145479721303460375099922483882246405007295531282964347920572303080589534937968941667208652518680440121804774635519440136742858248914226167834368379741556905308223601140020586132582672831787672482615008343251521605317972276623354388743332157355749935792142603428312125467202265772092415148388572874388464976201817931758691681683651847178811082328918436520116132281640153121793445526952983831101714195934514797164118291560040402039995272251474980484930759096805792725468099615893236799465555878189350328582606504154492034566340019419104319210855853572378846255135750985397417766089309418032385078516919087338997157846694373362918864095417460725164801855165807601102098439686220513848600498024938368439841973474879641234716193744537011391439470589780570829801357958610417135599774074585347732153860270976187690512472914659193157930558978917637555385815479258747626128892461776942453723323092522902721404034775937514529399880744625048308144930970275305855187418550171580302615277813712734176556889406583504799511498284371681957555342236923291886815032773774026026862449679623726161085040335591411753197886599708521871234208579055890552526579635535987472742338909753009058141660621980072504797591115888779329124126837097431143416241124227656871063883788794669177344207151915683519780476967044786887298798638306109753372689739372283618890758855829079369516909400092421670880026543467479373406060417450533329704014199447213517374645536374906887770507489662018586295934731080864676214416965288715430732419423132312211978108725830636503076170500942614191211361661970113879057408155045907539687962440422022864150553596538565810819679358007292393027251488619469515149245964422779663901574017074120720952997481526455196588033040447018397802977815126335550375838282759510324540031725886752316232176438281653319679172924915909752367549925430601454694458237650550208665109434460856320133699728472248928267933734243839637481618054759612602824227152366197389462952455790915944820794771791652362409990289862132522705295678584272817545072656137932266439949936578075903114841091550819020762553157904490063698063483434348136557393558975428799096833936458434537760572417209328352671795566381502461487730036892037328923330523654267700960045888863477317942002473030620364973513760001716696992433774327128589915518920711779392782625885343698722195598027437683019402093937033830052655034650467457400219184237666426154806368910140686052949481306170593233816349703712960433633587277069449119830981100790388361900460707878729678370774939797682522797720710300852637553286746124962683907610646899416875221757896916231602031489854354213440586898190860933063187013452070777653599807952925371530475144486978832853282051328353800028698168550896678153804849050356887544338620317243489912990489784259327620088610517412827126895782439847957036616601582027116441502848602553111117674153836408229564838798985558414189879488281890649447567851752866776134540440580474014072831671202795429265183758796673741596841718144351732373858454667251203354545367078015635174375106533878409698881614798934879325533546151710180609705946419472588890410007415123835070124339868761193409134925478285471329135030772659694047163625848372344879796271858077462495667835803448901377107862502340884140325707256857152934520083006786619855193221748934767437608633055022301922035221854455748147515448214465838405443260706820762300227520187636470544910289519794492915244670807012285913624996566278935289375640124219233828530723701745529175739492039914101179471489755164277791544542521779042475970803671840845015422722965032299176868081646891556054556074338591772949865055149967668947107252441778692095793203127782867142098474991407487604787487962145326604888700303095013303735907621668250751326891687369695020834831384344062252114564729021941638921326049936334385142395512650444160977869683223764543236245170426210486007143752969947651138362178518128420273325140512468984957566759676737387981445205459904111616725767740559607618374541869415941666776387465870807176072605510118742087564146065824982376610380183326213767559729815454957328748877485864779449569228431526693407310683847716321601421662256071048274949034513983289792639540143450327999864092141212432130991914164819174492498379236124407765011403429321456823612658440661461184642208301418578658986159237299188815762913861905246189898371812868853302990176506114944317618344252006470961998480395461254759382584475919470043020954899640228257530067488798950165258627280572695338574215382409294238281314367626114797253246358958507534512869440496317718281367209521989149203456170924237129096354604776003469348412368274872827824048252517469713886277545645318962729038074463445567836027773148856710122749294188731243572997833604634467352430027024828047743745530601784258008113273959165210581993226024982754022196223425818664182241754631012269048623863646781529690869634098390611972099086865338395135877706748980849730868996503254118639902828570355847937141579116793297265324664856744600668579108541645591615500753830653460671597350839701587763804285004197415341922117700815687696763666568687112920028354397241979410113172233940188675069155730448358978300172173578780716707005650550196293148955520335470951984767992726922462586405859436554343574127208657274726871453976982369854082694006792136804582788703810387891226301971745751458741528415219374764513850019179205358170212577962819100891911175302824428009364171927674411551920492435818495758494731877902917612676796264263436148993065582482737569358043710548528991003493140957387267577207233243582260333320112885504897914282007823484003032782615650595232281354822955102524999202648775579021480561547012008801057353672353006588340776526509061677426167469931135751624263618934615918812949307526238786867445975218636050919920418651064370523301414723014042582715112657671642178757439455515938471165295185300272488229258501913701728008064382279140381479994033686537641382781160603007323780501926760379537995620879786035847069042092240160060612583720541073446794519107486212041896339795607675727085034333625532252645577240047899169137943563993517636005192086937534253659539386005586426756760314592720853786557117039103378718098165947627343719197510638505265841671232358294806791846160482716367342994707382524360465238728103429826190568383892165718807174167014604278721932673873862379892991797380066038510298449750389113537706113139492467128748531497415972522043785209676306321737711238992773379833433352460490585838523405044954205098611479820336516255564647658616405613168520822032940955883669568541002417158700408615239275183384868364648242020582180977309313659961105549091233944448328191614995026724836434962095020035994917269343299280109901311643668652632339387561395475191362616263538224742894425215214021049739573211381876328811189373571967631813240457576626470041020608163323084996115320899111715824368259900269421294666789861214516374186597501630296435275486916312943822678166069990011887354240777331293080112482808719465409038110764855921702183815935643414434110359252253242984623197460080627696809667520273639749791400050479542411984428413551064879905553309808132006746564596635097238217422717767920060541345780409450831780901714866131735147598077911763167420023135754945559196710923266546121408489946486669608346108551018432623924853255882133867161673334111998821592825416739567623734928901924757488242334459984321682564639564896712862523276593340287802303449004855864452106902591246832205491519207137031341716146179063592949186487646829329733201692387227378871036081068309775063118136844213941761769285764591620094930813290497957034659210426856792472820613683068753620257153149818299892557222294027971500409341273840643318022642590268337418875747647424495073434040036789937493627607414184731015241486487364880846434381961862987203900534128287310504077685062760013580265657903737171478813054870343761495801811186773843563362675097586521455252549665960605049102746716021303512929722940061546388573141965828620817239251472669279326409006274114650344657418282736704993755483459360274303541052805014694225780744043256655836015263059765629173216847379840859862171335014654549406289365002274364235560722395149107610754639500384629649336675947379010077336721791481867348313835558616040583675814841520993986431057952829756616083075321481122821698628466833784435179431444327553180114927960613558134496147989488556640322899820735245632615403151478511159168627618473894585062365025703073754841124832625285953907842820969960536095507081619694946575447502867577103178261635587514831925266404028804170370114223298731429979884864308422625042062048128158157846035930689244188068182862169021169022277461854368501145251932309365620870175816856521150227017305973795875088264813249182516542678976053658096883597941938340000930044506717580182622511649296737382311101591315579351271990593377006169267560402247773697976974690382768332433499308502943962755546778706753436651184697613650904336479928981937800665656970168670392126608022901759370343077871149735955223608780276312167361956718002361486813353123722898295671416320889533564622363173666984900671130441211005845123642861505309832518172569393480430798465194139477553143467610098473142308427299286930156302443818522495361412622390719968352466785644295309662719301401910878005588407457606394454124092297891068706360062054724946963706292039333535864619010999398316000802928531183300991723046369833588692137046465928912998983667307465151210853611170110553096516278009156593656413651193970608557810240894294463633433697615431144026965621732936729967204658163729285221910767371099673296091863832826176627957955102588558367001142894407888107068062932510419764574038417802505931236547454259770739856512638252383001167307534452909207964841060109754652022763451498844245063919389501909559191718539734200987371371177057647690525209757957649112639952210557660294172384544015617466574567911139005214713337519454337376897708621412963737318860572150652366009940415161353248745437184906948790735799793368708518185169776044290570449805666113863887533878495211139787830643997631704118137668558998153444625543456691724593179954363257737176710772871815094774526046519485618015627760021801899634335360855610247187534292472022112288510728779420367349091330014137967941193123662224989632875938192021629300376221924755520936873146111513578781297660770294876869260558539088956697927866824659198265568813227825919483538977882144036172264941952691217023405878413712087941234282423024353292681043162345335769565881839247703820608366382845711466653434412900510371306773737205392485876886989996303522125639669986443930986733978381282216420341562197382231736721502831607926317973019081495775956488472593179213321413207339185134278301319981925607612067143367750334560357487842385797254899082241740010696011326438801015284385573440460930579145858115140041816760834507272689270598518065361031337609527910024093414555613576591286960281412170101989173868350131573232735364746374047372608990002346024100447169758749499336238146510160081084725860654427419559169866774016277712055505836553154659932929572770852294177946745010174349792643486366710965268962142235728741943160092999983749159846230711837071071482990306923210522615246048857364902420844222743910964414886975355630694035548988362226411664839615984923679239691364455915381227427335752472334385186818147989526835404103753876540647945595331644214877730801320431195829056383128710345792344342283864335424007949928980636852079724364071666783901931100934803538081841511478237703465477252211772979831584018379215859040063254969194554871296832157458822682717448577318276677317434585027546868778433804291925883061391250371669278764123609514656391354366372863535169439066408278369587129044440504813128720664761847166211317079875256061223535921849061960829119180407778452783814596947724348670085560603449167098243836944115172362727590662210812138614119982931355739461173900597789665806327273844554638341630899076917218871265282837344475298405040318847198702805019373012817378125833385912537745453007566031335807094880739797133156327486628401769245005095212790284438883446806835061335941021760451760299856938634352270023473765804744128435353063476311264716700767703855436947728400401001880898261651248518140930350865046961496971787745545328564806864834852130103045069787331027981582690653542153564517422298015497944503315915256958766374943517235884165719856387803565094626709589328373734061108664387990178002015387250538768427848393551839575260823051838790502855165612478319284365981868298465920155285615763486252822567630552980599140741050126624923309905604540327292669984535155175309848605346202065419776270097383266035833700648321517968752014281110813954664292654208052139199971597748977024286566636693836072109412857560807793023720361765579264874674901055680477360112186953665957954341318798404967060611873631643099813928044296189818844988297091862995521081509781106022676685838065708595299920710350930586670095955906692499679828035385732639753591956458087181050437798305543858907414102520818863916100529478412687067186539829566210174081856344578146157782297169426341019829646894699144587937722126421199300185618506676140574247111792635346715561004227926741281904840791124758783766694664017549148552714713327482516422751992104218753017651463902693257462752560609348939491317448354685660532421435357128213612340358179878815598270582518446549713496971159970601447799984182123799628942895865393524488548082207108223216541459150844621183902897308239973139144891647909543571286469917855656816719124111011946993356966330879506875547988612098171809227881757023202164597497301081764293702838332734815787080662210535918973552453705428605405426732430071637119653926155521410683330120396903427540444134045425890985959113702094649378806081618125683381577572032393624755922131865136920387114657631854080652131625577423321047863751718752053180082182002148639714043602912194277175674907135728545762996911080297796868968824306237235416640413149922971277613400999597528220595883610638976592611224986051559550545209400544884501803583919584372446173737862813371356389586886381158906611925706741712453722304003297502054885169597829684792298298491344005199365096377744415812809844137580113971593055406012216836562842188832647975119663894316112961982402765377121794138087039565869150292691544392317240834809912574180644737834824349568110290024576027485163058235140744787371713511687575138161522595179063477525775723799378169427570234625885303526855665497414393954005150133628942410363434375096754533766520375973477356586967561278259443120681515618729462525023580216375440180927995516004486088073193583712019724151130008551591626922639533568827762219263161487171360282121904282014555694713195573917529671673913381981128381056231133123979336646569183253241908104057937638836495767121567905803123036551544854338502268790217854773742061153811611152706439018199323997484122777424612720331323865649338294539282686280420778780120337176143606999798200687552848204337910427991344464935390524914753199808430650061624278511619285029183403758202460719962721333523609275836118305508737656471440619972029393604960359223346664180637976911031314872181863499967925806153778173571617895986208727277898867285044360330574713800474441215740809402345127653150882699676049681397619329687162866920310378607833923594439458581052045012072092923841199921984750918503562807064655322601297869070163099588048804728168644838619190035068930240591035162111245765620862994849389676643088436592027110224580771044976894812541160327424435140256833939741450405973200358973416438695739127606581438686477822346860088384674149569579790609133704278521474676876572483057159608382008206130517935072520990239352932194780257014572518832504614613311616305676473682257719074168715715123129985893554222971470515924659623436909712357895636103577021902597936017206165344996625574692801800810482289671239558096416972360573778311658535760003751211505099263985599068578509730276969810335916820548669568630071062895821159197759373954536302085142829773385416295904714096709176268910179729344259885500353344462189207443888700448760815708961315728922807601169019507820487190890619817096127193319988408713514051301467290823605283677794730217246453548747021392860679920082347435404201522062285917847912117178682574156803787925861990132002118777568552650246958261189522933198123823863937308399027020876238125472493732165906067056989873773227485721669684022215538396106218922564941500120303799973486530711755483392443909951262815320765140470362497240893979278721320353266154573035843035164862269182654963694334350343117022379910723644372111650190428905535213997195993052772887382876856240308621925386179948869626949142233652893999266566099980451565043650800641080911667911637803910366625471924828431137532625481738793477812877561271003922292267752730228541312062427914024868334008257604727499850000446131255666518552893070526736088564495308562111019151242417033507954692347318708537801909966347706149347182272792204385691636850633458413576037751852399504211222097353889702971160588909560422906991838881485255003184120997938885768530585752544228539150088243810682784439961158757034391393095588867238743473973813324300134387979480147742321323123240022304500838792771769486144678552446330549178180280799178714453638677964511405436872336971653712792563303258256285213050957960738881250769819906461647495550954034946035932102832595887500158266087441153748101156209166625423079934709135447320934557932678157253599809272235808185244217071912586565312501278468891619301275632468567682083357324045619966199229765556530303882176232522522270886297377517626019017167738338279062143215834243849170225356433863980103629796347487238269249917562307066674932196796150889341345780274285644141617920711297272861521501637404381217592081692377796517016887497794887670186947248843562575770596697224561928051685177855878323178676002197912184569960046784539436066069913329283995846067648620911912118793167598586630158263747117611092113641920096040098595286161617145160340064450389825256700944436894539077141606497763327035256427143295116757374310541796723877492823096768987710631730953099161412024053928053793710553596119278732292183730930600224283684381212769347032521465433810217130081550847121965543456832172080272674225706250273289400098785301526145484532016790371213357275837851227264368484038947037790915735840384596877213860398937061722774964846455719257572905393544214575459236994417263666184031377304904076483179944609754023862123051569575565001644482601483237948303405114252887366804927738437743923711380615341184968195922209628460567189134618805657376937799918369573263404477356171062941471124358088591617040224413462058130632505317218253432776745213040733965977393759488383576097596983764204580066434605065790935181767932777021122171536784992482566618775977319047587549429686241690583249945503994605189113882381508499761402404283328415507713978419765205587624994781132659361997334979941479099239302978404688650676721530684612519160062858666773340366251453541211937921647658872340264356697467211659741833247676994281902242418580781041036722188044789323193169562521841643086877730929714491403458511542836975340808230162324015914118043799568808669165413190461162749542462268487717218037069363960075695066596032205516813130652807201333172703465774575505695972997819583221122062104537360301139234615804301354409744045350321887372051321928869192692731851452480727767367713576578306363896293479986602374518148226589654103981603021643075076743750412714037272359944906501997083962133803822220080113116691933194781638703535402478606930954964958361780147983145589921622715080685444779680776296012853849613304330501294270255692840616177503375891364869577983822957156524283423170698519044468254141560547610212096922727477931198838563333297554760223235070036727740616390330221312722513981455189131970673639725249530905494596231043854668701324619135130763031411855335310418042521570420842943080730242138375165913179237485186888896555003025057883016619347830637230543892286919050791949435215237847691231154977673538865430799153373081814482881941103318791540356720077595851871258825032801872634985757553308950612403398831333413879654839813373596284974029945088218673207430000377963850670243683237588442146711496288945140171004287364060191263788561199139973154254508596220664277255829383807298969265080091266878516603333539759092962236380896008329829840448666471802486248858637785493725894392100281480867133953233536452578890969710883341052747155288119596263271450367843799742961260506322527907085715637823875595502557538649797880856424302227490517176692128494387495570195542135519945422303823742806782762544039100845562950070470944706684718814592751613911573761790175573703904295681747432435503385005052231969708545955291179398820809918792534138897089701943144441579305443211956015550614169067135158424825807477431046427893559560245617859515162833192038155144851988460523041266718566210377030300415260741136257985817284911395001404460894370214703590847590078599727429016285919333987340626978324411881492599915034848086462752606535877559083951406751370263800019697795322377451679998987232578569821952380640484437074128353693433826458365825792969311424717730931103494313645962269950441990289169537053265048413189677151050391036924864446158497796269084626029851593814845668940293750562112405226255625029413452695992038655785288734101550423416179115995114285537647160413518824958926191849842990391314465580072488881863312895929743117677889153548944988689025451433284299286579338347467312492355143172848379695290941748018003189177697825766596350535724907699103549814005069571342684814514230597106603948814482032585304667059559522374909434648145713706028409129668958902367998528748772724466975538024673422733919213990472646558750121307618823104558741985095175610709778655573298815843860294263486123533892401552803363742959115805200875912798035030284481461875037203297487431862343137594900901846099449093205729535037605429529417001288244699091299303071769437373952221105505970464559508885691393468763038093899270527717436818862451632304297338744290390285797295604258254042258804521340450610604718786922475748443394898528855869269570935961440322225057621548047277379870534861403240443452467272471602700027204672055269420158770270303032618370644592654658457119087594843604160025954394476407730526018616974465518102953156688663432587449903035448791984627342124627989677134416703839552420464048406714223112821534071180431422147009797988570126889489301713780713859473691134401336916461966410762221778858847466082494094685247199255876033763573350582360787194979305394789880095452855635496220436624570917612337154478522822182706034360166369293908020405820087698336490423976774320727581897863867882359865381364763613427648950215171742697660583129131064371283758238717313835929541123108168411010891394348396498995115021581244477267162698308420175904549704262203569676935627254394463974692015863700530784350564686019454392993495450490272075456392376286944589682986742723874761810316740386829568452213905107731704790242063951023500895475171195037123624605498842247745423513925511113790419364866404169261591789918237648035538687393198087005477651201192665338312151683233526357077748212481592025700389419618241020632247508014426700558758445208583799922425877827750648120464869968885983796269708588779992571645118917681452092582752600228886554153884700710396031403630143367682601733164746678539098289792885212370302295177852949943854062018113488557518731002920230460146919027229961237228710096699928666200142444733936640288957179942048738904865415855674096106487539942153118222244820264501349417549434573066046372106797085641235591492007355013237219942169446724793481508688288120306169327966684761096986666246938573675402869741090364558224435978353406441952890632587721051085158658716817616903968623496180161360706587553605083969487321942301408815202567876309809445846283201923965768836923024857881382851560578587451315814490235105777125437773162759701005203975583545191626828945071581599977038390602657049872597477970603996808797206481931236464236929888687687102311697462254686191465827020405307435032328739977114964275703700867401678849114853284258844067146215755888760345786065459049815688780704160296558625752559764229296425587581285172489588686731375649542588110648616223540104803532910421568364971369311344366665625625590254269978571693968927472188618090082162850540932544034655995952607127579161251099438067477143017887533746504072357711868852714072130644389768121421149585497042081950041466714263530460503791729783535585351056328326295408529565206471790419394952564990911030146239441233073922087518542885515352380543571473404207465360897207891582338091426229726587892132585692580664557360728445114144865579736139961564016144725774208384537386088511563401967026590928154621397721439805088902851082148827919394901126844499551468166817770559557988156578505822834964286782750858326203047082048534189102145255085354148605111438896883556907382374845903510772623536238864590510577699259618769841378120172644550581371095979504499799678888163255257135605523625200273407331921249096176606702161485216688026536551244969377937509514688040252901339845472991201269703976043978915312368974827487354211396955826800382347356342500392666884862435567046370459603477918482351183816383542196413771539242895678520350438652245855243292524001941838767001690915166028819573267294583766926005302464591625821510835846448678846121483076890738430512285391217968287095876792428312601098240030676457765109357744857307122137468931603092794697073346378658774705818238158468749059490285498925687311014456076439725376983978191815396117267637882958703811742077604178594714570959344040668753260201874189753413461176105110778881107054526844533731239331916366736065895537212822125627203622637307166528409744278097650592646404622854438348110026051138298315335440637307844790517584039092150571817546304506049078317638659532252099351412462022047595091520793772740590042008497093987674588172359340968078800302055164067142127583267054042013468321958324007356998358918283402040953337265984719559233919455502231390716258991083336239323881479628946088564082053152600138182662781381226011585906102573585628691702185632888153649948963601931496433920829312678148729774467803437850896573980891965780558990101800241130043912120966006893536501233339490080650930752912470401706114432847828028896184184909464680432167617141107085939710537324015007522826842349848963164390044835614822872967179844883147849139958624135980938806758984736547474741242974657623245485983378524224084467004142336068849370930727072121806582830064704772250107454730360705547042133947096902288103045144401872759477116612444569396414026203917383082790137302706883310576965233277242759060875648254673781488447488826565838058886121573077294180238335569189342748672546771431598285451115637623708906347498886871585910807049233023531307440009362650041494240597655697993076332157534984219953391348595624084019636956183672667649257556104717894080508146154480946042254932230578214447863030129443631233091150673458781522852055064326315345083279098878675853349048985383938232519287718141201422480709670421786905245031807712719699798299726520471961160223180217265025872439027603110177295159526693934288230574527361071673187405847507451179661478940867137306558759618697114017007242705407093753353231829379572534606901372551438422471604426126172954496397916537824949196138151736130716310584518664810116231967071259166520667545509872604641074616908904336015616687661841000529264599983263556577944473996892882729970953868484473683645589005612826682671107587827652313193168933265971640646589552646200176896445280581192753687945056937263148073271925732049188171787132673143328222302358537876739011363303646267892018430136312577904730221369651046379419728867265667614497969570376988999403041249943245956264078077276770961555208235488228819578793463657217127355148041903241413829592582627872580337364309229329227669208912955841226452899921479008626967695159498283883507447454879272903726842269827015335703801201239061809129959931031047019286193551757082406426284683407133490035248058773041605058202397269662069034071587522445942405827906345781087861644913168865098351339666169597078621199164856580801066426447744381970614695870929571461799262578684878024617146342885726273632399365408067478637341466969734829880585068859889959142651585631873945394333188664832613876831647111099458799338355812253685965406437962728221231030983050817026160052885468923807526045260476401964936081260363417750106557092333681939831004430523349195465596442925756260619260722117024083845716698403664537450234927653664851155593185364271680131573587235924126950411780638115294450024071978379990384833078488383918897327851094059063305202256606323439379425006928087553089369531561731693382206153831628502423240640936675253433071626259095354731431481297408195114577044243444269345696728896033427299078920574535937247995385076213500756353287836678211512903686925788843124809079608828824694471393243741688359188073658136752492661941386076784597888301064368007422713587373944621897226718757740449604558739040498120846603475456033859681992811666793639099563308898141127318765777681720722210280876566926380726846409559102698910202809032094319641263026714051944122079166076028137942073093262263945051730522916213273300279160512607529531447461929361068469901413396066978693097891995579858494023968237154356840681758153040419113668242283956242094222290390936192251850307937185089461247056173084091680918018551553746421334788265722773061631301528772812088402697942371447356554826812825744942588595415869028336238704365308933328405546219529408272372520683440165571952791099149363334398667028825783953187703739369721556461392698710642247894189599808198638053555885984500036169786630433524805228751462612078340835563859764699332880713241627977038084195903051227673976214694485247649670528020212856031335914409074531573380815167312989064620418877854810931485091725992682990149516605568592109287721090878112245150305588192741234031980744051547525495328444684652568446936601477196208172955618456667123660375108875505814584853093406752582405520844320575241765101972075245684624563907075645450135612384207563782705511007530197091179261431403191551629583100545589832272907574706551741711892158694237829442019394080400904380728253326223033438464593623916748309184310264285898307062001008369382554945694642655484763645644587296356644654495099334325314778792168373749338036157102932395381430038868418791439218855384936134830509469776660719952402544245694392509243452270262542467457948310711872431913930235244999868358929527318803866611453123519576645316296427933198455339266570985981425074276764219302715189371334292641535645932635307037716621729257143553912860391546430522995297722835665660906173232178176648556377104211912918281482795510181423984588578924727712183307117501589589270568904318493268407489611861164224008863904588888968931226328576481107132460092211889245803424125718949409249139654618319614133317998558686956722563406785836207483778894599245737933245701702893709570985488013093529212480018773961499616880983715109290683111848798696470106044059470443809980451768725825229782210908807493361088016380996745423414609753704165297344981649898243328850916738204433370009290111058963579316107879031605632614493585114298800217662932284670660230861548233925403190310064071676695988868772454354189727104515019064284271139535672087144298022625491584536838403607242803690788125147309111146904924559480007278913476124866720739133432635596350656567321232821756278362551678881059096726530192971336633982860844089467287178844334056751663872634199929362270318174067874088723734656006652543032948014726730622668218900684331555629893682522624227292660425982541171504821752790108796865015623814645713268901108102026574648997868563466118576650445257792731722176045169762938906366115916282404946733733065774821429153544642990252353479755256056508977624252162638829872467954770298624305756190603493811873596034799948470246796645761633256607084653440819043617214747607901471868821364777312251595963449695061904023547380272672486002937811142803737596367095318345969564061844375877826790194764276248626946865327336381451583124129874080117334511690724173516515018380613514045670816479263619463781552396610127435387421226412954826101512178820592089668239822666309394718960305106365898421694695661042713902688283187174076778826930429434347341699849895324914782683185892732287436544263478042443365478496317061962602495437635152120602490679371366937878102982489763721111744539615727782388732450706418973772083245842645871532301380193896115949459225336642029483091161735712431564400733843564319682175901596777943537534623760594218270250028217627730299638847531282859904530841292539055802941765607024991137423322488559570592532096681654758216537604919223042490705631145451599498263969359716679290153976133454384892808285750322685566243582566219565174053377799409714967918413885540576945258107240054246426476072198179024481927462254667221940235950375408981221390750498443153482922308943207458852837872443340193282691066290042903326492893309589238603530139735977957414096253992190932127263731205120910294209644273731792024514978830781119776675587622420607568427856646717434411205321789095072758108756319258772627024932995952512442449483301513540731634475419865087868362490110420719026191893346249849448964800374531563823785587380713549578954012405364531522372448292207915693302064342081452795577825192080567699983067620746645777297388043498563157755150034073596958138869913143794451318896738541366664700576435329976523182408568751189709054467919047938039632157270397360400042993177492542621188302822683414122816066361404212018592318319822824951717724459130649358714612705113215966718582457810557587093328522963408568803825858185810030200552134195044516014708311579612815692065213535782416445876402041577756344549858447043282871793271755991264256948035348769869264023969311735151813230136279622126517551330374384677295248567634562195474638884287987900179205212799485204826312584593557073231070342813285294951772973840519133446321594706858105446879507558889718369924286752681078056416974761553431663157167207580553845586608618740707259100079633526324097205449815798738962840605541405842929281135169924441013673487580759407148741733038674940849091548445741188568391486836267593361719193719258168646998925030543538977489488489823123339121103896597097666156673858336924470669730416824042106064223413519174609793919362178974622593822595571147102887734462873399673172100374611739477058117863107328791039936963089501006899586721798889990977985515365697874971473983125410561365435551532025664297112117772324586268141928739974575342684073955567680208012585095330397184953400424507094107495972385148472052004597232327562180230732112317191047593937175277394695973666794662690468857247426706690660676067227947478641886312934494460985702800034319185308995144266747900489771443412815402205733820091825247302596410868149412190249526192846853651305572680275290705712088688452643926045998065483290444003243002264909038393726362588214384132076954641293493119663156583127914763473768620776289162393179924908279012187093819436768040518956672189226507011651604970716100702400700688588620496486741747468644852974774837912505776566912860011810181017142812211778810848541692930255127575270226250912171640064986708608069980170131256974659095297435600629257136564536526248684917311340166269317542486704930359574603796289099856303459835971640705428794215887126380827925228598254889239510699324605375952152077684320949018855613495236019443623691226016185535399987767650929741759407757512991717047537762991200407981979778539935129927729502974650793716133874518049041361684205304756595330086664832880131713887550299778150255541364745917787065708683366508670582539338663147736435651561271349976878596611616172549345562405397479034668372925983928224961976820112221466707962252314163258351784904937265835854717374058556166918426493387738153908034656275418394686618866038654618727248539250044088719660339486397753754123628632978883172354778416100573888375167984539360589131831738164318166690798084244107319407778009164139616988499557615008459369750745515848309941086914193720648046181037625269081175544706774961534881431136632083595852796799835660633273907757379469134902073644003725582939802579874565823812371736398944620130596781591436585898747003439685960738595599421535244587897664243924487560816276862942389520278411817354064247675794959309897619878847098051402870488352086406996617420270006288971250039458140180063513051987849988013526533450891912200685519291575786169896903871562131870193991109695762521624527066350036723414875613364717632470482118428009631909033393011801578490305319915847871766664095548540296970381188184977114127068863895703856004341890280961564561206418431364104148611772886393174882007631472139382679457718668833495042745989874944178743707775363874191684887180487837388764666106836782073607619484987605877806064478316379865301160654547440438389868339785242074642741631288707485435876138542440471262271834423102794347717355339155625803508826001951145495219490338147198466763143210157564655121103120771932129896464049895482130123373172191754546496420718994613250990609129540608803050842755568572739795618989012513718588659704819529325911927152736910834520110670551527656164321947449129449324970882244178052334408663022256335885755566027021772500622752456097529210835984248091025294534034869895006496429205881105919206048577305030769419649979601864178808899541352738871698098393897658694303186195260178851176785793389204455998783551310517748125138888568202620636898353052822405825463682559748046033033567803793599162107385884330279683658454904676844496810967857870978642816751672933781257544177451201346884374131470141848647680982974622078995463502765851158063516119226968754167028692250406812028633788994849561351323092062492504643766592398798383534190998034788023042985104820523151981116881132685907809499256938740309917042810759429029880518680913534500399295647069465282237585395060475949451434276734004749387047821191535040713406879304516665180079478242500146921243274906030057414037258418142778134051699321974335918665888082528772198316542313350720341948691288082816559665919875586251519647720394352703416384150512535029408762406205500850888406095435879243945777637327913628684334532078098888313882632904772115191463049880018440416210216112681206577177223486170128454406799880469618050218900854969400137933705980589097896546978425257936474472425688173261737303310637466016501181612458330334273226409285984035270919847139435817203606871992352711694834699172906154374943666416459538287136980351285582577188920892908868460078700790553342300222945666646759850222031902806807956119700452731155163552001035549660499386530505352419621252952625733863124515931284700355714408439141897733543135984715106084649438606102310958921306722661417112372677655779999098058048159820636126947502319297982354654980996144472792899917873605336653207690814980841500766446961361249643739397790413170263825861392581313539714779759374046159045489909743181199461161296836996370994222275288733118320148024993561156699661013239399179975203986106614752096303191606666123437732339612228335931497423637080887800274538663048732199539680110431015376158850698743294798150497151084888199012318728241097798664202667183307881061876372879780770446168227101665369044158787505698797840761604981017655994806819456769686404335581210210627692778936596946597187451038776040336047929936942177803914501003589135387349848877826660744938100832271599517022333740565070312060417723479623396397267990604526000097075152830520727840144545731127188992691068442863697307318339576602045345718275164394414393019909180630532219768873560391059274338743722563776470229236276624441180414854192311458559799786026824780150913141561912070312960430038524385807809821139145279804603710432748986644254812724923837524430965592484693762452292660230742942493542099517067562344294992161730107279650729481690284440341125032715649195312463623107579596523850536491679738273762038502494159080256788571791736253448729659024318363447196142270964649825286588314177722682348213853891028888813643380243848600053720240002809300755764810995003171693836411884847519006213891534008167917781087036448412197510656224654806389316355233375268630965875397016113704374967951907412313918484598007402716300377388182464306181117314318412998032608169174101932929783070481915285536673575328962506704068698021267624241119303159602174757863839059669470485242649989720351728662014005080653225497592134604955459022580243507377525385109459637687797981831167502418941182055495771226174425982874331655209704319717406645851902950875336448843037770951697716244521029241499983957703682271843987017683375221448655412567818285884509781779607685705463418107866435647636258761137475233390480444747148187217756705045463524584396080721575743761591001821344780217489428375509452770796804024372208361275793145307992865660029608626718374796241029781844190696923452238517844149582259449026732319409638489613607410509432957503081501858908976326942138092058643402863086841660650789420162625808471418189255924779672961343164712262985648181662329109341863242792665845133599094437369619938507985637617833658177453376780949289591938758032952820101538309442193311619914311431109954084168670770264218149765622581384893632195574554951745970758004540915977734587996242450929041294004276674805718476592866923196516464085052547697051793033845938421617482217473991917731167037131985933542345925920016799869996971410836533710409575281311446304486235908400505612628751124085628621804968798651237750852377528130544856118765052329494611977424052689156514994574051587370687462101966051719793904949915953190777045536672547426492662908865699964135361390691988000265051543205777216663966458689118495493487600345404175060245681988718426142309254211209429035306345055085062482805489679823659223072494948659389275397754613058978698600888619367172675610839865000114269570364996901246209713184640265082895985700706551121639644046360751855274239794546859125758715910533758069238318289707135783618501478679690810185279460630974951437972965435392391834466999395438495353271935405357501835204678971757723569612624992471203479945433625135761696376914363203614784656677554114783277197669105855666418413228183157623724032271854154490236167076749341139241766389562968052465217578503000110897099249850010144417946564226977495949275253246240357190640069355286407535941061479442696844600726487544752525413645433943468839682436839543646975508582357281368116095352361149763563411934903436616508554892663196142415229962722586563972322142094203483987276659938695003170511156318756372295995926419539885544814336218017364018333403309956754503829760495069433778109894119886039110352550532070165927647191126783831587428621202535543865332952194360750935067272328602503885753836511983166113859249599850509044518443760034944282255144869668642070256441881144689483210640204715140683296829507337134375092574617978342085472309136037863837769366251535195956290935442510093013742303512636980529045120951735917228813321032300382839393103573966064060116046684729792992098197016776126093926128011735845546009074511923606348291732439632481301489398977887020795723429460827266545772761299132863825382623627085974044945256351900454914366151906527465063739142266564299296152889157116959909510247066303165522265123335313020072630390192929709416083578377749348091130125370041261672583250353125364710887939682378153155131275092681524895093673762692405159050535215617638115967156084419672123011531016048605481180490704085282196017972453312956602530217285217019836237090692662865669109360243283136886957446692465691639588006303964432921700015621718991674389590164467497843079827934923634914129067912006157228253135582411404600497306350908453136740112679919877784597937495744029713336309546629139655041962977677044414675954684281570947217188604566593780073016424138122072934779905073323475650596641795471947598038820787822243979409727436472484299323905851189933614406214316662808748958696815557025658182169104874656574381973122432032682231279531520633478533840032578495796671935974212462500744348249066081315160165264818301265010666074355638408628587991995936346417759702824844672000253174680971222190357586020981086095208818286594177170744912258888368026473799705690534410903753845512353648546821807502568188383247132389870861090036609076447943171830506499951876869841603508748927104661901254169983205073282223958007906608281802490933645850209504501683169598461583636822248383930089396466586963834603648404966402901288970526134747512940801375600982411397453245972007684312505983342116438422609752441983692954569734325633420671268289948060861419856139246943411871942421852021853813030192248397896185592038644596640308339933975795745357882950686287179417197134206558456175343597550575900401848665792979324998174996923346665461732797019464399917787377513706332630059455341446186789915193589208541326152903832071681837307198575288076719936331677888960887659946847532145827630264770336642152074860726914909275877230006234280796839707599826752110018348947490035826761972400716338246703935065228100428963450397299647548349008845216071093052199405147606074271969064203062317912514010700736302265220368923899813019299583694266132387761590255088390122998163169259300296736933864631604441955282613129936661844691939597691090213253528549835078275991729171198477362667866369305989053947868161220147008057522079087086312572549261743089200494354790338520011078143640508557902226295775010455795848101102715384728805213861914336013400368810633096861158850399060882968435561348763415457328544516345612384812881437397130992824065630046039340540724602364203012721192890191147678560896074584704559788903550474401806619541967868266269532140639872668829163423846332813274701643470606333508436685570705814782921715655792558993389421383541209213484900984500100549234217507551518982201453401428670179429150825196009575228868741566212754532397536667845626295930458641533385916963200897554983326743967536386484435094674760876004362677087392331959671161315671689850524528027432887968735780866472807667757234146796591704782193952909931634597069773820588157149257359828405072900728512331628999388310582114681493883460449711835350542553509576171014288464977035360106419071287943319952186526996929291115433997129262941228774030317296388083453266202691976965520795443334563355558868966482245588092331246680401382363060914519054202920895395860623583790132259452331998025338615578130760542536436043611030062579879105782568523616764275887377179418934181396692589643957729519759533664652354990638286495457301133988919429399105939044926228609759948341611818074614192382145032027632287294890881204800156972524070995948038422260096957914413966050990141045734411598981697259374422792657907127420951161009361147827839047895743477784256903318156288279913017066384751828357568332392971881063328237396494874489570130871841499268152061633512486501795290887339208218838545714655789966153867615985798386978095652506313197209496300746928202305599335709221719345502886221866624011882468597255082460061803304773186115877233486063974339306040798512981300091418432380794026459276434013467088646761466622569487254535713948509325863399333286954011677630856810067502897345665537948171905289709507640458070613469777820488309445813276705286238619262354494467323820517612796721732598862681456050306322279700060327825315343480341241688426396084990710033999612378687706710676799619807482126319478002441908056350451765403512219023789934172085204652515477517424693324178741664958725168377020969707604642626891558371702350913743731704952929572091546710755697435257981916070445628608440018169639016826815125027659619926863981714483643735134486950424528996305465489465452700912340786364751844756999295873349151711488840287450661470086730322871020186461568403083674754211308933978795097986274499528326957902107682516279635853177315223259963716123110270531311167762764242605135223516389745434425128318131315251161999441091257982348213769631110460508236462077465505655783190173532779993136138898897102327640535754495246352257372065954468943733314246344224415192802810232138468619390261676091361010615345057843768255429092864320971688227827700105863264722810677707534384678889906702853533267335741996905358286324521427380532509905344780834501391188575340892430479846223365210715686762112772696186287441423261232723830532927961566638041798817350602774833267364096387248624129324522555428816310327526432159476599010301914120128423623207492246290553208842546350981337315831129048579436453520761122663181870818182231377940821081731546591345946756077828449469972386987314106529032233862545911549483378946898806227598964733099151788127523807295536440822576838768158202725589949757358568954165779724151930387970921377293946062977343590297453460193788624594423118599399555436567759116445559815164181505309439863961007701104220792543528099634941120669304476194718259197646256917937145498401743331450693282118606313541635023701975231374700951817984527621721087543991731480728503637899881095768280227918619548146314903670627714822357984491334892716631419010009630570251188495811738225314708906457958117700256564985805287029082984159913496894561825314355920729926948666291214947313454696629641487950784375814375340273186821959301458651436631913270145315601603131419556463657152170602534194903544949192244593985352277202597056898647403906578906224847400413007601668632079351431063243127553892217338153324690251186743935321834863457505227487874343041140996399026859998808050186763282693546995161014805091124681635001957175370603605074358086541643782558787337726961627431407049669909364983558498948934471273951263888146364655057644538934698230974632157999305397140223650244606795010516346082858451371712582598546767053528033801926101690356206271438586845242506066645332111381601211876465405983099919061631502978023780283807852626681666349649906698173213514134353734409516721689340098870092626550941385765752906883240670243032388589694053959280020918968322865190458120997161686986096213424121797651652397565987681023370626499236834465657290606921488242053018557203241610291371348886638658135661849971384294083906681735855453670386377092823701586060376563565576109292751237204987559955702841827781465732912900947468329027686842219788609690956099320087963051435950549404084702484390422910914715897881090406302152552535984416060878685198520996249403399410441022222178580954712076406336101472554605141043294742534463473562242062377720091292641214259423051975861150182110999316561858652952205086602059265447712556847787894705785748573907628313974383645922513453404886831643902611989018008500699994734308036660539973632291274975355905081995918195883517146426164093755864651624041286417220954348398507730133797527679745926281163377926306883095401740413590130949831138894084823533791290826463251647322007152287633241970369879071520084978709717204917333239047766285429281879375707599758954740679350215687337482910609700733982179501057077857086510143585875061899195937285200033556842715055963004202283690862067943385193090046772307063438063147534031621480409309045102109944732066833200760765361894943991148491039474955475100007965520581401564981123494528770597701595925946140943380101330695174423375192711292296070242711491101342770230712159266085111360859084763748853617836436799482986100272357714806984516398465794339191797293242764803755496107717911858996984086294384238304874481860377462519429734841122229010694218792087762494058759619385548643920511737895524096061280701965758205860211378513513758247287687869871127611974036344696292486641632563438955783617167592795242623802140798902803201705038687494041692983738299582347787109744434299330919655702734604077028987754281793221388337741476270205763777426677823130481877505552896362965382187645273046886679349975841731613728684526104647005331405928420733591131641166325058017479300941434402400350927003450135736199592173655928582240861512976737954939186773061292817640367169741313447147677003956507332893188616518435949486728922131578434866267908838061756092707159794563603328835770994194016352269686150688956811003957129801457345226416739560127905793305979899083353501033467349583781570285137889487739261297970297329961502941393946841513689739618307012465189424600479264607408046309156774609608608270597024353605341039815884423980657607962746000024897436682305328389952708027577059244039836567708200827204806523829192113538562088405850035346916934604636810351699727399092198619317067885307751193456230590865831429729381310272599212669862558295567130135009993867047548527885649973101298594031615475672803752035608717727503290790130411493636958396523089943108709901403084392352929355025976527513593865140578662709481630604415614489910025501606714902204671659717562961215493292488354489427994575886055134759679614414750846700894690378889240699021363980931506271927435190425381037855046069000523686746567847526985738401127352296047892713834835146181266224279858307408917483801714530136530665509869946084652136993220065222411608097699816403230413239759897087706751499344234932522788126477855917491802491514622560306004922893451005558731122614434014221502981463310776090454173317540288735995859409488589242769967644974075036667855388494170940145234467969652172634040822552531105368219051428664231424396085236318106887619198800811890230542292203114804945243683607642462814439465696881645662752385255175725636835069373443178186175227626222132973023087875442481387350786562063233859494031344152638733105221453658612160310189172697316613182180772480373340946709984269040754530509687486291512623559618000357886156215659546724855080226056776667047399472071394206307525455185001695597221168471428335419981634199604077278855062416569794450651797594605308259985111813180686992996923618929774127047300065967455063760908698857205353248463471237274402035224396247384231887388349175015416055429918914463150594221186251445012236498361688819950964803927990188813916209779157520503840012099529400694906552970724595650070871639984770297229083458540528523568698529980895088513641947085183833786688428282230932620691822832301862148972490678293737019894746524903564214758886078605653833715085676692804440827890418012817967805708147203412467976569989799386185485344043756617698457937334150788434948420749628589151730170901775771508190498991571291144961496414233387266390774782725273339687342157521465435157990963275746475228505247067083668189790013119659670439233332377226170095796932453712771848518868742317957722908622835344102322030625456363887330746991092370297713714689452952134168453526077727578744215498942904429891801748933673557584163058515668792890758074630403251788993484709884693195554276247409708766149849272439127553550086836471034034138959258075490964287526167660598965269572810831475956107569287009687790655519511214620203386679204664674190800018074390507701168101485369236803032278956998531683634994947862865888688464601547637748127305702020824544112391718749934571011190380805671219026424999178223042173806633576458942955184049222540685551255411824804225346178621972865252896996205836591044514804528126697175484910199226332286606151806067282109536877542832361723855631936557825270938350980849932296502099543220867937055581322291110680829339587214431266677080174221827115955022187035893143062093642484152315635048445269074964907675422069386071692955910710346860261492547515427555711927460296498345980849140020082048825234156225487717697247294479747584073221266709644986932511274624816835152581334951626465005780079839366240332514607851508562941831147245846754606831148396364303792414525013069997625012316141757523879454326556983891226578884534613202255946084026280052902810134856323064643930569010110750571698346294497127702866150262944087060181166296976236084587342317437334190582053119197037123880633600129404114413123758414897749738278503426253502845897876079361906943530277021012648605926948280159436146793447744573786243043427855978272071190471570643537180128570319077775360131555552092458956150811054983430530855239107092043880717734187489971341438329903574019652336927804117470647213104755637343805302561823789912583811187097103515148375415576030436395831028085265905287024206926820343695852122929969902610389782353510212800990159605447991255247248877745829272952790068964086039959687350753295172588180090774501106277061280254544631363662086181174236040019681996723154663257321537657772542125464237502453745660151791177044707709732391000376430401802559377081191869056914474641519635739336769141692064464223383540678353759858366696216447154327168396761670367581817130798294818178231083544249711866368402359080830364294917676881613841244842185242028344414085062637923329484409118555426074662167564506250979692029168862710128996783594201169276452185928195421625439123664480703043679037703567827609871958016272403724909017413269717047784782169535978920334181528659713953639042608629176610323380137115066171215921891140320073201916867168212638956482693275832072455904279425867008453621587895598412672006150026137287827310231745404934277145392288483714820968624705625843813973009477341793327751399707931895652726430429304077278001652736271091342593033280721360070985267280024169709924663760879494755626086130195505647527531291778463879562126716731445729612674768009395745545032037076379601021666749125526001530602705796281303386459683646362953422530674918615541848449245751104732631692416282766434625563590294649331262592937583464682826943833392176265040225843482329691417248278789946127749689724094008130779058591315219697058480052366195398538276829034937968311742673628585418046059285917108698136948801455314729094836202069877240087907608795870662998136484538830636969269959919657663980290909501986646646905524533418679769168295583613023558153511468565160516781174846643620245188742988090221723050203792737754755224675935458021599994747369859243963645989729870456779651038960719712355964876594572729869114588665508013735435211633664589989180146394015338570065290822675304899689280273316792469805795329595271064020011623511151127656312852991575091544238805144900072396880573626371140003484648791785450469883623543503544725292078960088723150044229817734324494919005599448851052874207280835818047333624177087819119222960032923585176727686658671530118169808117939146465921479222077984492585645736201985911676680674078113404194727908151914551174872493441454156071818518104989217848430997331877390190490704433298908309325218149300060191845207201203158931717941520027881513725460887326276418567192290317248994314605710241345743725566652782215963330786447117124678201483804148244740488262146082996085851005573243555625195580763687548528142036297782252613245767023707208492550909347375652320157834950561006074621371977191382273109689146591522667173700190633264214409142104996732031835229256534841204598346393417106608696533058542377008724376461585224238024097689080539167217414821614512802768507669212877060370674255657697807978908684799155594152878309494935500909963512411700215735664895896278271937042868343690757652370248613395673374692354807575398733201524142394205102092573569802591800092565733981659640380021198569619590041323256564766656129307767528242117264836881758758718725896376931243145985783147409146779367050645198941580795743645056941009323495184467603462904989473771613934670590741927162972212857286544281802518361318771053953575493270390122574326150634000278599522060892106374240321689436105369283697243137309047879639161674874260863280814101263611516904022075032294324097299100778030864835384133281722604745973945070628455271349067974671298480138289649321080151808388876511298305112232385710184174800785577771745034430109822716729698288922241290080668193341570168257291313847717212041037817061220225347544670840978012449746833935908797521608035639282659461207539015112695886143495691381089781267720792730142685016103116335475499050385658352312912557169047844656765600235188235805226788543807957656981992332643709702171464250064198709217471037909402185251553553745017579872397425716484339025261767971240031896712107917647652583530509708362736521020906039910289925455364977992396960871562479332917024082319150742119394656465409448541196315889551588335496507985341178706130536314394938508706806552020818625212417965696448166881959967664517173652292778052719326958742735467496000220636635759127689354971255323721630363707741391589911328319157861362471336957334129011760698455826277440152735414524516051826263383554942057627631935768155094531882647499270302060180982412328288589824423414595952212385377833932288396248308591726083184191027519381395736800771648869728771406727077963832145888466677233854156139773310504041750996336266504457998578026489624971600373485475006784546639438848586085013330171206323763089120040994995997168313448690986434786245820285574115279509931691530954704877580354360206845542657453345236645719212734641105761651132574805289735537298066097672321460485151283493352092100156194508434471067674543534775430977382037644166878167511586919768923818463535082890334886385962468645046781629315670803859915811438598385572900106105291213016408910749723658278631355998370783346912470880379640910476809194125514187510045807047230385798892733150185432504929516154275042451769300073789096224391704188879695250191081398704399557329983151913589475758347501396377006516164054650062241864542911980082683235495405918811908864129602501503258212051973597694591219885466119949514787913631650140319963550751613685146297296615361136291237823610313333556481521465180820362884690724977505525161217307545468766482606700627251625307779444527672147606030655744572953152931842438827061211746440675716933850996876911023411735533226967341956416514943071264856898353006239684974248680657606073310139407836688219374529103707026782297165021204086067609295893288554065790071316609497009697792214726540544433506033157983761673042807102300247129835609701626457429118637612158153574785932735179070437597951510548306206677053970267703623162305884142608475528689419982887849981678678777987396063035179086859689546063676087076027252651812880384492580078647691304593262075865171489267870288823005611692442092630613568751908002620375182072158770852185978102198766842351356021847559961912517927839298729875312740140802088988588046658556395757596856209180381414593044004282431245788075766409144193933368936726352797532484385882425309561741622617847098859090385745895562951823220432851721833238714533784340401584623645293322271896477712334317096116252604063961879632305385128328696249876260225319271990946269939346269714848457132823320740987746416940158807732401454222340806210319806223167877713724884713487233695172275754024227419777037203181357270199450663950318040705158212299641772484948953832223537483205959506895095556362527887860720646432519075190274891213033320854352265546958424878660166994077404718861136811307511843557612434774402537031915600032782853413109103113344628357556412057188373566810549454079078685620947434012954062905557662034814130518891318488675409762344583150635128303497669451547463279383098045937174530061150752009820072965011337196922247475641116496280052971729884071292240595027282119333896635564416556481592090106293796427787007591543349686908398604486001421202196652588496867408277639772433746429084912845092637649474243087961267496082810888613381783195738094437556369456092805359756727519782043594105440160714126176255012994613040713253356763476281392951353633612196956048641181328885452952725728629020301430903546714647234165972453099482065504727746037760386657610240923898274250761456129719895663838982541865519452032595038919208745878058121967928855483859832567088994084649193608504020655780806925380427506916735627954921948607624218436798540449396589099043568565096932384037104894605525424367943261553909014169663708867633707160421275014063633883138421634080485349182684697803214603031509905425366726983998386269198786991063437651118405778712068117990016631297727498391382583135831624944292693275035896950477803212645107059195895980074923373846372624352853684090692433033610440648609035095639160636175202204902541997339658823529337471337578396727921952341244946634241256386716825653190012162057031243531595668386633907044498756416464617452472927757911872531145028073349781554056906698379999723165618309090598602714535206923868250635423485488131948647905246122135599256688908795423591812646015604279987214997828012772665234300985858184887973500494593684891390792091049356125157655581366896996325370929149822169903861234315752339489611947419725673615635714597667905767138031293772478575595624154288034247793395899916971078333134433820986448559929612117803113531510642982947584928137202005905623500262615384593477549648504514841132234806778088559547055372867713858866219988336934832283534487880107001757226342994689899609743910299901449611938060607879295137953966908271948720109014290168121786678984638104960662493841314212029394662153803351985699825985870559353115938757428532913341126709838168034921232826184435192880250686166047401154537192616790111364063801858457977706204680209504328995795469084783428992973672816903037658575399151033873683247158773147253697723856595585984965756300211230388615114964036434660667796248198669011395513818846079147604933200847197321629969317869082648495950664845932093595026861010959181388834241330093514755171684936715558484003240799041188397443283580491711167395451996697402371645084433021346964836624686147851240141846691361771118344241058116060862703137837552531128754271218532729601925660616099127270658143219504709532282070182577249619831852126468788106904389236338782368900203617114681715420272338325090637652228300190617651195874344588044947886506457182388358636016857056893292764243933272327417865418486254674347191395284686141244312129599676642754677476106095383813799106575425903258080789145572539121063488185611949955955964087995500364369723113332507581236518362266420335031749902664181482336388065800026994560310994935848679958980434394777222462809791043239578345324442070456010990999823522343683721871667120992670336104173352134071150288860492934858816696548235729095011953930248773468940536137987801298981812673952679994576510824947761554016908699963079346193667469306279896524050321720471149011253822144433125187366902497099950637264408189651800209907281941184126031522170910185693469872076840261854500729386812507703672100677230933541188822108415141836263765933910118090202769727806694751165651039643371852504727407316316569821427161953889492739493339541173291322588439928396278295823489422963318171149233510231898977355848648563240917750521069995935329357887092398723340242254610578277761306567355652120090276480638195369606070902032233955455600081525569153825308156508340480919223495216388419062870495725273425955214043055573091426767899866177264592134636401451551278745864429594998930460896814536374738692385131635445870376979457515027922512808953374562429905338478842531382460956466840155115881092697470041498679202374480254506303267961480771298172621301899690716802083029011788924122010011139163178750326030434640778103511706252081795052967415569595061639962066998061927521279468156046894062877075324791639542971710212534759404277512522432877348031339455430627511268126685081205954358102241367321233473646108735914582339523186083596335518487747101209903153094317719240961976322535116579916816946702258386000559568896931356229568331028835104340537537017508340119207368991793420853362490517129834958232258046982390705463912775165296106354489594101331471462607504841365276324722729062223715946324238440494299210746049688805548022749637908247928035916618033010262881500042194282057099738066197933936081379881828297866318080467110728692493133843873311917161678652063482813220066737205534099811896332324142481586736628213798925227338713391966965626607454640612638687313724975686114986283024649999058347924093589297511043142280390449839219285167038769113497618276110916417368777126780536540995173127552448507282519513140531097553196577245337753127669716071255571070024553597155613263056353755106860921443647725629894171478390405921842964516841983020538119188283501809505943565205295521805617946563176469188808408596032244718237770492555710410747172201197036163796636255192095137437737622644579589086932582481429323028878292493222130500080935399097995641872591414169403681758116373869473276017473332699859617727696231980826400659386104999507093594870464333688474249158413730216744064782152950134675563754532361431675396315627263508192421645488511416012692143042777418037367221218497324734700520075698764168794814929825071014798991431160220698485132914818551054924817657912771679406652870155747533447619999971313461987355216498186698811088822735008661546528634545177050458893344691824329157452896702901071811847251663550988855416662025615576324800853691272990456258761460468180293124499121790198338774332959075554016915213192832037668373786634471626579806600494060461171417778825669272144791409216484426102752983011866282961305132840417798202616281800604294198603673554021673227742747315396219606644691453548473062820334007621830835098676406405180079559515118662017266137334350935185376152075125925967209459685903673231712751346375446724561070144176817155224218025816638067282781414358627180695071620913165473979938923213896798719595360000263643079734996196582286665635015101324210768382490280728243482041037410653295329559312468962151553376801369843073331020591504848317131119642890340196199940884812429085032875387553385673684712629649362308018111425998755877796008541713992717335732842988029938961841534339239722537961089365025635147228433030029082309378968595089803995020296132469422175528789662847239078951268712121704503474456638246190093259296628588715993838863877829770836442623641527763200327712873220743427968760184662308385718506953723431485010933290450320751326253627059721751070468348081837775468785738493211065508768338190767936184500160202755234410420647777052964628684505346308684952600884040818173453873276954310349080764647668766840684220206132426354283177594505345530305110637866770117318737889826802511661843834562413735188002249246677776012360720749322642993362224078364024705430179542858430169910160666148864373417969179324891916204042206672417857595092973984650218732004353791217047711795574336189484220411614742217170629745796266334500234750959530729065382639498809566116973868879846276002152270080347040906138438596929493346755125156322319078551005035519254340686312642712059603314029714679567775316515944591813564192274831012736274514698154823003248922632581827223134238151855733552444993372466896275649599343555617762414972378636657151143498140955797314799570079353852035736508700396634864436817541580391898368812603160870019487577472630563832838322596145254021839951899262202396409867550720541651641415574503777840481498580647123044647785019278944103553103921923926202356853396321377321278722335833180743082124259198155672298682201121931228518655341532422781743964687886563474387792520042324694525679528998295355267461492772783954835644380532552845739867530543394708341885914002343767410769590519626965296014376846235450651178350332523750516192738513690388128174733271028574578854923874895033987572886177342663128097317249071890099321242240013704312371060433959020012393180076105721527953801667581144313132447516744245855792526354635910857604198883423783194558598605815582380627056785297925614733774195949203320812352090181172610688928505981953041686185167729316570779743989265537526619083789251490709754818000207920104906415652023861337801657373739449310088118055905468619039920895569215335684482559706345066526871512834067529047416984168777911254087952928379719829791139069932447845560721653022721259506823614050569123791884070084285792264318511122447116603866130650656962578753216270933393041572885095942319534496729158454018118306013915822896880041471068266771698157222666094330430467385955567042676388324143116918402427347782042144367003791386877999988577487031175331245292443812959160992441054637108904204280089659554137941631750199716751665239379085385387003335955387316019881254205915330533873887267246837762129409115505620590427578732316502159316412386917695077605628037620385612241878017689913001359229010771743789241141401877206553291109801350187370581318184726540142717370925085744880366497249418484687363513707739600306820233588075175071553234087915015430467455472795289682910265307094272766066257278255412100085433185089544685526650582668190686190020881008112216841215876350457881400504173489091133714031411060486756120743838053762495994157325688776815437273780241873815272829955651216331649609322769990536774471775500874172558915132259065843239245362337301365788173858664582040268991074151433565530352917224907364688591899070326667745571869479395184465022936858407458159909229795553496270384093720683307338024179137071584704505831935681702099161084711947901046234863392988354090532904578184524837537750521865650704209643198652347038439707902557130733922339949462661474490164367924263075053273128228353250579097374197987202636474404736399977482363508461314328254478173517056689677278725481827868106591336108036204391629935485582745182730034756299550410476538261118022529630536165164888428417328946728417686471042257011689669645078089759407027727929465191758587637409662099337343355399072987480391348976874379742269204098417027019390632384182603850172992147874340699493709854185737012248270721992913705845031864660323745062557203835885163735405448422039293572718590621278644325937268026065005772198806919286047766148167091619753279138004428700042247070629289581494853579685926320013061873834545838514008287098946866704129165826051891555372941786428436206827220662376053230428559497873887730573146973433378402556441276199616710152276169276684729805277729607051400771521835236713347165885301371644383258357773491030408756327142224425528463069536496218598183560015815848372168443160965329084539019405765835357391531725229305195184423441551431073706975892864471105515949178851384373444164122448165697604494362262165316294948930377734512006462158377009571505522611153650889384526918827658769198736038838650730034644986674750695476466934397554651985424944169825310214436834261664830478223258891009194868825177158148592269704212614639823601288592312372313998775390859424118810272772835112560720265004408732635044866121954335846815731678674733785769103037026349827107312851077603265564973905553264562299023262277002904058451285074894899165969017030430338887246789107597183459373614937991028278597073893512287505839462976318240695530711977439075199519420535021860143368959742201668045268212292925278806860650570410084476165124118089522268313748327070363621021151863042762691531867987401133870822215208768120463214821796718974740657887328174878292539963606810921993711215330466188698628886093872225270066183632929045579927976712068512738124058665666402045619590859189707586571834744677378252286273395036096060042017817347778803116108375379221866019457497682143224764355629392154829116531502250211208791928170980381253984097857928285345628479492644719233472351115779070913485654936379294523645933713689150253325222686105298231532355655367158322682570366354079326980831168300964212332745049540169199387360848287325605446629553607630331878043652829891230956949635967936104269333470976615136733355879914587190359966735020673549930611757046126633886928712965636419870703265315956271354906340104097386420563081191324572761307853867956474157017067499091396736280320992448450474886480011462383384289267228273785500063080980273790420373793361121511410209620518858380371654125068984740117451531306260171008266346697459751700563396989442735414336224745217633869218256765120815734723719014123790724663748633624409447331760074693367196573547970690223378839569821181878579820313259141572802473466803086564166140292258192969496114768819492483500333995514373683679682768668977256538988121857690077568274962708382999894388075780322659597722935750009989515896738394892465665417729114239582176168133160700918091660204209487890704307145123718465330091966581866365892178853503863060043535396940809347573698758827330410516294915102792831013034339096481286218349346445064096406254324076383251513272242458594018524261198945772160208569858550026976809003036918619288950454578617469467642945654441601653065472189054649605916966567948053532557846245935347984510388146688068595142130957772846171539745629368566472576701462148465707886045216362961290135370126424358650199182557179495768052193913129769173261078276311465551557812044151126953326147339806661177773671702064274768618624808769451738186601029097762994533742459811926323550331550400497075103753267552508813262755277701054461842082327860207646834210631800083284203050423284055001894578498815717823129952105585474135869254682344621108486662329433436336733936702568562685973819688167780229406116071710410841714830549529201679133084110332403301289497148289851066190635982263726840100803590141850824415415863432985703195221502187731122336648849818022305689757484344400476193370874609382845667090146365046224714247869551537988981798833623587506059623835585306372919093587871134478179916454596930632216739762376796332935827717030521304208493660452023992402428207336475455649577600199936006063179237010443626554903136903642351797154099867664202168579297724132049560439222692711348617347231514005358122263458935779348481781454512498748466339423425095629653298067127048779540742290052848230982142390636724280706341562742073497494826426430397297644139649727132825933978248069632422459397756480604302648867552754558251510714707486954346243511105884167772783736715161937291593201266492886005115289676021199320814576150789409866528877099729714939911334216760054742742022067444915440106414844093780636359276528328992397023139269462972443513566353892852658894851563242694302950404331130487433945263762440934190122639802127285732866596506357483671602083127606646280518934847192647324688189406412730915893622830582918609678467418995964068676333395995746266972167774031194997695384096695381456746184867602605339893833487537464721337727914220666781091198699206464802067220711812455447488066298827235913238931763366734129308989507439121993724525305390254167262220473658750958426487297589288827752647362509323363934412240213127410961714961950003468296953258621631814377732513009067972843199684977664796736138861102554722307000709906744835257008946642170658726962975639720452777413951133883210365468100342245228335722448766070727250122159995617469434320962251907004042530395111775220376670282284432070031749214290396850798648118269648964666488834201054207740085286246167167187594401460804683427818025147344955953605767554562490434165291992249844647450198368426347759061486454057743695773367376948529509841511117196428130652482089391955396367765241443054705328237556930095970271319075795935202587722196266628314374653444528489526356409457152467348052876427078361038204079079889090019808160468426311616910893211686015288052650540107861179602900750360834354963143006473516255814468129725122269298288124385069178272772361338242382517558168969438826646717822296784033550353518534397464364104688792807193857522022925036461959302958701614827014259528013807582184790747236130046738477823008736280548286818901398750929491704097337505716862032414640379462065597736000368901002901921024310440394913374934325144564758650833487971547464235792920848311954942252888951788938570060538214441998440136101628220362451152301513408590422518065926816669612631845361123423425454995031438308056530871933535467064374775765647956208944973453448203638792344390646561466911333467855388336595974493883366270299325208155430979238916039213308943506067446735491287721781478687733440026611979763982299955178891473186714064132553410322222610530771747019187860668760119654631301887029040546624874060377137169214638728902860438973113880735172219654043923260199788906103957122112635586614648191254400084756075392853387993347413476377114289259314740012198390567549425715853272397731021755876187620974378029957566247157819479288442024067001328847912724332412882025693795566835242066160709156388254570801903930827944720142811088438889619735518468106949731713803222417108658667039110447708117240790779383737056260399820353935662346930488206065054108421201974983614313355934926452472741732085544902235936659891033735408007090046190009493239423127289788771621975912913760549177475935619548059640237163673237405255207241189614670656263033637960737516862552830351645269229703175722759812168204720385626865455076029653859548450324348168029317231096957865318861589948420963981964282551039107565903323664768774625804002862849520449046359120078633745901375478330811753180083302417803199112498376611033037255860298489328849727966795805602208207447292086482424649893646073897831179805752838163167775132365188780607201322339228945875626982930006969048686988805018986713858833090221502703954271904299725896382886119604829108091637366605300904500418210132458086714476499185365980690728783493663694770341548994776644751082713565390149707881031190069261955670581205926501966916919099605243424098175421251219417497327077226426784634672490214492879965460138900726331079645180000712180932822160911133935039098473599522330200280314374818832795074000328026112934591428009857985048560261845240873197046918046882713795422021833589260490791310691007563525139812428057726901033126665971067840185791229687373047494744618900914231681644371121320959367963838554114951675569879378594850169362063226179407812704805659273815706960392908596079510744558952689583576171042249208178450779395793032571539031018541511833083582170947872883619392987556713843125051907514428476032257494912571613269826258818233369079340765189878433246422608928293950140479826650385676736321915595936661290947444433399918660964813591021240274379782917037059560351974935546486964430971768244759613544186804333170782437148872080047398940358409129796620754451745525777112897061703215532642707991747215601848555426672831249581045742652882469225834170850658687745670976897843691387862498139919828480580210812293805515401204578899195601402633572352113400694662301368658077820974543058586487927627949300075187890715416200208471310289384003349098419870895691424665586793385832972472142784531251269582561851842123683751908423410077211865765998062256320005203267412319325146426558274530106559107513436524510350366611288296876276520278261328769591391791004160716143694210297978370673925844749546838588682674720940510404649500640644777972595262740494247943656997316668735278665728676996764396029507167232002597798869771691048832273489219566096618875534983885387285606351917332799054917884079106409061054419185059749766310769828640251798964307853280207293441536592601637771777745608730547371051118293899280782020646825709246921850942087785547960073911570280598302708349126758486489517836945704392462393561270259781400676900498015380085080739466264454888822850668018746199007629746572538154694344876721983318318674058454190190311243535633292844041762680219710866673594454388963869380980042520219049362714536170543692751653117335356405641943089332578518399520197402225780747068375786971245342892531135590348536518684135149440445061357285588341339027286459655105639405215779390835987054699145477393513854525499693598603465781015433449808593187572262318148957760328065786814721241594529556978466037909965379648733882989096532758070784224081511388360537269781368257746210853739153040193253948041820879489066783256774806076749439036298632933485567399534878057580323809224490025286112000549182192566076541609392069252953758068764721761902461785908091196960374012290258828252381482114173518102537485647966896286117018349986114181490102632542657422785110789933882524913712042086653404536490902618917600284503600806665511965729059092753338040920443886938583497686999986468213862312592478020776448124722670006513229124292827294320899462056799822993663259222599382618009897881525009625188997752689893738259367193621895148133102459578818450010672742368067305517234104219620814046131315606963998903932004905718949490473096718428220904392382377225786782931067787697709111112388602928657148037659533242470538345167352376641827123921141943518765844180455361315939367906125274627359784208500972656342901694233573317053793941353751816425793392523675520088054211822582918213996875600669590771582311741589843034538169827009524662080561145912972122003006046599754016638305209535404952131391448045235658505847926203258180034848871875727641986982959610321922395008561260141753704632262927221433377554767047574565076809096448207075126939449494582055001637204298449829958373055798520783454087852179358621183113482155105578059737895106683152676682107359991647618438117397264337999980174377324051937592458940246974994830162713069415007850811945968194433533795630071770179048635187537560046217363814605141238853005483894372347332041176606795789303786768167567210440471080589458895265765582287383310282587574383345517202286113496482069595541351729044876476009040670927371543596854740709130141614908839059782611803419836888955481932128070547486575500355841350248029391795584736456893322376279561421924089137995299296089761049411295160433540639464654221635457742709715318083263812456255848960801177116431018504263475882446213916096085114567693622930437670554965741125505876061258882652535274348009826645767945642586241763457941017583172664725606821548490743826502378399323821757966242762660424857271306600499483108109503007980617286826185116253944923322043341658290046003472884470983519696309758935757652578635901756881380574124923440940112936365902921473718300653357937565948023287304491620616040585882408861472508609764457160309499168666168500687660875407991264761170314033450831777424941145481406321800850317071051970574592268392830126711131485820753010885403608956759703565807029699238369499523072917353309497956290843617808069722806794413121857569189642918705113320884503575933023335122788586522360425439483388624210613937556805814542645976714952000322061329536817280203502889775056898643185422717382463463155142910649363016437541121502116328421263988396472903276196175700252768081310655578904855627418600657761261851755687603109269286731041708963963857521067027265696448984995560386410746936380207949239341204819102539243690922160053656751593661032589323645875072084512401783190763501380400158314781595047387125226642291214795299947775428324008289332230742996081475893960766520032739056818952407615183611386974488569485528837672257402591516312403860823712160756751025106640132304237613698718361258264856683843158239278945326454428986356527395349394701750211118866851237118513092777596025616019615632967941064457852253433883627186582142193883701042776294426125214361160805309824925299714225376680856007138990749475402048105129823961104912405127690820996069934536321064581304328103330535644340020593568119875090784388375472029907863151889332905065377391536994120376256639087531412779972127166579204912668892873233418785619952427332826163256813645140577604751003169061612242306110961635270569870246533750120644905538778150677505337559071023565164438754968425924751584488570717084732567975718802468668165513068202917991309347039044552556685328419099952707441531592977334622215494590202017383420657773384453419478939389721776260760620074516781360722476378272780693441993835199507284539367132997286068093709939967010124598336013620434113700225098584474505753301672037611180641565101497242201146281871172288900460663228874961540989549169575930099351500369194162420377253800150923925194147793301621948552541056343007640247615630976191383908128721314651964843045760742111113179194619515374242869589657383832641250141484814456922105222588734867288496857660314879478808830692724501415300607649424946185958704240347795403670496503467629969533496971892648611843479678402609839310581890736785692900715706027702909425688674937635882442568323934914852544980534343400341023907282257017053706025794574229788147797614567278995393756862021150944326562425748248875340100944452279460118778870002691146719537573479363652332301621433835068040448373158881349562990045011565991279750007696919295669057253571355112184117447377523127984169938943927105381676765020799760692214385119518522190294950664263359762838785615406334655720609797841140828418461678548184622780147415799441289403050109911580614181691904200364449200167973034188337254131790247213779171527596765860580467388960158080639470532956062569662583264188672025790733162612379022166605955982183815034506626939997041855172191301851631496830165022882725584119463457345451031008771853190862463021484172256314649675356706625017526083215546485523928084161856985619125680752520766447486447458662841236180931647907189738488722218667337311867213591179187558970056647464516866815801844381372277836733187687517920604742636209343990835488320722830549826817149854304184248429603772578080323840407586079445801221621904018467011453540795322615467206194156610556764087203146442743674085621562162377306057112808621088130356426077844690309125446719024085839140519939788326794146473733686140381031015294176795887750753110453562672020600862765050542632708693194728241878400856905148117425497316153771182956827634572293955630524898374851021774442759831216566719208400424799935832395479082787063433925722018074080825554239284082557353084865680642115100087803892229434946110454569042322070658893867342674831143675360452382044490057418069864677834120857429801115057822079575693699217318680514007961683057929204103881383947863049507938176381519513528112104394414052089864417231904151782230697993054767996341616227624757279606554614774690618255942221970502091173226279139320097254188790371718053011149569073739342124222112112061203040917425761530356765576503111236281396649256215155451378428779588839473970547769637206620612069284599718297741156409823616052935636990048761648550890885415721802405343400161428899847769598151032370202328745088692326255686840383207139376626214216164528590810118956732831686326083493046535376461157997023574360781811865489908879630363569755652233462703810673099647897659183233922482580266955481769998537489772615344794202988247422313762207207211343124676204782371373105485968228069482031861113736587759801496391638027553026788874673906831412541022043036821426360715207386276356798438683803893157168173928833712867971878865655843955493218730814811716379440557790484501222610342848207279234883748453406012953480855507275975823384327536988435070177407398778977172363704398404370931979366560100194872326392657215513226830287396226139976937734580365712991928880192300937568031353514834365216567676857754406631894383720557473583276199821570226255854013682776127445525524978320299179661797109636161528175626590198860797166543561912657378885145652705328330353505340391936372569503811375237824028697500088096851617274140544837127671363463996620959563682051989214616040187444396036873886494477013050657785675386623041569395878869655455165368214910287233791221216103080839270817018814618642546853180778287119307664568123154755965994138475425757545546970040935833235802033759936534216319703437853605960772071583576173696132171445979797716617374604947611659289713498458875244181239164611664918117779603147980669210731312968198609645734147493921405396868245759624877038256191547118056914804101291060923515677748360422289307042826706623522824365634724483615006958468315917142472132129048436941713073397026523941041557215540630860742083687967872211278747399592060732973656302945371474519251783336470910789519777589774558856526567731842091769498943251855248188236303144773740908968376564967461887193517329846612251220972046013494549251870175458691199863610466147415968628945649676395489617068386543099623373888228196442853668736970558642486818413101227300519981865366788689415987363999134425117763246893114466280980380261937441883035603078269111159040966711988387999658366743077666706240974665499329043274291910016401989183225019162060569970635560757978849409044549489100704608001138600373833173564589332751458121679336124536542716099080670979485218142347277700499021777447159449170480043579976554944949667463926941726862492779044267086931692598715803596304423791297129588063922110845503150679713494708363432571970464607852886889948659037787960916171067963345328011988734518831356658130673519263392972171910076657326033610408160452557670770489844209287169607188636643258077720490713457654227805194000641032981359420747084525264106854019233032841615840070250580735979966088461999423742374285988924648392796740566103857521249794125285613821611117228833414368184414922889785634323412064405691548199910170910583411250995682233290364046827396512055976284677753722650390312378873056048108403982102279795575093555540954251075065098539014487343722825617831958283478741861266420470936325791849038340819720305378454271394912897193206928323308312338440514827839216071429265873420440320229884091570887309844007937360253727800307150450443703567685547299253864644398829113633235284311770401827107515266195371009462351002168781082277875919195059993526921105309389108324751021275318005755459115295573814599903250820897889836570585921554651547742984355399998745763632045365842224611899856058233747667979202931135842483969460092135701708161696273987937717668625335909691664815502453664379956778752128312147022130721614972372943212149171230979100109257122067717476417560635281738532412574782585215574741591237643301290489865222012093639137367908771551901585890968750936193522141942557966903587237629181541140269228751976247492395484877235674443867014514263199977577428616637664089755834189841930509028308099209007897559233344707767866252357607569328335485691140743395231470785715924268975032975749099940600295848278531639212558641571379975008853334392214401296810932307403372788905713246042533629599500815702310498106500221387636398070028233420116143964702848629474034024093714400915923104471645953647113061663507886993484725946289316182130918334855921942147115471251039898325698623197717685234607799028532154397010861994093467138841668012806346718879758588002875130247829975081796826143830567071733216636790032457907081412774765151467157038815770912033518079357551702776877444430328524806439871801727927337862425948319982101912662290106186384249377355972591890228016480514985420483770085595582092515382930119314832391267816355659576795177297877961374019491791804035172233415196447255005170992456144680404471823560491538063739146986932318910746395798501362823951111727485295768766887656363423819059575449067111460993737829448714071246230439982175707444805820698710895300267693106504431107924821416405605001346974733863788136315830255441705432607988298621667188078440689785803568399131999251497486106143366528466975681335701643568185475214327404630908065559680050284391238329683000083594592248873271667453433378905018282916058727191825407487872696433902974833767719513120239091422004453877322258679475221785479048495133089922450372653911513488451443407251593267776974968611785687690451924207801785617491758368742023364936765390056404821330989508043544127884509560820916790201276569944313187983838551721331410329983286204759392605101100999956931139516252966446879506932339936194786266501774633089468585695387019168195165150254159348362728926480034306302590893498786340600131628419138815177732422706603353632126508492584302800700107619981577575900905299125745381523189408998007210676857963527948643742668680892431476828901372646733451465626324853794135508971277745219137007301750152184202180760569835729055250090779012819430774751422427508154468964747448281050664551662448796477114920200639829735328016010324105648428034696409298827598334949753274334930535411680151388786851487956910339639055203913085217794868810039244221272574575636013451934956015255860466056963041555658533401000172011419612985647480762874784113410608573456612623940256009910342836275806373642406100480986905489350401481116228346810787989626865637501702833314574342219444989213608281347620344157670242242255367671637395346726922818507838144109469961082094342538087085297851738016963526073414198140165414752813217488149475139636999334507568765478442293179900792585955614864587970280386363771085003147119567024809668271256898041839129298653307393547315081932796751630174484950063930620906671149331036298023417484108148642946340074918981673487780944793466754243259857911224759458756103356615522502684208557734065409418490995514475306772048051506060366722117150817982943109511359569368781570767043967948346501195247111559843499094847217787034249826742981349978757459610908083688483948001152922835384681401652448455419978430909299277455738211658934123412955107282781570574287296401857641864655047043566825888945133694442992935666200718037624579505156485738804828237184239377615560284079558019944484202865048743029752686774325520479790648375708591227067654536051821519372200140097344006129454578897614501761345549895877158804767488308103723774392913324247045597417956441606877461491688600758512142541391551136344270881937660205540115489500283716332828872156662638268090088453448013625275165301334405471173819918361341283929057297461392317163836782993513442926924990031474908310985417522854804164232043683271084179665728240885750786230320744607251075386498620288389475489839613205394390229647906644581022764197292240868067151800553270465367200720092862185764924334393477024814402376863129570519199025952735613714174998987341845121190424160991301156155635190813081346248135772328613145814664212627288238105851349252861285400866318101478055983616564634173637026440289027993063960115268586288458603888738365968339583755168970630280011248980496308028333441512343230862320718034952390464655948772438067852200025279459140401486544310935559590509695243295342512950667591567476668747997676479518910247733635151016946469926511532710233862186832120311189860271870421200613200107003473018409034788936373368044192087452904246664496341111712657159555456954822579240649878134302484289805997252190232970278474578440621549967923361297033784263070083112380051545180899861772956832403984251235216424489367172870125058750281836581794215147285773068378221600516584991577483886343236081357469890152010867469996389619109384037637330257231420698221702385554896649490393823431660967458978082065744692800331573472360908932214238930345302520673279273470768595350309698878571170787940528956276487118135822604254351455352330171378977817136725041361784229623264194823128269628461364044503108624028922851687089657365117809970423260224680791092612939769918229842282764249912143709397493920587537749633925793646370747807372391859573310252510646399586693629125432593214501579878601696007622638962189844892903585124552151194751437553500228450023165077184529897205964859887998021613990689574290245063422242282557143643391773567665020550314553116013303610013658755178118265283289501369644429252340712593883870405234107490845350933960582061307885528981150277513644411133022994397983431448280176509169892963576272476874824610483660282397496834797990471110692560569745530937754054959044932426571101783216901913212742550174409752544543624743712831169512775339956680969264392467144836793860603320030375683705926693200124515372706111293836533958866399086148915458425772777210521098346969862568351117953977638154102557816867311460738450487902095419088900029494343992123359631672488219281020065585457423424354432359460741550851635477793451849460400187715196782513545532991247997496201178936019153696733914124372894824187148058782025522377180646504743062260909165774532170302591685646721891632815467443139419836447162579999165281669237443115047350846357759191332769870121075863092034589361258502276069629874750089243469081984283026293693596634293568533484579078058291643706055599810053933267038850664308636301534237190857499571703004015271703775433753102894693964998824470012019651728298941124330030547491202714885388540451413715579460852356128332736500101938207728401423940574299588020467682608507579892451639003848949127950433225250393170286779967657972670046349068826026387916849605367848882574305338533941149164959053155362423014695032539863620622314686272540039232564150630733304666051295229766618089322251584227377819169564298200103892239216249016677203590196643003813711981218880663342712912729408901004796487180369820783172125353500872114809891939397028694017817569857905992236320582055070364102547104216375184509164287302359467475281897039076705415079856594482929460111034009960365675636263304168110801792710530348173993189045206635653879580233384229114402946780244926420962782871709808990192237034429544404388715027127427215543781570879638897027226486980264206879189627583416630836520930441436100596919816192436518030440948403496435417265259164229224103164289168024668545212843417545266339923655015167799756389476260090101884907756682612222893369400030697558260585213092553793722579788897558126600326045971594595209832455195298783668166876536314635623673174343460287344984423685026212135922759825029551007776241760898075334067015064913587068968464472011661215015850100604755052258624550028628388071233154670752242238078371067179319302486443969937213423638125129183355132453001739577538617361988454569199063292542248876823957258498241278728346479083856325066683716493530980318837972145833982059908188536414942131796658342887305858113409352267456849702288752166547481397771543820962872203007998170857270236053474641888685028100231795925490576353989702798052193030249298225939591228666105635629970808965115621134948071081207558285994725098457359271453853142961492950022384302382194949771374937807123519933787470267589506033826929704079222897348890672606154168558518582868154442566070197208450378009511085166699855321152704017725286035624891466115514013443499853854527036508534957421285546279149646699098634284984236627883954800720773813538045342628950405128194437633815169399466666290077046520711669671390742072366167418159375699753951234138927160061363150346332963372485802685577145263812155473034110201305200761281953423622802593688942689591268409408801899380697790011683068677526957091764844316173186322570591831169066160679557431189332522511702349643051924159103917743942342103478987372156257351730639367516726281926634459913598023715973546975771775265312989759570533632521223787477966343523085979691334652125240622828234969339375114127882661825740569418400830540043843460770713126407025499544538921468838328749520253663780532050127155150535527947714326045975417370831272543127633337983480254088396693052077113030477628580049352740062992510439625186092596695435195335878920315609653633452607070272402778781224829150393192492873457825095704999832349731310230883971059330603536957637664149542699131383581821990902831342206419827674399434953293444026814343141383694812427164698430888881039752544644403903098968673357789812984536014836678104031088477916120701809684894109557566068010250617914175239055133766235254406363263550732067819647761505629509407363446782351622244256054870181061696670635350832873476672033746534181133002919923124679845928565181795831920076025047212057243943622571547452574228659013262278204156971087162855896421783701218198332566011841538181306308812406855227149959946984124477688553900898572161279665565792066844205473115502568977479026202833615450612108016789410823498006470918771901851084078730804542980964815267423315540241027725745824160551516541181557822405754463193338799507799066518280743643528976377455026099855237491063082423465511278231297129517843910664313849995193978669714761983728120703613289982329447453252596325737016223241081633639582354902761448963946825597201726967974225609835270598637371124945782101117066257192636706270771704174564021211878603581360011776409777081109653675087280512190791752239881930137754422554058278097977716740484720407118094236311070557198533750814490771470555262995418770976494550563514675669066093808352996120742665600583472952026100317687254139197973952021231855331694372010551744597010066895515004252495889839917029567732975243453693915693764470392257708472386162364232224557780589166523118463760265515101001424530707521769940934725746850057488018330338020008697540740893618047285138250313582743340143806791152399635417328701845488532583866904018793557071781372424014522583884990538339096720445614828184884393254211864351881576344339154039075086723591073374518829692955418845432820123245055536846827654079734900039750388818628627853964493027560539688189583501042038989337688175898403611717661741532125439791635728009838125831365937391740262187420225112847502846890155713916840912467530463804679830970640649693957386084691841005969810755340861332403701350262389160631909051673983360793856978655766298952071352894309711163905828025822725416319837092535204849338692952920229578637881120929924949393129215275264414763358179900072361741208480121060725606441471756875577479780241138507021327047707418111739858325654616271102923642977296279435054247384710760554778255392111460443345079167674294212497286513073973914190413956481103678326739196375987372908543348593229316408434866335256117221065483371294712070724463383931626050800029680994944605738960111944159609002374118126125249888576269144590865354477963593582368227180562293734766578743487953828883250881052364188251575953221166685688390733247728928872906155851972262950832539380947740441554559627975782894811363645967651709299584710556101509727313383081106318382918433660269215069789473960907046793570631778186475790326039367115490294470838673351377509296943621053838357268650739284516599713183007485700904089649169439570035719022936961721721241889641189874112814922866324157232427909938966234288749269850761117135440748148476879304189949693610045621853651204770259867100085308007345081501256309777176398507320680268908598157581079841304419908862869653938425840139738475353552300970948306365086020559880605206951137596834791564659739238271728181005302804457154972326080159662876505681731752840032122655876551870842741493573095696536204277765450798309055209957174553082652014233136678053797410761217610759313409104601206343164382279881452047290440558709257898236786485952742905750519402807221008331210370627206719193334590873284395797567462243103131712289732363868017969951858345435030078689173891861670234118862750972497001348991596370224127764953899237231063905426557037583315473042517674477859594097858702418893431500425346613793927129621403023147014927179088217100415057707382403438707170815024254218836793116247757700444897244327441510463592035717638605860532112970470742134743138593767304757671713666141343430466647887044668747333273761733273733386936708354096184942332127449180246197221443065058211791231525962352658782665040278007576316169063604249849039038064976530539142913974246276886905726869258441900745106822045317020676213935553400480624540762038414283652238181159330395291714147186672896277993098559807175339665388806824713656793215386137327979110077693777888384674315876630961189983463064163656354196941238543041026581625156598906187458594767387721558860855885429046918296603690231095769123229881148536207538668023021394554143808741940882149239706857742994697004420628656527410267418903054620402479594463823850829892041252103372171619603521244632344582028357251918725410828337615357598452833683744083297896284586914536938626734574932853363556411721030326609255953346755642138336480748047247654041119030801949450548310321652818573234908933036289374759723418993358668096860814481928908813869236917847822245651029363087345503248863245726352756745071005080497360130556825494790873866909486370506848674413147699013799554843287903589337400779583765066185999037895111661915163138420975481144537627532837261779067917404136559936067826654893058319959320397591517901538430423281154673005680186584639056615657838166568570020367417321418005158569428787966090085344039970164067499738241862942169986371066444437214194217733185535818544745982027003936757853557948150913669154300845285042623911030146363226252593441038224044238721532928565095312376060500101258555573677477034615667467803650295590302358631602324849956834681391314041174575231747234469903569304535831869631854413030282743781411032882585236826372947808942692336678571980990773563003170372209256162892734822734934252250786018154264347633029472066019937939433985235488524176605431869232379551447442096523017394906726922440678750829777816703443117085598222520170105346302380974509876563132399069470982214811456059138042558772507153626032676068780973125177325335098461397405583093432496817443653583291101257725740441596077330680422490797861653611382762942404153299451643948024222551500453066858633413350057744296912505125799141466049126562406364524858590792847432030724352123406469132322141045695098046649331848651400866111619848562864056753001960098262110852364349478831906286221981808572816643959497885405685800561378845515197288048474538649653704664309316037073353812483324430683161479982213669461080843762365563244573973702404036412919453718241073109567911720587728855531692067955781775715913959011268088564555290676387560103688446048487025735336691095221352448255585123772864795043284664076199841807633943577078430572588621251919600999715641969552259196435230815605783086311519585829549801170082696005170374309644521880548590649261725039648102154192271948563098316810835849762717089993544546842292020604870039562186885090800362578841240461072802602027868600411171487001561992663301080060241738317929149057060282590989814861584277357500711586802780870426872188769645145174590309876935281858827144411529663695967758469234372820621631466800091870535393345375066509126890519503827205415818823511143776772697215067685879031183691799183275009641333605236947950463872736780973464863554579340200490171733363845081550784019820551007064792048439288596522318006930786335394119536812975210758635443395244684867237736988868186293442011464118560618773379682208757014550728649027067510617051046752325123646496205772748508613428099072884805862371644936982212655227058744952707985509218958720957130194095301191275935004171503348078245474050583556140292510723675683685511353632075701623379214318878599765397483871862952439248749572380156285872465906999391500684287282036901103272852891745743758301921608542712835210340534469437535289890088670435780592536352353070560804561973928459636038191077726077603633375381049735406476886551830371248396432412628994700969839339238585585712787430122851805861505023311850191077296798233149420323977500869114600877392931360964539748505774409401769956821129224614162572643735731967547730776265365529014274675968457654027815312745427235106977831938107852411072422548016072173791544946232842604642568774294024104887049600568051529475631458312775350862261417506107325484252150805909067550319442119101105130873899341776621808369042583425323024495788089244039211764912773769184102209395611670051891268144046912721677779063385211376878779011307753888976827920513954759941057876355525901919028843219173865148012805186163209670789311162030196218914906583533901809885325942841361519325608217264313635545896241184573520724077110487189766870811406998640049921412294974806637720636353670017660421573631014657980795511788867724856110297488502190270402047712410616214092092800187480432434451181218580310088943791787301997864576938202371970177156288289220398403528403652007118999230851714632001509589186538316888743428608695567634330804347998785455699839909120823492716077624289447487020224687441952007357147333767865191826947863237512507477835304749527121839938729494512236449453079413214813312044987164400033941246942871599925943801598695559977563908697524118975881196400453301728108022651390655366196620653156334933137861115901357831773736102216593367749152167353022852861377786800167869843240783122432252900372284029178221500738331981993156068255551354626465627373595107242436186532064300970628609598660868295494727737271019641511373657559234763024099996161330337561406645441013841114642391771500841918953187393328455613119275687648317482084934911195815711827490167143630933674901598616637232403643309448361113207195560416136941923198507284879391957536681813096095807468843728959427725137615942712803913095655642408650940274335334627274699451313634517617758437493239885810649971489833758603730064486741844071441460571701058189321284697803461920290467687749397623852537527913294809155586306520822619480266686260013567867399420363546397238700451118256193291094239498670772745540066318577746935104203731192945928335860479642312689547306602327945649219670628527649951668173382822907579734508229499257188215902170242458386000122079457538804766927558848170105518108603030141055052992469110631340417983304171901825539295119584858752299803133602790762221960596269023769610619059583936625422714283262779002325785737951405381069712318736538602350547087174446942670296646409260678734651393595557597590038439061381585068606615176112521686859289583895953565010687007056738166023909758558130578561026052713375150442436446896734338570459379196735005407783122388864250032613206416990957275933101261335095906655989252103488082483782420950665939722474595591323152712867929914968635343303952243807565435701329894683706739827356431876592181905481459913522151682528480829150236609174537853914752775226773557490549632498964507151006725204046136621743822032276455638655482043958431526228873846289309324692176850058571662326840328248329232390393779272819018773964215704418549104246572107894975665290089591543652726790512425428258987794470252542291807580643797666593850246848780709044590552048679252793862033849097702990341045829660206550982915505410411837040658204991232988084362065909859554689000779607244098900247626615371895537694026863209842290331772603148148077665470181686262078418269810511087257228648267118347139632937406124648830938969591208030563188527007271355662866566311238650673764436953225299123878231464837142003540904760733576598160570496413063497898047117785347039593731549183185296416053876897277800633860904353650000312139438165418987773532577063429823728441051531928963243143067868138968867653823208350220695302997595658274003820658062028346366059510931570017732739758342466042807229761075577295157428780529793898463071214141212104217878441964704742009649697736985347667699695739658599071273888246201428285585277755572539181859462241268774048017792616111210753549452095558105453258095967761958655105963970374878463401756011225215992104780685121962470851394224678774528268867168345838541025251440679110019786508613222948628441731663660879121075297156148474905394127311330462579718087844601773958500756169540316487863147740724078343905563698703294862841977397766930712883532309502613017660461072908019463003433428374895905617147545623262987626883373260624725994648018760744683158940952356591927896642025781551654554401874687712746148682898038980251796942742794498325278177609380857622041981956757245940659454265504481875846791732140473870921714929017537909528248989587215267625955514184561008182688864233107655954325855108906200352606394610527494144609187753219688231161135462308566725944252327075082372708812450358697027050464091514987330070857684559771453488262146349450644232998039408273851045706042868127740479484294895521880297747774773352661008112839650660228573921625300988500505726115440963718832215301346077861279779402411893519470714447230560915340674866217834959480718214828661971972178469829948753333905910170894963339161465281817571467763206323633901532317218431426034043846361286039032611877578855207846405766625933523749373635729266410798418362171569517425259916492989135186086982648717097935612523400919699352205126532962542524435755531827826247264725687788974792398536701111200234496566161802134628437780593981597373899550017933115851245216672619562152030999224598745202698316268811756099417486594546110244538976054381238270406367424436081885409646211532102332047064242063621262230305785933053568130854775394487805436715555542909261144523879965061628794155325109174305385794567361036132942718551203483623728551084175231782042463633688645163966876863568812356762742586320693253680818316450716836515960081987090987184657326592218844093818226471251527303730302256362423839678451168094983815518071426720234408750892690110711600133978075256803780381901576142519576259445987271399267959592362293611245944218340056172677503902503528478805305432107393354429794644539858079503737049259132205185441692459171572692249147281830901971687491886791608060199446827933441820690538003952217686149437271696261845810579913946471385521956515252492712392879737080044568232688452922732248484809231716949554452341046627881184168270146092126980262809524268188294786231935576040096149550076014381580219795513105067002273163739783544792295683437366912230287360077608788564394640342498687515796297760194563752771385146728116885130346618348459845679835567474152722701585285347507731046046451236699022808150726323631222628694236026036732622266197902020767658978269393937180578471307550723623426029372450617622826574678354665858966688750842689455786659022246718794916758111761107409326634630621822841104253505548599924755022929202413082030841077590223855650139047279461703688181041118970327656090504643383431910049992811551834974187566816826085746036803910410482835041917907882817214389515088102121603106097113807329050765365185405286895719783716917758258718332056238353302659517876321657110344694781937941927559738486101828647844587949047864772927791642985582853326875539627814742775777166203405810182751895621765267549357142427871056151483181121755866267498553647685804304260372522018554075113251287837100055079499831537634152831677294007882100948895446162280189192337710027848906668611595373240228907412878955329136031529469303555560524921984265911840420969685640677130267113141512416558697813047545264713042075235034175045723445383790510304713589844444620217272430706435507298637545092025125771889790142793116335096883236436758146846402548388495999527511378951432470466052951123141985477169998540292521513827773617666322613695928298493619892029971840676215186934867456462652852656075811110598578302136585333735819867923263921509445783390908211079889136017262917078331192939647610153933827816151263560371252089796909216011915076951704366561265063508753349862300806068264472267242813704859841953530240599021789703564947578704930464660492897221750681913720360671219581646621998777096431149807330952888400404833440706787008081361009036455202418848015237876801546154145445642419926001547195655752506356474352768899656125186695785958770451133776192766754775940875360693525212684593577653591684458577485350073060263427847043513340281748782111467402380505847032865613667192238481898851547778253539292475737971782541193960053706912711185812900541649482590216747968810562810938990447168158867671181984768097499209589176190548473331249629573773397755643761740163460985946472697908862698474493750180330366143083846623855620417851208649191213977632750535258523261307383781415933766592043773198614191791111964946803121547565041241124649890521902457208518255339467236386494262081010569254752129527055336935713476615806110569468258774056876437858049363022677725642301769079372424078104184118070854850930907282547898278308273656137445933119644180888843020605485596899875559824685749265032198686274604913388352500731774618497474736957531634803282563077997909708548393632143984888465315138868821949955892398009943720302166724747161109523526818206815068532608421646193958564093393371595682691050814751099152527895126294073751755682341596860079381485953578400480067015652983378292636000923847092611603347699595029356081807356650146759774504029038427092277125975773356528554866511571422595295941660706154889109973495029929661089826448021351306062673382758421226813671766436866235251258741397268787385411636733112971838877352391083869473336134547301527285352152030167906275009544605818463893682473123932572869431286965002790402648433867026005126412519600223152117382469752577045028799366964333524426947671653711574544994752902880738788072242680379026669337327570139212353198552260698492527705276030809721796392076005587303852772141171752044446066424099624575906734821481493208152186605678716690632829504302525190301091468938313565300077316243666480209844695617762875304956702461653775861809152102524207414068290577338848072793136580482075984459017322576923969183797598587849330588288778540554901909917001833439581045309283533650182158691200154775960488184766243115652346760025227500072822178015264777830866336119579631707217225554657225245673274391072400783336789114340474174690297557798747999434399281084603469404855242744492483245237269850750335257320077253346993265208034691709843173845630375963443140353036140258084759280076829609578716580838989629414175516215710885832837007002315757019784337348118802161871158593827033938823700921763793701567466982987402935622102141612438401088326630317726821110384517086017521121620089427663820967049556210153829888208286617885478946870752092555235140582870021703219538340476334514348269751624031731690572331518888431458169153017560661420541809510465653616933563351063997499455897887864019972906276081242185839535087966774650991340838062475770457874985080144328591294760710265760492366045001555338518043608231800983719523327134297915611674543378340736318870506707680422545037117014513487450795554051101703748677002180834387971401633466608716686091166199448886488786517623621563098238720869381208838935773649735390216715199842484534136962295066837588002283637961875426191489969847113411947126464465524986999124928701336082211731539687698556351722792799940419456739877927487608032309021862467191622761373718959843220908429315837136339231669533416618770027878319053591832137332310857890080937011072792226561404389235143926644747013106520812002383634957889816548466408191609609292507703560314179621979162730597146413973884630037719334921465470038654015794844827302766435923154633192852524583305292009226436267656975436089982660689985931060962692630680333650287906603407640465959019222423980763420424975010353222327889164218144700866792568094904682121079573490577855308842594369588857022916944223299620073461312064543351183006109539625991002012214834775331324726752200474865995974014051438919020426442063007873408022136614949697599333028133316291371072848888695680584146288866088225872101783614285753211783737401525267866470825878134607869429580609971262613011551098503510623266462057361796129792448207127652976500104157483672473139630455044871122395557412648039422367393444406430379521618401265497092085022954198657974578975736210821327956874416221859824771235418503623275606022460045693978498225150871153411092055314637066541632036303489793618861592098680842792470455722669241525138724448522651849707290222619726684514490382060980606156457771098128254164870480961455285353309110412673022095155176627029024249843299264067381747047954046869645265459405231360862871033547506609775812444645650958812924139248066036221817661250223821670680027732509347746765882930925242986114809629042774324040193813665888771038811353378867283213054667794958933983586497046706508596927760821122789736133342383956547633579480985747452998202374567961384873120193324879383790468655724781722287383997164800364152033888420711131432241388527538060016051918422394649613987856014910041350247733337473318807622756419798611633080076052944058601635358917579398898270364710418162511960231725053435299924039030567218905233842315649852478171010937853341298850097994615158079317536025509747178093955119992481746660696454228662817984089061432086043922681852474848604839062431643732189798853919726477275539807434826259093771041496403246242003475028187953520520609753728975054811643788481614322642528120926954666490736089284301034932138218830928019314140743475646069121634306251291893197904225915810022531777425424958007493824442667439055821739183123741495124337203108917667271579310658859595742796423660781777293353420822669131226608313393780816250363301091683663270948515208993665794967862678034034261600664034957709757754054600557211415928388413166422433182508276054761995744032597348702874934360789018230531346630046565392526920286167000329974102363149975144413588304205333173150659342810214429408302086700220448438023649636772203918113797063454034918281760722362221125790929051955870238511257851912783999817180105659559470294207268630038668937308256392317429491967558581674556809827725821956346589029589325355421861040907228020198358054539067764113090508933581728470924164707472316487301797082662322246677643332903017776957216828371053778692081791119791609914917717156302896160643269644969196489319076425969336481632532788583876881948243336689394671317642761058537327798489730587709782819351583278303235297518031804396586629832418135476303256474564331951219784793551469989952996953765626169280879946355833838033330407279018000891701224194376347422582021146595249196432252645866049305272196759305552289771984173003053960897001263298306624149781573387495759753467686596079712325380930141808274565918773264120477090409503491194515542100113722299156553005161709369855857476827820355434605313104044845551569023315692333683930371280904219183954264713922390337566580150092292710754133229215928410852330701321234430758764798409722860377873026332439657922621113528405841886605334221062724953379481311309213189833441904298343755741136536773113727924472651235049102037366999345002142193646474763789079888457465414384065410528899010179492122990142442519891404594804595855868481213563122321161763205273939363146177967133250163199232323885171059008814783383127390942972907574158382534408150358167134342065612140500178837826405169642890531881460834930241715519670144194187278541044584041041315442651323910060385627939721971581270765397136661488908696446189862362081999402556028556377938261475840104837831898800472176917801442227070448528910402490479698282113045595186630295795209592934474513130166925859767010298843775865595371048192557778007592847651215840909921779455640027743281818089029671922463748673485956967401926226056454150029907719979363285731930106090159408284459312573810047270779712649386019695608539296306009309421425024776453007079539397665079530445929391006681521792223232744692667054231765398082473033201281705303901071511491344537373932305333248973153449806281354507067697843052624750066535290586500787212530297611526315432618816111703377984843278582114799916632329304097437626253460964360095386276985718321946480404401370472590776776047526297076944453144961855384761244258019266047554754590188034945686119806184384382328734307732289816054531307952555515157171565108708723945541837159074574846036613513381438351583794540484085120969703442446810976671878520609892022348770245171751883339941098248020206933238906737898142943817925030860405872498750600524383317821623171719402479847654043756130738043894806974324967590129320152178435171794291399422718450850354710342288502648325714255913159202179304190262929137991147341278796505762087488728959516484341656568629991225609798976824543979466233947629812599616433551745939173839528673239375816418396938327087241772721305450463395298443422818021717717705571543772635454892151338067929960607450899864244752802909379318097877853189451473266835240442138188395241286975462296876576561036491009671762820026243528236272675556541888061345932954780533256156738430729052950063027154652607594046950268112137142818140310383551894673292228846003444105006313768432608127994612765663271108974469052349465848943922499997068111606349637245124381933205163259372339018219238268477572635087700165073319567963577491772101126861643361154730988517966478798005109114505285398982788847822521507873743211360436364825287771157922508807533183838893324272932095128135476953092458095600709019092231365107443356647189940495785601739136972545755559435261952681923252835331668640709823601944508632137000295992145122957572718356906505046710491826651959822766351789233826715135530298888546339823392112599249465160944072966870314986276577861634998624643577179705317294020996959368147378328150356901789346670332675041574127269738673431333860053474321023334100627544971167069236961718399233552869347974724241339392778798922376945807975343009842462581116000579442643966860413355168227448962936665469973236068271676450911389172075020124586335276363478639336576578516597474778112596836378099073832332825543816679861237703449865624977365836617764723293682380758852649997972511827393055174587760263557434191576676281915955660427138730326237451985371487784905495055674912094560225440486025464056163087521508544343214220759800113728123032788812678419129222922006159785949457438620001258467606494941432185206173071044778038684897316654523001845526562426570867761410812430096407361136383486743063295850920765643119516805821598644636184602998883878164060159587157232730618720814815279983629162907787971927240642468514105128886121569838100160566768395182366275193890604596340884138574582201557303993494953013520037257323140508219041540300482588407890005654957792361629883934100105872114946333746322778120986032833972635580537501923532040745529258881954813423149435791918650500508923472824277594691273297990716376141325325400094550363306252805286651228573737370886399536230856972098680431241485613572945481350191463219256256960059118041853632724724093616175032118442411011764834087856849141365516887203036109839206317179097664463951717675828306401605390939646485101091501097345255666981314495482283210744096866621846598943342753292961043541820680540217370720505931741763115126528592002463122659654137929184100430027288529377300702093340372613384096233040968057253563937259854908751796147233706948876905281883583308509035723408210130584499206863190666442858339916558447071589104461889545691368034255770940201122691601394189254501201042225104402328313769211306745359520363679401640241580482034928504649949422044587232844379605462780040372830686597640162728245294330573520440035540352374073832963606610411260958823959466469530363630591042379325726535884392338273966913974191100188245902919607980708588781763025204275320958017186656758502036043722410927220704113920559317932881805336464535995415008972855513609570957255354761255456565761460771251226793717831043229696684664042159455990959962003996869027924611543239732949920229821945489726064709700207421717282646333452097299564591204607928533716762230644041573720164827446303547363050047112620598247408009335907278156021121378160656249988065928990670652668617117004214901449878698924197061032485628520587156842646203277743934311646156206398452840791371469981511252207462911174870882798773096381600851379250310181428244307736764831622034350181101245010431471143830244305096518189204481617062868373431258964743512987343448420596055443111459457486477936882623813051830463866154443865275110903295412346355504330429471439724465110823935778285919390884139026232141044454318553383167015863754019555319803916576632925633493976250479818816249285131770561885967038711334230748847872831408019894243321367271801722400092123230068595131760080108244259449601993096034474893278584239533155487577347502597907093193178703311697907617009228060472368188943293881207856412788749149777170324370846876828961344897246296436141232023055374203016287065253011302452907419891722312958729411136110394303333399515692569037462167567136679024888469648709608308424328429752421161590114057040693835873498190175234820069615248418477636053335700417333515862246889813761995010003616282883953758939409802056156131065305736635458598147113675874901061837006459361010023765919672513635905351564722103500388619853893368151923547825221552181403280121036543063972195636347706518415318828861150516390380052284527304990548981519358924600443303896666675924367601547007566996188331727326695228952107382488547715361893115615124679308829827397341821404314946142543632975534069697480514611411876096402272148289878592952965134645060498266979736838665335966165717439613201547394521039015850312696389206992841124192184134869697183920112071409682730529166198157627168568570923729910594136043018471403946106515300612084920383476900442647490359062380340711706640408223345475472836590997368282878702873441845205225239111870299513324781900596985890625565141547088556863172242257475140440487178348912921305435677052005828922729834908428848395946184162059715990384699481460831497618785731007360519338218658015193454574165855216052849375524584934252638690094148122725080183888287603463713108703590672867916212871852425585150081204931484891129650806654332211535777410993431362400999373525845357649251296340955502867193568282633634779195150373739804117047882659636030994469077881161668620064015394349595718279532473681415326078292764091869678486428480513597420673293749233282916293863474967990610144399209350410767182919036642642504864700257006913179568182081288299585732379869891642542430665148457350119341224726967327577841974247783050089075506347598259261945717430561541446605259057656788610636497297983102510515878974853374941333091770361128076950453259131968345270262012274458964323246289812677664090568290850806771654365516884642062494959297592666494517176347590595610880149863446674623852439934880091491727522041304302049061712812985808916429003342293909343127923362053368274526281030391002560244120024692476569767986015674793611536405676179871724224495143924605571585992823205941561396956163525153763539615154542755600914783469096952060937673568658892097386571241052325623784876230237797061358261978827606304074168979147796541485419413215294724039039378854567350217815138546788022397970082859534213864077483829891979485275294426273224137581260533739600669912788930106286569429923604196049404807212395390637977832149468369228344936955504084147354635491527842234115805749536127258529845982192928430605923299011026205088820250809096178581661521505386985466624607471931922645454925684448403153439085836614291248534619395622283007980059161768062102504943731383119743161598771427684150681772573305451468536770584436927926661987573745701995306654704815054277979214169815689135521257098249405131036752645085243606750311056120414809717251962245685213224510539954328964998583127613179396848177458840157149897425033433296518729242309835091969294296597333903329429911341739473548316365991081902622503888707569250513767963897103546855800800976970357998221282483123412623902848072809255658834028820657141367479886715647687501228161464879858312374557357801943732624645053803457701356881334550906662263312523206670432699191773979364699025744954705538348464376314303598090974765644781906667417868280504752063022518998914164238221906422847457562957270465406429644075411679118612362188670591644229033953219833368997563613458060762348626048126299446737172750997831607331973775515836422205908826413395617552069506453674544700775148530774898301325986439240927094731403416633928164734712002831074674332062999542004863378389154371873324370365962495997827772054141976941514307851924337525386983533032963185121709711471865631413897120206912667915145992052142599563102301795725572841423223903050487285796253437306732448021991573782977899896643597537339329784415629586079731738793769891087753718215779920316723786289638420074715186700483977110036222665543002983477956922405759389936733957672426366201070840599347872270875983577061310658102686168714658279705393839863202392246991054598625376326288308510140367805381472508259033870502781254369470889563516679771299888820806427163234940780110094719565704305560416084355000924314978091512380200923359364459449726789093090126278107085939971256345405077826818751022745543715715153687547102131648217022633074960935760331628941545568771349427848900899413496478242469255311053081024544598923303321773305397713589145956209035333539142075228028098349347679395754595520950779679022447124246152525111621029942639898625141654170218093858207702761019006091760423825354434966005057393255487747489719037770927887378043869130707208096686633410981584323218533755621902566704229218125324143026873464196079166628645146445195388832450970884003299943427099873367435612722553255514152619437052797567411119710396019837878846004820469495679807466888060432167495421927744975262530946613505984360777173825771079400915954130796940651825682124786108106639854618710553488334846727638661001840394413990622150806552280831695557119981605003722250239650806354729966117984924106339420496540241545828798251065266220033323491880721036048804590699733398696793588870389409265132397929888280712027881967346695992237568971458007675647265519771354729031639772891541522093302499380235718322889812999686315379779788952174400040583833179533451021244227035520489669119422726868710490242438758461326306636551892621142982593837189294861266896588240642065453816560280137368203369075549657592122769920392316369003774271146303277830587785370604050278616523180279343381743729371489895461007657914537880169095180999321466589327813291601037212847097269877893659028419541744979841599538415535261834427917961401033658981480904933570945378168445246630673888299506347836348427998181884677427266841382487184914896875111196613432429142264284396633892824338746788663530592026810765593296149724293248782947504711148166022368845730661758450886727318653515017132642158661521924608094009059330778235445813044620746495483109700368630023363235165468253495302066264227260588058913909888784989666882393791150287890765737998994154244494776850473455385953764801268659422292175815754844448561465037500843882254200169660150396000476673789937628043444290205497693175307099257178145976043518999080204066033312572244550805279709638597024767744782261185064058731196149227287438361535053227258488954836801443848302285705982870493486256663602408118294028610178629466454091913268956195287115556687809180808041120893046326695185517624931420994987141992121135574698170710992164737576563071715413113899940983530810217007590375829216272744401168413996364307113430452983356076067261576347884473072221882856817525662696959015847451051315152600021697718480109267614001953918854074856252403548594168632497015305459456369223203343065150686312210357034088883584590717843293824182066107833675789252436388680508453548497907836722858873139547251046540380508734606631617565640943687050122074319291464541129868365771239899800554917989548844784279058184013333876170062371089143657898289953644807550038982772259949030424573835335986251759710264141077261501797359872498316950879914394370250619213423485208408177324231386290654596401195864126344638543213048460643611458881907018237262136492519353538236705916448236054669044772054152228637273023563489299429378338041720427422242537892157353468821953001787499523008263220649701647017258258160358370239494254774069583601911492797080273020400935227191345469355294562266898712215436178993051043812368084713225634393864157577360854001883126781842787125441683271975392363346910856922496344489647690077564042523598107993834969748369679408598511224484947407645879703504212539162455167159316978528200335712026134632315209378723538394115208739161638140242726369064765304995496866435994774143613098303385771641600034431888235045393508654243573897493632386723104722001560906153315382647761600911530061168473717362431779471965619411936411616068075374904048774342920090591281052027059575179372216108848789885736063653240812451140749506467170195581446257813334999157173019458892397190461572213870908294636120427120447035911946429923896681181028902110804707081332808306619884642806416040672139853893093099368853613709083532702763155601733420690927516190578223020092558548155869767447702521349912159898548603613671808692750536850888367401991746076789489731415412013733993903069319222630504457122172279794272682452891652758949126539427867259315692727980599925721162701940869425959355422038022617081040500295918886128731866724643755462976101285551333035835981885951113082484688363287875259398201431809782597294144023189737961778371424995963135995107670479005059973049572801959488961327390585793985268970309505697849258305679872122063205661290812097252783727638786635776753419369417175306768922064838577904398751721172851830982824641160919612686154827633711727080442625185260170873055321916847345881145369997576676325665803956183023764808844235819818630847509793963675071345181890637241650781144114429199692122629371705347161336002003179534469136708527723585209629944591589504627736546581384391828058203460001283450263739461859719705483550470870892091132924149601274175134445308553982935813900046476122378849474266451063929701872850534276106518599767192234078299582109621022056799034581516865605449725233704806992657512712279498672746723068716767950883180224509636054084619142107205449969373993103311964426835575862237363109521691076559154769180831837617306588209074316039551715761791485677300338753837035541747762555845087156133547141742015248505966651838080171038134253305704931542719382837523119835090740112236879612335013658984561774924015484075457258079882089230622760876857748522787320050921866450177022990979353577867046428350127126472426130125915699955855188083151918854854883307258520602171016914065242111706859947366586404306103309517642762203078788194801973693544339242574124600355755112503546372509668390420456084238444668409275301383913872551285362889972800505180339110360233381530990321465403971348711633528949238259651531275515891879482836011610580086730347048582354295988720055239819811268544016025744875382203631008330984752718933860125569840562596322329579153776704225981879992962754570651025583367988524820294486044985998755839978305509021810492355068609990161749466904276555753340624105910725854296010537780256819283609305134757028587830844716444208153048731413114997620500127679007563751901607173859196025339255176861061605150185545403910606110630655345553719646219881546065333482132795155931185587955285070866557052663231688109503606608659659124772937698195226768192671028180895290962921136909531560756198474837041580936651911854633860936733401048205278195779874559842505068149814031489691131378197638629659203892568623468423981125547158012305494882090886213121323595837364218812671180768210353875551218250186634514767108270534501725766011961348642668474740347292386426617754027264800335783670746834594671853349349082343051261598054149562573478864391411701793446966980497054824556298619632934776532057984263098979588132665412266571979227602018889296285445322557247444655375068676531132231617380598963913285286060054558026265052482134696938332648834354127551388317593905022777358899233906099283112610341227371230517645606912326899140714458732396959690688001919723662601784583886733530028952199757553077305064926245168509094772302345223484280001114461316525734045319231923430302312221343324412236977979760107008779908733540807837995589203849342635062221948183409727019084865207134512436427935136195385529197658081648776108324855613684165634425291239865975063599833548316106404508047841881232662368066074055995906125435642252386394340592456934304957156863732835694838162916862851048760710508052488593505433264776997139358480341045703593263835774489945911794145977257095038269332292704721895865878601960198033004456623669908881673878190549407814892747280366603235202448484121266037478271373024050997020276538410832039295628357829892506524723656750895115849081607098796750256392847213124235683202110134498705698053764184453909725653749526758548777475762811178677662182183457526920278648463905871934449636736027516277622311317621485265122117459208294024047621254659806462746619463168682744726913598923663972246988772665162379625715655979567859511123107904729504809668944431353885429907606052053117371282325926773493763601948786421316039008928258496738240006480321381031420544854823715242608731361872134178969406358978163081455307639497958019696514565295667005160392191289285471354688189909652361248809731759100567103150510391841560568107432874022044288124658390385002123830216367522354002971917121790532250498387432648504821599410327632822700490254518183215808142759943225168616654376904064060379034121597322500759614382985335940723274733856753645540911944914460907808648297169967592758275775594508135900833196687391868308543646912645385647110304545200188877634875360689150970177144843699278803233304130608239030916357972919001124559033931226043398629390090406046833080293023601488114102560990266310928195376980404913300611443019795669536744198549913440135114492024823094679981500964775031543183149210240528932796719534702958267869571395138918978684862262278192200690078748987152409282703843868375971151648652795835484043904674012757799738649587308249291485546103383277198019596904560332788186215140459702316573202087509843521825471171607164779481725230426898850465159179241856949981115913185871815045100235057063954454434138525972364983451808077736544132208960703272152544817995100623581521756943674014030106675080280135795697509045272487304828594622003158521512135314235245788200818256331901303170016109305452676540515927923987697354178454639286436205808500106285992665590275944845242615759438441788975249161896827258737843972873258336993373932885177519102367251395740697474704225260510748508033469305916795608321020184990364627331574729861331795804216677119730237926702173554675941264811432450813716150270852133498075424249297136914874557684567174595524090809762554610417670888470874942895042681145900841282170878953186086527029003238245407973433054983339121789055111193987221288984218252578368374431160973597577418417120264558710064988113655523452961429824260647622408899726028096298897939705247006411054507236985299702957857623911478679278024531342159474391974295836548201072303180281124081957540712214142208884229167253213458935381714230379826088583943536109908954399415124474647890353890760375895128863287897921622325952644944012449308792501803394267089583581369513012967819151905532633309928059492556449601356353620196131929266004910913803326378577913842059488441098999959302827137743186025172062439767801536376227946156109232295565553315856021779191998391514187232842637249061484812980994161550196944137896653770648532596078483166473812587868152571159168188267431900219033069069835944390287620045804589723550815052061261599753832242743344636564341134589774588053855151118835073198789958897309990096728634224223891430628464671569263116550627279236915940117885431732884339974424985012452955604257391153918813113774670122435605078722279999290719335578737034627265325011019187039548969044611757529381222465674400090291379383951591682124502150895499238913814673649575570751899955172507628409759372981043908408904608841831839819874543327044417702136400534201670335035670940577480186062776091588590977756001121190530279529572644960851914595946382058041115772445095179175733114177572499654047290215779325218308142549135441036983987384924284717597273691254991740278812246440588588904866501425590001857421373164744528926572011886124447313551297703897712683113823139479650058516712383095280167969892003742146984244385867997845279705574555968584859145393190286340825426600668369329677219554001291661579967259708806422755924934299104195215813757867978205582711981966160599368132522285229838910900152598510687180650790624192164023977920440346559870097874639115875059076796121602374643278277442507052556168657388748368336217904405830418399951391803360036237211497681510317565486917943561681551386267380824912217545359202105260846945107503542689208278747818398420860806391007143499562894929301882644640588355166382663033339492089822739068372062524414652751210915764920996072079812368178111281758167700721756108749384099208329087961704597586974928138355232674967665818231109887296318704255756664483476437343135157130889825975423035067339525881293954816750733488811687101518072765467356328411756377337841286481162502119082898556940853015349614994592734201386083664959779577892998272140695525383768557245258460104891329487649524968816398313792211060099922668281753218744371730107615449627313419038522511221310284547955335423977659192952111183645927077472599792936999685260424918426859852025300958916596996467441239117072635038101642172548935178606190831402087548162273082485623390721086768866352073790168105825956589710284741199511775550340889974705083640479144370160199425164361869694295534398173229164601349100912247512252852306175279598407063417286115572871011706463046313207298454511175067057758087409319363286144358869773760364970332738124557694401936163068381921513882610273453580438945985479338546610262652708193262123244407789423456141382571768076352647608740965103000243135865104340490542262753747900828934233247977436744002038169514732161219906565080770865359471125818889819349734380852308129054687624578686102712265338856637675482542917933471455588631215229196795817726710395140255316442933476573288525313572813188041638358125511718562235912292717563094939321869570570348154008890536799620704994100831567473393497481393017014243979006664920162918464154689402134747237027322315565897041630027681719108264052216432226771153920700520104567876814227491912790746773277273274357946542820116967792210201356166557711246558815570570605202247385535614096425755013552637128471590033851995579904345445320933306529116001834487651024474363027061075229297590426672220526177911400835851130708155578553448969707334996761761350492638866229303162519434546347170734816463083013905378626246418482245071546012518851116205899146384579178130269242141890404164775176262281898175140456369186799862368113241355332287696346356019027941721449509966316269173335377915646857171306911515567771027197905488597018695842517539994683425729423555890268150783264471807843176702915822037842842735668052539440348539474326550357575858353042662000568654347281122642247870174551476963858439037917104499826706743961368766684181357719191148171541897114688149594072789191283692705899211767786473384789161783228727386739462740458788570275667438366583428229207371804043542459114323622428307705556261204862111249755485807918326463114958167312497481768862553571462402383569556882758557748382265092460321912555906509735965556298372430791822684174211439582260127157653079256356817118919863177985303120178027247497897346879883039085428293563879231069337612299073797242992257751486681330207262231999513074718971733507078207801542498200362228467007355951162760542259800699378140197674572284490076151367015936535566200106417679182967585407351531576039060046015486065019026915382904244840135592933470429189758004914449744189464496928349783258397835477714886083818943121257147929477266137730619257305924207511477688538043985744140614628793533080780923202232248704361765429004286008652419086104646046151788183007040638769285640210633695877410653921308685920710481853948717427677720347046187575191793080910880269577823553659841214806200159571381829468647724814205620555059475368244668714979133472383806475767686226898341098120887251583618109052350730220009486745632727502275546274152477389438009260419299943523245907067045736285916916346509513299758647582879752794741886025085902911554854985834278339148788472737669523387238283175987443870014654891950006760664247588189901281435875081497897269213920559531147827076985911455101271451926008792708800766709412085995356026309022929473713522594403316710926839337633544623301339107289774366174704601205092491817561328563282011819462330873391844033252589450101458864165339345338240765138989034089500465151364316315636850679279287718524452492127397101174638926173820827858155285806879201267827573500267379171375678606038466477981364087771881839390299642555620123294131054060485108757182391746162509119942124969147063238221615818689633528382179857866065410450752897642411465619594251068737503777664527402063246838813102374184331493810968469467718466175075609973822801993303155527890042116967442797861463680211207536310883973996701870791466187299672104195041853738098886220018565775717188412637049751210875555627114340376706214722189177113992997939019383105416679531484916769466704331647590820576581026378021718115634375184366482946462020391005115831911390685913181414069790438200680349653344955844092649813104558240313213327204950335973937662403728100874589170328585064323810974902791114100559721617261972740421286361707280217685182873245495994230028655059351143633798141487315349314648753672088793146703804451320286758119265173244012776342484556775641017300104129299078166356241572735908393075653163558503858212519231440134215482937500870227288594208497883986346551639044405064652204021774067390793521306081327569121158888856311550318416097838306804886367238370786375704780005514987915712995097198983124093264285295924780072878847558094873163398077786953180254833845766020795979775215062401472194122727077785697965047568301179464692463623914946857158104494688435691707769592607167286874704729213827699244791977967325837585951404133131022411682595574945831013844471454320104419608892861266215587263436857252961791715704128680248873150447403962518810141351543321264240797797684396045054458231402911372102536700183766434710962428192550693735248273575032430267872452420154001900553604991956230585987980528838442901993865141308826622649645670332670615685518309613534757798428718345818049126114853926356800165531085631461999704063504927422462886134514311159958744035708255388711088972599287122080165357443908799841625927329144121045361873875726240365976393910539499499851017974047369239941296356221569140159263126800927150805049787540411398413402305376368549134598199486976307628520978280399085122967172887306524957392579101464964727374336056003610724295004738040143889388827267090409558645726031040527709277343765747958585597998202271882590834168074992357719143324307118992061933342340489775611772725934700472104374018746456647838665717505985585930397766404268387757718031234260509557284250004343220547859570530419335602925626475726968886507115256853411941359136822367951542504153617314218225328096274392778033161680161238791860825467047531986486093485677173655652897251333003623375868234405741100957630892546076937298721443304646641365411366380722445709452164189563111748248440810380018389800752774437910606795578657608957455834038401374874045392397895363089104639350571509746525659919973670764152493094978096292017269393168351908212717819186893031354939055816052718970143879125343709955048917458045159570184421348793614992476685753179010049166491656686550389219648616862220191561238603702345046821741681569411899956321826700916933247745153033619167125398541823997349256699425191580008659805335213978170122132212508494925344948433774066151589101487618548755676066827594673986965247370605763014603518273290009720452521712762591943597510990810810938954027394597415616723217835765511674406501037007264041754329209378029592057068822003546032920618258829014212822214735236253323467702905546916542441693989271054966087959128471460960852403174119840445794499611614871588500842814096878015076580392894872042718168663490119428632047726772799135271247986482256983232349185502930009790638826266665216204344099652398999746744486394808739313259824213190678095394598760218920206455028270821269180440074080205421791118783743815783626937604735146901574415689660358733350885725371944894962769216938468183117679327279207533867364324303185339966295532413949648566775692372902260130247132710002952718784707426149805769167515083912254663176089640735111664045383703945315374064252451153413369725188055900988135901999325895966585219187106265893450058741596366450012190369570338188930955223157210911689088539361295761986049981174247000455725517260135693163926964679092417106445890837772177680889011871002907463347503501037937144685752147077905680922629424871224905104361340965618875145542244483979018940108907608895082459927343371723785549850529908535699813187243734189530730255894965173475618987171197395463112178874197926476209922440090595465471874219665119786908403557741685201001860221876199596331061950253648424115766764123744636483492043020205468016962040217733162271098615154362076684044146480098522092909563310420456713834449470341620305623647199566053444354296565087513737818402744345582303784172531054540033895984425994541649910137366293736515509373954030197355076847458915416368759393270844460590995971234044700891569960977913830939382984612373985674487062622195232803053954294061770479993114031179398748012158685642724136959484347178542534711079600066675750259356357977538458008068803846270151136220669929163423677776957618705370815855775603153805301098797453394139260540866364485207853485517988217152026780676103893798056800356521948094356781521140222540183661407515034030070756208242828557285871794339809475314946686905894086454583822679723882709404947775921718765139406879131902643414002543785893831035073549814661819392681470822240258347602072777663863566021037458559241684665734058643623333944998089600238554881918025650425615999090831725091128933924353636527772880098076726949209831292229917844305779097786320776182689816538239287508518031395116127079136600960459181690316965558823049373101871487009340177857058535538029440677148556649427110752780265010014876047732651076299682828846799265480991461038316329898031975639202911101299886557742818514581873670753842057304809543014269526073361804160726921124517428842319759770909559210460523379349080682920343434808971718480024703170771686657110218307606265341218646231392135450739515386257668374787384775557939383082549218092389146203527781216670558214830345058026818157789754578781301616216859012510604915745231472308004661375935987383498432770261169923038715573029887496257566876980835535416485000296209928101365610432794527077276821407102562631704062974662989700122106746598819036610350112933541308363203505767164972916244693382608879523078378730185216452513788647113478167736958952630477106614139607845880516146607336957173610094960738050409287822837924226470373895890528829885550802043194394272255193879699273675668450406233093472334601373446388504469081188205239055857268905274205198526134031065985964844755182313795230678059224739638704937733692521179266386205426196919391163113787740457140470795394130939816773348393312557035473708124007435168829172925670715005239269994418259817807103882677592328727358505081366293013980639809213289541504249451091677650430008702870999124669806900429169351170087558859342485407945794053680120900978743012262663081904541353455193557812258632531183091804602014221374703782263106340372764977359608074963773957619042908853757580075069456690145556852275456179571391333896116363176501689175409224868809334855283574511623018677175402996172447228653163543242778040754679314151763906266926027710271275221442512033795430863274259099676948652824519718511265463177133633081583860551439675834386344620021418152553281052151455908324299111872911325210788913547290651108001365698517295708957209770069135398730971724851893842897067155427456999695679308302581974979346454942067763809330512003822319601024585522145621084962371605524934789399787013281781691898168182063672381905106469975822829856645464101269043844086108969105962139910469278869322521016066208982116307623395060857114885027638827077101417209729635166418065708740972668239652434509763016028806501334088762888138011735619788552239583478367481100325824875174983635962687792906624926854809322437553383620808751340503345843756826903717463662383120815122103404228396849646637703226401753208817363297591375383884537431412346825115821118151317113529547191501547210397029556561684711060115319290915551570742035168525572908137084212196740558729012980644823793123775099518756132344987597344328295918887483616102679458440538643601977999226801581756717228430210024596589426043610469137216232466964062892712709840934898800490781664681894117104796194892924390444156692773234652137230016097581846270292513897542931249748236124196499656611233771544455033226058965982982833855156712002532682841423233688375738390491295642267026567401562738414884260539465674950080354291008140720600754076320532743177131288291518009054102099509923071247832483783799973111747541219615597381292714669210372218257887681374452738424086210889014953985785360771580164676190916301088337535684103650318635349194495483054132938735338649078855001258126537105380720352924542107368447508341881312792841867936626415322209153757520507265321564760349572191199161076874347240605935562855798300060346657302613594845928308219328001571787241514769947414655668401675244376803522997018971551413793444475483789587173668831593879905936261246928323896878338669389393243946229754256587981916332271488314592949641575801459647559672952934616700792613434839200433389855224955608437861331192271581380854241947655715393630704746411378304232110922443126495170923847301074369119408414987163708220743945022579777764674109631471617033753155873943119423802370883246984082313199038237723536336580949170971027890667411298913243128970643877876396589309075984220479988348756516593606362198516935751399142102587906909265448593716247666386083255524069322493611840321065024890709631717247735308135853118458749387721634504543152200090294179058187412751923862320855035743085468075631887165317207300384234442667054303606584991047284804049864425517179964160949744084917358194501026582497066828430014559146723160330636751731092249282276000732044229561336922906015714254503750790381204666802153673019747133458049095040393411365572138951538322156068823437550305439948754457097065838007916097700272192512862839132707208594558692234505099906723142941612228263358969335084223929350430964700656093648000372035733189943570498791486585185162383623483092526840993592302660252314945308931455607640805349075538969593396155581984131519400632935757059641214170116643222665709192016713755498471548590005035942437244181460252611659218610531956627442996065960408051805551597512591173312915796496794304721190617168432215020023996870431725861800967003974208918143844107951818271257721632888206324515970100601165430834207479344143562002234432682971968733420149687751965348618040106403871957952157802957478418948465397861339975353314062293594558540173999936986101775701514019006692963224008979077630228285656565802915072073836678200468085008040043251400649671185430804768419642100208462310777123991566171810974303557851201260701928387472949255378591143614980484443660554583358408557398372353162123586183559361672927791398651826772857024830121108605046815833641465251005715654606132434035235425483653147452589380968348846859712277764197594515845553474312913794082500691284183512813855315122020117508915360084459796167193444540071867120298073160999489403059826451594347568922047293325415327132966061842420856000316755496063205912464359063450897586416849360143524952394924798884238921469739182260246686421807575478183750602144846586497694493908220178315973374470952384837424262566782488241186450402218150110674398811842642145890727398052929968524764860644879065090596009403382840415465052134800183087287075051251263196592123425580642609940517057723586454762720159197041237879879460902328247234294573204013495965821294579950989743379968904410132420681364728265459592657244217458324405664386296019261939140863593936114130871011636468949204176273479726330767602251585174506079953214762836361277379705374264816309126180475291609902976976691450703722053801001583720230350613600610092544685988993972674670332511965790625986945299747661442637329171324232670901377328930727786641624463433708698125216960283240392877300057311269321905008649138176258376565769992903006363671786841382328167357672957332662150783348734024905874760170185078785011683472261157517544057697741446113565203054157809083148642659491983877021193591782428936880472352606453772108469141862030097549333967473183254482946521089346268397122432658285850393866164782798860051467722373116781936315814069013630384413552790297803191242520291657851012294112787324552635557566332650986546460398141844994410815361234621326355611602779709003483759367608086706930689081722006559089497886013966656078671336245895873548390684409252254986140270770625033349509918222414108860901015732462069616515929373521735414658605186187065753431469154758178380439848809560449905448795481310569972043373345878980878885337182594113014341877815230630308241582838643161642192994369102275293178087625522078125734024922937853081373071480589899133983845262158595497230570964523358603767715885384153894616507811291063531188191999690379209362455838030547530716807839353771681160053471309162171014635489995328210314033293317670429773902175498159306693039164303515829881602359754517061476803274662193812918562571618519246838669505611071309046202686160810876551049065045357546514945511472099589261013425797277196822767450663340572374508376246929590550951776224061893061792224926495211979342983475619107197387724183957634081942562703130437048904757118411436336588905628043618423984948622006379990588929937094555755004891383088698618266920380721605243675878666054198598332205843137887322889020519173290040680695222117044292532486609685920316805801580381040760303475802379958434414983140349281607467557308302194190589765160521385449281892246898712178091372689919297626378072078147885673002660874786496531353013262833407804021022537087952985718639151977823256235054514541426789530056644680451677951458962840074457247895375259746408441383253892547145397962414062951234264198454917858079633571472957775008258185634065314105988807160220635673667717900525026197823174107753324030409121842758674302904854547100103216350420680559404999471604786002969990603875648524596976424266062690518488003907637294881081098137290026264621396775087754533012704936914714370379188496071952466504863528525391500511215127247773388593330798665324994395736771548228756326226479666674920309540157697688841566256064856357781685201491476137130776546695225923677173885894723547922648619942984234725591245463487732722727305601529359814458361321972773693731930253065986771307427535540829302400790901069690210277196675366805598350572223105707845759998947945046654372208543082389403164972913497489843135636772824806938960736844979973766622843054051856811682178780606784513203442138554638086893709882768142840460120832500532862489811876480500765700467052428144306633816959809257256622797047860393891395796608907789172510050289033368841536474628206403298844711611054304472840403942103912354990767831581562346212562084936067893821478497211841089692150213734633514693736947857216669834631812395987813260218871727637836838908010600676238344303212125604746616547263498899964686960912707090302456854953980613134485460643732507971181501325970550242174306881727888321183781100684288308410326651873586513066035560617435928541841153949306776394927469605324131049537438273649251674677668149965464102996558553821310837026270312300213908356224865222421257140468026110302102234266888458781270333235666739744411288983058083826433757658498968334347836210722039057677647942566408573990298237384859449709586720132859362796268978428082527711507446706992355582944387430427788975907091529970860969013760878238304626583510739203620692442718043573313950992911448361319599977995048622243352308202236346776319465630396838598811872631724435359143119035836879763150452835665921910713576639893194053495673343095804441961725275741634220587439945495276383195475110968421100082886241792270098223855019705456736462863390754774633823405327580890863453608848628068666240479625157197919256031404531593452043062245889578998547344428111351035323483707537347163331325416983498017062146632258332215143828877486154239921864307160996484737450625869571179099364088722279426135165535079512103809696740020252886541534506453447927941737456352823282557806797210805960273153034866917237593562946302262251975409703769979631534742653705506414030849827697844306657136231349172638058867791948831133101533417900240121934311991184558520332566612601791280147961799101737527089929221966822353257126690550340137738229179322923362226169362740805780569399793528731176028527838891807577921499585038744434973848766646079348870477975628126607015448113161693148230654078372925953322415035036211186612639870917379137238472403488512189914213187296482318275190443481977075518759414831912537431927791223293653610682528782851362850425682492235126953287871519136394171041171779723523466730953919725387941611241084258853564481328831918929010524771145603234477225816294618765600762476068002836592321722737373194215630963919600927283841763013666627429818585307061768299369999876443585461111993535752649193819277943750531853154538676180995998376682194285688950124589192708518044324401191426861467375214737808484855738704646312085786940775637424928766356345670021639927171758281784775659048480407572698747178202915637254402204254055213305014687855337832698619690407153529097970891143116145149308670126963411992459017191014053761880385800150150994080878315779017537283068059168141656923925266380405499269752373241234858772196324795430689644104638717604049733029830092685189235921745378597155265303197400493746898424648822255434953917874691985940928534818526952855587588122791162657570233563291999194633940788600576047036820402330954177396880581767583874694563700690305691696733882503889773307804463352142678080706045649841565677813637205416260904105801826612342879291955095167590766311759787332028421286627258453815274917220938734380432075458859883038107188962896271789522365236449480250733200238567281594524606971255475243432679910148470180306619226715646187623656765389737692764850789626354795253898748378342458223926631627430492488780149013640860228733491021266014743327838743739805507696223631167604007942535862873991075590511536105308447749170363048456374185907688512458555623997722536116897322364397103042490198461927407436989194105975953845614229533596756491472498036863232490093223656642062216064437809840103004439784304783333285868965049381878262450952168157370217089977821801451676910673886665328816797572579770072775325552956764237884724215333064880721573272972533139884527335790421993486026357479703750021677869490169832481698703124196338796847432791575422016173467719466146327438343025784952308300886164608552664748725511945762218394847942164444918468205649639009657760451013480414743141054932266408801026853459482788492844585107251242687928783396905095832324962536815954796923093938649098179940683553779077930203730479251920054908238192039768178068083500507953217022342627394376352543132279521526399970680959499802419403554487800265020634127107514527370461539308239221459294190409134229734778076731910903298193983952391309027392648485583320293746413757117689704292573527773799987130099140849861494051150708317448299512189189628756717507043057577591181719631505261426230957074249989192340246434155828672316265123197282012327034927413193122405905708395867385181024014809606749823609598881328590973570517560355823859765946383970959038825435385078188252586845341755887879075500484819813227165855834197899389541180373184587837582576554885270499636406813820402202988000526130403673502733382685432218978958095924138666239992095367104703268832586504741465641646977093640141105835860586777458071327708012464908863623021987991788159764460441175185550940094392984387061971546368245376157978053688398556527561363499884691320212368505774018977285335681154651783456838373000503241368195267167629329079481605413466818545827489070422643366931630693426748068256494714539379575945522132468137108367394659400295595671635677554228046748523128122839731036546722670519196819279735555583558336967684481069179439799880386147988237794967023003098825017566623464377567265415706401774422624500608720297936775652908102667444809638031191472714691640149193932771179347524316470206567459859966348105554414762471715174404079252131836789132605618533906929042510410997902041631779671889048706014749068489791393376278581931870234114551887147970106783331575213826202146081560148787417225684371577759761792439223037814126843128836763404258052276722472915319260396767932520032816099309191847051554553011864600304590035772870686519380862085028452293235047437096012783677985245439092981278624807698446526881444067064345915888432999309958484598949301437016438299941032438787306411076776646952421795213822237939919748135414836980780501327187182822489110835056472633171570819651228787301435631591695315928855899602017251639294206750779013917923019821515174752316425135888324016942545161708441159834079506235134703887097089387494597753631655861112122811407748897771017315067594202083697593505536846772927898576622364777161308783939698371517512772065161341970376938159548813804020789973675651780514945901854657763904072474279719641668697323779271627984481853634280379927441980299560125406058783808595485437787041307095556265324742079586165120527402854207511252096852348280198072239711751754950698659288109270844597929907288397335498932513166144484099307979044797700625203562499900597433113117260453353010420858928914523135518048622954024892021085478670822992352622220231896698546098828426582841964724595734635866931324878277090645215597390469468717896739740810417478453858303280103965485031772975200166566834956647177752781390932438442919946379373030384026340579838170125559075416208505833835135900882160266515090850241080883651073619346656762450683800682767643458340069265999921090916553129871310981258914757162887841825809813009285404525436446255685086526909168301687036734144817849946159943707921189308919345666614004278716410669288442905825014757563938444567454030753924229609979359617163388412179553823168698187834933066989838327563626013190864212283239587797827661897372842950814654058090422213512415495320450594051207315857244179804804730850343214100945325742240967447037946111112314812857957861589612998291112849376456689857761350993507851920866376388692384134541692527932552703605379343607437369510285955928452268161683903853975283203049069298328413718357362343794103450840720737697560213028396803851476578210230271935350288670610789357637742931915719280756247072471093334423037213573015069886000938257926882799007509074263647732354726195447243969869022534906549027994621537735815902009414029467127237423947866260635827014948806187752648259477336986066500860075032666027750263575417525505077129780801972518600105066840882617709941384008815871214647091747144919115399908567132747504904079294418609373123138512710098918357985014591605632335511368693146513164317244040143263394377274977076087795200647575778626068119150726824249508870468794832536094124055691150576042353456890496134128477632620721545738927531050031995673118652798241951059640011712655896705479628833982290792757048231129071960573351933957479290484930345219111175985248655212828014709780883532822815216376910793996553332824396805762151175002569818476350813025519007575898876183613476854250215703933978917136178795788771941327163232183349686978726595962384928142278600977528810216246159010737983413313152314097886587835110134184987654735258183841790695652087346805285890699775531011061211952927863680944543815148260358025344037489564750030210708814542301233366717374311162165163219163024939124388190665786593304477685825740271587870057526730882853792491666529161726089532243775388879514854287377873592566647720890363991665163450910743560458658302546979559493329828649000097951419826772715248823823919859011788360315555643657405045461338812038681002854143148605264531698862321482004236254161373900061662650082507066296557070696460439395262147727916201819100389374736460923456461259901031279327720831741621180437754381900132341163520557478393888358741864777673942015454799999209423622782568388118143828254576959640991011647369788586780703462218606242426754047177656570290641927736277640363735209286142673958416724635492672876479022778389843393057179939982324779304449163092548375874201026415527368264860021130329032065062293163482741878712786523391742553057407391980631292738642108047020074332959688800618041635947193560956189252412648208890920972402236332791174165080329000918672585641921911293802250871965010831204502949343398357722936014839679322475593484493882669464974507042853648111451368631137787223271640648031766250828496201315471197544887748437376441741490457068429601011789088101932727283538864325946492635138709096968811743423279328237050354845888634000330315216454144302056114855997873359628474029219073662375143990395406825299642404769041579576429169747621513345769394919121013011526464061157467067089322444761987668686630119060826070074975361891525603750764628636400499555835454075322838347193584721521800583722459678873432672075533280912871978160767193148557604544863153665749429352934924899336934411937676662522692958120705517153639891781189270590894461387285945087633560604121761479208319713311423048677960422484051830660059508741384092724232886317394642098471504904059648739302926170392187119394766721394380102835186256809051706722822502126737449837120870196184315551491406246165925583183361627978810678334720314320826210687932606610850686768904844826497512424865459579563587501436110119952941861292982888865746111642970026508307451635405642371151586259397198139324643473197740619860196962778593688171524774271123287794066283663460983666137853828559052687691586223297883800251243515699227374762578103961750680587414718077912808199827241128332106635776883976104835260055223357538022719083271596114225115316503909353791989210240707457752212580071995152758100247481257135371319269877777047941456722051173005931740035434012418785106056158940714459947780133245102318299230088993070278900354641560974123047775665334532011042377475987090276004440162260929325324571708947881663649530243588736252021878418139178044480778858037072080427330960789299815247281816579423632286630625496911768360045667593054260553677831798094662127737330237920256914731156210669257525237883230966251867801612344016611737283192842788549899458547446154901240483886530318984115703490483997502994205372302933593754809210762149353752492358584148090181314506712376361622461679132056263832560166874684824127247749369618498651819230255882454467236017487206649869044824307538212469050549006058313787673963543293009935644620547321719430180896693209921387213884200545391948848816847977487369179731821589872506762126066945326964694781714495887563349993455272401153428013536982369033498400513814374305324075808625443278786537022378077805844794043664482629213512460112691330709014319195914933631534766341767791526791723006654939098854095411179813349565800761041716251087366470532088158649763387217604456788154545620709855007733341517156285618302029732810238168906759513145483405685024161498385548477227298889366878902197083833479665406751589446400231760083079731532798741028072317154442342577689715155948530616965211607071107187288637984655741719122014354862842907525953352428992264750468542865403129114917261948686282902026379666969498893436196549901139897221835509111449766589863791092474481612808057273258878902356964596017846782357772276149126883446072880800658822930576128223986844734148784501986132390429315331385955467433615272035335838490079925378867704439391284279273521770370090865382235949133617277293889337304040628575597568138964372178815337221088825402940501398204254050010061163803887860542201369846982270224343885992474734348179630882494503625301833335341314305047819346321762353570757178573177821770105798773325294399788661112446332289978468552719007186284772233885341873972087900732801045349254026991979273579602904802024610540540655066869665901311898454149766096144022685431029597014684343686318266636426706988609611938410114660985730941923133273437132114899861368440678889419597289946889993822003339182392443888004899641148357212277587022777371901712288248569315560574613068451656857032791696946146053673061006043741235677781372204509437843367723676979802816481315428258581263078338426874439251202559492351124606753744882860332512767643630270499897756874795655203412992289102578083157042414539737773196525446512611622882044490657378224899093875272527599116618736020517851249773510316701443469399376241843119098119952166401401086112093217133695474737828032976110359804340994231207915749518754695138163073371832134912451823975010081049385088333682133152307987687794845068814077047424625669351163577128573818608124190509696697161532611724384383387145331393034403124137772615938335004185816891113866065135213994464715588134270702166631368477786080987621172453779206799411826096314785812032912428444083066789303054454490557123650658475365861628460764256622521819082845399988592359607278916636705745559494447035067284471535958465581398251026579378701170260456427848417013741539594097234683917731480849622640482186099192516043377343915837595605693686972837639736061476821893387723686870988325801613215249789762304393081323815407375087131196274759327228321101452173704107963291235061217683276940152830935425771287864480012400519600324459485536578201437309716940653929344051940449048276704078798542177404333370996962113510187906564061251398185120091870248309488875416828628803186620762092556561280018683940962745549427053981108461658341030092134149788692960634919476819954945554496956432354324852183628665526642557703015075510370659442515790071728162122656632096729194769080979742231271388408150736207781945079177819225102559991072059817115096419332696363457708182499154295130091003830603463891189583498737665441637279373275232773610166467221657679894605372556810359099606925206645567839999748923431800503124743892418729726398215827428753181683965230590067848664237742118326148953243863886035612996973420840313530380989054732899686003989907215645249503465304828047213238903695570473929938192338760273369494484911372146235780976803945478671860855481727349149334037231291703275378566354380363960666210809089276840987398101641478939141938130710375355808065718502184388245773528439406406823988858831628602053764895442737640741627222399123489339853859342611049894735484924496860400764288985401138556027933390299305141245059661731754424738457694568094518885414623083289818795622412130464388758763234129201979586175279402497892847079870528257053055322086299931079594487474587703555804221885885208387522304230923110631500738122732153774597715207170288436068839593454774328373131250385822459845271482524336926751604115350725434941240665932574344199699733563780089961583519005814105618799519815707314116895863830441441656498411525187434450063906278011203728694187949685631210817667559593112171625914621295367831321522000815697268693377392755429953215752436011721318922224640606483683646301166418339876551349209254369337664545843187765700058940525277988609153451091821942800405424465165580069013217386936045841334470021199496670684231156317800812202966660661475193384057776663856458607625247213167246657433667454342522659192198072615242275926569396613866445407114451366649021736997073055626295055831789077716448806118878426889199001830833270752910916743476933894710061126274884577314654291059464710446380884526646101392691779349577702769742464086877800415336463419336026943822917236509367368351896146894578524735922401616616321073722600311292634221769202771518026949326730394298049268776943363518079659096759712086867315877422651043233325612213911839348248454956089374230923494189159851607579106914253395165286096442242510184798393434422400875746973496144694546453966899015548175936413129758547699736725467995427340123738833176794246007902872831785498508185707604728721450518818218814747728891330214104266969467750551829275672133760258761818989424953772387790544121470703919475644634863776846828574762775857086438039494032863062908870206928300764841175608388147071497646281663862961118148672301847428311448131800695082432440141898279094540768211123916242364603668664139578349259740129090557303642894314298014671004533989949102026432389275239134192654639584003221063649561259506030681666775742568282838569146616929518110781272250333921871769056037786378761239031201347258314339842008692232259537792597407699834391400630899627927934120906812456880161773843171664607666958739661018912963474804798933808541121499998198018364655891996196974391839687854243769021150236901187103279423791543024423545992612977156905992886698168102613831778723718755115984423323924378582530189338398430874657411039661486530703744714046889120516070374861828661351659282182260931653302371617583838484824793300576406306231436746836786136406196970490517284607873227869086822047895241445870725116830006951052328446648257818360951549261822397383703328403779921581994601984240041199540039548838911556974961392422438727330489356410476561546240975740973958915967112556732593226774685368281819701562110017281578165895997384142555674618325923653235220496844459751585058754448137357544032176547516601136458360853286257744178314765942705646021163707775152138124572966652730568918279972781608651697892724982260608437282955599926413350683266225207793348259686950743323846414800010638060927633875151134595962719101250618454386324845288876154855392142804776446587151601952830555932815558003644733271993028500399651125920371745745960752106060050876893733581857350176817914638613693118130792099065741084349226122732940784556489651682141605050144648231133280639783533649827695225236944493520130504608004947481601055348457207966398025139090472386464928865276319961361158302665756129969453232809615281532312795702463258157610436216393235733762928399882070385184758292827063907884400657030650311653269694276164447290504041010790232949922446648819925170297855968333899000544237479843655197093945659926510077528871022469592675802705789577883130496438559075557096069743654911743722164054412218844377962074012377068712917165566706497461581022934059622697250630267194874128811991753267722314495176247377922823424445132014924651466667572943964677565743787660295949733404237334927147097433610288170786719190339706497376524972225586833327846306004564744515079411632448075352246761318195281172240159728920995299517649412650721942283501744404683584378097487584036121755385672255922683786775705068371324110565705694749163797582896101443010211044999903051974928000224692102547484176335555701148759295330907218550487884293747096281461897302144913127131467550985353039009843481414279716015896427368404541167397816099146812299152702839209856451211277915727300311836647044597942064521013607267691839366276623781716993233721812209961201702249236665113208138233916046415874281504270652458603282432834703557835898396320731554130230423858202567062218105785965151543927364263367459076716175417185960759147958902380495061127471287468876791062490801888784189974298073812263371990289223622748905409212443147351978273676027616028251506351153826246153736501704132611472768319233480345016268649224104152222796480476812847421570933186637541775833615023168820966968484766067805088876449145777515285930487702095872889483543566133319614601101706265500048135957561141522128595071478813066548981912524164859376587367029308963225156494086348774642557647334877905973374126935827383825577762157440484996676642482142121305418608212498522525480326186214395252943872768270066429611348238820969410889404703711693745455157720049487093666371223304753152939236674964408589081725763940516412860994168472463179214530450275446090884127843510713926590901521878415990472101087422963047946334325906439233452011540719980173717628758275134636208293066984637159347804115010580744534162348780601619317661504853745672275183584574853900166263004419367157818294027250458169629855541189518183119637904214199147898827750758238071924668038301720330414298798219990677860248674048120866513740175325552163101053210486626493831210834611797502882296040051029861675525236077856692447232399260656219979384772346149746221874975941155605576037692376160370947511791394823543700813069861846562895845226967117633234267564579360717862300739200312123159573902132099925512408104487077922731284272592754098862552742468953179479812173523394169544625946197814295586316564757679079571110453002372967032940896492573548108890630143065344220303996116860800411306245007421461382237252926353275605595755564090203403490398544142726367201173982783020949601311525270948712850141023092305638959802851093054338871019736685658639449123895445369064206438356875350094904819745271305474996179094042735524596552994387930596751754580355458133853559569566475047961492525137016183158202960813585445080388334172097883223354504747283810405014569913102077960067284331429478755303900336769154377216556314815235481260871463171078536560885248490623839091768529672721178431804067964470234591847478652609653192346394250451688819480780467520180789282496064030608933452634555224419252076783853530992050803901410940788418724631105423447987791781287204695558236003794410289844226084165716130879520450837211517914618860487764868423437564569314853891821960964098521159363881687911365837705469500115287841113859432213409446278975458230367362968806037840314616714147397541178695068397631333556235990961933898533691635814895336768760420578654550168718567561877497241642672986532529582055033744375793711201329931841339776680640455810846130746202162414647499473309422483740722566675653898467227422557059443170217037553513982502003046109895077080457444557765999436395456130684105957807179531397672339338452967012768526903746226122767359494969867593564283898434531258012623566360216569058241690355636609183108243671833097183312025133653327379744388385932370910498657993898926553816408228950243698555758079920318416919826638108706655800371958879442980762498761037619888653452456295384310728334408323640019789700101254597513913425503901538290635074831939324129505667377477505383100271346255197388863405358334540231155753376882093569722885168267847663201284421456303705941347265813949316837432245965599702486811553120399067974907809491769473333591636459188015017867428915358088910010645670572196333393851993542619042651097124613069902761694639393851467043493968883862612208118920219494353162782399621618216422181387403476540952399023601132127850427727843655911934231026998892803634000819176264988710527366075138141899714045512223211355613509790069250072750993127197258147765902292053248499420806532707945064704090386387703752767869316336692058360662274801182246386302814075025618569786336269609506312550447475468520416670772173804114051657675107583623454311259617866267586392887781984551627845497897550155130428811611813554004073444530089564111010473966677736810996482853560438089834643174562356798660414141451574716455288694077225320921169196790240636445925135368653909975832552532006997728522404397459451422904343004802057913293794686757445880032630501428013137102183904177681097681720769006743332550443061210383051675942434844760540449699278911640308622692757601888572994469101977587572485526596698763096701822926207478263219406074343461260635368651911011881060659813864597709328978894742135837290829062142069752106330643987627983550351832047082295762878596160754445283340502401104325753841730412567874808926637292622924826081548410069818188763240763387548485397391550295204768004326652209150361950483206260770605871808403591425567553845203264505867022562301441360866655239419600170815059228342184287151469044742554330729842566485226564515303681992302834390955223865955815529071826921255839202269545484698343192157877414054626514449968148508745987899758092075540800558324334683300432442355168568543729449311075737954459576088475161953647626791188720568520596131563419090241546702556144589085038573875886979413607548252445770226169083928648198923942175270327364195094641947878768963453263137551922331396491577820105306294798604365103762928957056464977799196639745270279253399232392386650125327574270197116533028701591607400026831082437645126931394313089383199680790064135068483321048001947037558861601248441943279856255637282898987014384788417273005636620359357694344751497297275860176813880960334725370927811513582737153813255182016507054487576688954261018327600509473172337161815333056348341827047129158510410205024900276613305290491766564735900574390724476604918417269631197586637998929246340352130501664238619006404886986803238915182428364757375493819418102677201204375242907987372463384360695974384283710750270111673252793122548514100695696691020860514639482960047328034744268132122793247640472710352046340695636528514152820019469519085916185126097476241364666214404944583521163718598128910846539763239021991213253598493238730460581884618279352043564282011402163136338676902270047291633532252044996530280435726278451882193386499189368513423195819656335280985761949545628338804731354439742178733224817085972497867249926254280401147435188321022512308599726804314101944570066715078914898546784225953714168280907645216749302294893712483070705237612740887916827313958674911162659764297160101263043815138281769653888367502062936322250317464947034152666493937760530390365821930247855045865416135710000512663516668939157192815956134276197378473996637273357961270079603298528287500033995140609919050686778896956633270625124741681810318754387562410503639308709654965315661217487623598227417338280852607185280016741910573929323853948013247595526362850797417085293459350774372020379261656567953206511423523484853230654269242392371151853576025678446529282475185906910396673076408202594346059985062062637458191923338860487719372770180520696043031035605529439779047887912767845537163163798341056191608050531780229479666333006542990690193272622428353041883467227552009729769543251515853782686297624909659215724337677612137509780896813147012163198887136941004673114001510048645282076365787925717333420918518571450825864870333929677054894381800605843837156378760923815518127958233483364959745780515009137230505042687824569847365745756519909004091787095385723215008847983150567819756426055374054425442003213036667736278666692405096940840472761925232890098104789888429104732618414887565295981669592949011824942188471643065216681561023197583926981552267415963668135073057011837237246130850718095917503080040642894214411217023011435259722741459051858687355860248093007891010900693083872713121891255295624023912711898084973635932687869106273760519343152279261155499740151007031292345322753519610241624064920392807733451617588727990139592567938567953973756151202281422744577643347080170581929892002411903385402382852310244441373836650406083322293609605068856060451448159898133628094269023662794384314781027472999788735159782841200930224370314367775375268116212081839478213975365995502387229068364558151162691363356463309895331998291214514754373088713383177329937146345745735698975871101933514664644319769337742985562044263007296291073678027002496003757837869712198912436082757556102880761510961914431332192436458606963913376879520658328831640989296035176120162225640810059446665718911275087827278397672198342133944778507693526635688528309509330634590180317037539450839347055032123197411116359095768427818535274951862166051727612017883730136569479358286419049164291126686228106714366383001007322394039143053653715875521576576005401869981097282959981675584815688245591446047158653377509200085022896927834763490926707891391945750054564819474671739694176164363153107141092988478307339345106639322127601013154835734468020921118792246987605896131228160820009031322607663044644992579185512357185961713123611409431861221571091917346202599569087632422496614978908897959921694242232568711166028827599889458541170403511616610442120882989274343909544791358199509854753760711963591569270217275776233906441139946012320997158884012940604416387008235342137043490191377016756947429652099012150437114537781345379761539913080030477456944944334111202139017951578897301404003800233567580370713916529233816750844494534038658156819249123116583847649162776258990600652281862290984452219108828891422180035417016691278628567199950182551570989665365626709351865567476320466497932706388745255304354056392287464689462838032948535084191402389954000249124387523713526110307454318633725561275045412243816241840266556547592204508764381355263651833711965336984180391476962071042385044106488615339606370381801184917026980021047299987047809373867976163908288538262645052102527342294744563506886443367516814675761116653867246387983633348107487737461799124161432452562033495471743496705836338661370453463616045454753642155354212350028721536936474040681021291838060079695444141457544729442276321303042728551474689776679903350224224550234862645021081153067447914347448230392256604099483578196062929296140722472796165556902561098746174587378564308359190163996603219418983767204529756661539373054844113180703301516660920272841002051315168362273167579385733431654019690508995098205569463567977072862639697430720654807239352966266310555497610215548710496260917219732832149249382357495674192288413224983329776568037922719353695401263228287570916359644547313859768882883642988382383077365844083637378286520765950345947375627522796889395000667617333308942010269912762983488226488907630758287221267705363811615686648642013895252176403662594118105531336213112641774948663342665607985519639881082479834330182735635955070687056168240125078845868751365737998160877136830148121191037483928569596859569503673168905988142367132051215559616996276508041651355197922025152711101444416692877842858816221235155273962994061589506867783685908327040919462113999657794643727191095788223207015586579921799407577153105275515480895025776538710841763235312965572651263543487974057299213303078651513310164702897510865524187929320593591886608267296915643249815582937376861499398168417721012771631780866590701933987373389435305142491171201430216844569285162704610375822809325824543528888496206192097022930686194495106383942440061896832580166530699963946094351512919734229081899858982180062082402840861403051240525148872017258668192855649764689348513007352346933890087806243858782866028795016708046153527172651030640470343627892398600605352705259583307191123436996090345850812474574915168526621457619562073358397072787203985922667713835547109971863503746536773396639009016919957951121257369568959968950969220173095640654696458142680462692361080600903323870426530232137930325589542545103964533011103767379391165785494224661194799081257023517479087134650214698432593966851516871870308999930650222871203746381124717360342561743986101166341156469310805370918516221736155587228091479396193027715147281308525404028985666112484513764464278843825410083633593441660574384516276755274818504715018468290063432320172078590965175413886264833892920083390117754532486962941921736562229869810893720175089443521981363243826954418411035630761100768437307685422896029812336538511955013382595256496562105671054498438097626628769267732084949086505124244207479930599883420049342834909481102035913031833766429213280105688185162141798546013750863235716119447123323394105867468701350090140464347844624678097380439369230854101261890034813302981568641315306805478168672187670943137876856577777866893271474429160370835841734193330162419581520036814470579422382156821055535817022729125546504371968586792840533350290246058372862130573483194380657713754662212385552770853072311564869968855173546164156914682890972501317750852558477903593987145226656395065466282549609299239648613739428161840243171752439831310176817190343133844720321531873544106889803273994512824842092224752919681539253440879202833961083437649208849815841862266919978634370890091198006910332340141278503452844979017519640870569344539215292449047420382407290847606067312197572563478606933482864214743851151981982651718912476776012960083849506833154472897192955119822066494474106365596557268487183488451664946549747340597017479061470539141977891871404661319543501569600322116311769121307015417399125535178666215537440498045668284458901707034326070649308547257444678095025093789057702133842869562204746804912289273815076346157560989778275320754240747469472237723034806751927584586690071533743593958381186666553040852957546861145087364192393828720052214250562290763107613873398230757050461188486125389105638211658631236365908742258938921166181155879456703413975936516268036185671338112870669123819642098641644121825557044264886610010043102047107904277449857246810484554521581128156418621076810784756254479320970702767408097034590796297737264028557951005730244734193562997976710486882811049658800908627136460152296860357133522818156766233150241595694668916899993688894066735883911425618205883612223490380319294665527448626066623581223682501175129122030155555830531868557517040196947594034861464721325770924799087683563129559314997367700349135773158838430838630568049573432928648301871995455561064287569267320079065324787655102997685295796929780738367799131671999541781867729040808436145334735042571368197737820693627518361649571684945992812433715135119921388943803915771398275651226124274727659741310744175482514109352075107678613325952492049980149632644652547682621342443215991809141090684126920920343602540795114041807792197493325077922351955265387770812584187384724626737224582378788150752395174232484861682393740482550491189171479386867112483868243187836060929619140846365770197405628131143482617969931116747147217101653013853235273868757047731644777589293537705842846839468941990725305449522712503022303349080695536640169349698408928584281096705548645101357902293072454159506457816551203353664425822020068576033177974128837838956829095096199196043038320703779561815637840541456070633083128879850824020233475942486934991247085337251366222932093140278559447046298465205373637968676739142494310602983370655124547738614506579618450410558266084162258636643079019071077923778056560995552979054696907384630921236259609050302428462127320275700345724550805202545990814560312259298980335894112754619090309987231124300870554142722928065006164173588876537436730166948781094552547907125344235483448648624329221178585177211148655969795844175032064051495170875660923666367621231515623060500970228673966697032843972212850314792134935883734627557093132197039020438544742521502034063247452571434156488758142960527513273839340247583085264750260273957309502301276287959642118151537773943406631487039224292212357822743921805741767200891208873491820277449718416328950855768379557168040913373735201734617519168291399492858595501277365997658866362112764584178602179871582488753738905700335786014835447429046490700738427179678970366747554438609905789999657157328845048996234673926374976713691853624514203356588336019780593180270007400274553905942862452598802832771100285757562761941427864388015523120170352061457144899910764347193434672578794976598571963169837726553082475006842923603158628447106664758626662724558478270462688751305017961763096463922435451740989046561939425018957686625574833787739642477963766053468036933548246694914394025387300032221827419818924642169660181661126910797895989917743328400195635226619710306647886380230055505500542976900497630378597495505739969969197938132780558630040881639240096109445916891740190401481969000819792063119326199822163410752856950430959456703600688556655981078313375750356374882504688026305379676032310286656955705698806712664352620711044025801960033331421577038641797277128225083875052987702135686713222138703474713186610730152272987692077227020139350976954097840437702209253704120353959663512286520827234969829315244603796233107918410231364285444636710384733814401219937834891528237935669445662880986562994652362504401289490360282573060170430950730703238970032200471883103737383139429347426302224457967912246856205528266841815611810474804456234007001592935844061760328967758368612242982580583437502457078444043554199997967724985157766295712302004526562307278600883586241814006501530653115906986352192196279369374145361508590282937956904175695378604157809612080367474697349747086743661958464076741044573279648371107823265307458523139457624013489034027533443473735305639782902003660155265698261049364905190522759064661321181643317412003304075877567744417681448541615653889700660932794368844213610065113014879858789256161049802477020858700667899076376330042344690678722837309093579323124691946178811733972886924655011525989310196917965358465658547559394742719239106405632396045391725668015623275968731307480546055253796069278136532164813752774352336299989139789036547653312409606847976704361461836866924132032818333688715478006430129814382181444613262424059836557416519224218492432011500051556487257533626771048171096692740194049845279985694907309919851019369843231418103546146546093739695913145175099146142039258937792620918212631266324186797274143536212992039950119200627128317948695869779584972835862847903268277825272053443991484283645202255633431329156349953533089224808053481786156681337507194401887814334867498535963952355965530779137533908898469124046470804337247755455538110124119213061996697712065397884053549839109528823346914574354207298379234968708526498729794055734472603903212528169811615346447568876673605350583939744065157336362356500958981699964607357942824933384603776255646366909900587532124223925373905517760556693964254124170396144012975341122567542612389955169862097411914475261890059902277913530434295065372209007394159299790577091955268411564352090960823585605280086729717015092810987882598338408369013859055972927217735483644371730236673955777173706880098005115373422377322762769082510820066223453502805213811648793020300024575444147928652505032717039483508531944245954528131971547014280211916514860759720192001947201378084985961632204976980652268773009662728815446018503081244106613497000430629315936166705043006839402998208082316892350968325359261259263015319949414097892442544911058574042958062685045772422859713515080943043333530793160458617450170742282705194400172944035352180168757254912225559713501688978349989844894315775162178838425833115310065620469399039954662396860010601182879123389695493855456406073182609589696181810173881152034727285979909723065342872261871949002357540670746170196724142493436301538700128048473503202361660514289630050248586084021581684746018644696268087171739640558630515846813803945616659356800593839856672075958772699330662397527048629180173398916424270939490818356664470648395511546461795283140174852328793427116551340091299723094055819252904011729312427186098725098887863875229213147211291184625873071356905664883187993345263516054952708331962654002533213144658576761554185353840230728550233709907154961877612245493179703736020625166644367919006371241242592657780517792876640013481055364336055473020368884932259580846507496529105909010078568879683755338629583997200766545893056753762466071134616803300428251970118805020992825945348259776798994076060105574880882523696536716326039284567655543447072086127668527490474907727712502136293538821527831393035822166278382007895787031150770622668383854199936951329183594070904104289928375639095818262693715436961251319950868938676855636051603123827597015236458705404950349359992080492235138342461956881569767319823968508959632932558282206002859832937940850651054200731126960176115982307018948042973304038776787614182547519515423647832331963334830231318361390179466590483272316851396579358940503094189803882163374490965274108767918715595904258293185752901310030008035034830453056043147954254298742569290845300182564102912965591120898646649832597145933268908634704343934663368931133085890052001929250450618448889880879265648592543308645844582956189919689783258147529246551910507448845022206975956680356356104075362751714493068011399394410818599081697962735459772790824745097025710713235986889954079294323445663636231684771206637784878374882885220067132401409559397507833476508832452262019094147383744772244905460434886234625204793426091938684036700053708762939694845184906750026873925139265951475353148419862455745961194310478091503541117448229922321068815520787263153731464844724061931174292324306496153717297590568625158705519141515243050405985643805934784272611924264883270832836267418917267379986742648997177419885267251323111486993592213560047952348023878463517648715782690029570069630667615197113732477860721412341206595660151111327094475081034717815296450272903729326540484418332000742169635826953824726680976963427854887466405695818783089175060857636781190804505316732187708600625047575612339735165814839631051258179557672196295105094057232912258930882869552859914297935906941264779298090108442892842724363843965964613671288654624647170341124649958226637819276815035336822989338016169367512763036343201824858546491370944692454849689293227592537831845842744256504532197931404880500184164217350359353428517546921721485492423247081421304390753787758187595405833072708953957757929118115742846525520849858142038035805905188605638248204908400296483976776146692930905562191838685623267196445409065754605515494290288161101789899586874126837631314504431774270529444052872441293771059218846202388264168531229313787810745885003751502887907934812424332227333295066973267306735482135355089564191885370386007106653273361283782486740219271944248350921795207881979020260253188308038976332260604397113778481633012015519763501310699345252118162655395057797477979380441542620537175235394347486028243134647545003684448318042741975308302968572573266644497883835957177954383490522670466515028321481903726586039242337284176867707689369818761380569748404378259307367224485378361865484548311685837316959902082298397912152567696809548109867851020006820443565443038743206322152645783420833523070011615855975685939296333833975774443690637497538074884394973385131030026197730261041092092733739696606904008234419583009531113318147899427971573693737191227795965671766508873591352236772439145456467390883225768930254390646948774419781491620159982705577525554633503835761364057975470963006818235542713105134096106420892331913604724901289295019579054602366731027758594754982861171141552497654054009671516607557781331552303484993631572712614490504217451798855542137520291340098094894989272220667052712404850840676869655172938940410121480098536248273985334389451845095736978337095252014254368892074068005286046646741613864517826810458890211039772367071452098270136148112928613534214694143805391446718315503444818839715732991055511181332127969494902882454391057274730244183259032752735119859456109538664439046298597765631516857563091149458583306562650531285583030264683312230723211111781370252595171596731518820299707489881744682456364980846944659527147575350776987416111409014227912279496412827636832251695308146980166152213611576334018920330360459174624043870115692334411197479135643863140034518464397672424499130636479979791850857562397124794043895986943844067342072019183335059852601537658937966902510218433935000544178218590787268166468641407824467431716680114964971272388716870502165655542068910544532534883748539947642574208169027108213287928809938433291250320539983991186526843132505348081752004658804150425997063590574275526402291699952272126210818751722849272236913478914925209073993117759757503974747706095760381689750805592929480587871305718803935224088365254912366707566814946898478518422289689471309581000796234279535457076213273226170814767544060641948608854353998429564533517725240310392983494006286091597007418205222318513015117594714111541467687192509961593040237909547057595868474234702119729318639020726013594690558618628754699330105379927015776882452640892276873091663293608562424570046620700251590516939119086947642627294101881880341017252844601333451171956723076891826226713356318638263386042778408500180057766994232775321698426446424205209634312412196714193428493921555274836753154623410727236726467355070375307952131064011408742478633733372841088789695243821128145473029810878231632689366657848313899322870403651226340896399437248327132855987308314072803556153492359578255039210946103558549690476660029699080373435872771855501622869721922252425540654608520451361178684025529782100522209144675583233781687250353597114545940496391235513324359062258777340534488162639361376211882386840367759641087683121170835993989767307286268569136340488483878094641374744618966149807412902075648206362939955447498222337410170254406702468187652464760309351312967699889792454991272586283851002179640556313547713107419042929707872984304587474543221463290452198517047326813889616908579812771227703318893930255108468270618820516003035472734975101945654638192147074990819618919437419822584239660035184631824151991911488120258038455807425402001865427458320951452997040380067504332137280489971575979801180039313822918229579929258688675905624585364604286985289234573452313729629072563025725188022954635238206876087664245258432722500149421829570501387248060851774452185395115749815655529339116551953511776749526278248354917323787457066755038913697993762186869831487348463247177497583757678492304332175537668067538208820553116813169191673856440927188734716619892311861927862989781789793178616991549663390415131495423889310349990225814549978180846918623671154082180902585790218098259223376188153830079742826602684229444618629369749982995054317468173965753644834656882658203902821448357517883559125258262095267295866718982182632015947684065729119779621760071853074789019149605468920913236333694841296256722670650768505222223098737501378733032095808942447546947930355607036747846070606741743232866282745045815256685895400938452002456175806469878267731209093703746574312002185113438627344446054847447769339269683279571362446877888491003225616464253686762860409510738759814703810749519163528427926034139233167247275028736828544895015492260810635499168193974526773863793038307356407661340587499677550241251240629219664748523467146423401482416629799528615849256579797937460817414323636345593669954075614194691440093034288840154995518436245734026376192749043989701769375740376587275993993752552516785824651882178233837977908641839276227148553205271606875296106725443451478222720711269125583419053269825141321463456700787705375645047452267235050193305960902590627833745883435156778199791511595768043126401326820343567869174929027901394767429774887186370041338644258486530845874842917053705123360787978751934295528717021890358452949971502458688973078235246852910564850538534282063359687318894928985704202530625165560729435431280505851755034502033138757358830650163495995630479690639000362231072461631316076446987510164134142370511501411834005285049984650433021079046065339373445844053514102773707486854787571283327787098006966352758471662812981681726572669210257362439948527623032840273069807533245300457645160342736124211410940144300006907951354380194716518334788097233649266260619192064488213931082820941692899498698225970798690830615177133290942997158280256289015342737597113006525605574959372057873522634756989857307506663241980313075217147678278904992656321895293069961087809923493774752274206779568593653078327939678356214537429584553684213978682963819210325343594832351152641257690033492366969703694507231815232610663113091199413797897843541187461205589218651406963431344972468487515159295337087304987035884243908649403658091203955035319982158102388026048528591849264177492189582559525769456743820054677974829069266925464399339247510260175806773165499045840710334482740040194088105540759563612847784988076664855407336704388110616135737351272742499367822037269968509416550893849668217298794628983424429322367058694220503327931906470833917237218942135933249422785748362927483191994570685549154628487663351961245673521425525359117176904929617814810771881573766961827405452408951390009737343685765395653508404250606240075031024031958099002494678705269621924760554095266721992275514998538905821733201785411995777021386191007876622427771832956999210121748363949574733477459922477112994110679046511105558620386010609972767313262938024392914613548966438840577403537500095656255140837857561357536736201973121401511558916909703244982510898159518121617711667090190524040902946030381440723809551853618659944365715403659660432421930451964520899198499375606961584410155621583788483998053494101988594336361961992008553531809509238613744870289249544614340500373015328217224891529040228274588942987560435119073542307241292773865884907732224355302583306001768874600219618979159909088317706674012187282206727574731917146453153773597949568975966614806139987718949268260724194044263439727383797093408168413240436982831442731282706902515415641216942171396844407747398830798864945177640928382442777489194680051207473651171437470561063758501866503505305956531040701470824362846852131878293213216656007912984839066792994717685930819754860178116124980563668120078642796728972624568277439126095523005637037174742996731116605651093215046526211301366873057567500377033894565408907104450161135601181494630972702852838292926676816345275662844001858941580778743218980523045281217907609441574066936098440385802179787084308568840022576515532546122337440868594173277093243142499669984468419870836168559761316482196778370711912204685828613398856104136961917859571373462638690855204317246317643730547291331522779180043609727719136793999313532627844962203114041217084882631486830729867388223231516189894128604271232829903247846715470077076861623449397411766135565805798050939326419120352359449901287706854535873741831391404814930497044028670167564041601304609959610005780646921800212758095862655077909421167983835612540630023472776996608435523610518078544377411755738610588428508147661046810585204570431144977439246194882054174536165452080553731143604330526484874933753635645848004827126667470348355079274334188497454926465411631980726914273896016751559398170977224102489116542396414169028060379208500962593427304159420115455489382825455969321360798041382381544830665420706908062865259235875022151247737958432369296355555875367045016199988406207659692341253934824299977761887149476657033754977421607090505394877279327794208937576143264486324941062764596782526554783059264247344150359146635401227498163722875343034185987042437814202308263477897176169976528700773676142832373530134699263312338706675721492000542071467769176152048405722445479596951960627841203519045906453899355065720438529443812543146512469675899177455062378267801142113452684175761115048217386378812625953524410715277612769930997380123695032770185158603717836478551472935888722158901139667425322853610706374001944967312941168243384030534446882448526708809304860187610778627066827934869846521947935382958141807249252115464462868955325132731102501838254787710252360306418964915061349043925219709581845210687321878913275046062642295785636053306770288908075102550823331987486304481812740070201511824930707777675758685282637124965973788978085828807182106443510178401080169963177519708753574223499258293441454503765300087440019948418225377526882142062888435856910838735562855459732821291267209695052268837450663558110036955949441300403110728203354670982870038969249481481554584555310290196205168840766545523474976064735909820034427684047469290530331142426211840201787898015286092347931104309407327369770782570895990069458116416899637514913993691004076699533828912697585533749159246071961870473388144896740917675438204299814072417241172414234470244207146903238137800931811568202325483052212902920774533561193649815344302327970424041765281447640907088599673352195646617984268060693196266845595985180533204518861271591366353680602862586283412612330735134100287303357763565299334693120810757065947743701693538673804980470901084573830713668842485325514882779521278230593006632618855581963027162945759716138591742335942159262309124302227452351490919826209792063180027051923971496671096291290456136856198505062203960013331577108298901853623743954406020177576533823506110721369172944039583002975460013455157244995560310765885350797184612744023498392817100136295994821826412555674146261130421624643442098281217158596850451269815589784078267201437787878275418457420991446525284411994841840048156883598317730550641308195978219775341505075590086994056968266557814266243318298018718068613187673759828131489004071691238666827275875125075098007479981330274533526228451625738963576873940019536821742216403310512692647732800901121915823311479205189850116333605535771688120928024519388744451913694097964642017181032616167446269186138587389052198736752732206349095312723594730393877099864879076079940545213958731764046140138986667750957189064763091938529171615839413339889701677420229192385832938050981825993281978822224422894473799143518900141841066714178967048763407730762813571082891613432779869324372380667068256830947295560771009027836831413723768327771623298588373426968204006210161123031174326937172964975161178005977176825549607822787636430470449274262527007290766068034037353326989126385359290041161760360817732227380020008910819146379155115440990167917669716409591940045368040156242953905342858992060597872208941566179134839925414878792784900720363149699168235611057725753934769280616582775973952031205884549904025599736277452690039546930427203230563966843770139824743205530378699192034800687904007162076462574865576135274284208007988301852289131531699773171555966742164366525532472345054657324279349148087514302118162214556657990589911936571149544114398147202513885050824652963777672275077933790625589700294627932682770527992421694000662655530053363700714926092153495116557264479229687826644479121418398316677702991415751186956060705776468735402569520173019103224108354189618867030111068655552910620708313050224957392992964096745339573718589170423760278357023405923683774071791415486057137499082883798096218279523148618413189606453055671105524861826187849642568812576816451516214230394654046320395869984050279960445926832380266501416125338689833246079006813092231655555198934116140969798067717403910331578325722034731200695521458004269392068867052160052889082123966233783658823646382871310241712225215069376402665521130604315002540780157345937372013233425792222444858188039115000263781594781267837241731215851075919126220814043635490725337431290865745001092388750411972882051296608621513684018318009479446316965404583830355584814303708562153057486601422756474388625491420148523868853065039974637781016169198846207582485374762113662430871483354821627161622156265039980825614883623951089994985309608013435573916864296379306124792452663470542081839442547732515813773244959454373075415916800842323553838777772040041835469192622760074749896509319514975928653737027685809094893447675950131664216437029568396432186726151432957896887675877087185489548241896305680467480211495637126423995405465992239801444875404667129870438018175052969650727744121054029121101736646405670082868304074804792479839851738338253817656084112778562150935721348992276746981891529129299550121695151996763964452584477087895329559087624398882857360031335063395936486732742002848971470794332508209489836627236705342385985510779574742207795908621064525047921772691179379783729414684180268874224967799385430736064358509942706855868369921820418714098919287139165965401040674691182415907229750112737003517622238354434573321280573352933049378937414745080988180769239635954272827382219029473458823198979788972528240100525596308906521413979688483170294663819698039906038611087974681621445489330154939190878385919228026954633839384042833574407800020947240571260581588773987616281037090804535284174868009993384561784169473284670920214299300787693963701984987423988502112569727751213966542425364470346222759262859135372836640446399026511478655761370783097362824044101113860225928501168631990436530824682791526494477465223284864276551630351320211192954515038645653436152100670564057947028426201063904364269056006180247569547670314407069398885650274813396755967526609356989052687471866695417560610597254170876495292646365228317412630073728051220456900229068228667911912858093119994450447848976812339733495135655966048242138732897028520075836794971364706437779487457341201402833591964602233521445129517760836968128979100362800855359568062582432990591652123742503994174318548899565192329100089867069143029424420736451488878743547102912498546298778335047760851540919157565135566903149893977556323379834625756203240022906111919581785336803284215515008821600018399076326464175914393985900611301782385102522953712635878978229433367989804892534988546615873373925089098258769142515708456767192968556028488701757663295424574507219266872300468348347382951648244961812731870549897450322175988908121386661269791177316746306089681862081054510635015538742218279018042337290851757098451534352423725160968993507895667115415829534709553688291860834675456443381597771030099914554429888284860523253025042286205525732189489284102696825891564511039088118966238625546627784121367985574029583912781850071945528532989124551405479011530376846521872901437239512233498293773557446747231024912835159478988007359708862737369719067827791828568343192078224627042184487949432519258706491589882938316638920497329286064036151886087490436559487789840965187571557209925781769963138289570235128248635656515754552187351758054497192903476381027006411782500974024386543882301860473199180794714052111924327766591878764482893638515210910736590548367035252165909807772687518964422219357957608990709616795842265474619731471291323700693227121096904913545414860986321845533483782675789877197534013374397306284326366432418223100439859265320720015138587969771576324394454082680312646129850962276450546691293931707573050937867583077877622687063872193484391978479987025964978974368845369502281124860765966839875530834821273726679348293118848024971405065837728269851012653676571490554110924089360808841583288002254831556936840819692977685956628651549784011956022364979307949823187375720727239431496907787728782109109978851595217763422381887551692551743422314759665849295263678880346798782409849232539338814023531490260630021799159972410384524216283290863112339329583637461544762675534424035443237141002760481458512517676175416252141761421018363934889415139908389039255104982501788370960987644524640548029436142726174446805334187304101142317030762189439917049641882549279790868795183662202313223181171137725897301096259625028686274908591523073043656532771977069306251175108662032549390488604232852652569835976218862243755715818264716163833936629504069350549243416370590625655208323389610241740550675962753505361386700337970655261359028187705636985212595534483087896722591189069238312514770851391892079686617956862842598545822701209779544469453450863139553130811258334350334386072745470965307817091450918485571346543872419868755540441353208684794879934114235706257743932164548328990937481490138520009880464520545934568650771433093215877333897952771832748437843029945030209702464797834256683617925736233211144464595823788078797402300300653177673930851831462016109069057031061831422108745384146670409745308326038925672118054770311365893743501677283761639930295872220579528775689973152517491953307829435506523027707116384077482614406746983534381218946848261797451083398004745314288555310177813560877809507620937465615299672943174891331152910797637082064973928519259379667602645027801827864458297824262662529987908204741652499186053087332396032630885198915325528062433240424042103213421506861092073035465366815656053752206988784219202559224793782834268574095861008674188984921241465649592358757835517198017446187464882767701140128612855920388228639680376132388420155155741506538064882041931111010067065201216760225701690771965127774944677094335822283662000922284645272388703211691072321733739667492851556716054940646360096998415575667892029943926719095287321393945270964551431461102734307038881139953457036257217240770997617937211501826320451312948506162850422738226471269413378099242591044141719832561737660172218465066411436364069623643046249701794748299483496721033115207707947547841994738312960785601551580636528976266026591322797468432660470636629807974623430525477045671568487594919580000339297862279781416264860320613654788917491748588915737747480607988222577180425316014339032695690551611756357492532182430524601294799884173674911562461143557456105563995244063779804393483977595394070880778906089281669936155491192973619462732858657175150088429730139091991583211235438014192866057043620600731691211651085326103426822617865461352034879925743610513062247087580591046488232324343760938197501870976208218374733924950416868589931250331011344582207745661907421565991305053143451864344038551018789370439846770422319275699630862281664517792604699707823912182640667421672445002282463831636845195538848270752195239592625381101336877943886534651691357873604895847490796024329646386484481028123034381004530288956759135142171601573308239035002594667482218493224377974268466130632175515496077767769608226100151981983537517096015946746152271462807098374761809549271393690236790651393431365972860876453985721666139325713090427898378713786085462466143245713410748461127104417054670432952955070212294105419830968239095039791909310842876568266581446498075435920207880945750309323141155846627722057542655581547359225409054379251012835753875016163044554508024356678235592763764793246915837654126811305867458236804383221284039813134632701901364476046155068959034993546884763141003353819907981866834231156047867982295302129499387465145083283835251109159115215812351476721781396545922954056331535636027293197709775763408830153971395053832847837990008784668201201385634239274248709058338290435142155610734076703227135271827002096509199722545750801916980159798031750145919083416060263049437994458588996984417473597751635034583091982789843282433022538853894744551405852921108812243775131861859804567264539519809895330104583077617815895973333666345301985051525208736912249515788789451921988922205259736807552040978799618095033683027893708614539737217277835739958482784662724909284001512941507637482752151084894148719937200157961739992377030137502436789024872978220136528040106075931645387873649938849941138950859606477188768703276844872934148150186615234049998282361626964225123805246072732004724247389254460279741606604704329057437065594614898803585157711824822756753519268171142581808907861985633225811833258046249420166672588768493784655018106964977785319191051917007818245452540474235649087606532931451812493849401675375485781384379110637675946033497759269306661537721527085073378865295815522262569066313537242640453052764130796585038803899444967608762304475495132610072816024604218655390148531161687441475160810324748057395553332771374963277053532435124589215999498736290019017303957690322498834490366808972520776450180634282986501760522414007247183997106240914377125335256551015919656996174273187789174058698866067783700314052908362033135447385231565746435790818303769491529703134587275364743512699739193834720633116250562044438737468572765971281409485928873461554217571087525552355098651161155705594294549668238439129389151242408434727756292372415424708029775577044620365762833507328760014615621956301678685384558879022394292064982630633116062476269526444069480521521324797147010158944249517199826293394996735403311741912429403455241670599242115420392506756094443632633411359873680721147014974167086404747024927846293321360752569828814254700298161968979205274752426248713783529222869936167969739863863724314712351343007283241250794625916729434130493834090222417561354644862336639829113049046544676966290030218273308693056638409643688833050923725274933241539083378398384146941014951045428991271226846024734040428073074620001041107790393627502068932632099455535760375051681249362345038554596983666129275971557310059248674164814733362204632886529497379605056058762990314309278598212560785006040580570784431310588379820603503713519468834139250534372636265599042180735814464283128222011842521745852598883454218972457317530319089847632751125992396703563573756246058283420840190725362618207698967767255180068277581588004552415464654280187715613872861731418669765163080579026225543190042199347553918042188429937838568970646977919898217990699703243966739088822493504668789830847341482451446633936679443730775438736165900168587849495026026050654457770801799239018278226825635508362426165302755370854039982594429405963087234555933076363615462576024755921272747480962244355048228832929588067936862852608718759027060047374372236674225496851488605464768071367017922600112802569985619789692414729291717041777262951241067069194252853204920268425897424481077259038458654870880700052514251098900496903618288997290616625550209799792961837630366364794881082552369653161486801863051339010692106207917602694396262790962555235775805885722229509863479691762233703332273074198961949872340706502248999915127356322446161329014076206578329840298345673323350211168413104296890847621239339525653965034663551209205690812441567725409450863956048641395813027749194324048926137793272014574930934186067251058727202933725388898723172017956739142062875151403755693974258120218935533126831039647353730650628647175835106192042203878993173507721260050707698157193279015280928134017128629234653572961982912353513700405733539769017736508080055732573345284705230600298571952575504318524177620478182672862344373615687603920347383423774385778094256193395054176614062275997132927573491176425488672055173650704229412319280976692577086166752846102851544715004790724879570646160722269841729112145401089370035382733653073690547291395171826045457345071808734414509975634892993274058840463278252472432350443930074933285119838680822790125352609890889638536412056984218306002960121264226003100711458060944912645393410661151767767154331404505610485304907306728190789420091284510393030566558176290975907586062867627846662596160014513775915816198507735261930193601881083111214753523647646711073556406773537129809859167225290774663051566902976087842382252481928822409369179013504857133263691760937734595203105812922966012489425651757574195663845458066425482752913000989084709001148356925659182918348301654325948919572951588721312567914941734906360518240504647757082795046054569143225906104567460545107002152382399594222616288928976437319747002537179417421456317337426823894375815549851729219009373251892418382591746890385130942461043877121800771999905656745568039147213160519070279486056427017358997457555397129199514677656051641589193088023767960411282910233159108721126252113221407680155870133028308864008087306857165964425131929403697136809937219518796766443583332991571235392446718069835089533306601670408124937566082087501317656714836867515810056652866279384162651391475763646509279697112288673731581255791205407717273708097719390094578945773845506766957067440115086364997959656005119704786634294514619678884594126782734579871644592575504708148958953248773881125973038123461442318229255375738820194328068172852501842404892068330722399307032058014021766407314487810111508864961768907947806973130339656299781074846667326647590029085450519470013579479821730739812561185114724041425318507500938070552449803311648933451714919634806654183123188387151432984443108579033451022781779189918199023599275556960839624691122819796113022535907331770223092674761430946623627641908066620716408235247520555374607336297392703918531548029025416394481556951414263596068393522744689896587446665602771348588310522513723488504904778878791241288929356846352801061556213492179108915468553022375177556828384094355716111809782429636747996984742842950395649731571013711855814159355677084652833583222518479556448372049514609922051481382966124023328593521364964993066874153240702768050034985113967867108457586083996323613383533137633908440070751885960568459598727801455351628274639345892955661764731875909870367890229169843539914287416451565433936683357826442359204624610694389494246471822089467924049280096558629723889404000346874153662093170960389439396682206389816694729357908276125192221304412539053660666896027853629712360404111803585525227516252330233380978905867341334843464436921918909138581145744295496376408030506749129831396891232256644099930187591563391406241432157882310980687770714864276123614619353681850669203541313154525673048731057864215805339556324388227175081983789731418875336624991793276623517302724258341955657003516036536558763723054315775244901524775248353175737921159617684358101747214861476408272150642759395871981739427539777302719117831677653010308262273442660856818986601640956438125389687789394984491650743012080004665103553719246259093440742439438261706070741715651299409031116129790659652833501357677970928533812073021857312483888760581472181980048370997005250327765147505100092469265819870315576674308162608597280717838864965060201587814893469474798574553087972554833925291208464110151596383239490273042901101306789291816334015762199461776102523028125916683445647386620311659372007412157353801584832895789084958010270957194061971634968416844110934286244968445289304856612070426038910500556214223057581811980341724593402617091127866769214385845520212187488238771370725837930704374245595343881881835324973083510085812746486490111718889177114402019399847694146057312969523813723926114111924336205260584685917792529006965532149173427826668675792857227614908532332216837156154065513322380661688754564630346738772044761469039322510334065240489428036427305078804174183876880233620981398351265129771937670451514515747070412722733289664410937160582745781875838022806794993876504410991684330399619145451860380773460094501597487957646274257043448812779363962475021776814984973565775047970466059085260611957273280385328049727476977778090011674978669744511240073733436308307069602428751663942886023360404280879003271075208701319718795869237911230962989250541732686894490090210959559655265482438252411358844042069049836998910024431018574739888733179923611482846291395675824176126037955364002791045373965156088500324470176826226695344024447830192891224243459740084565627441442944900504101690869394799523065280006847042523319693199699917403423057753771183532519313790739186634857169906520746111191186306171768485384688184459364359976544451105308417677933742658501073816131495649176815497082377536080968553119911941780436660099395069376848882593877393745448234137589738998147743880236049666499848943935227438358426640904304257773253254743883701721982890661460299523801674332429506444851963943208064645056522273504973011963857091887603241342259514668257397859166179180673241708151126672255183449107957525940205453695877138013091617759937721227609314226860880520268183415022727673294656868625957561794214663670194536958230914297352167230578838628223581763427790561438253404112385454282750617738534191630130985504599367492883446400702032730134858894334836662375237723377016095708592916761112736406125992319693484587161197365111767788931741207274151986807773240008385945950622266927296020501428480810560898698598851541621219984591867294749160023975934022948096029266974640579126575454046696431224605420885478540508434140180017315276981692294739462121236953078588436738542406558426208037976472102992981056791760487535047544701425730923538545002115103162292803589596181727692332988643015139217542158923613096466130290332190835415220284315212390588189045069727793538745675021383446423446538907777204604517790287356392967755852298120597712121393985876177585146874051445737647717902076085823848030436913651514627270301284282951445895839499671109530429654531273700725230790833973864264221248246856475519995168441561430056356558444808365375532543402187537424413400272112834113594768731239211446195048522219539667418149514890386323607915642884794093098707643997513435455717627275556311824164810122756822510808358705821408125819185535661934174845146506240058126437592491341273605022554312441696993837708714609075934511169043848183110872786139347897213794112585478178713148536293082480057836883986070546499001820130081331583343250368681300219865499684720059083568654971428931822455556828620803265432196128709452704938852265821716173853269566967163976470970487485801851884023979122941180140079798621882789540234514671170555079209449562828024316435660269044471588110129653842177050900906649688408333243850901587117398968322111491496174427534652314211339155539035620159154465979054016460897815362013326403939975813523793673571476121530770220449501636972168175018937098411756682604979432011718937280740485552344589176295771595510807392601668892739594267430594395100474649984142942589449727647586876843514266089761117430740186700477501323145501986910305974617490058191181539235532589726887364853027181550347182965101212859915852249233256787416412739355423372468701806993243874772131311918963629268925325995370653208926162817171040288123145445502024004405430570083416199354798387347391069543731962415475320088699126451612792032356079460037291385890574675378998175779415584020168792738464504402341011177212416630155285024298316296840369145431617858222027949687601803691219287784697683948622646955619882008950534760884006218975432459986613934959391449501392208408711131347012718707249457523896322421965539209217593681757502597062939213946014641316922451928477702903873627393296941770231365340465033948233158567043234853654306320744626428873424623570602090429747950371457106078806285462803362141598612869314053740338232403185828474474190099531931146544754355533721128322211877580495486740158759289527307912210320474707091906138639729893792962027154982669932964784609858038134828882281555830468748910992481238341348610545721767312788880166434293276163651001390942119641121538325771127708746660827411921860742638237541724844432811111586985014760988435460676994520722030491306058187481613863840172525982993469167062205944990429748939078646388354330905267352465963020170603941270837280372399960445453243093132898801583510734126812558767056353288676663533920191107101601874346653983778996390943376419058916480447917743491469103186879512976568247625654809059965134891119031095983370371620496730681891911118790661649134410258574910795037471034238452178558140618156261055631122251079002888167237578369925176861930106772890777406842989642542286685214737409717072256232932556993340491353506051399650176397629088201179050826839731893739251729277505963720540286168544280750399361360004750094188329460491568409396497125186248108159981361511425019997109601710248466338674652491581535238141356761292916055169455310692972910357389819779679598065003924711348531743901650481354731241403496024640738115805310790523971641669911497880822333744482666293782092371639467991978495159020726496162047247326462658274586776090091337653897842674219007212552731614690388790082778993920598316953885567489783149931112375867838560824430442951356156307568138678201003629686279362597492575194453414991228063630047878788927052482530442655859441006223789403789865564573563999755937675927743285850027692324807978718035887280907512639873087481796248816077731120088544439790135733454994170902462332215861886256762275748919807067818542037711329841734728701023255432208587876320545186604283085964655420741344522099110500676569753976154182530683485647286074178521661225947357371234454492753131240368962429974243346223510607450561574333239954414326223320567931030102404489346980930172720374388835124255461555177578722501543571023356223470142096550989590606327226752367056318111210251264398794935562225870561547304481008459268630198846995472730714407401834686496984596553075946823435796310914103804274572884261280161933159208964943951716286029762422304764319683982280119639214141435485711146141182160484599870637402668630777139970926066653642185005543239021168154682845563119797164888675554204180136206366597716875308558465284763083737059546098614957682254809588441380380661127593595441671802568467212910566278917314521019861027574686931832350718648171194349090520599622733170059073775485189782390072463049746473655655245164481499539846338396468461472227071932189439570431167645917112013315835239284949455528171060885655857525916430690260235831725623165634664037032323858217394696934804103544124924778213135747499953257697953281854356522764495581649754012935615375732062240361130792056216038986007784197963870753254631552432063059246268293687825750573527065379331643459837215111371577399841309168450640773789125730742926197853444894687083274234821949959103282597732191829624641424161566210001677464680321498123244087375289989392496943647307630696116547111176294199681153689046178717519972332341559982271244085305207977531150053517615727754042142465551121338208321331014958209566015285356791503204960904965647305060600465812866980644865444508965912976440624734804809142136723001948040455891154965709606070822541201933645170884346805030017543769075194524979066563359394726742608754949479643145576160085715840949196322066296786564192731632001200985110832270692846703177910985337051433893527277136167155953106577780974668534130142483155668623189286384399860017574774512433098177672814449476681483213105735383715003848075815351133116871493944647409226524176491886258808716568456099306682517972088878554767997761010156586698194568434187918152333058339203817027785042166089277285474585241331100336540436820478848913181336443094926944083446776980228043951903623404462327394397774308500774358249030968961065630787324895850364648467103794099010198528129291648209740379774952024622610872866533276280634679855366234194487175801618905555212694148319659188803641523172487664565283664163770906547705835666208481133346055134579717848074580200861174160254110497770030559764102276139054163920489118405703395933479756947008599318247546314533162590154951209615888650577359529470480725525388190527945129207354223773999725521116020276255257701014395956708881755103139624466054369421497518535947011097800942444454178575393519452336892392984753520203531774429999614828526106396370389787046917041340138982843626866567705725152043224051564475605705025266904467639460664628327905198221417827521783314107564944742718514717694820192349977498520461526890077380100714398432235851532011173488411128443409594739079027916259172811911552818998107188618371467643379833680739191328490386454826188050269580864195778326329898416391924935843129575114642031689389403183681449453074689846210721369317942165428173525423033309775910339301797334846748241966246902424858602736871050614758765475786176842730129623709337770157928966004418815692874806441484519424629620880529513381073536076671439175217019757756530590577111645702673363105626545121144206828371696452292970123724421444648186064638367316895245425840934672793676151453801491288466540240633792632493553781986019605646398967118747785983277323609992210120807729857655362022296020308713606043091797210801227267725312254859465003756887302505157712522283833649834003778289918639854327082660540870370419737652046646250532583628360366658295538665848191900844004553445914761948375882338032731085872881573725984900504014102758576274066825912605762649572050034444444100150165076628238540214089997499907561697304658438600939616244317595499922369066003554570203543319569164187391818839736098950293029281375195361622192527089225079052915269108445943970443076090595436810995795132698644671405388575550421001999316570558697178959758737643473332097295658666772717887550459341656857527480077407192911568062040403939114967936396068004728033969045209690781666621054189932068615654136629053250442954170764506822756813749097106656771681185811349191886209385757348823145426671804183782404548569688514230177866149162783050090091619402185445420384023828050813084968606112616195178438390895947461084995112692990645064839157999716126318875763934169693023104850933366978054109404945115880823918315820786680367476368058412242307892813293407088951800595545891271272812377382236482312630220567780741584819454202369822005372139959478632814843472291578249024603332719438721380986681616691704285587477811438079282513106982524177058498622858111651902947605505737460491486728950482875042376633537951642111042169896114813836135185382674288661960215159360051263690516345526362954218967686346886400525342203021868013264108683987701153587603336352648866743476036306108430059289215800934546193555444009146540178948142727353165461333080891590065117824246516324172199541106378705105036656516533539628216615411379793984903515887583510394965942352661308783972788977646177348681717310981879764941628960243996978079466537758023416877400670103405155155741986755991055069717855974238497554984315983661396075047147509953475065759234841849680753568750105320489858243984536685509662349111723716770699348518824791289127815017941531612718114173813643934003260574582739850357492362501817677147371984811555818087154016129366250787402403142023847211328555048701141588279619748906354062493519447823635197970384864193083004457046381231802092968505420276707656003825855675255454600003603212804533355497978058499923038782500136955155326032700887798415181807006989222498752569816639315914066130178611160953012522864618899734700737146434170937316182899898227625896775137078781119281349760673585899887172829203121437488388363451692577020085221617522687416680503262681464085919943470172821960967134871738089763238867917484061885544390672551635408956422863249395960144009991513391477237214652869584810924644136596722470629800966800495188676756913163097117547489261534315733834929744193255031757493637230934616814939614071834588428553843311297860049957754546949813215023936384436606866060718636348431161700244568384515878660164072865364798468951127324749656240904299050149994371692705415601354830897558860788428440440884819428146279404631947831252211866375812588005885040160535732328969316361977649834948980528405812177091195275310837480839601029510668376245430872023435550109361635667318165145410038477427316291616610126599378758570286768762676105977345120888119777430105715523412613611755381316727767773799269045428222570167189225680069897059266977659654063449207174808112117792245075070661368013574723893195798482403950520683039845463997264033711964730278194258822258467731191234733461078424265245091686365330240878444201961142281804094255271037866836901432210141279663646871604989583264506034379319993535111985352768175857753224755066236041111998195065592794523479896636016838291108976577923061715408765673073714125472811089597550332637756200545924482094842500110159601132645311181830777783892677166197484399790800772417210722073319943243356967598096256765329839125161192206867048464812183141944194161555515225720638891766663373398263356573635839513203098506203726908361659783238038334439199836006506903343737527330225001274612712905121734630704293380909116808388315800181081410908833478127098522400324040770299407705891236099058427842909069737670990305347230051327102121224690427678590687908742054047430274652535827325409295843707423947838876482682840536275867678061791916723632742987438728912660554392672675553555282223388128212028176660945936547233596371916975401134542677097041108718234035267789226087001993097856653120750654296191364243792030534416697787575510036138051241502088210315010897285696914087996339123814453967020498373228309248316838546686159589209108911346068307292900972505041667048914422360019182057952080785154958479015067658142408681346143307511708910244732700430428901453475907245220749939073584761094603393623682397373154308995389175797424513034783410698699741623599008458088611515396889455897384827193689552570025684865707278155431068748475209651642449176149329687405184124956211228830325033110629376341699169595158921260960406838208748297577436501104763243326328237471380617910242120621161269250526586116731609124928016573094658806681385364122609348941061432058027905617707353159404926355262565915569936036839256658438179436950800735425792086718266575803368552823034072579566559441336991399620325880798229600178751901256709494202991610283551908115406721205258899732316583575109357128458619008557352334286151018096250278313751315876541864941628290968056991140274815099163689120411073908855916819948970221429995763891089466475991114187787996035942994026037269203211290571926600877711317756311074541443117223090778340463239709610802458288020895073950241549102405559338061818539163292824160195802181937445729361941719282995303697715570604322940708287269024676876759461838651528187951985943184410854616599699090153179294157597609191076997129400607128972804379774855247441628703096540624070904005844599056353997456990699328723466395002182062165734873758922131125422579917732383729828852853481381040933721587529511346526493477360621371663843737510359915228220934385751233277024875399395621881916963541891109076367274921222965280203316379537098611181739933696648688198648630114764992680882677489359790629470942552204636646313255650246712476660516000533125349564335767559265821319532278936318119994754529175350118193274027257471750816786184707588837738061714846455402855955855166109939374578831234862831360313312566395478394237845774296723518053915198577059718535116156796122473333695421992770846784860369179107209679195973187040613857912267263006351773318044788412006692201835808861950438090376872723298412773188246955581263143058338718343555623955856182647027655243170351829647622617416275071713489020512419073064926541254934530879197048420238279650343706971207419752556606949274218783614686881661419676322089463897114809448938162718149468508488750210898570780844562726655450252944860843409238118189491863088283179360937142545071953781527079834297294351468395070242491391219021437534304210162567636305235468459793353464433407788078819354277185118691410256962155723626473404557514646205741049475193079224301369314645781398857475394367883024480155537823062218604870270608876085092885434285235311252718326646015984771766156657351162577715587596861712970341396021567632959452134084108682996373722518978410320099917131099288406350748506979316682532529731860233339904368179380027264189168504551978572817692746459332168390766410875465913525265955361031210355882303182591841453008349543591086209207546476969967583570183159498365937847510980845499168557331519257428478097651598427054115061443434971189016728859612497821600051967371893443721747738649421526485545422467709349334987037722155808089832908792658007543804113577780876504438654780758134172909690515757548701248988520973405235588028836965246146440600958834603120208665968118653661345538145297675714719439121789804028933914922598363184711011371241559523642957842269890212757404120046544920510859233711466544789118260053436256808441498703680849986181191465234311135986103279047215158754101570304233156811386749456067863641815836788064140429646163954837328573792425814868928226146780233568404520914315216883226922036562868474013787039325812276986314926073504286122529326039661224277683065888345112277930674832892174404333270541987317221254959195118081276962775593382419464984397763778278773315393864789166096004170484531847671387035109191825595545134785400828431719923270657243880482107150028330172954111554101016188765592168417518006629994772350599700994504113588775026612408128426049653563234992530650459628594366942333756478398410751550301810215458504172335709727532372156656862143336201826023703409328773279569495261467516525835088820865500085755299810214006264552132822792701822134493713635599198010305165143504082647572988798099096269767535027474927013601890019531500118264515173057678559877578259222522573707188424747807002248648062350930084489258580433324286376847127054416359359305997149136181511950875605138009573834767277327363042136910760579608699211033552145708127090517620836807736529587253437337167456996898882897585343614811674988407249371626134435469242462713223608127904874811778598676950580295457138870820339100920636696245015487201229606110090001312446787392188315513129902802546717136398296361862310147450302896310810185462416388715999778807242292590204391633709740808295623648697012676071083397399868917014351312150296997622879462573156364906208525868314478999552849036912755434553027236057575252626349880089199062946982604876424547910254839585134759642485517369843360761403516542365145289224854911597962446858668292111707575552966172779948520562598859395561495960672192907668622450376475023563312673289080683949570084716497315987115630817034986033989114738765730640686553271008435854193593696399138721261576456807175060751226666974867067935726469421426417427141053054728445386607258959653989857617656564583970102583506624672754327217603238993775563702128129006104705620976452531608091057406249735021430211357198352935915491516191120824170809352006824529327544599516363455690483386457975984551943205975187347160150283641203891022011262153395868153586371148132826374174784829362353312535142433153626738910578870317464853612573436268343632788951996002695218184365175421332095941983434438245212588035219685365241661320944436688801326592578103294175101680629191441449341534422859687331239786202885205424203339751825904488708092167930403522360203111055866460674146783545731399343188416893166557920495668827467252467129441505071780182717570639108994201126378967955250303752262018592092628070920124023921218959050037426313776275589936994451064390482843806737600142902828971851603638606504453462782661301429775448484530030612275124219997079376979123350793192775151316675604845499587059537088197307096707467359800092283558148487893483038573816213754789626841535715937916565869423484868671488119561845063289063139200467495774016469598215251754380770475081235879588821234956010702029977421135543587977497408572236419856360592563186637873365071153746059657375741893043621056663811018902578243133985150198221593780376483267582497700647520422505639134146711240938111722004270784178323089021963113827977400249065550938063697361306255645228338310404879174857767618942173894954719689796236755101600890858444824441526693706486636958549861413763218213176050348763690477123484785189181043124238842020755217911647555337708317082501995227184346674001176878334330778908154996602489776369969911790469407162196562335994242197322219910153246598464210396745612786622065832404384882944230595821976084213017939485794714216074868302525817059634652607252483214633644490660942554637743470552064617860982236406323885880727506415496863447282397863375248162270440531942157481655388900256202008650641270791439156480453436996814156869298726763218653709050427619406621266474475361017338283064465160602143246581673678484571467317001334498634501774208483265840915745803723390710669003240726301354556704769505405329598501310221102890906055850549503392041763615431602199324799043304436425845659393522324761376926326266675790068185063099761864155341695753358426843029116136463237190359273387522551543885962287189982510801699688161702668297676810712183468142857583535275978956974995364728943974221615579863114889319867731302151180678894287478072059077043311113751187593683172464172153055963830451003245470245319246668073416683635948248553148216588136491538305021173235124304672268503182975545044634600271633381767167862189991749388726680704932511291711764514590443434036876131241729205647635452263111249240144126983320958825343593521324689974088790881387225443785207809600528295898233654846072127437461019466589666975681943846899191066435627742166975512649553137291372324846055406292520067405898375089212811540938653301865721724653035024284532389212664904000913931452024976329891722841133718229736356904222244470513106946611126320146994575292288818260428397472686700135010275661949143604878005656016559441280057530046346087826417916686996666063423424558849892235329703887828760563286857414056751189442746458536492807695825262179171851248688898619088939021289534229533748630021848918295407302902775458576745823815475070665200896267959100608855958267641184709688304272987054205878115940360196447209855438951163849921316202065915369212060217543338147600845718294537061277903875501619648077031480176271025757707808190636678888398150617016755134273600861966769972209408323135784723288200221290138999927210907762761055823242261774207324020454079284475733349229608019784847909872162399078152059820553686813697335554889149097155517838308590573521237437848005654938777903558280366653239720343938009483626418696729464037789040358366101091152834479236104358140357402169322428282175068389415842526288135227559089257784539120815221741518679857859769848684529372770374718349023280316403369928345114813323451978736035963385416457325337803266374641599410670570712799228942783094328796324079383932445375010985748658536951922876788510159660259270211414034380463479925111079933994252068660856979786287351579675086559386472119893773384399515231398550327962503194951370648765593999098503612374160787574274016005466685232997773044427284185064020125648298056706467852543077761656350876480328043180632625398764332712918882182334312305672320988985335154573661019883598202182802484582085996764709772866287954932977785326046886634731284937960241321756873337310136034298823523886716896113334499612278438120054812823358489658500081191466061523622472798288719797561306890123970401785384224563554296677052904186852812437414872750681457662963280807182311445565230319731312980046902247475268522250110989516686446664129099689811324515771879388044277230053567485978332047625119713314077249852424721480406547421550043906679811518396955811497734324938469011995211917032951325093414659844226947552312051607606867602562979672295767210843082425130605652747113982620027029393978019303955718546025254632802429596384864538166259965926166494807167578503709100123342988679866140744693451079317682719829810893109571320014714564698986949574131699020031537384976474803852689435351942631206312268549022529763727260244867995583903034185698780674611722882805042572370655748206270104735320832249371408112765243120876256055793925278861640957117403032034533860945712699339768317266132397153907392681463222363102254285830536985812748231031566079254754221796385477210718148456311177092845977768193455314169115192318377056127924768439698886015336868602000917866073254752500478337845264933905938915580744401981353256122486225550549626462856607613977306479286886789692290630835437310356378419255091094424455168574188081815971191874186306498025156492846452676333045308939225029105385185207119827027104809839174454948680991391825356795771629748021467151028668423576101146992607636973679740511933057715542094744746674475005054245363344469300241309220647822926232261235084058671100074602318975156204922467800093537108804325139937284017057048867516925244399795857569432902722327989286161751739521229020216224972744762952248098116599114508062101275372048065103952934005619077019182916189760676732072850289950994052933050749178905135530012998262701151133061789935324183102946673989955978548069180548909278368065257925764902813688943701243324214864048604713495685195893796305892790296983351669743493397114421925328806121980892394867537318649769772872080290169266079370083764902215556182468203572504368501090285450664262614368284240713266514330353984549289135309452531405951037803321657624897537336386733376399238507344404115196311778497330273519209970234961015103468243152068014753883674174048077377237026416755110857682008703348351575673864655624165708627728157318875736797964407117938280648279734986622490137270480924326098165250352337052375460102721631430456773270368172679430703639406022069167474371460743240662539430996628245873714964790027872792870080578609211841064236631952790463989274344387565600256413214430880980602771892355479910841822475182228982596486784690404632866513603419361536145151177999537239927857501794427635795852927460957338747053414418663399441008470315889486855369398642265807321728360307177054096846908101967811330817867664303820492847149123057741000340919665480197181716510368097280380891129289390357577416269855765147581511002214137308794446047642865040132483280532497711057383594673019458301627468002011767504024906060784048152607243133107529037847862871585706149525753901447239242745175049342222699040764355978007309226011892036228806869443209526554927148660288182951242267139517987821325645738021848255668986948343373910373808348315651905573215035483174413576139074566212391501577956295833787312584608066965544285713780957330089089108097353353848529415220419665848081936911942352943058874307902955479010462582375075560810545685708068606662898869791001571154889542394213084096529580719587310789256006749969814868908519923484196629077872691440140959775271111336264919233870708308298470660377646155641989983102461862109597016524165176254639262227284511284290079183523303626010112901672767593954476145584796802450538636955947064250139346807108080155088474311894842465256468617556116062152256317408200277109077262365682136876775984302132324148298102662534147697842738577772246145832753850289156558711118023383975969756454844701367685975714411524982443005102249893133956856534797348559431163197363790634140098774455067589890941608599575614024893162984091666666992147520356417132244414215888721396035487527815429297457717882222817341173487558388775537418389179655136854405975564579635739645641753927199293629416646698566345430199860171428499301610406196818968278801709146576429389317268414127332225620722308535127145418839275440346706629490102759009379722825698638746336519322354991774619757539052436821298623788774845631779314905340611021777814014849074677112990302067736960640986754182942805477388065439844452682358287713821144984930396334972307511279682281550131266750156236610081826254863699526869094393264415232351254853797178462239346850812738303412852719325385371815927894015584094385413694840047850137909577233179085333556167246275845144204818606919670797314502804807289679910858563633041510010209204664087294376996924130666125803964965983394718660876676949090805540977927771549126263631288519781417211179497057459718069998419420670804502672485316849404458700731059563667909553093899835192402045816412037774755964189021273666431564258155567639526926258452064381868367080812901513592122263078495179938137466750654476166867039467047565000483101522704604454191397986786245329413683619227646796876402676925310792659605001801717668753849893673821288303302810625453618990049811998442295135170484546389301000880942388863578312732537255158554082101279039224385057377489016811544870791381779232494626394537111528791783879733086307823326608077704746461657115583128875341277703778050472331728192307390847336149183797712480346605330343843313554410569238870638678754070332336899689200680433474186106274294324241450212769952686840207154347089973815309865968051473537435712952156729552055473097967452497447979049524777697499241013336542003009006736132149864400522055811493394031765965450745434340298909996364658629193233864413441858423142262492024419400787536580027960325658799233282790189816203208151709862144099651291836309295012156730055165104455468217585829417844667829904193382489691027129833954079216180623329375926011083512078751508379691130532672802574729390442075271723057454750013592955142745401242385656914311458784884745948159541547246619380196152539244148433534617693676187067741724812598553680858447314960639927183564061159330715487587498704160351606042315823932900843085361036059401373607436652377023606001857410361660475482342195881017102093509660658842071270433717309956379312062720303569334681444760057123207820332959218703870332930844090186368000224486469953805720166574319324263812360150407347563187135079563097424998790764442032902383970984124625427733757501039028246484807310044642618718259794219119436867203985808527485239204688478627638984583790338311571200170906961697455234493290399149075725326628960547410731487254481546438206543310735803033388595707981769016774485443037249016278005993422266474538927486981117467890981209581927892206518480929033972702896883739400771275151728023869794466165988866872997169669966931494129390238217582124670635731430121209001193762003646970062907434166029490016863910964378725457588718119966248239245815918796244844525322029378740000443025581618004104366257754166579793259545091162429799305454777935842608357222662965098884818678218498211370057929897756421307989884099413266350533097784888966737001375089384486455563778137589070448633398481148663912166992576388523262575581814419693330566574901443092370292669665373457889064455374148574671607309164249521719927694464188615500862904288694162987353733384680494204564061463440303885514793123224534850651393184235069344072460924719886706758552430152870789286669534739664290716754667523838564168681808936014179968517717223926129587074361506812062098133164280303370100108138214183483639761269328879166187172033750170137047570551230059997708018097353478324277702907612851555353188768442390518703149441347127155084722917402571589240425971261204224088666585975570961884462718186708013870826907044208859695597310664965080941074244956755110802382165949292300623860105904768788632860589334915451626478972688680280338612154496163112414692164658752773305175477533974736989511913257969508845899810825549711588752750753694310999536596008514775039161947883614980844080179903521967572993610443969722485262863458704212509470420603507955599081971332435667079425655895395925424905362295982963498189936683675142078974070499425055605493004511211994203585147331768383354870514511874280612200001997797976508389199050580167350033883838739682146880696477311212723067946980090771980653526702981862609628949909767111740588538714044869242466801360787412684027877421129045131816813390054943887518162499850827596340212287956940058088025150359899053474301784259992755696916000658032872822979291543220624315903095722845660280015853107674240743299574562280016323157261487725771486553365498713566237910373646058326842987049999581454258224349632295906300247200369368227327583165299374032130139728783652531877885859276055012377851200723133129470032118919610647394271529219552149779486820947905276936427071461350157127311449956106450210753443921466971022004903772115587691668160060404898554031449404000415381866388628176860417981501282245706515210523842107814652491327408722169815664974963156008198158400949272528347083172805257994283702203537557048243205212580594916800116436827719679624885950243305241156561010935797089608279016598328167175584190824262463793105262745704423552390729290836882445634290929389104875428512501315890003657728477302462068680913641894932926445646307909412390247362056220127376925564732635325601584183913293338694490298246231529749284297395606467666063230335388941445742623300553834188619875975764008906031206357346482195225467151583939253485381212350757848923065953035425663732245073123253790690036394854353777713627692101014914144027178225303336545690656799036717274123335549465301121577510683441268895416541803990895254959060417259157550156057734313116050455980116132495026159572817295611445452380483513600334099496591449224482387637932119947462453320693732271291128328112847972504782935609116276787703293938213609979832868381661044474863209348645942822305202455686491860538282444521685169956589809584067880112781455467297471744482300709841269519187096037228085178405732329659913636452860193943620688562734726273422053662182085105247881849794952263681953224266249833188255309636824356657294208045159728242920971461046502563551554161340246948063543561684654473988618036762776228611396587978729416055908202187904360718504729057412571957510024603899478958462888817854003826780826740782386922633505714225117275859169614371594564550071616233085814457679643573085257791671501044156091563688795314069893708614548017260012466007684101375513269140863435978111138198412202233979772739915471827560965857861089792510627346024332708454046976316364636063866399724093054378289208001876217333474433061046023966766826220041774522588295831826213119055273751460512027802730430414255998759310121581316611424281278271138418349583730292158814019534062243842220201623185273246676326537513726301418367695421973913615192353554768478633792952108633568211796822333331534283538146441592840421824029919440902683333646189670107252173561802819759736708764133097450008696647784418184221949386449421860264728081318066427141028742138582791948608743617007325557501320211550234050065625249957368510880610298792588155178771534731513663238871331042045730342953200222498859035945233727174846738312519660790752357826062087094338738994029005627129180442195185116620784112748885460304831288358255918345181548837631454916251596157812173813589943115698398044742662726213205803970271729829442615867979889044846280750837900232780993992083718990549237991788928201276829621781109279775441967473499663138631650055467396731054311565423543746719354036158987620229386852655892782665318087647608428042960883162365764797522265366717996235661025396764164021977434275701911763161574223666039042251600296872645347396967263427274821764311177926983469554456288410050618938981817662380772631291310158331077859685585209934041172435899932165361966768110596609965586887595681536297813113978070058946977673119519027990085320834098411154115495012412750090822496103008944594961582230019599136843139072388844621773486265664631013508447169918563398685522705327037962372328875724995000330573124825151944852427551720767874057058934059282001682189735502020680399590178072133047468915703696868396813328454163960265857346287597461218747650259003975209320800265455288985823302963543751251231201166074940384569679015355397078072839925136824870376844885289174899325448538824448945360788471131236305333985973944088957984484543946624612641531738957236034591125344860868598968305440938294317517589719508388943400435743754775310936584676355375579921849124730824494212417428719954215191488253828316010419305166520655709316825020130090756268111754711569812548101844415295776507315883810678576740210690338099316729205927487674266266282292667503973490209938955434208722939352056457526841401266335045214641878532987142405280181425077833382423460743014219879432941127287485871511643053040915573694234586452590967609824853995711906316136101835884766523611433789643384375558045868612622756999594474734029674698177434725862419166077970380967770879534921944813503243934296742750115394573836257759533017320931458192137254350706053384699303985377834179555022267536144885504709060051377665746461779149052639257010407067762516587728090500502356227982234441913041089998592552674665017486843579249678349743901156325751981436781947738547879407411723542011551342054110862796390662579965000185162812504495967038542765536571992512760432480192937496058659762365028460522896642051999583011801140383692679179006414154501016833953421132590996822991737771613302152334191177518777587343176205040225739806503519397966154330730974352022891222167134791544799744924825922578633435401686799850765152739417960493576886556480805421748415782213710659068957610844486732453131146429688249049135391375189327927436030797744800748123136699223919047914331993820078656884548469759366659500958234990326433987952724477513000771570798164605599638513869451051103289296497156323550177576045236073429903990704349881227269352699296923320547936564732313158107270958654538820867146519398767842179648631863576797735420995281944674457967752893894560681252208582627797448863185067711616380778345795832163878478754936080858749461982456387244198154041227767476537207651205318965186973004334389847417961196052793643165734433346219763827451643125701091628201169774910031685725564417619945081753538374274426523830257761955671875096503832618530588986263122078692898210105248346179454448305501326019944707063307928883695092429062455382821297479153993749487304926122792294524811329298477268822451607984274031997227317642959526150616868476225537716827477858203121025179317287372228150642044798590808025983269837644495114296763496050552273110670543901656945118567843343622741030965533487825656220070383543019250101194273109609973455576478016592150635791095312622131844274941080069408337741795738773148342263969228235234876893857808484234636613755942932339312902888399692546776737622843672716631091597530514686938084736552106634119811257853619110823350002846872993543012096013642282090984696854918477941131969281866369259086673793551528087576600259471888824636168785242920022941581466062039469354347691198870045924433928191467389787752663009316735934174670389077115763639398004306479612352929550886654653082668392542149677410939686115535023738638277677940090068123394674687928074312515973355616370477902571586274221436475405306808234215738243154133807644606562626696357752671564791867479217788299847204203979178231567960286429455990624396868843992525511105735619999819456853044775576663754208766756378263171784488240165408937950275554780057889544148933190280409024802923240485351803486021092953429368885542309843599851981108097094378181401836183263488416348977781302385952882273924868336155228435996234095898808856063094668940375331964543050954111493681658237006125854397815807910613171570623151399461487755069370279084651618271802686616889091938176050998144332641047361066769064428221734078851491350320551359649721931799523971355754286807855607726205728771696050380388928446617601439887259495319567059721402492907831675624196141132249522445707673208320930782122039471571648995919118862004043808728992236091924968127986841163375269335385228080799857454803966761884472802436397035786684675877704778774114462191145654017146278987795583232103634771686784353870523728587083386225907462546947553582852507614773398619417352452808234531332617586807074274802463130534054886125895782358466051978446452548163601860274165555192263000053455076608406365665798155590903147714492155643231350376204580114600260997246146079314131361896387321534266213876689898729958150630415327948626685068002768967988515317049654468970823007871428344860113121872039544294727273768781401317483185498975756188924590030931537188170667895189384616133924391483505702255411527319241053118593725965109559778620944390445728650145626324558976792305774283923992688087785792461606958683600076222633941041458749907768595256288903276843156400277464551131919802033712972414236203963990990293891666714129727217432009066392181508992380426244126310689543134545488161941037989029308679645991217681027772979122629133799133333263627044781528445459493614338264525962946094720547241159189326262114773263245182242671599568380395138225542439075672168280040630281981924102238370501085665745871790822786888228554515914770034859246773459168746031028768087414271548001972116958212112760533772650270718601590195138735907731592837010731007084072118763040147704312821203240816916747215569995959493337636504857149484081662228681370621038150997067927232294074380849886483996559162932295305805655950826981105686467294181556569316863580638028031952648062212000302177145445469663796374398803659701826110234151147097039452376756122293489256236420510733364640884990413992293058745237341324386332052149225892223918301951909907252871257230761387240477347183003452784114208563104719588552362304108166321962279866768175134919160044897012968280245210533609696258804261310078924313736743680908653777887575383165044068212442755635877309663268930156387546967052662824343774816334193415507583193458754537499517713320897309100981054033369665599133827026155932076177455614491688102688627423549362246768078646473081307275848831736733421285742216593508206642480411342889331453438725190106810697769599382521904172576074902235207119652628870053049187986453516196291235364785376372482456657679590362210138955429626824882419570537740751442204018691158905563640539727296159920015400251036790746670852383991231719282754320948363450113698523327691591404644486468697918772230177494675845721905932835396385554657994808506656037988234512495442391795744910394134576556157992274073236242712913515335043176052768369441819824842829254303883359044949720505519194345562650840221309986073299811709546091162767706191157881423861616872031759725034300743262709196223608847908499368348901726596738216401862591717041359760610453146459396328745535084180675808361238020104739491231013799729557825943161165448295300893384532208580928499031221619253103379887424237319316131392204942012732663519028307315560793552890842075215628549868949397487466160921277542205028955518047303070146758678655469427027340114927215393538033425880813664271765595291914433465185295935629595483283050914218886617762125839467399672879776115810874888102537115478997845667879013166028276704179601497944231173914232467884418255364143105611658950200867334571581883909495316029880175230895083995447511673442712283841891680827768635991855216032527381317746845400353183353487718067045786387603805196901010376066310041543336577255974690285994348296686092903781096367119460531610923133967835971030109422497654690629634655412113596953097832386128035561468491074170076306368971718913411274980906139926933331553774330528553816327680402144392364492711050200644791916688353331643651097365801750618709830910385138142173096648248549606944217815172789764841198312553425533954969582342669525554046084092190847295183008803642824056575328146148174021229917765303346500048064618183986296842741114113537099095888830590445207183529527150106941575719227645849987901610655799469403593020767110138764120381593873393144019979084529962706389384062860106738267313309971717960667108086195485640661195375366133465403746562733478880395522486685473822861760027616933582407432204083893855998938397141071159933140504241674240850371722747453363930481510710212370125423069226686778687353152167839996029685901259817435861452434267671278956336590321318919257231497109108580547114267020518243113882596809792292378407484209721941090048075695004063944507378821494621733201951245722026427718459896129654202121721623081227094194738321340440975755200472853149375932414787961235172554445346702580815596056914708241048830202983192541777461889689650437896881336624091701049721117894299099923269814190777880541004370515653569452566278613013848605333716083710721679472378928281968923547975513358835819467538152735707035703006540908924316450355700319215635962627433381622198502430552660633781805500879602859620256859831622325759268608439462284686074625321976593506222608543949544736395887595350347613751447646798073569013112419979660842935475921536648657164886820189592032027785893361626815027295768000582219095629463221047400950596685542812003410522128859159593198702193081664000518398716501775664908605279642036583434874013494076044952513043671557277252941100228521914820308132581977561118428538926313941645783778766558829377380289244029940862816220905100602810901387018792767384159501676851161170162743685224235669708361035859464266622269635925673016011625324278451228405095036098116328566421115575448783843266583038700269703924382919718700831522716391156675327565410296758022310883216899067673498386027810168681232072555698272260262672203070111663653751101826732613205912524580346981488715999832524313846879227259582815776777027169669674240479077243710969475791712017624219782488404993769313039144075755260616559427904848044341837434852863003739782216059994294687765916569422748739302411725325851451849068076023353096793377117431459361301370889057516403510251647650456062931277865734495707470531454272379164044755789535205639459040593264137543538584952693591055477546446876069855931079751047278762222874660604845561821023107968218952074430665709071424977919369616081600527807950819584036253288981262042485200822544581107262371454903765985591990256872738591220279003561930612798551052867816272786005322145866310905077019224920589896187561644456636558953515663115596486986693951811363538058312163175359616928150934761514684918326554936984751273619292674033876680306061579475249417730395945583824070081929342653532708397286986438720860099424035006408789944331918768664967175195595155767960846670027327940673931525936372948501588182568394793518840712874625681028939750998983965060051030461452322320028618274862597656014382935769614889140018788726945649697873503409671246338443865217929291314396497292085218050080745546092909072505840422674592119810981226832111667231046370751139144384368318318002280778370814137070125912722941349844788380060093258458705699352594621106807597333498577265572681974647897741230754412967100347012559735915855315746127118697040578744501455512575834759138692587468521456209778763755742648326037899361321458376980998461369458525952183130938673101900564379207907947213726794407399346320689096719562722839788370817098739416699988745231054772723429733194805600980550819544996511010332124545944434033186048815850175695760596569356112764495771817013723762271302714539058516741548252845868632998552343044458774952031365902921619564194489302976675369377813633059731474199537521042702827916073692285308659965740777792926392170425517862689560487300547139265140176680521165925599536253069093385499540535041096158912984562336431524468504147444426417640355869238901583113199312367420291496470589310030986114148255258163495002177913061935974022084198506648506111565021483164822546297375534292535087239001889510399559398713387511069655516101385650109752501289440845207712949334310335885555811559058923405903024923534350688790770734580270952748698342531395095909466675593753822869772725561958563002652665492204400031865133743530915466902747142508043571309929982728464002723222650550199043096308393394321942508697080930186087732637026735640620785002351998565492831730908365912091912101182205431601446057146264917805527297911092458999359127893550144508069700335042528152512425645840916033483834173407093334753125512826540997470839236437500926028885079172568725961148149103420637451475605696870148300192189363822676550908094079120381940910990114978517278059775513389329844689275487793078142836216139843075424223426711361702785823775267013589030816556560298004050859312031301694410688442166102686080096923935823271529979862975222169912206516066673339556342263600060585065698386852165556848230342340851852671970090027847509643117162018985627233902893545124202512140115971829015885997997305568155040527123764336882030212610323592469374175393987397871207621645164266490926119746088540932259418034059359330995598978497287721557299725917432957127105245077797121336375197846985174780795034244130611861579097012299085350695100030655560649903200560138516816916517148728807720535474672027037116374488848683680254721714864664215003031863760670372766790840926929735723400529852858875452663490943164799216642747143584604658994486511384906051629643175302060940544603921176428717527681602670775828775180614527205576113796887001576279328583104253197111767531470306932311464244165636195287366760654846966142741869690140162370936484456687385752987858085907031657392693799607562903668676923865627011811025063480439747174893625589483841642094326975109673925847651350211900219468547071324673326628451492420298236150847264205074967905095768307265028238594803009420606717300989397499005429126930597753329670856883255646505741732925849864953698418632927090205042101580968533731376386675990552900330955981428043456892535633996271401069091135846838965710986358858807218845350208693800456982530760704013800480560107314911354183421382717004860486608352182268922426593236302926607218539671030607578781021351989002752145998062026170459196079652209543352056942242708903805957556453338695650114167316615333696890271997623697067570897025592665331815082543093068045190618079600043533148522856248750138457025053196769530613817001151575248354594375636245509249622536833201853814303856012745025621222993319504498723487657096289767074995741050825389006283233405347401252609032642103673220643258163444780981810749077369153265786464309462039994669393183776088923609875074045877711645580763297287652621814305858081101817844044245710701750640799935085038287075218091585490616984767689869374990914271462603020082982838845210507855411140160939349921824924253191989792649902988013134325770004975365402452591606024376816843648103789842710222239522929807201078012108793619284336958773078370676828838652448998849406492675231669590033906887790912154560136217997547061367701013798722400038836875382995214796184391502785957303535797190674877423116708174748265302061945976537822048304653538116394985492690504227774643843621615202505425578909339127227256069194122223859211409901662370613227982850709461771202453213610788310411194305037928604330019899659335269880106571831059420251921950613342623616043872559591758126589078838619004201863059155053166850319963130691945260863651837079186428567140495065905709086049351747423368867922031285731543348267840897173909882269582120830633278040026985158896812558657002332050905553274698970601329254640062896272974234059763022669574754758970436197123296448057560022856959950990407932425702994913078419011683837093326622816947612351372493951898350441317770400280067353633586376437431719406520997036619947185541320171414125716642010052259855912508324089959606535486061518173980701007185653166080847950958174080523423661975936225200726647659319061253516551451800331046366137648845286559843291910396596216391092117248974423899555917137085531093059636542009114292234318837673789296586432891434462965878680340313685970731699361322384653597228697951793771465239626719828207264236908877343309634464404410044958822749885977566441812135496283398819808626677780140014540127668742898854117956147244726844795849361944833758928946763198701269097322588456387922467040960882727074664670796859676166288319618352550876388088629162536899118369349860886590906757372944390584594420751191154593281508428108406560041536450300861485450760245239732679575921622115338205875988379757696890532159651493106718977443549572968471053377487813269442579148069529681022134247294028080129835584764073063479880392408391021894137110827344347114592899606218171935487349504143376306829672501544002878960131529089345555976797940952265542178196206587845325310450986030242691454728210713375686962046704984695520168542770522844552794194078571329314935310192060193382635766834484545708554954014751425138521398475285150042001063366342042361058428067647691441665451847667147387519669764417749183407476928350286574273857494249525973337568117669116500965071624884768823395157523645210666407837791451666551509002047114550360057303238881180007482796063367851302390453639436653447296771897589276663918819331862015717540542826724032445632956593747342941549732856247726080925327689670709399086390186234180892838495096802358679958354037417319305644351502737940846825007671299409559781535026523084698759985664335326594491800460843057821140182445471165799228249134640325225941451470272451985951855637459113679996359596296601320273113684557170490021607574898316457300709042542430102705357175004714772089118713574434666667884312317176906310098267351197867428319242435869066943732060517935026249329046364696414450120210979977530892432174326467586295778486667939356203366270208679247164058998106386424929167449164560489460197492677078758751944384270774756639338873547637231482556451276257222153691306284878770104697815817720551435762080384486069470655146179978792138788965986467243327698910413987318328035019001504181048707186266047332066282120013291334116229961756317524320610259599119348754571712842156230307374241473718154656101824683286142237196952231168869760497862934014596991069254417230102102690643173907991941469382263304721704948766929610940216346468978880782843510528476285223286779707073097649011878087670819809475085622998546433862140828638876626680887767984018102109447718746577584021336824036995440026302236834592997087059275746067168779296521987313681555134234461901781177294560974784261929755679444601358058012158683294344678207045225978305982747422612316772190306799054288565597277507301557797812562114772854716124542369694103170574097667690828175728723991623109590254587029993164951317214487815185369428251052479993695111522646237136567100169122598203651805637063999130722889627570160895934846342343784129009474237593404605605148184272842862938522058790851950749704147762402470225046199502088667078296864008936213294017336036275243192627339811118842105598484404655278900249044896856190129747886078457854669714676129160379190397397248677363454033786832530699180558676210415523271590566609357749405173888648665693161866503566209676146944336025589844944819942632810427652917564627182823832109832522559901212181126985652410173867920388003225679753713050329722143626840700495275902100446655443730979003639285118185926959296220376076647040805847565858488112723659434843409896804441058740477196419854468353162374776549472160631238640651695713424045196409688663026058793160230712626730007859579773617944965840156002163962395418653130515433260359236278768610366918472079984301511791823599927892425441553168245449766275847148748795411495601331680568620909861523561564923174948874936799593662082534163248367426995465578912319339970107827155464287273056387619604488029133668923609864124027166200921869705484014646683487140708477995458729147869648797597763282662033930957146432820894649498236387312267143577495505928048588794851769076260634120468731445024572788704289437963785408876604996474572813226396202132061628072163836521318143932908461645582688321017332000955534430309015192474237282903346523528100275000234235284324336410561951880526542856851119073140508381347190416215992580194475796392379661045225514946975245881555370301930602666580811299919719347261191263138130872630535198622150029313486148745132039293148677882737930431240056818448326851714320291046160911499906740209462861575905580606676764042201445107630544951688718702505387464088241798373269220741984091331318546101448779610657102071738977792995097155071182803642221983077386777835431897639470208303981234525097324762555359131399476390418210469757666078975213853671828052127708652438362035715687255472785266394049156871778641813639402279891663327544150654086884567167196055844103443169834453518936277473065595829636179887850256366454635401446455745929102407533728873885851660583167710000283629331666648172826637479966679584757049871285930906183605072043183619390297344429175773125565147573149997606973657692781117407466245553440872976689915191662606783161573457073723371588050223638816870376790534037651008346752777137345980238575715957161771510602145292426071095903740648199040463717762731075442798948685014040580713903817335259598924182909328567042857115507062646977605584982801279244068615891701566636911312295374691136898078116143054853633196927888282279290131570272101862094290394465003738023247326070713233678711445978198143518391586180332175845252151109770314536576005879652289826422504214821200602406664854358804762543539614364648625364147950838289176588344240534952045468893590778593418347558985587684309965152441533609172926116219183892976952611793366783883202664300054354176118817623121670875275860900661846704812311623379745973023457638914794038791334854280591309538961856401408617141740696700554128184033323938237436934137878451951662126865046303639780833423770974692688268630187852027833709049448900632863491582154496344446353718729300019080572535567220885928533525992905127079087579099647376004088305350372433138893191484153220470862594105161785475567437736687845339913087931213270331971608219857007024469810818441167522539931131378633465532514455977881919458790200661813689124799398430690767717486526136060399756517826703151557931434893217317698988755576249745275232186429340367255552419226442754457032044349528510115316850227418130538506167661393376887282935840403347752397062146760920266653066143341411537777291911622207772867756469715080571324320574976030623069444654555515772505645965194944699842187716770138550749194117335791977637666714601219824620739492720696189081347523424685321533449585476152161811117369056131400407805167167914703886923124590943149154159818561522300449510702062712394127329091984962763621801425369768328229643162735992615870164190930257433648619447004298525891891070769619162277152941399651015253348070413259893593492143414008323409843593620035185653494752865643096977881767161967144693733740443946024722240649448518848556324364043013266115074456758519845710424964867138678477536046417035103713629064937418029242914653299808535763812635900195666905836282902710673108210343504593182136545506139521454219949115983325744718018853179625156159662228625541034768033255735769871729198085362337275108958733320349875788853924862264057649455268615194688471006957480203607506971015443044815976199641233602070839828513520443373690728009903003016716066269935021326581458884666150838334487129448547294846045677774825751659529226058778542336940458117479292182722178211710084108032151303830070929162150235352233171843128646924235198906992464127230940448607755537064796400801632842578347572818361920148769639989033446353258635059167917147309652708346986243906896749096572838089841603100998400632468376540656230805094388448883069948406711145224338468772099327903184817623247529579239668627857622363383373778787263407906463591571595521592666582359529684294450595454753521241996945400770574772751681870310373865385663958279020620499797858028254820927702246763846045090921112228525197564293237157193278065322552770104225439060773771566493206088054972092762981788388889966075503368888140705149049711912337385793295243465846766417172290848002771626362890158793609589412174085005815540035884839743642004324399407740158137321380410153182139188010993705822433594714615525248213082969377245086555303907319068217926549720281367916993196671338008965444786373412006725726613738359441507794648434836160008378985760657869105391694730940613895817892412881404804443681345535454667840481388226904854728281179850719528886934767366002420224247358552422313174469804766537543002048549707341476063424998429238129740686805966402337447668928258452191153577044849157835600081483449279886534186881681369162275488028460890545310498695587472862204779951533975537331424344308370241703886849358511925556493220953474870073145069929099158585983193408060022635361804192534224036969980417294039759241687199350639115592427583243811346397523735373833904166800308562177886167215162680844435763646628291720121922482115473981018750030163430630057178319176342669430193425871779417928931674707929848912884107733150891033756998010989214903301482162809261821703704031951250531026347892115520532656999485421599222385567788401304756110265751952553056084955315110345550048187047093888281165979503642299657623065970240322251451603563048064088267232698431018513598797687110897842244627196358733166912937647896098313436171738295910807525465430366667299672553386105324795897575701829130825450967589798112413954167285324639816359596303207474218755696474983816930554114403713122486976855073368555038105714659290549229275100524992877350876501474742438010081250258352128551368511097756611594334875368354197887519632135656702323581085042555874108701427323480502474999747896167688322477688195997812255266458421721322362834294852715759409705572132585480811925139441548555761526586992585540358874072717926898878639125755356467121898833102221964710117420201886072227501404007714556467512284334708262111208146105941755247538398909902478037058673605909218369293840573760296537124459384119046329360579274627683787702572193020073403304067715800661682999242625716242259734394370148659294933342898687304634733454405820532816915618701499987243770042324662106349137653393616484851889994201915545893704804784681471846394774356163281153132139317151692684919738222470624162420929704464762217772321558018858380485979785346755261489875819853408168995729739551352127081595514836013508416036505516681179607498462762410323780457005281744653343356865446332783942128387729532989347502491495036677947599260135054076924772821717711090513195789972197826339719583299613757513047641228227772622924910926220289902149790195267297555769467884975244140655331090970478701215961108963694328993030154023847885526282295238336837146104893584777006139787709587928400754100940374565656954525275985066069504192854633242766987107526076121452887434405175066515897363196641016157017704981053739056547363634506389702684164137154012884547105235890780280963107427952876646405484027713064970884669081617497353932175093482603113356646158975160761410319806159805184118202676791135732068455846764007648995505690074648550887216040421188614181391381102776897531929057371402812666321773152731777624122739019238765338576481756942499181046631765212592235063709527339350941314699838515919097204923511568464651793394526926015203369754033666024883184956567405044624250576411026791728723170225799367626782865720385919027848571917313502868297483268026648666767642649395193449105580383089747468696718525331405153496794087832680038597271394913110163939356174702134355875230562244943062409090265776837463382558092144209348412155818986271342799508778908932589214179252045896240462256244589985746821724184654350774220729043699552134242840217279683623373083608663003882630332340874304657719496645758977667381024936285658458894509155647159888449742837821229894509970627475604923512934971966792948401507944196705750004892946553225566259404913982549711558069284954740031196198363868897521725373002173127655318146826188740057147776033681706674163430083225417139959678170321482086610179300768061942494436038113566738383269698779905195894646617216148752960319730684768974848436676764955843754021207479331438071979297785239324625082234134374169494181179634772810716674275071793416524030532963430877697733027921281170302359142618444455207445539909624095814591192061672659274924219828972063141706604517902939347795513572333451845559152399022271350547559815510466544658368057112886305454484482442021651059221467550649230285183706437561963325598339842183289530203908962375151221628809490563505184776988111458180190867634209564896695130993342370068921315421522232624108012127991440136593579289144447242653456133520170114339701349582626972264502648272874225999307316552196366242644019676359385575041828413614486503260547533321035105694009258886535014104368588633723895142263243080014216559379428456671323222021426940978656785494524920227686725031652536236151947533598648773766348648566653380867218498523145050828654896943225020673433415413071566761328969899818894161708695133934842556687784665653411711088181376235308011241697461828109766120512578212291445146815560887767295174761011477581149426761200673294382796512707247949834448704613833916652084046984699023065782951227988997436970796428796405511572751491290139130442568437477399002924159757098264256328353222894896752937683303995246072934376461023546832863920346383552143710735975678821538265370402916257226483213509162518764743793085650706065949291644477467134489499375747744275719612422664897908431113535632478273909455680672829744045391035851422049300561876767537191629194568993210289348303663766291304876478141272362933878723461652550577919716462592017934414593358796165751112032466226386507670018378580066014867330346916712952656743893921777045498820711613697330245646258747942630235580242836926857419919571611698738402999727166483615360912599163842746864954728374006260817319419899313386036705311877841120310100660701940258675664024576059294571569179126305331776147335968054920250213898788758604993327711376602866184688662304044835201415748862816722059968896696621844855828395813544811179487518533093046411682162094915174614164283303812231214734692445659743161094927157690022897706346848564861497505746485046688846465578166884728644962434628911151048929366867901636112005643360573945581173207916273022879577339262996880062838437923072922425648005380184085344273830230810172518793336520755487734554531055715595990909882780437520985124217423673739228164947482273792965749430766797769597983148127042331615615110380933568910338253248776891191639291763498856941232852260166662915672011464001696824295121211100076578002038585715388683343992909112865057048005868478643519496417145814069829470926305131664720125991229728990924022635195345188135269927761826814449252286075691171670247022525402269261288154644226665685019415125059149066368757651569044762211452807647847508619235765872261484071574594933442371707683036628604379422779809643432137229835004394871672714215362265707873555513323872767885414310480224047381941635557419326182289321978256395419587496874582370272608421130866924032600532665269590799374754739112406744976614123479676388672013305528851485167129479481147827857076343468852073799713973356164567089509483221938662883519038829476088931666681723459847055304297794737751424844011938641535930750243208168167288898844882079300284252964543574920096696443141389611210882626741692600782156825249971588083089036638530898529547802508910324478111084965639266539424470538326460240292616144258007298987173547218244346350399804082377763602007203799900598856070066189301788001858962880575824970246447096488015181032631208016258119215204069654487850405759120631170240909236552138717357969836416552037941098188081370942778277014658701333936680738797142687142052050233277743213745125705903449602406685006152563156736279543575090085477436130336500126799145737974378213785976157790484606519270161545458551149466713008545372476930921825441345336714463361460863450062511794570257373820490293176202268945562029656543254133294209953562878804225976487580437474334497251641392900911908179592130939726235377810349034562676010716887120965291009347574264522176851837860670669616471515101719824421056877507059665995704940800151311760112345112982480038235396504986449540165800395841804296392361892642010883490451331586931400990085575002025911881547053224168596823707772786813879483846469086858446292473843332115254605063877785913680119459703693932055978772357872140998693020861771938424741969099312346624736006101774531646663914126530062834074475444493257081553807797019943456808064476009178192779844460362570249656029880069033841174715154395036764785625125754737599410008818135608285037186804774414771957276118755226618496341785020843170499253112172820028043956347809612687211684505416615425600299290323922846228510490328056626701707232302036561874395417595242989111653715116007901430701444952018484419197483363933199094400362951495174688487039190492204132045752982317850589282057463199723831866138687482000526473562469508949726551121340858254962059009735773305046355850588216064503656542029655019460348557337166523801271503050957806222525135988160592857533887895135882931987269841737094670936838642946386188581160994655371802693048649131828164754720146016994327709807643850357954817037685226668981641581306618914954057630732104282494121949748224506991971162819893981132440212334629794135252503384300842285975142215532949539354854765725766735251756804954036560187536310876648196353760075848596712554019159889709587756768577054118547855981286087204621733490566536479270186699166377609424040097954602396437187265804801030723031398688549738460066815618919000194897836732309398316160174256881674808114326189926439828364643395657987175068163072038284097009541030863293446197564185017945713941143553542700565282304720702147252849153037499197610984179227591988783313042493693123596084261118554602041984926870239773897029946801314881980408423181845394911009566030134322429443884363560543054762198799682187796927530139191240223692020729968266122691642770190470492922450723266446493699180552575995146848034430339539935524754245413344391630581098174876820779195743336039668667669625422972037314478760572079798932488894622823227110557676541080494583699487675282284729410258749260730872844743632881918747578764252907498168159721604451088421982428303349216798838792542869658866808071778908087536624811052923525345180024345277876848320355583829542094074420114047483115936090788569286356555396315069856805422940792807571779807006702593249687885760820695549079893096807911169092818963472814973171468263250909619914698546471139870399153655814349894239379433166823888196327118826834858670027828418264647679962163319670281646642307703931064693083000985220626537991633597951349470274017535858510151331679925102494646984653841624139823747034545533221429664777689919923661554249932433124698504431342021687206040151500554264054275360042612399477922610334772872141342666634296423289089041002870115614232631452752415039000117441936349036032124199467250550303412082585974075871882843993699983656890547699563863588687586090925267076592189287806161895281941709005966400439041409274702165962232899929488593352452744607102219376593583300051159212129138370687360803015720735404385234527520716204985341557667774917241302985496790242130514779699795736211366845440728198286038786691399837199362779306386452848846997095459420027994270667523635104717571969746755046622515502717770705443715798269523290244674476115153720298838296186098793095178094970595964083455238778185875812185297354327403782513047187890549739391781349415687015667878229334176556844645410250852236469321307408495722608580553043513602330161423138400235287144259149066109642897181005940895175009732850507628408668999742327633240129457391165226381980652571927100792397891062951571978236317527014696822513378362245640250276702380772588908444479800092106711014948785990525915220813729102273181420725435195501796300005448774291244880693365221930975814105819111255026448320996889726166899003853656541419673843595734321389993495246691312172533237630628861632473451090390366437245610225870969800073665231457541946423954924596008402586650145535850467819490917474931656963435487275531272336150520475435352707669647023414102583652699419111093600662303787631412921421765698688849382851588189833051526725781589067720441098683689302794222537181265436301777567053632368479393588629592065546195024512734926479409137750785199777246382916308072378476662742992443717087193224961248820474364910579026908027834700760588592785258453462352186716124331891196135775648074527806485842558987713508250437243822012399263971284576263488686771392520002202013041890940126148822151476446239843855977399953513411391187988812413472018358021199396231935065889113103463736971547759990222462517071410227804965543713120724401943380428598305297342852743358812837663712598637468019469873318672554132572671070123193807901646657372414035760754729034139920691369594560691501143022987596146350437664931761918966542206023068601804685724441810587441958924014746532226723149147663392075951989071109922900986609734658407299861049514187513755138104490022115580820789356108221605916886348443563836875251991641370085926618157889414391712730688800089082969402376146536436644513984771947185831603820776103340121440046524280482005544084070872702594506554234960432572679737271073993197186148837067869343710010256443974346463339945458716101890945771999642801000845023616318277378364848838393784014093556508737378364790486159629156799143505207923473661528849348765579791632671258385209652249963840555482077213806496066558186263282328179288866779410514728766736436566924403681240064857857043682095754177767888346860343594132796944301387612920541333455676732222063995724236793961860866479683267518271441886814777120254799103179879057349407113964527648355201728250176093583330755542769344941097495071023401187193055970929732985365198345384638661053297546467889988518392771548585075436281099315065893442563007671140421222015354349081657126798077095825509725448166816275752967961264411055833941025107706083494124293208858458674812909727316526357030206987030707071808595631039496488814460848065965899989844332825826338534368187793697038448822021643063862392688297621626003380488381799061170320655911236354670334908354164912054353128245221304259170935166785014615069241772057910177154905802541231066233901219582407983450844958381954602282140912321754203199132050140116186518423040871474098613028507646672957286811855071201332236560313195240106520189276056017841214212242516556184536080923876355805152081757300211596531885694943365194495861441802524839997797031934542409924268455593891231427671575804939030467843866881232467445238458838123904777045513886382585304541665369676586111329065134317453753083844837496108571688856923011262298474133572752300672542791277153105977485621347701072035808218428888253634184586432698376573851120781449877584624309695128909329341423325682892646014255156356672203772630971581346759299773983245568396998227273751541561997728122575832984590442746788687782498690085438189002600475382795377423016487870864217099556784458172157214057764048606729599741185077988275500059450651056803073312633641249899067939549761536688112528704667062397546711005151719742104645861955971394376166926487486779082040536526656398435047289070085312370417372489305618667236925179833083136448868439372439804721795642219509236342454075053507278695675645266921727304439300175542793717715902992386872389774425738470434697304409727409922319345642887091948716387981023989410193142165887248858306202771156118647098435581314606837991178040306852923894173841941770513177273841061239314807084828351730661887998893119257719524560339031239925902845442779072161266867589228134430096860251545946070375741636695992163485056102560207854313163499934854623545797969800002194214878475496535151234111067062118576329506943114324332608228425265116608390429013227783492025032167042191892720887019076191284284985534902417021251468146101760122916719610295306007787868756558884801236805723073964032295314101398391975786162981750474846767984390301734376124202607301634951459438082353266282559973633241708342803469916001342179256578826037675609501097799896916999269054294452170917848175988193393920994423335420422345828937917517521743066419183792462361863579474288419756149381356404663609715246080115889373059662738772772722370736640066702640755384703801678797306308776197902223115406964243832486164126624701798215568109419634463552639351213089015711507406610495931976655141997094286868367984836772282373586259060701499591363188651749149317383669730251272277133615565600882320590905917848464384323149167534541975815006896226650704018359931415536751100405221205606074096234789640587223799984929938860026983844954701872270799945939369905084692274322238665296849961554182638238956255417801975841263011860786245537950491873910815957823248004495501670698025423828301062605574770915333481430761197986814266101281325366467579971486244574510513824866216739652046042206117055227763049178442358815325650628514240264547561811124589052734286463520003282896762901213759992997346204055521031017308259579732569846596190450563260327893798848233320052153947707735357464742191243308465550082416597432407671983403635745469847400172847172920757170570200347273023601138402264587516613523561303318471103174527248416157529154568315115351087153786855463603680570981798729334623886403129051744629610209878231928858495712115809956261370382270060529230145257227039739404987095620977179584187935080379961267086609413752198897733457094060074330756206339151863445014658502890676789874039630842488110355178139374166558980354221564745298162809356923183795993051127093381107976483360819680886666996541484230689187361736989492550318966154093211408715047562647072576693489762468045137611617837049505933770887937302041577679176118572618582141056705086025217417126909882174068583974462733334038795282903660748490804767115447920035934914834902659228259123144440794395432574051484040626259658861288657585474480294724121632617536247163997051383895674548442666651617975166587131799831891555492849453543142671636263307464450610913863638120894157009921790334720244072009899103711679943932487485631178458400936205902786356305537669015579976996147389876751293803896186011959871675607487357054380644499746513658564653780616836590789164967070666968361400365743863613288175670750912005843552106833663474086373698544554977514792496940505472768623145122889932680744139159503163827012702395511039189466845674219665953440443775462552125879965537615078081266247102981938784405472103860150226317008564244264399325152509783005618205338760226366674261461738383923285604639267263591970348742945983580664074028485019961197174651275851294057462399205981235379227729538766662637033896281602800688989293663439698681274436716026295272957411050025687759124400255625434577380147708668618809805931271344557526337197943358243490293348405488987192480943518960335659464523442697854173333016634425076112248061710096979017757555260091236858528917512879792409222147108954412649451760613117510828453916627983002574902693945845892705280044375287693867891528190165450092744392230024261336747430356068462547182325897100536624298795523481923755270985861389613218261144738630161281608834030764653491707988137280978010003256725659461607715366728601450921054831944183579882269385469347071864738111202121591698462993960619344619750092986288835435341509967711742328221538682441695495132751620029120765524345114012332217394090276108929256179244182340345291853777520369089767580745792381854687043082008083602338011982031833313599669710601745575591086086813222274818556983536311836424870523198691067356329912304680272387150406060079115707451784179922966638196693337158614167781987256390455327946041130781016660650270066539331412420142543338604923880851931347403593657480340111120925266897012720705083352934851808837887182481167412836436104884613814163254030692275755993828993856859403891116563772526187257653900848754017654811571149602297138311978629045495175652820050396902423575618087518065015623480198631652307889666270051981304427826744775285045620328583846817703630839451614234707069188209819332212953201325564878793956234119234768707040415265209581440332476945415824126001845038487934758763485381881534135683493876173801271855605960200874317422219716784138239803051943052585124855741293009265242463166088899318917185650107157836488420690883721923353274926844840391913907915439328747490974298323360877998403384502815773939338067631272658143076631695676292356328419994285837394316305891278229534446340820313560232202644238473365395499172103079690933867676593597553182171692607876067970797570641557665397000986699913488325490256414331964240757223359256695753903043971762640040616916855521775229872741394878686130774489394032078142110352720773423875014990098428645712246826075347027815325761591723764106505469961218953523788316899814130459282917390265327913654774866097442978364618056149390433082748515372947542458252171794591452976864159446246810783910333441749119707446749221450053467479037081965323934423544493595453075171508973811741815307892694714900707748522158090579684665691446795981452810784580422988072625708617783176339984326852927579516481827942640101880905367540021920955482709362462943315546898973551573638029606333274687143662164269950713934332599852655744234289195155067014934139256965749441526984999522318217412205034335887144796806010141422107270031394633131488403684500620755566003543077022051144166151483954295907593003886692742815864267123902730472322848376453079936937018647805631261616226887175058247087030516025020256546057315948488326739175780486158514267721971516180074482094010376984228575310895203221733584686180452236090117793285474530902961080481074001487135759802142699706234849918099862234258557797017733883740700237029655327225964344279244329985982412085157239148855838681403751457062734277494506171158309785655654208476635411701972899455017607403731909522363697708544431662344707137205801140582349533550045325235493520634373446101261976792935856233574893772432025613370878512036411907274092096719579678970445438725117039999742199605983064520550417259821401578662054905375194473784293883451195295321321315824654281614813463037067163233148068089484664859074573434433230184722123923961808228406471594453505879619797495365884336509370307347228512390683374801444518374021763462990281179460221920151172543207309602818610697008449967759777153900905921454320733194756630555687665212841471934077534907361385862111404494812784779913854157574256250431050110289382865858187619566789842126951807077615876123532771291091524802608849809989639894600301340950168364007963673576380422159096377929776752425371455820617399935508380422155815505979151999013989728167806366102380404992502750034546568135057014014198804835296042254762183203786698668595473817185413003274463686018117844291369211312841689915751820325229403577077342628035300052288602544207416095575323330697592684243548272378226649795280034380875412923504310470169341561582035292821684282037159373163848159057489713981306317013491156064889614885369558203101273445577227629503346794055142042153298703915520406932626361074579469534351775592099831266294025419402363087806452545725309072480598760516740677357354528248409851116870347508176352835201622658165343022859801954351513548421875956789919742528083012965111634361538903017622103140734064840461768546358770490672188571652421972735699955761002699811282149035051195379981914370626644312512091573245995701260818034856787453605899563960336771317429360353228975312213285425004306258991468379614203572344414887795339441781190932672537929458473412069512350614842595752434186608323287755762639699168267501116344591097994621317628691447636783935728697329461958789440837205004466848010452697847436392002817930083746295125469954777860030292012016366396279705618087857474649058079239778549114912191332697242444337896688223487408165377813566488052118738998158166250957560306451331281995121188363953846817332705106942713857124056578904705759437238048528172717111684120453192126599238667350736407951899545849986085324989850373115577770230841210558136300421430853760843639975253553006057716291225230527583661817325815907545951322329346725560691367309921703210361045776824090400882055717122277630967134166324609582119280671964730698356313776985097238713364055149032079987116330256042688360948941118966290596885010013518562584135267110101811253463896427341993219170680439789031085209863763904665291141931557559452184507270769800298942803100293415740140648187922912453046013497649703731456654924013195099965549724357773633416876886767612920601599483015212690875197061574322068295704059269523864018718062852234277031566762081675879686321114467201616464997260653701260916736190710025831121936424639319096426567663184017094237163474236802734714389446331231707716088620453716875115947746670047736101251373919112325823683639025551995258199749311406339576474219339456103928539450406539002808264115028795454542597182457016276666238023726429646625944842780035092158412450722302473105400344834044317386723262643977825016228274207242831934828858863463002903699938742894196776488268035222057061795756178971442696474615701321468125112246810364842284813912715976154141614658184179102629705456356255169276333496991829824586694340543327430685412282476717868200841581933404430154307271069704902611681630517734627710601703838830430965621189376275710484789442031622789868312785228638838074799817544803304724478332419647074581802066692972360305154880648804071160863389900870214923177125423345392646570214739824988243647937460555878593648734562382947853881941224932402286380856181539432317057079629715504761700396553890214086037076787423255038826282157559037674397628026738547202574215526367521494257535298073515762659210383393796521802931297088006516888663085947927311402462111175931799862339940402125432490579141342156542580438860006629540819185503215058143927076504873820517603743736831916371264476132965158721479682588698671878400415071185557600125405643758574093212406851271875774989434184869887658732350147425790908514832879578445649278067883007513971408978725403195902015039297112234665538326724196147310340452191795227687888991339342316244021594368565382471023784177040436827560953248202482106695273691061446368716646456295445634959685697169134405557730949241003654809043063683432962389941465140811221661302438227855222884497440438869496984038949577887395811896482680550274584248616470304422141566555574299713039830245027230500071933277886675799826882887629200056040463266258792729946488241174255526416048132651293301625603876111625421075268244652211527326865532129240968512861104067076969169516540417019558912029183753633860728650156609002331828032594337674318726362172424301126532803642706151681692834579021898263408121470116255116808161570336254680346455927931034482649192189519572916421560229347208559152391034849504978291462367705948732260454469637202805704680663961674224937913989982922795369736093446406958163593566000161992082099506545467515823646174483504794436930274416783799987926638119958344507616732701970689498811943768299168362119976143300448794778275725324278656164381053301027882455029662854031139739276984107154158531205726414402885305095033889134578263570472923742404057213701556175303072163184048628572896652287004623476417398495744116544336370650996700925389410760979539676518455204728399603552015529088716114120168691626840964914856896688375106145998742421483475189604952324584863700341087349486547327363051469866375774504207161403605656233746064592569633788127516301998296348899147404531421610006518089225704347178903081852374169254745549264898982613015018332590162230323766554280451499157462329139358352932016564056637594078216742955326268646703733861072490940990526455612307828916048379734381644402499044226030395127082267766395276801202141921249767061239956339794356578793512165231506506838396611558427010907589512278030685397986734782870193758890163261112579062799552463721335096073359840246252313854327487632225468285270899957788890801428498019124163756225896447067283279900177915695931488282543072361177332812483455198760240628183649242990898354984963536168540970226992861838191261549355688647723104749943046664063843271351670865296995097765504133784141079281592948188581539888856275230051846673818557784667306204064852323809721738220423193783064534027572660549373522969019449885828299119773689777698717334530096038153739967860516176744781087967886002354908500033718470630076856968271375038447692561854519290852444014251175839468680935419343682993686230562622462045929794148148496003279985112223578282715858924570723556908340979644729028270138683954929103748608553619177327585940115201832944464876744690527651496380440856522041833484668262071949979079134533902240495599867692085703136777528423714907620654874682332016748414384457682549872897430251094489488708523868089738319136300191550847686035531362187215714700220404296105863912914354891270554840634699233743285136253032684031748879753257277122549765714848451270934578711853310274354544316090059805053403083071321957902111022614569550168639318863762447553509621668300910613347091741542909277988489882807506532769315220878441583126489404568561910365407738265886015600023354969500671203551270020264537895192692769439094550959950752052650682607058374671053006734630000181663350235865787175246271241530890222266905529730907557289212764255370256771531457586770746146409260179051648590014828292167606463771293091101242419204111754401678462048604013376815548360719791243178472160343144338548086434853916559451807689847896389609759104570280589676561271101989526156646719141399472209098280335022008232185926840501542049678785243125715174318421945036844742667101662618030772160077906721113455124359896475221712783549444092744903675968278630002519291754392623594141713311908979538551996758809795442237407254050058865582549776285088549585150408117958683654435983875406694474645621300701427499958272601914675490474152365513121380378424764988196511570105458949545719441187965392733326628423683786726262416473292821872522627186208504043224251695652568389317635537984004874815194106728393066471123906368084399632002256334899012951130522464592408226253460050181795915664640822640688755176860871569545696248228646262492654940424814542686369065955138277044289557190187495388693962072403230362209799221137806475369969680720908327389425608419561196188569787422811146424981384416095077771606709133430855339652735832960182735161929558770176798741235766171819275727147728935399729740094793014630776703489732309830687644720483686570650596817411579602785061411346023394787407879111789264597793052041941039938533266170320694431050687973254147668055482528961950267950291132036768581697028999121534976282069721443384442985896804334770119601785070431029045784153831306498975427262811877667829272014254566015959280999217396610935628996242526848121093241867466503759323576751795660593779620708770274906673420914607970071863328081382698215665161777115751824335109762982474618988073496933899146163908071755933521876372570702569197983751745068589526419313112242009953664396019365813412841974446140811907390700807072291833192947239923461487486186306482528664879559852767424280064651202649678058403852290418747485881596636901291469524335304893285617872540523889567597115262522220480848290728382228777548907134761738532289618561596315120475207754119936899222632021657635822129662139759477283530605142782464103161137877038304644360300889056040230831518333366178319293886109232255342121542180193628441239690110247824444598206191248228055658595923860382939620966686414922279675241829737291655745335622410920076741752881661773162443621349897372730667689463781487302507861503171234510182237144534779311649095694436149058800989392988632880690104030444324086765353418497867142791642738221948635059629746185033384040369775658382686856501391150720091137263632774371679901267216450464359061304434877686137388374007941601410456365073106593563037573103259859099472525792681932932813936942826032755086792873220757449080772228007346394396508874923976542190127759777059415780050204210359227305915680562853327112841530946834010139207135569002914362348677463018482646430261635104136813698633635746877658916561968905304699303021223134619611795299139594684326615103096695625018627247135201129663485238833918913257921850816608117003401080240734705728370375061315121781107655198345855643982916569027770687445674498046637998219310382280959995845824349967898979480103329498292941777900660183897909819641005066123656603666429585532207288923447781886538306844658230262302972888064374803650225442049171915879496005260158422589653616373333478720365950116921585324376287555367800090369052281105739257748115679784860644860817609131559780967174944353951825276609966137526920983670731462528741348652688264835377116818194778297183634813671836717969721860401037201111318019404451572449698406110352233145080062494442046336919266435721450634771029786451296580468494473495507299333885029320566573679749885821109997634873809165900243038692763853649626764951971245907950427072310233054193626812763537353367094963071572300836483971892891371758673431365313011114432887767465939508148442516361878055936984282215536357715055477710811749837431561771383883805894261395499244858950892844683802172559059188159466945523696843644617388759373782121290726061698404260534229192605385836200286428831381739739856909360644146469877447179681503198916568373071421915088139740045072656049091140018617123500285508470275494785788792011114108088631322739658465168274761568896880592974629217026646539662262119547545537827369846169284049175259931709654267302017870902388280031084396215098741058679872395428371871733623145006308345488629510569976343845731693002287191271250180936676794491795727429916654434328863027397992405762937169135824512650451065839316995513024454660078459082658682906500671025993562649498313630319748742004808447123293607596570943669721980816232727937069656656102516669203955529368431426632903848987707720997434625977282385157164449488228756742277973947043333246821765983576059528209100645954988195988550694921382907047806842648442620558935951606570434095117507842206840469260754153138414032342663580177802743869520382373575047077716333767178199001626207616794456401806612241000850800998232162062243051976686296122290687851643949092167908807899551269863950870345846179130588862150354350950804638174823058067039233614071500243542469345485106853837056082826232228175564405366062118678915943372916105292330874622712249307512124176400855987279170672151063649317795802345774875435937398390294649977356348523014465325882982354751712591683424027758700488659150305136050597979196172971780076116462343389750324928576516365073892924600503104778938306558158480178930786774560963702487412224158465417899911581125136493402981860360024303976172433703463067328951099226057858349819197257008789998178780228044314828548696192156799344677174738161183301108672242609450895377110345780066049492637925354659580948826704929389358284952022392069257524189112588448414670152347112996131816321253394726237167265513705405734826784263624232559373690901413439523480181573148118754355742834744164806497607613837469487331212067661437600389708459658265918235107113796801921890841978376511584021946749454120222441720712628426290833232406688386119264663734210661255864611950209549220223215342552565967443177338938815180814701387794916616144043454393036678105741902632016461689525762473668068091102732662260858848180016246192409145649062279635859231059837150142910830738123032261745722926792067701359940823026789882428882209991756247465611588823156154220564552006743210350284583908052016482301165889597507982689337200640737792926641707880459242053171193320627592874884123201338446184858606895584034209418192451400988133391575147435612283589767408302490204521075019026877635498888539430418476984918769858106526983987472546794102601886274163456604486370901959027574074003201948573141734849203495556446589681748229760660040374417639288614676682070291598457548667544177254978912845216641402697196892608312313613068401326688532959294026913457061915032465604104121691562174926720507625367436794082470235312487256978429932816811544319174846293763110323438186332733037339055254856140087152194014705135230442639632820555583081968610045891426274953282961493150455459864646910007647247788028592867732610081562200198848175570821703985145456114361106991102946152262911975113478630530909110813080770178639860109123351597606204981616855854832655557881934123458017322345869872813224021396047140192876623895863010077297084229872988422260634633819683509065202534713366382626953027607087923597805910729899228556689581221166659923875863551814073728586004322287520594913615171037777112083214105339604124232683304214169328318910624574326554000693467739868265488624985150866292802111716811408337994950898148389579204905947909255789661674897166991266812788036991857117634316182032999556252829610004726984290143494148996218339220450388311504380030528950070670684293021214912143468891484772717683389950042634457834483519212133343672507073747878413483169195504657622221178434427132233194771311284455768445744614105102392422052719413015822322747970658635084197136082194838988160638810147736957873364565011650487048379868552846039998823166041038405169850282310287088536748755603195870898316961528330873211178221290044018885762010472641650806245440115400865365577719904559669929456471316703818063105811286490666033820862277305581782411263469676732556664612419198784876240936403854551439580550176753849871292568284389646789359583072429175562543218023796152805076058643519925159169462769156769129249504069737269095318522796239080081863948672402589663689049951768672849129574349923779560289243538010490504588879249002423624715464852458587078728654758580150377671910616311194096532386884543670249107981740214867617115472539445680873045068661404797145846661306653893382451588771396779924109992854938738985926385353195428838756313807432314316751170984801358666617431073652384896523333200977445437816822692579282283685045927859740417117679622632719174864070130640535406840543470974022316088269694225215546272261218863716077753122915823844294661878380595186874136122624138542425158141353548904591615439745704990374572102525416098448608533285335341165386097370048766003652132253400564535505806030974613315014231237297223868558127048806735261698897752129327533544689594219236395337690525505679207229653050465999967449118219681123932221863088271887522351632395312377526181915731569646435629105982697448989476996266444130917836057207374986392017464371425269938201818794884946038233906360075637473414777516003168409791699275460924567714464956818920454909298000026127915841138140775715071883094369365066893084912738439542119210560250907803927089937844454690586284302461930888589146263983412291682985952519956575133111481499657245774944229731793116541719452944304766119032882572583949483392825456751828512969434919594516896896662160273125335191607487278174535609629117299257250265181420843967745499994642853525013345684819332143467881459758247613106762221329192556438430917870413088863304040261556261062545974956770682065211920863859214053914997116392578583335796662473134479586294756668733975155627016045651201841179395793558268428150932584442225683426561582419239026154117838101242409023097578438634746834008789856289008367998507965478137195160877703538528310658663512449628083763543377963839480294008042499919637303784052420234272396617631715834703571848607560380787628744205057839125695989795553011721090509242449493100391046630670617571701850652465427417887370536376836604120811591930500915359494187265045407133836001854600723992686415480317170906402947842750826334215445837752200484211587806394071863644807180281616479312009486631701141132892888127713649273980431990671776660044373453647600262332213780516921045192935732301817132232020968459883444473345863808080355968253058880466335706993447521038970638671007256993669312830244145333047665460252208584534420979095240132963473237054609927888595480111542228301612660016685776973831486098430286278713231196441549507644396405053958069389602011963472028091630142946507749062635045044516213906862665580446099888430520622341673919155456707963115499794312370680387774440119736180572575207696664124738736462798145470060031944119327820586422354415950340536603392891165975878751068007288747148823869636105183996905612039523532912161692881247560420747570462883976566975065347176267074378365263210708962578785795741985438990772080747501257591778338938898167024088118565143150673280028773069970476597588718380980307009901860834126886347160309945709018203869327286434792915282363909192090676658813060752526464560019467991510795415402643836888816576589647710439946726808264341034030742305508501138863072028573894814641185401798478918123620517811349304322206704465041393207833072843178429643343540568443001975150596349404453567397697253256252019240400274542080056562939525022010256947654197807834812096433468548463816978788559707181341283887123427217932927469024987954649338292877207189841855036780974094973139614434387598596177596569917048614709735977080500633817151996316084456626527889216422875859573714344204493537494227209183740044956140962643793951921689552135852801176416472179323695329591715192835557856525473445781471872358376355066027465379226764774230102300384650821248279614882179275275325353360184524446175970282170378805748373119498283027103594906394968128986983490580003508407341176167389664257921450173477399812825462509038285832921875346053996265644863411497063593547167112506445007039956096611163079816559009539127595936862974312482806273600281007727587345153458852481253020497633961006213931026516875392740183254928475488742780028111719669239249617871888998074595038337267415235739484571778745961832753441278918920815828666958742560636086051985848326210699839983967161820252498713289396157516078238340855251400532854357058352277418721186564101714959337416186301970248018812886599991187371262414253442503715136767206289001052723974721986369333169171555659761053149708244709388336885030639668680513616810350708874355923880525681780177272521149942971311441275860832870398116774135965328266752895963008351042311034211489900265022088276567401537436304474584172857909489983928133902274543157373871956704988865330769919732146441740934930701799203563972339886419629755165839367301946393053962543488052397221376660045831429706747193066150186958517399848432087293516721806277658221866465895274114654761540942568195541570080186177336173042395684277643901369486304682680480362420922276864350510302571156953655696850463680940640861829091832511865018785774630364526296203873703676784537303849594333123052894685009757866536869144222517679619705431295664137321316788711766381935654010867583556137595438088507045094939607848801188774837502037350497632657334133642497747087283027177106760730281428346654580576667624351014819122031853910395169168524639824130052592388926055137865772201031648399287723425108431218565488013277305764956056936053664977590367040877469915328624780585443226628866002860468422517853100762267729136001690010597768620295492068327535894061176309972830097880781117721238149247835342671337668545850624365379390375337524841931728967030935572172412179420186738078214905512951905997696032323747672279896101274555235478876531130414533502639733854358316199828628425853921851317920610417553360419492173206640854501193602462940987737059979896433736910956675711372534575344525391890202391842503661795444200894551627766688348703121068359491402338027772031045383090875919899370446670286280603740797931083435586903812153094176787591438076551209700828515786459275061925921211207480087785452854547568721937572007712313754684465849705495279868075254741581028133798486860936983723623227646147161449231186826086904950841440161023920923499064550426275822982570923909933609902025494368006840896422614331926092206255617885685005438921261282692477451782543413760933693075137562592822053842608506602078103629563420495410318209079848139236114851930228472120706950578173043501663046001720001973370912414188400671855266219337055990208372972172072042987001703146886606759696619944135407144109765497906424101978980420774306988413583576608501698452743273821881156251093497552085468679419671275579442490626258495304529208992203332049454100833802422530347946652222676687259417851220422150085042311599973656809342682027296205865231780342364581069316393509005723342792279287815207437905468478529791225844093304940509618562671483742401063438470467583955069361312190090484642691125118210970053903083005062239704769877215160242618038953376364199092927192733058512909809772495540072752375681843247359930793248062287127797649875331887561608973678656953004158496932346383936383076970532027647307642262200976238547989228359920787364225890744413195114355779108606524513922228821578104828674694858428684418554650656503692920814338354645396980402280058206557364478513992927700221548943261933628625494467232650324569567646763075467913286663167899487544732433657220542415376212203027824431156046101472066556968583400210430937664354072863981730792600314046460218088521432074327387475871924114697939856968839722764756948542306798678975144295315279136721797348944826108960682674621683295445895316321916705625249234374454928638332760203057009890100261875487581394225777576044982209561903177278859412601946014279458568532865854047037150673594884415113715314996734203466851237807348112225203314240031851524027810016767616382715016522109013371037748037581785155753770886270943780985438255372027812167685425789967245531354451730779671892476947071840639165607355121600153273179822174787394119843757095459009944120509372952496964381847810589743256582547159881808143061827894741758941251997887604562399818943912294377127600257315641198171824563911698189351134529954852343455576289286477131908542414226758954155896754718370067208612068306085695226073672947091511776340951842154887549080267597024751975257979212170804841865111394691145091015042997399995135393213964848215694923013065374431131437783983011020264100827496481749705004839153499127286071103323585757964244402013698834197412330737772814692855655397261902629592165452867431054148490486830459715233126442166368680776177372288403145204749988674584880149955111391145703770888902937117394083179980492529684923349308527530199180493016975066051370820754024611093106514282122033922958645506207448897472585832310341121370412241470848079897564255448196096078932018467048031091991494341626333936769691638909655286725626448383381863710977099948469462849147532754897170420891060492435566718068933897098185742790821870982778290010767440520513032041174229848051068813707220810510901943657732051195780001724257066225868427836805493954504700531515206084031960376057247016461117694515053505192270275331019315306936936736234137647919280176884379746332653927702737329396438965598600335057772126903087530022427787249182351317694574401650146044926228295026833398311972812038948927860302876906973596532376896824698343443794737301370670692369328564007368692300510874214130025391723447925747325530606203184806375683567392337420329572966098020153484907342823272768740900000961793562524784298388774113535400787322399367398977080524579914692960547978637680353558643577120798645583888214144950724849290727949105732077663837548697253045508178789518024409691267317987317687010036997978510714420531833413866091929718783119641050024446791027883545960133671078326381330354705194754482055237760164535244955747406930953871769831615906682246905259710814716712196344513048863544183139060783818465786971006802721931686644534096398953842571962810363386761290600967400552770250767797039556002792042484216598841654026757932968916306875483030441245578826872549696050924124880038546536948389281647233714562886713417791401284566946990152711459785486609995234188484517591929373893655198137898815331472623961485092100512959625895995355934430517449685273532708020905571817430297639422144609997539777231662777748695467595253647467520510335973334406490622095996968852505455875182581858756052659810455798473959919257424280299716413757329635700773201980266814033530711466772459352791739230292409798516990079229554730878390225862512665562401286151118453515907411782901042646771812151439922462912131892403708371243700210087464465226026786666498952975149783299493843001074167458806929634132691663695513508789962276363509450780703466261213140301336743620511013295028428538029342734749176990771542250898615633572844969623160155016561002216372665208966568130088847249154243242653299634604542996266609079066395493690527460153105120340818890888781830593023260228840837824290291423246857378904120478099717787285944255145289478022369745470907146340463186508908177154339767695594725380227966582049939114439241870543381129113690613675198239101578387770454961339358457501520183807269447302145274779077508484484029852606758285542280126907667704922166423430534428527484093341773812941172236147990395723426520164764398095136677701483436922735496332315772851018419049117673211818421064127433663439562215011807001657385800250996020907261707810780973644987703124529365762890142809513290061621125091958390950986667002778529837769983466992180505692818199352353551592097080223105053635877486048844408803386627012982878256308902166075006987486082291141606166001897628037405801896461819213707486932047229909975982842109040235649994578183693430218475103127866599456788380098566196401162112847404780360823891693931137010079670070565716683657360617309214709961391824586220951236447640435268536329810361221554662499139104695688764253653560829854828201582697355157481691691468182805663592224679607665080099223589533710452070477570063940125010134758003823810481234693199350644700300129165152457837519809276985570056119969037183749414788182770158652322081801066401890095676619615845757273650254980104732105594451114515664916852716658609406965070871817440955276894909882196454003409210701576717023659301188780316048883260687185459354466298424639135994976274938169881711747196879733305847998742271394583428206603342321505937740954003137449362876033024311100185381802629083930267218520109568431557163455992109522014227557107437843006874274390722120520632330381901739108164126518968501139465621934690476041834897959774835792263503793464459677154740160467759702828212000279148335445210315854233596948130250501745302307752348931886358010508548647664266238893288930447844907292271662167643109832320227105268230977856245937721647354601364748427840058717469327902363139311291357140781045920121408468210982815086743606502674452029311250991206352661101975855136422754589211595029400120451078501569078501344820625854398416301987877204307519509083807032886952837200963274497245402928518462922468968956926829702505861693795376293956850244584828131120545098298961276150198148344847840714224249802901999787594166968886546320566530953569124639616567779612207037143969142493062042741847743621295125892221648729517746816693912693445763204571109918462836924313196541752565872014204572554749864404432485489635843928026834873530291711142625641913361168015741509525796611475607042610365925760737500494557478385783902169791490536206383288192945881372617036427678101662587393365281739447565012021420291709565157596961461504549029430292660289635850928107937794683446850763627321904443820614075543870879570896087036154584664952679627496031004222580029046962025655494631074858299738372180973898050386014322305417228027218850666781976149627491356156001952996051654648455053333180249234663732829834649438414573954148397025850641773375710509180177830637750919533125896779129515867481066709358258758987268330867229056702639262596280716654949180128854753077888468635660234528481230563523757797112909823484112724929466449832988336008634735174029522112718983848419395039276820404174372027831688396513168387892610923129572633171042484509157800324053090301481909351469471479466170265698848366268988856855816995067938616983634272265875835484161177189780513167131352219333628280054440889498941020105611153002673151563963071318635342330701301185227356322955406405881958491600451731546140052969058935935671510709443153885102616532663936046955918629924698325195372063272075118173294891955796123033753134622507192365733234607655998361292381864695446161363258293771995694857298513525563067490125194208349614484631925680602320041211676167620851890423250522972467196026473508268017896876468276593564664600964906645445585240812540025003094799926789321054097339895415105941965393625568828448288324938177703419102962971791480586173762662593427779778637740555666092409572087779082504435555177535308855781498484124559171738516051763785774292468360729063589127342152425563243002322716753506356087164961609140246868971240817722450506529243918861985245471265240773190474167054237502417284984625635503728491197473202236203736678735532249391792534238011251584533752119824916495057502308504134115509315245911577040888918607149235702647706656394029699428930030898949454203975669348925722597416640639813936939857351361557815559693397843418145628390394344654193507856136450976704643175713140502198660162132395343576741959204822568747632620396554773494150366460268596880001381342360221030064544849780118703406458625297508171445657930002367333111916409923125726689955894207031928885475667348899048117973600648314596230608401936555807546066759703247649231308471991683344928122716708169040044878981790488499561114142074956557199655291036190095305649638534966453711320485388277752935850491762739944505502299877698174610312512900165079194919725274163511220277313625301565295520065119607387984108557274545222618198466858426676592652888431495049822329417342781311115821296981691099295170201958856611701801610773950587098998984962301494847440866313364119752107022974142016413996469209876394987806090061175966624583702171330465609761643097912541210836767791079156791655984665539215077845644279173667514319692804832724898842275267935061938757271615111229629419614929087002181806917836358248967881509911114126342129361904139349416961557567034747713795697180146909958486495067867566170969541411517816857501491045119317502130783639010719964395200710822289851098688317480490839934391634482992976460897927776987255858528440167566651273011636436651596469200361713215754305073913378633145227382490837465741587543273909935107162348370708078949593071086295963408368808530726053968416162133401520886592080359329406423165225767781945488740583749273303276411100885574434698053240692258114979760599660543125932508232408530633025602994473342274850604024194438880265793731582853571971184225986133578132049170511992439537950968845883550703217373933020282295597271877853804222455900096364120797302710438129418626302831931834918115098185262428385619686899134848050191729640883740624756454246924785518148800995221359227384339002386806209182810484039852332261504241301995327588630467728714403037056743285930851699401333786788075430307761612694441502864050231456195630481358808578492331398546288538586638125317315326395948607562207614833987069365510773200933356226145519830550138531150235533822980518255364368333283433030962369832623131938309604012606766483054520934205765332978757297159233503218244742344401369779511735664591611173071904777583026811188279105202723172077908403910841507007942117457421514468819235667894889460125545533216125814185266619543762720252426190501596956421402616626802011884719114626860238291318273823201289771298664803033990349018952923709396449476535483796491061767000330790009365808913716487911169981157036114095776175601877519221291412131268407956609699568546033397516970938731028007828377328354576511490422981883725107734866214426592946774883954075013624855015252542657007448999409658626082021908674384012077532260836515847629600526396328763415591481617701324487749611206506668810687221873521555704547176610283887283609980186192835832525793397349910745834925400084697510375358278139079424691610882104437536519170691673608732619999071995483598923863809536495020943853014058510650069238873845464592735885913045040170073641715745993252138755221279171363673883409403430057363005309698634599645047300141323322251208836578163793500683979966618528925340502695302487927034337092548772781538091867215539604347694652098334187240040311755242511538592613576451555336878291149355267128724431608682738500164877682314224460748297248815766118748501676457037188452651646786310341805571550322541798881565603174326667975515849655335448227230579405811764784022614524969607073317934781447353535105669991364601251813310834476806640538013441511389060261594533965429871815768607795911943377750620216496987598616557059110413007273209857023323440262467670997869458825478142449848365184510471961359599262072390556640922696955849307674289370227272331047726294930437788925956365881882091017462308390266511911882996197728244920099224449557725827973271270185258889908541004662517764372895443428475629658650497892758607845716844797882134318987919325350518514312896411105109700200065041987366664699977768872902287742766733856267494223090777269673954682992620786573326940573004217909843559017971283902577390215489883103721817532843232652953415000986785506289930805672519593441020139062747993205891161434153070642843336043800826514987271927268118697346858732951407681595206899253289335031544188412824296129015878071796798405413270362785048129610807772258499104894029487959932889570701593347267100530813336410326415472203409002771237014505180052640494506718259489558904813885295807260541068503478477040510079967896543845469360609768345344674844902345566358863205110938613088136378303123138116357680515109995376804599803593514428088394360127745987801988207198447948816986995842576869683442852969831764520644311823707405711249331519869144470107254364324947287820291457581586280811318730335176085033767223758093729392912522615200593957708697610702442253489230376343817597297114789541939310199071656566568941299377958149861659919685210648908554453001014163020742928662590170367903752176348876931692842760996105580509124521309293489676151375463866113190535776219220720210347553181421101440789280903351288687384339073719011166593837501962853786067422980083535987820738021031579774077512733682152346512815926058225813709104901542095780719984707806567239638450250586945292824096083458577519730620884529496010818362364728518157413515100951594376619712232663506154857795359244525714738645101585399516322849281757768062032349021189356043485954528893761288879493631166544913494316458546349834447379645759260210793608229509208488060241005934543821645142824220481881256011091377639434070448288950775307490951371868855034865021042678446231738152789181091886856438040505248594463441311047544637994540232816117111795055243285357525949114472518677196406504020159837429516315490944030278618142422101412229603439224922323943429632837240446463031742441176319743057677504401237274777909830097175990153988553681504436953365936652193800803645363635659920711389827150498167439902252117729889709713103634316638526888639373856084302943079868073923493971250098047527576681807669274977120546957290482500624609467251835085868432335904640485418824727898631679398642394549109062055125372512137353948939340430178675589886459210466715006710156623042994208898883491273122331769545469999320728846021833052618352916598737332830014577952103541948483641978468556126523937094096753453870349990931900824868497586050073829458948092044904100627064433054062822665697881643917240450978963232015925198383347875150643065599776787010350798296451452229083813306069786320283967815948344192913702262328441585587375434837758134222259164788161851075539268559535553138655808170345784840025488458598891527419434262174688345711402318880137657815974148051090716090871061660873028131164350828732358824813041836803264978908998848970608930752455432666563207988220515026844191158906894663919143669005246292677998586205632263691362586935100631107039949777998684164084137608602983684795431203394081079089157242504657861249319391754313481356325091460368502627595760167077974733032978247328708392521067445795359587386129179796010595216630644020208641657835488568579686941049349331202186560401104072171051121166363632505874167601137328344866946667217307088335209429881380584066071849460704174033326277934954706384146578224583618241686780981156621144816653958365943965594192960282741583302695202849483601438729098955184107767059412303057213278507945036749870861717348139233137093138491907030942089511061749231106048165500626934963301411137743749448228334058105991242781550517524337468734898376235878922879559783138916924515712342740793135210084149549060579065793028908113109103166365318038596202242270781818011835777124100437635998617575956441066951904081669392354779667999638872111106880291986730852509613884353093216097734220006738973788028070698743635623442658774461927685722287046916330866417147178923665768460725200051748840324515190867983552568257031787929894107452421558996989623501866851135306284473799083663945592570832183958246461406251304451401861682188723372544371892605585462554540756967506466239195515667833961638270370237781633256092881843892778243204173919271287216572462273621526899644217198962576411833189515732446820331373054048008821433504017013893518271602403032025558375031739914025031285735411540189519240576660867238490722808685124171472980724465965993848757689136625639790788597685987502199883019042265757367624647356726248375995634888906487446968582970262671512583142643586447106718708372734685543484328048485486156760194771528742047936478327576780169657955643409316663557650778578489821732173787472092102412247283260285103542251172808404847245023017530655976058913523313268806855231355973888515197100767838062032364002441150825915140568218936906863901039396812409232762076783660599990577087624052986622234938297366979809968124437869342178385073863306085782066064202044797079110371724121973040997534187018350709556496629575315864337228661866613986100931309524236815336895080654494726036482895741747483547900472697332763255155659670517617853429785316016863311388335275622533598221834550599374858809604284431539997768209816817190152329543235379546740640276691922305521272081455396977745766773588445659718252680948456707356180412465073260760552707593520304828392706680942232492013712781225310517239223428870430986425050441966576267192959919690469999119057638402264771948753109351108289254919350162248794124073834387098614600403218563932875853886806537648462307761142222072236743827662761827952793375736729416546873630283667163897906485677420355373915161749639310737948982193849699881996802671310896738399210608721498910230757886614286226061098033398301109774226839085950952394238856463064842614351166310221522678071966557090768415323233739803132053597348288934838501322324455419044546626197766563456160273183270641978615572296125275651485271730372013026129124462610480297903572486153274946979369829240702709202534574076842825177349914343459567781948019889412032493143748197580484187355077730495017465704775180060849877933643929334990664519386081023777148878159192352289462977419224388732166324924770826177135291394571051134039451075369144401033431965088421785527598696731686619504485486356621035963836480697940627297807662811669909173844141985860033575787134999595591764086144209996082421286570548994944316272039296986361429012863688488783709390172713604122786436488759083286600815110564967096977060248736482761557139045678486614385719903654285256030897879158022057798753699688471175851957752869518739212871982864320220201239334121693818104766133495665704918766800273373198677276836856603141388187434441634086681598687376769570958115713365144332404842855017586315293981338274727235473680259888733856326283572478153245229279676156025768464328771451491407352690599088089368038551233171309063223442631133952387205499345105963387229463746580381947745977340364396636476773249471245541578774024569519699175028156359979988996014489323750319335037016596760913468623028217999977015860275130915519724136255868431900418623736571568679279585278528029675613336706380899267799063343855895336430441326220793907558091099648027883690539551834561964750663176865566163266546367435654671959563728011803623377125733569687498746065880588074573486017337803188921362879145260677988225191517600494175869996565861580614268226358928313649648254238810378277738809599779830296469726717451403918321065273695564616911547047584303771269560115491180784624414515108553199153920029871433420413503710267886054829756817466932063929750013127956425987163196678363829694856751155095774545961791568167276084976407144213248947919507882405130582218163306500827044560581322522709092019738750191431044975103138140533406866376804154032147475083286577792534596381040308237203096116473192276390768333062662402241286087409273611192137409527943311985716553284660149364022437661620727992887197209211807593655255279115930605072481377724294822719986022858974879525423891991265872441444913398781805403896754283314084959712226465692625428647136332552327366739769377737014703949605106946357626099760808773341515358403514742804268399226475772448725864866918224649500326051158265947403353386858283431751752192741323954911376093355589745809371657683664303429414497536999785545845350697891670826783127831703673304038241181430038030697035708199679827517419760991741760536892638378230983326486511011570305231983836569489071638963315016702834956561483328157004259990741868698688081851555095697352874989296595848988439201483792257327372586526301625020197076921530639580033122484797416809101469836631202950971663466376883335924764762282234217901219687767087068925583808256902729671790079585987075307646969341176094094231181500193766295246172295618814269403695704170203910634016939251756522502336651854914453985265375259360041475478043411959518278076482037461805053517864868308751647651439534312161808130890983540991736223918202247005785400018879466097857084201750927010556181830406170062050108628363210196048760525304109240602334110553311803132769474471618324172049201604785183675537719842071011078200321477413556347831493843107074348407064056653338097222378847622268856934250870151405537625229002838455327049639163365600188676338905131050694466886804466301199035181462130808670624390105752160597403380641959445942386454139518843681474444699776393779918472925075426474044814510924119264747849345909029334042602029683440827572466655779935051716284215163858883664769214505549204223595114084685305623160911231694985422209719726831940048069987852432780890390838921061983842707963976536358351587077132155324875019772972301172236307575369366026168058734683116895774967160240133339594140139509723080160481641799399723544060523945994632420439171951041723199989841312877963914467473458022781489404013594358027034146310598090518086048435127542790127190551815539492176712988728940951994057098838160457715022884299122623693784683631327052615745333419682750153279928023934371509205582030406486159828969551432493476664728354947367780658745140512853875378905417693623246215128106827568090866523582218971616560253046537321062003900625256640005424613739198094292291409076077306982076002142437771591710893878674722600485539043408776970511264346128439212003707670237626632854049550497024516775408859587678230159546436463087033023067912433063430162179206226394837389476956449454153350966325065993175885142154209985465407848578493392766024956635253363320945611742640931525744196233329559989828552062280661120821547222307183858581795493214970293967248143323583523309038866315146148736175263558701760506663588557651176498669816947180790134303759126403555216553499597800654807192343833013293046072853287808732518117039681240441707042966503393899648990551301055227553594964438674895923044742228585300550990407550759895562345956276221748272354276895310730405607773838794352005846097515032965501398902850545003134300592414148557904668490975588084470137080611193863103698381054889208809257917695069486260526700199358910410043441559944803264076058825113198779012635484194232361498803952209299185645043715444312014141762908681004302878365144373713274295507834957493897236206563286878323013546696347289019858602547768309046802262742515841217823090677207876203391686681995902253616140812909013294456249120479187584364598001264041164482060567503319290050956802909776853081195295316794809097852491642590864346161974197687545692872928233308500036352492619452989458011018062515803183868961719601560538872882075437450459586471804456254887998811415290850727409910100741569562624164559520181253378070891670631763815764638083231467355678838188609981417562071378512394128818960354351411625488573348367347202401576243499324638525873763880630515879177782695659604898623660212235103048950482113663782916853979707649153740430972764618063257603440043397982441849583970633229934533336441295650671868791643264306373111055418931046708842259671687876867045446155692567256372493618841352313259358241132841522722986351546547713636298665152723071280085318092487967884467927569323343713088228020497298566685961747251279449351830627770686475824859165367418873668494082861661489529481392498176100040431537284528434237666980489891266394804368028160066960109521176735955859998701338988975852973329301900560414622845919016917784575180497517117636532814153846396301231252003694813296366216218789049670774090189110273631043238594763485587531594862519896973328357507210705009781814189424802358395845754666492966322634191661512643170034436510406509329343875295777434486059457887460722175070221704855940249668451010370898031861711441599604990258948683686988293444814773521340911838449140518847882463771258982710041506719532416339919963940782935228924978614356670633461395723039991559234660078048221858299766907955497450934362451719672054373875996555805482783091905499722732825054906902842721354576315956701883800758956965726261655453634245944534736627070898052767617038632863737950302094312242949514620160986076225491817673772430039719725828811545449725965597228020276742100913463328571328932842302880468565980054141932570988614083274795363401308822580579969940051656405422636445457857474973732875584040155525093727781399919355938067410681969483374085001790990610044233977562875410769297139941436249212994657401696911943072290545902820859045229661647090684876330834266587015895961041837084035218587609794626188563836839406304544825285702981091136438939016071311310363174870502197798316088923635334974530530898728276378135217060064000658452193087620880523384964387496555699666954179442951265208625931854050032199928209803241550796330145518477372325180858783751520702268889629335212294805558244553006760445247099035356250054695711050942138311643371118247295161893419319505324859234403169408103694269250304842313208165338599079302170991416109068366776233838261780184498341682585985077245387140651057700255302223743225763350088739882320265396546582023382368790223410013812111644641774938153740854833437967453313406922015508963879428549036512683909634030436338687892741128467340250740623621362312384502588497750075027696744369693979164802183982612620293039065217991847604370454135936683258637386992778309584508252617924038803195474796155934431546300730832536184695861799346716767859970434849422608442030410328398708454300488345367308088696858645800947947320862941859940825620324265846059078064056237843876821195635348703291461542174742451242812723989111690908700511446762109403785811781006462106396355152002249235803192261643619834860391114534879906041587301542879968605151752279614400589505795336634979608289802792763426956167092716087225286850594253886928885429310616912785094322011407976126345850925022969808229025875558400067537220205441046946498357713374825064441117328878755800107135619493599165378584568419011683062110137879010072305889676980961105037398509594431924749675263370017867452592181407261058320892965948225253007609466433420319208311329555934911354489677751685214222336309446602605786040890768064861470643203168931800934927988886562646540479503824476425271988325562458708948640284124123361384316693079715606924225692646805111237204709771360099513509078415164278588923446724518964764566543961780934717664109385610850489092320196751004569739023655132002825992994192674014699880835825715881792197480048646650293614326735838303355593374855762498116539437144171474729780952020036995704992344146468922977472552772733500484996861399065208773536296582493683015352912081097594108480565133683165070215797729715524680735767264674679744969186538041825483605370362855474491452488269730077758563531840033401176962803406179979667771004053005704057293518380420311086989531222047402796720187230617792035114547171789821061561202820660646796285930961428673333564707064056171222045837703970124826797343334284523449015351602031589446128925773961096035829512087637649722432558055870143433998477806927050697385741713875200335858601515334009720594791117130852673872616032472699144371309930957639761587453246083860794142133945204920685798093629998872060500493679916985125949060320332868487965223979389307491726070274120750647583678958247770703836037839873521804114330706533778697585975386787680382734242902870611135878777691231760744067293592598806720818676531150625925685468692895316993783667486537404701629433868771342598707087555975274156933665239239027676928339637748424868966456139505961864804285670747093469053293865326819177476169136514500145647504351144171954242550452892728644150771479903129443762214189036981347008076071824158094510352866756837975002461898755921913501543958024427923717915870837656049301879754208779202085162338001040326143319877677017166559912342057837455123263992481903608391719841977054670759874657629610647912093108963031421569659427849608417964229103325258733996031440635525866814841110410837140546360755928672197118077146560538271260828238194568353386244464582953932312914342941563392882066106261105991684653424532708993912512882831744068381297717781177759741418704549051189891782196147641006635208031703609463765843198732042787928543687439958927726904377556360238407749522654619998087958211238994096709439332838783985934693454747264360886649347586635278431627817855437461492717786758598244316755010751337279954399985638768789890559170152539883836437993133880764426923363992639472380145794303235532385716323457822317360501979952230002644378820427211404125898818598590112530741721128982785101351958791661533552896510997918377470734160319852957036806662938379783788794392583274491468041654542238706687385610151303078341133371173638284058084214218643345587293003132573845224898062958647480773963719103342723859306549806553917734313062122005963273925982430560162871028232854496937868796008868211570888329327748820776084565838819661268332056064259229493816401781592959678477881180461772342499581454528245747679058247886431872317781189281013574982425144763555884685304628160921022273355314636553058150656439708806517409892015975934690259593222004427033854336576694454136439629680517889030696119624861547155286906073249246116911815259178368732726416854867808782415490133041812515017466093174954104926609227578236212319881093153723978857295746069467856497395544853439630895938646227204619694556810298250479718462540915510703260827140597215993979271880760763023957862327672739715766101440949358102685432909325603675665408304438357714418760134218658157591401919186409653301201337992616524182955839081609193345456763218211455628557060964377463849820583387388286295181248853914466178817249325867946766847299393548431107594422966436678636383216648130675263020499395709270469947045990287745118140257429656644145571301741811748369216377938979361501915165751404512877240131576593863086498327851390230916411961350592804832942047636242200197820771865187770751938192800267749175485665868985085247710903884391807763510817941706811915299046223510234857324552659455442028256030919519301773551274173010685001565376213725680401474109648092161244469764585277507551706727955062859846343437974582146758032678665056286115841743329418287993570744907441444654051652280967682698810291272935405640807975751763494548488345822279440243799577107358852910827778734726394521986005769398642411226110763638698620102437255118487085655844280138471189531558964973398439597941277797651707226717169372343115830956596445142336798703829218020224122476742663949267334010889499670374843624750319589659737529660289660630975718997587904368292536791251180435155681753400043872249281162405797527981679705043771634911812561143029934476934912751263820228618625786594495431297376836290660316030419648098848104987306509605757633006637937291245073399643054983275314976794247105312066522126266198749777518722325520994733049420842091463917856354453339708418002042047247453730425770435632684880821951823701080739876040864012958405676123592819548390885120854554476263613084560322734489271134669682974884183327916430649224010467595904104374988564467304250209562199347024719133147298390271628884726292192496604562942058816096840035333222328332765717532155576463144799033921044063479532399241406524276196301480521424786368996991728706809326456129661621250179840566209555997802832761191146247296527188935395329402301471429388283524101003007452405042590722709640979878091510042273756848052884575176658773481370563735412627503465042705236595949410368625920341053810966597560472971631797557433787346963700411044068584832858926994638037445916136337319231172726034036453847449583548465133129054372028574296147943924382486979075030481604730029171459620204481696656775899666565967744135288336995333066446294325240768627287329002667998095851446382970021108726299740133293139042002843069374781626418612202126689041977784401479237191934776555550779311338012734695161067605432373388369464548383635477402641053541334903284942231841451184076230069804356830172465267350504985239884134240747350097134115421751147140044086243934314051213785517735861428709490672810668116761529981283412251798088712820447298261335839297772087412779567878539362498100792655433875497026556268348721728512714795471037849202228898487595639628214808284926078216973017482126683907654265192946658234406156551557255592449269595052399291406740161951639932742285397514224734776762372068903396089084215589822163808842174478547881385617444016134335366681563972673151948973158053245179291208013227839532930599607820952940673038315779985852267503189441222932881359558061990113012067601315782852823467939794428495125435747623774394303094283085816730153029839897656135279133508026921272027196005013232113946670034436550489433267518516847903918086705874376658276769281017875500236615373406615197396998730630210287001664976580948147842436736274303272846093899568425662606907626277973222154019396224031610399130938883230468892164580957915354641907195773482242709986405383779661055552742609621376128674157560716852276853834856485705356902462247194706936394546114980848904913351934536258538754071535235252959159890190697777327856696088677464907373773655942817837309100894638427451704080834362168270906530199299948203544701111946044813226584868756841415970398767094479795959745899027598802510744658286371866648253974177656640076457552131304713361875657596638813216020667389151169346136285105503540421551575848180917961984938995507256613929285295638228056282836050106397465900120183135593927161780306793851187762163438077275627508528300506876094305745634119386438979862748403690334677124912261572656647548982729053093254680723106199418044468188706823327736164936125721898615145339501833800086843260980367425289380795979977738625321929139126563790901116434880284204307637555194529961017658425691110724488290300025845672672223340247612247165401124031038643784057386940949412990381434495105437897346832009395449325591960131892147787692351033805050686272660443380404119796681510568153592980329685896951165320943931856137463158918875110242833563712273214540132374414550809064813201430590159965973055850925182079026601695140179451162283723432809461163182980931803403988614652176153009730421144670185487542159282274291669410720893654460582177364910890586967782080101395073092569192569148761475890715088808782424492130761398075744358427266324070244539916604285786876264621578549839274615212870631675557096210284043299070944765814782293744179731084118292668732532108908193763868741505976771220009876196057649885040816648449292510263491134406141226290747714562546249373241807060853736762055322469766859712717741506443665310952222347379779253862870077896227598543451937001831463526291383944445435250997413954458668149874613041238978751036116439989675239543240695543801255627239133533591004300416454467582949913642078746137690951452936809666237018785485388954208621517147934294713612112506947262901714697456234670858593589677482940381205527158662032424822507041050419035024259129199325489443885192984987818645677669477639538433740531190835678222525424478190244352157023828334645478957042938600474051593833964543259413357089213338225601668202307470216372098618074533469373802572580590048326203303095458352436399548318685266670053438289825471172021750802735424354465680976281630020539073624847126147845282894143375077820768844940126673610549350347168668321253670515571788424484038415082865598727027342282576380743606367511191358345507028708770301116471224067339713008258977699154920828887092347795346624497704580673022894742544796064669792699399398802930840904038190688120121948220609266635276953591006259941201107033259788970573007696407627611694828886494559794020590459348330628260796499144326545372036407098254653527360165252394590863335881172536227567299502230057509936697514797588086321358112586327184981425350800790541982409359365065442914032599284833957917343940647981629958791139550427085749652623729095206807852201633368410702331760858560125591025111610601055412262006931077248929236871994857042516540231576864896189852610329611134192430268732518570429866246343972995431683010567449480807501960738667221633494745682668220980863225494453973398870141208221610417801833144612736586903727857692989915518395913075716707060547362015841744994081767843011365498869005888826619165326178005703135952591283927307769660543830437489088198303035880337745932804447799780206546212476198192126408501861713220094173129176046767048947403717174958563848038484571749375185135700583397871713858515537946142410466061914804874484660907466993279433423187526289341166209055303585010576369878684527132141498394070556833324828852318803469465891408088223323727481853105915874647778778141330055077695500515288073834893086133858352969527519087179249567110038599225166937322879178579424001719101000528411234917810109510070232731208223858752665985610180251202069504503123154480724615416261061058231970875438615913094623839396013272422457236110150626926532732760689038592199049987495344104581796549681891357763517177360772910677917466979105955568059345262535004827861416942658674418446459186486211355846715854571207653257583576840751654774789045998950246646109200902834225092097126916381528588892799383486148186825782550242864484211468296267343777226369560982119822808921199306482025193106134434960718570845873253186788864529504450483459222065339395021856443773567332905854458576234473909345906359696820351016800138064228755933224512997613361129147125402957032987535606219170805659856830204780476605630401963951035091572031708447347003574782085426158900588714335527844909811913296939811398873403535270240560154755142422288640516038443043994794033881589635897709156521579169489817299019456918368636747480391982660902355078067196592658762209900556279020018435421061931628566466364959506862033888008071810759419878863412549058163347279919583349482664196749126740488370116591331756820114923407262348530930283068410935925433946971520513381936901996924308518922141226934591692723598382993489133093447478911338906910999327807498452459321668344098958112985380733150447412631927486010991903398336796923826106007730192688429907528696751635989963413933309106785599444257740490207444473082024780944333972208393786254521897062230410439836470615437942660528841093625209252925315989030256678936925372412071975110219166580766917023446999014325300593372278338987041525422291422870153438138189378039212094297018302076926018989119231426964739167444364863145477855302472750621559824177757707570276103806956308630351530931791478343014437420945381839176014639755720228523383482100431939997194797847900337509043341513504827583178244734786433988248233892489114687571803868929546135076931892730857994595328901084322336013266612495538172336121371029986456576546170998222281958781176084908947729940020876180185766476367020295708107229639581018822475803196934093437109815790722752512482262008663477203392156482159181323916230916015397259992903887681681103512804835583392924545336936539367262816250323025844693415883084260206527732503868922135336753532753147040913830738546791901081532199138439897901635634730316454764936243084660593046219094283657393255791000328030157533620874436355551452165089715401408424696040524867698606448153456768046229439665330899484449211101445592340662814415465461315579030462698145301220742390697397447968555559884169420660041845120847276120570552946002481799055646832831909096224997578394858504003506041670884155582654770839308642432764429949380127144159224042802655880703561444328648089803792818117929096061547582374035247736091144436651343600896879382698232838008958581608385088922168449145837445803560607253270203497506261847685722048403098642001436852214549537653463265017615695830130184784453060487297116685882506357475222775681541508062264133835757233282249162147771414001896669580773480386808019712194606616503449833562245666262535294118753769333906560255674388376379098994337851131163649161076262186234665930592004388143875178614076646615545837463600548782761445698554640962526897543573316550424522779947187713543326070835795852979143217763600757237038548171392696757760590598550383110187276730036077735387967747305569279967512326777883925718411572656349396422154139737873708364255977556243353763417238691650292178696978753119459846225015523188382201849616331156710569226398118580028270569736517969180184775028583173383928438860891612414920300957255340441279287590637702412184467015798946398043924876644747219838802953683099204416710478828763179361733695552972478202893028715046621847536977307375608547703287996522066919985183806731494271389946000457798225556666437929689226200752940556868666899329605629145138544859173703209323392942799102018068448791013989726758644620034761389140209907728845293154537844866175683054357594969305423711257646324415405524078251907397484599100335879800640923471738765381186018071075643924693215658297337068934913879939298862959837684221605586138079140506115064237207069217219148941206637513376534296918966077467278220066212619991881900232423935073167550985391385599916771601381348750570615282171153066836304183020372823185842863197147899897371990746445165892328941378913953937169111707082882060671457938320664527560253070194275463348261468518274166207502787384075327749394629187508252800965654674083172471825696546651244461616686720101954814845536477938989501811505669972790582968016009864637271380883678283766859063970709278004739462641282849581815061623785049549974259850541603278936796155860151146135451607298265700780456568735736740929813567353266310739981544729912955374843244244963449599338640275398238064548132057075092661246536303869106246376047920914162084719351650771877767593009783299810646043310960913497550686263244040385810502634055000164326868541804877752587162994472363744721194409078621100352723466402423256061313421663837835816867357862345723620589501506514207190820684667339704274944241810899087495778815106755466732746533787035077234698886341841751070840451447467477757133880365435048786009690782832668997431876691370727749003304393283078423622078540295111702049935825693941260237553786893123800621104449727460361839736843948388955808287679430074385985807670635471130790389659164554979384395429322374439497260616205781679507014939876842590594408759678020947537520071669747274943878281945836761546202857845937389730226012299814510819327566025457647177038130931777988316530313036098349390012154361870231854496833915706095753062855186940097610471705579865122790907282341515135704437809615368651777554137590647227547264480424728356523531200318374619962019993967015515790712081335543023634421742216369264477396882867828026333636920313682486320024956446845899369012159224590862638149165991925644934553851740873803867256044325557514718631999833107185336678397497015701793259292399279225369710795477728585514354350536442325764889186180183336663016980383505457136420291040072195953690737431320535511248744745114367905584172867422711432685609761434418330731898799475503477718406559655438082921771299263065231641339626879949317794069788554618560559234617233597759805501504211880292042973249010215021537695878469270024426225842283176872814494267993229799967041333992725493416738363154158445294764667181720629718816932626844603996797347917800885338930061763327365531114769812101553800732247247637079227623704087951433482994210245229857962351109979177113068462380632556323610947318879563888039993711631921196848156330124843374572462269969310227821378110520171066810247913560868751545633084712549484660223267283398516038019197354699286821765383820848165036796340676756243908343663616715906872029093893098975353861597273861608985743653544335494968344730883730109805734466417861448306572136610975822239443400545625729534967344868055986827057629819085418256519818223067549927796495452832689999820000133668298656043846294698915068365815443184492064086570640287447866796277051818634897745054846882831137857916618077946149220546437104915519153196811892409166892430357776113594997545090263024223131487580365188151449262765341125242286311616529114248046177934388076674972942100374224987144588903628418719771405458345412307507565012645249886348536272084621553126702103386082490286103412623187281860055915938561084273557169057553003262686113067189086724387365244195084923932938016039247720281213261598026628842932078653329230437618166734843588391545334321391531893507778317522622067267504848686462726636427612431082094313069872059471284782534726967251395383606214470226629514334251958953704543523015829319178884279758237933157683006682852443460984832335537204706081132753863849702647307345280953380657942500941621625470311543572443788906799814826533586026390764300529076976896079096224338965467906151614770016339675459003715909775712197301275839696634689444916897782882246454763137344346284056631280600976819837798128204195209433468444193592101454282706342448492451654056268998598294023742358596608635892154363699219780374911635620843404215034381074679897268350513036377829426402868285983858871693823034689162882023526655040248322122500520926669673874192172650784502180034009962001663025018443038382142457728453726455363092195464735949495746666304365518918081355559130307926361859469735689689446266353211045967853793410891489802788715394961821275713273833550840987355027731370210832403401187627686443420444649949623274740132017079768815947913222340058767434792110326444727001034958314888495125678527946694045450580542967708424423915508767654883686665330980270794816138006585044085808545133765401925490520736867631978958442217163657581599668824229200984041133147490286891073089083564973148191396669311412554539839091937979962288017356340181776441800677700182488345585080036324210665267978667495864943875331892573877362968857421194420592711413837944519816192737068527921721209609415065244092076766257968596008126916117847071317349616765613445807362808899762257716856151189527234463060208105897414742675945906456204474072007804592077104040454518765691743099432750356005406146315763480423630316145039370691928807756017054059747103322005840207173643285159379665086118890821929850806737714720976504287723438959557502088533861124382433644314072016146969317290527852769630076371697118079228372548764336071975112870292702914554671185978256852425448769671592659434804004868119252161700834154016573759895728312790566213407075423830092050054368507914862245604697423023594409207734795231788076072789562077690780986309651815240382823744476839635083965155729063898588967622039719948405891824065434015772984505320644811030836390575547195131120654742438630128580759495475450325542583099713763133847562588017098552827161091943234534052773362209606860088445415098952373707162252850475096585668536780289602275723684949870586493087054521068500645776030497822156417050412741886527795566221480900667499399308309325522283411693094066842041407065192472126871474899858494745405423702636891283643077248500024756290347616026050215080124144921526996519181628147488000410324806090215218244583335518590557053783980719122067393063202720775055021077786139617964555026778826666025650105012967673943246278922785172435321566200366082871331719663040289010970000191337521447375245504233595560253692762841861642757487478257141160129416699486407837640115286210207305910554557404737423796327163850091287109109489914511242645395687984030596803139688091969999264689027541122815959733344720035146772174899239847869646878261452262590752918639959820018896202331464098743789018898900762596604333157471276172868463410842261284438153114619319505411000554398320462899796240646375180492746773311331187204166441972215752351518443463116708717552007081907014555707815880645249266190341367205274862092843263617623194192979165946081037894668222679603550430060943812772036845587181160001112896900594008718839385065589854936522430186502812523609572294550222748073476708286281536081437491826674139349250396622025209424096343021942987731298059665794670725294217368570309700735380029376941489616741039451434006744421148306062414241976239243239963892176379047693210100518488935720645130126800426414648934770328500826807000256825538993458131734455431068664906253521368102909791135979329495083372620620225569877982969847457854787655159179629165147981276376385993376656013560967600498160030785574817349164525857833110679129754402225222416158704825751743820040150505404994346125003091199532609151536042327366828807257979352077319954843910347427237213288860179163871299779243779963848021991269347846931360854539401764786887129665318159935664079528607611371347432672709352652810993777799819393678413047709055885189247294114697146944748203137817349071405612676345938488548428754186755953787568844824417934399588041072787637647943229204156248266132024608505349396303808160611334910174848959478703801764420327999696685220886487019649397248908211167937116522682088348252133249376847175290366486488391801361458319124607456774559959959522022097174616873228366350716492689282400548885468377951471962394507712297659597329062813255447731510358252659226056632823003992266406480607543828128769180055492584434827315871090702409631491935949789780359774029402866874857181338805458080588639204307126457430273821486926008566546620284326761310753742714676497863697036909976883462477003627047524495763938735889134918804965873215146817817236653689734903298078767766069318764827277126204506860592780344985394549633782023522789682647104976007941855777935796817643759859502507301125847036007263658360515090393383333788598410297382823710135879701356135042428357433673128719310497324733985160891852353606653964621490016679980808518747307150352197552719907968266050498680065668520437548856404128621563420733505538206129320309517092806844217237435184531336474363479859476439299796190874737507844959919325340316171949100960678969079104610674921328226526547482146238820760251038916694472140701449336923645341089925913462744223639419226340036732423285409699028031233166921436664403230536399938428180226800501419424254790709452121469194770836167793956171786059992275631242424435318721187233440175581065535975450418215768497302203817626268509636033650436909327879093874987128203547902151009475543628772899742339906080080556486562313679715287353810859692576724670823612050019148912887853149869678958135857171193523821492613394242502321940449219132477650529432796461659281680197923713005479904759351926258279660125477473761757565856868262625008834269548820117257339690310706400110004730130629343957206289781567327180949910770118064573749244482038633692958723128211489511833865837795919511005588278740856243780058352451149099653710610090534839541288115716312579703642570000015970143615265152234547175614600280857445142259044450044936892195792617793872412641223061019066347561194535829293029973152134436445262980909400947785816881616674074177293839671236135200604918075766338384496635303658442669708449085076504885621006604399193925499309450739029366935644066923616134667932480143111737841163483190650657443221956118339324763875969190735288095021671651834379511636694356772015781502868505894556394307733778895614857667466777901087949831648956152766815272132144847572085991631659209528461347831283873962410725729681860128341717822735625844580566665203339690093222473237240661836061633305518812759482308781455981343752890516653436476313453717755460145600578985581505351861212628028133554223077025774031524570235875903407234731678866884932038822599098853186935154696786177221700728736988929353179097004228389834928912163922351458635669899528434153180277030622954577290364668593542395407999746571936295964889457875605968892477706875039081628031619625375365539410963911025773758396844728363778239471915939599559755731684905984974785796592997654172637372080587348274572848973027014665509161564243353853170175951784923015819357386334669047870772627282356420542205185732941291983617020793867101984597013687884120140267903090061959801381532113575161881810552588568938719957318103286232249404012291616311567775716003503230266319215971776790980855487592182735215148203199838069373285076822501917008502884147572787936632091325466362080955254561467764950240294398305396877805359513413226362376336143558395725781452007836086359616426070371217921011059528735958099619436029748506606324707404045647024877554467570874582835670983662871427855378335015431957388602114673818979844077705169314629613389885635417994277150010812420262810074137016382276960065490571867046554741989374559626509954834350415787536961928176444643173854711968978646858262270780344268582615964633764597369272045349743997583195201503899789167637243676142189237198456613622971432695820370580975143032878698687753428765818926723597132076833678374383553119530316095518284489996309800525475200634340994942795715672507969038691381231993331799593150426811038137588931754539435045969353089851921974845438406400975086003832038946768924081106198038564435566001453509415777132332120534117544164530336765966678931796239175335903764090527334851431601747328256641399279256030869876809540666344565063080916783900818605435320572787116916700994028454768550973661197430606346116705147191885623104186086528960728799990435664406881138247825210275131847358103718361534890903992484613572837058078857190792659987700581930115640325122983572660198140243992881881735988334961757803310284410765980943545112981209725701056307633188489603818538797376660907488748417232449512393372607877455890269086651468635562616229697689970850598238469944811640681039443494377183929759579165803534862092734503486080536464473443976643406646183134093958780249904402076774703475258156453519233704697110425162780714225104396426331710645366303269790764038173812310554213456853271022190862255297422043485010252772502435357939351786962951751814016751900545930496462517913021735164814796134855153416036593397538230481733240980127739910558480677449780111419540214893744204362600369841410098592271887204267740371312721690221027859819735477533770366397731694102163551569015706630404802743110959271502755050122295294863002418160204800946587168216186875744300899941003250109378335959674393227019150849309115415651141440708509619955067573925850289493569524592078900276635506192819751747113745859374412610339373344229789492118507664237744797963747745913955612626231762353083229337251806437245412938963664256142233710446367239907077940774438098933796247331126072317558845594457870415182896655902601115686718891959559208186158825909570922364592450437909630906853543832435846723173631158981149528092493809290687449264981976181387435726261174383755557047854082966492818496612388096291546909427888834348670635861943696159013511704362814305265178060700810834602827161804110164622537778295986473384361972043442493700292262764972134404932380554746646121679620022411155703105542540539596528917435250455540924821719741764022642547852359708038299806648472784565885178985841091252203233994827303638231604830901947521988185750252085379226642046630864201776467512055035964495807862795767772865351836142318465643960539525495347737030870791227661053410038258589430396297416501589200486726041811373722169584699192668455595870733547340795037567890309684550181223883921283163217956681650306167223473846272996708512502761473126266225041478048174833863854360082379819066891573274993570409194723961214730134528897837909658752760795600921373891589131682917778231628631645944795376889265183212152631997959985870782689129280736494491510549401472704218270888748503054518378816944351603124260807800886047201365342837718869754654240936746015791717129207629203552284293592268204922186292692264199816200725138056942719761839753917537644271981957492972117895477941641544181250987963938178543254016048499216201527739722003852201849897501350989955253760849580510456376316569061349640477014064675770541250614628965689380083220934621993404968491007299760234004262481975850973255123187243785498522915989597131896808393270645299678384256227420962247606253250034942245881933731834395945735731679100317825044004377498908841192825471068475983995073864157261620320075325844267511495459485746225473392470894559071274841854539959784256975173804079326418164784898511682246293714339667280140785257469714843873202824335875663809581068565793992734333944731451053129242245985223950222933290598401346376764500821512441564901022739964117450418657688302956271598650360550323411152065635832079405253152789340866514966812057146672632001833076489990908525386223462693688324779893702197424350754409766640572562870487960534117338403366369151442147159950611904701674429025887716935355196304432305341302325313439997659824021638790540567817885227077171617401988453989223593286033835139088792193078880075121083199253805404847435669283928049644302920311264273657275026161739205099272110175022639686157334214492937701793199316670788218997307897147205264550998032103476406009218390697008216618650268365118906408637818164432934146508566257334357087652324809445619860145399770252197740987340358056038599264929191319877818593783788892788321864121495830857895972179858372399490036581290251152838489495180147100355468050769584225362541415414188414585762097622853468924171975293723760233339390341893740573387103120769858111959448848885343952413806260897463960349947192195496339646306345229686609963058552239110706125274937145775726810352766724661540651528830338335355257964923987301084652778395111915932402730775094035826561762245392458918644782067880590956657147011019185972662432078802543458898136931864685628688968680387259560420715617266737065006794521359397907705634970217741391581483929614444154260101334785472294977996664500949115607985259709323348973651626566605281561037759987909232653269762738795870368709713051151106116170166212957076515722895568337304040278127739197391076246560213690874897303053974521065666948484816583863167654035616048743130720360080991642521129877632252818083898106946354528279407359211304233458264289203701638733302198983836719672438525646475999019089132700459609777192178664704270282485888430037365961844420579095244927839005825905635966262400533733285777748107873875864366404759386236552492083422175974509317726392715836039945997345921645207349080383529858179684982202385935895473678498722706610804233425786161803351978349799543049359799973091807759858072409204005250260283150152393697099199522204809786030136344582893922436546013591309958524097431512866008780002586560386204733267370696032798284603096283718758378397025625063752781363761582607407862075853445584505085116457491090602699896774785256740615774534141210551960659814859281417131220688823607338563022819455533696880392299701538784529884387335617242400191821740415055872406206708263143013353287192020291705514551843570839523041012181895897379315514707477620271447617916718167300564931373081776896944531504075325489344832756881470284724220802495677388037587802532483301370774101611946020645260130647197249658542712290846262184462573464337426762750947027631615687251394926393231331507859583758324580919199677573931114197571970567266293201150642209922191431498027724793493448286826592711153549325373550724769257475640709629215211436078040376719386708094190076032040006150755070952626026760998287581005062118014691552353181846744343099387405831501821151600640607414818409798129108819776765017829883723199467332570742144121881645796174909483847569034277578453264395853906205616621417273559785046045217325684571735876151712915521823409282407106382309676630823851467617871168829528058152703351812436658085609198246828807496880733373819610299167859780628854656013061622282582251544565532097290973898203244047808595235482867321757537985587849268309684715482829866981708189184421723469129793333468217654694193912960308049299236339930042858413548906941447092924479613620295676225943731086429717871684389125128646445780144462378013774255315726766383159649527949071712650082201745364724555966843336229915652453960996602422431158043969962904369806070273816622793821479890749881708896932279131017022192531575955132814745311967532485927892957149068979813146533495612236447365598823786831167206540279202605866806674113673721902208938928623008953436301221733614953379782812526577638838278805779817933607794391051855519599715491064332043374259452269079476040232763577610203934481772616649852579927401771491970966314826098373670986434199130170283160160188610280463023341742588007633392295497148430897020345695959570328734017724577029740784692923343796639416042703064634721142805124196242029617410991660286624224245177057132901557173469234932740562264701741708253882448066972037299405054560951523198417548051582094179568449754697724904120608469361555631269591815805045641862572709224601956897197534986104364849038696001475360566704899376711884129669767903296508680853386121341723147258414131189631051665526334452650132932775766398332451805336111145607083162726857689365384806627920673026642073728012643107189443537183645475327754310729944856613022423866581262542255167559073562204645117830029836429164153740365058983185838895679129937869561703433758471459594990135894275733659047863476649812217790331622976253917542246524008069390689853461843930929452650661494795650159018967601104814940575472745608571612608846032080389928680862798043295457275641175213850266840492231941438422035397978364239396679504383547164649355485213524168916214103865677183727894223182131495352976083671209518003248330285672587263190666137582007184420510161002689594562193410956519573182620859547803889158082475280761095729022636337267273720821931958644714205170074355019999764739013830723309834487197791381398970309792722956441672996029939973505626289418901688272342173229343430296833410960675066372467672279585716646953802697001794066253171457303756780413567473521568128622666890383471061842549459668456627973949801718685616739050460409333547988678507679134426488985853282133411819200613053703106929094904284406273055395548982598005386978999718733663394908801826925776892646412669203175865574262785170804532586033822071968714154729601995722587505625428871186854540352254513159608768247037504169075221168301577936292624033363509292504224472235236676686171401036488403369501128742641139009793527386704416177933815394401847245885824501788633665241793492533558082396322372713644775597919736917188539993280904734580665957351417053823996349478451085905078429032908202496968096577776309042606827701166506906501029096395269009865229539594714579274311266352282692747109437335257962269402065230297117874827572777863843878221497027461316050450334260930441072772855767230049792206084277831086733545435777477903883316067574375151944249232898926079136961832144174389919382385499800789797783841269395115510480791786687545575172975705665646283757615661741879430962267073096335177937877886572438284021081887768819723744643557578029911498506339859440761468596070406216950154753429580688618388567687531968046049455441309386348960339109586735091959490511000767242149321781519906909325320905373129883263297197166945429934969641026880160380823424386181297782880635480834687448521749021513545548460817777427411883098502740213291517631484981322659709860233870427219017581685148139047420461240240280378693007397215563620283022365483982444454125820439704005905212936669070082462569934440809238221989584418725906122368935361199269222482243654815506149771126399192621560013120482481940129738569019980881803253018643080843961712200103088756183333038758146556255166494926464297616814730500841336889571999241113106882835511092468435714223791957314550516609977881755548843543680761519422193084759215133202286354529427149977329726367672183841543601613457946109821711693636043360619985617193902761172919636325273959280544075110826819088335512739326848441908593373415676208738342119024422275362823061168183464011193342044346287219647112609415439665109333589619976673999627199587143659853165662113335060205296970350754544764154302851742297735489567684184232721537735683465479598031465463272166805907783506190242014895425393271754659319611244457624549612135219031867939208398952551988815154549433435522151876430668754150524340405323921899713381928987155357586103455746910830828795765126199719314425182286432622656808280054287518641551208151063862168764195377181763369562960574362572917494862782783614029212387367008121353113353755619673226410937393040232575706668600903951084804927052420687514003076288571600155423653179326785125163241615520012901689944785011889651413397121875227021980457486398918454109133614006047129544372189745236480673908211257354280684244741245452951796206184252544218484632657262345147528171553211662123881914821339658904096870262433107235128722074982252740258224036430264451816399031972031328391866973504425581374023394956784402049566809128771332832223031584542426291026759536714742390086279250360894685823428191411464566287715846741928999265489754214291505256348032514448900958348626644470116098774464413588198282645082285829519500118426233596517333076664352162446379339722603914093833729569036016464733263587654507703782900175837854252859937705156090668217444377921766784021606438261241605871426272566079413303728758386001312641975652994126675617729400228361403075832109725073216544052388456814159196574958438985701680180825108154193907095202906121302290090449060066872062246067780209426993420539384555117601818773485523162712953731519159014885737727217406779003278900137753056553025062365826957756860248827972326264310936051678475544384359655078506433636141583751805404805645969505597946127729380638489834435107115772530656322235997779527107795279548079224340184019604102920537082233597549862822819553164487190770367884010638560912745243604796283529036089702823856407524098619358166236356160515467101990098238768898997078520216300053079303464405513626590191469276529154001486591201723768148988986664108226926838401092537851086486904938717476963666050112523765225099117315493359142191151422044400120580900240211626998288148670236123716801909976618456786148307342049802000715074254768645435437372116499461238984627266945567363278581280660612445690364472389760018942341577479083521207170418134466722091261673156799216210180748737695096453134337381323272921297226248155486265428479285094165796257006692814830141365164279760513801139672591613255141478124906136300318360417291273085611048677697511210195221163827781469836306154859562131540222257848583954683099710620116676332975001637490610030975563071062317751563894320246932317874959365900395830422884421378131224280649649612978829335741710013593264293962287038401410047545342715974208956316626729551389505624393163889026882564334706314898019086987766117300537100468023085446615680264469459194284749367964265005656436803628923985212006568769711493640638387370451041415737182380651282289350056593783625879190530136394374306090405142866759900020814920172977936685658370808846245511356858660646801942616084857254916899960275835260710746755193150511492573654426849791460344775611632980336575306097319172427908458434743432468548960106836753272408342083439223415346534379208403947168206097399323175493333362021441677377428675366584144067426326506965416656945317228163576966526787670596142576291071435102007512806161362314359697971808424908697282651414529243518290596158097423588657194646762725580471919027460650566202187722914542176301906873253713384434176710727703937192524661966860802582757828586861889665996523709798805616437067383198776320280749001660360835981188937072563770149017208180894068013316351276967281736076625023451738157189561056123693890122300854511442118015233920058948106661037856340812223206852123365417746406119145318151112403017682493499317677191652681469271158537393105908489592500652108364588765457502539019916803338191026196571353182623987743444930553675901144693273797335346950230497812765396743633651851114307364884180054304055459039382162616742222316672214060628979592797327519776987473193054044079891544810643990721560103120259357947312470950887780070233816567876159210080822397785715570315338380669847569931164902285477262371710992276283421943801811147611580165887049600016987378973541305621409970924053372114265032003321771241120257804226089767885117773926547517137710185310627313461747824592567253898107139574883275070754075270886020679012568337146614160136659729004352029396435362280738503811896365426326128534815685914503503275706533993213632871696497201431340228332106759798275816790717315503252423265937228056555242342353023957323296961748909294445848188376254906037582495234176804637050535436732189089711641772441184921349091081961585366295285795784225612543222758379739178799033696783890973981973485144970186258890880221508434001601587508239121988871396323758033601732112901918203449230417899242279373253307785726138580413071659919616826236888614839915487476008762471622996388101467830765697769672166940516305896888788953075045817329957837270867957202731827725745478959602109440559754463729778662078063619896488868363099691439363853497197858281719719468561318084440415360880229005759568546459611236937890881290334132612345842522768985926276728446175369313347364932446186728237142051547457665545102783628687812840417588097174548135809880373148808331145125075681142838150353514884662713950499304938546585139069093366709024979341768916730611452545539396989795167556684527049479350450460709539591543783374383128699276264796276777999721200460206152366206731828413512444267889742059843777116334377653448596477867787592560982295706021471918580808318925107042757042489040240067998707517755433587017139302218575035931373557669084606859514236882840807964638214146147930764795247300912666551069869798186114428464666479196051287605404454790063649453117568478357604203435687409493724017566300661299785234543095354413576290430408808432680967606056561853977795999968172564982127912736563222834316198927081526069519698680339436888651017035235866060647379850587568427438664214249115380421520779350677119154756425711280909009338922181158931893698393094907234420393976095307860289835143673473342138812301978571038681538625394435125641297435134593742852827500178005756288110435164347617165683266752521842936614084332157778363962037598968595511828826768565287832286542229457217904634125550926318710253250669039591555596241598903238199581470718747003273082844809239262103714743783157090292110062301576320327393088363190254969057673443842089726204273996073177320246532511381230284512238803442826894535490889403617273616105228829948640117896419050361576291424006917380906685290219817292437225215916141902300902493481093535199890625797746196617830626921185663968921918092134054363269641949802750146883119254962205397628583041915724511461359646080713132877723493865144741979617239733580687842605598293967653692722655068021755159973222036893800128691414866598204270852033821346553325048604821764042641773265870577122499793350887983323338860227954508395884283738319886740650835808164351946944767696432912861851171963383903010761088671297784938297593568943012406705891358767058250385226984744821702876763129275149941158675292845666110780455650415968847736781770508059393111265529052213668861338403863919912665361885535555249961606876440452912298407933925864319935383368632648283770370735000756420376675899044072122470734500008952067580529681891314478574523825597905252402026355106543499074343453832366562856068007400681383759978861168313476321177254668504733667046712522669461059620971697342203951735417766551224329686453957294356018228893317411869959309667351862285532572016772248028379099544843810756811600498751976475130303441012120644546281065820530447410500044295359781902356818074018352552133094909127543302971495932372860031703317982185469791181461937039259131409732657695429343849893976982437163369376605670132956390873431284624857319529193453261159090032676389966605994938372557696154743834180925042641838647215534553381772096865106643590469685454135400787093573021298056413427342625628871475199671024966713713699638254107996708848192496942603247751452405462080547413491449099133333766212918500613952091243080142661739093926626315198737712275694549124116874892957951139229625984034522079924945262599975980672680110047395725207974751165051844361025875928324057609397124946281036388951076560018695360130265704333822531323682494889627008035698113331436932764905428667873745965908262159447130601606959249745568953596888222764652472712469795731329610446136877268767332561252391543287874447168903201205445279442881004028358597824117691586941331181048385015892879058654865189279694796528476186533585221588390954407832581482933952282063629012976986289524852663467313278592928997698627928020804543318694096824212199312804012014715741279710347242020312842290366649877434215928596829394471846328790106689019095998763031878290102697816726212274925355641153015473755610641061529671586784769218885171041003724263486664575688945471140097488309779068469851740627287406015588751373449457067706187900979602701539281704002512376408573813621915318746980348328625904551154032849717117092550076921433153569392191655137739548072348914829354367955133938304412341886168530538862742565821524194798300195779900692505141110943917603081013238709841873926140884982544316853444888726727660510687192154278504258078953119525374355391042680730934878633310663050725019220531148205079325799597198743426366914155565145194951334710528400065903676928180091104309444543033527160452289786231811278696286371198629362378336952303807413744614762070249539882968156790430898001204578119561470428157913708196491939791869994869312636662209551615664873847689690733893001274842275050399173432990680763935752666616853630133499367907305896716097361894327996012768260150130612425286439535927142600253144111462164258403958526433532623330735602850335905465845282237748343860236651686110589406268782023345116458028030551876368259371149379145545044469660563705903131016485280187563856053791951174090354753007701633605433513015079799797297389851850356694588102443607571766292601969431357780681536831156190395840636301670688115706753513738011008272044186388290733663196843702638624583747811044071902542862149852431510036210642552992204065563633513275940823535859351598892934076208908850801468267265924121770548114815992837512938896752714340878012318120560884841092271133358226691184123328066111499537746020208559074118069653080268946918909422104633547237666433098742433681907133458048382893663580242363580463649784233237002525628068982511017230078142471428316357711652855977860080770275532605361653582673137733694355358309117402933568959739865239510463179459431644944406093244616075386616674332716769541884288427097384552383016847655901870003043048881553458179615948524123151570243564555056718199652016347534103518193636416953646382927297837014548341663344038570826633924575406253788262922046138826840148037813330418977851676759321463170822241715582108109277119719248199460781357314034550167900962125579809336682301933663323409358115264962220069606976189485402955114506116000356764215602275720049610699670946799855345295411222329202644696663224805302370728315829046943170750539873572543435630658088736726670900686490244214875954347749307225090111418074155007642051969777104355963140361209465602378445817481905235210300620012906737371145015222021171726069656548315280161602332999077241876728046023541076748916776832202025386363453894108542413503820035360029157265974874815455487859707346579065461337783102883440225587356069334298478651640609686914445183981223662491301542239755897700242778735248245302811803057627000482177932023951029981977256572996098540845060165456686477079684638367490100800824154045717354536822394273728794591613991983059113573599749473275429247759527936886945639154986647648013879743885425415031505981316507364876257803653161587046778009424137179461238612960767995141524377276700319054431527460766106890210205468266589961683989472410784030031173753229250765022363414893815489183025842820830105196357928852038712868367023152736842839980945527285257201376382261654313163343211701866023692214953157669659003130187169889665212301579515034599990759406438653193326227839942951952420473161322212895744285722584791383883800086141226197728688670654292644496509087954379889004063001602943815900446864402874191749568678599341267045423531918801247057754648268454637909234422941208932020495828112918104930381921231656223863034251071787644349261227348113868597929913019292278480214430853225783115504989253789378758748373006140964269062140052639918377651265620554546246269831203792818329812040804815768903958676967252206204766613878900593764528978592180801293311032248424390758836094638574108949855483947498875382296483466410008154605687778562968290917771054719363219190593060033603439206168868200719245010192512007545396685515585086222754672930183324993763446508988192046219088425980892034997853680568093285882916606477452766515644380593858054445284610299052609905284939688089062412002465594723560061411920509150108479838976267300170996149992629181477038118179783670196880202982770737817830522225189413786732302228262285995274392883766203802031796484334572242142567368837739040444987998800988586451967532761648776037592547252686945936447388220298427205110126824713986054871595381865004181942160147359452603200944659094416833239222791439551760022078261367266970794616081483455565098487993165250216244103031797113491182371440894872363386231735327096670954004962206058286682973349521671711067458897870939124230445902629010952531621176176904194553097094541561148129820788226077531045600917376384404264665496423041005166887237694155647815143271585836798956890142784494976204702707106070474276611451602829942350763463000463217517200857385928384564642263346399693135451889893762721254766872325884772735554699286563841288016841515805540656586780467904640647715396655659927611382043027235333149769227298287393446549132111844818673629469761468193565514850145212122118906601716039478382088459086029514986343416058553698876946437013705030625988013603363980562967698336464983774721573056602129496596729660020219149485497541749207867154538766632094306503906011172752239655003300759612519638138789709146910313273863744946167087930421572607099193468415762346509781293514212062883412324334421281984180808768545191232659821194752250580882318700613442260604272448214357152464412287967008019992827894929240191920876282226965143546527794584746571582653398129568500555396497186511717066737936858663034320403290451556897151570159861561223309383933290595103724488915551402315983656110874951273592276497820345568756443646332069624131502228295215287760424768684160676282879555983555845568981507592770792128251046324282485015065125757326706599177292074269747752591754198925702645831447575577870180122960452454188687665075727715121396645054993154097901446798099586515524038548794400451037318358841768660579421676951052247540551770402867477928874952906434122550694325388819945719466038295472527846417635017739780393175601163527764297940665458925333195932946093406020024126936160442343502579895783554104322279096759670199419419206882772098131364453595442601877099996064230755946288197626993920941879491253011505978862784931601368175571791911948202337161207136633530685618141092397797147371173368574562203499248456173077716395353524848710907417036845701576596945306168084386533577823426278509135713518621488903371149938119118150802875426719330279570862424829292837099237248598816192149799359448653862620111224992033633026039119545693800528899503998329269239106772500419372133214949129187372989028116581942351685170141908549841756207482381881464880390650704861563863129145416567402354349540145200435672835058889238603266181867661022496037253861833434321164853891253113341673728646409203773155419117970442047867262918143721742222021264227542511064599962475999580202207169089388769010495715363169863616486311006583364882617647717548440640078650670980811334507554121408983287460818743825063543290410472398401414355409224932934753572846824385420033461993943384385376392345790635632936521125505333610654797241092346598253803834946995819915164778857607477091473863372998514725850130205668730452218889512969891573403687448325638583388019695528697416369609918226312312998235615659147310677904421308140202948488519634255270532539404830318826623710714480592471824903602866376662282647915497556117607405393409651241631446667591076282585630758795155895885286000506824292182062828825333315424041796314125352094930785599036166760873406719940806429265431384483109176019165568067803823363747773779059153234417020244997184115287577247713226476450220082738966050029693589433323487700051030658396735277309284608341831756516624019159019876733077925144920022194996265857974641342420875026388761418518643984696810280192671027825308372958665917231004645919489109218740736139601014473463569333876530414185111344529927690810258383888780884139716166296542105858044299140610775310678719880270747467730075001096924728330817039408497806711766574829443619057171621931838306964304544608006715023892832201421813049204969421265190834420626677518150308985305106527880537634598247754890053315094983631137236755000525909841205160545789611923837948890020158004578686202173212335731512062027016118064312196210995879886230911041033409371391223937174762915353218145239514839576710778717597242103329854855982235435456904475068463005475047438736211107889417101534610331297926672622687268535732070414494778594294178471532083124502369294270172330684515910311743325944196191270716995598739053240395208436028585801969458232110024937937990865853035282532263057203160798331847640479228600922536879210854968641560299414899897700788208321781215738515864810204826751935520467806618902485284060362023408023713265473403865866385418141858904767600482299094854164484685899730078623736077248478091524625768676331251017402700154076083681689887006106179738969972480349554065376986424080770139502930202952625701946565298089784813091141517658876699146541768665956135364000405975809395643611091686279737467367244971372811357800398044575426885405541948908603241946453727693647642011324468426355772090482529627418984021954545334299320060477230287592532682839525965023710363970291301089464382480043974636414821022609421419461836432607953015504902970990872426836699511242557366125588490997956238416513001794088228983230745597660581960754778740437136459779539070239747173284577497246493182552471629760098027777885562437533010958299042461909619639181321495931543568229688162808985074360116915107170491382445209178736151821348233092495783321046834350818029414691087032745807849402655761549705871237705889258513760160839992079094355831362189077215540457836563929671280736038816874104359728796229651708552653731211558753976941704753855626892426213223609886022295446985676641303450918211697917837179068399500261466581309493509341866631414033585229535228030693546887105990977895551554005774122256906890206198045973722631992015391434770999233533162349979446035883527747450648928718201887485765065812164918530086119118585500699758087376504523563401393829860005071907516821073197835535056912407672361172439890685109500353053640145535327467549215433815998800079218710200424306289158952319947502814081385572798455043273795602999196460327806790196971562605291765449951558102754816066636037222076323417468694614313248643832604327902486525020689890030917753590468937378910458377494269761358958717047374515735310943193228070527921315177465422017864741750709885957400075345513070234989117456269736298961206687988625724025252091139384250056302001812140047723035667217477829250168162246435355215267068928875060410962756702382119786298623761272483433126887483234807740490711316453301514926336953430901022262193810385163157246637779123777388617907647874487125376581251305991196492443185731074248073343499163357878643904030465902775725097911358461413218154255380993690549567845190817516598149911302523320353462388684949168071927863505150416009661796294005072991389051476857159258674730468599741255995640005618426077377869341265921241585418668563422206172818160966327057984255620270629404555436132337508015625700303321918317924384899530371052042715668229036339450413273521315841333950022490877728716065557995530040200713636807636970490600720693405265981134455658075930180120807331937335435977602137975937682950355287545551759226712774657476425025209060057941378497482751284234885687081347381160088146053249919374555865305628843722974019284489095618181955940318365173530993036169453120509008840149036944755215697495813156997042542427072132123267092850198047303415609239687124443840846162392929662253555569062156704542826705835772367205376744233178277900530700279408401052838955730320832986226825021297606821750637505219861450037594312039857603138156042291747934749351299387563048835063647474570729041903359559764237076868345086275606790250764219144414900257992497096880069144739195834251137301807339550829754571457825994129956412830441138821555325521505076230839134438591973823538176246047241461193178432836748064798291732393460680151166454315310941931104010540536044834406236658527134243924250533703029380583887297492632889596305551383765294261651040926881852731572603019669803717928721730421522579418729015354020079242007120164675355695555268249564737905262363869149151029979998266668313055671044386341775159542337260437252906119086143602040754604848593817900174158922834839360383951658722292250545397618889842110043016178742997031624971732954448991991510298597004865599539479494307374298672524039436055952797470040740081067020014472173342936501395268624735264919284748064499957167151685253785158533728343804929701464599904264431596594176687832205725982186673243593774439294406627891132501582953774692553680881289680312267977496356717593733062598049179149312014703693343978978717083090788701901689781775281124331566561825505535419707971060729062767058482897094228731801879777926302835699678054804512663963045053538445284238719727027048416037685564605589648648103624677828077911651326165976485218025554628447705186071261155356030320781575737524606093523571853230495668434175528591233935289366248976670275601016702562657439998235546825864195977375286668397304270624655247052603338173664943378707011683777422975294733749312244512544161549974463073047754771017439373052381926516981473711136959890985439803636433090882960098256980499659344892407102680483591489715811397051431422212686812520343437083627486904374605066356985981076331639915521639830055690890469935619754225043342850629449315554108926038192197131995957440434812952147667764218057276277976816447658518882291436755229484658097137897198411242365740169782556712636091104398564660605280428060149798231394502726233402370976300734643276523734447091009189461874925558872320804170353288588194832281187418704454139694165194280340935924435117961184697112433689045303558881082099089954213017213476636461644298842840695175254758140337710567546803223603389912745435545246437901937207253558663864682890815261417618926535600543526507995574737592979027627297228245512081617234570341279115010459941002824926807269813992240823515019213324457573460863589582765002361675304093039639500895872516530592412769490682258833968425206317409059295624270040260725618496380076548155779385419943360003319806907090672947552102028503428554780770055773250130544444512292815941210581562313832754031932237055038078300638065677382071242332652261785657888994763919130819069574807856968419543652821374075987518230880059377905362709817511579612547418859997053003280469068533469870689705739449633548843929696508436321222180966999675495492303351918238113280978880373164945042057576872021276432347571959824184842419874094746417661330556172936748440431576948367638414616583255387359215821739919706944197844778975355119389537983935312947912725866514534751812972843565529596749975488150794133103873673437209492186215647540559585720828594714140896424527248362306348614346245899710891015080799915064544417322018730106813296249672157338343145630281427975336456126679170607356924488396478432596153997441735775020864026468216426581097555454175317407095916129738729700002157485534062395907988853302641345022678752829941815648881014297823452476260872550930418489598722176560965718680940589395485556713586542155257111099826869397277328894638789732984241714448031547707671322243516579351192458135297860749529319797130388655107721685960586220140831433358721567331191624215610053340992190375625195338419593392788629531784111155410050935976818673379341606938873560669880877975640631432061179263693539341744908716367300612361069557846097765880125446050787956712936986697795347986862173143002818054225079709310375444405742006485296515777359380016744097021500790520204535097233721718010554703495402062528929180820836372516698743071645991217510580547493517512693216553753633290518089018463671069610450705400860646531221296624358064898182516262667227246095404399634003776710358541946713213122473253008246118462968033720022307405079161849309433843820231210028470272169698452336392431373479403584142384377482940279391454755575915648635202586606018081824998747858550207572778963525902690872972801125508224850336968230926822260279578963361560811567524512216136219063726817821619752543476187235531309390177582573161833703582067472311613915308457949180297309301652424959344377959371712242377439384742133075977100103690792812906797764536599622185358939527436420155684465832607202731871817097969314739812096960623071631928783910390942513281036418626425381207976225815136355036100586395145819558694903385187943326859989683640460534195337376624110278095271866210995930182536744067545477700833951108324150068959151363129912070006369684619203107770876217657164763500024101022451268740705901842945722193062338240237071899436078402755830914919819672401827067101425667661060524225953852695723387580895457110202700778439184839143295099720892592566289802092723557246082796034203250148072252484345792630515350467736492022435867419879420314348712791455256365969528844534857918415556880718873593912054540131575679417604563975969810467652309445752120995117762713507802330854760003965532245037049875815343141715424645104404236653483256780400430542773019394170095606015481693841613862828638128128698477006754756558199406787156894047731768118161145374323412582183029202473181780916822627856784952885721418531707538930855098284546303181941133436985666433873503886283574629928219341294422396955516116655468119138839717545392862998144500934792113187930063438284773669541083968131315044133308642976980442308669899248864240801182797895042117376162709318954998531220221433865527680318834364480746157215279849988907963537187993414490251233707356676074874086659541699484483742968520013334086764406046807764808654546062482233648211964757170203327848330746034239652678742602930264567908627088213595489570878143448650489484043505212677101122457534338417785769121724455204383097473301196833987532111686929716155456643338392462246135136246449768959210088882297625296845688166385012428351463056747534136983931142066103599509906858545721518374636475360953242199549496540027216490814821293692495037319059304151220001503220944300444471389900721699717198609436480232314707244577634726748695021428515842397217734555078443652272828068246389978755558116423769444115716439415231713006759152410066085326557855038771197696960215899699863024843614856447687760086474869532173556405462369673713950985467018211067684889739353084281852140432698197249598097665843603570925264748307560604476788216889026020045608678527112353829800089828063769479022619130466546621194582489318675762523694234463260385631847037329564246755545693872738859798575571682400684069051466960985371719360968085008119993057914048093031415051673477068904567908295834353586356708849408839121158597101909827124965818938283869759985469804931182745474080170968634070362622538532789756913799348995501842989099177919517740216913389438543551545865307218180781705495960321044402968015183052640623388810762726505831079464991957711443461187631647466994076236083976998160907965647779550977545874832450156759957495149132193652838784273908497221499273597571022934361596491766428932396546475323814408816637202253265071167346891096999628088386568574116220288178879473924194689452877406275938268757244246073748932134566792415656289476665761760266722078502503568449382288400926035255656847368369439695179766919731978002846806714797040142323253069267754198177085411615716432819055436443416076699871749067296144837420994558311277299328921202884493102357611930142770325330535921295685473802110027484886190109195566760451182628005527575448948276481309002371840738149378969460421324418362986526473715153728901489947602033121687922320177928004627064846850933347672114712260882920661107275795362132632082600137996531180888773541125820193865196822526722553822618748686733614296885733808687003045265467812101979122152141079998231976410574098426481595211767498398830168972943700495436251936491691742322799244786853584371799908403993697838883925644376723419107341970213058446007954647725393722126994943533367224227460253302717810126254537078645459489150243615479513213802836608770866199205598349337529984057302996062577859893032635124997201791783256646707050355256724133550412239558170630497612105279668863973766053024807861346259243939445647156377910540953765027154615593574782386975049501263645963134693020044524103923382012980026735036066877102692633311196225994944149349008560903961707417181310276244027685974782306671018829071806837990384770626432192166434235859313810843793598002089532289246210216542725116038851648747221277185304064439763457365650624073548931127649603193673453438693458264365225585036949843815602695386883372071373038320811003227731613062773598265620215699440698502944989899303274094827137201440786217857576898003506440491693105065105971141410035291691185621074364378909258581142594658922554942326699513673296108278480247342746048598819687350124454853338488000448756427745920689792057416692801396082676353461855160086157994383357708636102709422314480079607710722332068085761932296668782257450316880536014543661197656163890045963170618635426435606591397162770932652631146124127818061257807281110579541974388285541341606011159406810621823574478182242821140151823034744548102395694159670865710042794713260231560706499363654380171169980743973797830245628052991007468915442110041681086453120148448904582684182717464776832504292379174422203186580187780939289684009352717558963328909408960515985008984124971806415939629609713118459168908837479135925821373474552522831752468012854492207217287611318397368334291339670284065435993514710217370580641457556226063264849661095858802517001749222627557759486525272449057854374891195058329480905299617391328393411434237093535251424999816309928284098541433475311940506003916017675425316788331840928518243062017769631741955988767428005975110288437139268276088127049643724614470982332695830140284435241830404920876440107561297305038098509901679935908036252951292921423353874852488708895717634608891806512355886495354640186177277005611765904151281594406767811674798634572718599289251743921790269024679412893417304832103022111353181516143143558334726993594618710565059373806526922065423827957210636468390056843949865800250003085388051191693328675653226535260324703880138472363154056336797845911774550083481597848960077712193460293664511474874575883623136674231277163896376104098032696776220925621894145902873064464846027498513212282963549299131790607334032980741415959749140793652197038299292827119615694750915664092131141432234936713478612643317339299084612644775737877710019853427929168006580015388372749055563234063890397849618268158029096319105613157971665786566671190784521118947378566252514663779516270705610067697824642589104470186007995600074893242781027357825594792455122207957659677815852462511695202455645784819806913201936185089057888958104394645228980353667790789192952718307487980154843210284143350225591314869031469087374488846509082437917794236181679690220011119610353381532826725581845896148677202249911981009535477263170357176625261533945969817092225189584461605624930802146828269303383937922175596766955454053887393996306178284901276751906153663314402892651530760918149634725122495314742024421249772310957431904803003003666431747819926722213679596519758457410415067251726993740795105041759615319822352305197817512701971717343038047832050563307126650009698057454141358737861125282494302003923585562863965679889157279290517749966528093560757203827631369196260979964262723597726615034053132227514176969586536579035763268175664365580163516334109231293008949556408332966248486052055409316884405571868584634568515964481518417777124487704899688094875448358361534205233529726199283551771313529122106129304244929566514894514398819409394373759017859422976870578296925874947327260909933270282344495965987076810609829627793502787420804925421907301014387531473888494236394076270797850006407454861074127730875690507997524016263535905020266300198941330499808644776567753899109531941077272031297273679366237085970321939879986137793608305327185737568489287079637999414114535549806640505641007644992082653602935574695586423173104776031507175009453740070840377034616770490964863133895095718339292120339420504788270576514107309026147244584313546688203130566203173737530300788613168673387541140340111425033774955343619481778391292372979245528809897670905826357104471742336504874687114490379115136373652744820555918141707309086946624153657029931556643577512407781368123834976074183271326190097479532130954106900347930114251731700786692626781181063543904708258846380778226686982458070095596925973245693550991030045723907931164968276843144312660675796165369575205900173602657275992837792520005267539681303835961252233182494356101126558707404069900886431644099294921097090584561961471268911024133982647717615449736867750170042164876178486629503920426094174187561980073198780398467454152620643717876398853236599198193751062452427215318830021060814424502319872156859656106664176053616390028482395759560295647144099166344397867399221889408970067396396672146874666424026939463229269121822180576897105395034796579603410523785167986808556992402501759968000073228836870758109864857752164100308246151583419828905981526489357565896875735981625985597156656125135506299332422862108895237251366153901138992367637486949079503923108066870867689444654601339480076337612411126489033256848657819041501138075188250686045568687845459078953828982795323497315446771507745929250552859117324180263372762406017389441248338849053597280282059639747188597951465319895483760749160628861639950699128294448873736493116054853228527513615560289289561440148822358790589069772381449362800514736716273866794093852628663371773028142124828633986604207355171705117553624378613484719459188091971608222597098513406774388746579937161857691049999820307840058199164749803168952642742655611169649265140077610290447389037831186245174070917225906563342896897993813655860320051854209568105361955311689179424799261822015957924263329575351106988462384023526608127708285562927064421654347093662392423336817378207795793268454697940181122336966813379276923464804924816451085487743584925132164403504858599005652041099333840242278485673017043599308958383605974977327774195131074203741045147062000807036140725928392543512214235281391208746306472487316380007195257206176115853458526893314495902712348102566685175310149002352741528836642914463684802891381142931102991220291467037868640442000754730236919663854483670549943294765372694356262347127844308025331993378694212925356955600426031076696570808730409531770647704972288186930261526471115572491776995892186112254665397231034336236763400135955206904084598933900222881849687171770588033347557545665984740766791466985111040499595329669646370827254503129078783597859961983444317907052767421040469086013423908798773582121498075604116910704089744577600308558314302014335006255356545691408743191736874643096456664859576142510505930924193495658296065244017038091474135100982516077956131086889058975345984041018298502853309092224593292901484347025967325746797249144174954140607587642753499143523610836577031017451473532188806988133828518188690387335598891598574858681723266936689924000587878828131953491649716635369133717817494489027367899615607540083510287329378246254461785753990172625333936810187489473160364564769868150581295269292176216235588156409659607893077448972606725896448864020113101314554039627277779155019186872929152032322978861246550124329538963675521117815583659758376627632955632853450315743094017195678873547473838741896710785720171523366820759799942335426043166042346868521366672553567698424268680527305624800531613515543143381989889982897182743347372752089707929415541321398681090155582025413070408163795384634783556388631108408725308971344140847026674181712367431296921715498302600425190133656868896160520305015984531809358616810586449857859470059800098996045731476566252060676150463965516219327478465187146188086431830656873319327556826751142540230580026522669773129791412777634887639625173727370352850304559560657114754223082408116136835926978750183753212023379833010967673287631787300631472256612366781387682796886863854061149106391579415122965549682168592025153971273164011991287275015148699492439695718350702386191887528730641642897490271692400552482841397272402396466825284656908962005536829524741257143318541164607263170367320202912146373668191623493866840612758977131766198514168201260297747431870178864455699198328466472907790309878456082485177971611969876775525065424974860916119562676161472470230225267314484123724301177331355399283339510720999588553268047539617076902187084033815631978243658156873555914967929781196114590498091939316438184179440236066271887810289167677633530060718281125641914461398114109526185034951893651631152502087721852183107601095846765975370662007230634068250090431438378478497405081047476631285180578445368899276818822351574983425005778858114588397611734811337619359752756828084249380206185061248425906450194449471350461632554935767546838107248300349486814578914877535952282842720935414137158821259313921419347659287542500271829366024181574624994580015897576564947591489913796606886345506377630117127434531989955571960995947458804291209161562916171124149493764185947242245491693668530321436056515638074038103597503985507563292446302048462900663117358641889310489387700137138302275107920200636260978356337203821824050284211627462874355219047578234876233239867434888087725634756491697871693634902099426713577163915235265894300698800524797470273506954352783988777825582069706377020483841312599549445840960755437841886822294523345970210946722618041221071794217201021790655472030054612664055914264586423049598624393962000770930273162546716304932196797217423649450389567403115368558697709246210991520173116881456655641306105789088559942128142813251564895851237636952252589585978383146776457091378390056410296115434861097519776133625648018285312032389437540780566234966897945155208349574089387694997170435516542093153677245949029931822651827820484075396442355291746329738153465141630069221714724310664754620381272908691394668450974145939118310904361390131926109550371351357755789904323123944385206805350738907099774307518731697432881395045552256336386559299113461302764862153181379415466485133155213603456963506668042820353916311420223483951891801952565210156176575336471085838857257741634514550627116411229547010336858974917272469900907294361428734370156490746190414358283333287069479061347114053293494420391999278855351247242615656694212143629840628612863815581282947624155757971606778949525648273766705049023013165126756621379871013127646464664972866016468219978555673196163304584459916386449363283663941029439155694094657670423023620271508866089660441827858983393879865420600051020229942109703328128760740279783474696717174245974315863784199312854766721799101188407753774141391874324967604572903954899453165667230884794249438172830845405662299870416894187806373190910489696309642054469200267234461964020258608333462018757204887558936973908387310143344559360858219157988080502004111279294747796510137318729610215536354232641164958924735658323661323237745206916138768865181235477567316684266216198145635129724243038726512564309919554092998219722965127112728874181866980019363126309857331518869779083990443773206913338151571216843125804358125687617717908765310618943100785690866931148546080525760018548616273657078017768254191611217344937227909245342045535019789801476582524172362446950618681266539560558431448046038538418921845637639993754090443237344880342617912434315332168216305008907009971960664620180896754573486634100192301408559742022722079854155117810693028027370597572456347060204413529038425132053462931104111669697501385385158189087031173380591750797882196794756591876372232073641872847129053720658480946684208244364990770662842218773506110527133080884688524027109048248585155466015292063059866230481398623792760937569249627724046665023283877135447707695716469414643609278637798609396747251927111666382208209250610144947025168720873624710666668808363800170572575351093113260496703423479585575269845587308178759752173545421613188830712813036796830242524976955721034875088454899895231457016650061616814459401168022772177882502269564303399218683434422668074550807061931099511595107080409936385689049135290370911985382272608318357547502883235157609305940991120927343153718094183315096681507190570389011796942453324748724025105710437758477186433978889019920687867220226445539632702739705219253040448904170410319778090928066418140001929119441200104055838451688879766256110118974814218552915904806451347831329779891898589575809847822613644380033750542651122794407510660625612720723104894883496945974635825404349999013465970454442478801910389676606342713446568297595862450887159063128706293313833114999044222962956213732266153960942968226323408018482890520303693140389536453979036461856844468868116850427303726148240641556915932209203213122146685292698990406586030620791403732879304171811248008895748623320095820158245267403923610257030808625196202070443323632214634771047399345896047699784606712007336632965718054166050557707941687973808058453244098343853551488417690537349844775099350727368756694126663120912329519179861519502586404824669279365759663358948191776958727407816804137428279444322657036421574622996911322945258950381609388576327931023729053874774446865688144007237613228189912323248288393632568118372713693816761843871385748602666789490418214118839230170853014093227856529165159448609012046223425543940590702176009120313670873728042049290556089678178858220192659881339543132574167278220539588732966900708971917755100879048515042885437593892382692490611866750870736975659696424825029998833991106428993951554669497347997468381257537282577301343561412215453970481660697059391235722685081534374823472709852833808357846166174372973499473266159445805238434264231170640666031670360547945980632459472451111692590085203390660753916184608089474368275775787027007468203556783027239544374318602724774083956482014101391356922953097411513414201851095571754114685464976087313374435511069441365627096929567030924765950032492003174702827031984789397730978239331401099259078182737248876302842382258102135270739651907130960594585257680787080833792913758401542370608106730150761278661444536167367729492690922665307480120672509611661343785740984678344152524488188505386569294022325281172794272723055725643282754329297693325021405732498723735318477209411984783975403465315265620278017826302447300780980405672322119292411873248163000012571016684380570171245946216061930254299545712209436687165660896987304160769966930618556039452905432886209475400144099445530286776884524178828151106212665214893582272375973104711065878325084963207854369216170567384814250217932983473971516034835825567265324508295184134707773943602659097237001468608402238800475375791173026237958409141865952839497749256314563049235713371136182643407017332894020173731847123010474624509522400438738890965999187944614574572539080448183083666173392687112344885052176678151765055565360899326933004161015437040443552338329918583808686833251381000882301919082832565539805114528135840936707675983916649716618828946315020432631397140567450912889189044825335795827058219666244770210121276730138767757374401318435043963268387978708231389390630088060922329296790826862861601528210294542881448750941187620697574146777489323200545554874233113042356275317803597437986642444595219856793787856950008334631027240489872782128111075847811369982754600096421865225140042037342425967841622440808252883156107378350113538128029691708215568620206725925617873948168399187084394499837771859637759437662995304139502487400727150671773584225215113923483826512147428271953828921872886008949675736606872123451545463488752050670606610471909591739040111416489395073999832460329922861922119631159109077393522980162243516749704169548242359811039004588933547215701385000205227805092095420889828444193218692533997786157878168241923465407731347197034668939244277406505011801531957702556166102837746295718492637009251105545256068741222742952955701445056433433274608285892477892054672502569721892379576582315821910058721427601643364595586622374253405568322242748446108703909017188409428952607294447435704631469532403085201421673664593077964901706078104334853551587369134394812917332942506686017529740912343304779969880479803260826673362933918899649534153790665996303505308533419635231141059400464235571401437862435261099713782447851754778044541450166674252038698119893382492501046419146619057793083861349810491939987448801695041400976837184887984638589891699372536521454673138583246061918598942960641753172639171942684571138892899812512501586066299735746505360368517550795724371555336997221684192564083801419300538860906333409357859097520266997211887403029036091366206534344516747064501483699043032928590254983805788343382396754303120105225241572794763693336812404301691226076892520934323086837010499090665258269770405849058321942017508094697897896829614473558958715991787216739155858208873884570985792730719492322456692295095782692211009947444732567873512414839598912885539747837648397197746847908097621575101978602643852267128953918796015481377706252649284376976507961491560197966849263923729500522584706743892945514846887547981474767065328543283982378773082698687122932947735631150442508547324165027868224026926717269114209269355374726040377908079741159585626822716801915926768744706696868393388061334906757204393370846924613178486254445529954602651143396319962226060453782345734972582671709784511382850050090257085891488944276336105575592235450615208522104153917493338215586683660032857306749757023495822333067263749812916479854707371347037022678977969463181631428673693266799194997434274576674294397814312143082893960639812668083831852080475644641828518097420328086320497956904067929970390846215985631689379764144727631844826981020284133777706164511668116855557522928410733715326640200269416342577304836127765048429102324727661398503487931027035367539490082049578939143941105937450978670139963310874120383741019475968818664560763769188144786180810652986118631212159852528198744631005157344879677422355195559382407131076849404151718433949195371188443367132437201080796072865888130292178692757500600344380072788039993311231204919156224681015392771253948517812063472054710851639453825847598891934550269130276664565014542158396647218066278452089565581349111293056707874626382145069741752809233128340460752254288362627453069552779543733341664164514964921533827512847437151399325543904208773844414167776587550291279027207287043769925699485396409516148107020112902146644680956424006910866546833299248696445172758623553408889095060986971000788966588635410784429230668487741015185958640157187864305014506107373194877413285369485327503992187624153811117417574207466728255912121943747637652643908814226667674007018522209024992958895987220714855910217189951943891979778661724622425760604386171496986467999020175583147871763887913212275171164882165139285198298796222335855385678451788832858846255795363632709312041035304903131100864693846007828712090878366995233615552465036965580037713925589279475974486107909104161469291506715979833765165427380051785400033231589570966379003021128129458173281224877238398348217634661457494747710703302915022369040867137685233724362972941274823843640192231254872132853788916173549406469184947337674460142942679887302153599683279072754828931679452930412210615777369221735028917938806916407201797133491327452058783902121088605644087524370544266796097669512255266241151034001347038633674767272577714844959882286484094838369903954492851389935190836477945764529458872511415704418835254409440086927070193966631710314922233792674079292708046007861149853430395007156688334838096322502254591546090456454879447472520076047182750243773009874452114717602966521292782723279065031009804865434790364647406276584449773825875002181403484931040794397112587195826423051005398431561115506732924230201080147099429916062483730284133387122603995843915849842518631626301941233934917742039604440190217417593402458349836021171071556150549379585331509676768999030688666004472079946548369055416072059216305155439731993002962971458753329351147831706785306007505550312496779361509164168503702772775269034335383125853738548583747666239324814811670417895024583466817493560934489491905826724394797401101733853138476554966358895864485598110349698170742437916839620171167958147612778843130419527547648919709575515142009879549166881515453635474260748185153786426439046208818471419381086502290352508081260376779899918022441605276574029263682076335501377552990189637402942100311049204875235899629182781018966361759105323295755956521486726306832963100358591002101091550805046608559119927507804567789796500734985392401705385766095694472453527248222598442031588696469924393169440371244111745354175138734186465980823750267313562748094194222080556668152304150811001906353530716955257062148015284001631732404344966008153830633253994627436505585925576124277662995725018763746901154568896811973208533250576976969424056941821887383596553104187843825081021494706324584274799291710742478111515555920574715014158082250807670202455321118475768513310219038370097593722575538927138503176997450374692618189853585300287679136570803003985291108778095219944439082091625910387217874964449718753484518482751364452998282676379426044431844091775668339591664536973237766653355017197692209550243767013854227122653948950677619280032720906322333936369339990276240994214005666088705213181358084983444664598409678803670048162919762929791777299511478330864427536460615310417836177921840943366665961258361253702914916482398181861643171971976926329189290402151323749858016161776055339666516975438654765228142279749266607323202545912373631439803196096687104046288542338681643517316792414613535147185833269209135327601850141746651946410876964742814386627472477514361867858360211018313934771862460007303799708467497693244390775691347793411656647875239049841548057135708056179219660731727685899789806453839753447651889261097088777952196778141310530297533084219661152907390181380008738472014065444094444612135115484410993812804275531642303430643747054676543834392628544674869603555235576752552877133991756545659057554628000283695094975312416302987546821696435648626899170473894504267292042101402487015298843731714042105032768949345627831356198458551043100727642068357045278768284682254390503770866432192899991003062440689796239489033847598315958109315541616314136559407360722521548355738210706370630475319726620485064065141580647844845381388819016544186253090176245652396059634516847044703170549998745295700128618370216823675235363948580867027675486057798564461034594998065401411685206066128272817673399934991082061575458059285276361082085454632555814705223762283920641425767534695039746268205099403828883229276788225454724706222107333702211584919508722575738911734654159274577563580058058704719287524180298033315968792401162899331073312644176339733605361956008588152050425384594952868931867621084975784686835536870547991670174884308955067764100566670526215948262165282877532237750093628501313824046473712517092789590439183145767747876714756832001721384517002533011193851857256714081165162349427428309962349662404243146141209228807260126296723103470924699410867920688290405318178433004017846407465171073157543264163027175311748100563918143971288096978900484824972978557053226708618195953962463511054639709890540127095805307867440231189140647493722881775300087839670087408511039322376747616120719193936379552271945724858341521423667275932902845278452013484146328780360213766014976284191319473791710189734960653504948815935221495140606185376965852996644422261200804068667375506348482001677306145963161849951055444924470166463751059288052768030034613212439282449364961231818702026920636613404054571956463016373312331457600578587477539220189507899315363655352765680546882622964951817597760566812538060491322981818883996120913303544674393594611415615895959424791648731868172032325666800326909573281856496492646799130337363654002154679711766769094952941660042692032244105011733229365460975780550975612109558174463410714739862111037832945698745049210944072692473144723076112060143847024230575261610451670830820765416380610438449835062515573892737597928690398319850758680585445649072582046039004582191383126821111676824226728640147768954174109099539979689916084713294875116702941962600025345800685046690876150010320334192167544276489491438413951547311339847270599927188985211783046560031173184132622704250591610852599534864922996973431860807171600707214426601652880177487290677847263479042343747546718807774294891451845290676405972712261449725020881768144734646602218684137702617740680463868525574502866800408081102286648389974360817575006709919601471538890386992379612506566002211831635368120133413150746376479143877420897646622749894828789555599002095847375182120936602213011933021292388518975490375328776111553080101312258784880081434735043536476190023438600516166613141457484516045198934552626129869096351756740150109137479634871678808616902143234359852539314048389442204940486523213026917434141903882508021340591463720434069701844953660515928689573071433790121884774536488227921188532365209907056942625125433893818095314516422421656521863558952468755005024880140337421810499763437554267689989821609317516415195363514195317688975859945788480504206455224575294428209165215964509825859286225990734446418937422271893819626667667684665141425873197335503043201003862136355843857081868167409580069184467831367824613791590263680924133491705895229358118230700934166130603651130210577147393541367424433173779618886590306624746586478298613070116530649590107260366107453129973550630015525306454905041396942908474661389215376812094464538926923644325201367248878305832763069007520088413848981453128730478835102643713698769206497878198824374319409410421667645422298419404111464722533438754266946314450544410616713800016620181271795282369483879911199710699266492377264857782498593654763101642938642802551163215386623099881595968758225500257916734306453377767061641428136259443261685129490090600641385066093457017420403492468150028953485182838973300248027134187266908557448303733565530892057584334986989848947369285712069643486698041924838053108348333857551582521713955313709606906073005737278900461686374339700571438438608581474048200289723677997547997273925608526831461660421799815084651781676375719127686118559362045300505778007895373347690661974980192116985116898483911090655178408214666688758664921798497339447938042299643149366617053899770835277756924292205194833218841868886230098474353980851147847346369577947048563117235189539504417844493133370097850412245274711428902260217122534574150322153662779048378624376937097003557004716665957561187262895865030987081418259558997813924774127964095620186818029360894319538165919836246841065758424758290620908067057554533937978946587362336677820551542181901638740836096707897496078943912144403003438389548352670967066640401584523094559711967981673886971201306804807387467614983470389859488981267059067551751879511378372731440290198677348491301944577298007849768348893878729581466663865245786903578320739052076931803174844360935249849915227952659858096760836790765009383225221155414587215084704836998014892858663628359391083740029681674985080513942429884819511058465715995557504537611912851163989180520794745148845046624967873570282111818964573113285985713397626069853272907648113932237534274948500068134872095251148396559200049324059176734621832649328509629684804020862253331827436677034363317312857638245884656575765771309673903264738953216159032009716834635558377499583152585974411504527038336213069257422767930767038885475359216545859821245101867986160787331958742317020742615803377311467018846825388935394273581891987870308859101355661196056049543164794075382318082128797756966848276810112052254983827431161421058192393126617191419131861323821097481474291732965084976428771609772495447507122752150166352039374625394798621076543614191885713146394382597515756591568930823404667410972293425022555766157157944252306533614158270195021532000510799980833861447229752704154495424217931945095006172783685452069844940038516600675420431140662327662168332211949534310917212531588873425191204746621688964098489529113104066258211334268819689524733414030893179716499475368611526398988663135900555555465078843386405387680400165446982518372835916579218038482588003739504079827777800900822520171552972095193045093455830203248698201219750784830305671549264535012142070659161324405519841992923780900110869351223551472419044084302835926559783042130380404965437082742413858604310421746018798510099565213283433683039311284250028134973146881941654127870829485221764091175324610455777666047011026952161852989575889987390356883884043437452324408274732172084399727909442057846654169836520862503967418571590342357035411953417677126573207721295164290859434366561874538333643937498068580654042492271052688626321017738673679744334453648259862477114460590492608631144190397237132154345159189677176088461862874387627418089270297306119595970384925830946079529780026659204545664299830377098137320956139058264491751205823290670811972052884163228819289106775861467962052624162416207341830011167788699142370379105296616380565645068788271047122935126809528722059487667952968239381294006040455795446339943988634483991713315318034282992115561132416608831615780791666566614571026074726430878451629778785920315867437876382878149890726084986750161993481606685229300896673915913631587156168215841690741322682209223539585222789094272914524502221699699129388684049196286141818806331696828090225313085068128542492223264244524776647262611311989588304439179715501180509799245056394430218000479244935443678206756524332674451194123525619193103925579735961916595176547620010960161912266539710966684448909880123527869755664658991500135916611014199836720177224758690711182033991319901130350928890209778821421665927061246802325063955031487860134137964902249524580341534480619287800414657211107336060904768357056810838703973171642017145947472285105052818115188230616731234942189276294941842318205299131232024117826281992955134972844915584659410451175944820614114027840247636899926189235076464937516580858051582519385531036215575810629063643979845410071419624569416553173931542560512990011493609026287531576455123868022739034473119164281778734858394428989858302854864910399202902663410289202316318036524309226959551794797799136844477518866860433400304523625300525912773754297955969626021817629881841348834307642377628508522464003427801538284229353792465548210755453103120479523355894180684618293240561330204172727640240801302808569636303284170774669383370735102515321577823351578328302410733802729821745448397008389505278657223340812450009739171032785432703589377816763001225496749748854644098752326438718011716752365139750916940045541884903156692096505375343490302618678399728722713653492246978461663519822373537620462158534603864466264592413022380029831616321202806628774493496433273149018698273658183181134342999967169383802405789095683474426383898995471171952101032678810784796566025626404820219135608734886379692262019223162621044721600150410964797745877908928497238413653664537535957545680376077651696758038450129983394593171243103295385578214867507293518550885787440420970550904299584871317667391263980924669266914971836722886315090732330206749313776593889152324803667377045056738504827716112732375745931481047061606325609221640246935893201783445412005082915936980964368153342374978347676765283301388581561442675082602478613259045514552406779224122975977497484825051022032714233425656677570867223108037567080622428326842348208573295743336106121616378797336858863296498678920512371470904955494321637104265803102437334175335205101360238153598779598290331336574305804847652155761086386797189066617014656272743411310925273670868121627931901791697332428086377866098848217068455970416332350701544302061506743671056312472341595825108984362068992892461327125822252210612106013931338477319430536469605338099975685135744799143240516244978165837712641908847663847310907820001985223440374561202496001297839312400142733629804835517437129939912151844003023717416140074538215696943620668415594717063235429820292253834576027011304262215534777145045813693898854829722206056022643130996686647070495337096773787556107160895457105230777916232674602123558892329886052731208950550048448601041724348927808982616655617000922075521995962542978927906646116878752737262562185531402153518327306109889733696105677660499633361526147861524019857254267059186675242776101440506067879483980309846384491744153310592439295875709481425192159374832135480708757205302660229095423556663335579984578383043034757575275777105405783617563913368538863562948340585523009969886205390152624404343281176771201061153199598917621987125541078332189030166588257153956206148899715580981859080629539752564265573113709120405069516089587479235894613792417130050564444721038223343788131974978218074492782424590609792821963120695121164234042357171976233845029049396670293516835528784248487632103103365459917508478813454260532840378203682350499829470962507373514808271014605716607026777058720437505266321856620798949138599120746608658363620000313228415933057760785473968281214820200775519996564862278130702977484626984615820312374505159093141961614680681608796821437180909400600792850588390225838505717734980159882184007783877221937322625061473000261501401209543823222668637477608226299342861547720170424945151536303588182732889502821620858531040004362093252223228919866451410423667676631297716520923470918708812067058343558101827184835688465844550850076553849174686897522834043602326018779751556696612138885621365301133121515211316287800273427062877884281768471675063030558052689308425876213824432771393726774498642922252199864996412149606200186682900956353605839425034096935672144212612963261805307933045594571592083653025245389215342794204820571148336252118905803502010490221406741613543700302181080410925209762943236889037661727988626221564439200048284625654336603291508943867869663808250337350778727994793451399073631423504477251236588428023098883478351115861495233272585641388923167705476551451150067964702683176141100448529443825783623810393493981774300318983785229832507685468370762876116337686200104802420550913130876636543863288697309029075130840675426766998333799954714105733001424098994258873124182795871878817256325423451148606944268646961289492262708617356160058620271546473322840896699856099243834951598052932726515998575478112233737889346899045572828504747257361812842211358345495033265355050868600920162916651848095402621080585754368000631440731723494643698211255176552206861483188659779679709130028849420504363878773020337194260923535369842832104405524800043365077288125748408732572015173167230109437965059318556601271776972804375976500429796759279319023457108494129205128834078669874131877205489164074113560139685351057435887714633909681149042768350131927955247740330945643363821229029092141892888267581097867142576317288740017186042906015911902045499615249281187058830123579946293352904124259556475755558424578177173472346478801079234396297386570924089500667247574728197977064182387131241817234679813945887871716563400016889337775313652826891470846108667682263225940977650432230567514518198736701753884130934635814910250132239817421770985363878910045772802027393191778879414247711544971838230175060849165794666428690079757992854561988858095716312457493891146807628685683590375866582451407844512191433726372467897987566774988098402866470118924219870960001848753848904900696301609510018499387488581308385877268540592667982454665698874682902533437007993072175246617224338519010134231242506135036356450985102885119010514886329335023662301868699853653385360852686772007079119909335608081165346551359179113932110152009077802282448369679413019046278550555786508987935257111706154241783000514173388930961567720313874194069089688942766138818257231296782061387831331639194529196912906436354812976905673346024582947397140843862172076670377613554130961513979215624579602555531655681386391718435875283299046113320502432461310580322739583359531005090103049035549326723998634899206887203102528942565993088092927881776531140741543904657530009391962059542714392517060403292366569779572434031854966525080188019484055820519815396129094458608392046813968042425000312753253970897080919457858528303520564110030430169889350658866326962162629969034787101548209957401258590753862001541855858510869769974251969500861622789433579554708225001881314138609782111145387527098656100905197205523801454933726152735211189369481827684030777341111323868949400500912665127300093500848288022680621810720992434148803591817121341140675968083652727419259123812756443025250849885074118171625152164018531604611371865916618572659832290210277982584090596432290974901709825801471231743771921881806678156222650586695154104681284099132576316923589480281331824139185974795778456409905818837687343263226347209064734003556297551173665568791484245260189930219476930283444711050624662912504702173420006091620084389453296304969801185968729507042539202422574040388154122683785242151329787982187234733087872891438138588963473121615737567722667987991020072622135503145481885000639630343497249944109599503031653422529572055658574599653237877777870233742209869928396531976192397688438140426767885926776313989897095767432155760831284779515934010080898386582552400152019579969555825526892929379338335230617982183524809226706463187585170484464364363371013409175388999726275222518311753109536090618063119178636442195928169637228330378508624993486809870019167456643832336091392265863259559759694291477449564272144093637262834093491655424209106916139813601675729925193494871022132255518171082744291560339627094160121617697061269065413808592447771397797666853675602758926505365619924424323864476415827105096898914763507913647486417155549691666591095237954847374854104646002318184553581237010828622374666029269532250748182780682670149010752898910324005442063508461366627196766730318618884144351509001326527355583439353354573101081547907924949423413350948097562804965049230137912669682039560364456147566058466440037970814200988636047312468878661747660800044790305260189369053334230175148059656314670499963734770768665133253732351017181311699965665764755625572619460393067058944717466293592117532571573480806678545928505634740202750558449332117067427061183346500605604722838400479165881549229646390255260567430079438666624385830490828634302090140984927077017012798061686262632749114203951884340007611454172091041638666594004089684085787242414801932594287166034105434023253007883600400625023152916277584954063744373872354976381521237332217141770930168930345862879305464242831944134182508163061061337878552310479789922061105876401191332450519393310625058170673885319861193027108031413313222520734010877518631000333723966376091532441403199438901156598482324219091369572701017409790296313656319921145726160911515984683487629806025118737153352853839296043604632410760824520513349756383959478091706720135610985900960455300206723132557352076459874337287855647444128183217947198986000731937578348303220581100948367225423823385609710652747046786963505514246804626944272942795537252818338549523438745397956700814972207977571585618407261344111818022746736754130391209513694289943353588210956935808818763629164441988892257856789020095233988350239474027300789834387438713796526626547218703070280207670923454830745100335502685549308376154021412093381504929496271559970378059996229236999964891170219639923699464312038101506035429487349474298423249027819700389247478064185885340926554015720949326606835178764084405820400255651173951175341786724463270823584917683570594853557623231123338124457683887258657320491687735791015587993248785029088006535115978676410705438274227213015205668889641587604871880721668820752319869098277858498455518650793397204574523307981768464392110660623337772390961987543652773431384470458622258496588278393045548498540309406325493842686225175135604107312287530623762226179783648929122754308328202644104731483047466412683985403890096432846930598939050109247835879868131899961280741330900574413707630707801765976605205947937522461346492458571766562183961075163896392073470583491711052501235156069669436337049475395457441057226550737200573230426789388958367771936745811691304803688334791441451929589788462623546832250242112479817626543213790633872811327856240778017516321799490477080599472209148213503950111468021404744569665642918517158152627271535226229744693221784966343516130349264812450558016190142495965496888767154936738746180389999502469752639197490327799759950470227372474940552743202493275048108952767991998198952781839289578562092036934168394669576571056196676443677221544790130095445061581919639577114050728523232600709813170996490821609788267844515974207588406293485042855923129212340826397440637553278889959684836446171133950174384778082537139128382103467925067107000273686243292108673970065959269972590043669773977256605070064932081766558443819480024922803381781601927668053482419594188336712250546955490750877737553239172697774935653301036224182625560255704118946574750256884660848136350418207646164833530451512887715705376320650739604714395376727119290966713829586577254198725657526117581336847197877266062006944693284578457233991008574049659053063620171751767849439858053194166737959708459447809580355432637252246801555583811931625034897559210730733963547541159268638416168756791690240706339512267068143954718441460607770902251014925740862626449973662202811219199243801968088278014017802408577199956709543470414294913972597846669897796896720716804944814987474889660574000794607650363793916338238475875449142999222028165141441996592802739112716844980959444529480692061949547413968142880798259231837355214777616634588351135184111709755117611206584647920811001639902363202350029763053417974695090304869429181441830907716196537359754499904509827982911789836325355606247730582739069322397271631001696026300818494523314809310664968665636661661883424971725887914216401362511598221411905688821349681029409391416229942107225559669977867693992001527197592521820393765652038078267930701636543759110347251346306188718750658827504636006116491414116504932530316714072972163781367891769634067478783550622555879373093524315568856360873646587775131004944933005158482758819559953592256617135383451355974586238782483653390562262361379853043413628815961329559466849936364818111223548194749438866682860232863672415927027287248108926088736416930967542023866114149661576981660633943007173519632433116573968781079060903636290121565268375823911672214415436129138003487021526146588915828521665046154672915652192824727297287517618112095025856248628854046288151806277263431969899847859388819415366124128746065379348926852742673131682695924987060435182708226538843800558359409391082305629185829023339890373031091874463642193098178646157839827583285555172708243925546022832207445846965064820810237624232043062374878375705202260640142708352456282564150812438277326227047657213950501447259901728150669825026853961802924174249427837083918398377101681567993040625361575584298377944977765957491945854707884416867605300578589623051083384027418922248861816032424546589832242546635789460685812019385819725547925112891762971066889812609594142546674585972321710647299354639288497976169360314974429196108619437194878517197209673889217663144415234294763201060411299537740673364757289747516083690817853382731299690945818398162480744143833132944418893642112709004924864389985365212009345203269694800396791525383877714027546737197821317000418408110754812200754464958498225863091924182602188353316971967900953230013599740277206362995999659889306008714937488801408940964528073205089968507607433095855662492742290235078789158130563121144600151861804928510368269969572082846393403092205055518064727798899888625523901673277437294871041696111858287151533152611514896878927491431140827451238762187504028880913041059371884443250107271615934022991625708364724555750932423767085486747844702273451444444519945572142712114371724313730364504701408304388156376499824455866401841899145564111317180699649111513359937113067935114089900234583239015242343130848555983184499379893209224900862646822642538331449818606744651511792129309910283549686627597733550504067010602024559689460401458105127957889384379286664092546919184867006621291954427146673494843810067032259844065732993494587824098867717453542446627202224418350536917450956855783447979644204917215839400863725462532185710611121489528992064505335622071900198131806603276221030470647483663854809553377915109693310989190285307188541824542531771868008917625388401831478690919526011544631164418933886686328933463442530701617018780736522483091821784432511262522085887077317698804819995856085254487601139989724728596823919671921058768172942509732968470263679709881454962679549040133911673795342877394915851224305332877230266223222690217545215455814430160332160855013395097669175499229303308741870574130862698812316728609457997688988119985162366659497284802874297084296488665827875814452533332014332759552122986244781243266773403934729805258958767698898252862141890087642080850939809473068691356344360003184045445252308610583998842673943069352510167998345481605056382519297789003555451993082214663357782712391538047326202612887625081688216019708416419478654959741449433970517680709955942776449787056377377972065166940076515637039411005066246226272302396162025848223117680929446357775017689569064021333617280528112346054912173096693344358538909560865979804371210498119205374069755203909410761774464294836821250145419978935669258407161092912955032831593893864625382195913852301230339140636486736960568186373065992659106257916719576130093331882336493821369147459319480815418979223518205953908625105031927576574074048447909089080961679231999537029266179024778745976632926564936894198913261235850027180661651342425174582223003712881097026927409376273565597082890816729617098279623252746220234475243352821866997736687142047398788426217767213324160726676968419634483625371706772840820482173227257600631380759440553585072414791151678385616597549279244986645559292844056258077898520526946317777550843195699203777011957663237971812972926098347887000902514130088042997238052931656181230541556477288802357215312016560481752345572606658305841194308014487939263000899686824935655067982612480624308319514651320492006534132041301257669027592990845650327343470164207977776592992923189283709842892792101942230320305569771556639801309679175696471204258428663023567532237632788948125053854456594138306620780102226714043895386515669283212582177698277919529975510020436384171831085260723251360968676059467136908658634523473191940608951806169039384679900312334177123136621516263585173965003215320669966412698728068195727817171666277126882287529161197703178591260934408398593743967698199678706380772898168943546019691253770966679068248562228924166284275914425638726798600742853856156252499559669307551532540655111067801209987979668950992991934585891232825667123048315312203682443004553064507314841232072043940278986967535568745129314592585333263491978360194579602973098505369370556610087796808901519072327132190548255224253908575328019944370567809545711786577740115668447365481097694900754503858451086323531656680270112330179633151935062760313503000955518344546874130888897049107908765002013957831281652738298614994857724769914649927994145883811500649572250831336769985428251848772618474989241421408353519714457863445499238580239633564517522786463696636971891492537454683454998296530487967475595790276492109786978213147955267377723497226832537960698313266289961217125121692764691699053927070791717553799204433469286591595308359063531923851625923058621444169915296755388314531380512094002947063300541002150030561555693798418567668528695292296746567767366059125348052683214463704384362024848894796969354167768581490842433724811676076814207509930217288291761623040689418301398537745116515079304166712481463123081615774026562879148462041131018189010133157303919465181127772291682116696542422834335511456793012475990713943043499933643441302942038332676631532157775127807506625448745170072914365608505405913497234701590929957721423413725088908464316455616559454118805214942511697296413498750740676092656004473912975798676482472694631743614123434434930439324693277065741537198761924058053081334366907849124789886673929535801525341950044923259499731725362580956611316099591205980389682295797806257777108838801497078476577196384457079177243721251590063574351242737671168562152195723905734742431227392952375783173866598568798373688972306736887697547852081463526256321814358431740744931930057109767350224785694331568347472252292836250981482926545659783827917845083332306039058290293963479709623508761511613215505535795375407697467198440956541043504632461679520985590389906756854333486006520691635927725234814093657121930157425885241201737680751336027824478019653494603178817959426941890621687349115980206486636447633756713649106622086351452858097172713225450572371585228150467631546630953582375500871508019143883624706315221683964429537156768237337737799975414971296330989047603970247983314792484491978042596110576599818379739562159447654437543394763277674296066696980053446535660199615986494628758790734042562385933023631633819646778976652190305160907091726091067801564475958868705901052160546526957114900233503980888603247525307167413129889492542865022633281996672476185169584185027480952357210329645136746566162808335798166391202178452811123319095949520639128996822629979908154307139932342106484279684487124041752356447041716614163684531262506067124414213705779909808968667438914255078697692316301090419681768287608698217822985742911502248270303451855341573496559425139749775192521174654137152790872691505042792649657069815234756473035959411292230390840110685595607998455268057733509205728813215284145479543453045485384780000923324579733622846115252656833121739291748143441560507831916848055059980726920376003641262211925360197683229745480710842315911312558644777279736543036488155834651061545282663163947860165395632379664941929926160203075002926729886700471295779582435950647466244572632903816476717959412457704704695053724078274824113611522764289196142528407763458132280348733723890440105262096698154607467665883229871248498066833743038704065284955691641207320984473444305542692211488419752085998265441148670608110411094697549721641127253235648945700177504765694914329557773451940173658535079475288228630311451733068530686963891801216456782334618994983067907906943517925661790912953087270896948587277954614863787565226511146237261152851275683427193717281445453789700084293688064473075076322367443162551580725703798332437615427881087432796892422542731190019780865416571437945339378446829113550814143333173295225635627254619489431952691429832243438565847370320322603962651153772094299279363514522274581082396522735851063119888728625363421172975851029100935372815005605055281740816507838349647163458148471436645686440008131991106991655118314512765591819382766104024650563814179823076077814813031747727336639669439960558385228445790211302726871298672223494819962049622112102167544862229490458474697409280559273706343135076724385606141053546890926571464148318037006819975947899331270079491161060930560868612539062559283028245687980700319163975536250424860277675155703397295414175889283811779253936902661884652381870049259384602857125702560923322172048804708864774177775675500850566283592216017090016644069361565563899659785088830715158510762103399902568957174914749164283083424450761387225344388716030158283021510843100510717429849495833965675181298994813404244622982108354972176816514730712288253372136759758972885195126148966766014873677955816348425349657517421400496152584123676210369234106449780707769638957236941771383008665811777661689504041844716533282021345627638595544373175785463215594503844576199809288753858754315613633301547222753750031621434390326163505947200978696719635187151232483489629641078876287556271871402860816669481339200048921672293646089057285952345943782206285717525366766912584560271841144773672668908634406606155217781473196933111369348019975116067897754721764844995749836158730801469172765743990103111710731678915392329764182788975497158888558422967896003012500517078216251563077284866231908301438462301558148176024298805322702382594526002270036721550733386578591687766887914580626517126477967173238174193644242969573551279864276653421873939092827356310473977339958781824600085946702213212769507812429051598258370714668653952765011848138394709381534320495567079234531747711306623183324388302075307340471161318803249833102888579453054954617215287517560138091046916355057639390213355771895495649551060508378809153324455657521046585820132501488608125361905570406692527819872858994589211563176521609165768813361662775113414779964192726163117200105913060363269222577674279990256607537779862263066713701418569581505782241027154124486461523055139483733535187425294223967269353835788106583078781539973826050345698497865728447221376928962262942905771214740018432110558582385617687542970601853065955981007440998310404062441086477659287349913228590441915282645017125000995305566441118876655356018317315435122914865454315004455448431533039953530243098453471830997774474644557105509509819037311659829195510442317272038129922387243464540172247455924690232682722161157517873313319130963614409711120851099006046472047207853846315981768728169067210159585579924200965171843345232144713934852177587379133706932311834818324161195856856314519351432303678069848193943618017888056248202799990929332872602575638499959960141496123895170312978555824879782270928867828434334107947013754279624387854112344381334471161521710666877197417071861366985149038770278235560634522948418738313513594273694147312117146211779356293096597779757335082362422435636676414189481349195218669035912058419011470140355644168058910977248869066871423065568203844697580289641153978726484277092011723360793592905951254770115371365344584887752256954849136792559288806324884921315970479851151608498892169393119898639676264903548744468442694354361305289072489677743962736614784221273238330157933383265544787770951431625602798494375369131667782209518799457549185640234165115139969898614597942609422464765122502149123401118261316193535185119051498398327491977646827745180078294564169007387610314358529321428761291754600125161362598084242728034726779791541231443221663288239095638048798556393604047010157281281591576484696146661524047795420601381908201577371427549259753491931702224240715872464277219676883253120583166887053153197863678056718415647319427046110334081835621660902833811896156228232904117411046270009839502458284760330892033092374376796182360170207661227705514821249143006841695411981682657661655483048557697764276009264395689136975776886379928855685182291796157361115595713160962136395296664753347999856856059049458081658390934270206878902655601395058643016117508482592480445792394868434775731662810943146765429022884476830333392165551269113218420829845012245866913572030366315572612473645853490905480163226854131010502746683072271998548069582567108532356168065889461642558657164730338594817305874434401430246247880156003420948244786221349270584320172971333876365319547571917893214937306816982111890727600346496893277940658820316671775026598423666485139521070656527291698887704291002846935127852606934530463625822818473339771269999394597227150735733575843131757470655548794034862498850634660581328694579266612796457963321759566286108917885398907881453156769458940091342487876933972105589466788383057306564597887007288611839070743438191189874979614032818400960204647720495267931845321825864237470825536019037886449341425217794932957847712304028863458140299034742765197966832863306667281290536570227911553450860513138710888687714572305970279495273800302725833398759897534638526591931687134390863539247278496929581961973433458031530510042380645001513720980780647765190170721519591760571849343998204431920449790593092095753367594102128325598855872156768356011846961144152396909707602545222629128297938919694885803855559949203085194140382283512030271460872436624726005223514356328757696422536632370922348008143566833608100988348535497952156221863689539391211577471818728504015955132987849057034748223480265937847162576643564151563228808393779834027621174057133274540831807273273537417187800026472676008437755920173278002617483572906934117832221594084982792342900140518200508779137933214283459758909107038892181597074143109631046455034822942741284435082363791871277104344876131494620246512391377617562700879459422744517990050151487045592387141571356476089849455148331760837817572227598136148278567288600845766645631669469603378549010629583991951650511084267266338844177792157375408475517398748028547011827786501993477208025630409462420130638811729837266598894717792377201125031737412349942017639610457677789738423529302967988540401945039749482588291119394968134298207924107227665422050969368039785645684238202739056732620097486340448410322800094867947149882684024250362895178131041159175816175384398435267203489137163033389553693197661585260105818065545099079928388406338759672558728675449214360464941960365800017503990632925132349962898730198884780337437772737098870856286886427108213368168297482873337834996483952507337405981961881854896325063628337220925380254296202279255102939154720950354896134929736106203596260238753367317726066759323720716516883212793704030538968921559217485506191203939796066383815323844646300260252772996852749729397311901248775627164872144201577970791419427910021274562513468250849096491611391113094161843763527425261170405333887884173611773037132010118068695745522720717802334963890385567466865672112450354583514256066968667975047959264786900154789212655285465438983815649935928931442355369295884154217709188517731156839103632191430125242847431505718157666221798560702521727480719461963695018688055039799085877298357117312458472336290639817949135108441946085271788392179913800526222955327749093201524198255703028911840819568007270963725060934729574184572883177869645726391997383947569672917551843905174002357322339238743067993727053843390164078868717238020844696796989513917164161254451405382518557857134304695366988383756826525461833601767948944363796472646049052416264767373807056738593862867575263573804930180489879053132765485035510878396389579949194950842047239110194725261612833037926813806874335612420942557276312490317250081649257609931333527407079559157865845127158905802798035680732935805922309555541843128493386801248816239579232516757801097464622801177084173989942452286072268248982250521178720325865193364956093598097237476182487002445477103712420084623051483926867925899006142211869016548869658652288665783487040988687064259700259147805509842885115239821216481878221903473857990377518132502423282490436790560314510107481197437418568130845061192153755422796953622941411202135019958936052550599196397313194320103502640218749084833715603245665497345805558235165666901745310677630167659902143867218393691588154583380970390858867007465345640315793245819386744815806826398066259199791065848623261334687615511157862375118019350911294683681232308815933197962330284926496588094804364634215774133556755848279428612157380142795301114357445276516926188443019999504126770467011838986689175111211746971735169633417509327625527466995850234306050078568942063056776002553303624400473897328112609498520904097011104948160297030151319782216352728450501864139618920487474941402824442797848758233523011399733380633750399972397263480751031266982261110935638289117624465167316302574685499824822445643599519623798977032835736002572357708906219023493583607638270401978189342638507701366307720118667858095702315558478754336711898490019188094936005982238933916588823537030295213310929764241702029811205669545359374896665744711944725899973231617746155901688089491502946965012625839398089089626883274171112179383339861470252680916397580626534419955496790236154269491227791141851235948698477064117829576348947560277872762149874922366099185725711103991638736993854636767388396004316172792264296128482162248921994934057359102546727387781467967381161892764175822128888718665578699736622371634372374645939117703978887158143876703863560721148037893937073795934368207377205648180446667929392914158377791797748530283442204997131654141384472996866149533133457343276076740282762671785472608390380796367327312629454531143765830447088852381090850618785100695005990573849099343678911356452228529672638455423108305224489328439672852271516732309003611824334657672222568620527113052092591082603654642932592312240973531169028840191855635581548823125429277158076887240284232039253207502674620798999891879855029927721756145261286433679881141618373047202076675551957206736702854380562463022013817377276300663198126397220689280148567661536109114686851717032294804139330993829871543160023318101666005904781666212904026954975274133672734977469822320164515868442762194461805940548978109780902041485623946030668939101563934958601099247796866558563025727078152393545434992318140884935899100330105452939776264879488052628379689874304343894177349033486034136650862334783972019863469657420064813985236109843015742206854482384678251089517257649946466153376636040169790883522525534493512552406355899559734466826136372675092894346799765052074182297835490629350975968667769679124320253941399273697008430915795920934821792523473689989439875303926168554286492477431834081790755158550634135187991460750241484337258713830063310958676348164651032908588588143795214952839224707335423966846286430407606443017033072807303389806053935696856282533252326457747688621500734458137454381054116582281145552917482723547047571345068411827619288198191432614128262575915205887632113738023627129960310134113330813748468123079273766868370673618974121894345245212937791644068387009933899076927866112687258913305939444493649379008026928449474362205965150399574057221417886386207518581860128074889719525725272201627628374602991525582280275246432324792172871550669662762806256852100290171735220145986144711363965028792688775550462065465367747659498543990712860081276639394726494710455280210069574254439335614013555675594393143263280302353283919174125198266834863484112310860271228124589122422256392411020828050818462445896599291799683083497783129057197860878892867684306365722701438132086311011349315426752043930239381411674442577267428866440497702087530539638480714760386823378286470442423412715997113000443413520394940766957191746563230532153608863613983221999565923762627748601791313525904102098269354790283314479547582793606146744829422880187549928067755553893770516789342641122527859773248121861755974980647282376806875532566819351181521816080161079251972944119258115857977091885121212444015103425256551402127761962348531503274032162760162629837029502942890431354074125917894633094337697752627733716269074380797398435080543842559554360834483752615337713762959432623054196782518458963715807505089628395959596727370402395269817398810315708966672534159656858788502913083464862723656026467959076632617925770510387664063718173436072132245146662371331913969525932669760931120516358982533657423555534265080010513539967982549936228180478326325744355264359256979412011657615965756467758643349130358324603366331280524632926530213032469077627847120090879778633733038800754080301931376363774196837542921363931152005138328833849530459506375759425065225302587686264392819882751553579773113168986159994649149647730038171089269759087386425326687422404245656805719870492708167817484360578710461028136508763242512108646757414783271447887622800545541803390806638965084251943272207699323611451625746533068100865475465836213490636546787930711834012018947758158849295074285332273375550921546371511643318989180993764164354632740915324066734633807213093965604746194888512641780746782361876212395847923446146049514956825961347793855271168313100723440488536068704658401190502784383329886526898543624168499622171041060552893952847183735303120442138479045500966425903050001317533886256961210926510084352207206439594687858263958221145274298116950909765971012647216280290166771641372716375640914969591765024704781613420278501405024332835013739556781317197442479210485253445257695532736045721112071669473537106205392178623730994485960514843267402776921539067671155440426050682178575052746822859792944043656230287329498269152789521489285894471630750942093125929037016363388527027408811833510211392026078475068608170374402386584507665528566665491304668989133296337703378539942508829813741915825556182248146360112277550007990829606737432291459761975126764071357438626314392338936292892286800956360608878901926684088731922449738524197017172862407812585980091855864009442265293913145343120227993165639103088388347287331844381652487917803827059315944277523667944392683311033368923070114653045996421768976273599632144535321867917808853412812686602621102953424697637598177622045732768059816755218582348011136530569894286510680337815082877811074319113888121977486649930518088026790580385188167659129533242847132592934435718627496095375050581693376071720207690022552064711494411432254472724900676895042539479784778850583804268397947054412160999226566581110451611718345602663264610219168161916183434308288161713877775624774521779747069799828519621688925050755088868862114445817534279047172770373367976211848442470486761886479270427722079952172380196247963366737778922130723635719824087808605126929053448519502662360490054995826492884616800243020957887544382077790234858192212463348458004869922837051797198240082540397239749890344743754467011013469694658817266295772254182026907664497977890984968929223180252608673031303920688379857952875194320029707906706258911898909789241345306373366010576853656581790302000124904666394668536161240176038266267914044560244148929430312046769768335085444021482775041852025353905826144310243258429812017969873816031335957356193184588887841345261704676486003837365148596654305567574754182817398014516332751560983701021970519740184723563135605474649516937345313539155453355506546441528097874172997374724787373708221245701819042306260013747634175208795775410104225636047985230739123630605708681360598905567820343218905770795007929582825433892597692491534712200713291650412054812702624884397451677698679155567852719700026969162844907398127453588060431974558184751067792659968400027210531505262420266926734121885485348382404792034032902085929374321630694557204504623839490927273637796789232915875582352615054067839651120654556412926541283948564367419263372601311409479568312278526571255716359899091955025443278933529587465728842440474579248560452249396692488052230493784235927044348317894700124429386023691426194335156207778610803633451344783457534348938937178204191306792239442453258247586691571120585503585797499122888832334200443845989178315683075869837935003418415628013734928924846094913171582922862572591280480238926890428636621078990137943224613264902948702367758625918656135770645960987710280006658726263796191122631134781028253055099257468786182645376118293287672064646686623483452750087527458728078201198497589764011585849124960092294411575767579990425563678694438771828364356147266457440162217038941634238184727301053484549064687753198773416155487102170762815357278407403185398297552097612216485338505540648410685272952992073038987744198707176708472252286772301281432961250830328631297766586307284963404359080966646326622891559348583759076368555654737507306374450533014170836325534042101435112210447501431713310771225856464836501139651061439461136065279060638269662255612572450137147662113031912132785709031646264242803508079994845544641708423856104567343925686081189495774568406111685251130073504788238540328920737423557356412108523123591475147070755170863273630723517947939775046759984711058847216744193281694760914242801715999555095041738972271153407470210334564036585683755903269080482630059173682961288666012971502885708792124707242673117439055919700243849912757101921521662153747865763891791870942677737630006732383702908982945607822901970683262210763089972345238493800146141231225836740996708656016865962697485730903608619385567253604381506378719534765116287129648712741897925104571482204890096401142538642089688680730042722132679238164399561512457120899160630102766085886317652064357191263138137435342021234608402053887650198263198782008782277127369883099888062663656135748325649737177046517866994437277839031654924782949586258561740889314566410282964502132563329270679803092147669690580137509418246080698285726740848952153210989052075876812780153426185614831006419604869183143002441737424194392933578028223193685864895029144649311009359849159930533531563890660329669696648037164699427136393935200149526146506115196205846451483202205362566498610210993698038450482703490240976630546368715799595659374287804721628756545398243878714155609680575641009075818483089508477823245069114414224152086213500163300070395473155481618777732366566309116092598522828789892364842081877300992369689451224583226939065343596920089726995499933180207097881641312647938479537897249485149413459603397232665799705026671305467937640194124981702037242936087764695270370427845207467774347079277415961152966243925581516609783992998024639847093490703921408143837844778112711712291202060485292813064421526931797929005759508775309591379818079990912686843770409324833712523715278257911755585435935035221110322060909655661730667318820278830630827818355091100474128177238798123281130481748896035288323671666423796312798454870610564869666849550752333545930253850653443867056576337599012595257478856653320542382295530746170040573369932449295251647332618506417875503385762797648014202846581862017494874920650664526813750993994149539157923772133240317877732632987795601235903752139490820292846957254624898818316842687674187084120083446477654282046419435927978705344252476889110770753328874493141864572024688915932245035698914373101991363721463673069243903666446418928449521472740243092198136500033802990144345347894010459813720027461212904058870335640706343057750614109387144712476968663352488989321292813001231328931695359979058334871572481364959868251678007133139097641575160628922524154629310532264233049513296764156541313402683516028934394685071287848439663987068655655535687667438469356279390274279685037616631206016042542304777263402700197828731780900929334858183747905497896216371234454416358435592562004082942667728802054947905732687159224237123784669828762812450794660780724319879290061031697401569842324169611763346924989763324303172202835244480297179761345270877992531482784394631097824322583320833039401927432467380136764257484835804112018724801058730740407444073421892356893392735725187010051408773002662217235892386268940296115543352603629870785972283573128894969272843733389957690112175554361920563680141596254837640952747053953611963909165756976882484290829217436004799216570105876631937505007752108740698137984873585667869813220746765596892439028413189308828762909209878167892254803821910592944410409597467863230009504037059764583232540102304730533136392747584737320198092155963301622792677464889854134446048501618042134729255206408119294957432118952886407866907907545373008166776103350650118018979460078516218308317884418491860932441366753892120457013326113892269004209080272957993404167336834239139979699455956893598050715916513088107917330727547690551385194212368330669806660026442375882839316119506456185388428192135592368634528478984130310608191367608225523939759080068819651810767654627094305271606766349987877730106546304024690858075704381564541650981600039434855575665054108856014624312362696296396925609603979803212954080186338839123330018524957416629561143791185352343494284490701866799656658451870339584242217872262627699815374097669728910403772307751206134449270294239430940390531036650903667493827816096399818336578558662221966200039084229707226924573159712259460449431770270817814704491351408803703975281160987618768025594168708110029050700042476995503067787755484248563001841580971360079369024626912665004355175806327356356976371319703992238700856873439241673702309354803814017660317204568846038203787890718228421261046464631127439256056440670908847207189758344434722380055187258346216129733916017995238798918422121597167605046088610374260095095679256479031907715556732689748874486635444610816399505138548213414683289565661431093480449451377300161218537451785248684244703603275101760257489052683857259171407983659577350327657083888874827023386204884537900341277782314887090747189996417364132035929206532101950497115170904506772499695365987430030421699456608965588224179521067929208172259020396540335461262773215628946723406082935742160278009085664146267884669355230588554314433951242270632122473530082453882756510091580776831485804447836515558600097297706711286084981076769101228737661978214986688878987840889846131190907390465014560137552130963969243292431512325298635916873243952241270666492211131640149223726920287511513068749983704914108123387135829392847045408833024777466980470251155131840312313689822327589840401408903579427525568788704186817496981843663651281992470015696554671135539045035779156160297160157475454648097649421368054559443509870868547973240144161323045110525242000806034049500551720204958134183942746764133498249416655278766583416682469764194248279434686195152989433449275546529395583857862980837134684680040846259714857940679772811418993944273538209112803771370913366190170680640796341202730099660181308421540402274915891769822456603691374626893942487027731002690321317050703407872939304074614869570958251923339702671131337228377005981350119293362242778198371301319848284207514266470300274583550872385829867709481766925899041445588227475592098744569446541202257987501696818867624169195081034416077330331701527319538026936289694562127439057238949203330451918689697759176663288108999554779937124775298360614924440429329102305931127704704706228447029062863880038337709219643387034447201019674906099531205418990659343566584132460230264411334326510865083672641587540489780082050020410511971875909987841951205298644614051924059526902120123646140762728101683372124229113826103987807506405806719382237510484514726075386084071599775443187506091145098645274855274647086215883169173532213325169374964483309113434882894192146071363025904061076784786763768783919278615429777964268529489612258405958443546562073412824354292921877587307465710430522663845062469145598758897314284081990308347419337289103066401519559517936925158721964654521809074030757746417301721360301246324917543121145367440304866245603375823915098546116199123424329505926653207160080958214924153404845825827311205167398629278110003525003915116618343311872344483071577798641661836825730409800911422384562442586894690073648242959585868867658705062517870976916304378968793538728105573532507126304328700350048197040200620756594170768506472374677964264208299307070261315241297759473016837058447631969006911555678961705900158549221882554488760886107398377829417435518282746917148078130841101663387817296676259549828483969720655967314357896842113558205347111480403750767264152583482190479449121268753035240447331655609262483462568888514966351211660877013856906319142413468943205594476758621781942587489385323200175476682206784229747364542876060487121159779720355902468623408964669659270080151655745357308446933955120356803859908375144703303798606491886783602932030458710027056162916166628282505010267274420433776175107309973223790597605915042098216798972015451557306004429228098862794793030838406866589235103537800771130532155079359468621349391168313178080241493247938641255542698839147558953935043235147669770676907009350211263569059352874140135405771651100271030875598091297410429406011651932295680186336120054517233534828216208621739589020248810157500206327000218828538487517599092173410949473143474532336444505047605217354363029875968387130723893423546842344171780788920778067859430857183630456007764203773623124283728176177388224920266212725090673280120011049117317036091909886663586330442001800281758648061937890191732601942515581427930070265221030050229196599033118184677091464415347147813341158323564188827470262585562057795490619681994835584300096679603539357692902230464964649399021960546133428280486128630084885507458275501408846942435835876888005529609780443142413588230163864970592943887674105632591073253011762153918071888879511960734729522632573024170475971178833198271489759118777493930373740054205327274477001576420236834535820415364811267665574597577553484243038851139532728358037603326118789608748276275672419960511315944897426748777313316865193798897662676149830775655587988722347462099007971665611498511891177161961308560454873230541347119845945902091223424447720451433655086647914291049609727493544268039137786727851219445899071206491157118319709075371474681077480244251858476263366669048348636157236591231779387417867943165774140784101699730814554788333149726821042844168484749238858927088901604573306400951342779240939683278828539307922791539039818675977230304939362937370379109049773700321011861599438582670010609256790116673216349856557822540070727178319790071890850867613659202871981892763978737833984756804427890742500471709556716806392213992965190175487543724283942793681886016981567642855788594720170400845240032025501475446549870423872567423312008515911776867201248445160682558479692216015495994358603890915062537257259068613839847615289732176283186684150351967986887092780301341205189171784959434545582360173922748583803453802289736173892407238408505700343595807541735948711664020732341719812609205419708134150795166003162464740357125804565403584022367409723097667381787895192762815582053835874611773472404443579502295007962594054637984414816519390710945132465510223631243573520314314183769152039552047067345902708991692308218805963347421311177533085798705730405567896843045631194579696880529102674979869396911951997867891103429678834198596734364091381722520812424378460040036317497463510758343197557172443480503071220188791746977399047225252274050752270291443155779819444285655786002876643696947384320659652550712936008230159904831440468899924882136548547098381178424802201569613163902633088557260996757559322459873091563510854625854157529489620863678404871044054453760288085736554934489461914225126964674009322345382632968071871549945904683455917913422588001265177860335797278140796083348323115619413880483375290123102959588110189802957588214051414226480997097758107799760266070860340900472697011185826832886167022812153360748581322724175428571602843974936630192553393978729604382077892478507969082679023761701581084055793570034179119372843663317058118580001351762879790667631130052604767318795212114432414045910040008103980759949427192375033991330120823849772523231797318648056320347412001209940467873751736972026697787666791133830641950905193999707895960216724633670428804901328141813373846405501304457192615132716976561532397683814557425163713201703965922644438068974908546279824283908565545667893713351419137482915888616175877700144748378505511772951017758501582966092518093663064190035305727338705907710250135595730223446789773774856065026070663552844274853188486435292060461720505008747656382581182618519517528765272728588818104397443310106565410054874046280373071294101843185464222343322626140066448138861557972500029819390809390642687828097625254580590204338218366590690254784300758156362679220300298253051663160472317809971050456788651071294991788981529066367842552184585735375361771964832977687733363602617471982798415434061219407214614546320336039489162762692751561898902867268302550487120727496407447671034582897562471059616519801410095753389619786945906470920261652091689539969740997867320777635713084445516269379282124346644128675290490934200871116092772152119752622738712736917063781609509688909404500546847892413723224084284903711807491832023207271355720965325318810276758801208312470019558953016859456475768195861171233012195045247199400394518682549467356146563606896767107583875576784542036506977282348398999340076295579619647996002288142143864585244081359140321511984108393468018337124745911226884635598305964303307299244945290618800294534065106125719527978528965821497465320948428023589751491409802702669477113867695639928772481765576079787435064368930855779727751161989284931865646607246859300349528829461760909506261474761798902101843128283442160452483373353351633841974404995054242383900239055601656546017342396781143077054930330328572687726530368638352443891301912162522382154654906695312884524671488424434329092755935858560364097677191473801458655725252663008603374944283806777963489820663331438321715632254110464968988741897222851791015599854377841196872799522531632114334436015194924743373018479409077355322683077409950615732693012795912112859497675717754455552803036662557317882504830035459734097086599284028271252505830513401832106049889295291502431141602781340716399420731460877153549424317834992103501134817782234875026281457494279187312869491709697428568437043895960493394474610916288852916620734999874380875803439977749012198725677051031154079830872186235511343902512584064134534286094452194555832635807623894681837291609063543317189792140254052119867890731696024080943438019699881597197835534349539135912748904849014275447818110995752942192034182883714030741266615041842383457636011274516211528324863171382652752882045464481123512680300852873150601488731091235582957176967561737138771866835009680753489290761093002838401226629614362478455794604274678313327621130311743503019177275713467366984830233896973689316076082898153550934229694662079694235031542207234138386622342711085425803296192621180937910731657311537676113957048888013258575599442008708325258152909235131697071586596468330843478683486049403544919846751128131285381840021372317601885408850959941035645698572530826233357770627229633794750423635871933823226641055321021095502325236673117416061074296845196144150064386505947121790730552169132599699558928243623909963892213287569757696884365123766085012627940846780854639059590447505055105010638277208857495874665961197463663464609224892367320240903791262657756078766112003716608417604642755790936817509507332307429514805712461258702432753174142128337826507203870776877070076818152093309951551411599954810790811097365387403610305081656414522278391711258497625806518878453783693882957856116936412347545909743190206445813395849561818739238420456785720303708079375379423801405736961767111869845955739062296264553805870541444883325854500913430904369971285281649649152070660752998433794141167482526545394308908432416555200574518453626861067593453926190278594273917770046839581834850456908195027280257214873641737615011084508740996134241141911785378299614439943721856008244301506717206089230833110187498623679025586987719866189605736020320306906968445524855366081734507348473231564925003797779650719606680822598445825861669411299489116252232887146007580511584280466721940697890588034079878467528415435890654614887133164748079654557019919598261814532218105759036500552279241545672587167916693935549453307914428593297512713925357016890201475524385210543660778506982019953947236594952075696837656975146585386237673100508146472776520012846928212204587079047276156602966771797561455151728187713482778310803908247789211486177877696096630569980486695467762202804403815076011924183233634885772378236133493979352515710952788941585704645269592139188790370629361344613263390667855679017907309447168555640840588602214017082380293402319576072207247697992380490028738953120354274906336426970336891982047302937263826150840800056454393131448186422244177306950290640954469766580763122763913292422717460349346132001838252798024645804826685280755785905315889681147731987597330028977276414617719136105341068884059138531130499075272059023282146603693291428689205378734500919467048821995962415575633913871540089526936474241094620599383254876042775551582925211628315913597960661051802584654369841790993606486754812544984000017071011930640235396667317814868881486319420921904098154989064948054994301355317578554694476451766043329130500576489670954396229628793046408353244197990881312150205987761772007487938731886804045075510327803258267019150317482583493237209382200313605065975004091428822732540652640864221811318009336788816586592553187142717344261693973543783381036176939495787357528116561961488726232577755386875452762460427609117899506545484254686250076908599424985889097986052163906140420733883412185223120771995872674350125481646505935983559389295552831036336091394175754451793048523015246168344510436426618126764281020621962185943579740025685692218460364361230254798083158184494962066806276170152345314531991055534845505736660013944616290800354112040944749537648787459714760024185169799099014934253533073766696834742123747300448093278297095646608895669011916419670535866856883216128479673018044184582452344935719198304043281520982441416519640812079479229577601996978937676264109834657896429071354553421229984846019450541371370117336621593880559719664676679869107037048775091771356657510250528492135108517298810861044551355875899517813502468647454219644637181710459809437064374652111320490241525562548553335602315265116519898807499184613043312169183100489273606886313572293686178590470786049771732351468618827503704791589396258718246746771115419890405399888856464241586664291503300015583377625422930637833924170476097879110173039521748011326526493049630636146939044329369376080126966521866545133734302101105353636500613499297438445506389825920349189690724202475732501826163886421031176423304478085366802658762685345363525281538891855940128525817790947534200235468666777098148463972642037546528685892163501912282187890440396572742197415913119285030110368924385610587123893847777956190993177380428206514104210140045061912571913320008622673025989141052666726307639267312295370712580369647318266877359353952143865620259604496743360645960738334808136441225131804553168170128537435088834638700669440457088729659678660964798137333514238532288702740157197710859309804688298381524835233667300366195291818800709441886780832700712678404009884895087956473009493637169206502187608686600077025772639434237058331594550107771740315348388265154744312157514038986912952984824942121113397494283003880639027860390367844086366917944259289567711980629629525594716699287085916671141324745429406626153378885057375568745110504700571765950995462085104950602495931023092975827346866485287904359549783368337999705903020618889082724821199458792170543857288937086182554011567530246120023240434702818099151218962826261728441295527646004539537148552518155329566485129329490278774867628917285339907261805525967330514023399252136851418667351510886375140470753978584997349102814441967691359128131010954171628975499005187172780842081570660870642571511431613233953220058296837330900749712693896705933675470771433036670995746535223963468743840724791131270758217556744700138861146986834564883556807522368544617424375735138313341610659178304022054124978044884756650474865788491265288311257249735665522034983361394237896035931894064940704220298641376338035461310507030774957894234798734103105854728565613023578121829864244115675870634847599173844258934592722657843633547522003805260317248303244720702318130192169148354472404831154469234674358671738736984804431260430047829818374003423261735906736686620658112799777286685209173605030946587967567738437161376984868911136566194496763483051564544028257527023526190519442450518027126172337724759748219889119961906000948419681727107827243138473551909285010058798048193162643450361488783657913329528400140236692031789466824868410300299128197841759985150108410657947615138697258388840197621325357011596503229024933352878023879493909037164057078035390193635280176881777850884690490700541958625268442408473720236877407117942314645430085423374627900203514588392450668294764091808187161299218180679424947182140124126804685951850936561789373584310614678029412918539616491220263099687263642129843792625225963678714611437358910529028628244900515998269855307009545015542228044309977700561545037622838464403913642530578850373998282486418176006591219247602199837010795951412740648732234980297140587457489977226059161943416940849179120600537548628402975738150978418406569914715455701411766066927211386409932039838105884706394441661486720113962297815155761532940035529332854430690053317429787052615748974708359405807758358199619489110495729624217562990179202299430224351387515188738167061427826622886757629310881487355870314214913461005792034362535050976840816293970187901530142047830305987950144537758716452382518971896840123894125145214670090685930371146027850611364579267556167745911761719429776728914867589648325835547585165720311550191933735516874111728393289013126034379665062802779966641593831177166710886204422290420090743539649073836210615755258552325779946637276763615341892516475129120105429739958512729832088851887679962631265914103531952944868446155625018407035249416400763475441646090730205919560061086616486538845594119023943112614611391570863383692229280218298560013545680776482258200808812698454601742585908852553775825623476239946425560215724878669867026371446716205570681547064737968204404081065171668562263985291059587510161008284418037311199569905866052606041298872132701128530408055309307900193299406864668434035993230877169360653518820774889371970731840418251347461936171775432412228374081217974647202760849703648003647208030067691184214686652624987136677112360587344283043664621646288698872800138881874904954864677155426813918000123731367718273968885568711070458741968722538166309552666994130082302886047210782777239574234380734052432399971199786442491124999230281022405396303245364195872311957487246131323157654209180583675033398346021417158428235780455130598337616060690853028114769376905343935785369897130775217324958380714064464780830972013314025897951445200139814535348844210412051696612086594420287784619404050067523580760783151087098156871500604095981607714218543945936114743584385128596334022421421237528141489509503500725981907587969264591520623110036111895948805813241618928432126782559604905600188263321394924347522316759547528388773300363998659349855849669673665392183624697543317595098463206894589438673024392024332236279467297655032422131839285553406196654659023777766779287137145836308722617346977322189998873733726790665511862212108774963734730841223311689969152058232360307216930434494036487758096260432301506359965830162332734594585105733697557762520882618952469021563142275236511713531848899757682327589147631346016475701273513845403064038563989060020996287060127581302131740324865484899520099935645834316509922196122891279237353468706655075650686085608910260782682962641780083839567395347368806280405349274658598960942046574113455374384010983717104621017584880142518663235801805796122149299215753026472547349634431441702617287989283338877908582120330889185989967737444471621264501805487470285862799042683669868474766058591282089753551242397835326266464944580958963961129897951081693880360150454288542979873099198053275968746773979108283570698123004918331278685401961589913885349223061558013773534858331797343983717771291332455265451076725938107503894586417528210438450183105288276744749434818637096206914870576595721231831052414453146569313531383128873216950227339299832497431095867583544504484414267296044625536487040328631462673757024437571733657734832853924887531417645494473383173489327455654069581417881952891499600964145122381094803112364590555860099159858912075502019414487647620327805640559166796073374300311457092313857181090969131021268673475530232560221935049053261197447068561352502888531564852492238081887074439152074444936678707378889601276846911914748127074138904675917650279931434715589019044797698142395073828265422985952039640547522697811660540860910044194743804144122639573147519254296417037472745102513144060315975958439437472236363484027365900892988745465673860320118903068805175212049688784139930114690220606755003614797069356572697742232300750873116090956522263991353025716020600091082061872399418544045638112921780020325234424198276778135613614768564876806513643031154610941615354086547036086732067092971537327828547249744987240717494526213916863466772301737827431725670694050710572314512483980634911193121115728320428002702131800046593677266930987916911017486358650692689750075391563108769597273817571856286636007777321238834360170345628129209322265914055082596420387915040665546131615949134607632566625517593650296748114819428754213336397776844287067908600142153454954450165577587529550394455703630089981521163309474965944262363055748855681574673974045547411222286519736123014281564892089825283296433247169454178008576090014905274661424368768083475931767355750188692067989423751412058524963561434601013566252438775953177234683082932309894372981280825122464009848528179164958765043340249779362606330754246122222527075427352124280628573746536254988807546329856133495995758082741162654757011345778700532087097580111814193617177646543568434225982517880494903441688202616473324454017501277531926675396198747441750991828739143560684971103662552287237891338004781811849287336714680538891009017211315758529581065633201952407682815012010748967405028273751247645542752840791711659952529477205382948887410306716062940164444469742602276282384008888513513667174064217611631288084595241530116087931303425211197136562308677771675522300628114830977730761383170657785166396530388449025790546728801467572063057205627226975284167846565988182174116536898284182407173447493665522282507231563452251649976377313584813919334747531178471418696628905045327011126399917117270144733353623324919737509758688482755644423004537944534913902568125871309742135925910612878415031841012129879185809233518620214655756106773592385210864085296453265409786745922877914341096502896662946177144114104884372703886193979748079764856810586443932286066178649932795577969653822901078971256092831280876590457626463983156608591760813773487801271106445710565237087807530398640982163416698964423936039919255169180286542565576722783156082595004187956275431313172963363150271658685141860060268039161477504038092738386118345986680939487586164046811982739045261924495812852094944928470755075675854326655634388986769993295817669604464615210546990625748974495624222633099478412185610165599274709298961837588383626025526349107695674659536378326538221427450133459413204625886708002583771463820330880839962987056128412240328837034545725082725576262558674413266365783170344044898154953306766968077474085929190912399552502870477732791836156759324323406512945560753506596282354893775187919681355501899243990048464290514445575283714342844186963946611309910214256065881086435128249854340027517697636385329213692790907679088664821272693155533447587614760634538452158933337036025949269427016946833405230410863658763731279895010998552822043912440731651642877621416386304694000375275550033539982119417252624314367593687014901591788813087169886756311558714291656720118338066948665081906370521222714985696615797533398666329813255673563720424889919192013843534156928821090322970797524719953784249485906654826557076427555639166309498638443679584445690644322796546863142033730036295111600962697124165425360555700654490480825973278937998136518660141860078679185719191287371536780928048241359234438462092281177976521162155061412787069247116231363685367964129424874566405422099474672343551628024649134088100385842025007355883041104661581097158020749007414140435337498695040507108629427043533222570827967732447384526871663502717953088180993029039650068073798605703112920483877486595294216703862802580612538760327920857198774129050358141144967243252326095366172395415891195542928476156432736445393906853992343740169571860755537723943006477482280956500087768152805177089515784471229334940390128301895658075324941462623874916552800665007818654064023838164100108697720269931424448699906822990946489029829536615797368155771733177964850829641993603745084620416986367061497375952480755884715500014998492379880715350679700605675679912452175449927138937292052476442164376548392600760786884527513877108577859888378885901779209291834931329919927035924833661388945281347992747671432701745702736504005591655744500891887441734720676567100302040328602157611223461044511660979306819135702152641171350976115686232705364726529298612298754078746339402426928425048509612097616766827160117958213356918359968679205078892153188952738269496308651617633208119115182812335860393542495667710524255789961046111786477544655854620913844309177493533312339684822239362399014803705577257612639349605043620713383768989936032672220739550712163766337960591443408332814102591183585256289659148531135445742924527028803539390991736620787864924870252264712461200620102611043271687861873730243913978371039204328334378586134499822135346779686458221638647803378727355873952162851994104177077409334103550223515679259437477302133049372548304532678548956853278213616732404496345329819517075148000572088422229845052841444972892478722049757959788640285955866828273522351152167878315398390976119720133560469120549186230633785510366416491342543298666649532485816959668763006998455316124764730992263355971456399935479858772323607224317064710985507783924762419915304586052884013491498043126349351858104435706075782447963467063006707767653302431463670665238003502494898796798393871053843648145121476496163942063464053059992171504493483195906103940267746160418286447631324541784827124975894826204864816685968774522079196943184056200708487441275766093003666024874632487788814447165648487517394341401761911517039464031097262075682796243543402533546038254706398367493922668852725134535603808668259368944812679034973647854225165618676188079632438012838098510664902849509589539671323985155573004744879036362046162942653251912797378559687298107591634778139153617560724149968977824179767405956627413449789158349612858585565760962790238415155827996901700873519814536132948703922776516473589407684910193976212586156611587695573104434227436648550162714568782953160029397326559229963426233256989334330620107397222406986427208647477610431993350238586161727229827903818443555420891598704735773490576440860982484016952408271223720668078993211654345876128018871136388316691818278192738554357622039571263289913435863339052682602949946450335218063192409563272425187847892356743482850447057658880297363576119602635967360259715844142176047832410138128431278457705474358835745833598777387138694064650128673206233092646482077128956947797454135553582454910259966381532034329852684349183004324532429319931263456097720868788478506062880641072663321778917219121496482923298924779367383089572811562469885817949788181718685438772214553517360803831459694814303390820979059484551039404555660959761167796164582053591744246400478460770579501542938189715820983353348235118374498743648592969570443646872982338638191903425684131872927898259591517096119487016665702891436427229653846214679799365790380479873661425919326400251027457011052974007784860633022841753373704899417969717124186045396492984557600165882652574617164268477368518799657903515997925970447419028843170032140443687198893470663270897325340327705320871761161917489758599664667616260699276327050683818753777402891255026210937587145844983975331720020391923617866005856801015603132069953211157484895652650297087185405378316120641977873983492221396883407790058055947526759056863233475662061315677978033406689365015251574310791461673136416116287804390186693647951283320863137926647604335733829029290502900479840462741313547690944040352042480536507827186833739584042618351520123270037867831240245113867424501656861727546845552747283102222241698247180788569345442237579713605117354118826151563549890682146380171648399230085268039830489952528483877200730920402482527882599680247391717792394440805859612460366285971211858798818976103284650458720518420625451902361794827710535130195960071356866569003659791614903613662952882922059762941426652620013575846695730704128811723146051229792735753871653480257935557374722504316717946161381298590032589147585574288710074054678230016751776236020655591649581930721946084587376012867466441643215629688191630696507222217839768811059292701799760850149769154396352457556369887480284016621151842600811856648538022205241296198838401300826595093152727041154100390360626578214156643185375119455559623784330813256078061249555587970008460610348202603774762255874153936435168384270823227450795763031227787261407996215400885794834835492879451984747524006865415199909049820637026359450982653371914707021280711654732835695502076854772853575266678327076297944136884850976809776073197727854671453854605457965629178683855918990794865859227268432621098680902273905664162356474608221789829001692184498828146527821599236777503828808005721664573059169219154955735100556393592358228170432457388313854757014672310167052044027376620065721608545936713339352205607103388007609886169683135713732767845358321099986004454190202737158575870516705392541354198626163213537691911412418785326436791430487180618151389883258582723012528580108553428689913918294252199392983362404290169171297229964344481685233153197012697756644533522088253651387226907202507641908779792359929307847975155916990836798078832298633488784232550423057555185961446841568722071774895165334546280997879048187983668546829617074600240119976412597214584323687713107986171762945475383274049500386099467445668268198047033242099335478398610344641336286975154855638744674979011027181588170199852449581859363972377770794731874850675589223167027618993881611539091830984387089559198392262481584008774384132617926620411476774748636912017834811299051202097482894411693591089313094551283678341833150537321413306472866376057755110796829819643245793146962667862399201874782519581007953063747438322231620412776555457031621534377850837006598395656991129955510304115852981130237238693272174395760367349543626478847483312774108664702465543067523662106397811075887099323986303042818163378191971442555600556008577195346295405402129103579619056196451216458609552560801774442588091940485215075145068591486771615127373937536884409301654547356726899998075967720673250190437714310694622365541202903558875634442373728301376278549834342456731895195691602642970376326448055227093157090570702386190737737381713970896814441417508375081476473027073790087518249684914049501020230544995557775463024087838112741674070411272798641806023543085426009811924562429696874624857899946754867088111477769742352222025904265024675010532826946462369480826323406098219498901323533936876905443791785384478327902141222222036025277202792857202123578015665631050880137179362306892646595133370475658317852579744435530834273304262528131883698377992177644906663932567107552133981246033111366968485520127436834251660422953353774632745722539965107236847691659006585788250247424700319547112412405128864674702630839396681023566666843545216739839311636712303145437648279245374673086015535720328933771680787652513430893221197716133486868064477044495055920387441499473192510428157946564074736650967442940093259357274106405280045575706614845288457176010653873016598128561610924359260573993688292491239142467751911581476639397905427898173671412782292153009212696632940989401348814249387342141221111915154533021747782912181963171692779045143903634902283561186538910820888799269658231463692834672602498317860049853140140438953646726653537897213231465527643884752405134699533139052593027092635548202336231117170561283073691781754271243157441397797065047421848086456647876009686747747175667131923706727308630272456692662456310982820764820954656533189606425676340928250771041475836544012673594773623818634633531744101724190359604040977929713011622658412860548007918831124995492866796050939388104363824847566865404872644271714005563873259358382111630469836187335199719723953647491442399655488042754844061490209350046578324307159905205956682003113440586295333740896540161758481938508706518638254006018036913026961490744728280942157132389983948744986658853849470455358502933697758057965670264814868635194605718251948027715017612389525552906682260683066602538138551032431358324811438065967213908778561112808207078697260902987995639499245867276735453133675382423489358859491849923598219123429032694383258927795768038196371113598387167568744928099765881716428751969653660230265847436068745253923361012402081359376291053364052166679334607261572528773446007389382187484475349566812742516238906450979141357349965687481894845599305981668166579125788615012243070794082336300401341546021523615405352094533310875226154648985923981957388132803213201367095624516614305482855644198117957792398785116311649801562024890846900354995587708489484313839294399898297909887831990966180198959089189267378843085402891432315152573590060461682782423048169953798284341468002456992825874644020726623103842132287694342599927602585868292152507741095478812740392374460778229116936090664490730545043155863951008774546661524866305729986342127889328775403076136754486302159747965097865925913620383946114577474836598331722859716416139856235458635880642062799271610781373378182300161901824831914961887260220623167470372573633393235226762304933577406576294795868098814533896312593610987617691643144526962539032465928978043145587352098900390547140753803157457614757668426581690476774570552476769391463812340951384577814943958779620998536012128066416007322092787455371046186940825453722189688190069460890747785050633024372352716760687055655043541673522203450388734098916068521551142317080569524570025568680779549311974729540735866394245732193420459813847751596045916629117051080285620437310220360993794218882832049042211015986365910721910103575402643001157162612306799120198547375500146608170763606401169242450067957606446107923357156023624683557611925582348711743003423395475525210112980319287258260548262270255566298755344903928380690202783047832352826580618407163441790078107362519589088225982046582688566982740399508832109664183722607110349644412254014130215853709422082445811638506090401791069360833041867720984668156404830466924240486273061691567221010577213661534250781306247412229861396087106859675876449851162908048458946362084561534532267020014765992767344825406978799124646823510008456513898303590431042207773155171661624168438472016048667250143144970579754745519375275378490711367113299186068688571119491872597018762534012979153436730112341391357828863619196031722651103599077963257184676182528903221584920978523350227773069303516266063812063692032162584357277981967830760681177652706925211484079255348458272650644290873411807991964168365978764540164707145655559672043558850867375144087459540965861089613793247651152968184236519860251649379232972129406722542477162822784483812048983698172087118200686186563963163991218806804272084442845741812050574832458491381701507489968626588240976512343362626622018676837835484124840819871611036414038736080776131124627068564362095742211251317772952994784460535923799610355374038674308207297430346573930397679111855833058010453104982554517042598251267783300783383298934298489534814366112979976279014435462027447812370325051872152442978542179289534825703985360615311840567681371352582017452897806792955737582609827859829871089095938966382948691799017825073592911549879052460516766400027234904779450640332888109944091053709880504685582132379877893976787985788391824909834145269316653198067010618857646554030442930655603413035220624554908319652850110001341359293151143048858181213088048515796681476244202345184603896439937709138723087096906915931083093094208386843573357994222512932559604519002984833982553981340066416049071752053354567422734306576077346630361461250311525524917776658992188259680370429336622435463194048942424097285490220287430032901311814806711558969152880927246638650872545033294256471432598523185576728144366491736089305974914201176286933227375204016862419122629440107187808094813573759385470335313052169600555048148874677090085267724978702301401401613130096073178634652609063195768545279163759394851414894095309720935459847592964910894974006403517392734942308377020440787330953277887844259334768107522251669539008622045855737520378770971479561599568276244661343656293983734226051245792703777091299592780550973492565857768905511879574027909990663210065963025299628708912030419490589773932941198106791368155612817645915544921741419800032306667176123745571469298126560808119004053455704129659201591640081172079308624235593122382147504358809464889788886312332732078190245191458824560583443315171954916240464010486012842556161723286734682645548606045584901433016014228038019049250013587397077606097454464089777074188307449863782375064238861621899070556073797811617178923080799302711806077979594107111121025026972583540605423071052869071896200549540664739350917627784147719185875321601731777947097134845382896196177724717796935662643588249420732493895896940831276095991504283897252349357603047158488831402905862297524859072950014946268482956821555375953495261810871677495005177018526975386902853593337691664650757455920539218520004744106490379577806395688224100627794104745655305860941151029334060803447225914154022532891763786368220157247724233819646582349458757543414556557948659408698585893057040411176268218303491454808856619207176063361660328959825457586391040632468830405334494762051951659105119557375533867757796536414134258995262833516508193923423831815540501515562132344119443355490403917039968924821973762695974750198087119752258654212130068431530417762416986951146377737018745404421490711388904006763967959881713747872900658654335085824934366973059955737185678198094211072872958892703334841842979029508114797242538329389017119015355676639932668911178698994337169802341636173462517140314714726191433966757787471933412024935503767990825992825593213989039913510393864192913538232310911678318299272145522076477416770805291869917991138022551350949570343623079176240188555304419766799256722291998179085810385682536783175075574520342626199563816014728616320336381610863736052583684771079281349066622049759670794926263183192585426428481125803448355750681264255217231050905665454211151133915842636691999199487052475807274078816676884755198151002062573775246253843250510138955241922641289516925027061530728749089726272936472203149243762987754967239813842653635680379040339107221190397575000372634409662095370531613144317957151704990924385993204068501868860525943635447864723387079822915781390190778049673483758565459489779925664484268108848573014547083487299660228810872559710951170500087778289579796731923219298413109786014389682336721139707331882544536975736879570826293171285354569087843504678497732375520655982654855203741448898722419215765809063095628875330839061320871424554635708478796990168935998781191360307151388731284019426685273788357225497880089400290062375608259729830872230526243685225230106574773784066675015221047902204495576942383040572346892464137643051092310450885940755023064730557892058957838841046359607857985276771691315250380056091622214259958060668082606754378649955055968458422319792334377823556085310816193730997360685824457190944415512030321052541502674690906012510019517717526656758697473846064099165644219113338312466862355274140841256663518745201229888477880740483060666200520204917237857632201060547067516595819316813915062422942211574201135531591595434303003540046624828479828398033692224356307259912437229841447066274966567443020563533078670562089688997822287649752218223359409595600280323743844322808994469533809260295448828468615806651838395764505010471903317683484788739918010175292103146316955896653758816223325831744661380986530925001938646571094477237146394444238248260174348154406427785719623541307904489822980758408070861600785416008996804896344307404883075872402976133956240855715105722971484534494662893917979959270548232662835885419797584238532448279158193996677465041040846889806676615189285711337519370031982744474045926652082970127334711418279643989335067868771589320043374005607718346434622405991280077129572959237647929187650842116657310556416272307219131909036192704437414304098391254998060364974544211569952639681134467086873238901206507701905101932652186357538644228915147867935070406908040723531700718130719971054193707919318068646082802794142085193527500936774856714392988968946875397940132364063481383189898233233380121103178651949366217967278439843589002694876463096511159984958228919505936600471138907128838423451860878033076370765288368480783147583079983120768692717843021279317797498633125717837335855158786359461028376799894072084252828542965735862514614553530541543824744727785648677604465742598581295985321264563474239538604804905245245924521938117280184494953625405195664332877400803410209517116370326328333178808751485226808844986083248995244413247366370447987599167838705831124666533614968191294255537966392237599216878601753794867653396363862274166456976373858383414194943411687117126587804472443946944929786764194076947527763074220884712031482687753405433029326046197899912936524316191889816892447553421963898922305179585984774338418335621734322602520117080126408535537747698774059427173114384316900546769679483002102843689166528989884044799546719670752809873922510327038003016143903775027161305946035478424327814421318341235351361917252114265325024608039198111747339005024635912844251687574496448497557389898671205168243493868197433998090083358612967258537314942085376608470075568243494416412197134382349943499916721888305008968203579185076089656967508085223470857163336656023900693500914301828802954239715423219547007923055990569172684144317420764977465534362609826142978550756042351718429032618125934998278717258746996577519004357114580925719062376913821131249685554188669481479112281363465099160929514089422711682644451192118031825444640401869793280565369232068212255299032113197228308476600730462497780956421210625044387711772363376381380521331315608555544181141642355275910603331988598728567502871539181110887539462850651636940390981248095001433224730124049625346467841477738216524866261363040071490116953269457701136567021907864467685048676218916546266743424853485490077009348778072505896429473323423021519079264514750044219912189893585799052266605118575862799382572254133002076217676045637068983651633591272231522213198586928345331678554887063279116024574770962927035737631810620655983482494863874944591523479026414784893500643501724577494869353201076696654775070358465837194030869298560000009196995449016448959571724090076506547765382180059835929123547068866384598532503465438147577718969178929183226128565357474482202482137168333649594041167462494585055178387817860364658465545477119394588207184222645791358302358248339429752928408292478409284701030099411217015798694261555190541495762237666632170660738668159223527615906540276920628854112805117502260119697154015949118485441359068747165250747397798803828046652225665432255735591612703419767418044568343290144211111956426357941717869691159302798352145702973513497196679698202015341112192258636825564650472634833983915450081905742333314656658815166522852767142732500011784043832489727541510414407391467784043204810176435234416557550751361029068413262859032854242643218908661333624158828168019368173157989877917606345765942584990472038160727669000975741173879048081497291835637100476793313651321045578684912841335792034125219450615273530416476696842368706283507990073247987405986887338685739363272291965484896298855279106047442951454781593209951191013809395047992367581957729969893613167950885792134959676057197364578928006822346540158498288903911857504823310011839450791415858954252643390128673461304979228868664757462432576169456497939150226900124079378986647423074035722080214603184589006335101601533950203201426596820269693920244941001900568885207410078186208925115849879728022616719053156989629798964549563360578716002399832397453363167049135459195236114426472193678506000040511636720347427334251737132325925144435440389134935327796259828091184140585019890331790187183944086000673728796336504245444866181176940482462778145372921787232314261874295325701681873715171789864152582237836488857188534628138823206369067508020344518250533368255549364965295727329910084113182261030158868557957726040744753597451017608573345892182841209006534147873180652366224158790054726187686768163573226394108315137288014702982650270989773328944150860716701936795751572834033832619649180326078134441360713845319107215566734645069581718869319852596383680162090788964565556909196683370295539559931464679135811636503363555546181362698267184167457552718281775969876301620522720737020172038295143319681308769349238770185461541988659571657097303365109440233409586170955067575801507909803969254318760365017022603415414302905954727007310941787257705100988369163419462557684740471895586439136654723855848489734626950953370632983707774470971510186226327957646343412845116178889821208003383801588485164988967556050422079171260297033476248611319320025702483616690773875130721113677175072644298505497282860862634916104348189153474320071552220313051103492855395817590759627380056135452836943495734688467868638239841684765254203919390880947458063794835012602989341613555155146930551016319672920692970320454688136204212089202559555523179510441470620591892199648327610858302147174851474102953985036118541767782094937078171220879094782855889496065302623677453741942069175829485422414230350933632030822229380770081326822537501989112810099088313212079907382887662573894487509903325119766955768581677528619015486136162960486412254685714259683659960005018891649795601417620732860433452271961797042247288520669900227807806555372904142443475821333780521779161966820178983378299419820531650681790803296699200051622776552525078046684370490711544278659589272403318781601097103078638076477767496734800967868013820832648337935563181549350886027296725282506297739687966918440164143934233074779966768324924621433685318029396482174011764386321145880274174699009712635368748305369638386622946290880534705312042444902858208110227536143920364196757227436986695440526320412563756399734578888311164248803209246427905585603543801220658331202717712628775011027498524050948717278159302578318136077444344735463196117531090821302216352921478545844996427509228957799266867240937034635646502553611929411539847686013256048851025575569526600665755435466946453179075161449407287345595899955915817863194282999103354566196567525484562017320868173562247364165119164778212523503114658521357609943169338646573723237082364114875881411439944918656056283405640361522427395539474841081932359870744193394601781907897724517014759153089947921104007718370553749386380192884420304608675006892927409748498953290847573420270752951560428825366198350782713314000335253933907939624686143953831058367439746138077311181251200656923328552487427698248056803079115546909223689135055311688281551352187919960020724882023941369467589896847820295727285397614086605774720912870949161603897830982266632731730661036339348784966949390474150247389862040460947295110397849683497388083329272390795909057749979658752002954144965610838083050041034956040886109514879777042709828710724610243035211875011593468935059024599165746697037643185376154385887868330798652594605317644317280464854752192512070321354407808070437788704356981517540814947469175124856745488698687417479436530235420490021754154572328765993349115278987092626416390829251154894707049345023076945911096913558599913035768982504167234036195723011690989419920953584301868220657193061162202284843266352691841226468475552231701600779151818936340771834327137794633838213002171351571255251870358523838874222988357309712118842298080460104227538284896720905400546268561653054459635688986922074845999351793218261168293084949946778752675829841268234973841324704225742556679937532207192322335361609271032440248105698285351644509735506515180327121701685222880536389241978400937688707058255945009968828164966481352157872998521707572986754685761042560193445997014715277238579204124640983666861902987837226788664947836007869880260587230359336968333010862692531440962913634807682559748863142811611500610188565913685094695995265561776583515308584555018367558915672915542046992722543787081463050276078468317971385280780630408660281002616680679503343234470875415853886531075653843412809742829630858666101196860819970342149604694076834022571372301548032988920198667408530775550953718184204502848124566734189505696140655387751917804373860801314177907354886582502338652400319907800504725665074211273778971847569533319838423954570210979108246671848286522651837940000823689543052169424338806202250322847036517744656381999475876625434133928889144773568725574267480677099610236130414665163457742878262844021336645182760919028932961051266520744487255817385819698836130075125546838066700412797669170029009065239835482404107176708960359054742367395231346510982781675124092129178913618911780160986613424079334993110405723775729875955119893228087613849512911358503643370131164193945581794514835733124455139112384117978209401688397240373587023083710857836130548174640616262362797729713026561101698628803684687332636339339047807085670850346029816941305546029505920013855239464702853459307808986631038371351266883527759669209983910279282442472881601442674333298569716982737993745633749841093799996896358417017821295255874880572793598550355711675695576111686709058979666425337832141204964144250878165817967793154323692819359129203405990955961562785479902089691234272804334620108610157814209778117160812139453863355503500658051260350961735482315802036864772360247025515842150274847796250413203885556289359316094659157281631281134708491691289532938264863922366558211411040794184240331486430133413600494908784759877172625309464613774421585811016182954850944080252347950328999853885601019663284404400813387214980660692925958339562871166207473475326531674578137512757993792959112401442493805236835181999914476907955298499734505045950726879738886294891759908715736672278509239853276588617256480064586136727352501038478750059253768823715741720326602652192662516472325891798601083725613147538657165689038465094120631117024149763424749984118464889718273625293872452848672000757644627464161876455358635190851753882437488847320907344331326004394939919844881205048142092342362754392549549547482338909907997684442467996110969237432170311162616656713695034669781979621729122372502838353323046395120821241183678660556143272205092240535444909762936661786193414189334974775756191942634494415637325535623452099421714228821632555441146075524645252465514377532325937414816063489086735197086206407943084645523512135631994019201574667041804449207567144945919913910201185275543705734061936006281429535572591919284349116196978480650526550517326682844184119474269367803576761760522225397611390759849831700773446976787065678206530901129483070136864247305279750652582000153320317002694564759190546375460908875572111127206010668796752629677519826300873249213215008905580157859596447894895091756902684112931124832652349143225799760612944179315603184577233290332498652599236184257992627916298638361768592532125263101976435672813167212824465916810673792527209333188985585210364877352042249835388935058504587213681448972849719591469063252531161246430689922061552557695201425504084400289724118340627572757315746823901054369844368525101648031608311601262758509573747825694266297573160429545416117978823894534179528848846302447421911288297444023779648172913191107087996737219958120833677678812297964717683741619376829846343807509773227914579523924994535057333004791291231177342269916903735282246986278766286675749688360054306970278098110053057445655773567641348377075480507635211113623377048083289746048273516538744271043170754681669695986725376114561682934403806745621873180502377175075803980802580253954544754228666612810527346901844236042234842418900069776758303765803512862446903113028110175927670228802415568789769292435709669822818897223816958482544421207734183144410377653677433934732204252138605930052057747356061129979260742528019068962886518205444972804131243654221620413247701065579884634563196379126599396116618109668051004591292839298414069946958102185243899865866039041492175264357127826724280079299586144741175747155163994549010982685232225681805318337701792637392529027373186834040293992824713405451302610088512300045365364862350563459421072058631477532022582154088783347313964808269196706076140462646571451277674644533488368326016279961121426482442213982399315730827924679328165211223684104908057418928911601010647251788891093958793807585578065995717045194635546020310134002279562612774785833231689571708860356898237232858724720759086959846671947019436870248127125064651351872544017919845981308618163489794194321899895414353963050922762545637747714915391040146176513714383513874335442396051340425097013245606943640489859934667943729004073732570107271272845127002289879564094742814812348019730496863262286685082353539339925547386794481615781084070249940442712997816573517660531880978100714709358372895785721565550218426500188362104220703270303440888818968740067847581902639245935139886760838967424780332316885859957823799117293933276179601785691939117201740426537807496688197502810176895817360845972757798569383027622628935854757556052518494808157415964672329233402644880005697934116178722989575518556866419774069307329051440264348060748845179011010558396653148826162414807246374954327926318483554346234117140821235315248479274240844029974140005595978076087304141128228719031755315638652841548602108980926462579541491039174266776894018335465911364659413822023528019411160215018296779623574455221144443110548691490559424274125567173506053277888736781657390749219128826503765924070488545771726587548185280187612458263184865475863793886241690766688716004060285895712219317278875280181074078974039955647009158903902599316226772871594320249196928313988315318251122913263415025587024928118531327142529613558488007025442472203788114837401540467817945813980994214639530790847076228513103840997975608983375240511020198861918305719373723722799927791046437295202675360731863071887742686837235926014719311481958191957839758813967055074170129509185506734817497635617293689865328329990378818259694835910454158276911484408988928339656125137619719791761136028716107306215501304952138922996466949748952176263660820610526517029429287581667247817613805764956923009025012994268704088476084742565759188148607840021166591781894251470760044494127725375712036054023134196038500422335111798261896236044307038355197528681307273963980863009032036770313988562681972558747499777633583639895929024883357868247259486008844078639807423190119137768772586304104948601898072913836236587798786985911129796132523002786359803534518700645163391604745568868843593771575327872349055498537226351636136398364540792677474310091390311013452862875641885500690667169389497274350480082817367201594973081201666549362687060996620070024949160249672775774873569050726029265557172900440312280305722648262528642881096884707208556930333040102859724425808426483878575338271035773222501639842804762855319016120847076507746958140647149357718190668873180243073228628401132435894673751207947171583185571394599930051832840120613727502278202919858355381258978225236470204535743608284371556564009786588327631734391464884169847651280738072069037302065863002798719462620121776084078794059168767267525299682637866525667534748827692242610385451002616414636584129635952263808990764386754531034985770335638011062403773233415414636478800189539989508427848961490592146409810980076214464267723424062351949401735546983779488976903930965009085726465212717737794981794273105018976841976220077204456944358376831288012881527163846043964625597989908586654722401801923663836109554969729789143351920161829315897400107955702855795806509325423670904297872138342426349654519599268113541633086116411361777262052947295432096413845898186579010878621209323935713300794183907421044594672790642431685407979600316127496895565687597329385475007173660455012594316594867708181471342130426628125779796053619258983687151324616754311914374455658155266104857974440596850133875183482690092772962101527941003559471639553069050864598969554222368805894841325658305963984031631479825601083658750610924121909253342525438836060842536263736708398322538857675307251649565713059020778785441336385071553505389415537100444649684329215455132632137530774226435996680723036255749794123314466014010118467507951852507652755604032560799982765601123574041671575353304912828862805882860977903321742696305815962873368506881864820910716142698884804741382492341927919420634006624465244649017107852336147872500568221126503374398671216649532879792880476028433396504259321180742207931545983978359153409212332276543332182195016757127061625851549368307055565694857057727409176581848042518853555147044230044209843127865527493400780371598129742478929763407505607262874821543981952302821403975299347793766032136190472814810238305670770950781604128329297675412228554625055872401479067140590026309347077895994888169546015214189920730215340847012292564423529350500728555708824881110114234840111310948510553205250541467611091947773597192180079149145697797397992153041718097018622038572439368060687841976847412251563574335742663970340970731821388658204587626168906364596110873895894465420489468231257682322775157776159571693735796632024561243705091065296502330212828778932370116868153616845797573572019395071790672714908495352074113699612299739564123048371254005858472215439875289066295959054298935134895496560030190536286441843988429575192955157281936846148548795032699422515529655509512333671935304234081613965729043441181922402970061584628986409865970671335617279334631497222587161593454464089163863751701468595400123327176282625545000267479382166246534945563439517321038244860073210895339629032753072186657180058958365547992462819941132939438796727088527883542259056397354341685378757462552631147237930524672555937286679971020597042890500775459165636062452666134879742984876810844456984668460065695968446113534367623695681135114312423838608000417384977266531439656201060541724189257833914127954702954653745338244773264359296994123011918862796618049024509032035871796924325096180415930476684423335027455414488051393025004944959262146724823347427998662091264838154055899718679952342704597762404538809537635256937265825838540979653853343551261141268839304400172116173611419138431120655703344918211403801638176339369685791370770473670893657429694298769078670743727542146417440735628434324619603631693016638084867385417064365678489698363167146775238877845941654244005937557485113177560193176472354265812061805496208016100625012959415139747048701480523869929263978166255678381803029398372940350771745547093817338874805790170834709263782597825886012307091336375030623575195443440504529599348109523877638993848181810185088307987788365681458673152399430631988938068683942521925288494623548746369040404697753979964297546911608580930099847616649703722332336101835294180838979630168958447358121231940049277538068316208406396724690632248752198056697971601829301011041651571622319946708189927928704938379789402848028690169069157871937787015636408632559627580747443550810372188703913970570260571579923543050033480766869523084130942177971531775009840807381137178987759370818467220881603856202627774388750407584401095144230539423757599830645621965316760225000788573504311210094064082708332410814445756286430614014983317315140278446262034401493325901529045844896111411612876160188083261195988367851691580798959556001136331850987052959748214543654276521328662117276484599318657760689899767151894016084698125172756703544256491201098103904318248322966029529755062405287081294055221085185221835601756811586197542252248746923920487144565313915881482443152789138110098771120728117989761919528532992223238125945965246009644605969359846327607113364213884289880680509837672859863392824720133175873420506424437799724683542507929553831888704778567043570071211323545526874642968164826349350733748618759356812965335238282568516647101112542851976863165447743744661753195996223090945501691233942225457862631883818822636854798613594846925034985591719096390086749338929805845899713416241998688817014904785381389950554496037727845183622564901309070072193983518302739829115921643481393805323624934225861310374932456713347195576209071112726828137791009817447166004381125009701037932329439080281343644328390245012447186939624875511822329051683948705711962845168229159121310307617138419792132706867407205919315725632460854937865612631378158584774337416256804210282959665925189550619413438818074577761837802067877414593797505770674586812010991532039584881593601367429315432290295913686304192650184054052106555461747418857797347755102881159791158463995207615542763873809255682635025224185628658082929360297032148605971225257761556679086838048770732734221224383816217931724292873998567759647865259144738714358550767047654800473828886741359505854530685437123755431078971421440839004172433629563117505909957674991018366438696194986058056176702634493001045452870081358304807653084320289580844095208275139667823516837911669925938556447369076265439704469589328289293006366137694999310613454122426289159981138506084254282678750059160451324533288380602957279112795029082106851463534204834029046945215584998041565445926951701778308604962841102766545424297071401725405077592546399928111579278166463875277074683981454393321087451732000838074787819071998462910172521399468231696824402448997593760596669251161986271939667988328192857941813966863820501097081377584096458765739842487112436160290057367755177860906945428774771133920480060977216318091043518180956560950907400916810830790268332923915179559056969232515459465295368560531883071918696721284122431808786603251812376381170073658751450712431108937765318716363320279668889781276233943116806181253513275392029619407659397900079557963847962264301276611511506667119332548563211247513681483188190618638302681635961282625765987690225482178534537238560469786914166257043296547164722961485701641874979131024822065296053089231772787574645595769560113753017864566449720028330913258238773644359255303055104588163764193704683514758564735733334468494448637350993536090341317298061447695026544122057519922319980255567326703117475007722409303529025968268040692806507759854275428356850837814267385208401203324717100507383347283855011152738757792965344545023795988847275066153024728658642124043801635788058919244485833646041315276706088864343229008003966415422726061069290205170571832939516102472216369202033658099062627149308534071729162395464777883892166686051531673182886298426695845530156856853992276943165141925189442370116333407333074859724361558408797677629612831360506344094810346637578526213359118474394929427127087368842239165758813052375808502616410677344684437265776205205948607755038715265156039891449034747658156694555120281936817059861671580719042722231011168913779952678087014808575853205066895573457565710622055575312072535532401403275280625505223653840063322642514883611935890073816268963409944616624878466708901213066433399675503072935886238195696137237206140853261660366494229026166242580569917940207355115275245802552108535887929528450405470952260015112384770037797738584763508972706271690410513230883167931441023082322674600113141161277919462040676756376570825684510507090979751995942329770659928133216546105807279828568714737866231409412274426523333333018032310738044738195966029078915263496596656814025038939178823496577472083509699842891376750487546164221711724560081681349860959333724160567208937608012351374038036661390314467930188971267324829538339301430580961366606766409055702678372916027354186540901962004507098500251395805339591233799619266958887967415224552733167905951384451558178875598807386612458423281632589090943242782704439381110067603834399039544785936884721828096542864108684983951734257743757716025292836889544551010534472878814563178267705447583266844470242932815899156904008896074555110113953982320067292145656375123245258353580238061603226832283504491914530425178392798095607883354396038821582996662456255503266165757854179168091793476519747077773692623718794906952860542513370697172484208768389053597119290122527874619851414979142429903067217436312655244066944027156986922067723946616065297483961379316421590682122401578390105140680203158769339194828249898816237066702031275226392404600471946277213648707609145146813574061380679538854551743562059584695485041296828130005830444540135701001074297486383710593709174610190503975340116333438372713231143454200721311579487606814576675969625287051891502764817721587050425543802277797975451065241559884295759808212236056805842033837248945151364395714425089869776555030199984525533785993725822368199398816197111891533132323294979575940740157417816117431379981664965569146755884944130187398274345413299474394516524551730627285270435113616310928032657603949792737399738123155952622278893677529369209541588509760454650939557227826828717637125591091842113689735215792711555217554301828440573182973393574114572187830426749561690544430457464340400174412922174901401835326512134818017922326009321059269690089237470488916684936452743852586162975811992529176134707434556790576652060752592410856899075045627246717775658014490405322790967444618778798996366782612453373538639473506406044252966424726038478760864624589275094035501168974182260073575466048770628819654322369204308546350133837179764502096253362434301930694103099460231394038388184626108661045534003830478324154917475260969630037212942720348119714588189736935580743825795176518214543143673831072873936396903398087968786207404509916763547584447090050130182084753644337276886689992401109573680159249432084876326473690574565927444445782675048321328831062815075368249665142719359044002070892483778893628600565349674091931826033432723807084423111281632735823810337585111274937149474596449654144180740159739792713299427451088635085821090765104428055532884588349034602743667413077596541740809703673480498440255028687436186721783354832320865419899961351409385294497633845141237438303673836227472121776272524999254089335179705691787932549205136622863916440608612204035862069944953808090751739963580535289539329391778696246270746545722155381515980126235479739510667379479358388551265279027659791153689817028956885535990916931581778010313286512502092603609968966245153971229797207854071159810868696596362207491471581613756675887874937183759492390825266515817345453372815202455359809283897317054565115813716171290166342904706135931039003205656852286422543964933278393264588032103081976936865961223527820116450645702991011219400245985246870483073369234728843031666472098349056630120741084173841341569963775485217533808568403351118252091273128828717536588579114889343281110075698706259219836418304030691173598929162717462870521336954601313516453072551242163963069751302880675577209833333553438324115202701393804264389421861669867345077540581101730785310025729182431802674134937011252529367784082143581151959923913276392898039122103119513261443457589194820280361375321762268560950297905526137665697753277762412503322146859874379629618095925200305511575421655042092646801581537904972503931970108081152573180533468148873465389466436443365572651873204096947226826244739459787027065974248965147147809780380384968132314788231492618416163747007098605115284845330098566008034096905536360707194344544193276816371146542491174071854493076099180071459272448658239316391840612831101325779816142409187627408917323088300179161725819958175913679251594517444743380652603032322757931806350976866481851066248940537291742489170903207652534772016708010026653545804908436546144555949143452104222507081174415293009852285488625213477082421091332471886137298784760088108418408151126825551874600957357239935986248866605138537217760858736242131238560702264210536504827985640711722463641505869626662297239539585875762052292590401602987329091837363274665863890392926308389773820945419593604952695783051230234879993313806926898200037794030000680625119414808304162454588533806966945542619626234560269131804878771603551838817325846555589712478823195944323485899016227124441863956520521853954208285514837890616851130805342379496936840962522786546169594376972085646538402983040448300249445930572793621711393694522396104857002196182817883463542911998994787448346844453013991194705202020240735813971689177198826783014841642530318715587158924604764078420660709654620240656807880051563271579931386474240351459749934873514273608419124611410042917219741082811624248801243176687035759197231026700278280876965353400827803916688852599292906942239788049283509681599891012992815573716797544044653158529813132011358052252529085124405724583124338427579774272996898986338596649664974142987140105907573774251091260410449773738301509732271639390032939810268796771221376810608946223384578650296956463581870133462307476744130375637697431334082238449036505051417996330314942052986164948038005150674381924292879277408596689857521870940727805004848994759213691090148299573082440726111258819033096239007083463182580236651471861484184189262649468419764098247796277176577267680988512642681814124965596289289347279650679115448524332072812843604199695126928309318524193094613463830812578172930881774924549718184573773589966674813378112297632925178543297490511395842176462165150842313914356595536597328988322661976977349099567062379700790235676121326697265347809476802334312708702304905202482427500494864781268920545892992781404697445474105345247384214722943050323760213336355005332399918651027697874412301814551892262249198715376726526346672620480657109963844977333645704991962432461615367763532202427239096881551342300123260453695777076452780446204879540354320400016962674072369498112684462099766365073759562366991556265230936827743816185222213563830117102612112297414473157052407322918305582213972825412865853883474673724313557695464893367496658301428670636542057931365861582201181707172482197151439145471066804438040251780909085544935540541317743522081712552379280309756513068045250298953656545377718000290131425323697327860414509368341910100738862403262811647862710187301974773876693592007301272524687579899942182836559253954364691146047257181562209470343693736567854686880720707406009362564734299179969341960087549397112873572636167352779872365808189255673548390750940300258892747184518753416226677669343278666124827940838973268925940956981996091223978558248577665545213065162126347668420992211254698880150626654024452656978714940445577742315158718401311556288486038256725906483581109644037070153659753432647763332762214381406727469815234569026388430991027180750840215416220049916996228439758016741332367263499264433716261933419597676849267242129667028708740655452698761325475450458722747935552518150498148460996119521019258330312740324527382857575865237641169857814067367668641084665061659967836176612211923790839787313995406883724185179981785447641904735949816514027888150684834947076758747160798968025353147248596170849185758389907209229301619420837049430251184323124610668320853951605051742108920776307595748093112427787169196719848702475650191556471710928591801617156500727796462862783934804826261352968893822237834924547373871923744874975001219820996592401495629509056418587854055880840347073102971337321133693174746520294467559602771143053706249452475564062809956711127404444655723176992747745738720723717198120899454328840065430269026765716537594791265530375298131671121797861383486773277050222317062116431777803345838453167661135831428224404427003970065385786413127712128440985963963722392167055246114312048003108363862352643995869998939228078366539431939233899906280337426970812843702884295669057049329246280744850931424682454941449697279732331913331765616676377350842129952763725505764714808350072063138944333718865049536483663890469875792898472821032492943124224977981513539200173380038964625452975097810786378569934836929376890887694352741789167099456622546297590173819710315063079522797929463204517874373330668337616339259457741344024937011557648185137523394776899394190632213451237629765908198236808321738827357482214867520508173699417495375022115006231252831536492969362138428792563276886944166457911008415569809557906052681193073066944342461626973510356011270952593224023591906594323434711736121350687737993263486036780406448609185996599207840923387964805039394540865944905432615299587361257891719641151428791481302790273905211070259468542962152875233102603786979387109083737370307109569856767948606037893522190668822517736277380520031648746017741229478053305487586322480739634597569763150407343874973748907891989881336390255235371300669236423893030741179975386233108878739712441517115234106190397459106537027840528657607826915408161483829914803190645876179842696933726937179985674502673655865162217358963695487598500135881770607288506880848105666687113814544469393350206412568013599088381056514775582338579377110919037380932665942097714373691101161037880703721938007501461995213242164330996166951743042867105541040994054388686871838026614070199850556521447551646012775797660365219867899395914246553879184219510625153686452843450726586186609133647306498039581358050268758246940127486207243101073888800469025174355872095670978729696630118059255405271876615652762417986702793983071722944661191918327940498197663407606675727131549399252424782980239345092585494054177609497384491568810765494035969970486698292876595182789306315736488533334652272623216358286703332162860919046025731446374061573543161664193043715350059912387474159403703576467873540857531695772000205735398796657147205010375315746858680821251472532813274332153007129389874168734629103507479972945829978725414016396468227235036871686553482213592495837862242296469975800141400057310614614072371938110927537805882716795903955299347287933376406733427284999838901970869444188889710706649571918996215010496051729845022018784976493333614676621844438614739312676782471389020522907643271554786397464290605900344689041349021187914907602612392986216367642682562289581395137085615647075419278071881599954768544297030715627656668053082978189016137320326627123668026131967510449693736169229583666252073453470931614401823081487770698303072482275144729563441591653316106113703585334059658596221723756077334030781333839050690242662057818454762453523445097054896602319556055898989590905151063594759133478457825564607938630166748973365092375269862064659588168817257773073230014402933496486550474455921882648744976184290117963362757042053317152243306524873096037966085627090964796058768222570715674470722619398018165388412187716316317148932193493219891537053323028842025233929360305765156138194221183399559603725723748258035546984715676961656472480658447768025059554760471286534313714477883603405111668715202284163446400314165580349650952147794865342479960447202543548379310770939413674628059805048562775292353348667871937150481250354724056371450889243548533585782473593742137232577945008778999002203764375387085702861909694301231188533862025725652087080980921852552049507930409345356105226745708838757371771097439626613716509703433104785112444740387934856645570467924643403808323583719345069144413484409736497887692579065456007497965845619338114351178840828588651583109685836856873544285720880479382230342481491136284957068298414432176523338574485948357599780557657308379404956889044916470842373252927247225602902048411953164647093257577527678591346737027759271188229490533145027463868294242037240798633748020951035573462879893514398993081389475811414134841282835812760129858653029459130314822955564878413160750870444615764605902392219186977184917215253285755891088402180848675836557728994038431050328068739312816137693748119496092936736364993223572150909775799794014118747787162848346762441572047969931339217260736030454801717739720499258575851329671376529015150650500440441056267539750220497894377980935334195349449028454709004283053035595671571570718175874083646390152078349310124620901994372935575325421139814111806525199136411045527398837519349752952578805600758860282809403092695500400990451994887426776627186895963468249485371402763890856761256847686745706902349962056028720893600629420321725044287980017305456921619292761879883182641634400951803038148955514359523632781808441538872842677545130189312305806990115825347351079616809627517297033607141069185479137297176380772252905476286599994475856300872352211527562235263430496335690166380988572806518533487259359244220478463345289240866586664478118832371815590095128202446396808355160109482416959946157766686277261344179475794146359326293485318122357596201001336251149712016779740039768230673560088413759141194741043583286059098127183431871690771455953321834155760805468218326009452759587358214807130936864533519437001373712360731521807035224187797808523228180437663592838608586029123708575803991417153607211845601058359637262862020066297694514913080549209238744913841551765971992329978021830782649799768184722857258774278562146553943940458229717884967429264612978604837725222753275037446459337738635551458862406708649599480736421095158010001134345729665686522417750671478062860789471887263446538271087919820160111843734539208165605146418841443816717417404924846701815751048256920227428973932810976434411011990428905391382691638750077319118033347642938530204301397066766906562893886172428890252672924257169624570403366692102868841315260409403123283618252891845997650114476602431647589585071850222786878080128361123171130270142654698041538243447306122430054598974580459889383576068510607041238145685179046179237205240377326797215246480375045363890532777292800815003895068415344160353728148141932185833743170265087301719166817012861395901738687802053125869088983359524812463556763155553391037635467402011116366386531457185199866638663065556874460693041544195711170355095634224195568260643617027059693141623963864227386380907731497216461270115082374543520319466445864242860871860634521659868424316484867358905610373919938935863567688155648222870589688018101503820807126607405124006717103859675479266993038287933717447610438160140627589883292910215451548015527942476220749743123553533009411204966785026300612829179826650001406076273980394716811066873598725418961992647184250318394156337892108004632393913260148357469442710959561437182355733211683499155634482324505565924209199702354604441888479767324570981166256311591756758434732869982858383664570243685514615840471049306355858111227761334558549486713155505485780061748360190420540881467964746446523535744427822801499535537122032449965400921366216441657946893214379476049503444221165145719687054258636150273028322457356548488400317309017600438925791596432041435331034228349411627095315079656236792257127840262290225988726452592002824264436284932712293726228992469800669318408089923824992474644853325138511902929372442733302149524246690729036679641723613540658325318993134723564741742111032231905216741310583649797177287839901149073456272422803807853652131904499046776429240508767280102600309620972730033012845934683301262552165766635782431035306820751094190939641162227481395899005266842454380256229185343142481153686165418869185915600605582143277267533672300521730167071531564320329325083073034569390736454220216261506790562191404689849161519180731878389743293516030404456176645793781485839887096311566743723430966073900103056126235034700570474939628048053733469601761642664982412023434136464041378535120643517199902348900509007310821974716277435128235149521930541785264649766025017898134186841186668695839590680168594464611180362071793051880221466822637011876306656983030185265611686188519427798281904793887024562851931414028473109056266081394421414421138915191480175500801285350180186227090365115281443821013238304066192132845959709828243816509258504414607359340557366703213491271321674794944246204275477332360815299184211799280930743228741956834680542103104297330996139818747348764051830981253504949379914049889278302724220045980900927402775225372675419049925724867315246468212508580800736136163922883558091301180563229850939117806430128516101201249150190864458479517361330446267353536191081089036159843016872706208953310573017835539123148237614406238175722575089598706519589742776044184380393898600993198221920021471438317117770426435682770991673777687289545659648403176579848756699727372660406922473526081213094866197646348899462252321702152697341258957040075097907146671473871683293805752468163497629951865733351732761950875288335667534358391509081482048160641366575186190756191831231272022839602096751094222400547842646084897195334462679647228783680545487706999538446529561256326075740373919854846085805084431612094849640111762988301320152986128329263161483476363418807192846419351575008147477574489080072291714832214774446776307798743936384345048372249021045418152499342740623077909188724430737487333487040789058689533324305118712481389618081923089678898285019685663868515913948366152041800334273000520625616168363010332430554171740664751482593516716984321675940830055960539725821755800908763710937398611166107343052203546609495646324010154790099312145381221666654567202859752233467199651906021641242696250821946500289297049876565444372905679339393535837347610894578240635156113067864497473179469514124015504080745768637839556089212743462156714994333132520785821055456195871013571904292521269822812383041856790317698738671997525583859908738665439515810793061771857705097785120452213649123383365306922955389791244408995634926684767354983238303648945569970103118749818829273953012787673464877839546910794296085558334695813794622820404949988063652926161099332002122117052768087816398890803618427402291610605826472263468043311984248962839001592626895535511461634971154750516530233269233946611849920580679985430638198396588938562686391775838731997611929590662586521943035492131148581247640379584838815705478766474318708369953522608688575213618429247666001181435823343133186558800551812650602193646301132236145244573237294867865546729567014706148803922085509371690119935842194227278266644326898648349812345233810527389824951681567291039524592632930735650759774628099986119114344616732347251129762707441947458627364921226555707812467872986234622037766867563015417148457352978623921511854998489648340511397153675176830203468138463400552113706069156557212151097018298201768320533749263822469000308054207613172695428955023942697747187683689312937511342000490858214287654313889620946816260720425272150045705757643425518504467375147320347386313703292932463889412862443462454432484478574782625014974736328041284401798480322558815877214296936880768971028205115536582923232822685076019020932757845529360118210655681941510250654636108956956551097917617212418134722462698750958303920467824145499278471836246365054240203489079257485114085152709307989605655554850242219436456520917465208795395790730279608882099709189771071677693013357690788090375847553541135985325311923831794539831363693479994105809693071979187317473019890800920923430871566077252255313531596025001709800361981638984706968787336843249312981547541670525490775370101576151017566195003032667715911466074495425027226211607880408926533892187200978261358809961514168080755344233834180654892790814185124399524374929128464278939253734376026435649566367149674228715108127555652148963316044482930423560321357369557626368511289220171664874635140610822037276529230143083908244917748729217865162314544319457156810044020084153669824084223337305352874456376902089012299218243378632372782917779259091662913489233806530631434579103803458252901297804356875472637735141158231120257992713276256296357693258227512256058797050360580296131161885896529712026744006809216703246683612917512349710003911934181505090110003764019571747807618932846344612027587272755387281206589624496143894073663989563672474580695253200288075899447980930440850056611647751180158413269885582812418328647961662494676320891812920100277433627593592963393019471504880893782570979579413806328835380204806797208007045230552214385570980976485579780901811477588445499758097220981769118231986355968514780410341667104419941761941233665213357501201691776621628514580497106138926376538402903519110730313818172368033668623141563901572226791461088046885217290489482022255968269855218090864929729432217461635961578912279791152979378841968393405048143400307694585296447133627653342551733931152489209766338504846144208745628933425806594682752481895703740531530610092140966885915176293753226308033652626840940843113335686978907806785797242012239650783082168063295892597371654284427364733162625375674986083023805074634246751223643637213674428934619065976649569143563860328693001533238604210354886389694554647548217346346453301089165960586855808633375538458040756343757422044804559422954265720112566866016372867847389526886653287063429844641191747640252680971487177488135772053933901258893240557308872601184764937311838037819452023106896944937752628359638731190610823085368252043847513053739738869497693942354288813738274572585819546708332545141967307893512249204381958694015246372125178452221102313719733977717549346595569780482457476736314114430327886607667766880272079191066077205988995624389044919670492290963194563077167160587308527629875353471073062285536088364175497453652516004703367802579070062397328102471384937876389681590817965435267988279100979222752532812900437478180983971062293068852346461030988223672179141346691132500178688721032279633056952809345089735264210832073746543894427020487993392072030589998036555024361128111073619759493352891886449915105763891229196541556482354231727780033073958303603796842816335325534209982835768805035233001177451695833604649390921823074768461828311469830952424739187461721420267983639136416374998158494100773490985647884674676768433040526617230816808012057314132535387384200667348529714284367607752537107330359650490503158221204851613199389107852603005902393944443413822668262520215087957047120718812418992083510488412187012850685130295006569665669905238516739755043011482012136012458517378293444913916963865620702088937957359606510240107471786264846069272343411560219605801638539545968201891904982234467564845545611942417496983246316993147373070065981042328349391821917132204733787217886123950530258158938329929008166338976236493566278622362072091578115481774693944888916045814998388243737128660897030249358849201061161379642796844351080570238204930292938689142557849084763177639607477633175560408311979534418067041571352184527755704382050358753932687253578862378060158403232944984039297983154999377000667137974631680056813618716896645198066209294906751815195902102561701817885279238996863185038279456937548196004549672407688117756348650479296588763569428053552613706139402775180602998733901376499370460680886459819088098946357638817314219167184919067469210004878761021838126797140200694720471413251352380593294671651738839688249157217031740581231795158304799442911294442470102667102848848488772614935729323469231394162806246542519010662048072054540064728992437044616795071989540160992295801751744644572635851588266991566816988458873272944334824147098620454093970867386852336643155133335917893261327184540719799968577253496846468646456580155811810471704018261884162635969834143936964658003974874030134712448555539188714470221058112757937457166760090735658141755566450923284948180784682645581913630256663046842660960201402386920184503490929102346850456779890003741797854431797443602151297360884482961178805531180188714929418790255139552609801813599606576606591759077256157602289146741974524799697610302506899984409969163148255455333435596826002829768189263878048759107772102938453991162183714438708098796941033345111275712465627385411409650012804821155873834377579656708864606891662016449477664749164346103666387526121308017093643390613118958180943852212794452261412701663641064677312148592210285906423706528156087638920803347063059648388378832117178447105918579081615801247346164968631323153752048157651080067598037050070801568252625344325801640583627708946642059087675853290628156541217066039048163716418227327794982067285773594284049603227405183572852152949649699770453185199667734586007364025356063568553304441108909911140550632179733254184853317282156846416614919486605041472509804201139393909625114236284062987046551372591187407907705964313963897100314600190174384929384911373233828258205561619316306319773384460289081342230102450977670213987038068574727583243774990123653865307692979156516333458387748985301197250278831988152334992480261914875450281241886804415117713937145490744117381409323344838715087753390502673779703650144618653202130004971866665232435324523141975137616681349163554018785754425967787015705086404557136310427791657773734776384015416665488817418429203670665821093287718407654867461534662630257370347798854273471906307070308102495474195316395450852546839138965917965334683942809200581538085126130602058102454218164848080489741337517353607229911406605337605832071737012515627932210084869381300806171376856867840741018743433157306113566309582058623278214167594512579774924736142066826039309894107631971151307715956783760898638290351194382278753757540027917330156328733388961914072600399567287108444240953250150791734880662030294446027572941238397901827782755212236983892984263899388058039725607079228824961201678527830443226485781519779684731807216908081077792228580022008057491467373530755741136412186233273070257369914580144577483823108019060329820108083095719774841571652967944472634312799337900571626477366098625287855631008164752378664719988962659469837507685183860580101178133143593705383680400344670581251236324077952191025165698384360852492617233269836313538890743649599448771923036613234142055667361839095423733013018692480705181961401789159768122190719810819920033199192775572356123893923317435295070248176381996263834053793078143190685198756164695178157700757459177829794828348870916778095883078278465594126338297834842897262860080693633038444772143925451726769596147750115775579658100273634502404156794615226369950712644817639533897553077706384922308599164211354720649028549439576697684418314942521489445245483269478909029391217103491626844013488833490516330023790780471964569743002108209888461671503595414618531952723184339025226516918140532218232768536388714949310550379506696467081517682819561048734233834163680989053989379325320183460347332223067667355419340850480627414596627036352102917183845019789067028302253527201970610442514593499373684965420466620568877528906066543495252051381751332145118263107053691852992785821605884863889678488423377272131887143127655250818139469061209132602053091087692648809295144515050054705256182179235547836570157539360512347523052290499903093440149704392348756218680206132027761383543180311997147187688873680756808107317808536964876005283096242573195328131630336803934350716504145211532398087098459045127700573040488838836691127196791165192183790083182443558752091670186248020885936132323865373577707643007279394341980328272862352580092527562841330055963786700468018695828448552593080948227490732295711921605400171468395529751112478326476701991058188255403006663386999836178216513370288665558327075183934972397740074707180502115283976442079065964866309441183157151844608433475620848187802611021402847131833425888065033151022568995556590525668230431800699644797604220575901811064620727726246199872774987984212515521527598302937557675004531516103600022779654655683937369820811418340810290402877528698387629663517193892246212913596708074849604913511471535770366439947151880482936001379829544074873882967531918800147588645701390915473760663031825604731320643487781431449072048258502512506969169442880049700935993676389230548998231254285071859428843889177732144375301247140029302630334435333140096559831091820316030372978416185357170866600810792527089382257807056611734274432579287388660541665132125427178892659145068817449250946266683712325894341128010550157535769510822274445201964236598373327153021611100638604958560804315788064103766315051941773988448915129982968079409595896310917562807059405848676283552395820379479869906647413674654150008682305731169884449873389856511522370293777581277271576584448070981195986214557912263338272006863245625464897044083627895436830668340219985975989029513612001197002995278877218529523806161916593132988202074950401085216514263550049389008721469534529581112315825723922396991904101865659632138318628433627584021012909072136895637122968939349210281371742619593497064532389807062511956065219593263075526033462980056031609563520435256175900725800766284434218478867715033138193306799803289329522199346542771710675810283504999561657815447208101604784462300686519590671822181675293229829946833764845595280441479808113934854492928464563247290442397642197337052947963520225641163552035541227824424606768375382920147195340727118001681189245193759887379649645489052649547274122022802394117823756975702850537398125659953046540060639397273811704778459589423494910766674932566642448853299541231218106804526808716838115111387839447045353519572056484255570780358610082432151839022703270924927342772303234128575704965571267147602628858006870300167878681742076606776649060116123972063049474929205595983301512286455231459731655080306836079551984917018922345149562486830259514236636176419148707230811196591806069394862575753733750057989341621816095776770555419059570156332870659728610498662912939129270414734469789383280194794025617721608324539811235048527408712029817836644332220683413612958474027161346265092065620834986248391557299718182187657914386119355880800047769455687316078505423972151293475288435283616948580939601219877709461252627698098501859802038110353863530663434260429042190550887130550326191615556607100056078597200763374754465182910659925180271024957229668735384157484460496346140172913942282148567988632023163345046075233228038297668053101535092470164042316932400209032836294035466676616177569588669981056083803553567136687308934163284596203570992348006149344097795146123192082654097998505929202413960601752463460613954549669405931681922498044932324937380917262242835739663953347271741290381185867929799219383584540232451916517031868038726581257157748077897737690635089454615695681157758763515673646762187518730438248314781410083630215624897533024848062914419340722783954022545573837564334996928245457653178029038594713953749703078671525788501831736830763077273440701331145724290053496786146104184330320637123179105616008787240130799516344118730334330791778174339715789645395313313774970501302668607292070476256176883442012411025654809816568708754478137014786305499491886844311902838652239916995879497843879386825168589138819612346669624315815434781405009288689688255409878870797199172981716858541131026088924107098867213935004428933510911015183113442257123578462005033553755563302582948140136414969119359290558805627709204666059830150802164512058682568788911713803370432564484580721516916385738388247891705899588268183137973807699230562085979181665885661905699768094076875225295814941926015338753505297143455270080882430074172103210602925786321494763001290399974824980517223677556400878705887640118657221790049112069427505274998006347874849581100290637726693118867258960325826442059866562217387186626332728189650500696908627673395723984614580930862100468226671423101933276811563564454454499336698755855775772674523978433105159133135874706155501577125759445235174844365684137792662210208355978537416655156787685202023773535739431399925263963362679092043277562503440518297437246974927108925159299892873764424545800587935945849150662312201463079152697560624173337259560683579514982934167775334962725363803530346243983018188035077038035967584379519160759400394641809358124678957175424443929491269201893833867343438185609312931263702590470126556977355735279021594552662668830094184174357105815550664593711492168076712455635651251494430446207959218284910084667281272055612648139526078728021700896650169822686804809261066625331119439557751712211871066856780087124664402537457709823713574633021013324863059700443410218663118485494733505846020827271224336501214008968246628640523461204835272741473663927326948996359453860307591533845487294826752776840417482955410928922936377976982453585738424884787023327189735377506680485993393341766175330673253103791888388453684142144704872908390644130322164211452284527428770978659830730701738439536835920691582685795753200970984130130166384032713421045057002487240728969706016829455935999668661118168875743230897693890113946181072570197788604012439559327741732742387044926646607241564772534145878881650794399545281783727347613850330805359011137125476731897465718226077405475362287142842135358890256382249059322965129729258493805925926286260258588878070895902404777830081312214870428619347764659212721154464571236349292712868910196875441723877770583714363220706802170852599750964215648462196705833977170620977902475988118916575265089575906725153765080643136748704044039664449131161286736808850179630112122782197094051696977056157737949325693145068941264870984952017517106441726118210896665796271739004729908063115070732395641360647316804871562706535323790314332535157471665427626317704638790245770729433236333583175344641290882131817291970103076466128399478453378618352225772120921684828945988407532764571872799508664025793077464565116451821809726046383005511180888787581071172564804851174944380499575294742023490649241239237842263953614262217555407224071292133348410179553034633694848506031555073300813631204637982567360192798266790444767793589449897116035367036726621290515372539025064785252906165218350166219275355495576177959945836969315259054188323885411238675012736091948960431550788474442507152422674620717691360039024022302473448958895794091511263350325722113348372620788867880177290327814355013474107954446138930211002806503800816873717182407490647680833960636881032880710304586084832406823538471716256931244078418381707614392290001779757814582211610297822501222154545796563210685962609662029528697992773451299816713756935414603612418709997703090235841362727213372291511693255056229671987549313908728974470411031024923430824768990739900844620998221000209594608449746013291944175925479579745104376888434396199670047762004989751761877567320419623112522451668918302647516186564080678949539264204701257031554371525046219125196180006667073867166220114514849507862563734756784670203260878466992845574727710807785896599336791917013622777745271021772598530354413663174660628587196001052665136371119884687597170714222052322127888519709897645303925134584636943579358568624990886306897197696065953143185871304975765042207039586394571002917794990776064478040116886018521173581446165287942697846210284256602918303365538716941231958965322539977856512874941797305902423009674880376239954015115689309082788441665934556105676963479178015203510633467044937400332022269556886170470400737538554913565275162297579714300127661474566105472296945914453634019573535405786683833014752129356485364971869489986429095705662556618439219801376789115902171302562090103101882014875230286337932546355332326439687335917319665136763687509932284273318318168585766378271249599358558241250818287903546301987133263253704795456684518663544610890842018611475746307122150821621314000879399732644059806515967914292330189517214285280950269659990705278794008325655292359655538298557983290566697809663493602508472040392280036218559724963031791417496585112989122993328674892239593050687744767398335360866211387477363094139773095162585101822808186364036942394836265691177955584148551562542292640462015413045580079346899724596332704060301919575468442819579976529875667586552231675130253834263880928679672898843306577428782660955688680416178639937587455710034177356126512729922745748469367889917652892258165079971320846353044002798352902281612987432503088926728519647539688087807776610386188816121279895220289983666050482534815726215067087907126873434966107537122378513176957757799653038921951703501444454158666255360329991591616599611585071997896459988840901547135602962598587706721141130642664743429669169542994504885226637124837045974498781205421910344935923616514908098206487947742645253711289186856693786729233659065998451806597735204053582953343537169705082618911769413829358155877450863471672842652199925243093466952253975214129318065790457085061888844989101527763263103155116872584477143056567513292441593226703311478129827507393909814135997521997593343809382694387069147129407461000470953410440014713578079705950943145445685616507705946172726921083552933386854283136770965716624840980251199071142970457736627333761922527464774044499624302684176316138645454848180631482023691616126354590622836194090983490055397502838533598138801523250400166857585747669550480457686877176375976311272131991408150787963409952129296719826491508935823973724351014467384715709504060124844144199634906342634650449481274821434005342958899674451105858584232041349301745035967189643430489940430280732149218757556808753375428284396865627424036976986243958288516525055878514487950656732528591578915155846562695457614939944740441082070763432619290139568104187853180064371409076257436652292289557277321999210817593290921334947508954227043263179611160334900381700182641715038373028667852519016307168404366844095849160205478818572712886877946002512790843688932712186415133177139832790517843653179375231234203878218211797965820746942179235869425512048366827624488257735733956020116203031242182355458706362534180097048444667576228454501381373859605350575072050505472579444775945541884522108471222872264143523810611601084340733748222205966249557194286592372310516442041358004504821978949567992702746568336450873151377590890514084605112424029689115695296778835435956965226053346498761431637732302650031970788466038830273758432667441579927630879540309244741077565084296980627115914507515387344792144654002343928777042350561962136877330320487079680626350730262824065092603959219486344393755928248047703706470152730657064447677029591891477432016497666121273713159407605240790985028704146475802130064396466296064474626930469074339883789108955144727896962287199079330666473692734378299184857567022483645770650430565290233318028981600184674754871060401470453820093441123308098597374621939345629677802261393858819050581493099565812443187658766610934198766509128842826224515936814615942358850246931363407950504661073405348564913509026256802631061188393581277458457233113184260893050495791098345108649072202209704203366185949514584076117549864235349323718401538135479652608764562564604520208371195278062139805432366018346481777260927424933129479314593717569912412284357752634252054584166288971466090171732957434133311567981917476277482666225886154472873279014939701035010322842884216672669915087984488346072050743786993983183794358775030206243141788492529623399563749162023024462739408574218203864700660131116914356520560718914770580103815547619831952856550081912005174692714630432230084553277988872723512866802726355029217330664045774479360057091011271446818530473866011439568170986645807132297164735007585007380491853857558362503513482243772041842606602717763775165436658151333857406157782809851588922912219931077127215324692493065247292797856425248001450018435343176763881095375699619362150431258320776875785957779352758000651255426857143163493233224831825516848260817184509286865546170475964847731673443477397116017813682289598840446441863082570595746912897461532095810838912911866645974931055216460063756207984987536283524057212091214997246930691978128298472433089638599141213381876209729664432624436095488350349842375390814809402363664618834039582880498005400235838445001266574226996603075396327386938141849282695869275537345444370373835606318179367215850619203577477557356572123600463068858751188415744086665565916419475503784012801785500616258217925757605710795532306158892164538531884130649771275911863512196999200912715673140655461281566605426132264309567502744494921338753515525673567616090560351689030918753086720957876784240989037023250498290115591184034423363721432311707200705435405390078442185235544028729319228022447752884394653728903999241491528806235567202334597760325355003051107268607291594632347273247269733269385623623439284080995304964122918437750210839703118276603120467638537980396439571861727821707081647649792855395522370938134298917666335552704739544662206557814978218397942066357073913603907323297154131926293813590363769204872973602987192412763517905872103997134680012251450273113921555713266696134978803540150637016925202304694012259903559498654820600616411916361642131234555587802995149122008075451388010098949512792868027028080403574152733640521390565701360140660452905289620992187918311902087481127401532009861641142593653638421602638477192023099545736248979140570337941992519584737566252535461111438313848963897658519074448763180643984668426275417301385601435100807484552678326513506550690170708706680257378020918960572508729247279944361116191674267216457285012351622012070563552079743998208468419322311642080892900889892594860051270883398574532159313542332478546633488716414289111695915510398402785381563297670735159981817130377694169054027856868609364645754001037022007484935793743825398171593305380201872628475723274998646444582634256486115454708202173592277228039899113038853808380375488151302767343609091663938365632996965454351250624930019496248374931751049397887416274700106607888368197502938392313600060675058221873686720934709535599291680485500501179353275234471189676344065239496598816688752924001033848878818353486582158015792554225681116282657816999399715071592475314877679170068015898750989491271844342216694473904915700636732099959804904545659349444956419669823132731996782393849622790892945002254402174431973121469120691542161622557481923498020759381050095810493144557432953556383611383640620739099197814573396743462573005213151742297024342512414663487608403386810708107266463005273249317504211606524054926043366471938222768296517152733900004586597947962128294148345936861351295123464338690225907576078639214304728097066814455074672634999011600388830532626112009833653596134344448852503334207629410021723300719029720939863789096041175488442290969536781892409182314618686314343393875593695608253704475305670432548675252223076076901779086923013565540853810182478149540112003599626728800326262943590406525676322559282713964624720793082005066941282548555055995839105390793972847797776922391575799906252429295105776375219020422517867445134408525142883104891220837761536490761188844891632404002332971118838169461422277409362538792388535476534529371774115641075925146632458702162151123135753999028331440134518481136630331033582819454790757127285141353941432787141962630813759921628921537646434498496452852060500631534774156084837840542228203397270192814804588170773235280560596515934160786110725714105552080223188363629517848366560083176721363477263078632861661138711646959357778839431533574199297650770953696758104160227346065511007958902094855529826518618892580766942596503169952710110900544870572310380663002334849546102566252332388066037515581675578509262952780004446165839272596786503980776618339847451766308421260270815688742784151097810273963007996429581350355947450390053108599424437892593120190156590923833054666899307935896810246429596839872778554705307650419970818775711653159752794072877448253121566191820486231705658684513559807772133199384667844431917081807786989083215340378473262187196088719674546015580075574188021275879241224642735314130763061172517693932337826484071943282849925356159816297479092140379725717133608317165939762791940830024154556680083468852607957082695924674613427830255649872341098935042373906569876378238365242301960703920819296554108610330773001946513449082690792906616786722005129360614083746398541574938128991182541918373724795895684225472219668168186784972837021683127236555621763244920574878714131474374578550038085112164922152892764731682095670725189340521642947500721352508031228357536451732492483493420439810967327190848121335598081681556617388742056096246752548324752746975615246803396745068349067014476901668465764241331821684772527299033786335497511726690720281192485744899152146434215271916588600650780433557283065495627030369335682323196954362156303147785025711530382717048481444080042641957986206602137831016259216662902698028293362066768330528871261431136232742409391759517988296138632071582039932216889980453385747845623786715662794198599357895930978949087982588531354663009722281992652506729578212604357262705228380076991363845846331359887732824076045499917212107639468483120157563077543196100168677251425009686511863509990129624085849794938298575544884290445930875698575995392221877494560647338198805609343622305908247089416322817152027555509079733434874285016722658682937844176249860388303007363304015507027050312665102567172439770067033131992526594907186835530270716968894694250004480138158560071350882751989075209085219479430706820271421250962748978831058635556490506173242909175401072812652194155626073219635453933078216553565713288920824856816424070870875024641504384326056028718668983289383586018580619391118570194840576593323685127011478409975238219103557218628372263256476068267265439847235729965554611955522266304844035947110879523254907341688654491248865645897918426799824007908885412356071176666549624310780677041645320748488743733670405388424798088468115380229453851568755196068587838051594614635514130900333717713228886506032960938669558644417889416134869971076160424709226549858259672887976312603527518888133780403075573628266004020380095476027576821256621213808700510253832640232851254761442550855717587986643113531496984319282580715906601484022763204723033581312198258601138094433922446621488958543777749821947606150451036326716653948465548876699278046238569110962053650553352636170101228973852061830430958811606915757165516081945294605585551071095343821093423463068057698456943525114071821125749376584501256423764128499031437796639881808357452419700753961282116257360905924115112167541228677743137068861784827169687648718427373875430324091735344034771689171422821146298704085716304212322861298350877809314029757117172649386767669579545969757368507292432211952566929634678249884475478218602717402148033852619728289390291244228815977826545722462903233413352453634173721875505426834143928359133847228916572728174001461007308830771261686471877916894128397969666732896870832525484619804277347035407822578988573953514353483270414357470256826144715052890664667097440080896790083556992905276883301641163098920641252651077639705772238885726318475141683297282358201603477430165829514230752603897232047332537696922706234987453757890741625634553092879058110352893453615095642776651886436625630048152568748338971794956649200400215107146365850904476633445863732780168727844776019274948624803083156653597643598062122407469015976254524533756885598555489884416200316003066954564520729350452259968944159647895300497606913593380151025441412061782438742076756706827186214636752853496781689481549437059122842678272399738631320033155286894721578326443228028415108348474744266977678842623315398497424010746801352738072495791725823010612509825254207312556602985326593280084247516437843804632643724217071478025777761528209484681378152845889924149568973172825670919125652899666632154261478763433175578000260546132897672519856085611424303977562706717611653099729034087519340901572082231193895602651565482160084960657011486804669692011443826237018959720673033505628329502319251061168645665725291817559939057236990993381853218893760868025233004177180677604724270449930596239025350298639918477624536927022570082069369675570040037652352506075285376217257987613938843258901519549838782662669448719825710192610308684154603287848215670065607057403245845407102037448707885896265864462090318302012633873113928498669845696789475274689433733623720191153743929013866576983359886366686142002746872222634695236454641611192379153949514657579474182539560884035842350281334406407809218351143845818310593493659427947630840471629145114833482992705189699203714629206569337878560295266016628539406230373224085590505962599472133438825003538469002721789484221396633965592829314780969905369086041308360140365555021840324508794830702057155927398258863736155895358344079976195522758854765486126929008816977505952345695444905217819643283852849026464769225175494534421419504943402699624112953320552104700580355681296999953026120290738400347720814468070254252351881290641097871132332744080625336394441221661931432953407706730613554129130484280685169515107298233960152271668854370600324555717807137642209336478474409339342922729072672338485527913312545023929493403884033299900260249914119661028058805745355669648114124384265600573100046724237805780910678455328658625992354708811270278466219865937974925491268238728499858252410199342245319542181237078111945113439255116932725118349025830581286092344684474882939082658766308272885755753694168799301907890435420628266592014688249356863163991910390684397200905780167370571522048098331093696297042976638382559574171224401104197728480814420302931397561335015633488009344084326895114036568731183406361680511705514724979011641033717666897660778363015226414410491305006890188596537037946846333437245281275153984248126714758306874853750299815492895778434911759437236263029936595940257789183817513924070605039213466704498311462502055882387294082217139863244372632953602200101596024489732396539179705480508095859813101493591225500591403573251399985423090017583974765241401042712828020039427829957281927453311232360267546991571703297844049333998848870753956828432389392169724180327970375109314971191466422201948730202968866584443582682781740788830379488222175078522063015260096953658932678554417981883574467381408600402849197727529337192007414475465156741167562829921014012670551099900766179867454423441282242371331303865922214412978884588152187459019043882973189892651251986481062320063512768830155983318523471220651121454436192200939324995529795387044359033064900471779429102366175053829487405835443899199821377480783780671366520054609399041202824823883265129015805904348567317623816148334631756071462696290304004275589327505237984295783400873750029685172130569053125908469452113211328115657996774444330280186818056212871554088583006135791698887487394681238880315327952555341585241215219516298336236868596920128509286298641504073511344855173285930008313947033944232820534272910224238880338882543029413336743158156297619748510474896362106903678911486253318521934435316107652691893355392147669502480492252556884651909364328869535816868884880771821445698845349876798110115274620776878637563522575739047634375025189008123940172136258521576736070767454026103410250219894031457438570336652667974262185683664744092004815234263877535965886395597921686621113721279285747525843883300000195076978505608105367222665581383408352042299105048065607018018639919468839895232017724804752878128218719895751061225417059432975047017878993332987100229329381877416646660164155153188249371098755993565256418274726440358602405834179884041811265965047328656602174583739611132580396514008741245319754172375088879797844723060176248207854260064730790680018067287594735592280326361621889624129396542469332735987559419038123962994086118800487474292657044676606298400865949830370587351395225305373376759823583796618309855725259748103455848740642027420179214507748917552354112894581582316164147679353133555482416315140634997959594179823877878190285243152923245705841115178732884669101752721143809146107633188495566449191776540237550421528761346525003377995680870759117117647060712818346307000913442067259129948216289884743952224297724738883838478915547047376378723416892335455216945629052462158504008005312650961255664244711427136549985120963215874137178310746600704930097914434589353949068592101724773045819216458025351909558487182261180484151932448938684385425273263036534003182168445385723569250145005484361441330277074840090580345866260878281396153337790113930176232862885976201445975672871992775514702118582707875885191802984152208641709706827676727013071427150256401505472617294337727660938284091051507477332090108647573553065186544636093721021410392779257796121212372254314170173367195531823561293348835211357952241558089596721696365633244882343885796365896541768046279587192827281901549371532133306964023988668635990562018290474637709606297150961682891143404732922160158215883344143747209313535601857077762411324023523871064503811660863227585990493373054480962603958656113906970004383872745529071609792235904846527520622576396616641344367799702955241073560999219150050803032503250886318376297458954636426427254495882158866163292784553956054962217242585605620752799815264197912546448121062347965405366394735397904836021690187986295456175042341899022159872795790396796031219335706262999094655020829173119286521052449081368109212209701014702993327847690040590164874031367920024849738232634995617292688520690538209674688676683880289610716210302349103513422711020900222639708765862998789521388467808532293659668823414277083410374829141841119607266536751005580482680745894446938688369390436864209482653898590367638407723838103213002856320801840627279235538374640013837215512489039372132983805287293977662764589723766405834027305732358574967139957423831025234397352666003506611261417663282094934634309261005827454213366909873237804362153988820025991373670154447943804567627783776821261232511191916220851822515940540959668463316723079583749585663555613982791636321883136905179673135044449920778781209034392585752303326582801638110024984670709794100039787331846981015714023341232244966023314322323896215957297007375093902700147253297850464927643350280290633137749923481680418513560838111928535812360876901163037355632211877802857197440938336733869984115586360582445149638856637602792682029416359801195532204175435403794271572816996697376630679201483298140206297022407424830864921710620152850391724592886629095457075166281587697260420020576756419115569767178614084059948052530867048913237865715051521012768665004735544017820045074970196515662976917192899043565743382836849998135146583232798523889759181808500388070504420370407138564000299094480720381426031967343053114819025730373254398699401795196492426213183914429864508497580717686972206417955176175985430742463529256879111453703885338331090184051712006143187157207911330647034094769049548535628854914565478455767553383246337027719307774013954218095621205738219690261711385251486486083149577737306850478669928761244926275404892818530772575206540635015689477157163889505948253947803485867096990583605635173796681389860649903243799538958362366209886173926946051614013662562463661187067499184353489523718819488349201161706130399613613042347849794110275683680382667545874244647418769806228047915243142933661820391403401396301895743443703914111159848809298125762109831601257067307380084948067384139242052460314730145822684399761615532932910839291411956055449745349989475139637104285724634388465376829355969199188133975984539419555247772331609240404496896836343600862867780757972050166407204757030201044829361296401854731785693595194506193602223312972052839902304819829332361305761754179613438949133110264621450282321389971775370628940015022648092437108089427581670090589708168343609951561672144762427756832930226502937046145187214273683464969476967145572489321531604304221941150465673394184610656883481019529963548618446905739874550262643326703980982765279799462490648936291211934903476104143245068740897349356689793622504805571548553599175723587254684529538291986061152180070650660351059754249780344496353258700618327370694332440930940129868676856581522436928183456690097503462955244890005883208895323987426005357247351682817673534643413437764144029778013809818130960688257867945931690629934857293926831046954505165247843305551130383647085495402773407564736907989185744304559529074643498487249290014703816106996505441904079574028507428659762360024550246004462799122390031893064045416753142600166955531185455004293817500368159315335038207182246579193555641488643183669236057313499963562008530275143620752516205326559859541255451196862838237542511176069643712255742534298301113236517436230503275385385182225962097710828331322443459989298867992310745084397290620353605430266790899891601059010537506567348641516675117526079148596034096073030328504352614617916518636293637983293574549984901875236781936538488482602775762374088001428144179088717740601775886946913960949618940394243559054892398365552459245111110808545623522033862123042770442829807829304732784454313293254371460288645097490848759561807587983129894344204246146980369639922375348071336924479774063621301044126880958023005776243073299548168628372283261325989263603755925324365393246980742478472439047879438144679777769693904194658596652076531988306806460214086963019717574228294929258148200162733097355387791539417605229152733958364915663136332413169430752426663538838090700884111655201152667686210819088312842836389590978495685051245220734602159032990447750596166743262616560064809842296180238759468411392821342443199525141424472428602866948917855739947561873436447896702367705322710006884088919706045789466612040045412096439331806030698711989956347749894114285854603759665776143526427206405249645874799458200926010525459957119081576087342011427947420562042112319815218504749787001911972622164492084002899396542206267994847975930554951269218668767787175560389160667670465667926932619721643998801219285092555717390476774821347374793687086079999479778453757052948636838884884643138310486249180617383535962270756916847386684709398584737160161259936781718543925417415639566787527525097570260321319126629821426495054585927166240531006629273343751259022131648455203218674217198128633703410891738853593445469783070617970960341437012253406968833565844187259666601477170707800986153559760461025532902664529902252434083188198545710005309391900401555611673962474313361308084767403545565053185749542682237150778757819171538046683816265015850409874494958924206145784643733207020937775757234825286242045908620771964922786718392026691564458274156513440498947681435685451166746040535919809429483522168009759633263273278911937566172939144689364004644881428408126609702476779598112067689221434644150603847345747051047291025681005730410352553441661567112055912894024328413785065470629712265780868224767974746941711920766917427038650039598777526798404830201416927761208841854938842085650285220669580060089898579694248128869471961037096347931335294044613007340152154381977686650403822435623314775333900143778593968378918699776755720660562754343297391956071563383753479024371125390483570602291733303381160587460653517238992843694890726511040197966767986430607110518246324348142825495598491325925746351281077193809482208884826087216571005717176683613443430949307168964694222078598778730852556590695550837050926483246232809498407343779481827498222262433518869762033808546895594793966871636537816560726796332771669552524359261483594791076787383284656610002168867921899953902269551034290349507252073307901839318487328518251257106245954701728879638434748736808386253005471820517639034534001849352273772546143115747650780286033243446557759078663499478681692619503618256716582716706659552826792973744823875565485765480590433033720768699930328755740718292056747572009871850133384088127913627423369239351046500460425329723420806388031648956389106355061922680295027661220015836177111614476142839653692710632750192444046011622913267967010090008556015767510062452424881804932346885028362873929046365555815922504804579286144297137030537725646858756037370870541761606310718405294094289275383372075265716221771378670035285665772167063623385277309028463755287730564568180256161144604865794481228192033132251606909935683561184029872898749026488015327153584550549718789140478496980171595431519141403048185836622193065066350588064964580197863355243665768630077247849696741717526000678968083726635880185690302687432199504034801226247149519214123201577332299268252983082940839716195052995087805743206329127990309843269680943065019423709807528642410795834297118404033717359888783876619483469095844827587230569672809404955679836191566605973093892790126559305961256011241521929513440494480625573389663037359112042659588058126298852632588894658266193874793531609471414585166497504733093872340267256190884671040905438700093477651741737666369388691489253465807109078432470129078739757360951329647198213313597755977098037815200993173694487094922416766758450629178924097233857542045272381495833041877010184446463491788358415677122440195088045967137059341366162800190386632920256908052660991628311610685533559123300388196227609497782879795954587483767629149794405934329109172525132803249792435676469171731487758022906140619067759068610570658150910465502268915054700538550795574906065186334823995703757468707786504329736800847210913492156605841724871056767005503610956656726117378017886175598984405428208185454400972912989279410334549252958261763312646682400030873692503522058467523016877725639402381890754947501757752110564894027045803506583630444698289441179279022048158894665669993413223380766579495423931420833752736799553710505328228364248943585089966634748637593449411144591632311789731923231298422609393974976652043702888149260141666293286241453766098989093329696208743989235618956322454548209608137640905234191026942828310993423413188833726595448305902207180968395263928025576990340552086194333749216081207087608198281302615770906620551721440076197864540532905763310621599626370408292771306951501083018509921961555204028728500001915261090422175067106101765256259467258907528901449103496483656713633587920968013908144066220114172902365195836177336137834994845715337057657075370015918910068714480950296642771521028542340728371182944757264106780853952677550799493761935274132257335245322434039881191237071976328843083860812179066717964316653652673640742981789741387296693531331156401806174264303662551825279736444044931658427088034458082759528052972627906783221911720573759225566610551922920904410093243965385069888887347939532175888718336328618706301126759008496265828057685260094168450747317595365229094676070700730331001485935770629825327872679134056539310933131348061181325912954566845506472842099819989433680363000356780469643446767927024610243937072437633556469183567081428145271574051462921855389189250527465196727895177295350677412159355292184698289555166307328688040614714950796724477392434249385052833730978951965552867000602179519861490896394061000271589179848065429919158358870226384009819872014167128280230265022914912157408377424824763923166065573742275101905548931020748702049652829498624523862258394078398751108322879522367705006338286105246311516463522443621011708374425651355835926950965841074854016966273946300304439616968468226042428976018786021746827355330809379665094111749811997860874770645858462317536458131749672967444108609428075280441883360673948259612618194324139227464868193942564671530142171722509511645623147091138877526317980149530961337802738058225429103870326386977568948270788270127788105538942743685015359891044119698025263231783139708928998032087567540009292812219600713285733768499764645943271821391647942009722481775451332269794433114896615506184738556789648469115832400115504022852404948446857254153223742998096520011398671903989130768553947055569911808548117310258690997499500679390760118399422197829356806076614896163278649724308094387808869234680034213007923458083288145655778233108811733902249756221331629318415680204173354013730225756125183652109584618016347406542185273162168741065369343484873662436262026329171268984315874423782375929653948879051830997231132346920485715232961238272705923092529222471887925426373554028469201907271971792786762567454097839635376055734931207831976769337210965484531317195698028744960629713028294043307755532799164715450444848223625443675487040447191240630782055165776537417491591409005430806956224444647883554292861501505990403492807001539754689559386423015666700887466752602344278129844535266408083928039878048212289214576404769090210222352928113812153889535358564526257535365062971631483368471200284995911143829237314163432714798085808991587680605702497808470063642620805763210205686383396676791380858821743032627515175644505001490282709690915607763695169982644438942304682149073703372724236736774512304352855550010932896773098267163795675678128364225230098715395924187902515148600467543909338439015773873735153995061380658921025121727855776066372258939694746013816070544009334041698559588764938977377131002370836017986096798207813722669908797807839299373816409804944462012006258602402347294591282361513863481327570681717932846989742550944546571329383765431808400466696714724738594367729561202095716311235171186398408114796227679495381589269640303794600429709423235631669508143341422487827978682013336920106603714124155556342668703263031981075430578202244727175391188254267401230823872921031370113992127070456853909881412294149250847080548733610854080637973653002450672511585672897050411876689280350248309968396763562286116803898915080071423938883179411563795449770201038571655012955025147582773416894650532650444202055977487858480474255725565959449204289044098468252877786634191649074911120910802008446933288763559542336851238246830245608631029758374907374552771597363241781383429938269659538871337086885515072950305285793059203815609185619236971706330615279112600654041387335566678637020382416976657612640572295468823271545287602887381224715659179381365796675640107919627494878231508058277705442585629229496049445748660722866051000913334351609598047428075806739604923452088261776989604842310620090971023297984852975794396954078960956016306071243086379051844912772724844069454696231694099719193211107348664195062917737200002553448565410747670600434758507941806580907905904703077250045596735913407059336703213127077329624454796434547396723619952263282299968119340924760001731262161014069507224635434039239916309878969148472631991753596064776628077982033951886228279379572172799665325503352984034914491424217595180882393018502023040541767495480510230784150976926493186780679002900253062209986916024370967449188215709614246417893575718920551340563046324660904990967286871344508418588798587593850123607935978718056624309298892251495703541578904178662279344703738678247236484164539622298713618298984657251347165512116696779178845272495467421754685079985594927229332970303531891836503356639547469487713871485518044944853193961429378399646914374991701715075636458850906390194128894106480566757023323873284004981231800012972314874916104265414021449636601374985916637199337880154479829913176893042289620001629449987364845430304581293045607103172203061209841213927571352414608653930841608497549968287099865711991716024512997624991911724121042272584088927949229411285550338404930143109631196259960981435821592929289056390803685193161079183745917041052345982797808351892243619278200862739613943721065892454051053065824147681363304890033937937578769025197419387942235261394791647290721968875239181600711011389740062181649371530414574314684431230734446065556820567778954023626626294321575225628156996718043448114901295962390230302307375844186616365704124152805272430196733679775687371828204998901657916669095158025196287841196984022478748892957884274273580731368487102413618663753227350742529279906860090756258766984100894285367827536606529234910140049730215315996588674155613808939297103430880997226402175827780742667210930933822277897109606761503338582643132753577091830691333060190034730075283756231244700110070475095970043086059456354092001139737539899921969842290589047486541965913992816641452149684501535519296707907225158617192356992004969195545923220082138663615734771654189762790552129117114375817491483609221234532613590366824298091819598065366874639998912698358768761119342590949325446733713782505116277822607281575490765948029912410334842914428321070382932984959959692025613241224089366386202174824776456956138330712268841460555539873501583703561146777339588022512170055071044854972847499250398878880458956874979322707685779500585237590855564942159918344356205938586947267801305577993093809380693739583018719421038878479390947550031661786828265616207791005634038461434812206338736477453901663429058569018209966677203628407067695857590344669411324271737461926858828469693514970167328878621158931822966725163789464025159574304499442501975575198392325280597674293578049446492843790019018852116185690299660061385311115713387256459857781555815152862826614678314513236408186955464031104249457572720171464995677550393349333515769848460402107921684797309137584629421840201026589042774765120348298547301612444263380309892333381930887368776051200124106453801328867812967246671142837955341075144708383401279758556240509081931695232589768088780749130972428140665748201911128998362484965875781994042800433854165538995014721175013065202751974766440718539250779267738174508050960315403612974556287600755001181039020928087312914751210864597633025070400931449269417120450646859255531402940826214122769221832758151968047894486380399734979621017685461200293190168354406331570183515235595106260299194031651219199061165713036898445716241982980194285066247552097402835219768899863445497465313190571043166949794568829473495974156679197313585615758458421741822591366762863265712361658672737370408350809058996138557374254546008453210773730154713097882259837920792805350749778257733717727956202095839720057563697417690784727717625806356418568582507969778263273782658460658456332568714325813587817118226379103518303690490189834676389422784734473306031253359047044422938626976598193438498971024722539631431970320374470441666038444099367540956521565018094099609812778091900999606375969093391550376677554418399455662055743986833574318286178507647376123667242792477571435708569615622050246398662106676092777934595072422433099353939364526607035317927375792740316808602819423727283168111442724642864283792364381751351161475957072811547313751038639631664387441931249687494401827466124169534954364819223187763297821378262457036936493451322738169110881364824671374523234156759032435592314905842620590140950765261665190628667307912777353782476223301679871556349062780091454471691937778780056236417188832896108634025064558493875106188494631911719407561513104468382628208742732141638056901859249904410577182127761907672401870033511631403965079756303036026757458238289657579971531866140607365899590127173027516511551394402910742307346007991873411561139143930800778507236121551357227000108412245289943602269864139239173006666895820332371519337632461886176353577896788344787249507743081572577729609864119115146350270775009444409887794297890175507801176831253679976495898073026041907641387190928415563682342975933808291484897435984848077585673517293878947342499326152606042764306315384963010247183707912390003828683507560275454483725028943518059557145999638194201055804338061856947934832750125473836089355724128572303859888248207474211150694846453227818649956506616165681943334254717214397459950424887085649885729940202841700345137624630522247432124806871053239523613528877881822719327847688933676090223564072176934777558270786984591028034474961091217550912601438091199878185848832375756000547188394494325474614836135731337074149967899612695304241902201133264494490315983733422742813327231488854967725497614759953095233401025153435178679238994320663923128097387559154502552441445606532212542763333057678377090093253222967069514109483808667413835090485471079739639114101555693567598928403355235388327331775840789947253041625601940159230004045374921868274338509961588338978222265577489377052617139332197578602581458664592812396981883699602981895578083017525501034920304076310835797543201710611215641517345695768080017526850425151439546918815140271413489480262857758997503468772852374822651756099880607271542005140155105127768358938723149342974031039925897090552367495165426692696383768183866564087345919665268289720738250882286680842063996713053053782654976452922326065845422242770988267309816320167805277594141046009752077308087421096751499419368499917026587748220000069216022451648877127318386493105519975951013932798569945997116980418029737029939679362825474856072281224717383229386391720834255324939418890184285293914706320280803963941458648489160107186546564599055169862483279298236346242397202836688438859399395424863053753957043255340009742423907398029156642489269212836201819950378255870868860376288999899402455618344433071253005930294636191959220264755169075399955947333895732225690032830378714837777408543932371470516730789227717483547983093003606820100400981314807123605886097703941948742939179350407760829466436740291950968403928998452778509173589359087539550224325921445344924763909295965436456655726409704392424985852061715557743256970414956853241085201717596505559951661384396342219486071247080681096681474667405965385899121712372786155729409809456321803529645537559399717295181764146954772671161995019258069498690750438815280445765163468533149971479160908324731653755653055434300381089208351912681179130299409628254541236368564631606938319837164773088610048166635273676681628512115809491021202956711669196692724860636618317062066668661393606951519120201662021999881372161301723595246511640548380813402098749407514393867625705920834217421336224214630797397237040193671020457511834958227329460877068376044092519350751031730383737589184899403264850717326683241829313047770946608474967773390594851271659273472104833370656400107055146716144328393365453762448242178385058911594971464539322602858926431508700241534025923837371369489315256505442600558995252201035288638599566661719098759062671024751057330516769741897761131838847018045568217603301638613080102368519886153884237718560674466779828878020768753193019186380441702932802771283958422392878171000180799727848766566521974100426362139920749646739603917752647844825555277034561004131322067822969465963635114234947940091982731127998617510241967932434512621763047779698633371267338396822657739781759495239678978935957238835690320603107369553192400001991667623960785340308721207310301387452153936598551330734030387764211882379758917512696049401132649707497357911179347710712181512207276759008825574343329494332834710562749886267629760014148191972356895918041720684804910075623839276140529243634010533540318554297731392517289887403910479672826905622065628918252254033461453845586599643581600376351466225581562262206690731961261766572679529210080462588316118231793636454403969105412701912126916883841695069246135688307515141604232420157911995216585538242943570333103488312735397132204788593813957125975893479406421410448518467557520331185666729677975287829265594479145362725476415147932793407832007694726522947753079781993725547240669264939607500591493312430809031483148597039416237725990699881455685555950530035490028329473315715612553445164432104926050606938844451991535252202767414619269356295554306717278455619003166730300968114014063557194236128452316481159161185285554390908117486497432557481872394479408102472649604587119271469032357713655601929515522015367096358823092031181743476543816816353972550992887273501566089037591088702398547365480618300532599578117992722349376461065468134179997585751552314690035650956210950144531363570539347008347006356966525923361303821319436960018180951421868212546737874079690681854385871139392226543512487047659748543680862315782997511742896803441284172942835028568856325735529630452921826601040372701780819289901323937219479903121317430998768038689356614629097637726400895141226518597072825663510479502100109494646721051792608537620527535903276234547896266153460281920735712057077831808964702855975238821721290713407986172841605980998288052579504615727061039066446460773417936075554868525417053704076782028885025175831881497117874194041489114967825492188607918255032983050400684757390938232636365627841042050241541695019202167869713927381604797751769493446595986316553630998821316400076725940763637230266712379897685104734812383981791824484110558753913705856921627137229201940295440005919983532309768327044242300057911396048473094127317866444600281764058486042710471585843511808536627296483831591419224178285519966469497605780053490924568519760785251329822633573033615918043706317609894206968868872996337127006199656562785130640446055079433690149346182505594064214603218580985211894331234299903378962507558772062529249416375399837950134780265938006271056253755046316013987680905430246992444524474948504162100038583878389555989845642092867512156297110289073353084632206080189397847687472719297442875795344317884054604564586130628536104317619312764102162987685135420044698602618155152547224350126145466359229985172347358898084672224242790084629304415333117932643573317637096068192690882982711313024981660458708397440385952496181880385729290484174239897783887090743908572795933097532808064797615614494770143126412146332664015525460323849549698730371553759718803674767692899478075186780554091969545723201266794257060849566621371141274104776023476322572262275703944268174226060163114991783695048265962316685435447026725786529742340777919597104726617458965043179624065545316648283672191207553231300299876411808040209823331666052084407564744825861845406153719342900268829773287050398720632051590648730469441605049649277189219342896565397126553276366564047487611512845609828120250706579609759410134839973911830581481427040553241734240405189012024046756111417430172682175886201286184797445741901287657839027466774397035519754572749914953849925078475906114667023239209179642748877080894415939557581441941168522695810496528209949904238774476319095760312599569820441480836701123573384487621244185002301293414465424786440051703084856071188637370240733958059739721083596718513307549071201179747872324788175632867095758796004674480946117074808734301906291028461197913988769347396722847313567027122731328843591946173942894934257845752589345415522308430402471358185885441000142695080977558850128736679523351288223189219409624282543349574826181049890953966467783197766156920267868170570792437971702711951392225947771423417853678470128624151228234959596998115744184251036639588504972112929387567136291333444296544845373349090448652764812683785285465156226670100017558757490834238501559517919026673563214539084275802371102468946652188181087391214758899575208917258753308698750613776356659459681677061759700350539531709782215435965038193718460242986872916282272914138690302741446113260215011041520060302069937163501611570058871649967851204429400520857757370440237491696964372806092536532042695070155288066529761789843656642115945715535320489095429904479285804371301004380256961299591361206807521493587826739884763190139664423070479902757665382163680984602033250099984784817894037100307956131840383875745743876654414122867001971989599715277880555325752855892124737428258095234280172801015878962311304865032041121602298584014020144742463692996624221757845389319798172744401196538045961978890299526834447312481974029876833732515018540105891020817368853595941980982659466585871180300976448453289734763593902610939698645390824174003117174587286788349125049719824301974996787080309745379441326000904818538365218922374934457873981207997678250216599560153466212588070201759639089253070609583048984664102559189755972707356335686777248867693036876410363106722534593876464847578791644242818192692309893110336779489890249889277352629387124192392973954442932676017663308174946911351878623658320157638102194202256566776268523062692642840375204546294990085826765791178484742629090950719855712943355417273592812014213526505277164046343585875990727738564324130141336292656739588501524539187980674616307770166212693546373817810772471552738026406137938760674608397037513844633486709261487799473104668196938022570802148715711097586288823299494023817292988238733170294058403740348287381300255971410523911888894644302523842175374646704060907676468266396441698142450690150918145908618807153662968702701505287903212352090981749125263762911626977548640166269300217474788403494912210676224405331870135270895172056564685928168732303966667845437638821384407167962395666527216914549820805805871938954516284061636961629716190296123183904167639484474333478340703299886566164237629720871499506423145038301800353567565707542667931997449306692854525052643185917491877188288944594175960866000051625857531358879958150235712250683580028476864975577476544383127144469986105845322051853525677579319494716638215314393225052155503157848742417602592700603430273738127270031209671718347012934959316626174008357132907626988215971616051106157799315613855657994299909655312736007446624695497378446243484329709941858219084998520308961246243258249882926149103657525871868797720936343967515477297315149203564441429360357787955085680729459944928238037207009512771822080039459857881046860423162762643903879293291383896394222838469875877591086415666247276624056291025488404928143263083261417845025573176992970394957740850179901303372629165168106284353818735023150850329248668846242884203666209839798665057105274700734613580696937829599320290252970976039531579398394697231831338216751228819562543278320829759903658901916057034932317092270247408761639876797370452605362650116925715667618367025722718280539981774479528652528862824694147043314897595048136109312115122050444716186347102207493818403032191106255777771980148997958005661943712999929332293846011022576731499800547518569810426072055474224541558977363291775377384423299086361454618097880676541734057624198027998239304100721344510888339940103826513415345792748592340736557418128698836887496547410434560335503113285078700581322714362288141081292889121598028215278354814130589413904715580366397412853800216096655254281198465735716164587927500269695581369554846493235974437577443899100777304961170951915588855943971552483431136392234872652721045354689202391381980587629150712064543078563670190612021170966717019143292883562443787944908947833755437194108567638843421799950209856832242200274083635641479251751501094533117236485663160930196110935922071503450873310784658385008284734069818752129960873812625140635330177148106024189557478555539011783101443557718998435032743527724034485704034552740071924104111766082695427079369617016334677449713853699838735537344067553246458872392235967084386203231703284397134491330409145136357715360818657636819689759163869110206224261422006584559191148172591952858043615036891989310354258009150227178771646422709854979417470539449262040014550658206228886265935302575913047647259285610621164419512683348018953761639719572957078580322809944285983466697885714775086927235573955119370946228057388668913619617812692003929009600250997057431038723443355694864699810638981034692422377254502514064673583985269805960212932137544658614225275804874712349308280727090713487565886291161891917092014561245224510007155127522954524170922444250933446571423475332406592668955140561301671792255731656840967693794077578853164544919913489519401961303132581091120804593762573999264409421666542555843442863321914615715573235923324369005035953127161265438024750935312476181090288071577544032146229008569343246284373193785348559409933541160088639048927568858724700935747565914246676733587594827132247163786619459225096953141072518628728399532122904578185707076101652824334776263887577898507487379711179848748124074846176741377984479051241179535750467308517784649199620528635828235917852213954026238821983213618615734205285369338000954293766985151064686234380576141442505214525943506750628765449603955092787859413471887065017192049944613680762649293267918980681417328388732226431723862769599954590197676453899967803217729210759072292855824115883753772209989983102809264384353502741973953947602342924129621114909054285639828242018537620860978254809814632820019142895922858486537029370892591115743385214464376892097233572681024197280396736974097195112743661137472129799190660303305656991882430665657912016104482208128466144410094560890730039686430495060173197252916267355563871017155821159867759653178459275837583271415794252270726902326955697664332903808113469879214567503438496871990648916987081742102754777739121119656019189001362283653190686336841447028794732634632849025052023724296199449343195796179759446300882121534391563586837751252525040684563988001632524046736870328896344854743272802093119421974523161654396071251881656286101401968222514630348632343161094693159007006188934451193521327326369786190939169605928092720712159986099185339335965893888173765723988236086345223067213613371624972967278039554213437022716457278616548511057867388771804540818031069606087167125903523299773040752570622699192486977376239403857137575652818915348810954164018232767651408658625942328803228895851003729667587883520389770275894539744574873024982694226726067008883451804003722456332687942613942358272121076450987687762916302241879772329354563926966737458174126894609654716937835459710807110054180858730260066179276019543672630937307440363382351354034437525695050939210574219560574924181971824756289598030227233021393904403262393878951257556840020101906560732237638474266400176538008658505574171916931847439422025758021677967574099383449847265020028958198720956906317355491058325772468165574708812639261757122553628811900092312630880928370375210067872668692592475457178946112265459963461777399620153756143556267403342254790755339464916326423056237432573525789905475492836591883992299475029562050696090851608919374727807141809937561083940629345318238585707417708352615230352408373832125689801311718818423751068136237379000758982413045056284085194890998322346605043746689342485682316025251296943283249144302934919248606673185926217033095562290357280277134717114674282583739567667412868346159186676571636646333604719509961061178256918722925334250663931577186825237645205236035767513061592294243421880108819515838105326473419623145582252028340072478554875242550520083001492530423424845817060683019504369317844845901339663643187353091176600462420866546398054926411050218165269019452477957479047291285047902439571130617327348112131016029590907959582197754762165883057680166081628015955972625326408072522489639235896455519878140311102789936747899610747295415970385668394427431527571544239657440008497561136186178253502544677579611997643273279266751820137665031134488109597805616734287156720661155715420749252038944752048693605635956834838507008891373057632525103354036830819456059845242579657721361423333819070043957243876413066177678278603253267637133780841328150160117133793831394552735601941188212419354807959817952430656201014872328082732699931062895806536517371172586027872815708492622072770927831908660007258172710495147785774273681354561760465251084653981028639682810632382765736043871868009280071620129156097017233506779961314590943256432198974569755777822268833512826019036720865364415526184873400431717989156547311461308664113195118661036268856388865378939018985437883881388833134756723761187393683030772811890597873470324007573909934968984485229019597277500620705360999468106468757031019583617339239564055648805946993376693916593324180558891043443654824752575718420821556952334291267505781523398608600039139500554522488899988691438599556528682739336981696637739258400233661213236673530182928556315198360685821661658111682124014903980269534174737029626434120496091185038306559853694748553821173297418493225713475725519898633044964406512525391084402089219519274723925605682444982775626120233530178300717299687055408897749501268378831117671342830045584656960980026829166167387223752807100778279473765531769550780758770173564931794521317833790774998590423871908701598133632770864139263696098516167473361678091734143265814132843951930813976435303975169454038193491501749434989910512081770639816409660160194125446835837266179518751686494788689061765359142241112789795308238349585010132694484984439047794399422256183950762293246921557940974708764626614758943460226060823604735332959143566604692083430772542397740016863802732586024722863830754013819996608446345531660383841565819998859402058265433703577346988252206753624001677828417274140647047389190058966067035698761015997922010265341228872435475608159907265040759983509451064390285821560642157220556584630744866121901005418514434264867608262752022940851931886493119771005140146158903550966111068932502675298262259411069895735055745402934311177787226310861277186287561044468679511158353040816354237366673945648343772488724954504948103749097281720254116912395505506962916682222578452053463724464450602400426880561301960027743816300471750358438239507315923673665650545536404081190943856383122924288715150119827746862049712869268341731453803694493185052552851057465402220076579727755045569487135097565927967926296857525839657117676225214016387717793704647899496679993027309925865526040440035432358320094498117229677302281090189324605247473699211198848947460038850120299838369434003019184160624350660158809068586645809724384004841954498142090135466099612698158269422565985508421621911464814272353168755407960360919696736182988560099584952144364140528252431955692622626792382251441445020346840402328197421686046802452029925070299188858592606005790886631177675190532050660758950424071480767983451830307520131046569118137111080325185532126093761558718172788762152610668659847970016010069787167752190684092895151795766988283813294277701279682086438430254285550389389640021822982549346462505075915799773283874044950697501689951333995489240454891515492590272726973512234676711123210115957366715203824823085029598533400248081832336410457043539973901198388512540354841685680372062303274911019641000614056870121227139659836850881013569123761768227151620117846707471598337318316886818179766610574528609908809796836159900510453626612779843740018144771738175318458455610592263287634656767396366578731334786457836511912776474665697922124511396424825600827761175110052685043939615198868196429170773750287915378528670251086470782123515136739454703131843184807947764015741093066751999847817686151787372180068404059289597034864186700907998886181282743064837709552115182182331029028590589825142239455838302343088399078606010187813448026328840149883822045662788428871164848598693432713781970291003207260778623161088777336562439221813009115882514498143728259260593547924884048452417352262019875668742579287231406545148533551526329985376967261596332157465893910514920148746792044710183889982947413786193769555339932256913210812988586232555569275816151447713388070118212854220641779053642791607262463639059188624837066598653862684418618413598719609555635117221447408614094412450850510683998803744748040615297724128479068712928356026604245740862928821363486164827754854858069667191191543970487465591477145789204801778861443300698408750686743620384082526481324734220002059261737496704663218593277228854068320925910975381509696849193095507352954289965206270499221691463508471110660762097568173856214747783860083991771154998577723104297546486843222826800723420332481143437598983834272892731875388616649524294947198662593232032285644264619513449219730815195389621826943468874116213560485897082230335690950589373682192800593460203799823055659125212883610490654692277403155615716144512757165248619674962556912741378798523325416888562229355555304748931358675401987635454682049378175101715929673858422307834280534391789763962510176241249464352966013129723219425406708074562936245274431031051291945878309200540432423075596708188892145388749919751499131878673505795632042627455706123921684999465429123293296704815032611717734482990906815179754393696837516218065125119457409593896693407808562557860063212828021716451164200781110077042227464355946021218889568447395425977069614004154579538585708015719767521335223618504947068287917295503128552902410027389513721128809842883607813223945065577165802841023073463508512742553823214359424746634416990473220506136993009354217667491343087903907731321418883510028369191326169306969881251321091403130809150131168812694323594661310030449629259400868653495530949796395815095482497217813278540531881733788871652131010554385531120765151736241456672570523180863421076900786243674200311423790170847473724086295271215405683457464943866767887854659772276384022959742631823733928752797388450482973161868052078535346272950440297440865473308343849665273937708466692424508707440818077066731930815271398824638960872805234477087412294075300928878291506066821512735070109426056236273595939639340394553605169937013941176931829019122974642629727882206960242747567467059782245177573901302892332374097896395255487440282593607518991083945608729818540059664714539883381590524408207179326886500008696537336727255352957229318027559864106903358924943136545753635547793401633293625878927456544649687551006555112212264949222381343321676805093891996838319586232619041437416246796533311155567717115096495710307034983205179722323375571528067573538532395054420162465973024591240269828550411808821661945133601797946728787329088360048446897532449108144034709314428800951044074183413035898489773877024195705616070562980006713593146443026273586556881424966319645141505804493502223300186592184098632991713755969450400991053043968581557054591539268205019590248637503915080208856220818767264136132137025107678389299341115676568216478043311244992111251676346371342624342429588676867800934963056272451970871532597708248949601647927736818546162697127317682206104362399207088094720501802307522836531936039704828273314275602902947702034100706728809544496638216714008464624348261666223238968947966124031939663239883851275163351797405702695303207925112515433108518977533655385759230942526757189401878644986141007526450024610454632084568028883322218052753713764967350560220479499009930983262228192774814863675891642110961187535365494740791461555397957432220537061167065333644224575496436176434326118230103336624880207129058830967073204562010873273586393900985270475233603334810915307097153240819244559717123292722783366050701142231626323358164588706508258340205910381002371279787299440882305507445241129631069679734953429841288809033817237512554530845913599170452363721187383466149038817722048782287822611627340741656500718843650401121597719484817770613496969649016482630509758265915853865943129320174190731941113130906154611569902952448608066353891003595762552648499234864765031539686654276256611707470909474667471287939618642002869404814146600604905687503605362873125824475325112058402463678067192037542361025707331476381110779362362268382432260211459394178541459878011809786460795001038592416569491380954770620724433260286052765127469165824443697161301199020285015100251473413914021681945303798258781343677554029645476365556697420116236738272205165675165716051699982842285530974468523171710261542675212212887011695593546442350443040090153801402180791979078779217671786070194048479987561115258299811185782399062588895779663881310183444120522407729311834226196876067275529873297586994596955461372976192959034323211553417242616528509621330454841691828858359565848910595002738421603577454990119394576672524991248587996306843005170861528204622385168782367541384066286181726944572688791401694317806134707399977506053528531512350094518018780784755219278670319388338278300128048245358357220441899456815622328427870879917212788306023028924397025743078099390661935991077137368559935720389805508101856333078025898777204134471377059084504081527759904830627502153597755033573785516953453953711602037891569402748493226150185549921954191928759730771908922827138291285175875581149680142255336078174196757358056342937374889939045735525388129228562868456336361884272884115923021070507082875884114575670233175145683932704837951562441643950555168263396424276992943370402664099529134697048530174509515125639671709641160198897295532676466376877579188886754094997795043597484461407099526959324271955667918644702936687953039147692512091456509738386821869510872937726325615334477792568095487666410033879694285022011383539969742789645516255038413073218693916171048617634499755971089737126067339764384173448730858278506727157745319770410207693201101018636749620633119361572226587832626852934956299868390610854330217414582899702601077830578249042221214593628024301340877935823739724655835895773523413971157976382269127149692357389600998620383854714197298199496718193930514683385871235121620752752022126022593382147656826878879657150299112893746872957036961969019477088382248298694721933519844500749875216966734740582964162313011099319363955275406733964238054911350331589485352534572764980333895253985635893774047927638628590617062448661425335314113594223915114413682350752217903986286254173288168378126245680233750845767495241917759494621524976405175727297517518837842201800696570197859296050383747686287815288945668516930187967909607609374361464818877544484754784983229089825390092932134265254729349996950657277509193183908610416565005900424702058279241356036870475388459257644457714652378487947577338589861773638699622704542731517603233465307805551226712448179582831403933615066606232254961569300756700837688614519925273382058547229605352805213538176619440645706938003564566997931312184321051814099880873869753858054127036898607453354124076322023207539997251322479630161535715792493704636944326936632524179750045174458881635680211091947539020476065851618230507101614334094256798707285098814819483566723071441578801180858337477505809343905003411433272598025731110891606068988806878970458781824867904768680323985885262322774335671012429982052577372525448924138410274758133495597173801680701080426412762362243204002792908377554598123492364163259382536786037003315233382245602485231759535389209927294361937803004744638380749451388214300359406386003082081181047288098662469075145805639343914097690639496314647569750960022943152625443138689705713383353831210916496231714748650769349005457795400034168030772651848897710288212506648840431186933132777411992638291082084602873117864420144163285149316564442096810841444792939970839283815824006628785427655030531154579750232149990295158611013161953443962277383988364510546396862203822112490920083222505202245156323315140901904862238701808063822376200959613883743592458578350004824658801131824833419481077354236821209108956231952064356932003277946514916080659845671092540408008841797732328205568982032662044576088662378409793636252010406041526522701682470112647422881731091675113493014314436323365604079718859332237631205600531485963199974439871789811151695495255119316507285402049065274467519443058448391939578485600725120314959040490931684964185366647559899756876733973090315767924907625398168369418729178228714232639920787316826943526296838808274181289021293595815411632056565538606248194711655257573871538010053801605036920704091904042747522572080038715769744969584002317490327372158399832760217306487230375405783066357161125494494563291099306437469337841735179057236723202037428047880619196446319202707824994408131912427219548805180293254991334301378611979419747848793746328199527556025656027189503981826867112458809327472581445821579254016908907420694083427227125007104342663751114108095283626957191657407441571485467554356531937281296018002847999451701979394720031650683757738255444026930865425896741141758760705582321262415720217923860683949277889598549179095209420756671981927338583491407001631039320250714058517648157536904072218053591061472364132299974441800625629982581496181365434021902204222975412738559767210786061394987248725175792109485656841609501296872952565350725592493882477686001118292608444006398939080457872755450286957775380212091091005141594199080083288238784660591301779971071282550452352984667366932669646986713471947700405380503102862853161560553572530258252293720300760032211717512588561678174973603326818388668270121829681540730717488811352890275981438083759206268851525412747024111437978563942201744781378373479973066265354823980732161366635835130321061223491562159982678597206583393906533223904249265332437203021686790061230281675297928008021052377644053178176027479714057758541132612904079255456996650568906182751218709372805605714834032603065038555962522343645764185822474062285534700673569530404427564281638364865156258570460111860801682478848998338203569794469847108243145254445638199381802426763673560217088241765724526981009092027367369932848953809815107555951698137071271813728882978459341300217902060115977714096473200103944452719900793976172417083393979396637449180032082025376072360662651545664086241343336732738409175349336720336380058095075671970028562076265462135630628845147626743559197718690723653338065510446136921489380308760008272052754612529520089377938472543229594300887635565623280630218857777503295274959137891525259464458157626835235689140126908134917303359336898085494668107401927493552413527686701885405249879571224923145939001100960058905828999524962002079753833508471199888010193678325489605188642946807932154700067098322964137991606861037256337986757881536216604340127870851955343447752052074091816948359761100754853577786041188510961742422530004955904187494297025737430239087692823197700478895169468765213192117705304030010869087234140915979194996476831611470298506181417046649127017953093581200851963738326449378886644084514243114783434586712289053616513794612178437091989579790084325921741449900476095942588130241841952233653622934302473270646107338231822840406193657512583072145081309829210145089898462686986690661989852394830049491690217973286515964589593510284990960957676634103356882734457588554332200068584460305952511991644718563352967836427178866594085943004040332927172290088482110975904846802470068278625266838093573969121507097215713980926152931494490940471112049586572340827194158833523332266896445627858970586951193049475095105561768090759340521818395632639176717913628346468077373884496788546130909495501663816327278981963820341065263628783753316608206391467550135932305781444517443578813646603232220382310276936701277619094424771440765361948983755134216110485870829598163327877023308024328487733394367305933674437521294359670482875069525009528293296493327704906998067307585984699360137115125577887132649305715153871637423034556138336031845808953284642464968028467820777242204537459532092835722447321027041464819560342932009740677734706453093785959451714661509690840386558473369547867097063783795426403705049364783882227286895385334143796992627539312703700775595377436952951514092869429155384934772744463156272112132197787864375145484577688814046064618043163713856239107319003742128427465112100151997561676509846772575439107847371435695598880419991935742808707144411374750455026090404108741798533419130271527679922613447052370537297805494050873633374928721705400265030250494931384031134023588693678757589758905048854686892819972491834150937452518813964963517758702044869411099329415243852071755945944823202425805366619404256505635619291669771426629884769074190226427876242993902406960691745150515946549433776942424663119443785804981042197223547408992299706427146307776593074469090683845983858322069808829907215859867224851545982471356973170962044334855033398113146205799319631115061339872825572519198315472275966884150997012849714659448425807553968442238180403911997875701982221774512634860084443909662933030713103732751331792992066568521461666398997779684919810003743416080679603981269241009956504165165867713283227718232495129557215038346029102436599547036140159553199682024699851923647185010488485131738718379048853788492103202265531791399824916738277813618832328500822633842988545009061712202536562424028773551503288989279902768507352634438711142388180771570620427826125985993057195539294520379571404148012438953849547113371067602976562213194765986238697302885320623956946088782419565293427302111181073541224549392400524462829137885003560037490862283319656099157603487677363689355648539615077110847294938813440067448371697353438604089874207324739405103757736995838994508726572715690885480422588687686628877973941349695768745509867190825846691299334371522856769532202964056946287743916557322342029617280143687057207137972784009341697084460731988008878180267390938009060234992024904863922881496126898412032028869261478133469482227309139860907236988863018770833890145181898950750505427894257387371206304758190902003164903449656370993039388974467036362197840225416248706190702592185506403950497949383483806848044454452444288027004779181100322827744209812591275493578574642524883293292696180230878101898536972829400510569064431271459506321585093532194827105618519371064073865193095909608245794198636720700583911923088473359072471047451860375709326196527304138461845083674933374796246116834305788669965380294178761169264852232614047158085529230838043228929295000247450661008824656999657574920399670801360980583569059912246035844511244575013970870606455035605505351233968343880029891768893817735600030590184153658741374221163639222936449661207303886120663466043598028759439979877002180414192775211449097554476520845967096133176237043353141748111502411841147445864199603196732680838452617763270400627745346582996210322611890410119741209434889939846701077771991851150034407794505554389939487431934331982412790895877741058963600552998171668365011015452083655548370898205736927553654129697151564394621865106759006850033819989591790100867180565199589906677872970012743188470773440729074698631579574802542856737277435237785206481579672632551421685867139033111433791410933938614374522182086562612228976189967910992039197829356024311868041865987475720803353920112320035653664353806464690876671626799854193951100296845139131468189135131529843467432761083147239799403190137376615361426772386058979610785255304923864539488531815142612679909190087834327817461983824689253786327830180773235267632330507131652842468956014254301811117225463965925030542430590748162280171479054552749309978282769893318124742840905797111051173497429599629855293826245207304643011737115612325686972670260283815669117510054263477309872537506923313285862218837107977175223045230526467932886173489733049309350336306523499502552147945044593871222665690240811672288925503828285087164125913440053608644251692608938931287844774116699016533262819248466426421495398739404091182027698084619385997722679229058475842908369195398641351495869802824217992249655414802663307782197115544388583250536748125807087130774859162099434889314186261891472815716406381599185928109619339073858298160601399048382523250897778893084560275394218554274743147544952915869063864342997541827461061327845721031155753768525948082451393718401566322659448014924283951511427507392264677439568594317794216718547144511466110147225580052396110421018061852054862631408343305238976456339675635472470148352242057438545689457697720482073556630617915225900054283227615284883315988374339163196030355927184063508754587828417564117700095478907945551516004417891970483745804437210221811551813991951589796860363467723561814632858234403509171052868858452482176528611258226222947031190751496676010293857696378614410796016298767034355942580700016712278724421179249396321185748829870557636706973594054841867678822285863451145869965116713714445977351896581883603411885459543128244216649728808808701230349147252478406056498023273098231860898530832924214906898440335129402990594434680940432401004342608931269450602578421046632314140267797010246299959144901032496429155741526217749716489767396369387998703170612755841387651490683371930518149676791632541710760600120376265469778657699567177836792590679580024891412788342594646708745376136586055336020023458078070521737391669832792855160666526498920327463755911701714373685652007377677859584253584171977960250714267690747538206492243866875271757173873748500890804853212637824000723118591926179559317033986045143930321596894918395585023819678381997563766661854505819921201214050439904214793108046292133904453371980851974769726522446723621492595121134052264738552327358765574036459294996461070633192680291056116005623372499265911906001648613766936333822537079683701690131681366835518655323436382043151743567420747307707472358485574325703529909243920814669986072810697918457557448326486294788094456645886286528199402761694361199945871674044176211318774256619582664968740774217220388623555566522265742570297862483501975289041481930557840793918437228697636503726112449095920810006109445285145798415452052092253483606318772363664393176581733165861221727648772997314787504036284437382697950770243902220814909093854764644430361102523063484314496576850714647101389964127007614505066816711043490209657897204842197908252548754443142207528430133931647388814404925448777834707956331829577999953261525772898554647484446656601971289104936827847301386865264071937949433235800472724171297557960083774953637911428241046114843502705774161522474993646523158934686758834682920439548479933480775502919377281550450120420675552216862144925645608781100096700825623832127580338580568626201379478720257380390104859384605196065902060822225004771392751415079731558970834464435419726201406851661944791857405815700504325310292463675096810682184721662671889102374172415959422306907640341850704824839486267923965319098034819523076352191444106342717884889295770566486290205194258592567568278062003518716048286043779440636319898542723017032891485574927846802983332125313869582844904583226818620188997124300193265616676627498870909641404815019234010967790013889929701316756491887310754029263175673654389809290655139788249649606483127155110345783379775188653730831362227198665954529277212470414399727913121663704345075725398789342538079426446416813384829999960918532760148367293305031292954794520502973577588569595512230152268112427918962147665411348260185559194929218459956212961192005029900566826749710995976423214855177367126849391520242692099483823638123078058639136311364165247690729560438744542820253058610258658068254160823597515312013017891819990325451502778596738592314250907759264240107636466777356140908524670342013674756273182283377975986012554760461748755525385648292900404149748576331513187603122190004263513779532179365909562547713322699411601900402702752221685772726663265472907934387378609602599683721892497466186850921615464165652647926262433877206575264269641435755576313183557199430895700860413167513879042685443021246507624050969252794469166208746251146401281343487278008851575611256474217583225734314765279221988618893564608653586074905615088792196008977478794839189910556634648013270209387905501314847410100901915437110686744524682620397318759515584270610041202084850150738425746306660368035211972307294157608183038171818188959848683985008699663583547380505898122264071404580142757190356285570137890710576918854013123684634921566303707357221608852922026031708962301905459775131003279442670506470598749226560590231293474750666092623816688559241258630613330358682222076624451544869272076233088022420872727868275290336384575685225672956990488590774882643122552537558344119103599264311214722154600681903048104922466538079607527214866787217656649843919093979369795725409183559717528730173187603299854458538342530984543261633994283818870134191744532164081669210560772578381885100538379820434096733473504046668646834416744270804134196617898316512435733682884367970041806815714219372556235121938827248511487464881168788401352496990674285654771572230241651083997587397830672329069146418148579100789876303789213374808466345121280441072794424719872534018852231352590719515594685074532599551871782977109196356536391972424143463467249734594056433867154557763588828929029620980894797365040621969827988630856820550393052398716963652628279806867894545059012176173414090388217691661161881023012322269342494940899155336078220911048060457332702540631098425685506684962905476514831033310968004813542973501011787620597059854945562636725122686101439567011059937419986742016379627930594220682952176689689251943014769224122628411123416723899957887512793330710505738648049752907067618481935353524829366078700537767170989702579975568310198952726941261825229148730941294482313678791724211170471148534687228202858055044255998340646500391503095628597288979491874965830649573524159047537542852267111967491870850034166426368529806733021865515218598669597666046327989935466941275946996807948827928503438576325262620095652694650335665659837711889483350634812773920227182867943859911260358183468229809811786782845445164972980572161823813072093146952393046132034597412556337240368158443622734880971041738062087663289212572842593434408352401274928768362931742842384236084930803621064657407895024570212197097031132811557235815904670896411731990357090041230744271293950290119696051550001630575202121530472640864739379203619097265408121671152675968751503647866726604024214454613891745477365556951671595293824703273424715285686573258819064263382063253811774375167219674678411917732476140568630794132785457764016437178511439915486886911348089518269014027832167748359596533619355161275630605400598313534219824297168474404056239817376953144259211916372954831862625958869876207593719847398512242633599639666366862931511720851587963061758491592649951977580536232844956376796580953019603165154276839850117956687326507871588206563921070144062141636151747380914867158656606995931153395844436342521492453479125700761992702495012349939013682799152773303419365255849592865399250228509985928215990495572615591325920278469589126557704194925100882405339920862423769249178338055480832927222662821006147123073334924992869644885868423203002294399113776019666018355584570039528791208510610581886788912924986547500831402916944722697346266034061921181599565719868058707877335929536319208185087003313752649059375227096668837119454168241242336781785054666909735324565258016957465239882541175788407598160255657036316498293446522736953399863658693267440262055683847384589592134252273868023280965534349783564786464429455367716138046463956044810285949885756492455476867410613401362009745440583489824428442495852417288802885950231634606163841418619208832758420227055156462934650833242246936081036298963903939634735400570806185372960904793143655619946446851706875900062828028477439974157399882594252826081011889406766404358548197117870178668138654379536749209036142698991991325768542526877941978671525672020495091186506907370795331568450243412424107846873732732229201731075298708854364691204734689745181969276583040895363945420228091706647910335757619508759611105726648699641901593435859706024251991767880702955442275580977037086103057403504998289164462277762190950076392716639059802775925440389131526417420940350624108409349611228936757547627688768968749834812055823461463389699444203890489512886689234616667173053260653679455673286864902509984454620891813479776886172170546985683134817297852338548208442934097407326458145512851120603089406729887330231468130209424635705795491444786893499560991625023442536808640329478230656788364430164961621728951640766918189648605557615391062422633417721812144029685906064039664444138534754415624844554319659249930817408073950786155141791835994492744342324360134805186936037705197752196362506906204614772045439090289421002422562638765038948017044184285377509006313051340448462862635136834700153777177456258700342773296240327692101321603266391030556786042704764902735633243464309959468127956913910021996406344972710905978608760903853660085115792624978866426269566771844175665712394586771024893352811760809173506386965734547973081775877816791372866860652719449290366679446046001450514103872814131347206961709113110355412715910337871268431989260041843514146138154870347826807546974047646833914578601786632445390428344079178626834877703306204586263933312705956402265508832739992650073500743390980024343196513948982862438973481831893134024094100216943671385612323846160954881501691055570173284263015085643133851459640213166640699126315479054638160873398120162783829092335939830090872046154981811913530032702211820456331608258272698126013664300488943615904147767738029920552144741628856475896976852529153738373867470757734979061645257969591235778847150299799125112265973044868506821545342171777816357874600866265801104964084665166489908430345413123870893969874040062175868453295407674377911871752793623257148038017139004650278543223598398076551961521132122954894168648172110318010648299553162595673150233910882248512124049872127903830001322150033307121773041562475899110318496469172827959330052591647247219465760287394462537306579727227604578058873436885922157568433114157858108803569496932605589943284009172240239271682558831353409217088497548923265037816706520239479659060556570502949451287890661855482636857926706611114969119569590965086241880542798767890716019702129331289876894093980131976239750079744070119777855727062203863636042878269723520669350281652975707687231424836620326926834306165167941282282305762781404547914198976925958116658706662807193369636052662228623175165279007327879661288149921399386718757544578689209106307361485365076685206853332069974825812504762255879835581039987511259098210484862374707190604722061044737110990197985086160982170544510126289577412010933653551992790179175171764762625769805884780236564352245240109194322404190621490033934227810074671513623658460741474597870037989961112522150458516703124947974275839460633537475896354682674486196097706755446663615057479373824810711456975153865163024748794656162792589371120500723297503296700577747823909586538082270324061592223408757185690670902037057859048453277757676386812324033577795330998770178868040340972539120000593250414821457636760288336835903871141005556280694948420794379080850604289200797905298279762712464221653393243532588531821195501388620179231791563065974359632094017977891767196703557121889606378642126476399537830579237474406660752699668712259545870875652385969004604044428732269731196987280356050498815417399661837970221670731839032052131802855249905224157406491262054596216583182236177130460236178613128245320815306935735055836625285735807677966670591204741760143517153218301757015534559057539899089835009871159102255785972103996771674133540319168215448925185229534017948006919656340867733636666939486357499716636836415599421921875679411671136355934485556771768950150887315738127558387842527809019620289801969804572857702029794818114900620287635619349511829406869133332884685082832468878654055143458075579447951821353549483539004062253921970960593931434673123628271139450203171234576520418851128351818493076124432832989973804393418631469021192827455043668725274720575085714229580662880753972563930292070236098480814321968454330479609506060008889851477310959943468953934516805817325421574519284334524933697756242640151812669401079504492921304493994113115842705650796173933823015695563310721731575562427313055538560663267266175375700482075827960067321613106914773968344905281138587874984322856286512807668749031734868179821185048582436072813570072976270520690713375390097270741415153433701964599742271384924236529420209584875333675320307594967194718588626182800269643199791360438288650834156195604158311427101052360223990791393561727900011218618336395605830771254745698321016331506089028891158365035979392037600013211150850787227122265303975892676672142770819707293819223027666466499818913529556289880638988722523209558279663870746977855374675745248197211384361496207390540686605731530370322303606275656925674144789425713370931655441280578084175751228185727777007418462915315475994608759936410717432309967411043388505947256101088333269552362930282375635481386433105758539597613082148576155683333927188001876399518221700735982824881302155971543162054135854430862295136497093802823357909116768527232433328279467219009935642752269621900782489418484753866163908572442068474755041271828691405815772312039352913645027700481870162971747784358722791183411808504926942284751657868502919782436290681441315398243871235052882723410902870057921994489344180255925221111314002996325606015636447791648422226821547302625539795909461589032360389189292943642688610322882339653912513213395456500524331811865852416844365817628083529012030381033958958173913353539095321226996174546824301935868906472600793960267861305839602783934602493793271504490113051854305117869635958314580090835373389426875731003332633244063726166443774694398178255933767755313109120732942037623048260048311034916204212024660658799724155052382207296715177495991319522824085259020272795236454342306907400338083992390312979839196845909397502058379938837383372805100277925499163439749485519313991094086598322538798946717036979960684132532562781827548811422647656364421682307399817184583999490738403433847591727226784046858143280444007065513299035753072109047667708598613956265963990723940300726825647879135541801479919991241636264746602040564142253025497897547721782329984808079841184139861505619509421969654580557956146359495179118599923724128919692927140198651490394012232778974070623202990539141557237185365969253137050026918834307458339738307366128874056520996225159016644920253366064393785879437042315586190301793286085026809456685728487678357925100999231387536090980965689885064747779664304901340595353163065388259675924865141571910355418080924242663221113860185430728064466354884571316188264400502095664899551046578737227587007998069308338820324948495201502875663699524873642223107499701662575638272333516483371495460494841348722362919546506342710564166988390198892747178558666667342887570634370621804428784349703125936239670685187046990802139760280601765037751110363288545279910527419942579529794126576423737083490777527405281057574322119305591496056899811460726784322815362460872525437647088042139983140579207036572036823137076668070906935363274284955917263189409537772805499679858561619789622719341830268512647793274451386439188253281577344501408973262277008573066616090531674515538861570266877043254096444601986767897567905367268087509467584103008917220720012082972745924579182255778950341071879748502488297049164859415724150602548776403184148579517554409674743636505163024864645444285748048982637133767001095789914821042189552293289175516360832483353127983426317526418671321986496929155897455537827429619054223127099199916629158799178600461482882816290072839855980353664653068283570876927755640863631417717502222457093362656800244395146562228772798571530905105313232082733661607318353585362190592959514715536410403613751793077658541865081101927394231430319049690108150727990251046503417690102782837038594754299773554955667896516793092056692709878054788840987140452695844176593429932452580428576841935473596056889406398976771446960865777220869573721444299583614691326194443458380756297433627180820583035952275167925991712346347627324262743298525651320805105398138042668906638223704582922996977962630506713585318712939507109007470520463881516964026549845438608249366481876810724573827235849111123498716401709084536274171935543086161906425818598599884809094818530152239216784870935769328958344364408045993497130633945682606070527091250239372141904471864441163292301434401160822546780792989463154071986051826896544345850667764680836993624797542728352397928652994488226493303073652395549870418968447688937137485385150591164973471015850488344034701540192496087383533716889533875465204323199293682209073468400227150694203171641703100055885782010213403428526823003731646887291259094124416637807291952363369727656986545366050402822605051368632352909508837759669684598816408388573332249578990878247516821396252713124284108764912617104106933479259017885202733259141080712097596782732640428940324735315252997863450150039979568958286398643737401140149276039852064475531250134827292749376312490306313483029911681524244138025595849123553349333099616493762608550468243723078121374387898995169117963778170452366457295802330288642517865016093669928366117620850546948493068260981796487380741687512146393276883332710587180595816745744743562592001009169425436497757251684441459360836746287829338343093859112227214995850726753880150111925074169013948550034678011034652310550581040611070352472308209898444902866607204507272609647820117416357397257454537058974313273687580736432095528420818079573407664363614070861135967199346922098200132077118702031045189810979621660041026004509690520061321162936093345388759106940226557402302820111785610600586548520004467344530755788497230763800998115969106284314782907255323873514289577989189986212049548285689895599325561050486119080213464783561500793766705480098218399718967060594805430166343226314668494674858256894365057494278750636715901327987489272853611199708380169675027746928882201902090161518938963415046012884165617579875292685031775911136150527148182125668345758094429656288062528400960144045905399604687036366201178146130343057461660551903036325603994798575763845295183417281391456629663595477238897538858576935093257082245670676336636210927471909277169503494819874194862636896615286033268908070480987889831714785818566691866241642386347594216426074500568817885230534000425446195584927159259529313543241716622821200275371933501908371203694973508813769665745265275150704000829810237001216214321091704952761508607673862480669769334168772282683502552310753243749403779788732694453953135405972336792414051063039650050558340909442078004504609998424117478090151999737214988605162890109208125101033700692382568644901194624558371065959030345061903342748281457008472925760006604099067060675340536032448357753231797253694125037013330139347728499832652263454351913037208018079754227236514785854818096098097227607713173339308001975477821153711841068452008012180533401085428680552738594578914992230796757279425333851163131828615038677451238031216382550995168598010761454840944768328544632998689778156061249401356992176980388567775269173318303794630235867657803689992623595132059040462914887315732595779323706448051111803583489226160611830414895264626125324766111745799645365453573084407708481003214463883360066406146881745832831030375871857385555588002811492578250700960642499043956107127011750826369922704037011396705371802207337514553397197028639305687866477990647191675983956262054495517282279469965296918022836006846630744038084908335836441342023915747221146139027700334805944371448022720049138383292819545090109328643003814854829891708851721261155916621534187824962424568210404344421362190507590670859429007880229727715180936108215767711744856974574717513713923320572809675851298881463478985860891566064356677023847377723723623611488796579305996616544914220361167318243418143802065481921785879988699219708466925221537899762191581104050758291225132316124257292681674458890243721715928645965003411580572635318998734753642662909899220235690476852462823883354919172119302685450181884912114004491491609723214879919734538370383845215914287776580098223023051356921755882736824302920446630736925952356112909604587407117109782242537109153106887288030340266959091534555205158516676462693675149809592057717926786978260734313973785027086987866671137361794519508849143780501647866468384900791462124704141719187364893467293005533498545529217371798625003538980664361045985111283317747584769727583737040874721529927437100767812441220583914895744170843315759686621444400071681041018484057040443316984824994649475625675811812784569606306503175205792703811403602086060739148595824915689812736913139743260318012696417918633921559316749908859774740674933428832654426915614310269396013957772667891977998399798659066683019276231187298710090468021924793266562156360748505029403080089036952761783975049674405250080645360989789878578530546075030331246300335382811673340947750613711107819990229360294540597540978962205355482915579251681845449673715333191994896713912872208179718182315583281580952367723461429822773778664542426645541282254495454483697697443209045676706827250327213856487031732427053317240274387636677257290668109222815066634270742450514977616611818981825835748210857192837131505645973887281613730740046903025686793611806568097809683801145932709469117125849022805493184625385864636139766283625231628085938257946864394043572109541380216917752840721741589741173547160469567788161676009830143675916772962793272460860074308388110709136273503869474684720714890586566617702358310268265495701333107771747668257586592916663332478829333116464443034962125112335985672877375960291503597412667019319532565951703957042431638405326568669268740305622665500183300599364433609494783427016637664215400817241464162540217768281588296443308074573247309918063887305224481381822116120607771296829445115026064081104686568032485569884721404725916749490883261886825555473457815651184201810343663022837455890717485267809617356515897127597198840816885308024638822624082059200409494390875710796292025194658200486564812831405986066057322736340639918795025749864926803247432012393455476927915275796963865585907830470166740837844063475658633959130207812611644729018638987417928294850331037305943442190193319847251051769511798527723803857052432572800624421000197317536662597305518757447708284904472109912721679811381539482787437479230119073457238247179184874743136249771424105754813565552612162618748750295209522392047201651678875509630988992874725487731070877072156116573455357941264502767799026392764584353889809021491021076191576686374880853752872556816437821586332134697669805322020097713934480839349031973799688199681750288739482743543746557055783992308759827225735877563236092123167343394376375523189539988592137094290929772793761259187024731804423776083426709375181928045411586684959036404513446364329305308565455362939234898675809080084594308201489106284692280271506782657158068972423661778277166285877120218652681360699562527271666990762719553785395949211256239222091604287267800437321515294182945524338960117046354359721108369152688631850982081998975271901594357410326241963553070466828737247206820712781127263378036555504035633079285247240906717313385937261322897197857740115511126373138732511504589219753509607298144816860696284395664437950818383687829525580223297108519596822517249598866246415128840686409603577947431852673506881857888792033003634304660130734071038944521688524145164578359420701911562607290410188924357971677314648342694273197765053074418386358954698740027133287523849902661189839728371728462187443034336253696760058712922618468311801766163242959105480469751161515688969236635689337151676373255441333549627413680654288705843267511221581628312703837173784818073141775648219435359626953949366061587785075480516508139085026889064653355142245470734250491889467255461850818446940647760223524415748647814529193777419976277512271882661692688705927469039580507911852260418943188270922174169762075867444334047115027788968788809822349282696050262487825854780621160576661478046132504456769048782382524850770407550806252048379926305112878911491414115779591698842513754678394284934858708055822511364992754497856083934447085155425262886358431433300666281316495126626994053290105165108518120913867174183743803204212213755649733756416409988909456795993076545248460525598585677819156757216838532418492461120024923107450555217357586667084784788854384452852237325892347473017217718681250682761444598640968687954140493846582702909516215048527707423909666840557967605053583375852083149385477994586611219549485194057567637779030687543099564559106908655727750220393931681766519098357340967867190657849985828564045040385958996718969176807386730016893099593257737916403047152232486511678256135002861114612625107873357568057883727218895688002242213713793557245692866088036934799004898050781453783798631326649988428112622064011043137336487402932794539078776664081498588616633568691162278313880054271271183048779139974234224017502220113166504103978296081711070353073309943738707061907598811294879948364483798747524947732979643685961234704385560689360072836903016640926135418703761073658663643273534541664243086770336228034272710582170398856203084151959610325313376152258087815338793650839193834777872124281593931138995426280154316978616944643781221810041911143874821278859452595005813363722823840842868897979560538129501809595472788962787626950791652522632972276139695651586647527367822835830236659969769121087761176589089217929769713421656429007995610347647034064546903763708855502970687810573711296267799445431804585345111368374603560121541390580322411813982334577450912746819840472306292567678166522619919199103233637791286572318267396543325984850856951800700365063479467056883028704003457647604374576635587896121429594749786703147670503610252626225392508539925006233193768427399494487678502997685872856123332897819981740641751679565801181287872859823135462158773274423745385874421915552178778656651705709962211537878281569528759628373777765473450209761648130621536914925798187312830958477295654611306496231051019521822381606361043929664725022468481491274408539475136089574226238504199546703248295482614773003452366998280596279641695652197958718624068314294503587688347298879193940849570575585384261350647765717703156758523722858623642879186954277146901566415328178671956613582165013092249591409906700546782200207523112991679367503106440300887817212641037671026378466894361612353075106723546139720693879402580309277387918190724844347928127545373010898608934090096463198266446949510482921374044856762441291488178128883160419403484215641705200292516205375183755115513941269535250776663529824766573914241285451305127671435723579627233482163550932472572511909264682549237244286055712226053267677558898853685787696467044409259745730538172958161899256232301332485402956473402592956572203675177893163846190083362479398472740044571764825724591254003938812960163176442384499256728063735490566773301451253351446972837742736673804593948866926875100506486703420783282015070267243065978541252654919314320933569088538251841272152203284276818274284875490010708026610897712450338563684653635296783154167144384186365594712314864728949205696645662654582538403700867294574686050148595319700982651273207971181654956045621458581054793652642518463202829043078834046382153976018133864173500013240771540955213594150057007435394421473758418879628832414326030900909854124741497009074406993042457114577191516047371119451449912273612595632851226032732831250281412448036432611163323231087581235152332806893075076866966976814756491168305713768367633572341269399322028125680212267479593365320645040601086102973652518082399967662974516272880236514968105606316092475977779864597043472594609085557474300978595770524478638050398822142226292077470118760626148456149233096768775616999885471698160772650591948301094868896756100319877692953052842247391118621291863033074500764616340729429781198968334736713644274388276707051050104628195539551331930678939343120355307151236614025609357318816242185105419986252917504900259484466297748812051615275382163662412792310394263169147643172169503655926450046845640779089868575080251356713309327508045308197022919441153677508135080047022126147467223042810199771934934356400431925211024558948687353039871462868491781891679543422344236310613737719729093587693570043197945924173510266578361808477481505353548070490026048732912221038834669190521878822096090732420446729961773533870530325268566406483234760295519377154468113665525532246183760462845742977272426120710863175630327935286878390819341854392179993127728664126298608213567095673842966325125158859399462954420079651201062383300689564735424535125827492202369283996511144851896100657080557494146945769946401746633407662157404771933240093882058338155788766393319987787016165667181127196780138671396956519060427979191384493198510280899879099740999746416757841030631090907632384817146037760490969921589966635436881925370935297781714063591560275712421564033776553541885589252047947448844417201400893000720370083626109677053076507243851154265723225091147889371319453835373196230208769505875683790513079294728953394610178082969651173587872600507328937531619769765601488496583444595021032799103657107548181935737353100126701515487638243458094049461961969610673734651443491041455844423982299073256320311393340176224314601167462139685173239885023770721324564101886277828671302279385786841958868796763094190102890974104204863834684620026380899684849356281863901175119665591768951364304331356024126071119727536202784335508654501606137257140169870743376061821680221581903648193468565349306392345122724839717166459105734300391849037617335521901917063089798138076213032300223352968163526012991119365050774404033269088011255282921527590824438262842658449165691442260314730827447148208225109560726374310921508011463254968885165954380966453660995556529746478570621292386700407714435755074485587233767779424197364441787505986539776655539612191627396448414047044089040611811312061623490313379972207835549581862458232148089416606945865590767514194401354008160241817646322783519467617512843835665718531832104769469943394053032197224096511969604839709974403661591099318733959987557121854902171915029414448969436663575287073044151212015764690093156582701068475488884859775378896310880697190536271048485886172349768317392321103213167500080496215443732716070792720046372551768827760104119423572389384459997780298992312092962185203852291649366680550252851125839835107670027656594518663569807967669732463192933283759984583515001624050452581675830618260438229314080856272176262224766950544500467117676499189310959389380943435980896517770217154542569062044737687406543128512076269202156212011010066861218360144893157222242985512013628392646035435706305012756658563423534802352898482745910464134216376138020735356379708269954803583368804717069137423764282052536674416778421045054356491461168148275507802254991837573290677805380553942428499857638141250425611896162761487790949905017776373982109958783343541602319248315730063251598425592315244824956589081326764057213377838501987360012544582849771737073592611942762040255482960856586201758081952586309631549678454243899964696051703235703407869848532672135971410969494550862416182628240635196889853311829911524913070043662870571110600545794738053505254422159592968524402744742612458184648900633868538083349950975278283249898667313579810218554205969898564342981571766702548249739087412587958805657526735725011563913423795219102846931128029334056113407980175612161900879214918574411997007086908570980179857343342432993209678411036526266045165742764312575315511797650705497539862153332926572533879027526471878707851661961574009306311443187850173012897589530834667014071572640198454921701559627786970535955190774067455129301696413470997892503584749049738501586125165710563850305133730381908707677099784704222838490791073989760268387509018617781013002660817077971735936581148264730438811031267093314590871269802305850575330661801187130795329151960198510425187053713467709250387827570823628488901595668276441380377054981841916955178057346941216876894530806000449663989198718277838871904181246389273864989482901662586067680434494756437076050822729050608337350305032593499678708360615676138546058568678729738256036921239677668970437231947174531800999521398905211941895450890855955575842488777454262740685969856293391661553939324448197782029928173262542941775684986813763391688847926738157313531254338490235649552532356518279937943322593975543580769489470296168854762554872791815348341781038578848607399335642528955832530243039652688292866780407442641638111057514903211712635520737834302301946642810322548641802944786642469685587378585585152955040059902160379602542863929805813494665015474281360660683530345046529032537019574141442010193814521438542771584142682123248597882971916969296090450298532455344047046160347957359706953371992352214849840392639632592051582327910120966002449582127974854081405610066640281046533980557612976579233458575343527796424044039632806633930600103810098196827162316919212013412252072915756137564836524827476227077732354455593546396119094115409689213604570277651211703346235669705309457634419213919277849694108639926581928157585893340979447854469851643037826477536434703722765326703793596320160097617545897306038589635439241553458991527455899871504378660085124549729842009875303460107755592906124187490950302462644977197473770353047230200442867383763515701005991342399681175022828094200121197020529607904216039823561747198502421615648764603322041139841676457579994543146319829298099975984563525362743285241118068426853227407676014228322904723575112634384351649359240545667029246781213373614508891852880619258918662661453092060995019501201656930229594871389478642959291389573125371972510893604919002894434515999961379052466335875898942417805415490299959400698709614443853416676106647195893720529994588844068837438136242824037816668581032349922865538895732203917326232743195491171274194907417086616228749563980798043252636671138462018739960650754190621763356460545902093023344295007479510938693870489070512917211955200798856526460462318824246482612652237810334780838293375222716757782882370099203683394700041765635410279023367201164737717722135588313201038906658923373046454009675267470931729512684823905320981106819120760052524272458926834627062980438091828026516293905580652992325646001742451015083408083155297975701053945795072920010436194965562281866940019714410724739844197664406158281785053355764377286440956621591970028426029409071019567191565663690980301771773876863701752595458154494740217732797593898280614091186065702025592656391664582619315360946535768193222969338975118382661449291531707921240512442867290843858203044501386240793915463207568126351504778902257371312845162878393109187044378486059587816006021912065356200017043989111541199572318373688411257536703130730465051048456234651072744320783998138926033050456452903914948232361364314210388139159440677969748343051555775650536053351038983864477606098979132481821626330614522452208095193845458585308394954381748817827407295722464328157302769470386766406764044718149202145877319249173174878312963560214071590258754160284697025913486796535523297963368141821875680632729323287557852370189944231926466191651256622389215677270491241633296842272361767852449514231883235689736758059452946410003835574257197010113210154513213965562700886481435657303024694572989871014783587062347170632041422102655664287667678409154608834889397868192526697735640355186739726634080907797733341550819613907853334717139581442410688379803456500569442621846906852242330321283068861791511453479791237198950305835419936807946408532094435296170711744972276528657807036622946285007655936970319968018973567212883373277367881436616200873902814638492771223457108190334870430969828855841961573522360594181094226099205198504911243785540080841347151470412425386833862473575964860096572951900037041680724159945989982167563725334819812647346340290999293264977429558900083249759127965297485714071267295533357477508437678559963072332305042690699885936544658671434789296518977368999160587735852973097289214735105286129422593568324326638425171896966452107221006356899419381315850782892102115762855009377318388488283103415260532424079463924469190664969172757481364645714016114240501421563788945099588916804336319831887291888776611281894319336912254430285930992562752357965333578458824297900159442828203203345069917255251412484247413014590925062694897027447141692247230289102618013051611514053078432549061768380332573955298103450899678696890267835841909336602686202697847293347366657109253655549692601788453250465521522606195012916843653577976622422351819196144624605464250260039081440114875362736682486697369981042495547339501416944141631096574012305471838862273465290347283058754540309432884695321806432354235383227492546299804040762414969054117394050936864757283170678145970383038500379813105708381016129432999242344797369504221874509716651912647093482419858544759832609603847563597536265463039624016456437306090902453940148865902295936631633184189744806002785276619358686230415894355102834059914675133898427710060051353397538547918604416766312659250664227607318012545748410418465361968458124427956529251748953610615425712210408918139741748492492213739230650208369477473315084985873581248030623015452383500161827743889515513501650403586202901930805666004927571201628698354223401797541522020906782346877250048217881255901238645830242183311112200814698130255867498251195059380162289537847057964810687017040017277889194502648807686042637021163139345705324394087468862995807060419363944595387286686672001553794714855624146813605345397993391480194791852502468539240599807146243635503955102807775134009640673366837641778901343459825274167076253528957075548368221301689068168582230924142280465059325242518806000204569683101813420800159987342752382354052035266879442203823258695215489377967290034129737758721528033785864429518089759829799104575771870179619599783448652386793705037860728741079346437200108260513302976885890124408593479159451084163708167983250365454248520725903655407199598983052027644855880121351729240967168903237458760818580872915709503462648977141432228593515362971560914973397791590706329362667296643478433227464906750796900912228282412326952395916968946034241622714883670706239137857795113937962130905925880209353499241676119536072033493437757422257360802890123108661086200460502583837054497204292935012132386714175938994868843995668675400580513734318614790466566915695998189734275670447210148154512826849492301072648514874293305675352246043697068881607814133116548591480232749274762312630273702270304094719499500452073161461836128628927522314810288637905070311845445438506196047397387000607976572719384617245688230102715471565265143216273411300302157686805179074434199920283994835867087998991551201793075531780310926015407863240282712580528445129709944716719372361902641622888748354659576249915703168718355260473785664730184257596739821085308630358037764550433833307485479561985321803662627299154213483670618404848946260192194763711527902193112589303516953760486099318293328847803353789375516990086438886253919335359604919156271577386383693557920668667819393710526791787930146523078626554901499444235938844738567491533874967534837580360119433657462563812937925637318219385392350195161305908854937467242610297160540420205959965116503067982355892824634071302964775403899407134099305620789219090090668513852654566517919760831837279711261034450015618283690103525873218778063991188715702276637105980816714876861405724363832661939353670314745556735492521793397950696628552766102361265359548615021870063931472796681690903900177629881023928901893768302956227875129347859215327171631441152764374033012597945192545197674010099934799150291440982001644562022382325816252570902288663181812561782977875694800241899073717889978716001214591653758722237372870876451146411181200394363377402395064607661984987281617210692315168531333424737111116774946957642581215295552418990013837690131219363760856219333758440199260861869730702976318842880467643726277143294600447248659781324319304671346806525333301522644314182676042161478569016401177965948739823434429428400656558816666298202532524388701111497386564386759166727369678609690788082352622246978701250755862853208335218577460512697038601989052855279596971659447657325934955026466126438415117402188364042812836470509306893743383447010768642317859685748522407673753161713995339241062164731301486443678609694399141913009930287799688325878442198164014232337015729827456798992316133375996985532686220628719506732334043506574465876625537764060796717387805444194348078462045596464152364198350716123191626135853877845081942730754748018648159147554822624907599748261525236874609330057525753626238480328821230623924854802180533677122548645625757732555158246253998817406669043295038685951564407347834337619866908186051051481683229586523244214359180739757811791828866850528030383244185669884846854111677423292126622700755226807446444649342203504567540182579062246022110487092643886092889216927295347108309082129628908041195341227604046548892855072546515226701601207148974952370424339934663074183484936534144896850921778456984701310103786816974197939800820503072433159319566816011182019439629839391288030521743342643035525340289208200143601259414526149008448871586965952463937005961051348124793008589405942755788554271204085350596640676056294562693705239394513800210509011775904233646885444633243187441645727537940620697355232234653824031937453330223461866236886274926505421898401834059373878053673189355585869117042577117152635589380388490987840048556888431697788654880989905754709669639551061892997037147510114483230187023619417462651660050418369663044697428927253876171023177292578587480089149759821454388034867080185593076064403667336940602396025411248775719206574854539999575479883248373481865735229483366932738152081227392411085288562413804479607512549586937531894244598765752314469446986597994667106524225990700964246448322291967133654179482081303345765302170959711654389478890657710856743888780798223699110548284782803821869534956384988014757612786603326643540258923793860382749168784888924518110345531457321545050040062876568426023050597979851749323333556782188476355763668039650535381231481746177861410712193309696628462657446367375865266894068470332630271264837644714308811183548437186090228211032034673240665254545132557811917035014526010005398799199282033809009906015950059039218357040545301816593722434908286277991447178566052373922017194367213635856592649075676830807728940779250664025409303624386506193601028613864000514358061382230739686328340837218897166208337483095738640594526233807904763152837447348294744056488013145178545892658299075424117382367710889202108082419894641409481130169901773775282871155018635582332076858343283687195031877218504662136863838743435201009589104433638128460852498884341877124634761364722694872695839393865329764938073103465980155788645120842162105069340758697512525286933889472573805548022870343531807190682878570446968886242241380078166934142443168333060516287341449797611433816399560817478711487098911226074771397092554151738916884563468798094256090095537853285918040867875789851925460184527604187108475611352966865743594913301487806852388040945977575866401033715643662119623307008254947513710084980700629943199242699839269436210757245240762168185555752608455284577783482661784860290204310333298212051538866055852249782647754521063259610563997157659161415088278184529576020621694659537515799929724311912865231124377896182260979902336601514861824301488017723844298224297437754531182923175216865747765261487354031401147326403438233393181398428512861080844729084089583707392698780003873260906472060495244590316356334943181719118072241737144687270582754147418487881598256912160218464736742224324522378926017432038601333362703620679590669378398801611853325755809378083924825232643083246429055847399137211977676679333229815664839456169615552754615089235885643020016290927555000055248993730821046130495998311815364056161544118759064401490361882148161566067916247050303779786907464075252960370905268390849024117745687192293770196969418204091381038799795747893461300511709019556472463489289068293349346422918614418065463145951683512363406137052757198478025688818462331018424265910881406926663009013427745786553353961707754952996727532226377851447600457022552830048841952575830966635211627511947401694599080214131986881447476413813615182495808459906597646737220821527603841037732406336760604331669418111230002860566117152512435991987884746022339146634540634741432125362804130353344439417887804844002289874445446749863628859498245723612529364642173876829343706940774407354698298816017608876184533067398304335166872847912625637892006873863019483186054862778308871364444456970960874416776769738839104940832579654239279937767358946829987173861516571800574722302059121346656544544209916840391858948692229073315191857154072396976385144102030547167567921529640684260294411310046027864761491858120496373937024721253308518477983418553726188376877488577816160754878719927107410925421742331578751569961752343889055814788000606947481790703375482342325388883770573502130781981053228130346239279885402546035709909362970647233931141135451007102447483694360990748858768635081087703957538912532460397795678960764317327474827262189905158743651162435318539427884657015771560955083384700962312898792845128308509582038648980736954534719936779125123402205289220383075976988833763580846226775246412689968886031191364599218010357112535692237805710399545657995603321390763128825950778627465133451685803608165827135810245578178396085595018798834686415272855385692133339816421170739539427395366498493644338754464511109918958429763678309672296259251406149148017680068765502797332085353572385694313354967356219393052887665431019983716830164469588624693624763324873128397422171714919575678176177670942473949461905412573324118937001651205886771243660827566472484096855001546872274554605789653128506010762993786562280440171366321319741005171510801677651978998823604004131175400823391303884671143422624232306394987920126852467272429471954439832010743012060334272387001841150398029882605021788817009784520648657061394867993487897609154599826179421376673455041672034278153370234892097499793759873545788596915909371997535022002651149410214455839163250115916141013589942355121422062916205488128228110854868926307794119899133000647745763653774732437744421139556933545109933342197063142195267420402081178488931148468583782779870721478606888285956486672993590389817517952762476807690715076969925994402247419783145215591282895923460784221305615242192270998566186922252605225880731615844545747588545867108756919990869690091219403744518949121243022693748444563388985069775991049187460561639014727516186719529032852958552592426045550258256951438105106785686833221664626470771814729962079363912696950962425346375768089082511619964459992022240724128831741799662240425927594432074189437768890697314689855265329862735648920498883945823909176307608212831161166588402366504210076965901044103227054789696446053332750940870900345136794520650984626211155920555354604078690447788221656646702334094952684286005935029760249771245676007780038051211343639765988530636910649228150002720839968787926672559013302376734303806213795411962801945607990561325702193691422155211784348876193616138729656336393306477903766872751562215084707772847675331533515301169038338045673657667938591014084940619163224462892973935229940612657066574036255856472508056635630454997472322465337880895247173695558641075383067987032383673062424721373867735905296255753662322672651660252765181428906567834694346778583693721187805718669696189018390932512858656059583729255978196307019526825457279725863497832900671196321098224469261375376166900102680147894645000491217507800396623076200726631560590308123509618102056827994164895262032772393327836961248645741296265644239101522332680992434511991968268612538047392763920364922387738856629896203824708459909076719459713116176761201302650711821374521710130957349519640458516588688553335714335651034273443637293796397921853854659151238575882728106560332670927858473290247677459944513111334184275151041600958102035124811141052856464518251804934995814768919412590208684629197782688050579709187189845034946983673896942732385660411957483396454243511379740110849859185799508694290616843650659732272791375661001421463451790409085347134174052511115997746986218017931303817714677549147767989552318050001940443131609147712890002690199630007768562145081611577877581050799711630652548541352559069517096758120450842894805460379781263741627287639616183478302984773355357537667543054228577735983474909038306394350537553222017280752705901636983048333197036999211600713719556511570219464101601707371226847961860496662097338915288390372146069941146234495840529650969279535117560156370238457684875885812092705453668145409693707726493278795493451856096864734356560791323462869620526857480461380164888912854861346968571140295342202556436175576361034310375126399035600064827743739308012781069438751468825611887812485276786943302609167299186677882397125073702859684786647311793826018014271011036999981301613387801642006605267974834025824515978268303227380745847144480888405598028424813813825523671880550038562223952653052323961489301238910254566098188977193923804349063452575000220031733634053057062938267233293290482231549331147737387524816246747084033543561797648656541349638111673699459713157782207398797851889373289681010021738281790340074204088000099342908011449357854913263546579895251511857262329457496044172617772734520752471304393800895066888773267567813425034546896616893464814716685338834014671236584460462488538496756589213105256590432068525385296474378644758497391966594080361505895282551985974171640806735006969849012835402029999611664732634718717789403608563798034468923356680727676142235427059342620013679004807234206615315325314114747805490771209066404713819251497278220047104641419591646655946422744284616028253813354857323817782888489150699496617314776416451097066689529719237396220269545518164431043576630310798090704205831414741754924259568826270794534229402704925210718462443279029579529852281270192394296943478272807797949005158731351651849292578505353938163660961280620412722719145402282359230366264027400663082748700902391673226862868568313124853573971307483343207398071688492423906067683679386840952190108416852381828755809286166257395063701239028979087653948093707458828748553900562182770745664927569914627658043039893928359401630025174037444352292409652634630244396236915553983536999610397507266537792171723290976438598291091516549805059714131726277541830975531471657519663027902622394715164175570534843090798388961610032777575049575818563389800738574523999068299455801812030239078390775969638676269877217240351918987593301764115831931820749460324221228695444714138798743543671385045602392192239313529938802852343595814880091157176901884779552269404345081819393073472481200359090432985439835349290734572564819287568112356550698921881862652406485830319322680593295998379398940103456840866047076605168297922166639346980938584361196635291091734448439447987454903452823791874903810831586919267450495052018707249066084187699025053826119067540612494083497131865726178053349240934548293835932649919886484244301425861122746873369206062129559433072109750391266410416452449963790675480304116361401044090737493931663933396867321797871380018619020009966652235358982617679310148482921047520987396621081234285391336023184238639833474811530446270313149795780520536923004507238259973699930062819350532769924882685635502148696811893960588420805891145864027761944052856396822966213667790079911057431208811842914004132358452860431640960625778690881340778595232923404733735575543552003451324013741683909707480221297438428707291526282766019785737985732864258523224920551872273268128360249336691219716785574127664035834887081036463689867084251271988536887859467841431830508387973491520160663411066569192049650692232321177397736551762806723113270585710727501812555960340670539100475145205444761744143904252424709811945237320911125474200718460236630707790189031553056371615557885712601703977464548710605870936444480149429753460299319614304177107853341313884860028375533759686803485748888124979457292525389369064555291620637586333848465965075581221190202139289177129626462054643251826408069334363509802931401685649204632132219062432294766394021099231823805730030913501321323208090514729192342308617283646652482519550099329512906949340533544158769447166240049584561016308844098739490667618373673952217413184020662346458081018648740166884955285508057890489413061049703209812274984445929385001171689316562798730593579018349386574769394855248659137183556045213569137822789998028414801770235036475395570111258999120820375965970422945049138720283680528418138250220486096744092566171400925481758656621719722239658293080461736595118397009380340596197220311890218670156943096306863084524236141792258892762001630991386299262030392435440162160326284664052239035747903402236543711217725782437466962363032188867094712578166784874099489503804976603353886880732686799129433275871191416499217759367723192751215203098812472446317299404320746979883907496762731047368826489762872084761504288507364223576732107148480270022868720956059470764811665560569320946537119871492663939104281949599290246510216674414409661127906670519014989372314273645084520078959249346866680327723364545324826926638684636291637075185234207508939266657277614389498885791805695144289618931461315464999756176361908579393336781937337379421945293835743451151348502724154750417722349229687440487221871492921600482882080374658103411640433252212175010282341029732892071060066485119978497487444139715727791113655739174574904001810240718072176145019372600069390940309371775067038838018388592280961546264359068996709172712494938743851842369793858898614877717848258150953040392112659898838417446224389849162199140818259725880351791374877100896054170412864335030215890005050024834837487135761315134391113810733076813882216216318082369115890893845217003558377375975102772687781751238113289922405440995709068914598270383848165481917130939595116357294239995718903974587594405410019620691458217970361870362958422152653324854983549212505584035130915129981886991625182205237829377482433667106149503573491301425758279571686037099308988185276519286142436623096407392962511838708703149153184740955522987822619594090172737732843008988241532848537250889759750837658723403076664972868069101486622997370206819765753403144901789769059111702303628088803434542869783632660068301966723087802251823330083597165875744730945599184282760644827594268268857223701947742523326522045446530691466770231569362176041914897011123611697181575460064571986324274202164312544555719641671623043367312552700147997337985468155443571367270281654818541370580432085446666785474502958178650384900525207636525116596114409792155098805800420982560897287769227367611482960597219199637681284726686259863923034995398810363646628740956515108995030331893276857128996814302670852752610055197494766276288640601566602637353313772614622034988273308573796451808392133008765821923280797068760575835038655279761680649690155152287440509412104816055953678940016490248079670265785056985429670830797025048674994357225967048861765117497735186689869911669104352770224378137248123253180450142146966075730499356656001214793278964911714649073711955005389211689956293368633566697404234079681910620372902659698967032785122975018654425087799455235827430110999960557224620606445031843721811126910973057301242543415913932368869074346844659412000054816276934961775563776509686997330793859298769171734590869179910682706466768740739640356777872374210832266946429117970553643971375242689421814447292942577641932154785733767533437501773411948510493622971608562816814857567906078355591667952994118805346836814823245068253845196798206222985071622304993806760168150414115946209031157483213678442584281111179912171072013434633144177177410850843254224363089803669804010105732087819071448604713554547737685503876482256985688265137332785580575241102187070390168658825859189424880993824851551390717440762795129613323067616148601839427818922174257286877628848930888092579715094176320171350824698081989837960070071755688828151468504952295677452712623651311047029265250465280803828447354354192824684217769484155456984302828951209466583838868533199724174294728949143002216328893367327883001729201395322367862725446331600616027387563288475231628336592714135411428340958640358882532238736980654435071214193501912275907227180276035251955528428691428770442002617924531006228383030716596876939064273436248829807535077153954302172729242192318769793327065246334271566053294913832082183152902915288263818130945806912207335697452980455976811060980803402892949425974904212127744639820587193162496753925411678604043604396008346254790957307787450171915905861575353380304123924535612841965934544566336111944803446215561078520163180563697592662658307125291489663835730535223354028588476628675328628559664706555697791618382542744731149169074814665569408328008674911797110264279724260632145995969759430519115561020999858323077578215748254686271073422824366361462792367603000929467335594590055216795380943796918692666124336112942330750903840423899910797143884027885555818212929548409451321757030885650645227568066999883659752082187759793609897317904258543801390920381216082198017336429795589790641628459893258709393082830252072187650333668744571257334584539208699873592867677912904556516093823742835783439530544737755169730214973214591488149476052385870203393543636733683302874694892010622912061036808064976927648605471322493057694475512212273824967208695008446972942085849288642670714104486529325256462126736229789887098754955941277976949029812243511241108924333052023875021299456768908731392096899181123596344294280535677233119125949953781614501453149080553200193975049737524788279601881240269420250116047019993280843585823809920384714801835060616365170928620572154458991804157279683456115117173670708100786750150478510146392651543665176684289947436478123142422884533173667800878460365310171870911201064007086310795594963873207666952344756051037420617513821705789660237895468609539035734085499305675713936658323216895220337510698670397126962907194386137232658861363849365605051109957084174681889962077625184577187716213640620243956369285828011493800723533715014478732997635174007363951888352880148139979237714586529436878500112164350531162105184644414319055456930407410810128321843589339132633803962565963575735658357091260732254090995716221437295186830696235991093311025404786983659909295148147016774564682564789010108129382843914245335128930801358480743896147175566806190953381256967487396670080823911973220617329533141545586487625436383918843805883005223262295607880064539202786107514661768023233241692306440419871103450369024454617537440907855825368764933614934266208421320872418678921294566751554438098499646517751451358288867722019525462541997664008550334242052321593812093015253980473207739572099175901739737117905268159513090245962498083149954147582122703730914917829682468888358154797698733164131306649246050985554592806709624754216673471626782178561125316390688572111196573124510403851337167388699714961061414904753041639857587037275255871707670852781670721180820226019704109656901952039628739193107811060464189477617339037945970066168221776128171312912230557489790794479940372397131162453764034247272498839882665198302053515455347782823342419963312931197990382196246757961532663255589001735210361229064886427113390505660060634474791225241759124959930889792874024262723995306257944693457764023181060604481832941372494820628957756723845637123969453456411134170187602366342435883103268242488865953300923910366613587167791259519410526582591879167479354325712062317023541591704960625221884036139756777302952178395809837922046494519051333013015806242721856798309333769087865345365899416950403003243422513290936307515894561572771704340659590526995460305980785917203392234310801514824539501152697110802833281859633064783138091002457421844871960278428788774676603183505579676259193778428399020864213577699057940173339257516321520058127361844648033013013646853323262687221767938850708526465120023649229125257078305126588470977586466858156157732139525117899671377727817723830962316747563986311698163543512806724553900077272949164556365284674524491995744961030158085489113528986469359054084251971640509012466903529210231882738928337355555254755930206414054397086012429152323663132378152108001763899425125013786221546571666581816929655850353413617332784815671639989050960697649877253781967358005865021700934316833039073492128566314147658538333724090874151940976452225072636071991918704285761406740220509115345423208577722561770296516196218402596450496298407860312652709342783194135637061812402110275602508878818720110621002035188680160705724947881577987246560606690600967862563728361733252455901640161879950256714971376360839695408015224427905346877046646042049875717479941376286858161866644999001562366427651921586691518706735844725729215109873441420900342613714705749944364430414497426118042828325609388453944174022381225579899426904856485937916879873898855392367757661147406443765983629688086389535327373776770275499459597104402708136383876893189294752227380419095667960371005171334944786835697126537089407595784132092695701756779727410954556536860424345199789134845617672051915762614805960027296986292248142854664137217767540137477706550383383331303787833783737307530946976145042505750103298224136529807263077555668751386218089049157281454646083663063969110249142653168760413436492513694685674121258419055915377807609687125193233823815176236983831117811322203716167134477845361706124103546205867442026248968601328717873564157644427595033514599102153057729243198447328415159754307533562079517016601066161722508752568281481142249941277777384886899410439192253339119894970914772037563090021114910977071790701198852275671813441478796023277866097725841182820645350826812603373425879481191997238528789280161553345746814241655949894326016212778211954108569357706161448357469822682266526279363837529189249044348153712722905583223154715669257510171881391269137140639361483996866561406828260902834682713920147783383125242353751744538552865981570591540487332115925115710840011722868847363948990224030544599084399171499807332170421513200177791194007969311897670914698331954006637186463621532310755243458036967348739561262937199899800668654272452168750376673663774057289230339455405792067768966186875362894025448148899670413174987893263975431289395788597023079817380825441074086420661647078332481488577983772807020411834138245506291052692436999595705032336264202102999854036542519044114038907487940704794269028302293693331465577969321071919966995402673727972361825152772120782245717168567116677053775890368729163996391229784721337960049399271294097663796427705338882448110361301682895584328976020370366093199239292832601913366205157949993766444439463966337108597965558112848010533165318590247452882445884664797310867310618004549265657228661051423777858241636324669122815033677276681159620085895631686814223468820121214400427549017024418490119087000850951116875895487498236952716660615398471622476626906066705826918925319808588886844767664496247479450157573107415875108297649247484417152493930607295237768214455155896390178059225350955964584203057066714821235252511450565784378487990768078957117652160670054989905783067453698509879785191965699207292235746512129329373257201788575920799004463476706981732172344997691934247201314387247291904953872649727081246335449901632527534981000956184947117876436052270024694261909018753214561061982155820520326701771457464027758812362102634890181627251071842961854408033900875849117038289277753414535851630937530840540068540684633245905150347142133586234870969557376836127060176591076476864757994124071456738070927049003088207471144560247760613024197499482841816487127135318814564552554365968438356850988634983459520505694585986887268415697518888672079868799701095012215792670010225769822404449147766656805222575783811717208159893060484819821431702817842992100995205091134743608276157648458053028351387537960087828089769516516275356184420274832609603705290971960718972377267330501929733207639612307016176274676650516309651726229658662512390106124259094259807562518022033289436334377578912464415772334551004504059509659988661072526543038499606504051889924752503668307522655353864556421944504342438057872416936294130212343596312700336068855311752436010916281353555603900231299099802138698162107622360974330287346113668845171444354317666662078784068565878413804156557725343641097627471759888133219316296260179786187976208743608536774419089156393553266625382796082426958522918687238276133451699875004228677593197907309290539472506081818710655432731391718595817164999551633149938555562421075843627628468406060943495233754967666048365083563447754940208399151298201437546368243789899108703644169784900999076081419377358826839416880659420835682929868505960164633760763429359112571616139201096153716680744881253106796646669329959501557135294768221174876724053953437215841641093627848084146119184406986827848373794922667661570621104516389936272090597960527254456043568453622884494176825565710767898934203864695311162049934585876806717408041527045386166910912672444460864600315954619132208621204195084194136007077977914811148506046978693004381668423570802881742172866283085948391113384961258516352877085556929578185628835966352620261987825466170147381146663332147402540423318505882899277675847289250353617724233124453710822360297613888188280990695820295619753856684879560775642940117505322270188568886702251022465606695315230538980996022425958227041526270963879470527180964911606576141125039773354199334580992314201385539607041790363897374916582630107719781294478674135063919227739449822105245208633626738522816767277518402507430402204892161302333349089330961097827196489276939602894420374876070170411107437364265373569338005076071287010636327384416695193045553568404437353322015272723237493136588033277864307612055091804389021291920266749302199939000941483627291771912434551886011434988212544390985353029329339432150855024444593698090393571076211697488336890835301967416025117842382639379068086945125870162428084939561675991339160205514867718673954248724203744216100367959995039092828037487792135873537813554310382890578139919330972972602573773458789238101460431485256209327841681177311391049512531721364249992632694384674640153182009894879058775253878211478115539939814018867282930605072250608819732542850416716366459155457764121843320824934148764533384072870599900388843442614043145486875677808112013109679660229108739478548801752712587581249587443941277875822687905947223748877741987409265695002192891228127187018673354837163250210808268591161212991884909198831767737192765878830986985513739506370607031391841557544535479066472387214666339910017407931303393061920275258708512743683594893756916493756865553490787694711631269062814055052354445880432790290999726854327214237352415271526622003806556310358096463945275208908399131635116961719546569597338384981886261872216362530160060756083010299985100198454632513318529421358645808853928836285304631953641061027905670547477874352501799256051115104472007285203860308115759089955909223820490995640934463778928887888804067323118634425780939466471087668370571206844122109105961361462785857626613709356269797595621336111850354336176028886959692860249733158766927881569278178701120646037288840367154747656056342318634074199978196368956612923289897438641998536533036456963233103931497281402030074222404696855664794747671502541031969798633091995260556310775753996647441519931034856017717392248376519713464407468094390090234602353502661487251097653856436322869070245408456021925952120461453971503660172307588275729214463005449974062138824168639166878198274763533436100031474208328363985728657686404754043294181067458109370244043285613656104346211335514610268475457385708622176233493815478886606178775244676692462513917172924793726866611907866702820104862262743381737838161187119690122378935083152977424404680937968856287444704268374244166321390292536654853525638948715127481803643427268020946250633141783595617712295211791172995852418126748606517600281206757918524726548105079439028319117229483324761706050179423776918018300189541778740126619060860301987484695715244488743309235384253777845450152013869234924316305897511564664123607550725212138600859928955717566551999489959679529713615243080954527270370906255692101547768139516240744098116129892072386406299074838044415141331918418127194596541543126135365719365363428542324222175964875797331109860963539123459999347256024312480016922628108270265116530022571238690682287783693163182677290417254907680914093920751204617539255459794429594762629546106983415997058045912516107259155944064822198887393747389346309036453933372659474385657218156184469094990298587659765415601271865440065105054248851741315274497220580007232393076702437345821946318745595918880123007699140299775634719665284819490640227456468868236973061549736745984640140690804619611793412986370914204504838861372749470645138358491667112569332396142496775358785858920578346396677604669299527131827056786995568007184580231741929310188765788738628226538985072519378741853372767012804655386325253211635724855583853869181152813736953503003705728282628258929460205766814977597098486954155205716131044872642415368667548018477248677164052409347315123399962647775890589231672586716430281836745333921566168824479775685619837101880042861729046931154343020319873069755334512654649210016538647580086319623113750095296140710937307855098206799457607642548144244498453973502918535286750069274500858228076228746025190531967519170401163503899797120568042980678204977760835924316746651483135529648512436725460523099659880110844523829300534659947568365053116322928904286019704471487921682125304783139697299155259034295394172078431251859211187209075525283490226592187538982935754969046470265476532472634546426999536250938062297024813623190146594028024395116250710527527540788570481091203284856965119350715387863952486529215357946038510628907695032675849911100858519559243853077245214067239292924089066242056034910086387656249469619071106646060684984298774048534203733628337780374092915796168707090584016226691036944381359165628688277609823876686565725748980788820810404567837387614210953991908258076813017408709469238442408068649327233421785130411452804970040789067897229097693956159904238451645260574561594756530650640062760848237941224772262153374795305105073858434436075707642628149354976402299870947017932840569397637521546161421364197575476497192340901802680375909751874834472200789462595981439687648753534644474768229957560126461632593093418572401326891332112747718281923318478023177620829375918122347020581337881954066163071055566757460664081552999470606145053367368119363664344169015835200372452809689781068841749135365947101975689502671222958879884617685445518042529296379414309288026954135491429935165368429931165758343899703436272562789139257377609930287925030755865589032192364915451122531259268616059180828482214634217423940519562740988986175726812370131008207227312518581269892194001610449879617291726172597726702374281635607262010218276456790989208228605689728283410906708992449237659696742299117653707426087062133437614545035535454612055615923001566000900460372033531383294247586778371876768969906603425231100119750398827272806205316719793821986333016822874273258998209271664996998862953308850288694752577644219275465464201698944567120777564854446885100543661951556614244078364048160461626121842156986564107179525160825841216735684782840447127913922644023081497417495113183541249046671847688155501418746023234886739431451688798143778163815404876739537943677818627421511110328349710533642575912758526717506117682403003278961010815942309666038368305625204553927486825907908642297794065377087030739622463413655914504165483833812410482541959666397999224527435135657663119601146805740333372025719232906291827439734751188290348325817819244357864160251256124339453153417291967659024076592937362659489592247379124496712533787451647043529052021785166287964392101038473675255637087500234589904568814863781161660577231200681909501153097166474734691739027880944171937410727234631304161150808339774338188342757730745900278909803249655626803193691553659818387527712583853418433267129973881529083231007293648417646331466351219047325352679253111100324703618248684936159447641437127981721135881008892439919256178146069307665106181400722764691314872385550978114184711999997250378265532316393871685352276396649245408564973256241266475272579649131035995199710484160174415370217390384104343118526636622569362631498402167191948390988892205917174023912064937568524628127196657234629513590385977844671290466538248175503819044800566605925554527160303968422648641770137151144112734481978311113224137036209253121412869477040283985220818580931208008725542105450596214635646434948242788215593792853043957215723966583116231307056607085735671333480752666187367825215290481648071446859327613542491833667020265947504648032387146451968299132696039976854380675852332517310456478294712788023434817855371103165678173932382789565631831839477738868358398546857409543760510116924990882147959636296505525147860380455376279083718194737304285493524450490975453205429182067519549501733033388080169382685802899353979383090828296132182443707967297925679980938878517400768530226751775461268848142997282713193923858964460103429608518737895260317252748983186072931567005136499612850089905426332211353551420687971137830734834667748738486077188682130294119240672526553168668281471212013840749843861988634792231602109594443451202521777399149264875521334778016959879787679984542727356375120868827244870490000019748410341509607817592443428153955664353012628350496309521074666607741670927179990984339325827705082347649527675760993075610205210286635659946432921763774684933276052301528730550598986955266159273146648405485352695688657546996017381497110821146953834046504079871179141152710624262591244492262698144087201616852077524282065957348905441820048150420477197149155344311507685715650534484609721580157923961129944681295152216949882127863600290403926431051015750412962650792321548300019902096524434293448127647387014979469142046971153555718177566935851302539985638591155802365510894805763126809481577037364384612182191421239028915051765437950323215735466230307238214307642658036339167269168646164213609128984918823225954711504783069038563214326592801881171771207520594355365934205681781295793238090541107262986332054266640817671184002260288250850235035731892564113383473710198979781850855261732183417437423783993700072740743551652651510371453357020120322279388269879220734560544016740517011679479908862144017414413394047458128404884536290679043392266204507409828932360459495297035078787800647017470254867536737641817776667502567290546119498267524304250864316957235228760821244452417328129023086094492813841271491904317836883479258306858562053853605246785313606638150226414470416803228910387412764170999094589241539243427191781623518849657270992885007624650110896752452132903415557659051511420621574307542563338099686191217014073500393998764262109767363473902132098635877516552330565161346712884594668663398822649681100746756653323031634451108666947181247133748806421330294481798710758413873951698614354097878234895339315307064336609289361387526954183631955541716736813540839881753311353617646294698879714525273680399878402749349325795449170221388846472235815474072710504726332601775152572555458297317141980113124723019230957833755041647357170044426574974312505412250317284247450415207176625531816925333894912071696308667767833928635640939738087365977622906178694144738415624414482311582589178260350913740487254817249691816011398406485772119493926984228732830955094329665163465729632576146704555716809555089191606129968024021856297682931830420508056380596333023693334728621337867655899787104121272868443758383160076127060949753654522886467946573298561797598554152457906156748804163111207877232382693272723697009342667418800172097162671033587341094761498818455587007816875606707507315679857684221248962284192405014418354119621740780609715993219634975792425525347707831090736126508880764075021321073914206189162453109208811321459810840860127568948413555303853117348296526549715163807747521068629550381848772355537293060707793342711633902681573491612169481163794653239839040198678353267673517679919175695700019384886755891963856749384423698629957839977682324930959649103456944686526829207472984496058397818417764550573987679351616190423731882222615525186119452248328644811853916324561110873851585725736311512823787768436198492115432547171860088383274488079985945367858922407201294152797487631573380879258708172518065347422184586232626905826986349664376977999923642833321348128612873465466059081494579004534717807926301375630724544363943487970620371141218568860683514720522043632089965660448107953553360747527443069257048103983515752950685297183405604485925154342699906100571274402363564758740638659979783371034667114899312873114848538454133592581061483041735263660433338159810686806322352617132242850021101277769930995231027253133148942744282547447787733933044839980435808980758499296179904297225435872489967707779335020003263930166715033136207376467205869245661462318310076607735630514556108592810635681473603992955674375973379684768089375823887561184087639782518276955558219503797492821365733844486591671070309430700705021925382340349309351183723260216356998033547853379311667858606597752659870649963612152576393610707294502025648371026855410055654552275163104606023531552779356063172890843564496917182745557092639454237102509725771268967651613452057303651165672653485431456602526720863464302948600007494198187374992056471507445979579742140486458621047455558144137639885208165015048514575892815569994837617134202906356060850790594033420009888949508333484853662202039420766784493877275148606630537257103127199236680426105577925568631783887092593607995130465309231374612349697831122045017732671349294214666215735644827881616148547895671015587913559857814968034454009746563901973540417861706891784936989883889793733526763278081484923110433350035822689434757473762280544325089311949038697267582333999978499362866567252926834347556532996758814672752283915203694424952125119460973533976792804911235742359214441248492336673095922322843253963991772910390773827425251103864504668501201409079570393371098658537520429782156495642238390025000561762057115252583649674495654166151108381452213515152796554077048125508593733774945266150839699318375434955700502179910078518631277086776127325537524785405541787657474144758177868352127393463151429634008699502967250903552451078180590776166671500836486444143954494007825927335169117635838710662026154973068368937297209265863019853578019854486374880821182892447439574381669974063102994951781779223542732808250504041534557868638779876829186199474172809061214637347724900359687783390942456733446079082585156204713711166879013444599466573558763983713851573152961886401962097104925736502455145933283623687867257048504703836871281093194649495684608738210499486316336887209181020304790690849622470239732095341968202054823082837515725506107989236151470836726888197192546178880343695632847876679823623352036334574529622392735621092164830035993221059414950623513889659816178228755907370420255505918120331266648425732949743403158652399643945675000429713666759815512230359851679229182783167394484719089160007976450258789050324086837794523665319845557718366583926762724453082406105674660873890957313655655643213428131597327950987390219444413012089470431043466404762354575021857941032114701065973471562898272777582264640670757763538275662567455866588436118308447705045191468867510179187444038505203185179952309280674165710837009066038681555489076995125447288785720861975091514605248794901839722628731994652791055632412822377247576801482701654741823332541771807519583308766945124933514920198526781055466323676499586249044399588681314090225031157736763578750677007161691795464628098372081169657978108988572853543687787777360926198511412205505466768378267783124612262420741080131601301187124933941194547197694093964731043899780625149251097469394990335157782788532302255057779536597342966797718424586226519506684129542020609495425491092974434011812418951845461725242255979896582516029199885155513007996812000745954133101179035400176823034021588287651276340825338345594856169004869373840473283475363648956754159408074334479861251484380650284409376184945153226199410275403766762034699820927501682143927588602970480262499531329380473872299702012846158046781509249115111748863624108506567926075871980578216063274056732412480169818242056731882689462019422529807580748416186361255476707307416488973557824618209937978072033734702805206626756615418869503887448191078593559369978375881530374790430403414296563524105488742794908865993495814215427222088151456531475662298036524589174706120267271711335391567565962281400268267718265655010816439685430651094907458450397148703379570216534904973780262660689516552041543996026897255827878904170967077272671116184106028288686787048330632704377764869594746874502746227797803047753967538736638610001272098075323432943766715244838491079325351346043969916853454664092215573262339444963347349640919681152623623492454129155525537457558313811473902431108462949983724721716799063203792239837837227330800761649800353463484448712734669271029441696376811982530683353417834465817655918635353019200281995887707804469316407982828059951026829174007584874178239100661844541659506604838818253628776822212628100744055347892131073420402025882626836914714706313926791702083476366580455838993279702203539562546751120976257505874570137408512628471838252369634577347764431924290503065588920917110814309102912558278033343965618601934174343076181366991885495103115048796749837090195944338498030186317588000243699998975450224776729186548332935773803617492569803867067540149450770931568976591489138887354569441555261454127215108205472563170071958855796488533334470447290290695331547039191222772829110543391970424808594411821272906008525038502548388986969058915294261630804278640170119112998777838381045102681590745084198124295419692990646307041392505156542039316460037555068424301617804657371330426991322264638781566349320552590701956068487322968310817903293976949380434386859039247005085500301824848246941064426767556455483946402802491732028619422703919958545302234654655388054706890214982619980923837686958010014901542441613808111655045979366534473356077198375274797370703657740215923037948916969509789540154302341568374777768039150939562096284076070958403462886004124455200514865848779317625710241964022554978525906442323755584079918974472200249163915718718506251426483423721289702495115479040561588886280006405473324573089662850657863548070572560061152677125301920639043046001698570525460473106880055508091699646321992851122985170363784699790644577522783913350757506745222369642059603860257368587788877679822912248959811304428036608336831146457620008240712467260860228124252967075693670951428009012749327683202997851202612421204070304173978003192631263840026851290469999426926441093381587593414033869547147792991605500917008194166131498927831462856792679336429485947257976676047902479621186512601821402779988571700846861010239024125494951289400961888509453461088726548686887340085967810754870318933272655403208264542968600261105790967311965465812846185080654732144964583285326727112921474692832377095956489981886132526272651224450805162043019576961927660230963537874553885061863874044769769445001068365874691237826717262134737168686862937484197511036556531111417199732936212535680479816943938027206238909121160408709924058881352402855703686671278492273485180192928919048082555551989533970286210931303630148369908187780474178276996476576438376956461023909029492250147516906705802333616373748669327552329137587818989165841098224751934159339573799938371684480689251875076627565073240041939073216779214581389458196444946339320521172484399883619418656618776126834248277031009994830176719662800817422251941272991508504747123717392842399408069245634940472553447564059956584357834245618278129679500881533705721992053539237600823578019243346194762524544909410592757684644400822879926797194108770624992078455313235910542717378483672898087397471910801197797790854624233748806143238670484278892006382612125999588060126304887951912428098465929341889260424618865831045639499946587269645170176751768411405147749728444032011430507779250650759277893881035677999265689554473041297540157856474883182317982162719035076111989500001115547949241116917808207580151899974384441307125800250099683655553917229048850738825045884807178180543808796659019877864278435887635335627492604509709709367213196541572224933907849100963220309065027185262382817797834904339513228115450404110048572722987158114445103863870251915047530102541890150154404563432430673367241349053646850710776917996241622260815597920929700236436891483340841953317608539983087553464243121095633420091017375011076808234795679996942773351274400475158084770556253000235212291186324682992956569139129421767685312520256557088276480685582062831835928457018519718098805888337365951762741571310313031842139588940934098939062403483976759439506334327847433988885524595152777600067657231259294642194551519428573034071533935271955868225485069867173292170057106033722979462647411320364735266515958778840937427820405340046009887884713506657252348186548873761865384674997372067861750243889408318365141220349500973920258356830863149153157579455140103880404570115868537457411904580945596666576004968382578253592780190321810190660003143345231138283664039189800338652372659481214804901771313589217490467602240846899372032821506976161050010269896991570970483260458030936516874544313111358983026502500158043102273149066555989108853929564583820359214243287056747644507067303020455101972432135128166705571123663985774214900143952220539863136707802745507018277145974306814526287391831471352616883228805474381544606959567855986948788843385738361201059275109848683564689023316203083585246215451615773599775221210124001139837390700657247414992179411549837973831735609745926219161645919898658647483855257420641410374108969223699585207342504337190190885083665751039456933178152174017330256681371548138435591624419767829097526676210813013103062526269551949283830456065268147198539497757404352041776940265556274339519081205017730790571168487413773047980873018880418911037979975569652612791749896167276536464646800551904841926659835749368169358826245871063026499568778915298328247384091310001350989397846233192604090762347918340963695883688102008839382342636913048682582554860224312154896614689665659782536830959511690159404133858954010303963417866918153632872893137192573399262401117853502256864426359042533822990214422438249752456286959489551627748103611031915081251186081776835306091619237620831048759290908290059307786907925394690905116546190680834189561187877141562987693538742266446754538065207671461288832696227763138876798947350895470601173796601402527699251350921839174805253041430280256706203979312965573272084490273768134040846763978121583839879822113946093666880177655572184916323339786904747007775246947956680010519259021409004347918976088492134713440561956054197500567253426236324929994005421312666713948441368056003504092462282153663583117275079471330905266414236734482152978919968709148557507444328236250497736899983202566279376945622563598639093611137567053356191054084854406992829170069891413060219966633704951268537585241052710312815091652872499623858563244892987260638414239860653101796858942811544701917321450355279071555971372068457831485926787817201389871032774960148181524330633567969123925956915973679311098918342582578966333703025860879826297923972066016448668562758088112520090032621401227849890959612832396844827397592364493326425880711564292812539699167589600496455021513192757121002665185332775898627701189924285053283381865052518282079814554900914084933825617482129632320388966792234440340961848633009419214242776814556465871751037537515536043898012693249118286868077105500046859509705160510134950677149928878448200097275001985459574170327973766015184654467925648041789855919243038654583569458668811294057967542849608835457243925312806697798928690690506946791975407019759319612490144412028966890530980198047567229468518477602839283733884738654879931488301918171438804315732203353772646867948338978313696593251777397269818354964767030108199520221826198033757872166219225976766733257828457599787092961564021889185131837638906911948662038786159331883401026756452725968139424528297196615959093921502219264477795721160050706950964055620592894979484835050096071121119349616767162476381488700742624791206515283345738266227775722136982546979953148029956336496675575188649690816944342430537184764320757033909971832150699661815198505269477735955146321932524316384401468292096457469869032345796017149128780782408564514430293067421943356714805914028982531606456024978392079064281352253308692630205963176481414961328555883712581544048048440664660651910154745862113032518448716467858608632459899555096092003774758214327373648446031991608528244839737739829568112474367401002098626112850293380194273335341514436001540721787541433342977614691906326910390170518402589474428918334226360663354824892125146788640302190874942271144684030939305085648681574851976779340101488426624019541391311700673250278718056877494913611971050696229455883171237988782532487036797531432469720115312511925231636995991407854113653523594812408470117297535886743019364772517792890295689275198895634111819363120561354903158452903116816105930154276941451348110041882649952373148649295638351584298956589433428730533824704310573535992530686888458854982306255249688921021931214283935387913711907175116808956502826036991170423385865366612231135831832088570429409945597065118519908303719580951653620929164433030728150079553443728911531375681401579935513836041464234274062883980304807816128615289007554303169908931088649318595579244252387784136549458161572443103809858885940358882248188290848250333406517378355390031272582567572364912072563779742429850243062004569627616306458505693592998841774428836351168490803041646180967104265734936313452517182587456648326418065998357702596152624176951796099393172265649771688470617599198716264640016100246989761214585711225648037237607090281112082632737024380987738940949860993853226545774902349141326327559248492728104780286688422631179114997524924003177561554267434520568389221193969350456977227420855427855728271613733544675708935959329218224059218930679345374579050417809226799924117036402974701868443658351266048129131791209958730298830854924389947697396681498807783325537572583083162425420493189903932382470048170075280497258677173513903324606914037874486080905369409341149657355997905451391478024508057271302141666788014575280048858528253236376685914513909622109674166960722421878851153944352280403059279999662827669340848460159531371552069706626892950052641425603282956086776362218121144975861889628986177897332511231881775819649536077970096935391850403809129952055646296212095225395761966007056903423148764685652618685502127761731941684229588250866591645132867716305311101412924523203876777954047927876542934271556139585297457876438998101612852657778214541010293058801859428125401094751038622372050163772091246880341604529618568806796597499220879828812177130631628293537502867862287587752292284127971449063348728544495973713992813806743580039603422372683573181994763423813943946542158448993187241030028204767634629547917317131695765896485823371256529190602640956982544272848129292279019943479193576788751174173254020802194779906474569926845640286892489096388433482488742264363541296077747133916510654165198436579548840108003835555194534231672259169657648464659841624785553057171378539173377645380921491970157485073821793638980806329079810743483737138370853204542375141584291214342092754211080735353915343521093458137007185422942730683595951831889740538310469986110841348707941162220494162734144043492784890798279985428528095633614377570509019506116971393885250311933723327213904147273525123060947288182923624612917718131956853754834855449649990442308076835564368480522051453746456383006578330268735133814853010490575962884264021061079897619516414781460614846278231556325651035133000181797022587389952909920879702418864528032869495679690491114643406041130600582371865210530467431601601505959686570509637453679602819949626778227667964805534875126132421128299068922902128836953323064163047998177575648287590454662449650492021241520320126745468484233274429991808813957300317952254729960256182741643772920022745029915347461431826902505979042131672125881395051698190980694668695548668170722455199067454802093537058275963893989516985651478169607340192368760124121751603139254990395135734900647668252673390051409282839999699352902388707601162858195791112551599323381598627188045723766232576131714571532938567331638044631005176951970746609277002814353910696198052091287606533611520693419486924763433027345704860504889888743350294493449350733100938945391009913110868310426357821810000679817891571654166313084035673416719956658756667552981768964356624623980405027690641867069305252933476498062475719678060369474545437738411920291858235620730838280620375813980002154862073215976690634540116947448308664951054681419851161884350308412820838117640044285993720599707148635662836148581050057588577225217376543897281362684085794679728369332539407733532689958932551721517408779169015332362560223414703653693526856894479703093806983558394579127048104191039874988089357869893650792044004939759957778554264220904755112213595319949870399631934869992751214365727526463221980002824633382186397083290014953836014569797521763120216721442591657442911771699956518629700194295373870537280146517671787493431120588840153456487562561743853427399747293818088993196278625428033701855274202459620426610150631940303703079366115498621205450568264836512179271308472190210952416743163345057700524762602606975342404565154151068881805341352793215963839684670091429958275892036310387761185587016979330866335149611886872901247059946075443952771184534832752432230752389358409391574725446459755677059686991175372792617116856384015006685918193588080875584598561928729418034241354355120786740048495891924525720998329600643174166611449576145540538084814711831306198889202206351481672368630740412075915701060463003889476837343687017824053736276958365942634308469930797382831118043101781663742297624469415377052154476894018701010581420189494794851555751907514027402378112832399937481740102443569076296020797553439662900844254298008391922153841129735838375768559135524331844003548387532708365229994248321612488374558254177347190000448070072342212971132500845884479662131747232093643810592698089224548803145857852361507400442411237807449228922201195297087953312688873166703247994768465301197633741869904640628219116054016390171859660948642689821913966265185654160710214005812416582112761521551850433302484771575272604123988249619928667006408398662321085660525410659040629559996931030458314363482326791470491766536973777124115768877249244609025057811831981576594305587727693812334956931515328095270920606496007326158206708568375467593530531566380194652588801876364495305829728189555264629105194403536400964629054832838099164258009162248354744880109266684617005308968483585738303515829803115234018556204903267301361800254098461353762237836836502480307412373354921550158009146689237243796556767605802657157096248735185355926581870356060852626562566623517912814381675139527341644509281834017867428470859266256144117610967049969131647939456870129321732427977834813469507568101012657973427659023862154335888320372589759956449419775722739975594655682757145887556909961258239205323181220322306691248684011768784074850535332595938969346998703733364951136660294090678732967487138919657121452844682233642147548815988208573183141633114948261694735737534108742206611610990375853472904982257527932320354897489042546092135344008375024788763021289101029172983321672631865774968619262263785055072466870813345769227653636921777504788315485979152231011090497401134920450950535139014461310878523720748116120107529359982077461592060598833900655356409177733245031809786762241991638701072981371003891272292488403997474718583834566418135278885888710386581421342479847305615663306429683978174779938941212908106344432444179169189668207489448184232642057868661670726693915522524301246620828152078770218753736573402973692692818267511357345178303384826305153738285206219222609632342431195491121795179158985930590943980701633950760020577869717553738489789302288130831789952560254692821663135498613702674025327252976360204608275622768028653753403173315352435181489339855349057077203008443409592640421287444256311513772636514091044642919997587200055091103039554793254836930630339247219213387600840488573128560839340526912473722852093852036765031469583999295836820688440137231179946798747022355133555077574706069626137638504927238786549070387859450364877812291223319537303939862216916515565881977822238587144196589109182385148357717121298704089191146774704816593239901748595143017823479253638074101965643614303910479189058952488438118052101958531645909841059621374176100774049409700023666131176507774869727162278951006316543385486807857587306090811262781881977214425011997731561316950236528655081623839864121351285033123832938616275894488030599945613731982968172428676383001160969746258682258967240645624738515439413498000557954670887742396803653784087484025850728522875240806125577791404936163248422890501744029861305173599675234652289229880504291004388807194091468539520316401892787829985670069345933163630969535975117601784389436164773666289558472391068017340531669616878303297344940183140725173620749606419593833885608335974888595584783645136838849513712254716243933364228793805970672507408003160485675258687918391480802484488447786281203415842049244242578737830850664184955452964574587501287309647539387397425839311752286873528031035598243995536652530095437207893447006304689429999464409782739433108084493437547682917691181754361464757539508728894306926004840398799392086296615345881284559434709741717114240555554124908298159530832007239586344434087809863991166870264694031094204506342434879430532401525148318971782052593640491392846406368004493789612925953839709934627495694431914848777264058773010727527689765378011780971711518879071297819322336907449427976567324511610897363863524388552697245602391559386013880089836827786593191746734248028290917165372622948459390122082331300085925975341685622413162527813324827831747527192465139800518855972977423555511985970627979938296403841547588318500461297702829081794921969582421054588470448074208214315067374670500863863858393126988419389268767315370710379209539094207564300122106140535206863977532682104835167097319512974330243883916284630562417337890443848879897307522332407450044619837052230617159611676745477191243126503102720500567247832785187376610298748344218523348622600439521991999937968585723118921838464079971122194015030574277062571191392393486374875057243467755823514046984599389980217441548878347424406551578548613539911797672606630496921724306369944618126861617292480898807529522242129376135248046399832284474958663948983898052455954209226437361592818573689496979474096543371172494389977879151773700730133312689266868556002814602962690746867082090218427816294905392437947053553942048344034482179788205885425988110786078427263693736574012115753672410323471676257310265418671618886473375034886963984224291971351533161799602560046317669457437910135995657726282982519565446829727339497572605918873383131764214957367296923766353570825372355100311776499781878105441018889619827284322170876532673571134594816516409253413315536830590184723577048280927353118738021347465896623890884178933168765045551871590619231543753449917833242410437882956839800167623169002636310206534805358416699251974094439098556238722514307527440417603191112622348233079379412116700574384364994735390166939874011888024262096256137195064317134741912222065766784797804814112487687674517755835779100121439687998592705983365309885994826117688627646424741494951114081464115453933730978066235803755018330560599690291108388197899855096496113990070290333208245498815869605758835725718596480983677605979651223740800829358496567962962680255439660945390250577634901734389990601158625825007830667865940068391518339545887744355673153177867394729502283279285714166397850386400829712332107190347442823828913650358604581406422365884259154991161013945911706015462623762550152270113464642922113439759814257135038975954795104228096373280372714361519311717285866574066825053815583404111636451368740411576388138981099932216250724104986150700332360899369705845755076401519211747785700327665713927429353527455000695186558940199539622401200336162657996353631967572404421720317865731411042813215019426537327830282843162209812975640168107883781958795360214064028426972701494328422002164480508216698949295789423357397191061940569587463119135370984791524268349958143968626884392007342468534241538809482581846096350644008908188822848573781789696772015845827321498976509923470434936658450721216577126030307278144033338558599879318404684287956431503808458207022996954499838792832361158315727069276067579770981600525558235807840718357502195373079166888981222312277269269557046252213432195104457352979334396322013228607195493716974821114288265761479807522505828222814474574944035022335991371815031800632658812105656877821318539814654200460591878743110599515683862363705252662871003129823579370900774732016999892221247620360613158305241119659584227443879992300418611543237776245328231704713126842450519368363301525724030570989074739318179852357385495875290361325325290995820347816700832489192432871655716211627317403059957035238913748890310151431415188428674405322543739055359128281714998213704204191733666435558132489702933512554056823175420135943727675022166677776547341053335244452765731544168197411687748704909355001364977483469501917200539848274857032458731843411356731332518918279769264640325584726169580617489656364903079996764414729356018869147489611625952141253936500910768591093813891475077053382891706523342367792343294289959424126607518670136322698359783343683644455482226762410961252485582781132753587993290050609388117342883247475098442419862728345578120258912593707334254384719213489952052146233228145037935004768671505388713566009987529344999575661154395343217117579245998581307765218954274334391482729660643776550567385151910188490370701431930344502496400917376132216831747699505775578462186032251286785141848614915273510425167007421471836210489798207011028346662102658133103403197471740252259169360944523422313202495020647131075701727040348501248819681758114098143271388008710526081175893708861876195290817248969374020476168654499202869726360721086496221896389639099702988631804719759741098651898584038902570277867033168468454740109386693674903459111940365320165483377384789867798570419108171096354715933055336749354135588245683146584580121593437838516427639145963171234064525043365100003830322645833937473177280765493005948791427668971356058025974146505054712421311380689923821202672596072824669138094834734140632573663881562226960867699122132478030765526401567314709564831132323370382460111112351705317418437123375352676674347505946224065044263271261430122860720505728657747110397975593648462470693093390966953259578002588111113548533369014947384165099666335846595374354332714011207807903437839120467410189385017462326954791851878254111715537974965692395562453546565696354486122123384466915853649715815150323088580723580724169511052966753889674938538794696390025354050341214811581102290015602151335121311282605929826087958240856861156222987124223552723782452941422283371248820790234162356472400778925531433190328393072725800001482705418354744927283864574376939117142037383164182908495888181247096957556345642734475594133419822839437864249471204313853607862829864050969345601313251198613803867155809983911107183058067606631821461336378402593425770330682226992328293469813241482957781916579408059710160434349109420393182422716996052505707481406686796096483862936478988725575768076474129575232421049655051244381418977850865577378755003577012151858378225008648913397961650823186582082711537425164725813139434377826378245106115811803751647171371066519939195226307746037162048520006737235313252897014197427057923018402596009576704872148532003885847866179462085065834315952890836328901219334796127102765516189042547176328054957993318731991116689707854799083326307095952272580948962920234027798731121203735215789795727382867763691715300590886378703466198528277092527316418107085553336306931866477707575673581846381944643272465501895078767011458683399223322186210613067360213686261303664368514646461407566910419177343345010919657027628702769188874606850919135332985707889268007388122699197317383765631694464179499140645720496684943184693626920793120505436201014066284439802738513664259369880589725471427188796015196840658463894620217923047105634352447991895453509730296396985584195140035199055129280440799292255109519466099137932064952833187584617511733565260411567884684902724371000806331697164219781407230558847468145133677322040544447726600737729735938248589274916447347868090674492765971032033163345092067098516529528683515241566294930478735116412244760423597490347741591432235372537796920829844851963911089389803526028566983813178514245869294201392511742766059303179473571738231206406729551696521041793209322653751910993313695916965387631072249165804926424122637928677920604574697862776980981877134679235767578358754491928665887011333390641711043688397042713319174193991604307173743563140058231818095508036743965185502443406246142544605705780679734386530912911994908627077095988425034238662908738415403484598090541035387764852125001973538512357414873671144057738423740468124177109765012648804645955220516208091632847304134625304149108032830724455230033044628464348492332620249212425263792857184935860404753862900284998303661596407086166421744939857143881331771397133080327337135487948475764349453995020160810960788577886365310110221176988744636592459207974632432467463447182762914583907384885674416728135370230427134874517729556935301215055354201334472660869039497142787615401345989087041742932208861941054269629247818552898876451786421383760215444642829363611373616964180048794629432937057049150035965016415942243103620971892161773745613047097071106234564962440851034519610594104648933116307387979261633368815977139830454111951496009841451938324362061269168308703279989903129698427391080646956915100292323439782143378643024500321136513214348770296019819988618940750246051740116681872514753663044749912136320331028597792477137637393555609174128220591315239529954185468778522881368202742172278370703798101827215371341140811924656169119043680942889263559408610343275710406174134099429931767124789417756694454568272806047970850908272722314510093991442223363242513732301710816632188643477773263265630231270903641257731450160388300383386145289076826479964587236655572575574896900015192118875846097417317991619203248461988207392809379420199337551137600681841171695132891638612124627506768112448170072711872218313769154604083785820521967928351762204480784193986270620296151626789737225733993730238180195246568212369143319878775394157182143395787866890810253587834398941951767155649840663529604378603295090852858586065238109050874725328835743387815889852003416398350779688214993299232469774806798484879808935594160516800189464068775140634556780824386341448769450276350892343705938680800887969278317757908864491921266130740446568759535965100756720603451440018450632220039827348345246328376706337457496792701637692390394390751954034984460890540255664996804055386251597330111550194096995393951266995888369662631898809204813749679203401881310568232848987122181423810827047857814611426328751034085398830318902862631603616546322933549263730314683670279580793882518641804983688089200687328315736837344032870637850207406419430083284031208079133255014914448416251475133414313030001875312385282368360419319852507525747598618069878222665164138298095409534791814913878602908400330356428684949802987719040913231992313242961163150791812331619471224493649770341821156521710078213234528655982003634138885670413894435651354250194804506134383808849529026767496065656730838830327080556297946866142093824609033884557767580946530059399540246946626245349187381459136056227446178702578790594832194842601619955231470606124313386848120717326179321829119829623326190948719679219569530367412691826736274701642462117207155714050400712353980100250423671290306853151507066923949445477304203229208549014641061543365981448684941262476434643552695616229081910504864771637369005777449822173729578341553294016267185625358202985897933141711185969156523930863249785423733052757511203557266456588443554195598119276890679137928094535713527212840103440283990716986913397420818030122596598041424086945346343779882978147095735417017522183643053128264406626179874441415942410790628835414895676520321643392037555318831688163682399166149847701434388495574000074974548907254407601766063081713283201338066996410639559755802574050043136797782721138762905928629858322821613521861587727361552711122879263598721835182803299723649803292834410857114450630850078459326383729159865139870996332327980708950730880316692842687560035062171967513002466958342615123622447678904870621859704823366338021401484849617599217929360068225813237734284578844243356807132929993967484103976715692265703161202902408402215361050536049915178809365312202089019677294094814080240643231784327294933859581743106472016684929253742730166303628762927987909674005309410685098256837414574834274029576793375139076111136954329056837004864133058580692102359051239822421754537702310871139966602395974534145984066593544506144308746982120100581768049721678832080009811114033078981665974911166695558163900007130518222524183964120070390264516623410182399860569061463103433155179924310500972095063164937177513000165559433497632760828537229090655809296561520758991019977073640317050054349537088952966371501164524868198597398111646408930898604466236734845614549280312602913662778594683537295045173233629447629338260273113689833536007645828093997465018718988989071010846523544216913926683616837180408803743389000834180276563024204623049953574048220295106018060845977299386809452045442322508385191394606326601476159317737635129227848388121373359927615933713081638094488925814191345647531431411606552133831193772127192919204555874062379444148677807117614083740274821581896264848980032376215069055989701317411313400407708037639929117225300124619774528172753023990605750323032271582577316044855682565609512919050647227977441246419571044173860763216360866599645238705533051003732195875366911752745080979585115149477769705301235892359793948684204710031231582645642321139488053959088311760165029573284970010036320481773555334852099627204853730599213959607350818054370496065914424279965617618281387143513519924416100477654549478209485269301289112649165357087922271434626832997489371732336308856989342607038412672281763402976173489895044539338479981570402516090302172220887913192626088030949246851444408142717457607832454016910447766323188675062568302628313934053046570254455749750455783845690633598307558242470009288980716317202466101565407861051101872356263350694980866288474020132286350823886087909528918476448137451049039213604219534153372613508367246133146074070789025576762660432814356314121611943110221246429507428305289390484422632876042027235722391450105175699727336847976189065241003956437602720179987532024885858466007332738106913775972029143498799878266799586702537709279405018183447828444744118759314817625368833803716997849259229184162390150972472543175813499601155940653514799036779446052040269087977252873330870787197704982819641145190425134313769694635057737010752870052842538569713333251252219592463316392157652849915335263615418330005284535402815614157957333327492665821526100297074830639128066667865950746427767847264222362592311130827614249500645285991632542436312515316179184461798498658650669058730521622060666822985884739369055963417548401655264158450767314726288986955114396354417850200792681169826430655219921159853343787573446972290150128601647520948068253210421306510768893022873342320140014997154534716066156986180635338331468848554048970745813593526622550491206104786776374587285145363125383303126701650144118844009808541434681761218298023821005127705207650057101347685686321361055115002293671573796385841556975078639527224128184927572103569386530647996895311402262972720245169337703445686183227022065947486318009386889255540759328555339224410738174241925595060232635466485004367354821526503214691522041064204819625442286197501810990950447434447753781265600375271571487663918864776029817874806235323617148918779318140649775426770580750560388211840687498031202210474900257929745659401206426563194078318466606046523248555697173272713544254174890190852397798833776448148666097884093247407601070300733259104194118038593784920964655940129568511716831127519518466857723340097764650409514975536258413055684762552578435031028401402092602976633187942752495420177737621815416881581635490795513490030433921259745633923718423064534079188213391679202094016244461092942175670555479970719022515258802719111079598760136457405047000712275763367253564906317095777641713917379459831508362193121399289941424370607144700630281702462748283452807718985187981790544333867584347341212047907186973283650178984482256230679404957604793951218169837631705271737088039890811982565769857912974263275069419144089791452619656787214603802176416226304313873080758506350046368658881399603618013811685317765199612755751092220998398991341396266592452506540991548228163108431482520374980274706351583343890545153866058179996682244683016546737824754461126487879475725923212864312727801488644656986996349143298823142247353366232378607681552382096445831506292073544658196561267341439005702058173974492102395867897490620102854703373580951224796297695785419604746674272749361423042066161790829832075077384573807171712125754191538514451732378572942668401573182457966217431949476470584529756375288573242201445941425538235324202598361523131065549993380851935448506063309206097391580603214753973902617869684857246577970160490047105032741137867574994514549943333854419779900006546184328003160547874826934645172185900136006630444684692883690532321324651060940846282678991446812727220049637953999420140490291214252694153031986440607603331305124092461652315680270196352752990416874236459190936662094578913089956034847080211584486086048989667478898421521486590669433743689960129281875365985119258156779060915485273918777476059567054184048800653012423338148673452994533527291701820018153583965741380607158656062412399068782546275121051422662866402729790611910356775338475321892341511634656336939003877590353204704905466279723560546829711878702025862090753969976893609172087474613075455685891677522459595339374126178880807009429704401557379222088875271203537042290876188537521249017506697432315397330410905518734587002994621493625999426229548249983308798529632548822960055381889377860279684632198993318375476050501063307606940963347660539389394119496465139204615457860190214008972563389711910303304846315167771756733612954273929674103868995619056470529251039344035707738217320017679348442282974654091561036824418656497407133148004493349156169535215387291713127940994710271638660284752517815377625579079264471486862220726928622486976621869477057078972057212536217229180704512743408449967804815321528901938523762710275199953319063398296818354220563562332557733912701123338081265001490067689883403155462172079175162746674690528016022035405187881906644121102036919843552129542606574054838263557196597956910669415854715905779115905261283110561551060207854025585949800682104794414219807074370714731366460850636405586612602438005416118497930850529397281431334933886961531429207400169553713469447644280306394276792808742871151170791499340982418507841234005128785906702808664507618943819794113874884235813030259577769947588035817453552975880379976728364122045174776025672202354234287892421927809969056712198825740582971818506147764133668336408853243732869961925937382396085596788251742081554800639314368937398338706666333023260639344177389956651822316949451809254154990648870362260564753527664007018651010249592501271032535334906721597511043567383430820490711316920980887934661227162338613590112151458802799589225639351260172618188782696971497373288255122400675619758301215135202856482253757734684092110226041805080565884669342646665457869872299693703001094417443209274935629940652837783321065975095445719049614307641343492623954506145612579355756442437338923511110345246942412212682093533351090620158748211401524761572999601361617276457864977811437910337123195969808853936663738729213867419044301320213870671134649411410450362712696381040084859202224153755054121612716398157344299381120331478010270599688995487122076222376963562911384018388151011805861547703560181772494805597111079225607877093248713028317101543224696615435139864375646987134557328432957843306761547471576723755431180075584512505337924839079498162999701511426998484467294818972196228368441095981523641802873312741577092903356266585879594210493197499759993767213339530492385992059947347710417148428078946728498922812398989751107727131040257044142532617864683354422005719758987486047331290416888937839927952120767044841715075419084522107305364461842823472070941697971259505500130932775828840236890590963200644220799406182622968045247272007000690690545076525455054286886994327898826990304395195485670132036244854843549569242866135942631591253665634114079586297103550815381662132135748285460346649308937139236873753754452924915392364076959534914017007886973954005052904173401725836823265448838729655582156877839157167665345927556531804550252203891839234268331955858411378328557747863184332099880451321648002275081736408663624458624988485645442824343759208893639511069951123361519567438418876008026025424917214757338794662385289340686062701650733116588003842417028663533455350968649949177726082405885161235831607672322161123009610317630267983949500585417299578384407583200837230058068520749313620869287256893493905084647559418848013229648827679932006197657012093491233656441569777497096066405083300293854306324011994193450180292233742821260163782172051631097893145860265329356253205108049298264372417785333590871967394016858659085590805294986525691455869951688970840865899295549725816688644243428509399640462369416721301437479178094668757849673733852025826949378810811626211325101661710398606898898674700970235569931985103413983051537287205084100691510518802144922321001094927131348515974697116891938621552594889260502740430022555772640386640077633001717184749616813953614722112838890966651783406801514399038902768816649214395492442079578499914860914343833409849585620870243855075258590983323652918647389359188213029276519738417390966990275104014396995994589342479647909921993710683835402137960410694871641184569754708122106017336931380132551838742734929268975283810265754236940027203284819597785385354087191695233291641715946893703706157860150476089076485309917900202874800501032709851661302131468360487684232040086442013710422719420919635271904027109200973096867627599001008766242036619429575329571046843564037609419764982561153022915052784358814106740641145265519739874291912541781741839650312863830761507688801322319732013370124435044853988450416878983143131059728913437024848012180941051431356128265813843184323668769124691398184788400272028283441950208714322152255242022287668931447741273164220936181443061236837745604867845174748724835334210019463577488776059124717405339053691384752326733684881374636552597029068986119544328048310746211285221788980953597436818076402678669735773491627196816878409723723654165786237199311363147673312331392834684601732767725185524724981346230036804153980810622464380974616925999025280749237618087933401670294334153504645557299087133382841653448304768249372439741245895220931399236683835693593061784937291369044238191630667960222608411412472969980467516791065942793391738655871462977711354802207105400685009243427957345198396064414425461177956132115554049617572731308119527203974888779567833780649894115422155077294618752967590883043564030815146419088622920536850474059358041740912477568375926672209173127085506043087329133211979186479955844803793539348780781050493199332604336193447691537302811137561935291872644912517415185749633780682831512590120507671139121695377565286845447543652050367462245305692986970975268217554820576023332547532691321760943877684423046264635757921030866815311378157207816200819351649637138098767475237674244371783995833488722889810863497843048744535320081849357370395304877377867679651383632576301494176404710101400640292078706538390344730524712358409033483876883207317112971904566771734019724875733875491309850628580379703651817523130800416930075971252388282303124291563051861622041891071134271551319785726920672564252431317709286856674690780481811848449979415956378886928692239724618881500685979824378549815465833339848550851420262622779635772270581396795724588843118716234958811607725415902181438834931269772634594915049001011737731257603625113282446467525564637238838973209730254491782920756496046757048019410724358278762217191560896716441701245345240802968672908862665752125748934722065864963641904556787452202973350230315541706837289315194262537778131589694388472745710293615352034086878702911896428428942138737997470958781385620954400248369103195149954097743852989329406234193494823676466647898180903266343295378537057244500262655988964371511111902598208100496923900455120429434139871055941770542545440414099459585348446880136495879759771090219170306612578264182267777553307181737521283505412933535058346150599695732748890889600581715615431457090304361405512477601139022006375040433725504274009956160537836172630636154008377158082888847098763057969277243339320840224141546847353076563176570708707527744968996197575886144128237449282484476250827963584881044174869052099941928873422413970991010392920069934633911609903884654170618409637690801307597379151533353708143694799306846103593305528331228417792061625322058827358380890030224600538297483742706575623829965436595638955165502314193206364168758740305183637641720407060304189262027670421077727389550191957609142910183945644642241316297248252762879808687176120521118694360421823898411783734396707043179041183736348964605552886121948380873854153737281295463953646914298249906938554120690391161576317474872021960283715838867071997454648738032087493394579123987197456927327743896746240177411230049720430285544545825408413616053283698956769249526175380861749920501964716464931160542288014232911476523518775459338749788579837826015367733278949878910274056535153452033895217113146111696728288865767977011035661862921776265920837084313470422931019605960426329689901640719793760952961531682273804767542926964005654427643308057538014415890630406856173674838289162071334963471203155807785993273811532618179457379034509297379820905787302956840501778883635020900952635285127881503611212316271079534650687556034404297403195097378751588695974299817285291074455361990631624459393453329230988935907573122417093231829498640811737145703448525611992277113276235400864663056194381483261175907717639817293659399621152871331930318714913412946549037571240052015753932308409510612100270712279918405836551567057356471942248916909420275323892330494306470227857340042351394153391562231554908456556460963204821957686541003478020307761074486960718485423793874205955408296262744132522452765546225575125508506458992989520009952449370547834710797788844499346182869700950270236231901610936463542581743190957045096235864380806674649585902373163440267083085958786977910941866350600195651648143956594058842474492912422956359107774746232295289472290433428997079386877523173473497463585330882263095169795748204726509258386022509944295077345646993231126713744031016164949762816493686703393293947736691073179888865347393393420227863408008451857672326038072270490750962362631776879817179921130363423689774973011557484040762725680148407870192179742840059407430950159950690034233451839841007721573096786692725326106196467062152965394705483762486162513460184523664651983486883980753632200869394038211547597419927665477808743299255624939939009356097957377990057140184605230824813472049417092544417679729540542963707452182721303129022626253025754422477690528585031872408310776223082005453595781795752182689076948222782923498998577395301534629318716097291825632615290873615547133214481225487332513468886855804958756918920110672411432220384871761511541574772509947901960833844619840805211722839031696391279811414645472854271576425522056034068520814345636313407397040646456984347702007150185188304725487216190225670729619899710510642783054864669106039757817952846470790883220041185284854683134562125309946845777404855599791316025993695918280278087721976010687797078626880072558469620447849231512844701094917562862941384473861993213456499526273433720698011403884429564260788626225846699934500353119205881153968439119952717440503775001511051988888890550760378000161152424846953816330791955588150007519252444299784212407568556399332463507152004156295522638018865115595998506168782970125905916923276614679289379733403751060845360653450238178212877777614210245486471319751558334045502668385460800940282096392508977970895748133378775898312412534893193648351560718459731914364323248449206671899912272476717659943473013688893666388000714853603530390180385835795874788906399240348190355943119817701134213658370320340086049045358318211398859916307047983716671232912464352804088307797019625985593400808529149710817468029443903850403761106525819568531871866945913405827768952839672387443245498492706205167790993304321582138062428786350146753645906127168402205485421566154732044467626816136805368107111009644900797328555042409339976295235020441105124935454261308122726727462289280006598541779678660950842027656725597671106090922154535087884876747022481813984271061568869270296571964481023782966188703776245791595408415932760245216098950465866682352695172915385440436590762300906645051242910988604240480487984124680876224824487677525666351727259695255749139742697806885870044879095195479781156567972888662272886878736530527121317599088734443269151532690348339586734749888473905388215570593627837940590313878104925726134868413762539403539739523164804947092994980616217503708961919574175879644084586591699385515652218213241335337586803354781475482386513030950842567540118192526447233910505460977643254124976387604884143249491355588792179666965603866746173571574808308455422760642123099804323647950600335842561561711176176497010953266398164789866183820172082753410451314536836553536511054207303794275124542112966803733106042141738483979906028280741810903757055923344879769398448941667792257663614885349429646632386822101877537897146556353123847372820741212211588956044596391474048481541456154217221920760024061333927738596818414879560091013229483736399291098580587297868302939972863689046232984176925286016850143904395359245093529540979237456411861856442768102424588647201508825370241028930493362520360374996732337449342196479464886635013305335616488264402910740475413809182695799104896649837320843294031308254165943024850202041476165990393950251707594253878543857114028759892990413607538005380827751989913812049439185437324296304073662665985916822762669548557279595694170731760886975710629767722691484699791378407341498308967839597711160243685440040171164131081402552540607208368942416823416787157071007400090235742633227332678060308445098554921532705016084806629452399087144634286511096439304561239453315143058531471281011735288244461281961285768373398483607015522308956839900392643257468264872535839375656972866678490028442970301085481347643229379754305420411320368167080694235406646145507700751850711063841151937767479179861570603921672942157555192628117100350139508731647140070435403263307432222740542235388222089377933750459185225194259155752284576917717369293275452325971871204233759681721321931266039257074591737554188246124028410017535401908891098380682279306298044033632942382381681001378105823946283310032298177596737204022957056291231761066766292554385791373726033208614965687206320362072507798305627620967334223498586355702398372690014073588391954466950058281162606781042633709261765324129200446893905014050130032245848427376945963084548017605469093015989651644127017016789564844312117546271756440496193564540305046502631911391370938587219986902006866393008388938530618170237301617460105383117734170771279640096693985695789868970801791351604959737938430837024105158766217182519200188681130462504587283964941707565873643559000620946628874441013763202034048270522783382418508094629665932899483965914579579507826755357527969087598129001571470082641153793386029531794304026852355160900391581927245024915669313013170099910655680531461375972490153332374724253168463167249763774194005327725347867496643644513635899660112780625382208318969955373213737444964941087450800766222357358599313324694398135517131914726733943064726851458554457632607742227034118419917159430020080364465880215373779531850140724636595396258788072806784826999343324980964912154607937213216413820564255463821568351796264546486592837800567981094154337317815621828869015765529483523368645238432173692631044534443827305284827353399002089096911670416806971220011314987826656447450006940571761651558644357798956038251402498110489328773893947205567266325811815936559811241298179027248961803646843696646498578026164736833493217047669319369802379365495120598431589218379739668166808455353581303155811602481440529471314659020157220042112666901458033414364493943725169496656666843714759103837318041416845803706106550811997550186479771859193985745509088740302977353775499683925844306275896730156178458983965599664593964029768278183702421200363646307329360326436410920444390611275946554565382836704395063739410111565591809550221120601514867949792254587191150913902035049008399055933591827909937944016756980966673613212388793646417388624368044211071895071641701168766264229794867707296127362695129195987635898730369532088983675540230517991109453200359461339975775503679583372536514049439157573727217620396453887750278597136026651544224246343713704142338970677408066988333452500558021275265747483800866268054666869055486748270613396083315886313935874422773439856128429429243617469633868889265678193419599465102190484408871680642928520302396004442325478767288211435602016801503618996813144726466398320144513095696803556119173730320794881811297925026925771895462475788615595550641688879313745045912679917660599533755181160485954922967444098961719376806609225486482966479770397954583472009194939792113955533576766343820723219070772387285757723270458812732610441980553234373619782081690586059099552452520634111438014927111372793024610399142337443907916444120021297369346158873636004665772768720836936299268345541144476840798504930706464701315391515325894873001099269155502571106356546791154560619961871479847950662611175916364153170385129660610905686722639548476088080212017583370936467244979680253978586931941843396728419943783820330129378634803204004528715626645453233106796789292849877710408395050300558525584106922548133386131336671957022677145875715316866594016198456542332458499958630460306834756942647024304912175389658654166505417765250518043452781144646669764491589439356653786522660504961152652211392951580435881023409799251932895130755274567048069576660999853576446300508294181638674427250439232044159795614058725677046064324026734682810431899752154624024478301007614056646619105624974483498793587884480108250961910186063669771722050819046483148416179681638865741965016461779400741036257365365852972916521817444997499279037418708654316880810202199738964969408952758148049148261146300719084922183996859063722576184759592375274364986065635539600766454586148830352384649271944367007447123793555951277975497182572105366708784404855941278859008209526230409839775155251816518273932819827950646201804747902752363795884243455727368732566405349484597133442508015907231744438202865400501715516920093914098384812233540073691814503660728325223513639351492276628677438952296036541310057489701200637201649340438176917269844563017128762644116587583047916464675119110045140156072469984665238996780016124144406829001094191643493768833500062631783321210480043503805370631120926452800903226021528659263032157451092336252621235623889768494084140658065353446096048459685822930283830358011882887570822512179348186074452909009114248556008956810434982290548381337023240996687084766518866171930355704434014395910649457934259095987086765151904779308119695559925710468132846214225896951236472943048258244089850909913145796421890742413214874886474598764858088988170218195451441937722326353137093804226759759580965270650727583137539363285403333990599295694796963927854083297286708250862540952010669007235129468134941961892227506089650840798734673747819824506915894090351151910206898289261895618146353622753393155365891772339428070179158077114087669403695063796996061881473163942544385267884384239595191938867976917172736311821182543151635199160149245546221265484561048662226581470393097487227929614469646752131846846765213834633075110311835023840734744762755989120729587377317063830593521965572905159702626243366348642091357612139403498858056975959819799227228829483807860288608482521433759530003615786249232120589068678522019059262686098118040877982548959343489729032403824214214480244629975363152209068840904390127737244855094632804754705085167974209188359411047248394023787631415230092189418121720908924160315936271379426422315690628438878306951219846869951952775420904583190519406988700928135685238678303235218012745693931899794791494974783521166840773191867725680394420704709068555211191147608881636359648531302738897841796195335201028920298557054081377356930296624882772628318387206628032122838662121660393229990919627848753370861720788417905310489870927193466175167279980378761286345506212829489793894079791705078897522516429772295467961529387255685775984628330398946756873370366139180146379844450307266788182955377569434410968565811389469955898887893351583819843907432371246687149215818624176936475250722272283588340748396231850969858352271674831521436033502691676491241101666389759069928130366867798098743822720361723082552134615692662877316626203109552045742629600904701171096107405873917565225639488025316351063160902714094352253151161495543507953556049574259232896587772044256254870196646648121184502216661505199828053882024603716327276098980658782128957966365297675845374524550706696002990670362428416923404602571674028041861089482969473349809101718877339331628852321702491309039154656833123185149237446539851235393606021523419625814868021313301999923302485016146802927372211142193899509333568568395313111416550801367975477387936178981210321762977947047098066599454847096858624131376217338313782282026926956059842274615816925994808793774357050056202850467955703393875086300890545575078572578050578205499215278709464985193762597566605696552796358335123056215169354334459494916192509672505620378740836097418240936515751360957998237890831944409706018555830038210289891058407094594436330492919780290967175706116531551767505217480231691584963602189683047684701581741193279473249061020992078749789383830934008826822775630900421532771710041611698100324180564915604745255969039585894379253363564553551344867077838345450921679417254831838449459512840808469387060518380750526750576588500729587655351586727150932323274810935288210534613171263856449084899347518529744996858057059885426978854483458855565719544947509354329207869580710317950622892488772947037922389220024997873331607789974750452411207823834792315975450210756592435118774756832740943936186929014898778324674247535229277528938999046747933651956619987952389902841759135382004419562279950788524867985393804713869785226891157713773715917762527704027091375602525907022107358775829992533081367410536676133180945617119723525361824173897037655331135095919611229805819356402527887637747956100229825558372835482283302298343251751908713552242335718981881613641098444196944761694838765109000542382194822240868693698372353902806979243587426726714590781127063514843483975531945312189729225164227340606786036099425132754130833889914292428051886203070362896029594697719412018440129550162268478997588096963583768882083665154638222788289616364821910953240445051495399267318486196933493131393703132010130965012066948534496755772944483412639980150979295339514266798356301427594916645053496104021520096196461434828612918911880650592235896607758708323646108028560274033328360944630684005081686735293427230741447168197608696187897030207433708632508636319779909045069609620092367106837553781577344375442196016724639768239899682750525667401156639049078099031721981139971859648182729778692187654406757418318888700419072008146806654182178837351644895181577331903625525153653362643642932027972896824833299280416237111115813760237668890263842311046038669292860228166256703768232467683580650674542318145814045718383176949717510540303130295177042830736428201269454513962722103396509592941399429215019688124865124321614258386631045296913032447738529770327059615009939163865052703261058002217539409422220383735554002510791636763918545518014829635283662847840673450131362321751102690112887298796386421865475252285155635857504466114609069236597537018950844419181095916469873663752254882325965129697307417471886447400266549198784463772977159613374115991466268239494526366172142413559944982499201981293541808663332125438610835827763753491898859780262565645105706598054128975307157693285612749291023993309715922499882450169543154785903814942676221694964334576090272354875902726742923891591621855085640288233161570557129209674614270257868070699042665632600581120552218991721345638609359922119739726216040481723623074854450268845327227857603318821993041808608094373370713670265654676884766035951068321768306743707807117298080090617556987135663748310066489222791973160913166837628475837678073435888358053109581274615388546521611022181500318184487457842230046407335455510833293608257059329119795819638633704919835005023943095673336553975891090862563210194191749962426747245772774837145302465222214402670175353855925751639752714213590614543671604172260793294885027462459080860869384099973313614702596059500524702883812141410869844923841068314087799159872640246395103481889792449843035995501211000612501584831979316255644103573276741003149818867785714417627620851586701111576874230581930795356155503230225848751372125799503325007535707096773326974190149461919675342176028268380542686823106697287070082635991960569836306687887300065945145287172094826746528731240180107936136641610978696363016779345679004847294769914330798370174423717663832855292684083144075342767319906197207471842666214100833617363654168432125166903298841112344558373269222863615532522716710232992258089969758734066609624935787673546634762565772379464866299302636187903159333583202105268979892045859998007083046450674466294392100959992924470667639592163884577666611832827153410561594509269665266856980218280709707184336502431768178065959497531392446350870497147126210449292049813285513971707963237442173097277043980724575493262897750524753613221373332806843342778823122202604167127261305590654522948273314081011680818030111825558167901427966811237898806657316111700539879375339216780204125443921928478443525617359405006658945622245877106091078778222001385635568671005469244284391705555282386144679397545830170130423511578696087868199106571135938892002392487233644271832216961440705591351734574743398317050696305665584418302583589297002501903529418450189916318888258966587865061401450739686096487902422254133147724156775705656678033610228687627587997629316855236500770108595298126542431991616087778327561657819725489258636629761137393618871139659476280532689624753718243223074986614616521667332567848977631526551908147067086443286825216550525663540157961376269572801325271212738582641578630680106343789325289796822274381223615984635455379554183235537269484046690648538652278865883966834204586714323193594942363437550388082901883774346478914661882544816709941714117135939095553134899958769968356106748029626195839816738379708341151664222003225017429916686233467918659176870502320016823279688057999039116857104277157549067727311810942967489306147538032581988463341613723022019321549150593509062028298346405438189699814019238782210275718151254285321005348103108914324114893757105769333053765847335549773747858449322472925484891635932181707020787963829999880969285419236745689557873541373813557234351025295473181841346734122227791444506485318421277455925959295405946005554866080569031642991138599853781780229126447086191782881776566936488256279662354627006809999351100148945980349965009805889899784222404850292617467006157756446162789956004798455475810104458242866578814482803631880615154059606475661044957730515628544113754397598518403239119393134534718325540698739114406856282970130167928496745262998909784065161220082009017974867255877554857375989784269792387561749963345522396357854233858378023743416324178865897714958527375089347448639765440520596569104416179206866781327518466618764383313724581612947592687813900200110343799627930570952279048165521516922762741796639310958614950035718662610772797304179456616195873192858554443911646762837164244707628983666328539129094487775261538302632036269062182604118972788295304512284980316405032156783602846954112925459354610318553786856033863908776723553229626542669929361284969464766714680919806301762479234770275744658142495094601999775039848888798780879222818613936952204876129762340321002409870411364690978446549761923471260754977300495505428479849112941733238753823698067131934728814042988418342656653754944020281895794531940189003268477811424447464281584533633818146727326751140817650578284494402001135439653121723754956243040269330951609475971363879436493814535320063953006114424870063650466933718888905391904595818779503920831732423511269673397361665129772259583459139864571202857249610267037479977508634504740962414719382312682036949739495266851025282215377271172007930151862093928746315149664034868826245804865795715764418634776586863603626456234008551678501872802995382058706546495977488884362856730722693535199552547703316391672364094134666530067026415711254555735193382539195364590355597920100344348260585816327175217225342689762211406712192176441907356012317677954489991124315509075522919583052176644860143055373508239746047053540440321654091923768804596366650804118472376922943963111538845043920605761947857787947622298396980865771795935165588442834303393553436261875858404375404164731085903148981090910336210137812267481288622417896680603780289837089123637708270680867974822046229515205383326323500368199449339354388178170209238320523921730701773527760283901028796565388068271253808573242600633061969842703633788508369314993330259010625378902266436787641892120428632554680768215269719499463274576996445758141994383381796047814866816903341158168228627709914420193630200965992657205460547737429242642513535539184156195345801823052361311115735525830641301454321981978578931354896756672460365833661101295802931221018655715075053345499785054324853617680394345606644381146896139767166777692218716902765136719617796734439311576704575609310548025491271854985183816573452187011999308979367709844149121525823173059517765951241842987349926602433530095284990561674251916024701607377546728659904697455377405988973744025060026041939633730101911159088773416770101986481125307316832006044208462034005831523459954563038924273227733616801688917604995311785888890597876097076287642400287626685470557554160647946837532484057858300650975121431439176120769316550758879270370172723959570360145681815641607949321985613716385533093777357405012252767617299143625454403759395652846680035599734191315197954725348320206799546110509551221014812093173554465786345605021412999312090137696328163794758895389573350574213913914946551449047477879440781853428951748491984737524985553090225092688207145394982792981358597771658717561385530324070056127092860323579827818435081281288917754007579467414039192679433193026672009061536339749613341725501677397144456420126639595649177450359342448191245408321767144145796842552486381934965132226703638141154034670886256390379535262708501851693462797703609903055455888663915837709744171097310115181101595114734458577809944866348338352639225321345468190652141201101276998577760231972742852949209826332427597004641713010429320805550859136873810714647086022759411728624588609623576339514714172456487568762948001326766063383846593569018636066907406833175630204235413782263003985653966506685558521991697541921489704610087152067204273048679374691115309053127108355077587909570211388317922801423789093050027660169250063767576078983271554959360292156983580055758682331460069747289441011482780835251394004928842431336127794649713279853724436627611838125598913467802078406082654407457085531685432536228422265044613182238363031305989641561232194852116053277697091152554735947729205739853666468177178900338965447049258240199012379125224979095108406859044612223068229838531855661304821930999253211363627655623947806667833575714997540778775766886114250836940354109633668093814532878985312934437067595604686590345720769522892308679495263697847445924756851418816949493738594674098863368783011065378576482122444017905786228083858952205968859814115602446437905773235702282373187630903246350906382858619173194944712103996578209257927240769728327919910038394700685976151837894179224154369317099746719080897979574320797976835505553932767230048600245697899767488689665856552239240047842035300853136544111349038737369319185674032209710234926749721335246007483463887776767618028100043760729805491424125731055181426185491102106888410581642673290234862696084643839236809136758584978601752259133610423291907248487378526529992429119048709257922012194585042914852024515017935696572190172227551432724559817618601361909370174106007955011880454112205350793553215451836016831680073249723411574300896540491839440392004284979392256349704128109257023217341000877253867350199361844721560434071293777910964092735434308764971753937361098412374042006701278447765100444167182786907188556978745152429660522318861835445923765481453946791057882514257896796379230279683504015331421947202447302513695158230301855959359822084191654264094595901136731103139872834664901524178220354724141817866573712070683498195937073616931598933287603198239133566031591616646573636238115003816837581235237727416351227190991900643034328662321340405349016048026999406064893947762235497852303611924106857605885163765377400979932984647318958307380474082022848193498802611682400264139828336351531075476274178729137237317291142169060897080973901005744886012361562833745506479079658123691683493725454156947264944615631848678456673875529173461453935409202477316269450156838753344616115000049152407267155076690293782552310881848221891110341386708933475331090928186509083290809072681334383435797455886101473371462739923521020946335785301011224155228701923042705440461787916955981458723725491249523755996146909390318472898593149898252849389015211248461510218083235911844916027072374186312389416741821576340138428279209324770953091083899985712777011308634476049434199626684977725882451651010658423138154886614838838449832213800198783104837462422304494980987831968201459480459957566659078693573016405225513318234248195197233581522201314225951177789094834498214594871237858427052630738367177273758266704626691173367068061598439652461068733763344549263745621355973644653844416254540410665661183887629044812691714654564285342923437763047215746871389712506978108914126407240706688084494129238442171003397388386913055556552746922198513185977483602885648591250881591071136694015224795688194548764319191000228589478356962017094263531505619263603314194008947444755564187587979849510945274808233734674539561204622527652527018203428762709706843326979109859429803853200094177381598496098397555836849823990607934729499594480569354882221127916760368370357926346433622391551944594175592483985836534185731430610987394182568272198050075235282172323536740710890385759938596903749828435012960073098391215317296169469111138669407158047449350242489893511231431988373242003107228761506627028444841577305595368609082855222680128662776640931384514109246869522706534959506058268093765954953154579403772918203948524576039120915106712819712997013427067099899668703225674683547359311158977092807717000256111236985953330900824988437319834640296467785620592095265226771096084975017401095368603197657607260772600081379803053956616362471050504559792346149131542582218820672869513911743008245767005637326876993070031750962858962719762109097328862502150265194980331885917561957363155208774210865952084983346230237815953947424384222000616886611763106140800780328823832787125024299377526383309478094583273568421233570044900979161673037862654666883766553363364761793737103975299342501181943900407324258228654267516382162205532138834723497403973524056247831792975038786592865511899081501985277982862115518808899229761829616828227844685663377703272267017514799435913645964193582874294085013309971022135034642450783200432171651214020515248947537389286132471407338129355528542362068911332680032436453817253767141884765155318161233503548440361633252437173241128702985618958109077739511698354627520265703137845005089402749555512102179082019558526098197886889219313364751153122161470944851987925731388007361089127215244474206487396512592991811427340349906017946937635344831642602789381228667985124351068121192524101553213312307777456925169367690222801332647509538152278853352242945983791287507883902121768857548455244029440098707854161328011807104714811147189626306199059551144522734142053338535705162182250931032858163217373537689018610992969321108416565867036464064977539823013427089859630597234516106798054508212025153931534922820781172079140862876138689773517888890691500094276387411962726474161561421430132026876778399078408088347827358957818248373757392261487817129838539990617868475242324733046231327767444717837072380334407784626608007128031723409527777501464822026580583045194356659608565928416830607814311924337765170597078579654807763454105104872485429598082225990316140253059789282103015040512990095137354663733162884545464746585755502264758689367683753629341124903597963676543043502645541985285899992545839268053370226927842269659441103167877881658824487148188810423894967057905172546067410580573449046625052204541175401040767523796069450523960950813207017656275527822486987428837315931949140102366711554531185845773213149200143101901670041890783077969836129098147434858999315786665878607631558731832715307615186098429594604975616553084067763587709091958827728987096147984083580159843493467716195037303556520298854604881021897967869215075017560299665773415220669347772656519771777152258772144478982083634919399953181608645451954113022418131127207459940641165165129650153851987943064146755952663629486082824831118041747945956564890934903193919625392724109506570856293692221472677504424540753565888004165200705974928732527926086208286353723674495471969167932717117857503105316226567236728091109989525908046887083046489862315304049140401432960022867248174523291322224425416264462127685499361921601104696418653101239026980208057005401563149893937627862568057028551320314811441373668864296922285664661873377183469021011992638038538969775282241231321212873134684610678355578200482070818446902573700501703398361061157796813653094626389493603564722239450907361900645000396142288106674448801483220586873538005413262738003435955404752308564803893001754486173218235250578099271300868736039645091510413148631556237778127821489671454407342056061132004583596911743636484743809059134658377749954412231918374720402255890721261966650016473204281243768741869426328389906424780699666798245563421052062594901684451225831890089859307239810283334607642438205591906830651784896352499685079394047656494564966917173188515729440444991243579617839618205695405294448518395573999773092073745852015953258669572122489435004747801149829467514191533822046891171507586039434281758566901827677692051087465310129602560808132955237135047704028341390124368375857193546101721981773529876896056653175773547339069389807383323734419005140871191666565054511138545312994156769275128988699562437905843496658706054696055675994947026662060437172200832441161248031832644951704007266980667832768355603696445457305820938471982148575301219031821611473545201216495099038582465445600029543231258247745470134113838127326605060549531640381871346511558090188513460911690641227660834555366218801957046066229546336612427158875550032624325080253878693363494940490144292665352476842324639971235303773668779132272718604867291073137362157558196469258269195718143601509514829551302247818215335861529469799755887427626901665473131495489951775317911039847037419635160633255843178471240867077389582805036983804985454445945946701060709639963334102286447503350929766919929886764587317635093531435496104196354455269423580978423696281978003919279491072612247326126798907066902195887750545628194626494881857777894542655733096996654860771257645516584133532706558483028740720857190784854483507669008425820348877722694944074587161150883564316344062158739001478358113954582135838298330834929063752230347768625892594200401172044682625216546157018247118370050146372642152489368408442410966599519881522839394410044573075908874935147690200086849547881932147941748474439037571473201082315617630270232481232580724315567212651537290890261773637932124067840973666861522243624234041644306941030127639048866195966783458976289989101692479224382579448470834598570983143903705541637263223326920044225176546345582904943622953478082961892039736791722008985249797559568092598371311557684652610577934405842928519610840517312226808071115398514211834738299463757028272122655133741299032428311814630857134583169147499923615245633543592401158552427930562603881817072514516374451460597678372673376692438603458421952308425767570487253965222827947498936460184460939239620883863932511822646447262149514648421630185194078063988158482255497310303024138347298743051730782890975154651251673069848677841744509281884949682605527349239826619232214787957211960905972253150336550832797726727385991174501347517134822568231648684299802878038040789598982206695213884245580757286152519716515951065301615453651879751185951703488159470897733789362276882826335859794266631220803958921077827053479866221875922479017926614440105469252442630882348746864664646025323236028489581366822972871852920704399283536982379280023732778123177081407059112756027044950302310922914425946788079213923431177476964676364541668738198728618666166458083400516108039136145883990375701187390336057368397705559857551201404132944560068643033065222314917812844468485494633119274364486039035484554882795905201276042900265901316557300343965118159699188591938847341171363228962786609298504214345707105050140932963311575173998891756658546717377691193040101924849846274834145655587496929520499420755275699851105903682016505192130566364580263346002844444851295068676841149054461534525432197262078976115137105995568001877206132175942692293505606715183956701015164292519385862554105443866764220147761635323242300137533324739761780918777295587019699091936291999613919598558873675947388229270445029493995742455084429666100703172437433689257271844368985796554873866737401870058227051740255250667891101094077193417752482401033017345984011029221636029271653387912162234989107770945265509175160389710756580231501893046222682689950552263680903278842925086230414255332917228369215610771807847881661084276328669460478781756052713455860862177029331793513609081035845179941857654454481098596283302461933552694138340788430553626902624073128655567794969404496675446037264930364999161999701175965571981756271978233350981881812970277056972675925335458252262878855702357177298930572882024176008495292154866042508381264302103475686402372378355710514189151630719301659933775463226341206459658375961423796202138387128553267499081811017705235312233931855816884989537520875405072894940789185448974102338412109207138960645767796619987403671388028881420049267592175185082189595832163646933139649663277939998710768515127346206382962954107472009541390614873319575239729552434768656700139541843497456854431289068816602300002511063818424659124379270282410656220157610816414870112267712696647620816058963036807266008737569936282834440311512708932659436924992997529906475069161443959213883155769769915949400960557531210765418195702600852294790151558654825007366788767465038865140684195390638234774393803104619640755820274973496690349095489041395382065869789131582042117014901975199834996614874396121301448188391526333980318847628792235812758042103198720509886988831801984423872647961831758399964869101352645866156720002512645071270151289534203065989171866321509629135552360215929962176746052072224188572388513887812670438290337443766704555640137212190278279116324182516085725315007989121852871627103455861340323128547279236278004927144769338534716972637623295444420211694208101991521851698531309846967951305941992645022851812045907316967794957332868642254701444738671089109351137850624117779498662792605617987643917396888043179801793843136698912498831888556816866869098237066223394587652308545166434478116826718585598650445209166616000815103004067765958760231539451430458413515237288753683461219265468743285898877194256024702863568102942465590373202077903405079981668710106608283056918211165077427852905067840733132178211612812344683083717068971375540829491406020706489712676569406064210584200615804362102625560372646122985233462665308371400203044681138186089099295340902220354412586179610283703093759588638962445041042760901955416027973312460091585465540295124911533235832538035513284022668830779018261588668139648910878194894136197599148348389572218699185611947449519536651664831240776485467164042257316852885788222690267533806973217990177844624276212682130241948578001351721370819663009844852372540915808177935592382807420052616286475284370192607165038826558339751047149015919487065403616667386488393189702110995521454043815814668652518458054754969136669019247244928705046256092211790792511104052121648285492034235670418281330883859984967666694277317542906789074549307382585905977298474342884714153025107247695454627644492155414036641777259535137837313706592509657788773071186091328053352071119296084201432841619276246732318151888006864890796450876398663251537402121851266826097476433133386149926416999766272677196750476528915070584727503856625751809424941749077319682075614026734932909948525949120962337359310052850441461914229256810306061279005478801143777379216881282940910470717835696791279827104691751132605531733564334564943764440637602537445724889143760482807262178476641680977864624655548458749564493347246915716438650528292931797931009536058027867539198464906012849704863805189310355737389510137666644565920433102895677397322184774415300642192639995933419727746695073048095669224174812719011573715168244898878372114221907788484036472687075364842203190072340141755052257177280261407914393016822494900802421128323838360598307443125198478025646988708818514959991168439797872225425789085136049829249303516663942438118141165753750926416388850177651082165125252017320555003326608908515066783160081772055893416197836987045966869367806853374420105065752406693282640666298650198370101727870615950461913306990780380752383357949428473793063364367884212209114191112318360901984309926308634133680781691192004636976479003524372286135775857112577195239257206963198243335501916716695155139986975138266770719302860215053011218237066517102091854416572715922189291653048678496911007494922003090691622091389697500361076819590924802047329200571754558293721091029096374600952301725337388713585265556948179959412620816332899256940097366995914778089051032649714327786162151471633705721158415481918100008440937010237280902944839161899672981955697604228701616328195677436334544738878474795830222892434680477356893548500263222650674738877796191737002422854389540004734728467344178802924486460395081664336444164805367711709039344875925533157821087162001847867940553303584671730882201612857356148539353524423551419707573958236470290483008765377494010352573993387882321648990959884617899554613225083239202857213333096950540722472643065641509795868075277838721227816040550121808771337933473887319234274452053632570481891314478731329313403988754130889519013690188599065753758017332844615103089329005919487580530843523630220520411746759691923885599278346742586726663396748660034984077852355409725180593055995254677982304778039870772586571742206322788345949523918591846841646756055992734455326295746341203021854322277411640670667981597428244803610440717659445059234968578237528823661468942466790170854225215062248526360438263908175430600756358346310982392383536099277567258345700285381689081037646973516141099457208946707975620611485652776757714690745031973243725176244731835721914301677021860077524287673838048162230091454786611647271751416124730581492789879282900178356695545112940683280235717527821785920067599719075086462984836386040805145536117514748177879080339772763756171024875751072162466968462072530454635633034727501112875897789513338942994326620317013175745036942171700860877298120192600391221062088929631194189914568041599467493642371090591118107327067069003247940745275420425121671744653249329735290847080630084431645422546325424720235599002911665980195555657433730353060676055196391834859435831330978669885237930456215783358359826038486707743657352214588466012781516976982829007240555186808110217116406421101109003993427839641641133169756031004190954740105308408996457151180157469131192899039891340660857979106809292970564950370170458263515594069391185900103067099169713950931291036243511313616419374691185205212128578781807881225732104859729383798999411080511948540929320922176966872716952790699595890964015933020659141315394275883917652850280797969954369836629575349774813924002177371384739058499528914428613147007363430713352436953977380965065806954282783371751553139542223146689935079799540982693394757878765240344371259518407879842468568956318265514206093112834086846442306524404547616189548022846106263019338658673052054179131061645698171044640054713414509961418371617895028123667129027710232421203551082892765599041181527590960418565516207671853908666597788712790714404477666758393473628259116246256196354866887058461741220082997192628396211057176993785963709361116498766280743553841967155707424676704437164309594957231939852431869608589202456659252148269311089577948781221304815680654680199768290257668553714155683178101200758202324504981543335403802154365664342509115134365798337759833741005010699673305954062476182170004635469754715463739749268493370424267067784949259382494545789084396612388461425853334262406714958322425055976024151110738972274474242101662926028666356485197134293544568865027548400556209288629997139698265219524007679342342734015970451757944505517335079589916776643087945162901209439850054649284679095261177790760288582409601777539471487949627449374327319278981223496660530102789191235257212979053927715313577223701375107027890590588338932061613619104268055596548231036220507606103904204145772499098022696668923037262096676691282286415024847184878323843144586946899509266582457929062412617120720910129950290071625628297057236979079498186747420312385257148721219324190200404256031211147687938169910532727362772644051063068569115256901094138046409365400404060370933571248178555675658637583375376370730083630451375828516011324005344481267497854346075161116915285161100715541508487494063148723386918674996677031669936746863937929045367835203695714795007751313031777362143152863082726829107312272885724875376745074488342098505948176514884808597115125669951463368333621187450984242134097510097771012871558730019109270711990341935160827812812908928958169974761773928280230477473741583206220404913510533821580037188187142173890851748175755234940222824032415068636472554323931885501870239012179123954940292571595575700410351851510778530466662988304631002206980217117135227792102479213379954659727709692780150358865812566816522452442559273300599875482871851858234802525759613633280753051676814005949121191362720323431557725229440282094369357066390714208750317634145248106754218174841968336247334034539710372292976699165573886771921982223241595121542234631169208055699986681331626948248268515451800932711701043087435159423316615257725845793522866132254696649819687982308756941915763544960511135459728978387402263645665769010769832678847648080348723277284598056244155079333313137081338514002010200849265975992154576227813013808898491418651862125823379919807275031191059011312265776857560656862766806132965246495939627879363543524896729162443706366287376425250668256040599967034081403959281968592599380269160832876274451426997934614494049807567912692224216194488597280010402026850443966747717582055402509602633352891074951432807170370839624685303827536981355686955402710749477109763405689113518414116345199897857258188125708055168292194290098725994471674119948135978512500062811416888902745063236517377304623232109009871406508029660416838355251695664827816716019978264146256019229629686219129817503487853190776626071415750651858976738146904478729541050922083689089391521020881161020780731640290012668880098693834409608412198411889273740266983283248007518965939924456138038329094551159232766291162066279090431387773790627012169590611888952030375168682746101346208286954437637675272441194668266323963717105360333839324735508364729028419117816441525810984217870660000338077004729411957059009086929398253179540178257467387681377544924787481788807668217926955902903782832523466332010003155208300769059596789844729018996950241669144393934171775243658632808074054055544107639917862059899033515543128827197083291986505056784216238355159919909563212969366521617010101575695218089088520019990699915707745857929198265093732608636031053622635230805395888819060124129077099644992194172412769533911341603573510253944685095977152591361366443457868590875846181438845476328621083890725060445201267993952720638882537797199724503660159005917064397350278878832423829421068387522555656003111859288744587971969857545800694449023801646307897517623772354353713470759212700173157001095011554452398533948105738848325210922428798410905294941474011834554252761757190327381499389820856269336258162372053968526581125868120090825526477553965693793033675340853456433437946800647316922021435988682618416542356911833208389416590562087757257766667497041107113626060438557460344908184101779332174907401142336865744729530012758530601790345214741720149096790570523417732721805305816872101901634939657142150172327107404370925954748012684901447780903710675329681810529184463160644493153272076038594470989098254175920828935152985545156063251476351316366806227436994522246688770653761112425170290785239078497448955740387085257271285931649755582425448768858024619880715843609736590835767088658347288596918967419447833487601335128956100891695039676084900107882444609083656490126563345326492424594463038542824287419807571743016839311333945228996096896496832945527713402866479590558003631689247122015928354900509967516908917394953043513854246322137327837557344791175872290940415208342673843791279712510670154348610655840378091117543347787781516413530806844340283672011755427704741613086524912850562010051354588435586265359914209121075018796315691860094334161099635295144150124094745611584690290359754589036780167139244206348599136228880709622559689484585274847540449203209438634910026588627219305560788738878318993813699243892493432492337816193241981009758179306512942950754812413593029568989114212905245520753098207978611402599054259310191977372333166871787498268502997609302557813831075480028324557884746518728448390422286239152317170419026311608639340605528610122533322876350177881163214547791886540510053766206509936795280389632013074668530643885498966836453144050744140950908364989462382326676708168972382377672386938402488484465224173742150613817511733931570842980193822814394549691285617578269390975836757920162928328807081994789499782691943055795191538238130327273791555918814370136217333592690767484199734715312439581236993007419883947308418115658870986155531568696793094636219591873431641947485757110885383585810373964991463726688396678549150286663403066382464655424227899796558767238854454426782010922821288455224609978873132498423768052507132374948660105256115588190368457988245850383307882314348444263875401234420107931211221717962951021298308019753526404607041932150805425114772238450270315601055208372500015897092798603314680562894890965157585212559824206071055546048579196666824040412832190656247785941646445935423886870987810774807711775317404328378176126046504409392486279988046182286740828838069206821865633970661181154407405505835212527287451914093613946844677909618583692695036703781705802469719382194489432725962571553567187784105257661090306842218973448316632072498594892314366684957163540259669966428623814324894293759758418425375622002044595812251636649221882714603556091204854188926812262293351941628706814454619315142683950015337013865805769826204240102989070790486000854861414542914846715195417091570600011757927001583581841341467793082725268209321455364978079324046715175834654782573001087325980249230340380375202206558489784616079146596288509294247351309717049775732478389432295569374243591750351675671401768708126030138912204575644221171670230489749106808326762326480477920732098668417498954965825411821002888761474593214074242515240108645775084954036654475967951242546267093579700899071004401677548962075297181978603817934734462638203756083777230877106671116913788783837856962069259972216847582536920634661976514397266454797597035233265092672938778816712900867310581817643979314833404976432708405917042175701149009620374287733601307488646885101500780659621653998951731048334629902427498674607387608585186719937798040480659607440131259524826759923103835016001532059959993275768315697889557589087927305379768873745747138253257536865967479824440210971295398481384208251424055770394463211117261156623410236471733782007285164833817336942742508574141635048164106976948476567557565133720662698363194934523344104894768664890602097461565373912115180901856914953783897940074862370470512464042414337977119410945412800438587776542450754983314490150192269570296377417379703603012914225866863666572785080993926974921730750623125951408588607860247063570831613362664269504576022112267106182224234008275732152389962031697041847030525207933671342533905318420682222136558759197453070097913023963354794201379901965944696859525576288757846686127552293768078419446190228476706803778262809441959660159115092559516553283252088900744184790445072973572119834957893327194644883602253468535234986180186768117277788020975408069206187070048579937372069849002488518341310193951820337252289453570859900978196748583748030719717661951605633373348432572183237074492838882108884993019012049818266026306058843214333008296787978978976755612980400012582795192013055721962719400742227511162154184029355494197812415158825229628410279530094842073904653534534191219351029277863371812828319707206050617603206670410730710382646988430765362386537210790810942804028187871379696074772191730085624957204059869664627614434928248532403048624090813544237012702446123908136136347120014037261650442362265680861537638640311994788806548456886556952987688480100969750539716299461233208194896971814498905289108539660741651777584185174858895611462390431705268160459344697494544397531196199161769811530674759086519089641967337445652069697966377495585978611974365496362054370834341505614801272973461096184735048743991755103995965282502220122485501798334876779489940909136362377963238211751478401902841429080015329204460208894638460869282793319765686563569361038369694302360629956048856336243237098636124110469377712432295840205427586589923134763790797772591383248987332530605342180074476576138803100725321642809458302396136739486097510784002925308893809709056055918710018513853331882832053937577788243479651123684433180992109273995431061412659688600100574539053264213539271772735323783135264526085135490061547593251079666486932127437405094786592093307246752602986768051698698711601051697697751868117023602044052071376248080633386719318728360572301537971050832318756800614545022890052570650464551252751506010953401657018840015326791734819792043705955590437052240148058318754503958292380984898342440764937726296871129444977345768928040446012039193846488049983372969155358769997374257118694887888613420329122479855796738740832811939999322997659318934909180684321421217823213584051336517861661413280917953240621478596891979563701486707959806432379670962064297123369981761673938299286142545178582786325114470865680851522353016695590725073208850868706918208091475383038085230043695823058764069917521859591317175962506836824408796429694525230795658663238237415850244115416657734384985575245078252571452469300797405987725907667193313834568316343715630025491867977782670981073084703101313103162805139654926799884139461077670600356345446470473381758788202082726764138241939585688406657236288251516812809159196307849372361107301498041628006240884948075979622166233938086177522253425840215916599643372340370723774046674578212967525342938917780775182495648674714469949543672078830263371224139110674547216879513636248841650857515351364010772382166783257991811437438023772624811714532729660755005210542724212234501626462900789977411551233003376302748141304085354569770005762027163680437971295640166093398233384980746315297389276405740015712824313640634650151067960183536913904603836958763508743669953148584959241273992144967866280580761576324202910547033235491393930963527187200815229995282663457914293831872200703856979459188164930112464165270930801942294817581105717565418345680473341669853774794505967119106838417829800949395767257381774686012005066069681548741576410147046698738674643391819037560543073987641527200948358739464865497287931883109886756131714733152724365019032342963940399108327678334789909995000142128978495181980166704699369575791709299738815074312753342633107312168944373054404213762909122788918538923363863896313116678548263689535087469007919581751341066681675436261229766772915584020520117662709558815898800240899940347739553767426153011219166547339817727738403406260785225886459383056300381152408923995128615199313110540997910498562622179515569395648963022759380027157034698784021303489056261556045451713066823921463805811926148202349565922519480718773539515378877659833351856643602131532814147861408460163291014197850196811018311972939904529158351047048836146045867561314624127043951869730986697423816989011014382617502939220186449160030168799481984380868641810426474748967404461166945704807375840168119350547796247948555870762658705133856287762780158749568735727877012759322232197900184793386908841829164533741527127543878015827480916981129334090376224546589050219402780189403460869806418467198561518941139226955771936577323073788180089383753906524452862839439325736008457576152554981297896104213999053473018917458238195012833702320936504749620847586744743829478707092006348154723020997434120560451161562550160957743010648697974729538630569172078936905017361331245232017816417926181495686000726252254948295026463098366704884808967171910078363513181645769606603288709832013512982891415754909070494802427814570215327575640358149586508720747299059264046382344055326116788452059380453094245283950191872085854363074473348067413659135023667953181534031139438534590649269183889615699251354396629740773399060338335117434517463127413667482940455940097930392775035946956873950320895817248496080230516558498407287484899798833001476103439505848403515778320437084860501983175686244626027576019834509523077287473247833218200677300485397035914779480693849552993298811076999436780522987951874046784332264593042696786979774321274891165356222433484580281891729769143820809833950135864017989935071211059784485834147146583928129446453783183482691677991148693726643739776858765718632006865488424392858220409578960012134057979187904000814471078794979242350273947414548839940270791606217905529815802680749766775737605816756366616132340850779444465944876059628652190849634656751393537212246513342378014554836435875648850346142860686822818357979516966266328401207297991711488282384752455476062099361661804228365591137496474595121483911502782780282246587274388905738021486315117107881055575803861341995197464316841854754712844048115160646602783099896942456610260499007906563109628640890706131110691063698420740013771332745097855351072390919640974289122249531056722859434374484407032708095103668318006327695851121237542498689481312427597615329869222363991536016418510081252656666314260033280577430660828315484906566166209645138888767468609910947223035190074048418070874546763090502651442408089889062027759938222097752246845908934814539239302408354518900769980911620795751884395070131359777417344430326916552170429300812936315295688021677170901277664933494347006108907635219302647087404164315010068977478241085806117048109312340224387764517381471379765956505878916390480466933093331533557373230854095237051470689241064652808956728390588324353503736976215292663099732217672224641887956118159233736040958834630007177937994069083384072791861853624935894325666645336692264140175492934211245472595528140294876011323531121282417033538656875709041526327779291500536330306022334025592441089953169961136397107586119541074832529532253192402391972502277606088748511822949784944627574190826108571189250553191512452318114524953661651022036022937166400530177935234954426906659133110168852058729050561144862404667407847307675322827373090792781553504995900279229463339361230152858320430872127129428738604364182337253309114428309516559494956769776937001109972352086249215640772022511808880591635979549809719327054030205065132847235172148729538997851593380750183943824471435637145703197117208312454466002804419216318253110411080783766542369918115930456683850950948334200178391366449238959135208345018071989756357264316719034021880639496990081982249990117189843271044867763823224822932292863565841284435595669092468635673047004500758531181189468641127538796856435088601954742456940897800295360110604411627314644483630056554652566697945011822289126101159928950737338239747005166065649032026688722463150744618442542191747317694607587118146081991920519468081912858984073443916037019710336778590028317459562342541483891278586072432457855443722652356947495165166738033917928400012644402931334691070927305403617282297516517137571566433940997828008880385458056652457038508060156663685793091360573857866026126298839410779462493826314844144906759766340628521782992609184049444923660784270061001484687757434328535705671562054599825636643397989468600925391106841932227214298523599018786221472014336741699617414961157444808654136674287405440120901572873672915944681834332560387930291083258515580266834759541723351873282771798973290711948901977865545410702281184364006659888056877204333686208924928547540096256816213666238134813876008913728143032835672143026783642262097488046949348137140512389425448599256698323545565010984866062782283242388110695797439779530546114910991091845899471343304350057827595801978919405971898140425263472196642902506510097066848567506241754022917674061547455109942092948036213983083790947000596788077921935463586688158027974034329919287617928506663088834600200447904590108309027571738308338360289971856430169698835644885065797716352161394316248431996229272875687528746875250541750552824630818845664958224387637093412262946286395163530573945930332982781306255391847000778197286571461584517362753110029141131769705284865228858396380680747504205616291034554011450156867656188206995241160026273558188811044519601147854666314762318206488063407324493028398552381574756766808040738258774730024145329536670793886013834274870181140632684277771777149441884271996595141989265230943781965819318725800043816804548987814509158004751670357574470587884978950502359428022107864432034720715565617460384422598160424947081494118014916258677704458442295573396960256912422159631528919536489133145927452108576301142573385967762753987372696904069215693381977693051868987431337440593488533542347616332127161470026659160634744527291185254792120343486590654293943487217001306754386547995313830838832686903449753351188628480898426793838915775077876922380735325857132925548983905344132789415954713946920691152137367196842025673524702362818663460863203200427100208872437021676166023667347640866509674010911097286715954272019922495815815067113319015368183274528284904874361491006238267172916620261298756749639596727155146854412681685153337846978469987971399715680948848031506212652248805350207118561675040316748496884032829315489062448545034591742603985376584657603002713752724021666283777020733290076880616865849909326026789281674607918160689331016463412804159173257853966514432285365448230239630707811471804729383623515436729668366423046416584574324497060252262056958356268115604050101124400344690010307907847992554370941601585046757150595946651586406882804965212619118800614348599808164862039148809595158867356046737328272252615063038866912645118986065156765940467025994363662368549018780859324344208248080345877095117377140857892378350805952964464428433955025594844294683361504771969036289289589068516768596216743731250580248346609762161901706500244184862599622778881379616861485621271562481318676455585217869541591072210039628117419003662301685053270128483396033116375534225595302181050794027195818823982748554823096261789205109706189946962963267310439512499740637505320938739145088700883407637910865868670954480867199646402823130250979441569698216085728968078116613556594756253462746276057011873020193235639010648432780122464992810233280460063171799520507995852939518419735047348064167462914533369044079895457409287375319649757025083639640417919384708471927280729529020734354320780485304391995314968675802685930198208842322018839715280428775891556042270600869966468654539102475156323607281323870142630955521362149192702523765700613160164395166531424507949140509932734025914229245844332841204560482104762427572860955927566731269875069742502359982391783947040115732351030468142463268559840951973200353844095999439741945741114665511800660999880620715128370691309628228228379786515149058631871829257232197231089351954924116247549045049632601335754667317620663726485783447061849761464287345405453964032655612149044110553946452128954639699916985434266706319326459622703802119762253349398037972435481091657190915158448352626800129190300984688470178992784621513906264476015215636562982423052455749064338320286176176582640127521969409993357223358755085567867041867004323466453056878588805753496332785606426094113276098658585466089658684898628870168706715397955269338948241243236074390065636214100190260732862360388818274103058656519508242577342239243301526778683270750370482762898871702685275930498319247087288935550667519434096997872060479459698604124542011167509185258100056482847269250039980559891341978787059680703366386890819877552404168619006698556707951385662633134360981211006464743850091250904414403901736974844510885232100612406010598462088418227991055720640511513665594571111471012692648189682004473319304685217352207217061456979574761104696014629087304168824207567042065527158462759483667733162450624512717983272775583383715563245432446921494109974170778505583379805687838258305143724850761316207782048227157034437170445093150916341302824314320546359784636012011787846254543522821908608655407189197944547685493751321879821673289600971383032146932414509060487930924818056754662416157322096306980455053888095427501856411744272730871479856635928935647309399709309449434597252285958427301166499947639115418429918113404943512385333736203174071144824228124084609781112806096293932088063817308208361632174471374241518451290617575210644665872381195691472057086097922199210294594518602044354272802232656944321590228605256694408912457586073364848212548224475364034488773798379866609757494805426537847390838206827996413026400329883910661425375369525996332512408931617495789297316898140048355208711727286526819531613239154076349161104446378420406343862638495651987740825461597117791041514798764475679520185090308399914846575422060600156758619944539147405981430584341388199139576097294029381535506989200022852451464910149144417536710887190918197690672954931408070227920214868692482573345385178396496895739705416894203729818940800979715425849975298958741532014028757640834579330341368834686331257308252124953557942300039618348384496826241310303850522471059889838634327425156722945550558767128314118013302161536838132887552541106981434427551493845218349540780941470612996352280976605502017791597637803985012627229036022935886414934263660177944125306008484409603014407332694222582029045776354812934024986857372479711525674301138266448340830058739123239990513958041263281451388528897203620165977026711031494429295259978726036865926505344626530111384355928610615720247036476262124592044355357434858311111330639101317041961375663125484344979873651938757992179397843029727427748075395541650929438343960585920787046557164566345117919757816354515659353753530302870402367759202638529847316087719898084095907708155654322454066090816701643390825792740754075033325631699129160720888315740008717980154536279486866589955854765335416893195389408213777411312100858667160765365583655753550501553387563974343770359956269022875566668299708628755708279976805019824286702004305518432860539607429239237023514105714908701798048585249447618688785962774085201226851372585113371587619274650601609786251496957020539673013122025012698840566075827997358722237546266757166755938251896781635671022581829682625292596179140479345785370347047784059260277987598427007481880771552182739602139053777214603145746938522424191803895863352464211084281215855981393844025426425770213852450754436865553849572708338535862119441882809746583170265343014406870908355421593941452219495012583294737859500461309884570338476948766553167239640516323801117080185633293904397464125673008067024336780442818868806891924832179217280606346956977026662680587158207839952830127279339658067004333556740227891370900489666443679237025282464467704674662660289648963093004094688659778767194900365365187539189318657423440814932808874938307597713675776743475526752319958249097670448054028887166782856182216564294967368787062386835856258970411463316828425855851993635556274741385753829976679506385725543062634300879139753337383374995416270676932182556869420267810076163420924584837668072453197389234581945182749578504750070088510131697095082777421606166548891478809366715917971633991905547971218061634650762396677990229159862401359941080826149055190723332791914058300500447961497902515818847891659553621169983656199530775199940964845139410123344534251883191179219042282948829378657704438503535015653919807217839226007461509425447254183740384801096786586310929542734819304943597537488608696935507491918184041390815481421314733107840652872044305920818411471161310244117134673141742111236969416609595993310310842233459917136631477939082474571700540196137882968334832582659053859824698976195151375215322695431062082973623624773872676450456405430538227932158176565996379263258585278873683571509982278066049611974809327904599782883445111953146520423313365739713787050218267436863667522639013019242049643834977853955233920256623609129417680058108212166792302104143025167696756145191292003017554133365564118173286705662558298941793410426752150221220511936751630594458521547255816740070102419009537042382260055473417329815509838169244343713554188784019623376566964284620793752696906863427771544903989383081267514303272096868052973065471430750710260256549556937494270493536053009367843199584406125465770784424320894328902401795145212268405589904105001350697934424693907042784576249482571065422374228970590945216436029034414816593990137059279455161905048963374653478174694320373116720115917682149992183567719061572616093848139741610681789663823343141960309682258540351002276918298092886370163398438145367373049954898263382627893033264473427994227058173299705204131410041663887215956116825255604682634491726260968193856922233977395591759001790663818185172015255778467472939399736750664511800588070377015768073723364104312944886122013177639347889103764068307554589678241647471110298531056062149763054482785078609958195740837290512023122059851415278581281102131557243023723987266908517582860095658574805068783657205674757408843493112128602464269940171322723109137350034016242781196042346176913413022724756381628486097658772832999180819430557317319410398359556722715017893400834390725017661119630071672825215342094171111507063006104053937695205170125364283501916196276613161653039509955257179853480483870123728068493434391734819782012242274145595091284632510140674981694094620716975080991508282785682998227549920385244653693673018205045459897653882505019732308163572533170279975332089885232899351893863007782502925051509667582790870873150814406008731628740748166508881166518967183354850842528768730658630166279960967441068655585177228733071134289357426088297540397662781840603570926159464571391765389429988072583177900792044487220508898852705149641310572456593420102642390611307970201282724612190871591124316137701831664461088525260188314013769024510608882417088795515154064487856022244587740302112982819173099106319349305905508651418472329375806686945941545391077825521327896290986558530393572220883657793820141727307692718582805395526459211156736193086322041664738138247536886824228113337269313770354835753690320460777940259865061825206747891753666747725128062686880732789009457952842584999807551721615417148673043007846774970847544543675887778585794808146596155129306806059910309209832345345490936322261923966123748878974285256432657495249433235361030862019430530372591576772531750583594632694217157853287765860702673574205253808958533640705634435067816764013220761121019163150165701418454758922923269588518054594335443611888310495461296062397084329065494908551277946966202720652561014321937186366724581157751600907339023294856167156637981345247299219907159738428005714738809370573792670286549827969582504451372747562176303961735757240156485939689106915187104637811472234206108506995245241153500442541315483176995320737325562583304357834333314848062463227432217332339270298273105546062727469547569574889600695782988432922033098824688271410682685403720191980392761885864280926038231391210059398379049140782968863682930127973134877361856059152294600000099404080451886186762386494676399636634625167685331586092448996660419789825499181119536176232186019098317494145597979000182343722424884261836289636086840900704224531379897419138654082076544653848095413696682086699186333946203233066612568212480968437582973024324393486000019980083331364487727865844726911402596002414937404611255429341451898398977019561406080646329920643266983505067323235064669997915015534492142153561311006829825432171592811278820088237220486673263727102901270174020264428613936805325107246070802875972018007625850257266476800404650988310029747275913605141075684149466759685819760493154822267540928937675307346064888535699057951790655679951836470733424124253916188163610999339307715060858081001668236392525194354757651463827633453391911808614636334982322676152614882261434987673588274990445506253267651188925072733456502571437309794361024455639374763379395571421983089769769202200724287755205540153533517711599200946174073425906481020013640341979523400220113624766088161265124611421201494974971764268948428876835980030854262348454959433929336617496568721121358325790405169965776129789907722017462833044384456140245980729552160338645152874299671365171406189680793773932032865342544951913771652029525679453042157897229033670639929395490179700065848466516834180912456003698541406613611613465799245969767425533530187955594016417230715784980635432060198674457283117496430838068284140029441804472943672571339788498960240974574781328892670232386678684485494734146873396194250669312412571617306971523306767338109868082382553526762761916297337164096016754565253205914277094881696518617266010817063912904578192919895170019868165540804747969604754539722437756084720561064747437348929315512072673505015948093015482563662152270188046245603338491910102769200929864483919063748236706574702729298990545169047521723775828684014782209426526636579753241883439966958738581904471802821718546372560857002880642412031398508173375951900578919012086203228133172472866545045151005824861982980578561424904228263184348040450511199752913961377216607074442544186841377295618390717237441078917863877036167639542282398329892123800383428426627820709473376325243874147639351228975583620115744737671614339726624905545215154818293395362436265172998427358964099616069901184441223937218814990214176188043801209506386445793358389398378240792407880216655431289879485287971358394718292272412264541964762437713565893672074409774922131442391685164312678050781753817463698901442750531889488371826778333458630602017187190377734846071539960761659262965026231708269351765103524651617174832023754714468119220593829127435999824006884272825090853316365934960392913676159198945667249657175400145672199834990362107178630661956205961346537330344058662179541615976402312976408314602343956140790930564965388742518270907179681887685616225430790458961292770323654780622735004735125569915336665762598893905309041491936863799424348411539271550760851560108194263302363344871274033789476919505906505137435451404484213408847396734078815278534869265975888715831714040186875938440925222011149956830171119820898913066329665632219016497617335866097695593683580799624593077325831006257311071526530557718814716219245977894360779749265425916674550686193468440184976921930802557869366572301207933340049845807887626173397898262523169433369210133227557062078217286695228141675911889015194400914604422100978957362081442433952336783192297821056948275983845897727250292018394953709222253233294699536312666656853171096337732347739149570605387893959195195612712944029482884274131804186068888773866454110190838255756047940878033047865318975842444271352604137078547885374502817940607907742436524020751198022887005717137096465458297686452021763397810796555515391727682921287371366222346342677311873693667119577099800851682539661704492130788125000592368305421764750899789540882228750617837275609638082972564819355610387074909766871768351243762135772014127896621967087438055184810963171568178002518116825171250433349498827070983357633650961086031950113940643736735252335444683792246833217597707455163108394399904764464899421743045667199846688996719269275775123201530024945856251896400016330433609661219382830867480839352532383601754019077502625108578431689971364628392736784000362137553650208337343145520471528162876864140445240658204573527030065544558560142484220120653957832802619782179337518528851066935397513672963804780641864287594092637478840443189581743817426375750129768409669570152208094748720336572480640762526235332015691299984152072247137690260225207124862853502529413193346193014470404443937450403184053383748803168551158470042423047614467091383557493756157967891074446059141058241220531787989514006465400095054632388546560384869743023616092788042175467764302870077802525665991563575948885695580239790312786298095198397144209839119558511771159125105801869889711477766755817279250036871147744763076898218988491443577892353844175756023906586813218966968472415211015427775655177571130062963957941622299313920647302518961937451886207859927431241588552683891347783695887733506179502721936739313388792897383197984593537229627595523086863622615542842898348597318721979370913977468895916998034032446604740299344562844871038450658200353436657059228294073264856049021198987190002505870191935693398787862273549519856050476733098646724789728715093726188215505000771249263799084818792761766565500819986089882460506295007542001223218855864380835398805139592141345693230751954662611795032846937640581548668674410720040786567637838605762417823682336516292163619066851719351141082057792240280670248791035215876657383323792401644032418330642958181620352697063841196224566064911159180673811890818282077185215723272245450974712841773867667413980457321083314694814985403390246720757094550377549353253490830308745029494947108752598821174255873593049470532701411156769686230051405061799859323257126715616567562858475558967078047364942860828617813617865049963272279515346587802763597836214876503474540251382034026902537390755326934302695779164983376266002404204664211563290587440539009976449422511259667093862659068927938858617191166302242585030854386456821947705768504746879598234114200399942609082917523854750616367073670071266878186538428696750904569720251912834461741345134510726719512106571240273013550459848207096834784882825574445981421757514941035694774701450953195645250486018009315930286982165849582049264937105439468888319100164458852913231991149310932679360857266825703608752459548168891850770035855612267591548800737313929985175434600722370706956846420486277830356593139546140271506981603734549207056114480735587018787253175892941795730191348243859391596688176115561089977786292472463842388979371693784961866129585833129468248597508737163710377462997802690658001992131148523976479129793747247251898689289076916145391409065150444179952718884824028853405761426216133050934133044555772526756763599384001986624471573645740913802434040751552260349766778223461025063948862918073155513552272859533818068415404032255088520839034826382034870792474165162558201491499182516892837964542483276431938556357510710265106460981775830590446448756898955756979743708245823216546322489131769079121504675962427384676978718272184023650304459472752749654455855167944406252993834069557241505855642261302426127998355576684742816821648406014150733386754538190799847469423382624330564042679486451394841167719136423958813564867527942749753202368026898022926260616571510664663817036469916528928299066551706080241959241803040867129844241022655668322986234622005242093460498061687833226143410378613393205672890130550093305133459942305025175635653613734284993028520524466447492897158964214915677106556099149549484824490073719144524989544268882522073703344038203911040413721979597535452037890966378310540580597399549897074954875394941800493958964819599021245497724427004134909622951483767165391590558108210739282862944407922814355529253332054100326434716975486318022537508397856283643146635527176295834516137657362738041762569825202317691282864546084569787190577076699180355153887608122443694292670632568299363526245856000192250111334079483538087675006415966367858189914610242109822042460948276719333689707810471242169243766179218754209669583815327326659480162488159608084317678378411170831901555344982743433222604138225213325729733162307619558995303042625430516255946686825422351510527961310845083457378702018835133650107370571996208510770399337467177798238647227975422505910637088251530012537492395109387141102053040418492131762982102805434917264648329239545703444001659039631795308095129151961006028596668658946232382718213395957513510876499351140742429490891050412619382674597124135566528795715994720801618367825344133612637487677637723509528404468084979274652689070870119022635186985099287652850746766257691026733436755378595024936077859697952564857992041750756938678254428672043171085358204318786210595806407906515216347069010940462838770039202979822882606031385195935574479874863846650185518326740390566121980030752146683090025347377182939613411894571344727933056370391817185981090888221554872237750752086449518757584007002720922098311026496563124689131594594465258262049181718488747799396293470899910341018573504201939581122379140789898424016330238225720834251361080368913050506388819596196484847179291036486916025650990003712311986314829555053289966496635057573105859801839351297371158497506667781757153224171900898485464735802455622462679295384602831816394371011685922574692681212369421401574963417216881363572366193495134428995599526370475653848557782940584360026969391399784476421785966695775281028862686771435469880381122130161212958249430368824448058838099335179867781018280601623657312487328879373675665406516380085347541399728895054935649682736192208657902586509777964853390892043504118042133186765045632137297151010924107679932471252395877094893287517704324792090977064167668150034564611087638580566111162208765764614843016258293309549523830288320195892396042936849167340281187986149535008813778736266556065325032109150519622069427010180722424748297051284571351666375557378108384049492416800321904595263265579044975994261391927009909813166057935251923309026864023568818016024747605210451952067608210739937329736879241294378366218992252246248214631521967187284468119884913351328896384985640496372940485724063023123932563937754612193548902478884203459950195386946577057210171915408468670243884550579040643689759114745906870997731912150616376556126896120276172678051990819988347586884516627891462237580237475898146069109253212725933414060372841110579889512580718087519196700640157083500180739963129334462367937741070578875469154128117370009228414542065766841016233227697792561169222657149970294420207532554322011969666035152212609710440791362611973423043399503131199596250792513237203665043961615210939469192150193071350694214720702752137212650605175583585832035994617389580613271872038010988675789131190368762050478301723095103867038489467278138046987502205602564187954666932650674443260939440227440826996916788642289832354947721044208462617964121736136284345913313383009647097633027791573845357121840311240189669864453619183551206762496817475715537655128078241653808120521276501843166298672649816546692499306511097391397438061321601776688318885658857068940887443346153855809229699068031273418316375460358339997363269656095622447601408831476651155265010205000317165373349146038228422066802358070759109591618640995983062962859127988317311354230845630597913023476812658948959292646438908489578239332515896936372908359058604641118432785251566705553817639964457226697121038683963121494279442501897545951984221499324462088676559093809779565985294292032292671790304617487850001409437345181400256961058982766035706685104095091788140029175399687581544351893665319299744792607962947431028447495588080050677316864269053828306153657575243275613653750994564495806432271586144441167235247046197204030734224251648827573295924183784938938826728648720803032038027766586667480634576446722807285591407010952841004588062092498496529319447630530350151280723102759348605046248299712359971129674109222590740362472374785885351031280891493438029613181096831635326432016689020320328490033285829439902016976445393720664275464369351398165193336437889652103752527748175894748367552581341766333503078226419488563933120893647218746298941843311554233020547301545481933634631352144641348166462293114773172162661113787771536356111130285977270924627051548542417901338720045704855858490161184734972689582341590290379183298570918525337126191762802211739339780655168936695524579841938002222371982884310141189377538998218372088050853686748544902324221533395389037754665575874569140293321846622794858811002491155462350167563238114570038801554549247590901948213361251158381704758043494288122427872219219057758274463857022475307492805250575135299004075333962807553883441739726229527271678876211815350800945350214915441640302011663602920209117151434084332301916244911483278391002461619230366520185056917366747885697316560240149609307114368914700191742989018196599489176094892701819455447381858059976855274205689438663113681195781557702541719275142971965958230854702578645435077635054677186016424968634148680255224990349210934588283460568126019400112232727160653217263603758846246017002403016550886272049688169530279402973924301776352035507153915752955304497360695041487231064430387012755282939715870028454222860126356795454417920167348014818284852844456292841498634994680931796466918913247989401866178591067934979809423348832827059993311585650975653865330667038028750390520024683976853825276357993511969290565743339962028084154215239845817141212954758900304861656392383013753535853643370731279401834175982602209739736119947205005235227642206000299283459875907912119660353376835807612579455842372757889865558790759883016099938301149723144512123070347278444630222294410082104348878122665562549094863737325587899583409631295097902173318961319730489002970128698280558238677540314779435267721425041470858202337296753776654036863368865353493648812704602983368339758700254607795675432535895385363986454042824179934131959691713165585389415054824472312141017005136288657147379504262699070432953767216820040334478405271841807842869340758720622949801889552568463415363253513521494717759938552364639930539436710447929465521441752924109712346024389134980700637396669253539255639892137337360647519695976258370777059621930374392466153764055319777079994225785509066103726214842823934744617157643241745381607364317505747941511804976438358102628070836185771337935850539613662457556026223732178825640651551014484457460170059717289778707700734835368327517615676114135342096226124337841218404936346094008869326105678816983723939727198063999419094763201417516822174692693739287576011626206305882295121986597045663242737786477947296771178125281405921114740642654611123740250070127656957507273856598658240696208585123828537791646809710453629977358182277427858685745868256044218136189227317703102423807821821924248995522469955871484168728501615348572932181091258255922087835003356850352799478454466439694820310516460491189105603034888806407846289846519582131454289875207997058671032174739324210565773314665271252157535790806565975414012464603911134201160289442062694892338431667183731111474539171201842701069269502299735972735536186038540862051714579535960130363157308411058502027255815452396066321814696250553782620772596254710351194645123887975856731220090026744098143744227706834713372692476247021581157910631208407761016192065301548084129375707963381757352951651487153733788990395479681612598212446234561340156472036325344548414184686109143813458232099474633014752210369973698193237307894985941244821576410083101785753083915377578041732013977968760078467971988589469128195515279843349130872259951501486649193282036785479726535500928863319924471413102164334902517758664508657556723631018442470290064447366629809174408955499745970726275497685629081662559509321483432817261740332597458170191644562643053931678853855279701870884567270618363574516725969137298635099802290066836372809324058848890099728975238170006147788108529619869339515595080713879343300783917749492119000052677523215660443184521612727244326276060749586719603665169862560505355872911135760592366870247080125327080830912310888789419217787927808132310647424517480750605577955074575116425870259184578133137847223078444590237917692844866337924251185253918804840969222938423015513606221991212740753275485944310500064997803730061635916003781028896864320316062194534393315117914765544901616817125227967452668781960960830017398312002509616875838617256145636403620834304943484415961284961187260851395455541866641988742736534371021812387181200518050197296857351816187816721845425864248706838620113203617334549782987974076278708491853901030131936926739442513893693846971353572495538847478583575287950033745681505755233488157395558075522728338074966269787974280324019431414563958093971987275385973796744434584297274572788714773883925039653166192571370214494698628075912010461808530841544119059631334427418248020980832237952331318176912585052755208768449280483289434842784124856906653977378354543117092651042128549462948186844898667164149497534407947818644395123568647597136520808715417230652251089057756117409586301289461751152398284893535633821025927499501007318925293728198253935645812585524103881208484097740447402833938552369460871561115916691912443976397445765447880449286585046079527759751961896837022040907054642900817098058451223508340377669783588065775394446888741877784719328482238333885657122197053506182054437423706669186457330970119783584197106232609101449043983702183545078802027624028962240108809700369282631731146830149329550874310880449695141625992258189772391503474496960870627379575730489366667608757735231787258820779997467136410679795197819259647701072488759564279505688672180153767997702786171289456155158580945032214856981716536155395695578267826974314690236884783531491690535180212212133998213379198416441694689304152566628314061460003447136461373140710819781760789355120382944771103763175976497857770754390350328195215744463863766321664569724914218484957827050734247796612991674324722807713810905377643271240874493349653887520532971317886004476905711575319778849193208774609893059103582806203645232860588967976100677057643975109226803722912472539052353344498244382904573879878586674942905791839884903909969933543154929459134426707960869772882024510659648781324267080533323074006720501455791237507441534539982897591786875971140740796304208399411850972322955012044720263433632465917231917645713126251839989923870447276016628064347213146371302061166265345103561927559243628688865241884258075029793256073251948961295435683565510323513388620176948188925791061069380811281510252081601040247107016316681831149107990200147406530067405955410107400927774973431812084936740866797495522836895095447787559025484391617935797878098580705808711337311599178261216822629427784216138847259070178102565306556631861623377712092294875583525588769271932588762555883785294855754214028112939512690358489390130954264861287215383743320701913450139431664931281760854763650908673725997680310045215306570324914830534451067674175338033157577039250715841147660412801985621858676663942920144785973930099197925967583912351644485095403251898177000914890515435279389384087717899892641756279375738446418299432105091784460844254136306136128040476080794349264360133811434243876313029224856735956504790774804260201837841453740588125158608465540721678419975325914402533443406100220710896386026053763407433921451828931925988443894173633365666375357787870624138226202022702179775259624873762829848314553226130922496985046775850760080437221830012404645403513581434361609522144953675001391280823873140571955089207945820558199359177717863723131094715291444199951860742977290477021624472564812702449501901571165487841019440035782312791371729238062958687693491350427385676391608467815774118937789440217716318512074166154827585783087887057863317090116987444746253433892004209748194087752576063829018422259716746713438428359911320254269831806738471416985176756813197953463980816499853437238874875442863852248279389361473211713076954325260684153881499345655902581359807889682928899314318469773741365846567832215890346089450203602456996519710720648887218801814205883339440286573456223875000947651733506247954294910178743244877975731261160651079979927280771996948662596647621151905712179448690544736983749679960564091378394494643540701197623333023930979573799710727779836235588891726735368465006090335293297082973303813581099949519270150545827375946152672395871304957462213959312550834903272173070603294267706381543686816959238773772325545219450811544262778540495752375284945664591355803621952285851301203590614604701239733998571657278173287296879109143767060199124268337934023161791341130136174078510667947642156308420968991356844873886443489873845063016808249686870187964101540840264324918193768809654740776048257177995126338388800111990285316210802458837069607635365344365756134472945862671774723303566405466006886016956454811194037415926285299181543036204476367369131494284412251808329533206054306280650809133716570523817954004790611298208123046487903993345117531713535701228720964383483050115330830744762551078460176269332493752066528968171883293915683626273471287514292900297972107040838699987534586100698780243251682689883156306863812459001096989887578871789108426492630460621433813696200288165385754488275168152617744491148241301886681358452052149530596324404084830105008879862376541174536037545128244215471317586262852440060399441755896263349258358859986540678826597781590558784952197375727323980448835082432268258084926071140378469840160623303466404652630033048544149165892758441584292968882351559462854379252269310318344933919793371113122065424115984676748693616059739159738836877156711157768041480256075312377447328034626769731877712031836284640506545358543142655787211998419124203842115763015172340838688668668720038075516284776399751501751032326672478578045050399263536533163933773149341643507286235229086600329443841293537863168675187693646402950990044633912835918095715215580899669813404976333318686493759398138707473921270986776982027425691237109975362812838644105172487866327727903296051775691112390254641599950377769585365502804999425393399496420066015249447623992712039994497225566491923149268087577328797826754365234181510541050198353591312032830613089833736816137022801534179578014202122429969894517117491043863171503548624779359592319978514849799626271006912766135083504025779398402906073430893830821076738097779690214015250206257260088696082098001655208338085145357309877269548868631595702235435976110324014089027512690351742998510095018192249021802894706968546950713410018535458389048765925862122677251101172387515824942039844568781615397282998104503634217172994258222169961589902733786663055593559792027102578802363757412508386394966310355033260923341975133920300570202258692556621060536213316304238427338675137591637277189358241206808734992116145953746807564184512113927565388334617336395648242065245629828707247071164554309350066481285242996623601247994490223339447652611356074251832131908189290093651464101782810410369680295592813315762731269742070082977530806312502102862355253532238532445665304007698626858329579255141901050554249323619765299848031083102709728649372010018020758500478074937388739610524335360385109209084473043898711127336889526593100280894091376044231889314695143959545464530349316675751489550387406244620324069672829395986485495324588193473806219290094178275305342975695024204487089733559288110299030164404688321418333193140064946517857682490464550320087771977152038956500150443200170333392996265207446476497153020240804433014801957878400680097128332382639951082939553737230151475419802806489484109841331891257077069904782326534972826185087149473878943580863611886708720101232037754906418120085899018085733707335024412514339103870968498631525530313678462982234418696852567022173955371334176612869559754150581167768615535365087193723446161924538368790202002449258743085336286639991527324130901597143571690328547069993053253940562474832081770840703873658497941775049680709653449894561624725867632479502302778389256350768554142943060651567665632128008082263475728185282445260902587835323427032015336668348338213290371232474435232471025863856391416366612024539591542214025398852348497561941395900526953543798966936749852201112169198030249550618661305360742147533956725534613900315997717455214243967856545819335712656678087481119800909749572607610007576048209791012973581209222985922347408751772360628947831645523024626289372953583881501954466974890312931090133097625356705739787544671659093176619861304569032899006711953251917383176429361946203866615638183237988966033849817503476004436848593691545149958420600523398161100663417559004059487627278353435763616394634645508388155724369577875928866021479666199948348260694165466526774703390839027358902739352261915450578810824655728256701837396419776812165205143911401835884168504803571964117374463288151841125396350194320904623058771200764952982121975642100363926969616018740298411497042455527604954427373090674831150184095167123135028258308728721110832494227054404502359274473489359909169869210431175902014165672317806974851564232952990347963863465814004777754582152030186835513298237656282433510674395584565227368169590226697669460548323984287243088338831401649822811878983508844993209821687249345174502275227971610343657689333729670067604317253681040151958401376533801561742124379579153002090899297385353203486947466447418133352259579392993392462361143569476029330896867324589914645767201893571489002394399568286492073855230975397449359834358596085863119498355626848394389743517683648073413428426664467841208457835960832271856814614000154564541484915446716997450603591764763412881922658554894133385204471772198819623457702542250264846192399195321060821361214646974515628913008622207796581015344059234785196127322495556944713248432053472139697358905113007995064205952723319928263738696445487229400844838186381963727154166598995796694790930456061474892221176342305156311413134424324453820166717527926978402599750285647006003774893269491468674238890637350129567687880641150670324905776208513719640448653471133367116559421455259810548639391719871761342737336383731424735710641479237194425765469306607320556654334437060087416067304325196502018378008489947064511922377334100712672279204914876440646351031115614741015262704555735536194433302272302603601517797942317703573315936338648738410883044982813986930767723899043826165384692999289518796642059610141212003611718566766029027092996500212223581754773933506537987857847587924640011341808253299791884959244312481349966994667847629520669311506685921476431183778253410778144313148448462561829687465436088474034194661415312306445499027928932559973990405995225549830795126370709999558576051327770651508903431901497705676152800409768038978535804361868766100987895918948215647096099445674387714092833248181628543766132251392611942993407793164863052157090972075153749823681344703270718085087542270871832404237130307139388416712908713467558704755951431196143473350207208779206728971501952535335898197787173070634517949419968870571411833863590839377211094575306795841756784651574176085581213763458910754246208487483021040199561210176521293334135011788905921872369901464413662495648022334852737871384307778862251880752586534974564338167215629136790377781483995501980187303508463767851505419050375483093306663582669068766511984224626423313560195863970434569657310921924030691132426017941826168286885072670622027064798006692391926032079728387923833260200772929491119837211533096985154341526375917107975841704122493334266941940354711476221196903409020717057605711137891478545918746643349636713794604169292277585054564282704906925985095482040325768130383627748115656225352484465076632679200476687619550088673125371912879179919900468959659228562242060236156004850553210641785592454469657461508885160177200021889597788233710736765481436848685536109773468521577461564778460130580767858773942830411561940272611264479646964903687154294759877355616588645731335707154415693248766834962965287853414583463279903149880270986497692655993630615955589688137366940704127123417295718590522614644707585905791496743982646637433878033410876997612726534960141193397894191762703559929479377126140491990059624447322290327041094164617697423183920032138322623089076023677036964645353583722428380074892193325975310670089668615383867610710374316871282114799098362874975509199478129751654190129307565337490976330385184540077201420845221847092178892576973628248167114571738251100737046010159260244745101660813019653674271850427273310115041195566640503168471725832613365693873993359499759194455033154203660479887162940472289228713290285006605742993227759478631443702165579793699144803360970098041452674561467691489289489313775358839716962147265175638659444479589492793554528177811978873471421450302440268391856834919037109898828596156549627912921067847085999738527749165589735599247437266450634497041874099914640143122349344819716338309998185216638894697240564056487438979832162177945762905312094298220908781002855177131138226756312902208055392167619210978991097222383244001854031533847801226877270259208675389247741947923007637871012519714697337071364599682534725896954326769272624037509496005530958919115807632964608016828447302959930166362711091625632465919211513982004738648140986344285195459820379067381006534935471844683668708850313238295940013771158006982028125921855334285043360798361757654092983706332971806854168642950591449793966813605391260929318753891865247505252151839272733246673270064199227600419500386847533573749323269554517072061175474371938143426981758324511192881958794628440966797344299300484759478951377335065487091824060589224845130525566210016912436558336720109392394512672767571476275680065824094808784321178749334177023286963081968454358937983033215870457979069598047357111708590323176727621291752772512474504509119968733460577372008384780420793048414950228260015253026081722449409720045280816129706520355937835028685956531312984928962076109692077118385625006054887420167682487544000373522126566417512839238139330353250322580435513874321425988177841615409230761038207919069365313414467089032900965222784023739095477603502297659999844922498628767955909435487466235744493747496740210746304283422057881421791443279857614072084538375230276192094286271444864434177087891358405055218625156198157866601106781361523446872741227093558892997358460190504100786213045540533803329868087570847414192968583133785282902780465100293006801976366261062940287258373805857955362959972745694410663695430676273674576461470626943452155296864047090605668073572630522919246842107247632411185622365291855665723580419257398999369939099478225079710408888855935822999175143088603044918296760507658518161726055646042948291844740362421309002002959859542315472030332814127608149614097722867950607075665491646205896451419565453784932938398375708972009615672798337756066191997681140256195991756952422102484216728728808415086819126183147767170481058923162370047242203553714089683729513281712328621520975580902275878594783125236574698075376118133886992254426137691061195086541982944029822379501246710083670760559569233175751521625192637605426162406081650041239793698724664286150777053517074658484507869262787470533293161549880158162769514556377418657037189171445559419844750407415580911735187698258185964404224693483729552138981198270797891027119761845853677798319734686471327759673415624369123541417379573972391612545255589429586992796464163637885361286617662207755595131572432112780145221792477849257383198821001981228237942642719411620720758609799068188804039448227080425390598187542199984401589280419609295180829646888454858411291317661035447546342528755311937282114080426376627229794714154875977004251066034284243021123970357617762135173667703972506235522073456825042998246217657134234330167633684034838921686303717914760109372694469816175831153884556750971830659078619538816552879530556014271371070061482467178288781994579154967009609168900430609449818804216822981807054633564132227436737992288081587490767346953579913701754290123490056693838722891443279457479078670625322127492435469199429501528661408982380023164604796747813519482241420828214086100719061603372090496488318694300073884159737410848948473309496691867495635123267711255699133261292881606798519150135946345059421791694720670652886105162123366604584392835951946518482063135646520641202900611578104160587278581588456107740202369929993678731120846100755057755783803594166411223089090412173855888600562740686510421323021854898995595167071232533367324002898083045563204849743387540792737040753861627505253759447596985391034857554840903346187621180811607063853429956485698963959287269483596642006277552484091266905720429204405342635961495702142046865521854688900820322854557629366486801078374745688271125742968210639754095840841212112965239695622961297603932816758558185365324848016200246227160350079690025328668963711939693957902797741563905337519538770735471912492774335138711014149320708145577768285691094573907435445648321117147032830520633414947031403596273779910986266877596894994058904216063233495364531915717285153185511940486096767600762912366533068995769351882252190439411958157058192949703429941039368874016374058245984555210684370379359403436651943103263667085457830447273976289288337649135201551067974881064276232161121612781682271770315874994603872029879453866379114358195947345944408262989172522890245104794103818771717787621350342687701529439474202847225235135608484418706700022494599864594757391089189784379383403662402843028592562004072588197340675014012024182356611590442850906979087700622787314119244463262999850447176810336750296114850267164872435494975658166764739388135840077126999559507118362994427150689748235671349069849520997611348311261167833674287576231723940741989984245652009552341718221781197829424028089911765020336662325427803459304361310988676690965836064840295520044893613394677746171169747855276539300006218905757659383449072281649888051408411932508883312057625068187732457500904471497317802364491690560628481585781446699603985322162121117971447799224167046733396606399296201324519639040885550125717907977042637409904848972045641878911002748256723939361443234689857637794650978981833286282442803342138521553474814046972068926199279758603886598997695889190816446728654338740270587239466578639106564810559294859151688110565032987377844906664295435760845875492601868092056589256772044003538649777673651570864090353495000273286563938632624611874094095230215856998368291102369485433390270278435247404207619122682138771009155854157983449284983930010857668782658650121474309430142349043896447338548631672778296476187979917497916041189480629648949182676437077834896368021932488481348342290411976159782145119309168027879884605396857584267119202294262907376694506135842808705057805927724486701518692063450686574025096271220913045136296953875990029367223707983951302871724432162615501872383631768042379891665218446610571651624937716961865148362226461089190237446168627492782226084053998541365839363387547501974047441387626485663927120063808324768947693940107154961114033713262144823387864004173215579679168636253076790103061332489311975648711149849619704630562561052191863618296980865575546679255986216917639021517857723799517222817835941669959236182278774908677687626889667908005151144046979736932920379218778890867181680275615209730698751517017712102926168430673345650089223529755729194048542809225396327852706206154006923767895010596472214353749875151056698472777509601422624149674402281904372279386833930941247930369475164106606886770180651654830757751466869950712878073368353912568585054501358812264356307759124742263335463109718255406914152111980402070601698296470724020012939898727262820203205220325821044143795729546573934807554743093400456506272476047796220168471965912149030615545746314394004439276881397813015759514418080749991285888815869203045799860079630884095782992333074239522422885081573829052747509451663001740846797453860060755096504365366301707353659373700829667122328359440615283124329017983470031155312247376348345700479376878026647073423639447233599671688927594076490893364227529861843759247744460843884741000654784235559495855316635133272335635621434357787109941562550999958424941516215304732512878122889199692195370270431463613411857406465195465624943242978868073168867892147886226437230596242657753345775740570073221106367184683448712042723651958169411859573526350649804790229770399126143860591835261992945434822706347640669067398565161110333040131635223090871147758783547224574871118399655960522225334052709974368674034605498463612075372670111111208931098145921724840547806086862361533141351916254496239132816891310104960531775319390342988332221217102597216714841399874962188632201234631468523357249821940062770643071875524871261340338439975609433187007658783553000285160865652029980837814705306750986865568349170610703158874370853788601495836673729286255354204446844966360173280678514488414681535593647709916755020345950654187937802148529967260651319672773696563916818535544222013241252119993528703322500888136526497030422939054664767861335485589944793228792631635686058579400164375371811845212199025596368237331343661979114483696282401539086652827822231573829075681416942531282099027159233582162862434037953634471593308635898371841671981293732433356012570643890983334226353015002300366165422302677962826193157729956110429798381300349804510660207237065461468616409344750939124398670793514387612829296992285244794312692931187521557602700286363254166041142805321234993456252906862863956865531468054884992121790498590827850984545670934892111339788561467736548867907346962945180986656250012289887172784559412394158114721660118693819585783528073105291652485787257143747889232539300633832818121006501934490643443869122539244668732468821973034254219979682542477136024560325254636311490121423504344836448820284645181594285962532966392612093489455851280428187556765345304505889720419800985839074849183001426299723758853847850781211968891803164552210295509908659136729341203003425205739007978229285042589325417591910748977440984635276378447631328203248184248662245285686378305775190244804138262533720343538304375685110743508552162687395022089098143976288357881284867663885686014403065229950203872286824574782517493050100540384473317992354602796541251685650319265881455631530801329319528887278402873292612087949663727214695120666322933862077025633143661052713494184886140431825383865701969738062032882039102579106378349411982009417736368276739066077778468319495640171484178532939587229927107036565788501172099350340981420962598598567656035185458917690653125078760621439530023719897791366627738576521212105038302343460200856326584856652333666728973190206973338497029355862769309699561687452379691310806777962842217814389210991918929095368033520475175552346969896834868408973669740921552302117576799383878524921345209061284304534368619666409859294112141352836912692099502661691248151316964611192574748597303643211084940278269554476296116767389067308351873685359813044206720414397706505478831900124750366543552142726159252228630618021956026337144998312715550066447852155761823732530326231535606955831545403926914020132147970108935944028597062363850185180993343312026849449476279435168243498345141966018166156094408903038971303697985016774013099908180785574119065268451048354274529874366716367539115143232744815260797303038349066924138941238698969744300949059200527033749302686298772953217097329814416653706160697209570287367099055912740424778849639451120099726550438468423997264144732376333908950967048426444200570353446215225176843619580305833853146871310539033556586704584625434325316484468644002038238645225255406398859105182752525174781475171168876795786174694130232456102054312394903909847542976683822089573230352644054149043090323631644903919639106663664978813694731926989094245447105872380247779424578288940784623210232172619790793990567416631346339253450256007059166978319774663189254487970280143576464985809564712449502853462212222828213941419260312556283321603136036462426263615000566264397459850912382402662499664819978552137377109637115864881970021276988428577659087316568149568180534778748932167859898475731877678614668724480122550171804965416736255931517980877128480293018921440491025636300595535322380779967734333350646151924449374633611860214168808909250099530431606258971207065044809235960699700845281877497378181117326045490745230200690650431996491661404086354369908814583982094719107596457483639827589653848328195456761920547974955312130526377019077217444472337218441590439008366880072716194116983720635369987923350132165583690687973860451119176524584871960384045617978871421911567774735916727558231406024100317238780936047915878036802382099446876700036365513125125831999824654588603101176269933022286126726862891290285535230143897848080322354585337168790547064352466805821056234719069173691352541837242641889381587804702246099635577203973059027058465475189048290066805089949378908440750539610613407715076500407982548724561757185107522002547013351052538181027876217336056274071373064068600531146199708587484053683910073246626763531081909970802782047156078412607987689863038002412592071628241664507876401887758663080655434227949624105722258124973837027729225338686916115076246154619427586246498337760308552225246917983177679445386034252357207035722450160079628166020349915745315299193947638652401625629875859263125897265801818268280990589498668912641850877841348294628147887553920561820593176079971040998955003690502521317996508593240031248151304773097300811818688078197760776515307327791603612547980016084793022835081445738716595764500018437979287772860542913571291691278880178728255888502458475287107100299513353272334331655398366557100940782558014055483654018608782728790582064172660986264454051544497903498288976661584829135886886795267322760591812412693022441421828079546603956140423283302890906003012801787714369167115064450498967996351805590296800576576347399037746340002949257769937632710790862539016297729340076793960681586005369713926815367485100742969410826465118563498795306939434230202978803118563183315865205719994313832280027703099477911095378149836562836085656534602743875023172058426804745371142535694252457873070328271782946070025781201465950746447710623130195972121194990007011681530230767264461910737734808149087455540540510600078735070304609615108358212608560147505525723743729077041123110386030618898518483318689718319594894048798221165384967541123237562298230531959168627613418646456982496709255842475997344338360179272327144128082977196549153309962481916280215880282760449479578110322432612730238718339049216415371006992726315440341185615041412525409924550166913648428189310012828761810759556417490787605618603248570160653221214606410724771688878916027970976752943027298297178208516984849510592403879206780657735961104233189530176869803378229692981368780601978676705466519289235681580762456548754875879378114653663604223799039661002514195840917609446447189910577720791723149578687093847511723653381877827744194301285517002906982997457580559763964069252073600007933271414290951758713962902451561619912468369998238225830990465773693840560500515939860777179459640355274783839612869455256769190449652313676778109788414278836109114099130962682044804546222362689097921369728341346256964339327575038063177438402015308969018593400552689270241831333014604170601480167357567630489608614559716470297799133722403207360761706901985284811444736434798964171193233973836281698893155776018373390649498677298763340656716106827915418560790733147298447352440954305857975965032967421327726854007997461234378023682185364951656342762153164108855543837333736729008148908229873405028627544715380716148417529248933408395781186252750065008513884768320269798238705127481313521319793421616371401943389620617618014469761022555154098899827243659306300616094428741696257942726830560946377103489911982244312994491853565293117422882470827248867966830875966111921138041370571547733976401760051682799786544241077878126996676070689046346860315852977887499269200010985843233247530665734199464668569823173931925732418882318968641201912890477291683769258430568818946603331739412008825447381936618828857779837770000354762721420230656891569050287702359520589432256501280771663813872922961189004077020052104388040352831490930421987296983084819603217169076115125319944442254849121444931221471513104392611273483416652768117160262097226330183533405336971195610734172522688757740709112551442465053231053682383152234356451072803725314714340953568208927013994486009413746326227087642429425464758030733316511444089138610164235728389474098146792150737014088846669659285887422596159920066168534361484688075414186858171178116984459621698027566858440605766711841107864918602074753393307805016315161566660179699215933873006014747092201756698203856487407907141188477969797019864283856626716227174045317848354920134851989423233492527087164671495831732702755526960974355798598213921597559763120529882443337162776910283419508710561980123658320886930288031661517454699481954258525763798438332803542918361686172320731858239955939047441363111703000837086684514684352121856666325776352490365448985461074953394396973419630708457956835404900959851644590391858054079865486644290225565457232372033807401933297961185593825173715321766751289471413720313094367957673806755641827752587916536148089833571697889360223391696016235867561694019740542250451539836471378615086606585303634081622733963431831405431701566847658598189140286652791217699289720352293015966489075759051077530750159096443297622318928689264644896179720474210297425631264727365510963489995327717081274919658256189927893976233629181272814884034692637932190832926526994234999695563382806718604748199808971692840337831084917153530411804905866707917744547220033350110725892119741388044214096534119578806249558489110860227312633792218385774165496622482462471158004850709697786964545852510675429380365217943141577975182845906548674953102981447931911624892543971807971995530137264675360724974971918745807742629939224001664616931999959655426059349317327744488411242449192134702862127504751601822935559789982609051824070832455762641301789640100064583472009843746052010256130688259113327036058256918275732848015154708788873490561294570389433501240430667935929558987381706592574499133642946355243954826724405933138982743357837693249898850575315798475090725222942940817698150179902412872426842567387757883562407380340538939175848910799091288355056627487737275094551648299095396319914053111445481762187839011819125070985052101175261169998440762419733832670625781953386872360971911160766556661508397500528034040716159265009905630637004509751748429734749490133732600697689471235350865686346925355137863584000793758780204769706460871875394892482784342598325172950197513592501071378702711236629013452398843073917077399636758854773054962607097435315054873400974238834999392646127082272017211342357928400167453762052990136909619998457689163168162800801960322411112344908911716971553718524345204151663647735393279301974859081791158458411388249950762590734912968434721660602018946349515756823986925555847344165689223680525325737108819316444367224124539286585590955823303781085907496049661180809539167263815485400631611010228312629891457423016418169355650144559124446261321282540153157220436993119077186106632962949036451585534511892795892287714333193252265814683097210082343998535937426978586526903026676458244431221325410680885274785381766814175187271595442201143478988632783137694694828293230719946143478063786305739773965563142164666332826070641481074609127631688231022889856071464771956648464739282164877030127742430872080279993667579200967451274194279196510597415050577600877986040450141475217397140147403847730163536724272698674296526804070424456753592250197267289263051707451744314313181495357295753865522592200466705495702690020941687520369303158231169447864803669675964585019806644341257990045517037686868108148461123654765080818708936685745330633475230198420613762364288051864918859526708557684632900208744755139024110168914997125598240201730827687617410343930606384131842081116296881315334313448195497834475190229467077982456651534879263585072336402955214434814711531862798070845139101142382015495037573869860514228045565909449286219758433690740637381840621602711238798030944072917670664805740780737590463613780917610149695398055883822276524241505114290905904465743869015310542457423754659361425260226611671728200214002753061271723898600665351812948381923815635888714554659490791418165027077033732277563208582144357982028970867119920215005194602990249307527382552708422070847078083753681955826116784997402764369965540452564842831619454117952504501293366912730492210644962715082588656426564131737524472201133866251263893558204363351520498650110298272389854386575285489238154143728479856247399519364278026920720794782725003992716856480955860722584553818959967064812159128778923453610278979835095640760529374633772176573165292942810037514202232925363864859955097194343416656249441876571396746081096448672183797419429473015911628376007027220658817110647665646161866688086003991482067754534465494014293150164095484660445163283777334601255444420331828672940802306983699059337584465835374908823952618635549651986519240525165158732839554422685736198535159835226342221367568500491533872886939348841415916545310513656762071984134925699623141269452492073008479959729549061752145223670258341105424774085919912400488674312686325959940590227876593801059741845660233207497474706102562484343678193903138823011308485930806652976519441575564066187906870646122273620617933865816062276113529162829288530626528302223392066540377204039804802649963974407046514094274214790385538274962178121939327154716113390098525417646946441883149316982426148251542353006695112526372407058684324506466834491137372936518432888199993641350320183381226929079268353283523079388467353391473459669024018245550620120458690509509141784458415856872245868765342355710365134293351854325895156857332223728033924887456718826752309592027530612098506796283745878982207070738357259534238510558334891665352080832994608880538815065036536866090126169160659078015242784882742531702776513912891363917205094124423540907258606666524067262191079119233723888839271899976588168385278864128503824580495054008753623807890791139716811470515533700493650341662125993640336405510504439504126900394684745704500760970310467607032357802230887183150399255243237472920159534910429962604431033245458174883236464714674229818441591027474065544130402250477422073794081058635627880291007130879691503285838917781807313982328690914291960634378760291655908152900355456345139117987451864165031510574602323238521019092592288828196595890435683116519172296851966413311692025209303340002160128527321150373569882824424863354085047843562420118126693014745379881399603530831263599323700328532997471461361815423585810739625222684272780405284956515362253062767369003772454085374417786771483611674079141138226859785059385455829852426238874952936379995215066463117264578358485561348847833753130335519131774780985759424983558966950675135638941650770229200899012187928911935894416986897648522038643428194206471247956365756685988490620824802221007545915596571547273413267751291610989721094449759799143039588234404394754649273619612117487354397074017618635175484242673652318052280865445568684386814059733978479945698687600081340307553187845849235202404433661907251264756842865380083679881995905788079636225930790137884929805392817092988177812705344432470243364590607949731701748601772908213261423693152921773710834068268708942619482403434926534571583416956146054059436587243148145488437008340149705159050604816974202662858198983238066316598167184235780561863918945720898848718379053588695173532571030205362075625235031936559253118295463614463249516305055394584363847055644088242308588861154110623721463133303478230474807446624804997064847839709178383575369785039241382070635294459560778047109363319111473390867139447762111616254527820409272792778081808661445947083153807622720764308365220862230144162718341756619536924628575327307191132200924583127698106865787652440490257011659433929489726577598284575263860888387929425076424872261320564414209507352630040449244560491760871776150845934881858682322619286333943465247711802101093438975916693042032110350337536948502311266057578990749983329254975000015000722235835141966960274903801046263730706371485232468151704416263074098641586855837552767142882236303470142025898066307298830663015227877992429149410561392123395854448488798765174555024775424844811576239564548760641340587503004416555780586104144664154132175190901482169049417157727732075040816720939073466994932376518930543254204213815385728446218518943860245946461191150503847369006115911771640689267415971692582629203461743706157272883480460167318799283783422573139787451817830717023856086400882169944278176868160530329098292331157428461798813902587812110291727773910023795313071822787771858451245908452095379801044140657041687364971129991132606109497649120125501129249143238503502188320017752934354811454203378292163937822322308570287464952833588714768308262214365555270105127431233463183109847333821805326705510140250019265767232344897109080995315429501163225180284905619783413402545398090134055900843366857591530558378793535235005145666376699941636136885543775414975759122649307018100361832339815733863972563209788339885702202816824819183674590813991928574716158624551031385884254737705671986111136561293234013800203165775328884550520653406289680231701283301553231103338506452962671080686052865088422971427397803819130713094054794101857344604689944514995122227826746275471696683582179463007328797627446611630778200621906979113887605833375281038182002360552880548354714245256139726941118121421945605508301536125915264851155319692712131820892011262284853573655909241676791134097453978426650563643596849986610893977513226256841230135991844015044925170531175855838661293625130435656646516002193374873523132987453425498239889616303241274095983990911955009248209883544552330094202861127216809020742302085839210684934714556066451236862133638258956910424894053761300029013766501009689668210667666008797524267238014004121731151774938599079146756530245698885357431407901548385803205451143753720254242487089390938119325100991984785279269340476435475044949005287621496374440171136281292372547240709606262188580835575378283164141734792965147987456126490916600081157453070809126274348988203076247668876796210382116664739793944778741304034066444585718607668822992013351346387425209287890707444394804680954406381206953048355305116278101092454742792070849668533053249677310541660599471700861735384692535397852516402993467673003835253812330650773737011575445438914089578318963487182292834240761129292801153715843827259072685007159227942818935747835238655813998824690087890703528450247171375334243727695025568901273669004300020158464853760796717709679125475010648847666025984805327294776406982308856266225079911658346729064245115219471577087370588384370213380687774838645257843212957107189564091814275104720649965350668084336287340609331872233807241676013629953758284353600367569558845012670368691557615873385240396402709738249137996703343044835171430456827835161945002181596310439676984815333799585183424458577857523239994488628060913770870489080926969330135183870439223504107658636949584578329018308612383692892022382746688469272288957151994588295209437111273662609677158117807102590792742163415461734759212941308731403506633392128889486455058534617408107607627466502604577369269480480540546902645061855288931098966418866033575120952692627684721181197615797746620175464570108732527074203250730711613301577974158440214866866748612488180975711853358699034858447529207213656729241136610117748796683735698505962492466297939636283697768363568810597111259677495946565892801083651536482789696167045853226741238184584506664493349040941509305801896872162471691892516343731960066575778370641122048377770949496570676904624837154892067803832416909136674068072087960186638982179092088818125415705100051189905061211668569123993847072381031165800472854325441334215146352544910049922504779213008238722132399066095427896247212886054192201159914484222402648758369940733581500457195330945399072789713247961818655279942203444597888617313991172046900902597351848514046173743711379670320151357534532892556014908964552183648152699801198006189078007202741362856966301274094908070049656651231280759623967407194023947632485393446475790520533880316611730848155831714608632344901042633253957521572027384852294881225487644324452675664007261111036838504423403613688752447156057816947929738172841979081309945546383069684101895503576086747984412912227876341761698459191859572975449801370359561668323332569530954768966674745234974742890743561207167516462409052987319642666140107859537335606511173825707091434891182241481508539624138737531187470717261686519122050271997326673464057939390607819049681532374940040799557335601574949960268321634699765876481965162284811264699922224924903580529967321970138015347025895945562369499163612318126857727770033912879274334414772151782777187028755818451514932839749565551507082267432674182583009112780010265507184025719596135420857937493434507136709110165992152428434716655776575821750757918647519146623176857870368326997646746980847288992416446379079792065363665249923143187135071045734563005666830969922677963555694053023779727785658176377209923468489349354600916573858847226972572826675199371261147803498390425294459498150379108158840485861959315506815184562806931592750049517218242681970918822780894095570183655993326633610373756316830877998172359270235578263807283367646740901555385290130159664703431021059078663940638012049884014242889275889881225257545443957797003067231812034612371519152852573209444550618638732494501528617625118405781123616098668472785187565620841481229692237505726735187542594413323221796539714489389309321874823828164900133829417018566572027352168757497067678558949310908812962643402161074152702917800843853511755451358471928988617632097425070898858275853780505375109234352379982159084730012520452212846231283869533832333659910837219884409137139272549616827362035695750442380102327705823311327923456946229773809072939330762513735981075782403864259696008862058917113458950138091508152464875576701367231128601441211545611223016197643420496857358106550699947414114910220114772721729397117864398118401983591266508391117445889382878799992003836223466488095385456824128655725681261508895417087970719079879123699662410102121165113976026253786046132244537998515608258691765651274524859929548805254560811087498377523260118073529376945964408242923663311250251413109010668047630916246377182891342242858557514831614710883064181163562112767239627958000102804623364335242153262461599545412900038038713573531069418489622596542196569898188997831931246937869124103276986800384251837196644792511263750485263973404743784697549682977903447716739245694546790082162805625513223154545497663954512821699515053929231190646323976135548527235140152428713211422187441828361342215571044825271333900084622824340917671207360396441437966674535674415488804894409478504739373306905027333967593943168569007006643159248234417188492859088469624740435625237655616206324185920423562521184827660185470247267728518498244662813249480620142184236928491388757869752800723411249440253750113942409076441745680173339308141118627133856480650894857802274738965065742839105855439254905574580666707716196576443002356377838828925149071160943983385174119957053428397889081902901330915659829617375837078259225744356981811826496103577551288863620701502907783133954251921782325104216035782478563969546714506559907780925487481059208535467131731844633420418917088366825377162150421647335246467024613902496491831175555219007481928781123844835289596376323986253976197156899098897178650721125368051270003705849212055232504211621449804586678438243101602292986269423734662904211777864704988740261735813484032521921217486416755330665405778210302482528946663061536525373027729157853262899791463727650941414017839453639516791862086380841936228054206075885129946889886719370757182302664848859477063721999042606105753897268309365163928909997255500392284008129655838532024113217392166999880351112517733906793428536440889986566564561410823745222070013007823326992697248339722021299606234473371425443489705232789657426549187488656521960597031075202217216676702737727822899038862880723128268896120183138188557644117891077704832607565731404760155440714529455398630283643138140718458081500729777303198984338941664712015193256209905570721545641399088437835064802956447759925206113857839449319114888525381657768162312474925985818380863721700016878578798889825121847643223380070820849843499977621538252949376428024229783157909932446909562996516214285618218945128170229901098668624074250573323178554740212255434267693002180744235588600554071475647719767507477664798646089425867253249958648647048772118574816556313222531913757165748728928307067332586714703224005110675904155390273824525368317545084353682423495196462250995509157675426322430070413418123239482456305076510416043977544112465166220028996151615505619400773074204075699846080012839776952980134497434705008272914616423261023902807225671205508910509780041159205195511926841253379097500584023075168636687113559938945392634166698370406556841533466682630553497203811539608998885587001198306777894923523513893335298965427119855732620913850047479598712079890745315180167530166048277755805622665320920413790324280924651722290262456560760739068861209489631216562944058804717279722344920330161175656657022872400276858073589749088948143717147612542555239647142749887714060266310848765378577628513972982906500657280846058949682631589875531094680255390469822059233996428553956483195782314576187421972640881982151302465320464790074969416090433308319627664604925471369757613755358282942773665421200526685683745334000297470925723006743444237496944417671792404820206469881634138974634227559900633601744354637165848233025825464051243198183834168833673886252915891164067612882422841456111641037324156890752931524746139404809656588034004731009315657757184858021774223028977626835097238695836172822691694239961687865213863860934997903060714305324062046535908069338725251580827509548516331910566061850786628870193119347240045135453423607823811505513758639985134234988454042044591957381945540552495303361286579661993691362592730094180793573979936241207008038419467919946069564804850386080764825023359949172316602386661739794468701361371924403527166146411052078602472729736337099586124187425033419983977057334287766211264102891995009558517986814861085948819328650758487865618597091309480646730661137354296309015857389037523184969935004797913028360156873768071204662177816906631344140714460305053264642826568321839798457421855890112695207197441742240297607940037815392184644873022088645860334490531271831746250475002868261555814123297155699269935457469930384145938552333012569998595755524419220766085338933107093505292945354110932292933988322169617126336976936379457354806559205366595870135004004618290892133530041516791896885892368558834046071844705489733161474571982222924369924416159695348334224959909275209667358801569468003942975214652434296645861040464348494068677703119796188154335430806091492057813854820075492781167614691154332895293246670075798449620701216042662992124299104490854575068187779888749171075857608411215858673936217129665612848952948310039008889989350215330801644948372506239499398853853848081425824492182791287428392750389881813979686649401831617219886023882798183719881201232303244133266491714263958630422556253761254226460226552540043039287761579840373674444679411783165289267227969432457005830498902283612591946028684234981536746318760375608765217322695410096636257696589991896527336251816990562206756861820778063004612649263963959008917532561909957214654851810817326315612188626485926423714684006006749384461779781584712535279324029661484442415755751093563951527083770918740661315464074667615724543143457740619236298888959953459509982766238079092491491294203301634301748740181748274447560172140162752243217133089441942348959542509168064698427915110715273759402305547433816692265918634806491495122270879653983754952687417593112508369376122773485249713726951792556063128156041146280283017094985337474873875537630533404425239755957026347814943648432205461012513467764036988756835686344204793935749285448053624652307814106214149797821691365844861311828854988087579790797022524278877179918007907947553527178089530344074150071912467330282708101726480511027870096417931941252050548516170706926983450920792346349471343704988395242829248468122348649157064563677133439771046320875408449771358758821040626817885653245227753099464038219806496677906152786701759093703314955465827808290018745474146268374704424482075826438095219449954606304601933359155597176559027340246924019949692146674012760199900453871381314298466465874642855844119443514733546130229158676086272908060842107370774386717199334745970414018709066247715694698489066124236809924994922653419201669139798333535278821661646869609186782980101746623995348016382440222438186420576213660285545863252916327387347414060220833225377127413641360156484869833836624640729176024281302168016518773870621109921238060412254446157084989436567560759905846527776083832465622884480689949845517773004537518744829966999238619548830796346079027410189924170845919407323161081923375794831083759211713873656352552331991600440342185001064142869215174628590514181073772383128807394428187771755500329359982648838195716207469877096835845569487750102265760543173062311684942555627043666082073207812563431451260564217028169551949699756221707409626566122549124764774404036509768378523858335828905146590797962724523733695369521012065225000800777643427341339233609199546113830080850521724490442402415591047617473315393732870593750695377181833332145094111421945816499308374254260114616923373815534357274060462925461035311456255295627262902287657678016809417622337142702221234985410037526288642919959249869709286846161481857141622488271711255697666694404105135826911397453259404568753897280739560658106207627989287329247055487699091801927727295903122080763739129566830336155945629069215546934531179256423858362353003854451537034600905813416242128885237006922486976419328788598121505963007603006621352835043476163095454540003674271601051737334335541964052646670844334225914868019364305150735800127281633303953325035847907097919638974059556509795690787771076645249907745776618860252379032365236215314652097894840653353135646312949121710682320620299435155313765833321592511620423599174400984541889243894148470297802717597452893698759303822979617606327217777658904340722439798644322012790704746030716173359118144677906815980921835077192952318233241095839597742939962951180422438104492400492090345792229202202955877288431777093146153000345772822874138718853541990409251215422069289335508949356450978822154582610579303740498245466948981492087049339326733451391935590198290679035133682802494108633364120778193387667196867049690567937509648469248851672261636253374819366629594477066393580943050737236373751549324687875748963395858129349212657612468316866266843598062447780858370058847232165199574006444590844995556987854882412174269984979711277825479589159472567121608672238088828631084254688693876558102271241558330694008164301938007742824616455295841542125973815086421551522377719311638678745223683806329209726814760458053060443385960722307425826209961913941687323534091454250583703176121818641025342589630521768779375318536717974751225976280780267011213124538534565365362149575935860305636221165015277371151619219510605599028809231215987582905380573230628027327319399739650404256378305901857773259425469948758963255610052081500485628593750116510646840583316199072900502283436846266884446746096152639058794865547937736533252206917974774782938578142779524282211559478827326308803287402918482008770696134508349249711891114831738749551104010827661962139728870787846600221055985146540854290425587961012136312756168101445886558903100430095340980280003813647292539563259142531180492817778750474483230591138791330884088327469456432494067604069510963215689073002420540067688475967489456389536580572649230120858130687383176358133740393825096275078249820483253590963374351599709248349719813086876574665840290971367924974191491304874529024608317609771760336883306578247917663242423930709737973635309442592513664328398276409703833610302258812307466585163660072664254541551765554275035324643537193425496507498873053261633146164794899526860212215396270313377710378472135028849159299414771329710576914056841189735620897481437499053052424027701616283568660602597182940419638146307933920047013293876179931225390173691194635714056726183171011341837174266420570670999220812833840467304433554763825388449192828921315434822322692299973934713597262039612713158811977717340636438095719730947033614364473017390978147136717666111012366972750673285865923269587853505146309554244516607932824812700392765799560611569996613101779578492872485962157592067108663392777678878614984204649698333001830913091066416615743244566389776040765333644145909663789252828549691636930465400219322351250391836536617605580349724485983152671466090269554619207468425270267262309844265436270515235538452888960494643117824925839226644042032271887314692084986250252237790550211304853115800448635508854295928224112419013951776252062675639915838329636575015455888043112599548701244302938829543827564212733235662085432688141121364255292727396770606396724892147556501754632715059508540374778431239111316125623613513291288322306586015833722159668952707257742539003627900151542567963254521637187847193992925233522350391452750760020704357636390166750149907434974059467257595054412143213017795998590733416600119947727491016899920279263232100164816692588534288984079900726781288678950887037583332456615583573930130418677157662807453864976538585746681559097865034507354016703509753685640450536963098772350998356818025411759691898640650935359828433390015511336634264041882532621365751071592738064487887542715056114238130783005546915343168472597383074563993235590337583775784712643946452892298359911420350692401305954258188126258013829831857124808283884873717494170064317839878229368168451834374381434328051282616109497141064705910926140530105581235805899630408372503339867647193130435064015295705437156789680767685530450823017977604928917242320000218721404504602733415083313432094307718444657017482546793023285285115728072541279555678460164379460909939371806833188624306795622854347922357721731763382840527998103895488566257233780294013051765166481560612287393923571740730067537495496371287408754245873421111314916614208072646129164887744759046151593601914243342580965505173276366472352249312962363292339746287260620719901811903130147272112205327074536132892007917876835914705865025710643494049211323517076632927551826870909149511747198592857662813299621134034713186386701761994912404138934178001428725757500349019079251064982440839370532361219202805913865079021096194888591735432546988320649888591216729947972438211380383835838512730658261319651238765756515576688098352525869058408098121831680790867721456411742068645462203421654148866636007672276860167733858131478526313732405901908737807281543356655304086791434409131871618402342656046036749438601120387907599716419039659431811938999899338658329774681933202875041029300802157617689922723101432650176994962140894964631702211307027684755069416074474676523921018345381433967158117712062869208323220822788415674418215184668820054747385257270835306538256681990802295441322082673588047490057367333369310031032114530581692529224686676764254397022861899527389608436164493575024360311048156646051757650524848230202720036215219950188386059437840441513137813983116134818290889152410017695587612648634167383820899097510547707082622500514595266438085371926046699995534254539598110821664506004431296155083067345580359069099089671381192763058986642680746437073896423992270086978985219352318809499463935193859371840248855667727442158484619703637225549090665754869332457924094762384517802677648876740527042546581626477530405251084249881168247713960772143390813756799378502685607593127971641642203485489809391282967126707431024242270031611758794021314038536851150164683759717790981882514608133616694906195567027962024600589629969756966827593738901192424823171953706832129858826163226073737670933346302290454307364804776133380016591545055403020056144516133226855025847769685841162042614591966444886421463425269797185812634938696283188287504067084379663763781815038220301515009964152350134390932164447956191558577557140651346337756517524064137278589338830112419311302059945661079772545517218918763982831931165743887991190520658139437954071407909126848135758812167346516370279230040927103529194399093826323065967726980718071565415612281196404281444018736068422699987052643723439465835831770602719931435071371858864252611728694601298373793149638835920441595432876035527637186672075231690757970384917383230811919846106512970826466599592448399470337866607151148079065861537226439000805238930010956656503799762506399530492879235691195993027324805083555197766246647486404596589293504261468792353222813078568459696867952033424788064100686563243323536602836987932987562227851503637096976551096932159141741563187052334728608217031030889426356709183072490404576427681890370656755247384301910192626454069485742758348469956001937250349388461196715973282325236296383340382082959035810745283038428524341652316665673449287163723721190620434640367087363209206100595714836283384646831058048010994623246229807993563259170937787811755077680922220106492807118630100628884235371199727520847017720700459657655221813403407914972055237229508410981145585851523350059541522294448729394026395255436842551155786574549140800752741108976128143148243464571893981307344117277193688992953431683772333912980766676290645042040075990567909935845227207310910157976855646864941582409494644706368833131691831570056377289468360258470181340513539103787635952637172232587897938472341679382730328137840406565487354889090841406757081033073510629698158221945502333853506282282505002721590570941592213387309126066758829647587554265103133997025742703803508593300793248730115572255476779379720701773152839556378595687258731897379492672040959011602817282262695952334757574942568379887531689062155732708495225829272798497578625104758924901728178999447844349849901862071644951531426541622653250647617970575342350324677752167765555822407430556537158872074054596193216763822985061066470708657302665568070401156241463182482957069304424758986604537532533436898684465790475202395587514686534078106361800639705975028570934869120607197679342603872924329350531525087454508228883358750440145662242389521753134441993115557369668761895293077668268304316249184731851461816721287259088660272626605801327040196391248412835472074128530703917453042880600751275787520008432360796805114535646768772351863220025015050541492501522319831229809360438793945374682106321462975006709577275888725915575281165765377923805401336650336297106173612899768252332890108996592663596787121706094265933225393422597756370324545539300582891885920547056030079809505523949146621392170190273495860971069632957283657544894604918715254198416885186891291019406693928857141954059659638880654282660975381490176796513420852774927886549531054465222203870651592503376855997085997911382738817861056468266217146151558429663083687261549685403830063371047497861767742232238505975387018010100779430693719291802085840693818870813080562624081155468178271662959009701278414434869649817045818295379849450100207415171910260605055947764905184443729695701991118262987475360423228128096971245460272607646988053327046019584188768521742933402036699177414624053133155740669617031417102139418619658520618752548795610591666382844204259422374605100740426489845729736746067607746907025636784282794974972063468288130547241923792312612433777864539782510544703380374788072300011159690506295625399889011046545299567017541690451951058382117603836105933837420536111731497308306272580953923595674795395242830271089847845024327553395064235059356583250253300991662605167771455541094169770783392865118133045699141666742125288193376901173905700511310229721746197384532283200425090244400760080990670750034870487507251426928020909099821573737447308255923190007367646851559148184301862856855004901993314921087175166937049840707466971847923880465123631459251350798703424802538215000496214828565376241781275877719959488716106099226591099505380411680745579844087053181978273183309367000420085039926795982002459109476958814087448711597222282998559218181416046050166013172195685872704329165603301814885437267347095326575895666979365122934476440630496106089218998889622160769339606010162194235592530593802102898826288719127765340821211483761727704064646303233382504188135085928506216902745922347006146651263996310078869443335030147736667588628930028371955769921617670859602396185210275832566102703036954469266729188424788411839434195929767587660698880468749452806019652265383960801656145439651955226768637885502989793945338150096996245554007702375206268618167889472596538863124618133424582679738290384156230527677056655239389330060403537864552744234338937428892388194849515307982918475055068362378596324464971336165512190399526894774756013748717883736802775486913385615613646751807902283873439218784024229791312793022206447938238880448561775399833861317529673534344011196591029809517107746711317774112091994834089663909699206342376300633353793889953008236710073009035068067329419368644906809706631542599773835150977688440355059877186021895606392577127377641714929883000579838181124801395689054456182913401048327487297770266641511978720997645707617020902267350665053790897668158744627169075159860524663793535874891852544584599841887558118008833532700569087961490520696983895769978258867258528739383103255088938540788803564568463495313671963956275532962844232636309827435118800105152868951517314433909372913265127726497399857724610464336288030144652351794002355231127970279321193298280716433178490848378548567791654633280940997017038921737198875949942830618932428747817610675424079408944576338237985015233940231038483272606276050347489261399804787303441776722035039207743727547169907744057991182182992904627728032689562689177284317279022316212377206657972648674791857138780709224417014159062242683858638617414519119438768375096157122743274850979855608198906920563489200807391085491378467168418771539966444237194463276258630386712690338470628594902571994061741717249858989663304491634596717170096718948839281126228443519393487554195285549161258907577679310497865655348029047207171639665385701274557584991594405122207343719476501938025916184923850364518727860601078528268830106005464117276812468071117874311107584901793122823038275274519113304111466627407095602975801019263863738586019763187921092170687220105045734352870836401363039498328830697177282324010902222626451253857317639961672479823627314356491863978860594164109078504086445351672817931766695788196484376600910997992241922408072497520080424915943047463873512654905512633014206624446487730691644319851352491599024803537657597442623734837832551770888831612446267461209425261276408973585381805361783324624760766325555455251909036398729537208261321661428349207632308455847137251067786207248135928233746497008484527702178159093003852904133885137863172336428089806918479701829917204240791400036149608391619385253580272277691065230422505400102401063507014886614370836151887948688615641917883525312841629923193589457598837600630721313534274175807308793926301635867647969344079471623311986806004394006813042854804929678173028008841688516166417967348709303766457573641820468315472345831963483522242853817439833735951013714334213635053142080154724644535542263602269910870344059142318458204761410436570281837007456229453061558532196018762644243602452964322566375860279211031177349364614933141575713311914435590030155475945072571626261634578181957285874384546193913150259138633474344773313339816764607253330387192349589010493401782257610291569940849608920248958872602797673319657741899445641957248240725326286462592285269982345097217583708473245971200714364111285495552128368079136223320595005857346393402148037634733490829384721583360847510674456254174774220313125871250176519712174463389094961265207751822549351002305387624260804376056703938796718479881796272273430407893105997686457934867726781200713077065505220299535850834008036644516646354091001924489327298241113189642831894908304280984054897764287185194492184442271231970097154615929603330060618786863498724685904872787629700531521746551816889819287714642859281743334798805098941455972222163723888053513848516984196376978474603940447764328059764093001294285791295296244200951196153691492996073365613872650177087090151748174472053552848465386566930620555057041989030390289116971081841093767380959376299117318936222765580533963648262029067442962188594880372316677957428322461249089460643367783665489486735914936708459902353685961800850681900723795572907386438660310045090957005122998564170188256282763549343791288886271134779595005142431832216143596961908202734070127893710617648135310553225086101118752971116448822904628538377781605176597577367747060443985142163651203928016498959365420166332968739649428561639051236141076184548162878576268124383933211004565163489792384378552478886507543518676625267428625531422418100637424567946389550911021351822245227704578082636255095346502149337538594194296995968948311599995078673467085662720658881799062958412445594465072955749668438583649320580356567202014704365519089756101549369336769274512024873653238976492414994714490779574024022261161474181804703626753875982844463108771622837829803917644532041791787587292622100181458936506348023470039723085563227018229144037484823352594737316264034745763650776892226792535603582035760870596713113891560240368166549303441390535031847369473026388796068106905067659968964317839577825338557097284268620212732696764817436378093184523366102153538939985967648581655490670853498970677708915244323136448452046052204561561124544122531095677536121164263357639148084110157764003314393127362745420566292163530966962462925780781271768663376421775307444744527953897691642316979621909441371912434972686500048005256185983704206840795271336427594959114566501994879144457069191907279855397627354268304781311162615617185201334863439898763517392412373966650088950317187010134607002296996497321571432530329424951815746260750866535910489155404936230141137196635567064423339509791981451345226603159699431158726384913556854116803414899459814063087732438455679929932958238138943751066738010551879799432591511018176451409172615682025389081124470157638929451627229643230542551120088100097031501413527167663190080565052330945955210724137844284050895541969939251872881786670684676433028648947195598139351896227394500953576532236114302009971546428703315697608887736364168275823897885288525416360922255658979585791154866344731531117365624538544361176660476923954133363499208440422709041208336739546859605214526644726604272725217142840894673986513053209225577969104404782246661573286905128077628919276181437676542666668556115856911715593874551972879372899728892324074524523375621786211570667251418952508410471911709798114787988197521216971901900418003142606105057289813417932787301207341293368683799584716737773725016215785175371570907698664591653889079849508786746431564834191288147668432542661716040601359222105733640266577591155988276982074994850562840994068338136913517476791802424810613971455309405802538020513810080191717286905410118881404243494201054614310053089189199246617529685407296631051742641121074191605728722789250222446878292306674548232576188953743879467714840458190465523317391021066257285338921950549840849319135537996296696753038455320996540119224252013036635782393188650756522743072004231667728027735063758289412114147571702777608269130792539013172643346344412077586814483660735929576091709073840216314439733107954329651287560787091345303251810537097389204792823528373830421468988360883696254553817837415687688765392025887868302049281350733976822321657826484000774192558981757886974563079233159172783617447533310512993091825515427363889041741575356213030559227719447416633256406874477339516305509990008330414935712538223571881760630076329414781151730574433768032404893252509330197861975596709270114506013306903166064675647681486702625042757181570468370521626768391633116225396233064956879305426466000142019326537153925470291682187788104608186864883044121313757164395276094879282846789457394922350137004660805392749920278472258370179008014589613697607964502102012128148421619229398131608347736429716500963101936066350428141353075442335628208065089057611622925882053951094118008769770694255064610775663770684093002410688437345933157599110213942559381167846063732579656824357377136264357450210199582349610861265456932142727414378469794347158186261742959147051461028523709265501549146060771116689763415621802453788419019536779583963477714972959565706706057329297461020147586125170248084633683049806732619748868722378009382809251208668301489418313492973901239584616991236753891186857445054275727662864925698384812103044949073107927201699772668755874292162649565264894684762158757046441799772108130242989411726386728227965902978716146806290996247973303287604906937445800684006510678889850087649590803840664455798574933382166662207536967574585633276824845556496408356013707560085064338539694819097274759562739186964793897145137541301608060796893283268587518931777930998627736002631266150583264213148815187945718660816355396063539022915720442348046974969758247650716764685459114144136738021148878668383066974751106392476741764060796600152075015705133970933933471861198813329767485313651835837942217885763253191059716755888102700751273741824314994173606443108608950315022507955350813041529625302621587451098552587748453606648026557507007605462386865614137301907963121689660429273817421685387942054082112768850155598500275599718738371494430853992269004376101837942515161248261087956927058811669851905803377294354240242123720818353494606818326134668626963717617880950068331649546636250482406324593114755230096208942448659281840107897019291470063236832609986200320799216759466669492055846698084563204811533718199011337676877721241875378426887105793042279012332974589598512165011621963768266490721428304722353546401213284112134036963569429009526381511547241622790552882301902397248694599845602690276823391061581245794970354228023594616593118375317068462853736303674459327674920238387646127718936001355458103703114734315378618699009996766286967718750161518507075625698869593361781012814760851015305099424104439856182911613253393366904642256877163754069308019417673072013252392529496573775947064587236014147489059364031805931175319589351269434292525681491876263809455436430294010451572429337959971046492384545736931385532634793787491537666420889537190198184795832467763619087414806648150430876827681091203733434995543453378568838997935960723919348514799648801854323684342149095660605678584965570993601527299560097895891285259924410322825385811370217231548331605448659795216721283596354105172935524590780441790216848331901165654444689966174017159386931802588446182163971506500061648413149916793897319226044679553995628642289682454612104745973243685913908853892853264371007618531981526632110658742740392912832905331260051117509511375846666968023115913714999909251280074973836677625021970471695572783093118036014936151194677293974666604855627131132706613418373722845151697625379709574721523751220400379919943437103154178451114907205659761598920456680548151637973768317186428311696498475715620604075703335459937540318264612372590582921220241661473558951952446104618108590947271288668150375061915580567179180223651727843747736917895224747390670485999240926025816962401996487547322487229043062095720214217407153063263451658916535755474570104164338336348541013959119740300180393663604449083699128199368231429396937251203384792095800889468063953362818030895289052451291632417114698230380899613774479068653777955268491357937421377467077020661332379843838182192746288400932561433316350057161699966260874091885195935550410645114127086663528112022849936767502079980653848046986541855413854716783711075223759109609156737857156484984714454324615683943554075512410428223760551830928853698735266336150854266229166264545655719380532640223170089333132518867142471147236979966285240441701383857881557767547373345319460912977897550765055095545690531008220022382343195607243007519283039932005582276242125810229337158712597179887891822534492722911502579915906900524457981723266490489758995615533794382375009307048991147172353074412821082578446240610513174303827345234843292131361164161473776593968176409388535944422883334923134523983874284363842299414485647986286271749476426976151732274406566472283103447672901053726422618351489286970512392261006699483815200922334712487125111161546420974022615003692713338813261563784190807353282661649546175762469014288170929562526334763521741897074522510275045850515456677433823357581076389144521651350077432529941740152337548915058201938687566700720815210152084901061587943284419911001088240930318684350471100410149561476502735644217084557474740909338774096853540044507975123528820820274634061267603886037626540735741693974516056479091112585558044566273208082706295574702064139706347112706655385434039337573052930536482722646180127398529957037373051512479193881898569154717643222452644240312688990754540491924112209970366065857491590840693634128071660278293877309536497040294608671647603345856261538092863472851383235523857598582174681417167729736273225090094472615186112885933687395797279309644400573950099576693534574596136296142675431400936093947965894239886898900148974830932722129831680679263434233750526136124885321167698424328150519959467512718151309432999553227125321911965586123502419961017414945800969250399073764817412894493218126351796529863624757820960396790359750606307021910960402276014579948006940029055164628873692016824857221346611391548568757183224145811622562276505034828829074936160741388332161596218258556610437662110987737890293904285921640175922330874793479452246805810186658911244820473303745876162171129719910215116628037927879342907189881761803831509123084645894041139230632786700656714235715422461885092615190856508113122856268570019975543206299331834207073349762319212298457094308272790958894191416870654546730237348012611016574405172741268170288238158059964090188659334862006764814918127250176113373280479755351704930448374690791084684025367048387483111409921351898709567097286951284470736930929297582320448323549851540853925593792755538550248503519010191795510829445015033001707129832127893362494536729733191279302056128952107083548732687817982436999926804588012330928697192649202355775568213561899316551788165955178340758138149361293872640648489210073177184436653185063226693972413319608885401230456988923661748622575181491393548373218544266782697517006179269153794289023307612656023182445451473150370684300688268907121551377043123197047856141180779676841901489919807988960505547244709915230401515003528833415598663002730221227710949081142760117692088846618788754689143099112774037500147669725567322298635407174671756079032502441270258784568192364887638530541038533945334311753326309885466983927269413816392496325685929994977203380340942602846481052813717576864190505756051856681220916397911849791031825911841558209824475228000421522315935081765065450861187784921970213033753180901087012283795587910422916317297728569567050346878205158499766074592142415860945909468069583744381654379422848337321953307145080075027763808120371176504292329199310107335409520692254379985451536622466847900679366994610742338440336877056762226486236908832972037835011430557079572960123069597743480405032977014008707239960046908636908197894599206938244515653692567137888269577998839394354398720386601228118161140099373222528303096702823656142459620052165475223943235526359294630814025224257580941212450302200893343917002243069728643997791415490721837172512374245321571489593432907843750254837040705045710906246697966403452067885800881093968937932387577560924663940449724787394216968526542418041050972340298072531674083240444053299684810950298510140402711129227966827416677769982306287473417382893358162655291285690873508428031331560494480143184350369540016224739147092396944048160382518493078889454331187229178518420942901784871033270426217812606240359932760045731917394315352225932010612661579522853054128276157160702136154175183097288443386852299818824571907202532943417069517378481971470456745642124908363947358823832696411498436423316000507231445340778834317401155640118426086253540790650630417853234132277815049312194118484672675774103704753792177441751815944311788996741958784600535138519206945894888891057843111410945304152516803016579814425993133134686828423026363608317965093700258719740690757460481843431587979762698212188144774588476959755657588544458614737344902181093322948343421972549006373797190406757936893016933129339456588721695940874884313586588781782747202632359409244605576285812896812517208368056514007011038377942700291287620082235009731630876606881618956063316259780216593081177612013742530181048575747994883982039600342676013033923539454547926788365447887916060654377340447507004988990292021494470974197633211383384892963726370340609125380075509956074399117019763611898516659331819411114790839360223691999426057607010539217822000472223435398699297035759015820955022112119504598464553418209339974202045697520445834739996896982066445966355872350744390962192677074385710018159293685600691842605652417239922924085512045385474635729903681034733300616930309227313066438173535931589418502266414212044879234788002032135855639242515807754126626083886904679968719580099755155525199172149602061757225083213569597424317291819905158914167877581746127674471308776752344778167040584080946794921853917218901698381779491051529574328706852430018210570126976790746498743957384229648094975785650118457380361901355968303765534555729817970316933992113178730915461766926763963342017150606690452409899994271672206442138482573383501629526472455271066457773673849487828435386578265414589627034761105153422005199425243905588357964047904466945463248717268940113418420644415540321677221101463273552966294292419310985989247844574957125390444395420852337414682358097572938100428212163886405394369796085720755247571803537203355365277790208563321294691101257536589865949044617057165829376007614156389443894717543490472825046132519273758989795880476381839343607715131727629662426105922068500997550841248113649433641612401989401680498737457781447738475911250290576441162405675117172495281568905449930338101640550125797857633528968899780566010372001685574221466378146059852868314063010619183651438190148313661873971194639594739436381176519134553059734680008472831808247818928572855309864193606636572796043225530352306161135055445708120710302340967975927766748714965370512188571194959991136996574413101020443668924276670910751149271076525159619020528151337201275527367746232518886196608844089930621992098687654578241795594118742814205598047814242488600276547836765150795427773375637179555658236555324004911045822188039787845690733002157105942261934738547513262388824837353268070078532561824692552677853328357344433844107729694419602570938722173121769108961202244945392753589157888613255686417951790888737045381632458877846706352827153289152764656024792172297274159310653281912526854301037930177651938851160409263342469785146616720581808295976245132891001006505989146486495855259411588441668423937591884568087450945484847230508464415019252138018809447932970366633652595061866027332172253451083922864073162696281795534251549794330090574849698715155859617654645108052259565664882500550115574814560051908149743234053858076319019427864549097950339802707618669341553850454604548892991129252002495019953797476333688001486499320604005964411862243689109660017520545620518536047021179013377629612394304385688397946597604183929329048411412263970247191575169017277981667926609292144177127492739071076392747740715816013754232691850500276692108266701972178681567574425557783902462214184958167270180443585995406516277517482977405098771404438546160335868925226951520770195844087553958410357667463491072703930148148564017113187425597104123566232973420402281223235943470791951169665594907981250954790876421482214479258579790999972448783244058037383538760871864888514998716847154289763245633488532079619072792148183739994217703351637840724343376812945333775163709087911536453152975405131423325296204215760638510308226934276023124741010180967001080439081976413028911239728492739899587178630977750776104195246776557345312177371135970329923247713769437293407167550015554645716161651400756966375671055930650032609580685940212495516783620011326105246093469390210385839847895567409650758559162124667786247378261355653046303820963538026620426921307053564170306524605087818362093635526940562913461141684368370576401687528832730165458165323067574160710856409331402218898758326356640400129398180228806439566966918322963955993461706955499369167173445653652001838314685309462777151263775718615814660834602134269962034019583868128884409889189713401977008052183812215846654928229779295276098321071884371435067685524203962808261623129027904101769088684034461122739617652363293806202262466552097398160083250460304850982825140262646431156124145905899778671835499503721587631496326039149785754874740015112852153769780421575358482649285874751063932438822261190092955521930076731349690840675639624703387509638763577024019677478140746586260666695042669492529254472692330867972518310474290938002711900372972203358568700562986109429614269556251706893962584728560260450979527283901669072964212391146147698569351447323100299781732161938391821623888740275696278726947145889450426517591008291292510557761753829011358229684282990434920110738703953009366595684610292931350735013854762548835511776450019514215509928925927770720355192465057452447894652348790887277982245371001844101014256933699282275875076673054841449019235758756512350132915138626077965017285514930245757106832020760288889388123422656505432785949435257139598934164950947038925321074772031841532651224250524639496605297475047589477702316510013088841326769603929893542227584182962625304751715614187193883655132364546857836078191218027572772069239603566339554410955097909759405156389567288043298114107181016758834356592592721597329940427963430155543242352060921248101125102559208399605999623475144502061048191631773951494210013663767656596845906065879029123095298296989513883089271140930546793373514643944732872880296593656401509373985933363446554144067593962547058255461363897138432627987382759374146183692487992169524274124728376733658955561884914015348335147033339939488324570435643765089679595700972180512018304125474912343937956367204748146019599767457568635911506605013243804905603754592649456487427653884918195767306028002455220821182579349526486565423441962724844944289545974772782431486008332770251092123930922570268577879204450720763402774974210339706105396682844239733563287137654900339722002969108951559802247941619728858483782580515559787790554598368575146847617695779221856526018895342004640129100638168398949579179846149001719515220748792951804439212331409943620614902683172063019503438625915044497761780380819102526059805977886714059755845676330049648554122916781662587114613514224122104019657178484264879872558476065670722050443526514303043359535961368154881663373694012642885389181102772831446440116806925932349364325086008930620277092136081500437268367054970919968638687332887078314116973883353080466023951381459266565375323803144205133591120746096072528747674094644369814452799154759830806339017972446732146231418632380527291326468368310562182022834744848680473088417009147515860147307659608239096784800790542288076456772603030441523654686788957992926273225327303837140627190783594109088347032613643785521792041355881102572332602362112729008965902745220259370847851623595003095827196398398122176203409960258215066385733653047878913998926768030579926864836512699759966451822785653223423104561531412267273861949523137620452818066827224504594756277432092771980804888030709826883930682948689162106449985216533045394012284287619068045705963453226762461034479026444851215618385911167329780412686109072034597188934075291139101887710650849326966801513793407347622955318815345269164858911841909661700646847401167975935662388489388559549175238201818656520024410075769018384745234546947335165548738155238253216801505742053837434161774632575637188674257186959714888487496583305349773586636423630836870650690130708362431350342259093379047269748504666899976276021496390194647937559175275779622716541331438281207477568514531393047562204929748076664312133029850696921835708097410663811321300596337966104282319948995788449021874287920113644774207544076955724250801154061182559667950473747990351517889365721648629153282462823495736063936037420394756683174248806668681374413812904754944190862026679856271916982816110679524320863972377057227191237664552799842909491779658637691928550078700087005505637366722234313690247815910597537502158836963392448870510626199524086030574631138131100994553002684927924084126917599641784651347281848114133729567140314447018833585598109999064770785853941707816561676508450963765982065644436988498479111920501405108394649864645071072592267159468939982079041085410059629863592853064458565928802090474122416068948735877857137942615184419791760089655208946995253544714681665781121687891182334126196262636482196058292562634045669866318919917464641827054056828694214344412431484078352697283996202133459001580385706656548484993925464090262421861557843046591482449385995581518288954413915526225221151922701721233047123463156221475168061290075965978848794862052507500838966095901198573703121828126939996117058961512475694353170335862459301712361817031058153120844282214158704343154503639896516474449816082847209519171846146105236378163953745799852152978020233656221314039386999831596899666181869579172180913863028482686398973456800039381319077932576315383069390902600121066593727210517985165048343620496626022699155393918321938292214230595613184391564892465840459929653778998054215183580199450434419773779726978066351300641413920237741190149366862322417037304900857204471374350553479302437278357188752558219473591015055791580731995318747703958605667445144612397247833255220018685038202183793235001528812491776968602832842421959625756116561338513941408447949479143049309636194933071705155723219229034277285193562322828006247617984409435593743654075991165265071920551344274683662286831491354873298337709683504544046225874513762434720451242903161929939417979896250522182959002642042813174290559263893798777679831488008637886980520090251780741618706674751182341751812176330367283003615904229992127559994083455091808180262481164649299308005768802218413394113075692676321422626851718543548710787587047893072500458070580901370960098167525399865289918486585693729356783211004439405271612427297934017089525223730538092049010502405539994015295019545579991632349658184451558114870268159597769441365242308071962001872613086928937287023020529557227716140385302423326400164938885724342793305713334555587090866606243971575540844707336640037950217118874879137761059430564502815232607961758406668358251998991332457298548280038521283419565304491875302009328085965617559397424216779571918484772185523201940371622577564030507703450634600006976650918534765316776159986035544992674691843762534979002752854891361148486245966101271352983788955334965099232985708177014749461063806919605942215901985297405015437482924286395385405525413310396534060304098467041132461393586502958192292763415522378412330760114344999966672927027049669893758615269952565631027965262297416604253358689060845435817342636166369090731670377021622983608691058757000176372919231238941428462623683472779365918712942355311779992729657783811999012175539337513587249705509267409696188512863853635122356775872229075667559362344853951239040774563706201192049213703110334239880432189382540736492960657081160148629562849594785217150943303869516300423019063417851978772095411832437924677753745914831415438644011250716592375074539856965386319042786668642598901275857520836738299203049949775506779135864070283572480506325400083908360524851392548072763753045614287636544306657905207843763460236047120936625009799224590917844828542084306581864391422806573334600403369517626962464679362185442368483984270824123734542155774024347274813602138923826066075993426443514474736504977327073238319236058710150923523652605434323486782230354875238149237721440205901742019805053119160242313648082607732638421744969193633463015237857953837095209248335246172309131540110207280130590276622452695289611138027667272496079153514592190171953222132209210426697339436432679793770035520412231171680959975243323056582856664759616138794861536457328631875961857368963983354054486748154301572325979237331757288129288978150545143396295882156538962956655453329639258108858288354321818128173304330849392101347543795900029661734314354525071787513765160293400054604113453041558199909776216264856243420083051669284524333050475884153745479150270721167915948033086304231231344704966595260599097538395732182055513485472837326127976933847038464972028417891828674147431920386930141051947614555575631483270736799594180725240913447801331748585509229474797966970763048046605575799314658227753445186764194163997511872547706001479156627107287084423656675953331420801406779112209489217075339753858419689045921160510091383706492941290736756487325882197666782088709164243969838107457584040449980824519694971379912505735420133527378732697422088492928879921236586045007008543778537926289885047408963857079572594086806962716248717727000996695028387343168434768439761431808161656510306063861363874143921421596463239413840591194918345297552033897152340636597734724481797842301959118653703004482562735875643172290751914889261620571895080855847294076502123535145297459649456628047074335505795365893638429557568092921619187169751011220595490025684770177134789792165507936825810232902380856293247635808301799734148968212391451817497275914699307355389441254673080725863740019645457440008236508222752492810623403301717193803693467554336443627355467102522549632416025661456268024487008489741640984800181619281896360515460163960969670514126582877724385606466078932733824092596627568299862102928743113019417532780665144491805697496447341690554988850090624438634873436221988997668434988301404803770323869713278417230426675284271051135390211680850421900266458809930588403068758749133766165263285041650449826808402315535496242952797299685986413948298050150728674400027894673024630902144528225759418554655102793122972849892687275476164330374355109216448443955078808855121488996503172739997782029620975770502519605178606471100894636093040039099687385718784350056251005635233542567056155404397871636658149457575504265337491579537294829406856778795080259960829105162609228189914336556544406403124604563058291797452522657761327861735361911369917436043951104466692662741399276381398078793317191928277380839107634533506885334195654794873763091746793502290278842352199081092129461031774338871426980940511479994414748805881271739215000639438948304950634839124549868252289063257566874814240431009797733262295360078100894396441265357891124847256348881321500303503045205440665654756499807498991709476481742869200115852179447240504376818304683159052470214818802129462606839545077821272112135163222129486915698657401926539392353387140895399232374910099721108049574324454302561678981190924676937854765981968296492453069035676486045322102298090643066495347603491953736647775022063598515261917024240980266447419898807171067349638694022275306558067102955015385430284560005672842693973947517650998372635759400894278645400455359266191123786461376209651594795803724424487309633048908836461818456990704780039400283154975282208785426549646339067548652572734933304630300830428215730439265467794440817147122839992492930441123244355955818306891003401171960167568828718198044592133880796135353114213415047220928009152002512054955602223041538839777665657103996019941527961908593732540842676465397465727994457038429830202992646461956893924491522328399160030362204034110017394698085591090191771170754878583388716692484199568345555752413030351903357016784553279790062450420005935621693356377580891758413668880439971138859329792892965236172814893596871021135574959550682077662671371122594074068308420213311394977747220525509632783061175531188294253404268896709108554217012207715206438340516795550601192241307858789401818847283250284140362544053520999704915485859709868542308985372353872592165484745427077239049026323915145090530098329168701890918697585971976558528988848839944476931658396279607938212134956260748641990712418334822373566076417975789176933347734042226544413598829399511883789903708259279122575251702067192602847791556704698172273790115323364749657947402944733422897570041955998634633969241273135850872398313744360061021580992789701427183529601144581373026949633285395055924815592818864318769441872449274373957849823140856472409688019992403506802879136964045527804753620078211001320968797945923433887240009133617183904859975513825625244492161203466025884927380297914635899670407596964538328748282318207292708800248497194003303633977065946709377520312513508089921510737632950511543092430449963026927840003298351458323537143534857411529307854891913297730383208706981549094468832243517813251789073536266070001596431086138549651774147385526013604836423156844239819736124753234540861351665128569256375976371319471508045952218798993159694541081840320097298283363866393480372311254489741522588008294475628286075296836479088293232655417431242381359027088260611467691236256964669050579958612852025379338438399240971438370392407767877604935107690205877172720589870772660088828253106795261374536443060907783648509715816483091435292310347968821432543597806490565094386283831006572701450197548785894116591988297587120822333417580348121318700969588195747459103149347007247773225377143898817476408508150116709722595158140443355483751756917324813258753534024982391023246880064799012075005623358315907296527550866179092065282401351795164309969328037437488579325762792820446573077728226205763623739485147732384140762427083254491702564874664217648556917982655955981987824802903520063836959391111383549934656399752052455286157997338386915876763916249385385491075307260681479883734461662548885580319356964754902182376885651530829728530380540127768997021752254654574090817099142157067084760487765000131162269934750341807105028394052270828283640120475669903539204505699444605614669337104547390909982060177897144779178289369880962683226452094441371827464029768485545246597198891432599600023369256226964001909019441855416531615963654971698279498807742049185748133088942765798145694631354322334596088876637671719669506780010718354180456974800402748804535041183816793938420964626106769439507345899154292434898996614633556576824062563754247905752800172139325951015228472030539769593741618055486540807494808157482385711657206481990971993904940333666472742590578143923223147883799709690848661816902091176545228403258562601219011975222772335602319092538377281835695796987994095149637883283029722979932847457605454366989422835004867608726093792388355973907855762374189363269642974495994151315495823500560515781896171057613565937804526707193185439853251675713184777433808048415332745407732756974578229177723072041698697206615516900068056684880768922426157945201989379634964510611332386082335638476356461537350356452815989633473973806201966851095050040644230369575017073316583649012811688185338011491156995082474072896687354160929683098913092036827226817919975408638368594765877841029341340928731962453395701239561526828054694145429881248520537738800935947104980704634149132578296204572178635987762952706284951140252025495991753143888456930363340031861186508714247387920753176420364639675801652319364957872236256622068654448878424561336935676490576939183704499622465388854828727629427892685105990038359445588173477842385899464504562526149089842559898121031532200465019481293679064316322192213573913289831488153390398566872953338135589505707014218967923305355098694841413650828831548970490401900131572886086206556333495185571569999873608671553857544236369277355056936009194141950663151770442844241049600962786794188797317480029439322320106862273755915339646367915896410057643601787312289051620651574502223679374177104020883941972110899436087051534263252374442719818425633579217791191889724427405667095873987194555504352807443607205443848508093013317493467264218411766450120920109900181051695343241114744971676952390197048818888395058566893900922659969502343488779528327987990922128630856065937441528412215597113672432171429629563715338521159530118816076658381723498234809046429893467506756648436658813295697947387592987408009364200199065160773752682934748273190968889002224850846177956529384320825494662677712185850093392932010708762012806137765080320412265074581555227525961075790436664460130904456674220215589916448463615466917977333402608694004888374833010000741167336430397648221119376468959529230815483225500649350479119921222708182617564439881795966914057856313164776086036063347703167115604832095333676947346074873502089270470765082602678484490613837957053854783659368166997681377593351930562243924504557007900195128906257829479169761317680330242258932732847381352100868540399949133166202058063418768776554194146613499081143888678323011484402823921897197801707731942326186455240386927067331839190050553142082816962752183897611476182068619621587679706955312711318361153689426541129686794728475554345911269875056854075995993351802015593175636984456398546807849648872807681395785097646075789993273201361346933114235272133498873314446501771261071386922514678219980150571562468556658858924898297905105580083204294541022850524475481781175688519693520303666229657365381897298753396515907110402719137829050637644691901230769301205572000884594942130851212869304049328297482927992371174379390323112518103875902135370034256290612567101786096796079412781324290574352844599755094971865799115748188745662329699528109758894755833554792835289223824216009466518347884654584188343779506427250303507803821904236660639675745226785543288313170723348941587273103553295459109470197681060343503833551711659963142312619731854751360981917615122103082013366121783494884557851104653918849123230086614121120124290305890671674061565809487343734279598206539385431499532162550516570940799610901797107677543497517682513993160883721203642939194778783914782996801773530299761516035443154324624767903994103455916576101506567551297549768868209974641833412610237610441606470162178336222409960428931211943861104041837070439035712224237376810155594728305115951289864046078642774341730602271895253532511082903790997604933238583379842270424278441914916296638418191373659084867298627160718042776453870913242441299130944924369128072654382779052725109248907230442964009638511083424704568010848340633791265361271783537542905848537053991482951463357170641850967351825132067605639333065433941740972302875135597931629945415329536894516443928104540775151513288738600137433324908756797398095069714895298812093727656028388537386906696836182455010642243813416822256879860317107586404487425755576141981471784935892032098985140018523723555370787435119807166702553823512912137389865733265019149405155805072379829599755564426446438102271293099166624948114324993818029100030036494029167890000819477260911371876820457559015894456049976898219493877493741577784764619918174326144256192404014684073512116245708567272167265647105583708585273813164844130170946913905635334395003904832382416069077517585854182239900843113092219817510346288143605292782581038329727842561013618408854541579852920822651811307778386088669024280180621624017813433790554701480092166164355539324694607828541941795043739837627385780373621737512941459879037437459976445761860338738763842166706832910048367512869273391724082199051799512729162242725025220565174487822400077398680478031955975521240182134964887708049676981400068215432476055523226641697375829335460909657094582044880197839549528115244838628107396401217762612914941757850115744943474083597992916478882309354481395005718204983092136147235369972113208024781335180163404584563233710610033427437881471625196828794336342925596715738959752596121581101381784080476769837494760087193335207513374348924552685049739031259531643586840304056684918365678980245546360190509725490660229607959354601045679286150415786878519394244524442220005368707833577219251760916174414372468846338934492177148670827787958084255102469222189289107645440700890659305368604019362513164306348291327697315259728019134510597185114180307931269093303107087108048663245675359301754751101814083086110264947375283931969331573146555776807414628657777376728104618023284454679765824149878749413746960068319967710490703393078409684509508580083043101871243362166682785900038965618644875750857822423452106672609356027054323662054763928897440319489963336266595126655295607080131518326501304950404923958298231035397533203113834698643537461231148615654846828990967302901871938160370893066749393443693416741724248944113529437160486202210036105897950422484603205290593372049932247566418033558793174871631918596610441603544791076113692967856134798573566625945110150996813703795150656346588825571894495552953767671983968666891256069189277710708806808035168765247430948748673858737938542986820533982061599456000649516974296493799369718734287726115838725124963323945433714591208910638536849044579679117049364985980896030085993487082169148049700206973973428238231489742547820431489395094995599946086408354005701946847700468858222494480857913487584034433624926241667847253070707252062153471444605086455893738992835203348641185553150682517203831379189655669261178929207851886497633236412609792492006008899086547479422364119044710398702661626363712427236828086125277203393791726551349518960990286716202862785459486636779025577272225091722769076706023733279881451327291779436757469001616339595001827870086322798094118217803673627007494058484520909071141340404534734105584120974516376647530146769232851410711053766707530114350524126231317905974201516993402348612108162220661538159840389691308103903429969665413852412703734687609306413594368788795418109760161795278456546376459903032719909344237889342131760137648001450874995821696667859134299414659154859785289581875613788427086794757866342771412588040411266826939214484862486622498714147581422074677617608756555937847018715980108248711592519697338704117554666142205225757948330014645179770592442193198670676318216952448478485165711471759362298989086799188967909658893898856763890241667720133147015841206533869030858257401621077761157965095621073458983244915423404729761631571378098327623414368346456423714389517069997245427250708329336971972657190833337628005662477739292904435707619375249306786765977003611761139919489398714270517307173472599466396714150453009599535045717016145860467443763460987049917267612481505932279826673082175484187116232113453311030060479085346639081298820955570328889128304077852679370338828365256861222100850027547359005127284442685791800654615349274401994052326852936412826482550683162227257921987949858405752062087852922096719299962172513483536314846967966279849149397055451248842038849215280922037482995044889857102478773226736229613669615468487400975480494618718266830135585591827288345274363090149049403323873351508670296041617069112148193713755847500569038708323452055055193476473157630948365300189946576154610825051001541618534532888540933028554935650149466652947268774293519017260250552861173113618766269243654825771885546105917588862511352114483054678938796358952762983425567522265147885884117694284677670428346072266924604587579456842717087329123400851118924803649373640484648994833057173172451202259883390170051065096273299801409168117841330227582814380870829415382892479464650394416770942584675646691003814564201258398125928394588418695247709667428626197142603704821576673160551684229036919363197624397988323323453274596565331031003104378151932053911757021745836824897381932032036137221260909838858249184871421556149207838285478082279617992880790703227374208035232154861991307413880301184788405801377938722708421161688761249136481727288272564464048119745009978995067455937214416826030301079983252847545931130908632760713623725446763809863791544597606403245384003480016026819886178431803578739019299684445409055431114517648077202893793972853549442137510349225762109879421864363062340593376254608120326561390128499689754888874502795663774370249338155137957304121813331358819361212492081882342444483542016689785928118594327741771557805608332530038088379072307160791857285313679512082273486780802443493347291900882160988816152561426464726559914532212906849572378337825635865123744356318312237718729415629247343823441682479946177491390675731469410995193822974739975395892942610227887712493853159510630934000874669890768222362817993960927604181181187691872788533556516915697267604211410505890061922689493682932841923929899392379039011640652847508689870350982192342774151713441667807512107998907423854513774635761287855343629091669201052219130688163677841760877427254513066721620002914484952747095613999040829729046110814612736567533109439613926094390580195425101218507665672880461130593510187389991758114453363548886917714251355490175647576632302795063054779627196684447383683015133715463795098564450985858173940659427674465309607505336421736158349288226647992751302210038311157136812235777696850920294224836898781015862083379027708576499432969710830799691766987606451787088374995592081500466877986136319601239544487400026242354047730759378039582840045493274790367652304292153660720830759218665960962311662715059953666827629610783678516604586097774964917125023790963474623998023308593873279586852897375574601078664815379140044036494861471192356997125079929955265473875382486224385037759686528607749599453474072313799288429725846641209517929047673411746807197391046556574706650235965244530005963476117811813417979060170186290120765164313974029199842258163330072744232470861875842590183591589115575204679490377128112750315804566648416164810701100386278283999411918962732258180997666891359575570135044950816970708781778617449084111440182669480909263241817066104123200773813119925571630030863915807173429131013439123085596955825964162148341296564353358406040292464509738412281567175500237710530692122437877707440432958368491117343676149982332926192051504807906142925244090066263057888204269963499872266408464914087891640586244074213293115823464327600641979565818381189846853406831490696877103355382018860096688418545293875786214912390065029066635949544798453866698042966168861114833986199183039010653914533641486685679660661485540325327221364900981517239466618755343083874461547841373248929629574876393463243547194332782486220082387042675728454490519611895616466553865572684986297294286817851765692317916353523073440397923635997512664192378227126072149656814862305366888928079816581339393786769599880178524155586407248475268016055361121544079083550885910437406327484326931205388136303295509226044771686757838459037613399434666193861709114673072819336757516541045950324965941112886492564977278730342050447069612845398229769554890482168319370680507523466887774908934850173242122394358676168917224090323965670199266844946732881447711222434446290268381689865826789548238767024220126581279392304643050926926135512541185545334293312798173101447954970460068518883955480056241255133240960373780112700236149937731539987021746428496224262316722360509839383259770881632980994398015627577527326685061679673187298891430363633367318004979447578691070194914232972533188258452934967392524529508095215632547090352962962886706274209485667261385864914792719517383456901234827659867149059696265414892066086248989541274952226579890810771467420541375782547769400767699318365156933262468263204866540049828245250752804872420974419453769245450585821115807401829972845757847565662950021336220008601569402462367967927571544449108425701084271447888670472260410330025928379596270158372519062006861371495126682829286199084988997094701359239157538382141455256890624564349520426096536645364771983218093383984190478004591379432674420387609226510480223094791602024690815031673639591028177834222000254240003470883082911436930610265303689889656168899193694911238898217594377153935619739340231059683209347731129221522529053433830480535173269940083784396113585257509139739027676210473975531686129913437525849566055004804725162017512840549253746057314520022352474240518680954475362873679798521359406449429182598152238679443153470071196421721674722749491035420860211738832920907684828202954745821073386821294557612640834044288771186028405427172535621902788323008808443381062828151319139997628586315431082642478261213492096485924008077791705841280799987691399205625288042396990079360391098095844834849925592701048428975929772482820892270812900585283815407030487000412328124459587314990909142211646795376674558997090970834799660606226196047524413669208526487043641032888937688956115239271102399078969364480448483455335433925853054512919287424525577961774176559941958547180477966058290244071139115373377742261896089666867878317383715130108210175742766660386491941079726985952340958616175050665666048860880214649292372931874778989136895997773232273716339655146205572556340641792822177634234730316997630541917359881767433739056184092181516254603654423347230943368758433516670175220228126794178052246397644289114609583508651495707331798655628162465917573970838535807096415202849515548974286103543289213912079576117892854028955230978284475915869907741531566020860744267951477451250628290735688449717909527527362056094826934460473096616002812880344141907026269859968782480840763787108423782915484148301388526980811557479431487248528814425234757890690776157121939947272311273593669703529806852609210600102160423889545346680198641036148222076937370338646606865803768008348972969037250181765493237853066905075694610352365881965044683596930920545754864300074755967294171550004137307329599661003493619693581096975359180358358303505799849367601852114681524067716875117567119395096622288052774881008470749448155682895187247479576426012882420195179255792333342249738061919237268559258994580971376803869234035706674085023464798440541386061007448019419298396574813359573114818304647431540551923111205063160116333292181629035782951530462492432463112262798234824547346947865372534046539962723039464554662142411875566582839139251516560192358400337897340659646572057678084479763141875140178154516107874722602276876840890633666635795360471470945516974936522767900492258707626997763678672223981451244581663256208600264466504174818908911111270571253260819549265906453486155173361382607538791355007715092162224058298115831547536262548982079402772913891222895681581569791217512336658898967785317843990378966596723774147004897426454966860004235141752123407930381772833868556509758861615492568971990095360145230099362889432707696519407988226438292609474039175251721289156036003670254074742045587092723677504959692111860685290102241710242255451503327246144034376551541453244003426186208004938753201505162595658778720481886173790491822680747341037110166889065703477274827017817777524955167913311405833933696813106674550118986097931662187908832990133157384683580351834385595596131216965719284862705464418104578167749831907099421389064207454440817334579921441258316646386666555481537001047036624427126948579199555161601396477653304869972348677883316751771197270588856855404940379872298283792486120328421573119344873411370409792535457801212652255053879970693272810112476425876301340306416155702839312714741529027183255428877564303197410851963424087716965408114689309959617798311885012704174256856926244303715112868964619941255299419638670551463826004522061301699274064093189168218259946834117489161659103344317291650186067542251964683628787801567718944081441629454840020178062646542914297684328204265404287816117390730406045073810694875052356712051882069539641087659609175761048860404455473077351168740299759295333055965105650078287932726717924891817687880188642712773685872388718901168528617808639646140288534896281016986320026303257175906995502424465312469935088931017670889058026275720770963092671213031958526274746346760825103369094041667527647309761712539272323221147229469788854478725622541812786719239259915277373063593692711230146877543128691111542425002481589579736620996145868257111993045133862358282017310614349744554430294864357961894351702408622401610130370841817574941422522223605872805000714627996707884945636434492571554101336556309279925133521845128851002317098609254172291651887636555083886390694343475241713645091650581022064863311612368316024112817648110177176383715818309402862810171888112058697426887970081063780201893766157760985789204497945399831806205315203453746408751468440492434018273996158457288978188373011292869736264750434620359297256858478523227275768894717970061681265134316122609905317133859786183276355189572469580462762215380886641846707149409145672900363985235030518495414898971706012417508970581563851978368385857522342321937097950802180563023870654950246552599796715412815591191698249985964109892223440137149415819881944215701538920786763950394939069863147845442274542325991666825415784560155067763204069320552571068375548627881573601178135077694223259871704909126844441490692993779899627909774399032885152645060028268930985011476786358734551312727940033987187614411298274459700469657625478557537976955499916049844588267311830577987092399968253022512811026253147425739288734086637607158221295879515279912133327804322160189118784757411811125632905815923113359102736376062112468893508526661608400203512712102818904478769543752895171965645186597629327788056446562629034922931620744066748485017319852825436966335766552551332043260760225623428784332318844371095145993710143394922812736780967011566806044714048892445514148489415442436167440622405702563991341149933880157461612325601191015335006887133678562778156274919561265493820481275793194548156280913309464720306628490762821732005791067169113764315739346786447759088271470151285349881584143587654023905089517387228143410686596703401964588651177384642275379375697992886414901152118079555509359287699545038566899558008498688569970601041261994881903950873707797970557458700498952466862971197677271255405218587346498556350430894805812796213767343072778623304817599538616860298080253340103893141116780664654666146176772998093945576422634623848130708353322205200854096333196863211272447318612232159585425958536293236233868449901041313676217638823503373147166382749219607942316709603523029818068426289176043783555384608717030054614238804186661227401908496503653031892170459934912932755257417239003008098393352121870918782055928907579399141007482617721839477437348991940555634175977056786191567641999625102876860003429147949006375692757980538323505796955914576743691395013337306681121081038945599527336453572437910892884134170556243184266433355999842713330121125053897279882667225628613502561120779115158149546598928441937988938902656733953844852876565681042789940684688329037794422518416829215362710697838091986368783937606421958932052101840056173511109212344689254481671113900039372871305958716831158665086690671551317258920125411663405728475289745416143162254080631228921430642688508016266461865381046963673045567441260883562764346653200798791213201675024939959578466328995082037610989344937872083186227135945211247410233228031313411343295564226654983612959863839889186695154702477918067255899721080507436508835933891958843190056843908384298699216725071908821149218098151510230990746683182947042572176929351908689432370953573831064189024832887186276398561467324976307222863578555557118089345040584655944587128663655269037350132563735593907389370244081979909006719038357434938092117889047719006914500975541801412611610615314430268945185289391781251323027103789960586138273114692438918091312611732410291906208470529567387248379091349071953588847982778891785836794857732700917656148388412115990137816107080943956822120155001442391177503354806648105742205246852725665536892304028469864356104892590531403453803547440188680777144143835151210123759677759957507925009461959854836442069878037055041512011027603873400495425988199085732223345779856968819199513055471177079773342416439176883667710767858475982790264985919180609709136593704288129677006922840717178151764278455749751992176083491497875657313889308479066833947947608378882581239920658527687101603948710917238840249306974181435923139618036706011140710725284077560224979510637064193457384975312658003267462524651590373447232766525422868593844280461961416006066779499725582510836716612572743889665891086927803744300596044759533099887783394511875058313706281752727336303510141886680414542386799654965534014049389684391842872452973736500466316712695652540243783543863224289819403644717835602218711732869196173104697624170143140148634757905222722705021204219953060583052981240774370691192872427094167065661878944506143342210367342283582059784393119358537820628870886797599786808240805032473776724678534375670092099513405761586090656357962878446189142623412715070565783087992871613231397775443660194703439879111194541006775638365822761847337331526889015308494826450868955323200415163207789796734121679219125565730635998784198902257415929654113695891655327038512035763402296505034846972636456962781379601353421832743978851529797671959605662643711092697904674675037117566141149302252619760066743382990067271297017026224993754716931410913988915411975220179104050423840027351691094369097662145688780627045362242199384002532253626893897344664637260194715763466722490981165434145931021228371359898771254420851405637788545903194359229323252594535508597745975760261421570409240184027672078315141850434000010796001396848082931667299723874620862412307147493787247477561406934728627311478822386356385143224909936892825432371356455366257585274034551388156046560152250694475528737430566030345210313860404444517662459483161881280314117428093516136538454194436286281386288067430732078522916691159619064841657477881089275511814589557451458211414815616285559548870836268578338064176858832744283084133373692078152477859571511985028991247835064050460361900697275995727747277572680346127962543699731626586967943495246251087359216955922509780679972428791718816308562901687693231176397773331233664248997785723502027710585619040639699064514476592150367126768712376625221077030259523387439397213183417197189545650330534916206088399100743515040950529958011378928976397795979334571630667361839445093718931130414634078116166833924279895836135460951814830927803194553716926975043146190289341021600440292262173771229880647800096473353282339158989926228864501974321411962937251764966713489656986376925714279889013517914051162181426638442308403569832155487896277044815005835485681761690456648372682329786397403379694506760186938173693712297907836327140189845385342319977863092412908190887663434900555939211809775322726969282625211013827321463444833429645848539737743001275195470422003931059699056077171832082631928293553084765284368295082320211898408989421955544991926725558503892364332393732403560126748060995747000145951395919113699694117584613812619870125758611217783514799808931321823146110681504024295715462632446507464331576193078714637143225269942547865857686862279269063358319883982942296593386342474517401793565510573025952842836375305204604277697290434554195103578313854825343400391295017742335380640299968733916658333503322066154537277946707716342888083103320950127230465344750327161465236120541119899924241995510669305973247772877678280768144614121804050984137439420311283997967055536706848564309696215309962688882752403798680351881585568289715544288206541613154985753430199831255810736817017283425391494134386408676447845350040899650606373103635614788584987027187589294568122642816758637063646797366939554332479033989082576578735667945741599311376874018757273363104828721659661346265295851719763056139160126065243286226693761663390941903227810429880895276893373597331087528852486290957550984688120417999685048714186223450207070254385643874046508924197831889506164550867423342203702772832314948810166257198974742626866350641686058242618098356118893541976604255883235639116899578869997779862205521940043954714395934507612776599720365920388003272621821003659945953895218519283200139063560835420357073475052376219428738483540560038995947582014485862590459944853992239258026579018144199888864268192883575369504920959320676994158450985267641211129165480058922086961786124886031106050466544430082781864688305363354904535205851418020407548406491302709490307897948185652253622658782050001550287179086187520307103340478605541925491806185863220079292039736881379419129288847728135833945531587020696680005983570145600720300252484512457961749687329548368474964916687802177422933603326292691099452522982812965342296223896027470221054597894550339091916745440886045221274999176857567150114460857449048396441979218392758190379532553674001783860561900946643893890758627428960459072287550148432925789576053725785757663545016044330945328231374044399953441903192362032439792277674899898453993867777285717449867752099911617779010701963517877586866746981727931653741287500475921433342160318199107449421587718683295358252221295539795036773563930150960599547590985047594224927321268572950936055518070995359052285362391069170329365611818444222819642717309389901690814787411305012741920467686634984441438075065427583700493434694921930794240975546456912401735440635260646937876472234579836108140822472780259799257328968438557651579309471531839548930908763837243293947553191946210784004144164248574406893307116569929022547233036130835493297326979427449357504611545782583772058724425065571864975184451909053741199628692391999362132505034374975582687444819862989891051615547629303591211642601045335355330300514364142929028346454104962420212314824986757711598165376180572680510399239656364833468478622164034469059879164925488187799489425053001462759276236906147588931599821747206250307271849959561250360756495142748043280400968753875572869891248232102778414082921008474507183519478231500331876423771086473103696114843606828129820043134972223333463990628314590328754289115691097590234304155262736015609908494934607381900865195750357892845389336751027767402366009447223882295118002765986317928015857848055200336618164137095385501527639018133092295178526451236061965471375393400128027339280183020213081938086275633461262571923054975739410520683046046394098820148189462343633025699903572572141421068099361755243594061482181974470169394513059931435278253900224835104001336095442722948122175657949062276906403826008875796097232166272933877894339543392773154284547301611802995594515485462214497588623648812257138063448766570396647768560458852652920217754961156399530000461859046758840276857169255694814002796892381298308607619699366425511985466596023323485496136420812546189389847581698953076489158401594332570744629810143747892204618069703847151705560995730799209734614270491988918395748315222947305415112912952463887416147436312678565618133353121924077764812254535398675535240895173304127881793408285714847138369241600468058125776139747410632377014485643548688413498492911873165165293643166212959980864930521012967184210471512460617090778751329867157052089812330444354895511636305086029647454619586878021531325069450668493456019633057289433140296288597378061403763156833380388942100430814541773859459195022945563189141119605386396154599705307236301408433899084116253965842229991884712889127023354220251726591645252923073954394469333823042207889338121570681173754834401810387302644768467967877068474118030667729159323569336553651032251885853195858216505794666685886460297758774701947138600333187739847702210315373636682750671320477841800767490819264362205441919397850502945644446410170385706183772009778662754625343634578317287008923203165376550796729353523071414239727502958179968403646694695857669106175636141478544303052672647077273262872233033796145634316063088429117463056908176035951670122334566350334066953053037370672391411704979904815817720059427057523208920270180063713226803068741188695568189920534404806957426122905014811845135843261592085498673465332889970335207946494618250288083606015758236185719919541935468154415413554896218038201760033646530505458071980451458272797423993447259334699239357763087164364873250804440960480338203363279094017055781482188775479571695360447063116610576786914214880009063387869803762140935361410944512928531672357356511933972247537617947485211401332666268534077957510713090489047763344812826376339233602752981670409706851242648072252336632169771246918563611146159361303901534957630589516322281705751801258395933936305868640766856819739042907503442405518652818343752463812735565107213215909887233654084995630567618284420791972557033805513671439642279440321271311566427358038875187181880552938101036788178023367312714222258851594613792078661991888631311161828509227722092168991762310950015667231379246599696884326151789562350928737262835333055118617024349690945832938409199091150896549142357668208677268442910421330720634452702632057146365045734286234682651980789871559080955087787757805525028230994773676797491853918667479351781006427159915574611988603703180377859287862979736786295224165389039272074397249670258775459697106877385416590183431452685563751590741021272099939829369350765617609264745565757427879922123702159458687409144683748986243789602438732417332280534335602011309863065486977733779656799924862383458054481126045491244780321758029936168594274005742518631659409948502717146993172106477748411673203347253575869383790093993545832545296068844661533669055951662977426491577861864078012309327442765685910498076400627659678769805735448963379400111971449721643446245904310391736175773989748333622995616187994937298397566007628590710628899370687726794177950713154812525570837392235289386451084565213612548264114099903708356329335519627393680165590058936557752379806873765387839954569292543448510843568372245089080361268281864688978715953152227494667432493292653776239693291121569356567709444688483305083652760380303745654641085056575831879824563304050550840640442373966290595131238095321395393395473396876112614835181140219989549417971122703319036542663034323563631681654238757254558201149036971694105932201852365875188218409539572530872892510343420340563569266258630791273496261945083771460863191116406434688731622277560925951529368206071912572984144424553694922902584421725658885680282036267804380894654948496339406491419160575081857892563382245393435470569750547174290913342621767872856550615367514383798957778666736595442578690572125993388342998889655165051018815494198875509405605852016631724761573221804222526628445691311501737419046514812675464836926097440589004436321282590068601339739932507731738097718608791190144788129951105720777414710659261584209355369669044008223198207180709996728295360915799837031257124589138495897411856580447157466261658224806377323442583722930179173826683594289542123874607249346191497955330169984607535706097383791046039228391807976042893019588479416286257386840598278055413708968063950145922563120374245958579737847240443723091303567599645205885506981760434523989249858831412540362107021556273673252251116037221718790000458367948986265106350771117576338816469776192694403437292349296423481961145310910753734053328192167027222089704739470818002402879816937583830566184378362883968382529356865876064983237923693181534256851215786324568043628999913134874135255807153887141811253318119264398700339244910802597828519545489732491003343579361369258245282171258142997673213968940864510077353458088714418957362047928429050673039380197214393936685343938970290459183540999129405374752404280584375607896251758411458123632472236632474129352601593164624361697797853502694717924280083064769174352290965379053839202657420410500021175393574585909469914239718430499882627453060585655507477773646839821786531054143009022453042111455015576257093731026043644309128101778926759866268503528927788507831288729384330901383619826370648391230991545396618746486617927540375143712372589383794250373672665674744275755213673648701020155646758162862864789914569366246059200574080342167516687351871243397925286753440136145347733318979709007234583535165815518181046433668874683025913825427784146885158539855047667101882401501210042881716040045526416360547528798004321938176995170591549119827935415295560843264175020744508375302519355693857189872979577167805259569984341795262817018285577443483944425423474233533063930704169185869617671817624729450589513244705533396339365172260425283876145224806194576689884868029501737422329457170898702501437151861732640305915512518659824320626295412509272451006836614858993833734473974279779826888413082324340721177094987120902061940677170719559938101201441516047271156634366585236686932762423828316922291088370831875306445958171423051763371349827119577708384782778587349316204731326141882743332940068349001772287621654512140167218029789283877454494701153751998175028119508853256528159846271368639797345844794565260280730258766520502561540957591490119464008239067124203762146023730655568757788049471171726075245972850947185781286109879396316064003360079097949495991011206726966557080746726586501390448147132205744826524090472075738075130816468939656415629834951386344117435607246426027831739301260818693036814752384491655705302911445379506927015156355852726970117504452261057934743492722150098436221238858618163127241848415132945676856711628155521776381333677247126810636303717216758945833199848807141731350519534587998837616286271333728276366927310187320578898471974484207028309131028203010529352119595157903909299758627372367223819913166630961070709699631627466334545330721964742519538283851942599027461174991340507546986530622198748276928289886750317515492717152210769810964910030580040834732683328491351716068975996494561229261812883057090638029865559202418157611308828403315979249873586877182193143364252680207974350861840527653384535685649037837240098251015294048856167336222259932841226171700474064677635140826075846080298113014083030968932253180408065821596923181953248345140566429877275682763249423182898901567493914772621277472390963935975948771159711756373602332720899123555626146355206580854671921082801072565953716084786051379956566655254077510788909861849525428471348863488271884178903886430396895775595897314863774362818490135022110590722764717868537376607180509162949086022399675739608558898598220321967089157670194319917474177992210460034825332116454585158976040962837914853140159912552213231230825988356205054758891170702578309286544981875948398389194701767818652239152495970265058200985387708248381693200342560784743076442410529729028389380786870091726954045445796292121217595109536664560764130114027155927349164712190667904701153711791499735651073295834697027598418731864812687370194289999441970402456305601874767689432588601463019322690165372135469177616378085670842983524382400340235402853717445169903043466006288327758415808908441915872884713808780021527920978690209333963292405615216108114465061045912816213677182269555403616237766920953121244054403729595630462780191807407185413502397262347113232860895786194692732556653354612617392233729571744020810084625946613765795399086034806367703732751841694125562874380130232585741479937097921292445999354135403754379973565020428327158695901058589893026164192025708229232350133312621435372606223183877608896048022397046212322150312598101327947487164233868513475016247372658403370702213006111316592372459537257785898048773132287439383105708665810614915905493608225149319204286571100055814125651388436223816808253090200120154278261225955381091665036560109515897980848499397934979695131617870672526056182973944402983778729904158937909789556313240084644051203514192745326714081726811608325570325511415121339142646159454677632419245456512013317934846867367068473395447170318559775157441222404629653340222212310837586663522310151402715481871749275904823096021918605905466320181041082583744171428105946896519644012359829155432181136480823802407142305564820080537657464889054589888627358650784843395731726998689859077661595914668095545069043627673095245207036099328203237940730317257144989123495283754588028307502367223368421533906046977770379462953716326090826321045754347987126255709693871953908114782674419500399488038193415838167181191129767983502601092010450677430988290354920190498053513232401728967153937071331382138113651513677610751611570875376640604747947905558541315801323969065088555302871039684567651263349863102285424850438176036977377075925572744976245473754560772116608429411895531862117564273635824575759591264791722221828269628559811821099335293524005793049249103822860447990080192025502349608549177908596691905849943071049765336595877299957390944835659456134156000131684428774388865595991453084892333545952318961918558610372648728273961746956164149829885981755429582162388505419693612565942581412724089000640282461876216648626053205745461423381165690409941271027678962919780318961946949100304519415132023844604204362061413809719369377101791601081965010687371468744387028103443292585644083466162080543095015757464482018269942058303007246815469944776742177592461891636490395662475215122472698050679941585166116568848784777468338984808271410014326694080508733210489219420203232076544197941945992783303099989468259946846506127079259135590330104216941082988659252402931916642563926204693123109974438088494061477708935288135833106834479058945133469286093089271298087420322688067174523007753247918186601878236036068659542205325687126100017445764278210051369237190511110279975517020376163553538630564347361738798344319767222152774013628864877031543159247638764075387158577370375656477914978281523617712856818282486066776045758743641545097771280183923301440536714944845624136110529684684476504195835615424481709536568030200378563651540710322289306368421716290388282426717494045594590913579494458781162773689625664767958725508281760942137704082454859604601774919165056840578132658207025598817784091156408296715329449579277089155859712698379104991356620296854198640423323442258356370617734317097482065708119645390981054791592361449454679999820214671876193837363028157072346167103503123628206194883826503461558311670439885267150720986548628602782442403834781064915810645692378695515015679094452488066412498572060871666776967534037718899848073508262219957010622568262269236764483963977452628146445273614935644563248376947236509956151233023374861161047546798955384238069116764320209288406411190555386282758796013773866584006532735845470922394881977374660316268839337256584446196354084401995273214899025587380700940874401113015108546209513755012839616435646681442919017078875256252655557219126908186069120396495125498796793775835563839885761891633785834571690421090162546413130309746847162577659869701663366073789274586998231096206267951559932222158617170695213703634487627152071946804248231822672528917496384951485707909020787648804656986666796342362920893671916942103508895708950497428639639722493716584462786821752138433519927888351030280112271311597156315751709618946376860391441107030505048473237991642533551545280533680259738749562756706609035860838791905582664648002946716590868418254619794968164355280167976603461188414290007816499644743027227767435767486854814054050469201425189894845421772370190947605841989551911788396300550315146105749328805150333509235096241756034039071003518432420547957586947293306508118762726412789722536529639075225292287506848473172049118280670234278685263064786559267015963950707255472592904101830671770635516808797765432611852221180505703504329867217585847888884895450313686123591933503875963884669480863290970551618365910024656782595925045214548063920183374782532589168788489135039238317316830163013870276130360073063951130437609215592056078282315918553559303732258048552442053068374283404011557216851300312457821798470154758065606561618780269663006361102595237841804538081210246917620725687300677353328822612335977971947783146548613198288880039912695603948801119988150344247364025734710975980533008897967235229848930613160159813376736668282108797152074796997239784330939154364455712642269023073721112927808277240323963871790735672832517430540125011334667852525271179502416893029070874993569355785172221132905615792837413306092515692948141534846501013133838985327851448248363009848229600417628885625626383146538618769448285083976501156028278291655932327744012753465113274419233706049804818331683598394266829471821322046685045081698576121918241460764850892472221570349477168813368020460760649555323284500149548716326234875723984460116824817725840987628519679165480112185642367194645984249273997110286249277022296209559691264731973129424886602182785549732846735158625550967198747482401788770674288753063589738968373326477112183775371495939772992860019754469271885592691622766396833737660000899481114311082913851125129390132034988765735939111350783933947437204903737708618816708792627480430234314274041665924259545346223821100643480026809172637725969071324644938187367894524921719653092036143090387938446071400861626731681639670763560268034219148644634261696837943094930475077282743219337298104873895864487360351344133010712911790016206387223513451343314221110210757940112600337493593647857086183527923749577675695578334213515542455324181279518577146793612712379274735865685582582278487656082080157568267548399295709676154301840261682479148528380711019691587722557996633684087435302057430077781577193831840633661968638398897255452083508775148424262615383097557388887295043190213212898436497899533369544327257685643600768766380160068189288285618779964114048679930791419641414878641367788883930845295810527167526395030784240560439581991124164919950760545064012479693552451197578101029092696008749785222676930300139619864603317328770939082254581537515847508762150596387906172255702113169738195896517198099177135960490878167999606886678116050517974339028599857285344801359686592871373973410360678927478263504255188302551235361081105337855156188952684053276546356775564459394071913193664898627324037003314173391884180736053842988610606107233886366912361283224534574675152459531284892679346948512938907650079330844359600079147423854103024275128546956004726914725423041061315138218944206488898450628245415705283673353976508057196413024745811183948120229406443746540738238311522463820095236203015465112918407827546536809323088655815554741496844811562276368738211338246302195894791527004990435916884435607622577892257624717504994052078657186131617279008198897751040788141710380474415940865273222126085744129037169722408362805408218248654220218746333601078175641265841406328575502223852424908147838504252094949968201540072295981840419520250807744336113414128280985227515419613350428935623906273234940674623086630745743322168901317673379577609725607212365308381343727055294256640889470878056129284483360314490225768516036945893221618982022122642362694462582234013857537375791749280278913393808797686434986558978408167111913581021187332080546733323888046467758174625091048436245122859906961552284362320137832267329855526309863000349028187692290901581372837265583072167957102622970964346729816801550293326060967244161313610299527146913037929942798390302977856708711901541134003560273068232869662359211331870214606212304895879401797946909785239507757470202856578316283038830400475952893301149079093137948702746786866381530651458632987316337420188410064883557925336677886919935485186330549638697482261517372113751799878606754316188905278066004034972563660956054677605861596242881164185815374009606187288271300224729888051500126131233131523470523379621994664414749224561763985987490650859138357603886632235030402324683763258133656192478978825536848633755885026565980382463158990432517915063871623822667614015897736239389936010223776133985289875887405606492434892931768018884018770186071956975130287368607444902941837202486704094688068767630629710430620789511299654553760760281481257342423160018189378440581554429033051233920840665098793609241682694321984116623119093902087212342212933986583169864741544674886906171245479905702141729104636825146419971255740637487583053835697424878484343411292684733210954011648808451087652690207625131553297831764940066445422204910031309042744465625066763413992788045825016838515703343353864067469154404839552529551067126372954860183263008857588171915864218293460781212221976965505221694048583283957465708391614043163165709782509330549077146024637609496911080107264853358005892055783851277306132000301505132158510803501310142651044570248674481698272943353509826041120334705999180992471888525737148588041361167638221845941812123538050979775865222152274925878630104652772836477241873525009298705280285500496028570600110883801987202586658561167279599075394988516092503022025134054372368031002839439445066148928043853220705168679040667171089857992664533278715423351489243025665062499243480462245592867940282747055812987131749238252065076584224497910586972040810811609444014559013435173937630228052391017459711352598346384313715351218219885293054118424961517179927136417643416808010569326760701855829917200661002442003129734210570298971888082455419822671690262689992103936317843246696949952889981244910023096214311528453141026718913025058262267653313111574369190160099865130449425969160062951131979795674415649682569157528614007712996501156048975099259839112229830477391603956561814624009029577383203785491229747291781647386456920139806692632789217348263229386122973925313441677256467616485600860232147625454195152840232232823184081439248554231103456414384372860109012287305955785146120549706200838304519867726798502821059505590532969210500113461360399540207978473657658543590448062246457984723254196638890562712733890958568659039085261588569861278036800657448168448526312525306624012928936891433528279872121654830199715271495673188863583111446761503773179433499759227359447846612927193270670590618233803390090362721588734260983514885139918657069115402363516262293568053619877847196314718603644583726866679099392393704948316807836904052774101271109599433403904860862237358787800461581685809062994797992147830911637412005349531286063871818699132545096044990499923872559390737005505090936383708435327180660497734792921855894419764132832236731983033023080004714637944717989668278288217955288852982241680099038377152595947797939038540880812285419465083262715113468648577339671919027613366836124017119975578551521350770605909896419680787808055405792214501539986857533349576213505711380825075271498852728696453824563386346225026140340856182751043297245426991019572510801983022418422972989179971444611102990323771705614711121456776283287536882146375474157734820750608471438699203618385732440278438409588799422693674186889319641654779101523696150531218152043728374993848941111755116660687427565414686849765721288421085093486348212891812184326297502259921120810590058494647889605229337443716085020390433740362942384622775261630360862153624500275329719328718499383551314432356475626650702232309117275859538863718041802633331867374577514959077384493289644219143210424852273301136926044944242603762320371159763637006222797499594545027096650671997336931045002695635736731527461234044303286353311948649784120856204087183770584864696205943768425615605019297187731110845611195084946367223428083200033560418978709190016246738467743643072312174200038764206906967258621486981580868408761249656645292957148152450267002104346629134453940426951323845934162797791746848588719906391324602854080179933115890312466038998946463945433630830223116333078625319834500723581699754971645260715079823255402503916185728850306002017481841697384014677083041869964686217034154119247997049483766510999030376730641919989002386804351065143223147492014926838816400759567451038249131961348832465862258348061526587018136190188764262106763834219778225100121171547102432966607784856583053554095384455532584745594279231889247510017692203050556220851564761280459199256920551569261376702425946901120645595570397644916978606924808812085211707976305887235638312106318194845542067872434520638734858124581518624199499567191077719057493319642765610057984964586409424408311927849693492335953874617114055485784173902305572909983849790304627859299864418052348647944542256475622284383983422532858137252459867834652863104790740574366421030299054454459513272877278564009551468919747400195582286810831726611944349058831446345270307650401868700557384820940822298858917062520092321965030476010522708122601436027054996991955436341293421841139462801269485673864237057041300409812702135365801973592395605013537726524075413229879240008782044551017821399190823846731209326810337835090821839083024999990938335223537848709309237328686807909400071480136812988553786293729782196793199619015998041983216308346088178775525848039317686836010906939512461127225686966661397822152307634871208383659572425463062248442448305515016423103354075931879150945566981610561509387612833087273433623736859317051138210655609976030664620307552271250655358352017682416247777279832282366086276600698194264379943217097231404688021159430014969944199072414979867149429927905332569411737963105884324581528402738447558676094037519226979739534715883010039357871341984148436697664142227676861790224890113576994601251020498484787344467507691755918676968483266053252593488626406067924642337387301320633004531283561106713476189228825004436235082790036515903780569911271347038885842259881138366077839465740852303357333043847054906593222933888928964555115925790815593830955024923856831109370384973715089123826568668121081481608155859750425180350748812156400091599309114528308668372280254867228940630854837303227709489360582600695425680637065016274194420386864303966899065388350255314923673853685950666068168059811200476144454257692752329234064633359851982690158250245332155393334191505589104171439042282445901420531003399548767482620534683318234001899524664031119995495191455074830980980871759360535155964749842853809461017011789421239948165893628069988881450620916112335944689153926569574236298238842866607952563770834626264993380707670585982744087999741607911311920312033948794186221509600747521425989917602799636793904720829132774724270746783869060306223231764777420487992701940834005803969610447916893938663187079427158258740059286946035091671257769752052515935735917225026895248902497040696225118555725446584664575663870298656159428541728801637514951948954185359225824896205493346711671563742353819944063433325563698206706634308046721800899221384615746602473988943793501111959546730474996197890434612398183065004172692636482552527172916695436254792171351892755077988682884596990962609760798783845059827847597671959165696109208438504153685673931210965649595240880978404070341151788833090695334652910012060906653216121314268075795417096865573847961453329715536965605588934635337583024208352121031584099697925723679831402800204599114056518546991448285013499053169013438683455233135719269933211295904767376119061840204095968189192643743721970832897472779979644677367354298883010625260089730481190015958591542257256684742351672659877501495555381708036114883206243390338744696103944548335211824263780325385048508997920413795272847569419675365864794392559250240640761729479471633766805967920454376405160144702511200089201891726142250109972594753277938109724568703133044261770741913592337768633293004706740159650455023793270248845555655839535342057503632434429332562499175083445304262657538577608933240435618130389900887357771152469871837694129889477931520973599982268702970867199501406967438079685419216036167435633972564603931145912106658981180656001737696996268137387857880174963088265815503835238314714659501531148299986329717838273459883123258067809038027578564664305892619449482274620157640047720010851660981088498448807543852964687296143736559029660214841340766668254743532317098387120507084249937527228194964348395791462234621481679393653274452828311907978078085219758405644628586525823315202889951502133299765078472884735452965125539329589014902978569325934545237761890677906452718714202138409624733227550450780211559334749813917685165277809053811342809400362926251593092736587082788266987815045621568328953879696093286718866417290303142686840195137753537407049235262680667456317247186635413510264041598365295415616062644364900120728090892440055645853622529303418316713706962420847913422768385686956860895197603419765517927451200680959212943428287573835396338631002630071619642960448177755461365597479232893399338934892750071320334792896248203307391072329876640006934277849591851227235727533736900287432359025383981313079246702590867775553767649892458890033475274325501127685581065148072244032340471642917937684092230917066339807233009384528311588203555551119862428734114455676439065183132124795461285592715645041385733982688961635116219711303264055353284114430662482416852898650525230371039768200441731703525343882480251220088921058415691134743880132341539785395754991870560994200033812358309236797683907346951213137683692019600417608213292917370836736060970864262408748468403868402616988451762800880681597823896368897855150686457978371143776906609440941453351537393268071518342329453354308222169546166181509075500323580190284747566651065835973964683223905872844826481583999985330878770979486285672722565173251156040054834302704862261717413726659357630276399301798948558808527401378827649791968371181760621307916440171850481345573379639103638545366858071379630002769249843566527590196011320765813145622768394230224813584654964667504315698129942158448381401039308419438214126885959414965331346412026230254582007739546042037602909742129520186111191266005761360962474547435354689205639380427257199862374462878245757342213630061291326377837316597277192659324216928014399381831669696794518900788274608606350143825415465324962719209689586904154585731309316848449458730523942440014023198251329891586409901892885126214884310710775628673300997621959618196499918673757735146602677393052448203789147110677283671763332959319320879477599608174695208178964874817251184392819401674650428922930827647143705036609370414274326877081979694303305931651907925904248016275261959101973373498828364230505030721155244831611915189275880531301387167506627979822973122731194750374099200295610169637339479412231740140545890747373402754415170100648357579859473777759306325653519554772483455027658738979799728541058993043970794612001336732961519143900982426213323654289417260941353884110965453302351193741046800896284363841294622148416967251490320592036905537271303998843276068620118398520469958955609101402217989862935865901285724704661052055553561774922160004928321810656835934861249249209603909984630262703379557761480640467829195930878193182704531830649952449944428896919028399125001852136439174013652063643055543361170422447629447559342772358080475129822928992481839699696931165438928312910016338873163089205326381975483106809496869835483128403472520819764971071477733027032455820497274063982152171150352424386123110743535507142156789506611428455550740055513258776776484100538994745473220788277078323294056307467253546196484277710553023358271849498676715195340148353180478059706636001488290153923800911946251623699914309828342065808263092331394308511440433988663963459362683333883530975890394007278954351255227598346773096670647386020976741901171409533301660710476691800018695119159630314276138497815932650370190505093908474001587843712675231161628102273170128186970648498224754764942823818623344337547902087785344783664991959945160493904737517179526783018557976107363969623192517754529227546430520904762202785822994672372566992728900531233420929725283016256988902152149487443706007637292154470301704560654837305851655312462038797306109715484224852205545575390832673266834801986332536011442439873933611081272326266314951483551182912046763775413299544782766325857747053278722653421718835921404934299025112813861724039264810893807289484611473560071223237503446437213320581972115432778871842068768601848362418335020632623225904773745920715693942374063182563009884202689426150865539646351617878443236447110000847510086000221987482842402127995870568357969527835580607919594247199318371442654769993941079349812254272677671639491756465907822630283041794667679708500546740827219095202462156515902771265744377534064610486168893760958640303367756665185796319266004015429941174462032378414766291497849367370332242061762841312520852610026633328069528794864789845456973187381259995340849192441404160373417228110993504971234912530631397698788656669836322769389127126625402794028197309746342321502150630633851616942889523006054368157332264531191220143029197908071752481761830857559848224394595897156947574163378755133546794960778338980413253592022852928525547525741625234754908511450542199247548318967415307432303744278610284399221783324803064604656374811383550644240136380649737910117268426896346956226124545684906917543245180563382968782107900873935557362785320232991905056542791612543436851070164524615866372401632676507484020813327538162888541960756389114432076110355052888233344916925041198356606605591444514582978898333237767362212364593605436923674411521530605733522957104553764502537840473319325206093030847089726823010487437483639977182383376135635308502901151435965662428811036483755993807758105041307583044097279039637230298348650601056178786895152165430574526057767075057093242328589758662847573285973970742282260872286525476206414444446098811579904412983044747820759109401266213102141236618174504438031053483881571233415520447641105153199404541569685301223632876749979817345439502798884116500330168221541977783403844959085293603401941168496301672918021199591711400373957843558601852151011940947883242738625182240697217412223282073138590925454017247955483485708747210603427045040157011638272712262290086042601841557303895154186451587143082026286756602143408840100796313843337716126603849840578888594802092963436625072779978986916677110763998431236979060207439070497267647979205309650319639422965926501835666828078637080551046315836690717341273444355081638987900274635594426339690701430602606573407188887666290467892153462498412041247669397361975348411051299744554709371220504186613660249377372128451458765422610611345270369138737315384026893591632534257467441099545496516802172292203518649470614422385894546082929271488912581364673005925059982884839679190669143038029234204309448848178364949427758385709894681659960602678481946994983602521166820622532750752605622198643139771668401508170241889417030583454385891069128538606843821708894306472054907481214627764463525332208916662868333434893622518441536531995472553706798497320722599427134749377863347594720645587662295725615883930153087116055483134233248669008467252386265253712644140907702946133308326676047873895422988163769410683900665301449574015023485471153175635907570844203808722673169949647189549800224961363235237327896619485734091095600051661029323407113431604653291894587882881852421942812544093704470812699905986646796097555336872859316907248990401237868984921249956841028166391796288351253778440170522592076087236472505515373214736803198064592194108299562865550340159499197259470489752691882609931095041829575132324993114493650480647003370903469904479899833064022612797325847127517226193678765257258465000712331157130154171488447578009106905435070650646913431978311481787417100989334054083076100968158961239462655037499657557066655765023491469855445621658823050624612840735161019272821251966333108534584952040139148336471612309940561752276237774714117622218676827491936084046797336630413273588936306196461003962126636940417775883095201684300808779233199875642439038484701348229936462975108125719946896313456787797809216140543773282562525101312020021656099097215225260589973742196403657417791284632770615667370271406078137431669225340479575422983273179909903239390894422045573107433086872090455325040099538161449312044024856816763971001575317502799730082962673990849616699518405706668792411526307170574039815892568160301266616815907447430545667769659342588423020066759329519388909546572956544210398861183029092102502714180823709019459412910917890886990865460062146858841692485921235019938973753657230099404297735727566848290095303642486255932042826507166244348767808820755491223240984231828528300447484189762925546280377022890161796414844926288432295196499083461935251903529450633888925648777474542866915705810748521976213152531118291600890182192457064979053130821575457152017224446400403608103360682808208445661637380786242201407108899626114425305136954710616517115245871489823452514665861819693073891729597029118334868398397299426097762393971762297760452863993718132717167484549262017480635042096296782143236921126486367440760003006950860387328723590892183720501052918305396878470734799443817201545358905667515499129125399836474373475590064873275012271630946242509477626963676172817030555123404240845284765180389376488947938307805637722429923437387593085174941484255659743378088249641715937788593565695880550134161397140101979435306399848066911445305548051429538658366601768918540319540838645749581973082408679160369425467322737782890364278598768839798074228396053655415309743667034009294197549281500010951907025383870163512302295800738124413964795795669454141117282278336992546207186734889012558414000103807920320867075851001282275674436477876033572769465048957948973611328363797905727518475912715440730129112374903478871063507286261193911194333129748741664396444879691285360427792787031406599379725206236180021791626990619949154719121811073345368752866861270956587795515437411411814339890852311675970133678376863530299364626787703331982796628357350693612121164975674094808068618514738843590487102124230573342490727063433591051377168966967403933602996161556131855358207638605513242784607970211907028862371634447767168323431836193274960410681305376497322798729420475889155725304289289666062497247542316342704638890275892821479526990220910801494431268463993107854704108962431912933085896729301106804373530781134746867274733672029317261378889835746948646314947182373476731590946084452021294540706321056821893170942730865485571009499992113398754810956893778017102506967736523301720310887919441832981413424356795017498233687172431555161332846480261134694147215078203401375773361397771403255672785828512636225053321777316576678675232748344851988407545798868913430979869474413992118149833532868538597833736475524706537080413969661352025896010666621976975931264346375617250900972043370252776574168618178686391551116415992878742625458509455536295995165339396139101522304772333758356707491765304345758086905705237991664020035411072745565265203606869252100285847196750442524907730067194654649038454038636423663790658218838749489229653951231372544891284560465192830039672994138324026973755018072508057052770775174414923029905041607712956345126364955723758138529724333227669779206224004608158221459293426873064512569339000527442818731811289314698294965784042638096884941556364825280782984672938526524535526186516629886446509950570891919059016597878117259353817046694878558417747298493916180447691048413495482631212275961778097464266627752811524767380406941130516691786113380576431588347481869480700425941657666599955138433855098396272871772515741372760811040811624312156757088345038853294613897235816987809949139794527201614485079372787657746418099072709332471635382171890434276163523316834443576690523676675961898594922711818733134177396345100668058580870830952996780741402086529810221934608866174913909646202368114336453952196173345117079436780066063449554370594621477559078552968311299466568124704966903948489698833461646669523129632004917692151355552463630253343119171191520695792006664000240365769273606982340694851471620027171583172462876826538571613267369994992784785141159639730719356622201645591302079318598485960759258982945848601473864510892132811975680687314398081439504196462262259282125109046267031919135242163572981270661576017409101442115959989622220066049255840705540009588092907287878816027823928488138735383144820670844387517658010770663222762728120488286993163748238197688493290665356904462271732810595935155874046932148524966657157533076382858555256354698384538824104129544699412838476137088764629971855401082949928526498419278455865723923207737987378143303915144514002482332714729224067906115502394487400576836964806708622191377564157765048424780209141127941250896024240828574024750278682124494888906283738483821841401909796435642714744484071496263708614419703911989800678611389976076070058516705987676711595057176717144335828795743745483669071804878062377123388928173507278371241367368955938745023766010173745053589711213697873669158078895275715470706868310364096698525920020650048147514088564849010941830594424604465613586888474179411770307076687689074580585741751472914355128354215445889157262169202152076823067377761122538798971164079264711343138322356068855204356447544307175624480502103037039812052820858341425190819124782459345558128617349656975571839821692944979416137810949412651192178485608116783080461783152735317566733654564887201203615328739108509327121215396437809046107818629110839783032978183441481234222302008923411924084988489594907401369200168167726490606627652643629209608725245626860423227123738145787337661075040855565952735900736439490644546534331369627495643355849097229131395131463725211697631916357741801063718227046618265794638882305114861029120322007727726998484259466524300583062353397605580367121946941300324562013062133684853522302794256069776241284600610236562897495682444113675260271576675193114171067306464727267039164878171538985844855470130823897684431561770609542235245272543600111843199320794037908616783799850189193916535881559656717545178602248151789232070183983241162425315746839838700212949237761134627053503525818972681401038630673950297105324585818949501011533797367535746886909052894939655861728525559022440721646953678043268922848919069826464020047969608396886236588483189113077596481435693178223317646984798650000417302260982245713444707606910032841957294181947264080283726055089985089617575402140625766263574896138165006790333664758713656482633295508194341209150547989706597028264811970093627279888106692497060323429961197039922574043167443067387742927705542836337135257230503178165099607503590555219185613105695351109755879659947168387511220190594883466973959509125045757468786591576603663331552369739460401922075203046138477493874584440373710361276754230595932729550069974942014265106198386839534102070148859985110949496177725065277232228385698026502748933732270296138851235390438592705437722999205945675677150519008825604738655315564840324412840681620782035640917450969345136817939697825573945407130851954893510767836837145898493069164899666477647302210968912768215074187779880535420091902863655513952594147103087377286874667527329345079797794854513258517533690941494014695526945112404422998498660448821535757158284569626995163898025766209057449648418089602866515902482333354730285836473094164992379202034414294137156935167905697342342891982340372532498148598096081661584508605343460934711398618614460474725486332309672148926297129596213139311436954351245028143489333778801534115442840505494461838753056127928512171080855503021044504050916993112373367585616333762788506200110497082794505202364037372413525303430741860160741214768803191109104873864181523953453369705262993583884854464268230180481763267316666429061485948443673690452181997360444890595004006016897834732561482559744872382684185061759154859027350232564899984792332633258965747410897889709325752576636615806532427127754356887006461588744306998793710935925271124786212952792111439213614194177437988262179913911858273786782937627938458386318002136213332018727489407195032426872484464488125769064990350524050504094695821124615079456760317147228563815259413209832741493981545968010912884566432527089852506612255717205090529934810635019293431435336112462869410250098274719015857461802591986941286920906255377687827652269938498463204130626204160865428504316929688973452722553793505482284302137549368055952716297265919247494597843334358919794489095261449882748303648964126153180195614610423403897815244877809132971287260706424439440052444162844248943487401079603045359309484274390171237987240405515044988055866647308585806885105725210538170543415550558359908011654500504127437989301625326499688548187914853626955670320644619826956983880739158749460309156022130205483136564390947284369105389526688177478965487068414964843232212399141264004269881585312384596097620736491153187314960549460074608243284189355413248553486278342166921998407477522482290608983665040364228363996558854240261924542590763659336342514812888507152422479291777739823375384838874179046981830941674188553063613502600123859242490641074956366254898383106863127618413574144462082787579674742847037629569477005006348909820124517854308101609787721544830854128006065439467144939123050227091371086439772133964880445642418947711721893520268862792153547492686381235212674396737775966699923177597396663047544023366333640424065382056837876682533083954937532877386846336363153585442555495162049160265744377617281096364940174959541096161737557642772141278200160285650411924884615620410559941033751172605274040703267096394539208127125590432995067282193111748848167741267201503677854887642806530949286421996740737859921488275453634501262255515620062524608460792666268091326796845594362933111098517180423592151519600962600784133984129326134606807388347607390318634186077853172867942926464055587369125049520458913057734275810945243919037677275537129252031757127856055489715339153910872067487490849290437113484991144953312117198630281940769214320938389140979151015532004217460052726061484341227528732086482871635342758899432902939945358044519351529279079172316749215055541683609924535900565691575921396355980644497993722160728496905246028588185936923274389837797865659909383636911922956858866871295306651447718280345622887328329457005043570919830834050684403125563541633188051472060808570681775743833809829973459917696765385122848721483366563747384356267996690528800261262060914554316468331777368751667477693698016861692292672441353053885478394677877642127514957641728294407607867105124909899783754601559671380755182779879571081009743141000544438721237390408491605149827574281840933652136785146063320346032394988796372867699239801138677460759551414022290048034404545306672590273336933040898001419179558322434040113482937094984526870629283663843587520668397588183255914813368654892888053287294921493066538288859528762422207739107188336683646335392538590274654070397218931819145202601680241406514551513444197770709522286742901660472428809768644395286528947788721589224714900363675674820731121730573374010776889818176256772948961956557508711907332006300414755095339910325243483031191531191206060592617729848572399399379857909276094701545157199271295796974758937255409558047902120692648981919201107746851688744463885177537628530496117733991564392875860104230290631765346730466675307504682869082137724691953209343540128378800961533810179055270317545403003955771780914205540581175054257473440097361716434338156758094858312405168801271974058440178544057659379411378518750084622874587301062876002946971340107892117613889754202825609060873584097102676808822976108694872466743598110114436933253993694262318121363504716862071763766246434238293702723435531848133082408539876309986511214846834069278834693486942939567912014528217530099098018155792407234534677766197957891581805848039811825213827393626745503803463731578386181796548060999921686124011614289783045236039611009143847072235596298128987158763265030746928002193759887130910506266384236341967498627350248609837890682989890730613135943892174283706702049816036321714718010982343524955345190646038885449704175630066834333943685392995009500829350366073655568512614492781530548303489493309480028371785951243363281643852861517394502638847458154823222571428856819727318076144928942438958427049899606755968106950402728107909665809193536121240931319970233929229975934099038014429414864376553976477155001917230965852701108665834736749690685655171975863828974012060257705375904587614897486717655262643371515754833385766303504851424364231532431463427171229920495169744500292108461008535289075496421280531780895282827724391286501116786833997746199180288916797352300791860472238247510921562232699785427226858666109746268032310330073808659218794467632456270776073456052984263035648398338629819744642384261623429982773447375317806211594585619647040564968823686608152626964475315871586886527789509787618664745125382818259478845363736413183555015904438813265810979499498081648875156380131383091100387461467489833706115506396814004405604014617343219134603807995478195500941208343431602832485323693686206519946900003069957890012053723559771851455362705498047805847138298708046660998523589848174467520095778006730206338634322578377965664631831513738112708474610797133412391133827234031533064927685751951687036016543722579437067103833818868535739837294027479795878878941729846926507370987755337978853313659640466666667366009467286702257214658525928120570952197214265245859965308502746461729410434037249127029852625429438444667668684723643638014149850983621447764475168568484799523150722847417312325643762068193023888290980066748932485279637295356021882986899834410059907238320194454325920888323585826449030504242273466262636016671216424158904285486689191845603257601122221522987478323498172052076587298910533558194330283594983227541185213395541231541826797287613778807591030632938878788471332175294130144552264141050530042811327134858990824041517747944383193748624990913700083554217676788296714697819198577158917343011901372926284436872354972005885996407974664614845622363541834242620748193210063969535211034287265327149949056959958773275385636013392105579677082526890505603248202486201761220887567275063773474411918319030110820416925144958484902650988904484570262297150465609630334305918353322546727715327403436067496072699547715993742522748418044711804556346994171402827899476744124320977843204352688077811154105472404194566012111117208278415177459050310819425067048356885124593982326953017280633261716808775518414595855431381485214040295430019086504120883797171855045253391351553452982068686424143360009634452382548675722143397778528489853374814784460162129559530709441554434251370895387912413000607966542557130930687827517199869711271077884237148433283881062780028502146733056403073181153279955494929583904305210151088543918097711859407766045573631808375527281788398348361838941170764745147849827880950948628001381072359431430200015325482892661868573599587643935388191091785955296201781911572136027018812836771552746290457218178967572004170771540745457390075794716975377504322536096076734861954265209920926997146270092896749443909997698817269632633255442025082617725452120283423346206332433994526649343092357629398427947760077831536597864325466215659729093472488525118338609405812581275483192965897263035623003472349605947479022790500883982787702075413883346016071220245491735831515357809645755678837504547869869539345665063544718904300144194528679360449657721250569755982405649680612040562865627233151569844354739745725750287036284432440516649418067158759400027428516759589287533763223671015099552418530420194476006064807162971923354915707626809127323851938774155232982173774707829290392852744697320893604682794380758844945266617354096116196155435860921031402713095214555659801296861794306897938902958703174034880878681826409843146341341586593730688405349286922358400712029681755079669067190827229434976913374098944064408455513977210297672664949278199126950005140151187298796187802424487793298913249581819788786092649657319770464740812460510409040283390795693393173669363607507855548403874896589099623805337015877437822874854059579388285961823913162520040853214707025544210029878977772750198327805443955840711848019343195165274165953281449244539556347784314843426042477659571441774236345970310363839673588447614613227196103210298546918838627583616765723383647601354328324167383131834136010925458960213225984454068017400196770270635660182127678273941366886389439517627987895989864964134232145563770264103924571242773791162500100373086133448228952789835363235081845209729875226314760015535580557120931909651136052579216381661884045813750939637507888104399649931962479671096582755944622398741381177633947008336767206585069283683836784385943920603213468079576579067808701512178975410586860062196834468666113916816068680426005324746117714385311581336567494270664130855632314833964614753280595580166246520374229412956746170726150913544364159368968138398882783888654948129528656591218178017496381496928444475078562391428218126630889398688347623364424458287832800355374963382289875892403519394314416615294446047415790064087658713533977052053848098006342938421011311004027833983741108389599072919537839512878615203311766485406519867947719178657290802987461744020521788958621176711411147158334681914204101957047657629552684289499907403539746718663181674141120082070001833889495031136770973501726359674579538305242885772185474284776187306258204319163304337673796366251076880895434645531219865534912497441589905850509864968289423945867431249982770632549760358110530089214174484409257520575599669010375746605894324726330508048031787374551855975908878378593077216501526409172360929920986639295593879271811219378842997961925400930135766509120734961901571995541551585691434044424148201936244030700896660424678571739245922791086458841253036516441726400139054773268260948751117125902981463825044183710130166606034891858005498706208513431365173934396111588524422329359084254678442724736867147181455698516026470557367946881335045005245983843804673501486290549398266125460710475939273747113588712972130193601275790021152046396389780082999358228575065394045535364198506585066630766511302098823664902973365710638676248975134599910706457860934777335948401374672186124277905196872941530884753199591563213129869029351931167071557827538647571313163388314251846617789540837920730613666732205679371494888828971620552034327696731170871917131854828994801204863449873555030137322170585712654594362960254190111163907449593241917809230903823300225351142577780001105369892434502704822488705298237318757004265098038516951044203762694577875657704543957418965696683360252727483701922066733052700296038565368489502642974473250515935887045158743566013578053889247546482260347036454847898460208944684273802561310311052477970837441536304281674523552478301676600900565938174247227288226057743970935326575190683287916081747276805432326071443176565650011962818356276239991742913749992226965943979295501580551621566969009867557356561644756545345392231547705101600170620794920821700747952529103088403502910916048009839271621207145096604444753480925797892880019144545044381510848386849229545924148176915966038912910417163296821469670869952584401246061923510842494092328247613802811322610998107617188554832341737819176327783587909637827042119863348097049356513444942910910076681642437487209927943465266710516533236481062083623490559016609681753942195803667719055095414461380207197525295572010187790751246098181305214471543722014649006663984587447881062275191111753596359843912286929646145003421476602790782104104401922309884221264737376931957693261451989066261735920508681247780142518852087667545106063753205703442610973811169087093479194467184364087989976404713231124024659235703397884378897345204087873591995068227751856837905910545611768326557576368964071219226361979501263938620329086081048703577045734967410115263706969735851919468289230673669901813240356640669400199249222722521873420734713041718108680085768554869531875441364020982142041221653368101594043507512968806697114400306006755735558781022715537154434186542421238361598892429393204968559872743833680165982885631798653730675787859875445331672537789661088570644020642644215760590643318419139051899476203351772494508514683532040762361648827281196180255165871452610161730662146092775950081379141369769923758063251663853860116642117712359006911120588686784904641709144865936676177788488915096329501621522050239870676769662456414734092561768791936324863012443658856914383351360775264931002715443346669416481480206069575950979892060475502448579370910804749872970612015650925306478013896593874177547889640110536487970677725686383371660684597350004385014208661307622489464099247132470822682631097998026687526218150344167199476222267544743269568091785679000587641221777405754765683863417833786386971860546102357306925359033767884125220915128869135004516663047505730017487387216782749000363050151584559597965771561509363874939593731730442082373573863818244802947706807949793086224567329133928691564105761923284055503364831627489324769448934280059588315025883908425666307181169515902365635356353919989668447676997819276719024286278193286465941999738375137774081649355534639051320053934029515824297784469570113908514476054159383592857181072788834210903118954728467983850905037213597768269155507944927555643974949853331393228854329594446690777273613230930157980870798750494090101420640601179029766780722163316083630998663095573756897462392846370131540380769963080945449565855722547117877079064482709207183385328563485859536264874488213934166691090946963605519270327205129455071794358723792159870051269513676326224049652559833791985244882075764862330419673158402154690250105811866483756327491636634953440466154116593406210549465814605415218371895547786320595289243880642154236894036707611971114254433879617969364603831140516307406474986880598998069152649139279014140648373547111174237586524358086283575104747477059604053220330204692973380090006944672977711545015246913640789609859773546946238515466729354925790866193500644410467824632487431693916394062178856600137081942849308193042659477065446700618871881822227349691939586411559469350287416369345685597523732313920788489954469284607977177207407543498276696243930548749796912874136048847924951127780140147916395631462437196648612711566951281218414466809941061995851281457765695781179920300803636778063381035874789456676578165486994306328991223436986358080659900005203323539043322544514337537498928067145800244831713638027206966482302972174124045577947683988192653750401501241765973154236594019669079903302968772499707732210566062516126512254644042813429074910690256144956942802612618432488942575337173306251772921586801569340600892405863354176107776700520898427898735072826195338469909984456828210585879757511863457782259616219165783822088399249738931414538842793425727963902355491685413543526727826029136479121181086818715297025876961689840510738805665094083554256363120015771704169010503531966758892785492764185461070749141700573230681684051454236660465953442462676769491974668180586165323811964676367723441409247866481793442881992061755730879851387572801821047415153408286094975044249224877507773579765865518940838390749254889604919286093171079445931734342070929354143832388595373160099164819426967413097850692253455823406115156969019170866729145551711374982319743075279769957508885261832439528344677112594695613266059113297482061588956995547486094834966307318686076504426377929730665383527529108301357213697479819893255204973971480229654405866853530670808583270119072597530077658087975750839605573118084422197011491162768829787252842228205418767081086093395269435996245274521636352727465038170649673991674742391064063233755269409867974739081648716819755114590235112450725034865479062637000198115062286984018603291782071793872302491740843031514051264376587886347561300505006138256869467604791674578174467463006026220297263971986994180037280755724065600406407274808967917360485442963399489167264607390739506364362774037593333266149751723791148170429011180309875273735769296842770468270146475608782923191160215442688716557094880330417047208299738295622156134026559723201916098666082136499176883598642411484439622389630550786535038247407580302526840172819820352503609896865328725519455413811454050869024936209080253119391134073838729692059953824259313086546808222751110789830853465249167271035376102391727645218764720248915794926866475427872710814271178472324280697656325886497335316315378006202425385122105597652702688822464008802224448351896025146733305685863480577509496732519195991749265382493591797539155620143357343436579332834599301399869171747687028906176592540912011447775653068617557839680443779240936458407991776190601467697811061936414153826745346606768426760285828793091116902410583372321708550843155704123426512954048119032647707471525326569622964238626877231829054646847612400663508865473027460802624254594037706415090772419239258808078507677983465675428814446090759905215938269544945456442536734001922102122040450979483243347608244719979291310828766003206765590613020867691361488213765943632897613051612238647278651745604193601619289091393426712023765964620842353572781632149325124496247092326943700095203398419781973651728425999931431911316044379282742681488759880026878344892771845268211490373441431958903320263331080545158189078002446803707815559209178915957459506385148651017539203948411283524676007386953367229760225629257793684344448157822538726023463107307024311028502415570371564974675666213184271442557982590780184181087346029909287143498489879482176833448245133730268355700444132979172023039936397953398958063201988539865995485680554183302510135272905995918299622753155323839166485577487670081947057385428902955164405653571395960282802291534771099527905264967543223451313801630348553502530656351775557133587814637769516412445245567262446352888480100111457724708120329866514226507016647887869179053273288393846011310215028719377419247168435685315854314276080987964242749084040906783055661068671107545396026615049870818251595802366350198157021693030471732029972482679118608740841491648685811048600007153941740377031263595287021859302504129921783567725609894935757770168727310381752743444390793680622097395013845922309414836917771453266542443258478677687811804550168785345681313505127138673888412385699325397406431651757099992034561275137322881732248497120723447884445730527473975824798696233522476206456007334281461257005475594340251381192536993958196127475367186139092612722454702707076565290279645950061942463858098199913659136554332000049866603827328579337709152269063286407313339056453305502069288621986883893041988304017490079486427153588611916311150474776318601517323829179817863209776927360410299262627183761255955986365184248458524010031210638249890920521058059726541118357318278609780058804988114772386944066377334400224388006459711575381761060715950898184364417714876924963934106689142723953716635155897255552473544663222311870442524756587002176745248689586160176248205311280433408923390313292319195788508517105475027655043070828109428734581339021153807036262719195634459276650947790404969709878293918549653371589953200084277846284886610354315466952654438049930256652236478927715821567325594222001461032975915320163839777744510921187104111307976368366910930209338428331743073183066568282248182422232871843413518826189422356633970727698745052975488216555878940938070871037871179085090799412000373034797585192602695840912102887384160145001226558080832043576547300542389470296271536949672478488401702419470806339496055050543122723273008907666301299606454492298010174301682940463190133571298348834795448195893241437623064898950593285352206546148682318125529125394560821815237428065345241578890996278136549646863244601077105207828198888385104332415063442445163147542876146328150562875026099888946192855191161964816863240034541539148278821835185011148458086332420110764635239867491426258664825168522873720481075750823357031450942797023395926895371595472227762371975878604522655678990292317572890938570118320335069356735296624988402492703989465247679332922021095057477312871005359813498826426432523535675816253121507752031770053557165635839134197103408406165453899169946189600793554977597210116987456111367696643870208178577382749082153174111454302878950566005978470031307017599314366726001519967737974865916783412892007793554405988294687503453066496019054890839364141143927793885992390857888781608109230617334425410485909685425828651204816923859974545025262230836205219352386602977357474880044212230304914227211515203976332101245387299478461866043902319307747551316720994654290961638750673985547963058642639478773232924778421903277820650873578880335947552277903135279823290690827480618693815585450607886917211988640038319032805133375446813345173415808076802009582128989445610469448027182957340097202625041429541460031761870442523711756981999394662699556250396631271313608705957737497086486306121775642947618438417577108764139229540404695565384044728944167793034304709450320783351289412415494426562372592628455776849990039675817342472986645334023099944279886570437619977842133274385936079325265530963853504244483219712749035289817283809616727850586472820563559800296474560617012251601469436936444486506462831397537070921891778007715858846861458290714524231772078761948202495182914347131422880389429450558682123370598818067345293007103559851896853032279275359853751868911804446822000925813562241084394289827811025505536366582727047361024363946967068308969046854264505792218265418957173818621416527108370229060905729167987138220321498280643176795729907959527709685116255935714856668250519204381901068864043949805164293063414232258937067804360672118368063011602571701018482023909748826391124863028820779521824779100151337362138611776908208622351948163015266466322050779329688973808098639321668665525286154797584210454695224598112914303607775407810603303861940004463565539181559142285942172282146430965951315131708866992301757074425999531674925862199460795454232164312982480652230187185407706817621112552989244255805681018331984976929683571534453789989368782219028040904972694502358880385914531470355774843063366005961881539840417905662589897295514400191227895924042888155783595905493402265365841143220898705751422189442669604194158205655839226163687561543687361052872759263767418205488581448827346626092125705506709507274974037404502593626449806127204087815819138907749552828033834902127853514080302231800024038370199467487338755210028242917856354113504204576604970129893565616607976656903714835954790094714334497043371313944587751385413245684299276541075274793508221128808499267729685866703434048563354158694392654164336864969098249890914549409555112200507685958984054605472910324301838272739465420684447248272882831152056936000495734474011486246192015487078442943157543891132082603043853330690533867116369933928918553547980901622078642255927640463167686490118695264084034660419325215488053428036301467518003174071173350201573399726363176011401633734340857913907200570963226137478150695171163447931341883057927028456724313621401142405801350706054408792886173396235545378106880085773576153603122092641973869478147256752099086146661666079344960518345734399370794869244940995085648775221647609164317751239446036337479687231801205371946685294606099863317700136228767661378021636503023646767607820494439258932651232205125378814251399782928336075915580534774716724437612508083032070791297409738169887354416366235552025331711970437915169235048437030503094792984509326189996327381768653954286707395267516545170725788496461329214636829423284412218253375022596148508874939907517324421107195659221092824538591103196622222580805725785194720476601667835693101282678278908218899881219910541559429029061292923008190729519399310887249472225255158931339537235304168084334383536389053042955475791588623893515424655197418475080111282578061926207517123049332955652272217714902830717379217120757908865067035542067322845916896491900303960176931517041912459342289099386379890569398193068143590071335335893627996668146996622332465654002672853807726145908944655074647075511276369920325716108234280755231257895064752796998835378492168696738229951158295241625887277447031751801388954740686784586582365320114579628301592792228506314594789745141822371284350999977420491581070121190931257247113361234032652363851185394100391962720265455789029630315919203179230624160562117113908766792493913944533706585811873378028802600279803574926951784902469211546883111675755267542976657234657277337955828604708748111417353921832892267479005391840989189560983335477451580120525576224661410990361524515052849090560649567437684409644047141460145695388787179369743165078523953320842730304134505690115166980743003731882684407349527022455052392024931123453836390628264907980342401649598353010708045069982838051372017687571915798457608532637288933941831269847425037058926059729594260200069439292722654242639916928434188312913167466102595408659003396574864376017135176450901332357067575583599019984295459621713529216224906205213255813186384517322259214832306493045933873652359821987963357111600679982463085994095331765193041815946993032307206983100847190480454691426234041449040134517426214517824703791354400772007333164688111879150661219165986213307395428849709231155202161049678846820982715825301574620765477533386847062778709831374146467028996250281476084980666488498841027345136545202645242076120268732112715974128317764028849111405355071417485711837054893332268379251331590585498418089690106933360579507384203749973890062883250099931058326706051008184846102752288776492966111191153170246617511050986240598316065577592888772770602018297930359782581236587442728200147882136506789726293298899453483998273733598417735245059877078537058938442210506597980476001978118232042602116155973504164299675357762793182312466798999516599795248374685194868345586113840183882768196893678489317467433173157224196876468898619770363070484249242185493873817233623316622375837968007108938299220394965660844004963272999228923164353933322687186211101921705129494132799747763411165957807519280693091507280546083073300252993654805963885774944003352853922426716714385154982668262116430591446472115556206710958301592754722996905002929410499155136770955329055493550912039055408006485985914759063805242579535392875552088616698958813514358993704508220683268903803099201868959103995609555820410352436555743002041378802121125235244694858712425858837307852042133509930418632806585786084916968278564549979354348733935559357116930828084911479299816361379512642714058848130471253004596828262887647860071330361132283014012210666060818557261053990809364538648623134613547178115116686806974788935882693947511050298999596575233719381087296145959533685739242084995255488677118350511191616750786897303744050922406298310338393919681397312494160153306134454247907603154165331170665499336123340474358922038581467151762663479541599109673273766235539483255127222381829361958528502792400757290977069774611286136028132695021618033780561567010864246958305179347490760563633205473315514252563013570538395290255596060812924449828842440427120768727802734149145858174792956903648877027176754375985106746100067973176266981019494409357133510844980633918147681799634874634285617066530495215185477351771544725413608113210033947723559017167758777773677276023581175299448202287107724655764399980064275857343056429299127762307803671204170974500463569353630621675755367467424014570539667862164837192178476984414540604479136123517398759250173389708220893034579270493613658160689337370198790563436054851008099736417903919934145885784600026305900761513390573519353638593308471165378107978513387334416843136762588478690786869195388193735076976125796115648181908334415038654363677233968967357924130556863100125201686686883531660441670707960197788080064657676296398864314035198912951434249007515316525321264423414209878577751134203586739900286199046626454957684106815709029797523212172316015230710634792523077605899566928213139558521377683329660779290758143750454400905918683125653882992157394681223044876354679964697616558190653294477021548294917069042350906765794473770567023042567295647442726390819891453158833021842780540522086682052755965273190814813974853723202271771927673067779564159226419527486593571319714505291924735569212291929291104548035017731622670033687488469536833625944770311515407154484368475977851230658532804062097603932170462373081055019334465869941042585386604923544604671515581842128214948734978228978340723926905558846168440144964661357348827937994527699736435956506899713434535466377303156687344247826598431119752275081056655829638957769475123092441263473449834927122924078295151638640346944962498039020407317494968816258826355156578313998302242441950090756828278589410891183720682939662713421189931459346605543905803347997951388390315387436720439642782812188257491216062452243414435040114075075423827592539738898958077063842524717726933074609761736931029147923996036269830154718930927849244139726203032098453747784588031950539012391972946753889487742061563512092059675139685576306237158404201042539174417790984222579203314025537207135561440623073636191762956541047176976908971874149542492071418438723637349918185601602346189921562068125734719324049632459007172740543125164444248757795558331329572826898472800633532055024749330008464924925419715384802545666930073584675866466960047253639542433478329372094333245622832274930358023832917691290945569674144174064991885594503850178929405574382309187713624800760065526015678973910761211020382469631226284172798674255374181703948078675139025563652551886239462332954480617560613170542443929806254207073637856359774818537510057667145619697509951620341649061718997400507651091530779330534810106489267603032072215770728887353563822572426772537195145705504380723534956345937883752422457644448541293872961112609684775568490637576249190321350626223730460142448572690632552705571678062044943892788711746245635753007423252417609821825511416579821387647970941563220717989121810782109443701871139974183989107028561154792294816574842304045833664910003703104729593071865255671853261337055462473953891833507307702638346837494480259382231172203992467289550257554163374443150346164232974485046775906930940390968294293245823822028364808699543038540697455291313526046849322678848485158175701539233007436864046056629766793865760715128698610108692326321796759833108371482071331198791213604397772877860291794472969535200118067582554301605651120682507621915623790153672215659252054545994615323795838028944041144985133420749937742925734656405571180402826317841667048030174205240527070522364251284843631063975497884110488040424667404703192250948975071114200059633414894939020574438591680192095851350585593346550552389536195328490370750410702480848116393663067176588782484691382602350413343274751501241864884418690199191715101426373074427153182197938231543422632192030219622957478098916077222658969935527802350547456033374406732132884133844612751265207521219154590910947772779669302158763123288219996515468380313717361545373765237875070319655551478950314011929761702921949243585514631729642764997792133341695180657258043267429047589235228679757674674308635444087897545551176788888231239665428743200338691091216830836651179025940021038846836732465534885129697406826245539004511946302917353907372955581081401812183093903809440443795664226381249058685520991322899387830093126244630037793842717113731597202192617624700103864863322547730471732020996814781779596813779459985005078157741988500761577757967861746582625459883699096908953201220284523305897978678730153602404113451969980426737795348085264959343971567122457236267523264462770704744675566830988070585450525054572225813485893602761297206602382749653192423116304385883558391309235706982017811375079541546529912996274079518100793263580199931014093589270083844595745575902158079320852830535544863007265668399240746241931648024690112231287652351189037166785467177472335918527696168529492414497703595374977698412536171468284081350106508261261036231457204884919175400570994011340527336302718040675227837017691916311986622418868733672416984354939108814838753255741501048822026722407099650546532518756640285567327217406801177999560396301980982380264496473326924993857002795444116375397316701181116167052350405028690571249082646696944540784383885774962093751812248858367340853325336228380661029002658946359380869930246670094184620157740677349255583497499872336850692634861886070551119580623281956940279565815302043396555868347868550941260796051641529123546617274279073732803670164169966455480971973145595192370897683366754227782559908303828911653371235412956751771212807628501206143212554204070236224050382450421516799211234404270369234303390408574208986658444777560013273489645696469551316451989266841066101414710655824318734824692148233879200077664085352415745508283435401544389064023467517740740154331870694100900637389707416657491611246225545912034000953033846414356531506057269926214724187608756799383606940427590643517627237098379298184970843543993011582602441046569729433389256887501208497165720548608845435319217410575647590374929131094751029561828418686775886443118666121857785348413083773530493046659411944667036939706874669392547703433710464336769764156105528865173136575396786215541908085817093111515687832639153979060565658534528898205699489221005731089997737702497398591536183042987281161435000295886754404324141892390655270522990401169054355172049425652397116485215794357442539403727322326114587446397946617102804546553260353683860043853812525315807439377515973743566130129387381335523152011213479339719935065796296557976519778633852002704441672380976593826866562361832013600464857304494696626251650974761480928365602637030122055128169754478074032602834276311818528118064236598708418356882598240469460845611470587043298332706372906140290245425966867994968880924349619459126118368169830310865800942621504130335883712212555999655526419541023502546462771496511179549989237111133729794781898879378792338462826635096873192730550227998099029222181755364252212887953667307380772855349002365012619510105733082605387616036962820603327276747570167111965864199897862106654014121023216192552393696846041953769482056254701328866787877552275106545216332887301607861929980860595630038927791608550828438299311171216581177144319176372000546901049149798304973333020975825421889273018216551843711896171520292261325457295960179299051965001882231611495685549572265731231537681236184734727373507003757949256049247770397830661900289920725538123209226369212341143160784859740864847992216669606046940856877939745664898422217399866526625765200639901805547385880536674064752636254086432734297065431292797230777817850943402800273834646468482953976466324722542971551689178521320141532741546485560092624627315266193726639882712635282822955434211238229334327451275357971216732900433346023090920778210523253756336978663353829563538913966303628166837893951713841508241863389978632450703891517710584567470479351439268615004977274976379237786736114849988688403307458564683705170315119415748829100763004106254799608369507055060685473812135434864745264296249762772986077044178978715729350089489709860860944444269060004967283687086144631708997575722889698801383117367892190479373972931492086421770980275770476204603702161337083068815345708091517367481605614169817515593883035928471376415723812982453565311380045437856338351838276634534018031251030679225826689701720478466958340706074882226232032647921249646933293236518252418531681427455923252338411171517270665772170601540192941045586793767262992901140825111267022729788105329335210134069077993245378833319456256715941268127104477232985095429196145494936101941902425883808813305035368417537343250257164375640310865492041977779184987516426547466764562169538678947702028280354043814838477324837252434144621117125539747504688314709897030500658776717422249329089405745126084845853154739235676784621790482112827614738808076249646720067739444964020827046188303459796414654460093167317281352914706820592449982394042698235583391448821508527515614732725665103809696679076150503216143940725509075553561394594285299849050970878215800423777510469667093386302605458135159790978958925766089244196349659079253607842559676542534623955717422301564130223905253734294566130533842076900282505082971900046332266478686840272498039196895771793409477994712333253097070143214877713707176583413918462605857728832899767105770869705595526423780208702216275726584682702519200387603907015786733328313787767273237177696817026769918478582274537792420114640731447875985968122086718467753628441166848725723193538142373799677474969376407455319805470269903557564120299643362263402905499866693880995609006020849566188828232770281163464972457005417828517854477884040111174187766300904994959850426773954825045496432479867578790766142671925502272484297383262982762428155898969406356542589085025051435772656096593961796315995641432434485442678114499631092120728444974309952748695824013327354892648855360932810843570285872210774148746355893182136075220880150132555951388429182073510083742528684089427748320490528311619900858504306113619320743414775729761840688209303593761692285449291432847672064787840538269621757473276426976706237034155898561660942131557048265441760635419867884291107875578485057017010182055205916477930264165288153820545585927539731732560392517501843505506650954613523658376399775303037095510140254941380801415871397557651586492251046346046814814971665605397318584541068691634604320171568263243517563073536601075642794621077584152398277117414194576325602572153937186247369642621752569091221254819562460107581367414582360015523016316779825273378039777936993008664445961444317022870515184807221715996419324193967491800841532644554648192868644890181446859227609332741324600370391816975578824096372551535687399792833998144408591087268256215277042533356656071404297480073798468630006548164312988429290755038811499848262286128145286616590447887970584241260930094176832619254388583849738147820413742162033299872272226739178980022184781598407230383734232928247275281882783698708312305915802258706434794275065024848555512679965431608049684984977424613405394226304551651948785366615822164267496896610300713643335794021160640577017052468392161581943056803852720544203013290034520970432383371136270063970428000629947802394688407483751848036794219135376804516164617491850455701447717824266210702974697055065912208433836312087325425113670119073159338950009668494995711862054776215234023306333133834568626475088731968216492480372032170292079970424587416331921269544055309165247021611689003812005157514140386889003692490182108451400885452194162431433750369508479322965612015192112591278580573143946479830720349436219524636031138386159105994566667094718987564560993585420702867386648467616330655341739360032346679413925597000855546322650807402599834364000300109152078176010368979393836068457586667327486894347167393034630966780212205448563319427153708838478848270003860128371951734633192168060969995879462078972333586098774654775537235962246150848893490393101510736682033056768868379638737433645426810153346764934504558643247848921947118088479092591802504059177828124486845146705372215810484219946116495342099000258403318725765456145096259122073295219540858692606278586424265507149535338776752058457358404683504198755882098904738799724937998523393081501878573383683944042892196978626500378033493667836255053265273361579585867314029721158302123158452926157513303587558368528559623682507262356943184744741708896934545188201923382915787325683107756081497775642486525284370165457036247551763998660607961109820392479162486655425275000020416566405614324528756539209817241035704387081650470859398120508506686471014097907414719188060539008517663511232725054351862271480323967814809349086548162030022193838665364607583272556993888831881895649252021030129508566825971180131814829297686452649055085874443563397066737441475814744560507097315500800150399189726191030728534104682681768488898847955698251552475695983712593164225499532364453372654735762313908504482917424540231342597771451549210272271721753868418446721634894042266719647490930115008461751294807942229493219637499725967112082267973162145612961958330865069391292456300946157729618700329198209729959176286976388555695909519258077085185370745288837098121715502634923064703785981863088799468886557406306787493179042999531513671823672095201471662725920892141726197187554015223304806699460884156920787390888780076129879162355841070761910919625830421770057035815462510145020404858187333898786349440891951804115362961940218253304679651560822209065277522741240676842069773847848624120915240420319884385140333811323490334800342813836232859866624618222446236617812086144195791729003386276898954611584544106988601461571884285604862670289880986848191426947272853427174560562197417417427877468743490972737422426069857654404470011341555938434662771948316302554210249105784453990442851388943118073111766663363340734687884798290050799089422307022248321549303629400362649183763052738566419162460670563297988205623870021630161231030828270979295592769185054029913501057165700538811307414062112252956230725048218642977836281670171908778640569445277960246646535108198961301024506883988642968725080072475637247275407395163189467331973130749684219440006598194440451406603814496523213125413331827534227581762601609806266911233810414227943088510861481958781013361404689156796809290658988287593935632576553871770085037475925049685585903136855815051745754647573864621295148974546564850891216748109139270992123105012928786603740660057719268480686003059967281405480188115898604859712243330266088849999024211838919314617986883848720640097423747094202049816176432263891070550292212185787126437884491012767585608007571273036460892877677232545114137055565483446289809175141721654476556670898917245054240100926054569287197975059772032207031027155076999370086873727502439977220602823296754705581974131352368055547520480751123358749369522245309078623208931260246566088766405231862146059299657783733224535290567564278451872316877699132168967758559618588926684054146525764937882479418665466878755486046580901112660102443493398244975878179328816161103171206072632703349879942214123921925955987233295860503535192519388307814389076102861491294004163634285805757947371124548262519793447851636612570974195425153671244421138864227737521666410693331897325154970632068592060569149063612406146384116480121372350386521993312640745688832648932468984430710408334293500099764293874863261519606627337311044555643259936023415789211549045303625615304090658581487143178727136588005235477588139140380534633477923322350061412721998142759826512724358734435143764996115097630170789999448388125369447396685097949096590922686374671401456802658973290274183887052630785844829822341361739350501478674610625592457666567145285299523638565500806384595191661358635819457033289237445828285677633037889703741473150441360060281277046758118279999663537516541107679953394685888471502409042266210634452095924042154635255102427953294428991663549087642013297932423851409275302015942606236397704777206553366622642990821310978606675633361893465113782920329458863754099227928850728505568939133727655353849784597434404277027765372838234817500689555674267670049412706990203661418083916052826550057305874758311671305777583463200743466581720508998459709147676062107605952336594084339626596252227772323883813565028548620901256416411049390056149846599330718110999926621300858482397773878656490714804807830538106030499392334844661722831675970269213159614180650817586768932326672155686480527435908583399744734500533720591592221677162655540446319398255951673775958777446079094934141548530226839761889248212816707442295691532899182073468571139112714605870806990506469546297757075423050043195989347263496711527010856454947115352157568433061336986465382296136457645599102280811739475580830465780541703226605404488488596709531874952218762429992011151887453263060287566628341250936265561227676910795520093239717521617169415975181101964717039180349621313835046669038666565362525207283606516527633208434346395381743168083155080110632962249639562227154879140650467766265759011754137813990668185347293734819441951528591541146357253500540283044251726170421010713065623237336490743930785444457421356983639911266086288932453202356542676198646598114839487041087454098645307280339385973079556882116776716516826199959046808523626875014702559220418397717775948767672414651105370090125227790286813579874985851578676251319116463796608937708813843167469491782411261125971600252105677501093570062186601638804228292792049819821949981058205412549693091632946217621132784916314236192936897950207482365470418967112575522414175078486507458761050378513442602794089923970975924823065710590146426546802685764668185950416523455828458993272148344059487830789825194885228608719087528817883752349955611134466411783869396192575847180076492244656592140766960565006434199553158575183090925791175026681891929800085631346349065427566624148986447278030140448995874671633574009143139148515876327323852239412156883664681295482234553511799846135535345318864285988524674283473577150261933504945298197818823118494112025802870095588467080801175293755663165962384453817318276322995674873444499798348078697214576652836856744234085116821770337908150458107634974434494351878798395800779345441311218891426089266118568380065168380626016389290076749454983170624531441894934511373395262872769229851746243681545974194344551188698167670691623640674102706924504414232468773547202720768497316297431838456691509003575597709349428611079256711599114655027746976701643357700391017398582735024104416194417558188183335727288287200115509021803877343903768007011767720890572973490003985951406993260513849835676446930931769468893375514268891133111397903340891561768998690052253482748809750128255938943330630025401071248035768457445691740636463008426759993243616207279773259484721945369206392398054608059057186789600402192948089490179683358136724125772559099890844292556859816187859365229463033969252316890713061690337514183314978020464822264701159522502362144456167105187521519132488860227075935191870841853650674145775545995329990287105075709921020511145525271429653785620230157861042510056513451457121498499211251581073688242739365420353689624743982944949671099419978942590497002029177290586208812618580830917713683490522906808462803480978650107558567067537367531159737309238847368713689028639368369172261448697801388294503467975442382159382973567504774683171506650747213601240294366756080487868148562107061321157156053527125921954712890964562600110412091218570527045164863449587083594906875543405871170091850677563570010827301426563333358591546152925003132940792251974724657771241843465873257795480046109667545088644101881054345857252522090737013753972246717246225577872664639743349331566253037448850777384278140881559999297879738623363783783773876698688677817724263960432130687876369903666414220938686379875046407218118878377111085413275511892989169126941254488978742246841735028209073970462751140219112026211651555578249330591532565273568352312491837117010378050498907447788195946444224926270966054469953833084741087953322421676668807095736339788306075782251557515772159102151193971351050031315806842322771960328600492480740964354019713046644801564534938875949718754089813299498553499654437840618692527132818634721784075552376743722779954932865018147279168733049164470606481119818487409528693720134427239816579142343657732811219635467141156800973434198156439715893416617593677735755468956296838949139597563116491842883936827012102892049244365697533503470095904796842601106041392814155765804779378010776469800822628391355599866710171927255951532400653568720284650629140311373608989414150343073611693459299031384477881383605899600348165175060983603637867647852737892320353417376619086983484339121364184797960977077245096008734238813602795732296431969310877111208866895872238483148016275446363953206287987602928784010949973332559500517302334351693948590817979984433578452900409894469612317602035497054187208679837748935861470228080796879675318678065337881195041805256582001076554132572898637079980408451089436573258035980974053282230322808013727722910805875627918902452007932202223999142615399114367343919698679684921678775974243336500104230981354274602001912950059575980179744933720126275456723646683619795699046882692757690441547884264730902061388885331390591799212943984611489309603137878097876124514607481998334852422657809291919798415147536766365646312093372011409228302550486715743328070879710155686497992371415391829549774359291618185697653528243861277133907102382123875945716352199985223095119325462746886042421697043326632402605636236896413945049559619496510208300718915249460728671218076818610691786343476396695890001747990162092275447905350786116005572283506959978399710657673822109898493413134051504482468588128504003488465439878452072665680596020610496278365553263626678451333479587913966144611561069417409493846406132264492285086132216074327161156848756570616816239515610676769000228986919744242546931952861282614987325726525847698038535549273955427059676699899735825547538030999174755814276950051785835550060009987808867347767306480770588224093709372447767597814171146854283607994429809638685227605912778813447425428687764944701908579209534214010346223248312666533208948611053381290746003433358037550306955595017020296050422670545260056616861818846892117101879823326373670080135142090193611482479771176111869833181311095902067095116586813632295836019492223279165433895514925554583638104674961525475658758500302738847874652748595119258825138830969460708829264688637649389655252022511194322511517064059280484908055629751702123716508973658614229617793149224500124458277039578172445887697432193337097368773276187285948282649421204830426661087451104045337110605097485416459400430097303532869458653156223502491132783141927090420088366847130542646960884584263992969924503955660130948265247219931979927718179597149805390930994793852430769367501201983480062408376122325873325874857202662737444205717997475818690249401309993303963186528395436205808055129618025199036520494830206279555851764819696886204211763741004881013170160412179046910817991850784085453370004109394313465639885575866253500380034517379930567231189303958436809643971982651178100635294154156707054559405951124713213264951435312125939610113079039065779304184885852035298270683224668615949254230248547643376974282795342619503255170941273395113914612030956624494917694560981532107111166561953122629755398788667361704934242034762047843354887008520113988180837177262353184802709955483365602912542439007030461520225076688127983350009530041365396905140919944297782132149169916568001622537305611247475959691388603941698613596245461446605906911273345240605338452307128895669410617496193249511163175866039255029008787154399078477773843151854116458370153118492496295118285025728495051667496947700668353425073131669828815123699738036215686792016209552104988228993759573779067114488283197747159569185937035394885750832724695224754720901149583947335944833703546579564951086831543965018439037153210446266209913052824674930664816521012397284200030472037931765027627788315567259967591838133395940045383898346720010929486224503395137978454290974765703399735427970484957855158746614108969999848444204586979426529056695043641845357871591241720956301257779188220096269524603829219275234762842910788705573373607403187185048496214576218746012893045076997065120693755472952144451189129242897142838168690613610139726029276131380206214618036860842734438589520383625200777330165615344555203942116111574766818372557219450370594157142667383161759998571231357707365994852762509609895465240962010480798393743182795673350371027937906712924105956578377094942157120553108395722237638728211337611195261857236784864007940518729245699112121654388435319504543469198953737784005102590986586118291763470474361711992621622660583700349688261003946893053633488907675658101113048025773459772238831075701952430789598807384040325347058347813911126673428717808541251428182343729443892532319087283261012995455645886057962454019876090625517580200340987950757490760685778271951582866859803438687575765243318544203618751829129503988804704738906355178979085270393738644697162699107969179416381697528006055162001100582123835311072972425503991656207862308965088255964172348450848083250376593101050582305679738847558049330941662478491381139325138986000368324693316770591726767405172006828520679782720630705185617508623431419343396628759254918410855637194974536069719368576417371775665717274592182203459238941871556986067687998966015944168982909379040921700186750079705362729587579439372489320187884001578819394627219561113967127693762568485314596369938067441873267305860598371121891423244590516977323455460840179164001211049906225273251997840228537048690424749937836791391151209118972554035157716164728063805780366882767897857741134028019979435330367378852586203324946183974802372228924575492264876136323856157973102935974093775961187866674482460485190585602244494612572577895959031897522028168796861958778748984232514110309942515999739192646140464231864337224245098052175674457985622650254603200980751052154416545140669393269814843874165735701249771470072745203916389576294149704238865164769462646219634910588174039610484156292882726344391898332492559801690982544942753344511172518865644979281219031595073642716748469681837337339921393896013413563438840817564626804454378186242020099156064053693868986830743221106904788534196385566094921772157871724663344738783000252316889352622848940411872703162439185315775443828539427458096011186281577265288839492908265844414527552929311587610270550373363052218845610740228378421776959349200302161115098244859988811448294848690311491723005309259611834945484830576410708085236349622099846536497223766312266921526079816363068423120721617246015588396882471460684249181392429445123788639304113782932856430694510431388905301657390064278834306423455502527589212040812487508096259386769909661049274997387309186669714446498813609562384897396533542569392413925598162127500472207665085695330855717760239146945891243697185742721820075375796981571120843945919349065757131827934694338346201234535872388765681398975597468711655575834639949247314599389335250193476865941160042104517820817862134611196319003138784462013616783255866961787249965457337316609088441410614018618922096354079758736489952491362363073460666669766037424859347085763601967144117222522334003527242221122541971546760640516524654374505465241475068924368164815498378019017478317120545584746427951400211393976991529238556469535557586122291056789051270804084201134195132281817019199025089996135816027549331242044369644213111388117661556329403933958523495049339974625431574236893955829871768754341119934379169560630550914784089392745614352763710731570103041698117085270346329567567731642323181030035111216036153578333499523445210432648691868135789718330740913176578262290377530490386219809935932923168603044054769789972576645708306109697667436666562990545480615167422434238698709083012073564568383600105110656977206368497317658706340839908914435178290711208771474609616994962218536144468392725945358569510072101251338338347631063586688355767805273202919882182329644834282813642393736463302539141968139157828911673115347763953040739389070725507446975684288590447692507585369288022260690201707295673112580274286594450833891045942916332003516517530253986680503559842148128139116417763653953161638905832984138592458476850760449259621577504489844536179662823332098003947744064649009487709338818592038674953880499347257892739149283034564362116462289043045071921728375751893254787549365316117746691141610000932622698507972934813312963178833007908945591091796694496906641113736394237543930138987226183051126956118021285331699411324156929034035694110788447544091373969228488608044774857055778002875373124985174320298106393243553747170239786437285252767972425747757544785013872715799093446160070683817596727516544317818140395844629457080649078332888688318115366276211539497825728156790117248108144944008870727273984883161319939890518838846353376689129793812609115645714531060451291867644350597301324300829842062893376642960836265910306825483012986020134896398183878095657298882899176181088567833275629451795613484626777405465416234142663762946186813731001136901876718974423917637879354894662554064885046602679022013202686827573952561087119463302416089405375598528227246783317423934718807673842840310760835474197960184465994855041330243996182639336596163233273213121224357411618983197450888348373334643100055159542845213273724255916181480764092300739452274524416380888204605433658007770492805797094886336048858609597031790642625024037210583457140965114863473273235114692950961314443029167289034975178149674700299168234137797726403748120881133868286416838083188169936971413704593371675510766720559748885215088048006121209358915298096411353441909065438602806421954375566696998807250878801075732433832246703014296879866636469932253451971537417857937332442174739839586811667174272628214182596700302507634281142524358117842508128115156566645456049309828618779011434126232697555536000271068964036647695832376185826501214839194753397403223815114783415924094321332220983729817312264145179741267007667959109990167065224522617112727913778094891491267053205694278269922432969241494979347396292883661585126311568396584953654995292072915528444291582684169389680132449059617689685439003674615658034024478268917038074889878770991173977886960455864423582499700070137816448648674429414981908922714155993554280534368656264978486678411968261675295922076322266821831082472767358082095123156469239608637007043716231963918971058795903060514980230083223047356868486655517716396714729041306096187968800094376023218170058611609502041690732494308736599080609413909318032408128236439657470962173392225774560256544079542363772695717932521614353319134911317131760695670271425711156521514675638148108542316564717573203382577377197198110677007518495698013573403953244464506264956057420588696362259915332917711523495151939821381203306977153458441387968980303304788233771269498809468354534612006296895240645515492546043441278038933389984339141126815240105383071453655575512808269241424425338181957522242906502027613091800597536052138283930517543534476113893102493914997781267226050544696122158666760371592467299342197045176446937130226044991211693936296624485280018352159617564258890439366978711608552504668466446240427500001745918474078110451979147051515390768530728478161768399563373244125366426524578488241414078499172139198911193445774030244876921669210897020604370102695826989139191089049976581334756323936189355311302653508706565403553160272587448437119626663223268005503455913593876532612136167781301200386035226687623791365017974051120013443345948430090699321245362929257738583293236742743017841203967561010748913647412147257351626422066429926768245328792415026021762629316677346249879165811450890360474854433754884300258796053456186007499445999828762683039181549752457108205048906695760367823988843008694537333545356963727589148710986055218039096853594812395702455707355537804022531019778084481817923368088363069662024341860638115900497795942834734444169195672449231237603876082092020501124370869885936790476815559828598761362857166426026456345542120533982201842828101501252780786223782879278852661322128491812999188347666136451860822976447299409697969773728409022844155735921673703885200931320238198100523039601348127574851691508214808145872609815863665646410200651542812534942028748043696465941149420301081546833346994417342616505727644093001633236514582731816059684366658652731165402356128412425009226012318049239767276891194863122997852456474632577540076484860031486413042588427460434785957469967092534137403235413797026866829922450919301535949321589023989272194138227139599031563922482495592303848855541932580815520239332996108593772892859436967707046969110738238352007073983538722771784887468112363462660586453251052135291126265540043096632428152331858734755499836215821416367892896115600393261241647957546365141034407066366110726356180140073523774316246151701354174139502417628265117792273478638173121415627445734963303073883217926725290833723875969598499828149655286685743742764545234735182548302284391516666305413607328634124318620043278750659696015107386224584070595196964604145827166578757856368431356937556774459693205574017284687606871204976536993990129204913745745226546856728466837970941922997781921691937133874207729375988437699607671953791765175233168031987514881620115121557913751816427259145797697809405216446156936310768431603709452184279251768151570909925624228341121228781367067701355103831330884084673417753345072898641605611903211761635165538622342844299781141952837686789256022693412432341643544319057065385807227629793233255553190384121688351371275483203630408154003698492403901074749364159004413859725580258776374193954754963096444582646601278862717190833646556711218944838184486932187791917062887678221743642656989458138679188477767642746068560544376963835230502227866577287605365841046318528945898780184071839930275622385318856709078391072732046311175453404146673069585326137590870474012429603875996207939663312568200373614148009758448834170899746874504713989789941441854517044716682742059375082534492027179648534542920572655604695256411267301727893146505838672190115226044266164388950604248690939347220126768057365692697661280219155679673410407501177227777702429601119424499676425995383363498310536631417538790436040676327911224950450880525369523715943611586110375267289408353535738591668817015712963717578501466129224396768855874032334586682427353447392403759556637827687071711927960340737462178837480632412207021568234359419174561410497201062031297210011690546859252133507261111775784578569874326042170798521529121801607238204720588688559201539563907091247480495087679687069287278184707773756057984025067326626538135223975463748107391922110793672371841166341932701552910198900451650616971079151160596522446806148555744637573284396290395665892171754889864741731558703778800425187100748670345791626522828701807883653773691363869952264602689216647397901871752410484018628838825478379910678483810440268829069292074052824815100653946494461420431132608341018589222098650853976685339426310152977293290520357991690969977423150463112696226762566921251605449970687675929879760261475141179979374245636177099332741323349678818695925139205637496289085081298258099563436209007805439417387738000874138080427738959777748378223826231320343673792518724615869459694037949688405515915899321808452421746946884492276054849623537531217662715170956702166054588523200904947754556974405406760529519447737137861723994218931567041997589418021202903074604074376392656208194724637030854735004192439334133805297819669592119133675445182612196778013110826888894699883570795816169643033424261092384513859621215943065436997605616873945883929142277490491429291269226093781450127776626861811713545323778557374716260531150602838687661730483922441393324075942230569005108124705115868900174076155752775402958305496771361077228972427232152409215858783706209020874327095722183117442587795485669699969656761609539129156611440346432581915240079562805621390715403399194721055193596304181737405769820373151735048149670390801297096738408463412658781352232225460117763651773920280437392261189433307497058627174910928945255365012429326499202336121539616236246117532901991779495378180338045618216224921264202913854986173446485886958415202377041838434423243769299872329612520387293078974878068144695641242509010925293501376890586939161885919994339251183983234907133989202258019606324467581032549635046725516998980971955134616412212203641610943038762242861491998690564653841143483694368215984739166630136394278604285139900632403957258767564969785336809222905444291280591817034059610182175863213846343009403783693380173236824939514728705105870203204060868425709084667681987311795396564241800316775262623183957592569125595847278860406719016326327092972634773645445149357459323316352475552570386169355580901965777846347763319902942760480759926686737232528711436139835485413234338717525340801922054258748227433335516587079038967883801005256594263745351388628620798913038236335344122548090482437191579335512238198055279954692882599107065369808457505839327614367525317626137608601154368984600316634026830987066697985516272727350601553444651084956598342954698605268894823328206612048608471132419039892451995320072908730507552816259327947834863196249736929268339975945393549066339249745095293942307698673609188231116529539841797554916119696192217058534659539594235064735148048349785707602450448100486804198531732756337492953871435130705270229752745358845934678025444765862621020290156714141976478506005253512255798524653976269633361949863471639246088653489338559016493151717395005015196401144470304285532918097506888795536356862586103585472295844499858501925086449393617639821278414923284794988700571251257466866270333644657121103229124510343813226426058720781960965046279136520467853634229254612438618898346601510895801976917751004026065235126797620798110420216187065986941351600975315983606979775760550840743826392615031496081555380693449521899663338526880648526822768396793515136421264411886497209474456844323821770682607909401721025499794923935427936199062440342455986502794756222423412506436677536268154428066076400790373380141054817858632620316930163113094335186921691615479866810774078492733519346449633630450272374315828320144942274329381412690738669652831726053295442123250192984160495973658825054319795530578718743029780298647367187333989304322379294820669982081819706398699799973883650982268577527800256897854266535450370809155184690655039273986495040158568915757864591822038963423867168261354627327232803733314311894568585495400642234695974835085684006898868955688583564734488807635166056778887667420319159408468144179299733448186986430279091387718791670784169494006321995551720644997409986221200963767889877300094489411330464732681780810973503621824955465694846972047554683264310529266268111517231520215679002298896669082439787443639141418370359785212032643393454669619967260767297330982562464373169525865650311965207468458088753586796570869851328687274714238816602889258470497177221771341082306558841090774593310409963019136979782284156874841025665141875101655100854563363013254876894789058608323763325237753188587320632388087063818828142699619986730383604776185442922711408262914755442489227516083867358750646249899331165946079365568211103795441988557778245044459426552566206069277206783495877488621956647133055044291552112076873207064080831902105162596574734734493821001280501649000160666252859248388146813689004548363262431840330824306490585352775495367387483421176137302704337016086471923864226048951742464189175171813845130280765997886231124786179044584745085934617618139693958824260676046969365531681136506161224447336981514986019782492632500511047193431030138350027296278703627584999836380804082556158294983460124243137832032318972026784117052294224150311613157491105712918825159811056433807569380538494880448935532399719733268498468806975502056674863566570017098843890456863670151617698542913714260121537461641563841779925030014853301912758711895182184418872919084983505335070073710841926404121686663892805856288150459505064838869243583205998053466612946136865906942609509120972033287082119491926511217620016566679921651270623235667961552985661426953295210498668050919808026015838080830118796272446404473615393346351708170084998330430084339564243948117563701094906595506405186299115807324060235940459665001981956758850976008548794982779857850710224812518574631595290060139667275975995031913717981671565325595297733094535819483175302493834458211096244227213205087595847476551850055919024416089278517974059944225884342529912983055623396121155166860744752355850779103067474284041163557697111790708744383458344636655500614350801594365630923848589805287536930598047818847124997026321664130744988335211867105905917280189843499517899427611628588768319722611114916776109486185113588108232875230311164940972246665607909790950560885861975598877553965894192695849590954478271591221465234532366139081638474965817593342295664943858360356128371910968492999604480180125980805027902859891231865814728427179139003635427506662957323110021810425022603399473051985475727218391959987403567147771086241550927495248723643611770802627822901008719472884064179229649496066501610108971123841259603984858284777942214892066716951108479644630473702702135090678798127546140130746133483717028718318057455929333417915928113802148744779765790811158962844492703462731307158748077795385223491930703654583103077220468955173455462160051797362901426520830039364824886022141523603435787755649383551124720907892558908196220452173479348598222062288013566287252196808128455517865489725400985300628933911005285188403137485850009695133047054157964224756084693132254903418328732966452424995413259838695901586525399716845310388843766809470939648647515486450534305169704755803912941178618283687810807929223377926553395367327173338239537551624727549892937581146197762461458657559068215155272509285669747318795959286747803223405570168389084335964567543659792497698011539446638939910914497622106956910194056136614047660441983816608732776786134607029610077022884611297793087527409099279430227653350747348195293179537866760148664151667491077862363635228387210669864481279274297158443712022561783737691493493209532092439786023340923205101975928638244901545501848830851793853184128663246783844570146103722943595710010216085784741634867474178937337894916342896333099413020803333134013608397456271897311002054978326847633993996822509580353539059379823384556815261982551237534672702090376174504698975526408606088004212969595077699337752403822579635210782690003418724282626820845139504723397032451349484460616612762553672478329519329210037029544496886699003959841049276741053313759962398071473062857100914136553517991721347066752148173922296023083234391406183987852940642723712707995033911908279290738800985770746285018225603272596423643208745447889694936169288845711895236070610304545581906507033923709296022063327449095519872994121865396381981183029722341039155707192961308526813918420016251121712113657286039560062964628242711327623453247391178061361230686052648732654130176110083690442736685510370171071068282836626306257577593330488738034066107648336947699084677838122253170364098533956655189277311802196529765768230091725495133627286889763108559967190897463234618051898218501945519837766765273235239492546378547694808411977678864545511583342370303274206334250282083822138427122836750950963124201844797492995760583988750092796517060559049206682763694789455547076859704393277736502441869363525684390081584348965551286585770885572732920681671040103756023773712717330404025504197782704369216546012507782628746169183131027912134931046369445642142478480889097994956256405795296698445946736061011544552440659597443388975742633977566885613214059802899702232355268500733182124312188223881468911820366393351774905272859942967957878012275326305696502202782582861834513389231098696947651215468287989203865999918602227768791469629114657795456796459676829461996061419311872152707069219174841685368810872048201543045087102195876985893510452373036152366251124136443191195953342667138560719053038296079488493005647561689135404084638332916527883214309470328499409749248971860951219163480491088605495872077409455731878351558362663194987181566436442284691314373172007369106870064554552470147811044386488106995031478019457508675900479663806041076818992851485329304615757592997778259527412143673140278583701192938272939187541152603230135996510554268142140261513542172908642734879032089554669691531817412073221869159557945705356426014448205305743310182218069831677079818388116367252171990830727730694916368210927227145940928485413348474378580893527963758457442628893415851472842438886915444853126970018782391138472548627541042724465006729018383467603411809831048554579148693731067258253849442794704819134864835047557013798962069635740385382292327370708343732894801726924365521760094519348828447205989616730035118056706210081181341654372342365433796302981848995779918525932575114020527363030384261895704560722345385445060872053635994615797763346460704135486956321096886886127448063330477820620406586663409850994325270308157854038427688401085597478588949891363946888604744785530986458834482365760453207225109580354945672832910746009256963797577400825943551418586462516783145743671848527978050620021489342691456115502120590403823410492111027857975739144479020286456203457136860475125580287143690651224508972821238527912807138426192448728022167411284012044067089200819346411329651555634284218680298928613291410354198792645585436866921913910441005474815362958023674143482454443787047352909821952777019460495742661857000943871710429754237578542521712384689897089952197332601639131679493117457591008383534335775686736244215879733695483378618132349421899527168059521559589342249271538113233613622886394565677461100886855696294366393572784663242442739287937724646341406071949933656523971522039335299406032803503859422939289232432515523953419450320127119784699449035914488219023541355008962926577586695456337869062632721156087943633128762315928520528969091676259625251565931999955094964528948035406485732788177639221666060102600398341471583253856478206754808954338153729194807056728723231079021968603932789962870986471015866966844064697025632311202809535996898138317720887770114291900442518952640219728497753459810642692447769880745410035650473795781359085519477520110009431809710746921167800948512663084781161732634698588676992968348516405183806238354011502857266677986183353562783640632178189807971437058475166583061676385388165088321590252498040348724475842983080302209444284895869741689435258282738438556224916230845530495163510900534114455107139604020889140448584220065698182569455559834703131079258369290984825798500903338758724897032261631130940333280301995613870541461796450563149103593588056801319279110539885102974393603502807839596640968727848915381535071030948961390374911490141931156324164555278550537971226550761603743261639715425955616420694486050401454871729433316762343879014602387350891467266566196688683296233252706653335993709936395582068554993681144577628853093984554611827566826520253292017687959718299840366034031816320605985061595995418427002148469263326287904588496006895019953298921815793984897557216200389730787379914403536788570209958908265557453212206131617221391849666307951334086025484326807751412348398269256387826967122001466819785392220272568248828279654045266425775440669997847176948459738242871119774638461336014633875570915286132778729296261991052454222524257547023265153875763146941370374772158612375157857189727343757347204335982818600865820734214339341341069243936007396434461330019968137305441458459133652866145663553187403187559765914367706811342843261093404225326076857479176898005457430392197441870406429967059543670951149506850518709816395066819373829650322053773763024552908199194136204406182628252819885796100384020095946556469012552982152858351946984492465990144030011968513226496269752291214172110976744243843097383663356343580423363947885440653610851864522744652018002866314582226428604505198961927292338420812813461985273488806470636839269077357605792663920780519904869072240673838848636657878329251132430088374790958032629012000590726631352465162413864922346739389532973898413406294470195965557951541653797799461345912656115130205322814415459457645562159305444073423781759640788846484160858841762556734975166916938518263839813056793694693166182674866404922748512123388934186570171417187927906772108415943075026052002485204028876575425362667170761697637711856021816600036572713155036996308897241423451151031648780458718949831538424366617030838085455683347973930489696915374144629643884881213931835597194945579186721357403282504282881580760690322767809349663296570385443967473258943484609152322331747641028184608651452793129343293547005540047797660482900220135211040444954610388738461588162401483860438698265548034273630414069667619925270409874832826250773489309187344098067965791164449147254692188094166495921425988324291227858554819092713885379011178309928560197902279724285800236573857177555511317605657840092490588060672960706414899575302325916040014735070872384118354801184735008423295090096171152995874115984425736315993048411668630756436883633320397007236825247849749259950740440196207881577696882426829763842023128169629085671744925419152523347852759401726116645253661787813638543853584392076477704596335436195355807242645411833914136680902510961164222496008245591361279491881773444514723133651880930717485729363641724828510220968093248122545219735142716028986095438104656456806076197131604263123780997948531143321809179369415444233235050188610060311283089117586993189219234650222822208095579529417532887786809939443113127028807997676250773575502817002460267667323545912086625388734829494045985906427370831126894824753775509981745033076252171512425361933197498024336792181634038780139376623519767496594048343506878705663971055979961192752634054308226518495784249976750682816696176686392868564098890494809762787740338371619950672929562720142334482533803648126734388646953978161603867118666229772451510947004386007113988880278991708711520557011704167739533761677235801000112536480821921170957682903140626705640022866814890641910442987929955592378541867052044732226910072347058944324999184833145099548719111976003731668250433692763856605905740704393201712553244396526115967832367488869835701441974654339531611398374507433623614513286138145848769742472851246829703289862457069657670731741781286773709409221705699962686056138808888754127027621613337711725960692219799595739348594590084200788789239136902451782225377865277329856633076241670833363850975579499025529183607710092496321831579794119314126090097704485437292758400188867018494243402422218675154636158402254002861757812635247907904800932656870129761338582040859100485401245281805514937522535603290967814719578317818748033261882342701456909766269652314060236901055692557847876204060691198411817097277657563870783088318936514332318983397426998693571046575495932601745903397607749138212018661057218435850098717803374950562108996862917825570198010619697624020329474865588832562755323311242786470001574159878640687676014365197293642460913210778894093419772121390272745573369986737024457532388336559067072815858399602794978567144410429554201271366868981958587210143688453445849990104167016706284598115737415790292486606748258292765582141693311462941443593343786156206807010426238493538700793477201589339755686246687354523163199270332581305317574191390525501529064843829825345788184274288417138873987381722570209166049783492097976231294405024136979236310609636013601438819274994265705953509619079702157823787012674832726804081954884265554095238997247383361664323471852715764417131668946174690713786625218045957838358782234605921683976940443908365491974771184614881810463243432300426339179373949831927895727333690673902159878504101512906628750971009593094746800616006823185516559830785476788584549205979754641023643228834642984826087595785266665341333743017197535560598532696246838650366034166130539462081477487099607635886377836775040776139365498089148062426960725609349609907524253879291119626304691624611495432383716632447275921428326706434998934581205391652461616398839194420717693166634216888462206172342740857854364707086816887505656638199651031080318991506528110316364516769689487298645640826943453256031882986004950092462279685628208144022712462672889401417461500930618115467154206865223740212397047518308011473132020231424879286350443033355411743252547601058073245940214437123373527734969085385860705758382309851667281919650418815562931623353198454231525053972882750601463809711082633136794111321529832909543823625070526653395608599769589812873022659488328658344074380045329467045028251005727431874535050465733561668192919761174786692311357415725916476391984916353274130467248439822041571744500072704047252295742587280119706759604493926683900381604992813526292851288767415271074886037713673891218434991682327781543539412289242134604308834768742326686304562691073576347027227580618585568035457077546741553364436866935371867319975756749956509956639113022199949408666356558667914309578523944352121545764040077652785116474253069024758675652204373993691554982693688438291328707594157202799541289863010238408264021979817766817781737293742783496926921372560464036802588201186299767641783205893080132587194116263355130338271967686662061661522078485729144643709288934062114510348557862045376067299233511795504977064997788786942234149729571099129441173559948610891081318545850556354661458988441739067885692150481352698761453017882362156553915581712436986343345055585946993417996363412303298941715980611640466660896153928201122493492398039150764168730035638398623861796659169365830470737758601342014045586292424717513080491877709486654975770876558308944726493218533368682363678404807664007971056572716569460105381078838885464499464259946446618591544346203228301433070431287392249229760667113300632549970350301321568312130553684139017102434314687799600783883962655337459439595814378610810036161869902780349653716536577984973347876915691680029701754624816703994405358969828503163971737198585118457942451039423101279523554367726527271823999290895018186942003023260344146048001379687569416156078991633538774076661738506856520130531910809513689322493904716802767635641062560385492059678632926404396313758073905961905568360614026308834678588257206457286590926354171265719881645713488163232676331587096593975106097378163804085263182057034893965061412058657455347551211510581368165625977537452470831965164494803547402324929574185854055357377637208879737748594243025502240267553377677696902658150807219603982190971045422716929490767545996377846717808129334605243204076004888347404286256650338114537116572319590209104872307504150627222922250009228748509759748709910050232431873755104976908412349275439901361297036159903788867012229727658800204861859508967178793768871330789870843159232183701409891409633469110556813561533175190541615882635702160414905797201330016654725166719949476155537297142825685231380243184310518448339277624181289072532941791430323928463440053522143947431640827355108860274506944746681417740547638514073239187039227874339821585125249717015820128145429885075070182045933701123987327008942486572147581321633484433435469719795638372902618929292489151999371593349518126393587185620631664376069653637157190138891462829019058315775004724882000838597298932627185989048105925103555298261125750299661484981246127411406397650867102088146275468798896075768469546266631059860454703860523111820284958771682858907240693161031527881237908111614630768790634712402800296175667287221532057614586337040816745802156397810715313442847706515192645367575159503749106404917736746456587151960866196306025470486399606646988647953924936034133063601802525249929018221419204522728791895118867554715411734195806398081780043784828518501747934637747340400357070329083182438226213934084784368722133351396811974092789685626790326035358162948546129793718826053342886017704646541019354657678355827825146362253554711064939777702615094597695330016695163368273986745610533849756751763068439344615232410195550411849241218776372835696259259798424608614567741309629984328217570866757279523071639151721403700059710383349549719920775301066544665760859359447454854583575629813534011104214221647826749821165581401467135032109288467878951899468566368575269090241380774175002145581035290239961171395788904890737403793705571928500436838776493204278386214104693253337269777761864484301676480974740618766931272528401204047412412644151873900023985331253710610044874241945995289592307397947023222636781083521674915429983203011152566981584385661672650800307865000034974059003158975742294654531287449999370314571771004573689874953648356002480749726424863042262217568732259986697339186053765487994262654325133116780043111148914873312274584186056025456027553171231546260182980194629703186465478828908081023263572099832414671459440155656201601800688598935831499490303967290604292826912622113440272091695120407018878328372553984283251582406868112244731390503091806804632444400000365534642217991985563443111287586179584278363905719598024037160221770431726379909226034486594181054155818510885645829435876635377281938103504866097474681584970470272997233191597841071934794260952231556482673787978085166195782812043592849194590966272112324705203332944834743983472998487338376849285459401639682129921639201972616691704491968779315297580728288345058660080039496850624684076829308388947868913708935819150979191829759998951080714395129137052568473667050621862504138305106798506077510709296459903396680893455227014515662368340427373254462402574490103549890586012136448455954066573453984704389819618737457119447912433641805517641215660783671485362435261598816370394902472550901247811505487746084717900289381739260753113640937850293744368114709893758390503246224230195098785463483567982883156237490874181394551700196678327926850409397788064141350324103921787857109219894805020662978992692369513410430531676387784688551399640379219096756538934692735576473050198605465397117029783919242267425293178884182563281630148798221001538936795910889720414709338077044932028930930031609995332853818826739784045407012649902161761295089516541621921601054450328334770665804831349260284653671628967881205762690400556335759949163380461160974441340247963091481653565987273404386852447623895134895143091844210925720989252194375497923696598872760322173654408072006769343404132116357351050134225443656678187966850358808114492194154744912284559695161753308885329166810856372391128588962305173511683695866431758963108315419657108090433809655657353383262985966933959971490100054291595332742925513183171784398367753377798784683051359799487210600932692585452716078307699533625526260883322208659789314063893916234080058521416691510624916306411995578672684684515591960606135833019077038616449074563834360008440235551857856056015898831324866536447107754337554595002714728012756462827010563744983195250900426903067999190818499440342807845619912866787380662222624339871598405556514981667306085009163315329883841763879283584899512523877782264468619496437125954763946466695802201472060460551752973898747317632065756317658807934148765642476541436177252376567370530692039489037569990292439991213007071955506460839566909227844749808474721287941666767320316422649254503790480843050144001139825125285090911299358335995413356712573130565863457556290161445671697458015661302626079882155248342279457356132622487077119974854884241933190254153110349551790622477273461569269335505550725625874926017774051444821298812223187424150374630876223545707877585616509407020706026522887484037795184339844657952803461602300689111149433689733784509296475166144708411668603741282901117365966835361148706148475341742428474139768782290836374247005719518483546822505114069315215448427145425348037780772498575375626900325122917849675413521235492212250418531391682088976303829164435553256381195117059523189111867943950497190017691181111720667895118777579984781200975612776050098502528684154476704417084652823280947029687056621897854490159275466542849874521980268124962003321663874109560277366511670405657317799708193953149225320830464993624491242663143854723085952272906558711967780732903962661749499782421212477170972505866529887275528480124556436240065126877897440209068449732622135913905107356673336843973197911753545890108430874363234326605001100115562042074353284615563768332639555631596818646800638505782182520855942165400198569956953373124647085414005178942783926301232435847289059365380359636258022027701379393671339708416374965690338610624809265436278494716087120672372852520212374522879850538959100072586122654911557193963326260997101729700240932271812539440381213350050748216082424748019716633662351219092804122696312838120697711024926143620954790903428519693978603976516737891762294999846512369071607327337185772659955777522931882710626780374000135587628438353618168324234925009230436771203424075518718451217521987786535075117163507984777434954123814595700879318882820011030091699663150795483610699260750026634207242111346706838609573858293207050402405368482470851960246449732613811021019942049237769916458117709768379717237465236380317130509140645772195467399140132267727791884691146317756805331223211856732423237976143045422762807969901940121144474499541763433816186572251639504518719697153008796880425920908390453392450712841876161049287229562887305029122175353970534643893212654576853524624372946572992117205117044464029140606501507079499490035337804868454513021637705088042207346214676333031147367654112883280195558594781195227853982893172532684770641594463042290452375976109017514608176608205036402346894107429062871474199003864473163766508436250335386564103183992625817080701748594177171417963000242854579063682930423384711527812004771507550718455244958908319944914040937957899557593296610649195672106907107962612840200546731179834052325195871681380353505645071780918898289838665718676541807301629424499545257966675654103507758023042752437070996119848540963677537506263947732989868175297715780549503449817367558601194673904318664368771639431842443713757642160359062941218415567098494243983720621940798595871840951823393684958057097475489494925373021004022377639873175181336246089499897138828682674152507096260377286429897060044416732580945394977543099747282318370647414060457072783728530132169378009389900777902245859431382802060732956360656057766572692168897008984687812596817035146301813587539899371538174438883926733018098853049677958941552067552730895064084770200718862090543188710710857849171680227021816506691607654026828036389799063977603042426564908900550742765297066862761348617077612346636265076198608530435121271611232729598115456462522027091926730101273343556008420154422670777215341489765312133931434342904158137224169659417590678666723126810259327210729599512474027668069333656428537259335500293759762281100192517819412243235504301184042489204712424372579162369843785858804821895535282516474409052047425284501566412564251892991927855069730880773227978089328244931688026805119974295526243520904677250614832608274220521719413433944387553575182038901101025933145420830126532069362718949184362219634901774773384369360473102401222179954508657443950475400837951113995228195208078480685232167124521226732696421199833382916256629129784596927741388404649164061551824361595507196878413370200464416085110321716252467513374000755417341966307610964251870222758459646752935457618049907208138502200302664807798765777445715043395975020501376633801923469903309595227590726077786381429642016413843173409839961558292457599299308899470725603282257853959254634086760142033291352882647862274895687040214296849924499430378713629524754645379485694677259659878161314918970835388946406178532956713461666676469570797519851509193741971463080828966090803014210542569625536960397665008687880057723634946185712965336876373110323090901972159158058571894949951973177337958830780708195263131811895947418720097701973177446783030990206894961068539098670049014632575082360402951333266640110227849516476854508696667895570149943962000385431534144862431569248247211704538681167349773696446374561757251679641391077282678420615438219529830582199064499077243263057566437964252566047532192674780486549038391916734065023075904229183747743233056354947931924873791966064841399615622373006074383988737868753347422172051089845227797756273802377524490867629322639105474508243186264601910587860590374044396323380506746815616150847095965118103422739563515961516964346800811207256023252226187647688680657076853574742837796840821600308704816414812321634654116978884637563849854743143308006238702330423455059636777792941437301204273371104616232860587131581086692598130876970390037081141937483310227903712309548243778254761791287520727393279227639198335563694310525932643441299451962480155929792046041541802264901986473248026516767762130903123708506323707554217808494707420895518302527285262292556963588115500177779566548475551337312609447294857130641040879238431777587724083592010947735311110078363279192252252785946803791216793389201462412305353469722461991099130680673130410606497533428224371189345806832590843093605397053040791981251854278181593600728803770519425853928559140383831506377684240384324065994456530407266425920811274556318444725057400526993491423251539624184025538549348785426936690788703534466135691534682719819895080560864630351534225241309018898239572130160784971169473886745884859336595066571448244357110240506643561035379398124445210073280907040141539009003739603922767604280898236664130984566611763395813588968967588590538566796961182151420234245794724526447221701196762319198253346701090564886318237794198843199275951269094787610358498070963979668442341783123819604473385125599894157444192280073588259409210045147702011861537578550981538802578066915108122439897081384218970658011466448641370602512030369558512192178021630742388221663282379503031644581746639285787725353292786355934858419036975528296876322184764902707415791294649533730841945684896402530982788348497922877279856751692066279497598291420845673570753068193295432631349153549235797737289681279992037793311119861818719733483824165017234963350250052759746422538573371381204724949806069213116368595514120087791182531767823289670096448798805550883763620001703879952917619228601117842356284708197560014464726196350188308405486826256260041756543440278880019411253927114549120419984278515798261392357399303480382843853469819246275886323602997966498334678299405409681630819128563473821946770039011880237268304025117923502529952544380627251449188274037611716520755955909133826137783089072646818014554372091623548228556073670097433969570141967584809800293617672238141650297724566788519937547389088450381845758579927110012587218760316243628470213872294818826536551758651913851677831815595109906998635903508294998007220206694371607498316947840352986145687192599832811087578236846928895176961533821600137383619160948511051209909336639668362244571601816106181046795915142525505020398742587915211881795984252675047948749382623411353404865405477377171848893429418216833347731263869102209246403765376197672810373363753068989748952134814280931792279357246398415691866476619279331770209201514136513032490431808048889386395858628088359764377437074631909371785748299995142287085690269707387674160696478553504837973490650003349446659373719023816055136478414402054556363385506471597452155886402711834818060800225150235382005397850509803379040895720196804900753273469893240428536056416830092337795821744160176372042801280102198030110653611425523313141903540754290733749662608413205248033012246954587326334476906884009395944283426933064484617322209654211472814740190416584922980532762604802922406878303720345141157275093501599082238840998787593038404734192366091150608985250223916444388633382952402161590257822320347500024860731728163021047046753825438976879092482879565433688719230550771225820140943750814032525235870017311298393590421506314787101573792637459276481405917770466042744061015539650036831463067669171221960640423522406320260833795148792767872493844824291990006838764033044417097688201421341071372822255583898518743518849646035720443902966025585562902357251298450167158736286959843320969738121605121679098237435009810009000914722583215432001704103466049283714728497461720679823433837973618668528510515993222805697637179369985252001902662277819333004976361472825293678924830729489293440723425835005693735812595790333866695945045603121066077661982931196170699806931557935549008742568840581359245992528267728177160676402362624194952690261779975464928821703027886610328003618322102157089840031157947253375839906155085795029081712293869579215676585405284776540148146996395585713489880943610430302183904439076047940450979241388853744664641823737393452668421418184005593546434030281526982610449543806536806943822617690833830958270389842393245654908804280872488215442184185893492678998747175822853099707703073189838549628362977657900529040908704271410819413355257855886828608060115147317819973048018388508952300333046184310961634258242751312439907604570612430432375894840268417841119351084028967018546667168206855869858682380486861581371606487773816801235429409513531339496282532795007724155095168865611384890502716665811761424096735283760728708714323769111853742347568664422510424479424391629484047423853338689143629751173268578329818753305272065520817589166613558498236693463842166964959504264543319365156629253547335135673486635351057961868488311660741525071640366126114996263330070329170587106587912973302825121688382440357243711231646611539059593492832515925136621475693196109827790126621296990489623455854917015024358218039880989813881886239897946919052240744827786493590502390389073502678183925414806424114755650215730951332181635766561316460125931321920096149468524751042849126685411674905393243068116687907943958768505122269994435822277962524975995027860907453396151812517876834858921319517111864494788379633678242878381526568056014698385183175253167923174347664265069451606253346932580763658875758970680293686547362464792108297016616829087532313108420643566404293559569435302465564690535448530203914268551964468038991215470362655880409403537206751238102784852420739161477236175177037915735071455650941088327355257688157517479505911738831811149220348317655694902474743256488592373153423082587232916807664822727026718912760736760881800532869347604185934063080775992322308658518463576665208730667252276842311337435280834162057970695293814776461501826046276067068834616809338824150171229389474944604330571820879466128119521282037384135701182784511088885692994673059910886839145827740677816202157592087770840627023586919712284639981346353296529392452889646835867665574076175065077425735038004201187556387880145644102404577007259860556936279790265667233459153045406156981156726864325482353316582455876360714571290021258153214956424945702179404513945733249271360267146976040372292534325815592812442676552152866075569965278846850473605278066143568307685827008886935315459393109471789020464134583749380791805036818653900414917060270138497177066426224518406917086215316440799524639076464380998342061361026901872277849091738546836145240536914559407019481228130699667773428060553681166108228741035265463271275610474348610533412249510882101517515782926433366272945233002545148189289867014979600221657987450448745526499624420394298024235371600457760755664195147260269572137167177234037847745583151682502903163138304550909329107427877554943727509269251457366902148773239675900288558622662651880256425756655418151151673104777669812237539386682996745994289449468599693768319149192424518987463587858169412980360346312009955586001078129451786453602030912918920442568483615115970062838187237307967388702669096932430975064175902243898885701104541386821481681087384959510118307798616824230837655068096075639292172823133753022284956162428929149023105287761412985308361157508546856002903635170630246553541895545142059042884674260260675363513269107365803238949199145004800971398425154175774940122862409162824762670462318665642607600782958995065407741615031009684828022647217077786868019627324354235762708035493553886454243720078925213064196445192553038360066642411930464646172297812873574579770204300702368455010862802072707614750926006632325273951203184399874212623502465425356021630196971999344647514095811478291224080466487466656262138308816694252618833530247111558014967348455290860018046672581341667878348540300636300036544876514540516457730623004893653881443293861264631447325219510270253638169334991118901795028473379479937894446149489906290429084093914850672175911583002538464974390793919232471109324718446282002310810216955924216648724055167034118912271057330031958654391648912016196620357513606411841508174181662705464458035097397098155577830521572533315632251938665961010889915014007880792620752357902661307659971141742200445042482984097820161466344825397716798382526591123524691013546512389743349637102031273448680014297659944043493967436884930704456008807664310226160112915566122534267874500030428626197660918325116810969464744053403272407798592293341524549579763058169393267160957443220523796618368442955821945561176846166872294497169442533313883660647384151890301894919329600991269203682962390578671066027683026723904433997236090190299493938447053114212070552267560296868465350634559701252106355380680893498994613123112247038258503013874818560379163844624157340294473115522772684870233658770611607350375146645200485214575452763166817345512886065854899331901267665241148882129556516973732976399824163401458454928297182259989866046083660586852571343252574633330509887105060503136252113475093745524816599494946518757857780705302358539527459156239152817458743210436244193804330233916891642650825434943706490905540005321528268820782935438076637581994483221950778981912951669380627890902129291163438201976201395985343042113356573238722752184183577183015139997596243443611565962338443149384258365984356319968632050007798777314344964575597305407268534424226847427618716543578232852492104805318748753742980037625526812733816891890948269931612286161313727728335441578584876040936723268331652744677872766660851146308877500547367351605162186747141638922377436304493140949393238563827883738484381420573761415560223287830699322559594046815116134972825546588230820909902580327819561706111860676096402751411199999687056923442004168587850214597991648071675236923638510348123660174329861800961882564200789395722202515877422865442458999007426262717346161872987764744498160796497258313969457996687629174707041175794929863474813173916829535947983369129940229691649656656784477953069200793603816455392877408990021948917887769713476751029496207165726222821236001370903559785722685698642664208953952380249026476832147429651073399593994444238070129086758481430094874236857117230097805795078488512169918787436421598670922688374418243348709641181266915699863669953242483504009737825249805679054180260405649961230517283529064063798000078683335837655088962531259561329206960620989391210631521035044366033128115213053805039722745969264369759223449363005482254486198344650606489564219188919940637642488909873937153575979763862368316457100437337358932543522633343043928574518939282604027343010174919409461554921071859471365420187681162544827017915214802317620718294226831111618790239514486230602663539182566815999788679715290962283707724834455010370004654883355472309558912130985537939069479647286399450953895305975151091904027736075836507872892456354761599365932474882430035914218609261571619164415544267715340434766434716503945732516703119749930288750159302709859868615818995147911043537132362140200733040483212172343206472294833260422402483685853067266625815931161809713722399163797008902129813097439780227869439842631349384885627097338390090107702818447799742092892347661098269528910963734907146626977057722609729790233231540844860502376740252134883987274018691388174126482395202236729136781623321695467760046169609919707396557710123536772341731464255385368527661831046148221821911228908367027662826872246517459642803055019274592692503570665203339403570036482594879672007961084109300273999308748407978280704589733116071828561417007389297242542236470002686659909983380687324373690847650993651345168577941555463861560528674920424716597379684837824009637698655357361998668059102690006655355616965373293421552698827495984534817901543762333129391299744868439882534765789835226152109910978820560882208605526210732558361825722968098455977293651607577046595089155005152213114336897623835196975450175819651630181240300609218265763467245141874116496274436571739020012932318719130269608521591508283801405771676281012897828738826374242790077224848124565892844536382286687498380174592452838437494913837346512001554142166747469127903278144312484975867012284223344348061464247546480043174850237020786985679154664198834801691002053968666972851900210871176325501727235665786622024453362972609150613052201147335320196300303777336315898453340570944744389465313644347656367062309387337641723183027872673176342337915473613930250681583214952328641132920387093013028455657389123561610822349372566546459425722449340544056834973705055242624004156610681831462748724297933168491271307783731392742216910008333061121536563487393767713278734993171700745525104785251579486503910293213879427958503342757158472399573822379355121715076481499488431787153934434910526198342451946490148050598060672596178661405628154891920524779988755272099348161927281215894625350626836782254512457853958977800232431149757278243446307543873590024830539276292419270377542695411408017196179515849399678197909674616001435264130292306643227189032190779199437798595887535492572135166154500121198429577157533154842029806439618330693093622169999207209849233351353313175592170538738570445220206548329753604326188287961291679496475014288957668257755278821956632817235596643096795233800543033099150779109265241438006629333710808021746637373392134578164305329867583856187724534979881904930853951055054134660354983144653185196019974448788444716566033400311162015738274683568206819410847140495905373632418338616332901871527976549031596150317862447719546690271947416749578525024629966876413592472238833777834916872074282546641186582681618111483073622049140170224361711618751033899685148183209177584318283046988177954187507168870360278093133612886845965844892785659763207970936641396213119780324366945676116582513087184394712839833758833189719431996298287690041313895575124400161626879761924139518604750926015486365506885732094031001969858052859666261035541619751412185162496863624327932964569580795129131115300725075223110862909076508021403821566134727209303802669693390842003941343697911631250733806684141373690897931521147556979551772879531553091738014193925532168602350500437786100390463413214094148385569111763094612714570430405282583107354776881326002099506720652326564024274152776182612304447535288076449985368111070679743908623217247681284792613936397307872668318793077918390702942014149020767346806851249725988627667156934666413455776758847194238280170600171710952560460770732727410005301812679291715287898877607988046884184133769526297140265942153469898919877461535863628588488166242674161177779253798760836088819961072483803891314500195259204310521060851864088389142295163785305929694547922181707572593173942712802400756692868314503431974662497358706524511478379583981787367792177066257588417236840587410349112903743583838464189566351173179878493346657183068132202275077988031486073229377008373963745786471166227011183953419909674742083177273916235866676800078960233449407663104804762721028326845272401733020831323045630686959377909534314987044867584715784605335539346731750796454115073858230489475258314711779986075332556848617466103045072105800948476023720760844442690359593074014351269433078293943111051824706344983212839814862705010745666674656800303816091773630873539845570600129064155004161100759641903892327056571956957091056541089595200286438636298179579427591266770180972088689221486307672300140035618208209642228699218725630466864876086003361480334651710492357368387169061484534373239981564532292199955297263518657956753720660447042015066544932006951357296040743661898343475939607355832872987684306319207526934243653807208639191384688665591115057398820120032486082100030052872224879096881186005544779455846440569599730550519466007591999280175522158813274374299933065157855183884433189369104633890085484945441421899411931117789985272711892578475737303595027325251352605405055270127594538773854910188080133247062013280164015209270176250940680930851215737872871847866879300398118431628820898064320210409013138878611739777973365138844105972586832485619092329039637525569859568503563196019308681721915164149297052049638609710927616765066539870334394992464044174169395008366387576836308517554581210225438519367836063683814071695747802460124071108335600092177099208593099681421081108757142356198431258066636227240345904452566248930967186118045248843521402338913789998124101087244523213929487696636601614175511429357954048611418740566763005829919056679631230742543617907190542438351602313799790692940962498738283654148786053424877721861143333289478253295416691876274850023086313392615259197406905644868603960120230360472892282694686936597845785159324730165074887989747221574195981467097969085348890656534389358476339964519223628972756841709290436690845059231791900916853424759865467483362607257614068887818597150097975481138894591044239871163786871917212589674065748138894263781881286296074308058942718404670245933491472585534030967923925837174740307211869103497504208112111965485328126061699413418944939587825962486795338547641449824859935194998923110686697453759709243000813225534848574394506922403687626386646691108806509467677368488177306318890987638091398314968272444371728164356150740560716542570485760633741779564536446165171644313188391534173318111462480151883164394598606135856435395334795147336771741870284794924255772771680218497053687442138519273633140643913525974253553312428293732479282778257888844451966076831326500856223390179865289506297069539206668716672133174141968696600294040475900985796932211859605775954382065897715111683632051850001549541136370391458530643346151860539552727249300527533482077616742686165090878182492269793693219895024620772469746237477124711012036033547954396018363978788067905058599711878860867611421176890670229400876399201441531822639307580622835839903937417316083236188047815212194724563720033540338212400740791408806828230148497441194723823821997817605653329763142029515424094393959252479936137471949477880071403027527583081204834436065760689494783021163477248347794724503608290862769926936308312862609896934068459482302409931410181353246827595114927682599470863142678702411012742283900194407486384951198538650999469913300905961381072784143769399041788958260983273075513857032135834556597173349016549281083449211488217289862966453449358606795517917137886064075583312946856655215039689667760179444111449170835683851972619151755182075380554936956755999741350713293828929362295703808750978679928267029678564873190938121121886346727663719450814971321790962196966078163301332634516796824036628854780251150203845982566938461047491456851213058962987970129592373099339844573715357313414178275909696846912522057846771292930205953573965262517754056291986202430438139213370974372822304325653378414831936895600364312648070951090985043821991209155461065785708614129873012851072658958293402459786860845203661036486144064190302801194358297747246486255726275971321275656488807827441433775456050640421720723265604067633534735984515790336406875704811847064173465793013251980991877319146249474091453545512297367983311952016159790465163469231715153865569096642887202608510125118905646595886205258136630210828118519952272208142821125789069099465802738738375121703820321046772729791360503324037766203403785317230755266455025817629262718240088416964472848238380990821796285146967513016754156370496773802590745482883069598836538374310213209444970701424913585072492225790512859029244842729621862951682697482246664826862339731550251208241700863631490811395363889692355290018640797104428477453898186180452924237931762599322057564533567389400917944391947698327056982039445087710469471495054743257009469977449811254386095230959792252175562615522672805919496610760063355466561235904092298505618934432924978386300760076753848647317049967274277084145285160053775807496565769395551804467173000009037223995991265778126209037320872142341069470534619406916349321985282803038820801382183286120598087323604711495853944699148478367345896127239830848889128815919224936118553322540846164999069026186388287412917402046546392841371416777855051813436855564032208991086422284364454130398524383593398221093241305436213439491973083152720600605193292821621398377453938017382473816831030534516474062673287207358099678929054348343595974501230361264565285518686665054445629556269733389929734112100568838342760215614013777469337067330756381745042327528472990587477368005083000347738043733053520444231793008470020398374170853364928121272068670219647388786178986558458107479149630854520586981326786634906334877564458726070090394059908487336102643799516382331773764489395960284428685760734904487308801840406669521057634813355628443395073379934885225337211444337910681177085009115993644407930029715947414969042890559691972276938044520099695843100176417713588969220586219612882471019408877638890850274950330315787881448742894960121669017062718924986985654583904280908347438827922564490608680781466950982317998826763251097971148911736668428780134517126636381168477563792094717046948893294887537664697042756241582197265810031429493357416410985083443039630576719975475622713333196110452823713584190648966198899238509250579251273114197586683619919759749351679435674512955985250924460973189966535522378809644953882925696540023181450302740477020649979934719260755525276424569765975171325482351549071071394977292703758984065067220013810206681936135857577607835282646959927789847860800055359123516620059983391081446494927829691884952708517970789177275427473715044432899096500391117196834757785572197142509212308214799265180045478743987328107124280587814596405854921524912882073023198668594771168079064808936363435128322910749052341685681238880359195449978932143010581807845398174648311719426771942341491479001151166611967440708236132949365069022504686993009766854552121855607855854503598597665344500949848177678095559041945166844554709467544801316001392240946082798605336550219174181913796683561584107726157666606859731044718360036089665983230464160043609785061582748798109894255324634310122946678435637692505771088267380424102495816295539737477034913031455610580123676908253244757244862109416600012020003428113913631910303242206100468361116171231935824199499686430886931979829064972744533740769831485009344410210407326978808866629639964387487822624527926692121579945837250968874844173666025492778035501911856426274143191650081403126403464508732347497299331397169717009720574883283619766619582390108798212978391468606692615016742971708926800042953757631993102587830151340746642351377172595826509957846506938482057826841456882464752777085289889616612931692563278541432269833067326691060898390845357586249277361987710161823521178111996875186612837037881350701679297129769939109304539653780423792457662152398475887691239678273780963133865541534024704146832527921357512739435114249192402504480462187204081226687883816224345984747342577296636454286954424214853159210110183817748738883973764219427714755969026779056336484804415578033740153811684336150525469391019496593374190371550283309118693565827502197623892658244869206397791427901322180042834343335091394493112124946067972852475761694457081662161171814557929617308905851900788884897642444071064365924553160360232912816460502088217428725898173483884016008809417671767398230667248093756750459479274394072663101433219944599427138089248977921991655430857830888892801698097117336906998946786390939849491215470177918199296276370881634281032425949820990973194062521912657437385634360892199004203341369082046673145793075510287939711000455235961834775981334452582914524498630584453519528276410042816132873588050982565697396387104931227702756853205967957685957523751222160047887603630153429161986518577368507683351428563201927526203236701706877746510369498319344504627442510708961253209237485428384192253849589265481278445633354416091962061229388639827515267478817928745125136753704586764890987552583036334564755276507775588464928162650495417074309551328877697165188249710923946739873658885747306715054768604171936076765649195325411939724672092654809854101647720389085201970603159616669011770895855844066086753047000883796555643250264842096412854244153551232271580435936582446609066116098244480009979254409702306445211671909519107484728181725553125995660876819059148649686636109992784229725204368884832666298895899374114829467193450462527618180064998585009490116003929417409335568053469244568992781299159928756546376660497520647509905734967789839448542633936157859382430248411278697054871521963329942280103332912691544003784984964861541551495111068477908602804544555174143427017013982606702691344799786224996127943761029593853572790638798952666835291468648340808744997347877067745724364588349696797356484457367258928683399708172829938714398092977013788767047000126297435631744136466864057043418803937746538580769411133051971041608179767392052203314479506648927163444705616948013605451916486393219297136760340621806755551522881336913902236848665422846458403824805525858388253129683352947174599834472368845711248275797099710148920789135000451523253982386374821527549334197918750226133027850396266334146536687334964578487944685028333846234875951454916139223913714338378768846050633405242316998190449363846011350302836609550423726300698704226225031284029678779260830954341322556241957336741579627730035033856200170276961931033389852303644356112269494426362348934265417628684480169193477622508367878041398464984686413478615993999318448023887685393346748111382757996701243193279146691401835159190178395813990922846376111610504760933391237441293211255930376546315970323418493305523566752223540649734521360939085949043951654686185909407849249332384290483992278085171692668877974409381825827081460292459504148086040962839557116262628295233463751753344843103243256271838984492636970984449791441287207613172967536952500428693131548997047123232873805258882405654604617542862171189365122289757372682535002254528303778392170256751345863899765278223337828086722764874618769400319976481478411894203039367385061275638018649567995700003039527295195055138035434454705810345169625718780067388077705591355989220746458715194591158741672494604792084385142353294642571805623094814408056964325141900510749099901266365317867078616407469417312745126123067008122984063695316054521356767201467053470197767143109181630233035655133280535004274536416402689811896190053691558033226579338114486002131050905060543200049484173195403609474787935166334122664240795690058098513028963052433659368615437139268111910367652289882508698721628902258728498686900395866276387384546235672094226458432684435392828558885598908534280067539307975481859600946807257349403390317370298505677460148780110177493166841316214535727049106228007367730010388039634503797330773991653416343506754037220272741154643895281005932302515077848422249040449465033400919552536484395301365927474665816699769446201076776266721238510595450690243046176560761089218267700178839203138608559091614588350891226699822218424776460815887269502481875651626079887614982649568313207948420785768857308727782283570662305738176978702175437865889992503066899941757053457200706125421123054576398965413208889320886501135572471377272989011259538821751219977809472585692001848013975152528195755383330417015347436482593856212928113039428306084684220491897362463667046027486284876457415472050567453127884076355018217556555854931925427664218587245258567849023965153933330980339144477672322454074013084410121773324071322595826741268657911942011371237511340010393986772609232221217005293448876267916816221620275381685403655026090314087779439277963273815288804268595335449163686153235347022140667681027961088284602264700645161114287556122879353155893882034714444724629917532616936798287337133991503666304570763293309237821431150440760047577813783383364456412023969735181345545773576967043900060327753444907765989983298119801672718217149482454401231566427905184877350109200330081802174543454628128251644541190998726306611551096870071426302277623909253949246663342134814056509609620233356258234681776484589886895390768293085846024457570225743803756159991009257720483209243504395328355361914421082818172150919070384900836052964986407404103313305625031397484531626222342801563116547856739309126732345839321094731912436849434614327641808620911722892864082427454787896199665656018062389809737399369811704379725307936438162402910185775961725200215080994837579774107661615693056562669507977405349749070987003857529142661377222085105362446345618311358183029401186711072902805383794471449329050058182524173260374789660738088197073855942161231135518204513828971028551709596927807508192010652928093990367962934192006433969611271203150743460204372211902660276883909209384576501412268950615660087333557962141364376458931520102713071854515408347962926174495916150724802469868552192801383414270850329110531664400035491389830141917405833425180393355723339268668232239735437418930873085440219897139415219353836705539392787125968470433968792077139780554925629864195701267372281516255859748032383521094340408974077028036400293195029476956707241430130899238637543990906360651446011034388711064545657253219135928293304060386678198284482840279866864902120919350165369654007717726510772331662382064771670337835652818183339268299931171606364027399707077509947069750091256647965046536854701293479981669688979038192507245384840981370213493768650096982828945898973632339889428188941540057187935927217660327468137241347204942770286060538894697766869568362653922553521283861717299162211748862636783891331825393868381016457877465385424025335814234443915592562795450629083606597811198360778358886128950763857779696929006221809223382243865643002832972326306122219016604370974777409642396272036729859264376318393473063728613264945408686271223478557558326934753286689224997024379189909475481858169658757399496035161576426795634543450921831368965360474321157695078743551065581453903030872931467918195149921926889731095352035898026637105759176975152068443305849652381926340825811286519835028841852293044969855720623707461569670777827340247790694737547269876730646080808746575965138421860486659370009146027096750235808010476960495972084375921942960585815683356388114428422444600798600551156732507449428975773116518297844821973741852281378124255877432464448103283577335802708070408289943708773138705493639514966808967332789448465966000276966831857053073103215231185383971787193844624921353306257302942468433580831406371924486486940020697514398459413203648744290801650165273404030395188669598111457896814415667540809667953938904335242541266773638755502366355308813121361539551353818332588494797255167313375128300064899469432955680172984336223390399651750418647847910704451512029394515973041610043185992349456829772877500188625004096338161145097307823225418818524047543860808578429329255747531885446636003148241802649062351317234901557467344512253367530667637183004739746779538251061572638265797362201346335441768070500575870812883675179229190808225464474182578143836913051455703999765854168614932270177514359702133660359193556895443108991411050209083222084164308277333142422092586484792992302812214636485522705644718784848391333741346815297564108876169835736057420802683316141082976414473865265998281606063091445099226801147562508538169594354530561346637321216338847694389208979743158041946468231157685488039191266925137758082798678509057482986656322233278170951978491446021779063579821926957747446110790554218911973122927747800169105515821050446414388259240309409470083229508968096706731158953303207689562156048606015112183956776868567970272641797483015796858914335229602115766729073635182616932527660453709793143955853635577756158460494587292613123416520759404791964049633220625121588923693556420078586278866846822769981553825750858439811712995090997103287545372624692917558794222068885763976759143030930910255726827068958651317746598371910601979517871424248637219573921394481776268964751372941776994542027559916292661845722114002742060224872950693563125495101815552240159692740916117123048363388572245762984142990899530942296315230124661473799057986577260569174647313935688055167825083387367030851174487735141880778147292229505242547263650190029118945977446386105729281133121595487239888784718193179375315927566315112444101154507908682936115645005802949075629642690765585927568018065385807783208326331118921428324900325139222457052443837689696429920811169469498981494798962536084910131425848714733780667016114352011439258295998553478009171244728905409318633440598959085652441471927798920526701563386399786356291854468251946981179748771773204826609044752571889462428611391182022395514684698295539652384967270849473781559137480018167842331264831348373250469695320146968078353834317348262842720467425758234191678989615191771582267306095177285766357690080939178318417859243369863885127431595325603723802421795902484969404275052335331896183872719030509153137644598701889140992624067839719962934919283413942521721143938369674781943684641528386056223362302571079825372582793041899001681147265102710058391391978773417396538566454409174415959593487634973445618315553750326886382817780065437850142521059213802192998385927728320499037019895725582484632331305457394586131307798640223638200544890908080649304256545045879641158304113149233881700641337535248017545428344579023015535120244290545759998217270274624320794806371569418599105673180070725889504358823472750823494769881334516373317098457857411918237955102572238788682493539965735588377713964611146582557313008656477231012959740525150977324283032060621998395951468625279102907132194260659595259458268333641195023856328964632281794603915089422675523375951288120459803589348403416945323716802986835744700427849748590208652089833023023450838068937557840349021626289451514610823164912265977247417458447807389840871307574985919909548906308418308752991359193881093098997195555403877913824016158825955318549251511915539815273397891046897987314397929874027561437195691775790976376678668240784486752403979374581404281616509357473552085808576572350156112509582017262000623614726690735330204661229229001099530565568211603030224733027633277958862407102361060077291104447086230227202753401582469103431507793822398148286250916918924884530954044316980447185048360831972084794519045250817324926739175696733574445889574132155363687706575470224716833753296042418202249588939873715880048484099077306672972510468442896277824856054422433051150354958381407610212511580149618358773243905414934913229804998458745451179174739350096377459567054646004572146831380313152452442899264413036875521246475094431562459276257908959730366961184026307274049622986215861505903816026068956522527828737779554403037537791070154510391143585987994288096442560944152396084730135505016943607057916318908409140910184719082524851789950910784245162434723545999088242018984582254768236507309893862405884949929601214892491008505184066444846932186994860890437788061290933703610487795656205933993814442133425757459834932626467298556669989438775612591740415390916581461494715311099501716516331840227947070267302235083913337134747001699134163792541195117106526072647540246349698014688236463617269979885095547540639821347431279208135944268907332829898465804804507068002459945732904121369807711547024652809192966427770528843730602874172245499245820420887153148285234997087133261310302540211230382384234406284995954361343560566058173324729342276011572551777538101652472848632724227837089220573113557019895264676512887748713953412747203343610326620600169985303590452529733633239634647402444750147633291949904382946015151609972323782964134137563252181824607985938248617849068602968291375323739870959578351176539718592266451318209060819370377537429841288242426249891167792068948655155814162818251636988720915468372512846206409976546357351271432828514300868744279337674496204952291455633978877877080137256176097635143801698689730914645630208612358540573490477328446568905600039099574522878043198328707047175920367154742444196067629267549463692931998674054672270691514112854684690044598405484210915641450287892208079175626859942751358112030621495009666157741526204925248598284228130294807655063970789098174335869428631024335954086871300287362339205215894655154927717455836807543799060275388106363962002005924754661086470191442381888833146122802868342471440000524925929835812651906481265637815218350005489689102364728743769980044220743481894407014744418059817773201333840013018833975250063419967964909627126904229311328764672368717667151669062122008159391775593837640511960302273772171672441801090761670876690629059561165785625218651905149784183452971295608383903857505797180121011344561161325481667263277011146795259503997779373647903289284693291595544074290396738750455967513998045833080341649174885858665854311404004274369269985075165878460060307605693644671545156278520763211569044299893956539084290663033234846630381835231226596877321376575394630594206467887682728746114818129209439400046725730132551713095835320533434271275999904752977488148658389851080875553079484864615735929953013573255942973974745842532952123891803242744278501602268523046997019088955015454361472714762457161341455635932757348228672021862070401402511011686531302148664359663845849067818417851031071826741252372123689520878942632334937881072098902599788973931499760923621301821779493144680264603327934405618333453815484491017150764479819806695324179515397584834897573864963394005843941272186116000600781981556518629834463217892763653502161532756253712079551126981364796463624492964488188526773561501125188779355407058219006482916332529765871750160330594881801392688176204306557219332269133811028107844030848150373649031806723941857330933356188946254991743553018962479948307739600465132649351749509560525199576614600617624444421421786233439709170597004125126788728162835994700956005740536847272131050791546115999809393577170296935930598324570603035878965502117913261919312954842304104165740182980750529507195243258964499600934824879289638544401345266978266470494548371041805245898823011566550124130203293993628643124727689844913887254571471685960033473204146386437758227536829215531222585611672952380024928557657271312793234825560941592059683871318632153406663756342494402987684613175658805459256974051847460510177173021304016004104505915742528654052081580193778385225974374487935746275027393471471426416913974906262465068539880319011704711515659238899802866057722332334316856855648071791451182958274229960903272276640786915893507413882488932074865850424825844541834687714849425555180713782120846766772006445131954047194927297876679209502655487739724196211527752302309980989341816142238969625549818130487687489303857873180933083999948650280596674831907203043618116590049277140216185187311964145406670766661020187588734542015535194946015968427365117648272263156325637199145467030027782956070568408463953968859139449556625084154995540254398541803172927229065334847324565680112050263667738236559757325558795732158487712804395473998707159991919092627969335386713715516935073725954734416717125787810833345400501537354493255413139882082178999551809442219296208449466895388053243110605345291613236053844572498507206864400552846598844368427220587973879243349398709420799417772297556979704025522011897059481357027325064549125122645079109528532949173007700184448448244465806606276680278033299212929735516112442040720193986978899132740528037071830453365674847828965542927788934316218139106548589269683138571618156477989196941486213322981607536655833250837818704026062433467357494227752859489163119982116838462538660948147749293792916840327428859425938719276837924970803702439614257660446825057350931715344948435033764290116132306995031488721411082391139264134582614015021458127180428744653196511741573477069644107412056702760724915646475225460558737715117176739632841557518303869449416034523811363811175334847029932139395086828359644725062505661673108240056006320369798849182917973707484095737690706869844261959330121279489204558618308121522769562759610058734902728640450876722674491231415979508457710962228366169177732248802034686055727077173086698598936474352679807904036636304100527278661705126746263072270628977381973371077319996431673787214477484647419236731128322605389833510055432599836343122195879876979236529384096323029092320825061641427821020115521067413333760805905606407686636910165032863041651085934866361408875855184665971228911999000826383184733398689785544972126804086324986475781634378901558729649927847505835769316567753045927905626783123968993222149197466236322450210090308026090164956262782904317192182780087501930696320089859577383962260422154998342608431777099992290411742068666223550746744804486298062517389448561604421809371728214468451976782529894066260289046772358800396738711660463553764626940066995180043496264030431760137899773282313808988761627704838921771520691445078535582328045762356603422565215214968075930533413557730149431466343051232740745882057763779720181042293172616422416373815875964741385344925595046799810765283557170963625296032893929049323690196162880937358875726945846313591984933620219473625505070676814265591088743157193878735709046572432032257678691310416876081283438767096260837334631874159420328604530813832491145130094434214139109460809367922639134584752564739484533071759385597437419601532511862841087309105663171155518058832243599647523865929543730725366004670167095822207811913597527162282340596814481315411063233304277081245734342939126890592834391310704910835793344292029534690182544313828221806966774294644719079169864200495208892698012130626712259622770867813945539471971840400677287095957307145003628768371637171058777147052363367334104586120835003032249741255227836852741301856278934019383863439726776269060438194536334900870096198363233847319394730983346798115967170564348357836441832328410912236888684175535894113872763390408316894660378409681665030279236538753011939327341643270416400850366542979317534077800312786901709186945581797493106017139402382908518695740926339773722558075981567900211775110556490177989653513356401684783179156418369174656652785531091901429047025087186000426321939350633098528115481666007573513727214179810321490300972154180015075155495561620085892109770619439081091079153853710895338517846683129491601076885965618928971165067534899121410814464178412622178616292593466824059967144399787173305452237988334900234745939979158294020543559526145520019193440550256390097102014314752562875750520097698760254439999882133277279650599899217785222294295870421249991565755920888242542713938004284851076598326312074626229953459467037008721898429982696865294788936726043083968626279761477505243627080089778217743498022742400760765393352209009390953995784283006196698175388734215539415556487934034203130606618136507388636545151612099679314723657309651232657860030687629629341278360060682851243431531464716540127652059616553807187094875398631052604577279156445676609623462482199367104802652561381214791445256736457019027032940240656609149180599651346830087336227830717800405173844724203278324673369119465644154468218941037958525822962034802805772119641595787597153819285811096358981760364957238337905725083346095323817316614197763264797025730993958497903947630249904954269075405929194076275190495312332273287259121942321262596239749032207869771561713026800559103606357008872978257966173865735608162380326648236350755871366678317249639237473183701900042975512951246111467526445347684651368698404757493372094433048255048054882861997897848314236291725651231581547228330269786963915861709780464112282212528929941578145564638409729581689933196902416925444953097737336706804643228812974149528924241449174912329094255335496795749389110475647485236602108684009516716186121280012322814149954716157006752635948042436345755806718835052759668517325992445221881320284257507015701008274707396826813287574214685896114229982460777679765599395648113778517021548715339948097031585344434866235199660786656185788999557371908076971563061624939564339034020368937750397788013550827927590349727890219603456105224057868604564240841520885023039073517839032026114848607401081479656385397570296608932645166006078806245286027957505383189891566452701794146753634165877394240198096602516474186096126091855997619148542547601464100701567766332800508367956029515774107758796333004034786598326340514203540307682884858130847734968772741813594946865280789686157253072733026393903651670295791490119514666448817960355669008125690675098789511831536838949796378735918027742623216301749248982465060082342379627212383380908790118426152505088723304630795517580449578683047708613806186581487853811856447010873414086472737215650922597155687807767441376506342479326880085355530907021341153319020666333259349753920031027886850759915586017558154908558257317226438589558766432904983759662014630583433122186386156633634038786790719456519360952333866847562042297703414656948565043222314231929366910566916731010446098010371329858607838142607506613455830931675691354793196931229121433224754560701817481893719876661748753562517843473948039814066667339611554609888749778601089944564654145780338208757313483720829345287811423412008996675603222199267128644536328283074975960229954377347014399135177546627513448328039380567460029391339928334043631940508531763788589258695810389214975053607726082584210464030133803301280731850768564408907947031758961759676263694060366097303984992288249457749658102791903936346732926107386013251327883319681779163805141342218538692239982960524349734420097992797960937889961725159348729957512740817927480993984609052729369347983384852563874752824683387139799559961526548858088499023970719354657462229418844936265907495088669449903455141858444035790928773077466249407035145541770971589726807923912690602665783440084646310317696226970852212982392127807472134138169998636802852897391589626915538827437011446971308706495732580743029407419193983779617655002543563815607554620199692001606840413375888842414696568409361813928640887289117413793948415659173367775929023196814299032711205396045180184400723249293020028976732247261336146021495943449255511380334901322694855181854241520785508015156851670899298027435180239885310455072551888688289097953214259052397765119924731428089166811798527985468691169868278816815474654664879140446038226846339765652549234541269190442096872125301951608570828719733179695089876272651532946726890039133940248979945171463169052932452392446907854016430857208720499054897972593448029818668072343250499733867198046973507388360131863454237696654048814679919056501190450180677181669464640485262352861441038714831134100491324898215907216538077064375798003749396319151081868552928400172527492203599014531384112673136370446510469240715049194407476163212778986738811985784575651616162305311234474848413946107245212817676764511269378540750638199167349954269857766080290099944059515912948573157634281528804185690134307949102023735847243885910443822084151624679001131553391693814888677053917230979139162388704422730987052003113187643020260213488472478878708348557510784902344619580845730926451606720257663906725385717037270180770835633070241067942780056165258747223495403072018013934371523075071053356713260796619059132902241351978604169218916607897182499123732554135910489268136607026126902692240898857033813017551921102384432785827209605811435239480748384096864353003093514507987637928452249045215348301966943960038217473544312195166434682262903973958875910033571501621320859245070263231386372106538825636946636518371058586187903141930203747107197361382668015458286180873560631084066846109388099880691368331350791063647560397323749480284687799363581303469605583370442999437103734640479673963510676219904372297276745103864280521952539518599576306658746968059799743598992098583298770430173091216415224030715192633964773895543438561166491804211057483448758624992385040225945065173802051753996071088691799486448221947596928728095337751486880629316509893716383208637826289606940259270310724209660335946252341432855692892345171580300132005777502621764614229926920113989831605257586136602200900540700510449029229153109936962978071527040533740631684433946374459709551355294346295381332532029772685689872421343464513048611322284576887255520323126373276736823720144340771064656083390297184123504482939292032253477965993729807866360020951106113111877655644350961293387244546258891647241402866470735040662107186907152323751645000879397018445117270776504446231336479402113319491278176587153218233713824238224263201236598464437237516873386783220513330138964912687647570603573368876346009063815660463439368539348724425401657277588667679289560210891836123018737515804616708213210414030032740383127462758746897288026757415537023981588781064479373918324341843257758189871034823642319279107676869731418176950657659507970103393649692574727159155508160361614310528363617971431809400394805396697063894953963234880622261987313446541758622839576804872268183579893148283115252097501737041268378575451428454466203810163187223381598328823100597905396834295908568016223045285134228248220784961013978111837343678029034985181134912964520822388008728129520282987150265432296407209376185936026988505851425535602076130404600776403812482348644852629318021427723406010460438405561085223815022670657790926816504083130047656323712567762878492265498006668931825533773352401648914445157607851966525031611678698551860533026444035001862865585890880432694862812425314167619972142936025342864631182305740090877712658330322856035259888987707143260344128876484377644781235330013002194112507085314035600199326379989299783926419978435913583431272523772204393769670953057140786682138582864256688367638371683584610481370587273989496247512276804737094230840493659627344798807832393587810044947968667512576943031117801587873124947831025768854692020841921673120093477441235205443065123417040378795994885901322040197215257367905189491348123244668629335523363471472270225027219907353843190675647206901007858739698692450094946159724399833753062250551455186866112187747374320095142553193968600777840956951001872035634084414591072924717576901199090230966080572056049661375490090177048172183732381621927608437091189868391038062741147437030007436960132465491043667634700307154623442566501355225238360679065190568437161237487191727606958975252645116656761104422305123153624943999457818367085337504396231829422258264463256154371230579152292814519198025757494245372300473256345704847020781079359365179794767316541888543182224567053876931193479624477777234334165511996216041653003176312870498321028590944548707873150420759451535332581238122395454919887956421795486254639543012112686644674521097285981425003864853589024881672039103122582268408941543368793923403257405710698056709655706439457743885090036958174931913172489752321345347915257546106194773745951628683995580923195921051441912525083509677587220255119625348116830352368849039566290658996005251096653612827251753804537031097652067200921477733221217350375438070046718118953302213397207225689591324085248581213316150735849241561260615346843371282476127238389293423243253269963478281550329136813690466660246791256125452506513485715859773709283050587312734013563214612967206627697950995535737210730729839326801270565484301962397973044144792824835395747475080636494240006248657589175284940176219523636534439394586262063994406884217363147825788489340134346457432950247758878689711630874182670866289210088481568010106899848631273686636458354919244126224294996823494463253952140054496884552731119793738221537871931512454684161251502730504989357313617997366341632077969774994225940041726500699225479887627058821800119698416166048810614831168493491857945552668245016808187787852224328572026218425963795075048246739678030979575694806778148413205521182136623637458688860803471254434115272669563243343699066415559308005540382429524567843597037281981407063364069106907893277603675104995953084472439193356638965792101976969576307096085100536298011111684491798310327116692588922647004263985128113402062831273812967448909112814070124665658138104727905128324662707273758405572644137223223238820386305102574168616397711641234337892151753832506227465687690083720932110491886390748972892256329894154410660366396678115602044180900740493257894568500640648606578633881170264529975867160610726376053291771350518116550424764190667573049466648352885271112909828276458315016614382211359528557460099036650809049567181794852409123294615053837561822355351219975682207206711269432983984141220913650155842695665336803670525941263515270295482855666352416952802897857347788450066454272975118218072629090448990320976728590432913746204982570499732042983821245346661317791506780790439172394564595510924345235520407378948216640030549931228871766609352473163427126197501152930068328097597780394202029847123769043152437351504648646382523162242268025504621397844162709799106829319861009150633011217494182298573489285351362971047879911719405338115760129569690653860906866122261109433693099188490605616124988874639901298688507909483554510224949617199154193900086092354451328395649553480412406656709087499449174671900418231967556544625916139590378048551484900822935118966817423669134502837600609737522438747340167333118546421466732880382483160986600059426659643276427812386303588204410687917763369666700833507952187446707533898775989669850553865571612136638495297335677941145684220122931136020491311078989710192226048816240502285227593035540189836206101498072845039754009935634039110182023488721496251085533325262938396959281768281079153383858317142819168342495927883495947781722559896809602154521888186721596588469585429000388912445664442591080677741073117813266950121120422005340448530529867535770406002193980718624410005859922689564873470916510163604649820238764849950834091802516505356607317818589848999537066256937462071289763663042385841966409790509662632146306381801339255732634273917958763005967077728491742103467297401845204018001485716117781313713807147466984539118220634445909918965565602856381384698964044615495261873710888784969087415171363107206549354230774554754888207809600926450698982995785898734690590521768806095943462915308631876611579869997972945107956412804512174890015136408916922371270593059031109293949050028578074731425931278135989256847202995654989565376347370444716756599687886298889744833657264253815980239408811717561547372746841373706553896948900443616843138686933968237306161560979417480962978013166616517940603478438808053622183849437879029300852943783239034654774886179738465782227539773249150049802723543934372050607464452696100133420033181449279532939281859272281981018427558473724139296992639620025367652114083627621068873982388519468863222952055075491746383741043618356143397201358902313328336312643230789737997653264066465928725230831968231758576422207646445855480853539422719534095767537464374216969770426495077102039715841301958247794646716086070181493044241646805135106681729193732720567274752033860989802750992241388930481188635405198227222654094401544279860837393814840055501657427425698297615493153062673841204713227149492517994400993789499728040840980443012203630175487148090156882212714102982409304849489400028345640410069653137218664386141221457326280554989613898962538275324649579474067716577884807303240704973612840287831524939657215038604632420673069828150149960803378269000786968821857609326564402643317661969609035546001185254593132421998607940438059314037514749016885705115564608799592965324852418651795145983478808056517200865445035934648235200357736300574327117684940641281462443008486461326146576722287562580745351284034705420489382813514723008495876426825125756431885299426232594340293658767687688004284502575450851221549875271344082654461267411122114059306287068168677897292618052365224065933589082880712412668662062182940904305483775557558683922143356937985261399309760181665865958598387704716315413088142789270241956600883689010254189012749969438491143600240497458243214193904604667220467390059500899926417638490227504154165103383518039420358866739840448149355707311113909974529077955078535162576380582287834146981711539160921134155837919656480401303759455507846243795019483097735125740024698406863665436912661904484732749659543001013035512896905729928947885400020010349254974702960992982384495798767938733597102055971600979453292067487147599148964120235959941728156028848663147576910813804240279435271862504774960742125978081719353990358789872960841580945228756543852294574494291705041323111405163445701908203675181660467837623161959702448891527235953308756520415945352370253852412717193727291597024997781798799149662252567851471504027591021347356700911984619107615397361310264842156080307119705698785722896682025538755209821431123006511141246360609838449244712257870779974521673450941855055553791446495496610293291884848907272268031730208596289998007497890566352453993947232386461102785724176534486585386748708606399419190351288687820124587952249381439151481217406266518196599262727821198548413742783839667775563862662659230386321701052360653766694669175277227157829077408719566724438592554293115758197410740239967625210741879993776881820040602855042353655681175544036875011072589530236019944513902771762756109194840726095452262059705592489637695203646541728162350269288421348275632666140942640055007431627513701890976656775741528900848533529671566750563861051135460504378897367916999716129996939302635815387692299623077089670602689773265345578413774823155046997196448289903661542371874136360311592103031166830076494852117193540049091528253043378951705961105599650716164666834780147549867941403009754051026757788236425080998086232230754160513826822402080807363670449708171282446923704531625077955721150355389354659023567460789787864893120926324929087938659944436934036645696277667228663786478827133847789891928448039249813163279592291293202518545097685456836866418239753298135622168684570644731617123174055195268625264066267263470951310560101054214584488896764058788400435049918821565879084449570069811329178237545892587029884544551372288599855501288416151459686614545316733628504125772605508055268524269839528694201341835442088489475253566018571983911872401262099894467607685002539302273330844392037958233939706013229818220758165530662904451548684578780582464009390884042135804817569651069383390435713331990220313391794119540524016626988114265813575155663307267542686446194640519707792931473041907232944008210522365318252585021753995734055964240834352467204703465329241226662647594844929562982508569806979239239416798068908364501678205209690681632967103352383503047984024630544339255970536465132132366226850353099475644948881449838956174696698333956805268667494509265786267501435822037940048692050983194397123239811985300193704578143421983173764849050518429216887313807906536129812971617262195140779729513539098801225252411379874932092251186956894195116451657105154983877590821165225681861295711249734263081114481924967223245061293135159862198275266642287050690720757509534745275851205198362207374579083573196206390121055477800726158855295338053410742430810959661329442870631726505353947832918735515934442498648484624439040619024730340038355981481576155052165417570951085409212680704954003301705444910598988481938649620706146843712888512350526653674768559003396015542596062930046284110274549486798184996264873627489085303684911682141571824697066689284228913344162961954674608421732706409194319962483268390784636467007336616494406636467170474554948080375015784997525528815884527281364090828437575639872106242006996808952798748967233907698009063551922650932412820475333591852045469891906829454164868115814894600607181950022306940387533682420252883462706166479180467413313841225788528788287982628510366685355850416485438111547486049755149798268502554055311497134927696582290631654622042520632696568686334436937735815533265588423427304924633778353680907908246468886887420046190484471648027101524415437485548061251141868905874142325055614144855436827113121433872120989943967136588271043294364948295890118145161534899479539273126858928678973427848304293533505533922303258442581601811837371345802281010588339003996457919857571558068350662051483405523371526260626309365344591773574262980638790430722751059334280332246890077160779341515720581221957182378560293068736191893376339897679986759605198227907371876404557593039693357275994219014618705200042524347418526094297901279725704907573472359359500477884500380878082530329565775467083784694008163401527001822230659416122869465536416791104652133823095215813801701693386699691895836746490291464859310629211571764946395831643579682702011022380849558561583230703202028169444535941729341628285506766436992805750843955653587802396743082248362728951616471919305593707442287369419740340220311039140766938983724669649145719884616026989324729669277906947131207782640438260916389737841599594584773118793897476508663971659252092456406789334197990172765074979683242429453878104142099227181692024680851049329401119944804422098536867253786205671684149492195074618778237981280427728524190084672384613029936415120399407012779849327682997778053835033507514486435525699264002925505647397633437820884459535507543780224137846227515907489715698956355134213096540323050739090507941310822468245390351674655161629152121052076390533056637699276494654757856246970716424592733834659691955131859102366791997865940329112650779617024720343130811598269713330815136102778280166624342162633511541171849793689401610422560226195256551551081220655705890880464755062414913123669156928740870542922876737059012182957879616685404744114042876941423841346021237546064570189652151146786880010933158566467099483184632220155988387803388347423036829271897344395213254344643451069063463231638302569260482403423186521731324842110553200025402040402083934781152903622608466144720967548928585246163616374285389160387465324062391473807612017878577707922418933432039856738957678573392877464517844040311305272454455334128790915052696239138558106325710422469167556147107369083398922534280747799447262024256421329938221145637790929986013605760817069735262314482477097526351782292603914079649326350779892117229187468003668588625676411299939345463324052652498499338569789812474267508573475140713863260904720176808935814060508639105534646937491666949471682649911562770844388137063341004381899283852428585220365387512410700081239648858221098758134129879272108737142352329772806071182727824879319495265419018762886450629706209661248690114837705826198225520825800422502135499685627557552768472629132972114095725775086320410490069261115245927619493718787196673689950335544502816312667154545974239394017165887012284922777879477499823886799520344380109324483938757931114890600659376067963932959376607030659149897787430532381880414866895258527996659284864830007913520728496227409632940667994489131929621758538944075803260599727792800788193314165288522125643848514717114955152146547911143429721801246952531286395204400615120554008779075270994293895107027592404114901353597963465240336631251287998880374942224888720583093419244054694049068749976869034115514430924429035025993298872843511336104387130070797147105219567162697885784771296201589836441892180891359123536505583231360163943758029212724639311964853427866761284547877799207221008307634459444261274738597473423428127200482936878023714449712656121687144899209925339264752994987349849905691251643363725530208224101830018261555915452062026914756544195718781441101769679039746923788775985612325602865504706491748823275829968676513890681083125411211546282293274600619948134982234694969202079070167745597123234975538139125412838064569251445627471291058913271022326903540864449767777533305035226224696454789197824189616846289159513349898166315323420668353647372033639058606224062536523192985221854763840755835890662743397777611088404307585577556763845507059511623371479819298922627080596388751882432185971372120045952393780481521691990228493310713392468631016440599185768082614517942863413492629916193614692554523847612392862468242036597980166141005910493950190635109920887113738551042245345044258731049540174709237848043614162292663187895932192844575197421057957797632902685589378963331304154000934867522055875084406572174843621860405046553190247214205543783876067027736335842271380606239860274493545878230443841661441508074642700333104165886325124206045674087438030998552567566140162435865659027567521854275448397225495780850497101203095510231356508528869963657952237509624185051270188862356346832103690671865213694869836085897410149054134753373461749953252143022547150607179702517275544211604832419348367416496936177969004170982876473904961808890088268946941919528101190973537673671862348256004597496403022950691324702479810271039335683437994972251733731414089180491586737254872264786381931395167786504348207643981191372548775153114484458038230203070964339171502264890338910972612823084398932756449479145883853058437879259661465909482042922533854546429396401638255638346650872191638933650328348667434887459318460509493256991456888222193864459362198119558134157175232275652534580034297650219789065174521350108189330418680326547520097104301765255244396453184550409632343973875141209623994331376187450647605342903927744833820188297832540803632504412371217510691962484658304489204337406059506278223139407877961960379251481592052185792442640645961480619702654740314166929975088416470692430430187788312791732593105781585136725560520913772958066563566223520819960621311813416062964919713517434900535502656927430795192123438820648996483010576610869611220784439677243693363919180927205975641345296464981518238123687845934739551698489133602699409161072727209682527264541065359526634078018797101302717965239226611975931318413970522067358625368415351929773282262075585861370777633863790259910694541440359846536068501753621512664200103039055353347638078652875953326231626481658048653702604493793920919472595529468111741339100329626515162868705976990670230385291203027044944629226219895897605124332115021371417989631421654527789970783140515014545337099656858670549472151574689513563862390187827037348010455284525849193492450984164325029063453103262505815109882946401890815497923610397600154874258119260655639224879606825605115888905502791566548374843462694209289484271246410225587903515235119007017136094717418651026797175418226858234416069087313924810710216724750485766425922124907073763874831798008444995717392302654225323696709067411104951817660367849984223309149523721778008764324273836723697722839527152995919184161724124552547030090687013576161911008468978772071221258230987273726050748547305439706994397361925202546143519260460047472295561395886564640005801199421051150448572800991449229519674153036836880492767694095718099199220733313663472757825712373869691142307310501871389548588073656580414102741887273796154036991697803061609847711449064046501481320578008945256354237456904445649939410771978549689553479202169560352335529154944695459407888415317827645215613666731428370277320326684783307409746585333629589628824565632808185143790554980883932430720684069887454248926705412676852019400495484917488302081581712294878497158360577078132658710329242382333203358874321835053237413980371448454314391493048433375396547045722159538507363386930169846071816932531878023810990135406953160471776726463242535774485763706371727322024245660903878254696374532488592896730611300344216593836460487260155129517454890291040179101016419277095319056314916325277201604202149138625613112610628830727686083586313148472855657818224706495665988642378729167232911633851072442768190197112045525249901212271043742191874766714868631729453253608400050934738132567237478139501718712643756637488694123953845707315706548446542515099554099497785175789706813749423432685955281009561815522134071935706128816938988070620073412837583366328540569134198167388426469102840618395722840385180435149138756817244135320364507117001280367338073411934115644856277167932877190763361055277571276028961711742394282736046915034698748487551642122568578355816432616690776003130665408224539184488689598111832311045893478609505298531355478859456893419567477940666023984366791483350518776613377193900355190822713600964213533008967466820246142697655794646762817822361979301546200992464402519607971325014807385636364359262924451953714704495929010843826911276324906625898520289883585080857250181847296224280049802320336137842289743246726034437034591356473643273826392450401842726422229958848826028296209574907685645654596185654810967833086925846720679625013492650060804771398746668083626364630960865892797523191320717786538710710477555843508626438584812177118464193103081036205307424369436910903543000212377057241908580450722593811461986985238335022646241711815196974371507005170349544009209892682202622048666123150381492382827218642414457872680039872800209456498669153287528834941114613112095316202015355564390186356770002024852482108306502093241578437075931962166831304809302728745437850964281005078936885744687518798420852994103229219003634522366680193341061635706783831310641054443476052908884470477058782513081278303605884611536476656874225556401200798479666570399565033316658266972827412122111280764709966358709731029848873200727298594001646425019850197576964639857312416397055212448355412823543291027916409465560815273079816349539832750621482173021230739645272982841595979590623994690739927261418312648566677240737217070123014320304176300180310179429265145044059602102748808039915266822580234020949125257563239011187761804436316657240812841300382429592118607292808666756922092002928794744737230149515337225800675907752674609209349242889651011877992107251302028100666528143354809342863162436263873792474691953729333683762425298751277828177006611698174620506276411549895654815213844855758545312824733264168054785981008822249519822106759477728456042095328045825299355073904286594280099562999879140563711136334918885448369857781632014107170258493309861865897963425777730195972879490106497048241092303057458276785546801819574418782694146516120458183801942845912058709020996646584627230571404956155045305423116593944402991143599372805593056617649258137353627222924639375810738442399296339145711830988235454486476514102707640113461797369974360499229980483566663926496220427455523705920569182910561513794108954355592551010874637443267379009685071198464175073062848710520192497511605849073090784944487585628235501005268279664408313246931353439372159442875104461828070832270785146777858218087651048358804879437651492082878445718319934352174794937698165445026635091510494250407681964927701640072712151348842901420528909768605222789990129148564073141841866838071972820040601800484867661434123377600354679879606416560695511329220989748623751769374338991073273335267643456340005437865392949493443116458930732595419922199689696858277639705629110950077658616027810025306372068090733420935149779931761576673495680805942270314483281177056719787037410827245477443616346743272567679733939712405800085938411140086003074018965813486945550795442870960910036500182327804263106123831996032910770177485538086071448300347622773910705637262788737519972270177386281003637960360579657480234782664392575475547671017121136302012502192745628203982690797868872448218027714839630782890578767262832823378867133217829396506637517148868669450246735789999911520840642374150106149706368519622511284715113610287562479787393369470752609533959650880532142908333224988849442408568922693743032278498593841396752411312087573071009568059107634274427249110264669132248496819612913416848999017814849789466293966764391802608930249243542727004398514481386215293494191939707425721713923415543367011947216479076821502671457822444251743062866614576584298212389581656232054833692420412325547463746190525010449517523413589102006345701877152123713194698049553759329174533990814435334157083488533185027682026424754273743682336122126463932950453452797104646307082097017206351675154707374504320659173569006467405249311710031511616116263910206451945238369990625559030642309171840639640079661842360401944944387009169447642042362468800556821653892014347531865009265493789254649113149739271330034053217983439724587646264422764587813690283621590858726761478783201820876386343038088318267984160094564743124599482434565242220318052491405336215724459991577803725686405411344261726840800752865346358180493331463284540356758918748006403077729823689783729410445482987036658305048755581158372859004862535706787328785824669643668236371993676300639195775527833338330869294742447436201388237248624521492262896486730924897027799303557865069268050714982840994937825818476864413038857749054602010483659217240744315031794104936529332298113082827071304327436552726149516254625284944832007253362857023473005400575521061228432889988120318802913089835910075702915083995396793084071960125125409266472342542735584015849555002881989616504130263375752696298971934382449592255995138012572653175924118913855107057499218572477485400434782550904899211755497523512860470281950831319124325254020861257456539321253696661741542056956751750786900979388617474484493250766228352271868374101113774315068299788715283378759355322505624412399190265054113505042017692985973201978692120435139652605233557392128527337865397761202090760824700144129850845283709964218015598914473264716366430422600560001360592092356090886374081220990801531837760656265581080702167899481580589907560702484665892155976562670835202078104370367497474378573334190211552320234175573868852197117756860773931519482334052787282578703102551337463635341572611476444218418079879256179746793662980841746401115652206444149765188708234526518013597889582941163821346435470878279423737692959428711384312123895088298269070587221341718757435068097756243330704525215905261391107048391058962239631052243004576305177325637363437458194623722489119050527238536376242020284818584869667229281818178331485208359880087635968233784462183707148125254514836391283419889254148403363418078237070043411293043577245485350080161799504493414200487369964086929312438852637934214627005218255393427835562543883806322363946529446134294245886065629202049316862301513039250047113984677277597917980087142843485678143305455211836588425952242467769417830691089384800978263730178746645737939720677998196841676654325133017834726268001968648724542868819449395299699489381223476870623503216301091820665863641318266011831825838412024028239943207734038949819247693789401524099263469795733702222442524949252712990106178877449586353276843697048601198402150085361765442666462214128825811687114662700497836592001481183399676756871513590982453157427556181798518754414562358386955123323539720460210803045622068674711920004244114640132654425736946230206179790017254510807612432614414597832341288608409123886762981419673914063618683323633793099442246044040968644316367054876671315606204336435485194659094633325077944887223660206352198277699619436910336337672850883391903845573076366451363173412673564603680709994539554646189372437099562081264019959031318291074422100886363308298938347493465394838032663944751472007836044671357215256199647303707878051731270362369572834233746938579850259071538924617435992129319969593489697151160089531550036915954592688574667368617178831180202308402028869699271451049302593222329487516078609855702609881464600473382570355151165362215653568706788385828164991677967793985244118085192962396128588068741066870060533688397082742849187913322889437536653258582539698073691850540841224033415073182034699380053712594604764556876122410870558610524481560706575957625422534564447888934112143751363890433956701920897628438669471634175632336622736320718891513760473098712976998872284912454916540672560980889569759626145513901134000383979297401317819881184334835640166007538610626854366445133587192077691482270433869403162916102323304507410334402882133228474189205268505033454065046532937425542976388106087856911990989497110767604575754473063981373863957418359123517559569296707543547624124268060607865317748672339873966368745081308854660976126686474164413568703502644264465965482847669051673847419770935039637467293848864141764350290503913450624667112107964034677515842297326364956634455869124689711013993057530424701966791746393571135528095456151225181017414215384197414269971590804588068763676254283610362084613924664818480724708941009528827196807664666530269671097493028683534358940446524670607629804628902802761550970854236530084662857911131851383694665179719634655886426904836847289703305037226138052090614849740123809217588147998093387948779938554134531289851840269262245646574414184670200249971472969669651889246166558824081645858041759704778292221369210068758356566383723836556628708715402108407964811817530257825971349270220520627550651728921510185831853894737708392557649737742934076843707379534499334443834603589754919929218398329066912932754728998652241587991899618219206230045691337481174227643240739010557466459597911050523073158147069824473755401389892045330103195537586908505330814926027688654643319035622943892995383822276011345085131460038416934900744713803576924794563572793667891313553510309309021989188826930314169627431995158964109439113954249358441742412916809385652017330608512308845770012680287095296135571905481349615571652428286954756377457105190278457765001536093290159505707405382609511514234951977939259426588687068589146731718787718669860942892386230951227700623732465270423145547033466226724795300324236016507027459872090459129976426837993639636215758358689632652974163151700516697834875292339928628273677080596071586005326212396612080215838100789476036333240097719253136870973165164203171357743554577176901986716303044894645051336475205458155629130849411892354140341027537806688237553124139858091263188205649393577002349768795614221434482854638044210475663807030808665579467251493967208009707764108762616420795248419148248765537246164661890441343431320028882889126799972738575410064126545445567520142131526517704396335308926933647614181158954273510495119950656881933092997356727609796396967043918631639738592165692004914254773857818745387214420329257992055259690373212901843673207388883056125579475899936518145579571755817498647482391567728284481697112133192589633852311500902857830903968712047531827384130285851566555888443773713641435809190579587786477812597958998514713691409229601980307097704032420810560147688475669961285488860664547864586831781247477514652306838596667255326858385715964993229773393842068569553803795346989929050987665297619188721944872296952535346857316040867603438888918973876353431458185027280736178851887066022679666784549414090661158971757276408287617742541026528775799086830653522216035527200200819114200962144129017590157924145896801233434526124323171466745130858209180075938123442761923845422152513156367791488348109687955492543202564344883438217981232725385057808805720996664807800529805713866427711580579455275011203337621310882926425821523947175500113549431482848445821103825575659393235425588409600271343581718755580763753762502355683738562679698312115759649346237784135871055442874877392494697159812518565282202694489451447826451993290508427913184136772710856003806207944175275810695568239984869106878860264601739877232219914000127793704696070000993583751930570622912622245061007662117662494899521055152386808108730208522330718344543545129665077859592583206661846559407343626223705796783327205243871666572157652205584306135934978250470192373207423439047138728349890624353365463581179525346641516909047519459588016642098715073341653022781087555652850729590273707002845610171912381662204753063864128750779150090549394748875984434050394984760866942204138515608586616825552699133808324820762549646171713434518996440656287446809002634119147705796362603315942305635463235094165491861108258675912524266007391331359405099212446270641609087797930708632743714207293771562655499003461621538207263349530694899519887909503629452554671188885300399014621286558592840214057456290145302715455160373895062031775001234744546419888189674644000324031354772787609297420427587665507678352879625944921474266533290544992363169182414174972403465967957820775014309797352275578350981595993169661656898587769813632488241550464007698435609318414396347041314106605582429902701901428360990001460779863603207202521614501746688260430172573760272614063085327604934721140745087535148498428595883441702960133050245688177189624659909113225397189843347391125133189168432808161328332485057167513237117659725323049627824827081650337660999223158253210266167993477613433276525474461670939349574196189845032682076408789939756719138712463544163976779827128856256421201472129159764630400837768146975613658020285908490050871160417956075108826239656652545734633565232702688912802237509128044551825002772995804203214468533134280581000413026866081023095680517126275151227876537059262361017925676052134526066331883786860036044902028010913587205421846597316173155050257450724566456085235150978255084578556374697992167449573296708023825969192883354934495247910017309571700617960089780495755499707277910623086790786080937511414572681480499504480176134267047509298683554074745513115011817554901101263230645106537789659933485577234778439305554887009043028226914126065298294661064820725904746660134098572223168524438998921486985653314062942497719687721357180771420897791321998905423885595589594899379109386689599176852239879931583056644287020022242898976978879899296348379696592500069534748469847695053349833549670919618512054028795359792340759631595745327319235739771357689121138223211283757839900669116455518622053581750747743916069303810362596839939722038735466722427608099142012499439035972696248556386917902308582491765351652596612012012234922256532800204365802824472982694256614321334249777418178758454101504699460011784666180107017899104630029466917565518777602287324257201076507674766334626414534960922128820815388320266204350423470082885017397544373361191655828334242641742963844513855646127699892223969711690723930631466301667225932770220104512743503454908302387527181853190425052414720511115302163011946566462107923729708824168838018743492163682201214939700540004808157184596697202492569883627560045251212354079925430528777039420200464190617556352904882171247096522769737925354740161373351461190105113828275682575645953928355229418904335180426042959306384515958982595132031924242179712579776976369797797757743015936368930240544107120827907150312561626558564293347218256897965195637358181600488905639089429879968943177593083133468500282725727003006203944614588185496071043636568774845813741201267423350184972349888461572073570615454259898938715519286839382877772851212295042794820250844968941744739649091624806934853462979980013739809958521269358367992437260793035617530191649564738795544906944170458097232200444584907127686254552172986430852531326766205692129846007870872113134386439262531144335969369804870989499910961505408152922257454769956576618696159112543762725123948287623660509279930854851482637605575592645360307635012931490450557715233224422711799640638116894610594088499395130113722125700754672645829006249091046374139491301258530488462693057579944839337172099593795576677246819825667255949259346848976421123841684893937732069997903877505915901808273239166611308261808835294942637603730968159214446441284052450421968646757351174110714737804600560738396808252118572569660729600786079566492498481507743823960818249624097599545958236079330083185507714818927451699092741869095500140096698362434774579544606290778760044959672160318952675118515337877137752137272728043606243106707819123845724198661348325193950265329730910565684569218837226010297086846999718921622955250890543195670098787414473062353925717393073947558221785611587580260331100582858171325497010624230224900463608846703811873173012482655251630127568055113497692734184885440601113496789804863318225527589523349873292057338674346932180019430138695132464320099498739836279908795808692061841687214393957254930006846642992417993807271835794564743304303441014960753601778755599184014727285393221551879901859414375476717583934860561622799263769317146868894287183066248508897817487712066797174436821849939348964535442143821931502141632582087843066759160026003008207576057543816440211411465362829119248094711827304047003066871792688805536996455529690611484274557900921023798312979557429964506835168552155938180460824866718949829039690012297857890848754269160661385528957421030839579948684016579057567382311914318517126990773599439454634763368763748791519355035309708338040202194465508356505165940613428266490889460492403806884923778984569721278486064950061666942913818390855881958053424326995607522462768806543634827270414642744002985675641422636411905311164025454355669163209717610559256188088740769152656088172062797071527336260230023323553802088868292647421028620187408955399806902110821974155904437773243342121116218459979342195379571855717661467395579723744349428418735588298486137025227381535785856304687310654270026366091927229395846379977944831383106790098084949928116118771061496781520219689877033220421174004434718221388616097323383435521931295501233307615129293419816016185488386849897304193852222883788994232162278025231534944640768442445783085098539116666049886663542975416324631439930983741092524234664794769400562577498461354927612266193243629245981611028732713535764338207098885884644468324714716469153068711350121647669479338513816103081742449484982892267122499499270597576383924687445860429410004558255838766331879584432887453894431217308135708282948732673788233516816906841862767178660664441014021931642691870073340645462257893095096398183328707866425113838094901380452561395923729995381022456730810426760523483413293553082233456202788802491834113310965598255382654523973615372547473775000423900183248799063490662356741353904419041830266329067644091645815891350332620578021761518927948207811864661667500580088410886475963227689016654837023767559084288317121912237484341947580599999480494587300660941230284365867604440170961843312095653598175183068206668913876275385801195821077513067128292195922848454985485900716314335426483816214235418244117488134848394324255614946275652217294901503667428967048999234560356647636085517023217446540897531294810889209288911142764860964071906914983366625653851437916035340477084181569822857647396815306156144895710438244513299636905361012875136696218670778905008207470214297119406044842387231491844823606385019976094443615140024613404121913772047866548338796799318060793841567628064902692769415893786205492462981680086394510627699312321851200725126633572017518449843628871943607216532799888994504495987969045573200824614703829603440336247407563735524096353179979359592076866083173102890626757578540183101155707064765620071186396985967542194398459057329684953083473644615166609675676196789546145755377485693027697135584516760719315619632794786626095410498432306834814991737103521792846054648668437691147120649124355177552934406416576947506315909671135206096217269630982662034530079804076629394151015535634464065733398833551796545999829638666472855037364420074662085006647805824630454431235799100790001854925404057504471834707631443718800429352461609718897106991387413149592306021281484809093472873969078555371818663111043459723647961027800397971646092878469105618043392364981150759906769201428552817369879462491100274054260564161966121842751045398392390450401286320937209514554033485801160450362416760986736037416655265466702430602850997751085912304897360066172437182427898113536827509486695060261368851993305722127002639491603456030223325562412148886269803398781850487712324435883139826898841699797701342887609111282493785993108867783522657368174116537641177119742928071169307857419725469767980374290386395676149204943078138516432365769124587481562567493608293368125398344665610087229297466260854638382670087085736948971039270671778808305989161697222778015214433243269833082584975772335176818356634493015514530996706133384246595482515238482414770440408471343762491086395330511475947256136625873334477237357862950909448046192973541574220472806814284360741646403174385174953248875411453870392612041113360841488530680463879921886980398037404440017792676457204946928330504974271608071419471089568377771409394259662895254302937693871433127979082333600369872380408904844615568790126131815056971056105006876779950924471970734462981016383428063015013435135398987743285897937153653987761154557902102651729646895099676742983714845098083756264802449413133633756335018859144653836750923823183109786434204488932021771179541189582417898691384611292017915001376113453374850246702496711169409550243829319767132973615850573593371466240542469391098633136177349210339059981582247761320932760810967323961288645360329887809876884206293833475792538193590315667018938668100074653470635040170106568145139062454211352192594464517311265241190282589936176346538256293027041412440785939374981263404493798417755517519153179536989577613841515162573381811510817681614732690453421978756934082039080440946099575691503691981724642184844186331215418023442278018393089068148073759201235677706485613224603778130818672648628309982876758423885977466734559461404542439151041224268563602953015452340726939066875592576025883749291549343908036493410605597261991359814210042098166737423454935682346475499921127664002308974428679663075495178597277277927278069788566323771945063153148682250821143039140864378306077500338778022101440897334467358866333541998600512206289999824322654667683524406808665698112112624296673228568623796025458183094175304811180916158141949518249171530053718833595669737663048963970807534312359859456679013496991277143977310878962016013179935920691542512918436694573004298228055430395418619076202437795652131396859973538778608370912426355465116235679807951826758139393886710866613130988947648432714659198618523752873778710502644961720814416206341062990013250304644801565617841240333798362486044189193172127820864219677439876649452222974851803220540730022698553922010125259344774662134826160276230482950016027067392374738806351032960570886496357796099862062746878488825053523820455181297303910147249846992541593976234013418233283003222622914226622361361108649607556493639477442383293626012772676369413814038155378595100210066380221331893023054704654962011688416196468411461409642943970933804206524116102834958222964488968259386285805711218610572497728725571782116123032574400465636343957375121856429193109434297228327570887074225675632721867570979914116080320790244714252186084563287097293977206846361340144603014037150197030974263867674982706226737937178474270761654835278106958947790500931931604964583432509007854689393995098788419951232661684319674481400742005894362032069156718972098529976754969701531642202202610353769519934390058560709404395231674298114531788882034874427777705627439008031432874028469586533395462684638297425110563083739315799638050275745683652253408385617230527411025676464460173183689060783254911222621915386410785078874153342517912526707420897586125413128464450321365004761398952687972769435353246534591165369834319163019239207144584016925486042724436519029820278875193044164667278131476698511079157118763506580857641771707147908138095879116423314363440155996031607874504137798336068370097765820069530267357569909850346623128104865664953446996479853270415130748576184824156884829429898881004483878404424966409615152626459343043397783428517945327274426467783891754376677901690570425698315488951028350654246452574528694902327496264945579320530602906108044486963595287965601463524308422756132646093979044578478950963463932820319956367596612789203266984563540973506416131266631693481552287472418929603500329835081642790549588328660446077697607744076788394637295509331945446068217717055263752228049334482792110074915175543429689798628913572396650937734960304440973021387261488804453338888402309239454915348619274137704724256594579227338837604324450740148751398977727345094346445750883179462778993372122976124542736835812603678527637891160052173502012198463592430326155815454942105594602000337389185880382322632053903732019202372527352965670310389436231480317610610430027885273199682750105626392724184885108602257295688330398391576356325005135479386949954694711668115979542312604666171393352146627999970562523819924378706555300468079462993453600165463206258720339763665011615798586279358185537014654389585452570349915453350083133494127499784431340896047054460605608471626986153953644233941930761056178407289443492207269866754396041695986903091153452210432177242826570884039164771188292596016060845530927120898632806147592113978325585156211320337861776058592410315619273450799455522548883728646490615196666366818915860690594658668747089065794828325829490707141550058096624714546732713069892191689970437263492645720719534062895595577416795601867939562932235256993108921679472286775680219220497118156730980562213997708575434708475692781697164307773955408335297993472247502817161665420421676038181161159104331145962506788425984739195102053072608846046995181026948035488220090269571995444715121897611925084603091237869347355048141091735931409286958991838274587764561795847104518806961965035720903760927118303821966284344130145974680322499879996545436840536122340753002707573038438719489216384432482578552883949707658240048168179330515316284999471780391532783241213609646061361106119274361493611052728871765733452345589357368343305664769332148380909249783575468500974541088314660617507989021339464076900176450620234768546123771265652159550990022134696934915156359646610266341182049390102913900168112851686288310331174237458552512753105070260343157013302251843082884730342056849561112600909638310509934905465709642741543391407929722783361412694173032419029533925655983406614153437549606366254315361983550027813430415585520639926897986413714422420072105397040676633048794299371619929688814546151474385231077696463589463700812010504307621209556493456515215984777445791313743798461992105629158101645277721688166594942240209371430698724662151857225642295986412336195585754034334633035607070683889440022556008330755956287715914257580494191676649523079021574371115932009282756844328464716391964648453139731331573927211729164501921751499153678376256723863854268775288612131064242804459024450615432815158079598071147285067011667973382335542190694402226509045290335376728108168745447832086319243879078355997633517943974752410921071336526826000400908640632195878493878331996717836945008361263963142025458204259594548156817640642769534538994164153721833718732620482778678462015559615203245421535154074872141960574108494203940784530544015167401260265002408341310578598950892176327922637299598545809235195132303896966802235480809006289131544895820345514566991325396188199859620350071260697150823524964159117479860763079902885474005137230326979305162849885238675344116906888914749879499341264013032825344070937307902543337340250341696611399750061332834444743963643379080933748275082970067741725661227336831845831954423706208808691401907563711128096450164568714965528093121701646847802970653891699002433769442493874000221281309766185527433315881911592844406522794026621060890560851273607121443735224259717273002520962952897375507355995909116913160408621190122532164336338408184905754924340772763946522650048472120005745144273621276959620256752879613700203528556707815987779988509992422532000246859252349252976984979408421591525874312053669325313323264701690811637689227758368072901052357223333454017025231022994940904863816228160760369902024635870312665928417017068514329291406830131902340709618625347063926195563307779563707990438992075017444267523154483661584996231147539757211935368617079591118704328195995842269505067210301799820045295602991795835841439094815297919861368805427892695466749455228892570626255412515672525687183835619635933819158510210841130148030894617929902386940716923520953904540295578291180260725264761498846003079304337602665728152157962357165151248072255192581801818657585716260767216952134565729595570547466658301904937032300192258570196291663555528206371304976472274174625632421506268647567233981458051860960499523748429253874465764850432484710990070507136088265507996375576648868954026901154509054713027596997010468767058242563227279553376388157046835172823764568668026060080580716225180937114065118436485567153594296839969938991293292832390283532057870316701879696661985290719003987610397978037105718157925533666622402401053984803919063536496724156524395538358596542607312573179160852820447747281657815567335065314741656920777193827023180866610522450752426401526744965991115135621298610112090457512123731598844542138457880252795276984898912628292835819017695227062526535787903663833376870158434466752003817791756270100860391299926108978068357858191087256544398466449302976543141093038115442648771608897931157532617277646223002459510553873243179505640585472470247397073004121163370009848525877087894434179382442134129519475026947853025463167496650554061258086332948488253701151148375585645399168570213033968755967311966860160437669149193561149812114386660695900833107188393669627514630355075737516925552590486792513714702387867495174633540496494208020815556970121316237655131165864280720899366180641180924574719841976216621395350276485050623365295720290013367305178235085209771164829664845058432100140295811522297600939693903371348948370489539073702640372704736478010299328833653558174173341775736519205851753513046954719737468436832298131246695312587222459798506968333754773903720412414343234020814270131481064485463096824576866999121971059573914260245760764025074563808524567109406251958161451127750601480292388679914503908436060900773585420373603290254444527280439728418121760524234318682781878087504001018226470045305293519413495507923961502260598265525116839408179241964330587426157304244358847522015508831320444129266359618437848306573273024319904439606021435808317353063512569693209904413755637294540963736270489791948048145619000180214191426717059014824719798644066628658457390250007045481209349328090454526779403402063590308957721733444857922738015188598674018861978724565073564258223250757872952884364808675439228621328982133703759215256271191419717198826892560742461008389398486702693279522913521730984592324728520209734487448460800131121092278533612603245289538340624321727927479116216289609292831926306321477168358940508094124397055476354619535716280299688518889049125819960852360907180802811076642694371138509871334325421102598925259056411220262724576482245095188389704640444548933750341292457385080155841794540111149901850031199710667288096911968786654351778812573929228046127125610337196061472022286445974323772626274118330113795707531819025531651590051490426883478640763975023447977946033851787364758138788991994863758913747344167497151969296930560958861238583180669453968145705950346976083636844381639946439785058171366960673407005766032559912597539508775956774000385845042727357175202846360840703654290825456932161485170012459673273957310820001652530953476057333602649919534658952854490807038328016516017098452500003889322949956879757826986178174058998931773364720213509980434979183768897605942842050575649352472916648899256845515271158870515777769610800132503829053020485364609578915152890634026094516756377131446534747667542620681649871863305998256484241716896604207770841804822441937244831765764058010927958717498092346232579490242007565716227371667466747386447549223589851602638364836136468026140694961727659537033462590535153658283316710529302317573130658311598111602163420899976407053864495004758619610410854741545499453887260249442602944052633325083375681087554626412473853020371494833506133245163494541416940028842943183334431292262949814624497072670391568244194594149065650379281211890380286523761708147713197337528120010030280128396736346387957303915959718588480812289765533797879711009166798945696474631601798451941339028309734103324850409721928435496493843587857674148870566957950820822077320596772536294672292319434557965434920427621813451021817607436306154953330334031346235312860675745707633136979762951415189653305323698614345402676870809238990786804551130529236856488513992078987052378077899309130017484846399780225783103713295664395754976648270539900323251577154124150636828920736116505261236645716662368150836920165837959524639564625318643225624091340924175448438096375315590438615276696135028289400498749276804910283519012915605229972586042324780945878460603889310241021472846215196102014504002219641409153637229784959985331160772774675825918890570603561979070505476086392590406766455509764452776429940511069336663681113901024220928680960439096718736494862074313894420868731077460128492517993160911255671613801577463924576626442173383606067298103849469527966639155344803983381875282514235070779125559355676542937587675026606341869939436309053532481505483940988774126156571784597091311885698021008628670711038669615184208178683857443093635108392986158192230522621491908232184823620125401443452619201578092335929826065325306315219157038408696266667285713688889365623292088611953470057164100407139893572613678046186728873747227811536486652305387737777274905241671218987472766538110899238826165000759993704617259401833102849060264714344331125978628521126122109644624411614811528920569747423689015284907329806099030564604272942519051080732909458101050604746321809485514808768739205470821858120835345339868468315879608215346014180474357027602477378183168199417480687243638009514734264470246524108913059375431900862570234508043126843692643228555882213875162954413900948641390892624882009921213873892974871700596559681697489352285100537704087016693926263257143250789945654217236321249649470279525294521507253821886786725426071981372249857174317870627730111989428617351938350432109818518608606694621501394958264700604746387336932905674584338824424273146141070432699546242773417913152954086227923425098882954964472170903988831467826000753661183214412636179563553376632982029788200802242273450266170100030918486147625080378912902518524372463022065346788751126445701874534451099628223749827319666821217624036126683314859243237785796573774277151911041801570917746012124848906969241009817903605728897051066682630263962408666517317555142797440473744464837962406655110081738628475127843238620303179722654722012874881215730904525000540089050348572795125249794876227312812329099261447783608681007765727056688575199521207886870160972606234619941279481567991353779527134696464611546726630649298980953799018777344922632672375056160229447338635463150559754833276362078191900516689206989092615974175170177773624030785166343984237096090449355335292938356261099886365810867734481225365518632199682172363658078546653976822145634866828383825620446714844372571518603961102785196281584918025158908627890133892808143720502551312006694199253378986357252708236423122044781191976020350890123200433538113750223050341170205283562401888127802060591721459939960574076859504774878951415190387296532936618771450464888288349593988950778726345380739008656507764502168486507792912927760077019202615543063203265425142722144125092365214639472188348046427016259112084266283339591985756048140369985358552769582867379997506059505018210741781643254023949857554503114728026156298255764404493105496555628798336780477556883304713723482748721132494198951199212710483411190107831688169696480025221934696182642725729654267956339406191645892003167464995532609397417641667494502565391732540618794648217743960701955054341968359621933220933873689305876955568417575265761730761513870421590640840060129733190591655516462520634681663649675028112531687945273380215578825545862875146697010537059832820186630508495307019289410794129796672461459131030624040853454432534602381677321329187883209666588466095279303330975622212748182612950689088782435553297345238845105160746268849634894363672679788497917279392192578937930802253574945611213093278873616666220981555880992569201651722128796226275425114700015855550305783533512829344670499255890347852993320508980238862370525686233874710353807590446747712184775134463729343068713147054735921854429975408331931435796852124542217399250337816542128310462472390571126761020791216535005722987994670063155785680480170017244839073585173961648937675897192189819418083008948300691925814094943221301958123450125042212569501864104170581736119252921037447709851822908626466250847893960747446798999797496697473957894315378897269327717225779080036147749320342871243327649489803800785697478403345675005237921422448681021579877826352353767006922374437451481828029281703016356718605036712547492259709511866124934532798085827466824046190600140051371484476203978971448842803710920226384824411611665708499640961777746529692347215766432425404116768325393579239275681050560014180201404230750566393770810090640678915454334135476293547478408355605068119184526137568723035117184824658632063742853289903380437783330125470113373777745000307537473009042133384603178359483758337370442157656323872347611817186986783943371655761333185755251443797059438792106532993421836590826574987134424175511150920633856017760314175523921732485230962793670239573843922333452150067003050033222425046771926402099533717044196938307699593846866761709757954132786439619264926193985017095179493714875147480470796088825354656391556116306478203773110489409867693448986066447435963258644570526335337293359664787368147281903692279087705492436218093980792939595455640812544913111822912936469289852069338988055177009100416199561568276448734944717927801909440464836019553878237118813139538507783304687509654828302755729284136024017118523337528075105723945904631211597061922250718730856218690978175699183807843721723833384817992923916121648005124183192060280731227757828161357022743841970073785910679858412890174252186996157878833370792872717553431594833376295712640677869071911886964564871685758767586492730517597992325274220786227654902414534843405271042415793742119071345714654820420914185558190247578113067500318736878598625963015883458890252471568407446634476924734269272261147427881483039965848103176705266897896740385861470075952606207360924802614234556370390038617590001714918552497726723110745674703604717453018745789581366135597184909415206683285976726052097904433948399868232221899661259211484282472369268636664352918984694190249103703145438692651851713550437037996868142181511684323292151273533481002523672020404902034703493149444886558248047742083740901866075663698685560071980077554956423852661512660184914585880460427196993012553138887304890070556839691107964658465726627721389068461785837826046714563764784836815966761004412914245836351018013768335004884182143062837828629978413036443553545534580190138327183645737345002668020903376491565035586475839962718093756703817172988441389674220780627474029805065461936171966462779067785434241616922331736846259047914642321390129376155523047271090892722178253574691207880324377667877180168921195897659428532266676875001948480872037361995213882232271767621069719474764909853194341510454873234794390144795862839418636071367499910440017246776286804097480608178348485567819932819816934128579603045118521813554026526191302098067472957354293823786285926141716549632308816836868991662531691239374561044661330549311653561709158692480430454913558880462696944781980637947518411154498921554079485663355641340152799365391071221292485205243747410712209387921243964087713468773388556839877712091400205726321187290533432562367937434044849117937569057439045718506001576968767901885976991489283622190090934447321610727061441078003282397082289691028431560569076210311952853158613661838900597275618417230300601399896450199851240019360571882695880338994772147839658247144508382769068951856351786912362849825588493588115324736955411270298323114849919354621544935344124788407726863262394551400437718179984365780276374250888406527561023175827071900417334034764834544500395330341582595287781332612701021996232463054051527072569246532247124864494754910051134978597731144115833821926773511124323142929132683134770438845272807723216749115180905371349807541985280708172792251019005385574281448688456752595030488809731527772336314792994373264818647772213333298280048360886287654692690721039543904557236359904176293401615432274278187905041812076177906353918742318522678688990193803165710337410204538373052183951408336551485378914967421991483169461622045098225093662466433274432680722877801677908652689009597515121669962274696214909351999407708166458478235495108185237950108674496041235195009243308048440151373146363578004885997943835926622662676764160766381575081772478746702204715402928256093075703239683396151498782850980111585921053380332604670479096185993812140170021185502171185386452714179419234413053117874589101583488686372648083680771679821803069780300000394200978295729085261791230447064782881416903507731325438338096011150598173242152013963408646748893871183364156872357928265416879923249403311261677321151756613113340579541860782176588654195665788775848265314945509072778393291235008836454394622479767572645027121130596738555676886948382191759437492809376843670713082535308434751405128202880500501310453864708701532576794475872057062478466312991362382272632900333112512104497858432505007801149390207483401374484208358930100383521142362415297910493364497824134794224953706278625143839132348079620744700826523625631239818605244028769162249101231483251326316173791987953374575106409477626217334768962472345689104431102257256688359451283139163889876399347996912173592616644994938763313983915400313315977168125442119654871833575092269535186568188057580633042271040884781786594531160020485588855044101660443232706166225963057743614352036464374707801144781090085732983403886442101529523949364041304819099328427021819943172447096562660857439265569661640434939559250835072234806509338927418361219251523316834460343974511852978597679145976579546490700695293508807838665908494870013154500510282801574901296510162914040179147123708054401246141318270030829736995635112744154247937522481033464649878533527420876081065968858496062947362170741815498244075471367777444144887425291468666377604470300550957061898301737854373252886891132159166621344870364903229182635871174685182231659229019789927439800904869282387025237177591712730528161081125203113592060853582429123925990722641445099200668327445640559386213296010798309056444611584512425550636403042996414529960913716525690668781959148417082678151290271059871285147689470657137499050973664725552250482480062697605605534110824826043514600441877359033155617296880857842656309291250751827455764151904057545662428725007384550494858675112579591974776801561110699356969505385538583422599341410338208586991112938311775354415203934549203386998348968926623179686645300974368933112091188598061403486804914393165308099218870847608506320876804626887676520709358440480543813140349016340853012630709787760396906403052075063266353697284199056406721330529029970487988803580110768203274520316291250429838765626461934731174807834410017934451963028931656098040255710828783477382808790549188433065422382353569154940812237286468156173242591155871408110872822806441846677786501037150572330233347912869646948947260690185209173309891960096934840825798924555890690163904643644325645429235275896797126894283390798554809440311595625658791544100835726479378264490190891018159297036379373907543493884749951535186568880079702975577836664313347677472813233682974635457563149087295993045097786833701322636327623212559529322345423607897548879585017664636953293943687633946060152438530472202498348226435728088539837251337366725315488553416363235957126937867891430149688979887391897324394581746392166069512071805040031138392763223628377553175222236063040627732859125071252704055719195217878903190357004623552085222347457395391418081901641977440778497283040829677437745642135310015681933051811295524644401289195101994335229755981292812540393099630676598998334069183588335938601681810802835490730882210292373881103498297713192394794126566213795642333842661004342490647620482559540353872383750145992063461627876350571620103819586837159580227498923056230610080772087751636341434369522358366088317971018710529327859665641224761271141237981978341702883341017805363698108430077502455871262738105917397162956670121481120787577133434672055963473082708428076660780730125846062349071209240705839165304654222455253670606583656294733374803696812335090676674336528768764907469514267228840112553234656711755504216060515866214629305392474786202235042507331394938564270414198864842121227679564499237869185852211526580941465556629927694952852037884439814945580063596579962223912681123418054042251825704600631919574785973378903334298361374040679540138375386730582458047741690772614259086524472486441017228923979917919769522986856410518862395605801351697711379654020358339331577739538415384332494245999457533305506780367483044941094763961710560336272249364211486309086073162810021284988657380398290701634191725349718016605707433809599992137933356784551297769673014844015522871817815535307394394523862290144661761714457953184257129737675599182624681619672680626607150614241099707184075161191755083819467672441877074016679930926344745308830928869924124752668104299931462971971551032709317706646405204236790268243526170326953115002346316846184296992301102811852701394891567430584852664990419839201703559821992367854055492316443636792205048475587983447822057856487234211562367755418262746975993148348456274935365634667778712200795939024173208083317780077156663945785467956686597683247709020834077360718761241066275901733598359730942407533564726658058031521028693967005086580448305798545286396795092285611905143625044734300314527754181919853145830300297853027035666609251182525292162538397639341909634408196578863206072926151966317584016369670805924893026360262264213571597600312993422351278243285499228142197510456368482880441731991105483958075731173460329698568452344240264566454772135977619922120051479126261883916940271793727285355921140583895799359972516571058203660097919704990756686551126285666305890583285199622493570954922223455916683799189544265922157044936461732888935762318669041127662203905265400486696295106679737235150539440944558082477536383413880068338819648312285441540181508329639511586184596576532533429469668603264917646018700321760017957869559124840105946725448495319780064817608299443117144763485317462786139025056696461286333275953324541884655384150326117373487406156380082780919565915704204565917539047460102674066796089377244440130710175127018927810767520216939676940552130625366854281603591722562518423989444477100608716760431387662591885494732715078802537551216530069679290814191597680176207320500379173903448837073573280387585465385168954800486383763631413244350426069681355707261318957887406486760781551032753888423295373636094880173662027228930679423314629540269971291492289722907623128893258508200368504765062862178708748033185931388735518472477824772945162478840475468580272167501364616640851008968082835076589504336899679657726624867123348227405704398991775054108942110428072194159089709663533204654426941990838906685008408612547003651384557927425481881108892014428492513933567977928167727339108186243507924130587337970549641869453166357400564770885943970784180992684844648778416594518656042900740110122139109896743617569899293956734235218083440391185296626873354202095340181572095438314192594390729445589982401374889245150815974739999989273175137732776787943347220113935307811418822747642573468376203306198747188952010089607219965094900636196330177747028553223135371743643977365936472366031133712357067474387790539928148508678159086190692169923448611407425022599246242588780717736507877101104821981473400145147619999632897040547993572035714172067413330345985579630164228005822855849365667323951615941385390542076892321695981002081935292132619928547653188392172119673746706475891554005130217558336028520404345900665247707108087016692837871046910852188811747413497872037727455452851031188375353093433510477505246249698301460036003898231317251862131914613121087451906242350829321684087064683401367564385988269640976582975149249522366247192184845207322861865165910001803930462427534002062140738156079801142344848376323463202529110039765741133948122739981525163592799589299332996759284425518435395699388715074751894921247533293428767651443529681483206954746413815691497171918375616815440650291467037550566245833569323259700345423988450990281137907933017393783909852120314751730996669031683835859771234139350986407711195834173128092312762762283513773672214291031870306582008472912046480216293239261035714995147327590130042213348070228824917416827055385503526508774672880140520970511755806357188263448716335886580008138802645663552988242033838699766546070864629724013768904811625035950350008508667206401269240109081329485382642655069706080625096910399829238382295351401259089213641384848828704556204699721953511254358252699464379172416723046221924845097547410579304011620454830029746184399840105118408006936605085587215640997790744547362178816106406032790053086612909762115729286748633843355430608906679706530443636121478778193460975100978742392732148075717166001618450016147772221922135484675768152415627836721815752439270398349370827851521164565439196183041005648580453449229611633352738403849164152851030164743297528689064840241214388231198460111535282647942257910991151145912746321110700098866986325486098472852595959101063572177508393387843909187046292777149147924934941609273129387613880923054487976744959616126556066054895068819883576284275877808979421232749731558547174405409540938120621208008754778403024849003477256632348762012257490859841687694911938084383438815701295709392988527946029946085703519757858529750458602729440730866444723688986681102104981367588299628385131041018837256772926150618998592460915973022298429541664314490456199413456545239922562013780148492233770782512965994962013135061476823355457979551318991402569158589812937480932940837234758992416800155098284959038414413943631465072787751262556591325700641585773295859731530655462351005486509790606447801064924027596006004102865913761193564641841130715647786147127873425353995539602204806541468248174468574973644517462932951440628374538952239474644112341942532879856022687368008388988494148356965798488089574762628782170823445662149702301424918916720831498580996392725763542401035096613031608250742813899195598034129224822142402397749115974587413975471893285762409711686722409418677695831708779213975238677253209074673117851183116686920330164578426635334396166061581377576182462500383901884154563006998969043493871042870406640927542224977480203703217166278284824088687921451636536761300732358857671657230224160020277871469930588926756959580540062389228249303009788959373899704644655933780138789746850043132268540154012542837998963746168605450624708382649913125615425476259302192989565216807211618603615476822697543552395213689424739967083211330648759488429900833444591168145802098447809860666670215703142020542360968039699680372443650337208342844226956865344977976115906580064507741608854625231207380682647194533860148461635453432447940969186832815549154221473551462375898850651721505650747560987953053277410956424821957663014020563538726547378799877730170040469108428722993479073375278662075525272321973984812908711151669634243151285667631013526895719314221212049294882162337109525990598988175984077718119036738265046378046623170684365922932783263649015638544024195873076903620348567752662108863042298235936926965916813749674105330632727170527444101754700782932035205838550297662556149808084095415257137189726840793094103205877416357676465842444271327532339447630655199998325464082949986752083890546259034825425811792218902640131560368287761920098244805581894589342936333824898769306944833558626026909917709628692677703068229641520129153737072735799760452745018261195237262157565174534573990505193660062560934583019290518395402901453725893259581422484309125867206798874067934439968617490588722849760173684311486593121814089942538960075041304662554446822678160552944271581276146227312998995069914905257234484930079181432709702673278232338270819353887067357229916031104153739987109644243195482667172380830715682846046219536535609273612622938151498725606089980789091674972100605064394791903033146446955867004840185709757972168188601657930916061596376257349086102380863663368897483659849321254589715496971914233115803099714639998391015698449207776270323180248762836268766310239312531921544993046392541701191201714867113779172525527670993405668996072395965897058694073399295587109563649768097711735246668519408029141717705848300363448827598058734605429718369743252976405610420311642431311056418076739337112741980079778002882623179032078157193923273878236772274610167709182081968960440514382963190023788804603036030041013321233099873621988527253515788787419074081305412592551121945874314829046483975133116385642281908073273708521143155487539120843768862314876511122378307712318402565562821479314448037901852996528526876844038512319443265545418199919374800334246431550757474276996807367793904340394094379170412389259833223113701683997972255412804058448969235578234197182885636160567466863102090967170952234904563853444980526775865507759776433129937345781874342007939083931760681071230797678166679730320315099004476274162584091267852660401383569691677180883960221724699241304414107024172462184368759624425190646920900782258940314122382705293088473929420925901430768649462825036205201232707538879998292305339063225981071450950990577734404042084389132347463574812393557537107277484548413995732512772359878035890532025020727052120800597211404031387301766813408522977682013185808676808661803340050685410743965218410505511854045689971965008624828424649673236187963002688758638548299735639105211852688250097634793298672228667067730021221802544264052119472233883732138023510387755835403991973202845919772168711586958420762507063083554358821166990576220538849234441403073213400661212619396451801520477920359044958857005379309014600514613630067532516531606355764121804949834355817912813841955607059559370025967230397797290802260213581183207911661056708867003491403751282508098341422371626919147265566231208270777179498751384628530734964033439528794736767581523038678453462541660779506515952355875440524342335426910124734346759379489930480405683001724828565435420903409276534949901859993398369817267229257929871138104770579189418156226311325506306825471264568463768795447476214359710965616576290257332159139079886286867352860273798465740443965133971897583221956630801673669404820129095481852499834189963438448412963853035183646711846357141392009729508282582817990475583632993007254103750790946594495691067898652323567456474780995637300858063115830823472119673174531162443072102178498426716982940999584009907454431804084861379108310337350412081621945257878545466190541159143319196327342236113648216330275216819839943408508521489078071257580291359564225182186287146727080293597022439182278523076065105514062610293836347648402293643337137031663396757275889955117997357032973588433337033424310394138602630452912340962720689105762604487157782179301802171972144425831183031508202564483080376860795057968753289261597589216469465151173239423871569661967728969808007288040412470171534689143992243191861784517172583437960552197458143446138400777936171108882405478021629507128195003632411878688723192840124622515459014610878248767296369771403096186278714408525850693818977931713977408425418847376607703916911927629517054348443756376601524227341712715183202738308835683384615913212098564434502386435440978635459204509014845380483682305464003884265397293119839445513997217707805788731598431732466958264868170903180563581050370104831862765034630624750521256965522992033592497130297431829676322513418429253206843152748582830153655019754014549534266777095525836240801675037927843325774349789760910745563661956077068957271197825589334191815753222528909753693731807528130229644796136093586717725001378900102031474730035609924656280562000993683573891822420995016496821215718225590392640076999454653188374752461605428031791186726429651902849012303837185767298595457098282133451081386740731128784249609945155206144688030941450076950236454523092753927824178965881451490622660501993329037957466018551671878049705588795034193107750658067500198020231227046679430078779712628544313782653929460950504723292358887158042697170455110599632362045923999820736403110267264477841884761299058002748931687199038789690656178161912872910369667809623646287959258556159121032077259237824116601303470361381172067856074353959080333701009723673692221317948158259581706250001204024354971808804371442228471699323323290957614271829154331001419536684461710953882352410644305622236040273129185669654790079885023482862300161675087996256315987984486678571986896069816403080462350547389463203163082450393030774306087320871175146520368220082502890116135263191109960892597808696230083558553230749226041235163358679015364954273809799531146407383613445046722813646420218876998278789235987327868711806803073533906103600319616521121019063999901673122686848725967646030587620253942607012812902186567929217950596243385838504111566681131441592529003252286757706171849904470142136885187816703629616255232701002398296870602593694600607370899493403339997577515369082900830983248390307956109820559798808961348149307311747506761214436946729041060102612193822192684741911225025212652502602832808344744842732298588865576824868790867062508895745476644308757537607984475964066390268984934990644776718748186000877094380668983556291137487529460441348150952142775294411528634194376800784986412776571489849247904187025342435707939891416896835371498564022368328078574179748421244903736748963090193666273452563187247657029598251872836915850468828963015114790716475130471096828227326417468342148807494916130516361012725306273904373604686075519426598100951091861644384434819682085290458496439471642359925216448684386828277464777012466741088071774852295267458995823404591587087070303964640493760459771690163250828352847801167750659637160678149643488804259589531344277878701115456936708662088424107332377152996458628819506243175022893115907652021101313082080363938330399773422725154017662879961891049511412881168958313496339423632849622737853668138114131329859158027252387329828579194522135441035653461315399689183771605290060281196885126747620956158235486168795490698791292985770503057061736392213600460849651503592023983104426902173496097004060262002677608099890228980370380208515948132597843199682645393299301510848504704529110385094222064936482438101974504163168093547741645532439955245252740794793401648743129694524612228154515652340093046698064385725000170814835791901390133407759772688432715351067536574830574694053896485492511992660134683804864795273902598252601385662196974031121995623521171253462432631708014499534583515949351851490014162077887097384562249719452780887622503541449441880828023551718401760884331870242233402829757834116744260348920901982586505639409622347104147091128224682110836674311023230638133505628152793966115099787170933441683977486625574586698844712024459738006339655941868312370942969323534571470876151295689207239750653834837397142287702336901614437951016423880027569892600192325057249140277692483838690268473761637393893644478632040498783506805939611732461626544156669663520248190847473796395158792595366670465375493039566616253400121431502805034433646251825460443972344851522360136561292834348343859641037931195428893444008036147122161366079171842473931839102780035578082027679432026044467013151696467696482106464656168063987837802768405422274604155007863208399786394681958664998671098798955772543884245557744640603977679522695760620902816591573878742324748302732385489776448689796142247391294282963773284789349862150317700526691547877321753255025157278851555545114407918754868900712044029779423436169032971111248189419381211315681138820203851305658140928675778075902083867057799714104847819653621733829718863569426564602078364475136646276760429623377658344204340656998543510198051556034313557440362693419120325882632780592185149600503564836225804744565537506365647867658278944600939727362078610612075106532939391247082678805841832908104987238230946388900217826751767339512848516312171561644924942879476716322506342118859475877942872283202449168440601436307079273551644729305268853291321342517308275426165619672597158312193069445882586360271812651410659806570711790717298694008466518822919532127863475318283051802066372166710900896363931851379828396024520824666382796309935312603926986096577336698812579210990838337915815449064133535016736742184803138380440684480170932597704030930329770410466433734428614295043239732572566065199332958946594783745939567439845574789319153793898022327889010423230537525309173946097996929027086166105016935471277905646078683747041759047482074195614108556827267295343924475509191896677414803390141167432051875066156427088766870232313508806428118494397162495929551457479597547434703604792403565183064149615562784626273215504719086994685907677536652278006480962242187512972706888643554363922852719957023456566219360455847867712898020161349365389373436110717359422820093416026443816399031557909254750204711552688520504168075928399750512850741664304130758852011806016589858268421571996155126261164810039251996126569334911889488204856917829043119034039802047115888086630411017976972902578819702997374465971362139638289199949555086651626355233684356954391023969171883216006027394781900018019948750786642473394569500448117504670684429043189991334922734896135080965659905888633209009931996312754120363289096527975490473849668413567880285545304942883976396762092853850196380248640968970708427081013545826756892840171347164189302580429864689702415169376416978300459011992341585913883375115659551410949751256843047441717237957544208809029099941055847688332984194693580202563496310642632552888870050136480475334835931915472383557150372726696226545626714070074666067857890652293784740515627622001258890206871507439558071545523943880720147872109407984739805141920468964911448289806676811873686663011329498804327072346925007033345412712805943134695047177710160422388397550992365701203190454772743473104628242920747149952925919316678444224991224296473239209747473198278326381869369460984052140304238651337434443121553724970660291447992450591783892360946068028010306261413393362703018981914563475398289298920115481948193191490765141068311538566793957259362625195885028547114416035283910594629853197641970911106277830244351597384257475866512192855996691058316312589615195239646895518345120698156099770668076029257779251112072204458472058660875745114500562286353605257771429867453700585052607773958396918225804663022175570042548061161496030975139829812634296634502027287666104200157134395895102022679771383170116910339997231851923847446372495687337477096407562000822709323070758121042295103420210868049619418716730235068243294206680512154254803018662924674407281159896889979738451465138399241952866799158387573851618383344962394681080332573099548727053042760230988397759456120747852300768603015397117820053874006854920687916935447279392276637699012088618335657238095126030618114024660008983597561282408492051397137673841138172109208428215506986701753648639841320686424941976537561815624219075909717390221243867107360750274729897561836038181510185283932154012100400497994902683655104327413337601377793682604420817803134572084466580111561556252529230816855064020329163499474865776787616992292677857047322788890835765827557657161285034140431127192790135652326697422864163212908562318596760893969847077226365878504763286363455115719204672294684819693564906664664946892610173526157574589557389001380835520055059706129369398359747157546198837196667046233277893588655577813495384076798112446469588020044247092553830530089571089150650886368459414532014913592020146693553089384212621619528913428567302172284275057153782114038634968494633297991600450942117550838301591785832197145463091154907675686682480447253841966174412333857716894435689347694684744220988356583676756909745611726210079245062195774792168842807987460327867068041564689327118734904303661015117012679531117229423594382680613071611887284132101360947470971968446066899395035260805932073225459864290107592553066051182231610339810183000896165847023244380283844782089146970588987333260910416896742439163083066520973177465459935991658282838322502275218855527038855594096721347924209862284893576906198850989196074345252399938566187661307547066863978911054763371064434431522531062471819239342584429602424088767531606711218962000881713888482386051389908731333736594442335811716102405031578014167612132497442396077717378797973136610308326190877687660548364865116380339676592076172392522560248227278531985966020088549491256488176860916052142891390841720587383829920742713928909166353471622952403349709794337351957942684916753647419046339856239219087960461406120918875422010418699685035894092926222972948433623006415207137069155726189694898382657315573811445421388084346090647517833706679813325451496608349687230292708843446574092906991812698009319850781720548225340292289858777688756103229257263749242078785888953518387913165525979989656112520759344314670116204107026571007272157532974591926029370100436918891927713147795034487606670118755066587060970150761623408433394857533531242173031627456325995829843715190913843002542952556434898723846474602253459846220889215570042152513809322312029766135438903136593153895179037280160746741405834396686510257306741327459649783926492747455431810966839133924645499635025418738405813123285715794398734149695006199898141278310223691591243020438186884962960324093257950993980373112910400250128964521395596750511159926429486740722034070531752718477095119422022502415487799901297406266061543462841395211259307021337267871199878191268528957118414513441084180477428406558312826061596584194181064412090102377767832104196523270399933715667829093808501108639331522054170371244154306757095717770249658646588834860121999349796323150806317447669338173409140561724555732401648484258900639228227984423474036500305489351089897197556323622897951226626266035195599775991904244795739485454814988384955837329245888968725103853391444459570964789016765661261432474062771360060957811639816883745583268053096124062493218348249128600907740452895726313204296582113132679122132180079489487306096729035292063849929622720478828019724345806999900083069856733636117081704480400209094914658296086542783135128754425035947589048358615193202481817905632092142645672340640542221130990717964592981822852061216370627634616854183864594059095901492974933993658107394256214328436707158476048987137265532778518472756310474672129914352766332842999169894589140440234258601905108383841731890843181993117978858832328958753303336840908874090456737778154823804380496987242267476176930422095350919461796673951075217937729373822118047950548119639811490636870987818910266291132563578372611758918701239966001889171429762707162443997843066891297213995120790569659010470348381200262027820184843095255185975414720887677421440924641838848107516213514021038458604181421320645855619433080573485547181018876589336208679725599597818124002038718690396517789490943415062968041065496539236721895910518385780812811333220609608164725470243768610557167726869569836883858038956137147431564659434041278529221261558344429065962094163800289431231527162707391060855120060090766293633719440043878539475181816474602798947002542675206503591122639691318428934706576631898090851001408551945312537518095539001368917275605397865331315847045669758183049464738529749786792908310445795031804641374094567022006370509754778048344064904963138539329338260789562541406974888468751990435150191770310739344043649651956595587309264074817791482060836804376420690407250274472912390390784366864806235352386230120162236243677892934009758169454936755302219454029389104317035605230818535607812551836116313629727251549402137989929909514080298142477521821974324680490103715181352505833985553786269287745864463800886867056221368431440363680732632425062422858441653800368837278996061361863425293032991309526028820056696741030407536355455904815740792249265897653466097186808270469915538361620835435835298247657535644752819652704361666271236787455866750885527272829014505543593234469144613359884046835305860588122617429174768313847408663744949344211007467125753982251554278087583022450388888273767924442546079845132841166802728458643478503975220200123765464146568603688242409383517643130558325162577501607634138499763624556147016412361169964762037566380459217864985201097525563411139429817912908736460541043202382530847413725157435763802217610182730299022821594553683916677992383046202077333555045580944528596103570576994365919789151410314199278427000078851896828654469650174929323809093172010610321852225927848379272291551326443690526612226444051462491550943975121794301691872705341486885797380781763110930159128826337579072372576063172637942333189233471828874059661976594926414692254133770134623404373252552219894749550822229734748078171369452825271548229950110186022392990975477585084557869339197912312006810260372477664906130994354885081606985659779522236974586025503889541076085354941338004429691014677653890860435433303933725184652909333946676128746746739844514689136858620073030571164013084474402892696423227047717290304935974139575702607704359428214604292355088587726232319553437664070115666327992185661856540050085211618654657685940822754464277823091654058483980779498981327291121420712057776364104174821692010108977959242256641061532224701126800647211170900763439328761170171083842331467006381261107962884411732947115390418295325298854080267535051120690795025355779388132322300022649907179168313076112753622682272355967381473488125502241865681009051277087261281991859508404570536006761115374067832905210517029519656828448494996794414542459323955562829449815923785892886058879984184185271060672622410128532849336378451770272144010897392866649964308215097482700705899283761034019540233562788708548886102973733959864167752450022856873263346574714901673942397041943934906345903176694724341999012165201904914943189016582785596778097352182900489085128619524259427179616535290376104412243649366385237763423484267460868682717475388712363684509277263788441061100903966898757803905589280699530962447440372748351630041729548247132100444304143536792724896920515339729348553374225985268083056953419642200254245351510118818825918081042841948258736696494682563353263309687273595272554566802990318019637673389838686591857447229554821344490898865221848312717598896447716629996341939492484633501368029420745150693794728528043247258390059425183694384782550922442340525300632209954139349980560494135516922904550365198729350213899529545516708894708378813451841093988596076509571070458055051883662764449003788280104304694707278025931681783076551201788890401799824562942739620346655567449907382616359265610255521659515372995308249234435136325021815986824786267762308011518690732514789746101041205596639545626050454615320420279959462436140811042387434049522612803376627003364224264854509307352167652183872468613222978789235889439563225349690213717784813159141289248816209047045086385471852054049285432673657934453923834277483677567861014970677691006574569236557207288981537247727103798818201873875810939221881639304294050896154398346696490203993242327353801356209384557798678184349199229504519863577243751678379819709970412184619078476309821084009552973905994706616024183134786658261370038136757354363736821576445213032632735914218658085206544572772687108989846858963644546645086839645716174213697832105177171657225425212556435375447737148337925285170153132063026380385908768019542600635321883200196379441511475191759170722957284134687015539155480662861702274936396406198152529913194021785803423862168858695193532243854863393508777692187645236606272465760633717098345902088468383922521007868897630104467988004634921938244583890888832093565523874655153785804226366472327700938237711874851675104212096225850153619000639848423867319216526806350432376072250726425196532897406996341861362207616994536191064047266823671089968989589734269108916207839454043683965231906016708389293176368561555932278081667482025830184884597609380641023196189228321901216772652963282646002979088434774072734745813178748177655580390079292897254584925213172637018173156868645355278834664028561236038969867837607855806151002743885033725391566313443466263323938153290116599445318952742054188844750608870992461676846430707557926159838550360265691598786511017603025423457586800755165012193072872465039096948261999075273325339397068491300516979291486158689951695050848743776928049052346075587681228450958845537538798458397153368219726734131478299638020929986027745167310671562126690594966964002729677624919058552591758881733607505377303603356902868847202459021497138402268254155105724708601415686170452197745485360661538360730564217280076940328475075595585038916812915373465286488648997063757276612623650196460108718494619149508648500147574944445625294188762120545224585467242190406226795703319320234165396607552979065860996335855538650922892489506120638699330985281379541225215256615691818731263426274488923489452342914104887116671616165848810837452115716813043724229783444373895579812672750403954941245323267072418926846626136740930160632917530039086251136746325179855092171237113306820191418980968500046050265796961104695794687304539401540664878845638363453651394122607419100816332427676940209583549178870416518487416699053495135278393793969430912250311542441939117392578832663593277181046631869323470854726866847800560632852367689566679450950634561637438541821588716603903788630590439061773912241430836584760052764463521541380396456071633429692943642477329869255415600719505649266428922123675222774000831226190446671550311634157579962564049920386634423286303841552748935396753551156011762569689425292145740717949983174282623694982015272985440329878932559140861143325869690364085381312705169083817996837441372533552563443636789108656689144838223668044993636759441181132359162857716769722688994942721910192319155000983791016105618543359244711642707267492864100567959945559414272682798709120111870395433812208082439485007288257063272161570660733056113275137850529882248484006681128758691462078144523455457890304546093976549786914192805709258979269600911783840641416278652209476597542172259448391559099892655657247194979664158436463874287569092701815809162660512220093445069258882605865293800853853602996029710705080679320308634798268243030989947413483828773988901663342039178684612175718823847463029334897838790555169628076777680050677416409476652402156219773952371160905342834323361962854340183386956211475013201544383717567085747198818074251362632538330996927748327360513740764556285210667212893307013286484757348897305128920911208201384147510520812465182917625146668365923872002411104708406130424980910434270661311563468097605966856316430503991581415735530005865941093483825285965758138668750433782555297213978127328820032783109046279212311180379398334649928298104801059166667336557677562558362584318380340857426413803326178714306300070104928957410230526369991620657377984580960866517408580348222784758654093137527175837959202765905417408751214311500304909176641720688444838506959994016833658812472168273138449065199794496078149828850456387582113057386263189806487207460635867540610647713153998718136509902919279884520625240440667284714144534161471550344977092738742030895832027584282798279780002212814470064456207814714833346838679606627393053694877635456076470359802913762213478099867195185227001886834995464634819428217367440228719754173920019931273127316466048664543223116308824158723715486743478986981370294813242612735038603311557579473068163611878459984827737940682377887290821461694343327291895606330793830300850872564468363894703889798357233808169942804471545708449873940167206128152266022121148871840732124797709973821560358025235735029649222394857295811821989547662888026560691820681900314271850824011038986786020835163418588077852242480420220500510527123100592753967344862095294391502749132144524802627625814487778812045964687996743904894874490416798984143162351004562102667963113607972324240403612485683510182844289750144754155150272218856478148493981863875706091814901309191096875383468598901024746568940848975719802564874093527384933225654624140084502811297788801075701031704887309357329456146870070301589504822541669630039719372058887426684017837936689607809133101158452915836422511723818946019632432588913514907083437380141751729662433970205587934606445411317276503293807405445353833978193241803878665361762874802056684761146333713344459634880319999986142961405761868115709616202268913152154413016975923885863358513707674815651593115572139339270930369524847087626140928634459646918314760933323477981836629221732354028352355185642107449071883265691696693979319287906809590066153871385900693575899259031705889495119505778486665311561313015138260582520596777188019520020166922051328057046969692743984706435501562101480032589383349419350748952925990446514527655383052836811729786825989497735938633820953023477443419996022231932906859190456013243949179697441286460109237211049020167403199560032267303196758022627844569898585248863155069065451947177154322851250025833191457518701318824621612343326455524985780209503888542698067207643682270014751444173290026821310348605788983379538507636808856043282717139515335151484866328782630598176589930311531697844729231104542345690533304425256671038012243783890596230199629388982651369895631060689811644560626793438714147311969115685783861601654538269476212365701981265831474399650987289854182866504573643600899499867964205062909800457432189462532108317914311027437459404573047744264287736718502223119088980526375101386771249045666901047427619062641519980835767273152212542064629872288213201012307304538705431170965398289986360164282393178671569108098677985967400863040793755543789828795764491147822722364837524288570633386974765256330586106060443884459983312198011509959053208551792400759811638378439848808316448461280310706955077122311972652091645260600696145243934280497245727712916903203439592815974540250875475159151574676230101778883488237110876341528159344916011873734443875815299884855911677796291396222118048172596762016929889233497562213765975215069110509311963445568807936514749226809237689493087126018280509639152578445556703592719013269710921568027100318812607718955084715414320339202625115802219273591451555220901697727016895578517102407831180382583902144111383225861576054828681595833625857154049668170367570927444636431597855523622206541549336719953355109379100008801313369155162767915614393347783339953442176096772924450634119344625833853186608180792047408462762327759247902192301946456276182272864427558061574472737528983750754090371571025127135398619430424696379529429639654169407516940293705161304027016362284724553466892108215459021802206787391610206022813207081862824123854311122210357293329318677464457327478677639328572556751030712511946309554342048384158600888324957217150104387471859910670152539921405002271760238877928122015271393306446896254880524670721541306448421614209649909051774356669510897950312867047776845729581928089698253001051952472885959921550040073970224000929704053880917689466233996219495642158640294280923511881624048457689032713713052203697698567581626841492181096647281255361460031503838694038607505006751667634624839897679280672461054575087963855289075817514973061601108569570284812622571441154074589934465889754254981404929778964596539264541327216631703629726924483861988252081611339911071270499101031479173753334411841130553498371493387461468149958171398367971258130593142550298306549115910285755584401415749695128511197918120141109347743431670766302541682024109435260785976383625480700148392326225018002419583379768084799463730055183614818005041577974831263870198608079847745912765583534121654870462368201842284386273303656120057671222701524239549738709671623731210899989607459002503520394694006365852061080063210846968253222364485015583691448359729242919444909393826094347205635454252578414818986152638448956808681516848863091643244090170470030184986964798271384005448744434668517317037436944237121549964599604248478726076658450340951817321316856996458776063112826353614427194026109380835747391188873987941248591964216647768275542568824136587309289480974401215282758502405575417570409247956355428450170660614702411333532558399000007996493368810875303499715016449083254758492805548982984682051820487796595676563636094165452765591325888228413990835774044580619306903687778562388316211799991819374286871090087748510158635596945318241353411071356994530782515870570211289846336434807239594496178422042272318075810891330578970982992801735929564264943712994161336776289628673385677363990148096385726495065786479111407722761752427138772152484205606039268870555362282795205964190704941605066630255467722708670066205649599009684383370401632181213981670990607542884733269810587799216601475131791912383797282176070536823769182303801203566087559923741464581225598092698920173654257951095551035013305798546006202288778664483764265982234076000504970309552566864263654808224684524563875425350026596318457805012619834151302301141960081707672560672920141056853716644256357126559070062112570213415239344449501516015280718579824486927850283610056900295582574063439169747367169845515361740241666023215743359476314086833159599727490176523563739061447855098928400283934487234851353916121826950294546072585406588964578840682361027041023164971203142597407611592321849654216681380863161717569164599401547024391247916261111789792969963197872198008329825565309051710557302027454911494104860859819878873399045565546091736397671970712945299630470592628109358198458951302068306017204931563303571717578773360553256533597515588199000254061980496127816110228262312108789321362528611073693075863179521218446323854457729778452739422934381506070945005378179137983119901401744315647897924050443341786479303681539170781754751021105959982150449231239232569022452975931905039349616077308247434180867276259248287516442595899593689069444398549264735606945478180800433970619207445690598297810118377857264772274746430253232366844827279663443285268158403110871319108907666933530829710323467460231780556578295128036862531436093825444024979538177043917740508398358969218932215017057523733211291620890533131719434846315991697897543777323842290788915680815875570147290840378071667078025788488490587722606328736569889768546725935030496988550631683449065698660529031413417357707156988256870353171273697188930029089150314265879436300445195711587744375587145206011456255956892101215619944399443980385866591690905176594429675149345974667442954852253029087545437686958899406723652167067190033368029755109858162616400922145292400172581711466487263270881148228517520614539247084197197631430800421200656883592143072397172007773646821910935956005711012413033962993075403836474884922722208855646883891624084810375179093702095202012528784218705482154489211561122486294480230592239151041780407237400651656686070799466814655537361991900270171290819704664068723041036421873741178875106184378065237989409171966409646130861605930802618997081255449634986078005328604750737486400819339858706414642641739809146026248534267211263997944190381028453403287832203294043645745396678267108822421029613962982190310743092714944026535597854951346138716112673475011909595602102612101669692434936287714839559930234942971783654586283869276259220389579702624619893466357297264412153115795927723204681514378895151964646893940648817993359170651851156839616526952463888570934386005313329717929078825342399945671487023788359497646603107356815941944960340029738542249860889018267387814059821782781425779620100459953291070113728941082679053999018423488264955549060181462308431771797220152711781116296028665670205522858747936593719243450142246106759893047983236693499663788627355797345774878664690038219623132042048490113982149152158058538128803430455719870829858441169921185706333948906502792624007094318901655544017316293298062370267278018388643842939841696883725592162333638423829390301258123749283085618653215672641866259506635304470927699808802113466862601905289302953209440514679645769127698370368911543754113583104442531519587297184953832899087569144084714802101941007979334647112247264643467728170841829309871320474615751109344694559025880776289738968864948623641023458607347090344472744561151087792982704119607194653718112531353924337848209512805700688383251546518927181986217284958930635666178248890547187545327647345230697905801820209216026988719393448312277703834830621628201214358144613042695882715600899782169892287620545963778887541398037107310049122784135938268479529991821389125284300958066881707771398327736534434713074959208563981558875566590042967502527854834194327281417892815562473274077255824828613192917768506579559284379725880975386167567754438733681505460089300638830624195027667692633033224364796486507204142881503601245977712192653264960974571161733900594673502381948168595659645443937696239682436551668151187315497116489601330943207337832511958081066159844641162726337828277014684678585626866201573330048715990694241077223337914735320799947271626446020409650472452449343551247201317926981263138343133550068637334937550638031021826078693151883654204398235015234661858787860721368033240945437428845445100230495854817018212480355691967709868172049468215725363949219132271121397467027124674320306425378972722844259083879279775754812279197909230042845873762536685101812177687428336315533067039697631851032387253776330155513855086258016382845236263518604511157112609387794259856524011625276173546348768948738478158840606239242573345418337346206915960358999263569161493785830734297569867138920590694770491184798376917785026418595400623712022437223829176733599901594390903189751673231845058643773580282144207471710926935042649711256965211541890962682380467619470295735513980115352718474577503938034078143623535832058241180541951757992955904377626405510698457358561781289160556360235768771670166446006473737632280419062064181004944361183493603507205450861052691253608660136071739910804322999564825317572201718281263084493298427620336885772400888323668767244234560875040340757617606611193705526957495021936210879829792338694114719942387580329647488806117333539924594537132544358445928066121743442834869620499799174457132393445645484211761697719195379917684416240083447999734763863052400023398258507793622830993766671960291655625250968733996197724852810378199770112985087714609397944669327498550882412471511076729753073043578088301644960342895501116997180768508963858273271587921177977661216856799542797503549363282599625192665543449451901174812187914719706470554444252955433281040636563642118564727361102339614397848504040839336008945878159414560760893748108468354197649171779508300220579158654851367049216410868885563273032582043513158703621577889055587584648646823694986020950541185326096310718135103464412848568069390221648372463887051022280328386506360994151963512642690370340762124912085238749703774952271731351120597349474453579294980735950598373083123324324718516536449347185328306651944412568389109091015700187803761797329646484705185984035801733290292297870433785468380965298021090999932848588282483541764866746626747022782569918955887887576379217755019308345360170486465831468812390089183174577015745443897822428620354131596073925464443853569080648344498819658470846656248326911491828964807885254046375888091099938600348200493324294157149667545797426222328671144205850142724807325997841935248463898197277434304805041913509224068437241164201881520368220410604073227474290217465781947913331756451489245388663200746595085801388142389507365785311170652811063618952419120299803026943323952501180835251437132546343368775047432572715851225438078919298044582726744649004914673531058646499930136022361016286837857123731646207986204708970167387113839253140368437550208752858385145449181152074690573437699889829747790951590668506774311788616021446900225507536203577297053935083138409667739910305014635105593119293325550914690142915533140415351937987300310617445558837141523484982747887870767778429364679030654683333286678051028228995443761385757865672228991936007220412553002181629821797744166675362163649723075429847311699106582009093099245112249607934080526426077871855180063071259348596450595462851656497559840987912149777403808387698401825846386472730108905824234091404269778662637438945704534014377000288363827513679201006439553646072733334385255209714752461156083944635577065173101996192399223793189780889511619843127637694240138258644833287801596023268150540860347987103122300506503369421356780651940714421709473351306976493191782367983820183104889670163540756726280770527604290217448690527412737555830080069802169243299441919818093456059386589895882619875976743569877285822475390591377673722176062756113581488232722705552023712301748825070019959366563049420650649962893458630616570027070237582751916061207250189722287649356446236047739616803579786200166061701596451810975733373723193883751071837157834328665060528833606893655684921945902804231776422045805260172458913226383684953311016795880993071751842787563157542171667584157627330750629772199123408520538842459792565254459652873552394830647158012781273603882680063347887242241070002018578270445276649069313952565597016403018896716663593244621733441559114480050442812014139694202713588074770767313595416711526401607036001179371728781326721801205244437895392618555723471514069629064339402585359613127344277789982284323883830925409129034695596373304424938073624532308860554847279775070123339760357507869660941527353596414134789344808340923153876192133350658403446172355070130390636518673229802294384637629328385120340007424519238772542608573770967409714453029476514972206166961056326647855079658565026724950961810157163872398453068794843185681414388599282858728329370623571311294636615295466234888369932587765993823647086318702512037602705124969528596087560293913851347592508440751703420156948037646911784424762820477274279939714335901734159497209156718356417110383836123278639429961381615889251820421815814749467033738649469996252760245210513843540457411924159816142825931376697864476799924101119185891848917634256178263102972210104697762459198277123289657023748085876473133922396270320078359486654697047371429816313845112151340171047622612862410408350268144984211824974627915752278241685732614835587602382221157153011576826204981276367991086990936098062383611070359323164807872999258799725391680466452579271928438135332342333340891117234937551640905961643421379647956237284731452638146995111846002059212143628437097452704839991901656217223589467485605839491710571942107763702358774841592832392999956685599232281599170450615745249132855054886803638423643815962231260935535447082299171772923066610334332020525298316383613786963229852583283202173838241984049396177130206704485499641886086734394943725585333512321791466736752398460683350632652123410052645870787549960091002869759190820524998614024576420083293771096756075978202353946033528185589154702893914937074652037377144291569358964062143663521611589210557339199188063796812896299668711796423626737851585071426066141994311169817155384197771918854901398468345380279497049126325418427934663286918612579862332316583599729556686134949491008781612292382533291824101315762387263914451240159554474918808561009661659604583091369251346830469453741623614735865052908097004694120537234495508440880231340216081928894673774742921090934414381064203484764510660135363327421094741310865750160204117190411087172546787322163156650946212936564828528212335400634196632593390979665384650851350296155241312408731324103294000577456845016934078716473724662858418083460068104393803954143800675751898868866802778306837221011513969936049628838868366803758328642149066021279655198700811812970035169493674061870597534050022419365584590324444013292876989491910569093646625624718967569528765975360537093038557752939609672659047663523589158868855738715063729718413858341188333760944433633679493812305192500938610247339919789000976222071168088431181976302509501808722533127899627224506120661539476850707332819189497912738376852930988087552151397652939596668181594614863047186516972123057439146070081521392120256245760901067720483462344985689907653546409967864711436015149406430421278781095326823063875150252551390197303395426812414797105793568534972842908108765275871813364515270784133475073984209236007211924842108248356445121817301975326804881121748766107742645383708786459420816302323352130820731629151094064496477021131888701747670817271045652197780657286226556041177571122696953552569138529760737874659855381324978126267165538541569423289300287352455432233522074697327611130462993830791760903019607706074845774956349777149719537435815033780734849477830173442081667680268756990624945718376646586461400749167381200185071983982919913113619197586029286032191752507100307156383715512633626119037296655393704559747929163599840321796932071034610827829457648444901814857405320199354114694883006432785049920638990255216906726876265643757603360588396711665070659353911240803221726544891372087621754717671492024578623714143127397415124185192182129839263315171451976124144583581306418971279881327424722553550063263547213126324201555311520690063939801018036851251295637413584413180811016254838055344660172047056772201004858658911389065600428202247941662667404047066633983329230561615345838509751207419498555968314416002371178147514781685449566388854738538772118039801154502430811688667086052533039595659332192575173803361265740600814524340215554790602678400328496621835927977774950226963471074336841638394927636846299363068950593909210462486970453509332500575989139598885035028186510664670554276342873454640811495053792665720730093613500348246487178580791563415369892362441210818135123604419423125122031676986159427200354327037223743701060517188401781945620030677663802421716081072372051948475177185447118198975997335338866677659488602038392987575710930633583204026908191715846142170816655345283773058476836068372066464669398989301997240859040896239288115956396213988611113232998530202269291119628157816667426309395127540586720804544222062894974375851628779467201815672718800874892597399551927906735084971277603751373552665339783698812552636487793335844477583717798379796251053780831499086598805302790085722624837056917997807814535402510881987596897550120845243288056698417941698054427244900754786552990944622482610843957536402195873957560236272709647118201390415698642943415517854979492029680889830538226770956408438011583083614674113324319868526151182025641007864703895450741140663892666406935882224979119362549994256214308473819924210849424551076309068597009767513501954422438229807404648934056604983233821557973926271515071646009125476436647361487414393192098619199944535781111355302415959857574155551196669396639993235763211273158851726135408604946003922259748392273289758497466815815421441356152393252019079300289016885667163815044683732916415693200060796038703107880606085197752185544557868481708281840865155023172281835837873494664898556041510165587092100138592842346977675680202217319887703763467343018266648851163875278175049899134599107150602304792041584034686870791950066982711279335069634066045014088554724402744865231061050572815621891259153211247657911996407648703552292094908442679005493542347355448128334919978905616489810154058505207181284184012134797086228162337983113284961800154664906649599206630022136913698995646885976884510979320073870864981885387996940582235677865114156292628651693147274145653921854536961564012468854196879753463304241025320893192795263559953905379788866187137771964942536396570358859507101135251298400745934884007371177850747859962596302001663293181237132693796067374731379899456496515908217154203316735868709525108307893067446868640162402372724082687658164675432256818540262897836363147026999872192648959412529312382040306924539909878327426349007025047263226429404948962348980165764522437345537837397354089559504288308160891434659705501326922535137684071716241290054083131096805855699845210452414345709961479930993625650638200845985244798703436497365804420670680155711139547698942647425948391419688982460976710891278504090132705451503603307714560238398609954867274491311370886343579062972557368170186638951412314067825570627929402518187814297849048996824402511278311125133571441196217828445323814285065527474417955758650330703851981967555788079720866280181681336766346556823907440526894074092981341798057367503559496005552838684506084128397934093004673463370386354297068758913144513864591161313719709570261757103629225128952252539736695520984233930628851823805309720499969398897936448022995195211670013752180560511368043337321124010461685342553555199832180159280619607894839248404808607917314138960024868062906141699409946402636017895055124848279050187763323204289494097534431921432060679300009895738069181933870718434388833173383262234052382549938340030106582444349902700628597226125169473406731500190336008332104796034586017561670233768428603641392983930142997170519005870131608907370381668692263590530841125441997202541043795799394326714482191077594185736579944767142266756708060230767380440230942070254301196839573492614229057754466862380971565607519079189967026875534499009302399524216459426391577728221589533938702883774700093760132752510302594655707573134707032730741330530277109717844187625587389127959530456977871454335117867764405714190850405381193729220294517779762054350796934602035917571802855857949683952459889803818502975101539581161935075240056408457713562444970343488320618429257771423026657986602445839065299463069265245565023538553428921301498635226471599625314739630218381209013514581165146112898084811718979411226425539925705805351905201914295788240359424365638391042374248679742846075901965777032978179744617358608025190989898533110639637522938870401275383864427004108133996716087342654223358877092827707057996928675526075762815486243626262681629977046657299332770743201622900454334255264879283843539436872390816486515423030337291562290071909102603044810848106059556236036993354072598230624561101801296343184102039527172729060369675833387562561777701542404446764735868983977723679650519687967733610773026258773639148218626770504706495330556507357832591389506527559517352225237675364277384400521567281838047971131204226321010019888060764750041740989107491447360962771029464347605039392102125453126185027535178422899427333979505272244767601288332763900911746405542034848710290312761197848874777953839415487377168537419718032408852945712190602941346809074975563425452633986634343319205179317153114711418088008709443418695976060612559209769362196461636826835857687844888885284019079305291106148553852232896146780361940700000967817083054340041834115645984050416190643378298798199965272647137290409160290711632053611103142820940735765385719601940048105715038273692855856507010197537278886789451732470610490531690891338811469841254770958481138972108886294402498091425434101827800007477337277356655233607317756215434591335639492840617277178089728159060257348244929853802623047247396620434503826876980097155240822795690570307199857013262544005897850619909152557442063802313889953813104800499166484721188726524570479965073580772939920302182305975717346233213365003893043064964101031169483049606037728671358011605689393295941025344726469483398895786456396231655721243085582756787141277409416625635131208928632497737604398986736184825331776894000440875934572253260233492559521601057597868903608403448965301431761904828139481840838284869381638610674970278375576669601087405996607750895320954452361027828156770297916091640483274145643673367759196071311713072078494077111154666057254032803282469478712950210870374340616067087988392314498621529868745667413555965052480663852968887591541755648783761825810080018412900330988866574961048543094119714954953611030075669386104042130346953601985156042242803704076279392097179250602167550055713824702242846140189878626385128839916036885023198295235358080978706456951897191209274758630904631528158276494495791411519351060259847344360915679160503967172406205423595725456050899541520748908692437366323528399839187314273132598062508426800185943451170743854274555326941824360321059976543647115619750055618764930929433547050678753534167278689188315494497280183081643631312190321507446600382490426060229254549865648966744190335468462416464790139774455507731790944959493653159820800120434193449828528923362417133234174790154135401755538019945625053199190931841276993309546587194616764206745198589535920849820565974276504571989160702290738401299560108495622779700190882861389539924678665037820037026849550049978917539493905112211447829908102296957471081175486942524300056263829660860498162229070300044998361661120230531942406059314428190958859153700383119428532609428540292134078484121388546827670510516162040038242969995750073952469215550989746063451122035407629007917426820889873621277041801697937132912979120311424331918144178783986324920867820329925436577367644058698543636714603809170612776389972634912180010556337814432950452702597287908914063879515627341327650517826736137585305017890988161633523863559453589161714058338788910944469548521148372615017179569261713295441083310507440179097633907829904832481955371760480461321173092613313357679823850670863987014956240436072139589857799564894915711859013577353961828905812295193908254163833344339449396063487267067524576903687783624947189144342902606058659729284332382468914266720425644085190233302496848346338859940979460089596384552501074693503476924192395651212955666683230049191405862754019605060433007854182120300337891485642345142198723443322147984011171859389156613965713918571738747875509508938374435454455239033345130229990121895694656686554919070732522479783438850662417271826214530975015586794779682018985507517494539807091700550002469734004833041784698238043193715100551238010171002881600905896491109178524508643152627763256050629217302325576277877659195449477935799532721504744619645506566038318344050964270159232214962668785693612600436832872789154742055639199269694618340553606241813204877553917302915065397425148038629901966582329358898450211530359130481516964209624104465215121965673981759124863849784757350206778957881594704626083938094378144465586476735903167168411638550948566172095832601788250883071449187962728575784847806340467537387261768807958466703055419924683374288712936003356417442051598608620625747552867714521969212247983275598996905118269088152956760061949021041256288513243584998234645164910008811634100907766915267111884646093590587266604647238054511975001843766710659970097345298638563710898973391596009885647870952916221464630254452940100997919906831508909274365272595199561313341809694405642308966546895339946510303558465561530045626241584733555533687453773322078626106670051547372866605729819819882149605842453032162353610676222482678652985592848175796059805592245383647906062026100599154685398977609210316401929876460382137127759782500575000163675282861059002803933124748721090086006542087472286969996975842498054829004640245945274731209871284963309859961371993306674438938183826435565505480874198874917393283631273115679671213196749492506122636649344847344015175985551621076350793140964824187162751473971627267429833653081653322432498705748490767327033429685391841101760050589478128863249851244204531002380970114124516295113799593143259437433944333607397550850805522248356694617875217997137696138826553834154413977037088809868493069342802621508362230835385729099352342733750934205373245632253227413847599853110812442157406478849418233280839075410747270966430222368448959662131458217825600618716524137921735997536166397943172767456761357832325136594953210078145852775805466394770480983855637806728989394784376124598760475656958881150143421535857364852089697571966179765127054994429801573237180688118756128076738989608131372089326712911403514483924728524974361727804327937712253681594666883257106857370742014772423299287638102490952120882662984607574739090183656137294391743897966193402746826501701862404019478537124019235818170985729496777382317274623159226678989766653805443148089003040090757005447393112596442749519976641684082859611996620072147857767435390648884353279160463889358201196525285421694141455205977683006289295309134117791652166587425001266521569201564582330813656296050586566452976787818820367266831906243571179274552194437989667039342552250761475541002329232672185067624789927295540701198098072607772457321167470110472781483596683025245680240264876060349719361615954249242912594964251942956087039897798726021309646648881906765672974450368359659079457622918806911956754530063407339939173657987928608299165291694306711424046357636546546419730880743754652426655885158738833902222802181408822845525397549172239696698753014343838556372087265141380154525511179680404011579655746759956205714468593361253694397974399190352824697716726075715182982298724481916391723213881059516208057882066285219136098740053520421180594231703142077359162642102515130449402599454555531647570424536139853467860525722485199233179516329516898426950192771079348805300488393526294797497291350243261810358446199983184545317479298416713600064593307080017056502037837835659337611629337742784250794442157409335459133554942052891164458906561080212073052675914622618794570764004384827388173111691675729436923947668552536445079911006841323676581816169983590624245133427684309347303404027509635020614764270006605897259962413238113204066389882219191443572143928474031403189399570236223607968742733493683969807206391658419524534969055765304926967132355875324626471573221368677072491238472603470270914873835365111834780999923758882482803731746325809160776035858060816625756487281415869749725252065084584757997992984513594807970133317432960133756682989546425070550823325325398954447317809695655705366996045170756342708063281683527296124035653175005332125684323651500787564095486745235571858218104549769295629603681488562497205413990688883851312625311447392440231345499013647824364559732716650633626146918174923591892146010757451708189159354205352504051950826159586313734390425056748672376554796067349393033900111658400202000897316952566323648237166586143663089328102046816106714474586123450069635884194115064516569272379788917608485449410735900083559056074314464770137324275018011368352714797644439776253961685700187750367575089160003406738386443546060775938453714297338863042735590568609281907944651554487847788282407411714171698029956536575835523526442354900323819778716658174423104936703892879898231886118233978679370680976124766844361741870164576347868355793068200480104111179541744455737385360088985799806115929579881947512787158236010408915575548766003878440516769713030681166586446142949780446412305443637355220226631547805913524096774864718756959197668946194089321324918606594052707177931812216080350618684214149998490319752952733060301870775388671111673738262270480550593837400620724385042064338929334626965451751124747318951118994742155109165471815044921684501715280062304001753926550275802197207376788348625867814199818533161360527869195639172159264164095350589343018667657134691068095121186776845453875525232194007682033679071545069845575647835552194183172712988091738770178641749446196096708598657248472819140133409276780376666975223016228597247158359099629579167743726970228845821355682525201152216488722107993216942208762373382769031907199422979616219992596763574455952330236388042949152684814616010374661262703017085115558831257116819025692932521564315754907448070599591068283716049635524544860181228800620659209102539979368682996046072625083343327662776095922671667705181868548553327680338895933114177386914456552110003178417810024302103285512854445874893369736029874507297460565478152508986657236437043917816756149754094463300541186010482130394755031527784022989020248922336196693919865015572467900813901940988155762482597144907169543799931526598728935032519264386327856942923710251435097443203294187303049762805422941302073251334130034195585153556978595071768068931354171039041291724412110866220510753213577370073190511180521013319755954405897056347763805255120933545948254101872211779054959691334700139657477876604246622498431617937259590049759956226472008640299574834419046063693395468924880702569560588344297561968239648439423797405926102068173040910183652349626382487767019187392712253463428913175366843884560708832218739049216622138552553530246730276593973635326452327514050408133763052048778324525847758625083225172319139744512256350732047907257325928594524549478953163741701375702067548466648763133879819934681316067721695624100989546903266464145379872995188913613893540318325341212252189260370743385285554214109835988950722794331535743496916166208965785994561083799545661211458000417788735353322044745831365839598896521058352052957651587972356193741370056083792973396048628130016849807642901023454446655669513141111229481453232709906689418764780827109240838442956655662586716852502568941300426128862278874965623567726817062512046407530033972781150965311189616835663431594841952127015429317613148773361254611903099050556038182054339352970589059559527285002826454992293762824470769323432052432280871233300572632863773089342638394645808174799395372619989508693735264821202041738799782493505234623015249303341673348443555035187048678989768410100181211482481863059557685633563284865003952694659049222699371142012639150420401464288075922487306942735740984280778845625123585498089354840863720648181211699014136202945899012137197221646442113186127334390613473786660154472522928461202549815477664979766719895001174993906083898699793171356709265909969509728951633391590734156973051953714447754581028028983657781835925079658028853587845333547703192646376052096993406190883764650725142795241072988716894562829468668168569544970904726478461096371778127992335271078274702466162600999829966226141932890583777086074373233763081058599603702459457572159341815088636178281001122612913980724980996600130102823112072858535311501408118592584578123040343337475740815741588483418006261702300434477092371099447913835272176507148530102475266324723211706542108877945409289608845230545535204398031256954337364810471054592617784240817553963646434119167220761046377322486280064055543112324633340841005116590377283024723508138615059771204740138291279146587876454929861288059062534653324467768729916013327594740120076964283711209323110518763029675053811703525509038719847496339029791056390523551684642325242927220535994712835406034154021287137523690506235565375849667712793752476072938380571051639983619871570369712935884609905082574700282055514532157687025082528974439943099560839477838669344927874758991653060099399780137930848246117110791636384648684422917985872767414172848724145110342819802171200331973467066523817011857560218721921682075066464771643930456729891430955416942811773919841849818427760134429242073746197013394826875809617708314789873265204747060869733270939955853031068163870004790626623856914001318482403057091701660371271492514758665584434414656077455395012913658776525690051059290719388659352689828312422724412854964009138845871211257419023770791960728006535254494722062528717542617324041041941916022948849362322288702783713765655846284789748557343347779849974357604564646286020618432571320683678602803475636385391317559856381692823013887117513431702751620416557791433362582499344830278005254146622670771690292776476328939009283162670254058578963960426873447075500102160523778698361230014033293840506423500912719851217139517809915063626526835781789259340052158954345352123404043351599645740333970061805384446792521602317547112324254178562172432864517652437748891304399342394023872057703830289750561086766943232040730042969566728268601428537899595617074769253405388242769072096588951254638598250076126236565792137732226116947749676485003618217122249202901357650532341189596448426812785747288877172992055447652643044616737173564487463248690791448567957890322701500073499323519445228161065957518598771661307516365322407851894655465400057517421049981721994061749689770828628848628847548414763601786391704394507720296559348066975976284480739573678408539178198161293707174058181745536180006357281329671195343338579974829380629789041025099600237312217135324501632174866738603422242967024695798161849032178490719495290292616892480947217519944981076953465201796927820296701276002893459667733113130376212042545785389403552273787936556706153407000756946293462389770859641688113133436759347425066226665256015397120314340397266753099494165068758739808071462400704048381792863343435339523661650670466190809661318188594100150653986282851130711560356038563773763305711160766672475947802544536794004626991490177250489857897936098830533882200155360288393893933254977071192067735329055804258196586853331694465526088911211853451101672294566414854330716187695367347036037831655508213496433362174233760457769402733801906069518048482832187473714677494250623859052848674496899165873950080497304184662612442218391884295702954612461174579778806080833351792714678463768528505908609638137342394480796358664430396335596449151636206352791111481963286229456250803179354770498727325393052597862116197701616470963234551142525515346320317855181130867812644213788155566083329432086628211339780037915042866539529069105473197296474002070429894231866822150540028918342206050330115158283139206014216142496591511949306533200882944537493366772520643308656089796423450971630021752383742735155876049595880906242254847207348091574658866357585486844167353271116444411735021473693595609060263235275459191132091136307990655290091829773862486009311420104442339802385256598231691308161746032916066767431850818082831779547013369422629020386865328686662554522690084342317347298623528243042602979430797051148201660639023321497487786827073485581986079194127490700751302226079545761414876628547269279695752747998026522733473895497946321673151882152811601784435646021276896425840765021814337043128662336208772808885875018504393231739997505779955349772944722951267140762053165808407579987591722319978129732942064159947240181670315228414887650579694794355244628903172089413918009918792705429574932822306743214137377764980959756471097140624061860240586943206707903337777020692507474460478204682733505747364707911457899149782339140885069506863889788450235145275381599203590709848910943855391235381294649140612663034901302862802107241165878990886772573025567270701636032702235757692032073945017994998945808474172120439286911316182394118588484647717309996788715948317950431835674697665016906919258893552560531576717225951806964944529999988631915021991230144719188022386787303134687081488168298168423247445121043207348362888677521289704082433066334732945378537671738019723780541610496225570259152179852931820354161733937031920844866277435664465483633086914118097698981360468948967288773260395158212512175723439826851224275714002628617003264474525275499889375271803978972435331786806271285940893923687033403265781093263102714342575233198299464928526128338346249752854997476702513763693649380393401372190060952846043993255731595467593075156689880898200456281077452771732419207921374480128702429592235160934397959222010563780079472576733361493724944719508311889352498170363178938712321099038112762789905360758796842982381699434104261874616792196694313784319396771799848050425489278014600070957445143507133534339414825233260560203408751380833188144412222441173902535301153586205810984967025186196691425982411598505065481426194045052417035044081894635596374852150479775144276896795982536687789380611182327146189302203072808407250373790239847585580629136081121175855159679421465272353636878246468726499734313585488299085490031406280737684184785767785660098232702116254351560817416167446963995130518899558378766548713828492353667496660735345533767556097815436090337114301125306834085195516251126627982876941115123790430252833088600948064089286579001389666406411823340233940272491813603394561550089712261636953252952807442663716912597822692071771945400761244334158175285037741140189380895458189298828041613808848197499229470354319844627584740307924086730652269523522771958609239283709488939422803659544119617227595332884909517296001122957707092710322001562695085262707785264418826212253688808694794686607105705026157252333019866941488476386812240612866579162209423405459475199811636905469790545154001192672873842858295088270452050748481773971313962577718874803189246511300477259322425418350257912589898096917521745241010233579202285336134011706850090427071432646052430009994519636683116234172270307160911856754330187266559285279507472031201256870676829249223814227715304317650918395032888379545780531229966495559046828515422463511239851207821891435208169646165867837592138338502229907365772084172727122246861251726712274073624413352963999881369266386689351275061315966883524687978666151904308889509891712412047334773313014414910734852377805158564587721170130102746455207015617457479199465481616884901870095120376405640215988585227849810871742879838831265247654781147390750245582032620780711617033298467705808522548428413127757778938270685231974233771998810233990428263311644899461241328938116660321136049868998303279898221256470507400666778882383776966312887006203426576661852793506917231377302229487950926307748551479927668666774708302953076080166619087356214093975969877607963896693792204235992264187409858593611488615349729921965443867079681118325442352903071186797369642418743900772636337513285338893546627926562886834330421853071007491082692937228544174275511840838937648889058748800519979258780853464656204178322214492197659015605303156094203337160662660721362853279088115767153742857202189067998199036293364731522994370738758080525697016087826465895511232886584476218477765374757914317000424668546058662492086611783706955206474175822257926516437641498405118006817028208282509197898256465804564410082096963450961537306717575499851432677651209493629295634106279812642534623373772641673610330360411447553315543113641006770492626127856494422742620005644895512292162889164730496916404275629344976659555383641821270314027098962389046669543944366245828095380021804881043521454777704779096028026583794514775024074228204554156507446493893825608942728982563292748074060904198003725435457192014293300971674232112785263230928258531563858050975371809192440431365703765697933326767037758063614499996094157054896309035771541550335268319621140344307899687766310356967288035856847924934394008067608429516633987648852139782113692447938315244334731306173999717246403956490050245826806378200310207043140840814198936224153568855626255519241967154642023380828599972906090586069352244289377913634782637717460489561529513747318008416215559594395323833315698033907071186045327664590553334751518260396898343152825892588465247417387638323251453265841776284714884790782363834236063561294075577242281842212263405621511125140876656243755353240908459425030415771014264028748482202482477939052729579536932744368002257057901510793803006007786964621114565841671441517858449018914871516317369001929463453009415468680503309614231411172840244239893778754124553690487718593615507835411933665678353704047967170809404907474829625287508381490286888890267962133747907342950661611716985086563362775735234111529833205967559455988829403941968018765613202911067536971905338660752790771127077776056557834369514915761586025296548188701217241875835998413794556096288687110279904643610576614626208862133929122066010359731554121735611280909107691046635402655312985473445513786839036114795454181455638836806123419894810811753395632163917987738575905829903621961623766206692787752030155688655565369651913274445270885251203208087399917988158994596283732650673094075596560657283372441469866727900100160510799523932190601497421758387159600931951801630203385892075514557170596368358448142676849850027346775495714306369927744352421681155654013386519923030315910409743892362701646479101021241882835584083399540010846380116162150405857244892933479515061144289236446730083509686067579719001168232244110376666392859763977244679504302144517563032214746437546732899298270459062689254119019533931456441283579769547439154028971193211170559010953547242486614145226618364015689477207890899488317770116838641781017709808183602218394863755921795401366931171179289806175973843573354299927935812451677758256249653120641874238281134369821556235477167240002830368990373502043989666271637954417395623095501362734539645424047426846070584208088453723148819251265493270198013910481844362335840609178165028978511699345533250903032820319349329770298794601719386637092248906710346495074176297876312800161819912385704736837168440312272802080754902689970515535903653100346410660916062326246087738088278348965425897128206345804802812220976758230284039740412273835125221005579478477824953386023538593869554487311775674785547185982227303844291247929448901440366334141450661688077561651608890425735068616537461812960559194822609507887154103228561157266393983722429350586916990286106990878649132877446004778237584215715716932302504921886260343568592504515652302586673674989390248198486889824404571032918899656807638026615075834284306977872210370407639634056971730028546404092764111050711295908473510584233546944920332028140803616837684929626744383594398831654422928982178763300922834262638284828497886925802072927812255809966148482068683204877667608371085851980960908262221252490757473313726295005780019011055717302722577851898402590377812618343969661276425969998353247420097178228108010818865772080075028546238052840000221317701864237289834367774827072102772512180814489713389479151882067863614498145708288349807310126948169464254218744534882302297555621907574930747915045281695332365604121708674041432059782091475312623905197132450106317253131655201452557733408925389819234770449349234978898487463740176293087393786502439147099636256732011759025076732809121236901376102635322259820325274346886207794781305642131020237403021234445879548535479952350177507998878792010846058262109422853495455583645376955297271433508375247999905886581376189679851985919183962265486037201233035541660200850635168993608429377614713912693570593094585137177539738819384665146267771325172141579404207048753839643119810910336622401356553678184781968219898140872535112288743893757308397419394816268203071328607275077793356735260599141849825005872012556407589030534742373249554575990353753691693004697958128461860695017341303889641493315306799075524872445222275639284674575584066408840058084793050330852693100872768410100985713382242568325118433839402100006795342538193865581878973778637796622257509413241167496150120383113756124715024235435799138097959948141159208923729903377061710040735945540547819990876341950230467675827198005152481879638469616019067551708526090666408627210054225279069579836171713431600554229028183626191384170746088443481203124220518047071387834340658112221975964276115289197488719694814812899795267735692356096489371888167996856949493249986668270840597803848806354388523304799528595560159417537356765715257769432012252242312096174753802567983489239700549279885151946340703669383326806772041241924373922270237507203366939346534323347532170179497066659886491432255071991817847753052679526579730705423451483106765492942899997218626383952687067280288248583017241605808615634945574526887234054087372522013910680690828902188140751753844342730129806601110370091635015413976473296820860569684846125140111060497598487387096904664530273243480358924614261927516095807861274082039344125450783126884224871024524284843651023674516536392451546282844004922464538588237806599438000393057574975635947876623080632384233687555683098055080130965577353167061572896565497486687039540356631022758746755626110912179540483440549601914244229477818289102133649809993825582941904180640830632110718871188967777017550653196268763778702981779441597441452405238108404850861639514029766115487542906832402362770379204108031512750514960049106024320492759239850980650249689582181400630189260708553249610075172827008654957487353781248846508007655268024710331346771491940000347100014945188881658828747922674999736755236459726605909820042477674991923717138287510979612334252373737100637896246186338098006757047573250075185255464167797002236182341131529228056886281150984683758512185270717089838607513964607650163472452277566421821686730473925635408061710543573900882792626455673218922520859521366786598666284993935365537805814095704999702848405260201088625451836890501794884083821688694364260499932451716746028840105034690721079654520138770377856889623981055584402513727374701506566923782370764119191360948209323272365954677457997736578699821272497953410441485490954050347995924873366443673174953281650183185212692745367252697175909924894102839904120870707468969365382687468611831632148793259448896518410252473511892115648901547860881747257758633219261692389505725905203532209919390912181856948580371619652188207070193009090734784115893449209557654393334758360881796246930564575403339456097492967823690788552484377907346997404296165728203190437488520358783141281584231198421088663450273635779342517814628633685782888061783478516635231559263146721995950564122297404226366640534829764762089765155044146819234544995275651420048652978065979650707292359196989685212174965960807933510596629172715734935544803578211619863742938321541232867006590624636020009899259664599058858055374466108137285936932064280452692618077226896591048618761539410808370706754241096541639351550582553815710869440095859461782169469927771301087729141266909366428193109932166506621790958859373714870617196487672322401986666509147523272232784736135504138695628551896211150027997600560528989910647935733297574735842135723876365696483379438840131892505136045652875233641034073547875829004507069009080709303187272537846412066527586237196060185699279278853420624561201497918737704506595892348990000858110865763230655673245541191171682596964712695663728286182677622422110056134425074075566649299814835040694581075624558866892989514255987121540097205607854377838772557770024397160735249278349001667635955807975792645734744291834898350203483738108079474243592942808370368390274157888314196251072966132483226368154708005424753061072791303595189961949061812766524644177123323737106926800887669786341400617901174005241929500474537457310623755200246623916565098584563910711893525627036384528907317096861535335464715687778642351894916464429747544934563288628256427470976158093893656830043553851890535897639068402468436239403296156166588094767212549378579902406893175492146042469524111886584262350056980541706255897803184550100011410611612245173725360607800927202929520989430798426951038182274857329864302975006891752931324354753916630565761299976785506811220717319843749123737378604484058630791154464727298531592620294162299614714095342904631486806963156444288973556771480938184908326861508246044527517726616616290132183765584540837506560777324759879559485856310009735848062646502055522718256737765247159506129779620339718843377759560465245652296795839194736574921559060080362115538846376588422872313672925000338324683683662310091153125323071395685872268071377165948292595743072482368048963936209258322838217404110885847226688039147105014850853841156936896629150378443107209518623819570422119244985560906091060175761635946021408406049308944288924293491346179490302115699892614368815387856243148258654987450768084166153602000525404791936464061910471582300669796079340934721986420636139795830988885078439751981573967648566733005798533358751010032791049870794766208386853957767670775245665649133423010499374909432106392688638105995737048506672105195264758825244590828722384901431375721827185773038167016446054669310471331671885284193788871110424494003069258608841623605704502661224923155474817519112804307615940108263201107303212657287308395917950090884451447518403006243480462005596241990983758707303952472250649095727999474356451263514510069628668275737565551286602683400711106927119461822507564867390137475577110729686107980732325438252903978036699113865354959566339372518644200323797880932341809577623318523598908827254744172439283256099723030941060666883511884392839248118105770675910637631151794518024528385172015503025570943842183700432457143346077851322505809493804001919925875336974533124084295962942047453634416396699995129111998117470875895259882115471365504928617916276318805564852595424206269867418470347805839128727835287677847732163448570130931858333257287179116315546705122114439155623481908620205238443110495495685907535671528809505651654236039893472058014922324681921817217868181325302402602056707973522029323464188925091910744208069133097601727111140835360263189634234793531779868210467782857012159701426658984000575915755198139535183406259926733249142248322417789037122812680314287459912228767913811916588754138931152094899756331108635398604357932178350495003920090164596093346729759271802749189572010323409221842982955099820713724110666680642035480201545989566911397360490093893237639652616613616473235451479559806704663507025485617602157322656035578982807206594945113753216278370234460255405701981265614979209640452376858079571063488358933592019344083040271632169825727901493266031969890535105616118672389882424788135796895366060923903576317340175777606478458088613384795679434927096093280159850652778366240615997314472922307588865468065072063302709040118990924972909035706213066032050160253577052298868867477304992528562863768855464534020625555159694719343070059676046618837454600442032838547807879961233515815747982661299043932170564421636352566995222131140350345600537296115233213929202627711427082309585517915073221832499233025173953209113852315076349055680212504143798230792568454975628473740922154567189726704453493228121196737471853639168329089409738783316315692413075409227299822203705507554304633215136587724241442252722375736732429178945036358081870972579953870889578306241556837146400805300213593171312071725967576353278381348132294726118359222569605561994256647747203439326543126926290577160994777323578123188699227270989331984666173638415422104936522618090983344170924172452850868203792014247871265581598407100554787189453071151722343773906741769161544222007749888379662117567433164507829175472678620068607371029848204137764050912070430010137885028468209877574740318528420525494798280903490050796302830064614318600987743665028292012328999635337090689700706965963489839844404251454314313878097594943295773661026564358282761992571919473045756953322507294618684032329009041351995759624648124308228255481890863508401693233115863218938845492503193763280319214321725233117391964907090132010468163244298632917910922349650278734806775864001212768555300141461404866189664276328489880148424246488487254188086567977868391839593254326056157813051207576177727070438270698301021263608161030241800850486168299062737866760940900003275682345796436830985116484246111160372959783563025333109491630377266376909965213201598466755675232425444144755137508712996777865598259457979953738881805480364741850530432570955399589672146252529404096881649724456410174837961400943290716441395608940767535613506560222087173180007080035395730043424351932324106708792013892318522907793898927762612647474871081891207066047121534530170264834029881706980871018380470485260268791237986470848204563301500224928614207521822964089945492541958255224823054624755099583670500031678184203134558563357901761342867475791005902412808807257208373265785438260297922395522841585469325484589576711604534437174304900018844323073342521184620236341338596601106161829935317641978230863029771058256091970686635424302678835058506540542754218085514398268092702854125995508860304270937019128598599094443396787253440426632201619317245785617216217927985364170020791745138028477359066947597539906656704080982593699529580390694153743325052618792649781137884006599560234656255110962870053303559975911292909579615240609461894448518246032703914154197557342554612116366414121451910921051268630892342857021900895846248897288008700503868906183486018901406586096872548400116483522730321790624074713910377984273166453007092412487226064656117146319751771948116880286587976266634209610784077933154071474595102251690702602259593520314125468828397644922810041364605730608490412389955120984080378669495143852903910887494294318883407640347108310550941107033511550893098948670543761609959905546956830549454247819955788406999348378477243451958023720740975049953034946398654174623451980340304630784450866769498220147765228640653429836112137478224543062452190358228220356813295350061472699496825184675846794227166724757353598039109285898967874723824513597255102817182619843595073146175809118452047618689351929075060539569922445382662803707929411953265898655307470607753520293574893550781372809448977863374826876088742825606645622132704327002272185020539614022986507795145159429600960880564054872469447099537510890314787858985565161464359801199001673505323193465719507571506644230538638790765921349357381116814217978926034467605306154473366511339671148612685606676821260962016828939929756137018330683162266077216607033256781068315052937257067396984653295530687226765048329033744438428359757069195915650846830220506070092611382181287524158551777772870562561592337208571655815458665803614224330418112728701690438592323493331959903461794344660501298398512878556976997070754887233900443257564950343595364917048067774831720245693811612191841693813324108070523629604332069935522053001277408613564876355805808866653809583865873499645626427979333516194786808283817993795129763470204020037374577877287441486759573284022040622741812898537046307614893463065022864535390393958219816800849943813874652623345649599139404522466272176634925527676518075469693508430197511099201182852286151769738606670809716161451928332102151144896670000157547733182210144693314598389108953132191277723027712235371829116644986374457020128622378016916639709047645285062967581553637204511040292481168645197034667008290264380612421430212608818670868289405613573534621541867004788942912186716850715571353913922893698064961521754591139443509931678480341628839309796833868474698530950066862612893653209795365317162711528620144700932756767179213583274595174469870428756004611893738204278593601036369206763211321319766567176703151504348888776496116481351075648193555109883848270969452905091069025113070097688874050275005430749512232102876532324098169960818409768470735316978557730716316507698881941954714747727327855848925715248381179911932854124385208111099998597485383627733662818658037616245810167340675691882728930810344784844941066330834395260659865724978293458001036753470842508734601702927996834575946145714023687240783898859903458068544574547672028559890517778782630990105422970122224357944825110513615515081362462739224721895707777262912971991522148933601004386484521738707842932786252011022495843219621897712287274811201552213224397136702342047961162756908368313652896863687498706161675509107213977745228921722267312946412360152808063181842063538179560649432483682874223101370937814759539318603173919328962966604717698693890522741555202497078125379643855151664008512427302930693176354916605685107305383785047664191693113245456260632404800842620193741545554065588313036850024691021182579837177366907433410643826940470149640436906417049405573198513226225391856108208929823561864000425047637924869292579086575461687385549730029479185492617033065884555439952229003034389250693157499989765888743567751059828850880142328832927936868469657653238181059072647021967073677241518674276630002379859856475078791773167356369970759915418940917949360785924104419215743630026579272201479424764829435905359037047723228426557478897980354352246903152355284402809563118172475907068241698271398016041687287170211209200157387810580734964404527599525279634925382593140766761163897176212776230061007060081709413424926851372230055813445685190847866131476164095017082101422733570167026679145149944128732573162690709491748269164118006931177869215215457257419154158863350519150460722275112657474083723436254976110942939179524020518283758815690772151996882673056175754957937699365809071422815392471922908260423275414590346408592382511473599149371554289187049836555293174813568041148664905887607768742595350269004985934751699944595363223275237721028338399845196053326063272261423243493668455806731208217829227847954082419693939847462547608883728041295470053910431352005450330614275928839775625198229356215816485013926336523429061343575829732744400318394360516200904321915477049145220300910384122939079293732170598028268528579228184626911827694605900735386626148480712474526314354767164826310261976620561335659448121767639253073151342577074103876205760973347048921224565452477693044888794897863509845955205028472946196376037574280263030673534924266792719665532288695202476571104341357882072227649917868952455564408249128014681756162527580112213083498965915555634128223600611125458614516993518992760466279835500953095041250452462296831179075322579754044761140068666736854601858112571420447081301945604217784090451094883062274585066822631274323088559747520711999541834243863487175329704805491634800226964903692493043406029557061151502277116795011578976914584368086774345840190812661984349486272300281863700556539125996378701054197990404535888721753325726957534285939435702336487693493846491723569178194098154251627295379920188675707245301859511374689295847306152759754331790657708949349380552235760298955701754069287008037589972147075854231746132486814235746015410088093319734447311459518933192044056168332326865927662818944734756787441411232301146550060763594878419258882960664321949824614964861614909363660378630070121272309792732421424389360313749653548692034414165459084118958985387671600195584417690806359992721096521877426134052826323741421338768137841990943978096217053713742341477177809592085722283400780971602919760294905858299290229147490476218297913370647014171667738648467148640582352820402501209675669009482854166253005977878224526335421554089211833197220694854654084721295261967087133279062169515752802240347480026410452332735009170502632678604745694749235092017920888427220227905516740966793338536198664481437321634289848067880427719457598379833938079405637102300147576623488940889242516647204340780239563952027075307296263766858882786659747189044119306949278278632760632547894627260025061553090262571468520052624662117743353394196752700723284879144344127199657810883306808374748996669689804413705430693982408239559764703828788224986738515215465928590747782102172543760020945103732838594967303090405003052863784948483447711557680548989876399462535486519946023880425904634597026097992178188109710805539591737105239388429988213834330139616059906731623070801025983648058728455674454125137771486999471162456933959995776498404335104903025325228105535990346872860704182775455496984001549442657256234496704556353624689973103663627745836497698675658404650134135882047976847215725573517262787624130730054926119521960804540526246009771616511366739880457057170015432801487214731285622383911495287130326565181456012076933913872523843657156748122972359213266414732722821373906313412039100250546253699695640787449561046352829479479655844080173114533350755771907559491640851936696727024984060391435462089644279881440026177101650263905283502331863670818826950442907743041538792130824878556209719717105692204844405825056272704155110793631150229806282400442903462630814553148784632635542082208570828266654495724292172663695708925282639895433615918522954415717653163889249025421605281938775675642112967142875039090259616437659601488013106490667683479718400965275562091355799809448530296494842415451230484385979246039090489986221651230489959323753968779782673417483392193897967072045730555916205364691868018994703857680101280669926304838867323676190527077118559273367415457857996173023000149851070798212058276100503937633666694937115737110505835656164099125103985037439821222443289220609355759924177597513489059191640332800914578581450420360157993244510028258031109911605662109427835400960283788195158288633249273339991687593892286402362112294694692478147925432931034372848916983494618951614843931561488614675782796175420444727122988754530108408196425982694312361972644875458004082310105091321461258688935716031259916381483399591726583937313747235512363785481482118157045843849160163051504532255826559667408299898493551210386904807424351972560192769419601994328864864983870956737601836087519744973705638727819856109827479044988424475051591969252657846983846199800645239029095198008009437173593191980531479928615970557942250336532175250726191964126611771179860440072856984779657519106614981174123023744569544422043817933492313566915085781032692941376472367215373951877295029749252359436994928471989857282613654942731869760738556800388568805715510037925247515643875388548133556082346884166499474479616828245970982094218015278244626587257398996704888483861547246857290942706781588986785118879443274709879677704001041299245089143530869428647076727128458140749926704035603163028546902642768298693246323070760713169692825868122771220977669333479366851266301157802883064348314920033235625406519386009400690940601772545984723961541339172106066374161100286267819430291496583285906776735789293690569332523441733044054074062874800933911371622529555918235350979106229834570962347025618287667497047352492724741325793830798632977628463103623738050106042585617953595156729120256419370985462412658965344787561235984383991558870971050760713748064959153192991485369866705264835532256911203199136813038067270154978332691598052555823357393906417703075429369315531197683485409110279420830706124415259190285286106657672515487851923619941829997868531950648219633222971576803779131576845774700078482113981343798020828743007912642658911373411783113962464724118557903159673026595472894778554363136896575709194660047497183808348992491794410986631845855563368373996783677851535455146800560605708659492945496778463919522438130303811546556698579243874565589083702587111217892836061746531350427816504490315505740845203936417715950349156550428403963344842100424790314280695839370001186130049094679129287062278024209697700339371842380714403666902773530584573752206135217236495689444002521252272539136729502316453779557055206733379445604682983230287840133846959163784771821300919895810431710868035558864080792032832224134723394721388434901934861031448343885142415084662342423389802698207855951891647205182501689670444337745924830312559937184232425197069755706792527679620589948778695251018395300949970765474866279913059939061437465180268108389374845870490383035371796329151013378892670022386225479111104338724676312324988394469625304581732097827070273865866765658016396944874988467641214230371526817642419108536206845300959633244181196190906066902806098411734216109110195593135041974655294548651520278408539555487287910352379175467204762126294062970149468954295082350352569369179460383503020832668237794526827211712402814429169934075123822755631012651335964812782949410720107177304856878650490123264850178783922721746565906508023288003990514604280914445684257829417281346642089882336250528706516766366659832392758245410335086854307069532644467755373619232994437586369605699163503576356693288067212827443596131544082875661880259051257973515442571961332840596032432980944793003233517354492013613114752774767808450565602183042531676876572654804819774654505601143915830650899107108169006867808351153832237628683695046297496248806669503907175455067868855419399054475890520696441056619625865899152442361327216428406095796299174548616922596691704451620158932949313972820281508039944488646498695631729631966740101158205859683297336182483613789506160713019717066955193618412594348839994977696730270038702012329586880792503536282813717827336961135076653711476532612622282392939202925236746190286095325382832229392016739990017209910591125881876044129739621368173288677199093924928753697386835313317411916890546935808225939941803850824863386956752760958606422916046939760776268789203734655497037178368522539988332685445036789886531041043748185989362563930782725699453575732019488963942030104628561308235366279884634198059983664770743983474838319007547097471827963421740411178478728676721899002734077107935226116712728559672758040269827625486133054535459520354110991271774718963342480871008734341370184431033935808034543612796910547453285863347537327510759381799738593604912518771280498444136571497042199681353279909322021925630973854935029556832550711363923533730445407148683714313289180157272312998357004332204081673032882791808284508198274355704029797157538568617959349588453617744670817756904686633261843197260306633292706186938386410933039533309628272904600167029705394347745963157956259654539121383882732437140184472913243292586706981990458535443713487568217885315857514803244325411852976184369113393122927676478164961084815698923147695338573290393699372529166183425377834635874408339890432413836459530698548391716128896184697805966601846070938458759334013303227183792464086242140407031253791205180877119554369654186565282781137335388220748828405165015710470127320476916784984053458349209450384106013648038183776686277925461802057028803779992852566063652871092309452128132823526064401695149317315628303695320383954109725521346141102703729896732302917790356113358988588508015908889069939257086045377472919115525371364905431760611218597308684055347980755680533955972642581113336772833798664291857961654799056295263457019407682695514936519453086766579118553668751945277990338982946240550547350129949078853045915411548633642272066108345926876785797376613238918932038740386271445218601759355708190697925501662114292284130268067222774577439957174085430042959084833457481991365483427772544655389262036161429559935166775029923540066930865272210807700338113982595099654561417621354221141050495554064538412406504496661232452011309425804170299527625524301390131312964878559140253357360177659984152136256692926701508371645860695092858188538520776338682787438320863171735987936851930446655358236875435359286444440850249518432009735834306083529184254292062089487050340304594460053385710785008645759577424171752672578010499480324119834079960617741375085175816071142191347717605512512987820593743895741386427542288916508478396149706061116911230413693276682528782424116601676058030257007378670801388055884641469316893357436170598448923241365439921375737459359466375405710829911615833151050303553959823619004373644473852674902417175447330669922359909249197011130583565576091813771513666377668429962558382866497397513355076699042953518486572814741861830801251040537553345443646858478209966644390172248380411017638709111122801512928108238695450889487291472619140039261905316731977190112862592569416523025464277583257346950919733293900966882800452807748355398154726537456196853531016505536379935928701602786861628271012127196071920667203149803819692273499574555316771941686655123515462503821362024660879415414214396992563953750739071747213709397645786758707358939295361705178891997686942309574003289672779272630610755390391953446072874395057064516298226261132685527040885579512608067690629332182009593867833189369787784386525130696245746402640930364319389870153537513834607147556089919508914448284796795158730779906722301863585034716990574941469281564414220439026149399387624866869729851405717354551526696567305753872901040791172001036165793038650288249998925999600512797658639951446039992931264220757080742426886214724794185750244241518172123847649714508952724420968844945255316413118742195017734387098883801691220974200542680176933307780525760361937511858588389741649972850424456013371555781471601989383400985547266568945089135433755416271936416003403593222337353152759857025388428993337467214667873086927186652566382833622880886528568568787980134928321694868382845312745150554104718986687611540239173752229603760169317401823015610617750480123900155914412260713381245130956046298195737392687094739912943413927435408051832003640510636111872043213586014702330466011122307994217364342729348485181653336172432459118326500467859425401675818170742550766592478192574863500772972525804331350130268246728844759497102232362618539808652645253766665627138669702634085810642473723627171966900590474216987109969233014710025318955313073485133509749056760999912390320136667775963903790711435643793496718755943754759414836736594380014050020646630612652294379166325609318753058275126389741631226590973823798975017725959595736377158177949019110991959507041986344855622655519100114729417630800403593565928135374208981010135599785835793359971343816243890606386310400043995455152149620274214743571229057180339262727711652764014157565806956632227032524219198260620468338343586800902342309803605401419148906125146770600844409668311602389003629396438983555975499414705532412518949534295962298711209037638923010181653645873814379977823669676373648688684331152234824907614469938341977875952904707945355458093655327128475153809067612929790669785340835140077787863037899367855157226015930225492961193607633524872428449113823673349102884432730314582237796090920817416920124375458792527107854997043529931105428656801585043173134299389546344114284350060352800235514894508140074545197325164106331636869944677379367288307695171011157952096646350427058586003674404206774074953501293794139950684896635341927471783152539515593365148313124979034968330271632270373169030501448219391246226240887670598965672730335527951565755786465570475755430344026320495546001079000530049713477688849588668910610917791536247727163333657055110482434837789058532144341269471802441726503684678177674420030236650596453852903545911366838174085814506676378738204297629927448021980156296147305187495854532620270128650135181600699181867396660825949588280813973016800188394901857221911138715230980037568054549028852160228303227918667934068643267045881665404610083288317056465576072841712142498187726620103716745711947111746251767999053495788309188212233904304403711705562418086155198637768548623859200716707581517080113258704206552142598626652176642743635631076621762534334131390172096210751376290210840316220054788197253218919182806006876559169270261491046474479160285010428834029704565823882895719722268299340898458473044070177723892812977809534217355188772745002365893655700246298218407873320241554902154595593055145797686846912246570064838806330493829300208817757563634580586843492307733284894553536431661401291466281014605120022858482089851174552991806700670908972527644653149675874779182834164472245906333974410789126848752960868787606846154212854493828270605705726047775618970877406206956245310042154159133394111863260350739919972794649525980028674111014692239372425328362603942341907436640780953954231339259957418887507902413799159075776540291262784774901959209014945452114937647033328208934335538575813943170051535451919666147236075176172402993758015120105245327137207941720610086456440672881058197978749442271794406192799969024595677934465098268991577247516070481529250501132278068641254857731217003256989635898638537693091462199727615687928768246867695280213186624154718090796534105081458973807200002173362613501054595660244095178340925682302935376354227988916767995754757802188732215982979088985778722519476334291757325917415809890336381627197021394010535782054168383943677700447528864910655810260828026743710675089303404257728501769283487219336927780443668196722787441667587833992643881953969605102103769682400966635901306470105483328888006537540558444832124861760457278890833467641164414769944097508195187282543632733927063171237375058518076577881484332251144139153371283539958845502470737357739412022909707582515536655300108638970359132250615300844985899694496481213247430121161087513921486515044526414917942443959182291317410058634832599573472294017776576944791239352211590544876064126751693860705338027069591167771287634112180849545030595591524987981595550530947127327014344152619555739246175483184246437878041026862980949206355900232689464573832595378537454727882706655578597517064207308312067116552947263647267945736984519654514264526223086577737487007350768596787079135073100508258494834975071435130565086491104023914456346523059595342747482318147636787028728981741976576111382283486339730149646685201651663427835266905903750843837454607446524054310056449186551897521217476356828794972561184996330216394893157940185627382773913610464787355335364150326354052168244609522511996807140063859121283638986437901780148768875993159454577400644728191272377744484652215672476704093821607742778400326105282161116520647747385525104877849779584088376207167237299577576825511823381449617157692270299735032960667998219614522000564328665028967660523227213503885709128224947800999351038983663679719215944312069031174511569231742745454650468708606463669359305409415698896972189073192390214621769758289653379505185967723591016666776468751748901488235572567895192149752033305922335062550774864572798866344284680650813053944640004374732878161765291232264840550571867980103031737884450335064975860480722346541331846750414565350848010153183883750417838774730927433631934755979885253186188938873051752618606369076533963186432874427170748187469472716136339989567335187105419577864921825568006200398879641933012860978963438398698761362985713135216881949656301504951721219712298647603704619562545354095407208672179359305315873507526717931994688758890846810545383562887244111615386796827172887006598270209065614898720837871714541454317825587565717837048842626318183665559591523361180991069096028666426534161306442831094171971162509201977874331906910203517771625568924947070403604033629349266582206754464555314959630764436093321043308551365548180505830011891464062120565387005119616127149847200706594664222388707358612513366618367609068099459632146642403832705791845398981403369346007543426145374707826605497446700775997450967472752542264393388171297643702443414397136533532290215662194866760583992398248724274897181630960282824353922676206557697490230960045845084543246335335704153738460438951416600869894400919244413513579454451698523482683038746150621976495960812074871642090676143517365852825376321490865776460448213311933495468587754701180885980137524795156078261218700498480874386805481912111294590140122158176245386336720572034242752441543353580632787658250394637193478967952889210830057541194353108887143636305526454523402906422758391371139794922957410213518912367211797790170358979287371779841265678720353355879839459061296954739694109911184262410895110360424567263582319101015781782479854019147736374516901998741470578890994656209765398957201018378108794062359334821629684923591860186724801228499826022565881098118353061632283566220254950651994181209727332849016362721798093883858024101148646029480731930386163134040882680915517152889540041757445417288278208651634809630026264791883402830959367385063114919449932775552131466604622493041844674229413994308779389269356471321878807426025668196890651792141927045102879363893450251899805919801910059827751893273220288438793328394980733771810277649165971070895408002655756414352711449638238848847279791339198550208799152675598969103633797866132408899851130712239968103082449163126053189536353481547054986830991238797556744285531103879285279674526097447485128160089150102104189679977013478274232902248424415339886907443824323613825602668357569221289180066492711575531924290886441159040919749195898967935653650361101202848734669129338243845274777251159858902157117183196105164344535699947582466044166312935886526609341318602617406692069553431871727819122946664213524365330345688614321044398181938397384687687043358124672318659885367337442487379229356320424783095528895085145528418911672209181744298241205476037601712685141457220600060434366141194001829522316844546759951921942987421673395745069844070861885712520895756811999849573097858493834011922429685482076598432887896632295812730916651983490797799170431247696771162098405707744411507370723302408175104833182494085075049348403776871692242290248391807000480364126760520064242197119321100681401298550158012648355343633912079885107820076772386146117626929362784877140983512363153967694290119120415957067986311531649632200017718669763239943780777370632607107763312731783213630258063362804731714249312348936002421984401621355185182757702122501777864335006709251406680273327890236676819964210669207028298449330187241927717855796813218162947369182142656298514129859867849684163500332590334211892432389926286275634431192331460197050110532463344991356509980856454092735856096134511156454449070342674063702708092960890436969816138796127955654282512642822365257536432658206993545699630775758036738049898755392063345826874595015789862044056169246209884316507254411101471406169680279465268204192347257140752457415135439047999115934974157745587768839553388131317618979478462460699641691883962992868759351685843414854078282429958535183161329912764014368636886731923345301161090098586126804922184871198403072684510105798137432226883359540764620872867991124526452173641411275934621172362783266931741084134704409792579298192187035757543675405952461878498785889836056512626871450923047177184507173468978873021593520045874731158248778045906237884332617741058899755799213910786767315205298465916176101366742448527535667394199735494918485808972130651247711121781981192986223136353227573930236857972464011780439012979878254204666616378286364631758139621048249833431595390034685032620997828148393447154171491939367972260759378408015463898340718342703637156865931346831854615377741350736403638819268886015667581528716550590607463987453319328048668427104017134200638464288845696029211053892868470099893210559473634590979686984165576934913829575056687828232607190226454146989982228504825074590395519938262970137571760081075083071027880385853824704193708082401106664923258938953232420843484184379203089280031386929928382288689485374183810113370889566889270032069206073914904255232608281616086465576641100368526308768466000464785822431060342360392353426542944308785778935241506909103332623805979500082946220606196234510839109732277664026000056759107068898194000718963745142385177549008871429387030405837381521321941204876374807966857457828700497468387808624020404370401396022879197342675729871743923502986136052885656847794763154512209938217387865000215108921479965641064539250380640594496796607931092998693924176798807230376546212895018230073498470314837212222429105107628157033862799919966466159295203953332756408474797617004373035561561800072660270451484530863144897753059809204150348558420764956440055137830754754458937928136666971258401187016954608643135342022531108269619039707881209789149980868555970354742798109913856986991396187416171735933705781038730252373016792607179783481683162122131667942977896555695109932101941492780667982171279013626956772445892851851371503773991844431319977131564780238687052367619975534732207892273675413588104349948809463397608218671147012444350838655090434792313850449844843866036909251641333272967742267994611545874463128327947789694612630655434598591259652953900043466974431013761505158234048386867545261353887773855450372638470702533072943169928770174116959616788232000129679918460341757298710891702991540073290548907176788894353559142296267131184790486439549160334272084810615774568426292774809938537815398440499220370817418708370931622652673626963166928372881958618459806401307314128509826685004220809374463355777933677981447685947136235317857783295667847263871244299501541643788556771297784500417559683459585723023393137148443069618580021638294527556541284185780067139851407386992088596622592589897424664847962114476364040424750640503208072206628991632237367650709418069893794338824613196285373040464809167683241446282899718754817955256234818531534952576701815740109312648974183622636746028487689011149719168228181328970589183649979656835518552231379847009690637542030702723165326919661290996490545774568462991752697666156180562857102377952419062548815183825861155142075360319088065282663312265495312160314276105050415107787249038874395634889923993316440943484357910974993369356735787939641097797822771128886719760613055834639559769281220058567690605643427958047137684227814514263761845710633019989935865139679971693948098260665749169766747781654186575098526975787855146153459695422198167300972167448215909537712633895301870710223623051536305101099458118995443941647449942154648463748904100963641420853781064957994268337231365330630593557346899725284221663347902706492856030091962917655531415796140704327758837675358726860167685047291568597126433239982858925880842382200711731883009542089833601988027825203953845080326679712640179490936201411599353693735990174642691294149730110267827294708710254166175150129307276404287123755755982651802986126803316899517305837745720792690840739727841677062739879709769177934779078852125758023371013190304230978829168469454493918100436337300293564904551402624863380088841536269145749213207923333961980383297541995416432465579962011526304388367190391412926081553113333819438418869919567556659290977148542339459288857030136500841321668001243213115305256642676452335359325254182762938688445504206130672662880668013007122130077879168682313589950805452966779934374919944245213559569901610304563394630561267371895526634638200184363533036053262577856873109502388224236807610770766872713869289819759709187462497450554688950730614208243657544674649272515935879121187787764848698948942322474217017704695267020599179813183721951931281913552480844402092180472129071820897277573870216834606610853536674979142826635536726593242350650956095067767035048234748313268873420027945037448666548688893743060681520733169766481317983213284982170633982163512244455869403126951872473596385361710788704803796360713485623821155081537251450068795826532621689019406672513833912358672388723255151390179407321717194344314279977407724354038697780188684283358029835444759435173780930157576851755892783774353694239275533312913396088917657624813264907722611970145489942953599408515974611316309268344509814731279897745182591352901037828827546667842134874275094924528128441372780166710317460568229593048465273523254574449459415835233347793129994051827864021839119379482000244156820701176719720076916535778004676601609054831731569147528658693838209213671407438988883255176548776136421732664215301549952390213995276358695631590760151630250791881789054763975657012095817833495254206822163151815609921633623952028425679735178506029157097671375447266743216955223247806168765966972237658509731779971173350239320576395793121009920625478125378633734018662705584662139803534328275757063177646930923225763074509342731445835321035161027396222795305811089618930768017127073638521668721196274939058797142059294847032740079646560571154357720781799768393852060103641187629807705849738184828168298478111359319824440763119320426758664781815686825239971538005307794243085622571913937676605947275933643689774339887929247991601323304326479423770320463115260707461177555269791199803355098680285867590633149108732579577882414376154080794935795908785953665261202549316580398473548166268877105997922828103106962644627062628306662772135367292030600775881071581972841654171642908597269163568536009015864870292388131319104519558191253007459070159570345188132731885914100273674993905262301272045700896170470698259715682827808321951421407966648750299053781227561028373586194746467792570011499944506641381978536684785762729247420536310173171596571586564436914843903175515775689683038317325985858715368556893046547064711042210709471425367370237475738914695264689902462649841853249135070571496947964011704388008964616551667494880369306523540448417627419238673824983163038942213935604331563485250631967180263329595091608181523840197888961480835325455828236472035152618531128143730119551628758876843225886630790740332650634876405156412976300399215092139317635457121907868424827962667920328396926745567547378755506145830566001742502994433070532891540833401605133031331386290483395270844248451795379551058456505086648889560710908459724072795550641975095790082578738297023797939406263075683102406879715586692769440626041956547546125171486401137734033111931554759560895602205959490036650827479862317997424132870918032634565796563463350505831914515951054584792701768384326542445816882400464036959664332771710397639585246783187878058399052371794987167128814897218062397325587477969771667586538092883590449888887691649436419927330413202054320213428178266543452535669864581070386236899438429819165723119065216897311535422273554642389463086583867100706450413176013560580104813031080781366625645327073188480261045524809195021602625513842648676611662537835977622966330834924430750447843453562788059632050973237515309577718776311801256216395373886950406115165253491599294855407135798651346673402214762422517273373979827802619035985980122723515243825341270343209693334464619222619276735685489738319361615434564929545171283823130278281834920060826104059014894704813644675915187094694225159237555261693522011418477531458426210141641978190615650650322478485889152329252051875347126770762779256874052523392369808432161555842737037389660463803731769022576423999236206983677268298752773329874391362077046595705037134167692074788478790280512971678576274880557921666002780347069247407830803626727087823296444767526843714618456975607008830953506047187004958698313233569033303781151282633375921326350029427513319332624521676768487433283030058090351968037696401585085966752875396349209280466081466626745251626333121025681888225923384617178026653284677082797940440226663272075000351436347477522475769646459410108787803248962016029677039729940539540959438340912841855173580850647114926860369314093180943925115012705917984034781734233964860739470035942195497889230784090053252885929680535619225547098102211564623586598681585565393271641077988661035093549106970838328631461564655824166797948658864597759816024895565767767415961753407510708847145941324450370559393941962571434632011998744807798451051791720271690648024344303788423479400804647423480773299462645977612979550830759326706188039987885664527776461797548571716896838250085844523996602010436556816595723716655177677058685529231439498218605623654095232014600322143322052603860072108727958414896532431545641424363242789673473484032040127850614771423244880700549103710854876601868534981783561867584974929139512781355160090214697548419289050682233234609800636664860518371058559936521366634211830013093713212401612277528696530304880711580815698407317697508965632143740088313137862529032395878381514411902524453575648982558134997812441256602097055630540443960716373692296253418619799922272764831622542724213986599958324355538314171460031610339620944995821534457815852760567152622039375206280736585125983241097770567011805886613322096530337449172779316662956871730016392909650675889113118290786227091454401930962237653998911024572963690404272812986661901613818330671674231736289059979995683889181361421991716314979890356062002232858222235791476194429703277521060264760710225072123499521692010892428028793794063180866349926125910347139627179388456834280633907147175248813016749251525326380087276075042042902438909199146525993712742612870083360741399620298593271815571605818848909662088425633430349456818084265415802841179907963932972734181444044321946263002470137401407767935983876884524405006753820991726922793968960859775197541380989861920251753117990831310325470202236258358391113102734626620104844943863725946691314190879090746256935928722990859339212154547024741840274611930347485397826594417830770486051107984821210680025368612307598202199379857100534762826449862762457500281646565449811461981920025149914455761978916398181656009857294660102714635994885370897119180497642959283207192977006123082428511792817104031191269768985809287675643150447280525370028008758249701961646136538027044296530315996346218682273636297021791716684320311574950833013024704917559161402767455649208856423020678560363774743440285747837693997298235556110043489130761224961499264416430641357629802242015281558996618715908370216320016607681663552525470757667892823175434971999780796702454910887983567240570624412024959183050122340354929134544875918956971654587983684163649170921524269583968619213184300955180915487737318981298029234120651000226982716102165136453428720524417082388305883692553678925443657236813643244160876304120319693255781992663358178145776713782130108192065627097644402755336332628892763783386453435030381770865054877703320512874035144641618978721616547986317750710241282649200444375180186095668570221351673724191781952961896746063024014255626293108241285750481654725490968856454887104086136198612328230714520658861296250996212836068413760958474821368471834860728031782360379872703079904607597237831963821787700347839305699622951798166886762753288211401983598059529236667076872252707751154337517589777952209968263501060419921224507522091533917908687129876468836844200441996169634189381409614775758553457870626716096323888156703605980017368530485302338195313594939446089695458209828179440885419500970387402926294878221208186223800479499014530207555896846911989291931904718276207718901758173966058530389774268633948777938972325191632580050917677121013580504291056431945759801800236372878468687915871849320185016325555365765418118635908293706814488769344342869045943455134089780647674531204441369668896674079542768799364068616540092391397437568804900708021078145175554792616392655480241700280720484722677927301983756832661461521259903694954135185296427828508627494853500934312220621701143393718739836090729031553137332585547063420593591207346437103984981347154719225527171660619392691391072685148603714856315529560405368963213837028118975852829534111287503217105669931537815289318716738049044079734939953941332216146442266898953865648559869463683495913387834879649503931480443114201700581243317432985058116282998194274613076924055923851096888539680682213750936741762246473809282451221607685569871612480542414710717992497560829852085728512712027517154560050487989825562430139684338214833294274900237499558379681978402532648817582115241884036502059032278018704499273892355468034281414999921234848452545350051193008639693478074083420050194561009102127137226529456564094895271635288851226584829380131421754792666214540932905096171877088846230324225710406327531811359458563971810347284689314456390193322732259994189903737150920009629288955611124088187037086655998599401375417271229973858002692993101937594476287826017134101985993898908278019936644579566156677297970901943061368226858224381081272518603684461208882460734036920576055153568464794811280702278118577299611543528185033659113083464392674978612746102895116100166918147129977065095175987963198175555988846560298726264641882063025196720411084292959005722188324246605354814685346163921245985078447482221525310124899615376516741848900134552401124454215959582196174792122386063435004508666221205748849017110558748480040025623995871927271693674396818093564741388951410036838775776543282683367861858023285340035025237917549176428198569644621555182910779528510018670976123838465646867225899066730068263907486983447938833898245004985733601464765267449498789372653737608907998081777721258067458279210221689536293756710893223516413951514792187308059297886340928902186330219380626783080045819601723064761999102206131241278895436070802198707451846546334706820098038248522977132515850606692832449590651485397425106849686217050560529225215555478765725046521487203699040956941820326140740111703224552402245922891474710069749541843949799073582964182656483327391122141759053059980483046339466056873760765379483320707642505061268626343737494135664233376588580076240906097549904070950818150818836217924885668061153665618949719176953638262298002227404567564245112796819171946947403038256433657536675153436218481769668544556748868912328959826543171959357230050224688630036780812187040344399986907149286404898434500271088329070455773658291299467384387119345791795360249147821254968809540870548559599938267422621709949745543544643069220139698172988230473762235813805129749066862345099760784489040979543296602632302033054472776059460723437270136724741588899945443501294030984763730940695612430926113905129616649722969428785556956788214332729035196437963180880787164742902845934996301967114929781186876355321712491518866052321927152381993361194116072627713548123894287913317878069934005304156220819875277118461909407293610675703303053131869295823200410811240640028579789642303654853402512186127109015666644198464118822832959823393937391476537450643378188151104009706617648553105247742622373454819422374729714170342953536454706163422603888643980107083177507337884883466665247226386715542722467710012481557865731914847496564507114754965577113433527960344232943137924581634049902807091054184425488163427456876591585709116392098799838423841146354029841013186465131831943829984685219128327434684280983099440852288105245430287784569008219566132766361556307937694316162138755028214083157388880916751883207118757040935173500042453514125412415840038853715246985778853723437206959387407201560597426970162571944419790404913826648808305723911634712680394347623297235608090844184247016572647852641760553886936803621025259382692520641712577754660785925357347647065399450425843155957774097254398074751920034235340528269046832309338220024496744196503873588184384091811893381626769025587521966220314754815907370668702536832320993575699240530976545760297415287033578142196216149089622389678888097277809782472088899693477643372242042901678072607398889819470327887639425610729985242651911197840783925954971966455657349996036485076473551893561827863015110035349659225763542991202477331677071292212982270160154776720317396206925400376276770430397822047163428781376299813101108494775768730191025070304399692970045558155000273544883926533368565268896734697181556426875482709439605478819057031817000242271624247289453294251338278533268023846756433043704302739763935883554955866567855550444111416190661767704317141954996802298116330757157489191131324624387124864668446818576323709788481264068984129325464110042645235124319866632836106406663235313720166410963892482344495124242009958870725073084544368895990147392148134362144419042860481267915034408571411725175217512772076962704066199871839559250309425080080677860308239862385709546786865004933086672066474023287018808045011188200489694659841918189566654908222942304086348090423857889215000517135446506127453356113715124014285061463473010773304194953484665456186585754465935167575302455776213961998935356902803128977119146222889614153264366233576074341850714644270726435278090957685748294629429624987374471172999407343634448015835677267708896310310773942529810628294640013240031587183314670846466921923810067417393117296250635759825572734556144164767799794297318529028887928243450703508834772437191373631468666723726838851601145000724529750022484139429644567820904476673502380190288940285110203848461471303327127947079413641731732354707262857707322627423128880924408133315393032357003873076331882220124164830745124492294175340490138976181806229555849692692166811871291094463028445281050065876509627708193379325637434254589120413255237913762422954642852049595062060833763502248043271683126090271818899399135379037793028013716004848145437868763035652702634515357833454770473555638539507193004057535544594055235609212763966307040728551315008423833428305017757225683291970409111320697345061896381719015926303614026708762349713603361297629841143875021077673322552942948718412808773857942391706782234244887705415131507286638525271136852300784599271406058502234231555001129311027082714275750916372882404501105265845492800610189930939547363407493798281346710999270829919784359881981684401995608372272555069245705145577640556593664863384847192262412311578616847022174969879725703573464100639288384222411529305243300377430240870807092112443107532922599336142083250724666770261811989561479917615113360305711287888812147685363339672150393599770213988985502428659750153857831976743699461446044708283509422280551419173853532781229343298691770268036354184759014877222627279893444537064409188671169541914112781087936308652590445224824996606998209978398870392460423613274076156272380319846089681901998082572174267662037759078622329618122896742869105297108316592213956677472015389129411124449096988606354224039801165471765407384444797751716730200795647554728381973305180352104800002056378610167973142049069667319860256427419756950165615774527393509852353188099478130188579217678179315734150592117748526146454672385204233596140542313240852869397451341897806457383443922417413105987965517283001011868266752081187766313992507089334354232946947808340651710974084128874038082815979444324136921695295592239877433458706449492826457294477587562023544409182127247081045244519791627898118489243688961088304964930428405824288139288449002991027021044546721774903443658123034404515276107531641918347081024403533313111247343636865774730328591988494302625894051788258856195524201876644696545229627655257898787788085337205331851297597109704150979539590126766265987345426158583671689451292567605723555317976336986810771282149025581612664028532715413474575227108250147993789639534754581411552792010321032565508891242214665246621583687462860748818273035165404686050203875097503464261633770804553954388824331462568185979102575401235026530118091773215658648784458132345174087532945194490033045976074347953837066029376067807888700248805949916165413162787781989404669081762775513949849138639480412769050685086517216486557743343647688957310451882777486744653085713364281020288623922833994797308725204789303416538076376212146371579054315973517152642109094502259779907190121545987417753403337352231017810303604508689220933070426462086404360003254902124984976549683702316179863983192476299813076179692418495196381608548249270561001242990131531779644701515539331055259935318962443849487987142016080245768455522054732106236231493984823286468812524366201619554621222134658872012148598652322865764297899903599927667153902369640701354430771109173001881863382635301061863223919212447662549736482730132560039831294216422580543358974971958577208942046703772016261833197775271079014778766209984601732093925226681819168472629203449673523464466134314549712888955619819305035712833151234846269185165574117939383173388301342684704514795736309343833353793492674508059058939698642796532921028894053187338017850780503727967805989458999057945165285923338779467205907784033790098449028230292424451779922528479644921828350266324099891579799823948492455270165932457609142607619351867352274856006910816458988003912184479744630576142337065158534713398566901932492010384731941615676746740387788583216676917889493298068039249578878640116780952638828455215294767553546313204245926125769765357661487785382086357551545274667986906616673358379595547330700666102995195710133711807058073125148227208499527131982295936326374266562300167854988013029420734661977717416528522658500173413453672249869834834427335331359786230044017341828316227344058575898126663744483695890629953229167281389296308465982664730181942380482519382372426599292941507757918720535819147699826020392841992274481576473701198533153395926072186801124719845178243847385221913289535314017231376641325752961626281034273878946141742464005941679998261457767235231810220191308491600698260739966310254607009694648822072744110949214476568160035844159219049453415018801501995393773757303196317078504256471047820624323016504338704580650543625253765328410970702215179072645127843752817824469912509174400810983575363610185523566587028202667692621806600636625190438295367600388561324720488204587506496138324759876260355806575529768825274791719037573862512664340821818414645284980025256190711961614282973597658383712011470376400381437038969729903506567027247129722776853204522371798631410936561854776615499472528761846642030681459108626652825351956050729736156337393098904280464041179039818186891489592687509925454376225120792060842792929855490897593650360319007902412194128069258582790502525110736588006220734415966208373686311756386491065866554010557805719179251147446544558284700812413615627180569611018542949210791101432965398839204125314239746928192960705258137896928996762970984916907445320752505132015300186289621995402004243695616467967823150328513259070054842847551896044762390773696654458805410664628979317411855532189664413566932927269702250299799798215479944926208827578319981814606839057808087441003864368637490736899472196491188077049475002054296671574646195522288254712437122041360817954964195146014276033391508427924114506586023339734681329752025485433277989069286116777193700587432700809260674647127901188276891904085537837786544983285016672405750744982296011091555129432787253692375618444604079200246295132550840844188521189822837809995694200393292869577466273101746400251386787748237315309290878783901555815835100473652868332456985413892474458253194945474751570179986895636531688901868572065605718770492578225082663683293517488642440085613239001934503043398980873223093599782705402405629377978427643990927594771206518640013866777812661627036753370406809854595342804536137850701919918085661071386349349553155098787076339560605163285808381634260862810791157012971909101482769387660766645257028224446335134058674525562370818548048423434049923436552679288888097481680464109422406786335664393564412399724274775026590318293192427260268167687860678219990108559097147156735054082784697139851248443666663256353818303995140032397437940348099999431029604121827822370461959309109437281749703895098306491462676280010930614643950395709175519084450259133574721035642400544849174364095410782362208710772037963734321154868107182112662566518073556217953439862154862647135031150233079308051572747641753790718829173726853962927723739318747600342527374348114849895525932064495012962022117354243040331458690184796268214173329493934168715134808514635547102211077111841745625134562040214268278635562820772070148621520531518345054139127431615434939467919069240276418839259218750224383975699719784802270074236440444706868102176428123664803874609406356206623046604594268018151580179405232488832865828875092900170657745312788795051928293114560090530765194145667718470195900145936280711671824546342018449280025292114113656393322527246805320912934024141312900532897006045374141609385028294213076480171651429399776595821540406220679874732841029366199452352088257504542029829476168998755928594114337941553562700667229771819530801201312051213886861892106983123488763897881361295872482784588774555335823796188380211056720217460523353616583397081355967439639453554400604782677104990416809230464636004476628519007931555143944745705447491068365005718917994676027243269965638378233603201810970781458449284570050132340365283713123014436551500685433402528060078246556628492181044721314804365088516055693611384950290469450577708736911569545493227920304228161629849965564771967114307000542422245802382640249245990875317813100291480329651860979898070299352200250570574384937823426036569091688135276288384901083798178441441073016634347782614322129868652902441736253331788695741405242662260293867783116229122178574930469980859242509827933847525128981286355125487343150394449351894944858223850011171614611911832793544616981407377980355325872038206560338680933853749252139899994414192089640202035886230824260093555348852505065464188948455117029300157306110862139931883784469127872002698089296224893408939112918778393892495079973213642386192791939959276851193738746606741604106397365866647857913917341939608078209356256889243974381049195909883578577668039932918903898564335345132217832766553957150599483104345179276735147020082948076896023955743334078499835857428140371641854388404434878806481020846638098202927624909909630798545831795161970946773293117048870069687508972888351267734108515838188600780299983392485999254223373187861652621154998975975300293866051066301008937433205244060158269125602572244594650280609605427695007746943663635921135770669164759365180836019499356522319452155517463297966048878702312877995541556613677760124807561205840017965876905120336703026535949940741819883247219382603105735105748808086234465521638836446148303339698252191076033025277063923343394910210278234516323421039860257784086666000762650718945793838003562250943021426674819393100855581694163391253056414625527338304563429035910430533005532639963875154961149197069219978310779853490018494493247741847013465716400633346260227537307400178266753682939385380923888078916191316894947941801427815763508793665807229596427098335395515943756855749897845377354851900345872552871267030972560706096751122004175887945924864744267220534438273781111668562609673714599210259969158405536886934283167453254533119136330433444894894584758985839083295075647005375291210142807638214958144980260641227552547717796997120410071179399691307331820445672453431667913125230292278767379125317450142005489223583682389533920754261409112886208933289175045778027626807555202829999248903367920916739741551016931188985599403399293533455463433718575207089809153775279681524761034417721947775639689581750307096817906965535957788375726140588024586363328563445372979154060572736958464254759992480600577967558327067111175090159306317707410293497786148269674969840052965528521372533945741323395283723885517443438477403228562830890833840649721508316015851530889805950442551820490177698714494686012773546784537930913472603308138209766789135435258007736251989995617807556651045004160136289535250087182169560104257377587710593587517243972823259560814778417569471548842022678536600652217080779409887404852374800362168186506221443743869962107297522051706154109965541264330872513162937682519570072084547414896320644778138289324299151302212193632393452661433597474889385125561828856868371089445403726160664569232903378303490868846945609667477867748300032087409117769041642572554609464551781181813127974860363845086218473176620093168066148591800029347798610099962192663311768518893589659972630579899523786678892776713943808775472842037959538427723261914723338260507511786131271208106866752846241398903422917616044300943124622043541154771414040487863394826435964608099038432842019599702331418918454280037141754884412178540774194886093669734819789056325033794861933315689710095175762395516460301119024934651655890472616591202216493236389076649568619954425321753086804681971369963233974686857045750695853270847652778615514816506039615015107900552380244297274564202829015274767763122396667280062188435666769250859914615435145184254274309177501582400131987858172221116598347142391008708962432577432979019623751557866992803718480330366220084678917832717802303625748399038892123551429837257348375512952176785952212942912827732072397707259517087393842138325318457114034759005717796716387549841104458737940217645872517282220901081838053758803728798206918099566921185246920617144760185502180600215357804800677138547838471064477041258601578745837710236861933119402995129010081240584297205185308070769933879686193458377211743147783526145730499404951914774874646732637480049090564744042605077951439247799447797686188463735781452537775026922095011367636141074851162000749156593269798974476759149302852377823287970013248965201118923772052228972154256645086486227999313799529022614698758497756060715853409460976001297133969436889872188576960341851114921185987446721966685842112960518702717859883764966622150924994672556097501597624295768759664851581880970143868684556191205866460058898723653018707701555503567262302368952633612533327169844546703879443675470358099460572382041640195450447907866678428957474212890535361606239885414891925795565319465471884082822100947912807970947525928553543894750961160070169869618411529272197293174657806637430103850748903572237171522291484522161972449786782157775320247186422622453848914267535914101860058824829685608731587633412808488668386099883943578607250346326782420848914849696696360683950852227493949148251493764014926790709823561406977877113212485867273512516577811257626581670867910209271604465620251064683768153596588206308633590918483657723093385296121413566270796324811673102577941951535981818168255341427658370403269278732867186251123995632922473277763791346794166756166657069643849627095746936280174410336445715553536235885328943051329704671903785489324907191710964367280623948554388531183919205696165104006684958589978728561217562228471434487380591611338724836423081799855818694609810710493374104008463865445031914070053972223585586650760746503947934950397732521761500850180117838800558896675823804583552630993130521664009520124122633159504351664156674614037195753119610536275474075440875021201812191242130095335974965045049530247695844804593040993095682418411350741019419690822452131245790296090053889811096465463831478101956419941440724331444798977666589656862589498534437562521384669653210176640094761135112880433558511554701365186055891443399864043436454367234211282954662901317765301101121399357093483147744470593287306100665968365966364000280368671305431230699349156189639108594179868471222059974311942486653866280195199140013362124670261585091405620366654468951930881840108465691025709807458499936972108472750857907426140805202763671931890639535967356152788265964187364626447243559492247326407364727153664598768519977576963227830531510058892507221797463172924312433479173946472948476087503716286674035202990864076740745374399146596710772451373206182651240690806381070123914131015532824448570436535495387388075893212858453531832047269276918303998361752133560477289343607351902209934930572680995168828994046057974414396970251292585773643241572373349502557466655165579438031995032875592985396563643882377745003234284678761611904994355957285099728273457361036247713660714101001202234545316677488410716540425707868522477510648898783381751177476277082089232470634666923729069462651119440796237405853555132566373434405509509305918153540173617007080663450600228702246897977179198528156197393534398915045143502610714360118699980976716583566580114013969784816644852580316320585993883404640193850041151331163735920973111172590749578388392124205706630135992820100378916049821009758112350387050128856570620662745111589553966899948267046885741188115961609642101561337481628619707979897603815610484009213720736026292538965974617434544143365416915303048294717981528807666544826711022129907348159907489712173205117185982218221426295215156526481578528078018379473719218632188589047651419195167567393752632224288604417242452865537288456509436851239313992281472409932954277300672247247096907944815919147409531810785308307949003485887565883548246679555545605606171518431214904145889604596740593699228918394670019891658369710796079299461085205875373829635027633364905589615171574139931212586885776222946058914967523566965069574962456422075234040774098508988961953526068772978785676170424398600303991657611602206643990500480123353838602191632049397523442960663384020190572198349407531980058461290062083711858551062890717175157009627340242644089558857642340659657492649672663132581507356418765408131684663634977303008533868863950338662232089246133852623327850350083458730851302965549710498561199266808842476275776938908261075160141895768810826677798537391163446900027527894509223866401386728592151983851360300350214522774760927180125949140153511015166998509451050414512413962002125788842260634329053147512238595266396674356931605704015872695586062736383327252631913249164064773156204576567344262160663119201655793543184629011141285275347368626334938758601599292844253373394449894582671633995234613759794633372385655142260861916914970299931808037341740804466744469855614324258781895537805878415634329324475371407139599886474072329710534002646233980300170763649818993795001367482894883811510978077318907280348501080502145321013487117584487584413978775609726536595729834854272936732865127820052056016764861162058226265316865722958498674271066773968058745460644789711156348227099925624584136969729247145667261539776261626976762001553503333729914848533133202915248182469032965663006938281039692455534388704035993731516961143974041114406217374538299221261517144872839828275325605393841580810641703623640693595423556664447475852919133501385557850305210854644476975025460203233325281304048879631969299723691480239376749448779202053514529591194715810706189210540933390388442962807008605407665178963164310837521603675457649422624930448808850251451494748072905405663105161935801867936217711584825068343780507996031376140750125193579856924634107277097140214826202390670297576837856613411872585252340236768922975678865670609864127868153232482993873643803774755459536619227716842805463434648485250138308045099995945485889141601772577399805608561761723467972528502755338854355578140314510707150124176288208713537461442380993246639908269119415971037997169159709752814142869386110783463841536967091754124719485796165731639089054588041011711306719417354752685191056263527017307274772083777527163580787742534818665999878063974634266823368095587227432658874801310936856073577078711544441906558057928839306781773587749739362584596170662505454630069802574299756736339345536555391754129090937718447964389725260880607410869083834128563749840652053039603695125686039695615485205595216327800057769380057345218056079550591006161335472891559356857167950940992755161986274650716094478391328767829630213422797247898343844944396408913137819451362612333044531510714577382476621339945664553949075504445996477487012228149977083450884996152741844582994039229079159507359860113793802345544405212813706396533202905764424911104436857465453696270233537570691642670886529308274671523106757775702727340279024416123160153084458823259119414582429142660948670748844987208331595580213599831744813080705469478171726675445212901099589380502668255347725169789538699410786216098742828137615278940860167496793362064329847181584890523599384720646017449775920092432983702323795321262496206146462214083068888927506523325308346907956419855852469188284734596889570401734164934248944517017663533071669574792812318616180663366676951128595477204322509779440998792772337018167430413068078401633095708346944852277964384416458295352310721253725008313941826818631752909274027600630978819311756504644327236121866653986640586353672391485529092781620668392718824455699283328896878326015338017740118362238860477920812328008244289114106564916444203042236406285689276587512016316470522617809955783728130512767542652396133070551619196608684407019712609676793223885354553108674168742641840537992121502477701436757915304593332055110011036670374772088092341040235061463743223771870255138298804653379303439294359969345492817983444857593848721819600803193525973014591638627287858859609497615019682202002899411947242636824885861656682204899321202796801459022588359624200997216749761160418469713150385131744559296497947445661085701952041675423156544362798946221022874681094480780889169034942305697758842223753715033143971016543593900125750533184152172107731774220107579084834274102909455784544816378442719676547493149282834362505292133118328445172120186513366794786139968346690200125793220114763843643086145926583701077598588705297835674889309124849928790683971968749074121032966180163865332727976254527410591937385465633807066706355933295155874721760339745224875448365571989551594390279519914192951653315108325359196195227789903067673019333868539805529705219531147458864667579506522461873896274985507496363800767146949879214697638376505336088225399070441961664570760922148932310626793267366044361001567225252207583022938015339374827485678540268115653601601065248127081773208241024229605815909791498111015042499947556863611156526414780947563827089598910414176932407031977160984393617059618696837845664806328887761392640802883225486113128104081680009404859542208384811959973545738740031466732086726092864824294843238103099912453517596040704124710717207535607355757270518164710196654132252657203253782639900014260573329466583376017771892432825736627223317973795100840309370358208899292001089591998906853277291693795555576979946750446347997828154391715395131721737206652884093842335404375108281951337110615545650122481737450759165342234249994931555756576853396784812596901158517334126926773050741316787800420756293753087646610721679764371067731204273058006384558193061031225252910773217034422114207846110018604244383261290098604189156720907251900177376163248054954825118977811043957446179889493555499911616124537171068801758265535811274385878801910299899129443643259325027357074422486746446941313762339253562031264713358217585716874260014401434946493439270166977812515031636508996895909313396250427867116405253969707621876681677536404949334641525776027807667320534028057003057522018312379724987772787256456139681217632544891887802102325562582504028326707303161797949424764369143389919322093408219311340000872626160846420061298519993156618116109030581952205872264594512563729050928169727356737916059527809873350674211895492056341440101135292032827784366841917781884968986625362658820772333286073846657669772014081386575224132541761500315813022698691346871758775984996052619584516185406454525613520844910735639840593366940039591819084820212345315717446622320187270193013301769224223480517587416403059834642830915708885120297755903734547970789197194734103631259490649093301146166030793082079955483667198019130799232980799801282449053846673598891576301052104898235357268770459790156988337827596453363574769634833678117414863691074656451054618852392218513780656918129193942857181565608560041429376444333062488433126580761373705483507671733391363923841713667333229526559276282704002094966202383402092664489459001399704346794680661501668466513090546372644352440761920768697503333345966739862947517575774797202654555958560119525969655919363755723259128739348628214063738992495318918122477861902020129634908366410623194142806503596648126675846520879716142003110836716966199337478506034805144766015612708898556348923110880775771180935991482866635797524008001419339628438569076556332493059894357431241892202820421853402548489184354287796180089391521889318677635309595785407991266452405765658221932294170400848411919213474048013699847294098111043698367080520750922103063297364430580560695353661722366369705575598044214665061227390311505205859330153334154247883970084678625258696160984611152701062249323558553492087452911547570953910106219899787808132921103113419184093535567592406496620583619828868343866955220217585926411687540790649063622450071519810012232074349800508486099602107070098418251888645442447915339960584475884647252036524672642933610316769922206823700174028946204412479949269782728727554585229300698301972357856603151255154710003613832516113654063677435969821985672023378368178106409206610144376986756574916178204351888207432916548502408459647171919339329439603086017374701506664272006743509295416488872832439487546642610877302334019358751497689236634824605064736628738767913454987198435386780178226916793722397895062504761977790814052690536512973798798734356302147082306212010183808333190207815979842193973561012341989961397024095473089859465000055941259992913698829312822089287036193933161141498268169651335648422549299266141051020276437810065263220006321831511004669293587926741847029687807465740264491183858632572171988497436832871235320809680430962918351664136124045504075305227904897352943029207215040213903997631595520239097135235837828562325373807039759765279852705859288547512209193397310435836912668655165635052844937627413477827006932169493214595002430867410475952290759837556566197869353413173093968981218702990022600242495606245772924356837943961652286171925920522180006693869649908033872735072292547519828710272797835213882208289478809326160200689178229099984158205108933925730493434243379162401174286456298465862580351011654640878633681212453618004745605960284442279788237588529365965876210250606252115021720291924386244878274046256780574234946784747244390862449700989349236124516709145470068302716796211039905570734734581754661143796603425358514764803715191235766759183072950955434487664611226785971682698340477871626367977322678177876830652375773847924932491035849773822371751964408257966268045476869762401461988838869204546616995485804756725088585238541665411842522428648843176258332014692024672273428024403883452830885255887600746038241181176478385694512937380493805769551063968469845457716382938378103760604443037384355180376859585720767121263097706453461980671159156410389695713165512390835078681815648730897563299238775599523781801296203885531093068219959540472146881482739879498012618425738979299154207793891302996580990133729308606534886257052485763834952436694977673437938473952624702303144421294680180379406638635684112280976589219033086618191594797582549734905671651958592794023948421580197831554499304490101736615640086281722413923644699913686144811168986102539263748111083350182283487730563019305336615446980785230960627988909758495646661077697249342082412068217536875204564154349697805744459689062008729529438442349674218291739359020267201241264990780785222987312006418958702031762852828068238437802912573599078871021180284971950570644590633487363988489619576301486529754951727530884579156422543424198664083593193623101712009261105387814456900753536601968477990065323016018558808155528680589458031113126524095060142129958559736159797012639928729351751846441632061521166911878762612582155822354841542559866669171741709824831665416949850509188724336937323254625400104967688432164385598102190732219273105650833964369638807600944488454960036835327713083771299133594333542794394472823560797756931886445982750566748920213036711476076197527358830391264032085855280849342845181342089860993024649925392023998222508413058240576829785044792512348241540940578709774620562858611989118172217778545547152969975049630281928641474429262814824484974414874343965886432518008984832247560905767062063173949559310212818187438573809088120252508411453855383867350464243413400717664325073174739325649734903861532203891781347200538641020605329201937165147022258005708032431286778541305027433750592176918283986249331384766739366748786406949689195678708936977606733193190767240448395783799251848954115655648625733771532577058847893653843803142473058160829034961292296126472446373208357405431199305471983134822985629788019069801760237000479184793338413210389371078167741407323728025229757728372777336214458890241315091239052685650075476327209907413684732128543023978913270980755258351569208707974544354983632636715818961739818566380398949923206197437513308135777512497821790498080503278815686431071311546652812230851103609711962804312456681558337940187684992640171684146318856251977686316943617799809087721112254880561227612292612831435751669695422125990480767367221526467894882725958707214057908271431755752888318564005413552826741545087075604143731947911938134066609123664569370176280429789804543949520196235005553913061910751472027719746255947527210239619131924548901060774327864888156385842023538847657772598413327579724701972945171158195321528386166587857044930221733874441578489058871510324198235453577502896933423872338446514476017270524493344189761538548555228573943046464228132959549959511942357348425362352425153162992337872413951316500151054922313835071888891964511821433287073740212033935686387729540220523518323351958331458400423936545664343841982448281994915134145275096053019496391792250592321808551326906853088188097277426116283382242435798500690950509218537504537738249747651798137348812030394840472374030506029853870036795880958934256597579720530386968589453752400549996888516289123498887147633369714600226274328730577618618413921508088216846267107293035469075380973934227195624968481323937807945934058236479245374849244614706910636049562199226497033758588774671920633431027870896595362466850998862937265833902012934282253080183119212835500432255250623924594935847788104941952208142544775685335273541798778651881647278474221467773573522486400816926637686765353690582117320039656404887230805054861795915664724118446692460649781776971744739871552442499030188413861283422515869729296579381419254051981554222071074692646572953939474630978959745497950135380966449342750915997285361337982744770922889042674122909937622232162066172219525047105685870927905021467016066695752010885219066917285200344235400955666489396665720784648994015379323017134115885490289316418288240378854086426620378869357233742291590701148707736873479143418626089653393447680085008130658669495867178474565695222702316377787905870382258711814709576318684418239011860023354868297326597810294373572331398854122857498625812728616412185664982903467671378996780428415526699316385642571642113173159258403471100065833009848944121546008815908813209268637371725454612759394386902786961313801457029582487944851007006931771002465899875485070962191754519112052840132006041525781187893968838920737987026675267695106288491966885512756161194402805799166477057952497015096171127591466416366756053985639723683626863324104152779490767559654481011479673839517675819113139352394095197696273061934533339030847077500636030233772968527878031667679424988347661739416968284758561690716177418675098560550082856114329239047409527791063477743064954829857839818640704006097498357352644285660505375401734261543643967976153221275447135951776152306674211372208204793979139777476840082406853570807160151089614294479443826500185715320570801448990244950469388904939713835382641656849169750693495879946178980205993853918705409257633408558718094007604716062912936939041227773789843858373242972885557946045957224068058199334825209419128256741495700281856572644122614986049142137923902080276443219691438401687536112019123552303831866612713319101205031301876421052526201546384582380929551740954745200408185497669364774774089561082072185185224111655432683292885359117172437276184766694097531142359704199410685897792179212399337078691484562759958370935285265285672416250093020449590782167284960322725740959942691489756086749310317915997642543701145158568378320406926987910929414655579175856041581806009347888825374020956756714474934195397500998817167763128782434271122452075140067004808410654642458974055647934515496900617043890552274727363395542089460284143130227659163407758874902754839442328868551230619817313894879420824118522704638494801008264243099055076425199280163919116963878155646620925613455131631835693058376137724363169598870157604511271329045401493497685120458967342709505276025559732356387113182471915075093225649183821598940353375686083405458832717026380314242805549128528500191204324613594360484775052042260499056899877918077274151945387767087601640102485628633269641390894762116055811268911510023294035175466773799024155294402667211948012728712663688737266376258971841862213293088632712896084348301736731943931584237254653646094818601930429529301420387133355193650276698460477137994570480723205074215231674647970511580412309804716622260300902013172768872661261554190901319734453312435234893525816662213832766436363342016951608088200135844939130231666047875621016434880971477707301798648149371995399730144112125327353591961279604929494852393576232111796066546387991792405100916810404769138566071924718657799379917317902209541929208886047225580741977390448832146548112737125262387720464075762588589578590379041375289163487106643525589347243565345370449048609912120349027907070713496342491233543304717954414728060149425449418578374525521323400046524395367905794630822341630559404071922837054896929249714022167227993689909310027056285508648470474407242451480029164166404993957278739770490359616182254871013194391267002452252254173757638649170258428346932896711435557732500935708688763743850711300458563678056876004251853444635231603548882291275750836066460996549594082669573378318068795568553518890835079295749193933729185202220161902610140341441984355220388167410816000905377388399511857736813605544966593627791935043788194511997983287178289133032321770652716752631471926033345477556217713278942951096433778556782454823864505627335924362825776242930922262270108706699963172710087244692022663774406582003939399645385686283657763948286060687927799457276737595168491727244096626479764522790038608176728972808765056857559360049737835677383821026677637008475880393848785958989463267047148900513289049150960760431245199918693559439971978409775250537807308418165723888621843776990900014640298497842821077389842835394496114746076384019911607557547547430916455605238915534717698078628971166157506732568192680547580036454265465232801348925689958670152398073156770470065577794937093489343975974031440105333880291063266724289775494785383945662046383781944395019912577476002463386558657165116851314047501992320173397819429151574746430367745232297445161133755767383821485970301166128543028524570384029026410998363449106250319849697607923680244086111862486773772517791307390624033808379724907539301588203251492848530899521569724600190776657276487552933448590679495623577726112091852104895255443134270571917246521702746177307950973914002214887263222850847106073100298864798386858587225306457422521744250746878849215249471406501945546075746550818370985095531691168718805691215925290125613228831966034113458116126466631229140400155421785498710776386694951061013595319372125764566074502640834307114329440224240398226980211227319818292848315000883570923837242989971877086719075973084008618448979055322079652804855409096275915272908285901650667919831820417506712080989868618786101154616489079387264985632605780098402830403715418270899849260431192798446838493326528072020768343626102722821776095675163889465655191402638203126064044706949358831062681604546300421241371728315141831689394436116257048654178406921602976523368974257015901565930720374923321569756102150351359333152378822357988973141401818210881790640623293945473584628218025116437239739198452284015363533994835612746154057151743090727331505335342655312034588439165725088172050206877807195555231909973728053257740983442445026646725792973595830472351259798825474328276109728168566740716093748022264546669664309818792591319116069499288062526995946978996607587287896250650890797583924004512239002989305006013127511413191726829506174001343265376702527645223559179942910317843303194459754092377340666059611188312631860094882032715049450173191928799968692074175332798174801004894741901927594802759330115123285530941146724184402106105181850371745958361167602724916103621154307251182562163874445764796812443889964015020560310916273926490538636855952153969550685062522131202625253016156000075795654961096529251111037545420486204068175790954107960701207849741645071551625579748834979568649252814249357668589742767086074915623689935245813358821289027279433852616341777353612609537223685258175658761346017088679045389998674330870480551259599544847814728345255461618988564995867450330972820415245584582464504570459319404347189416770779611092525339652901149913948425579242260496101332478061494412148030164317737226519468814928226807758164182161260447384916143815009214810011410020456684208841695061671738597323514918280279770999410948826217484882862546920366356427365900717852989202774525438846207322427246434394042801115474770287596125624926150633205232757220264490212052624008738209298252178517091663044080269067285963779298951672844671202243157436877201126683738766506712846782574270519898268306490252036597468850143382072909744211162038424739839111765558268949583595868707612643893020437774196385104956531657497475789290703110421354198009121147382898391140390976732762608385574975641625717539326166289407867777130682806133202602780222691699066745502416892046727431081128031564954296372092824570204588539188884006395102949687451661953973794415592344446526492282709943729118670186015905539174771547950335290656029236346211977776250714379555149593902905787592925249499956166713995202047503243585733277888475669758988430662028412825590124793306703834475114723992460863085808841968590364434507223307275751712553744187393372190923657458801757559727451431102899883083140360914315355087126524115009052509795604913815398058248129304712673869575162556742022117068251937554559586391526041068951018391307681872044554742345718040464287513974756583514054677368918691038327866243287415538626716442728523685410984304974769869604414893778312683123634383153166154221536957481094631333976790954131634542689690234548264023107974033363291955306888191612334080243346125913383669823761340068233956645112523589938485806745479304172444304570713062137111424463624864270003352212412723986586932037993149584940564274215981690859412790098077027956991554739809262529066244673133395603208804874054193835146659719476263510274164933602321710866888167170086922312699177124842840864947812346572921262019027823632530300676374321499110134474102740919283536301987534734626101378849488183489657625279343510819438009724682470827317288395104809801613522608999225818496761260143266350286569419941749010054617917074033222105087734362480375001794859094758832233856112341699840776550996884274686445186480134539641530457427906847761942912891570749764238584130026881841827923599337889084261865625902004291744195823016795858057989149687668202516394664274458491794910562576607073417884004012750193032578444459337552581413937292398940687544430906841716201948712353291464657469534653391972959152771779644923002374656475103983247836174217051258219933143976000533185357587313597415492754712388846238031054474634853844989509844102804335839314762325745120406327940760915595105489663657312742644727349671218429182408698510963102080797538128552482489874687321558097027078382612401823395008279272354884866651423572819710785291028081423390995195042444078560282732895620380223913523249325892277166090400431373710194543077736258375978726829233583727482044490007965324415850166407048448152231507510419345711002432133540244629326872160862392494897907253047189763028908426296696832379673978754285501658933946484229687473685632085919204068022712185738931417175746374517244768213504832057236757063534771850738775451909265435183428014312893634344373838231598162210276315977044204051434487134628991246430448653314877367443537355391296304049867771899521294774033033957660865279052400864217097571407289215694698667104076042859817987324056390300732867349130888392620461943215333187756150975620315432917161028085936917736131280652759477386515042772653824437505197068639440863163013358743806880344840036139198446251626879384495454489197250712237563636596747926995012626054287300083476647783937440578184743861320465838848284255497040121301811617041329720197652864780455845693572684977530477758845245046102585309924574619071488487637145523917197154656534557935062267527385992257446552005399643570766536870201988521777388784658915505357386645695367722954171225366470431387018494650803516509787015490346913517350010761160082532556001519581090274222086648879613509097778400590063918282578300962433797893814816140311542849716815002937216313768025330734514391435568671958038707712612828563854379963592070105107379977707595640236883131235347561993924864868039662868552220279653925665641233448262046448434229855452683987186620556563629111156288145684239974367552576280572746426440651544230884571882840313380602058783999605213352967283977767272757992918970454861165532307811058077186127973984890486424161333285907094081096430274129912088287511649991331376852623462736719212135020957291969017034247117789621431330524987212750716918848281680244282001775550845949481649850307111790558763357045174927248830790025773774611949405374286885254290242751886689381590316457931604362775157303598115798758127062676112012760423550721982919027106587743176911392121511411641821603266205682455114605497680528209240270583619822659125404809929869498593826146139388822399667798555626278316160999047262975005800762205629143557467229756358158135760751146925561126504465572572902442570451505771786550537294199091426439133053472890464449277445939809845239068434232668531031862804459898042485470652748699305350945004556755592272196453224184526041590085566648667475857333076876269690292668565914248120121677547822085057547418833580177156085262721771940686293950504076836123842168015904424286049648549280161745203549138914382399943058290346932924742867078730973083696774316701129773759439320949761416132978634536652767600516929616442468937368777520413785062138349992032043112426991426383198525469468071945573849692326184567911331299391162920986920061025576827518124999578500952929584067841946409284724666607191158510990898932612656575238905942842061729016210994980479997116478449452664673366380045841201329992815844220012015313033779828633659784316709903935810584461250242256753564798596470142373690389370357745336566205947951470099606819135884820428892879055325936850995821714363089195190421205653059381712147743563944222644537740731404647591556412762451626514041956799976601831841599469006650105567439424195368795657073943157748683021636171324086885955440468848384479970024229834932513792693733026507392151489777796092201203778097509982021615751449008557752168761233008236716507431371374299745012197124399545675838494453018662234122596206341189872376768672122324574737799931023525943559382083094422894716010794470182352305434817963303312559164256011270950253377705836799799672630008988165422818595769738172278970710881716771383097603689059288566127076532939463855095235039939446182369144486006674982110219976127839510240091458138152684638981569429746055711689161762512282927540282554087698786266734034732758422339572250743967174593315271838711405316451419554870168305615363314794509050142122159355000606857793104449481834775317440462522236363923166734458651442534031224890300243795458136521892411295434782574879066720520104857701713553442141006823420712462744803961739382079849960838781606362130858376061434944430490092263316824770668227487391587525270029821991705059374666251375634442188064010400240856245730543818269252902642115325577114203759864420636694369896875269781570247286190491223111838638225242346464602896352614609226500363117399649184725744296865338179187378595158723829085672704715198619569532195178404856060540899977372619229285890239233811960187651853319972514567333968256355421249600754903019093032947264648845961946891630031276553950266868397084127927973952230843813160608573215433201851205499875844789383815870088943487184659752584086793046430188802258502475859943830112476229670363196939279778503833212557822602463106128668883847363444613700987474802606880145185661032884501274567763210809931142787508737182087139951371685051615051301995723029208602088067278617249397567188072768865525520975839332482289851480749833236776987869336153211211084223348013727302394471517917051125539056828618916465478370382281281808185539921277097879326963477912259803242194209902353643438300925936081572863542439161716313348250925226069124204005784122896353563563281207642559627331173120476368308050308418698385804030113027803969244768565986738007803599244250120254669088988710879114097519024622533330475199623212513415153103775581110001989639808426269167448535978654318396295731208929882203944255923640967869340533734071254177677666522038223324819492335304853064738939424171894964056816857888874865528031283804298664900162143590849786096127159202400286457288936693262963772504833559362015349887955699506719011277322310296491942804702726830360648129541315220191215296145595671814060623826180854238820511872040543947936934650286076832176047071775951735940491448694078105618418440396272103628806383187305512263104694594398004184515031350019142731113408889234705293642226045647846913745491462221058527481571769353419263967073188138788975075542953482109927400027337014353162684317481228841668496197759030706074387819976520495680728382908734306812726267493748937166382536043067750605971018823297633809776960429823163695034897461703047231695812651753107422804652772638454005664238491817446744601900052183845485543071939263931894968251086702843776288769935224267895570168270020513884219127983696005781867902669446004738817224629393519800337551987132660692978389142558910804878045587922724571700522521394924749305940785948409224899174738333868669381678016189007454518854614393411839338936386564495960716568291534376928032034358998033482830724897818879806136946180330632019031874419104887682719213204419842422351429431861245207148743757077625215896388273257384128642572349355375414922313375896746062062944551966015077644443102572204867838074791792154673286616983307937583720324979182425961300633511465528267942379926731664046441816951672732559815897648853152052957835266912199170284419885159591302059391141371488119896759255778570540712827038090059582336813390371797489088872988903442349083956091378350054453455348176097585386167600339718701407145642439446831802185300851055472089393445233153691136093971741766229478058644158184859889046825316083890865578035410680592267979981199739386311468762039305590333392812963441232856427973950982352925598991063891405819464391757363508325921527333943595588745743552878467968027979165368842905238677394433053193950363115172153449306049473337523127894595765272608711979448340065280552480424115889390575744966686223337369225853239367463599914899870402916329210473066525403969245697469614461556695588493980960658991311743011227586320682900601459273450226984288911776570476259453817836059387060515218590923881197759794341287642410184655253917856741107553302650615703244909178687725755982747656971860607733977996322855289324591098594516564996516649312108287231855791397538852437324744838400147264309012504094017239697966077707710293849438696432518137683915145355377810617563630180758346846202230360417000216444593572644850871874670788034271028216846688844338177903337455472132047559052785217282276738942972051977551483192408406301488335128059354166376657528764392539092526360653978522311454104905418239071431787581167527008499579167789850906311541614253731792499147678376766274519449929093372180412023856086769146027337090740325323641384908737637551917043146333887762167636951951607641701690981492734260533994982196142227763343468626944593012621886888184801802447837170439220329932353863410022690902566940813207049136118926380408831971697547204883073246883909703820625560977301930733025991683008256185038050051848052174015823731493837644389870633457799663836111914717988885113560399868623614555989686357937772956763031199577076061466880976987702638348499694749298378890863884761776187959530113385263419644165342765478960303866407053118485428841414938326144892175581403208716826924322633324317741271817235409706218105153162959006760812965533685820904638473216474048623904900304508773671191600615081605259080026411070163935013861515456224317508598720737380417613161469287544236209118151023746643017410475237363333894190815634618724831372386179606898718981321077996866443959803109368537326702452943783450455334849433971629162860823973056683681542821435853351934473479073884122731617715536036673679549030224867966449800970320125442843082180529608719431330179476177916984358904754579626940265762645542185631619677745729651733159752144507446534294243687140058985989305778239150455534505776993484954140689151390614076512795730975364434870392047453269781408277138209041402775284661867974569637203674134003261721012490109112661320470776838967575471960219255053807905124423246563720639028592328079333814591768153327816597326178378514688884266783813797911826434674748006480166032974782591349333662006970686570488017659556457459834229424225865910278639847482419925667134726106518321723951432903822368311639537962093427790129255365237714553787077381608011004748465594577470712105147455619588947050455668905150420594939187198421867651029311053263387128511418603683370756670499251041666882064131409203172754846716494902928591656959459924492117609300586798136017345425208810787308057468872456181052923182222765948474244708636079697031212753301137918297816954490823397903587767179575265294902490756587923080097067464214768762129691483093349276021945717840347363059113350868525103851342802943243273394877345926875435251950476804908746676489364433874670920593488752239629760454168283578394260270029171506484207115109653573368622506733125674439441709170888235379786519839286148463146389058488502094695107821011151414706379925048736978697861163307185644555526199397634270981206609096565105611086594741963773033502448605390295471589284929568493322485628630197959291163894994080376552113458092736342151385144787549274249595707501715578967635323811966580646090675907824795559244403659646460279426071113769960195404932488713160688740525229583515581719972495294147899542378570001285155842628490698645744527092842057287695465501595139530849772131394987134804197003984622967130392234695057525556125287205744523320470695017133508036949385090628425256333566491620949727984566353213050543664058960073410622869304738872923596932838214407238231371306440323091489503301522435771860881894521830360933372826643105445077638158196697842133015884333839583775355754335110647339976672216708483757673663928671973460548981565399990184446480756806051879886270892380004310191432004175061891738557293383976987077289682714162344060653430431829097548121321961157324462770673696143240613798921804384806158256320961808348256654052876627208752837483219830949567177436748967099456505157000536351410441599765661659339395797970808768106813636608936161800438590552781187488527823314108517583708180915878684831432113882563657973409686872165763150636109919271597578918982804416117988080207697202810534973447280903166396319349122720084843360909912238291433822985705390973939214159298627975368455790357056465850739951092367933768734697668143034199363116967563428027874919910497717537746680933049558394100739830071236108963833575233773828585051075534680757023706189294076096796093779260403960031675164975703079452408234462961364179011789266950110102102534468118547489368929285616856193066148761839053279708773553886368929891217979362807209409535042763731159400402364121814862216828134344094778567693375969880593889711026870522074984550004937979769127900935816790691851671919240294352693826536345564655509832772691691298614395074266886302410373127516436383134370628335273740057427912599522534439601872555137734763441086518735227303388302698623845838618989820241158209836550466827237117670852294785794271345678620089372371731219116816559642338937084717632474020348100417705557214412587117103289750574753859245414220643799789241376975763051147509125026802985798108834573750537033477819085522406971936656724882738315281572873744139039484340300625208908103221864785657922800808359309763706908404792594712333083844988010724194423698103075864710466097107445630356468243426666283165851294062249360607119670237560218159409758577396703310583447032889966926531942028020586921066233394670550486794940272964941681897927822297148798023333342846228057479369761706151353475520870771960660281747173319660715503131702675320315126252026829219215085519392652462694236897960657636703740985071286927967050213271978100554749261172942328134386473170822548825625702387529736642855809676006724253668441758402747592465353624945913679457138655777167144277060257840004701568691932699672234923544627238183807722131146286199034682793482325813890668974878020836868220529508367933993166021400643110670430106644255803851360038730989465214378401371809562411455940250207069787440000464609124183234682585018967749854665952916063560209497489214349653294395842255625705507729247307253595057187432789481773626884831020304628914720571356334385328935303111826595963984597210141954337894474612652972912459144554062128555919381418990886565737237827079446637959884354795186512103577182166829619257972666122475060567550484125227590835164217575114607512205688966780840727463096012837250295857505828444651270234985955474987063598030101328656634930776318754456041689923754503868823762113674381152544835586558622646669383735437687040194323925060425541832447713180102229994458465470893588168563605678640658891544600133948980369470186161019996411879477799696543994712697892702536897790112890121260112386943382924299964527737107744247082856929464377893311043763987882536828758527275547677363734098488168855085629656881503303883665462466911700378429856647194075067509202149378178850362788781539807616526656722941408343791023673240726498532528771645335457424500941580839601324782821973751903353443332197688931163249719089849307470041125471973458605918220891897700385095137623859000673370851885877429007427336801752869206304787485737582809235921041760152686895491547271021098460464934860004778077345567345102932652602906137542230331515529042283289970851931005861427618514002564240294940501233905619564301568396036867189576354851499630458217767299381450650065604429068303510897834769164956947503844060683918222601793764694297245895283662495921465093137201005076340976506759609231174951099523525163631699243883717286037340761907089267764502227545171205975614080611457406574361533045876665772001984332043048835497803114605895470881310078740520711450648876842025592991287450571003342047291292705867422999333698930719296987852657722131237867677406280718779379429286895293379330289389118233342435440918464730617072867696808274280701341430432969362990353687355621902410680712466938451455103874188439144467716291562080532570194287919269375077598817629385148111979217615897531768174379059494041076035852278683602485304442110740759792791821840750207829327495994246435269935636199528943196362590092695976805592403168497554621104698208162932590783788123262828676903607938746633712389666799606508688614228785647540291806701539982314752175447067091649574133619993061121970410904635484956199847508602446628670241225623214230332528115925365595562589949527987877245524170180150515261867403145558629182832955149063863419248580001112296761067239907962090944729771419537203111161462027679591089631826192649634776982280496014353714957864776765864903538756780729883393420666389722539829299988070811385388788379888916422378827970044027396645032100938927581121099979983295961494596030820082161124169588393106531187892189262826572075624871848449986828055705296979714108198612274864348411284635656608732157023419942755550954945338338856138156833953069822757961501547315301951169814068448302858181787241355351715980791195109565894676773886260730706145059083644486066958275081171160965760205513247706130718222954389269978598024102750496647689433128000421456642458488730727933646471646157372658656573927800927584247834684787951164837316321225398043041307314938207135364299642549122834450455045446022263601547305483143287613861930175905576550726957561920354974042288559059423967910283556815109112197636553223864551444828432359946024691259051751925375248925333689767363927015196358886837492492342399658529090391675589521960752254870324505904750593725582086062970502021424327480679581697031742651968271399020666004058417475549443793029175137357607445216888036377382358985995569414398798533345035470591590198446751280119436769176722007564735834812630562009049347705360926627226360026818293993204325509467878191768625821148553020843269101130303230747202265295708716728329934340374440152568441002219366555168190093928303620948796136433190717840761563034190359953726259073824175836072751169725850254258845656940536697604257873065443471094412155642565677089178944995712978087481408434763102135497814021733175070154814645360082908337280446384097050557545686898843405893046781677267978588762055435098222439249810660913577327613624436862855483276454117801900394822707301449306844046903726736444178462401530514019623667549665359454620524759620414728386545435037377898043241985759510110662527163962424283308927053701028045577565917705172339630249181600897852104763486083278028475122822976346958334247424684389505684047865134305910238123267059473286120338346327456472334877550846152600149016590608302250945778407259428871692243218378607067240989787030812824494639227145444105417991813170565269591067241367278098237283576622528983583935606763133974643782068250495565722692990866855644639731095278125275403649773965672144896806720686061856590087063201831191462274206424470634434276189153571413372545653177536344160157107871581355291839157939700236079016946033908063448622286032024663185463682281067327976933280701326145856771204668380051585185342873902834198954052117343395752852878964040768830135802510275274202619795400701973667546543956953054810158018055927841719654555419433398933761529024133518001499041241261348455424266019713550566238095120454044364976623407682222226051248285706353032641858479103747033959311212032476736617168793440603495712624317067576577640311385432661429616572509037640806602368930838975047363787594488497865849924648077462054512720319644267115919468920914816436449003797559244607738332623943149495457141883881198487274308136092061762150783168261926376248016149755894276322446399881353106719645785900918679062044100148176713606171042111033458420828211946718074517576665295502498081352639064985824031866898512814129893864677976125459671748220741450973046950443178836830264517956319218075463706217236938612335785752619919369577931619395651643340008195282040241683789532967097719385542370796125481069042972883259051064637635864381895756747923175816576216073973475876108402002421709734690122251131202897986716538803662763702841574281108240364314560436069763951182960610904604122658821260259319543654493539380625903180647146505421326278174594604527581360284409565179248275065614548934295929423530390424681708034717431309401431359942459838561389633132696152032846964516307387733106192296098230674583516744025501186425019691918867367091208732484589893556785040351438772723631139194466472311215487910182796710861078364978818431094787137009181129560126898659423903984036284288468433174576681762446200810200346886219527140894330751219877860471422308576933222144200056304503530294611877001104987236700752039369025151821398103770949925813115385596906330315496146888242602795612017173695742044097971698288587318871231228832248153564980810833580812384601596858498332803088822947923490262854815067085859903222980240443143280542000962865731480840974005767418582517283949766199494193444424010492780352246357181811936963703901152996575388116697560930025205192576859924244584145031456783729792835273934283785439360298709661882289369089165020548870180698529632221675317853001135269406560139161281880550996171536075227508872744696837457945790066759304305831019022680146718477960737351463409758159676623294568467328842188039899891471087563034582644007510233216164113159994453097320933968797287358527602440894085608709123709570007885595691363070216731839387409694760346684328283984737450552343933008491792915667878378648050334123383507816436602144841738515241445348624167051621268378147917475093595320382766957288334728034730471566432278791278296630711599883563700900595225347398178002483850872225301127978757361813024155846603850566159648232306890940497950659653780030234776734499920574313907508944455853193399821619370582588242364589706114321633642888643813298460221721771421755640819148610754422707736770094995301878186306248208852257638058645308044108064893344753755396577476232310328152678091560623883995681144902630789434412257516496563522034400702096524378369897189046626415333249712930559982319334557418493440350188344423178327042752273689185080172854543372850715540926681315100751365514048985330372099924372330502593047311273807275691400618485914548338710704527861182383429823779332640449965747053765491313486881876930765582776517299206490412419208958374902664114547737724711252727936559968242404561687404587181701919143667442074779028114790503978704457413621431027243425085690654307956083291649766221051829194641430388864048165339436063814160399977950222169317118587627036780698459541854745577527707711602633388981701128588053247943350802624987629134026759270682466876233436228778174495878372837698395524839627226957840170050281289510548482878660535657459984893677047044854234585386680858200696204439812382769061421712904260695273202478236596317031533910485926358926044286590154190179808748277112423983874586439983437705563910538791523834485224549183287603830915457513565353914350305557528072846375289941653538510125497755016910957915895692939547673550197302439384229498036453971807250764044680603506606879161469053314719325067098060379897932500234424530447629348737491287183981718205621162471317712898974438545757400814117475816943478790660530322225398012834624689507734388351528785107384113271122377199105363672632729175592466005010787717752756228789742947023415650590682265262712798827061023952851144096261553439066495624386827425073850795502243794711765708926115135249649098114521882337193863546312859422012657892183245222231958564600130633582691791200703147768012827805110011409180575298192108522398328015330572132676443711395371487668448495518123572873240692286805402726191340411766982242326191559225774216493354066150968983935984846271567350792236973064535757017786918530787865487711682917495975069790982747248663269250870237730146184590934536040159523740756893273463371795396632776824290798965986544612785942551563092997907839134645032187300130774355224199475149827329595210428181832888357502084057460712410115746169078761097267334236991443273961678637037954160408734333075872794417087294736878914485914381683905641308823578171672644921075266045322185308766106353396609457821746835827700487658198199741272668638438405970177461451351706034934223096369122035438481749554001829889071121811864507935797772145523725579598215612135957462749010398484879075342878484564143605647171966606023860814909165924707687407393989165742450825362675622290026745103457936649230072233839494337965304700042714551003473760262733774477630034190476422571150867877899668677085885150256590415330294813691482408189392134519037546204322820216525911980318749071029262991188058681608540893981199407253229797403545863953888791654135064925607951880236117573756445921932824539469929895064289530760568992396955203954083751707079345554712286970288889585359920277778251912262576150747905409600355490882104226071466271363908771125731508802649771514608067574945414109162931359275381393880356268241243131424305308459206579352834628187373176250967555029736836852116612758972274938801301413407063818146755069895479472691493156221934157644289523063410865008184260663941695004064085688290820744108937378145103802884919996970225365764585169494331954976585357431830235102445097423730842287434706812458020898416227399610118017058998198298525608900062251128321295249962158610133207983961873789463722457439859787498556504565934145467496793337547452507290423773986176543633204679104337979939047626763236634074726779264447212629411958751239446673351053318943705830212842368726911652048369846775708825795840752448100505074790305906136008976532546484319635027939379818823330765015965932275818650390560060016483012157388738237343147357344994689291940242797527081060371577939430204014785914870841641293869023497176598120710149963294753482219659151341747589241861705853038243853592978490282151032412904643908227066968123681668729477100042249308240876535780071920053209033667429252062499383079994383351668063759368558575729915480653345558816841483916449792008041897860275466070931533633244411164277982660734584782094162111380302010096670904527052468647803565091981538913024332232199534960507761614840382067641681924463233425999721793722781094758056303066240414382406421365295261412398294033755156443548501990418782729575599916937145990225951727273510417445171501815087654528442420226779549911558040025545364386969315501786743226436540920255860985357370691689588244042897858930630877355533751583850385787195592210462783691575251940594698413737136908610980791191945251653650618486576149892055619143000218780347075070611145362897187061116978300850137356374406772978924325118555552103743948444700363989558809058609096599215100538231226572668484871432999641427811501147831357621759867492501253748574056906929454030569324066551606295134344268300744345211174152455567428372820139596987511821290333497469379118280935003249547104073618079721876081386327054710825414140945666572159528003838076730879834379358739998840992200144392182050711811164658646170697387225739064104950128261374283128351144903244885089599566551797657605891541292993413043786647966013753588549369825241645503401202940976604909551570717625157061243836087725787191104974949510326559447651374947112833040486959331929288823689085840535574480178990637356688660217320480618177170759316432445665519890015680242336171199842222627938722499746410125957216015652838296039481413010783766483493607213948377073899586780956411842122566474376712659807542362215867693401024469321598994151598122817578846151664968075374993259776795880849400113964130301646083288513378249058635138681417718016138767957236339615674047878757535922596162281067081097617663552543506468922295729935027670541176080882482103741333640779131523247397564525324000643488654336195760578844690166055469819705904507088212542700188795107307963812918895049232063065197945881675929440572137393628381504510518429610071125091416278499161739720627986757992994266024338013097091893842335719041471115343571037699810560321130083634307309669936483574959979599787929439434054237638670567700500048387822276295225725735440558739882977545173648577276041942326768309501568641484749962360426534385708452915752584881863524385760815948615423478871910552574464862947690706959570355049703741908661895581238160054723592890352621282667863870663998793683005066330982586415124376170743596704148033067293277606490379593265690295545468154373781371707565400118911964261003777669800463547453111605821551151403060042928471089124584566623292112380592726046220426590132433754591009254729323075275607717582854663917205510973954754580992586219741022436563185297305180497043290743100321548725528965665595267872502089759274325321630498457998629561485501420814343858014854554027695605072703557801199547775423521416823799242822316440997570256980380070966282239745241068105021740605785102073203633887374591354206439978362455144840739252044693536580790034347740843649208511097564063139857438627508721421686800170585660483388574465676463627806130414538130961556503874993717246596097166767702103377900630530406598710853742646033106613862602109709821391542661548663030020140426745636642249046103764125611110684079625131581062492599098287507484851854731362273428137121458631120293656695814109862333767170673637797995086015147891467044308573644814254385752937710082278043759692471410787977180501728026164301683671780494816690767466833678774066704745503553768129326310731569560343038086195020464065140647977384006038914389029281552796976812178034547038906008996434981960779969930238047790221354572787789434958572417332742458653424515936890005188678865431809032821908513823560773583717141867974938078811478671856972470371350001963065742753015562003445977975302549174078868804392176411894913956468400090518927477147086665114312271038960698916475463840362369183651179666699355225229301733620670326402589618312116102490528149443309000899628173467371975463742388882096396808573272087170191427373798140927205096765525271386879987476834486015445386062556320854334978012901284614678150711871579639352754903983507403978743984965160121367670210215394509085400959523214290132674709125072790402763492935701938975251718135551098016384840687599746392225025383046444703468121051102906252532769596436703508477198954148172723316793623327956068515516253661639377351151956851685656855634810561001295550565790163302267265792896915089398044190905434623899407724613037031111375272961988051546119843605777446922060006556302202958197743479690497397604504838189230442036949662557076023439173519485273298718542044500639166850077253554561083776620641744307927591390049888894274405508892453151722794943252981116212315011391047371641684265158349461161193926416557816533383344337433209860396832694111236550715895033972754035045034399280993931452774661999728298717405095179017636103356857697254365237371123488069661667175180729643287097725296492956421486250722809997145109894824899448131502830874106180061209138755485627522769450230711772657080121730245127594154525067872588934306554916750701607570244651068794767577240808828372077206244292298369318096723825231855452833359749562145147657551993570485853732601258298474410037635124438251716323786993361329317914353648171131319752188649024006519814256807931741180506676553421496864420934931370451962982110696794753325689893423666371258635733764519194796055457380654852901791651165232367090139546131942674269372720781288314262532995732167600615151250353250467874595366439849326115961248374019697321021937422852391789227854800767187661326655386781132561853345411541655829288584364514728539099738174672754515249967927772423587956973906140098579417463771002966803369617364741417341687070293875598668954698645763366598966676976489202247819793646913930033391926578194670954719571427527275524590410023748791109821387031473555610644711576464766339308566873553783693441623123932289171181347475863778530500543171036281371497168196060066891619193320171948804987812402136680125127123371228099188089941275560084047107995725993213868457495520784024280051577007947501476205837618287310300618723823737424078982220568900292806025958992820219956968985257204531552087548749844206455209508977496547956458860079239946243131971311419517874385164172490497910228383617896193593783971360913564462200165641126852147157494230504568641734214235845173636338397010434759273185518893263963803077089981666612985903307546024671729369826086106891555683658172879816993518673262275866366372638408457149878421464580323350133156487795140936535071872827923463784329730438606775481927274634519845485774535111397209667791829483057927420892621128383646731825773264719208144739841630067948959868058210620915271821932979300684814085051628107863938570261169815738159638875829854944564993152866705228300175782875415845918563928232972482307414178651523042665155062226203001436210792890420075566124549505857224603468896861157476974610058235225691921027304476871505496969587327809667038708670654718846092143688236643073459391354195279925478054337764997322918851583466814444649210161629369330516456682203454047194248936848832307220929745624705427824036476552785417966171421150229491958806400068561853394560789459353857791176199911316569414346079835454022236872256015822690068031668749405780494257812976580158453871958525726957824602058568533140691738692046032185010214610936183950835272120058635123350226167286986746128586722136127597632357227834891302796618471732405708808341151504439257246962664550634083866260423604162980338479053693362940345897572338124821355332201913319145795118695632562665133500692580971399401474826557413033919076438309491474267476336320099854384425085802837655289812042831435449683814133572941366332325108706437364468176554706490478838215627019985492855828602865033776350391948951693898481695814152993061533852643553491924044234036221183698531813609290905428894490346095697781931356713712951025810999687015756798420570104185110853617271181821921029833126678883687025158370769816484115681552760514893878331388241046593243850017473435768791246253654619592516202024603783092389536829029049054186774302221208144044656687659677224523048703018936965132889062173057142067572063815202498078367353102117698653711353499563608451178258456141317027802989045995269765534616290078323227877957960954978013290467400950006630305260334416138452312459970286672130684847472236615360423861299424454011707710240072263489500869906084719724575315523500381520907311030312061912665702808257679422178613154656959019776826910435964591220869128717422766401989710801278239822380938381697419745744646474994325206194699130951562838649811357786323855906521367985096984598683613428691835420437651307926267113578356949038100084206283045016235642173926845817890830573770299989758877783779769913178084703870414892543894227745915581969699374542698701717352843293044618972921645288269077756361706053272071167187995580568585090271590799624920205582932147614397733943037600713277966082376290453912147249828826127006197128625849353869265293602610899108718202736748727159073907846528352902998416789001770244099688533559867831039282025687505952437398943447696516663738120169680013653024930924474893712380307748159987200968060372103249688998173167946370775878552327769969093243104545750781364210411699638110419258380392686159654036742145426757836605197121397779194595658176135623150465619474993577648713065333494622888713837550249633270659261982213725973693899501690777929055158940503656921321671032056189658138006735130800058213359087383588497740159786047255774204779940971891487890533308530541424522582826586674659037501740921145156317371195352298705873173368028829590467863658447296843304116790986031297900564046933680776676405979359693992130424099951300784117073132566040177783019686404352995470389027523332384539761178771868290060997164767586939908503166886984379227271707548819440346120380157752505230168404984375517610026511708593256162905327704834393874237533089505339774314157152230355576071970386628534944529450617058052300278521842398050608584108806147985185812037451227443684051544186068978209422527576855048820886207784446119467035070005482374462339061106945002600523266740319286152805461651405970818983151851005807994232604287192229930578194535495135189622976513374397377161536047949156226577415024853689543329671142539039325316556934346893520730164668222688424171130121456679632357131526276505087493899517170641214592681417602924608982899831751371577113536843177811381526403163693994888453168163966680185791408032656836132654529071389698912655267706233808430040280549563991233305822457517129090122909546798035948298659255662297776154076874147114327091463948567107123870037902365183215247480418914342480192449706797618148465158927164324412196439508474450357596485653234600123600936672617208039840960094229856102568788529841959319228760340372681532659659945671662079026677133615622808129558686348601675371325308406688673770180425139182082852609992339635500042355922741662906224956189410469653943578096256657597541392436922394531571092544567346236346514735700359361000471970335076833285360692455245192080802972182951023883283097602398667451727197441528478540078674815554983573577137984738903310583140346488304885327646696658846736519562755515006948893816606248047297917315797834260942866016098879961520996246785072824708302342414209377691492420605080376287726269796283879749772563340947264267403798356168198571070730650864472797204111080597856524628447764777346605666897675189177878049451451988706248381491327417227941334145667069679958170603918598134748763442643918246702194093188820919517676101422224931021582460458348205697619147362404973635034501269558109869289664551145694969704623572750697420842637303989562523455635486632767158251567136981209247295188527913557525179890324547603534187572976397212694790741737084349885629144317061095902694081580080041742920392471801791830089306634042689268244601853947707211130091047521616733479156812933969232034695094543246614711797850679125488204903285745325749666342486556499672990730648120160524957446207300885801137527326039906396828206587181611783625842673205850832102517225309753882514834056670868871976309648285125183915470257803221820558427268622498730099193703813155835910716648789173744136326793995055237594619208807141101963384527419152683637055612712603797798616289690281952714001786092733682766001486849765913502669444549213520246412520394057228527144340002783057242861012850865313128202721481052348727146995118084354889035620766917238921867242585530808321088450069057008467915730543983332461341936212172300846197588075900189189785626607044440454757157384002581675176779052700631616926911338817937506307562099073469832455232339229628081639786573978481285168250774689068103589330437938035833504327594715210293963445341209877010789720170392774526677864923110247723665810566807642994294994049273266594515984582518638220999559761510079227776459561573813702441316555315631577017360688060409153601334420078366132755704885906305576905878540112008852990495730517604391331247803270674177068685241419224003735550853339144758453665381217658505554529630340081985056722300418025856555113120089312836334423015075023659091666660442031206177508786863211928413011629463597739007641229176819750502945407811443427667390415444074463240925281355720419120067913971395439294900101099088592878473117898767102093044277346337273977086369119478657164743267317659923126761241494622960223729365561028633110446318845204018493367703667743487378792272037089225404430023147067790457269741551820958789379168590439917416212920138378859704364290558634086417027463347550619146532208194688130851342419493102822339942734594856985239832639815940728311320340690321310385481245490102983718434979539597223130374634169836341808327201799924826583544821330921883924432112539573689246163580456064262869943985056310898913996253573577051097005432534430480512845877395013901278544792334383743542531245822337994235360552539573312369693484382724954688120547596215719760996237924422501776123561197571633135425681234794540156303704157671848317174664097399194373348784182926281136208695239688497926993357426436682926101440923199976165837375630167485743733473055178486774261015644042733283734497508919879538444456656297748067128046112912497285868933709169751690358824177938548536741609375326296423136819280780961133505718409444039882744606052727584723560839915110108859674035954612349138288331893602100348063715604794327762014399987441549264871998246433795291728907292318613090123501257702450322922625343590993491718441761678070812964496947144750040946196198337496482412634319293666287364339101005194558900966492275201326992445905367858989160399086437746046584758383702823820774072009267683542266368379838966381909783943605366109318706654936200656074663412557253891685409389705553674041096959785155969730364970379521144404425766913579665881845373491628314273279593753401435413547441818819123345535871638233309665871698901827008515731679852351870779938806672334798796367235762352232734449528853018454713745233332499072726029171056171662768685910768309389461417855726026664302240390162738351697994322699565135632748192454708165501374800305509536098004460894329605644306750035465731301803448041106571009409285662894579387178565944240052684317795620224805008722572285362998834479780297583525057308785332599952359133518182312023871401816827457648066248052484964150886179075720112476448135044924695675545997469314996303200590044086779914730125397065682883363307563156868021681874793875488671938839616909494672377190983786299722182511687086921574243713888291631983349080027685893025526524659633951723837611531760886411510474139639660097668208681844491315990170666214913785295117662222666141060356836927817590643324449939007695019376374959103855290743164228845216273390208172276571244934685089495846971248374579973541273951952350622860880016276429591127413471599145047274290777922430624600139694143927461534618038534524049285270464451915252807964168740044181543856999005898755402461212961237146077600248515119094961184366369253106473008396212241001631708341191669560410811562693256890343583209676620984204782557904721555291152788902164194291890461925691193552871085724304127616776701244131391638304030546148408149549414190130788208042591398607994799919724597069598693880432804701164746383495222704871747397589014860407954282799200310434710813798268585396065620117498615905909566326415619877941794038664653858684424085152469026393921380539459613690951649569298525649274317826192816037470109311681905373211108337515982279667729487363871769682202254615193208666818824759650537651371661329430563589858769930647545457461432378010691787357492689362259514147001510317516737764327556348032700218984724270392790591644356543110222407781264481223294448067366410364774552442435957513571654323066142788041823957298850736930123937255574917372285308570926088852543885243707328495720153208747207513339388220464370851509012600114826750611869227763758476961906375415005832242924809331047506782569399326250087573708425365106131537294924542407404018693973089462247643838595984825425085475696643209593141374357041204783693919306121921438007104473870649264188954674662712100270235509294006125397642725527504192008449489699535627822540091140617956081290258951759720843298592367611783894332250759747439039310347198361724755211802018654325648903872408732644699635880863618859351387950288958165478289083403807628601283445999102943274193180560140760409570500597201301561574989236032976275643201725815711290744486110976873820793089061743331336885541982493875923647992129835435298038888580942657745840998113279484711823805490213418497841051446260682353508113644338432502918329858835020552588112973574925681653231183811459001665188610521916765037852941084906715973230162877835820212519531103895898499105011926745666057351552124495277042337663696257963147447993207849359567094583059618469914149037267266204055405290349849784604412440242896949728978501501410935434533779790657366609601992563363123243405263130182218496951949964470417751894008721626684500190976825674985756434563487045564212677234601065840800316776973838508426495476285105157463244753596190267889903154688024437795529191369789055268306745056147206425616856411568694904335490941710375741629774665915516884525964868523826062123930014398602818955312626775283242663128947305658158033672951172862015491472573427785471117281730098798316860314245054364439147066218996041688996323251860684051801230661072279535427929329894588603967750598369209373100102323216148580150234084792335596779410517328395926407697942201679295784257709309040162229257372356617897517139471144390175679382115310540531857071690561556483369653334838304058339333459760278493627441312183502652106639937523298533230150340381545442805926778182288152074154121929180948295503223841104428392020420006844664522145924167437279767126285779803495362778339760038217264606422797055602313142002016393959092036428112614431535405945043322180986867037273378662633100148759613849295326797458987141501823097601750592210981106548714337321439676867149493415345755906624897279256757508927223138030664750218694088422071073729128562971236549843907659659468887610702196033650887605877834921746837545641969233008955485329848324459670350175719862575587683709489960186995035272164163074974042424530181909757887823768129875986814276598191202480823698740201961134899406857285834738117502429670048903738962419500585282789367461473745292059600719078536596974657569837154451961864730354254479792231086538097702716769143308792822790766914482517141424001908772231890297091088536633197599923279313272683221945883165653839308351720879472891671470060166997669194001101115946081803287041893507771693625547285191068148908316447793257118459786583761432048013530869335160474084518671171458285288223615577056527558274151437005629641700628302248245874774433420715936878410557577503226729997011730029558011495382983118768568041415374630740038614766030404598825123112770529765977257697418604360440100219562670683334233700352376067330044399120435698125536884664736953558424987008216812612005130774563760223269026307135422557087184766995815234758688103998480679113265523319702798394559169115172969863415754717430260977500838115609113501212726374003002807760004833343270015040610366003242902200290078378437084825965776677391250923131005212758045545256965567422176156647474095083411838649898433523060880048816676094749437851094161272287775139422081881867402781732983820997034010104079837730916424646130619826586919092601934222604910039544195985605513129641783818675330759528676857476541796020170610947121810576798849395977769344502367259213300670542005383009907909402712452930564659438398147225765207356115788290565752282268202346568325303648970391357581529683889147169502023523841430562911228245597482312822131057942858340744281992733752604775084731752261577236823822912065694827567209478654659154029779636150679261028351010814606567819230878276536225966868483801246292499102642594658264311788439702756614603469714360000432473549076922300215882184526086148596132349083323352173059275408192893716399033216400952534184142858427199038799063987684360346322716560524709176772518670964009348800969741970095430428859858198445621486225837902844157446522749554122526674845590686765237731384189243052294523916211738723461714413889754365604898454172833250787942621009031249865432319492322127001418122194342208899241217915831104450429188320549916484470906699647164124215754346455641979049477467083671621094969474200256825371943917278532663510154171119790234153117051569275286371196072642844306779823158864872012937210019335907676455977580147947014506062870290574494738695027121486394665858419507190836754882718477710111526342653397352128647307378130862418311543298880119136292663930184665596864749809216488385187757010893513429615363182951160949635168813802167578191408864077816297764093943542605493130676996069732331786938099278233685119894348487692264816831935962799037049585874876370199770299943465525629563370295125592924508809338657363818684114498525064155326649471629448440976726168269273632374500952245618573916645647031938782614115500647036711279741984414800466987230647424162547902569198927117625664862147807078141080287001316605832826980782561659924313853357093028389413936869957221383807874791371512848131110272199114943145837758516124329357655738106856712068840107086013067307710454045528241257600269692449512791353394253501932323038648834016671555166680565296767964749502330723214968967465194200932635665533519963367705963397253520590638442186378144120085988649221046562550916890186157980011737459705826646785536118019120936624458944130310868495053227030557115084288429038243339820504468799666600809916359590860484332698575502377487804208861607667985069652168402863632586270182611613648392326138415353729308489996245912503914089450854385633202669833447622193275236973931228005969826223805607178265836042421844914024399104755197040857702901471344791782588570909199390449882467100322716687462444155496601960387841305989056913126666413870232160349231781907611822632697880976500023711326100858549216129754096585593432176089372922591527981926416489181090524594543647512930924308665224634885069189899752157520855353871206786913414835780182398670374124297554943405418112871607791826097914809445442626168331673920227152651207298107447435932160451728556478006220538755978492529330600118639686322896351417004876699165073125455107025174996259714166470401250928549141501646459887956761834309252026257336686397678206568799640552573939570235384281237202404278091641517814514737060635286542391258446828838410885509460998193908867034253593057918854755521813452940269638167436750718859957454568491019888242273738606307393436640752369948951072915847380850674472712784383136232187837434905208183415821899003573478331135293828157854237175594683651895257368798903184101672134091126110442804770899141766864895488705200373222607953317836907982566242627966422242718070970118209440341936439570633589471775997018193412729271358634810084060587305989602113684116320783861940411565651897657842776567697490651757092923399986854870367724973171420027377191773570351222993531290330776687718882647261705199040433834811552847633210259377470385617151185855603059557142599811075372879256450815735255093469701110861615322172580566184495083168463916879914249259268970518550618237028450051187284487273242105240229907386714993007312046625548190446630691614341684631541464099877664911794489130309592326009700369391159743889430938745861861465611200300652415732590698366701223447524730497746903772985826306994321525602723599229024731899029215278287347387979479842767843376065242898799483763258229543949285924118541486030884250535042406399338381786435877405409637008407848287021187509234991807323913380554610760304233337114817223813047054375795677122940736185693131672213208603069375936836372484739946910960166428346127881404303950898792490627233245157403961010837133889512586438602516459141170321805351702995135225677794077212430836049161422476555307274369976101477794973497249467432921769431393368653368878348266862766709269852151503272167207239599200584491343510952215710215448056476480375274911109790750133862987614158703468362991657540347617886721053318909270589260307687823350684543026963239099476590500826477455134749045321390763897902648111817131749006940625417998698507877372927255596940167363695841675277562812800568819491911280640542376616574291991605822497685299804264096708057692673368498097192776140976803427520545673353045635016537054359117594065499346153026684430394383940786945115940654268633527821824832123735719307442163206275658596641044315350097879501401532102285764699777397450913379879902677669247002636012192882908427642652428794114040322577265504772198931145074367142563773283335708819096296728572501421990255280060918619083551835311679688823825863120585320793001788655546541387336537072295991731384921386350113448271712991595490726941067497074048009896798769268520317739810912564748365949435900664771747861503331478871002528296148806940837575480102732365184984155893968380359871960789659764850814252149686729897603769830603909853731718486295810125753493543650632357091323686249374784611419701328108500721529634984776063832637570339247079879592514473555160565451878430636392929491885017113737159639922990315524238988501524666386278435955503927939166855456401238535455024044639898355029842175823538720997788821336218447994240450150689801271254075212837274622899884312504363759212853546693368698299979409889802497483625133941135646470200088665868893389225024076379678877780452123026331784821462099458524777407465571998899827636886197107517024145979377335716410274516251137092582629391534207191559880460660781692605051717574508527832154122866237034972505755352342174895135545722149489856402274892694231376724123061462701133217032584482609659663654953290736888633744137345524532934644136388159202307151221866116937510192102993386434220157525410574690454594622480551857993207534348810297904763368742635485942698679817477736370892375250282092633255159871635094377101432809376468782122825500439430049335209408276849650320110629949137950265588545119010777198897177670921915577263195750569502268187008196552426600645517481164580838054828709842093114516491313622511165585695302795049545106865687343340303487483355439480848698893862907108836467042762417952729196677084967788687269813736084008168736851541469322358865918901506848845510108236650600158756468747789497785031493969056455857266759431680971881522439370264583122112204232101088116686283855378158422651752553466399243894181816006741093091516962892236367266567940109654041909754624176910686658359263053796596869928518644654637177655793100866535931874535989837120565694975013911420168857241855239727066550577727639878391149488565966174882444169717728634543192255732762266163140581373284942481930417279344721613149390328099553594160617151570686968725275377703405056521054458789312919450369194698284319474318572919567548294342459530986153687879634001798346203429489741723404783747692150912525037172491747923394683775898397914172268544754652613979493213795423210690511901167501003380479446671454036050811938473470036755449093716771287985637943143646480207098560111152607703601071898608084332694095630671977476107503408395769343206151655450888413476691205700396434181815810093481019470854769240373529958142917593260048178298379842630829701449587110521819257463233357358961393148654971171178127746532405100759249306637450740799658814985708643752018902756905029066315291161052470031195771007586238608016123691920680887676776844201454146528227955550338055884589183353835331194252605450217985402665908303586094552249633192323543884911246426000471753475780482852556910133854046160141668784203926019441192595518501733541193087763898046594625398219988550183071453761478064395842264012159026259733579413893563221501747183220969649048235501217772086215157073915174087673857031512798846139830385188406877284672549705885458291149109257277527425774044347568811568960109369911247224264749475491979886848020731762955542629586243188818540536228968755887684325574352575992237533518654646652078115579909387924036700038182874786170092545942134454252491814068300458784711513326218596507043943119620509623496838333197475927371779247455081124878562901673021495399997020957986439551350546653007037198275324642661991991062598344399740502597651684885640998424136806980669298363387751620659349003417154407573429928195952083948221444138316420550738799385122752719747954629791016754800314540229237159746181355775229030568552281742530595277178714387470783492317192191692322662868558821318324977281227605979144533501512719007514610958619356730134380618835686126940050443821568778516206012428362719601870314330908544368248955186454328073471631800514283916227255503745298815558891252939860381828903524660166997561893723079775943432348960143777124860585001943404716870354342635150554442291590849028551083765140195484703304132656789731756724571397329369157227145747085027299939292373550797382227987232204637059913002383562050170173745450421511011511447628607954276752091237512207171588480344100646668177013826023692315029131380335657570270435003614283264281701245247037078585679549179351018027277978166511849510583205125011150649965147082564942110441451046787589909576270061799605554763344561502948283754447760773039300848176457709433823030999971202427237751738101324302526142914173467240455730510951838965566363449450740333694221494898852840536509333225884881736741892798988376018826646100496521126097512281438753645585807454086555486407406878009612819752608020836179219335754085146810559223553185151812416103105102673580832925660582639359215619158576521315637884551116281754163274671615539351553081320723984887382650446762355416280809293104504300373253875909062197246403430948102954481185597614612209722304331106042901634193692054347065743996161589839057272071211702911905522570101600252210129464172380006390677754084110318165721131860488326049373577950226407984462743785537304804987304612957087420475024886655688549803539648000380848537140114631250788894937322940978549794910237543384802558664633139505638755677508587950891741724401939187557768626097174212320732944416054829716109743244360176294085213704391462878190217646024412452163427454016277949307673681271317266376006531822104379539463800523589142161937165001680696020207041313021642808705781520289975145505487507238636174719552066601345920787071409991996209297141418630470734184989203329634133373321298822336671636236161280997527612478666508892084941038247564797916807256970866983433736022956489409926464499173062517222812625411509394870801672377411996501411479706782703615905139750521638369007974300249121179216938378183657049872595064741391068803203073336051523575411805010320452192192802441745076585898972495740697150858242361999291870326907185712118510901869733592702334610361728591112119884793126882256922753877738668871148235204760988283420827651215514533172332370480861033717958975362448324400756308621719026870839551806831531799179693135735600276835107821976932068550578023143351785836415890981976543299736242366809903284471404081196255174269253839148666500133235538088011811360403542266600362269399666068484502373837892056070673677828814801339434866032381859439341054874720364652689347449970010498625747269111985635896771447007093785938386290995388416001100603252919410709145301398256852308187076778077982938052379330962203315894232078113303906036471552420618804874366901407660718163462730373915278774184092167239912143645565731648582272113810577240579113854787980754074747827121303915478238824368049252836382125051214273590757676786125435897110759853417968610802155526527964089884885793266078903842645560465012037067299570974238763247349741216563932040465723516966605316766844630481791122082702969431383217680690154512300754228528442534005267248746446421419159876735620162712339178365033307346382469393285289924234552835388932130301635181553318204601054021344652631032169581718795002477398723283136772804603955497820129583378825473569859166984503612355393456283794054375967010998143746587873635606532976395828742932065636649040634952016108954214812461647721889217470169819333055476854241510444424361429777092431491750251754485986326137711095580429441304881768876614188533615010206475070994987618065141921210627579350253052858598510574272522915132532642103091668298766432942805800719536187432130101602782189902129675942986490560423133728134517602858773168125985022976466970441285727305263943152287685950225352286983232535541785688914007642336381284950976233826357854058136815403641485283552168777528674167334424274992652275633321536674640959211919554881505416817903583616152693220901574604955715025803765855730194537022393050851749255317044977054330751267413730191889347979486412907065319933949493263349024286483078002446191331546184466206716642279173647018449392223711073363391972576606912231850455222790884920622465789046483903798756954096152732307452616350549304587614516975899505943802968670904521748182195142891047459840755629256725120164053969241133158185646872963796476803556783084905591488193803876509844795333379885522522695770290612190533526113918711887470108647396393655075397728909860469526627956686212509590603410540862174279203139704636266080884079482201874818852009574986274648457756383512590750085232117754660688877061175966060967329407839932271142078003919727800489914299639805146217667560438047361571235544218839173961331775098707359130265314162898679604776936699108315292262861782965080138006879749347431513891489477181480922116116438023082145178542924998257920129593356741930790488617894391172604330845811645592739710113552313925524758652641181175668009376180654507007280146827786096457388585133854436839450769223972109252715854486369789569461916191783012097292258391829388289512740293751425471961026622268908851510840206849736042531169705495492690307310590844170958671268478324721020178580208298154024892249389917161809063360086885222947060407796647329658511072615815757487878594698859075760197977650705313591673715422956458757155452630902502759115494024257040594437415444739790289575578102030960328309759737833493633373829776500791075432453832714480233090663473612022374618028652003371549507390703739193141691305325046170353785453232253738612529926136720817757159588207764086097954507202970249253832999398398844857348731991508322639713200596030138050512879830084512732464746237097287299972411262365829471848665166780207743497420426359769190601800969130767006849820411332466342430456289715986975906455351812383463847728449698710203717614143465297793456818609407658578580953105095011454992509084082802615135259644383845191135387172286462139034012126508532473488264774485739350963770053483573347349713091123848581430864281595339158264390502280891099437003489894968493025076099982346462299992302169771869363547554948902851218085902338262451106510571513905281603930173380741085936972224798422525874446831787996518436381597560324141044517824770147825700867578257864135357173806050794461053898012847257787723128791159693163202075587101967559844198816491460841439898920543996215449001517713793605923893437032614928600876268332921563283493775299324945357508369313114579714763113498216036926770357254355704179744611505088626549385495874325849870756300043747496469616918777208886410157903054508154090358320535635309843020830833662072564827685737389501427907913598637164193391605763621965434163293809114563657900623279662885301158927737680268213552445444894300566867023037613648988586356850442277187990414051435991530287054849221359754019619568629137776708577273341938189438835942230760107855294687619507329895708565353281075968810952618723020801254924563945936049523291334864215379484089777191885266521524452739879650928992839402276068598135271803883771881667585316429795337666258246094081607887553436767925491161420633245421685614078983321834978270049404754363851650153767317631653652714808710997639819423798373089655100964264421957921637253092026695098032992297684436028016442152146210682881652660822608055469468506506057767389061074315276469346342731773526076664900145816534762929449130422033892831490431975575807079004526620132396532506979879322519841858347022346012645529573015563542259067150711726246672125133691439989049096535434821085084668310634804169684542498142229120893663097678321061871249972415115070041240399709182991867482399368275590450374476172008720915924206181061037540863089180339648996296666809236217699714260245332869335899357401207362968127669064521304052614232916199301093515185071143630401790769892610377024063215830228608414956381429467185468943512080792926429864054460384327061748251170145978003734108737455682101374611353146919201448205676800785544658904576590830790406416100579962137671221474767609117772364390182555076923904650801826141246813853566465030951343373389571882824608897754786904361558923688499192694414078216974314454058864429745721149829697659584645829369440047123276078981973067094345193018874058766586241215252715563276538136504887693152214398639858107573420041361903048369073123541644148252579331309238094636466861406998972183256611397954142030641596614744759508231280793004722703155314050779891336467882118704010704749788878124259187328010120542601349708701592736442599922788371046419360537641302800878260365975571786573261296217438538082179863625099042187037295097107951479722185512636612195091478481694772018982512836298761463660536029944017944521752504497163480603296513513759704223712768239124039628929005170728881399303647337317193959700690339888194454849817847482200706042904722510756538649179961667160236089913240772962496524922463000852254555629754125680751370265502900526129518126703351358449418079261693938071844568397929595717670291015359148194708733192932054862993549493886052650963628118750958289770585156286942914232029072888056127416353245324276454883655451464334642744794315750736488139456908371929401583793439404918248779584366153094648386084647319022408604980160249397892778126225955788088857843984991024748682690729728778340264283856839337652415150766025268351751099826055433386591169205957340367081632266304104319932427884280142006114349147166609177531598758909419750765066457651320894552583375726971481575469106036363151231805536098931034740404601697879389846105379734915503441536038843024375649455161158153716975907699012022924348556817552735471768307765861199498274876155461944489775947148443428127550311520717081073164463615767814475082660177619946548452564503533959639109441398249011940371765022501990005415105280218070538436565098203727433583483634787955636311699733302180997693605638397300148644490099764638308757798748773109151534643175216952445926716019630228987218037390838123136566346785422565485003363434228181558936794199969953641298749600554163456619490053891769787537782267444414682077110857515217706076230837321945607975562839480372901373238682489720127038640649193750864696161087910508164968755119716188103107543952651485798541045575822096737812586879773870662031522307608199102788535362598338942474695355231472465888595152421274055174378246056777068735374267384908195254697048419126425700931491206169365573686466861961095635715383044079441618884880707691176435629927022351043128600142849454511508529661586199167592812562823615520963628291738512061856353801877674762069172937947726007568198854343002674467632206457557726048943027131465942507122963964381451874851431279912356856580465365996068017499720820560814055720772352614387424052378798009572084414079793090889647688363418627201743536104440646877923792255633265795991543605294157142956259344132211413066410500747957978807359633699827297120044035905843727255010007538681581861991585813589324122974020720963854130934928953797513004002667153964313398586313154738009600921101167413850186105081381767954051944489253922391641881952487577886574844651251397744677567937973994003124857698641740156277566008750983329358077986646941939543205599474559892250244233204968932157366158392669289927945375069566248709480842264889616930718764628261177175333937762472795435637126831620754555666238833950250482913350270486015353030375249849752981134722207113974158261546404334874527077338803103325445367193490509504549630178843141449021425454550039629076359571721895096627210973726806063981309755278436996324844426645648114320791235628073360176714606491382477520401647148986919308020261349292493165229993511812928918574190515763022621253348194543186508465532302698272381198171456451331021461800103365802944102462687077995390082935152066750029546438642715266629861325472025430072501894406779823502791851465203636986349902087520717495394799534449806627346778622520586480477645655621735891219360784818946787840319980710474110556363628231667784053686086962444899260100065549575228492618088598262731876312121920365541099729175929901978891871460067430504544117900432114218361429349629960457380297278001938557202649154923763810938447729242890613795950459574943426513227196523909265514946413055633244750061291489943117467078240297770682311796107163102619813349583213152341029108038289649924290523757013334372939912208642343703844719009996935817062873732116984021686060393524521877704519691629638366993824830451809948724542427389395140501857893245759485274748441828844261101591923999024025844692359134587253469734578878251585842911036408105759044771452458980231277227618938740205462254688234006504861379617815994399704891350632775793126450747259690293719298706224838838023210423936437716161161515368935815349281793071149574109449745068343617451620154973942139996974669061074202010029223534544239322014780847553231218245500483411850765922968802303419247308465829657504191850130690583265226086014860943282869373493248048131433068071752675442368504119773518517568298748223864209812582041166027226914621462084073102592591645324952121355234944907804412616359683291394385752472906646995174520816116655923606272263173941234812521487595824805168306237087740466708668643253551967340897864030116950767461436345624837231256387908180504550202491232106300657413357301198354054932872248740165064393386386629992125727206741092061215381976007601024008859397074857439963905828927074246717068726710073728899533127660536999402048926005744023660360533695582592288750880156333612666931361631466991295992471354010034075303475600241148127105025583226795969144430589815916231987421313820534057146445357993778076761463995857851657746507149442704311344185431099532731917546525685384048603377958609052472670665410826262927502088232360862682805185842884759100862167933818390702645476941436479455464027359450069650647636621806797382674241537250462891722079899696500575016553493923119317044262580488844427413129786720279925688151144786411372576796873977027297628263561953107382984019246104810250540606211183079102265214106029602535867962566460329322945781374711682877276558758995886093336875053009404681124233003922687351075052374367402071937640041550830189176138536112043304894574614530870415901520788186195992011684942861774967797205644772443188444944237677511026865666191813664337970412039206396083765434392818078896588085055052946582009872486733437917832578590472550813251450858736330418113441148471417088828215482555921607370882116131890466622923637495184791794434913500154761365327583337770088918154105023110882195548227595809883875719609411351875688127488150182461006025415105761073265148285215407585190640872385721709932089814708292288281310021510744085868349402065161742912876617404081787311244997866929278588052588570000492411203249711422498774516714085581563468523804182756849040543107509455670010589956961015454176291961709219502706679234724166724055025948558895001332875237985328016148934052809664017424814116985940437553848452109185384028523574285348712265284645740693287451133564884974830695354029550767336275103035167285091678336925995213393315930669312483689027389631902708138186107076570948440757702961198357916041176877381128048112495827756837945789696924513399225149000281377692971023212968800024071823462048732057744011409799641103790641919476938658947655456733080693830890210489228413277545660747895631975938036812781101213225225768792937690350234983057199029434029805152038282152410037089418081313708853879745293400188450905031714505615188968091523945208320351446500608439101395616785595026174705051534025840934346471572084459096147593835000148468970614912013186677190939553354632971090431140943203789069415505473415600160534922477516500746099547666046690303277583419782482665680302360622927192592122466815623631843802776730811521474483402392345607652674726997492694692436821182941024357949688996218255216600265397186273821656512620866608629812568876939251352975558059276486172256785785897651802635930792608737758383834451647545261524369232003375285183759995220702362142699549092077219461490320234255949008352459143001217968510040590564751184569233985815496166115120015117489890405230175806844406036864760845766269837527549254187091317460940614672772376946425627760183023868333998998201882491369581961420907799892854917331273413341151255253218230968409044211839095779236922396259072183622070532792897322719733095568575173611667100183541843407315734646286047614982253374667643103711656208005856613489906601286446710660377013479478572442340882122800384463680994564639679633421442511041316674932655742011448523163341418084809061174854263206375876243283777616059899568286017559192870981311881465018029983325064401832092248451226574351896546615207855671361396093020443130420452752837371243261528434068966481174254649978014911739061091023357052744365124202959658901175850969307934496074424969970148956334926947659212533587970784369717193623553534346595796117938642572502444989990743612007750349001543924768910204855540739198032147761072874463785136445723389330767821358980819432584649320694123088861461891785567942031252408936095340194931719442624526373002574886671737317824422324990743818417248182039015893595488333800156344149825364107028864876339178622832248627050007661236570534101270242062191484809095918024921664727698451944499319203372304638713006278652449122993527172134778223570019902374700852403754250748007655738914531790485335186775336223604322468604117513386775858127567233984076402924664268283777301492061031930877077191359587580272295426227577288593654571216525374937651409394891906489402364188770334881586722787526389111393395960575618049523151314529543751014114699618959845134910024182402282784013736109530450870350435831907995128873204192567373653624972253898402817674529271221210575903488569152996956635211095942845022320663796362614506579536905297519505392331865564497133409823785913724668445773490883544539685231125746128735377337366215697894471253260454214027206389081858800731385741092316974307240796304283938133428425496592644941944851023690138467706456612694330167359249558353456628901658564129370765839947783484854488512304846554711796564382739029230678847955943602782433062894949755445346821549384721082442503864985119718699821635043839006691559021524449077862253593283274657136318694133907571719481847079898209252667014099864045749930168845552937024501119805974565651557123455499471241575156365005924695265039919862376235414616200766544607585718504571638190714841207360614192394890527054594124187675013775980757609079509490975678356352510764151062709973962400175867484982294562924673927315791758669785752740243391836133966699447192103948712852121211763336673693415750589783401186105445416951535539858552039890892124292238122001647898679169347698999397634871876626629878175244865381343873095292735047913369452039287158108965807315170250667816395773597925420254110589845959777206938786205163752687216320413264008721213159062856526475203339129139543138972054403044591902663229241613635626844569858503068524950779666178779223756454253748424573397634153533651978500370093427144714912272774809996622913731015899156255476276218568524971750769235238896983445322384615090434413969721360893753754231312984810808107391862073678212853518541230927632903739042533691838361809191517776557131080149545079483898861064679889764382154705240810651521385204474897313062791905289150915385702432421026778258317342592600115741354205268006367561681048094940659052338752937444555262003168663582661524413994746250957442042887376626667328133265618915206705948702201978117153712986356875554348866188272068316356126056311561239657443247067255749856944020690091583327388806057202957528463454366044565833427825904511037210902245448104028575854165104547026325477714861885834396738964614862294265146516200092873876646188288038013721339329611923121855784700858678655595753792679777009520049356587232875981079545050130656052291161517912648056723932574328865017707707193481123395546938375869821529317213158059848707520355416517426734322861015167490619611288886189744754339946227535197716308978848950641605570549009325974911826689950730436862082505652168616130375153665723284133022961137110152502748911253848856659263839952975524574683254880399164165677580927269350522614919255363873849923028609916774048406308740639194611836809871543485107332884758881217764357393769142614756961002427386027655203152758604015511603056669372654247745663722565042353901430212025393557822876356823799951796565740328160521821120056228243544036529256576942775984845717331849421164974803955021577887393164116253483906506174768154962875762609641935772081719414321682857943803371369907516978965849613101455943079340531070335710779297820632976491964218113130115848808942026323906911145293238179751917961883013303896305717188939650980618529072910099239241147979961986210804485309453975483290653599058927586483904142207089179498071719396473990257064921323280157422118350503240081380619395523863115838282544650967709966862118623062500387954122636710144068664558486346483193174098255238026439755009049056423020916116769558736430042421569191210835517087259048015304741596280235271431495945889943267590246087227705707185798221509498393397893102355524730694066223561891670494644871786392741355503409308517786358641666842721497641081326900339530781788821670873160678621017170525942986159453391136161201406109393072656939874176519784967488208253912238078356121027268898554074360241456652095009534576767366754319826548712155619969623286311904442188247100942608961984291034374636615765278551755153135385832092556211774488507936957954655368790575392175188689050312347614669497732245007644330464409699138081770607623628999835500949664337126001854753436434971979229580596294953989742182284834074102269105568414624933197817501060087033698039227303656832531106775381482224540473418370283789175566254340807173269351963203085133046926625937741302317650488130546128415579759887949754727883533640471058273289455383714841895475729130160836939549497972043936094963525446581990874979265911634317839589727049703302601360136553791983423743427932269700430792748956757466245583716636240577354757258065041482376100545931936050430831190724649970863135464307185088473352967519192886893692988517044884199654431217649251838941095785479677478115648054636003479930187060476649743805592142466831392030284457764008896762776547872832505979259368219535612682181830051864821327272861042303993749101904880135565363248840510842348369920384872774997811035377433279664166624671016183026279713841870060437842625684543416879755603184531773490774598634844500806550919441455968861640156657140440296219328737791867670327635903842835302886207112609493799436997797239374020676501508244862364811827401332344537302002991538353467785192390005273545392209045405120342380710980761498901113443040439576629241181457639128008428011396271959959579695224483780182501531016907043543552490670013673699292571785923699504561963902550782007457546264348070944525037017629388540351813560618421601165596604153250413831982390531983907183645804820679401278030253512061018370172545980845879121331460458848378537353118934640187185071435776714702105837817103134293243256035765265803689969451181840510328291015122516942332715860208983897676655119171500950477492778630836456144595269841701082013062551899395086312800924443676202388032560737705891511410499342479693978271944626845077512059598917396873318721571990567974809749957213955966812285245006841383480774720534846233147809129575319916639861603010550606832838347132557886802137656385226687423378265294049239703265635299235065903671903645561125153424382163055262885475710521028444602165751961067842863034121757666167412709204715664797353516916538809800431910080875297143970253033044045513770655598343167813535331236006347732581515513000651511020043746694375062098688932328580290436257580841565046749513221746287013100280771442106027818328776061834770091843209486372651088424628391724598375265821473976491083716025644485999190557952201487591552752864586105095695104395091146622657728649092462458631419475801161753780991746027641648820554491152705064587057968627590437365746571638662764656715590537538065884425058208146112082590913490999282301553676391407815239614974460345622061951301301351710630299484608638288804976668009438409124519819495185467591936585126331513095075622062164076334926676961513366479929012859196896153053089811304731363012721218985549140124439919263891661140323910514400602492715139935419715562647081132364589516750873093586688157201873383719352577374445214879382465301624731288033139113618840407610934664524428489135626873684893591141175472231054931013860185097832381272892234728478694119671405921074848857808353979723914753759268466317176328710420177415358348964249079650167769121552639862219282111933979135763201932944298316491217986015795058059621992314351670495741516970189151852142746046570898510188968057467287177130970447419714093242139127159435754206343850790236348849602751752125083683835610652688830739324661771858676045630690620150088149507119297492668282567360660682275148402739759097949001007280174565658746034531372837117985454850562091715301087494248364951716444001499374867555884778582927857962088350646984341860287600221533979850726874210209392512500031723026278876739617564038714820802226553427130934464710913825760741518703389265045834439953486026910335498791572656872500542966980912217903385694750313167199756232706808896804330505907262311147899049223165427657427652157681298466586807771589725094321011082472205662303347495008169448762217892427347989637776520632641587741214103583656786542973018579103872350155539485094345358716900133872364835431086250472866541554315156282309132266653586731439174750135391767939905887655857708534711243243578412735988361782704508266568044890983018136336723947151118397322293748485976926464257712545759711002995941467653749032170453210935036548636531863609343484700757295647430570416973949250081405367749931581313539853321941512073092679264439646630863909375859839991362007941228491422186886769404433352063938776417732018714287450394958185812842654190886061229240489725592711732815082591864710601163466880655019659331386296444433482238317412665020448430971288593506451375226790598518842811147620201242861925413813398288036238505720846039633907565842787722752834309909491728176922658946087321900445315547397279372952844855330463393625522563989291198926738944617991744454163893586274235240970088264077232930300560024902495780197496372845439742678242069009341148920132285528974990475344472324379936240263671394451772630897598630296281355294044879265525253570591642285977748188457961705991889129190372553057488654092977839610375300776047385890285021667782775250122856600612420652767448550684102462237845687233090988404479358802408755496536279684428852546505380457369583233144464480633925673996430574958554901859888675720428217575357430456490140422694240669126874403172979166464180862992012956997634452991218710581024164575167238789694383933849437669643311180938324657028346019874634703948303550957745650644691740124705713216451522654959197739790287786038276293500891166507769741519706685058365292225242709429069265265551538838419038745150866877519600507467298774586858978050679667541627067864973912983465427926231019042656516823897298834356210232910219529949644923305786689484820694713341162558802672394822909520855595337477776182126245513866777585957174475879484746048091677613511585436842306926199510407895307644538646438799656964466489066962815959640196612819755470801054141844083944740002695417790749216191625993264494164571971809211040702218261270414406404079258987623578829392404231603383582662346055199163051051878175041776305324899761499296591233764208545719053330692408083772061341254747130569335062507824310649919309742794878568383280124878225586005565690365112006459662954432726814112066527685207264154930764108374977145852927918780874993320287740613125432653953005687421163325699980542852417856306038580921484492569621625153546112577313604000678905533982844667684627281171979878808293235070908795614525755080463255275821645270338596348928406688244054184302158633476419380981480538505463916019877431090488155560335325502245078319508072896819984271292368967807227930608278801435119767450754727726359392284936520058947697720010269088057706262029483065142639492400044657201246738314964603533414320912823749715511840837018770071984608417367570917034625281204898647699413858641292782806679206752929646016635784419203707377008144511727583144173775820518939549009558369847739887372576815437738181145044363791445545852182486042057589409725645743292260696759895770836679424430565755203739953656772659908115032327853946730475401146799027999489590376968371643903641470010286416246004314411198153832918449966048525138177273732425916922756004646874859915478469043675466070360917945887011651162664347472091636768605504564787231977830674102666181237960732611447053308810542693942511786767211171244691944516489775545401484691652833099190896176243460798389481317665326225429363686690034433988365742560083208501959425613966360095630926482013977365180847433099639660879157816543864174651995176478297414741138454556625793144125670744987792997033295426843919645401780661288041594181855891556224727739509313013066037197376168709458310732218877388479334986285519631021576828164013476941554886166793632608895359306014872658190379984027069111598906212397248441916663892959017141508561400123810774789391071779062311957658839439345039900325301116102537311647980832955167405587664968878076156518998557203468548852451989209801301652738103918234815500565631903815332570812937238575661229086902801091485751120874715217906936260943798833527205227821932244969390923991755161341993521104400770084093882173459869890206498306825864380000524950452111274211210828119697324252450306452564074354835100716228338352469436112024443027944369289046634077798286045204510808601934014576386840409743901152293205364810522806112088108497255861560066124530392042589447462205446919406986876671539664866859253340120594987307514092655682537148108931937353746457271740763231257746351766149169788457335632667466220275696073946762952139239087239127145445992526701666159265847154781470953294683219289837522917015474941922624070496886774474115520852978311419939871465009040302248447976170633365003502087591372561015173153043378392558414690990070398790332262467034616305647614453738462431420065695359156682541028689455899099976121205229961604746843842438424503514388536722787302216604114835199750288924045313104843508982655078969553997459782343404803284356959887360535770357120639857565035223779990981053560944896103080525410823448091747930542841048198121423224405843747717679728396595125421036975920111463301135655734197844221001899456260773993597549346878163637828308291130554501733904049664700956421960993453647115232192971822324821559447069708582190447794103247306087344047229694915635190865037507841943968201529408208083364566551675911833657073180799581047018930565158035391359894344148404951096180409188482240860246585919851581024002389059429581541684193512971425292943757938965056512333408581064776337865280925692129765054217892817117717788514166726093997560267814974408363192521076155943658977367173083323682943907028211914440907839900468791931761593924864580538756174701794265905789719605768282686900591678863951212666731661491160531243318950426624497428031164189199194607217119328232059283407490115164261233121826347549657391515639896087453433977390463033843651037370090640458663314048809211734172603760564719279368339805561566860260895950360562116984220513069422902142076431853445078280122768820845801132491662241460678136498597169075277702406214277443661870813235427040721726208334834715583953723237200570108050644071852605107034734402055577713736902950634109921100769424855159698212593914246946979611951248288954807781855999616006168544178919395395738810480526944495399118773124070441701201900914903407569487310302744687081523230447120788846551385374445781720640221954723337487307568147919967527297891548441932464253725754190263887372220576074156230856008236037078923072687278665119294385755086192686772094273532509778048014854770411037004583368819726559312177135654802698558293441371928121755217909083629336962361586806849625784040874463192499704660219795947431827972522509965620005296805734038670154184305287896574978022556613548182612185884204202667566592492182474985542161019121760336313835209248726237176838024383884527563427573645061318193926381822160369831509120201343877440530668978525932862755382105536368601750730852540159835942180256576886390721903154710098376494460904603889524451502714988075479726033768426204253386745786987331460906030405626853490879658576952252846942884769589137581444076490825193577928879370732993336364146104480253992525095687128985938547081474755067697378259800588211830058436827668938420204065521678644918814770107204453622404907509674987711965128350566761604921825806182080083112218574960922768250296616393235796882309375733406799671625512006615974545493146583569557362845641954833694609579331596004404628812636237005801658994474483010151636798938106189532075928451022052145410783606635124554699458057387070832821543557280490761507409036453191800582281310156849835635897536274631300297355494003632073055187812731324079953306094949999382679645376462914964175840907641329885814995624327004585399811848638953541616238184682238545316395413163194240360339037526633454746588596360583008354292156098960195315833122679872365274961781068935372449173501491058287597686962181276717662079473797490650194389341433525115487501375314778202841236954840200581085906989287743007354081076816640429633245681573013244570691358455477362480941171658909455898284486013112858713532854698923012553722814795049909878760320422209014181419496917554937997538256914140947475455039885473881264826417299634334139769640765944433315477565984997462823771163158782028523766379149399105815420533819550500148424630288084352690882414888757118316330797489237314919918764081545808491532136169485938108366660618850001187442999436001090843817617076310351697624090312881539108339357050878069457664416107433962714623812347560360883545636853756352108003429049995688624006426103052854812834608435821351183584887204240701873138786865707039501690176564094134795260202850248043150255840755255814292312420112564752632366682728796249178508154295525225005336156599419296771802198863511426869668700475593567613577288049754238366081661733457568028312483354548243116039154788138183306946742649203264100246308375028116440439320185601852205247897505106177016887218293735344904258854432418029903133973783119029560439884730321120713061884967310975279161305547069717659454620146496854486353718218096111882708281984835974645355138318118222867670140171026388745676956695337239665714318774536136706330716880407765617508505691989499593103937999394301888301166110552515398006739668519050719678615038391985264886371365929396892097510497831461912677781274521410245325986579884817725980921390641720526399091087612797011028112281313948444051221744802131384337960031785264779326783808938560948249175052079283428607402500153604734276377193221232249125559794061062244634828619853657345187154019670109994784788814909227565159551207358429904244616569169321323836494203805666555347261003322820162175621824046761507637699488809562835432047065770090189267730030604217140088887103773102671443933925541566481539556216713387063529522931617330473842266934107857566165872306395275033002991671584087598534174909813703015770273591106863478397936718628512552994107528633106457577633736167075355961345649214313471763010656850308003000574145864278095780760788815313577571735138547200429528364289197452111096527512546779514893037794224391869149294485440076178907303301259389035830856189554135381271633657705909487904293389140366732485598465672000266451199090672928998856150420401470292783542307220134511413815676927980752862145820438617069914480172352820706698433543844235232507258869245127777997592718484343881387906388609099160811471671043274266346391679058633927633598024607721049241362003627746866688013987284514450282709160850531577590534851162958135026602086697109228251952493402906566965242539868953899948700083663987702806349873388390260028593393985913283265808559935271567841618380056553410336494004547447351793042602133249802236812219105749508289423287145725958198623470301445150847253399865813591077695613868811498090880169982285954677983885202631517467252155702447275161930560542777614306839325943951372602949115903166769721720515533042391892375901674523424812631948719859350296161606665206557725979008059896305547306078749733476518881879989103791743742632413613776329723088514472070895666828045565801066821862430414264133515178695769403712668001242329540941349703036626620128136847841772520668683981653459966794279357800975613939856271681416066547932265297387347442229233875187136898576759891751129203144772567098089144179474370518602156148787511602168425354923279482433469145759905446510521946029354135506331399546334280252842884924341892405126789785487675660197700853145545541809364114837237736413928905345938908688614553108338261116431703758103500541585047476794425482756583144294437558999872451984699612054086985248826285303865850164645722703674248396581975473406078657755326400438424480345884858425000449393529172387398544444126017102253253237796200138777736242732081320498263814812813264652940620074223644800105561612977141993143784543727153124640242690035583736871587406455427632836566463793551936439113983157138706143922499419602404193016824342821085536950297122419102718138563079097236450855269821168327190667408666545243679707032381433670958870404688261353396188042139316280824833939755301228435437442063067457185787082111447464377838510465723867801164336453573057865524878248019580295020668612846526151650773702365527223705512586482208632832968864850239038350791005296080981020631839811394813036497662288917898135156738894197997002604532747558249326013865733169412780077453481285679850503861655031486992040654328088616488319233582755190789178140771161482594148865787050098049459039186639443043483392437613867157075192053425881111319962834243323492829076655111247234563736659574527302606467387691669459803272913586259696880734159900326322399799243641794433212735949063049652654743783766578062629468391804782144259550197081226727700382548028058201217372654606319539268792244241901490148433340576160165618999882384054984273571179144481011461053711508983198659599475792055084721044137479442042186649741706192612532454787987435828790670008812568293427520460832168989860728472755729472666326164904199852955840696950102657957402501379981315813500454400294652752172877997970661197308333792797506163857494345102376067805651510363895946906837705394590099089522290500030741846772186286408795122549806800123010743256170484879311695876750730111099607211884273280188034621861733932022072113598910351660545808637125066589867872325955894113746051254304385440092065392385469752271625185117043434608433810728908944632561882000906608705954039335138528993659191894609902091239403118006672777277049254738960753296281797453784687156770510915804480613801638572988608051247609643733090930814738788222928235094728047146766831232946034361966199138174424529560450223636805422365222146028660120359643314242757805896678132736098403129609637451247106599524552548548874879289723151318119798907258693120455222356844817312596018365830153342949922434734833614024323133134045153895197675062062184769877182831576321383361993953863816181710544616848322134679286628022164899819640972281938152855930898074956369711874006161819441650940435321254484337189466162437868955321255534476547457568526805752212559819841655297782887217369396074770947533447281324181644964250254758306833258781535759749740770299876060906493723272258184420804350014632238387986587398957274782458426972021437625317357423379435171981366311148283483314598090451380036981197710275176528658506426180635324780405201087810842391422288841851312271462876915637327648159317808744482431503950628737475714909832999150220353484298039531376959722220900589538000055373712456984940458027859998265046693502969323734742400761136653062562731515110693508374557010349947738899098561279689682522221912841398855958888389980726406347118635389887311068761179680582838595919206427082815041458300988200831428320943844064850856563489449291765644693964211546014696439364950898874253903538181856326581893401134022642920594779055223930228278696672418918616258676270738619547571556522210964594084927691820731686243795582536486307396129746455508987545680517816314885626970440545247409059159504356228782169901834005145026222999669020919743939232911054803926758962348038592246527349439580795880993738741548906001775462378977076931772278614956445388750305906931561908906882349779272142718605054843386928794226791436824329427400216280311470092323821829885612714014877203668835518670888881394141872541398022051987073577765972028966182972778943259146960896571955359299146926326069399949366133594089576329002942403540725336973460655155722518369277883690550990052082946780503725013445412686807997055129920975566581951928412277765171280258048448744125573287150723676050386473394428040037411906290478038065668830191526484302583455647666821034802159181935411888854136120853639914730468367673161156095566895363739706521425890052590415976173426017993703604977571078884801361314316532915106346339971255217291431672532426507361442273160212150406567581011981916058967978460598293415577005029420936930582548405079179857405582021280565575446781402693734078720151003136045822088388879383063216589001434654410772386306933920691289923923095137522734067242510884854039156150822977569022283524780779617428646021827208363374689580097401204652989601637958843702414713380430933463974550094144834849199538956065210514338472006202379845353758989866394838548676966634448110711266335273055443095374666858479901721720845314260983913478836816731805260521651078754409732065381995290048505408721381707781317657537191663345912913959691874141474824010476950436421865781064946003493166447647235498743590557976305161027686370460995851037431514325070339109903787836639032383713529468268595939825156046417292037144262584199048278308696701042355357442596309874999984361977586422985628876887606334984429811030193503183657109010553401168394810853147192425181939553343737265677305665496970782584952523759156910271774697662025229656284818932092017255138120723540200554048029871175136777326489219497341314213511765981041321313889095620839087163377780328158961882440340165781919002287191150181055847194304625108598656299187550642523724582820317744302147948304692352597005432565384455558920602080023778467755646122344715787693295085729573838518969505556859672299675093964424136324379261874546866899280847418769732089247416054508961304829279520961534598185469692432018594725784727286246471217329728026176463299006420475790486701326468879685742112032445684529258865903383269993918391439928770549797204346830131534599043627245015346338133741764315484713199624148444442461417170333130343691654003663158963705531656927118773701249868741303117405265233425021227780813001874209558204031706095213807133103868341294967487013706024062658135586421462542933206809855553181371268385305396810694445107021255348512580403829213932210039345388967264957270526119540575522321227076339983176199004904323792253274997667343343306470303481450856485897090633596200656924551903673250043657612908209697170807196018975567766427021094824648817292055818458374701842458187289393911413237676419018549041178431112064442955070520218350775381536683013434113324563270455380887088447535958325881601670423529462318445481172256585574480509026699933789393047478937416188794046670697775892342710522006054051804541188391568130907007242267326638573890365252243759462748495183795259459861993461572871048261710593909003841524819559682284013748768381709060777189923390399038584361178810932895537323931360589050422763635998572806757100854252918928312998693765731485448791298428520899405413877568666130103771071493807974567142434237352295783161704410626082015225846013739145086280065507291348704309996612172377119526502991218316582763078271936814749505215452029062069959533281959610557842401531040321640374748424290254939158947335727569474809235336224468849683667290277893904074226848967344802209889205404483478763286411656921588447966744311513411750433039792365057361415663947276438607782276581773331133100902120625427712070332159160590514421130078150691157716182509107952373043646917254203606623202939390824571306174966914299075770836076515136447373761360364651971035295944848955557294702236872848328261962733700755182481143202078827118582938424925202131417196450569854529774378624403101959559980239270407044820667250720382058082045012366773628821292864096847333609470910235007596747618336196712343677661171858466221156847427414653534456529311915678242853000063580533953971091057299905746507024859049244107800481414727080931968894937530348199488448426273297000684650328296258178039138463420714206047052882686463836262675657741736822001023468776151991732978509204074392384985404200909876773846960732493740111600481834863563706273458428817726093165464669678006385528620427182790937579980878585492943568407249467238317086946330279176079802782795747106189319962473941043114006058911049806057957804558711463109177038413179974667442670909441758745250666791618022073133929366715407941843690926155941641841568606369907697364479481991320256458971943120444769646152991798630724264490516693139509321689512690845540391780100212490847156570157101544828125911608546054974989252580884503954509209334453594565125412764368545858380100250547446129791007207845919407962401970990788704949046933313820019756268419851688311844916263810063601078510788520251175383373061416962714945194487963801961105975071913381313292055876984934332904713255225117157374291411335073828346618466928694255778927510789905626258353897747797482709286875344199421899534962806195673582954159332681207569242944115664331801230523872791774931272098521147353877704462547315137113513040713942693302152256881970857444597931880153208292479845153105804638930626936560773298738134784958537493882825357480067704502187657501766545848333776554049281246761623377714982571090179609764563004391171051047689645993064763750178549439380423299772394611061830858936189186904736352735483559515701559809910412234565859896526475306744330582641996336367302739478165098153244315681676545571166931111367930134151356151434562870094699741932338652111128636307664034933742567792674976531270044043662879462271378958738311845135643924410691508794925254669292667327370664912875325393138556946464143509855066186214474256115997244484632220485403012405009425576745001358191474736763654632172016593119900917261727810906524048257762315948400765677989258286287129467844026227665615958990712847289525536678792625158728952678033887930364467891668759694140985974164808088165736209634805221882817387913463202175058171847790074236036885978159319599341407555497169058587959497551731814195844727124795655308162509800927795747551150868407289490916395866091079332446670083293471168739997141631469452793428503807913602764126811448292250966643039838576695325140711737853559043288216065894628705919081803993399096560449927277685030723944445146304966794604899254773166666519871042414257940178911695073138692458923399172186647127113685599347550038538122435508207436162079114424903407608820083483428005006417649737328043016934582555337580355089396359268016624890747641894937609456384457919719391915053312213779617440267380046245205134299713542482435333462909825660393611214116104809905738666218735704133482422462010534130259057984634374269740077928355409870723468125249381593491994374308097912585118025181582053008178929339590845998845099807453200969383212323207751848426853321161684620829238118774265104100438583599265577775043662075188992558050890818904192562448770654640680255999339463351841871439232443038511978402712221113948269504895743226824711781606932475884569775601277098715345772062213654242392606268074924852052774403777907025251851010241563283032397298634065220188890804105073554169948077250508595010326013995907274956876369715334437097355089558938420330268068107792736874668730655138780266183113219822370030747000897679686614675353986218429244090699875535651836780541878055181923073094480203422673483968874114817463870325082938429090302586390998339676598730172857804573717450019531964325937494668260715144675514040828979689816906521296391013159087306480338212950770245622245399005945865630462289453111062809831896141145183802121685401375031049605059990955293393229445070105506691121317086763045014266079531608228221448524645334747605417257016299416731098241574846500322657185004598555995746717691387402840993693730553768345391479215760202605965643806097435352287742867173192216781147195695197151855352810452149554075531110439875718082898222343233314697134220887864110805398430785221731031439419476272541657073859107997304154385545096443998047726880538737018244627604647418606032477800134552783945969198865233035979956470203334917553941529950366759618902011457248751659319400243757922434500480871728646049620893805297304850537955158308140287921348594355942833172895650427547330421501354049347283161783960794561729502702463882249458727577728437306019471891680844448819343979863456721810844074700425708602160363369644771704932628300284003121943080820792778859614142089611018341337099131884331162630311736284027482714215615174650584692836904407445878502208643227822007344421160987461969298992138244433566189291439422299003982375696266464341977571555315027319246402885077198752288331846371717253639891019823865734979201510362192968535175099451104887321484772282907140021441738272019399620028795943943393562258213739405433016644195854762651306792630454019318333301407554155455875586522312630017572289254678893752510064106511936389563858874546052636462139384362833540185505710276123929451268958007144676122428763411624155420156520557434962227799141571977100966746676883314599929126670588102239782541983808354703236132664414574605816054561765721727098049358976194795004978465660121258742947001193413917471739695298990600758132644703834780448150455362854365682942256786979419398323208443123033188948583410407579211371738520648970435219131587664211050577055928265394435161253352602081055447842448999897294520480499249114745578337915567370056444248393695596507869825394559675923215705221497179158711946585843455225950611861124544018697611921324696501283104362326822893080646608402313409038798774987880700214385892851651323610843510152482041825445685892611146200688587971079364548127117414963845354019734089135310570062678410866849978389588235784269562113553207352579409828927001714087386320583325746561363685330556707762665463798546013824103063360826922289039042142661621694609042808261951234214852155684620976141700335435342892982163711843760255378161056807002092172932419820178476796707136188390538619068830813316034946271029101993591187641046011156099628514487512040863647910257949449075356218843836246708689250607357157242584444304004813296058014015186188834631905748452695291474257326582817560302566169589332889879872282096462546613328916174489738054892173659925546659595982923049077256830725239036843160633431727944685291011718854297449534243685843605604512625887393808337977459429522164354021983662802500987625050583862537607521421002511398535730616864371062225367341915845554251866336053294416966347235734946168489339335942644171587666929839272562070334423353695054085938242353152406072596507929684128684609047819999968062704565653430751692583088565277222164587919229261082651495822774601046068664295766664772912888798867811426592276483506640541409107244553419182640649997244794893231327320574107635582820576304178198707347880240898654114100461725455259036396682983978605656542252832667313912912228719705586745045718790550951425350599068285768729287002378640923118123250190483373694098352966196936210903769580689419496791646281987379796403037283140722565084612778451067932977060204465637836758927288629654115034644981453649784853758309743833170541262002167194966192082590828589892278094279078056767064852244286095930711262981009397518584563345276786595743207430553487532223971159103684972986460853945389911729847309475069927715822890227285093149908225533798351245661513959378131394412433473769257808685423188413608812903442135788462869651689829701721820553822366255055081972983708458765803954944927308457083526310846838601619471187419144769344760109463098082027312329068568720832224177179118535730138275207551961796234207422650124340320045792711271211560896595544399549054917966495901379779470968173317477420316730988458373736148869293772515208798071483789233414538344274593514692106613900045734508052043141089076337293769218432005109518556739516159133860017565697123402675959971132551712114595935992951494150463506809227755474799951350967669289786153343233642811758821127590671094319687444203944882902584960076629087644229436060599439683333056924905650061443314065302734315252582001815517081501840111787196530151831620994913734312989912192329400397307200448278681027826230626558072516965613438881258113958659276236981582301115599212986177873473005480482276195269609977867228391853802069291061163339165160484311595835317090739286073429200691928200168441989204317660934954045551403115979982578322800379345239090607032206714971046424514910338325343467106354958404594379257024858659242471608814150738514964531444549038190060810657062503448866034336048926785515321555662581790247529972350379093022669390399155184991339347269508962624735935442986935878964028588225037111028339150090956969925279093595885416870012992584192100437983636131160308108582986242009019119700625811887615643404515377715567185989079805449931056018707481871688958648008625663340893532780085438334103798892547493228625311258777986215897229677589853421672550601318567423080521734610125696265900125697369228074321082735953677686445811869191059171181417195266906644706279408808290284859061477619921725173489327499766732672853655190401160352059788870086897285043355911492476289708383094160333278706544054601862211751695442232106790789800684122495875871172525081918062843304044722936625881245768840834652598423938490257029901404132259804785001253654369148353860070479892369781856034938734485775251221139382564672952243046999674605020540336985466379603853145113768127701892665019808903276915836716778497814860962040756860712739194867917074634826296213005076173679850458074619574336540120678094681533146554972597284051212106636986449676209236770848919482637762569858556947915193484783753566693277633888774250724909060449274808038538744121852234739047555606567138145596450469686416333108985300339053998937635690981087806052463583070764687806011875314748385413774769384989530887238555411791814178466454207639736289237524115351583745076976926095003662023616979948648396945277067472322225930445080138675068330147707688644461722436205474378698028961262164803609231642965019933897112496011135183591322070324286511821516883883076576353632082441567776871540480408267316190958717348949409586881570676283852252996949015677257658392467256533587892511580672539721471678123638709418617499611575144465680625316008318529189024629358458306229928677730937195045783338382268887336867301170655747419232997415661465683162396187546589336248255245296818624183686194397924109288304210141501632901871613194275016260672936058863425319102890033794441534892284383992638639416412905678003164368758196414795356088839080898825410767203656675468551293314582435982274628289380517941701090433024407650238611613328599631818271326930166190846981992085096088433904414034601881253841388816230510511613116605800195765537942656429763237233841330076541983881745498653843514505681894447782927532131368193900080783274295883827699743003993583839978869395260641731778420467603947889307845479531754975372731972484674225687723368045620999928481147389918557890020676074598532277542264450694339913823826809329391129177821876447586868745644029466833697760610047448026644583302735337981953441090625460834029575461410888153714541608117978397783326311886271458535475121337710735713588402322370335298745892275208166230839069516793305326829541731565948529401972993781318663378054038538552512921906956664827104608701753397331926224604906086336050394415699661423610296366857940925532230906676056884665741224379149859729401464160011646738253098956396937819750963199617194975144651502105652379150590057636526362051708524574747651854610225387557968989483815092049844509347178395379926891969178791411524769748971610603929272482698280625420275755762507171333605965236984208820837713986736595283764717519785771184014222629064320233288027649806171336098707887078285186278234420898155288641306675026884725332111396991113891721591688412953877588792590936387191366247566899856051491094135836497380325298811195411514700577929189055214316976949548151409952050326854114870267203461703533682450920587808017895023649787747251978581956559070558623009468192507563787355874374816164652309115771108510223688632714333750844673286789130565622791666025856360103142162586802953784591650769401346581736648686403570921042874486779807894941925311867030340441912519095945849749646809202123036658269568772362601334114477291454345668914160610487536551432101231922094705093244471723333727205652613430695938429390954611549140540677823068474389885355770342158467418898629383933969303759178218980868869887703572524153104632826002910423295735981545201653068060813309742240352294148268634681973836208556125002217615931413395347405061676504775927494860693794258918030020343021820952331991885355236973513413544157225493508620447260525538090911108849254680504653326489213398410153881618230586368599349561077704709625847083903134950246801799466843011391055522904927512574963272853971061043708774263453829417549659531305323384189201316708375780397343108305755816168075760592968034769262492492368929915402038484000834741569154650385295284672669192804768345808957879458500347508331756623256656493713540934641772875836211697254595859511530037825221607038185681360375063079124286263171844656428597177801391000441479229839554714729119515245854697886811035267787075737896408582475244964353341567716526393583834631355232839327908477354213630325506287062677292665607814192087075585699982374788849758363314971809925755207729514447023747226416596419658758058018434966884974236702601570057999637896224585934935269233806194943040327770202467805558126366120390656876907340533768391181638380687837509914064346889985122888489141348000357054904061636979499798910543333333228478367000935625512090886476567292879802308570820209271856188570305164330309455166456863081113175950651469654804719766186118843395828283319099339738428509292449585105474767318714004315608108971015326343486739569547094204674335502102584511220561337768062209302425453272447552530186163533841948149300454238400749010357348542293094654995803268033820118091705138698450630400916711237992987490419274203004500922709603217596241128993412829696544867763456921314214023075274950857870305335045674807139018937742997866748808633031442565687407562292126812464330172971271044187851194026498353684645134747774571948765504883844257305533707996885146420552853415353251718801252932259398222082437523297921928284120542432152708206137647458979877083797483674222244838856720213433883404528954468970491754548027816582748702204323456640787494702205820673747460157565097925604002125772148220072936260284186858893465904449072712381041757667115760061542098201449090733922684594340503773941136210699306025468678648050850940015479455391539915981131693113501653783316966777432883503904951157647630936901976683322735400581593374206168424054233623188213237686800447343613252040938259702824560522668297615447413750612452556706143602283805242799719880970050003873146206800187081609023809147400563821685937463290612070656163208485664238121709147883175214553320973616901888316872057600058199525199900140658879759215838618809890595778030066901122596867261207643748750102698935339964042031705224352497818262720737064896046899057640457422786266458984011943630129958478448044122441875168355163894130984234950853935289972019780141280534755007918711937381563804119147433999287646577200285493896734586261972608522889286381746859967926816376101105842520898282439534815334774042009005516874482788397188937200325619087559768478673674454021811875914073926625185742896775494282413086053656463836918496355285527838986586825979086016398831445020815680751743042875103315624467466607932343501807094191401239390017200182978611670303578605581693010524302871987702842574494143234059759780875846578670448291619320151057640470952210324098841440912913721314121992777976322482655941329876639939055733487315801641453794413267864408945220696265395945600193218305203883305157354267514882826114302144243964114174322188462028697152040189784016827823722876878005925986860626489801665879946208010722926665904496550662098991274782680115081470468400401116847382376582041661209876376264859201199170539004622610029700800572486144088121119043124691992338986498474334483721280554897907497560522839644216416215691339440610068183505659893222442619187227396333429637955327450986301551640377205423776113404685867272043400087329463650375936678270526468586719216387761384715304851374201628849909058674779720192178612865089890968370083318992320797173413699994642604956189093533150777829529820006504144095003313228466410425451068045824336228828249351159622371359374408412754674118958591617377547404003907543648058551893892128729822641814227287845408893716981434565084034930854981346966127284028297873738727739915650673051103769268462281001109631147091845432578190866041830655916633121628994271721207733148459962295137479552215184080590370367975557110965172680582184231158616740513582348549545561064673638093000949055836465408749907798956674933474441793949509303918325820563523872726477203066258658387580265026260544660349931787386389753748779370244260718916093063483979804688203811281028105100299633500010750650922934521816993478700366306092047120318968588697200437701805447081536854964057316568409026332766670720236114569986002094667046957012475308800847922768849505571382666342039432213175100123664769940492907032702628315181647736117470488348435654842804827628212325780537409543152654015599609351355641315140554656501964250720209482957211565535452759649677906239470247349672900993565615467289971144081614781222112285811942242436427178362677980491081737347520463329087248570189124564866765641496415628305529546081369621974394687432027214188371413435863324749552935350689833138171920646336975049469425467625535497306589906357417421451494403784258293968492813580415532224488554298035685443556999290719609743423465602349503365761118830168054603525689171445802389599381446931887393327482212955185896634641713776496875849602757816540640631215857657407837599685382526915750784431952487999070161303755714851614670296174780765497056062498508665618908388274793663584449431155436598164786631604246307114318889269656276151364521872809425276507508231232134874794210439190390605443906073008806893978666445982394063314102460896917416492895808107450309812894594367837469228079153536210383309173975775398926642257151855191665808896978819718540937480434738519180379554242257641113913935935672098596338284774366198975386412142565371995121536476627818801105029100019593994397503743418112709496795030610588716769162916271788445824559647801690395458932797791889325064614099918191691399103196929544351142547605235276813977720859830018260536802302042246710520664026306697758878603311686784950038660088401803975979429935224193453805259945887674216420546287999721083827612972274890011410879309524750804034192876009284591457371598823926010930458861176920854376720210770277499003170532477325616506630615259386191257323701880109668733712466062966083055918633243813575152576284572045043805076156413519356246627996686848961712753048614220252505462898728007787355201391964627765690283272787361063591135248462102306659862141098434846107415642594678894628248795948474593806638506783784936114013652454496469320452198481415305302367067877573366259267644529115142201771531463739783736781584576747639416614883035731770081943736376028603432581816752985941778168890594572146081772700564897963245748041110562380073309837300240133911978670904094827834753792815577310031313774712547558805534960168827695200728490994727396523230380987182548440101041869381184891236572665145619853660410018355120591987592590253912657615040961803007553447409305937549009510108273958768539873599955600260077112766381752895193728632760131199429728508098141912889687585336491693260573577077185608975441578458782015376950544811537831759938059409667819119847860425623591466556385692017889571721148843105158685940580266715541757056810925499442916465131414360992382090007056213116784136980041729143592579824484726555784933909136233363537287342975369974499754486301492241644885279076972737286062933185999632081571596317576054892527056401837956828368639679605210726574752291625173190641167695645177690501741763856418762407004270214535443222249325108314767323496367979398707482719610775244648185997904121721137180896628250434904962582082571208113209776450110690279856865247280070618485262215374421942011722652737838423370701998610267210177012845894228821043761548899419097511169433816927911736406626503858990070042726567211857450198980840908847162423441833326362002204921659955470717208638642397939399619309974523046817562806376392824987170874562070060495727619314630803776322507523252238875130181016314441022011804078296518726954124270438958571707023402483091815322175278127993014064677875896175251514763471482424604761771755622305144441986405703817306562778426722368670558557395247868481655528945559304851399243657919932050307788821014108458047223275751115110609413060889058350829799094325100306590101772185294622837150414602269168462043209350946034338690070401080430301386488220383545072737039543794851552284642555587382521736628705999713616845632541524941755540615782511831561664736009581522103899708329318698301269030380870295654384492266503390224132850149205230283738968584628705617577916237136935328843151395683017220540315566568239680626019921054089008763358015498735176830923456850911251470253463019886481292415899601961690168277713145164102771569103257693606937044883980036694690979885130831500222601222820605867888462669866750788662800074753485318071295396801319285162700276823314291330804619537658260795294619590011928356074689788031990046823538330403963145119786143230329452360214185120384300057567652795022323227949376270472969088992744260817690149202420144212573648151183148197923742222366476867582521108254070064815052270862606855960199724675856109348255449738028262649247099118396648547126913038749354999545386804450515808877664680895816911565760762753928484940003375711909313711158012130227269554895831582381590685752977724959859837864461661625484153117291282638066408999479464958258623706413887527020507253974553338618542685028433934690799987099126911816435594764853645600117781604617033043551352156107874871237423589220450266930605154524669125925681548719365118918597599223345654349354768076076730221491865253889130281250853792489859328244909388336801477788399842894548882426361595118072399464355132088751526025892934841410344727043798196502119415236010610260079271146711071711649668143813113048884115114354497503050312505337962097183394607309078923800768246160650667067011157693019854055634412025026348919038255536277475211717124023243625517291202919254328016316525636652376947856052746728056610563963013734038649302085901704480898812719804417918686059569945299496310516240331585050828255737332372419433584799974200089572401510690094766996006667687590180526355430437457436163080592038889165038749033291227320897130101584273712030822730918309448205429184292556502913745024050387016182480552012253639327155581278426452710341689977950561549750826687153976493195688034391577622790864670552860456576600922388975212792146546328265598620391754296651208776142016638390689189390457804152992427504250383967935621212285710753731085015442236165002685612750636864441021482663641568630596500280523350938937815691135823650651943755999091683081317652066836693362060190138035093494705558019968769415889938147380777605542362728536699924961718223206774357308175911517058217957105800216301365722603641567649444242926368415092223538509936339596801547351998483616182901291286066638028997479390732137485406769217551374734848101033579871872640315233530295679015373005770156333239227270740314924328330439141740488796968984485000690685189480502193349002936959750113427278731589380577956067996248912982020587986129133864825097391524152501265751548074246044959330025070710890681969576151881290234487782294701885667968332056319968326616642465003254638716026464009377372260123415053355541512381192172312661337988652711894967631803053990984212042739284013858326646291873526288644898310761676315567909403628231853232854683724287781913750768887319432804381453557044481795810696172811367852189057031294149392003235491381783499713495485036940550285280707162042893652527422529719866805232731408639737985890660339314601983424933540979669968954568323495190889556927338552695708793701288074684872716581157731112310662882139445968275100998060039181316516184353090268357575313015613440694767492499927735022699607890264384440583961148100508442595195609302089177360754978330518055567901551201724725110532196483764621842236524701041440811883474468841307002721018070340471757855172545907980780819510025988724754921823341283386445580506970899279223783349388357934790280797408466454205908522424106883419702600582966451701564828838657744970846457038713317396358924135672124345836110016379016244758678252704974849946998871132271131858163381962033723789117336090278730094816635342188205566441218228030041709640546897846086624629849501097700924686883235213383654428967666023839259694132541597810581666198130040740940075752027071424159967972108522548087613741319684733836320520755702575803241054885676106763963232902638172916853593915914359882170687707097903597611960555378237379223150699887611056664378386727621326676324428266988940196514907258920078100629472362883233223610797672036895806260317589259107911454803835904654995858491058707170603477542547479296992785731135628922195543232334986455256768136083092277939496834688032614462615153761015868494510540503316995924731419680429842659099209634070903249251706393943225266880568488926428983460697267449097180146187948601040369975564679776005706032406930229841202393967822521588151697281797823221257773798777917008724522463921654134406319359270258281743052860832246196515347750319438714022468234928244147012306131316465648791213755569364955784534681962130735763172135621214354948968359652506484313827604583491436125755833958001164779377534024712621611791974674655879370629710437998231317300441153809738897224487750664614040781266815044541086555698637206293136737852394846434964692606802769625196515410382418042698411370741306799130919134129655237610410594580571941669554369686749477437419053629616010754846925578709739865727021007871445078348206127947208000528987665747457223020091669504507132594670758074738538015664812992554596803037338147802653945696711554267960222770897733190268368676903326757291776745002981428416794899247803876147593957861067575075552719255404519741236803752723318287070201855369571802304139426891747129201064995513400352567780894610598030918426190409848608122116413158160026725430748339013444867621812411833996430902253681877830657374951658841345648938923802583834607216951390253587903337056929484330156304934034508812972961168494811344036186010018208988985570903865319684380585278882761266471705621492427932509944983302764261660771066616711095936241319797051657167059105982159470478937736669035196246625479906610706216125737339151602121921872908238124345420150285111577602894646301363315163988436418996989064506547837147471377609602688945313237199788796085084585253586803143687583620046209304564793521874237203881343402833292643984982784337171665648388891309675970127989450013476829707694696405294066668577885562157845041493772808500471613081089054433187242249897249999084202743478463247031819361658289925505048218466806266186937910250234621473225429926725148580641427425411979193039656845236988193864689637777045860363523449603279476726117002097682192977990053972783300285307687207102826321787913744696900158895551973411355304842448988003717008490399781273130712102343820523712175951390119528879177435909034861617294374101459731253736563303116981254666968977765100075027587380430396093721962382957576390372093738397500959805330686212772161514528081949557508879779086914019143425073908582596452873299039637976687875943139575137730542088236067001409253601420606775908393224736632208601367790400917741907595071443924638812927968018800669079231988709659693256491194216262893217742379382199920721904721895234590811353409207724950436310637338927974676814223266543330888645387099238375957913340754706346597273713234670710824714221567836203788964251900544892961862709966051364357762678498675031736538813616282210689726189155719776784654900183779041808637607256541947710231935467898947112496465014254010938241332063134477381859125366192600637239758031717377199582708667402420345810248522416595896296166523342075845609861195551265339140696265755417737907279008876040181194836460393792572027902529973456631178639066508149503950314003381600925809618771156622011766988587764971326100805943805787435276237440719513790104131995536526350436239758215847703476584091087622342113561929972338221311147913722811816853253914200030786063110382870100175734909871346351814357568518280171637340545530460179392529260999748862731232813316951850188434656680567083601550154700828494550640389467799692474343997965775313835816191101688418422842677648872130327729364893684828864356596183418838286022761302469037656755987980253856773847638419618732652515413064300670424234815615526377860450189441509515144961474656498541110027393762709482102540056159469278230590186892828750934611099784821399422758860412328576952234637279273028875793485323616135053138638539108536106338676175751247191607963286928395262867800274084608388101455741585089316715006514217212710307589928664477468108029156277991928126552884760846665554489312657623268534716448751324402043275307896452625835532087000075597703355738494832537154362515553892568184708095436387381429297291257374171717360812189837690085975652182048652227738078950493609079690512958094013998056380657943166244809834117050163178242199220597679384384924533454540512967984455870660365127801631320078651275382759472074184917190061812073522113329901053622957152590208357919595550913072689716811803455698036288306995555363183682415338410238528268048037755805077786526707463794610676692128246168494729019118965436380677913467797396294338203627994805034173309274084566981877593204859160526563737333889857429299270894474127404380593817866424530001386734944929439140699851440362546861228114426045251739875989722999237945078407874984481280528206961304527105475561622309488095744043704937511928188863972586075332943212140186205485949554165424896938763994296220046129799245728418917829317859181402521351151505533631181974856776956083894884890437396966887899167335009720240376222585748392475651912475453351394946204164964048029714811631776974037536902957799388260492772542236538160353764598518730634129308319061151603351566843003987502999050721411827323971694891777151186851898973182855636685889191952346293545642445818123806299017310518816676603891611679753293341652161675807177671265165524476204510118761952714770594266081431599095603981876165856690770159427939854963190351694387034155963399491701825403006254600672906062925664977489557370478164247996101294796849195954534716253370026780964177682392556677347337661263658158025211258172443008521454946401361812906428423242883108986544202395992343253978184719550986697193585868546152126737917451934281184632656177699679120202427707239134601031296429307329173214601512709365738993605789970289671310997243568826353238141352743417741134966842329262724026580892843602185139704692926980214793119565467901239297254425846750070605990794094534725281098750274905853116266019379940480430823507090831261460861798405030551017350175747448585781879816239278311179628014986833609453964294118899142736961918955394686357869928167464042330509131976631161697935310408266720690855165438539258938174196291522097154545088036159651694229138417112604270739520905249485705195201167731442736781872875921347643638762742895139370856094505658407421631947883037827820590300980150234072800480580603203670031874154121571094091702857966029699136740134455883890686318044598294799214073007935062104438314010663052834369465900175599643162899810261130038602230715320899988610622432404309207668909374865056844710787704757761443435559895577650745282227817719959330846554087564703170212277864327568042783758854261046435176147722654203626037165866767062887016965223681738059181868367820837153352567403636194373396689674380168790301399447194079608317163786669155837767340745039791046164667251339161808469099621034198541735198297607953858834773743727632717977453069798614617445472573969896332091710256053359153341908768464038161287664210336412955939084729635415032441133362352198507004570819530891527534156770501109284308719265903958104225261026583590824619511334826324339175797502544358285471914710828099040140467686080615322652778733096602611309422352264065953690601167236845890118668631649718100637851824345391738227299994629001807171108632857613276725700140215679753176090191048596425097503091935979812451101853885070906613651923323991879514267713555422424775764738413671059393143146823515447455866957963253083723262243012117088548239974993632345260171323798400572845396499536919302467303403397136103145583556523576307835167578314792077414526693046079851299457238008396122778474250454236527056248066918139593022380514944596426041146472803694401141457414095185101883709784574298727435915875992845198575986516943596434122412884612651081039481416327902840886508814934630509578395607968773814628671364774834061936329726209072018219437570379188966582307888912588755844559859855247458720130193973005446005567058414317836765757197178542876963840145269894753727394852874384864772116896643421347033399245968757277294086029279075946868038027980859294076404459698560016237541920439454188909467413759741946298408370445475921149541016189615582061486770711616729310286390459624959455072448342184871419069610074183825647174525178236685858937986284421851891092257897249025751756032437116608555687429087149444977959783103913336286794534289795715704247821419495770573278824316776519672035074794137929452050778072416544095827054779387359966923486336212018258509012154550136046734994842122533048576474825701911310423683039175085464228519956620175130983328375504381038566256783042137923531343942087378311565258372780578559200538848716057318127544196196025685848108170255346499516930720885298989232818670619560515832401611870746983480747076431406828833353063285276737622654706542039312279334048089354900547553585481777686224659775010970123712129419595470207222886120432531430891913383881455010676577971088240483102907232992219702816493723166440860164062964436229533621932834160720125070058400156690249117070606530109344159686388377548184994472894589752780362673925591074147374048544140786872930126395067235645776890450494262577247644219334953368187297732366336472748990469390093781740119409691026157845126986053270055393872989136761674192635080706474199762689534045720328964653873679042047427251600484588782642805332198268289015996120266668081073049841296258313433390908628413511898769106382056014628884554994337351245417926443981748655552331876554786910211234091303639960291270413154703281222771325210271374917872530156434180674841461303243262729103665031304159221391629477011900900786296338622289447170337192568989022445507754575334387905999109771540147965190035931908950186204841980859070837255449129038914009288489210318569474989427176412175058147389841350022112571997617184263819644875680111697256630263308533817836037567904621181799484393006631473483905504574442544194394420508109464623143301180667411670796759773206809096433767217606601632889782973000166191911533561218316571524562691397287596285493327024025182994802985381845021455565956255229108903203862021529512733981124181553298119434719991596422417431381129145382412953340233221217220964154555918172874415021832627857976943420220310937334516092727597109843878782906107322423893818147643626956581160802916593052057622443587803772832110361965056910705868660894044161721258364049626446318569363226224899135130197243410827113064323390304659640079241845366724106664529940768129019612056089974868614856904850375537665578322862763968758049707659717685147793352133792041597569039771737725129761910655150100662815881520777794466733280997416606879150762864021425046049099953876481645417133169585300627581363770543359996154303860573798708210143309441746932931213711321214867028851036956826006602138853744143741202497770611032217280655639749383278071846205148447116569733806703702318516099465332214425304658072432905117541547058831986813444788088621398227351272104354936754760802397053361913934924805092153001036169835232223610429601544717521432871637562255896979149864879472978709228542634762018405884695731771705610309030325936794308390572670881224292779902338206765797235333795522893286522023425352166885540858279612073335824078928099780633957132857862191628192636524749854631281923824707352723692462004893241379707934370359368007517928642800261000932804880933248957686323684943989211113805340007403963013552636593830331590122457356081418314633966242585103550256067035162352176297980408997965326438668060948409673431679642594005673911757535802728843201224737848278560109306058662683915627716154187905481219627949976844171429472218401584229526912044380188559068354660103180224882040496292344170339504763341182779385729631438786950846689465296634213214263892552508304573108723691363227756627073419365999661308135825076884191092720726219525215746848438746342296657741460943239909580280850020913050431353692698528913322240783679218939690631398385903194053909523808562558970953439571538158307225527025737832294518559428327311371256427690729074659529963299712504900943548761955609597379599127464118220791396446873594286417022557773005320705102613387220832043641701024390781897418181077398610075515469696987662228801586379114663654640520357812760797978343475861701679628500869630083090770812501178265965239168011280852463497056496065645919188882196344327851695030335634206345893317910572473173706616950766202613586701649010922951399126613156158397683609193731555111420499349489526924978411621155396733794311923962037983313695290951622739827329715670904983034177893846765626919198490966099393410643066414620851286810443167056879616637917041986960034105735353139471827078063659023575183639783058074642715057803306076867856680650253664535698069169922775801857109913141952095640037298441072853452758998612371202930905245571094206436967701935362714369912405651028193886192989290922692542962955834937239349348455422497141026278507665412406975959874361673477947647768035998420006096567170206067796581193220543833213087513673221951051165214564683398324243729999219568770767956296894864505595664859265442850075218395611731295953052934135606992613617009564873617179928228829814129668772655410649913771706214226468783243750599204043449545498308419007830407049928966173773525227206039568226559698137279342396370815223268808103608173282494696117306553940015193603572576391623525143311408821593695987428478856415325433600160146097712636733375811394026278828864326941332481816754206267902488998358642678859275003484781181705826562634501214633815323020620588937278567377406882399466898814349605699460808586517951880794435536545964504421626017631965426878029716212344457488411642074195693515726848640911835021322649791178465103695241811761089199463998144341707910076260903948059818252138730254894975421284678404688998235508243492246751807648186279200918051498359206048072305890743062022390985417234396595232110646600427580229476114582376664946551212086793797352508041055280366020208097197282181439068864059662289740884770792680047950274527906067304880126054252666552634723732157015035449113942883696634309803813568411472283235692423898226861753777210296171643308047622948233145323076216786298630664320308728401309056430302404583157862505250965463765126843069223268356128011606437945199953291477739375387478929983283706569018507204510399487997594421693103668132543968428759012291323729592750762833260292623397532373771050709260595280540009966350131936757610844224646752680987839298110891495272045004725174741317085700910611468281516418161444412998200900001973216180656669849472451220939423922489399183462274886437542343417681102472199248827915941557517715666522744991451933343521443135895118406755390797412798557193171261960834469352312290574551032128397770389524523358361214403727228257485932734751383418441961523096445716757332480835030483673585450786669121304493528005465883130920634256809907781102617982018684095205192964054279588823962593163252429517567639191606702781235777560946827568645363509775424219331389860330345511670963216454435318296259838550183310068752721259559079653585155727528132572850275783527850871771778657510745850561616897017483199027587642140697106549568633023965371828714750904851417240261759493005948614943940947397624089817150858110546831310004923269862867030908085435297114698070081392379728282847434594768734652317430287353497128311495600731740221539972576947275279528961183970468343971970817604405498734326656484159453742071814154016928785579097398855790564534233986637572733885705394686605935333887149214612874376773308264432019201639546324449907919549292736521776067709140622147605623869856419073447669127845360815168730746233431743428562818165132902582725483687457982451275718930702795167485757623973755411856644206458502707523446175068759896039814712184197866555730379014329861334227337712799963392034947300914703404706047151848156079712836571796709088147183362380303866913437595146615167208261940637866736702510514612758095141127030700827644180381655735805042146119952910845698339295385725813946325840159029194518244419266965978865761020340408702472282734166749931620848479594890892927993942091965576320988040238757281579287569898094296009081469808049423562076630789279577538728461122463410524989282160936691569775311072209039613355177170858416884765077832935406631520431820394115570671581101156591637485984081808144174016097737487675970465503580953518572873146280258297659923935984242768846565470371356381556805979838694043681317825127072704313628433094500609400333576233871264980984166940227514754977438261887115280499365092727996210438107445293721753785008140966800951269383672344681111636046303922373617022877992781772113811715895301093244924639533373615835135128791231048563921426945444260293082380468799463347022829107194643275439547142467126810284354424925595181933801236870830128249436499491156793548511736447675056548782688471230850274845480085983764789395354531078141844364200977610621129131685702760695778280164326251371649942690774242788659399022745494510993323058618010798238320738499550488417971896301077967994498082190010199629443712998169739802487626535601035637336925023533561712733679431172203405992013238460405614364903343055938115456553105101316602391153832072316919295454360792382949692083376306545956291428034861938111938610311363320256906049558935984771441179974483303713640144078195144761604809454971041291109322058496269371268759299292035253321994418074308117688476632406945123499101403503126874254112094604357191363801242895637170644886229759302099862481385493880237816841356401832243006270702065701698577414339778300243925935065352254375543863937839452001652985765148763441695000317595770790986470895609496931145895189021569549279040666258088050749448474225139681568230573813078880537268383876386682275953237771410842343578637041684854577680069479405183359863526922883939555965051847823284997807801486082706116714874027517773006159814651834652535484667713307463843875777267569627776887331803103535571359695123376486407243996141129481909064681759579723601501016075430026026240929396775093487230737579681558418979000711077079077404734390980502128970290020366726066052089764562126725638001936401585970458718773492019924169241957741939753042837021176771572891081826254052163280739585506401255766571143598154277799593461253862102381839704154862252660226885267844361694520560934017920089678125994471402451732151858389200517207053617863360993193275600439297418931832537129930882986562261490651365798735211238198024092551859644267168167666644252141145759545090316209752916290582996255932695333359729644995356112529076379567286118320182484746778270509327612998346507144637294868313568993571295682284354860592711929701529933282175960006976979671541540570639814102893358924418198409159859593916038998644690736437934473582095598285920723331562552099089673364170717160794599520336527887786896852573238716775243868300899880844207847346626102224219456967643928109896852748246800756398140757661131248918055929562984230877171018992266861843427481471964971937606003309051582890953818618035556372652345321271415598183033772483086046250107394995657344726722557647757604488085566716238633183828516834259627588620333805750058261902475929527307106157899438465614947217010068143340075940888785442198587145644546578375234312469659345336496135478924679696428551585770611367298818059275838957358632542860128611432188716538273349499752085015809750157810295813175694003524515470429161240548268160493398658710690857456901237193296778965131765516930843109963745250857115298427727661410198314538045391676457006535304112719475974063759130503645288295995377448927311691783728637395710383282911031043265928204630097528017098083243924247458587420006969931020751540777743110930069177254158391965780718418581982988430324875740038659776731865779789770379464435644451594345530331359210509527965782335463431554674688548817101345204569959131854036980690929410952795572135379205249030625321389321739867617853991071288293117479524591138204149188063535658568307646808995453756864923765649979405957054617919901517224173616993635525250211684414429778037718280717349235214534462186172217619978330583798961423025400636161241722053997843437414969399555340964006671699758768123687884021673215854688571574869537541044373666917235703185751346024722360619602123972423058313957396068972041638720870979696168859761852741234692859977776373375956846732846675217935253482977148951306271092912517008723555354974166007089309012855486214889591751228865969591600790204814594998757817876460045568789409337151954763467524389546872822196355887181690628040293701173434830251503435970763060996964336659516871468016266033751978228636686638168965798021694442872025012018191911413383340931215405966503900895591754055350900904886356570319352838223011655941793090159522792008126985356504187757617600477724225687100014992984830206654313742717142050546161435680552667581868762643640250527128056143946354924560457712778723788651988525265910891503339312387496969733546493401990473578774697250514425263773269890369250953231511814783472177434298697092903722320190626235473725462090606750601204060577706563937682364716252962947093932752596883003836191505695389135631781074624906470241178590318702218448790055410583536262860026059776617292991469117099886391416303947315017556287241866451173177171068327505838024547950633993377857030673379447766850327393108413534895548199193359153339883846328808200287969060038574106183654226575604526595793260159270411748408833599328689234631010457527997580414281754785140135591115364970385144881782906959995768793458107563291267069332700068713772180136852615978997377146889580646171320221248142279471046884519396608693571352130586033116229752531198582757156101029214914232598966489107260574933793585377402126693038987657111919864994326307404523237661539397496506543565977258791914724197428551494814548292090989620352532597389602044002674788462139263568072008995766034542706712424226440771086729619160640074705223270170370598231064529429605432609786069219486640611216776087079602695230570669884506791649926102611252125312877504599197597280542362994533812953099099508321982417937219491748915812292741346811216156012657831533756166519079564085233139431648599180123767633067500873864354427777315966021443696252792905797752414793502380205403106600424801904576392170749175989094078372765320269220555035959824297208010417945651162327608756516274691667345357258152192186685357000184264197634359421925519091862257427045376277815730588458800906916059069920620256770718510573668339999234246779456406302644699637797641895605050016084367468871544931286251147020056520732677499590271872699650713893206496094184886850497533780516070744123549957948375884585267074241173500941215799250405744927818771825752619874450091672983179514218696167204648230770021887681192627530204369850152741880233042383930548964210569468905846500361281421563061414070067162165877012212341372973886718311015747432416221434171631992883870723909788347186308273855166208022182339956878694166454428655153332383482649562860067616549125708917695227345208172292756653670811068247516296928961989045775708674163207654654303295027624238152752624402124135811336296916222122834909852706624104057105609731171600948426285732276832378203956093017549464148485988077956151683819622264019198389960453595864676180368161167469817349258964491236931654368074698628568208939740469169741027807220139729554209163278492555261356267010471157202718126657403957296575444659201913896167921695894659502534552103929076719584767088593194114819417178358834043107149890147028877963242761733548069575489915738344816570761443343614543289294802246957547214188685333804455644682734060244300897763464335411257711939311924976442861081510332558390248803376277112084408251806564618386277816708362108087788294975370508438302525134433642516209099820147031268787673603176163865838422867453004845514701251631794175940511308556715772582918124882148103900332149907292770020627102093302241651483104811304871891897729587471604320252842670649026642077027633367289175815395332453730094495925114724381434166970234423553148112144885908190402468588561777103218753116234475674087281971282505501650267171709448359087700045299305175691034237837711214493042816096356358832473857195881675739036833156605672672892556210520062606702631361009681581806587657831757054118799871862249121816294861876775970387017826972742393706119819303447005887761009095561877273469015414361135306077734278815148414473676772654139170384327852351862891066853629219147274116022669436498558068702804562950069514681576435436244184346421342435959116618286237525888530587035050463833390078750200051282658410151504379138215013892422674764210118435365812215617640045054993436935226579321075348549713904807677351952388552197988781947983031530061537545198162879577897667876810745093270403747940986786899116809816811193653625660651048894187889604181894453356068273550890806378987839081372104424268008391068780092897864798212944658597888196531391268268809851035840200302685453647551928893054599499289781987688410390852226839337585332385602971084919275266029172759458496250360316544333535453124514124055448134901518284279998198289808622589050584546971407475813050761092836474273535489209947918263251302996194847983950685258353366355273425289451875200898028222516739723801194155765379394713063566794838485699863049589627259835921917749651017876247868203644627491545840014958598611939140127567914012818761843872864041320461396763205113299556170687367334733810963267157990058886750543640553036911330750881928845415501896209761351391600628029064236202582525332838711227394629967648667330749771230169265695326914706877504552117287845915018893371995788355416661598873076745546753993271482688667906373827323985364335667508986915919797698284306954397267002895546386385993194164800001122188785814418749259008115892658367366256489414612497080754377117474681940699893153324302722977412933855545667602510649653314938595338571440921414249747087175689773632158634208121881100506000089846240148582565816412801309374655252295784841005229269540520894907433866432416903073620088076895964178183134844332336634118780353573132752229994214938826838960501514090446407428634691338351236156017516938732590189668839563708817719258449727295589952943849000599850611027981067664942694952202828097824480128101488721688256014576127820503197745274267039835480327749124528633858243966624211292747243934658058507401483191347299891378361478813495860893237464078787761674062811124836863717484010516234166954181984429360488879105610682475470568336280417373266429919872287351150531624002850544383222153534645809403941924922048433111945783707782147603191608002365495522626546833282790395423772402191078859231109450311565134721620258193065864771499127967981798592040973482673867578846352865425425136604565285409516023629216130456099047307144200348423336138490411008838719923139122872098671640374382767264413420309647008071171517047827685531561513242232651483312042149522919319134239700866190634902225311228014308296994796869389194220926742750601357176470008610156558599169574331840549389943579680541403117621076502623501168310069038496887131341917233513021331325947975908630055146127067602575392966171015040265427832711112302773523011675582773596997151750122951637567057967328480842468955279961332958364076354628888792266902155416754605549620533243282474070480956567963788457218562129173941663737586965988935159001175515247027612668873750291367814311870635574559749368268969429705160010564575161089269601760228412846372100039355625617930380837619364008444434078399982726420259902911883920908898963063549702996856381206006384846207983975018303784260137867129836268948388479955937998816838615753423910293667063765500825338081845399242059135928482893231750234407741523564047701419243341392035759182942397121147651393408804624366383071079041622666335718173898233631210564760474290653731530782767117794488116725492187309427990498975695155962082295638636074104215142269109444484055748680470129640749430549918882101059098126006485568969951482689392118628498336197949548416270691189680410044500972604250718044848732204390245453431098902844928122991622727782695719703259169009449328193774055627704967997836183327854161921951010181455379794375630284371264026546437095955239541356668375924196488983629421533948279987259410462812293967230688162749798403669744603578097512470744537797566459339767363051940323034791635593799140863409692902542073572717904038532376402159588866110209142867950470805839302012826178658028611719692842243239453614035068935420861887743263527694692145542541669025923126209869929996514787596615420155837038265551457661294886735461595196900143572156843160844350005365344640639175699531132357646087845846952117806481028095911033789754682556446288632899009408003383379108208552647916574706968973486138485815396542610386041039092085153690688473025834612385040820689396290363542130192231989986216654198913602048106619684158395105898776092347125597014511394015112014136008770290897299657391049526922611046451639303411946581454428060751675870176756465678634006562460160601390097842195984818566134637688491421487172408178491738874152461828045708959611577203760437093166171018584259046751341212812497901775989793379979827075867214091494450099358967462713915715694759924149033473512938715370931556918088070358241911532242018235397460371695547552944579050633584451942738556651288203046676933552391937288282664133302190763237566034136003684742460931793767592585921076889789369754576186796040959462020638862951424487033912129432964979401625862406358219473760842607193931183159451535383970916593324327670293047769643484333791722924057806021163520403018988756174827566488909143898622215324090329304229060605671579106787977817478607594082718331866012626389664534357416877743096781362876071115492124727368745653135717681326009158434278941301306822781217365052660474295659774552307321647742762742939934391012001125619401396555949086433698199182415130867835764669992653767374452500732638745245851864324807959078391407867996645710680154823043764710357851462634172647689247128013019953380695828927451148408688713839790851906058381935371601253823383982685894852471782131547051008373003070754358176419307017970185797489407899797120579665277815162749234928460192811126772141797904602146109816280112725881545414629343913856303720708729940219121416921843813031326507396962041940311523361205630675689927254295113150058667641076368441496689097747712640254311782691413579672896918499264981232048111186833855140524397205128072783578988496388656395356188747321893123336103875039234735353301376370701736291178904948148722443623737239071864119812101534237792544220658965832971877136744997586902620193138655526046659197206074362288771889206061371927597258732154139359120531899974330010487488072731767524493854534110471705135987780875472974125730066461084486080827629354374033521014565037108591393635604598408202671449092703917389933735766586761233622690116657714851426511279442073482048675123270151573688169653674092512031315419256648474875544322513827323706072936097100584923944908270335733052543405203980371178093863933874823017891535214839018818039300598425068969270945540585163419301162731591711886376869040553470478082809383705446057434543954783491290905471691524005896703963284164453628018795390715269296743609261850111940338910347559214096356676171695255598644286399840116939867598629239558630845273067545128740216128883919380072446419789939064163046909417685801805201738183704169626396615242053758824334623514046061446207259521812536029137228182515851998542919711032267370918391021480281988335549495063126975138172697320969232182042697831491423901720142616217061855611213174497321676066342493682761706157778469113027579763783275965913851557690420712873150364549728092443534382973394625545017029099178478869610867550810703461189182223645928666899801018638636112400081720258386929110122731178747703323556476098581896226447121674524804058135734410435669807467725264859310081151539299875072584812895436284914445294888301337258346891224529340211167210484098723282339819995832609104491625190999751617497224079888541201385719281765927667072484653796173730429582558804709487169068989392135950327483010244547173371635785373310025573358700229854815940212911146308997773053525414867593381375089646287115483545020034514163755460320872459660031068942552950000299908870171542775483286527001293740465496913629019166044787597225144551788756138986036584247984980074642445268330989628449780822643117151373032055318190878117766622912420561865146809031602849483137649298040768692848188986705387916609551673800538618774844166514169055577464192948520814801587992988452537767076314774508182187921171187482994664432137446435383874192253703735765163718366956123306328538072875251330753934027006655095207957318788993850819754439312551329057655537629093513803165719775724428878351667669817465397589965023373487561644461702538695661647929848668294262032604068510874228842998739497966221588332507673660552697082189482466626651479502805074987566757851332272552158791984524887249443642699237211723267088108559915591633432597736698714298415979266365854169025458242240417110349973653947363308538858768130861382220121663006236546429834895865496851061978383850918319091501665100461307646161800261047150469624201509474368393853188987913486408737587535847203310877677467315870688732824149048259156414602568346955317361611340100443611427018690972934892091778817082460244327051044658030633269838991410024060712855400906219894736397456617451526089343361520703528654085063014641245483566451652833354425696738866849880604478898489996510206639540534199991885855220953139583952654697231284915585089087128570313090136393156348247879871643044452604020320667537230109877631937315936260906757825257969580334172221572163711233318263724877422716932709251421319013256116080702159536047478556624463786543871891561236276306319230053734570313097764797135500267485437069024322719120416324379668772626157864950243384058547311174589972617309811899814260533512575808063039169842272162084726329534658886837245985185812509572565350995383307234262933507144833486031246119432260870068392609135216261759005269411437907353150551057305971152184090244913714153126740789801505424843227899912200883545005463408149126596566599967539185739962424473762427623473252508699937498341248861302321795520128816726311035156664826258480731042837134842248172938257167536007838682259794210127205906655394149761170573718993979558771939641383153179629360088999040070449104271051173120351133544587556990638553097166890270613469301375130810193675319260533420930765080249966328334574994702947237364051580434037506855518232336200420358759607841815573790023567038055435232965672897615506248181744317339859454150237315347896940927466860782459862634544281552225004385325876920124819917072633828952498189747395309415461896488659150718045145519050396270520723370871778472294740393162197841266092914248193208061539526207865046237340808974131316682904781258342590133186959828652757162598544190491856483739546846180114421048913098358515528813523999799899262840067075107523008554162855759728600303270581858102754647138390753862948589989611982647417677597997748943708148184036955325158963108464110071440948977404642836413823113048333203184774412854542431059841064884436398297749445350964824350215924889297301380999737221923242143048661294086262318006141433218737315747541447023367019590010761307502073038858434252412212200238031920056437610641054962714592910219863010911266790810615991387313776944203955110055888226740635339927510054849412589309232323936093747368335472175660620973761433000250002048249415586929738274573423398539511158859864750149099834537642178361102566003853341425672070252734262560008194826071722851931476534174698986223406611169360725315625173842802372662274329284204366085661966272104625646313660286458463364468713200494937503919977950116904023178969088748559956350156119757479771775779678502996475554408092570766874529042915525287466075895245244962575663685697160987347819215788563081342815055148614701095384681078592186365704908340424833086793792126650235966395248418596739575977167378118396434784605669123961996878257533002149632877174640081533238932414014137131633411686280499355994333401290697567855643473653489402100790419779314333667972038076978658900421457677288739711964652194755842658004068399619690932637571631655083517793827893931910383733950640831766738519761955989596834058397652884608972934898597995284955311665004029935603073352140156642896741942970218240849834153599445829590304682137639381381067697535969228462064658557507590141165598922954300382591310914687826572658657263576084477780450132917906125967627178402378311635992030229146048616695780632002203021197359055539556570223108366803426638065556700526853673185485335470690679803874450848671332879800167644180975672299622367134326187844685953925050930354696394077114263298708140253065370668502546647942376157433396250595114280680964961067359668462336114736982038627289927911833253705886055742910337890302162743967319389338867751346298665929381862641461284162848052124099148394732966016885108908329645008304634675473633161612748001387696894556233449409616255555697575568084945547023183669295308833661426633825047066018648848502931888494257459031579469852731054462695962543998483173044584642194511456947629715197157870577530056523497530013821709409048133726688144651374030503726564423489536338483671788027078387379173373688524471921428304876901026712420187570301106949507425215493588057625270431151362939906552447612122184179009510969816662858309733226585872378797444028322262278913145312607038970398564872556334890820590367086337526454402440787267896246874197782093992544627386450959907413868807910413152989829439438519181001631195257759618805517710127990726303213953782290134799245798765717328226430555334529074976203100198138833176176224599478592988074945045667559153360478738215273395914764346206520995921695495045992111410341764725243351492445737470676878433254295463722834356544040875813821807685398352073043374685708523334263271135898737116666385828017823918339399209051166808141302262476641175686861906070603944908530059136020602682851625331876457856610517185766624200004135189352508841530187098361073540801139381371464017624444461241874003947360511368623634724745767720523946398843458076589392481540540673013692706150772970589432042946609110783629841688063528030115577420596404229269104489286774934839042264679039551221755366743351670764274730611186680949850241685243116705618389997539596208490797443074041998942192631843999190842806672676908763787144939941971071316927549069676061932718276984103747481791816462193006376717014448405247483273713725878018236083897256422395727676319121612257263923300319360993565104758859169188930171774767371926148051055470548372587247331814756099353391891445141706327403049129679147288247440676600031197438694392369571269603053905108096277012964324427956970780136300681388091513815461700556600740804451205805487020860080676321876989837917810792412434567701129459693311315189552764704673426750770301259587354967703774949784015167452400989590025934939812645049469638581841266479205243005443056976295727275533832737824243197082329317641458541781642109510686423719908082438498604330450610293591554321789872679749659425272303683084221746751594574640732767536818251325435165514340779174447218516257298962234098671428339023769842597627833420681617096667115877759985335840980390572740455475485583955821476980124278284761972847532619601348305585357620732402477964060775580226402143603618533640193601147735119417525886601345769752963189513910533159223686897960862224105404221393185614610604421904172952107824621872839938449127076527773672522511216188990328243533642165928404109630426068642457737519938177850024850160777929249423542009295349173391031042347050981304155264063027166008287124326108831173411744979913270799557005223158352777516710787124266207067834677379995330592835782946786556223680387807513009989158247798961999861115609171937894226087047644059309603572045209934703366767334266801454467098590007616191871460771692971271005546955466699443738258611477608699877395584893923194154457098387822110642285083637575931079660191674208275115301317821463625843099471157144511621836464039065286710547690724958965288944139450248639300270271601774732114449756587099229924362852362140106429001197944237233614331954531012450182754309849195335364532597151190319866163830942005604996387698059756117789841950805760764218609434054448873154183438620647539381720064539512927138256655805068847899570613592016575988280039542890391651502396455847593190814473193056822544392184879581038310769074809809924347937721971801872020899764029443615504550899098371619716453206939070966846664365637022032559222634457805749136539180431557339152666214716528134548638066472125402811462807759033737800153312456412836222740276197202287591173118804597112724100525247584591438902010511071144703890824091528324901752533198437080048743095731889856292696336794862435986013021891804029039555234253737316049145755212566467766225586734343761274591647490779543105402872263768442805762991433712476977846698595653933700443290506859901386986459611825287067722067291221560206089316085531779391703490503723829367403159279270712253783494003461438147307970543106648703868340284013260481278808993200181252779606888213031886509720241740555684054008327530917663963651176857940375777122620287263326615126955356390102768148547634272799149451990941988591789497108197322784920051928788478941975426434418244030679395946378394122851840688452003356433451524545684595679110500161971970648732120645414618055093125096554682213733046077639770979559507632789816113565913330461953248072827228342928333755254785758178618475697303716269079240641159593728781513298741405098662430919106373462000677216954965283812310612310689712112785173448647461459978803967441902017985809278231448684524736272670979472957021106542027106250598021217269109154084863076824579474734309004647434980541042549809913574589609065756548618095374677914723697811520048549705534931489202515529780297559072574168129074796214687853832383087768244555294761368601052144972193930494238150525897099199500374669510848639559793500530185129943077098293916034561204397987602257533901417636485785129536955223514601218327856942897183237441688140173844809271942134162920915576993668907694736931129227213836639514047932940467048110139844649498614489362889490819349987720915140140702931823914742963170332635531301135226201446485265038790951921868033348993041073780945340255068701078252670843977739929762190699693576613528638115522463076255262276717092218220692666512487335745185311030822256088786820981308331575702614567593272544867818242766870532385583633202561904105554668200746432412975671781086470418356206693494228584183176628627533996783138138526490923466698055119689655296900800260001237967392252038341748914421751948699023597732601902882468587235788564710709258097572169592961149699923599639322206151664010019627602169144333042000675951319991071850071535902472888367497618689631498934728667693723028673627913505404206884229888190473101126231556853082818550740792427425030976313213639529321878398760736993232582873557410713738226024716256150636980605343124332785572143316608512386530067726789325909858663729311595209910758085624507980335279120916983081267486053483135112474093107879022213291318956649401341459366051315708842967777723640139160161331000521976442813488772940793925159376151558691648880957645557657109921392696172847342428293210472801032510569939877221184959356628379521202387060805724628704018693470603317503990872953625291073786076628494986166368032691682247991767342100657454241965055817037747735975416510675133251294423373653417076271755188429041122781769959117009060615093553556045729206235349152543347288237183753572135140063692410655300973721014735854930314298886778968562237874582414284742796028902425074908128542375718854422893120650362308663416970609322148230726715819176088852452882346074623693217463086974735833331368104228041455276315382711025012301900794566102820640416616616686648664159569823054463030857103233424718498510127335195076664414781085009159207682869297701529274320009533049118807612805842427381884310437491877916103063594403161809423120979277432452087782556165425149186278610876436730682422374729576085198061856947203193863121649702787835872360645200757307856510200368213216639211022034688291318161639527198792723173757111352269503225974134730088383232995566329763071145257876642350811225843031215141973495698047847801130487423157920615376739637407115954466142807981476353060892581437847264333466484944336059723391777211137334833633327111414764450052344140437840165814526594629559156819624156621125916963928648406828839393442894760434712555439999134281131951950777651971097543753881554754692167002695260232385332986284503440180702702313015329128620538807155782054313125564605207142404722620410409816898481063400995849162063078842553689158975722911337935323503689158855799813804782716224287548775024130629647834274066801610438218900984489448947845543563233404937397630341915905730543946466537830163075213558625964472989109715611452688010704428693225922837737342703888867094448008633856772421436290543726044436343190427271601326618816085285882937496240464231065963135149582165132407657859205996812816667101703664546027197456436955251094971353733936073228504088056228700194035673117824951211783921948496153762527494558753373529373001972784414985471883646050223434276309651898783066833053736634594388031341073130441025420458945761193403040655969209420018350941493843592664797796036674679068790334876342856115550934146149645839517463020096767944811904515975317074628655822672422353622009554055263866739936251778932159711222034713768527387231445786713646274673947387342772058488414569177039410799367820536923235249138854854702525359165584966257260347704441678290151028768258796044068679452763570406134985576572484035223063434231611013439161509486048474055285000692790881395642667766907748011891957382486913465146527044844455965698460441980865615464518243379350881400838330059665286274790087478125682040015027480725108573236596603744535454784046673850799818225240030108951966608003398281643639006071031955896764460940791687096758533076684389802628466884425666131392059394106502949162793320978317316796769413294878403062407527142112659712221377282458840292204865391533132002940195644356934432841697021941358607969461509045873815022070469656281499352734965923417208625639399960412263796085765708513529805774660731175561429675249488091805228925616740107895475974919631534581285015643438565446821066968136800243029537937032766049374709316564029289196404951200528212150107823309717374488568984036564124603978358253087597587810500564293658520368770803788603370982520356842935006156172977616397773966404645945783006345933305494024416751031714829397731131501502667688741296364602325093530509158987726156076009327666910782808599224106140493218418112016507015617337898389364693008850733441618466990910007259755765117886281764204176778318092820379061568274448888955941795634719539281457258579108813364659403519495198768402674634743919462605877983537707540571588808726406157255773951833677281772431662577242704644093202409134528513592434608915365522460288290926755372772165287030768879189916747982500223653237286941891057706974569146721819887936405868471577685289589745698187762373606310034109854118409444243905236798013869041377703367391898620769438467147750957937637392290659475154506265037780570941196215302118298067603594909918310083840781645821212001773154740526064753060017094607679761494736282933762097553181348973159438263974249117212705760606881735139030325584931189265943749234124829558361011361571434172731738468152375159308251895016361394530422572600682945732525283748833319172011775611801216530204038477796473597332548834914235982802579398472790302379638306884529963690708689950888294188372886306257772887794764400851017691735116808502536989879038838513756749943055069625193094169531835004211706936324923900519884972380517370580783436974476697499460485767845099260951061605510605027835309740318011303463636542158577556241971961940060577073727533140928730763732036927071992361401368034792524876006658861283074516265873607586952024357544043887082000066715854126867007812297120226876731944846837251212312191456697720900083669301432802953944719505315172149700658866118382667137120105867754792313974376682615846164385577379905613057241603451249356387950136591173933664459438325085587947804609209720055198704131942489321869658101147414070242013365707975371446477219131330076310981905465787121631370813756684924536042511376560881060090861184421509851328625560516693028907577999442868163911597418307587857102321645586847673618519898375784887568985688001481171605435573551905366818948820987211594065930409010022864339118777963400654437257703438636928090840567751872257062503094522154328049953450950153776836371838751793025270774070627191155993225256201886871404431525809620947185021968860909928097310727016772261035427706125466024834319951211110735205126486118805409286735278013706056111680393059632693284576158667235211679911519806399166530524290845335815217956917554129187307441555332817896190953782084591008819376725481741816783391990078094873723234932161863438502853688893267703074386288431399537126733692204124410817820357072050422502446388227211722226071855629764165792882903707431007592144524464271866795900298805938144258345212071673742515655025966641085732575713016252868759157016305684165139400801698387456677812902939463334599675375118480164381093568559001048396036979135485859090968666473665575852659868624896870909013098825657295589026268837844710541591630801361809158315963305135923899775732435430013896744031236718583490502020065812755320520101303883368243730107909209521622145637935309968886898485275525484137792223877546207049539306713476472843604665856805039896571326344195979417427010607185388798991167235012494187451516801299538909082357501059080484536220898651439369698784178207430716538334440542295573141748350551417471221866990747581338177920534393357480816572649947875474260445601151515504040856267662363700893965272646045087413503894392898443122813121345217009965563676046048217081452206485193593431290305632029549443469185499428440696437044096428389495851363531710386793119028005032180877470379407229525710177225564416056357484509356163337725062925071482435849350301045469277813893947292729235191063453058866362707588027176391773751534695373793731930692941085495283783679901425171359300501468109472769219143968098921132735511431670277547860013453299301779180548558895033592776673152342626688079540008618886664395500784946892931164742326666279566124091023561199825820630322072325047802639973009059938051234667175723511759549239672417021051588031615097158900209588203467459052507190900114167344611413795383784962159167074559847362626231392852867259768529032105320105739914134375185389559493549150547578160010336943350377062997321978395231829871532843896355446118004341671006365703924153508519626004265807748910437316952392934465074097204714662972307720685705928687525536138719237732976980849840742898615435961769195090900897491727817596510138649153053327501687547214675237689674060223372866065284905898639837167872603141614967131124723756715902831269714645459375120777192184589624576977731188954051812652190009622101345218733841532483589697222736069796813998361564770663458864205448657879422655888282061440606425119814687383210195037254586433828341308610628557660530289049960676354514183206733282379397810367331823832518840339258193916772878939920035083811528529835058579548875203500932038734954101148287899747896559328222041327650838597992875022816323930370869375335288957780672053902323919957468571318257347985346521867590636436894296538674248980234676732832565449865987083652045421425885023771792217249460178727723440086300635706213900244115763313019746419765146194742854380532021435419351736409434706397932956609287058874442733224274115924181516361030620932982951781075838794758049916293045692429380800007947126301968742265174686662322504923388026257592455943440099934681574728495308662650182690629296286604415634648072144606901352909698754287883764506009779332788751646361408539244702001521026467285285788107496940360643861979869067989260797794134062569182117774874521535191911729589584502269094632528364872567108228431867360481043114075697971887010001426704396996698370555214281630835617306222075656305298779822839525318442633418587690874377457712595751994973098183273664344637264517626500076589693626989266635472677897890910000479452795975490904636973543221122717766731196172162245180219429486998698678722739143466583966733179230426337055599633004685808860079235140702181741429614996880460409743387550502987207753285367928248490413324468067940868248774028786408161098205371815973740237276197656806744865258984955734128076757208323661300993752012371401307878740312991739456178295264097967674240083739789029281916440642935501039043961447078879069432499701897304377089306335696554077192314817594581964235564087962463486019728967573196865274168330566007130930783081790025587758842545075225310555791519599336039007135098434683818352348209121479397756048360978368183020982154386574218113125254026183112412456018122784388338360252775359747489179185947307860832733158507144754751688925694862390821928127217764322160101089414643791198280342738796004414568739662824531552842150114398512822804435244653722509280107893953466077071377463570949406661721067516499748783286916647618121320778079981415372080907834575727591873628699916512619485855079737001656111206127008560401424393190088066679027890645590044494469277946414804197492816880206868198598748006469960296484419035543753118342921385934316288783068076901042896312621179189051680078210782098264172474223235839520444203051070719060983349192817925023874728985489705019488229582423913710156962875225316715426448561799997540656795158080527932213297311460567354641783743820889077732351478713296025611597321231241476287905553109352610312848726662512885541170232088915605367596665441594707234399515940539366101696148605882751807358002451697899945653403413310777770499164415334495607213251634677659063499124842036725888530546830005605837536519094495558218794682434366285536355893227901354873575919374264689327686565607556631385548674505444198343459724276143051672164697815619266164919990021238931872917768144193218919373431463815258084797056842606483984308550065426812071646153029371860099915642669691879369320583450850144260212320574080072155297087670273058264827327091295227268730360005999465283352795200868987748478042183904021024927486051775368445922759840104956890576110974703143966444170278257710793233211947895011462262883588850509359300034537973685629945294653102240503509952151754886971495710355923153304308800323695010446792404909009056570096632180264654120217190999827721245513993933553572490228795810994272881241218962964396518371269896374056317429543867659267618285072991229861764274478728738960671019681181560109947767801915382424913293515385209670857651737051587733952127373849299090862124481641753171153867285185197465787214740211216101575168578889445496895631768341826981489498916815359216015988841746577813716578461431928227378535355812612801375823023311468833266242074872382238708602650750402155167914868843348706557393589846075826091853129752137550630769062287486279725939567708319634896356402932603369489294481739233092629862036387699904082516898539751610595169410795389842990584511370695204735535813139626633001945425342141369012747150984872027236098755559203861422761737166155583547595099427900160689559147011710452718040161057350044274326808787086395033856073994464472020657383544321668540357944084623948659233839135056153281143974752585962869695246558840747376604320433057056446662041491730280495923203631673298651155851098465579464755243694328568741065683774411230857072179995457485030049023339268810407130193888711951252095395816139541948101705557856187716839060906306575466193457249936699326447403461733425916057596072911222593846307945627234401946785254815743807030921869360142139058567471575014431788897635981079507972101664358298020392476956037314219815234331415592600071173205273263451944800014772434446383377009187869459544932141133890500474542092489373416980161807981883213786349775145719413038148366219145777789915115023641520326274088769425977210710367272695608647210601843119786910698737720852902183487844847580402140455965067415770380775415172426680238206820194658848555923235956387687051886837219658576479289207408344332987415650525158831367823675774897715649501317014348239518960997882983160124506135170187007234468400770017694234201978914242692672382736800149434943655208983402466307153105514175655316954690753261217428680302168519554172034035967583241202453017662939595566466060840389649040063045116725012691846193906153507357483199593548704326041014121093806930907252801155267071599946519271718071170734186237853922323235593014017030462021364438153844507671551586963127653634356976486006949020369244735783216925151665115357880820083351516199008258189328582714836766259207255565350720093922617525268383522980146045074840352899862455623971604228879632941566064972671473932752034955083229712849369592082668310774741771031203071545850253688691338182054475152444303360660068948991714305233950449065759750158308959693281044902628563862603064470141274088937207552818276437508905269410266862431598284019620199104694568209842412612235117302412190864415756176630734148109160614018512837530970552663454030757710696360834217712877035675680516705507241275122063648716300122199487639473137609007744860552159644092176080736749801448558252505015732908735123250537487151014195853233190809024692366790765350813439578054099673713944579062572587868804560455469473351982933746186097166518848980260889389734363920360678789614751478409920456111143351973868975666694440006408109931083218711324886182754248079164933542157545397336957560265359069816664481251651655257167697570877679464863574618068305075886935981867839341111860605525129780905472927765642166347264630667741279711845545254594550058780029901012707553034165565808927865203375856529986282903536657443774864275656939862862930988396293301842967361399888479838507157571377820122393119139908588853454806034137783245271631892647939385826449111349598880501120840059744788482171286124460819781130263423880536204353275231492546493944511684980400387007339099139661466469606809755921595458517416810208731374009323427648666775995554025460889566830456625965500480124132570373250244419876193056262304254736424084405453138075544137586608210339774990830061411178066630567033924966848491556254760646563172752295264903531953404982908550572725151436959715379008379611758647302155821384615240834581726079987250738482224321606342831072308452852825289166887292921891567393248916878001624684363129734512073358244537909477942309232883412419978554950119257018705236456989116345917385468893055829784390490925491311345526576851130092312015647583592538196571250052654573219102252524893241554415887353098824633354399573587392912278242220237184659483803205426847092772747852109444299572749816267666636888199973656440883198003084728236440915349553626628622038774668695644908584068611672838517948244584784966029956646255624507283744472867257240146944983930023229196065079787670454586607656552352390928005569692892959814711301764535758184857842568073314211567458836753301180560579317840782613788234381745891430368154599746908198460036816137064648326367663471524414638596449400060664302717224762266946911301524438524523696212221949200624215751958296528269172644796126410034585970315574382829791210144294453295845808042253777173690876071779278466494005075672752473057272968971588958327864329323005828883107364262321598112896957866386791544040285325509646172128762701489531913129929807589079738023987716927130661500198330829919501788611081576998350902471347791649259723572738014929672221901972222293100553996341354673255607394685497692387936613110618805748168569182238764602268794596607398803171497174841018269601062652826308785038522241409566666720102706176727497387108479771723921393547628735648459557147967122387475814224896980751476425321021027778923814560136214847800354624696233082901050656905005918889458520346982885736955891112368047034097482309322764321476391449423152134265135579404266184484951957457994547826817946300834664699335008765166858166166577765487506861040037400500934675137202086101980422187417510807119415180955789786339062833365124762329535439154613477834179905695754088271690613805438910733715053750698295607134165506383448037390953243127919812234929415107822977409941065040159981088160730656321014930988836240545632300258051560438720543350984187396057568583640801532741727018973286709682366036675306511619667559884391711317833048236953776854649042326626867016844369491819260056006428943594220891327730471824511474506775839038940263514833702850746096854749587222276242042030854133733590579863498874387636398754982761247523549060461904803913321762045346790405029258396772433620338958924236716635958424203521330491046250072371782146628317147956629958798817123814479108877146862070855729688594921148614462957170349165712729075002599185332561288848942260129738175149915029992476222517028399934099605749652579514537002022085627786240213623144649682396789147918934377570978026978332493473716119082460944679925269672265892349718546268412476989291848749572113217400811005486681790645544730870582367707588908187763356955358875276762543417689214760137702013609549332422963429333665660055432169193840538497985903800541591830460256317203207189308515657134378744819082376294157105177691208156150618630264298790923333822342256484318532807203277768109893321445357678233363567035105915190525310102466917311049624604913555545232044920243168263333908462127514105813551208462051287436303052860373359735802944986921826513129282738327766570324685771369391415762602046805892529796387493491559531605082287767626391302559971112899716743698369453113039050046904523017981640463449468212115340783483784855787194794541816720539163604554558848415376199163311979962443476441079324242498485511392817693167135264755971733836326030532054168032517453677926997562817684103342796439522828738100205008035818230842739026067304438371432469661118071098184376707022569461816815358820569143298158699626732971184000812483731159339325915860937074842152614364588409516210430379283389529498645659755139201654623241615843917853287356341096181226032541029224509036943035615424411336181235461579307793906250822289744983228200505361778505738123100661137848604906408813544759726989532190697289247246031873914820628175279580832450147158242839977922649897480698588222913385731730969364784492808373139442102466799955361556409388953743251673007032920598064126275211555173717220651710779817544210640906811326816105875622179817538358307025932801572806383051557723878495402701295594963636535028378658161906812208320256696917190954403104038457957844195658546703381936587000132614465971158949595452333207520114011948046770983014415951014875164506572954937832216375958800494731817674498768640444330200660137140772172626768700012650483520944570157747396763527608732811298804324095966886616147934737758375100627995857324964385341455736884769948831071008112009985433652976072735102169644100580433697335784422015626651232770679378314354875613446875776493516503960384815069264484454724836271004632005500635752754978453278961937988805325039939471442143766501678669862211106599350872812658749902663537599071815985945117842653060648635325226771999535084539971650994114173730024284466572592293667064040760779393978780404564458858621271576088444048531883395670621643868208938461109754147750756733623508460459936509710175579347212220716493573263089997021777693661735566986854790232972287427773232799360162633207684673267226058308822073353144455340497547068807888614150572161414857692568256042448325993662701269774907939714251893287061967825252606844803731008758441115651496606021995350260483479057601600947651601108841599978482187415107506570318575915075226236755943835636598766792537923750575187331061017730454063602656720537081809312619821099465035377254929840792354171179509915290340524115346971437817513191601527293482165136406687132229026772167260692413577242079587557239669278967457252643940784654852263515142515937267107761849526293110080242801185206193579397816540420483273626698451828514443169687462511331066706654958650356937761187471485907336451668323400760636776178609768015232635639750962278266841722622341612138791012028042497597974109153444597830422172862278431779303074043321836876804867454805214281346506239019545163544664552091474027898305289037586995610232162549622989504331173984724588408334384510476623627539711996949192060143483980907189489256307904815433400865931331027846388012787425626547360192332979326229127056647794420102442247934742319629114498822696959996834409192524135121850142870737487894122944404696907903227071434663074088579576237381135355769223219808087120497395899320091570541166439241252202992276243698596617636126356666686071949738874836758597952852116514162282129638974513293237358455432992725042718938713038769645291855957747447942112689586698142950112878272736064854996350352328851614879432018162147905796127575164293681736309412852053807059168950242805613319456358709378315233755443069533968533009008213071387363737386288621922810393234522369280774865483025814881637927734948562152526426295748543212458212420602073893435542748609259061744939541595125594178815323654716223432663970017387472015641342200492479334468678783052865045346785773571821993682342231722110786382595828777621097886189668679861399232470355125622817290349264645655353331919556654443787278621387646261237652072471760236665258772787842306112601095114052921105452427725515976205947475421983191209094245342141274081631223962318315004338956547382938846919450797072156760575764116621088745829356172541193088382996302447324386282895464252849148074169578375435016157085486860978988605126029668935742145016628314949743339408910269096950062786947675284528661450748594243327600651644437727368592682912797247300240725967195787146170370156415844168178016441248463280973885351053383797808173018388756210934484909607638899166893333637270900520319628193749118839751872782750380747662763248649992480023545102585651055433958233401737078757335332495345727889514721457612835167666291401709343511447998411010919317980798395281715561048273808465733954630183008524141066161273151715874351722301463055656776537721731624860930404997444604669034326056742304847663987252318614859125835669944978006249507589080808375778995253887367079334412798446332097391772195238354914723494292984778955225962975173857339268236032072793397012319997448999480364023803865337109763031174836919272256207213917448715325080263160061864037530301984130393707133934643215179198940429804987135970192449041957097963121536812687952815262753475179120758346737123778246400094205014756913416412972903125365748583128326872037177045492902329338166030224892990473647115349882931135152183784521045338832773769057135708762843859559407391332347618062595861521167081363576021392589151974117368334090973761920726132534619721935557345925973169568071739851347522214093851211741482711871669100291286705192964274816244540636597334663678026191738679296944019831485049234465380595902190028397569835956959425054410515582480080223123859682666120522682962864825026277535751815145053691424707128561716661172463165045616968323818492448089261245604565253130637167231292523515987405123318116321761721860674488264040130126205219647257535974815952060007381411654819627119436459662466742882655920426569112991691680150717764311707229081856458638277497523306041014918337123015810385792234339233403982848222332085362645908292516803674464229000062065471271862445835925963811867692402063551798225003463085817283477744417686145523348151910465057126940357677536241976433884817841293978292648080841838496863369805790601781674912380180796566520925119201984006859938295707656108815772236534884060637585195604567780022037291520813864217023328982701283932370068485186354874492607639187505648265614533471162290618986495183135952128199492362526334255738368950645722274435838979291012568318167799588146240486939044690901320511086341399954920308152491981181267327720445505874065705803942433296196738407304170294186246158442782850273786456822618950318861948493767534422983578029016689314487189908558657985446445060623503107578997250106086619335510739334400619179457627520680794733521121742399047129782933659795104206434344308843844320299563751177327254431136653226940923951587082319878708975839851746142199448371682503749087313162788666555897402009180399305919663298352124597667403297198882570142787828947239414643405018000505836969929468844906403789427117088800476147261338078219848996246424543831998881545484186161701547639387973174396686725544705854820591157455657510410238198368665237623797397711213309184087623571627932276806448200493281439961651285111462700793663068162371270801533742978765291562842625203646892457385101851989510424158895221809895420589874057381576338562888561843099670950215797907392584210059257854567624475671368316440901470269244884796186637753411934243381623222059851639744772070151073848794764314833809788725466609222842356178988096835927445065437271886290126440570080405503216273058105011026229566435618152935068405062918335663408972264265925343895491166337426824591321465087777087226275966606233635181504405931985570041167643429147452338542669713220170092904857102659785938256946678398818989793247117634601607039755230624416124929356316284353014088940829003542528376892970456078819136814180636152580813956864421146430643312442638675948303464402026559964703131144536450568424654698994130604699668061727285552398645146721435011521383087612855044162131330107621043111494577392564208245243855387238810386915316298420517222474361945001455341374460815872398861405654083559350207623147117202769507271197408162536668838647364981911492809703508713245913618277366646119668572366595756765445164501158819396003714722938880786555531805841356703990142344653946980758916435629045978807039722092303934260901215591260332248781779233712285279409323861772109672165798868172569100555017996299804009222984021511653712679842202681066433726485291518518354032530840963780812235962567042144951388945559479169883877036628986629131029125713868554227635623150265002015957107617922382528398048049202927714049304609615958816790228797656185889097234499619691518859885972292097494570934946758098136043929455853811789106873386976439606526809146176413673467981670691681531457095665704128425204269879221371151367785626453388321854668417309291736652710553714355352973869680951227429766970476136391841487755533132768823835521701110100012119460989771840856303671697035636032991461305542920533501024182004062441210320537584589803503058138117114082132897695324339413730429177979237052592465232870433886569338810159240794508670944016944055369872796665112407974857627545489632546472840452840481141956073772422584397005512538905037837741431089296895528296432777393968571841173041140283095618420422111889901481700501330070301938071399696804894628226891604162159463158023784276114281273820197870705137460748000537210356039473613141393473335741269422774571616995528059173791060606238687737058354129154275361757085914848322824725217104466944641195534722036836858391107932984680436702467882807478915297279940536162039888414604202158175656796833966092778362540278246237915094470359297492406118866288172333044320338079257361841140322826662772697627129053694581298453898620439594386400736314778096592824888214957235712982620710736068897617110521779869383797583157257851926007347691053338376064787528855230845459655152175056078748416648633690604875680315235694775295418276622893327650809279407249014678000784913319614162239592201374535996572137291404865826563541989551769753246436374279208241161380460138784186399663340792117535995778300098577889112510822134102110770467734300348956431753697116485730502284152767040514336631518465113069077332848667238746016651192791317578288797234764662977674882688445966006912155922104346504961935753307907335481037222915987003616030429282778706067501458560965793154267432891947696185348469030808927700398888071810073723383257221411266830098463761532840430994724181730328049322841701993756277684771250834867797315796403923610365663230622030948254278318083801932701233585707209258879679321652952914572926193023807435647428658767487573948521865577449543718847581054313660668085230716783418633795918068826766490398773610447740798793585887007945460935272067307444358638260814071421733640859654534423174519920700690426254815161433625143211507261237773092576877077134475552498267270333444530148078826631960822440357207363200398477115516062265751376754737629703956250747424901608081779026502925046586809626099937008606189937803197573309959257721214220536729151172515696403647033011572833128253169977859985965782363646050730883703082944275527802196075468381329257775460768694190384920211636901154256568502938367245226239301388405858351107207158072710732995523338519339298206682699844826157013348135140775547721515891782662711999393570977864344190457796798242989602888722400399358587796193590071815358867680400187958725023860343138302763982492773450992902933007162083025695870956430664567740075128401292361507893569034458011024962514869470233723056963085614797529387346348793246276227634070426174719321419261452241897551055964779687363980403588195250089276012349865366627036930177096766703269151898403832117642337463550918944749157702135296816886251009265496218092037732098776306666866189605615209501024516009221117459995246220169424943887972315832462932208729891688323602539394852022044166468219955284072229339410919570671617221690944001956269463376587963070170745938356962283462229691444105426105013303362248176062725791054019846006165355936430930049502552140561575235116971233182702919306378521439809576919024298116289105634815681355704139121176413907987787008473809295234269916632087984071758212981134687064596395718021915375074356013332012584730448086154558731622639310071416727020075875512264177833783383504912209898188508064309515955991067089704335466281678444898270346401277272741699884011052481483527427652184995625192965913561159782172086727930065637990450984540053675468750717955674563318712295096457440792320763426918095972570343935149243880135500700452309924660168708183321764523465317986195586749046469641621606539330170010717541117324603621398319058887098533891534274896589509423260523842635221985200407616455114096647091679503688882078310077457290491864384936165846247191555017019093805594938925592160738703714856781651228199540785627054375714243493289169181308513618770384592397358303616474305022351948039571681503859418721810402859508654689479346264225162120403144864218744590970457724132911063502120260688898889776680838602093114373511474531930720357619877627092435339877018254274382340487319968064164583902357264078569867082788737611409996290626559137070952802607478126791115297026576848836465381421730280214164032270151846529253602531239707185427964799174170424333621580884567856099177137164202352082170382708214547515989663036826155928659929431247582468490279749444574198558831769753658602715372548390474347030652442329508532409922134186249277129058260558140214870673795782429962168413877458328567775650878029379182022825931428690076997822184607374574824680835025936243707775858445001413610878332248594566020932585095246885592287647354885457749700351050211324798842297871444629407283621233339599357778372831668922100301864903444302206765788077757217039799564962605360854719319166232987567511617584125077845036021275789121195978319979573174002947225670283398191727382049841735089494417623754199979334048051959170416599249362583361789187217918599726920781116068148938650417623011538156617171612351266267304157891905113323320481781153038090990769709998434347191875404199834696357403941248844945043512681233541500781939411300949298480724805372879817611886341842781428051537809813615900429800982444796149801837408470643182393419452868830428068176299699071712990672173097162896648827513990024476276262529027535616915143924242460845739964019024969366911464179235935980245470983109091174152929197281991197371473139246791922651143610343046158074657071753950207771954707478173815740782107376129014538514700796450188090309588874671867979523884399482636906603365948387702616607890832845748309283969858542991333924503748455789943103574761693931164166371357476333576214282002575660111000451535097715807742940285174418699319040596764002764731162989777044733933910492137670295585143855963116726499874078727440665762316470260108082012104352419544388884321454635420508103385871684735800330569368548959093112998632974850306937177646711320100053907727717182434850896105228342504778528580297156521589717433797695761615961767909721548981631976500740821583747046593025358584632552603593759867348493153636072659751531461644023845719897814283208653656527925899954930874069753727475945671187797411282082568192751370091849526063124530623265874581438748458623719319361854749574640699949041598310406264670626024669502932892746752084541604053170446633444791415485425562797255190320922291610749742666506828112838570262112854636206407633829956041354209227175606516653068091059650087279870200212673179940052297475301072342233245913931353799233664358492391859233516457715135893033627347151221016507575784288409116017540723349108210589491766406294867209742744343446311078406470545601758484614559450037270589257895512019965597228679244621510204239992864081139670230751525839439276500822695059171429087053911666945549321375031635920977928073962576809426254601552897993655554327196876772953762567320151250524214845038654332880764619171731183961434953787060918300300635350478518045051531351054598596651801787645495843414148656192667676690106205964005162597297953933927875351938750111514759802214057182685361939470466852739714884804609878070333951693347565082312893277198243592808038372639338788883016796762854963428696231827244513158834606616582420692587116694173637977742736287989542693386084703870353017793768790673618967605286275640124234919534115736648974178319447660936625083219952049355456107884364357746589022368158990084328532675191474659066183748153330964852181774043381544831153191222682015103309495388761510115223757651888164321248621166304912195683932742448728031663306032069915469968236747760201581766481408469788954126719313981610917567953887914607077486921213248142169305570580774728179517404557131975819570626911900653885447439773098455375727561373228861984846416494468359185056551265846915778846767202890120234958360485657508776045898069587929162991770039637369063505723583970909775723760785774648112780543573461001062480519360173403172426359470098941111402278999683303809582083666105729861053661360586052276900697584155998024170881315356754738147674936023696265887309843464641995173222869925979642995881741937540364735804031430930205563897101378171543892827191236100287422336178355647572541227520662306613856176462583971486309943662216160062909118820534331576095578117305596146814278494847122531089559290285719815687104634283457703290933206225115549308176944789179111250383015761364428326043933248206987825044056037270713849888880749041042072515187568672208319971502145493810070027154008503028731077819239889741139437684815938335352827218567081023837929992288523098546072555012770760675734934017878662247275916711765821083438970058184598219519624879384963004863413535362271592603404251252126697815464876791590982227267581364106742931098566502477716878327148492056023803246281890522106724937256763002407961561302489045666074704108297511108393603797404880100865521093138631523532112007091437787863995275638725995276002495984123618643806610609665065777969937245432665563901997856413216756049549741501521247068050687588911379604867534712978015222887967295672143789663892753880296999549810518127696031433433013184559462962207326113456147462719175833404579986338659701159081108190099311858692918489199587889299690559224040410689784126975964690041753861440974645609281622133381404939867916273165222326433076116736642236945201490124568469805585068718720700391543380490038467622416589558135705956558185107989262984500468346873391305114269652302115165789181678714278985077596261275553768750142071452733954240063471278069163360062655269112625136914886573350394721539213926501754158094942205045327098341540596797191175814029535785875361597505305319635166291378649605038410884787611902267613204625056894880747566562117633257734094815599525716801042782635904055816541472689660493568088043767315783939656122562227268377750178449634709964787351661855035979206022293616507021680120862627015806948559493389215968311968079839417038508348133728887069407060999360312265079328133753308519932932627539156416602521202479456190751028540354294216335071806748910618701171789484062265070512998612914362219102623206652575529197127996097959986918878189892523860887428127588692122163334594414412318809679988860672748249227657338775880612284450694268160945556565836876714630129702018841670904187861366950269388430688925290790122844507824936730598639020462430089671876851628148220578685598057791117822108165290949353143471139840713939684295070455882322582868318327823514048870302176113934939933789180067179670980816831884522247023195583913152856051182650753299512488774322009074461481051977897314916594781780343139486091427733553474294515849362223005736104561566902453914915999557769888922218420131230829836340413580225027749666551988979513462988326839738822194055023668701551436646184904409650090118617515359289158040748029267063462937396738293675369093628690637206961282784825523590095059506008527980394959230154906056209596406128368264182932440866976216059429813585746853812574929438970863722567094753571614504487719758174805204975194298187728216736238909516789577860734028812110083986469852656418919896179191429370772502626308364617561180159164196604894360626877870760946658484688550705933798529119246406810972036276871813000373573395077869146963218547366458777840673693303339277543615947797836779471872264957121420032723870480938538726427419720696274828824137186748426336191091840768843938244297319381796140151795023370806585238097918745019295974665037544768377645173403030788541561119428371336929764704218645814919080393878448571851361973002273637706123437135936611388616450376048128195181633522197770141750682995646593928835568712460389452246249382528077627895896868560273217132229187435939648069594581923630507227968513762793288201971630095085191561826476105686503158213758155644484726284864947111840662172919015234141145984239562607119307988152678123244538084771117595906442093727908616783358417621796454266067547798474964002875885623904592904336582395384977107411389366090428733477663832155677039818362369107961185490467904085624621557842633510293041774581089071560696950687940833042449690338758520663803635948610287605151078863415658803302773689662078577690054606607137063456477767899784875836031525806386694302055031316062653417431468086365328999697241719377997371111208293376576073241096043686782439079490095171848544473587435968906078146542708873524025176285937881993784169142500023639625621669936479285580015819974941594214979987433995665016117170272053616941665822365546265431989680874950420124901797868048479683226049405448023165114733995244654544726616963616406645951396599266467017602508698743245241925253201850402361883984883537069293501733744309282679397713953367167089942814619368412716896287301942548589970195477735380916257437900941771346110101974423971060516579712136498793891035941798672642791612329517245800077108851132154058821676204175535821084970160658400451877573699817510004521275571995082834475162930766801957765270835142212490059514677444255402646235946588382152826383013133837395894501159640718677127972390489443210269263911365130824854304571696587431697026581178641445856470711359609105810801634650930807720670164855548683270363704723475714057292104533160980870830722723140498147050411532198774610267770596685636876529798774677581589472390628971474092693022816456125383543167813487432475354736842485524368121309158893267190629227903925849381627478331627770224744701370639447910334312959686159285291682582312623512940939127925624217410416679826304793080665028856156226489441106001774169171905400025405203929291063016133746013249109731517881878280753745686177117946652966402005388205464174984693621749025325414468987744897574469534186275918524618396836170939659824216644555855698440545629866295268737365300434398430354158249887677163802370460138635362879394515416027757840960317591389233819655874064455312906888852088360617996233016210612645132755583496604711404412346911421520710122690648917017423044629451157299492865471146958545752384173217618964970692069419209315520450718569871270614950593752220105383850852733238023322253925605012731918066762432521210224496478265856144020781669739364015975938184264268733266271081439250711850147298864442091525971823592975997420058135403264652738378061624431767008246652623799285907305578620478184404048488303712965302958625602776788058638395344284928083401899110585509615226665439938833220477832977783251282981128615272368847988941270137924566082603231341777264840016245091530058215042834003055851862677294796282040350750405564366812037255384979039634803780379740546504161650259079537869677633861781637571050936069105788447037779977607946313429351702277094945584860215818444590268626331221830092187036354427009730120349739636410272465886727830541749216698596211058147834900856636091722491571462476849713325924069101625326227962783849948629812630319435515070990099059773601041942214559515658586928905322939333740102267227673503563723232566700503796989524127631466785982346117941286551105889621960521288361626328378795737384087616655488216578390466512094495523224335019009283627558585254830000866868284382575255014523344045936609164280608914028182914862645939447266299745697892757411739457129355862660118148566361286452932304949964544338824698972539780829277081829824856423112598599281856723802249023069787497982066495976945995431360189268540592994701744151757648413063764486949153518190191543498741832122349508339449910420252245405539761501697684715694732598394569608286147428436209463628489608733267026929213473857438693987565669979881922512399099741353749447157706463223686884353074845506639022304216422684948470736398357797705929687483588823229648793166058424572581926577259554425809927858797549216881767138657505161278676423229751968610395190391111309016448994882111679849039326704049664555542571621901836014558234072833914551921987210043267458945834974606797963024674447115087282687397254045490959618039529032592259754523495810342991760589390667539081039701505651828304173676275640952540073109018525470051053242342481928397998241350797711527968316515910872203945529885992932540090376447154424984502687696684592875686687311408433217524182907821336138923830095614909477311499814901259205804736166041320078151814238083261267446566582488475840141654905062189613870034952981542912392201457724114110772299840289184186958613546681603543303320423492202981893163942473238686731165460753827971201193402054757588456878186520507137766162682310540488527733003499147792689638684619707259873148937692008238787018299007355398474337889324548549908504165836454317783020564755331516687287792841558344683712292457744040425576477647137201831026185508748925916310596358706962145992506490082287941503467433011469646645228881990191694351202177193860211831477443655632961969220837560807581269563416659487247917662493682245996250184128666600355091586456435184577431380773504438248475720804558603771324545903788598571850470613411933750476238931846170060473718101828575673286509562723955426864470467060225680105935140711604382775873895200165916698219246566632511174189643723833019927878653502828589842382412414291002831318466317254023950372435918795998143252353899376133878005818529588652839979365444586241093083128554016020307933707971024568848235779199358884507547764173268498376034859284241639194834798404546903153192799575783216196281056156475927965787090659006799583619882574532600693083400776000734637676865880471558521276817900642236383521370822397169535556208911625053482369649473528548666887068819136590944680708908452788666713013746731695656546941615365899558637694409885868034018539278658572531659550171700578912044675280397475463614688240028792915719880898944602859813547756898632014721617378397840266653992506064624393693285982970808925334543947313680311328483950797709755164228219573242179245227191631067797841181321282601464016614170084313603438888463650902338027217426704443297413282601850867653924591439780407537575027244075877071484207999783463700725153140589729572097023599185850984715335224509168266445519704881134196831008634656519470205084421055315940857615214889075846472258383664285667921348798382823646840324052817238863098884326226894556289919640902747542767194688866618686007208994863723970969148155867132831818753567829408898100461769013961558881711664954495955249188396012235015949892128505962704535886235008560704629369153048681374457425232729699953289195709534974903888512370595391816473826290742098725210201856744068407438975613529227114905193373058531334029283155244661685577114412545812771433188298539133412555069436757450630478507362411669120102305735942693983982361082398935951455291994359857704669064250742806884503008357819779044252945870089193061473671741245083979295095495709297155161214572235616081265462158014624340495310643062704431989852325110250937315291140739477881499231454866844590183437781037793415024122012720591290984413209104889900306023972626888994330254725669325987067949285469469558729919437573975894570346692462172807018152094769421367417102146621344853754926336138762597239105221771940993529605360667072130070795002761738106659065066390055942356973410790480042439592710578196151205626640858250931727780061155017556789488650792353100251886585246130518360798397543924733345409410728712197493564604318936232084424201680387127583353092409052355757390027438991194304610369431475159614335796946851483361191673111965611934635511234423047325242509609180248719674989048978297560405525174013206773974888790014729178594262792624963943545788980380985994479954661801168582262027250570883555935057735912069781132094453377271812712900288086780709114418514121457326888057533449331425236650083510999241612596749322619722348320811527281792600144859188799712421445271563873568689705476545396935408164932351694227692489305682204660432862321705673782975742560725111358120673809977357203835961505361689665648257659780765598277273898806191159259717410436016822192641700733547460587355980384900839327708482186398740229436616735180984636703195341934707663172529288631236755711200788942908039342698519908714896355789411039541659246418932078231119913147278146792203908480964655575136978585445589799567587987521491466527524034604564002131372498749872624122327210515116730402129366360687450009582710935690379715895574303968352654513582387901508074709136436217061240368383656454287053170575069181542923681193235651818570172219212522917124482493846643348870505931142208404335249374898748024297305366206672400046086208462404384518743013923959282743609345191737876004309889297061998867420732831593852731032816526932247323859893901285121933100805380030203869189880115564184732100485303391123838058863904865965834712415640351248267221063765940290668926562277799003666096213592645619674720721233845313178957164873300928480636584055779503910160364960548599530140091948956854581118352125931281212614321861874854397988319285457097677477301503349211997710455149461235191851645383081535969431479821673119879774023837418998352084954434043624618532054153247448209455462501682403842161161632437226082871563043668710641843546734855097155016518247079020462318623891262866792150277914994772884087885006313597358097106235707771222427025227824253657656672258024173880680061506240811169313021627760518266708954035768810057402295864416717953651444337658286102259672772229642040101039085120825452045531116824289233263628598676703154815960006994054655369876683512925024566150181018829634640055166630087272010869876687636136882033103768309090985822113410328998219353804927115854923728542940134795467510024060990635398266553962765579364894221573400919069974203413076281870579200668453502689914356400614171804993831556474376292478315560875410560266514785712976914735475401064365840714980893203160218605583870156571877816539962342544094516033887844872833670265611266001328800063468100101353852139673088156718415483863545140664554232091082201716672064319401467813706985819252371518659808665158527982141832666384180322189741812121002979254399853157782756132394203619011024842877312426494912705489603654432654834974862674421241711907237683649363376972000628775415257177542514589869116209708668084670712768989551997473058218343510484995447117967429618992594514500940467276922673174946443798091172081653395367823771211251407635151541629385515148332797145898528130233943610786008354108267495928365197606514620297897220534806882404985433056920726159127755535693939299503543691459930343154192335317042563991384948726653993562246952827451974457026123374632541401317605649613340371794936050368339111459080688986890418866350148149355398704374185906333632951473893704381759800433783032417732485119619252525857688474730936401527909197503979820224958937723037377613879346298710809958861660256722250105336214376715104404811072350604088259556446154271433482308421337050513309010119557589838503218553489888246071755616108368417100291420839196749695510991580464514572828541119794825207748873274203110571128599884815311540809611541789185221895603950434257857822260084015561216653502927296581783987075752580400147553510603330800322400106927171332737121444741921832470109556875161600219857039078196360418843261500082373829121997198971512877620067696049313511983207008543169327295504973323927857890027914676030899409315494018774064087882270692925351685918624611862694613455321624800446929057616406924368704498525085351020180916370853526860983970388441300618447190075178748845809798398827381099363898867665325143771938951994618871130386717294777604830235054657363668468529522213269905212671993063442526975389422417089154562911460683833899193906523093304432179917956202831724091567000978269024358830771075635144559526289319634709412485120977965967291396805162453771447628833461613633504427196933334875982612740220223351979428363331642902779791592673508374321127399189227865969095867688758851951540214029341322282011677026665416897361642536346137793529041162264352186630912168592947644085857169851630437254314316160689203094876519147660554347822739271774185099208929376780374576013455260337340663956713980378004510477172149245267574611526339236242963108834376951923837882344778338651531827919956291852338440771678496216726037285525220109526966891455429041806534116273288523129556503607687496885057290180413079838182215980523376187612813825935195830311774048348317940945195778289234565531972638538900234788469006539574711222753818619547806523846892024241756728476477922346662736981538413041059059651236107058128556417020871834689409195109603028991909915697770183856025110541548631677380231901552357898014683741659043515995654951915007387391256513756763490811114261087900691484614514968485613214990003323158518612298435906282086984067404271160081254784027800082830311943550180593975954138464314666662898319900019491334464185531082746221632151235873701411353571051011847762101281876771924694827157098530487780804783200988784122455914136624928918043106356144187361695063061400170101281853735525190336094476796658219334933546773708920468425911127636261129341425176713432514087258948110593773270536214262830881275253542358055749278548876916672055819209610693202477628727703248175969534678939039000790049806981095303541085925100537846554816268128725935724680988472131793390931945935574384103655949561040062110602640952124096748120564121453010265428593585088383059558462951380963622113525733160535750082746604041577668084370200044707637497742958940650330757602749140554188521545435823060487432637397130587641392158580596908065287182706086073592229298914240329737410244640644460498515836173143915310082984248483498807665354484137220114530329407484972252685828923974169646139654490150381303993666137852796220279938613645376096517308526828755972369654340519581242329233964143934661227828506063957957956834840441225440190675293597411022233981021948241438769365086612223660200612505267576759000901989049992061591271836700682315432993006106993933750409457247800175207675777610186802587400898124402991939075171808412933623134030707027065288088718353058407847774315335270253215990326377676552876686590667718706624681084907325917810525610128938847495874258292939688841941488269517212373176889203053285992102630304856698643750228159905342187342454851419547905654825233498473576521108619959501031353991955018926877045137192022569618314321518600496955561351871736682633296321465687906590847880254695345573290941362505110163912476379267605172214578260614248423869439232975316501246771350196212150492776549897306837341068740043876284726165139082413267022995007163128414486293490945682192329098032764780241108812410527317388630382944752562692089020776755827054654924316535474547277177042066352503155575069167758698225953051253621774133871199215289960220342126930170873772126179092831724128209768355979121771413596679530190081385544014154441989621106854656150624089168167514690794451851364766237764978016735449954894404637722231589616518042518422134955803356846159669739868070354941931766571598537215627125184353684769869734870485914021032669704183085654677604823051065696699273303053469645425551856771992918484511911499710211076925192781635704634085802600824127166624714198708918891944775541207898598906509972670531396273379236025889307947971487454092725580894229538978012761621033028094162509458791678673992075785295886956520775384008049746950594922136416517314685905640118809687917312124070379960114055734034057571976031001115778904866235209918713740205509667144355007964667606218664748815465932281311416817867380971067279841326879345662786681659151067371322490648282001054115498036062237796074224060102361693490101590234594399754298776481663972737816767704078749352659506125639761034195215854000926533519871429010742830449052415471907230290903231038696874580592915060445249333547478351932503364098407637075605399474054168392692124413585657481549415426914051927088345625134200959984490906330925847121454378169837898178103971047626504184779924870023060114364737888603971089249248997739075960370332874740980532303730332296804921008831350827491116832597688681828925998656570527363613973701894069623101309123611751130019891098667279249794753585246873179184509225920431265959609418909917642543333458324500190564279934838549907133873598276433405026189482409960322945472217835614710300109709249799442861583628444398544002539809502006228561187927757328985317754101063522014905619219806132625206302648399707725672444047478284987241602833022848126150293430633753388306394358825488942871476429519033585244720221280887979782650850415839242317405211169951115576122641249781152395812206175375761096795152119592861382261862354980158199123412534570064308286416954978647498430442739168808532529045631939900781026097468791648044069571879720312059730317375876702331318572790531880141615570140827986188951971351277695692515483008965725200493034148003102839049671149325010384929533121310899598916666166488930709036493372874692914677363055244126730875548580159458925268236584265225543766587610142478434816689423296083792351689643489196799653420645218346617977083427551646242827615654534194566436857747734142666708483951933323589345301656966869815642747726210320997393908566956649490976317043785633784641450534545318323249083568461600560442453160531298124517330394503367940055454539749906186139945654597150279601792378868185883297907722451376307189774782603054497545203957330239505511635183241392725046607742617294137655150876662387849369448745055378777577529224406771852742219845699116337721774928586837032603205387139425426911580690476440641772908702582601328809688413869954203865811506956687496204464936504096993831346031210270056234940912979497849186533283300714081488940797772055291951829209547959869665581167904643900456426950498586698697115878369246647568547645265374676177182622422991780164997896165213664459595077146376872868856748517457699193154382580990814208972294870907914555275461094732235341711488105758995926175172320707245470816522957228152691886857827510753810752091184668511466742128803403929422715877260187451946844378059836245999040741633678877486954588042990200014990897356590797974541832284034928480515577862422600964095512349089437482420481759451556067538368951066157760076823332146219502965518675077049740385875409588549361286583198150014807022361918657803000199001652626708843996733206108452962950651269224996803139503425887111081594865268793625634456757012518495097579103558436527227518133564142210259846125867878775423189006168451358223187683185574066756395780407911306743514247146747659563658616870432007425063544061381782308748303255976425655015131131471569257533576515152861584946554853282506268593584990786045636954872596588328560671692272016548875317209462626182531801532545422986231714852705333208115340807022807663038161040802595880162611795333539029429971420298875838306474750269564312098824532507599008394500969200177644680812497184602545380103312002354551639345218103539566390063355969628961493637166229626150782866965570191950385324514898530883137438134496712414402023780497408214865884948713178037133131997612519942117867891640174741020873306450866406860639577354667609765830583111803151681671440201739219311363477266920345457597442026417604705320891210597654404057909298989513659521771916007669772661151378955432870377581818007697121732281011244124253018761391049413837129256240260641712703115891814886854037917622228862130491865303225622325554310460348708388785396397164722401169754548068900932478065970172266787830917465889267410339669729418857355900503716588364149545818250501345604970045799143534709684135272558812283055623359753366709828732249857423922047071086259500359978463184054777537127122408706337023201682497226570516849278485864312540774680781180957582181813334296062929197101156883970499109048908000938415459038047312735525088937974610089490654962062706555877223323202092494250640502549049324787074447250792116536094171130250655713746187923961685839689160901653382348369196114234640488877722751485562178359069078141497710420237877222387291540943824761907082494004945949390192427279293721163104858462239708832260802204220496672502313370684105588071147973462456392757553216451489096946019171828742025379451625375949403762054718690063947428090825464963897959929457355417377601025742514098190472037450889293552743666088581777319899092199518930809708475855813536628617506430040093462872226748841091744439355123596917744643921405833286358245259294779953510016214878335307771784368793097574417306302577651534574498729999221047979689774098489559063081356876995615961393590452086542216399787159445401852585484761176765082171069343072719240951289083279447748242024745954102336813128027199079477055240556443010544291698765463143247774630092579138447878006227467446941161140285421969383811851912692284718973361227648180294191965012138502652991463475277199172807195476528360924354439855145959790198353841252125697904696861392913161738103166930900297244566033779478302952235336456429679266496411226860022796692533566705530126703030074202384775145754525838020862854095642214797327367931692982782733556867362199062672947500979813250156655368438114994722835466548369861495869894198936877787366819101259586209701434414559208094697017004808499779813246562271524342346922429162384716803776618741344562079503224847624302242031011111841213855496779233950475890372683770845981865470543349160899480936708258695226862146829530763425441775691965806584508369442331022908721880938064661201302504132543394369531294603466145185797353707417860119325191663665382205682962207344408886699689368601262115961425318443205337698408417042658630368540425916174263700610403213118320510838584876724176365971562473474939188813194780657830478067107452988076934999160548351743557238625681562146917301541424335062321912399438593874223642613364482215367571459795272494546552667366924176989077478698132255975883800268171450931986038711595764691147897905867118684721799773748567083203213678282079223211267239275395915563937111261017343325644251506965291500882276899632740228256856264085927419045517069055483332858161137649564538216536912131768892115757462988112740153652186988758339617718190163138315611778018196960846303207258336443975794838708725345192589308819804002091161153995100914757213851201814275865294603627991259944730629903345267425695171667788106764720228711001325840848571689571133838531347823611881575789814715355470582805505547431686574765877101035167139663906201194477950729551361752837178994321702984233856664283054720186622366401873967393159073486560938929153211238339832900592990927142907396050099097514306069843114692674556105797202652628483965378947856293883040830445782061772682647542144981168685784266997924998471692026982432636698786487129639729951888383663314001565728920253617709947090625206194962220029973132801780481112557823913759866367481103410149889472025886081650124298251890651955277702725515857621004963349299514047615623362323234638719474785501380687029212454072734987141130295405386634090208875704807500423288359617794883329837057231012701974315267245283345308936932105521586019876715504374792007043997377236774392313500916643546352823808241804700778916178124735599520237168277806872507795647144546866546753990177595455882120165499931323444809996611012598363220662505963260866423879385851741294525137395280749156394943633067354058237320354988303763812363237001924964581417092475040689783868135923345432885861812442485913083999836778623634699868872628745444023183030163562404931973030895014209747867506406358326468178842423603894356737517610996243854218685486986378347814702525675301153814968458091974333991662391261220526013285696466678946648233820201209227655907161443086931982298917141186333810856173268123391192944910256228301087637575678585752572162019322202514104526336513624221538216349992581362826029948898238652168939678610822512431716784035306780713860038249425544293887125216823011209581325917379097288632332943919616076124217831841029262558725471168946557195324845522780039632035006128029303221798787829329800820765811614293116493123983134840041630668296795982530147444740908831842940070185516643063588739381866976132657925372376804802496015569281291019975428295258491320107764956449220955901283428061455071970252786434911812690839070286215585456344686657046743094509207494467432159244733040523994182868325783279347505276224670796413877661738096312308175543009362090506790009879788778518452561651433195456019588731076300120709157879205637825271710877007894725939551083473721830286224335383255681761800376739537434184053918885248775629295896202892827538863493477054121750763219175892443980082826335051344056167355189315958540966175536317186923468545340873329405464182080691626385922605181739352487843734814502369106005903317428847455065202144105703099838986028792466357954788626478488549505415239730241554207118224640580576233159613216717374132675226047386538656514779012660630005857579892465941033517175692399319173208006220048858640583944788682977287548956528516915142430112941781525431071307193719917419278590781201046685641980361943512212084952402649116924261652677964952929771113330999478937820720013377671266006992531576691499953851188506039755128801916414542669100448214575935883493713853848336361857173167498050781772770864328527596075238053789913119288813547022773729554711687768550826774911881052040683178301845590273032373816967098605588310450373033358932442652152688052779575522835201017949373898255613316858683129638620903611572201911109476144261669065246585440486556620646882151529161290942048051596135142298588849693926269363546684082540995000664140478032376188727162390348866325108883812197652795789513124790150645029664916039080250171236228375976155028238035977403578069300639896611448939762712188849668659157930448046932519599837766401109857477437240541604182213980042222015196795039621707110058847683549918020314598876080036903491448378036879803042526437512894724472286554497319814639124211619419607083781325761325805217898088790332102789542555650526629598354397423471101359422309553177974630679919275780162997492245494918888406429487820414325839451899294220409462982738758671707047986602513796044103510651487749885557890734886356816813191697095640806856951634561913754782931784264491383431731552276321759032289447610744854125261608339294863782756354744706926962309545399810646923561689207186740210987950146142954460167098430990735743262557838522466090321421619220759176674043528634228299286004446240118372234889141278563635273157487265778591507342840361181557616829329740886305790940524140199794583351673499075629983914589157888037414655128815962160979445157339300685389666788867706944301234582169200652141839086582418657524363187231613391160257849402965634311966607908491699334336815564445750512612795878338979533261731094794324288761839067372148332920689295249023935909735895521260501487269668149667190356570192530451520350917814956110038012884565540689710791691882170008925000616603905787497654003019511138534666467658334150397640489616567120923326719740906234716535631012451064427185877888980125357221460817142303787035878979250618754880973009512484400405626305965275150509767466372648609020519277858898348291879758143080261394478662956094650450330457092877428406978728793575823876010986686343435991228290926971930461245272713943336698664037869803175329767244278217809218922435083856832668103354749255786407722867323881088358364833262951869431320571676087679825336973928423817115096200745113622038942745987787027031056611557444864470436016510785555676638347994816272801512171982954018967190309305576501661624330475514578648754351397137780863894095118813393255189702362617728385009547158522969638161788445662342258982748458675656558688674914899227864166105601448673003724687787308788936744742461187303017810063535635489037818310105071686550142963787323482197507039428209990630291586662027895147360361842173314840070707954664807541032163132670124653259426735771883383861128575131607522536033093440005600237022383866868095853241008694156755548652675597631619672225231419467846463956520848433215366202769911549592943333213218553757949363685675769156425690574594484323149657343420133047379404125817692017676951914811321514181479901379281495269684582206867148681707952717240715602834171845988805134678855207680886473168721022270785682547739158422648530403393401484212064830119684340142019753740315887905152869701363516975978769528795058225008108246927401027642855298701565093892072516644432031109328091528438929381546761093715197691520726478583177862818248694255352552782454850113145418864323374572802658656311229827054910164915011896275634019826386164713194494278644466612259347362009686426475140582581011541260587131698396457984266064697694990493278767865009906264756953252383245163630827169353861666031492516218778772552062265147193613303672678132608846256304915616793902667516315135309079260694036499031719466983816952950157114659230637216414093335855452673373974206931439442801560522386680268075221282042240615465066860659496313203061968146252504707986051220616733733490739216453143318302948809728202259595798595600842809169676605451659958519003189631267267680444543052326287672380055197945966799558526902757077602923981545733673533091806369802769659509866397487860560013629938917175304563875024077302401735227374196550581478548185734760375026114677999739893796444113633176700154620933541791327510528537364045613092659877344647739050470992510677642123902640873241383424599456427381483329030883726226831614998668613391791862402785605284192865036265099310933300019143823391582121750478889616427905230737289861412353715480165529126851091086415413975780702465369709764842202922481633791894772251458112283661884589996863389988715871274968514947642582669425344120624717021901150582386957828722239054305971145913814838985853822748561104344987248277725014157122229570551774485867745109747056256126045032676954477586637213650657729465410750352497136485886406820263263173137688517902453785331141407477514467429977533486050615880743156129638875330331905478498120393386655562554341745093136183790662662845752544449542542329028302018753001930143525837095449188165933957561995720476146916902917660716156537205401290757762827870494867234147939238031035710099036730132990170133291082992820055440985984826435680799188098261665227588060206312616397105809167486914114118162833093030844822546289550876100161501447470355909052619018603483779932310460419555700453294482661347930770875997323082296280302230483534238294182986719763883851745099229785805307689912836716751911275516226201209911938652087232333677054000622993023908728897867480829677318382919493969364048879167770770436422371983222378123416818923902559714402661319075401634605549569942305194406142342033671290396351784207255871770469669547511268828256041358198396398157045125277902697236732722576680738248719656153292002336999500707449586033548189129099406286491105738695972095756450282765265581259065244531323013036298012317006800214336588651539917024056927900647678126891782373334644117583927266467306548945663482114312852440893062228985806688269211152192905861726097326732215182719224963698978282076022588762025868743073965464016892796579908396549358439559712494115925001279092081350652293109509212844600928265034885336106174281062059484884492958960969495647432213785847612342423838030378441337750526057307686834823781150389684086803703380046881058205427104342290034192322956854050387114796600563004676385650557335185548106104247221453785187291664367821679404438355825209961824684599150412154543621745929466354220880523840724419540957882475446512445933072959861370529944766117834276529443495166683075544828794598740263908963493124556557860535358416587474309087734361715597584010613738526630286932644723068170229452055304986976392598302304453198534117085815401781493316316030672234297651672623686175736937622412486634878204169554113686500884469142386121582110843999579020608357774373588265804818303797252474970135670853363385492640789056846206587179791649857532196852504296096168873312034690522873685535634147309485372309029318938919173202918608621868105263468548802971222339017833174270529699623825952832560943208329657020352812422227570687281137906725795185625783750748011611503218065889822019552027517488318163057741358032713222353640297589890051630831114248184591781500946362630715814938312162273245009134766724209413517094319104416885344682244148438849762433982275875184237279308684303137666798672656964741684239885065753214211221463828566901932298194915672596924136846300102929112460916380087779336873851522454129072282944707036118975554719162001732570142006049672204980781756387848371993435560136180475714399166377510991897251201638474251647079414713323757950852955401831342432907299872143487952633083285493532272659621597166362178329721610799478095451321119534419090747334583563278575450459870789545335047746151264839307730804156030639270498308974546507959229518022668787817738942519478071011323819100603123236735868396746278433421224592021354273574084761879754231935701852038178944295862683104227917294025613260923980253523026010379305344363314211316679658676782162566495948537375434844295447693177682521179605320052126867120637129414206026736857692926309696613380930733157200967151616234376283216702631582688866820979839745062744279711112684092610970396285256755562588901161818869807438894443177930119109067984139636960694252265075870527263002011935601032283585234294767549535544616560352513505976446715837847481712116950974130565750461532659952012410982888706156779372458290312513101627445909560808836228095311420558618306656127786474975243461594747183362049564483805793156689662554520131150387484999217388879718904811435109997063445990591830442533010391367142116545162553051337374248804408130194531056207735400650625303448751075412560362428419287738731460323648797422957320144045895285488966123072054562949243046371613268923989599903588174012222048588124853983991773292828413976119050772797493083659106213253866694482118287769048051174590202150354517616137924216327792825009107193686543655114968078139764083634919711135987862103924223163690443246351607818745979858366291480278252537308085653991835319946366212887722661710030815008240692834527193247171210727061719894680097925988502889564182481886384196788053769537964092069578408103512714094381122595831412503011778290797890927922345350897711428269169939377590467911587736976115605448876760653162288122073318458532354576063872864948934162323163774376435100388107884089719796181698260754141169700312772513232152312889287808175065628188675277812922769594523758784221039694403797119619581039057471985815791826005429921896986813181240734796015920491851958761169271710465091281902404182709031933637019129632788704468711606605298441565771650065058991933693312566470755340101842091660850884142493871260307724116798418214670412028326391049351268411698493428541623817229263581383229571902900553899253720591731491054460140498236379532333893805640918504167292395412936445439628883033338592506557268276464677113087149721931279559999498723046657668327207332384152857695783412870706525877494425544316657107311200621120849232051393901136992853040666251402747991753952593400401235443587001189193210490840937536819903906854165129232183633832453478930474418108227662815091124567097198343926108907763018340832048519193784730757610596546968089667149282701295097352442867812067615006177017553030364355310743567978364724178185982981840144745968116509194352644436944713240383159945695827344255804202076303685815698973155347937602275815505241007575914891090345784451988738469719629036289491049995777414542642807970219720964454925525809805717136585521163172838533885238984298331818011137000491210429222486127444662361339568020964575029507260534252165331068542054466788038036602927449949444506838268545055310912373503630719625748261269516592824279648730070039289752621528006105535096908516251149336258120181912780496714037102401754661519239463873084223169114591744029005002780622851120674483682402910884391215892900135250178236813732725937028926093048787354769966021707373609573119640358540373200413183195322547035530702926890965204759335111973498862975633018053587581681846640721120507707757021578400091935015030309954551702758710945393738492526414772129583607508936634685806705670197474927536834723824255121752802347118210408364053102237145065603311369687912736143184466574614694381558307982489032418234031403372127058501085014041306398129762696638619822138912930643310928151373015274114578936452971189188476943742628178870904377701267388595026553755350159140253561264761763212591718294489024209635726340156870031968697855486126999951381759686868531606528351088169571598295825751511456572353258856595391849946555210546610563710243717676104343722265996832946235319015613520289383123484075634366473603288781950944621699188036188797255386313187719231451087793844170467055441305912089467362076007581463464501204420585192989061347102614483969019847295724102017387040127566256386270227143624576264808433404907371572875421525233764042770222888124307485999605440430272527704285006463194785518745838616285050472748930327190462074653669953276711022543789897318075851250838077360375331749928495327981243038295157181203070172247027342107426238573669257686772877177911057378663757182977234760614474297988000410842345830559221565911031069281004432959932998519984817447695601418756617379123363898392025462638859667740159791433661485912393360522918887296197284936393227736264885465549938539941596731232751448364696711612318343975336151104648941343329817811926248592522617127907258393563209916475591024168610898741522404429135737205023412897597500466385006575737938633854983571823124764867425069345397638159975290004494854632759114751249822988566542695846382527429163900729582888569428373702034356126583999336060317254042026569052353696900314987950691177878326354108644427485510080853643029978437379985066467962235301184500958643980332814615264929384132692749164905460576521097424785312697899708476012834932600049898390269319685579654014755123719828647694214341534168049402392384006167045187617609906559308118483566720035932614195655869899418231710892346182506181069908842517126823906089413667925463832060587480049469604018783848051070833725983811933900261973953286051460200595384623849924240782689184529548998151024355961376901425615017523818182082522831960930694729644751606295845842837263731446727229060129007414821401455216372497435698343965960073042213485965183884536087892734628885978364323200752562130896466116914723647495603290832234613237935813317239322311817813639315686390697240707072829214708785203525013932876491454692500215121159414460782617198415134088954722218877185806975856931464045787854607272593563397409107018930631061611616631093757975527956378090722804242073866090864504787099488020119538955067335396092478141193396973814105276416299712860151956763061199216654723833628102720913691462014616861500337430561917060760408334512948597774015618361212224896489453977268667084221654823204160494490949942274295006793645371970603537380274795924213274430793933703531544547679439410969290993121860471810115521773297765192939910291065035800208179424498872002695321547817558735282589254875703242956989171559060124031930417055070428727963688722087162608995017333696733565949010445646842621201296473619063447653749314488464109131189373687480100759040490182382969321665178529358176538890005200195090701005199805554882481508874165118141840557119120895704936018916538126679260141900723777607214499224492041230701501525852006910456687371744974546919279039888187230423780406427289352699081273243944160339734393632285616452457170769669484357073776914467850969532188096290761049281535690734054924674282858986007765076913059051537975515987402475822233049879904182627459192494005632604406750878367783885503165560122902103133293411963446739973194087678030526066555417438712408186015324911819597542865781987497797730901809221172043373153504982513359828555215100335592657019336607954281916008992146409089302592625562199290800298093964428855177635240400954734162697459307347220577994969456933576941837485182504827289531941828008248781966709331480670596429601376557464357339689143103944788196222910093060385200159922695932985959994797931364841040793628199385218506737541909662494951798102837632384018051929195621898824363839622350421378625456339145761853949746198963584560266031491307268555282802516317016149271966850105107514074694095044862269225595312205011718070102825144231107650537765709717029066801841834924424606505204145003355497123288854563710728385651785810623946696473184075894636785870198265926752735519942415593704356269999681820368336893213968066910703013791748059555188569991078147769231010211732201067838489415285587459569758323500405375525366650274676387915103654082930463824561649025517049611465346438646202149530583703440726611722297671295450359303729976018270568797372041693580890198425260777135557475943078354457919587193402316339819452509641171527265777503909384110106938373344795975418420825921983944913482377397611257038861912860430623250118488701254443312260419622736546453212777794166835104773842722081630185432503706099927811372916851015511991633211073572862133070952535665001399339989001084383198056926346969278407535434403099936320414846519505934431753915916398546796066477507260386459354558953903648327533509524468389879048371791942844550014158159362438308776529245394113344986856834732652666062277122288135922654418707052570110742186839395425706563929421942488346990699275214483019361361611583844035835761345837937916438128723857146202875051852531196833260120864575659398087372910213032018694655596902375029034568918239024279068953223925695912269875753362036138976580481390531931825038778105107965941301468880032599285115103556574726739422194020208250731867671722324169940847717174103354864877553165136887730408025124739273981478649731261168367436605523844363394373128536840321439372119679832578990225977393666457004041259249941397281693968934731596898847672017682450125566994735859203556769662461116552388018476814229457984769979402258758601330646749268443884749440031772256176668961763448249033509967250170462610121045201753401719105544994320429416710268747499631553287860811086811118816654605924142485076121095500958675698988605861615603744331850939250318020059252823987500994093815182121018231789928545518738088673937299233970888124916640042526890329939206484184927100657823491474137040414939608610836880799536775497281857898462723662984247854604377280370613363295933610045732361412583302710338089863134479528071214452019980955048715272421233466694877696703490198675813980565484427134296644087241644659866277392283356292674176404543160695066661954608439240008273936662102555215528532174438376142267900353775255289905874043987529843012101287115949026408696172616431450040685124764417689078445113867126234919546837397094342990907584832984136184809125975900754818962398563294280587360631009437792785527795290539319638265281299925373820264855511452054041722441336122948495375015835896674097308324459601816338900474344427415231917243541821605909711217550731265306423723899542628394777314290736478877555156587147447514808853151222884564617539782224867379624669323982902547755970455097623901918625816736692721809005326725637755546822073208154382882680254113324564529552338752417904418084610717159488562638173626198115942348278020364176503003275021438700449934570090423202980409094359501892085101501541815424016474031499994026716120747294571161351984289904186693811420013532208026506542408891088909413962732638198649615094319352929573173894950391547982315440210822929899797243960603650705026869608018188362944959565125771103505141841147061419282119020212162342814717864406938029096673757150202787779106585465740302780020781157821388172884031810675126165788344818003445751875454034866659332008397994657491352007284813474271281613521042044999539332588537977590605321731306598412430969238132542628418806032990962112311262520623497118724229760105250208269735239134695859896022168192914751767548478911432500180108852419397200440461410498539482270509644292820853536653221011284361117064015313463579292718390623455091812696473850190904579305039083486386340289966592316155513845639623251087746694361973162586097156199995324927779049741872341417254830035302343446340473197827450917860110641536650443107340200376316360657983181805112324640857756829936523999363705041992999955321382871541412473220817402179421383378493496111287576031428491468210184359623717839737697499622122300674332602089360855783915507761759867570898238737290371083883047255002955445139849351725590950381916320514449384586326463730522506310452762072100374717157450544842605692539010666970988607159902220679971213545838326493072749910866753120634140616807374593978607775548532239967751552469697898877485964216579010064652912943773499274508241787118083797136890327582358403044734854562899189905749282799450756864746276608375392407482582848156303118474399851117814970041926404104285423617342370002119274248347564066275842703719140882888369070497761047440005668038179093799290998334024894197424945271885156516522681246005752716947102256774573812056136401382353826338955791791424008525980095480783443111923095336780678227310827527246955330679239024763899768150871837040440919805036421057443957034288133842913835933276107773684921712423353036623187588204250219379004679785082764815667781296528243195671128257783978723476171303111301165178266862582226726818552535740687047094981308775489097979813835407695321976829058659621804056069930939210373867748420937112533730233421106730591663519796057548225435560675542204363475630175973658343700991116827005199756322332202326591952635753416960984348157817252449843563018760383163063833870909190891350329394177745101566598165395771572036050824864973906343796639684032181040189511041114088499398838892444378139630959096140696351365547832851495667110800942608996791622273949460033763033712573374992760963687372762192046258268454746394403507369678342220431082763592700747622618761980377883085726577746984645954638541238163979215777594179394780547543216929354792528618429261460778196572907899316543900667615998630341951569591507784864603242563167439897395316451654188461194907186641062136975666541725069839965137806656517094956274967416540759210789050678337300773186395412798786060684525044259806108672113698341377006578782251513319810043769340378679219159863173433960058141200955014418915868009188082150210603482951560650544546016799482577111938952702609417557120265047555615751492599635992156799850898853146429558862320134304280851387552607659191844482580917810216933704236995857652162526389550696882950223397654450826332891366853893763377164162707665119825075109154644496665065844532113580785517054036403485912854131182858881347201808697731487968881364879774035843538128163060831254943941783000274056584322904756822668282153045094689088419981197354093687899176446473311904569551635296022473995854689305239531808404257095157249086199384826587340497025220140661574336092679839423358525182066260882283980988938837017712442459916458122478809872547106767060479860388979394492716611354874786358289970585069651693304141550613212265044437628963629003184167557911173429664571785010989468729746959672625525083165628305660684384224006291999526914094268038641425872270999765438326483527562651152402562372796359575650787723054478897146593639129613540881136980729676281136789768696554905176621584773890848605705603029504607965884301540798855070442491958031630986846518438368908046196828523908631012634386990992067113621927663434283004834602051467608443519652472450221015076177003830391446836980788620753856027498655396936743025066425372254127627051440464573351376115564202421586487552400534084140409989459657696176033235491088335107879815667696314820832025126712533360644908503002481422063472831426250331424551477358157186433784584769704960372796300683585577139315037506002119942245538082442476063901361092023133833259592024603103695391306206566019297276327745659677501295089467727484663238477777744799194086933725438733306834079772656867256170121865851566960345860471349921188699994190845283269053397862042278192242871515377826486558811797066218810886566469945312290522561602202433256024070054255098801076219822085790525796361278873551036543662267496307415689437965566965196002807540657510289528668430121296007982733542991523157393450258892355666100946390913884448767945709194166089850696941409533601760187275282832767597745495080560294976712194329089214783376138984220200862226070341809338767098981685606736248539609855355008127443593997551273700803640004424300290692368556128561453676643159169381725750013166627491171192685507652195597951244010623945561029287068555162237884752974441580651798720671301360233151930289872295151542389270122622221688684504761985934314900332660453509867732408731532998051632617933582515781916447345885850534071297598449938490889283867990558062456187076904494162307146035606175662312828558301860543073947358903776481299252121859425599880230470382700047455357335073003973665154914435893328992681748048161764199477182861785362961426420857603247441498633513790972641307949081427552457998422197587133199613673396064818081794325379865846098380993868980044199322425209707624584352228202017283047710330637941560037457812511940773079931596658393094730045355835671156432046581581392955792774682363743011314833687323027983819396101145090546496918257225195452830225254162594125788427209215961766145847378352043724491821586603558001892001336506607079351780805147009795275097678452545868450559202599272556220920635899277907546195678437555101914106665758920421518706526984684865236282070709070737235419716810803042901076379185196931658262360004406941828606410157698935375839263524075839422298824105317953684597195606533296618188761702574807143296933712269939409942237710532259496752173351071655998290441612976675054821813916656601890602991741668528912835336635800224528597361519142076045869713002328076412306790645599030950336305868798939697824923746055598437030818795806164757952510738970419611147659784815943082776636012291084185265264194174312393873386559365358176471627881431816142757143445036094542205318290099897291935505375112270637446469092370514999787705865095520594997630578423390929045693902300305967055939323758620039921003375959545333654569112369336962195304334260559899924356647411054926395051158264186332474041492021314380390942522042969704166232957026435635372848069004456298900148957183546272716380291937335181544128707978841283865879604127443061588882744107429785192242317023567354036884578588181512858955325316230979385931379707687407023971862137234649229530741930732029427451043113301525344275347575617535536041529001397947699484866197357255257230933924036513567262972622332210975735978501543327583264777064305077717782163947727628745279506254867314036399688476606873985121976069024516640973050118584125199900109927514564937190493199491218902858920020360101286756793258646682003747469659497058972096938480272117593719141332945711067284811753769994264279680650926705489133330228850806769748427151726030249009406854628775355516228374279804194543675247753345724941892723591801568061775496006792274089439850446091965513710524971784567831859280384578259056073168568469616294210705008673741024735616635160819768200258970288669824684490115502975709252425877309893773442323920114766711584175943741442315376710651287020855787006356908530189518598092161427425404918193753730379319982335784242259285652656241350102688135569684021571684743620811092224798767465801965267613855993044111670438029474810702970558937263832874446969854931519442936615606679049086699723565779008150918868071005712409532051441185620866216072643081664092396169565417447763221924672887755496305645660052921633479230482420080565836489826528857025055487745900777211836293316729595259765382220496413411683708441290035941556726248523980782492635274506711528827668334270074904888989137172085116410786892590714046231442196087228252263223209931265941115351478781444778386022607328212036755643411621828253845564480752262376861856766901803322732717218166031839034866330405049629787948999231822638850065449606441456046087361791276066203943492515935282454639794387506489881164542524695593411490511534553838155138185571630793318620908075571712517466746132158149286082321039219915427120289338977581268312880822969442559095349692573272479140379476414231717471681405443985568829600230689451153315349335395374000246773288011329053602009466415628105735655581578442556410761205935152564275717513901054120740096831793116977387446852057770086407256508323751065045536643522144826050314171080792173690452989603998814512895675042341969422639000679189327865486291851936080474725670626568828468910581041464105469848028424256838560367142290672453952103896639659400797156614933539854258178310358026449320807004100255807763973991393482183049499774994365716039930856076830293453231159868728217665169438663923520082041116226370013686311159605802462167476630156338325660447094174182084499126385782058911280471982461745268689676592169689063600563987162369460789167313853388141593758032252049768452405460220961454468755387165839224187758511726337316940866991747394566364571917862216628119672559955158548820791335192244211985004660590001803908114707408571228897646695588140011713521671749409137743770284459916860541660066268995683784860915199127494643219601505954052462980900034777572268046120634111220576174048183276590263442053177122077043105117108801024366234156912244796985444179698771155712920463069694812061600048662738431185344155499687115763270124824215316955275746403980140295520349827544894151481765753003761973959318937820994491764963053433244515449943760828504836770517001955658565836932155277955097165754062324321801612279154208191410941317823787575402066724955245482307046831329119621926488653874129211288021398055270526557157718868530056478089924197496714363283679360040198237129156389067743940367759844173041949088694379042674200735046412465340373620440356556549908825272879855143030104852719887153033645054151087955770072685092410045165784501917294993267863818442842010671637735383541505705499254695215472617294653635559646914330251264339125183639951104580097762838190994437100757747774977549453040112668172971982099662826632769413277606348240954113392958074498116391681175763271046592329579478481010308391852509641162480809426743468391804621126389320192247832700155057968723588473027081985224522200998793874458387516266305873866527003324052216621763167690356543789845540232592013448879434264351165259341795299942498030200996877804913046923126106489633223733001252639080523172970306136720681490610147408424476681085012714097547673099529876526290214796913533377049256080430410315741217627722435663824520030882791796495100041215483340646556912085115111743387835835217734038696167077710560828155227469873284341105304240045859088195867973079276073876482114636660206616576262097696346342001703256557045260153504395829535274878281355134758574838143247428055332680020810408131937415222553465256622986218588930069752145672428391748793636754647383085925547895298776710404895023393662472845764896462571667372836087696406420326903275065462772956176595964854185343313066096390482699048309777184668097314747436094802437556814276750274573604690138148538827135003888940258366051048405341158937855299123018386932080820287176575983408106388211178133721276120346107961841199522399446655281774649275857588815434778615997466006936368943228992528400598842049239859059516791869773686888859072970894029513034721505149376318335663257164565609502794377365847768222779297970019954167009614529736087927231543810987409837239302772200736051704977958617826393611335780764271991930260456736481533943627655452529927053215784020435862236606109601665729927718039995913836911763532738310983639218815155736729069803838831994493662922735882482380156564947952982430094122781489509566113455435557662277802803956993668673608919205949307285522903698996030266795233349298070676885819147815160683913859260128886489430033246082341600765328669521985026869529751765676295734880282468098909141139005745606235912488918807826282577931333457666405382604994177776024520435555176876976103243122767503494293066379558239292050608036725466256862845217157687379376693819300443003877453691195820028077974116225624186960745542386858150530290573862688812203597217412447289879261543365380690113159513749403205338921914812083640333528971515447439384537260593170090323836051967416165187727063396020188005583176553322246668112931199320448073549281314282738345296235101884864726866826232033415955427144393478156890008606915748949868690049585921871652802593692441328494394217084810232690401765175192858245741922357559577228891740526239771650528025245981930014819218602729429195293218382440123078524575050601191661898774038574779238024368517959668490816141464504990204003826939110369536739288314574350402560830150904548877385513617084685131047367201689522695711220268771644747972973496526793919095678382477226807765662077455095561635960175117943875527349127810811365204197918681334394132965331420654399414946071108329016194441158920871902704845012210030953422060705088212439483777448108761980091646442770495160213306565239069918829465021093474196550066678553531680913468712946845041189029172374691691490392794736066181260863469661653984679263596573213897467052806626300218310405910495338970450619440072946861866312304133204522131000004138073459329837768366594136375896382627741118777616282641517926765177817436759500109187688832676061875250785527816533881258601966819334614529656800919781974489248820905362110689765586276067893061161725333014730965062854290598756030404671401686238216507034608157040350188238352465112274135942314338144182557352855961178141310193546727261484152510022769317386509664162834056248057605146776556792039330725621767012268070980232671339014394135599717183612644785086576922315932173564787635425221023534594873790048052527458666717348306220194849523710959786138615392653958797607714837949432255203941773741281823427768023423281889477326569668703048477189294856918372503317342352230094276078541885477824923878786930158852548837552850517142039288643087979801665091730111567000070328188791512716894768115653514308870424884162291275409521805544651645346429111903599119782195116648986235861645171488663453504529706195159619462398325459185971397879633532046765697888284547032893627620775933558640463919523583248024579441130729232220656698606062708026620103572829918482459196167182625203906491880079101395389050229567284356594733597728733490925731628748823984348675837407684565885933176148629515322159071855426695876921646613930497499296741534660319506152775701183524772908161134784405238851092471517233295938316302974650345271205737810236618967034354841557963549704852500776041493015607602124538777654971309841530312205844095681611967607917447193358830450171503216679230491455865304918092253330449075841743308514795928048467242484249722309198553843085086445851543817208028609717522471341621052234637239669964110586039342581340317826623769970454655269263549187348330335208336564164572423870514790497604606294251423821464674175683403387863656361844707557849020203575642884464646599664705514320310675053065593640935443325129048731878131031953684046583096302603487497483136245340431284204953358405352600239237873650767570071658719585315397775045884008249294511485881179696797688779826061508754759928760653130897096569715714490942300995091683787961486151909871561106028615114781938636761277445247926270993891805425200742315641113859179322087967571843700466863630597803203726475434381433508138824820448041369585992927843886811914506057511440018736065186787997264411334432991272100601925188697344948734058859303641668026307730730083213241342849505056497144966099848120881675783366810938471609440457888581961168712508839970225279426182543026325415228224058012430323652882360267919662335310073219946100177111056931966298665527279506808199209609231343977465245630962143628751174814453720342987822450282364827184112902882797767721794778051359267247419698290146209256805119351579041909705165660091147275109604115797712398942828409129904064021584400439297833702492930519186034151278090273831299294132720199053669781186083238306140139410097612635807789111249896481858542540292325159581574153885613358779986177002998942456215568237166554797586144404185599592792379090027294036693887222680939066279365399846362210149652471041561758603510365187366770059128143265011568710862355525483490914998977572386983148331471225918278771819237347568955126636282160447083021785857757269616038903597895445269571545593286284390007093360970939874667520904043319892869003953778402689149288703360513492830256990934908454365669928206422430251874455127167241902870759481107618843821901100315065384697283969877573842163335025017485175360279103718970609102517665056650457349055050430509670596863234949143681930110737537483219256745614574280480141624851377252178879247534277020168996682756107169847856802639308068879126395578542901631280890375134099082787687258010784475095926715075614393080382858222225559714969579950119978079226459454005222641766461768946040635974736302779774221058415419235228525223396031387215173808254254926461378262718637284324014749178732633984010002824006660880728491567851390760146516429603108113670472808985827630194218979873888419234139080233728842610004649685628215730301251462952140370032582209129353444413490715321046435615810011361803907259760645689952513364536216416347653383611345650246875128687478392882356948970351173482134607310337173532449610424876788353845091705659970660209708868318795747277712713325891822506026929491413849565498687041252515817735728273570296598754074646398968396201025971247271659694138796164176984784049159724378305029286527173547206220372365901703950117906066954224661579055343673701124938205635600211992262632654571644498155789273842333140186210697101116149630230046227854077331771009521981525212255454229300181247627168293346113408763376695264505584328603687585919378305540394137767185849306047108174648610711587650052173025401026319222559064795684899604632601348072364464638202073257440796525947625691684534006903275663748871162943271779102592779027566886770399222271852230260213526099608044678161022448792285338110898452206110306225235070502373684960923554487493763858865370943669116086126049020347727115788865816258054358821723663686172026785972209658854330470351124787905114940067279972340598348728582025099329563242686175845258356100589295588164304430803315066997420105308891349110094326235889874687279037289135267978524109993282856554406330851678292120993478740177520588018439691266775880895538252871155738165927740562924645656052307327365585226898023840648863214443131034086343760245909617096484256661408360825729768530730820308939737093748647358299935613074359893481624776488883511535574509703836586877186084140703708773245388339992242430909927832434279274377201197499896188082920741206138901549624218578524015446664409175929477443664876283651661064861344711946293012999303251849589277233124834982337497410688775978183192203859358824308634555845857638807532371218983215088664972178777084775615238350296916218739568299594625059468153422511347260084096816352485528870623771681581588722572565066086074987576350858345772389613101655187518651373074900812306972975515651422231896787697559759626627805595893999403652937420617287245247473390368406799218542438379012756974595752379699070800118474650511716708078137006781505306521007055908548608294980548620976042333824960396691279574901343954052095914967739632878197402218023985473519505200526151220503078797514376879462285796887588123137254570152395478376891664344219637702435811701045104468867455450613452911326274121728204577375302592338994036855744399922415662977879207995912169166903889708879933819640010621024633239012814161399369441094943875644552271173862216143203388687996111139327794545957709050133144652234488576867408705723636734296831262738862240960132742640072138941275046908212344233646558987722829794441013839555299472155373232077999043132833750525873427169711961103725490146190122451733718273536779368138342617875876273600827400518903952278485339567021694481279999879841686271733010787808713124116444738585574692108672163118471235486865272757964034328451743776869143381560818018196667515523947559310991158072946693747345664518362007596840430316926945555418623193213879505282305211636835286985016358213077742148319322818924975809260930491017277341002204104433356503939916039047412743948682287844924336287179633077631702627355872490054737472958552236104558458952768475411719549591136875924494159266878321343077286565744125059957110352704224816291836175711003901467563287860260554970857550228671746780932391522257707381111194966114332468252756328138540926271893496955793056871867320708808121144658801356800416153379417320755347564638656523891315011665791897852105553101168264829443194083478194435686206765505444878317683671791536581987849419805434117176663551183050990483338721501639212450565539766948967923148139577557286368380136605847628481875037904214757207247583678963908129596898557808219209281152968777910446385448008100763651332659737958901753607290851679230165006502538486873464957609106652381922016796959929463209306999149500086614615023498274094806045118477373394366721494054191997120134506931180250102343270883236707413592450322305055075165704931729696471555822976500364792541924443556051589525073541100044071191203365028076982440591700700617669162062774890534229578657674532685301040362530349912387424231056127342883593507230252903239345095135071723111923157879688228397414748457247547052535750147493038890980398196914943803046560266086000645841227656109311320322450505528193389568089178506981845377773066417322852224283760338028821477865561308003344059310997030553523824602959463261976448399047356521680512821313900588462251720837278972823823693892372602533385259812431259893059100459347222546824040445458889678216786453423513834705442361283826177147931078805897809594187813869661714056309958731164185123196328942323430544410602144142059672771201056151337325862822432102836728462137600090644370187490363053156321262626111221112293150580438019100165673762771534296932059662988160903126100524937163269804242948894352110032774182130712745622626934224160752356011871937687938038369373179066658933741921946125699532804810582246854682951355964289556167350192490717238277051393474324720916399419843170495704020597088378209066155565810458883638282098584543889163429777126383367857529191039182208634173620676050232102414501680535878492477882854412001801303166595135528513687115843264987558932203845867496217377269633639896388486497046924622543752628958714014154043454457032098673697344172751090194564712702606917423187205980918249945095388556014520725622166953205184605390025903424893814800439128136748141413575954946788090388459864162918962311225162877142598285428826302843130579769168469958091694418073748310029603747360013986602623978660008339282227137939440198461117985281962539402206671537204398203353398134057210141234171071851109671239039192373514383892233680006414782225278181677669547085512644330336236286407615385905776032061915135442319833675687681493566859590364757352156268343633568894257774107570478327709552192693731579202014915537628957224977905100216890750488973559437361158230242392400139284989605233988485083930824211801994340832812431645150265242262836540117672194329660006464088577718861093141065693929908324478968036613696103524365373504943186832348689726849509276222069265520558473936545548849861691271595851840138074974143264360568413832988308637945944728703944773325009128997153633696969575837274589682949800818124683147297256643897413824731824124761921771036044106717252695020108482842689925735983461055292727770432297718552973414523328103153230238368167574662922055185490970681246234292244525741922474667982544584732612937721982378953041985371377189346004767125425518231467402270098555224443549903523049391087638819420567387906132200979965088293275355184943845917291141999804471938177419438826775887139813094848328762159396734205866052817980951855955533190666211897197441808434835901846739747187094809302847811579369848483898351595665562352722216106974743331515252386290530106895500233507272004627516033866334943181055446404989396034676849818940742236453631581482924918085956011061098816670577142584910390452490144071598052758977265462350500511093184172445680694199596780003856399435746987354068987478740607344400495016158880320192866180028592510409174726244187723323678902289207163020745561681236978646038741111827052142959707224698618482656190194642885898060376185521658356317365142196548182880162720145680182708469977238996934716365693845281834806975264475242789309025242767310727630834203273488047689074760374443170227208261030899112524451326514131106455560094621370761706748741388059769309912586888740119423870354995240569511215968164137222100598661756169745575247504899509133064692124223928199241195263541067388005078961381278826346412237015853443137302013177567545934477283467597964167656009671900394405394568969813346821341449199723210017417070665941197883121159430945787100217377172884360320737069330957813881273547412178009301637241961723465636054413504158562623962462565745623855272794152848570299101319583719950299044837140959130389444643563090877223745169411018493971613449492650603801839480225497624495332747516969224308532068128081775573815411991659065965760065288568487211561844111825178401316137067310439399635411546566158755589540279165770690074813793278489340347043765407777425497502321492866024901988359606818840775846704256147219451546853772776447188794912023508635597352422597860023516578925907927113521556228979108618948945264083705145188687355257556702802444265423913266068779118440221451408434139152780616493326620692141146898236284406736534375061287580154782097670015345211879093109919412698622964848808234732367096902566288208415269187648605217128925513335582988146075598403579153167355180039837622141212789627571318373495965671001983865884548909464317507695946404359740388819678966579741342937032116742119826161463411455173184494230522910489739752550569361732263527341215381547705615060949299348445996184104089061123001481416478258866743104682384864088184244230624897755213141537361741419775887715313092811753518783422231271087463260591160129700836702862474216740211543839301991912950760822803641565697340472730771974994460525157656752334170456746076548419695830413839956911328487416118193923973035698312216887043201193622517732314811989049583721786649532330012964876100734453123301298586299397819970975053326723295929964379053843413508841507506765563376070628636067867033803730341414876424869516954449655514981663203096686705799335331652124550579414836112291199916037312091837939768860541800347210865929799989082748072718035237039767490567858066505802069202176273441799655040191460961995792668211941516538574754820827667548166809030159378269288941357182101294132631054545183778382622202208882918545750209572036038122708549280114025197136775877703080391772215895558574599356864807063788907099184815435524245235308256019518987486295548543310380292268794547652818665093457815492850328741734096655496916633303218089800440649288791192263639235694107918592447542475490195666823234469112820728714982183076595603497182317870773561157561525069930024992530142340667109295620115498043708528366355741272245460254964422070982020375153787400895793438327868801404048486269425362501203819945266183060774180171329209739680805929513195880809407632737823757245588031590660621623275760422003463969410760250013789504978739328905607622746273565199291849744057509574303052432368179977914433390503916397082898638901959313742043698827158992381175953002292275373413658865676708217550504515326402977811593818185710046155806887765552923724684480608933905424261807398381593557507752867479098366263525163211666649360937366109748966482582904357644060305016891697483805259136330034442013847045128091648131793000690671691165316760760567056213760262751071860420141708285544274356107994334107831783571446369482448777631658132466606250157467334937743696552798015595998570999149248332246863251037656631090928915132215609881495062668802525389794526397012928187649293740496735649047458485070700092205607287725739567889925672795921896517322552968595948876034669232673170492560891719922813397381114825901368416420621612260013540039155207564995858265420457481681468289752542358668892202804863993399663273253356800483531925207552009693624815073469398354411298746749497688372058558924344652546292404374718285473460767360931461703536144381805416451705683326554129663945784637217452012655828057245909680813573497429781083250317061821532393707241866879166312085743219848521797387580406226009073237921956809024989303562560017505924173237057366751167041195486489675055693906816634577018618777515485728081559152434606470272884022191046634094913460881323095170491550839194843607666966389288658283151871710154304850273551478623066678858755725374770950822026511437877059146375113043694079465497255702244399543355865521708014712391448260970093714065702178819151907370733638060219233277410147771767062686540422828981814608702356066991919743180237818328467705563952050513264229090460792188760064684958552055556491537718320517341047665180777803583461245763786998984104542194646678424658045479928585529756472801233276040912979098938058321190314022772321308905118860191870645717691479983513002819615723054617187684784932624352452030213011213493059591792482882665521412504344112126565924066091795960098429375365633424612736782198771007228964944278576888181386490251254306557333635630993095880644932305758142873419825625173487676104632815109670977799870835611109034435440454812478865622205488829831342576236202158750419022346821056293681704308806450972996917175044083989572487381240455805889912816319685908227722416887336283592718627967754013013422414930193909046299598768152785706019574392038084569078476795487569962124105659742990368707349274005672537464635812587399643996028082673931807074748640575581370904636240158628533655139811947464838035176210567208994334302663118337943569408937143829385822197181638110105241460749126238409811423311054632261066565676967708583284862408664156667553969835682358322269699601797225362820653167851365693831439368629681326703158015179195158386687125194098226617992471406466748999445159992401045857234489248234977127803718459514830219902014740534589369511808676824683733906789571755097645560239791412150361054371681298220828239149659611073874192894185255953368507977893931493661389645002559205563462210596004997497290118051945407368177415239958034416803538552997922892731421183911642234034524160806131826499098166011693660229864242078014586804980366825335234707140746447214870474238493103020473956951828997246601039647298266962163431608788378078508488926141109030184052300743775966700720696079621917394402177963697132307407521214717452504418239838474141702178855558159587124880365999872418150460342859548171616375727739761592545823078489167517338482334136898230909211591567820424440736634662004340446462238101922833871696671623650280969276785583740950565578901617754713131615783813481254586465917643878718661811258305709215104447938406651751957010978986854978921681655949622598233897727375343723315510213494461276739982063867387740824530198311151479292651155982235606008213486807149702415159095988714977883434640709453541906618657486103717867353620299617669030533674265510574365281115803592805624236648972019037163999550424368975232474314331527843914241686762779522014453187047768124945612907097339243708229185632865376998753480500131707581446359549157428635792701177299930209326803205118048570387272649461750122512506231666134229538964672673448698362859782391882499615743981084040068692797092405690197589619989297930104478458880962412978507621742316309716788465647861835063877073323270650342000435288162273528810812927917296426747024715740074108655384724551240390711094246747082593120170784935939488078447757454651361809750265310844019939268054874878033376261041383241426955156600873572515468013148291555386263429342593857069866933863254204700990177765891850137522888727318908873184032279735697082864287549528863305440549653959529260240357354002791034319809377435285454780003958024287194016375210624984198359367213222869524527076566251649758634947206126484446297970909418916273925485408364020934402537595894872483207542096654227922882964604998110254021718618550017762023639628907290906596918594661775142494305278906884029781829804350743819959573260446209270541150418827240260509688938332694808315984369461504836654759736538232694792493034281141290234169704927167706260879926084869712113942543478635999754046592624143684153433748438840930881412490933138872675496880158890621655948125301592646749347393144468201212561140749545400191294714994408682110750911640792049922931665985938883604014369222444239374411682738634130791522134298181954860883428638545290896131733703923576939961971373764898066534289596451764249580219000213086165822835382751388049381956697996841032746769458837764552388691227948196637057571038599195105104176054727190149637504180999947850001658516323407303496377400565470680475879768268971030195742799746514475451787904496744615920063892593609053539610489862207852842451049803302663909333063705583577675357235366957773008669832346545644189945245966212733344843358589230334319089716167701768077729019637886014225676762695939435163488872517411259150867783968255055949870565115109047372577107154378216353121794176604428678590674617296687151471990117176234429718962631615877737812697709635374914020638689104637142771694286875759758635737954853021439293536367077182660225431773956083608187180004525891342389043470011708100610129675499644807766327708389046957971030042471473378768532792803799831772280578649147566850221209495346526802097285997774912760541245018745067263076513391075677896837267655969359684095264052501815759500392282279583270740094531770536852855105001909758063834384313657754282701005395630511061482077513350825921466154825805976218950604582247608022461824734623453036570720171178380201898581378994460798560044566987497731322552156414696860850655361035440920187441864710468187009286184434012311590092378500730793931800844895772026809000140461871306320885356047958897118269777036014733614876724419752621351068999577785601561192608050172048609613980181041837185818102030916609504327954959795580974504798862277075142631198963558189624843673156291082560348121298839678867390208060810329444663164028369753708674776182597992261594460142337208112582214757722142638710070245004651402349045445353673784808996094680253147889834253481115887774842426838074055205360958869510677388806180625931676578437930225337067858379840060137817591308883439137935027429377139866974681591130608864771132031674503585256979381460775897619569763576934912759090668176971556928112746613333483007605179062832046384697909977118117465027016482038121868109705832434778120341573976885515333624956460249466694588916449589783048058299145216185661934565392669223879216506110384303705619233853135375061363828516791811543083707038100249966547180474505632620716439700230235053680048993288747603447920602391232890870328181669385810246384549911734319986676915679987605573360619327233697918958624878124582859039321529421501442907473789019439102140567735747840933376977088049539943998051230655073310173604817392421135003111740099084931916708803604703686059100091643073882305610422891477876045658716860496017684118322179580075368913698989728412359159567473431235178450373933687660258269073564230970862632574606206373183123830951756555722275155327930050556625092489458932998609709546778562431724076105521945972435972336218157802950901662786767326236290824621719255519266130056601683023923609992259760264936039259703516697848014456384098457204728300316194032596212053283314709204358215926315375655969316106229339371821511107901644589032928298848290291084794017397168813286535468479996601773492408169457461788707336451951795334773642912065910230291235324486247218624813228593982345143980450267798490366337522998153901339678603445958403317002187581601343991134446376692018317452012959337906670565272266733684851926416342310173100244547890504821399355348654931624498893687044458066729122558218717542926878796285786863916662119891569014410083720564070228952241543974058540467854048741300449387369532687470341381455709933321475215132597940218609661137406993579589816931005109887554467793809751939885881901812748752424665065089649493459197250533629463345045037068692090099488879398133829101409714169091783049430085150063129238327791700896615006223047490746434838296043558578963361672019691009188831702534886862799805721988943647990549207631074332319803463574490320571944599980569853214269380810175438664411098219535457842847486822639062175966341084251292117458851509133189137466966605132557113249589183496486696615619012877160814483797917740477955316118636567990974426297830365527171240448120861445910596935130008548811049376201659811124275431335438452055789987026750471212553724842738690486237313971499453244191595570777734554484122946287481740688992129797878740488621076592009304176758666405394419057206588979166438447057227796131526529923691022200017616198736123678488111484449952895075681415771451490039608993613846992394604159914279660485783654013543580375253852374521768671674921986089846221809243690413285366060759948951050721257266254944458492106033833976915073215384471504244765233449012449782489328645446158155020548726994124136086830797403708608883547245668572661206583623847775125527031906002046413981696270072508668251926784274634236834090246867830940249069778397808227877265661525698695890744560711243886157753222574063243343146777202125311458026238152494705416447308815253654954263064496417205152130102242147972322851353310415684449523740072243187161042873228812084156246251934710305272408637094469734713818915063062618140886653745295208532871337197791186370661604607989920315090820528579575753240702055523146259491664177895553433550078359501725251287888795109697646164773189343270029060029582283141147425847714128744170208706360230454884874004896448613405135460222553227338843754601148970703845587562460672263764216178969050936768280751239971143479532586066125807378324055865516023932985788004273459045149068034188455955207504955330289933024683332839286818367776907670343380435982891577738951454486164312408889056516256969393093634527070183321316970945440650184950461304469286151234549833080028102149220621951879054640693167414745565282709121953740242220680580477289537870268377790069806478424949572963175514387182999774138293893187062047349369313735993413822114306063498754042728294619188878830279663046669012706649379144162051784768797561672220111957087453546813250358269987068756249947795948130535589933541865282956429775576941693376617254477962934523659440344885469390031928752014275375592574388218791225726919712572657809034441415857228327395695725260620623362713484366702536551667112542081058184330655899659613505600573278335437652800857117912744308352797333916974642306947409005997643033896313940495229900516049799030054393927622011186849358806664288694081391289328879379607591958447038470945779406913575382890114581885466224351440005854718801818614788740879691988539037504380087323179562533243145489910694079109136400654225453727053252010931490882116416621903009115162680035744815382824444095789997754037742233200922371388839468261657733395848143108264214764738573471633401100465357606790734920656866743836335853366603437847831876262934439193370104779656115541785338314259678857637754754637613766874373286719377476882548251290172236911502764122974830065581969857182949543040881599621781328803350644519722891476914905503615392674531544071423434864546451343731610761554418982117567122191337132942717157320549837141148732965674928704428522183399801179603330990684733588809057971414032123039111978226356749929033938186578478093909421636766785751667297541301942404612556069680289826306711939952175949240620602084648754199436821495117129717400949848298406703162139194926892200852601856792403046859692009561164226314764666258182651767569581054638007780319266397281499451479798298868296962500974646775723270040743723670378635356477425905004916458917856824429689842819455912877783318014493002130852036825408502748046322771748169662456283477674849978913898469471445704827213486091535099516448167025155901394337206513201200451541314909682061304365968704036974413200942949047908177893159446655535636603371793900359856063198237467729688570916520020149290172990590615675301357057230965704759117645998471050983655567476850477321162953532545492275877346839893533790370359176266590779378919375003352005170162623512272300763049589392582581024226964313937037984799348401054729450964136492421259416909641139429385046936856980629287192975458659564634731264493572005032560463663105194400869693256748838049010532784951064382211366396457486800522265341768695650931887735737679638920548630295358572854671161557124016634432127564663687294295911157165736380988018669778144404890490832263134342217758417901863143317769095423041232429212595019126193037909520205721113089216061791468956778513695675966923581435093098412225383840685339141527440157245346516415137230264944524596528639835510242184559115523936190318055899014916250804386684794081689183668866586033345472010345416679939024784311687729174027338815771584574075955732842816366970379153043993655830288743389266845157310218810838826441705909321175299475269006043685607259571682894735543307573011685605909895186024903801472259544242011968541291249734582921219340634017248707882166828657672591251470837056302870892626431907304171175761441543168293462943246490035425468549358452753487134122808278087175902959741995708505718454947673180611827166088172295978795742079292553123418579612585513879308623434329978178855909484272820954519396681208113824472097382297861723574363827418893274881369575718899230503541485407246657439491138458009113112260079215700304494363100299406236192700262197379682010806091259531995048681061543303382377062354439344711299641605534100463247957508706295919872549523812725390476977888218384716101734212895414552797662509901655998931597407898310704018934958780706107857732009489961341992169585300073462470329009829015845711400192870270562334522116520245307603346216827625033772520442444960648532422137064788451348297434484085934258621744101583241210449800232970425258263823349386936485055474783860859841994506858615678102610023252669617319540159814570122287748756231017476173714219054838242591808250522080542762824162660243030184833049187595092599398393527583842354056116369020985742509246728395243897042969580249964660519490573881093705715325168110773085163997367248317503099301089579732747498468177947531448677836605642227842147202425894312905117691732320058546040760344637821479191774344973130502561607641601846213364166641838107329832268063404337753770615019639523876957912653943015515536117808777882484134408178161701581165326929012468191987585987599878396563042622271371888773548446364749571857260044908685630397171394972666485502437452336899886585593071372215803789059524487425314018258245788397391589547219707480600426108952674494937112968775898367742822449630176834914325663087969236420329514381490263659009324083550522599301596162043907791155830524126269591983588725289269465964660094676034759486512985326745015090123367749181239224766018597580848244572540254037414814532755957907921059340194646797821827350734281728050961238498368322911072197022784198209997349480267109300540274070747189279672744901996430728163235970233224779585833085530749721750899069974404133329083920981302877940380322675206853333871865939920426750098681213020653937003991335615288636201904620197951509232978539434597729419791099331102166764368451417333815660505709130816012159064162104878261522088907717600987483706908938312205703196654825291886232754501938560688012460389480694342864548777174515230893935601045007699009230777844621798418511922470094660314581944029380548183263051548435472209536081281815128698229616280279864474601098016588195811566904983149031756115973044380429435682570369880855962626114512481662247374591519739722219802729889350017207433929692269022699637052410714178426279901778015561322738282498049654826823854557497762701698675231340718382223126532543183994657407234413951018467294584113796472769632144315028490342147448090186064038431269884892488546936135698346127930701482225229000255051231911107778072444565100706317901074249732323830748713545641725451714248575232704156894425924303113877317404318246136964606211397441908922680268027089156718858630906829746463577749463688106566774343555736790351079675074611242616571303066886132448050986891041718917307658370475915103038183729174940459588689041592939679463365469539084750136950186064111567423283595855940225317657535450831864736891152344178193715798350573822902014319099286849233558971050402978906014077200124922918175950732862648638240691613638217110483962087774662958807248758779171670520753284092890790047336153592614820182905219284266118421260115194928081982667072360702936874621566200335191739468826939880848294199280882273089117053161566426728014345342463390450725047962652176490665654078193714905601515865387117674965666865468600859730815115391515587816955268920983179763072008986124762691445953910024871460294372032043645505517794394233738339243867464242843065273466411684223298471930487012433176769198752642670678604311219720097625964704499065915609163407694189571036449493210422287279477021934322837064056286216396943426084285631529578722852992959607256114440956234230788177144897644011601277157790516670930985018618063601006943464755463276475085929983087302296212625209773086576164484835145791255811659198914137368923096795016407222479787212295232548791156742237493001387559607833250744673838418083891139801160102980252098242767901312543887639181165307048487493002143899627436111360574487728178512744068950822974979039955004212094512034430949101041483615549687652419420734431425513948431713353753462118648924272953706779708252029559134736686244236808786848691838292311444220814986772851256264556981184822953283119550772293360397716978802936211579018997606222877820273118561435501649570329629662566727288750836915127597674843766430408829712131131615531727228509777110536747713564310279456184686293833606204374262624592818366759002731106304609017757373756735013082949663827518293334948422182695679229067890826344330872935507067401790017673955191538479651627719706248601379794835938894536451412703181716415519982693522886121801373569399423002535084590246383508569711355337702899900666820856467394337693529801510681775655094706031478756874942729791023272834164789885262098798232641874824036026784843925532606375489475119460356048287509362990808330399424930930481676071008955441099877496240131583470216013827763473258650128846614862391052623217166987515998341878888697011815455271823151958073614687102327390778049809473086458508717443092874419524984368370689312553825853343640791707253041434001141492220167677296335398072493726370061805123248184242783683006793626080098559693593458985680429185869647885581009859003655896519011327704207137728361989958430687916201282988478031817596074229721677568159396758115904883856991409948571693175644252958384186983353184729323843169425158453707873061896177251200796914513957631138675532311641890388047405026628470788713267115585427620832392606101306988135440735453901662796848549584082076128808959169584475503878522192018775956904843855096992220693923344546374992443537691098251992703857583353706285891423995556020950534679343110430618410440616727976273642874432521813728302054688795351887376761746959694228624652198209563994837279594182972279427712439167303405631155059563510802548767646521183333897085421012469626114714388677742185597940274101581445922258969909410287583561646911831577415806049586344790560260311278208182249522040421954062316642351525858230860869592371526259570874971704098527274583959857357619582479826433200071261329585027848705502365315692965772600896814434530206244724249178540680436714311754666867194038157598221327137754481617753322670156682956716160721037446241478616315435482565691333285217574074388477125990529044909374509108027898988308426945597039138866499354102386699340845604055627259003655184056557076100314639758809748903041049360954736817857989499625994045804661709929590628386101599105235343214843371117450588571906142714820581282805370787432240254061106915116524951970236815779782823992709498793783386637726458536148922111286513451864169928976375627200196030233243140151787307444484382454137021639195967749688149615203694086418304705600476128459489008024476585576387760200255697697133404420867208058935186279942082987342958983394669504249544053583682079458032360675305247200144705226956574737227351122219942039749430700182468504942769489750887574509045809072648567569933935333763758717813193832840209445678984485794399195338195329412645041204863937957327343194690421007669811914877226885039279357435874900510620790642982866692714496738518739748568907699240028615962790731352742248426165267912351767165856195157839132247778532440676313053619411182290041182617037636184084543834339194657902805908111443480667410433567831002864170835847197768099876579068586594765824229569414438492329669916811491789798688518602720768057484521601983535518959523723792345503056963302839263702834773737100932626953632999423330643412648395624878669892318966223993279838242212494770261865647281969131940444463580313766048401667416481326096720725576071049989962092619919927322039595865376088075968992996483106013418403312328992081063742966466586513191890336120160297630771709763514256604696646096221625205810186872789993429537521226514088144947969549554007020155315687903378546163600294794638948787473447739082743735874319839428655120153678740478755472559542725611047517009969723525077736812871229257157442688084478723718064758144026884655723350463722023220699277041272599427017129130675195471198699687063544068971330377107176586765579898617502871048024238481844640945800771536709569587376715048964479433700437743167688461283228064456338397575209897446969423444516813777977514362523784770140305337348524500167112174233501874571455281874657721460297357086958680911094656537229269997833691678238649268517736022171441557918675915771585156386090855003038739280870984289671590897874270450290061487203180579430863188494913218190504510324731500666348029492947000066603424644706380945202132041757507237914155557425273489726163239441922689947387703190093529324965478995723708555759274516859116370119405361222834387022149312303047001484714795400647021985868357115074477977181569255736098852929049812985638254603295889249877016311085424205320431067694884575672065525128452495591371957943434257716360873714517992591823805174614267043188101010992912717154523554643988651695151019705909156500844320064174534034108536538939772387310640563828583557287489265913127566902791242606900022577941609244238425791257062114287833413162242276868780700295749078807217806700830670318191199999705074257319137985017788806229121909658048115860530846732416667400503518963225883958895437127810280798057231638257782219244431245667428412260949824499396695601633160064561783082999389926314645326986503758548517523270917992375837316625812818871965642092945839117948793942862848724843232298266684193788843863729714344720596220618251459132427815734570865290516521075196583040049811601828589741333048689730746649696182028897325182531056812275994915097033733080223273147584864038235824181834585107927837642850296258581490004032627805133335095650173379082871232839954561233030386533627689883493203448461697626050890326860316307431602886698939185411988552073511664518225437252506185228682399730832022972520729368901696352986316396501403059418479127798174039539366662401511686767679796498881520648146844662137957803570462044498335450636112771156544216330575982156801474551891405966313594187748790197147611758371030046686718416230247207260745330499652991976267982083658210115280421279494520582959517506096508432488080576326683242276944654815752040010661397640636423063682127523369229362921129744706466116207747636250280506617451105432767584968003758668042065400882978299236883208276731500884837676914290143091074819657088060737252693450277439769518929323788221414049385532515448115750646811504203415466381123959107517085006732648860837271742036352872071361007466147056285980971307356031322040419332285310712838248903806476382787470971395039129833879259211041371427682205010049003037914825217742609434513837954974698695214037679488269006525151392336432683819437674355767624128693341472360851407207536968680426442634252429631074090189808897557078146087768675540110062127979356162602043245805387686018126591666417526535415313076358931311642717674012095335287459705687745828679415354751642601623138398068399284395557477581513775013865437681848493315421228523871239392708554105462769152224827764829625196756455095150249582069115580916820819431794214842484898293424540003761546297799620367636921908234126939335449234313771181457165458401960483224589072787397348344604705040224943250170507182127354032604365892845485955413484073944107930438723025001844952595154156975532470192056553717703517070259029453461639520933357535202132251760911122397964929664288584223363114711532353494271540860936838843767483349040779689205207440462578442942945133679095504106024030589311506344526724338013607148987802648179956451143336806197606697903273535303408687775336235104790852949695988891886892445720814326009019655152414185989710075343441405184962935235706915033506285806805202795621984641249276914198873317225806077448061083761948954378050769690879137882828522534287131112401446179425250916535809993205730832224633319577237114003335126855790327204702665167697852968657263188987876117124453032168604937303727360876863834828111790602466672777192723151753074173180090639582385275987062124927212698956549234703456719348136298648641083610533625777200812906689104087453841776523769022821431040298709744529203582510503249579354541628628795457019109058379028031863566289804068700330416799944657996238169994330263372173745328828647734503076800827919730648458695599079101581444066261630879035218651178568822799439655689388593598549199966904394133653375264976282168763919497263466562913525690810502113181324021529239577030802068633304117672403483423464874552645000504270407973079822143048452773124045462883525097747333253961954721599099797845548857566295401293828772464493624415921670285233310973368482071978267065772327193720675256952024605254845637429798091352164593794097517342008189871585036613217118095554846111953646402246745557120217632973684571567743746605797374289764014055247790934739307135729342461277318079718148138826710601511803414706643238373650254271612364139328787033945487887718936671206370276453461395289339003155888539359988807464804138131830098551670736591906460356734376941422356736741557123362886893531973787492075480207200430085526721426350014431749230068526052872752551049236484260272603055896928155286340104857214363738027098243946834646647109922759941680591599652528055076991600421010107402712653279216226525874987897011698557202683233425355334427647128718593789879975155396579983912744421389516835458413149093994213327099684407099031668863211247274247837351528497660570153313936996312108859996192988298415469960995210022800905779580555421814866556561130232048909957291855888507193581748099424373229561134234877130991644441032798207072932125343376906628354343894716821030681518651905769859228331023015210140363042863687975971197974084745177902286294249917982883169137683737728871230939094511424839307484963304603872921414687648406438905494308549704819443314748550609978117964798158262466288084369669091680319656424125983578205817288565107509339796055269586054195310175147204394689103552578892751139588771557975657296829610750243955647042555535351799324719901063457149672945259032573787819464937754842851991628537082251998906685028519901086961657084161853042294211801589579643305419795314575947358948896470346750104102964326005479711217063262547095518929395645418276182247706410529796263538722768394051831843005244713920658964443898156394057293703716109300596621480013868407676671891171536748769394383132420632759337969765854760806058023950310524187740029363630603770891928667208969937443037998313603639031622801191449157636437105383676495513476885995937295605011307350568133746938201635009969638600672021142804377079722041596642463882874151552543695340315333029274998408277183440979558281410349827239702153777625436606263813898143713276619802503008145917378932419283903071685481935479448604568412586877501490048158070717192967741304495548101990569621632271657840933926501901747835309942491489697504334231561290399614842127504162690905247693628143316372035495923905831897804326317214283240605366732605651790443911445892218484249175123441218106334618319097377010323711695847212450293681255045641568504724412224805404765188202497193837584142242970261927606113594411134297819297654125824534722165466355075941195185693190964991838879411809747438778370893701465919013496627867146368978054410039407428551795847559916960790031813360668229169185053546200783151531079773024213940511587423079785181382539496251222099006487087848191146764465674475897313439695509815206248277534664674360662604053616857857526583550929569977908767985060406848862338281050939475137379059375830784194985026972958321385704070954816295437996691462461299572126852827244510611100229605258906459200515090717068750472284762350231716330817455650572620388383397468365048483147933485067217088404600911863450783960345946408458356076864754610243086834928480815498664059114820487069631064273093327137121548653436380420209503272280878350649733158632258079380814967372343994167359348165629108846070697615450315755327442913467120209703920676134859732967224242497895416534634917563848695711381371392962607614764464846123326172209358247005769023798837958510428059024535593838530591851888866821021134912272645854753110866434299593798514455962589293631016652797269452902401820121385859437084087995559564797132950167681765103178258243350316617192917208724255313442897312041835735488777720367915570273983107592033386386516193113162144823775946689188030579783489203457423951795604245143294246452181337401250668443069732363604213539955343233376564427998025093501021438839775681425170190961024378918591071726706947590115435168841475630432339194590461062214562995998131104623833157406923019196841732336637669144710262490135785078552582228425874218226041932804391439198732984221556826619300510440910985151170173512456265674244390405789366462741362330243549084494248694496954833498231799402613592710042780668414906110420909451585533445078756363607148298603765038913758524562695099932590567215643591907385124906760850261006833713023372899069360231370852753720070332747227232782923472384714901264527718594323624713505414132046781529604495700718195282151284083438121857331582853113878334824457986319587821529236792032274385118903402545665557610788018277868678072781790062926069383178889116458835009425667645348249653583622456669699196605295622176431467774236286887451699542071128485876686192257516589143825859143741885904064890195641023902431441796047915038567329638041494445552827835424457850772382098855960761209950735059233491320228077063577141219441058307242828033880812525866884715380206327837947824822249375173994432027906884598631423280439343748122377959722681613706490208024496965672294834373438001564251994905922548451274051156969861265348880310983939830154694420602067761303485701919119932429648152414857302933871466128903120958648622667612876304925451136961813882100938226901819971478640616346864450859069105505713458224452276029114368531340340103502121310447469979936889811524269310081598301852643926143974707456923261596675012010002717428085523449481281258571865415253248121555922818802973380757934918398134831295675198836783238230141263894781870061758239305078759796699790039939603330108376586587780659822474274982662635595767081105243580700956618610907146032790266670731670638050281679860339185763747825620138294322524891704220658403067801804771780427838952796114533301439842770253993963455352114878718242124347342579478032591768952897537173270346482420788437429977893508624689909313276393026943457394976078057356472794526019887271389177192437294752513207076939661824554590683296703261344092917204707965286490645461382212974331761148878105061274904698916259833345772075249491303863225181716488036405060695468716975027264666934777169360641190206149379531316139396038427724077093125419086087082158948567065266165901119117126723179982316497867723945731834506851640108737568301208675676707344313538582165296413480060563453108479933057952653035045603144536082084518021607224590120916044687375069787959278542233466220098749997784910846472668902862799798615783278654262527103343685821330964141524392134568070293404309280832747720129770177874947462556614937036551354104251699464485354241331375411280537061686977298902843456112128819738808967389380291647560773513335967719077655328911433689484191369196878897048228043151179038550313960069540493267683431889386926021729643632966971024667860589118677383312252496245181962800467432980464897815127097358806616842555174722617424827522119669667245342841992172798049874398969696831090823438946212552626435497750688845945023906178238473464567152962731975044328476522985699148686363900701467598402578894643044078370443116059212452009443711293304251907930398143670452341280023270375762353846597696291547125137092904692862448801910573964034472530642544541012114017637097371181468665599945446162585527547449362451973960952147328243852141638646512169610359214773156895293151501985885183828736967804870642037698338413823355802491214549405515236320908515638687177185993855875634736629784951154263090991196898684342328982521097613611592774748317932122712216219871945343896091681348514240761210798499051204395923958993007946886914424034876748284748946955013262340277907046740636362167399329354661359296936843746558106955237730471967345785279415963920132417038710447482625523978859663276571579286750532674338711601287108891187258101252933669112175356880779906853492656865818125587444340806534235633648462623878044070416813581139173646974735256973276936139394709598919695458377005797034860329113335279413317852270132645214639238222755854192072441756915898336943264378784361474755757172561770756855086232226500867230441758023438809770165355240011847012946501105186629286769507640034098923394238784753663039523722072926032576078111818445647152052412436510792963530304031548975425199208200854273681816497087121732227452225508034288335059854497357881923603961980095874742218294752797330127405466955043662780835867553266641114617547056206967861349796790800198006478678501303644475907988967596119065218326431383382946209828634428952689817879606121025352432913483296033001702771688935230046173416346874085208745135066902029138160155114324367622841709415600742238536959950250797306762096093801684396524072928888765589524946995846963279624917675832413442285183575973083758060886499985780602840908351930825664114201511335864898691281145181064036736925760461133184110124702286910237601082741925698822171008659298590717403755936623102884172026015773840340398383734650875367791320004362304649770952463286455276476327286451700035544779839108927415164155992576255254485740315316677921583536945102429870286376358787355544171912828675518305281994200206685403159245189960683818080453091054703052738928259313679770904965715527543821129152791579639583632167154704137368019663293105397456559717315851890011030565027911359121094453138795127455624513971158521907835159281334281075081690058867589137810251960049545618076215007652177188281391624285926843028784652392039554317927545944191804241705169045740144460460154089709893637900540825824398246292803094952789581163925461063215250217041079136448967466000510263651783085325578525300723111280441337377736556512594403968176779917812934296188138593556290925526501947058222375949374750690539559963107403977841844480802254749103570634334169744943529440123446140241427364732925192263026099396591276420387098236955268365647745910155204339979773344902089613644066931697007331749983523412595823375068068818060048683352300860439611645542271245939622801914637176598820812808868397498736581066364734926501098874335027364870712747826203032594777774375261603254205668213165711421520030126813496338802794309656204078127382721480983313370335130104911136387649267622248759185870268226502636606731754714944525539566309216747850763312472729839223404808693784035710697040139410210404585767252495376943488387380169838369927366508928851477280770693673589417627538663300273621275911179647719478887617172500665207128589133211960120190823725813074437112567896547228728608543388680917277889227324474915547351369597892919136869821994368375179166838411743472391810756642534602609887398676166942908929532998935518564741607216928590445685073019631428936690891794113667016099142261253455175289148507877081826844299328549894834181435651377363047892891908334379606256333764404322460749319250599010926948748360278093948448108031139690751349375417638226051618112967499693230111781491076106529878146666033185596772731453008735023769127039253991576297909943819737511092243569347870587614273713186726854453809933614720091838596146075187245268027283026336925809894097837834756178323918831214735584143027085900043743249176201197666305090990851279126929910643593069909943096450421357998117509425390336146462638956860125281549163288946482607473475738585094126361342478623752553104145314824576907703559728716550586082384211582024424660775352076013445228275823945227763891822976602127006102880985625500213853995068666785669609040539989147733904327503889583814241481175157113771833782985926052407389923545454636883657759841528465843109323464606094280034903596230476775862563103671170978381889420471690754616659575986592652791536387074431717382299790495701587558676148888855463320126655282893639108704102163214559131180198649487160387749269966199132153859327002369634321443364253595014358635048125258707665965051882652400048251526934248850916426739284481812382040531975044285959431923898548275607039494131288103612008775167003687433738523404253140918828177131453559610972532277585616616896437947768323980538528388506620416561942551774277420067989353401370948372217031108603641328478945725074438145978244930068862338559225754096560091578998893548499450708608399805547175161327387721752625170260609061738506301330789516984715098976725651586296768333480897900913773014150157535006498613892431330613899030569676388320700926948860794179336526729960672301274785443824239295747170102366851692555567475795345772015743720567809312514570910594890171048406005389143600394416550015174536525497540982278090294423237729698287195470493994970681492048217345339480249417624020711356933691849446365320276759167238285540111998579261130299282746465327659525833840678592154538711466568447143523599878309673733199109704608470081593159072835998182893760554099052217904853428865605101952504705412502106358396168940040271620295498520720408068227319954436617902755610309513470274348323759717598817817682635151624996428795534229207676154196259347238375991347570177774347478162190985605686985925203298794059851356605049117431018621460692774347405627007271073508787627065189258977287312043477959111460043178103956977528193583788434938736445512572873189991018058240975081057579670037534961173981302057680577381418715932136781378507037379517876104772304650598872117020155862278692673612393251874815070961568062800542947348646315321139484832918853064404016906912283409914843774605673130656843964850160561156279590905815801546495427054778509489185590998586477573611512184652255873998132299486431419651850201740478823340910999227618935337016627636950823131315531285734394538118727210805814311067879273893703338651929101615460991492343756151734507538288572369444868031837922051512927566164587527317661015303078408334674523897231927218934003565238613838182357354212902675107687877210874244329383337007971994281851990094164319063590281822266316118611024767955189374570642938436449457610544490255505822615256559274072820888076692228722001497690965898932611543702619011399444387024795276465945693209310481967607341993868256534276527870258516009451370138655929421696537525378978877809073462963687428520848653745423046070385403696935034910121225136838465746752085162348922715137314136597276243148068954476241774310241875617382742273197224917317633064886515093184326184091476119185876548227107646616443190546440197785527218448800369372137971620033704939415315764027975051267089956137828144479303818657220614091327434267893496411115997395963803820209332754993964134181832810027478970283483301366703101335154622670839331266283819089136224523294664290117103203124425147194894239271775465002038717020697216145145061804783938671313171136771210469990157757214737369243443964432018819026307548149475270539649207752856862141078397301144757287895497379855680659668924745393447448419414881614893273787444918525605566350078529374939952796244455499925941410618466406143613467178211983682626717442276251305377843953477933597533280997793502880551865866562644762947778764799564689679867226102851978331346938238900593671760669016529337837476876871420951019847377730211935742526140474351726552180722371376952871896117676379145935704350232392286418278022642572765969981740845115856672717425263615758274825522149464564202007853699734883466628726867435435977268167425835362272451999277597264966911303233134408799567240765206155215539012472519692418013680385453470339473776933901820713005720666748460909720010764090543296663890843685784839877086824587762327974657963863995171238151391870734527645388559639530628064866171249949482587164809775153062517042185062028770711778061417648386911714977710918470489313896959843404556068129254269070639493367108949975980038503564837165005539779870880669931106895446696584543922373238141772109888735127701475274724672586583436298592241851982574448408986805777398352560670855891817560461641566760443050795304364665182982959749793022916645209933420882445364099010907783116827244336886934881630735045955653602977667370667646767988609238376287867933648217503307673055980070230588622262892720532105356255413748288279693680426394372792349176982838870762411650206809853552012964530534932079124516369067828228966913411731973723318232024134971161466570447152283270084764587858518625272772329596500570250431318299816315039146498800303822354923099155677645712365673012954035674885787943900721373424901816764870896718475470565004173521429494347267320418996507938246019887645103109994309463265372973296875395006771138871672352022833122155167855744012287214934570296581112718577057763559892422615568212650480578040006814738041346318337121294053747376744694818981600975047771401616929936723695379570620070543661336844148857493748534804762300661336712064774582317207543923649748556724042162276377127713094399318245738503986214743148204984262786218412623041954537135242014497569715826507459721513106132848579591671166531297913250223235634064972732742226303573719543829867465931936090920406529986785109547899389660241283700444175873301021456002049258819719996484928078536379816929839641494025803737352559660336350798093172936940894700817060893622605959981042055252304908589857015495945775267798095666075269231675305357634532533808868514549746223582021226242778430918985141410268530204650410286450561118498414795864006679109649980437938492248830385637031963489438969279576362719428094633626601240255638644675747847322537476979149524861469673740274218607102218488053199214065911276497917108301110011513818859194579836487971314658505307821063122037156962380217987686577960065092494875730121617947534895296796483177630092882506863959911367033672164982094891422060299335191541615169890895888046816697679346886372720092178208456079323463595341487702269803593540494168049220127375019892326957115659947378476958154471324092152352501229757670979683356367681569281734361329455594600538988716999765357310812851589828757976500675290867275578568381920238783193508004342207381539968292240563739125521533600328194064038331595453632724816513012599854618026674819831335331835504543364969518688800656700562988846033218778925774851946873892293788682747122829772464350342027964719751535245822263438423354970616761301457440191223654543022114495363355708405512715403939895152752126269815038074005883000468169098355867943149373952966951063632185422888331507840183320335118936964857548155300349925821200326095957131021218792945673868609340829989416137239632538559928759007879726468751599882998913897999044072649107956373573605346520474441278384870465909763616255471234642781817697984619698172380225482408835235793953074635442015566879517056450688072641736078466011411176892706537838076280378280493210743638552744641369867047052387928983534042335698718591575869870678086956092274048344277988761223617950906833061602932659285158191342585741333074298554396342454578875108844083575555564982697071185237088268004073762843014904432904206548402649049022480272359184072678756476110763014385614311815067079505565772431789890510412431925794843122312275962395518049519038060223528250291242371176848360350970232275880386057744673642215254821256292496370250824362828158645417366975879597293992119564551925426457372530727861739364294952631161364382240793175649439182232703604834807880858310133117895315532207310176032013020158033359890646071205835536593872748432210015695959076352621338020259318327043484544199429326802431735514054667074950920151202892487367171918439146996944345867644496835447477983771045811489360073989995967173350531393176190439579835575212940485214572595386287632209385151307846220890277378323561431769339803783821115178986503465505868461391740903280060708704195813292802175141425850642257570378167874827719193925400576865809174199143029150186252792530311246071245757936288700134747830326579916070591490986522475718562697050676742653186453188648486344790035604727477222938045651565096690911541223308472766126910060384774696508546856961631232151757725885857528414722825519418773867698612604365522653929676186243740422558877197477436579702881972148365047451489658521996348099844682646854637616817202483351843889914619549242889880648834475993249942815227441009176984632915438102817933921746385508022960064045050097519294038283770214137694970568417396747846876681081133619755603454280664584616730419075550972148171873962714826903941994103096185738901772845569054112586788457934043595751718565265544123472339022460708755324884852038807765302173507313932900918007413885969975050735873227719663620531703476696892207932453956316369823088346042177254049347359944264402377580806924877277769195800198162324854833976378145942339273280091871974634149747121746221186831769698436382317026559632417088429653971020819939415043167401450441820678128394425457867260126728228486959269626738166995406790019844363497674347780863992846884102080045104869500528601685853050388446900199395842914519465306014949427273332466109448300604696086470495480156302745369202239057700670818042592370751881211059212141634941691517631206296505915753727625084483065655364126543890863849577357998877868957934208680716962293770646313637807418255740174566983680905994223914556993564068874163869857025633167023694488195964389985108687837480797952594147247073189031920515290750130579946862181165844396265026238622169620491528434022770110241671685861531860121501046809258579135779957602010864716735321777772773595096456205609383142644260532553873428364004921141177184714461781860384361270205623040341308053376255697666931568356113947230635805451144887579467312213645483890241057593184915846625368412475553556718647306635152542837921286012809581995867498808082617777431396918341653384798063483762256084423607137653871964904802615895313280951205334852557156571748675230548382590392248488878937750151717451962933276826347415629502082588040595712540347399428402782155047843033900101601388882191792361661098988114759215870555832307358716989062419319619917189171082458650199133050503102265129688347375881643833681511921412850075404314309254490859845951648319035655555843486659051610001574957173316454620103748259819773067973232457925649043530396200654678138738085578760541494806473202189455012357750521716597481485589203255359179268066457329396346863522522484243403802135586888776137840181209395613267653841805622668659555242999326841221866061310688973751985636008047851644461066379937089882710681369756434550130747667768213286042407932790889751119678345106753367214947703035958545657022821050922623580739965188285585001769426576236406755102251668409889749113018762433172424595509613893220878078015609048896961717475516358157577216202342596700303465912726696314017590506876056002997770194488304207314915904545026277809434927208435245974824374974077501922469235766849005441233230989832744095671063719845678369545599689230100391628765017679208882045190870345145287172578655452033039690646218811388846015549943883056710239704000949692512628754941422677701922378528576755448116453330957956236630063766619059633999984879160453643228290155049897429942409234792956491601098570931884823607447365888613943299309513296204533496529565738860360909869034910847511933760306755512427460962474390989372763683416760917508264478734406388623968419617953965179294372023113423502212818593933881358513270600323979065324869970732544819550650720118155962612311373331917775040678873491288789422174972203339511560379582489626912336071440791166192164536630685247713121743239697621636381958941855187975312698937969058034417240873112626851590537503599584606509196027629394644657160517379430725472445423648485647608793489816780869713458296065909293820953880938912132994031789894204466732954015517856893894944121389943032236537794667800477622518939904626383422707647959630051768746342341663870350854562707803377077205826567686660365424062854218018060915707161764960310331811297287669103399105490295275123024671276835822380009017278200123508631230905073395103700836831308115264982144940472736212060327340551256489447982362518477427572815906706488434434424582622776176052201504454989450869016667606440691730740651769596267261775273199484469727714789983363811284078732050589905049323715631221616312451309388735720222929897816743609798445950496618299367288179512314199719061660805624492075790301568827073089371335411097135229996843941799579307134351392362582838615807126515758343713433969855469859767613479998025145301905882963657212606127908871899014195198892677026734230386353463289908695167827197547620736771077362260497845226819683629528207570043098615128061588358737138888079586973080779566787033615569216725001808154752117755575189452012268178192918220024415867472065449639938799537957657585060151886505925243226346272705434198702863413922699993844673465506735619639639041605398957735112168085214648194236876619865535591834003605240600266173467583369302611497120055446116603671951736928075540143536984351891153524154169220464217317997829017412493573837819627925304907600657616593705902650341788894389139236727298952932034398022128992545496696066916653339390466102944007211877446637072244291946550469961849211480202435291682270722516853503815341073573687703616325736560910522040509730892337468420960207210730251732941600261892707817221540502491618251545196768587053482528864123712733087981861151955578735428111976531265428437013155256040157111519733562373372643237901829351698915197711918232860785312504604165322753934448320099471062514087217070140118963962139536694577348863737615009513434932845809710071706718856308119626576251756434450546464144216492525516251069548490453600853037761617929204351898161939599828171142920753719932258822122075932404938800211075632807460585018891156616533160873935035294403110433107016464167743899109990354631553343833658957885012555712413387222235321380712158331805314990335157046902075091747378806577790521071211166579388458692647758891648045568366379768862177386495170787867109034215392273992645367076015247906897235055545333396214870844064320045228048601674966703864236616886880647034653056122073436529389585832639937325251219236819023616947766940147966201762305064988314773596067836950952494382215169658766078597285153876137663197884287987735399238624546721962842983399455477139690259753555078010399679363314936126130827602783037728186887615934683910646478709926974641538160183254723315965096545949461611749402339238999454636421538896364197174805292970790594337880499081361702260272414808302148397606269679987284136656390101618524776160780951790860616410051704582381254967030509699268479566330500592377973162388318090879107968755009306526279640282451266181580682706317316573739868907079206180470178780912712317268660855620196032185237840877791665946508807271751107333879312613904808101756426987952577755500910599621186493939558279379800983358658303496346765225453409248738123278650570854975465429742045591206149220912580107942441713137204564536417825222739727301685910156892329445167546009956894084725561054499275729548187325696641220843216138987966474271878074244348823554710031935320390290713025999992384023652497966776197035051333210468332457723386668950280040198255242691648787906202984571114466697163220113438086177438546024469299395202759260744299234095608442455195940380983058714679657906260783845221544400449770477389170875047759103715060685081474735023406442745111113638717077237948501030286347870411033453018585185024728941575791158051095613182258944666502299545998236565931550559199990441361346027696685328952026572412219547529892184079951927561868276923412549423683203702860133361170882414578453449550261943676568713022625085139870607811426922133003972681448770601118647040173367939356270276858504720570481948001659928231111068029275101626331511671435678172122845622777668219825397795952461647136729744102166041933793139220724765923484118212526108384869397803606557815436916032075710896213826967765769900272618569489356736184402095595147079043346977272603095858604081476187856279078221897132410653607577545342549443818028906924642742809995991688477199591172335998033978238971246220510154676189367795635919911697987013167806866559661343232967418663765995531013200294585803823304242349981085291731633391904751721653450357276830377172535535724814677530853382874097139186673798073102351288885842332170718178890489759011150604150965705669180406752240633830970262439781735410296988108407870308402320149694208138036979742653975287075210773457538059127052336736436436489286155390982371636896468002492211382586413444619286250798777214599869986973207267429957333388931633803985092240544870329154871128004656778131094119302489145233932872850888944556946725238828502191771405423438221552213821872891711263726202487801795872160263649256528223954420973889046487080913927219425655497926258347432442174450445501849720935547106933589313048186918178030721442762241287387367592292864166045290782064940692325415809474139518065469589668443327271637298031391006201188890379874536303951225599796724835531688378524802676458880639692730121510625250102004744606280597626508696638448937728931750454252116499416434272340064037105037977563354420830600183790958228809127981383313046860840046747692007316277945251428898511215153136270600275531642679714004924487552852114077770715486922278717216038059110621846396640186187263009265170355197755018415777299556978950749668494817597898802045424067113925933445585037497841423467197553716262700203394251655639966200287786187525819158555674092078373492176363324605547771324076396746036267060127713828046970854322461943559718801617595829999149060989212132366941002058112364041256383844812124932887855488062715075982202501958853492819246887688456192321261180588015320676072131630397652392895723695370218266649096818722192908739162855431374575305815805692672092811932218887884823552712481539651208902085709209258439593217670414230420983870304409604610053212452969009754825583607767492605006531397438126292412571855510827542540150576851812936803056642779953257931773433588205822482347165599631639761088171591345089453314378256954091027064362580402440465214734371335410837266831879400144632853673970249296553678723708249462828722199703778375743781470255552301530359079722817232964954612978277461356548748222009362290945358285051310072946280008134011614172735887041433644876745401115491400995275689673469216414339578433468407259025495741416574090439517224820727613922557143188541370664402440073852215089764972963330706279611928053943544722731987364246973487224770517953875005474338156086265704340856593213928351471379747299311905310216051968604998933261342864896350030405344687402403840698659452331179120812178931045297551491527767246825128430141806194616964364542081503034388499344549712461132729373034519709557497846823927210421613398214867836613131497979200708579716867956642024370421832104953882492068963198592899688815857753803986686258654116393952236254369443020495149378289512524133628103151606654997355644898528791091122209187259589764797899000377321388964330906413708947869054364854004558572201347046195163449187334694397122266944910636577715863996994070624562869106526882437573217938201871624623353202033213613661173537780838815996186692422635758251308413047634785886792344856549740137456443131009192838479647198017277796720595596339304527503132872331973497645695278430751911331639784780579835279442493960150660121088913955338670878220361397970828958475844810617831025301424630909335698889445900848627095791862270132355762145431204328678960458578961536765799834359822052031406643621357387686705587645751503474097971757130802260050322533164353300447897250836591087212518316389083794205287725524062536648449879626358662490137781930583208744111817354785532739711086071078637540148707179665282578200851707156581729784117484435906543702594508286670059278840954584595203937406064461387575068407651161245960526005226497930404516403392916583212741262055105182978742681779335684160609617395363659474703803604316115386258999473179432350553391304121594549396866001591050058527392496415383891507572915252772454949931994145031459156349923982438388742712070029535463004771384418972487221445692695935693506704713887250607483159666243187837535933949109821414837010078358178257771625225773256535589184446938372072429723992367410702004679859862303690554431823845823990408785941536820593212760393887313473730185081014297509420493442253876800312135666938402293366116696705594281974923227589189384561118195277085588592102493553380123455889060121640210069739874420811641598113968926081547210220675503630561982742399086045108971451565355743766290330730345841815309941851071201226059147038819334231503540300624544690013102125667282680040415608783856007083998640385519590433879201615475156171445876252528922445126364598870839276479566326476246294701791585936578397138231792259286714400653335662541441499401386994233106821721410402166391436157066866580431494704011160510651295768573472376673603215124223346302534916079952745061400334497988754599476940712799315640272057302707198713859063520266584952255978236868356121095149737007674431853985878911260542589489860594457649964704471881775433341990987417562987402974044503141264533191939572877207580303934890928193840393052261099448650285438385878055313673366315961081110404017486413218533231944948019930652339009655143867466038314472550121146583605579996512752747995229346425975168027570826883666790352862474518884775459615641198395890082655313153036925353106067541296537904377953252819181796584007013693880362549039201565620676788215660392653972395457728243467139093364046247090406238001694035964815166557331070939400608733587757941610312370321049794741537757754394095634285572360610553726272021677808736070614655260977142267267119454254274249989560095353817032802574934723974953237334809139941516318307325746144069419699140919768212083662397906165840230897003215998612624576809752117301814516391186103394435598772340078082891880162114004297572720287455475615756464837805494380647808308745366419347494083632674957538829879590597085551805647314962877118129501328929512901292913102898162403721879598985871217664551016276156551100135810987593497794767834927889360562051536595716640176353426341900151103317956975837400012383355806060505505443009789185605842928306569925856084487372876978209742880998597290587411076172887460589326828203732933429744423555444080518927973366776499736112830293523607884492133266093395910811503945171657130993166390105078399352495508514183859892392433839167869392696437539312201090620514394885332440954997835246274194111808160376609055988929098009748833635559617801287701647271158669312141604830343028812608058857085151393275624425310894035258001490871936734983751581243367043882026905332558238027597607554087886480616282806447228713527314421177689876753583617025570644061550105611043856815101195645311735982873237183454011493163507661756353414982036283358928309299193514241962591601348630779298863670461523157352362102469319775696909264224307010404612532760690040215119101909898639606908561768216295423566378624153332896133738371356639486356743184887655710640640905830270573406726498181817430840841905328510416216538783043621106932875917986809012055598833078662092841444352282079302993593353709895347606184360254514951288099556998488312859529849282675220665917851819915019073525623703429800888407924672369940388679516392655528655718296580442868481449742574680154105973544889450615880817239608039438349299687930768971347553538920446237492267519539730083512636498047781295706275832306704950807132447742899714966761346446852823907152256459631994139638141751566600486604859483264997233317177290089631935428761649295791012271095192317193848612203692913461481600330183830548740185914129876452340472659230635632068383469521366993218769479200610148975726314849300585858608266749921923517134413193078768109719831422640610039202196465339157453909580229709882064450489989378920079493140460549872630591456087894917598019619870798124695444487260632908904068120086838693249926644932062416587630143459540749649397468778106709684436365349032139954837644061913506336647681289188448366260841547968770814873324125389049657495415136858455539056580042749083949401108026930184771343884747614231357616814364194154395730791612582369694851437574234157626720207383458261209516363302961332019006252552159788741954050996072341298019114290682852557916882216821435711985072774845165101736112506517329557077220612996644891291414550021053566781985026318620735486994747430157420918865688074121428347207748783903814963749674836694971608287424988064403625712043992208964018275648759864327098389618860462390942883402491959088272687204677132139435723418173871488069755028164499939778180459772799283843043990498054711233123269224185294817626028231483769444370928269174995350987092188326752341566935003542769553186341710990726492733681145185730676156176667128486618250259558288138892723604122720532872359156881151884716902838902032303779290779262746682809818016548343172222974560639743537945461671342598673952252981433851625653596544805263818042181328009633379296548846618529500972837221159490786335080739088768604335522528844262747825085427233841795513580992822948404869618587099044553486840624156893343097978354055530338413232043697444589561810533511454843496851088001972356354515560488669666134546173797787000652024244902039536965098926877822267905346114443725457361282372581725440475794314730734371468134842939730555261459355381840842781661253037481124097012235827179347038729741264280181993268335821931769963611370691649174980373187780014416380637388402814585093290406811434838912373378597169824208294557717383198063708595114058328251434462260392145277348057356834064074115287475648041550435606542768743769425230984335345321683116166581140469920877488135878698272815397881632422274838577226318813348730694228221822654700923297401774466272798237224012521084715980649247190816256539399059397246010369605149786539337779207500939836305395505488801110762400307695103272407904201200747552483902576408718205427465397868828215442596119916562578985643392152629619278413442073034916365516933301312355815205605459632333844246547219741404774387552199897352691630861217080093746882621078873945057292219933807757859540237642666273128985251224562908921175120141836829548959320300408349063682290789695738730449097360265561803907578676897414578324528396569500590676116781964669296284215078121133011028726276324555175570900202808256188568190945559402737883123405167894505464405323545858340837424992540574759756081175967702133480282035937571999913463193093768270370227085265819640512326370690547414188992087079013036664512777068764671376141642549028852773023805573786720448249225322440001987082808884042525021078880471707682608301977038084154582765605705024025580723433315187962841775847137497304040271421517497969829681943581522752617956586675922844531306883198396399072433613924077606989881752091258331287244950725990021409611662496987285252248451143445791249918612459432731328538238900881645206490246449657754754828548296880004276483936697971090629789424936199845077087499378443426425792155043878090512955734528690760615062642090178825105675032072685106101973490575103992995770372409733827864140245984420960895338152831694358700268156364856721958358666200577146125843104062671570489507854268756679668981161297697361744545353323020335921020946591872072542198649450755871918645506125949932427919889216109897187703871197686031394741815334040701585171902803395911781492257638397649039685464338223298357314001390759249052677822169304058175187756104026966928900396115411488826314808471677429497651326421748229556127028875732945854438655756835014518848022628704838721282383021083023370653731732171784651440256436460800371578512006080102685667559923146238462429746683894174999440216705594250359135104868117110919631288133995758879616048272415922390020025562533708334380602704801243548529728839442231245926163849463750177192506396342798649824417524545832915184717496949226117932539982369648639190331962327429885503026808728065497203804332594733664410141334083732974922382221626315043658378108903402783173771088178673950208651804928225761908889659422494229030806300557345135164207730442445161869331747250088106930355963803767597153307669230094123243664342719492806430169275834722567050117344131542640757960753188430051551610504255531748623621908844413771462175752354889289114426220511097584982072802650712036514282758641775642190310362339501656537026372781491843313023822758413227456798616658897280809057814477189555109229034166792285353239223400195483582691496087040946424382142598898542092005742271829477515668159259630242057198976060628334397514009414507585986628064067016785339674372663777383097815891304690317530211794126580533186950791614689818081044226420828665475813255330819733150597564338111751081741728842367228144085131967376117460546283734454752749546558435332113971353037000087962776201118024695934602281996960211576964125984536009886455547381593582749130859945576791894586610861729389542759309147066821906129238292396862329437531693714434058270072585975288926401744696998308246016069901591252309099122734231483834068982389145809000326538408898440393306547355528605237805098688028149191937639051279042166519637192669609140816599200372139378590709473125447065337105573825175995789382076770838877476222617932841427937262004832051213134748191035922591116118089092250127659051292850702896192864022463793342375387736887863418807245324398131960042359572725390357914050668567156848144806891236430467954935799928674681107386818976482912202867287344665512076190716466674714435145916637905925172600797200634909909312489655219995244479667783979079941158282202859397849454901110535919228858360394874488614063317706503284408508194593124690676451229686164730761235001238480973301448351336285157465635921011352961756691642572273171332353829105350589796084014054015455195806581235320056408679497883538028200764660297789941419107855806011426672016434206913410436321514904530543296541817124205177803650845579128263179904937099892877236033374960017962491860388035882506274359575715164510717280551155714467572529528142147269667378717221146251067761813510382823775101330493456297048943160419237412932173460508614962339618780265779799476516373295799164189150568399363109329914169429551426698597268214247709839333088686414429751226854850001054028805406772548970287135268989416070111065660680581631102401836864644543922518459829379528494324785135407320277140064490861182791120207386532470217505119623762330668940228764766911768572267709944168301869147719136256219416138833437765896742171136370775771656029746436333927835054883938418356675539734909018598958568025873854836629768695772822099655249484315971211531425655221008494756734293769845716810797709593992569615158970453190274635498218401374155976351249646314088854227352718772396785833930675858420466678615421054039317065427745994611759312412171064458965697017152895245318683294634260000511634469508775804902222818148838863389507594568081505860156488785104562770534688242550252186985255498632514556785352116468437705544783141263318380238025690223018864823981642569990870383572295160429359974494091076634438906819940323746509138430163792337206775147569904979899080263346270884429535801385850913798919382943863779327781206723843333588795667150193014389712012478309335092380132620334746782359747704536638241467623555454562517286916538947609275233380859362941499423235270166435404405630785791666916618094841689578534461901049523821254904214115767182609492804089055591491914951110496621894974247717927411866160102766746615138692399327548174324602014334053086339295698176092535276751269971735445788911521100034745070954846831923306232528816954505534630796706418582608618734141403643549241665714479302200997417986346432245448723719044160965016826977410496879509215455310289622079773420545820775144081572890873924731136356972009677603728276508047080217958946078755521576037334637598520262529256242405591139713782098694740735122698807279641100775068834602332213573386126600403117378952750942530336529164222648255521028480813902706497059796052443474051874395894369481874561945155825467413112753757933322464165039301585993009789488046061777249599724240085081504251423731741668024883110620833786957406049059381561823334317056007940726450963169736709201022981335998580785836621705673284323833936985319499679803006308003157279555025678542847013107553445511957004000021573731235235406102638722825173637079593781508750757587795946745829777705857300054158829511633101761500980748987278429500563150557483196950956724745971302191484076010166154156342772537081268380758293867864977490476789874556153586645495813366848947420903902097870221981580510146906450304825859128846420687608403103836442123467675560235525066032052174083673424182820437678898207722427517584474838220704789843040914922736132006208305107315078449660256699876253764584503189942128237296218253809041437096140179009344718013787262273008924971993715844136491467759329634155129658150454290948379501603626997075653106444537259654453739135886450747548741902618710826020007502094818055803047695440252948483368787285573946152355739880460954887804514497015980762314104619534963355226351013649381427915780867642662361588532933725776601885068258656347023556003047181362011172314080155196796124071111637479107545701064728835995119393548181923782749603136055167511335465538773461379046701621893872578040859528835950342472664529497941191634847435336548215598478238149059514285745933679309619707482164056562782505826809972732159519256715507203557086621494435925634380329753079903118431519626506957387683694373107860749776126049452584517172851340360726632696488506983157500084989174108058785087312215944605455442922563399539170622387168762287190141301725576422606570015847330319754385479433016954646227947583445016327499099143865738376330347372061885255380920568239036312542352227528783723451576325584260420193587173842660168978024117289749187950886027437525329809320139011689177349764140193308253757868288797647550136140854761594919648364934189067966259132066510218124053881517013017708219313307348564333774819302548168385702231760860846054105693978198606678328255431480958821217352802550365004793732941539448747511551284446522029040164013240789099401152886321740857707107182922639798772742236549844800000077333018128365660518127973575167239894814534728391351722700062243499903438468322907279570957026805049745664324289546743352673682187884763846025841210812978830010339330735941351449931667279291050341224978533656515683357861459310707096421326899099201218313976885596095457413713743303024262527429910741702112488262090771363173924243694312298460340565336506822603376165687369815521361849580525013141938744777045894934312345540901680153055786338291078076952965366774517551664877440422506502092134536620675032048637390566115152690691824849495852892912944764084590026463822519594032987404604018283863624514965371338781224601612707762794793137733550240670434946110245982816746941743887029419209887404533451991462398835660415121380950249222992360556525547303830113178218985339858227346609967827161030726763811271956744319350570481019562401082623602124001239206734170352663482746605870008030919261742361778402687105139746219024478161025197965916155174375384380516344012773706975451782135410991857926267878042070357475180534887580069239478005409851323380441781644112564709347131488594124382187703712552084057600899250146258180168563198145441772322966945702828825942520109349834822502629198396575137308680958112786901342003091666958871733555625500864632186995562312012076204890649929040949510697937030257234065257808495888768383471473100271322338180682429344165328020970582162552985052839643890823307210592297917508579248347734544952102235708417055136394572887715588029233544297893739034113672121135359160656372871879612960557657953334417812599840491633106108630922874926559306043592061814795189866736737026982901504231656115384062205639619026614972661709518050980360433623762253938313386462269434494257385219774542705552767728587358738229798036656449562725311982212002128217849612422325556843229036575743436155803081316119827500509096588614921657283146040940788516741019986260066817186925803949807681575176745311135622201300849333648224404931213504445383696196315034337924737382858789690843510003247298335209083693865630197295174261108232095450561361961652895366409114786215928131965835584027029873668145015964529333937835606542706080761483097083682057153544643028277046853635268499734034242367078056557061032350449506215404973053947326779220544313967014751324690874371550652636408586891966460426508106177981744057584060728687615604002605671805539396959694644560288444751979881361215768967419080007775741906148917703068327826885509072076841287804161054297999491669909630784282207159510302927220173968900511684491941680755587208854511364329147084021838944066886454101732217017251341773833318256112096311752222329055170676480356544748233278354624786244335540984076806467508269869782050935119488978755644566617520804657097428271572643438706272828821236669366853485735637706628804459550631334579564850414883147851047251289001541346624060122505681632668936285143962750456937867408143879982118026393490356965126666349527663664185376403920579065017136267530028021252818809692300913848919528835227529998073212786465858299775555203470462180337896218801508112653055180924376800037259949412557244354081520664554809257841950447665895867871469988325725546933403826651746153989803821123069983056073409539329535251898020694651112097998866421311078286792027648684713321662820179069046148359050426231173807516332909282976274550306016568344078948820538254121880595225908468063926754219403791260868680040273082177656727399471403804760847779176210114501867227711539691286838269295927848428080327731137951539424047479458202769831367397882358432610511619792469254912694045360918947292747839228817061778388286415705381937327796139997197734700587512654198733552643741113216431724609148276187587414101977341665552491557345882797245616013676311532502328406152452131433485939296453043146771344646253923364631049886070919475325835141992009515275297436589184948887246946445112892765550507566613605736684030512449736153201385397281765512055238484722381133025763789940519409064345007583848720751874335000898100829301011040943627158896753030482518270399871667732472797227391973431613144025911817403904156492490735943646965427279337024991975041997720372335850682571242307635611760843193066672608774923705487088768648990432211961807445937510457820322808854811560058358280352606159428089322385030599479298068441808579489364463315942127806626859721049304855088670593285834640349143876698788256460322032977261288964266113812222715852360132249494357178089849271489567338365574670976727100815856427371762021871258830994618967967328326532649852224605000311840825101999387326885395760593483348825662566288102557837030216736911424117728851295791061698533643208876604602271951172690026359011237181336477884553410313921654785896986624297411147747851465310501582571836329497259857517115682595660453649015316438597626453284668608461906178645347060581530235031664324086984009371630643070480396327337088882274890489534663177311519421724560680084256777290134629589309729595656766674989182204080784120855835759953532934537822523480377626860857196624715068990736573633923095897738675488259274595955037731853430698436326279519062430558879251681193106591979763648788916150818395464721970158088492138671643766642373580512526865900323167226564019630897184372490694751627222983416248717627853700121098779436588097822879051241980520160460966320564616727595088354236562920334668235605287078392359398998022688632822858886791623718905753184276072786247841106698565278060709831717478969901923016405866917897251683378395765831997404381274816824558998521722729094590591185383850400692624945709276084946861925457366685420559935819177452297071899280992255808292345114627498990473482779185916786832871875173341468080003052300795355627554464641566945667074988217731359614813445520901478782956564644730968695631243628663695018036450125776289715888672976772342165154260908136556577521628442907155234139680477504677395237817600284563074163602311459489311785534230868228669252734665021853880311998527489048487611786005719548187567484508664231668634168736263600954009556294373164366365542662109744614181106388105682323331029600817419654675291529637628747201072301131281772785297438007835877614262837523245915260021620326297959988932729538484190265301155216473013780672357282547178433985142359000323746349705037768224669748891253928600952704853705755715417729906382363166451761186435818126265972660273536936235577777211153870415808366119350988665811933043800722964718527507689960768584404190814076852037485576917708194144910648586282702220399931309671929089106037256228297728706938838625042669938627428910958177664879050607697476063563769824555578285925762592410418948543628464654524593381481751275692676187195854854286980080768840577509253707599795697626462099432080508942516391139327845575029004372265176782501486383693083386918450107867729827877476954145224503940624997761759737389590121294749610089103861539407384358694084308025169361687510677165319558315603744156428542752724241046743284802837765797664724329919234263654965049059275958307045715366494575656396255791125946105775518983940357191672006178674902097056568962550042413635234559109247654427019887868080196462121136328019770382956572795438008253444432384456726003991317354580787682326610173991735192126017057527280985287231653363078374551992752451081533054352042643053245095871048190854752850088915638708279754195350102034142178704095937119174471489908116357949728231110366251658865903075985373862492357251750700463842423497424486916412502151951203824297217803218715948940142711090700556738913527980532158555131175840169089943496751833720788073048102776085421688997787128108558659410951233444291338488346520502896591723262933341920826156928853928691298179488960700920900584672160484526843980526647842038413903893749439771594896852101754718271534636027686799659134611230086468374681186038242856023859129330152057752020086429695322206514890364163624239373344085937484509897623011488045730919798800795933080789674200682216186052489224350263708986841990425562581927806540334229601492786279082735267650498636404955738341581551689557869342498971041038632126643374136916535139759236126914923926643365540868476566415605763781649025862930694239993807223645425993515448248289313694011937988741594285593114764778993354811882534460491358198703954893794912520533320034870179624875662904163044451947552959554781211399138066043549132808804956853821510073233816372157859809224904400596351149010821823923441163802062211056763788917053750401448513297339238779825338970892151025173466501608002377027652696404142823294345437322632711642459388579481364557145627215184111977162663029868266383347630564898044638750605888979095999986210855658724549747205622731579426922294231053066855254823773444335265856518209495875259937314428089969086251659263992995785871851241377412227839815622449443846578819746570114081332459081388948191270228312092815159445944574576864754078870503219418756450257194164319469803875707374587557689764991503023962981274660926177851508022064282249328221203008551539007106217413913652740528460863365826765101936135360651651209480748377641057287745510752677396919229594170956307031709860356844579054035207707192913410042682676362545771430441854428080164239400223723628023811279444741136707782600780993471069591169327019910021354781537767778001413275120493304987281667358888987544209869849954466476962679997801942719386910205516743233747807604277298677210459335942586536039375576851070761434353132609317167145530195554738895409696717661429685811937634323519241552292748304515540917372613910267876257604706034594026516304823863225537653359845297059676888916752728669789767051809757511754416825895249134599782103148300453139129446629491565486088500250517964415258697063432376672166324631614851710650365712486606217248174861697818851945783070161554979439891412320291095967164052199016112460069731058331805619120430815346252085169664839662786159434956731155762576561826338436574631085511370379063087203886790294000580881766296450041404506548217905215924173475551778699669542123340176438349761139512026275776766383275577608822439222448609404758003991030357046171636668864160475521188444600944665185884467683249476747065497151891925201501669234788360763764858281757125800902614676036387260047672942430455173170476109827880746161903363800186678989502057704088277848993602519519902774660845610317330084777677310621940327712937363044304078866510281200727774025229554703117852089466580137411866782648846673689905384027429368371033543971795276313154138729474938865203091224778227955207553444227256089901172003201817495846053262391519126256701369251607827192443158841169867064863750681592850218306382085604427953413821515191596588547550001124081029837001797887663713979733694214041327430693383136659632001056971546215447377585961015475311760690506067200392532970486683088085477437246616685979036455534126413533255176073919182016326572260109513822748355206902327876273367519960014250516130632110460052657480347453347895574168414013377894182434294976566500384059814771405170163729054115979809094505465612635202876870955245839955257693993667003415835923616275134751219769155646164514627003405625177204860097875555440935965943549965036091770179520383602450178430137694779485426798853416321380181228967172193771489156395616211717766007880935425149137779511004674810308577128456726264202244298446777718838010026681661752740245720340032010101281971582067741659273887710983331964502641765342676100462289427833118004408558243374978997788939111665415022471337541720179918611200989645596087079279294727957056120106426695480988503240030985655531079569496406150439655948784418708716894606993191632730977641372479206139152535894828076097493699408280082094751024675869959402132514313061881206594376152968461207964441580315708065651473243878985280402048404130998426397725686521479772172867274112821668073224925121331992030591198577859281751464700585281527824124940945943790961959082056629190863909904999755258291961461619512210791493393913591477887559585832957417303917816329384336414954762179586808419137412538315617328356944719491748531799648024315974298787534514165561811882551006398980446915914316402669188220388053832963907778075296383040971317488770936969328966778339242158768001393664991890679162625958127509266155640159472275332087785369465464188480672235173571315498169865919219897650481748636227360540572132908104007943756922301513385672959971877585350427170938325020692330010522536945206606577188359994685216824925618036416156059045081917396294685677134026683216381078792692084688407742814859979982118534276536268733009314979595631580577852374405226234479554035773054515346558205998080788892377210026817886994576557859614680398298219595565154526559221984001357571473471030328351794195462492369562749453809291451343318244537257061287662161023738541570675352148985544121345960916821698216318618712954568780761850956434152482990777504214324658971649450276971146576022971036545430699735835410127410380177040002434335557589353016985991307419358000425169379555059912808482403508684442036543042846897023081776104651264931783363959010269580793139977632491254779861496448308018916113106294272790977942354775633081375531336053208142081403955937633793232067853993609719574472005434593316739367273233752131590292041873678232515957143445109897194768780269874514327574385491525908670493708475049319620191726849560610663684328191416437784829218598177283357178039014500517089485583373399220320929203698498256888045067007258714356827762345713045840113602600757111655404342526178837164087407505849148131724841157841186006127778617096318965478866844595225518971013506251339174914842197364412550997419035673734935491777826683831850807561987847262630670532368252931411969372349571181269158018139983149766819664815492673268039870178099951614850834607345651285349840761647377287950554755981096743689234731285406716536323926686623733970916977617752374066806270320858436572498406066897469274322003078729893828966132140025155393895732134907203308108293942600952411863463696170185281782648126274467518460360651174719161660305970812909222127633899697837423451188381145669033396018529203603082609608128639643667177458217025794535273543874878905153804643082731253072446330206271687903186056178082738538735148763213219072607346637534353196216457208960645742309494976220135551625917424654470894578659975398688033317393206206707974539465081298178303835289920453879134674275786004134369443453522692390256321988264188541397716928572466083330908471575320956801398108741750643014963946353269897229172859619605472995464926375424359305361033190803906888322073564007564572947420666479764503134531215013073215730979234745888240374210031189625330484222397212030133318823123119684325718439612006240065802432996147023088276714367421685703339137256627324823581708279808544031381206413330324005937879656961241775400104835754168511663864308561163688897008910862148075675998178244603095953442629782112276353655979092368064345406413586764329689562942636556328635638616051842803005289111167761520912208982103698578223871115801905227854094245982130712221942973245492340998717954713219187970311041218070242381055531828968252131255694455919807353600695933735182250213044258287787913016847137633837186863256666678946221974677158978652920475969390547357867072439394936253902846297770702171580906562751377275023800823009993226040024720190190511854439090579136132901266128785103290648355804831109184160109397499690967248345918780214485738222737567321222396342155627632186877691803982349208007881490071712742685499027551831787984703713522768107512375552901192355696455949976953744316360898604379601420673355092191169410660603520753881548295148497492749527410198875179967423470172281677780893712894569832158016577616073836903979528817647579600375633993396367593243142354730326089708500000965877214669630806467086835313479982486417889579305688206140992074876285439118581922850823698911000371576975941057099591687208789823208283115460297437129812729447870613561431995805131878975975043838732731972175616667047820604390127875738363235155430378384859170735100575303629710865805485140733992848791898971971234872968553023769397574048118816793156563476697652441839848848911853484698936615056110316511214911267656129395642604042996909472862346717296432840161680972930282973236618803087221564026969324529598942792022271665933546273341884204547930698755381175063797562074461630639024695264030167683936814662405151661502850191565244283080945464240599020692232155448641634988293121673251331329224282344254962441882264406093911484955465249705933408091864223608910698165271727386254173003363894443422272077677278578291889774071314828946481469413571523356484813899694931664053449286261873233541958624657864232614831244723055103251214899169010948635460244330627610805878290816743792907064495001345473119208153818587392238594075121175690390592023326954486425074107957188698896716862110269139048466642003184410035430322186293491923810240248508272539310477231933880584437354812171728922863865166538223409790989555906516467721873497008147067134859187071971093403613595076006800973650194747326615569399187924671228509726749826802890864026016680338026355943472496267018080323407517937930099898613468424807400165676210326985720783649155553019222282985486147883867870652597420378093665332932608508121850549707668452799860064791659554299778028522192528303203270530774320643812920271150762212749927749278265738479693916431744768080168541149297632267266129821361654899318217797880151240715564380137371266439931333843140589827437247183412797944048046010594896548683339903612306654378834150748844042095452487084544091882501976046092067814371013939223451589568839800066185733207504093098512143831702350122277064480419159170925837371666055095023513236746160206037282275890178458574467467036788690207661483143847196141340682579231186552492634822060623196149274109027368731514909205661904462432100398682471846548843660284091121309730385453747769194220723019912789964037294448048266987351798304108521288021500261815462789103632637247841750109410200795763977276840673870960348628625742757822513652856614779335497337652802217879854239613717746948571304548093832379467829948551946058688550144895388767216640464785523715083024482836806313714995382872590225486117510748198569314042459626423227435955865706820982606684865882922437578553151340926899984421772247161228893799733014067215661725407958851662436118556999989646012315909190111903264648755150121060476123967369074914418193447615922621822637648752701266316367049399962090436562280815414135715255157736519118183359352715614130651748080940207525865943131547020840119892029955070409095178871340668157727723438720567396312613466401207092362340132571998873031133665021986089078737441081498637645966178902473924579125514040975692276570327926538123606928978913984315127069313947702973312584730139582790590073947954931980088078081809136403886391244720073640876349375414739477425691889632643451177363357817767859996953067035518195369886327856359563956648198809515763350290980434050644267555246528481487186888583774991688478021230675478867590179738878743606798960961129382771280776113811964841063846289266808116056038860177016633486032051228573093103969877692571352699969684397785932206078604401865517028579906143807062145856647041596657661368019921939727312368485965172622613580328492114278343768615114798028836427634437296055680216402383924955776293064114320985028700961940872771281585930330975199308134708820513105757016683208193548396997397253521590259560692888958341688094656333018830392169634749903795579393585871388164059510426946375062902339247056817282472797298521337736030842134919008213521981466628773118618567439607812377830000270599316554500043082131022769279687638438202937946416840456299334483157505953465122276438997494022348905142116993390327376069286951704756070104867628157375791456315417167107217663277847020386368726995194557708092342458661137042956689109103833131637194673228403464390036098510813157717317279954622452549059695780684794945236500959001904628478590128198417519326689978977101178715013912217129299429660027953926498431230015835968888714841184136562266420116644981379381146303166763676080429105174760730771394086737061641869947022890348203977000326709840613734609582648014632244644364063913813643630506354508095759729404393749877274523619453146667510349195846130332180977671863807873408656686490732728663728045484466522783032292876966392026743636949182282249817401627435357921019636728007206421977833461428218058637962181057775939068209502660822479235901732830110721988852918789914059425645394735505160301820780554438343294537578660563137015181601825514530345797647434694400550190521615771191570013423113143241216632093710795673868076630320641760117857860280358201178479994582527261468364095588927816501362871277001502235467388070241977316629629041014520824866629071062080500626940263354222097104262775632556107817822982110806352449351469806748095060382310036567513110091173742215856533422127767024392856106061379509750649158703307140060396427865405483782461368450564767272714295605772606661555803095273500468377181267918809518434711903863773336106114343484754970315167618219448692117730128278797557762369473060023495840810850102867888875418075851708721823384249843426014432322432591996908591998947539328129412885146406929996937140893664102507384096495398378677166590929295655067211348417084116457705098266820746117367529320232432665252414455979845158856431748446150315922183263412910527795130251360441224075803758272227736475868341305021138902498978189233352997822256525211358026819754377950503316894146776661810462512964485146880971753146750577026097822943655640830551425129854033066389863525750277661979590062504538724840046828725131638045537713607150133127781861295821068882260704553021854271596340056596611673691175209212868092140587168724071575153300578231788510573913481922936696531304735606608708283566188429982210497841743119102185494610876316930161301599587159336327223136158969406807971140951341540162099638083711171789328046601573289367983877976326790807643856798322089459658121160972414968767403196569194873092715077924594775223561124229482641696877063850580088199831732974155616820388394331296825792357062785412284782645993098400522659767274046648695518910728590078678959316499540828723356184816014649036746772217432503775588438670092405233027288138512707334230834914322802961748375347644868563095861104695853155035417042550128202190496048841002938251370526665257409434090922500414651581681756860795702166440145085524675899745606668403370583019255665583064979921202936967792574108139328661819197432689828726582547244920589578915060293808990610468920511386454715454512812660646128158386286826187909444602594724084494922769434107426745964822797082001101994616731515998242850833923841089959610032761644012945079968886272945609894529988486231399013370840154153641371136003096691625898262087567269510164208267688624513983553601790846915211749498001233918134943855089082940348730827896620233952452835790065168168958454857494274043377976950544717492963102917138024864988796709138245047233982719969968242523726661485923599110433329593760355280771770314367027512352572342252891899496538717180643997952808020463674415871787773089287176956963772120905274549332996329949565791563105486155786860951935470825867674426300956838224902868636698176175679034432697511011360959490524909851596502010888723584427782029928757339581696619586544798563294951392830250470001388087271585671728690581901131888455853158222983007484769143722120600819490408875775380642906384508883075795193280075321627673894063826205142589847414314462264253421246755367992762244418057100858408020689122509961067853850083284696801875892114139259702059631527524169422396126465070633939638048926379985252046620691532516111390536024607866393552459247244735008470948584430711079799827258618955935200328681096001860595616651384362335989926090786076886593362060618912112389717025353728275837836272988095569256071675177733714812211733323946366433129789316425741634032565975085639014537461036895767478323169419496879930589195656008859954769761889241182437828144439456168990236344737932963045425977790003526695579568770358564277398822699460212085561154196466322794115552176619936543047709169803531400884510124851890465782790356062880282906111377194671196069324288484944712139144915216188790174345940527337318996319675885110744486238472748452068105354034626012331782699888107222893766251526655095809119777299849859637055424841042637163149892344198603404641578434602137559007773716890329005309923476106205083825950909287828929727771697728383405159575150626413314265566597435997953569559931362016032647455118911298957037282430423050683814814102497886064372260221340737588649320644382093719258876615066977426246806635100426771806136476137857937787098417146724299149995935208114621170770873063382444524229356679687730928070407598255940480320928913916062523087443090515326838443568862125671631913872419054693232361685252433216745327743278003616505012365442706358290157411752220533440907077648577366354577512186652128867692442567657180651396145140427057735598048932996612715688234918641825983280597964034596056519056336851028060723546602713227873969504571568093978424003310876992702280391850487365262386498498593329935889178592831563059974770866709348435732092984658008309514833089836164871312937754000646356486374134466693397410543235723307684469853595890851266968144041842812209725652672793661545504196414015583425488513516788359556714415889506432723612337916516197753862881219966992693129803985562322182011041568348239882502085012622396284454699404471237758219644306566722288358448465570264708288001002964115005279645736395054159372530122135413613023777924266906434801942807527182116450593000375376645431582903713785013907710853574513116252035033610199444969125346428102803802397660567252004797491431571986185908399747363361918038059634685228559539384570088746364844090726309581680482640254306884880452451149178023441951039916148639875237116589051258557544051647176344119516958986606877424673035385310205753133647323275668290035146243803984750324357065159916546914946031483310461831084580006009221261755524880559705483858798866767524322295485139826209294564827289342987589358930328386464647177270176230582593841559746444755290659471573281537161390869980917513809865328441939030332095871490105969866196910486730627427026655377465381135353661323849693937782422672768515673418240795920153125830395328579523766344716806819859018584740191387217969906015274845463350290455818900150630920020619746124985951176544847057529931848272065872447042452882713044842488876569636093651700909479087541951058859332244843869751719091834132587583612973184107833708377811620016622340505099713351547413177384997223306811283666310195431301964856614269130589926940212151072399551427059305396004410343005542350218473030717968523604942715707571561805449029730886563875971863058281227463246548117147052608417292069815925489031903258298475031117414875790821171578414580748694072061989193777675951440799117272325523166494860122163504876693767688927410472308785525214379819749406984411395213141870377093919137079260008094251367741902814601576213320597233041320136600613011802551055804611625561955844604399310366230964509311619921222110905283577066566060702315461714314994890759943185413793991512265834675164155617412504636229964161520687060474442539452009195619775345050276286378069119853022151098962433070660598499807176033126160281883681916292106485738272487530080247768675369195396431417578065134955107042062141745099775731144705976539505965866298107803018227658038589649783537215018320589915740106388985638427927816270333322209205670571162064267268381924173780829663112493818144299088893757682330068782730649985085509760754245669380072138390051428637281337594217309977147499425726147227923396662381791198018193693099465707277284591621594763007743185193764324432019133289999337166731857284253978907146975696364300009950714869589652739196114825357771797310823552394139909499987477726656330103000359242978310410498403443658691971716896802318930788825477130925521227634348340632047762532947312044443134905913334840699111066920565403597614524624999470803178653768954035176257270792046662728982038242815787862879780806327893222162834509315081142777403592896108576539300367291114362412900588600085140401986189118605192813910034280388915671848950409208107984852713166108442904376190598032941052176169846660566881696115607057975557891031630225020435410657013647470208094157194862538148389004251604144773188342489003325154014983034500740959307261931614825001825673910010107356684906851665722520210709742134047366209397496300069586234672705565636260039979098840116681242026766352547316409820241906760468154300994257015813085692905865599156790332911917660827646069118424112032811880553179291434221557020334574642161072926625904493590947341309697231761110536319295871891121560142389820911752889113302176201901091534475108031220318771464720157136177186956960053496207058000174067487963193980031726725243713266877284112355191250271000997297540758195056671444755756238073557653034831067790158521964372739338395798664891931396907479064010281383409543371780142229138240246164437953121465166705228585513368111143379471776160745081823966885331229330413514221404301971643666691586441929787485151895681930783227958072793908286678003378820269630496775412362795538802972364442052281248455612314662621856300843561664942454055517055926731051892157598632227404995606846182417681848180448671824130301893107490602921033321579912961083352590125553728670599298540781155725660451622565006705986474351396874057887597356894483910742706062887307854033862622383922589957633776159702886672497739597206016747410804754308222038572953594315233321082417883755474300442800097186701537519588505434784495182690389952431026579702579570833977819694359074002448936933552732735600137635806729940442876637246676161189404859572777592407580526333773189320107308666251322281178086733240239383408304572279666183602322797853853152359366565441633384632457815653120054375982077177970659709374491269700963910374409209969003174198003586911254771913574525229157123278658885807129562668656874802937343195355063156501221324541099862403164990894545947393836347166303440927332702832554781543932660796588648768824510075823161803940589319105398174210827028878918887920254360116158472659748355189458854687241107047415742699838616349413738221976320666549563783376193015781376883515104377437208096410241993282828445365537864741759706260511342877235916626266438380612412537138572584770721795913105756852449658872415741524214220432619168512827627317511511944537099583790060627114905889507784049876841917811827412919162127600449764048888058407620246066036859350420340979285854596481238122088803065310116992646423001228761686088044566950257308995014095563225880859710193963433843948127593129811582019223814403697385818049138184215507731158056628681218820160056505723430073614028513176102215328850457724275503008948751401308170896171417162170840524402577261168084060331610905206009899635839382589922157076089558153570205493364879405394288821409587894152734363768686768805516703368636986500278004895972872541039288734782182996534071213429948184814823827486812416756710181086272874732249784403627466929031627770873983541638344438324713941411466342601858594997794053517322282725189679225774756773723774402760504853667022460922540086649685306591465069000721694328251851939086920794295106557244712731535879791986438267203184813135513095721374737648856625632183141973387394845741600570599495141841388345549017395482168252078734536731617383422434693943114228866931231758719748815967763877253072313075392541046517952600895199886622210884046408737503128236713389890688525727240877488111370953571710501220842944364177868426424099942142316328860037516326875944340774862226463736691674359877833490161803399993378861134287739185533089785934211572785003322265984591242796779525191251897310070064368553332807777097196388042937674548199642707144040736916043196904926307174457224631085753037833619677648708869559062028640146743713911534147777008743180105436720898365716597970134648852898510228785011459533766704117551108493571247651174774859704744741623592503181685821891189308506383734418542414507609438324682590624497745700949826924445846923941964385851073830255461486832719940044400315997042487341605910828724221104164876544447475424650913641548453646246367177997248547943082630621964686388674637175147043816465490682240182098932091791840634974635611215600029171155945765317436066200495148702967895431024512362040983244759625001891377065891872550269845670765956614952081905398007252566380657178765143910949394567972286576979555664762984360675245280546736297919413288144099540998172952406695042964112153634013893676463677411303161799454489812029645651317192504806186375750777004042821270297350452085258127517386297568814154471841644298183920403972731957879636675411854617238169287924445832299243227316589584350767526352685451316140402018105186007344909811411302258788946480423928298628954348177096163048435018447094859325093322564196110968310659288182992636159080744495187584296724049248143096959671160058439684864324565070987301401470568298393049988361279396679354629516962030698778496112904486225279165538902481777683506867389053516768083476353861112697159031600086603940756090471447260007524838697882722083777613707080589303555170521774921970196300733498057038572727285287398923845975760962168217763613373768868903782497425890078757248877248815706086544354981624002961625837530887654802256513726562447307107007825272828818145771031777454201631970840992839598624994031827460639309998630232797967501706447712270401926759891611234778403235684597093083591275947786849472285193127832061664809229019253808029691639249388032186512104276850967059822318333307805137694874507210234367332040409610999538366125387547190140613280914665164325766432235670495220279527556433822374059430042752779114439957939207466762105883378128500634426901439770938407631168562071258060152402617511254676961873751598289073628248438435836951073889593809736847356572892834050487360892783502864687165792492602096208173763129925431828742643499122531769166524199317045026954824306370715360601019177737296665498769040827306909032541327402048146397457072192215031240316050941856690495494075330490581379166708525851609384159037158476603776202433332209942728142534923007148834727495597136208675510572732508258806332265003638369122699447050215425420796317356411547719130773519309995786785582851823253258437229104939179953408087456078747162504712704852745303334740621173315559626337992865083924059752309988820805933379262718823188809357911226292138744965717672400153198587082134693416599820411979781008372243593386274826445059393414245240290850385472882402983229249332677994200552617693091125959236072482223602871604484785666763024654028361232798999236014648038841653759233713324783813952468801766271060679857922518046743093849112844455751538626593624574723686994119732540692564665385062138724284804134828502880403906529652105938798934322889362101825648331318663208596958603669920625901447561703067881254097142563951947932139530432867569319201314110830412156106346722019461225726137012456402741834419264244100331157552949188145101566588655111346369748449784111277763940740578147145892926558081889881702947400377940396144438514633797988941506855695458108030931797525960999649510703159373700203011861472023432697484627778300339539836137171909951838666436798012043504621939727179132532578958373227763132041349348974313370087505349792340715645240996786241622672498379752333840125009037868299948828831971368209525878592312921273527849019310156178646251825346893667575488626750225272932803900644481083461429697401837734686243298890837785386325978839337127072974834656599991626055518314962773356975161712677824054969581145039380687872098861709418919548483148168147714269948474715694402382298648699312887821420784234362400788066395030301169601247244004685127753702545853677403242056710210894323182944980883518317089933051145478821264538802286524911331469214458514043226311491664083669248791691645310804173136955688223378058633669542506213179318059850416742981670053652576342280041590871730668796176010554094836647951303332984159776861329941376690569474663313057230903519942101014007621642260048039785402469528683622982637732682429390682110876980883371259464483282759242971001180378455425641880793204147567747325110415323002422211657161062659488470650074797393429464095073061556506157272248582390375010828512903543868252238340189072336498560845232143909559376073383982414453023839485685122521858181631654852189519857149729907536945973145349780148780863254684144068289987109184618876568052911787004626484165327534304742008610288414339829229290807690537960312336201334068516365574987483936335709287132706101995552007139856817920442360189302880203225301379676638749940616582030210208460297714667695759917475931970033188592007159134180920241236280463432911562768512026328589743048610414217133133649108128355460189948736098866730418690654724874522619655894411985871241737655971785398053475726342810261147068485931258135187091436727644478220693494134965491597158240135386474525945017260855846865368065835937746559203588656452099245046948714780098664282262232102716307010042478454849093251015473364176057657851830413292440058182969673602930809271593929569487056696954390891775921939311854524857348945604759377453949282101172357793111574620952646232764764644445566389796651686517492262799095583038669156336931492684451150106549156396201706188106887131546116509351447231774496288304752018231375858815008181201960669707536320063841091708745117911726236012350730976066530020897555173218732728721282080976768113921341234111847007723559017251761270461705938134307695532368314659443660264728955112599726178907011784346225951715655296395729199598353948510426953289825983376262938961948700096735521190253263200415645760983713660535242689306026727212352080793953996843535356687056263747320758001905408337932315567742089673212318798320686112565960536848181419782542403657669874613294397240157217337695507654351089043841887295480779172621464823207134938547324360189040395123348742819187787560608632470792942977223573993104441195107425480497404235527379211742701405501490203991713619713353306259358911831362727090800159295393746377454388129444912960097649238197444892130349682163341766069736955676302424934445006591354042148775496221993827141860348353335060486369873600931374750381964555587169989767232685684094794971278894385211720468497785363854153142976274121678105486806469276791537650691866311401371264879340566871146970164369049786521603723045355284894704109199472906087817188085686108658092725331174403090979855007376216326678749882838049805990611588067602447565315995849885056489666720301117329582143221859750799513869689977528071627848753188186353389507000537730429947849488472008194599749742919223885268564063410766643855835918213600617877591935286174228761570226326284618730716819668035476007842197901015739173197013937047656244936859526945488535266531633266815412614470068632661867491417637125726590394425314622029549655941691846629747658855289215530062507044471803147072384861214634632380839509679369382179979175003853115271408430236781602251352731645863932276172613664398023155968900540845940467233222000048014634677098645784858658548002759388150656965361317116773821224771926052017572809903958599713600255389746895785769778174143741306161145946353418103889005504061038309920304971157076398549767242001787918275135911468308081603874342749378567005125033038163531605022011543219451034813057979277486603820229981146911413145039260704892950623380729123324557031224992922407007150381060760576001084995823521467217421488035934999543237087341026893031200265611272644576147795199407012870219793944079166302748035073733058550358765244883275069789525106682251527665020998167860942748425780225764169826462393518190128142506737945904890396792372096470258564290847238274800470720149499510853247054558063425948728342644775849313988236142729543600218525727939508457005008495244524348592733691878687984252822245683530597620958196191152744141729831706119239384111367689915645003079813217839244897073758199839284970151171759321314813017788936792506414472315303947962719991151403885245147111913051233749602054778560815927859464534307484332751043820792342906025214799231075418576767698888663512095578582656791280935067301804931460877175814968457403829760762074987438517260136520870672460770062025931367285454113375683564217047145164889291475666183349334613373863328384379988235063837496341858681590818935110346121446360779130200965762323471121846869993623797752121800716010383618316219647505511257586642397883013002627150617164281510014579522585238714480355202281411944943480908995168008480220536705066023125213481375548849960095844984813588800999504876189549718176405952793503268026244149607250102175591292126573573982541029770742982735963614799351798576581911264601067793351654887562998747157269438924839191794876926043869239206403037982708025292834813158853007288449337308158134257904148685161956846451599516554834741891291695677901645545304173161687990080621353455411535152315110701494251946149822047951111542637768004603702796426285136692832860170338152572220643030751364864843883811622874902293906273355915161051125252661920670721424783930465420425993845501296232025861812454338399901578181908520968984002556792453741451406534975226007748393252707403538813331785673277762359625241870939572423981036713615264935148235043285699012090084989944896132602644334777503604475924808700455661921286892121101149985323489654783725719756670003179014737186806253861944344730275874819465069677804024191415659230848188134563434584528977079020698123512246456900000169523575396096358588712402374050842317755931660217753815156189025032548150917175942958445430563888314695767291091362688685209137834886761323038223343009314896695168898281421340731380180215421882546659102530836872776518905747224881889926307533628405004136921731127487879504306583368915557017491808825980649539035662417215181442470453940730085195445489891929243178883081122279186797343111232133597527602668821213327746918228284491644907716638082724009384496420978509001569381385351000795976980171049052346242243624772932161183007732140886360667539324802368561363310049697224133668531350642703514661312803648676686763984413557928350066932792830612098652629387601915728425611186121687973801591308559588395025984202666091670486285278783469917030077935672745045860872962329139064519692059367018918359945419339453850318703617714453449635415980698303331317491958996521270087076730456609191593250048635312332444563119199739828182460086799298996957459287760973768941629706807724331645229774124577242834762179638041957366990310228204526090905209490838928194314311177001379964197288056860110516015029077694399916691181709883398869837402815838501046842864620331634522587895830724327708623899800595064932255677380544712910731965124963987814001736178322092121626975072366712295138326776777753272845620342883530557466453298667279851741302108332547522039953815471752673126907172289497178157498751718468631634002596495123866513358470744335276221955992156320947400354493998819151819958439313979047339135527213199270930815016502255373282351677708216830521763587037699507052959844934001664537254375145168761458167846530577318457943587711383322579167650485243559903778807485983543573962376411645612526359807585144329545599892413170537675216362288148707537414572117402824372710768175643826484537583653213917952981343535047838857838631236205127028698828360379545754613650052589948755092739580782909863736926468463672241980477045213941262702712180382037636072157589873404713495560558033820504787580368379745428952686175422310144725590951292171357560253367483297915788868279957428329962134785010851759757480985477956284123877568143814424073258643316011677015630844248376577884002462830053923260151328153935808433799979001239319176445821966590435036985373385470695554387246244811911975669164144392170928503983224773726303303426557497103701902890299662230863448699307237466560169283330751690333364892239602980804682722166022732052883842156523764228085142960228826439885911704516300335768455575850597031574187507185047027249504780082581513830826875535369996131325097340445849314247069008086700593522598002093793083720371567647983943968438531227448213265009979981491042109819124676949827718397967653852075180180935940605628494119544930704577986963531813066849033877237114894540904225613382915689584675700796294393272939988525613514634180572704740748166291333361493945097837682877766678835072780513202173839166625701009355408248136130077021039789059650362764248271609847063025052896024448022691034740313118889306047844826833592822160832922114796479024697056203572093190171357480548605898204643232469561010801418709728967557687258501683177278897259225342670042217268451120530582794332712067412473138923277491678415852452452625619490516123693995487133706542695157698022776115780443030535674231582559310796648936306918022589945984118425218540172940524683153108178208167399736076088007675287362837550320439353303698333790919922579201174002616513475134680975167906024974664691798814667216879279477919919058902098456142923970123266491089551831014398205529075357349695454764833214055946677261734530576559043644836189166753431690469948290134585459800385650386587150589117460820159396682256275833331412805347400650087810235359594385966948113043897556268056738578254998264367063306703038698522155624952095048790499779548393604888514880406364153512192371285870468792550318044950513947986697700512704384082734221076212611888304455073719121468672863383762883577583456580017710800455669480281442471804622323811516805534119045329423632299269230652893728910247876058835225254633444912003120168123186969264769042684538177636573971093686582631495247934795222791572831866182553224232491963340551214630209707150163386183047222133939617565219350908674790048363891261090984632155705734477748045298058118674566350566182274535737999833224028074047476863896335047240210046236070490498908406152461452759620342804219058161097793909964870498693049246718613857183643458094812494452788975639520692530324796927559714575685416828696772309514340376475947265935345104722948672732570203593511778896262337915038931951221930680583446776569776260456071010868407515815447092619501336678376664272310698540967991043052974882801761449905759086910158594368003047343880735421519869149174147301517171926044038671185774249689796018057283517293346714591035402922816288753283652690253910335039830178968647527136278467742692375806683685833956837893697733520876748969600848658237737112756042360829859342548098461120566811483517134656316847867612862330672168137501415198999194312148921958425043166561044838547258924211720393686036626634940550603078185060888533576159834749211472127752576487715367100144071965310276393703218945959565309706016084829273166181846123216310011423747004469782225333276996648029208844992095694019407770617255362447566573076724635219752248766996378341362258494936856400380773112242185276873241747040760720998836928260056990417697571065136351997912330850294211754709574820391189212323008076189905101210524648312664311976989896432371194448329539029451858455690869184237175064860611460534062320012140304939841190557616778300798405163924351442284786510074790995761443230381414566031395659359771753997539268406732528304169235030312838671214466711801143151426844415960245799901051314102257512267442246227288310633032360536040999728955708218937590311083435981324960967644284070606709631282431278722532319528750052263953462883308190543211589577700501311210176975956838317552264185551506207570850187996202512731740782082709482732271482141661468928126502105652438259401897878254932347749552474883961212702461079209659710648750495380501931436640914852084715510338672325586320151282993563060493794958038487369146585171159176108223005761155178663415613483991476042068623421024545792600132331345379000687092505787270520304504633678398033588422471212220261855693945565214340584121789920272993201782189521272831240498092051202752934839123755302056438774151105372865859443776193877064129152192963344305309727078759436358303518572521680319931216365057368608607127320235407365996410922587652065078103608614005595334106058318365479936786519830145770134668890270075827400812364783631098746616831796346981854845767760485107506678161826674800964165996906747017792892633718832645360710309614548785369723713527653706131371332708953663733375208119058003117656016226790540174427197412963276840840766204538675833915825351760793207523750155618030015016468577386196768834866929124357517391425843698027258395997545472809841661578285398594268413265576900854609746241012696611194589807737753410742954240995968109819262117279677299003861064090846518589330745261302616089637785763254466858805669875291536519861443865257795845899387029604943268206836987809702729957327711171242589894185856058615195204144418455743122968447371691316757584748553311093642067016777482253784726513875363678957488213009890088107924080085261759933182143135683802180198792225381545252827085576904681972149851490034662426066261818615719841463088379855854518830679397181001211259112306628788835368586440088297611070303887942789630259009709074887652671816132578711604933322616824337183698528281803443102424580600385296272949679358988465989025356443001201976070173579719096839321228392661374620808775227907944189609680211340890763014490660104207084959091119377352619574478073841861822980451781210462610717478408090545909027402827435045480485297624039877031201879503719916027019712715762390669368946895575102531548679940776541944564856623647418986925536181450364814378781973723427561221257387937992498188730237530754855974455989722475150402732386438531130796577687045205199287289209670146907809640208236400230165968466700092490843403172587854071380090669701179731346534647370322396776953836149323484977361905223554769940018072195328713082272354618094191479562278099437031929995511696286252086149137190612110235620398597985436017770200090189520622739786459670820531527234895831029339800392696162817653357292733953494197058667671574661038183436699388409420164795691186390572805216746195490669318072763699695989326539732230561941957678062462689774927192268882229372003768923111054516804028773288840430158737894982707938059839643860193425042262620431418543862202241303909127655043470323976535395628679214474369177297285423292341926916373335064088534280270227933174924158659817357020458174500175259260708708071110337196115594060563035512821950045400894031675287612381674750831959404983882444355640862537882970278259207424133616750658856746813624932108280719410743788587866245759273314951176106505605625486061136268791336598962117229627696438078926215343551226796063898374291805049910596143845047783495056124886727560145284288844532631707796759979452660391670019441911818644897394530898728960687485030172271226987504686565213970032327260236374026715429893294993487572160503412752913409274326744717512370175134861351410031521952361566369634574560760449958189553950056882521237299764000338172232933175519484931111977579364646548952887611540476942963216710610863285806476666645549672634493635106619544350754243427399920113045323520656588353012497162626748391667251376432048314556345697397101447064694609195279019479568953436320525162746321699191694717138087789508591076433999819596636719281437092287376146046709076755439051987420501273466693306848136640199133931620825158309052306085260859125113692587587188630081318385443670986247123642463761575480658225641136206811136930488417873907621053498072208662436995788289879264331014078075937567775309277513101376678408173976630436172355315298919631280230287795526162092567676231157780752963775983065473466901286530762039757543933979054130129829824137183187206947825683428729065807594748275939361656418337096263460746265978854169972929077845303445620433911550481475973181962517878096293315556969462130357213660411884225631510349689021254589795613162174461615617016379147184452072129707612456071623877184644764156532207619980411730801962610501449365671478016348487927349263588478447327298867443134758208657616607939493929638694996537108572835340151255596171154410084609481364142653790396526924126763670949558569512747919696059478040846719278672340606912795171248844711656430214978939975864852978438577123013971905535291853396480924405106532848195308454119914260398278787075900560625306660384255054361648443972228617169736567681015592010620251527946023691446861099165778159427977521762277620932040402702344604091353028389972190306591153812426304935766296926095726153533875566524454572427597631171373041264688801881251212929716798338554291318150870099013201448596057042304540024261433842184851838497866600979429809869278308429818281581660226786627343584546403868108817683758347252625611398082471605089049398612982080875783625761667429763398141069375729542700430713640742164389222579872208573411697441270838167371114922114250756421478455123221614421192599985820186881538974434950254301451034410446550960818789254046856541063242408686579946230096618583080650509722991756369533569082672438622977005752976822493195301135523541032485994385653629767386261611565326206490287320893552257010680849555171502826635270009991724763349354992722957567586119317544492555363774666867185272177090691456185856895665352716738018144406453178225166885554388841392745598506437025672570416649536171876639750890435565274745344117473374513741273120615551980888214773537305713084123475929348640632818259176952554443958321984180751868712025454942264004503220794639436593560799040753312139536570815905211734995088718309522433460330942079035738259024064435648561238105925887833136343621766720496959978935522057596823855620441376251432689700313948861790063686625988611089067472329397861506217766754029888883710248712863980837224516109507515484028421216499689919036828619983913811449316284619523757038614538823403722876418770383256785679241480184071923390137673234802086224478578045955980343733262537110220349168571063901100370049419408085037830595564068065183254767642252589393490559923110896241003291550232098485133360693619700709908970473767202338351080601569223782475345830639843352193055861181763020056133543047101266084368872245191193396181648424915845369912273056723635737428126952396210721942995229375303067001693287649814852543337189117071629548362852731414492563541060162925614391584341195221411379642630922852350866226914869476082174448369392207792076273188426284578167716731283221382086245424861678555322120946203475983726524905530920889861986261106955335916151977195204727896382846157600429049646824856790011865154081930854180786965290407680335000737555295555445053856350508952268845422741834717248150290924934196843072158078357355212497440854823736524010038255820521215073602829852357170634935387985879148712219817155662063556033901108569590335488891414943391600409770490336363255977188044327168934259142028236429826305205632476325993351964447718275479741879254047711640910622889802240747169117664701114487350537590272791817546177762535957938858272398534386076260038221066511132420799733574050462728847336387068599567182582872300654853806234869577031044993713096770114761299521885617738540490028946345947847284041447295184898772269342634873805455321593640024953210240213562104562690224369471269587035245161192041621837818905243742232168098648644599570797857770721287799979721335358914250204253165377125903103028169130959297319627182106399385031700284634641262762969710268378063204353573152696059941732161096430955666441378701761282287118131360917092699378259052932989187930264324404095890137136064459733660128345226087772660310487450642596251745852514394551463384379495110633557392825044952746356007106297687162496342701167888137659671847850840976416698184241829201021713266207280665094818127699964104158970752862839339143724892432745810383431583029110984310187327176233228197755636249388944301611281499195649965345383205002115057341320210740109554758238436796004928532803260291916361043200043523111062524923644856451071011983243758770573916757175547004463463328693832121991836177354297367020294592444310661285650502676131567147183579124207020348812512902420016378987966190378456746453461338962690061306924050367737828094851079675473709903931062436385478998323896957369866611921289390435882288594438699739435933691374709364905487283715555747471229312072654170958256409511990541372092012058418659960098272553027997459236529735348226504359178535924205375045184432234090693438755927449955830924790108865693043760010744991696177985818592675914448207156059954052866897252629716472002501757306381028031345539311292386024452137907162369915841540106647570482480067693843809887361440388408769071167228092773932722110738344421457850982380184185273452451887234233691593975869817686265406087218838496629559572052778216155325998142942459294234694932815161468409799939350754495437785065707138379015699351387166895321779217753095192499998788357325700414326798681367103219104321887098568765385653766647887371948963617600273492002292800604762942429177539114021541185595120261382028886530318910266639717352737684086675282427501792327738011983009361394430206761886298008891604110969769739864673796150700179159040769898882237559283751764655800046782008213533880656540040642975550022250579337831154967058300003889018486635020601165426059259565602291708375444124082401507722464290675548033873921214860646147722846493189201037994174390860965976425556831941990450885766716560437021948036028801758789039309480551269469481201026871589155365168498366153833086108297555526177213030136901691840237538738519974173513180915911517641731479986403398709511774311600853552398753749884413256265115961186121010942782575395054909033520948730335922695350383384415478775656225576219798382067236071907247828345407773533974466214615248627843709840990297377063238697794782502054707906937794276371119655910560611353504885143100481324272589577924160342016294927192300615756076456911512431930683501037135819194817984621314702336006192003295724729919566306940757899200659109075437765669103300314822515025911170231940302721820557900276786969024277162260694767562107268589136975351671469060130230389324126468780051482671776685722004633930968883902188483626731823392311289683054061060632116706992586923454206690698213967343038316480640828469516018098037800081356619153231854535953609211524287627759455585305154439927436249882554369653817466621654622811625601734375091740498292145599495887428565320497238972693221294203888174555037965530041396150758895156594800119164766533697397410053975614048808710665472835072301932551932309539838675279224655840439028808960456610840149903083922838504237245318535776879071328612471069888702577254835605065536180311763559235274509842768189568860650911956574065827913769428181157833816351183830124860584076688555972749802611263621174254455786964959645179999273402146174363045140956178756665556846102976995450996344232359017775019230409342992293651690109760283224480467454726193706663394139589725182378378258271061140586025594466386707251318535364088382631921465796012794878986650771471577320109618816734377587932028427410798246654356740773181368099391638306918547394297096820744127720521896299065473172367817736509068417507201184758912096146147023148988276879396580496239788418980442211852080598552102659223342548473930046366030571301967371275844918321975480386550901810172869792816841438747619529663616504762517247607394146542392086340272773900728658404351692207928582040884278169526839068945347771024668992606761012093802328348055390397775037569742134412718706386860735336059985496358552466065553738401630836020417442947180346637363045263010077633914213590429839333597310600778058713805744615147038569892098752400469301384615855462291129873259966527777968257780137764277428404919991694924639500964896415700259353098675943769419620923220770246611773387332319582921287763116073254493894772037594909290294565201922586239180741562129955719623661438049856678279836660180794729834155754097015781057763468342299362098479050474695510662849274945209069340103024405759741569458032719739185130561686331771892956910519729819230697241074756190620179174479918092448600871756448077615903667563826200603357321850178504881682809990130681909730102233499741082601564892615192555081463625723198131620476691482434519163597952194154255370831557364905549495937504541110091201961862537058898823607434283031620208868651815515853283422275523394456883258317345654778458335447507517949333861950664845031544477245174117841740126494079700103219366825581711545656062184123328496835256231140891051849127337660147938224705549168784889442532154114381292542319604145840246688116808398141945868476671111869129705943915962910039893232904378259016994283214571765564896687183317418186509009468876367868349578657301997628204447288125445490314343173385219316553305909802122029630768804327233096456821667950834660996870224919453293481224905874545930418837227525925950114063693084985430289623077205252517334018252921241057753579482214827045736785789915530298066317725617907872804925002964836150975691320876291138206717774493094310267208483076997038460064447129225226570352318754798917317146445047553699829084739346124440818455294442327085692639350202264323044832018511103408981987797046383202634708344102888624986121583562261062579762544401177739358554198123137492141267311908872877873160604660152627781783481786474174937417378957093714856092867944852951937009319958608368449322866704273211900290051351007244148379305686886295374071667004457874371260819400045048287639665550196423806546634111479813622365061743171138709035845646572915753358494264652493651275840764456280644088623550714973507139606799647266833416446226672785363540126959382636449363159628529941380203502714029508162917995054390413220086291027180818605517588232638442197853917592628229019331800050408803525818026085496723880388118645781504063829768661172051308805740440821185442272131748645464822785043198729969422952631017300937939285984001578368945311296907616096240985092090275538928412740981706088148571756961230642761191096916720685042434397587268633122709762461708961064281784156397081186135521140631850412466673982641964780870678817342481562216888982455590950857049197455422498351692194285553399175864634974754120505552533562058584815606069354045270908042233864886002078920729617962685562264432127529535015530916192307615026874998855403986437622390865840013017843241875888609451027406178531090663086896690628152926936185848395810456687647042656208905260563845427337995435240602014466287408366418388371699177664616466793740007570612122667781125348790491355851044392492069833950703317200471178890055975387167315941563724829601118024073739056436694083343623902137090001828733415724530554723005443102759282338540570995758904776285452280224018252152264999235485078098908442308614255470066147644111934777602213302536264611741638981343401805435166386828331624350957087856145331022237995256787639880207308341002041277038339495099453490206300383755840945440202762810422248950944581332242894662402764833826484091625944866229400237738016306342682971544778549356663955448230966535673446392686887456991566964790614011276490564853633687887131878054965899204236439653530045328438667197909997695558672476067901126058825310015087701408372040691495713718044786296556016583883329034391953155997811926602214860407152581042045957324758053268703994405894570749949837174148493886067924571232453867421771808764160569828539019982532944014119250783197639935155192796070057388105027309592075132424281510720938652421356568745142210015535048414470925043439967232405920840421891500028621008812273349281356293106914025824635888395302054591464340287484169220473927389581222393604220404606780557341077433556500717228501796461269327517319642597899362428812618275045925663412821714172151201488629643608871158471473158921926881928111808063838652301149384903773721975642128318538573022503834255791451683100714826401131681812234635175269815594828756402372415974295057549273313867942303941331978642891038516648733617353787175681181291858959371661527561300916293523126504269725894901124693567826504643829320729534772020024936551118332050319492304723664796717061802111259419160849945991049452982733985166849788235162253070638141236457697247507210146731119473814092238401191584851923906071759005502078463275547222496443716365868615909545371491456769140272879750756628743578246007241855946141732845593185675299956338151187105947351034508236186807743076139323753517149532031978086390599147111528949278685580902582861897935274235304424066926591446067715983139179865790966979731992090505722681564533766600131098452557477884492452333690037098156039666931190043897035173410618508058071443597226561547225106535526621967774101809265230021303078497205841902022080255898327205544019409090326677017622974048092510497789257380614299367661005111588814453091998910911563877102857170821178428833664311730985159452968641798587691898062926284474339638863702440404468973253665352414720421399342075596114471395107730581160578432210733648832626829806269210537678391246291098433168992995850329746235479396872023454384450126141509646799302986752565554464757325007724553470758227101912299680271773024438513189349452952797453558919102878700899906380581483143293061053136369783462632551246033082578873768882868976098252577006792181863503833972489085073838217751073196398845181491892313222185719794025018640423817820587208694565049502883181246642800917876528007059982294371723337647773168617935254237960362373686517645983871969580387073440566258885648090316651205324092279211369129711900199717802729895295444175718923794604940275969806200653190159220741165330972547665578526322690348602571141817672932480978761764025208501431115696217522049642780312546177665864247488557200102378160803887830838586238275392815025069905982245747596205348642231613694853387349012949646577724581161721174386021653228404428112132798446915902307154561024738394122531354404478749499830877956679348577882319568640721714197726210316013019500932545175892430187523103086585969398066417570760016260043855532473173333230311351334072821526555514956531965554373744992282994878225000092333061482942752350579688226204359319328609222010888490812080687164429479727440435912562420530858278921730911592947622883388295205236226672397008901761097451126635316926439378731703186980967484772031537553902618643051567078366049321872861185951588708094070705185202452432268937968756215977185261155281118835682149844677643674151402237814434229175783829270821021905474206266356159141571513242512542852031448776744745488210749254148781234305818297705506789374463720947444146043326201128609157580376750902957936190022991833045216777836649147281207434170838410541249105775972933299908318616526378935218867918305072335833185411341365548123545538308036604778942236274518935414918687444325519722482909934913047930722398208348695003857538637674333480572504996406210155685889654526585677718194006085335523477187146920163154319616770008148847867342910657210857140441613819500134872986030362158454997018493132868969703747253015144815424248740937797594733284525313080299115155706905655853021913578451171833763187006387025872304992199826267625635930806061255547860170987082780175435670793789603246234220621781066501749966478939316785921363728241514343795524073157137401074846204656759998476583782331755880781890817601459928678636526758302436902282200887300015785315090521984166513757976284357663623598112067363031406791886999012531307927217166960566702473781564388318233355655285404055321410774835966120994859002798634326386203590665308188159122037148843174532619087922913420446998706507939021106200213898462579995065830719562051276943273101672226385265754764231187152257399718575859872963516226618535436313970765192787744461165247697370755480076196371172315909033954492332367217809173110196441311857113147598168570029889132967530248508990970198681629241977748701471304224347515291022165703877803309773699207369984997178898688252869335469348966746285471189121711646569383623144761077023231960855909562327596006856430030733373653376639707481505091484816660125448294627504258353265493918705182738671782260574156242892132134508217694387891458040033685370903918111344647173885507302616957071626135735662854697849246062000817929514258616104916811362351146755845917283721057425683181757283588702452702479266067849597241195415960034238105037370706493878352287978338252779099326562459151174967549339547387926567504147879030261285411289423920960055715190854796315465837096560927613484354997266444000112564374937012539020465796815504290079914195664635203675998962720422085094887093919970721116861214666844659762578112230681872765042223299304559705528107792990767993388687009395271440174928998432261794224381864099822515885224738117751980771035182815831467733218101483801806993590157245367983595317205378526661111173056161026376439393838206461479704219423980064751173920646257883605236494474295426475259381438319154771947713588784758718447650087343972711100086908976733631504868741766321655815875838633301141711258537382287823580111141128081095924066757128566984837859218688484392943159212281241551187078978029844873897156076834903785593603327425189267017700747852967692518523818085671876628137577188339763614278147170255684589959112171890104835483234271187367144702975501704180673766840156280416168000764593739665325684906290939046801806989025339207151925122106782145852905754719346510363408981096490620790328569337915303719925386021419233030235366374380294260434601514668206815681186054485500337208795184638825084932907341548421225596324066618172923524309410318158550108222145929367518662730820398053299521709151459055112924061968202295669356817020559203491236463708968554745027156068011910799088227742200390952226369442352814173558555739427761386864255579358785808635777323406098074599063252976853254546312955827131798044405820412561968526183598640820755194857535107159620586995600682001149895402724375413693791447806168988955728433031505242789365838173028347077891014182999175729968769926395317865140994652078380269657200013953884687730068814123885308629599336206568213934252093102878142928552048489861147193974834581892616450148227713625876833224807391937330094605530884628894037299594471823815318248970762051292290063194580466306441402036703254535557099068742818581618105073107949655695102001222073702410326940781189799206867411262682588747516184090386030620295864932445869047090855539288870358049025680658955653426820974195188064032172268146216675156312053398722431703740846043127119882797801219734676885752309578161046662129206275232551423929542183630664045130128867769742347044479792660076220616693781917122536016281975327529122510395591436890468488065172755434267109466172318410926662520216083595135992732277109960669375788123034844763580385492387403870667217571375557230149479219151960711485874686841370932409550237655970798583374706989327423037215898223485992678595700824377446414472067227861896050095002013374410307435913767986625037460249956635547071701602971340724439598027980592965551080931953736922473385336059876135664409571483019286079632716165168418677730653871185764647853522377652918974561841351492734352590734854228324822060738967174839913618909085400085876464308470289901702369896322615956648252777711042612310400105657136675731800704282622805240464445130853629441562133416643308785820313439465045225058641876432822349846197699709064255301093326025697495033689546228310121654051791325831587124290633341147431304989931720942355500559577570289083405734605920875026572739396149050501801946428258109831249106111110916722449006426787860690733072270230017936927168310707183005282911291603223150556198288362599668075984242630897282174912069395314170608946302966850429138972347368515636566350774000593831397968041185644133930028397328850117883317506433083188418339505010322018228800309123726249304950510055118165405867791976226438277094002563955682446253954032941310179952128229769566044584606602797082634709513518338195741832331809908484693683871562551975124387974790103859936854274413518992812863019549472967051655843250104403938526753270059375171401014294805350004153036246306056355572448899947600377442381558986730620272678975072261080744831120320153839682493623654466067573548321072251410143409103773854882550698930641693140517873210680946971556234791117293935445535446555602967163995306565807089157377580046860158504155218720717239290978628259495226866049667416823269514698276541526425973264602600453666812074989646447827219294290174690215114183943102896433456147373428327310155234490051411019978718828785961441502106436231535812374176138381882157248853896947452095496319756830051726279581036162866735746512591149033027559080610591514001529672157078598426567120761326483554256575506800908939522622327763284750152361905693016531451250868030600522322937802795033184311255389478041097940374442749610870504991882023401866615352963221686690278340203216806646772415544927192076905120762042832229710229481936606235037619052609177495169848101560780375515613393150328460169385393410381283933879686378366182959691403575830345512037333982913772877934183426499811439849383262447089849073831316218897214309633810654106750004987068936645083452298607438084680749862104327061699016040989197388952257962932531801832913791803686469414578828497341237447305354792687473621321738888668019122949445265703319765561847237064675015194128230072350936010938803645246468656525995207657677711840200058413580802940289238272899510077713930414120542635204058444848892504804008747202246466818419986331960911539003250543841229036022468916923425379423721317751529451312499739305566034640492124114415483431492921815274176059872665411129274700804489004018256770461767899104776065029345694116254163760689430042132970155172591190436519522457567851329893885530272243782127656099212505172619609222161300913071922617979541162841636461330329268444826923016179686272717155889375934867947605994444331793494981959183724903955860755553353583487236082172389681994696449932698602620711908742160301329901754500861641175362551995936911949534352318817483448291127938433887635298712319279755655713165807724749491611594639687969952221212376926722358691872791062915568742002972174756594317373445150825177061482636305122649890614402277975822937221644490242312533268274091915207827877164342700793720649544680946336082482670518619712437845521540832175763402834671481959385779262516036428907532505667051483580241165071330627555398316049806787805176527230227353057880892035421469225005308084732625981611840087929657433968866711796579183976473513837995282794358175620788921198603350103406465444464393041256700405249549793947017291562350375044193368410628006545458742622699081158806940874764810087794423583277111746292775653723583392776441589653372696742236376026121824493134389120704128475447133277026631234906652118407199888378479116736969593817350635999294276064372389361526262097358071409682493083181884665246830579847068684126725798036702013894056839562091454921246474703813535265609780589745491464252845523873349949107436975520945986005534760114420505547781051024526805284655244687346408056768060292325939913166371220774861257782181589872749972019329813133132645760673130195517803749948837509720473082934694800457099583405099793501578328831534620509700497025971700916214358171483308964369278020026646713725940858612914264996940659876802439290584082477183786786852245635876174758953212320829413135010348793263931221787208200939450000556687858970060275120924580587084353532740667243966457587500243214263351435314385285777590868096499448910490362595406737247331320333677604225592483830088052330261978916710387949565955889228702811989860450662091418465150267892022929351623641485728195109092073090856114341969008463266149875169602096989432449113016467651848619422521473787712923693117196852066497465709670372521124065310452186051258976420267328667714237833471563983226532029105304000445952626728978905572899070320967409452018749468206779724976798485296813613759790366318927838365661038397458071756576752047694686424608064758363601948432444507388331327768535506179480157761943468208333553602704785551182465250777909860333503031542075340091554489287071492182832822942433265417359898186200252252023291974085766181228844071688077419195953391107554921760844124463778086589311788737804663445113841673834530349957437453725164448018962008687836881723566628920640831160987371297569006350027812064998443502514823852739430812415354589686448002073687796800595654900235427526060049066368369110092620349612178746957733084072835671705283040719910984532932900437070950041456993912482735392576101872332676070931417852819675242974521878102010579657917352502956546373850495374458307327089174856039378660715457921298316770510498880630390974462305286661326807106131782762022958888783831000524060252248773000508744623514544656195031115624985093899283077831120345699145951192241300415121645813930291292409380287918796765479220369133917603002627021703279259513410767975324690770944956524712346230762802374903472760854354710609930925407660722747322582438687088244632972866672444127952671857813899727971118248195076752568487487305134162297658087032382498935382226329274981720500085798116370240820560861521661392138010967913293695273009959234554526904243643936602937638970818758639596507297346234187442515685365586250063012676243141085631255844770068837095412311381356597358980666763539338490840351153834531263738248267858691377415377883385050435141587959616115512847764575224225034542259408361935584565220337041676957087552271704368909763117144710962698312061089850802753945355267847048696132113852416321040006685553612047001128016342122842474322643317304577215764705223626779734020960180390389338625482466852162201671884499776789087500326395387799574530021110429732611012889948946516279458008706197428176121568291941630733982271529591258620607656879045945705631781236789482072408313504210446965163753687226827958280752877989799793909092615615859274579605394827608038352797198528524688131431003583640320502997060335092157568444743249970014589214295840942674529164458661292934683035825966730927786799430976658418899938331578448084946064592271435133731307778908249924028875794215318926745872685546147771921897954185951809762158394598850264509933221574741387645922756825502858002565753773281083162743956246829555188324128461727956278899568732945121927940608587113771229841648514175562871855804503566872907173368945273521667269152461218557603786778594898625089641633276266441176075826771951785327074414672213713526279652571316790395081802375396341752172645228586227868259867617570874161034061733281251055698172377045670595749005808653921034869983017211550010996453879868757404339336831086609291207941863321568799333320585618119492475828827393712991765827224732022489599921922115384695238339308213457245213209015954217539740427226796422889391157612924163652999192504037510083743160590927737876549054424090567703488942991917413611494925833953685203056514307549481604222867992952684002820155084953256039962786754057660958588598434709045777513703147494363780417878580696554883798950276465750991166010193633128036069510376551220051042611593696642069191647848592515474586412209048665721932396417084126545194669198120543841718827540459836259739116664245441594879645182112651296248812297531110473539335029091016860900125590360191567653791511404686263354914088669899562061136352556394953057532647383985237898995915189282257388754620677926454818656961406749562983610617486960828060246244910789692549104339004164001573401428163628198780701017041069462867757617374499353353400172617574842136394641238001929938906438502272997399299103772004172533605591646767145957189374812142046225106478433080200739314283011943789108447693505953255576791736442240411276171748352171032802571951247893325808561095358027902359109852253314596054363209559754641388888957858763445274511990788680118435030753616443575139847530005651497011023409036949658312593061202781125941345443045859386212251228944263715788617403703642422924371471664999576283530177230668175314709890211383207596102479825939485548839643708823956129220211872714120411293655234341539463925752442525865186694557558396836927080670464155648320484242709155065011938805615959834705514312063554929492949459153488727773877969481501334076956778940892961402908575200241235744949506526673364899843371879584258521721243980165805444457619478020131346179447994415849326644245390560637673213521313232954554161284303855855516532834672183947441738679092001284959191722543674360193104373948373427318567227613881574862445296854770116008869069125880970237424556501619740964454047562230957107191431323364183996172838298801494406507372163053481226022241325299505673348719357009254763183598857848328495514931660340685973364998370441218930711536919720443316820778669813727258779381887273837344324472656579646314358751891208875644298284694545745753973009930329525070917070342302893195327705203325448444339334723386686008750649683022692397949986654810690896511542629188825787896887220136638676948031721688136904607086783472132608450934942906168763421950893186006863732635028729630064396250080394557387607061851215535273959580409326802738401457762396643618344182632569055495547880867226383149421961583747150077131226515395343194748694690755009547791553978660303441591476549567033969200748699721574038716721326888442090663082887951859672968996200570058155066193242728442189398684074002009040056368572707290977803118721711419257952967526393910642903387689841291793147560651615077518808770011454244025095993905191969239863460332060998429316746791599794489477220069321409071656605197235138821332866183254258644780150722435252501408279419482252482187694782305370495670865869458961744567905133353439112110689241078393362832406177078045291192108533694232921748135024189087293844047574042677783495996003445727627307236485703106698361766801595298639311563167909600104271701012739251841626863784190966552550477824160709128279202228067468728266418898681285363260235531293520651185683992766750582666318535752076911538684523936780399507111352217459044773521741737234750327299589014565091082702948799053432755897755779248321853228250863156155666020604668314864799893724970789734939956478054589564842108025504220813574932779917053413420092124454908154862364373181856890957168552408918723716117612965165084544966586479093081788359891669161735010586742025210520206833895500895671851978316968162665561571533171284470244607264407714489382300357040567317337535693871938169033503502881635389427726108425024589138909399758979087642358162589752542152767047110924758432210791355027810801029508776642677479675107012640075909767057622132115888125220090369718023235839456287005839322140117761789315269068693640906823189947556355032357353375025597496247568971301767025711366380837466250821531274620763197214917481942040484202807376916883271561647168574990319823936240212157889071805434696784151716975315425972439539595850692576587468742680231296855123142445986185836028523841825990615377110343055249878908586852271732503005229935040650704094422915168906789954062407912288087877705615239607468321545789289269797261395987564420292158751715589610807801346053852893555304969678944490892553633842900167691938489575667259166652424066510556674193669051993282091395594493879385549444724393236863096352141025417076021368882215702192978596015660714998933716523605085819057233418921469734961217042892102589362011634716135687775609378434628245133429127850503996151107646744673639791139752838903255109080279683855090864381350213658312179406483034669665468067399790696117300643260495779272008927244026130798587518261692583720327750224445808836304346615312985652806174320929300178405860355176630162620667686581217547939964692837413223208432302694167473923631760658175913841758164309573491696645968497654256082147317758050531407362199004526246586834797426390946261767149669915467508148827322597266121375936976676175008633281645428360488488714993064846834312750829120387926139906514063743808179546644212565792584307515179467207131233517159553050001950873856819929078508382682529067369245460841649068025975321772181394246046309528956480807358958037239395056553572883472416693230774283022375013994535488019499006570667667863502472541834230996647321004019536893216930748535506374763988445398002294833601491835672279113242386376789239968562384430555800312203005771286634690206232735896923123556460587912405207218960395157893338343356595130320855213977337773615855218918044102940964981726834593921772588420771077209300924763423250828740797054620997686661352414976262665520273263785009646503073437613849403655535481647998067644081292066469649272131927778451833011569890041669689177533919897679513736674202519173234062141695402911490863268314377293509355820943127399945995726635179036817026091206008274369049716871246708362797757540710618539167457380880984681027119561857244152383814286424610476902858964826755562126432023705577712556143602467178405731223788155120222152618382645889133919783611480007995762230540202074323415222488410521869320579155539011143185205577505014037085127913233924184602116515998293184248917431440370886021711415200205411860059575659831959060831726216800723694633326293198810355632225176994339575153196743916906508808094562164666064946879334684476067286389531226178275605750962469821363028273356277967565210831547911547337808971341643416706503748476016665777065862700355309661970717594344876218981045280777899205338631133554425317204735171506315321614940271340601201080682680856244424072613616002412412991917367331639806414100089677824704931497268714827225960683949477836875061650742075703686443816457925835130092501824630689711811228685484408083183446264703886635739792566211766936667939758517844391716136530082035564578788970862344534713459515551187178532060518898347947506992635017004244803137364707093714651431181741353602698449055541577249433604857314350813663661421532271878729475011594459500412375346648190072107401859652997527452578563886765848403958800000602191473068904168222271760650054356057699886486260256760717360925197463329605256939428284207925452184678853673988383709273135433258050610134807726321595316314459717222982851949311207902994875153673681169402251563958388335447695954754460657869459270498083022962992110216874630899680861480648635617505993172834224930272799705313920810506900598710696588197507182349907805067480343099725770934652783861032174955722003746239323481358837681383876871463300162003700236844578090581387425849441511739632215923410916058769676360122245822882435978399281934636238984566036723187284195141692342966508885615742718098408428601173583043965947053722623457965784344649840916933134684723738628510014131188930927926414903766486238446710343900129018309655793816113870498669367315200771725376285332832351007060456398370666989573328243424387976876637919198135160853517276213369783451761314885540150686225826655185628339770344633988301649649729808384476982462560061806311373796891877102759646006704193252976362031204161217895680493992891582452888115361811211262834342663121412296995586436974287039808332005364626522836136265627921081555328298011941940928496065486074054128802419046228926876915934576534121731746553255527241860991959404634976694954689302629750525271136717619001602440898528225505012387418690657196768404518465688216765958874478078391632003538097297341886850358263937955172671429914345541713230572161717255390830783572950236653762863066774621670705945388948865524393623319640342694794463274702883637682450654550270287931095925725838825556531551203168690926537430431947462965740357169997668096266127514989928481785400341092072586845018310128703989418418859221871466645066985666015926414484060283483060137264351390448678832474423132204007838842234860581309983064580451648248718099216042171252316614410880575711209748184426490752087546886010232804508182657228940385074875363936262770694262145207561025847185257501080692706600068611986395780333502246452274693161114848789817306763036239408894078287354152622736203201219062652691081927074629574968814310151825299456640174615970910589715283335439657842266644507079725734595530026305962196436959209586179980989998448840881482383017589930469007116275233463943255999829509507645386740163182597088853655159093803151029232709986787010041972910975339585062494089649427973243371773534397533400377166381526033745452490752638214170936482741298134883395667341565097139807153298323964969443098376361411947542020201808825204235920618346046537340120752655828461567563882898138530470566052079065905058054013301389783819266746974458763226111802426677068395215855558114532855098852414565253200379559854209604206392268435945706379955087738110876787918214427447103048086271597096588108582227709333757768485767402378200540008849723490532045477936316844171921075709620743462190097781555254936115082722876113356499492045172615041976967337050589408783721683046202562075883087487981226365021929267800091876044132751023829504299296680318534803503983735222617637547853430500776744037562717278520637051116304619361588802119944883055765443341485439699696156149500082284156170376799210956455757002966425781779647384022058917554217069919135532951889117280098081018945552010128065935194852977646307917530112437750856222890899544630280766196550788551964182025182976178529400205886527241664410083609025052241114659731809282131495741696818826006217457599610325601831530514022146065874931854463709366044366467121303893530755887622354869381974094806839856614038612939876973002249453075191255866512569772797899133615952801856914084917579909401165528033238026808911996010033300404743534621043863654424225953437721707671414943510225894344626164761927336833897710875832290412475886690525201338794484855305293395928569377640414342955186162968966744199062746391340020674821690987236576134176088920436568369098406212227156007665872949319126552156949879137733014134262634389504545117058205645199450563299981279133291637117283577531462845044195092701425577351178472558180322837512704375678803014960874515655610035269947253357899702845167584294269580893350710455466169345683348221400268309267524685066253741499828784002517012917924310217646646093861564956647888414021796046868580417924765963838261745049051915112067269631325637605107342917343122744582077995806948890410135921940891590583349922113939471793461480459326473529548184403449473693513181247433782038457467840465415101223926913632072726095525340757562311707475540252326742407961232684534482655339758706194758156874022538954792113796248833006150732017427354047564611467251758587563502382192856742709491549922528064434076988259782769687689382840098233436158274367661819042280056225415212611461649503391386057840077644904748339551179674879107412628033209879790335390934217438512100252547329606827707690215842865594320326511101947795238454982795093370371716641286393617221770098882897675457288942273007161248324185676825299702908776345996230015302926492539049161960180798068815711122544544863972299142844829855925234476844282641290561708185285833342281537437024256700595673350248466699252161707797176091752747861052859440696819640882306784876573677869270116769896463858752158482197759298164771675252139197421529463235308694953640042101418410784401599916296082602321971535602671161354439614202574699306899928416648335257877337228099342660038844437978421984890188751155780630005941017263305736066466656864875275750006713837753385554657091926834582414635466433825879320518327647958524076091476694061508124768473946721705841620849111434946971083935644258851443908384962158203577835986146511759413290376540406029410960057453420404594368349985165107717686100643114705800473667006159544513769605117033303392955515673596900557865252704736858509942782588649160700220443994439048613499634976479722094281712780846903537365452091703041859613585004012618028979222802573332040678845111948659799822214187376269639813076450874862844920159501791331282952985811606402078469281484517720110346583299991772336117176548981433148325969172017934406164597763018203708705082987942882675819093861452278537352978725653442190016133751627997775431402811519001877840099719951083319273022634240162275215353413050198001408954317232427173822721600583718185773766960768911247472117864040636132569832819559904850349180154935632034075956068646379215476955251521340347062667712937113310931007765897994846158374523855884822518344405611795320514546756185763222378401026587432612841874061629393240751754233897387605677382193251371920666765705271906348594062752091816668664722450488609629595067738552826893756170117894666974107237181379694951527204154558963487025997465543627528354345121087567659183360312843667136146389015434978326088006569535138535461494598093933062189595577308743460305158135194307702127564547257208191109339513161638245677714703819601091202808294709479678871212868149588611504822211492566666682929045808870336667632851437748750124219629703501149732482352592655019668871637586245474466953401252967135823514536951851803201741482292537766941982322631302978427197532888010694453851591337836687804498539616869130282242298625000825071846478180191826903322699540514287364123936780958008744541844158236260719722094935350703922289611443671501256001896709729898698732406465752239308036553317936983705125721284243248743906050366133033417476804121119314659746147563419466476824402943867403600984760988636982185927976011287623561695246248866459673514318606368291131798666780264812289535405199680557149545111021094897719894191055495878922283517011069631736092487172126119368450073641081984019731311604161849296906910210972532939976016168244162192514208379538310011226804365340941444048570432130884430166538701960383821651481056259465222607544523889897750407540575014468191176073714727774034891583581522188872296112233194516561881353286532713208677815664765503436988896539224384273591883552929973494508046270978876670821284616396367639595835203470856176870149363963662211511831372218464446069672686039203150556420365239445219300993767891951541409419765994704644616835728415705399438226383198213955561939661048562290316225836396944853397592503708267627654257506659490063280305363789951646877301800254157789671097388711058061314848679273474108960157064747066692490729836032014136811574857868614649731953697710750096645040778053052027339375194261878095266129278793128601605136479237505310551116995308983349399202613056622855901032639630326486354437006942821576087623284517852614158332024179626785979723465129286917359981829982624918420827407770728707187221160673223363394053232800884887399634725090706302863945783294150812761956853562922891726439584598285500138824740900564912229525286745964793031843989916105784145547796815867862806330944369930092059703121118838689203624943940819585195788363707350704756323378166657369994073280778320450122779387513566741384828648810630134064519543719078070193568529549322798125495982424460094840264367026787325006546083371734390132099719981213952374226695898258599721168073055654650225896348250344500622009796565418776385371407984279117329456698908619577751040774863576430849235279112287004290481730778392547885546084536690333990467415298941892259289485651742906465592447162454584951612770245407545540736560276750568380080391406460068749184352386255910531250215475331423425711131900510018194118164348508910699546534696200094199475667595156560129469692417743701342094574214588692273042825883148215905164137341080476121025704866793896853004857458462927567925060783944326312070381926717428656155732275755951317591134288066767768879347908927805674864611487865089830809519084026898547467203727936363807562082386530245360239529003803452181466357316148852129416895968383726715242527051149222591431303054627929538137370277332580056597766916704846959339772619749754960372535050767909699585023620586476206356383846707188249105529515457256832161715224733481074501502758714896185799892183936248759886318716881206468570598024382084984189721962059514622935077493975794350205630752460352532352073949332919518455963952074153365604344488857007605844458852614497141050214016127717154798487724939338325030742109041668638921420198102507611153116501429403465039959482968285487479135669768058447922577122057657379098767222949941427223247173322340786342871754386863158509475950339186667150479112337315910637264676187694685353280246004509601767470608135564011880115641193967376609049784170916187024287138167962331241161780558210854719231027690800040719343105761511349905750955755859853213261144009359166018290342442635307238405795056418514060487205187137406137633748281218851206667790442418579193140210011811807210059129080796385975556957577321515866413491201076204876464696005306165117873213739209860957147792048006693161269839471252353222923934793549175882246183504738257877690145815495504923201698762576983140998215291226662988359544275220050696265829010143207776589659336456540514947784296505012141476193770530319360639159349881040983431099636566566119729141369272860924320472368126266531704073165713015843969829666050102082260178729207283909223703541929493249533588987503286994041428638575225771251409468066578596844926627743880865865093597889590323170138874057077571409832532104321614197718494240177513182762348690183197345695400587455873023681086619518349016311355080189806310415743651307806868036013237183412671792435196259531421317541365282235889196093336334248763513602342110668678753050459431361247085528213403144618640234372454197498415382905682830968373078357690795457328997696011990640030400874608171779637284816578945312063163378347900483887717058178527400988223712406145033721573608068601283452894612884210911953298547679677352852317489680053511008796449255989154292783476353439450347430974012471919920776384086646257681679402273473027357664514970270839589801322368643981705870249243086652715835596003812492937411275555482974154987917047454015146196143020791044109199706203805437762239478958068145155682484716960989898354482361513314313353930085517218342963063745962636945604616253037240876296675374463007907422058184424530810281645776011239617504043739441461107103387102849342648101753798564789439915877534711613906794823551046748827475932599004543401737366439720910598793127130355009114959145516088135365055915248657091542248316252383799178636757231168250083162249948693507786406777489159875446966650760709594588975392908102705888901555200484309195996000434221045671660397330238894534411658245148025485466776322194287635263795826387625865814610938316826331308887878257937590403465052065011195076816879389152704619790156153485166343094394999476049815205453775118829524326451971289952547914186385492771766279527407130452753658277580626587343319863259025050323377007050450274985525358789068188595424038869414447061145429745428190092587772610740339080163045839515711630699520353452377261242743883639015737268669559629595128780882114934405274852302633162671265589044247821918153524843438620670727531136880727020601742697007594622386950629243165790374232279783530362704250909402781555679756260603841346770208687867445332996765006356510894406495502194163376991926564679995746723402413303142290611894767807768566500555949884965418087732762036022620724406679941159719145268296836192907845313649349534579996154807975194378262865583176695946682196969757317482661173551457083618734928877328838000173402231862511699238075218363709778098858675883280247043452149347658205316580016485839472238583019580499205150740566250289997732305962349254902062549636345571894175827046906258103880915537287462452368348049043760352549150283530151158146482376582159724946264576894836440894087591772143425414613881647558964907081005550569399729362327167370031871543176114722014040886062096314561288698599557367434472289720816873468418084039295689363033521825093460366202348328163456488911607853945789730592321442936378561769119700826304723236912847464011049194621627636336202548999679393170411121577214278479156339099672886823095552652672895070618462673433236119970421403881682649497158373271933198818008641187020041209082486790944170803869757438761654492000969617710818176581793238473547693811404455340301675599301312695322958379156626369150866024533901954086868168437793053737017048842139274880292839035537355433662562670580983888518287162051283337331579359164985092091111545763436057851609783471052710833345398106625576238141855795941272881212026556921728674547682461711255422702439001094021740848144375838502743043845240757686931536532009786197689733395819488660859764204097570557012544383573040566344079822665968564568861046990820174097470025937522155640225155309845242240098062954619428629787780655840150811472502448323606840817059306304262009056794369759679557746794605675691795710366353503457335450054611403628652992267339666468537061719197494759636217872367713401803134558978180032313075296887579317589934386047583875585754421390093401398641659742099662760515977475464034556882750239954291592400315801444367445211508330582800592589159596960489633207113052361177499556620039779345460777834434178536755030391181768782760597448673637657136368701926406571801736906173267668914846636561582697438308161522906297002068173199361321039498846431102977758314042653860305468247758975448536622795522699101667178030341737729926957284341949793691983194561664962940608005889484886491377539700067080746902496351139144388731197651240391329554872636332687816442609416492426532367184276239544430658886463800065502436125509808478001137917681299312026075142832413646237688792561572521406492281860242439976616382470084039462344560338777968370464343861702071253569441488038992929749556437826590798132323357398343886483207908949912538660477544046103975445140018499606221803847471933684704948255400519928091097881941841063604406819453319666645821866012832213988919048593676682915565867156775358679372301329766860461214379960488221466268169970861632359030220550468289254302832019460680372444502237928176763416995768919440541366403286242813276658515120708934328525423803993010656047368586049729535428912346855946817518246531230035040843397788609596608220222248573213981813130639694659601457718582090703981650009991764170537904315734292814857917965417597886572240908300661265051508473221965101233277993571274399087621892906889969931868274869634636191460529317355183191088143308709378295083334151575898067230319261315682572971320598002270078875025108397503431132860941162251369063195311927991032350999120424465563551746014322455982673229592284313895653608532265364032395522660121196984123568268661986266215562062288809505257968876997779792663097061030674114739236919370184668566880479595770992898680113309350863020254928634237290316306355352336720912088711769761701908210429570842330140563260370857534128268813896670818917479565496626238785793783619846408551103018905641825911025235024434978064481254034471652809829473954307612377417146012599769873153282782811696552229715932565499078723026627948010623036672475960517921055930837038071203834097612132951634724831860214028128240329175252155492718083588554606542650281766915966603879882623347572182565356305226767726224960196478055325748091937232320286114884999720336433580028689489809944644962254771884048987659096897113984017559458272527485993723723474236821608457201286544067569118230425074340805257070966781376926445101776703089334651300856456708484106247147408103755495705646315524168745038803331007823020824368982225333260949900080515134044642393336585239889779133332537681200157935767205425654047289605139107679891002401747910001163970994693153083370792603272783515474098050846547326790610508424077534007324187780302199601359368718967501497166739479136332248194090689304274602009491451623600248490783298558831205311835125629125147611150172002117349261067401664650189530738953404958848920444257467897529193760100050578493014593468761131602585387696478759974625035645783099716022189449376030848198956795724841588234028923830816533351283989573432526995711966361596558969972671233616228105498342152471408170933887437698939277228218253793221096411967388618109669483553141551117472947730942474819853634975327663119531950916336843960567549832367168025300630204655634039314991545528600177022097055160824342427526089250424347632858267565755588292009526327401677724251139580008443362680126013404587577467417823847623716822526906350516216987208058831349145768060600402354374342298417870141050054361765217596672974394976579022152322301517301831379027382011319283723769193934642130080040148855755814906848227553450951137898939177413784125932152524731681798714182023156495610928623312583984459631409799823593677267742982891787552094360680547591766602719108302887654729090760277521526642205317736868277439971628414250469205291292804381002378620520084522482748274444005596933843864531954569996260930005764526917484255369404346230174215614487196364916068240111172451609645325448808184780374448798016009404710601197956804490432241142347933569324328292232043083904508367180576657500803713302677195257291064429950023706623919165783258345042051852887220695769465825834957839553696011719381716085537567763039500742806635590174878074383289597043131494397726974784938456667699511987941765912216739241840898480018730489011672135862794970508928733298556030552562031146846962253513334291119015950524061621226653980688563409486079525326114778486633388793727676016075768875806842443990537161471157963144027386501025250618383050148515050571000381689985067092372707033809710575153010764600604191813993974253207364492391726349886009388223427032853211762278891291744881518564533005415246903205471352762670136847637612896778005120985246844447991117181788695554327352773031702927077407611010436483928670364202877582819289248598266992853707202035352098060740818691660036380867254675912234680770956081907581143893392207883368060002253970610926042435295438327540669923813288896000306627012141025734717577660034144362863284552320735433655913117180025740428251804644346731654600371945682662935603001591812861691960551557897681507964629932913011436608029742309389380949949300755216633461502428211014898639957709950048620544037960647366091264329389652778111491577202424008870678617924110814151617897213843913293146152803907016968758464813372328994335592057323714048148807020920343400158195878581014920247849614999855322252186307803656210052427385515581028290849452849818810187345930153981463141690636925571316079587531358919930154868752040202171718096014352363144104340461439279197074085011900863047033874014546191293116063225015293633192779460291251216159885856798786527240668136324175800144947023547719300597267091528525286805404607719301862649709427472950812703283372467367400747618754221699221422817748982712957113318220228788590588756126559153289781124788176353012943349725939414290142846935608177747339811605825439848560969630005622162932349074064838841725870003794230870948342783938507215634873460630945793249745919767436956399330039997375491416368753700438968515810105295771607683658533541497896280488900483094780083789851711177221832317721055553132372531615649868008151393042038915679448585559916921878896290117280928330640398827110206536364291783559396443616904236566106373624213043839418220108490412344347453714182730489903349445771721241093290197217501961278299022768439876945904443234406978842479723641600488055194315520479200448640035534283626436059798708152471730984530008234519869259975997694157938513549008973223079873943927978011156565977174184317485534302144869478486307331438166608656643658705327777730689155594906910523259615962459249745280177838034608442341054405365369784170130348123172755987748831791618885041250448369600231309484376558107458487541111682288561986605894987646703111725636570242321815261407965439892952118288455141378345981114904995127719374187714829728485359559917121404003961934214202305075323954782849708542536202016093615744185299255265638509354346453255085931676536428085880796684603234053090362064511217046321263143875662662943669213425848009764700298963288805095977904142862505353806354924893779911359436016726721531108486904225708963473418717950576995737581455588941142881378341859743771528169693227550510954996901705725046810417387491851324158476035002659194886997225850748148437680200225287861053866230017056681318613405603926072159940503704069485759714256271027075225945729245086653015835944031510258349573258474949403902358406049651015869017917188993225836836809993679825663282599559009038888021328719607477509460478886327357242703567556015687712148561669045531807485936027420391932123256583579258596217529388795105180074878613235235729187359077581433304938664338234600825369731735948277793854498690319486826919284132839731204285296568127657032133051190351300738108453044055749280900045724661857861799965109772737252769526546803069307962534965146758315754925003623795771683123369142972035433788674969575236651284767559947092643816734334704518441214630958174165130556325617317936119637079928256814789506403604470520126342825258518247238465146806810827654051154117180657965286712621419846080491540617642534108132455028376233993649267395610926213251136236347121309814708606811223877034034482680830601587586081388664895514073589671497251995220740040077067360714685296443501448114465954211477368747266033981001850460981989337928651418062758612292856241326476550350291967556928264312692119666766567427736671540773606033645893585286993721599918649342709056760617190304239363369765713712150366670048954808445963421156586316773342448143046180124176188587475590690985133456536153010198139892880246083081015396077060427521903271386115156476591743217936013629780770346309709566698436298311063105088095357251625124020442614648386820865837497089832731778991691659636575288493670920577602980156780203076416908036761123481399273706873056431993716012539188290480329762759283217594920375530178536923381766154528546188874604346413010886379041906965163161512618648438533090976124692943566293645128396265368908374483812846571860019547488620892139205057927084140633872546001706658630308072763130097723476290054983108569209763627658401580939219410576197926132747295060974401933662397458917543265900664822459766356569141370303316697396737740821565388446955259481840997117010952803903271787888875280248287896438543166450475850746568798412927931393425838974911527398524974139145509941131045671264639041333420963626532860406836400968418228596751162016537345417037537564192317858589915662436597876622120155538872075085501015654893966857428758703216574442403985292032227544450181628097452929751085267947269128303531338198845452466307926602627384928313959208810380457415585476167545586365296604879616034991922341133468286446877664513110572675484573436762837997681533349634005581825291405956771874503906828347140710464412188172317518517118525016392783045208043423345514251850669413874375188472680194513105798301143357264083942658864691972496023887926419373344015893031331977675152407102282358496231204703916452554564247104133158969076031207258908117761162868104425624473912600548139373642896425744609520529304955117822681013033905480155357833791733617774009678841255352010248693721063229381097537084303737257131454847753588413057077625846864674031656774304437213277494368559967567777510204484278231072992865800793709322224007195774941683163727438060687784384677815261323220321598252636232983848029467011816580986733360626919365357787653953495639906036257709294635542035370703188669293448824705615825377572930254049970380673706146854515006782843768666894229842234257622800314482962239167846280659482610522310979768934525123003018003851423492819227782564750229250489904922532724265714598199476474128812224052400121616619302138933741282895950961182526901831190610093577888898902207830831152890634851260416014533589050517937789573881609382434269980683747277660165218260673175538972985846095323182345124651021750807942394536894221783463644023397632143752354546765728436044994352759266884091856476718620391155279012211113159845108833094589519986248784472304893276286215232747429411581170264679271114170755779800687364915103902547851923094781980347397715056846603781807702287644497776615945859170716763715641827947651469484239528563396595635428935971326537783153123017072224700994135495664406354278668580236773561929746876852951562132345363149362535930957131718258821197660305253984130711034258683374400503443392159649889323948671299363627438472328240782200103830831920502309982079125434180062694701538683650190578856995925599375064705333215900094721666237633862386043137112976981411707194842665637482333246164181665951083177511664634149874078118132227895595682808475650112944704026251253467239012460884902977090836947302357209520975816928407249019865238889419627111912007982360265315378144262997344361163998016809928430239064685276797076615721094888279715885162743197670439167490567778065880260073069220155971976650809313858598360370901056310177958313732349637168680940692415736998657786077113397667133861971577145456177588136375078263550838809439854103349200163542641427608483552381170267904721117289647031552303971691031268710093572431248735804423691988365546882862604929833341911889018963484766845519178488730330346947859787204822147140546336949592678066137920242181993547230527257375831882020420856096095940100964305924280097812104947456442959762484156260165635103981600367259937885989970923278026555940236623831917859908917407718484238248676634532280465725907062529963483256996538853817536950202984134893269098341962820400821367499427246670977141041331724607868670263019050439216700050275815746429175228328728930121141101944544508889060262750469223885556277100759976991804016739025978638731574143739834776572663992950195590290968251849265222435040061530050022748145042337351456660596771011477954800859584267221041300504323491299733333666242598531597701971665656680093384058998790747713161677796132381379553375314543988887380543007091792575509603452157702621396905855219058846531067358593116401708476279925327022741612787489665301358913172868334614096307773465401064857704528772083223001924012276260219504442947657998326361082262855081245136916529231763330326216136751349386566704936000632302529767516778785154898242761289488299809310853783862676278904119547674108088155868364615749151871380836850206217330408213441629243406799961054224561463192184926459118329910648872754197635287366484684684673405339655824700410258665254102342411507311453452918453370990010139486280440387597617379945820740992200239486338755141562469118888075091737206791561743750526194688331587050878049712562784705967418207673363434085973953360827472788967138127810143197790673447923602638545568366696089323680543629359550903207440507495594264673947375060891869765358409455515466002428768213903883853360973825432138331525170118680722159469355220408371618291903093508570698704101629247763108516276055627283297323116363914208106391920854602278214903497348793061948469029577219529913038470229574532578131021109549726350902386539398638036343355807583401033232075308590504937128039236005684513915785773889099441732033016649384102187667963253232569922702519834679301814592435557511891615313989209777295979455830240863455381624065684497134449927331729893139661319853988410002133831260278470549752949144739552937450739171218374943540569754682373795765792135070350594880970575620314490665833524774588271068685154160868816249139979579192856744512614975669244516910357318884000565435617848944322272189646924432017181714593740533881265749961526817609332486815746318073218708065942838327342278886907026446730713392046037174302763119853582469395114075421528688231963595279034381673785840476781967615388492213005686254987864395472495176082019901743312380884615237804175523479736826271681199090297045039258883279649719164025976580160741521241723693210768084820473336815264917102243618273618082639814916990329359854336755518600061817571243512829409299169163504518587398814539335958291640082608118596480306419643826680904918380103003777738362355350830260058346189512043530497549985379362542648388699345258193937570472169853783284998881504386244060994938313032407858729487286792534819648510564225832731124784339963305953271980453976488423352933950768314270304766362780837847338945493193950691925338870939049722273855665986631426301663854243391224553603237467849752631373461100744930693522684439166130088676399641844071679696220856746047672090190568689043319314009778194015588632709559955345725006751957022289646178111054711330968469675371479527635974811006877591318612911555922144753602644941483781237105881493516463191529292724640763447563935839295350006900975906875655123078923042689781728404715342759946538046224248947166128079792965415134960356475700060005518282893465534426115102059274642045603742494800258949490432276094165943372831418182985356085091049900144086956415796093214243779886865293348535081614220188073469105845517095388821645444624520330579097011125595559962412276220231939938677128667485274456320374330069766067252572639263037526348634713372932007131564005394888090838998309946118478601217345149202466975871440535294129462383257338431076158617967068792969993332941775434469074701536848410742983280915877056627296792903891022964188339462264295196279557091532864467101587105983405547937647462823028160881324848150048011619907731981664578911519846391007097666529420110760627897593832304640360501724430708399202398628793871771040588616510146910482570702577622732013621369780196812028697935457736109265807702813177898086370296392934784075192263318689110478348099338579840624885662800950906466846513204732343779658003884049673349029738860139683680557426787854268224544775592230181094944048214967750403250155463109118419459060988799934517718319289025694922506408091843328621374486100383100588263294770395616161068840080937525102726633724056176345105901461225998249118839660321041579186626082600719342413903501292655737913997668882305840340241899891628304051022785056767253983493228675007515304190337149097981197136433813777684974432070201268633201577003606106412567881351176997571644571604297883458656984224387117389018783506793427511842837647949266708652227386455144317367549471127683863921883974713728987220589928639981990472442509606606803435620337861448235299189076588351201527983207464253921989836371417489704346825290783794307672997105210575071212255068388258624655691409400413459635688143105297963409045686966119923259118711627179219721200088100145073912162564824880021299298985360929937367866841545814871255439173696263813387861544348180254804554615577742886518251035738265772622800666949800629740343339171719014088962856164386168391679852585766755963491484834957956214995716336460731722715527216781796865309090452631988560761951424026955589639489877153476078680857704838118901334084731602661031509521343121685205056808040610954873751881530648311791971822887082796829608380248029037620026576413001098312646759748561746417093878820771424665178844870022270621914198120342853552923802263632437927733193515410223879692710775566533185738534340847695087102570336473995372438633688547937796819082363059105432818068497438892610486919945472019805117116231886988391328706701671410022406448523024968101686568452296277201638922021784311165817548476925671839887806557307870092229788934563756080765763584560184368894240218385928846717366401054565566360067168576362963831319462664516466003099915376318721558459399627606471013153308913559789453331254733104331024598316986868380375433189600730711601501911952073864263285010395697777703384814955956444005974356880276642890883529178689527202082864002906405843861412053658927345092487372607358915259301171012446348225365790425513326840218265007594228637022206551778130643771436979079291301027465242333705926644765775990526927710537600925518057325909931790213327482890667309816883800408662783864206917663352372618304106060159237750463415645583616648002219243424774689023686782974682281497574583856839007661145152561781163275708320765374041764066558738793527534222345810904790745080254827453809365621221175043860926187157868463821459168424582567455981532302571995494854879424232638462353298831120274321205352694465807902434335182700619635890705435954522486759824951788398572865360084072779263450691926628472305451085557413902152413580474513578197776500955441842686010151813028909568580794414019104503156523970933552621844286106570802067788726912078085955863272194167572137811775814457478798152156608418010411143010140082226841277635764706543778500277918428695695943757505224902582312216629647756783295490142550987700997300176680583747021063972000730596110957579334452932200826957432536118275990943069603100100427773622258445910078388863339868590223750389569822514822420362460422850718523681689647545509611188905342186052771191135274529718432483901391607900812497299277034871428642196118099268168139191536907642077721348619863776536226816117836750685772303768371319954090514820813082425970113506602529695510368140659022859387823304674483667788687090716771721662989477905968609091342467686025320685224471824690210962965380640126497040221984297843117560634666780663830814284645830257623349715316052066451275309402093690761389574165904623889569208431238535614132971130546081669186708615851605978804481181437704967679020339037963511708458715956289387580616683130002745983405100049564425413962317742530237938411068033943890651378071564140755454352013969959504113491700206391189868854473606660552588391243126376549945348888313265743728778959938878124674269058560512044707589631957658910773446655843231003913337048069734203293595722999858396503037312203939698229702178788980827288158029885858099903275555497745543185735382063955113657120975072983269332264745644924084914889046997141432553314041668402160858547060377786062628786905766060913739689039797456885084856454793987173616260917318203550425976659866740120683835223945198430857460434740275493390883536785423339184778716747079185328519522025491812409573050147104107515482660552762197161594217553278741117625703193615717138244798938372115891080747787617568726889144394635483541226665134418570819312440571307570011751003029999180809635472734627621997667452380244090879208932059551928543696302132295875863175678070439029146651706323463595427567578601451698238116392248348509853934136319106038366262343663317475794637766753123833460058227963344224297979277795624708103809341859226585551541357281415218215098726468834984100312411801556061535830543910117189676823060375217419638912062515623335255386331677345003836482128469425233546220097694218989209997498553864211358478828725749218610642768086538309242408566528765424524433006457712268984075016495561058455310688249620158321566898520253366267111519145871581385237915322576518793633495981189918135831411800865018701010171024348331869778845953228295962366390825093399014395671466353106614269990896209139726291216704691176986533906600385681860983854082078108502547248586934443849996320118148671710445355070578320374523043220268923338615070226591099972978064648774095950766529283146335619944768154649709200974285582676450616865799586557024834389477490933174919697166674956668552648358697844487323633120777562304468649619405404431904395570184981246662842581301792796196012424795117201870437949492037297439662930449801703669744015004822642368969816993781206007430352223847463134997224021663282653257258571719137279480585482270002268816484876650890841808690075153880617692843031506165018435199482016552133606776759910830231138153918744365478895246111453259943028323458961694907605555913873238852100127819702088697477822756249603000297927202669154729459182501881284924306027117626703939414755283582135979416713926181839001967158783015557943586476430125385451818582711455715812892230987161082633501787191365140656344691415104020689636466959931332899243671190952814908618436440945946442452077322759203532953471911179624360378924681276015023767218325177132390344045405231090981396558968183761844223419140675535904945684156410835681726279759361626397042920371137810935880633844647926590159293787658481773364834596405406765458276728048913612855712392160026026408068659304714435533418889424289435271831087968918806130644017940854609156883488924411238289070156550936390705315291434786720621818549112076519462244360148251754667948965793315131902541319597846101857341177490767897102429751662443972890809757676528032044003322655041271930376967265727247625487461717440310667630387635982608786665702443437419513861404597265432521735976555596455310247144936452149623757630396686716210310458552358876766380183431108192667876344981732509598950027553137205748451260270260078714829846835379449284756416506593605242543179695400130545621827101385321136684984468407506179985315222620998546032464509027490476992298472223668940144069912033378503858794049289678548302416827420151957269230862902198050460391318796443322925872933148720342958368103013626937679295696666330771868580778902978488457718767810016336089294516099027643017555853939973175797852989435463142651539799086111470986046671110679187897320038118328332889269600730662358717086761668446210087597844370553132763993401330194791729147708354969359789186015123416685802833247656174260045973065488742555290830600075058416042233812385162728738584715127919385342766394500987945251804893236985698469905258445007527845071581383357409512146025010402104322783647230019981781006509640353214828069364006225774399570010310664242119890294885755465837336440502257732972778390492062128102125531885044614409847744156562872993857604392294507613338975641757314272377641513227040558270980141984403223693409194515572899396714239439570740719246201064594042774516380860274804071911020212397161343916667178778144176854419973153786839913448492242604096439803558316077107983757045965967206086381363832655738390571838678497406022229658194422445474665110896054660867904504459422953530317360803372342472948888251411574992881049343005179898783787518865443680217979423830362951647002011187909284319644641173151054260554882506735404731637927482318177377921830575334939896622257456235402907562906012195489512876274999299960998841370351583999451466332327052402273336832089837518952538844758646674383901767999664120508770809190475872045772057223560098814074506595619105794861980136032506149322617194704259529865347827036063381995452245409547242941831454530862004012294912506218842685324004118340653278712538136645323298542804874489635903404159223367262637924939927637341196393611381372921811219323219921631714147544370545054309578404908333512411613787084600439804638616623988181900151214221809723471077060462404919923830112758328282852961246539673544080423196135927406689055612023076556447784139820045891790787396435151378536125579161840895220188611075706740398473720282939789594735441487106534509285106578006794529039571564457395194176556431107036599160807926074840412717114273786459142755678009741561442559459622481552271911204483126278872179492466940913953580000660785756748159459701327690374074182971046969712181546608039341301810774304483118170774395790809822284146431440741778054895060524712746289227389847805003605472198334465969175861644302545522458403690640480474996872340328493357149266505322710066795660852996853806498561830881425402341554262683189809768147993237658159185477551580139080968761680463981168793758681574774839003610387968764682466381346307363915880504802174570860514435794713118280159467497115966289455351550533493266925506432432270809922267831158614637414675262796472185607241153947703788021496631401107879617822340618652489870549892184918427191754572497899261736029587229594032964225852755750344648454146930123624070236640035829969674814058783024972872690098013613698329736598929902897350860892860888943437452966707012944129641135239692989456234626162516338666005204261761870128883688582513519055255735157411062395825424088903456792982705972695646627863646575847725471564912359136238048763936192575070892313965104513972536111355157123407266669605408090788319069254730954174877809604918121858841270471165263056037146663148436527278334966139701600481879523031354839112727274565260017464862055679177350625154897187219794327676256240421655828135084506894594692950623463222329740737197837270529473780971245698177131003789314326222781128679459575991392988978932645794279470283831780091183358081762676421723428584342430647171100557745840261223135479213061809108518446302892348078834982970622188481723617213652077892819104983557661258436770340119495342760865029341296385259183467317509747954979685013854814350142789640575563057148425276242624328327955830001120368713572705767498431041222424699070988010598533906901783775941463820627947226793071190035107798046244274532009806472525825272562917003424623989937367510014046861696596783081262878973459933634144982241591951255003104250954995657703484296087504433061023799834253376537979456713698816418796241198242265709123776453084489150070958978545990965942533517168717374294350790177086638088801895516736765198375004851712747211167272218067039741775797448857508889972954924420098742764561177893519555556720273039088730164757878864644857864160101656878563352830195350224198480992415320302874280314024524356481851636838138373793290950958115162696946603918242203485325171054853292464141326390939500242616914889741134830032890628764158892210609923288196664335450159179834308733567913844239007579232536709723968548231010178684456492922263027565697445299434951702126388412586744742413609952180977481225190230395748446230339969751723276579383156063466092843064650820130424828146943515934248402278147082728398801677423732681542104776936102911334719569666738296155004178296831074621726229326632924724443007006525859793357743132238193458307250594894137537285315013868265008860849961410413530747986477758519522611132205746069310332688260590421155447965880112977890030779258252813491877339441454171447155074824749119404420691047245578632840451926857799002252893612678675512560399515085025025930600533735555029927277318583546812236483368641094516585035519845929875041300708370674908844585771389712020123130440790459122767156672614253639574958812760938738789650537590632079999391397504555933510437205791088985493364825075680219915968152561512476008707229842485678588607822016753304397112763365673661693672262375506377678400513609405023331645354230445871316654131323853218069814989572236337807491035331543739436980249467340374182330815046562787466986363846718877902659027022211181343373914237630719093436047350461131823736082659365201618740593933361578368289081392837381392006644249814852856606725808168043550879004112808404590219071360086922192234847201384349233497316261922718690614958311267210840273165728668909169043292240583864569109276519016734285710182738376596338825569998294990196993910522546105159579559065757774213800337571872644580687286764955371000653530101443197135451228890863971637332872539551592124315540962827106318970405191363998062586366696905263260539826741880557996781306938417094516230207589896897614215438490332347674339506875161182541133781748820609097862251634984075033960418845292841621228073929819364932273580377842957145380191336738295905233437153914250193017221985566298265897557230219594508794334154575274748116419070268667612169077742644632447565343330011014710456277645592461920576445595214980858034352647544347598297932126761713266687327156676430587540811973916266957832904572277704939605802388293294853310869946528657355758629792798213565346832572733324760220759060472893050891700645957967253821401778947287064201066652187760899575425898100411174501702064159039569593337408701369251731094401468208066667787736523532400320870940279824940188220112785792852749536825475023016168184560680114263615500441392284016543528803234061635500988129141810883595636932739539794295339909877901148016599868136926816168262576114932868544812396648487176614057793144751504024420936758765499268167903343039511483467361105831276261958684609971430165694367076346455285846051721372836915149514892193452204042054044600588963366636414328946933298130747917963890103594342814914594534435640980426564827696498205580639372999847687847297345577996747630977345577587672307257703677860438344942804953096761289540082087610083167096724258575490593136873346970882487000973484377846987268408928760825493177687104458807376454513540782041075968350393165936457575694055098402311012084232697836142006784228707407279165457461215113509056089420266662739473777545504860455426720527456513606451882613043650493658031176502639679247252060699731068254843909885232555613624084075697487894638311362580675337070687545081742933612864040996596084189765908759917181133780816411169175421891694441157778687969061890715386294679663860407398782079107019808879953118168896677035497487296247045870664863467281110610268744044264635568359056149589862801498844373010481725516229914045727736903992172048856136662245898867157469696270613928783981285887612388730737082696673722514454656831269619161128915172520277854130864841630123808951772745487175760568250709860079604215957271498906410734897574985057604243307691352360785222558620708379028339725963884736907355672711278965805943215223614799313233115922545214750402964920371987404238090543635834470957243933330637058699198505838078460478541189042161043304476604361665647253730371134561720594577910540273552122061738093066602836210586781580589013128350781503461219370308827794117303292298903033473626329769022373901461073195091746231631911264067286375539351341847290344048791925154820009390434723644096726076400038926209981375182858192331494833621179227212762814908691963028149722229702509850417285426228678792297854886576726285772879283947603938930382624651075905171337489890458522008448003663914680705823076352000433407961419253092542947048608088836672177224976119065190390643213874903242798995241489319955375948505991172809952536160465797814782345354160241447856125489956830850403639477281772388443101887839299949452144520601045485105563295825958408587498597078199009127345397684907378025927011070602349601973229452135427844295627155043687313169558715257378505199067251571485417220811977884756750976813487027324346092306579060497782391131631521457179486178855694376508738042352137149496974798757183662343981766368880357644368974563240369117238503214307889501134211883834256542924442922893297743988898057656134389896016029422205739983960911730245231743659564448460287918105997097808797326997951992861343595179595227470304415458927785261942886009777378710791101494206418136078088481478063867712256763791042328544979515820455012711839755625142953434917830292384335817171718869755527679897594594637567226341378117784802545417675894340687652325144487297146127428356124018609424445354848521823387326385932245219253750161839272607162690274250139073562139567784017469502648609440416908227401739896650216103840397081783104111217857624482727912461151118266667615767879600982981002734110573990257023143454880661639203535147430614657870427036701906954964104946916668371623869432468698755303450717299094199461499580134752152438846852684529045784098209132826323250777742883167741344776293967039927933608114291046105351422053067042412695214644008994529894913789624291756010331343404044432156516631150967194908740088014405503356841639761086922982601365204664490231907227421043000855870156889727277554761120182193681904009900009892660857877222666432414873694999038799056326030023292882420100665582795637296627957101009568751717791708809477134742028896745438880368766068733215237798736280104011114087908035828967072378573887389839100986910914098519382662211403497570719820512947119369079420398687572500704628741566098829135635170631864529682498367686944212571538193773722086303847661288466003585829444226555991632556865998633274279411981900737035565650287488835182908012597617748064111998940870880894084820913860484568418246801743615296426951581681830144059035272554046521965379797278493232477456863700428157813136836106681109816756159130825167513941001387568182971692629736678853107130046051320827286872185801930197076810562292725427575752072823593067197539362482910650486406447672258667164646771821769703655895378334163125772857635448070016907115286638479990344170767758050473507544391217053788838720841379193727471539646453460865050555528497552302132611288827442992528634194515435147167642314367328989925752080589289535847835774237715014777245657245131288626789906770827316924274347203173050766352511581224227985523882926239638801024044004472112859362354429838773523039572568092162444522359896122983501547758161716228799518619057243331027394427039486801175831625236963681192641382773761457768305292605641301187533985015755569367106401312491012474489757452394998698596787436561350804025549404525432152635076388694405941769299967682859959454742591557002960749631130842915822403012582486273668465590814667887568681976262737352289000483470638427047925240570779180124711645406938342941746755085238770938155432462221435172666948958437437506221673384891709621026085957719445123365997380080959342214817289140452678298105575685617576220182638059905203274971912980815883114600306480032774755204795119785754233478473052621495123787812882190168268429420526044334681395549694961785108035029308778685879259475419218418782558930102210523744389524889611334481667631888482081779152894392895027003442156418107602714580255418316594296185655435268337295106922829048474472939137435090733226468180240017750584020904951000885273518072962085973703675088086246216591926740403792186199862563521802096977795976850608148037587766938537123625079769406458125348859003627744344488342914807907197413140477397366795664034173039798844239061891944032570767766807388562399398228346582346124614426081467891098719145204254749322294663191169942850423330217575216662369166203682834907554128853256155923611907939201927174064683361442050824141172578807010381209792949207419342161745481312058702734122933718133903099630749382508183610984358884692575081388030241385965792061911149467335751884258130951463901261881603218014289847971247436725387286420978328912790924355944090430967888349067604645377046869849144163965479672315645411476304840700225098522027168479673092324642850214189712381930663418083292132309162294301073983944116012758253854779435906830814236544422703159448435061455206986579529002438798779502178540678341098768844997585886901254254007526758148439905476781816017607585824411227400371218713929259040821763842671963529010251750359722889268911243339864459418781073003542161719914631680052198708831126348525710295550019667221039271904910650273602120679380961852281348054477232223387284990906134810917073727149149289845627177693793699391665423332034634959004271332188555287314764096764526768607479970815388732388560817515471862751436564807702979957170560077794515444227800497787314326317683044422322094178265867957712042647866677162844262747398041358677066566450547906363595574559439281858974291549050903042625532606308995776636521994131703740506679468234987174362917075219266484882167134900473372145234887396264408506128602070471088808951833307792190625933261838197008743716768983312096753102344619840120099543809119364523633902153663555859237129946525016438552091887121930234566112357821192215894302578917180800972667414732137977770673991087963326888292329568827349961074922960626945993190321120305765171566333216571048940889814611415930427849331375853936883898306864498958368025675998429993014068720173922768545511277153268695862384387766237580165767023624705635835238771478764227165226365651874757153179822132511943471600511640633941396974638884552832476275157925178154117765680740709149924910236824549076551229355109126604389601061282313043792867586319739849105757821977167461861341730094756154735843323125689540236957901251915008238803650169480087500198684090452756862601573492507686801267671003539999977069115409401938211851470410829785425075955629689329487497508338653254682814976944866563565367968707728590140200804186199144673508447382076659747759684118174394998324550911924981960930208219453620067503172728844242949794377407639590385907661061345975491127860174191547140938389900090593878369236116672786724362507173834468232317857998773880909983315985536486132379959350804338126126200503299902738109849661949648801400185346940316407997595712452907408239983732523516709890345348705215681053867932151905525391175380072763565642148920554018145101697877924743333780646594372517813394746941231009246924142857756620586239986488434204329534260048905444986320397017093081734899311993762039474974269925645494377177104128511238396890896994622972997344168396327946576414315871312937883641455267174192340629264068306194155608768181243420582356728850280338028248122092530187861671371566210795426258057144644748637346357141919799215935595489255213739633867328467102974675923963823620226939546707109897484930008044863161709853374915238334638424700910833200330743429467017113150944050147363494183231587674070709695533925590699373243292671180696213156616639887858167092806397969001366886994585376492139995078456116199536968018562828456648345138444894557349907425914560434100559549761325447791137088724668046476321887256041604105680737084906104689040374593535728529453616334766002388222749572056295983468705855239774083384244637120368920057229953586057992602487279513886656543185226106857256025652842745663650626291409462577178241736688596670548606894221461490322953028764908294300080428487862805685472674259722849811695638147738837828923476734243578938537898493733787427775677521511374393370549351073693897567943218691520892147896460959699826090523368022599927484677092005204261282407961900710090868821276987451833418684653532206752175323504827211243906216794714883354937880409896857849750334894365942134364992213085792484988268629304186523523357331882382426163832486233187878579730162278331746406910909795995902445630747064641124234336708758416003124393291051606359995722646644236404562723342250025586244326116822344107670269624069736830464740220006113374621267365099795587801230596745160227641824045165457638777599901127063578597217333280039721034144143700532947434195650348710496942533327031392485329104900575633677724698138555342708685730202542308500632342539289363998984489725498119344211187725335378133201419434919027442612367791211540584568464038560118566947943885756637669709407967058264470609841829751928774121227167548229138815644449224199885700490740825446393930845489882422385106563305227694283556153723104200134205799134707595921672842705523180029118086224887974169400029111053768273661462272841275167732120529703558833434575967964489463469077976802023215389218047014946524411086007961887142393101591022630028281845781486164526775327000993243395041748676024032502721697115169932106201965138781148322974367831342328209140606447221142292272946517070486810524438164481254203218926898667702870140755445565850284706709590665154823043496000330176725651987863493889114128285275427562996712165549302449064460953429513057428612939161875995482281445777550799204834302225827451160331694829204059971306345677939225013894200552206591357352565244977956874668130055391648995935185448713011947294490513965022809459564310135291176183489274931968598283542296780431584845447968045304021269473166294813585994532531712744869652619880370379370718697747735883248608291473849337731889719133862351140700760459265814945860139330593270913283955772316317151306674020675671179877753610698376833704347428021778918480835875570915245476652005737354686329765928222356192495168475058845339236809439725848029608069257063057328583650522654020757658134556681368920249058029745052701155456816285643830393204299285319261643434723358771115653100989989138924053574897755080436499594067552022432692051305989688640669032242068568232871016365597724087629130834930871964906626970955703474972498290908953036499850283737416311015395732977147312454241871397893782049384953874959933237561412214492469895654817425401189687519246069970524044058311873148794228520642223385285639292892814181486868231494048792459747707033855704936703904092112593775127848386886038421137798587156642055317365525797095325514247368758564415141075226899272692198943199377575063430106256528184248493189816772701569404394281363019385022455878514409815511917488864482593932797986417283760328788712988726509109779610636342575584362448994129059276308870951619388849736681663438549688308847597189005295841908776132222731611488309379722219942064755214128141666345112787145812014376284397778093688247081288962830123840586364804244672225877126124030165415267521743573254793538134291251198836073296536548359117987116031608340279400225135328121439137191794615014898851616145971973443731313990380084207460183494357369929536646263921237429001785698879097142371593465546724395391304770804395607426350827448195211986524401001865206524443752145028681413413327416492081210863756927981186367849129354955219139083147759901849132668620109723104092954110593477289899766269283979862626187256259014758748688967628159958227379358817757915620713237424929014940493348296652140784429997152252459574690359434575708666613773547032810371807031777725906115236053176785417185988853697790932549042152396915715200319473292762609555931954861109104230241047476438884778719367620347320068360847744653693937251653177730033238743766461466146973006548298152282806396542913061512536657530192069363303368564792323763059808108410837594954886858410174289962773312228303083077148114792339558032134863303254324913587656107570709331678918246777723399522118750239769352705436077132887678689497671466062630140798070512222300088282446770122994462295053467228148564344682872628010779811312050468400516800536183893585337332024544611405603767026070625246309096920906068990203980820264403421196604187433454998582559544201719225251883308164550598548013669099833511427077800170267928712123137913975931432970294245866542908241075893775473459983673457846575114861227372859212781343096961836949496875016004335813608729229493378199024434473883672008389405867029895267175361673155200195804325675849127649156566570717449442230826513569657794281126405405640211167724020895584438442087081878450167492268174681822590675736950366471078836958186736499191652440468603732398110316268514040387775144336434788966152578678641091047433956618911022495479801123066513463705124481125026656091120984534488346738840022807073591254603266761438284413350377809511733996627185896899114826827409505663630118140925651905747158964386305325809811243340265423413776247132403138552884762543087946504422872900346769074160810113679642566168856297789224305918377218419957508774618179923506406333419794236780232319826957781513015374935246960553637044712910290092765691748530809014962262495161712092429855239414353342306642829150617772576090112400200483610283831996267507498294780476023553871952698400972026793731046407740928948390472893975590378499217167799023237356949907550684211880376142828713110826244577043515309613081358622804887097192034061140756705477093663137087161556558085836752045475725329744249406869422058377204666247599904061660376413450861695584886029760505063349115354252598246991024918452218963996074706562612990810540517266958649979051733455398476224473331401584876724243566277717724388400422070845229726915107799893431012486143522299968538179386251732444269312705019545567468747074040911257385537706405562848284664619962937051700042880161470899527371420588674916068534674890513130180961822771358085326795840504035104260150027501523299477733333861004863069698143290068883759432497697442085082342325020117498973840808481194148644990918890357411846829886098771596694947060792569782483630548818319683422463509146586500139001868363243224540395795704622378379534770836049438236802598102814901539809647297515497497517431259471231355932319779338403295910581753705489620534720558603164661987606187663243322095774829218691746448553231642849847886064398105312288681221731383501790753310140085650238927623282672726013756829249783939986292510344110349008950535149216140211185163775503934380063432263366960370501932985528841019024095890005271585625218408476716359190743785067249557731517699691023108854405598744290287848211750751215589261669903992147248220109451825936997198322287921329196552201250829218592251029526583752647369146463746599227951904570114868327834689282032719042194398084005954393706274148611594271726846808870622633633044903920707232968736930530673542010541858993865447692161073444694355424003713573504071665016221801203262884996368968539404522860838734752728953245614672232812465221316576883787938170988347064427944677452404265937370052086411929293388008397211474488817110472453583896141208598779022366210510460502420418119452613274389203357336053464524529712371487726418987568505883818651529204334321745963061553747448521680970697923637335394227471582543396130340763720245290444091230272952212736984218034145617217125593565539863069050331000445402384359386459664815595935679926033875652950909757446420832115578112174332109430788478188612116420015768385794631858575946605355497569029244673203397353865650329403141846423456310872257828805021950773507581380489737220206989722945795444335878450400210890504435351104377591023281938099970685604706691381640664225126984508450992608902904728320925913382409543404035213828441900381069048631955773937283506640167580868121161453140975550077891258376306318610323867228919870982865694808313255999397578292289827928158842455265364510672330829390408329635149202341226340565249845462407230159839855731795254040293354460318170907183224802651297824187756610664745242838917494625950720498943318434789127800781855163891235113998465557992830925983773164588848114345759723663998960492448839240146053499759464373777416808762815791682819139605391806296069574309313260270976611700137277412614393056727968066206605983065773159720358332785913301680389747951434820997681774095323756507470759337069983564912134184860664394180470785427543272714022818829981710753895976281277572007757454699712726330997886104815769662532003781173994154947195983794282296766777348392194576347063006917644084746108407621826062483242553376747590129594324281899961187330445516564007742380040390433486333272116323158564627494809739079205079324827508320559598592302646495746528237724629889049672376227976540087866015838036462586502276056848215147594246847775008702776216338998593652732158483741468109354252237445176812108987819514296377760082911439552908151896276247208034598389230702022162796291894417131046096447284524208185417436179096822065151852956708632682068329649320686959724579853988722100051696285968343181318464118908099848514040808504814254832982416564280346476955451342299072636982688627711384408148298007487830459401667421285490661468423098079071901816249076783021032612126146676270963371322727557372697904579765522569491026292769576559255902965220506482396258228463745320166663125784709339988052519923869568530554336268099072596303101801418015769733575849954425710211014939626756295960779944640540121157558160860245882950609608650113158631604214008127547953081558875037364961984340947599687976673670984232108904683801125013792827895970288319128386023145731890820780533497893577574015964578505205895944307295086989692572811233089764318577593213503903022309472924133738732138580173061396767794580377512077920887095249791107946178701730181673981660076856706536689509062201480506122184562742054293068514188879821631049822312617501725630668975989872603702964427283325821292300611125026292289735023713305138016992788248735564549238902666352914074182858917469599156250680284812962211773979130022898286310719516425433670883371948352233309519417318152818098026050129122234505268865898017236636849775378351723372634947950867126095265467268273985603055370274103203164069872581885362359812502600821988486305937809804095284577472936805165502013102375208082660311895691897775272964086788546276579624461329949550159906329282185339956596966446331033599720380345715087265860847378066336703756280854309726581580260760863498393799066154161639274395362067272716138956386820338144659697163361740085370239051912546519625916048983885831941109055679486330836729979459831370614311472303679112602857916813541534998176226253192767047767343115852641397515300252440119338684305197926728201003147111646107338364529815553322660421792203421867258028558180851896723245941374245451186295803810832928846423658354646730831127446543048126516935800656059969109583281804065256099292909740882962489218904835856660492144969895376449746940465560769459743121073037102961610359346940055486484840325074270248981860047696230028975079476326369735465087302025248561490567694645981677710139773896463107084533414498758462313643884741264521416026069346452965496473904013135056434142146950124466115797738189751661818960248385303151394198545729120733541757377351305667087950558744011652848852646728751896988257460027297510958020181199393531203847951516043862655984293889420352404088792221890039510917605096695972448750185722718006067552787534926955556664240008817955739937350540354373322516280258491662915919334039468119919898954318651295095059683629024989633399803782585760477014941682306768893379698622777489381669501880689519640747608027752537229044976565172346174859825056941401931002821085569189439137415994515413028571844828945501345936615830057616939275153093307668952770574413558607274806093256501664886740594082853028643147450289833538064314339355251788034151207714730745311122006224875551962765374613325199315266917850135966209862921308335177770631729232582962595574323515479125445405201395100098022050520693315537798112092243142673686814113585697156406380464142366986326648838514748740479845015497606772007434595956391308169696051335795316028924247158505284227730887054265837592825088066864920487171193144293951245487847374856139658828052627094414845101339637210720439807859578305105286274153641494219652694427975748883713686517452804781945564976646698938185408041508982048180414417661831910502815744268754748536069692625370349096579498693987821637314444646181254982243062174050719406083176644976190515989278028279226567218367915531558288983495635465608602222703884097001140915072335852324862530159809704364694290225168967916320840549331362104278489684620007198762402291077177131441094668047371028764515371031699585187727299031850770784104681951335787824451639212575891094014718858014268854900289091219141020381933251696378317292798284547536073584844312653114930549478335770505169207572780432130418277317647153504351126310945376582425771209963577208395899760633846100213821964775860872907607945317067685697719951186355124621652335972885999038168678861848067461668056167372924554914704645867363059641659951207903995245690503420280569060546110915960092251423302113716086766103266337125883342201838433580676803664920582442729822099860957283514079777337407425243426945548210254301226029411037375401102343077810912487175497555629243264279260025032918982594325425694646792654689336960946875021613822225986463961139918240971317743473495153418277022028251576431780031712266517191587730178210991865614135627165218351562505597943610322408266443963025112038188323784172026611617003145145340458484564746251222927404099994665515385247023316236559956498274764747600482636202797629989211467015705707520977770215651913692194199762917875853284490338732167238750097082870714069772138255604269997355352371057656101700979140909610636136923007709824516252765507745619787742443649758229180679809450940531941159701352272088002054716247638716972026854505930414600060343299370581572808104909422552060919000548609345608928727649456494573042730034414348557293482694298956751557154929385287294708208293589148143953170234833256921796123533902617958738896883553763350506625677343094268475355950312948375185533601371089094561911899907640317068098838581177552997395158257014376194494449957834125066906808579019836337103814601371361379708565969767304061583426305030965063390199411068305610354808816646990397849468060964547567248465732707658286248369227631773184951673122600001364056591242485507592957686269456033548412703877755853253689563918802055553388101679267369896612178498762972690172222495332647036883056305212739404587926074396700730701511642614289317363990655851738336100808645364217977887601058718347004812485383317275175139781451121181838390222792366434831385750024399756770001174184472689803696222041518430737746346808328130568706807298203668075801297557560240515236711681772915304162961119038518836940231407184137819904828994907766533698808584528337761159013964282076833442325559127681885651407009058326955043663561748238315647656813788307117763556362024425522304806576793861355045593814463088794537577286987547963173894886352774887853550519834336394300977399368818499053807558435710831687426070555105042646767023193791412575606118080686586905540970576053276254541687834882558902650972343442330024738826550891336394855625914192347599846019029375807739407451301257391013384458735015958890988531498780131514660774000192302386022803460154886396223613560038182745383632012904655652625638216302593841850080230283400769688561571364842405464976860311089148718302807346101544044046893083494922223648297351537311009426352902363058747755785365561896508398554907846504198021977234943967658703620366390898698190835644137286863292381054128034202053835810860387727713957661663710493858471606472185838730289797862710619096853895682759382286460108515409483202543754276163121634238613019201641697919310792573930073535783608810916909492356829110570537780937504741592690519066664080148256429826159912398486894769271873708733103145663783332887460109242033936083949965135329755286277489773325090866492790219893393432858209732155677035038761635224806332015964699817468673576066689054411263760062002710543899485181202429319480987919068102643440531452584913046189308674811796666037429109048782119852721792547218894386624197317437935290307740089968992729012881979531260621786486069584153908021495036698716305761973271410049666048531083995837498629698573658607565851384313847697581584514447260900578582744420464154583699276090724268863463527736165810445837080130257452970544145960967739632078346555138119191208621260524157793306489280541207449806168139239136343989425697199789429820671074923053964151819440143214542520789414421448843677992848539170067256468502259350171920294638724447016746634215026141182070524820381397377132040640790079681215189365491554969912477656987529913034524023802118091580664981595957423815198415742533497154837839875174463988868520509482181973790571559374044374324908951876143751643669222658977786096007825716429853836025827972298128501492301375680351081074549111649990859932942914027446650569935122881719419107859195220218690501462237816117840036984455602370700064518482424302446758172803266473324253411209187661307879648702143096421954992430931021743292461036022616552148373002235683568380345946262428995335479503987813323129651138917628661269516388382656949837799146133100624404014948039895066185770609863489902204351194817892364072729495735692179189728291276423521164762831866939270443140787084813483174963767154168104706148136923821698546570575110105211237140580546000275265304674275880883122826017570997329585327930886005778860267322069581985534592115752080222607756122117783974231153032866799968386876553206128317523533105174441394548313218495986416109918960663111779601777650801506203323528476745606421874213958422794033605063232553497638896578109556203267723892733685643047533561968691345566858783052337419329918990832932934812244114342697369550640105012155367495381068577608109880553833786997689375238384508231052151604953082746574599129994785438824545099353938684497771757650516255970213074625999582043106450862852760189199143307635380463610888272181619325591575217361871681672595653900461774278360941520132806132947610772439274580433637447144476224215840847886963103039211735619648020678682757664481048552248787350802286778379803844178020978714139802441644804518199398381124140902908019769402758530994813022615469218537579104262325968557406700055747525663120523866641428801416198864137884668685651609313258899870443000618557127914189810354823043226866860441009518700207961941415341763244133256716819779351880015139288685532016895152406732100802515367677604025419437374243626990486132532670174828833749633930656234434270897781829968517322766938389216051141511433746024377057501861917046273880019913175598691132944341210379231840392423587637380186974869077706256379306344445057108592322191177172962207694170791136771675697376031373439664736702110452925276800469381901366590723456037206815017710496787160922352478877069990981020452598726237535097472439252941039433102000894035877704711963795235724284360886409257221460841165503299628387731920571223850184689320884850579449796041527968923212173749641792674393432157439056566918703348326889878019368010588421040902700591989043385668845264565690712082529254094811367330793302905009837795047870458368080103677458745802865481383668788703931712289040774268501769466552341722130390628283721854720937609002962275289870574254652375628343759948123113860310065197788932898718278755400985418085974548547676998588279840128239915299588280214696308973933691965641727714814075678280195291131505423177097590384060214314485474117079936997360740293475099941358532922569245489560101940490572311964185998082358088274864412879749899829368561366936099780544736841054279132144195354402936129547635367097749060921061165896721190354476261077116244655794293101645044603170690987047250897828098760264657341611581206510007842860924222389952741053961838482036141126364055185358728067848733400981083721170618475575933599569603440864065901011460659892928776237043799528649375479021276906148301815276402778258671865664991142902921462139074126553695288147825759123465563708782370146775662832134927239114663157156592751638818612326437631170783372816153197055392227218728092632317696754737722882563442449001109050484301040321646355396026098972736344455674116451744417059090437373814270335124129125736115828373509846402471864952891192240427425224129084719511226768562184884468735516702167132552307491446218558321690938615144258957772262600430714908419652930693434606305781270820796093904321356958225806603308130121011747542873761781685383319070257855503358526229555039631079788800290379279943175953461747787755772731911948900371718957966960153729136379518445273257545192276342244385369906023028154154820287741763429995727451917580562832707382440836769754867645335320677701049666247937732873138152978948527936782938282336994914495966886653310292546333510647393525329434796902459580409874865113901877100199117384973982967750126562913525633862710956752063370085430347086153098523658468490569223641510598818047743840687961939274329047252288429954922246500084970609300045630464515667526945129646231825558358485722611322079985923115801914322749324569627602958861937543617220151845202832158020507151780163772706002578627698542844461911915294738124909207371576102075304282250388951994215346943175536053874774755354964196413937460568580133146322101001481669280286366710084204974705376998553498426278128725383466473099099788398408191772894162347087456095295942061004435412527152252020303110620539716026386028906950127276744504787848216841320866245391324372322357878320064992915928126834891970328876079219365929443995745895351394415448535163313292998680240653714027080704534666616033463452200346453316965042423885677299597010183557539290167549105328854809316895255488534719901928004589052568417176875989722252279538271962983483665229318188292983836653194659918011627210555310878524914012408174061370046373195169923332352469346414222252995100375402907708262603447557040636880664087976415966583428966803050356905160186580161400540512399227689722757864797782418616910064075940830923846070521053290695360383216249041236698687825084753273897730287500991762567947900430715302239514924796145185829570262608242504279402951842792284526402419169307990210070535970867498394240675444070695929702824521566806280702829899038741421192038088018649035129293239771497811998212903235273016202704327087902972981241579473395333127983022689870401523742278555381954089614334248186271701665359897754653250257872865428645296072623658436572097082664478887711103048241016087663704669337073203867720865032034073827790761413293391477237282783509085110413300970913423473147898008740611193634318099149182268753939499918803088649344379016555750047576576939901486336658129625758537794242638670558506768242308000229148370567409554625302326224512937791895910416437833075104052393902496422856471240900815104876612149161796048691263495447571588094467949544774259581211737513768115184231608804910653201569120546549449943149294248341393619009590264276145587287696076249041374651572423304369211970247532700021859266773765621693616548269904832131590192964341627165215526076234592282111931143169107930425150451423508562405751877334326311555242887422397723674290400741507921215809943615021388560115770862789838566309019839720793636110107081975775836923545141366242040671278188400551927792324069403997208574754980488078702831446177143596381796793271113289271083598259378032146345984609981464837652911629520997951820637673360128607129555820435103830884102138774861242365901484391198306793095469381094990418058018858675371969551482865673807178200955879703846039172170479688182220169446070986514219782689555909194240459761143241818354309212352384573105922940858132134961720272612596443155005455036955748312797978445857666101411316134953304241765043357287461804023904105714043168512584868989841453599918773170222768778373457621965832234133618591039946131319446050303747703288212763058253596147679360724565775595022008780379493179525181129312036232728706405219766838544642995818101646583046494735472577239682849774826402953689737190507524122811279709900842448433538482039252741560977445647840317789412012120586476292090504551275764084452660753582278575083926123717176162940890286296854414538592176224955956451546598309074037138451057755044540774326333209556200186629249790029473379868531280887602205550412484441076568255181949977200226674037260637732879852026643791572777515197843657691359216679005805780021376576869969014121136332598308336946337566667222188918656836470274202132900328832183026011907490723849532043503640914846872034461852589689681362088239011535814065830148946900931932706217876856195981445597035006861783797477813786623598696598220694689603610609483701660966109095751144296404621449208105880551444634204042698960821965119700912207297671788239113084184633115901172609593609455782484350296420777629234420864135780856252700480884220288570038033519942353264445470580297073965798005756081119810660010322288054298382674419067771637729478774889866009922083838718890223206692061754511148276552874092682841924304444999674485377058742739823143596558009925195763011965216796431049653465751966118433945979908486804641639297780461528436694737629599761625815982719625337550959594683420426939179490302160703325827313984246463348322984390469421549799730442312692217505829861364670211466004422546220908445170408721947934786584265991120423198935187031338140758863487452215374699658439678848152386309173655280044537398447882799743776322218393896596323758826869581818329338680541497869582459341289653073018098820245362940764655743072187350398169689646138701361832217960894937302588377793496317466378300940367698506704168860260015243270527629443504628224061654317557622947278678308533241812102512887391709460596111183905753104654821480874068168577577641840203542301310401347954894388671491518272748019797254330582132738384016630427096288871879977018206675154891848237771867284049392581898384396087105484758715900565969891658307945233892717802498377860919492366138628913863659197605551484211764239678117492859456915896775276730595529788592778986239871621374981285080012188736481736296381753899806679436799211812896369454418275692397637228154047779982078066564695969767676706005199186693951106603536077119814790559662495278353272419784262862731592240727283576377227258492920481106428080967865520428180247452368258999325309768382434471029563809551708749681701027450421501390712328387395784407492254191117907533016859219920218055923034726563823492484197945469566279034653598897799615615649929724040494446048592374266270050379150050237291805574637098420389196437309584045860940264802110750289459845434200327877168865933377568000857500585107457061904823422830329205216626393329534705661546850606473606623791010299073833861969120999723363663811195225204457418938955678435778703808679233262047666080998165867467628642989447797781064052994340880076642602754776690941256664458420334962269703696329476272896507711836747730364943121220648854774040138219497136352302875634816256763512010591158935791881690780200382162127542830422145206205556121523118105739513180536378967537071202746967180886532705531141148762556942007414646312622190456724822641531710816410304470485414191549713575580409423816417963515731055275713316066021678022434353582388227020996425417448734921649670183137262934610293713756097030397051342149003851550885963304512171685714679147679462125860908944641619734510826161444676526687241661854574388339472939970058739201000870432739902030525082382392624887643935883552622607649466327555834818154571922891337123185930843736313692444349628419836635916599598126702611832408135334365118015595974146951644791382483188815179814398032047098624420748929462725815212401802521041854270991091929054765987581808743071938777158877274632294127249710302038955137998022053425273241821643248148779854644852889545964274649712764755951431924176676017901177053653890963261169462576049346085861361783569954539683598904535674360654897920908219960330919617812061438961383678549203433366078148659397455175213649360897556212671312134338393803746731112837977364636264791602490889337227830391564606031706975310290234128702000368027255648001958089735303639824549806762076222303273523258448286595009542037810996034090421670118254387999307128742725390427751414426539825572295166513040119787295825357055527618218647600469535818955627599620024719451946446863338726750191257398460135367269265624549967298894106535902320587945109684586813714613483552223026263710417781851692431571239138335863842334449103717033795787615634706967009277347105718174093122391073707758054644886394840403541721745921160149861584764998074761922546496870086688359973953531684631587168506951708546918258387101384712779556311478094595449362599748008847612391277525541017920621225200796924588299891135349612996025666807096155157887782432498226733271594825775957734968382541064576397277936572826887265601796897015325350697627092037732344137456897431563327358237944547334477760962490290308849860590113260347613864284129777308191654598587293213393537279477766399966585058084922783556059352263125968895413427696439310505657440384083911819988567435066730311661812758706061428259041991340087244008511189186705827637801019525431576906864092350704744825258588889116967519090070127063933512013433718257226578540151227693744690425487038928375049567189630545151364209941639245663536026480041052321089060748605165353392445499516157836025386873316949560762057818102892774693661740141026842735288482584300038813155161796656981131680460899097173508503472258185300362827730638484191091439526379139447500012991018773295872838904476787095895458977819986184597668752039046444696985171867382083057763016700885047490546886090304680908120481691642587453359008930788251065662464295274123975168308345524316540812811607101388038902461717250533427095569846050139904501859161699567744924068120256896147764875737791066930733927112846323842277332859295053434311336431672772467831564472769654261923344125318036939411279299480320961206407519053299790660746712947875176951348277940991019620274958076861043448307987962644432964307913990324645725468793559906160374265194368784069146510407225880370743308539243518831386643198886627629588800995217474851373347245018150626900339965948148038690088817711966815353335355222254934409478957482039538868140098103687458873525303082124503583936449418734225831665628521645405983612504352871962341747910145485689142314483635939885944526644260683629654682724461962162595582556816944476370333362798824608370290448716543079087931223629487327197027676200045579039411166932969618328071517759763395126411588254799852103894894285320760062505611396024775016309194275960559769378147012737126363858628976287656845039457301645368044092278406344217445407230304192766614228565117145832277512200616395270254187980518789680056467623432186587569866984504475775055304015663201937942757310179928512196820750767025378140159939689015627442672809587150146427632005837139262195458486355394863174095057599350046691328144693114386918054865037205027012600949650920368446492698649344809946788245958553554461160381574916776296028584531227184529234419768528918749801680908662333556496404165952173951494837073429262938880811634779091177184157111339911880463744859899511045175707749997764012050119795069275514994252397663806105290613891919695085190842466508435209039316887936537798858331944223494509244886032320506567273758354541863393227965408807968218658623902424042961246273843447973390928283260348305628476028133558647837883757878101226980368517404919676553242380213467986707474527268875033846341612026025886838874506480631720868785749864875249423048767414167198940605293739361292632599901358003169175473797912345471813216134271832548968411104063525503479750909118250474735731345253454340228398810427652363946023194794821086877734605680420168571434149564694250090972209333266498894846893797667057096050774558743635873919004805118138977880171619313242900343286148814680293313799376243150978345661455154709057715796946478474806140474711433794305595250456271263064519236251204712612648090496992347936200643235871474451453935348829855236960722655093773380093455605555236333538181143232507186587504335747185543076939747547302579178135941414721137910147255326019786038440485037891821138314297451230002034911913443256085616529054893673963217844265459241569310489567916376782993716572095297703241884261532942412676657437801008238325831165172986673396982988650478889483204136808289268622129278229593621820075083346157826437361381066560457596210961627986900778267490023698406757622321932228890926850940218684722673339288754710326940320098966124017778348080907951179655758599517530512176651870540383137994246890894331422924894732658040015290682388830487465546182672934453695374833073299966365637493204230434369900828284961495435040697835732285665451242149607511654669642501919833190016602150975738278041529075057475544080873725686526893517158419916651265229810338468200970467375113043530084586969802274738314463556613837668298694962151373883990695025251851124152707876349510872261843410724431691262593373049646548077812209959097660079544038502896753929291057082271926406875598326010469485524891553436903945406265420648359438887840227931342452575695193813296126802834208498992752760132443671774275804804162971221772162202619059308313659521242219072897326093208007647005273081083415468857844691481886074392474172757404681423488488902242262531730575277765474973145886910032656610412042607878803032482129249632567356781071332251970027924531224613015537834681768377310588797481978137092620546436393639416152109181283388329946838947111231592378161183591948435057591894390408818409442441897571021662728927522057393038975976309775761200538830162813809456862425035050052591000035270940378229774892619789750917611002915562713098588289625281705958760611238901337647872180609756214564558403090245208673194219397586285359219095430297293061003893315471531729717586035370317158770955871635810676620346074547383986655965326142496709342697739565199009333041398739730931167001478941718239505082366780468996242459370090254426739583700679894364062574307840997716070468534315636104120883966707079702783069552352000563963126545789972392608312052604417916658659021360238947806354236598435332409775676546303592589168363008739661321485865085813823949127663439769484211868704952114606821347121031936097368237063212833814734552496462135561951642063298924275235599751306461256268075919844057115355303402905157691962457973751168298200005995978192315188745085903507841644623182266865175925123957288046077016199953451977844110544602826813636791263183982856532009431835653343288170876029181343829779000435172062983377797001195913026985178258838088311194921738192643597035475413680790418760115282315426767023920859541060433302979420093819749261843563261334362196654029483979871923589861589250285585802419212699482385027666116692517836925143169570568627958424513164333336907640450146541306457137837827582148655203642837850841632508072267861477436003549117301187920114885887464592969501787097540518455697071975781032917351010158889708626757501411400465459688984936522977103500183016313740979292367725989523580551638015036390608761571488021639870251038126054364382197320644062767853270539872707797014151432478407982548065267471127359724527327570249762553399950712082853429058127482914400133373051305265064531452878162911936990993687112830338906097417956409199408399114659301360299649829815999512058604355054869553890739325275307025438085814978350627015320982891810992587318468829635546214082907414906682246921493434194265352244852874138240395371532996123975676973765407606407915127372854103288410631003182926662087179688981887955246637877071463524820465609488756012469414096046315236202896531011070806804890940774748658010833657029117991110583482458978408967361790733221611877342699730998312272156740766195751960115783504306469501277907294785118549927079058282421340219922930492651937529919053659038602688041510822415336390641208230371787775058609916540548117262344658021294309438645816399437855653356213206959063118671288739701996776329051799746898952905116925097778423916523134067099803241564371968149952519444662582222504305528271586544963553336894419913703195962477512072840359860358629825765258230138866969483407895775715866500948339320924068753548739067783518759286690579973918126482285379439102938353293717664759667136334248551259923081484495762222616966413921446315153927890031044011440500372060188702804498589942244027184678111860985815384806311654931178232868484631308145438555988022159479431376260609003901656343402785098091034995554897929883107386637524680687946081871324971484050255094010829561569590949821559096492714136191966502876547992255157465698801674205958054639240391814328334333905752409316124665472419409450831351630705561247726138435409923595592423809082915342301628748238887242390033465136390051454290517424054695085262228042313009075599949657013443355758873905888186514752266497779132594397186411851079375197756105436829231418303773197295088908910880456473818656015521699550648512728191692579763188670648179639369950595277130976058627074871783911208830481352807096194111533800275803664848686984509012844144107560372762801432499923786790661151743682130760142530658818020801719425262139300901249613770679799163712589293870380206423036597371409512596049198945202704521950569852219842731759183976480372889432402467371051377226773673798363135339185340797055492199731254931512849419705983201984915801340468035532800310935804607185927352813879434714218045273320792674840101018820109376684736240530324581633269895945540235542364732085181350983039131214387508963769592675435455954395448100851005765522836535197125597702949441776809822308702691754424564280724188063957797781273601710879552871562789587835230319062549053122348435906665198950622573511975129945843351039449683411718260779095298514249766393900490237433085252904073447744985689106396559903407616522916314013180161652568557229215349679834371073579609115750297128918330436620137927652113198337803696983485211537520389577231301241758009414800323891881118590159038338688049197499253670540903302026722276297814070595835756785848752221087939162755924420750026769989108395969694912288316886814524002786248540490147058380811519910004403016529423913407582379961554840350258874395348596158268849221769667298383701306462331156090457415663621961557590467350461507354370133569300149744486691730088842176687069861474579814858676949065676188235571956060879760620180734485767862372233374624016428254677837422778100381365015789788950631386200082290971696526981167064210216813418822158270386965482921537288339265816073050980664586736686112853164435869046278783306608397216398917093508578249173806414198592887098468075094075135130163018007359104515704232601781725779131879450029319911540850927454638895583878024862330735040580659457339869577369061310368511618786886566256350502156760425430871693200041897259894401481836017820392500614229917991832380101313326899232504725563266969742005198007128982690131826355826518740148914558377829603039091519089528950971931004243953383375192015453552342955480131181620598322400358234328357860153606012132275770816476273686272834214570877473416679571419316936596304822862872786371050890415804261857621098033701412009846368600290830278049981825035459941399075737596998510515534448356808283948203921812916763629729456157344824802157455315806101664280762575257335839062198759411653322914416445316965970257092462458214150250784115369361928463760408235624968058210951689037346405614065176728156396878546034253905840346701640246275807530910242462687697712447881980465043925348873263812010870208974669857005396648351635415208094349722892704449518353337181581433146667544157596791577182021352585995312529964745428908955744126555693495993915431704294566066394599791432058735979664405555441519233916915043049806076999155034822966776233268155296425644164539973616921098105348427762824999465787077643353595263095312754250905845580877712409707173734398185770652562191499448799437080416150792494447306290042662301448985258132763608678921609557010676167597108636853498000802698680965245254067231633857560220623051918676084664231643752141388787956825735480612046841870156923223503629354052551949175046027065280749439316395162533695698130249672735378358790859992327996184784916679013980855430906732964292337929894945821583133164825717054958017310416772432084879318423895222970012558636790494553197147264864427258308263959497993625036092780425217414876819952761183011550478922481731935084699833145576694322752332308866270747679948133104704556988710334131090512925572652749128419198102823135030141552190930567267065359160896942539773321655852745289642436504668322342430011115399714951558204892253586893131481203928766172818102705476915908589041509376008880364783095495797712857945971792843328334640599326341302001917068283296727028212386022914706283579775633230601815013384015381761149987337796067656473230723276510025355317133371852297198245863400000806488963361033303599468602850518669202224284820759314946769620861658121222989833088862808853055066424251068747725908010199378110754705603567458116814807588154583841386058871958523701756955344875173097020850181175221796292898888950138709635276728962908157524617228550507317730020773639065409894460597038265685168421304140797956964931161565990326782197684386231326110036621418614874639545801340478718347471259378130085832087909768128768101058816727473021476080503706258776855618732878822274639335832609944026930002428999964101582275350835991483136746899805495997548563218569441010429287743940700007061313827090149271338234329119390291078353859694222548381528976849077107847608041168907369464729621345942487690089886290574516620717934638709059494149672046833079435119370106979513776901974966425377775399286823531891627799858161246862765281576898060414167120311589513074111258113696872807741115934128549383480204911301308556237817027727020992471460530302112510607712735858120703664238279416703620122623598885878635769594692707658883983019434092700297093096353462138825741343834524444953033092812817947443408386868959610893261651520920126291590443380290478304037419924010636758088396310356269472048074664628596768388091393583054269942936085309872909975528970998810546029139155938250976954521604163760690206522352930707213414062907624740147956144049389216069679913991687367347509783281462471986910492405946118484877569357507645245136988862605459678729334465504105736457614267137870010112041356234426044327953905110601672315572639733574402570460115017669512408141701538507587819666574789668826586834296483906776611037468368742351372097864690725617579421769361806398614786110083815918621063314418623360727062752707571794543254247232095430065834318802703064926985658124407433473865965796135393176037399290601148490549836391948685559352118152805234956633332304349979780452600502950202071527417470251303171354013377345285269280705289212817106374381677419364981108594556490036270990738777957029797470163404943293301246959180795600159346994315175937744447676461578749085017556118073038053638276163595298541688789468617488636042134797686072513575844829753682891607788133265765387115142262335503022535863544764854292857114986347685083448567779031922737719240379201274008976267674751788297589994384287487124008388774968653510388194164421821956415061475930041797682374569852580572843110214409305664194863202561565646960345810550034629607645998290054718830248568711729535633298819782050641779083578017753059815425036909281465442281031406767888001936877660735852913959584905941486761875908589466156646420427158259044685452321461942222763142380259296000094218498351227605599904046354244186589046441288400584233527600448080449209918250411507290626328926010309307989491226523839009457716836590870839142508800767316547458391869705542754233294406111137342932572326305085707721131815744463391615087590837393694044653199836378388983834666246312312999265863483758068078995847131020710892674892784615851960704805677807279320277380658417141857239058397348070741236009103180217089945163036941162747489246701230529834576208318184024451377798703984004783696580251122336705615687028907031745202992104495198855538940377002125868627237144674700136290707231956339042943792528577997314180751551348353202075156929439081279248888590470610006868826761799436752639393363633605746097441806482791959608955859366360277439614602796249026359874326813432558568734406693188966108923005680375910732528927270292614311454861899613084405924847469327294638371958136055251335883209834373887154610016816565291484294746013787398535093203241613253647227730258954725839132150636650112937479758648742741531630734165398861191736367163095853640178755165852401356971814218583647129233084171303670605943187327461660566023910713048017266191919421900796363603051519700850522763861450551007256676289389298432159253754002336553851892991771007108204582083583845040873101442920574223773243320078125086779170890117691362208842176058307870138825022343012275811155926511180389144573997638166523396309629492707995211892067663406115766525655653004150342652820571347853196506406296460251589209510247180797207096438863989048208534450722145706145600570727415094318932839841946328594637922294498243156515109684023983723970853139993455159937320468526464133090103285051617908237525906818433710341024978822400049257818910683821815967593537564522620367507589896562838067577753256177186534883066710462956307658992374888345040897831364103060025432066074939650464091810668921744756383698130943729689402810722636805918821052025526402963268381679305221734314246458017115353142143927432527371582222400531672214271740570014376718431912923917340488736278659827516790071189105775673909970617107135336985231912753946932219738994761100838775628692282275889339936359237836550756730041339333208670794594207218404880014421072416956050491253661002780209797698517523307346224545573328721785565296683172943216695427539849071001149414586996331242260907022760269095082884559806923386195974257071918987162512868795013402954014086006704717682362086497751359901896666910739897429908747604815950300018833483909468857630879566475923016976300279093145211389821994371666388138035946861457603276059944351758777435783252043374399541881077204801140280270241443615888248365874346533340937850864130975551937714139092377121935949138419594944557190431508069695675172400790391341223058188251530854927969312363209718467760503994687029859749225960014733993060933906157143647301134177266799264809178182586451908584397413624744192703104867470171619083027322471238715239700706379979464382720112772352034445669244918014908908110644159163249719025759519234640993554157589279979846510564692411720817471898498451411510031315899687268359381119440704599230668266779995378535905281710760757670147710106590592600038628615882401083498628699662479696410144091967448307921483993012721717556130880840418146191149658363096168604759586923274329903194429911952186560776356067594328271089579029593986305750554818574468964129126417641229859418249785585820652886659286826336232103521589216711361275800953510638698021187321283851800362291050390521336744336949963044421570860858204595086256068389994338989646310676598360913205549120194837611273377818476595612414992257236129954895905671259893110677453930690071526922868604406998089523433998702685220823820083468068897710034746991338221517991569322867398881428141040858522838286475678706713574050384925112321232826988203083621553517144031057751101350514480270089341916631378615108671108211491063526904310429725504085060317565058695482447788532908858765348238213974601604887652514207831801450678981659574904891751383451084736967697724681135181054782329172295953776022663359089816234294311112783530241126255670608310595632966241499526516673220187688970524114075977310535277222153740509659995364993049604663454174619158763030405550471212757795961827943934411746945523824172037954446434898873661247747323585889204064129466138219396948325720590347823053790469522594566499673189214320800757908445808346365164691327728074919889368265312360744706647607231813445177560586116026951513909686882059129762351231244966004884793763209287950654025519678730029635385109694263919508084378518929185901955691736270130274783177969095058631915280353238064408276938131390731475342980176597465673200395733528219839175181907543439745078683924576258187847043556525064438174976394467655842394659637448388075236909460130595559212827842136992716390454672546548479045370315219949062143102617953094286731698145531626025152844562967123563030098344289923138774748895000089014392449056631476799971923103832204628527033494786421026508382605072600355793178118191195977978459988119757331727119813112345959434186658828215138099635748136978359753088698037217007648244486570107813914677301916666288166778659227530868493838053329603805392355996727007422410641225401186459854772410115497571667684017378368754280146199228688942551743497593244346360331262811611819501308034507418455481839985854446363772179035455563502868853183310404663867451211752211089300946117953936546810362860398686810861252428306045425587563003742569665402275546418657835850038885407923588023239091231922953520686719376471500215699618272068340163732587907612383872102846207829517422025951934327457488702610013540608725365844460045256543299971023365713920468375445702457139510824136546574313005575269521320928472028603742283851629770179734323867168729142673232218752265189678937074046054050381826014169927589631221628150111804414563114328841991264768501304452765486231110200557954535478044822230113992613524170575190942214852675697109627092483130832871514768515832258193315473745098295659133773940424386079916490730021467580444346886122511608101857698664350899786853992027337934668651827253677730330891593730035297994962921135317735994756405078983328595358321234920211678263525807121427769551684049199389202848233396086632249983459791598287978733085782709949466984234089787150313415176343416560948242949473909278284929539557964206705180759748491954643002632742005437003144860307428357974511524395695979282563802393394929620491914495257033886953787168887399707201234993882109548519320692738561983816831584193890947981941161577492340706705757994633958776117993044222457084841996740610081215122742095960285257497536357432517908599420926972163056022280163579066834092982078437500307286140606239748547303405054164401661904264047056351715342296426717636775070241093302231439411941631568885474024479130682379372205437730878203659050186949412565279470663648811451667426029553706435531059558702249025324712774194273116748381639230688495301853828917646878097318320615257102294239166236164960824256444671489303018104790896424615432547164795272519115273021219111199190940228796009286625538902986173169664605802314594508226150753784311561962669484802988990652063881222046798427538706047983995487854824676031863580124325814533415610199404725356946775313532946405339524157027190367461422293141706790067962400745344365607079892405389046656376166093872282865693610366048904663180950258874161386631597586117077922715668831970053778969307460614892524602048511238546611682940646110199839128108705861294366623289192548962161537724422710101364602351949550191678938943249036101778407450447720357829407854675243525437818663011554558907706682214492928614798831911121846040658770657918791296131837992767372650599361647678310171603428298701923405393450341963613860346893495823341108589389274593587964411513989632225604308218966202369766315979324027385623937472348040329954911874038916851166737395594106907695686062359334090001324403527038888043896598743819656783758167654636880688681491712920213884879574541191866940285272958307170752541952684961404689696699058376109944911748459041008918007018497886170531522490307188222462059712458631583191934575449598346922171219119007818709409293935599724369106541889506244722169025955953815737196328682923103766282432089556971244586637799493708660769765829749487032836054737458695016269242811681302243095849108594857132996596588122049904303325887618284240460033932941724825574416816747211900203754577887750193495453460076966758101243519352786042824183654773107157623911650465118551784594682194886977728337103947145597994681582352394502368524170321621853172773602392300952676716820623478842167244036177602284730515630997019254871299637527593232220729835167545654897746684354474587392870892314331859393409677879424105716204219004265495317457104491487736783464890696049277937039040201007130779080368525327896339763126929958708915448988693231810754518551206297681026720492540883973109139163060334937376389757321354080801641975582317484380636726837635629678055486848010857910131682331747734859025386916234893172270187645639584197280017397437105204318959455844610669084046524757008816762944868843524393336998352095422572793032407438967995919368112876042351763043089929829571949215263744327238155877078880187445986488032411295081741896108625775144424467874204411219389915988411751463164936569616334928137127144290397124846628316479038174589515586096221916291239394224295280553618879530258755241277616510826916369850091136481419630490504466299908516417349614845978428565681426430786370299173470963400455441955118410489439518858160012373261803000900461816262000027297630770602180866363198697164977481462131906598571474002588167115308251441416569097419957010743853067577215774605442993272882054565471528480630380623942182919696366428775639018819564757314399561927883913147306283738889281638798210590975903467157850286938552857053631257492025059381497299259638404123620972261561062854519492120722952730335256785671680362268952579568985202812471639617207847453606506189628618131837382703909606564736568227471174376830211910043200991486259211468271784580455284506583351371109066969385135698338421981324059057568736291905928383867421915650758917886557634829162775278307219519860232905784713175686293215175590977623905424643697608907554538525141613753930182954357299021201228295981873036245157809650220478251551729146521837803505558727105684653547167565163214840748802507817944263049608606219638188542311888619052683092077217937480177144106263063504414599266367613435417258509877906175341798681770799154652944823571514242713597404804069828548566268497458283274979132404973207494639042152051013744809555891784947988529995366615849181459154952873526298026274651417847267916530412978847687176115843988380846180968961904214134248669574694719418248700365449801369256114087097805978396741396553118281178304124329475484759803112768129449574223900789971209881455601658841721700629642419159789546223569483710126823266808349304774949393109378390894901250729100466543019138455437797104337180987678372501620741049464538098589302073841726339660464386528901201058515171367842887486655866273092177043928619780432375579742327475076518136826520525981815483482254609605051803247846837140952351092279391378589927621140377105774655669239149252232492898920400846467309281445392691310571568793007763569635322008820415560459201045427290825432757472584007174649112220798173523230152599677004238668929666069309587713700798811816636229674699457351543289065872618866474556350648972462761712724305496182541261245498676988075566524274813131878901112072557587859636300863561503166466031313418568393832985463190216298086049094515445707505818169644270169318544589554859179019389154052291618186183487757477889265254764910991924238578760269731855821389186526432124264386311854372384853251465720374841045302266131348954899507308416423551086523950581015922938709209002779003556361292444978340781612097802412515876541140697730679791069274325873116016692514997549781162866271165915299991114961046119492205949942826429895399933146259382130983906042506457491586480301728128706230880208439024260357418311737766118859229722098891440935779085643578169726772077673374258485420965691629676811103829923507871931676383593114226745013577829407979419778938962810778536814702410341670488771826086002251974806305457287800500452537282157226938069407209160227081074682995877928588285163047534906090928566717160690985574848003801776000124212629820360160992901066689988542509211257457901865979678479223904822027375929031332481149204879532801126631286078118836848748694881646555458945142169614890938920670645607834004170822141805640888919404058504733306827639476768629198705968949606043122775185517380852407787974948822757402722740286279848757846265224582603795698923985085548595795305482126349080151138183723261108730446638613611061458666429098403518152319110241712677910480063554631754588161167581327924619970655578748791379858291503919356494929542839352936220379958298403482544878939273949419464618328179645625839892930489414667717608363339278838383313138262425913789120474417820014747601171338579592189880160544902969405223263360508324510708787284501184590441782353728305227891525374807438722188859776093301563116633688049304194177139327936674107852709392366640425513608050594146961682415304188938303244994161262427244852431054860426159695258275453932638530207777635592047005672945649603747107308658160312127435126660432783961686328759555252684726225517609201290408023863405724910402547448047300528186256200741896586518341194110472350024850348124015879778919283005079221924153625760907055448919191024941147302537102211228700605631061494172871893491116861739165551599688396412039567532222930178611499825855967984125088559848122377094295966566403014535279392310323053110038581801527895267745255200942502101016045422341085740848826334041143814066636651855196679561240534597195841352869423712699777987702259528545740421326107051657754786937409190990464327413345933781878657030657453863163343896288644222757332309320846367063706926992586900467192112661663016239954491726082666606122546203488127746616619306198902559002328841834746836759075577673049897733106615920537614213260664543364018275698074979943700836257623773625612165979608410270611691223898048396114557920478534230597791752947235019683672925106618950330040669276777425969797183340919253505940719948886802871727909899035304414066634874497284151879486205333833230878947867008671285865122898574647289234802844639505399284541717009828158743155180872353745561458613065087366062806813947233319659929118331581517628656237264789134713977164799883392246116595213616686665554475919557156969412584097433316527578560723947203886785911777200901809891329666827521351994834131248569001857585690886515379369648816261262001568923955968983554760734754312100565517147243977013882308263471210984921793532078720849353043218390707679672903937587888475696202385244679521940906584235890471734631622215722699261551435029717472846813849229872151872066503605703462903775312281311263020133212679873047193171798022926881907915055742802257019084656587916586425796309098510607052287332649656647790015269143533061623938867718421666126728618836987550318467815521128758321698088391246596666248493706109155771562427893549248589684908180610616609156800474974590730625103259831298939358763746993071436446317846594220148853854975369378947965656029869984412833515473187961584927282702390250861520777605538761086677484313271993707652899474179578597020916311484775528175728973933861863539867512569397568052948556992088725887899702568641353566135196394774361723568767787229048281424733810049431478503767212196272617342810155986357907316723323068488487573426793402558106429379415934031034075904555834641837334547250125122081413681246925739499396752930647056543251923347480198066139225856864809920421533773200275222502226674389075417260746767375326626381706748612360828050544069199925181857371612774905511677596351352507645018858593539026059214347642852485189708717423807386097487759015722796592256313803121356405668375664524759964246930349660244638624759400659801391980288100955796434994334129864466278436775998889989639048410257284369375483928374113608117395200723538005663768454630137666046475234191335874795840437390993319538942656503921549798469314445164607976601351431722195775010109582257808220985887310830487164859771656863587005582695442290443866141506456883745435905376696856489309284544570826702528062302597881453988412951413141480859487940686593239943687669384401961791671183963873259032130144174979445496487664617416333737416065961934121111636283643138505241278235155570012015196118686473830472257886643649321748457097915388944777103529500127008898257597703430773417715741810993157042968086169347859625406711554810516637958300681843449429593164330131430495322712860920478074605926131399332763187832399059599347182388497464921376537575350336458036969125785164626360148723625928174189096805256287043353617350432818613636199412142915863903940855302678412663841924041507358306331545516005211937087574868180957355676063278826860323869931324695838902274592614776544230844122834024812986062176012762107578403404769045960792712331359768706111923029825972763463711072400764733033756192401907222019884625606880411901521687923776492429189454963739197959766133322288426795049962482145763416759179552365583601911439045979040495262154678658076012209773845341269987692870749515172461228402499875342706778718370069568044764178196458547929184571415464049643613432214353473109314050741264422359073518067419824449575320613660325726193798039205244496629728477848865661261024082058839734521205127175273131059747333994128733169100373323977457850150721597631234916203796558432827247835138267009455435642743900829586304917208917887592870733908760191430380506496420371863640786054523197719249785866598302846941039802548417173947946972896177444950604840160451670603161982989376922944695691786279537162774581112877465266988038379958800000933073112593280961231533795408312151266615851291032693501819354173072728196494441862410556728087943817563767491210355193689891692497298607558220742045012353452752269484585573604987262123035397110719030765176013272898973979220927306148861003426465695956016164947805240746526900918361840089195484369292742156067361978411923051533331147141644320413435655452878360537003202190491967206813239118187680577597553951344640713768766220903210342763741843544778254644033949029834507642514227330094533855221118187217021818295028411082227155080515841553821075016152166915167794231276752572686191660405480770647330975207999005221958314163405876560667849387416313864428372916334788999624658380265318099228104103236799602368603337433271258668642618924989213193067728107454258816895875555641987261108011630068626119569523113527805485027394616973849016040068884947585076908136594538773855216755506637072400088208148792601730124009746617143172017358484882681976451121986578604942746408820997536803678168888376979222549377018221857842413248953451573703370081469998794406899605609891864981938700398956076938507716608359457281385249582747635698323743125488105679958192437151781676155212397528787766572330484883088550154538633917618038268775675372999044505269465560353860760564233441576320251507810680012652078163580866900621344565450506050232340284320394260377857563443377634896886402476810564508777742118036213713860068138135141554377105582799187056039782605962390527595450079681525598166446483970951669690512100299073058959973654258848940096184421675719951727037711299241685331140050910119886984104904299874444711824805312720366802853007369732161646164386601522648315442542688547887289702878173472612072660463534839078679391408313617859593061263499630641946730033862380923797533882357414990574581870170760981319542871090861618593913931382649625806108996595883516605436330146349615325882872590791877287161752995012628777620925138501732939877627217548225321482858892690562397253911075227042379417600245458855355263490019327828389199756540583921826046583471753932529616767482297043997792520775186900032019944851163550050910448486135146290533405794755411290704236010491120507352738903535314779936926273200884193827352876860198699432918149520361060022147488420570073949286583076728385880868712404087121043438905598979169405905822730029355229431187828318265894372089963156715595932372271082191389381357128342207827144026152548325693928961422096865857570587975651697122695094035295820819711699625684416611610572381457460576777392352878863124223189098221587049010762732347438587039773949011271294548975344624696644623664316572747041815183435960802242645518466946169921072310842013642918895542717341828820058597742548012042878204097761864514359365771497538843420208723381407732097932356436214770026016369506565597474947278606896347238476410121928452150204669623381175696875598176094499840602433524580110386536606397339417639115053644029060051901799512106038154974937505168731751487425436797659531447622074021861442386438285918120166553425332869229520685455017793930887136211437628645622130250363012709636406898508692888449605880740195704606899930283650694272322443192336327901639089663194483331131560030676843075391805446293526025870941876398051284490507147969076980915378736906272128791636864881868448969992183710273886271658113337151635740023646639774793434647883834149193898221102158124789539702983497267382054326684278395560301292556055187940988014061256199008872899250412520793533193719677364897608047146211449514167430907462113414991338603991715718714454375244234487860784109159547020113987085029199142807516284423904502981379922986839367999571059736589240519286884536183252994516256895111425256914265260054548202519746769791701650449615456846658959784374200866366289671496984988665215113730244352199863557054935167224906685365063513239643911342330952953606052263279952568639431476758030612536435060290301504786805435793215301424789201769063423551662446915195995446279253105223677253944314837938825769063841291572807359979653963135298869129710356460198907552047051512583714911645569013347241053190386657850598083761183582718307270118407525870381935022099822164954632720565777861753721228236075299512016977667200455018512141453359225896220599713126491051867164172932329952481299791350199955378194174760855762951370338998998591719476835807460566428531227762666231882477568023885350341440299753235290402776673135127177824936112756270190356117851021413028642092747104084765743776706561681838717654848910391903627612272127415386409401542800475783788701626915838847140562133982350954924161661824157390294869373616745645036273835588618776690555649523186833151887766738814975300535026324496179469228263758854253665944708644864875629486276281806710774642833779239080152470784639010130442999520792523557937188169207374004967368748920586051576445514911605999776368372975964138455648726762180976572715210281702149818251178342860938525148379160809060092778259286954505378836010824573535812776943985302290202513350571936249126817960674506062235635014561837870495833216507123470206343220683071725330239850673665019193470264528922148739976678013792580717575979373674834577672489600383143405860584115348146524854533864865232615089309734007141371865744175312710330625854513178699962763589574727397065779433945467897027372074386856765478543408577882790301845780955775102383330473798459002623973874745464626876964014446555976668961595580929435031464504993172207296970231237220345569316918714031881350237768955985298270635709474896667542592058326055868154502821673739471824922570842980207824004783743775429120986580238924345729569085899716695141453677423943572090311471583129280228383395550881955104660771426818007589957428769031341387434162580909936990237531818155480745775776061119440379935396034227637284128219903620447479857321361882381460603269670251607022334397468773726506396549173544590314251115525139518083133277844743526601208451850306037658094188240646884122982678835171460376117324652854909903735139032016520399537786084865657719535532648745393834200429261688134894615674148411521944866982033754990984713692675859392648713870330829659720609883430685919724607537729670052998743993790470686927885091584447165349189918988828246783769626657953682444012160526440440880869119086575956470816307113202337974659110147748498024021221948857760555320507489121178626586553822400576239386664655473811300511585667237242108514691496304146067773154746645201786633764451731281587703716909489736100282590760257133754333820406882378396839942734352359238614538849613004127655972435275751838682336110037538847268214307946647558782439730297995945491519331822556993174068334943838645827854434497360653639614303110496810347885736876103784384830403980720445817325210240410538529882921513557157929109763546390581746509915318907823781763887820318827246828162070141547753274107735580354156369007075553141357001121406904409256696971540559036953387462027005023030446166510142398081299581631712973662558471994953208470542540671489430304121563238803956484299194312599099230030546780315944925690709801928040820773431487704760679747724436792885853402651646087879660437533052828658062405899807326949142334177179696881696917045941324101113564133628160460231401777750091674867801637492565293297445388177746644789205812140225631061212036653576571259217934256252468400761674326792355619239652129548321664358305481131374351889294735834999356405916813088413022129960153946032170755415968807769260271230421716613688900822012358168814227948309167651535992475266508447369540135167924303833462556325000229235879782270680216239161112575199900047967469396347660294869180513401334346848690021711410446535755591602662102552934268558237404509500776889245577868126296898087116202132514034194980223065740618225348554158329281777611046968556327659914371373108034595702604902348869070913346052704804342496465701361455122287873143401756116934073498579793811107910579471094031209084278182407385559353024942139243501315017878102584519350860732046552289422620928373060062626023791886868615497956271392500865998469885782704231816863812013745394959455631635514760393815625248991817270822563744118284085005066951734864091344128505006444280782348321731496593830581991408222537033723081363856449223661682679041223770809098047458590696971748901569388230516705187977866935877923640161426663243324614283034642927589963451670456477310739862143529691040820284846492610518345742380033388251707922963575392534979266346249338778720972673836190448762459252548618732025709473096341343344502749550570189942101737789229703758163255209856546201569740651456591467917723084288955301941980222450048938470359054213407878398914024353350285893562848869696123177206882412204876959745294265547837004732936837207278824188174173999316269956032059703546277704428013124158934535647020735106221064646204706225849259460168955659731741224315067241949836499574068249815030837553527010195848039205504736826338946125677306670907581054427715935231146959912018298261527306328300584390877982101668741430723140268187838677959106317804499416181649570942291427703369251596437833877727302973219414308936497712655597111031773602358861810553972903976332111496354178837115261897359653165745409129339964916619090502724897731858836018481566736499245289527502828214380976328874024039348879068087212462052463971238980166078060930053915580642985547912553267774268765554095361946188709474946832154492386515213309535255237085313383659995701168445521137711453282833927056213060990808744289306248025895487353636547037101771353094836508985512336098591357831447314277979771520209011260859774956653370456766498602313790987305164641398672594707558822230565597848046451370223038342305229304887125567658845965345976113000628278515152105989106721565003392112534762082325329130634800010482133639229105464928169280856349656359280534551033337748168591368133774001817569368437241966556798782591027944252885215753238451064849531803137438262024778367022027876338430645861953846621399468969985488553209468658891085806674002942989104651176512026309529334570188861684263167649549221650499261735418595287669588884059429684217861109154146624747897052128712183305566305063947496198877280269855542747779555491358552227796073803858684098782969746591747342664633848366784486022286965876021955282220260908466068647783565068657624231851046908833539424328291269751840838110941104401756351049337287510508554689239802697554564649481984023120948132485705371237655997365438963941663921655657599257152881905174912649252611075082149726320782275786079120316778101560833790723248966448443301909612439599072255606808352665367701267797796636564366761720926015981351891608495584905133079215754921478562241979074547643135592268437631606218396819290006240785343198347103369207410204394469517905554899125375567680129918099540729243107243950987813778231699695955769849629339685399033301683505539498550947086193309163991730310445628224480728613405956082743482401343650194575104561677395053210908101083888545482638520206270455313787867254158901690352897787538705739949908676450392588531619745209169485886079138414567692909686463493163505980937114321206094179327572279140848563042765041487894431080602061650053813029996696263890110941091794155307833407143093085541398840537297308679392439180561986698368752010312008035756281332214754421980206949835039388133323866417085849753257434148401659268400564418502992059639027321707191989364218034339400382502927690993305906445601883744838355272636511057962964508671142359839548584079848200147643848020687311097331855773514999539892686735458907298041851955880334877362543015043767657586679986999546681151953496566580451014570285422467952814825309479768491067891694817984162596495388541037355110675379813519169962048178232420929229260408241643206583157769035797351919456639775480549984143014686665917527147510226793742090434767817547485331547505740040428915421733155729628357997458389352794344545783480279907834529585570143641764646768354134494692623258566717366507679088910161538871363615437980460883520325822347949594271674873399904944076950761246717004948312756368395638250469459914675529164095520186187314554056494171262009560975859057470970062560927437698331593100114137412774947386946313270459938026162620334189455832010802622629966255511080887717388682381089032412556490680156171306116684783929551017667326595731344941272755966344761080686688357189835490090769345562798325683687802911333878508207372873297149449562434987828041768914783740931904323507795195356002275135958131205931528323336363021003489731194790745053712248204541155760624413492801614784744127648098447526134548244338609417784205741819383844139178567438144890374724038100362813222093281769667660600872442592181274058600751398178717457337804077905819011562108818020686069185746216786397220352282283601057888326381220444836815487104980317745062860889385241169993419264438168235695416303924173952465327729424923447941681147993319821611487015236562578205635344649599305892875390428950059215247270179293460124327053099074584558912528696306813306335680660310286235264190304860623292212411384093438388427907882966935116167896512722497475037003774413617822991350360290644977051482770384129035780809574507465641589974227789144455085128426664791717226863217951168935949320721866572487619964128264566245574866515535202783666192217887515564172095305012369602639295785864363277292635371669480017129249041362752588648192704864618677345323886104781710854160111197277921013400390619335466342811480673082218552438041341182106149866220720225595742813236429720633240863593933436776290116176760375173379068947550431374182598417229325614911981296284651780379839126483087005525473249813822847314605244147213208271380179656967478153703028260041797331236031266795908514548849561975764523852808621778168537017495714681172875049714119384198897336176881793024781764372131256626404838814666974506588433150904803120509821929418646157454120009895738905785649457045201445240371513178695561287473710691111907001579413153376973149409632640177002755082046960292060228440240155327582086858148815863277676080428849983299999301466698071148881874687256155420844497569274292368200709863916929873396367112436782652291059934089066142628227293538469431574157770142557364566981139205494660679328008153046682199920276880554294535735117274603133302611392504712039337779771275333759011930179725929769017850290494112966605161454639757845015705986028419426087256474425628396756294112196773954171072563846867200125785628527922793266390477272411290164627172696024270494893678030050117712682360477637866171017172948761615736770997486760291261130261652804139680490113238698907524261901891844962313123976857484507717741173058625490630887183118459234019935149928726700826802404942919152563659891278130040425425024462131085967001324848746581444838937551303209638039659169238183229447277160269555258845187035835839076899305502561642791568234248698269733185921150490994463134544402715262219130456580893515680094666755311906460140210939084965802171838305396769558712345293143410451332883571620182662890490244128199998802780989064793935926078946737993226584050145014014275703739968794115604459492661445179428927371057626526497510738363908602023777673628265540185209594196502714309858171169670283348325479762385496388450595778511603538456759133639386148155293344007551855452883991582229319951958768862701877857657510008239419143306750505427194624687492861726574095339929978329017996782496128848711283710812957046162586318359472871842305433633943386468603183724407274219142653768913576239271169064301206771311374837287536596115938354430963846297156713578621457744479851578094552952796834815490790212629451922247917032393611249322355187417737602371938867100904391693353958751713926864671332031309320393191499105792712120119831890557903063297148747416090568662319833391358529975468999257120958687811110000052969727990855586315402643715927275888243389374832237686765301179492766641666297304296298535533398271566696773330144242423765054469211374010171133306438795855172733384472834314353585901378046668944398983778112163416973151144562513028021327264438063115645066352560833728381398332540335145147478473440748359601548543079820352251335953244590158825007939326268529143504897931733771035361307649552095868326381136838446551527354179401075344300895393353201336696509674518747878945335490517866744259386625179726170401782914743921392084940241590485943293483354785632202995889388738616953765894735847199959796475573671735864905713352049695907291891324402388592232822362311306525375112885921253464628123944122366331237692067878714761893205651625370645270222462714291898944718483577740597611237888321128661653923639198341430016488223012170406521480884928962956230865028109147159195059406812363646944883244549892414416958724866754460794187795657514699771466025972045831283330592616814080841245036873109509001141855989835827865137407462524803700229952861138743136090969167684277743385545267805623819609157941542719835082173291646627008844349832603668273162360408987255483004756977126978432558375019876097013753605049399944989432295020111124674524616767000149428389739225634381918467829788822887505684579453274291670092801978485315176483872750693047216405698590522811541642025953357408012867221224257168569279251489745001580409798442886934861292835408034258990182495046059913458744613576358800791787164404274819878765745938056360152972055286070218212463516109520367279482309395964839631487436554149874135186114217489062830277580388672167676622397600156207116882369273113508889984023184704331476912066021178317060563186245865586251838262048548070855708323741740515580020430175603225137109262312943149774052869222878332116795172820281000270613932805008158664069327015822415987359665477369406942352830469024146761467931787190796039284912114091936730359680409370650456393161519200170042717072410831091237388999237654100400615718130050878547874206634365203624613640713712849446410615560065116542882225430443557495570051363318480629050274506209797316223886139860187159615040163328530556470209663150498891538100478612942973092197449055480699798143541630864510433384792076066675021635815926471917162820447451774730643970201356451329582027329307295248614335547373995020677742178083187469094584090913100958871778349488841164479404371796395781593660449911419390011841841565092140804641496221480382794389511626071619585747070380639956271231417060036974951532139231679417399506906062650094994525785544217237055785251849744675211378591935729358120384695668309428473064027807931296361310154905743509388557634482798158142722827959919094647122362572104727144131187925073179491665592501369049602997240291060840126842013011321912155507490614875580568223729592329827208279495870254769973974848461924994028638141986302809470055279814781906019600528096159698453782992276585134225399978220383971695320916558917955096919543964299110241981730203806665145124889634521808631082744717799934213468643133005981430532168757555542323801935675821060808823477160463589646773788382685364707114074629019300851860947533951488778111558503945057736819532366228403784224027405572301653312808233119197102730127384366298338985522238947804446464966072209843312273009631364613430624810761230515406815001270536592001888463889291112094508675643381718467005361910393911423647828089525131224862521800054662087783904816169312350783888789012418728611632145740659272612819504862656640045558296301950626116169934626520873522447378251142831792767939992802499959880748295243508322635006986658348597459296284430501951797956288642180457612928405460759117427301064938652408378952410863880199243022059236693083727172927361421155920612955451538064176726726712698966696839482637852295137066967287445303979179381726784929962445438187757615072036847555018519092252939232486233850933854018828271097446457530894755447000771823527990822238506112649967854073330105445563278848165158615782928878385899293217365010315306131064093134666372384988083025774245795767238949629566399715981202009723585424884409969331318414111379979383324993929756584425700424402632673223465491915342315772845994669564517745198481476961366907692703437451850049342103639635927696149438720515235959196548747785963731366416148469926226607639940104200613157831738978898082106242555565687436044938983409146753723169541691429323353703132704757309725916070521648207879030328562886883290615033761446744690505419611722426383718591794117234367973075882548510420920462287400767371580172070252481690921609153207960323714925307371530480289514941905652264846970159817494077939585343082747777364583703573427751050979907248489904271613530468007861881684353116119854234315513266770429571343545183829366580569777197789892877350871738082884488438151211410374979265442629580771948666880247611683410206592887910271342204814602441109925818218224469958337056937879824372457970904796196188076553951855235994656552396389239526900321104131165792826332944567765144477309842461791623247699436975585196272114178549347969933174816913021154661131508031576588419055717902422972062585631431145926753397000270702245767436410051180413562737195050252519462034453340902197540110954796196731263117334416088928692859430116232285719052886923911573368701305994064392466780364614237319513620651091864038272577680017905309317899600157288203139336851131089792667304513292082048513647331715936905686904703035218485918999617854606954219914903855192779782762669687059822309179942754113669985596841457255950959011510789378030129443114758196239358511499409948994055807871997523319919349017545074371559051660934558354459412212035084287153375941743249822864745392878451939024285892492502957103075235545601695648867862165753748348596734347071339185218837536657725517294935888347435699275864234658026020770000879993182067665242780050954064443569776126003270927340052492589913372113498065434858883209413690764432990201269599265647135409042958092677110999921526677802152447156738283699772740052940945861971202778269653636970883663620708620002335407373155164189963118506250753860898350138459078378188753854175087696726667628295569369877509405579212933898838812940336376491007448990604656921802352423442892182251778129056876295235443788512813988476712370988778820873389617338625774602034000521210694551993023810129321204376226301445906392691472702401124286659593220857555519729481806530799639811708127937436366863963549895442080614288628457246962378461180447393214177551909866497727441687702436761404053542452062492890796059795848682027210938022864211302166836126053266490520249309667087538750643186879270592133525888213529381633647718878472138468176391874394004051263461244593648414918524214679878289494560577240819774618973138743836634930283427960081558215036822071387407845588034697764264094209001759675288300158611046614487167717678627758350897476983297637158249871461620449214428913220892010065238267442232686068755548984350748964952396724611834329321403514300185733333475355299744550503753282973740199930872125826941122991114931318630757276777730609529922305743131814375548814231505069945842945539892545853879779622189672703600965458568809140785699296538176037558130123169513167157169456802301037066630082606229263658594586548661769557738935971147871568368743213550089919108063212818323809789888534959057127551109139077951915026309800965511219345728039794148920011151753744790361217582015861186632620893348141369245126160363144269986101503213340310531117071930778551627695615085474669863673730357703923886184495044605588228850018788968621074163843462809890079733932433293886273280693766154917050317517758924411363722727407840599649832802004237337900810003371409411638475475260661502628553318121956960447659303070859536841080172623652436350564634390131762645320169508929138037209072916232673400733257256177811104635251274403280478465323720272437180394751056736161432148742877468154199222894790241805755492728359708278078418326290157941938183981333179028383759366262549138114383115375419510176407964920858113765375731974357145669179657818913360888324583771957529261649063956314465428174368126356021350247060281062043235647432316503258231467768437516302033492604716125371117227857870065222607583406176598038079414466285258505721015830928887483665569723749750547792993111708117503095843994876284193608402510618422255795215709946751171015397177153559550319229201584641782145656952229511885781788552819404924227267441145190024369444281945529050436723543972428165229734816565045084794897187804744630643925297498012530289533460438372359175103684528968740915855047226265500384605563380600419426303461363140467706547834012604964009835791081821145707363888826311167384575462729983089752102272652881260159776125993120333011362761496573172819273562780331327156408855349190861055951798663634988027735301518417008374603331142116882442233015735671095270076135098879117084569064440778215863270444291115439771999235342264496881834262167488163083615598267212694197511425763748120108540469445081460322478503680901494498560413520667235254538102973629713206174887353422981962042340341430980597104688684496951099653291549375839437476898913649881947374059773903287251707065899341564341758182596864499961332535567318103704050648799018284635232968059050759051821822657283847009355616841706486768625744763186392152649492519294550023735103726559985060484957933770178742895928575965873366661866399470479249350690833477073132927955484670889419813518071861390667539214797938655019924536423598755258941629392977970956581198424789019532522063906750969804701406946413832719551313765584246476609650848651489789632407397673605485371751252886898140833891854112811289855362100807548606846450700734599623428044904120978123154426239690323468571908661045477008669934002776211746554266498259178689460749846949715437584422561770699579994517940109226720860022398450487595560917955090457804773041123321662845391576613124253748435714138204339021190995681707564407533346366988455531490908271779743468006745549676246062642133303277443999044550333566765400968257307310699751024409436752759450875885432049223008020734034962663911487679269137005818322016003616862841595584029488598407323235603605343710927846699414622206566954683547188037961717419350994961112712543179021761234286728644130599385764437911648079709535251593228454809115507776068441270002940583330445071552525291339642609250625249632328393609805543954784380793114525355282526774464235933667304703902347953845588251065645267468125491153435412686337569224882257261325886353871559575132763439989379386413246730991461491834320017661583324787462326630483523704327147762151809500031831085554610474144876722736456325761973899636479293995667234629793968010824049294189415608198814454095180035847834566027629457733931122120755862684000951370250060468053878240179850877093574099445876291632446195690092916071710061840427852445501871095427015117236989651758572776615626864615940329244684994719720369407568109543665003804199889073130948359125256927540382363101849884342403513362937605241552447772557539914307824866908321002519253340973484982034513675327904458326176181136661522197600335250063807220332624125099450292547777271333816755769897242542367958707977366386263149268621204317130019637116276973120092969552554343554112920459406779636118137720282914525154779635264111555965027690495114458038649038865934710748525810545148104154892797344559206854631828158468112889183983989194953036658517018697484366383312632540562171412022330454269761221382865680830161743210215906465406178613448049341976231744303424581918271744854340148532364963839106054782414786039549096283567271067656862400267870646491599874517286703168654196351598825079904966284931790347118833220732512908641658855212278393571833489284833342044648908062873705050486872999340913452657790238000506666900315650767647413746262895775129558833705117076800799212750333411940192646227698939916183129358697753464605907123479092353828926105956388828859779856262410038517042108666448674961816962129370794001037957188582896842296211661628500604932663298949868019659969479538475352832175059238257130690501277963784797926873637193428476875358705664068393524854476766390023952593794294799540020668724751194498477866573405597235379016776189446991314714589596969888787995016081242232004016742699150357450570799126643820497473884925683762735636230405528971335099798933616899418177129792734544508256490781874246458696312900393257441581472148569941312797772331192340589952713879477280187567558653594549616573488616626578551208929159930975369723816510194059539248640861675398739284874289844631615328331155677955930985077121894548625280193339891905105249063923019567117792013264797465181320420828586623206667736840259483079070895992921543240096322718285941428867859879754944666088355006631074656555150239661087791985737841290634100366211988510128876984056970784476200566224805343475606364265366987729683902777313233034642735071478928442481971498727528580356032455766595562892318971880679129331138873428611324272169226749181564811878112274964738156759494498900489571726605226449096457990505661820629799176193305458114959968839547256553032505540005380090479991513060111324453356440654867641045229790867416604840419044598948898176489845660827301235440662180977927230514807387174560497572202320955867740764969274773492819845316147850732229317632900954087565866596941051438371702770493474161499355564151320006468716148077634799982661409761706946252067560881149782436269418367308822499089084643805357545584466559606604110860948489412670561187254142578350525455128804217425615546131417044545707828437573744375074742917420971049689355410128999955550432437115828456072568384755495823016210797162785025255669958185593187746980939225489555731229644194809453800625674004629978463920311708899656654964063149393060659960534361379032950501866458207100958728116776595048879673242233509850887118244988599096963481886378853356691684570315997386549020485682337499333055678783820796239480305932458547549523041062692648822371398784939165906829897001474629606422781292801794701219790850679368973823607572486094977044474361451448300026260545323170633267220719746154819776051659472210052455564710856728322034257719606826654044479037505899180514927238428207708363410929446198953118322857288258019999669692706003737472762549899480960424942786104731556829049707169465550419746572952662490567902733937917569622703635176182290379393731026161386004972790733261746053014730218173718430054397749373612459822131954643166572171517622550038526973918920264347743917964830070768158223554578459128576817406472133050553803261643115241740351979753527250049442489026829913650916437151464190860132727494867355505237023954955126838783751771461804363081756273602115226431810823655219362805448811583889048037207455482897326703275120888519662515007416042477186170204743320656834578605103802697704886730174822752578707821368875233018612203401204097007965449751582168946807072920645702160158311191319405779177183894366409592732937589369161002585207919273082656663304038354910762552571895114491568480983861239734845359484841462398102444698227315682743114696764497953619422583463141514121556726778323760857416934486522688505953008433914273089996341732776795295562321048598082041728924614867781261737897257463222056480367396385439954327726511379492093649647933472451872494696757622991740288918512428839500338221325516382458565464215299673387337080894449774790344707641009343290971134349889140851955172141059941099814384123133753942556923881239205670404252479332917704727863548490621474780799528095473991847497474893707590175531167285207866939681023018767149740841502774382440883996675461631895966944592953076666147660667718019615416161027711333517434700408208535304185396535724350174969850298105127772147357770833669097346925121033512046298645566281478905517560735130216850680955055615831816970695629706205200218945266544704886206226486272968195953230813932900831410337317318134303517579309549058021605155934439494364419377876782567075267933669906615066795666539222598744865333770669537403041265319315392715711218772178889312823290508224527324973972837614210729147986714395502127257825500330619880948943136686074436625238727336180642273833334934473274534352301828198785987364358978217152792449935904754917070128312511899055497597293233499130053624244704955016821750344457147883143023009849560867718951474289656495781833830699670603876866227775450018798419568887781763154830378129501159624865384924288652919591607196658885733256862455960750461540691632993341846409529672541870616738007221973270247196069179518096662167700452799615396655944359159273203071128236990845687528106370325694985380311047793508595035907307956629298951944670285374114624119418517587985840147623768464886548988787559217971644656738903941642309653892235789160556969668861352286316587611108369268984059100896676053788831908970697729573739790180273438155342393167006629563300088075450425977260321044314167951870409200936264650232686205733013125957911426967180807059780952567729498085082441646466897974052087232571706018069059871729081110341359476731491945869943535106485960488265329550467296272200439123976737987964872818309888621993462896444936364715809205521677060285592398755968368730430349016838820464350520778030808825639156627374384933087783173361463206409312141165046509804916252202062072401048826854130442822682796962584650878221728045876337721793341725842235853182775832828484548831657450301632189001333038538024675316505087859009524913981776597051298400909257243033495286250962329664070503440876289130408118575962722041608798304117613242868491538419595501395581741561363790446837095487027578366696243803759486706510859946723155922496549164795664373011111938131670090556484335151416275338373967125171176930817728840734468043503702876275326691060407071395016680409493382978172573072980819470442593697836932294847560557784776037807402585671900031093563798301474054689126517393272443670954360249450463992268790691009296364023726460873449260637846171829236992729254462467681426413571779502223137579185830720410599894872374800501968346138359796361590070793475711150303458683464365682120020179441866832274480127377735301326663324030552392449694400927194288586082242325963511442270380478765155659507423180785774710915868451774037363692320126118989931166582431639314492608252125468082911513119649652678971291652074435156363032099130034862297369983293124546781654923072268233064011928796288343698636145811202257307567715933730620915112329384025563199877503041033381888371616168309813985577939583581568179755080179082072415703200713212001394690558785396789542677957140173916057632742189790048065789415021790826251255353048585571458416395237607941989914442332024441325092952627371976000677541689364112561773052825045798167342819732315130628923356254585886180455958775030297849200505044560218370829358759924109304028773079708993435176141603093887839897606456530679164606718719733451905973133986558735598968996273475978236410770919678856847765613731914607744502632016020496658494307890193719282585717487000439508182073570586839678940476962069993599793331969742801104945354734654729805964301906194798012896586125969793457808412740702914308525369513458511859217140205500393021177864691385274087200614928541424060031615108923309361319370367902756203376682228380987499535156182693511638185460662189477215406985069779755283437083384924593680154189409444349950170021402823848370250485219622285362104311910595835389581733925487529534221425950152250618248372928852432560259975920088080883439781478673530381760283787821970386609680464117133999876516827400177636814569795149444878268963790213981517030924370999315810041937261784606801696006003244397350635238688594926781802525177423542441582805254108590187744708725308336115665782578028694545198797991957206496892378880647717638208703634139864750330093383521049060203940107646832066807037478175074098832908808889547377035292110393775808960693024011966089430925860041033094582166623971061811810623153815519634750979835783547950566399786213437599990674667680676457342646106085887309294355866222800689399055329263345004278169133095515777898186067624625274236040568838626385906640231613951763112452869302639163662823157147480584859693909917216402450410008166105869359715452614291562567240737358079914992209259877630754244873100339509109943719998067021629183104124577113175230454644985884186326701123328934465278770927054641682204710894834927208882108319614379431805866703920886371078336649995604368956247461211068453376149309893626916672629858730121477168133611778351407273470491543042153157803587437091107100766118200698095856177147379052951719530908663596468570766297131355001934701267438926302952553777084235356813714352958590328654188479413875569018376711031709964111207018683181374669793372076462778953109573051688539960275629576481857163590954038899889689572572064632975830329351766900391567023441260839528102718927367346299188343648259734177419791615441327482712718427363248676112991928418957608178586895385054666694486652886250521830271098351505825524901274667775426469895506684756512580286162104420614416541135801087782756211735200169977565544143612557741415501490987853685699885505234684939828616749016472176260209820261537123639996526272835673985485877304769799621909943143620352601748691949495134247274780702544060328235723439111974938741252563723070490690079819926050215417550430330079520209149755468356052773726593939887451421396935839032388069435806831810717881011134886123751277514077810449994542474477093217490928764166909885497618402298764476220144138314465834641603517040125722228730950882145631489512194803696840156327918277872009256549908766955940006345624679638379040619529665731505720065727096520280810407275898438111347707669157520219180012177558232291905155102391638398670642470188674267034426608910992428652391067280087752084372422947947978165993692165005772032959216420892411127106818321166610713230624786767681166525368415309237744431409233501001068269237070594003016173351782853329609690416160420655614002254011169729981298127175360406328016113558417495194771056149375019451548020572146536103025357369694424873808549574528728408440684672886408847200542192107681321677525173096930429832205909457208348519110001483550385272993439512581517355619205516190278708320713390632948653439085322109312862137436802322017048225864647561267103566949185124685715852406460478124921896950881201030409520474021382940779767099693961355132595415707545577177156756533187653908916731994212077159522931448362184166941925062541671265023654515598896324792172291586337587779127602020040286368068266731734477536752758716396789060743754278847548431999049244735759164783668607638263848894367680388178842568501895545149548628647035785465413825762198799582845338858088700956026306887756362137019666407000541876036987374113936339157919293329916852748420273164690984608115768239511861274223564376904983804513796585801001284860900652496775335835135021464744666974045295680704858810083245160910685816313770842774342545304592756958076144375155813628018985916604119829167558369800262505727296383223463542996565018075396074597384558902227707497531452906511190162235088314675822334060466006241686718395991396110050570675761174866715495975898481433182661254212285821337248053571306332477646960686202359767716803768555917819086394859179920682366466688331197271171926160729455578143237383698451722358064749064834647727026761184953299611279303922137093327199842099561469588660726121352032621231312683845627228113290210355461249938246171417530245143506576757523084803114075533361473390087200649827083900914487272059318828431633658211715442467604167482202899523662519667995369373232014598520904131896377556508143748816733532006817681381340070163850135621595992275805340166871887086768156022693099408792349997969842791481488589198039233041921871556974704643541236820363398436150319901264470604145070948282059952264220704319377268948920796559651522672996018217835000727366387880798892217545907942002393780011983185107292676454040366595071248662245442719227105379390023815895133349289560184939480965729106272963411972306815012446394863640667773335542243638392572824285177203089063764358044607564426972850240115770487038921787995928275615743515742007906642606012245836413358452535254672181075369964901574891622158293959425775265603384800737769885893882990761958443901909719090991483778123497067515074895326583844496477041265678372058824866636419082057829067778561333464619104812179736141929657735897591787316646147123099937333431263181586377096135232667322698413419895997764062361316372804141562958857546774413258405283549492601073491978861326161360985718740093642117675223067054795133849343037137650868296018639002190127054149432507005273810584095862172589642423616625074756168827083765310233275146238980047960725238679080653069937393763009084402156641096838719280824609698569755099556054029158036764418096556873164851612000099458531894551858216230468381033461330305927315490487590162838627804691804945210315633792983278251789611175345408710744622389487990429032476533393541105976571054838687079542607906753673820962932372454741045174788622147516962290201404836719456191547735506888130903673277818561051287977651110569621452027174070245244281743465595490768195071878432977749438725617875773875902939875415038135915158623998944671027352164459472561186883330262832680874116350948962030845738692091522296979727355969612177244029657969725786616985266427887845102161478333942385313016758285165416229696673273462214372219971975037773582120805605299976260239069532616971811440635922491864455812878924869276587913887652445299795548174161427154619022133996174167047964417235029042190954272992827624718426364999439253020182464733917808193020864412671054694939381669382080469156570777352800089844649431197190881524900915110477157829695498274234325490648899857531381574411628468387207155566172556273618818111051792945091308699727272607975997334763889396259431106783573433039514606993811898676587288589588458521771678423312206321865692190498838481176487483801445238193575503263217530689633490010787682010691876197607033901071459320232651700688562819467763224014593970693506346113760294208859303152997301499839198990499022694172038812386637051818981370985750042644283179605012390861232834615075376347602516637197028846386482890924156946819267660783633598492397524586922932310468696430694112019970802969102294594052278616785057543677337761705020638142749017184279129792860628672100120569896967987857364406601238715806934550669587141231825689468805824180576351668227157837173872019724711537024796427122368276952760247814871491685824894134996110134642505704841266661297024906849649513217386618618328586716366952067938053528627888348277351521245472388963860883444602646395438170983115289048773139669953797227138085348453702892081243994425207498267510903358236444364902341605478954354487191177689626016730548750030258196863763075714396915046439536679186013163241223770920807811098914165831471279824576705924358069102178805602177406936861366309760735482819449012922233864810779449115842227567716986549687768214573512749160446337818280728134385690273593309088293582377597187627239502792113159741154080919990450018307072116286206656467034733657021371774853895206655656374155060792529840992455052429811271566920725886617682598496255004377047110227711672642343808291603350894181827138601389281057905409232616609808536049932226004943314411251859716489444312548168156785675128447303141438566257099901849088942813246432117941653747911788080763101600408480985373525489810860330749556755401833526043483914839639831605351811942036634749225606216993854381349153285183694917760619618369931728025265719591926605758875956138241632864415815406867304716033327688200449942874172792032602975748730794869318013387447147137134532806654807710989666774540683003987009631406302685587168229394486565821826367801437470913849787610110382224705830282261672895199860616049106886907071259226844725762969990024422173858822532090438021112371474099057150103834163994938587102915477547792284193852669222522040772304754817524984951337180894101090040704659935773404731409053968415742031703632703868976388096905127082111018870918293904059431087643783242064161622777275712552265260091724000672408430764402473871480413629084727745002585989406124368684749554039502462349462446114230108314073399750314459716047705286005297956950948253484931708830488145552058164681947748218722135765806835547989951286053679347345830671313322765227549274516193915871843924448681786667931480779707377103373352405596515258268892381825135156823722502947945463099648948821082940777179379989820737943622453267722786521540447513941652130344385365556524330733508462222518270565794763428556421874638206532198860454835840499734103649994257769546751214175687091535713860633429126602188032126218313873409906034734936987840513314514757547030816232728888140131608168522032500481682444077950600637674968573622138206807905819607003005800217196178543572046119208452243946480050443681527826720654117184367308863516485123347737275231971672811813654873109242894260493861182369284688968018639149439362693284528145515686204171243292554209360894811186179487299686427319486910473672295492747663184426115151924036451929100232035758293129027016236512124375785458150750028769675404637107289523049196123589432256453226335044842851142418618754516766782867717047386651465492773993054753526699644946981109617210848165306612796088217054340913107490356900412692161674161730755164525904066968866246148537347059328522920150985043707505860674850174927280162893732672709907167882437206702379871739378642725726481826436639560433312693844196681512446281941366614794373923423089505043653809475656449480851033614272487918549637914146823960954274859642390062689685612969547118889376973387129113130268528876819818541402288483608894783632417368658356963135858397396411235033625566998921682202276982424187516013457522579342799023718931146210225332036972348013349126662296595778229529039316995657990722148376880646729512533921714126404641723483043704608665422665607324698193056925840085804833404792793007650501834549302913333588857065048920766392613286131954672987242515804954653751230149919492393898180629688629837589967745651569385357053052182514378980359731191952220332844659737464647692278332429048786401229046885788161179272835331218454015083503649038284407009009936118718782064566911334283765031798948026432417204821793425182162763754144979406125537092993642088674943853410310287645914190670748065849243700732093480175712265749386598931039341623579862611879230764047133832800903075579521073735151831499608861196104092665934322630869080706663978210334932408176837819016554874846851786853863594224655477320301239703957732492682294631954959269360186284845708496455917149992218462049686944645037195818449673648241097570232246164376089846847112900816553218353275625756651923704004941134047736268271461361539468318350838665280211185685457476813711412142400402460490254865952370633339223160731903894617399689218649752024916544151237703434629476385247411078407657518983214507355009159209968895882801050104819361060788467951040340485441436333677122028033820612455704218262137081678919794282928606102336539375851154835473498855704556112744209570548179969432399980975622482909794206980483475724817898043269160653275822087784559116834597435973999093160969359280121189781021890842880227079944187338587847826852465300310600624727370701254986163203192690801246330008106231032574067094988222952051686503412907434389415549009791390128226295841702996744133925257357959864853356357824822645386384852791214100573303969433534176663300693242782198619508270426372121625323251720341725533429048499630489075803589037705378718701360599005266369862743929388184901581318253671985298254080514359142712084487955837775921633523883627389571746366903911902112837839857479018355692773051643471025213850514901456514684050509449521827333300048944441766924973487201169060168665415275200246451556549819532824329242019303341665578506526269396420002578515659854471559381881310409667640136528099211891761016235939065470102583146353906827238434371766590918635279049161041261971994770277794653411325054399587047437640790434892030045323005104623934150632573622309605453636387079811992464452218432016972447783163083507836013881032257932132870604066109557278875109917057948263194492777585486593027103696361001956515347457467454782615716983052659213883772452563136818214104179176865825633821937802935902321546191152313932176418097975955519107433282084325435348108129575868719946662366623971193000651577027390407456472321206120277445762581991944306088684702832315432222353375208615593126635623144400582938564127080241866994910455497965330233114158027903472657857621250469884713368956219281913820736729614037405209019824390470565545607910831853767463152670631798026534778244727823507346329746755901899125606146188217158647957502934840606185462324650973078756178866485426494091429774886284902718424560829261145163900305945201302517382786685637535813634051764173958404801933186409434098291267092280475487415405624927820338330219890820122909354003731089015779698837784523949240429085410340595221636946151842502511654337758968961103614218907535660283858721183318003809870625994899985652397858452258594193690432170409931382223133164759746871787823298193255752849118320154997420699860324677374796704006939988191695072528749248581651844736860617876050327309556471012892737698816047590895640514098153326714309778064040982812772376177266903443987022812457281990291796807967664753392500297536282556565500299679333027043083632401022447003876881000386244146679616325878812469923256534563001710734752304857150762534135568050748186788774842744327489311788584708050641495770829657055041450273094046789309508957043543995419617406629128807255605000243137876214994482508209112622746683507244043870458096336458633394060778992235500850086695626398730847676314840922627834685774925024546650058583892539245678325506203376932775251265242574146894629449107673730686748476785908364346506758521331501089818259399985220039585498203548610421796541424541022882484267922871958458527422481175621209844359842559126569707913257352122153250527054925325137770436892714511994213306785350466672885247903030539055518509205844213288674032445885539175306129769764177648428332173125616801724440709412034306977237090164509211831094887347692067942822554576951144298641239039328945745395410427706854118915432745554565255224931769214660321491029897956834499031299205780366713376538231399741050645056661369458082060961720531406780540866208251003166331558191294740576075810206664431124858610939075692200724341041743589148704570790856872469131552809995855864787939610288622102043755221100536665370923448906427876082378919583815646072699785203990838368774449809280843279837121902859752853038360158596620467547061610593734497075371343706944545786065242775843452369027200777196987997029784838335756652784518890799220796146577231234069960199608212636275270725437904050422826822054287462009019336780030521355008190108121443421090735595210584706920077832389597821409187968853471787557128686571373663295383917056990571108808553758944241480753160331995855417583663563966247256496277521834421287686534129123179890703876959770861059391918772076643963462481654637485848322389133498682776607615013726996313089471011566228440844527096607021613892548672018414810036040668594733175691561621978574540807346247898693901705330086040225000296095746843797499834190036524761125262779178488688590126880101425393238745350359511230277610392320840635419303174345012178795022024828590692952357633231266031896200273633869636437323287701722675831930745788487835482091570708578492081388526417475325495161274146684320336703999364264764238460975131015789751875463355109237628682964495935755778274166211640127897722451985749409242951651417242955494603225861301473983680037527292678246203308845943098705408225032676470774089530079454825707169440105481072154190829884262569426695991277283635706099866315425258942681197978642704278551957643276484001920632671738466339958554162748343775481764081956260562022137923144261277390296592272001321842441381025410116594653014228277840475287265220479856001838372942600682930925487899065564974222235989238715770069634459604392696516659950609374791806428984765685532052592832470871802370828849818790349208300785125687320562767084837148176674054592626757212838924908112344058832119391722314469267863291808188068108182956124254262360442241679232768739660161295185028833499081196258244938282248768494726494417614531099858104389306494517348745080722413265614408453143590189349015631520129052294712621067828259166899417448562763007139987256422223228913088021659379694034308576085629286860152392791340178760006490193054896632555138168196540438372607911886360959092514099272342311382056948151902525246141419131547040475501070170770625552243333699331793796763868718728721168967475156243295866236745222375058344347355023911172972098057810720845982839877530105940180812581865009506115381626843936119830083846539697712870668366898700287307341841371944573458169402625811002687498666623916203858622615045131598030535659758835540514707238889358864508589961027961512299397611894151231000305292364742278843429471253037373735927540393605031948088834484827285528186603421918622173993259449095454249031977185535413422197726157413773424220772498520466498695876600212898261115308242031990628138814906483534650005926436254961849443411798005748297911382117610690797675875746411738129734850848709202205907180019812295963543843696675494983787006070967453264762090248922152061198094660853785394692372428687024572414267009781207574888542838936575412497876424666561325047223726537150943215403691310065573797767552429545337874863079716985883659540983142778078556763665833225225985655362918432313933857618520870761773461597733431022624420628011100687102763669141951480426374744112737762289701778254457313274201096649452655428693125607080946905812853100369599786461737432971133508462190364631535837562819855386004028375227498164978783003211081513945531516515144249523224391175820415346053976974910954687731568318216937681710885224204273092733285830215753926041126411567349676269165100164770615793800866492981997778068867424518250129383625740961709270063526651389189353922488830288902418937024843308899358582260741179135734710183181333029290381919955921967534157689982240542330990689402803093402161979023416616454279860368057663259688673886123677869191258247950741757750475454125559681508557819837501334896296363272441228199828972281682350230317769102284847782664211316842350346624857556106699570627706009037213063427190015026610157813522039349254757848311556881562045983288240609417944660906432548846522418846093790610075243937320713126091943677311702445052407148737954271743219298430554458431114204038118283801850003324050874499400618223568046514397064902811963866914797222776702425028100631166279176485242095758806297945029505660927362460942146215295839777940149222216589749502834442313016095693794490650548564267381093375440748916803794302164487418094858432609885202315642000508292756573146858114175396469531256812504242911223693753364789721434638449142832555728804443757909912867652479204772187532280671577014435975915178423469140357380358032835695441868040403816327451050161829018360278963524706669289093822010309260347307485521873395237262324451536923192471246986038858233164984060603673629407128628481069467478361313873825999517911640847934629662562293181955543216104034434914828766857659369188315875116849701839049877627874998848254137666085950266808162441791503922032687635743621983879372977176888441400776867234886682435950810983036203820948291827770505096055588376652247370317120834815017683663871723334872299905959256850799355038626678559211177723011962125542984992393994575122415261535457294402186046904801163299473111963546079687742225773710867899487186588357847224139624980917778361057192052033480868149697014263050057004704315283900021887517827131221385821270922434239168226594306014029920243616653985369669419625110452418545196146061696304665761681985087636359091028659724268059933270962977987298310911282980152801599877068101258074093949607071612186177033138439788848655853000129592654469462697362223499065169574602349046995249405132854769495586710510686102179840750492118673154549523972799242316116849101824238729864236738404869879058209691017361316731333576657777049926326690368415320468264398445399486255189927454581236903958002324032704635299162289983364086685554265649998214069737395218151576849768383815429866704587761518115547477772422397423215687597821077775374708145325905757655687883057068464005469389965570183543595596020383909967065776527254626442975697848460442083173168904081656971713696587777447856441477700735549252683493274664657335305970986742309513635851784326487995560814657926013068269846557405483229425350253828797586048876250099454323345430217203984909463710592225429665504984776915205100710368630491717545028644175889031264399090009059095226365676580734893160837622076666160625781296053149568355811483822698833939899896939258947945363986488209374835354540151015148513876906460934804679828849283958752251476945946758281093288622397421968305260726757600277146984355827149302265154598980469360693254501403459305963192646992053206883459487880631640280146112084050614149472384230149560835084321603082305304455321518507753181632278757172789079811175342489592221032046662685417504562053573234731177055164061241670790512725127145094680447611238240853787067972492073004767517346041982305674764198090381761659418430934507380075404577660599085126255244045248270621790646487653199958854261057474393430705261861038804022338137415763412776678659182535504900909414875064444496405828339912008902031893531719282393298889713800997361811274111216419372797562994287811315732101158425853701755523907344025638498362835779689940225580108248658052038460380341877775696720937933040166976014244644485843180579063945034682283896877694859894111629249153723495885446849952221863376874949443705460767814426361560577415134626180689584394386992977405574511930718724477900218798161381023803853087936333763232750022271965522064947932679868432392034415024589586651512643079045195198123504518877650243380969316694217799807002322605434521311994667788963284004739817975394827989504261311733443840666268201093572622428250036080930226602410373163109544505443283790765693144227067234958986096225646801020299410318254747410129926420325361147633714544322924822532003983434703128922552981877371233979128654576617163545765493874235940988426526860334855735670670914012403915463813324109382774889286445596700943966341539057209278089165383938958928842147505831553183210727651540492868792300867931221979226610000488566636220624828260944907807873034365234919214074247701116166292227404428807774632871065845950890026924435948618651461898582516042167928064020794744266677568795493992053162418510659554237935564668145850742727755628782012757823853874966507962018319909971484938471614816319202047373842779438797095957752997429971237025305732550043563697324965553406799766736535790976603817327929861780613966860953808622338720933842421274075267640922313408413654905721626157970740448093460628844020031217341292868396510233815218397121190972341466685341290493304231507145764274050032341481956858581573992506021805921034173548641316382153483159600642502239018103949090505465850640323238756368289156936143535588341807642594488804208847526557470817692206938660354236319505479850861663918965449424939954604857452467540695893965039136534673821905424370676081416301784376497770090993555054917451839044219768237198881051773863169102990133109591900930247284233174227990130782431783509209822348517797676381216436644618170807956002271659354663590073980984992580748240730933188018722694718386496168416828515846580138853098232407124117449656186925931738510404615617130385969784969353224076503151945863597554668210146285426668829867043826147126209933135698923742581709510471403949875728350474898757559740082775208538901000267267193399471333368810071274418696554217672383773555109521554067726595718582149408330293956316427649983330987205726922899388747298053656495211472522262131435926745954888902764426316346581175675990136261742614153572988458152648694039966334724785351223815648728618880980929790743493718313082977227093421167692862179965132555731551785576973880544598999993528154665638289061466364166204597851662033583422694216864194202749066140206939503399426206674394988878598255968107262050136876132526048084603112995953258171446787891494330378908499831030682447593975651922445850533162039046673629802041606272279155056066353865442518483325463896231216839386729538997535075207383803130300625094028226049155598986875207041818687774567904252306852435878338686339966905293341782389001173199399489950907248591332135707161687182106486344347158312784854340687821641035977559523786362559243075891540563299708065991313787144510871796598321246609638102494545163995053058130699643109226730069263321964388641420365106463235315313878641330360637590932322917717168678014047134205058411231867192778799099910332170205098644738484294006732162391500953709199647534112957567177678000270870928528857893691726240549074964285619358102799172678742214002988211500266585571548523526938432864924741597806421884969023845074767346874388044682170086725030689507310040862718503876465260279298938387023977811247684012766328198366796826040983981077684540674893680701641496608567276937132651024171034317314822000419488512277654850920228968340140685290427371276877257424124927979793904068898888812132691080953780918187541788834079305112254671012738513178242512316173040286729908466262232340477125632694229157469637463433341782125215131789921089252685962189322149055332383086224847682540492367367077072845522286998580048061853377157209066493700624905865180150856130208394633136285927676571313593647009874881214086154030954689479196161407500635434634965369664498597435969608911527024403379567278154814177535232276925355150439446212143359249972610139825626824027802236263017261148229000592293711265133025811389776415640881183540225506980595004915369810449077903306780480256972510692440341954199187203126203127243501806253944518088850437181839578669911436716051771495664075620145250374942195737768386941005283484873822051404871011248587827255812496980979772082329486780882496576035211858351893057672371825452781156865256556113654288047412959878547619029126635131703409550968030571830272802996046167032183452194376202844851236093039252319561715834301093687658623536404160586680212996423185794621793795237242829754277659605102907301802470734183030286072340746520533728681467728622308758318447648921499974098115055567809803678310174474219189069485139360250941841310115803142570207507283910828486382066505131112420137307830063895581734464607697543382840450979122664817335959605591596780318113058892812364682898038188519310357287930107305374596447215034611700107407490893894600284540631209015281734714399094640807409170390869907149494631554858980923194807515187471289938215627060699283118677024295354998493013261107074703623005713597952805711794452671789656580730656615154234664600198155558268447207722077186609327312998069485739848711085136808274514940177486681270736332504902253041847290117691272723123715315310122413382893446100569962608569986937465108401849856439313604856771131798507959135653465986673809212776330410599628357275289213653679232976578979619368547378577913694693118660859891172730546200238595305139402616755780172922883831665960343732102735118636332933443398301345449422839837195341683773351705676601768399270667912795640045023833716188944072278076328280830480252841575810782004721894066465471997824864090719949267448440496676391088756777495985533870851193200958260480149534449996324631294568190725437653646907488516229093472953505339257712071466100156921412272868006286301895795876915466961815832682295573349658029445755732428937431531304204166956748037626550831274821446917290294258245321070543615185335304955871132928155033764198725775393620266383132138389782845849697692851759942632109724584766347566607626472252802593584127434663032110731833800132265612973496097303525791342167566681226457413388816741471348108398341061908351029469552074058794248672952749078769834855276544961396484246096168076176977179223304828399352873383575298564459895013761918196813047644157986750680508134406241403214347007055218113023984123243763737677961126728767701940874529344214773000400264467432071044106373098885789648327564972503326338936252095811625764816803420497222126075705697194174675593142247468489304343161928121007756377710538542994818909939825626325207704603209421038029405717693630905308148364459719606755561588830804854990080461120970795580492653248646582082696719881199736460354911899458175637976632155371138323537085751392203639109827286114281010167125836917694827047183804510591451741858725555111393660155963507780362897235826308950381107297070776666507977084349697650512387517320214428656443089686107753588562239318197311402330402987413659674935906467007034865117172607856000433998632609762925224598169364808282821372969693506534165455229098428502820271382705257866848290770198333054404589983222784542848041782020034324630785096449739271915824579418358595729274260877139520342095830756361404215435312765272954718031203852886197970960860369513604703358183671890014508216760542447008646604221273822306414655082991997882288910899679095761329714450459026697091926181330042436266489397173671614958235369391644736733854899757431294780111204290756603365219165703252940097871207892202432579022516711235294961121910756969466554158561842306542264493857427779459748297348363075312828641731610255579299158485983748278376184779084762310048646171540118704309504456427528729206078367915969982101205360215144461629212426726159611432474436202007803109818321586346206853748145714102150714097121713766722974662426105087114570330721335811108585187852125541290533204518866197886254824301050524677893101273048390963979493444541797989130630963401391233066750870931465307244662526334506938315163621071172421337918917916097956489956878827737015261306204652849086589842416269532590811610068861233433083766198370468084021020568624795906501026937679241191618556294334407241779705779093204126304489343735761258428785995459007485722712828605855805629599186275027051703200251756342890836211901802467133497105299314051464673423777744881574249732522428742392542825232122100862817746152820480765634599032588370602970307127708516093285280421086366011187833991551292750651899989133060048191752862946748882437718309364230786247233101910456363758933271243541463592990440909636223360595013378638722120242809754088023138640140953215710547251207203359418128184492322080851808666267712552608682955798285544208815091079728102335333089362367506831054158705307263810508268683959409419987776615164646101178725008068944658100007253952072693755494152576148013688082651995300516802897938548392962333459216786892121625469488402267611283116330551763865464709751272559402959013551334100456106617253980667451112926961450570507788449620674988614432683585229766462706517579510203577088980912650339947285988688381904479832567223199887004624924643296297865707310868752359642633575551622031236939013192396142069907866176734008504685851788620209189939216971056341229336060273214034487643869208053734876145947911198047514051165185331007851966777858734158415853207194558076953244604378129953281171659905979188600531178187545002011961457416424416228056380454241065284122598612420531666633410173048443965321200339333314538017946226521715367692802285780714941752315360664714577174077196284216987266394619267841720110465990135368099130663313717678194734757624101373600369627949137657773042642192214958482859282757304302052548931299789337523386147390254871657096368782938858813491025098444577625107148744223119353605127351941591692680898362831850533327895321108709828325545412139433221866207391740093958850302046545192153289684098323511746121558943352908301904141464199478073030598270255537266294717213353776182164813317220106965333567532666051891063910959851382927734816254628786805176426481495000076429069122411414004368889977632485169825453892120722998617934840536495860280377516213786737195815667578868178445053600713582647020169095418112795211125183846329827429106154838800571458049319747108980215710976173818178847807101896417684827600688956273568955138195915113764947866633103229390289909419831900728071845571001763171269313069259050069793243368578340812596284842146707019933149126486843459256424856951668860075997492720473946419861658999026122869805921167276275122850432693080315444813816100022635675043029482210557361710490355609421598114674425954323599924559622838469029292793234376990494755041717640929661526661006812347123179765373028026487659853721215639282188864686129347698039177520987954880578189742777858585459117360871344630635282941781368567339812824461650097325641461365889070186850325846837210604044670701522284989544772426906896792106620250994886637281394525587243853188166755611184334836851529642798184400756073880031576272594512183092507186354018223726915911979915818005174296101661335839348178947963487397623435229826797677970420605364726982641689618824161768887650992046870438733982505403062247032469192828153616368131374067581276597643883721421376069596022899604521787487527341677233323962294019031131893160881393234646672860460179873897673604555530207175471615171260851608555950574314447231303718501932416844040195108755529658187933007873343203857796394255210415191591790445484065748420961092452792624443524017495847125239198747322109725219853704754186432708622461041980908742598435425465509139029297749435415183147907295201634267014578769699997294095563555739656273850724500836154940430105475672236105299620988313610171989718853028588211871352604341825159002975144337272305167091636169497301107645820978770206450403917197183086635956830299386838160978522850034192831380654848553066852224403008384527789315537831083925066636875391813192935635800390172857583424086064689896783232159884891227920772788420312648845823049598556918883897450709646719085993644163329502340672865104028882450463789732281563178319297687994441220433401122182335194386489620556350480457972948149593628082132162924618281298102240080200893087645618628256123147737602567822373375579692680374701729884253252288877652083496389012839104631259275790543944705867011701206449440343081757682897343456506970876912057434160741676814459173846714514156353180797525809403911735620835829861081836258058529950556940069811033888394806206678852897500007502874852817009621035681933427091796312768075151679479114820615473166042409681210089379710723570702099892648322669233181767807411081155453276207155693681832307747147026839103159960082492888015340678004710926150143669519877097354805728845979946816515900369296213946548072050725092923831456269555794082537329625427344929887544721818153092426373380343137276164425033488599554073127026644201485514967494312281528749626063620273102629551427429239564121408826573137165190742110082353943063847260515205227610205482018316725049846157468115153776836999075819719606017316606690975578071855987419376812239521333978682061649993015361351117234134038327692455680185736365758276748804028412396077724535147987561615761463332164272244307822105382103451333963275374032897383672460739845170983604598199059700066190413426584663802755238495931492013747958297735505375725323155697481408020298799718903424928416107146771395644377099175763108179332835955121660502952656554445693118599831975754316704546621030919392021760146592300990010675520207020993918513973231043993687290304981955080917354586672734074477935072176440305933259490348567740072681061887128911599618406566117609679594247209590973957689084388613569727771430761219153290815455132722382657413785698845201970515845424313639324867684022019708247494630646999735009563312377371990737959021911148493076190260329491348811505592585219902944666280036877194315577840516069383539444294416344805091439044386260693260398664696648046056217036694646457951004460245155657976304367663268333193469129680863837821760014207239164385469695210886766394247661014797558318462947881788738808242409749417714835731861051021451864848387035611881317143997442174682591384538536093359011265017894328336240879676496993733981468479996245191985385428735567466468817630426373634984648282560459398992934109133725255550543996902891596354064979000638485254179958961679845191128293223518278274187040125053686415526659628586429941212344304779817465038646163647848522632001815109898250202060006745106466369084063623228741735091319861680871831915482082088343657294722244107958274886523831404187440291383630958223156405153762157468157032929538118252233556926574367111893620656474754974813780768589478337623299073783498167493712741892299704955069657906919527181663562006568716282922516243806047644120775169990928782183608674027658873986919230476043415393634475502704370759344398778452015746921060522852954184210381552914431225443796434287856281512626261251492362934262740059164532218258155010874259300545617258934556818871419013409299706067592887957138231353796159251594564860442467187083347357701717325482619537509670394327219714895304511980916746406076947673240912428746988495133510755856570968728781084051019345374825446913993919149903043676920643823238662768096532256927793531872906601483028402048605742123070822811888313962906177587090442059114824796975161624997766165720390483160999963614522871502417358630241082029648384598813454367451938206394463488304884664916578971101792978635971356642908423335413931832117884872317298001611544519862145495317237319220392887863176866770525366593928673618591003341379093364272353856538130536589796519006897706295087192518516660802102249279438569244895660149617628197514380435097085939397493234688336729399432142246064524594091898058984793833699798395073318480423031827806659323382598915519527360807573956026954904613479837340390831613366772389103936323092089088301512473554237009080835502012418579076219844893907862679864268909534452361319984362504006830225301122723509364257374986296064436018296876001659396548145567555776830477034018614130555133865006642719519442302965319840498617030727490964284705404675208615020520281386016791846779293336521976887570788010691668996305067010155301098593698652333721462501722373499097887823248139646792320192972422057853724478020227438223682306874356533468666318580798993044985962493777596256139479690431831535400224846608563634534274894772895375689709445056717973991752568022718380472386059946653738914777333252576608543813269781158576789746708299271012101384753477679502293648424618205258301682563244406735776531217563643065934662441615175753281719809172938318666680601345790110541051142498219175597542391942721652345094586361066911975486504586333454473128070116266346143690012817616917740003613578576634942180372235089264894869661035653364793195397097741647175720588455495507686015231473042129467718957340853926360188852401167085451006336097398511741301283417350271569466905402954918297193515862608767331715636384823752598435078004895440799254158062572361617386614224743800056410769194540470217566735128625510304838965172858746310120485742781025841434773422526329480336999920598691570045502816302068434231258510218429521042765281163545551790175418192264883942556782603840758639067549755289040707227004521826362422338456915710760327497484277408026761620555236813016298952791942911579213661089592867986176787905399039961917555383894191186819072128072275468512766295876164193513161639295155424666285637340796302826659314961955689607335922947955937082258462839343910837246922582266678962743392961126008001471116593242349889994380972489921135715857721634057569686293522273313344104192405851461147643129220770696195531465751203712402231630042483706825422249248672248104464076528759060664001415992204733134336208067480810711897055153347463502310782419851263426254944145315916554756300018332349365663740079499088280353047071990939339108948251611852225577404396438386962259565242818318534126627082319716450984798126360646908602871774686009199763263048489586560446349460214252137970654869245781613686035757313702215206362161473262812712595660573456754250172869455207076679152359169473163163054161161852136074421309671171769462586832143364003790305332447486158074702021049305416813529000523704900458488972014241238455132110463491710765798943736010874718673864585294401131804140572695463117267858373066693269098260907386321859719735875357053649821590316467048704926347194144414956832349674245462924018825697646328033272648743750686084713094268545140293214428018136571979263233642403283384571597204822943794038274474225011560816556724568822057753285119713449063266462931987606994624162699617818673119164356989974494384871370173469365831146503635730777096526835242464571309333970321002477017879237800112948057409758168400610701678215170911854429583608032054495755186975866278805635774793374020844331939709737347409063428748148380374302733893957640148023816132506469442063505075062511127852242676990717596056333612612205387695513486926803921184002780291633375425373402931397142945918576094045389184429273228766300537968959929297248448147225176931246626238525416149207682600016565992868471666811578262371993051110784674204089776848278941786253418893274709750458608525546872253729981398423580191535990928201519176543291442618904137228559664562849295476704758844991140765573819752900628856057066947579971728083853938716909979946216815849417477001070779978934506891835075617885493602655652819369270817587556042944519576678903937956621578956400014947120132052270062186902002135617398970548890178702092402152649126542894457092372839658118059617500829532439147239826797109587851827772028731856187133084553188486157570276686336940494416183077678381322898921981875353441555356603841158449434229979515101914483556311083568492535097013412582527933450668342768143475318589022775782883755713037406024083038533434882224252880309807044632837249769236950686196964650925152963182320678749923059193067590098424258406641240951507602907068250501159845893129642666849928828727583102064300467130374111518976335974079679395870616291064195054617826646741786418085810704605556290142784895285136124276039651829795341474691796997586383627011324145051894957301425552074805703901217466255615575998801401079373009094275195915401426784388955099654513499987234994232392696744569341756844134132836591557886582659628951023965843191060611086276278665802654737538883297059722132264767136930705624762911475776494305042176424120700956646839050705198706093031144554122899993661272957728772827062789192062890593112286674848772119863124582750221661384005204061743610438826269914255665918862134753254486064660939626875814454932301519190128610187148519697000215796967881648626242739891000752489964269400118962661839582718028643990239473617891850134245454885605153229910606790463686791316390438362542834736389335290706013728462077037897749541363985296590664665260586039475058889800016219132883966464331175814175817343115912495088952686625542966410461563511085201474156423431532288968022882438235283379545220015849371414096901702738826261246020812691607288252034584307443866488503736301563024289342173838446750852449636858968865607535334934053652472275870723282727394641636170603604895665437110224375407352833249062046314083041114711314464703446267153666701684378598531644854418873639104367725272719780089517428431799027353493971458081281326313601229940923931407842638117857795646672228084401524040631292265760429730838648010783142230159260677229458379738088721824222262815601997094542975618524960200780552298477621677413272233931377726202546678829363491632659906175639930417885489883841274279635250224417067782540302725064746475663261149321482131866211361934689681912377140340037071583422545506869288473622936175317824712657775091992642580607064172665639939662093838480003234137434582029709223515489837210855431890219546972775746833407819541987173189315957738415197407906508367357661263487837636160192314622168650366313388667378716407609349681186717959947518519399478518773914601026762000680393100769775789372813679627652258477340681983961834301459244743282066345606147327494834954378043617078983270970225270043874540628848158627950682759995523678164424569071564744062251164107226845194752385194189200768403708804089750379652243503852974665912787374733694338643959784615064575167793439179648185375398790355653824069228576199229657558879545334233961446701109443266223049482793525190284966090280521760508506001014233536145314485201199228613594296986504052016224796875933712224891170242122835046985612119619552751050866111647361628241312597345864117277153220678644628266335276605970014365264911628189426065818466701296152085214205971071066098780711158501496193809375648873177728296589764567264747596698722531211162838546339315038156775678046668848869189797984578958194620356697412266750924849353694270181412296302832012177382277732839824619868043974242336104141463432145758890047268926758471129978686846991549717105300328448806147619458844091337021122471632988965643116460792449237186969027968358234933156862801297256466673016555930305134645302295389441467562575154858166503554271866877084972427327731198906010933391756623690658164785479310993024831103180940976110418200304420648295412357455104135686698257416151518983717141562135745492349987896502879673000723915136517202570539960216033023978004051002604505038536469678362780320426788931887266334616506197986007793178586548218752658218954844050116341410521100031508322843797562000271133565427628779192461216505182134639255676427932553252583496556601868387992764969801745831683466666151893373569255100689160625797846617103516875894796140494636546291084621549220360810550444618258405514484489273288078303906157330954138401119211206629211763355877290965227000532269948676744513435058204059681500257667849877988967631224678123382998265023162199419276722197191573387676150496203568715207791628056160644259421332200673459796445971178918888869123056407546867014754909730032888842390985277060897900725353350864898266906459139435129071421096997843865375762751596931652794007472387991420598661370508748446174104969389711523789959651917901083541892787712761161973151596844333571760979507211392331795178391419445516751027693349756680816872206724534402569031834596916298553501456937636355642504184230078704738195298188626266539835534436793694030749819691124374438708198542216191981980601927023816640421886559342548759841532108349951209685531145911681502892608268640928550762371285363068737896560480564448919088126389225002780257353339427377449309632330628036320063802996390739841844123452687627988380387210038432668945436251108257503842369972428349604823156471255812889813028612285710957907944802125735136511680984098977575808133809436450897239680348383111554561210185752048382574607956095095280509614151024323617934465014107952451116501444694481223930422864329246845407495247365910581346841490785700033353543165368741255026397644675497363552136903508348652298429587585453905768667511175113463336150515566298804432525140364270964948044904799101679936366495008804940207403601517989307600559152994313912024024532690066211190047170522832332559186880318072102407624659103579214292340936395565794616968432043983109688339617067021742596764292665007145628102885677799184439992542985478206162565410162222700426410233601428599457912072316324989309287222051698969783183581512966380391090725928203928290146994770525808806649124290980647468272262436185871980701425579715534080788391503583014826441451515126581503887997539400139802538617686747865637804956423395260054600028036419851854027059410075067394796543691622841945622103438058608525222695245896551160377782307228831953264114380947065712995014808967579479357092609712833987105485496124059287633639864805263743087913676353379531783999060320350274928991358916927200849419085575758323716987094375336629769242500828888855794883267410789334791770462048500692835347252360847951177860522134702303465986956346378235944115220698868457134473539423791861386026277929012583078742547739601015399727205661156150411466072384800180812071218195360409086793885811040329760960847988934007311745944306083550415855143502274566061160212394510499188776951243025551550464774154513242938359778859179109143895584026580116373491938150625072705943777918881851409639551941084101488902110059868531341465420539125583059891808898115006272797434484572359710013015993889510381728038207377661206941378170386607415868278287223683296960713666742938861482461727787584516845889361702123783234117590928199328403641640033047903617432874823492827241321784543822984600354866124401103209063886541954394163548154068603474711337333857161593605904606335795660074209888818082406446767262452901452877445458316089556486427108043999237365237935554290306091545252101775113984197435908080783210865826636872849003782463457370627438388337338566744694065064543984104496799282131650829226636601678578003840475193872472579567679066315408611311794403240869285608811763479296052345301951942629600748221413205592297773755512508316711785895184111999745297148976718121599322543811603935836001244310909710262790523023642188942959572872442842983367426394005710541107118129654671846307026687540257418635861247993283368820801758035306556587983982886990911651094902639744669553646088530570987923917498711668097415794867234567402076335111315863614826873638227895306025634355021770438480285761435510802164365874289358215272694127263899730855165620262758385261789369913341079229020979358975509450297731498253494105180897857263264601685981586516633660557829665534206492738796448975426236896925996421227683577462425653384607990779696474973817070997937696488295108336247951194212545000001541161960417753003968936758221164798390538821551556889742986224116339572026890723800319930743892132684943549498127293951570239223010822975778968784916798428396778898200731078089156580674751357465372720763676400985749354985009840631970116755681620228286739110397450027860338543542184586305009891572047844226385734698313030468051384101361846551509419944798631431028564016699246593307542005841394185223176046476092739328437276498074248043782880473403098687842798999814480223375581598131893344202117599984650788286490488632007668126748090851501415078209458365927871788601622171859766945226594675831664756982017796601303199750232744754978251839641194009998580366188977612951509245077459242297974334256059413302687278002755192790147269338652187149248676663995552772723802556488652446702567966268201602847936334600301949313560602925455545380328139636416802117588833912922610753575173094893302410443047723646036740584782692099316251421997679602119296962225770666124904926896385549368440838628580225024436199972007417216743698549819639693965437673035769289739804900007013331363480783787916516848702489377408219182229082557719425733543006725966989100639282389211061687061095282156165845814037165564172807722518168791843999404384535642730575273569073751527004348821299141673879186035897992319633785774558289895843765473211619995803416573422270597540119580381626263393704026735583959988037777324467005447850814042855019577050328828343744192732456905558475816726599902287523533227943160883530311815364320165423805793067529076964894153958875253865586161624407795192055958035697840448465775984694322573416152007721996728215649399285165755599289043642002072104218120230084741409636891818992730296370709236804839400475416535392785247656158704765980535813397127871820627138708141139423531098719791661198039607169866645865172996851699312700621887170641788701858738946627043896520388573005281387522678975661037329795470842818493032138005101714166616188989791258256108306561296479715202981907429319213824307469062351564031712928541724768365271982164880190014457628983802098176693131284431807535523798948772852115621400504357403576649362198093083861866030367135504286848460375029159839448788715739203578872586843107746461371817195653099245108074110949010825800240841659956582679497887821240477203885065384828853686685735944669610999937225323345582884036890020558794058626431893536729571597405492599966790642299402298998187698492000088891938280564541723439125225297790132729856838902010543829853202908520249391073804732800747304916679197628616557815370046991960413339189337264988838064390933635511082998787150629693299965431078349445891343498393763755675523498082700404104028352533518114594272570202534107441133529469192001466555741876404087604425616560401276864552991431480025793499885940922874594674102045765126246181418717076075924433714958408478420902033179149175081820279301130433033730972007727776161681424101277346719620741364914646927622403859150490771305115859473093647422939711474985645162542141352230769442308710281071675289348385674333143590915569596639850205016640780768120903302774093391145031273844808087744561583332692394534797635559353049881329267989790784132922708744375391915096498933863892276661648852740845981399846702323584939676565066042996233682031166892070476289188384623824908810378575622842100227632297416207429601760067839697690455025426651936014153132935663774937341268299273459095818488017887477983653073298115589183571197884443767918083365676430701340805308980832197753159223406159493478499758481136386934810045178922191651681440554630892512416005452790059713999225886317731916425437670149104014332178580484102292406055128456672932292310668761278948458729447513008778269293995451333935752858618087097823969028130656747672624000504956495430175435502448123560366636201266112723145275130063187550697398982229284343561525499006657259500280070300809449694919063509399080847448053415469844570611533267040162283257007627294733473310360485636601250368096697305654050905120677730887001904296952647590725379630990411970726609832259442785184679379476644668685860536949511386249340271789733156689281463119375832471762013418293239875394271572454506432336608896714088833648923523381162658480662256214682525835458741352054002363077284453145103015171012560301799058729454458368782647722566013250058956381635605596262396876908887952121876586929718162062742325157536631572788244182619956501286229606090310242872646082789498655721576914711193507276854783112242228383032607216514132266608781239513766346222794500592977923403021211940126076608281997095812015480044097390166710216045740965315362500095788922895157366569333719731233922649126774232052214807721159697922841709597864152113523603714450011760248305944985367916022523124412124193970492360737431509299816215592457818445203058877536194843397431481778945324611475052248179458019357699309768191707841411946178762399449332556192293200848516213635119167257788246777042736485175863626318854957271969775131706038480801732730353392109434339420496852502582660765275057785862862676209733425057225096899112362300467430580529332780694329577253344150791032220319876569405045426740095076604459002662919647482480386799371044445531116349207950501422597853101591415568442676406911440521684873058460837325086491081699181247597630145906512858662832958107210869281050621251777842756535303283684337053813231682304453410682389113525342211610508435759427988581212357302031806161159748549073536587566605081697364413208323096276252146850725796435703270483729510574271096713477076928294533038559864941906218856796286418414718508406867772838687593116802502677972082647652635402943136012638257951599977596834279767538856403915711431759869562368253195691064830639117835899852862650659900585069404342564028721792147290649319438052466226723420102956341861069728219553756166772457478435426985666164391004899754529722378483990747392570069264700701752190150491935081851156728052956989719501164552207427642413158923453765689503571594117619785002246456976434048799690147273863057729735751050009692742913045383977849032480548854535035856578787473575436667429453150220026109626618324568614639436518776528926553579109298457812911157538308594531021320025421335831500169809554726291805180026442935304497122003351096700975702687656054004446326383394208485701292349716405516081865432636204722413252398210168029486970075029309948602865196776046818125684705714203435008026465709447089367117001828530861191895370864512847744852946980489886983006834117591527878835837678157910880396251947606649002871560623883364547358930836105413493169786992747607875275784100797215668575663327265872292971686133183688800101906855695902970953821660811519478566758095483715456840614772952831377691156382552654033610527235162383394148984033846339084243402323274331519924694804761782531127338447818931533340871794084548361296228476982741107798299144922162507954715074697510575451047712869977946387632632421846783290752485823525726133106519221109396598721737839439086653873952814491995042610069008820817065381634914859721424072749262854044050700777683543403094315428374298480654640299150438850198678245834281895783108826437484408577401010024067176935011417015769463422461488229875076946608132835120480033668207673434142472294702367313456680562644143245737676759960882766129043057725461174331184863706630585271901370189613205434065438701499206223734110381150864811775854020871386057268440843885104438609078935157745202466345917493989802173437651917224373272981116362807522749294514992312220567202266351513378010447727390103186566857356456728468484424476539648326725228675730675711507869197849891862932617138114795368031815143232492857207900575164834800851349556488820803271976631971052189145192924621731178831826824959966773845802762583374306912919603579506446858121824955774910681300912340665074307293072976451320381637949555589456516570910241259287952964497983348367215690501912023429351230128157432053659507289642515622534994010253288014033119769212845588936071378622334713005137564449416457895879350644667973015891590019183604155685298173921478178426174218019666631675595183937143923494345322003616712106208958700053027321833692601738822116025981828604606419789955292434079003341134567685369965053183513887727622720764000288452338512452684874568731601695825222418962412767797684621981093616415361464536492986814489526258922822996492885611158392273646266505637901062582068244858558315235994642618333423143256929310171711057372990520686710105700158337807154949079379381578175001536382106798156589449989495266011931583253929288129279963050849434686324307359303586561595326596735549250681064631111302007663541900290513665001437754924288645609860574688010027346964841987350750308996555167468028789237076615893129253775589541324407732936430352065260968619749443016200244150309446555723279508483809431008916278144912975089580019475674288314333391164102760307840314823791630473847683946316380870595728209755674909095304807070150105698085932262574091639317619950954358873325424642495969615222562094964405459521458554465246607048501162869336303644175104355936180225346362667362886121140936946244403988399885781475424053787881569852220995969360358998557047819524678340439587206733184888329275093626285316070244007882380262699735305604104137590186222241037649148321080619346154468871673270902603700178456421011487412729911794545117387972339435163142765609051657241711960186916413072691302034093437916113414416489415107427527043642140335898647560820650937173434385323408919143476393037982141696452143093738939643149024687127837653669068711095326730188832151438585134376125546085471813265093815409723035491789886524634554124106925008424018451748858298013287104320669089495186127008867386361583151856127035955597923490233083991638762508620490634059711288790875491352301812338850603949085638483837052806214297790679880496469994917682080551592264555580594503948078779830484803198821493017526721896616647207525367650698759606953042490474816092079257643193014206014162025143437465109141627158441575142309361725389659121636198838958878982311279218957502106498516272788377621236788816550501912498253868412776471720775524494914857162562747077760971666511076687816036478754959288344360924131727794939044129900462775213016418340065484223413775823181727013648619332128225083484454798316957279038698462586626324979122370837358083232264334405062990610512379989623964110715782505882135693642622725665566029888074098513944809468824811717973635726446317027753774138819135119738340526051920132623523567899039418399525819110565495496042819649729232195927576721257965089496933066360040334866298557077845867716966498979693773594649953587404951635774373644184073576284325002740873833655043931076703945300617077444881245836339109068192177538042271397667935359550667646795141712951066903109732672040969746121898674556596846775862814045878067525128012299543107384454596010991380131369721262175240248548427500298239205151509483006554876783582409199212690622308482238597492018071782671751085926191638330058229751039451011935269393147828303725766639603389263316345414012128106276389097552152871895355358569008196254172574660205024309388104284481244567255732051155305756432664818516423067658017378323717966443219682054596554307183384921061208695103123366278981791088891794211043618570913482412515708374715252286290408289846938476261849706876202297039478082985066983703149625901178681591556489152400059328300878070196818811677460940543455772973064476181970910586143171575072873097786227072119728985882782171929893243848825303439831264751418839765419086634340880668608399548503019269141306702259046723042215906603775675651840016410455268700565061436922632700460912276366184617588646600838942252139245784972504300911402015768005411241875374322268997208892964418006715059919420187950300863696460574604161127061332006122211292578040858502808032990776913412736989537510420691028137549327451174308849680999982557991802403153376391106786420585059003789471805734328608251697690110750514015305769508613232472727723941165719136468658687328380638605911845810675528003373523139886100017154914552710803487931080333013017956828119130855581531963171523043855200281574428883628408835672845498333762132773629223460107317943008586168031705383989476437234700824046490508378351125218860546721219752458059610998586903288093563602588420238550943351259269851596120931801258106343130555775250450319187661945839237190177723856112809788635392027310999515959191951193751362655890109387360046818986202386169923506961246354379328145638669709194433355661893603492395458065065972299779681355334606547601596260754009485834067309458585551375625438911643443481372196812718363431637326100531906555237502853474992967459462449159935238874027656636501855401723251649186970634660443841601004721212020584067713231439383679290836790563405273600415600209029582558016945661530570928758451415626589551945752475333215817620270419296675039676155275197884667964993599205721518919764982002926200075831928303676638800652441792371105732321026554268960780995011692341197718083589240417848235253831433092524019253407037944369614550200234621909349758179481752334223807820675576682480690760960887207867250811309014304323868168674511966917436969612578757682909553046851362808049000411260158308915831531421650303615343968446735330563144366862829661615271825854373913527839770666739379444482756401868933153482229993795680323532355997954340299848228690934321034239512983674012276209773956286732530424937973731303584825797550618767640648789266350678852581238893997221299601708691731646102556685899724714199239444097945698404335540335344144024776063491985547269996094404820350569135093461768178466535393829592968646386287728185286043519006777258935077055857160609654092336777975552796691532886932666912858283969196144500632996558280280222805392123576887063449567443145119260031440380194490658323557868220721489580059978780118232459759180040718031431425804258162230869443739395654450622687169099018844533091374291767960741330613893375328444285861116068958510246319276550652676706666666590211291382568277412149166416373608756817803454034720747663614741826582373351721775139544423175595487982145514810462107708960255137504368215681367488193663326087178436577295383812684564300107455977538157125507365177250748372577180295100140962554167829975425735738426755011071192293348005924301904472568838743501043796122674274498417798407832526904019510973901911326591331494022966636049130614637139315836115325974269526285885297959877871302914536293565590748056038930803839134566066879602466042368026863845596532320278051375314946989835905438010306819871523683337585874839024756988342763739420415471908294758465169161198987001198519010826370614626415619190731664751674642545175964099653044050543580312545866818019837307306226066553674153898720230296454628528083658427281702409525598955399957573823299133259080289381728589499829868467114809340448515375674585222125236441267457303074600068094784121674614957270760709903120624714087554207267578771640905025916487275491456090102018076867386501031941049878690769491965577365150534870896759776129397761820753749735298133612698605692394383599171477591833330655371400538565329407127771023888027188428310497484149541472113948347793693866869124591661072082790986513937915264304598839279431851710973047105440940159831057591798895186568676544595539812336595479359328393361513361379238962164459345970840722580460032530142929116819542548968635170129748455889531631898370305021577106131875461528219446900448491094524832014774078804837169021228915125842748225578378729541505173120299350699265917865632790913840613401762495847049024721834979002136167832288582503508796988899009038198104846669028946555695606013736592093988110682575556005199546542035387305998050199229711669042667067716199289819535254937928575312756337292407081356343867685328693550365383562124417695349225462901448081108330932881397734099438414731696084480011033105801625399693024931700755906591785282455707997044867635318127348630962808763597697511732892205424039887714164493311261457798622744161517129999667545511892433493339206783952794626705207567640253304356338229982099838791605507397602736370696693472715445352417075900555446903675165860579343343945228221385059604021074535704106697632570513010231073523496744067774585467301521573357088984523103962895699746775986369303559772596833196036750911831767578450817547496758682573839256231890198356742146460588144027679397613110612929543449763660747086896690502497836256344657264878761612281721512553290371981294071666055294350833348852960983448785484592569995358340520129063326511310693478202347955934997420064538977271423838726591807590373344870175623862675135274987988869592441702598473235977335184568816692995913711146875062561958512221587034151028772247599697085424872172310108700145115580669850842579910578687745362338952015061367716077160104424040183468631427702357107181567976163400122712892686120769067786155351106769201549363238407027514062630779020779910621704174345287256091140477323743478775613631214960290525886286744163233966198520854019289969790809907792136570793698401117262430841003634980329592745055362789452610519793232482321232809970674715312730878438288337823749206572070830051084830670592686097156277684267506385336224018720100788107318093059397297174867609726900018052058583828721931786715603253043570702960537373229650655988327664058766044133502316693536683144724996945629608724458663228959972391330858578891014574795595633983615058951534150979577854736065060025097004001996065678658329406367768956562827648722216816267841763201401105695747282284786976075636644729780630898264021073286858637750155627353842614645009560285771046544209053281897492453352250021012189089634973004070536189644751743780968490811061482690236318505688907608097172854705278777962058736836548195754696101986405945096718891617943822797489319661890355726964088975318956602986133940014663169996210877890810615492003525126561296273116466597799043489925454756324245669826725459868680790286484208778396198290348351514993987470651234941389563400826576165127775225177212413949578290557037330475344357123503729515607079591260524992590802087392058254680909968945757382189304360866461194326445940511098770755694270775138654884023476274079054486135602200862598028051701251158796718845964577685779992803961113822753978678597296018928908380293454955590703816284090527008885277463400843988029942069051777946817015256921886263275948771036659292961268829258721239066286271570133257984884989454726727988256193124286900753857649428890255703229689904951831947944039323787950534281804229021398788824033179023874831629571373248917678580108434484484605038500577389410056603197330472260707650939123911066407980563588845847818039876782188753170240353860483365342755234662209444219162765951457015895488275351312201822708423171912552841379606501087122100827139560546270110356192460143342967413209220131059305888520463631102603308240866637278740570562334604393174992617043828186914432211863446461515578918989198171095352419368266820164152618675996167184714818522308283831403163915484742651070781423189744547252186315845846373375655476371182030194315334893701870927958423644096717483039180147700678836818177201249100450797924745315129215632259081642150736425498641711004714353365669621559075301587964648786222249578212435959159546638257936901068534112957327609167606936608002162616977107305445356241240821832368870583932339125261326488841565158528509709767314334482391336715395253777316821178906961297926886000629502614128495848135582796208357557120444482453424584888639152186605553238739539632505576903284603196847462845952784181582534331089413995885876634968642229917186574823294144918448838817659376125412396684258568129299640411210677733417207372079706910534837288977547831234775275042424817453232525004484655517092325736374118985221934397537198313686389374928264010091528111651721955214646780753988694452205253550794445895494340335934881132731585185377748097082950829781808725517010516742457453555613886783649304126966771775664431940316222762118090450930097904978690400743215768051570111097424402136932173743097364417792283148341637350753207652111700696147031341035170365281408876570038785181829507966395117033970917756502886565732759335792938961971877024027185743994422542021868056738682850714373504498117283220480481359458768225890458386511318007283894199035711414442353606486498642033669312888683127415381554044388450547495126038723880483664550712127861955166349240471099006464173357131934095243971036180442701621222650893646222897522574749414232559722442256538576352576824665777375854667655080353408556948704426417374559235461511278609136942032363745223622503990975620939801119591315186486264340728272772128579242387592621495503635972392107940428079777115708600070486208106132988527530830945127386832340321553197840016242839632672436170378330457915816739439375229238513702117950836856825070736165182643352229474977481891292623074341787730929350754979578422908388482265221399672098652290101687207672551809794325257680143756939897177142961141442967740047424950153092107426311044861272699524897538181153016623415861967717844535201585240781901522926190037306694561134698904098455513054039028413907786757782022481311493713434095355353442678505824532106154727186210010272369526551571824840223700263982619401409789621389229036848602928431670805632407623912244359641534625172963583622549551973482933186492426601696166732526762700285650926980782358586966161283431577092625504902117885650733025289456745671768640068262072661720980671214193130960014251634845778464754373670503427572059597785161457395164687262714195730923022057335712409174246534036662600253410589765033765235094653396048007099749118904367397442065072897767541343593644798655596726946525341701249802481885418994359730364267117924175171028937370096397143883315542461924699811943620109467084914729807763775108952622520132522398638481640510193676274868781323577092546883555081039258571918802148147899211442399396366590318362716248803972454427878086389709644018747208047046878786365396747531091757654245261557000342099551541623221468076872227569698764865505713162992356808800855597779590339147025115173781156445781403409227481381642772786321663940597173344470059112823184227854957185065412867597254654846656345100910075216505460510447056483584255039931278974074852661538587883914096641540989850117143885334907459212982788323570019832098679993987192716696181096105967564413446247573552003000899522101085889080047927845131767252417481359532525201532421607560555427573726836441334413175813425962655552926508792412522049740282472959769573927372784131189693963056395261381413700006832544617155812142377333758118888340503463911656372260629628907257322918582891558879195599223327086677802954536254654331838908040736916757168443954132094871930313958717185171956287961962748873882766948342356871161701638402893410990368157890557840272358169488742605572292771249898049039320664734496225211408236538355781895999178020837575267336869744117936365159567489399669073315058084422694117147797447931864394614036536211623567231581794182238066490977410375162299849640476187422474304424652216260285262718902808148401140595451604656947874744194182169329544650438453675031640997246233096961849603370531795071764608247284421249134145045947451139078812830873164191130547709681420922700994734355095821263320019394810864791408913018382573687235617877715533518362219254166797029483986341727495581452619932636859592270389738720690576468141947505839297754059852916796837258345067899162332976852696268926965291526293841817615111804352375673922417389886596555626929748478415844057534058658502986368453095644803950004579407508717482964825110238736015182735411936395394802396391369458059912568273300565744077109688795952030016898131847464060152842205589741091668553747453704675330342396398722452635062564610135463836547625874603197714912487529716661873185552130981675127208364677104410149966612955450983526322529431754408765490794128347555807898881889483003471207685852707657987395561598334039910954135597812107421543198205585353650892688658621194966169742159177785001919187078021372108304079613678772429241268326191937327094483280191248410197205481554981038867667233826696736754512521147108875883437680337906326723207492144450296729738591570982174589241522272073298542520721041394859033247832519787806389178632073467922630210102550715152940970396719710172995488092441439543088787207229655698334568446132968093908373300982201889356233169115244641588972803868265392253357009938475329559277436712412551018622391392855520496001172126404843389709614796391789539394549534645494782520084664912085469955906553439343664803496942317544118660861033951918571652938123535008666067750860040864215547595060324925497435665688092573239151066953848270945513995755663922423243986710704587526147787895161034791074629402575908159165020812027348207817765838472194070040894510635825282680912334686955918340051877073228415022652304423740693898974773917341484508045140045450050647404381617432705892732577794591956143372827871663544570619028153710097319398446934331056941208969608138479515768147822806126984676707951107289062766458914799474590881706787085787537299837646317622697367542479596329606325124534171892565609666137067357774701600634177382269767499157995650688970498130896674926089230209499686737095997129330254265210348878152415673620019889655902912989290054185947864033157425600587059114484963924215985212305270028967583396138896604943540924554817816495020707254786641565223068799568828709731244496867680990990303350118064624984708482174973974582200113814419067385603660392064041406173600711419973739806659201944756728417592627385117754271002530277554865762409262373421638639191644559587871731869633475175116758124327624124251704045956955534548876936949719459881118160505621494603492124916504493124980629870914057096591467004767467330362924695764017224304408511310750909681680488907086075822583089207847932166092158375175455394953539943265176286990253003653933245371897290439690168151864201303228740144022112186361367709305179326185502182731552209859394146021756292708897412833524178281753105305845528511695157541385653053596270837501297469417468968277649795381676425371110356251257859848918356678012139546816163247599574891515555151614378909026372836553106967575809934199114073424055074331845954226052913629504730981965495816876153048499710574685792636662855399182227916891256538015195964966517246501649571702356703632225375677125076969193329858008977875892563421393284425346185124271842467231753972800524019686802942176725696006535142901400405710212038157861695715050753477003192583010050036721719984150718184730697010302825094756574168058846487647465894867846689175130547299005118691052064957414013975404078100710126199523412715569285089638065635288922454385867202965954101842363947121591691802734108286672381129431074954991556361914141415220015025291368978605786249003976535048129826808268811367160604632458379865825617216913566597319686986778893707279188143547666494001440607952740884010182570762464897227457395813484912883249160177242311322597836210638357760140447439833957413407650773861810591410392231694377741613819032505723176999422762740438982712418694423506476279211497669733538114492464036879502904679469312751438901921465191761072513038981656616660996954269982320344746196669032186827165437709949408549568240543087169301390853256124709574469119508120765454712740315853167460147544132955182898456388504437343016774568099487616915681285148798858291750555912660897942640405934667730113686719176601618530843077130526882448120869299098800116942415379411359702508968383551632473104955396633863396772699883002414688335297683307139588341944139516643656149964586314516839059413522366969479040521306421640144600558692959287538146343252147229285301778227353608416574499238170111885077405134760417756775211367157825054903878804180537829463931186962373499553052102730994181345321660392872888613487170895547727148764196221115307977970677470040112848023985962802661057789475018240374983723337195041138268000052327942638975759096424804461790705128145559224041381695431464679000346643069564698537002140225654789871582076889099091227843833252624878106039178551155092782334334853567225574148978990761516421585878263813165610784893014200053460213748802468875680673432703622035161855646458904328092480754906494268172322369491541479481035413661902974938261131014606560666888110250351255716905964366767167482360546649692307569991652243417840548289150227586926217741155767385155532624677926579750546766597794067459602923333880028865883990694710275455520437162276463964272108461111642980016009417402425742128985625931041443932790460905411511116086957675491784015158801137666404915247303354989137560374251158760712726198848219608196549401567033222105285097222711308581615341145889750418221489760891389550981209566829849454768262680144415794927705117339238642466673612823510239901273723126867359025125564847301007452339688364282503348620703418858326379613361482970387364090638218928287624263255110258406878771992078594834447251570279365005847476580085366299366499799622982326180997320515322729651475833227400315490198792499308638090613678460801413588687683393758671498826757467781916387453860312611050988068675400592528139567019155018263889845471086397756269788026437178041400154340556808509820927378619043496974868257412150223180743845772097534582690820342585134273151636106061496642893689484291277904530407208953263050464661393160650841521503555914238447482651743770348057305194469700738549145539361566691046915196326976945589121035582030907471723168273461820666404106987314879081348917422654585593065022908083240413462770174912064299496234457366774971833190101478790456879890137966111549739343530936750239886745437338982533587342624603324864530274062138046840915320300372252848958769115281919121224280829170743081413083866887168151054591654653007825800021540488084409484292549439695202266526702411204610575478595414080177947378040087829992499088717942392943697793105074123283737816709743413151056930038341418854123219814720419676638563504340617086418231924892264634689796539625634585383391790174780370088241921446294336012786028341813197157894785070265979539439801156965281947989708392710389460099513273538595878793250650257795526122843547352772321057369741701447759497669591826966707860851133512668252105523824271062466182780079154023762507667478654055822470645249905102789060703505269588875417606913761656574477702953101202897094303650247691827334224846287819939350142137983974608067570169725404989790306909406878327435144492322030324169796946634707410510816931702815763558311537432181320968657168526994220562415536589001749061996985726558650712878399773563355138371479423215702928552325232724788900563581869104233894700621284577729202599631105951940175585908144947906993902269805496032123152800936024237454196943622943593344482931342626824534272226343843966765883757778449141536027861133173657704060553296920609347207212637688338915170563962791904934916337087613046674628205516028378077424759841909642808326878669150162574591879017225223439717744768412422372657477910876306531095317070974917642283575179339417659572868925277898530406249029557008530683104082762223739813154084037447711012531824341359502731928112321144983484896365938244707588803642502654048710308369702738157321986562760159412370467460827027363830590492740004678952824043974590865136808402913318416236907011354856785556293481360607353982117930721839459283467072040457229032232864126291361219003787933238459244562233920811331728763801466027465427400200860142598780853441511525181261730968220890291363926978039935019329860366061027576218590248994403057262776495759407345813333743433422176763382216324029660186482606005555692174179651980141673948369232592349101959891079666762627946941926127904428505684269712747793481093050936192588137218062815348116021862375669677214431909208635523144219999329215890394845941633546799799650697382949687827177500934818211367752806833479465737981089973124315021851946770227127717366979349867039883165386287756609950192930618349202578715061501158592802275115237467446996920720647329453229391432979054813862841937809506812610741201346059210906710386684364311936317651436003366909211803660059849322874956659512992774168717474063349399049456834415677346864659295470648426725822217620891655660641990713600551808703812890062734231400906338632070707281091663701603235910044898488415131282012182800997547194737592088141427215616545327574821231614639767257937073690099984306460272675157869674837782573198439263038956405798248624820026806477929280965977422949669692292341675637964313991718591950876201499933376538879103570701308483707117437154594935322173848431240127388976996539842809838502466237724185329617617820333203192494983921383244731032060489508185377530074223646099742753735274220790389482245107745312491068472949249131384918847049246597026859325181661794794593825692532687537087983437413206684664457122427231374049003094537610485847888996916699802813198536824919941044901947678934841262971681331891468106704916372891492923365416530201239024355361213432356472503378957001865761507791081459502510568149494451268741592981886820525062654448308058723461294928769111670512837524990166468220522402162566925046918274180590615663589841869949489625496875775715453532251024595268648667272898565426149969086352928005527597713163452498413219300711947962997957965864010360772455360088849526731426970225514475216956995355267626318003666514381543326485354728013147477246516184613869708957464663956818102889812205818360691820464894410353115761065451051071543413664973272419979216394970931948425261018524216270279011107988564789573735845899973916461639446108962007855156770285655095065993772566582366022674169843967253302313481894463323973381515266913547286697541112610008962397433422938586086657919713025997708578901461951669293169415558246204009841204707432423938657816751047698732749665092339867896961173718666316357316211146596004538712594216768676324345383300391101551678825001605734933013195153376433248989243760377465599653791980686988363993332466571227421010927321642216724316081394573998372994138329317450587195214759143546623034666262640424727217128638716057579688950203544968378439742737733556946253283295266740562143706916771494595715779297679969463632716375718216893704092238778163792279278812470004148409259563972260395142608896880179355120534267940944750753492262491597393124704734609867426998033026904005469807403744962642808592765922676909014962959952984956517253414306180949094635043140591633198465226999305055058654600854637511242942092765406143439379539808768411466095737350729534897442808798122347283511120511850426199981235994908112601921171581775546013813676021245679765722711077818316743981995394872293984130014630689186328783710036687593205429211834846016278953549058913611298791580625825018235965141976381489685870861942570812109088394123810244285233647825357598112686394529423769259534580825518275661014770255748148939236670724730931003310046687351958418860829021980079252915201453520052269814232032972868792608666839139561604614994318125321540610466582098482772977921925915507378337971635674970775999408841569912172874229993806360469977793714249121641245875244630498485784322371940811074650751656193582681124361733795312804807044500105420459922907917978952299669629730095567197938730015955706485614653381264970655774695835083604715097107450002652507655913054889180260120567835258989489483480998436239591137059529741891958555444253943727885837043097723704784379943609106821002037106045380136887773009836742411683748561388087891833337311628643298955379998667298361986644434092367854997140855196779396674715993271186034533479938283625054662255162047069896491775670163050621045737748188176251098132872800322395787473564436680476814110939636608444950711535898980290647068097117355688034731061570081697100090718366159917491912289475530088971207643574609921986190105302450274678543684865353499437292459248438400657734145203748388553915695062598931381183387882923006260175527838396664879742712289820983960555541050169464846162689021792734666229659233502349032952657446143352324515976225480666074070016595006685043982180878319603083725942798238872083671745661466949304406776926214894939495202285062058443790020901627445817909257133471363989100277393612314625220995212011504214787719153581738984247660495625208999754058209879383529451292416751882661470119307494524516073460798908608788564711123500021606682738069624248468930575258995100492071635198174851145245388030275661044215232837849749771719483627814422795544717790988994704252790061422449889582402432102684863275995981189158110072126531084713183595172809180595722019546035312991402860398694228418498489321973756288121462767367564479829370648923073333007585042760447883967563995127307220765649326721841960173212860950135511219380608276293310441765783789051831498257738315876509911874919606883720604558460695244028725143629645843195583824310701950296984902492445841034307544711835237548529583666745031213382690725257176396629615003272233566097121686632934540383094996707269939508880096053751158062388444671408826088037385998252260846256115679995872554099784908484971304941931632257920198198581392394177357087358806897853454945627845301642650972445110446457769567342828162234047552879763079329155118574990301911338166191423749602485397258376226883264955824253941109650111013547837581437619130995392523554057692019813105180470748459312884214003370423539953136869073843400584855222286669137235623367007718056790835755449231050039495877845577800475697109101977701606242496316835543521583670625244065863634619348039287430303553670363959214905180387906998106885088888866803209736352556814275020490520922033123028137289275078860386585237212374143367298933022923952918310942331613690133594681409655559336278197752201189659090183611382351238397906691259431272600456231821262347047920363959531243627148266975841607106018428651983051607949194014961365264476819045097859826404858380644454848942081431317388632244982391210944420732150485483147504621010699683887838316010140360404795262910350733553136734432401114742412133587329819736846722714259400945924273309159926089905097222152179326557617525488953220939583022913509440114546433339880710501462236647850226098261102300068220654292362098960425668157829264018210400986468113169721405589365272024166116790217233669659720872544696568087790271362051121053449966001558267950176109836531722624668901352955689496641679145357614680730167367929804592679907583824387493327676345105288693685898131620218413851539546362965073808772169096924509546055851162763562741896200821731449238030802666540405674907504824570596618896481831960426019299603411788811148084770679046507074092012840296834148464261526374571808805897095619492748807813070640700107881713214279839254663610245814027457971395155496266225481578661065245673412390128119865388661760245299332394625105769930341340277430945956932297424246297675805850700890134416971984226990719593104365728461513743131009527614095023230270215114030342938115862703617638918376641840105938878589260896448040083356338059997257012755144969879756766670346559913297388369787112445789269240901058329854987472761280631184937247123012406069767250400814063550366677285895298353498720601972186601788392705070013694786283216103590339063011558671321255890549655256811389647637761222814563143281231340606159443958796868552517281921809666264504891441261099539914902317245726944831901722720576869245541275059592164294493047536149011341683367993140093009793827978710687454933565865667422950373219863472828008851908786973443770833082198836914673953325480350755407968104466175227061621216117650783247295862785290936865292185869872316442798750638930003474895290942246894981544601484317418016426920903789299713691734844259486148778960960378178835522470345907775993412648889159934532384701291031378729282787874722659311282318749938081362618194360624092860056702055550367482238360820051816239729337141582250519640312516657592305902306159743090070427730581739686017547359438954810516225923638682581264765499475364664897742339960337332319848644479616281848765042769272314070406038940390082443260428097535122250993148604939284991493206574293021459266844543521966364066210582275237258650559106520252716620001789503452115688736617490907392921437943419569288573816764551965326513244034856391710669378208498814122806732646775021177936372214970702036463520535191239907575433171915111279619307169425452900951918015499553062653540888600827976994190853327545204602830654012970102343227267318700876008982179048637591418089411797625685442638718663528455033849445790638100573993386828944401446310289310525561710358620237088410404649177004860609427496913132564377655487652022991256229864455050650503375642404925433697923636080348043700695083838990140459567901933229375149508688393194007217018036104604831887854513931271839638230575859401649693509392246695815425200312311809291721621455270515038930808440116166066737257943292640346459006640587310236695352797504036853426071584646506457998400816655861112556573739610895564094083346961429062863020021449748008707014813459568231945323024967221084806409217702950216619104631725903607985426717051123738594637468760911870727598455324419309627347000972529545407012406361949322214751967401888343688661915979948254761335275645081009462590869869097747336658705048067744092528050976344570438610556628277324079360074720140817339329900584523062657943618009491495861879836155331380614074191702114177121796947055395081176144168330058217171841722294209750491096687513286577509577110419185445008237475755555230674665686388964509940443164080628171629950586235238056258928595983439131463281084991954069087370335228025632208400525190245708429579689794383748614672084021875219335614700655431281824070021794496520243338175472850440596567783185890537207159176028174952177262841801451933705543812191490556121767109765450820336442857655940739838231617093146220814401185083447681883292835613005475896775901712987625955369926438330682823345607071929027761777152836078642161822028914956960989933551490895299723630426524045101589215046167318892530820504608611878645947916019406859816533441878354068091419635071904295442950607398712812897535350342329997380962503171697521639800109319241728445404740008101415341192989986835278105634251315070619634858135745427244497599227724456499939085305268939880912844648557285691736525960338171543713121840658816278329476274743883737103565614202235616838400647157924374272250389744654391117696970733976306096041346774045452160426509663377021380997846574705729541060406691729775366624182469170394070712857741481346951790097344329051325962948400328365188960435569664147592832293763123660962041333119593418390404150410838350100463732687153082583663860058297139774343837192410805670452059800124247136891614854305566858902854111405279045994073950186999367601233328203156883041157868919567309090881527986938010706768951211121908285112736286691584113494010016200596488386502639118890373225397566318203217539854705310625373639817019989383517818226306524672827282589545809513180784730013983385090320525910886095626333327703162389519155900589809636740330629458342166242886157462311890986669428295779780117561355713166420181279831879176604957350088287876898835623910636826788804150546820501972554110299689092952112851151078915785310030424003910159829943355286139019802888372426595809693992283642997865270893952241333040902362845227950576820276586533555119004690684920822210450636461527950645804130567386404805774040121624334105992564418532265009290812698968399016202550950923271333212500374397915391605640768977829666157801887063385823683927395982372683483571132103419343815139716555132268190282647424087781757754729414749915107514131548469852006823455734769643113023493278270861825744703905161541546181166766756824220463205983705159758156355752878182961836763258741857732733251865245540889674875979159920517350793714023458183871707069736197635628861132946246174580113642190297708124083661530667027393985132829802854550940464434193702710430001763485938284238427053586260117898767507189182973817225679001791611531185337690186225024548262997834433216363247775080837124920031530033188446410190723228583844177193130064691147181546996774299552198855795844637716778843732592350256213371896261445003590541616557216688100426894132506019430475257037459232288021776698425340667241989069367665662943088637000435032960613941504122063324097417706647538733959349652290104913216157009805917287625713644432872864522456223854880750119171966962069141870445642005203665499528977978159080940660741332857713897548978615534298439554171254927963268725502079002954581371334842906235259510789975490599310108559339196252695860870120859881340519968145088912998336342419733340786224493623811495135862682757588512171243776923826227301949845821784997166576986063503688782915307075208850267656262454730029430884062117658743165725972492748631756158477862958507350831285314055347096221565242159326924427939647709088770346260594415839752739417834105720964998874974478918958125414484064403030180641843335083220104901769679544780441889567030943435577853826796026810646804975384692438745026164821405409889116753501862667827453036824458815478150316137645111187688795958540011806118053344983495267232742081258187319357989800853785926680652524022911593214850376942032314137441616131636406106556402247602425659909822587475670918206801964827466683752282230717234742144214103629036378352871906213203044199215768009197226778243939638194943500510634120891358650030888711598019950250453064527175627644381814039641103000316796272910762128481640244062076264845191180067878759252306972377547331058746990716998277479010738891530701854609643511746971904113888003115702694989122009720123201334501221770123505183817483031289318084586473870322398743000520084271698801664116976968697385595292155465521529672502614613890154513132214565055579590229299929770496041792988824920796608883943477264566937039346222008209940452778035671853771963496691932525555243950896959679686583481091431683035177791292032223143749834965691155229413081287581516593055117017353613762784153818092410199443083931831254038152256345694720043157543419007763997225963720990085246329990049769764634456948722154686194886362956149368503320409027660864902080926031609846396922625732343656533464053429015357970562175728856209323575227502433160922813258898149099950754408020244819433468221324777419774713491382402092647440930214484467683858648771481401287816516826844416384861070263275917867394497776028103868014282921480827509927489080019908760015518295314800576612871458260095268416846530572553659747644615883950465053790489201612711450317041569021857975826483809128916145948876761478929726468955388507947457604161947913051925457268568157793363398021643553988948691561199832161322686770777907581789149065860029672581133017904814170666157689250264713408341530869786959125144775423913145672769593330405861170046700947496806989046262660058931868462376793866535526381280279841744579450231454086944797299243702326871371314158058256097904695751345919265205442942215144780864741811414379507575779328545407801886151037460194667507059214043820335447048028079824548326144920768497904518245355196942554621422834968992624384580952706815727915609941948147170769643112966121736293093874947813294314009760277552866498282964128985111048068750228490204392500024947521962722238017607242606570049450520922474963606092958950702423426738632132142534036289944157266230114804481490613914082079910721977598524431122223133183564787683465785547920347589876929044907168190720682432177391053374116687625015723149599579891996415465364293548431848816800050092506021122662340680612280993135900917851958084105668156904526974294217523209018802708963447685245872660216120369717053798195359008712126120566023513105598826822369502026398310339201305774405945736617194790263515453015866689599896232711235265444563546497171754312049247636922439839744323578376013361893124069631385647084088308287078983011393957467379913377891992785483013929576529511265293983497066686229265616611286507867186654678811551792845099691432018984579133467839771506174764128801863856714782629058642245789390358132924499729717501559075931818487597787845680279483572439848711875479568892205156922656696576332677792819579277123333544288499427330618692969974026424626384006999114328991622462805109711775378379903776468359630620715604623713364782131823421004878031737672190043096818902053577345222376879610347485618608606474419741117495338863072283478665574579289381024559777266501824713945056800805667925857295343573730207187160910390259653083390955808238576941396742954335418744512690835093344139545544829416223587478426663777815608333036945197674008913473481185763903227608463782830788498793905915241062515806397873352057195387255177301398008800166909363181916657802094752837589198647042339382471110704951977570569021409488879006927365938880960389127935773904589075096961803772446224272967557668969598032915771658835105607128818724244625107038774937831245146203846727190237565547573028953751120743297995654615252507289470812510294744965026208810445886961108416780063109417821597137239845786780968070702290467850065362089062625853035091580406497726439283702277209288716966555212847755338225718342014981421304511142313042576627895445916152761771897018120444028128855226246425865081478912675205126163262507363627663305880964865163379332075163863639416285011387767778282664831095227665859579234574670307223576762831741687740462481010757375487285039306375711876353771683821481887379080401057647183388973617685566612604980261588203361351685263710159860797491339971108716101081841522914776076920125245799395303696255641052073776049364614255186342975915769012649018256740036659315713714182232582580567860948454371141941750542904577892420421691682890465398910671205468875572402331302012230411226512775216085932444420909439360322944922193445177927638691019397364266022319914759418649749037319515205234043015827545542943374815974014691304608366195587656833616653922043260410128327446060190866497780026244811828564832444452470483807254577013171112792138456179352804745589355352439367156599242726367811629415606084825184300101684577270287085803776468052624777440537761165017520773924856023073232600887105434311774283031683910769454069153119892489194775127594857337748299245556882162979685470674631201228939497757767510307863912536122273123813368140956768289920067507771460503529762324653006684987214701064136190105338470973706510746298260078029710853726197519885730614099781868479633960054677486286673058611374917242212724679136555681314536834564400354701709376764064209069700225667833359762800993758820069158480882168663797579184693423007985695711626232286251081004596555304181983712064216598572796292521785312920698852605398035503534330432944796519076258971956049718818699000495803106405171239718296005454427942718690915897299899967497652563937139159950582729869773204031584197192390767837695431711633257804983444353176656319146178285230572866908372517612426605817485295576816954706444929633516809881589341976500917936020007043269115481522501815007028203295634453710144739302703276474221476770661643350337334691270212317896555618885415645717636501531323490579216480299601708620672291028569524943228663783908172550974731453997998633003522183985136101393562489298899282482289343359639533958418039975807847481757928986191744736207167518702876847524761106275849381071967653958292577757156255333502571286872299548506310736872197117768247247219577821229048350449232616388451625382333659750514982682461734019219787887881189102694344820879012526535439885437877740875153557789499928099490430256249694904315185615953200028807272364986068438084465306986063767064153438215321189170152502694407993812789920474391052837828138029699366712820924971116077235798689127952119385936038189094558106098188997654642918042076011826421594255360694748813646713644179834881278792615161234591947103702761221401381032922049115935256767798116149884161759841732439853870282418428523852069834954951565008704899418433917170999734128492815495616863702902700918178067506468946919694308413215092106929547423686234304761090966788095087564269943358932519465214271227164652376151360273188596168851260834736165036560576985967668843478895555206383514472262427862153786086770865198468128310109609645730788103667803411945470914369996239491810929775805206653412237708544310328289844520881529193643779336084610195673665739544271646417956188532193098277675612457279291345025501613306264073546252777638029831036941331177167803690217225918983396031504435704028933030427275553320386722275009933197157208729259040378407528392628359557663971256157089678160070302624912492003264574442889858796840876166628922864594310159397576683561270915562145448956580104460451518786113107605961067490483374992523268583324758162472624330162294886470390914788275959072731067096805654222267393109816297549445021278382671376177228453739041761761056800397501984646163923819675550617339873441435463574123868455818651606730206403211392829440070803710268331290949112856390225168625666708577126943743446079396181560243807769209184940307868089769883328150411891131759610323642981063477577901014204180205608356837204568237214551372887566891420333564237912019697915025898001923269795572642550608908787061896243445263820060863439356830601691666547005284342020506910381536121984725245104272170534665725068600974358517511690298968826103552904401503832526757901179114249937316943231293875968594877514451809601248654372255463581893954124536893511045810060726328534814567648013067630008222596130332123284681986406391436307707086343274746137033152977078926013786999196017999352464753274486044441580627135877970326295968844719812014568732147174363607900269009275689181965052077160854083457097760111622289973910394509533172709249741921267981858242670655722888249439385937024537149303226794809829789790747487363888793311147066831732026314923573508481246231114524894674665397383152676073800514964462556844058843836198227838485080294025538926848393656640856140883685557459743542250506809339748978137712915523430716932146037209771615734117365375667256202039077510133347927351135228676504589122931750820025146519223498889046846743230666718985798734324127297485434737814795116111437517775630415654506242031738201085739343267677026823606816390998249250373555934789133515913104868491107323273525556882781680596609228294259528694653093320245208415560439303700871191486652574080002000816385028933668044972351851013571150631725321440439245897189712530793915893595855990251883720466545740467587977793684641878409642513005084338405169469477490671200417601535850264366596471434275587814891866150317771586614278120385204514822598893411749446857339471305637295742154797497000795183656438613117768186980438475311359279998132826859714963226954520826319356026950813514271897546644796175715345530669322316935038883585965977600282934113279054817889965133582659141435841313687208691978550007191641740422002552481400273360234111063513162423845628100777048650505309653929632332920598584395379895368423637851178437556548389324858381739353265298842359833958980875631477713443957815214541501594763602734477341504324079056793471837403353464058847057568721959552093498298516615456074387100480946555087508900672823099343616706664269719141938048590697019609722842669383682459094589333702816636488098534306601543935626912508355810550558510804409823882160368826905451725892438419361902205921584199973746185364511556500302840516032066610504354992172450495183800875107159147947874233769285527210253692103564896368480371643511374856221939469947023478797567705839759857570364419509357109890069038724676041205116418229734625841278903688159877156697457570453203879069120493409653022674091913512329158150828365006065402602770416740421147486197850183912546416337385460810260734592349301555291562998037968021536290886196871736391208641573172510802343400197416760770551805996653865174595491612349447570034389796350630500194127649652801604539008828772454779409433397757160003570303396435147797262032942450109233832683918341290224062509500669121676130858638902934173429256776295293020434366612333606974710569978128466159680896916286772114923202957861561457620110925608255769791255196122868336253113081901599914678580116150883320813029155625438689297488634330496532345188408800651439056106068381699785953422483829707252457222932182861566193187827582610931529826573853749395233220778947888673510875287189481537958777392056182151038827119619233220868348620850267110123728220411859091837575623972040418689754831662786414270316795659800955015253051038804891297691660595496934352841529675221511703147775388881284189741826265998703977007689459783902137904483667969508711660319864878333624143278517905845393691114864869390176966329925887038193104480154648669586507585497941933763750128592251615983853980781199031265122112473670892712681093810975338745493626868508244749487131271967631787696315889667087165350276960784187119019398803708448154467805026458250930233701397947498148374483474657117715663857831001978975386310754337628081878275202721988771288417134433629375085619800290673956786492987188707067741061046311046866585200471761646450369381241622759995074310173206372523509071576710844962122706756147981340014378095536857027134665097663153214476566633644409041581945140617019926946421939237192616271117337137293797851045814912479278147473860681141931987078048548991596823756731172736123462629563979473258360107069883003994260795231984782856937244316522072095519587184855845160306344701011230165833005761006848762358051440159723752709163454245867163450688979927569555729485107419299293810723140899476836503622902089882328483863369407653943355274955146033323170831585535825105340182509109461021887689495907563035839485022339316234712632308704488475291057086009839558128180277806854945848527703638942967956928768692483557729887953965799533150801514247851268774399071908736828262889290083452489845733225348777021949800968240528728377705402208945851284331431892561345019761573422331658867496309991828632039922445670218453538389922648756670513041564295665990714065239935487075357272423535179415182910523184277111191645431778933908283203911636897663337175895024722363791766024605214055381075146185549645294370734355702960096665205903993817423291681283758702509466968762640698656309733845426867446023823013182672920545091430380461388309362715912866275177002552663477448650543060048058653438935321964693157359680649274557572588823951001287047838336295634772487680426921799467035397371088042637614077081685008546698426588441700334818986721129724794046269303922140996859813429458455866355075942549376479334984076810362556130597221647760759506446782630947528974016403799981865473024487347373987161744811711674430689031842674286340392306360324096811697268863691300703643934344426626365153068720854196532482337551562002703546657432302461677366411010220615328287116408403021646771813891304675595945563307185339304038302918426518404076231337714099716440622163615910146428038627714853698384706505766795439634184644193498942363647355514707591093075460185050079783642561846098924221006425604775878050649659727457273470944652409444408652432187435624551309256047019887650012480536515246774586279538152528160886400474364341988405651881745737503290226825260192008259961145379497670604148163794499183823017615983278542546192648545733166668229792793711528379754089177468600824426930635690253019531855771691911977413999518401094324919983950493483079603261628485701486403278075391238429703297839338537788701674814572127867626452127342104649902897859799640773585160278634213589837617715018198843138711242305982426932764822010931761638136076225998669893716115205691897898364849500139242742997488714773495434861919445271078549996383930580111174755897749498247246831265569251131072064412371631735598261097699503439924179971688759910743113601697472193019955493409733095057388527121999274403848817691261438945918348417279656340659830049337604798049543358009825681089181828759966119781259264376748393345111466633813344531090080196346862435380749749862084252201249048443218166723247635825076427910570358841551262969835939073228210904918779018266065902814850050986132606498310659473120797076370659054712615008665567660891684643734710534648256569303000769887613305120110342939256262349577675581387979781362148914574915225527245523992178551690329891179719378640325638541720623978728615946611423523656181936720900739997762358087851125766220937290103506210666032839213571746953530228746504235923174899849909210364123352654076444535031339402107188048420961995184060322194628494031796662850994128522232294100773741019921767650163231835130442574398353992268200994134589442560286826834886112771681362482713242011311920003615262852969251151416078808220551556221742284246590740526385113498314891809969299737598993587079471516597747070053110958200308680035420123302437982161214825979362973492825530434230697404248206318773798294720758080786451450576225172213891537359726957721609689983417365410633131941333335370012356504284079155379519074774389152138135640464992793445795166670267543749523641842089863005023117273803996647443317774384811074985603575617056958673628933545945149942221258709213702061242336257745383593165860934269053548196257546954413099565615089004483348465953509194843136653559664746470563417288570730544694338060285238038817359394519704103014367928526109116232617122525656643782633274545477531894760630713028506934735180764372397414478010414479135060718565138704187160339639400718682618801216525130909642169191284577501639915107734405798754793344251045741977837814339019066838667804879051682652405090331403135658909261870902778979107660706534466082617932307848533953380847522105762286804408106270040055640386356782168073302630852143242621711530934538397442310170865183544501707647713130653440658397815125016682012710466330959397071777183116761255997534182314712290320591661372760986247156827827645137519762973210643872189814765782994129781642785122928748406358180581688025441839944353541951956023524185192139916263800235859172825760654857656115414939640732766935107267369076037264625561398133199614983382753545112307515204273853271555334080400784836922105849447963450409454818359652826815661966348601037041932689462592447617416660574109706708294954403193617969043382221335317672815937070642090730243753718049527369447462091548168783293972393122102393085098340219728387809588961443505885497147686210299681247117135163590168587976438207410507277844895908391865935743693518860313614569450257946865508848907946861584259560051603878599952780195535325549524319143338937943576167907059251437591785337847988560497535285998628467902217443797733859978309457330965305187155467524194327185260935780592123038771976986143447394172736026792291917527281890890120813770922956842525189731356820391571737510772677766976815230184657999723618112019092536889312001173406581468993035459896514877687841312826136414649137095898188130094342925642494192151567297831867936526459836818993052719766299371139682379403133663296073576970852096179729551342024273828235167944522594443488600877330964916536320043284039054850920937445534975800407334538371412204670787239652649701423513818005584825824858509242699555015755315742884122739552364489613423100515805544927673003615895024040178821283300667373587082553594050603369860670075127723959730690306105970789005211484507541319218670564886622227986905991116268301121107992145641468316408768274546164984237371962583692841556105338391326739410105229765374102002799645287662388528449360003515611726493576997742610606470252515515041363557060557998322243882028449857982615097613636205854676323272517657602226208137621000230966265921725203557528858176201788227771222316273751426904369085153348346861031358624385471238403022105600439133078764022910471392619089264356618141635614007975656143337122252239736341372477455404769606508500542761756530064152516633319733050345196744094828729357978204864995833352106552660247475122878131352414765723632430576998351111741455270697483168628425239248373359739368856960271301972097950035171888071712477642800405624103220233892633445266270256747988108393646357570162854468733577974880656443400280845714271200040938861602726716232771938905931981145349460683059013843746602208558013588582876457248480755592915967191919724905253106854311852181307708915056212429745770721671212357020191224536230539870930518905839417612338992690907884883088568344788426513026161989094867290203743561599315860976052133000055676099303308988263631881577977834357967299327598539579572889495834158884314294503498459958119718305437117388055155683149392185250784368291585397716324176294288901896709495382070032441396291790265795889982008687055285307340309374263304087995395727751889468839700939718594133168669231836927301755654163263977779292443374731764047084403846476875047851167648715357272587062868788022254445616391717846914249030944268820689775065313957697263511183133234936643032250781127635437079261463559807337334993303495927537987433397469889926400989020473309311246254321700820197471188188904567301315417295995237861205470600780729838891683993243822217005416410532594662011449250411629066308920265557466900008582254106493977257233708796550567993624067900373350099578294672787304621901644854132127610783961693398547930723517107722196111876076657106460073891212178179876010571019504372755885495876337728373034988751073770178387654104531852797866730847165292579048572646661719207633696015033587177990087958149739031863406204636497609830350035184524122850546851199474588802147793479415432236778668475556675506168694306586054085960830015843816888473287892400958488895516785760683192785750921643313092780545548550283771319916079660281221476874707815258312983077345429492093825872814265127597550038835504123031537427053685198798321696071766680712717861202617821288552034205642972821336262044582598914049541875736478080229219372435443327540855199249215046116689498307872712212641074538563869984737015767294326041590561729087162534358097352421820314417871600561015181156599885610675904872715952940015348672361807413123068184971469560577961686888098273191664088373093157627216899950557811590603648147523435840050791790359969868235846633502829208972927914291768969545500001834276619415612251036099827065609014581998118343382478168540629972166761785917740730454013578604155462674431480502113822745970542620362164767214597613050668747386587832421199832219771223895711341799386636590058876051560383434188696916441208566850611895706349262770246342949014984830878088642383909380711308487816452417753809812372725694053779648909965458348515370438865751506655646225932556069803605934678297808587910600468303127891943722429020845619418105366251974775243341851928226697656325436985179612844833810384574388366032208534623330078510579910828163533875780301708396519900561248925110748282521829193714448333735441171822578195868213104973346784998455315199502163115165981591030062448175989013669309382626640915808965948703507028118174987166205649520270992072890704626427545854730602873662457204176394576577008337257145365696601547239822086874686683609393440842249352077843337606346668093988269825524272427993178418541040679124060100386532108250386026714377017009555377289873994156469792194160486606393735412315620825535810612491189014831407762763263661879003888820083417611269076890584080468866220504938300636713568661346883694176748760976296371906983872327494005537780343217922840063469927960556632512505433080997490707285586057093187187953340358439007472111905364364404853254911465455383522579723274013065535967167736441990735788550444880653811895440341409172337575646954195370248390310237891187812703822422497588408187885264718297394999256243452840086813905153661514850844717629061298235825438279294237040960939461040902291113507058874083043921788847942997201498325583068694725279059771277472506467617888409287590737122820249248255174231073254069482940361152999181644293591157219446031958941752901524068013005269434144172688565693167617347164151584270661297256984847166875175582470516960180673984993647616230891006590733398841632062223026656266133559919947948734816563151091033260489965711341939163433126405950817291278754504415919141307527167583243953833721666147012809390692152710267351141636470011762144777161040957634178233152951281240346486838208254761078537926616152311021147531513864200729475926339568002378038366842000593021730206594422721455225523823020466584410829325834163953115454823114722929394914251786436621657009217775794920117694811667191409704276980240243603215412981310839717306565909082299307541862311604070117999054153486215233720568680521530167961968227966768881157090978321119343551590237916851192459880330556674483919441760586734057197317589273410041603772421243794644746918593083518992318020881429330890215172318386880946337326079337552668716224941672981256561981536010041709892826949869175613272572335877288404858807047033453684203962427878588209585554727459677037454857086226902954905652286475753286001354528106961214146985047724964522957266223110936953181567437167110539078798316041295259086134663412833212946413244186315034938352362270175807458539402745156927345326154890781643754281362972144837925589745968427340467053619279796822795715707428324532642075202785636160861071852617698351583124557812760589130437638908574230399734047717224747962032137596421953673134655576512589995963726768905408520042006576104865877598198062059870617782123074205634303085246624492184094068774212211485237344279505269485124317418769344282247986471827768062791868201855925696240594241876234152887041239253482133528508761686969686130802941839096151613212261036493044403084597128987830970422362558612694044284317764284787068855091998735557383583419032671849208039375390449351879975090369900685515045487619793042635952278347757870504896917661017140632585756246780110441918598975445746160923716515202770978896899731492847733614372151773606716657966898062356034709350539244699047858595307332065143680438853274687086166120839458374569988826872275973310823644218089251876009324376141732120060349832584058356037518104627667031849025009836581938277402560831493332150888523526782564036088026021602218053434366257608942289475168339663167632141747090738645175544733292863959813999664907332873237086378799999031659258879617499997865855677098024321467998392923682568159798285738309356616940399279126088575257736614121309369923563295978528706567834605337886657169413278740843083940087505339341342359469786880673108754637836388239123310940227492120502784943372567077511024862278841869490396768970232893510620267251848789609040236446507079054087005538651359074668695656449136240465324214450666439530631642156029270543591710614274591175151550641157973064909501071473384508660354927624860650095062321488063590471916320955990841954832843475175770906578296828938541908707055639961805037262964255175843978176167151537486652759124606398658473745801048007934355167133300235347616584392865773709991413189595097684719933608378299359397420990031183345788105933042124821846211737103051997275863735422828617337826662151939006466625014319939496216494856061201965958734085633095465688816508212320008922490743030097508708444104856866658646983065973226440792850176809086114915613698392614530871899326116788997362105715989254585563573225253364814408101379187763795787089326174725729626632192172632404958006568946745735778799861540650257138150256498269645935204718917094581791825707636509848685770695386580693089833191698938934386831746958963734088772379837168421789336798070544924632075400705936893468187107150822749106698243660750616792117363764213274186154080357405279544098854483812093262428754661800539330220011917417581365789287626205671258391545944930756417234093606126731847549593331288294467948907972191869942580802980516937619699835197394891942744392190546069291580444483661951893493489913751121259484658071435352316678009293341709616071347704602392213353563980556165858843346257317020027903189706916838757440062037538984380991278168084658474661943517598484474436363131598108264262275760416603140586166985151182297691919249121998953334605507587600418615206602987638261206420752270682565329204981025193949865649991363128334076979121987851087371259084760314318360068606749578238890448775040611955959785042497920615386655909949497319585358668850177580085128684511172715813369716036153311359603623668605791542694473405872845624437902551150242375981442501848748715582685330597041348751195806699695687620116004128191626200756453659660203286718295222213009080280003957434894938554679323456666388450464954272340473913371475896264661934801372281098595445717641190704090533846929907940652805323061496017192681122161719306864560998981199860279370404730800272416386293817406660557536000363542921941444655856031637343132541878099861150594935575314013137141331547244315623959451037938281926885102937310142045215850493138851073167298991546419478415491341065748730580145127275747387344347646917560692163923010219507731109670843845770220141832707855673792181033794315660402715427913461749080283224492969577558198537149715046963011917767394326767946575347610588049754431354271093092609587571866229964182123849993540269716235410015185139628460793072166405263302763455139578553248667589542181961281102644180409944538828454434909744359404159183377769711852408511428424474599209969381106414687479660787196129784356701173223551745524765701783420177460017008952117941428023484224264633601113068826575507169189641048507552641558381845904545790475128178866735702316573117034441601374542475367623651049522631310655574525012453445282627253331102005372279607327300666706980239053731784800865808065158143756099179618192976562302269009003128843801212302768477949489112824003530816599510249087916855959167748424833571676019011094244050172185939056017350984950352874628254208746442723953135724300105037239174295708479076607493152246372062541917869856305027828299884789882313408206602923173110043139085317558395114383675886627027495649803596366355205882319735957992769389549992429739160361698704165851425528611807358157940890570801187309889548891781210257453300003946025720072544942286339172329067547773305769783489567383423035433929701326202610863066428887014941268025463749919691860111858667678610057443333660373146371108529945362866539744326971283901558729885343383929791636798485592798609194333331996394428180710430132638693096375691483909681608278088273889645284970158279890970279402407007701662560910721208682849717193199704516459526617674080154218884888701479268758536124433309625035059294330860705274268731082385959581580020485233917026875280594347720067192137750414168254846606426836109195249045959880392982313650766784484539139936749951592520773495972291496965815833176404932031949671473066739368158996143915695094744843034652274217947092264191347248685740566450328362505861084488022441283647003313606446068286307034880494929567159456580334098970064030096607938106627650295174101341337493998033032948403553749736310661709239995158064631095204343286897849066441657784598838662949573068646622384146820999044197400915478460437241161642190972743586239355246740543397096521528021440567274750530408653907150567635669126981395839609141148905352047841677479051967300160933913631047509097357828845121623672566897967697330665716544978421727224988333609885529886966416826515304935652033747881217947450979265807696916896425336138425840087789494420957488435737423114911702229712277826521847596507878098724889397245449318978722557345893594761930921782444108711691857135716958642189894654290849057193985666435483175224343028138178792483632080458000929531626553832084454041326199606421182605302823648904533881890371529492967191606226382236316962639345708854629708256325790171729573899787555533714943547539244733527109838560096421536051870910755072665997531865666244898615963917451661201109085317392866672811753261283531187034822461302137722103872181243132397838050323961747293884354448337091110004546184970663112906776068541121439645808078339647099396890626447628716025332520541752538941180973468872403015777776106790614876539157602825590566988912465645389999697497239532867164556381353612014093036034131295802574872584343971047732843254850896422949033578431122442279979909967982042480650467011682360696563928667862958831612838786350700781569580112852254020911606455072752562998215328483222020782956325413140378728145656643562111866365747303011771913907887886557487111144120193574495830057351690457235412505598525960319038230897475621853589662076179683283290050129110816598752241849583950740001660196820798746966747382489336976165082668004109284870982206482025494012671442818999232659857136744466028022021630190228389637516107691133447815893524112898932962453068765295023412552694814846704692610123634162506404255731875281652434483433961777714832716271978140830245286720272211164105286467649204188026320779888663681356694459297612545411416484672154475479697493810260749997325137749220776683941007988158025182782028491401371495274301480292357190077200663924356489614436273978778919286046420387438808349509990302807028956110529405063998943117732763598368496588812229367603421505540402528753590767746797817525944120409740783620294844200564834867884615897245689083202682181600803465709683903767556975824126404362557712056589424540972048529218104479987012800155399526870567594711989610248401559759209145475003110705043121505239432566047599838751732841944316793686440038267302473307273310903886445146529315153441921379272297491474127784512187915489069808164453184543882088588804974842856419569253767504579207094416441041452128966092625993269701221453336539777005235003859340919188377441577921865385368343454735511560041308394683947037352335268575910805990949893861110114070269019733644333131621584280718312622838405152129247887258446036869853122970045384735779255159264747678094468605560260092582716427448255050484859775287550740864451627634219405633760862101100665558674767426189810894717892369955883565902099559376971543416409620075278936221902880669397362456168829713615044479229954388654779057462207034383184839217865720601592287117702598675973690704614325129754361836054012176039027728020493856112242104275712043163814307450950266302005820538096428155898042521244973804812727776817497789635516600157022365048524484483784793351340378809111167118297961769828764954766755399412246329556134239015573958069997647858377802517212330455374623360940254494458917203232515883556488370571664552205836430285929534931471618835453395447662333086199519659792602338393514753090470440974070366350473525615511611191226555293187697958200633919448273667454943286266255410005369126819744069283366824893936973802269096139593478637712099286973822507953516557186392182601126636198600317245810363810739556877199364493059839379493410372805298323242424149201214738780042513858200983954703031361006081125804582874634994431037159762101397249889657040235893716371786644225120624455285194100640078649376596628252980714455796946964425294030401168322146316244449414554840790190908089145810234600793643144429147667155275727257604491191711853866849395440818801845533737753444175667980438744269372400462808794717883000996588839378000548696739000215359531035585358303231705214869170961862943357070812129045438615368704872490417331335938536800523790209760680460025388141516757258518109983556955452466497982648092820032693807568146000650808025119126326390884945254594263172810001339673763128219618733023014113011958814855597303681125222046019143275460790194096650503073720417411945669356690174168726603209070177657540062371183303090322829635331949612099969844129708190147277246248364332657780039376835037086692995630707007881661248133187215918305993310745374479844980962924293973406639309398870598278591202231967384174123211886403978102929220453253730836785747157661810371363164985926443388954125135299323249639145573505009293372548487858589515137884013268615938927607969677194642367183689022559116154387469511727007428865042759760661551094237192398306793288028866538113845047848434668030180322514580092724271542211575859864427486888688712473565211619279113673187039988468343922268451206565576512744834814027732591342326997948840758728701222666246623960659192031718217857144187507300957929839531350134628659874611262754336457346402421392274240978801644882854830935300283526162248560249490659326360936958551283485185124281431496042320483440382846444063173915278914305016375037556445138489771309775276750049925358726170456379586234832795005864536509293645896483618298480370822348880181419532959620992787580910141212182036457178664504668921103570248358145706190993266382229923217070604851514576175766444480427795375878969878921374235796747296876714820764582847299763008623763616326591423977348054232711919624283150482582035979875939317996108205977298478401502363684427338520082296885156910530973212250047782100323235168726961672639486227499750128210861281137328615716517058031849308399116024379575601466299295564696449148388258429607472985656487937203691520919181284833757774922446344494020368181493897646310240222399510349644875918349478321588547380660769485887771601674960953911471335830995869544163583733407798879529020237322768437312467605054813643311727317099895125449854734203439456363049928475234142688419446224883719430196990299098891368204894386859396501753506119969707272043031759885272844961600166225669450189403231000553225861128069879564214209316048842438221007281409342497711581636543476349344200507224692544991476409568422896299132859376769376473386014820849050050072427722349154198540770447282823917407869150554617531465535075904871145432854232459890182018619840759793885618506424274415215887366062636038853035254001156097113788509260358701824659045607240162350946020367959021425283854267915343280496698581226733668704101409565012137987539441875256643359415349153650272416835619821032664596003391849130107446312215772773378608128847696514640513212902985761286995610159223910140181854996970344147773448964348235530762719002448907260296162687381036207933688351616941184302613636400966797428103732824596922827147454145996603229059308412726816033016800452489751264329344858169633139501265324022849672449245764548003612795355778840317722479517307166357224336461909769559363696103430976952596130605316131915122018088381413630401702366035393736390137698295489265251104959041015469612905957859036842143190636878844114051456418533403001182766243957732520049138787213645840731276847434017105792965460680255378321586381426767954532177121242727811918025395438260669196391987516908916640867555953732342803679799784121619767753343616287982706978169827293154020244098441098210717607986140578851648855501434918965957641376072379621776608821179039208723981857867929719507694805914033960143843254623237292960457035078811806083785230087123678101323338083936373839571921013061846820419903193342117420897193823178736560133065835684980959913277511189871191980361194880479984297710228952309012372539756764429240985463994439109839945420258576067014736586831529734325657608500171885247812338277756713566732087108512064600251870665374404846427506309698855921560689699969791407529400254226658203309086672010455943544392209122642669374595559969949395581523112283615685322180401915479870398533273952978117676384796471052669885673755590879627662828454752037843074246435866183621191099703853052318496604317114911594573773091795362799745982352513987867049400869226628513239611585275780777661689101944228573652029218908257762676488770414790395089626677217676592875097299676312689435679656993117190972475708087662140724092027825414557099816490422444606390772534793312081421548193112857357770511860448587713193131295902248118449977190101880806999721303392091139666556256929433012060112573771353764347091098227518112502608716918811228320190709222654123775333422542703045980429094153500494187791813617200390850536468482655131764913927964180512747002489559707705131281496415223146715693935176322103404551536769443842689628740677036995872080202263583641995486653057070918783531147027624445860195195462514819603970167882439298162581261379749465750093401776299519295967623414148035041024307679584087900323726490852943878507125953259033219703464931030349069966311345763522903677709863012834481041557243009565450837782462569326145573191725215729026738490335195096833197571839323918774568812554183768902842752151233582131710196123237372637151155056900008530056262683059414571382226416340840905115227291257808299548864807280865962527366875930955198182740524338762124482682934598111455199091606439105466552886189198744386415767417413196586286399181100212763037632990975661989371338811878533962632285064544019802550545794156959416159505486929522034891154338816526913410936509418147244239922458027706131599210703741444475328434950300071884677582576938367701193892331174069366416692527590613463763185774992961919297091790961399939899080703256294229524194371862950646395774863135058671293385349250256513210559642332495087584047910675443573019232552547333125817308401809935660760198210149435346345763330709860206121263085942024320106270307002566823970636711495681668839230439244834670467332584879713365427972365955419346933324209193168259302525197874243243794745274665504573317363602214734998071719318951538505312163112917732448020411809647662510596797998619958870433416087219746360909556785195901943504457319540824110814046788901216332754966004835703521779793859555880318292496647917500107354070023238154996512286272209238798436667858299708969352106509115870653239551212186050887962811866224017429354089170313466887710233447682628052458921655222818042356258622915180303315080418725380013918191275758648461370531550212842905787745548287991948844370342477528592591109792958223134928902567469840890632313667689900235727030361103184272887126761416040294603044186488589305343108086954448170063202576508404282649120519394471254053426413041456016166564187489543579986029910300906679929922466849055086539375923501488985494404691350648577991337041237330868974882144657566237092237087122497622965741119148248895246404945304744948583709664454164247279406894289853627605967364609397195690423033955727354070063907613299132933516675023012245967803304546495337165685635623350655329940109323040340213729820194136536807228809786076359952339302459089665754607780463987236300109197422236338518173062108727667070295688554077889159164623776377931198009899895268630127355963556994616429702058193031821799845592848936082177286308706547800361680082883462656005822768093353945558184393303859961497865015064981244969056699748986771551355672635390652256545280503326825628642797921055420297621395650452046137097325612569514243711054222068505115605367563628460786740728275428771094834989393324406130847422994766394659971506423992026145862852615334732730269579417957716941807861867481765545220170108279238760888405774849273809083194780604383221837075404892948426216916692212361106068329799860448494483013223521735389744892943440380516123553566438376206366486427715149087476128190491329790613779958165059895493738234471618999883102735158139572266685178807387517038341291683448466980552475549799479533906824385555656709112261742101658408870162015717545527079500518738846685273268739533146065167421009779928643752798756053927058460111882608572269880520365204901004499543630372179157654334573588466605495338879935198831723449729757095186453495174195350904126483522526404554683857322245081697397848492855253488545279455600968664029634130407052594507971446742673087670134687358943133452674318895744906314113685134609454390521913406616973792984438153715658585544755917630377260110286102434952511081093567630152667724479578969709763672106153221974160845081435740167213448126955018288123571037800350065870951416368781517599635486002738158957949449195408301594380319119405463523380446626915772788261924691054651483520515798010361313839809534863947092712114862464200357088030349085178563350703058978041262973316096393600277287436020660970556012499601582007891684620052555239001362067688788794762268009173838637913310773844048566805781065586823218232699276414666730009836448854108883034405638711745420205279564093702448247432515315782384533949277453661278756844869548505618315453037812135305017520199927641396397732018830968110738108756261832169999174830679490473947633602577421211936099127953441033783006749447344467338304112152965133305902448270029127054044429003674260537845523075817905765536997340842568324703568269766813931713588128090300776653938448370922486947548642192492682172484306852851039854286959456289861557754331720297736319572969088217303503394592308370736435557826220828371046723056856115773812974903652085567212474863544432153814659270717846898091484562026256418253843696037121376762337190074280659343682242972534775126832760051307353579742181219987255207123969985296523996846490171662189561462668034976714846531896745224611066770361521914908484905533784365292556238709256741830917334021940232411057834162125472658162243235260951126529860144285032657604525083978698555388049188229378250058086096702486283311406455326689090161804655509841501381665536460479914891925011648164145074639878365050302678830179039950797632596472728420515663136364537917593077357410112506923680933355445506404633421172702675915682853171614333577239156714383394848141055738324989924276537074742395657668137821409426431258575790735998986444605645329452244882295073534962556910541105065486374907776152698941564268499845952798185710616160473164288806009148445110737852853559048270988497865037362076064723559301230933092615602897046327956513931433060344825691745245724345304759494134344376997479057814529292289862806649499010527260515308886566917740894253523846565166723605861767625867972631525365502962986950973014171854769797348453746108688124444917543638311865997630020994155047664826180495179000220979011804582770687679329783960048161677952007410820982265438126906121700053349751367630188318833265091121775991574545347159739734147176380707113386826879760760079806670450296020056861378917858207926392802653083131272255581245065949940950948417267423013599461050288976350132648652785656815956574428708984820051621470039701358469857328035907506054933005802469675966745583602750718303126523911308809274559832660161410446648978577627555752396893020544464091688103736136946741217835636317256250694240276357609748001314372996784216677146051204377356456266678982975647857295922505289000363508443932536197445659587775054576764366703725648579435323596745677942769606869741028292509693327156388824936560665610234566488020755739051696897083026628360652292951581420162916832113588549179862022523386818711656679423458930090632748168453107542142646647760107207030579744859281439141545484700551355924286787016222286547629806169576790696025057864390382545532083374130774724969242423833332962719336125623122042955742129952837031149609770915810416621626557101627040449027821078381094661938163400209631496841119489554291154403009524468761023167438136492760997817760435659153606988976315853062190299743608235937522208652460107772159836828767311720527164714380199604043451664741879395139511809382021264481363609732360079037918934612032636337949990253472868888315398000449906501430038239269843027784040586551069848927207270895147984226619910209288510585331050007177299263064728465026069345138427582326917513811820831809857506936298926271995067436640732905178591188542858532195079114415997769538102323984659539002834538860729286032429337673740203361353268919899473644740253090571925718651592894554106336695679100512687426437454956983977189451071248182462560259262358155899764998003427665999794856846108127330258672932896895933942709550513295997084665066354904166155038201688121200788051838161900080369948234383128192131944542084562324809026594847739768695027392740515330686152220109235439352323339245955104803265800460964966186903607503083807502002303832280169968698842931156862566823086661795906325842654157640576071473408193128430455014105305639929484197334533857932683110695130021814019141501509862025026260848614511829085416508528804899042970181605196917621927759914176928991020671804262203974883198455268967900505733264735668843756500192053212698761703735103448864891026509036345750512081845633453647498691699505756915977472041233826039892650347504846268975955805559379473495107310777907001274971498035338520016654251589121296905688167156506927328725247636394006100790906091362375188865003683526613490369765620860007090436893391266884760269311374939365193277808439069336752786895813231583003193040692435014339648466167112270721453080379917873811830773361318244848653779738819824593884453511597153786051744054697002197807749740153976760368996567023156573557687935368408333241081310779078411159805519185918395744363658744197704324689482637971305602572529080257122242020632489342692950471441005557152617527983228674445739130655762263861401049406399878842458258002484917847985602373132434232666139976000217995477677287241786842528580729676419228159926858836393938884986715081222016452066460702280776314463341054011296135481953973385604577574143165402378146041360059084008043806074333919469837102145157584549698286667482731774032009611562235228780604203844970216892454242557668467345813290023568156809086917473115627317308066663073194959292838809518220248631531486220660396923433069270388448417406786689399911742961489148662341464928598032307570556701168551994903696025385095110950041863271010695190506683343207426550375941948577766599576064602356106497338308709442471672368108513825165866640624546909816990733133869014463691344255485337399921777597618087164613888788100483605508014157229252498316277591335972398406491702282546983904562008096778359474891455855221175996336898633972671007900997716364639869427805743144497859043555503976345948301522064927956386580357859259549720443363299796833672279833293665650164919780944790314212043036252355821921326685258274061945916849997681704736545314615374578449929057781719832737105890447036917693042083586922786785252598145074275747068707627502756287216065476983310050697764823825437258541176440900386232496051344028707741788093879222976613719927231913214413830882113650527484582747935228803476617315185735255517625214445620900937291384349625836403614115417758281798048538577623217771694421657915209129034752878258975542566051630984214596463361189805048832339173519302757161896132022063584937787565965922319668589633740811246222939012832360044277497588840045061170380042781832286311784087677681128131905019380635627024519121952089180439219402012241921277179771237811258934394536397960883356129276391277565209936730156337647999422611618205302535978826226700400050641098668284888805453652281438435960422857269024254249078460838062499383457484742105735043790378872938713928309329847649048958506044489681682130092957795814818566526995760230098619598899360648589092119674666566818054754279726594278411177700549468108791325227180187460247053275218612894898150660390030683357976423932746200367253716841799851298963243359469785482575670545580245279959637899006857900273905880363504339489437898637995482864359612495119608844196354363247437541201202591732418858413830803340668405513916208735573541590324384760913397286617430678251036938909328792088870087895966454930314980278661431543057431659612833398598305180382963850106806344730858476849775639677362886572458734215605679140390396886423564125277555850087153885418197117619189015312290614993805939391967786746691494444008893948052912835126928788071656491691016412632644800761510156862080809611165629758039489825210090370864166511710158682648658896299826495154211273274242244410291329749414111213907279591648782184976349185824430692647669109825702049198970939295149837675576432597952728116545915639225501211195995586887384280062212507940003069087095458816698512396165800993198903626700497136908950515422619672088530556527788481188343216331913206165616401740369248687028271300930872416040951860931431783849459240034906734434681383710478540843168451003743978499015862679968861736885507714518308475065491905887623364404002126369725949122755973728606434245987544362858171577024510099510540132344602160785087552814124891546794435337685065177705730040111313885567492340305759456310848670636056429405237501987096150184606376288800574336904829988066579190548985167422757354542735577867231015101247648552531323297340096068064019034053649943351317041493331714048758815665602306837395360150061468764992062225213134626304777986587819013735218423681368501282309024148411884257314060718275617586898417208008886737547795273790595931028007320439500007131527081547915507209498130372096480377503977607113682521634857109819438623191779166620443897395153163932318243237583854020201057369937222135255169045468741046387050051594212665722599807489393869291424618197023466875338138995944186839095666891275621339079613004335965127202266176145200376016326834987801657837245917835974359364535744529630335454809222574717425336020076344927432074791915210220094718010365057555745695336917185633504961005597803041567048897536025725965297514889516974910583611947818379730434925331632044676387586485274372155328352435596005122679086139690603510928862257410954007195797369662075487436496314749198260395438408836806021513791458647651142604196243697740401958574935450006264699726322982036297458047584135315236400823783500397606922047773895371543699237341615302411509431185027844184573961001500069479341831871439739474702507435148449339590521247804925810383644938693561082132114217011895357320061619847619733969213344233876946813965373921083343651661188074638145303475020186267330961262283029082278755017258718601508823039649483741299658810764350632671790334514219571799271011201431082796998029684781300815219831303891420050247785074377798006626507556829583673512421427045400044811543118314519080197806869570696676598929105915605044813303041819635531575679336004156659454825671551490175023859247313467380764627364413103632116700682730935181284407545216451173120701111884491949120152349730163560753223590949754653860304928957530028000182942386843261303995222368392051628915872298106382247067885099892270706389746997575029468472257782137828413317134826203368101938263784346211048752229576205829549120177896301707382964657285253584736727053282002768902369292914208438280348594153221159159820848928121601412267991979677688012394869665684652550990131388851759614860213724770644284369684381401406221658641074809846888952313223421416997681628693539079231862670944727440239640861469917141351369787450952616704218031759603927489513740104341193243258604950420395319785529148203037681675899336502691989418292337179191412834280412629878992964098975224653798981632079592532042704068937415134740852407875011595009255549439153583809951887131486817927869426150476955214055552344844636342605133959122242943996718699934938481526182878130708812871016358479382462567635788945476658790501925167051881805572442763984328303861818896714609370738122895593479936742833442386278407653149664395838936846414105042446896532362825884705001116484159221997100579960258164360215259322513637703332993765427630610721199841768193002227898279474469919922189900387530166391264830186328810246837634353770537571695024611386349620348334593672197972817005990213537041943732684629369415991055016179624945163621171201057398670768057820734587351241039015588811291711431252674224047991886404383613828478988857243419943883835681969259611979870635999563495095542510479086084012593576797203963043044640533401396168818626430673129219564994999060629029341813835587447309159973415414452443921405275235300695772401773571812234248309793333696387699762872453758210824178845056747820928870481063090100254146407792094993180854551172340843375759008143159955840396963135014767173539880913391861660738940222871275055997002359555691081690022435806928991711524277895845574316096763035816453610234353088062685412397801708169225512811194956931529839195576948150867968506831441082611986281801083393435953121246107576385078366014390959691183787483289640975345815368676582093905766704066630977625641032979794654589361802261958056226378124881041564395142935156839617279653667418757633576242876131545182860380345345062688221921757006073777979148020158215414805409810555225367742600060798731315976282700111642729438931198050715809597077175635585445333418366442996401667481043262292528979195539501109464274790350099613044617455677311489331371922601200149366553796609290978677663185790774145604606890848370403913423542905925254861656542267468172116793538384093553886232032083978042877714218248483927284792224917633023265991019342001976799920770251975433331771164157240545408055995196006962690616855593403105605307465603842603961785014950451496894517032583822308125337574848593121194137599804546210228833907322840870305324224679046468324400827285809322273003499290730241218541521034170840750903463325312420468300632081491215419177165650431216184421532944593921099519791522810397928075783885135615761021305975386328589746999648565941563817301433634211130171422564781255094208043038107885784680953674798621156009042224101423711959632971042844503424228730734175110159963829656561824644542348077743340909429311198471285353732470631594164907881991124040033720890239998442410008840747139869536888744016052136811960646631024007548470153366792477479315645744401043507156264950956155652474632112353022677801799298648294147190885006286353132784474545684804826998292823059626571809550948507351261875303977120451164481700006858032981059238825062005651003726481016053441737538864976422941922287211363159976440960350565014310586499816961239777054031593024605310096622237846096370908478421339307721587798617146626188510448065291061655447222792038134419658325926579709655539800785464379151345309169360135729140837832413880533297916508829645450193246494538067504501811011133533609759900422176718710136013016380296157789117082538053655439770598012215630255410521994589139150716456704125456219432822893694653960596562309435059984943462415966418306303810103740692422204016297368916210653152673798349261733941270339874815343586593574334343319871587674421774926069729772038372834953798625804037505943941534365166243911702103395043316137642836405748682011520375808978460513225650550493842225376192470345835022775210619042989295634790566825729560522827155558462772007941819354400826312418485947864856588982566799057540573977406309104717034385786043721026476170634624146349891014762169016780002823742361466858530527605707345391296625096014172393463047172227558344444339858327207849244251524164540845359430318312072042464360530960988110795830855820944642189717477228760758966804461371727917045568746163204714528921493569472012785232240374150845505776063457563299822687356452921219821774548622933918874236606440106924918949125992552649491023714239213143770372825423404731264873191577337528280230702014119878963839480561978311273698300524630824647983234449562140429003982348396207054675002342487041065153646631876097223159421410597391802275378725856660797310556173549668265677140060775135865958300936296281693062886920891395416777253898396233640036873908168475538214760757161116708860241648161647104006596080566399876050563028038466240210280142549061013580575413396326165303144959938461352460556957330958655858398656218518330483346363344250424448864485369399444185545856827098728315311756745946523041385914975210236957463846485304277268341161593699782416090055138527597531203022438361105668216522366212277801029467004913711119294454198954987519606284449044214646779744808530256911872124735626728093579922712514885419220360925118595014537033631332546225005280609447362813213522581844151315406263231668781612521157822895859895677431457351772298164135803125636472885926504717989981224635920165959821955774199263282902419649986984840932813622856499153925601764835018180997133977298448157477377557671400701941285547642766110329897463547023159039439895331470755112422117569800126954064730013902856268451800585895883630946081526060772054839071030877934256352768675361955465169079592195644912896751161395591206943508378963516529853058608903250651592390359563097355388924165010111144028872386277813910447092302712757765881293704466690256350684753694470986168977262265194872921873211340213288893156559980941457161192184744145037648565450893974953635393840240212772842319426996699835795913519189583930135181830426114806719040691836257069233166735229241473151788361708127675014523893717437790447470543448880874873458355954447290315362615674718486409284235200120820698585330113041356022160106396625583353546923741369660794821251432708409819192888545866641001722635116657405861348449604579537675218009839861166251124057228585613538540193772870454715764414094656341605097611708287594592018817090834575994269476333967016335492427995281246434560058871256019754007343183293494874627748035040014617342843102744356427377951684081189292405226930809624624716139693423675055023228050096484356479101766460076163362388659150177567771256446456080011091469281537057059097281911467013576609746955811164356350313700413130548574985593663409546657780638003098089261127514519545573201132281324084221214198374141596163213450956906132615329035730697965262239171607983976500940240229430359673635580116914080432293134671847972228807930485535288265377391413568497098425880790888317349201229162134643705402864391914330983531960506852701176839982981802879267179122755793820792411365158521083652639388720964742981535908679918446091833777854601626667288498037718103456568940435498701371364564625121563605997547776486050141089418515007425556901491383173101387715321191327632362213704072590714736725116715010931789057169004800684456264653390423577246587297544471361213319287228385318339554930349132604071660162511314240164191622597128220660195949860845203738335274871438242966638392611953302668255587224090809811287076173367998429527654089341165669293195494077553585854686683556515696709940139928833326109874246016978865058658590381314988760826311497328983748082458537552447271151939415111097663301020739767308326689948536028661898480804049508547913671117571096809398311177389736335417705524462603571116897198963588874241036856826933382760665555219898746945480783004844305402003969445054149578692042349951623915014580243274087894242777920812404019899354129974680663617381289406272464245721632187164552330695009464709352536586073371809016029837703972112504218065598704096920461460915441487675629589828839132323526011232666988905894611083831525453495876088878007628453486577933496736412457691956012268298097361952475063380109606488238707957713458810230890310093345207844637780608105775653021952822645685503113380427651762739788230739486287401966587989032791285564251655478438088420719052102615147083224344347313662246538463653754951226512446138559954114186093446213612387201275335382955204010375879873666347412634021092512422271820745889017710522977104167145081947805074635379460766635354858937501585464483261864494254306431435442628815402669645775964569850978467815194213723191000148575205248601255596400723003022366899696599245013620671561540901936798216719210822627605301118364220295068240551600292191102449207927455583487394900097074565682024560417204717880692185423719273331997284913559426897777851794291262939759144601904475565691553809575432872207014013162050553567266072346947514799979475637562395065025211384784277096892630452357339854404722542144360235512371738843797955093985053135288395204753643408782452150072125662961548868373101866118950951273318511219763060451346276701691569289177443148662939502551580054849877277709768202737045875082112629218694141609435976000708504848069492696547792555615543130608449692754079254541688673186150536702899535804307315535731310034739600461551292053222133806052243408281452544112449363321932127950018444700746828169951061572686152546958711924072614638905167089912051875398974851720672544847445015243611622904514345753728835467390979519510615252344084945904293626338441916690616583269396410641144227715115317664238141595933629165939990728916842858010500452510787439102733508690618906364235520083427486831259316388411675457112726417273950540389843729512854853081499794534403854375512538635160435038038150606172416464655045932796465561765495788413938082144740538739271194513801565081118575251412288236422166267573218741748619551723786040512866805063634512363762468760354601117599694624869944312672124969643098579851224187996062457952181304155394398537790832519754220947822061046007442991455818174908768551773209098663767817478669761373827104423969499636498219463382081577107751128377645344457109103285512225948280809332835051504677652612968719290317517161839964911852293476480505526649248616331231799533469260975060643696184115752426310929042567454642103201886953162068884036838650303285432208225252687626355671077113735916514440143523872182163926474457930261656835318915269423334046070534570349876516249268897863370699711111975826352796466928954513824356414605831264097345027636364871626361226815757278716438774192442038553873231902288193614446664844844784963135878299626867340756587611431260087066236808795239154289080684838959666436675316299976297351568213055586366170295740307489663833070263784839231296490149399904812266195234900216107612809060765608128006871014922980573125664268106659179880223560371766200966635165635554475264701845453848045375466662216171146396098403597786572377950972692524637578506433593467571265193402366406439457498304936520172820299165958868435349107431281358553393916197473149177047162654849053606774939522201749236103811987490808365931720094030290845828256974726376357685440940441911897394352810722556072944969914908324930218274613020838277332464181411924851281489163328070394603471370526762800230754731701938841403684085593723778501359721587279925725844643696692280380333261532592915038316624730040584235172621949459641388215016765099766399649143240556976095226185554284861080451534102073808048580821238392883449390056341354609482454205901711415592981537894450947655068272754791923406115391157086131030153610816010519220463462410261200550889132914962265285748472855834851837008403259681296847440807745871084224476337511669204163846591562621744274964274151053438824907723037582024384715046628666760338358601337313424018289093473299329918140118712792710497287702176165124613876498431119227671560411099831504842909846120005671320904638624367954802064612033107871720339176908493076014761859071672236538399491607080158813188574435245507096969832804053400617727734939679409271819981775247834354793986143066259428710541693544383219065781170009101094253803886403912928299073010336528281193727563373052004703875302852751960148697159427059874057299616875170458696722624967003467169213147097523876040160261129214172956482258043622673880834056985759164292699247461228711317550954994111829976195185865627943695292096470267643025735829338200652219178439423974828876052225081037956222950726802029798036859395378348790919840190253185529243227310443716465210859431512232144470129746540895883650442075997639382487382125345397792914704771760689524112983861220066192885139828149040672147238435163952618347485169577134455489280332706616290829856916202537529585642117505246631694181478468431384274845128733909308991255053308790659368831345177216396147980354646247089178437262886834958236058888562762286034753625622239400789770947638766892923125167067605075471444503932791887146334723100998882305888642937702556747612676132306694289221634717240630981086659850632956702927844353381293885536490688744848202923810704946202683232870069678194361297357699089116605191222350438203411810482110186035339347069179510331883288852927753934465966662931215051238772175811992225538711496920998758468237216458842414863289708172927060475933848349216098289428179582646480559363246811933477135286099342992539751687576766306066541688537994920816214941959660505245374320448973783647976478972872077594950162124090353813794595643670803963958184092442331098392268580973748115818116121741141839153825467569238895058811264015048084608973724994668988844247859324744842340642147367775775598871237592185541816450144619104562888035348613633045858303404561092542975690302401634993186108327609743329587771493303912636046603681149529666346256945767842519728301410797916314894314449418533101187766639745756271537194210815227718748173947859994447279886151863914999776516628680631707852453595128208863140756827530301417682137986287903500011558629397253895087098616785850498408967445310298682954102875657159930991623022749331768901454879656082628231272916225433704214044736742854641491516839754577886869149570466717208793848756118610400904697852107106902747870716430362268691862374012496350520738869056485344566650835604982888366176252400710890428887788282098038044083903213058640561288326196603409086511646973334390204009274626442967342235787666604325138204344417863382506959238420695578208676919344868805799297449682483868479089973777862386983307254559035630554629454156171165209358735625675038902089862162470694632428488069525768049410213071692375272040663022569421087816865918020433587554578933634406874132064520118754482475091703120336487258718182112258155278748160075919262906990865972357405171150883542828559121386499326681273776817653943277471241376387300341530205395862749517393388893566019769894963619649102039709118755873604333472727359652936475827575642375454966817600888121205448296080352617152488165024623558649111764486165142170153759201716933246119151068200579515478628946502665283161580277192865864344178138034225627569753740181892105298880074130002488907431031806517057306923111558199747961788538635422039251579807600637881492152154346821340816740731241471743791520028311083156666611600642180979321160590854087546655449794173628132177522026569309107859076500522561431124353572332389627429443163052016128791599361750352480353682325166004581105504197122099919188876446480216591108017089654518431628873214748300186596865222564939030915420855261623736650025027390759803437318660661374770158267248051068683852977122663799847571324885765914369999408057112670189634137931054094767351039685168246010203394933907066452855754057289208817362343955623249500142859848280301602942841799457501483561608105549291833526909602042785938471939212131292868567794998538060382716223120103553920693292134964190627704191320733070448303164692438087473991310083397982349178525041835056500384509833449101043546678632096290553237252587480516295900764384071303279218422325823436242385408684486216153357346230248437922733636964675033168916862148008874027928339575202799817234197962099592115247993788598204909658947644789444259047100175745603740394282809814418978022678444011368672444733604195729852303508184574090574626682895120219510105310211145203158772409353275802248228162594322919033047961759663604668571815082933269067870682954644753834844990121843653558764296451240837093957344357577987814920036054471762472323352092534094046530154269638555995375178841305150109100001898839493290398310768313218868255789769947590086195009569540037768470381868454849807861130849459671809036830774982910625790552557934959288538100923423309393849394851767291635480984012734479586883447242197058414801695310838571269158494293153295015943864368799235587875362378766735371259943660490218968033056951920499461101385361336632562833801832310298738864294631583410483210812496101416397468661215406750970873389784248956376310313103641925145098624308296679132894701458601187495626761418565814699134497836695098429740337794618148688961774085412996348607015253700958964171146688211942227933316081331346898311036559259410022733094170953008036815298637641083653881432095416798687710778731741436492748935651305524087222256997669214704461883763452218837682936930899197857183352171958942207346186421486805990840644664168149844751006849741844375361496792909583267850435459050097228277919426747742113811218227763389222546365883494334900820026680568539836877275260177777012623051721565195809185945876505021691332049872653032649077443045866410134567814695407575062774326605977606305172580233403095285615839474813844677109538517442731760939272790256985592670565087912155888211371016136671948957500245075838334837504979753977939418023798905078189238961105704493822480933320459781714033525252592688000151290443299977508159993789885180062466003488033963740750958554533721857826033654926380212716149982596965978677812691157609412898791925835738980536622915794072987402575299020592233440206063715270636746863174511318449728124320605531977876896180356631215633481367042443049497131514681474843252384094949029476446351704367689556211806080707892746081276977732474691629300389008454367905529313475784159784935853181223991387141919137786184482981067004467458569125897362580794364145551931180938150435738027178460419244681979760135375485013566493681253867127002741822929696273085497202474854368097412073704714985461710407887844171392582879958632220249081061167725392411333222367667814833834667447030854073385892784585180352719860518525310851964128014137171676066670792492459432130113057192674284188555265230806271243434022797807997252391953829618215209821772972604751417911851016885973217688909254942569056864367310367022778043361380433811037867951301962286400724196444471635562309992518316598162369601578867870344019621428149463268479756737100128010173593092979570716095816471327468489867346990244666995036572279185240473196384448885499118532041977409798673524142808271470340043029683075388464497583769911786196099056173345387869450707120079735163145295486934745302229052079314434256447275937126085344008100918864298770628007720445937490907278649669410215132156048433707497760826352531554497694789090877850723960639961470568569149237527136930992626085651676214938747217497829410107977037024151512795079586098766179048747095849522119728764233960448714913522293372900019125986659529515184924409154639594755884520832384492463081926817524810176698991616003326802413678183332383788776532045617007870806498613628147400338215338269080653472007633065221078092476297264203795555623007309823595788370338862449077171088758222800486381044000732780244785026300543319970642395474380670669801872889595980836683513188693248645517265670542147571416232612678838014610882078934804356883772643525068596731467473486544680526798141212489547935306750254751950154864963572751845458345466118328977602246882876256450623560353857489975268888131300455428425825582678176325121443830508808653899481698579071547426256475080162534356647035893428533680392693412395651334163789660576211645069312898983481582640553310800311025522760172710940120393335516916901294628866045218326693640103179498856525626683629991881581933458457472789161386304708194099237723474349436345707274516083724905143873661995091259647714219000294758664948642575739945760686994896769916866297611334077580417190191467522377647315370284420063367377903372871320621348487515054030800038206054578800425726801221450495750094181625923893049483836445914142727955457523773006073232949780179143032087018093145035398490298585341603666588165584912901315175248722302698423426693305721938063802062193983637974014123627649075517120741610493182521043625113026905179650993062913018642738030988594879607265066287648156907540905196751982691272119139381355556126879612558123222129582912346338321276392305350941606954986763742722993601340975902935182851841102552803727915970728167218000699676465816028840829287934179777491476075511549628556375605863772244513871420106450127211490832535012281430515980131719832042323815930018848711884370715026950681128836696115633521900466970626682092963915174002624797751533244907104457782887206438644149292739221039235940118677483442559231826047407789678925974734024366531870181123238011505863276914937211587215957839645766000236767768215397162548964917569409254980028044666877878634008501812053286463933985742625121195269308195125410670667954148029481039428997239732650886098978956039952588998999771995284187725879064730913990825285992710600921069297785041919845463532639569835613410817588848030074585831386743911433334956284495068573083485548848812393618832461197321642945009652120641061943479149599640386860860010412963725259214044986892368869448622434994237948323437488579551332070147700169035400459267905976536699950054600375890565263867460790661626492566716284335781732421514631828276493671956573463058965494703318919094408685007637833846292848363618213086637749615116533814124291430435858628495336798684635621905942863676221017885874261591751360791443818777124775204278322281385090267317649787759575283541577758484660244188214313502342192216701952016636021460724647335644771148865324149928567655033008430403957940976616790411728615339690170576623725570352559447707697950487658046279851470541619614589813405451129117053253232878582657409109866074212718097402200332597687173461738107729151214470904486108519329826717090203760211809553556262579792419823376676793877275932654327662024418989599057294678721203407252997462235459000236941281376315040913347291957277811027995001236297553301865277377357280300375883382191818706552262438488360584743221695768667910457336319777869683138675348774214648694287281561908316943231396384277674456493721241431062370963061215931103076897083737850840847074471498314297111134971381665905568431125776665680660348993902022829354037339763147141905006118572643698453630943117321129193398308893952105980016005529529595512477524753782552925411992487296445938410382888349772932242989665944312759225840613623992054493207373456988700462644904801150897022811337026855018647446287814739565954394186718899175116263797736325362640204798238750508210545421414928530840549512017510390742208692151462305511787383596954458636920548629221099809030572683566915991288046833292084171782163939636726965662038058168044585644551524287699786452943297216631399146801144609775363980883238648596347117562370767340531335269521878013586619609455545749948304120598830986339468181659740365280120245242470111116161330779436698932194244258954581033131538347071450207438108123902050838205714559968846725276704926148667780896393118511316195530109851225460288552462343914015391500620613485002552428037877049700209864814128083465310519989822487095887618533796850494031165327635174007290224190633479067905721798861304553275379654434334496221059342174311221963284513736987476519296159015403491650134175491166255165826286247210079558184606336811395648403150395058962196912783364882573256130824042707122724624464087038871155952526540942252109686373313637903906987239151125546506331487892277894096796479595685576773561994205725023366435467288341203706450000165903413603976678154312323220396902816707562787939020329061863523305863420978794343347501520821933249673065450538160756216476342294347268083583466860884370271031041633055702613451511287643659775013527539232770496856072740146956206654322774888798010821737636423418588331751745644059452636668862359588816574986117813348709300131137636545764166739009204352574120333000426883915118341257559271769845292282389406933846413222403959515390714747418914678334120150553091317329240760963019521159093149237777526526562306065841015036126878106813376588891716887079776835482160075035596285086516844487195338696591326955827649856797477620194766872637960476247131471862479060563799503116799433943025019917898199500078992212795340946219831768317554380923317531003807883569292919406627271491442510897064869903784823706965238052784062677958138127276384255317062289290251924421437693658831352648048158926602771591888657886251836356294549242901210772268252130829216303716148111905596993805709377117462897927037323388409185932669100037444480506757557995480589066355259321609995301723576459028263762479610554891787199252763890172386133748755748803189210003687762328025602135383630363277202278071440981553279687914809339013877464114311585277362157931823915424247545171531366438623729947856001943516761322727526489721240066360343037477681259745215653317016455641416836707758889503664441119685676077878019776730598363574443595356957605577520484680754953877106882064692542474224447107013090944018990568667419470003360287990046614901453160389434706987182456280811917526365900210353577196235525112011552883024118516774177286980489979780679170798155666999538076118777332941412818904311362437351734219688925668443153308682176829610820274196580058021295863542268443306304530812811292787810897067707696185170187209547347795445727975354914396826508534801021335570759429503673383391303013938616192585864227749131557138126603959395253922679390804697278938034936563664737578479419204118836573401010738332285399160202549580331565230162931625666113897868664658886471802730124334993446080213384081026383668258410220304005885934456316019191651308875852063540648584678638923618010250221974222057225308429965085915892580416921792480635939277107020287370302646128193766646537009802518234330670525981085448427839012104533447883535935999362515943912526047569398535449653708407278082306512428930870120864866466427424309796879624601360518189229215229857693216045049640157160204331670335330844436004622443912114615148584144566814996596772642466092907836657112853742369326454540280777493543209822723616164497846104494835981337206842440757592648364518933974824220557902084878657666508540483350977863234264405678142542940755008982025973708667346157564167194349391181037871832644777597801169184704321103405522076645648229202751899360265460014748485054166013162940668979720096219186078059518115714581741952502461486429008949135695620926888820185438246947065346161198558068073689608719098688676512084708115408123991148961560507827061332789017290055687557691750807500682360422203825967943001502056314064235752315957513750968011649762294843863570115333040991453459043907892202273970830323963225976941684655992819062978160079110418434042759927887655442205178963041913720962936763732814553296489144566841827101643736972506864058974426685318663657503831674505580754924607781326602769054696771356522193038736542714080383480602282458905898200228958867134824235680385161689179934283079425282211275880167446816072402825422315158331920619108760448415873617353700117224672859452605131084387148044394912151140305483498676770176599079230348816755155767375020344556399052018941458324412467124800942000296007354862727500833663246272518320053092085687242933405743842190520599419146430491554147418739782274114768444554347480905820794706559302675797739635412453050189725093146516935267429741205576971554868507626274551671070811216567451038971343198988164708777708803652212346263713208302491703258587429402052062641313840112144982189948040048728832933900439527415509999927107731321968077211548497212068697143540506323640257230963248455003910336386153926000531306892814621665232643258721758613022022235679005984807506957770408478904426864055937155253044455106602044703069294839072432715860890500017762753439946845731929812350340966542020598067465077910427103445115918998887593136259623227702668206582249101859963118735012423966444010937142670117553611563755371401868301571597814132696164287983833847599169655757014359891950247968379573486762764861775578314332425003086865629604188561158801242357647723020494198605112777091460603252555074771103031436424319841002581759248092974216732546881225026833754953548749345691310297141695864057884150003972478640947554301564731952786359362823663015109125283546453514808490167259231225757836125239343137178885342016543069515320783619205322447236721011700127918270638320670087423109150053434567512310747493511061702272117722455557450675749625341258021029965284769039417271627377238886449304599454092830579769744867171932358389463744803892834198890369493779070139444867947711811921073370580223225499567909860709680494597286094804448820112345312005782527934059013421956094896172307082338645504916158027210377671463004314775170521558508468749916893940955262660477042966146638872275684362732665906530211376497118574986887684631476105445782134381880832863198862357589167370723482105443548336658666609232358240218566449155731028291233505992763210103292028154207082560987184699704500008022916387139437186736152630252867287001600680487033571470976300130728725275218215352036199625527852883371406109280197697450999820176977168245013421987148451519310392306592421971281013540018789991919856337640973919014655094813653307759694347258123993103272836011887199913345897240138902198120294445758898932918965914143564990926157945940209759219380428511773009752136375199328126859587141512858159816727735210269656799486416770981895634980402099618888468986408002430334065601982689963157039505143220563722290876402839234700515923964408593298934820623053500691673077317052867446320893537027576771150289627007554433192714702800040711120985091126448689386890897473222886099414207599856264037465160803324596502779994260061743803829136544790761771830412052371968086325034248357021073288013774845978051924873826802389584447386769591036735848401374764651630118119946465972838045428592201765670502785252518202580200471106662300028266916844116845431618005012879610634111805322992368937490955856788205396423742687493996120946885498433679370558218044164885391443431850880037676854004326749015285775804787124861664864996121451313642791176352312304812591522250360790950546467175567799675802109434353886338790617595978905260614402854222998174081564583424404046239271736623222094257889132528121830629657296768765642019621727026220189464640761135213206174299464245190345091726497292201677447657959356872502803115436546234027980921778499107669306814837850308707332883234279668339402449268884663326498774164980579222539206278360104232420140537148176381126956053010909817232693151856868972634917617266258735873064222628174350485798619880509444788741607558279185704978612778814948635945483427000107824662101146606529727066727460346611036403368756458490015765178753028618413589994999746395000517231414102517709402985345170506179008821435739151863104896580291238640240392145105829123739727017072941065156365966526283069313743615568897111559260381309077669441926454923113209342303565629298808907204574002444296006028990439350222537051150980358249288461760893809248770545443653950035809807993866939683087835635590766547026278599287505474493319353906959626526998515962027003240365830270392600463972407553451899148223414569543543002674826030441658647369064819713115179644002194696211523219643852922023035186080937623883719756103374739190377234881393372447833806718150560762889413332924406225162136724983642629753184677704604463005670663303887507993327706581734247479051322489857111093949844063237269682745373621834414039899186782067845884429899439805125241879126182314283537344686451237017814489347140877711798184913868244003112339099517756938733530254572595294855908656468764692523622452102452663102710433369984364918058641804946848555336415196602985318876888870359257406994156864926445361131432476667532563351214913365216517746039422019908961470822924734955530906582598960129613682568331846490827303660589474349088959937371430929533753389818464348855505679722208396906982283293590359019058066244957970686506839319863198031706413906717058719677157417518651991725371027120947835623497947325453170051999863032034131298818191301565266066618760257921591901796084401577262462981582956767200908174678896961629203965680088750973508453741365140807276211251366650734076906425728731035348164495232136142782745349596667771641773849661935019967476257909525343920631988401919510162026828756976748008633674984609034107481359633864759343877997908504493339577784869282006007470167414914417004806404322397229869606431964628712983628751114450603466753480665763439831728720024460644352881692465538933810379395950334034352707669569136290236462329161339073128096241888019444446881465681437296241508878667608103030944270393602547606520176575672851806064881236489447390164654776320985032090423514678459860826900043681653526202829324368466874648815371446165556543810860358921081761409046646932753600708612759807406403073440485587679904694665695563783949029244804085515926109151292279147274916632775923045771209507562528060531162519506422168539814144261476946290519315359167135271844470027701882747437757911334566476480662623067618649172261972769512307910146279830896312593675461542595797625724594419224186034475281722273064310789778003766861642225752130232401222955632302076612516270458837237230855611362896557250187450189504037945098625381578290542894826443915749271222143914235727181951823895842664527711520803337823592771358547992903820331191963734896906914536074568878545854251233078487282781780882818608580746117268221191424632495543457406363378075990206553684329010854754087810784794790544591000794382315455380762374580026932491714877967685846471043318333503271951459799568702681356777161544076622096652187981394148672181752761511290759444313924449428106987339489992991821158686619066545976252727540163931850102516739537372152988736752276603109588721115650514458839619908441351742446357726302601403048797247917412476200038464440807968822248023204140614965094369072535769987912880460991217584966641987712473358658298054208598022339600978040475512392126655566094757760724878678412806829420653647654679078531982024271694948498475123763284959807091863995772918700829283272783574609264114851095311260605551676341225426806328732985734269414165205450470757846458686430512022711530983086020683610677550955931149368519988458118440827864249903384953717532075183084935509702405202971116580333118327472548326282106095940638998534313948190385308489817333339310900512392780624849658170864081829631917359388434972354278015284901381778651807075461670987583303951106939136938448065329176853685966312130853248123758487311067273861681068029582781235922317847592281284799461631696558542418854419447016084618727950879981716059198301116634551849202886313042970781277822449197990453915744188510446714718219341035137581316867167310498451803668189370454975408932599438961315499593885298343344101043588281535080501609868101674289967522608555258438281153445235074023773035897848824160823373095786093773025127389452129198444657199352840780481909138384850986667744255409439072939234510211354462663457371528759175593198852618315059264744985892989075431829122891227583826802309187475883901546612018935372421774826842323256834835289751340483873002616851952590577719316873267497296881516294014500487325457268263722242953901831977225314137769406956387274391028169065737415426782815178043517428016257411691181829389010605239789905429919517678608016210542085879774423756287668685304081115840710069729092443990546769433482927024180561027307069188463600260805296941012529818496700496961209006053489593748518535146721210792475208142298739362309589792970717280340131905353173490345866840751217685833484158351732592616597331978766140429951244271555231233286595174500098013834895111199521536859267569884755628208848050646636346379496253037448229360916087621115220198260000787597373959982619580494742969728353880522195284922878789680795457585950569527288192682329288516271810385327558830503549382722607042096332369272677400771899334995655192667214219960343780458851308293244238601302516712935754463971946371918717997703630590239984051850535160360820493813514786843794205114611195356191874018702196909824639631306985686031532882303548494317376099361990202703760586970925676028495564900409909403540308951011360873555623992045359882653069159069397947295681336063413941187225135540735748146150838327541151513311600400904158623591486497838857035021415870118469065348051262124322257151331280483275107770150583955721804826973841336158998611138949794307227992015878371493977003693519508618047027670251706942010250459141714974007723413346830460651579252264637806883126995426992309206702524031689252168703435389830599447008342101845632004073824811060656452382005990326993936501343676108357343681085498690584155288625354478388571974224761843060668347940213774243574872350780205523918907648373987507634090215904036796115369893981652503066556273321605553037943422914240619778550619109287755574214659590692081425876121163572307882750447814454309323522198745484729909296266310421798162133983855429495019989002243745285845870142155479745290484171201718600121614425036164672767738887707777486897015056476453616206817779409032941045492518390631490522032299114797177374145569059612682430034870925157679587485992982859699445037692205636470428661506741998001649396079721901642205913555421235788652208250415701381581792461140127262871677753325638771486701015849852097424462261121891427540195010721380093446501340851080575954286156422468720145549403488050977041353210810350217013103888176275202726409457536983752370217504815901093270072603356931543903102247004287757895687083899931362551467307958811417444817524830777188937605856226993469607025243469524045308526132331715366081974290489268077861704439632587858822919185453032378281205208185707365458021406851956239689870241031662887347681941691499191875270035608959993398786777446714913378035043908149899737312062152491535494242386024836232216075479547867295533561653542993222324731923458262165776968873201267832371698482908720704389840294002767849556631857109736243192428125490146463569129817010707947785729260099726445818742333162607963816302149623149709486808057761049550228966561643271567606916342836775670569525279751539890033409280994215625063760283745561481469227601738652598169652611007931201314789657544586827513333284487424749603732149530080365325464328486622078003643786053158048526953843707755517848065222337904488596047147291225141625702192237886679846136442959354348947789974226358678516128471857676316917103629705029024717192894033020920631469935910823791011626518111265800077893583880033199244856123135963349382544278328868967596904320711609380334216588436910196521253764081384218435501289786698118490539373354913769392517443424525042557511876158576303226951041925677193771047662017267879489150630931604758923562461103235600081246981620180727852838130229500634699869124444698855825771280102239389478292113086952748190758332129690556183629264157356142253946365612304378277878581268197686600586583388233381262397663678870740049803415392044878068962045833535158532923412498862648405929887991391228106387417719104542308388989622679516991757090372813606057725837912043505881122931496514972969110963316165145389977069740195958868143287262554484580234958764865512165499678417757303193957103253197804395407981523762087258557074136007683518000536689288348547140844704845051159772024506986492198106134955039402693545303103747854529953708834323481224957816887899271774505239680342583249947477145629722537627833120202714632479776660753017810334825737646668697484373219763058077682167173645344906387356204646829409779757366646051090464427251975158858290644960552772964437696037421135713112867821267232480552732814767784512746240103258575772941110508257720846358915842894885608454795601818003843420153153693863103019456690201244883721618639845154489598396763310212078222297985256792332047373687265216088563496716755258389592329995463754462629378119506931824038680941328895176681742196628111065093616979588654646632175398942929486296157164172460538350655850572559960860258413201444365092792375502847500906658980539252362504181535977834362642319164425144905477550553544692858740842321558399903878039172799047557160173029039831968983932302225652415876206156342885920062734221782498508532252056127546367853262092230008942695940727442358853351570116801974820799709951451649987780985556944891277531544581355258537056812578988100679051750340560503738045735131137781288739148647344407161915341591869796399888599164157581720685587960088267561097163043711733675205470434665834754193048855207106940516548751981413110804469644809336752452926948108472157890187150562804813943610503045407398088822070947412694532463026393547469948630444727556101404197580397257822731722765854451037008923550446127328513874332675388805796497923844645300109480709216942143332381678428082756052546823848505615761283871482446530619778310231271053306100450967376981936363444642739194624259412880293209350282246132714205598830413252652758564465814197108883907652740605826665940874986803046497526530821946508505800829885461702098147370111102393965969911870824437750666240409350525495923764589926581140754973704036148369084136092688161923991922813992338146269490162992523461035592384475877043504937481002007160632883839617333625002081822945707550367367810899343316464801988042740443346284968776966693118689308000201157465251522039988975752122803569154500156169510549314731732146324132452030518384435186484351982842009835304371823837032443512524314476668365661372766329085743339707726217093805667977906660275685481148193316740118150612737680125083266889877955109085484732679226461832774119224742524269882138464528173889982518188960095689389112033082141172145801497783395777132744802551719208761026480699097036139218684361524049551065357005833169081598626524455514812438741436586886439516143515845599140097040096370646839730793276755662584946569520331802494280601433247670383000057246074079093759613521798257378964907010266810771918646038563946419457823615366940682920797511981956205947797942679025087926695523634510359242712942865564361302896423449407997963649432512042625980708343873541567810485440670339452162947713662920897273456790597901488989489301082914612045756799962765627630652632645746418739394248908349623496489509920906511513993794073876548778841258548785578965593140031493621553448508112987011093420857649295316146651777870955513440623676401550846518898968381402679903160032343615668782592386321290662681718761959458927608121340250787797500841066847281609973352179292826600038738565074678412632806642517846750721839104366807214847581051476316125609905059177062698032794680290608545665931767057658061567550641319606204189035599960981840927130708182366305818237829609327367851287503420129793336086087353331234257682610398278403022698275680216437018007755094241570886582257518533780469643827737949090612637924991888364440837411815412435871734338676573401515853379277856721382144976003480511225278027980901339982586111619849387562713602628256076634095841280459500291873626782416198647307793573914484098001707619046672982580738740909292777995873103046752931474390817468971949537656772077631160481006287414903454706828993838548519990716218764097714685587766558031795119002633816192886224510795348458554480008493947936322351646472403103301697546961150289335834929988336048150422048944632290166644701657178139114059685124237311642002398566084700866840011321727149075888391239491090692212194695729435740058593791235775997451346994010759236892435230498370211349957899028346199875287165098727887193931072197023071507883599195624449533485275218447048964550368581555316050615158271411811047002050114142828777940945077645056453693371649513874669456611123506946589144801594625669331178661438002614088363468387539882392846429712164860852508230523731834034572868811703294411557128797218203341566760666611864299156671620393879548825651540819749153292232948977170102674391953554002687201012492776147539094138523377000459143771616318099523081977981159540694679290552689263207038348588998475808018163527953244563279877642972726123921309215124313326995505432870964124086101775016901786263091010060208129310294417297106800089219211813781836322645966128460131051080067515179683196795679354747216725597092110073995428034051734816342274930036270901821799835388608148992131359778420762309739089835379138680590325498294711856865904571331341530412987904380249686902261878193664119050000101467383764102239899675642264155947298409842205747447677770706713890655988385974758378425232556442949956592772533315472950799974274103959585446890047587240481977946389981123736649993357191784371742822964588915439372770831562728979535407101948629587454407877661855622064992440094434629417538628050643040555476574890436937226745770120507518210793876128489897243041031109899152930363337444692595314342908767247255252507268034442291035348622875677524575914213518895507179253549265045176515419248924869958972912327645667737260318453301175583195082197978582344509918838964853728698231392397978810945051738036398432991178537919239939323629183958544564512858473729738255490911826295368113680139828452532995679111159558136297444297134466487643173288468148838158437292302591830234842660385091451766421512976476249142753449336313651443506385480339825548412040250705521791791619609372165255312214430369536945589011291331818725902369445510916078719498860895273100111352275258298666926599447697879440724549532250927706095512979108899519999047305092129642257941110067399076434135281763139112806768158238760520818016461509959720760933230833031970965563681226177346106625007559741174943943798099535906381859332669886374753744773581175608204779503068723472812557236343442160249391694505747764611904383563156128549286689702958123110315363335092787795134997080543445441680508182926611018166605092456127797177810309934946969240504742451959663612766293427134358891438658350333614210345367137991218798213362869733496423577069189003187278804559386195449412630072658612933167407934330883370442522186683332933409978415869745729985742353295074959915965882708047753782640218640923354024764806200847311056427312300255544364104048387964689147485257801755418972728901741263537303740890667603466400705728294958304772756348581422088891907248560323026555906000506088209026489402548088037245602895738114210883342096377189989658862599729084522231550918020570371628235515021779862701444338951769748117879928126968139031892735724008204226332548926317244344343094299735798135385226545585330675199290091171363032727033551025719111300343785649685800948201111463622321818475241733816252161641935663881260664967038949186729509648866365782374126915535802175122830789931958857846412930937806201863158672282230831407104740806672651100651915657427727621102651899940236842113624597993225689173596200102949317118901056641811812368698430418532866563106443389781518923390065595406193548863854728938301474685928837478158409655572114360622241640772792367482259133344144734247418698860488684814475207409070188015174807631976858472589540506034578123724978998193171906046136592464629208193313931167180720449457067458458774747991090633666439596149573032712691103306730429400479366140441427479051180073861699965204436459589783232040653081664577598588245965554088166944916168893398551036650872327256569204390927043308635905579013160410008531034903094878466544980764060523598786077030825378521180666138188335994482506743220889809148019557731498659227518334009421417662457772386506507616491944546767125199475885406487414725016636901546355576272337380457808244306166575392410909888594275320072289190106508356688282555727073056447966833517340687444041932373592538501756533710165320954925981734466643288107883602989265640585630702299231521116523371162363013335999047830833743368300649072715160979328509542062834056439957197728595631911672306931184764351248872508975174522471320578729842165374627694689435901750937116727777423038849427400173849556237409136915060199609068572161604161295326267503012605975980730359455627727298042426206902438081813296228827860172374733268262054687802393877114953207665217091290797860103597041305968017277090000296099281872206684328606766255695335021523051220802116949079511266459220615083242278016027744353041220076361494207091764921046222134694357340102567139820263902087893721750773435709235660078632043997857712005394262213033413120288011971970020506404428604995562648006927751058008517344247360456916797681187606073172623048302288215608114506413248627962971840404935090348661440369706045326721531655528849413868384193744325288216108198802937272812368587903943082852031575101542908218434611700203556319677269897904184497487077053926252996254686370428364828492937732393261109060000638805638727663988365373127134254186171043038015837527389306159269721423946949950500394383258232399916690536416092974118675534412363177842132455010395980940928061398120817868988443852338072221202336477913777036821864763505890491927856388216331604869038398125290688747504073551413463409043643501801118137936213427582416196183350449021599335489288193472664187637530868074820476035817393315067057760298340600824672693514552836703340903775866318255657078192062593061955507344065509363490436388086901835622336117191794832042904373400098595600943044662224386737458674810996385908981552714277571404366304131271956875769787284730612596625547512462970894731174362354319024983953716143676067233693545564236066804492498338282933255770677794779843398961446347493840582312751408080800400739059539601618740302521656577492523919587882315256426028997068176756430853416479672436899670850332925338412208517833062424791832778468150928687895903301081426056096571564682250436216601533671089509990838876564830426106039121172168752867084838573029829912277279335542830774082488859905851986617236089124460793695424860123616017827010610940702981709412420176889147012103469421431609838666988199316414584953568174764343083654202474915549923605997881399233950489744250915723732223318665557440965456245927277660172711725320829891420926122900391398398507026611598506427176521535932191334342678203515742615553982796456140977367123024938302520173471333535357515516917243794201112874779391360870671284159345683252191333009674447664271083402221564336628633033782259223877261200020577079412616052263953732674373747640026092308451938633490044294333681437768165533533617549256210756311020485261928655240662739733073350288767789285459569059682225938970015666312602136962425594119367323026525967484882248925299352869557082995164076108347818759935206414620623522860041095147852386399608475045968621436013862065708081979122031453703525999542869291647129628624494544086564006425193038695885564191194357125522139534404125419685589671129918616614160601955268535760349704572793993178041932900247084599634685017729730342288805178659110819473361706160284888368873702168507533073022606578268552349805467064856118442927583205878012949056374800959797156798943243648518802392116485931367213012154708864734274577824961293993402441361369942922086625919751980632228054761627955404811587626423101094560952507199011355734985019912553093232373891860578950719995756799450977395873340928775250562048942328354599514808472555696519104002227178298352967626776300264862006689819968388645484843459088694324613010195926897872852734153491914411259826673390031419562944786088149655824687568976096401702676945853270549397137750112701243504492846879238578172146395775185911505170631674076592048220885740634223594983098569926474697934694572511921012935398366953887700106255574034937610829174428406245692839052103029512750790117442394006641077170601417668669273683071967952052327218100790484587632151961849285208596996818428300161427988564162378962008660833856464398479617627183639832059313065279072434579256482285308805709683604757932637188989272270742211264054981943033924410271618893610029393513965138980772192850239270897672572940390331174378317693570876277712561172132706109139668416436619067096213095064359591135097302143118227210906070522430059062699353253724531351026921061680710753363533220439227871067958104191600009922449065529229536340622371698393542092105461606693067856856375689669997089296544581648107239839667389718933487229784549610413917809435128568558742629997351707713859331174296628793805675995166105928620571270539255853673381551422077539405693731119077358919081662994557624981929298924516468783324158535730074533833112608620619840927299765008427735422958529746872784065479488181262469221815436283354960010768846244029566878336659425799320077697120955795891657517286104427140510051262663000554799498258575607435220148836983246357797356647313028306026539172025962395487048766074523210700425324778800006068197723209944909316250586555572010130653672525407618734608391154608886292676957581034872493515962356087133751006345291179553093669182789602097020151519587619064688913903565199320061528842308663580878140199295142178600127664320102592887343564792015550883549487802333584006142665007229963642849776408750706191855222951960641857091700224145993950658758600245477993959891715243557143045156994157114851875102688833494315964491955531685162982207224212116207549835429017086435250361737948754025463504770603255930855572634305436164483929860060704533811447811608220268305356816087969022280555872394703169840081002292054278295220601067469836405741601407447517851714105988369252658282934688005818620346805455354360737582288465612036197083888958094225840457335389233838653202398323338396012157084288349528979658318781446794627586098634070622081838352362965713609152886382513833999260170258683768919724785197668061235856734482972850285128293028902638139414707360161417976261844538163162306691053284062046253195875933256464231740096331063038791215658447783640185671324761755803051829842367349808511646810121916923352279538050259469537351395479027753376247554800015652594281882412720005796299322672228218075777675798573098447237185374103971176207803682767733917291691675956525004509412490368611725365843960481107492288228720436085227983508807041266643737384826762838394945200206491316216646448951518220086025394227930798089316114597745198200510796708067667410428430784330632394070380565223446002407347918405558793216999265237941719689448804032745161444724165199182666561010222250197692641581370337701967824464079527900215319676363655422213082159043385129683771453148081748135907027178410222611399085971012375373634380868279637741613809829737285248049061335654430746912823056366482396538568010089153246418092963701839550932026403050998140174515684216719253134546501761770482540549343018739561328518042040388389563721989827462549648695078588548148896390663542067290003666228170569639176884405604668241236105039630225095663212648267247289148521405654579526231353309862989372445580739623630780427906852607090707785298128163198466649835885999219267997774599925189723492513426417530152675029436935500072315872885079319347999747783201255072227326643910085165735342297149733144760891174224251315286263932863713546493276777621505066124249438333498168333115655120136896281106606642381312859425412584795773976968707010397971910532468509552185716478105907143344615057491310992047833476236399888939362773878575942700525446694568687535660482487857426540936541104150737668364094177769353504134490758899108672410641711216054821902930598461774473108041220084132752953340334834251100841492107897935383211669648608802982068546834865394110251355679300218359627190545564308262170744779357138538074031178047784051130220766404244492162956565802140808983707690001283473637836562074521693321837009019999464835042144221808226190685120261248597014188368397797673029484397704029081837913907234215536657782706072104686067684061428225268752563016656552389343111604699987671891732030839868966105078668052636444498800673706498774284849885656307191626578012897973531565712837423287551778002256630961894078747922680797766063437806550952996964503177428685361255753301830473776460959138599301630532090579849556192128649541649378472514065449962587785737037391813109122977157798551514054562750050583089625620969975211424406114553366679296036119254730542648332167537861220513812557330057613704807432860813591460518174689622989579820845374254670404086654050620324529408017344070954252172956768900083430929161577779372515660050169649352512339027337009973334622950950252049123612072737863528919800564168447000552713584429894547101425001885970853964399877387737005310863634998566107063782818786931143194203775677524008927461317645544400725456704449096176933830665123333358583059101538537692297260546740184453914871787280706730935224414568977451626117955950849258400774417544427297511501622339029359078632939232889055910497343103146928682268271694250097126376438915516582671057597992193157854162994489111567002715936131497039044103080026111529269842297898046967821355882808884392533373728132874425229066014119129127396217158483510462383284508588487468783060401777802864836326837015668343157719898163719568539150021682359747661502426427390008359184436790030340337481000932678662080136249415418297086020362311383611038774836506298214400005189175112074150570695085181771394441681361638470121197764441756177561155077908987365079822975322116971908657883469471524083975538519157147722542964384273930258022877989024470189940253758840577764472583313870062411080809793022948364981263368734540114243391175037851021276112057322542448217804211952234579514255503955136004683135477743113977604116813983922133299303076111405507020853658443987928530610887752637934229556209540608816614756177109044271077820155128546891700068369993881179794175277714362478556728960245221339253886612084368563380731039423845531453420924820680954707137079200127972008690338334928856672034460579760751724695297108907791727453862137372429103128846575320742717269115780057593320975215505483349561292729397862198687921637154885637187158460329195286005745966034896382786133390130602009231839799598366699407930105992916240279369415758061693667089346893385397668028678474970959988935366920692704296907420171669965453224840289095779176789117145288132514127553581898626672030932281516591574502827905722725107142318219603615492819720132431504249206330233540260513116825237862620754279180822171885456907864887837695435007785743227599288324466536949028242745869105998680162520882864467248311869495747519908807133607910788073371717671676317151498245758753840712640320595436276325246081374500729519462824716792046045791756275115503195788894235297960010482600765476724379134308946518190041145249215313141967156807385712070887945154503293888731675866014051985265961222163146723632203034862215439663527341319065884264151698026445485052375136546506536977992311353736323725310487871204705502586105826416397313391343439686155731095882394967655925971308923959594536767403711415679569670491067328878944998962093933699850173211688226019122146126957254095275323875333291825512332092342187085667249237606939095013125853374270009639994209958674048139269005173621807379502468005730444455791343037576119049686153247825105749350077278621818721216322219071054051464988391078426231982260174269306324206137805043189175365504434156172106822487973483512907997215678307876683685895309785083990656100660324993010216084574842479710581047665466887522114909042018710823418297721951569554194090939850217924696851850852577642433136651060638696656037429520707387683012485344989838419184446711004149644775168062053776454412176573086473701337935322116042822937555358960139254046614190560904638314657433946571140244944538255835743733464954822964679667798392594910506455327110876810363534749149512532781666523685237578576423298860533856957259973473368965887346699609341897706120558660539903820993108258058082401707439989327169843845604064128062529901529509151997156134672432795616550156586070059155095650888114898736844089286193420902017010243070688995713686302574636527441131336960299011519324906498839085831866080851310745315149213826301599266051841027145705509802966779972930214178963394607950764373121499040785119432585137295911742850887378162192616882560593819378307076661552180347020341314577343404620468265246513218013537406564508634986521284069930251704416191327970079592283839152133649632385298166000369607426024614535222074083616484162812361825417295566945576652967029070763810552504089971704711016708039761317976836799373501091194669830533485458033331567327877094058482237725874023767697261347088818078391611051581333937678308136776191896565597497906694091072012048031825430955706068938487773917533821150230351741686039635510221423643087461092556041455021716880477177188600821058295943177106989336638629040907465620669046623087219184135433801409446163672887493510677275385449996679845498226607223932426689942946944172777729945274801873933175644827841177616197586998470082380724165004623261987507765330823526248606667136019517124260452147054875442248887171084217028470626544956678948143641236670672831181079142817461968285722442584175658368600967340974023651976719388653054396543125688842827327578662417097236541229030350311735515665514639039518265539532021684472349675818354519941731727808741553502045023239065972450012190795030055106125587444462577537143049971990803257344120306199575286106760990909365927177161876160539018208387373401746992658373301852669028518541987326266892633347963720645991756016382050069781640521648132520948768400621154269773239417690185518130649877091993175113564960303468858645602285409176504957106198899569969642015373618100064763861896907321770229680930353698713953175877543424670321525615028988668263362831245628398353111024504621641852861737140003754033650194879322184599071090363554730632651907573355771704533234537305123805195030952994277367715035112520206775829987135262179745721495224266648949606771859788909261833738881180126954985841216706928113121483546334502961250142733039299493014293436073972402782277140855949606297034760495617203929623535532228651031613891814844851239912756383059897517256451815410999160415429322829024601536564545742654947847328451370254906510993209856941366222433180334244901748243147152332672042549189335351576894233987898311040949114840655232845543858748744444065841676097672220105336976386487324620035040480018476968845815801108792750305335072845262212350407799990269163697610615468208162789292158220004589754836608657891891828099656757497825127409659396513945598496070346555767327337185283623868234835562241797190953669354572336408886960862646324979369467889166366159897890883987020214795809586089282236993742501032753863173633659008022758616940740460198109019763124497206880748213412367511413020367033711328939613643056570014493816425047840432832879203866580597852914827692269897979397352905237957857399610614656171759654004267028045214433251601279832899636056606118846528530024122937123636278006539797557855964252938587466815573328103228902428713617733483044224963705560771580748014136858146169678629870939874520327791481318736206596706970523806096529646651692006696189208880273149039199356256798450854414377630544963996905790636858870341693212275243279719995957318553348101391783936220357791713078440637421747706696876460380228830813557670578809891095342402325932599928686636994977511310918498866599781086758184698020460823292513880099357874304122679791699337426235780191118299435720591247042089193381685505549982812516370792683487793318899325308587696224486000217959353413413649558272611994327607818461243707642186225828486359097262722995666590884929262392976817412450697580391412062296910471312684275150970651839466598049612103692721597736875348134224740101021746591109562709242758840824905582428540261977302738334755162919437900572028430940815009998071285272259631481949711599005591825417862828134040506306216397476421013001810308814322703849373588100697596839889783867099441340234780091020011526667749986079985484986316615606993742599370088752454900679194280059501268818899543046226337642680107998340192169470261299369253499765752146641655896061511928976168357036670569130369755214340172332854857087591739551219835221692679493728750639044613558186027883441209144781941046395764288520057970646946917972518827311379068884089758430473067994750946170468205978560999346086707696216315999852942481371091986005251866005659387834510477299803108777211077969229262043630945465358549580354243945202810126368790716934154173410247303919579107012129783567460682803693778524599480053068011640097790866200229961000192852746333555464555459147144185303985595937334216066261278645922601673613563207216108225821262493370653086873307407820031962105969798923054344592961459111081097592874236032846904035215569915528778811552107260586229586328592931405349654146194744723215504558114343584032786045462682933599994927648857712766338702020447960663271217634606192853067124042372229886836626687822431884064276238189154643466341679172511872253311100534436580248726350422125411522818999561968352124654783683344267309658981376460711824309020863642232347959271790102110305924139079310940021794454667218123397578499194038098888251466113277897838723770573696540048877346228620108982468490198668423486359488040055911573526365851829285193744082229954857306833194567831812716624265659617170096111102168080541381841512092729670947138231613355382184262262983492832518456019423289452168866088123576755329363380461909748167111844257214996812683965065783295386273756009513991470934558478366240362765949977402766099828315844169338814642354240349234749265213009820041142129279310834648993924813580708973594656613731863624699317819625903426883614868140785498928674650713732864430943494074617407930162084020616528666449265874820074496945520816735432285843739278962518994098492183774345038299313348831829549582005699380024039597845474838429560404249334557211491600611419958909305653630555374923822662024337197677527157022916927736293439516708104331020231134049615905448759429867240023431784303628537189039630762330880584778828767506237576753574899766810966504873213462292881342922421099978116531653209998348299386707664958343983447610521913644089433953416332854264261620491252125302543832951151826590691579234008815301379553972263146694350603319526601936889186347280114097170032909927013806933783343092370840179192379612273112162110887870024047941729804292747333000957041683927955324538170631374638934556430269787977210044521547612486562297289946759455225605785257187359059859593576596519394742059177733501756729272380382501634038893761925719779656044894980696187787356679164598722252989106111988928544696823818188317576896277595896420900913552823304050073166627074203106351174311307955975287630879786858346316713020703979138084967701104873761116782664285383300677024349565300482740286078729147906872490751662328468007061664170761925020384972101586938292579119476233700385711783861143314880540143756023171490398215336036988891491038162188300592516700975461139298821006884198427433135137144966572740064688609840801416103306538114571706304276563526250468385223948643170306066013220792528107131001695648565903468604080646786885559858265339581144486566897001410269253819039650020573321444754324177084604760595967026970834880497421594129344003429315833851166427610101974373778191904456917940260156583365815991148112965289968089128672546504142862247244232395066337599896891032691699572120293479278906495636604918496020376301236594645849243309948071296617655200454688220312406828643478768759355839691986043205525445012839380322243700468024456415725622635856537690262257037775090768587019457521478932847182898525727845978805561183974150310453501012557797042463034628066297446082183854727728502161374849995661419916901743825427722171103986862524283922194175331625281729609241504122732343137041277380745005199186808823452510186386733780747661258950348264514514618972932548715184135982014624064571776591844996649043408947777036281653501194934302273061511271377351035365837024761848855327984365959872265722170936427091265599290957926949590568260647754748539031359051425429343980305208862010608502423752263592070343084677922229905497750638251538977027063782252191196875983356229123433833275515543445095786263554354857323002656845869390998362900883643446765974172479167296174251261271262383943430953770961312366233914824663881502989811359300346665928320320919182419042453941155986687414528427508204153256769704929162431871728754935485999028641192405819410131957705158751921882918676871208956596940159813920878565344882700326812594268320876077567879537827213913813134591024614167288282279552374947390358046552211596906078456540834486045725929619027983374444919635046851896575935523211478440835945331071185094667076878825173690762323335277933845252663629526876873626498137262045779046588025063415410864920763378219657728619210933017561844679418449832589247038091010409687126265075478564970075109606325882653622708128878297907339503149976731427005242862492059337424803571802200470257673558647522676399726113751825482820634552015316497265929127810763297848114100761012512078436026787202739423581499436954265335132282982959981042880751382615461403178831655751636477903594240067827874891060024335602114237407839855956178679866998918198546856425859570924961143193318996850253404547820628642670228647923820758206575403513935713362930677557031006703791330704580876457385400798708695179761075396364737185226334210740673613666255323858372030088669573288691899169849212983842047909829038428610324724583237187806672645175121347687531787705418328068498275969173755679486845372598656546192962075599945953462185429414574075715901841243609738401641195625716216855926601308341085816320257060597489808898901882845830647974105802015008156722157416149670865518896885266959421679555494214475060903522736325875675592250766255501746109821195731673709795463716097574363562164982018477110053591849789020135839735304697941052819750407752466631995424452110131601492883518522893545552768631179408628011010490143142586389649417061129295595157989130499640123513447582423950894447883404940300467633568773240521439722837750133381476424860347563588228488834482304051548562302195687982032612798068319841492608147921701696667737539191256794359099153565405133904935628383210973613618993109119038108381426849603061875059147772645698805256808048748508534618186100270312467534102621400688054549895523230665035127498094986453606504982538391870258164773454871573568134414225654947202487335953903081378425786405696012493958430822157322930956550498752574031578092386561857485149166724527970373578499300265420044599067552180048199417018103653510300519116283902374246517273647843271850672813690841420225387717710361621006852376261249000110162975945467696836293302472604914665587472469377656463959153921653471644333731047227942927837613369705680016126565966101287891979913076505725013421239577098225066660577386509301300059923235645575960649532806530262863232491559847330585791768641741325021859194784966355111698980485683835799134793347474271793281822473997996005980514684201714882819810543375548534649828441292936894609771360255678138174568995869025563557625869642883182176034688486930242445039960890909102032326844169762725198544398392798329608187245821416275479271900698681555464256635615854844563443968864867139177546023510751276696810713261752202215641819255132282701123898426905084291824600576099796899569383031517872715993503437887995023776979454616871468770831119664841907379614583423546888690900671664033202536101578278077508856593563634825957341841084002427017138191711612479949454885865113745868103790880851300591365980417437366731951029438215037230361708255487176497698547252089629796666159223642032438085953690035057592911605486808241719284786920986792650623482884460031968767561844303106440706178974273934812730900367601164088495930067128118747802886485476974737096210492029978344360320298947094060822724991271280677256166005301568441054910661104234667124828775313346725924942543418343553269909279621555063984910153636323551766379512677417627902573161973817337792291820521310643186602077238827163486994874175110001254657397756141114630617984539659459362853149474718159489500211381753744519552052099403327291403118835608777204832587067078743657671411518442681376861496760735003131236020866266125242076892059129359321904805978205042044111544879358158709257121958593304106278131912130967730319864489821980514068463148386209043016594179148278555616171849740165894969907542850108946812509187626877988101256384538246186375218165221672893857101741008350631997458416736099711210160079288355834521996147876532760206726933345712830017516603378700826358745084379583566121821124947762345381037357946180178836351070582816916325959909617283337492567136744354470659418250540981578320028793026641544956563014245338178869433992727064158764133927848677221621472071837863817234704104119232914342911025900090901618183015559901639367357597111739120925164501408810919596477183011876212038161747996584584149616970207944396527476388797463603020277961355770129234734404525246780691344382713078751552962068101542940684326242269667443581220273029530865462645507849827130385370385277649984672137022963059029633889804756560259904353488987445333085062033877037706877349756056866293427947492115302411189666607685285700254674305983738217988146743253550159765446836804187775018981648265090508198863433915883738524385902862077139528472048621956507892417311903194696831966520330986963322934323941150208569721739477395012137287231745141519128748107654452117014302465561044455087207515827089925422559727854200752110475138030069571295479612576592470933771698693481289399420820688671043765031085022667827512794952134414687905622799700311403885153877871750360564680487383780160116826112072482663636035009781004491305216534684931622593739695602202639910482593776460753103305497828810346813919397965434094243093327033085852441621320492515747106343119917844928292956839360862698134164211574884491252754109677215881579471008433723575562838105487162947936050464476932452838930345408352982440204970201653668641163533326520323638535368472335757335923704548910958223061709311228808989909463775231485799283227196821482587762779470212992062322241612245154617158077069866704570723460846318658187780260980688974986459772986378122302862257158216063590726913922876893842526682852384146475797549065788308353168034454572126706114927481446843085251749702874075763649960913073901528109200407515613784075846832729492561804525970751412900688370752405128906654656622506957988966699739935296418090564846152894530721265408473766175058785089340663367949481056849470989910289847340818495185258261835306010489165883035628194864276145288361486537959462054924063885220204109443274410598247969791929011142077109000450176954421529592822568666630549077159808611851615849218394671181608134789580918090629810412334506419813586641150431869147408468888425950108848310018635460961608964734492511599743210315599113723232387964871552749469217735284448251360587290935681492411028289199344135923617487838099448550000580958876030350199734039803335478892410486330492950705509384501810522692284144679767702038122884782212445731900152533898716158013501209359833444636186833634847378435680820016089791378527130659032077180150329962857646605143768936943325699958486673778254663374592934207397296543964702526711525112498212169718034458078927407972935593099271630014237338932517604267254885013353393201973147236627905190761083650953529018409337077077755284692289268265893635631031090653194309873199679409486809923887323955068978462435357146064682664309739380770179121146093124534919671864430042104510459775241263954946155699190139528835331796945391434933558441038141896016424201439069161116545840283506702368874080423506771327843026936995506894342687946770503995773855979031429076130802877823633482120659123852703722662472991390796463640245634257806716535917537912706748337133598445180708541725586109368795504754911005809997651931523288638457944810725666149407348310862429471954218597749851890849839415026714974447737342123247313754727987998428495905255436123303822303076194069573854825769965195340735264985537920268576542547336963313045702032291636652243796986152145046152969998093929252938119031526983942650510413251459236020361396502785860209571837043396054505951449820641101556211491129036270081979629278765713629210840652612101442470040514678745483073545238480887588288380872144608445452040850619101330650777144114466844990660291494664150333213655035957819717064272705062231390647277194877542877040268092569373720602030492994109390466941458067749679590431132494719383823147172275610066450220891300252260137195619038063237983372453489967262559807586932028356598010789581616689991179351658497855115078228549794695925052723810210280159279703612533960848786411273653143095794174030882334385809127176733795460143227100586693815748248932556095112514697714147724526607996740611992784988108341029313273903260481548308444856836983052687497984707022108736050661000692834339026004809561709166028254897737505406491545805241242110242493528868546395512903760908293450978312378983472674827129947614315286159083435481543183677666837990971198526130803650633972349671492850887910785972552209744967283702846320792452554890363078330451610720592970631593007759341374014621711711880729316225626946366417007576013367531700465690113966603525329962573621463137816191793291775768446571241252209497189667690162302046487183216783040936354276509516425571532698288927800778300237172564616946510659761177329578940436221637183114647446850413799961145458385421584726692132294041537692414088852304505508983569614101223466678872037340707177785422519100371691539219722880130697039759884216346136325855085735626096594834841817693535407846547745158946428960858199829966126998505034214976476025766364526801458798752733460576866571696974891738361719823124747729422529171806182339878918153938029266136439523130458515783437368868006842247329081484890869792941088711955243186381311599117417767554363616091829958980838830579016598298485045927981142203070590850353301126265358358569155439002319218547866176782949228890228705628203123882336666539956507136316435830124022816297077662674659163036387295959590126226377907709257915976940806869684220061975043407798500737468775019894533565305856009764293118647179979838115609993285058692755703345518234516914985810709117539028613069846319518659278387674317222498597077067938294018319254084205325393601267305730030075743665739313537223748189505853491648858932360870087267705033957273738440903351323005357670311035721501881972725139395822188211903202383327028535050019337527007024284399460449709885568051553566639409404344296630363871513719725897410669625858150747808950842199678230158305359095914904121953130523060193266063316645975000364168156562282975264189372553361428917324656735608953004411207738987605728503721283120417077909405592662444966324206265581238956567383357475181077213920010423186604343519022180136500667481029036387523270318448389211639966372868176206313541145106183664227691685381178466860630561305092249503427102976171159107303326116513848413793062790546319446524638278104335158889161200104540673055936823005335886327356249857136682158248259373157670446371982456369369001570428407539635883914575867370747970127706185081484064806390973763783897369609844288263459476606146984862245476745925108658961034416608429728147115497446022045957172318874288777732470333177308091167481515145086571401457387668770828029409291602274455014128803499242171245677522166953778099998375991332613987864105374478477154583268252448758983546089584105101685314831095290922968720274313839582861827338203792498141179837978845564175786699430940078182134473028575841235544892886443594222163034570563537420144082732475481050262584276193441389133799672004409660932917870942785153786638266451052733382733311357047582960364681547629577217101179436025902193220820959118752469246160935969164480533876059901048294774508153398091926414558401325602454842092299580049463073454814436154887578672923986155969447797408787240454602261363917161384532724910742664206875241170049125489749987407323400857491470771267607241572604094003111391518061833831381070824253742184799234155751360783423774109119172308474668684608015856897461907926565292511925012388359566854684678735626653537785750985297062677316316323375041221670473771722375244116042690837794678933958768466569884877523183027273180389757507669812795189934976251035198264867265651977240332602999345345058992317263251839074524702311116022212215174612772163740684697501085733196274575235151997219663743326042825039737044253251519667861142271350597268948769807818398139476094415193241151228212535364877347401642365214313275847634750491662331432063085308483288230439009613616535019066736978646696871878519204371919935421753701133079151687057497752428575635570487140185523834320630579802506948118708489467059933527555678520251154342545574208464804747616016218300305776557075089530843707473568472876371817568350105516373414812798827930956142417904022515737672071251724669610559987153659095931712478547337887623994148402534547747646128495848911146266165699247951502085048941289050522821475606879873027358074383888417425131342060140080887691289942771401646651647050074153307634979369837547049487338903283956782262185692640530734976209300463983746027157019689095203418969972350890550315885005812774935123490242413475518890358394137835140836359044455871037249306346224213141861235623993411849091310008133017640026292784610761990581083206653398720001291162341892194583349561755678752328042393594866120033140198539231502736850180119598491957442128189877314765619863765278483648110925450617587653407287079706113460878274541353057701079102761061584703671542924776128136149917665583013776450330016387236500195884553827197753920202154747052441143585935520353789671609457481497397625738617768838074762561877747518979390359691853860886923533352219369613928598669391334698422411215654729888264144318561287399515008744207449712432947805277201495983292951802804675946308965835269826025201769167681238600843190220333940251787769650913531635927813460730651474649040611050050179500788855565485315276844863195864851160350237765348527087565204163430830669051988309390751484949592496576484017632608608067254839617187605432168508191488772703270354237248482373890716331680364291214933119096518414268121858371157303198669547656299885155608870316666217339648279675154170783436781649776691065008846109597570674468571497709184191782969763932617551500383782252085383295992612560953742542963586170561587269400383393203639447582776135844624272370431693032751582913189628992482396610288834665070161520062371185890638515787807898693586601435304146284248049614172582032771772741459112955775662792324018238888702037901102705772514685781329171180990735041351002672499096075094791994849409479108420863869882915107422598946451599237117276214286246741632082810513775942081208172080719859693841242630680836949539615195144476446203647395617927077887454175546051683464831419492504293308695802331569161053997605925118213716210628507161262332233400367523180761691303754865771170242174733585952583884902479319131583127876642255041087632307958448938467065434431972475168031896509610181230637489410160596895692079984137056230553477605760460318232011432404790998066875965366624680893915014375754517838140744116052653568057114370259016299213731058322334895614653950174205698083976541544912405657974084742719854654608005071872226086907482193340288474622310644827743464413951389255231791655394275502718330801189771817486844198147022738893927059881576276204533069021371104910884488417981235742410504139054929762498139427261063397061407645113051889347703266004595836875826703883064526616094127698997073244314709086119167208760737263853939262159114899594029710374493570850763488927275483962801010347061186576642445744967210411261159574668665576237255292059496360556823987658532042896269442606894930738484543332918417794595938542851103510278284678912605728186919425374134583022212415889603792272161100245369051284743201183707700736331557035198360662764374336813384966566278980742202960663269642842960060889156589078794605205861489445146156549835404232396544640960324825150140162536313055894079925440068179039177746702961034035552512969709142236069475538360722308747484914912739107259716450561293858016473991750990456440191359713787500965324647180146510581203492787203204180431044922066667179612550825051321736531917943298122368584875117637836364010292578564745773175164444105398426697429369027733735565587346444311458981012025621016189404913749979819688595479627742513473028851237940975448688210406479509613531702365741627855482848320388235028169127086018727252303459278449920148558069873456326474685111080148153586091447045131311633107668840505933237448648402590850380970461572220785351007147666221525870324317006518340274386698812905176250997366371295668570677940536650354788492373943777753026868311559273643894718006244488046765737967936374142462283112163433565013996067115713364940358979116732180809307280123750236202733049338523495238427099571264534256110155947153000065764589228948595693339952918115571214044358146809354081273752836699900457616853136629427077458563525034851458115643826440860448708245636805013137999928656202581229567960545680179695992666963058589850030736002519868085748378221724146966794170170225251646109472809788894767762324491217553369805833606809757207377059689217553152606216694054549007159059967353917950400023727090811251954795539013543816018956661712534969549325994560443990264941372865959106860297061457183235516599869490430773114909764157619380702731282375176005066522468493936108922872848095373744627117390335641336073442501408192841984984701722217159471653589490501035156405384307634821716381796600166987411223757320018451800431016269229315481367266811344954932414436071766070217090662115290572496756370910618607552866443983069997394707467387274750600911148024019987341302939088208626430065713755017595717719974217002244228430222895299291937871221683642564978950919039322996607770766657730299102374693839482214038664929469844699734020388806310274932904966940743526331565926420278272232722905346432932902486011909379694759310259222146561502807856749934662560041631148574886578239440244490415172254571209910467821589237837627499712624868269765892964111532162987617493966138021151854858956439658871550739561978709923159556747071927528808792771653899969383934913909523352661754844194887792874769370256474537350246526710751531104648236277662887803554453410250134797459796846472232568724604632247658649650120726616442441982640918994718082422584482170237186231498156030807803996592505200641391406963370188282331169133039777377186484053316719034332809198245590507029620482882016231111365818092172900855754174702526824969414188515795862336986523276264228007086357676578002099151703955027901739553279891820520401528782418045188687079896785316931057146423492192614724117234475853570512620680755949148977276484053009262022642418770808653567920603566051738022735950222890797630786908658741278677698237277763947184983832839258303533407079843158257725018991274490157868124149792212193263149704350114400274181772643040611511066465326635944687332449364579904514304546979909362840296779190953611828351144507944703237902387146004717357989167548059045127354295521010451904405868067527262673458984480123384921964080538518577858412849527333730347815662039079310766111306964560094846182580293325618715242661959257149157533001919300282387818848938736004346442477308676448208697325515761370618105129457690704507136037274043288747142634168944542519229508033809307845082257581957600477039493457286027602250261021070253746801284507571112175465994508074981386151863677731170257574109759182881657414486152510527816969288177473389484169529037690665116769411266831137368139469798673386402865650197571721193206536799333728879862883128716215535158127643038357636385217881872582816374845436371137033318063785541150548382038730420033983645527452443748684615399144306571138235619043810838493820044115867595453536984114528315079319934461727107697820332505443259964388186777878561841707278119578200491227484781882011603230942263298426634124173068418427047410736627404163741175406346212666775202757486008995267842955199880321320922910091379814782465479075212164793687296493802982270578891086943121011348537781853492346596476732943027867547646116490511851015584606560275741665149401473415750314980845771129849593159230186638853275636137671215984355454686019437262425158660590759077930644562298706954641130925330913466021124405232449291431961646401062373923075950613798446436462150102786254885613356363441810619114040137949803866970475988251349367656826072044994342040313924225110852956839187624571487463472862647894053111523946344203961679922287502115601434908238007306746433684411075995862066258933240026762945457586931883124322205939140051141044609106547985090969645761260512267089779627180301846512744749991338341040136685204586247670675160320212676033090927113233131469074398998145806926416116109517374126017188510622006842119580238882580413128219342481767771947356405486040349940696731833078329190114861934445113112635683146146346914276592566968831629168603615587500587547804197634795583756274775058349293572765468917109573057880201856425613532783508304486806439176274408500861832653792951445163032921523908571634013275599625475065805439212364317624271444886598183975622588572693353127124159405379306060870812219451729356268387726064284338162792446851638963039441482318477905062239216388609076876543849600621067901675995504053992487249321474182276843949076138087327480625749226768970123392058629902833878143804654318802900876134274084666413344714108454972742297447216602190847205383778211997164692977229780964704984591206819501230013220232918472980537326662144328821476429005906644749178786327788836998887512427372474042109715649839584813251619723811918619619335817593942076038721486429760633498340092045586735477266705888437378456884631070600807593062191538438140927439694113689779992490283054398245444982616814539116943757659346238296720425412490727427976377749361368058550844283759656015697361898030542901346025687110465977641689828065415378475185093318871623216288951709210911438446810744786647845642346649704445968162278631281486007232068986537036278255282067429072773762764465825279091614805040379908177903532604659603662732531354978224094997694670908851317984880981657880160410343101704888796214802608941254366052746623550791964907193357600276406264950228891646970518267629793805401532588740072172646842738687654766644546199804183110579824305683864359316308300345796232782650992773950567944049162869615145556929770349818390941813996568939042148615026750502379157856143404569800049471525046164898559821414500474452861452410839938771789282130215625558567883473350640654691857915377650039634186861985541360417372408160806073144504622741755975814382141272988175641330151616630167341448945941049422929041445454509463008431889536134008427848120141422105547549596962970816461465028633907716051835462305057324785546205742777154979184254557280680527645111014084225724878303320211908000307708981426508876565708836461727587119975327876800850379228163056276837162184914574726330215649787943660580163603330003460091017748510383726026504332254521338931062273202615529226566254273661604329406963739143128304810323057446126553646539840394889508306423619973729749051591760179340008725637924537558054972216250226916527240493653567567546476492305022100326830638821524178781265885803173127362503056633306418856511538395046117924728137317262248288849632892585766158775611550406133381173025531621379257020900866625061815807581492670624292952794195900718930208637428297494815307816092242532820009786249191165335675489072848986483697381988039597830420254742514855386890574519032273075466287861099925231535134201789533079770070028545311855975580075215085256618962242148416504349447980159382916493975058490748357647245515280973470298085829895866020495595786940258275755784734375255346505291362560688021509331692693735040490550256163174614074534917937438079952142347526283765762066960720759111967965622129995005186365857248735162723388746641773739195929272678590539490842153152376679625835498312077313384033338155875675024815368995122167455183436270677249978823670173864931248573346684295938222165794470897969464665289129657636896017209245984486768234834922176605869895862676222320282514773081367914671946759315269531745901250001221786366133579414550122076698547527778320610955357961077137640737490456902512856497677790409684816708207089499665825506781653489110849905945839357895955710478339222517530677024788259084085953182724473474057829639570682223687517830898254858971795663359598432539087677330750833109810913940249991162267025998899202714486822357493437054379881455197052894429637399408384755923059481715185816562883933003506553264745925193161528763311705722568063640182970943740209409613292399924769042835106876238489781085177534267620244372722504448800557494766327349915491792566044583381135610584086265619008349351305852064154197437653979812171583264003744000346548256796626668581623510992184768354976056674485384370328101645627044256584096101895208251041550937331568983141633025954634178350067558776552355321296292618360019087866840493251710694051739733155152661818472591487258272223692289149910483125730195032754780272647651775087472901356461061994917740470797608001178952729727366423130835743923596215420866400195821456417928767598386324718516158207634583415380990788798386306413709168297058331335018293480159212918313767805049727575825596022314450569143293907787848033295026215259216773201865202280181132738837231242256136987635293776626075528355670875517917795230230768607645325565660383218214131958381086989880621735824284309444097557163557198006164049208194902623674535959985238652898652210214673832538913776599171463922077208578244988189607898938293823583061790793445277337843818259936156410168652253813203829228882946071485138857351530947246195601903019300958552790548274456537566179085162503708498749975094916709925051483588287497766698140489089390231119067188493548677541610792235182982790615493206210744218475604751609984426994348557432871357417381573174848329286103694704533649254022334846911462332449463383015520886456399827601363945383897920608729589098511370312186560254279390734308686738286627840028451613187801274769725884019875087409778972149049553612512943781905272625083148316321154219869943091742641097064637290066986768804150525878989516133041718031768573758161557945182147091567266286272376560950822036426556708237788588169090277521788447215825852021808467770870406873316520217325427169369915384016542505707764856688461290005599658724345914799410133207765267089524443414705386161078377536807620195896773111582600555490944967302997365072686273027967605645065472550960025067250636550109455629094990590105816098024603156593633793065586719507068093357708734139996175279082331934186287764343729793011403795346137559570078484254978179414743730938021191161218724913808981902167288191625657506438830415823510460338167957262092538842033168169087209203164784778671832122182446030199539239063457673924993303030815954264820950539599018741840143996337727996101107587127761304961037312046275517863603310219319529243068705214162000807611375591639219596610826519233028017779240189345722754264399386858872139366525058905821895059252190509121850571315518940703387689536151042535885660678798484290824249481166828275779619074133094198161632348910084048352466747690840285473314422149218640586450544137424632019270610385840266721444721316374231477490742018489416336365578037588674272004147268309167848619488143371367498787569729249214721151927763303634359730561888480534820834985765398856996696317955423049575748306907405185120550250988657976528899470650983401061155667208400655838398403608773313890437710267725754512026667635558613338472044181704221768516093653597404085933724047314507030249103070612419290213735408443314254669134964475354386245923721089091533758795784229272219651035887932362586408046192566915349876863793107927601896691689883957929123731451532863089480883829437820982944839711168412657243504771666287521370180381106822378057525881512587213342247727662566479834554142108539737178719343653077775466570332280306686619980580804574389641577520574640129878406092775876811079316759383711828104996075481399377427618804261908865323878414310413045178059263116555475282893342623089034031791119773691137765066548986244169218119778826041794545346861159180246223318572299483009123410198469232162534310196852602647419366948357748944394582134895246541358938991121529408957653091833152328956012797483171799968335304788914649041774154579265220368069339910506007029529349058392115452989048872084284506073211844883112584742511875878715235089526964898328938856574548988584296122263480715180039576107661542519996255239448792841341604192568261191246518889663196863809132697130042315107893349517547209802162994594212385464240706126708446530557472564014558633549498320115609921121017615904738698614384897455564723710798668599498064933101049652135389501709626905054732653994731292295608548896225646343966854006746543471201656082916185038127898536011346743700203152238388573554356394407730503946407943068652074557034132069648780564353391205423759406365882937537758220901173098155527905284464403036426580022128974750878625464254337530625590955546663897195962632966327354513013534715698274946692528473528538255288851303722120654681107859216163840992395160683620609772891296424466794234136800940852407006705489175678594061742622686052256863506486341864445287577665195174975003511222410802007217989212005144764903056572147808453136760362470361173833082004664173316478579505410440187898404950624613242368484306656284039157418972564583220404278528878027671415547745503816495043615703584707515344471789575742943036819529133662212670729243789839898411143652840351028683031198501866295140150439016881745107632720018632622753586749366531754131427156227289915221154331943987291450150131652286087086547180421324260649229426123756381246222579110362312515894953275077638634300231382843347092915723935588724588998985749596360739636245579943517381085930527889669580583206757669282599703041563714041253823154884579134276966097421195554576306660157744462149355185702161981045211927215516616613275983483074950370298224052037613541050272522600620995501046426407680328315250853497769536509334132698304458080391554939520284549796261586514671891019885010806214653805967138576676009541187075662816419758376468916101896338406166278999980812442470656030671615233383661570590459350304385479075158185505861149890110397485104581113603684807580730034341334545175000579233135690208771941927003654718546567636764935010402089909625149864260137486222223862901372514359856235980525106995737839635333978469290495114251108562768902721027845674187409551685385457172649498096289370195646770888847243821588397481686294021230247032606797379827362681229608365166735950663974327051311996865158961997820390206217819079790758572959013441256170538647007158704551650276059882835983352437457587082711075234002946885015447587305523303904761081539915316806057892286887457272538085693249226947335588142821294484726156942991538203072309662260457522943460700497322502875390649478618129187950744365251523519450460547252458545286264957437049621790832180289225083479564666893030113526337528648094632419102941286214667150205907420016721071145571859254169956953186929448795839433363304840186223405796603081201843700142055247861127706550474102988341665304400660374775109238682131990731788096413782858748004831414396829560668220863097572878063758719128716030026129794040362346448441786471039433052213012378552218189462285092577369043235409019450682871750676492566641185390287508604069514643594053682562102787083859133841509759170882225959129039419607713198601341666873890433584929641569065691709941322569369544430620380027657674722149765506407398801057567406782022219291656315914137967361480211433519132939040715253934944387764660465980168244754883276812753508194848704094197865735742494204366023188956675696500410713848086892591497398213461779376638463407039831548073531288143018902564311379550757499459598176133724350755416692628498536788757501790989524556214916133060241339736807148140273369603843044075284092266928087995011278915256163623928336636423838706393659109485720436308038631657336239904651132050638396000214151031592964472452791503801553361650006333773288976665821907963669536588738658391710971878934866172442754995964869177902010408670823799745579826113040705916536020733411257221678514441380297195866369443346745881609620694977460099388553945594974372976706370845221874684360142604519964203696213614813161436416827484114600025246833571960466221580260638862177455806158917689107742519334426855558268885867207859295632781847560064152431959020357996882098321984300008684053619643341177589607156295396996902351941066620045203612577271698448650179710196619848573110135107949797641391158736784866680854674076471010716921517590053968295524112640218208842721010635799769325786747657225204020936772897056934440484053274354102431901405508490629344170064750098691818177353751596783104224318376105766222652631273931583279057277302676829694714647399328052043945854874481081928026955254694891673755545261220747242256252704340964445838584621491343847466376072834691193663673542268877912736789787528508493871505664724871045745927519980906961906603478823652977523990283771554577163760763209681735734260773087169958951531066604173368701526650451577489572558770889783081397681028905456121420847779271725236508521951889235490259058991293583080837400031292300840563195958231176173851216013695644131872947381813126121358622364662409137535667024436894961082258282274463457425569059816880267823132650851175808164141236674437066316336097593110995405398098778270855507630849575989407919529970194930562370435782062017737570862821891574572081790317331927408600708804418885648281380709459203933456974431050401980079872621837799117325491815967021496143119923688593057865409140092646795136654082038822160514219027969512349798863370271932739041998904041159819950862851745750735744341293878482768296531082814914046209703828573971851016091148548700581222938060778551478431785291039738126850379982740565658063002515782535170917005513693973096984420345980335406560863717024668423636878277173335774690455421983449386570410172479273471492791816146257451848941790272216434742306616526088168949769079904635814085604382225248433481943700164445514760297579661387180198544894841605126933213190145636456410458798681962456532539545513405773690821413881389475569550484710582500394199213016082307759534401504627125231809495600948807139619989416685027746154022498385734620089444525774275694540638240372096327763242005741499559433021693106714432613932663533407406640348722301964573316275241547366301873297047780496184951879491169092474544160843540751807613301358907826174362217506849547747676840082269672582200246513995626102441663527687051146063314181654846784561067354892876756135970471940543863901053433289792457430858891571998948731982322889409876280631716834058335089554986966807192425912969617557882447858210719297998774140545229600775970908097720820516465245442674952357855133684829584852770373019132917031223110535968064694320310090417083589572392141658190837121446225750918847541925408102340940633869148248652640615462159274637280639013556293094535373089773353673721182605394321644164569435140323552061679002541261593132323762093261094153255960366748120555135622813772590128191385890063708895314609780585652050032459256808657547913081084882432742271842040268092053328779490274365056450546585069269198579418016268855144020053760687605326726798337218931629527763483054358543054820795230032387398506183349910463368094078416617004697565979222161641575930210049916468173303130861862622742502027135723688604562556458036389848540221436660832786869588751492808252980376445157245960938126707140031156666022790199652498667350454451627654963207529300125364028085003933172822091202212093519843233918005481026112402401039047039185455233246298597897333093531855057868123598518920949122001685032527497877993892776989795736060303024288441415175294397201526303329876268171190716224653843168611332676736777375559886970444775240376128609936410476221743426560255428496605749859287478494027271051639845668577924983871471618140063308932296744834544018588100194988495876626141540910556045139523740063865022334048339049095718289725557604898963581531725537810485584414763185074489236445103595232743804325545610806657999696771563211258309225235895979302484313470275386064541158203249238959458013790777026135774559714448606902682337977023264511623509478337622555261112177299697922284925135680256613428776078819486575559781361999785574368825794172987510827687406350255638614517881068990054860877625054829717778368486998447660351675706520362915881896998396420215474027184129719157122035921102764110957124284720817811350251311635099180694064145122917634363207317313858552491297161637187462899507746963017945061469850561413391120671122191939257220991396382185571879949897344993323881644355844651662384597875766681752674833429580739038228478466485914873205110000892311803924696089063160051052079454211172490191904543805517971954447173592556650622948764297645777721759017846501217662785028336893637510411402471146313754107996177225723152040770859835629672961724217582852268966516508858923384379984951388752986757268553655373849592776920196369988805570958832329433133534255029514207293295346849502924197587953022546663446560334401917336652512703571125271658230012899630235820602031623613757581564254601106530083879519298618541270184474288129546983749611263103085539933827689054354183976848625498147987569916519663915549538927447589670035829701164697487358818158231713399552771520427125220060115066862845276133357133106973344836302793217864709254451011710670142486717741938213087516495887228813826043117228565006200841186584473838186214134294364344516109830545343237454611932523761208601277948361959572822373484747689426836122283698746096911116330917572519894292421556684596861228934598735191144456852355122780866217374026482198535225682982068307903550997450366739740603473605226042898352553041570280587574280990252036846442928683707894635828981522671424962936640334562773051775665427696304094401279533513849344047697998958335376384673798868145654594056040442193645421343563839867060042807217602640666337256542158669885608461240929416360126078483124151156641733165307898226054757673143922821521323821759286048753117991281914419331487744254880755813185593442395691103052114348618945707114321177995226470575257580795025017314411991946437712737131223175615762784263749660248557795966334799951070219523945238124596648295470609196394288230809957251198295732618205424989005887780679026133515059458857863360407963450814219136989697720511533350561829694374712712936175076802595657280694124941999991651368050627513909120195235187401677807279735733267542843667985305012456834218153821108366764622272796406078403879273889746092776310993117550114464156119518113322136527419571120902608218095192041548939866435836086692235154546672480838913454477921634828105546541380109430048634262821745541018765771911445324631105139738362708881551934592728634646782823740354167310129922624013301921127158157064907631361709545285646301080748497302743596040268756294509682537289191289382670071027622048063191617360560409546509229009562442164525464709826611026787680652467255005436603372661850412618389267903483099941102534828693755813558973072933854089506890378455874543816109711406934800824750320404299503121366148759010491950994143216808099874176022828054598080863174063487586690984839887571349913807329908474930649486137132240266602138214722056889781640770524051992511050705648360270320133589519369810470545774313102796748078794539842386030896845833084272609393478114434081652860042968936361100856070545983928984133423168523933069112896450129601263672854703569564960358621694700435328891106925494500424017500879871042268788377717115905646410361446965018741052359180016537086070528304136582761813375471774335974746682977778829638240724757329825963020512453796089327087077415739956951023138565396838389366682979852007522191194032686392912011632616006991872259389557668964308023666834723259423546328640344070763236694763786836463058568186261996862145076586276498757788767587459979118656462849306394569615869039170240313646337845204729945136020087462303580712997729592794985198286360018579657218121172461294210666949276180833961198197897334083134109605497460015616606062994712367953568947315122661821190069613055284505904682657351003956367462555474426574779752001233835510271342320790041815365283118494642587539823397450053629649557235128489551883019404390791538702981406223930743870321600290009916799973423411217309614583111898545143262208311203305337066962504527860478983832301516575947088344128338754569501123821794215090973653909273073026000426226262216457594633583754811087182448823382308388222268022492658555605449703156074635582979005309988707193821696742769004414668624467845308176698402222603334748064513004252031554529805934034773875123391978294332210635385004511603618955688218031681275827186732259936913498403857097771640395003857982754373990227793273912370072651075869046109691502659865062798210848645239588851673786593541601719158957540862491389236319170742902760729646273755026537279524835901434752558018442655052627496428450806779290055217891103060887230242782381046918788118628882066090175429235603997871345890293553285371129395203477851712041516301977313893770862265391640432190685948422313715928879297110373944200736457645389773091497571567905166862269220820710195035916342308447116270336906773775258217960033746403732961889749749322004498326285029329785709429549496138558450449240112985787639655675092645397550255711958694165943159712848281635506149817724351161367896034177921991278931662864706491820105903409126056829186881848527106804796624500286476882799385636179179123802696299788843984864058621906801421365461559852922951586827817195154932792147985096170308652468403767526959634323238154836320232977098267250114184084099407965659269694129677461575677108427210455248560823441215548853026102337924761157975185563082920814978614398032369045959689576508579305323432553115495324276152412973117099640732593535052685976529722538019144760594799084106487441372382444831029996698782898954758612630685269029647009633241591790626354573212053916180814643656179033788690885588860868154428488866833325913045842635703012409967449277715631723359008409986635755231385576922294760419409376214392006232708761162478931570956724222100580304552780486806415999530063423780020566038651101777476541439683291068379076497229797043764958975272843974684164580008248548225486193684294281866515067431746467005609489794114241385972848953705264906879141455787600535575170371673551490491920691581277261446056865724165709132631819809927658927192516881185453340139426724342701552464554219345861643188368945819043019379462660278403620928901295490159512256793474032994850729979729614419370526192852156751096126676773075614483690826245627459939425747857051096784822336205851367847574824421258772425707902003813173704981348676704350494168845893214285836185903370318618771400808228199818843176605614174539501071470683565649634290822707708953496476229176139779725573084919923478134237909627892664626229878091748411958265586062351796900633311578633994178874315654606619064829550672108922933449427366436658497132932536681290917605440319490090705150733619809223336348839496828834373514742996883870590532842920246827461614017580270085944658656469868628708617197138731691774792430224389987986091185672916244378058109784239291696946296137726935499291879437236520400393442334378733587755940249476556583845247639533972841480703349056246238733256283633398645355072702750308851810524858203955899472369991943784536297045736293079135342798466175947139312782088274800753990309350294246405962298098777191995246959532688027052013282582286838329658318154878311986542110632066936420612402539315535036920387425295703189235071505249378645983952304369789266929816927810664798020656419491195240226564701109035222539256385331051075965936913074550041894040675256452438939459897073764643905332570836480588851598144007338348694572121793185874821426021601407727024144013929685424329642072160472027060418194585301129262405908995852686176900926437934852494850228511589934745115299506517970047625752053397147563566513046164548419419342703969071141430433932207666728142367231915029453673985696797017514050302881016046097598297389218194533889723741372509265950722922243642345383044640969942912612708477545126813584386103627557231695477768479337019566896961066492206574975911645639135044690068086360378000612124263752244855347604116380989147495185511382484057936026012313791504511950441131595636968380908242849324943755583477914451026684935762183038427225059537961652372057968887300305659218210131439699256334263718851390909486490637553311008845008351444253542053893640071484160210190402578239966806937873519471149062911186560800142577228880426542421619411602524944471508346462138178963710532875422757511491572301341776181069362428647184624778485920673715309191450584377499208770218931969955353567241310817178939888047843794916260278649804146115177144061092966450611905651044081950317521022211581057008643207974272216777658056404658794344979303321925552783807336097027127711354575455215580469993205206265169366976606271776547952752960587821210023070332324766631940985437580399680108555618335208330292999492828698889367793057296920636659767561003253512374367300397749553853020420225713000298018995196478564413044536847665222067950255732046649559109019839665651208493447393375726491077728441051247571594933253854544048057447869735632169566190343127535039216468924049602198383019552112860078179484499178690887102438830149051979328585114955302936234670574539782252351831864804229817778947583137110435418507389944219771308322770893465756441427531943988544027046173046343128741829203132208718868689648265799369534729452531312392179083972055232652298504040327552883672919417849589224433546793125110860660498734991280235093866494028491895862929344534125644250333017155319145377868348396929739560421885600850476055406092152445063841954468259040642392529863682746005699334231356875903624429439274093835612294368701117027858664832258717499357822774633067936061547518401851097832467831692265933395477369964741830328722607912628666180455243656596094514226815770868667102576866452230615704893344468618457646030742621103557968583086507108407241407243917378604798995493146053910445938672335343779629112992469488808738090009015408756934864701985321557641841250105840534049255998646880996305836978077292248460411428250839070610238199960638855194290614614343234546987086672718992255710220414969931755466757229423181959975892308631071642017527066107014913635575923882642120629942038080124458385193360636149636031681833443828036316898354859112482248413574926091914179041388870828504791691543466987820644186350402961234832405297571164230599275830405838862368306576744324097039670872226311375153300029963044110712010450248263851614866293728635805780300193105062388755209932128907607987901746578000585242897772373557163334879833826722501348177782219600824494370221575909682177751681173895252792191881712971836066526639482671636489410779197459696049660409635069983958939255907450752420529131164448305651664613334058146867757798144754685409452151448475694154460701236589325837113954708755981256744522982519178794415931499152308871482843743979533386821008122414794598895190996497840592291959010532509661530931815296249452929762079316683471432960519663693874017025237437363601708530672471403766964557229865806006904009520515928744689399038510797432796109960158456239590620900942832083549024068848172039598841951185727125962640100086306760229657420599526946998141866932916135864496045212954098947902117841996186785927051698762008242736826257309013868305920794617578593149241310482486850154012586934515733231481597405207017556028598083984191557391750322342936116175818537466284148012218154871044060976339474453859205547342555617608063317037021489701107099145912032656584373648266767295896020311324570468163377078227737049637039542412623748953165510550095712851014749574996409739456861571227347683873477182370783337090471121254735482249637658148739107793952092716511163896439823716543857238927630839648385989635484359881555763538512808089272678491333572910833137911839218839914866860579249369984410945278888095617073013568869500585754933624178244871537536122139839286823995801174170760003967013152562416823277723284623345282424878787067334597013839849838549692528056046636664235319468100788742628617708002668976978975461640932982380988183952049513823212621091325052047785415663402875439960491955120511203365253166257868901127355576454010798446135146680699404341764802515003480137868787071685900004631240042106996281230203199593069183616273325242335599124524846492622448449768139419539489585813886279273563613172916638501259471082643191092524433157982076508037469344827409157143329749351277099196662100605783995533720161935635607586181850203054312683991845977195105009031244195518594949337934547896479861642200602360595977547495961827089553862327303181884587910864487022225575678007286002943155480552368857149522641538429788739034159799095676350620188979246617616821797693702183170302781750332380058415928865744185464524917738571611644506945153728607404297711422580317396545236809354418191198981324068802259291008016060883138163561030768422690805653156572299908833151669895474767036404859441004873886551522381534092762161809210956105586951258028327168817425866823401303056032645458538636767931871793114365068392381289589517290068226577234814884712753554390109763640299509146827538464312647792984225759247556329466001798466352345316685378272809861999033123494548519586946777819590544070266532867934489410912869354617535593683928925455921153555465312509073895728334655435079279635099916951239587553611837364741847204961891877426062885091903750700780578134533715226660802421040471174735077187439922282501010776595998758517275537259218180046122702644861109923900713526988645577081151399571909913245188961400871817084997416133557803577018073254416335274885078293508551775641059357438920108498006619176790675091294558468450391675446146957643219429974685984960550450704856763450725303753504266565899593783775409926820036432788221305717047880441212190816298160676978220933713417014709940214627734147309012782010098593540266586179787675760569937041270678185680089131213094462796750781764862800300557062903006663402429779085751856879911110095453350766542818145572903992665336304856884449351338589840066391729373051082379111755051585541577350887560588928488893257448320755554209868636061831334739526114332862632019298330199403323044471111072329422018354120452978785189522459374246160545512237138288046586133761768330572656231281281332483384316262154247727827795781561952924431618342369587528388734520745593994843868537078971870660280930031876595408325571310118715970820745422466455783368225207489257706756493062682826503565241184537415584256327679579369848165276500166307909198932690414247047987079217009743617900163385514175353355292055760478201133386481756861209074377075605590334524794387633175631164486012557349489922348210000093221978572846598213263544472803141689602204971121600819492872394911872651954888062091825480738709029284587385211419141686409833121919595251483670883796344022062198042939630898137058321708445699843187801459252747270047574663751252170793721976404261763172178920333011645210514979126635117413367885997479060029745351943097828323748849644093527545121278379564660958308369199613286290822033186586583223844284081368520700600012039873475798209653347063352873950365488445309708100439411761462450501779321938580767067121556691376063734390669954963799355145947607294344197074304810229463862001291994993588591135476259114701208721466865566453257634815167638415403830569812401812836349605894722424486093423242634876279458590270730403977738429405694330890927550149613504117247219641383339926853632938849900614429784028381268726746218150604016861776000368467705494747513498222737227285965875817484273259491273608728799801758259778143000839368887642192427555673035851920955065825048789750180829131023173074263633298528939540992240815785174615565515309226105987909792492392835876053195322580342864513837714309964121533170945031981145271148811058965999806874997571651801140913879184721244919443711233735561425825628735307211860288996292433075195938678350738582300534929333428983562510566640725149302741724105144271846805697612615667601146660322444182293257608340443428653339766836821824353417736015257560543754167645868908995056251910229956584991562074052784576447490723403235323929000932367923240820382435715470867209048563826337778917471502567110702890901122834079453868569200252877168471301498695776335167039628535776214279020512885201587857810389304417410481435540263178101851015604732708495097722257111497636690857424734872973931837542221878248816835844491903524013231671836190909330061047490768483717585262411983331059330499190306879384492071661373858019950234651969035431705340921006051915037228481029765191680846759369799586054359239633004699673688736437991355008388663322417326149506648675221242561326916470447786026575773078873922839817914917902962108915740940484842339871944018768258871886385591268139787098860580611128623927070252313609974398190264602980631423601248752553217531404395578828451247431590456440634492415601764658834686226426504290426363724516768368287999225817426908576558718268019616540833773689423353225687340343314816668814568817695653620136991548876301355275727469568971277074426203157537794700040755399692503817667689388223820514892876971101275132148844451283141307595283890544089210626145249323267588160576496244208081800758367289242475607153823755955501263144014631330724791378357555479638880091520065714892824156873984001260823547200003193207721798629949342174338597644939636101618788284656849836729895792609716063942966291483756658128284670328562702123301321791705269621966322994678372287626198820085241007342834644426202262057213864682038781668040805698959823839766955051585252670931353203166163838836654791950329822145421801129142677011343489195888622422152557234734423437367921818758302380610348957675443476319751694197591576045056235673430280443772007204968770061361530541305976571443452039663435926784432721614462677149062152740957500571018994028821195196749745612670137816158377787258082759612332207565431342233632658810970294689791694155090524058629964257072371212108411478673543904104495390032979042238136286676643521220488143100814786692851925173273901460775694409014548937398927373539805921465620594589008092419985389274412733072904748461781352036586919962879583503793474585609255080080705780357953943809900021136633586450140186282969498814888888836923990600538579344626296971149276463240085938162399695556415421215552037458539100384007483188235262713612649058682637042503871251083626016457147236675460410778951862490802714569854657425751617719557147282706352940685772626262580157502441871820636569769650547919677488690532576504221354183706960579184628555222377606168860448252740850594196378040455710971947741590087418345586593117117470703456718616186608862758224337409725705336741475679555544268584976442978122769902804629323509996209175716928839178960349303505598431047604999172182377046624263792072633966090690412660042469324718145832007037275558443653490972129803878246591052308423946115276519885338323119766175203916605400574776289188034539336555362835896139683336464747850426400297840440045690096115916740902613195835019932578181577261740868710602894940264265568157657272825811598438197908885901724992625727600835358693152617526883028014003812255457227257120433708776881247396411519748264794955394577004389442995521285699393794826414617831209722340886425751230322513814022747764609515509110567298160320578218084999337376568243088494284659204631137414197988177345086061776081323432841257122698514510280973124605956730198591158160344170096232476084314918732655441259723394177716887694834138779887754994534227163673628621640453340589775288093861368346687442088747160322609365363578964420910645004864196426752157568718142863915853654103840700145918365058336034645686682471174618722896283270176012464896424278671796143001069292605856053439414789300552094843444047544605578570305356457770681308837711247658588984425741222749753989031164727496018884645231340064307695442036877397299610913394409196538517496309069497316205777583363410513924600767900965731068609931847542617284681400379151075212000714628213458992189887017050799853449239717458995705231034649310369374780378378574406379934420221702974138995940461213688572897708622363470051783672028175565057353844219006960068330076921377412754051340087381361395136242326044578255931815958967039365839662519340937214333910484443434779918809829286296709731353441661894715276229306229969196032558071506080010096319682378944646957709543088380103220343962949883462125423518548201337274760963495472910887023732539205493724549463733746748334041908525575437826512706390275420724787298720965314330527846150540327492387310153750986518720426367045553852636459978704401117526693997226146028536492900711059905801704248219356733390697057100233662298880826361159629568724356920576681992846038512382667655900809894979327232681085607460587609215424021154407563736436000516836311789933949836806566456174347986070268714928243997927281615656171445302990518208121315383240231666676496829115319898592640445348422367138387999160860239251850111024537705838421617157722331219774525341470149533304834917660665240803041328494692171003168605294081856331791547685000092029854807299570811897378567495959061452989244592846396651531845530238135939621241187083353570285131820319259241923783208909372146631657627802990907891527172455921790147424528298895945082819073915117564359397005093540654909597523028570873342016480424001513062601574640176524665712977861563094903355423030677137574284537767942614135037350896710310463047789461944947162255868576928175237967443451722187035985535026201336925321105260653693869647351377877091237594632962905502458530412580827716004382165546055798308233557740434029463343923437649631124282255355509422400825654196865937618502776395009283083160170173433536437054647331151514310045710319217323204817836552635499332536829442521641402031863009127560300162918040450785340302098364717393620366402634834776534204643361694150840530988030886813512107263138317608058097504246866956119069170355796054814460559250260286603596862395156317505431374925647474333631529905541594974027065629399993690870393826771848428428531906205211173437567026648119407241848775513794719447391484489580094995415124777920235806744759955073476479084189768948355898779641072715170081832012783714929166302159783091210185853527629277033229078591949822231213770933237657179116173174967602193397470466001306574993686007821749630422903105865268167667982173960598706768212493794423735595206244770642689261720337221375683116509235953308070249776637829402622735976383547596909884861309184906643955888767449795364946526777691942718246470183552860596675524260640855389999615161122461638851950297187100341502576912160469005948706341634312294770556550213378639704971018817277777563125505979230307375609558039747864850280716839993563380666712212046269801418816474206386064741768182071789072944651863921748996369789284197794347873328827702917033092449808823729978420048293130591196619512083372373805695332626533327876368145026653289878028821688167309975421538748774520183342910577165203940458955217765637405072371435226025734332870986840172896479971277113663779582573304265544141973928661980367353920901408134482069228035160262264444659868633274078460418173329146181924219674485651486536778008815888967897014426365481645899010101436847595259604983874102543748020680851335841617347832864581803493682017946817016258971510168475965857613800429981952340706802935649210567593008737889521164643665858187593712113311015304881595009917793952244334235664642048902010292958586016633379542645437410397896506882818301132633692956073498654635650911976729783108409878868630275379834716100358090025852920991550814157903078664871887317214454669036793432589985694903098848819393783198415999457041167924683175344852837761592830261826612106755265162176238318395553558129433760523212816005652451001406684425516592328468166482982783903338724733776106521227118099903526455075784875545995031338226490946425637464009790251175096265191005739732259711199885430061321155954728398452788477235303922978921275174053398801492811679804875428506510856737096824371346230561603387731611782503821313405445464729123666838879317332587726327677806917364750248497556201777065959826246206552039865493113240179121634324451982151878719795106211513447665074673686300351068674740379728913622556114371115627124591854609293298044464624483503511917055350990166873288069552587515761271861837092110344149137728428594823038571516036559544731057035897088725967029007543109612101817734320020753531509845562119076838300622913949057125334462767769009987755761289205721037762772332899784746828147357292716428830996654877037461760494671993857354522236198688094340382110841432229971087005419542318518076262816623109298329343980290129935237501481505777351037323278351866981814965823694740725418287174134610779785213344606309569903783983535312776231424466716806041570909640200534243376348888601865578649118954186806972242087381110070313312902636145015719476630981742005284065540762285666535779259950595912252652879539502444418612957085141591611002926730545092195073544061630563898242295344938726338899445795202626354584717597868659844112552165336069924494224705309647638473814271491377414122916633351757866881104494445615965557449300665520158008699489377417619889897787888205202220511853180227657485261440249538896809244893582912338306118600711601345234001734435302928615634503921748343446008007639471760592952467098003841365121841287881680630092319495245930170757828149927062105807757443309923508913466760504331528146619187239714129374534859462150561731983571737220030551423343216982840429938805563549009306156404314366778268982655479070142321311092989420128018028175033470527472037341059220426024962455553061677354994245678778106634650740935134820874286471022133567388224633267670142445378943068322447340746297269017246843161614781004590757009788646053332901662092244653996133480823347921674278287248635417532974198166894391590296389735782767051775906178453117097672826313603283015217303129356883437722262458890768327229885978910849773722394745482920962377225471545375861432830665742923269551739529288046523169903078464200051782769986691265603921621161840791900330277251406502267170881678847947783839334809618570894811172178177399530227247090373986148859617136501690899165802674696233444646466493190563525033915882114114339471836320556036896533248961644615619288787216696009238253698735733374743459949633968376390692016020753856657787511766479056403558654364655570633576281506035418534481819254605188128739430001233007199686254295429887202689768028263893419727490723705709097237012326439247272254302135249478994426597964441231340457117047284317588302670921826933636908138864088251392114509668461910309738910648824374641680124663745429024409091948157663498618983106096818692022348175095515822771557613797652180899043693458313829603140759177583870569010585496939487666613899160443679612751771888300234744316033917299943651060692485223044269124936839503522602417726142855074449915449095120777793636345706162507183188239938439387305530776287090988485559482697982573478343651470554034495613915155661646087156267461931273905400176049272471149345998243179248595344506436893683896055519118522260614269952597619171310554468519028908828888770450484530170000433830609442185650692325612465281555723200100788676357955651919468956412667336075300211762311881018055807027148372102636137089792745932770724866825474917392520528507427030332135532532149873844478840818373976505140521519427920276309983374608549099562217017131922904164494300582014017640582408899121075900358569048021910935174721599194564584396116257874390988915681038635176478166976474595290056163073753157875060415278545936495251566012319855999050168397619002956259764530478959487529733066007147239522047349736275307352880036049269554769883597636057808606548484367662834258071073300169005776768188713349207403413253913567840264047191880777789846504148795895870077939814389078634023551739848980335870506509154945519689806195506577009180740554312165252101456176923641104656775781882652227698109181612413754118635460834839060272258533431615706488783262623419053907861142943590961589509516690966345040031672207735306590330898071722183797253645478456547076683411013280696311715840729574012652567534558600857423396365406482499909066154269700307600470581533936541474771513308172280717489369594485330133043950236292802644031084332619526361931013578190905244289639767741447567130889409025697067711196501958595744226835731052150769881835380950945462982197396761627103472432762142758853608589672559189336452307305436248988222073592751330374620328939224423614955531534632100250646939977688459520089217515639343582772969236023499974229600655103409900877520005750194037378024054054163696267306918297115823182141423835499838670863109762086874026930874921378853503954126294967780922330491724964275588201927858976663389233683012520356250298167652628273681589055789206299098133584205276739850976155905973119223630515761612021198559594410044127785571357619886431866784994145302690642068529548400279676095448788067798380779576963967060381276635582813748464688862985193896378691503933132353864944838340758354636188370057239265369952543022201246112398187782865794854614082721512160551316420116494650422453150125869565583829882908163275413379603017948841076118656063557659035914342607833069941259962818579497781433555578502327941238878586370108284003143546243171736181179246979270400337521358634518791816060952208763090203638255162664881328810206064556755778461003343839454186962277897436345088886037945758744883579663684483446002437784319104671140123785093498360601624794041283101799131822764893607532623791291181674397726465130058027486879635581338265469155217093327136544711435700510975067415305188338049027716765382859191969513339193526280980921477316435613156480733096770909510548946982252572943009445359048676615278790274630685615316189703629421384055648613599587347005240960591012649954627514869945748399816802657167154024067943090370667364119251883111474840244475031761238374870564326814199746052722960618422678712886205477652923666941275258965523653648423251505913232830006916140529775390185658127344027098368223394108348729178940785079024869684828203829886885071036513969629278806856305768677381688136489696101143298626513419933308675210001020553872449757448205112811075919371898031120925160047227428345367335168445696223108937278403931838802155570688921136671405122520030593940724520157677654950674222101353792228798547387646371404886202646127511481189690628983675733591125370920477222016433178474042019457741157680002777203148265821229899750141372370765146196490754954505620613839145307137780301001682799917089707022799559047903001479620422497148935297035243756968351106221445861881278545872329601927732677373168728260196605687264045848419727797854002992907503004125875163795157531911002287804933559019933681169670782399487520469911532321076311459343737301972397873760603656604619966705090942456265623077154914634452053605347202058248160698616162458574786822234882078723670074348290132664049251215821566286030656713647844980407250987152683516154935123375286061236437751976684262626036548394856922384448280849351212319996686089214515106037020124010329822363061379356957392346831588295471638206318929550193031043597273384607095998598430164243914555578467782261499269658277853284209311327681942525237801063147840923800260574579789358462035974605923159886491245496448736513864248612834909777654927895976445441732312920099584469085181677363369331856657056951259159776020581955011620945740305118357749838571597601250021957000961254142466908172594615183149966138612202908443225831422552197634418665096065870138302573816228675718242780228034032498013708577590283718566568223317737608404597361458639539882175521999934356898137785344403289959456301999402309223398112330474721034662900628423306579080096007985480216020921385931905008921446016360737408547338212359845521637976971063146070947479218416073223197467663877723461095799500151839315770051729277633644357914338633721835681002349697375008031347718499510940012730105561504897078142364617752794651413197321398211016262310229743894737350608259378200986950056142088778217242389279931324760959162555706132900870515383161235604988913293770132538023779950543295919727071723882465185895253917491343541608269940205347241177244249201090673425546911060105639091511527350166015098311226908702745950193398220603712416044012374390054309832879667332017681581220285035651630552205034954145623087691631182811372637616213274849599483558516253984915918495506526359861343614638845694929564635637262253468417152411180422974993989671633635663905436670451241251241269602498386217183898290131793230708855143555461302237257423572303534769217119381123578082667291483569818006852758019033552020873057140175563313230379888361115154397399528365952930508579544064671182308616365570732260388843212205342585364457407188442804013718369989812495382699282870109756269851182036722027844419731778723718939090468274390055503735916078287243909882882962849513180880900399466789211305419084906208845228084183101062526298579282196530378112944479362462383596432003531535410478105159317616436395876271075230542741158885821634916576038654160580245182124462314935539546393946973346187489995306448862917033736285161564464970311822433252211351623731452198619392981314932034126590816611806826522158372223051198682725355907137322257766884853783670494073319660498893487688210084727473299047039962171312953717338181848362077390184706402244648549455707689770030975966757821520319486970707326725252115293819230458424539361509729492920511169466236770532490560726173267119565172063260865713243200072366115011513314946778773124438732287565205776813130385311374034467085036784064099941245322957110224173536432246282268564550051757027311105552273538505601652296996135461136360953163731730403262294089301629649125109070226528055360967142610132373984467765902420554254557896886563003098237202340690301400567134815325206338587747005140817191588027268354751834576628224259343666231420043049752392191527197831182181128261941630640993027890357152341852846785373981519604553527175736137866810095994074087605248874819007151988897439425863177728371379707301298106926731866416911769166597349196678266951464542293464665095615087072919300616578368640453351160388005200562965252862911629790802654963577409036034757408232634295734895827802309107280309648888181781445592436384769197519833557026219581877141704488805531407907985156537288129034610773395196278632908804004071082769769560974431889565985602398341143349621412097884940802001971619878228688056990251995843177701723552064649219313433152274108651648432548459590754227954941453233966231940324757768387295596979084624116051226263420304154139298899495366667567137867575573501090416333516294374963682370609507636770679071162953174156567700996264949243031063573994833015162405911311617035704697017585524851941486391634733566501476420246572827172538850224709267263660914711693539538217232436526184960348937264709772207004727615214580536934917830147044348499552582479916374451545587035851840598646420368635369540525475271470632319981872420400839051739972907208351541122514274612448551778676356561393285419771227864959059583809574562391120658402718390420563304192416362702989197257245055069885871446027601063888827713140652057749502395499717198946389945598821835980638486511698603055490517496625241814898672965794761400244112153072912955419836705887018112919559985589000491528521874916707795776250640732639109385971751715734560779657502283577649828470744380266218990016615979929422656340858393563597741042809949088447944147036664943517085542044013858088415495738809442458596963679318726427951153043995274453867510852567192268144700321915849764933188708506017351035395317195684112751597401433111895433552075972505307523460400566951131071633679424478727682558011732290821635574667848022305034121158353433427667652650314422454986724169908563314123088190204013833219853940277583502010327569736862697072634450696155913005351184738470532975542548506382534270571902559124627081542100165652215850868155178003749958633813838273815559676484773443468028661282084690043268101240743841184557630255936245846429009268883496251743314797679289147431855782268958353244181029665939839516617040552272068044758985989113578562157469909945725578108665836660760611806430858716196651663724594537417844886129396789373025193916589024685486636087399195858026091697716045385796105770522156507824462975271462912224676917692928280819933295577385747540264454098836924419242752209771147716429678822488981907661891385970791125232485002455947869308202540503180621018898308374038767381785004519438504451268859084190845558510173063121774772850774059860949791255620306207250822545000822580582005707239926461683093472934086515540761216070454050696644578060194337050933362632834886745396832494388410135487835381818272892196669125606368566789784748557131069709187123434027382069177497166749118468933306444110555949917912794895146770883206167447017840529528635431016117131512130930384322458704963211543289755500972036936677341330009194654340373187817091593131396808668139084809016298335581394330392372342789368493505688944435751125296408095888895248959785280337016584205204089332800783503625716626929154848377924866130128316167813615880651710904297713032216384542483903412879625273481752533499998580121941371133792163965751695118648497583068429963919952589841514430350375098526360142376010594674306176203813554342738383166500714971450438905546346274428519559623783966943216593793711941330908845036789130637802302001334437188807988640396534177382221070945646432701188407633002669601569243557364353865448707606499172988785915668521820546938021318607184830989905302083761883566168403155962626163622091865875413006511832393275559579360727253505195478852352022391539432151706495809275449241351503595137374418240409026124364083083689051306913766194185225838085329418143295448287590114664458958850724331336233578580543593783067090929920087158938467176605978453138334134477260498452613089333879074068098920318840185990904775216121841949442109576225271785831017813631615217297699881270749639267168372180817435235830332565371204714039093926672396206027233153175528821647128295448189240411285383467266504406149761574431164040979579115608110157221927388361562256348530594192566059611989349802282007022348506146440122111267757974517647940531792865040278064443036417675787643045668982943928805464198384176419720164939733860372425810691879538590662727349934114463588698878830883713565759424004711887315803958099673966717950232896005014955171470922469360127597945043093932757718647781053277472904336581832204609045138244756217135000302110117622313833301200284723745652706018285385469994401383940450800074922191261467268085365745339768107532700567527476782672221620361683073755449029771251080334668442501632569672620758308641802786377168978200083775691768352095513260273637404580025591819254128030350721852107193717398068717602729412748770975188408724149992358058018655457901932535751257574689035301193139659855687847289826077639628317817685070115901376264575320147575676905411101810970611014065941970628891955744519248271363998557717581179834868005464895920776869104435645919475336543643920959226147423588488298004130776970018385513270811166384982048486383661353935309145996517292656093337350015945604846971008300337149393539619616440767171663435180666505878002257127246423859075374866212843496910593942907416008475675810478085908273072701126360865324848098089547669093305107215790348237273918051289719887244651466544138409824900049687389841521163606098057380450867495840552819482827346158018094203423157263501876160973223695034258498602081338032429322393272384484896060450224268605634417012205734174335836282944916108797521936548729250753730715417302045800163143963605895953811660337137690004918049472112582124940410859476299048112498663318099333322069642471489105478215608212628507756805510850654403822817312087451049906765512463567142245615696666364732289144776533677011695820812537104170897842502828527035797697812069596516913027820389450386228649175958922251763962862375431141421719086888633167879289979312513408169916140884833441579050876513651751010443432053786174573571422852057453258325670199948229339047303060369303841041940210063757416602085887938369154497850819597703204529308793568689674495153777588429629295045915670495711282506072620043678418060350553248275117115083839566109768642651272296933831728212854413078420909406401052777075007984180851919496026543349404833565848221982083101267125266543388405997524037388034468747061112532714754954676922102659628439991936701189757312593420554672845889054097923020162752128978827171314278588343484182495099570166106117356439869162432446899258681797395694565704678271125930291094129778459004601091709025104164018424064045022047641553345299170018616387811830396037095069817324802306940552157886917382314463050189160872017731654618439812907395460517266865397876640720914658076549115886102837759455208693912279214562206029743882129947632913997777190447088783822516230952322139050696149322717217931341992681897279481631564084658281318346124961100654819455012366430761046618182481905657328031987369427117691159460301201059489254415703325973664374758197365857327598203227416738399207500913345495968911275330120578248399869614739152232181242871523207239467154591189403808752068574635816522804755430004546220221673796837620467749229882033069094785053490725816610808325391032913768433352143206909945935203516979477645339331164598210950237555337629544935693573378751570279597847389999164160896548695358105658020073420443485443845126766805457298661853956971683545770552609508708376623968074252352490109686613351224694593703846829588189029789030688893601819686745473054317896279707157471737883975879610215264035457626556096990336347114065107513691066427638869336848877021460714555737589136649014892403848808634536045590108855029303177763293767347025103619331422640124488722570206927236586269041454427659947130276047149581148894333100403849718460851709131617932970567480357381260279433946107571968945121741306577610767413004442661125664745611321900692211965381620534499823140382765820675455793037852298377471584054697366683456667166776275458443542422964659149308355954166395680025039435793298970850285469284756610445330337158502464101204538454840690955106049213800781493863263632580350416576342969171820072028572582531443099550145126651740861611206978641930052503802950604619591974968816906901481057879316530688781821430666947025893917231400860873511817102817987105484636710128432303026130035017836533341696507120630430341467328174469339714268290038522327143697197111324952186269081449019333519760642329282536484699952602161957663342591018390222958596284530124532155971779210823477233835168978412542894676432618462803689040672484677246602413447831146837933865301014257645802076149611146774534206573076741842664405592302972061651619011375939027410353351998739443133398442662456702417737446606375027731841299770744198811536100388903529425990379624003974774795201278830644626305688678661323918046429570129592478144982220020883808991419947149788454196711324863678851570242730533727080054284928028141625141499951043396620759378084770693656362815057010423584625074345698321298820390843736308785343570630137843351772498498374487585210912204954599681649062944087111083042113476519838135310376200480368613844352412067693373218337613979777754235421724268605874185310821224780494921542992438371877343423466077376113237219014215043801080376897557523724266871042667086965490463440733649888117361435277809765502040664764560614685846313525400669865098580726985501580981086500832717873648803007057270391679713383851221265820514288059828291891614413387953375982133201514120913926646591587327770247854847066283612675387715138282996143802918053243209557694040501629833973248092367926813059323695476032045960336721953578431856257343418307448497904483843303039371373923022375297140221434093919362631807352270521714194550554197701046364794631953627817657591105121328928666296597041433487954779325139347715703644341378314866997627674518670319749751777859421540909380768326884534454582374144610276861349582264552153831768787078096415067424961753584379663153765525174389497362516327801108313761992446845010315512285088882056836232676629918346695129926596394242820416885510205485126851628936068352624327441461400709592592179409195944858302377439217496069588161546547261905993499168757422792397329969397607611365363120161849662928917927846700776098176138034878879989840756220003298813124316100571246952184307428262775559820650126007310048216886887831373465900220227126756084107777603213825570538744731395311279179990581629850614716860460003116344657005900364770352931775938039909282685235221371152506170540479408072358521473494640440598955381388383686253949478729322538212009960313606134807569865440392626628048973541065167263901988317996115559031612789890988044075593237035641694824292905981914652531046245008059949874407607093298171886612975806624426738403716112208879051795931712944765012685644103684571575640372492106523758879869384131429684173115424934576023475110207087322884534642894360031927548149210537901616819551567298971847806455690830608386620608794992573917100336096448549380131008617575542731756482427186648453897173312752303211575316998929766318191724309622436603880519830957580208440337637362236422591427923819609317745189165806845495405943330805345757024848757944231588378993863893774783418588320204437858470531861707090396338731292646042807945231362094758949186528697388255587781138701218779401444417873935407082297577258612264132082345048450385891808110769736375081482366504948206895764080469079656787222396617353768666783474174854176149733564767713526201466872744288024044774857019409575712570536671771409342090991878253471639169529605744985402838200569555350871589292254385606442507899328343781541568110342100253305431604892942490044375162968613022660632617582348770871559612227680926398075814163950470301517881177116468632132957145038065925435065061740143137346509097823039702203156558359064790588578875065722133690531139063880177803384498016447676886680753299112700725732441881871543145949659984462781105460162140025678683740896677554502159499998242258206112839942605627141871239995698202320009033730497409040609731898305635483313643012225907955671993375233451076729415166247651419921049432730396849836749116944841686538496837944782432159180250188609196767988318813144494709684811856813005441443031698884040025639276792168642671000191024992563916504358345955399360054106082005942618266148275499528277898584049575022578062039145703257359442530354009519417390159339060434115134542819944879896985613409639264798977675922589045051889779955479242727088334590206163081430393007023825184183535554731642116493343259350544617778147140682473151078382696756846926663325777761035119133883127412573027467566278549380118581321130370474704730519474820832495575007218239598948216249183051523577551311806392777702687789118455876698804801087341206833749461318243520717313678177864949205468981287302993333106702612607603507477143961536173618856561827797921640693347000413298254199469303271564370536073020231109562250461586365354766498625798060943816854843803302431815835473786090984380863124064066394661085828432260207015477059109753881186908167423240122850344500265215199036947063838812291624701200945386173520012815610569873818056059832710820709815792799769183794548011091370301346192734687134661537904163403593208345503583491267486329684866701301312171683176452344620353291485486611551563074670118070314756460965094861658408124731884560691104126354788935062797354415083043720495453296561951988289139447662208445021408995939622170114390435752163617148890690546602801556390809791831983539956105674629393282504121584672685548961217101491194473774618749390333608882434790660721935212487900056363314457498010970299834531603208712798222220132738311401382082509062004857664372587725982743022225014459672667889126137207873227582990147720141878015833714951916960166075418288527122526500586745454002938288699833352688248536349319511421789341360992206287917039586064574219679924545240309946308501745309021021478863197612535018986942750448805287098731028161317511851614264765579415035927429880429322754760398847815532700130785348603508195192798681092011281011750581493331663989547011980679953314513826766800306683716915343051129445674642899142870246876719125239741806211491854643506708782734234634184244732364064959236209465747256471535785047715245080249366686616000593086794685459150201345815457875035880555675562597927196297627936857878743326908500253218289477692096296860404604309989946627768361286851888939326540092759745462866185926798209282343702663688028146898009800744195846353828642587208859108230644889882502381844324150752678797749000982650027466275693960872272093620735123463841793221062061762268259434000102600106019922628919518134761940634158018313018383427373649147676261864662867557106034202194965115139506826842238193087309858460009526155360231052071664011918942620716202560512436299771372978279091916635391322780727182167786988324683470620256515906267677874453526368922509521146155463346451789425031038800435086067459647962505381501599832591813491991994648303776286188210602834229124262193495371090964207060532361196986765044891760880019358465494088136220218996674640580679526231735405974220109856602996801548434921407518403066745055993773244635611647030514926548940205770452505912862573397570973850916929099975533826615427813272061384856059313801780729047430531627432798471920678619242683078000731367672665821453405476634597262984333094309345450067219031237672053855264365671015194049605763854878314027863479161126573093418139051507449603980253723666154198784084420054483324929717874715013051475498222013138565805661062405895027687941662387256838877283611858948498186170819157730285581208643228391075188238348470671840550318593224112291782750432153550329350446287854384105117524055970942550243305724425016480373636956411636038659691853061049168372926151850722958316370784392763526524931720310849089372862072909690678568845166467210742431441234906403541616849524853904845649524356170336185273999155404243419780673260101568802550335673093631180339006213336717057175252520131574205222089015192374848383597173686801390943859261732349960203329736290183191859281836465853263599893013014135424246144776721116741611597581310741923285317721904120828719392048587632008031669673500402028319451836330253595593677566280628425715330285041258482989855949547407134981996188563184413183991393609542634008258046924226059436456276837880124993844605729807207680108397446777838476848791222824904911915999277466356281905900357474661484772256817924250525620966192824312610012758603934234398675163400995109037247946450677076465204133147013731324704041544847263836454177599597100587606405267165952027074525093374405967149912732219372681296877509003634282217303301158518357593117830932717881453766293284584589961967220625642545919361669092234449290705035833446488790727946700690052999994366412375483009696466339820907617863430708680970915611672147799094647586087972837340002735968426050186780173816614077794058354891422198772924607495681313982744867570069025282457984887586802193153603231489803628000487212681578561588567072988750744491932127128865084906189174878492723605202936296668731432987906904072204923271559990545378544352065378953424805726637218735933902720386373856682584793092932318204969736012867096890430846842140658508059140360273675330258216915097112551244417043073464413508561721841708407974221519103081264515332302093088807494404735971448117641793951825141274787029538730189220330129232108856630828088705791703633034586409604914640907112195633403372195150587091798643970809435335915803894375831103837213837036560063095280655522690841660984932518173971812368351062790756033832806873140972631057166744808689698653043780993641658427236518952347554747361906643988221983619729846335529843760977224039884866325993523178959337514061530639808332872422757407266178067026749795240567918441269494047548096977774678025569636295371928744963662529273109311397618353419965148008422572130934777078442544052417979798775249596663470071020556874194351323496821242324190075185546775140726623297143255630814164498323942495254428634636584833382809037521454918601683541396974778583064675570026185051394294194475390537112221970207533471072566005535569242388282548718535579042532859425389790261662014860742484299500448026047841341336825355319511475583546117726506928095900113145697805614186022834096726052017674111931574039595661025861220651722545787251395148651691243673775219032594581963060964170068069113969348782927256054846390577892426435223396529289184130785080327341629724298268879165459838881036987808483468645992680307124002209822313543751852330078386678032315510826306213203125589362177724174991834665600165795366782742921383546941216506177065874105949755930261845584410167389919721767155084513334116415000886379322844667105958704762370182805538515467549884007339216078236896810909800734909320948065822463419733572829256328939626581128359845061139984630705790476508353130542858607819938258966718100032567154431921919261529441564953976270041749969981357737679780466691561385229527374586460709864069066532242753575356416995746582413911885125854186067901579383065290627026540461494265922793428361029272459032992303881528364584470376069123070229007310130051765641947079796177241673893790143768902473310767495995284829396020994944113951821577078874308952463260588032095523061257206531808794238876028512792314898529070658759226572683554908783289861321758017224614299791214700295257384337330202798849332088985697452643541818004621623166620355514821534225372510876361658059765127126625361215822212856551966924694761780175306704100934929947316298186113074076877187159189542189464349081003218441476977091235619307751349510260814146924226386457323456230103358811419269396383063280465529494954747083765363210795829561405564688162952357593220891624109366905899383895400266025471394325283482398596062786305079615051010316623016226387347187338175545753439275242224926099381581937367187002822310795276568815501289070026682054950353106541261028624102569354900420602920733326102628760392657457831085054246659971241956996789644572445930517761935314205984067831918631719582010068303918684945534798119810202858305501193263988604113202992890213132074911435287089959859181391531200498879254447510114304731150394739951614039884546732420404086421673384766399925338438173521915036768409248412525956317512110597895803299564943196629934258858444983489682892143688442029335900363369551357492842224330061137934728026386249516207390635925385089232100614866637374695990219280209614787204379129182678026719986768810228556487338083910392000573968546543150865050687870866131202501624062659918441337840214118376217736560138976737900644407537955174781561035060131421698323658540515234805181034541544328173807851963884956162806857514559135952898814490489236290584850240136545686693175885283159041874529415859376773231120816265188055690715116145336513756403054039541026913804692887873421611127009403335017557099991387510649981518221748288326572573638219560517347107653936479795521101064239794804871112800064899942552830720234990250153843806076084297671984436847093009801945624173544037910576410902513917034094219787101886978630235382733689572392102203748331371621027135903072679793375452762809053177799270832607235176404801946762279341788817962302521248720296446288951129390666297097043703559605043873642132166104925125604919418574941488519925221385075478731655766055365902683075176453378583483091120116339771677564966303237110718727035940104485350994492831600149068045353365672514131629117618202064246551659189876219411216141472119684935182780020833253802623088866815184238639658784512311603657784912464598278042170447839621291492300335581489267684012173809877854621626752640274825246143280499618040291770837334434682886292598132490466785760880945782219876752888750053263204031732698768705470789671002838520010159121278089395620860594899200739286186596773469153465926163574709745234761200045540891800598829601984402266316201000233149988445324768660620199141017359816125796670403049855634190770367534984435573056918223543415939194322863771250195278416677365646350659604339272291421005336624288525550172368751249078954924544939275702603904768507626507650927598238745347275656594704006560928967673869402336084395036528577212822206218927585751827920872651668305743020065328525292208098031540911588663701424052651082134526704252770984682902761783875779198027220210651323282496537037824821710263623711081141101902424578258275486913394084805798893456120928488836873378739782925772972839924199569182717370946242318400179773376132422991400495168835855135485874112293400683922594087850596489996647897944446692680363681590011283810865334850748945939707297761944720550672715244116439375720695972331851135782881544151200425078191775061272968285412279619795826882105517062703700314520786798744036675262067334175250648036260514564405273274847756434736824453278117497137436362844422599766528074173050501430582256972974276647963296462810190833859499833844054725988708557167072360963489939026789272709418179170554606239345848769911570977165675755722572438905686284945062551353681543560352285267492209491019866782421440692693614985791299204971783109268925940592927690632714335324210470133711780451749827368105986863238103542389912769446650806316901546770245292926894662497687677145622600678035621824392265285606287390610376245334785134468593417417318792516622231531144000270340437533628165986293251559573951939255843871778938154874433343251347876085377177987690434725971357968864394278184444382244392027983293700692770260269347061500259634517888091027955467185789809288190725506982484314739323013078438308749885722459654401375124357195636047859703910554902743423533005366790932910197343852875666466822307998178727204550948487730437344903429188320851183775115874563101196352905273673079659072092678220813330225984771770241327562448287827275454293825326340933512291057208079845295306159724478124067464228635373782614524413675828977881066072488831491590712005138220907148190443214658699906922687572168979578755032730812748634907391021910040700573535258826236341088552587790795191260329987798622369526334592614363151378088316648248134185306256227752893702097326518357482557879698047391748956642360227376300869194817138100825034237131154963875235342463278480652019201823101160243264340657971842901202927923806040300469560120227988066538602910947453760572659245839392585121956401332381920952083939427406950332974110223963563861638389783530926898894711816149118585991007754158513091164046008899091180667923793522345040817056188243985476001078492059444915265673845730798992924927289830287534948968240313998964276612847106783306832066965819908276801441902403097307474217357915772526642768367455684479847758072389293843549244822750076469504516681518264084790575389180986053033377854805814699707390956351224691765192082139650312059582106973822777204857107801440762333308903053907326129583435321434631112506172292546278883771273406158307544905964304086401967469745782581995312414885734116029758763846233088118743687908834916310605449808950023267333150183740370039602329283954235842361509549175255101253611407599928342582366785401351515628489436551673295003131956168866723473495239399697456144024155985053727230903635014068797118534330277063161386836699678268767065673717015572072431097917762004435752843196188512750031959675169024658194445874237920410234236223382910696570788822443534457927398448021736257304804803880107853386454938612571763062606721361106608755035881243714763429387384468195282896507267020859624177744469509082957519960737791172451584623115280463771435954782472891551920068625167493400278641989585996016106198994949926893157990856394124119601845845692924943050547950494035969097847911527895398887109911247048158400437977272813783350760028938834720540485475485832577351428586252339731573107052760934050678936208289169896349988317083950986718501202825317069383680517341335860445875175684578674804631260325039858206809046527409412461183519918295394567658007950152555026695365390474568284592033896655846802512322821076059737410024355756270641062713951161937155751556061923561052651547693396191669243535966083891696102357573274717188084614003302498245718593820298113329553672056010204051494775249142787686618262968867332097151055601946687492864372071758202613337283000541583478609152251339621316424993320837034608320621022227612894814560439172516938200371160002796709324598470077383027998668132051389191477524911417237908334132971272840716989825454628939646375549101990166571341068171518646062530625374351710815755261607574514772048480899066967116635307036899218197677221474332904657588058094020163098332519462372889898916798654295417058444864227271791214162573946828142595585288057138711032471949898822444663932084487263240780249365452430261525758137743628546665914899319192350408002095698356694490557778340294850512913605983296158231206992615694491836060157522400758962028497342911296318198258551874766840684748589514651814967711922516292308768984628224446246295648963855961705373819962556807101841885532307967152422241344060556140807842023317784510225391266335373767433877396175487870410298317215799179038939782256208337598831541583112882443920925517021853990738515045561321115292448808956927661729242054273168943111323544421716285214372661816308168733211374276169570768019647854934398878835345025733210690853627798244256376653844730797457021706785575185368823511315307415861863717168447466577314231288730855290032052030103353032880759432038327482179890410369886402475258958895219157340521679323302563740906815686749059228392699856713681129394032624559106237571969494674032235721304248149383825860706356080613683426524267053561568983580265583170700019822274033096815813832242884667722341620160477513557451127396040282618197384613950605822653663758394525172181136314501174188601964556977041364699382007684127870630203979773677840958770848511445418923106807195625749788217235748338982811287863095955769407252423737808046057411313320425813933855830379901369962044384802304904357709019487035035865512684705085060860660852992397623533502292086095525290638813433480078681645978020571670407253315179331312030119357432550719602211616053192227258412458565344432835864822932041666653143287334865896147170819263111705034542871533134808845070710139821219338690487027810886968897021364437197609614828487842784391703092729569721099003096590049656397492288490472688308710249049158578501436445568793288145053083875134129783082283376567309331955228810311014974180040036245853455947945539626935182701468003520318651943240663438834694249371869077918347611963485963535605653954305449946475714553266848975920656771298667466245391214470559715634601624641653691870219889444041263339275326779090797926745740509680066897393501641428403665676125827449343825368347350355885011948523797021178022933319624638079371524539810423843764514917159720837272553670819457565157544189276355668353200375023314730503155107776305552215363578699026579397988996823711724967985670083491679005352345698670119668221978513226914715338249920735473428183857053605633124696790745310151710782277180489789230977718799535310389033745600583214886513387974498757946477981678499731749325263641628773692629939138388397968085766666108590103579952377276575844849356796410485876955402782617278674190067231762595664483009449116497734392511410250534980184722591204283460807019726749439586560777005795610375144105201185810964628750318791900094282277780027236336040034586657083779833817808705477469301683827084573838042590399868337244485019720929123804725865493608692997255961065754255509547458891611494692593352301497144713337114054172431767066569805188628407488595498645985975778524128526756462946001100819265994830148535593089908909348699306889892346911303787678651878915297896009407274168885648236615965092379783107410289924664829814224044287425849684214119136846024058766054769208657143492100018507527294578162210435211884147646407111916102169724390431959001302661459712392376277258022762893018620967263727556884179520470457877465516702317318115199097023145079571914551366228603059214320654066734469513868526429478188144068135330069378718896233023958655082012210165923983681472805612402232412289923721025344669403423424602775224717940427804221296276800944277992823586950120349149606648481142768896779555154318661840821680315938192343892968179328820288254941329095595042508054408223239344794746150453528673983505476094221266007328725513212257226946013235130957875687874892839366549961368167333460804728716467436227571067821068961107303902560883431821555031307840662987373464149636032955728731150540243122884806634362342955823453068355597136242181298886917589392460272343165516710529101257138773712921278457329607404417103226727485767989193169760757828638199057370023009491468774224001888607435308262413384632708187730054516606885613159556723829867648112911841165868878630019411640121034990022693498709099575719178345151972149000272837137499872807314718966385190111018651851579701081819155213216606984293256098936869201381576114237895831860167625521212578805577177455559116445691922085818991398484708926034370735156848046577079467049645145382863858749860577709142241678330204316641741296135346877943416243555576503079612296112485367002260417916517885683464159993952681393738187528829215411530562751974795918392399769101741723931670322424509546029583650825053027678380821527444737181642743210676664767742923314842829328054565789741310580525851094524102178224054134381398686485620725882771795710583935956996694537188916114511351668107064722374894356351544368428286848284456984545570371719910986079403139027111685299687930389309105290541799732366773666492398801980680297047826003841008297021733903693670942962222154424053340957259873053635944351678260275422174242921176977504136738139873083474009182453525536711516862782124874562739212475356668802391728615217045162712883183417835246603516802943223265815490778787419074878761827095723945373147980531811053261214742595773254368099348239394890158785288462967138404757346512882384645875434734342497058512605717479845308067120056482566599467042267280828546596743054867275785238853231945720004663895842937306373419601656890671285283307571068219567011088491127571146324860192674057274838204490647422467881633447979888196689871998615281501176292495867799863203946751420727833496152089012390476303015096176363235982405905523499626447532362738720276582717653918145889510808731272597435951575667169992358492226963691313343033013908566094297192724698837454503068889877060989565909204747020579108756107032851106428156101265757265306967171557899061357160063291311753927967406937487004822653996004961223669629348086529906006725140168924641563906890050904013579502869102026639426585311633015701953542822221724409450778990154954214061934829283128780580855832696528483057919637642982776852313411431669977304226105139634253533669093959958306655145214021122285996426266053038899969332392705258391780730180570229518662009599467593092306786944539881717705386874537619359811847194608872515042647607661962207729176800178589300805901249201176149225763477485349154471160405986456065501797017376631393342681631792866607629942988573847023760774721412673573511411201991848486443445061964966810711422753741638846182053179624781713674894394304277014810789548429355859927796136520441978607340864996457399176687178374621825602284286027229354840543919011611420306533170566536107507539310750967172107721916728762497901199994536044336975687657173443892070587984205985443636191715790680398044713903754399726742272780244866383551121057611183391001997701839648425026597627263122560597954276954568995344928978020280130788712198128689771371642301370289447609499325510483298795958885394380039452675738736491110943562284964922868276503893118182155864617898557468313401000111658068276593435645605897328553037711471656771001621818250900868996953642915985653356312894564733169783569811741226234447071999372794313688101261184793550608313467140578713049319105212912387414425129930566832615351573210784800757705588923690983883784389847128084447729971433092246417107849795781190871490470673780423688365492349979432499646809453842594342303562985457167950793904510420850544623527194854662552182641418752462906929622202324693204308931913787676399864170609081753667007309706350990347577052278676940871733773114540743687843363621082846250719642456691016527754448230183794746170359572023045012863126144617599034862716621204341131043204405120591895193615295669063022605738698822753538360775135476632745364496329812484268034052803689623162490164941160878978921112777685096361506384693549271617037897208559102756040953472113649692669952287576340035236948435995378404432322328419479915987977833674862183602667755159779427665302715914048133527750718753910194294084762318940137466428900346130992703189646845389537635359538714348904290075138505448892233667270292064381162663081642303416709149628411281732275723457712318257453166218602844802003830562312338041031242044173981910755204025482004247294491245164812722187539235317244143763739876149599327577533849523544176764315326236452676493574100212021995617312001468529411876788516837407752432406226548330538515741080793400805859750397715816210948344222671892286382914999446057575068219820058448219551293985893647924757535501041572142968875252091601776072553877130552091841149421041407349870119668711077000203436306941828075971277423087378255621830283175467418923220371002927336471564709182405334547651276183149583371710242613349360417233798471541989193570645055146094274706695349475940405913679135126716290410141252791084112451343070602865166795520326911378645448026315600437136859188212515245273028607702582611775595733894058995569039360154975996952511902796817403965195216928463427366614436415790841558141063752626720267161378209262872157494218384847677581757323358537142668271615940327255051264619475828378925932739871047003654450822402134853773758249908075675196609197977488313476213796803572073690127066542044234885135989004306130700334530683933131699779516060148508677005846758698889930371169843603228000077544852890169805285042072578266230654285211208488235583539736788227542694125930430891471406990294922100419397046930268856892096690063116673671562260459460316621030486607004076050456078819447558067848898867660173748567884852597201005503170281299821660554711155396533099612004486274332157747405924088703095351131850509107579124473797033953674622708682539964768686341742676086748866660873651002527771542523914358907513575706702568746949882494179101064861880466897670664327064142517314708156198492557999868451709024348153183541052110846760783559371476212269637870985251919599934505752588363253809442044640650673884559492312446524724059224237316408929800326081423106126694050975742203473207952308531212074972372164634060425275186542034156537056305628696382179855342866705827441504697189827872729889112819892269583859761306045635243360660610180356051231608331913738310038917905170882541338770607929797186084940407445959363784224717400847645316309570368423337696729730817630799651243025570031915247049733491882187334361640170170300733544799048784031623529092146162304685733328543251946889017171343769991293759908067106533440225510268954495673613939116908426590667388182235185058859357010019557434973226151536202567997481586141743546196681430515704988889085549713444974236859786456614885210734872485465764840531011851163656062549200410320119952450329513653857113797514578076479219310847268479705127559519633520812262126885473513213380622487350742728834536563203947934232341531622536212979403922689558821246618320497274908811800077456642968730949308665916562867029737636920606685853619814833494385032083679233544944178680773547489917190016965953771078523746011607188649925560389411756177963794487328303333097082968999246171125616383982009983717057096601848960058952090726305710438716749001843061617068980475676952681915873201410292576946882276280912403486424338233801088859228969966715736056274115634712565873842777391505515567885371955771463226091237686759380855506818944162684151664015518737362381247343089421921362645836203958789135873229703732868313349621582715035373475393096971399970119555198899236775735451675687091950075790428850914588586080802149059973003535431560349617539102298204877345762620300700814236908053393716279969500654565903165546880752206612535280358596512563162641472136426602503048209959394261630361271518649059159298247859508302783916755681373509508388192635249530116522721185940673952844133888287260605053593660060383382319758460134187788858100665043391712498984101778583382790733443487489713815271901418158109105991556079109771707068483044689905529496135143365976213883942637474250506486552536974408116604667949495610223532889491408234461819727411951750881323143880123643284024893905594667788031759336765532534381694760833536022475361870849910041044207925982670794736744287973312698458394305413110138263161911081430110544380128457823242204922384174463880694026211596570060641037114363094764907903927995312986827882192685697588201846286266931503067402403078956923063172840692195386288231382529402650202759316907413346565833115503231923670489174559274939870899551921701661528880399561359167210273450158476536761909377880800556904070067348490368660251369513819820115472862776346982924925305977225243294179840314005989299103367618783357769195579664330363530884244140832333732389582495287222162378600594263922899918281142612175850072705854032912811451146884586005524183266588292670728130773003928850031050172481724091974661468649730468556370490207286014707274606344039376514811284681615524032105104075220758955430839697573943776571813316971114060727621781177346655448540897467325326551641651239274180273240530124143371993592100737897368425358986682128503676812011842595914717435780110742704852795771213215936843895656020280665570525141451975309154453066406516662464647185614802446769687536040647836667928745877592181602926813236750106361052677765610782864377955414786269064463614864351180416796498807921112138058064573717576851936034072828383094974572474623994671156499112744863235736827203191923544220625474061962889489828872148903154952784061804406738482363600502695350233142959023316091279503131267446270528403836619523089512854322341712339566534526266064803693836438349827299495977958245957227312854812416849668565901646513238450855587615422608287498288392417949335988789655005955387018681908798313015643417265385641166764338798896636099967010848546651053817945575946140080525769826452437568481594635679116635316383523961796487504205485509276837562386932909169646597159960204685129323763409520217769130141328907087411535507238583574299287037749015897768007945085901538957501527789449464941543246977682007372967726236047952010217468777468110694652850548194431205169036402335559421447012713433771222710465538905136149523337537078462969668975852361850336211871554278103884164573916373370540753385546492049753073064732676090031865517377051773795838440745435316857978523871343924239785299661983212200111077938307035965111993489013677754395842413886435008668966126653213857827020014572540554820498193431549754234224947262649470114233093169677226761258864940909535577312447455715737007930136452500270831981153692781042845843766198705723007086234301732227449206029506122815085772072707120208381318122326077093378695774422971628010188939373457594690605525825968355218076292620118895522719250537405631696157632856253690731677790565881850758422522305669807828695515557896412478283928528910282114965865663001335421570128076338214500421029897516564852814388306687705929200910892836447167895817983609449141760327932293574704596908369653374391714548453992387683593923750796747676330384806573322156239789274605827075146367977070216349115571943273930294999132266787223899697775672929710356577064792459692208657521921982703360967866323919993392688509225749885785708807997727645965770411736030389688877507842086559077704739543418086660582264303189854965091709208077395464852767879293925209011163749224607578507944231446138043335932781787119218064500694715475335100586402902363645760759544922009601222628480110957911131285454613148800250131000861817501875363025938874633990186310578922284860160327271835372952934381738604226503383337682868430497121716614737820308640660970743442091272346990391456114594962123165027021361161083392431392036648027583734576421645947844658582955256965346203169085057677457704918380756788935968145374572572575403289840290588294814933322473386451356380250470912294086063441161880458560031425349520906296594452299721847121726732452425214572971975601457141396608046855966369081010880797158672052542028873270964994292935407463136483464832537668656177619880224401793441102860410312047904257412373556378693885287119414580114077367593256263716436893067833530209431877295448317632631120488622285682894224959803013511258355591098856718758365425349218446646401126078666890782966611222142077723907022613934315589600963791813376110029019143885623131938808192806803367270568131335332071723271434126852997093190128412437287498193008877719992803152424682271098358851016812391383211729821755132766230065703442403240909998584077561847044869845312388422670635583820046287275399828744031576306944821684210047204440038074159539383326385266158169301616012777944264551541724535798696620044891156057091298549428134841840867402537705623790905365468686066224015387244083470520528638825602201328663697966761507841894068798949205807484068930602129928129628557895843426113047155965938354284674194461962161487246041470138993537817750957141937135710300048864159800767209441009881374586680838807968069236922538936413369124039867227066834101710359547369561724447238373782059104308180461419691159968777554265642599237629622434460488291776815685643221427065780909648928063801106192713902825900179156676647418492062760259254834442310407351148906209827902799601124101925231746442502389141687756763579764955106744450514328456983896229008022581766145975607620891339271170321178053796672411055452315332751433537586291585708935943445520645735633325359634624272682894159070018614395941026249359785357594603963764464836572163833687951309010934089838764175509777385888578223018225312328872844524183640912333103095282350194635623802220387612567629098709385484422894652999855053534584507594677597979623158411641223296236523293774242075530851899654647546308124976130735410509266029769026415093559668144723791482808248124859793686842573527760629679531292633004497654802707243675743288953490098694399478458060280508974804957531107739396157155244414645934527886460536740638706830086134047597997452643467915834586968534287556182465126079098142151504288558974355369229628395296848861299382676744832700241499029694871853435645116977282682666556978853844862432038274004762908575403285815410308146007537073333780066652422357143436870275762618270693372062908313953701274325915285968078332518611743138296997307117974095975251226814304091915522154293382086216699256959761789342117042014390005505055724722520360957596517582141868709855597558079887013751303839247008660830612767638250622728760839370182255243130915601925271085058761699722415333946357510129237765775564771145898923489737303646318697879904857240286925480678842006025449697071971374927392590586590810447467359585266896711187634676762501095565572909493826562806685247705301851470451145363744763545294047771834371984518109076245483623505210843675168013269485632260352740304533029737955861563108580757422120325951940738811704244303141352197778597644540010496445003604404103005275414226004274949514580534567636513437618799992439200978286977933564837920260049061243019876724906373517825041118634008122642867071028727834733432482086414965059105981874277471745052089463869639579288578164598130993960807335173700387882352573552565289052176241610408001358718987350518344783037380381206604113033956388603497418547010076124534139369970181650556382608981051841638168695633061007940499357721206513851114256303883385937042423389802594166754993863394590299569721813827128484330092089068290436030359739800087587579487017885534415349012353441828957818721496406019066493549316503417229210448740598171387552752428683360691778696952884444862708513594978760947859534111684231945578766098717234212337629052620426156591341122226941801430480152167329678062186159752946425896150331443776749984054015547530958525765119735101071977307707776941801524799337837786926043785990056941583146639992908726891368827809747688201221844590559733515606613660761087096677785755375180172020364086329682667018676471220675842188583185961435686987996117415774942718780146544629122796189279784363043216947305551099398628858543386248631044373762269699022972606091446873541666460811635662986567373708694948269351525095946539794762003574859879635487038582798157041070941641899378207873052745102897394888776234303607016355434294595198841909902476602898818110480485129877318284872836818075457461546309978809194967590078588868152706713655398286493001020483289992425481467189438594020855822854563965914135422425046397677682732994576260718487771516430353515844401750312417064963025512125141383480420056123896350516284193188415198696069985542383002638676427317820562740295390348383048592177758219728290777011683907437572064412985743723562083210011260151063811283096523985167291279570283136733451570082600170877736265844825992696029828045468652982585274774206655207376877234240799981524025540102613907663247475538519893933016139770652676762120310463462129621754710889951170504628740624505664481453241491448729224997216070597392997370375707514858091131229134878484216220821197516991694008970598061650836712382324891149054445940586678781596606113878100330291923152259838642073154415174181439275776364200603442755643890754495509334554339040125237654427048858741484575668688582597999988445948575247754671743286619230852831303455678551602495161472098861954859591027373246978317712163596130397553874913655857323796495773635766710639568337222963626297868130512468724957852765564328450149881302424001664096066201773462412384325780352657919505836926843905150409284954553964893506642118905239719919329712883630577407668687862556531973578395445811438317374693618057955872835207326290307949016259200232950416111263152920739600354115838723241882864669433819771761053409388616216730051569186229378357921139922007524106318411991813816923920317167078725360813403461780955071374655450492819186330336983428991850451250608298862905910321621763152219690732369810783216764075459560527712206340288094189376854498310195232600728646145709121125252698178684545801374641601331989655020762387895230056567864682210988704077906896350144581926203094126720574746904824879498831216408482771114443567295466451899309940353110631630785572605569151580769536769018308894309071709049216340428282169124626514331921698160363021002510435117003063949841242601523849522215895742729305807804399679848058370260506659381102708061728274427438184768686043290749073976218289740479089332188700044571889537814525010915419082123887468762163358027420959680967702629736072549409106591416651115176435357208314185595958394519804502044686335278845390957306775370418236875182469574786356739231406963541477839850467998842064137976799448728654156689246523506308248330982039616772894639222146388708686204271987888552707445338828066013749779631548097665364407473288705068489380689963102375278344467382372694167150439837778301552535247292576671824304525673099895907381296945579738338755776997501463613778312252246838887462332043605884439206154268953148619994757489774183364683288791130684833910027852755569830338922148798208649254931570300479525629988597375689142957737635172272069005232662912152324912709873423494677016963609479097773637219335833068844544507676684290609400772835927174048957960657818231153261657599595453671121969636246627291094537519441444945526654817533619273508811374065540686758764369477050007849424704125294087053355605501456405837407390532487481445920733583356442174051191071412875033452463067851946857818728273708123843351385229816298512786042651506751374581269732222123968498631656490234612603284111490579333689954990429186767653454226996026029460012043662900483513048782983705701925513312376215998259745913879519778795543304932855963794006863008923745455317300787532752217450164503783789416026685958084140817060220314333662147486108938195806719216325600110413150655183081189065565504806069292896489661936965299343895498352114117304858085456999237113406901127212969358334221230471626261000814913958859591630325825618727951930992251239498730928318407599002009772776425282132663114002277293144110194078439798269950287045146084444075424428525679554916743793919700236506119537602860038274259655912811093866030734889196420472411604711452912233494400384882805989741443768729047854954866513428749296056669702770796808419543431590734390723813476063623053490565922768110979484741809457007397352646678522878929350047150022433306483194575022590883693296299782363089975157198336998371373746619362259301920570484564118461631648896972912762121997499155998949699560610637472569297131687137688382368396387648157753980468736204589361114766473139277460776188176041237621128135164218184320260480925026265685263934450079427993271157416641592213629800334011570619415347794034303704199249753250747571609772474077153875614594049429263596973368575117843589682996054740864784386184825519051814093362278163533506917000571476363534164637024832586149205385223224244247437391458568278500474168964833239938403629153099801378832922145102561769309425309430545124404632034370352606708981228362486835976248308098489599495394584242494440960592160674858989858311828922850085148547690538846657780308643119457646248473820304208439786020043828070024586124243163938908089186509568687352634591982497276057143135896828596125831763121510570602037897006453707262670490794855135849868417816575345651867160361631607882936831761770792448990484504953989233634808107123419921101508445123289012576683803714616576122594972187297501155682894145431036090894708556412855507082665028060579315501833684920115915328399932724305786462091485256649220946104403741598870051272807900249830045659395649887379865029180135397701024819363236375321172288187459782049450022836658463185727844231822065568517343650426482817457533773611250378734769794526199190444680066636655848992922077822492495294560267643272924462441511362133991634598377290810257256879158036741864977224075669709342237263778622882855113386507332377752567978744335351176063154800638331483831476578438897014528603048816504552387157589562312677705004090021146262892228627421722767199017408284207393897819060568213663330762616704628089337830499336596090080412388148590593551176536417434141390877108604707026501395427101283864242790788680616172015664978371777347047277578438765473658493202325470152118926418876378751082651565887461707023844707647766817167885133445471089536711033041046135636456052297512706208726699838204242233443655262581196612354572004249345577589760951308052519083275897747555423300271006093235595931253682385412315744318659659468015678410536033724501257602497218065722666682079361767772313492964850639571723861582340456278216667246786515564530315209603527264433222439671134147616020679978299878065372985343773736868703311948544658703972445140687240949408953093605257336377712565479488393973855752954919101856202874248503766917651234830171365627809808486497082681922678383527229919042027159138581715748988483525893262703806809437248245281600453579056860721362059376592445444505144326385639435964850936221943503463566616643329438841867940800203980904694525571304696525738476719595199034034771841372062721157970265211184956534828898401565009514797207251049142112889967614225280277538315764856474138495782605675151829151541859694977473425326506874833044907226644440186930378043173556102175977904624913351383196384946649158596813245130290883143921609060678217787652159955977286513003791652766435396192866450716382137585490585100467965341816206930415943114112583442843933295940439733517839021143700472466774760450396399133065961245368855434190565037217678352181090849936352863079185528509081179539254636575017328372713850569170096500417343208137374368173780592125228231268376051094236560946612872267714101139253195292128462972506787373039716245912138374090287680751297459134826243174276880789401311115574059803532571716733253524515311313602371777491490361826365990878339111441052556222461090467862244536245690744048001505745683677852875068670465870966481679042626024144081126307546632756756278929119067616362371290682886387731937178338908161153716219334210532678149436748056221446238987590028136268121710224829032826361296022443515642500895259681428831685070123057652663550556302501673754792672068493863214041813220182813083293518433766225468419542707803548946118140182096682443063329951889296517265487358739673268350541392208440740943247558617404677897697968577732633268166311143056901999668957889167580955167821740388262225715609037008260954907703406689236657688565259274047270617845453989723908892098248469203421954861751345883835476661753061359884431374287497403172141510373148155502668535321714771865354555666745211909401186389623255162240361536422677997305002492813052264860249575002775767977004877128273380677204852468375738808921855870528189945141376375472915182980955991534383590412173585818474175392029919499806447286509517800550861962834785542722061320874364804305246564468301354463437541847441022143362255583842805918045236896272814475531993501118339565460155148791664385450575083055358783307329388315917185297354744265536457104865094819059856078286380333279701304441137047780371736587836392394217408407993693101758249003316829561126966164024972671131745887135846931809895520085067359580727044605573384198627598344271920992607089746530332055437982223099313926216552681657155137029722862037166611405864712291271521546612368476651283828221324971285625486731041628088141695826989927183968915267577096179759834872097748979230724965274828897848240398266642297958459518754886223171841818460981391963945341380422503772665819089222933056738379626264897142619238628208529704278785632991793014827419868439498221392947865654967086120619715891764828182904811787001124317544069298854677593052712679517719332733166185677665514219203384646408917329058745362570413993242669279341490098329010865281563632829615491132829003591836270826083228672078783094593908558049285776003336853285069606874792434518689108400740079060873384466962484208624473933257797260481468196612938198730835130250709669054508557688326779758534694444312279640943737247792679666678258311981014273944934412328676252482660924412767719328392969582778890204822717828116857454373568442015737810643935634533332827060932328778718893915837768283729791837387259493315757988849317500122231206934787679714415208517280233109122767365821432959646087181384255406224663735850882606359520599419774569790925065106004024316700524317190069465043368941327415287526793566483543848506703432255307999643943072182165564328624958851614664096384949858878118910471469068332576915953388921440514568116690834523850921318731223370344744750098224401530077155629382864881540073284025341005607538552166946716561938565931567729195903045344629124156999293814629544594790801470863220821347500742176830921500794674864969460875896712667883453103502410089828573616417775813341077825270839129077486285919110324494521690263931490026445468126387017600600101757495733479879876955269570445032125230778623752226463957968222162331036349275228933936787217098796097809845129078705684607058257732792950551204875890565579959092005131855594242720051732833116996515056161051105024573525404947239221862903167056809357298233681476991622128257812169327836733923303470916611195881331953590604454338879659729718347569140440968490414302408764790654240279154962832584713038335009003801451490942669308685456314773595824398829526546272490797838501613542748038591186375029743150863785592704484674573916111643117321189299849549953907954622165740820205471123699046269388315707908671001008617487294018296784463273684137719758571672701826477331763135438005510904766615357747373914268322202398498878442294479605510339475913646072715243513131291953615665259232815035484659114050488754522470799220481007811301918920339733730129463816031367301244230973223105942266018654869422968219099164200392504763221276720441130197685408022238886363971335215612031327733182111570154737427275911214073157332480647701954746063992179936262526056869400947329141829129650239005950037000469342780331856006206064516128090082117540279066236894423861270299025777877454034390843972875147341514848678893118645062150991133654980102507634087004953263067665975843909696880674879920508211030814094429430628586752252338593718205027706749843108098016792552994335642923194659438043220556190387231125959165311970004460145988589691491377862408832454753271344720119522853440545039369276880701355994130251344265876136372151699913703587031940678891952477520119177765172981195480757324811142516147338169654370029693462176950345490166008278095374020065139645621792172223191268895014829573517774130079075526951375510997596664805309518794683561318311011187703131546183798545215432213262115478363681687096517406692359368928999539592811327909974069205789420356754592703835586579001205524425596353409818781182897966039275124087781246906772193780936932640688361210410065841686502998991488058822540181335865140008124562127518831002779459875282496672436880346226564650305302101219113781878001870502752526849728775398362850433943198417384695240510504056870284845761970299148284661309213730110886375798807886225882603699889979420183159814888502863450114445628112933696846675468329491717801874066941408299796870035989410397774379342924455692072967696286916876457116631281509484406620416164640760833056556556972039007861381650572804148036562988263116126283435856439761563657157021249850941216641009425913973646571421793758971254942511335662446779706676662084583346529113485214399318312722374745483139165721442825093808086342480151839025584066277070060169630572643026393405949180976839153932962547963463365283863001630591588311982691805038358885337662082342848805168610245330165505250960412909665936887799348531979981993300931063463710520728377465701689876531416111330770902223759821025065451808101206584300924771679556603363639040642132439698186753992824211558029783611774324517510161006036387483313219025677034763028399468014098550488360925743913961083760769152496292461336920728989015386056668587718094616522565393263200987701705362463383206600962060768735014485703252351326710301464454413579236206711642286567588566325453407065531566404151643884243364110561817116814144658768860402314371039878447427335225166555395609909823879316046117959485902765479891444315124771323116946022080636049225073794405650419036580717677471871772472330663472600821901055389044207554454730994764496585598443859401203457228833035553051195355907729372582699743490904585782201222489584493747442268692884377841852327343254535779950922959545812685270489617743006127482487648954308534851163263832752512392619969078176337756757398236005812695081728308971445076016942477929775279763298042560772615419122547368001739093906170869971175172571500977414438996087384709699386532576473191833190140093191561353675727894278522006679136501710685874250507741811414264497837702299765719822085073648490803072944781353852294748021128006074410024204262140234233043406427860378749285925260394618295364544971009596468761651340586146956337077324662421652199659486815804456870197576438951607697867585265284451241262499955150044652816460928930163739619859624862711655246968638167967989892616521419985145392716546108714664257998278750239431446690245248278830014358306992951555651943780024522315130349845016513528253410975816750804145718790682195098156889669401540575560430489547131781464796920586996117998971263887365315643453338535815935599136686260848622702986566823085639132208185920524334922341898466479821052634622968628766495150696262416056242752013004523087880838600127540081147514969136466242229763044348160511679186433430266238692129785027885235888942133721123400642720173755448172632485389905485693682923700908893714354426488242078425462806740072794920355326388439531017684353590261463476307233029969045465206192626213143248919480318684240913408886185032376704408770471930796657178425684902689744570168173881678986118970643044572067493681903857815020793466156644931359073005891342758785950724478952328081911162910558013800493386345276441731393365811761332780939195503425519717282830229709515405533290804851969255297338309550128411786682379749421719197073935569962998745829260241490779622590539811730527582167832875613872492730365348067570647240776673857396132448958248864828797779317931372710802710989946107419144689794616552024945031857081748889989679891497163778748902559022509999170100279291840653324471173491827707305684818521614145843001441253161695356535684361760857185352623460203382963622319992334884030785909779454484070117030096953586957564941537986400436725517299905827997039784474816973718765328742619170535828906177401718981169629823935394860590428704088011788814656367152038061288458364383156223559504476933806122382243703639389726881654820833581083330923839113638039910206721824635786189402044079883459350188646551364329844620975357227992665336839855346279097232997373149961716580450682273062979614172184752267886616702492509405488774550422125411490948280727541547509271333415638040450436746129549024983097931587924472460272092607464883228991518647855426854486355930631111424458034855154710281146348661569974794452737799433982194822508467205778712819932038783892719923994196612938497627113064602439912320729187109239080766377233253593083555659719636408122797619461325689683571556950914822412942825179848823100572972917720337660662289757275226142788002094126862825294068955174649778608135926987228824047156369512698310871142444366798937870564681166426899400882510952108098727736870329554768596867247355082512068133582707081381761607172196272914393324124851150199765981442440765572222246478749355873778204252792357792565722095461161802307709566587809758459719184298453640727454679294984942864199443781233729039768504799817171531869024944471847279039854838995834529694383120356893442982736140643404336037969136497008443831267867491215296883564038672216772253840979706666719031158561412912915755848276165179686000437324066835175198702974863428330283175866902871786209495908331127790813375368262196425880149270999470755545720735959396804700428890400033648085112963127525428880264381088150345509726282804507535355086502012982687078691686598077594234262360555241122923797721575500544777814360921117327005226486687718264959426347822945296139610926876606345620055042610640096343918701654723729493274401197693583663558626813145790937989457573252630796882449266955594549846862529007209369695434496745535485964265797434265978730979836688781032723432606644801383220030503245233592777118906637659047627281594584321052792586694097413362290086252981670391376845782535991535689085846541450343028981023229372543476118799926313199960977382024904767687746265521620172483327030893768079393538455727973882744858559635342205127959883082565782825676921836562186695430278820654176066736330343411866720392668987026205228601389450082267142094270098185070208234723341667595746939720236381133064355363607436787372122760751918094059303463382112616225360251749705045971598331419220013352934233954387882342972512788866460961515812002850714288975963506005882436862775686596026604378700587565457938608184592180203114627380396192922212717518629347910962604945804693783931257095275689806187242504522976955420949735309657273636981706449242530357605714032509483866777592740304427316295804026495442217505335001210945829483046108255639520196221439375221311849218672734487963304375833195539315933964667947815958172703379087540367741406113862818177496789102191535982394663162953539926411481607084828906301544259450923100713725029998701854052725028267488044894959327459743042135714840711204587649962299039175066924181973136568065824154013226287250108056885701047083854814726039072283415807557122401078192939912328770351802311942961699569717888967855375210261694173106607503815878616582218337303506856463712024326872055515119582987963559458942177415553776567739534615520899550162123741107769912280325996425837290588775126380069604517922371563579202183352762623493040737379347239295045747837641592435852806568217784897370168535209835006547646746963708350440885062039759874988101386317568789491699401601374651472273897529564649455203362116416529908270225609162359703124931693697171319537228121385179816688644927998500358502244976112922148409717601236626571547425841930498275485885082923186837929239574411529646934659322636359261190519459832709829339551123602901910108389304352661189675330089620318646518449876662220972800710008243221186421385899218609292143647140655541141150649595200644298533380708110324513951700348395898869929240672579259018047111454330827109581097242471377234647464629247190408018845296265547394110520225917562438608722928432994398428469428821033832486151468441855124488001719404423367100362109559289024781442404554229763396403574321309434300148947691787494598063145141781604913425773904923509683631386752811553735069574698977480794388638492477593203086338854151118328455933987700780022896999844006183876506809790780158189267243220755474608341273015134566476736314221511174716502497331646763311126687933308304322675141092160228765196857163430143857316011022144585350977605843687169610357615407135959224938063111498259160285689876321025032566103138641188614156453929668846993382283261636315649238727133131975422775526478929325917415479559069451498152182275904139090211753199375842726527591378786909948905496543311477966938169705001019911798698125081880842331690904401793097656628889229270968902393052051249283527772456739345565934817977720780655917488481979114254825963780700154782394139953187206004584481751347057472415941659465619917883164062966107107213444399981134943069530312554768282687171177123459946439704748526972202782084769774385522171180390409826885743160665165087198025937313325822875778010690295214651696124279991984591252527411744485495948314376031651813414953190839078135700199228803533070093598815856188708769258069450862858543030343242001832091106010982746452916877191549425479763587049957993645273403965550780998180257917697453527698531316258734225506212580103479352230938383308956522715021189818161656312544989072370663042150670854675958186337704124325449318605208574648507457414334049258775902992633473352728957036590436350537099962537909329857543467749980236533523680273578116975754346177067562729037993994901817815328387379327839260286091957593538394952278258728104923515115794857925289715485208109189291250285462566064535289096753599248399243750983646553057555382191304580873420952120743713720026339491798412349425499994430568569996019129999189291502353712289475265446830101136867286661440336068803092427746156519509419918082689898314927621292098551651534367811994056731784463294981531185113199413871442770999414388047547527595574344151714408115664311342927666187175884548966986921917092954034969548389073978054625718236094290844049332041873218363804667059840048049331897564442109686977488967571653887914078240104379361637678926013336413045006897621160838576728068926400211284364970195451284896673789490862152594805648998654445167277948999366580653919517231392102877195445403739674457014150713693832493293085439602650072561791816429166004248001802995749122318408095766724442939606844418502693579415831473534336691484715828582233429557129351316374774405985771083722059511715431365847540498298195050178415116582784013528777311958458400514062298383025786052557771814661959219576405480383106950921141656280811414627585209505978896174983124396990369989471810446886471158829605597484028499144421603790748147893418639727816116694523041183456758699532533316630062904356440496072423935409912135284748742763201715436763596702496465362995203457039328930358848413290951121928587300291702935819305035543974400745709566667432298586027916967788995347272068115511920269833662979285439914293948791510686259607254105000946795680273431501311848602896856455546721341046469180184730476518432301456232456181736613302345505017444083834969225542047536273565723990754639371938470313779852099899764676078787731535278567226418994864453948135150597509131955771730312004070619201038882690771886687116468895372272313266974670730735142712267451468059037610179301983379371846230536056226070217986241031219040834542784032685623782511627463851151467679012394822506238163099945959476215349033105867679509228907341803430538131115923312796440027950887660698303360143986916258256647077506656385493980796293362979552915293163099007571448012962332731032748081321143403046614210944342831120267021627071952374450447265510832993348774976572133284921742420430138873154200655226978571339216263487066283992898465695790110017600901944250772633551340445138704804705995871023238257875262325448934942202142163663780560950090657008018520240622761553294841689488345041227130810744097944261147316973032604578325334463387855970225539366518717064445409484209198139772487891967777364458215742222097393424623806412597504107690868105950101471057282292441058022922251488493321086093554033116718884372358310758419414604098794052030878615978863858603421271396923348711662952970481767316840520471266053040935175346037186793805752934151894703362262821789971038529184492497707279645020044269504210997548489028994415544150294482888640596947156127389084994732181901459374345053329626419536699577847575439841289671135062173969012130721485066454926898208896074619596528081473903442792924317629142282823600895346484011855793463229916538309637707313193214965164795404857760321596889883988074955547312614871584208034295405782594910256761379817825922900487485727999062219698533664049703145449261147310411936264294943939872162482851818259953021993388205706570405626114092306402493720449271749571495842749792265275342890642423451036876078624527826466682445787193721349922279818560575484291983941786090851139557534019641865345668911442777457958873153196944462781611899696121611997429231222007522108366755136445830234550667966284477951164898507181377838434020038350049061302825257082485431719378008776419196763935225288763093405049822042789960499406258271342463843893519491139944312972567459317768701600759836184653597142251371720060477780287870483801049221141574926979473839428664687590471524466813468930150985248474152702083404726131874113357186184566965616212564569321373036334390251385677921074449447417459216936195542551379674976314553550498945484179812749396003029409632684045304163550269279258223874117186617104670222860715311764351813687821307165157713129724816047609956515864922939431829828417762104801408033646478155210537754693774012625163497735138356827483241048843032758560530744385300731597668186296841940569729844850807973915715242540649660278977276741162679357246346616254367380594683377488009885030779371948844552887425505279014915375879942527330406159645352751627210574671548600509066662732520211737898333102257751084277007933201842700015377034442402934348173798530232389419423243015661850630944089292037462529272259965649386999460487810417169771506244595473173766763151679597642641161166919202266957024894881604435637185425157320549870344565044323248586895342655939993903607678010182815630736376642680138112483167489739243021621796474712717725668945537671308691090920073167384738604100191620334982744166129932476275656366288425825437624709866067966830188801651288950603109698298676781243114806373357793961685592924869325426209582696985207054088816056498426304642423664374151520584589433746102423871563926079695323489153592768888525657053550959664819200972183764097336504140893929815431845595534019591343187686290195781715040372819491071446068522936795178817401493934892684822132418000960816091921708029423004783716370715404790838136577839536413401142296496177710718832359561892617043722951397264356211626635170797546100819692869385735891818953276001848011083240723752113100877378651940641323835258493076794270932601011290344735774019552286124385411180912146091118110482243265294215639689870142433083182152776400848239515184442246663426895568155438716005920336500044153376234566486624538427927544858990097034391959848236434607698628672141116900180874403596541523353281849967409825966439119275266242415110846541181738707286394653636856039100401363302459104195378751690738649013556759824486024201147449459494540255657366125624372577014931105975639735252012406024667208215136740191925458940099778622923294018729415347386547600621003304561170843851417421195638274791211655865653806586495095171381123766972822757294000084197963203331896680542199534808505166223105666011017717898336089785633520866757901911982393708715526424002215546185746717599070852681209988747792508795186247288628026580046863477143349721531952566812223084704457194236114461220135259339202894972988950920928444850519070314505279739602956586706307339575970782357147174783228969458930558138739689015811021165453180529986114633088402417659917189275245151015931298602575213536662141029868668027967987282819912793444219381905183512078199111579930835277710344344609112765621748046706997316935954489291974646173217704645044885833324960111326608693943720497863820906864741338979853588724745326869157197370499769298673968469971750859756358531495276944516382636763704150509108201397254953712456905469639359642671807288346534043482151652358155283367574823525892680784599886117515267795046168956698517120233965953759018159724155956246684127865655706400703228341136208768752136136484129020370798151458407215308465365710517223431869265772861152048328319760094586350128052989935478763798049058648113154100101366986896178151316544267349813145064477630172845316680802754844189813898041240115586677016803735878908016588989782676298112456770659794053900558990898480185122774852186141564542123549830350216018245701161932716189295581525403306020825896561726325421017609297203298430363324448702038627159774312596060438850684543561840374997881339213506125830275739392921266397437576751088513935378368342583865751857930277648996672709230766835294945510563379191811683712891969524452536628419279962713535507861534484714188861694192970200669469490539118145342178167376556562408859461424983194809588313627077003096211719534136320017649734610477063599995319723454200668428430994495572501444782777804742476642243527696212358954227051947198602493122826664783419962850368218051546585469222423731271171922936849613463971474006420191029657644837925185270742572306082974342171074868352602560675354172851379107673959845378758297077235148136730293580676490427683859891181253010399373221522604434209269754901726555482758547411113898898358251176459340639233293098674930617231768029050956846492174504751847619774824616790604904835043490144086982594132047209207811368618154024378694889427631026934898914545112091327687341020559080886373591647021230119350253834114476094312524583477925430427067794547724085462909700452856610165157267295713838699477133980877325051875262437817837641122104113494588123926520520815182356780040217975489440265551568897273301470268593012720670110325171757046963748505710480038276451629494279507374637489719238614958786336570422269863556865508979100816177271221011761005964684097754245714703316965147293918729835611304552289728163197355792099143150318952959492791920863542801492706132095402839067314021224702285685845464537471551244527009628334006419196716587517279415026063878087011203514523668470343364822806232378568366310355806602523059227982533547815194209119443849817477380519757865866800054371016836941956850465038421202446260099740508796277282909586833985735516025395990814300632570339673080655227457738316878695308919410442731066437932800028371798124983132522343046426971000601745955409923983967936893498225105006469827286021281026969252289874254810866955439766123528385704769038714378783534704089113870311143265401888631215229552323141325053006607370646331047946627275913949646681766978111355983911051782290177145440878282048894085779022717190983005888026115970787849827125866538119445408846421140168045037400867558980600712468775154319259552770203100987454280973167961469409537250524086935864642504407579483079474377169131695338960916204849244261727066868119609643461915555892217305403935951107696368933628630697304539175633282352031563931947391956540335290203368045366102604983673331904760190287907213724516587828240776888487494057159615488824423991051289583892035724415392821102342755818622430302843582356249457159365878181254934797816644458533175677370746822869834803174500411743509959316366731824201971976931592530948816994239001951823312068341932712523424960021385789794036529929961296163765036569981229893956779563348101448703168061997506488530557588251245735537251259223969463405209809202895460217491289187597324814878362871259185871756559279964590870728656128059718391483255569639672432029463385257895999369151483079707031457807615099721589781660009777070193571152415150433391124749329395200290173026633261814935622435881721391638072798035885668403990221715961183240694078715831514577213902813764806579760256234391970235736715964954624765118791915352754820554333777775608828679808038079935949804769457958347016194456631668821572254731059859538884235395596190424072529425639532026298851186520019301184255413709288891284578426216888634549861255944480711678428364441799195868341246594918166580705985986522480402273216954243741788234549321619358442589038186196453381533369311079111340543214341854763954141668531365508001311992603277831871247740779846589139577670076013699296556741910506382378535299000738678568559397557529915628371695375743876187819181675337466812287609267716167300376877032354325102831779156603728975132457962766109882403481222511990932839779297011921915281344510189258574278386652322115943834393647088671692093546556234872931104994361754888867532064540314297578951811569802360955343833103743816076245403346750899015627971691372145345179107553617173203564906877434140323876205399898561235671143013501511101851293487018897535840706870731119149823872608342821045610349771862585527762287623056864768969771420505051865175888648924075028407205695614138129308566242603985856510553023120693903976495162465399745474950590522671122702657398429887364956515286552231519486373128963929663188976625381879748042728587704723887138358304848776194294852947845045671387944206986851873428516699012702533432941593567860983948665579411353261267120762979809887093802340408835892748453813698600621724863516584608871424437507047039894841469184273909521183199205891047645499238097575697854417413192846579610486524978291328259815897134659911513281392020011691982655708564736823619808277390751165840576791494500287189639666476906917123382882438289747208126686140060602993624992310761218649807183179237375586574874623883058292573758671914782488083660038434516039864420455834092489553007518291525679342110334871836086017514539266544275297744361566246488551209430769542956397187048466416744115688533875567241977314678879973585126977081755437879792559321984587577186609447140433355275447824536403066303820642581913111630073160996228648287415233671158332087845513235775369203537002845579452115939022344941259379326693831240521695854609755469911271195343483650691230288911894539475686261402769030004287911381044315443039698661492595897900897223574095351226605103271719642160845699926638082466045327002451882099065487095815508931702617612450385716758922973268227849835794902379584122891388294824260048631749051320789990126245284878284692586516200521770407261587242287884277493860359500204278761183828902960669960849244104043214711610144996478985931398648070598401938318182259441864224158988105652889066377479627105429106194161563041079513466617190441811895228318439781030993103324334219541337738685642248302952461468327321283677861199692034068564346506597806945316785548751917192292759335619078149158008684491505282890945296260289496644068831881060830801203359334226652476103904361093163256569469596375464529577757054156727568717852978512327773025041115626056102578891186834513699010497577762841999739401597409577348829327544445689629391872796202044047607455208417508131449965057084816220473450486320492129961223824371454297375655957232804988648136574787865019246332590492915991289691534275708433486646237354852468560026613839137862236326048011851030508821887045126412857551724573590227612892498646902337338828975015378466674320848560109540574325018617727962474529963935886460382450630471774166035196137795373814587089624864155612064483501646213839225854306169406406050980539919826973086894839739178130891894309538212411653628555521835537205964828928518448362257314571620754812345536468440310098729768229361560115074983029363567729093428349977310863298025876710197249502833173030947148476882570715025193198375082032436379207885430470407183703046119407165215422820746011617159059108736823169025442930392432348299183000933775388860538627671914817672310119315886263229161073362792082219157226457825288892983492895728683013539958346999934243796882350182048212789035246670676699084324374906556208535310966122624725970201251567860984321103509552140420640369011487035905970292424129783794739533533356591579679061682323723155231719314169490089002890245638761995763210268110590738944753221098459289494262523265102850622457981097172367482323600384051261051255082180867332109444424730374458088261807094807705084831197532849410614575456313155174347915974679732052219432468629888460156668686369295630611953381655433620932167602847600723303449961899778227684659902002005440040984849899524481392765588969212319658544343781717751900526628516366588205715727176481474350606620006581901166130045055484980220102026350663624575898204511630986093878660037542665241264913914092608908784452477138675116634384100792289532965532078478766991772158545846494753202886493113030688380840625055639041627174269181466872905187315947715670523481020902839936584114465835507396872121008663952485236303402801540921307149695542614419833247934095405887999872822027760391070671540671652132806193549123667401072905888640989447898783223534946235374643025616304475067773218993379434527164398623644294553303163569328928829458921100210291792745645400475434631578176298897083167369162742178343774502415479297166040266666360449004244697895571504088264838721303603038633510028581520208067955992400990906174946749263717750666571754012301806581536277360018208661601753483044293120233942338014165069016566116933239039541038026567042296852710499951333443509358765347811474427473134786691837195209989527051350798318598995371263943156901941732957185687936492436317214657798336359001000475875536710556329532892073420671814742425167578028819145329831737397555465543739733755468626536491622335622924479262828724403861436470707880239417723882990282078663404718654596704012792990463681144309411083586320943664767914283164346026054739872977186386566923514504509893159376503064040529519687995189938648899307110305309873712010810383894297419491747236109184680275347893186257065529567022329389902518155927638729129180708629870406695238313117525794520281092389638718709550703832565210117511958470653000954063133625646497227071483368339264497381219233359827436847448501920010595636316299670019833185596239946510714658697277083480940422406946033782456693322209270016973190142197312142613729213460996466768712555660584475092734861825600332589034704566675475009488043020121249802664819112961855858368429139395170277342815312127093884739396686753798446419689240193948340691726028855950126557914726777441859959707777371238393449469180741057597532383987301409525169666471868934412700779652310166039350774218983485961231594850546916011680760407324331199070788779199708956310965615600836551347798915808705319541695393176629204197906452416655249319172651120831298208558549351164073695248465850385083779242022855662673245878471928675242702092732082604719416823637830758450323388256667072239791427644944050980472554150600929828957688720563313383027695091681553564111264074298760259216069435932753130315920446461230350678988774368127894514852146595394636525284960628055649570039593375366720774222978522873451622619732735877522976760804364719562629207109671045586968497265264576591570259659188559917561126453876077829119064473133688956385081626258807719836847336101100594902795302612969606739869298770514410996230313762850714343400046635560074387517980180474668856953327979502686682451566147306520371774691449395362060989925802257097540601511212376335245329831913572394066011269471788036517974127123101192264797425458275147394748521184049366556905790740454647059625422210254216020732666367740412593812745428195380938094031668197711215170200215745649183076717610274614935793455259516711586310021670955758346060333357573036937051032973272795855182031366600014911384424824327523771772516348103479348380612929655265453985483231898650086218197298614451793700783884213342351883913914898153691779078015636027212812371973737329170342007381813602447472135603482590326895646210377618823249106797776000232808748036985701428402535773040510734159641220757529467779124901388813991691255349131788062851776016196034494170052044147689362245412222304712017333443983923975554986418511693212775860758814847432419077404083092494097046121478753087902656860635653988488257543398358936781797075366494804654364739415063847137988942160184351763320088196402974144394840706149016323912805240394929615656604192640715421078784521046325056420662451241533429169379562190298499738691874174408372438920143078785831050886304063378276902788320910559821852807405331090015036028024406799125070048529774641732920939007113742682340605519327981305128804703612149190605374865182869656886350665157396595193562529000418313056042743849746860588848677910947883887412775729504590238681059696236764097486408506116594187156758499439086419021867006249434828957706189180059559713760381588975759662654822791404304937679397672714538643991942115514498184341297285329769723940475176512296820711984480910836088316890415710880769697795606738291349720607141248358121309504602942208329188563064156265459084286989501512949179124280299623604169366024194218394889079305040986563191873535910476779457178112941858757600996356048332589502528668497245882332142031190046794112239310937717156150631657189933946239495671668771718743269193290023297491057725370569113788208878938674861842908628628479032406163287211354412197790702368613763125086706972496356449536930394630010058401232618550832645148824605497901817210584671925884096399835524167644214519993183287729864694854381623552260474751906413604854555512881731536484388860889818600942256089210636342098085246069597418377965770248538170288371127350867209880945459217250571105273997316722206067279899945022503041174313111309457579319446762078123776115341219397357037259145180606286146981002350224872329573170303791725751415965808762449737571572679227294234089998763794625100212774123247848079992262647937443194800797756277462427950834946477432069592333285339829944045169147014774543884867975688104852489828053035397462241508324944698327912338096003163040271451645904700320515584547102457666838356809622010897271231435755890371324088351307413840221226862295269906349998982114740403824122056146245127961066063945715784369175491509305103315782158570273990059097533690555933904917969872412470013566891883750096907525862408958442370475064122368403277502024734216811936337181840620113470923042112905750132960461068851292623058642750098865101826926163974086629692105781378839118641389086383235928800345365158754682784461124970472912055413992749559202023438599760428422435888647165344495143243762116040260042744468877634905110516362488762923013160110624067868933972062081327880152260415847219462032271244552948359235490854806358769165062411842304210794739609636314990874184033892642858416351212311142775159326057513501432333339191700024841141613101314101799713268165960959945744113132133066419650800868974524303179461392810940319435990903654775472298226439570577106907667153845301061374350739719559748863161919691717572765602733913619486169956894078853096147829925832905789635360528904827828034089401408427273851350660624777581151530213977749866469973764410414057780078007233928476553590506903134743159916426913046630957547297375842700413918304594153685693794175586778680333048887612552563907706993370351067616009316409454714837164629011157470470783876182120271871229873715051641558209278428623997894416501744828940671343954038125195357350575530234125547188423419250106382607901111426766359824590051427564844251358453261157251893906535550260623929006091060099076482040750199179255998141422044683186371677329893962161095120237834586748485240585521762211453001264245482306442711593715361327760761865725985945586689575219422454135669956849407469927934808398205955432481358291594855809877163304737092848111774418579871302672702906359058498025918163560397976474497019601423168487773105157109996651480446626626406524376622513811908250690653998964874372609994928740290425473905130167035940153257513837782478894260692345937035361186011450614239657901356774648764466311873829398001259585680725200591035078464277713030932834625425113989412514879702639216681593881652230567202628939758821231947859490759577007807531733986553636675697278741097457136300550140899517746054651055970204251196665209671039230230953029661311314143132508491985521189667444214803455414583640242252438502975135161608154971276931744609557746180557038481828876135534932394982673889381730731254319353413384160141894862068319066047352769228715231587717722140158404460988506838290894234814795075373432906273728800378997767702249192863970262548481442359413657462554346802546829847641250233908976006441851919576228050200519336919671976319083737621612949054242986384433378274230761645885144076800159034515590552432731276299554021727140049212336973997099664175365480525515397990414616425536023605696064699780467285774802540157405959387588952439672710668951215708549901447031797440426722609102022510322124606856137823911208360878372847500672286372460797897353935854142348801545812451722681006627006157566121839051366014209456816345021632609463059646659701572832937610649436846095029125763618614508137396777540148628558774586632519967911219734967702882417329348395061189246241610426384022281531212676579008442602186845272670251496072818411628350914103164353160275114649781290992397571164380649670707244910725883771812012962109384495353497960041058157738419677189259654364048388023641277044626413139570775194859908186330941660815724096659807110643097660920225712680157192694344178336739192300668643297216833234831152811798568155475978925428549175650851361328779645675895506671140463157708329752038130099464593112697823957129248154112322967008466643748627213678520422980781061872625266930453063348102152303871630784709695635503858599678729538483961897351159340981986666423486512915138114119705536663692129448973659413285844288865486050009863360362432780624537751798777656994517243127124240843869088101555228443765268682191812269259376562401459562244819348263989747783993027629766527205492271074615837509209628970051060860835351700469317224830798716712643033754631965781429559835372312858735697437958193141764063564696859767505340734491797763816235719379186556808134493471520640680275163543888605465136986574996107197814626234155014410968798779258118996363521067743870716401888543785619707233233116577154760468481975067322220348527655352995913718184762741252267560979792238934499331624504504759497520121090061022582669464143555857021929404159553526816578331734792086587416412666054138996584215915848115602147834975988849120810584397116966722121529127175797473998607003142167511700418567713180950607993170923087325034964621470027853071659312220412788381555110703898739565425068168663528456690668863339041658056542685608852774539245627064222222155528613011432974606130567724219357705504888450656139515852945589210364349076678361041572416443448592150695511271276519120125025586421217206644823103473848065055209453377768147779005568494462576880449842686618817488583932471181073207137060796830149503201619576915268523322450826785703617437222707834566520084879091896334934780646663282332760088095137187618927675503381621879066879755278789382317894778869730056270918131536176440012303147817294710304851541178869434458761565343331329928705301560820530009849936132045220183039842749525192313702697541133352863408330126549355977239272178089410324512268093675570841373289232744865838096355746299139335515627783237555677499206818597489081095570063339793741538630329118111935841596391257469623336706705448716454263131837681539680478729001623465030937256712110293151179350743699269282519324621709937552114308871708945933355768192999852949003591266006842938254748197242918391480830118494001250152552957583970385023086454258280505844554787132304332641853438588650665183102843214045502218282435610592704838589059223753980910683442124620533116396532320305909247097178711122350566891531851464740499709388943283425490970302647629492876011790094899284590685793953816335635169402909628482133065373469990565800547641502625952576598964178141161172754421035496825980582798059800242509977891048484864466316061326249905645095510225206769563877079174197381542586009754055815965819961178272238233991896644387743717207940218489071692712774832322105894974822940570969499972284564746127465975057087543540775297910289912498040156824505542458364362501875866415152645235763319059506845275820227415924577134306582209490101524796649752889535972858836798448528126802860657766365875203380283526031264807724704189540334624934721004327109116574670454959500327646845046987280971122469217955176251269846807844504880528636143615819997768923279345941618638861012745326881604879554927611855664706556857181532162349591676598602538350951821841643478134244158859874675463265701920782714232967830112735078101861240435796022158709371486524037968407520585638014299521600988984432528610502865847052062866956269809056968400957669230861719056215320903900199317027823786543241394699288452670225918803639672325448782899757981723213896882337616193092168201440369523873162631193673568416122561409829419114455180847319979860490055284757622557501340103790816841355528539931824388105110763507873670458500660278803588065644012800531077426444333321564550526641166127979517610138758178866909156699354524693224697872294623625946017326386397078715010866833553426150482382076832286521327872333736093906993461760419354858757636968451976302716021635013932983754606402337211467310209241809284234104016342910192846395109776261154576732854113104678178904921713150194596719953670414934750147977155245694164014523565734884461401728959979372425166940142987010158301191289989491755324114623450551745383272862096021300034971629046632975083673926939545150400706140231515208389686800859352247988148248722753574168167154427283212177445073509829834248412098303477098549340998053110712061894877417003457808953992195869133394256487549026693535030511274011733968372006129181043897249603677788802433461554941853522472945947485268685575850335044059309281063557772599962163344695800874981908420069207708056234333712111157921222655269914751276113166986470789288391712479862604897529097668856554349316554124420853155511409381236732190616194208637072496433641461662644984473058731592680028417800663069357663239456513042309565891293328059481414297771726950321769362698872134581033513649355455173680079390318944423120353602499652933434356232620832563633150649731751655164428586591876225795237705523476785559709279004001434766310228303634368903141679866089230832333768521821228006250544721916794028604186897578166474703028655647923789350876709835862172815307605197081327396405576662459422662534758524404114495840903946829098306971085905383629778563769469073955055250703051243771506587920548176893372182902770292380459539904989766666043310332685457115751543716609575080446719039987879138659730882310735259620478218424910642917999307673942094156527606135712762662828626319174511315444485524117406109286034783223012082276270928250076433515182949126748454426608267589382025241485601200168411235001980415565493867033685681777365735152714638694062859069291862211306571575114381308427781319929162460449462651094101433419160015427989341192232896189826988461396273997116281256414882931825008503493041454488454519601511769760666659014184122957948336644083363589113976775071706356187208725643537653331689164114312996262070739958553268767194768467506075384213109834719144619521999376810360015969301195590607465828890480673039687620339878996163389059286216204090745208466888305245362176852988577831408474550575699972642029242157820276529184998306262528453748181320263732092040681011165585788119712566649343297372703278590603418611403023837334746272283498872745628795806583722645136563512291692387161714152051992581142320733532965129305172446436008632514345033122078948585324568209600870222734405003145047687583593790073957565549884367006455444748353039714954744026137576475971546013951451092456473739814309810777121340632551572858769803826645068910534310294716775748813462087593192833488173840678137556707306984255047549564565430701959155881642519703117977984425668941626775023461194071067428769664733343779464702760848455619320322592388611531078482169988276223044080724895111502141928132388483286732219943456130523634380604617863413265489461800779053053796533901768205105008436254956985762787398688787707628868915191513756447392147154168310582467998995689260768383841316765617409521847707719446418133513863847327612239503386629835386742178535415192400459808600639472982412507556092120727756606611163714877884755708816966828505664377744170020037104203721029031879500201946651719888225508221009728514749160018474986256986750343335329452656433143783031471853163182097074310959453382285621138789667570844516473259581023847943617437158306369509891202603736899970730857004017077117201261386034939218257769623119292215359095552403579855839989390843951200058283205840909656285299573860117067561549327457256279324577653624245148650843998011327973722567997712894699582398685527877553085834854866042291346099056011482714027290799100585749411809464211427217387277175259718823292814466406638890382403474741135960401497202598439002470195151941307462372417221390610226084715680729292304140826041808223333565449741928576006847268988516255158856721659324292446803589480028801357715725287109467090496600648657055144463214013324075594180397465810193407679400558334646927357695693206711885128839936392825941346263115944085655553963022090638945905565562634619256148524273719095822679774942697967557559530250650369230860435416948302625425448758906936916083681854647990255805014623397779569543370086549823965376622102583331277392374277421999938763178048828231112107257597942578843700666596566333285978001132278400690051378805684006841727299354206135588121073575775897241518545053287896636229833582419118090571511849976301000218875488807135203200412030887158684125835119497806298710790930268597664593828602920559000969024078926112337976405243868367357247470134041852316749216775195859709501546029814753856894656486654162767433091753016984915840097994919098937089522842456604747175080455182458444872899754983219557493250265612258554255584748493426407848130443642375812214220854659789646480471101386299506627254377614919529276502261762208980496870629210430825040409945768470496502525959404227237662083304254683741043899418443687226962748144990811467035861580615785656296930915940117374078345565717884587189047036012928409876907076108276039568479185365660388480046570606651846684932096769433889996431130328801776483511245852695426051185281520919101861048442159915616536183627797423977765907761967077019164102385560456789375964152723578793112674482935398311283733163768935771268228024705020646157396779184814232818131375876444948110419872512602348121103306896390030652604022827511337306312308904858809900747401922916593200242014611500185004603409308067073966097101471648305223445331818698743923345065459377226246606960861642005677887723312590390782386431138131135630823885650574863771419832055045688123562553256326135394549107847478418889324067471193030947527951059445445547159021226356316819304239772720564859331192882397204481151344451883732188853337844878846419325127428324438281623443161294286867767011043422652711419812121767107111337518310499017760750414139372608511462803923347330477141448052945455207634989585685716951484917886461134521692396411044310657015692904809267875172441462648782805564193856011280666726507234871664798002499129630584707804161166804206370987683918542039260830188981242545439426454721860888593083849687603850734829454655584957618616099764971332764839863657263259156177432086389392220154527368528271018364356200968063886479778298625221872339772646264898743460811559711604275239241662419622458508392059362460746515732685709949021748348290168959586261742681996818159042527153082955844702152316000998043870629309296320456058057783389891992191418843102302785429404051874066456680584057886745285683001437033696865211113080130963857099826549728539976031074098079447262154316947492203967048854045657945614090123432798460702707955929263857040845205403830453300961330796686253861825482139462116963061918170330494459721612677868497284217841708616657919748932523640061065859452845557669208396288391410178336481110097097703275601384036768644803429097242417116108669744874943808377690970230133072898637533052325998693176412252950069112065596905956498240365012951283445603049920001667877243164626665940925506472690619279733972959445231261608061465469736792378613883497556263731659655266922949550633518464742534478696781004353317595686427118309853751242548145696475471613087184299502594282371321095644266440112926858023801136373382712173146243589491495142897415610044702547586502444069388229498560657971142434615339116593888746073872385239240473753748842111270908666640085337668052761565233504882654261498561652645445396935574482140240063498564323297743276445126431010563244854486291347745541052442724129188063529224990504282582073264640509795365474208585065972848164063553782798663542470486173145162474472285037900014584672376401976945079858858878112261089939316250696076234727987719373975606494080529517236105189366124655282636740908212712795204279239537528642915619827979049898588057480057383656720873746201642225229468688812495120745850586992963944660311483607234383813200220463788187060226720549028359245091307393400707888612477068135862875618413949941292827125944922924557133192662502576515308364984723787422769933673955084075545998526656427003806261009797131936698744682987317166320785104913439665791653240107253148778484973575871194329152600240234213197647494465848175486681920606921051584764955514696666824380799948456747570171877227490426804960578553874729726911060600049218519452361642280615612752266293234453050615279054424918190829127034299743669056886024894745065052523975726220173746743435808103583926905291125603067427476980260038942279166002647340753657252900247531930953421240581906329915104497788828928831060499019384651100867494433549260278044689458775180371135114216467279942181000789179569731884633715679908843252114589339952634308301098205499397019668383013266061898225991000605081531579597490189104072256034552961063492467732444853974150358624204672110816091232840889586336005453267378500386583809280608366874947425305723344037132668316257758868431112816972573335886181988404574069507764744674282873269490050463401315158478381549355844973984886238346959289237797235278264564218855915135103163578104371736385365778965589061095621133589246425499823669261758932141718137654804859826265757513794470831527642496479246175913663238147611916483222443747819612750299700848699615624826835436201055889445212684718528465734382280009704461270077277339105609138747229907489346333703390185672254187743564362374025366120168702592557254925241392044984214033097405839790597917978495414302404442779565783960406911396627753742628451351814859350969648470426666908840597984023797945564852223812163695588662990372516923228947839442271718543989163448793894454810045091043283128148622786342955163557984512374953773396536945081503067251346463433383961878124631797251345474907396280216703895403292185091657741920374520634886256505584393612167713746735453074703688037172575722186995550719096087394918448713591471438233716850036603260959167494822792378446617048985244922205148498077405481316588209727006407206955120049934170273515521784349837588648714312679756847807725212551948783739419965341641280449095591040707060849901499070339316838821383203042899594522605559436959951524660194440020211738614455917255584251551180891894802931399845767505834866549132872937020815834533590062663874260804460227260509667605396415704490609439366969204160065675096580547581004951236004832968589995109100345372811264435606078101265427940741367421510148185642001994299200846485814179636221005350359812879388605686390374138089377246750021692194134409468626771891767468644085283880077669168302769226369946362993521903203881243694486682805531250707813732348279762212778021537809914004055726875759287754379898515056323521416963269060285606198722978572638667140230470686439075736878701196895926857808672501419489695833637159748483104372127980625718018184914941742664890280753828042812942897356981956156498540676196569633851674783417997699282793334021330393544622121449764093689639184543152343401635716811255566607696748092793260023560790458667217721010666672784535419290482529106769416341250785145433738363261705092532756183328138342734612559518371548304632710851586230958196881658507294807406753272797577111900841584395143752539321115240329443558022563774875719831195738277181871473982421447661346931755092488249235166032230501039114463807813096706227431013284670436605728914286269613920754479671881799991373656791349625466794366655340305866114278619022032097516750156708859644522437225425316373156007629393464360801596211608934772420958554202426045318679715279625460113857902330334498803340725968064643403694442294352743640454808472988494055549927863238047118209781826510199749079034923143179538868286602392037358199502724316524333110118239874987158972098222938662365614256354886545241963473427187926211471610045926805142533536507900875646236115154939957584692753941354950010843597969877146164069415347288239917213429076541634996406988599993887934619798492687478647431146323615481262611850080034594121041573300640697921578222593387765120144817644855095031808090630872040603092945919811801283066371234266079605331721005843896358248573840207213018033993883592600953113368282985940718864755903712502239462300923098758842076871449275489810513718742037719023537245350088489062396121382578716540197755746412255385571950054979605243174268588183717734816181487700666822730880659518302915738970305406990183819391206789946016466973326080787403489182567757977433169638302380313753559023397640080491755140910185414523307347535439751257594462523100975940305409572560034821720847070603634187845314052032022355074775156540199849460441702862596156168994048395926716785887524334695275639242213694196176031917101127474596541520157892182642929982391870869848612699860133114483702887056477387653255430542738132642991748498847431340159637727720050802016671350793029485302358328030542500307298284844350458868325946262728794949342138230033315489579774537145370444292170233566084939135170421627986184108956855379762795494461932230700435294265012722215511602807226193002189432145737450579426145528422440122510975576850900787476551401415282481259341970097017147064300556950606750651971384801930291157030563210090968825716719676355923134560008368717323778488512494409639185795201593322903516511521738720015152886138645852157197723708737602594639846213777514146381444162810013106722254271394762961212573521012879457236476932708812852414844609953193937245104803484178499468640413258310984995058388526968282050593854009163375811519089691991555748640547226698509904645286681691222630917837184336331874169446692336929096764157243847413919198600499551028854958493973896550852299520049003803050194369449706709635946972236484621618438972444096494901589429669057267751875449589661400788909850051651968028296562753715416394426088986799394890386703123143941804918765615805963067368684739519212321697931198059828946213247432802059242641806214263248827110167126376764186228519915913113863239984189081023357354741085827760957889087830948945542915818907698772988309995743375813476020535197896920247616906637380534570207111317442035190764640433981833187738567058882607571869083292796723787900471840161009461920893145797620037924260442531030320268032649952686468375540043580885065972064492145780237130545625729894690377196685698271798408642817748095859828094518766889293490009774830428007597884146644767027660986292652170932873110283580926106615724249395314638126844791518257721777122523728695955647712251460179805859577028887518194550761975527299231274497001197758639676603619816963043222457964357363513543282190467955141163049753901942510520299460549590453044564495132502803717959258856703228318193912158309430384452557770720455802440449652526228512781229786931377603480472970348566492464278266288483166593197636979741444788686674742550019881583690892687732906340053485751366779260570388064290560630862382554496745646742782181922297408528735906467753038702634502187230612241605256679222594821648693314521776872484848637400985768305097938137879163676368993967032088073166492218356092019283040623893680365977641450663861390297575462068633357610300287203155188472653439990439375736054058268655519733232592083115967308982701571673551126599287747557218915254364844816882900066651612057415866503858124014057318952413232158677744212024260136243717650757471190018897733549192270705876573421036443712704680426067232809411826453342263469390447737388119023007875461625852621615072461598393289803915804463107679591678481142940470319044185964761317835144538153860169735068303495800632497456392177769575484108908419774945411543843365979897234928736114288832377374149269054078450050111905393300392748224325626617000667572780836116231734088622267386911623315902824984658152693558319235373830956185001355448077439578948371685092451392461019934935440036491303237455818489566529294972931958914138563310228062250578305924516270051938722616949641336233175877874455308236081359104862289912606993813747075550683567610302520682723139885803036055029607787190402765441621923554895318803713633957497995184028863252347638835046935858300070840172721793945256642620373047162133200560437707158191036041111541980205032115204817956380636338770316999871916482063040269702882353088227233654924288030253700717316428992563259238828694150501590857698009485949551021666805023056056850374807032505203480153460006109010258571612992183414175112580353588206045865399484168408853824548649475892734531867416253920803201382541477321944513728279769214141591477416910612361915028346190723977920965671612713917485920591257952296161809384814303299900606805857713997248114096534351016220472537793841881044115688999023840114281431330116141328310907785282400163102940262629223892361843359935355159279222506741557302498653882342146035889544091471489864622690949898308355518738863260810175409011296005608225603697368613645175309585858650334544232750775901814932498021520729069339271812373080551375579159186936738779451012822266316633064101448813567015324085170369339920008645977315959884517264226579008191554904127326396540888986563710287100264482405469573552761557178814877010010154775573939298740105658607191482612903891178399528661365195555060769240512275662771688624754455476966395568866286656473655840315299523100898348406449800815844289248920939687266813330225911498368509445966981515520802791171793387671401348684363521491651476943162882917969882779058782331814830357422087563228907643821980245395461368743760902472955224661429431134667633310301646684042088777592200869840572109772600518443216132537405769329779851999681674649351469956094296179563182045250964323294936587237006619365966747290544170420734904834300309506433601125067411395060835770344192517981918776375564318397618208192771096723639488698633027399791731808146635908543045122943030033960999064587049701103519896144273859421144910936118521089610256086494100373508887974192684432959167151769508856828929273064444847023691459203362566896528633057434601743059844136258382853423441215581335044180524879967397033489475005674456798329635731095830815261393539671540666670763554794292455483458091814468631350646129888019427719405523106376645041253702786154142190027038482505925738593111636766851310808666262431091982016853594314987452147632716359104856846833295407305233495807990935440405134931988737493866258824810503203743386972296516278700185761968172622420248776587920655095854746060729596070651695966508791677942025959994931262085576323532612822129806106349463654626410864535536564189219749224518752786289430260498307198878726939477379270443413270632542596248435186958938819985294806706710167758964133981390215346938000902756565572347378790094062421856072312306352969043268370303306227395224067735172604369882256408425209321776054735835279701100203036650992781268410622650105540525198419744973287125318786819520775872499036088237603185194303379186531887276756076178540921545980720484528635183563296096442413645829780075673762570187310311586918814229785964892830459308404209483689104982464689076510363288465047475535595786820770656060882197791896119238391805745016366235802772435816948965677982244431445174735225495134695470754410495603338593900476635063435439893076947388305224391870018589018096352248159486472227803659065131265326395621859240813679042022639151178639179629798801135287916098381203859311011686859406956861976635229065246159296216066602715224611324404875973690210647157177023270205566098650831644615546008360847660023210637838337645909450777535298218693660448052793428870440342115233210650987744471952635432560000019835950922545270460549559958685111184666501899305291895780934453527284375327326619812884486579359126479520765727327619591308322198959043713272894523914188577520123590213137643035895935743606934685185804068078368777218597463832889795453788889914845998308899702249042955500727697168874693282885164108814715877895648012892204020137858574771450338654049816207817063133389558007903083387960067602543454579466393248882764395072133224637561550826565946530761725700706571820836646506910977430288674555167787804977988922786121643366406947369936771037535314228729221046829280497101168029625734342057809950831823910465510251179886901094986691537327523863884726158028057432241975852222732145962661719186926756384074699417283880849431274924809441579127830552526869989452450102501251766713058456228315466893919010841332810880390420840854920317686094440413561954900731498139530635904219282227753402241983707429884039632272304774971765839105031658189152886365235742375614844511246055702500424839915306668225745007897476521932902655571507708163898890828035767607260130265667746357365423848471418267178222124931771928371894787488990609138111419119022779679349766740324986676076482919822564991292988954633660542761788027164590039446974219577442859109730838266304310092307836077204770095914333841722279003283432862394993990515556843240579504072733799608410264411167845880160531038903269430585392856882642241673482877184688425135026522664397981258746134785739830487047101268615120245317293089470967499381407411709985396258710228248171389951028503269208980446572281056074014658227520290180805254550950317086188820914441887410751978797789899061688764820308618462932289290044689424483378769552969471011689792888447591826565156442918562726983396078833644278332005559582712851130684271690632524456394320201724885980227122714234617441121034270327389966382013683987284935510319025857755309841972753796619824551769788717680354106520924031345141858879502253448696334162365970933524331471066359568836591751894728048044392596608416640568714276142413607910777121456562617509279525403338741577589873355095526587178298788733955922773215824578201793140933753224302013863072416990815573096980296261011088184874185651715023710400262170668915778297634024799053322930724671778545890403007827176984851989035842225490708771554296325908897188666033406905688198846915695143952054428888626565566687184240000689887639158156684883427401751988522102954909943270199817016417904783249327397788825391725295515843893786605061375922588696010241172481214694526318783836398594084968334193951099712950078465138722003336857219987039096690854238633318197236665626857846854360305880579646116749763496755245344131005942427295743372625341647477179815916219450738033266346534294784575842470941655203294348580470647624594318045955827478414229090266671978499886663991230155141760356743219319972350552212260592206711554529282023080037960189604568706298419722277757701554773243081987376768236162823606480295494867532477325506437253341194318500999251645746039614717829063406312355568987585015839625141781322453766527131675805953665572143825888966654817177721791371242875162344116179071035514118295294723804188692679794019321496926035415887121767641570707376720911718513710252347814024978532497099338084600664073239362350553964811997906846104645220700885309038178263193939312613755611010397235274032743297799863618861550457161459317929662742973178468631144765230744428344372365854760372024450848842225842758936518013233761933408717845330469051588828303681454099530387995996702473145299195273768788807642130114437684476088666322377155406680367687774811369742446617452346873130081237928231263146842680149825485402716401223463689060323960134706223151354660919627348752102070831524621968065866188880614176556185066983511995221869938691957286727713067007864124591936490707438998638651389909403566461288934450954647183313826249075393631590053438839317598389588677430617400110446520701609539087661850015102343947442219244312903142855738123630767760954523559145265044030309402946633877418734504276028949730648675427497526483260748215256541075143601198079212371023248666897097384474139108019986745107093827877310907361401532906326462383965733762198488910014181570984109139186531857169922533959402503620691132302340977274033737246951402238409309905723437183877598942468448314156093937932779807430197594213893185858038501806640168177667591194783115355176087206110932992350166335584045067089267888077861150808645558960936435224949095444476256434305328312074926011418325928513083974710175710295049453167500443376784663047846319238755347649079650780685281302110381551334403007429128271565038266327316109108668947315317409122491663090025024373601669884700691907616372133268150679715078682602777387491207063330007881108398673554850338237288513188376003021766258495559645560896550493624148781128466763323060563576295488161873097413313685060087086031875702232707901253203319575908013910706591497847995285448551785872899973002970800572614710229733578552840132887575084446971967773034587862735317057405226227074390258682216708258586945592674661572184760285183062339077239903235500009562026336565608976042707752873233814841626525514929008062702072426450153272242841104921226291706355583849662188101329487866032037159827421764978995299660404557451122072393718046870272918860967844597176385877735796656712336622565587274844032036304465770382708353841694831677779330708683801150333941741245150221252341907274629921325206352048000486010339181767050046556730179108637976026392304408581304216004823492854333265387196538402418088643072636352015630027446453959780272416989704723745597361202540498793817591935169539868720795677205649881348518643436842041651038639272937381744974622912108794750409472862658398879880275249162902579043337401591170398781153730710147373027455949214938314155817694565866898050351847906561089441698824113442459859092905459431024861300722630706175895852246310357959301068776160932448049885464813747897571183351534418896528475476661408734501725009152657202044579385078769154145790876766120346127958251036147557167899073717433418640228690106295337632224729145970995560791022326766644516958439514823106474678069157207806924180379568072520406148154638062151106830431462734238489732285627346169702057493831582954152691420395876735926024932080364624367001983510971651597592381227631282145633688840323903105951575615980970476356723946086180417802269824352754342971210436385134197533816675101666135572109640798003114280692884491695280466696238580925653886159885598466522301582317509611656912149267886633103737553571689584769342022162082941954503099267114273385938536503693993357905540029181976532312653872930018909142527712858985165900832755186456020127024750504629969271112868103075921873995032888443470661959365088179337864260044529660397678001781915891674121322512501580915161688412527639711595554854970824908141134159652587230619912757908393507099803663158293105652893125125666266909840106143758061103919840358193296054609445625129245013221074255395965817415129191370561271669405755460187094091165077197512264632784003385557124846501393013946476053348242832163085933935762850801602807109701400057776686079886833828504174306045941505555340853112375664116874809743112725638982811965884543804666890744732349984340875999052099874263014719473494406433829171741364091823100910147394490057866710345293704595470547841988296334358357661218369949488646203059256118560603269516906633201812632458223080080467858389438803892988603426169624217621984416280311442102102177254531230216844993088034448126666196927448351052833155554872742978482695698559921254873617348107878549403318427226522088261727195824977910283196061764196957601579175565608303674117581596877391956574834152712284920456288210235388354311789664564292634466820832268477770734188959154694791748740485025062867375656483683755843567567931183361406276441447978741603259811517600963255782592978079433395745692753716498070304931114830970686220749794512822105424670463970919167284978794806255313687202379389760648938244329350755554899834933028668156749696251656296552746097288419349888666399612179578610294767370031871230878096403225753088646135512323061901928023089144471247315776712640751335196760671711857198417298575067132959318055336159557105195836251885487016723684207114139798722317368925640549692935147136118639998563099932295763301062982674336923152383165471096266954693357854834357902891579315060808261781525445418553541515780677203801092976986825460794136127760610260430870943925561642308308997865932851020504096754208978151472257849132683573152500109674814870951596514455969828837665087349219313726421729400361238489185709668674834042943605259542093703475945233517302679725062507608987352585984909321241871356862323719456926269826698623126231941469750455686024515193914021864324728625184643097164090446448857594537489335343090615576096684368185960498372489419163975730286740106324180453093691417773913581805758094293621271112158171722179435535232355866155291619410206450746654146283535031661788689742809573604594278402459818358427279533260331797597879157322134097152063170388855539689370875998174188266851250026253659460855630647839361873836060250045299594787183538247657350542356280404647311286407227951686509899687506789262030310140452009013635906939751910762326556171798999509903359020258309631230953038286884433550608537290356428265971995847660720149200584549788476933097327395560184979477424191653797162718892703001832430277648896125705279739325974859890627403842911068080487948512098798884016167743700939205674488474064246587752366305992485675940051849236033445951655927241451119446168259117556186905785247474876146316243797319883969974871495880035288928594072103664511808215883557117769439934316197651595326631072348094036270528319928924484673498550799064864363054388294148510360213542395627371158607780982928581044651904794210601751039913275090508056584966448229652893705261709731442549244495873198720226930009390043222241700451679093582293479230981882868749888082147498189747445942051585368722989878399308034261545028711752090451148242787290341054965248255703996524952689154358438046947174407882188453571873788422230111284516220010642563864957090309203541172303048837819808263634987549694648661297338437040139479897465741014893128947039659483277914776204007700574469583920233759529702744123941747061445897760215849728288935264086021561573055787995962226858065792805157182975781397360701545810444363167181175136169202209931531306232251362390376671480910845022048004819484732322669977927080885032616775924049207657681553353827295600265050118948089660580535844913490220684681536142449688514005612263214417474748127833001304090578359631509998867772443429347850313224030108577668703093422199116626585025574392422854730479549811155793339837016874086163943699278837795511882010290374287397906839136438675017949880479315908780633937649637427849995946229905492970795907832958743982476601962685840050923569818659147609568953819945692289828943758186300306349678934814666993290629143419409336174947725610566665137542269541963709555152042957482411672572366435692350513262383616835537731267822884241515585139540223012155977875563454592909149015630088952197696408533193123583431526948254161509236861791125051951366157675347020785093154501826561673050200877004400645576086657987680207622170523041044197812367562631765416007928017571469418095397560261367058102172789213345526489236535872463109677543571940220615128607146018054965268554136986063294677255043063242528758188957777761887870968679881475468978536734393310264332007705535100822671410596066673740288555775626070765948989067548874752033511481068517599132065430845015617509269551295725142908492934076674611788525833166180538827817919471517324095495689385332150843246422582507057160551732891213990412569966355589270586053657364381908255008802030465700146463194840667632861260325356782951842762169887281803137574226140472062717810339965175559018292236353594761880207529629167614935027801559906965130334780291230997405353547712833030371705399600004183495657120248901584876063363928822730159045081360084432896478493753791762779237916950077196585424503849839912915712770756832273585822920631366249752822596389434144235108295215354802052687813342253586805499827263388983848731208550607103646601032692338250374385511687623499898451546261299975103512761672691418995302702323246502229745744855659485221622997626638757437789089078849970120348826042733097704336228174023821151391798142186044019900721902622447914126040461000816858079993638296457044694803998528554923020869392953003829295212994721582879811159555727445593398604799973390966580206986413619444286655501713248359496080459294563062837938478958063287044586911262090658913740759899359083178110981857443853727191730159018163179731091417782602618850382538544492480955551683221818369938028927076616759198217154778458945664056320946971304880518333675902297633176958120373552694585622684900564058407563010589162777129094592166841556973166555406735497684344293862705875488694575738631075867784724725740458615172033469948522303680834039690707012904491289121863501626218094562699271463584037641429138690552037755980608750620822222116936525827446753189043401716571069019437306233984061099462523688000226459245699323470695443377901673345266306901246518158624282746478210958503743535455727888531671409850582986131028116553755230824234074596253016595471030412036473633590129198485660499453334873897965079769679162435434451219114378653560822473377945760610238328331365816890548782529520451575210023739451744986515905241217623655018226992749411809408247532551216842564767559867305717812642385545169788614371056635534069907299553675800432466047185237985272579234411289896640150233795510132395273444445718582112943348890334361305002568544508295136466354745654860663516917589174209627619861176174404384878245687356862160620941635348160627666711503328456598060775256531885444288606179259636147646408815124178795283545303382212991478008582684879957071576440545396335272028558301708619789403769068191161793577577234391658119514160395642552349082797275480420360961874987932206089189572482641265272451420096796875302934904906273678507427533936876324953844016612208169046378684175761412379237639438399689886607981151042367583139729295345375299904197315068921302888772811820236805915613180271001077639561410967781594291490487109196181570975845335475009422318407169561870958274980088559724983218254312262753351681183496688978907695790337770791214062384805809014704059370221323306411223302134659274729313599075174414236053920480378527531264426032680091523781710300069168107646155455185758761359922862806289288649633757188221078549431894494861886760750300203576610688075961838987169284320426425256893003013824213200451718529247609069865960836290429028646703870753093947518292933531909766072247102080966965503343945787227416682065917083445337578878815174244813092211508638950654220317578366236848853823346801646348286646240344965307418399849996669147458852359172884870026060822885877705010136241405288207685568237669932091003084893860220812263680617642677515905206320015793590702356961257315922805311913712078361998365205023331560930427748345801082194110701581292274419274154114356999648582795544208496030670615884172550656556423541254992096631754405608408519570774115388193829362643840297106255810851815143590956098832060611238630248297051258517977327109349152912815470664819975503175504089578533414173854303089664348136536820747551553725619572574150714320916531524184386940161690890444910731795078233997503439989301917038571542373306118516570364588459543166798230947123490565452052383982190004207718575830193477248563819709418854129836453507311958173486507722101634559181207164538260283271099096855605903405360898789967209998769415600934445448999382050902682763333763344275924010461439939790958728678942589841355349117419007652491588400535967034173949015901247432235930222705454315991592264519062359606488070621395836731627130131198555824912426007650473995447190704702714624185746672104678518765718462878231762664873124063765806712531348661835393655868537109421601885018499448286638297084770698303948445985340749489563336916193389368437997957138865688854986126694507665861294670395144924650890481043320731416707641721638358468196168737685172987781212595038430465811638945400508124660461050303021837297601309410539733093847122206647399463690891103173069192864584409471448617125776571732439815128813130395682450618784685485927757095077260749229929513537960198177712101728916795841327314303227779526243677546167324397882252610760000049224857116005887565386103052157209164687133769599236968882094257442366946301295738763621650796160019384066409952851582330584381858096841287009901742954143556333186951422673303607289700712469720277941478106085146880384283803173659769090668774398442848576692048004926058086137473390173120794178621004357791048655495026582892466579949224190701046340021604824982740511246069650751121191945737648209063143301168760603014879606538440478285335115554130469071705644431909563925024782390274092536348142295933368072080890113155888200697949046183489500952043739418826641320311094530332056247525630705254485713402066580895999663579443386811225805873458804568992987141582281115819208807739793806873056983264068627967767912536427388370101777484967315905869323706631131202528498942068671059816257096277534160524910078860935353207494330647873202421196133203727178370734679344748489123227798679407250770292532959903513244290085416077946690327238091562172186594878409994365474817839409741790825386737850108796632859354231266557373282260878219989560601549854006594616172732844870933294986871452139563939041742205055858298659768771864703026545727861209017316942780166751329564356494101654299263036123812052018990026878403150579073246007874962298625366540670846956023214956064922181502146106684492353686747366569862586775724818857535541365189012872629470772344965706082563981054069147349251905424459127477562672424579808755834878529793610692638723434502924595139698709597215340377290860258491340073587619774106674615455250223277004256869936393176154390374489893812939606788038321579415617025289954201361022215851483961390353535472442447444972018826582272720994496245043697152673325861383607106425686689058509008146709550896046495407276862674484044920520227492463848476336483705382143024112920266357386580558902546058883642474593861343531399776451949994352019947825227376071159050780960806326175929451956343083745978380871336075230020260757682050512645487991051296650806288164547195741764799573654955886788989139006170943805625577829897011398606968266961816330825917219034972001901839651082840425721139773091808258939593256884089698840602372329339059185814040295018737862601150366127785691443850350215702439019366575724468638018563857651539103087011921096256887522301279516643708642688563217960537534164778935303816726878770110223306140269064854439581290442018093239852181436937177202785054584543315116650250431357762666720291968500116496176288338613606374362000761233302462551932660608995802445942939693345716735189203278362765516633059336508162402543439057703823554701521416028301082648090492057274899978840653480494131620519960963387987056077376980073346227681878842026469022286906296003825955968797768639908602064484610312740432309525545512314187618892565212691314238265059556483495448258970367779899661010083898185850252443157965541432744376655830081383976967585323974718550266316579949140880506114440638239012335118644231176796936120507529612090956905421253370034712422678513620438068816611998805075690565947129091818260596148458840352064928546625232536773203447824750316385388105614997282364462957563503681104947207338022600105886731954984845298415102365852951934471979179441660503163333766069780584555968146467948679813953155381774398188980838330160428254757594984360665671390670512670347279415771285233845001946791664886634126643476330912467691626087031656102186420148755682889096851429387132304678201261144064722751267995767957186393165069852793083551849899077839597319947832340785788030963032306076867955694116275541000651209720936344027190217460134486025565246279486250101722938934760730055227522974135361492186948035992831633692754910238147010512533203340772724390270524896046684443873967615682232592277769698422323366809829038459050485819411477169317728285520507257563608347252121829438097232840473628038994483478367865173508661313316555970404823506581005744496090926181456960559102976672577479789551963204603439484756303570989484401230914635932935383848836171673933555031514233791461774495178281722510445076094475964873136794766422640783724131114489943775408818396952205403402506619521012224211729460796304927183588077033548432173069612885687019373680621319092254432799669649575428263177434759935411578038320381021747156598239024817703450782808490540022178418759567471065849632749565491296996345555404777735622063446645601956432672440033658822729177068649974971707806483165203964988025741511739295952473162297076742448699422374639430518819145506332586711565068294496002894259857856999221320676742929642916292516998717410852074233580661413368681457834178132460503637650087100838113166173000637732132797666686710883472083564092958980881961437138969583959300602625066573134213854959539994442554556143752759724633834448868989092271711697206004253862110876621558469539866871403773638401016257900130692469454241754133670310317091795877330304024343888722218641748405417444767051565931805319517490926184122347602923229290807259455590187208705167099958907386418059841473650228482048684154280935457686428575029995392622843471887735757224529176650752831986342408971814192758345893543661850451369235890482978076642550623139149166737840945895958468479322929903090692516023443232855776504328565080286403118878853273628417305926579439659296161709493605976799368869218387807773851944411755110525178271390432482942326117837087800710168019548703217980892225342027182125491305738350370315395536049567264744632947998346349275644925450594162744139000091147963838665402085984225947309836148315120698478945248292487816584960776439299061387909824765261928158100906206010040735454641755492974605507769603902077842228772521348804748946271880228524413821409764157473767848780248931451460032718050802075240656517164075100797535079908288468518784376824269286255690680456266436274670389268277726122176970649706088638899394840524494933186593100005270842127467810758126360670456111642013921549836024694062558873475681205152150758603736557941169948240716278308526274926267036268348559209696799259513831981400693914240213876257911083751420767100154097812731077264046703516302259942002420191437085777954896991296210897061487216980097725804821515953947196951596137141308315960415905504516492174354082621515943924699760868526725227234698236776973849904308918092065364931643793095065943760596281270629433757602148161049187524602203654235672205596183231259058718393219592274927879918730713700058865752222510515953916298256478702494048183003048231018994163366953208436644507982052678709666544409574842145653722820088951097913001128843776214865168064140442461731218535105378982510808279858769326335301630910480032426005727481689564858234706430946932135958237807172930656966060592565650705498136569334233653319260570947986741530266756698049536537554609298095626873140876773687202952363068995176316367515418551377935712198431052890571475421973611115482757417474710634233281218494253857110231664306099822941818090543336586013714597069414340699598779973702334424419813823682806547318857539152832496972837784085180271239123329121109169242666370465978136747310752070617552028859082213186839754246591614141417037361965830952675426613703450709010179261608208849145722357291023678583361122998811495267842469232850179087695450972943429021031002675082962700530397578659882260162792515140426597592342574383239550292693126397319286779266410632697183732621153682960089557900349534850123984732936641801822633520492258884155258562471562936750911267175982776359009294187864255210128449675879134267664622919158665152187790925148902916838866094826804277496796638861898657318678315919746993055976323386728780051395239417715098962120231248618999691697583292582117985832856510097208490141998036152561282337399432635819465957943750736339676321150430938601644750158908277270404721408039927491973336341477220801052660395187496136919841055154163514440852616840231379015385566759416319661440361880342331704016723628548233880644862367038178085177410581048058686201560948919465674228089630469133180579005126019785385723018985191902207682248956565480361722088845260525174791707435899599714902145239856497340521875817449870167707514696379257128106553714027678946591441239141196598316401050160644892760365735442968444962634393482860126100177514212128886916498379636538377108756946829371012593060445453470247779589555479622402377447624396792958449712965808262635731547336379842411863579242822343576301111774491666441596412826622780389378121259971416931492683764801132311938438438100037102587345697229626618791006012542371542812556907876423827695320992608228791973815653614511537382554540877819385541789338026736199538914323731933450059746672111814626046469176348906149408665016745605235064943417555376777955351143746878407030814483463365090868210450810076015427020049564175472347903830007813392392142923406316354670101456065737850612770229201707367367387542280611213147055386534779530244913902099376921085009631139993044392699408772111010050001331728365571844688284676178559055277785804785843185106059103551850178482911778704361135515568041874139249826073456764967604839127136628023000148798085467904999688222361661803858874448621945906595293117545924907940642195045458957810095570558539889642369493472149429974049663147513358521854270689078608076906965843606122784503416810031362878760735413893009147365420471036426191323238818571502322044664900215252598936914692525590145174301472447213665979340803527339469460203602010174603664958430141829313541621004202014895871811401761084388102647986891566444921366788327337068856603721172047314291959892855012156549857060978955207554235073330418975860161984153109325667035518441185456862680233715940583636228680925301595479295499232685786777637011185430393014536605430304101677485588327567138799471167866498746522971208612975508827503759346296829971337660994355485331154163765677130085768882681522164678995779845839069340285338632598023824551688978628243346366774002940078424335972658475702469120099236048909165452917545155474936082756738300856823185592491977143681715599707606177126205956001290874807252731042042291498749006782289958619128714263092658650177542897114912678962010688315308052479976912096794200453007093341298643595502723625657481625497712436518732154656110120921089986360047140458042413225422261847941766513885945769427439907575817844202498190801903873880768751138804472513696448415612580229772873635620342062507635009275746387726240865344038559852422602741191194055661429774800861931703124366228452504076721911745411449375715555704773231780751859543845700707065441021888502196410854306182872300502832617325767081363929518160745467451435726255851225186846680971990057614832683043162242298011924294915958373611288649733561527330731566816756918185402784699100255464804455176377069674571733259161990965773253842909417299769074111212285163593072124246361628408017261930282966233980354164708943528283818567603259164278792692192700279497469217888218423739634966837520400594053392445530477569791537322612200176500921839631279914834252551846600887059994954783682037875857467246834934423596926974200976267883542127111426959036393809227958486686576103767009096403124587613581928423252695682174232994279075133691273397556583671610656627747898429398149363194607340705187471290440295386841096143013875880036397575152440439402015488036904383083928733467543553508617513587767228534247309501575624169354695096355612836796198451879983541502951702518494911666954800257629648244817565688085854442634287897524637566133385049518711403642312027587849936401671093467105272024477482176026015382346632705768215006495629840503995661637017883034998387382824864427186075190456027811056636656543317926409323570456304539001630152487949648431441092196915233275674418040267724630772332701715344012287069560019463359268685044176048702379844031003636876565072512053550856024155897716051788911008581352258559479117691489705154816551973229651466481600602413056770094314532240066041713153126643610989043688760506530077076120474749106140747743154623865572928191661626748761812932439241889814211355839979116259317191422394387277949308933014096771820420261812360614751858717636942600990933300283707148284480793922091702383998939625103026494454603603254963929306233158097488230747752546924891231885898016298236672429616724999163042898575355397335318411197040630246310292820135244404462289000326595361893628311745541400208672674354907719501332600162397863639857250516600284100272519353391146563960278172356155182078248257462483840555224535229576027161882548256773896856678326514581526794954709463837023870625956552473852547179887516150523130629238302599595349526597584642183378249190012647511451986255143477109212363903769563941810140542831359465708056494230349304986050356626072989807943314517635967195136666737194744498053690295698469264925697598690592904075534096106794707586161255612461612704211523294963705702413636976876713660798272367238221540623445340950875995676990213778271639940570588819931168739694695069587415179668351511046142217442958735387665067664582173529611334479996034333549696771112094143013669172332640214570325769948688209905856079965379308591750717786447839488595672250826216665637047433178868933013879463679776663711377116185130947866018895376439526183178341747839643819483585180869187886524502046341472319214757203201613698953953372838231864764494192966528875420036155338026561477719887826953084935701011673948690973489105544959102413349459768770818109799553760492801806483617961060763238422111820015009541956593823891212828994661035184115118859817014942578671742544130834298796129667800690786841804856907610058225728770186910784070550383990604199979012777893122885211488595588106538530466717028056908979483066105709291595452952871466287661051480331394333419790552031456805592917081347690209548780052620442093244647017536530340972101639942926503152384535399520954850957520645010274377645234485012133197019609367623294165615009973545667885531494877703765725364806158795527921883008089539042036402168073871204745045412915649308577865580134362319301726677095980144151024085591915134732528696694511080684035338960127346617637701411852563469599587331027197786310757692179728716421418042137670400490434213854350257886853925440588730960332276077574364806110315626586033345797666534829331892165711588070882801656155439052363317755240940279099007422952983808011624079209980002014800354142367600047532199328832339713519455152643273723154697062121916886185343042037624583068360371433564358381334520409372057673758681891724789834624890736213592652971681911766044693273550864498969510645132559393205835912232279824778622116223882814179457807086654261909208771255599213389767588414370111030440764486901285710469991598803979144457798863513446672660013326601962491422133251296596241183579293671797902202326575374127655302520661658355882017955168394602827018252810711090361233396334820118645860610609620984557239994671318434651857012435055172068054246955958594873608917450894960772198387339915865156968659074038858257608580343585630728195429447472695329197457108520226346188146778592182696049071475527862453092021316316790205846595630515285697437304085033391528753969359912397047019942512518320324002611255857304430194443105700943934577869549392614174344300876727577518940833150860065551912243799389619013291665867078022449735898615564168177858814581205057773247783904617588360744506092800249381212689110813274314407275390055403520539696039536206439066429921631759321930785996953524595144119334242100985290395003751926747603660353314341374490170360045611882275955169697996851138382596566011777226516941020078973655844071788591180874085461355721332315465721525047005979327476193356349014145654464580147155948686346635268226387722024399915985204079266613494076555788556603167422959646586029074110142752040442518396319683095669651622657795261747963875746582683382265677605109129587128994981615834663360175898681341334356106533695979667032737981043835454718945602214644892068737980301412977065067471686755650702793621163030994883054563868596528557834235753318791532444599026475518292622208027315543158592547864202918746521582977552411066580851430059842417713909980558615707191609245869459328581312848176517472731981777448013334177113817750280913386042371089187993200000919188127353080771216369595021347498421687225936222891475788488950475043402894609179056871015207033028043108065951381008915727128509622696166987877680789428382534179601644601880522223385504638667972377179418189456695071248869381754559620392391824918784190500915654523667666016697031908104483523053029872820651235821487604316945904287838491777314356551400780183913289064911326747634139901511106885737047101668930534436763335258907846924304120993784347852631973474331712097060593595475404181193970549733414863265923732216523159756256865528316034010040828433358336000424174346705606291168165467090191430683775565966526045191589660170685839745779683143242700987557672810918842612459596220290506862643929702036965589776140902788346256313944756901334426938481868342645680556334759232592397403970927198132845306649299106127711543772305005261890143234219518545659072662532033336633883241760772045840075296301100400898126077972389171204819009543827937971148468840794464166371609338861254027421996325947215892363895872613347994174210573980437161020256682976299501310802651434258434419492558981581838717720089973825720819764774795883874070121273989994208394102118735770736605459154994956186280855248761641751220084314843295865522174832183778648392593456271874482786031120619183988465238015322285043158840521067764766245567453782311075919481204583263974551547913554476253263398851338496892720555136220349110955676438712534976232242469146402721383629378595328124706215807537036257366421740884272721185382842469896447111514444912943777837071721949772928254389123293644060597057858838817195117622301749842689534772892976748687581533948595511033932152884958136769308136471679341213280771732586960336461559298921362440977574028408510040407133848232810190423165946354394064742894942030935249875539474772402468654230595769812430304008153346216603723209886199738270566367425100273724284412766915205591878042561790695481143177079328327069571826360071730262416031155202961418382627017851645017474795926571774983661508286184680364922549842807910307742715027654195131544025336345730583544878667999643474636380279331157918653520953649507253007711946749798256964190736035725691917263105665524260555494496741565207250984590446255021004000787073885227059500072452166111046357339873602118798914288571715279431921014136057764896580056958205003102052280589674575059117352391357608808054473684445694934434015493168781802464519765611325300900877779624359540390420615419011038052903852208510112111644879675833994094223921777525054023044580820934416794507990609069208041776771084685584671398224396060727278058362684357725468048332543146010874456942553276425903632034548484902133491840922687776675067719189236377036824213761728611127570178660630210145831823728537040151121837274907787462001598601617240101701040438547625336099789442390309216158366271386071798529450933750633368593005070597732276159786235522877675546475070859400430629832946761060825263913285328368377984339482833927753257642536899602331943861651460424846604155682215630591530204781150288729368748387540573089911576753395187199889485783990964233962946437296154814034512614570990136096782789862573709069119977388947869179322996750085941076427164390992274067573968740390802541506580878177619966860831533225888510260747779624138077462106108430106469141700098721733157442324565619691684795516981302738429761847816086975793350372687090224295144502828028741774087984305905473794342165427241316306057135842715897007997500601517329204171254523690033568866334264154469312864167461681601691755850793632776138531690032413892987591120895838609527116959855138540247172347333730040927664029891607835171397757605085763553753948891748604303541268597757147469195755318609139676965196918406301853986777468917497543356999767839129325773885567723545195032717581586175026699267107443259137149982966848044013108449003881912109355775809849241758342879623576747341664935767372509165463616619128770003842039523735058824628246433447314458382765730303918860269787700795743504650734949257465754241802220069749983699497640174186371866513361828597034126767155967837483622827234236303142782095775408352777915194137310735885136105387847111938045074791596288497825967511822052255838062823339775812637882170273825278119820431188783115505474581569221702080167352403257749715139499414560994083906338496282542908123664579047884392772059716403270683146190131674462945818775363949063273523020403872546062047594499930788506811526111114468041910849542396273410500722648252329223633638745235237688315558927707475815237522093438527571610865667767783850448214759033772679378357088343078230671950132610292764065642485134250018178145072745296921423762635432935420448104555727962413539609230686792215901327230137293852316436271884589824260952940815531700869222874598568339360083712055936399162750749766043344188686629596180946905648194975507631821669682530704957666847240881012491348637548599771863001079507771510569503749807564305897752602146589166939845506360620089425224503296026392363702558373837042099909725610871039513578118396803235634070879230673068102520442050045298592843924337239090917878117487334479867993814530832391629846536728103850209869977017694015063431124661151388361862849948837015381635991940225396906987836429929919821525596164490423098408341159305990754819837377434229566838187968322987230884531029230131806662798063461926314300575998635195801664239254623050530178239416099513814839149220738020205727513514074095881292100665254774916591000655080279923257469154662063416088924283229875235397368099411574634276028002487281750020474744267423208993764305675719145393996278044555312828851752952596095005649275934529122281669451141305782994448483144697789601045144352752940783631164381932343515494510799145012857754939402736558332052110164728760957574246753974336607413357571262536258121710093442213618713916780254060461006548041842400336072655251658940864875058599262883846149250879643592229164579148506629041037489884608853840947414180099607053315400295383083739214876098030315083066701686842351500532323455259258104448973557444870380709308003701792850044767047972224142377157565385382490320801304599083220842158852670757516812753059007527483620447862588894700349996220235684546312828703456347841506371579798503586235637994982507300642343668283610083102376641878843330329014904191351484729111609543311330000167165288568693912831616474272135820894203553617958716070939718911027807080602075113555330708934568533944524663528013775794757922101988101257622485930014474883159486197686397018938031657436098249278705497103286074390121566116212519198902541453060961577119011996276786892462972416073157848516412279254152669997692835467528038796486077469562238340589956540174907028323382255651254971111926425960105688443532593291980779061091153397511533383320640517843846696936114193392974676784255499770346478547884524774418346715243408663034027399126895447738012274861052986990431259956889712182616817270199229957946165772142883667461334855849880274327915746313053884990863169086160006834468450862612211032179746779719675206897809702979411963168188143236783387306351377006707000807480467577289872250812109249235284054170279819489903399913270892325142494038106472962684473895858115879008690495405828020584243689527320157022641021102863566652051092439133882249248130058590914824286645316399875480575565388778750338356588364334723916057834091623531703982861648353362453676331148971558161203571211909846078090711658157512543964941949439570893929138955401959485707179945499284827615152763011800509927773778724815297764817838215387026744904282238174310942551413429218662713368103559213958007483849875511516474982267376747725573483009075849963969983866304921733179809462739332012646546186503313505133868081742532206926695026661489622750651569886918442350920317889324923469521580089373032916438438503837590450032646968221356580374392830881106826293449426211610597103622193814984133580424833568837038630618704347225396844859582959747578846409137590633099140338270513850779919706998744351031478018569647942446353513198126960741995559663225284074067450159171599252982555767473655917770535560556576831959716515049012461906531892999895799108384263691782919948648488505860904623040084261408270448797971943452247496168491131195407896792786371063372178107075082234028566128149771330156725737926227814061183843529210076594541677317925984797338013239701653176264897913418686946959740281557305050226271269063224808938791453281590088743413541540942634102557561358875154525084599508911944109040534028015085439530877646913629161751594285514887634101064783005728992468389632305680942112953510747979166819796972974045856665402238804521586853257948601576897608692067976491033686268758777051174038358291469191816394146663143431782876828460518402525762259363488727718695287208105278453701739040622840309156820902208424225167741063828712389332984511004183182499793896682552046259175503157785148114517854578166633657006895013945651873880488251414723920700295428948421391952502030625604018574530942540735368186706663545430613198975433280650570504595390504221061983082613163983924854637733673485143480783789874797908202634076981383096943848586584414870578294221858239871461538081792714623082587930649203741030841262472170438903484020692656930718716188551313596077748738441364132245526581407181016108681503821903208378681961015757960625580926407170680438542178385603694091773418152418504018177508507198696481449856563191193562461590862513638780230160982587917919529260293675348283783274995135196999922505382644962847186447638860143645306857803190325430812001880824479934698291808872482895175921539215513059627389487177716159642498403708257097818453523705251800155651060677327155102739565270258165445166320345040387482988505258193167957710632082295001328953812509428767366925614384714224768383661454596509340913693672792942216571821882821077615223142274906318391072036538600322702132692858489180819327548159514810214255130434525306996824048902275631544612375845107611742473588825735386220700470935859959163182393795321812297805473704122530412351859101635132101952493923880255204789407818116375754292810639767111035311766071114571681982344532483873932462171137790168845741585681608311764759654189422284374010118962705657958821887163365202090879703629088423593378842177533911068786018882135033535105766868857226729505785737377660030431345842051681378980615035304384931553090015408171021197864497373095947154583387519324382669544776237886993962151980430704974475366286419462126199781687566120372309220628850519910505780714687805559711791693393620940960420174107385155389838025724470181110356058212460316046563905960370930863015133799374235171648433766509059871334323255114146921699672766264428280209682156586237521267510754879818191123607233817881090610836149633570141695803061399223210408426445231593354955806502707538464678259792215387128390936905289886016007458364511169326514838199326966545151572895319606117262504763817378021297573148288860383643415614802590123124734847285462302529910631124321201665605632816592528672679418305656605933365472222704011173804213233976936667561009896117702735485082034326193938818726981213774782598172194386210678874132356673792914783667333972017836423007933651461010326152923049687843350909002817700316831477322762973201285958643078860726258288590260437250795345526688800088328433721940221369146621628980265932626148881290573968936004893407498445178071983531132044589234137227966566955384880029342413583365114266845519458901215141716547171334660362715427066874705982979961698724615841889160311880824231484432895816365398869548784126589266080806783036382778934658387071546077419516696064541262902410311609285734399844880412428659855654631349176077887200032360832645801638883713019126545560284193021550113862657482527309129084254984168196059966427448711633097757848762012192908903219378563960590481722222473145978562729315550020789884070767055824773853456563982693607260759990483681145452062009833081778977383498836915400946907141785225534755639865743149739524376164327997105626829216643249796077974550400270926241083196068219459746004480135967897737556423723704533502312630540097874559516024862068095206672240049553122257917646694475142290158137193313534687158674739253033816302610520537648978839499774097505836412577138430174882897167212034977796336482356832954482880377163781450806376257952864297139930139665953414407208914941398550899770777752779539632709233012943248037509407970434193506986746342705711195588841560910626473290365825483662179835352027844154728361017552332212381113219580250641663197637490357750750713879712032709359103193072626496785231302777761526584200127709873520851071175979344836184144272048328941259272993852070473124697615420146961857089712481255114665267820886336386339767192131367601987867681811660523425640216973975234948283885803414197008396804361869961050916942837532688819049455529915483812820414840676500564703192254582851522279933027303711387732390552487556378674298661616645849320803907274391037480951947107838671419245347524468554594004355854772816770817338854940278077036842599054281818703298948840859211829389225706160057068722089037022632410510472862773595251936218807253105473783322397305083160909192575871100558291278370563868404292237915984130456411129067490081319819231863639981401500394901067711396122054221050599133319438155567629941920434824925168178729454510268865742649537406628271918635532199740336892430911385917987636875740645032955702947652584030203354823743071843521026886573053806519444388847085866322650857639785619627763110480412909691457172735995796971525788450773841640612258287102564764581358097310498228469431466254716412509699232943401825675764435064040100849368843279554716126169756980746433943832110212217268847547444622975870709464422239676523135484512897253593654444718392759151544578322286308810174553057065179182336388443034081065103663691443996163204841032333150084009839591665953198392289503178856551852961800659109120780501838161571553906640242534976558136064830604781926838600792024084196301865900565520867106224629610571736287480013403579542090399946265818400555136612490385365197687876555075531487011308664957401330869133900117135267194902140739663462763521174598330992089486197739932294986369236715605939879102776214818223862438162517403505116984091055586203935356567064425294815627685430303894909556561139272601172143171479318325319859732618159836800593503780091950963172048848081989265154407167026783885878808181521347859742188747322698256592051292726351050572617890260924219576765806272185351449370834532558898103759154764424220865816962254117190329855000209271525012197426799917846950562750061781670961417069247370329198427762196421169594539386496830158547923498769066282244555891570853142772498207421662293836357717198306683430443121161088058018702307555955427487499289793758068212749338812806206601095192403877249401986017119671117932443802670371201684410505351907491828376009451241701400392650260271982092759939979004740611439068230627063986276635822719000142947935552145842585670043496686517436754637301599059995359387110120261795121904871292714713885080768850923485241316855927464301306521754495975165525804858470270860560937955868318596949316399077022808807217763482317899352685941360113467028620092322285375741941642579104814450865211978824003100567262345934118112433464588271342143525596989907097752277157426507465436501909474884309110766130067828135773272472349326287909041074376262802749036761121864235648820298026861860461752165161370911597245355618802045787458522464433498238856334624720141887619957550366248517241068913660349711854676260265589926085876261534730058778736984243057398719134741204882533861741016483681053183947321089458492133793766443460010897592785785677881366192654585788562732609077202627364311863987158076052454712095583816029441535857324093804333690774528837564593052526989522804657878051975107768818820364968487029533738933874410078175688534019942028400700461335285977144485563967412740387429546402136940286538548200803547742547442237383116036217931200502964363423219224726182076869569274188727171118826711900789556916447369139763245991201895983310827106994030914121950522364253920499957396973153370211551885767553432588237402819819834919027616760671735544925255928491674647982275594543018428446536631423394185795754260361375009184501983799284577388936178749212577334465735170771324835418713766878602786138060047802428663955711762083222695682201060404573220030852256967537666298322840147245390702854417375377705851618780614372121439319361905249277310060265018875059418354267258445133353392039235312413936269998532440575204532104522518945168105781338759781916789480326664802792293027583791189904107632061857767073157763475443018864890012897882627937080129437861199925389416465201309287421431685038945724512323267816148567745055923875302690343629952414202139028686569713789737695992457479669132107629564419937865034762556227166288264633340841977864892721800341660131869282111506233100611096620129949551675273044389514362679224595466850064244841276142768380523449583344210264491323497511209787255337236768626933323288149000749821419712970345109952195248748537859406680845583009728494633201584099982028849955387170126522316821190591175947870767446961305928339950031761809467666546826450611359155707966857463078716105072706902368327523735431020915110851995423334650571521495653743317488961959245476225169578467452079026264362008050954261405063834426566028225516554035085597632213818091749453908584377211351393628341728248939129172294747394096703154056297375265556392594566274416178559682645361073089595941838132860857623861647634676572454943857737862784972609859327115277319618845654849102484492442007459094573487583246056020912444290980428457273529612158125543807273509910683163662099455071080124253464172146508873850871330940807531199332612899899034865239962273809566971845805886557389415286586653479024495508638784600431347189666195607957547992281323496349280239147078688619888497149026162024796299679866252444138732633208143985334092665282551211359310839596655124155222262507349099241727440375207893701957618629330017496980635681912852131714710391399508129627333511784566725987563063716636070918360293823249815878695378537331427237951959004278754003100580626841675199428864454982424198157902976221778094947226704545405531948498249465447447647295941554126300484236055151041629705130269435126559625011764546720812932364700561279397904166313345427118236726639705810528459842638066953469522902057673834070648942138391243888665780100550186117230820387397069546021131004508613373186252083437514081786655543638513746102103243443730364759594423283756423052065188200996010888486462076158042033496397889731037995894865611935344445894757130857992572747060455567379370389103072609655004284653869204560771301127083759089841267012586294883053759257788815636626201512554624985748298437921764912762250212087506651271943237372032224343589072669837500762862868025991630078451935755189434489847988640367972421418760679536707874499876513959157389147365575019983462175993827142753278544736771827073146606822861500263983195859512196030775197549300713772486889984157271984877381906578585759583430972320459365397167816818503757681041831150333225825189891189540524445174175684833573557760751929777858484947680067544164989369721475203895037703409431815292951906115816637190813418767389883912054409833543758505530046052578408994630608185039929603403537139552031773171970943461235741055739005521529975773389169566606590448974683999610282618307222618024541378290687494174864855043240252183426072255373003129574045269137381136125152494093189171612435796504468248814610495220509699177147444811997444024445751449080260082058880375970260895733723706934676578064145845501628634524999141439479397713469590213341476208670615592760099549720043350138351154413888620003905895528587448267090022804851134104369330460826589431657030310388185030908554600037534308642189870209249586590330471335380975367528187581459432400703888990669636689038154916627420504698598354409100283186361928402434814163900525764681917707397906625151946793420277077072712600886604941808332281187657933228173980529982492252019889390380943833212234862161692961835496861156413038172894160238024535310100262458818658382282638688291688081849338801962292026049032608252211916334189297608421828183628693983218355259221870660604193674602034979783979028998615815403755470981907808288065804575925378086544807958388040702032650968894513627371390407817336295428566563162351987663113963715864786788333907609494921658403370226550641578528228733121899031202790288944218087904301221581744793405849011691888843937931360021651937394707615808235473865253911228126055750049027255696962441415844071832591295915867078599251013397550298477253987007693548402320474053856845321658457955550579576741052514924050643550900783811820412320965231656188468917362630896704348737769946782075557661697907534640752642036696719407875857066527913555269098217412696394029942772244138604534351309674157018209198626276627056529594927416178614363962711660293147024394693041113759853026496058344464735192090204348399923244244667971856934839042721414084848577553243112785262167954364363901663503324777678084507067454093938143654915826212782542621720714565225118231286292955862444486465707649156649421212423306893963688098021174266067018852946305815264450480509595725566938600330035162336616755504134745183668670605017273651316034624440390625732501291257244665888057535454351965037786210759349270942577093712260698828775768837649438915147019365712280623744698401964419163993618087581265484473391608907245343836878695278909121572511686833793581844586260452149588608590225267943935027181917454048007688197073662443902976726540689640683709397321533387836751615470956182871152668619457751439916713095434363308649006939911551828275658045233391134525464900201606356221979745134446656436491703416150720255931387524762388570600446922532336743389034850828066081328571869370444316175752456944372235051921837833388676852308800292236108481446861453439933699312838504164451998493872102179095772687587909362758642958530643418139684431937422361863106893570561631590116430802363117042719585194114275546314665115463830694875550010926272703651817868267547907131814262948779642987440768218250535522753940209800231706709423649330204036962223437926018508975905305100878586797466950228380131755744771956601576532451261883099131829911759983756674228700826719615666804397418474373267715313133794000775774359414586237267022227217172958740043129460834384454845121455804482156801277035458702008720074829528488309624972941978676138057089754917084255150492097253329304572676864479771255841549423349930523205657377904057661097069437404712520177816588916324771166823972920161388783771076606254986787012905519441417083359918513196176018460129466910297273351042693825727795571978598681591074873924114278928402147614994730424979559461924360676152532771117404172070667417353387379236230164842762494968775510840742617644971274056479951615458107107187692876233466719242012442644378312601138672700430407602826574185412843727891299944870292338363142066675812914895552296095674461133901305174991599807103293662275198979442399650546043060344514967856316483547948057842835429367016569234443555499185848403090387613633217516650490912354373128431356843753006516898041589672290622883826055040037515344795074731819785717336089322188571683291227386294907940114837793845602887835913857923576096498784605624500368393893480311546715542466376389095426254298191891073767384806964744046268931986724790993873624473864215707688571329694157096233582977363453472674808725928430890352917326038789779717180264040821945210152964884415925947977023295881382365643088685037641151450499456613595972220684968324796236500715605078490733774746026339389841506170166799682130714611869452557912243419561357504108442264122284683680168520070656093829500866201848392712609186998861457397350680790227563290850581978583501184220264681337137429481576091611727879841347537058518850792124205042951851010351694551729256354120362621180138430796582768285919847257396640852059677731864993317294056525369869511400442536878413117038942283144865028877754827480400124202570795808750056003961308921264985187932602414486448383161492239963090106020458317482150925234046276398067365876123156159136949065660532563918580646810539073992746834781397810654308898158903655897170051880992254448992728523137028885759565662136025075815307021297134146157805772392455425669979193289151465689990223005455665910582216161284055129192439240273207516154896752724494115840979880063065767732102392070584716741658315414346790265350264803078333025576566631701463761381888873756542427202859748201173473814234021746177094734462246336489237388596129666415481125406230178987321043826126740135125470136236203619859597463865057995031278190335003675892307644984217693477805936296287622107229351740172862750191646390931349347045087010662551340158152217003380862718804583738743868350646930460618843167046028724720109552097177775735424114663341707572134403298963374280564396240551005651303002354845388516646014843616282302889439191538631651413448693056024212696555519934606717080606969528932821528599276506287982070415131780799292542344349957689872853149355643102144153641690505858364299745165257242110283974112473218634403433186961254267309512820410199702649178006957381022665719542633527531685027840281600472618267364550118466319657334435996795931531880423649008216263140709327094096509441742057559623471328608910040673009206303274730430679478999704417512328284551546551188879707698187769334119869332635147169830765388861982297848185792102389654129198818943885682196578536494085167287157994671206634421038218954495904526177114707167044721516409137327881941088828089831190826906022063075794634346048328825413916399639155617405403989223899404230823838541487602638824012206032882511445466252471455698063538871805866347161008522392842494272157842949272331883972510177128448780644593747415604882208779951893679341365477745672484630834856458313964339258171972633460030493715227450118987932785525893578977233971446865572943893890623358398614446913635482356219457270044814431377331225816408866984859969220571486403064192091877333854938199829286664460847606466049176586112701496190849813486569929806991575312549228752921455536086257115965414803966319493151689713736945034756779717403901659536460491117965504683626519161107336906789020455221743394142067400058972564517158354774125722025743969674732720468401566467302329026465509811337219019610071695979175675854485900376280391458566132438068144781665866181343369851302309703687100563843485961324197182816736084032811111789631433310756677116823280931469232469695524833799803834644688538806511582202106365683903584330677450871453015862478169236892730763844508474038391010238598001947990727108953982798842466553578032256904231821014207762280741314869746626697258165643630629884421217168879408729871079598229104454473115036708452295390635669033412788484011653499755432276027276589063995001675895628861622129705004988430344406226686835532736740022294875241842007262481533889963674627299988265912905307288058095528104267000304961527859096101064462840536607549676139283056384661887027255092848100896999568159750337019212207316172979556193559020582399425375493792939892995061873869570967673086827640538925817020178625989237697365317225786161390038024725860544204557660959329182000881395693403311748670001669317582099151233278449624587453795435421959708597180044283947608660341190249499399529939681881417469203301317003357924094579050461045141808737190524717045408074339770815904091159380715607597010576509966167593099379864902811591913216881153114841390017461893654482500285284549598198914800899601920424187826474697745513756971679547384999229078312571173776322012144014570049429726708362823525975697376831842494695767704129647521323905697440185883549150243183731919070829872954976386370511757906711156198077234368212338306615139249361045910885241746106312494358052632248719713609671691166964272872318715069017307298563444447893620819976454236938719388671288342128631318341508975827146237355310679686310426443070093644658453887855656612192067817419526856874402505809455580344074553683255077199205839142154381268040855207039840091131354991952353010306164393755672852147330670290029534835633640531686399765559741511033022231949942230576482391827409999153866687611885228015031594710128935706699234523078675435255276561499489548930711216929299246388206825560359290893876732826935122704344530421013595693876108171946603474082043332761188544699311035535552244830257332275921726250037726577217739012179618384562593055336703769086701012547756995510239145024232827376578485578613258157808774299096079438863325552960971191372456387715328848094172424500545139101809361368400180130731456242871510191644663286816467763561548364916019698228132982542565225266495364869738719421657475672605530284646547880552971924695563258281344848510161815825510355946414445878006008996458821242753594108986000690839522116782562832883767587809893586577559844163557845467157632244134587325911681510850487324649021576975514063229597669779820654613043141520637536590068787391821524493114665958840542802998278067757767044043670644583974043483939398631726455273483550760338136139550791323016546103459120653328991292275238631897728251908908800031445813674068819971941013153680154977812247856735729447074537182959955266504363614651855412677726340528380418856611031988237804232866126928291695872669466346680805870273973267826437948225427190037573477602917470389542172742026874547037441299946560767382388502577761985416462341441742739774754105301822914292774164544904331561672363212399129322294681241510692102963133672852036112377580412528849069275895136954559045895485683906176578925643947115363915343439518121340139713625934584948389150754274240319271927920569509261619224928944884537953504418587016616848950257320831485153569075076123362903917406510649160433111608332053183946332572177998037363303765399527313050501517781788093229505098027491923583139850164654872591020774777369652622918943087967809124590645481964966116318810973091063539607911483011459237854740566696266236277268276499293340878414893749449302673787725218508863078468991690566025265983760169473705799843883536943896381226983350663798729594187345364433528884292239597790534480177593215387853709719066844849947576731512777461501471297350912263131245761886225104413985155055568509205714558541166848171727203442737178162304018745245005401944400246116971181423562642024356741560850961641120154552007709911396770041865043039415762522223256233915063653330443481660377701112473423270601849392514453453708886598906983539742244292168798008579684685218926382291633736118618950914633518634835022402239925133062409838916188597863568328106479581765663391658469274439007121288449920906598496913716546360519393972253418911565074015330974147971534560748747311962086274360779883208870034017031456234369140408565434158826552908144069600865015040960914289964735069007615160621916507361664016855712284077233718408426984404495596646827346928412174814079972832184347598434601006457547050534600811912297558915971829924091465601601399545851098364420438127964185743773951377787730975868908239803889006536501327737763441294975548906290360830114685379919848971437274358678856375428933167585229752336736431968462833689124461463710208781445172695769563076682181357469144476692488457954799080455100947548162902416707144941038837573720174166790001061677031652878049256476585372222461610244427755190048814035585934348374811589535472612792157940687183126359746023528344246004806730216414939946173931254927425525907882860629875120638763556663663176994018596119868396446936860421230486011938590772145384515935903950362282331834224377057360137231270070812689480605755417024348233454294006644261392188636639257859946390541409251552634630312074679335983924075418207397646432202188935294062738802428167512718575565109549288872176264137286915620475394771105180554968872758728245872495959646099188530515638392188913010454853599119504032429647145550926082518215623704513470358942647582741219000032107179480397383363287832516291022792848185307906771926761243740299074698334198281409637637272021513528345107081199699423653879373508766371763362727411397285699769026159507109344035855470864819651464088833001278750160288946665284569278116307546611936760461447167512519969190058022051496346596691134879486195533268083805329738345500300943102943900686016586615651085385048444710526227578485609610740984871348157874965684444966015777494664604957954946547527103996273938769543697212254996413753799920468259935821567496650197005036487289680299271045057543119152419075861216487204441729605871200147477416431604732578718057296063104837370378048510425734474451109906175409731575518578919371732402540192660233220835559047089655063917172104028895523132775037443731716066492656229534984166386539221142852306069010683772652107555977525028758659293315113470414486316752496984183248790442737320454591458214679988023104289838275784891195205558793002904451792358745848102140208604185542916593353769481583636735293720023930929182661367146840175263497941113059079579564180841801119002221516804833895497438061864720024019197851054335929461012777011196824396327743405694702615706597351531466652132842645403503654812706265330233097780314691331749850213048033807408392415895409703578779234109226589980011467152376117392050429595349339904900574155571078750265307232190088412692629552694621311831435145581698412444730672413625723334327805593418426821714389560427290311701991035373473216605932000627686326487830574304045078499545371821701238116963521832839841372937886799596510488510871391897562871338766710608102971662388979983966526944062144056577617276568939640924802841637327457730916591107476121412847459954392062111388188323329107410779979048708695704153611092291140682350811068155198276497730516699284290741361018780792438406167221740160855209240222340202699405330116758111660384853833932101685889300926489615143571964144968843465310657179757949033512873843084092550565614368147790008971457696145070076805297894694701881519839981770701550681303719692962571712338497385616547627800646992251935457142812189595512462250511306133892239475913695280969331341405645198034104964200656971265269756059268132416714730606948594093803914855784465516539638631188427475212637502620299647822474626676520810609503429989888032174237385077548790729153351780673766858756434462796516721012745689626472674230976557107930972654850900299850069980024697335962467106658584809951398804732040167635787233097440433460383451927992438734835988977910827454399928772084335647442897381011556619310930548214692114884862793920105191140690390882868002177655384704593522976731289488114460410462307355193217552570474774452185219458260247974499245209001243330974005695549400497361130146629620197071500732162082543120087503755277385456807788598347120248279609880926356024275869506901156980595623257315130329199928623800893483609138551823977466111819767204988518721080418704808339700150849319507028073988287064862717341321701553838387958551956900276682110081088198015517446115530777924579690803856637125792155231058447153067220095845541539659134864408401695372908768736374497804537924484347104598534275143063868299571716411781211160109009510764152045829521084854257644287445245505135382825836167523330186881071479316800019408024658295934184054093004484739526829931646453839019904618633889049082763458487803455831697307461989977293656635058397384673976939529732859455191904892669098282433668684274222319287672756422741213458389263875710477808357940051947854943240725379473907324878527385848768801529306137163734009751351547590974771871988513628053809628645720589084856088175659114305478144013477082219975200490904214758219937230946606621376411074314095827328271938943754868610085144175937083385391679126977015906090637068575412286585842333125100937132677881889649429441947843823707177840905664180482236783709067312350408568542180900281765335118026878121226767315311567942344941726072922315045740282684530671789018381835883540415401747718677913576712108972927145998072407478368511920800522095969926578991312317918263675554482083750468115060436814955205332250236309501557258829777151472741673053463310288289103357494857037727135123633695694247732865235965010647970830268760726631474148583141841273346593886862846756981534973771619515281338592541738192653746425068571693427185459592453142901472091064592469331093066696132313274149870352598126358502795548175820770648978218937307514389384932337326745264186981745399605274342433883403279950279398342173871640814782889456815586908493878667925240205271611538649616814608034333038570724537553791782899482871672481132211426678902366331282005931196875940586242505479278076727266136669754430107646076682141232626429839062062590382986772731121748793946735230775108940557880322318849027054501287996281595605409974279691214813454842498778836213716414898182359511834288795463937182786552580314464791171021511567561423114972659061568214428932572086080323261972667063429190682185482081441077079398533864539127361602160476938098102274303107145196484427395094435041975875688593995322486279022697451014384542749735175709635571962492360286904010928659121043342693368862598515498984639808278177781859728808215444482420419473416387351700790169161706963188198093102144187452612002036646027126894456952990118258462252407978091783124284670013268936630347198427800819182350165477269269262339258050283099711435586803579904795490936729296652303011790591262056912074581910728781802839782442634121645601872360546907034094052845952388067710907232610551152382943715802700766981251314699376953983585099678485266419706074984112008802389745420731413310667205563395781344598379805985209989030569380055535948431304671431546919056516729546975926394556109367400825311436229681343096612774789248912369845099015363285607059433340210039014539510093365003460147559011327522820418035601366367062220000385627069893248410595348974072405859625590678857694332672199737201028662267831706524656378421924503623160867248762517998910706012958950609745603940509000048792145340486561500194830172773489850737484166823902700043014812941624299646742540607264445698924073731487921882658855248152242515839773404549010961320576906482447701093418261903052057321840575389553535201441994477791929256640632179410573751942025875508816580657259519695420066785706599163763284862677305708775913087413575807088042973945534527169130078649272692973728301920863079443031045922464228800914632685706229911609585448637258804573647077576111419633238013137131083162257386728916416490729022381178906875577882054219900574257416051504304315561953655329645491181676862027230914289805975885561908015328207934544508903535271236396264010038467710646801748443134983033662306838655655864947464731045996893963385028452465419632158063595456188766596342005815819343310919579526281617902220404074370065487451918354554241913145020760684803752335075887244705091368671443409627134116048861556331531691003528665069592645247952260862792847176994614571850686522287716023425183350782192067184812584804884030138928805992864320363391111632311600485265486889433480395272298504151158106507445829659820695685556215991724823873422135932554056112644761700533214676503478832255894304812068907125929956334282053427422388360383920881798206737436283472846787847627989201188877223705323713406400752537521278205229142216076021710930623676705253485373694130595764153537246089345194256953381883522383614820374545573193205411603360508276642297685799361788457688854649234591640320262307800025188240673894760611879113291337114603205498841493166214901830732858886648482327556464944788546265279983005853075075239129061163625260059305162463979694662340589292101359285241772239772047723645703238729854954069320353584078292931117060930548994544544085052816002827524256812327456569328649794946721838493691331173938494586989148184608534855978411703960990370341383922212768963067611335941098771623210888472082682712377853893747030324951951369098215307604692737253229365620660547946587697088782990492002760192709513209324099506015081761601309748786126378166215135271421204198617198118756449281719050386942776324752251982878456635683363232153642925581929223677110588243931854126827254262513837795350677216680839814464495051939945525995156433107081194989839302092295730773871948329528656807853634877913935331635246403410057001943127277235885493003404434854217949593959281759914649019635254099976163418981871431048327661965816788201256094583694956676005371179841185493435817136608783464245122988542718718232003068899584927617386942463866613541862388198742252243854240502308782826071018686730053744434894330840214335656669624569703606957222418321807496975002100322598068955421437480852858192031549645163873566356435165897140933175545627523922678797338155433736248795633631714305061221160196141150910009978300997136819579897700201827354753826261418066279694535518384388244135069711562509221653834256499662379446098820813089591500718217119876081179740507221274783976010096509517835472767819003313676292970713108099157557410492668770203568220438401802394904744548404421632995407911628890132034667540460548860306086126623047602569899200628680899431691090652444510519567661937043154828803958362265872315029119819560296360810134294288696503571517574856546289243846561730645731183796976981516598977870519478817630578931762411912501630352077415913757345696351386622610187716649403514522435880271394526064128211431664550847901009845030305136644414404530278378315166379838487058816946522676043568920103116883884384695779790804201776568016612988072407818433555715401668530708974521792145659866288622574542809906967867578735755028011659245869872010342507572826238916223979625914887670072687174348403630364764159203794601238624508968874362086822746150005868791705679176268678221062496658445411404188325837075117715688679084917829713892973040795573436060254076061489395575326939665315666473397715289060327010251213770815937879988560753595441356891032829207879499556789341592066546257036197456825155231732198938187438002828775365040925613415079993261139759794518450160491448879181450750376016204098229008596214374284478833535766056468248652659152540743397419159781821767586645954183464133275239562992949437671196492222428339967485280478437345252575256029113558619897767743620501096276112776256623126546809292918874464403169438691768975402194936498983438591865414752954441854172889000371103941530040012353761224835653352154855659275693957517643132347252855918105704314488941769998398569998834684080439419203368658217106365511660573772773147566493004753235081671806899938987185412446136091100331362034866049143688743462387582242578535809961563008289652932749163674875285554698508296073423228851277667963340745950504321719271254741210866174072579631849726841467715312085001160738829116893229923003473765418801308327958696362272510479461827605217366307057858114129108631365176418080599685473309201172764919040222188554585893404698515734119956586715455062340305435667589788913369233803388262543539154345827612142714937447965154617252655196764417252643185989827863649263025228898195661785549277215945040085248077079296368606127818800828930687825809173316996413912739526215932960769364680649325190855900611671030688117720172866366015663033389907372406950590047067762362011254537352604514846392008911096017100081376731447129240936923817200798850541705967503954361800292414504391799160911680077769203936620170926775406665973753605273248733482357156327467044738453473975011799965886580144623862420917124165851213459746598075360984523154635453785789735916188759886512991041909403329521929052392082797083666832446616053114359465051419991594543772612563072540516459807201954320930140388145418234892880143372921363689450972507536802351518716119590885521260236101762019969004582701802339530117057060310610328774890208062330232364018619951233130813946954291034596091973749654976749818483021675169275647610666233393831359039405992828726870536982713488751214739841335509713753337737255132500664517002321812768904890477687128893977739746404066764207293142839149697739607558157076494037958850055765508574701644236560128525476958855278032733984181711238772081065380640368151235311246552846921281194451830511502142845899836217362063310472518822872521021496861596683583348209442204190207071289460110509742798912002234829700522987786105629459937298325992134003551201465198770865989135449104471494447700348392495404500336301790995718720048140853679233577505603414538840459700660190882731884927094553188263419531004147815964611160867231737117769675852424603386405972184819980188530159655277695324423775020592419224800173113517430006526829661117831522000215580173312883992674809516322391929637825898788708125998186778026772193520481771007037256859209906844293084633696606757212817855708839392991697064016539908408676690932132801003074398524544988849382651618305445429420128135866587995053846337910773971519455146074191720623079415251633863874552562856786404318731026770788055147284596792788134643211061166635894404862285994414838628732628623063888295535253264170296697629527161586884607882268056700519179607517598623455494829037434285538691882931080970396677745450342602068425778990957330621511946577886853707248302483251107471440124906337174073155384620997602352766631428106128965540947493894972068058888246496752105782651486460673528921792342422792209463959934485089567669248287211025332485596089338920887630581700536965838671458214735768461966060287296351461089151384689109412738856991401509465151088648631720097358005202438908191898289163522816306564991941531562721264694006613003312843401788709466324139836190732358538152130771916881825610933107784678611499599686744315579045456278019884979684672423042295806231897465802772040564020349136905544751495111396604934352531465135184472251124240512686253337375019331693348500261540637503970420612343484822442346949498625630309651861727077681640681610593803249770611211571254749256444819664727776236500687403965047285783038128038475720713769556743718781001461095321528812701218335314899444170969875288581698275473189212038843936994940319531996119234292282909683544628471619313001620574843795362821427284529733636062073354716656020236425902386670169477058251048941133403304317623900008079933651345984696603078555164237678413574921429800321407231587635785702563265203404192062947070687292569816004786220120325431611305735831495699291121128680527293133334187009355275866929164205774667134454030041851850739602725719327841153718369282675068092958545939941552291644939042082734810318098667710495023916226732515737184294286399604243629056850720182631509536783621636284159716806588188086227494787026274128403235078499423545694160091772506719204808458171777900812441412256924254787567487738629071068804068548143830725753089145588885799050316538616199889803600222591508032211312798793199002241839775280667685428822034033318758052741780639434703263368166534066332819540321910537047403569010273398061545084932683540915540633567462452239185702448446598682731339246176296117123920069340903263824613495987418128158557652109181401809244422544731087710947259166811573201096672014366276791361680814037062794491042996710389459781606673421648836785523288784965878457458902918376710954630722904041213524898990011695659751314027303325971815012567621531690659718574593048442412216784841604414679973856987633123935354576081627453419428256179752655844260739921707401392350290337841756584336949600748147455727923524404981219461803171809119477439348104212115859894964988353967745949382663407648721938865096332061687355951202875886093505253797679554601891987113319537710673722433999817699995812762213756486026724671813410129409261784695960729978329094479955354261926118688165239390720010575314993110942072233110851837331764827134330566805797803550589139779939675673777386293089623455286753323138245109096753971263567293909975668701033181358407132965165717981984883581534168491230724136901975166795111821640218969952363694706551598241077969523662794407236654790718918376061305696134057758094679862257930899173886700569529278823244383270797567987629060633759118119127608556658600790055660375266983049004177582351122637510312864880476049610143620349598374698690544560491123819329312457403058113065119026337641551298172461900348243918146535632724585259287689626504440785607557491900739752168244543493154549627913527034631546193983857429563923913144485627908127693276806787625350292588958882977167397888401594452449508739197949439351483620690875301480355859945368242627389436327272840276601967330803122467942195205576999757789788547304410360907768483065177178806325983237567101079347064265211610351479217558173083588654659345919293799469373027800102715737217980014603571934263860020805757348348355286410493450295733092372687283259874593273037116612862166729566059931359873493374849806584521027827964093107767755029312101120015353278491450241932443645663202162686086978429818417974916752784988265508538173451322535203957211941352154596923080955648654167218312330717096844948827071966798139567160510592781727781148936939766307959824004944219096004586439610119944916621312278637437290174048114336937441517744631925764280503794637694748428513423356397551840214057269825477082494419435884895422361007713526104447132404336504031786217530529542847595538321199448805853625617613809414842331259442695479570470394321067907635549680059998890540510638037247890414271014141699343456423918009561032296656551363777216629156194084291159424691270999523967787411737815075427353394902038933733011675261139412432683458963791868082026640720252190706303694719386123645012035181280657648190969308886930560082148903679669103569183452883951624125506369405608192205004613717671336446735478490152681900343346420133335688802015308007716645641264218098744571884362774556064770409142017395224250558545170223877531672448447565208572072630617694480305208976650261424766603971561526135253650322972201598648881887147292326734369671815360063226062437237356439953148828819614100528511768588119614806416312329559002978751476675564637726944142662894143400229499132347780823555496720762221408664970529758523848453661908172350993701333191684232281209821055027385242202879734583861658476985011527951509798292843812311425198497570775090012283530872204388275734787584144649734116762794925240795832424635013668176966389481207129857492594574684614348328059859344126182545174713647989095306430956524836402030166682376150814820164749819230377837688365388150304015540330200436940587852310732922189740391244157588466850365886546375171971422127328787589758717804861849765373292954488617186147587900286030767513555874620006763009812571904306815061953079987020991686792537812201529061117555188298498594602710528834550308142696440060033132372066372347179933269373970760899795855018279434571759623055417974322086361398963001079090658631257642440761958887434245953293757120604200872159591306656803298792982341158062955297321512115570713062033958962611872679960355420211868777263331223196676862711557477974697524579915409196599807914201504640353217840324915751041995645759676028475678251762480040059064560235263386430793180853075818769897373513444495014039727208801456729407160739133178845754991940177223456007533335505025017474117728248300439599148886024393596932934263507636354193679087417010858642724168585390856014545987376238121831926165427017642008672279675271828789909797981381458742331848126020460304583562324875888936492936224208291815810427301512487907836377508391887702941581526443092877356897874898796651119943184215152780291051231974374123143588392704122561604809353073372625752785671098685113306390242525872359431042170072940515438205303394084315797822866505885777520853381964948780568987978475348698198178190705066842916659035398356508652890227300012672132535641004843109633405088787721679531905526981821185557663890232100947511790868497347514994421494722524896069463311159246839829467697262493858971064204162914095107073372838173407607589299998546856368629636888252072115887140840572884652404924989229327635458536181978143630478968159400003846506871541997744044884986649868880052728995533897565941815342552958597118484886232104870628138582434149937818660248058226060095758597938719763165684310550976887655477002044316971572039771827637302828128002612499582563831401704549758520084629445574355056960592893341544155328130020998459131720805683097890640927159423218786257200017169661013247599860791141559093192084809768612315242290926357804561911395249244548459574124317042787639906264782475581479628837459742902688877244219194900261242263575071088959764256894748680678447710433260234513234721314506218708769557449919229457046426352573773656917002321327650453240466990611869493435445785808831323311279581157890138701981615998606857270953979159519034509431186218247589763134393399057258828997015798425486202034748490929461072292783432544663846479690063252510336282208613257740068976742337598384625548044402704107114805630985065075922207750684406119307915190806644396094865748987384716395904634369009560677612984689840496294060239829301070042857965813530572441566945391470452491941212742616794577358403250640975283372783420261746655779358977343354042745876361008221578256186952263171207792018218446060203066902776864870909731802556701166607300898540629450099624033991021487343562124593760250031161619342593221075341356443654080088780340101631096937082914731127538958214513533255580199956101778433836244719639408902157538619874469730564322809880990046274442271338968227411917817988255165189179118161822230166360594756956431547851134562329180803882605482122689755750599107475661577260950128252046652933890604894197847261112749773948770294588867286719506714043633075148934879569043912322273489464333582460781851745401986833664437858963455476578266615804475645182423717791979749441176960593253819567874340130006746108681549781817085142475623104326535859111541930475567412107864186021600780495936781198564728690789458858513675481745157019402308913477261083156149854968691464667815338697097524154285428592665413941744023612901148960978586235202238636766023454737440249886409593701892829110604545328075694986987236006004842082622846614707869601900448296788809284214844483199345945785822869687630372493572986540617080370441062925384102726126382622589716128546649080979129635041406958596800706998179876670975449098113957588197972095219106556313679842104587801895920580475073167188363455485349045319339039386460956182624675471711245629745444087732545355977178557046357999197774749504648827280481693483335740855908592825579235059804237826582070750807136194093994062384612669383780388829321797924743577588751402827329620354505210018014915138014183903526349051178075329706346308830236076221541686627699892023396996823103193797889197800567353072969824058459032564123846823839021953152653596445155329809703050761849503815292863786237250252905222490196226210498660370786242185099464777920793626824054770416504437718035327335153948159176280863627663790589539954840241339458160097704935252670092990464080173175473833548838767074308990615619629364431409666982777658518902141107384904146484259013154640863978171658705083418735344609916046062738903346862005515227769546918029690069751814673983869468297255083720137780421798029692565675407176840008845508878951797189532453932406548251694719208297875255101676364659152605952419142295205183666039537643778324320233707999961290687292448659141573302580821822829580271306822368745946519592388157684492507226098675997137284286365100760531293956692899968106565851152740211791807283239388158233962418973423985051449956920874267372671056554380046540425049841140565414139425674906414586723426599547640738808609361338628493982271369600501024777688910330734249409820276227089458712199474586217195315284889465330334692794412409903470201007590253002812788715279066380977275291983382414281028868108743782358463675228159399197710360124475617834809956673696118503123281202419420061392806473671263017631135334720848530532769823953247553468218878741111636267299426050859492717785224215374470022612364199096906335969475543326946295252734713769703793580780976872196015495488000817603671303672284615772913768767717324145649419133189461061469648453988168034828474675573144419548484075920346697752335225712186984488166782257394232323446790286649940608816522806662890344342514235809891888738591927385685079351918849476803445294696610507075155267365214231941346533443537927068960726133517863320696709870392008524010894685433431987003088098980105197921423116207107189678346406911128017385171004206182620025985414264451276649904314647287129465154597697871084976267021364873881312519200029753668310676352738236392789364381401549882734737126726056052922517846392273835761381641413859835850805850640787264621931853871872477348909129686847088485749516277511755385560873133397661299409529301223541926542663841761589991359079811135242711244049277141381281047668733896085048075942410068327023162483667316088316626020374300695347520614942792880025252969181782221667295839396816437831370814357485216916434904818784641068916846633607360961876412468074870993627450237065550984795815446987630755214285793832842327958608825695935494342765318311467089500047690567290751311124243054572521870649402515073549715438200672029504359831362872057035419867290609831158465832928136376840290048225849136872777588249552540142424368629440663839008020996877542766779741278343647690202009772070203444146747644333291823769074874303395380272160377889647201716200260336365252406274090367069823515955857797696097700144559755763559972093508812889066306266417719471839115981557899299344782911249401883446597934564509665767550586340146429855615440367229199316779418180568093476674954606351218802807141904083982857330260373217844975645283953361168155177211619838580273982959008471080823284320042249488131957634754752546469699180004858944362787165741358801221745670913564648643722320933290273219424623655046890930869259209386878742110854540841384186301466048626492547476651314690768933913885673335040335516703297907934475971933823223648545975733239510841842901077018151270176201832734652064322017742199637924879760054593225350119276409206449112708000692265020398847981840761133246263151656412765176384306612272927875062064115806680225221007431231745930297837827242010788392877921787203728407391198376142739168036812066733270664105306431581809863744735075534478893841478450568621845045280905467580826736562579051440844177722347282222181741272943373380908078585062979458342355224130902564935466802649433475794743309512782248264889331997737362123935457081423532694608895553276647717769600860182715806118777534605086834885052348282919334203620218352972062215858477298664969439507228532379005213445483683170640550500685838225943933881258702312427448748726341119345979951566188039934272693610684299432415834631802929185975494748770886414988596292280857931214851181787458801304327081437784432253385444631150113056487007622071407183921216361872858770186868683665223938109822945011908836706281112642326183901606494641715699151996193017722773170388876386098799781471390981167111291669127741394414765270042382779313120249418173680172639813750989926840416244562835174998848503439621272058868160270791703487092176671751328771938107915557127889767980655847179195029830877922644659752876190988863626090866535672534467342448155498855719310346829049733802367606385294610692646482269648301509132107261260189499898703959852583013727462209194982448987104889683597146617372282675292208312734470345772958320604181888552819123581939075155858216440098497088623668361330294233691306306306104134080747502350782938340230804952390613347099123418782626167375464567253542398854610351472271312628846989653726690373393657503273288453676350672596316887638103328761454686850498183930852811140622064400687017267276013337543795439585759019985778688485014706361244732931127436974919537044667143082504071448785607326518669711437608438580290903272332714951272023593784096695940138265825923467564812290889685400208086484896367512549712035846718406883708788455972832328862374653917521427603513772776765378863044363282164275812726187537161510898833412536001779305198827423257450943257993929270365494000083941268110625883678044306331517310091505362305878903032932604087257933762327853012913069325802517696261307623653645197472642848647924008366909110312507765769455472208218293138628317286516804322772527988275235551418232609198970765879895655250829751552035772999913033449040996500708127507232740413817433057437681685628241518462972665888441372333288525785986246740620365280201853865049037498356452488500028612431402476344322075743647602142733911359017636102086063481740131293599598188901876719672060353423069885266532254007633337153171201572009245536743668460614569189096547953076165134799555378242768903534427898666593827997260851647565896232161793481649830986905843744168481007901605856492797983511665805008206043689157412083248887997922460969906906526975471656718122998211728815507381821567305410355592215803502125534111642300959945425085894618433334541561885171762103188689723473334692507326349726982334230076516182695738503132112529161457906271695877252387724281399003426432699276500831634138330499551214012020400080343611324941086343792172403201857010699709816706751561275441542844682682035111711320645483895886789130689809053340162253196116488925984340562226111043288573576285194341965644730510294629579067863134629637604927065150904379119844652702975438334116871567432384179149264811010222850025083947911405636812899888089464231793143927305442826789202281015777181965975441914959429122458087561189712023813613525546430632505817308575831193242698842291818163431067978615600852873093647256969310573707577653936711132168090577408909691839960962417194199086983887665565560871981389221999019079264441570361771094622168517422393039883758839629434320184014814649248839780056782056512232965110048075924466305593000880439512775399298021423022028619930674158570315797823724372344509553225733738525196531328990387208893298839688775894653517517937348854925700120207574307310555281329695631806867694438860699639914856506367083489067392469035101973162925764229509932435363213718983792581904760900350627582975112923484623450832100390436936471329994442977732794203433452981633269320030510078024084736417972774530829415582414070315407346643158642260442106300161993785920176801633394036175315906417220447489092493122260413786208659071750171473487817153503185217237805741720158551653962160545905905737755174927617155911175592770156904497729596026662103655980581399233999170412322112109542269920123101244097758080812203229243167992051754862359736145794318811843182577245556135655361471245714190508877202710721772149172442908959449699203091783101691871928958525865921827963282992143829246776209999135506086462088466906101641535203463227405837981777343640741630435861076476175277035291720123757874695543373896589908775460224457481052270082554295877224085449691201282192699144698090908753827652648069322938170884851815202864661188666786819415388285210946655138480399404095710449322579554789693434215645141678827743557748031430135906009384461597176984649414545646673752913559134122366092490760729341786252580851005085133029651478745767273804855179892823239642000788828432278048681970084354255355156395209029105524376370093629939325980110939168857856998916709708309088921283213123255200407631606367285559211609742046419850466279510024158854944572530376861123126348162602474915109471647524394058092751093158227728291012977075919997366323428490534698362923097488174330805213446273039070864447966817277366304584073615434751882011346252288322207924213117851532980127410685506881578802030637883228060370865376379771845523353621459539210805570383836844595632389173974461582302797391174688688417545374241023626966393875983669692195230365302389441330831206515621465227714432209870388183626773932206729983281456492388832487341334117043547778163532879553467486763211939068078851307784926902255237340102444165636059416261964589742736515089330541575442618211019112715234858016091730062854516974531932312518796945595766635662663790151073402067532115382466190880768595312786961782468411911911822723760017440503552613901503730612292742071744165951690137242754011554219517726359506408089944587369858084067135504661559137508152785208559703406400730569225814484695537082480815699226359671230750209670172633286112225976943385554547716720258756896610978497392762463810159424229845597499523079661252453067837972450640090129884749064362247274770545442314273473500583156880766618038596537635094539081857929147620135129785400279102843046329663613578971558018975434845824885068576001611087969299961915485032463359234716121713689693829387493423470351003054691545924585957370512004724589039223467358422786105193467819961146146559974150302648318776033784752831137456136017417336008726666540187712676082762573912647536157544002714687775193330144544771146988286516742446454511983649682231048289501727599407356850357898873085384008959312407582400679882043769120226532607945774737290016171762303180497210882018345424136679613339672717468477269372544312955217074854557310173884746516630705542841039309225265533953942675025993308323490664736207897134407367357487294473026016045923885017195727338102749123585953486240963526215825007446380578450070926322625989631027644538010135177183951485060017133399554667048780349305788373994663447717023182393792506523711248766430692866189761778167218843565701252554300746689173403062798012777891519297216190767581430139391789820540372092907406920856772822615574657727953928342637713787713674348590135910912773352638072945614150112341619705374137241971203296903180382037177707690111109905253000990923016826424416385106561921069512717270594145786983096045978084065507162737671955223660363847376642404031557385788949252118332931623605209989390128478919756419128598452624114738178516815422630154802606409253918299645849772295762839309868046359989115862478269984632303887937668977311979054868847779065138191567171033193431608502257561998705021404113114251127831455978730640108713457137258506349662632830222431978030236711832433637432179486035339762497144755842235276346173052714706910225651268560486471125091642596057802623595965115554623670365584243763969070964729032559137039280063693117520383791778940575679215154409579520065337356114890958834983813517434160170032011529835876116168712013369313794327071319392456388215919884779294666900312645977109566740194627549644065291024384514782599797514912703293369919468504673330652767428592607946702433166601329628670280465045598749019669096102794653071118116336035742530464003902072409191862055452154896281255428645871011245971678808458589882784657252629437516554722830880093548920689320479000584559315991446550154070406423166075244783765177429710577040108453998124370817564958365334218863103629881114613377775940563849053469714282499714957645873040912970153588829041788405450348075717034941455247845447441322828245985605692707462102746789025771318410531817892189774930177718862143650293973575450729126130482521097700329863085509768418935317069355810702878323360799154792005344204187719872938306181665722028420823288121890559804684514012264533068079219104603894077329475287828478706821969886013040801401659189489091175115845862253800221626379399599895472400283352234715358890219512930242886946023468656165370995041621061569667757672812779919235238574236914517586767529242240331036493848111201343581241900927644598091382910749619737440980039293776285158823958138565776750147008173192250597231465825092414579453246157454741858084434702129867790999545889413642428876432914561612115697657820382956957057159619891405979187009224301852497349819243031930377754616669511318301235190518274293854167869280916066074194713903109425400922093341436255267303967003688705883584045347707143319462599387262925339837411809860149699219608962491658409365229682958495672939604269959420245494510279978185942361599059952086623856848250538116366376276156614809837720601288681457559460657205894351108068286963827380139653401024505341459889236369156298743933236373174121874021975890045041512314306882637659080093340347657405427570331277704285200678356400103671386730716722502685330900226664300762509602949353766921143944441213358620772192220843944457205198809237313831031392383940609066860924171499930821708995045905608569335307884873440037649185643071162065876022935628404340118040660434079625607393900760179099690941114909222234629842376190494725828130645666458333247092642575568016155547689334884439171096950886769294239169172537634311399842176197878605565764605964024524053564003929341109359598922797188737506291164446776934853793539350116736211021026214161409008579628195905679443506628979765031144244945658751366571113440793406073432389094279140850254784230516835513695183538294703783230443345321985122092212654177342702959053239551204647347157049771630287823582665156644257922491426454493129995432025167576171405180022183458614903139244744612844389853522265223120634408215181241675381999087640237174131578891183496382710055508782470458031202612649148224563415159259996560261374643836148244844350517013172524669905065052124858213514225701912851574711072303608723062871089081660331948250263179814825946738906764638091664472968198101692868889985120527954401274629712252777398345797098469881337872016656283931858317553594103143002093757171941187517756471303251687996330061714000567292593633583012935229541182570811450479762751315915418606162372461088114378815755240507840880701483927310428688326566358887374150395194896114448617108764682257190085007981941530185525824862429157387239578010713841511118612531800806268663895905469607417114890498836261841160304046972062944796297159658012886374850167910063664746122291654192401631603749792276717494647785025228960510279689945283616478731854101736131646326995790315805619180542668768907777859485701469685925021035081862943046352066138849098723065192210809536103803099661398578171175233011308193212068602271339287177543316263595285719031027618174144924113630830436486744101480580151171613120210709412075116951523123728868336207087928012675456150677944560047282989474425696021222593078135498211039534350339890803861765971147958940640339429942527056414444478002060658248167821479959831122111540034103108347843088322604358367014585265160062988715551264500377096555282563694207393703808402582544890312203581727664890085591637226166784064682308705434650288294363664757446255585664155000204267977275833755909098261841206241465007156706606121919712581284591232034744738893219537334692695589547635836721545282713020492610604267502568992442742918319051115304774972825393142106709869814114265676665445518003081889355900661292039227278170879520932122375032449874754433371656759590293595385211947966291681906904219292613481003061011656735028463734572397912992127293748330606570804078255654531253031404715380793167414214327829223683306848915861547359717235266191027853443465332644112838837407286377572550579831304294081113661976095785418926363370552645855837193916100707953536663164189854113015478067583020248212194045064488842697569562983493308508351616389941274210842774754000161404504177658225326620834390412716155328677228253386138141242141809773240115928631239135266411997586053798540480426814802511093269769706827331314630161845822055889316518730469313914175166219633152377884038675249822018697693937474657467424667504696800000944631822414932739678300144806574975086707019090093544624454029947382827899760460835811236243605276809596786333077304355057780387367613384036962256618034312173594479002063947988185584356782094647797894992775581987791042707215545257375902981175955360040443495962443387532672386901654991610401012292787138883219939182642421672439469286558296380056621788273965909281381179143706683208701286462134972683153980453933930087431819445080780679172002982801117125068116590640829850909344270259543035501582315888191804943815713040727959876837428721933740852425731580366416449387902830642948192474318128059846774451018155023935451943401691078414692922620607509473839842196336749058118552787395767656574427465325888461064751070715406887212054523633469970414062918910841788448598147077194421771490282391247247521296017058790773352760846415130964988434704389648147944213524513731955572902625761602818506799913261946418552071622154516694486188889112831889047377638417109510353602773191804354537289170720686162029216732360920418876778991395742946338020095463316350526120870411119325794091856076312136509108837978921035066019045017137093695393663692856022364930205300444449271919745877273469136073288697918819815321566902678946000728402982660959332841417522093577688187744920088529630237719757778745116489845568526453682227766403945270202725897125977774885024678732858772088211574086594579065439699135698339934848019177126766522191478289084925608627381170055636364035849824697228208280844675656120813350779386037821207653130004134619334371573980670419068625644028326986213126853258106327627850220135554868847351513206514183045568161629787930297593843835804425771361342476847616753542752775205077779973465545117060257754501487419888949649165393021979679083621596697803468333179006864266579227250877448389751350959176422190250039525131112141310296602327961863788284979893114411761681097983676775865661302943035665538099744347228541214565981346143940062671418695674848425312523150042123710281413531383694075087171330182032213152347929025276663137972321810962412419670116732095235582207477815027268547020218309247549670876171773065333249481298963033052959187303820186710609778687383431705187942309312332397126936294691639748485110803974691922152400586168806561155900547679649499786022330329686194400360474457054167364680423130923359146277342046096885203001437726601272099986175596414751442940973791116340821400891016841944117126452432892139416640548030235343539911522951311321701533073458892034546221918963462730407340268991957094023245325725637323886328669438213265909755170410796455608320795319422643689848768000400082570061605707935882076241971847511761245601738665139095433053426164669968347013370345299071367667969448521777858549576952682528045802289369874859335655709364101153397885987576876801168270309075007693866440385182104987315443366865048372747004276282678790057644206675607725880017969443673780630472214963011074746430180059120824123305337749812623919518540823339056757707441981272357201653802161896228169030250195671219697939127930103056770628892623093261685168229279740486591751223705167486491744252535382868983735220339638979683374101425663596729372032103960598344551327820129362997648873439034265650950127322010234596831874386416119180506810451244227237958815207243989963284904004642799756487016632882712856844090861576628365198972397874778789615779002407802360796021286484350662368416126867833785135044162502089061513598774047769942272426233252403599383312494155273364464906500788325471139846026947717552442290981393393208173582655248663989132549278860948058199183014799911885754610403455390861589321626124239989098192844850317849693955466811717349943964336817016090932033705952458314589792656328824976876844185669956151447564715837110849480770116142159965476342212266439224475060299857951088379278673851079647342838457916972530666736418930801050066115194588389270164442556464912107735374212267348483272232419378039911392886873976705383134569099362760005968149280829955325622029206187608065930810905188617256901635717169648021140085817535918121385970321209512014001021006128039152250375354735294618810540784727437699741967970606436690444526862622727276811329228854228273560358104577388253073383256403672166083693752597393926002764724019354637333772577021292456657704713454924156050780242655062417378023632291211147264978147371815872300807786085412596820305681199528650492809200637494333951460150209614671196822545238213722548692210197946526227603816939431568770005401657332962195761183087970551574264199900559176101280862904430658006708878552014447537841372061381443136722665332970298648282783641301200618875053774172431887736040354553814966976950515710493166892156683406628300221958558822677259598502653754915198909638167545505949589426874334943036238104564203479128782671230896180065894545210671412608263723505343625490447571728105445932357652016956993378667389936951728903998751155472164022205278379989858569374036139802733241505028799889249216059305607413638310797680743109796989583713490549148950552798981900009771686893729846778009319599991149165469117679201870186975487471097258691652585457243161084938706325855854449810402240948998678546797098424480510198611415718279406867851512883183801394759037256742982063663051192680216518328999400654797264795570036413875146974247211849571425153832754125761235954440169596593585007309468292118729265704528463245477135185935000630497215028372333982243494314528394794280257631777005418681908997856457004023887102432156040258724097947316282619544281459061749032304589125399359440438177815736989057027431237112576498418860151635155534353315156937360784225771134186136804069976244142148921530491078814759115508742338198224303457712448489168628065620878968619173776494203829313604229006313097646249188392514592048044577701002611168484529466919514067334439264513542208531976917103073464555854266362327831370415592304026588461502599140621008963128829478913868073218963840487868256935482084228782900412313335053936927528451575423345065123269183979029592975897458557112093710417031314539686949762885462032938481010452960219775295545410751085974812141241495640139541630281138762006358970321579224089856669876025417295015423629723975719901749504189077634849644659566156333900659971354007204138705669783754243313338839238303825261306770897263039384203120510238235321845418946986373997364817524898758333668583908732588622474065819721941175006328509618602758513951153566689237747568547608028223650088238199840140756297367906368895070647576327951257748857580834638124765422131361005586009915690013012628748460690618690706637311921185040741678193291658366599196602529844672757169977067653319066011631350993243896837656597553385919822939054644309794386586414343533195456373453235344169959763013440067809818906853401105251133212982735061464925173671472623824568736330038390864764973564981337024519235468907643395277449998972781291676692144525390210359852275780682889728710990297147012270866279831782557847586748336897831654321151752663635286021257543473167491946972194007764636925100524709220668906141631397510136532032100256206596090213222556274679960369794278827743230043017137079094976393437703974308662728943372598161530034677248279922961287095929553203699101461978690786564750711543033765507164140048443032034777862580710441621454252682671430639509078468275881949715532004951453594544064950263252372756840203152772248819542326858532577533732002535053202634597039422478172670733649943508647996079117126462408217256564451469844976113808404743826249887906989598341981392929062499321587824110592663834314836077911405429300301691659671810510357483869860139565659869807615500459437172623571761875951347851695261026241300681672321978714024275893122224380669611903150190493523262440056641322384431112402975753750757843571961891083980205566054539187143354153269185008240595062719165220973317746272214277021489652781347904332812273727810660803539213061336646546623408112291297516834162353542165493098821916735458098736062031085100211989054703241279052441480273228327048337988198375768886558350261308915573008107971092927574221107435154321314378435184113731283120624981423207232669156953635694414137920737571398208804443737850365410383573426594028019762529606665628622330937451419189769033887473538949949794912100900071473869049509507199805737908356594773983547874327880973594043417458647528034869894314630033770879063104657619836638170142911029411179738132891191900001245127669506604065835639551796699260209461478711892612934098799905015213732123460642865433610444151369005852693659683530351966201653475845174156303161849301861750459113268056873257488821555172101794246772807504191860876479262691259144732003911264405066206499386152983031267867376002233259791853069402011337217537575271243956928170472060222715968523879974862863770474030032419727521572891274310196071928424567706034142514849867121562588680535629558846693031616503708659885099419369418470403820381350039064710653395646320858779562650410430890833807074858108176167096637315632437636880230615477950897580677181389248434539342784572033178117977340313201279475396656129410647031672004640884917385586017792086243567928223860026173307171579418809606633511042518184239015533123429341875717870165504530115990492058784286737025367066996405280155210838036640473759055889746234592797613871821339396900298266582440386293537391098041762620279973524007668010543514197928764270416845401450554939140154425242208174065684722822061125848205923453296434763866863204568397331937265125962150588368507275713842998684533925242052563979363950083025093076917220331330527884825958110305156160932274707583483768388974238373769657587962838160999849875278844248619311694824712210110085369405787649489845745572198867951238603984035095927216717617407101215370222616377813828037743809313135602111001298185234639278567334875387812569571294903570399750129435324767398486191259288763512076714111812860086489634467397651345589099993661237073112731956445828062077173277304908478314308617171739994464089521757702789002492260290285243907435250986502786021103793930112061233478857306951197294546441367435500513865280744277890283710191629392403691630080506762467088350395814750051022915394016141381255898156570681919954151295455069338691614822465442770922552799723669474815294066018222643038004918294383833389173144645981740263118491835088920069684686041653976695752034202690367435849599112443616056640350868130336097657876072503631800196577120332445203560523277680158841382271238865333543829841221833675509018334520524891767682058115017347909384621319566441965916343651733486647086475462793228500088812718883285924584861817335765478692244945742351036059188446448969948649654940145657265565496801373822533692471514550342614577241771689874757315871145988687410099222936022245078832312520113400271238707427573475796482247646219559248753156600502120728079504172313626527011865502183607639589480973210875830895914102791403900233390748169408025798055259892120055738682255152291070172006367681366422063694007626998815105796434507883011468289913345888857341792907792578209639296917224382504410306705212089318027769740366218294154232430855205336827281587925687443150569463941850463134617798633836438808389688938807915124767263237768425202262925959111302247865339988464407251263191711504336488844193045331670303869902281206835035696444346066528150981472209713243813673272907561120215218340123869874787766094548551577540523463352051772448724826094867234406147088861993820129556821135558719037641722507088191693936338482580399753513663059484954928027647665727101907675556133648323370667403847758392838619456475400283788219904530161622921734701186094439822191226573456210041381264806877759566680059496368456952558137864649473573052476230724395677049576697666709478759938156529925198228727504275825476244265775582648151159664054380004344748093355733811643140732656094571502287181033179140067475490304705487841103504095312690999908540544169005221478381317267550595027884921870875077101172245586535828199506347273404133551581595797174577803922912243205859731246347765057548630780471330546418999547796047065346748798069274673467774635014204223600416480257949782345680814393321922832552698707101788471851794263972202661600345427797926261133273423089144395655951234627752599435856101873249341793772147138942105117384607779035773675707040398181207726962840624684428529234607353563251940193933806651888244790939087340131220992236324155393307031073548600805756420364928744246255980263574179563000869913081858268523287359120495380182120124526569155182481003355456836446226685473022111828603994212418148925439162577544163107586817521370007297672944336397047428397173209042625183852297405640954122150752779252580845428020382075370069892621326780684263461982642964441406106242513108147025376874541896080325684866896529941498909607826922049702534027321148203994227374896259999205879210830114114177900596843413643823292114957862388267099892747259855628831193957810509683426879504960008598461105840282072956434709839194304018774103757377729027275393300966184197901431328162283900428611401564558991410809112827987280054148039260417949043185241330805457374048342523244649893163402641348574817344497913197684370679248250916693809388702579743344512965119663822360282183103590260962882058791469350887274089351456197019700143072708766595753874510107094952744061051372167606511921869416658749001527278711561478085968842236697330337397018931459144416742727585163432285472878411951028312966603254797157187877211992950707606123319553258733103749324003268014806810353784619330335741307118995157175488198225731765773908315187086980844225848129829339337768211896657819330634630079897065088904701693908522158762318428850760484274241567409269861276880557693025824018223086287817951738233563202014703993589909485554939846811834213037036265977440938816566315811210153572557790581532709572993206732135929533247762489709830048390001897369223674974113040786103539443540004079021886798102107008658993930316838450162035237193184330300568673471105300474601419233740680847741025989676373770074431575730203858552749156369579555753683727397447080156424485776874263501447334405441956522361104385233699427658485469114793061929469927161634077366006046094654207967466295956353360089822737017999476755916259912002239886023143735465539335373446803914747586856789160378885600505890498481849686624622711419868097098013533684209638092875396632048542063826759525814891128782329287773709918344815114322518943796140602952889030420976929166981874795845375600743195789357422340682062802632774778150997325935778931798293674918752750228853093645637847810128107807780108604712900657017760157839424288018060222148807354474779660374928155013800088327461555465264505223899085527275836304981288632001741715606068952139467778533024337420340292392272640436402302158023203806537421399795570129388711110429218797440359039737696294866756194793071738146605923890627905496549170176589585642488991244356890472868311952380918387010043985526622481945552988720258242478659556689948202434546220517669184884284896842231318677723795594801960977310864757934507884770055664699813879710713177815349930395636319014160350723234135059991136740522812449374067328924227192292099439465919701641187308701221298429009171541835065991359024010108452582363597943002515696932758051613749667408676077353154570457134141428407345564239026909458608936685942935884940087140714093839614713091000533250478550156627067727900690265190357286595564313523128311363952266319208106108652550411478923212062623529472060220241547604769241814116204637466066689630124827289826633994620022098147158716746281365413146801691166875793034298095934503136462049986663913796565690684081923694732105579389524228027635262669368784884010792860221043559760446474212801951692543042398985688314465096985046369865455759195407772622208494547804389078926997944582319133621955513398484601103773814483536984036445649334315183145548385872278276117830938096421768966593299611860107827355266430374343008661295745049679269819045263405982223122038134107380323365314407137805944460178284596400162001727356329265473127750440173483407137165305546710827220330377064586704979563672167898703931541240529283150178255920955897509547988480265720561699368212891786364536889234644086954299247988446632341196187439709979691015876896358904820386560404378536550025544297639249782951686155556656004768560517109746021488977417962888376403251689923609781225680179728923028523452223798450136334735033103005233343782991345738511667575457764164097912971322606620619560887851378271687439113550875845594362734314351507050841831604935693034836513031975342217740044529847886953536295188416202255226426260652547964185272993923667177353345170604940874243863310234788744789567959916589444892856054446271217276620938466555375044842247850813804454050236731276260454731827626320552194933439263765959171222054032797707515196838142368991509152318606295368015425453079522701716887810547043345257824798503736113780110265418823757886771022010172423910865646792163982268240100334540376877272352070626547297081501868598691912263093709069500439666955458365619406639210162000898743937361990220910976754147018678813732664329507202955309118766079097183980908662047910889963159721777851432850359436898925120821916780191853343147705920565950088687961892805218503875526429191018017228654245638262292537842151467377808980976951589327659930412772609289087067192110443347731401626567908995407765900995711236580180573574276971221382738622141320367103814528351843294790501597952858484061195953417579714424368083114371456332644840653527349118330379735501237691752441754819795112800247832357915191299861259452968326669920989165455961135294763190903340981798228973946845511369490893558133163554738881926812223978002574064739751312578214639974748299576212425709536369866320524205174558621899436429321107172352206438519336750200411438958094376799175790761067659179942193881471612098013731710329605263229950701802751209940585036668871361527501037918883840898761266773846241514441249725804387489959728679328274682513371894966933739068395643526838771561670873146359853919962737632397284925267677945513269598640077326853010990995871040225734298482813479255265121278473789027285455979735070459985921508303881514782696643388599046656887513048285645156536684398223529698418190029868409432779768319299644561908062765107414572768552310522987439140187547914078771446828701909803236375092273832528013370170229071153690013051335878813372969655699115489298245456402910099127544316116019978715656925606433394360094824047807490723291584472917782957741578411803338793576289210306481591199782396295362973998084371067249022038462804431067463100529176438486118012696522130162716884730788001240182765601917597563934302148785653906586977135496992117632221708192131965354323608652519632919372805332479828562545271074420273603940676760532556264852513915450452730017694830799541599328384254445156958348268822621931268889811839731986871568181059306180362567895676729309275757909588540646161494328591764512046150086552422919486320827532192016461122237619644978218770097930314648576257842185106404666532001571772822579788081776856990328829358832086587644834977849201897871842318965782045381265301740368650291684007098110027449731926708214480624444967393904071875882571171229314030825272538188312809401655723297199112020227000355761869030467211132245828903571698933983336377121716322259015627943331274320326128821084073167262660457498906158644178678895669540513217713958189984298269636030128528653902747177196344530804930214163891033042448468086665018225898358944808168615232604026137578450557082941614583818058469943086710339693925104296480882477809739377438773074478147718387874378375422513178468374423747521265070222677379333575856683208589159501714963965443650779004436004890305076001787077515102144347114328891432818547173831062978255302758681471243719093341022770233629317506468163339850989495673936295504863675599072744857580306968923333601097334659993413326023904189493154801952694994972262726816798034059461905009028497226139848554788527261664863890988845668910747920696589006275674169931817965853939170513304828759494255355330507769639862625237828310673567710775226471238660340305524390356049762328113145918057672970676347697395572825859745890846362030958600115482102662035684217440287160504432644130504613054466734967496050914547008659547585038994980635660329321473237015904988300997107569534994451062494090538993822777702943633558105216996139506529394447026829681017737305547203480827051530267020812557835053776295199913861169121407312962987639112479583252374397441258727247990134248758433717414122263676113394191549473806412616158675526319372329679349810759107497946230311458579215103499634106850252646274979706629265404670499485102530377901511170098135106125170807226794946611913227389003423673664080433379484692858440864498383489915722799935207457955695957859829488191819570703951986211764501688597055989504073088134441251961354946106857318289842902814669139043490381127924699677089659771691498295840975248977213426020999619341180389594343841756576689916509221616030610177864194495860226052679908785480870460294429351984013079681605611379021826101018756956726333535387875208631719253758568772127324657879108827677665210525584359504498160024147745070431108834487860910559128701143020942070141590703243565316195401428079801099141024667298058015123607016792100012871410361631932848295515017679759369918714979581857741392783799335119578938079222923520954965043844450268142864425593059153137997193032227916891391231860727523823064055338123178100662347434785704915014438573665223849377247594781863281038359044336857212844904949371900547801463216287173192762524719153488434896030621678473572917846929454797624633022279428183324855845219418744766166254098325416191280811228603963713505838687103574220933417072502350481819877151622177962430445274996851027876630086106826593026219055047258529472795561607947828287576457823228328794761156465215873623909954095669766465636790172004566017986526088391447419846627899882499623598822929057693877611541117498973717486993941196528629868907892921975446350385998669348755741894246333157543243025999850037569019025773375545114322891053454465404719767725234133790931506779698560187656146611521196252712462320044552514828472883862164887680342822428892778492821675609909417658390514196433923663326470172358670289198642781884812335500570435003416083949567241147332172950873318053330632641976348348789068092483154914584352651828970225639543730350617888197498815165449244027875581375862397701009791902185252480889899364779228863789780621357644512792230048005944744758853754279771806671676893233652001892561055727369360174890888557477821467344885621177303883880371487062499540268287593879385991639716569724660997134907535002185074635159236923990375025502611318983436668338856818593585746169721696707977685114595186688418784600357811705508413484077986965943434259080045775234479327415492412421397522030925512110186433975277700863845242388993662354429737923261460485542050516934875512665594956240690555326837026160836938373964789493500833662700156333477249774053621050678597082501065002711054840791339520846165005013990820145970402418546102452052654090501776914206990515298572417212040533837572438378997480627840435545292465919405606586762123337339516378810156310373850730867803921753763758394247267863825517969069036722806331441083487768056346676102201623702895615671309749521730057681074693594974339928950935306379192730730370405158245028351209434982360096851825534706485641835018910441715936064075240185311297682335573400458742714757798608486832078270331532152980138610113517610187291608640100948049002957402727324183504028732561624540241524060596351538458723008423511294680658438808359224529577821522731567044733976559020743635622991591934593004718822453566847834681120563945746325826586161706305927992685720820977856374038451719030627562215972753509587206735538602129141136646450129408818952787727888609408910460761723366965632392653005698507102581694953175487222694651671434217466522746133175877259700513179865677078017406906094299474040257129224522038982968533942540704928597316445554390357388577801571626887231978833784041087753563496870504391428096077380821621607858340197331005313226256346090588609369835080232346613970195752006961989663593991099214605269633224025459176642850942232119719277381423343036345793341472822017403837968865363101431072755020924509838286664758367127755296251679487577600681635870856388442443775873956498274108057217199760515419835313443415753194354993030420543202356878382079567350562898251422436966750951742014326709895696875558240100460530652912586424605854730061667457242515253617599760513619392527917797370530134974382211846899100074503577634072048812121881684897052464888681452926378172339251969245693734325140035325581867801601178254363033252028533231713463758656914432041678646425228219873178563712027820512478091603687187252625891755904412061098435174784512816205207202786895666799086505921458992736263470238372401296367964213006302020220054668440572413538203530572385974491528243699108391831474159712180764113884968291418725177963119004676524797366967951735761124959876303647371009247156424813476995617242602606684762654659614446982618056344956228987137700235776978556919826452506064363797751926035657309271389886451080692293901844392556787687535984770042878458536277351214346514466087654597422063739000867175002318386377016256839680969419771176383718149483770876230714900150687969360238905983342214588531713604186018129307623245660891542980901197946911141779563567588584098472841194754193779255634427854696600033996547430962947076777818628551154541796110268782574920501832966999936953273280918758792745556876378526771249103748296996754747500913618331384715533407451210463401243113041511245467299720724028887348476390098314001298828353238599278056231265540036683346428684177353838160824981488304273007614587216887767796891055385965938589110205479774502801887455258722208468361887625043903942266473841957596478593964809834055339697727121474334238442083248439936044240181578895494074379736146668769902748568738001311557033466609281292757057788648327014557269795738542469042297930788715877039156994476883455328710357669438839527263603191695935729027407424659751858422413685657746682102442426863189917876423839979276882579103242149483845607923567320416373279498922360374877881067568531774292160582101026049968573346389837191221316164250097436528957604719398756008333945079985172452209150205906600858532484676459268744633236113440216618705810046371084514014188512431140444318884952860053868742499565906675515282174149282911551777388138297485342199803196631565235841708720377185759827833427035592275493504135852869234168773038474695358460272166888771976629427718031375433030969263206767716302380441600035109655050299596191822709955325919104807469575197439713150479985236375332827850110404108042205989925276904799605225787880333319943242587096329694272704458452102955064100676651687945101845298670115310749152750007483463342953521847682948885081412138273559637764664442878630317407819676921630082394821027960869257929959519266124933833453062200327060735467743490791550828900422565587454606413237739003505547351973161890797197899317940099147044220210979328238733684959215077967781939192862329878947198983589938904963951774471127814349904350158982191494739364604352723158924859887288955746511004316840752449365024778917097342172956208425334584417372535234753208738724299868918991882230417642159940398040375698967031603496517242176777131535829725611225094688276064874266086041618709304166818422030308580314739435385792000079459667242741885004017321180100631532966393714993760081243606225885043574209334659175529878871490762783126765068101273142158009353547966244540905676508394486040005965225045880063043134240132199138451646176176420795951598487037016826397551928469895685299222149667381179895742680575262120103398530698081769277216679512038481558157180484471578331454336840919002300890770687409622624268929264657682013882235517031231418542089330515772587008143760291823110835647685672526094697666548774423627165266787444170229638383091201755743942662740065886739829617836201769381532020351866785931531016890971756665731823258394601581007789740222832584268038580914855251818643618535559537608491109699738469530115744480206620863366695598743511032403160539930930518544189603019469837520663464387365116066958290749455087747514314251664474057970506436734006067579148706975442338549127854307376375280572502584790333176184267260530585649112807643691709143388542399250857566567640444382669353424801156640378884864390095979447169015997195131439629204198015358270994838367178983901482453043860651049640794799652521048273733041683530506739438237653403691285767892888918383847899786348434393248060168587137574217286591853859156002991104922305362911364487937141587172005479564407098064900763563816033205548760230823707389739658532092959775274926389913278608844638096931073466121631725293208034912511593262228717529273733399276673189136737107988661923246034096567996723413494967025221400754347139751737859075171113089310018470660403338662040657914752508705419195900827463327343483981728016520749139298858836538919011099259158167809633618692380830822960179583515732303294505085020118180969852399303843734450193918546141078156936132635587891294187880230155482219295149316000038213765750295173584534714129487427663611922179647199068911554883973801552721588853773745649133587526991671630220778581928530343643112828499222295089424472496208087757203345809666192315363070612159274427352479011625083760264965199702086270085105304313934097821866180932329652200700850206875742781627972733556018870978196424955255135803358034859837748789352726635537589223813655913404890893595629257561491128555931465570381425837671902229568978161964282447234657664636288105784150722284730232115053061595249807507920670388209170782566020814317351910623460063541554434438211795627648822819959963276930506105055284183776761212409591568074494146465252376870745476655195991090748140349030562714299108612411196100409752950657057955380464695166951154785963091380882882691062885282153840842138645905931132497491119636067186835666181571677671897088419457530825837028294808891110338202663522623333230012318861304191388181244611746091792207218706801284661650731524519295671982610082858129466631801477672971437977420799853359690853159254444078400389821088404732313578348589116292737506755291832879034373614510317668579089858302925827612491488902159859028201304330552025148083107283248481836428562121120976945048564875301771059279347268310042390198084950048025867845640195299704330270101517298558903875586782416642567570024045156450514733641959829810013259254943826399585494218510807930211977817181540409851609865295437058392274937612286836739971962377940274350061732979205251294491674498040426764392274828323558126143334324908922238777781935774492619426449955263653495170851921701228200511112817704078238353672647616074809086349423916282733150273091482227933268795444922155327787236947076481264178332318841193018585620088434081312408902866284846867731707398276495771962071361497596772882381839002063463876392705409270729790962102004319640006284835128243317990617743060889337343026242328941319995848959555470181344272617195828488497779056753990596412373078759114323267607715339685133179589350809541027946346596962090670183153170223637976423678487022840736867514598145543359325096496758237949223205709436084598587497622753361649602290597384980075926920693516473388981057896863644092988374635052232439202609842809255432008581073896151850477290570211768763237911690727557637357589564285571399203217886368062376332761324613066405099323972678655952691785804747223732945406288629917939564457478127362520420148717964524221118654270282202921190928106369032167556611470756092952083113509789309327188336648797660596357995235185009832901300526561803361168028747304243009166037395148300499905632143235057922294979649682031851436899935400713580962167014497282598308612790191395478835999463311533300588442678434658340613436892734964161018451722033544961910542302868665916512153071384082608589827915438025527434091014536229384850644099943141815938579604872097997204369449594654420705350606706924798561945249522263939528644596109188480613477668151873408235888672494290574814620696485831916147755358622244889739110164989812183599795176410640935739656755289694015221975121424713190802483581177454415045453784534812627058237635864880809369143397199918356128157426935472655415000653666961844389300679497797464775621152840901680779862996655209091788525273522269967370070492133205671004320314159883161828997912264956419858161607583704434524790268970581202301233061133619910284117277923081184220412651676132226912867681615806709145405767337563687936423335892413235050379282954552741943537384744779299220824218053212143422513068639169997873486239145543496036052576548498545324840588376385695999493278265388864386365558621902075357221937378410134408279456445751498117543922891134064326233729556863665867568274134680167833006774840487762569193452005715713683810501391121444407345604682608273506153619848639667601081046993825152443723115761414413421590137604596211604459044896746243941862185422920397643209108478478453142901649497999919044638523339650293638954766838202675956064001328790146360969294963965421548169259485689995230149715436413505494089847174917538032841576287874545787775774035100660572669910134702266406984159943232687837024736924262794385100752836366323932917313295474671483209176507384614616674175981425151191830051145459882055224814985150818780170567609266241111369469350180677747738299132013176792790990079603631309644637895377967675850026684491880418623152076375379454046926958838382267270643614190235707887214102437760581415862523330956364688714591303341122029092138373031145508357932984862130750540206910661788990017832565765258297472066056763406812309653671119584840547438575106596536050608155753313090053649579700145411060425349269160108346193781958291995568647505680221054943199844214123715433180657350596308554322862704389487973138000098468632490681776105690065437350931101520799926438618964154310000737022816794330236159437025959996051289686823970638756285134666765683267305944883828881264040559098947346202852565909447035395222400913390043338264035095244158110207930149748160203484954981606523574169913876417459431550448724022494555778379426776955625643461421257149475654220404779118990460212644870060438641347258178544175432164458035585766965795279271323709585849920097495143765860121854466389264675207624443243504624061511825894545337921424382980393284144883081322535472180662922707941924495357093904840187072726781711714873888100350892532338434557320365782252089355756133825480059005382488063028782348533675797741125467614130163421996053223562901477664493246227423805960438919848156364343673685273277650469284110432281927508796960775010803219100771290286477480568745719977534219333839361154402254538921165717104362442402649066994406602898715627991515649441198556627060866376514216357487691879634829751530162219485393289452345660168037174932918020533740498088278456440526074833670820658145625707473232481192591560702763648210217017164598391865103757264607268825419788837947567925077641291064271696140376467922257862750953303441016486493082133166234195727152089143340262751768073234821863368277709609689984223242690579728542801420354437778312192029674077550631262614614508084763359700048186675023965733284375104778058030603266226700584876292212512914451223776117278011471313072559904836719646161516197645623051953038950164300031847257632473940751092419684398412488909786611262568670586203922002538778821869856432404877171945102731032214671194198786314637514347822951618246122192821832900938896709156466193548772708191119768066218014163648013670387469372970924924024452183604377826394030911628396538756768091552100853854339284999609576891684640332060991848134754822671230527774687297057669194804769326641208190869751657470975586593637330796060600831665089904961591004701239228990018019980706108757403018566387729620058857986373351257910237610942925867651488483409373993899113525740393454060310139799402447854388613767509803482404855419775466108972591568866057933069117174008292252698118962260661303346040155552830365107619152278634876377721409320783951750142517865076089195710006102764157779198115288509646718080439952155367483085942036588739906552644947036012819312104615297502662605426575405476828334608866047336390220006708768470233450123554034894945352363705657296910638848477243612721605764744538822270552077590961013329207957599811516945272715599751872407833608315086796184225206244350270423604688208189229812521825035434331073984420408911447056784329585427882675945256508889804410004347650362656229068918220308226309377947609987292039310882491975063808412692277946076902172592142199082717162326429299914258840075564055771119705367291102943260161088540079273066655916869931115561207322304713747819795999022405786867107268474044848459225477357827807117927312295495008690060037468370916012824909227050218598308592738674713145510192074171780893357160580273411501990750962806463148963073763714274483515715788597898922818698577924377769752809866550646653163878639128300513847945188473652182073467938114087476219005147754054931002350524305881381995188133957181034984375691062036626664416984684676426130457085677189576069065433171498124954155175917064622375247868191115369787380230810177866846587585724159057063226575746840885769994580825400009357635952546614912608060113047756278543321846718517104130735577603250073901223909076090582160328871566803464710295380709743609462368390566446099419701006535070341394654327275123100985077344182394365402371238102856072962057018816051188151923510626296131005377239139069441245586949446758210896023182275908546722771522165386961984784117452079708107272796235381309631983581333007364841435638184759843221237737392207740472171899016788490939213458042661129211522648342289796765736508534030497462613426141387606671485614304799653998215445934999492574265249732670263646689961281380231410170982260512409138568592088250320307063602883758165871167235079781880766534544034237012899241251221917495826431544075901703581379344732045518304251109150281128478636636283135405762117395687804012217682014662696068975876129688508069415462731041901230063539044367708771913900317526185835521649585567702654209823758048853902965401364865247913152788897322101317804953274505834718519092681663499821484357709084075280531136364939806962987147727191249162067944987627479660632062947753516882620278891848178664091348769775819290454025651126313431664573536944761630780227070984111299336740337694889593377028750346484159083093986443647354376293654755544027423180816844860230314793468346999126968723520643407460740949598492888778401460719325516533159508318681427470835662972392018592370312288132230440363385903056532451289804155433256425330135237636928874063872827038523392900808996152383172942954743177130617876618493838995484130849647695821774053844609906601687287390398397130978853734358942263987091130251075412266392590366413688315675501555633061563898173706860783394568812088123709156157043464704764995803338294338363187025548211072151074523364478918949211993566607851203233199383168138983707793200651684384895228444006785428294534021129305208203560055828908011156213014415114549686739402791858780850886798825478768653499353397346151746876531064761904177942991064065999709534066205004362234572199695899550153417668893030711062558569349408378104210595166862162552798497422831102402055251120365884649694441089423986360476170190704157633071895431603129580123352422712746211404811844350071641702498255115999523240485059581468095176980103314271766461337765247484756028733553856753923552312527992438159882097134036209385517836109401431200375603488313971224655984012059405883638381278699799468488155677168445020441749681662599524243106516756503528469162027236806436731688599626890996310612363972248517825420808161939356657908547204190812995606106305111899605343089942330981661044378281900221954583325510847755032608084367613998008451095619239949188792251264981474995088188321150346299017137142484386318309033467562543647223416751083596937546651687534556163225298596696837408809839727950912096156262377282630016175009187121423893135520472699877735241134810742264180481199064613664695686058029505503327144245494389459442920266530003176863302032413911265138947035551358433966072226915057749570253516017255591267611435258462327642446396338727393280206488068484153033118054467589289331623253138130481012512550931919830180599651061912144074958802821645268583086063234026063811728094288118178767911229499308415527241011968624907243908381652234806906734526766977630175394913286377751293603084679222103200112328657774169378670285688754984542701590492329027837627979355192937856909855456775994316111940765184250805752737819949541170151238785163854892380827178974962555167075958471532226739498253772063307716342159129130670944794374831390354164770936846385572126702258427438683137695092567556231027627875781957323313976668294302111644999940975122246578363889893322928530354970102473173715293580081543447273991824818138978723429322180661356926301517133832262261129943889502801031049434431646542125914632145695626470603569335547614430175013923730083316584087612017357272017954808863597121227843218553919846148932783809601827288447381661380637566946423150459348693141845369292201779683027964281942028052496593867849137964126458576961219847235530062496542493263470933264511798017370198441506097577582938882900954442847427126102850541735758582977346632895603271162536367321083337491619610615626998459488865158654093167482793177888178574978145339411601724672170716138238706050895650922138344831144290821773369607053371073594186481893480308769890701584524329942160949085926797895511874331121182988933937476190867563310087762919078451046367086308639279466274467317723262056779709626637898884197216471356453112308098674334407726859274634486443708729863824874004693241257171417452927854112687162750812871798190880459269345115765787632604525905211032521254377398085091228106618451665148358161706157622354194314914896899316750702312994453637870749532284933405469878462800693181565684867985068738565643568047706880852446713554802637791378356241523334064151943879728040338969392872441865917380024181756019277395738285453971913103320314050035944938038066726299047533840986557665226491669061876114147756857054921140782380470841082590356390810178365585714398498851364577506796352282094175580037247336551588292690970193404275444349159393512628587480070198828658262474957150706386579778332888390763563712551509633344717201848073346515679120611056698440613444343383117012288042634307473962258773737287476332559098976348824563473781138912419603578944932025119875335029676985045421676848631855157560994685435661260237203920218498197736182828161057482593091570564283050498464554249839460245720831112205000080428983453105588634742185848149706386544511783484000208229145851509389640154403916690509796861343960611353088722502061073839941931154594989165059460554015999690584030447962825943352844601980234018940314016852477453788798302198426424096244830544265601265493281085347022235453135183360948782908674686629892810277101268354984487555365764132474702696059765506942970887387928390916939220188757028448147375176689781127541163534004697894010782997139581288827622729491087880367258175383619666497668368720473203492747012446895329958753376279413249019086688789935624594641378509106056306335298028008247835301971232574553795719166025807526592492799772672935631501751074374285898296359603254710950977981315204583015508074721895077053352253847820830139185914742827482730376925121499917365053775553139330256742700382957486583530541549821362494766660330281658630114964135742012244974515699546990861039558710590871199821274631311272136225752969955425067126545131308146657443622009279234977476544367134695754002786630520541622031443833767396849366838813346870789242686228127644779920537944794559919437007981926511960408703086280665250024529573286923769775785664914245779615904212730792432101292441305401535735758950533340969116097579303283470539977967194546915324510885168489818558635442149004529011629355937178090293509126681980704172400962905021843715049954574645082388471190257503372623046267684971674819658105715238287505164034759420429276074979984036612059578999429349709715290040273978320197361781254188279618111116894591711591248996085452812217027626955964935096631608562679113544406086287809845395192433210159678775683302469262719353269484122823257021984004776594772804759106007769515940599852393874587184613327935080021960268324783654943972576548066767019209466085117020935057908138037494416438239264084305401909656749251784255134868346756811710275752512366699263943322100060632157579242871531744755272556108204285425926471251176492144124806186483232538297614865305486568317529715808369652474613333765488991199674523547257416016024742712482074889243473259717853096055358928104578803418331199384968542988360824202134256784471325574019104170321261620234916413491981243269084137285319001560669467519433186201420714864575249605719126453310707814651777659495584643338113352352516880497760217993982177031210521708086268904600484848526683173718127412698193283234667744166168876159067170220656383140413675001414790747957623923235124384804689376066097696676424846836705656533883448803030043889654761536310967142666489353214199667109866880924073562062435386331457989699853584937384145662745438139564015218941244445032554624385483681766969853966244550528388293473205674304518458797056606539282244845536210588423900355758072527764802184187681349604585685411999999963708639594369061202151858587640064830774431895291937089970074975654436974972186696303520258623408088015006464497634229762842912029998918736092248493229429505130253402718669999247195181420247967396061230484506926062130125470355477463908611625354544702160870732030161131926094077434819445918640363188744709864194714798118016062661350093933316708456503279331089859272228647558617242358910921612581938592613038586773576216194406143719784081648647596708119300749677976906183401407249179407964444397427465812084061334102642670821689419957092450511861593694722893603989068789283415278283076517420272400751127457528901138606270856616098745344200957477602692263559002690735610026546329675299484840354798881460997163608446570825963508055899862827873920329877978611985222436764872541997292999610748648192357539180383562885190530622224444523471053417250304949397770450173190797339758495927147929917252048005195519889370888772397098841330718360669099261766730204632417112337292206550150435452706587334836495693003664597330181377625168371195507679689626671016182534468828702800111243115312646088684545151474559685967381616952369761777448401366840497842976317826100699066474186504239410816679259678401334619279247661199375549572315168996819420927077173253561459966171359864909979017825182951615657400840400591896373360667373327600914224986982147131281946692855550282466306693214732708185400586016568649705264566791171578412517583810535461517259767040794660376345029539268499932642720325845756545443907759514691824261755593737989328928893289835199269693951483488388353876746612880651963544969299516610677920865325320982466596004252954315735095405879751611565855705932657530452543908220841529132075477262932227587890730541504122367481561041829128338891544345169294035129997462319812433972143536104949849657809079432134246478539653081935304154249398661419415779307127390518829784331364848934452224069528163796791683817772718732479957294183701175920057986087090687932462304759375316270035002186045803805070043733230541456122186354589001638879195604156470473456098029776697666495326587384892492582339565694098446574146087398554143411146861444826519097755701237225809875306308873536571887364982880608595986070123759724942345769714851748290255039324887581940141886786040128538734521014527579437092135058069702794499998230700069722045872076250967821885007626998354408304604896765380591696280496296854193430841434772498404092990290034052468447777423367390885239981992993745670550809765731921148263011780489034496065026418732991872449716631817851610293769151540627646432224418900351821246177291253745897291514269019485005864271538195650313664625312400823275812612039582331982671909438598632682088888655331299407394733854438419370524948557782486409721486321345807321410969755523626940306169533585646181565096300450599279150534889154527156519834663368830871107420039674153383745979109291365153194463867037005427598385978309808428950872722959729517967252563977000047337425169285932412469805941699661745403971634162860347552129009943429783913862564381797134240081393585718451680915325215187450625360245590301123022670785717137510138100581020141150138495443469190060358567047125607149256554192137664916692288719247178533521701699847872525713960553508444672101711279225811641070286569540548753484122140277379661748326303887218289803313954123028961109870618205755257010625534842992615862117085641211957679190203843653204152574618116376601195282227038361521031676425946751997784519701709279773813848772215674628920664802703526132062390766957063447423360232288528564999665413735556739918395896491975000473560330915137958855622564345996273877721881599410968427993243426318822204068353633560811599652727665029799634392706900647952519533332253257110218784121679172796101798207126210110261570857240946427011234569240705112550566708917018894526518982106610427439229070500408766315670320522949919012879023941380071886813721022411724163898919512177113861603974059936733357870377142420214838897533355362778851492404235787686895834109951021490596275482126495611321785671574754110677503167874645116047297341884330947041868650889374554799026275597492864804842617086864165235846873048897583518284738928199930919499876803167869062989644464011711667982577837411357857432792135454501941199115200449958636423068525957237603735328512052608764219325475511685508422761899761390562516620741386016422111044089879842067512753500955167724613271511677652052443324199853018722635789270916961249520051549141972770733231912134618986310286577496186625832023085126053380606246377917636988432616127580105116657993676532700332837776289659557875398058306084104355452033607667292378184932685621462468903686017390283565836638874653316518013794285877001073918424380013332434512237248567778842767535802943841308904916467419905409465081549125416933115216544716748446853920254515130029511625348685709537365515173621211705522117015793499733254610985979103255379792028881397641464443743497108530670729105675235255806898571364619412788597625340138248522112425975760493984815704646157126374400195591112207601251665011436589157399177842053234333072664619582724157551207811262653620550249102845961006143228954004502202199538608953994308430284894965972068044107391043982409087451715796144921060428265181214492405650606217189081826416162048179227894197361231007520809139479997630085235732483545362298156315476343235453909988517167012707721107464938134030853649025325923589998267094869891557789619855619452713813455158147127032187926404459871872815024557834056256596400998520031484365300468011523740217712354628760492763074679233854692236293061394541045356482765259585444503880783587011029316019072247091757000526565907454360174551283525401526785048308535457419148920246366451589626828585148409481775184651758198920661663146796229094345312440191711844730993462305534882602216040367561011686371349612758590394153016065200490916263345590967302520198651356638218874358683083523710151149635768291068482216445144801033557420703459929816617511993801279767443960043714464699548765548130532053301027667084782094463832223918841426378124317614374964413049539170278057542870460039845936781290319376080059321960844407046387656233928888458578942711199039777471572100477991277997304532811071495331401534185936457627512011291081152569523185918529966091649873740586163493425897158910382547425792392549356454596674123019193677658714259299850928766732075057389981670010604133968926808448090748082055282446272811602461888955096728760593390002524965934909404854871176085131649618334938090398917176390364377586071502195223591043698813857058908657041065057097939762806894209231426129079982747845185759834920676193531400305259401754611218896428619265873899469046295186530220028434843137441151521777196767026207593957405117228428262388591844171348049433942168170989806901208015966988402558460748740445753341245320479737181726213385779406197507879096414029197167766373124327448290355350301331644915533640846891221228812032036988773705929517704159686341355589710965675248613097076822417452371446599352070959952523232048309384736370756509013682614326092698919311272160783413122871388730388919045847534931254262021454828491637515908977288609933242636611963859934865147497784859657464248651826132169184733213765493800011136312909873347077572081529879923968075546623571380317350346894471734328142940625738113524482588276120281686989437287427164032688373772446595333401468319175556582314405452062993518710074638837578564552695210330998289169704264171464024887846396688999723335216006003815124266488714248436451018172510582922112422566335313093302617306164062862814842654833551473576932912500885711024993778484293060527346451433996322565339747973793413620467824125700923205985692408441626939113862826371288759743436110708693189773035592450180128734124357030437511154891480478637566056329144651202015605428491290285823238547033959569457112698362833244216934625503177391793352434327531481743552328928626809819496553958220918913863539479384840249976392723529921425471357691412844561610007470132015922682949158789070264851753835972164542653128303602744932407432430234089008377488211785789066197789458347471427487590543895748788377004351517660613081355688488798412695488589898130497101029575012405827852179404311337706941584771272129708030474440094900784087473024225031813209119187359821320034682878383248858785582382398565799791920255719768837123461261345629493989523402579921681467914455340868605436672391962417500750757618653917065202935572660167904459625092171050996591620988284288283195466180156503663715070071382297242052532544152600899528696823353409808695908862824244485104866499025522212935006840637554749181573964552704873878136594122526737598772867022654833578103966507000266457123578469457162023287949595680263194402573839044016820430361881664560929706296857821597985770345564859207101000664619937066942885548810128449914481006784553556088840279428140094882336436292133751080931574561198993845474818325917933690785776469244153887179160898605145440177612640077931518801432783783952796123758025464433026451462198128210952713400930857937797735181337216285895737226298406220533320709259680884777887874238234242913826272473480530087516574757509208764641007870816156971811038051407666419343210228825201349121192761331540822552187133191433000488720850833448485756722115056456188573969271466738984314739135910710245096574690488718684999275045356668012621803938578541753349194498827751816127913532047629900405006883024393050994682485195071522663363833111026002570678249473071008261491389306844819095272272276750473358411371788112841184349874095505434076532403035948677226828879441119736767021023148930905846762605765336605447207703504927485099192396745916948057444466278645761229761613623035249810642443785952823360575462174012442080865974245994564810830240993420568129098313768085499038888657913060096798966417992648341219608174225832189029057137940444271703615904275973415560851753689563433438003529527924442313466313021548245903258889978033832912770214516956948755582323049251609724023987359442263047980863002005165892712920309505177620394174181840676997755774737691896372109450575655447711167188297091952671658630788707266626870731400018147421242322976275012205499266502333547126358981018778906988984262327547324423412265712375360324161794677584072916930341470780916004425220097421428730944703668688807844860217684941810715770396110199272363463036094779346123371424982719158475152230200007435352513531033516973295199466719851537429668247038132333057065670903718518951976919342050817490114061544670835839988464691124012286645433113562685502782986957354833585078910731133378424678410226366073344144310173085958936532854318699705819940075524505287308232166797417400769230005824244240958123308503645653581733379044874853189191122768213274426784273796575730704442744368618218999914752155524827619263935442268081350150198154241987357674159384904356592307665091527499660836107844492226412866906102814399102208093540085452587299079618580644671696901815357519624104465336712580597210737480221461463180353833020408194798099248509093302057301169187019091820807833824828926308439461347850047242939534237776153846670770020849869830125339510023617061554061957602146445270909911652788403929564820269617022671874329953861462160779693390567148102342953070684768512654578308165635815910803186724553470766561612171878751169755807533483126399526101698300566984658084917530338459505386418379780146799914536002310673707620516515632845661909854001038411689335164021424351620662810019691061907434568968428635799567479522785097285623829523225058594890787421248081165252477768400216745272203399929808758705397676242890033735007406912775019186718959323891756474161031082803659640170359482902726580631155107961670453196929700444650412241202609499957705134257625289910581489029925238363719150113283988643693115542231769351642838711228468745367078816681240668741003347141908751740681684817246342217751879237619897353492857901885985982718335587419643498653777649704022508260234379234756907753362976883805823178843083557985648100758507538740394924377176226134478033786959709429017150165565804454504535253484401415384961985984114929408840609041143667775838455596726269553462622739994973687566032296860299187894905271308677618626429585707273277632343815056834473449632742391117998394904372964445070914351951460617391478620154556167623948279126778345381363531341339628221104729943328479098603896115325384331944965543646809152206218758490201070338598130842394080733486573508069945083589649263424980864111065300513736889070374823641536966566229332133994041230549221575996030823057557276460484134490181390071220795254960217371737018183030354572114261121963940492549585971080029041420191684286256065362767718573231736225167001636780848878327156625462503255437155605415020188907965837085264847694683273163339608735924211600449995700811735885782578899178787159737570091795807011776079797982383968084234275241290017726304517124412204479367399044679923355516048173134374153630603533889433609207890080111344871870642496774660419963538864561270299839643923880253527375369841948895603894918131006129889061397017159324364798251400007623730291313758260670414159669088169810002704774229889163731084734476991335256334737666970654516005860083493974245406541639212242092844568782706218841980051402004859770024362640885096821561653643292730277260326437591048672657733134521059731375048736619249834047815988187103961358337621608225768942822773269398085879348722554280878795634275114266010548156046667490786171836722290967373298564095968907912732336174613523668473576341060757722688760719572716160072662952585870787450331947796667802786277833577486803972582753690282465527545236471628981219306524780239501883976117951357019715766429751975892495692885736602922182736238985043975624087557317353635947308724539627453026321695409676413486113838783237857235718585894732694292464135998496120879790645209167131201705259750820625208378343491377503616003457543344844684353869267694464531898181998724004926789812345754029053962085196474296099327659324674484222293325281100530364507125479483964582192981287785328344316009296824369839274743222048175285805720869657339349319146998969838914807833918398330435913572349586868929037433786196622618446849493884496297796781802528452964049094300799773428808513359600450466842754369591962821870248910177229996195744045902062398896742129625037312969344522881156904449946622623128805938495174527992848207265103228106515974063982444738941978627357993349107422711590255418497856347679353016794542344306813073485379297724548151941047658609720597046052753343729384498314886224449690735451928392236994075543042017403665185212546576193410235541966122472155085540916456181384928566797145040016126481243686993532962983858950048593349186104821304684100790378434806142486622129780563833746232853161817490746219627735233727935270079794764905169354437035176486814246556228900660024058010262426604324032129541762265280867653445470124801685278339595460994593080988312386603573149924769833819305290664830216305149854276862994156929120581438413626309526465168962441841489200527589756967031824601632975385174838167410287902087354180573892351736257289315647632291912645542854851190886153220753235656203659608778103655248298264856268092529159114156786663744101011924130366565853892093384693483160785694879559681099574988793035836387355377403258248926107257570766095872704815462632195504320859793895779175213334127786019618788189946557721986079527638785389585086631155904294519090692189078985606546654239492906316460440082486361625249431338904916495796735195538934572229886085051956146748943859835411651196046518173537636121956582798499873593906371814413061669716116356325536315464841685719221141497669559385433669358571868992369347542873895446494797818096094848218702903247080861684028549109763091088812274051560118568279194348693314953325148092768475443063585731784671092606166398902274286928260883940567846146533445823786057356878109929415552552813304763250841515586592923202309772974619703819847147075607099372995125744411390380362622597142610806468453953768481627895072935725887625558315989076881387765063361097019849785595487671086625244560498467713071957184131706012018268361930878965264676203362878149827932388838835514645430630129446613172764148856060137457972889934738010547755306065895833910291280643122706415379738638633820422612447794649340909586860607186969013616669638562339369250632792711282453896982486307418044769773113200150285650571619745325859424191033704052794768056508112574835888799583280699577493141591632978367206220356964694401651844759765519434626193871099380604394619078517611340613060057475556665464517695334528073443027921407964657697475530736661384380460595123038032643578436250054592639389914488347702172209579559145039937781469843026379674933004300904888398530272046248570446501751364183011778491145387949792426480581160089337654193931461219566945963369313154537273661184143304819571852406522355265074410079360677415039999762691369920601681564391103425427576319159090150942856458906611330939585998085951036548060890544709992510460724347371867713788083321702330117467066659102891390095052084588271274424837140293528451898600602519883819889622387538066112215115857767630423269728812855626727384533813249357169203670118070013294686120473009305640394670572397117050866844985195729397397555221962558001824494518353424698882547999946481702616947834991888303343220041502484678223030820997834226739272259334321631893962544021090174450834123910538157125273989910212065906646387237499183471603262216160241911381755761997487254399881673422333495455480645061656768616907940741334740139128207756549312196508194550482478924626932024023417312610862318147067203443640129364771812960993357692272441827756086146617173997670494010829994806161533147055264751709197206938058941796007274372317028026743101688024638135253875394936512249589030775941224876936059907478030697543011270673712023353085582255008206133472911179011662770632399335236848012419452439422564775576178511010838998595946844412687286762826427884704806623803668947523838918906404644734135701566104794709376362181335129536889172647821850687859109384525295173315133095307007339789718887615772660578539921178181065150190734562961622560912827121727263482546702013005572608036934525410172563567590995836555801054750914921597793456693951215736719482630431678388611809950908862135220669852071449685311737138953574835871658406094929369176871661431672247554788078546348155767162552658408239727454432613857128948405903062271308376166687524813362385041906319884500059594443636894042422493153824385663072598751442465214576868077450310808597242591527837849313322998377523191713600594348750741233937825634774279541813193871233024894908000492590021033603951237849098188481577684699234804364904318732569416201462387300379837335943453488624089357603853044119045834908379000963072559916475973066283100085125736805769464820241662568344071563746115145466873808831588944357848942395370437402691293472719344630456990731904224453197092535333190263953795073009490314987582016619170693083258372292555410799465446043358722735658323937876344063956149753530388033807723808324971218774786032194827572643393023078470747322028812490621874461988932341451645021006846460888839748039821379412359304884219858730506147437666218725686205358536722467715052657987165389556440192458691998833876217630726663776145774998752388926755008419682064785218474718665294729005116001717577962130675625647656292864968157143178470600819518749638659682480963392203810907650793495071197355953747618821457070003823730869644708899898125622549321118636143698106845518630805061582316026329499675689743764158075657622639451005434090123235228510565390807706808853170261516774107903338440175303175451597315280885330864752640245148950737891603628167458283071015775105015271683304788805088572370681219107948858400860068592358966466085919772293901995401687468324189809387810924919416479273574995254807248248655042613651181667207771893542138820592272390054835042886841781654120517799722208304694937527718780123821778113934444184147450743448012011311507307128310245557227362565945622426498009260936991726675127116600037356862118801589309300492096321758654252490006021719614391051196550072180181148783577295970272081192230384315815965468818366160170605888219773036493752633417769995440194705051966616188664185469439598362194151520687621468876074928549668575610676572507160914997162743903397524518222467900644169511898683095701253380011713366108856403599111584022599874466279873601446446451756268480103976556608218281737234057017429370171421400359383841632835180436552027794870895095086132369087831273938749525904933494310665998373905400039616313367128809226565011043006347752918351737028691230658408310911099707136307089980156606189435369426556230625466339291965905551320821141712405150201704412840465200759876555336731877097949783075420765704401348525535551954621823107974308002243040063498906041736948002339982266780941320453595654845090461897720829471926398950520349347392043442845279059141988637432291990347702360347455226576196704867388404351583278382280717417707427385916094001320502974216524581327979896406401210593332452949207889113262743352528912695108467400798393861070431209427552626266030460878456038298333453461929209255414262023207904233104841297876608373966954865035889057067605400781369574125205380021729656061810266361673305037199414209882979666984414936448114024551448902962171675133451199761495589920728413439265242952207789380197856468398609062499716490272386700721568666733436971647183587620816740923250261674060850390667587143909826136855372234965377219869365689534974730848002884516880453022179757625657096963347344222801867917049201038345438524712209709811704356157867986398373524524211684328034619380656810622088332071771705766754610973409026045083461317229277873388648233586104533532589282763438086326021166435557007259819045683973305591690817249819713986923180113408959563922815315863842852576258880850227837788851150814767670088311329933171810747726414503002631790471420132359512588009912117064058552900143351336175519385619326452249870218277632057648630300488439268199177610157237462470634210638730069080169064822869759031269293301397972337159074994490730346038106977724617081589654269308282683038113337181898302404020997527394699807929229389716864303649809361642324776554709910708931626030656136243505053885079076153643123602845963408698465743649183071505764480232195920651873571043294840638511036341375025354094598646300200792436643470957412537439260159212692927154901719602090296124850014646533155829586044821029724333039561892302102258868410688463652417661258745944349335160422617108049432071307832078471650220203058217176357912033607300521043204636297571740663568071345358467113362050524131553423975331545289933518196548016904730342464393186627898969771657971480527836035795283165424430197250574488960665156371951084600951491015698091077857711291502995349230653739449311894058679247813299452595662770130034382427415861358843527189647023571314228041114316077349185512465924803315028211402009835737514969345459819508702440179810752106324668711676822148109457445426534128536140462244948494481579916572981922211717009170565087535945100408317109646358109475716845835701102527742930876648625370617312761352033231827494050399229557757262999617503563181383908902842046850974748406299089210672282644440295928958076626323014958733076450381648966778142307522649470559404046919367037595465187902755608999725318771165138545403128174397106952561750278884372576565285800912807321592509172482881372142882591767978281496099473026913297079455347274985767752319992148307460287925842107553137067110305819276014432412808484826829520033382469810429384528940298473525154975320887080147951837223578288658981375224130452735256551610169268999067569487906006484663625139519307555224471819862039481160307597083272921534296999520501067878553560157940673179611386269439842501161171313231654598117921652544603823584352179574219742480245620086083198616711915311406803549714389097370002875520861673517128308067565899617156566630751303640672583347949839909059172976845017072254125619610759181627346133059312284608280993424001858426441508815057250646069574454287859971071855289817085628104299818869794661179773794192875229357359917999530495903809785773801342958465206457864124988767828258105651629056072035853477938190215720327844639763569235924051758216534430442014913307037599732837300198041241830558543701707938873061101054326967738273721614195847897862749146308400160001891120875146523238839776725426708998095967854093833906199831100552800169314167179033539771424894962879722069845095375393634224083390652203064321902721861210794333950158990502779639776790274598988792390107219359598658738095562306138778390301351733052034638486519166418650353006648864991097492686414535410701212802088349350823288263976910954942185374209365009577638406843720587469127817549154664103238388935101143372925451341464484397038596945908059459491585375843901859531330783714362354516328832585751860852828564422534023969496236466495363082929461663005901421282816010657022904827855153378026757944477114443736139616425598238195312089030104728141326941080949381532377882944815782458400389504655604233234719446965350709275704709729930022811422626968122904454501402554892847229570722724450439843769128536153364609849218270746081051856420861722218506411003277638330072833771333635035436127179736132233837730645768173459122304976823741663637980234864431305104631724420252865107317849276349748105266931316892917852281684217609284064663315808410855927366807793233783498640726937107466048099050223409090592000159519944478904421711095085008903457243218619034336122894713229788370414102228768466858272614184228819812001394613975448044288190216735368771671731199935521196314120793734909181225092563666829623174427417193125220271689968992687273492619099718441201313200580044650499455500936969758130381238711274473111339702784351983198697469966698722519105934599698461853831594195589909255070073115505068424573696371097037351371997437296577945692987795102049648083602290088175436218169861264817060860922745865246335170988661170679272064860445168975504218484595919891609387978877532282305870492291537490861172284598320857201765641821340588649998143795624815600558892470707007422608419062724455799609429234110065638117923621482171180953258731868608073867917474469292482777420362614093068848269889635137220820840242137296873483287526620188412848599934356766036421152513501138765989462709904076880847845339369137187780875317821112211689487797490325326764969961062391600355280337037612357628787642087814425573063069083242002769909891029950208073043068503821187672832051397253874276297625473664774501367233185812372133479658978293340090959402409541567534284716688412921037551775767610200755756829878465233550983990156134584411456713034163278957794252732191640778278992221298305277971873447799800594277609343847659569726033730271491784885412658889541476664390378375601111319062253062143092600562880923306299847850024588792955213441956440958595447595277537549390370181691164398048629444592745218953191119713360571496668660715112542719221279412838934738296536913015357047162994451804206141818442497954418464755165921852438940378329375585649577124172726916493674594954003703104813096916212576862623683499664867801185150029155498228344694189128805958673826406556908966184258360394294172030308356676912337281465951338060030956754679853157964819189393177267708268368412701337849777778137960104849318142685063304183073699989956489267827990079190565350002691192676365367109356231898716292063834561164746612946422936590122956097765264819249824717059426206957168409849317258403906304287742438784327482180530537806693392984518513677275765498906919480254424507664547889048042319229966154347430765616606783642416905893983689728858653386685527254708188264607451702033488001771052070387606184072701939879714793684099542015419568835904345482297561034836947165730959979248758559438646718373880632525865754306115991935413296930895294894387666223643306357547110875007268702290380215849375116812946417404819000625682342971434552995490789457707508278617005661413885235270365893188840304368128462167994572944127784708581517439025915755494351391049688012781581533051355852994750281807651736844899157424912818708498424663990977600145839525958920325084693587104370360778688439145550536053833284799877814613784945346862430650090753740025107883471492561729220161558555404027866523752594277258089303845859680974769971342805258599629220646364205108864825143026506903619623066493901313848846773134734039624878647416731729223516611510484545277643734217289635783535041029173778740870945193695568689201171251077972775545000564522519085110998883158037217596994083028951902225058427238289867549463631207680652939477853700974192251181799054369575838496973732271542097687774486241297224213439457369769879991792824242388325963501445018501144425566553157139784085148054091148000589213655819638771650563357718078846983979448945935986798486484180636799220314098032202018025263267538589146189259092183834713061122730089684916175836659119313423382940604391377075137191957016236514113034667482586092200898250160791401655063366275502400025238533165920162654094207577213162972483008603798282023743570419910292712315126741642190596397062487267526423765001310734023603556918305345702016318778709330537778123841895250844558630131372914630210877311933042516380798936400140336401391195202187324195445326319227957841406311380431291274742397768997026968593013671433661617127906470939090043979800015217119433964382597044668990786625996239085385643014638689074275393723234868266449257538943870238398463540736110515968389726921510602680932328948493772598526357947619322588750646043148725221705337740178040625732242610843620205987291909468906832885842818980602246278963375352880935620314067675414315345701958228104716488892848273925640554758442975953037121981198480087970814295638463626552644176644430665946848746334269219875033598108809841406613557008731094290072807629024265389147778295014535475526863405558450818727708846859530400998563087351910877129245973472977301280916186159495284608063051573938060009517356070103220700337739616246965039707679481135327103014657172718878695171814313276866598902549003142268000938038086139789540780068903738509855122966797554346810338037316987674894642130250926635173422453968411415840459326263149977971008902884636555459361582527492268331906975537265587956496984131714201511997202187863856766783281777407775466301895483197921274212566974705687671541403056255450061503130398943227649872808596530379383104713169932304675865153730526036542767923389077863853620895810934924684035854529035859051490255370416523137710697446015862045306145840241373409479368234161041168196226293190582072630770817568739661639550931327080855790804344423791379708621271897117632152962305489125871564751352382094755301396554477994259135322673762129109317516078272516731370880981410061132269354935171764222423270265601182090323828138629335450744725409712570381089764276814091759723338120679330395967900136113235256113335661786347492770294975763480147908057423609467858295385413857014413142447194684953884941922668177653800589990773531173776518478371444382590402812732372228404891691773926929140716525132929920334932430921658051028654933035527054909221299040125322150464373491513062835466282421557581421671904347770012536629240935069003012286952419298837847285486156206281948059130344261694367240646850061336893061496835284421732690799511192839311284682638586565701077438610041667324184454045752652332618841674002901655963159351420377899569349339718714461841534816730161862660999340812926300961236722917864250646239844207202856045854435778430552052379643509494833733070928337467093142185635174715221377285165413619729223840216040706339799904129774506185883136671558763089378848519103357490478717819244917880960404928592907981674335641208405146935920686078677652623561760905458279353731542560817165907292280311660833695785344686338908564253923896477518486922052929494303034221181516950339069888084140232516254179770984934710001521885548180359548541082777822798929671232654213792455511260576583932634618275035676532837313709319831282749324031783608024985235813194604128294785138706496340447081823388269176471815006655843270917469556801013855353519875794624483611759956950424935399344807585431156816659227574003201755729974743846629661054379063910149665442359238352945100831448678515362811270343314026600965444732370052657749522782993802773358437025034000132255493578980177010640486715354640031994569550271610928354102532213348304688046598054433217252340394342428060985633516288249286050077340238592882031138558465408639189779097892802696612164054106255990319137743012713223301028032925235903704456797803562234311700418273521395062480051475532752793827947599796667698974711438413389619156770468905110108839027761659879663618542976589392021701291118970331609745634131422917792677462636364015459938992421074016395185339218247857360010629089155487219747308185096646242955486833404397494401143591878971962260596707195330185034848743774444165258202700784271535422676428526142403485047833893712382158267902592951546717114100050450208109595451801700056151207876276715560832025420368082447742379016443875757263727283161233198121291522772925745401417743622790582126971095912833055471956198373687396075355113754291041669395130945220453968126959491419322187272782097922356162999006554042041952764115854834811280718153335764052021506696882265626132401018187935380473471809605205857205256273107605775254345209359444383687783444971653894386493805578903092886030767871598189795977842581394594105746823688114443443406025358155609923990362909629243772283107102237015693532640374823637096744261578810244398189855140134585486323328055194986076359519662339448236722860973207830047576501184226998697672540452719531547577059839775796973823439441398997239933213611462187405310740515041636960513624654560790380681225206831243792498326363967626190412578981085858931092382004091801963574603307644077886541590052079346548003555475363040970012101952396633220024211063170243718621431160723936384358717101283445847912863266638005669459151002668612675732498940648915452395158414967655372843850249362939892256979915916618444437972004241580025036897673179414904220226678778062940040858825780346234975832564985927022841880508366185942720461112443051027009939036126180513333646919378997349682265143825127575457325949441334644859785475839463043525880799068708373234888839049875350905813723894176862542542484772845157956966657858653370672555345226108919032375951702506645540253134481937081371450448433019626121195064506917916772382544614124969233469328462428789065014964242199246893919606649722468880626676713045039059463914505129719303623065387453351949567981135434429001785746190629424034132528612719255032560312346415600015622361097444309882415510380212537961393219778641734652271395112464719964345923990290984019119321039220564764383483521111909008933604631514245001807948177183895429912742452195093895546385865970145981908169590369438885745156807434425003719500225108542187210988468754787232367924916250903128525255859496957136390486850233785246159152973782589413712297332597610398493647880291211496080730567993053000125046041507433863779456710419628137016508592114644345580105561331566953333461011726872755139359221725895851379505821090744943755392823549250969505470807166547689771630135717369521277155394108486215115282352903540617860678632258450877539553175720559408249131565765209532706705359399334152224401673664014237915046881671805576351739724298366588215610065254300807757973850457711171623131390124857325099000691104389343432570434026136591435984353989193165845427358116683147707387795739098555033846288872722157123599796597078186265202948473957672434961927165086668197374299563088813677188007580450570297829436288252200841030736055863127343018741197967390629246977514805940732611445137151047559875705752762308941009284222722884306104947186893618136564078861768613755344256258684899685883952106368918361265383640017189920537494619866487530200458696175786802791179821268873283163341257620243420433729912282389267321440404928498691404027049943561871527235032406907355916112952443226616183384727521750741428581990917299538072784466731624418624919564929347130603416629156193206019147054829500882589416885828581797774928209682472964083977262585856057079664100114707441558057490419725347768294676226667835766599694968158747192836514677208440284565049849727308158033137260678924890429003194080367150474669167008376148132792929810433578111355473382063534017607046154433385655008605005654454296425810091580960214437632738948453854281668159458956097083583311593431200406147102547208700378801965265790196034195154241784733290098005645364562018124154960444174307644644997503613715670264196702272092077553459207335577431571409810119480078836822002971992603521321958181244215197438354696657366296568965343950194501785276953184895661730525092245559086125654180672600197612203281572457274556058110081111015021683032806481442842469245033161305902789491144606634574759160829570884705463285832167731110222797438207056949852988679185989363274975584209925091215401986686282232608480124847378546775863101434755195220273974307066819972025371346482452090683238774370966255184961232992056601699726361145486781904100396957827232257886323667014877409186635930063834215012522847093351286367550854484291960689625766724935272919745515310752865844125281008881262877074864958735610856158066500111050899854516136008277932989411120524244666244649031357373490731854132845259493359494550552271517471136554438211371461700509969019927677762621817385809351591331049745381802289812172444616380602552671295732496829879515655201232139529142372309498731217498005891085347701191585843952217097636370398692086559121182283877612317416257653065648088250237471856491020031291499485182971984421330413446274706523746943060760299957486747894304918790355349998723554960759763216030870469473386313755789810645101668878276802943570162413757859915822744232113115172690241999318903571979794351452105558748707198800198183169789182939203914396945761679229276869152020564407849849840085787005062484616659153772591632489847404426038269555965231164249328523977486793232162504170326234469597833646013713177129171663141784718168631078486904722118906669388425120561012803386736573593276474220935407212185811717575879913102103883180542624697578855432933321291765408278566462053429162813412034747215349678330321374423920255886360070628479758346223904024445608636027430058724460641932528353023474863456337388585096017928031396714587274092045385850232900920068972963896340153881347233140809463829501549052150655745275986573149917311300014571198809277388207073641898067061754902149222821152430430627937093861846675546473862711814887811037747907476264003147927852987946779841870085537768268847880057182847690411873037871022825909225456425588831514886947084999223948269333072930752462647301745313300736581646011941041137118558839957573064104288423428973744572027678839116061121332308923647634445477269989564094039149751359993819138946834057684119018228163306364272350139726986381310170222064695181162082461085627876658253284541728056918065191781725077284203813648915073958012370407816451609563520579666300208283831375777365258560234674740933509126925672394802843022834433410933445371247013125651786871898890260643985961017441164291832644186480004603856778996327533547455429390389243731338111664495681356378687774202444075501412027849893148801702768061919570144012140797775531767648869313476256892324809697892258807253045092963809977926641856087084107201734625578497455215728763135817445750667965663311991546596257215426959329030742572645892509223552960819125441903501921490377736504583055987761642749461308493527469579665335217188499147750859057390376115398646649299043469085325067671340877785955897807954454636397455600181757554422182967166694739710190135398216166671285865211647731368450143492042815764215767377277942027544340348522157334540245422268528125291603986169796786960882268924424003506109897607184779989469246060627550423357463015711440958432522806306399233582903547218829964980629991707353362964270776273577666996388645840448895705984831191692199511064833359199272127381017740255754865575637439840095543327461295330723275813051583280765170724219240089969090777019765184077942256487743383319442153321613340218886148488989573624772276994564450134263565700997410304256170317454921117594402503205886292701114965312958219235465084754904307435424483722012106005752060296798000094121636681564425596873011186190582956680560964143291459476897572461455755020343287922811180556381331083966593601618315221019746732241976063334376891402590235328169969492430646388532876687467350578988461421640774087641360927183583541421001601885790099529830544656315016666600398734144280133519421741487762010682635938050708819289753691714126538754245500645523324926683652491476605107144911483312603083283319454243090923485460999840737944818365603494750572111530116388274672572795836751211507855052763861821902180053920294538785495669486098474849833637249664898797610033387694019466345055474659395309687608560814361734620916263423223489256003235626654642453970592790994691037678786286482556342875510366379371888683778597468859398816271369637434419938410756965662583720727180115823877318681244040436939120883856223028271181804110936475313703858734015379219465655318572906979258988295066986269701150047142872454667108566845198796010850560638779883505822127565052733717733907315539178363047603664947585541439172152441324298970368576260666108740260207896332772535159767424687447497290437007444533138636458011277565944826343662033963598030518638367485637194813076027356560154606274608509107423578731328066173579691844766940317337618985476114465654003705384300213003921029848564690558557035087507787438334231287834421827712390222194869880094364530938287049008955477618114660475149514168674645748312976045543557514303075517183658772482577491100694841132284488085145301572468124998261242114392945353487331138510160402736813942337616080377734105035568768324732937320260423640101726916062308874123018828011445238550867951222313714146890388046517295103927334853290014122651952842497692401351938443746302218562285273153538755899391451385162050574751720108418666138247537998704862895540763556076815108446142018230885440870681058664084582176305197300143681674222624542257687319596923317717690926281652046938061196921552223831116716654720862780901208629118419134810813213671647245389849821546280161365916174818704378375401101202891024185595708557442309659377998552620894121892772646451736377300557646706086251812714463395687318077379265746546156146589580083380157464249042438568107403240012853235366161156426895690173356973911969201887835055418748391586961543955462248483116593673678916457258073439062662341557829717348200312437382069682887581924782347615592635440489060374709767481000215109357614101520282876334804224112399369685075849911128080878288374631721218125467402618424619503323372455177830611059177528237786746752310940433263650207027712530762137656249141707356229158178644366010564046034737309868297416398463788684998501793481042114487116660499842845458327321639180404742832444961641927646357923174343012465863457617062240806370178254449785063861111533025987458237006269369112282558457759336958642223368958647969488085073156795921710163835377477887151229105185754159236862019516689391900512753786352851783694709630354785615587554471484555635936248731807739476793418806923729700324903742264310909505026074355116765471497745593153985312547715253671840571550359521269164319603803311597630170035323267950263357164190097534283537181709653214320467068548605117416519241574576990123606816355459362726839515512604405703669378301621520225426576917139268465016496828049482290595291309246649456317603988422131542085146736806354144821591500650728464272362171931259510309304388011295705312463977318593902233811657819609851200797364256067095086248100176588025846282304303235661466904155437467101199583821279255702648358711288520024459495018884674004344124564290075657663368969941761104357492489808215662747752003342505771948619009776389099441326056300157837675841566527237683243121637479159006817073589241613476729578881879027260721365754485927175592360714749656723084301329217356766102331840047000337306976448912730956330175824649178702980462234423187364633522405606368442652615273578636661507645047889989666401722559531744103341941210026494244623166846402834369912284307923963331496599011494007537006019524620236361762911827790793651417020003791145129735416282058089237597807145497598275962470783080062894740713223123606420274076562676815958311565987609999434039789386060301748748380276758884382657590606643280052835789310943206937815621783014646439548141817129011626324394119141739907535102101540819562416838210672678697734778395115680785836913599396571440932680004679176689609205643413713443532410403562944460948739669576389993095892099383098190526309472657999084402619455330686595066799165354569634610363844001965672750698157802347885229127317685831610046024530752410214699417791028736549637734082334952426722590426667199479891258777253002112780769344903068145989123619352276978099195585354662322525482468473515074863216984513712557957996131526216588489155316669325711493371099050287986210381902729871967612637929356699497435078401543002274117325498193423292319436190765164304543181131429708922689340547730276709322610453147784554402573404333719420849039646212353429848459472920059769240075935525965627128789530702596199909615129347261227265992315602582574260637538689053594005221069761960828483662200881241115547439324359506360765434565089820893596493074241379869353131868327217749891245171240708590371379796510134603420236090464530951903483152188630249665802229716269287799027708776178870634487864537692993250708074620172881703013490344319964462167336216416088587144464386911991719264800690024823549022246600308943996542965601645107515298839333123968329424768259213734534641748223480673270879873210368670944562028296690862166729900801823818553531887778791752091544369424179143410618284189024179579385845007134191838715443030748778353853620833724193783955406837349756103696557810482306202163789746313317539834420940184696570883919217107437424922799030206192566087828878818503851391681686311755026618892725405254588521167584300950932442862363671340059502292542716347413382138327773736417965281525186407078662951050025585715999784287134569982854171497105572098464062572824731738610953524754870465979346300577696671008590706005807593992843737300066654929733167969651411031591415803799435105567175182842016953192347400434813133904874470904751549836189872689603868311299766588703800732926013336734767321181736462574381403469643434243433419786390091687009726118386743410754551395991998791824140309935535672082975884906210570833820214976436306778788646527447879559221901912431924411950033894398060699804205463759120545528890320976002340026848607543056541713766753803397691440708177881544854496871848472209773413857361430884777941711067752298026704302041433793045756677412715250068658795858060527748536641944008708260202535961896931686024463466402766498605285893282167918657931198491455781955266267374095544863050693072446688279109941634068835745469296561452047091753182125304225882693885679306774551756226265376740796706496288559970275174949357335563819473088769369219609639120060376971499252024056368557355929215495067030181305467282062680059468977325969603095898409424397954230132828467286593354676780624526759867748396807354127944730125327658183918693187200547089978964818745752493740895815693389090986684371725313297730743758507595206951808254623040201359762370832682576002069792237841037496259728342113794096732422071573058116692296974743406851545613702088550265081281402269596283119761990289314347873251323864199516169332923297458183447460826492480696011631893487904325266142036764675238249716821716259884646796936364421902878787266980061796056746699057851171287664286929913672488132160762748905467664326819398197964973669104593927118356951799681000233234828009635205309301153869284770892226604756303725208502373240404029814317976417082810186044512850877097700906988690526455836636891125521963823781287742643648384526062317122173089379259875222033149441962623848178432710798437815635792875601922992828558174662450794680599073342788454389180876972002170531402492882690118481433663293611167129887894177998913426461792660952095654368200802670175594585610485887083737393546183629499011222154386583620201009453089388452799849462244169200243918233370456277262820211217480121968682382747781296774731717095879996750202788313237086449152870573934228226697248909437146027774823647013420045046744055988463954551574415307995287826265550641316065121332883601482050143201631931924646619172769715704715373639205561657399003705254302124659582190514648819917324809203360769693814442487945362734315287735486068795377655416348354459501766589455863564724215323445842714472560439482405160880140165715587735115403653071466918453047606544741636931596416068419861869872261426034424889930077108056087448751327058179914700633722938709128406011276670764017694479349029444512916252162708054486218457719362345045320868904200921429994548639647510939822528515889950839626798646467364994256345317496075806807821661928315505233344138897775705808640609198599492154320849086898649434819421641871663312903525559745835625300503167213149310913256404348945716114516478456012889011920768427220410226885210819418388844710111047883020495291435553703743345808850762824162233677832402219360246614291239281358425731191599468449941282473776466205860336636515700306707396636416598453415370054097410791289633799267012946206574934401265208087769025969298937036200869436341699557468441758861107049759383897348835879482586234207385218069093163419304730916112230554152800900052913971070747471081439024696717127950936743367683544090371207277427206270605117170314143420048758663372714534891005956347092755810636556971545744901930210393157588986879659326146505044920717270230227346655972194899650390927765251872663772522809855615821668077670638892330392940049380582385471028138554639593647026242822476847447897807557123955391058619447311303431555590809048780997741628455175923079694147886716139923823213617402191457556974674303285223324007555857913594780087068245036379977458302817252031576813907326152900443364706820405185547144853722096383482044244396749646527000876432988127257229214719533616879308668648781145770219588361361037931924460290702525776351921983308509235549504010947141782045826534980051840605111400519778362757284717532032380140434880428918581020440010195051546565488936710769879669467688916858568645820083041450301053002412205630217686021766071431034468358501300610770865103188070354825746803431500783089221444786666356681387448205922688281487949263186136729767191808069349020700109244299387554589649354380814925189863922415746270106049457892269710635881724781370642212806665796883826007460386222389641792286341225640181089007624366667049182631494875898299172970079103120672398524890097399476583342018412311799654814342459511962503196127567467313054943293082711463881947436769508097493983975185517194630750416350949909301072726309118415734855076292081552351390029365362285294548958232917216359301098129839967932666665037999441827516780295613536011951306061317770279520615416370714130027639982228811513709513255016336482541006819573058675451765143671155921733326664875019070396851197552866747423455861496449225339064329896246087486557874352815468157789676976615928324894969629353134715805326509542470698386006808363055154035541547801573848611707368986584459776254579425941932813135366859027727560946644133999105231659483730628512694689314357727496605205750968123239593311698662541113652858946580300016341275829672032555565664372157351009983318480933591159361665226616739660538075508090495031133461742610728466093654797471527318092366945139510205986287772258143798476439871510151702910674682626859379891072397690693981251675703606901211348449037214763531608789507100186897774938926041067894062341885766514425371672073183239792335258041953058399784887625782205143607028150345056029921404679580849274248821332373100998802744521656806891543745834428243511640857777485711019650894414988594131112141753015831315389161763265940941228545723957256921424643194451174428842011258013930010628758065745202703012424204356022468494646323831854220844312718029644306416595064089889514230554295392855408742389822481966644855766418031145279940265088482866927926650258321145234515969354647411425925330414125307476191913485664092574954350772423240262441212740663854277663195977489628937867695665088669979758970469842783910640452152195163944526291148606036537292526399485182990303942622273175044997584185646606147429786158532112125403553516294155231634281496028877162977622559171219083068362093321818982834074261477189161036883648144479547506207402644357819804339805066531618268459889632064805366616402025337501789517609255728318885824861162556288953253866880119617905516296613579656827786808996895887321551988491661368591373655193565017195893793210255551101099497937219203840547724918534212311700112505782028180885525003675372423871764590011726471742623272110144687026304551844989332815777342560796177536964162470200201805333357489107258912972399767640022317676861572646000713265524372268300594100208118167936775770333410861995363413398277472882806906798836064034474739593709952497939948128393461809017990098366035127898431622164075517061273271297914724441994038658057973751493374477879679423236419964672049318645879052559691079974242000793407622028547044965900952832979119357848211549591162254360389348784130756849000314122887487425995330945336512507173070830219894762029837047259634107732667946939050821973639906204585535156793348350559933959591617346183335192123110638275019690746028642294095963987089420469660331435691533174022338856753137751994363382984097830607064072493267791116959964026451572591545586959035402081320319194716180001446226212286419497271642652203627506284602430873908757762144065965307173239539792023420782106778296595031581523011694349919756908346340211137807858742962920996362701831732719283487994115576350449203183735053884064703737950847416173207659185552329044631807216209911659372948840059593551068147176777343520118711224885903560003130131916034840869611815129763811670698682601036545931626094536194801228604302080887140468509865340617692233905274217486933851524129835433653634769271440275857474074294129518138536280430284717365524822603875659571482194575136395558021343930181825028592033955213288710536928570425560684226907719068913197606128429556522679408191103376335432133713947619675137329215964490143130071063082262563412687153138369025260718126760919433130833567424211063606019667744944055399094783844745329407470022811444223214779646785777528359098195955744607347063499290376851323043682935140312371048625331629992602993092804416558386073506401390435133852820863376353378916027518940388606434900897964622574389568033220338681320919538972149530402077683708354039255123730210327413996578332402644777051774135959532267584545151065342968761807113594425136560916635385128156171202336772274798164803191814262039920835998305299052456476156052309078912454065994561960653121879273888518652995192846864181636508963983397935777300118864832630437100893260001551112463679320047562890009897569384352910911806747066890150463190612331912714154973752553838948221305102561590041791633222924495498720696901085462663727118606042817750135208905412363567610591072038922428753832994362521497695646801078897855060057162324988106673318838864504100032469801180757887751817375273917993934875295480504335563680653964477898937997374396773156762094675336502019314339193179905731300590308453826707860916123216122460758031224860268396448862526989040230320669316151715757901616331690897522832051426697507452746529383506338593071987389502603685724312180098982594892292562010812800484939779676924891559107156799489036663205882662028489576504640516390865585087390833829032679973089519515616755654716443069488120471328368070601010606752422798952190432361127961812288285949770239499951193045652737841924158866921683667628350391396958336408020516122605977517351816082306133819947465873082137066590732265623532463290738722698138623738862167413992094250333627007067262903792411593365493115966604125238450211908465687809044975640179449078894480509736750052012853823758840871317049562444525009255040985581231430091176697681915409199934779432141754209100475605231416033035353684511763994533194022384962700497826628815394141212002569299816883111173644431884996339262842174146856831488576318381184307611955631775985744292762863827923734240667545348790214246672529641146840907386193163965920592438901169615676596142576283140898551267778109013483916817146029733178712411164663358070227928339494124280488327422377528222713917980511765266867016634845566895225298737793323149958900842023454730830388395163355944555062790158362968114522446440017264557621110812074031712128507477398347860592658107396689534951716805735829511736384253446451981575581838692292511431860554737885671675165432638678844666303689353854054514461327355758315140586111964169986319089509336866989251135117522853056720460392165753201465363525980037824337086882264080879529887190009917147521408308071800815988589003613520359990184833675459747690962010495988444707503489922373158799896869659893025234637818720698346359777276535117261604955757963568442544582017843733264417146886465846056651159791337889709256801830294103828984814587781477028123775195526083080440248255097981016764821036063668329898487354419938171880645934542137161353193991922980406787967964998332163064532327136260928443050682614242714033601885152369457365848559695732170017892116802844242844276965242524304888175087518396737003513920622780488152695107653029295537422333624522090977698121678198945197487615930299456934819144347202078156685172659250837594405483193579134556644197203308765700747306266439470740400869387203024457042786961651744765913570150634173439686090887621395457961487379093827388075466560460372180070416519939765717108475769179061073395804824973053958117222929115783960325464037464136078965810892286358105757929256420015748259318679412552265829592066236768404108574556474194990350666652162789912440038599563433919745122723477991367766111492344102492622955287511625545723377817455964963950093836765324784452827499345658114785193606867334308974288882790167183602379405994218232314660621635774783084166693184305741388906708314746667664493218150677298523630666899005304229975759235270823086041198199132239927533755536157914501697744266057884616651592115448821088402372959948861610614629064591778441822838587531000541345979254926424110264676544673685700343521629458198200433473101792985221397232377702776877605469387788973049024986797051911300620679657641647832213521554296229666160141691388734632211859184177820638409825477933723006867389230314003824765833245386692163315206990912784284891722322139397120830285457047521470319799029761453348293618465480189810048221256729148780843827865915370384498511422645880312774771581322466031327831169035800187566985292581216281041658572297725658899826757871274224573100626636954287880964735018063277147220096953838367955651923506354102599319975101205424594125705631764912097791371098677768927642253826676125882942611361490745738029743029288175667489089692502423170241204749624048491359938324909105059744040583528511097286255722523007663662580494972292131918835625570687398678013730692192036912081417894419812344346138540518870244039906655872370554553017721242761957048914543446733374669413440168587392078094759019125477506105558822512576519062931952544142056135243340241802737769921778951001739449207743622466076997156430418399338738912932686411779538088506092287306987784565980398465982374678723690587780853033324089487306744674334973055524977163513066355044702672018598713566680868286171752366359204955438956608660762360409438711673349898068647106779480332677964369512421133469080282271212813118379641448383647283959658564359526209959043234301165796156621712390817259450455175075773377348649593269262586489137665268629178674563979401293719388716310791472977225734249057927617142998100798201365261947437197229865392031375517112351335444730353341048290523874229250209195176594572405245064003567998199847933754224174851501243098136173448464263503218903730107590960165573178034669999823575268861181424812056508363034204459306515423174816660181614788271397247487844705871041567564818648892700459608595668291596944623715802000962342121204084277514167258284849365230880094326976063584021844010854611115887935381546592015292723003850438548845632509747897364119344542228913939191039123678386724413787890175482980384920754892370730873668805997246007909536761445414166695865033048982087501360789303808304833162913929102581095613424843034423091211274457870065768344333222438546466201165737160313931144451312329728302531393676581729044847282910640361886770167779098357766607440875891549508592239366545449528213585253045838056058019696049293228036787790214862384806357769508919581148648488020544573160666961701006242537985367463175565143668031892514425657805935142745875238683958140518556870657638534424788675909848251637651940500574506562689743901175830019928646526961414431318826393143971494687557519746728509493715910221222275212299517865942138713882999243542868334224732697324503659921884465318067236543568467175052368755103302338040875761839772018939928147276416876988173319938379565782139512906531437651517832569628154855266059955511519767759166726091334339082757081777739131993136665593737896731768685014251803129115692611658885007867707452797546020994090919157002726526797464100575910668958693867233243451184620457808334634666185935098898514595200122354222805166026223833382646511285958115865874374575951366150643945334407122051875837004751678580622495876573397054168686653083862839571297131648685017594653499717556549492151785302589722386227680057374004032345309757416565029205888601415316350060941761504362086344913312454836131670788929404121908838394480210321030870861588447005838035731256783218907659847519408513229929999899333808089739443692450808782797836977194840429129629313039971108502791946167287174527224805387803166715464531286246287294811489491930747858155603438904487184435450682419995960014714480331852451871526485395077843881110841563370163016633595592916238705156141624563624716733608432109104177355523999619155818957365348881119159069554728339976285800324482956703158542641858317206280914840031624610629152062544178530480645709072170786144666287829991124924557322922649615091755301119513404502964310524757100843803034547541310682394786134300226980035557047396401444132175236023209813066976327847858490243448507620387030102353442701595673124796013073484515623294090369966669272323279838048431864017891134762258637090230261018316944994313336363162319459757954881001629533285374489411423911529706875895255172801699488750226695538704870460299776234996030836257050855644627716544223021793466820137350202554813292162996107315392233406387631883427686371338484933882746639390385480544930231932067944403739083910791222821382341978300891893470376296627780310813302901749089630184169686945688321152803940614719997885345748674955392490053904646477169480541372352920295624275712375592152422783060884532887785795090523495271462110825041798192876918492558150634481209913857080347846442538437368725315261195279832594765814817509025310688293423571706419111691071863044222082628070205120609244262272353377364668768761230340129651514540497766655168246061414055942639907868170347518850639167976091893085304204209961287914420306701318845921711422571597156732655780481897447033705723114721291343889717846263363005259470186469288409043425141254026060450832635137137574748518780273117674102969900323374191854593243432378591326448364818617802429036095611108583989428843229700579145596410148803542633439354994834011570987578002743025931321174566271098473029717877897617655842355144766012584781016387812834376350860354453056736563880272538513061891352860276981227784575686162995984252377289484950634363013287568347056251860033879833401900477314598696738599252020072081716793305109917022770757001165945276038824438629994884410051975923646993220950380691196602568594056100824987683455873779396506634899711562511292991090416789132798702312252211520624870876820483706075848031712080434284839149719531971631500087842108929209412050129359450251601950623078168227314577351757195139887524397772299630579782845530264563973719126559936957028896332296710574874199477471532105653409612426828885764137497163354966588467875614160473035781611646612270009072185530061339934873266620691603928846000084487388643314901067232771414251928786377343385896278087402859127482162931982495161505905077061308572470545226044505886579763653964332988163649397915538104415057695355295562044131534021195088691160416215160221458588725044732092912637712195871176520936573419868369031337285755063863329376326128142677023034635351004199626795963077300571633493279772617122037553705864915651998158704417464993373226920632049391811565245948532993572410350091945175359862675034122581959037341907811284777517047717102242165727119902586744126487233383782680818610978486308745740449230405174656938606438614695413250518842547864039763543592274173388908974180571959929271224552153625553366773360203565541127928379112871293448008797801467679535716878407020869276816920156720492915677609369668936486568423701132314935191456423685727522525100941028915548194790510312192322381066264574481485823184087326613767461090322267663247961227274379936678866911694460710655866451483142648327921488845392922055580787130773527795289728629354696096383544588042498926323881081667854848565291635094311693732793740117966099296386189205618684111232735628326663546357068455988951765252537318432175936614719675229456262634865843651992406571636823970386184349919137737887267029926358666170214313194426794971437432194246091918341000035683186161557211155403851737740466264738500679439661064318391774656698207367573274725403551993151996167649601310980526348569101401985286800683700661825228831334623483364407960719168861342735991177375374412773250266465213465180147925175066289679196583561911725573513658316825232517714359512924121074846430090685257313294920264632806790329417884204407668504226978308923742795022357854828075701748896549079071777086955544899357833898390209883666667379834326126366013604499947900306428946163567676600488037618844036681515535643809547214182169049047331914278843937177671107380784524019103777580777277110719406893056021952819493932225675516318009094904579273993237717620766671633906323629462471156759744110089101354109828093246877083680060213098308824649027579675665631904243055758314642020003559363033149808741139714451929588512529408856943578260703677932380084245524048257681523285687684628951156320986039550044547215439061387263495000744370471111589695058324477629952128233924393027025840028533813503405899728497780853872690810272366736458199140472981632816586181603157762237039508666470532506015086977627979681103035755685264450249367318508190006458197509436982332504631411754368841418814742740553174123035940429984965440225399265715540112082556606353614559463909907789134932932934782084601026685493152977181661596814152070692989285945975024090540363189324696854979463451043466753634262366765950283166135600134344165643951274608870696007480960267989712570670962402597672472995033316035388272495128588194729992568623537776746062830472081082161242950506050081233095759845221227782909736117205771660747267129009005548148939649029382088331577745609417921503824481669902742144553008921684318557607427105521807847930911110473842580051214508677161172746694139091787749606364376081966707526916672877724063405684341808508663944054369573692733849822420854213740000370596812890734352154506029039827356036927499451659537077250329122518829229185107445484243159668374719811756757786473471512315437925401007822053732731014652947560384278448104366333050766310905126037779563093582910060550633785258587414326763964109144423452178365455781933861892601034922904817664016685256057838891278263222472087004740029741376337726684410719597707340536977919225105754621444371072455885737367942491138114416892680101999353442390897753342293131703796288571276286409031278448788746482324614674069479241288043403813841914946155023157855203605029796071408859244354631628488362600470310974311233688168502235629882089793430398339115670388302799543382426528182281134863438107249168991391350575975531395979996853762120793795518300929545868221353886995458268489584423107200109128023533546458988447411689873916600975589557914214118667625794405127067597633730064660180805377501187185489994705013755113886009544805146473111046060012840819194611708693398468304065990387888924377835204878677781930550978744341656472841265279945577608253794644792956574893642775701079736189913784828677967276695355212025929586483580168633687459796736138044950640361340322628564826886310670672569870505113636561287696871990862808672293595442437546296903000366396361126520149957853416682285087055741177041055726749295362777760106579587554469678486983056200821766453008943317626393839218810816353748559168872258866541188172113186339877194388831881607737937846475780313251393680486490686163778953360831274375539986291160883295881325594680623496852115699975222540311108777804448639902308011667269692716397676900927471184978127787215210631723589617193807065152807952675723520928764540287064641105407795558405743367560142816883196877427869475451096858159589151855142765442401602489248189982736098710110900274325911238755806402315915538963018286832407065665677191370413108729660089671796230751198452376182239677141107282239569751721146212515104982816293416109714532762975178079162431244309831676606497263785263500682071374275551830335033197334015124012929774361090853331691596050674182127629708538070428126796856425658547603445681961227794231011476346161905935663851506395508854151277177041733650801179127006040181710230967387919024596188888381996098185871615765394240314589417998070676951376700687054083963649719162667481994276628904308088521260357360852374767652257284287571029244045511998887157471318149395018947045915427827932400322545958805426327717430466339946579369344605898264365686220119093145707231235529948189265467649271503106659699528398573865875728601943703571245579141781767035723853690764410367638132331832723431701522055876049644856588877973092258633554868700811005147279090007555192578097121347482071307225280186838722496218219145486008697718595387968838947874869031941472787782977758895620569167280201815363343100501930064696687214181992010754545432219968207555774767891850360577474329281463226979896921750437682317925441980722904425790244897853648346798593449449864125474628915371397839781142812533614651296224939152435820634257068170019997671002834171217913932567636410197581944839510836144923660068673773932772820224036769141379014813056175595471852015524098635455868813855025741221588570926767759457975375768697987936468060561310677952716934592859984256206360504114122308230819046681713649242995807718103755893067081566598237455325910037950349135190387594795519958001362204369378681372056125029936231657040386289660153676431844678503767464567001120190607550562239344095646268726442353422998379697578825445850777016266048861334665651580815329592740687016310468193116756716684115338147988027219367324421813397635226910231977397284168571233538833752665298342535674752838375472500885966827736414762964486249414665607709486545771106660895473912933729419876843312363059130812021802824686110986910928389206989145445956234622402901458393198813959484290391777355614224666652443959891294652004386931872938146059199900926760965765973252876394903690994266573331230162998184989410679282176299902268243368303354645161719465308108306777049155941714000206900946891153590190921586731792043023980615212446986289833429965424303433505892527219707198377864933576008708621153385587304182963637637493633103943134690388040233550532824978460588338762237902730564880884059627825031926166793848200132820036741295405958593574039167851311551224264794525241785684388331334788052894285548542140864477509808825232360649049025290423377448056670264023827342879335087211035558888765340012383244229923489380920088110658409208879945764339123530803726080983629834941290592202067182335370756951741732652642030703537298734490890786704443384742069921183691997638336769509510269177851094167778063348982735762364124163766172536910086454942021146156755961372034248723346361337691832668635240388911202273771855163251349587403420904480428066841540991262982906910420781273608312345497729157665850529369790118353199895398131250801834815628602911185798928577592558927868488467782400414364342503935599762481346214930247034891301695065115747857255446944671472748155134538218580970066400608039474650498055354479862449300548894166050528025764583853659078301874928291835123207320674959481412121579246100467243173485328162849084960897870182168823278294763431573920451095920145831414603232344775557920945280311629415539270434063641486319011925620634783803148214286099902688913906332357013924615295583687940431477101881602884444408444640506009692694677060240639260810075491824826661684882874693804447409072323003866509175597708685206922300230068631760149075099669260501479423243716687149004409947323865989774244685527749051421179619889707248020914818257900313280720543353667090059498874133255429711316115440109933938700492625023124341937752432708285576427021490671258796546943310965104123399505421489980865906658151074791412986874750179383213840482733620183868782576040692643599915323020676984117755999418066533082127452092358425234044346019717596287339906725225360383425929436878786893875038984423278946068802192439092332196972826757516562077083532148855345557628080320416574229887576512130350853871435533589915749710406566074361865786348071168190155633731817581357134826178394462317712969853747676367213755206034488926116813346794625402854517892647298360973206782400387514320496329521498917965897353199856188499492266908149100033479780216027895195616008730612273972280248249031109232711909834742772208545920814937567742396887039313970000610751486974566529002811958799364182478506622845939069394039540447784686686956311461977764225632843154958236974603085781283613487083852438626716306446666284914479357357232628195571142786808479706648221301295481483902908125087266355385631546769631682605722953323505264347743057964694922085365747713595855792997268110456892215198939425599967851023820747551992823270232945787229355109872679604116377868023276212606750226842031729363192592643525190347445075676945328804762507344039449327913404713253411483052071531668301953556834759688742924882355545703402500591214927726379507844066455845976972307198143296836408054252255353221598773805011978177023491086803081918766971482004921904629613667784174260592877920467685773267294030408411101654199214525857987970150260658502448772871284721386400492962629188968487965194096868490837190493113701407291736324422120475276723329810798058279723730293482727150578551564990898668944526493987092956646228534921799838184254184290539174815417535990692864737067054153170846235459598516013226086668090524613332344115739093576647547876416719677596335290906781610848632247460463494204215118095573108980367328645715000805303579851499023100281163776522734521210877988947504974833324295791294973614008132599807376054539972369161461216739992399818510504802484161090679497630368175791859910065845079488714100985534487847923669050037179443569685261886962151127986340554224178597722520719775007536061258087491737342185905910935722534835964002697200372731711736586484491143831348632953804576199969485682034083513467455424815903911700830618394092416628572187076726275520258702845864108925492073464440247715456743419466431203753392653442893709943362844270853630626400897381541891648500878970325282182908389598419429015983105428402044869014947553698745236969274554547038705058242319580043464408675425767669033428361837167712163298941520075493942072621060293759187449092591146269438306760419113446945218398810639948143368003240129656260561112015067742770589993559280765396236317796486982369655032521735278238062335113099488933683889220113614288419021017020882051804112395433291118853295980587529601315501406410378447304998558294646609499989012124213113631532237461174442885393678971084087833002293621957158227948898537545279629740458260452228798716403242901911922788111978718707467963271020932176992623471642289660937577178557999530439179680597987727662029156245978049570908990109086873626107822833940982570675978668798453638293333621736284145983381415538668303009689905842182319875169490760290170421450770032629150851842632279425213050472571894172011276634702572780061603895831196424348970504066338630002047347709382785349643198766860452291018951904399612979440388824882933052473387829351318920211495552068483642741963939714563433048506361589956380169157479574855167611027308637308723790910063712325680863127071165458052936163508687536901468495385095103636252333966801721611926298471163228287525085040614903595721338302161387446431765356192328196211267127773685561173297432245980456892776014517231804825347025205575167163691691306884957195673243071070878627709282300737967069744112352411945206769990423478197139006433197125324315941767536855161401023592216501048334541377405257813995952464462358819958920103488575465312023533245574143553068874140062971691846019507693802057001199935724246164170609285301001854973944941338681366018100483642891218520959027578597607972190842933289082008621046824709737477025243552544228347171863920271782695170628111505640648388674433590580156627856997598870433116838475995466906187862908406963745937972306691656048412628764946760225939476180059745055657803701316367968267472166873353088902073695403768932468321649646806234228661409966970243221407432824160688813131204985554394512819441394501798262539046156592611868075857416387901355049435992808463003818222859642690710017436462071827390515552743089305183173651493184000972156424260044460418274223872547511889147123852496085267477726889488296101609135431583882026224032022272379490491082495690543262279502101630280502546103981804891564560473809257391763044149947602127991410242692400177535085291450383944799683311039982503576184078176358845532344441199068502371163871790011390643763815978872149768101205905174350126657359138121688066890386479702942705299685791579118794119864991417715333410405837222294541811704104654483339994520014079811833967323402012073057375248875292086407912507299536671367636041128954374153930107000601517794771440065643551427577647966176556296486655958885847485645926286486431680587009530791166801518565826280664785789441836033449293359387330870063883491166714589492579991316717318570090460118510985806626818360124365896809363602552596092431348808872590588697363555471601803210830819066043620460768542202839017388627639532321540188466213461858534579144722185878868542497272657158753011656255143222317248597083194038861411408869157667683636656756254744791319389154949604286776792468610040481180883994869636956882588156628435361045195130798116424583863774327984767630548670243487790581093252030232741416722217456388413873095406294746676651090391633733825648266239845837384546337620987329190170182923150295115578839004282047252292008067291786998828349756442581065032906814930389690678689363448274418787535071755057129284114859856223583699395587655188760610166852588914634965614719552563798754445628492193408808523223277800688541008366326693192361541780957904285359393881355570884491801565506338465564686723836545116503397469586069128173885018879591926038468935280220814725820340580324177929545340696891030342028916021082983689817764609093961401841875669982846724998638241455222040934395967160621046144032739491197107391852826260174191153359322664563514472474961209543983110332281919600940110242112581213358541911310165288039747073515185851353768119555316138144107365300976674670544558508192970197604328247837025009981549073243543812540329166812219525643616610394918581149510698797435248908765602418281772122871845131074467620104889255543491204584111025190980260879159715238411405950121828405006827369191115298466148566754887297948583173409327619358041633277850441408742059722518912719063311714206929595804556041751540409656204178540643341427428398120004636474627838318872915269363930280632239155367651519354056607384545751887787240099101579859094941544607949836698453536734825232705176868294667422054464259468215831540867175302942984988763488447994981592135549558965236610774393992242242930993053811713916618566858841224137566841709689744717816338786694351397513060289166725711819105658398145481753661282754412877616551895935873068235980305655641788435285099913517805720161078924437170887190974462229977315531293782741875775336938017425134423740785938872650419980557817390764164893836286482707122703415585443000961819201524143953073351982647663258100542650728972054663778586936761657495414333998820683785530319195080458044355585355039324299515217478682008719088009658270996100631750539197859051079874774810153251872211008530404311135143834292603893193908231338120713444089786081805623598302079587768527014320681591241922917672549967839013688179835442606928114614088656829969270370310383505129802186531456449223001404302134291382082751069642093212183581029631760870966209893516502683808410369170838350782755619961540563832007595777078344803603498591657532393418410518157150877378380253350020808034122325992433748363462451006007644107631193133276467579035472566106604659452039930699592764246576249150673797171644428829809589771882908061156984637218941369113589161293558272801885150927394674952324017721698111267603875329264337293499800234563325272645903767960468432762018491156471089329668529560927986689711065078374476273495933584201081871525570381945305142633511321825538747784844592803084529458547550279735213138920926181543834523340043384376770663614771171189717818845100059727243741150432869064774412508415827125704745246358792906392346408338322473463244908518502019713882922857616507497982624240030758597899147377449706436595396418289764463593710932715958471098671061256858190791606505462162155805077475885823512467858979084776424094506276741733835331373585260271816245718856385864233637354990656635770656864818871965965354109631175715698653843945537345932766461369668658293185808630629878716904557053918103140978167810271492942023580265935651807907801336645923434518426714607337703494728323097195632425766195850214884326536017944606684434246809306377615637112872340826909159204455298194777347123719758985031636798863053643386887351163866408879563476515642003131331132109075949365217472202087983316740820215771077116379334712539448516147989652707380754471765823904388947183383018443767461823198628652733564551182641919425677023633834204703630955826479575173513242875242160668587486241600254899446780980568411937502193731882013939003572413602686294874778580399218921201995178456968580593853442529525143984272431214317652867168661187609778338245436872884881486725240838441938585251779606929577185892919357536042782512658807788371878484155514336954291154979043624628366166039345935367384583512624424746477295613892208765686420280186622207222975136297861512682343026160811249048068504945744107164863732359345482051099401376180805496137158189462972421666890655050425777232392860521010755208808832910467378620158516333074720625974489823619565952585861467853203434280522222747953960425851278648831310826776005519099286344386823245631079576802215637725630430438268704791154018319990593787432351165434104214425883323211312386684016615306242385193000159586382241423230057320156438875311383262948291898755918997515452574752250361565976321200527774278302036521552654119220483019344040756931571056518415755710192544131889886810633595474984756835678573979977669078509217661022361500810665308203932126695757813896562829041962874731669566443456777140752345179271916370647159279372753542029448720365165251855460214897158815063311603191788879302906580865607064077636507961288927516924642384648378464332744025737052053956725337112276835136719354076929953841576461375040534508281734588044633128150847022461919735328162274477249513220840577841233789992176741042377536888133711212863919189503776251683506993219498400441462175394700040176963282550928335313798062295514591978698043533248959646249023722957973153934076165909839648757092940080303160769928785795558336599095872405933249587507130755847611426741208573613954121314664676801775268741559845971127079366237601371027549469834878133831947119336251317764096997647806440625480827891041047480693359441010640372468555776190007303434683995188870867262302847452644530526240127269868564273202696760731641610014761801230313301899285532183856678075342652346206510406814295437314299658082305238584566447109439405612071204153321815596544638810110708891003446414554107667443959825551634791218345705752747324440898927706437099480263893747708774675176672576512636883393415894121306011009513983016102231107634353766769390514781701784838751794790769607706187964522943999631634599337299776349389014933097241908550010284927475763117728482140550880194680419631124794898248861156202248589381284054314767147303175215504247742635128590019369289398558006796266328023197361358017661511017197074834222910110399238192905948381996608768877825823286159801146735249316380976036680410665955626521520447755212307804818182475531392938046930735743375570561066981439811807447241997091895919298186458094123212715893272464923347691310033181726855296588380988265080643559982262710569430887639404691835417777502054585870038044714841149298916503191847107825107587734250019739788618117997734999359425056799806952495367820683705160816116317747592244066634172535511003720053118853084733315998341899565435075003608759213312286701625393830571061572170427867833294975121313165651264887639148025957891944956332052507618005627935281511858906811894930096983768300819888551676586986282043052174924696029733069740082989007934069587107700708948471470695335237902398023665626907443519627510033234920691507929515517076579715270043915259516909272070446794279161384013424775375380666811386523165486693011280975884123802855737263590800705170577718816325921419436672648300166864902167006172968345992775893219353145710223658727957937573296570752066851149383891676126270159736865043788397412563705041892702081860495399967475659360108740176653995416171208447077505326785918607386936360673102868666970932566663947169927508399187437640240322799002648000088497393060392043264430799174805432922125539796509381271138376572838104140008885937098974179571620102278515506839043968591487689265796460332320507743706102298965541169753930333149958432616879746843635695080589372694266441648203396004926514156678375668390198809654852469671156547785410907279175103234274186673420369796261134262561138141926589979297536123246747104257848345743672784961851291454812183844592018548265055330091995137872320064339837585444825911447603864667550646843852897543448949387174176363106328584353052212847230475803802084527276486810001553313553857558458781895037538737960506131411466473113997557129297435758290407572605980997425950360121882670670566058795146109004535226325332811826943804803569445595478070544648743443306425432428063031528230265942673892114100278674974940906331801025886630420213610069736385027230178616024793949349077096661624991755898352881809470081867934467415990689466049708608825003187213428353806991283761467683961242531257212981365488536905141979379900289017519766596974338688097334739555394706115352475677347237603076174470856905986034904875773678057008642968149590923647048974184754701967290435762966732825464217371025306132782710752400523374111785787273287542550998580030108615380820341539062551472694624953624585922617153339894021570516088219087432559507916601858413407659451697592092542550002620502615042394324375948067370676971106991650416220585630340667763863137370922002573692878094085491400167861656296827756789051330959371774536436050482059662535048102013868042533059383006143164115674857801616541378067219373942451879536857317094844223357440226188474264126225042230569903277021425587979918300070276498225899248709941578143347752307080576104385891500800866933717461962701469898096456905771537493221154228396997851110777747258419761430796015454020486709365726939942965795814932292156684737886938970194008682707621253146733378880815071325361437675546206428294693564267438136148315915737811731626132259011844929243089005537957081701005811877922020037636622849594786715528266005519579382931980851185670815705976330388969667336951101758879985509456460186638094474538457350516481359174448317130872940114883150496526862297635526132187849173951326268287564688364548518362674258324121762032122923245336245922909881905195868997879897658199302304259613351870593846928477885270231492945920105248612039614336455621471184168784438076743614050986863096455456220357242433144537354966451673119020418282494340008677097587711591421375229853006141477977939100766066112915367294969618261922603805300205153546760412503908435087085851434807717435583731933481807648030174431182388708129845478288590374322856703725543422599081968841040134996663354237305400997607780619765535219603672441352559300596763634103357713225835968301466529159493747254877812211341384859729465230760197146013617576340575490241895124467628249171222157919437230547264521453412541580859008945831960256405674562654005815925356589794451899687421819066904279758148445764986292339517500153895687686646560748702730013268552942271211204923332578983534377744305225701989435418343438467969741640116923439185046467986048930021156314240936936813648751211915283280320025824693444947759244769404812111193211771765158582507073300558361656095290560480528026502536550889079368296713315544291764557731395294822128387736742446369038067767482554350848095407362185585976695134671883073894356741921426732309751677462726349074512519012793353576643452569874287928651901344996932489338359322472651569036421847828744127602965157031839326867144809691719825005218213786022328513255144568724954809247946691739379407438073710575031900892652508195017321749742941658110946498651384812446258598760340887761051569404150467017313496863557541438951124583303345926549366851790842979612280627143184876118827203285561714034836994701935313026660571317768813604043547733366886000255719867132275234697709511967808826014246968815376328945823323283936136062354646442227692934841055686568882409400854942504732985886371631056548121513667191241983817557726238905235445575313800652096303401256375702936373774673178719742953788672686354006439755674547093970996325766927750461742135359261841102203368835528540417656985619269496877238235209400388942473694810094573740921896664909381974401923185714072302130818365202064959566440273090702531878301755404947495763565503199821487638417527987127710826485943704780201900232364830306578266020039631150285326752793893008977771393354341851970338541484253445153746513641130419549742290050182570050328605910384796493387098989671378310377870157066588924105420595714562053645897419547692093837956540848148993447939592326596694038095083584418181950039033525660684027324923433182286447442585853238010850170381559933759350966800608082282936404543151792747245397139509727828765921209490040029080867775511721486111343174478193485246003606070818711168125103114360111598633989217978229853293343611033510418387587962222907035288695150914361278666530662426118551417096462407349195034661620921343943222152553897606890559049599090213616419715640595016389235693441649678235881232611539428926320352966000764910783446926985885161811265301158564940838035048765842560372522717197516086235895456568698536857317087064474185011274860503342662690409034301691901422690530077483973590354029812966282588146758895123943227522884976280925024064575221588477553677336815223243933454544440815328599000968817551394989611167540538121356335615662117691791889650875159510186665804736124467581793283564156422987296731775006374904676807246902817046213656346792817142407330483546909454196901921684698767473031769382058487013642499394784647102392785584228555354625402263898397845324358922679108927845819332481536577999376977136859081089796479645977936622805862130612649869750221751788108594745731447666243670896394688166100037430118873632397267239901673264267015240179214512675231892460472134195480978510425859175481417897130785594705594515729098432478748269645633846357827617169686993896650774196137816291432936880169481668563025639968208789346131754604824798753952394557593861077872739719328154775907734332251995272616212673149765758026501630049678812249235996199510944536099196907187882530520942771017784458075044188057986588864677735651779496348368599916432732341903014776135771566436722690293060113993228474266349042115844584341619262735157159024759797065114663141419508831245908879019690201356403703694119015043850036523661827696388106386375510076482787632392017246907088408201252440462462407237470833849243757368336489723389916723163342530581223494837034773296532947220007318533614990495167788547594738087053397599104614573280669627230405015920495565371573586975975526621641912801936936114501401957301532502821051593921500538142525937766850505642310753975955352652968656752878589054303818610999392883112350189216502541066390687370955182696834180830067930464430187095829357503830369297444079286811241790384525381500239542251436813662839090137688732593528528945841652261438452900942785668384680030334837991756525209459612584995693310115914257944834386203652879901862677106211215627118898570955775134658153628088927207857983125391721635960036074659104190821468967585384497190830503798702692190081266330926877781509949847442575461124979738653581862311485736359616712243052900076460771173191226998353555233554360996173177580862449426517722729182242131460345913053900663119988206872149318282053300812486785152513824489207207602799649609022068013849925564828597869580583481782566550905336976714478107068516505996477469986128731259886887773184575564369727913462476133828362832971749806148354194623815407198992741424802674155060133406233803908001379448147342136464830226957557654003352572960778427615920082379962075278107218036649997247576180761171095829628665285854944131739515344185996702142579651088982383591603091231816187796895589676308199568978817893985108961141887335626605492878194954684086103886451913914160561963270947597117923344892007372594040088573800063734499314860092595547029117934280587571349607367614899804005139575151722643807294653838126721209442646189168520835156475756603797212718585741612385150592461427079864182705833821273934919287118714331029486143581629893159611585369799364037983264692001042630556158618001647747027413431735386456326031137908092064621728842896073835713778180378486336165668384925718979406938910560400311551604831836365753882473094564132496919681962269724072141464372024501734369173965594511014505925006807816827231012453804403003354709913667758809551890519111050807947692734461572728922688306863631870129887787545170696306547964064904902068181550774576611619501073606046464321654461543934490585308634573967135695584583693542470530501044670721774700026600588504792836036881820698456268188192392488507612229748830464812852165547866821079683071861112608545160966751693978246104890965274205157518439757891947147158240161360316293175052661065873982054722026708231429867087741774502492908371115864183152855979783189024244660655396327292417193171027134250854422633840943642923706619092321832498157782131110121241814386842800936505498586839178940132245735944902829623187058745543689761579323419782786379873985025262787653822239582339679062821684805596016315761817336099787934808680937023850328520032965925658922009668527307910967369123577686729373018812001104944227784114775211133968138715784853991470565370088716817978882846098292891718752398426771189329256824894958239679868624892488175484390595409960442766171507604336799529108309237377346571749243087195837345113457555235486162746593400228639264864946507001761088573730609129094602746952828987974571419333485371554604722145386146766327838343226820437096655515152957721231231735477459834619531789340227096283921402502699668868136181399220402322198823768664761907126394860682709457245308907279630268179801222331359049542801271207436728877845713118258235629920656433541994646240655434235798006600605237292135787342088117583346003220554396880577251992815127640655759891283513766420948040164528483070370110312717638820824442597322965595046741008390161417170520923874212366021434222725494459797606100546608985595314793170153078313203375629346246299121551387872658861614361482305952932190348327407781234611083166554722106436003199272157024162381871550753046165255952663198769145009356085280209832310485758941735509693142834670782776123435991536274104307993224366265198853886067646847554527161512251051048442057829474024296854800833262519493314352991467679247940008917892957264525383710934412378353633878443302115936844316370809766644438748728379531826225866382768431277579134097538233080864218869446203980840684985933388243986760023998743997604630956381357505000545094262123298047507336227480705486793787240281738633331123105039515465165884718044981299871119244082630543617926389292086101950004197709289963704195438690982757286518619165578957768764144809426617923939235947492215594273615352927729536672066895814675603213560994480063632764890187248704209860670130126705201552078220397814419663261190114566250795021876319384493244739228518368684701769906817840593917046766903708441844757010221939758624717249441444505351787309764556369591174636043572436117484139195950187075269260043594042878927034639587633819116340762762628643941989545266573409370821235653453788387785196323401109071206092505554732319541864113134811428989906812479936295118658204254818646888681145965111427175754936249829489407816933534029792125099380067162917358487925127206949250169354015841384094736045101041789241160658568717325729600198335987436732479401699873007626314684680855654621702237545171718058948278218025633851055401286472701191038624679824335698960590315637234139232959009536911080317682544132435348606460680849687893776218750252433398747583270015295686612898891145500434013392223619110592458481268173725765820073735568045836389346056918571704116659983144604658607361387954902790882614778974065369622592185685304548672923783388032455897392226054336297900336152779724494905796538989921010770433549098196895748166485695105343022991993237863300586175616382834398291796665303244778528052860005387732998147658755905895299072934599267295723935582362772808060534155773280970526554009317939101420628003044902622930759710735765551898195207641382006896245960043761686020115323895720902483886848724533221739201525882130698967353485126225627302842850121931014323168773232612281516984633494101103757626478125718406041428895997808757217291992381846345964064804014601509552330964295432534458379702569454470066705811203100195721482777993366562410619529135089690184417922081589616459932475857234099299161821829866899548204480464361666752715581198544199121779078086300592250608182491176091443759585592397709801558716936954398925480506666006160350372007079989215143950118246587439149189365812435729492037593994136346733387005136461196018860343239397896359308424617289269940566186182945714929491124485398302624778145120918618140416095607218993177456819201985154734225676935675836740115370022643870377543945696107331446259310011607327331009717101311473208305164824921461022059646871283151932916280127759578548873790970232079832379975918538236496352309322321021091379704591514886645962408135413643306842641616382068513562129165011704832566978469131110074146901266741601407174863346891192385198022493066253931540453720995399703523177171833389263583058903108309697442599409382994301492910638179029437621903632243735581191726484839828944769086768935256849247925954242930967094508582066025944684661374732551306087931863980748364371503611898841465110566785108253003873989004254430175560133915083420544766188509897156474217704097650935861250878728922654209037059828368845614862405779991801255289068787253408849949870113651659736052942705382009176070287233486089373197258873209981197968962907040188969562554948018554656272366037967785737865636493673848350412303547693616624047712839684243974785875385334113919862319219592468187205628373564019955443104217737007304705740570832311264945012677896809284729466842915046547727133907736684170156121481718710830693992448811869916750198000643391681597220266714071655355528087616775308585627070053197761761779184181311804026103763641194071504126801831001833246242166351552563704943120020901225764526127470590678267652567955004821103477439906255450135616534804276171296435888233969540746179777975823804437322356863712279517471266563580767482186063715173333665659275753780918303219142518988685047871522293437798299588804403427663534816234548057764990779995171622750953994579074271133985549691633393711237139106785608287106773929836018325395353222594693832809069270138114470976109983099987210145266628690962057472569040138094947113049489140989830334096996273795948323012963672606722714619263846524817260801929445806279338318976740967714805467130080532543029080422187477140147969686921535715739190577923243372762590310961343960334584007379001302456136677665377134729481647674506226904312649443726394144841722807410767516723897549621072661592155892020216778065343355424588625244901685303325610450013066534813720517738722723610774064594574097767404854551947276873509669710136856377118087389254310780303583275745544074107846621226925393685419783243463027620563646594189547293579893045933320256562919535658968970407784947686501161536403086534081439256426042382876277978794787406841360884702196155260965803535256155897536035444087023119502294420340513191699644881757878985588287206208150057731601609763639096320182012532761557928475693137627702396005695461570514817282112783810713074190122284755763786223948049211199164709680106578586515996187714067438650455260235209376781986209207048826523252085416239354401821044593152348652554952444338847405239523716253451762190804854622622755831455209542831898738288750305134488290107034344259563008707930397023496983556650313078440614343105913961542493842983122744757241458116291770356198568357248372703915051835886333819642411261719616574455944406408256356601316112801548233593380300879841451993917377470515642203767091235114041980481667404455465569248014410068397409571514168865120157478545755149184128258694948055930545514907850328972172209353389139084797566501556851139822296930667512043058993306282340752621462262209177785709992509583387497587381007882707020563757235413919005908985513056994679390981378638718414847816284485975161375060976489554746280384948803460603351019786740454072005801152001614796081193748504615754891072970018280754159477866525924122769776640252659843343553528147620530380942860544420897687626457074940775573101100175927954078847302271356792733988149458660019691199651163074991408893443213689306115549888148615495868422755516969600896249032565923773431111945521609761324223699224457306541419100680509010031142309414182831453722158326957071467938822680006107055013480762612086761928049266746843679469659454259965082929892465640241647535650677472283384083540188350865768784500071886628154956317274518886089637020643966900349916200192751618009135842289774108047859807879823830473189857444716081700519031993665955873911450032857505987284893540750336206232206101403781467399096534924893774413243478017421389424234306972451882165978326992469716628167226330448937044040294259007928290206896119528361626868887156087364609190171657513456808296096686019557749385634079198675495311440598206474590010948928371439502958978243040152965221836012075146904658326229203428255900242473415321032527220504861413601733882949795891696939693548870821638933609024940137447144119683432242083112581939204936343883324640946909394773979206638283574718818662839756737199345816179097209681031541683547805127127531030042830045908160996402734169293981698487150768238657555309446999745173976913443832085934181649818075310762761279010635341875382242557038880184443214016412054530513957409670764903217168536173512467223611898477820488452764044091278258223668586653788323050624507856801655370411510666050369550667912078408647817401695310926145472766913405281166365569093409163069518041637310162192431060318234379690371140152145873028076815805256478071172119810417144726594535926216794576230866979755585006000269655743249455107836111271274314433059525461844626185071732919065022312978280024231154575878333393388299936934170951792858523384942925617038439733084876153215243201802112839591472468322770405917002549351818062131173661591904127168680225614130263228655101944866004510264879940626752284581460661943280318773043697512763626882047457888736536690556431432234976216051350633945617251974546186976442651112359796930524918459537583242603985733771308009185135501415910416747431098377893956708077395235444973461151490526856115079033644407380273630934952635559753206114152917820602415364362439884552680176180768497903140585885835351016171723863428435640550230598346778880762535397562328823234620533619865349009760016326132646217808732220196911863922424440484621481073512871737596361517875167838626800686142482431755801671602723389060478883118450438032145286642558056857068306931745562273209111855291946585856164598419572119332644552681209484274865148224831016909129116775187282579113620889131138382119005846535087115620850898633307586438957644269638747475981827322686129210797859004628491338538719674019222235098737393310358567420322486340379500500786593503412611598571988409891265668716384701214866722065590629008199283428942841833499282633882374435705679190611023387590142152297487297363896377618426059927008308315611411354396956393022490126574680449911887053175736958729090794087760447310868161116171487116603969584438712591062517589475174169071085255505753856079251515032360625556820220048223095392831769909238724957798077862013720454830254941730674190369692723634782123705737509371661462303056841432401261336026639896600265915424671012850239545008127901470814319332261417786683803352490150887680112623720548878157989045555819776108994724268604205491134680888984450946298442571988331214044523240000281512477901020162321691270342121529900327705867859068579634640475916001168649906617728552350984768832492911935610327717519371904239743759686976835634074599700469003956964648794619946223559014315717762428228187202723347789831119202942217224301597632478305865702657411439675696091803977977107978700916814465450311223321140885893195722974040386025086369637400096211359583342171016720791738956968857696283554097633764475199691807972953744226281548783927551745537251341846104349650204058866957255691889223032886198508289792990687298027353619992675152208552160616520567835249860255489544821602284941660681216306907285838433165440643156231194113150218462308360552569979335937192756237115571684173429964273197336092254732176499317563218689441662143294533689330003889673846199725978430478653537588877478033640392316583484814340090379176446860556208293018213966101549812414820545332097016927506264239474827908330436444781748151677981720116549513386067309260289039394430585893591713273217648363466083540876906059274023143401124087000334237150550095770794491900128660878800830013770430493234279381272889451261849064877289209191880053843459541549960166539446885043734632801112437836081047189497443928322311439495315658555538080869979386186631108810676822748074624358758771764824038736012148631266719024934694590262394610557829888575603305736105129698860934319139253613509532558845147058829671775114474755021023134559565452556161228471517425631083229236767435261884321386520367379633807636323778496925741620926276386619704003471275812711590955949435702215526757785834091966066958579820010658159923140635136896330687774437054574361285230652230113144276495723627634511532243171496491541681470425193979559416607737629766019355889335906477417309291588808950270876573975441666206528554086834814158179138264930738082716255802174138117774817840645028442698266874643360951502447369383138944829758202137872936637291397852787107062329473649335506120998787390047119636639369638202191108605177340081856658956258683362770953880376163593687248487946537569639412840920538103365214470586081813943633790866122986557831686451414346253454099103069973255595724245562386006939819643276247479929032380454415119614781577378879817954849183195629704195506005864848316289918425255563069571959962553344097845631227244715148741339463896929225101103241114401946859360492438317632921438133974951309553961658477968828357324728834604238701840640732213800252421228435414418170598187231493711329859988400194285653693885465420764021079263545654522471107422864331846069845295220201681661549585014754499291430692838150643412250702525832516573041238653256993984960839917288230173885240740266727996792277424834147468169414728821576284994692542013786698855996628325343895819928401223067192118277228449072490346173727389500749896613369951947038110163745448386413249749479461787155786316664835763770026698158970819236407923952545550322535569317730726720004072288829731472720731362930660227101928595671814641912420477194682462122509259123157585270583036287599226116359528606348532476206223274144861247206175583099155235174661557414303447054628995480616351785571167747441696685034550449163920018949545548304342310259671106767659655945614323350002373308382344631213474327071254466802596058997474273002517235943936425232602565998043833937588485577406267740234587590736411890966055787256276813525736138213238923843931244904296240458578029529302733015628265033147284767218639346641496129394605401771710715812384408997077405154186915914100475859322371692974603499328775833070661311817613395522127130724045080962484782307581905644837714968084465299142289832394708782312092601092564465895397128311146505153623080205627444469540794877667766720605578769231829173400185575004013688032751986032007794829319710435952577496508897584776190209629921687091920946724825365518553330948582137452367011422687880711310820816955264171769959121897607481395814546327757998967840188492212451624455064696287947655387552715874046384619549174263218047976183668554738203826685315146924387391051932478942925861306412685845835553702795555903937165423080594715810099370953910690880506236352714241127239400655573769680985979423331019021798685811003560737341749709415969192374292942707088661432411663098500462094600566085241911623500621395068635606995551664076850495054596875640949194162381201988943660946631923456935371805868366298261119713039513914157745286662548353807610266538854953775214967097367201223056219010306162566658928100084631694989299775361101877649956613950278024163650158308733415087263828965389989928518619543663789659149825511748795976318130927998301775561523266918561426212850101524198450395104324848799756828953730555757792515410441669453031182612295783079402316910832913425030841806132706083365038303639519370175105863153381327522485794276628373382626522406887385139411547132324626343596193713180412712970753086928503402179283371656651852823269888749267744274257364695108827817050676290602712895312768955923590613383430399776120589783948827642532671685998738596003182590145446008060750394378055281980182457395821634487995649212658551368382947669780312626450418729766141941193660671560274254134660709947080256522153178536374895618919399340719877007807047364004508088352106477731273070323377860380400990632641398642933474622316970253518696444908121480607720611616421830537671979472259987388125865899583648855401381233895110087143610194585662443214825468527319343900228423716180711533010523695050277069375082853687546633640961987826197979422010484211550483153773323654943259933215099849592736899946171037688807115036040278369229067143790237797519177948956798208590409591333022003311691926050351209662849505411115518177520220512606791730896618169159287634803962407619172532849325156492156954819900574734140734439069421470657428426463353739842340553246957987134783986980943867068089843299788664207733221155027326539975118893330489914553548778451424497244264637979772768959987793747922574059001689460251603813845040599757132996861375710925290653621675685002563793994960986469998555687465524424778018952584713253716819855931008055047592131875544145527925613307563404752387064028870023897054847733993212363998117799575112691571186432213853497785464569383878137170506877662891826822596359257096274324049296103562327237152924602798781959642240666437802023101077471790687317420480860771100436159547209796632801372446533391796364680200037491576043912416153120170677623575904008266712006418980370946948397999876866515317426278422338907319332717540862916231392056536737294732905990282674220532228972008407605169429185292640046942061100824160479873132978735708574089812288500833279600867597509699266055192383717516479694819541879673778902427519594087199483326858773281414066709297916537637986268863474852922137125518222521704814624617126063169100730007525359394784107215577088182850324550555217278919624248961429768380362349750802101472272832587085957738822193832720440502796864875844614809980702009869772939027108288772866326227796591871830576301778446762351973168675553281904321966380716760106615863815348771864872252873210402041837941335574964529934263657898752301015366776524808945246134076169251866130747148975973961384517658286649537434798096469305098332693173354832052803754035171491343748704503546068051648650335725931796281178501091973665467368847942798556587750169607490911194953165159876708256727288099883776852184122645184655008933344686489048707771885708696801018057878443661841167423487397886523970979674247359215045028692838757262377134217408960913735826092177171876020895903139785678277687182977537806622920943612344555319706409345207085601629809994205311263941016094771976963774418640848618040888305551138760481750490701582562528506157053963402683285099383585138859447962394911421390529221385322160633986650334384488599464636928870766565881539966297762041841734903938466751370413629001571574186068965940553172604469399398525484408054874779083762112945408217541349269998792402822090361706451966170670866811111171331110984697518680705465110028327483227058334901349513100336966815443964846805652104133315267329842473955769499393480495859372423671550785447936543721413316606476522791325086114688972456676089731831204374157261293753995583730351729225202762503372441657162663978293470608658821645413621834925292479753934929570633485595433896160291830143468717419899797610104259008731402846325303820812944632137643704948153968109901558884102609572185811078256388316869310517834766745479749830447275129823744867893973615820921401186434849008163942713495386117977943710855593565200473607148946759396934201427794964765369009953371496244020893981895706580324340464691504104688188665611555537236653460680284108723585481582148930188972809923808672641376847974764330848511862867857563646002534350277727567491367351007488822527467622282985732820503859586909301552998223096897097778442115269297345034357307487836298203898709257261714801348959420847884904947562188033800463441210801835550319290167907104586143251567139499597834211110318781363996006158409644327501591265719514487118446991055891206078185274164489844274326492323389772860889097643199049266532423367715109895125965505686805127630952280472877511823134023581492054746754145316662554769880087386567449214523565440611582339012355409177312086869048982458924514458440028042388463529050102828387758136866142035664278272038744410067594693482611388577469218532206867464256421352734595896249828175327592777355902200686433471710046782060000453326788747092382110119137683124345665140074890672154782760571599355136987530140204196654170311385792126732116910404225350829787535027070252675821105760366072569450332530610126360192931416836999911742180426496685395384809329691164907557634157311107404440300390238541422563770530607519719128856838550574722998680590633575773915704450319040189130658151208552535149820613731898225159218698561036316832970128857733285412242070486801260049869995761444049242139030752018204028350303408673478965379104656825931124267172472741289101140260506859682475355378284487558199157157899300142385866210580693573002491817234026893983318011257995042743950695651393756224848355500923419411951758465101337523108042866152314622953348335817099547077335438411042615862536582981381805970938243880047699929720670219982399215361227430370469265854806809962374620201464411763588662209964653823433729832588112388162986123350901641906623643324088180807493587364974858408141058526724791023463456388485314115946647136714846185065259938732549525100477384240954427361836294480848904257684029563970514788883865220565859328600144001572938759978406424090272525545842307276246601052687219976516968239047082615714415354118661996412481791457722404669518604502349152396400216709033787575532611073710024276637529555091268763890748789129482469993356345379003391092676696559977062962230572785843717473384561273425651839387096764365080494237534927393879245851066600560468290066413516437861009616238836630663388832282575417398231977038177196944844643894040543205532057460271792402375694316875295237990717574931692534557348869327650886222897172794118943477391444859287933029366953120110767408250598405063241291110218579984220278534382408113313544513396158345653592904864048014685859756402785643607183753070193134361874400288624483356498059022641575145658747106554247832471358805789249286446707845527728971892028239588740708239738071512972263948964789193235612150609998199341916335914187030749730118160606671320771281753360194449268085062335790099632567827260153697185218841098527075509563287363464026280617042617678129417732168156024527929571683329944502653938464415696946442326468823135583972918747040866280639638292448932131904066174943140826987044424386609923845827194200351709152730839567634478594003494483172851022928900337606341809564711889814271574423362981716563704360825125060530829917072776650011653144601279836123448492009034585124660179055483757923441564842608609012898916699765354415063989374540249615957436639774347688770758698729239804379713324083816974212183355711940984144192330491985670105551349258665004094244256507476059863643068254996952178324997732171918017611508205328006524635768307613225722951332714234986892222323801839663335105776418154573708850014812091724678522706257734357426567289830167981358875766347186901724872431676300318733414462224172956029779572068983161497872809954834725816216051815772767201335876988234925201896733397047679761901045948040195359336804591911125885022973327098851572358546887940886502174640678529545269644194143423240826176177551041300582667024039303892036151176482524165217648614448127410958084273614437678669828041713521403078789186502680657997736054292008567562422373435781911595423148477399855693711018049858846928180170510593430723485500160905043948548622007242166496159169022882600374333274697310786135080315093118576159286460657202458828850886031752192954038963545342602006548006049596428935859130022452411966696723404306830764670739624372043007020014706153493534265370850506370270828464529446635731588527765100229577448117302035056189445188923838285883301529282614002353552914411676583350959340481769632579233673213057394120383667146708870243553895436497738866558629578617810001548099643022566318982599129381366543919236639011469533193351369385357318335862213266799986345225655129628905130290344216244609952123128517451714196832324951415685946569902166491871968135643180618248429680450205349244834918322113186868910471716249271663373742834962203712439874849449052635856785589478801558203331924988864976763147322711674376301924335765178674901492045092172777826107908264481712335679236031386551905875011147290816718523193279215418677208380032454762218170486774139967532901391902363010444797882744760585808577906965893951940495978602606386910214681979279985239021483316410848960046282877544465248208305964385238828335552322899239878373038706531443515150182327620711603615626206979315672205449726008758351342559311557766158503298233589006596546760214245526504975110100041857723260323192222176985659768535262795509420457093418045381837322758001288611346365494556099485398197979296951509661080551375897257481691005610549827791915487279188239037441689187227765746199301384163633246795481495899004164580381322178122231001323167562467494047209439370927469193714450526787541856876227135125936963314243061208932142941900218839694903209240737687271190736780394320640978542681163101083666465846222205462727581140230365606760146520922562799191830916286889074629227022334072636124810423156072723188167126482910409955734489101516790860055820023829078593650572363692364965829119537569519329041534353202641759161982271181285526701435953916293438759242301648644045150339321330944760088377747216091287748252787832001100433635776030649712340821908395119405312507565691557256760940478264986031776484974781147529738241402785889239095496423037464563445028883510618713876200219131518254608775983119562547211421597190679459326262367174841935961606153172930926965057273883776569754051925122378839267952946593425554164172784482453072612418968722524769161122891409595838489142009330990946265407422218572664794393843488457865043281874688852889216147506402377326722008897014094523842021618866372701108962683391716326907802028939910136703940755919908235897862715106714363704142621712177274226839546148046502972614295714896512837757124401585262830675958064228988916641038695158148487045230329882747005872426516998971960689827122562616768560597052315209783301450471196333772813331391284042331830193269700106614032712358928494088427398872553920768894170375167265563067035921602899851100554916406953731940501767495070096575164905821417495451686344986475655332022159437220524451986602268048242460862345113869750402179971363222260137824705469174787509642124204117337795294933850925153345091049428594124992525158690147697030596960364765607388449177603627886572700789998493516001490273047695686834504916472845464866772907908968533506906011382336596949811442122736346668409632417290450373872507145058630789817312539683980691650858201504515271088247168135604902235923913400917779141011941290252219278195671464458289529887174344578094099115848213675816391152098969364944964990153449532414934460292907207768664367813544047516361817663986431448120469427696590804602381653561348235207888120445917681049271317069344244028195192672064484303379253402271494586193997850055730035622965037428647416590867742960543148739044340456150511439467292955267132535212133159809881471199900343052229597452289115237068433200311494162067907252440501766880654885699497969064586827096602715836668618926416263927216301830921411651843688084034973439584308907594567184175204890679080908360855781500568496962884439894798486626180295724485698062385377800835324217471957874313028870629349932971701606986779438755148141574695879653953957736100486749958902186984524959263184831083944583151779262541008898789367952479552371476307700327371161603056164634337796115493825047755053103362347297752042850975115517427292870443203484517900449695908771963717142155719075301843846948454221383635544840790190364701626590042566123993603089321487499401172433747799270820292247413927497946920456537330668368579016713245367500702218739198536314656988227191716996702369155642631905882961497866953914889007849003923405017223951644913724969044163028012864146903226232266806236999875480898391048907096981001139892365462394729383692528874319463265057813092411509903932699145062702557274974410009766733033867610423939854675145597037565735602672647464842924627775505019025546445114762890239470206260059690028333828259883400435113455201301906238608010794988359295122182573800209925557431277437507477348918836040195788731124184007771469665241872041431276658395376051972956507284505853461490887366381646845967090446777373567866008656322962793529004280637404965432801765781190426430638277034639449550988488194793166281460185922401537917081293317510157183292704038298914276579807935005658269559707680924594344893955308963256819280388226208011081261070857333598506542035147620328383465667757690366456748998583835066559787489994972097200591568777362407912226329281986411949174552060864080097614862517616729417950923756304780223026222460799095696665927240549056272572296031887532211704093483740149116629231695339932991781087003478602678675511937491410867308554096716432145322667711125465504542336805540002971595789742345108153313311262626664802235523649051162630559384066651473385112330143224511553189909971760018009023213535318540875051112339320375394597136851645323451479605425115765056297283964770537809498855866332335493884095998838851827102317115621639923570336784196006190277451569772463775924865117343485738205648987164308836369484981463578145369790181173424004445241918620375642927358343479271152230534683534732620466437371473966423555741365744371532708692396266238441439311833376207312610676620100561268954169121864410912795555223703059536935987657819005267160838401840962184579387132474881464651650866095472054484834711560115014968448156274771571285302642309811966288873027078460944550517142539369498162174853844628516789380402389041490663914329808578097180613219666649316052413078327977762227714662670395062325485970835597188304621055371412415972073498196989958860814452617901281752752832351198513666170900866081149118242530011317231097311311647206438365900819689918323190660846212052282441059645299912317125417687551953050758699334836907180682268084856127228582473019722135557850403355109469495949968587131288569761846353199202949202386282696600566722263858734271377270490599496743008566604164311843240144050987706203652697841925562085684404944360610543809795009111526545627610568346475905402600421501013173444827023228564826180518093096894251875905884772382138016116665808911048484476510108537764083874015368967431049814586786902911981466921062129160202579559484355733440214935313887624068110590155175164047432311823648964653500203934275086667951332873073980493675178184076216414330253043377559834431991354952759024437462039669205842568180052499904289628462707794726833200525158981511049793833461490157677411362697561440439039021369351725797969066709264570469767620761258937596272810231169145464237202232729873202747887767339094192607259678067633167801991870737789792987154464878342171319685527501945896551620367404255350023539097542328030930347157819079914785552377402783978556736659409117464489687417671789197773827008337818841020568107747022783565681293548112291131973929348966186191387960117108649432047815973559209924728289651562781139360217511445921784723976670557776712500043412710245518562079451865082965420500557418616416644851560155758288228201953600083059714781219277809184609453187717363492328824239014284180897839092895113131067518830829194823894919488034377060914441425835431638496633837142454349578728609353543394902942757440139420520237186025058658235930584085224433802428132816146494320202119035325823531406328469504930554298300484571310540635376250981486185396874138748217195077923743076544384492660852624849240309862137863485351583446142407537484838713728520478908906473075953377511653330913104845134595270251409049649410306597733978554905820610357813207262311343808463950286002033008884058323128429841973822087022501369823105105727898012287451378829908858904978243050424537258232133376480305351915231647847621447128053077973536778352033656778114535561346915862632270643539690515902953989635228188308089261023679034477207646151292559518638686464107885549653998269727466028573236846078836019526730980415024041295788402558764146173822831032404136419118390434731281603241109134599479358279405550689697537189308690208641259096659475064875123206092165818339253182725538118219158766134155057460258227178632992458055002583349820823024409656071259009452059892245194970820003225867556931100054645873032268720131418269324712852506785294791264130422085492532706833288046656934766586731256755964138194150047911142064130160187546452886650780030159096706115488532796898461017041578655680390655549841033789324706829246312805302260492881461356347760936973906131948742002535341039163603414919846720819199868639793596676487949839288922525500027769986831500693875211029925414534775153412848532528159587151760189325128311484886939341809933590223947103765958061785362158780255735349748096590041767646006361513003858534265104462085771217273502923548493785328474487294059144727307755966690426491621610889999532702810654636065988998466185463220901331373131226343946856958892198672850359535300826746233598739568754795273245764681299234883824958903383217086276964547012884743358594306693701048043077478998870479462204246331664044480427572660092757710661008255893540332192005744605471607163593624712755878386819416343056381061419371258838987062272023119393738983279824601329490309962782740831721775387606443454747651496874169013515537393339211710579918717201443201148446424740496264253657417414312667271551974866295150567100442325026123729219986640040333764295531218341785958811446002871658383893645794694699074193187318038640445498957956836029435885800652355881146001554133322383143437465222480359483550180509145789580008814824974372362557068570940801528541065619534961413406120379913252922536356073907691685809609261071316852694786863363610357202490484859379452464616530218155631952837260834513624306158786196404274732982964033197665401417841338935356478206072746148144816776531078575308166089940617906235416509406722677757162564032006298548050066935298196437923627372525096654157891506907506734638852732550954592119775173216904462735530444037752608809485750605204780138196467447748522824357497332782688069965475335454582097448703962060644936179177441861941458995684032270257416161866534002900005783076650289931493249262756835762918314341671892181609453992427250545903170750190225612474240982093926393443109391859236424052253050612373579443075495549729451339755363234274510848439398733998273800709052900613070813460958836298616106017490127256374364881971825171450544968434541504526175321782448571619651353204025525076114369299576940889295487084368160928607888577056127560496990677371677211586139232307725253779198947493111566322903229766048189780803540276541357794397419169968307932974045450921988983859005987043853392979999444121192144802619564997048731435597164411176093283484328899131852173991199262950021449772698585986949528095186430604776578163551151017370272765294931394105099447488013971071594285846873282729524619251145857674967839474250128591478484416653829879601969412845157940384978732195088494771943933659110456157655564197324697157598876775241918213037556296625856772987319608316246272160389613266354666648058519101446310548265600897980501788885802086569843211087323849005945431603226775902468651602305370514356281799385788495252874523071648211600468305229404749389753489971599246919786985518437470656718274728558652273703604919322381210561977504502441931339122972872312399436967259333721775019033556998906243896178676515315033724745864731906303440873194364517039861716993051498639025695077102589867621575220078316352956037254769553389765435222989941011134176211159798840728955906966861703987587625911739428774965571033340204459760898108372561077334040373202654681893626506984878482092244352238695022794095231827160798108581137874439232063650067766121656547785172326604649777978999734718157211457378953933491301788844491029412393675548162873929642739711212625899723727615507972471950944724405696963920575855073717613739012381600246834629468950972403666424186262242448810723298540197493576948137912628259597222808817822015595266046130104836329422213448059939357909086359909384412717534497326680199416283894117675455620581839831772760247334376283253427247907451461051234620893879773228115554660594332193427399691913980607143426599108083951626546271699308294280420472601223040339033113836036829956003960703676525861031800266305370594505443069524996605136475239302552642009252581558341641285337700927810484578500992066651149448459678403367288835544505138875022918563707096401575499573884206169129210611650176992201502131340329561417036041330453045458523701163700452716328933523537195709989355655163207277446482563541866769978987177672919874088299350848890571997765025507732757680662536127966188834675792368365017773743991889190684347036078168312177444824670565633402989171585401352506869059682419687969883846041073669075004864421756862156345591358424162654786406663425697906892149874813275541243841752714552570139535087617458041072153531492401605980052584828583162667319628287850858844305622047061634045750716167986470196908310153581055160701338706239809508406611535810469695504376070165630643014508710540583541068427983244004203154056005386329153186475689848261447011203862977784138064618292044832985226627221206686453729857990998388182302522485238325626211305233471711769343455121591015492226936554776898870008699725894847236583950062998135283907128053215802837428896810696428717802796329022043421687645637528150621198299545112751673663151865663046612976833679382749695371513935441461129459475018271506177237891328857843251688069430949456243448088070850076046885348411305822504720393319281030886270299863210171314746298743229972458819186907828386503163815389915213893409351301461930009246515819255418392553414742679595894063589252004774507185430379266978067442020827560234001356447860624751865353320310581254138982774663432193354472429864813251654640193352616911611090806400004459084913939538662896629340708884245020916044810691032781126151883443181939559841305081897732906326907601708017712240869411272411281985550078107902334086021785675056801691723231712042957085372672609921585319669949518029441506289698726178467039037576891989536508384450571316003589944347474686476868871847204317716164436890001932982455684635380304189524643331136094219030756318071441665710498526460848650185911723334518862710570723814480171073437991137768210049509791467015926788595552606186729378986249650393233831808552258490377335547269944987368579716908965598845427679290824167263691966891475307797782668475804548130044562590967559783767892551230328199637237065637248875741418460959196865514794585727101252217648014565098320281074370407363324865798241533552279956423287906149947248892852708270063162299952044885277485084116366354138199966336869766773667514741910839515554210130043739305909839337960193638813451982128234512259723580073731780594040671213835906931953495737163843608030737336563246048975142825698229883988021200220084939804884177676656179526403917127884281377472427766711486278340503264956299395867504984115327195600095250490007532058555731807900260845404335035821852958165072033709426797072702650379810015480636636953520472366626958824152556243890925551240035528326619830560209278127108132002382278774999041476391523536704880844709298703252471919105158864078663847672607611281100152581159121672602183608901718868429152199044198850491796163787311088495575830065844965362745266947194050310191470100394448255409875660819579863207275853167506942394254568458419471398644892682066200449913591279934206410353332081618384861549942152486434131050958524279611887861960135436475406231492072911906458405437892215662687002787765035021176880771493107728010879229158695193753017964376056062775065228373824519633075186572398597368135235578004728966344234836827488104465602127326167452432007110025831295654837092366346081065198976882528951248780264685110322905976260979226024787285288272853249571308119498203500427273935601508549941777897153170716099710910212303061219908698596409204436912452931250242254714060620435439649542015174091839865454191702045339086492863945283923986541225367631359503547379976527568944113952758623511804859031924551549302263679397381315470947655937443773471773403944970938192887491159771304164356258444492584771973186618091770916691508673531197085023371450660698828749790741345032229689860942206313194373525944731558332267736383944169155095768002318036126560741996197417593772405947745940433112131860507801825250813901720367958571244266073593162690625328706069656426582650998817413137210056061753128410924327582117285146183494626727176041139561266695103633569363248748524400446758316760184732323659617311299267659663114208944752592924705939227036742659622494466680081869535770523624057653276170455740424839765975003938062164938902421139008743665087573362215992695034811034931925831447200408387663937648999418786475849452758236215875911701364455911886138900021276442466829634969721891190585410413945792252713451043240923549280361415280223329503917711220264723673752521391695605767796541507487171422332513139848036537856081506068441918626695869758716740682949327937436719509111162455458080871071964225009118320837994192120616865368024729659937586568131454845992120759143278030932046509237439325768490310432854842483669592554154433998938059906227522451547220350185623235437051881252267922840014655347756474840773564827948726036750090847087434420985927057759096511910189210241630795850485389616524035048628299523998874949571580951664589033361386589518892722076592980850867733801022678633458643271635607271394047465602845365561866752010065048391325744847657835958011525124100597190389904954106506161032428232253307330665045510519445840660240671907933833572701179183383692747228070463829618573856842233496172758786196752380488605390254532979817127801348928890190865893505776990949390171184101780997705261399797641500333855000820151965214669596275825574605357807176966254025744116124347919348109340280159834169398331466881163914364854699630816133640406953470475842449475161893041543505546416550181064451335575602997764290278726026792573530160501861864721033448515394273346490823810504710534130122613733890476969646077581049484939524133115176484660019261648877934790207664779841235416932311590355112804471141500821084587297313699168622467968320861755055498604961249843032233471676112253238937535642728685306273129680722558563303700619133076991673043795235000825880599938473167506286563234660548864061469208859728234109959148173337748400458135691037984219265910587253733645820374566692424898883134155667125487491157115165730645893146307456037866017376297130072240404110057465074425793037075235168736304626833743505831757287340528965547688683387723313969406625263529118408904420066709265537338464443212995356290354659736740416085372578194113330123339842473017378932473124693369493244592242517127733127927752502255462256139631805865312517882625213799895835959465947091321930811107541604957538438848186497989857664477693350764993198694831258491814839065720650757066541367701883462125769272472726645301884263468323578468409649290180724703101750417678175574896726881182422791748248961531767980216982177001114078370006410734598003026338735391463857377798160016148469310017914655346937506226322005760321437196155512183994514233132556184616979404795476296984444094200813775460370703262621135133644658416028515089282316510793229325064684116054423332692977674744014960736959031721978219374523243627231114291947083806532860925849041155556859839032604728695694004222469766638833865452265023893622762040812253984187230620796058754075181040732650735250024561208072187074459452716431789966137191202987765792921838293233649735721797664549291745119556239220918140589729902433514641481395690657986793765113772421454982586575976088433299782965307101147505808348787450629574858135046367665556233943020317716056192661073073106203545465326174373678500633731644241184331905329817274405684789123681730087802337875428218303403147694281940133188578200110319033718220297054544124652675186056764513759542745621963814316928204521650772475411520979715393453875005213155162296350893138597046003444507596395370618535983554773552601813440730046357345872284370504763997418589803502256789910151611803239560480812394541420884274738637557024749758028628032834133568156674396936788782643716879589796495142767580164208700460837407958293422536787537131671957566757361353181843663908201435364660601555300911077634415730952054452719145466968938013445299323090008742538800053995813558714566576554320985730102578853538722929153608871022187172092889597498605484021733624265407048853454799004370829677106821433589551803233334423184959077093149682494126795780946507211157091411200168327494593068495865715415562965959469687623631747200377963641955962782510823886967162192696411230220073130429976456899514415994617915093079969931417560695746183429913514356206759858601620249413431344371462323486348325723136292228234426448947497750607350114803117530267827268129884504418409881617479228772335762198461143961325401290286388269689318321609392540956006470240273538392342792493170248692459866329402770015481099531307979247006832801375268082808125084683522589899363106498303567946433421595410727694301576927498735194123463712277594751871240854616822918087098304766010464745761711304383724124048937920057901077192881723083134247394261686269138606609973846350050742229445499064169590536292718060252014799798320076419700833957086460018911331512856416035752538751219330130694347335162834643971214955968681637668928683834357088527512696717690124951618056029291944171185381168132447325218703024363228242356657033457486910112605860477985845327937273877352064701882910763536689203874831756656164769089848036771002497889329284384330685423647033566882082101435578749410484901088203892115181676218434139079573151045271390988872530463610672093525452068338183242227022371515833683480130801222004165374189289956679652483949647190888182040623015350506741915155580150792904350110999910431879592348043309638189218356265754464694714350189963360497921714269327156475239227487950089414945154964366031064900465145646617882902766481115389677352891500326441965258449763466608366692969257764311968621040466334694854819074910718506691090235459118328204382197701688571777620952454234009540139521245687999900689481612657250091131423343508686251744349843591343267156950433453380741445108289885515957904359551566138181817179277783903604637113609622456627338229853994823542732265633238519346166341144906266864027816719660186245801114382864485555496905891292765591892816456868934536766309724740904078283586290210687796959581998909711420671577854514257892483376857613818014162639884325904682133457203425251650353433857092613574811327942349767048562898552414518433532318260925030268703694743445202440706016388299883327218930124953252821035663119170107639457138872943919087075120046486809251790402711940221920795396537267366173571469325780067325234149157499935641019395761227828770575280853750400584840107972731753061948522802111818234404146805417230125792796480430556157842684150756711970512022253511234995304063213724934370058039179349551795543591721177217197716998320355064728487506903004828083383217281308378678434026536408254354500325841308819938954546235331209448453523199775360300454927740298340537918605189177692599461560676720481322157307791268754354913656611007065605120077920781308863738918764919746667391633417072113414924526617830665299356282770970258691254898323326908146503670295254526622933070887807712412259340243385965909896711669072035789890664268638948069506409229778371424299157073527017572275980010813463537849633943991412233132635691906819921530044714019688532582106141638935050169432195777112361449707936997005373060047996379877744770137401953131352367906533788348252306209002756255652503701716965606684588082716465540287111262840538970723025569025147089833869617640817915830153909700985953804971300738595212395410489496674212724235499657381949965192963029652556093025185863232918224741254410937842890447623837576755967898701718356193938512834471555574008588117128405258378978749118164437417528076021447868765020627246751720916426292088056275715654456897639537789172276380074446178272876202970280967698200933171558720090295039699284194705853757333815644375605639174393944511282313210760865314420017711402335902442734411833286578514307124694911126807373064961887188750494131334298822798216315857586381517902701329004640780761743517724885031043272459153962543333678174699799033538525495867696230086143070188609989071632952751352104088250683136193839786049978060133355487287057262735906313773842504462782529754457375178713140487358115024896640248419580108115343382915854126597122274240856708198141934273780979515363608426944408384000704844950553343775293991367813740120143564847091243456475119503845629807181240016939737218571458647306501280981704257005171742830316121300287436446691355849326984093563927542443596410651833609408051208718829310467172339988553870283480445130870351898255461483009504594240308155967250257003016207998376198293220681223469662233079482659688726901513805195828365479368051435137431210495728962279555300209753002785434325442379914894908470687520768832115328254504474158581981154189767627613446816310772138670867689803472555263166329745258194372632947526697451725784141949601501374209933583625358123479112201516847370489177173643356413015074703551486355069835907396203589997628835714141330965218994970231148723491178340647247898741235113537021119418016038772094078073174865776975087809996533130243431932884298073887916115414827695458463778811075805508279212748984791556316328964981030820267320895997946594256872893578335812845176427850660188324688025317880116450044878457014899713923491987479374979064529913937656272223308350241890126685475823826564318803029754528409024670300118431873477145047178991221745993706834225899335252333633908790083930578758864276404875076094398044597114883247887583724816324540133966987394347057102649983758635589506619631575625499426687906048792582151616284120292874422118235543795919891121144726786464137297522573961935756590502815763682565798780286648172765407740363235465310172872950298797825667019047506795654181258534826300464759832071884488823135721065073728076639070732209719341024772610229506148487047751716455144179911379459840291263161617954342489842951258623194714623384221391213794093785010216540005639187586902578831373753564749472569633465382745688548926127907570298064922727938090140791620259606700749252737263100614197224706459942006120184717461344505296392362370675248053387647734681445463070420532139932491192634551703501879904953146546583119182067066987786622605011810070595643696909310837531287473240206156634469029253908352367896734957709731882513701973773047087248414746556890784099633579304136907415233488592591095193952701439475073992059028227538865372385144010739453696904784371966263563924761720588853747263913530201349115989511563723650085768214726402166306087027881730724253637346979410229233419970540606556982552772275253536772850443061502610389791580276906877667211955473191060329670861199354575753972344656850357833744012575187676552701725402161984752800854622152822236012675804076903405310943970761210186900633172320320818185394671733214022547449052742449652953055815005533740491909084795110079042308500624903396505532053525040982879755111631542884596091399795673531634098849021076362949930808048723770963273076317231451462333326674081122772464679313574514320906522307188286421079465149639826448523330483538450096197466592498266036941066963205348217058829296376732879675995000798042272468385069013353403769252835315031581848324392857682106594002102701177794137436602913637803687377154307521780539907568215604256627727867461186939947885266611589745115777550708658331355190424321703390966239483824106500486873274261268658726822099714722345283622157409134708879395962480552877705719024552788526706095099764023786915909996531788666582085689652242776508875225729459354228428835020374871515867478385951904010078092508425464307465326918574637295102968543713170799479239593738369340794387625686289716931595426758380051420828854514738179630496367502082750321033013143549302776533616904365078236252825752259163734842597558279458364401436418663738256014245626217777778291169108519645838854169810216251321413872917162320184558872509614932578479606689419127418298300712493074559181329971238772616419505241900974035454061702542605691324874725463171089885980506191959569133018930849406341118337348847117939311245923329384321148594275320054602946774016634834429662924575447559819285625475987932625305827307394323580313092050793240929953397164591652671857993864562098440204436512587491777475365953218626797402025890356718510499719651691886155726700398221618098070614827740868742388039477282677839850313439921173845247631536853332503285028730013835638955454270217867579352254010017642679337276135869916261531016035461845316887482713909773575440423790241012040876842695060846207988339485537045812229395128710629450147546233628730096768593044148082742582437432747143371809938315022597322705134493411565260547747018245630780333253168186278117779988216538612485653452669784203927004799010492288502573970680045398147585204757071209972683480989760248966317464559634607268186971785029938136276062235053237352578543652878318149593488977109367049797129099884719553616969802272510493454558636351663064967164828608519038447849018077980026795058307072623657871548192372072060386618410319399983356825103518299780471324350699890698617889656586491954219484228393822634528695666614766516715991299056740781245841954311631735449628681684118727017446007723258958420146557269891893878460505821003962734066195268739866770512475094978020921911585948154886342668788457262873814520404781844635266652383317366843503513622051714224138415006725918394137484817598654408806967608777270570566279193659810109247514942768505629830195170005554700590253940579236717174020672780946014778887737797840209160295610200998100762687254255554240449554185474982673876031925810595712374355773203638127667991645049814062981021479170956593630822674109835350457718074348039311294681365360775648422058742687714010276834820395430665159471050319076612619093445767935482784745703454175802916556049561667106373123317165102801793289282151994959396134012529487200421540477678294154848168642552404968034094193608270028987679461344604270006998010603131753149471270902739702684161530960641092770558023496555933010104562635524459133063176523797149608265356797201578593725739939683077137365897504432419793999978162970617369046237368918958901017708826771068331358421244531232682373040454713589183454250657196121244203481994152635808730334680739686747280596524931650319228962760353947407355875854792627598139345811292685447801133984165550903488979074852056160108456842324278692503672326637852912708675879500447735835009313024904617962671026306899319008684743528464848882178555177088823491762946704574913755632593893005753681265650618390138227141107326326869965801603704898602819578063058192772507402056453803863112661071105503776813095665274994765463750570680058235254687334049255468276080043572572981412515679158587077458654517186022744851005453203675717234975131480166465573715211255071998421571534783554390580227198261692398382257891689329277969164842485892363353707105870420788209449117075941735167852622886013129095652110357686864132452870774893751196312643088895552402294653483418426411971701140704139281341212021384843483473385249837048024302428023614883634953436244998128530235545952165010676462485237025553729861473806034935405195927895136643318990911523780736703154042147224821396101248612609897855881496104062877181839600063463160971996233948615632010942575567496746100039755894557005406040558382057271118145969633638883572931779892433375730522292587708004455117113093577427197178719493355283063469605794039000135000114864216496388658681852666370337031950258759389742587401643172421318973645775903311032197809992423176593884427042863345479865964583325661851910521439690961768166711484712620519930117273743976323574987897149092337923839062813237532365620334172809566712754230106066359693434627708296071949165229231407632931782043167890955665452877614247310759664896642260837261447754856816304905147447208793940444840616558084742938223292641274454875933186503007457038001179279425778820518857153208470713435950733790279285666530439345948247622443048952682362597151761513595708424004418753182215729781931327628263617575716200109133662332958840510527828944635788709838746715030852712743636447570839663753916413761112845272278535859182115103035517279577329508409101502982753957025131265393813327627946400041644368927204077751699528877439588767660556099644061833112861110320516254497397037200583529805642065160057239757999470857776942904752737848301975682604321458386107494406917677642726353170286556265230332906856614861123136948464536827852159766935945857876214236845051354673610663903447746763989829788215906114848967449601615087410596465487291258868193045003474507048444523999528067037688889960748262917563496920178876493209840784356465058347114502805823933502847424890892886785735982915616319919731442542919339755142157578881653166318484181505208748297656200565955107431798746261617578898907444126507953592970873544615132553385450142792475428055606709214473592055728850502267464355658509263826490756258872575706890108652048643926491452994004792163982246301129659026063568067587079576495946806788110577061608692451308687948313178967935398478728671916238465593332267155198708232810140865889834154433894984829677470481962302119899752598652421673884169656512561302468048848638813981197807622715363183008933016460692108761510827673556142045054425643611582324119450525020255409716949898328834111961511254948553475879245703741484005574745570633037790236628565004782460085730069185100835971983030066140898402835665233565857989251146358730721117678451667070987486249451432146449839490974836001698644125773920403177223911252308282911567186151571165621092244369204113364957123134863188965728780010389580918748558769258047501755983598415630662265835239288094675150149172748997921938515287732943343532403679457598504905107511997993106502234565260018137016567953935106176572071681967964747255396284905981816864771803099812336213076038502948782091506010844099675190634224405412717569806464023459479544916474095199024364065416079195089876827053404387448431594625202082996144024505526114406577070932772511961080728886898177782597920643476825461430518028483829384900379993221368374425609813980641009099122271451533143438805462121204516005077740555260434060247418544485103756101498684278325344631505998297584164552803586609235889888192797064966693453461281899604480849617296271014585738398057902180932825239447385969736564088374982497407798663980367027632855667278862283225212262771373015759855433634275864130939546376379617542138755412211668061405272521140541051348820437848273119987062951367920994409929464723054317613308311236918891269411881858049697257349987567607175420733700787886526362300912977947189893708003658883023149556411446087017212534160984022918662310499102114133953074891286066828886606253354412282984912075968578206227026276981542214437289909320302423639908357263593239172676430298198013708169396428829329993462010334115589569552910292987379450044187613189838775680992642108658026808635927128925005552355853528055359509601638438970872183293234362137755665114112614886542213161995017491596036613551543425442209678172444230883972611013769454574887951891481295851777856749138993388607786756585840757736950625618358952010123032241652443264835091324628383036731606749283390670363828038539398889879012073129515561787420830424131418716824163507649576494010141003988249012489459831167581823923208815929109474099111892123714705299259420339365878741297979866764473756563114091020525778090946197156870271609984294226879650795032761702490191341414599204602798786809946541512255985891738967798681561894452175058263826043972350477927783537905644522536323968522658940145611315977867486618027716161112448578888306827396634782764206118001928879747309487786739399846847063503024224224353114164113460325207984014587171228216785363253151746858823057673858860263647718950702945779990652599897078169400818982788600557446693210790462766198036206226553134594175824418764998271811418502119692547830005276894696321891200835371630116676396814799477579374379334160551269177374429137566438689277386617188661913582479316248741921532996144018680230273444363638203029025532542635393512897332032615787001026773441307296375510496615693816957612894685132088871481490519856641743692387247006655635104654657578320611456599644729450554097881824030376217583096138530100169792452392558235983469609431653171593166314744881128153713170717753467004587552950475572328451282391571893546843608566709336149941120301167436347963937541606929311951375962438120113161648192088818691750233299131465050925244228624846318264975231134845416031539123039563143658454153918838294675711433549190674171784801776831805725682591836080629919455428777275217876309201687447979476167962496271582316683782408054836488916801888384323402668316810163922712073537780313460509639488051602961108545187865921644898023549579496252415087081001859051678561753267578848343514583550815584536234048316555594340767509706233742301164687432588237206463365331818547892068807793893664545676358911968882777164698619795010873333591366473084524586236405038026627407159142288439063073314609735013181314368942164036032417070214770050645336914282271071293117771691010921889318415395086562507965158048176209686605038077544552982335720893419728388764012317945475451557221281767620533240304738488489743468542268208261885991066359847904589227358435953689904674994966242446974390441358572333430345548917490569013065143158120831260571866083041776283811725540783963017845633186682069987973892104639720949317555381769479854217749237131308005424117748443540064202236674319016828111770222436357790141588145834762405996078217866912005534136540062571445366767938506972975994485222755401147719261120184771861191999991816352908789033416471813407387477059403681581126544782030542572882693826895872431037605441134853158042010323694906990571280353525439778920867232389416735228383458731894455866271322233879117841035109088332865898419842161870398538021931726229484564753200784049581815112312311939185531276524222867397217119283919631802567765518431820856651314861741762576026039637183337483106094040798754862620882647746515503527800598835155289898076239592713360893822031717079833440429511216739998867973210973358038361496945470543907401372443442434414477609007980765595709418744487595148637151149000119644606042784325430144309823216306125779943810363660115104362198536144039663459433973156750915175351999907948634059645939724650754435276691962797218501063322812294018042300980561346543015382567843336723885669414285357053730277620132271221137782336641075275188413602406861916986433650974507919563122885193921051804544763083082116497072193645692398346882771012331837788074046747069453904155081109747983879424334081860929627017204503709943103419491896034520177452219241050036889279261764644273915765190720629473866236959514477089426641888920114632291147797717305660200456071563577642183804650634997708196778920485087151691680535686682915585457255847258578532067524154491380277855698995427939109110870248002276863176561649964300948648845048785272685032488091129854462931210649877912758851586356852115174386416826706550160310639581918954483980287164985751421411360035597155452682499322956128033847559036024299239893832454861183980708547540429857595316563384709842898291759958555801157545865274380666652359256164057176567803921473421676180906663965752093141057382036465009588967083413584546941840768733634084715154399009598775083854195680791633697538865542131691741901622917871343830972628533709581287578191321700270850102738108272675783582553509418321984846153433837220497046113262438907905347129254086962064720659783326513062598963278497167154420611028817929835495189139716173023475768592873124130942945647264668340747473920639602223416940698176812517589442370515636932092798527773105462488196591836762944095118522598160884805585381717172669039572660334374507349320596921041227125245852805167602997348848960233776763831536628575575249850587882645127296220417943148613576139588467135135247521018188597099053531608650332494097483014345304236565441761631598677301866471467159759447692995355172293277199065331685078314095087932771354048846789144083838346765102631864107607602959202407366374140988113331720517139119330677696628294054543966929266221141750660624310537031916408120762078336385692153555042323250943641180335470535272010081712779183151146482252087968177476512990903427218898077662903988248563904566726674796388079268494090050738306878493557404407643163690106127598622387894203785555647371573689201721740788320407838927628655043436717605768005795394323658549485884162582062881316262325220290700641590731846353855760133651312736149352304173662517597691293299310528764027426278527071178750006720710339292069008639328721489586654955439474913515479257963416052750854925056725953763581553510136271058450134987852936916805263480880964480865133647866583167392443358594977391390223856102458219440811396867210512186271213715186730946121454024156591814588879061731647697671011093052240067247866057712206849680741329124241492082602801876382320129766171513653753057124318314565900212437065459024302794385558456998145271017689694283822222260527757056310733345339825394474464421483947256378574294511817611105096081647272860817680411348024407857353594816198967948980725411274045807508770147625589782388248232299655610282927813170792177777742218763326042691198168223779786825953703352929061904225140033285392148298513750895307820951071397670303158192342026666337260036743729972572476461281276374523920830633708951743472323065971952489671517028081724140478382113573828037985834797125986536754013171912813007861267254344342063518378241044062444668852700099166017573721006257713992281927644434251126949733157787550304982614645389164788476231352855390897389339262117405730058778757082231183873523371595894804070320394428356955675997179920083310965039427037539905633163513055424199085992743541331065163733727779981711096239606574405961098191617084947466666726476730914315552973003821047946142124121128929893590322611642572526105001780954739568110760233387133779178929522233379278032703040213233591617284792610415326117993416847236505104200518320263871243355463601054979560320764222603184101823329982512362184121883296645471024907026793846156958185601575069833296082556349715023554659750673608598093482425955509331885897716375806016580241150702571312132821418898577295264775963924113346486893707726822790579614104873966480577280233706442478363413101128651251130364812003122186241672574891365508318969419229993397870603211336109275008349593201234533467305171144095406959144606600648946450274317653370462280694569580282706214998395805894385790661354864933757416642767050052309631287288170271613586554957281674618692973073632342427493975254603940084374258204029575127787674831773836251759203129632908540698286256097304857767361263970724256612728040932729058901141488207881083979803761310416475750122863005094344456847632597176039974971642091302257288879679221085672887724837265454167767834396818656865919870521430884982118528808384411710888787640215257382907289829260616852389544450979799261462361412867393592828586132942323337885763683782049520025823977422023896474907903584579402637600400400080904365171451236479802843809528481939133743241709857942084143495952672352334635070347660646901069683265745963647079580798512946798469347547891586602678451476813676872057278337877843713159101321828507098050494555033651216228016243327459549013196105114828959149323468481161623103442669987513648503712721017588985062590730020864296245487497700914837779579876784525133044589819264705868660965453075748369308483014498567007523559027200725973537274420070210210210376256462073788636777453900268262529138222298123013565378867712200948780281886853494862862197828285544149615797601038538695392952148099121388420737746223413529071380786474633638166114155037177368907723614157677812333708489558354059483084629556162149163529686590477384373709972179792005695812352171270364072087395621718402275507988503347916997000190184475379970616186649169289774725422225852468416700272802186389714528574044588030046073071637435903935729303134180889739444052590651610906937015043844081260560712865797311040528093114179329333721656334725511308732239840479052941874950251336074710389091948424377215762645600463198882838999018774069074981923955333606092471548429900947972067938290263813333649783291859563802905410168851685015670925153608330756581772656077760293732286189862046611262956415740750854455422275708529463042991282943777353453481245464046384333510472472954331358021149137210078141094369158053355909477466151433154665056506872486415811828538776531760612648870970381032659144441013756343952606056379532629007869510038955537487737482630024661016292366635257075539659808025645597484466894679163828887516397249400815050987191818736580203970178460548246273517987031060809430509014110518226870298532248769242151453818856365894260639470579858624786634234394972876779398129789466031297531875242433863284020698780942585754484937003448160647628691571858921111862610627817989646146643048068306984867174856893008207215220004347690365656287217422140079789835868424869329865214022681365381738752070700421350322381013908121847885018579901959665714460640708573335805346387808061269599011562744731283591346510948801265270950519470350848983582518937134664857549636804128488370450003614481820345567592848885683222876937158228476613258532214452451955060286607229228241011909745467135786359288622050137040412952688732951640063853688286874235151949860106867676894843249994507448954238766112201537891195448799932360032651079934094128953593968500503116518204553914015500603592943049383012831188231698380187416541343365934148784901623759541982010546965000436085641771714261845676785232092551786766934969143388825558240778943229092636466435179281170681438873219381504358589328819733968300788155512640709007604619543799458277439232916167354189128523018362422844621907508667488543514103711987571005297067584567720255964350618219898882231174873366523712986637129761366952228012523407494568236014024434161107267493798253722988079301632323689914752894008924768421018179428553738709305802359466533670560194960709743759179226570977910856579757658070283332494875309034404082860571505332483868577198259560076950629675326507496566534086971061703322667483797420616302115888461213136979595012079546683695443028853937120799131597319096943829739471770607007020586095129377582118830182935096224290245997017571158695635937857262402008773053261889315439314412583867701043697978498846605060584241825183288733601181869490479045046817839625469084038439524419304463424689535876126147892736272292419562719348291354532139063807202824658735335340693006606321942012565986065038818226182072524705292029994159409757395685175028789607748703390923216283574957284606009120126023853746721580054564613545241162586973133992958228656202628658411284208637486673154263968850442197396190618921827224944239611145046328714731482327731625771209135138473830802288311328112586644140946388189574891834607215382941093798183299098493958986866314255564589888829375548395950492891886090681788269771223459906389127415717704318305423821691180627275605961055537856635866108060648247127609665419193390542785757986731587566953009795727258238614095649245839903960205605631104332881882284798174317042856034090409758266071329985689013101538139455464234148941971984488071923839735227184240657829379271897650285180706202858296511229818816497430465273482481071212643761338299544689453572601394268782649819642929483769322118722216980321689305393251068538863096260417420209660742161303251215608126992700551770803380028219747245040493022233614659942252825612933545881121351260024423333941870609590182211864337489593714947609800302142190977398239590238961617567068770476913793468340845410787831154958930376885520701527874962327961194521721441045224684490043571280190336896885223268382914168793524922298728544498886152524106582174235782771722507462110335993616106413921042869420655956257271621660112322670283247388293768450299651639397848049772731596683507709899107291365090587048803865122446613034279649073639848384089984440443543683131681327882439326664472319880115666573313613148207165242910496548447445249441169793245296721131988471448145135892829570720697471613057967566126793977075619392851699720919693494419898942644214683200194424441138368020302234624858478876115138017324461990371562869626613845848970588648177973572775736405559391647376770489230494101885687865122156536077144990300147396786736494762989559670900962563470241363987761641047052274803055711266251785584578815709505271362751763466553338230739634628480163965828339105181682339127676748219626020767893055474748448136979072010134203126242392237053634959844416549310721652316397797579325885950989582412917787355785671208358058983432361018504905589097240080838169059696557610813835993869583576595417156735850390813452598001754781864880945865960050709000669179625240228874401608098890971697178302315329685228486884211592925940686382167549341991777379260568433228390060955883811285520753291015759674810236984408913303959133833004022378763035552098459460129363538952392514063922094097376427212436392808395421087857615867578788942373656014852628865045876918714702301096833066265604099051018964199911114350513052322784077025757249444393330905056230568383316313611223352784112505758285312144275059209812964166707353032902542474218960007360309431330055636372309701029735457631719748586442385757237075798780194088404147541529878068378994230127531064488372015113546562945632407689710961163046999276754851136683711046726221507597024845397655294019501405113003596332803068720039547095481769918965325175467655478461148173070965777083277531058335502952842687508841307667195854465915540233162738495782502954884304773515070745204607300455700034474819715071090757668883434678033753507506445540874928296605712911589114408445528332050025501734462579829264173076453442677017085188047594802998226008324269249918696934799331233134341326717058866491639846374711020484135580536429283590327364859959487080427644949704807500329905968920788244009141059419483737718136899406896900397429658640267940898214931665548061924006775618005181550661004653278481498869417015853113681061143650080952199345400512902489723082797524439316323383817397549942721619999580673674418739402186501795814148982310225883045640711380694984786694815393827349615583326716952046876215324062695599977037207158072330419675127807474035129580305856740537940805359217541477250737086805732462409177644800042429785787880080651435485301217613045581958196810290021590147936397022851070085768525389413166479269110395687743742864730221062204910069092233613482814286322862231952655384325198791498901616629996200250818450366715533302246085682163941971398544177601238402950041525144138471660694993230585820154579598772443257375274086811473082553011660048762451332731427301526712966271569088123030970193478089786080369146158098526243431725723661293027206221455887029629624203563425874726525973590746481118824090030225280411188001554833138917857770900310989014327911499049596832052756647854701944167513600682906640809486983445335099662413060359107268932930422234622212915282168079784080878816262334109185304792713120159088428403315039021900071637506225056391531828412747336578752770673766361042553876964200276773002905052103632461012954816746945405224319300125673675600794795796704979368767070913891817572769340858746889921088744985449132996280591404738986965543747555862238776764265408550089823020758458287108075112409955958973341862690508009634275691825914701788307448744703625554405578647403895372919793696702278078322079738658398836847468124867040437626860162180545344338794949786259164869489459900547256982471449906284351968765540821131930376383943699582246954024982408458021163674548766050103230164280465299879263873068786023930548949206129171390022689375832002468635402672538019646138259103515726404590785712433277780489910072088521611738885068483795468381933157513682359082532956254277904674885324223606060226075376203479062135489614980038037374923998412031753029640097834491979475852977458713406668051433845778245706133597949345091618624499807505182565899952001417746975286170303382322670424978027086273822774627651469587235227368864373942120035322421883182366417046837834392993682765353359663767141210771305492409686969496373324373940998687736363758766300622797111730897568516271915286582212628249696245447330880182677855584974068914717286709613044767332114088809025621482304794912817568718342312130545891888598531629934994938563439702465578168906503533933465301760181713085531843863663495385148881800552601003266703069685136170082241718070071964005052484952480417754039936398942485500859232368782077067177326773754529393899646465634010442951703526465527527483548347101796869816185410424434257733062592020923856557768751493581553087129699639677526695308981322941541928113920957499578042994833422519160334000864696294983605046948049407294988917617706705350775843433290438866200023635426118638488651137513139691156632979678708836174848945016790649431810389461093742471991959885879641978907690149023859990105204044817310867907455830663866886085911741594806514305085470298864689116981473094342401091452086769713277965196168880250886404964246314701880773330866008964327799802407136575267866672022179826595457492485469432479324476502585881121101272526979003387721955024079459141425358325169503035332893133795463671132069250802507108417103471249010859890492804667091906419085175172598253468902972068508649042659530765269899644695122142395913647836515239270329304652508998996903931347751929797140672045522298100112898320174589682723144196621853850574110190045226450795432228355658473914122263197084921079174086807856073519530307488229165946033245741916332901320575389008768974031979780558765241887421071165779064940171294444564724312971898051979463160962204334507524126010564056816474565752790439243841800815242429246594640932753366303425032965952966517932391213046393678700578413774577489754292853148043987916277755008313945395142154804671530710996790380225088796027543267744234876396136300606053038795188524252098000602285143052027972859298221260422523489301600645781020517679896853795316561158210533057229313572870874009405471120787567579856079944169966512376613772318584469690239225202948209236458685771008025763790655380821838200536425505502975021073788413524498079475159408937830638188498863716920624734884167694080081508947779388177970661937368210675384488886144331355699613966036892202331794154557471182054095862654561458739173583174004932474374631326780446283116065700092885907004785412700157646488926023997300189016672938454386754755756035219250093916559303129130574382810810324848153424049255929135173802924282561729659951273832029825778202718550835972209652502802864445121956372254766062251192370648508293692556292577495730497170193827731690566539607895194109568034037924009822958331582097815269545954593189681970023650098888648542643539231312303550058717186521860844901042585252435049510103232551300791319239890469586351587483885111555150601654549644059615216105029182597358861627429754400508499148705990637182647114610191349758419617203830083667010761442013337652850479174384946656727051594412778283762479959123663456369990577125093623914262494184474085089562880191407280357590359039901908567082872188534270614222070921452510491829090327272256269485473081364854430993254831207255566934089340549020568292688069117141752471545977344113535533924818004358166893186873979173849574121826439872063898037770182127902731906067819396562093153843285900443522551202018630628727686957810510952234872296020678144713880035170451138582014446283926851552484256968490318452408934756545904180672332863002366318533939556791988696227878682084893182843120595663060243793171543769080740210338214241686779881096033740542474510138361755769627892421584094438447232005580602114252681704175191307809000577633600316386942437723304692636982647323551404509490217331015742848032970903565680070189983943318317739107375732257450942946102976151879315019633125614944966762386625658010545656334628370883458207051034474650020228619087018762298071887524261180145208434947982082156586761130392420394347550735515615408338973359026482131823849520218773578915700641963046194848156777467830681761990111694501396763418011779733294214488580252140324101479602752895053691697563969695507275797876378762162998375068755246977822748757480430216389315983068818510935450499220252668542126992243304307318064149665839258268773812361532025764130421112619708172645287119705167604091555621027822883620474744347385142277344722251455400124648010883670348127317162984276565284144951283171599538160192283862052612742396714829876316320045120900742164712179769455141006355119125181646150324696969551728146330912891011109482279254733050005989228564955282277481861465307003175625870998082543643791463083080056862349927568169286356121974057151399373890265271775261098642485002746476351592095188911607352256843878446452775494047821973312348233226781661565915727512328656151319051016965270245112583777056353343663443383733276148686457758873989799773847571771930535131023431945920988437304802917663818344909172256234704048137541407505735984739464504672505579123189186159541962957977180366549710913753082838367862160056790688576943230785671378987684410241100179787759103507646393294783245887702507676933224226529239995751593190976861298270606011698661074804220912746879482495552872190302572825198151674916390265258674802056003901112556778815394657389205523089574316661098279397501261614499842351879058050389940465874412913034325934132131354681113005850325622209905182593000622984368546759307945478349638244595391033603088309228663772041121076198577724701663964017670937934210322258529941123756889988013170523702234836524557386306956155419473199158222858024135141526509585681233006384754423796112484960923405303651542306164462574018861818210879897156557672574006751598464972427501764599411034200886797622317241200951820553562956199671899279067529340393606574134007223680323953871209467388427563679513298056337303997666008287924643068212844892316648851116069646066119888119694642938845097776726995896479519964841156700171618857959452142056790341408239025933991450727275891172181987841579063286422614339398610783496507510546545598972112380935138081286940434878718779259667860000020103231918171110003017175023311268182650305167943645453118969570703197043839153680356215931135426594683651850572461207385524003585790739506581024945680580057660248731286501223455205961793441415955388279126958293326260197229842068101382933603616108974823064142842921276693085529484738730053066669940117609929493100963081335253237389565611104757631923068631120993016757620536733693754665035442854497348679833792763222352929851798700747163798119678984992563206038402665278293400277036291198553301909376759324382901873616344778073180401176118024408808226956196092496756454541598025215384752558313536934698997779100761425848475403520365556230176934894911272848600447949707649677474731516069035998343299856544489332493348939051701043179899767029940345227155068919571715566718242210611479402314105881040253489367647581162223672736389882523310164497472020453264107319961058474781419411720751445151615208818052238053314752814844299866557860259557203558973319077896216196432585710022479402000499571955780008283299647316441387504908646466858188588036266880143271783717811077512206386561771522254425665465295033449456029224856996566276876682009784940295567837564351624522756279702252841375349676732575348308542068814988746317967468834753374573501495878990042561840260007596861618263096319169305851626588692884218694895580628170496587833625446443577739793228932619676868268454474157171427568553125111558990371632243396568658990865663678024057826625253417236535027954281526428994467431798467499334833751858138990914863102377589228019214632670886493717114351717316428889715127055404485964071536926602698031991756854468032415161767647304162739053740131324556821546096007912617884653871939312552153817710290438700045520940748384250939020287982951551758790027870924765394241280843191361463369501393278671382513345030942528268525341179841855166441771659402609311123163742056820755428279496695352940241484072591549165732118893226378516872114806670581170651287050330186063724339177514757436852449935012600762708050354985092509076343144066063555397769706222782500851311949623506916932772024747764179686812149095621793679527568720743501132529773617866488711530830774884496396535087828260477582107663146999923837589137309984808809983231955291093273594431565461364433954384536393855189720870394834969787353739581050587525322390475857067588759803926232436245117829904833609480611919177988492385541737710183812096898065069849480975565682587623129834752501046625779256974200636900811238323250285660617370395650809556223701404118042252332947693457832665707049901031161163182591061056535272681266592751371427541980853139042494467451489886722136716424058351989394004267276637513883665661382547289730828500380685560590894341959109990243076724686248302668870362013847064318914396604056822510968393853790825718572038084884758318856818538681831586202446267540335754417089493291572576961315254498663173544720656655792148206604549992448723185907634057354250401076687582789584886674699809549678555559027785207047919821827146834203813167498686744421489516018148374126496648454217746920023336161690932620206088652212223493317742099264755711040339401084538021785616963236455292700776888712634720533951828126240465583944860387520517580683248870571418655734434010428681809657872852520594993957554474652842215350280876178836694613628599995257875706104683761254687888081840150861338142941971468504142834505027257054513512789178600138313836842228623518943345317272148740054780180184675979318676384652553730985204747651673206624060971868177454953307529767081274870081779671369639277710882312212232819299873665861908064379699228274752764867226085123088104548639798311851036111626308791627508386112138634694119364527912537714870716102745785574943336566399563304385675143929813478232669835311153554865961484200025537555702187383032810371276587559451610219568868771191404341999908920265458220544697042227502872992665990596614920536429077335658353464716406609317866792307942887797202986288229273800966838675397087973413234853836316814468537786406191383551970166018133363760875911592538319129709621489545252833359393400228438937426428742210774527124205663151598053914112682446920857354791105793284857172955335990473058140568870759096320166232929976487881130819608205279009118715717458261810599621311956013532379563315480564936909727761437525075433303479142132197338437510277736951310304121162235754789303578021600122567295507159199672106814661197245527133003052653063547635009740478557003496576206376898228588687060735800258447934431454325172448614396404778585034493075297376035095992877591428460979441892798027024486149920106914298638332821429726394326420111488103544311425853493171274663573919063695859583264590505023466483585288442776404858403841263750692320284385909884174016888158880809016325664196800627800179487144172359106814171675418140920536431486783672102255080178247189947008118737715580402474848612450216322647786852324641606113142248159936771769933955286275066376363626404834420094702967367145056908190150029211121232483400751869858262953189595775593036379077842971943767201335990830085719894362519978342144425011614678635902966374326575181172907103806741599474039610594675923851587758178275991342538657828025337642857115533113505087898377930941859010534987272040812379607935205509906910474870703934534565499873430959384944834400975840178793751127419969858923330422042122174583241117523787588602127893883912286374768035319292812889485689883155324062509921489402692365085456720373920759171229482004027686638957844697580808358226246340921293686657530352992337654357724666469469310043556735973155914250622634991444479353877136114908192421289709544161094409627474826990437565289354210080953976827205413247695390544190483132053746891951819178922941200901821743135381921076900558675532816407633700957195754810311411994303978582258154434240552194768175252316558827972354469462549460293816474053156260558321004260712976461045149415859766104734328864108933654167107860735717141318762555392031600986498059130554023874397349336819681153351685142930988409498155704153804200679506444735841426859552939976107037102686477656162961106788767806148394838277849224718637351005373695311331023048463751758448180820565750593759980729169979309049086791634257887257220003933955950994621163128687091151027035493325045212902940746193314401213112817778519964672322475947955950647578485692855633300640245555045574682466397906927257500993520071492094366893208103576984089386060181450921794248790923362715804829122619086781823850791561919204823581657798989203078737880239315532912678642343576191325974615880662028383437027398728989032742574048769130895588441368004763264984919343296212469642180099878984364093481847428844262070486948819270374431559489726186366252378525388211143049166584215315379735090803324785021478696755470286668510712939336443493271841587019786434137877501285161788222456049265481913092481741092433613926964194958480615014115300089983512069414574856665856256180709697065587019465069595817962224007704637006722356842703147037163832393008453220003579992482568071132799220579468612040429648129547236551437822614686461565844868047724374991211433942024158975671903957087125630175420070583842782263592837712660503863612396570151132133981698276437200587050098780617215636496150508949781771157309475615274177460054634392559867944713221599895359430990741127386142243617574532544443614491180635479235838396219512774975767410259997776051929763842390430153857971612563628667671949083266639815869917749342119693371455792057033743373717531907833849903738206444627161113184006663037604867111299155125837763797277442409876387707366172984678533933908159217862864032274470740404772342311264455125799123342220159660971623502455421605801965379432282523568177643753343204843690880768286362929725099766140003746731283776620257388030277334855226166871975509730741278134537060081640294332790279796363291259860972421271111272652058274655766523798729547873687413081766234251725495389035304147309289195537240476997352012956612385719797098138669607803899450419119694421886358826050602751925877216665303661262853483984063345631653168096986436094485764058971606632242076016554589906195356282429531420984768034731022125385202912302825841086884314672015759876483617898336888056536934743166458044473708022705458569744697100633358055627574226556356648070997944542158051909614901880290912738843582779483000722459737693517905549037271879599016319678599560306749032105132007557666766418573673664729299880391397349023964889186147602955158749713994115154965940489524437867624054184999250843164159381422933315470176012120672037754170910133756342727164984593318490079791735166819569579820695451992617730280992716090051054853179624029951404712443034200792831115926153901360384520470049986990551038767895511554637368016520090011312148068247120854262521223530501604450857876216380348869482191935459799212548643973322779970652993893316356818263470362801938120750098251139748306351463528478173529013074509906119266722095338618160110868724253020162682614029229154059760333050581927821441332470551194561152408529394430329036831697443192713011546555805183913148779749064628848045127124339615560735618399110998970669758520855831103424463412709503101436209810844318500695798468014593385135595347476194267989144722762292738445407931066239220381177156384638888579856350148535841166816507604472312474059579767982293153672043071865059632767457354760493228307693243755175619436210968482273024184365891728516615011408006198178407246469248888795994418618027138126768084826635882451714054609824395975940800729298787529270564061809755401455354473143899265645938627174431290345321055451249084104793032724521842408879942033833028347164087589491891604057512201678129778158144137293731470727008735288604994442127705927200814335989418790903211850304333726402273881053319929299666136064671537713823938113340743933546804233996238906207019812492445317759821917412629745867271875577818690912827998848751123255952298591099493559244029513408460445020657666950214042372780042331661446465738544862467515693598159709485459159456346606309901425277248821114549384009723756150002230454768923183779236809368076882501552348306992346141873813484712720232268090700706612400344692302203588584937897086990539625956854668043862810283244996204592773400987933149774905044803961521341499312900211829020704243307913206567316039989726603919183599524762960131397315097440039184287276391729805707767538055073212262871559339997573468921100609047429678593459323625696163532092647624286006842657135913344518812775718248695397079335092341227266031010929921960701810761100276742361380428549713609268803515947039228363745012313666528834802583872812964026866040682344372888075569333517230590391882834691027257684329460558423130039074471521938287733691183439431631922404790360690074706272614436930192247848901019469154384976442103795390488907171490332201102035630579838620171885684372309830635150756734730406905758757755458813066756516329620877865962962643915987477981622685738545294126150144861131663879076123937548571006509682338500853022241561181830294496555788186532221326920079741346078610139552904333207732159606896048074808705138123633399497917365784771134926649525316017307232507437695338966647409065574182335010182134411411972403074070452254950970965083298892989638718685230098604583412995501903657951312434008477547261225411994904693631486402457110206670988974078654984872162894732004810733491682924019972480176693556589779437237894396697766775930886924331544218339249464941901714696638251554737578533825565717844391713521352172643921542403715024085249157920445412075627582492909634142248364960278028135969434348972655548462961598124398357558492016742939338186713917014587035175611144898035200036729861097819147936525324765248950943351851867245267010350231182554774728399333137327038232609039817955875513712664447456046984840792452577833253185714511459311478480385784561248636867720614013672061053548685363679743467102910799970783180459649135408085450382784934744833094397553599795901166646430156803465811339367012650360114113855824611603715676900404581966087807100022982128910611260553689299899004390716141924106524727112480949673753656355702113108304760783149874875023790534117410394016848247770567956175996159150309304055399347254770131561847831459365355344447915303577024530630473617578448173423701645360702347103557054374022739553026051954325508163334313843849491321578046422153994194367277842026954228781226664598111656410070033923871083741063779203989508410043481143204057341596584748391251759406948032429607050031897713237385210507431541171711793362918706706731049980447909829492111611161506871201447368617712456102894061132801900247154223813457178701340109627512459187365115992096868607569214210530186493100767970792284190262888583453103886394608185194325840268609967196022810196546430720594740429282624942383975440190910071013974166963614357743615581760567439513846240008713225681845467005355451676642832162697890276728970359396836333998283862411279649235982185400144509323088509671397962635319298436017553341403623169334243741075414593964627108072071842209787623290892368381911529106129829208913789717803954536335262138336718483299364793248533714403451822710745125041143853765255025202033245725430862857593837899072252506054962368028876179293934769271659208010648640329989211545035947993094089135997626236945083001509810677983132124659729864314003229555797684054096274650329589926769542001248955589838279252894178714853687185867579856736438600668510693622876979748224262492102923273920182772797415937235896734457598120175294432390701362031082408230901643507092588277856784960968418004488203062677970344559453337876443446978993061867728124332067570550334748004428742066981744408344233391234731597530009964072160139308279010733030638887473715892887869074525764281917539772968743818996221750825116426374254527064254074858647333750253701607064495841235697636868305396986489428308559754151605254007402219978318335359688533792568556721374546460545675349860269617906709494714623494224473521490807277852278881548759916383053870564436925397515916511259304849815278676928756079086035468760921959157162609095851639087135426325180177951537189092236519417133015246864343711108952106239554596590133798228324323585905059230952487327349609725358543154356585830672376922754842917991636118785874353653568302488471501069272229107533203312729880911097362723944184052827130733731276122618658404554580237131361317857224583237942623164028661706239283195446425289211486266175978343979875568792595732254327708036719150082011898510555097031979785577663730316682987949040837235342129805573754774147474237968496755091259452310544873770270834111466366900141542524760514971910000567226863514813313117871553420742929478023664309492226238844864116148834842102530181406093161042205656483852708731815269278316291948090503104227008317689192442080245972625615519625703456242856126036028986510339857258121004494248863532061709352306559366475914158513915410184650574683161688014723750368736648362722198057918281754988815522287604760406608290538646726834489482542323573645654759024022609876451526694230383192640022783257559767932198353834018961762086129626632309617584445597347932410322839393011269317032206628255021373384517958224849038095910370290158468672333926723746939238933037023460042620688247127882390000662547423602081401476033826978092790584228349290848205755006261414692430730846088504204054015225255034706314124805054552896497681940780074644833751210316921453315992917529868615606912800107418255454120257513272764408547532892006486027077897248176619895629244171042063159521286281972041757470822548719991016507215403446794654522318736117831865014198437273533399478034483974718369410351332171572038556228867649999205212923629910702128383548321255973721453889535430984870885531779676978417018574249436351457964470336534244055544588941180489972331306203966095663748613194054346705851030852982874204013539973997011100028288384659551810916487893986149388012981412903275138895956504076547443897425577766029916778189531552468155955427251192647738577367083628366049254575500315335086025713575680158935576875510525444068463702457177578128016357150470119522892482898072176845650254195139771654696565827115516793712169124630161149763466724208710902358190717575822511354377676594611581689515797048663889466803357804579825726105467069944868500580562353731874884819531399996595250719377897571648531288822582175178789975546980784069982584011755929069409067299021734336650335212145953775511189610330338731558326861772069343426051175801468259444064136883235803914416825102000649810045447423947211931989798092262278367763390790939338141532709654762793294221530626964167958409358374800698726815035266402144194273296165782892642168196092761448873933369691716921693007343593637229122489694387315601438724509759350227530560943717073540329159773234308766307284176146516618146845603483142434873889189003625060537249853482675909654030237603818474578599367156402472186805058059721898909254895303003170852036716180550140830410884010250191897189201319098240264663969145472440386163993152252291056808663962240063043960884403230600994748056427979214108774056704830189119190235888815766484485022361000757100942452931528820432161313092736997154581487556470945553860580556585634469242115307831905617392222330678218014066741894241550395459341726530246337657317713517650186625515836834166042057023456747662810908543757645409598764543256372226098818961332597800212583892333330839140874582364819699174089112041346888774599158356110985962305671719473380942368675253069594976889191793036520919747816835784075340569227454264155419849558878255951344254729268170035139149857140519775635226794703930304455723100086634932526068574150704592050987204644640938654621593265011519920432544950258602115096776043073958680164117699483367221682411774581887883735631294581399919861964339790597620264457070975119263059609093919712890774277693160275659049055977684656467487180379735895585052767884818265630433161188810872208959740159655181677376931128565369907422723333536481350581049868415863023075474374774426205524360381762924340268574223698447055795094827344941795116837922836869744270071160226678071090843466400776034589637440279446901679779477794283245632811857238383403261337557357343134796698986594037821529155650357041442403272312389918602674106536503552013419931752525097153038118521967854580395216976878733714135916425173789824294598597273099873404810995728140717655107391603957482214399018794183836642302558791303301549400032307895671321494403648049106287791181842196140688056646864360705663939247756223309091828274773289785635572766098498558740543565693362511512311741184249450216717670247721456420612231594230484840671422222292466432243990040041350008470910509526244082327710248714056671269507163779568339665933279217161660665098152229009357633987694052428633465932855175545347639833534702463017563706582370555738474458008990267086676781779066075834860930589188827116100487148207606772404414579935177620072047171318275833799660460279957875482582400891215174162121138088326737405906658949075605343917681300278196235669409177447547230468602812828028382294730722474235329813078775405189069429160274119157269666417502563939875112555921601679259149115614381317978599325299880314746246389085186868850546171387950822249794145174353996276549018541782989147092539320575344591280941928530241678855331833112789272541384097416651502324224358878192450507931958632067100596796263060987432033419285273554593224073115538515116550634872761017406216929599831554394059685901302945650513998230908491174148922240073421533362661752938543423580399499015593508843034687221541299493131834498613268762057187990772393294511064303583766980414943113972032706140236613710626613056908128322513509935463488846478048070804025914569754290388571193870759059781578385035877055416597824678002418822036724052415264759215331207484541033407151603596679613702422934655688248983296648004105563627520851663110724172802682111092069438520953549379610400403617033276451508278723908145094916894640914383029742100243028448331782368205733823570610604833782049538732019191557643878296536999897420888072570266963332031789903312242553032592533442782210802235472789216049866776652731562544310709906645704097527426121999063751672981412685120751561039259175030828394093590559447093875855307660517502723061768901234304361052457873545121012015727540090251701219577074189185844871436310769394137549737378052898076172491774827216292863231672849098213051544814866914228012397520298740253312625171269213744512090117028581337438084987661823513164967448782573732437848758862584882744593697424592216267562827729634528576640369924157024778162056799335296493197967180394394324744171574480494991487135976950851987783276904047817865600893603020597650594842070640593775429590138378362155981648270238544929994940899141801989998437171550085499858272300827380023744462304691415807933600750677130987464848304156127005023459941110297728869248005436217573937731818597595227385770906056937167695682622100627474323605935572415164938376945784866901952249443978537083100605291102287174590443881690309984935872259111475214493475120486855307573778887730983226018607362854287867120746251097327050761150558367968729931307677773086272181431656318572305911917103958170755366799631800224688607054827700436631681745602719946121734682450898023142587254506739510425531613456570956057455235370227393214390827350727237752712640632898252385145083882928446748496937388748151061545216224240598205346463499101825326150679940621009448606812782875821175216051179851181275807846590426681152036458726120570839095293088832353354830919602870663263180744929705295863122375735263003291213081242320871347907595603990609338028252436030620358777355417299159249181591091313271890565416200099861632480538732783256625940776534827626155049547781145651293741641460581445619121221413232894983162334863947282812830339581462381030794319662488961831266676244160174329892585214953520722647323772559491161097371668812231769617521649031621033970914086736392048198554608958653254731159036562482601620748434392070073090132005536624043344418123183700436403360163731213229236043526910386076476410168285778161900499696146974915351038916694518768292336707375585922004448033328658469817451876906314574478798307093850741534298310004464193586570767405890205989546037036652649227513464038002385945968764810288828209483587446792733669674449686774629778446325240228335844491943015288151762808366085370257330138295514408517358702739292329084305929523349441880767997045480826725123304845017661571230403270502363319335277922887373393894754865496665655371997723782431131114254683511473749819356952058231449514132449660070391988365961858904855419239569863955943678906331695767068963959336489630840481417032440672421003598936997143152886221986815335256590096433055668664527771083660602106290533927741216319134783096871104345426853650898790737677308080323447493688216670403315099692615829509194021074662701408079938774216693120977618650211211505316905043461458769208783289379517701955889130933281932611725115933096678310687783524690816523647636408477551524668676274651817976072432427458099538582625284235087248303962304046683698716229044602749694206348692717028662703558904587960537838281226159840155110814225897716732053364973202298860294077673939291570315388998337677376494352605214971245278550041509258499552466424289647630810881507833691668296454490833976928432221614172750124172703225962986971015264692116444734041123190853405106593129165923936829771123458283760680965594961168654977364311579642001091898131563445739593324368136630418280731149956460497528473097398953128845631448615405842328641958980585151033702126535307223279298080924705332652822178657327888468700807008860116569467222474470402927135657607134093179777571089590634749272865168312494873553197945863775710072362730138068665664701927588714999594756751581435147723944414887234267266026893080878210247403382486271159217454818987847324098150191407264494866160458002288897884178732598016113965048916849538943972289036468808996490391962906940826260046111202400898501585750485990288937588295716239827794325847509317574728470755148650067686467687871004911024780300574231627644026178745690941951004607222751274241765358138513492325279799413785700137420372627103807675404060142131106993217396741175187970710047804441091709222400519349641025824314406746153804382637630846401211564280575075765044291643752077848424325303549036811474196451414643453919564273990692913596750249086278050506018776349968844326268990488912615833410727511889500751039210278790615451274297722207684508148982214800848856583556171460164774009984112474447582231396845951614448866645540445036919958813937393678667673566896832412501209657068161547458383591777633146608213396933462464600593113653278475710568500718147160752386395913742354817475567178312168399925486592760732417736579943728616524595267904014173997189326064670974412056900059986612978388769386846400695228115473034575462392521494902061391259983433036988840944504437831511171363385325627274864558024904619352028971288413981718009270711281658662795299396804679629832286334393228471433100176654172054689545736658013272827075252386300247426783616580675574144855907429832669815389679601140572981299142327975312078391907502843881068110925563987585728302838830053917531788957472407854187219942611491978601336335291684627974154556453262606640179265895739104371578566099610272307954056923149704160761976519157693555268865464955514573249715774218932028038057345898993101398518643378595627409718332818604106041254289919656032578695745253223381090738816296531510448849332003791573000220992916772876782524919680595616543521969928404126794493339463858468773941931975124819116692563921935585241277636864957061198813630084871283084344454306581122257515838615294446859164425458852806056391760175977845314848852546133747943219805287929231755186924938575510920655564148810656818729430215586088441945294766853216562292273501022358624666713069812907303242729540815231716212274353922275271966672299652729811191555732352990186414389161835192268619726335679481657571256734135153981870132382816312468186145287729306006139160755021099130023160479253925745944839210844833640161185171135416597772962246928653788938602365976629189865490673311163395779485287402157816920458298329314454681868590414964637460436766401970557674138947212571839307050598599848544631959555389890783501806321110589107560593813389862588941861511438552916769189770497669426596295314644276192585026565815672542472925314754530949156643059074141543822684005945943374866335447674546174634972703874661165264772586595170910337041062725703161960313668221751162342421902540167105079847273137787096924897381925685323509797109482215052662936551336623688610577256630536646482737341362069099734866054101677420436762294353668599821544216147910082293291806744142140453295769814646501695050392340888524528136945677921744430190943999885898350079383910024736690415739655328895756290603223180286596429721130519234505923504369047256120802746439543854060677097262570660790686573584315098525921778213264649654541385766668818500932637277309657938227539697295297078737724718728295770861117878158211361716777283689034553351053145646241839434198705196682606450729406032244160236044055586541732359633905992210724049536732239983676916135652070634004726451250481108357168176215900108063263353452152609644727175804102939153991333451598202097252498167482316896892896181588262804284317370733674293137520951669295362213561731173042468530940271102971598243192071994436941539818604299908098112566577630774704011817836825294755610095517052762728184664981110502663798081062346166332380356215850917258818118832149822881738975631658906816671835125635289026873233156690213818618001357363867258130108376631788260432410574391873433600975149289822736501544600004353410005149123479906060218656743192213384199085105006568213966917054653054585929952903992934088572965209391108263558634159614663856414472645945599715546539611885450118883274807683582030349006983415158995073643182032196946623357413367180982303538226131711654110914521162694614983444774295773989548258682318148162132582511359947517858895546536933336755298498385030975347113498101047819514458380561632416828912677094607400368307961617630694205369650284058208414900567930855472129381920492104973534959628020355862440976439418537240574366356288029291721330765532206054432659882933889265989634887070660542538981895620651351779378244895009718228332849466416499649312631283384219206186409353862624402573397055470805924045383030249792736861915077316878252538083643350539927040762808876256916990907688906849430104453716244731726705500656589883188620669985283550759635581629090316499950333283032407480223007561676775773761092749382508814686386654558005454884997405348704438206372670454963904753975244591131142401633529193737644384486847186531221386131507340219358394604074026148191235864638861345818730788517504856998440231338152540136827506026065053846800619590538611406158852457851822707081123098573892764416228210833904580545057378191288599514451970594738854820720175947625926931707164122469669215268393342336830177953758572865284604639283502818410833600902126156912237137416962954417602711388501504247424787798275648323161774097707325222956565856199503424921505130014827828153526461030122984061580980270990096071804111881990556267659751965289660297678855065802621375518344920921213047140498487726434291926694051668869560345176795954626704292439059322831332218539974679316104447028960248604170690822606090966362587000354342297416148153466602466360954292374723431093529180793899142145066130305352216046285227267227624662137851565849376119086012046742158375800596921752371480094890145236595614449265091509493711156968326480215096142483773118397346589750457060876857350390917949005662102221852115901812384483313695128175694817616271970777956897851350087325428820604432185662538606532169667896717460478965086322229710390098628105332399847940734472255704797246262121975538923386741864177166747959553068268840826878083719844357290087736711398300137458557575608100516072563989097939992186699562830153454248244372937532245182889686821113735367891134459869041076609300499120695691324006578786503588143774528199972789208162894794375763229884232198816796621534376481370661360081989623420692085424203648966918046125161107522900248484519428463921616728298492227575932103426092111842093861316743855055530138650167165803134103233241238310091902201530819836353299349255161323336357684712754166991178614744779419999415492256452705144537793814974538403618552040163466517590435063054190095473849126461085886838748431040702860263461251487875181888209106120440722990224805747137824508381860217056452749108461824743058360605988159947865937378999605027783603476686517174406515752806857940861682944899470423635473032615201771054980557437874766214654796881444997059191168348652998669177280999690877168286271658118491717259534819262720545400761148915548130698901520963583928316940925162078277193042728603627385488363208811740991387510453108036799100738362416331433977502741431202255458890332215236835459351415631090225133847811893495127484039275550977576115670232832968121855565352219540206546838776116299587338870349189471858779859868479937415046717338421729208119996261404122397994323813941441287283332856577267719054723902287003661679826520426307784066335031341604486921069582588245274822691358206686428529021963628777907572222685268319148238972610846114734482424747409700990172956589694157079524786645974383791303455591651875568143647746325726942611155816910646534097572542796235937637791942577578474772099263586034626995630183836255701243010291009983289325236917581833261876136613468684295172701775208925718850359948100552615622346205759531534173895297782031537719432884435237216403826225990830522691867845659965519603741110508408664175057758284422140456339694949706208149803952629492500965460161493979534793541232796262814587573768702241579389367791738479268764091757932903798999766041336177602782700038125321604067045489518802591012817644541453121849504082914834938799867429764864639338523575225110038180439413443991000693749764536810740222163105528430071811055908690139811412453767962483973064872266058990791065585358690377960447620374491004235250387532210024187858908778567595567184205829477545966485770466136558969102179949607692972873049428743235856461422705322879948269827373451650717669172254806572701753279459811021507020666664681710086907237063480784819047549774373523187776116070439511412072053197813299819941836048972087732721477830873957612129569407138591807198195868481676129636744659232999446516773329005642650773468108951046914175011603652871808015457762945252457026409808491266251114556656243281768791614395633963623198666450117400568484939869457032273167443449211739732904931609750338438291191815565164727601005385163115173286117060362988665195160408503928135772301762899598491696465299779014366465228096965836293946522126144796830344399594988069727433017103431019587753995572824076615022476345779332790278771792675474149106751055759536514981325445400945961030180893664828066456449263800399766431184782008617821600197649464462082300242631243574036197302572504703464532462810424704263321467683079098857807099018871209145555460975568411036201367912538016521496850281962685734266724366510966282988909932762573401769964236434183232849378816647356534980789188732504296894112113902747041252121550240323302793669517769393212130502552863036394581904487372839197131409847362841664067263710050587853838715795104788781656905105902602806006232952190223810714393011965188444227264044094027983894915402036763601938864836148290766669776932632557724682764811951607119337371656524011363416699583178534662388956138354833152318137902565966150798592817565593772909339887819932507205980308590713992988904103571365980397136625533535307169357042497350167088509473254487273231778917616884206625304349538128655184775696817584996226559127067325874892839646405048263571436726765194303302590036342704177067516161614156638349284953694127067205515198759895475661738741817071846465614849738255263771286493722668966014881103098463490660397975170840983507821748779412606388873161956619268583523208914368731795216239214441401808334357139441969696075250957834839409707407925673311162721013275168849885556017506733696112201730694554054022653833354973075399899965745563574742881495798937046721335534020686850061255430657880766649230732704991335655068819274476381798482529236120009816823763882448837447847449421329246853762102219849073286886308028266285563919124000768821819392246826972509387472827374206021590087788956116308441043463369940614321466603364017461356839472437596383151428103932996516956792488822393611341961898643071756152847557121693034518071757448161800359402220324101390837297947456889014014569367479107326369961336086581460782140968886195475349793759462052521647849194684848517370621299799454172528512952127141230078740047536871196542097446035459649607543199973391446516028095152677214252265481848356464566260340216721258574956309579048944389409450403836164800177613892450896437470402874476014855909754500261887427009335254545862736896618057460518325617268036982772445552645025060837642220056307806703143520220581552915428275149719965522106451243003745983869133914138411586903229444121876305310466239974466237218347327190106717701557205324480702179048440224384794930317757114291927695343313318210003943370584888379482728191994114740821568527781299454454809598466252947266807580871587790100553186797629345025430975458663553574389047496361717616568722418604703202706063127780476483141312413579899387379782957982885765932932366235272297976333334624490368006498199725597644916183488437184842518655436367978961994204841379111140965568101432678707347153072712474108015029967832288345992526205083105821096362317564435770316722602394407109035385491389532868049643026075575132190353515903670110639217181904317257044461235801136271082947239566043417073075686362527930749165139005334388469979434521324686954169138994106564429813712730614267396937522007792829375872323117240064245427983571566781014062051756649925065464201541351029275388911180267111617066053292038820161828920313823060885482602961490721712900610395030410529676193968158924065182425949485005250157327287466380544768269817154672376497796897817370266012896817504730069342645960536097074012977414645417176917102121401394075006499516456980513699381236440060965117351503629122912825505945858359007599556469722286229947582359666540892476770866991203195213166517543611561960951706552279222458729105945550374711437329010768960785326847691869892229690446691497099329747813579715366082809645781703525804575306758566463220688562807707294894776471480809053890661728892667429588250032646449273842825945591579364754618418465400652097722656419381780038942615713443943514598216531192367423755786976439033124320081171591645423884718894328957605105140985201572009713098373498015415259793640712888655787585643121599336244936156842400220352619119324059774624961996766760653020411833318337963042839504957307832232498448085056651424776833179570678105050525862461457019288064043973824666382544591674136100974771041486856935356702062267299028441840906950882914816050039366956685376967698906523651072279213315987953150053101066963961421408285312472248318100624810382257844224732910286469101743548501059770742491154458026856158776504673048492395581583911173339002467198895687045338085562513805858415040149160028507035463687011824003541049991274920237686797344064085928016358715554949286775437939221120149303731554723838364893351177758068542403173725982831994995431323242219253598517153037156479348205176299211868558250016979897238083651864645448013981200292711834804805937434642628044461983193318967896063571604912068250939587119551491567354960693303612948374712278195003646935222526440309023861367392540097442972349931234070681146977053467626224035040127152066582634281287363109278834873657287687254681026074239853713860400038125960511002321335785905619924654387224734563824690592372590094015651080007784670637251335419001369469761829582159934024404815676020020667633364971576080116756794705791173933933311839028521917668941990196531133393737546583047002228063851857332230483593176438659617595892553857029401947786476961071597247434022596300414443733351616878110263109173438007052989465288037418048767767605802295081372649907189388921382435779685056137006776705828826372340070443859718138519324276721300185472660793580650764124495362805067384625944291556444538696864862149496992732844623106644391953333455024202486504750407633724801081197515800916639196576830243152879899272766211832789373524047453698952375252209836344222574605967597224688421773583417408620343739404840642235446926621351767528980622997501270669776265817589357174141491514320603279029178368554615222182043866963031709384398577148897781569639846922636592522147454281143812002037737158108725098763646736061647396960584936320375836891382614025875048550015155578753316314321829745943361700065817813004423612956350281294852879120826690807540570016034807149175692477394196060916731719007938269751254976473703327775249638120531351899837177007722677672396204485304491235406354053157079290684601157767296745823336241758581446997769449350003174547726088545611776486621409428081102511912469677187782452187511766320337034431731440151843181975943632118848706253755098312801659076228881869004547292582152613025759728464718069787033462388436807301157901148842743619780700765256777160960252935256014784893377377736252248952650779679576480501108372669374608358560984363047429942130615835973307247623888575339797649310516527967020313511737741152893105722109483040770015532602160950414608677513534126369811660245468856596858315523364653823757644762576986339521543618731421972823673446074322288188560473590935917848682626527337302761388911331744625112763030151992251059914307159980390821568957400264792472659896962316305204733015990663965315704926181772451823621884930883926330283361140847028310920042918328314565210185032786917107147042835393539238335914365769277699384462304979338332554890524736956167417827212559107667240578514303728496420689796087798222602310122494099111252920570519095514184868032452435146703467930801713166356990063602271680013053068820867301811021244624533839689463794476160668228839553478318491589994883615436598501019141597601382119682909730050256993914288432990228623736632691546698955375919826436116374690295775803894285655578717122620368551763846392992052549370590427679544957161733672479803840952090004498181271323783488311747924414305262506539782175254530094037956262058303552259798601800297099448207006789413356928874977928106564096169166533782228512699831470964656837722773220940467149019287594954611917171778249201497761908544025784153743293522141218273678148289951656553759878954099780519819714982434610753347743757323802632453959924264466233708123647634056703767334499014234541058261947396401134647379615813704656565256649429567922339707120945973159745665285738449171926866280914551769399349969535084418545478629493057084361034863273289884103762194559136655523855365655308283837121268978709831932006022706803704750744666397011804903699983495829860579029166614880248185942654529723561602716320012805866014739526562372763564214472291100379968815608804126705971989906913436806160258119287242260984689323158189833450968161883060854748171401649643726122416239527708820242921119307895881476038773015818845898855301321325103472069496623099131200205288443755061212616304145559908782533518131025247066327876423103126199606423893024895448252094347962485625533639120013998389642543959668043072360008421712393048117309056622037660046779320346388120149318971395974077263781671261666117742769913586149826697871506401179511668747937876537553683632188810064139962943259078310530728257167952578929168355114690035104501136650583090189827609446600154571227974016856398510941439489602606217947764471810007159904233331009047616092677909332019848488643477442016084196956284493102703618160987978855311701014335840506563402562797474000822367893676019633462971933482615766865770393574966355232917581758811906029957963684510967711727536631904365682228790034856837446620112487150921842407470892497798942581597020455820581848495328264965260843548870014959681798926670662396284197841530149377141027245075464970647610339194225908411547923504555596672996768056239979231135335620190062350552052511171675251528616178855673391664353032279136973916555941798656378885002019516554925922332020262770201860444361647918253985213685432399335394572170646247446272623923825005783417255536930486902093168444307565332392255184192175020931732409489665377478932230820503633549282610168786890712551045344064898525310740760977616404813301026975879707783388935182215242034559581328152272998995704861745577524871405011702336052490999466248165189115631067008603142277315784429017203749743282316138141847075409654160682096242161036957540183806444625967646303357596886377011788645256153934908204012661857856385326694835351347571731552214982613367200566952211314345697695501295356609260049672543443553595954404794070553541398013032225471380018017665822623398557049469752141559911238385797113399695372922611829677956781251651784166617517637149978788073682397496885633045237014392327657664319945432960336607597274614945434356123686411557760161949442896520837447763440032779075959060439171702302170478593018048910761314416372635139243284736897094419368852087242155621916854198361530385843854564514482452343624340325285372753554975668021243537621569150180989312982893508719487688626559241675855967598890727397300273569455719221759955379521761824845576731513386334112424708201169649299651888018993396560754767988376931029775297301230859476967655143906589794593218416286719451350643410503496756762611099883072980922016573812513259766794892047019146243718178727231257161449023509528527676785306134991933689295784391301045027805188129020781438409605046242139101196576628701941270016290010493215230750614501481725450094964922450468886533723511628129057147178675428303872237104606674919716310667371120926114271093398657479735659132033033279771055780823499688147550851717337699391922199099989424227449996755949956152516126388501194554736115076196080227660407628646952961815582481031711894343123839282362561641195726864473380264894109224918924149121052586088764896052709390204235931365349975648962624540464901416236196461983769650919608866752858858792791002317082328538711932492050449901615835933216079961085335893945581345562474213973807831863315206320299574157155362187550275079278074804683708712676645522435138952429015306726104536233088109859912852455828049496496950117446663877288929533403571011664138653143441384187761097138406515233749945533200981343445676467934673878643788937016078737653421114732210319828561886687880444790980367467431348332303011451423657474230623036642157681018167308549054551914439337499010099396991893735628560100006492506041120126898321339747829708328897707139517623437666317192289003311413246691557605150264916335679638134242613983154865705301760686968417461775642012997564870086448816553189748787686207635456566951820965825393635872508402767091575585642065496794312812611727413985152862987752590384383527655303494079444374133597515369062124945161049929341695156867707726704710181256567079147124326711527864970097046781929443606584496940103014646911453457777155195426282842836534570202126614777632608008213362972148785369942667811044855225735786343888631478311545217517522765989622658334744713950563294697445937300324999409861906059880496792104187435290225308671136746516875209316508321642286116226830352881991911526064574857333807362665141135169913776998763462415035114585356732474267592135652000139165214853450298512885795617950925894176991193802860970911113187825979998029353307814733030291211463246925272076141273915902566056120966758967204812881975978327819517609735611182337423981525558219981475024081312716091126696550507230068061289534922772575416116103482981735828957767508055742402843111494373594335693279620197758442737877297230905194104851526098789903599349462072957891665655621455937005703703092034256190129891103019734724531713459257801689387220294743312691388909781847448462612248493313584373808250875736742263345499679884740631787230739843832596222418594700378603768763602885951177479528930939783447132835039395283117298837075698492253132268037345990172516362709561830369860913696334914807478175135536948674476107091949258353476050899245324871178834209977206363568887034957994296627447775730882046845220334943807168324276795677310946599507146935253849149920460406347778116901508482994179947161470222189011477144326963700586664598877582856389481254324434313068208725742834095930887960247003142094070139644162638373843791649557555544385560395976633192555820240283657735669316521063798082989458097939174024903084541374046979796794379931822505848861284009674353052920124751703055594658343941270758061988488516278854506181319878364171682926142445160161792746705149505203728118448131972898322504100722092404164974316767133038413309756393193252364110437620636297381419705198536507439962155924134627018422818167030065395421754566458977722232877377951076908912326714349910449018568157119310631505120142417606941473936851965782875652687436424669759218565866898305917476443033805089886787628317292488461300711475702936981100928370760490179220427207656014206461371188553918566622767083622129471405278944760507431621575184894806632816046600428927013883196493914022231463803947366152099265634360456998862520449541438156230978769695620075470937207123995448207588176252477891592599654283723882641033471498896539451504369824061996019507189280492679501936309378849887546079990674016813377094165142392843864390438815340060883848718033055712194114285960490387361673826995391984060176296899081999567786401365619563219174149717109993603690407212247850847577387224030600552146667728287925277702790703839526199791031321772769123400534231705840983627893263503542754158409576780584089813329217737260031861228746407421591272015033253274670016634528528691769338075700656833640412037229552472600666910746922754836211546696497702015198813092939070171813733904905434774523350170707058896855565976532504874801726680943883628791843198146673980702396114762463849043351874730437199824756432111957169781567840257407114861790923472279827221177715919253613877559304453746230946561963982781600689955490121301712631424260957679681280514498813694119347892119617691051885990594852016899602748527447638496213986105311964522171192862779736841265577739203810844090148097886943903785569388316294340936231655462842901219150480576066004649173775765666114353504122299187381590223322388865658955826106408668954704698254647888649174149831953893036720708398092769109864581375291303515911190105472156465934699574536462847251043198091108227595815971539358285159028401015779324648336629012776760620134158239043836940269049064866768992021669675662117631729524202121469548391761695340117953077584531412141897567529120095865487394463496934121988178052806344228773212183865306033338337807739768534416347896992368706791459105745379451583631986448078969010444369334649150987957025110805443504472504177746160524126042591038730300080804162271278115255701445536599837011602848098087389611226721154922768928031208215418705604192826402459974954003248419429646938781437578530885002462749669094122211789428738728197492886419049231731179717921359880154405313211892415895123119529513335171155233431048526660724403313132844725156272063631582115501384232312302580216320957599113025667510024346168076783131297482968900111930856911112703101657353176928842592479492374164370190049484354198871186688500132207236945729220537293718714238122795012242630371702970102244084582017265461261082801386679652003489046357112407771275314907022048151718725618555240999685351485171789364019278309440753084866933282700376875366386215673897066065446777306184912081660976083423094713161403483003560127250464096235728124860959742762394591934931626782731824838904595209560481288844294407438716779935231234646445102336790803781481513048173799157666999521238388500884382049113882226051573088180094656366532126554371254478863767321930792748903461681260827979622271310474430005421822825642534442498127736641164723776861882982377488497521458345675724766651496599749049766358034788221174915591491651332966383971816986615657118802346183431408614069645012323416863229300874377050847701186532976632091219220428404231109327334180714850827590845283397208625237082437638739978862058323950552658028611436486132724141947764763516864099672070393609190692521450303524455024066582423905953744310290306416225110772552360217482702046843178463911511782138986120889212520714177863030682224180619259405718156761562333673664218934183367808361779383467186215911005698060031894108064875329712359637381951279668738205264213721340954780454980002659221123103529741745148599959474633067387568794945892143499518510387330988480333384607906869726381281493506178247334842951577098274725554462628405459573206012625416037351397642253336078947987837415363339603386853090209042655867617826242680348008595868218979137532614194095783587094191965540453791379945356252915001070204431299609183429957253595063392206368933861316799676883187034405693877886346994775501179075540160352478090339722718985286461651791785094448064107308313721132082085974469445223958815586559633552944471566423788905008807744168540967073841770034810071320334897161455937072267624068600035142558615123353976062543439976764920293781961179031063520725902543368521871326032023082246478775936968618555834277044519770294113546576704041989497267964188359834966151562107298864158744498645389953235685854614089601374412250799822447493210754188854621338679474220721143284906596303128195532447762508478207427699065756615978010753030132718015631593705280187285168330039442034945810465111371745893731875144785868585102710688594086375001271207285747770547634989084825283035952611854219965781493969579287677658231215875386046869974708973433166161020826719585357066391102837778280612633573381325645086861155383705121453599052276455831893447389976884600363357985052529230515850065449959869961754638780404922918703341793066935637356290098958938123254451923126876241079834574601652947899377893830111203878519490526166587880473373405855467474631355237016050160004169792020875359618627100203098485843663554799048184216636905824076849659849397013642082894798372936742678025801166007398273949982500168562287431360507967902369840845576553598174975740355981662902899232079729757321025694949246268343899686929332991348049984181836466081150244815968885664617471370250826678572339291066157469588615115157314159491020256753465983781362103548462757857047858590216852481046567965256922058793302287945067910156300542739268746727973364976068742570530570440554728985369876361308229148872825337712705750662155300439461240958235164063982722057415098199039205270471388201187445793400020744389799637383035109304159265955301566099051802280733791476528101867227944221883704134657771089583341634417337100709287803377714403101823993959065559045528108657015908435792857146983134047351940398698082741702331366446737062897162916838910960899387748179588792153192917165568113093455874868904014369893747003113264182541674535895607809182631152959181206380387408148851279888020322352856261016797891368155950409867421288194531288548419677938174038962537394824476778280666521223975831390811749007645818534783922914725871568190756697288112522034447609408658863051613586705164190519891393034578175956256283319082159306369408199360856973858178733906829135629628818410887405180475547910857890551854417557959781746235352065803653780529708350820814926055145027211790248716764908580197764209043303603932821343717515860121742670888106592004906000110163414550780845969509933043873135532706228678138619688139280809872917631268354454145064821237905920591233820168513990266473585088456895219390185852390314577107948417923371539755380238829303365123089782367875619465803911941857321870752031977715234653402025283349011101602721264295449684186131927999461671378234217096949772437703203915650754236863583496487938987035320364170173164896031186778436461575653154219421958302379907678363308270228553498360282112539529769397872564770903536081453220233191149663420644547537893783272386912879971805592417290393942700673434870749796995715871691687285166967240727850095023744557586813822026004593584008256241321963120622365099481008030983153046843623109966271653314183420678373737636002775634039887556704459576167173205655779036623415756406904884199590308986579861499710237225296041734637379379425596859743690230180856345501349286608977391752694942842480496759602869791102796259799702437883060710314908596085235824688567493318808518102385762682301255004902584059809190336016953855184861597909721164940292724631234590967143458141403869493284759565493719395164978565401713341360937069772451973281579111841871039427777499013422451923266249950877265073959558830795798180479204064410447596075494147159257960004713661841014767656258869587589976409844199141764579755208730357437469144409501488301532053874997160647184919646627220699829074201351960771791859641381821433217117625611891525999001826808005786627422612740737727571121942716105113110497128884189961688776624170181207582508016038396686035768385497826164223122556865769969287496179972385785693486112004251518994273969268298234488432555006367986522592332462586745450433905926051010994147253879778396068219384825922654364801325745311723877463448089270251100499087395238286331391499720170992731647698635069487249189173477155496296367035993451993178901435870081458792461326379446293782094722255615297309049013698583774499767884475489384697326043373785985270304302893013184275506333354790473572516169925441403573407744404124534252253323040968811644711344812803826413678271140718444236048051205908972269298354113622463181656434315708823716920856920517202099846988272107917251431471786103687961161289418008790393805480262081354969719553269930855567955551659721721864510527592600196103586708663583412719325072275115704554619422131443384649546718929290092942655420964816186461920768731859936498804176951016269813040636118186182743369182369474497191127061780705315955321244056828020163252322622529864898477019311702538076922199617933139578719433460398436132845888292714913332441635932790431284767404201993217526661737615629383308967385310883808478836650747185665012486160796831336237894022161931352876065914098241083264606543943234548610723439936315141539672872629853845053528553871911801174147276684821686937099475026079298607450451282313993447717563740813742171256483366588986806158568346091623051434974089528683426900392681985064669736277239782468565849406769980524707704954326258775465346551480177003370684542584161324261947981165667032730221169094772814984529821942559584857860294577994859685408526608141500490796679646071740974625576266473523457899474214009742738627652024694802856630280263731182830984223860684877191756817918862366469673743127843684781938288119829469079540608573531963659726858312103531116170418775861254044221745992200164765202867427522633915121612634418928713716421787753608807754076121189249301490822505877606221337041399031870090570315481207746453486588598473692055523170034306368786935905376942977556427147594703343909235272550132978745345985697222429707889261268536529921522754529140667056832228443514491000539566179351392004289374705282901013343713463014008186746279223949849933751259821552197642526574004055793431328602402396365841289502534868664630252517800822181019499506038229331393219577413592828765030838783162497563531424649100620908546076474923452015517364055832691929811836481896833718706630486228429835255719597716982571110451296870909151768439880586927866766433047321789907238623546752351738240802281262165919573141108506879370428070828808009016153426373872068725692336105993226306860017502957116086876664063726266431250013467134210716132442553399806235658563112695511874128814214762663161869258233505582892400563019888452382356609649566783205077023846094997376199142489188191586746610788520938476645179832874342516388466453046831198673526109674510241804305910372482042007121172907537888596710782003173941971374448256308154011720399968370255032199244137838921321135569492308352342453474464055740761971234076488695787914449243344906082532102864424842741235238035696019842517514289078611250039838578721671135921903592566004311222737029128265601933422268940239969503997154412399243095918605972732768987539145966612128729616511301960879850204467920838656076800280756969228282021473946894665208703852167663211321340076187672673890291832625010032599342942724772012442576705841851829213439616192887045320617521602655800854811780738324406678225842962116785896328928633460125372546573127915794753934040039464830932052348646006779798576186903375834181594044789876762569518683853519541879624110704461624579131185049014525815727802461607658361778240717498192081218311474016364646121099733396494458659227768018945616618237671979776242143609032660990837173317407623433056287527345443654773217332959410277114306945434279965355269786313011774807736542855643995797196802694990377005168152929283975938428583282884165164747884344455628864925630977189575264530712113449452993473825783644839971302958770651085292614628315982703209060215319754985149681702490354683105916272150556053224141752935146260119433571298321250374822277663437850664039818847034049607829353440701678158774924714743318265908446459905927309681106453874394456007801344381838803323623201091580305127938678760819219948616211903853144423131089690070505422188161164804400001026956626156666971821679098162623159491556915436090715873974375623574401526137617011368479450389066133793066755955915642180186488057139365527647961809638297401654250517082649971496608955487911989795575047101184365851572735460556626674137848921525121588240974865382378827030943611402281203791814676413337424992251579688469151488166290450227583004359497341796636404198601324077497260731118464144325958505935117568025181499088070038225807320442104218719543298279292572705069472239545230816082383686856772678396770257561589280817061912732900538801122677356817517050984663801532327765265204104031760330880356994736687575424017537192282980561002334558407978985471099842554342654635995589557256608654849767473495070035118956370716171241533016120272604482489825463660184076555396464650073221979247940507045241920561793076168380573683845257361212625814552364400715790315429422059544210198703026477935299604349873634672055903278934810328273207629303185378516008561441227541427259950946548512167721356505090363630828851621602564325654590425178336532557767822867078284775974951639355324041852000081668865542625300106118222538605617887974244061941293707618163509033176536876768775337925422088775832406227090747514194887954776983894684386166609489883542305634306279514355193669050465168837674550979672648586155429332379476265779970983173932764957612443212935949468498924062629855076149742678484754156045382450331586895817824029206320671268591175314846366939655246747735321958731952432210673556107225900045592752385355800098165443175171841191569030573732134393070005594339726325478490715503596198532214235381472845102255223368272343879167825114608643849285195089667429747752275450558567972413356754433103248451781931703991594223701671041544527121176790088632889528140370043359791183714671322371504298308098168259039070281238175998106893539652324661073220547764611965805319971886902324297298067019993071825958100050183222034919537607801878315243791713399972959928198585474039792054194128678879127213359044088111531228604939372012296238250289730557737968022109002689194419048976965982543270110289700955659331796745893295740014926099952983003179439588863728665786888139037594635756969405926227738104475141532094382757154862128200038428010367130994512352349467720052199587434581207981392398187997270422171160547016140242183156809843179004863172683096158043513670296069243010201589144387489891543524037817808257113933141099744878276055582713202031031793504149224260797712651019488280436230513042125795229689857303086721638415615946436378457486828964453533653708290242307204167147789225835740068030636622575643177165574945787882649799840168427030959226542082290239419311217375769164504675176239278588232398362058148381582692055983772945535162097813913363389198911612954458691190228886949195390232960293799111174462367252390470059093961383353458263744841135904112252361124927269421595034203045701810866091494170935318585642970302945182936213743994409135001429871254352019328260927145352149724181620915780103757481162388993906148244114828333647566021364369083451319234146305088705102100422995814095423075366969897602011202026611211696978077593586549305279255760870339615693027151438145905013031006443025727712008264939396938950070773018425010465053135352583935727891974323601643464372776101930078975368409049626580793910705540991878340407452165422279223256073925709720927984942027718744422712895294823413882849017593449405333265402935079218905959069516323918941801755940785151582329699824951312610855619962769714999285118045358933780759176246002353391060740310885472151485339212499529646307088224594433624055583314898738507792692846154180724580543438489257752778420555165899777880017761187385725528821355206199484159718397415961077918528545195193627953449113339753606185136948656914359766172005715387845294515229506537012750402897736565026631881290685507590212792660275522762383661604989621467116982242524140909194467441863721141137626230432319597552473122858740352416354926600768442863343882921376172287200081538592544860832485308484834357021340074754094361219601775682795438519245141995544378318248029512219366258681618177745503860484693005524977537637912108881785937584857579832214188283090232667833549637160166692104831205995328010532724113837663920803586508459865100596351795704377773830769656561584081747238688545011628465090684703540392241537676640614568658909541441271395304079307666487890460880601542340541929594779616994846595960443000004423820510963140579969327959294245142387887289073798634784083376478906396716855910206469269098863627171371381365228160832428146531980102898615045056247371952828141281429755394272406189414856881282856171634545063518797031716250667698311934404714462235548062698402245168316017116995625784346239844643704121572914196580539049452421758259415216100786661848132402561058603434974066047597769268423519068024723334946890762688370131105009134583772501687232997853898589169512075030670676048978893702679888768972959733534099692275378604896743791899795652199806398644209214209947217154110589328527800815756732340090917539088436458251665016672373797964787434159428734590927007357622256860237373882417894788304866068874400353256382140676404166961961394075949090184580478880550552806813371526724429789544022577015576039529475458316062765445674656220445017709075778661542737711222649170996611833087569940851380864333977172846529702104119957892990010380544457564051551865744825219622125000724342589194964513284394662753404295889547222810916298486306570093773160032649167302589724548401591045986996307749502944947003088811475161550918567959773014718257104296727770899979588962335014191424005250573590516883715496873535994954938011028652012479203541676780311521041982351896310893994469629600029002082599053052083986675345156912113629818805750935013864228375924410696130640479243331417493854815531368431748060289917240578173606942091292795406966293341363747576375684683062353157119085237402741361547211716381279678853172347725180636652141435700680898563981974788991151516520566325192068757151085763144353791894863021415287798089997096725558989755308997230948168254281193044342951413116348198063491967440965736314554385913700650015684050462410654796325504733594579838971392220279157010085287391614596626937416868058077104918937970702159979622431487277144376558711670719164121416833742068143742700775581492621693521174416693389868134294883786780694093938629797610036956769509915650315439956392650200966429029599610519651176915365587419231334176021723891326026636161671385387211922627107475838988750898623675048536319005657748032541100957680609429113367481025117041952906909215672084984526734700187659028934149090171618422989552898824775244375878957294743041843819144489893872875199098302471050025008868354899928478883826495450570149613694774862283586355627460459426813431148037169894724823352521911467198088631520052486939247091098335846656695486123596493828226316749434133882401203192021748691924307636522915537834938355652633328889473718690021884853165779375924035066248646765709605887177059202923230164008416654164910528722201147027249993878811092141843586013181933100619337005211562165275359188479087242674187369268798755547806461846107305570742073904678948664801981443646536181529819218063417001369177709887304643206007155370514185527618981165480933084135958342762994596572049716726535643464186779082036821247169692966793532776856886213099219671425416515913308718938830560200862260776190512375820924395113217520154123120812499539519851312783021779832674221982320959212485143802435259456334679885763587333918141708586201275879993947752168737317545889843645023866309129037619890205719774678035550846109695482084064074698624911135550750920935671524210874557805386396548129693103335741129008731380962159377969032043637153373818229685933520412694863904107967292299755833344397221053040557887248050876897039477514085845028329833414893493789098627415713481232067724873352273268016814676577129711058151356593511596183931703802784416548224153051903212365343721240813344171895396176369274164580478681111399640534431894679443617434368893423112534340181270569081107304221452188207646248429032424064401527467248525370334386817259972618254121449277293726332793497427006713016759586001292058217190440131589271739765705258321510926034202924903497255000394750628979511708048519067295501913303010207574659093097183030462492223969263797619416246658078895215600828335464727983759601622172898256154551304818344377360912283511543594946144102553558075841025165820131091064768550019967427968217563906692728960676324174495495094259800518588959561797089999715977512603335501663226611801568338053029139841198933653941222414454182476811543836064160777912874374054433775442540354920378113873964709269604912884140594879477255951579928069045416420872762604499081771221244996574409040582353614376516020699102465152537934628812287405313986398826032035257920656229015658714571880319451203322174383501958527743090035111290243406463627918303379744905410968759040962766975409162519186266000048081446783405616670486121919692978692202590908393500774636193611866704000261920672320371652979624534625329432185240525467194682451273514828028736149577168389095944764943876844649782426105929861077400919115495390471253886317910972527502586531102489253930052868405206158394958526477063089607393431738670042136609697954919951555429516416461883710848292095425613050644419132200681408315061583447825267098732369799441989680017145254440609257868641711030390664792976083787402462412481127361906822487691046851229068192691319148176006441290266579739927543146858026361860530752577806193310913231875391373524427866570305359608290760606067558278681931377200530896720075587936353501893095194963922788390676867239370475091943249668509138229712644294806747720397989620139267941538514899627538473192261793310153946725490387249175338393780915620574546383102390710964663173936642182533016724336723215534931232599959839202088320772457346764178049286341641282012132640036584472152330945209848612196847801869408331372647854586578232925499931898929774924019762421091441027237812144320229443928011336989268040737541513053868951845131498320399731957086134329696094649084448077612869556889175086576723939520444113427559058046635001807709987086079672379739583976645201468063435176878167915243472736162482253398140660754471816136738409977152208926001405088752004232173147664282910973827971967479002057603832492947176075964785118950926522116628879457820079481434533025628097619802210585702347911581658605467409885988554420748036304358323046834153405400924970807727667154113546602696181838177705730950818757319200417015751350295608616107395982169051457884626017374856670623464521595540753723672828743814487946126746608087104062164659361520412220433907239105745718127135093279669204053888373317280985135788279058606080430860305696749055871703407267626347362416845633897295554091560353782929355745611374401104401031319368373027471524884022141330727916466516808885098982686041308614071032548979485890385024080169038310587233522794567647978586325554407271346256771751099649531378634225351495942440218880420449983303149754360555577771106377649625992973252564754605308492183936914029981067743945751613530714723651287448826164380554231022927688423281637444613893728316390937709458007994139680402866221378196207777927383619116216132765942411474468400556230907414107893165818420775773066631061312191559804439043897287619608741233827463187232494611589180940257590263496537658509787580502417827756937261099012459654400593061605570860910208614365332946695023253863866245402667184489206487837913568415970377287810447871270449284041233222888573418577941716476745548305929424443892503707293862459108363950333625054699527800973548799370725008125605550608671830026286746515323386952144730744912162781561469483629476852183163106841168158469814493834940970501641292961887753671917902214261679882541360225239815634012883073672381297989855447228464674578487676837856221280753318082182117844130810773997707958001389727034935624281745658943650202103026210088768628283379146532581040590807695434216727284899182654030671913964783745426145007263394781690768900530358961050459970381685904534742238733533950971116604236377895380172762113885978904037855150077605468807706788339756482005555141723859255476571696200636645956586922985961539452428445257698388855709541342469768405487759141090085090636610350540822168993344379087003702059986953057970176332096492927724078681674348022653233026590127409872391242496060504148231620527482191920821578513353377520148443907585187189218561938124987307250002484316965207241469056742920598969646770996900439846515616742587523308361713400449368812644736886945500423822258835129247427483125195216016549019684398522523102647037718621743884856270968712112454782116392107978379843548006324789793269494717085974536070301911791928773956215214578887193600469531089526597113089335363253506318102776963105388166472995460397213804410154555806547710643120872054716882958416345975721499770376355567044360363168522553943375768239312983924493293404540058370855037484339301621725681474031375573953233740642481589426545432497237785439113081785328570254636860201400571359958595433002775274627311424061690084057392785078721470378218202195683191189299227601100323449476392218736997319566093574385586685490519579359654480596918275840417812658262276849377170167209775962242316778298814578108691852669338059474438967599502016951751298069209794368597736301125344920214806614335189899165432555110521105433027097311049358957197123747120428547993870181477494572885264029010308254770031297105625991341672264486337794708216302851512337490597957066820531375767117956558636950605178572404292747813618876386200301747440179300875781205419650459481595158681615009137751889914457847123677551140649184764774577597016671249624977580701058520340589962772078746955865644337169978709329770135466657698219220868884676571125844957357647922334974685152643912323632493000061926970115948872676680083997576281920777256056009675924128341371409718554135936490665730551261078881214678710014918073542717983095302055945547972813838164852491505449640030590619810484178172926206336360741837606163810595230619780178392661209546510348687154830432124964101203295528097060087421925259932341430219204126897039883330723222346459238700793189742483224804724855931500607770636464768188432204416928878951064867997094635904365683778161964839079603971524526191352951138641146747385334035496923145606855428814537074653677451137587913398321791782221609912965760909613155661087062529317023427333856895464469154661548825840335882020467725227736889905496310801584315665998816919273881786755120659216658551379888616862731769970528616103392169234741861028061651320952715657632067631085956063910147570543582086471006363068922789806888088647312459535903063952409483718791553816883856903295390804002387125383237005448757239861710356479195576098035303251047827175378105338294559351195916728186288686109986133030583199198890651774677212275901025350452542656883682656712067996235659855587765312326180478974610794873820080544527312994030321675634924408274225131408562244449068973381848324154775543638282268185343405272423567557014430369294443487650531598681389552735524618366978876474382292681349694951624388421331879359035155832071006682435513525860890234761901216176687857567467659392999133685124706745968718155728468044466483607310661079051439691049994861594822870583961664551918810567387353906059122205525133449563716119433281143177391024741012526600063408660083920089187676335770139593267585232141429823037647052857291548479571905827019704388102733415369732866723940889621144579822151129272655119129178299490721737806365738645631721841427603733817125760155239330207729404010764483223181684812534049628233842603736538054243962245746446588130386197201079317971284909086361905368641282000559348410816613023741427384944060651995379201733362191075309010930268951791422325336733113660092321337816202275775178657586365173292271418708243132423406653264845795225234257517449781637764082248708514859875055825269354740983534031275361776762497664309554743834900154856684570646859317510774408504584771481289780843867496534529608221269980614163817061281700819679120455430096412841139880039924581777518288523051383821066131423847316822157341725534148185465239836324936979208112758709722475799135993125184466301948949363767214423118585491340686621236842280046188075556172227820176443961399933047090904070080036566668913696007376937890087042731668004242097102880582362514548420139096323650335203173259321324455105222138212879952707001943301504227595207714466061784583672218446144436835410194418409772201587950900950366616384172234352594221347431237592615354741664816492199255334082988534323893454721904691778713922273602242859813741218323020718917341414318946125166731448943174950675945666390358783684495409945096681399028679282894966611886040766935058101956995635694853501888462966397556163091967185884738537900584401492115861244448481135252881991815173998889508151406024067168545795201416895862174260619608182723926051271660164493776434206943710093187716506187802463940508517115124725772909216881121068492260680344327418540241128953606891914354161341152106588708142526135618095683003188211774138713793566485932091425201173061632262257218589243419706137769942147655176961993709935065054123475925075572555131383456568411096311667406951689680118483710796117049322374964499333430619955778017528657347737792079865779667172466175730658882436416215732805854357719362691255309668899844535188936938555318840002900774761930621444173891599164063807146838805951263816691300161925137632325978612094761337230771731809284094001031161865857462453161843076665946456922638127279646285613180142692339822862539517889422470344613001009372137700649616193176002516803858704440477725905451218904164059940494617028953162552520530117273218207596417457942015765595981016296034956160912748155899391108491085190321799855809768033852549431482140477171757958233228158364016669681712539590314266784683661682640088530171943694127063911241934898677520930469432365058402197126977945754713908310900343702096311181027915787643339851452977633367969820802547234430609749105901596045386277605293645267092389375726040191368235268944874252243576711004797608946508719442207363111895932185578844555612904281455846366585959802207393520233744969443933432098262931339329526240023379898746304086202946611469869835491832892226078007077472613047009484039808481796440745448690651304197482323266738546630517858593873219940737488238941382343826228018509359062730928141351914184473586255572571075785510044716160517471372196870368514700985659920818888107617509741704812170407306307639478282040748012816038210521083625469330359350564306670365205473109045968982392042843885898880636350971320106139644009598219160895195453517862858863080707808692781631357504656697642871754405149171753468991511243398742233211375480130617449870926509865395234294442811479886081426126017352904861960633556801702245492634452673745102367093962770590872948909255242323642368713239666589374413975313156635827442236629139112680588693384246727836046620799459969822487369183131153439656503643511497208408281390697660185514428094444919142365635474951856113641196772713880535523131279437256165710270001057209221683393651595851674766382538519763089877520218601026017605821647523685245858066155503335480892715270993040030220159712114501420785185586239921648579014895997600210517018646430742399652920640038016338786988971047099406613774941847258553501673378370515159160420694744136923559577475655811443328613700149230367645456208460589114404828809452010738277930441241254957740610607201653441050475620168310999538053763430043739066054689882532653409244956132879578436609956302796440559990708681253639679729918597216277417729295297973468880965076556392506062258633425728973161923603129776150738672705713039825029470464049294491692348141764166314615608635620099291271000447220615728137676113496551652777064165679802959609961478611454187771346239531827145665284789486339389506845607543368573790721262833438250030594497752805449340957930016208063282819216556535921619126673304542846961467670704235641688094476202287632822050721835962890217451094717651733516611028890631349337472863893739636846304975331183391091126826092415273621525485180865518400557615478396704832318741832708531177022160194869013277865349024243412424816095161122868377313684046608684006000200754485849970647296734161226730400998378352611349216738773336900514598471089594416048106114164040145895980226002460551341383628376629463240271377179940697377107703205835925074363153036344246648781309519752358899174120609291431812497561174469515953636735914177219183755344781066202676196107904640159265318590439513096485430521722434522537411452925027277332692428431051738865900553398578535947951683980727081961773813095184496049544162282995649294166596746186596018617954444196990211353896808208660093232383978266843372155586487953310144235905258136654370950511498109110987908587266248998605579896472324551754723930962482178787627678449182400283442900851978244015486892562380355773227024184832681847652041533601902432890753867191333059026412337347619045496261883127377702908882706885752289421024831432023050242483139136378088793926320493213208512344881962310645698113884460240612879899900520259326831887944337173243369042681258498891356333572446136037063971142728182467957242688511957756103898304334769233925833097588430623153923866825517870143430197759892886101216978019019557223748524618372802530469693573447795332201528934014297479711312908781654223721735410501625050504519037078159946783058491299447535810606148726845403808375440494739517438446142262961200449503815517393643193687265785437027453936088748262737607594864618348673032939873874151287031516246636925392350071415017179972034583702318489214941039465732180063284239908742738092672339124878539191764040189112744800256510490399758657815545039349847231493458967849958679322634496683981487621704168432605326283937859705666520460003890930465897225947023426878747314019472786152284517799357589398177506274607014849084956688018078685704618772038338144409245091568582767909526973559842129606917252976564985375489813669033977071034467934121429347171597257903146673434646996708300779222250490442814435314744722878583761142352672137777455869760361294845123243034821101102506381173037050156231041658825786662557041154281850929319916844378882086775507526819013955531909894148686277756911950954770373036081421248164443530840868675048198890323026273098012822211829340249222974858576241994290936819856980651434878266490380012166863829593480459823934462910075070513839150496767754450038342784154674061086918284522027448697974161887605027986605420261679967689476169635966636673067285205939502999783339302640302471484138439477114437234644346183748227999625171003420312949936736547995214518971506899755561711903686530815442086560132342095831360540554993635985392355089848616075585721877261837422801621637132872662754982029249845700005267101540050593404754891201493484758391214827790531573184231985683321951463754000361700348136901790079115146014204299565860915555825685932025041753874779522727228135295964327475093569060475977853803811899473556119817016299128521774258766569148070457210721689768412394441603472530499233157279719908400584293591976713183839815056706433267483265313835842182672015730235236351230882567118574224629058939736961377519673509616392069806695286391047712093942873425637157534989987529984875495608187962219570830530106097625259669173459043864136126978730386910951707816013747180544854746706862813435126213712689432106915968820948566289316288113761817310819370058695837508013291444298707442999583314779778698640932679282420369753085688097526130523196064439273834667909671693627535718315797595564002551616156187313513227998773158891682352568991214255219083101581700161457368555239291147143630977024460109817049281541286924971344538825656359511960518465357133885780165815653900255571097412370500739126091173750915928697629751915588917874854778118567789656206740439655314329058641695272503926409263121817517674696667906850949594718992895491604639499719495527474008058281146397280058245139955834916032027476738783202349865552647298355922292679243269457823952603560531775914551577900942428604387159937950488524207598918216129069553229709687611051023746702955677275569723880847529703549362067187505765404810391398975305822543159731812597096250374673307936073523830956327708968681574790711221363351855551385387305401555240092249714475059699389375737767628531967872082470973091957876683314273179133135192500013153818616302219407216045838949048490274094738529162938999603814259599782779523183698243380967299240101618636663286128496677108162492759659119241958796086414641692876435297567259488719065577267261124252056934080558868131264106421740100840821372787188320555431680262106996391296748602056825314217377899626949236905030941641418543266409468837502207198069215803029535249409348061572892587725193506405331880991607189804111514345325060498015536291323549374147971738239305959392388706843334949752407932414189706220537525535918854260424154756490207242020369267979971712444556984381432840224944399188951449297465985659392302594729822495780600936170505504938149869626841931420479630931355554091076370106747499050325172176017254356670555026587894574746051462752719397975905037539800210968688846497370623006112766631239834174481305095201878632875871792439859791721874551951658277969270406161854132839730133548619491824716619281972238905623996772524779280951178922907818246453474652161882574054985610496387900078258367071679139705364242411207132727807578288172940017129085008922779638427701355539727498813331292163194742432231294661411695564538078317579537236072021410840436066294202261480831787905553755477502646877027521595805696515954169200846590312190563952776668919267621323217969099556357338496543308625963722007536653239845438031592670867731659827075985843261947220739092993633845116612236876147510415252949982895878171017579543506352479100828246209312463811847591687880799010960472259725481767709679816559124159364052922229748161799731167254128408135243819978356360060969946195044034724480847924095694857961019915301434404843527226835417628197063631583886357636441656288136572228803635652375674610195305822511273201746885353686479993168524231821490672566383675987597683404819637698996592333703222170615679137704658338464675595567630568498960558052474153399418162418074151084785722274731957053167744939352986351930021373140628150275529469440618166698099069472430940593637828654299323087647834560727818779560128198502197447110930698533449049710690958923650283685071155666471435079885698854544470545930483154943075504297640477350006007828951987396266631765223745632828757810705047053058607279108727133047762911707312042316463435335931870969825091568432884408360685608423222827568578645456728795930907533135831011740803965875468226736425187274065831391800171602587155384639183290730251950727775776187518922449145512579655130571063531646081836165837663539331367192197191413769044756371280521072785070614226743593968913731196505405124316820149784673912620806086875525370472328309319173170960695313374140434500090619605808144747089139640482009204076238165954237459280613763973613192909527920249516485260920236530074783633372494502017332929263967605549435294383154665887691092670310875993729074868754964873114250762023346452849247995331982535851677977367973011723210700591700318419790264275209189352472973974734975824724922139777393791394180133903667056049724484869633175116124816329694803649898541580128157988517927875319879467173401924906593908848968309389266106389027449946825048029021669065679690434118348156430774209058625940845952980133562295553766062264170957100874431190420338113213710741195479623449469313317327032094952993574638039949007962827821898483164220739942096839101252104533123782033790687588283467234387805886167380201032821502135635997329919717180115640667561215781594984010456674174670766254682809145669821863609866852570185313472301843811660409815970968735411265313995924972238314007720582101635246964848570424407520172898225540265302038968753242315394418423906819332571890518723182130066954899650347738401926778386068391107624074833973679587349912390865452850610664844691322138896079146166001046625974454422527906376356792640844331570291597051791481070565882420756537834614930317338003241459768645452326996632973526454443154919537135370577300030974777841060036705835058313371014362442603239394547284111793177600514263191172364430784774620294446665427070529243235596002785313295275420393919570684091750419785126006866415414908213398608133042315864364204807794065387300824174829540182765374139606672375589784692202252771031959706447300488668838467269640546749216369793861235618783892708643276874323127279547375152229400571085919434739847385774300297408508841775389639439303958095196927611706478338847874030052184276334266074732279662476792433709215487656536306864337940401506207803141814579637282037693493666187270361673800453521122351733383797700467078177852689876331831724555257691753843271788846892256281366047974190161642396737651616566027257162273261273938635867776925287676062554532455473534959650866092883903442765877674563136402931147117669543016673542194602775548053947563633846317589310851051152010283743386494606909492392665042692623784615801585560763941938813044499767442805971217575805500590566770574064473887613347929297351568989457997870511107500256804214168624094851150368319108906555991853388572055306702028732358069596606061700485040801503902691415446631315636513098709167074910498739377231284925217141840122930384669027029657851975245544175082015778939116723524829253028087006566668326987763521951755209704264433695047059591479099572998442847709470151606563371910833175424144500807850107824295542516743611106278726289432188967071156182045271377062530893840803609054519970530078364298340089279246195984286224403266087756391626397220923578857552722950728383098673989536007449494843382036812351467854906303235941614672611250629017553686864283889327389897384598139474720344761923921932655863631358453084783487664287624736055701048803586269808561352948650493225674855448874053720381961994749667072196979323849387895517333927920053669845333356552736132958338600224876308195859420311950178829546868530192401609338993371666439795485965870496946909404869115331111290083552107163912015750054305157287209438766536573611666983681151031832099691653249708069480403819765872052469529252832191147144355641515163063691773222005806967776109115184576701773353973549833068676771561642334106780528609247319324861603094253675805312701715140443008221915976838939018312813548148320035638405335558830275853696858530428746903587472700889687609156548777553152159328492328396523674087331376280667185068685393922283975125397552040440182899932956813777984298053627686932263665947478978978537127848858624677189323001002179389622545976162275827094344848744330650423839796223823548531838135126468820406091001775707166953841261732365207693538009924487024927533182065534902219098750545983924636728527980590444922542380469991132977496752122658126513231690549751974146623015300293859168472426859031032961725290042938655641526457596855275192388493409995721168299898814410088393376092880470630297239790621103847809018663662121376634579608810909983576107490701916300974647871954325421775156857739284664688606393134095609675046075687333774574245631574298062319342446308985689692009539759881620529302364715706527077264235376133888110771271990635327358005476239850724816042036448786415393029802231226852601754792473164111671566382962828253473060982321701317244228057234268041727060562578145300729971527154282128797069265038943600658791640070978139703466456810707600020799476916983204349085930296159143285000880423006594297471919861957607192065079706297982738081330362507870391238664980186484253827947818650066301713008569898976374634162011679407701530545688242137876708667871900005261809212058763823222336021706475276060141396499674965673641630116103685531526088102559460149527349010249882520285313363058948830994836121584935225162701372006734849968457202902160724987094434524880317022006486331817453319137006100919653512218912763609717263475424180486183199962211840797274003622551411124484586155198346800024739022299492663455118751948772535744144532116494762273968609457236370461427348966255832372717581681768951345830285508322229310155827101187983818609506940598790004185967666130919711386086691215641365708351206086053398446775171716645127121727663393374667459219191419705313622948616389535824972451822588329368175166042002603484544575250280687074728426701535917581510165975697102046869778179959393694337442278942329221568286541108480523475190549351107101118935681631006812228581047648041294268029645933668070168350570333804608826360816434316091806432369118405081537637273081679922676243367332139552448411931830276503724225665858026463845091611692631819240024261452919935031857761179162358261353756197118359893796694425824814498575779461622528275551322545247288651394949338324489887737218761257238759316616829004246701155569775250635557118325844651751342093241839214077429142347281992054501039334709213961766882272049911799436274128366432306350534194667197227985203578621205082840772846646445392391752992542774334856377692017342587664842094122583802719939923216273967795882987626556027676720658857234646973882956909725355402690891301971596189379882847863291128215686239940234847181752116893666059223177776142148748593972756841609152907237789275348649205125994005609872467413261182690225846874383420526493117813354207175036341789579872746734076879648796605951407884592633092334927461146644175893895569146363531181563273112327351696551208693245650722948083328471200983639035748211891865717548849097510982477756019122579272478789237279594939519818317774089465938044283228503393320292825909358653206592310609011969099884106223253118845634680058045486030017982778727254348280864631027041270497348353385223573898908799662899804822656062110030000552102522148961032614204724220836340471996277976425266841104284499390360881499242388421834351872184861913078226699746573382489462550528221541546248221524975844920270562993772307200034011916301382002238122673659750877339630565426017231598109092897374334812486634602710524444324035572982188847608964532857935615370377695155183240282539726033854559981066911419969509473782000137985350397683521472198086602369652545739033453161512092250746319186140297061498438097262986896979218133579987569485933734344449218163076239996277167655529487080365531169183820007592646056600315066402138725840975222587568290765172976235078347753277076553908174303776913142968905694534066765182927903991513497983959970269329505617390422804693398134892761109695432367244970789665756861255786216244471699015538811834475898054193636384837905776252416860779929333356137096699868115574940717789815173517248892245548297651292552254578865709845834382087355012256232194292673390157486581925611138575894585334996203658834830883957410706312270315526920054367942186043196134690054127218135938558324894279765908411424187967974961475467379635577751879096317457530272691604199275474365714662377260434185943750478262671696887573018439942402045677653559880409290854361089996060776118743984217773944779925407681731170783418755803855883120361766259633289843295624731211360884383225124546395814066361893256012645837033664034038814267285172019010749313879570296321376602661235985456074922129752635230298567629343884568102547501049512353530430372642668745942091490896874204165703868722981678728157280449949456282719723158663601116148326129626077318951909347892345065667125447110446051155329460597728405148770832570944690041406141955682644270403951377361313702080484325388685623720549291137824973124494382129937421106386978662162471999490880277465209339459437138493950971334255601251321164172535536145284257581461705657483601528839070192800968763489799218922176863174254423288625338835807444251126907816940322774851887702637359043896795133313749362609473462066632877182835317783586238964582564852043927083497020427920854173516583920551558228662092773566627231846149479490562769463263759285351773315960553440416224278300142935391947105927373887922567473733597144829817345344661840627340893097572471480196789154528909857893982019190949329122935452140370641401444748361521688035463793137991808965870724807382911648892303188275790335694348518309328151917781118830676892716361603281999245551550090221367638387273100028774906993545465775826869102323072724864992641289247651273484132807650854353130553492214540840243526669691437216172642991537156826212063908464133446676128488540743764733395009268214636542309247014379096245332275266729499234735165100831276058974173897904862615900731399629471687874619393630732130882343051221895576895191619253546974261908640355489297116333226904260728092788928822885546563666479730538265001004734317897240899822441395074351294039461542047105222875984227056061643077196662305624832660653727469935960637364789166102487280463657888843299820864244149773978941226968723770629137656769583821296273023787996423038906607239134876146960732428251388829927592007522018587712456341591350360356946219044948215839977840621740909488097716023832529450694698120759766728436972007399882829851301366936689719217144236070336247853535896133529667659979326392200012222389586866129433882370342452758909527666680603962505382961518586768004018386617565093258905283823903350802289523336108845985006200115128749223590447577887153959761809352070975775528240347595467367911552797584032235074606631787131600278020158917984015426519705675211364383524417779267494299804137837306089497279170704709245677823357511274140942428354105541855406228585006086263904940390903373186733311273545074356531399201051362124182992032389129475190395311560077910128503725342843151233666595219833742950607066244504403450780285430568365476642126312672632669717507944811433830423367089791726461910920439049647853904752694653620161842286241341864079511080611607215782348719717571494295929342706822021399889181919635566457019055752234381221354213758407054208573759211275946487273413115058657664224857975490840650132744045667877943215597978681785580228967725020502343845139062580083185542597385252139526260922020252505480544228107420074231706715474222134371345366588713468099683308318070774108416287728563649463041712712863616081162485459105630798557154569215896927642703179080129922063557045917166569566795134422355921285312140801966523327221732961201799217130020077029848303182924398418323352195540457867740432749568562450686939589690547524511772433147343579651715836418516606241461163721978586403319974766882980741342412824945465027813207558094030404683867434155427043297768573888067008739070549074609725442794719236819471532337245728575207270733817503560401904480661507911707008795672996036787633903869035990754230234200294983815072831676546210037675280210530250982105948114714637277077080572424901262749541644801202580648328114280232427869726552487647541888000921051595157222656192948382938491823096362929725232649082967412725662253931742848809411333500334785314606431625045791166014478037674503074806526985583320363895153921822085188348963124285338061650188851873141396406683409976020633175508352280965811724886672864198318750284472228774121355134523410211976895483337692774418845244132087112986002250910096184994777103323630626800392372694755365431427478277232359518510126645085198774728190307857959561921889007366552833527124250358397159621004287198964156767931816247811885204651322041019196946582361744324230020524090069742972154551379159019764739958463647787217121047217916953840349854445378452724692239910335412987094716785229697344716579049080805014089376874545686635131455443653469470495191813629715273733760321374932391793752262081330215144810864423833149460689333064546427495404256205779454081026716805289449554433531178534744774805363941811241575456546402963447808365132946384951144846336569686767250210781291605087424264073353261153911880335474074585868160908331806799337414977806674915448852042791934930070938715810685657869407633532706212670785259358349907621158618451363808968370182018419054079229750210856082575931117791254920897463615733743413310145838363544255262978408224552128906150733260434641831566042171361069728682129684830577038104187475334978744747529013707806611978862844071193595119068099177671036481677214274413964275763259862769498644803287464450677693361596550322891519440083472100591773555676233929152172541094484517637233198397199128157502684962627869526827088759229668073708911736712303033277119036990402691838161378121688982700943178274549995786603430979477143224135621488912698680708616987352633702907422814202525174919190357475945038857264133260505797851570908117592949890694394235612739063854511853576286621258453565107510937580275816984002975913390228589116992576160723019054561944282172165929933448664252800709759980919463123221380388983583566357423062482599414146934736018216771603699704698591541463113104392230152842638021763222243759655445235883317847459706272320525698232804504063571363203173779593839607378375321267277233922454370653437778500995779677004433407905280870061451423082697907945989370514078111265009572775904390985739347014952532370832877540481430524309928620820799465044584477748094453136531862729253572520251396234814683112129658541357132289998614289359328013886466919490495594189302480996133512542200997201639366070758423130646673815910542971616964218794723964870263704902577990254249280138950652236395194684922811100444152526167601505852807356014421045821543261039541707395730228248358798775060214833480009633942440682860118478153654840122225454109711689172713322014478689055867942841723823690865801558813270782177533944596665961387415035571835159244333742735828642918840912160462311903353159148570233329008432772812515630702305670341630565360813067607836862852452511800922317651614426644565118153112750607475664112625892200392068183831566530177920845800241766995075387501548069688490214752506323108111730075401086465440556336843912648713109476131445514822187750342058339047001355212431776680487970559533549443640556021339025071769722504991560371423948699011410754930607526628210393516853196170636360312710438098636917565952536880364653168140231732580525465786417789242464846739743390422026334677040064956088318717964913280428178731701564805637175580675585490022016401529520085253268840114441428608908409678047529618900768163604029654282137184653011725688287347457810454040415112692941877714792289622216664235615220778283305069930921233337214541824632260633372294953064856282748069060151984172992765313126197191764510503681777867750896737620322264174095685944241447899085015976289393554592489351819418636236494290466303343387611960064720949666082071487941892235783783745078293074631440560972007661620826862652553041567408302291922255634345836366330734672908752439377973142620111230038286086387371667828827441028931503809867382857909362165697103486717667552959476822289908654502955443735890195393229760288826609395573920493419009932651340834280427738380060547986118922504575213847362602955796178689915913692638626963153640556009642040191316476361339600310388117153771322628826087152830747771903738015006474290403393311341217124212263918339456441421083416978181931629911260849859521164003510596109984521881529835338009528584697952631631182029488821601808802428244418970999004316038412392088967131336204653136940061867638859176331821386512582189449844973582256166201525231485992938495012077798593935732261734051600771273419529341452837987406953774002629997645614779384813053975988686448822514894694126534854556525564297566627560984163097193245259611838363776170546145630986300640759976684916899116256500609094477058967483895076479620475175124699507000517371908988830898885669824679815373158719598191576812446703291029376807392054469387743743644252471006099729331748179148852496791348035760652921639592706948407032361522068014773941973936615611083778154703118817551500252506749951132410199125097869354616496969133753283527087165334579193146301883270914471168087818913013971184873326058772386634859749234275143778659433973510836687293682394295735891002853751570061774837385093859488865946127633088071617597015637015697799812427531961445653366642636072335629105471150362937501085054479452001087049763510438162329521712406292164337895094807794423611903336344206837267949294026422414267886906659073420444654391871780469632342747537495125878290370067859835915724977818150917431908498761608985182489888084750239710856044571484999856911838144442438487827452441347979670135979459920472700132588002426683774670466679561016689684101435453281248491543782116019007425825207857215396311300530268819808636375319206999557831086674593720541155743031846476591174305613981361267750439005211880216252114962347801915164331102824923386998477915830595601515932456871918619525946868840213329125218043925756138907539360994879323176677509775224452843814976242118442144100132644545924837186732039458263662806189894157724380635766916745238457094360301410087321775237616389661840793253631455981907022218188869190503921072957538179266976530024997040071576920311242924770264601316158576634451972222432023027189828102210375092501342329106131458864979293359473837059036217179661589590809473113385789258555221197001693514527969408254593908297651051984918053205021450036864561833837804466268321121852721516733725266347976933785476502389136673658229037164893409042670507870359645748850225556664021440238332929197974924845241689002428940166732286465130080924421415099041412242698386820840651390300326677027751369791843438150275326563271650278832689874829618449472077882839105476453898375785552204176002550034814683937674755489938310607451853527702898995786572818181514847374117938993428077860888570594677193888964557726086554405682749939508809874875598895628354205765779984700300317135154446356941921501552434779318772643898979833680607724284519566531120937529114416189613079474431202210031884083251714189703878957353000085699002163743745440255645246744851181941054700424012063948759549147573589187872768214399865364733486326020199047485277242330287684356130174373464910218258695430617817220947021299748675793994768807000487520836953069102737836822150022153202170216041598251488922450479065130025176131924055416632680297045556862751248585238492414256665917406125933596865683899885389034852791192524123288254337280528329956187535421370828465650345441820419904635079131976148443500607019557544206934200052602083284843653895441404202212574206402347518890969942064606036982424307174999538024446999697587864785649318191539560251528903418686596507391108566647850267724387402623266338915276576011468015685085956217451784769036644785992494362464940851356867760998554896800039106348105753192611561999463497753470617146093811007094609536606543632099677983019968349691560603100531398400604382400696408804829341102107059649685987224704800030443958878820427301378764995846950181780270329488170170570977415698527764860763036425173664673597833541230377152444716269810668412024127461080395735745040816883265583666445682578270800061060806194396741295150141668972214837582958390166609938496430359666834617922739646965683765531805267687109232512130106434682594305380086699739892171883156699244468723573984915267464631986358229345093389195896901657657148423529472568257973303400369584133761993205262879192619448450765440906868721278457110353750141318929852163399225812069541435895064566468891516228829761998651904356265067299904051852086279036144316450558350128623148765034431488877285435999091799306196590689856699106192103481783137745531876964664124476666099750598619859099378677072332927206386148203593886116658126399281856207564511879804297796036820111624753690381979924810796926821060840008617663731705085961273843576161804417077911559419067157162844721856312259664975899513787162512134986477275819608337078371679998765913843801637729945111696454462553565633740333630609822694878786027153016720651202482273074529376504151779112057852747706632690366640993260621153237124446749431038607642374699589325074672378225780718714414412389968536216540299555122949346631215577077055367866813816746317397509090958165588229406331070417360111756062087823221280055593673427604194118593756145772398289290347864854457268502867057555099994639412821569295952679761660867402470271269997438874612283372891199747135020393696523664299309153160500848326771502077847294091394081659059362231435009615989167775424496707196416183603819942388143089948527345836561040189020344906859133533488500326020579078022001530545335830289914271014235421693985100834489820533107896801583243195016106625288870442163929368266552665788736147949074706610874367732481595649503488306219605743974134383224898589541788360384106450683801063090860012217902462332432284383663534439328925289049212033923855198647682436150358437695459645695777961500434439992925286725302237628100847247390769676648244295594443063371699889965945879550231599933262713429829155696839945378148108152671188582516756950721601332571361578329189957963542628927214987813449799791018231249051215628329355827716875768152705458248407844856895383147756074794444995042688572361180952769490162114940738792433253633323350005548403023110058696603360676859146910890054468806302877981134486708949965498352398035912929790024455390143683688790150126742830231424032247132961355575286133741915621196065568220514308421556346386245743946927737694638280451162048383055058106552717555974490011914865954878773208953593297858079415826991605297972640503435472431780127626402588840888742413524099627296478268790426624332435334761413087073799062496694610360492446861420208143909894813157104581202556041903646135148369122514680178223841252542764408944365621545397681744328338476157712628381252086469294378235578961996432650110914838503935421623125143239443448878528997672915448157090030285999522874474454848530864031027517338621057739280299688212095241184676478845689340339309515346556001921300907431822047964131308882827818579957340406086789680617640143688107132058482751529744657606265625523033160309357924916042584935336973255952344247349615786379891840541437447007631872569646202270094557890414610149598786471544008342992827437160614678474554530474151660814083647469772262817496828305269151070746629465463828999565112104148921833859695157914768482583468396948731935961212877632786110032607353769479888280447390801833427021095292071165337180924585876800033626948500968937477958834143227270227434623533150203282843279169413350276657475553445100568351757945828432214721071332370935715171608462917905175467963251410352216421339711998426236614022035407664767339339031607121277619589749737852790315097666092979331332471053672902834331885702972926118530011861537353169859434864214746324004247778508906610310083578675410749165532538502302574308050504452621655879119502151890276174474660884097706503281140601940522627239846545917841490616442246870865273941806091052089645820291218084157325166514960266218440887973910289609422488001307378567206552981127593677432032290304575086144954932852329993763392283481286835912097676399199300142866224156730046832900912729146124387459207715676626951192405009114285649866176881823116087554972495984714050565241481335359807222194772596144267449807991480658609828355378882484433611407642409825380254638923799424983041833365622114320898405056757397954988395362236316919990172853980494103816766371924393326476750860739077771795286214214422767377129999817803985613374640111736055532654426765958057106574641204877100428371793242729362105099422843044712618075496240907358545525678002421013184447743464260561442054682893492031229904602145313214991748347534874498601309848120903008327505887554555663129129191367514962108375372590012461831151251318654700531452318612964767437776903062148662653718090447755901366868414794397201726958902015701501439581467485787941351144598451828775229064502562445454301278987907770666667630448669153206446033425249006519890950379706637759580263472764239405053464649700449516100116583620612555933195887586125754361439757499594400923757411728583443030164728119855279060189532217359218546224852385139414580646863780216117971195610510106613194292709551104440874721170578188420760995145052573158236822671472592586789920684458471300097692381188376733836423859761096850259803160538499208886450119055265478847471213625307242757852466595251624053728041995372021458107185267797973041491666042592175440064057906303748315194897598781830277297763685585713274790035922983133759250314313436000734734233464352455207674389014807896131216676941135212377316717641489474116270944105453652737526512500312918231699255264590776897030270504842229397084693139639979737086795031709681130591541193316825805486693853893261880055414199272429954478057317522036695666861387173245621213545506835673948422214483588856979906041768886453789290971377861736356738244563420380683354948608141623329847113926437864378066010732575803806721296071264064016431919325004178683553630074190387006284014825180429961663598890130919424048944109103485926215146642941155766924365907159067802800479815558475656224927731605476339682748584586018871938422079732957999668394099873749819257696942735892874769524536078192704955190959141958295547432900147984742916592248700882310785846369590078261472133058576459997528636445224300214005368510199401241914206730063245999482392496216991456674368420640651061873340187936739130679235939567480642228992222712644729823501242703612327042871107493758357320834866743890066055694973191011235142297730773204692375849561705278273255011900991291758165002828826204215584183425658806242259549827928435650531101174692958856078367495069225197517047353792597738417523439650163566396724857029357963300438284227334142805808004954981993767923799257759561385434391082308374103413467865184181357521252753176805069621016834914933662556030673987653019357603907246241574301502242426100505985614589124577144184363617513251049317245953140245060905449033356114319746039792614126681243021598326970677803997572465228278846291874492030752715960380007779004004261556060747323764484834598108707554636564070422412963908437753308239211349047162171646516517131756422981483350022960706348662648899946113864732448334834402749273747345961237696832443939214402671342636860562758266782405631112937754880519671135025939468799969273675101369846977185235380500106575781662566287763928734495960257232768921524498370735018040706755817690962543284291936929151378751246604686626516623316580669117711587703350126555877819876618107500864401384103350682679549800647253476567555396410695706386425338618489008344727570998589521315129308482240675620458230363381927824425578050009976548302571562091208113484256370004065044479043893284554886232777519103779681464417759858453892154921590264477091478087556252575050169357222618769562490311955262617585646814522687116689957322371000989982894911057186121117156027064622684629047157123799166663431647277310413265632988093891676393609026810219773299108027008810594899188282819588011818230600746790353615270264796954206212280619688584906872263357698037985714078190275757035424974639896691835528712878075410648229087192684850389669237023458031389736403036109360556848583139376450846057449529238986804937728279833472649170227528650758190178219488945585196873436728826886568923962779832101386614178838921033906284977665879521380456930296518996273162186688361891839601300289812981860877515158862427798867771217182353825929063145808807221748018533903613691185136971467796247228992876587207628279144969521177213380939272626410133621431068501112847834431642307907686059927723381577173454097655284286276007961655928535074438141043111932221197208590945634899451198204379969669352396948905680066671055779600980660418843388123424034738232967237184193875597557704287964661213552744216063363405092144759704997351303048618854054116925331102282171412520706678905106887393405498917673262158172554940605634689866274808940288222682108255716301619894238806567632564070775929872353894005911820602617770612477810856597579302314454326656130033650328698763462091344666962763623287249598512900448561873155806593778415650338144993764202964162798312473423773083801047083572646684450568394971360008746086461419646509084895811057989350682377428043068291788689717030728562829389002693742710534365595125563067480330172793930090480399186558935409245851624633025839417989844413435036411462233364951073601194185895174221274979414365474222899236679662027735701509586290733809066638432401730237980788976484473327415842674551305033479805137760802827728362475831643460034348237430310883043271447271955623006622290664334413477430771280991665232248506652999860252722569479763201602755933998462054765613727533409216484955826849361381884187164571589945030885698415763830084903938113355475581786307747826220898204709133717989354173696583239894896978410190324857449125982947816067266624703461741553914935500698974432063452434814107272582150558055634008387662565783411722991971339848645229015372397563672563737648892987277103733342752673250355523682593910326373646860750944604195874154827790167712255864588957786050747484262528964058790139990698208484333670179699336840624565287448657776437767312376537146596985327466173048432254792213593462600494744171089321487001439138888641661725988983355798711861510643789306590625458904287045392273991917875189071761045255026771117028103172403650111402678201548494716568977525360192937723673764563582688795427729139473988319123969908623895154137990445402388737570565177138625415288061258709786945937934023471442878746634694493972504795313849858770607235836845843694046231541863182050843595090205284714275527588755799111199812711235995203745104351540502078116906402323744715921218368868524251260658582484022169166783933182801823854742403879508782853591239569880487736518035344296233537746963117078836795479076199012106791548545866094172766147850144795099803629620516933533151635801175826070468911245768606857116462378357330021920689604274350320300010716645610172516512507109226691549322036412741352844271453319709102356651107305258043961190070563769943529525441390007257171084795501868908442268602124422734539998978911546687539104068257828567627067045430720090714043567028562968064375690598547487176795380575377869626986021897115479783147943243344465561009496478829091668691618403623412360352573144149287499362933459526591386117284157765761759041351777333904905217964294817451266611700765589962754939975195011993617689933971261080007290575466850938015159600836254787103588692874757653164652308327627107127681651938273114399214094474712401002216111453566350855406067440041424216442943788974318514971082102020225841749756144494467511219988884909973109374262968707967762856958349216740564058272715793580659233455059958058087781044966353870629660027287903429150361191345468161490793123400721703870265163075735168095763697482211394118363673837155323489084473323105639049478505316588698928909028309124934879667149142751785563238193063302760651059740093974604087586869087753061393654050936163613214925613333196911225571922077316478586416537837676557964210168375579523816847336067644140212916724302851600412266319582339319715069813868931091432672929942099403533633370925963654460473673448458481573240657399912807429420481677799634686672823053201169598844414360637367628049325938550530795251512602460609210484064948080412298172736565705134359700694342797211514239587472483560461962716918317043381381870891893047215922130187673743188901232323298256685315152070067267498613858924796517587192181363246564244439723926544139697090965427753559284820536795387052249293502043785078297633174559298867463594093727975804576411733744123568515933365302989399967417199266654563615583126432024236969395691271032551823027188903469311385832812158077923325281116123451520567108930291336030238323306851710255517398038504038554536746981200351679567121291825460672638191247804028049167349357338647310271938779496878050958974281792038730730142263293022112571387065104489434978141463796475210881910581374254881331718804174579312464923500067350946907672619051517045980239675375653997212294356208097818747653173599937463946409254497346206554860016959811709044258039121510219494343813335449127877696756274733389298902380610756056598176716233254876766729596599790700291951456008077287800175192881253901861394978938286189565125530381950112029360342824111819575676482097972651239345695432833413940035549261061593915402285182842020268280885061090365834985542067648788290683553501045805016101141161851560895321115260037544756343135813438247319103469396844234823757754183002381452800499135253805368735209059321512169698322000253281394824996163992964173915853538829337280669399643537348855054189787386592512998741826304636345947502854763352895826005366023391493900615910585766252242130417805829886648680464013816179645684449223067074895723730015291468431104498322756769068927471289917399527578549254737540393843609211933357642626658827781349054066384643540444309120788660916778092011954632233064500424712776102498802421771114215229046399007918085112002566935595244559817680181287697823957822533293138393370152193537335456698377981181380441718847018647721972600794903528653791001736518284381089872302208652041893722605439161942007330616652078821391087984742314219937676377901167228650210567866738528225838551118929545461648975448945696439158272956243997331401246739098728151207018696468479855732912044280977656230034859075997634812341144812236239707535406680787480802392620875072305605693531771372704836855965506427150839234689372035546922986658533160292689801121319449044422075108147441345014511869572022651778722065869118299150863194132894547174209441313795293702651099736682210419187488195616117384582528643879524651269603020736791241407772692260856615474323692915804535178780128363219171471529327560059641728787604382725169800543167137883698266020854668784854698157706667551790888194591469238334489356320657717751802457398815963806438206965940691119776703793025731096221987796527073482910850893754111521817175346680302722725052369072872928974412998105381099136237156255655457560106709617474067858466035300780275049304841490030272870434432159522788799266888721083656727599212731537046048428632935243694330837271843605015007263283606414036967665761449431198140775463343092616314484109793134723078452419744989212679617132298568340527014149134930901522273508249854754558636253811004003972318611043542603761494205420517002059721270338510814515561174671888964872261555537358712272020521841113320481590026549535137937017968930838007756665047227209733619325883071116436866186163667648082434366639426807232601491611102795834593934956569798912130124327579032891427978940433159459198523511678503952499860699168320619451985844222372164045062174539073902551540512211727468089816086074825951404369511585602155683786177966707798436279217030003742860624747471852633217125121037706444811522311769986352678738154102233572199931864452223911488023021232368312939349327548051784505695601365215241534698297934744869506261397989141812294516040607704803394144910213011374973849881158917500974875735955702996890370537466179677787608775319348475514781626975600825840178176614129160498937225030857021501519460662387852902636442548910063430124161906553230552881820155119172367897380678955200929875035884472779783774158993905721962099417181766729373240625787479612665201857471441468264167785410256557498455461099890066701227898597220190889758399631727862532452397600093983204650069646981251807302484932253425268310500194599202658938986640830823998302306421388512742070309194863389477569200159924120571767902799011129438707565573036852990816864959871976942541917455510637945377632649367315301821491795278255031327175539789716643626892418292138125639456401397423323650248751406767241360096710333705679267034374500997421467501148646219462383731094546097396474593578737385921862334771099657142461874888112849920656751675432081171406865691524703354249105044866853209297722385664471227642435784817345301080772467832253461216301627815657451328873577523597193112493151011198334165372452476003135825239754076590880782172651498787826417179252890460565361956037375041049087693085613196770562036737507765340285332949315262840387147543115305641742634632028941043902274589958349723900182514685211456671439877575994914141036559887722801238977191287042079338046002614228644495622774168822681754609244844929493106297132664213868288806227200713051133640880674078171282549927196737835415042491998779575195941227287125566487878202765324689599669792000438798358809756328397476316893694775322489853814108048774254066951842438300499457589649774828445366969174429540368754417371204158750041238268886302821191315691756193830702882996897893196013112279160408587799524883717000734122173116244712426080852689386720165604595821933287238880043372504556850726668549764513309557802877137178303593917338992556664150128850941846446515926391380335898499974485186547607227480543287917118025877647615887311246675730801595913574214929337612660599931563665812769149265286757742606372913422220180760290736516923908847194537105605944373331869998294065034160847281541200680945497859387828643228487969426053189309842969269767092630197668618943816341041670648340204666294986659553196748840654702533268531473589410879363385242170175546191273327555658376287143643915712441880412306413787647106619923715392365491594037523925276289110522341560712229640302468387899275434396002073198572337937487754895272174705321768710779099929822773168325391915863441654144252520427904996971908105551727848391127062839106937597922968952655517524090654641625099740281205380069732690170457189199610049372362270791289544621243295823758723885023959047187440968531082772804975965229226081995376648575628820313857579061055126210862216082688231693873786179003573835565611702545783895542275731086989806340783454855575605341131621262345660439764022000390968777829019071200600839717993881709446219860656672499131002353826973980910141638470390200090097856522633312342973481174507870085510575090373356005438273033757838367487694496788743031202620677811196580486767451711142688896432681791870967198830402343757690036051922406824927029912774067236607353121786411363252235779616952881996244734436613213095024349117901672804383792559960920118251684544572592153245004683333020536529285768689246955432391648176752845575500816926815008152234395158816203187922801818135580128819674094036883018419254008997881592667686289862748058933891027583923636609165452082938309678673168416498149747106502951775582065860171298653092266489683860586204987473781911454134837951810030842202556135898281381842970143785658098264670457435685068932295214521425546755315731747304966186227232277430259279339682202003271372632546222953032509920068424561172883429837856817993597708773856906279139245802560970495640948535367714873822433236636379069162306145961318548014566192627711589028471880357006340464876712926228139736452478536961536344969400005803422699652548002742811791189850815721346793489083596448830840637992054613054569446899889078599871125903650856198689206057591482450303415915877223994049902076586939371346319454287564576683680227862482850045792264282703174424981926733459062451067843215454119307244712416631130659705445402888867515626101037394603631933488242764738788102347767828562799152563183238659134564874646157187495150185177103555317593301053239913886738538424015304266857886265334108214579356945553359043365540094764662180546357936560395667655513929580841296746923382361429078299273204175454791518486183073363218811059309379608319264587084589430720592388648416880496696191596642683085266386991913344834504767923310180820477816597975575402551904120992005469027089822383645112367913860243310258575594122902079701675160330529682343289337602481249675641010442926758741999542309467891923226446186233796740649728475635550300620123433962995636953714415715609404905629388483025887291708649399500877876198844183575169764565133748625324837104056617733127269700451675161324139709852242570317782451640291921335403677365729135345505316801758481284170272618705041076411223388997474748011017221761097672620374141221060878809238890554050592791200085584592445638047760706099808157771155059684732178680717252323493491692013967502464188294594261566437473181463662738916275511364669048288177558687994463206043917310032977482919958990808436713128654907171172654771236919980284814389113816392494750784381473502824216902193711208018463925007602080317884419217527587220739379744468571073156855509190081555530475209211762420230937886806382485944769971339128228361481593524903341723905205072320669239175216279315347049193316011219114596338577360069117874502371973061563549108607205019236483041126917505289411948896973823141579559000324403342155673660630928812524882180568723577216310595259339825454160720407091590837258646387814378518128360296657608766452464915240845016942178025594794342372082156357748717631395846284265990259140522642198535852653675795313002904464283113009932904499247256377880876807451502082782246559911905847968851263381614289058478989931841449258416961216847685401613595876892876255596028556683997919087392097146073392056761620121308553459156722567934653098364646499617336591370697261532582883652564543841776660434468570452106465249692507873637772357490199361511761007456801207131351049335785275588892971498027397230195701155308229293865447220165389931500750322535686960898661569931356274244519595614627967314446948431241571558366149353395837366353398988111418562918820115230248399277554137683638863260990548637854714882215388141787768876394451966517168232437953011006102597425492680388240709555539124289085701787952323000721016202189965446682524124941152372668182368387153537375010053352995321061185576984639140916233351140376124682620427271031852180256840312152893699648799412032561148535795689252491045277714954965510391472181699146079200477348000477466747303788090848187276294847277675748534057668470836123145008280679393917436084255575781366596433240744221523127205681330155340688918277902399766258290315685251359429046613378560974072936044753328088892902519494191560546645471629809978911860933691612106034002331993371545210381423015754180027006675772486490817457432388216102416035246820661210687355734649902326815215180569846505598116755729918674395670303751233502721989936062990919820600812987241629190861527204879957624616373439654637565931057069469551454846572669341715813317220807399681150147375448205410357719134987607704120726181237312332013979939279028939861646739195876279891374124256192282538102135643379378251050370257571884572250638357667507517645842197981829507609511400766658940398204607532695541855898895134512045003153558334018107583495342041358050614333692103573599806463240659926152867970597925404706714179307158738891176427681852289454541936258744462938728701084626148669801478156429863280666155982093136404833156087507869610745498379323262464302516713534956248741326222860541465284793014249770430074621064899504848725466129806401107041948862714125731273015449563652779761308071623319657950448391050846109865731374282114538908634012246624662646359231994903681972198016916471274018221932780956957744468631035203482200131827832029520431027447310806507765465414851489815218700342843942621293332987576356636936252220580609898182300475088307078435441963196781180955650522043442636431292494648603092367893131602438125822626678009542519259786882431499850916718639305676933770960295426568612464089540778622884994553912137096450678020117172633425167643210335885853793072988809115472066712353752496115828964509639746877239892885147168678243344188759182222647145546772465836876829662434774148386853958306940049352076141837104473458032819001963875316315165003602546448594655179481317299134913785448305958488431404353657327855742089419680668847636301381351872038280455632502137521239343672615931857892708246308348358885412997977713854172208370910144741170952667787045043661236551584087461802073623090939930534517122433177724960998238265824072668156780965828499525322909012058430035213607314866704018554464355899134749011915054228830815400396812297447216790563008001622582721775116292444843603702567430849940392311190583270322072075633179330278142787493367480206890913412066146983568773039192697606293077795748125975989660588272308632932238308614703343168658718287238914773323757623987348297939948961698680027277532481592347017421326284023882302824699378861319500968815308930288694509034867960955549165681651257053727682507095318395041702141862879280661542723958125134096865861930292202984425035821815649597008398849048746289074295163171254982852583994689300430400775981068248150464780905012133857413160023735260906957983028058081127321983955760912995868965370384289174815552695175432013644886708890464124529542201114901955410305956684910460823805215610873731505408547629298976614165270335216090361022636212198360068037195614284379899892928515992774666103823620185964262486055857668138282209179288842682249930853691683347739052499975362173255790969407143816943582735528196307887236013593956229495085850694905143720032064442938943299772624554132913746701780524929992831091468325117363675204905705542181332602555835267376458533166570193043595671154879525846761025525190560666812324824473667393678816094151390653588710857535334411343118142769673872292337640784601875232325828738592392727249389705463496862816636953727212549705705720931939043866390386240665532522697451162156246626638498336930118476491162076054937895282170984193349320738444422191779543354526762220322905881233514019038457657367220845598625384047060604317969517499887568576936680870928102115469917687567489266285570128101755283876817443032460264084605865878866503620679261817695037950278906231781754905778365585915569963193330401308448534021918494713703459540805032371665004565474311161399154230675899409554028940856946693494018489527341807750146278816783006117706211584844924936441983826780532048281768404135394138241762006898081284333083929312141476047829799042859656717723500751085878432702817830918485049975618132780826985471716118631519727454359287663855471997256844516284621364570718572747187651708181360308216523795343824156934553723018678916805550864169597104398568884326683342728606704625759996675897238820015063193273841958894194096319793114742880039226981435769316264645056496197024987873890379409646872901216990738148408720506797606596943895593799302014891457743510811382502120981596964353255168883599738588325282786465708826926517506552785463977352207864382120405266613185832091049649908170809062574739583295133676455413977511834996785520679405696663010941881312201065407891592054701198906567390959577368558751827461486716386006395595991695703840902147178032177710917245673130066720874516509842729705393874753156707376072970053421659867233244152647601013196990051468280706625423413273960567722165083583194473914530458115615475196467602477991286313689198031952926520465131792125440251945696845462911346922497200271899107918587384023166222001824014535146827341885385069010203787981853570517137366247873318186282149459679047285468327278759809034462481438778029830514651921427482262857154854670347313090961395424036111461786780025727302669392129334750901424535499161649081507662363893867951540837396524485386075689896186587432255601744824311126604555389476554877348835088891017787397270011942672898372313823589236287124343316482941471954320278973828657920438466617917908199567369461695696787263836049761358794938427538111674171351741906828894549286907243386244641311280328928381267804734645716319562688072372900883464415614501786118980447450401507436165559063708779278592002952920666783140601741480921271078290342245487693720076580250764419202649319778353465001952344282751602113285246634490519966456659514598381724981064382404518453503986420445302233661923681674114895196177789485754936808348741689540750933670594550489541731787819104552099162753861777015563383700003433851707414832899820414082545834967932266018320552419126051208893749968632376517177117957955749630335378978803251445557485727926892119139731779573898116536365266225265534493196786150538546039439299432246721985508954767046323735217313748658427894502678349940967399347328863674735070435782527973395796171197598860282464571102001540805606177098620107468110019549377387077380703859261145595678905617897827030808459208008528400787309809814317535620748529238770260823159732980740197219901764181510954365278156291978397280267381497495429076032665092121497810124020373936096305783517808911558961493974154045123341315826858987096538274924231708585710313941893551592118174792210955221231133468579977673425895575278478144195656143499196662940619578762481832163034295789536221739331928546484990879106269082510639926145103178022657890251456302488430770021966036280789710463796164001909365993093845374700555469170045772290902987724736918432469031524728413905606978105496976131137886913630763066385752071619039506424612320024722093640938841559869206315267797502131308882159234339789594473941698274135652181365686524396783312619642796217415414533584073910041993527454536138971047007455134112526646952529157391956558338504539322938927878180392655589542722782131558054209699370734395440677004399810506624517766774687944315393949662343494384793068720138419427958307734556144099255685560406197842904138573471041788328494766052829619457410631282659471709398058979625207402385796036651461636308058665673844338322862434854000457125960310371113147935722701055350893195471262717600975159505399894221721100996820049079492238204248705174017458738029741297196763502246550333256419413224642021251059985617008707172105689854479717324336645635143391872712790108520247460589597491931424387622693392541942377124399332154002691793527405485692101703029909488099382748451628630898344025693648454786763555584808545744095563777429375022557906522569787182210146848433784601930929370656292724223906655009063289523144047454580470285229963375586061729153453878734449561600634657240113156232535366927150583198943551730002743264601200258425647666800340510345240126665211948908310176653059515383963658235781555662462839099592416108874861334617479598585238237907824881600051752587198988964225918311761253125240002828982384088093121197834765449746530461633377036989785662372814005338886198479749229461403559293599077645983436686551720716482052384741323714193571177748527722046802727585298008176499295694148221319859901333483372868867382223036755523307863181202933650713663820176865137746029374098592216762591800271799075721248782824488631456681628073429931722660718695103504205378282757981547907611941749941974956123310578475819471284134287412698233861711557924162390274334180058200282173138229399496822488800698504763050996632627060697875163924568612374221751337937092979475019732065485061209663704552935918451240911658691723492541604577630466291682549308489451063170197779720655187761082504217873242015907399458953084930455585148070017102784436440469031971008980008225753983627642189734888374899827337875515254722498335906458416565154036923744941462116668258558464447998786253718121824170188496513363460893657913166367973700342643069902369122110230026770271928748535613912880096447563743642180760239132835951085219193874007276246835159458034449765381133747321343478523620319279270206507578815158380460767167849357662757661025975018467203927141696135776291537864981921976467672438447170213459233761340983572506788294360361264662877251462349266873894453863985479534941692586709552557504209667893254736727892645246695600418819037368933179909322817795289042988949376919655570828417994416083746216938431938134797552289678112514464515398037569333246725244783467818871506866827421828242053402575532613577203647821038911358440644925095999131597228867998561574877585457723399987911490295352103147003743319395432959785881963512387940878123205068956135705515942999142137780112574972839171363762314540999258632179630080731534431331585023701509147839987603428213122395660921575331915964240049711992326300607318746367932776100686833408641554573824760973204788676860968503694731774374621453783142200676444581526479771334316024121604908289344334931865571596063829021835031146286275069945048458925969476093569083722278516158892655009513245072682532987001192230595609292624551163332745183644528899031664312789666180690655152068767835500797005202160802401393375493642516886265681173321621824535782993199342639147822508285079621723640659065497791765333480573908557161007483941548051461867764627567307484404352534431119498749268538431398388945495568536381781697246330898308908522538908357290649914499454937246907201023973934759611517458527139455590925581798606912476996331753091579123380284185800864360584910908430719240373622667090375567899431689909211666446814197766042744716625062879315797628039510253004868484394089365506784427373131100956268490192828260737408933148693357131246290804173061056380059604908998701568028659424004882809995637331597560956914457030572200852413167167088076600907410780078720757087671061924420441838030857185756933660701832183023223158637919944628989191384245246996991460174503797578908841093847456761296644673549202284522462939904181910197657597367271345919528006732165594620980994072192492638537917942215443252588386764021679997368958402670963441803526157068496901315285847619624639449451861693253063002285025742482753288865761578189421153052347155886504382426202728983521083035252849012329428122858767735366903308158894019752520190157236826899204531462801904917015791222328362858742225982525635917830569410114966017093874002418584310311520668577790997867875406863908085043190013382356584543186652941382937051255355303954421445936958969279792933084597837132658738457456024150362223553889530716248719932247859789026259503400636402490989964890342009226956974297476964863389374878007463745463179078089529689450324780725668871235180356634564303303700389806947300026304686776211073797736750841813997179486689195175610775026324199298636989710950880363157536512753227208721193719463761611800827681961656688465868155881900597057594030966611083429024606557028489275860810609724029826046410033170389950569376294731600516029486546961348934797657697665114293152766863536319499068547076210090148019256975897009435056131439944208000531442492053991475658072842665614795742924115107317910046768965960204761884972835424494937248179274406673157340503060530503866065980411595373145167252718456425752175723642171954924392015743550037886026053762694479197170146614748059227537737937360847339273121968346156185139046278066590685363925397570915968267575137301711387661779426706862136409706586181018955379434565075305975766093427257611283893625389590418817503708858162107983687922253979215388313145306851958467341835757496186016775989006809448637514920789056712666429173485504066134455657952245696283985992726296312374941351383521011245759651617764289197056027385407953972517652463240725870666438976410570242229562123471979518080042025416789388302909926884564550240376249679233352767970115170134701612618096318759783872807778725039814811420499233341020881973983479410658594416813880079660504921139997646936325482599702499936246431564880238505577705008442713150367236625840574367827261061979624749761302233886333385574595702125232975201303377987608001615585680722353022901006634970430351171055541584598572996713241733775616765680281106782262017203527332486064025810544141289207487126268519842625295213302667978431097135649300391646823212729634836507913222647297909655756183949833779734477717809142904110929089157252127120522014735137547354027898563187948727065596266480023415576459504546562905246746632730823838678951310857530913866164708533841053423617667216224303298631053397439888832007530811729887468230565449102417931283343735816967420900904720097552205532253953595374248992967795795070961138785340919444460640742039815982103186394612471950662324109506501680882337606777733835810552342836776016146233701314833827213632308664353539845839018141911718055629718524781486162310753184724308285603958137785037852261169178906333469459034395785404913590378757572224195843018516734933009070718452875947996118372790128335026055383360504853566827789027181852864249696952275062334260372721299324729827912900422319287390542824513037484155052625082961276930956188285282174090680507990189675054740913305636568768774936249991885866642014725892509390437855607687227675017112829379842845795709748707376483328777153999704779016538113279423385713525566847396794467472622036032503130656488497347595495387773946870890645407024011741761873204145377946765493764000366916641141243767150030866169032848290603516426379305905433734330789182308819543703808439013856258128161132893501309278846190599665203508812437294556185195945201408525246482841226588327862669461372849622526151731746392124936446098563194979944680366405582685517317250288668257094580349220305331037540226582006231849944418744498985201158993012094822791759849133909866916378399889113751341513689982511319686319449113412066880679878443393265957598675720858271078933567115421493816272472291597362215509909066305059115555482269140939403138195059222703107323434527489279389159527935054084142266433659559826376226406816333597525774612108791317642887439847564182843234792741011458736953772861165307976330983745273107395081405392718954255615145733455293993473578398329022526728972544212613737141850491991817420744104068464202916835099892289993599411721842678432444556217110719873844749201439226585885982259222334849214860533836183867871425757601162446406555973535841840948741908178348408783992057449371344123176806221792386366484895454419175822926010408436582658878842904340584487809117930696551874549735179762448386736379873811407618146168752113175360843142779156876301428635737838342955895363319767612660593764567902494351725375759376627444808148262632762513806918798629515564360384053728478576840266081471354601683866218961979409709633961872270144899818548382561731504203468326699415685747880294149616980704963628391975652426953205914255072175796984262031831426356597829962684017950243505592055579517543380530603335849449519555165007356718171487832576582847117666430723562137524742415126779174901068611929852663223352261159955652878184081722806041038501109334164587668940705149293976052669354170489015796828287969900352321321174536992017591828266229426929860189596414888258092893192357364898334866574760693748857742461519316441713398716192402212195722413581943743221980040666819030228473453027765663046535663373351705944240997038675190989677704072941705306369004913155483246537903843516040637919893538217644378254262244884565663927095771693523716175435091920074345605374103631970243545805556396418127684448308378049937393386464290201362590416652457226298922080621347268081496789566371660863241279029972555858433830429112080767311059613296466516228308285400435059411658778419731173386307316730691032873831233069320011507610125850784179899193063790313004180712030819296361770850163480190600909960316030313560627080316764385500013604708172529060107493067329890320484470807687355615574523530040572734621300620500230477696519939337042488588672847084741683719549129091022714051403386801645552752378263080120288919846991938273752857767974943869246305234762821149547498813561911451109371802087882951734252533498893770300858075186091534374046118286953496460144583559115670951238034368092947887030732187832317307699136777262496597776233491840971596113268453262171939539323511815586489264809982314778032961598362103920285197160947446311931523169908164388057037644942139964364000559829893205636227118814551164027366696829860733998583806228655487966918585110297551099106186565618155862726464222413007243188691884825721044097961972360143523925436786871010120297946098140324173844673862567898162454986851203127696514574551081017501775709162615277066926299833466739452270249223304685928558305041580376469091817340262745120695313805300014467610304916221081144285745241902680307777690877656580091665473629860222968166212691463552223590780149152145298011528868193699730159676001629625955510014209290497286938606935437690915002619163137136847339439160277456061640708588411141902847197539163522830811422753846783892745595286001353093661936592671700974033311260804886111682951215733456037622760794891311025533878418645127988862035908745283018433288634715195842058452611959153013259089632258793587763664071791495663934875526561061340253914361940421615779633945374752150440868542902857197095706228166652279790814457317262679999371791890723614152129898251761372199878936621792401330587453518057595017998511469280168713087250176367669855186269430430230311066088133818898824946525011659567990475214348026690696814957236303463547920176197151203922031577711210683632076429410476890648469743165312900090722495321505161041956768684477181121684300880988651220604226006968545024840709261511780102449513809826762626372746388069353573104120358024686411507721671750539533180869868883020664718091303919949663551070771207142531943931930829776416698855546318377773154917762050068195555906373788908051987348510298388782978356053995252672077364646431552204148508824253762259083857306575775786064538200060471502967648085330689655387429962195849003612007474789434955145765083380255195868032287455454606418220283189630609408846498106790850840290942788855344039085791789936000679478013132017881306340213562860341338111029081762432409488215532316968773893438549857294747579450623804061474642503747829891909227599519110624637553901590786068903948068845686932954973461326110516455039047914360040113452470046419540634693006373702413877100938102616912162992634978608926169120418135977474212118128885661197632217470278517735084503363202178119734068960312651745614080610948672874902168960760537112724557277824191893399284434193608725596013483925087613526064513237835829809355155375135530897344088388758168696888728459627816934118750869388229071670374436543228825958401238661656371356223845717730954296440182217786314608866009624145549357311052114610765295127751894782028690450413338327146828294046508137374297165572097728738328767956529846263489395913445130275283637990437720971490585997717265142200991354917134415791127213737385433962654989018830969093141219490122742565414454263263522824816021248492846529356249279450651748604760506707211010652632835963177857470855683357739534063135722642795054482443946272632504519139354655106060700364294731316091331402501619014266037981403995491325634648081735676510612026195440219318784913569473074306962348307804408886081336339518101988084179753934007885638749271053388104824045057794202519879688527791085224322160237071313687944897728221034490072036348063354307403690131618386244845047726591907640972229077448693241382061887290752883100750134371304185703619268605326115575571741239316793719470338900364295019872384354854960894809048705140146987600131246646953440534146991942636691632322839748261196645200061028136172119062633971786775886330011070801194131682761846033511916865056878873875906411786993757797510018057322469147522149468664785374742519969169384765659653632475507004097964334256961293794286048513732267441222773058786561772350091912140547145799006200389307451659281166993472022348496863790973313709804730165666642775633930116947687727900097529520389212071225411113379313293170277985981153291989906277215295196139054463251395552885459403682251791532898409951755987109070292284771068279951700668081085465724118610089454902561425111969108482386845790236846372904123869072012160656566515486186622147246763184042109319102221398983510598495700325668210265943502029333057304016563612566924836340942948309500522969766949636951984476774821370470355062417574786336334786303626965415554945682937742439804479334667670812238992896207594711894156441341127057627018073321019039937269246620741910620791932237259273981578666465164889051552567641903057078148249005459948796853605584107398028259817293054615478417703585055741407597020880402664369151951267482653655973485197448115693236522206201212314691827310593355000483121497846801213686635612640361108528000800898229019155519695206852359542815542928814052527144798637479650678326967940389023826646132980437675724404769987228116295388112411455841356798005931425827421165010206715701562445245449241858861683668654307366645847233876363868053152158045567057873236795032846674316723110722323593114623726897669579126875592854778795055632889338479146615287495513934589492034158341431590191022806908184435178390162280287198130004842197699208925535345060269963520092470684880778913070104937499021266660033241360157831655002022262277482059694892767980300694481170851343379600115039627733109252810466384407777411186397263000292659645375441165642734937523911442443435579539823015617822435493554296447194320801990084887267526665226979634197980361210309467053781970748320441262787049721902832285116781083461374176644099079543394907602710505182167138626619476915157246240989498846774282725726025395590061896287401621095217737249070792558646696082957344978280124245958420486601822753888019489070198670597474001416400544297842146088488549906064927606339263837136662581475523266608972917076146048977159504713198408339720122153079695377033194510485398094567275225424377359964359978838086971252354482302135630943748883574588909709020246378528301754519486841842059725959494577178948110761752486309096829154450644451568085689872808179965356547709599992445240590256155629720536379842420876267164793095819888527567295464405341389000529549787676816981121443046868578842892759555820769139123653393500921226429751921900149850583605668325274707855797886817883429500208560248641427313722900289320642398648841835951860776992546511207322069425634317661816211811343796248573814143741941154382685988137484776585046367577529229683397286757693130125856822541480719590113768821868563029315474298223390429643872720379995528470307650827371691658727273320183493640269344737841023083283362583639729447276408704281216562521170872450497238873320075025713826111888480646739865298954482873282430411850299694135400104441750279537718744180019842444238374758941854768107544289715717400794373552054655907666959230177624179442256188968609874898159445399744680504636395040583160408658642540017435200278507689831302428330160715177906261629422380867720118248696024747494034067968664884795177034739299351763573854926480046528786248005336061113195977550649743314526280249304907803646143533502648553205741138104979319680576391695687207054893002213516677187099675716459935344013915798986950114146415395860689383561821417061923600460341225739969575038883005563125018740551735267332781513364329628642708033609451069840806921965872795996975179253323234761837507469974770231178204060735749108481595607468269244576276605020604802764775116404109962906851352612973457226577024116569456324603204358542867214300712225658916772161308854605603087165031835229647006893600886915480042707705457722808722327995821172103785767345082443590359164264752931065048855096818398239874058107050918022066349679979564176261586440837460172501426940724326180860490909938188610406785885983365275195375217822227946628495366447469035334985340310885838172653565295901848058422729867735795402830431719162564302785947882295599180147095698919679890404379488746643535158508865553797196068774698045986368296890435603041966318683431263091181027928283870130652659814833481409100576038937481865465992455028356134743899907150451603293976232662289072754871952980893078371893568181449966853136912551838868283157102120586119775881016932083330924341362389375421099021869315235700586069739128530302216735550286200883449762691093310537384426164957156400881267360294082057285441042793898632275008254671572223705327780349419161504630811694949591583982418678475345965760016157272596599774457189679529152477255968523748276602325715224566020526671844068150393609678141629522753247951917601705966022518999489763218482459796699975801177680332841727516141610017107257323077224792115207152602112535725374639286196844603244407496495431990229906019079648851602386857954378452575677020284031880166584970313511871900227007162403166343520894013764364696557038987099523855412873478836619052584787744580354199043192696038541359764873660883827777794803973737619501984345789616036802937740172198266081849327828238519792336542137036178349737256828745558563200064121326745976155685894190716473980749633229884000615356478812644312062893839576115160786702708751728224091416738231984273200500503942784725361234585804516344612723117026592220695162154843456661887641545647863983351280548802528737475596351323464268537873201558439345691262678115848222649314349448156168318430355109390022087433917167482926484358468809097190376466500019724312896562776391186107121636756692242591424274826979187127584061875406254468175455703790505183928109709923891587642599735656088217712788040033601314780193942711323839387797548619535718493711664151801236578842403382427744430445801594125025838964757728273594170580031582905809330799135569223236750892160627100109176640509308726968134403415384321523246977406467349040774212922525067197055726948628764339895557105149689281967166462155330788710158965447813275852785226963031466483304512528916270229456142466403375071373030584752866511417627678642825233318199807539023857160086018072852946148440014807109405451164159430054892694304250692040887793299087069227978624153494690556452141384332384759842618653314810292124853262964421716426425143638681333963043116438889784565234069642186266154948659715557741670660046720373465119431967830711004400561355953857969853514334188465298595229735509839729260819179647928469440360391351439841171897213612842968380907445499263321705408556690958060894962828764584242223351432932597239324118703035760897055557853533117098136364841735868649603613861490878157892141269717257484106422591864665533015620460380832847246052072932827987502089371432964067436254081082677623672309025021385013772512479191043688705535386458186033542290579748690725773265792903594784355153475078660005350607071828439910836996184900243080666368240241272244771574402959464922846453947136672933397301854218720655784471288593630617448043894280527437865555894587682814497043948882420114365366503839451330476498320977664044215866096182033923222441620888450569298280890086283158149480985506254344558403581420103342964720419348258454870583167575332106156538862983870761519496807638697623856089561483125700126527507458729757998504560271013679930537977702658430141855049447644093078626077202996063408497744240461449268817194995563377780060290098927617497898642392144768013349525159220781426321640484803660264753509763926429310955098870914670678035336633649299870676239791926531600601396574013958265479487921961327907348294031104010408449115120437199630318836141999580807069795138947592739273683296600721189272841866303806599622692470689667197212280742438361165563842076381002291020795385403268843627923797736256131860638515181795213709020620364709542434371741190091240370373386106192015389826737134074212411894938288038449018477762839440388331739610721751834223900501131045422489870177717897725905990722820039645525078755593556917843319069973736030474314699930976821275301635477892453059957098631868278625376377754377762015117985777241755469312165683860371465121142013525300344798494500682163774569267987705651440634438977159915913585117938809680629960558459205392755379769253217952108640459720838848191325215098456799167239998713752591080026802273120716095336734169859637914521464646625347313282148362790485865256882590678304360741646753965344859670217407709482950143987893653910977357135616024892686562045651539896235412761003716009016905238714328409434802123620287950205201904198270541466469930294929550630040900307027207520514583656203008399856834753373774627981995730283570104857102085135718323447766187960178868876599219733558986119183636582968702178270183591639066218392679279551488449576259576658649219943929669252899975521205360582197946746735205077770367524484655100964988204661748224230118996676918372654446950004426372939361826647755385956680430960584861649089317651813887971480370466761352887593315001347530760176893506786588852530482232313380340788165762061326039312484082474462105442457237637561628046710787171601186339687515311221381752871498133479602945964583361996180724393798157097906661745683220701885663023334394694625448265559813518207879676512414266084283230647357082608010431191414892060746097899191453905179974328343404893648668291944311959364939127574215580016117282129709045092291610366513610990814084195220724543124920960963436931609080123655032339806951766939236766700275940988232572725267777886007022943802339991619795198935254508465781531217681252403488597643566934510747507406959762758511149738587858735333916138598079104012260147761161009004764786360224751243632772079675939026236967035716379039924724013325600310210246721723001088270822690332453236528855036009883062605028180376540294585651271822282807772126054378015775205107431198167208975541296026422603438812627985826705002483769907417397707653505135637497627590920337580286861711589021400327634692894031209826850724527052550530252189700232489971851391175596610188601654522183152016907728668930395248676275144861417519027933065893904543318312813550192076191013996006383445500023539041225927701797237497600373211636264838014548328258785660355324419660659963159966547553727877697790942569815847474301346884254456698646970957959362324326445438990287721745088822191090331320826473484780009274066754239058791307429374591157406173937798304441224177122893680168222249181509332454118272863305514704372920156941315387309172707037218426885126350778038404208458358231346024113385088781780443021958313084395194453416694946669636277697499108132213743574286696200164967324687919815522850572465158402509842438564331080033955755717363430011547619763883240745086785171928061477642785142563018772474224222203307653014686723966529021283723651788412352235254848615941612975115824551647265367114576698041918112910221382759036283705728342603135121268160510837047548068124171273021644500855487215663854105857449949025279758887457193653766258928946498623447359538058097474942860453151879142598141210200848471850234447711565110549583456078843090645906246657604640591880769854667032820577265162480628485714108390328975332623654378502828503051985444748646817797462811992981437066901671953308389521083568682996001352422100505983696956565487222210396233647220499064569699436110400483119348300146425847848002681120958084640114161127644710591777436034030357682090266381651935372844438015666448197222749189349519299263275003541771109095423327191697664788046575886965287770377531769144838080050927110129320526159315992349101377547394371972487621319551588939639234699402302741152115639810504020637260877031303083090248739927689223759032584481045534561908060098374913503307468995418660589414092475653209026005251518697297495125833125690453548973547638319568572999010570652692074244744475690179844903614501242972701412784932062065139912099974233888326736116995088780142739501149595997509425031143968386689131833095578051568340877437384769254322883296582300047271319059894129026131639622463002184532976243530570558659053970698056358358646319261891465065151297844151479597654409843295285130534981123818566150086800975969950327983493925599305706513983153719782961885718837382123624255603804924553332983128832864922954292756079967397344193819167099093317785870735146927994410591547534202279189984626279133071377015526965610292475516852134729283753779144769199943394176093571535881714700448685506159464601665717525728616746211250474894183126033105047436280611890762166005283913772433096509991857407124797692223763853164093855642470574412298680633958106577145224760087951756716526233006982700418675718907990646148823386539677022609397176379792534802131929624076979783584291932733054144402792992002976940048486003084484135143762771116684280825665569846848295564458235581655354149443152866005194896021022636156035050410587363572249495494661947173402980118940594230860015492352274836907871859321902412484135926615913087075369489560471605963776360298773224564597736811424779111586323349134386531492396894784545974423732966591356137583907469906226423440091538508561041275894127756971904144478926748647354023729053999913854086597250674169759274886849028534601959730376794599947053048724012546322181110374435958426230006656227097088848843138988175378325766666769415954574352555318564657936540827271324262932509115198563933503304968112777804663109721164626853743003923856171161278192829688325624768909915545824859415490630644132745132096142984664997220763039735794843094556393823247558877299743333382712059514801907471582109209144678720807037546151456708783346443198683502754217619770325334070067341247383711125266426162219755258936987846494853123019412853421067546375154737443179787619927190805784710838728561185033671261900386062851430140617486770178172123717255304240672120039668973455120630288987799084150421679663602442559620811138745861545310369438714834677142510379034667851241574686514948337772368158227351135040607909835906416270197337050724509931780157422318583975411765383226370877016624267197533166211612532433315383828666213774581247633674262371637147010325296620034836098292342711443632876175496304246280541947987861121120947003559900132902406915640975542460822204056073648165861647509426663638010001597114748718185854472191314862152493498807560416357924825412593746943095375579294181314989005586940223194497537491804312477430554412614135059863276555744910928974376437056480367241926453466431106963300939090591917770191284498220045988021974991435059204954646906477091191736088417627806401918697413190620104811142884017435553669532895230956328762948158245033622678540534554264064678750003046559783807889698526407036545623010233141715328973523576208160013742278490018808608251664259735080121133581911189706125662937727631097980321169493957215508087346570469524587016116920554298152973713136514576033788391333291511700203568233577113237996154438767297065065384738258043859241877558498417530478548010765881219918652095806976002681536411267307995667130593506114725528744456923560584754081842544740627715004320766743420422401794732629543407555806544165422643640730929849677477316968386231779616402003332915939259732979103005412931440525396964505190614845474183730306613292845063581349681680239657350742005721275911689444156262228803549775222731343418015560288988304864556488119546588272463958973840065876026427680894469835632783087288488300925782473074007167683112855608720611470840128629449001805696085988565263152270938358113238612425670265519509416450421336770222647726469575219015056992241948205664079351870740536226996477812056445846875243541111287846516123044512481575209151903691727898432845766025939972892873850008855652362648582449751725686889208111022427107111914702318191065381723828462118447549193640780145190624841267125640872876836858980860623374774442311301603772243767394252849285715202215020449263625032128645100155820186704402359423146066647154739784287787070160504947279155026066160930777335241503177476588043846296929541331833452649643856595723975449433622389868399484897774439526106586124205742717229938648351845562498012481077120060490618409029007606235433181134991534951322314011468740130634969479438845307656109802368775562848214891440587468860869417718717009447066355172825267633310939861996704214100706087987253868098853081561643463247448507094030600655071981981631773405621304282701154246864919675533273897686405710638477483626919614935527218903454369074005914557799559494847413613508784091938729950527825320444767757783707103870353334348060171163140524351888867412945499646614444003492760423188513046336729670503195929592774371147374933887057082969077175578940561556519480895154065750567084632520203831487711212033699035997135567506216564966899887500306508547315087658752462910397966786075909961542588770394114921424847118935355598550450362540837124081651037943418359778033616250036570020731720142046300023052318007403243055817027855350703617211036449815756539937061194263951851426356988446405688075481243692714074499104514919481898854881838633385006524499914393448942665350006179021350519355664871472586810953419007301171176154900912910533205794598392951020574309250012054045510639561607881467258582383355294306598064933246914922617710887061743631099597004141294132734496243242923705869061127196976113324929215178472407844129873461858151620647943144911554074681549955294070900378304308111136783381734744012116723424976511077202896133924004416458184259120455634430407338758242975250457563814055886397006739781335559163987239714665748724379677606596716429064392121700942401514624194466543494854225048676394875479255781063960466167369590296847543081661509366200541277894048007876629595929532269995736950667701964643852000347578149919242213996515318709171061269301800991689599945657267291202019569080561640468766857596219354811785916984423656305149362632671982361236522090605688961681945797519390228615928412803127627057583817886568192449079801374648074854453004871786329863482543569715022966525995371624380506860044424499221830151711993354540666718918772493977919910842352997022505180559110834968398284001903347878768152314526219071761004210984954625621652945116574000463215120821365355838262738212559248900769924235520915394157734387743429837132753508294253283486920933733545373144147864529956541227134644177667995671421185267556235679052397780660450436124736651274853868976404995038289091779409475990086833611717677998116259872761178898125697471206719705805164418338237724776235415495555333207078740641123976290641220788029669388614321260926087376031177788042300941223363227755106040427751713975356048522204839314130807306165109788652599771758290390050970433896618025409069087700139219580574577066981308499029249340918276155547395991019480272051373370813248010070733781032575696597106805290954047828782270889392282305887928653025418435644405933945934369461972510066334340041134809548188439948176660258180611602381536920249392388059823099838574684229370166522227040689941308620226173828695827670200923798740105570725976382223603995279146665387434277505649099590004966153432027415174374121142114720641467167186027658569547260222300081152779341066222980728540379520100957022167894149006059049851399137972695002967670750762408814987821908999222436762493504411587818784677753072416971584932506898245593706194319263046958220364998136063343067461283704794704881130156770763695445511104586539509916793817879529237222392899945450479853966538235018295936513631474457476950716643998310865720974922320344475576148373155817553127545504436772260912103420523467702156886012864705738772583005141586408953995951489074794844516453626400153835610160479153521258461672177884426564432424668897347847751462054438351616489903274205485884640574986079596273533855829402615643653100250627527510358892843014008930124758381482122487861429581932794825317992019486201159628440141737229750694138518009278034074268840530622066893280300825463029313342641520058142012180561668500763241166073021226385027013601905488950256367102381432282610334819239618027045290252402216205149736823447280622465131705611959398468670041714787936514378675865014674407736356707861283657878149629371689887763219796971005703844100384603472537034158772413595523547749269222154826451407848478726794733711544637369041537263090824633002061586785074694962484253557421570318465390396546936228008910043471888665634284060076074138984142971134189099562796099285284352022170839010786954985085394022063619242917744228974570413902242084108004662311641812795865575895000937208210074847007811088726773881372827187452480442770742148904030496826560570869047779543049713560501088505192830063671187780353789600306179693902864106718605073209741521469705629073298650805035634178378308342991257426542099222434660875434617572955409933650558321622946706793095553482716239532636832889990677750590118200822282577866498461972065341267651799185753691992270646581971107859100682746182154111100512729898774980901992372231660471724661403305598930123209671547543774566232674062741823278603953059194415368926984093513173372530693476456271350797890752279183591348765217861523614609033959454155608485021412661576946046528928211333162841945134826325111820975775962681112717625696190894850866534886122258971460098404408256368334937821380185680721949315227245151140827176970676950549353887641656424472091076557395574690193003243566936916863738651308475941545897504385322737886466981768419971527863925021291563131402952764426581656641969171341812327378036883608707404680707313752201621373351203955218163847788514567854288494775283583815597427255019279031480005354902461061575901141963635304319340329532407213727511815052248487787756688918968589661793988621741457064520623352305125947982306622056214898149252906566172441776771602123337447249706479338776040157594071808566458645846753155649520160149549444287948469738903254925823434161957126749978698837514224956388514865535692155750203161486890955175755878803831319058022305165484220061823448619040034537236771428185676673178539415027587509675281789240898731425544530232011114317478371425282217843105411345261357436386648157286248628104779786965617950019484661981683684426708333541745207603718748774940860675570464251921564070970483911344754289642281329931582645614242940938278843654488513793046583419379972105094521681484108357606663427538963782726036974738960094967198052565581525918108461141719651187742503409817747846232184007645630184746303690035235669710468315938089833267480729038596849664485658253960272874310392114149096623731276785514363801049887290963975727142721888748393467186150573621829401990952236578106769559254823935876073762386788861243361332724126408351139008513492847806508994608627102062786268837974275757758958703065415988790743301128167059822126234235124230098522309637853711773285778336009283498552305099576777476237190483106328843890779458249490556688903127969385775624581997646791161104386244441459495675112520228388870814749023568848973605790186439477772984956525362315237709524955666730223386547797082496542881186003377779886159212227972497133626552839968485822934800021757452888292873637751362750975981699449222546996951926399119067701484368481920576531221712402030685474613785742212691697761201707569733198379644239284843548097563749418126679858858628585036015892007263952689375161708345298115803267252847876985694890856043048635084817188680045742451415880844196051314935012721495295634686446770207476789723751674269671777570495732590672086146311373633174238049090587669087576526829942443889198412948268859291784925797716299596237713106405882001225337837994401628928429654364850580832862524101475491452032108381641841936271193654094794691499420511090249110100322221534857619475120528133480040012007607676922424348367535864369787461934151041842432882497565100898875546902408270941761639053569751049822486650949435183264192179721624612546824152153294669364374064365904790463235651442597113681481239185071869589195528765203579615884207315698947623788135897969167012122358038036576491676586627617369664798735335538319364769687534023921008798466608578990214584938250318802882024223445599666998874388456636973401956723264079513034694287760635169059851918106961920015181930257510880842838483260572609852026103254921689032224964269136789817474182169692345908037143072794389151741632305636605446988048067915051108274371734331981888204247392572695404372631394801805958542070234836829228633708372881398532500524881271486603698806707029310760280097056325178069752811302346827604782608797974898753060539011674125331526364745685803818044084009355921291565153918343700977563481430510329054071697202112750141408473691602272154110684381978994787992164609343150813959105440305535529870564955122764609463003627818486991370809145449881081197270683281656165190384233486537868443189380309426975344402146207461562163278583001951915917016687026994376450155469058013950697500283349987181934722234721231421094423778896480645019146602586189576161937385169188602788995684239474676343711962942640761368111861101444198473444961491166783191639651954264458649045283391742492202504774298934814188105229121423020663919435219391563394673336224138290463555010467365753921188029646502431907811467412921287277741876626967594175506076982447716164575608162058674888613211619466857869402203081357383828869441422338110860875134561552726383277351394934836808854246563363844937753894291178935206113162414710476018947737219962730181907612646403847613389560814786789760009016840671709890951049966651353933329435749141945511881302095139223816642056567236647334680159857920681435711913697478699868140585940114760805471937286686088421866778746369246850971686114808810003162162980795158779117734291313935948694829954713220787649800385671959408173949846361924173670434060744932959453658283075666411242558554496267476557135722760163955785538891760793471633996553420419333307094756149720813998737173418496299154934785779186139315724695918513066035406337500347491160169335107934052666352607881005616188819105883524032888528386503914127164571682211481516627953750267077188552158564798560164966750870392895497746303605486613365476358863145614572876014027482156986164646418580877635264716264217749438346669942916554515249429997579933548129710200993723885239405568768352007451153417381441909787988226698692804549627001029502787096993336369664756880724796233051140671360686863917806147974255325883372773686953251167449647782091744690068649912492096385864454519250848100950456906091608658484476810162279524283674236801995623448798391705693179057045478731919275363638822994434081000847946526461289041163983199282886378329432403107349292467710922701701841995476848743166722285814210057912399252322869174645150619828467820627252030035819529752554641600897279222785731106133986516273051211448027777069119572923533552910780464705197214576455664208842920824375212876529307653046801922282299045910867006807006523859497266668430168103052326577289212616311124598502920679180592571466525112716605705891351378945071499308359686389500959422513842065338730622042600198905725347322241781086406922455877606513401505817013892862297523126278385114709300951298756799095829154934877915305212817581551663961215699681091688244174591947989872481597970100124097916525902359367432936618918483347707069533824357394047490110760678422981618224137742834328418118718660709839715040237262062589987166490433642881255235163742925173502661819819781825562896964187262273555980635278108287332666801504771012117894780110313616548054997531646222487257416242168458484925848983204842763126212950358658210686335317313665199905845402136799179479784776365606120451334870615095601487584502799110035589755290802829784349662035995797585144792756431974905473151040477957095766137960116221670500712233711937450965095179447247697715788768929365528449539089678339213740950756618838826306438286770216916842790677104049050740200196625659989281358490407388390261906144570153157397383304925743004637989593523885148684047890154418683051368728122880293150338301449082604280684594890399984733473395269325335150729656318328335809176352344728209427436796976103842615941789558463321843141504371232945928345077657255964201468591122218662620059354700137761422758766470871947896821862044893945894330972210862412617689451015781224190334871414130067403939278043877109040642455146135005793822769110328892756471610114034218121065208934837044938958771291877436779621125448254137624983873845833245864443941224406474915974425872265798213477676720907586065529926837686274592313852874961261778643973897499205201810283886094169007902622507543680095634559838462925495171778211863476294393500884763224770057138828332642714827192468058902596604759580594078706569563778314258486803290920317378744136173994298247996426771642793741979536587033186238259419578476511750939504087976671074509260249500900124086408987020739868616700388240813925856258130240086341768075912991168721110406420210518365542766985969341867779834304613620253280697724673508556152127204409516595591096513112788592715305530692277628329097101953627159671046937052101148509475681968888229925998625448646076339281253434378461821045110914772004166246711712345307553239015953848628882594548144501689255140798118628907367575000828731704712389087917799260605473738143996492533673236259219061335202417901481644493732936800395753517255352419201262450446396983808975294391755679011982496285265924909863243044177439875541204871332542368530288156712049997022499603815236264168079066020677233864688846184168851863411903898878089496365772924857660933487456024756542940918579524954795469509499450283420259048306009152139285720572299674150449112237489872828042080416448889266204040983931260932679981321905195150575367340070396576574527809579357001718225608096263818488751770983337708384161026017269139037559719424350039490866126222904344137732088980497628979998380632306758658044418223351970530385035861150798737919655698621296356264921391382236726774548634717517105504334759566848841551760054500324493136459361649816263763678343093696914650378553191412102763497711253513088232516672973130287130245007796064423292334299821609701257759079775575846621093220097490189349628455111288657566176382212411442166497440055943576543679128986217717023748233297402727434234789733356712375158809756074790916879382522011196327095114557662931129448672556123349421010084530760339707259665869314550226426828232660255995666190552013190812525267118559601156320079767606639187702632748448922414827520565580989734465835373032367241209854455796890881769488047878384380456887306769550317913257409025857413796942775122650807517586806646362571524893219129820515342489888106710068386854791040897067867959855902837956337065497738420730446302611972515908942785332270527086310657961176498459763137368892142623375039520276442870647978637214513005978016826246315932215529756487534123439774791163744620186339398904719283481610550729875085864041446781759705486275084548507254101087798429688499773445407338379056651746826133397008142738783730970473450873276695153167320067760528479376346256614205581304702685601305712513900881326011984699302998659000373634148768350088231461412083181999335105319229152536150210364936390785698956714351637951024185629994587473943165131083870659123406337957972746731729997445592111981813093143134001298618737852770028094580336795315523049172724646308833952777529154212198854997269878995161483862121662639703912088668750418555069571881257092767750609950999461540522693033681799014154202146020837334419560858008815892156560697328438936523403660510660603730601504407596420160095275070152635909091995091391388948423701000226396118405087193503489896063875019706092785141935704565823699750641292290830049132303848050555598403223704200377029352131198238833125363716514925443323667499087854002171465560265345878593242265884508944118693871669379268872843535122917959846075537724589230344260729408149720913315982031376815413578300662903261537324322608275887587202193800845422985579608168731211617877295189603962469664389104187640620757447569717950554268296811158370522363586766168656330730334807836755682962211063001500585249638392592059069085170210776229117979689972858727870799309991339146772812114537990801107650630672675393404925593008173734951054591417331401079366778570114204022461167853911243367611633359071988060522631457959074743396677173435367308781757610836615301035819843643881620640515316977434203521532905335542463930904646999990196749412483732703665936964860614924695313935876047823563791504105467637729298840293256388132183451781538432785405886763961662408208116598198625328971601357233728717857374486526775800661898489033967579330188626848769998825064163879450037850581704139980782049604558376616588899272113369998095519864267869474886984534859153087678247184674619346154544023965888407861710975165780398239165818329765004637106419175485579038320078726666863190560348192685339210891949144153453139697597581907395857615554683472792852283694911656400070797909846515206244512560715640534445560526697845890998331856627079548174410580909900932808437991140405187532255717299842558343108401518070693448786850037697743878858477719815785689491836515445672655940047330300192299857445304396435167045255637068903391160281072891657192902383052608257641773357759649897580555860081172943009696314801614507159531552259778760278096743120325202204222217143314294892900539970653326303986771593953605654203773573578716758147174247911886345657429972358424319163181059552134333896753293357276272718105504663387673938128767225405580492619905438263207165568831805562372197908106183499446424863129421720344454445842439173492011774879987816084156756588324391231613544567796590350285940337340236334314251377887494581001124045771958826328436815438346008276002206423084981494765418934413782793096366295028209616096979902092792779293774782885699731778833633104497140609913042001506525704465494040435418728698076585201408118409260654532600297239026979207870615932166815027592552962729651521749771955799121046531863670114020533245272368062679504275097628879484384144715074472798071109504088066222533421926145573765761861996268433874326916547235152598431158427081268707649772957808322988977395688321140261337774420456637209707899045598690203569952987105379043351553401794312732827869439826339495914974120807062929014341797527388541693428636025943530159120734106472727227575699589924920409361802500423947590319238033279808130291534589417604215352378776078111113543309545043458487057606588469817552408923858547032181201535829714626866698187125632694338618241494231433884077529781235700805066219900988518124999494334611903322475345595044098894172261040669346205118527936829656948120121351875572878636675085251490157732864267291073470819807558406892739320768127017048463211090991309178335489610893592959368206066646394346209343382882256578038170606508961180930589477856433975947701784100837551018465712091950305480819020483150049600537254226193662205337888578072660364306269628883918838071914865909705251544468971337926195451851445337659084454992139330938767358228654774785225377635496312926083847572199853841446739213068703707582487822909430212331327928745903301083906024524813364670312842148176090659365604707957069673073636183861235889025638805277575462584124659254164904285508950638721219541058888834551833158830469014589299629413971603771432773216203926707605928839014326727437976228649514147243948468852219224025073489410161785203501516972143628294991165090689767168804783761998117398897995192738516379746886373648326235028948881479108914974484444298045318298784253521617650881451042560162176699861760583471184767201224509134160437242745578766433948962864140107136144677490820342355256612611160242358012464573154804013958438432722249825964385307086150493681638650409317333704142073491997484623683566284552454642718068094061314393498706748008311053417530288380877622239725945476487442372359040574757094802022805529016551710123751273962885401464054330231781168361993916432857865997623524427522437763164031421505280725680359709183711209907576000893254451786621985307040403047741690365490889362786075705676827763369035301344410880479538053471202109152156262184837620576165007902391440927990427556813022909774169583417119907051533645522526295165289756859844552459426080729985823362674048717711553378537731148116089887524687913038760853623058080238605722350994246843998805310619834797795812852160530761605145986809406950200063456357509098192265271694524259882915627150216369187876441763524471857143545231780281301856411992752232674936490218201343467849785782831850072980905952080475198769419668479614613534712550217365305590430961425708011434165836689490988170081218262530579675537457091838300724678365973147031996285892454042025857797122960625861893885368880115232130246736499734506495917854913833772637353854446351555879420086184705619123320898716140334082139340519396038781814484616653895535627968512343679833435150000967203896551013612635106238663809782749873830717924666131173795460319922436844091140975154188895042551294562623908134835843803660009794960781359818888815027801458291611734854932128429831175728206316632550758859768135319746820136503585991530038717564302905741540105680574514658407456692905539348631238829248597421377365938064746340641968695280993846217929394738550114517073170435728324362187332630298812858949109404221298471867712421268315884347302780382742417137240585492306485688865287719823217394182057687082426268362905255191937886853464002961803535429795424558538113143785363325547463401626941678462717456580042269581096274999050803097417703529830698905269036634025321214212522368107509467790180819935603889366287626585759978689764819235787914779710410061084323789847443622984658616914401040757076058430045866574298198632709713537667192867287239886839151289159094157723909682801759740086132494636152677311387063451674782839948240442281996167304822302965470754667702174448410688473894780490796907576945315513789097990090620738045517962767332652378356838269172299207017999100149076324615800019416350906787017640613687861236261398872263953851573056832652510637773384926765712966568175279701675870514436664762096111464258598550331233436916389572667859531011956266704477552654842597691997380324852571665362330147303358418729381636307903949840471779522904850026875685540026773238972376286892721620639099746527517199939908466202548739634644241925696041245033807493989122879865963568642847087365335601144633312091124053246711932606558827272921118190382011677641923932257314164853755749899738028658346913386580371810734160351012301623757731195672422495078134850643971103058936325425762048252135066466199690521195062657182705195487736057505231019902229924692097054993128687866709139468076846464050439430225992366294681298302595225426004872970883608594443179009082017993752378787135331740632170792472190359055989881418469139256580678872108077063207957816172720411958240638892162842238109182888039642154999437899996576403186826145963767455934622778882942093144964094955437293359421782678944122102893506081570370085719727576440082386655558739431613122043533827960147270087541519812940843943860719587011544397741959184271665065824448135169441740661970894726416211622859200910481905545679120767052583557520985695176451597841231907423370484334740540674792753301843651261004888809334129754059897956518897797256077686233347948639981008312462271172965371370343258776812120999281672312821491761509154805422788084544938797208196693536563165735672017959674426829093210378590749271495061113646023241161725730854047058892376248799849720268726279855006130801438612342728455268465439999309350426194461851172946958520236320367003525906438086889869616721171972183843048036446022101304519094384568997018392075030409422356685422239178224767978194778961445123578739948700950367578037118715405032402206625102586800737064635080589039397025671502061228149116705573072561513707040517673652938739162715919410563414292755117879932885463549152475611408031501632061349445164137660982013618584366124254982266726683719957385580323406371128733574784325447350491204606528469776383322906621785547064930115885515142053340981700444732685409636866284679712279396091004485413368374313076055709942206230301268910174322358875610754904305684155385248451555019819623736917365276376713460830811177059201937098874113198740092087674159599908030022295847481938940078634283403890545888256791638581470608915277527047424564431759230040105643233295742266861898828671129892015280648565309438580635127844910990138061101315602156597655049553258906656929657824741852758505002230325680988239973639266855096032863013923493723850046947360223408885156500141799142734691389136363790352875046635533023095306747675856123170179912645943844737434148187198964662262715744160883029943982374892818969298047623558538384745941295894237100310407527642982803004679577340429367008157875332329306129930192612948765368027629233760409285204802303675867748334046032620399216174639139817255115017456373426886265853960551559882867334080373498361373632502551403213985151764701662642541516484573535110905191303722523233445704922819814488692694252838694720947904243614458106063783485935147266223183205149222759658147461991480381004360166776304296910251637150154736578525320768973071196755775622846440276433008878899961960171645309467002812964992883535075584264965378312737101492912152841601571125756141241501192524371444469564166933270095370455629304824798851863579461953778517004830288130444404306703917394480641519779860309814831768977024170353342618397723580016390334372699205158902708363807868955668494016169053689928862531051574359945570861353856827006478650857882631488717563334903180717056305171999949523279465415722940410175537094020037820224985739989770188187677392142624342207817834819403646686252819367106158345964196740936282616057287566938018965610441855716894565284842506185605471369201887373297243188131680141009780467795419947025910041163127505713254412037569905934888051025655314831610433916365085370637394686604930780997511514985000148316874552152697848503828297971213024364848923376159285923240527049536480798770083265206188063089462461351200119381183625155968135674417784827999988141303142263558456800487700417615717203295491749053480845053463999468287122062859125454890490320195777579835225776240716671334976455938964166597298556518441757342632589705315085366045388670289419651180711114772654113592426436033688492756291087179776560812141416296204291492244793983955203090796346366478980594677424270503924612122002163493866683529603385236047419242614277619427463840954998316151653996658015409076424614410541648511682778897457688154513439609702724554766031997484965081330102533780706370128523856515812909581016590396186845812081483273625842581885081065007859001594057181197862866876891111044696691222855908990818006855007349626873744185448942715453712568733382156523245350460454341276741193261356902102901184587966821061976795817078481498950186628495603322267718982031097932322383521173575612368293953808115655936282031178798739363702040632815903598124910872039178070604283694221234410709971233617590762819443647422487083752948513566439767263396363253658009190880943616254962709449381816917399568715266856704575321808768153076673912675690445945784818640880681025779896928202618304864800938050025250371686991063226948412597583318663093482529266488506681111805740643684030810456929235706018346635442665665433860407608837120663860866525892779330064098789002965874236975073666397113742316986350484950346398468921536733269680143681191116169934451065300540847080903397352084906967157552706968334940886509719428377065838212801941748041703324426733948795748044833017117019401421519569646031133008694622198140307537421267194112940535476765696886368885228187463423780436727643364843960422761611521335834951540486140897657347358319806206078388869031010484112507020514624860201060051852082442969290250658368460248803386759098055238385654869557036483097495957904075188532838440377818761699930757331545915226983718952622180628311842682164978864090199948817860886182861363247197295690204657586455427981765653916027679585544084840723800483306236821255089367259137331073394384576145675470094480960197284554038021071797718160056301313531942768678157630213867661367899364360882846625727712359220980594083733869989249709875715164441407581954764891565339999569058739760444619774055258970094486844440987907582099228085775075427109074053920399933304279774966952879454141648929653505827568917096253303883915319757450669253349314014753843497870865951851564902819252013814746550412566093555912612250687291074370259133399142080146688657986797633710776871446067417479620493489700157356926707786476866853693391440628585799035170170853587964361061505180258441013425715518752886817864219082569129934741594461327506133813219997013874545717196008726609437203678152979794511000878662188433815432895136608461940500084006413490069124117722816460214570387008906962334776275154632913754677204489749288057028491069640100752637256732330982070073338261618764784659172352306795453560001717678823148184647445670937850044929075427001629335946497131559545854989785446435929481346079371811106954616863518568572351765248465186107331080633201113092269878913362367166230876561817829418484007677343765105436162737003862126145569421717914667171963424982232604484447952917824951845044766763698193373461620964286419147642363236427314775511406771270918149796741307681457445026435364096453809650266558137577997931430481231740695441409675485156735689817604063823080143087503259521953036016459691332415745397496286058438542661206656508684417849121684102357066772035256099415076804226664516413051915641926684266434123443800694341706013012527427408249156264460681731800599994695001957867784288143136999677826056064145410391742648902280860191335129781863987504853422723384440331443496372237616835724341556275754195395684659518269894515170140136684817827474474045619819143290509310332589747124109365848052257619847033814904403355776176099942476430700294542305581154604241690019893726273807514351645042948192986480868797878176211774675136504096656313426052201945965667304696502043789038294851087734053528897679646240642285581343654225578789747753737925940370709960766460794318651458778714315068082515517285752776576678861329070753596721223511207469735685931600243864640144235894938386799545837412295674878137743025074716011930235257877222953822470171355114327635092438887596536365413260354384101938165990396591094133557333754850522142863834897997751166241024432050561312721206060291287319571691008936967282334410354984955424520740909072188226638306425765191348183980520222121554901798856514046147416103798745422468586051243272730853713831113249472061071810876914703629469539185615935446125951770394925455055822439443278239734218942311808663527196291865683171287194437893354651100779828128614506847215014236571990048604648274748170863138538740682165514741612456924635712040562819335761838351352342346071229812771676295677872039362463562317555641749442828284231358636211761177632791233488873075256446311013364489310663281249740512981604675812073367199115554936864849089158287779964521719777438282444034325962346371202944451272762124873903992545569091004653405234982570022523664264596408026174495328490843624256665808217212770043338549528170046560796882377760873720915388552350294250785699749431528323892296844074638405152479924279012430807179031764120685190041277322342866817969673931804442695011092711724295798597467994364050033995152723453149069821545995289248957958981185331037693558089653068689663743048262466928006161719548665554062680310929746146340301148924287109776886379944111972346247123122846535721114494719498097988855670248970397108136565136830423915854051321109877839479513970147926753258546725453101037122739995097043875106462918910184117284528505766933111105954137998328175174208052715724677818585893164267464288134063985371611687436538307051675764824490929261375405710129901260759900055685757323033487417908154756867221328077956228603849387480761134351685338816784533855207283067991770995859555131830651724229196470896410614702524739284584158275829455410737750298155780878173824155114368872678127067926032006587902102357916023253326773785126173198352983038814397076788128520458264866885053411348097910285143680858512091048609668917564990390780467185578051257888332938488589268305176848426332868175352087895583477608548584051137056990384467782655778867599429137178593282874819291158807197966972116524493861254198588329497854305543714120049419835360922210334152345317545010090132487316552346585057024574783260983116589512980359741917971130237679978977212473251759711479176498417901876696753594045166984969424769029389950659491958746564867421209824208795098434077980698281542679195348302176881887712621567269865417880646169281078605593505584283654527945526890103105397451556129643169005826694574398819837503987810775312638753702142169559370269225054381223925233891623011552623184169519682733561219465370039249138127590210756915242242437969419927159703824722837554032615381668151936610858225114730922183870576682414677516396763678133385167474424545560840496566631870913543947265904224954832640918677445327272316063557384072591542556674987835290098269064925784176294529709222726723934724577314650631783093938989400985982892730241882539975391205264405104135655504771747702080733269523221375814101293439264304691596645123362464488095757817649954814851263687818721627812891330799750768823689745002942431256106763170885120725318396351922147528930183653826349385513147072688339185312942533931895129352034108606785225311291013769832742809931034114371942564678707420309524836050153995744102744361035164626982139392700445774308176300629846131410307764920555357811137688174054250090053455206983349046145278487337324409501867438334431060607889385780959178847496031037652550891202957017010833871633958427128778017450160023171142935128256733481424351588288887260796289171925723655472837564250684056944433777630220589507833763762474772191695707220464052821095735198026747287290227829831884931279992741962726818260380332815165007514405108540572761836555784793156633549562757333904187591160739714279761705410321470723953348938950300066973382722958453464090614493556630015845428019370220829051223737694663533646386511989245464306150913342167216115105215700880432178173878034474266096584549176034388627057484476491132740686088214284974628927028568505204418711711844471530202500089262366985026494308825370696316043795829206968130404860356107668861722085075336436241079665697141031279749988907185819706332670420386595586688265279351385863417353047514078530699231715840624189004332190792299123474614424215503759469746246531735001686976692089903067411491587981097856258614247326613525993262685368435922686319917302105884095971038836057113757685616895879050788250137165142481457375185588572646793876310238838589289487342767060784539563150855529369474771217766105500520782379470667916168723680445981969017630611302755401903398340700530034864972770217077878842105379711553307509915590998467697787007428228930137878673627959392449378832542050181176239031108087392530861550670860093111525590332082065217107076026858600415290767267125528151005868036838514476714267880895214402879565517301407470453591507177095336710692454270690092876063352759288057990563723681290133277834570586661172979046386508839757501510742499834746579740602451162069297769635073953484030321147547675846944312386782690919749139375623796236693506058338417145614901430134885860402923015095578742112491207258397418020089838704698775719360104142741855673236087749873404725894593777770554584909153114131369198249585293792733492398930563062955830321089593042890921650201494006385561397980411088430639074169899265713946696124157530328571579982557463186263361963943628480334546857450079051342251693561029497199923678479979000130926722976579946925779692489207020085999772244463073409052904392096849071917229424843405134814825898306273273144345681642578904640863302094444563043543830213629866299861307669522895288531634587429312383162707646843537617676103188324948848955728280140446708029591387823813837539158594833661370257873021513032448421482482862373982506162347364602412362663444000576480074355593765202796834621256601186195830867836726928317478808302009537827988272159209582919804168104642911870930136163455550470826072713734514856568772003830695065255902686364062320146274469139338498549468636723958201486438792982039304441015776768557737259926327538786411330479160385214832222680118248064775612057083604205248508336071613005047295650637703089215387630606887347105873974549968256794346021825690410486581958247139266548271561280302629559077663592795369755585133348099753872155041863959632037951399031958866435061560535674736017683553208312301067669966782411386539421510635343580335926519779673864123125764703332771339738268685288240373585832481999727575749096198584719358423593737697636174808992403724630201184957052583702663700106635924581722899554804532700068378434996723336178205152248899126239333617113965385402989013354301177162595645012809075031239467698423853751391929783495640620974427525246526858006238829856882102744120737295511796959869793936038420195355874647497609691572120846743176550814104258818495983639739455540303804252265083389085452532171271092610550099410009713748891727847405966294991384995285628059283401869890924847707412423578899447458223655768272502973520061496585351691559963874714053750901264137871566628436242415859629512871474436287555428051514071388058439633350996929431345716260290635346135759606858509652569387649259066883574442519499829269863515503610885204196611301058716054579836748851454682171060929983812510647793930846071739732792836460586909408464146419023082793791936354338691512794156407515511259465146844615533544553102600083609760611320107059806803170164213709625099048101296688107146629758619756062549748982155239322607555411661603489355997790505869169536352963388498656981176567814059266659663530318895612854241323026752510276007348512432585491434268457215950921574476693604989096366562395460261541094418097127786674729362261150558334691303581264920942819375493885199935198812950064069655959849739766967692043272840767677668216383519791527080503558641339320617521600463499289663026187504862012376229889804657133549334397394306987593390019824600374472992322390222301415418916145583883008135214950204720827452413826981142739359944758680862966280747099826987921520199354395403810659886506773318569730739922938300863304342372600887264120874233897364640994790159672254826470758849540431274888861100347633991445549511522999512132016903599809331693949467822823483129271435171889456552779618533810902256349942158499634827514757262765851845811881193479658685089015070177852349222324651203392679331975490860670821145053390425136441401840281825854542239527041753949669272821136961471157038566264686039296045619867848574630792300196259720536703237030945135565710266481558153645912785590047965352402117409842239567935786052498101350375930812238910644183298505350719966563462674192714346573248311399180374611215751554894632205899051031236489532813962309909153508372209098691273956202071330932959348057810785729850756144253931186705230968971321791864828170144113033476832101458544886249200372828251569818948798788107778685299613409619393425670615943522488738248408894286819333321981827275307092987354210453187286041159744373714107362236630514956040806598809619703297753210020223353154909945084891836562429548150898841764113923311734244700352285060979204913468921565185030210497769163514633810796605847040924334362384014498416574600915968172554098674269471482389213642829410671099147926908686127384156263088579565666266781510699525054823417248621602654725902017250012929319605471472781305840371086607462239430636338960090250785174061404652199026182748435873441899984118558892592821932809440145256937620483091067905934917727678534436241123433078243223067177307548287580563320146258403675680572785311551644563395752913540215701385036404852426608356118515764265347285068137037565767977321448052182044048706622710908741277366768581037579746287607330273548619520087626154822527505308667916718859981523874494773609631241050329133881019483018843074053889977030209230010418856898531228705099198980882848761258283415451638102270880338540173176285578534187184141407616629896615685434239167124880169733031173777098010813984944797462824421981419379183800166246919023564410904071712079288811968863627320618987412207447048159046699587495542560496972584160943679610619348327651787328592853962166702156725160621562648305412008466412734319231718527474566440212388204373748903023615213847606196408709996822408431552091488258447459871263215705203762815664650342673113874026806437092391548917999792799908133648198891890608666126911528863207539933405979083465244731778359277644588065951309782762007666251554577506622427050406595040679797793374313437739585275339869611382170840328341090865829692410098871144162759540067681326666414361678165044614094538337134148480592493424861475528907700837219315844910711647413633699439269410848365340950380310073742511531892884446233841662444138145305198054518808501195263857674607554460623431408202764681684098683729810193607788097264181718888032424468730161683463281388059519194127691514816852923303422191654748356465511465135328053184206337432325618188772705732584317883292800883705077945939655529841426125644085463627310366714086325836218993658378439344739339727851916357082661219182494190329041025502441798689870307731117948590921833520787639724482497641843313327460977838552448196016916766002738756959588614537998104089347093104211022708293130520553348093592607780371070175435747975588129589527685048010363129326811589372578346393912364796668373119057805094772535373593827102393256274164681800249178085755756168104040244284053251142058081498327317695245758138951981067616191485994914260842146670630935447555049855606156365932457873530753582226453537093941080784653246592380529078233233263180501078112302073615769069953646812545327100214293500841597264977610064664278972719254942359289719589327916235985543793143746906399378571062321322401964959008003532709938915969932717111361837975970702688412524739500169008815084366882724245590934783792645335485687223333672102122063177324698250173466031234539118394641299371242194570633787022397044209240293484952875167705374033172172195388466769453526094368387635667177737999221318479980711315262309390693534709044204621300273841411042055993315076503400674839790046879969226807991499856574140445084785634947271783152420895724364270470130876377316471670875213057384589818511117374239575632623978437713414216885606211610121126001067880623853312297664967076560055821244104677479364035451366808607378352401483394231772829317896707298142848125744982492569620899767736511022094772243671954714053762802016063777395773217191723887082530543416796795972589090545923910786061532605002694370738249555733583012302977250069271470597221589774726374386434903716615137340054633902755401450567829544680110637066263789479443103219903786126310875886291558368099145801591688144610782853579824726953523231923813774252346755070015257674159515982987082208339501662762939005116856638833210921413737263321334053475785771576234933024384297387365844742848688249944582469117183012386917069127816745406384922706856803419312168842537872714957367575220994745459320317480357557086018516522301948533624214290754159110436727794149436962054837918185678770304352227611793458370434254773351894835089276750200418912461643736349318647293365794789959325304783495164419304198522353487460483615671788503216788993668196626840662317723676938476673884360385425611965955569326704272330894066240296766177585703273064666110968265449689413003346048104560831010731942595389371741196030088312936532153816411134186279912326387444529476994056781251465797490829425639239590177613477391081601516901824103671570513357232502244471327257303340958348648122293272143830579585926740281493619842104616905438164761023654078208200472866280394140359645665314435896839598928168585368233891252060687908928727072544624242839689198216694531670380053720850883087461761405050138418296424924005367914466296299950281441579920995985764193908982161634344497263650275996060741293357411046822076540361986135249258874761019125452068581610304750007386552349218206600305864750258038931639602415421250060609701455025626212918991628020041533007403136865171064310046413764722463595929111216376753290667970946811433759760714837540463558495705507917009089051903009332943960354353233744378572095397820969175387937405459556935693525004610060538362588500482283147220278089705737599447443029040146031171291692452186845819779178626128276750630648205452246443473637169032856485077414903109104181279672485152206820960111150251297470297637451081011356421608671986757293509420601858134768012475356051791965821984598112159359226565742708348036757938056325545613811642818645148564607180670705248638967699150118687338845159448463685304886879834290613628113605525741558793718797438328605738779373937744142265246796248914502639856686913534080197537658373998432727557780197220458513964905018627310593548125014798993551995696592962585467874593282020150697940067897243880232936555862980006154876874908991414919666618958063580289710309203603757240160125579444053595745462066488226513565434591249459156600388001693111572154136191965276923673613467001411033304840083732595613454260712966837880508400528387852808031090674771976915054326423242775034201831621450659158056683758924092687474249604658032922115270702355871384517596776574559602298886729695961714081563291276658852270578615492858631137683589987240661864631018107488739816132305017738719313647748058040585700532362324399271812534804644337708329840046464660226136859659599840534699495273799983022666560865902847781544033144782596900209446920811577045173716153283472489217177523232338016067680421085779655021129303239309905345845134089782082492875167345848230316878366890104947095632533433366622547703786559039153179566039222519310444997133427403384482491881950306894826367924754665776627871547689804484749755516865208187824200696803935425341966735742053101250904110964402427836691464457913173704717369134840621077507485494085053941991857851507003025056584451773209129364880908139676120421449584040890286157255897206299810698661393122933981122581436813364453787417012516570410614662258754938585765375491934111542727227044673654767023005580054962668519901705421019876853794516033686724925815012351680019276960662455835504632752436348322591975128231703335497489196238085227621198687268066745085292210380002219652649645519075548572549143979942434285202599903188030235553917453568066718025048082814812800476918695152714906557014129622115625037857393331803808773401348552867752540274441869014295528605263117089300197037538498094795905354750462725639998944080039932972596394599319320531550038284346290884324709362482042123317996069682400560501151420327397923120222456565493392283069507267279612128588040566823035193324923831510179291477495420875018925329761762477064797331532047279151592840458430678857967605429141992148087625999842026005806434173538091501872961280921249439966608332780855232417566504428890658993563620700862723100291952273758747330297823765269802723402138591298207179633327007893857314346968561679963376049942558415799785318025230120642296503460678383000888531566022686341703084662694872285439716385605751313220702067365840070964612177714635166263212355780662582571961957346074548444156086634425266751415072386076161193379688448371558314845005793372705844304006374156287725123450253032833728554807699301285428618686952690106195788038243536742506435351344161300170108123304362090678419845784440878011182044472744967255119097850794323264759766064238471856310130431850283359850150167684637591281578692222166013457825234081176962141916094028786918849651227109621883153015385589489254906331826712625655498346677273115575211497838966916770619898968105318595053155157726398539953454188349006053404790922674123897069792941360873635054682775666486513801015979316701046800158187389333773099380282975840797168514295078311762965196576887337955327409024593635756722122936931072846361744732249665537725303606423882018555039861746293875247391700305622875689834937085088651436227635199520861766945151965822749085570346886008349071322827668360355628685562261401386581382326408748234856836733256160945073465604702343876325205291391075329446064512670488220959181100695630883941552173525193840287308568024469293653511243878580335578591313976797092668178308140910135977536933411607442968199052764229299463474053383483258507153518015269476556450764330832650004769735400858858120241570447469110326012073123575641921589418302911526974893588612225410766293965069212395705267529698009077237285291392291695007235362707359211611947241820070529256958248704545714705268830947987469857862964584443069475022270134603171825591961488986599602711165615239666701329107124339979569828228326491781819515406244002158423921316713857310461093347058230365262435296428864407917265926773713423869879647979801205728439723312214601298798824498970664891536618163704729011571075578966074622976898439704613795763821195372637477700417190832747271222053042642830741414648211963625397787017882048509763134708984861583624330957847383338223223694372620468861435965925729265433210061498965799964575086856640565539871018132101247015660010729193728934414551867785251249516248000493299724053701250462318361529498338644452240390296607272023796895009865441775036047177883779877669616394764413605110804804168960015702050409543587743501826539304572401107425309202277860228144394111518021638552780052237727784133518263812086875229527671406926569498463141449149045607694812342237300362281173846444236404494418256266829385822025471566517014765874675028880380836346499348429940224234371624907908567678689338976857687999986326357962298514002084614907573185130189667097694453964667731609129383266089196619652178772202265761010167411626197937134912036378069984941521203259639293835577941448223234379165992653425625303334182838498284138507524358197258129080147139881093327561104752766183573149437770620936747263888710338605150235849623190464830295687771462166619685566142288133636462392199929847431718913847806502817224281289325335453741456805522703831352992046030743272022019100731317852177973782656797052772156317748177657638191335677662533518204713631585501825521787459597979959309840225493436521031158803634057979041109475990581678775259325068185605263326466597760699379904498081893668989263625201509534373990095065005951367428974294343582807402141341000405906393237847193047189536439631455787955495921326203710752635328129787089057494766344651792752681757369066503391087043253250113618125587066527619238283241581915504267851559166595855544327641529755948566042296859303847344859578280489427679857344068536617344750533000548117018316645637787616056328601279799095993660146873240575141591121976119212834854909791804734599722160547858628014526167437946087427933403292615289222024429567307073199822052997128886943727281122040023369375359819578632299206644405285528115398662124519419636715001061395562744650270940474851937556662509632110830459336175701842896450009917723943886372522912085359954988306342665506660979782435858573665360847581875444801603743375189200391944533312740453960020768571456125807826643623531233429330539332581249608163494734624243466491538257049070908469201420096234842905628171335373027426074530272040568724359657554706449344805979500270998832513371554959742431510020446199036164404244737026672698253746693061682239255634561191864166210560331251246575001050867693421249683978942099657286994421033878032359883546524573464467313999575114357529716419365076840880499783267020929968460734954539248567026340628408432216557195406400005392154577027302356834947084934762643088634617440524410095171504940519170951595884402005351760037017120281011707794367202685327593310733416957400341092615189762530989463148665301540854456769570344983885870946548488169614722659978766768007127344938890181067261060494292552139155639040455323036543629785803624349116938139799962761199402119449212283889951377756497933278999651781181977888632713669782083308318297517580391786151169765367635697188658479996618531373534088533174115706883954957573890780330634412307297158994943723110276305546257965109815461059266110428112363258370320286236397149739620143081942721827071092770570134755884440928119733771568947424893764561248835406939407435503802045408316178007121497912339710314179968100198114604726963626056343286906038520635073407398067495678730231604307871130583438488357808330446960725305852714539425159893546711113609746454642433359341500868106354969665341477511035022453912466096005534815765572018466535575429399608409070979472503727860092807631351157146396554094619231438471307395069194481205934685490974952838482612987215231162277509977305540187581752198136526266453646566710948596064388235578345764270705397187086704712704237657744734315742823545434895073978961969518591948994339502361435616081450634073770346950102357916814067340386780640144431506603762739206597481503937160554216355551918245634365995096934517071577317190060561209953031573141369227602966426859568178736437497665244380148017050098958550506800173868600829967297084666748962427703882522590402588194942880555477297544226821336197765130392587308671791574704334595294933911130237875196417195438528760329973843439837822891837678548823724426980997473340771948371916990244892886072174244370177811793196728694044162873925358276596047204486598400089441551430475905824054516113145175393662350448119034962929903625177925308967377943930727037094406652784050997002418676250407746444209812946882733160618038225698642298936850343684073319734121559036314580764061438719919303645148638365857913298039528882317298368142135856005039875405480254771023532891092243726338639639814313342428320506450062781021949252948274948202022826484073515780579181201240222958404014929269797351271502135626539246054044265476115667737587958870090576622481900098709504214653856345686787104508513253175573547826952225478008534943185672294000764227037232365052903464790312464469687380689122616301913153993127679725687220945634262575309504601812973024476372850601347451316232769422554139894041405748336337514238039247440530722089144559810533039745544363156274898018141849338311833943892347287049010935205921596305484807285964324382576505689171799645031828177826418407674776867241572093273280139896338367683346763149887080528616806774577739581738550970786536082495798639112194211297079330918020419514308862578435415284298568208506129121750561569960821963927780301305393814693493973854241052867013928382945230408708170404616214392759121559087855760694467796489790541759832554089703737482927676896807540680376240964615683439533493915290982122568267855593312657489733565696469302843433581349976319530457036500603598942285651595055620477122980229656741919424478600154174550871551235730112644755428514667910392927423881761993858959808732121008240000444343976957647025445649502694236016681902770633278294066025035799330913467611743676070161863104028390742090970781433752704808646496395766464245481766586708141596363335656843087892878635739569247775316069286461770616084392167486605886806461075730265055351935366085882366521767770488586285026131856167385525935849486703526226211995803471098854398522509484461929169805272957545442957974933403105594299794643974877338767712282978843190517518231114054781670990314220971296312318027822938367981637050952779639956859032949254710107702403767389816657281746760902382613569126242662098469465813444193014270314973178543351374049918005639891950590435853320838670700401174153064181474989552762538809457120773396923308844954780611219932406450933062272652154702678424679052455653077007705057048538699409851488205018857250830374812863645986438392347109683438877075072021817530576505995937315493004620925321111682818986406478727828795760516878245960573425886371605231705414375130352025305628972024589002184080101316982277596383965226242832737518233944731770329350663481679093275110454026444658999822341134898251104822870805160667469454516410045158741166045676776849557533193336221007488091003417175922457267272634823632253082560252859872450481975195131850786859355660963679683180236065849168900024748584254803888923415220132120197622015335440305869142723018654888310320172001103336934034999894041243228406236529225502520015700821713404089950946653349139592691855338823610397556433633750153942380343347994063182482558424485771392059574159011542676494254662424824255266967594782201034744431271176215621296057611367659957268605618724993961637678957153145565109126799699793499546839329920236897094492698718953240616278513497033429535119591080055910263913079331995809952615215109883035226098397817822446237810668085584887087054102648363477661888445602153450394445843511640162570536993264161028025694538275069936702205905076633394274623723154408967143480552639207220400113944524271070408052858330162623777518022403671643850136368941432105403941987594843708460511472605676099435494659612423973434047469487154418026310205988697044936967659342837492945218232645692745260722918080129591979748309704308753196159640612375553968453514321124781040064585850495846263670038467435484878922663632744368557574643988720129545374937309041436770003249472278919032076336987535130351289989239877593925350627284813314013900233974963566451457996029039746492409963892372707754959079677766102987416680535845354005878321414302633889099628093468740528785859134169104433249867477610931085663605038787860767478592521468807330309868158245121802766137159202346084881541365441794375627554693097299442540547303861288127238103374895258610356115902150062797429587975523592599308845696447889053585838125270623730584810987663554461125690070368359997508145090264670175710798325876657217793738578823921289786476537687102505142045390722924742777649472884018834432891742568621524567701665228697798153588006898897913559716293672367072741609160097680628119802183429948487488682546242080602179748572081182285479591178498592894551504902197330648268628700708825851564125881221556748785365235328585181239002139301813792035291923092554968141915368499669886121923936657533001681949293845269496727278557144428413080317483452468612687757478088815204083496061555011143222377073545195324079713973505162827517862000563258449635523352200800281923384109742010360996036972228541560928869976094356529924378541676669626397726444562504654856606333568114693003358131401711031384177519381092156637692297295249369714161390971664554572965351185563147190981422950332620446484669795637400095274573992573974831078523873691348153348388762435537900870570334372037581599783128105059450575325168397251227420658861884569001217094111716641012284830988183436471121369853018424376760069209820869641771502683261074111492079210926358028328466571070549468524202022962674454607787775985546298044882536829318068478299391557362113706550356807422800473034345532791846071304668176843072645053669817405816654782280023536907388039855928334927050363778384748424212737558509600888610307403437561179655409049207597620043887979175492577548001933393786601492022380849702334176810377074119713825834658443691834807680496934029716270621012502331017157552048990867418975050749861475026857656587137384960138972181198770041947067027303117663535484399389111968439963073720839609000706886216144940746763664610186985278387608172927690154064348388224650846453669166681501080094644927315900738124534752750077600861565085456099006704086330709244723080911953832646033405546706329394967113742028261721795387943126838677667911367231082517572091429110659661056102554951160570430639992679973453527747015011042817372072564964112997796217554452705606338262089191889823791628287111801451722252393906557721861579426419464074963853875273329137561941905617249372864810291824313218626379736287126371529113001531927180834855948479066016087772458220700984349696909811939560414898402095741295650878610568270903381658970564257988830495823845158263684763573146499400312350613437250121462043920851488980378097212169943849631618351217602999287481148026342481195721667439119934598300587794342592233098938661820185118912077485087350882112516386857271581979816925747082355338295101066722247609790046987063950032439876426532418225705705768829168284434068131185982677859161357741484154674272713133155778871792665339153624004087266155925424445071629034103438502557409607077481146798368265179753424957263675610102026272408924269534732072527652813342118224136388797271735516790884449701977957837345311420722802424401373004667402698628443826035519168795362956642906712465256222878663159181814075864794729840153593410156949416626883064988359353238972927868161218088440337959940741461563772206245686354126575797130344233367814452037717018985604531028651906423998964001305514101266232399883791741268273248515955073141750701190482693362286261811898486309100089671817241169842178686316373106228058194130126210101579949974331056210596544849616985933271868474011703564054670730660702775334384468735585950914120674254673131242757676802885024798515507476957872575944033601061455071438486794935428029975185236593008531055339742306140165492012857645209682560244597779386987614495480046026258787523886778919479970853675712244955283121698625371092215713651216987171868182683260581824185784955382664910696041609906982494223234456412972670188760878320307617275795495310141170457685218962205738455323983820376815845179382403510078886812693721137899971365027105653234693869150827994261751595321394665309341522083113783019380491668233689313247261555943293899775694279091511743135266340805196404935568312588137813033542722093510086442135208486828514847188582696260128760422100771724025904313190545863665509112673241354165781764819812057718366054500844390623781542791413078945778234961492250378560702774027250655064435469287545035065335098779757946306327633719329721378317869459256338967959112498431239404654765419778380517288789423860159915383817990467734136316261730366020402192659238819661007332123348814070033324425430448362946651491548781592385328915053984553112517282958868637098382226007611215754393535946716768720636691774125124851870769227399790000435292086016507296684654588954662150680865805663616223207318490092587497874338049137281629972866069339730919461987801597764578031503124862230199612568216817547019332341994432959828148758339467070644667884691077785274128358296832501191773486406599649244429682444228091694210650759018705230959228462390921479882896650876526645545659992819584446517850485903422716352695246055139569820472744361420872772545015030410481582828278293027493677643385729639829757296141114348075012849628232698790291408404150732470687729478696854799387085659242504584812829984135479746686620911742029341745332697177032728773437068518341705022674302357750705560118993600194814207685509775906488042843525948192173745016983470544012270073526589691616543384005155403268643131069086617221456892651840865541901731091091334267967198661038296331123937257838047723266744329709142246005530447822136463573027694461983140434400488401298620030745672854137506155293403802019637570551138061657735311640442588064314475982350323462220783750492102140381259467946573237040654823745130401235798235116518205601671343765804386557199781581251105732297405572508054027788044132207415367727405098477680696679860098340375834362189056620367548796080136330741868841978454995849231325523720320908754719551055196912846916860000389360654579389220039886416457229604854610079391819491388983607480548287364380301577777560586033605051996115934521781203704655208795641437419777789552485299561834510782134415006562004589512849676792045975173994546741163690910930472318583942052282744575264663024200122537270273191823519902666741868858062814626203299768581567783938854545789870037299258229322331131431725738353120980794417121545551648743749737500468158272073606990221994357248264858494826630589365431782532642372989911867925545427335014036818120972484734982099321026405818707075734010473588550676585838178052778943619747715867659053715551406713542322252133627229073887910359824161594079495614666001923011265252855324006215624978689785519690868772623960773927617728700669548481880126905340016969014771762355046850083929596850390191441736799139038222799294319454315089486308642281930261716008191221921485221280877475653766386335583014057909996771116912861590345932624893753377082313672853877070094850758758986651506746208579907391442570531007489458600326864328658744593745837840630026382210261146964731460798676121967408850534227686556056977719143569855751895739116008036288506330557519452371029012737571019132937748965350212668780145789867863380611662826172931348892084179524324475314010307579994921945253100822123051847711407763480582482745346860322842599837632579724530808210759023724504053512408674558892187622778558086872214868373624092329809198392296043120691967849746566738096231409058963045566909267844843941698884341530169925437021658588292663582011644287017705408413372324028168574520733312053635987318919491642424838347288618210542528507939942088191635744229773417857810758126505580365695676311085310826347405603034737242028539101594626727033833135782867375069026114572005594880096424143374298075495467909226054049907673169469469706346069635315676654790283873182927096687759469766494591963993017142733894346618074641798497969683629620138613670938859936581859331030003799026125788422915569278539684743275201176537339844328490298723812433383130793102009667795080429404633634719225912427270251082350088330722897149656468521623958891414770546542872891289080293743299307153412366746467363526377193770296640071819827140530125741547759248784478979027589756006018979928499957147074899594508014230345161790405596337160313719523722146660899788906777285907676946345612572700023791496298664231122602514047995201092146379508738430690080026613818277566260252164212662801563824252548433979351365077765053512171056749220158570188262397076678575437555821459431159339143652993373512053291808355760914463460021585387063529061741530406623894328865602352357458720207496526908229749172091980373163347092945176943903251614735036580287244220769942295758187748759790889795103705340250037699463309595632184203237864234379993614917962567092711117353661222554435356404459583025808975459276047294535086718016455050162504378142408846920073577916755468954929975650435174149063708865170631669515287414608991480203558799344952283285658137385338239618625989078077182045950004331453189817630362307494569515011066067951249008046944691317455502289455394155537128788289652882398529281985829902499337411461282866903682953376632114202144074913208420721135282943100489937460251036969103233038513317354291075567242727488309077561855376378884691354386914843910908687482993479751651405330403659383045700520095319219460351279124168371890881080792385734110252683055425907789193564819755653599379691913715092755012686169855710373938568056551070277981104101408103885228187414918578857510403134000831795537123032188018456479334821649373894465827738924116806117555851902637496959924519025591832657631349580828923316968987783629383743603183540168354976230398194236790478916002659953162241135064326678315725776218320844120950144458565044808501099623192928599502812539062510045545971025028598685678629435325637390515658649208732519597849191711889460429927538865432736079034459290996782758977694136485679456119840092741882149471606031053618421979804977987160818964374894041754492136122027301272962698936132263961563804838713644999112878325716720904782856308291306714038700066013977056932735448138274672930832782289042300003445752350670180343137052005961304464571558655505384108278366218106196956815111984951850785958602865010136262647158624077653433739438835860052502205962406606091986800182533029643776021759295879541259440925727697533347459379005074245072765961667555909527622459057758933620298445212460584974205317349927322070432858767842114257380675054920810563634074152961345739647022021573771928804303948027985442533865507680160129526862886700336751731151172849580904963793086135538862277893396740066612478081542333601225400343288823194168796435746709612123222278452102801309950951709215748950405646919330358902282162939724638428500201441711106685409546480727059290471611984992750633426601524264211459552568692917372382264868054913443360312488867192638872094021783452426501940972622568752528156739000662546980091949638845788604027682867730408133567254605930363090759594982486893642459217485858189123298469540880106008221293758258951291844333739740635592773442906841369316281854885312200013463367504812186685291495461259753290472900981725407565499863216945818255490186497732761270942355942627932309444551328488032573606929402313867154820542798209514890279299031282509676973235850624051626243521616710690411218411034752465184735882916417426736563487379466467791708135324333166501541973635622776371576439787697949863768487276381705166266646395548547864328173110455171822272596095687454289898455025136553288072919127248228519703942127191879447073920328726395107067417156407769438280474084201852349098598195255797922216145315771061626545585835040881608009406247738591120563878045699429415596137201865457926118744778513655847530655352846761615233242810510968361875234059344660641728430510157083497306136808835457732272032758087734224089805302385862186507432568925761260658994567932131572952080401162995594378581448987292477285239221708565530034448666057784668295559074197335771389609711942436976017286404969861369278729360906617566507357929593398756095760880367874418060074729933976452630888368836091943912992998177806038302496180278789994716492056373821735169448639889808191689192537597404976846115648931717673982879675620401395296725753448647782977769432129715427196052663116942301278263189100605346558310153220456306377672951380165635328122362858138980244094587847430421505685178848517670599215664004843779055301082004672666042202889049776420316383284754191756330739592019050674163881436124679474767582305326296176763094704601007716391347094901780812883561384414093208977225204439970974518097259992135730126929864812552411206320894730560489754096507364032140504540001712181763039567197691967047219908550891581488060699784672126475059615217854538005523124517948510089719435987247617856878661116715304188546720961656515724506060915896998995905103438485364258809025518761851722717158727408206432154716341020181430106299704589501377491708053289204849735554972361151129188970779723167766684102470796349405810034216886319462034831382415304296496813563361493127180148745224476808346527702420112100428658665600576484818854999719408126532661566113802140267563230061186336703739270939928822095144732575723856000805228863312424758750899595964769355729028858444976390585553126933347506496728119522619322746786469020118440003726021541104309127465107030575433826416931612443571716639723630529107562684073659052409517562305497339118818418276640034680267763654879070540121518310333145348402878258756184959234666803813332780159266207527845430645252521090864347053394727190848637021777358276207873960444808704141467286010734149622532973781353521759937284885801629686426860551721827214299860194618592624553614151871077256269438811718537014693174096603029042762701202042001421614176499406930728277908319567194435816515187162895748104302142851840146499340037377750293635900010619960756293469680915466614052837273370679227104222807361589031568795002472912444640273211636006948701845178209274619352808725173451711080728085461189032656399195122538524628659825632779107946467225064315227367654349830794700339293607692685368985008086770218217368510109013629942237846881795882720669839300788056963632324456651976172565348885080553657238316806278370170599709237703781489320904157906813702866634547255658890055096620535149067723246861374453496883551299943887326830363200116997134943101927126638987852156024424573783958472403871221063341488210163238736300436299830331805922105546227711568588841978187917870327960723132720855674575601543418769424691549379428073210358079492336505787740075775947851953960954459033044682052754653037648871920172754268345543835463226925144281108197051841738056670372806966346008213593957969529195338639728119616819557465527330017017519266814059727947755483475327230883190202709495669298159155769664675743636176682514723692993103898905622613784495923916951297004935079279338599404759437491864295706008381767357088311829473328367769769001882209421563107852273468893728571723389734754805931560712167221130584011482863247389778962439088870205661064122877234627320777127275250320099945630201245013878214530317895795577793583080492913484509166711692587438093718344223442197275514790530393876379591960621011770774607876980279988832195152594468683842316888755458799860580917468360789394537744575312372274662864967081627611733275341771249368234768572159692986309470713578187839829149748985867726601132427154773801640485444734100753625758105690842412670799166476258534805917256810933127657650003850776417657352044967117872949515162757680047897810527319755001055902728973325899059210090357551613132385706829462233214396698853922791265746758483942176849767059255441171174073856833357939664330756486154295438121207047686957332693999856887637072511151333792207169645508569796430101498538904369484880461418584345307026654473181387834005464942324381078409071220616111429516338080905856843166924336681080129266208950672305168190171875767629570839919624866623492793166771374833791500510934966977208571591562128212747316568686786465348465405554703302961115452720955031453722902580772074117626306545179958584821019037951909401166038266469532297271051886628972890423100881875752142121479432833418601791068599508835388935545394985073557612324236319560671598245813617435416166763503410283443997731575447771624180194220861557375057414494521405635390102836674743980520767671815561364191351846299506049134074466944117741202853411727348678666624613697490430633851086038435185002088914046465569339634199991209757613037413693458052731709272553712294200081385073807248774998666686650760063518808610645602408677541030396265798277436307711724890692856170209517701203712574645968513988766392589033163557190240617077622722117057768049629396217492154177860263875447420699504696560685217264337264720609941927612922062864469363719478159978504236113411390540869841573925142042771643944111640389632182220916343220201653479613126653355619462737095560479373529841085041504587019282554978467316374121298310809253758041924919494252290375671646641987901926675328867082080544703674105267151386986906395300623509015805703461036335265634347530526831740261439902665551327282945387170084296161288592274629180029462663301777167020460866007855617206089790690872553558681288954396281592474139655653685646821694222147168048122369346693777814841416913348255273393183709687540133152931813991133556889884463699398603234496801470201587505168194047418490926641943375479068269574993837124353084036144090108481127631014356146766174923149597770370344687543441882541478827340084374410114822361856991781875646637676447754738317454348820847753711489350839895547484805295884532980408114390258652572911538036147198734931881772249773422513775979125363035063425377129126793552382427334308150886041710660653586263595647083385681550267214693158690809622423008390034064694506565729275657518852757540021438369567498534625587868308137696999996443315759745075306941539017882382890831500836414520859800273747144849575753089241341594960139176021312356283518473084783415273527138007628194760591149228362679687960763738120067759505530939333182008690864578078312601790870333815092674572487357979906381465376231013956099714769565044285171493983061005521855369641353030070745342851679169900155550719784858367762901001226921938808592383222740613778376596386376405860673952061684094829604458412195411144406671005573442734772957777893071364626878643583338740540090646952519613679039838707674158984509441272124267435875648824283527906334116490228901261019002260594549569546749705438491067670132362354440193800517921462766454324425849408247244313411643635069977874844201051785049936312585512205498770678020149236832931584818027648108207421846427702182940956400831125685256885095473899049141981057221594151590697599039981423732127561709132851479738706864574850152955143229531611810654217083431996164220913304833042450671931079250013280546536047281970685799313448160440051639102628991167054225350956638743011746481627538985758655046859282487848413073888624434000961297285290600734899298613824531641779025198904625883395578635741786312782181317176858909364516734470386418998991698728420841651147025894995754519596290336143330659196467063562960657298929905406117362407086912980650825933728033831225169937083550783785684184474489422260530404572373114445741292313910366519737663526733097528737715210734705101274983294253542014206375492106286754401172788757307347351023346663466689981061118359163975446480412361554413899125757265143573206072443244035849042098986262513130988226930929901813097217651750645990547934442907107736783936147549821301697423432845159200023501648384059279478073621645678324200227964505136764098417157940333492429723592368134007711627480934260646723642483294844364916671585551984519812337620603479478240911423285147460079897945923732281757377734559203121452843189766278135174358523930159250404542634290764782820503262406811963466993454468545765642498762959341101797111787816128531766164711861079205358145190913872094717930728580630774646663409925358820012044040861385877436366325513890136017762086294509337428734804043739222888083826600031720735628226143711475279009336147190861456547572229346407319489898687849200051669619190315865921877845888767229993951416608779635307530719785278876448551352023892831106605786780840874813127616797535028722978880865959676269178464585259857558732681382468215293205003725717964048870912985658809322403642336946915447504846270098248755719089285111293476411209673439097371261980014373967427943404806359282588739065918725070706903232880165010970457211776137420451525481501913284010858939678756651020614718490628997842746852509223232931922459334423947684697185920672253982727254760668567517556530425576346302172255470476684437705801327632116260692225964840118876931766315562834870860655578468539971106435673144705637234945163901749782891009904012301665407639766506726543285839048972662221735695028065369766688487968851991636348070310875063645050185999031181906148268598923462704132959118871226100005578134984266390936165187555311909693686561593942942922519833283614062560963574139052678468791395773965803958075761935411955260201999817211835100339425046381673827726015003657205564629761427181758982901293857505125367823173949252291851877338774324567456697470534181961309294120767425254867548845092777911800617865979662450740509233638095968888794986157553867904424528954062411893713700872052406575773821410746695474382603143359461331905283787108861053276300194910849637869375148372307008978635179581530463626689028947622780794261416490021562698731863320451739487720627512117819561459395424824447445654741180193892234157884395486024538014810035620916528855913223351148076964664815149095501577537580248675357420755476976909241386877674023554721184219911053190010967006619891324861538307362262320675181351507293420395850092712929591441310080617772785418319797668208503879327162074041343797105417287454073791218702684691165587253589698642308676624621811423621508162823823347218380010314473434166743887690881770695514210183462561759523363077597455386025500877006539478454160036554582306050608545078735668005309730902971000841025309332970317614599250548094064718745591892979418277086906587560929485718071143942989174860845164358897623739914973212059873320992643530864387345477074867866692956462220354908250153481324617145837986628600275445280536859647904187248547509211040883366876844106636244175818864826354554474444840089282924124064044016400891052235235990329138783270268903369021423839947694893438392799762730200524380105897253341669819288306433428344651118490623784441220723309860950014636566981074120109978631477054124414775196623594956821197846656666349740852353166217125070902832732059132802417315329490553690549987515039219952055639169960489545219726181182395671627679944925727302151950304277771535297954359390633318944611970177364323166988122156516719571524474203886485289975241587297786503925668429695304825769379667879105633740390285766583716889580858069234999591060508274959233610050289681098037452071898660000151927814371644008935006034691266440250168777831306854196923394981594210558921403277389563670735771632553571486155998214764396440515953046102944476798435537858995112109368152195296519616974698745670692366011406101618329266388550891030275596357144667310686556241224288485887800683252833403688866463858126354653786779750534154324399515558097188149918109592229371569221414958623500146835795000947427820731232625096053309207931410836429946903171751174449558155505763668770869354054004137503370301365698297948013579464447004877585412058579822714414961082523436159765041534881555313517494307092251385876472290715729862948857928204296788069387610934559131225188865614348274296325311651242863913744671469843115380399979770705131616136041876041299689191697525799598221705983237240462737922411347626423892561208473443065481454974600384126527770389767415161911928081691047667539456462560818914175490349805360325088090321580649830961335780845248861067043966629738439975035835619642999892768870186153498199512149615247255973850213662308903297296725748161038687922562176460768780967277387168594214314563270457953964933417004168664496044086507236046315115509326042851452272242528853055297847863682825228411737617662235736465737803687715625293621375415092612850593327054945968232474969859826982679411463916161090299722220569575593282236095435442214174909596014543378401534194018292941765209383085588782867852078103353735754821500091870076360222090826064375834637090872358665326365153293616741581896879261199350528291798238876462428389399214381499213641667029399935103327196236939424650842865818282126589846805866345205581841238027599089939053514353686655844965956981666758695113508429935295457853698983238312287494422486532794201736688397566295622562441761048151087469918219811196319542484810285052518535866311262536302509757409229157618044905459281478042512837407593732267297141059005139115359190475485493082239985949543690842273010906095214747015926773318017616585279068040363826262689179048599192082164128820149639360056453888280562946223455237864282535374936104396540248677561445464405062475611785600547014012463832168914902214523058916071718248049977216558280087806823198344280949753136664739114004580572358547569745502736014961867127967242485805736095120297655151964695243435825661572137795637187068179825524762010883542997962661496401117174114856395613831834737427556531306611707147852709271330559120905089210813041240721307176600176575925281978074741432806517656192222270448029598121742681869375477591641059511615606111112269692586684398195095610143800060900903353383708455966604563208663321633010938813749325787522012959290422984977768955760199767543715358454543074471070567897528530339301159868971218730982218696856011664423036736736169129773082190505485786053179046482480133305069286435972481832201365269999195721664798493301745443032626041039220725408344874087426536843667931627832417944000433717310127576706200586665061835199208399103969116555093730356043699702855575062257337523195524563527336508736400539714676209590764498981177213634590977795644515107504015307750059847172361573950485256002214957291679769886036142200389028895705249073953966474430189187547861746426960899255271078732140060163036028570537516196294288094435626880675649108103744280150532937481810327770578018547880569683368288973406880244311509945290750832061890680588493827565838031399250590907533870291656536140441191398460572037433974952423456528080265383730917262089214584177313957678369272988920588985129450221057062474131081167748446016327828298317887610146424555309163601618883694143093313816089168470306541187200217852290061540634580409134908032784827185501229394422009315834991832307202256964640575311680317999856150382679928969568397957275816417825153516691856216511302629345068240676300341423955239009289528852061858479871394823232681094579861995355403266534392139610688087889711319773388715270575231904211199517078165792860953255405668540709685948093846650578470014831831680069686454788435881188222668729732889402000766197330300686276857701364936233673785605693600304246247757935765214237986983519419161506397895120091051089434921042960651661109074886183925026428311568792444733054755788713946614582202687821520776238613183921963635702594208031595715442086261456726681819090508810217642082028276107263880266043208638458925007004395538556287204256346303334349683765470911930066103261539562870902107560660450596980122211207510186755695123957663292456547940763350592930166545946986738789134302158261849196202337703558379634256486108313086827205890264473398932811755419500969321744022183424627362205957010555851819490811013213298044779706134561484527416281759789919113480684809645945340228640362726008468992749703765489815193510224519282441700165377908621743383805857612858020487740897080777697237499916291256227834205909897498878175458817279072767094263820203029997971544170530530439757552270675094023678395621109814792089977212718349274913214437969849475418581605130062344814489180119833799407998087035803985326899103054809643456351840973800754605507134264342526583894957839189887919684815180466993737615388192076439254523383248337464403206499212598126806510862542908647353896318552451999419981617112203229771347428958372164451182508909919540559966622198790732446129028960260543006479927423083162516865140546867646016017969889936539840574844612554850660180019621558711992627602245520225911169102940486228921233129931992036238225543691137456399516487643661278969883613309822880527513014616842824469128933953302134553231405568390122048939022300882811603783551974508164982635173875383788879611354658424077232919496274060395274452368943363589769473474349924776223823433323427499858636262415221994497732850976270399052408317740777912814002540385670858687329708013416352177344694823549252599986521953654574927683591553945069429705448036262073387540054335721379794454000987357415591148626907397564413174059704941096826755647439629198830137504086360771156861643591446077087631765230987734767286300560803181304559831790598119484150727266491882311241355263811777013492829807994166099723750332766089671175386077588664326661834687349376491849504283058387490598097819503107295925847516661270944030756423253644673263149821971006415718504502692605765188888141249979770967227357123993026870319387816196622701812844831029784133808861846932719977885339574855327928792178442528832737287848663244689458093837471944031980587042990591997998818146538532048583260648602670506554171422814004344247301159644813112154669602016889743324605836333068304686900601086738372022755135916818733228980993549119109348433955318203721319278392219044797786327102240306480783600264213301919257734760308584702644735015260813050169260351170448242837072382026484239686689571010693485445425098660524326775733203088274148508799929723975777361331701585887231021107368172749403339994221560352585546159794417691578916698326734545300894976988443616082733519316139186047171716794000252520763265933020098470006344189326681060806429711479773855582078568859289846628080596706197980736069377164921301182966988034836121914706751143767911600351627055155097424184888824719431461220714784500618514282390362258408448796296673921826011288970705891319166666202234346527823255106577172576218567099070661691288689467602545391698730043304011211330775174252833900125726482990489548807805560489109996079860653417623028767146420680453779136456000617148666279160640256079068877027446879924613085772752627960112582639033559103237186961451890004091223527603732373948091921446293449236826585807079229590477565221482713416751509958165684486751065744201601424674254035027994804444019158138301913901640825259874526388887605800946144598902105923930072667784341997534817136509579038636854733879902154753100258841055910313875611243154729754322529887132039077189844527126620913874713412559815128476369518514360260734869618516991813386103175881600776986366008595509866432792071343301229146652422323908151823449765082488652265327013457923076345411165273932629426949337568876556547913796344254839655591418092123642616455376090242917628500340736223318572791314330917680259774314114548940600414958409631896475373905115866179021444210895711316163930542932772365086933264228983298185763173554067358433537626942937779122122432397713842608471652770259828589677487899419007687218171411347280752671366300855283779859018305293056289451673116412671043813771660482466709435564467365597642101806148293467264404137031489743020805456807134552378678240173952306629719053536174137548825763915554444483336107952811641384864549475677948935909859156130635013051300849085367505858314661965865159023466823497424688548185923407882837839855542327555468117328270999191874008577438377154802636689838278227317487708247235476164277996764422145391174347424116575451900780066836673121415781319706995853757887698614069557090624488046701091256781575442662939039320685403529916876301781005690412397000215397358186774190434872390395265216896350413483078281996623101622272906615541903437014388979620188242210797896833165993860210426010767375751893324378907409147771004418165765511551088380587635924998696451314848225624845206753972526313311486643939187299335282204018759196370669903725446740765147700915477834336466819379068403554929838044345578353867325841275464344242428039441966789345166673053415192196591358289055118447615345256981747712707964582827189909775911823785872252576713894950820123134663804012032862288801517451599116186457221312965046833066425388055908103931333695734852420938058211240385817420001723371456627591302282996827254025164782735979125967584964579052683604674573888477841378403348316563749113796998037377702908995197626849273295395698408908208080793476432645103237153804481262557337613095634730165753004007173705996254760746488589990407792118207487868843382107301157056206870273210785867375219733307210321145448007576491827694519430943757517714104923442738191668874477563446205055385276459049167790838401685925455453713180905928563279101792764742159193579083754300321574290884218700834511727321469591501945506845685938408529687881825438303305486128087324505584153877141954277294921472485804167667434772512114508977556890653613068113498693456894037476240974489176633452308194714647856429985478941715152993379643714434192322131220648448208708280054839915516764856563315696720431046790273409527097188802102762758053596075066032271390959226664336112898195364661836826279558144981006562211583554402728076146937498691216223820623992757021185897212478843899864252928717974620345665401893817594604302054830348010037247484835248457099773583051836203964542369328074246432909920876216831446315142140329383719531034389128956178408304282431132016035559701562608814063975826227845447410399839590779283770704406823597060211589956602421818533838875175910087221839270774714319938259044535335240447427796414873542561882828161695950685783367623633592966684759087701019458823334118690144941483587813479748347949964102380497092425092833174622217604459821163411016937689447273288160011966498684822091469536600486851928257908866610546418478248449066431605058968033147244040011351788267750070031535558202627796580039064429775658612721291361132649232176375101256673020747362805628263157251886594283638150212057163208810523064817891097699691797463026181527048787043833284258774690791323693627834568507335159032733444282997384215189121315013393281839253341737272094304310219719250223806046736204478311451822060511309421502512756855619794559362965675299928902313538710425367150409528743189720059211663887023370336306631020364223699079319873312924481317082432715323550402241656887879399869588119305633620372454031969313450479893722360553413327118817308055385200125614838407336983243486067345323266841735920460753838462028277419581383426194876067491746260697175676635248640286098380571068518604066723549833650393253769035119164773556261218826137172413275434669252112443892565317689486955320408993844682839227145855204078841927168240386199156541797416351990257598392468959284928194526942257242857381172180217788141763959792274354549914687939817428896185259662827865194510170281483415766726663085626776801637650823277816863613558038184593707402191331943329707815071868187256197893256712823937524928288304020401550403903961205716088011739404297882779337362694799587470712266344447181850517564997885069449790621698400386499255096354548624794865066368322158409185367592048961606809764817656446640699646512236169754225213028319388556044582173379304362824710759311007682094130699475941519364585003945085653519848967595407270880417454895345014136375903040130576485211488097463862529165061618391214334785563913966576522171557835085586092540947594261579084662945714736013143357601612372555622068797572060214360013315059689863267554876266731644737950997189510867640865968636046717617596466534871840977527203337745596485850183934589614887079860418454334998964626527680506883914120180445221334770783590278380635936172570292267757690262639713252752145510789671982410522404192656974433922710279363504852853434115069132207566962841327760763217246583037692459879614494115849786199724389811443014060649716745434024272240550283234123121105433967138637436819958808702217706685434468460728817877140736472592274703158311946766877652116507920159231699185287452500974454263116400755341633230968950578551697411646174656349397053477288983965105021971473047369934325706829651531739882491176434995678488623192639010435654025410118130546608495857785927823058626839540752628137833060159392026603881992148844693884998858709100130053918830259620585654721856227204999628974368592110727607102042540218493655338849275470018057568939645520211279006309414449738170094028088299327654614520516971799989879141691758446321193953007330926441418479080478535510915287746047483826391517602892658716018659223769531430318892539958995245658050978828458009413050788688457634830933099104887415319358367850695572845420338230124346939129253979032308901660991920384823368278327566768668276086245683331988478755300379375021971670761973032609975118272639152766018701440203910696031864270373993062699220610807060653472344047652960704799982999894280337926763493111583343015792439081939129660577410186124510939071483933071568324410897974517336262720215131631280092604895600395062555041162251225632611987902189243130367875822432533020423760667766904097744152573005762800270178354893818287072068709544494310824290364627277423346945884194413413220211200492586240964112677128344490805301223607008388061146262238166086031946646834264522470298160255346491146897533838862690686898891084493709333269204954627078183250718569045928350966594631748735492818230036106469420360993795144942965448534790210046393064908006091992169571017893721307444236813706975898214550748377825578464718720255575437424405222071976672968891100419210740945251264430342050469961305454970124025542460492562196284920949838574520484435280772544564098771422232354185412443317782034612074949427228197062199124207204675303560600144829793074538644294475913808420720412986886503015686097806620827021744853810149609591153543959741427462895705898679405960914573933388877485043833577980099353833836305514846304539591538633824001408561187519914954806189141618686662394671854764803393928723557092811333565825131601999728549220808413135168752212136425279881993001973578498539583148030038216251146448587857846233303140675809503654278060495632508150149833341091306043567274004757062558017027937942372228602732501406545400063369412897461923678483561870595344888587442055070008172731914588476818582296017050447991806056261441331203597693823214358356990662465408722795670359089501157944133526294361652783431499626786445777941812494455517140499019132328042984702187459274455583549196734136174137386689239578352864174010979729482291782936440771379423744949227975996414004358672986030762621293499930960562215293199521812832187804050846779583397789425426762790707260356887757458839360039151039627741382814982594795706879615296991744462623346162786115224742381228531549436865602926597778345091688532366721506033691413794032493456258689661531270718195400956062625295545549691980472071793307057103134123285588678450440154754675625661773418027825908480091326833832377496899206812623196714551317496078528886212603231380494013590108897211451783399924984272347770387512011075674743824714127014844778155129034815335795825875950670380517816278422741249089607320157510910094660153063094986943485660013880080303947392118760036573670748910709049904917347675080573865744445150061448833741277592480301449947363950167306203804993848624279461378173098558059429413467960860942430022397155876799821226971398982615427463254552686424624077066167473955125900357235034153363903062505949533952028080328769922069060954496459146695314622907538791172524604890140804305067590545596851355558483567388357930812960534714856304410065260514662493946491373001270521933724773646026151143230377527436117774992830539793929329277296361910247144072785133045551573635611534057391207536070693973044049639581447506363062900841987809618869529661887989472791798186842996269889767610252351036026163651457134160462346861774940090198087013384207099099098221376520188916937841273543172694982642467887841851611713593597198630513499418969305506779979374699159256547109475703640533746668788372806519225934152028675003646936178400701260475849384125443061814043703718394997387577962169557339749287187531933125566632082927847074743649371297037624987795470526098639141052140896468710680133710999965164073006700080372420891429887046503089316210231303986648281772488234150138782635238024472580958284378867353578722814505012953402424122695087137484518580388264179866350079387894826168031719675327317028546289770449269543569476734824035049517683461060428480157574729556423331743244405638552419842197529862489988818639604810521312732540049418536447171810320427798261932561321746265677658423954643547680947311652527794577218933052366647814297905758533937092356820463999393326432923604561480573247768460787699374809863231953698938637367069720454876585562209162397189067652631729180298762999378873030343820354081651999421322042094348044735687281640723805701730673894185896889391652990377554547247628142149778658354737944843186946272944736584852527346297842862073934495317076066077038462128771201669192107166167685836787925407052831504681359504121507901414189194249480180972893179948089897438256613864748024764245175849527571867432501863312615716536839999550147402925949694524945155686243598268813598504530834133870126252758546816914815985027171994628675232108160940773775819728804298563805563225523052916162811011752315540606752870561875904346413653880561213809218692820369735356131892020881533396092161569958767974213803363052778715353785918855915301618467354034346308437861961812880985063258865829741403615404070103229630048510510465973264971778007940369454584508757752017787260614237908521570147027874136556898264300430431584060415682875970859794502510992260046243682976615533345514240146618765205351789901925243598836868609129349133499333698727472579710298092995116276960704089361000832544952653246283218871202151783013053677635088998069518506777505047610656312688032875782406356180999881188463400760058720684751921557467440335101822601464167113368714678571187705148283764085770027371894611286185895823856728809120321772868149400823719963847613282229592729845370888193392188493208984112504070574587340407130116267102332474911992280484375248099992056846682151083703179340956234130433643737269523615986538119747578823816598354872624465604069861841071982838556415605997447992219794870609352457169861661458277632483381727248483182868442085483626874684703610146225602866083778994687910386025204958989817235040568198727520681191237197206177517871012958514443106965473374831058880679510552236087140688246381075497554250768188577642759906234124511264841091398233765835887842926421909908335303365096389362853920909008123056858441363737407574310722203604730621424249986648217856432156424691228350680273044592949778998414705437623592875449331792636331252676953633105082699294015212480235392108078907905288858137211106407188172459981759929413543364068147366012457322061343412325643192556097119555386486104174206349335465984630097410319097758957575051803126986400633137720401348672871891327838144354920422910879731996263676083915363747174854147615834551589270736229183019334605833586615672763260857429865894827508690196575861509258603602868572157983519578058738230018258074414565316703166013050066908695367337597145221744901521002325121174902685918665671781296964627339914017947403821088553775325310426659524605101960719283168547061800300548624261178017707456126794517592923633389363577123419348257058079780479830175162367032886119012575361968531411598896766625073065364042688226731881705534841794085585323875898701297794446075988434529439105307149494431666553983412330783192952693557494730168532233891035619918699527012892349377736615918343706995239059278150167151571841921419348701425270349351809901830355368034021594328787017391558449729499844617382503505179222900977296261582356258598768361881267082310120031037879182614654538140496911632705814919410227590802718392923445108491252783382537725138237877319933595752539326062338776217422930721710854089673473163253300679730988337157148045078546275953316352428851309679075088334150872295424756047907085552470320540029271911930233249811256665443190382083071534279177718462727713738158749937060088743435477267458119148436380683003094491428759242236224293281063946663656640254863083647293061034210080958621484454547091112197985782187710394372850092211813088386350512956543679600682412784192814930743921418812585266314377980449274287829793431995591377862349043599329281446120189419167019863993144328083466137266300265568933794544724520723317253910934124727436413048448412186065664735723840304317410433421372475809741850558333707718898366216001709268279474300789197372434814819076092057662500440846024488178837075335341084973017667367101111656783380720830375969209879214544405599069734560739010620824494946107875278666349285237995634212027853554830010482358145983223543012870691414375521010549259634209500722414022416822526912602095531204361001698908559169245115147692168840355410040320980825343463735924719752570734443156341186352163949814843432445787370442005830550065193511047943425880456072495904638428990469750821939089672335270589005214509207292845636103472203408986161986631599181901896508595974084316709657954575475615997749709088862818127280762538504559668073889941122631588990601421592268590932815616484928620591710815788614410463256152780411368193634676940869424119490097851361447982975505824383779979467829020138488467680566437971662824934154737978459705024107502247179426967186203342518039674030005918510597237329149775291542256768392463206419815939228179952456067384126989000845103645368910557371530151927440303710201430601127655112338763750172541436633726876904060530291965151065744770812216996421060602014127142115779110913173913437214489459045062447777529604640423467475433122619971311863387770666295187095920573309388220719421417439282314197020152993012790144637905575515904879334312818239619172722048880819308968014921602808264730262067483964969824690535091375095144800558167306733442762481797391763956230694265125662655723343485846767885737417974052253539558936203985666809659063039899654467850956576918610731633996734582275372117408244221355902248340449005087729616188126970990101046855651882112478968876270083399762045072350344591893144557288575758102272953130123686812242722775736003872968720252113057126833238647691815658474436075711363324963807367375187991003975189339887470658116337493000578301344667657208996745225463536319165830459896060171513801673476036481075845909249504631052099900223276045693742206016118948345439348822945061325669455417853232341869929752637968289502426968788855423958084660169997869188127126155465236893852560485622434503990942704736200765866010407795593524754685967764679051981226527754965798201264865390181390200644031382751995283233763105492606440982847513434662878607945992834572088100972683354243895120939962070681464855385099414653431846725429826226817805593604438701390219762391988370895962566769934053191218689818866944252608955621131400256528380298216738183215281993010792670236280873345314432881723511789283482049087837495963903006851782606736989584452601189670616526206159882989994803866110243553713048430591781733730032098394005814697048605391934926521502887248818650792841883951912352361011391487896715413208196436455811640495712643759028268998918478039668878091960904757773354040922875491035985911451832945031629703524584276043828763730455433654039840411977375196994938441490147928229381657182605894086526951923975694395328675736575190217378347864413486291040092048614310150519794345357930565349175867612692716850191274005521933596418322663274716847337794290244973801057179674419559410868999980695792034947547897557560523981876724726486927538340605215379857007876387710542876508667506965040657361730090779006245395747472647655350556777244337473072392724116653314312582205751993056137712542443673191444837143864173234221594096475564658629521318356207346319115892716062690850118062872566698621960001217475817678032235284703795496319764925062582555783197475441896106360435467961155580374731515039724134971004744894807118230934881198358354401557154443898428541786604497872445648514253171387047470011502970850153024944031645833829176916899390217576301337336721898565969744672511967803041322167613567201154899688426055262049156952869905401307814072394760426704256362999750505910171305971633164284773433475757963120805027661542969268631586069526633996544062115136308535308394032131384724665454422065656452658521931982726762203363368671282237829906720775811720078370797270927013350602757897839535318466881760811836155957746504458877962485329212585492318915092673482426684549207549516091952494776012798232745362220880705452951811731160017882401538396043931219792638175152824216327829942050703761691387265092616017875948858779206470806221109271988386992672676686736083193381225143937167421960315076285305003030901669618519459132012268574646967000190302329434533435510174345685167483087832643291646343372791149609561815172695739873695889640104454600499390776367281215468553751482511484238317444630892055677189281686402701143589923404896564379178999793418959381220144371008494529445195317402850474419692998326545047435572610714855030699806400619127844367028859551592385898032907985678528172191608591243913755057271328125062855817575309018584973749253772227014169327186238534582660946147437281196376539125521625255423035878366529290594607495174011371047087824922375824719142094017906059346828986158273687861178765292557456295157121114186393902646327927521949553033326115880432937797281303532291911367822756460314303273791602843844608550541469779432036090516119800375280702297855956848724080504566542166662331786201712693031642795734874172585865688298390269944167355573854267006228766282370572977083212136030057355075397903138301181387442355129734827994818633386361157165934453854938736948087848287714395427300051795013753942619562055809863920903556195475511820417831296001294811641676302747678197714974684705931772985763440892676266001231735795246616523693938753602648830474695284643372446481300127115504414003596462017848423441756449774085345456524137494297381913635090056768564567236373945208559736083043876630626508768025217313529722716583147367520010215729432103866799106230091241611749752629774484163335838220718372269993992764682971921525476456184557669402463367586038871677557672400763582506408175170279435464971660274293591454082672211383945871676953282447345281830860737066901415818863047361841776145552092077856954875827159658117026475584774872807015203046413596838612369498203610256806946681517082340940413120533232258614124312385987013185179038913910450896955121783295782319129282419540962670623914804485125508458459541181976778260135194143802706890444208005985046289615869619341562310406106501111968061107895942868696071893561538829690153742377559595330097364889753522820753855175907867118139762867629698890405380279947786670969632332544800130612688100808401648847107208537233107996579031658352414172381656909736500180712333480826308289227637814944173446279632374432952050911772302687057487574031259885945077604335760225055792947233235986960383185541650683093734780441007443831527504951540616137659418835031734112486091723557271051637406986736466310433964283742783814527317828759026971649041024304958386494628938358421799093733950830752657689697211975917725248692565661356131345068422086616875259710359216206073981680212852528823698244824480253673912783709575950201917016139258517273198465757018281741600952106575897345251399655283526892534031309814015155740972616365310348901452946410119217537095592096544350036754236432683109993658306694558305001850812722316609455539266365893983526042308717903066288086139606870500664597346438421298731081497596983843667138556570622629442858698200547277655114848405107910881418526374720087772705065454262029414430752733751776093767407486783928361200159459927864783375970466781572072085421123304958877053464312031469059530672095678478022484521058285322113492210087158757548291191406266301247928143259029608349638527303823364928809478519102227054632859549000583030507328245641571316781330312083803225559259757728074431719896499247866837935466280962504115377263500989315237555239661657947795280604594440154006324917066687348505526800131240300644548183046603200583974908118868177920064054332445998709121508491563841755354953953720269239595069480588265542021910114882084157022914145822693073713405457763531476156239881786382836099039235025864829827505709231313545858365762681123328644518802727850677142152820658455046061961157609770853456839084949409729427290118415360889402385588963563417936731872730914537048356467431899872650324576421391233573806643590115388603026284140188137913881911614493405476731403158374529305819236878646654327383067189006048895951772618579658735083690971044324930074471694447218304925520771145628501833773377616446866016532796547776317207260370150890457919423802187716300242720877331003201871408635880124613726821761746198748283646821589077010555001516919535112128343332471618477582071133672625038274375644556856796288015789580908340184428106418438842276959657089366246184440694956845389091317247843599213767753751093827632277850892559794486373738165443078109795874677518263390297744793699409517017648798441935227351678359577084963485018727721407674252166273921270365369670223705661380513425847325933155385116331195947991829481416516615925071511643175149248695946359697029652093624083396168067209538588831247033464340846623758498027094199144192508202705863516912747896065072517543390018178260769678708071262962280125809123016480212737461515040585864301006344030131790277477369428499301590565654361569916910918809739265927817910799538866947430985419724306652788754738035937656413449276061047646241505101300625399686715476029839285176053674554985530162781080355306533440456486514466327452759942360291659175852236412352207264797979404788051150733101505698069328494169049725747901377947115899624885012241185825114088249527777658624016519531250335671226551009758402379788472721205156964521044117256504641393307958103414860219828613786928618813314510036387232292547172828664892489148845426321859655457524299923810868438578993604018167097991036283735030512899286738180592355237533037459549727921463622662083541769801938698240118299839622909014178374681736119034811894956462322249511716164645640223675877928131690661089764230647335243611076815627378347635739775811884145511540294691827138636013344245615205322367146577341686019754785387658245689455355215542808542229631391109433586117223184405651046269915747901101910204060150028926629365412189244487891666105217589586934067421117973082722388907647621106838874174705809599548091425108923285337915554969574428457071614450876105604244747959404276404027783734920627834598191966820111353309405987426003195829354989268990104035936539032527979515524908359066226062303848498882099795787918136734609681140904233923688739722262493753093415431967309619562816433403468355644201764731745260677113768253878838723094509958790613603199900725250484637413404383392273308645325236878140691375209245802703917827223180901193917172447384669016677788310190742032917954741628970750500116129319177896852826966193218254488252071902325106056431748258862194445042914554579527532851563065196740342136269581721505528303474890367847946112846651579647370116039441923547614274606730594832754986350882817378463877783883523221965780050770501884207144048692050466450499693088471526063744279090370133946340004916056748938520928778502530448768112701730187204178045964982129269425092027965048218803284471789117395475259967376683329978251699471759256806363568033871407233689907219130595947100381706726695088086890238389708144271694407747015957151514159826269561519583454193635461264005991118719718998893662310199048601986728302622566360138185685021586633869360057249975202421714867147238752462120554470282023792852514714851830473510443079898788016356283715392402815648805564089698610841013937845261592486087346988114083172230495912440529938608044007257286708838386644103411894535755704247100036508542362879182999034156231619222773923014059537098175208290765576657415063523548381175995072354225868769801177352837556223936826065531427869681907720314757357157124577654415633359439979735981883198844963087816779011514772491421240920909104069056790880809233749745877875831614583726322035738937714112960369796360051949221487323249121967481566817471304228330385551018605243289618574181204523798394085284648750180517037746039254783012740723612788003884921644473675525785895541660538482758659414497980363745433619297098047236274755093147273357285020317648849619141275846752064000488896847399860839626845453104466359542893216284289673885728375949922787395947378726958290936574767693782687910675217009955842821280758501708508952871748219666529489958062089420223354537964953263625687182439624387885917562697853445585767191008899359017560324541654130854938517118441574874158038245197642413919305216909187135002955913339266620122494746248431624033761599805668010392656708207157405485761742664141847760655138736663899567637420219337866131331696465857651977810055302053572691289342641018463943052744520779904332929484867120293545494335107258390911419651546656308627213851381633751675695016323149096399891441463701897194050168873757313551533235838791126670567275052485200333362272665998950541999305701066533124135866749815643724236739208590351681805161617907965187327239653072895355202865459747236096460062399257435833125332894759536787106404032383335002209842823078520745049390944867755376492940885092336733795617133566439467020938764945630948770500170041674322006581667020361486191779814970528965451987581582420921766856286315015905022431879558185472222738279970364399048323904338882089792778674044772831157862829028370917342042452458664982549849782918107197555957139111180705318710117189784853216118087557352937159542291653524309091964672094451701116410902554059734622327768439249058147912601104352646070692335428087510411041042823647619720058806454544757249455114097852053608012213285828073915525595592764405372245812191387683707760237070383460548134258217224880417586383114146764667483306275908520486185387198717797385335255536510765762189364410536127432089086909169969116812428342140926038575298068584852850653474221501596048322983587916371037884871937741847919357829598578554256249855744578687969765200992578990276760169147821443982749364405781323749798886649128727446980067368331874227626977600998253873953719087224483028810811589717040624621959706577205160254262833403908228580396818931064474218218018948878753930164332610133768906695571699072052433945814757775556820582450651735646745436648665381299666699810426737000058849551403752356344572717145266554645881595064899267379143686062572889408687549949915716902948466227085756996374164097774188393556900792253411560805461092157104339289550034098851673480957958734232777476435576110725820978206223315298403328042330222257317590829039906861772758021460252748266387789826169312105198265977351172182226666950363787940533963553942379030080343155379361019422676137771372859426930711653252556983836967843799552145040519692705455111220646159044971204877529624055971071175659005900830116253511331023955623158190220149051381736269995805454954094977264956504377157433931975713773450625122073105816398095571688922805625000765054483559593671218578017010802504201304652878395628524742900466006532705216791553600023447737211165259102726033929241712732540979881875387017144312671611557366001846615325264233494809859276477963467920536993551579835698153548674112304670185476443247438303778237653872622151424932421010943211038548922815777364663753259243034039198052567330474677268890546788339638422777282494417802567740401665601073857536845119422912612748911868795627453298297859972577163981652861927409834701205792352318167674499380346204317922359713380006279011860129671073018932195974927019876278736634449395834506366640238078736767537128750420301466925017222779106742151760828897323374808132990039639182349143669271274434686134569616308465485030073886813132595165523194131978241770070034686588911007360835153850159169459915250876521815097719331900342141767036852605186568604498122212993952169037429788247453159324532951954690649126230170382619508137702018893467437680269817693210006530981056758975304771974742876165542540732968579589457659627423337432086854461871279076512529591990543419080836147171600473494510956363619672161085031632093544845493982373400679084547981499490645598080874994105274753664030468882790121507229860597633957617897255043980769390963074706730052767510391621185926403844055087508056304153649640497245445497778460429697079888832497732843001190393671074613599207243914274861976812485152275100272776878031324577166600537093389158300023244877971019307775061607050103086804408692638506106755344533340974222861224309984563585796042712830410608944830276856096749552763448181009344486326165528230857425571032547952982614579941537787624593636560528825005209342980838449348415019545583486222350114925234740683379958818158695418251235339735907584437906477805827154813077977500104473526877741952648752763280185332953187289658277626275875619740403677401959112309696429793418919305151320030126685904603021081525503261756745285730384696766936054006386528527719992231452792769136638814094658382743898653492810176260390112186256682070687421405640522612417520450748343548109169377276633288265538652229765269417578443950316722677559395628183346932677626163766045204875068938435373047809064949490082551770234674464490546847884438562784640226792878057125384586954964084719304894010864131413710975075243921333860114296422296079535336859731603506248333636507570596903726891678144630300654678831557241632655509268283618342061317349407826791257316308241196279440069170677987099128337481120645745860140299068045585226163265213687161349112552735720518245046882736721631565832200005803957402056669510727515215292597112184738641464234553748661526218909624442843677454448736118654967229974340434036368605826045520856132084230815707044392654871050895565639475589601880479231634871024020915951104132586961675596360123204289094201055906931917345599679983106916508322746623557232863568369272891199558686788883829837549547664807576262112329538188102096721902937369887120885209140758867517117908305172180021401345510046726146240074601116954173394901243834859535823048199589365738065740795298798357538094954083218354182907174381223101803744081372597347737662427559553296233982857381389352143169759341546221427213664015730201453140752512993380882516436844347849442203998520138607770639302191469678226152808297828725769532905724180759848364766792051177970255017910402085657789267044956175435596582834321778356631936642675420369121981655791960566018707591171140965099776969279286375883910503326275690419548674111381698947747825335811958111801476050241434070113780912241182767138457328963382844338828095641977527773322796249476281152985956717101761511362597715181377505009695680499423045022053758073949930653423472900607133142426861264822802403965991773955899345756165277060419155713722389863315611690703558460372274208053621731671462576984505646950953162215526147920634342338379396076234520788845774787075996340745185809606065492802895597737510757315116615487455242056751898464259708861022292883743936311204465476891540431129632343929469591244225386598252952494731901693519580304470364671562888488128362694898444375162163805804560247102079076127772705993399270004459108331876497994333002058327917453860026783478596921203248780388060412906962516136355303003832388296822030033840768000233788104531213134789768870309332834047979354181185312016276664488640810007471053571588796357914572032327038006564818457300279926599139708653280778913440332526826963837505402534507618382823038396719583488529682713783032810285314056653571667974176626890236502839336436358692495730060315308495782415191339444693340440769238953890742033851964421576806916206912081484941745641679149137393088250513886601539472393339511626399690002390562823789173293636619132377139238369907336192543877532516907256300561846322687113610873627046544711977708929479469060122373404005861333503347735221193794939416513377605739036874746526908108572809530527380062246891019137490912967023677384444478641558206806316067067978329880315933135138384217770135368965761261641749341491447531456598655983919535651439767995603567658892326655415867472323811588317223487409744725345808052734756176086236178536766691270856593588495551595442442890054095986709004001797538267618173009912934536906621452681580990883125247496387791223840737372723688996263840857338196457541903597073223930624655751460973984868902640230546748307500129741256112861759977763469672905836929512267404435588923391911445023551260403304968490816109083755168357813418510618710899311478706166598089093620142258482172379105485054338618938210885696112549935183243200478440566600950818207503267839572295809411621328760550897141668096375480861977706308510834407528477807945096100717704463794690926536028748571739532753483803786666614789616273522003170760059321153689940495817358044366898231313190221996805973256497488653978552572027501007925466452497374276935789593880353356750531461892144594980529414779604970974328862031309554463406044343131915617932409439749429665957878648483965512968884558797123518302149108810396844382296967113990797764863179181579658825411084373098259130612530354634147913243742890702447882273519476859719145037883684585852172248739949010921109947239189910874255749332182542058182611133732519316647311669625950102161600498623242823235804245466921010080434255677474137719626051845138031325789986480157261451850638863018758983517861377881192956107172513649876763102358237264899120633984999573404751383572669415960842407941267774235044394430137519765451849849087474317595089828613499599244312256491381265154650283404007698937222777018491222025501774656659729399112185116686294602577532070597076953296618723108786638187051850558366590166403390276076550269880819876168816682976773980202488029549833954992101738860660466397087599327892650972257695989033098449070846753568189265328456797771458035776554543620485667161432989089051148213791986594547227672346390099467887329621308766776681380521318322022391108287707233246113948071486405430491791870320555884152822155867704289335898379163272484608406571680994904962786457923580106196379517980307584335522971114728173487895460218539334064433974754093346778017332232525692270193212565805815284893538587548565560251317383761823321529118710245139917624820119589929962704513187253160604220786373735208977662157042060203719545318309204327513878726248982358084579763124914060704716974259598801964272922119775372976169027760453346359053355950324578462972221712968231412556175763816404200096225334866597061369429570720063926282988497458989162705387291746557839450186865408812771649474494560409849355779000179410267316105133414926057000481811141247089068566305904659580573594867679769230656508213305639094785057350003671315467982337909662714529084767854254213715586934211685082482039031266763852652992130464343519096601587693794655035472066571030899491339410571557997729662381332309272255586863610550883940651128417659321746920002471842108439659076296250409284367063791436342833623724655299518908560066373085073792102561970187637925276115404403080279395395471905295911117416706403361503212986123233742073371181983687623736845346354857062043483590523234300634355321572574604935953676863900533763507368963352997019058187072671002176889901640966323933722835218220354559076731481670955450952772784582182119806106506488845160690679510442049350040702894783304666432415007305259790588665278928029676065120513335322733533531980422811161088636129157307196463379196107040782295749289309680103281916582838509691730060780457938227626715770421982275708483745252690754712613076658835170238700563663864272797738785735746944561923166995361666536683103514905794472187676664021552246494428405281874384859547299314447243039329370094203585941606127844563661506154758872947525299345438840881908007391926587840874771988627032639502492679695257501774428798439872375741521344040080237242739768145369351332668344214535158889418888533252235544788479716601270482853782352550704979182027425985876848358739967203173811520472359057740627010885544044943573394509324039720552972514207127922982555941100247752005404824848204294126973379909357314627462834926042209709842491377774274623946855584953963377695184664966918022461500959686468428666014675018966582221171388100506574465631976472904630059676821639460132832447304196311159913525782859649293880349091994516797341193558271392237832145645980114204603261215348876675166958255445151995529330736651891372569764125835862773529983226347682530855816763644849460799449393575226386719609479467705589629102839633980047311488872242505002565837808427901973750923464333002523469904992960162089054360416548579275707190251724077459254782871773803902364039746670496926121218456290782952920827414549327565821920123182076687735359661842080955770510203271760894257810661179699318447306434643440118558029615978422352690528140141078907195649024441725890738472935527760386447668092688147138421086149287803958379314852721634662193386176967069683874042348477706937962393702204069970886327136071617892808288490467771926724953550433081943167142531224438119203337905358757995307649928707843614945983887606649234661320821905910776400033412119677952584649823346895390925874517193937412693715938724329726779457712064560649883555398991742745641836178641239781626975332590865852846171205540759401503585061726990024233216723538705307036019940606369495287723390066293007548668207121551591847684258996724689631367538910624615028610805735699969197803205668366465355675999244790098934975378951497273320792283523459084664352143315377763418441289581373956292695005101045642007145135492931805444954251665526675803990090535221473400597147166347325979392016354486582818307174678362759701004458152775462582458574778548114236042298491803567293693129951968847029646500896511842498389201605827613541872265133234326837028305763391721797345714465992449902300111368176182080605667166591032071083161072795427682198312366185678164841957572530226376200206894934246938977607297870622751641727958179367728898762846162338288110724227562979161620065996959515704773770812470735749003142834270290559228763529686030113337820171624085415070740729454337691290165620877280728288366644742849815459718941632855344973187741938988002782391606030588636841786750896745035758956049499689931859393234300705852550706473312935731240132552629756667927189734170805108532641213352061718778207404629915425065828121117117057492408939280912619808817917116683818718210144954244995599929732569478219261318087117546932420918539337230963130219700268355162615198789663410751110966215761932400195404817203668003943133129192617780669674456168278684368111518602239231851449507137100766255972819326560198470973013889387952440989870910210888897139043737411618089162363777721372438524524915685143496354370697078252895384864249104677956447485834753366703822395572654206469267709162712042723453939045584204580615922381033205287993156007639570189504182913861257907289387813465069811425483784856271852546249905319912719301052863905334957775464792880676166982217710593935478665046115604558847021343979326991029649733595072429320483006621944369079434745055634884890255263719445217706523072419112050330640680817551515622513240425498715292072323743673473056264584235763374138378334841796775311312215341616152524118463684665033165448346009963310908507683435479952785514307240947643067344758597192373688790740275621933289190805700957002879688607863740736113080152011105756408357382954277351689889360077712275531811928731615934940782317419805440536310075943796793258646185516073042983590912270108200494950027143954132909644969473841483404115388883487854810850071525521372847711679725188164230105539849375053963113634280875108193125582682539569973020051338378303668840003579555292729955680486379621129553736555367420705611399777101479511696705264746105249567802156100675896875616884791719518458398507553651156587497350982569137146337182745362704156135761423696310252348421812431875696676236176752026783996816181214529452185429744902884685541151599581265184066229558234726213183274886057894471644845605056846745054694930491804750744595880210439880489163489412719702154841648473418609561227273185106079225944269816822847181130093855099285018637336491961919853595166580345655312136494512950993613477978178443264579077579385817313340865832249782351133753903553631076591867645396085894906919792659016529321071569803910001741972392709301059380302929951475880976436682161358882938782941454140224445215060526021137529177602790867043726296465301233449113926121196516055297018117931062188367738752311759532747345778258662818285276791079405075693493323184508319607065582023725440280936996199318348720475912759758038160145277221492726807311802885145953872216448132725735605338175662734218061732160572302161094291279480856400929254967568062196760235906949043495258987172574170235608428314262704753747578128392584330913509375887756964207710085847210054026779242785956069039927074955485455890360693480154529075206308479167958899928282292281448386474202815852137501020819108701954673497479375493208721066087616981032439407829800195688240994082171197065815852090906580135222144686249298467033252945134043138406272500777529836160552423281639184314991421441863672980433219626448164372238105186465522003352574520271052401189805219479194185909414631682017062973042687857318968593049665870907827446624291666598159335487621112984338411320713904227085528804816605189058982303329646058456866430795431083720781242078038017300314477365372617178153147867250099999863889245963891359792320906529143469965363565291547180570071123244634782097482981988443525051700342373447682676523625425229700846188785681919844612285672530518296302685492627069431084160381888276299853414124721854440717199943017476948440336077235393531881011163316506084734545088056764148887704227831497224460704781764686241007425437857430623107389527939714164164063144270129515930769659711394147215482006589195350701638880487051516497231808899481957891481759692494216810904188947855861106833548500115547325800489839050432804282472144010077117197964623638883406123361367304834839654573731957011202587244588068489813689065581521073654853538926315201932866994772940530959742964733041564951250149275695041282834451884790221066150548982319872103734120261345524572429663286157783085726285027007121885280343371497904692595933465576840423125179095866633682914417133116920270916489380846909391776417239147758759537293662048698055527226717300889704139606068503027415866499565421148935415114466253131222644874698047671196337749584463565439658257237401471204811029712430591610564442856881344908253329563384978689781576990165113742093216826730092169196108506324795902412618162316954409263485323806595294986250361974949865447026356912904660404525504751593292562042768210958775593010423135725458628305670551795759890921713635409276723496427374217493421159619880465795490415483797588895814544972747961907106143428111187664979465086046019196479696517347633762321776883520108068543475093272550454466821924447390739567770758163356296298519386373582443783951029366132240690420712872134726663310769195483859886286551513678040022915293742499455949893127098743174709152089266144971208355966339964793562674936930996851219372254335026817300638295019123792186827597964349924662425515610589386459931274745112038288369137219616320941679284853802127114763704485090146362589941741100831113391197350295280634415289146946053928091661271669697397249653176339788184589532316596355223651069014633867555512591605396580867274396535882783421989519064722147038059194412830591705629627227834038633156180904881071679343063592575663725717908159410981397502830732516311531342526625458576367148999692029697154554888587368739503237761279393565833112017716698444269831224303798770363236002644079900850571706483424737394579991692463301022873887250747315629205272822003669992441113032321755868803683399560604241110348984094642053642955661407586071966768444245087275536291861456660404476231928306227804232091621455096543285806993476890100847344611749265392460680798905265289697131123409673266049077109125686745030253952525425290647679121439798787933556645468759490661972547693719946066438785765543933656943445658038884146769494558445915186504179238307495061803607320322688656641319325606155311598445608190587912756833120217475703993223432037681277514407599523086918918950492298154529576833197223196761045398821611562745365121948335540587582790889556837398434177008679585135270169825203111130004227778050618649980493552010200278580315351720862891543686511877094165320672305032397985185576577711625476880369487477565042832806903893717600131617266534231742337336606511916847100898052490001562805728269336633751376178674296824190411824112895731931415752385652860587429717190466487126716991904774913616757995191663864898100012025155418735659520418999642454344187985413416585055244565580448375541177795385793929102208134979063232190667011768757956827482669083112282797212630676629005876181218656304974944612002509817073997371651216863858415825357657733188278197230440528377816252640153356636879677435729568662680682317887200447283338721513078090089512594576489064523952871667608834114766022079418062777990179389974112172638391128567168022732902566792553293134422550907765558736961489348317822605833195867337138420110077456048230274271004558854014829569827360792990177788908736023447747052575244271997804726560855205418177532200243833741984101078176840583863794235429162489842383583574312395114340387254045177781132454351144743694747853180245015053563813349342263387942119839943893884944437507623788300236080435819860364135480745405427660080765136388977899191507402179665381292027723302386229737048156619155695835082198775087188523081567845056295196612595206241448433263716317668617886049834041424871603707860476055633988341579278339208549326671999276298324403523515191593084276251493489552221710562981618770030528074306262767688425153242508308182495016867263277677501403534646578809363685102322173813364698211802849114598715495749398481756220031044424577778725946261391552082770420863748292299899551526215543853217590798991489003468512826773075980929100989787171930434382477397400286793294719606037132512793397683168445386131877658471281956005776009114617964818350828226088049909732802784407931683277676537176838635848351651181733245496822889349788666796349619645081767888750161753581539816197111672054059598831937059819621970840618516743046079480462019552898632156283499231808936758296123735031376225656803084387227831358209121992072766447795617910700096712888302893694704969838444382504389429288080793843512487821053656352265893905152886952143356923264929396763871065574746965181260540612275315792965583992573792932046197033720368989937612177747135720307890055654836599338175401070442710216508583588729140606875083337545134574258064867332627158224664533699680731365334757471316645351286770745375744428329434006739773416444077965295215461006718022725149432915648035076296297567086549432347878646230026666432703944563526513508394485683506875596769354352313999930886946059817266469806418810731721024436782286636421715671956590702813577378804866542190848473455720157897561261771427665447031740382739323498102545723605106666208979224050762129975560462457896268619755441826647229621593654960959994363764141201529926534200715933755103815438958985585534468456920861322060755822034360807846577140779831698414282897568765071428820474518295934706156478564831433437625744664602375005531953994082397138696514348526184364829980078548365589370001721631195269623288083556437031542424760212067907252989600155329735910354988201781649300233013446166664903106516216457976997056534866238121891089708548301452783784422244869154438077681410494855687842561061080257795933725600375070426826118541459414852638959101161377042895060903571892056638634821059072658255719484996840858460289492446293992451645555377803699390579004473562115346636775203375504000751172988101372437962105673932031644873303607193921750529214299718165828283562974756798125951207056342405328872777876770469028661602551613794107848594131971794818182230301619039636568015498686574139383622254783606668894338944528127679293130099521553809967396686983262660939673579715535303622908127473491815364764743510134859873328393848022791793489547403083690199093854727626111391033773053261567312778457893082145198820455380748023239082505929208186173371445973596593239450355690486523492886793766474305035202439100164374624107909079927151661013948114595292925983905396085409638452483334794578362792106116555902024416322830637650947925393528595012949039094781736532855917449694824747128395836901581777590413083180061761065674947723615014452708258475357140602395224138150219148710588205460449356425829131106817599059632524266892659330365738955936033610447069133153620911387878688640221278662055924233025763595142954517177100092689070207514585375867538512611780035834461983472645370919396779096317668144587864952278483128047513146583308518438623431148462488583411966245674682595239119127343711360466550541344848323265518242606191627727810840790262478970052918218599580495282626684343431157464569780115666652235203845481757212634449315017717053472226722923772759247566570522884832980579470258984259451026040273188922863044291861155169361316489499403207309611089500798567823085734087873940553804318207084789726916203902116548538987389789867185139578645598856172532719609375041526421267016213368433762729740813512899026268564201338691669070471185921996502837153590187578792758781207929317955901767988121991160303353859745871968596980346825296462133437871954600872772890252614849937364790050170520914776915784893555804169373281924172365582268565030852353499323487822546711786243769274385081394066975371829628004899361921978041209239195890013145739856105502221839542282927089375319605877400806796069993612577989608150135256417800011160682443110807351460778715740679179641065845054169693719039457198869213138982964673604764132739652996248096480296343167456872123583393218007517938150642860881234571578307648028070515693538345116344328339026876283849318806154263806126994185349110005030763573713276312679242471521367054424267763431519991912831280306156084356927926251471820816876335991867367969493698676564767759936783743196124493984182764812263508790218578686585106087277109418964156119248366204637589132253232732429158398424814943436864422307843221018615369969819639159148520337576449546267463737234996423724775199839950381689089657439312417228413551155642088651424459712390659355263549284194830670802694444694755098123462618881650161583606689397166497307660763421943245675013468012273198602225890350706246347191956928729295520431339205794251890264513907356433389727148734823767088488557696922403227761613806626328236068082169923486672576035949000278827549169836139421685908878903184783637952452052370093216456797973497802931126852342627272429507792539155209821419584334789511290187748317204700447883060786208325558269058839652360510689115142675820233017741554347104405910916092483054790337662086031039642815861595029436151706201404535540293247657372674417319540278157993733392907162970117898196219681605381242523625104274882864205530950276397720286925820131469518105408886538422572112062107374985449588664815038803005543041721264454163141484877751905459299201557516883333700669224778250284600653672811555296972830468290627356423208131463376039527210250336094974225534362711539418359319086134083669817596780611955004815592415402473379534362392606062276633346995291934364072547695336992465777634140676141222056069848064188284023229520313748033921424414819513989836847131173938252945356445551131310939520221582060133003301306158043248353007376859628554736101938949481830690214127753037705350524181839912204935393267791313825396218955202059049842204764066818582833795502174725088280691346144185924267973539282943270802551718181896809712244717368374040495857021234879676900395105217026949175773978011702781561002964730183667026712652185003903708676905885818752019726057752785909222100296160792795560767432782197688138426574975570728590268319598211150127517079450874023461693545279511037132867767701723805545481354678537608771270650784109228111632298030107716815870241730853302703673104004371933344527300950731232896005264092798459066962022139413517558650785734632442865761063693248363039333906222966004056930009793891548919362666689999153978349792625537070882589198732708141682756670151469521954840360458081719608976761911366015859289986442260398761679375504833867780061521495806071314969517381605846145495126468177710880975714678767703501298742893725855637425511430451713601352391464212770977066991032473312344009532508992620399669120204356637487191906216016127853885569680304641902213234182804088236450836948476517710638139409523955961128874040766861442680883733485876283756968545637368529702855364940937345008653295391924851762086797382216189389871460721893562811145360361651313297498726602648373158708725137418921471365246756458214241755787156101877639318032394979781698540879936936410318797229318235499848181092458899509086810743077722575714962529501491496104919172745806819634280509214968422321481080721047367970085568938200173113778509702149792393487886170105157895357234860565823117537031361634895658463291814026010068982270879668504333393731620575375777759631207675620902006958993287043420505018702872523286540723363734948639769147144202235112819487691447350638829304658531562348134620545938668048657220506501119922194966593763413155428271892679946258067268148548831241494218956542814825612073299487510637852273213850321395577293944650572180271196593306440287627514411099514486215498718564948579220486147368801211898204229999922511706518635671496181236580227294987204359308092235748356489796770613530685724095310270391086354252925808281326569309634034207963154116097997174235130709602822167576152625889763361406133168746039657985290646522537391931067657981163722941756835594174803982399116612261611214590025227656651109080184524282821016322942210738240960140539473553373305837001709951126006896693085261316402825180271022424020506600384300211524001308980394516941725110521484885706953780214806715996370513985828775266490615478399305574415132732202499668664613525599888994894421188114096593314866433846896711967883384400548661845693994816635334218948476559021088949308971106497703059349559092542812407229241893268626300159181297194872500461220352121658356589433002756095122972360776503243945100040907915827997469948601562862803048192690387115509337507368500451878322509677460654342334250125715398657750955826235576725947967317523622602914586686191943505815998909044316063350160647223800455458330965112846457565275953605229710253583404397768773373687128146727832308588299974239201618763415889123367202954730348460170061954997249513937705673261023917003854174847452718572221256366157409944094473069189019712365989045700564279432629928005920772929445952884453295792794069564799340009401602680596427984549908429555627451138041087967756387117848800752669935357641620072985699426660090982294926026764818325952573907785464602037498649778304094746096391882580689942965978679123107886230619839082692196100580247109614873870618271474130872540496802483395286207685325382062884646637085827025597925524790638844318997981570316888030041812515869321110254098282390556655164721065208538137166850995087793876609858707139845252996344465085386480069328963145381134472478407062274240295376823214298339169462321940648712901407807301670518421277439880757989589043930697947493749985381122686514861111525447043969809957557889936742396675489354009005880050697046059003925974343915412305671948480584095060790309121215719439699192532756307149823087051426038393189146609352389651486095311573623744961179073801051558051491509599889604961563890362542110000482894522301915112545016404935938453309878933806150349513510357572105724099901951376179228984966160840862215453039636428732624413892229209399427713182935059211241028113482597147846844623479294645879206735704189985851260716629090778804044475112605558798742195310267999993125614761610629051351429550417768123673043939696905000940493971372173101073995275673497573536412001935196022530465060130786761669699232202228276677988059574641344332550549737032266793921994981496081302609680059940929733695041442838182548389434355028744944458134824640327104079886568379839310425370410029889274309252196176849314613839308257279899520825603461080659219464327836810167168570672879300626023911620808531398006187635890970383849538870845958109683463445691947926060747805551983985248432513065003612790455891095417624687030676954844144030542451256971288247726857766983858603453709645617957875944009611168758997625598431464527516146333148256068562753313473511131961929914557148804053599952592497337506402594789934002704103018832241826124186975921154639419366238538895208605965436059257119190895491282925389149628175565929819103991577313068280810380398680351455701552821876288330880782731555560814105702912251046589851741774026150854350260601294536641944106319671551172403049081882152776889026070944960265245811035847062509447904468982472047875956284686376399062149813269033998666296227988313578827276660998666975551656201284107056222521707901154229527930958824239677560673515573373771348467778853293521569235956481770235611688839162700180286240879651257275494020340674815163358443862000294404216224241553714319048242522192783424355848961347816419319753993369442781768911293876558236770161611516970193480958778727361790009034900190244980149816635312180671150712195782915920900337709850215535712131670500531582928108208504338231322306595303950900111701692575937071188073493339332397399756096522021440449471725313453392104711085109511426519890496601924664835661473887292166978965131969713332660555419917296317443999447180433375551787374821760774785641979415553193661757371979712587407868866706559573018658900077920166146736779813913797766295690442886071425629291083841669599050009164307413393015727432927197017930089596171004735174918365806228846082246463674349382430035506681210583566097882303847730447508753104919898896716884328901076615377760427709537114894480840057108883823991022629003539779946429630588295640068615953304728840081814925506465152779716740091771074237723652616072870479138336473221835351205952322850531057951567638011132927230441479250156572876325891417464909070558020652150734837403522854141324681804582500627900928790741332252373663159507490904993671434579626268586628585322404150705882132661066666226720822420943833407153428346659525009964061948215468197219591497083164850016586090923789196337606628660186394625437037675950462931400261839577725976351954253118592389975932510273111417904997672301057430401594786466927536874673732148759816806468923922855895131195966287878244326189648510201428926823917389312491367192383635750110718972257063304204555951409827757577283060828832629299682368474304914120624196462815563307218504404361084171376147273469644931834071903046849267553711908234360167619971482482021415102451387865125343754796141071661449114904187841066763456577008894401765407650827152448716101490764850642982057076992447241995908950832765199393119331640392323092845094059155561392718571429869826621154347660194576778224411091184267310753827589685631347984345025014294895504041547173378628762883219794156276268263661805905823381240827730272624388033572987910663739854559227865599855829196783283915820777213279225929971367625433383937515730641598469724769156935662770886480838208530740921956345511445072205901743366631107336855964262940210921388558203775893576622246562951255619277716684274743722623588957166914573800569358372792573868217684376309948351261189712606655537308162347191204170452563226160819256494578564456383525834213837089537550608547103103861534945629909107613700335439493071307591773362642867732833487547536780804849638414635587133010977162288989763241451853604946652445322629162212019349680115574977994931455708485237818524694860994918345481395391909425208446634429855629056988965889961757305328804750671319688920217175237673359380056113604976222020052873780698270600869610765459650566318690216357334349319834211715063945197996238394827960509137845868576316282133302389022831564198218502427373731860584530714106318797328987569080429303746121108880223744287600599434396102861908497888086638578126481456938305848609068004753641543409457875066258089343702137223941342350077154950061873885490146844181271561138434616004608616671769856499842871542197219673908623393341028732085755386381058896146637388755163730959421861169578161494087402586538726677816180317207242894412958306656301507009127546553440579192833483330571830662601406490937131177159153521988524823571935321151243782761608125548487989940306118457707161138602558300561375365261050970568898871406126424421641694614970760979376135462350503572537501922541209379453324755858158198645026098251386588711962052365523718185872012093562105025872628065738882308618041566506773948455538716742742812244311083383758211062780908387399555349989606266719024296141207118305198795709048857534176981429906358143792234174770665664267164270109787189519849987226429942923847533686696532996642230063876084993428163413374466268117643059380437429097646625887298842368532422376741321275801002270059768275168292433293237422707299224302796210616089115262000499192239202981716080216322794457208003424393780766106568644283793880819790581056131142410300632060587653195502040149099933415073171129294022143919827578599267679974591084152711789260927453647904382939421309171462101433316176982309618840530386239765166696735883995207739218546733681481895041972531061281029914011917686978896711032687381396362134268637703187390826181861059624249162348414986558154359459267814595708155843274118384810261029246632691401483181648155811315184756266898312743457359384224816232804589145629896270593195661906732070019190113049141303122113551091883633913444817441128394302126812002600950191149710256244285834088562134479097932218469743980097757600367803038291605027786696349258459198122370398887110762612186934184593452984907783724580000931901519152565492990305674718724173489013416108195437200781956696783197974626909343468407125461541822859568421810531324082211351665508459084639037412327084105669994330785950843419575917127041974604952371027255392857918166959942567189036062224987534255608964760027253550170510985733152586388476785333270523283342049630735538358595840548341480257248375563972764782836316547546893938472301249194206892427127787443002450514740786774833701933420744347301901151160834572262575904929743159590230081883834604118863503308006969153998692920803393208633409897894144919932691390380623302033694084972445614965897444380084268879626570354632114343043924150060243531272111238318709973759365894129233746983574633657313755432736641179303054796382260114744388049517493966003840220542803789418930895374109524661028298263359077616740682236998462604220156747327670758842641908768555338463963682519476915443842329548215576776221828509130502064163291909635330775711768087396409823624541961169239300311121023104043299404026405348727709516109868295950094622012996464660132976414274786748026896362684729966133027377651614569919083216600562369909018271577849065448468547436337596238265088401092316955015864188465669501423681303702553517957056829121394045052801513874377568848872700564390118498594134442112903487339938442340531639506035087003786947993971707455891929685391320744474293266501479027563858278628676368803399610842821326447243997293827658088203689032991740725871651926579575985964694376147620130889004136746784905676940002109364222076476114691563778848668689405123950652924871416391095689361461709402888876048334954833019035820728407117105238045757701361861715341000520072143948343490862611518635047536293004364523129291749346686865324848872975820096056504479553552242772459546712591613548487942488401541200915687252097248942760923729971147725278186396273380041097152258238339639888822370370424950266657622525490161228395930923017744521685784793132627045894624523618766040771982858189895854660010572433721398902118777644455734042610835633416982085673423226106024944459070809912894441626633220541379050769817541549871786355350289909215134722521861273034532994048275004208458298849041717736367280816598627426939426367896390581801517398221273886212952594978453935061351236691765216883116529062442779005710818862334955628431368221337325700370197752970976240306326619493427725049415946662217518481387976820563370736672998034374499003728162530778104816351537243215132698743053501992190365258620428915584695980277996601704720091084061520136034007406105788135090117379819361523864311726867895101095962771299221098522053248942082135409604876283696854108305837104651722430746901718759596650132003704195803289236472489948257088751090040699725838937605410528967750413357479281960378557830085816631655554519859490812648644271378741866673144586962379747616321123425837919057368828578679496474907306995918458353064701582449462504527189605282160888008868448702753675124260249696027110705015961935089046566719430087654895144879431872957759764563137582146368729361860732336744216487886882557982936565364806312222964007672881442370216841960647463364475423409587145085231967468999456228168232046856400877300982591073660815677630039757777304055278767141910326763943409389235042633845163368044534932967920681703719892816647588904444060767462294568713014023490798481810615157726166782943418674278275551051052750113687989223296704271173232167512280556969085697013503051408566585418450834215660560912423019207660342821398167536474383930807412091911611921484681957533272832217544405440242378607768033054291675661189780227270228977669539977288549264436820030938340218340344926848896921448565125728389572917256691991632179674744493076137412272498996407902374139075396517831989283301281291206558157426476808714861301784448935666352010292302197433456833951089451700883511372484811297427097226111973194068003342365907284714276484794964692456083514394682105012597531801353560208252140404835042258300065409424523659654689997606019184275253969593489015799986967553671651294231289810344735919059919290497914351689809148792437398678370426944625156117333520482785695123089646909592952228704827117921006305358125837668220379300507063944349457298035161266760722098428963780243680303426544268848412551426776342859512618776371300393836383727490691495080689703554115650312001087754684681664593633332087627626051216725865594817763711860146882327336444333831708709708117407575953618303564200865450243130311165389767055371347563036323578393898595172142363071257639663294479928346935200855757319980099574176489236682272795524574010699193186350823152657357401983407124865944526317974633938585535255224695610243712301265423384026076173025208371093150177930099680509732897224151603913268474340468911167454448662349999734334735226327654040119154267376134690090636392344821706677203324766638378805964994436691431794763858795463891947754683449147255940824272507664873863766739316104065538988211185617429102391189728819216197312091373641027610784598997573519234349608255913985435267848418656232011636383232793211533927618777365053194770027518698411893678439551696651832728868826503518858929612220752841315506902698765640243209202858652159184259971962425070249474507478827188262377192328081665993716344151111766936170132319873106651079552069127980710406595469600647040738984040107536401801111527560320814559430644984575336693402601939957300343136905314749765645930752170475508507007306472632435430608767428391761454730472207641777032308995638289673100165807168008645251310429088935108637820613723771228193205799705891381427911225273590575019889880663520473667316946209978317596420084675772859142285300505516616673148099904665139434225535601491862098355904275882299505072087091324402145686233415788282571685372994665180656319038998244140629658555116007488498155234296821325302945612948594136251255855297882154820805570722019063570833605546275299567674455976642330261108957948609690612703429931785398254898918294614091921074361616472021418940186213575533634979191077288498436235648461918377614415951323745628176164895846875483470562340644687218300543812242044182356722555997309604417322383665819867569786379870127261412286797637276910035499639420827946362632902185264689148953848125493857166229644587430472927735411273019059945347332948376424656826156623266721279901210050028143825842891301345993539240876175729351570048096826339995082948533109441892047584198759508850045154590250568529081988527265439992814190754594729601308725087306544851817631534902770268398346782161520041788751529909017058742190712733568788884962090529137660935645971312491641889573525363726423772535892636426186636415450253265347388663117685255826243635949605180418434884563250512490739909746055877129793760130461644215540971078864802005160801113414615402900676672007387752890756895676568132822471252514157067866765993825648609892351682792629393506284618989340745859626307586891471656401781510853314211951791109792643672946654855524830120849782046374341350628317867056076691379403030346023725139902274974676085411719700195410982714874583463838953709804876790481062637775770615274202557090643752451542930103665952754701914382558670768705884529232853043794576439045920448052579918391764332870637627241154500453673040565006964999039788381756244102003889889928836689632621077929554279710216969711330697086693264848936365021058507184943617279995971186896790682226622601758780730512630365476026364665592713006600151992444835707194801775672550305172605128136106576421072615377703941378540113908321558265066530234651224228384052940516238136599679983301157793975848032363294480415278691050774795469607582798839275463681064037190449132436345122270415832679672718010798628916402438978375169296071229009727583563210855600638805491319853984746528439255744583607986909203185044677894458049803975523446748972214664083277088962249453898405938461702036323820896955633935510577801755498273608999171618205427585607479205814330069147794750924878658630345621087882754083202579905106711595867442538440091546931562098633201359799924342831662207205578364073533142169130223769491865680335408169794332317322448319968745902715336328399650482846896664162207384752012610656139064417146409529507032764143617060273009473685245431936621074599945961570742190651390405484145261555806954305185561140497230488937998247993123632123243210894511506090092342782962979093817345968144336251668280128601675861580477392553088069237118038617885560969931831581658554307488106753468418690308532533318652586107484220228864629756232120404904177552445840496078929402381098375846419238461968036288865668220292364318599479359637524558868288866050561267011723174267255288697757933206342768235521540612870809212759252965712570885920141377367039724433549287163322370782631619805042542664176043307967410497137086559643954365900847699538574616867604473819886658112498357473430212798027656008352593291152317196141471938065541330471615772482814140195623520480755279125914666940246492167265868091793703491240610847013744466413212387651272626814669214025627372253972373419515767430757197115616848588583117853121969066133934532231428955057324367992753238154557983555904105113001099203820224476830512869138126468900373338512610782093647827213145172534311470024028329501155691748675034821585862308176154545031224379931600848177985343377433975160911460619997649591756918645676502382499383594624538940165099482179867196967817721378463442352059029449768589817928147387164706869749780151839899570907494628578235230499745530338305202716929921958874287651034533065682724674645605049026160881657711007787659642075471378995032537989555292303333528469969745382676330471402308179189783757843526675867383927936845636127202034496255979912137521503905480281820495167647425437666131960716000070825047882996002845361819164732087523007943514606428680299803743306047526135734410280715634843350532130799432678474336435978343488509962368130209007431016523137013812958876022590116676715891994893436980634594997974686900566476323000181753929653473590761481106729461165847101552070494808856959368441560817529637493830479509500953160787293163837598671439274484184980413384524291354664357895994374659734438045783170486342459086254104861133192460072573234299089076242319784841207708728115604821058414336465722217813874171934221123909067130372901473562609813099257245223094412535037833207670617937464330051665599987109633957909648921531867048266206345593437888742654204876869697865950493841240210215748320080681313144936166201374340408237948786373510620766537907559707514716919590981775036972141814853481117616421017370092361745157141829587187710721274535709151376583675209814131230172267449581398103135718762226397448326527955410278346637122084668723794959430821922710334989446846092019035669688157835274839837352703350932774634584784705891842830565607460569485696909286098801812272425528318979515151044348758117572265837463963456182127028260285576572491009584843548239747105955305277675847627221706201640021063490256901659383250739056404784422670442328360995272273329763243826691098906246835408006425838282841313765194172301941879334332742714940335139600660847885531415746066013574526468982083884735210850244305543621969824945162056784492511659710250578497918990790473916504818289571568827873252047187595393265187556512026144949238386874003144508792094124336834838008424395391705289882970269674890888022345183068192019100099816938302526002859648750229177455014901429504661257429049341011028366645100913881695499523462293855521693201979354461099711246472352681207417634883882170590816960125385065289457739097061700932414161189335533559195105762587648032371384643092549675983278132689752940342486170295099593012522000873443119496130329532107755293473118054181872142930714527783626363132462655592684672656550005091815673094607097418775949261406900279203621785223459024254383411349816738620659177804361067196050196463187345233030077816395654890876275369506491771620457571249308959021202267365354503131848257575229493807987929222626197378520070247521446490434654411686218852635632122606982081010902816001958936437908233936080167935785690898274414414122469343507989893841451941650163824729506131103047590389973829297232903151572460808245723518531896756106823858667807248697058641218897135827845609724387660133069403133708353044176388706975108536739506856558438639427972701577044240049588230877139377947972645971433206479751834206101548313423200788880221726721615701458684353659232319969498337684838754242441209295636290558029268068372194349278471910182466290550243417897479121761200527826221727606725089566333114070231780045159152622619807137341955009533797444813136482383997484326071219818255452155181187481567247461623908441043917573029990831975307283696411312221552584527801314805855369977562526411490169322015806543626354903357375343981941779688233480518754784433522346809171739069473122710421274569407786835477257296645589103005860629791966351624306585416478607323574570456140885066832426032408221494356343707356794216565992742651288451575297366888845883297356650236562142163433971852864217221519630140895064815936898943374725531962514227968868810419176697807668295207489318606643192390537268508722781461761100551431765282628605629372695404168099105115175627273412848815426047093251809477244076777907695472187066470718130595888918676343512164334093499798058145377757245877029539740797456485304773931762297531012724411605057116963371930375230667150112354213185754778133199996700355246117115103907439463993689650153593496244531227454694582015070156809498155902558268472180447141808288759195832231522773872788365788546244594956153479395908112911286958013779012640169907854636600067094638772350297560302891537347015308672460939356577649846033966069126318037265034575713238746632794076722537511159117910744817658978279208842540865739880178849099129032906160332801519988677601499093879471910367414492382917651778372959273141352616151440604826031306308935784280584632876913769374511530100035680753803419741885897507400505883584880361400860042672000468049297297196973918770721990072767225926393768648285809210300771212234597496049982568423846460316639122754926628080674760881097955761701292277674370080108571989861443888429179347982392064674922619369005740567253012801096632642769952483886454722036873199494095146071767929503046495713528684264159526861474414508907623763848960663489476038212304448201956225308232729163453495506547281101868588051303507061005747035808288719754616775653621106170392319762630677444051567697979572679904604941690916218922501451154208093723751158597080401400734381407930712994036118269818914776368294184259856158925170261251268804208000208410557682186302423408942651496395218567837748236615967554921317945092779719176264942556296792379004865241892201592484665670116409319761045070675229310141791229888513474088944197210123400078282760593771706198125546256012999603573683335711731548909595995822253515221352997363655172922599745913895957535804339330794310533909135866583364750320978990151138274087353140811523855741502260846153637658445831562496091564480587217174745945936271888194937394870497313558129934686738615766615481805138172924227957142341983899381541137119504005601721311950198632961412594609963903374412066514990674891397841540681999597584904701358788633232981920112817924132263350465981193231438225051180116198412829697319768928906464464063684735221430999204725926759920094872869797430137832974098305290270503163950776549421209903886599404528195662471457096506902249696230583647883604589616563758769505664143548937340780314585612670751456076156508477650797348325276218440649892652686813653333411602573543157087766763690100726238753832595081194814303398361832292742244501998082750264717835139174975947987847741207767480016068813640788252129451273539215851691112891983933719608856469221034178461759175927062256392724012788027318220133559443865210756333308814523979794897130305300564622121545735870031189948591405420338445253668895313915935176383190881709859471618888993473229316769121530947420522209903046987023619295254411596925976184080621992558588020530826811483476631225505292087114980857547784230146874567534009706810203656858482538738672361472800508314296301054727395263018571546948126691497758822401918675262843633404026145790257080503545127756737398925557091954150200931107415240611447124839193970688974431975231055400287504204678965213398308966554978796513260230280580484259705785883872115472880775281924946293334106554926102765902160841598920719236561305727812733930741989192134171619124587230111265137351442840040576463271958949457339640428832414907670938981858876945222008166528862484107344620863851328736254624724148062109525901820520929314798253150705926819640577196821398756050102341626162010789181770386567321113398102068796116507906762631481826441838620669250485906038090327934736798606687029915164929791014546375874721361805452536094630251403777373990718120998822304551519200169650257188872825267594818591844329195037871830137462698911735007636088142938192016245388062097707111584441660792437683666909091473161116074594248785066280513541188619416017530148145692544152986775433713219826065938707998594166542432430681280832567486274676275773652629490766579428929845979613221111181449310753072561482517282872605451116286757215072186507303182571992441971523723222223131445118795298403463593124781049601385590712374650109742749140305698740514673089702040304506100688638406873296443689088494665411789580948448452278489832528008030487396844683170499946489829005404810509561443753460102145170443077217181997084480569833775541765501773800003993542740409365168111766650714018753535889148050998218413232875371652062326969171879268254147185246588135861207168358648075422098852037534591179551720897566316409630189681353494970430272204800388058555698130360505473371599870335961867617116451475861061190341818071439952380356361963940404993065820917582822568050380944469494102916950918175390898361848391686095096451114461244562910563293489578772808008443662128544923321295265281763919782779863719429615198774772402650859422432791721400176704976869819646717618508385660721601901145902150533347405426492538161522481444795402497253939674129643789330658517306568508787031158372007610107651862365273420402514813885225278175462252427229735372830051363745919943709408927351899013708495059529810732345831336209905749212207683736757128437962054147518057056774025785333925634292094582183628274132979342837518056340581775916830974869599828461628224467016479411215774501761238745912181418753223842493457909185788607681204197856084973845237488081972280758709707424148406381408542808697387839111575044346266149198343153176936334308919910493630285898370468008228269444109408992548527896786841662286146596068454637921755611223863980773994952288308091227276831855690469451503103391530117174125505843575322824670594928550529457254155496395261593704212438079666297283276164042717660859742295279773519654639033953696018323657572582577662278113140300539341915238460951377065935199015122890581238174330860972669522324891765413953192661386715338855275254172868974900206557323175804383539709947837175023975063126643334000062561016530940324181297265376288241341498005591556463770082315405151295407065628003511330612427364778623563793300314445046308838402623899804595991012442047113668501022259309234831464145281038119355966145918559782664630993698903781261292109182005572496565280143794667317696354345749847886635599416369564579212138921957205994036538393037671180938649743240208195142138357735689819573667881883798203255635810342946082518895186292744473270553438032378053245726935162062960750963003361958658430956516786801263806414617117983962202819923065268545655271781779957293369290175345123006480262551656909203885488391640507673091129024725464635575702934949238579213780998506221662856581940005803818022739549982752438647353525872871853909390981091813569084041202893142556764134027614950951573126007831498680345703256465387404248444354520346496272533817974252228034271885249791204986509592775379902596937224058821074332971909945514487397624817651002053192039488695212132724625412255233371269210400703592275941268800280237427949487828975573934122843331785227972909911353508713437652522268729250381479480924536263709243414037742895340666918214565818240978941755603105951141884357279292084020438346543775608797403083698370270077411386676157723416450797860932977378033448067157124202287487378977108813959789751532679446772035450049382951815342506902466529933961463505147541426448849116692810099570116884718627706403292866367891891770272343816200088317454105824301038841003604577903039475326477533874837147781676636166808253487291772504675479670089291374023718083348912901808869322839082881984880530167778740332247068782161819379180057830376765260094479137997854957750716856686733191489460552624490072100545099244721306429680600881576093918946512344632826705066116869803082136091173590496203772185450004717641849746320222036074907055423586630702420621085464206667122760829673998370880830014901900269856655472581282724209472774347486379702791740666425250973155827286025566177876101482101767099040762631768011642627170013215854145835971342866535735825799345796320047839136216264203813331298186261792401971918428788267184562399011247740142879528747688217757109179680158067366992478577510439744975375354264831722340274628167980563062581647262170217193709675670762730424076677710280073531561702768994787934363762269750769133895580911531917165071738535449324469675009574688327217506246651332895804513801856567125043488494557962699364315785603996805646736620165045313266374018331536268845041931536629313036620833625809305099013221281556556856042679199472659652197613778094482951575879600688597087932614364590046918794312120609434290213536430068408016609744778475443725522678251658359340296329036067111858715743038309746191155638387161060530031244883581137253894764705484189806187472705684509666777072514908668603116549946561704907558192874453618810939780223879208855379948135854753050877610947507008029651864353885896844505436915389733487161625673884886011991606282677731733985591300415214670837850478414736146399628719455331942812218094848191131133805259331860147301762689558544191306464195083357556794698772151147814660167811765678165671215863593822982485785439654661460875216772134657967977854210440288955586112075637058744657484740411204854875474087396188991245355987666634007996135906216805549324938380768825770125943271514895998401737653423744113796147765290542287876590153559241427233269183283661478857605069876365872461696860222359038053893292850412774021751172031541511368184050424677363907753719062542358536228442377554515458131302126816154607878531108651562081304669309684772081433603796150780951595107044189715883678217663976433129920886660064155424693533444958605487953646973491182289766089335213694130898155364627274481403680297383643145387279453988296049951948443057762032484981221163191409713258182425677771209521988461258408376501525454881418182998277201313339405516263993161878955437989207471691290714892205893706216128055371761507811486512120892595247089153293749581829740851950323683569518539977946392192111869177917575399656354208350085268681916876186099638300261539741211315168241803740108440877636499952271283544342131854261657495878122555467098237361168097887301089444091577724349369205195441472929963925206027457326183555510784916050569722259470074573518606001088575403998188553865243053529094083366648129538410258788632918158607161282521716335541224176595098222876754259953494736581153596082946062442110231801447488535097401659711981233129420624260611862607409293340436900510059322367550350222137107652342736870736808437334498490686863903799996689432776702201582401877206457511407439361139043059858021668487005102155819472448004534074108603998728086625783041162550332457488963334852491611321584911666228163335816487753738864632915001857397830556020489454483688348425779714255632881124608975003666758580376690199102565832749363054945658744860217992700143297328623577726686144489550639591359782657792207971292504482295749203299191318401369958178887833696113453772076939006923844912181678313813440776970497975807952615336210404724196988372629679058539998008939762933397432229126115280297614922861495771220428460170765247529995619962471065642320894045722545012330963921833966023430204676345598684571001536065401594981659821673683719731270868872269701722150742878343622098336442388995188148798375905917812454649106470002647143526181449067373786567509727011918206009636325644138782669163190624995815367145943063597206733782084510829305590190969759247263322575582907099554757216302212137756000207293803163564786644270283197083486670517722313645623113904916422918912124902751277262004927839300143458140350538424934444755659540595152543523914037502936019976313620614902940655873450892890735358447576820756404022737907678716549765055471649817126203204200316799587909376476076422919118238324537743804649429742684514293962344125359372504672838739128280828179089220713848167946501548301749164435143595690736771655996983923831899270058301314720314139478203015317633408645178388375896326879271771188738788278089890156085090813294550955340651395374733426022668856613230059730872118173264504864939298548315100422285906575483081966641440594146747331389865593667865216260787272255105684511133156391959714308566889819927825183206917798654614915479612961187840857156076768204653691398209679263204035717059477563928369443791075809786801172659276291517536506674626302637099247269558869486786592270542805854129343079667737243350574854721078839865062231764382964352140800078884672818891309449761892183397126494854899761195774832820031742680400856418359706320386794439266975536847879841863932989284102624377910523818017618859768548629146064723127235737981263808124985033867534335579313443350995754591360150665453226535959263191329882137256210027975202077242474102291255146800169752811496240188704947921532047939861488655907819649281562664589949745674770048634501330411955176289553203484969829334443488712087777831678463372611457222843599380059275639519878241477899867731156394649457037859898162661400885280819916577531553245989935714101410969780230334152704042135646224083364724477977293174432047507825477202309115099874942785649865250291155334382961231895215815423235527094989223375031263454903704575104979146410566509301669514964608539974887281467927256827879511666059249560677531653998176333975935938610196916813302975030151344201419593874714162574067998959757098079742314706202066180044167540949581929464504739230711955253978421895472183253993131447029550529022043778300112777541752729699540940737604751979253314957878790115645131394047273057341631753634153096709543476305888725064338774377272507246411546017407096824188496843602814550589932520008707338259930302891320844947634432667752054182039754545663940102822633901583211547821215722776742130315312922408594191685612288458610558404298110608985349963707460680725209277590149970549481197211339571037357602070848565973966558414057528375914915519699808933390443665864539042310233614965855920847976442783477158498857804152611997955360137138003120546451673881832300903454426331557288113716156954338454629117383668011552692861240441862649652845254059665190741111161775982589576253371922866798511003774784867261696043441256413874132624980330127286974293436941097105766642919309862124053962290205065934574118061544256508821629140417476009203305661297227200946225616571464848256935192479399733262265646155355268098013592954728968303579145076373055873713988739926095964247394778305007882471694032231566053302727927669706885860359683756727090962246632030804406679082171024577314660195957235689287031477096300095105596185790857374089525994572271089777826117300722663843763980685773125964860494964980639039205205589308232523121954584622736875392536013232382007674675944839049170654061435796104006808538342005111243422033395812436214581518946563029318437961460828161890307420842981359732077752662976838182742220457724127998921144650798783968180548666858553987983874462244053899664855980285277498417754877828674799869073738371172849904559082417574648832518505585858432654800903076183753305568676131385040385514701084088511847494550877373483517176399888843242600135831158700403843612741020121673828855103640710584024122622657710144971903146025254631726380335817986936589910291960953578122859940780430943792266383931077262763033831525154593971695389118067341456105501443441331050385264621154577523610132590381589011659663542534169405473810178372353406713510048183839036782210146072837258848945183971095467708863425170108730003145382658347185945639455109135539976373029703621338266531157072191853809478307917554810455404104092768400539784404158736201703222498445119769578090188993325412811979163095366251666497850667044434310839572185475961852086740416494392906280040019021241128031907604733988844473555023963097074702298101360961702901711027797457147050945839522280993431535066251002948690703710235645428690985255042595625981330666343353407905499349133831113443455772359359326468375467618597353324856940935443481592296551613107422573276833994994248875710123909152759536713899936294564211869111680730676691341021795465871624881703164733622430210893910468612497408093941373793554607338641381391488546264756356776088020764555657541768506613895897875286328069431665060933500939507755664746030067432219597361421781871406644453370550532591913698126016605046085694728018425861355329219334134926661695130313615042062100947097034634560921129318442249790051910564594731285009106657889926804323899646315525970163818305235513212881330694889793502545006791387721890021604915726251203699232726319498276274284225738483676553938651434366007100852842553607285839680242608321104607868387652039514764566276311486173036516261220336115055958256818550387411843035719327805221260717713389061906101827701093236525818258878181979956975277661662034280997609053686078407652804864058218936855490788408568742747067595165640715084262118341577652480677609953182213899031145005733710316793113946360834994614758271413004177184252093092124912899647552430714143019834278194359002743623618693863068534042628962754032168922811036955182384066070146043110475841773775565552321473626601704866746915371523216497282743803333870014575462065884153306351896297226826724640832050073339766846132312221977154898119688979648583287672132617932850310894758726843995472106646169264716641271050321643250172245172689430907086482578648372253399068665167126212988549883133360733834865006946826718034666584504988799465181280545035154462912930118640082710860104343325066096264157840275364827193208701827160148832000069296128552604491219172371323675171604450571932886522063852001236432168219948250210566676907878735753862014078481109922238721330033652551624278956262566205274427819706229546323398183100973870224674621121081640470866992321549056324799309555011968189587706719129506465394837278669894380680112096443250338667166754915347573089046322533317730056636384138749812120130560799634839750466859761599354558273791706172937611020744919789381128512453643465335761090473876233921865991780552159887723257749182069920895202298787212840037305069654141810479904183453264674679888098641896017256451412952766804773780595218300441078223324189107707400386744782125233935677599377971230619790768036674411329716481951578289474016940508216291442205693040125680686531479872348759010438741028317614088698944900863880581615447372276848174464386479055754648605396489256110959102043028355555629494861125096281866928608373173399371316532613657062842018983744310715067711586607764105851134331203708713226125636418146950993304848903557110197230228180521129546468413841025783776999939650267133833138638071743466599654612652074610206733540617597454901667343328121037119756475240311375366421979770197849374910075206377374941141397906617995609476061667277334315915389822788668093984584851675692036322062591770720996058776190860340906544843255463120280327205868555135957751399449394241776795599085478071209708297361044744544463257437844059671607396101422601835256851240985126589240703801375028528130214289029782645922646129911608908835266384110902247870861181523011504486321489922705292829626394076699677943966686433184026429085000585310861651901861674566055366689786661421110338532505226498834829590202143080340803063551636781706028333702293317686426647206203033536816064656180790453087125190034133411727562651072096932350793564908884175267934042281518093333185401450618665530314276432188666619446550846455769626778890412425361424718867868151665704465790703495874397358857844997015155758242435113168391189737419032701243838803530985786502655841330315290390186123592122320724097849076245734846935222108206103743686447952051714446332835420343047156760316117423840940090330780092120933372793437400739835772214983728520680945927488466201167042014482954180084970007875806003483696597559150996365446682372150544429175659160399996490849461696397151987765125018031176039802974063409584672728676513617866696642212950140655096688674022445134333948727334939171411475290804070339785972709870471354001418301377216608722365129801352954731962856109060756746431586313315185200834411316323528627671246547629510515240372375810564727755834940041357130047556965613607362646926157743617182210284680023790599951110420489211988916687387375615820968846504667644787195479205997833558568716076913343090484999441350724031181231718101622225392463733594136706569024690560606404070069301715967903934206034746348478723413563751393515212734924210917824093091902392615379457878997756275438533878021332321311532461763373324177339212530519917518546343269079198089814029742541621060110261776234871268621379348734745333607024379469586737183242877360103195197338591222993556833014984275484618888327659258271453957805742747655994142494383856874122799057739012328310353997626894587823002184635729818588920892530680677165594755090396273789893132820572481625355887775774969164057607592393649175594788244982326148472177804608316428341953543833330078437094753075356214137773494236397920968038514523985115922681127963658645791930607632428785719786332218497754435101533365094707885820928281085248241154383722874074783933117909229173352634346978949464232354507178521269557292145235410680487373365643140503652412365998617838972246271766350972974108631252853160563781763485425338016028253406940218670871611908266999606464829731121612346813035643762054927640143309014820944796268735156206031775915167594735438213903680737460411431515667962213309933528461224809289758562573492727192854576159970589135468554976952221695625201523792341173934679186323299549399076302556063252045590688106110025069632964774250942150823349449625224679666889660059358532366297540048467841114290111043158714056927958400385866402164201826161644870622086657969140178766064766686922228413888490921922896255323796430912077240013479252727468035569976899947022466005594042289400185048997784010654135668853145837453458317252160578857633133895933722627334566478421851490624525616429121620117431708854907916311898990178132755809348249187815844610779885049386217580001016052511680904592529795884740319925435877197920283937625750951533273059892463702632109740126797515306448447017067054073813910004886649117750535938448350628376309898725907947148086298900389466913357838942899639153175269878859607632017752289266059836676187647391455726529479024720084887533962796522295569612252458389461675896513663911899385778315470474856265763413314103754336273369987142661384420239781481400588054727195879088417497343014816670687618639980506802927427143710080187034828412913423737180227744273470665551588603253348709657125431790904298888201920074888788464474963438786818179944282669843796079593464522308714089074889080251795294859558901739159985394998031887266462723523804898797087823563652878405513280708390487946087752829606494592778498018869487629803335894495024715476343749534898569443629523698316775169456971623848775392678508750774801098980464619248730412788482853966332316194953845002888302084477123336591247916720144804219601604697882611819869513831285129496636601165255513926966985571093132180452381460346265429198232622108068480917775437621817065482344308344976900119421848863547767849489973458130112785007046981627704855986744626921060176471652410144585827656719629162281584399957333135151656216884367318623033704125430175103963581098139399757506000529309237818288654299311224941755252785026419499389402295452811536862602334475172434236334315755703232354532018846595670802526194784151327171678044897016943433093414805102150949403597307239997124482823868515041664730583127445001451282644172648794811474864202321722017868676558963177097584258127146122854659853131770311265244815130200964127449995159638998862851385251668382645156381280585804557960689303459054501020854206004402660504819538087773179522623462076158912211155015985065818761312160912821755091861046806938908417939307022222231657982118119769704928154996539284676628089419533539704032173404180328643000761911634279406182184021759755521390586906745003396859705412754271968916727596736994746257251168633742887228917512955628843093420357400325794923363076014414411665648345633682863313715005294594164715949208794951595349700745434102044859485451988867400493949773447486584315030302187068667629968442170502487733516821758062436936815802207080281074743074207342578191966458496639751616325578396491064669969878493007973259260000098230779242118704476670331331592821551183051464817804080297090225670500248624378222273357783411499327298653442285498219595990268535770375839546103423444315130879468708514276265010604663537682699393097749334880972390348988739848429817117772329373519912349641708171932292561614650420718749115294694595944336656237425110511457217826490344290710777339628722458554543935927385284371621793220382121905793086107013541070848116758578883505511808974728076783163209713483667672722693911613500373210224217139813579985665507263101311624926844393562970689750810774659819049432053383590206430256397280189375555776505441108732587723429424874714336752650079278992941611128503206385691805380204185837738187508589450334755078043757846459362974873611375248059598906074569962756226645398501205890541688254999445589079350266903123312417127019463170696453534777602262290300458546030536657260872690002826857851810826863498008560277164134052655234651624860889000880500043917831819817222539867190404304904164064992226033369378191353213874696117863709514113843606316536956938017272946086191133523845483036328744869934817288273651608634584529513002723412391214503419699494294894149608172220803551830100745816850830027956427745979026604553761542733051935467094882964331206829520109515141349928580017399378612268268901836249392214225428410769152770961589474059939242153593413109233928870721414040740416368254386675720351515704097686281962286812364603158047122261298001343941627283736707350507284600319692946828326271637697094699637198929402348544496390048936097108009507430305590923038067317705785594937995932460253159290321258270423971688299091542729150882229077845566616098113935960805301472010553802241947311478426858229342757752518687157795280476501786060258349372589106837563747706582578287938191442994568438915913693297043698031411005134274860257337659663817548062780175235559652483007660117925092621204101225599857773008326152345237626466460193391967016864490849263411649827024697773652545057047811848534200899199580371811976148546446554295224137981530011852074140584244531584345118813423495684653597734547293311682069157328049383453189241884773165081842421221059921817915697124312283334907785755387263383681121978414786810539028716025516791254501510484180436968122168295454426365926372044519952995360396978406910368897362906807824621165194071859448392280055286655412369868448544496988479834479975890262337142320081612628727226502878824258941531536016189504754922037172672837310040570049036856694104695229574795116692678567188724867933345241849000986424635366530774127392604174185244172955412348854638508808960677794250808935650667296354040066882094507755122017534808148807565598806018319954422902017728050323623149113176977227582106830887542637873350966237487741623385555393494601412576396211871839277474536232320637644893391960859370802814507796422045347357989260023253044562028583181967777997917429559680698009688569146551360611500415116455743337619882246325642601733213923974547546834431326971548000418253194402559310649602404097061740993241668380256902918282666350826860043849719509704727399328110701430945271793426428398948341958460644858378518679141550008609978947867727408553993911536191632734521075601918231908540007309634453230883869431885845779002048271877855250808327164711202535556557307529130519648879889128690874995829678851001394304963662280311518121270804102035809693593913109839053102651706441371502330105538503536918332731102152235142965506453783447163557613992923711048306963683216571883988253354696832964919887811298918505285326265113372848880181788116259472445401130693108109113887222065160225899421473457800205254358884414513319272085438139704224681058220517653600380183789463119488890905326343114365338267905663723236425027946541073584706584899115324642738846295553768992418399173759719900980180923943963680709820681634862268269314312597905881471401200202922352932894148765505162745168760501985239299408698725549011666726578156095222397461192881154223063767954123083231112170815003461879736989764635291154122243862398109219848652582778698712216189991047120925714970525509458179641529956061056175197576539385994402774708128646412643484577849956275781118187868069434158642906054301691081332338718862633788482532347297930857282057994253088250962870218889397299743717590039486978696252246659882183032888358062272271783708903849936592550391062507807007500197954027899730604739744346317307307414288212955798504420611900928435620173348233003501466486366625366876463389053138571020475110130973396098211894796891096918269195312087680404975911775609090144655281725092526776661475640071055414497360561111175066563965216149854543796301601661806601519769857222265303697615455719464064919906218130334094171233239675592661666861855446918773631295924962016500410418089231700290738112383568207643313335260658794703346117803772679788408744173886145845433065390451164456589584684092067226769418835769405383228485228948967013303316435031849398341944891626359607910025913663897788279010283721931428172543291723494656067469918253201000758828579603909243273512581608301586268344271238206819531100087957161583860102832755746679928869859344159126734615349751855888838561006020813026619144051843747060130010272414390304098146977832294962088569204895554234340486975133262303753707093656387313844344005334936669186376598575188774143232424553568925648442265168662590967474475115928960526758787629522020175962732949393052379904926887479877462678423008596493869765395363561521435782328066556382957990066041735806844439098868346261759521238497583167513735016894058509033550091492813315322593261047436343897357772547611404205031538250725971346846127620029713073723613948784385021712752633163019265102389804254520516922585884154897675058902181487262938515109580753219606799499420320235347967854970830716022370380828068643107694569162524904935770516212560939407672861246128386754515374939858520569927658479897289866986421129996330903349426091631957683779741920311012373526849194141256491702559036582614771285322122884651168938100750300576055863649131695936555098527040233933697169578165046605540981300931692035737092603247793922454946775157260859805174812689977458200853139341087678708263481584632631762580690787770939753427796289029464568304489339176083938749913812374863232450328162481323979667239077144792666576728745549104270073404513541875022057393149966388127603262411043776413947779067249780447554450274656184952233910555153389247938234253240335845947206251320338816828414988711141747366214747730803753394093904777227421529828878174877727761611317124672228000608835703117448171230092016572007856803532065357455553226426917036364342987893233825570041662434000854855391617384194876308439893160830855899305386370416988835062674460454126013786101498747452536779960622227100102293508501513021234665286638018319032400275447344727334641413289810865865303144455324706489009490233579830914780883974012683948132351611045223108113490518613689507936392278766785605400078354913160559581926133756850108453115524527311132505252212914439224279899812718953986611557404353232415145124663418218797756547473722848191589416518987279100886524553820773809668515420778624359300541730895011166764475211898891047174447797756059012218155537813169453724162565028196127824619425170205462911707626033354138827494918110501962827713215339039047116224516981739597259566417443344595843814004811072233724209860051018318970922837233170051353143929276064582704807590044631109991651411301228827131614781781103444177170142294974852712358822187788130693368202749244121250889564996467713769212969316240053614279303548353714733538593166400147910872088677770429596565429994100629593980153361792558057675232621771193247316752317032891455875217883882857401390803554731305251919788916181745312729721344282309558513963894623811386850251363936756534728362658975354294638020280829181471378028505239307973265704815875695834078249913312409319535656847763988862732810813152323387447168045422594596117527829527776652389447371630906073518981883125151393658286260082414841612556119492892879543486938193727306383128097441457434448896880537424596399046254939696676585050447940843902590912541105518639719921724438610720441145826143002465297924603910378900836497897183217568499538016736007360433154595985584540433528183307912217425031481335650395911102969269168942725859601983462416337552180915652487727211314500618955878101318915054305805908168043640425808621016790130481602007034301867461925610226241411649846076273786960815874598021804296579439336146965966199732862761274730578062415084872883996660895240357180760694831687873699602698786429098655959865497401651846408739997857071478862305533591005922020023202251765138197676017417534555423196544372371613951946486216698460386016149912486408656904974823529956567631166875986091275020662678593070371680477343450041512600373125376669511052122012545071978427847590834198634515768381377562768810902774624946198920965234702029679896635498467786230404884237620559305929922414994586609001543804640685679458220322295277975395148484307028705934203616591717547400723185457332935124631967235227242471299671031497996719467190842028375982406257798344268740880069834873644066312473574003351950411998667206101971381185092828265838322096745105015763125622197219955647457494836913006788306053533384004269681010466378674051673007685452140593421551016690803769795989471521483509965675533593857808616397859523984542936815634845603819151187776162017579660870207057211089561384589302205996870938236549121996356865297717355340076668636528915240066484820686935728674695015694189710435592134887765366287735980991788994628029294963565840833830888757787825434167036403026213203457404810049235016329840715035498630806609986721597931068923777640566839143100354773988619175770207758645323246257800115958637890185653630944892213071525700192427771898098857167386375019385793288346708072363717313378194960034998385719018043556561756578847220450767919128645439379873856033637024732424246931541969374497101778429867153309117048079913656329954467535274444834635808131421402062556337180696563472567057038736992449891164934366173060021069898266985555045795575136083912838707073527036232698046327951947903081157507859915818143574323055464909399666594760219867123930945302170249333170584583047803136182253211262447443119381043615386993536613634770465100154801522383392690180902974225790797245381671493881359686692721658716175842395620983473420079770566832156660626649154933158227573122757626189263701488287603849163486126617721668382710301102076717313195953448013874242212941608079778670574706126900620475976204092261684997937715603089082376206994667647468488298270924181400252941783460298086468709996104832516416872333800584221084243307394086087285022698818954184968381557973179324291210450818687123978390163993192457017768670532982228196619059805746607312391264692931328292299548852715871070268869814995166962371183667085939547114011078564808524573807620928092534156620157434672391596975669551529570185260043824625550122353039822334871715193808469662977526751345815795740784790869664075200389335722924752812690136601121862814734474453275871838237773727716337922696443188700138253774131284185284570321699368313999922959857993128521270810480964152174272556095750944498224939606285131015093732417236516640730523274077802891536940348901970151541721721695870718715346495986986430055317610758021757169501012460639229895078751477551975137214534924247145952812484263360252305328443260631253809074898355039001227620865023706519818936118302799715983370286608994777449279004647232262340396138220405769531802890128904353685554340387528905931481434882307114154601545579774806123207408148081467879120454343543159236062258124618892426996486730200124029727579077158595649640184421683857189141975845020541459529815667132158925275741474498982587826956599806782394754231570572175374961728812492107439573097920414333292251559475857974986766583834143116749216090080250852276742241813718732618086606619304163985452926482709029412302250225061913824896601567036943459199400291187636363479522217842284614814798089437696067544089976920132388278570333819193575166672717804905731215295183949046752444720869895520974398979258359821308880763066544095633571293105224376338759791570081787152082401866659461281899746231086220261048881676850561027599300874808647455142755372591270062186463938188817059181508152361480854348439143163204724861848987032353885246391622493027575914564168656827212131460080611700943759765530929258033235491574707980719543572296045250358790775566145180716158858192599758296304427575848669783313171430433875953308791568968306882811447640847096002978196100416610298881134350552298650534048908432462336595048708791900929043861318302591756691765669439652441197612177223369531825825881053162487943983997329877101236739567694455866924795213995443529304383754545204771062056340220621912108857415468638999012482391850329279647500310442628281540110460314271293493297721268357204637048454290890513559574231156897656264384504128050827328501809802955777259361473944687828210557543302457473853249637320324355950578205947114809641341642289381112153052200415967240888002405758580633450794794720677812464818009791355850372273828700274767666374920986242218537447686726869192851114665208473650487141992073751356802928894081855838579576861618713713519177414128437783426345533280128560755793412874785304353193635752202550633006963850999930696162604923870989615555230937410147220921268771671751072487705650356997237691410637409207287381558298070404984310013470304322191565036649779499643099831463967762422387803935784341162177136702158878251783847388692594874753927042804996434281702244531065048112351669247693145422737847181516873828627595539894831950992608464633553966521234096524178950683735710068411930840728721207412947643233989687022543122459330359250088745576780586657050643323089439770611745950488281635013722581683948734698242022399093126187588591496889659551990651132900073011965942107162812695583684277624607555826788679367061614263872439230472355844122273680986328769949012266261116490172930902448880979540978432690558702122480737082572675976771183651694539903192916319051747509244283562322536613846158780879323201503482092922456020288411325786335688728343210770409485006221661903171584615101811639277766547354125792831295068028613407526795699071931924679257367165225033664750395537895176585510138113123089889734287128206424552743618869204080436621631343851336797442459168590126994425648860025450643347555569635173978832449535423120203916416393629714603356487734284978593299450168451600352576769317643000666448549476916588130906061563127875294974184259041856447460280629735184353276990927661273538620226811733841719790755108742158134108610886411256211335267050726250915593634791533655211907380625558058875627549626487548653886135684414800516286429893065915933025931031925945788258900154611006593313302483944267449996959270685742844111359395910757422316565380883938941769436683498658394438890041104290667748398505901170485660195693530063296635983815973960476208823054886494593849799457724967268380530451096675753740589678137552008986418003181158677560160084665203572117440454546859983144103717265681336846306525710384284168973102255441111834140831979143890265997707818165372747259776519618158103848988719923898260463556238507962032883028940387383191050316771310738059371269205983541731683884744719308755151466875181760960591268380061459208207963753152331851368692155642251131492834148783557500135427345571006759614531638520348968197841252564226794196660969027878224252773024858883015933920415370149103264823138697719891874365611782172542639689998376666348920515382678766916153561828117589377135754894684331773140612655250045655972557313177149381899898929614379328250873995968625041626934253494662100376708383995811105903806571157046205495059431610241312373677156651366203015133939353151863706163193925328832689773052326837021184281170505510543804480501462240613116631915885574658004019182117883643763996534772482497706351791960254490746489927421578876452522883592461188488235883615431976942526967847139414684701426256224603125596464024640195495224505608335391521104342318893264903965305348450291368803861839937265938104616254848006691435026813798262892143929455333517495466280423449938028777861353826604069720437994587894985104987756661140514540927791160258799060664951221163525143167054164951385174455324317676758026898290735308568035001446901226202532119288786532876725058405087278313300629389623166876664323269869457453129817361499567945398040303160269164378589110663118565262149702107676009289775618344513314183430053271110659429052694017813786760637643471746775252290365093981233937430133995775381905817331672806690932199431830068101726173498401098651067293431102422216447325582892876837823380868264175742446531883695808211147531953278549846676213340895843334515985513138594607243736579266213416107343615444298264211826233135617867498714192081152257765718275365467066306610030003062959997771177920713737078878127208317892456313368497811805221915321648166057330614940140607783259352402007672857138158872388640323130455956888782043577068015195572142916246190496621230426141181569423977507473921849341340838202516276871067312119919044498043557075315682420582938088258221484767101498675117168645104211902431614150825483493428857903049234593766328962195083192616681598851481962312544023807642634071178066775759190796200350546217079973234228653911597913463898461752977128402805676292008090762167274298213865444323275050660297451063224504067669342805693259710960676140467503821816528014753506855453612886301995113582583534973267594836239497986460827471435293318597368226388955118432521737184894901787938577948252068072178413856880715643076933205320445664868353704802751758004572687665642071330043940490136162909537205649798915207777350686047769909835329660724894749360886018393515139917635989711967031025189669739572353652251236313281143443542309315209632363568960071007207266368145527729035788227972399065607585687698995706321270598928182259035261755144350510206926968638263162377885741587648798936133124592473866793406423687604188561013763193953173105957207721049476797159919647582203153385125406921289251425671797155804865207185733125746696699225372729850882985521861103314637543100289781683770592503653382733004322307270199192750508066304411545912502679214965481312980798342047497760082786223387341837059218942955081180281065243331297616955793160606150570469253629105112478189686961246202389290360948726352292947820410444157063727302670432662731553482593949933704198097447032537319970736190766976478183056009273288030603811293400033867586395464608650104010780348825109932454846505373331158345170142535711743341740696535664307594075516160367387079847566653780326490000762802642399999228229768718447031372826933759180396820634807830442235440926778773767565526329813350511940257567855668232657865471985676761269063088693208055796572720801600117809530129805849833999640755626227320839541538255939912293743483425566284765010018260087886325963999569270228657889188448105849437526645514312939275731392944749611138753955001011926124132384745091169581529345263774155268592713445770210968191940233931119095274117071704387284216714896111944638825030212675827254065217485630024410553481138808626629511496679683123678841851582225880830598888624610384907729762653332611103747510083948642908205563973894013055153533884813722477093137915116652132675365375268584903638853206700651135054284253560915168224606989939560427975075879133495016760682481618255848289699104962547394970848168320687432780232764238006884639470712043491506325461411838461393320268899295961936911362350664868191505510397517602430276157679522723708381677924553819814900835716258465113057214421250094334775766087617952713275273967365538628923946574390690379709496521186934054202553059687224923147761575028073073747063161128637890258947112817854685487983998011970795757402626726601052189099381519041808485684967559418304589144329074177633483748276390649794398184087636531748461628200645825580995165975796344443064456738635705578451684705121989435289239035644148852832194674852300908896435645019428521141307701769322755868405895087116740320271556372949489501710730695805258770699050985172438560193127046006681668613271821841742967117298719611167494818451363952172977892273679685091927077008149350564804683764237818159439009386249631575014597928327566084387484310492756651357358417769245124564542834234428926528812975746601397774000679076839410239216488487251470566899970020449408659848353871877401572642759107368130006550676294415185087976985416563517251614592230064126861914349579570925084952322500098975078247145098035219070875058004750718224638734982517569766807245559274290470869550887883544842976986869457039737856579043517502090837084106445146082608785659269005829407076297175007629748685206167823531893054227006866221617907954182040340261860557468803117895905817613613974787552040997469835555910233627059287724694571584917931203664229324207643945630806848572873620351778773753296173771141948927137223352478866405665433741508385676192432543782360278898780915763517618815636350790929396829209529657676962164857084151980598156113716392568018678347521184252584266514040894089856181730987202438358533076111840020128930115201747297518825880737237229003860566972308752578590338683427305898669932242086856806068724145277007897778574051111846467591289759552963707080720468521786753981721413906119131767827816741991792345217614605883406555318372652395954900453502585743517271701857813164087139529223787317313973350694639717525110910091176276832870318600215396161169944260464215325412137050229690773881687954473113916640775445801501683839520318349389949006467909310691392743171048704656835198408926071451132445080028139710248079124982046810665120926204474907033542941262869891819865648154021634017053775503858750111840641951463109037177677546639977666482800402569069278157135094094379153229387800963408278562776014570486467523665831665969992626235531679495258544824532766551500251072242808325075602940259623084784511538668067942846150550640593448112656443382902389992658397041357160007280695290371481995919838439577049329424158483382916280211697687099002799476113546997179649741313411682187378688590790426472068019967736638433627637239771960112851980453549772328850741492719253937025800525381720218560249857105139972399446191170100204437062254317796301280021739114072879757584562424663454704273562544610115292180185742543770030392750093463423728104822691151197778505320850413641775921184277603877091676591335918709482985982051467311388790063239919395084001175970143953489830747900318052065400890338780778735075583272187563212196350887420298122453269149706209822229904890603732318918175792937916943468539122983813140586961077588780511336984971054685148594868855995518457184421633994201733859282816354281921579005651509443537438124202150584855569297145651901721615374009035349855184889972493846771066145964926833193872717189907808096957267301915055885628876029186268275548324507309635180259796289550277758423418412796570467470690130232786002311140028428489526366189181967857184343292614359165948053304328384978315544431939124449391766748027548134150642911777524210141584283357487892191654622690450296862013832923491796258581395859098050400077365054917714775912208186760393123045525836229055869763691357973610302302837675874727985908526668113343835982471831876255404082008152907983182500088278859501759808209727515735627876628974279113488603649429713578488770217150874123147871691525992751147919652752040436464039196977498987632512668662935216128911576927741850614579207673079780613521352106236571432387747958083790090985649472446458279527515650744693522470446713377999847489690690168639562969060740718238563859655504172067401621491144613120791877471678935569490328520608377769622164600315029911358953893434355447074779612029224110357900591630512677078075186489467001827174689501774129026548453678166794341449564815814727067967684272567862881805982155744488504076894210360151068051716501397119173376006435347471384303149763179420529784315469481701771274954581962607531157108651107768286085206947310041006864960187966898935356727377191345294102832616499973951354011584462480436805275922591894359432477839706023940542932228340325258436922922946405424237175906022956059436590573178407024244835568625002884421411633580812239213032897943521173510532943838142051722257600723664700746801173661177054555699728645583621084241502320595639789390872779019373425958886821465473903746171009318121085128996263333450092028082363136766201075215562901341349882793170554755716044892189989607758006712160615791205738851684090218058173241264250916428766991615196175254719637112615163081482657060549734294110248804678263452798052526129689718775829890106442600991070307585809592326998467508498254920967581861777799532871258745167219297369849496639720012005194848783326503846808540723015692963963059214978370494862343662646386239651315144459639501303339576129161550058141720434752004973714551484084327673903763056044088485368486024242360161764381000772956429738413413727395298575137003479472237054802501110713942482311323332785208124184798501199308930450162519414112497376543151914282962446913678734982390953260357387782514227994662476358856359570529400715084221677530765033829113990285650855879131776766337072367625361462222483604204669382406420522732763777965575221309552841961204306666662093555436474270796115365385648663977647268687238691641594489100486355031118876910662667607535261907672060440766010333443554523478707773729021528382670473954618088831814296434223785692288257480887671528995577698616226658591609248557806752936559160061602293747036867534002320951699776093055114299867324384752185872086938886594066249009084332267065091504964387883282848796447809709616358826133510912555230636929037363345789417142618885534342898398727713375797092118195409889788981125813609210958634766415951272559395872813911935035715323784926177615258632020829821407291264763158555398286465794410972602829922992956045364283648014470129569201380473334661838059787425964063696686373508074878558434034744890870749346166088172170284231413407529237395495990156391506662758244501088970193738871794641749974835037779513530724699822588102825438411238955390688217518297386920382017866114547122914537702709226327873405389087015370422118881662620617596595695988468642488294310837932729295166595300639826642698837331509693522842735858625010290651344562290170762323694411927498029662947689699073310379148158056856162868186596418209053921526797432163310222372546996353735446641574432633355331423745295261535108676150357736387444234972298023996053822116679599389720968505510648426594828860983700417066047868177454882175438143395373783055593487296336698696624586524828287773294559720263359224370541876075382356043356861624875764268101248911759277323801022006642520473432349854399334687980599553242617849710602866813196219431341332370547291687421050989059344232731620928636535485681877947894448488963991546952881138346868673833272077648208599239745617135315199370257460046751234269524235937555796151769754380283809074761157366463012671875468876124246811500535258610678121845071293134752295356613197434243428941114616772451575817401614499323111798404075593391231233142253884771848003499729252395822811881861876033585569770805843628009384397480007360431217853318056826069504972951029863725976541628126260841694618663400949223353707850714222319544763185729219199075731528667009784594989315391981464714601561752415423945369676089078837243979885655131544257516011859694744471233021647281424340503500953501315601285607791347343043503337109474646307544882723786846248940959642916762136774817350572223801621581925439553463751733805933923431022727029273792325386997793169282176879681161500609861017687396018514312774410161480246122276732095073963317564649170051245353051513886582534695353786494132159909161839954108139191727230145102037960968868121998868271970849634609709113469131645215848634251579543354104562452538625840665816335881558929006973528451783056124993346669344181517075454143048747087611955800474592148909807624350983749865088425075567953209088427869404662034658264808469605276551608961730926951219414724886840539616166879499968423566586276306854928430637174588546422975107462374725475175766382980746259028118591902095748528489021064054228571361381793571719777499776612249519939275797635126987178251341248762066338154073819881664526348823914291343539729185093428886999553869647079301031632628588016477236407327456745381458483514672092486751584233676400098011169674189478726432499624273106675708945298462216141787880479475389382632751144396315873836513283418749541852504461961059032010698541791569424950255301778754535028830293841060094049177774620348168073987246528139076314936293423376503162094229810559441292311653619312101769947787545726865221432686886834419749837075811307354098927596710471812639282850182212102930367472422775854129781458671070003411619473453682509634607666580263558732832652217746108251096612216151304867408896053268728710868685848346022967105548161576936144085253710853177274765984347105357464106130978334775198047490568576848099097213086867011634421632463090877487018620247192861293115823012797301370215694262854154051638714217206142239274383358216091781426465829282118734741989013954701471117542058071602417088324410226400568441312497770974274796077243303383233152253555598045912848769335852822287691247659596951785817567742464104942956550712673095823182110681651983847428749373629551454273453969058782624973331393689120928806575400652756312116908979244945431473875100903512805493079107854146057314019517130815262409846268040425701443905634510243887835915882939797956362452413296382806551924623188941686136521975724175787174632686169256420113593419789262927801196665246541915395653124554378100494329656570982151092598049150918060179331617809220076214626866884577964594169130202881123528083860973293293578426114464013764491953401833253142270841466559894268362403504737052353758377627392446112616982309132839559646435364018013357334434125467510842512441365146042181171330575503452098741650955046535877059309182632812312912794449536049104199057951561516865917406391102410872406019720757974104800008008847966394270829314173460674356456920268685147753747297315519665283667958224136707656627783841606691146170860501900579248403756615603714927580944406275054476244197135320720049705384576023010423410751346307684892735219840957729827977782418538295970975059174015982852666055686062294797342253681950500417151404917921755255658173660149181776880454028488871312302804557552421697244383549113857602430730477810058755273424495642806742897260412485234972614047029326531139507523608887009665100342169404490990475742228897995405931665849478806467198060527897635310930654552085067652000793979757959575512984326331231516170405074404756468870559228587458339090473788563923793207112701423057679724934458317683424014579967483361780845495006575770037813710365387057085902096822783965752755058150882846148103595087984958085591177142043397943566944138251961317179973209031895439266887888447477326256740320543914888380811838303567273330345710413238585089202000294679631043681984884570455582741288527855789793862952714630555594624808083610022173015663966113998277569926695556867136040753156574894185715004807615771726587242629026680959228036882300625788883134574918244924748208643498460938522316753205663115116597268685134631213115432883450938055343001920699713841458022831179920073194174053359170837811676032155051860243665954546915666383762336248577662267124520050527242381084729059906885904833224622851860537239504482949530854299607909735142402644312442465753150774697068599244526751594982238456027571029802964979458565842875157039119017416620493144147740190705863151999389609569984485525471242574171937321143062371084501905824047768798794896731078946484610971438221036778907389221456119768351201302573898149045106186880269605975794357947261762148295560983047735265252812218520199791622870704619645598267537631896138657625175427790689372732949623458650135131695436229710644098252382694311107338529098713735159477332027251811922720896173719152637890627872693694942720643310761372641564826795260122681928100026265423662293337509138489057637757476020940336117284830555297514658657514013298797025782989773720497189011013334831953330041558749120958524695351021130536678029740882500419791569093444071954291576793941998544183927582409766116262366826509274283489026657940795260711403899140442219080617596028977574510717553440295923872943368882093626878976915412728735331942749016481519249758194326121694213123844949300476946251824034695537966522271787809481202905843356443172754197206127513497421678201654584308008877540477346526935578925393704685818222810341399176894087399347210185577286820762001166507480689976189960443702270678415674692103309926448497623242616905804501807727599531869424791236266027713697805158581753656962605851526511343048323180191446758130560297182671626821613726389955006606220976061114227317327490529110401951257574969533884041042975299686450904601567025825887035624749159579389057097961740389784037972003187794496107759449142531134495761855996483273838963568317145877055287040638514371759514508855625459788251743746299715759453442726235367757429749419888987864330060622956202451481912279587831917446946420579107540982064205770508876920369984971439994418857009207418286663591522439342437115168412038773279611222997528869205728342386102943481430938123207495711246460483771324173518319272207767060584037109558068672488253149974344634540219267546101187237043337978474014691647744203057575083290829195056955789636010246631868232519516508006364675376936392233493720703255876056691944552719271574578358258474573564319240836410819326996537083286217861106043795312274439571247910116824835158330804761186070125363129077907641331496697962489799246767909763085301198061911607380056435388449469690643749269399743447597708385144079978323002894317228207694175946386957945039114793194270863880683643858371714408667881946831109750371036363144545932387244391154581936015908036567974203466168760155438285128659493933947109228783947094558022798098729264962412800549854872630913149699222320259465911243767249836823024356637756649116500655589382009036260110267435277890654986876261649862496638614210119780406852711739217808812780680675171373616010238191330024382076643831607664307263663552828547434681292587554595240101283338578815750410269227105402109966712948587704096601958306330376118282961934457008021113746296367663298325606151764440858714824158585306495515868295812912537125903070490898173958674009030737572187903068113573885689226135632669833869568870190856584623563222356327046827709330811219136499292843684900893939223444188267785981741328445069488184732597812943180098389378589755447754613856576617088284076100583627404476126591886115198942282060324624111197233554353626571141278671136778107480448329268600354001597141941450052835755387804826962515534754301216838075720431004379096962976862347450535654583521034449733231966638000836488687098527719519114233271217582424709583533637219564912512539728330832370945218680346117461383276352485061895792531427125551207026457536127353968911137501312864674952812231798095075935578243390838957588912776342288019861271076335477334462428777856595873423130297958011442816080805519253169430161029130768972816640434664735942405593072581768264253165442423714211489406054773991808585701456632666605379022451223807975038959445352580414060197295288247475464833217894672736029283650636463569757816116723871729406318319022166221652816011884815345321963547335895515708399226809025225359087125450338843704603641083064955175734892142260784713589503836467344663572716287484942779331038809398351496461489838167779892135736814112968415483505587660473417193699645998748932244778425857777587853360229243594593065118900147784863562331880891965678183147395851160835106099514449067543776330305081667188484032910973095831185464550955170254419733536822747692205000827338122619017585046449531068996340204264923703222140221850314449047221140158660568996575102703115771447141894572732248883553026512024788165816636877813373425625422243674693194945512494759261661223132678461495324769782288200288706880836992656698463020369595367801937606592818338031859967300832095159952977431260178672119938648652911216806729201923035164462305488640039535452696053945057145249069908502716596134321647303998812961370309887924181573655422540662788842615534604781144794959046667623156944390285949519648968124275377906371623469186065331691478598527231970830723089791267840241119197501700179141641353530827708169392131146588680455192817939214699389994140126806246869436001883225485598129048210309288690896826336166708790195820059094006964854513226590628199424998137178107369312468515853753653193732323803141343358429247588797189621213095183828492506804396062826387765237430222827586788544745411345301754434610956775581264508103539525095773659957428795075592531766427876850486520306526949893639187398393728219820012722259259471982871566960030315822296163253865283553603491721655872362949695964028101823406881987271338849630279468215750526432883701656073660454612582090594592731094926053403487691079747639467857454157040480482259382983819229236715980890266086154007590729501290715112908281472066476067668547580158131037003581028248997232704312438005579772934017965976812232896346329295535473253685775949811822242567872665032253724856283188681529830690066299789737331902509718515095408833365139032230387499279618814389932220352267271568581653421357184488676199729672697504633003544175075761467718891960947874614330417640567217351431259088364014819005858796141034445516973731336089889925618428109091405132746253361833877216404493100169066545659652523385704187079584594224256834494385356639211739282307521121173905668094095254333022943337118057237133892042725023333882550222961563476135058040264888684799524562031720260974564812542463225474066292685225452157621693803771219753524685253562866838230855035022405501296692899420251316292000821632533970879033709469786567830233516628426256631145112439862459672900504090155971421000350936982636351982048760138866139884925717809426493553063865251017985246028962370437895321917726430042927798218142646325203118919785221669139011407195468878514983366253321589934872176461867591581157574838396849909625407522608391217271430573501181543073285421527684178050670076372801384597749129081216285780487521845519355492211180050565078822911427193003213908828398005026727577341728510676991882269991582997002961969418719545259309824351096216958306039295368401827735391737549784508652974988057088638752436321968610736037019739239223902964179925389852339918063057896741667620138521526334966682384260860913938567421678241727205460952646358602614134421350120437227207646661004696874407024643583636698012107923749419737929534024115593867460438511399627142349336359591881933832219606490424286710793656681545263740004630789303683008701226386683703108366401300587861539093148330142225088662929875617705797959952217183336655465061032001113804903651134634960721633281801234513680920478966006394613252335039779374605930808307721588519223173804057308488188949530352317498164326476794038336435555140679922713085472942707843040115854623730821041512031240556932938361946998996070595098980046623851994712265554375499448521333251589925073254441723312571308989810552701703575155936351838259083985258042176987629608969702774960613753220413602886727769137306927757731162611211182886593656525999841380839257035439865084038885450508004822147194563417798958308095585229179329458540642939400762163007715051890181407692400152713728916931641275404726623002550166532052366132574182773793416751252618359742854092095233416951542071356640185303929567259185248095229032400069614672581820037516285238622331837686009151623985799334101334222511951802944114380055514863616631637218796376815628291449664930750172237294319040257168427337522623807733457732850107508027687458944754558446510583829648625535713589381827638095146559678209038687722724910974396951469156323388589294956122020220412355847500447360941491493812384052038613288634533528708746210482843253098808587642252195049233766569747553841917884981815596155430995154058105444647452855468233165644799313051622997803475048102185930505715770337901416561356756449013759378922958935649117748506304644169066734093466578768812842612203574064830086713505432317255832296613157140423011893870202824291460812301911246119775438518306596976248629308037025763443600351883214456884154747977428415273982776706702337178152211426130851333795955440978737054930920993174180971901594076930908910387790702447929563162615579404664420567858211018903063004852839442062187150608392124813716093469939455554784852945109238583668037809966353096935648411753264238908894431521810140540922394324364255699213833279146262213651211371120775580922432689882513741284991707730217924414726237652446018071786019117915055233888893128745518674323194843668094068072244700994821863828122216635309600451028891619478860739740135509474429990563543350927369162445944134401843686907305255726271704958067669992365818153352009314167862149520338667044162255985465703903711287182883528295386319328101415010060149230177498572757980336927279299784501631512286959450349215977833083284302355368842063928300243716209885266460557732767339502201657186390576137962875078904359146191111514439853715040384212600023069017069244549841336812757917858845480474676959696968187999734467637678423286820147710498221306557451233726595873822466520721768028038761858312382518799317192717692178322747308904282272059956966215142147344635163975618004410681311999290325731000572620236934755862598938813729375128155468680442460757743724823022714597340241975564569302942379346162708086065392090127385466706731988517678253312070093156946197674684944613549693802392773585800424407285370296306180914191529660662230130582666756826072917267228515286089386845438612389985743513150590883384874620519486703962652401570707086672690915673263382976764371701481795208425822195968682088073632332943267885030563832419319098231345365183506483065691412120979442893964009655334043923721035673027904525416068453121839657160256920635584698637624809387994106587213266785683366742829054955825595015837972499446435379525982521738842048643386923872160548840148138770801554400760707983705145020794734595872618675596594944317431696055594024098992258913163616270183797553001564998936440988794401141345066950199015586810207860482761954396282865576210650369745442184565032225493122073812578163308117438807002174004161989992640900917397825904588133799928686716541083923282240011785179373117048073107232446635238486462106687870718612779061829033904646776004709159421563081211953504284034849277672130012532508712208320189457690316269708863518250111430724242279180066235917510876632602699247238322848630804477550707687057435270838536338251477077925640304103182428962416274296321312077234524704472985546378971689503409844788198951646719882457866881305899000596389679684020951271376731246516001557926281331494447217386342659208518649371103756628694965442207845228810420494993611626679259703242516495779666595453309630997652378983625027713836523082656989290049330400629233011338423245405831322080190533490477842753902109168526295109956469899292575417444926513273651436123537539419661102612517152394241820036079257544619311829200999724703710033027886001522022535163653519402648779995329554867405704414702052062811590860222131889134861361738941059983183082778673973329091112758083264487077414872742599796894686551900158205144696759474696795915515063024420855616787024772233564180932223274575168190928660539380589347421629468088805333101692704478517179771602279567270456434718702580906909384171418853967343801078424028898126448896359231462839170530430966880914980665864295632903597438965752698953456189309655517320598308118963684583134803549931541819875329149423386133840979189647500453991618153108433990582709926882193555637829046441239613707385345244752490774904804004655203390633901026944737444880453961241590719358125705423055768878829108741705980873664386384463166100444500726794337211122392671615228969866487771143706032647712415717641059281222768210203691124859770561117186108570771515733279753789161358655574787509146916447168409968684389859628845704627122991127454097325370098862341900011163081864426563758385508422529691355099750895210321304362737466702935831822348327368037098365036623664670834480989764543163410397508618590305338576066330053995655793898940214016593749229021825025241379019937914902978507501128885139442547828025364478447837627003511025153445932694210681674069272121726343901722633407595957899189472847084934790314904116453712824368635937192205203747483281991303559078830846524524492097034111448686476522568873808868915166871387896372046144099786530782328886682060679930279800845692338147662422990621593996014930584329331939676012823876068181893755136434603885404140535234672450765573919739694286617441255107925736616890664215221888113684829736575445499386633340198692947467204339807792620530067740385077058143127673405729253797143541305540124760654073162014123210164299194803579980076017849620624787649666163978740115891860071015011296676351955137797793596929680928574031893080869104398441933210752815849507733778319269879780053939724900858183775737098417405902289049449983520474159105063284683976970288565687835851160921842598935116729095612209299117133978259019420919257875171879993154696500305771981434408167565823596057962905649595400396961359014745643817354034836707783359756212017507040488274026957466211148196027853436637731928153620387069623192211821281494805065975425748376824524010094346583773809264541250001765207322258608869334460266379836826480728237764111012465675384573889152132196386877495136190855422701291197081735098109370500014470092969237779938234340628536606928580165280318093487698445617995543310343809526615787252624451309280154115309485649310045505337809635231005755671263031357604518543506649801818775017149238930974302099323191004679838645020578283242152708838513942993615546871644646865866727728716094576101029746331660405406017965576677270395942385235897314447533164265467865874884008483632897919544384409559797408724944634550755331652059788428568690431704612969497782797664847589811487308673243794216937236317389798188328600918283247065650735225491918024317481118477934755380086449719496565530356515197797672303279602352804373360097229962600688029566214135585829816071297066033588729000104680293648339268318609103562642190413442543422876068133975526166975732250947939026033260037608510365422575166286840999082671644753663176155330975130506167571689622594948697709402627727651482732399632647923332000453504235865441552719991921359555485093788563874326083850071739119744386892740216188722828980841265792559915117882261229940139685365784346367920327481196232212353247836257314821278413230754889868186199966036336456545745576192715406212800395445681630108805349082036583936987704172389796863189191065055655882365887909308691569101561678038020394591686416866452603758677031981100594517046519344735957134118179733601927567990470728617294973021989857620210607075757503247069170605811044764955048322115743800560428390882027773572220140533713862101087248880210293892727633568070812135258699535596806547670066666467477898331933435082457318216379900723348940350895639661776770836206224141574987267755180655241876415724972592982149316482755070267802968492888515810670217413001097639393988692472519081128586197236648010389904473144385566369704563705611495789303626127143437992767860891479325905682815104620698844368203521402347375075924681104534199977160045465892740706557859914132622079027419075047543046186458206837373284991536694079076934374736850210945455794332149531743337952134354416204861278110022915366458804822878931480694568774556938700579921934277200457526574061555554688021735985695916795954475568053775225920754304976751903708943948319233439439090490089817456592286620807444078850515464623728930074636285554358970341906932353868934182536255085790341517167843225167952077877564496097837285850178503021079013921201633916284092005873408896037262788240722744841104496943818071179516758485120103179276078382567939834781298720672403322814915608488726036183154102939247784440023318812518616294010215269878742444617781050831497392037974555313103764163667168323591958089454922830287028495523586815321103292390243654878845282941310318456178224631537230497093210686742519350671164305579659317863287443737664612348260518369903734486212213170855583564369669571625330083421779835895404483402724104869853603491115464700284126481334138578671232268464414185975609368646793178593912436240699920412394836180627851421650534130347736040718696091050124624253683215121567963201308737639159658745448319533407075428991035222667079706391402473578695264765672800807629168963987975902156449554777495993503293721963562724062359787729756305741203071846834993517701834857881404895074633318340439195842529323051757910106175174819090301565462082715206463286842785028314223081589173466850418047574882767627855793274935248578041518955081804275611699974619707549416835348502603362999721549789399322236675424730390083408023670969883751646040012738930093709524787560732179934558400730177999323032828939608648805840944969222120511625396641197642648543065684479583792842220101095418331545907739756795991513009260586265571278275650059816080079807767860393121768052771272417014005472539360080375556820770152134383537073060904532515437049081535023294096020475415458395684496816773572373887584370860536264747762447759347585005597736532155989327779213314942813071726013939597264289101316048814415271656031217960094271012968129296428513640520498410074941045982739293440867989938823746312914508539963171168719584050616432761919580468056813009551085411360396954643376507379385503788277107941559389395329023766672798465728833136794480523382200330037577137382286185253958571176248418822467623089778580219462271688617802427417084720821081853815882437527804763813477435499225423708433396898259912855298150322806405436745482626279683665274910846853517701664926812780380409666125548908628426612208599818608784932874063083808730445039115828634953490084795566607302647256553461184932578115596293726033794777787533883137939798323135017752899352219721379711018062018076830380383554212460854688565368935881394968911088597324164905500600263492965183535363748348266793842763821951039558463662612082348806714599704694006623305741043138438197523910641413566844824826853752275398796767525226294287518622321274871315656323449846163734045066204255756825669792234324886088404515628266587135146815219910426506423342476379355977030114341411537615644643679932375722033932202099264886185122152436990375933222380682402486227628368407149457513567968535043996745859232431532726237592378377976853858896516572331373109409103803007623822051459006849269763232943709013078036885504433766278822001772421310864754080444269575964399007021633184955756148889178702566788504103267438408752682743361160143784190705270600293972420540379814027277059897211378625887007238721955403677046757211302766266710333327106907846862257532202956367833423639763365406358142441131725514140388884394131979956853392073630789054549134014378176956899421360637389329768408611894255277522457349106615707122068105498144769172295280308591025830632204007002823484637751857236061868743280256618645646833194030024431854775452230237827663554026235461549237977432226398371867723242694278657164568594990897818866407321840221943226133469298063571004951124884254238859215849202344320292211775525978479991576589750534831303087471903815207232936323437000726356414051502468249859085863540268562005700153509231012487503539154074669029511002737254902368053103499671121548182978943626893331628849157138983107906022840101904895215582588280477536006987786676068189640609894565433125100472158191807695460560001911975956804755260803512810818901609992753759586364071693140025274918254286454174573539539988706388228705754541028799643703337662910904201465723575245142048561808647657050474764719638073407336519057739285733689571120739664170884595845603398815272630442483264126655950295711264786941507583930433554051225196346821438804184286085541908803854583652009638121135056856090048611163555829386392663662705328524885267901334429224645283766349946570376956818461394967559097870589445691602701245358977788097750426836743804007507371831486554355609156702412531117309752756125915671660017014252848559228535694458106076891541281610872910923202329747116056540910684711706714860244040401636588244478504460532226574587747255251420467183490164496361707205839648964021514626205471802062613415931960500415175208412386959595671143650100645670426661151232250154433674410383689589548967762656409598582048764386719499820034013569933855732103259674442369077097051789459244785984119312116365771992804123008872917638519403640355111749640965447182159071640082379604357612629807480169203392482662700623407652151346345763224454118773685311740740802298442415164837107503349291366856546634569027519066689926890028437386930574308794647584236532107135793458922315609223488926805250123930204712263625856145125476188480053279902609341981493272486260584146603755691315642853384525471529492467980066302548571428011377553890412229036494462886966394640096952630685667458168604439194485626350512125046764737241704516936146291758381822918540231197772025866477340951328721553761859790036056335453704559980664658010056757746024115931166624271455388433806002960945678810380558409034533488054370989012569033541951203522803232845818413000418254826140727433301584240042204957344131108268655239984688877623626627271102799235469726314379808414440750738761443422386843416648589501482797196054254356333149602608386984544937235106092056294431786679996046089437662289294831258737577431548290608558215680742122247892014492328446711390795694836264954549477458487464362882415752676030309853301908598669171782939316609664085776999032347608171618614653858207766959240623872262092942162132130794743759995145727421971913578118801017792996084523573913433259046256558093482160196103241409266228089767644289338035441055330730779377265255444508128491599259244348386800442764504307410569708589859240030365353904067717214053692354502071592013822648480194664707914082173193810652777431258979318698907234901818252556942101661427549321507017530925866997591252026199309555902537653801771264813839990752898491970938529493111643146085797092406153656120815584219474400006499342748402485084461836350557757180714084305890061743735047432647520258445819193445077718684403826397171631513984564726374187621421501527340374160119431218547842146118809133471640818950698835907418837507177484251581979347406903926365082304183787647532999733975050268431330794383413065592775480855667052511744243283181967760276176200867649877266385759825314230895460003160890816328488834781039863812417993582633606153013244093222640077126851472768234407533799281627656133912098568129270045022806064405826753709700308995768011694303485287697726136804716982299172388753786175042775440602357042898410044129421149544237037768383425579702226471289060746883264324292655569122392092484651002077608895310852211627835276644416490291710001891073881518129140263031222826883117411175446648003089964260041755829368928212422072395226327364303256472021369882220715000280829305655052160762534300083684520279060448226802075033729528380362588048418356027106940672214651800362573072163547532297378795597865397641096851702405489626847621048030360875500963093986804141152374093221012527222888848714748784918188643405735867477141352035497909428691662104920659644398239252086604822372543129669363222772362394682895739405471033993923171069023075202075594759397911383892826922622621003450068482035027070394655800438748913946430947381447436882250803071850212752010011552245756624272033576155742630428660897004311889086603872705377342040063365395490300584626198085269932385502479249450447170114007590865619109932377090337756155889075089311585862589145997856632378934557392878758256853914666892300090341402092302720568517930223441246785071978253908369876583428286608495111263611446672672174814210153479961430324084282719704622412023685418912404174303499333586743725154205257738659368769032816337105462968632740947607417528876912646801029756170136370337003112494158957990445799445444111520873797377170015623282037265472584900266558236475790060735102847912900450257927452537708484920999036323873510917608220286181037776071135509644879536024968358203650289750690613757145136680920886497598225782581712322443226174817849379833577030481790223919358428888177632951309657960565846365334425969102485634026593033434660446187256950183003037333806440476575858530794314340872222849109922047758572360596353266296368684005908331772889164279209220455377309416637491408468643265186666443797962651362727627968877170160063088042315011903891876482943629829357388694077487482187747854979995364303461100890432375854851569146691486303983588224830884651022871832095497479773038183372440731219616643735877153892406005072629950319160948412204215042032805723873406101449563443105923618007710004321852186462741106467638121461506371203857974352885886504038434201110291355523893011008372201594836144437454562563047308095184513595158483578429194025247489549711117166054729182983201431466660085697272609384272223070752478789294788462154400991023144133290509797377493540180491886266357301947053923429222250911928664102745659875181341803097905342904103021206205594169016410915807184570588225273285457926201457608768230267720600797015147096186035716448777415617493422512126015202308215956844814811028134478527744013776231930146158578488180470330784311490112020656095041105420601729833456583557949577327690073075939048637195509125191691228998497031187732642241943835320699698711582957458895851552294727278348255428542054224019554460338982789454172728442269150848416954541775442004629065308796331897602883147758758136142987373977080133162215157918227727405209073842382993905481217621983279218295795395702650743475755792995497002824595416409948972466200941117249202368044024018647118764490439934100404695070792820552579747044071120187136443087494182925525568836847199468953718700519932220863389808929326440549699280608577084648717645940680997858496593111917651834913088428656433482753731493494878314789020830739059918226585745324702896906480430258989970910572221067641570147847802400575525033066295234134662818882933015771041056978193929036799750891983545877938285690245144767784246313137156730016566359592321961169452580822793476696595035793525652272647843042495455693243264503322868123776408153219903456876023889995545120005488433152687662218697864188438999943904547867247639337756718585768199451493652273864825491095696140763260884915846032673022058917100605965830139485078593373687188351829314108701386243177729063772437409897835360018017109951479788146187550004395758924789877924115119661295583683397993306325532928846243871510086951215308337563821031590566115980883525163866507465733320236004099459251501505676476819927191935040597884512692836977171279835290446273252987947291125794030252216175823735144436677262993387184800922511889157303725868852722635261222804541025761804916018126014770803624177602349939582224996843405905956422569222944656942786779601020917610935776506551632897312940968696140770439699032546833872146822763259322480361497042465800142322783709453017291993719682922722742268058377540411821491643742284775068708164360681983895298337272670772952743887630035226063856320916565391988981838533071692834481945025497865086946417484573242990208292112351368348807847013473164655218719873533912249090096413240653564623353397426749167959519601823521751071494141767101310671644427955807913132508644279833861082873820143564602370558709601411883841620622379691106682374070396024874060733642769507780331234028044458709648612395851481540978674698271893447792794498859750134628721502983856412740806868713432942940615797411763425547975066742439753306272711995909229292004097350400376987404047556446533988630197851555960096992614362112089257769323067170424643978533518628797543994891766710208359803073698088572662545931602630917420764464718637088658165169268168839480545792343678940529705660637730609088401347940732864359210234580253393002851226028198842641998878454282072387370594974263586779694195788612263110251628862523995271736980812636938201768813443866745875937805788183037739953818244253295289136167695274209065760967920465099775940565912972712183440296951193082033699558081124163958777510421729905887475852770825115949223558535844549800246045498371356723048012507798748370497339657458018895993292079820306002192551422109513328827103263343093822580484991043379917774336263777000170324601385033831756401926016474538258187213813431287145198125489954508610199829691092830928220113318957351253930774731458134696859346509706467086979676352042969721871236220009329227483175166979932987282770511514018948164641819960076390390312939215266266173332913734400408124924510386900774895809486993243632847544374256360529714656566142079330254433517549396766496441683158828725578455164759806249522344819569198798947497587429419332064492920301524034804668485387628579927618122007810465573336596137787402399301507422474554395881592364007601455768309253000892887061103917395359067372746122305972705354723841337099104204360200240480487967247045535023075454282198469067857706507384633619315583831632264671202457091255211584244052564599497186638483837113995680615214997136048035795402800435462743075350329254098144525830967993055909395843321561459490038983123911438747945518106419880952869501345569639153346375802812477978237390596148513923779207503067422480688476274178142638876463623677703716317204056474111401380642561980649027178121885337580453846168072646440161440983504178847972819418241472524635218154182119306257230620018456202392902149575041229791645335282748551971649389656784560784104317649622208840810701241213981475635276222577383406795190512834058536424354604888772164014866719934643832318635675213817839549444833021169634674676917255034890386800943592262040113201579013188148754855138555957986730873683438717517403643271446835512406067640356613283815101625953128834857946013200636675915073947423928512226492083672148822918254381799445090354968782321966430709199504569837951263797385120587308494994977278076556365723793562374699549008712969917030837879496503473324827825948821958719894686084750646756637115826067437931678302854577710465797229280259882583803289351952788669954655605191574445824653904765673685462590959123630274218923915573179407432782189296587334447112173100826443567293794767528012763043194146838066277153170102710585522416269494411424577141686547533433879990520038155596579908328988674286194765996058933216123818276256840286429096004530918963443255861539425536207106597009958032210565004985955635453340820518538715675562900294610283025256007988412467984945179638110801166758547718572935442068905255927553479686938435984449186415837902525185253223891664348209251018830845205006356847879889301463282022498095412998824603968179025756527167418265595747001193851945879400186333886191521069980919972456872007781850372015638898170830815108558416412440641762356122531103361683784303302869904106552583093079296422600269169169372714571389483905603973440302895520221512061833669329856332929095032591731856994871228673033989951560697876562488994678575985172130532635520873687808291565492742185692131711753719644010256982839268162458320538026397977026754341765176291108757429126682694703396177602480920791006804886793782968109257744887952510697730691986652194011083435359187451317759221028749342971804475141070419958926930939224558317454769328763556779414887433918675485717440100575870732760564794172518281804787961404835873322217930639760537783934479088982968086500745572795885642141924293329631128494520995568665643046802972013982554460281069865805074492694665650494007267395457714467320471275708146787143041731820057305411141267256880119668282845261082510437392505124394598428773261695949140681867761498431853774012234625801090798732305016106393902694501382400606815355828918014225768162479109169689607334040441140913431759268067056114594096928117912566987381431930598375341586432565290466285468099130558311015404223403879836924850140325341968150902510508143212656647897212620138347421401014352384621800219969708132919431928178510979728348054808764577757188521552085038070881515162418913629524054185255679257468853567833692502364016268696495593757881908340432856949114303973598625254013853217698002373813347768221652049601037371177888959007757138694786669375393382828460686285055529513710576880311530111710514202826886131612845081891844924714777376215414655391180595418494912574780315682465346357751291774873969734645962568443541656783530452839778787702696707508663812641513879486883014175878908524521800718564778105613229464575129270231828930603523695630447267613929223190861542662800173170089412699868907521680808617094731404906294164207434774104467215443173196043121971880246657993340675017971883464603541654695473650644795776251953776182042474281133497481491852174396275650303391845055118066826881786128636672359618141708509852986893116175931484697011932745417055693724323140293956568315916548472913194896848565697720062156681414016186176162891178351325620373355840812982056994061947022108583338567445142093040606857980534162239440411434187770900508679549578251077418903162017137720268723502504453899094620790143759697490613719820478360155978507197439382532557845139831150113965496652243067443481813896021741693686800907867370932574642931549413241145433988822808503905243573394224791376302196942882879215693535182675600142523948907799298000957882548644248942321086837455600194769071661683655594079125087542274269321873543966021273249591567692354893267076772367990001396009976145108884557147364461792151607299307430787278410490820688493680353467922557004162079028061024152733861806641599255361720045807142727263347956438703697048673663306043803808719174469818515225185141497191618683863802718490918628703078690682829459784400170804357706994336538334742842770966244145558609786506260465315378535087351618128348886433570935179970314854122952903611288930496379874564731668495490067610528425476444534822059757021936699888631899004320815752188781030219945819024026326282859131683067782886941875504876328226879400941973862938578772849797628086738746327699504525479897702315661504717176536535058121479250428638694300292540739454636389491535063529912887650446474130452404835071431665816387216088085625415185482156091320190384073974505974213264762715254647055491417077823377946682802963263833947733657885673075788069818305784851328227186670676245575945118667977158925711565918907657063230020753027453303245164038895659407873887405416682903796840682996810298230741647974609996426891562673674261159933706733879378292323026019849137254736478370862822444308975135781520724499253732130086325471060210146712556447425858068979703142215793815032440898149338612953850372559400524468387514878080873793509170537928582114274733830525874775018237826431215962979167462765014319265183724783870137555840898445307864988371674145809676235951060780379355515484813629909201099713800158881405999525343480423001174071035027262795550846992621464946560599619065160426617904518113089388500303646423891200194909823566801644835984787864555001412830986686158120687738972971417300946908436760345271415964039449379984872564045408072605255492358200522206748643529784601203613684555513834082517803976651975151735034686262751996476107860106069505358466043435292586447334247933415157064100127586823684219435429163317333858493016927509797678882815714664163419739271355534739658931025360914792571575064823073092783290415428262129675926901946686153807697613479897685093074489582686657708281509504878171141267909603407257279972851659935591807195213399422138586691571574047289017411166101307818141824309531340306993216773927917836296598502958239705343099155577490996568252659397379913298325170420260382099966421486577686089312078068215312666061525365983274111448877596326435172075228281408178283257340416423352188165252726073007972091961146829558403849963498021854782375007102308774840411609457888197755995424365660448180348909755790504400517086909037133193894429938470756482185097168366480102760732153866994086207258177196119200581572698953460860238355252356535795456001642718550024615862188343065398097486212175460822621203047170431040447181242915943536058328438648925703859925485489423982198636583406637968578995172413121724127225790631862184871710594744336668415968468838060269332447767078617161841259055842754018251713398594251815989455546138558952235110998926511082450626226171797405257053534916449110761362021075549519368120413465355867530739543419602738114502511970900801075615374032535284155568784194144979750611805685246458475499619846297368150011262601868678713794851612857728747250550941382431219598264130864204769456703791709796940716302454340305131233727768513229385408101711158725790752873107917570286756387240759881894416478210957371730032198855146271756955623197705788883079747398089150145705511369276146102553083245188771011354722084354956847499769896752031099046243545596858446754618768206030906764699595564790121106761872792881746003466915956446541463437285460268755070555284621784317342452836970053729104499986258384632812465990525700968813566037144727464465748851313059585721013236832028815670251298387146619205999459265863752956517759217261514699987368704482210888492853622484377890023399173996321854255025239317688052767190615129716354423280170871783459713730571263850913050753206420132868302681402307803383420327942310508339124557833737770055479115355614608249362488875668490213883793158565282683917561975953365478363859170373182201558427249359388793594398635842495568712232104804511132729728503100201810705161025165269550331474377162452458939019811794318808960091457876715869295577745062199686842346884865546559615109904944523142372236645770222936575002326078639216029734485784682876486761956361604880454698958685061795070891179508459938658016333043656270629895090707792098041783680867855895612358790196856489827641846623532977746673542768624503374546888687574567116614444397116517480467293253857262501501159607551602264427031391825143229241801376043403892399031406971268453730516373276337328723367852220287150172342647789816763189867631997759466091762431293513503942889372719509861203818475347096101640522937069731148019648267990525741509954293199202872405661708597488814829213518618977286914681468075271966842483874620214537793047998531859172157540124461237367267120635832819321825915228431468320811933032281575329581973711910043835905122320502447845526628002846460978049105428906746636391530298645894706952209830251727164844276793962017469554025159239320464793171947712290571782377746804019340448007284503924530463931470260438313552041184797599986983670890435717102647243579017573565416418988805045860869695423540351179319996120460496659712306371251449399597795597034069292702417273266073059994900156898782239292348552835987913241817180447214392317032656460842123377401899969863600321593581659353750747204171280683578577149216568018600217812570788533334362340898259461894812985389309289948678891188508969423646830497573519783366657009785983168092436162996678071912913277793995953640603991443820173457454778442208019948743373731164878193913812974578484195652283627084439411317113901595043266687782682810593918524582360663114101893518875542729804803894270178255907411718328309209865514176309323515372157324659757764254852837958611847485834192312755416967074217467592452496084289333201985588846178949974456388435191942905856065822939328891092844719490997337111883812333728270327671324118228317591333956109702304879701904265534344725964961962220148229476009615710862663983880437376192748745948797760235085719505755100634673058138473225169664236180419738956192117851083818569474139134133146882082989223720476346377183275049168838098361403920846978107560842400918457750318780745424072178296425628664402911509622434994543467220647351442850639888071263255121252858751936171687465093373447023697638432373211494013003096420219201564771774129909920974480516465775005544907681868047935041517600657310362500263143687950697191438258789157150022476768829008792827593342293928610600863953745555806074723258451519154226802088356020410391264423752519980769611481208235624249585960977476993510749838612670512521851294845549409946703965272201398641807250501798219913571694759797608819371064873915238101281610403136188269403825908981191003591276641820050195444005153504554423473611241232284677327477019610966967731885651273599626889936138108025851922091820781521965482812061566357764473692391244495675498710972022429068347642215540390189228452823146823970850178298985858461880046003082570089175661752300617214317445569551995869569710110598685044508080004030645468736660271816717114879692785552350516274131280849223285351776799488513655489779420928188566245308652451726178940867032074765824204537912850609214677541025663675359839679185460996510610830527371760906441394501065908566408626413746934786356774264966260474918909919409370667086288219723291429293940186181108326093513106746504697217624219932425652536222555243015361570070891395783085172914436291746523923631132356130214778890200148668900573851350439157713991111124734191190345157058428994166916554350432057587106673302316014707295729891976331331513173795152825206469696806155217784487305228121478529580483228949590160531583420265094338288134227315143672041670201289760254422110333779786140643782118343260698143038942830409671237015864522981629591109509311880407806899567573529355081762439116675665145612447307061813040412440551934948822841385447438247806343657071408800151589269937677361530746779883127819299589937338241436162682032581937305464963976438707443493750434733115247519010135627077965597567670139376551810888198146312367706787169910685012112274949139980622559884371855360513659362262445792664548490061405867126138674386899102359401786486747444220783132043723897619155056589540568700363301726261517555227715125867732159305218414032300644325763934403134106923951845373719551179877821961067122577234193696507427498502659779094176576791258007189183971091374917351793960732468634843873987673737534222389754284321063100909300829725544371897452636177663262751570574510392101227367643218485569279418590834387070589602457127537086414702985941496495307321883383054268936192826050757141819662130640242586118795959199604420097075534407602150936871749742828281726280018235493970405197795853925378815734622005821812970919420742509848153460322234330238462798299762483994490520422788209050452791836423052893457921530140713085439438788509902253548189568011505980089801466364793270413811712257111885944516108998627666993604395417516835554934511923569005009255317272329658620705241457579599481440683808255352075384101653379064578148974348511935131064520808720421681501975846785843997541590398382259772065920025383554440807269171835358411621399394199569224665594423255420437520472408273427922434821385439324562330438930913764959784970610474413493374844415816031585712929694387258937589271885034833117660526435795687781349960278469835839906810455272065956920672186281305330003196881690180712583574743590936710376421652233284816812611414247287922408941920209836372356398524472842902245199224103243482507435628173728597063609676852906925851371445929762213763754443369181591076614950990009110196503701107113229975914750649705050971946898591151068908382616207124705037474081944978455763282385711772013897330536753470517800822356484839315250963085671008636328945721294944290777853758249798927972972694543663984153334039132749468492172230154216134674867472466299074485631521462432596281376051057431822980366427628111596887544157075862040242696848293628085462031585894798629648886227236718465268456525960601559699783478224089436259252001290281275424365049036819750898486959386394606444796651580689379518225309611060298302355869793490052512376587967570525650383428626952304293326493211297363453026012770340945200123153177130787528946530400416730998226255049289560960273587932165566846589040853770388306973377425243748062760874152590530877120838383724414370768530569047506389774022018573358939056586890821058449928615165274322693188835460829605557509392419046544637286593220980065283148297442940836432644377458860147359368755481894039656726884862354321336000390618584613548807967873639524886762460433384673847443846102755646485612311843026785778230818020184512428355590183665903517143318261806966169335028345581923135668726219140439559063162233414845774209725336324928899986078703762105225404257589225761761152500260934288417461337174725802598647957121950391311134329410378034903542522261673387337815240697724683175895269576011593355444805790355712507476890932518052777880845762997764376332254110116810862564204805842243600262789410716597196342652693229202341124844273552433619414711663302369306426859583493090643465804414059161054763450570532860829413014579065375246392323635008866820689190391374819101670753311810162126864604656248791569852302795802911516453885797158425732869541223188623572642358859923596719769815000423811199150333125545185159318447646418539319495668362012280976234821759652262644918507269096104723025529151771232151174973640265803325343641588154871432354594606586089783740909794211237460142577081182518373371578419314262057639276024506073614887615211866700878656339335398014651971417857420348591405120965971075312169914060650674018097022776287413981643485780137428704913254080071006420996670020132261020178501796592584211973151796435761316606901397387049277274535817341817319796486173741392368247479316323183482895792520786774787732464675863959858665496039408792744288687486534300399824896069853946194799376146253220594423597827310344092899475639927111584813606758554526973302143195155974559777185007925857160811939785230112251524603686806935375791610478837461344773841324785167186974287652985427194344968235872111558794014428129439940213253220066217532671251072631554589839704056743084654000802383729539744017537884584262985583695550123163385815784885491396178545175358058539565760468217873713280608125164487810438553952024729986728443065383522817810085845661444168315963631553089578119655142537045735333036252975116975714198400630209899004767822231438136463689617980872088384104911622299248589222236944665109030582489026326631055806675093750061531426106725758848230481136209619538460793932012723913075580331749275724986859010783180579531535504364378853833107472804691735779643800076442351491622232577643974284258697039189299112495219275603344175414025251490877648831411448224060705435002382454536863997750449901496376108327843545330777370536245680521980638041370179078188741693409801151645058048304214939026305271625015839830959521402362370442121451472020795204357296323447294787151849640111444299396702564320151105849102699813256035111184407980771100911118455484087335695096533379486302300157972806114478182195956712196674484012379471676470795155778670772961323394717823381621442164983311737114267258797930243861869878665470093914910357889936701317795495128344052314387855087323217189494275453941067668939547924030120566472051058468674249321137923325435493435399346064236607038180565409159209372071465911112450307973307177445194145276347946291008770227387885269012310592479416999021628825455771376193004097901546076605117148286538879801039082897119586591757259440163456301437962770246104839529504439839404642206285988496315712270809222725343650444299911607385012060770381907085227264753930332096773881575743115808660027761874630833820185294323909799363254447984848604221228938974582639121447906922718763867876087805148396115444288657821134417129180170995972537931861373881836551776782769012907299025528986518543953244565884731760194277104808720971449189730957583390169385809596148725360543879451086184525547698129560065188987233085601671127310736852867750559667727276886866918146853273339178945986161445940521086098975567982867531474375205047755058182814406932337107218684594681987524980765600456473148841280285204887373796040058900972534554098333900178138807102526497551619314737578280680558692356885527757587658028033330107270718664762758482266539051413221380394495367621753808369618354263196064543174463914307786230018437887703010463521600448591735298737606576266365988235255728159892781385085386915937178029669151163735541176591358332776757005969202332921770495321872149241168529531935982133455591947089453856723118878029305748590779353139848662587565018994098758009011475251265809527976188981412489197219211346769150155050203327598800032641911341190675326819122465905760167234055013187262043557865985389627130719722643013722900456688928579042987020662872724818413054135793964785711554969452274857469694784663947046238647962444725195740592647626670708873088976200393391667285413379299093762606396320275835026043427040341873209653196983211621259321525460630864554231239536848986946680222922305511820558147720224831527513318326364048007891137100605210686631186843948161507110513188208334359072456811261608594325803057956042737713325213979269023259468291074416621168543180051160266380350380983693384585209771609672472820186565989921064021470675489467067716640353824431246308858331900276608727339240513235980107546248384139991412347250037529295702884146749098291805423533025987475109659951321865513385544280434904623125538540558413878839073837243976937966721022281900610501316976496754526928884018414916714094536207228854406133412430186501181638243108369467060630455516633136315776300991786434903835841372898319104703914594491028708219097665317304818945080278268491852240317262918689756401891342944548404208054933692041833728240394475439091703254085400968044446069156102527813901420148360159652671925752889720929865776549019278115468235425820980601255309040403578777997384295830833349051506421318349023165762129112660892860557383805620039342121293665771912279371357904505853569118576596327955733907478811215220146770390507084120156204323396567625816973642049341662985036692967364711238472990653767645733440944445204253133839503372237962712298279812707741768356949719347199630901762665217230673540511825082862540931680444737882847071666595479710835949861549643204273727345145241977588748543322856863136850553348868649501448389073956511397939186636403131062769435655035702282205666004464220076747429737452011591122282204555922097249402047596822676312787651201027941506669494234285357329008697837961007131603719993536272872372572657766755732422706472147789797304597283035282262492171173575962213286118850608899857138928879366373167537969650433328525917099431463838648462577720370435707908060860986254921622104373203790085357292099961429046605976191688995685141478312416221814444677850108098073732331419730704965297392650870072157795180272445183976244001261255731218027945226827519277538228551144420982274585356927587309445121909298002228009607043459184553777038148514023816580091422776254323280144111431639042229693073373951645984679425555449336557943937346085580957606155140794302556369095839458513109135319202887262612379936160856407937995443657228992684726627613473505602723095734784150832176791592857255854998730448338197247735885200874202685682641076999270564680031582959109538695917681427692111124652918805057153275360257787264674727876261385652585122931792293394704386808855154339651363125570979664429992062467480446565687432332917438061316236969538191290203722055537342176887550031428462952192344487723202824025515177982757780440332385289438547178759953878891932801971329927126089222882489112498474518704035903839386088133514404733058073069385639784698222924304030889281653867762974332755600777175161936302954573801221928577731237225751224237401394370123057050464726635447843263171288613664967705320487092508393123195223814401799979099572314529444534070253167852181624467860361433057107250512958436511073520330063206378070990698257677464044139006967486724724824244678387533059406175744513841858844950084719381005299081235172976817152725699791682561177841470552385455524277888395161662105190759244714763889316792358756719150487735517924437151763081119257897072271641040334005681367763338814327480282717787608487785003791056686145472257723711266417605598688709982364858044240612934840939043221863089789523083808106571082624515190504112579890221823907393321424607436619211733348767313545441012578841510066987749390450088704493084774690981383005678637051597403131148681875850056887131387198470006281429087770205966817571846971401966345676484032411330441131731521381510780935533145931899560000491305482156949520767631292470763993006036579445502889636419444978080405221869993181087119890436508926695585387697672708292904597555615197363315028548241203357975575910925565568447931812599964445449594961867708205806978749237277223754911873136276384784359156071366004444135345544349207906359528708924221553323114890383160869986905286716892844179758859640729670938663201941647740830127764790861333722445489550279410769708536319299043648008698522024392805857779738914810311503959483026704497136565881943671255688443126637303022474480123558418891181665875683610320617441997539055602548433217046386532219342397738195548297127147640021840305030185407513153217730690764865254831060677620857384059779864075822027154385446965830313437179827914883712930696741195137855528201453840730369013480998021563052832828308346841348617420358227734704670569462578714113925359417324955767087584827854202703000998272832870941079459245062086385076761848334670180492313792466790219653585769512541562101638010136540002941916877814074284110555126411703418587090576896955647387089858295488343258998762027483476433792624011742818223559892070478577471067105404754223899049979375053495305800256031989900325431344013977050106482439331379135598667986794058075238226533470565945849314303334756139695043542680896103276786515134602171109183449037891846709520452535211108541118399352345246421233819134065438901201909866256280060907243405188268165014878062480749317122447941304160646667136440569451074002148337211690207633406649659254999608817807435771005320600503722832092335750955795165616368498422940485385418148290621841770415686100427326979918281363982804247483416663132812369963034620705580888474720300890734564592722561857420828945197630029251411867239386943854113633506022922360999854440850598301890884819470445796916490213594593730324822232970658441080922253756652810710844336745903830664977784853573574632165832457919430616951969486293663710469255880663834369091442612969660489689860662539006515541598990443290964874361505130908329634208194428883966416480342329531865296795358155245690059353235348887283134094698657527365220286131515510188370509513106957645248856537775782545629509257486315604926897531011824244883242486702419626732896316313712686696133336158004857007662580317709395139624486750996811396961334720555607020701284227828586145803244406791407460113297694380435973663526653449473357418492370992492690996725184744745844978319128649788788257022538694424825014850606536897659519109680334555274034279094765048720678642614842590091894353893669559930464300654461692007466994333395071587093500741321868832273476136686232078663540121046878679719121759699753782085571636388927838906272860681010967485867037747904009361043633662641318445550672717983937012618205179739460764533043900270410860091808660794487625710248470002116997040878914198073059199640596395354162877597444813792866667309283944607093723125057317449393574173459233714009157518416221015060017800704806926248070853383555763834241211695824719792214522028144610253466479959659566163467424415710614729746205890637163439613514287785437670698315370223107598717109370264596731658465879088509196141739571891347337344005267179668162677986560325622687259223994655801593435502810051765127526741554914041658261161340740682420634373071215217656072598181281719716602301482509927452491389592651990256809532406213947854178540663231498224949152406451073419522400589988946384196503844995378186012758089491458693098624260601797646154284375113764735922241845580208714948808013307266286292363704790494497464635183937928375171278885837233885599703263351753896196535325364577886150701735484488203240397034474652907010906916782991633959546877421781656697899431753058865578714430550286107112447783837186218440995666926690904303373671597665479743478381471044591529853241908543342763899126274772712009460123713068321108763719548754581179744393919282924382385073145810902903517861751530564273944580768830895785682208479347253088579998370879651766210529094145860618246277527071661899724019115673712201416714748446180713162356256955363072256465901813586416998887072802638753101191351365876974955588056843093754932696485743952103754009813377009545268895547546900676355469248772739955306638891114874733317823718778922570313572307304713836426924708575474187228651243562857147755451859706187172962417582458372321887094663688594662977994912670650015967147659277168841252802932072291223522375055908897542796347293042835006921856953845086680337366152919030419877706107742930937177583113122107965117178677600958430240365668663355352055627192972538945521017251907854166616112391962770587030487895297272615553374178191370463169393778053920260576821322533239624855443910489354281707663147138259581031663999643934107769667430940782489006480039515587453543993966005576912530421697583002280582266782622205144602211355638994856123150469036639072793711281416242934265624191470036631812305109038269277142686527271513072937698340340654031240008591436325538834550386829933627346637825632514327492051392297305167520366654284053227624760441247918704254469525076799797489564369143088914020035721088064317646134367562704662155272397020833153898893817402283196878969433159401520022912413245695381040150761534609426152259571174453382155561985538473977049305889963610167241784271561002548608494503431650844791939443860750578120494938005381043146649648167358409385877181769913540696342476107249416491914824080393841956727108758773399922051570672483059419352593357655811672439725625567801581426405030125950590570626676540447462220056187428290453787786637310541889278794973806253456762051768047441350535120840742719533526894795351775580911981512746635888280941714875912734011687163606083364973421720000495645244243483146791021089129948066637158658002164178843408982041098812894446789915675644920854869448631108604361777649163719537849853460440064663984446661153944303351164660793660319287768998118924657912451373598189417326856419518845216139690938440655328614614547013775990478518354550723346037121088893948404826886971600140914816648100098578209876762157387269466665610207599161332941209922382468432352576827951232088632816207050180466090155184103458987441749857364319515157824321842166424841169623938948666217271261946902882836075788964664877621249267932683643052322788567260365692287715814020439322224640489190898029269021051107740227037797259390991435030210571536978066491276108080142960051679788399398129835132092023843150999533531247743727931386496007284628674239277774955201053618449874460605627840325839942670943394060492462433593752499388743735440326624391721507061077549184089776233246484692193115024911845734781455229079662909015746878635534123255186681274717139686736248899785571006903544247375159210191727255696580506421035721034445164137982289726157695768618163137298142664540599473056445337056087564513699539835805300315209880207110812959946555846608656817728626329127501614227172891940032447951399475991330624107709745289960481168573431795112184103057578622081024550066331317958736902825688666198482570136458349891791496381769946332028397800870700110733882607784329496452673097364252581881556256952887938609191109610179357786229324210641304306153160383489551460858319482899148397860211853940466510724698292362111885935902596903017169692296297513618502376904240830957810439964454088606940884585511027234545508899211173364653317466305665557010378010387203701556557411640643929224641177101568416718565929115409541418732946673861459038763752915009480441384455532699298977080512415166646988211470628840713719531881497642503882656224269816045878991727272660656245217978723389827871870880708275289898956838785106669702309415305727665872624155662954625216539844166603923084322248914204994130948346235136338672691781821560019180436394659405014028008282963499242392070659775135500554414491539087851297939342620920337204229110952166045429929331543744678529080115338109027817309908079077893984469898099451222324764529816255183210098431136938226662579222791679549208519690182088682460093345059655392421678238954820499878248506796976483795222503436569762845620796776713599846463955552931050224756385621609455003473693289447595956473540643561750588256643344149646010845898488311807306209904716714157481686899013743641772634272478770319065350794743780665446079048658252901858862355821360032167367564879878048468248305726314255937738778389508174139464140881853767335345069747385620972397068620276612777656984813163924344056370768367414605193135848514944482102916579736143750464274410047341354091418189339812043231137352952822009066818507057951721041498258827121029844500535315209470456727406338185373592987170746402949997375549154158498450980622852990537088480814728441192436754711745819930075176428077443491266266769596155417657589579972420787576614237747505192941597579354651319333142612058483154743348491582295877746259647764821759276708894155384221375596330237893400010933598631256627129813362996495321194864773296484462006332029650241638602526280244275570733592031824441924224649367653624925416245961038759008151417437781679455281132633826329922056975922991974082536237418912616810306730480242067663733777274145264380684808929998621382827809960586130202119122416803817533331701815770975932936642428943978102754540954438684126504166404749596065288406490909526498484466488349521960498714795455878962905383959477226783898450416442448275511986373489925085673304172814833863800899566335952913741821775616108031206939411654089566618259802837020455297226160427118839324895849341891319774714662446436504120273321875257740647435714574897585537784194775091089461706174705162311193809771274039953133691914704157428126965229596248042613328509387413598353397289877887562538489296296677961375888795629474107919891729621418476350849144800192565031823232072747948208492812253078485977223701198177916797645380834255134152682131384794304900721154123725681990286167484672126985256398044151908717287141395295563599668572278152267609084018512628736703847406182340611871988874666392059115764228669879272969922420561706600505539479932951221859785270336199478951514657542371892294875005395614765569336795060509874187304897051104174739156741451541921109754585366762277113974647509385986762865063053826756093901335064809541164142460270202760051509124936313542366394989929303854140052408230891393583723055287784323093679219947689886662208315513362888632457448797333343296294637613426041733295447717675295754693794533549423227985868908574201252955906332201916050442494137318437059440585453040610997271341001405176356725651452360428795544610448353305253466110363582012059310742891845768139572401149952812140505213145565374456417792161366552872377796387394304177592762782196220816296120151874721482547125963918728870777918862457523032719064190547277902541467831845340091831754648706933260767673293819679937835138688564981224510445984808347989344685990281193998973303430992863676403362113978538418533009740760423975214228456578887797900665479506088202383531971434397922010906051417344400876798679193213145704568810089343697933837503845123735130201729974681736652835308100596055343195783073296418296725233180468006461589013470743428083797588451055398841522145006844247851021458465224485562737902346405585819221617210917645482222920167735301687424107083278807845623810822656451506979855670131218173936659931329144059068933476467382644598182037140097855797173835000257780370989060359001053476255029103752153272517329516244743699067400307517972555079855466752813540657417293796329699962068470082686162916541706938991266077349752981605151901226589222854568097510649784624359531174466587532286083407356395684936822162835370935763909264311168205326225087437496090316571772691106969517990734310249144820193871868959401638819545702863548127022448303422500614439084669484411702992566717872980605036931790556802007813141485767632246385971082248391530892232322786984797626845035154933016697707422773385327496275400242813169362245727389647614618711179452936034808273102406873402671176087616209817132554011380113917993222733467988074700552155497693046917768668427557973764558377878518306889140139433460328634298511255404569662274937395169289555162230814081751755821846082623374494781212684192995890823186387468843690249059760590454379855845974784231905415990972801203809343290165947932612598054853020049260478916438654624947765007428154611329568735948967814694904607432594132763928255485763929637867607325525929467644020313709164957531200085086970858234283854147359402715615835868778611704288268400008309642084556617982916991188696655978124394225367744886089709161941117508454745023712030993507079935635785253882526788917278077025636021171832441549705033775523698788026007714073350463045046949312885520452311501307452400769173421775999914283937790456770606277680377722558808959806469420470450064989204692239008128109346567232434244884093388586556396691604447554266493773504923888230304020324966146476894897979160447912596041315748077927786099459204346265567902471310107233136750224049299903579034907597591759943649177437561217086529067672365343306502646829022008011342038595639500034311729952836710336285611142588119425695031333551116254496982572221084634110294313802121725779204596074315542364036107733350050544581693678402307262332260439507205078646462128764369624740532656325472128998967488107311899012289716251284049405594116883113132861300552050342330099865387841852382830205663016776684106080775832720686408508284669391760918444524127698940825916291519044451171333873908122842567580309444967312909174130092940969982000305987944903982816519240090260752512809773638329156104965360142023903891076209920049606458655135652896120085633089167947441856620686540255895945407973944502384926442105483474834008341045242071787351357434772080139360643750416294878483243655564331508050744073296319432288604043544880087609711145323670950616217545843944071159429883274374575509329096164803728989923704856949256590900753764872150291583483260077345393340859057118490257269632220999296386366220445183583696708123035970896149817109742831186311616563748523266965316156878405263792174143777136458802572836316235895961887737448139627203394684575142117983203336855875843151968424629318635393375374157523692265522360035066409698396646712592408634656939985813834372349204959846596252683425518348936230321996059938857310076084108776830581594761972392829513429164912104568042533141379711866343703208591645901430468200338011121189605890801523692154871631291587151196327046653946301317389705112832771073290653637805932918652791582070692656368424678295489364430209564109913535618392731872564313244666227558062567663361529113229583184700958430312307403533127918848899730168189468363747717191953832062284414830356921609636551328762386068026169381285538403224016588651139388203259953437405724386863945771361293629029211773426157790382219296229593098289242818393373702093903421437019346880817028517266054538866508810234780984837961958470092066591869456092179827323334448112642824793093886792852397004817368972370323987109421109521095059439784791987147967409809524425021605654641757487743875777567044208637557430447079838559466699862268765521411177659956047801697566716944655373635126117856804956938083499488914587864516947032130424596261656640050166628465645306697664777279974318978818888546290620006752832970457569504458895828754313542449282011334880126250565368192472717609217114282170424115654028401423112466096808210079296802137739315549634622855390428728788741523742540091923605347852509358529139083715175181680334494263493270202288837267915687934449175864446569649263668693353374325731113512561171028235683717528340229911248412008242520335674069390102068961005784736378619091300572943799361320308418957913088750230383718613659325799983343449627223150933176913568122468923525494473716128383364631348129609082954985013547408765605128998151900710607949047322817315290246138261608502894753606683982403221273185653468292499181076967224270791597382009889563226718013642416662321632192273009153884920095401018580330254207018360202073586930038621064537142889524649239164048108527736917624249422220597077368147696862613023404215348456069020013355265740709441348425127994538814692342686231970684395999085985548353110099661570855413288893181641895446672114533440043569341773541976317556108362084559598553245707698873430513223029837120640357003013785543153405503704844377653028312164362591889346455481909503717481854383546162051708965414528550024210347654756314109665872322778014242310940775452816957485061316638665642267614694143103773479114262222954418712825993596031308902119436454577864836027416632242663836370812435099243926811555744647150882298149765333628334845931482449626307881093067696435676555715751667824921848385872459455438913078895064610679754765674618326238469342997311906567239491116251064997359124213694960260392413926026499923790523801200344099380064279869291285988625844661864773742829623885411354171838744556284801709965476164710908783456116327390848597100158438948201267751280284981819585111124528838563848892698671257575905329292258464366369827572116386160399052344339940937819495613399320659629258471132249645643416441301752865651056166257058250526308803312907948055798786255785087845997100466720250429782970443065068608916293063027128110001927198985431197762171594393157154597847379584033164409901044724513706329254025001151838594039132042342961652197857052082161177562965784731449620383207951497978037181721550889409373801473781301344808804226443898487844049880365595915770211086179130052293610218966298243168199552755999688963044600620066451238449164240409509477029999982639575543025896151736728677292534937585733051375154267807248904738185617676450417023642268012323462508631148271136707659061263637322133050203250942143889536059800828952964183458939247869016974508980208719097455641912516289800938354203550127949023141657507951402962796296651928318126857581631509093901186476223771310130455819491901018308492356932086638988505436375737154176889336553280017486275010619191815912263353245427344754187940620187640234826516000421323661593402425685199261350631153784897953765652025079068327997288682391744922047337692660364247495008956875487769242445958141983511011568383726698490960671104069997261600895539484925920480386602815745523242431319726637636666691975138161422228649815887707834040537270930459566626418216993502833270637051798143875817724120189858455620069343340922695070581717277692924295706270452885676133295112758167985752947748812055544193467231884704152167411641219144669018981468946829951262399182535632456065464371237421380438653041428130806491940051861439198207913024916593338886296513887670014995380864002422917050532426868455519845163023601836900976134116887398051909193003708361783902328373743081693808786692116857224093433756207082064957960094017163594522198558094084232512263591173511258461886411780376705069072218159890013895133357770996999127694835449194026241744107523942087017483113369954777587077056472616759306341360652404224584664677547927247554355220724149847711942182614402246807339514844868321002714042728723930285632993596595278022233004838034604689412126237695614679243622356523779061674039715288072323020736459494001687110773818860948101941970652572253162289467283574664712066785544326960545343497282886474648277043453892323509618557430453249573396255526366859980589654271488717529962080130373625790906080982253709069771145532438494009557239054780122066977919427695520841371653646251287799667882106385958098722326287690596430376616743471114837524307559625506563620063262079693512716703941792437367172468520661467228697864808703996786360552743278764533140929493668492387930392589458939905176097865669458927631475951417274103185098188185792756416342734267118983329124162986358453736589884537351713102636815664565107590403556301240331269662823750295768345871841644369014333362346010989393027515749937206932689261429897864576470475529355574781103586797714103762665426360052345655597749511185745819144219022983644865011603501870181581495152584212935693164081363563409799941234847788485235499126230476456720950112406457419989257030322641974407892059805713925316362138815676970538880019844095968999471010655407774486849380639930571885788846363830908460980321282756559058617942536205568175923320445410224161901312182740912125086215059439129922788833396941508344689664329878759907799009660169251136088705364622863660253612789135161497182678967792624599583080887111903959245301412026626261372013974892181260140630061877516569774822498009079791869114303777685977290941491069129556904733030836423835973140017288744733861875189513740138805926180432851452287687462849424807987721464283062868462105986251862461375476197457528437943981103626129983260002582537392843186730469462873511143089753186161291184514719265752660473203891333354826093347643242867751575444717717285570756332055256739921699573867588022059658307483163493120118376509410131267006503524985037470215545992405602855224164283293277872197714379205112103626119166974011981670364727103248432772083734774284780636536816686926445257630564586491091603489057340909562434071913311995451913689057611630192593499126229910215938416337593119880006422036386492864826940293967607503302487355272865052509254234760895033909088634527772143167484409668801502840442759897391776300168070098245541734855122158267535475703417927871711620728505778004245608118998043784008373941492913698015891395303940635064036201667414838685082375877207061859923167055860929956139918606979359197846604449693347078028959710903967611924468927877418717089601055748061749251511647202722982593480745286383286469565816884861857077983475510212043050964327158674827735088427572978584573555330623659933066282049322380956520015842340783816165502732505360563992513060643398404722589239649896921978879563884366407826821825271566664972462052645027580898731571084521609950672140257767301757318502764973933853611407531180253084302119789560268040873613798430865537339021735928788008771647038205882824601246600054346453509218648610805323490584639682114458439774673998264229211316707200548546857843610473154869807428923553931010383081951210763124861291128881130692868494725132397113193762910772464037288462560123629645539174392415376758597712987656308910546011248706489215927887789175868793144092226717718165957960340160747147220431241059226793505672693994993707268857797252466200376939815627121129833068798366194983115284493944546790266608059379780205142354484900315481235827990133412114839695731412725320358162189676185772650455660070372915533294230073004153170157229692421907175206643697292716718558447896101573383972578075592826043729420477048408214074727669282969169310863079815067510704220348822989447600280306354298817007384481831436525657782081680637914174807625820887607488748527445949079352732610615444126702679359616260498409562997879878034505869031223915597273293593328625240279725299047738765035447751907863958561040842758636988694015348354821171396575310757220498587736463120346233337145594206047822399689085229100566527162108964816939569894336102569507334386808613639754520288606618030030783445239891668386678890434585613512912987200480231880037154894560502546709036040502486303481375919961939425494707968347828186455581710254689966294468591855650107225234334564997108505153084038563502687455354210463128861764295357637750074978558248306493065624412943143030361360416896930603358785337287490151189286471391973746050460059993284726680702889960637536452787079910523325862216333479258193859437758610325974473229674755948351817700042132379144101191812221925710562813943341144682235187807804841927629401089829729717742507790430644674201968625302969685561894460304002523895926587298908685149478075175718499134660096483119356530427182799813902126675262034297721674037944404023591132957588002823390988921074182691294671173491793257400739181448920051166818413103409976805565499465388885082443184108546685152005981463948407188320566193685879061164197706525507356033989579920762359711134336232361457334483630798088379739151143843425331473953475563767998816931674035599993688214666108037301266818443105559249688500113586896570275566342285528769096292910995963763469492987705532620279378308494621857343924979402342940381619059276051165912524335434176640079487651288166085037280960520803594219078965740828643217609243805780782117173647931137067829623350430397319385903409157409964823958011241677623738131198653342310733083139906166812152842636846326015602012826058491914355535589448543521854237557391957088087485952840587140219416240388629783321074955978079423074472899117178141075217585310116669433654780568686831560316211952530377562835291111683907220120997344712167453536896705758238052404023111254743045677094407323256126306939682740363792188249280846307787195691865295319307506519025179335460720080156314017918738116243064395336058732296412372224290083295711850168117905026672453956350342794796971289164346771596295736836478455015722857595480362653206609790423888414970286477181400279789892441093070317775722641271420990198210957903837820885533608029268164940627338256275295398783976516995510024936133574657265704838435225136100802444358637501547167939922681699393443962625642068041816522111964649955666520242275937497969228372266671560226753201211258434221116331961512602138278074155328548037043208626567133053532822408855582529311852340977455412697392474005260823717816687584614374219783907827741688792757424341897701742811970936258632583992789349384505870334793416963822013493558596050837446358112370606154442319704354689797157926070441908883779289782757519082693518605443432023229858002372535708404190943314064924908625354498468127788311032287076040663053444763719346178670441566833855223934272350348214689956546046305586092587760813583508699473702775253657916588095576779211605077663027906504964233799551468514474949542173742027140472084478785341266687951983759969152714006127875821050143744813842973967752174805087176135106021245485421576675509383942646851280009224231970107637667329810577392080648854841404636839589180699887857262263466755126026813679003048777847744009498617536212879641689050330429602888738839049155092265365344224227131163675723840794628177489465364749235731213055154539904649147053459627035016988129023969417635774873302956102886084506522714742161006363010340269539220547696654862414552452116077297891922650869531925703649671003532043021538653463589562999445025849627121814215397879990614554666119555409162330356388334550927647517554479895085448735210887716622924424981999167207897370456735637794111250716316497629561790666994664156132398182239322417643174535245073279896131594447019499047107047862126664273153462981879996094446593458074884485539582770411803347309607809902185174718303382262427214161329308052447937638851772037155511344609823343958834857785039160571504650420818731281322498981807020868556958364690641669448089578635009748854019287766083649642189450793042057356728298779490709749572802143414586100098516317160735240636275327737589205020424273005719399090284491446927473729182929121125228623605220556836306461659465325440909905436854849313288289504628739098978019367371977031447979269269820789884773347721018628886113990133139511675059808644864006083298077449831609091276680521128440927004869652415041528566350901816632402989592567969568214267206943118784187219365362428647815696885293240871009605410538345763350265896682677166747297660116068728963688592182826510731617115670472074554002155718122665423517023559235642520434554289821642484033206269849243028734587506963222639354377322072352740622398314114432130850446854834690950596796551764743887307498068140490056079775516729563923130717507292242577594107510787378918380177370710312190943269162279008155775072411015319195127468738902621070697145837076670748795008438277696952196799003998002584250588009080588502227198863102470904789282203556221592470488369672460390186832215174471470527080398425350961462401723590092231810716996254785995309034135445954341902876719646171143304175370266525659392020132381033732512509072007810283436790442578793468362411133123551707976506778832397070092481993008281517754554983016757128120029101361559086404960500740641844649661344215337506743782841762113253891266540951656990150290132618824103898727086979068474194078250288940853728661052333813291325345727484610824288149116778846073721755956055296209952639690165643840882767736619008225786541536089968047288397750631407064596061614507106836354494471569839265352438367079590313936425097143004461820933679609206085207520970601203207963729918044277406580853811454427937468083176883120657461334252040298220361928929990517878442585786017776494817827940547863850818866779236683949590550182003022372323123813080232790815901696025359068713670997092443853424440449725733187103769750507607228641572278805576089386342282392043183566500603930729312993572023301913848383874234990842156143226836848681928302648608001493864827957382259000403740298919242268015648695911028785320792028746066039621715914511595812174008528466631060238452008164751061695861345674793814552080338434888750968966783267611931343286290780308625101473618744136486821522353436884630996719589979042725064081657349463615855549489459951367049397866268695296004601202940072503046268369359891140943884415235653802538280295644680668784331571364998348726450787474558706799403445522341861829782453222393728688783469124823760011858627834391926420646425963410358236406630603739579417783295146029804443027438644277805154021410237475330679464865512233226511482005534734311682150031547230472150851361261825430511908323951649725527688678087396772319478770753164816367084319741180072048453481521290766154130094278322959617076242525167842882046341861800674284664418462986317283612338508123467192903017247524576644431030324930891920500691043599976329850108586789551457007692917007870048184048663069302960875535812168531786299481068280908177173063774325928253212425246526994132551621751949460940243621532021556707407817473833856044538652409184900243802763836606187153923059278403280143347100637700744991050251012684294230021119142478544424243421095001201655923293112920335376276165357028408731802394208851947274330588219984425524148826123033581786079373563855850562630667013769351928503814973455244029003370949491432733413611593623149374898052253738393030070422008986447158949750605741027944472932502912854139212958596927253195916812978496910468885767815622906390077846907163515971856249812475266718521894272239390773221895330487524396678282523064932918666503860568014974773090841173855364114704861986799622884940830556819957729001163798926905921111561338988718940338466689498484716268193009224526888876612259491637572094433956753779652345090249877913628897344787090419855463122413322174224176253224610087987398108101844298147394508092601271242868940722963670377122699031113782368860020618228030231881465487708013083552037031580122379764540034347418776835940109062584027557068603466372066657558049519644613133909752887482736085081782725349483915784131539738361365814999953872179077987429802613846766505143609067265408822192734186233174813780129545465286374410227087203333665343189524856953907715968019364269692089635208370167926849739421310579454924402845915257925852127317391824764305291843180378752395853895217832179669170047981099769035981001115071113459215205362232519721751805820568048448109960314426462955892445827323759174235671556253090383078197834301548049816800708260263681680588972683939062392760755446531464466571085386239983470642222242502924732559246518288118143730461776058990260856894077603629744193403653865223242802646900763845490147998153595161473717730499291713879200579676272547688863462329473316515679735647931187371336678751365371965811928605264542974761227602313200448046054722941192779270999832707008390108127721561893575201670313922118091977203772413761664804315588608218957996353697465027304391807474384748007620767458474310326224166920492367635163020499852893795842065936777864774914364759927215504055739035941369138353333605511602266912142289869542761581196771463851748303293600190410768783488658105080013618913322591081962760237018895947995452444239902482080663649474616201707126528661415307577598503995114609762682448593822577452479067099117359362311380608051344046664181369637845183142831874409027978730976956544647483900044635828652963109494167789442399915307316429982138288243180038473818013537588006892290823052066016263525380318230301340908784897552945980492056390317898416846471398567430717235502399544018232284957890154587227171358367931084383148414746580904671183934535724815068171540831724368570402579005084650532587588636664132624753258904632307695961838033104427847089368092078109430861779255171547217089183631437233103831674338869906316007419778459794284817871564393929986630313150178928185674954894599784391635504051713601648456924765553048893473030768671193062348821528830914079682836878035442687325404674013617173729078419476901001808564230177675755034577638598904770681246157744332410611402525159900715856902358491322242398955237825139758779005723731749765366256885654906601090345739865570944481730553567923594845110962188765102306788987330770177066947619146177454577304978435771748866310524854272124486891286204030790277592847478635715767544040845761358318713291209669625475953837551257584607084676992885092188645033995732887340595621465831986767918992966686672215370685784146206892079199541423615904239220996019976931253605318318281558484494743936574065251083123970688762092114858503393200088931014902011417985612807103381037426698201778606534058947931726937545864685355491329508778491577438884892334258450624009128129708223858405581106680598205754060992128351811609277247387629200236169143855348361396281361829675982858368537457694555553670439627184368770182887695585104879747135779475394446749560245269892113158899337104122714765335245625941403519457236268381682356379046075088185661977415419244963123320338143770159591803878745395151847090454907125655970561994526138099957427644270249776117814866013452237684348312920010016732702692856965449458188225283713790373122173211501170422245035333176051800338421091763675041506422999982789168148917507782038528386188310152168474810548385011803169660976432241875064137933191956864463325003019968614549966826055303364487287401632187775266777195579779274820937734929034261610904203830488755769698584334590061326841246298504391043167638986346185350203966964151301817629644289355401369846210267192448883147660727073871573081631012105172615552841835149881111663060919633768690028601634171353743648714364391691747985247728727526725164807825139141163386976247150297710892875984368716472978115704295362848181032874350566498100739528044509573413908742291470599272442060051786812494480545076734194785666285898296489262477678990592975870693815561547750721015800761112496545657071525647325354986761291559106253213711687404799178922423872521087691734857711752299390103941701544445395105843641603321514290723994680038692423974701142191466214224554459136737694536701748626178760956835283872187876193554061631881497629360717731791280726615420232005842494754190806532798046668757621895420361810694368524102032369017338195747842610455605786914112427965577462606084538739628496797995436131177747684765246906829404716475920566765981777379162489213184175831563940148022445970711862251175888799274439264629342583949153429360999324706732886623467951912618608632248829473834748589425551915174420313627669624751968912983785822137435819515181927538099143587356280405420148405531451871094917263740340027066648169794118657380756232083888260039775108487173383947483488012582135329115634615386042461250753588251659580479662892801961476062443267595331921307113099185363787101615183414980947190686072016667581814912292089706842353820102446890980838094676943290942960954190919175539640234853740992518531371000911004628069587600134206903324931228089430061289450583543318597438376024901720707013221791370286812611562808938206900583135720469807943867937810559028090810323602954625852402107494257865284587915263852282571498545205417229629425972223648578043785584383391775680335514065391659156579588594380992349021305696262448207048443689697569329713688445125646742564684513742340208858822033157597776182829143881964482971515138834868294029638281674093435314598278545564160372560531329435325022599869324122754171654634970236255399020506479164216201637804756732480565855685930005751378608601995990056535209940585000093078942264115343046936911760657508741318176449982605464566403722048558728776219050089291168581414980585163345946933212197454536212774739156420460804109025237797573854146420120795730616042112439955149052647593913729320475436962061232683163364489936882409353093546081017128625686055919677152797579600339629361246801759122804043236170132452653071904904129262593240341110633968036113536870232159707742135400190019247796113245974431100694130790811584435375078383727351983647049573539012155318819885717758504122382388259572943142430597651406393778900744089985576734477871751314912740360933018265868554173679211692036571767112946508026583310152828311861121620415961585127799014376884615696070726578395569211660164668415702906046858095123313049761749097310209927800020539134172969393162345744035283748685369610640700193004064551135320495952116427391537354315913400181646095180156962523928948488356940669164821983880627296714868785112827492499811496866017426289270057482864299275664810608401344589692607390508692085689677984437116194371422118777671325157613455801439318502721124223430013040661904258767524645101764415456486780367019874896949817077321245843240551817105791470913007780244530527608289593757070626532458676015512288607322815184393918066068526849996568681709526842109079915807151492147399576980198441232260766816035692387318493278044190961388404009666066473049885212355165255666381453692085777685831380463817541189583399842614885133541088772546847578276925114927461073941021757973210626490854720013163826962198589923415610863019532809446774608318000042982805855990549077369156669730885395700322294817701467749046421571527438279603852945385903255612418493137408026419117042225122684627541276495903061212182851631351885768390451004761082597217312862974517900718814408049913775520870544157934019980503936793834161741147390384029301804224653086950508806654509871518125471152515172466408275803882024895379626981547396813072398242116947244582614775247328369104357783835040234151895764611107991380928276681578029896241193888105817800953040034370058247904256423597912370510161843582696535486967913675922897040719330050165894688815003205883554907894074713726196791585333892411292153268969705324249867504947803220363893303255933291665281135801586356804275782634760910760028559679844607444077359435201895383267077880529782880841092643806877878301990955412924952632408818819907254973632632552571166799232762775022910858814522362438036452230290644832758646755186529087892462154300130663754957976997304797668420681427534580017649528102520904392439474838552076671136581798433938297618525435789900964914535939659986565587784370322498593127698471226601843968973729026145673555585128047841678063289157021067799529669156937877934935854251803062505295926748699322097980531518784788720160399472764279958284017677506219119218838970731180118411513566399433617639926811808195626983917834942718139983020281526693058227510016447200459903068258220510499852655450613119780748850510699710471111967524011951650111683568270938241164946118799519834594042346589071222213648311315798609683201929484310543355475457150795581956836952557655599841051932632345011602736011748100217463022325044962705644081817225201273830512775803182699791804776838532015068970433561423840079194194245642378794987340588370077742812798347794775207372445135116169723288681518871713040689579993916380814003069058291648999518426529633425724958267213751580641695158907918092180960776172845007309057856320615391149385091640456146097976394299799919571024000002114405267534796930991448375267263125372623390866378156438924857605389934810521090772970032248906380257174238968759016458756956114309210602753643359505013374527265409430202519064783914892159028854519316453009554220167511422197729229891900939937795929146763469763479234983204402477500190300432851730020584860617395618487219827205539365676803520104579466866501096492619692611306402224255432282123482625866198895036036960637364508430373071436065653675875431727452553520518099449542950841926604945610350201342365343651211767726317405516283995436056934905432545018262856391885267424849294504061064737629139125121685694327127855746422554636778545799846014355122367437657311830022674090430106322662115622479795688807685416989422458585238886113868265701502012246950861552518873477969983314383433704480104401577708141677402257419470478570569382805726362165301373392360704425715294840895948754842212283681886817570289994464806444614503576614258582800585175742019406656700122708307852664815087280542844875590581935166533583049889957183496239388454192596772644054492865962594768879814862139662723894579251061858472793308282355993515017068661319623986707117035296595602137909228717889401969029839935709489831864392624267465160698887418562585941105590749358035677701769335455023491778588425397656399346095209813226560340115952786819053804908790244271954518026540428280089922675489218588408341308908227327906724587766806939236702390920204896843182306778869398372587832695014105101024353648656072956663153252575136673306028057296067375337006753424422073154174785732914479406635644028319992129949377600103699325950852902353767681202723754677357225881476430733543855409415165022963716915485675670817865317717315149989442840319049297410710433753508233302804447768299378762977631290645606956247647870182038086446121427217513330336043473986981505239042091215157611175860671733250198517033595685119955818875887781898597192882271377204771619385173497857821635543693077666387773039516049971445802704491350409056435820419542875020797546628929227913784121516543951336280346344361247487107720728894729245403101689498980044779870240428094463607592316079532725836855916035830261415804427418819722131699256027947365123462930607139275655455928310625542964994473398230602523027442280392391720332879853858869093862575185039302477785371441001988680473506691902779387353316509636221944857146551184824834663565905114255552022994810941967361290457275391555925602946777270545559593844713634490282585959376963130934893162684317617287160925167669638808809639359399522344499801509803989518702841253825583764220499703323162638097359617895683545144868133698786860133135813369419073011641586657709872073687749833855928002092026027635465781337211186240419281789063368835587340049283041827703802106834372755724797792641490361537393600917542247610807361965223072731860683049875965325551475999057829693492320654668454431712052530440246382187883765456055774350727303048167878593520961662335306390013659464504463082217080696770179539171662528374826455061038493155102331400469593649841774163685678040766430868983574328595771437984333626566596929400376072249842561107570198250555572401902107735624320863232945322080242724521386907462866786236972498262989078508568466660609769222136677497065166429472348312015125087322997079081596513099146857628390675388003992638777129046986965352562323249937576844861264243391075604714635358028882387481721750502270544392293754734043426411242645492728967666436645723840233777506585262144498599505495502260702815934373521926988883605045146701696695245516019974445505244397076954615480181403080051208099739339140131080766399808775901476932527451888073195550779892937169828595602533245824344807692946336917559436848521056868265387638419955559495833577012177345318010666217504715679518160164121343250845482077240350932203945525501225813730387367393462901553546076441840427644330300584558189350616052087886556910163706011413279984569112901087193778108925915847939040166607324300103242249705005681524174644372862782111213931872538998733481030453897266695765389934498305935033873195579447718397074082412223998026600269249590447220259613966287638245908601349584563876479535863426662307001735568538517607437421799719340022969299392477220251014765705395466414846691321946261047117592409362829994900206074528045611549541239574604443660056566387223260770631560128120836408545997225784424283825017313977706894834800845954269032990769526517356283041012168077080044396042457533914771748880999496390932985911473546714930021982754950505258376185691728996978788218934660218883916496917223173410240723806494851425843250403520624321625193692591554127731613500061068211347416971589147937948966397671815988100528815777301977860892122470135545439035770186584810782886534890862248144835014818965444658115575772647924393410139107382326893252536695174555038469923496583843767712245254531956549112800676636636380928612660084858727347702454445136313146036526250849961955124431766854933794066662619983521179145191912932748137864208381956737304031881964604418837510048492813497539767963166263441730137268508625891861913224160657712158944793125234162235357823485174198414546612622349308374502099854351635912749511277815159413034918568667300824265653357102122209324078856847333571878451354992422877160316747678913231251566585188612881286483773169525043798073126797951498586451766721154192795264577570887177576394256725206167660008048395652765561586516708634493537245540053138788752577827764513607411673057917550188286413217395084225879032116666684987309743529027103940074493640533820804082533598785819208856668325042669044548742802869483490915773244157532880296433452512493842636594635474059471209895054469724116199636704401146871918374398482183542471140028608962702619508582659312015992147703654893951983208036924150744216983724634807356347832285052429465042458018594904516773506997761700402380171054435713332569099060600190018529443887300334615707105221395341901470510654087473534365038148930794120685886707896507296449513195294124001867182593684958421657132817460977397777407344390073194381034135987629785284650405909912098586674062643530135300334612271392785481679759168090095496444065895968852133134300811821763377363607891790702687776361777056734858173630920612789018535510954364995269953152801886988947778453738297298259822040646375476162660451814665063572985996853202432325179186755322983144799792389841417607064310827386350146878328722229113228729400721693587827320025579956635779593529891870359544595521821643235242406686986000537104331261930359062680794343222854377168116277372982479087355803307446736961518558461346231665247135586970994792280097326266130659029718597937547257406019011326891658235678157300944860984110687123626651494304006863804918423554423454643782911089864720580977727543304402396398426667034376098386492081142957182539834881876901052123480183686579447921888124345683610942046002586392516872929538388444372788194831652686184256884599870386493364317821014844417178382499187057721736779977742734963551182598383692838286683689308668935003672363081403891656391680904595349057662381744225005668121563113520561889367728275652156019668965371109109435694106785750205865476783755898565086908636711554820651844043997592011725453238646351503386821514083348607033942809474842964630259694137140627735128920936332932124620451300142609581955832054179726590986976473563440469255907975177368779558366872995749177904984775378602405307898477503881906302465107315403403967398420058823082342998181000626186895137316896859098474283826303686193249935704856023615858389512824774493245303712878917167514768923660464138027771745431706013987836759364428778554621960295064690862274109944468543524893256823504527158102004240254848708793000322052265243151134667752667731425735067730514454893373877138882221454170057109391002414761330603815010819782037980305678857818511351333604386201344941121839335054111002970743291010871957218358587179385331824679369294445126803279248544786559840035719626323986651385596703221851851952055417324634839850502890549261832905617293386331944271209275762818900778431871195887956136307399153518787804935243959101913280989655701733877044120826351401220074350909906241051072580846204301284304834003550310193956532000176679924856220308389378385747574608406590421188616746334862793271950098935794061400337728598807784106561055575237568757895642717138828195520509906346951767966672894611981922410619321679385986887070551172355070865398483339519050764469583862217304313946090477974856426329590526763900933390233389681405096978216737820541818354293658330703731779206360215870948335253823361161044464137184916945647979629792817666995473750142821537161684550765107235913097797492958547288780169552959738226725814261873524997486024659735088575544247313611512589426292242110359990181167915557221024365595350121642738928095861466836241356409338655252468543666784429867909289936696803242877817794389216606268320114862464753160014258974999043227643379515821469776529740008157770163429824930321356296091237117911527606021475398770929367292351911385625188648126743235341945000555310280595852645375292160468745786604507902730149198436700776640172911021085246704671904703067981047155855065378658426200538773714134106196073494626994978316545715299841155478678734937739535323886500116226424249677978152065025952298066998098682403772290867219907142171148573661517326696420385302762298802588906760330755727293568410890735498390016259497722799143268489958711657296893024191717629194875122302890926504658856700602984554642455832848751787139381065042825366129286157802826986701622077886826388534535859441751865692415366027783141877854141676779824140510277423247357987381090879291263269095382002060783953380147606915525371703115522775911897290798216641343091983518540135284702031292181578371997874397643962858410400390001264494503007470345228053808952796676717296039703241538783130370440466428689345356217631318291194165188467865593791374790655328456929633461763067502377040397511914728869255214064239465409948887978238800126345536402563401921640877111023491429807986073015689013446152476239876592206052710042456407746394751284390964252482341315913522514425180197198370544978105919841869084540821428658510604547965475144720261223508923410909576174886907954530340498835955389210632417650511239528250073225903864362777359355089793968895501558481200244943535589732344836773744315830185441528236788963207957452237910699983876274519539450272658978615856847901628700241447930422040538506546444761735627055801408608740592843340245108502941987515576753743140617834896411183102717878254674264729637511210210858435711691323585153514115683517279045302583121339262058284040853030328625293298616250408774457134943079122528759472124209970266047603391936195475200008233591071914672425309344140871285583590053427470149614672151931073301418208461061104589031980907223639479063706857111783561303361702865177727813274986206496804168329838155064682380712073368952725608690414986816810367810038739945060378852350580471772490641089620353389155895548229357254099648552024989327851818110562436621698425977471213210762687613090771550324789959576426115587062369141303736816076705618953498524151744315849781156021344198481321868568385304767045281827045027781431928417110245466545855781470096399841637982422272839289802595529889916377265744868701571828177520952007704969130431792626701242430387169874286556422425594559600005429182071162301279492569952784304200106930325239149088890432213818351363372803114443664064823933333458136704179155078058859899762759027848078479224177292544676685966695043869051822197302270897206654296687486251494145824402587128016377083616260310748723190379319377888740885669151049869660717308737865609308723112701885064958301282985299094269866128819938792337398222135947201135547523424611910769322067282850575459634070715310554805894097177591195197521009889313322654767691465057585402431269853216752287108498149606497352129764525648705102799476215859628534574948433275128175412780142020481492511554989233250325899098438911003605046851704881023179661352322900174015744842586372150623344578267565662258449809443403986939905266703909225600800893405727124127464085382726875827046306393689612966311010307490883294860995904082053046748333467357194467279193421124003475880373919497187104387621924351567671347332424784753638506389534640166086160737050409346658461442085550941280352334573469640344454055822677177473381902614658759086161858000476110616328589699738895500893970632557639402417214567958515197129290731423105195953700276374496496864687841270461920637275483448782918814882399442144668720379730209010767215900512907344729017557909432555086339616516441088612916527067244711557104357450345810693970791331391711812313109549435948577492537301809377269303344846647903209806821778980576439108685347519250315008412982386557354160962637847631408933175408440654212637913527571391472925410580967860625323647625596698055672689534075750575637226592232467197680924070440091777527015385554025719073215908312830006506463893240733197794516418535225243724089243531691747253974374238815118405245390642734432650034507219081812478332766396645297284482696287032326316744847239177830445502609603116502155604297575879049729471897601524269677502294466531084763397496237848494736495871302913713678524910768920815920467788364594761775761781988121327500494362964513888566246010101965645960306524140695482775041410564055913006917570810019226049223550152551224685033386307085244914053349994898078542396551531213928194172171645317651047237886726665624056221755530543214543089781186223038565008661187287933277018901673558762931064492607950229704543631672070686585368752454107467456656341632279997064327087146997421768151153008716325448771132980048290793387747592789838143974717802813838259820678852579287882884230732865946415524452903661682876962871816770930460426554914491683555245319730559935475983186043010096163173468569911070991936296066471008991485008655105646137327324028405679461124172069133217372413768520494084333590568244520367961865660293533004842313476016322074603639763262972668851683730920010509749251620792271269909546123474361240684598567437165548715491625428833746318524126849416567792890586110447375390201171603489652267741414134209646212496608197128057974626208948259016274835853613611829169476113036574419896200040739236580491514329120545618703102729969993591208388172655059227736084799189784424141207385569982128887609665182816907251508364945989811690578979325311595729577964112209098052635280459612607583495538340343998524662028281889297143175628405602034714562425258496176252279402483574356089581671730264704771516341194206300929261768037132077064469561226972906240516495223976525937849781531425548661876122206188640740540228586872990885413754435623816219274018606621804197010175419114309910467993413330929985799155806886176994624537382850041834545917400047601057984473297663902226921256251659636196587535946749963734589862392269901007794538828965435164545992814330883970109373398542109192772872362284304702735746248748921485525466311603462154099125386157203780212078842042952577037040304004417263779488452209425176043526331700354193278798027257502965077596561418084010881541495751338730984921688306316990483718898936683941650298013944983908836669021396405301188717711934453023934972338757393827500603148267945769124146826658517864989892023073660283059245943227210799140863061834985308595795168487940752038443541078669409195564540906538215271843217706561870335653836595912161885653817325718540643977682419967964730800271140216229574962397402427832763346768275876796873699501835580531610150031347923662103105893762784965662150385146531332173894193917958147387576055939965385926392767159492578068790705472552984758144563469754999293439191184914587833980455885696548676988004261023083659818622864345676451200375820580059758774454119009050468661467166033731444199712197573473205900179782113461870527699610754608968126693036376505298529063537985080593866034402956605684449177256931677274461739423332133735202800312396362116403803029147522641649769329598450988180669859444287536220163644406500864233463907220801094650871292840415829266896812315031948432115444167497539636947821604144795716115510160916377052765890533092336523481398079130699592354473930527178321025813152400891908162957533912842489289020165944110954795805931369605009587515701661077083435044884278345658470472324333536909105575007040113858443249967783464297954054319905898240857990525199753834979468356006818995951769399856803647806425404501233380610471738305607025385735798382089706603469322406546162157900324824915228090646992023486485593829832813304907407688526367482787747812459960445706576146202425991242397118392194583196236914244061694250348412063078539058484121298193952147253099715379931070713866920688638178585555332741649862419914911784670792227883299720371602248227047846880798001766582735285668496987291665776147055768634686814214692529395742604933537780451970135942404752113137818841939706238052594064432328356696785936731767338282612334608365175416995023227755372243058428563446282897247095897790345399067146227973741245783932611177257734976283279362357142227619385138185291265389200486031528793766270063325872340018954000810235078996542521599944042003298258007352136987532621337969300025380771623096519567062332394108083031726613649372857781332252048243206740319885994146153370893542899395497203751871156504834598928000352209564836254413068947906024696475863234557662420807397413078754353416830101036978914496323375761984571653706050579344738189390539851268698186156878846600887870514729998675917674169260571215342573490199928877921771079290168708671883300457065720793530609456205286460189789103163229859541720056489253073523762430163259586053793935848447397251744619599309664867061653119637747229450213654457900385038476742023324704433473551138444673914593143223918858402232474658040889482563071817334556259645815995177724200173595996530795319517865631654910740135158842294243187071349827777390043848227803795904788223296937977959677522026236693823386629741356231068686479455681920679360189207842278832565569033076862800164928202786771670778704384617057031848072035151355240793923048436445621930774665503140817988494139152502252807600193435159341210163455799832565652745485664548506746148529287201939794353398606582139932648201070723261172493325253455612116573657560258703735103864858113770059840881605850591971757282874603641897711775172717658565280356373530791726240397114191822496953683498635124694641077092175916733533785606267891219852959271605188225695073729438486993964380133816021004494282594843354571836633487612034862159044517121634506254204060525885938407305921900545057205474204870333960150499799378754405381735225086573517787264430251927966194154046504819977891896772113722358061812898416010897616848363244316382120163636898705617883225140073581916874005753274136068474982684184475835894782151640804653388172244155453357956202657198451953486170597216738114792602936527415309530348522581105191017817253943118584762240933180289485245541375400338596639051634125275722339027163740116062662959350344306210922918189081646599942607064093590593128510059239556351183157863578055962298213099533889663233769635619847885412776702448875395613764203478661087250363202037355120786056794036599230347908274887339727779475097582290330449221927765725446231008105662687043241499767176575230538360294122256406589825876349507839918926585714226570411815412674987339893293111331608129885346131323659615727404747008469001229718507563475073611526145550655415450762577634118132615849536698674425039501860466083197507029519812152846752302352163539371930919426041053194118355455285061337948121207419907574811436412183305581898884271685753063265243005222809323387766826820393188205439359354231343376872184890444061790747278824974070598445094148446591989812646680219801381891692469988899474922642360795159267906657056040807659898219031059794100440654377867085991178298251273889737410109869767299502383363721536011162837589744000758807622294198828004112429752820336209687788485501095961020799833615750203118730051903864107976467460803441079120389073833367271831114031091847863870777708718036628445347229928807078127193206971151183481069274393241200155354635214986999031756201086762549924317876446975878662678848150788148574851861358360122908193933437885928770932299247284182321651135667025921628318183349527426094041816677277524217254802052963151058720594594508841144496431219888187752601519123036364464725548352498435327522613541918340432471991997063898388256481564806602729251286832763797698533324929860421336005610625149967844528746701363590678590142752581548071165409093890482097037552950881457142384413409646088444694548122987190935120537357544632855419172525835312808354402503497530443353626089279821143427307350712408957709520223986949341549062460405195379361615559294996126247084416744346452809072819989917004877484295868355220128468724377248363381443750462476859502959138065548514473858009408284663783592208804136571383376064522211015152365820081452841044510515091605641295693564416245875798911139586376926434416436485443923180597232690370572852016298240717442391105990315604707570065902563588344894488350103421814595253244158308348937764367676130754329398333786991213749305945090425633639192803741217087713503445497699224772324840516571733880073350054911794122973811253290435321037036015876416696897269087924886591231594897358330143060377647632395172792472674974838317439627347205117828928413775456901139440272870055016161411959113939335826285161648992867987331572993461343370168344696894792406985376363339293115176225630999374302184825949499354028936484508579639144392529886482838242736853498988504957319156991627265466127671828552599899359495270810622813665960416042633152744960578909671678663388725739947835139891679140638878514205926927142544232303780004255830334291607815282565355574047169971041967535667453962764357478854260631991978522499329436450612822536569235865370763949912980658329542391781871123003631889395915127157292009011478195021732743755433330166979748941937508141871112301989484526541333521756504354461053114394383496207575918618457104087931736196845965193525432039836828454992929090247268667406759397439960470479000369832052581106726069613996132351278230909837207250058300661708605212948964663515818362017315844969738335521802423884193086876227104032252676327153646541608996562796594529389018584193115539215007257506279976445978173208695555487666594375564642372317243879598410354050113680153292402661431287884838088517638471991046670044737162566571524135062657954232548948026633193041980102121477306265952345178390288983297848939739738368551703939381683781501914557778046591867666494725197059105562648371151856461679102737253572181798445559756343569817152764538551609898919997717957125496785185931447367838018202232392445703271388299874922184360163508631372106986917943210568968082162305860235973154218404486130050462732915734260614466038128398371383266235976187469799190371621135785903876344821169295920019576116434532221798926080139039916041523658943827545180496755438812019664817917046596854047298487088093999195290834633132669842210086365758317069347526740385362054374725522755150257651820683625352576151533442443844955686950351063553319521118024950285721870780313255471218015072980329208241370220440157823691045391988530702587533099642232802857576987681011730357984088578163286079824410547091044628962942402159667137232749930514945907201994751357975114647948474596061820485527453572983928837441107419915350434962167076520267752364273186831364552742659738280184689861640359181030998648753659228746866653892190824301782979524717708778503520236190308545871978400649397784988732503768308397349348850644603589910931708437235345032457238500775873614392543965206542959455533948420925421119542632078280226735309402584867960928635790247951859466274386046153084428483163970468237687125533429703040333679228841775983093348340554132774631270541575769855140186601945523751519627328919728129166749835787817178389518782610129243049336927629536283093396783822978379586706459844266174378713280903718910258625434509677203649874390292280141941221534686823066815581943020110318754124635363703999656697318413521362242991291173244178951284351747727024144404664196123155919438046472993035450406969604271429333171240600807718653087779024952050500955693216809612245471019173062619616044298376199847589253425033119597895714492902675761297915516884412618512869405472727699410945514970280196562064069040667200831837318887474353439916070837103510873184396997966431675222330456236692874280592869124810326564579764322344595941070163484514142095336273888951415966608276049890652611999846043373909752991569601339200562278670068530206918082879855433205547710924356598915324825033165018734330407575374376678949276999828078979158784798713724307862941856493353162000091960374643238049640949964009611379572817170772220914723788254236274137436417793740960172348662944608771036120172581031960513327526330177161742615839063455835717668419440224763097387005790216020493504046602492749612466795573166070209241959370626618157098986789030956306131026339953853338527308187910124667489833768240592622814924691976950495951241713727228095732663043964625847017430532508099585705972402347898631193415341834509765935243117876112712124380004108116751179401657036987287465162838767927053226533905632485583211748420903948620543843717906576067203456913819916421141291713080982413923428453517180225952187597733595295784116129711197372419269737063894765468093431376078516931374985700975105446066074191467561013044862556753255510517086998035090639833655082719731845601110290873050843235463033327693611023022851812611700294266825291189686320550852683313717603792333792576072670250305908355573574260737682407968435768776093104904748912037669240886841500283433013210567038387511037729360790265005752698538828961631274288417388938978415146706121771666533446647905221368203615709485011265963587793292469826661000712659127644138240739874786450726656149932379035552098650995970947260822342743064698468750328526384167216867356784514316555661786919624407657950115011516942063002478903427212523484016276349165323592735763176730884818019468123925880355342440540040953766274464416627222574795344192131682044954920856290217797511748360419129956728743299928696877286920479021832619422624691357448357680251062365868569141923677897089687335440675168338918669753777314120862609941299534935510016861641881075413368411582531458136408272698259584638127496734933198755028239669100144023725734927508171921868348928820775429215034848468667194368376576983173599855802062834523277442025774661420314390630845180557471542225222715237864233703939668172259630249246687068359268047735220105838918593082092606231387464206217711210283964069300265759396784150013969600826661209496538177219251236173018961711627053488312020309140224519102306184110237186160348235247496659874907855555609506154085248223128439617353592684112364538022979911365814331822594173450925238462010139065605096706093743651530970192661341123165698705801737278449068232618905534069803012594027565369486707307523290802160661358784432397681088914713038176311720557335090066673393229614125818317373159955231404999103523048850884956085759070245832034160438352608840393246492125089880705632728893432226404132615187167545388696613838524402522554033337061696024912555994392042108904382317732578581112686177033267483821459226937040139741640079350195360369804454724311512439801399798479327434293252027124619461944766457401501956879012398502518311052000637733885650474938296130318324525129377477153698841746075270859537947167863421306327714652161850364885165517797590455184743359420304362360685956369878443448896358950938438245045372723414187280859890218287024672189651889348750935515215409040440884252768137127528331321456569203344557964190677001446015041480965975516559131499442804651542136068050060349828984589547411145524661249722700820262177544252317968000910905657604078840724663597459331612847663029337786867089503191529851271863218268457937670809050251938393937260151993182651966665742651669928713597443674056330917192043349453484058492452349469289019871940655694890363331643602678787041246629736549322582926225553119154933866503329595505864361207744385155981021130997344130135013108199554339892045247144432989669522173148015159454612266272214856026881893042687864107425889548594145277192934048444401414693498327844151934682631329655904310723231447682854096502138549542943290216269912499615190217074521976016605200149226083203387824104729519600012336461971444497535403731128390942683671516553546863014963964609253795266867117102206102925951721519197565133822234802317073561507792805779485341463414033719117786826406293598857335664100671471531480465710998722440943029777617076241553067727750931492817784074455966793546487613724355716908182595776522149236659883340908465717619911250876277904302860384863555272326146095388258695362940760806789087552668198952328279607443878791666110867224234848837914913771692084603598219343482824714595459007412936563952794828451769802858978694090367096922887918070280034665549452658210135910536938269702543606885960718550999090021493795664074606959687022577718086839043876749813879663592141297976314686637743091630336150899163563432578461686189262432180402234536743897352730259497557289850071986222957549698956161976912398619216648783253490423583311975782751388648128749805970692438159782170088784195051208452927373893993514101632700794175087034494882349858297058631753273844079643949506702107408748356390851660053374734995880968951928805993519039156399708395278578032554017310759952022395289638088350895361681888248967193416613902371726626825173777861229984820553836871086585017970436864256916086464951117507392370974691264178405945121041092578371846822308857538747161940151006732318023731229271684460047746392682125905953051875309372262140029331346548805002236838497605172383835081819826644403469624010159151238024320812271321850857494285426437430720637890451363774867836677147579607260101536894442771556503804784937783970642153122509626230817139285707092652309805363838337444995798405361954060459794807861050343832745129339802910152866750879156480910717866684794681573467113214270261304557753737934337467384364647077319688516444112932138891349322499689913391659438136881476886544521883308416825541024844622506652647937814065330485036337477152227567450119568766226157376849808990808662102942126619153351420585564869419311514271833912005362345837570676388946149286662008954029316032836170662879320058985786951728655351207896599349888991234080300131779081335936166785144436529781136459794674387802290219564953793341466288725536430389652962954351996470831378065751388145903957591130794129008273348749571412336416135375388847090241027478706782066321426954119890110004108306591057279785272492868906143380498014529429710586789019406438131406183100082916843092575027580061265766313640765299329588387677091125261263179374518050951735636162522531018203931400923096840655576009524713791919155325992036435078785560986344509957848463415000946985426439465635223083219325853729991277495438326795495533558498365683577792173100681778811326573489031389806932143520826360326422936612133035949363963949445139385392675542438730239876866500877007633692958529118468839127017021306464209983159116459571284145965552623708208471654713257400585615760910588455760882306985357529167079911642299567475930667315188525165640445024551717537046643519916845687926202421709917029221956096426592805959238172918396958949701293274819131470919718451292138141588215499939953358211109862114844587022698435301642524959529214065774449990797977470160153940549372789798480592766920665413560590311189040627189243866204956596452724654030166687409344748130759002332084894675955395509087080108361885664365441666194020549422791442621318446044910470371211158615236036585780579311785899657742584126727848833064319193964135535267827142073595553284856861233479635759054187852611954773990202320277136329714630686336570908741179690184672297473319515378066561652056966775253545641741959127995408273000265659953253756020427041319280971380726194723232690328352094154617497561727337605799445884298127697505507892317457351210667383444408611250740971094877483016043835632230773110301429709878265972681061654415817814087625672573042968145698842584632918731303988104653260571704964909396376242706779504286566506462846761850424469909301359175383771240685635652865647378641517829849036738310896219134961681989916866397025367776691787544097017338268684704120839075522224906074032814469169899673450774124828573913165343917769921891978567815849589950600877436706924782258367753915164177425349165346083233239245289827200753043654637429637445926136248654316847670776080445635862458040953232876344975138172467849336725915218644317689238296435577430105379756801789686366105532078889798319162053546752704679120238937576773956634068242420039603327836129365566785228410169399050893598513880055358184650279055763236610667059772892695027563226154490582171521033260271577490398518695172362763018124217701331452655190278145883925604569640612193713864959029511527625251954411510174887767347236633809043162715940946045477693343670979051234607646102060325164688691772974968675196835591941867189871517795456805734274225228404118216254638026449713180970644000739462284841696104742551625131169047526848554486282697481871025192096952511939133066813661063181238297567770436627280771356210771631988548297800437564254405062179334276607663609885314442583875546009191100599788135453944516207073943457722684087440145636993631681460423013678082428483287570060879100533619164995233491416969632971851607803684420042107408653044283957194905516567517576600391393381843847111739861655743011014653762192449174369332726940783313153727533442111723871489843077510832109561073999687962443969933549793706070345889800932078609717079434757963451883568709847545709303677488849534093612168891182804403926419462339743710696470215059740056731202027023299206306986570803839172891926461494222048032715358008122168620489682723791579823002594279282527952902863846478691618481367041005052498290516948489192538321849505240611744918609659023623927409808434225083485408064615817920564075642842809339505542807869831344617658660174371768734887195187536824597232890504087090387170932331211260692303373792908291459035438592537168538451255494040430013971186881880089410685103041687703891459183690106056218236822624618720333382783066504081635648392022297821000127320245521844704731944953316714543515374014959414453035980615229891506818273577281331860624081915455238438224512943795871494943888348090643785824565234557490147494702393171368761779558066658112740717172674511267313941123934540526410809191851500641349619865844688039536879620036460547732991556977471739863801249700430845070562861448571826396858487292640378584099513819523674112705407368588199347718578019474389659559866634887756079693809495973209841269602399638718124335052809049156171473571787795829906711579795624030356710130288826009593804974435891901149187126473734791102096448822116864472076104121849126892489354560529233506301524624316709625704220966536784569537625971294134873114722042050162041239186166597646612434134190391874471089420408823230303951569370067611956603301907459635102119703185659854487004450815270818984876540128130827405873473342053735356059599816371415280267484716986982243402164318098213889820212782106721469771394481261787570094048466690102959746187448933054704301717817830250418774817789716936225322498674239311344862893067777927085182416412175953471410487385950972543247351795850293100402741373042112155892633613602100606060068441821202178482944257388175614839044266933557206681113339955121510686705814127327221597971879794897287045956131332958861236938398744315596923402636642765716292845740064961417844937610561438933218317185826952072790898294973451541123857883270037383447062135398828745844258910504191894152168469288006885321552600717813845590051669963389550986998331825855961224394720255441793463560384472006941011371433625298528259273201646457136403603453822378592831315746052121309423984951750113374733694762327189279091717868069603590928127633065397766470209400271939169805377381674410487913509575898227973486205842847094777339568657196693818277649532951440567746193306610641375925112241970197255022812557007338214776607850625707460586673561511309343143071777363651389768447602737662874531996464981781612713073467466913681443928581228377613904802833110851151074679608066743041917891339948669220409085430155769614419027732071461754161481616285213293675976241522179911316753448234774951288744052960535485461159042726514598359923062337104608500949422044861793653435779264831803120976236984464470368296027471610827020427187453209885267654438074187064507953364648245088589745159512368438879644764891494190807911402727402456814952674080336292193136742645342202830497992306560070390639023111801067491867302016770875982541421400791274078824487511949255007153897834174636903639610456410923797713312965293106202589588129163064132780775913506285023070277010559486548765438928985427760334829814873808939575086271943714119476286519685877563284799917167797084427112138950960970096182931265520034055192401291145375473299131737713000926605466455419292547246934898082501772019845441052091580077900111642907471900289643188270378657548190301759740225881845873772910357592723940363176210847167552964481284484350497528083556716514860664559541702766976817843996473045886656602680369198464375145186760743811453360930823330865045257026067638360226532848067850805542800362610955861617222502415191326354436717601235128932867676274078476773610931970830199469174839283078859633681826237134725597285914868314460368715492343133659343677360936244771721623056837574845387567891102628466179368558876982442644994973458055507020946639148383174430939951061794166368185849546249481174144843897965055481807210436983343346980380637552323482697894327711253405656814971057657744186506849130812855240763007636989479403283781331304505456798322436960117093030475250397834171149474981724012060469327127146142573708438782427349137178883868251238794877348270403138532137395124515470681341321547183866960680344657041352573368210698568922756458020974900847686693909132912576963514943375939643017664004394866604032415468708537771811978229167822817294539061435193471655567810455831169749540213716009768318699425153825009816941965403818281215974727784192934369270135148489186231451591491499087616733181412229054915573539744446589976002357249863137666778084230498673226578808462188074527141854012064373658016944967440414684748038428761804243752119067399803871413257129448951842489820148410521711266286935323607420867464184959679538237900162055361182504943183242820165342135368524588620548538698854888262328281419106195556296567748976784942787837240394712528260144655401627572935011994941861459030275214792859323460152541819032169542683811472348073778768911796720764666554196692623487187727800621464323388065627432771851127612569387614174734553043832018171346818906940528754789231085793845508314688015166855955042021757880909049007424441220032642932668076849250148409932914508045305982681182164272835136686827860973187861072829333385897926461082502435224910096052654615136463079989044656374647875887668972659990430022824468329485583839123759217680891390496428376111755133169929139268580689412253168786677484429667753227221765242292636255402876502643802530211604217613805431166371929980971268165212228897697020659790723028882618993368797761317417776811615810744253134369011849305172938116872379580100470815866388700812456429522105322816673800779484009237217350054377088548939554464087819683537583552653496679913095086801166525474426075534624967687840422122317042949719993496180757263624708817928530565615228080193604701747208317159410241536494948962804509354617610001434222509343671178143125923242711312837904057024729202518683183491558107164292820787603306868698952160750476692750124463863073917869457931883637684184576238553403105080392144055778665426929978606675445424500693323055598558318889883679060161305633056026144659903411156686780814343953488203249767097319080426461063320655240002320197192604262010669951712461546612836506735152248925872116105595520206378236519525181791150725805552615422862049220857326225806713079302147505628329451143350078796054328417910874675981746439027577240270745152523153135962454492149989335149534840604943452859997579491975092431123071741497103989985719518016076981364837390790404957030248109493297677371372964176904557847796092761067411296039161716061237603879428814236636310274958945444848964322367648520605488803663562051685150402947950740030760048862550637404779494918366344762839743108469168092164535400480224012977432276519687880619324063921839370839476191651351484160956768469447727025595650774594968048604678809754646682092377687208303721965054738316955468875847459572041442438709883235284189478695599886652319221477321196722680667623948042984761953513882199743950820839078970359510217300171648971186827701948599602832107857891487684019064006148817761394814351262545077777021764104755708268921046891338746791204611655986995970695689776347917949213963536996953824953627558741104581521501783762333408634766684370181671150524290332238876645673269782394751132707264397883223821900090999472364460732632614456459161865543916656290212356923039499577954910474949654204212667001465680955014585729406443983346835738682238427288168463073587174642712385298452866892539960405896021538205996715917400909116117417878036563701347727627329819371680761920223965639766180739947599577094748278029633309364631694947790230680547426908061373367787618301393727006312891920087772621020703972563652434227126514193152457872712002633894796655960379565505791283131945513329090334497001663763044916688429799482931634230082449220471831976518149568236705459355192171833238571149374091221694376074306428044714478049926209252708666385007535273068450881625079926554788380742438608909880859159636484878212538423114553991420152912066045412019869078679316012361201089799254554917275007655036242734541822550464451006464517949189846202178516111772745357251043928970576265040412604137289854801949641128592003177725737341753127200011027393758681080129758671754937905679197197295204043738603837681741387382686782522699535297605450006675030711007827515907993138521448520365968319336436032280934741036453410253577888902962930563601651857039259113712488886731097643300919078729270744639986740211355186244988962560621034615636176835343436099620217743742215114212953791170706426368229059666360325233770993429033992205012286948651245406287101745437768601361630856633255277492441723298192264190040631965094201343210695259845354719629959839392556852989780732632870756195492511278940479124912276469282950310226226255394296382489919313209197386395271467105504255388982221074220491330082686569166864215446473833169702144111463984868173884646242824300514288577382084806765708995113551711500113987802672853713542753363759259009130248460029512894290214242724967392715594898171199084730255388187611542213517796976254653427597626474545505570268965015561233381597037646354425528815141718628321541175097482203051745332890934667206446636925477531174277506938309465757355924745318167111807433752417834496233692387384427838094547659437404901533180649767392385785436122761588088877261694769978837220896353650473069558760104383006880226728948746290923377140504508114409521386621278401282477273503146962082341773950197448870171287291305203798913425411564473074789622029625333143391168738033182403476112758459471754586869903366437589723857861682203026392743330877309552418035636860683024810573211068664064016622144307756243000696287998661052467971566486633336542411850188776755792452783398983976747638750425525534227572370360643674548535297094393206760957084695391243946401817245741912919888664084093574383141675755226574830889531108837941378130545013583718984395014983866959878471731876076859582756496804476821963661613216881991811434506357047633509713224814846383115670799900244793448801871903767431986697052874530311961438960228502412587060927304041021960358328654380814760996193096449209999644617701622230423749739906873145380894537924650917046046260773590177265471217044609171062288388190755756257765977697215331816358678727365126375945987444097573958437601411046608122035955715183725286490005219722052532234627994123057041806949862147855324170290248632629974245577526103704480297541239005562359492490302207344815683188471209709890106087636200828362627271559294888184216017481959877726784145743677272639243543382955979941427127570317806205344950534889923590436091097382162318449514543647719344622531825015664248839758830549461371883481476547924557575390175830482293951566121643912052021300599050528297601243590426460333537578545291507323886749011142866037926089585142353597005329198678123334953586062718593330745431552616451735293785369875701616545118581405277393361702187535302675209007541269700871132558156035504638796985693464815092997888443297779598333051783574676376405193209886313689265128037173028631006816961526723359411735014285328635389994900954178631620023315971374149057992958752306472500123256115421659596990055156654605502490297483030919437743164830872340943823720535359542164669356637483236845027925493814204750869413594276087277530437839989395737338613614817895352129159381451996351810051166861866669182789646118820702743646190426542075430255181962438095018687568077185045495144276466676944359655483099131798789776013561526045400911804864474534249988017838204206257410027625775319484583727983431275486832577034109867000822204752630728412375812899394107205388807455696284135265919562054665226526565719555296932885386214997477104622938726949920355821031022878000446307986995077294119596200806750341231251107965217518905307059404201681160014803635322586373970219242272776724036831785473974090270550001924044155694503063411260308117431509940686313253948641636548736253639180581206253008998541056788289729722748982596520239076112560517773641840606650181845400275137613530639781908847659691319024814403735163252064744951014302849833765821414500816534974266350981710009639398102947695785130408496691909892521807000878537678175806524876935294961340786520434403965242037832450377673767015692626022408042780631735872633633133101842264545258035658415680391003641429155966949240026288375187675771457197888447937991701592812966682167219099138405636186721714955685103565161620860792127851530234545318753802203622356812549124007645767771424055553617546081898433556132143536060760159963692086491950460562768344639823446654513712792166625333015538071325451672449619015050335783803909851328226852374038623355748078446066399604005224763409650176871485047075131609392982389355849923310141890962972023305739516321880543932929230556533308144869850173825209845199023216523065866442272312355773323870407921443017784742394213770341734016013329883572611105383563346584075617296353113458575638676576964182168688693404586353028578316716068203345593913107495473721589167443960407271611753093109201333861977879355381571362311477396893944400221964830087663397660460103305605848218623530256911444452984582896959892436382547223006209668470547050262314430669261717326831521198370438946902346234571750993659080395818581257294828795454165000566916669056048172731782736526331517974004442192786565208115632636787937554548876476335691067489945065260789303671755686879467835937018664224895313025165703094311018741624809772854397652842161808298320142634845566768313824890379798724376856538936144674232640109756110284030665975649835325781304098086034105185975484937197470337542946423012547133879445527406734224728871060640562108769506299541537127561429750639083132586334893018061264921694922054868442916880659465128592283227808878735561012258526284929156249995969906443970517045171833827726161707550523426616241780211264754450937596510525655268205000811386274613841346639077143236030306637886697415207793295221206878653879678643414103751801693919660405774242169262350908652698581580391696000894472062987598423251618081866630634409339564363429422705194341870558594652237159789813829143958047386721520634302434754310655907595621440706447417553828783992566686781893619247014100256239587831882753588592963164231200597347479057630959790772069057356375532386778394829345494218102427808696940473593692031412132293042577059140852830540831167703333910197130506582912266879714035057857174416130658775262874262612925316729056437682569205167569212766315730890162539273019557408657263150814206910692512619826539707555559955868687157751797268295563562548169393980366774285299542713068266182431363244344968180391666866088606243115974549663989914270550104354496894919983244507044466766279042507749675467443597763612372747279453012961707132720559866704519253908967419949734870221313334629430912717725494875833855717992663400553130406932677129799678505758798295980952807453478255156449487957685484600701035872263812602162047487060387841175181577500424682979633882149164507273116580793671114157407059290827827434149912725081322003570627599403618327565354691452864910429370772580917537794440399775427762217177805072953886244751813633831325055454964677823074593230632821057923978236828609830154111048035960112291885130974978407447807416336684699658732230807601919380608654354804287575938364277347753877136265423014151044508380046376209513464402746415352701985260990444950861530302773109045112454174183499589026885237280319094410907281758490251705962392539025127470862164836522008861628441326852122127825882342488525767466754989217627578651300587848342647411651771942058122663166666022475086845628328381172981398037835902111072396061681480614815779892801049326927129403052624318282145524721686940696930666703934333204015124642576009084540720934287253760088397512884964762663746321280186273649960992872188195980454058681445717410504707673289745526555699830705855559398685557136395179117857417145294485576042674774415774384837532686921069596077520240458266937211797480738815721183884477231221093989779844395247081606883698728713575878330372829790408422052505901156432144135095067537625182731971106534246882136202132903925379683334512516987811756084945688917242064117275575385284540098502917583396351447686175048710747006252495145580518116889069328380445417959669830235001343797209870731671527754237696817638523876047640867404190353966311706169517901305192422365946707552695538646294616239738568680887098694346189134170426442809834540759597086659640414103350573683874506850593866444511278878414573501144516960729054319415773642150634467336052146542251249983238681624767357273488461067989655461609530920439364760412002787620834592113804011205615572449295446650017109927699689659461148648645448855124053690040853985800342794262113769427941608498209648812952592625761025749553604075375518693510358436978650250645890844390071273430927953618944838574750567850200887615601490787476614986917231314954899365260028816324700456246340143970092300498461839791752820821123768177219467270340035598087613359538456321836800977714819631747009265565427345943457663739010403555534041709357939292357262017812990423177213658899111738424441993570504264427045911222673015502167878818420626691048234650481821104694231487466930649957248495599436888694141516261168567130364089377252727415938178453170908894088880471013667227346633369869602027979413356847580571838770881142276130035313649585010173482577836330411014090315422377054801363369849799730197284358016499061888812697496006594747069345883787357413766016141372515490056262147098682081069286994629587789273637682141540880114496656053984325170678041367081374150006401808317312093117844465097338263907959376821985217497252121249310202411424899376688992218190481913209441461184179080404480909237769129699642951080339329568763031430682391346789904954502793892820692676597442135025745975496366959168553131861467829477439915381426357730359736381204801042952731667545557828751661887873262567138451404621971829892271206547497956895225756700595047203561985419708298373615267132441217801225498180960287206438118278041265051942879220688154530011439108710176707432159057496840309907877946860254641695182867545628006294864156514369461276155062328069251199528676531366966665862551935438055952468087588905260177962176283168137353863067761435529702728223796474581579705616609399655763233394996771227522838792770849906685122373266386565307333501472793338103895254550726586426882885266162673385148305100627068448158764001203519754375591661774519316668635070799566944418525650156587511882499344626244765079974126693127497093422239218707205224263964251110447711310510758786192607223085490082958002603815061456965573962959089876578803873970358102958507192134020299968534875903477821865267723136962509529673051221191234327697647800716766330375621329383741292066441146126463432491684919938445549264763545377111414586286031284703711182926433562448780699291885850033559035983900149786212540211795147062255188272231128902159624979191503904047008095461622552189111536570018069533042704600523543891535301530071203796455957978341263346860302809952120726621319110873679255638701796401428340306137330620778305785722274989969471990804614809984204792874918969600046522072653521760894579839260894316762015085223773505439957918249258108913869210506310612859487886397190642144907152278121110468938007955503871707342615012576120700316969357989969581531462901422009587829747029595500584440372553719052337817061729780543408511043166611291140569396609053823253004851276183956107675576100611887809483356842872772646728562124573281405728301632435697721016306659174292539570241210362330338120203605225052115707770798572359846763969277603389063986146719745276702549132850841330647381465708809898259622710911688107750232147606755471327078292497112323318344157338294607116769762473889988340852869145949432010177953352573152923740927161191192459982359960735926628626513123085860689988020031112660189694362717494300776990177408981564816616502325850079850709226043630096851804206295279644739482860790228793573719818506523711629469721467430240270839129187467826709516535688871855325781861959894202562409668804411191773508717117960614996444665118512212276768904446316062417877088718184510858776864373485766727323959038329966010525812667981989633959725039203567792349127018524346503119564456563713567160270294282550410064349125168506290475948377586425310616202289249669985972363051042498135651024617243096691535645186991966094641285989677699727602346345854414590636356137918344699402324948358818959262866429649566423985493913675091701034388568700788622707890802621358499650287393177895278438117114327032244956919013077395689206116327348552998971735408663276806673225795303601548708695055306586188841347922833795306114023115466210940104944603643358365528588498347716377864314895425653277227248919474955352524478302896406559078947708996599388762856973056369173967700818854913478272515747718984928300981417052421388430296539907965651897021707257155163647178572165165424659283810932085703504680109315656634645849198383784961455559715414946485203447929835786820533059835502257249953633597737350805007310879510062542738269422884313880000953799235658563732492995968469503080791252922609564537468032602037697148494197096306450726919617989095942106617286807915019301776763906178892660546369755199638128320422034937886556305385780770003254428623140266900774590598185177556437548724086098328989102280304116807765445535161281612784715673329613814387596937441257018483589042567236875657961290916763201947298141441076545737740972890892974778374717315836025866064438098959428933174634834432350134384467631279151149055025575179772295775263351984353591237100709742578067950111134831802289736981684113638183897405148670990654295932726021942568239713697126393932618873640286651635370064154769647631171357863476872816485526015250549781231753847173864114287929331036457458877856938266701660853211302897200600712887322985811449066120374277166747322687353724995249489030157347845350359420675571944095423539413248720183906214166054705990339475139221961445039738583026631804858856392959713940612019595266340521976117247247846345672951959897506864123279913752472026191296952750240033495082036744128216011113458482951513096393088017194899008145825157239893117852188225424741832017868256436632410546861081070012447062499521178343142640282904719557109016591397457169327436840614512555030603004582366718223470702014638891142156070103763759832875578113658859445885437800353955546380372725495206948145048960120787477296966599753520886424458724316954566525845096168976283189699045958059238611955725398211763598058652326096528399223459111224878981296846390604495426386418738241569493151429422758571045215942575773736339176200298618664020932204302366232488574870481725164072883765997884754489129981194160108885395848426744055562011479133863955292680894567686294801386952661563496398112375088811112308132204139750393512369115667201965850045628531060750496326970375504237365718505103124716860225385563282632223823880197237472133728823606441341285849901111086204810879415456573658166152664869352740574235793878925065184405277808463275677949687458146910696151648107586250232274158671694966782286292222971997562020069644654030969594082962546444692601512349995719577010530680283165655330347971253924403146368041517650046984815146843436125237521185128355919591849504650768865917754095828313458095044671866293259030778720187134865340460466153215701021898418233787722392586451031492807533529576312098212765110301041880570265709229123627662331575030868589755456264720456184148256494913974114837052108583614735828878344515420516895670749708858609425191656772905394333539230900696478984550304505259920858554598007194466456346068904826773178230702942399245557424415372699829884081510107026543691346163502443154393414861489556777595722545935601848441071766531740590227830564971167513126750421156347361413847955158815733716667583664380156484352489920404937242947619487989901673115899067474462212927442034399435099842251249787882187763923377840497646990160891070750068607646021722069806692149597623830212844666108486510212179520953692433045066378993038047777108222911872748466516049395178384155122539920696663064358271995192824241429017368785407859802038494947634714515127796184593265504674113272562523067689665658753261009388932902428870061221623576363009313330413032408791491771766297271936950209941324567670933806797255874825613404154996271597828674129480015871537701704854887311951136677194049255721796257738047352222520819802857790324894873857610117754189822967372771994376933436842760390593269724786161070322544369726129663480560606930555065906083070902827841836177819763697823975300135989963151709259746658694518371358750710236984119418629416894816771383183602843201925819598171276195637935869821784951256431183418286204975232920100813393978551850693027770278564502479001823280497544713686967168894545903693348145535975169738922133291326856952370460985128490036388366661835291394740695636950037976934656500754271601307349440020935571456001777657740824005113857882859702054639951435477326390331563212203319254878704127536314509201678896404038181370641382504748247533578375770373613695273190454053545538881641202133168335936312288659995548915486447333588869174513844811290636023709721218202567418352491793102513770126431013096790994803851564601264211426229841278983114062393338557878204332401243116120456352965128481389392899988644198456622187045965214419298951260720463177144421027138331081783160588749829717996389930907972539152226192447717901885561864307840351603590324532433975778153989535179325814761275834220499265949197590342672247114308058553575096196244737736292628395956590940549616779556412725841155956701426785259914279745905498170741305242776914715355297679461258198129354229286222879531247254448988084489073491422780048552035580309688236539161660014038484506945858888662672559599358395004592740413109959998369608581687346021220219748128179777539173166735160534297826013702817384362179454446849639049383600374816231434789331023820293494662209649265169397349260918218317553442849647948611703670058160339488996252728322531523767333629170310390479128364092779456504242535435865585466118981678312538101706497433236479317147152392877076815712046680895419974294438005525719102154464270065609621451463027004152459662606950213034229853873330412277419069775060883149273299596694433599883480405776229513868159407911534103280127458374734365742152457307434118925365306097898686858331385086475998547284567164815131701159907946857209682730970211891741269096777749295237418318838562486199630273180635161620434005995480416474537914202183649491312192023210086869862291976236206189718896640858980810454378005472686556996308217706663899769168125602201595070249826835595567068435272577663077741838995581783789619029646943680199938094180190024766332930919149839965427878941991519510097388666095152434963617430238663873200219686666544871383962321711318430035863277656908110836455892452064561597073530301150670423803880677464101939764109290443823306679734452902761055243240467980499168224819443006286856270092161435190745909641459839152789179967449321901503235284729319523204884368042880866389129545157143842166407533129977404708983249968924828249800446184616059089032126273472876684541355765278580382782174284212800347795384129190692088354558607293311728584166282196868734481363058920117606759624874644667384914044406183274741222558971294937144286465445419761288989069173314755312018149951035365557430741438824568855911121593922062188215481888353346361631674510536238236601573162762646165700024902612947458627952134716037264126634781798403741665270599174065939729869910868769745855452276048723345810488584591156655203383776292313634538752408072465876533426722559168975615741800942689288057355589292710707950568080095108794675833556665830238974115566212894160200011856021486717102671684651128638605527373194285723002591844394493824443027532985295561975126804884884022374643989727902720504407572054506798888165275891582167067381347929523226091762621419343262167695578211834405868294678951282880769503603740871034402181310558380521493212973876952623990003916288938559983811948424550234508911547479531353914619920312826817926500989022378911976913815229795640101141652798111209566067970246980856264720581651955321472278021406065571235945718271329739855216378460631575784236000154143479714516367962971285182215360614905473825249315398994653621062794173838394179462835718504014618512307168161788935265228236124394527254264078586914055084362095974146192345099805595841766983798172697998296195198664816209965694045670377954243340190797572914469956713077656911703577960728721054795255458196914389542749052251328386632205929165273430920468694403843007907152519707820498989683199631842710510531672084264061139685937225684677842751751440681912639223929476814721457372765277860079816068514024936692622995621131583179443843089921132438196785041490514905029371630696013813483754046928923597268308566858036128678873913965564182008891383395928652392316097505849091866041646698465964654840651422731450095870141171935348624671360245956292663271154521591374456568065215588209241049480909302228437963738727311361235561388643340677972245407796478421148410705745904537418759446205718158084924070515578828295523891571710251221560873403146136046237514050887834202259211232713281177373178174341087198818938540153248577153931951462986501655265864717972361388990639961911259897287471020930936847636231976528652505817105430686986081051082172089245462851186258655100194289239570740053185869644135609076387836943415570499751156044034822603483776410431724483524977352796447568822734293315925249612078192402292413883632567766449889828105316911243236337961842674655020099379793774681151962610090388136689788010003485218991925010070569292818785339626192097747832490528393775676448800442801051498892241455359860641728115500819173172751636819823639724083790977632667019317053841904204851898037275448516991065981416008478775629136416600181711463938354262367580721994551659702389962950418152442216738952630846314435430174739374859070205835162013882111078680847014892708971168858797574236857187717167645406242231853651601324893292525287158318869689029299736391663768299584034416879512000593416216534527572398162798421863724904993281375815179802368445088358503051384833331083440894187432325696700040898690949939722739550748800246369672213029407455065754340077802246616143958845484978967286507144880878101523825846816351977768357608915212037002746521803205027046570687608877620959368738629882346439915327391519601430450374894538491296169853579811353315685217969422235941491089458961882732536471598224313664515130289051022423373115168529764020286100864349589160396230929194935049690013845604709818419548988026905326719887937728056721541369089801318297409492538459629033565311652396069502076584395071987672984660078397003280162704722942874425520402064899352522839412988539094173385394288624688293093598861974345509774267389076672349331389499101148152225489398746770943416719311792400007169480211225336624378713681738180176477406921484670866663730921998119888904527315748114669297461634955050571876757259539936142837299815388829156452879829991299642427796138978747020884484656170047264850959078902821000820631405879498913667092763877329532997694904250954584518109957171577883373917480510025496878602191304923471430452467248799553276607941542708495656333336135110614970041254893137298654090083031579043264812627596730919779158293181399781505795474243695382657687014052501871888058298596283643384540791996886032135537255990677104159634608770570087166943742057610747158290717662624819930542740388479814624363292823046495049975953493014312197927091853644354329098527541510052238140590865073349901103533030090324384696218071846550400304726659822955884465909128773224505691129983062919322465271352099042130472496667773892056308707102678779660295069148502945315223746465555187375500014499731355319843788859233503155828773788247150403094834736572324768636628839259884904860655478179806060177252622624287216403566018221477697120355744625551689206312924973880890073697366992934105995834910492655577367971347886433015896738707269576339517884425034211894003420279341000991104519355719169013490522137550717708315259881180670658257049341032563742156146860341490751672324313420885352034195717403934323067015571258358475668878133350854088616562339450037862982039544043979415656853431318622181203753459155538588085894432474521518666656872813227380664642202320877481728380766586888359432897117247761910931278010593556810117867331626429162911963249380148057463091445981596599296304662478502953838823212178386587104173968762593467965704452636971931010686367822462728234735294832032135291104525055931148951379058034609967377268265251480843866321817123067663629079154143922756817452300962093111561879186219087521720705545329120043621441523228436990216097318577206658342474806857426544017404698790765970289708231416058766662643421484153036324657921366001973505695739229850538609085756488409868757257433894624853114709804689749382957694410863184197173391852451961705732637126194210631366055835542791354598869972200089972312670169598752606560844713514842967084750413285417357992721413379077679702444760104329192822529918437803250469212405477246086841286015292347443753109761918810736130962156982163214958916708044989259565240037125135550078778952049253798761416855371777068743394939521717976929563562881269799464765499793849082013976496776663814485421002500132325147580441260517724882137543461235508422552014705482339058967618776246557632559197500613544503930315258616020297322653572513315522441589662217695119028361559905941207351738696195271184796391698330565672380182613074356536472813880848267085724488348743070185235956407629253424670766030287994250249120249953665228216437318883922329902652978730497208311344280323680421834068738765096041054847183052766988371260285542634331814980603112143211253641787905305536243462977045974732454607040187946829302272210438889846201607316999006577143233551167739272939921613613653500785233613272012417198684426538709062803479958233308276333926622839866580047884577734957161104328723295558153151477222020503495930482965066123503005887904198757331832630694073657611930987336603341879100068692242778021459710689973538779146518409583252074222128878440930076338299865172143274539827773707685013794997056679301725058686842342407857577390717387118545893950183303087595656064066874236483077730245617278153419496733091347124596738323275664753518098318878983797960969019814645738718680441777736940976082773641007432042838837557662447961885871991077169491123592866023797724298208281843723058217879643369834286573360505938324126895058279812488743298937972500361239731714249978853543768409976216368182962951093645133051422943620248686992510994465144834590087847524398285891717384892008320255105605505625801980103885882667540471794559333816605869155042272483724640331619923469060400299121086224227517149181956495783051037525244191163332744426571036830127030305276573663090544157844094412162221129369790695618554359072619294314112471263368411207870551637125609626678271545991960093197419041579139719797460425481994908361844294885733067292536014796175894318487359127705815657178656461077975558136230798531256315231982301624970329272870384085038471723519818254875519342177787185062563036352258247775031467793863493435552905541742496593789351155888098519694168905607481004982852730232449922064645734230610627079337244768082530959035306235673424259241686129079938160065763589554111582051106060231912836116345305077288549432134589136929874645926879662456142331458958506295639163640352983259004269350049309824774008613695893769123341998510970560658256058287708231042006342586196434236796873099509435524934348736773790830385068734607557984647529803874589233331700463486666593826385257403147217834132238522319604267010225653300843805746746607118344829190214827857388406108322390418715060502160969683844299232579082480914333574278735953224909023997306250185818527934235071693785374043954177412798639959536227800797322743388799524414278183351525820086402023669476142981724753553809186225401925681402426319114286423225635568359178682909365724374674738942107018562743404011607888581648706309609903966143705513091157176776572680579848731531344137369890219061449254498619569897534438697653981829637407900769010049088813735708054675665459397142385857611253589302887707163506744424054108145998587234446417159621583968084952761703236582882917671751556657627125942273381800593754307088012725570556791431790777107868055624463562147209070620518276774791101617072158458510738327272260348986221713278458768359043874361073231032262507032819201991800579812891968302657793826808475204491404854460139048109834296373976285250204187398040550736252655100167576683419299538446179601476559027079788594831402349656161147300524542587891168595852178798553740894653194943995667535891769053421049305360054132104923437824611672525999270603707960273808217733113333707914986895550235109180847083195250301191521744633322901211190180652973246847207767594356104252327235667300609047593904382960419490639592294348519913895736556208064460139637425077420521367667538249914117880583981205962469210839104283333719457475714033120098588227280833495910145552691292229987031004739470975563161684972008458511398687214150148184935666069835751549414291270051765685058561570903506757176897511892340985273118384890832642252357771817932870450670482891518373293017509259844833756752550318372287549167441711091419408383819653198302323251954473383303679942209067348062797269045117203144398865332443253878194926452499760904243295728723662837214752025785528942601819635818183066006418246496416367007280489771522617811532699128727928315053598938930085393707769839902433576593122978712568249603980790581745564147051784222964053805041660839762681761291990438473588972581034536246938359571629190239759023858598531244354246077241597599498631266002618915849685106344402972543950103702582949317313135623040638544811884189382848920652108826312912622363839292403486367569960196757314981964471899189943677423703330161030983674185583642798815939842326438703276714133805704301020244733274644674357864678506603603323099267126568926340962075525443419179391128050191213454070925532461992445351159344035466951777467495098889795563437757849817156232914358512685376843966315016609948108329368480553687882992919210959666556111688762796160280527087825689327461054226876465997593816973788704856989364512677988223378576580333953675744327464550620201489667643723633440520086867046144568810708605859582088357628235462450205572496094766964751100406945214841563479262118749894272420369134106088243809244931952458696317093330329165882248360537824899049935382288245234680064217539090120810848809020844897510653739339297411009900936996389574213920034518184269320349355038735620848722017086172137583666916945867279223198524557539578786202140896234381610001449082752901238856434694821948686336773589282009349572735102551426169705826128371940886198797100612844986792681626805253286629194738497398090513630249739090653132831927737259058609093773772678702313938325601593013051952137893716218895348434267308310088069388976503913417968675463162682230826103113973223482712379676968431883381520749949774006084083591165126962849312337694406869268752656760158337962791205209044066608856660403612880852482028552303477671129587935065915978793356248865199315325677068319988966000454049213757299709957385685952743706357214408578761245044898986932083200349463686027572537106797578079003262235965742144845078000702735626416372832422005422530963892533612345750374590744935401055525151697440253408066273629848646793217984657404467279126717018906721305073557668924352452074323992141970836903098081769523611476828648234979371874128238221904324524813827267528914184696316417398239025358249872190435784449638424996124156146410052013998236289627356150284565248450512930987411265301046297229015867088016498736616117907232824335415166051829338254838811046456521591912169783541802894055581814825654823087526895989967661357309765097361800061361070561468583635004468622754688744121252591513267189032107278553754637662446693875120003333668317893983977842016287530983126768443228924519503710441350265041370338110320525193646969580346745948398669214765661452969260602965179578749521588758964349670990059681913862139230684327395887719238605907584617118417961031899624232147639877047699766116512985909144216597566649221497223774949424859915513858763417409630448924425254090847617656652628640765797396073399820225363716967293029731324252461447022256451956297460313652379688863300188897594353626590967670702149336067181265639060522104396321006443109864620941663976647462198417926586879397920627351273540467825721699756629339108785137357291670275416979950737679358173049386879954730338936351858566877638985182230799501826232518191268352063558179418643642829819617931651126414139163845400330462481990589370815372130061878608007222822275279296614044456840816082273898947093435092942233652521262127705383183495387090796204862504387003970850064683578452614548915645586982908985447018240770273370307271018720433275586272060716153020854064122727930015957710725607264713168844876195529012410289746809641595618575092905512955388873791370267850572494161073507885633971428058976894309745046432649297135381519892009389347632800197602643276696936649418024345302007623037830172125249626560550935752596622440914470302986716150650121772020960297612140994316094831555454800638129756593901369643996938690135997575872687566471266616313106049115462965594764329217884564849905635379755826617150330885175679534297652453168073008491471332838766815996209733083326047813923330667550155462383294845309034740436929358524521201629129538619227565376140237997912234505085933337480108783612725880350585949129600722307044291573206814232840128192627404773103255821971628178734047467007072946170692365858356042662157178058694699678695290759700621091730657483360118523092700342750412520878598182945084068172669792333150667344516283203601583900695384932759034267443156855404447015399971808524075107550771995372680273713262566506098318116904652794164524381599760409569883265299593106978863864450524029050986505873844562141965097906901102482465225958948353590423674339687721963687559336860176177658308854720034546088823405848083921250498346924069468781057080149110365725056005367928550608777114538811538652121261128685378453581225763185077689489186941793287001035265454542933616355987702286924141733226901269662452839470139658152806101746618625275889957052111266561480029669582491646219240134030604105130976347325412606715920682210573454914770878319320705993942257352014694887367828396097896620912810872297434285090949503180614189724387174098788022905038028612318218687221703110774367831432963666223895231307624709609444339653551741560649840064762029294213212529605055949244040224849923139408040668116415927969564849922960269934011336341341459559501410365615271053545832902219003684334182524343334737957796044532898124882843885911376543787386336719277759863866975944038719727658878605661375349962955186845235851396735583541629631789477463048021327364069405976698503053050661264734116618028235087558870752853109468623519534237840763102181513964366560482572419727104081945147479178255625967728005786465669099337772611813957176710918544094488245450784084923196104405060218762013775347818447856416680698901549895239443310581863378535433645173199320682749407162309450382012766021961199475605824012809257766570722184762668129464398818844109998894110691570992182733872989945934175770984792971473636561194852485308521737758190440596933442005569330737983419676567485665995705826871542440019341554448490993795407890322987966346236224442164067988134352279448940135372240057946144050285776277562416410295037314767947886115799422992701892078807394906825598066933610604671870947839098557191296313246287823878318295060642361611775245899387838259620049970261692778414280594811037812365734086443569976148376552606365319448638249609029928912000012694488189683713581246296249482102894958142861412395613296736726381394215456665927070364214850910060078555645771572096452064208418231867725704923512701931321468694615432530392623947763320569008104880457079801789914407479700597983378106726168950031680116544629614793005204322510576478650408249766128503470222263915506562899265839793192445584648219569987574762943540466182165478271061165159130197763157939489964176215679784111439573553703753757652776230606465957976491371031055201292677084955519415970248157518757851963019192326769889103829136800041572144787794572413203467258540175171496626913766609975966291274064356557894090983770926311714341098364929350943613337970174936997570335410309187761739468775819329346092916684794328982537286151609290356416380556386574906261617689023837198751408967007742602724256199691076946387406617826596997991022455937761411546403945927664861841167624476687103069224830568188219123065498565849047235671015897957569350190765009685935807023140978282086622145801612451036621657421046802601625863923845267509580963209316003233511863073953468761429371658121526669337865320943875152874758059075392434433970899292354445943142579305278095141784864069114841431152149677885670558235581055984383261117507846398652384432862636371697986116329874947032316883425107125704377657915212292310701947493653681196087455925595124034492538949867130695889316346642479697331274028145216137262203194500520706675949637001750528357012003845333790707079032998235434127221516549558289710097837615449312323439091307519861987268418392834277213277049679442111661759452962506387666050077235689805122169404961579129584480353307979904083205900435414782194111579600988417890223926098380088753653285045615269024742839278062206980247100287909575458832485271486985743309804582237574163513288895777822283814268758254648735534578934190174582956057740685521523041681375411268203580430808314782892449515814827572763166642311984400046865597761595968553712218126916313391117954525876794672570277304244969073755157257073228170898055159052700304872903569338633068767031617821498395666057959085275103631330277065367741395462488024548744729036041647065378044956322761993172506516680891540129735991648177413842932324453081373767872471419155183631271034435783551516250693651165806396564104360584795473235046163165893236972454555610842274496434587119013553764878428609080216813197317544701066635215483710879979337227094846756466864381821299398780772117733675894371355647770652785605909699024306480170596889578027381378426350505347669221007726833688479184136097445939650694410830025672925550579860161964069091803994848549402354461492340216085367111407020481755013870950483558301352309971190730691332271886224344140328247082067300527631441713136006586522304274878023342357754940968986450309845136807510427574091012624572050706430746153992353219453727195337297634185890056839474850259385441047960916597637124870554327957405696730620102769138254989515004657627732442221455782603948028022652766913572893632774875710758101409331366124506431650102068087857200007745698982663655288797995040012742004991061147751583927221796025407008955455965342796333090722197151895960586263159466716961939453299516429000502156867793642103760231638137867865108403888305895858642217030217462915681648690748879663924742449688124800703188220219332164143415632577945139371408776402814947983873098680452502629313266095498635066634209018497871388463877239713274167191930971760824110901797921362294874635443923504540505102671668167738772148320767095968969077239963415954996619112488932947945236589243030422806568653025400379931769732431785564908074352638110378013202900233451403629673662158974744788641114916448166981193433330798996058059832003193109352630040050978207014710175050661496721738038755440561409151948320564464237470843849183218765041325404055625620508316849369513472728543306769927627335121741836175116626559181923965083758258546717129756268422972563812667354691209133492808112178961116080609459980169493785712977210017434412139833942496090774300882524477264517395507909207997815460677086317073178433550585910124428380938344434104623852168752549336679725012136127163121070211702801305064180515731064409106558484081079482118404891805741409126653329853680615956050852525689641574097209907056978616862964887069944774101267758312575026420390028752374920630811282856024667821708945098694795591248907929495674254854479513368578318747526951145367365328392986812717095674521713480207638350056374767214778582817514578366163954267018059730625294314297010298933606791312110139080542177880558271236171232074803584719860111859702729135676817977178252985694756324382809271658325912539890765633374562955988240238025858423649436989814810137744379347037171228409723419224003842076916959319949970887326333716801605057543784837266259164408701813097657945707990245606606552975484249674589490435004350764896988196863868168931355569410281741794278348905763275003677225225033196954114867859652555033982935372489756271524471796833375705936262865826301992877824192306676313888323522708024170111997889888263613088597373970784416045439393044942325816666284784627952923383039129870690915857744968458682514710578852034003438366468397348011746397350544152621200373275546688870023773499659688483264313225864517463795418768790154040389092935559443463183307912174170867667607717115518457598331177744983019489035533041559083698502891915635016095638032599332850072451011248797148283809051605146911599490190841424586306236667632774058771303732733881316376474918085721219737770842871143048280529627551406368024286443601244453957797731852231136787426576401274046723825699782367385476509769626842139462391398336922259810450195026461206302034767660845569336161033466343883195988175657488312972146581902719483272874324878480362133399274518340633933492544966848632224100142028480160028000243489609377155820544543313552997171126829114343770786754022617390113838690236982337709199225534013523869341092718750116616256664054732903307256899656053749957116220348579098166472451384405883699246712055432953820941923596162155618477575985879355378459324564195086559929630435382413265631674995333453546131598528460280813104600650892403110652134837189785079096031737746374732633940827350159111301575090169896760121848424834059350775589474191663427250795660088843007993643674069313689143480075907337100806950340540744993628621253435581014838761171568468822135227113452134051106627027731403516092885616772800702918553676578886732127283817911428800381595278759273809202631958663691809066400697048080925446829882933138511061441805524998511891345681650097850911529197282011632773572936446895146783437226748961665346288713502747705603026477924141150566647487797831618998659760423356220817694753732465502990647307419867974149367643850214183425590245762075168349007838913159566517023789734723378086759921146252161503502788760916630988187584104823584625714076183763461780079842348752463077872115597634605974066262816323815693663037612168695692174391342866855721478467374936321508760456882784057912637441144587142641929628417121811631898065220730443234902929540378242377141045139390771332669161656037319949718878516074675643885724834372624064999262082975704267249774955205663715499335264163074864355965081855188061609850581124690675362242563656522653334092987518090514893938885305204147190372502094619530605927014924596555678516700938975433565324620442814596532249321504699808976880986962271855034717033143137944492706482426088724307808125968519459636961316251253952666076735496870494257649725275876186172423510515252199394353631383686452128975648335214440449057535335934858310715132529150825955336456692056369996406331887681877000749109218903668524976271434014415639099938109615466488077664479247041123474412416143270721430407685911439478647308948283079126387217213548382904101676723724907365267982988404058697104966452718818039119749808502163096611500361178915197194094598433378322180280931019327459723021655232626775651184976276740612031267940605051134088483620115690433750031849416352277017546515946093162584761930884463100608823138029539291198479672720713503546306100680067773511826794947152787465860122758350509812929051308689443898852981329470943649126504555561928609967070345843744365391558670236470829138261080840546139286392614500950568040928896309160498062310267740426022493698883852963966514624347561957184594044515882039424842783397101519134303349176614618400673588610749564603976511634163307194051728314002444958188596340088083635072089872679325849027404642519670341461810808465429453979644753393436784266750651870261370744117273443572024366813159628796783035344494880524153693771683810866163859779700352248191737951373230043459411007818874721870028347101095016773404365217901222948733923278146919470655195094370532606096755236049529355632144048908892128004787174374335980237887053028116416581063042309271852541710382413420318320604766613730204932858838495770194375817686135439783766522452697791438715207056267474367544523429622068733770677952880043657889121423263961039159428863090501018714999340604498179967295168977783552721228966125629073049243053941608959617063211231143588203268721243848850966096278171661230066793669249546012264360261645002573628025654683542841850690013176475154376135562966127943878388709660179280389159676063340684692890044772332953213562363297947446420863457880830154234023232799481525977663453042119672394606744510295270164872189771961287540647837262758175986681056133183679557788005541014414361404310703514472204640296981200307482535069851779208247276345711119275814808253054267451791543278845616029210277287415152604655201870554954407231139918892682457311748039469133600937454462674952884000503791598532604303931230796241723959603145437094429067287880631421813207751747858046093860684057737417038992993246327808708525594870441705816601596541222407477108005089693077548331113596680641068607235179716405012522121810106230868552601086977589621811431586133986744436713189921063238670096303275786590373153638642584967083414652744864684028111411147512808523913922481321823080679318805166103772790024540433699857031991429350006183633936512683881734935947324290486748779689297446647836803727548308051632564374072495203729893915860082242382071623367864313946841040967411254607385803459061533097514742527966608363934845530796556354714666311525900555995524575971985726176833078605581703959477646282272991172443600254611854097412843780123749715664442539245625677115266088330762011901410136400270241838718646880858393155296433945301443937373914009935334374684225154835654918469889017632206562511599468654156198221400431978690675762722441540040623044482195141497831281214210815349159005656374766915556739410978288288207435858721129153642738159335497225093086048290523935038789219885810187107278236625303643867029089075252084505308516382555192614274001548950918887951918924592400268616247392034647409902690551304211901959453262248659109917251768207049842776610895048276762785918574030411039061958701341223651710857226791846235650970951764164158094771466144997244991895198375314539258650967982140826475164439546080831808839317944901026639099416150415997727856682435887036801404325146181109968073856275815743306477272432637558488015880922612135933018422027528034565262739852285285776727644190748778196841469845842880831597599561202347356526644389392713102492883613195983076829350952470415136659258199981711444423093590149895553246739773525906678460771724998395690975865979329008500309963959385346508317101612724202771456669053457299890358246206723287489928709745323464211176646191528562627060831616851612517863309542334848498603958521711850776006083262440727733931792936071529075778268574833293356109035918611406312549982385625214997037419532896202057194482693750624567454109714519236112443764833127722888909290645092991765475669488144878100578632048079473236317200677210943163623145590054563339564894613842593388572756353987324658592546521226824945662781540155609114239230363168522831957800415031421479417286254304003023692922300556816940422811515932960731614384298437193269276055092777274544102071654141673283672926262008375331128814442845736482147108516854461592626963498726062614687971827829657959627312135681247881551957654201863119535204392300063896668450518443278015108001924128175139508789578374282520822366848728124528781206704184713679759499665311155293713042908482122091644505266513519106918393556466625826390441341490160140886011582130674969684508540208784080585432214779853371229934786673879802040524713856213348691939379003932439500046480510057221396865588924374101896695661713134971263530945001222693226340734784611080478123327385004172937710197682599211426734879012997747669374221163363262428426190227939812152410370669250075123897711323305118550466773717794476111155996971715996953339217268795722410679886990240710603818843918561908783908757476036340479249811600201885940308684863173900014137652053918985666484290492230756698942773270304479911513471817181045072486681479716563248656437430435102382127265780526524421765763956701799969333742752243956987355889592736815414120790726371542697834791518689701602323031758838977308953666086486718134823069591653085823281567164097280804985786293742025177701574131327890878962187945108971711050876811768193157746063187807528555549706519775024407594896097961049901120696531842132971434736595908899677778612606613873591500251575733826933195807036353410131563008050513691415068215417061432271345550822392001585785141340730135970063546004754488652045975360162971657321247881929666770392766467982723794304833699035363423923441622798108930409697168519627198670588319458313016621538097790663755287115275080946982669122763835078884918300576548170378966952739003546126258597493378553835566758413193945680159308993365757132181849571173667337441253449912063484199550410106853367754091601019182572099836003823538606552239366252841941208436156552636312086933684744821155570456674838267172814380653026450625835200382267232502574161906170075100801073400209176595622485136909120672974952150125947616811751718883588943243150145253353567214447534857048810904039823566424357119398613048651746336611973659798066272774567970517144971103112608470750037620002694362957212183557861673132744321861683697744005652133346961863859407173282045201335466826903769631577934760270783337061033879949847445398500049839259274517038108027253751505857230298827256877942397894222845723652226338514462481978079198358255234349958437394462436928230060651784760932097313832328596854167592690761353153454942620829560722778947090266600096865249907447830626025113508897327701020650229566429350377618526726721547395798614504033758672858107107456095424931646561477624856733559254740872421656147101285621436601705537220824522777380478758009631512954507306053421808244399810984562665095098024410344410010855272231826303055292790548823266636173728812172611568911331423523435205410040828650949091286684792745028420079803632922853350481443107026181665012976916411031785607296076546734697444834918897664066906914639527193642984614285756904345387670421810091770606097090185333509543753855128490278237751157416659794205161485432760812376581526062351484976472408613747241731751513586447796596704875877813722594019916655159352241201422549014232309107166991531631379587551043041158381455529677888057578141594988969679193825040927894471891057129457786477316964456975008344633325039642717584769578080324887943259759714287409889282386141894189860533619731961578983217641021668354682072610189370992777017839465019369285807006278864912257982443636207989581293403827706461338024351102340185170586203554222202322633467296526244904672419033259946111411219624531298099268571643075657287211328518808278147323088615078653883808234184055209232537091340734178906869226341771667278614666908693662476759173700120989494128688355811484097168290336134289933227421175877502424632954719024368966659732413644739481765781269939815653423062383736173582235638069515648911882716613757025321929024835641652513183737399506875636290932880953348258066792848262124676280852797994969060763534118597036653504158491800073720029283531999895537336108337008546346040057295535696411957902829083336570798881662381170062692264108758686802633537933482485219399752508437272362387621169324571739870631442584855251922512339410281943906193350462272988358975464375041140823016016996772624499571673912808802403591171749801711236586663096578262645515157445354580834984056476142526088962625468531668415226291915053226527810263966927883096729468331615872685363575936823959733051340017795228163525300181386642318494453322885506996099814329287262293143523936188886280140536491519569453336057043331263761192025321257651581937770035835169577709372297565407026446166381124693821151501029688385506238720574757561565495810152083348547200466861234679484037005145145032152362759156343498105652468858331270323308380680527228023155024763129468532351558594641209666382785650365006943633968618931581236084194495788730543719130189459676408738411671647705632564829708567487202303684792439605559942297215728337843229573528338345501122245211436058549001596289776327240492792687374298896656560789426766880772696053405198356170627527375239926842055962881777476968406292888832480064904952966961785612903269174005562110174771328597480622321908664504890583456352025090464093338041488036666179801597730493058062737093324137509850196609286479360483275162237574667957248188582890183428274774106196080003537948577807520039784879919432437494435258463637102587667797278299313669288914348023087021282204197016485853918847234445158354666222925581925241634262203584483880352462955788721350422936601807461137623711404676608736102222549979601038405404286330904206088284069906233002564824425881438197109506651492918885013188387001571130541009070906569510820046247160161607446418833562643307164695830380924030311797800885906148157152579370807985137166752534226000923317421141542973949982060789032050017784561277126980792982215488670570238848398902554372424803135445300694601605295886755652509919093629001948862409202483905415142521783020767198406262435410041379837425072998409033049907094354744936960540732980599091986790747731177100310902506285015469320159193178533890971903730107518667865512505048781045667732123144232001720543641846493128717615956862971091793965449901633558461835785824763580657137695854345781142513070328304004699294854410577862767474310080603940192228994623686102850732005547801069882086623159227995693330495879130628803392565641132015685169607908172985405064483106192973618321175156356377007884164358451892507282271262988966578581130543466352745613972712166010383541536240036403893534831872861681891924979805879398155491695196234419486538458202982281284083246352223413064315687668787697220874008306102775301026950620053346679202116912792116096974536279227941070465497510569401847327464236698616980487087569998477266947489648696665740391208536302408298906760643491594332985047151184308344236190298816103995892149981621863571331486643235259739571960075319372911567105464690286880037980879900107911342850427047712702955027354371459489666685780690373222239603910723287562444116599117793737639824361998935894716656237118163563345578362045198431206330847342193504669122806957263112546367709799846821692212694466812667925578020444540603258834991283949903121333208156601890297284634898182198283873155525520159901952984706491367224849878700519622184791843952086699519865906038847674988995456364467823829691924240155645595355156051692073106077860123055782496028035033755451406357312338261343331021784172083181372771259317358906209514405332500811605360323800139836189571490928298087580757322028374624126752196862886133310770306259142301981595471057357313397460737827052205976867390880597429325287140659460876360460485828150274943522433758926481573499808804952283878913493066973232213611260018085346803237107906797248816497499737450073728322231773722238133325348996377385066634222169378427616331324272288641940501174470476323652517476243579514087950777864549163175370077271693075749924371248374523819376409182357945521182081266813313319138843794891034126316420080946656093213294687227570200863050199432010698090705924859875109498346009948619526984469581214582946761426167385535611493829347935701284982418027566071976688294187719023437361260522790894627217251081776457760942981319615517324895016798046518751450736335213686325158671455270081101916632468700226334265279523797769628580466042424950575723678565695657964339408125834443846121509925387245730607792648209237190116299711623712464705879777620356559341034967498475917063235253087222297624969800207837004013423063335639515422842722202436130575266153947762838994743546721116730795925621068909542687885974936657489707284931065507495308950791464587905893448540937552110699218355440425218131655513158318974128427109723040297356179966948871396321557677775079191275306812620389555272692244981025565683990683518298082540965250799328420878134428892435573225620781897086525536802259121383179037479435791930623525756741826028083646198870914697703404357838659796362782762174814835687794520062630439930368483939439153247770404909388762785881778821811185630789452055294878355689834261225431768198216648504650699952439360912518205887881177039738940062131577017434070545217014304119887409990942435196793447673688753147371552680829400819342326759980940872987182649237680142208293602560014282708393612271670789845958619631157652983556178081945768899628078494307830568610023165155256375651514613199502844856209371305048441340558788128083564216607110761005638747208231717366481402038783181866966794045977475633153673407870936669658913065975977312049858065544051884314627591416326585010273685449631194306798027068899907749902541137352025250235315420204827552011775675851913584340289815615260123557970735684988970771737171399989669533353566415903208121830642575632762980110774909109518170924326372245033371878632718847477305773379906328758948990684473090853834610934281292776444017046542996372139770257026333054263222705496453422177897206408580149120975584345821426349131529552797461539413644674253635216853997787102158680315931940995586115884569862296626757198553340367457518812392263594695424637958176710466349031744427046492869241937402884418046022896328515731081032235378362820701903958055764352237439510521302441092806549532273109530677667494562380533366668766690085660965801433950758874532291354537817883184239218998565769954006197266247707011323836770691198734868289581694108535316133703304929194689740882156286570591708850421343354207356417708406012575716934017402849526329885832057042487198578981524668586812062191720650953196224083189575705903098887842209025939482192455007068200590796431119457225832758640082701983807753821052013302604984602080041570746083228543586741073831534210349591519292157923893258432714500296224184549559020463364800081496136113406594220305817382649231233341718120871422281002244438793524979426707664221176976845457243886913738528469925959091092682389228425447505291309776432446351500377463007372088891392177233058867257581543250307937327090314718478676270419951015066666923383700569276773636186258668005040814480050284415908157181587822636968601277125893247529222243440333319550260875756677068148515196247690921011383735967614710377431272321132971757640420379101234554214140447376825830695829449780722201482348991485358418586950104975706404982351370274713952877225554648624151017162501779863862613219471840708746391516209487042342350965663723334623901339256567465310390180733896711786258849592656476678659464161689435918834340828205106489534697192616273759879655107131770048222760036785786815248768965020489128962411734773152212986750152778968203861333517548606276295484421627441588264218475615191399373711085305920223908188492873873892844216426857066039139073887284808157626192475623018186717998860111954849066765676122925820625965361324248600499642404421261117858642754582181030527407881722444866229409279517849885748862805659832639889958201463651985240984993856757616602236435260728368089832252037725784049415227834301770880371990352071974294734621474324392325869695829247586178056696771440770129259983194332017560065390200477191833760494629129140352112753441771572061490849151971631825690854790792870964417572913190907495008834718775653007335192977311581678717506975292568551003120193918004098396165089539199080983026901230859875176919661188852500326099656617144708576150096884789844245752752376393484068628103600098131055204766536415559930083684253986837144742950657298888073117466401044999535534883591707799008670284761462505537204743120696939223979459508115099354583052325177233139925460440694280839153520316475507279807174479142271495640344481721737502765337361426644490310767880204426410402733014764720255756984102637434640172378235828633956695602073837899829362217137152371994458905045235087103448291026598674220141086288460049274358984760363305527644587750452166901912977081364260407762376620656198702779795870392225061451921296883664316499018300464069107071691652488144297952183487079583702258893634012941156402184909820306691784615458143488275512343008768312118372593693803581794428222930465411931430653942208810149578678726421675133840019605298716319019976183418740023024706284336205926819093070891400958523896966139888783129258405939968653622207613207252287037469505060963707793551443266589139746222351258437185466648924594665783539205386098980094507376172812103881527167791329632802737505902982383383728214765416979331116510917776766008496971793270763966318462875598659940015570606410130086053198107712702353667155211499758218620611742476208451410005971322438595878388559956619783422137753080366595787143026373011977533221882143681247715484000805465112594206718231417616743550037631068771623995905352414345993411604051636563094146348711865900553867289795359853104789109911309280090611852936939149548826143725268166000881970900790287115973062979028610328074240040554157816049513360267664165646563343094577068369893015374502537836862887987417029763895254098538159494886363148971197909965657525062979514832273821007990713406358260200334616722007546660880232478494970333182176673169963735274104329750007847962961370944822551648337489552913064454374593501256746788650057687495109709429832233953684218176202541978724935736968883818440816974883636909719513564960434479688086211685218028910280147684566883003748099428781860579046927447525375464958131475535921557840472111798129244823339602324630579578016802420758858721114252615977670099447171629584812658213244603957234011274733360668933938401498367327971277245351521489902868292241888672440608822251672575863037334911232557601280522072352220831794876719893584452426249723305783377288133637914381548824696462313193790409009504476741218271412338730948016736732625428334244443965826251631331844243856608316967064681209185241631216528313634969890944326847280823676557146949702276186500775731160901589315873113843469910511853787535677465469811581597692412691606511704714657812405276983999762321384875681081319435942426606599244019716435932318036385813219413275212279501582090593683610155010683503839094526785330307843506305731818728555068252652310423988485345290994101631424795999350255141795637604545246003917151962938902593158586584476659455865182287710816923187459482972247156361216608725563360787601063400539811542269542840683164277138282591366614694971504897028021030906002360132878145715534019487342432382669372912498563340525978365531109841059360305304376910363705700845151380443392211640852671353308373205203016481603266963669231600600438169743161011955876495850713241784339959833516514413021781760545608158389035185508035312478728938679983850945503350885532392879242332249914186080558073906981957488170756867115747594892335062047197378271513556715718750279893289609303496865194156734973783487895184522109226823502134338673296455344923629346258532003996022503943258574664193468907461662272638089677957968444067171481205370980649930727886155067226987054943431679971028557853548785026230856145825074408819469594834396749284895141516221360454912345222747714806705735905545006995637717662553100838868531626284268723311120896878713922050014267401007105268932504215729816156828160740798188501982269466440097465365931780202007504714329362739505167869816149025653235413602529046894553729731772393930557631485333785785525628533537492751882647985170760476327409952484618229656602536804761742340288439444425228843195520230232266960725271923804415516181088178930177690923208738435244211061009365720162313040771335078043910924024734833580314051555949521475503293062868945774136219725024503875623824788534450284623076621483458139946585086659764675827127748685302970712842608922460143437998331666497019784055345822186928003307756818508118545171842983103448550022539588280236626097356345143657876289538295639012579258347882234309321063008932566083625562924212817901182766000593502134198961806164342674658230568819965692312367559281887747432379479490429855808423276669122134872459067041827131214726158706184212139314031788604856276551247064212344296679703569992849812900632327523565593351308254981689590916849162286152738019023522883416845207591705989189678848400267916009943221467341826678848762884940024692628469798298570737395801919272119022198380467332886094251849618622009111350219763848090764626934833725214634202859757467184590115968966389457034484589139487947991703149150383777763127139305837217970485463679879047834820121709594492512808605610898758698346194845976210764536573476830294371111792139273594458672652009764845040860214985037892571424540056739994670629667652980641866481541323534988284120093637033354340964800002878933974257324097887696331621752935591516528332611201468524857289945796569735144252371753204485839656132228974667416946909446496277295180149006167772352044831305434010707799473180506554641363980527974487999480312956916069359808730455039316375384574057602079186780801465600654831239375494794371033451744390912193839785766486541893905837247344352453859782249883637266406958140782039204228086760198414390370365705814949120553313583033634116122753347121130203972481882446981712093541153772624670458887912531620421481278797666089644190997411905592436318907440455582479242443163221963651842115844186543351031611887771182191151860224261388735071827440738992115680482582828304449915776294957311927796717703414456225341222259184505828859232305109492625141391401939477962990337263619363616737538827803860150399762652835423980052671810475162627279735711324604116961764673303720533001615422238576166087510100478671427004268563315556225698398632392186748329149896171480944740175152929560589654508516039189029487048328904905375273486237871919225825756284000964014038431382821858740273522560584816784937894625467074799930683753786644329427701834880974610504955728795992384274276224968490867948689170487831260824627883488962082366508262989181201142577295223475574638113522769503945035894796280047842597385533012399786444409828173877854876583733775933178132544870889349693494104135922807832354077242912408105267428951264144834580613891570550425381293521216625024809856441035850006401004766428435032702238416417753293909300230699308696984136540841980366310230768672265912173930801491795413442444160382057278696242109189821363216414272745653797273303672216523067894732284345798650079651370516064692952090478039151065828415071250128085664933546214996236785277706559322271111032808679000418515946142536928513779326362313100733266976373018961048732129693354310744499781906970297576758624377944151341219957968595582283897768753842613523172023222751893177412030652502850880309894003139217304225759223095665581045369646293430496983507347571359661201224948657208918675211091178765539946124008549764226086370332229919975726086570953360665043979066242781952907111323432596948497885379544108702330126441324088154297285053887049405064386516456402488219794340583198042249446097159396325595281310465986900386849630241012776678774925255650881493069882361495878950023697129981433049652852993340777098202044422154843233793919403490536643509549458022216767415163102275224988041720241018852844409642776124598690292309755084415860353332817581450039770128614601309766358613001975879905346814187358659726063401796474028597727643550951353795306916906295486124394768829530454353265330531897910262319335380407069143543169427207151931745149428612244354573904618504552489362598471238553016099612547811361137218930556654248237397130147946746423089053728062199343566563320217914016985313070964220159835618628749650500537496221063897121805349318174679832964612411008118431960690106625315099366909594156777685439302901965591552530440091903997212110191953914071620744399311629562320383692978206286481678496439980592090099466326910274042634800270162303763245512438463678746667605269917456066795245606379403907791636953164496920168331103682336585934013059924581039242564017251937502285779919509759333972282304558811676668757792508235677540041112994639100854781048417784517112010065323878339158645287206600975540392533977862199362736888843180578152912706615234841361261449951503869992032117042945712351383101490277799225869476367402064723376575075394111115294686955770828705229134753096169836511898116915376554415877200903636875210753248619658695449358325404399690459664017677701289711273643629758354122981827756402585332222417782324729815734871113997191641514200190865487492170896109137132563031200226808116161657903027402730550072574592989499268656576405746547548303294165541277542583167570791497139670331566294435793330307673500401953481921891432036653297623289644749175216725604033412582983427057027188151564502994073564423039042585577923799981966848315186970094088763207693728420043523336649740427802143041162768176704935588212783961349469431239571969676073717224009892035383452905394137205564807445344947076319717444418300445011069290475044454103944855839745240793242564414150217006517963084315881056048745097740396566584659369195021568613855142797680271419576843603978088546739320332311314420118102197024862552170086345291605486042140008291658682917222361421000894446000523538412848743847047961203851198960413540281669809946109449928862609735024809442111540627243333245325323700526334352748883182899569022107046554302660942613635350936421497426772625566198072272724599515909994864930341744177672878320064606822544155825258381178920442392549721644337204172718864334759430521297923013272776043353873092303817042056395117340827857397004660914740172508226072988467461243207683293957812395365424329018318446586422898952570596757429422211468328115873148985017472614986123538168868651892733101919367677886120994041546772141314988192910751993569546225241708657595150743574048974362157117344123604716748739078274397608544312034759282318075786999407378448928047975028141214018928161847729536696645092521376441711828123550664816297909089854669901962115116648268342553407940307958015090804776111891400516031303585373567944106987071301075206638810838497570294817496889393919531749726208389127523062717402803441270629044574944069794566950444159753033887710727273984321567380104920776257814848645352116975707041769750379798849429009923483044449903700254561009652562144178457808330641815697561445775162812657384069101469942125487946314931180616664858697885386226655345867069138906785710748516660481222612635395711848454011269402972060744406269148236465724097574237092728527810626219748896136372366834299870300800074795235420510921783584240643936453427526919630024083103818486973996623564502580588930124141859166904366411191413677148721499225887740528198498166154752774112589292641596411540440312809477037501063741707994533754904938937390176346529541066464619891019876213948978790264747990522589049111702046037343099242059450490534596578907782159832668097989990886419821415146977600749628334754758734543713982700419932344919129510319611495785894997836441736870216547667685429505255185664353031111770453124242448011143236710102239773315740287786778126800847026322430932621165943608352667733643939055428729670218766185785934796560137749202866637110489068999281426456950174212706015496136708248101195809330227217063283236006109255319290817047705646944965916821512274143242719349700170051680768201549812098217602134574384070420566489092641398966308181153054665712671971465624814088197506180889137391395268079531253422183086364603701832905454929622091916543502469111652727584167312642356899654971042125595367014480414850723817806947101094384201567477959440833442467437265603739356328371688769751510698260284403852636270723963843190592933306028482598106988573550707589807596451501715779607233818068849307328029382482535676305600291168213049416494444108470306244328444898621387437442300785452696157328746134054987644252508796606831173343388572795184173543125652741081412798808356534751077197974637084375199117493471002088160663734100951331472815525346630925168075240047350767447481691454359716855659083752667520638212479438762191647341312926417820649233826504473089977531270133103230307276600094104035243593470515796669047812191269173786088499603978429116967473145293741499129507078182708973783998526598314549267996402398684997351249086450443905890668354854348983781644641374952914647225994115401644414740580215192241262522737069645865228220683646486639389536444145351553729465247411575445782831652497220132252457778383531853755928107662578800458973842376833024856654869139543107114608369240587284852597150396684080701172760412421105435358352797783623372682874295588879151012546344913988451249138429189393925469379814330165125502429730584026446244821919386080652902405215073490003792250812009386125650807334659073396162944362940733678587267172286639994915393765816435118675383803780990966181555671061372696655177351542039607302326014106411099479425565402790707640045518932570147852318088229316069933722518937956223582826151386808770930478371495999135874278734635015411193967342406068654750161235315346800994294018273427028220253425792961390381307836828888245639532757784675271851949640374983558698657895445716368498611831947371394456780137025677287888725878149804699386381091158538489553732520246259808865305963651387325343803927445077097359635065819875049317534093648518869188569769235691357882125026536155277698477168025943810126278784307190815935370461273334811471434842790396864510109789215336949744039567734078086186799664733633606624229726401900600604623528971007027118347264265072042892640060382992739983843003370490636342490449482404127042135083896694385289733618704103528088753799041565843000669274638437511789441375555328919107165477312635304974735541724520900319662508640348069604449115032400202542287292767826820392419244199420376416474049829239073632810336688896926634145724550936972285434903290110483284892967667746888645621664689893862209161611384330793094704376143124154668197985421928575448736419867805678736268667955248063279559410261866410033222996866899936820983513595331371346254405013139039267535665979724013577191636243210016949712558773388236357436555105977606691911300518828857718170990984856213537010082844972952802226154219115759662453633122575251371662659768933433342538274338334008504168046248163687404971123676960361406123667427991087103486718817239979589881199372615188549342753856879492757033487212809984897035822764824693386819158601617502563154299225032943949901749941165210935660739126396841519580246048118599232922687905307852221560151931185549711473033570004293726346002257766583704870704488238608744818195244514477482291403124137302702175975308225737265414119565081543238961741475056943823225181278610457133699125015568792448968338470220144566398418057764502478643065742108895600309807714920736227469732638311259074682346134267774868354656488903933207988047386459423332530953372888041628173086817802567557506316257282421385014373794069983463923852742891155339782853783967189320750857777857712636361051214190535098627175965769567363749494815650557090424213179546049438905444165496813577717785322229514086477724063717225400004335487255004582091992834293298753687631152103735922850494953119144722661592633138816543156103176719664899609908766349974823859168390366466794546406414046816802842161216357680336621841448862555103351882612788816613482834068956305691205853493873272181481883189805562890805487543088974536244057880394829116311883539330913536077464052948088433219102174437774371857526040118219244976461749150719303939174274680616017869777185952540403662168307048639071957962888755064934933037925342843522495521914166474113875264472246185966472222898320473071419403164126442114148102152427067443262339886513636748258089931859281093857877222050810742308312406740647088689295218534997945507843882646289853689210937078356062867759052780557077700111365583698663016834443487253305522196713329535172131172041966745251953257793040028731553919283323989326834307519795574877669754098053083370158779204714475937271501712036730718973219941343218083617490617356050544762675297999908277283245468197796066247487863779579733775284246025168592067212938324414718389563367988071280607365447737800656369243075961798561868056868947971952998525370012032551068257726348698766392504440330120550670949566997523181832208340986667180205857152119347142586704660765432005026237787736271244923402955452176264402925849130386715412240170660532967680825766610627734526842299149420577452909036764312341884402722798254607199728558808525424912861706118128047022730682460928950980813446980675150104098555049295824840194289724755037249572462045844543400506675637441490004882691111043448341052532618610032644721106621322226108649434957099686371949599261222494486724765880055602785881161264069513089057486466782187279924014381078432387697977443458709261636702367391373370409303201975791635268968220287877694268235696381044396868429547548569894167200176802729676875240153898018684152618869659874533601120645967382651842841613510279235241183737535625912206633528684091836541686361670256479200789671941941756828567904086950228909286231205465184244210751272249867604558785947934872015747094768159907275565750393327899861555933345029597908650987070502671305546411275733720919233615128462079114737102498771178044671284664170218123330553203297484757198233911924679801122647818320249667819862110615331493291898454532515134920854534095442685693791683106003900196973857303813647348219555100767279342234713965431328593923398381524545765784586404507078394563732349929384894541225495166395966296335078841369594818192045289830628574394384895211299655694191659494932720221884497697086741577890165330833629279334371116524030478130483889014616346427547868930744963956417904718269526508282916674584977763698583035090435791942448741209029600778064098634173953411626193931576161910667852399889116735409787521376821353991917720321888531100167390806556197151740176548539010829340973472023785193866460190985750270888607390303966129048529489573851406757096838675268955676717973399071918863167923123855626849381055469374836107056717371947914263059083177673799146915001412231499076991881599426711143160058046514871452320651168425140433276994014272676031693581409294809576309345487026634101824652795150850818139369904145977318525889012966440883673041967012077234579939765683987099074564343816340363062749350660359940094496712240482745749655643722170225784811984069847804221713204974203160135841361061059338112723206856810727679228069589945701371272611916133156133267351533654285938969188517022270361697558190844993848685391847875029469640190502606419498410184501315865026645159868635224729621501122569457315959662150061609482142477740969799845894134879173808173044238170714002264389293174790161310494524106779271781992529897596811795784601213223834134857221277792967949351417210814183186671454963777651303014115468683248485332386433897800559318096717329897248290528815313705490525368640653321592433015001697976943555286777777332491727273077904064820432911284942532069916878417063785318188677582316709340753782758935557815588294906090601333134670839866749192303272281987262280407636295081167197078017104232256775502507750951520675167584169429522996640888670216118509260276007667659396453476696684532825365993813602509991180977771883782475663471451132304670515893781467167010533576247256886465850012893072940551468527610482024251172680387332233324971167804978999074352605312468168628221256615827327853313330271819761330173204667744920434956925633159621682170575328549546057779872654030627811642123256134455128112384987329638382288396234569527933804368848268704420055504964250173543242899378351262878265268237146857488318355870440457113065134751698080227238994004688864079999229167492968100538923637662777422005148196418884152755320004339812199505705574014916644539933747140829598513337450892985166321296875592767673276853070410828266168876813354022449510186322482902393029990990155942588242672610823656879025199209289125362633397970347633156667652808833259014926910639071818242037189754056301107072066065772477676365215716242938239538097511068193769936275073377644355209716717892675617596944290266742436867976163203900662880566329601574726279985915688145378304127486025187740497229145780899224942122085068085843957289941524259563515972785789893358391638436769827069065351134397548212910306045398221908863889215314171542224738626508273851727992944617401602694518841584663752894664684786262002584232332581899590334432287413217664201946423132868304390717153290450029866507768277808350309696456947441144257211436275242499450782120932973169297748839024305483835739572357653504623840565505343776489578008293262705038123062231972611974800338446881157271635532786513828800629750439353391774281780966150370102184200082558080819570929655010829606983786150988516439420167297975008182028752162900296720507182448187986477447426349959954781939579314452108963608697978052823912737260075064727380330948818008970284366224423295086979243694400670534962248238079731641893745051307323783104042634704364900855593144216400243081200604581284308448001868953642257913939723781229574619691338103837825569238566453571290778799818255476094464576773618321759677335245501141077481696504151380649810816824882685263419281943745321622152851246205605623669835546334044061462840382126216472522827015998798940401025308370610672823907883910055667263169285794137471563452697875126490346971932233005404138508981075025273819309549683199795102462169833433207847371319374713764803510506338714502983845500770032642425933348008121624641165786900573532185233779060299235000586254618644199383920403989886397225779040777190104466526280406524061329079072577508789508363724984596622810464007083303857059512596947238686710686332989835157686186674320357165346142116125135604779050385553109560440409048013564203078724598460413054959101298230233935851525088568680280274657859640753153433727330247788230369557023343934859241516477111217173946921273822301425614976151257368749232534941682485841740342873406695434521186447602483109537277370005193972465494114048214160458971446517988035921478771141903587878073083940693747290670440059059707630453927672307344454386526621266519684540123606976983333715043404956960460420348228851938905453219863592446312578668624340920934412181339451406869399042155544624715347391485674263788021839092021761653766785059419893317177752914125534578919530886848872881069922924903865281722563738719639065549197784408861341856026745205336150617896899566772563321036588310558057655200527185868448570790571954486057256361438725751702644433898878254730274267032736995825762655227710727030381953594009177872843221462188440560562934150548813414788927724717789009930385170137474941141453141842661161917309899309829661907107673548381622806254664769814913819794247425863117225334940732138768811795219083464868652872302908624154252647604460898201518389663463741149505071306894174894569549749034021076088177742924865130711338873969043010306693704228916115312531976211398163391405155076459070148562652554873202403951836626747411366396978577640934115961525545926080106516357003169263289593175656501771817928338937276633139063800705137627346139782030317013493178726252049995685286187443845193023568864815408589857206385387226264230136878914901667179398727868977929112207925523662441442945248271200102197800281211728221293873342807988447341860081249727036876968646991187034949247059923987857677721497656840941016262971008643852382326945784664029686580492546191193228422930406316334545139366376336886473109601983267609860348201017971842625679570969499725726037979286898518382839850846700712858184563001860801178412372770446639585422292510786376570182420046986196400670201407490836222921809400780969001456971103948119600174458585515067756592394542297179398701901395030833940673585303057695828097434027202600837612970004595014210668102737139528360870580463841594194456621838155139104419922077901740482365563798492432933789372562620875615473500392716114146940346137642079104890917543338748918359737865544361959626837570160195257024415402753702734319181473822058043641931182486454384000613746346042571142274156698889810226291396819036651961717148545801950269697621455693951497910204333358928987088933642745960326976398700828762463964109127891121282453509734663485757830383804585630393232402319826062054013776596465510210684843715757891114249690241911517534980851724847206947859259062429726602254773138071139582444725027049503263673247234710269564364465855028581459746648104791326672743279882573832572975444650737674549129386510090504341585971213820172326593676918944196936500100913556600442376119334294565547156250820084872702460472274138628539481470266163327720557641224366479449964215910128616879324785052517216130818967433669145620855996576464648187846370527019316034456929711952383001517689019759409849239553532078306585376861537579819468876278091910452161360475032779722303669179260882356011478924874619062135883734910752632545302812040688210421568869210102346400680540901184214387874808341176663783471823383131874108341010337658339408418023350546854315764470149985458861658161445419157181179090964807959270528345943532194590098955739814611311277741565212831403079108179656188266567002806057737577761861991553560902359515496494770573753994536465862201008681354228396564892017187360424021234180175346055893280017179783970953693423426292850656031506947531244315396295933118830852988831669750221290919221691195429815255376053834663433094839698273863986745238098812485134859894485635168594659275987326213135571999773976466281700599509054769093319668572378135334292351823090621109189583802046485352635987253356335514139530055961291420236323221777115254070211917926868200076112944263267900330823297710659594807657876777731583685334532467164383541299305331573820123742550995375334645707455358865649706098117882104972941999254786542092972648334731196204439448605564879151792366770882081417952276528410339178845039896673209496936365237262379421662464830262460435685387142078081010009187620483972179717673469854881029614833212604728081513978836795005213628587043452178756919725718859518296033172694109896621470562716530984006286622439276359222242392908514186240212185254932670014055926942213555933001731380272302340696987538098305346353168951911826945516892799977789050509978007485423346757951882769102995091486021574482861191405160401345382065100708066864839777645239776991653072329755136722870247211977118162370606548799379122367368012867246002398596539240675584257590564281103560114035922865656957509774685059140284600745938384814633095087228485016595626146552419739563575225953339693481702718486473599649705965407501986692850839099366691434653645435684160366322138488363993050828402220021383076173940988980017219305072422550067577303777337950119952821966942226923038492384654811487988089482200173679744541765054282470201062287237951642526036712138538628611363828295454665344655342218911636253198168208024938314710703799897778414861642378793586202982513933293479417925083371967711457098393331394787612978796538706995331498634765812845844167375117563515479593160122624468859166357586149697296798467399478104853929386853806725960235422742167397870284816886025868088778016126882874176195472388572118444978076849564524003930925919555002111479433015407095871835107029639252895159709819666135918429317021389850415125557703711795391572473003371021220154497964209505147146670921722340733450635743090762193287687225962133290581403813465647753434022021214001219877438735792301281952953586850409648976681925484705032116109800615950520840050162177603508767861023674892250565689298889915205911941509385854983387604107316702970506466069615707396509963916498982469805398358578839568715636618959283007677762024969790558465886420298841194211588542941311105556137106716749041383536657331631213377533008058289744214588049294714753622524333372950097233520133346346063595049744771677813900941980907008231235133580296013998558181070311307873489730332841823206764027007815111895672897314803274794017139341930438286824763835755825261322620515181852990918796383854709440177035607464673313909276841861348566621607574054097336678030821962409986221384181852510375553737477866905623937864664968658036352634753735199806004766038044253402525277892780627443116289768677952396884295973456775813182501363938364910492113651629646077946954057091253376533131272923448550079597907547432956867995339719735014476259663052547820738885328748430566195185344192259774965293062192887407832424597351860876373970714836585319381627604131090965284347219209498152794316786818730486398611935413485870061796184052630303779403538485604973468632459551957619927922941232245653057111190207505878773399548819061639366172599916802980790083636279191923286551264027732826039064788641687593226472032122925051922726997426939881586714076974245828288467250076909981762939744613477950708518252287724289566045844204400370141146759184195196683600897570424038742418428548800728125943992443639497595911892388378560827951609807633550262414610788209964300197923880144660502445907251411510857995358368764637871356298591422224302839166588025129798723421355815734246619618839270948537816180829627482041811373349333761918863935258495846148125035103763310632401418903910921246052345878479555781293655481529280608557120365285292929828840547138198797978871040487573610956254169881269963470176843527078248020433917173233100259970338120086019419899984702665122563841838808563622611103611883365031009537270815882326383205210586764921353075049624306637711221704489768645961479209396922282736218432661485033653400005629102935444856984788219505259311324895935683383621638893153935826584809363690168983953237696865953541323938061150044932749732710021582981628699633855823968513042742772500000158731935997395832855207933646208475111877711977776291441044729851492758533622764362733562069782165782134820678559366330115170712372054686747132484946752760051817881109948269504625935170187577045289393735228248398088191170727093875399623033245756040094120892636949897467653526400213711198036073045679239448018918804324780926031005558510324073767001960259100966832643554016921576489105170212111916757124827270832095986086701889535970674514250969178462243139756654066497093637045330735013241093047787718060155160448533213892028245581783815616228230217128339311930698412807204664754626489265998156746380889767450382442525890614910855380297719821634792189686739538976189216534573246675808096925574634626189646408981771415115573460024814337357723353251782214894458416968455645290600252546646715755221541767957362800772606956792634428958461605720145793365458949159382661179454180980845054843404334265324581347092561797586162029824080004305172483966260457110003875878954544692306875172278748864943230830674409649847389796751964940842757567419720440664888279892579893540619375120195841530774407558543099974186525889007697925356664631598570150225602095620277671363291274804573272049808441366265122566469474254580524740821252633448729827234904436610259771359755202974994847456299231980285495490935609778449739148703475476134455064354258519516253223090041550688607216903050484630224982246370426635682570082651868416912029235203050428847252113384255918130982077850241563228342231412490822945591814178545176585350458227442374520975839039681394201239775385530958985610162603881718683914378814093329838644119777834828645968888016818140134113919955285343349247276760014902082357417439484212595489788603715431234033276973302634070346177180055933765681858857614953188434929418528629442838215751762982765815162692870779713476213131766424756332765376785082156376872192404120033407600352450503302334303450032973598076857807680311004370667480760619562394620749517752701967457713731265894010553602919261031689238444555713126569214291252220282261575571053482053856381958004540393546843751644428915608707655332753530948035935096136160352615677377130851624807422349519737000734372409658340313085687418773329761318135511848777495969346418031114555251440447678787896115203181040471771526570197960214531828191169044841564680677703262941693804301458094442360641947967994617757497813272224634555116402581091268425458896059200030688340066012175426479127713359330635588271261425366702236843704367100042172868545905389140302117385075493461043141032443306242766793628594037750411914755830692457949719749950127746759479294492801957328710058169477228669084526008407070231893506434146664295220321004621541885618844421269505283151337002806199399020809167764561653262197064961149395071003984549115954651431916600044727091216103237571638950979245857907262341029800717179549269040550672259286536262508193890973585757116630864413947678536362995959654714910455037326565562765694138948415649074897780992771428270892763477211672302168065264854858031546290956492843442057305092360845782989723550110116575294800537885553140225693625729608992538897634578120764279484947928159767314641384372930785845467703392231391904145190241042021941940893402846777446390689481200234902937015665143222100553188625172517909243645101506886848687868187393988283773574738542589045846483405446504526833633020549895583627407961819402559981649109184783233420722652233378977777141962270810228679841736355020299426246291464459389648305163941782067880519968207302352298271579980180755894583921673095843792425012580272574198174823828477411542826501362693998353478849513171424452631918587466733250949520152697506621057075211194904486862957948410066726665397466007817696609469850661765531897975037424032432318229761249611283291961789231300905156056364732372586345691939378435850510546883524788925660747785814052104284388695476849402278329299479637808676807184297804973576663242882564842575401506476023977816691711476382155245918569602779053425232565473687252949470295075483520973500504124212568459259679294950166943046984527592782993544445442544199873351280325438969484954163204650631642562624071632148098906683678010547015199591212697403032935700264336664806454038050157642640267848260533094345407381570618421723419336040783043607717190764250045299056356710529155620829284968577120032493692471973015222641523367298316482566977277796522496168932342443008284970409567954513403660672081140133551938674405132999703436986859986796363492820276852256942178578284757823654078200125650081980540949057873901831414695531410900511581286527539024547557144700405374774808781311148426184787793339720545383406438344576239981009727673262540365709600869944581043729658211587879777967299449105997168160598290987925125987399499808829009021308522739207440352468343357900023242421048353855137451057629497223343368916816259463927436264883854169436504612778042102073107173278683236297879647749112774399672566842372430133911618942285328388834212468725595321954517509357597730299398751547305853018315779875229533975126897665647692132212298652724305573075868128793265096893292588790248357667428584236711179281156713934668043588118829161620721202977174610397016528258306226246769418724172145771797754572741833412941807896108419660170573176826659620779262358327853067035533205350606157190294352901119417530865674134651257253857685907321601021332263211210973506925568556165801595229951427980551467028994037186962693112392499770077690028742702350443109381004644106103663073781335773667196871642424219255266074451614656220489086312521978321177786285918882387893323090198390296109760861208678846736320701989595537737123337278580831640992556702332722609854035192305648324468927204719232339007174451347297486501577537272429822130737792858318473935425692465464422296936670506950861429612949766842164494690057122809670901969486164542310277536660055698459045503047807166039184335689032396073129182526978332926108681827195750809538586895165280374742454460783867080943007164747742563954181193584657636497162905722928854898423446605415025107860212695049920709268178216166130228667375879764639545865197819455298897034334985242848588548468569389830615578839371406341331448445750183007311979904718742152144826544313095074609405799793658977191242189420597212094834299951218534492699842889679503356852886305856202240051779152095291726565935933888139620139925314332035242567869515420032569693541220354153680291695905669454146068956641370322155093437520977074913433273597303632406942958229545332998201284341019303080274077601179169891810038319003620054424583857274171917368875907579512253093560509870127806869242133239741266569750227906077621417252072984581398973344239789495322884694727207714635881077785802580331066764204741756841148665903049149291602575020148032198442104114557244534591138862596822514838206629471882075843701545729487119164644191738511980024462538271200869968311399765879201116819350122496672335279572739686083126316183236391364340401987180369107984037424557245504594568010079571742121914864356795415413010903810862592109114675886883275023890453513002844813558488604932898429007032405978125166465417164327975923390001682226533126713922407403817921651973555622821558133190507683596383498194205495807347041718812647013023115862736486815830475939784425906524322843840269563053570654677228771536139158349117949599687546292823910336018212646240473953465982061044711307199632138774051685721620770615605141534117287007847629041725702584608012978170545473777222797293092487454088153984395844310863383985634047146130539769118324666251206381442578634525029713026543493928263898156178367666684827230372951468713581602652391638886613581488995957786744811418923249462489263681486029129036833952656008877958202816962273378379127419042523511013730428854931893852547479126606359401407784685223531558831416048191215169982012435155470738547589947638271940431486771949719596385581837484310147122431926804103652535413382605019663799527033234595299765964450324385231816755937738397342779052207486028661312240535158861137073830302522653585825053567093315327085209511766223175458184282510505726232120035299684306167021741069594213447047277221073186751710362938760487334751801394221283658149008995725348948126286940262104825447581868153908349330620121291106607055711260725454137832950353132709495869578637635590672746062336038193796580405488794370761819846699544148446909946417992775728652113985156099898356682538980936222883520166256218329381103497406044962799013265467260426035539380296503500840275814509676462025895410727268539888982075169017330579571412508554737588688271330898994720535574221299194448011643585515288282983819327594059850034414744880381104396534595910014262784392628000265683326121390801171299722695609023883857800805256331445798827674423433190949581045551876966326774454817900600537310597504615719928639117069297974856213655807111696267388398066159827830945791194490863200463275205706257365260852604188978853006828034895941925131953665609927360079998491078546426554643878236814212490748639001675305850946101147740221361225792406054223935135994341233720011210641174420413729242284955942606175688247133320751412468428375630481948648871232698081634094081979224005206253480936071748030543655972160827617819329924845153629018981725462186421471917536642788560430967296502143811066700203902397066503222259071682875513849275922845047871601518864468538643495796549814928558310643706777662893055593639989915861106366954742140097196003370148093970227520322946052085128257197468883233082354220428425060888061120485227680289708760472075505575917629018853789908322861060414645129581083050119582613372660303852790650864340979866520556796406790489761044300365563260276533292471643589523848581746768521663821874672341531695942317134647498793890613992416833508761052073597244850933057294250735871309763673592183632954629559772570765174555358362403294339938577406818372160362912719339101845573652558565075579489071070227862192401616767568780514250819405993654707978159357812123542968034262048892350293110988755613791801898517031546312938222438631206259995395670653171816587756889224008177035674784273352676921882020471021484601384140950570652175809162446107913619478571278644227546806695569159998402317226796571710796633911086087414499206468805906009061196107162751509767151953886366038143864040709095440624580393095230306223247088467672662999329257883546675224259618889409685970626032484634003891699762053579823245889287169964526219607487505805382589728994427154440441917053840647695530898806297097511736333765164048138733071431282096604843066466980843039069705337296837378528581176565770136764111093916810654686210447011939115792859462200616975309085910902579552842786083078795606397687997693138919492156298027470810265992311753810214438433771360703763639484350056309416070672761467211819707509748102300166807331937007065814026042972610373616161455278546523727249244947121545784621576069534463642352319763970317019787442149484280915096278927218462304665636750431553196431958366164636835632079697138121244239974649110501031480497022832138592847432950557255562796972617653716186369763920653336280559248775107752919443312871149818031145500537802986681342509743904905562133694274260075747238684361995496929022206498396683192485706594283785836523859388271717009396466576872717888779800023430013785635869294302305530084611057099884809991457020535889320039159414671249045338144893915764921266014822264133688791776219115183710038099808219433905737927050811760938390664040576941825915935151494487717315002057203266712363701572010490811960718083400558376907120755026733121537313311894893082996249727701203112207439035598601058636917312108932588350946386998784112815134050032049104860321071845054260873242667008239606090871649073015519005959017446356689274950844910399769739738623468504286538050615626303928887687802265419327862945983753147593305251625749858523064491749589144822870275766743628096739678929684780919608544415783515482560830416112323779112723723853377538603803320533165907258396868199363566590059184425307339080115598016950819535093210531905904391233731400509086639777410681373150939442235398586242862640174240239386659267998377321522372962713637353323065791158555675514849951438923900428465183386715220446371993460532441849931592820863754958007479321439595794650538918691077856770307431610056655128811610917096525691737227636969276035751783762102760259950466844717874112487596892450254161652514649609854508753548970859380876952930404391952616994907882555606297847670569578702068991507735987882627222813360971476939632705113944567062670424960140245880607666916138025869498726103496736452625543081504567583678003014379568071614475877539378617543745116602243022172162131884924831776477143757336166793070462410343335286613977877400006775855322483552898368594011411442969791867442351028482145785575978702686324197830013869076583586153142354006287449701351164946874718433053079674557846595359438947574160970022878235368203861664460231344513152495620289941361362544353131437077545109488093789526359777145512828090315219597606650360298484658102712512813250863847598422478216995202998861426945208833837399232518783559758360726793669327143968410913407945163742900342117225371018539908389177300280770391127457430965391657691890682532064230285123900967559173856085663722916567158092871019852448272157768553289111470785084271960593983977270774152454721605661138515731834900934727383371200126047630667718665719993141370334434825336611791992403014384250039575247237259257869577086570579647755516034043408729383500878901044232048994485615131272570264453104735909584980519085903098821151505158201237819152315233707857182952727128346080814236305918379076620577296420443320128832172544006189718982155072753056794218471821144312515821397668374184178518617117154057439285111989184384944873624980230202660106859098473634615083363991194433692208007248784125714496543651444474392091354028402221104833047530822503918246162338281956187877904288414245784357475353479111433374087178199226774576267674663401454074507367102010129012640942533808123481447327410296155035861640449325078039843165797831726796209941300782707028279858794698544423898306961319010689148013278086870174124870640751430152280200237762175552550279429610809229646351094698144823927534543724384439650931370875804307187495451471548518845574921373722485202869823081755014834324071453739462698155616402985857105705896947176867264610613410295777915651396522348625623151207415430446034434598057617185807587845422124839671889739418545698204340283285806723587552689957741212986973035105177621726243199012133437627735430154309971039362971437098245669714310239132840249261062833410415192476323313863941746663327420273814164331137058532748407961915700339777163560514191736463330168548931706241872466066840539833346206490618930358259121955033035433505368605589827862818308744813111377817055431399992890341762239018754174038333093303986033287002760821518107411203855959972964045890735139279202922721227898449866129550413395950089777823777152339815427712293147812179972166220013277642574691098878649301620444455676205264882628007737441480132442381900745444789281903157104968396437093421007597620602840445729183497698947596538907469499132189849709411273084683133688818362330557055380250392400405784062901109937725627366398527708514512683830546189556483128488720526683597077150875258210307785627836128343878325034777641468180040693511797521299639689941445566453711149278055982639007999248659324015535728240676102757746201013769321947179271364930013852443938471964308549877391963440198546910727544413121980716224332079409104456094397587192130330761856511737131620177506145246566166181077354931721288770174185069836356604969055802733245469935914122142148176876723183726173013287786520913336389358210851318898746628343003082849710743086776690777051741054534311676503718340420853841917273540220511954561349755195672450219650818528294379392754687460404097782621751786615361117625799314517099057072330662364246568470712138096817319188263985855087113467475373432128035269033088228365877869167521503562585451349419953292912514480666174387460947108967451078481291737463423956362905080565858280522342463315868603917914667163228304048467330243757747546940146968001460972745761909623976050987488012799870084485607411692273589202651395535991073875762674455802097629002594523561389228828691963213850180935513216553318662998097073979759215589332078409478847075155095305085895201861635350245369572457541323321263307134006869250364462045365308905473550407813993083509640383149790322813183204207010137620046439114183628759707388459963672730706177743818253740968665644361591214980368213054273795221560816400685686105944963751138349043005299197396624880953360165217662780117544687968506685025457678289442082519799218532240521884759797576485000288884864983521536374421062028282322494766557844870379208548678814528984875314769766925508913691626408913615344484394380072694733219249407700256333561739973072109279076627403368463829234808231520592669185246712957735048775885627219521931863587684558135581186138562090986367770872860812849392039893818361727191164850334561311497387748176731036334195532610404389593092646126619265631487720126629485443142228615057625674760984719845432438615974303565874172654085570918480985734419791766724928287787904520247318591734192343393433676880439732446512082255292310324062543238364467524831961609145326746848996273393069611750483757177454552344196283954815282962627716429703491007301934768077757856342370931948557114909003043833395140007798239285036151933921074574534268098235620275973401901137249550471980493080265531152998152815317114817421148919316958964707184583287973962639868966702691085289031358632197921758705396859048954688720470027877714242716583968697768425202456195722866509962881374136663685887453239421940276402638070272345159485664038577261984588234565401997301110276253027394910006515802342094171952727131181067527959949315349493683178154867446032431827545137612816364365955243723986583865241896929874352379599517785068799471621114643340790252721364426022612700669888390028095377362114798787124456172508288804601407283785689572287912618176785975116721351924175395791654035228990441057600893865943928502391543842696168301638274921543583476865693255644612220418443055320400855952335426934636001401739762129250341727878980655352001159508938425919461321097175594901806518647771246744593536985643544961545286933217903151034666695809007358528656452196216205679366048052402689052683058414142610062853043262475288608801858093461510737901336318657556359632982565282416565538985922537407352384741086444436986104960004318337974075875652965067439328720188953536900654033391273675293582460075288926861316203518786698923920800005351977058288232265328349882054977813572074036783455516389866684861018467141025573376271487370089117016104331964618925879529483201031019210579453935126732344031548149257227261628293316602708562611477540777468899796622564787868207789608044087491620720225358961290295205034806456995461288694278278569736579681400031818699919591915679060544563648588703849986126612411931653999155555477681696171149323652295499093190110234635767416420537450184381429648839688831342415862887827575082860454448090033575861735731812570131149732433078229223980733494836490653249069496086861798701945423328162261886508027005965341768433603307403643378089468731002896915004111707905381231733851885581096550852492247500590277833499985173116785625039763566921598686109335963153030362435699249127200606645436629562731518444979371342111158362678528040717959145277350528291730993714437793796785013573881600294091294688594317152150284668948214191705101360476818991991060115055719994680171548241466885855396999686257785622763506863259347338239347238174389176414188953191073195734630470052720178618114901530390187315070428696456117329076668571636223931943108607751823419575475198615200473299296128528397368277528894355894268280330540279318898481426523642277105255139552713458387716453167257140796066980771448310515354532607438687672061418926052786299615042428127202002530966430909698264038830263251505405076783136242214426762472450614255015198409336284739929755966019132316243322399223866605304677219975780960473648888100673809776554686155626397118441605665874448354223765175941614333313717869027323606176819865057249877540578851047679573397390233338944703071417352782955647917607298598463839244588114393874693608233466147603018959825951638505096441385887723536288840697111397277640399872506354706782485771899798736355575139455584070376822455583481141897125764774156121663451750133103142222565755730676980053188146647553995276771101696507569993258926618776902841631684683499444976612968150068084117279460507369800311781372237290638154916800106797229595180466516517775680325092445675508272009767394247668533242703555786270651160378606719204171934236482577710032628713877276699589455286593864141874500536849520347879261829736577070172179185615515235630839999254892693853050121435305972376860525579866146386807421563298183564114142841634772403084105800053176246594931890995281949110288234021711114415035486624791379641993176892810426228969475363521115452937750160262105138696529017879896525408009322549751159354433168200576331801899258427070935227954776584780411271304365147279657618769812517814776869814828918420418619519627336800794908412709290833117037563474416149833874597390597726090297398530062222435046523677790747800398344577668197419609885816611745542903267061270723324376774394369444721735114824249652603766870314900752079449686834052327986111914987220420670610752786077971303339896474608620861652420687203158254609195970748289230531625988756569480737053000519933355844123844903053793518400918463035484613970671624548766574615861131473656605950286754963890788629518642463787976982514611143959549691230296433388314179856582908197458871554060769199020820257413098862024054056402012125377031761069786463030305909573666761107076900917746976031607548828778587823494963440940311024010730809096425018440723849654567189948277371720961620045964996203337236209301756879168837759571711477458807908152723467034374327150863230013040100971282729156425101256598011596229975534548967043938487217377589674586011458842757572513354757846294217918692254395744217192829190418611041405009015803931048487153032106872746121447844782382942353963759402284722868879321856298588181290570389995650250812690153376742189980237731552398848590969962205629007117441232030548278891219972385940933100179018886753909514943374860861174509202022769984041720147966007345107599827682915902221845834965696304374315757223161755045829317720195410464714774698613606757417521845472882580196810996718122954534794237688580984844575322119203339067403693710387021926912276059814957113892112563417592588507678926643559496719104621857798365781495996339526812389681504290973340771608568061072779454435251012186927663798385599122934379253646961769167434104215114825708555157890038216359899921106499348022573548378785917456448049508675278842102301902641801737620064105548812651426483616530664429671149320228580986383405220276469599129961502958699339170661995276272528074207719565156188768944925734851449481353463072593458774721468111956781871255697241587914759782428098480797033411533216957891682247175614683991829676338411591763431412723790309037065549962398257817148585233553409764808538038860567543874044442998658025896316084290082061465661826936939249129035312178675101778336586414340198182686274467675579096177261148779725905944940669996763980717062615473070153723475751452306406222812852879138449967599469559352717034528639176424747607446966574578817470441989475254237174239048099350860313107506792730196194595746910443841208657288254385429591348220740898411094702257162541594228256461696542517769601729073514435433106960352382802670166161630270222361258965820696610947616515268736286149863066934405452531196873598016496687711844807322715382294819772017502674246528010525036202504074435416591607462793991540776170694038085697448089060060159441908596277871312974310107191790414356165804976233929933300752904172939819114066945704947334372977037564628162712778927999708614633523078327353404326923727124277899530545314673242391986854974443450365394357188375799752852516751065686119409066049217274907736795806103697317023209000565206897854408669463312278119018110892394187796851024339142805066987670963325340237599013560595925240195250902640186113001788957370601759557347364285670484710044895338041153692428013741624445778487141873942979255255876486264032350052606669271748189894932227543506878109532414546091215517425864124152490176209978701975787696053561091631482787857543268234153012754269527811022416585525676639361576120446025357612868956784868811700272134321749321926825142153020337343131946183962914360399413367181568904044184884319257753214510195830771979677872386924282212311150656221754686584410148067346250478283449084710877535651213901681884111444177607107827253812523021167539482731205897650871350691409057878033789146406009024007555739855388756442520984401586543797254087498782276314197434249715258121111959119794348699361175517281620651395998327071561133837680358010299810809774377415301443459072961271403171810659491742013518105083225489587367342977040444924606675809805161798890605728873028588267571766944978961377233563394293996739886392254602455078673549462262411626237239505532324585374270092950687978204397746424215167592175836193959513667010280625542398769916135582011538354027422874937770464504366446630133570449678325377762873634198207299105794561054604158581014954821444502874500868988474348438331908801565416191656862837261960515060670628713992108679112536993488662258433483700214382212597738310925325457159747202875243676229817008707126362009868996566798508588527428463189931219233237734670192558676379187112756274532007079144112680086757100254740215539937113413978113173904642020832000942177563551747725203548526233474877399220512283755580144499686821396515404800324103114329989175218941027592654430429985087223618821521441202219498734470433449412780227642716394862953000529020107047217612109453763390763852153009453231610334332242484843004073686131501398150130121654043812465062301097181693038802031786854035120110268938229982736208236349771912442049829548862297996973245451564950031993484023361089563077654068049490361924912426218038163008890142379467350934296274969213668452972929393076156790766484489212335227528024112162751514535294906970857092591034097206413795241636459685473849931181371703445118208731221997067208255969852623112413254450370194894063523176548715626716885163233467497045205529344419971297418680333315050963405128866439188879583735031954077192399301191152611708649310848142077127482444142299145124668599332731577404034911669398235614021856610162912034455798067138072581547761019293042090940772427378526368651961108617247303538926181293638332846892730875395399439585218725448781851611120964024526187943207063243752495809322338797229117584511930616486824801213851888276565516033430350298694672582120456865323887625538824308453659197416397873524138839058441108977982660231454341065749264434062909739811070245289377371449601721688805931199571506168477587744922669601560054279179136979077780706399195819539550206023749150204377363438503646080723178065641400322807870523639744846644499127297071530906456992840199450736544358535847748143220034889636472537529594004821734600111169881847569946874591526481531632271592513069235354431939325268143332260134537360084775743538795711384768761584366027911358986340599043575972452692339230800967884822052990928262019339443395644254272306554988004608211905221195803539605980924777586408180330851161591334861347931765569582051599418375637806567257990058879926604662018467860257360057624265525381472111395769928884783586551571744442038765768487227380599240814885613281323264538059004428773619363274938931988973117905191058487311238797350459415199599380172822242081153037221724031769140290108893564253105470927386638968224377574109696219026290556439201239589673885572898988223448515329823868374292396186817288012990038220070752102347696680334339671767652628784381243913512157375105952567806450381563791694430458353675158877071736551824439152142782160997485068576702477565938031345725447411035442713156676679016742543560648365593158215026866627685820255883097018455859433503596940665112632214848225565321941620573016339074072726315211380666505977851499976949004217187861867641008394587051429977863647523178579417815655981737349003775514484016330245586554028055364968425275964554938205184798223206402240914159460773449955103809186836196172316511245416588555994372219442980844719628280647699787759055709497367122392782572525570040097352995899408002906677712905651283239881577313079906906839175730964886505400089873400043150872133611673502409781133421247781457882911784341022336245193041835890883135865332878086916773004705450107658811620765896906958425802494149030584783903329748456201336672171203248371885858913297767475574566883256045650650488406506167965114884790602145657783287244588573042489473744590328227421279280964655481729026855640383241558809812707000830794859788167890501990647119167243827946886119023755183179639114997328677145529647226640110326771607694429598682659716019176742402237597182790586208109754790402030810538944624412382548565519105531552632202229850511207613161054787134269461780735867930136940141381359653941101332379190162655822872195479685637437738522340746121461141945943227763971755163093684611450647267317725381486770167593833344846862771906329788754593958296750779794039502294107282641886033832889075812944938649116974111713068885981132517633710645405944057802185308044271049901632617412799993115399933944826827111676122859544950213254912798654673367257758558439358446680699111997693034132764878482771749683685275798908851117524388882209951190959748621416024138532326450887953966299558581896877526139711146573562819999101254776664280836345271014045541765396245522009796979775895404766322502307711306382071252056153594185540285509825610423340213096455338560503693104950247882590945342539668068197221027720785768239840901616185518613786253223033736429885424016944958216827451079262017640764869871091692751531165899216404015430616022823994899897129673199489844913261599362515881570548348444278478609061638899971274468256446780882568823615438039621706111657990970659580728550178872412031786164398023148204175332324509087629662621160984833261594305833348424649718516421406225822065086428224630129103138330019865380449297106405083564262155904442786062460657890144336424328012591983911250636531174610190877468175882720483514203184259634197934895101133600599978330894520623952448539952883289223220681523519814909428816706317042809359180116524004716611761589464917455684204178114513770469309186093667215514356584798180607079830303824415105431492593745589763879112283678586077809532747650321224303555771718654210539024045026534958730995468740388003133993278461710612423467792279478440248722863877033135211085671334889154758732658693859309041726707822513147353450623190746276050363840333846205651803737445393279177217055780133185119104800445906251764922906309203566702797000645929812007414462763135523115335548765422107912503880892906068709236813112515528543400699648923749625465027611625901611390285552989195791807449544148150263708170815943343243918499771514817129724681767239502847845235173773270287664298854464278439469915047507057274030060795101160190388536931263453664569096404594817544443663359122447095607684039050994751568288129429920991037203500035098471678603103655261441535538362357477723233091164852049148273789125061559810672871978516710329554462185340243667258099766149738028699556387814535303334306747805512826919234992240571667286950370236428564273477852358509783885211139211890403291200199942320042387923396620313812955186283332338169664474985075021557046925138861798216500875243949507280059855389440105239611381826119845966675946897359199665974827790713992767987000442754339290030771251558273761594286741078457518657179604805603992178054709484422873367320935222477280220180773483744939222990100023749449864657449607495224375810148117014754518755751232531995924191032422659614975120427859360889048305090939366163894775091788029384049982141946673986674189218918271019202636487043126967995151812106134301757437507368767845390247087346878136428631062181430618386701989194296144452567584437369201245329453109162200719379333652319727200661594702164232053480807733755438407199230746331562932341902502621919014628287700118675998487148245677690367072011332241348645832639678561790645435800657550902932113874164261201050631748020593598247616756172074284926932146396911809330564785793374228837891562583143397167396862500657130000478141324144233596228107830512026258792402446188268376813711157244526513219744909738967497889105517809267791238275711026890269442023555621604834086396305751204673130307761954361241643534768590285798660815818122857469587210542243457088352790814045978825867376068144192415640401370744391877426847478029800034189818451025666298257328865718190613878523036857850213176711133033108196201546859123014980660507608468531101705338161637426174870286102247371182963499388806880675243270416506333040916646249154659545903207106533820782036603990387458236882644694174092664892109254608173039683418128773530324084613076114113199974945231505771182187965997949578341490106859980073022216643019554688369898794883194718228589158023189548220566830703818575056889609563093447423230167865271214811129262286716618351670135210243042069491624828350196031471565615032185597929650574235433324388093019234066719174825559079775911028466086199639664147001142019109399264787936647698994248868423645362369306421512772521068237962157500288171645585658091483131926874655594646292612411068550408794613999752804265562572827946958979773716687832584508405440938321268977955165953501519288663138934527727000048751720428852138659340293311155082006094393008071927531298463568693600276273624956169687377885219801989913959341921727775519851315701300462837479311614125439305640719145800980677230384866375743693864263619996870777620742656232634963093670433983517448584957785912289401443024646711316097288455676933968742942061463833651550908363908944909880903002501451101877946664535772199371920090149991738625190060297488203949060078210267554246607262754403543120814348304542240812239640997987403277618971284943306764204405130434840555960069857551439566755934139575455649200071383067016253539924610899134277768681226084049786581865411780733459036474618493572350404107378662031095374619223479062490314086655086104273463300257162926197162962349143891645821312461432698582763765474802535939981455111196893361895017035041574672950028427333843330364545281194206586076406952698788852790744058679293895363884508389585894969985932647261962220605899884625015367945269189740083553941228284401988083981959798543543797803672020010424319672567534505017125821882424932160768460518522031424626374601752745659232294156218874512627977587102603570658102981437754245760543480188958954040558360702315697725954703373787791773464363454848492662425658649751069924735029657885819955745708213771805711392091662455952962873315925266410850895366798332882076532699435547983645673113432414078112999807466070501203686909340619644904641566425909395884079885230210436285366946932152999954048851666794952432473564678616088946219072441648349941002640539543438013900382658747818901428225532655958924571925231225012692789268655809065008811205655753777458438740691659534079376770711594527623745039380182891347646927583666537732093750826108070006906080692056853339904295424489258503464799090570888649637525953586201474112324003235354914726083358935304743180351695205524842023143984709850854265986432906791254689482436694573059091634336099227014494455313035831817580257685232115234083072223390316292582023937631726044071322991554474681741288651256956236202459042834503114022948016726356451936919053081880759845849867926398555272571414273084147822258354648637423047990629023177226933467341740808982180939819221867115721349909787048462947184320706640093313222675808908950932681967588580637477790453824385529544621600971978959735164326930106872445909278234106665980124477883887277712446219758177523368772228625595967925482048378571396183383107732447336145006799489721810485726521987181645438309911844611079489235669989469409235358911426724846727090716308791397040530572939585816704647985026486113974714861087145510561757984819709782787029338060533476744234660471432160774125945009921670761940378966589707110088625469001321811719657481925121029262786855013755433367658397229883813165572767276295304377621419128483244643009280687993862647079530979024083904596047059454186828839948629764149635289868564894614082606427616273660214447955244172273765809391866624300426845086071509980649990507352048500728960324589886244709103826981118795076151737494352163318353596818889895814530063339085459430737559018022287879835624517601924915476986049735632516755427489313725230997741669076997932869964199728905313124291167619266565644528512721374360376029355660363877851196086181924315396889990242872221445792991759163131242461515453948754520682949739530281532183355769980397820996056968193383864747401138944746057489736500808863260045180357167919614992512662803428274424883984569552576789423170193800641121255309965991224933458188493340273699258706666754235121647480666558785048839305221780939254442028715695448386229662145782841232964738901283261388377493925467763152500682489166510445995543913987711786323985009524888498652973517436646675198858243607232316549417037974452963837556844883399751820173294026372730824159949729989318019388518177563465498560831938831396806876994373270351250210147404622371667880557671235682609912162457105735709901186784558483060867922871233831337904679693159380958805252981164390759783475378109929452099499360988778817339669570669467178163555547628798328860434139665545330128579237585197334323765962300836879010936992041648319672027814938003962128968058166950044036883956037546849965893091021850136025628273824655169334234599872851028348064372085391568518509038228394046298782937599557856648450534682148766800913818398127502779944635049971559501786032461234582556569110710294775819084477108435131919634675887387643619000496162882645732163280082249704606652963632246578167158503874029006886879101578896446850532756453794078652504542625316164175174525477462846296302007012928198406499147796780743974296773150533602212424973467868270520374067943431105242490481676423485421016277631398636670166856868121474400114027450253822504329566045819292454886979949263532016180829776298640629409159296249179129254600398079947497264705863942471470695514748138772418185710983708267507425077093706997224215671733663862163219943957652772739537465983780823732150705480170791289818505431861378719569674981432834240040566387855163839524477556495290837714967253408713070409573402685220264505341837841715169007648546177861322316414568487147402029317640466554461343192376597885372070826732748630112764274179409853669581998871874482429802023215224706584616416581368085246853232905087352761902137304836171817618294596453150021159415062411111053554646154153121985711950706029924610198678319950871054170552364419955612445511144359476284270038411427923447249513473717428983852286996299848631858526160628621033297954942696345762216989389242730674278206880533583948809109645548920795127379616969422172515814877251686827050880474408172839345912830326252198351617878033534869332038156439945306973922217855052362619741175279786351191636937292351929996175592676867301372291830012431129612302927915229501598059511279147674824707482719621311137089729318802762297907992591259150289290068051210098737112218882422475541818854118811236089810406825789967236606804011502805540214254870592655212119273617415562856638600971401943612754530033687179101770123365261440498023859539946214052897533019393314737963645650990733447129242453421632516900135536546858886026759166736423054456447342838623842864168561205777827871699690822468487867900459642452841495946633642211223610440680104965519978846617901570948879169400457566252161418964365379677251630790709473575064951200780287133594401318992892971063055165364614061868999031955905777724313287690633163552892529347539556858193437655382114603412287549114403403102123758380568803176557839210491555390180597985864911939152742816509748715862575766866529206455231259841753032499105444811964654200658031806908347691848485802928155062131744967973322502755879291427827604732654220380429022917771626555586369055531368040742386389735926042501852923988134581456389128137658830003400380614239809075178675972676166318250626101314886700254814100455248497883869810854573609883086584778413284877934906156731054281954317847378998066572541414972144112837841828699394386155024720201662866151069053562586982225981797779844612310439033045542459597098608901303934963580464293401916320729276561186057415506624629051630089029028619071390020734667756935535660223220250083099436376609329796602310833460101555180163897312815525429029130885821703555307065090973938100097380909680637528028932439479254906371024159198371660285510148298211155844847719911752907707031063319282302282434297268944614906012868199597064440894008617808129602145129975113601333056727114051001805139200329083947831477194574026045507087008912836539104856279021323718178994596646282096789349735442696004879946693723842109517658870555523140510771016330615101456273611517291186770357468986326133187813472058155428041332198399175405038310325925810845667348186842815391264924127194700182650427263333961301565101920013820386266176245541743042844679215474892329715388434275200753721951500786165553257970261743199097756318842332643769050418535747071038000046111091158408719320390842012797139711332550262092702722661116735622315223756598455321114061116514549955461918817947386570552669956515059563240830975693406075745167803254209181408749516054995241326426805195629376256539606296452404017319345628800158540586920362996876708728839097492783239763050810090694855287836289487030003029111767785321816073193046391730712418974003058792885495577375844361924536911470667794095287324425445703382785676748200598892767744865859294919874275712296555599280777340447577123378902766138187870915962358818341722763149546653662110173148575706766895201606212860528894943484429166253240239708162801564508050728266985684007157377121371249533148363596346481828014386192634105398479721687322678868908647395003385524241960331745468547817731650418579865426483319606527738406333908539412258239313463598449360455039546667008544787873982878565113293476725995472964817782607485441607168117271982396560529132609393069925201573926535705762535157688221052592479656467554537332708841020376179554927849086225777654900857680259292227147238553612428073269456488148362763128053017940732620561052017211974507296846940313054951927883542004962491599728258796464465361697931765662410865872250709714472220952714113993259618160105830089415630485427027971040200665960474421945818864283383475602921909730687823175121074554528064231208420193014649377896833261038550443428329270970811607442573385230926724153259399158590183180053108312983035693587182965995017579925249664027609258526186885481196506221166798487264778896506761409017653302421603072915575148375111995889259935878733890626128319826276234553934629868248819231097292255397243201069958494856116779719387233668897756882268912136597130554699259433072222358999553007939560329328596655551043160755961241793884111495338033970365520564943541038149380392980865022797787355151165925603204239501241922990049498779610613640552413859357394760229680624142936280526580856581099592163942752507437416015812630917002791373787684509733486543834034864028904250403518420329140001205580207389595682138091161506423617652033662931880576181454486630837318885844559728166390981482854647583628473514548212930802601452871094756171656315841426689298457667693158712808947789890934519608280462415495067632335887366656713927514633272576425947028871564295154781776256852800053311688237640234440907350646154813211235172657833386052639376047383199353611414078192198352926895665908939708983902053147928302666874913275264383597269931236657481445438945976022298371297162516565792564503055758078498706759602267541966002926790718162835485333386727858658445444932162137018258407920632668829873678301034251432693408901067915907606186218027116056220511321046405567471652957519545792570374737068371778436200184579636574092052096405127016020781726233114100312941499018886002145976981003633581808674836991395239869320878330447959370149767369150776206277535501283481537527524699458339463973227142045979192003227025919227233874538895736686988474297813933378998008519304463701976972442412424527850519315665316735545739587169579425833981408150143812148539219049362446954578085058811312856206312312320276336669302087859361147134803634366470338439145224848028187266869319204409870980315533796446321215956946095041369010803051453500863017017146412759673354448028697084384873234364798399173587931453595642465455801541325747758540135260850272250202227021886296279224786703723490907916145476473202173224208576779950418301990075221887402211367580129934139204627367343370330117845674510696366316208673312694789601556706992536570664044355931648406928205644862931312743713013607482540251983514814944253289550212017337028830917207260131838725907881647758457699371161284119422075134888853964550669184268216392469738542368754693688347408027022208038592630204038210936736455898042106798318011763837581621100398877999656446870235775865753282154400714818882321463210110544920822215491697762628334628542008939418987098980735345053805650464396933326722867247285083592040460838394678138008958251276161616619126397306639569281061030008658369391045474694516797077046374977615999373920271855811719003135049065053908713332724462494077752322901235406055503281006220317944934994872707822027342370813905886176822855338852368331916083364551404356044860448380382869288781158777079894683360854460174540573748413733899605523935471356768885649849257999749734486694989048179283688235652788844313422693478178279702663093569332580610628652149721240462219042597735156328771676103299373755602101394852557481117962083215594545356115086013897397641355998531449917921327046648313638143194423488943587459313284388514755939705010265859403700607554422909727433032945946611984798070845568949732074787599425661252056168185740687371591417665696940186657560009393752573451886641394376560001115840506130563003254201713039492287450333759758720141281646545336286796461838588744272823477457679134729015536471507262836852962349949223591641414209113531353039569328452229630422042192175618348075131956703601224353930804980043960946529177017347934736688981201053109244222524309851781355211868604070741477794197889483502516392620145758273243213579740462420834512042573156417438672433359628526382470863358312708108874531161291921945002625005900113923423732756330145459638482924997527567548696417185628153565610131709095709418638888089078643414206083420090972507022559228061325717888910104283056975494766141266123460738975700195385890141664053549792735696668564370798737216514511056732695110416065990508508407359724287665154400318572191537368381310903001314483316885383269643915722816483637859350269355273217045015054972373549463564313875034289133538264547263688348087473645604802258907248631921462625203321399368778019346824199766349873839439996935783500594524074307797576102665060216522524006635747476834785007631934319773180923387977784421252758713596502956761247437364595252019638276866241197011440404717144398332727838570579906243700053215215185421546215025868537692919217033434468212681077777965811699459517144999549079251861116452077649248189127368191096681952238791199400682363856915908500392464155072241641277009674126077871365544891906437043219256201527309465785762080036517033332423867530977426526868488105858662838456101735138406348523483964832969975088094622864207224282917251526751215235150302937949540996665606647126699544718751345121622746816577900053046037604387688940917352983376637602650271684999583888450946359339684956048847996377957621772227935973107761526693990328636815554776365817151919999069171989852217548195353635192049581818070843586551038497829084430644329767400801318364262906471299292340000288059197079778515304185537693667168498144002031653005994049112006242966769401958756527962884583739346710604793538212117348011577919035324403704411186524361876926468084056798468160938829860416540847002148858430363162512085774093270584965918478097092267552814538786103828214481367540473823479183166299751196978666601284817581091697324818591630916178436199505685015240122517205378491312155160948187224101855131806228241083097679541674338575464614250549107057832621480938131750042293397067307748321083561078657049554919752676908062828051783956011000493281763862372670153388647882786745219566688329259597699254102584423197536008135000035957144239175679352905616763418614845224459498846037233945662110456299000258036378487455289225782243322125172642047152879783461605835318952606366857226984958681812637817971849634642864766628305589956369736638232616486362804993408404541886936899043191491584229307772400039524104561124552075257119058204372347597436678069875715934069287378722007786426807991153334274298460794025228200423674389156933522343203645358374386845968500313239052155353812727741666534025875073036679774407982794012872555028825633651427182831869413760309126994987825235492044572199903579289124630039069554661736931178294285533476867724806744205035819341845086751757311080583434382856470573192037346448068124020398751967764536128949020820637123359767398290864685900601088381694921146109217020307584738523948308834334962758285196222113076538243047841801999068846022191025782954333424637376492562204386899156567694491307457143898419453814671371366868168594369247230537427409599084522772128701369394064649684972578978063496596978461313757260300495231917239724867208838490749929450241195872266369525379118837720614321178864904035645243967622009247581196219565455857578265496273744565141540889336781662421177774337806314650665632209650140622730281603424264798865893028907157234631125009774881250056030274115143634934383578135253479488712134355682628780877076850995748304043622465536030103077133510835059890930328569753186388102621314762144175529928139571589627009965482990115952562725671481771659766281562251084399813255178066344785754215204561340417443875275418688886374049479708659105446498202327712951906759904814130968662616304372342880437061020237161795100611210731834862761879474724680456597286143630467597484982940595004710905183947298496963680500333602027222912208899503559170508099434382780629953074589544927155270641803284279254078233222704466454080372285525133938461849333813387312772612766591715068615304938589730691791691634103254032611807663712909528926714019141806122520619385433118518211641183263474696964955483051208035820234324267155321232250121739520034612572136669041652308627873868839285296078458164498700114374113599317758601819621794221217329356929803928781350033046627445785938226493844866435988684658812108108687107028242195549169743314904710367474061244472170193119631704741669624564308760670102110446561128970990245603003799311559742332330801619858124578148351509143591709565550752446442489802507545364616063901864835290212733331603877222890172383448976848010681810559302994951706476824078228178724242710702385529222971637476466495124125584936657899325161332116499492816057479462579059221553834638519469529260870084275591412353575181614984922492583809567545846675180474015897278381758865808779162432421948416212722347833623957487694788798652009374274624244050050970615281473774233555252778467018754653255690345673243418490964459067675958459947368267013160642516694317997664275407180174925312388256004543835264845451899156029704273482951647388797092989620471849047277159484887984564269772979088554582094828067082112929983509593166345959962691245030497015172193544624686759160782810808090119005844491009308782488437586759230242623747896610847385224833292481713714912522422818704703341975641751116653756471180197697109904818400542416768785118868427950205812798258987567000933877597584357271501118905898780285835479195581601650203858832571765169762745278557086318228188110876522452122042351378834728465903163479837387261047720955301050113409023695650624087148806470035705391046175427254230596116551890445428199280500248246811191441223328608364650589698497855824041152194783524703910788525427316566154596224641169991073116731734599002755678521663946060430504046882402626032516681008677735030983932030110898140455165512295802605991217678638412688118072979132696751222469407532159932268650095215614682458656243038362525044294339867486616937482272076655112030403401109668455871607921641412242169833323561753401269639856004441188503749214471068013389145052912547470756785698071808274410061511963791010051021583201856338442949846490230822746405643294728718169791246457407093746019380758643913687404222339162200152743032699500440113781130969440547327065352623843513972212447663708793760667874751061543209544371598290659370566349076991936741802180604997806852339893456885676592395098356435636930328929950109736547226133184461496982271127085055790185827548216251179066561791155368325735026936679261103976560085074418107089301310544608260675788235871253746143862992865616362137155826070279697555027880667541047558815285551132578034357980329307815410125236463563007722889588647807818348460347178038473747979145417366005813477159013637610814785613726076141602404432631650948004863013379726643752757566214444053274230883330019004506520341133138325520961171956684271592151519471571860525827357671307998184993460943203492089752092373817209507061814019092212299930774487075546529184755178912470835222810870902831269200872947284914805532669547917134803359136186165182414225380706760702747314528435286751677532936465086728668412860653394619049356138491390112483938425955830734175229169291073994208625727691939434686723768026401662818041477783420561690098500812939054169411207123720794064658587469782540073757801592414329224429540515506599974604746882681793225248383514533081100392609647356826680481001476886330540181650477125203790117867078495244130810589768637181316116604574817716116116610066979399816083501914474421670835606116962268163974774594955204684186466950389141754323841689344519026433465869167326991750754229100596308725132075544026093661292407375504102533041893826355505495748109050177920048037381711318256908814894169084750573240536528312020522039089432834130204919581567989203346521454723253608044172044169088414775269586696399300643497945407287614491096969250067847851565120295887753783887798453496388712054265203977710794740405124194027021677433190436438424908096034441500340359231271998501772265548294469163766862450489188474404001206497669316951560247832597302527624724550808444020840490760277508751747518089770175892687472872974317097996798794050521851875599132220099456792846436391677677182115180489354008799819527323999491463024801567162716592704700938314500905611409162709585806953299602758835603315476710682097465143504287269695350036187318670402657160355197953588427096705871876414834939619718148605453617935779242250153677232761832542909154405068860674511443961720298562222552373981047278268121005939572209649226375759279427288985939027574578181930420770640228977420999470192146558552659185473861441457531858088190875768639800350624282639521752735999496946226829077031957996848500167127599003747911243898832914701052486599500092852296574431031879429646879531378739783906873132733540298547825062319764679258945617236252999123867425697085197387404329485404263813217889576082654426437457558882536924520048528333906277659330669522407318994945224166903998616256767051984871475206994600695869812770392178458874377307699225975393936101333169096476592375563706175079044782986167064382682844715403730430082875277309911850934222946299742330129507772973757574117320710981571138407253164600314136820485326212717690917029014358598161833452042054923853783220221754480831510582069044439846929814919529028925232773470117596884338244113861008080282876296359287603097850932734767410015594984647846177067701502300745363211785317621481614672152520803344398079131354055720284925422731484561035227804025221538570562361394149129559838441625927281541149708872149680232800560081784899680582815715102352877831262365494008854280049307886733738831387664028455144491546973887137128510228891692497281575305379236497519655509114798572174415909791424123923838962681533380375353112496943313722348125113678666607404821434920051216355929829797993106852851985042638615098557629306141311914136374413248177054153546706658167993572474820399365455067422125709635052660824777021153354735093697513116495165427017779680487671189975788462062290139031033012398990332998581046777306784851914029911810790994924728026325798312067883565511495445148005616672199983181432517902696409519686237854418325281082816401608918976482579899030153732836527353246244799765716812205153494311704490976788089783480229946974780136001540611920016924243001267265326732306557809324123919043754861077086008170634518003389122343102201546434514388444365703109934500952391524911750334482523205190056935282218559294965496658707047880092916006474313700788870930473637503504338311450128260433529232316125294449940194965191555698517489120927211786338925582122683229851499383426173695958850455923935501670347066323030501761348006589300758997692347755849843920856152908133408814606404518174837115445311079708344284933902154499847984918141779766338964373652060454182607730876009075388076905828328303026392949291839742712382705910677041652833803907831406181310382033293035574514486124677512116258289530477097124571517129781510637125198713097748778645562794050144300749503510043598622765914729809480452163366851571534525641563298372090169873019715050118015092226038997129132430183903174181707705369866179455608140828641407805529765237536606310771657919019824311347216562325664157045266637905565312262483322811684376016024882206542745903523510625065614629740186159336583651942362754901266166097460641678477694407281007762514732607758321037939163773739311561085917059784722819049042656570572634326312843633558131729962447457372013412992714059231502728476746788354198258511359899776950319372660640456150052380432443406189060948981066923042444206249988232551640362355581222130853753639623663723633098157629821847570312462731716216030138543829070069546527021999005918179569466855901718894497249336316168967252556506639709793746526747047775819422320975162080651765529854058174529475864654960895379765697009611662294051848017368546380896656803948901881362383722717485072250283964042044410464304830212879463402685499982723058388961425977196764957912408732798293486848703085694699189148035790573450522504747107884612350963611630662716014810341397569688431544790306292571871740660776060939316050649167700004672117387881004160186761103838369723773750470430150911546491532099194041113913437625308403582274863656184971370726823558147251879680825613735145678154063646220966780012503870313211452655725322638781848302002295206707470323191074403309231366255486297893052649410657264363736900931029221208430213169952062198940645990618414069447155928442102277030674757720256251200937417024811922818748499842105397131758808247712829592689142249850977315387234147092023527507514222431125333579085507880558041152032712767598767126202355142150901869782161873333147372350336953213798618899618033423664185414431816614528803491568937699938228483372098147615819427844002034000485679471084276628970739315421237160054164437496808703891073778769288655105450641711185938893195528582059053826142999600060550423389621602116603069273793676182771174947435942732754980582246971911367236907779472628305764300337277498128902887844231261152813531880953570156306629597037938432425801422736424560641121061786233543061566661648879018934312585289955368451973002627365437066280476427950056220261581300913306062528198368231659958968364595095433015918938757311539468764595255482917325306689608592662709075034994853384649634981796188280449604766292243823749970038811868488952368071762687733653309645058955336730800784602552183143015696013968590385449368584409349477244241981053183924530454562598174088081798984586581886619952917514821948586013671974038106553324552226768991053375181566820394334292257443126157913638149712250204587137209485062856699965295104486135757568732041161745401481967394324293458617638422102149633300808736941648977783829037849809939413315493620473223504744113967805784870320141360698980355548420041245738316903150896269721587916730737149106965407132838628557250727781659527684732511352808199924936779281176367095335480000232122439561550221002058345145980919288278298692778585896005790563000427642294874639582125045560387465324468765465281603657470515520766619397784291419734825388161635258958309572070000951221467924051397022787609238285471367420591516643558667174742548419559376531288849554111549995617312575072864215420227433323104416964393995389414769007031128688996490214382431192037538806683437392873786021105562494238235414822469593828838773909945106123948361017378144385214077670230400864846787695936120216933242361846154797934888277123581017837792458004887676920137620346330059385158971298852001176847274310168489285211456929558269758256735648883991137093765632030626212134059201777664256854496150943200950571126082622426554863859273839775008050440575798576029888582941592324916750400986337563256408396867854200829911846694482421743587921242422411599183381817488430377471782344734640037894618155797837692608654129445611355959326077522311213050798848309806004959418978454625736674209353236621311074769069670401119985927838318802403385047542216331134634707073125323705287886684091154648985110356671579804785049235146080403374259109061097865912334048097044563953881457089552728070076298411728218382215080285178488315966468446045385496771506986015341618862172498375144321509805405760534523614101053693322560626755582993078014166354116961553872721536664137053315742935054578477756106552383248300303510330444029593625436415342762907098883298841993554369416245699212427035297101367485888756030215625207395730061571064936663144806175613111710426219723382484241684688712371151267298394905743870505411666132263431309942631933613415935920043583142324200208309149023504688682206492019328074009632126369114988841513106842685607897955114523451799710658996685403886944415246376148408900623148709514287050112599028111979756106366829186005523008912981301572652651968142047375710635098602341870202560268625870734339584961809764515248277759993976733450472491507188803592071576606843002403706821421108668616360981462157825033660789691713120118541967488305838464885932858334827396522426682429318957129202266331482318328634860084600037231280851930983995195556195908194836862798136637815152869439074288855406021131846331261880124909114943190583805438088161866818974493658175003470513400711325418358009862501281027563963779415909882601448155046312372117641100596798173096793286057252598283644708189602285575359172651483041778417022139491342097131660817018251921102553042917834737208342956464758251064622568081960314314470427928748905247304733281798076577578537594632565056842386767548927436823529489005902291703787234711617785641663888575309095573557988804428441838682067362498715282664572295561424800629150099637456801587081217820771175122607869169913825116752308737677994385275367824851019275795244779452235995564553600086903001304297448615229171989125503886410883877539478810709816966790476576240718682223087031445601345771739411482934725342167722012458230372278689508028182160721871609055754888999181540767899267254380760986645413028473779363815716957923183717461217453499068810253740038719580284576782748503346149951204015082147115547857123695192810118301692133266905556922548381183224019811872259085407876220121050062288427564535426141802693908475372295204932225170106097259329965265827771490438178067148942931285196084964452372844521495927366893970056008234644379758189938597864886391438716811157912887926789556493662003398334603818056652202872219627058939664602301713548281652247324562151891417296907336963969104355938749317764742949761717456604946569856788732967295668387228174110665799473945978415499460825706778326801879284571807171163247037349243321923426327282492318090291176986500978899426748084878550562235489301819474035767413104123875637486156486290920037158012809066387980365509674587340763104359761417230821757610094481537270397756454640975586403404197309219223064245280932187379095860138691449547921354429954947040363728727305216944629059734534156476047825598351677749025145669441354751003757898827943969540091988499711053045636218469150747582100260599991459478358574891509891052239519836465206773686146238567038081818294884525547352368608447528381817974426991919773593462755114802144983961023906466011877971335451298313952335526659440178937068526964669192396485270011323189625645064369510315778721938540571215782865593818494503732545742374017503591608502008624103794736930618256951434753598142247315285266841073360997069947490980471686118037872933864229793925017467886745679361373509879387302413966137027151752964441982050630017533046187232436232390651183692955904159335463349347684850420175239022382997793658323431964713760555097575879158220520205176344291336507906249566515116614390590003740158436041808700650668331047241974017259491781836239819080027658505310111130659853145115663224224817048646472776247757359730223966997412059393539608940430558854362669123440666516512619030447617736914810181186966845184703550896479120434030504890194255994528284270523481768329597135797588200690771373961250549015842079870658586265011768886632488899668558932963134791025860432556248864444932714508070900107600754920899205304553124022055273968992754320694684415326153614675052659147784772537259089755582436427825726871226199318772215520857352265648575873091275500199399657263214599268877075557648176351471157756380216916084975657388198893879391843242583269266643700908061736943179163645608210699279388324938547694531381351691870254570859223072338696808706422648209159233146817302717861078073239458467588168474511836720284121056817465393281814910082958014764451946045831187832299211360667375465108019945904006965875655660719164347110882174969299233622249583330095902407385791391192794821177549818965995075950832262661825602602018596488164106604722555759813411262874040487370791674658632114169627157326004433405590940043552420862651090355999784126628800262784362361903937440868940623099529003512699202363038842178497466739791247454611101678883656180559394731807249519107641807651226289318663413645275647517799226644959157073182076357907654789231415226644796122527452836104752263495807366527122139897277725818594174125683392114154266296011672047450570432719063913440584519763809764303533530217965682356666150249102067008528803748640767196344618099808851760273838315525371347510290252186785000730670755304475240274139583201845911098132638625853580788551123487736978805674723555006230364014897230361587132686756173014630418314684491855065774000873299396205698587299026712171345310967297831546726681126832282533763340637129477500108487080302393154220439097844839246394860586149445335155207078094805819247791785109401351421819358984090015388872174732444667639909146416788445237146912261719425152276896935443824756726317820453083600072225309912513625236729869554663124574467747707621584587414654582497847139420873396486167363744030980822100129185829151517906565859054180608569654057049212537360528823897291983815391075572597049323958117643933929859310428372772504458097021009630371132360373838278477508688417219478874759427190975219880976888068366469563679858020756239575183550937274720514255180525255404299584128102025557062934963970984762431511039427513083003664678106447359978353903562242230528617774540658695939191981275469761187486997210914254500959597004908491739960967631565326807672567460814123530998511357290166478096332694955990728369996548941121891940835283456180514276648793847050068727788104995397737633488797709539821270109304606162718510643249689896306165053873872203303647914039307236831903707232643477166673980713601094619616160687094241224578341409584377934404790268664815996341096704970332184230105067339571500245021817413727114289182437527190051626212752529151094999328869689883382314228899401106220043999107203452902770082391729143460883517260644942220701189277351146198048581314216739480614899280410651031866101307605728882490353247290510646233299053761605906185375824110927290934937438944935309025669584892745895972872332053105765970270726378987624514804190900258083713334124315607850573408562410608130195228825744326164806696095650131669701139077492804459354911738810607671844927381725333889970938080497910004211650698115089559719049782135886870712563561339682194790878255009988325848463875302733028294998994358661487877565024727532139630921336921218070339953629984623949673850037835305946452826758844979098729850283460594874122094398654743672352231830855450578138948891123585837278745056030459262649922230608266204496308458704480947676063171874308762120522602433467401139384355400848250961490759164830089796602007056343742033257163093882131984030301481469039788135636109430728884468129663789781668406905867323976572248875425089906478933374833315742547113065713938329597755394952205904113758214205960654180877055547843813442740053148145095093464060920839579620154207203278329167464513377891997422058693457287614538744952713557626611584952548394019448472501228815537158687521513580284816368942932419508189656268037786989033992585712702991917060744048265088150828223593926739933791348960920598013041069473637589226268666808212741570855124220527334290414541866508163555951832599114766175347643647433454792640541199421429919382696085245881951731748401781545179210973072218146307973993101452651976986243135808717950346435137587713381376839708468797590771255633985773717264232827612094391490958858813470797842645609971807079673961001299608830089891732737947108316058750996053428893213279907979445010978891264452176476707881450192666066691206588997296685265125987584532587223613689244155844738062921289287096296377986208075799167251893156301028532170138400192857906798235086676735720374114316718248337653309450444246872954905694794835605367909736690096745719904978912693318557490055563850452216531155092426358767190890551423051381748134628519086032004183285900392701576085139820604564000391550296076788187374889629089834251305626409813295349271013825926000787663062134964218338185368537953931395183646409691838817549486959600180846527020536724747660172002444378454560328609213035306961174979202640054705715146318474305961416424136497182223191228758865605565935245869514178899292146723953711784192427179877287264730166089968187408123099915052375148751119915055676197210135992122711786930861551335908895319882265779970969942715635524286230957919392223851394639675271129318956464091665205079387339704268373022186190677777616557071832566752377300566915245859360339451444791167843129687416349573618529294070271039708421342858954708882242484343411717315484049226006068921699692065939013371306555474082314567664215641220734884780182905221334294353720453856352538482148339491844329182402149052300925207713997389709905812413396512086766516151602701599319418873199465640298277780398254011142945360547772639866736939666056046697082830478273366828724358692126246444299091767114857088130777238380669288701072952432684238208978554782510810314836820675287333583664988047679313330581181858111151520672113173375281269885068174523038458200912808189475735874037485419044868723640645069582984435308299213305286390992332895877424502221867706615882188824192662725942064918531898039467419288936260708390587723242996719327738212852980680015392604384502923323103862437552016648901906462146237344665564251581584764184522351568281011699721362118230068409012157255927116459949142930358288349803343756778961633260841190525546638972231129076738735114877814832753349335575362683760892766687908030566601714717440524362164854114292911851115370624704289323312393240238803444912832272918748699589185024340543150630344764642929144218881795461700702280033643136872770757028624598619666192778896185714493835270949412628258319621644504320982403498412099765711559057818549799903621995082995887591847843694558931000537365117093845543598718974155689477220679392532684062366058227014311301028988603001773704967712051423247387618006478982241671831640735338115837823806699810350822695154316811694088988681717006073918249753686551836807067199726610627869950671314073722298839913967251526242263887195618440949946443711879636278435675366550696432159526849516997558124811745445404932707176960059880677444002363016557705482982152684181382867631336307843166153017019768873715951185646448287949837811231927327807139630401103808697661774554674134479988439936462238477987219531688375277405445156127693261847367088569899073356955262783128764773320189386814425389666267689923992604418535465158897538241027406457648412408130301942260690819356188575319880366841694495831212858361454392490508723901172397293170977678806015151611168372983344734408872308370652691506321731232733796244346746789225555721464201672957996014090115873103065969605315998978985339940618030593126143681012578173470370568088421436383891810652642764338196203006986747381001076173173007565636077366048881786074360123659349180682300278724828105838077695924768463826597279580762213653477329718097575056093718959704730259691502834597290902552451932036088190789153571717949832273158267513240001835728215815171769328124050211810787512072731076148901566111125380809614996208458788807000523273162037736537431873204808653177284278385031367146910469713869910756753480468395280235357254009288682258417047343360304955527397845958215587645464440248442610322359381178684326655085192091320603806225499066199674130411521048301256020071393704205542485712820304017559364013828260795372636030671325364136506719772904936196527536478301790350006295269622391794034498296577263815107428134161279714679817509888608139144500725569288735872759375848600449393528737325444266865720228411788176172809558086082516938263835435202414435887635273139388867772757546274145078755232596774930116140638476483028675042331503908346301406528310017642120853571112374206462998226552516106901480627667659315263301078487780590817454182461980717780290407664290675377168239291714815548405406778133838784430725209725455723342982255022025237789784538141685959443709238607482502697004507830005746751813591076001213659430224818596109877997498709617345077337243498546098026980246287633010813755428785818865105516160536335994364432071397218500242252085161678769717176076494736539313024119456423739983724876067309146042720516666198582646516052128548383761823271501152211741431611451400818002096987888637272646650828229065833401968447650976002085398415996413295843294003425526598041211230710481580905849272382642700465686973590672089081108730593311458167018751134025869152963994187443819750898034785073135310343852874945076361991797612028634589699110875036247532035216392465096350841522468446304293038683363595303127143439017069862514069546161088813116785521870989866242826735737360443910220585022474282718056229506891383918324545298653081056261115718008398052830027857227208292596083172426407271448123316844896820847013411996153897833437321865392070418735150536044105480004592341234006631003181794941501753370802003399941906582240246004069221516573713411915722704045757241221175141092768771724711663602749424486189679673601209104611725907226870646521733326357730736303436439485855606462885645917902148196180530853867405692114883370940393220003281397174123666033585429850986923720662010911211676091232821236307172881174570316018621968528477862491645367501698136487335189736404340517068677589478390780168009065329434740137080531094350639592041374837327593051444424870829492477653466717044976402046757301380190816480074534369478761078513121762966105685580921301270795664845621894860836275394846785542625338017718750072085224867130034012035184063513699783633733578809559149878745187418651715799310470761157205042821645842973530033727065643469565048877673332518635067611731977828550529847028931639811995010438849896907781548572550854623919519564211780702316392920439563064986159445529384159814901720351122104245496839471035193401428734194169528008827981679946340138400054542518754904118616871753878422243290258078849694637862202246800044188291420140356660256857970835453648421391906937493677412784192372169072439400591344382096190151040744342419406340124882019556992122414729305639283342784821828685309686313904534268451185471215643967407545454754246973824669775334728811323940723608623695742264563883439496471095827122608919285160776621552288826610896656752460521670416463711763158732615839560457481464907195335547411434975567840355233226186379123127747727952666956028174416436750499681606491948485202697932309705777674400502975522646910879673087237100402143191964896106370448508985621248716982119226924534695737130929584032421682550100639309560115449026504400186714848689868216489396784776738304248539588742496560108793610277741185698768889067221322905540131183833649274232235262289357991233005659346356967606035480012920871514264240084520864109178478418866605975582791423067617872742398964474303032930158660480508901674791544972433966163318226364073368127348896555469046642329175033392588618566622253592375805286237717919099798031047260095460534351429338967364733646349099845596989756820089506704526410272828869987304983145730089112201733434512547625335425127511670840402837766715927865913582659848802663191768384997441267592267369970838055833165375344223833598710353011168854112506195122475484545543497387923569855403136589804761923231550615644945184284761267108878249209687990076454928951557234238293783331236496760466166861210486156327214218439088397866257865343428770526362615160714801244206620273160360663333268272553769917937844838464657199582177241320925569409611050438083918790371686077708000758266887181076385320984806093405691455160898276069492705203917497680980788217190994264423601398114945554399119944569528156137331411021369742499992719275782370659067629044542177449299149135220000247640017604815632296258224307711433324737052669914014941966868434652383688790523891366606702179228993890924071701745551148989732527186918233009472023569691075946386620495307773485892745381589688709532379016118950580358042947524759338225775877289073089356195519195298198676926851433073398064053948628069534306592970836110772277022390961557972661351129331189442260772553703019460927892381195593777377001375457628872621531903564198390618253734648341846533372331632446484530625196733507720362860147821576046883718098308123579018172613939470594118354060220377531424561619200239126959158761757067517545283442795844381306781498054680387046832005518485039538353941676547356308423981615653796946034705878431134793696200393474755839671852938084766975995641724561371177882796639388045437814739103665223178595212361077379958231317169956950480135370688628295745647626424742531732932563673073879650687778765235757113702835800147029627356168771246008271770028175744974750136554635289522711970935701078888782812617910568705593853065472529417076103140456822024472714457886844888337433766793636982808458004676980090282919158694395386127353038519287525236229310290452737473214810076512784989685242025005090200339768358153817985202675441108822495276628125964530105441042638319785213272163874970065575911226860209461052930507673100770566304368860363772689839233787452324312008810640006952501166941073796944417110606234619768370153140474510349386868466106003382152976991246929687251132234573499488131447539214768959601377454577813424501812997606014750038054767386982130881706305787047538880128582421858908573237669559394002214756182313790169432297458584211178558494306319705597381554802895837983399741878974613163800688980545892299612574754922319293613659941157856057350356971767785295647419166649802224722409241331560852875635371677605609588466897279150229546379050675335249256628063947211027168064403792638826815942515657890468765922907495218474385752211348124249230335464631453937420737444409611800395759936928359727882903489003796262919754010585133090925599958891148647056173829395434282447245755886554129425337051988480372282607581907152036567203799626159166442226707682992359066292053576841485824455976547908440689148554546393222664098299424735138515596580586982635139756551872459998709830753390744923145716620174740584822073197535719958828088091645172505121370841372697974834241355513549910293580232088592516186713832407988122094143141628028618676766113802505211352156578013894343744424725711324828155605871089081261557997060431772268373134245385615929022082064909047122688200677692809570698313165214774761286395559752327561685107400651629089662436310174353696623829369150733690333298571022750595069013718684586312544368243354459270303316462974900452281884344774078419705823488821759611548255845575005414759351009965275577104228598699123298305997649768313825756076736112890152890556563806873190709621346932542896307288856655694939593446223711567492884431881568462116978068166180368409510715835365433482173287124384654501404471076215878618707143972180151314896597862381890202281643498672797737332734999292809401026390433933833103054188803258317727905341042086254598580310508186150298160358337153707088276645196977265863291293465848417114658508017276090315537290903670428952259786946692131369811485525879493995763237857812195355406845975016259172098465058233057145416447391929407515662841911850501160007907754960825861163274420875196025846993092398091622285369752397299337402375044752165768465117510254358142471609575522610415502236073773964775348848791335273604721646378931983527989613440071558600334973089993770111617050989129610065250739641547935779985034168622473103484126309321514467985339792429701754367365624396343740532039616252266534180360325956886418668528772135517077012533614725561019438383030832181185407258276566724686108294576111599070102668841659086713981188836538698990703740277772603316704849739169742557634880051644205199377621358339324660737091576451935855573411857732153490885553509578579461776898420251684386017614110607107178634520752590259135946677612610143086740293881906871107420811146349052162180222250631422225978208800382230316806007872381531159557268256520771519794990499768589081684041009130766179193847815397722421741283120863524081144529393475176056380750114434430947465085395434324545696024235072574073555323072072590719015852102626025514103912483617119985901273071249504614278714155515852111246934775807973893351593638054537047678699741561414232948312711419386385129393084016583274929077923827698994987696944966105620749407452672394367559549721488247805149593236458140998145275986770814268572860354569085214921187417684004737350582267928852658296678920111022323561469687825540594707133753923169469399475722392620170962201763418030434848473242125180037047869285383389754140683345059478662907487300375581411693541696348654405156003715221518560154021782047049896112878035982562582107885977554776000521503251198685978823443918629700463916402931661722346445913002310766693237231929855039169939403891570292086881216275964744621630389962130277671479651715442034218763925588958242576682704999990300883265659170321353737833914585145923897336919592193854979967277618671512464346047542485851063411712617188985392314482944721704608490629042203593292995920828893153115034773777034387825910169853637266012492234646940117501981840919806108423544925400771287962591541048198960863038047308846447973363051372930550141245125091962429482834617529723774016655858560273157627231743977150190296278935275795841890247625850173158622719917884858423264913190124831069379752668825465841086600954123484814301597095716835347079033170146820843087135000366534274060395426251566840848361214329238398444009124344875153092008182340199706401575090977067928108216385357114998107243763127404086771357557162326485749432170963234392089065492636662705406583915450354013112952484088751566594689114023219245999829449693988054071774377517354340256262907223870801198006121971032179691488803140193615580765451320086039111055792743092118752880304650220894343197683817452239119409026737249905954170777459881562832300339808831714655851239707945303168580031907212788772688513516441136091582279470415632620321908477825223017441282853160393848075920872680265847728381109720321950291984799074538561834848590569566222622865478650186114881696352624912227384740635332506793811939902716081965354620383783314660093882531458976566878077025011311820372947204875477208436049548770075878485472233167706302094293669664817318444610138402909599241433687829553667865507883970843351812679849917911883276186938751344755211518809575201173823282120885490409351385000003423249368283775079244204589910405724120900790577968638316841616299865541784864471745049134860511890778818993392448283698047422281175343514450487829631519471449890378687122832899887694624306227268021525572196280755176630538636676125554625711185680611336906352096970211466215161277388962879276765063393246033871535638932499289799784000111485480134595602396032297590328197266072883116978060142347457926223004095345945838373694623643301918051449147355260985469293491554922263730839210418692670819777810772747750272283720412268864977710641758632354784726688209060366632807931135889804614149000879776355152548707370077969963318377608853428062923529514467226911287556389373591769198701783799598406315806032327936933446598696736529595469599851107854042211398416691620618968672689395214970867997163127015236013970965135811029359240327683070196557618866069894340555378202642871034954087447402716404687129803499053318601559481377691638207337842559978443334862694382759459647134910492321243074402436517232282387810443788924615691092144547030366672997589700227911551987293543307087449931458762592109000720339914369981430425575576954407768701417572313074594242464115747550425448795542863567494835323228418603935922374486765139963625989593006544770842987722402038258107075580289830012738954600538189029769021127783336371387651959483510753073473637369548719640622698221408204052643958292019072328631443196245343789481104356310892440958509538530847881155838836023432741377167462341138214675850557132482169048610657289021849345172429590331640286536923040973841998254232962435565600492380086770946890769787972647956850701272900218115369744191009740342900761840418253981081179881699424341242085041651776969853739737280680691891582603784888884949312494686766655038291825949602028987644563791033676207516583175781070954811079394639051694289209938870596257747585615353391587455398232764744990186126938367977777267961429140079918133003018507946654481187923780256962725104786888990301249842430710917330780933793429575371687930359521711655982599251251077089081539652159100690198022935485786846330559879565844702999709936708273902810090555551732520890083618009604033920706686867375743422573575584428240759995163360778600677365998983454183562979946679714576812263621074595127216159587924924908313082479678864668195965528389489399470948122603614529601893435370725943704363967283670529712401052307654307626763372226056744915398716207832925451030617902341736505147312808973906437370956722393203018159472341661718625621954472996763010685389659519080898319027994647163521862575265156678642166538024225036565432810136489324317690937652700031312047556057510528687713565645427219379402968002457715019203892323219632205766325290319919616060908348696828799462413451781157194548922246523135384685348720761158222191190577184619630426454559436337921422834125502200868589858906079426836627843242332894892001009216040289020771729618557306718535220027857949379360060716590522881687226346211225026919581544804792561060390169809809696336840492854117942620368139087667915871983436158698022022380041540191203724748545313065551952731282216048410616024278000044171495443306402098623651353271954720287497021836530335417269960362726136057966152237926650620540337787371700403728357199663000411833641948419931917003917103437767100129622431382820165592502100378443056145933623018508932400145565949114051392334334045872911347054430981239850581766808100654427880078357057117036118824133963063683701042221255768489220889842246490537043363031341510782373128962184567917622636889877907561298946198713374763788406320899040239778290478609291549333246995771229897085469866194496613304505464137920013044277867840856328724609559913037946983639847378461994243215009675402338187330927883624581128474854112448626829753938883701992038765951205703358585069845028614252094471988727998213611374061002270517295746178919290537478402360409452464114185089132519174881099518485585406027383161824615712714472616267402785194762183578320008291460183040558089788450018234505865654597912816224536506810301658837074900019931189974127747973477176989425148897649472109417212124903983974941693599542588618813345809118807887917690560566883198639827780812103917720027011888763285516828539312530907625836215443966087961245355676845357409189733557003983767683618770216059204993572704255095797341595241041605202047220773132819940859209439954707339564331292281580785749909967781811986593615484802330396098168246603493373843911678998413988875202863386911565265748404506882053222954643580131015167888574290826675602838598540105743561462060191335422398728298033437550146939107794644383684012507078005246174772235295004999344127774938908470760165617066493708842322772635942925290245288692957186108610777543894797485514699793650593566173488823752565874118351490490517529025686135736636007444060054709747845328786642168140238183016604752880217282376934266183360281548900385582754186924730889850508134163195554755243409301531812616994231872277778696020870651650609603919671897405824845237846295921606754528677487226518223930702820629333466805894308455035211134331745085892531120705809485331291567798811974842009235611449935699131678887911779487354505171635762864421515572095587261283573291733569113417257833768573310174872417017685310924556598939181252209684081328547836399091692643558303274850907867407967848510994524390668463293618120366311664528423187582587132385213745390110040086091602148921175079266628402771584553597410735795751634410467638763930011354457527166885485112092182693024652707858088103976129673413049740221951255933256401849269745870983167479079889574828976490280082188389945757050715240473454006345533740286056361156386514345148364037260722532960681151908229677245773158071941941040583990984177200663967315587154922474541299048846850402236925068681222208944774888513267856686332822587015756394794681751506234435039395559145256980014470219156419905277256908864464782704412223003998865528991945143260929948978634444422218932870164518356198362133111312885504589210748528057286022391392249790396758902401520153843191967391074214974545153295367716110191466385927061769222539552229914589249579901302252723883287201346882602807167715557363337164564288738963080405052887488490787031127197631307868216215701249798378780130087865812832827968084089663632659433399928154167122193128577053511101801067405664723412240832025273494633245420268465185628794624734685968337659829187834521243764368664200963853970781236349187276150837698805524642047138950285053822739963854591444017764235477401848766798102841377328017993534813192097576638390145353227163828686481994979502498246187880491961030707793392560858400496329475860476263988297495687883735410805380050882329253038498040287446120189619932246099396163876224734772744661738172579948111942696993278323999100321917438034421919229060737721270656178874935116370962958848991366880196808177347854648924448438779338183246212617327123854815167807720244179023971088292710965134915126433456335520623775593309086018820043680546900508348160140282027954219711809100600095001849716423114372989223670274358179813574043778754113752189772923301926400554660855575382187362837962708675976132381542870356606783648884224719610788783522023991055183870436604903462475657066772053546701009903508690094814599245217382125453922085959912958029917186445113880402304858105707674663479113143997031738658428578378121272206532741564481830130366343567228332773400102409644943189256699428498246838614235825374045177580405803840642646089703933168625047530375787366828396739147338597761494761926412928535938474593584312218577541996299911316285302321917852600831192422987597094864513202211525386026049553478795424371977814149224060891809174982089445729806307720276373159661443904750282214658318355671683200463846689086831963736878191465982192872705340476957248404010234385290880226907268812152185184962454871225304842134914392387019343117841599266489128371658531396480798261066904860220206588533833234427696104682821496726052767646239006875605782666294691938686141910624657477155563620760651742940270486442461783878038537028101263867531034099131981902784570303742353971580376398845449934681443404162348772337360601635293133926686312279991897547061771192118956510952405097803884624759362400368457578478216236115829288736008925106500081115501570479240796100704023661344803390105709119342971895622639146202910129480687152628950213162279692913250069146948725891125241710043275415927980221031710988596511688499286552940977827098671688509487433247958073191840596205323791877022430050541063253212012524900244533276541579274483020590818704584288875377728201732573660631848429207475202397140612744086087573666245704195437153970444481996254137244996757474861242136188377390393037852074804934056528650334198019264822000981123822806586767174321951353884849696070626250759563730064521921997538222694045732324810636133260881492681336242926108675667690288915764140508209085237993047739326250968293209278317961796398688034539181305722805271259249805214748349252575539366376265174879101721074367013305345635027115249862311011647060492375037683296633502646770331187165524561191927651639622874573062331916861999244674843173956754844331615756619332460884984065517230188990423243604039582173132957616701737960128434973471624472887652551933463143132162622452348651996257237950763524259059952536813283655998906463862775120920660983945238400512431515407750292804578083826359366143983113150531230519300985995498096356749955762442790551713857523059379286746764319127776469405933884751082137471100070209038522968279898997433532672697767823982067904607758161543451588804291687436144380784724340682573498245732058385383732904461459571030293996103412813073904718320038282668288585556401274074728916222240601224650155360682821294728446190379398800966374440468397862370731019259941173807885317264962445658526793037010635451801538789552176303810687853740196807742135537417854113885853537419008460498298317590142507656849614750324706552737368640133914861012493756634520327258649560100572671338305647245852620034238646174262143175519126087672759824139476084770613617084204346166374637514991999682605663882830952666314900815823182761273423330254256148706343851410191909010938957183204850842647041863583397783655297403576068372953363339740531064659426140806204625942371175628627539504134216646533073976630612077698410118298262666126987238939103474197412495559041217180493742108878730512700978805234999377255779399968749360423255865885258653503970390192891848061829760724090110032886611818030305594720058192813660404480535064026053056217787320443252313279421144570557594524017151445513265579183605062721909653501544383745006459802455135059418702364397567619217645867370844174820765329494783950504124917475160270765836790114762025378008820845557914836943570765549722160425369252454512522856418690143741774317408254529437402259116768485884544680732289251528266830693430332789769524213765750872790843118472064971677509377514535499735432985643472888136575429395026470113285455326152233610731947041803276551218955675806060396013356901226199939671987677065826043534500155882775657676020289948973687109617923850767896177263075923162505603893160896554392166810684013538605685763371130298672213845292094498129925689536776850831528060518723421311966178344681378171204551362232819523627085710384742877418607113354069766545355632459588634825349750404072905491293605698466371420345030305012499234916412718535997406878668106939755014930211288432476233931481122966956683255457784254492599506554430935809701570462346989730022523443880753586210845216650059828222798382774986206337437528651508735608383504932745840787504437232400597319955896389664057862153496813829457449478406612400644688097058792213984384745917121865844211433509245563255787452756825768017316453833978578896569235899734032193174248668304199004811779495459744079584142249001771881235046549778335357160225757779162490110545820075115396649900846675970561053890903653746801361230622508495758155225555988842950568953730728861131009508345065940732926058700141815252067839919017016066298703572473733661568554786767199475577206515171316134901017824868181642324178731726533654490573062730735569822260219152301000252867879747432388715373284122353826392991823191353737908186011249851902728894500626916215287978749582681863469333994556377553946981462778363976184132778879237448571732464577572384697972503707323201485907979467019092171902671073745315920221078581028110317187121401183711233486043617533515807713965327814647342053353639501682059791054024714008837418851601862876342149468238080507426782849965958966375887869612100547532707581121908641513957793181945441307386309603734392379030697018651635315558586734602719599318375582704886656022656549278359868818247813510457427787187715732049483639904914009566436274588339691436591062938870304432705317036823556521914244029972731815819994127468106164425628381106495855694419302353632035874549093625040347533198001545390225271821098182497843409937140050301102537036845750297075325022170155289093628387999789032421310571741198770668501425344300532317452044082562446258324072717899093266005368184231618914229256120723426480479094933736880673183076095666928830559769009919083788340690325236531078792137931816094518001642467318004395108410427047698980022302749571662256090514482621583136587611065595624856182660097052986330378965149459929090293664459486974255404640036545309832079327996249545749940753035141843243467588587338913391212869598371165258073702279054401591838299136199795614712024598599283204135928418794074565750224711736511331195578461155586200606606099460069048255101543107659938994581156174129580191774247911348035063325643190224679132368194829069364225773377716417832941159402201712290955457307838259885055495745766382267717023997519412265480672248124649258245883706651156545808654181957371231465966452531928707544686281944692989582231813845639236211646921737716322460187627973176607098433207114045072419664914653440473273108370212519353794135361346843740497700043186418762273032128894550909314965362495356971809695533321980100824469375337787700354460943183555685191849615752702326646446928330377622655345859929939725401621271553154483323684083131018500161531953407308985195259371602156172729699069559774045419955660133307913960170327812857023229293054252283349138813276686279854932525740120556816844098411041558069446374033387013591559863556245927860667959190225282634745358042543271279465089883881977640410127822956620595582262852595056834645314561080648485845068505215910114808294592311887927147195606320920575857984966787055503637883710215081804536454400830946218458503132389450206047079699422846547851762081276372114197516633495488822516951716723512579495087732265841401960010013503137752932274479168737173962470801698929519782358866327229843897508480322625610079266026785742114242893831531551831144535458412913891972045257627443255314515912650357528070499118412272334508929729109309347705613365199312189105436331249832023638692340424850678765801034319589181778242471448036473292347233478497867155272257974225110574307945287880895568525147196565106597353346383865499624444518800887970033824707023398828325948371675492619828460425668216646822006021479345768802973779736164273266716451006863892062280390490847018827449387649426051767832397424508851806176280622225420092556430457450112395816669788316551128720357167175989190014143679767624871964510616655981112259625817641221841768941234960810512316674480862384779023869097353501382483912008140470163138552392982983818365743850664994406880512897907481067579757912337372038208293170265380008577974275828300773546868097715258383824139335831906023676529243946823689715939678237003930401785232390414673103206083922933562202520489110229541584567104925893945244156187251974929831397093859168194102462786756435683668150356234992764830588002722653106358190685346437612967827518779274402027193939493983692679279127895999779516108085109587593032903353692863839064027803707585086659883094168932934919074027777096486437613602713151849191242376010978202231814770794173109435333254534507136700337659020978094894807589271258902553801497298279241329067884419449571877937156476247640956381776483718455595774698448596736729085304180851805332318093574265671415272778507576349106830631464238023891231734606879394160043979292208256921806144430692925641651813589361448654662977038127405138376761014491371360825764206243294958978145603416087867757958919942103267424455591452568937730511431838614462374417341056254055583003872195839442162115527645815656289233227722889612545242083718499000595977902706058084306259697537812773042415026374836737511025223802810475751679540278660474790632076042853825643929149369700268141010197734448887341004883198772898414376848604714020149604534349487356695174187070881607005835058602807077208796526754085901840851681091187821487553037286555072863588479768060145535902513688111077606667294334050510303242221302025249852735834824493567907694628632407855429923832973247222255708661069238998601828856411344873027945324919097524882481248920755865019663439239383356352544374703094395725039521286792360022248634041032604665884751694295771782214066676297201797421367368293919742056818773213153088814789286555475923964350804964709649900351706877951965661713627310335813340229993046579127869914925220571456956827280434929938465147896939351464738738241675194429863173386662397466045179590779214717799474367632417990598511888984275258972711358127240718616130869018606964859182477662605553827793257521007921815382161969270339993999208932559317561111296170490199670697291183546876066129131955269607008313154214396962794765875927674590072776628959044455273284103156448695892437330491201149418832683329970030419781847096774210723360508940936983514121074275739479480692348139603563984328886204439273182674947345158287622889390323250443224313590905325394816819201464787689033533105687675300752980881825062546096420225023631107710407082021343197790279249668403848885964154873045192567149244558023031509216452072505837532428395745613821052539191624410536060553898605715316732295864087153473538150005856864212482965388329143786107984016915486133976961102380143495912961707006298507698753238967529061049505839153242888571275411568456295739588137822036408181051813531517950057789955531107683348190578256426782324576667976277197058831158272442076103805428764679787831642514358501479446207532492522978360714728791710883234594494803319922807364696336761225032602571201555859633329014149859340822850219815727594754429139364240377528517500962156815142613419228275273105235894693008643244787912890983851064915940497942993018691249664293702139502934328007577956756968991954846268329821988958385904703681208031140369832749103397593300982172922671308135843561906735944253409789450492033006353666354407364336164508538821162435549231388877797216098291299404547645956789183298135872074342858712076377588754347193350761839662552085928927740190038185666418004685289826106625771136754296275533999980881096516686338956584145300675215686817223730343448825738996817319753151506430247922667671115025996559821723630377631112359621839139892586032615063643809752541300455987601123286818699658593716251334350631265470655361857774209946944951060090791035158993061239603073591132496473959961163176775391014916002159486602805918527301245767509848976806705123063276130167532786397728354542467869055439259636827893150572438190184024461299946702138335395472802283495681028692791306105524540731692575311067517758713069930224492157697589813423849484088015372102523748214988393613368459651584700243524140827459677253957804038217782241570241038826298042392072589102557727623999057787001430836475887238913341163870849280145884061287443425673775786724016919969240126806307112071418007432759726350213406479497205167717749975620241921776261364659745761515876335495049854198005347601460134169130385684623483201542019438630501910689645935940028109246399972804390391853813223215794771519322788884096861515446403895318816239839831083627432307726000788771337563745415634173129780414751810958337540601671181214401608886496798548963917182242330867382447949738750045893408460756073332996110486332355538136372804904791535414037577605581316469835685964846354985986583580792174869941276018126924419129942673898856107447614099331924353770331760171313236446551846153285197193047471564343781610316510199284071380131064046699669834272404275276943763410951731061750089561675642573871153633707184337627693366281883246895630649122091994592002883281266246021692130548144926956111695968682477744808421158420738482995617196952313343667584173188659171661584950323101960841426309273685982927769634471860485377385911665773153666329185256998475117727842791026065443494025100108999645230107996888708877961464869010644736310449414397673096480608767153927429602453546391740732891739879992027652876663654702086417864697592117206879288561816123546205181760179354646248234470517512687849918727261590086619034237776281065918397526689243276151173165630069731700906670707484912599086706407393924935708958944659360786327963300196225684782361611589658462258129439469544519616082063473559752405677038554642959758782378830045052158354771987616502771540758645580158395835012528698518657048259288888461284982544135980533751622259580734761877832523949934501451234389799114728807902873509247757369533023444576646776001579558203319227664153512319249689991074512487945438230276773535994144408594328914250770768643032877026110829126522804636301855165128618925346317142569835349890606186731645926715899125429536508237797402933163563922283005240409493552330004953676355922748630241449814816499938050937764854456683113935853447305509295284586606736753070274261295844538608312086239046226942672162768237698911933212533247808391008575356118684651652396719606472504412256021392963494436428523960827255951698973798048101584160115821518364414985438180523024091301010100524111534489419152540452441952037448272534381778716573905959872591266011382184649492152136058860145080325726125939075027260554019784101047069235925100472837011018188662599152742007691071716509015630617225310737027516288099176444588815342118958517002798512572049706793178336994931342182223404643276178535277880137589968989913345019402761523463891220006921472413425231598340653509663646804036828515712151179312847146152400531563799060368659568052121574709110611956680409761541860885525140239317423049612768181145800595711083054842832812537465186902245069924631022208853338530616106057446023546883786891963235011335588003570827536009436317879623360730402729898678936992667069794740080647025219678751967075404186132317946739562129525523962450273432745422766008198910278472989095863600698250196578550204152348463961096924286184412635829979408923451775387636933028567800851666562972707027346666332645160678362410694069345625738575421617391179038389461442406536591416093054596795525953305550599182830994383445110799914041694668107739658992119644065407820527075434860306291345665237074650154072240098904426103484677507501025979503862557266045755572144659091024921784229813639916683064332020724901212366925311131669394687865787846014134791170508362669237224093807877617110550134733247934773783016995435399014694563290355465471968500493449030859338383252185509470585296390149665436010536597157726925366024529509374782536306549769856715136099166530096778727035924793026046974285871513119679308413847650725705229375867122741822589117382288681821123883962117338972872966133651997190564021921899212629607457711821110281336539297516066976160258218963899796781781699839220066466821741602682039135718216791610646277157905711224894162107100318316443328620869442492855976318614876299883388384338940149554576839044574479947332289919774067463615623538744879636280937512406282888664932194283470954261475080537134572517491141909680653389846377128098662408886264749178764172080568485892589536689730730180812199724133767510456142102818406410225786320863317887758096929679447792827731212385539911250183170407159085883359687264343797749631941264791071721778889697327409489307155184164074971497331108283875964427794787238998385118313695540060358601381798316354097548637062240254212559806743939201333195847486666995304936430688190402421579583130691108270157330831603734378152662921205582132979612476640740289532316121507674995804871652289755863890172483092964553277026912595850336731565604830961608144089833393100364491112038369423515866177350451795078373838966102468689478231806581324967420680706454476991458789547496992173643265617378037884299544669556894925326603887073377235266933655256647569474278211715889876527540105935151133614631984681350251126195154599481085110044181280800435567915976665752206396831713919166630164973220669656266470590879762099144907126250688540425140628049161260121402644378233249121828941590402385846639043203600049437080342503996063861098831002485558487928514720667754633310869903887344643137470596437073859803524110840241687363987202888915405550641838833967113775818936254370686955891017215892012384093204287497354878463891472975365006524879473866473746815923697783052818771654500669960637237114512169809178278883715029584682870791428034652499998586425375596394914273947697800304859741285867155759059049414409723305401747398650201384360829599202135603637663641734558118485252889683702790625884216231340301103652367162776701532049056755931794363060135610458159556187355086517257997517715958763715294237125009700971292226176462288916268431877705937453986626575624399986505160536603043514428373247226915339759558997611358704795826478168378948846019874447797801093114152460781857473060816079063985441254450255334709196606727264397589891020903624341827085843518038054345602776267441219877764036978721994507914075397588175163817986881071593692287956329794032777516789318708759025469012309062407519553869643953591957560102973769451593877981751591641592823589853154405251909840292668951290878873011035593958233638758230330663544057432442713790030600159063888498040489571236258993070001889968103459187385570653050403055436645316546015884321253819955433463515986669064940855995376264821614561331566336565643614752542809369309934796442803423369320653949868883735930456960390845026407100742271967326171845651150164517656734059258105748417312086940508576905303062194516869117672631495528198232007971325506166896456251510539680139663174411161879503447155773369898004687618562825354168275029774404871780786447977813506188032961443409549720209041135771486682336603865654729249572128517835284958093377986089986293598652374342850670956821203834650018177767800023490960671128282409720762295759527948000143787745571109953718194630459899601722312193394173500402400120461069366537070878072686964887673655425585651263743042520754309145910203551716690699115728295769448701182544619869964038105029166299551305472861445189944354388875849817894139198991522787381786515497487405893231273256159533792267939363041748803439614519466472747524641925325268490035897289526619271334702099927643540986348563924120530381535710900474847424006721808726156853647178629415169717334975920118038213525645264246132210850715542274046216569357575780105393357796508768578295489783064357193323541727895770685765552436554805748509047867003447087605723603158333787844543064438569616337147017300108309597120277314587814779807416100399649276987223541544632034076775789419815937154751919190601562583876277074306674877239126268337033584876250260112408209498769005870541739093754927077634608644982648916857900074044270593374979172889203661483617773856851796721269108083071937222100838162844327424645132775955469673045492874325315486190847933761560430972011042184439023892581992804135712299869507427601891939099279618042125873342028940897598931050356926411570266331210913499619587458310346370608949170739682355705952837259659745150895403750119428931627866963880221620639983331303530609773524098212955446341541012617371316579663406088529666033837817561859029240761912930429300155276698187454937104757434206698835753610399985948712746548374058642985221772417291503897849800562862809370563604868376012445490070546105848720859622547182551649466281102871809302030233798006183376246716320270065417197649424095581640643249073579100744923758080420498207747998635251404540404332989879462495594750706329623322347825131082874193892038566877670441210452346475331190505109864207386298037576395258602428417157419311930271118427906949825330352565276182894408800953241857665273530056953016510976398961513308469716116511978768117127487804703259321602450681340220428445260607111223228746355204734158050478229320673448595035732483424822299516224034188415374136289831443192333933916005525388428300125352374057654457755010794632816834647627543426937118612865431524641157670718614601140956611583684651565200207326654625902744680823772539402031673340268820181474106927525626138634396148341436351155633657030901372122174231743864924505806816731554761784701802619246005065411559160515503041264837582984950481993374771825579941182684908292123833784883849531282069085279688031985401705011661703834874129797122115084401441217826019040196820879821038829610551535834455817981180556947093379302333497555253074237557227735123096102901829225463643150306947519116407059795893600860363621596909175435080669834918057128327355056842014349323252866530898574402765543823987090838967252976786690730829926379210041818864792214135183035898652524289616990507008118270392184451644154269575989692456474275224603498194983916055345532316389569975793262290585330669804268660669531878908377632530876352448644804220986968521924729281472744320374537555160338332972488985652439990527983000969895056140429296896884914270754622893028925030713306170586436064905719362638620146619493151056968748709600114319358621396458858581934172249463641969538347581866229089653847724328971945511310648744361153915893894717966878473542181005252011772486252035883072855747859630435569228363367991820020370463775392837833572524008421737731116680048003870121748012410635638277660507640784304922508492283261565032367024903831329317844980356028092733194747913703144839253179858651122070536949877561093480507227718513393474339094734190258435423512723323475026065953794557379501872315262038401122423013161532407107318461531731475962601327418288006220296131802304452840104186603482899075003706075946831800187001219677889035276232994523829275277949489678271386384104571789649721959629811565856624748977946097831524568680201533084209134484193696682388603736830484465870440037209284413304520769224846576561370626590935687969659991669534358920427821847187031153390262494337522577272436254378008158695706095161421760629224597584310858755463535005691061655940813466970258432186358374469130939726695551927448360106101932348515304405881485609009704403870801767346738964190543763715907830254318261508669492880452298104145100726273557384848003455229823093722529244279222473199396816301949819793551894548208947464148152108854018971921114521269914810480873605644428316352968469667813691682309594105002148896687745583972315224855785650510867388108469000374033262891121664252902579799959065234281222814372256506768892501539937099288148673372685922054384913443454395032257103153556635228334983489630463726070099092225753113339907944686858746710785703607729469471079762419734272446432665324388462361600784054952509288356459538132891406961995251172231850815432605244428898236182340280007811400292321211813954763083999661811041216375377844787206019460141977630988069829576894905758124538550195337481078474053823332514316797872737483451446097271918554639806187075629566164430646006998193356464466724824203448182452586467342442632707566815210651272852184359290637513827719474457069937748370229656270591345217592051439689359310951496528198172801175023612681014794445973585039551715616864904779372502887825838859857586765006654430364829196125642288609824732021291535264330812830235668765672241114403452083330701523875290815614644780284703091658269814017653311300805294716315574465048835242586669532629436979802150060687446675573359077822864586259516158475751157038006418652967756862761808047235202282849600170995119577126715919901712226629821579742894323492559477066172262587748647574362528330527179172234293237118788758769113093339638691913065913229490456306544620499221612491441118782794281660481021238217243434610725634742600347678197563470683089873369027349663389326936363784802372040707810257687443921907356717795061433578479442667154721724073134138257886154518496810225573184926247912092094945192257617439225216066467323764296260349277486622402415151462986964275055216810907771623256064145458315226918386176328030268621807378747745247945236048710379793908488317119415830917038303102885698391146085190344124426208251412439955323605307833911217022920360162696973797225140181015255685426317968427225825983704361948692208117650232746414387654711938917027650783534272386409665153190483040696737088595154311521262271983110058408273131402643688452128278191385272961731928771966521511297239126054678486452151128075392244121677644153071323484751024561872837977936220625784668635791619157669255877506206359488284423484309241598167407256386729217977831796404337355425736981385255336489647262300549935962593576605414374113208885984689211183437570268307296185971491097383544717500880570515948367854018950701582454345581670950157640078290857293846609547533441040862843670199583525608403466115068016457591583044321016553789421038828177377848623549616391407116775538075146870634539209762459980931956524684941730825943706406173401750977223301524845052270804711961448537831199433749738671706354489641987638709837182150201388583672380712550718983450880077405326488734125379731212660700220254378428682167524308489284388404084997669074018651743098916634418041549743458401443587477688477330148712180713447973032392393255384304255945392801289695727953578476732241252586008463160690385990791500045239999681779587526254260944199656415758481090093002008698590260707775704123013839151432200261317549937939208042195721253992879954659703497906530754857056861293327623487005807070814120551455872703872484294403998015485828761170506525480030900859666248257948261561948156490509957678579213598625109475228687439832534813994785840704458033807765897687383009500749523797164017587682214818405365840025289609882754475212159583922608310233495946363743599837834100998144031817314324149281492109212075838962880597569686545990211659501706222935399348168529693166380489963656997660365589354003885595926170188626317625998850743992595151369862836427015768682353590778891798203553068729425987025738401691335243900474852814511952073332444051943412650445365988247685006382751281609629510708462888803771061209899477502516865941713699371827974308396460728748722978548318648865520699627491311464485614336168918557723275121360339265744215922332847902900392168008020786465240292592081782343241706669017748079078526969005073754708866393333463181313258836551909322166244823782172286010449777804652963725169013414599745009744713801348519902344119644282378774782593020134316222948701867383063516352080748995629625666095053685110094375888416560907094632923657565453727526665412571285657483324025843202212763860843922215881655227006765615059710570918658123083895352121718321821516219320762764191552903943963498381109897368443258935388993525237207851359979850986917077262682235151695735280309839917074475219692902330737035154164011186030363628932176779421343383404236774943645404936717121441909511780056943324035803215003633874030312240516189252992532894199949624781757419499003760569587162340430020004566512528261921825892417554155269681413849626196206849628038598349777830372262123993074570354709649890629532698719980490889027691555383428464347720046933904752819989116314763140356815356275813610788483566244141040086072988137063608214927084332026884992634788886018562763075769278404782515741763048420163070058093271218451999772925234344645340938583196838361281472993688949959463265108500612424857970082660713024416863586339097860936199053683815764644545085265987098193872387943352913960603061789510650413573568448667391195919376347114707763906093321760361721719174217727221203490538389472269231789608401853372067987354516132590685382948265607821517445146430291578908668531099439422342323145199684900079841257376026861838830973428909378510619199943152371220571447405014979005019890417084448187644152695916822798653816383415230355110823416572373631616809609727596889734472179090208041870610650936235677999211683783693357889033610785694111916775653269730296367096606029965629471525970701514874568304242294578954799006298994210655661486656048227483279214677295811191445074010063165591804641020116672788266419520898097749990250767757766909794543079297469884217389981361129446865606858090600942376441401370319934262177652116813116021343933463131587802377257885219320394455343973056407161208717629441397146162371771833485305084692992134740092435304203858708064900692453403834996628290832629716222248400862453931334301890894056029498113993207761447488233595969809607818816096740108303252788652930749266844680332344835061843132083688718508165491049870478993837201278439168895492968526499682612070765731263719270721281195904670859843765861355151650647505021527636533135595184937213590362835439932697612402951157630806245021785804479879585729666874730305947602736543031171974060533533732871215244056190976386808112095915972704230326828474790199630848244831660604092499117004946717789844022652973394073677215750367373209190375535544519353259612477510409285661356960008529007846183217497930650808861746079477235958930108579370477414758035009341888907731302059924827957121773906072450423724287626333387902501599104201873049329568968677481277685530522475746471780053936807779747637685007565150370194951830899832741703028092537369200278816706524702959749789512493930116888869828375704380863575146075929707567669162056985189367024772067104950342641390367326030506913056903814241139158129551132553197931473470378176945940107126706319624712535327495367470780620726876169922511896209428112287049857324033447022250399802982171224453685023235773578253386393706843045151205361325631341347345716988848593333327340300694516702506114638485404727113657072129085083626096475300083960181408880989102688017785759434632176330979745647265267145455314550317124527626540052217860007233529721264707289252388823023895758816822505766713954422299814254540384474541150399104952329828419658104961681817040572728707893445775533189773914300712158978453221227984544509003988714137277736440281398089765663242231610381010558169668187569792675097607863599588280377925425761990752683185798508036822508585798709175702573523694918153987099112311510189456022257147099135525402891895214597546800768631256636688187819350258532845707575829839874068255254343412957219898397096406291548715288877286236808967332003506477697377334989455588765448821165904019763978464681452137470552349771523231654263632722074000351835530909459331307360246938140272795346067534078597151930020879451148703016950939960632641593106748133841692594830792898070905664335313405180694546680106530896022571045769397214286694606033828973051721433288908716143893797448588738137368631808367463817222235245427806744870930861308957043731449717741551922016656205500145338352876831537232679867542147681859360123073856159420705250258568773967524118704878871901620710510335513406836588149943459588549039008329858990312702388561498419039194570684595980514342012546627040259120878387390817401157884830410556759375272522977039911941509553748591009766182842719967616672616924185632695944008501279033316042750655872188901267996423890241696040858464591775766434467901312505691890262372325119429382492469963981288734448170420299501681696821971183560637292686720585643072554646543375545023242839352921809123885804648304823183373167599802084237967267080107772433565899674725832634580620750636731258747511231499936278443968477991741812925137256120459878068043172713959087644179722845585400901488434044162052481080964432930457024514381201113725094572853045756913037112359286213254627939952371531570060489055303694240116466223339928943559279695625808520032166356458949601102930973060339096889865847124140815151740570667583918491900405769133178626351961831734383307880262792621700597824201763663937224468913107304089940251601230396259239924799946317095487331287388884030912685464171621557551588685906418832508379740549882102836050755669390648308599545673090962889749290291041488389537151326024644328649300062935400343824021459873073027641873664921617715579596747151392939768935642154915683801895402517436613024807915027025552902790177160727290740579125385567377201907168265108216934329174440511260648197442380548260510141209240026598457539849776797042419835787965728483832799736426429842158272857243598576476872424482768848987813516838838536332445675548659530705912793441459797247236415778562408568393944643644674894980253323358992671910855048984655814906885281002655715605355267703623439673198015352936928788443932057226430769045830002386819885430909329153034540538040851437901513877534745873308143614461243717420870454685040114356005896945373887784183507268824585745905081411005020256549467350858242441218724397918699548809804207948391565686924338200992474238671673595403942695852202146949546119654471505154194313209592559698918317593285027654338578082573013256374369321308329250531003227116001100271849975727317723690433605282343811676900777482051085212443124767237649448443439035133534084301238793115477534617351701618033924760057494207824904954178290034787807281486553098164059788921259001462681162878534060349827553904743428140243593516730271054502789882849984637001941029260534005764343170397943814789487220052191676663017388118449381259510467644104479854987617670540355195998193264824420003785939506376399199745087276771664574602400562293195489326169031289447092611853223769570814873212684439473235307917554027002586557615487746860438185343874097967267616002049758183302701428865656921061751629136456858251281214737136048112664673373305800144541178093611327365572556151866765331492314042491233319393370530683398000618142631192549024147514289841341225883500592233187999237237677852294563113325219874741590658341671957356837509249584949627670028564390154471064683396087078706350946827099254098260849437302708144552194726893778977027825676744961284259002207422818121676949972002145693810260557851716750483109563135361770109382007357742227299772964271691993741470249982254078466756170753067282875668463461135395980017682606495733863353144274774699870149357679715616003614610441678199668824024627924057310208116969983433866967971331610259427029096449647654096010461415088159622789106173726908591831321349821691914653138453667283479106070469460759573045282343856695736305193859358956459701877210282988503961398543711921447080903458853326141068814245922205692278256542403658599105552479046052015200881921575414684270553411277428991698295323409139581633083551306489641997804888060375065101040783212387813293776439057730665416599994509384759360540236058581286338639013918945827283024215690529546043834700022054470880726130295294398554982468940026785142812217240824936343668726177129805325893957726791640265020825133534067438493061875961613649882222058971067781389509714092914515298710948270094534162164984850396009774085638011993211651241241734766189159105353957065947405527732500216534671086212484789559843083650414928838574286332129316741173307107901928791129581981722494489205902266016391860193263178986803642957628207806332901858078322155199856286246750032654079778244686647720922755471981193050433284254719501453899199005199678770177632685252127480269450368727712504522692514578064227225076499195062419667328244415112616732127962199674675391511616926270525540125447871079891029228555499652500146124678506133564860040340090585346383232235508874653562447859160701070362546402322548002318506473224965197362379607063540677604626858186492053273716723749550089352556372128950551036104722328904359049682227690692638184462478631523029126625529713222354865582017213280410630973665401042888797826813790839497953294249715327239089184377183972463381533530630664855359997856595834059424690380325026580570114308437627823255781011080964661706385337016866082423930086347904485384084999095298167327135127685101329820978861879880430630605460541637822526497937019353879884578127877527998116414879374670464472961350970928968747233957673404623439459408275497243449042774480830184039192241229149209133951980263010138806662030645902913948680206152850143091345387100499029844714800407913943273320558995452347923613183825552711665583046089461463959441097703500044584607204161359882536378964054122839982880662715841462322512740213471731956555052346583697736885377347022296509459503660313223139552752932381335422997274898892512473532662160514710502651260596086391818139331515342934349979784861572990107450115136776399379081583495491431991665479268392682302287880020055635384184100369133339987550052709914830807191089702213789185271611279512942876919363437024919229862985007753028314175927350984132414800659355885652363429723663705894855212947672336698263760967055553676631161382049718216337416065124359906582649362751803605989387040205305007367232361785786100411649432786149839981304289411617287059498563015730182734169161187755206478300101527920235348884451361915399760047122459322736865524391073954430300313755361718055447126159757612008133883796432704995930800536489341172718690592194578143853399763500834884397231349755955746010631739871658700526992748587706037687923026347981352020682453197076530621029346283583589399020724879728671653045670370524561386282833582397818306794519698319428261291184169842123423265241002524640859324907521888554275930123957158551828674215745991475374626813778546600735657660568248207085753152334906817994218202210208885284135752539043138769814273714214411350283727625247864398326160254042932486787769405604249876840847344435451163347047697458904072884057595358176965500838199658781008579979167785564688920873728869889487838679301979851728301551863161048513374735736100995628552562848728173976679711268436543214194236809946483283584845727187762462896474269331355768840959931011196107224642297897241176113560343700296331551759941087047702594315944595732371172138562358697618715982678341878091344026992495828961640799959297996196291975394534858548397253775214987363443290647978621888804354849139421501348196221329601670051314715428636311115052946207194225167244379259248475553387898728361811301903640356217849253728540074049220215978791053966410634073577541157474417493165852505843847878163971062131385000614634931877220519379665664660356228488464280422903492858436249338129581495088677331473539124964625207294775679242627730469450646300237271265573580001177720594215302145083103353374362608549278272820750733314218653230729073361206917182219168459235309471979521121084526419850681478307741044605964995426900088313135124574895515843874886543121891300389286776743858458096803626648763430294024356645929666997191472033052166544782487413132666765255754996037097166142529889261941785965120806069730716460064377341814673855258097053411403519986047398650210406257976850050738500180878636025344765629163026462200104331321550316310528879370674218724349328053054534019328498617209548995848474092063525455062351815574018499101463364341263991753579776422707507529236530434332325652553571918425903980989771461309845269247005534751525741778395796132524937987945433653969914210971353599414365628198092001836095352177467788509969951938406279852150633488240382115592015176436226196853468935371241006423494629406662101027721560733120178236818429923776320397358677526070178758621080204166846141661326085694649682334423941712290308583757800933836446473096670018890722689322145549185262174054611655091658009246187912547987851359012273561578019027632047382064587498823377611819182202633551113576995944556366127658779936941805290357333134586656991545689789440744262280530805382727242129182588947478581941353390301746575185706885964556346561465575858747090715986465424300707057286290346560281339751536757271434743342180568804248711350440402964501972685697895179735952699078272603819898325456827520479583878418781190034781378131093441521464763105623619954563906144186933317544143116595438516085502238613357207325381167564091108178448180517104690060894040266537810292136268475713298461618370544550745322045646489988317545640875658555362175929929166347139834842757189411163683645615048301960793399625335374451338301177979656583804214831751734732423069262908685572707087642919139519439512864848877134781831512714696338662504125078283162100482201510582215415422865513205267919862573897207683875250222900436115725396550583785227396655409059509125875298677015255616939509643568355477067113205654350403745719398064419846729018582711044749593157381089696298349224020127116001612266734198641933941762762232422168662175342934611748160285437503164985027545983269360774089944084119408401860605317362147023183884483848065809684065997844591333195548970316269603326657095259839584108213794883086940904441951105835900873312862880547747722101015258396338867077476714256654663315427742342590708350237016866553806230260814767678182846683262682037278027774935411742335322029377441041309931227543926102667155487773487048596212663025474161288686665606284934144624056115126724596869991147163231922214036961789481726423865819130889684159099078391854583162007280826535402174657670171497229251691845910842300366661276928270488668231062552019933246180637699906639153895000146301301679287915899726774896658727129456575611432128689700549433712825641576374964080851110613084821544951298609307648850785489264132847839119204449051985534382022286298334793333702557054876455071385789012120742367010159483188913244506614971876091289388419958188064233962763969439757928712360396276310536952821210879000150499814050771101287039437613786729818072581816919766736951489230136165846738629316589806177342323474248414683356530453363730707235948323674812213478513273468829434388094715167949435243757180058606785415132285860093906469128729312774029529062162987342271414939914172539240984970025103799800429596768313224762641859182401647290540461232659732336589200619193155179150980815976244369942341590401493891878273992669063867056202193558420998405372920082191490908303997597370036102858854241176597214522323537389875319614843492125922378070226350281670288312546072002346411731524911392291176475925692986069232750278180504449196754430304807160255191919876657620592447838544621003112467820279948167880558885507098882034687423540354291017517114636505398035977130113270041297306192219839319067669799308010454955294125174554577783970308598385505706783360092350686922327340462458572320095318517309544610297993017296497975025175319342033259678266606220498279511592369754547057749988041581398450584946448994497124919170245907545469597663459897169518154934197890139110901293081897320137707745626086025629818561337016984855450465505481550867934441163150631287169088015877395287011038414190426352681179913421687468930223678616141388297783007016561068403662276829027450125411611103576795462887821656662149412562105149161716658441267670629548054674429787089218144676049954384991892215454127473678279332023649926116712162256760221458272206905407155361949067219322639255158181854430470325005998149390873583413591280916319987575989209525649058090181526796696291221780002456609664794128305480500709030145985946395114461327733094997742306605103106324984358016512289802528100057935315895985691300784340114536464896120503038979522562043790574861791001957456545486710111170806263343507256652131797121995528998028851849656614850481305707268821142316646110032886592634037310699302983661259776260108968347225237819089839894198678117474491633559971130909910783235013743641833292973044261864851431897481413333848542047417736118657552237042578995703194009407347967600775459222298257897634074153518425565368437503311862646247773032431274806323695194873567420500559649750048613053354587783748511400862786915586444127518201858195671471238466586568282680148242951394431938432438547930117603480553553816507018202192746195638296503860985097758384940822895270016992265920109223724984206149625121534422607579503621327485209417869275228028775019006966716233386511725007895826815632218803482389521141194013572585610120975241061041392462098396040593764430032102529090991964012768956530358606974427388822788177042234581765854735580107829827552399865130697347392833578463647977476115765734720463938362545954389379528528204006716213152780187384658390616397578517281108421428713582579234754768760939558198609049245944793149721877261957505375737329883755059374110714410486892553795858193258939311433302860800861804641851100375553878606325217312183438610449333923048601698854496443727356519388268639337113025743947114476177395740508769797888368110445687012285598994158055584600059335098903479072587657411925000713788366444662449758228256697311040274983643273730978135090005061759358645264968479393664315643557100040958119026893067017023070338763840424995687544364332157768050343955448430015384239156049471017713538017731357580166328631673587710891461945667951572152725860684278288866389647316059855089322916371503465573927763925092028434434535096010633126397328482711074125091128887798708141262890213917701847017491524515198997712615915146341534303909282350217120608963811356126204860161976406820614186354608765344805363942722290746456750785555286759693281398429830134603045432484990139841312814179401306529272851770256336940914551449140625155116091309470181414349067024439323848095373951675109414829152404640037937963326910666823576435330565058433060219466618724912306711716133856887597956319592765283905771037357959338419757131778696827154500027049186888404280383061361341327625433513158386367020458372668258713167328133692779572869470760561843635857842464268033948487359309519939867687065199755699361089541850894080602785465735775064609233741582340177345313907593003436592997795335063595290824661389853631905475164347393519983891397815611376687339963384923732944778503436662651852810931793494014173735571496145673799908828297105434630318276709984310343462082218102062168872222284788271535534228850637617255925902805457905952846996994647805097980359036150483734759962688360012905623792016842031588331271727826988166611789488067136831090166833148523551701493510260487644333523025126314930962148982789682579983531792068725918430070276245615943872898569123867707889892499558889133533384457734238014747013657276038547569351916780386962082846115248868267117924476495996190196465677491570320354496914961567682920932057092074770702024724741926646731928419713422734766086229416005622934733707165529397976796377575525683817422026961538638098186994490851246035728714322952988702319415807509240811517158862157755306145505931858147182442522200538357668356081602697034225598653759760101141401786350720337436333755302560041450287286917040845973486171180148438669805171297896483201073006207639753051933542940958613111597830578137813556615950542617323867478368122606464656721612673683537039492183611907093820558234341241904212265018813118822793589933914984640006491679251044301073214976865093228206825028708446520233719509800698233582863350641361785656952014849212951700897292317596130741488478312629483721059295691672547270762871396066728456312626707312389983176995107655436943385923468433943294749445547073579011751490086785844136191921601685890701604111953741688413285795564580990574491082777467016969137160930821071169237741289515371728915255827291708116526509517751756225690415030616976813835700362564989991022415420888486850929986570973493328569547880848744921397630197715217555061184011675379192299201700740468754815476779076753353097900964787664031044145696108746164668372484684554616954116027484302171092602077368238402018484844374615857743300389812091483378887061974049422068886843431283403159714172283369351063530775866408364336718938186396213425798549731245687388476610768788951765909096781519579640454710321893893800725700223997800087026134663554276048480566397693100500214850999927446165006745487301533011529351980300973512066705240689151166298390131038210651141781955610696928979456035845492387482026357914477477814663081032942237585830056041264090599742928893739460570390864054323446226042702568258817434784829815554172953308249966232080580051806287567606361508114571802977858787582141883763549663813383695444775385155985407328481958103284564497162056928599470397973678674679724711798594131690386909481630817393559423935006538655854431958832592833269049445167466531696954458381407788311115161237953481908366027254334127167681311203435840707835518493541332800749938713311522329551779381714621140344523612211321748677547864873209765030172636806278006697476716942444830772597765432608840207112357218408024679835430377174807277020128145520396344588462030216816180090487664895410300358405451171756792520480437755620027599231473222224491671774746601585408588352634671870619184550618600895986513020421311149568518170083004856230850707732453304960017439750148660359897601140825664163688075441124925957456944192003771652978549478620780427374229330455554043653266611274569561583248450278753442920849256116394321719082824636074473971286611958201149024148309833530798817677485332522047319121595814700584299820139836140690312702795876057921190717609553597077466520147176319180030496297615619595838229163529333784277404519685845138664571847681842554596705767013357845044770455768712145158068786528197128573225380287229484498777616569577979632405014382226311923783074467369292376882937069324706055346896238500973113018543627720473451158465624705402570824760817445756339223322187647578649417408259239789624632738275549591368648132959783042162783590040608569598023977337840672919038051002169652961377880347689408731866131154631398753485849726314506984606442256101330153801227672134948068532681485407091296103187764440927285790591965246819857428370927207421980445300346558223622564331934291707277115336578345502653254496582532646637954240784079842510488886951894041101908820816161346458421064471165444637763116682070269526292423719007421928218616319823908574107021655934825159358964189267903054019576847295925877441818722622765518799243455745815366958359442193351477225634987744571935551522408229640272344643479739864977792438018627163637752842182811440075115347647597818313064803419623488886383027101717710063599068536779818220835420141156856454829252134164063653462129540932409576310286825258189439650540641636550448505503571392840495472011356885614734898230226474044929783273745912852294057499444822952475672433995669282856235022026559234966455793028811412205297453835689554304830495844470797027976433688073317746959460208739956961945897523193167656380400525994049621104499062902860625342843098599573980900342828812683909589582776949096590846368000158389612971693699238312728397458758789389455279901447731550952059165729914422313214678387328085950957746422677273082005487462797903684550649394509633332838731169202976659207093484070438237492245825101776184325283498856880645698461299206738981867944943922200119889014610865496441434043104489822003743302339948463130979722327114027585225520043003870585263605209234299150427389116744310823798844259018979631580526380967917092014925153498437526205096775594924575269857528458215774474022593730969599490943596795859970572501728816554388265392322579976403585549692853274416113301086523695340369124499069029243468527542578879861019901212020998138764553723378313446147465274903765280577025147034931186877124187590441200578473652650507730088899086678465668837612392477013706541369160566543495470721083741162211743668797830167763526246623319619417015763511366772214190604708689545668642874692422745736661198715417306662683209328881838546519979369554717279044635320436585760056571754230674272820462937577537899718357568573180338590996834806013102050459855339089048381719357026551364410991669481747135669205803534148702024437090166839516581128138250539535788424673941577361453858078573507670842068884518823558453344243801839327811559267814890006917091942326545315302191490693179464116480758003944558950789546207798952065026893841327265069345821664256422513675743267760565428496938558993244717507403996497544403134670937936730038336601942372910068677561231045049896346239355615945708336217866470667489644370769153965373980306527796762425176672017419923006009615468659194745900433239091776880876435117322619278583787367682389140702354619823916791157723777349475618248239554341611382641337593471149647033403459669667192842461598034047742289892307450569188980818901971908137667238182154712526692557326253847522336730663790449960701838568232907505129691560147165716685969486819904503706396394770797654279760945656981026105500321862281242253716955117384938441640514543081336288884841984270877810451257896767843750072428376359851058928522502801447211063416360138068958321064600268635626180346905816215636092142147319926553409965226342655245303538320872051148560871701783923105544144980488073070261242652809959562755202632466598077147310406590639438674083666460976850900656289845478998118509312097442851265391279570204404092842175449099975544139856946399370429225314988385737827209622731269020128639755359607848397125563236287262269010379495351447862178496714367976977667385454411980907156360833775248790734627001763363341146722693231886839401875283146979482490505152690715297398599997276827813678374626506487366587983336524827329554820810381370533177286042800987881609463381920767697741843941525091014432980195956863710830931478806703714778273813928583443732261600021871182014106454696887892062559001193319125659498456534256262515016151923423555536293588688136398265195910646207789251891675418411229554745128272852140261178173684775361222202089762457089036984055948504179768567666658758970497319470748585170403061213212864687302893222701709455359100785789409829886499685027386591461159253183634958990399587471025803388800742570083576117465780892513234180185387477307164525503887240767467309962941621504179331063603203305512543459866598908493959186174724657428164569755179397999000437562209536194090789359320577924319318480600698666309939410374420727131571054415838708977274107817857683756940718092639599055312420561978388705510681105280723469639748892387496206717461142972584678905750024768642148898270249700676955659554270617464632528314285598789786296768245164818491245172133000428470123773881708802826233735742275380748931128183825783477975541070877988600496340617762729536783874191840558371926618705502080379476847712564450300656084687176955373797039930600578524164337807191389971235181596802395333442713729651425292430893687766231947820255834647047872179491706802627334582619889108183037591431745799336300521905202001475746086500539205048195746091253601490206168971273590136610801255161821908236343914960776136289225213427729971080696326863626231962791559728806888900127888691830217532162480303596127185807447699807702939381434380280454460866534613500536350163482901401123374656901963437164661976163814619700748860250435293734721981382045546553987845866232014263045037114734386648201856793658772434823420490223508310002107992487825140901487409331504541498539724021829757546374211067621952862818178802377026529494871077419964539537162756373446698321226804273925270140309277454548624676152815559250863173811372391479277620324677110774397672857355142690772419531281828948340749924260517399761331780170286895004469672984957054783103217991621461428875783887264584109479510308588690524446965486383060933910027000095990999899002361252840648923655558985721674396805344044087765444109887796760751880368454385281698987413879265324677144776133471820156505965025755660253277796023874492616430163519837670169072238506954089959583149147803458412599083588438519576277305629380704174509772417619816647633628751735166823776979601806339160593191842235873479054479812714238330118723189950434296489277675300280484745418216290484230093268119669487489587399948854716156537335551451926428930032703342123134970818281904764635377410035346351234276336673829047069704495108805174516050618867030521556360981337946198586483926373134640954762898834154759446181677681985303412984391086749675594725108078117149429300532615175273616479209423787928886046598534603572140196799215355098131537832289710151933125195990812621627860014476909171273049010052707744840156235361310067492257626302518272908144416608420572806464737459081596306701462151325583367492406158260518014053662139072086196772143715664105661380310031712390768703156116404997502485151965439660740766685916199816428973861504560320224869562430381939845878955063082444006086890909050604730512458612551441683163984859012228094655866809796894427793115644250781303628436587924096571554009570697060389576367279447509411243582222152514144278675875905209780471849757397517687206379570624365135982042671675262146862691611288217574180266920269889453824014956353902991791453340372036634532387987499172263266364301086117916970674383243598095910166978088830254991194838825729951953199595462601143541642477951943768866736014577280170163357259075962410984852360846229136841895350059023857163962517180116760977335012807596424909330554226054948768351147332397781782569341107677354299531194632851398022480362612383439359008316442808335014398815470036346132107385736888814890064041618382652805695057143882728965557839409776877485837512872736338361508889734790802011443920139981453455510970464679613400292449468874249568191091983411999665192108827537460528130641286970822595934734986287179565290015136437298158046419197438105192485333327225482611598045420983617054799435369805373612291146308897561672931076135153200568244553136493744870847070753659446831363567649774991408686873692661045815880374380659240779556192914792808616866883634272310477727671590579648095125440776199330405880111556725979529407360780671214500548535505004926223563516731971964309457535859439689788590921218360176757933589846450374927185538297620770031093000564661198616796980688317889691403291388144165345025499176938862753324920218561044239229270997362786415508253082641301332749674744164531896544143982423175088720298525277164721079411037383285466973113637476509974803119088953375498843144477446114246579828286637491932979129042750860397588327822772818913681876798858121335260118773006616873286577152322176116205437825117655886921649801784805284327945585555277384512212793226628210121229582519637006468350004982647434754376902117991223596091924719248350786963603994349631390264642996068711087645461998387341238406363959563131220877214934293515625702393085508116457389938995554953839404369304613072558945690237263896753880757617590950018702676235616018947954967472981082533851323682551264230654378927836070882026552888623105510312397377741762457951296931370163995753077418643660161213287000425196353150027194978569740913548125122878152300073523660387040025370408452030770885296633276225845397961545242422973230917459546488144770125673218871940363624047008678254097817153018486624218345981967454454714472811591909857705328953622075573645193453880928293509780564108720301573645049033523096283773472893139484053505572647587406215381602396670659047384178775367318064124548494566013135726644572122796211779849714327236529074038326812341720848953918126340897640103619446055512162537942110585166568796848401913317080490530494223071568268863708256162894209891138467168541086703201419075026847277208355615497172328914683053729159712282249078970391976597599156815184671226638423873102239798327949197950005033484336215348201968432685422296318035878829874862426442209696916070919586162759849267332891838602845576906644879498452349897129666955848799187609161469587721733413667685844347000606043159037836931671820794400972334320284006851666506934603653662395949704235240715708034098524097016432990048758518318709408003842610137308383439006192835855631801028706468204839992313742481147751402046648091854949284303879247045391887098387816592759031463484489962519807917752466516861259456116374463333620519304697847688392361191702629409511105332791010607894273532167181480489276621097332086370995583974182017196797979815538788816975683540241153563366271755670743334640366117735977931395947664314539606235045854646192731929559080953301171274667495103010025028699232272509636658747630060130013346245320536976329449974267133871097044980335990366038813428789750511328168677847022121060556124068770354810225566623882304742366367486480951084600758534421798056639450390015415298106863693007712826996826830360085113467043799227764055452228049778649070680301778381789665900284692774564159037428920494375409109971101738080214556995965138021537005536762091484039333363752914735683445981498208654735298124297032796940244187715203225199263492658931345902706129695116963473616832249364314908012553187381208413158414888244754239435275989439678209984941622555870625399215841070380887489557949106666914760382677749306157452241202909765371799334099223213073340149564976031699040590846544455705036505525271281852210698039098734163123968902197034956414918737564826372029158232045589764803967586620134233706783413499128707061274359543202394507652866716294077412451761139840208268319658450756998202545112630350754531099168827899639640144250635718547736917444582969135730723988332332823245020227887842047816820651711561709788929186870793108501120688556269295180148225842524015328460303344156123549754530968475787648850175903797374894845662977405271510970188300594801926040534608490642160386666668705163625080190830952799673620778557217158929200838201481960331120015062768269294172990741932378185332697078088065554863878601634336231595927412871390094687992197671240921592179680208513713971214974439741673213571203040742723391343552713999136040783325993611405925166876765018458413580149193791708801697326361164841685244446194321977558677981491465318396743710606548783227074165680954861708106959853079076487268843275924903868392815649507147435928460195809520031268284916354035641647257263626999910695466062889804204421945025325852512617476844836261795224378785450418329967849272626422023746490273983141114791169727531171647943934339176391580012282633831849976414001144533331249248515248416925659400650458352857181455669618601765442098577319334704602874113391063708746428512692114671215723901061382714614432744523109318147901442219525790127084211071180792854403214350295465856341316282536165280774691774072445588481148185895882791643343147057931815904307691611266832902906961335222616302819085174893478354167920598904383418589309843278365515101880264415053933140801829025059856338639615235335791036224342844743048079989009291708182276322149314218046325399039798528706552630585285422514754709330748627536808377499621206918106612957585810928576400299667021596343387465380490339642140094872821794916016579681776854268660956707698361604842832299889118818530481985679119802115974853039198895612341279433708233182327790025012015828892946909828704365533902616063530070079717313299481605615855230099437757725391407131115053563271362864369927345123178041772730525635548582717018464972278407305943145339931658442189831363947852617565249542689141194496434899610201109883886382932341525667849944207164149038488717465053947308193039986493140833200355413295266273530066621352122574243720991211726725986905717930217792093778411789560959421234096779684003721393436000573721873651878850365995052734068578661921383212298508663851822344252533743366792564136786136221666819354198854722246594101138549235701309835834289599352471486498515957689639352098822086899958216457558842838742184692523936625539782092786256974450687839115049674605351628640836922382997243995966572041565783029081892001826084930502195211615620499593819130252542694768392166317789627366290035231726450642900663658612063569102437608517475221664629111877140134466757964509395214498320201511593574153481185956611810117644962403606678193718077367980923671844251115959241641881509892123466702261351313734058651938232878943565847816462632042980476180246320971211484905966699803279523863162781187277099924407578735604258781116602598066727361074566110985100169244188990007804283673729678617530741729395723632889111200258309863700441857850296721154663695790156575811681781875431695639182467224263880614093230282403235699128571681335894392895143015498980080160585331576814423401200909573642503514965979028587108544188493949061684257528743558689996219814004543406861425737909097369053224147469401658489630376586577995126557353735147901842407976448196343036508607030253404042619274598448413976132993909790656182013907038752568944261348239006982452589196291731147286946299485556747750032071215336353256913159774582488855925424300851306505135707154087042177523986034465346295213259791018598047568691007341958819171645878281376788223678248604845593598471716252275219688340739614377450602639452534186854809296801301316658713510267657167315759069333934186973739053334791923981776449211105032282970438864158818357009964248086143497489188044434937404193842339428962777406420633768435536960749696389537934704927012914454324057661335085503914091823348439434282329831078301886659717417495130153295892051156172963988132638232362038840822228477417598493073178225428647466582334779594992971563456514908474647159866922597484419363363848801627402642861355413970116105222155041957894424182060921630724243014907845137179620986774564023727822070995486643146668722417709334381378307131270073252862770626469870861968832304334104960111291648101645117370695860845608005360208915161543450249535166394393019520552920800148500663986750438763234251842827906943995159026178372854941825702057801929529646428493050725397338811909764784447087537545555699487280920191894947097266726629732215245573110629039466954049839694959030720103227689371266269328075524527673498398705414018824462870795142063210985490120015490563300813828522508089419139302745049351537301189832617926041564218434122464103161041559869399309981297060996587807202670403947074236506956603356465104049132162411534034209295630820556915169731888325358560304386116989051316070995875491817430674297771399933850461408880133661798088479142481140543415019494034818653263443672325984319393208581635387027030498782805718027916854246582948071245437668298771815613696388595911706746118892304977003967412864897471336255570789917789965331342968084318392836960433785917155855681274177147409566138882571550335055670590726446283948983034428766719325160977334806649987313079757059839193284386797816811803740866287387427565031753829644207454601775092817927837706091406851826572686797493529044895740559152444466804822984647172701216453981488890911229016964063310910828766253897931237067758213365104069777695466756709738232059095991584105767028502287685243228497668662042391611545174863634604396280584299991697891778573660942406274163423115746698154731715523957646180231468950249269872307453252938280470423473140652815308902525265055649477482425911168752041144009410944538035893180570049730239061234544757442420518064578580116573196499463064615628285983544722107069890038285808829778339686574655143321117738081132650567415507284840740944976409797321935646845960917087813895819719390687043456431138340166715533863785847825052739727915185228855513792219898359795691872029069305191235656508883341021813107609460363641619164454176020329989848668389790232362559895490038935444031153337751831774593045298261168182709285350508262750399393101201832638357615538024158862170830225492206522548108556563274224289312815268678134929556117887559664246164072700983521989279880499726632689530038357679745265555525395682706411766278288280872343601860907055674586603647911740227679708259840724699566381986228629471752097659592349366949505428047158234009642724925032708670921838884732773405598589276385186158533033620132836639612976847017752952534427950112661446506058015852041149701871798566930247938443204886008748814614184552299019616684814051679568748656126556421075934656637898873940556577809341202233461392476402745663468883732022382407124549377137444422570247895376303963840988467778258425821395568649336365471746192913366964078725849965953074479554745244918275278988010216541639722417905772710487739108788935219666788932992973665149737230569003198164045241707780939806612439409984329562818452650954178033552790486152006736957409572019352188074747208765454226074686273922745578078210095781862265325158300800223238042335752645050344194093221501155500756506021551744649926097436177096608626130829370444553731280768259101488952026851434425171620166393662480149186667583165409268276259243719066788868595117241755760403401974626160240375906968127820624759560742846192682853053021499046041169944804629542246160666645057766058508325014652424192792452611101438378373818020658737723772605923628639141967765249237263095686885394833331823639867032673396651042856099587565265917258394364652632900143327149830950046002190184155146115722519651599723534259907812059515151225836766597943838456443177971664987368372682219829283840147221366777791392112137010849370208357638636258478640941078718788101779124201224505709155804574876052906642962905507542829335871505459080513181565825052086931249457043715496993494310018746459447886616088967606397473256885044482445879354871890370423854584552101670416006322136035897970161283939050092308783582131417432293226109146800262129606545320304612893575105633231389590584206569813351501184414396858951385084589522255849612526571044823159810989199442938828882564265642947591026747637200442309146311348105403603251712208869970730434780686968094241213681511907081904494635043778375265560920586983490430472037160570243015707379156095144804513360927134838686573854592442744838233314615406167330294980725564871927510210513719628620654440254648742523356646795739903764656799258348155177091151446854497425904476557896950399074864668238788612707823933776533999411880955896080219486121309608170137698787518872199379945247605822042503448226910955086606923781151310209395876480651079816052966457248320205326640470640849394099578524914843543002187046292314633085646363466823722369466799743610285215807515108775842768427389889199421739337973047253277556350403317682615879551952636618256465942537777919652349505661483627496393367136473194964093794699842630336392767412003408088134165750021008289592121720049452744486475773915330869959481902377923287704910966532514334272792971557049562792778409703103727068665863858364391145769426825584387664183933874540934236041746057698334325917571095509348803142500034222560149543407415761217191168271719952925005678590700268531801357983658330138810069119039022872785890650740329884889849168979929589537291069556355931153519299745395178322685248252474100759582224807658162444315407016635132629519646452237922707450590658399071959599736686630867420400941183773735968660743431850952505220128213569355924768075035208611805341578245734203922503714606685686601062013477191090719312528711291569655142243894250545551622602336351659895408456431336928393872613572324772920181206465002261766030742784709979207768637574906141201154837949944876132688909260798540664561038353465533527090033273651509007769396057915586059470525864104072684608320379352743213687127728759175264266842618101215243009215997121816493788917095096039677848793185605653313425741439020061404429929423436817508098705900625585434084450913786614925527843780993689346480819967464745578715331634606233623931233236539350253275073123018747286921797072826253322496153246016672797966077326946816183008172995235174188771062112133599248446118495801874260366891581564194281652170811112571598747941165141464985605149612814523726385421429338895400392752351709250120299398203579840092634150755157197142314328310554891912046023622303322130760655247102144764850144700119401035029967282770300712862169202156932601200130488401682328959073535035383068952653330740403329575810393581347518969614870297549363511968104622453911460218886985414637592999793147674989193524052265765218811730204791954789449989966197672428779579090144694617369459139133673701129133709206523408074394959219765263654454637881651281487246758976963496613876820155178570483963222680135136873946973400030746807233519191909257492273703750351418625296992376572710592734235585076461023554803345324397055710567888002879398369309888756117223097927624026700932339567973833621774546724479658611618095204181325040150258373831132800642844033002200380764715515981714234174392394109138596410259843473816826998810853861669588719612349791491022841491522220463123073223743453241529944576178830441179191067103246610179769210781033922627211648689812075897245161886310513932715627407537285436065427383309354547590857216832991580220049816186671798762632429430690014049028334006680733202922217327742838453006744900536152599519426922703361653900518214201204432783813824465451256429248880413139688384354259439194908215961311206877254278702063482471487591144884319485783956453312122776970233744002318435998655233525224677592737254938172280976931818973682766351227610531275591221273042078262597176682194731672988835274075988579466330334579224111019431471678910731405007650230195643699996624784216816672789261366502088078142902068547488313873882836807537340776034018518944655551003708707668914591669644126834176820731179876394386131586363968496288626787914928581965780780182457373799677443068052053288428049138042374914519410292864593666259360689150025196851015343179579413382638839101685418151448181084124831493313247426290221233524911895294460311718692519109213017342761428710075558193561035352967393318878502252964815399184396628694528960885955761551587144552604844819623600201042511487031078237199450922223091126963575212100482517853752172972300236702238418137921433181915847277466939622314715722798148849434803415010363818645912443755000430177205780760650042800552067686384932888737266367181109845474079219663587894083725750349219831390390371476713672696520696309971203605469012416042146207489812328573061978127323696226948766558648267999876960380999981721793497427398469077041578905837886842991280126827382932319849042312515186346974998058536068687347687923415270716743257401948821498194807376021359356007624457894213438292989815787503061872255904283161319867249667528676207229613903453565132503140316646678576270394592716503394321632432052743081492715443023762614927001468268628666747765057317945423702789671820530618889254192386325145750856231624752763414764619174117271787631058464906680465265832856546855727233302193325243729870597444169203521650684427783318970805078377819863168695725418007166209085989653135035367237889193905418156694834554234502076558176973835275124337683640396562925683615955700668441013659444317321909613150886687107477810099398613129926898272465033627177394266340046240199556983985863392462226753490730501050389791543913478970727578838845446777781527845644578440321628468928820374655657329788833494286215906092960902137534190496756703625276412899089356721006691462824913467617254044651990209772017258864996457083662367261759379161178880214303617778687966213623945591607935150407839973363474854455168916713966647623347915981530563920448031184227667024880596467107997550690468320501989074054962913314432704748994030099023971967356013765437418793347873964294906544100936536659835635850330405391924889894427821540398909602541187515639722098673701474813811414156180753393907945885320002812811591275565980059940193732735755143098369979582105615879112377685744942274860657979487047119058809722800575031746560448294785000795073712523644092768832910821096793349787626537466499148751990200348628202325515838664116388667071668487947548444618584889943090282233726234823579499108149224455369613093102948687928967341817101746564601669204649735847701670438665917619076046034190183809525062732630825729822562663791507553810411690461465122591930836789953717921431288577372116629597485863716567301937313615195491541049927929220858094520653393439351827340338680661136084913550786824622192509329873843401244166266267232390782540447980461197669467551600548822573898761827311464895962342051004111653152663221122278340652321220651287279743743905461737314329227778466753496919852697680083249144318524135724031511004768523735046086082427653289155144122027106057551551575556566202769998057293666936622218952044619682969536120420721396439313693221437563324072452715685199388858241960234858018441425854374596337298398752886401020945134430549546531203340087741997441180418337532990552363131245246204265061922813619789010498864852222809071788572296709925463740382994284367700253893766351760260706431866433839144599688110069765633884140919597027933882783046149511649308101762174697379808907374241993858885939283986295283241831539148280467795639450453528916662240945914872638176915540055518497256235002965973084793128821407440340559048658212272093421831346208523250007173211358250508103374337435229840993737342073874785490773968028701378057766003636622206979234264930618206746698067897469683272975482939564074816376662994182424121917215554677099895808113189287511823942949017856591404661244121106657689804236194444489432912659113042919899668812380340885049621003087215559652391245915783893527513446314704368649314849323207512202381670558581321630092332366549994072036153918474288256099813461682054852432363769230622503781974010037459273841993442242793614458783509816482751776137309870545743592623885350644406287982384715052827391730825109027655810852200511622032857351856864152956269387755999915055053317669719340005347415263314136492525468677319066548034151398004453600985975724445274997874386519765220261235989073138000678756181074743921273385076597730791047172991071618662908459086534722077130701106913873510912769024224056982377587874406101295667638033021531394989467142692031009968760797575010966130844325782417159961652535627056238487766589891109296546975360687627272124074881054611034498643581011999628849423921411238935956638853783167317980824199858053887964291981348401749428181996867731244726497054075626127260498673902158224325379264702556376535898705655119666961220008403530042614750930206163585644991100068977748676914839641677239143581315780606495025894847197767927964980487466814677213141692155832824977596292327845367127606606316524985808406699175198287993286312298875760778495360825296706950223033798323618062394697751460084166113059498581162616374477578588629569128803669598911931488499031090125394679307391708123934118591374389451886469323354403420914205417344857928554154322653057840973614685647260673985452733168697461041127802608996504381943276549610837236354248642776257802204082411954490606052881539934445291310459722845620419029840791636642370585959364281456716418482647988063576214108882694373270095400793528731233643193880024980653233296270756598686362789928069098311861697851477887131252232275256618504778662780944117976923784907338884353712868053244657746526153039743542224141763052811145273252981929566847854451382966867693771349705695535056282698611531718318717812379385187967844014943206739129209750944139668572882061986021978509144443448041907022571119316572229544914806242691135397366167192721844645726232341077240827993077125021419209944497826438118752387288507178916103668763115778098649160859572381030762853912065649517771919441284175701918612301329652179240031741546567435010660252130309371032493199781511129784097268382420704852599001790707376346732065718673143883519546627105878217967700874122563793884048911809015453193676684078799835186477348528856468902186705458701131642059067783323573583093971021004159119982850010471132212768168454778886933442638183667574778681251602932428087069191694801107563164004280399553066450584263097437779505458227905560424973760653674513830920395855726502650197087602533952715318549563186810419802556142353765252734192537190154157311090528475290039071324002950148094059895469748623850049849103362039882159750003925240345907559163238592868373273790895337916173020195317088893097138126950836175079995439105840056679335812838359186711700199611880155382827354426749450002914536944669344386482530320254560615742668448024740347156033258986956135726239060354805368117224520026496046680018589227271237231512992364062412017418877411260385677065369521031169176123012673608912939801754131872012149392303992730996357243275493353139139063648296311264225850749738489107137138892540634510769407661963574060634828517655304258319466083219581227194791275875487065262451289451895171335232227360521157707515064888617257148505243188358473016293203400944818748868536412477217174576788090077106729967833192524896190446187580472296421079568404760038403170781599792504053604277983758078927863123702361863404007552218901645904240408749531048424447416026131608831942414754723184704712916304702307484502520766609902985936621635939595326467425726859056286758479601543967244042590622213105194480239816703053582772978586271893464584951280221331552604025792623364922575467912612323250927379200034380502749664505877557273495579519905785340420152928527768883052418681299336374450999822629613786719782675799384132747425278032993137123484463514079546110895934632557535249828636613229125386432141245423566065145498208827769426959147692670767361715463561280125473412930209998551819722024436890133822469245357205058163263105115479070665018470200955258705425972481853261640390838357845337013081790864926853727620281689750146784385599162552301640687588957845589675342628250236851275164795595681802571099387951996154166354602716895911083693486534849892257825787854179110532680552711307572892497113893994978542681878869188341967439097490902191059637712622054338625783175449467884213481709180351082347206520969208340583782310479134365114386535939816337866729826338991322617172584114417162060915565543389851751413204461705164444301659371709874212705804035252306099466344143885886987652011527801387976772703070363973829083190119216449030229545996036952700736165322485555175283527754908357076124858983524269824984843813813395045103418603417236748148807123497414570058092018048531427793275919523258425728929184390718455081052365659776518708730288086123377287791654519908986652355545857315428678664536923406659210808546694630306002458789013522887788461351441857831909221971766851327327053867522614138188148716725830096375751846910988822219209965742657975658558659315962454756768173653372027232795247467794489269630277366248071114886494280019011117887464097225893752867078322533326839533407003758526004576990232427063366519901425637841186598660818689955693509511419344307124345974873670092973710871421234848039957251956685315083489862407414611294014897151679518236289114810547634610341685823218708830150643032960747344425886290959602402651800712309339192530918045941064837945436514255465754560026878742609662369880637638928575647336468804236505745451639237206852840696663433052452312752888379188408044793338950696122387753504890049284426680565209546636751706398293780038234326371651930771058658418134292831897147119754819561954718310745156488499073229286051351949154968933901805911875288821388307696153330777533467046578237371883610717734346422079885265399618414464720869716546855742253366264010197296540143297106781852720482077631715381866103399130596412253727442692362372429768106262626193179193991624237958070209765754316295554837834494777020873874315974858440668470087904606812017040789262307622792374114108197831052449761978654553902816352349285652837162320640415231894279721308555221823884411046344012806210015434499490168340936284618215569788353571585272434223788010923088226343691624224322555682392542653830905883533622608416071350405235086478115064449733864613882538321990545129473648686167567490367188667185529576381794839653536208677797170997379861743556672552361942909417592481493749963730194815637140019961808748606890625011677523972713358503481546107235994013575800590216808962341839623317136749063867730922830839587984489488979374896970547566000175035449649076537897324077934537700811661415076309987312400150749687709539463819777487272013416057168236409015539467650391741045559720772425472245728133023615390239551391790876130812590601570469768580314402856722056670058197410732905780080877716852574364883088550013096891772877685544207809891641662133575219199022250069492647548494585201949062315446070767129307178778474819099068445240645960953466425580446805279673375888207061839870992618900807179756009824838164983429654497100444274524273756816814786568979755744542095458840121287435782741469141501648717771825506668773883484061222041959759609959431415163542546082016240074953230074984675296937120775882321792035935731776575624742691766024215026785666220853008328802825760036672526754067085616395118265772092401028379290588735536823315181927802650696210169577170614500846894864986081166961268602845895865179805239068707255698199575997675081192085004652067830421488536303700243523718052845536855397047820328003196982696416777842625587212948085348397115124953903809966998348561707566284603886602384247309045355568154969185458954723857115400879721882538577504954128392998617964011443043381853946711740691676484591960169188153180308603789174345951542694220552397372297136325877459636630098695448942940019365154654904956164367794497462350886776593678410170793131838714003676440204150330153735453319223325692222239677439926993405223943267971049179494315464392502028613603093339853469932207049961720035062592625119398212583412625182077585107648111579813389242863370077335196558854818506510998100181579937038630744697820954926971664069398250209477214312507281844555692099904076409759804806368773188973950288349880996642805795203508838622202529289621278854456499497512903087844758826872643113405223920352454563027894868527919227108605473878468768778299245927438089482254192772507444165590204398436495959832334993696910140026634906566283421895472775401169995251212580023878495941055118279645303425242456153219710741777790393232125671810589137446631861172978868956180280314948695893653374212910836233841086750776197490633116126259783825237347246681927664916305509895028348872255738169985766681350230178054209710832199364498237558877077858239622252539495343078686571841770214759558857724639715770262713109427919948365110664920834236233921172303339583126808267023546419946094446689438267123513165653034960072428654325997851500503957908124745130515927528646552346224080717973585088041913401958523802234794202600427157981970079032373771735242389334633143832917844288110422507267460660141177874749494192670697869051797933873141259058654109642146959336688097084910000380477121884979963925289039156451386628280802590376391513119520394300686862610107691685696334802642416588258939156699665056259367046689194449864543822094936891807643348439766659297254546901264350556758104468644873028400428674474000056286087036325398580839464190978515890408141975363101011486288110698541660407371450818030418391046464817656038321053398932330243679694803650719385673806451016865584789950995842971636975136500273526421637097949591325835853508804548406687362897122400243728046483792039442396937264393586916209379373171119577192369157068525090300178355002994420613428888592038134614322666146276960997407618778395511292599951561203055897139193909599708983153122104069473468943942287840569273150163438996457904736053567508025251481389354522008087632322000836906097940627530083739571313386748387568368861107601952831329411398514732012084362174054443368843363439994234830238247909440578956221401683168425640769725766813854675932304282896882591659200185241609837623592432680491813070940694555432489071145444891586777032468142115759626047538361516501196324409246731566680999606415938924488279924095597027973306420185090055368915674143770440541961385664895851755251380028099608139601469364287625047644562758000250321484612117366156346160695649278771558506638865228550652527038952584078217987503294736608229656708483781251334245521028108023185329279550199004708350017953786038045093835273346150207202055859026745948309583459304322121625550413842254456572627332418718093505576575639216504274160355215570606408767605779108038503397560244390235929934723491863987580549621465198635107925686823966639297837032873833440595083431287749962106207151925183132450955887764816587004841713748467366177222743929090633494817495440620867416166284482049047126013490540455909977819773461830709387774938223438252216702171054742198268048725850709367762807700513377791846688328505154912073145982144273794673559759456487802077772742144160195875669347322448258719771814030488873055312374192378551068804585360796940450955979081520952918367121854832562632787265950791857835568798051570838895478813213956387750527459775486041786375156947052835919714500406793584038096896890270994453894846792589447323593323332835435019722560269120286311088925350119517881496452823570859011162965638497823543201367116417351043085630042536348839710595545257736725685823746265673964215929961478128090766846603685669953331553520914458737432280757498309477867064830220888509756245353720088111814981845734383326513783073617951964980440373343445200973374563163046766386589061210568747884183519071582538383301611496237242778738317704606996436137804471263011498038670783930074198378302198582301700326444470731783103222841944714078313156332792595705196609883650439353199128950324507783381831009239343253744365032252042365787982471099941489150820561160723222069560693959662507115604729570496972333442610812522556174753607969199362418191087882222304651319530278840098864212825798399118219179406588102068579755012616304091683904812409288114927566820168404205012983401398868547663719809004482957044750352427389118218510471974956155890497836243243914673504540788070609995708538788402992532847105118915675564058192796812121228501209339608812856154947800642632528088495984108284691182315773458192400335988986050405078357113245391669273626612972789213340122566651449259522227094242522875649374194265014494630802922979619234130317223808998917297764517278158627961222237765412687406649675119333621256318403395020596509239031338374173401910208160896394828522316546823799650204362113266763122720671583775935189965128173803486792563800882922972592656535807360068878946561154804824046159278987414785204013057821573163731011488566231926164790306246876121833535109744778691633707073628493252632450684633521471010798885378213064576421920592856810824556599774201457731750266374828471368554776788453820315695489694013778763890731955405418239219096493041721191782671314354795454317244620175141703984635049151712895877028184232162338228269531292559210990487084592440278361804153458247131716957666136718615088868302155099778789436691948460639137320065497658259405710186441657972659285193750326541346430306977072624148715310756737830337457777146974183603613519166476202925683139178777030026437627172201259820022275738253935431148219297505061526713654005525548954952339329415954502681617355152537732060213328969329872799899454552960724056569260827005124466277144674535630886406118081626092365164666457010585861197042910260843423322457614190225363298571182572981260711466066932232416459734496939739923887026218366395216606107762499091192013656441142135633962204586758365449692127307119333638361041646842077576559430031915276383970791385999528458645745550518135081597311693458984918505487376181821015308054093371025884423192644974769750760953171154618047937032039601175473945370973870102074755491804582648113495267789022307360563682953285201835367512288714363018361284747195429437489571929373165398422322093907698296099282630904321643331943792827182948135010479186543785501904059031562046352060041145645346739958735888831414088818798580972091261644858196529992295255697156213363721310869077491049814439316968280500597131134816685628116254530086906494011558289394426843458144449292371183870084782872336344833174856744839178189546797142917487655850287470269543623844092620115781756332839415016480084894508998123909104973563905820597963067173388260696536302970254569403598225291402233287005147371051408347446409190662232813551097590330986618592182109796187479838678639060192897879798203349368902224372733322879053683705938562108955577856356964312596153481141671413046830911231362134466367140812016150227946765071088868252494091285289014418251140564084329467843524187128467635522427902155064509779452196813687995279486869588819455257066665665860551406752204728506172561267006063022681922876772988733426985704780830791880192777345397905539746506018779768962858904070456509024341014829477730586005177036763016984530150984299607849717896071605356018750377527712131762834855112779135622427355970039639454730070047495548232567284880155305497712846462713563760183584386758557124569734003615780425743126576934562718345208315696815168485122726554953298693222855407053444464839639307094322572302936505110998120747759294590621705768767520120818032686000652223606510273080350782831078284504115188271729917719949597340919623664283997351422996629910743261632645950666705842676999163167169186349398675305195850592492175706543076928406929829453142939639261097023570564876857574970237592038610447622506866970925526945023098073187354169422359385402873717485734038742695763856352888056105524826525041951534160714724465803708857205275247300273267987750754061030141822075368754998653027168475624717437580531206855820015292808865169785781595798214321771943202929100840338908146767237905659007345842941579957745370079289238547115048232570356799742697173917066003846944440960294318671662204443970829411947843201931761671001197364832884943467800049757369232081950210151106618702735774021025011466798516032990562524399690287910731529871551568718809628461595517394470121607350792132775135894649253780460871840230372457061546287499332571609250318813418007039988383891889658334360850116928858190784575745737307005871602399723152467850851692642452707717490600372597814693048839009338341233468069846120202572212207468163003432079345741890699852455299260095209567046394849250634232104230106123484648933412868954382665068003103416836062770263514660301023347369334060971492883607201555088269784170917231241699028997597828229327153214189886350195557795336702126165915658577355966362832527390655865178271811313740285087483602592698823685040352501608218557689270830002338638310857457552760778567988301474058958430612223102318714324777626157227985451024929911864764227992361211417851784253837106965296772940089798443592566399939153519782576043646372268599109046386362024889218603739850243632450974133897127880687188569457372582361688014762239570747236243757632505313965118488656534186736003648255976931136043985522956914550900067804355271890409579717968771144744288849527971896006537383461119530741829859545180925237441359786969897484616235887293037116594857183205630545035087664374840651663394428756895543362624186297835571375768956168335031475731937298067378424472456342936024822008009323693060210363526036754512810466490959766144242558775327153670418400933235247781753225644067383060821235248092291936018865798836872933996531844942080084681106018742359091657346014319211796430102295397497868782249077846615357309048776743525957195700478859960697425714501437317008636274423442030799093509526417895705382637772943483299924350803636277092263994801174477303603470234369297645037804999993614684642438830204314319330501378946753366451579756295782590269526101276240088931941997065983933193710208316068540625568243652599494280692550049194318497597196369790295943445681445868670750587741969917248397127371350873241205789216708246243257778725336979156599387673639307516025150279986755559474378510224742625231770614676728892426221602680996299968722257210384987236629506637650751367874903630992053959158482507015695581676269604525567344942621159393007485576838010521962404495304933399690494349507667289314924852279507602468903866517689412490068317688359725998699852759999589582865795710066616760719867359831709253844497486505969449011568185079686980258336182674274852944519343601215369494914687228188977680846373981195717068913777611936261516973948598220607057296874111157780857499749602812458767176371355017991163365122176473505069576323861939539201229731038652131094306878993456579554678991728353896412269972205138960359428352273822428593214019558224215296151216130292060380416762733974579552704124803725990080788609759120666098512803407988209067774544062525143170195362441311323012279075620268430282929351936748135728948441876193935567288233094966615064489593212158720500987053394343665585095393540875978411846616227127285303524160482832092275737174167558837742359543159581489795164335063667274762165865582235248079115959246629786030152389684938429361405253166861324594054377526879386689679606889473678416930893127349941028066109511532597518337695705421253172346372738152575756074306907529120127928836650071983148832554167303643763930377267802492031107502732731100584725320329199486855828334135908189868097873172942129916166350860594431975436901850917435966878255746095891424890518373657215392978508405240198940455789762168076079115247494144114587632676016425067236706773848395443768610026941447875472238854332434325946674456974065709111964446563692762309025544026063288807760189596370921055341535478636599416274908522647023165070560789237831250577077089803238665065752371532871053832731120821691582675929681782770674223916794659088537585208267490889374792497122151638091813923834884162426393236023461834939837645232256088741136635443210163926418383636534977217677977979948669828287141391833424106168250219833258871909861015757588694997705187221865752792988207801388383212716946305740214767452265505609705819061820932071114673896906137269228092434313893337737559255857717018532628745649536197463779473579451418438481466943201227147919403050803608381685651777832779675005241797424593132795120746796723884399034967447520598398519343479910617586624176978440720554769033209937164042282184289950814374358791581866145183368174576438256378833496978402460962246864778450670545900866769189269376054673756767387584582499846893813079875172317423671876108705965241444305396709746228602845403886155999954591594375719702976396552276421640417962884170743547376749733387521115744019303809251279607681808148325353081128804357086636827817239509589889242885727491940922609656071501316799567018165015808314129687203004647828928977288263046480496467996941547786331981720585027235505846600963294881671158883875918417338554997932096582747545439480843197879587491655988013395595523826315084413299483691267929739927765248143086888256579089737515018997542130550535696465686366944528950872439480217427079686095864188609096147849386601875389753093926555259803202252626147136748891627960270013059966227316090331250409975631164338950283093309932079081837156359632276150241277045320887869246396755842050803843865079848749573819577675744428424837669124758753908197402086823093976356651261690671647571792141138788130672697432701881345615525722292056078403866114380663722611024019926181698834545925814580932576233843444556921578486578431776566806597283423194322566397951051202653757507009474373756847009295334344553766617968216803341390268568834512833369811510113696081074985274225749827688181481403425992928594309162892787360363901346058301678667793985205683764116227427796643260583127073668713267913343962934131606286332500871391736577033396249274439563140870591598083336539794215881766505533639533448849397430280018858127151683473633207541775242123398216867521091130255560122628031200352007939700003106347263910046396472030751725993110355888914786335393609211002975846559782224483092873555395305774020172479498563027071349969738105751824693778448449515423902899332010835220301362284458561614327908380448758630574227748687057887824792957783313707326589858516416893330734199126255836521323972419493989453655197487618555081818343493689360753837581501737772393071884033163700027564872481883506123638599720733194215987513498166062900757371084780531481913370612336072896931094758382836127395372796736578285049429835870933710952859809340592950873058920873075025193259538632499387098601309321404494630574878739476963053000565031191114973391097646665398729851683537154098171332901211808178579865658680712778663089961176747771470873935374696420141904022127474132350258226056810606492926518994265285699883726866556990950693457896721061277893219408684945425360377410070650654291819322932129677966146320664818114577549216511107273076559213886350061068534991220175477482418407297281369544202791371284688159078911724359493206600526780865944676323054874191230926259116760785893270028923895523909685848885870889513964520493937818921413714286510856158108004466997580820689114441910832582336390426046876552652978316550557181340099423739130172328238543864842485157503686859710858244265617263727637374442448925874332890633534437377477159300236233272825731887384442831200268897283406885606196450648848205126930660131080238409874255715156599597281947398701319491257774867176834318129968103098144680033326313305488565259448723570752407377368914081823089085418679940376221407135815995977945245672567844669766512045618413922182313269299617669362152880747271329581095732005170815345205444520411947684090226753203140369033028985615192092389821697118829226119873002973513835111094760005680456942538644492113267268140385643131271058117243894673064401398276574144530906802163408438368914618785253975135015529630542506454964300709651112285401466614144473585728272988598893981235449472317343011232539928858814663336133660215460869487738790886228250475329652089588211448661200379318903405039535235623902090288143603821549091942465522800955481735626369415688025361926902349834561464141772251504117954505259193427367907631188682170214605470418531481507398674992929544284785885838908065782139896756390202038316483699785034034459724647502107681026542391103020073995579316432659898155233503301338688433894367207248384564735391669790979488979963768842397664433976029948256492267496022471183136826686210221734932437344981021860764761717812369551441466183549718870129897618206054202251228182147936070780972149720023363623640482822010108104117936739298646258637170919203086905631469600796864240014210342678920521374167845152030902490740597778050087488398376285261562432632567458475354175699196828534733106036598660671329181117909262133438275233661606258851050840143508247772326303568852995473036310792439891484493433062184272114667899513319945459665967510241596199711713005532626438715290699334395188167603224494145475673583832361390443612332169279775655799595452579915586519919123500612408944463683496916817971722027581589649731946248468766667270857406633818458511862566065077919537608319307719131753688266755543021763932963216799628330002900436584346439122635029763049068279699967825821338792219141193909140658575813591564749434647862811008484080181932416773188153483930254493620846047016897989481890483532438091156669208333756310277359655597855208781267589021230259603272411943877593139345789425853579024980492610636585456677915805624951549611322009635778887850477072591875991360198147144044037255121732357254137214624612663443509555021708201262806852073215334573563052664835788670852080496692148586285231451429409001948687003765397906618754838634314168677374462196925123083017528521217250216333873763400612515871652517096303342353466317230740904105433180768940249659359672984627685731804752082414303193201979987262033693752247471870865507686327504516679707779907171491000440443719651414750208373264415532474271056599134666625847113015964482708526664348744661338246829759076445873432522183030386195879780041886001577953286783696125571941336729834217822401440391557851971359918189284515504056667320605382065555109473709853882305219033542656932622092925314086007201633313234317384401485126469034077301969572844083025419895430515339489648661092991669278352154454175122344586075884663743053251701446568612371066700380555737917236439020724542832556428183483158543394954523451684166052973506810106768334258817702697089400669442498495332013201182512981471365985570782379260750204525901070661178816446499749790993121379240709405694599510717342886980987217625812006085133502039446762819939275432856456220036491547060108189481415985032939094114420796527300411313140757774946779275566316818675034905479177489532398625941433908377235168116540934966386725970958829552288816093968522886080245731930984205682773442472783852324827456892032041984387403244817986265192645229841081691396649195905676836874114058650492705964616834632532884246977488421061119748557969853916221540100803515643092301057503728463633248802720450804697640157329125469345371292192044455323171895500936223519680768682076049612958210189302145432803420783936084260145681370114865206534099676909591960162599899216108784264856628444466506396779128235068882903347251134844292097565668337259579948565735395404832365206493445286588758964142160072388514847544571782357369915014233612243201451763203776827243365778188552549789331834436578039970327856516319490894758682708439990820533224582351124387623603348138102727110469093043663292089194309928467338635469176953552386178517304069565544005974235898337293672400896446550507260201973138623552868676560989089797609366777741187504341637099418653022055088151769923828699735245874236387992967423724634572214743539281124810335148979986049701615471694962135956999823551083784198630619082641842013071201239994899251758449048063191535064165538366204555744670684659393686967293246646113663647542486874167008157641253829064264959612955949492128278206248791279132502172468878226123856323369731454435621783434935705398778475931637096206245066513379243886733510590926040458375534819827444717145456518404354794848456912436631237462745999908904233359494035949974613533101859558510558928964421587399227991668123633500736927756571707217128167510470433330045863345952083616770414408708184306594504376198719077628649063029510374376254141290236818301926292477123773913496750104521523045004628001334183660566973145222499591702153203692843439799164589347055465374124499332186957736572699704195864434198534143563322485870206135542152246608237333780011910843653559117168946180785990695625721443160673041692103651456283715493391699960947661304183251282524938302528024090715412189850895325016986481229078955408591712962685739639594816127089157437403543716514306009034919707799950047435927809916830779731471482768310181894460293775317042397218181803267702206917735505338275746527700154000530219741554431620556494918405507892515218532579004855667885091794803849437638328278255323487656907515093752723375308238558833897370424310624063264386308646679144975157158810307013042653138302683024015333529546523569006139543000382907167664167637230335461333555919992867378085697248672266102070695548450467646942561009807615262537706801515689167871510346730752733629825673842668719110940939920313233134801644050820123735569538471755470294804595518703939861246176623165389106419024261837342500800864727978987736980676985425071384638601440029604098536735952683374396035534807602290930720986099535689792770960614035014868269922244989867959282161831986710375427936961951317683623372385460002620258079782016510487508219712704615183422780007663308927407474701301552722684374622015194815454405034582737603226071953799626505336630400702713538982395554097406186616652421977441116332816220150697784043675496983172717082149533819606756297743182826396968795136042809669491235797632590624193660527753612810880343672110854581794713143131895562485011216888585303430335149318599566054130805897776054987977063365821508272222890112973394584316005768728732709977886063417347335258480909389322284509901497695759881122532450359777070362141267678337032345150907657511620661704021158690284057732480560491865635063610577997570539209809049200131221111573462502258469259793499317934545914338510711969742836480688248287222613810059230334460977389470679340018022122992049203063416136534026231282540838020280877001713233821978151387072168059514146875834154931016788940566473577507304814336394229851167255546773201120389090684447997898056305752636288113475881565606860474652783557334465359180736912667758415292573111095265043506440912784551015929361873933375694089482142699455560193811861646121419751724935001182032356148210827031228761486808408502114618941280997091630115430249593525262606455737582549116169348096360577472600338567133509339051716293393472418982175450756033192149557193461775758430737729637212451793388988019389021839282929034904877950308613559891417475930010566263657330650003448890518462050754846599235482818819689566546655599866054339961865104529716235644218222363869453502366394730594877429256405245867820521483234618589002471214511385595169945458627489264584080994322782936046757336040522988031290414160694048181661750823939144586836849109995489279831112548617349039734098649773113988282550824578208861559341462375248977382859965665696007621906398607157364915628705896775322561460977254063940635781163619005963341539710518160788776904235615409033257540221271878548227584285427074238315132864827050399824547736962269994821783779986148865905866540051829401723875195558991537151913757965700229107143675765098040986478455714315968787331263238993514628201373128692840779272638105387925132838374159616255846298645114631777627583222363520983240128431797766941643586186299763053028063638724023760483964228046083295545398087343424280818679401936587493207687651693365190820593448099607610104299480808269757330510432569586725057864320268681112086770869358759729393123059432045205683145256622121402439772403476935687276628772520610199215085811354029153944002648176441339343120769909373534375180975682086565777683315048246036764620295596792434472876081568723080450553941985702083215200151786417847613895941801888261598912099025454612683000709639788563481733087451940934950196203582601109608849820415087249848681062095629777969122004403799163042614384699967835201413838455422120958477424484229759399903364068701436027143804650926697511185310449822743860725973127642609616842057934939594731736153301985864160192449820210646777204296303629580592992847958190349977589670081412616730738982748680208720870799168989765403797681543985227923135333580922355103396211054825515470269403015816691891624576101573569360378109884014553055295158243442452668856352691745563534872808654056982236391390555898785889093081461048447871118325184105620164157994548850651045099270796409895166830470845050249159424636419777433859704318925232312063267090751976943864930948645476535307883274433455419129969016414546964360123012962331136056394920829282886172141177182861232579779803304115612328745763205129862330088231055795668960138421410712190598468881764462261602793148482306304972774079415342341956073604591949437867819334888278769847590700334581796348262015338450026820402772784093947943066348062173540417577145558832614432386957313003840841242735158702242821329128944965640344139848640180676894346763220283384187981924567086890085138125592271906838656620948067865572840122526985634313928013986764922136585136587607970196345391090027570852962681703483559291304542021483428784536362830505566017179760885205496170608747723718518557411620362307436449117501662096426666062027714233849673283713006372681351827925671084472677293927272402495116205302413095004615172291500253433120399517142870829091237503328068870677844713765794886531420050558042980812631150227849841269852658158041772796331105170010832183364528052185030293324215201509125247095753489454628841581677069167058454228321226597801890014491549941613107785798800879627180221839230073465488402696911423694024436013830758583484572526959150050769193252886420498434475684760463159884629149962878366985889254229653034377906545517985276670207708567072728149650515936316019837704542628100794530958914368092263975025629503934992841831208252687994462900658354020657798955156379595687243234737834857104856358583726532685211505835667774209408065848781574378682899092672775122676145106264717232554038578840534042327299175921531262721647720003129400976015925742846250473408133226399924732331257139409096301010465690980834942610229311444249345272120197904330819707358613563614762280662061815445852762140162632036465496984535604353372511290426619982910204060722785019847945197913622953927345439250535176948698611554267067042855377465006560229728346510721905246625452460274297498418485821688419796581956956440124215896338150056788498531395892260184151089149841342081417235667699949829745683689768829639150666396251201005536864923598694017292181303616723564538767034074385293336496143089420093225024795936754980788860793503310210902812261906006869548406319836225855833099892271924663043718040527986212608496144336804798555834992978178924279795165316745559348706455823731742415729138538621547945288721854544442318905562441114931298750305723411139594030864438108641070383430033335259786280338591217723877712728004539506588011820153838895826337582919348046461368134287742165704563117980260712887971216251954583676006432166092036773994142090734303730506637652464242309001225684050812902812010393017907310123625366731801353439942828103518160030174669579176644156498572330129577927142138263579973767595726926427710883477249752270925525476910051605873540850633884446336692692945075975336223603041525822012824686846527044202824228562591030911547124537559721537118933401345511829225132013691398848837428965454832621065170762376549730999585570153655691287545865005560861775221881111872791826136240755529195317746301976401179249049641371659872477163198409490022141273224926160049067828458903349363533984126886919404403849421456707258870966752022718911889327535334743541610399203254955804057348279692233823640952566439718046539699314995689227193013118644020693598854994876503405788395568858711717337292047908254929263487939200312947851458235563446669866184088341205140856629409098258878124206301578508486472071541005462256173033521523885443113980334580466383765709739430479111350748616465991751469347361411408601417908818022862128324602337136876277523439686124425405981551486918545279809715590937120059090307277278677817059793575846290267772670975969114056798854367690642215976184103321140362677628692504056934767132144312895892918578518462089676643390074317088996992854053742446761981288587976233152490959206315168271376058916338762477875649145739114040654739968722361770947984159846684551399913339710137899375514451223080543252074236361828312937739978507872803775476311925136853094668362796736728116501962336605644493845833337869031920992807716260822064404710189727930043453496678851815515643122237646080103626272836735706932731832243165005173061033198720592919507268887709259892529999239502975066051958120004029163518985590085337616475778924640255478653421090633836693096479290291803902576458327757391523901338156129224702000612755064641924914630494812504123132185403907060025736070136257196849786326913943611163260200380827689946174010019278445928338586803254176249705551680337759831760851444355757034695891908756322492183690788460810879672583238336143274350555628907496293621275592824793811355018255154842942272328685051847562881310461743723905359835014867637599114074919063495584194377024722803848697154887024481334962016758705810311444824536628005040284587234502606671925938175757618232188503371673380520966374595267083415786283817579771187275029391725619312645457098037484095418345378716420404298004234929076434592316575624610849507717689883397234492863202851723719106200336588923462965767261368922314440720708823379422972302088283227777459013639701391860217848407256931948492219153935358960924191513960916730490730071498094377507217155026098679613761778233378356185780332023166573197933510427396093706905692185888464944384652402070158956706995733348213856328297647506782330514039822289197806864409819165419311974222783922304212447358419024746768396236017715313450634196461257465231331830707912798633966579157033170387009721886950750612069002374821637078184581700985739801339908922122910854263638237510991041920666970887324150369230358383803886554260326795270406962527921733608633937846705371352306281530180657059005680435061485437155895747663270975593060747329244988858208802312771516966678494609381940637020625537509607604882115845252774690178773947184203896086108494242041543582332721904403377805046757598421377731107004224591598057585626581295888981032959930654319157811478041451121090060219546891450869934588484594968927583964456416366609381029653127285924948167301658998683640451170788207641397191321263013534558738947281514619930300998025380115135049738963173434404096609681104031618549395906460938062302779344188949355178469610062313281312869742863135168789447428265800015567551752557302254525782336392874969834818992027248875399221056770212916038998430507330296892733161989624680790638387941427642468469138719215232180096900251561056502372557315093773809936027448256741782319338710553230218550428473845612351309300148576984304853707081706417505583885089562409277583104523115232786730332642442735931688089109327860105548595078255357684887647247802653112203348802042430256927497779517230328486729596216170516845143730356829157866029078276301660569283888535169938617095437785184671065847746779697278658334480042904862086814986459783485766262362908004103993707210314723865345408867067368227548294668933085825809421104818049040984212167236895443655139119340022987286971534781836070641950133213624569282298722389042125176172879845920852855536612231319591032501349588837691385796582983849993345358234001963983685127108301157891303224713769183619095234350494620996904620126348880090055262708745034133923215070043775700556181533595853359902396091600723359903036479765448565117597962279726072860237555383534367521732715450178317321254754320227453686723471244852823333474841358660818899528922481992085244940191481038746590746037260885968082976584193348734064227105307030008688002296193795900215839036137511224220343451946592932049418346521522633010675012575504799331415653484202531238215353204371925964411259629333298212062936433011424310360711543893798714203935407018022390503567011393188012091061216433643955197896758094710120552868666149684546773500586185919429127633569638693178400969496564500313632757415905634790770960844365690538041916710895409849601687487617592915688881610319205408609702886446336422512876360878430088013402476727865025079115461246687726603767561121180870665214574478086748990514392926587251993080054621912398798159775421080293377638989017352393809212320791245100935313011888022060446896046614425970985333717291500588859728982905567121936098507438484557607110996287851093667148854741419009560761533137483623087857755818803179404599830256931019544749575625294401586626600524803523261685403701076104015884085268700441105103759804074592989148629576294101000911225767253216789569268685938747978801646492305717196642837871234788218434378226106680394610730673048416440649185607566760031196216063270386176663066362219060016053322840334031551453005157228507227250750781858915803842331060138449078175460418098318679585326877909095604061040244152576753962558509045353947713926605483659745267395766753164619141101135732951540833740379247823814292849141553925928122465886147096485630304135992495996207582968186541149800735991877168871128139957564446377069477656153459231041040724933507154682958738485502970931425408916522888851727382631893295977940986028510140649932490780749667175401838655030588834584514994757287896178750032400466142587029535511214206526071857280477671044308461392663709771058683752938257559879060897263585043799677743462120455159946671885518788153391746877207031440836862703879200972420268753624024028571487296626021093126158410482838405314257260392743137840005209065314681704342650382431464025992651128798870396788669544888792924010786100061431916611444265242211500410483771554256481874946672446904893492060370333465794481218391106511731390268796397138197623845493806907053997135656179969160657292421781556698231105221103458103705434427479177100003432229568957690161717013816044400636493358677576956556671681446226951176120465664883852301725118824700931966511437318526456928461262186836630598706650759773052515012354392881641937330069183851806000025645347137873333029243662203818077602473689505611937234620251489531933833439331527118036796271441867408765592209029078434079607267492043569626805779145643103469304751868095256005984099453966551129466334179058969031426532084475065462178518463996465518271343070463459425457037158522267579610701597313093502541150778752012385663234441105147317101006693198091350983957770654163518733082461151375031906712165509979557186014578872291765309311880539587398704140397277648178571573160812940873462776563294388538683176853002572247517849255721906197075761682953496777296908380343121455870469652824204161206803258521824847967629195204064583674282883187583301925324577871438759190248472708841633609075486505235018181915404796460345414093857061074146334538692520859442177079112155393548258246223777339321935440494135482468049661008661132670756147029930528116205704778793706272372413912158823554610327730740240794660361485213752379216286152168181920900849909765266372868706061200574912408559925730660361060863535182470475437442984999620767612596968741486069375386595997438118106299498470114305680164016862641659620695258672435059553777784285628869564054394587988530326225555435792470191534650072932625256397470370091680519176253793257507073628414808255858047543180955168216201785010821281840839523826202371351839117703367090037102989273363748742564915989743045081417557870296144341764026893523306545630511696952575242851021225854635522319132683915061070076460566876833275402925348509207603474105507118701091819708776145240552442907554243241751459899170138123620729763315037450367108437600720249612472052996900338917708834302432843047861384575955396663913355490572727811350564847009847170128459580272623244698739208458940488682853131904265772405847940519369256072746056033940026716200865297478217746986290154827117742523602235473242465834716965361293019268602458626927105209799630894112760994852335108755695788259417186306201393012681350813046873782175890611883182416418520431502486648045758511336362169418990670439760853121910341019077759866977258278650895792794049539533214496543483926163442587545635702410700447927146186248801177256341346787151602534829923609840665321415789954785951694407635939454474329885012179432189648330621950698038319418276056001359028905273889903973918920556407281096931162405261967001230798737940549945681535019713001077288229620023586479849966196595875108083783332639894549098911664051239041914106548627327364071776160455021559066042720631913048227099464819201416382331615927063006569025640212627383956301323872270231137570527719959673828248427625569863896685965513756008890982288033486272947108839581400924672468976820238505621301920450649824833900799841402884245790498793201019539010466118073677425511596791758495641503584121145187362395105442471471551706578744200354404649062275024244036939156564809761163569107596020219987869225390913899779343865024309924718091658554886735077130830535643554741012165209490411456623684682216149305490796120037525199254499109685038033770234010873479244725966256785673967246324107849608780333204024034350062475410235798341225962218710182356567898869380093813438687354432206773651812401717142861167031415480760278426475295626948475917467312643261416667214158769373420467939957865537309058213338469841363583041924700916695699600370411669408633459568963393524181025070799594839682653927848417696743484946522022543386852903010024470751979774117541394835907812911183185480787394522983437192404171259000465486071028290045680052539357317917821757037686774115046608037932280535622337896772791413552062050372375105961863466988933279093874024614147766753890691258732049729403937951171073074601238921161016228228105776765280744762564109742818592728828703377714877092596491971257792163912875086953188554834492335178100983985718787210335617766362574406343624663346793529910362589084740025659695459164816448068190210116195265675629125500425954213638692590610380583266485087828863247256190295670966724430238459979153467154986869770393790467155597682318465583985677780650203881541981359758139928121073339131665316276772071649026002076810883337074065271478798760249757557121105780149498259322793981391884897113157454511256598984265975483541139664529705357427080616292763781725799613538159374615563290694627537502056283557069691629277156561230115785354975333032387040391976228000949383961252405497637728592332948699037828285948895818763544600992384396889519938552166387430509976507074936965279750749052887126370522652558509963029134477788047911299661284380661322030890307189204505902895293286820457628654664639872930991307808637585906798481805045785282440031039374659261850908292306843691015952445055700510312161535717968574105545463548548900168507434101676739435517814632430847364285906845824753345421704079801959863330767929160384243785491101258262423060344610900095995853482204493472162717525203835065507063817573541909247224778109906227100322455716598575041852211639594891913934314137619589163930216358981813557757064418054205590767115900034917860264105948534198304361499009503774399066036178193511059156720236213829743184039329899463968737178594164109482267887925262207920769249141869645895672191843249670468659782382284863092753367979420098857855295675513624212486816776507426468475076905681168004119313269911251329491304971808311967938536953768525552535047000967558650177030289630433488149173238923580262775703638462034324100132606421085211522961580690554553678255431623766350104504185546393455370240590806650907087694189863460105571936829666500895108609497849409902155256480201682322431518474178059262332398276443950964718017306348047864704660309618140268229368020421201752711683162641914802960731466079687844006193416598417334555848303908240336357154034253959273641085127988107258890513223064907090583370389284707171876080232730992703945797252967817892297205559478169254729118831805211325412694345838398153033006938319605738498433475356452101120542054030489344290270808262285542085691775012293954614893627810691030456808282906631583462828651879364728044850718368126176498925954673270132380357413512020827318897853511882323461449196553197204803600921096565573814703516327854959796274203842722509960806658217706149418323288917529239664470653035586183132102641922742104648992778770768766087530376439857428453317013907228345968205644574040440464740216181659355267973147196046714085839516979243006716724193526425554591694484632593416435012229430123359864357881617405786938184049683129312386657729827559946747366535382121172802617683783589854640001701433022492483999548224626217318451373008662912337898423357235596464443483268775789907804457074037222434675696496871206642739231602977892891072109129062730859525218213679147488312503952753619791808799084443843884576669677595412424963563105936566899247154914810754361558653303953990867309610265547797713027013104556279907820770654511256318727410930597742571771790485334790095887734099331507774361648001350104836040558712841127554626626729142469458929622940260003193787835478166333160799432914295253131335820923774937711454239449447387848457187562895178277815007148955707337365248140316739371697747644607440255917409760462724272317391735577196136587573517638263337444028926308622440789557429780261814492785616012002296146885249294416217487574646283729324487875724230968569676149538522612669616026083055292388436053621765324485711373528935980293021040400191246343342932335148537104851727772660377569985634660515319463439191536601068627463663885072692687899200767562503158009963491003160651244084848025248598030009476850202064214879371412683843263723959869430339376472489441938084656903016633822319510982388638977370228739850588754579272957122301449556710554046476811012336065444355977108490280890090971032215870910861894552078795072088016441084880217573755353517093759376082380542583290976688778042115319002252974818879151403765399910973227280442441355078929672540822091909903920173388813021991179614569652415714556779819247532116896183741652319492934502187252612340415274339508408377484291550254332563191538596104928969259094095890634557022235947136780182309535731764575232154540314219033275783695730721973154697255275442653522060817344631259515516393821337541102655634320732090477254553013676767195207892195981295844291868166244652847969060796622662333319713324652178126052598234127327968177685988072312667060023620717107663779029253733886024289260809160738888933480279502171360412632564260973161550433741294333542928947545711001110918847941302899851982631082937071526372438324641369897916682139240658462250691947828511166962777801622223281266076696886832814098185974158703295304060188411219033599200336366533480817527578756026296032151170866211676780463685394941439714775860351665259381824596636932333734357535079633510136851490921685106291982987540513507485672507740252916225005586823205125032417141243407844959749351353973127980800631945939643896635151110800964228182638461770214556916330589831760589400736093676434725368433704755297204302428704685209486660423733467139991319135886739648122830789895769935847591930803161549064451593312608021838695430875396885109618135440806529140876750202356165941997540471151529063116176320784624619229222488404341301229193556047531772284076190591071434955195421710783569433947370677723770824969277825814016803701963857515136561276655744395526487702300511658842216648882625561699824947163213692886685721429271754876953268871879549631320365839992847208046772464378979123979041369983626455011860961489332783161084622654749855321544469224114447082562237811685613310937564647179903842552818566449291677522998707659062462204705940751252426911445471645117004297913662846408528769947003594101390964023075220483408978320497564470868542551633064377541703218262871146798721625772532541569059207293580708027313981364735677785468839086890207900264830536324447361323149202001521519959627584657816773508735380739566842316440122576351940943723298009975407660462493258567208299236415087910056624103911477099553150580874651981711872166186767622817476406626475216835643322800414742180269696609217835719299925028280133722570977555867781998978533558653872281176447739667749396100708950122920367194454915045131356935358124614531089295908550770218175309747830689479968458620593005610740184624866349360374296618001147092242188117120539385519967894642013277267032862805816926064210471422596911344145073831989142513394089837042559985504513013087373765099823370333748810122265360787576341365686892965884456244813455872833890877545975523668870233794935056614467545583971554950039629800132063208960465498459900460527286791016285896832993104813753438602983481822217107259760538418306001534396434618892835791011986698085527740640510262601259747509216568788259103840103999804189168515067280804714154084014922741693444029126953259246866855833509261168017727937518856044318697015279315836420731242496753758864744412938509476997856468332690656003088333651021899387508351977347138601436131818405225241177702111101159159398075843431886823588064086084457700680322389417089094020713934681279337801134694302213568943272857973136224494347892823355456308877751887611043148621457949420625855008973406569874637432643281311256891586069431008537192789951358977083441618147538873094079194795680461248197175229048843964166753368387133095141417657210791752345732641323512646466737174433676742685630711769542042836561670373127546399113839179356809927160373411373084414998793305259172970371337633254983647561636053352027226669892924129746592537258887644225936946470330162440504405803082398305603321119990280723389267789210397688737273473436546311066129192629579044303519871464199428764709057080534471245309627840851321048089263984582469777139702389446925278486081186502365181591493309828688386613270378275932113108936496003177905893372891579700475352572402231364737726646324901486638832278004215261321450916999340665178492834927831843402691782055637777122835041285484557936326467366905890301468177585750739454072197105062714662863068771197335535580895073048490107607061691086518237127214658946864861813758586398385537322649816618589838023067243125129212867150022935543270039356635378989955535189315584037221805242391745733531606686077089397360346749425511794213392534140276709018577869826257457893648094265523999898385069873242798669392009173481643580876508562708237138417882141713301295078583937906047929658152105504627573551109824202416723645163003829576356410928156405106986125101908937930191030602250885135253667454262306260987903329184001813431753909848982209551512615256783821494768009408238820559263353269092252628274553498621660166772533911126723340400055953254430487736785886098173014369290669319408564150739927651187293432501055361639006510902343996820046899730827382553937537415817237743456334645718554399802983623230403083357178568670505688336369556468161223946162931119750432656440501681324168001608597464864081751056189623674302630032298190706123276905300974168673947045790586782907038478328702989774445195845510599046394991693452923283068159342371659042957937552643722182259139380056478454086573700888424149450567374632912658600813171064543782967579000219925302273739327438600042016465201530435246803832609311793238320883342610740420870914105525997879461063582919236344087494598128390809026160194350497778895547812471181411957131287950285080313345859788409701807900380491606882163326280173768063439982588651764327369450274631120425821579055236866617766636442564759487098868756920187900265233383529153454515074185977621670577943276620321369089159674450237450801684475805922919623396121681522210457306067115268281641809523621646875189513207494842695431526725700228926066794653198216320719451561087938566753145202954479749219938375715461394314403506110392785133762078399848137381467673245875740884727089345985490417460195143665725563757059799811153328933883565844619494946142404449079940324339876922512832477093101216050297920157571541930662251630341020678831132727213579241118517643609723853496277405071196414713253750017672861249601189756434642311649601099350548095535390801044279080696251678293504223189341925085524211230650293024585566458158485933652842547981169138217316015939950326340520476446637229514323862925674971257708668899081838147563250684914956433786131201600396754553631078873919024203143402792721362883996735593759612464904676963521380634477855807115218980304635413135578234608940765628027032700441629750883011520153079177375032941267581933291760305621850563446078138334115185679153704233568984018026537756930565613151982101699663555989633641247455015576672684073181820128859707365839946615351314355000416049035833502529065699530863679756147097735261523712534729461830323809203055944141619376783705309549254464322455462482101346070538807396138536925105368876177464142521167356786562081710401918554964508396811871141848837229269537213052959166089228187606736328771181430852434224475388747522428198417419679064524022282836804965880697244065271831759534132059675286098062848967985507510017592334272368515915950496135116683822984621288842005635589662403147407079689929279901180018198184804787449129532514679693896973292955823634469562103194533835550903880970976422809175064516288409881756838053865728113324929786231436856040503645679234941496847994373073655796651393392642443463416797382082168645275682723407076253615230222919003137809756304818734257805194012626923365009941625165797970082798517598952886807937516657865411619010930328319168284858461345313592024919814651187317670356255485391637362438577496992995471943496828341401312833583584311635581098365569375592684024224031726635729685368461071669513806846438350794028304892174918330699051049363623719344496797769099975405702370714173141061347410910403408041771464967889206994692639499258759371252172481405034227792849290097454584860271038490264530367138727192605464726693430762162346598777685724373362122885385646870621088387054865754936397565565668270782694576104692845097149139351120706829256335534132928803884350754773558653551946802449085436180663333969628889691221794148771990393193462845999842387025589789599107561314634129016239481706696824210443812722838666190443983972229536615510895517220185830387694759254911129656468441866823926019083534919451585307915364522231853784898759440525943722585011868319864641756114678865262274672987149711308564241356634490413257122068784829053146361484610009407694010716846479529285591507245177924453167907113973540572472998108543789822860721402501261588232078295296356429672345525972554262103046383430110717056797304671886249298650623494250453208270492334941464191746980060666924709998546594673980160539591788881507158551900378020692266787273069199852683704935708795127656667616853132552601663787612003375041863809460746158811290843003067014558133000369694774228924533140145310268627232940437114821979983646866499242275015143408757543875321449347185976270192026807624278092994493696302307070974368910969135408961137353282150471109869519075291712968824371767979885747788802308125908272532728100939599768431951249450197926115344220301364982423111801963105978063206568025372505808890264006434672562379340536120079348842093246424896417212851279515745308816851356129261304189719771204900818969821128860662250942044843967991381906288679425530811185169832191023954250170115295843244730261570614064351408578017325652575479969812362706951622619824804627255258236976068198444838174023798976805654802938852349236084833678311379245838605178869435542527883259558303073948926307038031822888149999190651705651554148587614606756933572232954381849032461917739854762805154209009107065343093443066855012504677027256637375341736202389830165048949698708285817290125136722978224211818847388236945692423430757026426078338482846192740060807764130707884979747933528578301474430333179098046752881808383145922222927302773563490097617673705803388175302637374422465132017239766660409574217877725147475456684811195623144112584437717179816603979339695341923387986844843713038102552210922490931920175839039092534583219857971502364521783420940130856639500051777564653123270062641886653789813059931866186575075371976211224066727827205038889013837672107274757630692331663618516542976902911939222409748615343918829923957085368638834700501253218692832743473155031442865782492822841828550588006451783984626578097692642829354073944314196543124987811768037970154878746227372536601891055912572657113693129049922765760272776105748397465977718389892440805452526688949395095006549372260061274734850841730442079392728355497489735435084202258916429678906631030276836826146865901113131343349672639025144074188239238763679471035227086476875603920901351248248002509735684919572982754088395101233639989700825959233585121589255658549300968309514221120211432682687172581613233070093489881061735546966720609243699835765833753935215983152427680264054291898675143995317631765310875491564271335081620554871848929876004327501356024895831158965608789312952603935589242314883752860211566949492123724915981943971476181656816795112614546771028048075324408048518193078197547291318755649215657891190636877398933495934663640903376450406731747694033268209542047979258669669964987965952229318033665460202480194709659177401906354742226510060413276026287469266433026774233228570599792856921958756944509171081880115453984599818667580285574429487690459254366579285748576933468258477710321893556235705319954505558105967782183489233519886150666273034338411222473568745994089813869688647546259051352170118698743007137300023692600072724097906165802764149118304062682585069056228768670110223397587394825724312943690186069821916806218629865308949853374505593972332373958965226111490576626831665328558118010873643399576613744760944171797297094182461286228218943447712324723024280814603167139018040420117234452147529865023856596143979042418182472091834891749326383835421053475668914348107626905711598395723600851010518358258550299917519380153524718507226946131158748914913482995550105174225088387331028792897823155917245647505409387289780675049555880206759102585249032560501576601948660354033254514705196779470254618785168464625839457697155827871599413435124464369073056484633149520110534765042658869644214253882481163918269881709609467273452739973601563307856039140669095315814567023476690527543932764718924892730644607383236356643286432399597523729675671731828741285465152279255413386116700013043408503231130376419262607713265924916957828578214231187349502764656811830947676385311636062611043677719883010523928711799687444748027143362483389208271141535294248038813907573884747275740915088473081825935101031377640897439551318787896247673602982768920877447297463872063651695201391131461351091554472969783414562712675004969916117023673061992645468283041803266453726011127647735869566511843559402071922986377715061250355103377198206188422137576943013636885846152447653868919163136813074576363245575808862104486140283360453945350493786758524849938523048553054153449806831360787867538724642779048437411785406911567451672211890811834028269705219215033890186039930941278501469863201342195954681149971288664018069789480244644695959575464742386601880485204042221370263156275766760170695924403529918913304247822660695769039512502388454821065233344184144515778830438190965776794661384321584350173895426379586138253553809130046773598621807843734156576710996812124351581455363435928958086966617964803840717486061141911579622866945505911381892065116292851366867926946608611743814456980250860603169934646344956640248057399701038535551469796111426720454714095015555327987141042898702442977653937538241410111139589969253198036982675014501321409632547072009965531120191085240502152750391413479918115353816680930081594004051389081204922169643923150791704496346163731052954650522024214072315864020437628052497730366281836650581885839538144377846817797843591342649884395590140146505504485260654376387627713166983918935942669824761973258965724127823741298908400347710356088037547208331825666304622780646921831929233066119041288344950369505118972844754642255338399395457102379594365137317922019375219840552303507022469030536050175668775299950085954783075081820378651087780317040965971757024632633015485503946611777773072658304149260250262776239968118355803944099011771777567518262816143248849879857613920023044042480016252091867627638723177545323156842882459398803350082863177770720689579766540568875353161710689299967289145466029864950622386789634758126440725314648326662157476393106285602719316808963960197518096921234879578449460262494570638537014549510841229528142579949642421481257998296919400943871053470997792774815757811574406490058749043230483803505139774594112175320390720152030834335038829612835389714895346861327425479737767317778822764470538632253000774927930068547185798997789473421034430635828832865309506197473315759675711533897519821397816503393023617135280595693919958799330985451834623265330347310315994292846245379537074985212939053875009599914228840235191186884424340654109269687879220137230729514508440144967445149735874745609494273548315410433403982728704584423535331267302478381344363972933708064212020206448813113732169179964050664519330138180379428619980720945790086929199949235624008428602561620386408964547827769127160856724408446548712939839959644801211379467965794259622426741805804532186932856722140829999336883499954473362185083173897121229280234943800676605915057582887290046500721472303646910836959915773776677774171800185497756517545738111202816404511875313325532830057551429199839461833775740978754962048723463911632862291984553214852729657009044833199800907887882751453866325048331498125409194220004278664323008063362727446065822316614960272315197928804232573012540364848098572954325431704289357464666576808321679412157224036157481761128920826287309579464833788771783246666589374718518057812078292959803459414267806457210038386523661522098416680124355467598337186284104480642005049401953483761885254372684903576766333572297270919438286906660064343893823316839632270476162402675079945595154271009275187079243143691304129566500671193809673474332856433777367721665590533171381416397441140681176278799077542516305274621997788412339459293306897368520036929123724714882013237367971824891615464815789361850491757717252011076269554626649625544603654691839489684626385799947531986473145067382740408468998464254219366867591053167473168554053516348142390586305627684151928844453007658540558627902354351952918981251191053668458646246432213064499866049019861652696657091443670799785672837108601099577833993970518660297256166545310289342096032632206169845345948007841352289573965706294991139819187497373428945882293627380501938759213601657449190480571538815861564681971498420550158374498774134633123297189843464344144778205098730388996428500689906820387801792030263396969288362291872033888585370360388174257803114038147550224553924533202381082795327475396563741808107851887502751479280248204058107094215368326344169094796098282008225324280592869649584933132112496176064028604766337502467336805320252587327859961758396962577406669878139674751086852238956000806427258596606706681510075485722921825406363268455750231266300715463826013780001862124157983942392950611659361482658021409560523210972081526238194874196706446491134190278228938660929807322969094349634877497446061819773652523038646133789705434423537317301148764954511228310876850171317820253473590636846251226685254926066244482033475141448138636630551476009511935388207535923938952382099618556688632622131828268967610024435455268092557556284269704836569873550500311210944094235533025302685944049626965423292113584992582974006277770032405057837922561362823387098157222113473157483258999136667160326830193798461855448644309416713771374397305461440769814185896020530937391189719503794299669837264875870583006738111433812759391680768201890845067675517509630944569247302422231727078250080767010866458935203415271167295381566809150728139424998123885999146316435612588118052288329107168173614465575247913377366044039324309505687263853756083260415575709774576935247476231134913783844415867529532624570718577074884310676772958902560435415619881094049657424738678981524334424158870909918899975678351196636948177760902778487562330457988278896600830949223044710733108416419748174550577616456941820270591276169522634507492158911897021647521057834089244450132294457997036909075980211173162705396330940692135789388454697723812269427518652586158867267246440839372201623868702341467702526286096493984632036101269817148805316210279718900501644073925650245788855902672101700380877985531615338274660599774282751768731750424362294643455804208073980368725974788173936991884565775958565575257314469049518152946868403875081808483103158874054303017040218617749498198888613011376164334283698752091646553708758021325730900291181452026920716186439753173786060191846537253150979762381454133359940115422398561362495027804045814966478523835266083260366992978260913759260356420268678066701283108392364438788725221621302879710981741424928082685136862000598869995175638646430764487662164371321758698976223947608193434457452330653607635011402316795512455299035439186757181772771331786213362525811683011231204175429932946140795264181231371982373401706510303416375624324531336075177398399386391307347548276935379709602164019107149584503466722931556344105379294877902725078071680016543131546545253905509305535844231871528900599831381827305521808666368581267240530732287993913858660058990347784183734285329491928332156427840624230998654303008033145247786797546440163320393295702652205708502633971129365633767864643109098881698686483377718123649841654360414605563594046781015104840194834899876789128935011068360062915508738172085023949477019277597526630905378876055239205242540767796752512817130841644605347468096733669040071410528818763310235211685902657952499077665814769829402963817163795029643436584384110516779480151940037586234602033461167998943622781735903555386638612047389292905624613511786632727452872951419598409247626906129892757646385580766514018082674953789666965460472065709076394513654050249520862276811849493929114326013781695221173608059940472678207474008850888901705359752517143513331906661558267104878952931262334293800019505949584102836147217786504933678570260917395026241644291838962852377768932545844204406156758478980248776931239885744442498838529394601274959918362304096236652134276122332060226640899373574967877789125895960657473415221742473880220062841139559376379545673227406633923134854993738065515183955288288838865028500615105542541905840753968085435390522579804029513788118936435335341316312776422448581952229718898645803873019463160598633339960993990219300310600947344514352262987503890746522703048353317729536443824429826241237276997316801315987778896562068080056995386255568902217447195439726085780262359592704150300705664861305362747290808370739469556650368885760325415600240464595921944437763449502357084590812868188252618195874814583056953073026392199251001156724682800268006971643302477200554070053525189709990308897868798330796393996251378123923944541433026976160474402508455627840176606325261424271886346077942814647920026097250918318810230948030859867610796392347381397583693136256183602244302090999559081877945262060572158986993392356223385269532104040899239220160899962161243319151776994843973190573757737064815581250546445046749626550244961673758433116559090446210071690504606077557812405012287948542610746576102903239204809443745169010172800375622333460494835029774200314878115122402126369944630000026401404700410061933910866561129789931069840262858321826460588967038062165265746920495484630169707644547623567705010579083652255087453633340960687028622496295655626862640921861215896123869646430898255823695087744678918844255451304272138519168984461158403489551469897549922107180591633815610474015583017632156998942860006089568421353165691612787554719925429012145439365162581234181951503849482740882577528233964612263474860938532069886585036458772136749866550691793681648512964918147934675622995720342463288627348688520934488204197956142708676677725372093104073276887385157924643200323686704903158333141460287506740926671905501817783574994123576931322450071571574867573922324712047825118365348178883271468744774457651604875891828748165286634476304362210438325843467631027071427065425823042198061768021284795550627609951606194250172089265406743400814487088572423848450531248169083737041617844485625158871592327501069844736962849702848228042402934730538251812784799433604306172750516486466082388223195597215889030300487188370974601237082021490359959869634721842950867374926497550699121684554268542973909073799768686272196484646723090474908525438270352597271897434943850450180572429843472649574019170522929890491940302867007944458494994243956745368900146245928679852849714334884215272468921305869735602840442867030032505976120046759066706241193410204999062098491066281172565582322632914969489932159253483337295481457610992180410714769960303546818470304000855611642658263776010927002866334721141982394201176298362003087949383795307970140861482699643138393552128107976850184187894858955310552742293272636576680439016777543428942613272947153928608748944807944792702045706775619793407377499397679405170136392063856127787282074134516929008980838032352051406228002970664037485165863421711853349791173762685320712392230718482873647839967381464456815677682113072351319518301636423371171120218451795956448307174897887573078382905641147139004511357687538569574641373859839142578865862339096116523346247078837808744837119190536364465512090706015762286583211778472440438511214125296651654443482518408341065833669035334870953663763133665146893256360233948350844596923333564677387286257425486798652746405716492021448125007295311810627108638948056710172286313250161686938109852210923506515621705212889974410254256943906443956871101342498706286436452217913465527766420712502760683681411823756837386923338597600894126176115650085549467274153170651179681069312709770294473304602165990760430280549701953570068778029955947054296310683565353634405617748268460893106902461199528947513820330451909687209502815703734838945403932615138150938409776320634334165834870814768350558912232833837838758318853952526815555319619824199882927596544028562784547965238755237748636533337898373749092371998188885746486518273780744649934578153848554544603849113771934805105375206657920213242733111379163301954728441446568192491830339882847579213645658082745895598502545274241144135638533335427091338965749064673360951413684380275297212023128799617852829896257943200660843067025521783270646717888049045430274439114856642280035628823146817586480561896475151256168352122452408063809303507287043670207856451424759001960264221128134659184486837308927527544453218206515541516481489768811349959500984706742451394260052223423390821054109755908785519535123775407884802590476315517631419329990620239697363438817780304744888717132413324436581558155688132272785208235517579511199415419088703045021835006549204452479012804434469859986577751782561353943537550691123027609210257784480791962196307521363703683435957832544844971597157760531964248284946772929246941711009965460240731320285497376772573414805074124253164291790468581082541796455385309270144806448499019490339326187595826780938115881870004216189327183104476791574468573385725679313926322704875855030954672796913561619207974237065234396614219958808852315513181855285265686055095680086319914175303441272876586413039922449731804984283121900309693812230751393366989845304274128161756992030539044029106610678966259964827310074605858140764563313123725265268309508064006697275539635682305984409830999811970602471098998634598343750922051322165189370923395840452629514745608955456540958440048519935359714142628962538204176698337915301249407754109468857937653645267278665230884624105337341795545683266561236921286054133663866335394298538129855736310777524852389518768212033458838389291909708675863759106247471893233264776766632882086344428994351701034962949751114406720449982688329637893103933705704578811805490928362108373865658301965737635838675248778761209264309892284638927856098845411653794776106832742007566133676248227851572688691592666437538311379382583208878716013727599266040785763466577241345216978575406671214469734491358063880850629524217863608815325534019295033274483363876832476915547655863131563801472160428592237297356530434460999755526191349865817159527330087287960242742610876760913567378259417554828194002823131347055675372049912804925996062414105482779517505641448344875255935341481458849751728579241191921441755391733612223027007823247024275352482783728098029485863842106342360967306841323058661565959497071262717359433190050602416240799733617626637941259325190502647074622371873706518658323973577375818026215457861268531741051213211041279988671447292869685276531310499568011653064856043099991805733676532217566102320030969206713640774687607637226596621208674913301151112820021365760621536658761563348721743169221747281662001066358933075867439864632239594284510201634811207456138339761466432266081958719613507762323835461388149764627019958380686893411473017545805472160553172813265447964618288623800981550856167408273777283713832725761153517978448110595394628723695089259193488416248177407927566375519174180803753693835040799064988935775088839945319736623951275059107526963202917064873422880885531562584631188256169290821771951829676726761029862033565066289409600643098138145239596749612399456824293056904865100337811843430715008144695323239950627731406635201603692752332865552608400411587005007894826053425798790336437809993808966039055266153298349537077185932544023077794163438207801208006161829774866158933742026231458312262472185114751163717160586356639567819657131092957898711374196655833827174915460257235790065946904995500553828296868807929121549177318940682747204492477546737011874138013064589290064908916728835788060945919532258283684457605016690523368064177656200939849694025953123906256800629975606894276191000964073831316927047119633738264422065332345624396470669011662819299790139651886927024210493093886129589703631257603841274066144639017578581474952438405043488472653586718900253751678350913004490281300100181399593191912463291483883194596079066618718088235158852526044486598519162840674319839102150515886215031604925611670185227594619160074232459267848547706928887599080594536400425057517546114260778194062663797311988127292219751730778639834486474356537777887348296530167031941574441325518731062956935562587385539177774199374113763642740695589167245560514027525314345485530492982750133883512003949753144761317951198820635393749402254427698945113306523022127165311770193064169939353063062754306509191084431319949052055768577216437444515918676122318925817003627308897530560951601379018563432707731700771081232236472218127385135211982583846278060014111339346267044828891278374230630806330259913128715902937648912449818518649401140692760408120335657043683825887011378744337046757640429803877946709467088118026259942375122754777507204055061816768694932758376980708473503220179370681736040015623357624499299402621226621592342978874376897387570153262829691378404891633685447416733883871409291534488625280217568844225435800016946788975370336594805192922509758662219251796693086954584744638327809790915353952110659454561676225256682280786031973082743055920529727861039807159114694849213958951424057256706608879256215658045539065128331109637506939087590325995536321028706394892774774994483757239829194140861850561758583795910781414863713425540583638790248699409312994964144618262729947071105863237823614660638915601761208491888473824235938234774882464334791440724832041333015621725663170404103261829853809549883046523719829220778945094169833358749928269562686226604623071336727456217403079913978434049327507211876769503285112712825355031204742264415324919954417814198907593677880278718644824974190296356696064583126948946891460561455992231945741705808279526218302494363073995172773846972628520650421246938835187039752287006585487015074658640468552422497924663068557733055440531809439392616308983272074532534994505942046232529253170799096197824646539047183812994239887822301694955696360331730145439689539621369455501149235157985773001013861978271973853565579009506721390479243640262305998172111184026553537651637263108565695030732285120717263861301139901186598155085427187990549339771175154754924266468324678452211327295908841397843052767608984973964016007353119021895818656971877902095184221305986146616268613428290608543394378759232163867785834087397385997086697272455212126866961253688113588688332543852935409262282827899459236133823019403871343760140812836027482679863255578202148567038430058981567476417875398115354535214437211157800641780797103871457998681837392874292310805044532249629244635632721788834698519061246777918409822029976397014921904514098809327961980520071321793802001440753221449591159561791786805866880081785223317658951177519422521704943807518728445665722477874450715271457957008172577324089787719086594286637620234689374919669880894710063436110056324682936264689886636355093779694823826149986936300642880721765827305581487414500462202935703957405722614688200344059270452227009964939096143749470071434298911444915603203549525709214864125433712412994065319593238819215891725483924121620243627140585405910318478985643950316057719484136414993081822873829483896704695212630438991143010290943835555953913293267215732834248139611326933887984967418700951783324562349593912239682919526771878830732560806277305458551622358164335033491655403162790240557010340692446643266266467538981045737414993165179760042745039109664443402243721187800712186370614587929927902497336696208628097777883393680555912244620710371484348217964544667219288108592990117609359326561747312926757220508137582930588917767572480220354297365214404386296062472020904781398499337655808969335415578295812321934578138449135050791727555689308531110844337217472501882711332098269279441324094056175430730092511908275388602559275111456800061900167744001145314120851297737031504720797203193319700169653061252385703377547954120076615384954542505706970943876696375906282039302193326513103497318291786980489307054188592224962931833523856298208035591732302445329512457861161485707040488781597456034273985913258787535031811811222206138017658725313322728099182647696856687193140795104421526860966267254575287373681250734170267915031982586169520697294743110032398922005784839013475647795572859036187962238155487070415440131309314851036664415293406244359019946616428897918655081821739473871424412868199441942108360476261758078619606661641413135108598157301940122794657330016916603127033556685361923766462303277524422380962956360995069796282345108771974976959527325026029621087598991549980567023585835917803869525782798402214067192255623402499153810813566384754229685419673730350121632927604355934655859897977566669049971667999811526726582303362019448721287694501808130401651298054002505903873583422397146407689685203390140522227128596564348616795535926011575009692269625085858525059644322222038585903452316540005664906547694215669502173640835237643585856279317216443826961322108732677660290823022641243720474043807265875966247906817450925975649970776232387375422763737450830416763406376775430810379989358647975008515655050688291084489798959905896912871383244811814079088632430670557793623959098095268802348920287832176370099278927050965519418839472398009983688717370339487068296650834505723637034543023059130133967329826474845160055902765543164524231242092860773533415006105573212918630232200624629045520338701999373486290610370881288199172517555403540116512022301422402921296845286790215818588535762084880576901914286512312272474290429057117177115641012549279917049090196532823245556315223981954078143160363265429309595423944342480338566716976513406580168434777120775447754760706064661145946403388385365867542505261140650107738461997101442977432463927330103630511256425677696382627641699726846398067321053378837217759017106674796980140499623989494735839436254802883876537498754029458843756782813815490492585117425826112706887887110579893884856252459347342700348610713413127690661801071227253988484475390496050684673696672995425659215724932891013145502391380369681703133959765882145509468465079692448598951095117655668102469659598141697314410467753001523313464477312349355123737460487796770062727625678918053752115368817560855804428769280783484222658541715834228390350703792794531942582372558910620626482022388646625742929487859654506182581419418623123496984541561719642511232823318349570254022237522734043701942962903851232708745772224732755248026095285651562477960746522923381799223572172819766743015915006976504360927525509906751342304225547977537988728448092654895507201013631971121901285456231688976443346963369365961980373475283218041421814319158339036373293841452758271061724001142252326636162654571462883051335347993241483080611239549055711460654412328700294907933948747481300762882341326812303024873481252462373890860836033597613470414760375156171985270422892467080395445643220543546550025816728097558893291766628513905381937005004267966222937568520163207224282969751801140821591796661679120946313539371027398671022009516736708002024986539355144475061979152661822357974541060694039708464975098298276787689589554319049656392484493049661730831718336911737422776797535289374658930212102933012745226287190999160000157944343473725964158910445148631947742940096529456193324750306505498079557768981087109420178635411260155341478787195809111102310843653642519619708460155259514163509544904882538054503909909967280417734742032744061659889330869233876331164342289491800091004766261790012865844910803030439106039572002082921274284833134842666178780120415922713076336473843826870692484864534656413796079004538488889635861056658078684611504056262268261375578985780215961380599550275870342431782924380288720377248156827453318253013067327675218927228081965135034678616169249596157050963090276393829271228706464251994455091147878236548259419066443553433963562975549103220921464979880309298427721257870345862320146753314008445766997369753103556085907377130494622089688392982384997338222934531230448640893594976332432716986084572919067641873112289013189335677560974233038241908341246845501854148055161915949075515330344221215108299625875004128606247932786085024576111413220556142433608772862328612484345961264648809625551185953541103898866481662869151164538750271328226269031109101280753519699341114626472467409777691816740347901180110558545136646032122736878016370434168987865355508270652963790746328767696135997881622155844975940448941143375416439373112778102484448764250468434233218465611813655860076680195996994185233181892790727318115569067264172207771254728382928075497360622421027147955414279798547980717502447045730471481361670967249278715545039505322462141837199946792660278880689914479682416250231311135478973686730122559814759799068537122535349016174174101001611399583782802354480997696217436770304505158370660826480389059575040084897637634073573407486250025574475759327138406023021386424958034280593017119913157883756299251846812472651418106579268393331654046621687462897199267740481127606776533172594635786014742046731729762847977428468915565505163653276486450123925016739583438417958716006683135754722530832655424307289162685832142850068538726841813840531246630385837368365125925994117740873744960592346517829261717172492857457174362120806099762596494727661020075395359347422606809171752755348014254231337761201410365328021131833524245571571441144449490093993931651705145353827455247516369914238005989621990575232866811613637098273517553158779738593540338321767357683636367313096419605169571027317684832961320825988708914652979961475349912043804230104263426348535919732714358660407163015098182422504158177815853987973622127708888163527809582321658600034811458845462347993707924306165961753353508724924579008605566620693178532867749680867085945545230181570593571311800472861624004391223427071830274726285593509784979290806677678885785899849250795220879498779945984092316102265468510314290381270789419048380751422704782908829683414422224656308790918659321113906757239685546652694696807814926994145307507611678092799957914927111993091951965815561874339040260700310156109960108272132735238018138300213109412705984381065363355264926533020658123374472179821979670362720388944501102184881869807128532839285100275274634717292642362417586750583323984166684764031801368718989525224814218805853343868264048497946756884943302570704584216971837714604801160679177260112959016055427661889130254750210043640943873098913887151054180898281408345354073622694243228468511252344319368357757394507333143957316922929851620190444305930387222036835832629912469511541417135830967596588526631893376317081438027809278596518521762367221668991407086580029679520599017015596750540741168125928256733763854846845746102484641401211293538890719528387591524901303103506533050789379406235608429061162313271931539075659952945313327618449839258877231378396956724194702151113552614973594633362448397142683358968627792080621868866504209118440241167334624423436846736480238559182819705683274300321053370144821850729826777215698425455371653542756058537325902487628161132924453237999123736098157824115571980985470733345993834081922844914389005366803269775374700926588554030942038491023911613553617912268824527070425723242915541898098425056044597213360716166244287643204991359287890715444721811022473779483312491049131056942748891853794970044525694275844611822162882923317664234091380734702936927244754418066978964593701832754638008106478918239662017664854893725221410778593537414385737422162724064537344948408838639733213887204785536781484168396069894174387316601782670802220036518959888687107635073561079776084095196660166140016605011084401744833153603540472264155941921644192207658466915119006224881505192554370681472967346064046543448892947380923569346300198561036782336581859408736557070783834078898320063930837215723509917765770935678898821195453197191511867554017252220541001552753609362995182661252733805197556959878570612786192686428140288304736923994191465695348409077672826781858802422033763333083912157579596888229633994002880790894214934857291983909951377119469545730595891968748403640432568368540733060954135900023625845044182873240394389153940740161551692146903350116795779167682421409347119551479650911983661768405045507621019376707408724131369562039043129825994237748638208972567483194891514389834321588928891987273680671127351822467904390682938014605663862121435236364250866853016535071230104697071816630756075740066790513246370500360258735259275567758779097149719331210831016552090091046843707018023074076803563812487450431738492751744819772998330391738569618475515781141644805609744759868855286701101468452959184982818998206908657290011077985885172968860539363750792790895464558096893640414586866788456254423922828560572837490040140504687324180055276053239204404303183161812429026210491685342346993080634924652436821953790924353154581068066674116041933318675941132736141982592990511750714341099235717689455303590004022647042239431967307727205276269317211444696745201772871074118008269749105113968201554455777913029842816850964331640580858943963889387273854176122016021693037074014187957607571921673767508184393721805602556964946310136659583936894707222405430885267371846612418965464203367138254168390859248422515257996786965032993814579676996365553197932869742035953707802080621839461400354031202431518513625264947714473970552419356151292553930979850835722525194496178359264053785080234803272921815391393528089252284007656258785000805353305686519998601954832250921574517302782112674572367180397349350498412714205894047206425770062543306159318657111547408567163295421202885765336076587762122357326834578879820511389804311531821633603001712023291866944758394039221132622844761195690414059310276715325491197474464585218837233138788212744065431732860443759984393048262473913328604367155794921745630471511166216734776011636418878603911540791603439353373445258500906570850219986677600997843868653976889972077142271980259261157446188348730964350241963965321348316807688069535307336378293045354273868904097653186281569540777556399829430787696343737735902329632906599086406597705781686098819364913023645679454639709064003562404910475409847323457883719868367426694786694880343285963461481781515831290600713904555038425371602074493474465269378592936878209694678364131228004642303502135071661705694425812186190638642734276162539817812861051876097148637135056156120848167926016645744634532999011276972084725928624585875275134028967783352457838404761998638181248356176891203353624245431077511859156124512715378135631560887077681891376096506485515530960387186364976840291385060404895961372292437490347796241736321474827641062040654269862003272447710652343860799832946471297662511463695681367090120655342006784228267216198998917335798911991552603565040307751675259075793230405440570243977591126239137636507621283783207686465276569112739918140842138537655774341444499689933519140530747289162861372943325218164868694794840663738048874149093446143950291796788598622655829961140669848423520755966447852106749527996426260402902314945579291329014102776510389305437183475037689463873260737414619033080790562281481374500594310380854977303134602233577381545383205656021528763524692909482318024077393688060498404990229028221431527213098771794314791483616368346367885621756229131272549961882488412567913123464030570371871433253944148844874318523882319323492758048953325857901414891233913800317318434279373369188697596282322858124472832002309670666762547353063425096451352633812701796066149181932138526703544152764620448842624003376858880527810012326846038001940736787247349561487607995367413959281710630035620807818889404232576282549262988390720091368092133279043945398432393702407219385823791653516408178817598337618956007771812627364898259881218014673926395044277619382175785406579253708636793607531105129011776051471659456536128144481745189247297243165202593941897392065641914763103361345034562362404724470432554908324992824673515209237475853576619811425960717183645641460537011611595550609682780541955772723239663449286147803904433818368881077070225976027064382482262020485698291396478988175662838269997432907619106996926809987327428820750956843421423772307769958496856474253592991935315900635910576166691921318994871283193188233708382335879913950341589336211416239936949233918931596739352727542202981206315485791182161711063351008231630965508585601984647930724728211962210214626781904747991186100876185236315494618141497924893677416152916797429666910765745554068139421000407682047108300715036328838210362601117440447361078330723535986635240445132310065459527028481651055672114793519824991327991590689135095936343982476371762419090916695665017671222724744923174046682775954489163899634709219915143003962380383697295003067675387312610687749499907937737062833958149194693214163165018817475190333142665631293694116597808769727841123400627998144711037471139003923396966192290864186852230323611449437165552581042270311262193598503802562458519758894161656807104812731624804489348369380845399756054164186185553440557861683947907059056444817845715558400154608035832350533822296544462211721784323879303441349430085473485839369941403254944701886275717649129231092287809007871331997845543341722336012137842004534431737090876794920785532406861734590328269332751563882662214502807022390826470454682340379589980596968262900036537290811465719188154977332726860355290169011266982411950710970932142596409076026624654176583101922471075572638279042996767803457488740511805579875734529684418641097865139312929186279435616003946179020078054071336626743959065330978256057620339333334830723513806624604384295268201800706085589496630182791050871478077712848684635456145095352434794035762570451529194581416348870291823647589455065073320663836448705655467082459623086089652695816318798849660892845631129553253366094387050697133094812535154616795499280878162440445928489698439790797690919050528426696282182190908965331987455125130610448433713618921091051285961234286125489849966205584532197431239446960902785349501541838587516127844145402762514745346729320641314163515764807900800961579612857214120459934061568112267330541176465512181110603949979086977268216359542041062274264587390901386283807463168309159643219751427027799659056007092460975086447595045199254077541835977496169750755007997630366719171057393143879071661230041658873409221011255945295997242000019988775624696932898205241832980880000498781933514915881282277513617578190199352130330878756451246692987898254829572027733024067715304966126554971228141535644372661769852393256906064161506642216658986572697436235281105487354371819159405442927186723469673072155758141137889835536354919037402839307813700408449996297118961618158180694721292236400750581636036879365782225589375700893923495527326836018865137183914068502815299289629541456534340326328251168739392641096427884937713338521082383187447101279479090828959313932334702420606169684123910336779939333634328599179720729555761572840428201326214880110289643683361343970170107236422487336432997541068439978086358759365419478293639131334325877020787275154723863886178581645661731968941481216221186704187000465993262407341277007789329819368177469990485357749220130412730682083570037983409310980904104201689531469740000702295187321276666370027968447872838474189947707475308545429846924047922760272442325252177782685812895106354152046549536136557889759522321159701898500451497253097156455374855203468140210592321726479519858511089916037044313658387671673733665535646280751184757863071926185099386115600499109655763666948454409098011153039091542121280583912373742360501740859917794704233952950537209108014689088782330743650632650240362939815710840163319387958269119158788953369845743470733784022132451719049540007114083542856851865173407919955486441155151966942742897454082151196692244473129485920646632753229299574645209771729011525684776795584661706406442798294127062171794859490779070342841846965178004259551734737048858106689818009687763956272332001484165992567188924926881892390001689968419175193771632099750945661136050362945405332589328423275380687387355547492261670192458033948659675857618527226411961629680485238816889047064158750664076694016361919659774622701379869491333483183058550288298449533036408509844725459197359178823901189990333966832911196115151111070064201820379977237676019235837717984654802513727727554595012036133151293830430962654248075870698476142058726527303127431859727187318754365344967175806117981537300917067034857338368980539219044698166006546467101666125290543936658808035568714609135600009466917401025794540914058818035120552189455423455670176715775990598918415082699283706033815467780467325981505390475240047224515313372892572747652849252787715812229832168636658528839239912081712107571166351646411277898329066387311147284511576511303818789729215820234544891756199100432397333528035068949519775509272294966041657543475904300829029446216762305806806877168446503694995975854480360553118340872813594987595390138732730396433575979010411941759262624289493386146117075797623956293739464863573321884603636381857977917096122800461172393488447706964606981992000373598751314235609568492683706257448902011841051730754048241400732581607266901611877253586650707739208769635443127322471768570976381158121812431608473776629963652027314685271158305828451597582396362410665280158487599412008774438798250320508257189306264888336681331208824859416703155709441395017357510364624013562030458763053735863374191281298655622618476937447143187354899995248901426337000478373658041393919799090147576480492776858192881700894103528206522742304986710291185167968151077667065140600544527256206336278737545895050661708417352642679857951638828713784280485237784209941828317446423044532717567315951013197233596978436053902031324657288487240318497589895527051092383501366568895146485327538588603673326997066204850777080153219550294489542884999982864810677407461133437649783027024133686389621086836788216397068845275179522128971628914474940053520297808383111221666606277910451957424551732703887719425137503448352638316341703776101089162837934080338021521981142726430654670824526097788769226774412008054338667913000509279772036329000767848965052014986099226522507106420302890367348210200814655989356707910826763552047788391527969398924474515771707206426742615582948726132636700302162776604177519295781487034601403053217708391449830158114067429747104824137292523600450623870918865037924814733949041662047438944593577373889418058464418383288477563468612206716046164039025707811380391171793929285217380138702927411363670165650349189137517399337287554374621212421595250734397269985300701032774399433043620236230848385771212455272291861532627175309852025238674289649132608992373454422496527484996005346874735040867562350062833144815460913481051220404358040709229742985929518606157666866963319301605517018258952677393088175425638379298322769990697077159517188478861923470317654022112532581435152861429768319069299493483250220833106825271137160922393001658707724179990265069252004847047962739710960436042987029633291795544749809472807160527773004968036148466351720965422940082080224498367923027355768721415589519848020423346870801996427328355685262405073048156271765171747619712907683475215037232087335947458721094060626960324965570791469181678398990335306443965562507841141309687008053715025259500281145239134430215134730284735704705902445112266123176522956133504184405977731211939938394959000093179678999858583284301551029365362610662142280686757111863054101589762261702630480923775129024064763528534883206589060757359134561601596151682864183735646548938325178863638324588503887858199431291321380272577813432918965007460059503743634878040593802066307000552659839227436289928372666343599236130224420661896231669629126097299622598629408218844533042024516633177110552778996262092092952405829960542817686872225403736204554177915442166840327913832560140478733668021522171105379571320651331950218305673934668030672744199247958908014463612983360628527198670823564426250270701387491845539306455502560194522628151126201585770524037191968826034775519415628790300907625384460923095747062884858316885495033511801232391979072009038716868444200234894537960320926121804786748973196207645850875523569996364575408323590278753151549085065962862331683604457923184375511897312500455625393184051924801055489144941910780372403137048388980977567648010483386319219214333749239705835745912113571583789685873426658575200675494824085382233111573356200438515969531536990477942564114207503132905358037361476542362040235311387371492184640197251459008352005411691946988315181300423570825670879488492129895457346050372492849053729882749467640078633549264838096536833128751383786472245934058817725280642573446723237567126864000596287026685501149806913078060620454330380588852881998957984263800822154666291366396120142779036154301148933778324238119784780791379503168820363856728855472042018192867969568385789306672319785449375274143244434569762245340903303724319317585004466830841990501336508403047276645240488506126245045772554797494552396938933447585349250031667619724753410158650998694936254495972936929948313468121439376831464419727987984289283299975626327225857320248096469344846459342744352584497547117013520081057234939121282608163043097793003635287401561026375552509704727857773672117822703320570193789533741129124075039215693328944478055496903614436257647277115123128573157324582799775881276371896004932698150696384151995584095734395102827718162427766485184599958590184647218758670895359819490722257808343252243548368139243916652810882563369449247044263071437297422089707290486138911861836512278464628697635280680610847336745085171397541831931861327659035294658868183495235675716287426861408141099300373831865585674071902843166057268327708410664050610977228035807148439945720338452797811724342228861031624147350354151068001385971657652035933844791284850867736101939006770675898831155600013671230360262421302259463130802493642502814840844149680278238698022723388384876078855574122194670110072376283180077158695530088195441925722195731594411207570659062136010172824288243523189721675673464112115491841373793072671129382875203520693943249878118798255033460792536103894512132938241569112012545388950368341840013773585324207474690640891435487314770440933643332154332205867319911580211520330209475957972637459890421405363961347073849902025466021406824747203026675209666317899980792463027745097236156848364099906791863803479206003523021448367828579583842989715239210729098507174697856241940796718853392819810837456199154018395957626192006650959190610347888428544727488003345936806111963481855429098875722234445337571219144405991474306136099952402748713693529184809655703718806814296519770274257060827575061707772196611563609479885295264806390502765977495920004791908963848025737871717068527907736795112527488603923915756901835035008219103773843579231721860042285361660719067560959638757740980534571086006620262925845502208135216999761490312632109203693375542969321393290619736557910623869515118602363896332735241220011465032954945060895089975563336537272026784125636026310502515999695353118802350893931175566489046434436892769573380216476946574411079114937103569757185137366878930856856951524310648740846219950452876481160361731633507768181250370549105690683376512195742788374009208447358708871717283186354053761757217396726360175746358102546901079501844487516540698448530020293402399885173033025778560344749320851055562932587597113665820411050045962685304368169458983691245020656043011953491621518805385143515690460434672660325986418489085284876819852849320184879219303284092025720871466739972423430565208261392847220749811659944508452490183952522831563380982343393875850426476689682828574588794138440294008665593059637330968012275893312433055554547795154092797041940873594507149644213915847220992233706073941829974876885291118401184611662166619347709412863667244042494121895572196761140751207232602893509890828401253122085948667788695296928761213111464724464930948466348621747509487879828540769267870374640626683941079602237506470260963683058077395164451022951717228377492284602161729103330910821974904138586383599408275744331330229355141795458477901105879655842975059781432675786570838959202320576791076093346534445879363615667825072799926890093540508526844737689877483653701945469998258671143284870360836413855966758493017817450259049638818187099264334605049883676808802679167193648770827622903823106163232162887395211920702738342164390818168640643907330358104996840248912925149691147796704108953840724462483634524012893886101038573373461132231431564972199672115198395791787824446832412526511231976767003593636025327558786215759084596974004866879574898523312748565163703348294950686099416412162319613236555985935411924351499987386670533983411173693385458840003106489580720263922062273002235844600828769729192234993134181058057391659070992457041602687315190666270488301946291662956342755090517514405066415775700795594340084045720421195631936818162339164895054535032275147685446643360163666790620296625228479142038980711870041452547891038022280175289820498291849457973205984729735176142672959896186162474251911435911058950039486583180568082182548407822986213407949631491839288504999130208287305724178738904022269165835521771448996052969773753116520111762638877028597079401014798290177090262890145277175050892069378064174464794901589735582875372794311340097073185855961265924093012299195468303861250977985565375147490085369962967942503247844709481001917409369513778636895758889249949228066919938070881075408299229678138480568095265741069954670711705942013048245428965682300763716884967298207395983745460525394833622657125330268856638940176651640315275978934309129159573602680317295438662076023016757292941523910440033750581141543815104105658089271438956834936596544571869634038249268616467216468024242136439982681229048313512416849812643917842765501729915148123813664100225200413230581132888757744506113546217053839855998155014558153510230745144828432874221703943961336368200663340218254898590443248215161876802314729441762115350656352252219254677973562311979252970064845047025496443589912412532738460091274124419953320850256843935767897862779723696224519254100016712706909311070868935109578695174722135500768342399474372133531712719602107574880213281488245222397629954920040151937227208749849491838953959953276895107393816147563490690802133021234878997212279291845602046762940654078085391465082669125709209775464390894859222477121302519317128449057098817207934730992975944147357172495569002241926482005924036857338031709490940224363029236242915936117032504922884817261292982506388104820297255139129272538688749613534222662673955458591155967411249002449892482322539058294005117260666780265435875411779301251463285558672383665762765163978746309567389386173889546351986364773448359501748876966975881627625608646074154327267856072840003296869473170376137204358669370209734638624552068198389845370224969678602945192173122132075082239037327124930519019843580821876915584565465802825457928945423636913904632931604055921511144650447863255072363693969487174959514172022384583975387740072069745269997257115807660868596247532444016771221882914191326890615077589332525803003012198472097274485999452698333843475789858971014891645530833361011464199094302762670614716004227628234929808861014009092566358689522074920939870580259049884368965455037161228766922131941934551753317586090360693582402326837092588262515476602518780606001289627851676503571413625980722956709226283567816471908618236778031177560025397450547660275258790960286115783053089222799974478215389615993192847982126230860354128554030862747740724833522192991883551382647915814102587050696383468208918137610777133556902663420648544315472954859067298434234623066825149547709779164611031119799435712402546744231976712007365089942679420070956503985366523111235230695447711443118781240350163746774787430736633713227509331864416149302762308008579284927076729829319402352715183741957938496072232702570912882450435801278402894626642914278318508610604149058044161900005088099984043819046564159887933690358432508577443745795910991529324083309496032844371712448028458414866619992539588253464138703829156926541344799500751536199948665117907484429729900962503754046740193671280719082341147162356516392576944950540965170845820108280885050438239494629102366840678784226734726579500658529032625314921851632019684917830303858715569527022331386107238591349428966638282030750912355518081557106517073638277561296701287575883771363456821944373129211420711011018556249540438961006926919593133245751807317953486507003190340830376579954440871379646393230579463734154818875559021296635683021485273714215637894139319856798937218043359046064142946565655231472336349195475820415703540665201091804857574698510553134724742437985877553476914071198788332942469781451235210958904211858205520726364819080757280332596906150751372362305821221579827821619708790705700264698798831459307439350722752102248261765216463745805333722558124270578509911000291415989450106474652757777340774808699569597100045368968205978862428550170400075983307312673148961747198909878465904910086865373052140693751131789503630093200001881704289785257845955683634548534161846572483804489164659420056048889127414580765258648600011916707926106675352376656918535273028991171866239809419353589258461709423048790466704907569307631714595407264759089469469891021973500287591408366766446007999782291493195030367935335176626723505779594092443162670773881158796762473851169190538459704374664349962148155527984960632723033415916906509717836569456346548442358113941003616992891078037810224245063405109976855845635027440784972276955191968877618381970238266649720020737059150900836461444178718568545530650914618561135675328162719945539803676152903566270473570021751675879872631270368083350141224560413772137713153036919824452013331724248457482577914335559574547420753706096106801950535565817726771469793164216086544060269929329530510534965134979152950217513564794414806853484567265244789266990193187609230420892594724116117548550933847773176809827371452398087937009580770042985037873894564001418532758509692818744774762467647606831508260118451212351879017975027334730398868364412736286367225836779790082325031361007639629311537364810883607788242386397355883527990312368783276946072942254365053145645864376053650071659697422957957669863089199843943511960890554378442260571122166156155168611791474094793955655404347933376045196197637927578430355671416287668683514871523736894703580985547237646454871194856289874516114751313773484386279760173106657495439542755312190858547816919363060117253670303161571115290178849725197933232365614750179061323054634224152728451552575832921393437218709251698937372593349082099237264941458733901931385779798752619780559833126634139299246617027949662905132837634850191299415471128884981977450392711976864418518665637710633659538827201169366299462142725066975778478975684883445123100057868885947725179050219452703609771766400448230918531501391901638269301665164207495785770281542796380693469873905822010025141148814637633476602136467593142018777816578800411249098226701121135098816694175714238716176574334555446087577367137188492376036046631161140891051123710761542503725505682830886730365154984046448762194739977579131401790330897908533266695161877328270501637148690766786540306148544748874158621827380918458774747622002295443414344984301356161305283449564727391842404714829433457181429371249161552379512364924647589856589811474592007943377761428727255510260634800632921459186951573540319238858991397040460739823255925159046604180745820341112641947555250159438224199819581132878345875678464577552508645428656610580538199275772534424285107827788985836294529264083980468184782762102019812400013998018275407016087210168334016918507255612122099330597454278859218876694190244110231916185920771754823133792548297902823125671035369097931397510657300313162284331536279804297189161889286369917279285561366167466103778715445632303894630990554186031662356096451391865299658790950403847233304711290301519262461812466652556903908091263595139585770302283850439968584298172447510203385659995941563742164328145185117408939611685260440107906672425437522460639196902688394912106642167559377212543270347628002839882616767396954374008755604542554002055557733913140329659235520321921458560543153855602011157348999201341071733604573794897530527125817065296520156565693194110769047607604250056368945701047682898355584552534782954032105520649588707622635300507862688342290396207883985401577120347209161419502090562536541349427281427140103080574938071426749388703667325648023415119100588783948094398889195059003856552397522687132299391646682549881066955346944342503686794886070378621834920350256352408636032123184571720984596997870804367753770343075036701197897007030718764768781064864138096076474399525427926892742000250300051617350165125637376940219088009840107452277478937957783880922669091435906314110758418619087524801768650308825590264983116687586919115992828432621817559692684407245977455002861417699816225029796850143180777686753201917201528680608613446602946543667807630947098755005249861515669992574526698951223961851953462167950131929592510280953801674620218135772199937694221465588129719049906903084616960687324449273665479760433738664201507526558958370028112220584067667997963624461889740413435145967105776990207023889621346711321483143263962088071970815898462839606394541377780856481835442374565866918458823897033648666879896155703738777262938704023747082965814255065531962075713174900164050586663814051292616503736381401591986642291063501001937593766027307590125092251446741865542220792529619417834729827764962436350841546300281730610853918905436933924108775128350131618429216416215527245003627684044255302899474655800422926332304572575231890768811449519724667375714918026860198024065582500675255787664800699761775364303779300381540828385409930168936918600171002283419953414152906675515780459353780899144610023494933718819175685339008173765330949666773753765227193445190072319676060666563985916309846376306995515135130957727174407116640752342235215678155051382212626519860694099262127747977804895212892911264398236697732961055065006448084072680118993454417569191813301277696491865316091815899514450638507899167818603896129269121346034115000497425581276604777898623976838994999934608289824574613118413029676131793885156089648180327424138849950343726973182512130158160390675831598888210363317009493818023456960064553216235330082487040251452066824106560198791524019837122778502427145400626654726811262062118441294198832196485856976401842613885830513536072120041262666618814624867299741084778214379201850099850014814527730739033332829271301786073125158817260215639175946558926838850651427802197440508585072951528650463680094595043006348590281149433141935860394370864283021694612564001428762717810124111574382400149783711617633088198736466222552966012898353135818064306310839762274340898104295275376314076641901405718583618065486726608385686512262015439696274294011590096054703528696599798173498168923605261220990186679589422438592593391279085010403466276736830578052389359854588883770834507228369978924356792480048344092225289028577989674417533994691909650306248104280327503809467797447417227841211682091619380224333913479185385909875738327809700575073711415720119827123007662647867647950972433084721194091682767074543547238693013453106970574949133578234346785367865847967762167054161678023571348795732709393512551527548421255855575230612424125439975683752791177435574215557725315891503212034165439088082335841116419176043173240332165914015123968373588683230636931585450733614971215550756148490367596782993049618267312325309996203130904750490250628290165711661982682949972561774740794748570284985850329824168413586514054958924348088909342672098825316328482429345906917050073479798116609125950053109920502125981646644564850315951623615935856090385383207746860295666105884149213388333779835545848008297330307683215826544697811947786909844192451482891966953429583884782645994430104396488082074602543803827176213360486256925636508570264368176067996110450021256942970439740655379171245879559095979602077268667598309426330185123948914699922700096764399295971202857928383141668442820845092835631625629687549803357666322143901085691496368590886545241778835273355308699696654090981058220784410619111499274803035287651673023395599800086803307925389880113464542291232779329895806513282073369183653940981165516048459404951473622826756444598903916115555125578657538674859596347480892004646750055750468674144789477422376647881080891646591102723991072268715759743538532873922920642643238477208826154436137738522407293638432345183531987704884898712682436150836444399662402010361296420368729426999836237491194998924594140733267211595090309764129955012057724443805149737979907814041318367800785359828872142651247752944936371328003839912879804822896037957086346287468259108996497363333873574298881112129920349603265268431100110436065357274743499227164533954405067677283756396253029882345182613278813847408925696755769059847086082930014778044795029633550773166549954744318383427795897639322658836244972921550836276020288995772036007563687740444635766813125355394040214498924518464576553521670381059317243467318668722546061251790887229873255224620926772837067884115382967143738865247573252574134060827516688667102738150710373323632410425528704177763854444890158698690795519625093082127510096876213782893043183377900915039543990160316640735637949068668312532604231562706322144328824982196556707092230567011742341740040569642047517946405796352430330199644514283570214299212123064180998085933168035816344123801032341877838366647901061681681647401604773623907569505570886347670954219377936177313381353438452876957915715607712589673169721692272670587200145964077724161714020552827673860171138944441758732099405694947465555799727155369729786660949129369532041917961175902180954605376707917733705934294856355051793059498755311738307798344069048119356294632385195055969917311998764128133227919280446735603840221680712248870613892322493224622541528083420055494885706984278225630810106180975950765016336771655077800676317133200159318160500988325495709752138969729864554239178858588422906480229174422032582650848162879304927069902862746738422674157230956760824191421545687638433802955624122421013522076227309860458236133743439901182031454007585117737891217573977131664928116890032123395054380162921802179399116311947798682701472726161708032041330521522695794172195476133949205135779110476356014040623006400699720887298647627057762187266652201061648524074363522734430222704271254587316026484327760712981607542663990680287462729010459944598214823258967870071375178840351613940064379848412480283922078172432281976243359765691540214295526303682719607795288514182380106962774993443656925078385855749055530778781308127893277857385685133110030780938172849890629241946354924602013827006175393710423953251831411644253429429806873111418093476499156555821870549183195120196464298747758799805159114801825852359816956983013366035948682663484277296525532674255839389025973421864815629681842402376393409988121255939929019785213526794800971032860259240157611053445429112972497553505098525469820068230356427371436743925321968887085957704873887948345705740686529917577649035442259837335359128635152877330724037829869254670093216026527323878305298397475392432116261824465153398941039043469511651316555559202770727240287244193115530418680365107066876414074861818854012455367861289944727324645366425269041834515025731001616814540659378240711409353984347857654596419926363369437228349999929114077912346100068726658527884666052191691329513241035163012797481625033703014235547165268925176452855201769665777542920142529344586223280681404463715206216369531492207026339176394361993344512713656879331600456975125485400930892656644679908130117552535715183935772479690723000596505531079782058645351420016709699824188560523303021601182539900360096015556975555067578830503659604990345664838842631150032956037285146760192728830726613764453115700049605446622092478559696585436184694409974375097598177442813817632253043536042275436778464467436265371615709370155475149576172143885672172238320691374596698217207626354702994970441655965676988764568940516826708782197131176334796076187759023697739281532623360221279507114244925835680663677827432802621036309265401103873234484563565225668842093397043010841327346230276373094722942088614851176293121521014862802900784041082814373431348571000294094214884167099926456423198295966976689189854601195733424564409973091381578298620527251423074988984669115577021966637331475460757463983135528730616096851026050221602119847934583343404608321205697458735197115131699840086025785356872891301034727270134173230964992255830764373081096358182367274170530690189636882450280014989081913619080531460616340974096696781116571981037299496404641404770226448030248890401406033828342557564178307652852595435248957593367947346119516032752658316559979558380894691166435121661900820640759537027267446702455584513609349510470115384989928392596493001448726409106581710149363454202312608009485601857661779099049428033057231344303872641278213776113811420708023524449265640666268618763066673214314855375523808220309034867689056119381963187881975684598228349583106003888699635544282135888455102682137938343072104041276437207295964567036641993037033959543679465390926931186421445114415466827068356926273772724865230264600944801989118604132179791989758317804742253481923967075922288673602693022288632497583645220396751301207226352605104991658186870256863822138618154221551306466091607429421553521935227453046678203194221496914243299866790632863742365683734624489647582097109305581079641206868365276582212186364058080404539710004224617029887654954519971400842861936676380058729603939317232880498401737180671459023413742669956815466736752903757908245645511522592242221708262740345994065585284664970258565333622356043164003894120306145367099249274221137503611762483062546191369313696797136132734755991966013034800995723260655642570950084849127026657589501323965004773329555785650379687426771920682562851645638285264283190831943188454657224171459641190170561610402214825916458559137901182985777689272133029601795417626715194996172566347820083902000882001348157316805745743927399333434330832516799203522520240266576830400961126848953240071739079496225712743925450962963988402497954106155755565193726177800486087614818043715288936727786193394922188732321116116606286324350034933324898051426909870653297492473902214669871908956456140127332579008956871011302723530399005407139533763758659236284518422007306304658820888569445219544325280116766403552566283318847135105299065271881692691943775384691365624765106936163347319465227885867115977045417772563132061631785554573976331629006564414855243287198733540548869520724073057495863946768187322392996198933803210556747054619398695319584607727840235587495757084391407616769041574591189602302544278649710398007566937645181793825597833306277008990379739433761896423408227821879524340393734596216234944286596138473033758242762718057272407627317648530807817753958768976989964378209813638383751858856446243184396185134063767161294631308864739494207457791606455979972685844590907481547285592011239537941768226696686996370821973549493133715997638205428432060246464023993648827503579982139861138123263132287213586117873925266170263817894749041872779621113161040831070978222759317423551104135696363575994762429161634016207505420885494441217289630001221951870753643998881917844460946177310472990581268380802140042847074179892193789299105986008556438055941430557326190009258960180015957976991332669058084521368461255581060812143273445076851250228669977739939333716401020808306603581518770477568822813773541486335316828670422404412023262736815278162431561451559634449472673519601685192816606073043556535588302769609520976100497655450209806257530748553704259768130604275799068173761922687964413888372735416975297952175058868884458801483353541041105626378221876618124960010958024282153016157355240706431296895269123024912658070728961991484605923401414150586589573439475793443741974797055376998910087262938894494649428241288536943964460433754054577434161903083218753763370988305166225919351295182245364231241195052946233737818626253721628928453130108229020914351899650509272612088307546357988344281774089229560783257065856493498551113180859135394576027894174543020816651328313363352175455773151410361408536029057146022802820224351981875697119137944840557559349541447402269238694630742487264726578533103553741851086204277115806176241084166127624291151625362316432287196415029872441272239299451618994289168092010723644843142135047843468320993990431358174571129999064908541221867339546207868148382698235583567827505803386011923592681418383151085641186435499355032627396566429976055203813093682490644786237392301233966624103298354205627109209579121290618567039858549803827086291814738301161155544818154174369600749626393489511518140370509268522535167668677562265784234398437510316474890848120486813461746075875020947286014464188752693558546558564740622914433281416030479297430995236914945631176569914222464754485108494598874603236806361787421304669346520122978649273926753889195412145783603541069520276982644568672165514144273623340769968661892700857955021309583698703017203797828802635476152493767048164215192809279700258175988114034550431954563679553406387105820020048258463370512928413840178010434603729895632685738483993616822639946618005365728639519285615734674173994366678128037897618135387491606387049803570974756787112934767949303220409091226289939481482567558199816224425038282188956246606958422961058140185602447804895064035527340173982095873016211289489818530107532938374750008165123591435570232537098897786127118156224819993858567111317180934185869437463721800835089167225176194707859704901221075689316702286020467723126746914906922442555232444494141527778337708877489634453678082295446521633698833318094396056202399359901195069611716376973358464061369775392249768864027557210095957541574988040682730657851889799141461307727046831305651538113400114784248980823115484540951720809886910160700952219800340072958001647416960292275034744405300845533829496087762639290933186447526390242080474982271158937524895494262325525112933877349504178642871377711406458910790466103987767279402182802221034395323139437531226189039514096626529485278770701442746875704063050651495465367365558410588645439996607812861527366684092261165260568410070368165074456736552574211934825168912354657623190881989416390022919727334633021965290710236560391196392941636521735033498813389744500271896597237210053914453202218397690815895081913812735340074430955362873894805077712318914246187854791076136834172081591745841091867653955914824511616620065337938833724492999901976419376678289400508463574581048230620764159267255675352357553876912140745033805745894220296070461030747755850399462631213304336685203397577462128551578616862606709398006325530512378295971728753314466843044754698409671002733398088572492204586672385343741515717401888993673178350244025049726830669684962750990503858014891970909967533775663048114168507611580820958173830811389610732934757533212298568624287602572622288902969642177505744568919778874128575562192562568466100041485919020740809804276094602181170224218774626555577674173907942116776518073011160430277860442472046686036232772208239928891636473594691600189625196869504299250250554791871580826078705057277624716198753615961433174053077622425351666726300155569027743777452841552659030712028899954444477238356386552782829634567369955626734000181842958283120918587572775663225622041892907851476512287479460778953227062823503794781911300441372844482536527210275289734326272596619627930951997692481179503182171778865892397671106505461917796597313860466785060137671359871124433360327969920597137179796606022620416702453949453184900462069797238462541904051614646600335123310029106384680791837554902635556999294342342348185839397373365141291969994833547797731817701866027466787463015081615729336777684950054142258610544267245082827064538433475976114531967705202549037534926629955036857699755047630753484818011139608269016807352689356266056795567214977436887671733603264300670712038124039839853044805417575081375430259269421628459569788390804256392445657944375471931007978872950916728201250151206497114432391263448636862536590976877875093867045960000083341129837128608679099983561419466009440829437657832867271543966144569724479458615000766503866822846912343794990075879497841378433683976650082225617720150400361965234038429048198219012227676242477738850254485222284985073778823018564900290710928051277530579150638420288297910055978914715312253329343123541192487378237823532207091224415775394393090048032061292704132195179049233955744670002214410691567942642041748171136225619173372179834951333734190777290044994376352951067439481656990045992325124707667505127008252369871208864015093275741070524164953039251677367540861498957129038699161416240648507771306609029988659698049301358874417629180752598220161661175647537982325553578015515962588198893749195069067244364092176701274901598055902649715397248019475471617657055267444612252992474739758096365194574961069381427210609271655780912807784368586831728878559370171380786487797345348696841907176114736554421580723264070830888420119027476332694431329237898103585721513929112817818648050302120973897720537589105181481692586110862647874101970065700741179574707811479765824536926223270681593135698350863918068834508567058286795899648137606418147570747740842759100166932146663984440686206192897100814661450519026165636478675783665837619403175786769778670160892846244135034543830180251298037127636498884179218492568629899321272176201373448539327998590030355370586715070341485905865465031176537856150127299508731896925908618461953567979828565918006420862440672682185207185716611117808566935967304809059490364404743494312612133937441788067495187514771800023981649726853662126309891239019746617096467283312547216291202009642891307946931313209374129852292047191279059387868756986868552366925311047719377518256320878588639803814617451220592573084151864271256174171024323692167779946199411800055013038599272025037403378364744099795422530494364108901093416474949847784083752894274258744308944362532970495232702190467185147774236642786768652015783092894782036158454327207292286988909695524264731975964142000206057836922040915491903957647391970710473011420712991486400349039233830067334169919998924030548457990321483233774560338440115495193755179882279771602553569768172454068271388528299574715606226055652208846448389745233069276022178711149348413172232757293046461397163413257892539020501996503985516515576608202643050511492610692830004678955432376112360709362772790227368456172896271909527701055554570419797085576780630792688500248015270049647386807240490181132820045278252937935521316974498075257303936308358044355942440918198039880233252665559632578841635692126938547999659820347830130832156858102306016405485144974955722042070312273863654115199841838010287027292974019863186292445460428761235990738159083826464670091755758175784331527233424971540841349901742542651306116610607631418935552546001800302051491327105800422069656342048980624890346012755277880206312137831415444639595098877061295775881328485471974502567678780183538296999665784386624782810608135716528564521629438192574609968830058461511222406717101483033642793889590225731871822324339385196132546081029427720970154415120424377221468474044549932205560764750471780050591966605048162228438082899061673936789595119411313467584472739556526565504006125414748856617068012119778007965412537256464745349437818573247916660017446438501916609275368035361730992291172075412071546468478636470773084527578508051929645935661385060993136824104586800238816870931612811365456633962045586839008414642452051615428900156842871034019719068998157470503884958196307450946967737756218496364873960746063129441506615293082258582747861406659529119949779426882914065366578485290117977298155850333065325498967388437633181633755337103379654501988965599941957140523108067352484203642817220095335398515445028134678068468066208832346184461260638400412633268260534321121948432904954305075520289338044392382862307130731446442716939296173534189036090030657917335428846127608596210525966690603082486161344998644553009257592546977508026568510494097162567040853693038716524416268639468782764693404155635510683863360402236671148110498287886374882083890273265465749054312006093608313834701990510076707016875054578184643744778585017123037952142915072972172644807611063410363944021433953332715363256810119717497995061451716694055318805435267618496744625361573792886510324040115077634600662662341377059118238092092791827096036647347557858862648976303878944165115798034655560538966194212804188769856099727752289017837721993307947581552379286149098156542444603061119072608087153861987510701308161503129463748690505373651218053663680619943382209038001747587743864801366377599780829773734891531245108022316183022986044936208718306314582191625381275334264808489893931467655380354012035857310006449211822728763640366758296357337925233238143468343152604700542217223160327290183171753213727721621517281937181911272748578685734191368510701302697756798422197489570530131223367209613626096271915603903622897003499474197519486574850152852083435320321930630771853419401434446458243944052853374086133945364882858994291544702497429677865081589127881778181843867309673582010363696936446344802707986733782245775943200194512248513514250940974427436364517457152361345302882518624507477459491599442578781504858824334748044177293318982844797942047633330083762457257380251758278637360019162582868242369355391940849016844146041520742079592333340098204307032767122507145399412066995011628250771042218635113244531472862510244503311466846956466769783674399484234782057281381408600050321968428436965393025140464906562672744457365021009875191679283348804004733363081663855336839764852150796127732434213515491136751672924783527560727217860150719055559831736254759968847524504090623321732305372849498405266432505354516665475079284284361911323444584383968814199106964198762610163874444735918912569966818896895173950674057998153688714361541001111597997588636410137798828707700525630194705913619051436075871505315450525093260306174017035743349964338372219998244838791657416011821915747431599499995676478546045509298964720206822939810912585625341106523006497731052961075816277864667470651653916091990753371337171382584388789837543061287481818777905378332038068812304946735412253718092814713449200682124676748741549819168230777068688428679062819698968826378458440980044783538704639003440362617207026294801300852481401402460678426405942767672465026246590036126046331063583377303582364844261313222776262058285886142138863839451235846099906891919394178429723543426176425376624069535164955786065570762781511347645164429740614309018130887342263139451077388634710788885755444031579602939877709510132924559454937710094990272774341645353439201814060301377625384672950831601745317813218487456862336566074424331606711653737576753776064765135393165044641217724115581203923702591607172700083362446443340106234841509492152713353464635408400753962345798248867299315007472263783815111046877504486174805796682838020163465869600226730941933239047648711284791118756623159981516947972227131200828617368171250269581499017116330556794805768211935607309882873002749128197193269770336770090869454338341434153132005780780256443270179776992921765678175769701010359696060585046150036395372066244902078835187955612722642302456630370806719707127317264388637395588874917601102279297565243415245684048596083260267222649940811398448046065620022363418940558082149655125305567199109159189670878607178166278609771652607317919955426340095588757999777958987110967196427808338265371837493610777031077571870737622091950141607896318239334741995380462335193633608014073823854906657113320427334012500466160585332229443759647837136175383537196915782255558939387230328956622680631307414493618011293359184469794290647542835709540197602037713860725565055682040354188365612102313594089957203408523583602082987475427535259875785219058023904165368355979415088802194904408239487874800144163389654320844111937331587518328718627205338322756719111871865978387937555833825800141954336388049573846592824612220735296472482448512380992900967093760448162444516449691263936125992640269693436295821327948001142439085420039386595886540820070936483462826864327950981227714610144669336898772302803097567829318158384979516021602881364733593989932831705737449283973542193173193885286125202034074605450031781849350142479127268636999338801425433823851329593986163658179936591542252267723631427589874409664971737550180867961133798233287039941881947558383429646393893664125349924981673684023566909283089793763543258660925386302549223454724769875711607875605882528290091541778261193450371753348090372402247599839566284820692317615918086662248401891659275696229225826481224436174319787022460334026631012451061716276160770277750561945636316859574161661699948887027308977408818380314913525073361183860798971620053782547431502146091114656321919581296796615408630060162554807386378051268009743085835771870171880652136235494273673536658964369704305013876034784835452444044374069767245732884496268183949461853079656501845929618313827664888066369025987776911236235459874417352963869947267990381895890385585394760384706203156271438509264154606492539450764112915917368535411216681559157470820636417453217442778932590417698639243208363454638989053544251447491633635736756491774844430181698343427362259185701949296278659952256049158543307272447415092114555685974751717657062789714916800096240219988402622626145840182214063787643673625036907459852419229491996310358732833526976468103124050043365258204384985744553638986858825018313829372146323829965584706280010436123146800834364042909210891449655041013891602152138643187060418785267030140112758490014911932410165536823811094396093893617606495193455541624887759868626007928158963828403759457101572104944440269503286375307661330398577266789521733776901052832843004400487409706402451543716950570942907766286266127774218819145350720206364082830733267401014130305457099496751394597556134551437752200952041178886119591545216544571276262386698214694816621584484674691412218344195818895192496605861230463575637998745128149997053017550737017956038651262504468027474363008494555011364556525703774287772437139055715578735341646610243101049811348283521301055779512680098446495352073826277476049907558020718330353145681175839066451135774133311032482928410215830163627784573180040209109927279531778129628340083307322858562607150219456917308281052366879714863583590195104355080759081127530257658812650421276529107615620289877861397720880805566318727246489544622361517860999185094270461017006107331537515175015416501963761238077695101350226208191007695931544916700953034046412554948537289430367310495173539621039821560785291285260910317390049542868347386185003713824547445444298605648809382038040326787226721577549027792112471766676560220633445026524361153580638011874155570181333365534976651073334101953373673089595301453115293479605604327802454763260981959976153277561177768865108610124832236094401244452107075943937269367283065083648892933190784586059501707645914777688057719811447209859681217936727302580696963735685075370768805604631867688478592512148065810075915710385101214533043768568103802932513979208709807166591863035119683045429510057974056264413413164047873274537646255601704074327605343573221988577627743360658972841682552306255951692799544436677384367629779557200106407016239425021653570109593070086247377721571003833086656689129369494077966054664538852742539145209357359046793603790144341779614529961071036105533915262669169025412200749466610637100638198500944014182820211477121533024139643230117488894557105942975739611897364110718456695766811757872394078859799537939435965322777974741265792507613068386716504089221144798325362342453620819978592522150523003583155080762296807448875513504430789249511740235161029835586064060364825091595377426158016549096405252286402715277540438861286260571362306057602099221474231284275337950972260674691567890298247278792442437529044535582957092803835167186868402665573049633432171990382544664420731578869060091970997326503362554641607847403754450777276771220892247706727532998314153803331764058930343299717806104924215592483085207112789275140253643556737406560184353762930551696576019824538046727789771597209292409648549981747973959582960945599224812614419421810316198174644812496674734743867318116604341616150006659377206168246427437488219073633938029388536109922361355430291280694317643391033672264813455510196018672999742493495908360537558523242176872780700635769311197250466754024684128795221759445744745322924556341489309736586416344865161276590318511300619770465657499748292818094324427580308040913737540449155415421457448793381859219183566483283952132560148252010383195567024803222133523075131195026241839559050703414312187108964746958357295206832139238774647081647721982789988731716885043840015174571461454277054247462096316627460794174406443492129161559239037285621052495867120672952996560265187089413045788827255481722242198470040193600202410683739018268228399569545748168931535236158036385398135068067477566706321294163728930121616378619959324285990497364467434084730286293605640421426826416632073639257975156727006613057186307312236157441016081166908482414444947551643296553796974077960545547033738400639897214135594973691779947310102800733703620263074635755605826263452001125075027974311446352392713278344286978001420546116993885640124474418414572315623525997334549314456760411526361740411248712734943011043447501865310811634830533314979093313954598138800835371275323065773888721468500674011757089470519280791802129430213687339786860399014372507277789460482667935306907640648175609810435746279341459169933209891808238240291189634694485414425655517895769724195045641868646390211386961704586501402677053590694671318094775420657825670207595700773315383327083836885678226103115705943042445015829055364927148608594078152146004734620381216556931476167231177184342508709835534567376642266870308532867572036532758921324915761573566842680939584621947279634415551356457511739260597048903712863096816254097130850349960325141040267133746479150599014786633443037542493016038756111871055510875474065106522063065575023543421943805626052242760368540958358747917694885315045895623952979991513667819524533588928370704042689775706289454428085921280986856712235321626681208078948787724148546807156781511412390976112452030482390863747666552696617820242857951768613152838535180468405871173412940657781779255190960965541322648208644228169591536170515167431015770375323360542574013480632982169996108310814677615008477006105969201301139721342985722097774418157681999254252817736950266398465502417832219271079633147845507350684915165723513792426915237186216250621899211008987248946712660745687750984014708398782610120236214624364161527663528443577397750044795050643698969172525448806795063006992495883695433474669463081914020972546674829315678147110444718259533265451229160450222515301372312369303714671561130111657876755684124862226562643188780705355373587032456130704356299887277075431142203884340602140434397772309199038990441713899530102711756582517147199497814988767676643215861717743033146347149523510953019189329099763964116729800542529446239510330660021384939370012166669467950602736320703324655004038712129600395956868680411424417513062362348763792738211364137811128428679483579612726748495311867776987360107683679311258155617130578601695986431556122692410827877417278050419441636489947658895805949324397145704249093859532029228280797988893476748938171225197635541471965771968948545777263446247685678841342311015369579152647913260643883169405960996878762704934405418846284446084837166600234413724833398940288060028739355676409663459055403039980685380839582877835325945093347743522092451276447143186376741353234086797598141393064891043910494453080047335998955063878663999501878141184053787324832101543820638163541388882081518272628222472520034408469491907376893868903205011105331126683377845109077474128270789357995980255682153549412436321208488157901133944830008652176315310117463515787473385060787404577103769070944803382659985186512457261690331668460285335345981572863124842091527431924731242544330013918148759416930697534628135663770631026846273134749637044375301571621649257096893582732220021791845357519014267241003128972108646840480552489907336780303337457256746227398247416170916782907466619625411152206337684811892566243903311184263251754144187884880074451034505054173482119487426974032003385462798645554518787085848744480897979640047651904334771117234406336463550761079744793003305248717272302956525418413175097794608129586801153558316107461613717153383798658292788420516037180661216449396487787306476987787911714055444474335245758172554051518449643616652890862450271523473705382511880182705305623347688182992757596241355994672028953482862570706944487717228808164233147001277250330614858858019355946196820040344693885634431184591154198149613128977486274054513159184335141128979898108047620860143445008214827753569223713425321301899135566377873255174235660298777913480721054030737269640011986825253120914875849346892057605047598235846971200390590347561593447045585005500083340474986456545542001162331017179898569223589739705791584772018561753121588011308434271756684944984680156242347241920572119945626982355146672239124103729660618247694844465117143540111514008035909208925889428485297504958409935916256583291130334430871443241186321203532128611770214454247531345863471078229652147774526842382426165602010312347778845927236649548659081411491741472693110513685440978898088059738142743667446666976648622106958087356610873352935786894817828472216469122260866136167552157497759776213837412428193651766660402850179555482288206548799277565997594068162269361268436273608576079456531106434887130693241467242726272448319952079483863767104725109161555073879396016407231874697920738088668766441751724930309253589208098709553087186590418867210999806447671810762911262304421456185703677592326291030850714758789867469922253236540808832735537582399137989205199962405408436091166053370083759391279455321987469004151768157598480557451319841789135143758758574591077496483430709726088425530935112288502368936476848402814680689694925692506596991646224649848768882142615488507552145927070371093248023504459609295009194143429477069858224916004097931241358949355890687504212044205117015793631381620471755943612122723895183128708718172201608390373506977660444496014340721898569141046062372446071830446124964731533588646927026861533356746942959099214969018636491694988877162839613458879557113834084734573561366271528460744341108141052176782158520263566125407511894802011874460691127250451257217757414519624926143624257845261061186012374258540019742005946331904824628204887829923856649157317499117290548948366644152879898984186201596058111308266034616240381360526609400013567928376391844811218718146536269321145472206201476139142543700331794989331727572026481714621259737012814996066828834028100966495790653553667253522734754175940594522734963840917277550974733057689583543833743654987242175399975572153837605484771224625023469490586658074693922056269699340639617623331197515155326384592818336009258248669415013425036260770587775892409660638036323322962635020441688691204251719294839864090156828615616527646321390445838121045083976139302961833718029214182726050359308751342369215453481226451101378237450321571891161545919455295808023271115975810871518733380310389369528570567227660959219071767385220322383227612166295391586101465652158044517094241228237366575913333423878785858710071258794549133459649689895455085283082460184241709008402953878171207122417614520141930225854013386709956679489624173444764514907823453949350436810499810756294123502174755332126399845262743969632856242843438904205800427788148831760054407570242570730163471648735880681099730263928751325706951074672305513355850965501635319440516129025383336775492934813210073995498523964625192885031277004543496039804129370264119166005043171169782948341033564005258998117644451535110891235653592919860964022159365691423125759763597059091749182825799749576639423264482470057507335983408312791259406480118116694186798371089892858473122678065887921118595082522508905573121931511262817709792289431796735408579753601994515975648864194225918812688202706989496949238960203811046170085179728726832263571970624009127525577122791960219828410885960331525454831008288874867211345935181505583739452365231854305979808678539948880082970227763463241563929666320260109350647024003207882908503072438881738060801909764965843192675035327946003525880975662046331997098136904734115273512762198452016664390155402055085456965678372341296426465566065243307066053872372219277432686830443655823985333481752593697518454826920507366550360714287711229598047127566240098112939863302787883454792768197283970167605982567159455692941158485719921245858507678346594647778770575492797519590267295627344405915599877140443777708225188677102148020458323913319843320385972025337538280978675688257419947765436210482300067233792139156221317481533819111543153267981103267061693140800573116606704142912700750171723607071738465931763090252244596744645207051003800365238140043480638027313458544567150789899604953860694839309294694439285026544296225066458481648197683535515397781681806223459709036516699136986575211885385070713021234461192766186103538662216411984321376872393753742309299179546492442883505841946286334123861050294374885152536219690307730646819187477553342696410205431644762084139245566334772036285014274670448310857909411016187796940980779251371441806132694896907747841008239682200828763182058150927408290225548056330330819520588478965544546908130862688411207877607595736189178163789984206669785574127156374110028241969495971275652136842901465313004191739353190652762727875765114838293701655555354588965181545899488838557999912575602761284331480652404061691446810935154947490850203031354167352939526535642610832015117556260112788251603721980031911703996883546486876209262638850604788500971755267456733436082785107643705301140922781562089107167528290972890671028732162296286919675368685619564941185210229016538577834139316126839770528651543463594260303804127068658667272842240683900935935092120696967932728631310198873691985165825391926490135879784918468148287269936138141980178832992873498499599538108974162845572832491435474942577179539878881865544891629951489316099873431242081252586327177966219503463354097511740623858960327395907474007984354575307984205134465398004505122775258052107535391769122321869431003834024918757633653066393111063703887408827112435602752051147316341162868937154605401485706097563135861252884796136892035508406858401893764355761931959102740365993952691824177482353375049117177643709033147479495100594482617405841359450393388425845059696714699672643742914264254766439637123600576863776625958132468574587091797117434370147620634318308400770847024167744486653643178621419757644769988718935985826847090754896366419326631667200537243456535304591232320771133924388382723452759086794437165478560617111191980973264739277604122460382169041507897241967494841259033909036037797813558529911485461027652996834962336275853831824350194674761178778399542107268208071062878191274019216896465716448569424795771654617831480845067920195206277278800525594152785019444971436994255653448248073675859269883888887041878640537956513982633092363291894838082551262706299280511363519198197013581462339888805516399710563918915768253257362204394124756973815968587939310168470544959499013202345707355630829115402034136866677209293104285262158966699837286042272622010026622578411908150913046958471892499849884750264817599225351094161543692563382018427525262051997506483142653702313143630068289626079820319426090893390437392866413574753297909482366793673056675818034275913068518781017306232113557973110096205558157903313751827700200852188535082352426617790274687672118870299235124685614255701789986216595778292278378625293873297388216753268402374832243884055562744343989796704757299151591346442722596572037933256552301759256042964758965230684083171515821151180859235424015602506120219143455463219644893557999335478857768176052924536324514978474429974478672815303634420146677667299988569798286520916984387090945222362692421203799438542815164312879029631452509400393378717125671749485142616404411568664795308494424255846275353472375083047911932900110616717636575888154414575543244759780297718246982167538596374852357947251207481045212604603349902215834439005905615348533408131946686309833564217222587496607707214615172220842654001504946266601043139629665291393991488503709811790713679924866766847401333969132003171124036668526943407675293518503298447635057030484396255563628781115079490294241645796942569665341276912429593015560876530834725556444402317135821503418085517154080834087734312845964722697036839446265165476118920835003570522054876042697508554793755746995945014719926145761562523916620508276852824383596089351706393985675820907889813838804020289084832194722630856433634589460320744764688519673709824912243123315869563275780158587049320154169440745469308805876831906627886452282879987973159775276666744335363807351432017874588933166280346404690614805359544397885053839191374222691734072404286594658789517330609275980545230335400520869858281513656615550681705099307525780539660088360959979238953599321770576274762102404691318479399798336971821396036448718156392336877153011578270753254308112755124098710716239589879690420625553058911386987726632547139492032069143402312852270431374489290570141989635350822162487715793303470898261881801771024988696546954434150807957701204982850330978387004789187921550099876109026116813111443385718399091507779161757210371509586964077429827331658859612446092427694693632018703339729803236353716943126869399898908074969854099875596370011527272478401002903642181853601438273184315844842048521467787959727109535440501567300295740138550642048136431400340147843308362534908010408807637636124469229520950256856446926851999678781225258267423285116987570427353067401271930945927966288982019239994977976774788738690811051451945244609724469050476726029839144368547451500226563410932216772969794711642931344776973103951129166791750347199297748371821223834044360127324406594750935247873732964716102837911054612597250956278835902523528696601235120195018635276904880795742146802719689732924371752959900002199510380047450307629853072756522428810704831404839002096709515750074520486353971617125148758220843760766370684304325129359043245281784598435775997792339327970240860628341068458340178630854842356906662604264379761139465873904293113444952581079217048000482999384094459171011204267886464931841104484148926666157763532816466936463927955885321916785597684796213057413478509972266912950963291366234493708646796577775834840298043260213940184906904215254272281090696910890248776144349257605477168213916201170145705892243372828751816580156155541095492387365292345418553472555268033162822106244780486299245535000423670449660049396166591024220840904245161270372421350766637435549977480056185382672895556432682671376959848210005373400292401721664491199618216852772225772788431254292969281595931691082448783126946657437288863656794074765322052784047935104866184542977102401467236767105754552811130633404635527187507859030527541178642649237878971626541455095790182542992038623574910424433647543225378272538007265370943961330423511637192659006870451299785421462932756487485910274424450642811365566047127038491888508021365737710795116514093415525580128102314325399373446894667447790045965650582003917528800118218124367139994144311953000605355410442515580011535849585763748946161933701428962528437127207419611650302845271469473933373350880149666924544827124767352071080679413833936635819078889060998004960422253030374852137576113103322720683184379231173416185728858635275274769443120445390548296931516999745652642785817343451506806088210698558778432887035935599124418467507298334383971404596073754787574867041462623936852148653105730614854077157121170919610669093170666985288056982329396981373692333027427749423513850764081538721063732210200315743518121408606821264723193881840368532059285229956643316161427406404763961706075336816375165966580314057063148125525711930498817717149324092140090437662235339163940548466777506342609002007497694988538695170140478010136064914643315933371984955884707780019807058136958619610547745464406246114068939679600693700535902873777236709095903696389446310467487483611876785446440788330846877379741872037424830382378653785645217840836172282363398866802031138526028415655645225522499319396891922918598110491417804703601294733246218368696821052362827210896824607356848317886923653899211414278971732627765441792616413485843981276706457957770670422966525417350717955904023106286656789154137896501454384490900028382330908502623536360635171770148610801281858727754904399655598305103884655111758363277187508286074980200911081762712610274363660227366541286999657054533249202229869435369575266995017197398753771516180835972682817752229506600405040009178424829068832789817963842037010106027814901305783666333221205853178615675195365292281411237935020610557350423949638814906475395716165909225702401265377042725656617087796079712957106448706083965901841449864025937438307298874594927584696112424679851727866362972004189917993792291698828689461694848394099747694730648445072630709767409932200925224020390835621748966983564820807106550974923916339648640932994288756038464358553606027705274914780714748274928111174115924269180071791097634883067917239783233655387753383599410156482968418689638717851947322890230868624396746201879398860971489900806898901676640838618319917507553613676400006684763254689497774107256477307416684240893556634461106597657585077236212321571840820820406718896242430556427195137440705094885090444668102140718899151645796123825940200119067822824836388220320638999406979618920376724797165644116906988554363659135363751763875947814695871513738204099188061176731269272594612105552326584826533329134766917176266459813445313138327956539536681781386987335285396554702485464213300325877548282261056232380652267388076100909900757351930708054797032312653514310101901676516723560273797689119878082239837226273750798875845549125032700129655978133995539194366138379471286730374102397055743157962960128163666604754382338026015064989915333248495033624224832255660970188019532009801394368753168257229444102575523140795011076516972248396441762932489515698441031364589477994806766962369008745251468827390588245489063054532379617950730952116894470330497842145403610916214279224080491091165193606453058323869142561935198764834950598738985640670002283465070572551160474699704559435857254315245185085356547820395958990657873975552855121069479190974154346995612110949410548317227407259974216819904748046847032118299804641689765009756624291522443620490955128294839233256182724221600233201018082566202915109452130240786009665719314225969392642857189168861203125120583422984790441598978074267831232705164249606243911424363034331250077481791329067312951044598634963285144217638232157931035421545426125944709809469171628060220575440195714225356465167140800064133217082610166783312108965408957076705574380453572851545531113056865056301260281281959826182041825031870885132158894941895643690757559453042481791294279581537089531421989439224182500193835532583146488707512969173957048611293638041539559308765525486996093505754594999448222382386820547772637619448450220857877187368532242873256192903830308474858714219391146557653284425365448483166567036113867609272415100199645881609517145477474087347280464844774577295048440216268477400306656877124580139418570957601751043953121302085195886063984231174843974349162684481197944053473091279250399071165275313848745769224901499905281996939902551962019927175407607762654921030982804237475584623211947369563841888668180840760624753076514361769584119117446776520729735154162478186193138075799593398206524509911943025292052436813302876756868132364340414126917769060675500576609716940098673312925801112439659047008590900014524807621469169471085157449804314047479415740305592911036231197819246433403268799588511219404904221931423485823219486598985643873206956513378439823604696332901184120027879074711751049892162144849166371814968912262599900574855841264433687879848633413969175707000085935236714711988374723746031574981022715968324083114275948648342266459780108859823489799363887183975520371835420601948007574798642222474843987085763023547153642212880886559617521775470511569300037245181881642546072498781525772463909852518098190890256984260795597141387906150447438074372106650564197473089846816636033335559695752124779754901592889605966040939545709607900284472209531227434658412076050704208628374357321350771301444987681060751073649964119432992842403522785291175143992512575306206866312229807873081765696272618926885320773856585458172453276816420974684773007124651918862828281237580940493509512795836337030190647246394566133301162069914576670837355201106029017410867285287469983740477384806480412482606219299763332964273912606657299290131713785597529353266756551646070560935912662613827607393685883320568609796670456331161385415049874761678024494372994312820133431530491948097823503118910505139472591019709271223328778314362038848251543476119993545361337164857541072180089019132939974105037487016568323552793057140319346547473568628243747534322582308779729818259490945403855935629496231620870226956058614417654917255328373608600389523242236023616067095700458624452116076966203412509170346965548941937327504649003058949014300509586561886207685778784739072535247385163106312668633341021482275439108380975969309119909572274537546367772632719985932366898217809196574919611843696865211685768632459968871412398702537260899792630600533366405281336353306001922790686470224508228159938850473243967773774566298952033549020462765206156779376553470887015415085856619113110914349393590608443011024263665493259095038457501375246140001167325998724293704798251567555759700868688042203726308097347875333210965484457764616745096430164432102504816297259257462370012156979063995875237828320959540451546775038769756426048655582166251376714092449952989103294144831423259685611095436531724528321637171401324831232337510527696407806493378274819882709518526698480994688188642701508551220744592597485219033968568142815227671793399750744898248796918102231625788103622969605016647958060629704178375998284998336193678965417302094563362295053605697007080699873461377372158730032450350956433706033885289853437732521540914385306808985626073557292821393964027723652965647381931225255209857830397013931634839580453863052471418153928880498529130796488874636182175458953959643679219236215176131295954756949153692452448370685383099254671235539605133306554960221336747015592419872033750432783179224398391413068123518745807761632322950656812898895267571564612732290244557050712746962848276195320376935703879408142047973588455766249156332982849399466507332524601599669975478515806632619926643700307321005663475854805461295564281751973738577323435408680970942142755104437004306796413396739354048881433903407583283450562648322183652045564299554777555685093529834308772144508289927859684958390037645488986301270182825654411318464369582203722837667418641782796290409663756896832063069901258782868096535949013240608440334386290555391145617281187115143813729606735923160387939722693782981482024911268330889622879465542431937319131841634321487298903747955457252980310366697431550213849885004727610197992568490536385146121421987484099611191063938115319843122586957429465793122462868539214792570849008690290513076145099243353012175186784525492806044194080000816829733600943298321740746969702408006297595815164291355570343173505087315430933930862559111292315844669933186124282884497252780266464472999664635367359829416730776538726417529265446098112156711311193485634602977293532618153258207864601887483324032328135910051844654930658547159795870664935149774142120256357894093897104397152734048449734940007242873510553192041926204370125966313091291813634846283811192486423314226725647437079056164564268869477964092796204601598959445362798591354780076513313711543439265011126546538437451639308064618462874273185649690053493980746301070509299335633424346750966126603395623610360101579324287588908520707926606826837658462786262149888757606122736261881705181954438212187787741117255539416518708791079798089408500178733155235347349541584987594174171224335319026038518632863225067484801603242202972784758194510114740315469361407188518391553189377696980602199036223408322886325177122627772063541766380969721205176040721329155021089290693628766052391721601268351013016079653286019069280049500031894590911829499366354121437005893128355266018228642283887644431566720281982392667094734118704123007250802824936925412280437519182820164285124736437645740885758258000638829841044944524188478696678135116318516315952196008385032922950965700122545019671680020153741988878474761763840316148588491386861374818133060649345099778853143373499698790714446245255063900944215643220864346331195514849187552293287657340109367903160483355106920750314041925856619481854337526549083309903015071855461295809093584076039606506286936455084083131249405738126739016709429599080453350398924240509772987947011309249370786033824185110282749262669694636489563217795914797856248444696893469896129465748734927928728842859345847533656106846905718717408470787243860866293950392513575233991263650176835344222641646556491169116738131146285481461148618928619307831237287906470377584562926423999219509635499522998171084040142081605893859963146450129976425132323023564653091120647359706899658433492795250146566699208435166401591977416184885171534240588637718807227211870501574906015824873049343662712809934928113380000405033358650743969256670300935342027791329633102334712391186593829070211686840843972341238121053089425536338182531842256038188014021443516717148285148430980908516060814895044925364615483984184487111524521398057791695294357721390078365429334406026502900986185636252315806446218492879722345412616575046966884616933520590326519637274479917484605351878611377223845816553842161920276573489957944947093142823208546536605078852925883717585640843617343181348605931408578746020474030847142984840550689549841385318484198609418431328090666974579779100415434908462704896008692089428752824727646547172815062644796631622897681952484471955945801868817603089739624696070012093194472772319446440996539400594245037072937123811760314965690245192986268375791624314856519381828805923685765352304053893608233388289199974081379329082993459182033106598915928936693938777551540600014734436688304530482930011303613030677421160837514016978198601941257223794099995537405729231567265492646375234722894915225159131645718609350323854912837987181364078502639461717361644008126034644501376631308336671919311800356649897930050590914330263052776911046728037831542209612583628110418493163488585025045695078477483602357274947189301305865072754606652276968022318064190832903954135588857720675851183632499573782471328079295554029915657392850339861280155257835974203308177370973693922227663915702598438694101201037485428138624268699286330952483805684962560356582928463568856097815643290124460028541021957865157677975239187091511156523876325758944847862925738081678657387947724529289003152875018057006378151524385181919469872108757447637454616886453655477457265566247706989678784829709043940501538059040872093106076994269864350700880031906917245013667427783464869538687666132449612499153082452906078557832724195341548326389408328685153514716311461054694098130420936500271091907842682130679593172918918613715683517482649680097746420223920333295131843022794758686909466880974764882062416736924656316723792991806213578327785859018869233711676875277655424326220384614332709148773738047912769214551920787658526282516515486022532556860785862889352296389550926848238335589587244355198128179454401655766029576297173960137856176831227215677601779782583971739789770015913325958828128571316692646985642123756001089165516516741028042640532444366139995923697708539504074624594616806892998897635940413163352506136669325685668749755721739693020582515833495876201486984287574612827332838453120531991633336764783079948012476143530195956880249905853248484888548802317926015854304295256618285270496330574614579872688189993725934920180206143659585814866946034904240508903400516680727463016562242040477955284380349798376781262636488326286901804250097890153339897679368541663191926186718340958480401151532565311868859760328375418845328370964410892724690750325116189949757787186435252439825634640523741453673933444616010373864215345504847262497835298517652997264445051742539046913518073609287705997455744636516473244348067840743158437257052442855328727044858675738211878888940370068517404638218003904305529524930659094168908537737101608273059668920927791810911369163907701978033033000356887077023145635579071595900073263934146860579500297918226909649582425972106785121471706631980791763355868579956370744923111412891544177190728941801142821696977712676239647319638741211549427496287582503852059114972753383725815790168305974727526384202739114763385358297678722762905674773910220456600719116079733039255872897236297530762164770931837578843001088397045053154728658467340827771760045579822305784654721889226178135584194019038717659515913022816912446628298258969694787721314509957931625829390901391834936096811928283732968499450655875765733339246073137636405618077528534727816742044029207066944524028346591287997997740000962462788607663397994296423904068150964011881640289420633023814240183358275013772569193027483129648550252585918232660228449999966962723807237983982304998157620062387215250896558421776442563742263219040957608523601232607772608012616111723922066012715738486895261020853603364870359119354094911419512124665314472787398070122897006865799538651616926808605202189746848800557667112578708536792253051146143696593122429809620483885953942496180917242583077233529478553357984999191911197142033626603483352278503992297211100546334469597823687539836728044138851470953167859190700034430734148357497848726524292820198964132984392563799608760967269939197177796053449264822325784721558566458715263931504667233624607737168916759960895947053119658070884722079808187373877228270491093097025253672198203732786833486288848552599800753427023097758173795356823656029341484658041967885226921695746927748813950860398591726482095791808888398635516462170545110718200763145451562942833216458736845340035653967960036151595474385577702703614603680162881860923640356559716377797665858611054899109761844438416878509968894681463979440007338320014922204686600115618141031258104853828683149511456950038287895214931655978654546070393344441078579387873663080746856506628340271699081114034778605637163731981388115678869574252975120772310221497709118708800898174495190579456381055590940284586333593958788547819932159748629424191116772726836407497166027500489811595737167037632011673472748430307477889621995831908269509854289441473651065446331099564717873735767177356228871879944264047508004491959842965268526076581228874491811270996164063108852836123519632225562590517056929288732221119020536408995127469209571177727907264855034284706275963290442845439924816288296634890035184996106372072570092647490678317470689962226163962289770744281843483704156088665990573402727015729534846851634208567744120695676033224637745244860542547549008214810492454866194807622786499467508074779332988729873033922209554522243451727475196139462471513495609013660204732858133049555504015604402245407489410861109226922620029377113389211628971381124243260044663808809375762430309158945093713465709030044515738076613374864954172319347142010967378202316272629327394716933255233095123427656812012958254260375401721807224053533908125425180104975381910163009134738802456896010974317693418282605090284037206678329490249350728654588881449953934049738661691110850738170329664712214840715178504542626575429857258729954578492692968377176437734598173523938102669820105030076012475430017084049975300546197435814182120123700536293805485137188299240164312859257114216041307464703937554397621222404168751327853896409584673606058578300257572335162313854863117375328291528544209333572692936964515989053687046552221150521888022800880701143967728117198329323169417824601955334052267880733457121439288568990115766740997293030484245656725601446660653865740857630293582752344784912921021078134217667097760208394585962220579347154562142060267559009615057665710962876222045219197680117734089434121606471876317515604246175912110395077934092666352501611324568287060278208520529810577782948151181565265883000823068169038396055320360951350512868572598575263376153177657762405170396480824790145024122314567219070069778985692865380242847354537743649956760979551066750831739347926446726835003492282967073882199398631645625466066040908474217197514880023858020167900879238729000250939568517067299184025004058535627113667153436195285994986482741062770147163793557141936967113771248821628272407386347244128751696106880163924456908975806084085643938710046004132689751234776486606958021018055096389534978094220173777799694553882900722746394018111950257300479071169701498505603058109260960768695137445928397123725780586297962583588057397362190868472831531582990669426356367505658863220628712878392147639638851266424117373672644667208497005645842381390863585487582377207890440331507449015694209928618212834428701248411711706705484015759991551474129339713850129549837497095750800597867245346062905242308267303676549797179110550185653247417658701220799469480283439549982960874931638090228319835461153911745970091465423224676005273946819159426470162527033065973426759841049361268445039609165778132922442117825640113230382518740423109855004189905138948557440390521022916207222510076517401293204561919775787585787783376742087358062612579732591701326838342135549028865930827981080123263341376281774063016512860993176424833104228637308910025901877681664744247956131319653405253142208636083479365991965668855496031955029006688767453367820539307395189800799682536876935038470549469000455970681792868256816748953741154843380686287593429436981398610389467672540635390883079704205140293165815351650962920348586802726352369337376022283173760399203749163395603144029392728808914742032721623825061846181748195294081165423947718069943201686742193766217054738219627529341954980629700991522721547117078829416298569440159906040994126700980327730506629426389602640769652843403436357403561962035105947578653214576096630337034064419477230094487659588498544277962226212674917255004108118081342731753505221914193116222368060373420472507252157498490487172527650594504292774697734880936314084667305680637325048034340902078484813376115300174187788448403636736224166534892982247800282193048349366704685509794219367219555064405757918254284859767852306905369413799768827457942221430156967790225896357295349123597607542771360851486788787399199829517839838246282422918707262608765541788216863983292837340012616565157773722941802218116930953214044534954676725183242009624123368328030749551836834590643407828984712311145778468195602887343649446245313927791566676717758812930193840102114698877987848446179149725342550822509800041108845724627856240161295998407374721541374865317880272953359197007574608128929286980928740914511661066102770002671264760681517267089779355689484118202699170667385773938050170225743837264311652864171145404609039789877757434349362441512321314289941205725710975607427216111521955322831485735251610501684176834885242847346806078175567539568542430517163841109053353144193452402160778154201451306761722051077616060850201662866605382226467515096836430824428631043651280992584009403784544240654608398803556496740638953520351216969117084662263084832351707466704167217296927391990903129394675965817189791478503281371173156718850873167096557828805864611644501986014072557829295976637328579385596586074860666137069482134214228882425061214266948109661402365971041704622055873515367424841499258821367791205531485398551432179422145566273690917597632634834252830667906001030699846733142474669914374774633544394961846969449958161329723227858918312150407545407730011185836230693583311451625452768198959475430570034268616547182630222506410482394630089937859165778710007734974839487828049942984611864224059707310677053297247186569813166136953562638809821277124993680876959751143960765329841408544565061144210949917115830397369919650201396656098124359406775382416663983587275301411693193458489365058333662977684485892900872249402538380904535874298596613927877907386486436588408265973212624212213917678261263655563177581717622786933552403458154759445253543049498423294699763406437303854127559773192638372529758932158823268603964704372934081389262075438232832638468633511139861941434482888416534151508162349791951434082051742993901102453199783140878488095046047085742469971410782538870579812638826661102260764561725121689464571093905314900800263612456376136143290782274375640288926932409698899831092625831299346130484317303884763983858724587965273015644296614715531064640374136870175834917273752105968925357109413996530270590194678450503366697521246692135497012842492809875210664081727376987843485955062879615689314404723532387096824042977259692448781062373915279122284047876848651772341712777210562734572449435396940041991726593153022390327559500371107400457719337593056483919043175008628926210858565936127081073623314371869596716903572439311857329010349248664601950151299385480409132693604953158275758398385802269853435567797728646542535036285218745595186662057803524044004155005819274816244779086461494402218832691772632552684452024250180520861675533824705184120524037183403835606955861731114960454901092484890785424995506590283293318504265187932589477243171008471073601870691769881012292867354526156781624344037325285427948777951891986286442254420785137535908968476979026513102541175052409491866044473459959116168987393797974988300017584198685136893016919033358563439281192986102613301193796760060644574317361633821415585127952918273416209157033820943812057579280468830029980076034266425334427039124962806422669218403767835396170464344651767000718052102733874296719559816249610532573978234619681558833605969143925139202492022419766831049281437097403800627083053166256467094386044598618853302422108630300622280858489750295368359177647371405197554895216511607166183966122868514843736180773254723576250790665765639920101046961029794551842952186234710547488589283767950973317110900084012117410015580786715037810588003652659282905071065742353679836415882127779152345753638411533517353528590285504709832644997106578687935882548134914118818176016403473356455310285976490026398791211363852584846777884213257653132843851419772053231540992464846367716201871802883670115984333150377706679526365717201760431528969190812533937302856773303558160638337758376449253316653241790184453397832441348078860342397315552855585432256184907812571809035755766694448037689428166140907462736379329210449856796732476951542778726243218377332908467230975010692492229407015135260708951420726405195480898813603745641314644391913396148617069182852743437432276026716594124198600785904865164943336446406742875050522487004810006103709986740934076451076548513738096669855112656669299289391220748742204763211695773188049058892742763928253045410106923040465958678836883513686915953893443590520504027370380740515504152981478079643663511781813582013348407297038394338534073802802796592785268955267965895324668605231996340011844475618361725851449250594353208749237154069480100511014689410979647274199393313534512021235119942463751406977960262738328990878377522988783019392354256352703938697348532913287661549317860957475672641985667071083276595255346174690726782064602804090276929898741044741755993708147224538265913867471680288382573027779349571655168746075260001830696339297416914984908805017809764475854603964955194522416320592512783023738277300835353829140002906989247273078254946466634573849506337619202049020824026357829991296619304321466512358835215416385135581773191446378589807526741379069476149830366954955722108525152056820164774052782047279484404600353089433601364119209852201428292973855613892908859132426452412819494238557158844603994424123767807218010909479118866305900536478947296728332608046695143372427370218184194081334231592703998521385200568432116226252683980049045817099657570724908122870798366580040800508490772092875851201378383680533979171209641728833716111481154503218839119094775882550141029661867983268773813900474025721449102580858424756701279454593817670538883070926207566906253837650676281083053297987160868629755371759815596076563016661958377804979096691991866820467762155719587693599362760885710261160594014504442582726377958626118601937712528185676969659841751792695560979004232753758428883494056844546961870532679152960406944534799216700288164041154040633924223332809113242809324654717083067950567541259996786594382190537367603895259330730181592109655518458344995334472912428362862706133536322941379127444817966958312630379043646144985019377956481051589812462625510381756685791083333906682713743722576097103609091967591654833981005009516405269367382168106766348826375500927640570917061049010716686853670037992575713250391026951329714425184102523238246888204174583507047993121284095965292801332240411765614608790816555414365990107015125707646758732478859600551221745271630254635458787715483076599157964323047123758126013204470965158383881295908356964595602721863357909615738343791676382589142650047924663132881240673560735893027347230198905951548050226323574754663189616714410262832297115359788253462519268038823684887958019377166850109532722643442173386950965012099084738526102902471893068329213956469078202766714811115933091982317772644548914103870663960376602282499826393399000786325210194346145924364729662353217509252266376460101009022454435336002620853808732295625735669185574565361725665944886039676959183254997644622437368932986975957888775921153582272111467884258983319071612877748398008630700956402926647316505587288452276003090757156361789045853602035385191611074942229177163927512784660091350347061180149923011082572527727967564379972449286446112674966533391041527978856888113503322764335716227697158957963993986064641747579420440899550229387177487806479178468048880236419175712472233889195428115454997225664046647818954218039380645143227895779530028644539292243491021031478946034963395139621949779256059024166965080158467949158505590851271313054272974983501480323734358323778104281555479972219635592022165115182729138109131372598732290708468987011622959523299654446547713568539443613198541794540551030463942422799675933763728279496585711879365567761107872436592535884295137875884719970342946073813684526979850602737819065994068867907330727139330708681784911568246512489676129398073175834700338173289823370513782327330292617503862277128738822936752831334653152871009950500250979926153184485739134305188116166870316462894457910947269438131897041011249756875512311987134134304651629863601626161814649759391165170023810901331177150600741710885674910935619318412218212078662702224167154325199166660876009137975276215036452408145125030606412476573011291433496892847029405874691986381525971339039725316942312457202575384982274033751205969708867101710667725376756532903474711648658882935027371223807107339211411434700214781651215507873933257759648741607552497103614165709877144110829932013815655876741612063594007051961048019942809180430711788735294540098688243839631521823705915585092426323306434310532497671849147579047674356544129810261274929794105938270445008523875380045684071848931837727047657603139586036047854565088666366389592869195753342500419467806704802807440294186231499442033245627401939663721014212231274325686572524507962152854499386962058511466209070170022523257024084312839998943280429851236804255568895135594199822341846964395859433573439313278813707456096536763205327517716979546342388819763832288599059994079962238843121206431195805118858685240196308579246899465767334403810024139553222169560216046823292135696654393846830891020745518363293842635840672506703183945089638379047475374995082773012090328526663986248923055875831720126419058436461667364873007668883612750136389227193106653655901361461455002658527279523371623724158213490406900084496808286283868908642555056799254389686228772414018349346497544120104579737243666153972251861056446571277462187762818522816924307929207339189611869828895305393156039310173201361534210235586273205520905656993061823640636011488307939364119960637589776974389673318085017606689970874565685678598390828741410959360525151831666121693004658046842725274068816930956510823000526982173869713759576365536232660145549281318944460344272389927806527766424931843541713189180847361858014955318569057723240162835742656030364963217643363432469479076451299578228548481051579826777481030815177410763277928937750046938583410157728765180495106972274922464798277664051416089901240139210781277405239094452096473728418588128960373034997129280845069986278484992106596263633408196760345060089826720923348894376859613836747327413847909532811236343149571366443072369290242112379123684281303442612657773869020114778030192197474284664450894866060318049287721895577472292195555333800467119893896829634747099355582678951973204966323333558714400691829451349986712745837116638838944952385948128771085420812847263017887330828373311278475387374518595986537411737977357025611854277455699534541653329550301536997932941739142381999877295742117292310369627922793852360071461055063070839802495384095660933830728397246688492025269684284017087276589100461465563325754276847916707345778291187306149692736349883940080426557897103968047150342845353022710748235144269983897249814473413363646655270489631853722586977249437650037678379603434003830419024685134370878241072097932909500494140871826042587625602285971397049366592898535196904776411619461151018253535444612793370184010485178292097368210952287377416776382168433336633884230416295337291081147497538959892669355438171009532521469312986661155937553023428576297464375800584069749406383541694255213506245763389854741122363458466129375938097545695522450811375676331970040023396043545350417599292456370541293441703722056343976309501850536576817198303012200181946461434757930071721081660147120974260632520175836919592052013788718571929900618060371746335497793115007890952813528429870885079660667259002007353043220393587633961052986790980222592717526717487516621812753441152649806795178281604603950956932961307558055308226484991567493666582872095809282188975360495142751556696534339932608033233805858857861572712618093882175502486644643463852489900271019716684689781971318089029877167683290248252320621130198100260631955229150033225298226807714494375168785098773133686399260908709184359348686072334721826665207851828048442143629287060254725815661005880152414966384014770075818208904190244651399310422717041820071774145941740472073480497382959403083073161361241117839301407166312463245651726208151680858741311299969916448620763617239199075578646607158702599580904590080386326717202015882451017289380931048406261132642499471546853424229322273537907856879745712018966050314839979819749126094516773280597491122592291913661241103050998896674566494014755624070167154000253336381310873086542447375037967374021258221262623975717586278059818670958031584147524206660229388312289802331819134659178167314401349045692258577904513216913356559143263980871189124733516458735111053038867570740266625447695194831950666505254116305054761049156383166700534273752347279610639223036518879025204031620456259080538380590738983424039889557858154435103905948812207778770421673016645016937094771592890877403002451706035950123776993534440532492170596676045925533286748415924465670775491668047119427384076368981843456113059950969975387917569797109077959796048664425187080490672843244535859387286185983108954527845333500153576441184512346267934548937613143686934178617243216861785469647778766039354601390755692719696182072854223047472496622349791535079761137031295368790279490640348429862905844706247368468349121267264490875947725108711908591607641176081862422915691033304009149186556965702716304980030727209878589147316118425571276103095364173516260325573818546645307648541868198866522242971607285525536021365428743891056437835216041104284050160497841046586612768522735010934318476505441743094294760259266339848126115330188518239683435728266861528205014064902415836890601158051566990788416699631567496130316255019229994719177109138942151116233975459494795734642153036594922209180272738938929998628229307436358264385912669747673624923150812684391605573968575931496821064355547849109941497125039019564415471807637780853336714728667685977622803760150394425213443449441055360553683024117841811058825234179145642080537356826574064646065825657770666679457195456941413140125607353688803146746366728569199931623213339902184106885883338384084836458460922374197670997595139428699317074127735737526108256234973069867490029463007415296581609136059923220217754996128743801434307577280965727935313630884523128931778649228078595583103657934894585405753201206351078460909468476248593866292982272040234666011982209200482010405169227255115341603100729799242125661681356403944895439188249300633765894152405044868392140345894262038950006684171823665986355462646449320289342922638751142543909099034333618605683852517553569475311652927184940885026580998532649224092553767109169644140333198788047195926458452038273879176033039188459012996627445468843500240120826198014856401418259768824443648181073314584056350111741943990050104959343946934016221357204972844038063223671882136375686782618821417686915330228948758721971380754657329208921799563785579753385969210529984707528134130327655238088615781404567640312892637595269076982944206050614518920012294681996838219661349489365385582912115456813782398167242524763272098913409293556784534257616013540400657742315770902536913147359420568861868368752289542790317507522221038966420179883078672256898002655754492616441923466236572660030572719616583042813048751142206702042453405103650229991219154804510400440629129709686527419691219762455162368474946676764983554067549230521734729934738641880637206088736505074258664353506355545385081805766914861620755933870953035066829512581140217496764301088169043549631591240842112370148568713282731350011901761347374080313076853397789017314356107105993782521116423551496227547465789046691813382096576899278379223799500027923438963297197803327316555381171262187755067788257404431463391719160794308447077111910670615872118340489735250247800806237940710788248009389272605570053004376379174985875282601553181618508247536103952325230307314462164208384891942716537242496793007998442195751511217395147072972781593406859918262796425162434929160776333079303054283337354564110693428904851640000299805700377184521853842810659073080363981809367306080411921043218039254926737265213708222445562447597279092401731320121125397254371825782907676547522817955470148643944777776662116901333857395785098180860658978363399302154685785495981392834888569625908085974488069490225781603266698845627356232852595341527203742881118981385664119258844037113052819788566223927899228923107064888968467092867044986556668735045905029247397871600415466363115379057785180369460271868177978298510107374636002111071966183717965178873488502362955450973972712189566253722998483418152435183999144733874588807288833281921638222401533512995134522312779764228165045756629778893697807407391663326910861008462229126853751614047289712640344356343061095292715825162676970427226202719826082171876777604637517408948074037134135556903500558660686128243120997060440890174656718024265562398111652823879748511237790160873516581792615489026377090043631207627751321002274029809173018469061087363216119526677772972071903479997340078485583034552003052412646193061739450298823879837563768744037239607136723120309632505688349838652481121775784707359419913921765484521263017918010402266408917292727736531836768089679920777059938579769486072972713841430104111777593991540582867877265044563238280854704533416493051691907701308586418532365900274984147920269947694717676467413969473898797862995460584609217917554560900684509873020047157505996956053022087615785725225531038740463048976313663232341080448008794627352540894614417005210243535946973634891146449496543061267966274658981373903768962682612258182087092955368275859084649680917473998416228838749218019618425755604622510013635821383192816784341887484206258192941358455396984411159947044780006247461860120394099631786078532057401300162425544703726111350824494224173493617985853788893890591671884443299838089180788962582405426337829275517544336480802440807342329880574403161869535518783525487899702399878472170165093665600505213418539173528632378762727710707977806592767220770314906677061974952661946286375489756389398055052516292741664906623304683318144345807373232847037427375482614084656049848003013634839869814545764041578263067973353644375621118442237842710120187163196398350704409651086631359976747747743659165471556826397944855592148806056980326574713482230303506512014774255502437245776890825744121768910348627111769566067950752394960359550958963097121607040290500121198223091212586163458399658635985428427798378175357550887618488538563722541567909049871634580028566662840671827826597682498156588914903608078329450618013273429012630356085469674196332528147298765411602036716175913527669110445497981715158034924537685874456312391658267277748857666001495210409953116041171097803178990404330330338484733916690687056374801705188389686084928981310587833525178486626382697923012184579024232095875757223409542921192234452441940126400082357488333423856636743750660429093705359969850843580810085437482269029820702831269338608565545246670711046457776458996391950039150533297050736309673576241182488376905016064918959828792829274136175566672937764888883468235198064474406576644518277547550300009345773593435312972259621765402506575180105984157407344550192871757773915709051202965326294255155528279863608331863391537285816941243592786215118276964581834092125302256832149812848268580207709785829331036203444767818426855929320221585638182813565490167585921692999725802928211733759972376429209312127139755899854902144428756287521948528370283587071861450896211481633481556023836443793717946825789280781020039337412828514663616345880555691710976660401355536768904870252597777460544171395326164709534867442714995770777806729631771693213945063258800597020016274897597015147820323260577389283606119629707276479149268621454937209585710258620423163541398951954352583440759136675875266833904402009762924519624121549829229116881822070534767059471554552504510782127443986331441294937743484012311309576336639870372999744261533035084970733222554643771816120297996006171739338281111260678422611796987138733211295278749438846937273836082282087079463469014870813942417477647579374612641154432211242722520532656356962024734953129869738143776439532373862449525024986377315093400198979941646886781751788504021300663813335004039761100024920553357978528080067012628673471173470260398330669064168994118035231543371775389976737079279801814955219510442223815285168693749452453637015489003246884099312324095004167607152695245435186341311592156425223269785004020734532644421952862407981812441911255168686289029531512994317087864328118232784502443697903934647525659573291818233185318987298014637875362261242409818230311828890908466472264079610555514790229607818064524000025315126382652608881369117577966105768686242200576474086216826174013962562048733109336946159759949269901472619577543255814560001383533715800858622214682113991920694521537480199255249656290687023698312302040783183003155621757752078801141625817564284506631152382895172081362537030355328080155779565097191876572805890620696412550252799264753042219132157462284902689230563191281845466572572975152193631825072239886585784304911901899165291408664400495128747150960915677139116878096575381319264798554184736972052669679941802818530394982043788225728194019219966030846621838524906407820694433012253414769008318690805928092121790708637557380295858632409214388338483753150068983726098549106445929352952140942759720920191967851982429132979009098912263241433115452824269271777179098358939454289274880930644640661202734612573159224186130220662834682190416184581071438219051233972890655602969247740864665052670553697972747245557806692710834180101588527755315238159780644149828415115151278011671008413539972662856369080126987026200346724885499660352482794033917554365464684746040631446867237446970453172031250058080673205265436715448894355748457023941619382598739131729568693581686486604392806502636761411662863678530573009604993680705322596655612225929195366199528389042997942175744967090189330292064522726263250718056321794795787551444107619368853698037067838280975166468102726271906811050153842167219789385569747931206174729728961081946494315551989313209960721455891744268371140479868425737810873074027555633771402767902173644561339938409447365315822193723925135483918519776995203666142844181078550583091507051616108839388856956231521679579410915822359990543903674486899554859522377234450342239711855725733000256421418988989234751749077224126907830325771500393329669019907634041669846595182858973709847290663429641761151956841032025699389904884800356869643289533430668693405108254306300275825264379728876303049417414241405357096125392850829329624585123534379710999161078397075669056820571325590127436720516872151687323036412138432537213775115705984979133890558560168704515619653274537661240535714649527116745641793703934774206703323633901649316288579946937355986437894515193150850859074671907373799163788075103858923824020385511604663118226333847220478226394716222055247619848149684565435053805815341808215190441229480018275455718140357327073186856293770324918068945659929551759650203260020638745594805639876179515443464969881728542014377765344834440986440028824969953113846243251867720968417898606745195434214410310565162080483581259193081817353546857307310319092959288636280139745824889110373278381014615093868688851921465449037913558693599155880930581134117162907052150049626790337263462354067306417439572311255463148245091618238402346381364098577276849154333434921364519001947033181189409718670707791344946162431824778723407489359095733705010592614610679196568605064749284413597127871370782537873220907049887982356728268160409000545535358040140901037915951392586170474267717100520283792644619614577149636425261896515411953872495187147400240542210150056147701128445934099125691374569761022453692919807943716513937870706281764005492321675135152774959057659603758523985268350893662235735493768281293133430138346268433962691265899375742169875690345964196319924728809237544323839609711491239902302770042935165575318313289948138539447495156789420056679093854769806851731810249649753730781169398619435716237912019409121790990641524071649371600814172992619731642218507662597149583387408599967875158186194889967257442298259959868048202844135720879322005790706454971667997828474024879745733801878029854214630029154635603237814627684729937743154993205141370172974789738958658673161127199995379274922209596610672352136142949918743299343837643202916888366470995771558551131414094021257753739089217102754780623553350222962184400763492599375004533022220741827432107547531368453604989859431819078190549809690761088480748996738556364295641485895625723992116664636307156124523686438391978118768194958561040642885818497067618166356405310604834808413817761956431377325171070681574613460418787319467475191704265191880801076099885923471855335260104750143705086375407732709576965583199759330986232558594012489365518299419387890507704959540104847978396936732632040778184130874653093915472511476973404935690809825100716474583948523303656785204801993529541649653951554778834538775923812361025463798613882354227101890345778676269268814209608876452559667750439708166894535214764519572877627256522719278410330653404538412625329124206243089547102480559723036969296723759149599630109521796147336915799740286623951492308593500966028312147349603955621970626759620844448532438191190466078382413722953509048593605604174677183314599396023452469009500095444370689747805231179893681598431839196308101781153021205610849239360931986255894670909350268414167944975031845699319577626912511820507987591558158539524399682819759150417898661517193411983839352611804013830472269600185692835864862295801685212372654074924897714493640502026094831747541702201566283934408712580838394588241102722710319041583969826233112977060511429826250546138685634445020192010709630758843877370282881630465992338150271369819739429314146922192888616707493411913371095414609528608633784228699668887305057028576402000269371460264155393139799179063605639753043940450794666327037502330450993767413447466061263878956691984779022230460478569967040868496457678130943867342910696826571467528023563166372140536687575805535627743018809268363646555643457053834355051740618187908026275206621969911946099958521820384851939772756286025311276072176263925915869803954723469553488082568060644343992466061359803751930363942549566593237358545393167482513678467406209476640784390823348511114663729675590971589296788256940249083582673651014987855043486998977357893604188003043648264924866205057278289038841843371974635271532367053742611241199047981073518758053991449660100880838013804235199779416200499148745811487677982937279111116431741922828127556950632725762714880703330313522312193272698938394586733629695354780731961535288872879879998366190936125107095457436089014661493729961308360558606692229799970335917399225989402901867876521241032174504986217440665614227941825667581209116899224566824117086573788116281728755784911258024626679283790106338275832706006506946817473710372824966841067379203960762396498272556377329918069241944755733018509487118268323574595722942521365989567502718707442437104213832424362444804133228232825314145369770765001560869990736907333153171029311126533815603031161947263116526139467128349123973706433578955048280754870976565039172169533521210269373353206607144487654099117447988824425775602147127411320411166171357279871348094003758146683225857519866494310301444411693202310876479554026934011163533010503043413915175204949101832917635488561773075645044829111380865357797834234320064471255886854181883074813445885757664813989724918545047072256878995726052375595910058264018278680170462764952184023531721518143789290974193092153722425250078871576359742951660645488472373554451975020211147532605670693742705863513428127508720321509692281555570274386370675891168828003895406438008881120707701543612880834573777498722698349741652830271629487423935665443754740403301829130360015195133267316303072786691159549548268275593395034371173521935356917978108910149383274314354056064102653401292862041738887753947853015602427419816945661160283497249918781984558570180110506996925308636641766326090054554598746733673812494059676525125078984238673760100156478303863094813183846140962193802090204033323300181732963862454309555867974365671923843518763700040653000232937004277346465837177503799830656411244774581655657601629550881394854845743990798615448229023610841923179233689881524864476120921676748616398487329324893555055732366760226609381202236934167306339670804172558236412239947744781530466517755045171283876127751971423339834275235853510087659137710477381947947773390104735649533701990049734070839153379968985000613059396082572555259629598762425145843826349661746412877744197704600547636837835789610130291421505924300702539640711320780278498561309326703576205231363675332334342709975026268750328314183432200520626136437166921919382566111604824740960961572408329219984612337903929060351481598385188832405969200272826142939040674377998807540796925172369671791119369881203005110821331607539714028560763322586226201676427259535261452470004988085361221677019264263704454866326018500715018090941807505285744523386837187922990351794396076628937756933445115687700828179305476756020257054316830429471877639964226135599962641052868106602922215219958577991494219943853572486203578987748700993443021527546006362798868679004504831929907180403873181404241838700017284022579482264707452963764621262997427938347621301780504694551200644903506496935004177717591172116806433443181663034835885995915683517480429136427339241128291596721900716875964977090123449539797735724194340247962954680526199719388283286069557313042242260847088738459109883551801863453236541254961468858559183073326568054985025519240078162293647023880023999498541864140428731021127535748289748402637303416454285942212988182011086260901737174924714425671223388205212452562404744937786238603822685878871372409946853543781771145357632197405198394165328201812844410188429980307049014537128740588474082008603350346037788775637626951256858777506125047727757841638802425664118903397123264064171017657086370300358588171393443661996416006646772308073429983669886562682482774764659281425203536138388067192600281606024020144807934119518016261886250247781647292733973959077965428228476309727913156044784057297596948967539358822674902157285521984818236122202288395851872798661961966086718589224037829853122799365955172860566422422900534675657399361478993759511504038956420660247680651077390227382996122439239321962702337244677851335916508266598709226048751329795986001178114222133424072781582224725113818975158180009397239994871109392420976232030242146783054964339876009821139387730404527379429540292474746647577697506679200740700011781978346008508544152126846988998440980373165525506506376883818866195810373805292503917207352270216486761144771095745315347801746833135723687645416589720384767916894955342812993967066499056139043520792061396066183999745065030906488525784275603979622589328832832247611039422777886856603896625155338229904038116256835713204992094948103074683361742311929113565817240487440178002571426915651526311512253524597371874647548140807919954840711213825920683244964154016989512683005647206530662937202323780854956673738466076349862708444937783816923127736705207203775445297872539953081263350978737860652784490381713691239739581029977972918135816949972892303660341582714330495440614313042291738221591757580041948764336647051660402253793019927105406454698277561562843624385125567830688720436932930798790648001556736440658869381166228136150362956882393496885753511971576504365107343375759670885985016270819479679321201727854650951734453917516330921724435970784585785397704448614873582742438444752815835369809486104557636366802884421897166655622759416342124514275229409551131273573456553876297411664366678519053991811037992531421481979930938552736952346755918284977930591647131232756081230367941010924551144660336396462378782075272016818147130189305462740356889069340888165874709509634834533116622736134497557003865010239412108509667292274100909360587008817780577300908364288669213442641076592588220823655195236466522931095911594269936493944745061714005876308116097040079027322041991509523736124829303753189150031710380020274511393132222678570416930831576224842437495599391336498571601808311678012025633815381809945931588724190606596054711211260182927557126568895632533664178901986081670999827726692610572647338126964011606602926314468338754583266813080901071907215927898566878145375335546149564315837660406954851650023120777881100495735657347306249996010042747449269906692899786081341236721319946107814614866491490033540070822077966898415774035118065685549130976281357030931204196031000310738347122732107269816405933488318245975062898647004522662008682391850538710807436063118740647941086935013933414296204959205046430765964452236914164751591816267514881493554591410576087426822812529981277869818034964034951590619546093708583012501758963136895978442076467573282072651124283777087904219849431312931662092936886990062431991657263827750991911832231357367555395237361277789912966817240691471757394331260809057113937085544302919082308761215815217290974904055313224286984924105426443308042033892793513041463627283597910642881738825363583222245899326184395749012302659170786320460658480031580076883831341315212744422556912626578044834529018960517959595205913289698026871576834891868139446497825466565234938075804697710250080285476700974893036581189797281411979957814441177779981315385245672787767930108564450859345972580649505498421116440943490436983959537644543419823675978236572198390118606360948654196025704632883209561449576978819754664556663133036690652749596531107928909413673453863672649018369310085292413011901585141087194365694844113547017342770931898304232510179086329088832711438545457967294904808750369677404743974353304875048009246051832180440355511829703792829333816207553792853132521696344961718140207642511438454399925573827483794836163800285107150281540581547177761803287807243749430273829414375800845497164957170102997607229542930938960810587188902313966236283884334639688792990043168212364374902143058664698768584505886764491026993651423733289898460450209448019931887856918531217932139660184846016039878687272813060692515228670818157926826890786362756089569853043889861193218972653038734512173322103705898587266991903916606588460410915727131942680904072330381988715693367705143805246139845208405317612810255515278331658716660071329408272641099303242223632072299119887025470035669703702898004980144911065175069965787169450962698310749218600404355616500751906144256981887202174601348179919431160610401839511472253268660496792135307195906793866797308487859841902861991421132758923062246673026849470920901263445498285738450820573669658196390954400450702894658193886906272183955848580305339723318437236579076983398430461589695153920852005396549053693756883845119247128952026267524021941288969093692622756571948893065446913213672071600121366455799086671512019830830201186095249877871855171418772303545213956554260749632901194498293625241664460884044491467423622329702971467225637521441673855071653426963155648430336994329312381726695723308979866584098473144735586710620445903663185496329884651909726553938994107274558866543451911719017894593756958199496228336793907574682604678704277881068646217375899921937212772200581901651667069166236994574265121696900621664302903335946102504842675658767701293840624938428527462191271544181215128666617197957760620577613968487734805800476897888142881570018469248159448284404929935189553557309785599654853373083311266830814417898596449891614582288132851573542543241032295675857394146389417737005257455814042823870999903177620594707236704920223935195835786114654075246098874243363958054102613064604015048199299858966998774440971486532745456293921024539144619200370902289674853811943448999801925870246269516114523515987230518274571388664989679817943045075086630763395616388416474968351771001171334689442960504791844563430283658545179281889481772024215545515508686159020663658965860858274859784154153077934732246147756682753987264819321029422635559402614395205453269565117187990251499321777158982143374094039919967843228507477981380902031763479660286779022139972214929134777038641057223586044895232062285748433750184709369187531645337772219379394145027728892579695559185345951116542982661848048485863619062810006872742535052286888617723863387580701019027679583507918912853933143736028450347700267043110699669361924595249604372249442097966427954502715085140358713231769215271308006754669116711772807826966722120218336280532040523513672799566183112854067725151468910554953927814128237343396480685261565981552109437967251811192928551115286076649519540075185507232759196922880994443916133633557365904700157693042949200699726816864691964090702750240376686172358867517219987461807200155623310442154771193132387829710634777211530585785913420731332904348075819647737894189099334952153771795979322649181813999294805763687715221444026042204400560110282057598333789147225212998980132044513991442387940711285090210114926042713302122516774367833653711193100994828178861631184742023417382026550123639846210561712671914427703217990544354733717058090225243149438882453631149591869553359764463531686664366376374998143611644123114366445201752876530675154279608044532968931449093190276098350169878169198049072353780693134592228942597708218738667055181717248237968934981139497054061091786531163039571818269445860404132772174142074566269530897928571716886703485873990537544901168414426469638750480235499935591112083175101933790664001982489576717329726278952597564197441106405762918920512319747078197955694239524827651904963845024660836269249957406902154838352900507878534857486014017127547684126994968544142229578263618857514099142583445579452911957907575313868492005496858932157510393651735207302495179457479179798634147386800789936765827231332183529499912873395589684821355536279487755179980020628492779145745966493138619603403084998408448288071411586652933599243366324116709477750943801689440625292105585369814227881189345605955339585658580086487448029263154116083756271662589514510683317176794601434636244231177702225293641056637963383350081230913456195106191222941114273728267477646415740966642699430763892066205736895046794610127718872010541199650622314936512391326144990445540114174971420344993241203608967181151783138069950397407726904321122426802497302418665807542924082230318790137453747371264448991688200382358678497674914609320841258822800059636299876720301876843535773401771533930102515724946118889352736996890085608067705568083621910604852054315550497597670277025571627906859277151571575628072092466299556142811385941762928181239634423068198091582118031607137449617402671652304749113950835383297613703961449873751270604051686045009012970207240831626005211855551129455534618624834162815970259386028787470815983202450895217049999381550999649008346609624682743259187577281174941182460514472374443644835929963391899175084882732487227429778323824179873277516336066629974588270175321882651364572505315943182059065502811070519241957743323152885516132933820535142865486744497514708004127111436829946956746719108416337088520476391703929062012011680720997952688054979357163089848273680637733123874180452022204664472781060397989292726281262533318500512083913131875749880100801424277971192622474647187076460730680352864760870320992610904232058196340728118062095036042059347654269125672881431031299910851579283816998377226983828807382392567159629583773043253358851508526458301966013854699050552980709106165520226705424446380859116495504914985610525978276183960056856345377021515624658795001676645252239386420109674648804576960821227400825311311465615499410557003737077718451396889991391998586979804391800936296741294431588576916345478598772897145319223634078790556636806695928334627381882212047383109174714053478352757682078305177206666548725155246776518190825737539456050130344481816711671130638736444645814396123184538513539359243598364628862454767662528258601539004781373913018194895306387579925571569809918526227880249119466248056233842686147840032338541324879216533804092073009317791448228398416649121255093904169630120019079780211762938946772290505172916863554992633533803909663004837853283981304107926922261383633864840582872812122472682890386907114889253014934052481618323071810041281978573463247393559705980180594115901422529889521611273665116133040590989869412758019590720482621357593108072896513627615097376255190878545397925101335541339271474034967795807659743145829114405513282513248211018341533612401250547751696581568603870222816695046328681455987877340834996138093912228802352655766498927212084044802737775439945390262203001761295011107039408207253876822665185658729090554361489222694946824295186868462989259557414248541151866593983303435989034790959036291866491277591070813523873096400444885778661183560625006792327981094806421421777818608198179535926960747585422251732346435297820255091532351617922009845368012852028905953827810488021491854376071605053461900962747064995948065563279781601801749379558178953935188354766513331860469747093666067649998045778149725689607375727789498686393321363380479834328920909178047499453485260503759567062928132576482069615524720919938103877566515118719394187532390505908127635981494810905732094241270072654128561246061342424725011916516263475637765651254638845280794140818430784226914511101634775301542750723328690137527936562210446092025379417378940435011269097620904981741359631498217975617875127302307719237507102181278823672457256457497193603012277544293705344430128610891367120683103431419607861037638770933228733386091226387292661151854163129132218407249000096236073771258621413608663375681999278054935881190339127132112425854067006304535237180679254763662476619563778314267825177924052429651013516524620463306261939854454458769619208857622025180724611925096494418671326676542993745909773627186765176662479748972202931962693841879768977279031923765654605170432866121082327975345337480511158920253973668186640687837284713958606860519241623649268557506744819582100877822995734053000060498129571844243515260159912172179438144052283569405272034016148602242194367810857253679329030395525072879174250599278804198277138594751319405891264338371277312234003280810962963043782753097252800885728914894728095242649917547864577775900979359809462018434422904983249508373466221508149731902548174162050851634206400044657671257936527833498281560143492340834546899741403676631144368820164608943071685910743327252451542419539330474670328996282492828962022361892597319031856388598247561740408660273320839084747464870131723554561369581411243987453716183597948053956668257727054951379530162349660308812049433065036291554709500908740796692901059532799565222174884364040182112836386806386652865141966376174471217685033609969038620248724875283408975541810882333318977469774505926780254155582319844710166462194575428327441253046115060313930725746242106559174494837946988846622159477495295482677787504958954496948596748147390372004415089917059715048276291428075173421431903819135804537431250662978753084456378606200640610629864781842572843752386985608260208877994472969015071902178762350226038419289603103463871670994372802869314413594104966753287628968009404305724191760862701905010204876912010087976474271768326065644592033960086285500426265758617607810733359465814446890725525032536880336701905703423311878757720962041800509938166721079055469434360222238847136017119061979371865448055496192663206272989197662157309209704490236312590597149876040785809329619212067658090730347146385782015912342621926934339141261680499912194587577050800326843563420921565656493473112376089757252249213697417315011874877787292866730614996528900909602060228785486713481780391623801022276703518666391502993047036479979207450857057183800596580588692407836035893052383508188140175415997788451287559477159109005632831705854416547060758864762390831874435415347201208002051794542457894666445139154000458880975404478095283347940501192703339997642451370465374066743891293457295822911488075977434669203122193711217164018799960479398723312684946879996667927690502597038349613621560760325338605226237267607565023290863606130360030197624266867976789650984745921898631709487693228157900828649624403657904015284716133052017059978574565586154139139607753110115626294417270535756477922503623598287557226297431964353474579145815996191358527723043997791720586553723743524812755021456461140364463757630060648541920273697860959578113145375774908449683496996592700925986449738921266617158406122936725158496849884837077799909141683772461572496431796908490684126542025503385371297621557814888570279446574159627277913816122596502237483874723615777517772925095267688427851872593840552181464460116915716366594527151125962050236925213455924051714850107003428900078983124913191425116392402398405018555007412621089507201286694205240455510488646807203081583383866260554721666498335006895798783845289008420707875237220566143700567220428799526610450163084456203568498334740692770306894772644429066297019096734147787411478060032853967278585777444991090684319320967071785773820172521874449702490924774115490812326924322989276201232538346232101971450209326334697103214793785321313611487091508442335830395693932167964193651718418968712068701083298956272969133214492405788079309177089951046758485985082142981229870088890489465017490420877669438953013717507071890385150251586120934720043684474796182828037452206367142534960267308349391827787208424560530929947488509179992862905892962555365105942185429318966385040264134311838517315045933642684332225024394933334307802720385579688469765902452658212847289005132452151323267059128380171058920540294245267986907738304420118924118333685986915594957974851679076228944794958644725299975438942591857948037218903696225739118815549999962196864762614074260225902145369403616334606597297567135105609496265361697349212481856228006577987715842935725961326803192227753272217548623016436786893227003915423812098583971356390986024878005749612530591397733397384300424906143831380031897216363767589139478101424907042366982555782763182199107664531564510343560284017694495976077476714014215788420039869184251389200028575188247651295017110264641114195040078802872912866326640347841251858236374570829113358643095206268684455228755102353983148424517790187228347611104854876012624525875939753427344320381103469425015628966029880315185339466899911459155401993407349421823422162208061941241591001471133228869885095695062036062206188474184300151619768914876969829664261041740807100502156995799081239698242413562236930415027880451299812615505325222360176863231490750862811143950096719390731282213666634005894046209807431111511264492498217624990129292056707514526618208064990157702758288461785442954710897383416238583921330584677504214033056446610199151326879972697243898288265067151394132833113248961789597057566897890885269829645811299108576255048353348739455073728131024440543039702881629600915791570371897756374124028373400448914210484336431040244479747560980797964223891640178740561389575555460002093463018283821849241584843849877792972610693540721324218296813330898038632655935941947246897278663820500610141458556859130233068436126400570418205324456662148696052585910430784999503527904645501784896083201084577529395066666308611067793715597033183036196488770455735081946267905768008102001820462157608400767356139000672051980134965630983815235559525606217967105461401674270998997385214688941631064107599535038182291489124878348767219614157931722348511895806122164490590502032035232018420479177887572342886740922160772197863255580541981931025475838201149181881036692082574747306357208493648675526044483628511754269148150458430608593714818509184103872613232407070105940750115973020580512077142449952408184053671636740567154093369456575615902305475007911387820746319932728703747247732759930254918397071408212781161054775965843230844456061673729662784371427175696021565340268537325717879464572527161552751690597712595949449940001744593844489756433481580112253297129580612121265492390502587816205003799553302485118345461910284684890306930218385569262398991222564273740280446531595077033092941016632539571096309196778567751126779693540424881717932845885706070418577235569839558327513264316522040574261865517905863130163593607766365799917608625052902831197982295100214694655881598145659185513514249471005208695800132007451253241442070615280892727476631322223511288438564862731713703482000611179945289608484811407315662652969732121637858628154990950636625609001259876706945285820240537759596593450237875764588221307536039047857445889286439262597502394726772656942992749381505972302965236882759886436366353535249796133762352530085545943210468359781781212966141055303914700877160020005779641707512114204999843002590104496916171315788332974864610133001882378866904990013915118747006311096240567318683302941138571249145485859191057198032229410689200313982215752246026783705478790424612630755516541872615397795624694888732479422272510051273518422236367913297163352602368464712592789184829505198067388972175006385494978805163831657787640322825793628252612464936195783577954675196280310075178694213004484026242126378605215838623791385360249334640845210647572137384588434280960762192127132323573810492429623023145517644201952792912226874026349326376529173407258545805223867837055008418356410914087273982489066106867703828063127828326833445042304548232640035541158574079922183292938817284055260584342588679825799426440867683109996149506859912346424005741395325958364094865376478693109488613821621874918691314352246424105547910123447295522288659321897737180711100886702594051232331465471093757101533101945950955725543745602584824424599620068786124689308903567144906688953140132306570290118196088853804491643744234085949099289049670215687362900323340099377129333870357286112097989147243915507008273385500407413743243960981095397004797816583057025392540917911322653129963616070399142144551392013829801018339725451654891754883196663537297696674653449725053271362363903370156753970368305408367347378357065943123772944708613605339126384451209953209388188786122531132635087849474669704890755046154674080796039373072294467457879393625127822697753674040274558383998956112035726898649533550291651527804672770401254024103194843230547030559211723748961214131630299274153919813516730277729467428659823160857367007374105654820270979821908793048273983028755728619473507400216828295489584484018426498960830148790040797980339511613047852860878534058033478031958626990170477359193425191692164823462305892673116989164916431906678518664863071701558148751445091381344569167953987460670525585161095904020274977982631514714830810944527846405979305396176978353963604259723810155825290062965302759390281013721044346503247558120990267979509826517634379151659575398988356489725615778514589635618704378455723419094798142586607444946509600504037921354697450367299490323807096489190541220129676461224232547218728948295387464673683915256862565946271944336563533870043196716828900861179169265907195768139898813791862842603181753517524588015931475135785711382191962318016088933935415838351240739913170524481127068813847620246466964612283830108487410604136480003568579539938529026958566877968552264306458232667448677882303237120573837633728831725691500521500855173241866406804181243031426669580189253972442183603613365346388965766978717511052561672364285790695958014169528994427774387027199447572788972446337575093102972657158170711594718128707913096704044814749560254766699377482935935671165323668800559797796268840780361455030026551565609745394367636024332884889844483622453774238187471215677649684520436144410853354303202083655711873720475354191336292288354245688756154102924211993599362366379363697806849529579893242133915979930050692822311806172255551046731166251165813213193051358388154299249194040616784531880433940469655691245994574492101894226079171079493338248192673751278298149715894243665279426696658054151494544183264046750486409234282676774740078277926062990000103397162365431606412644769714736134503426015486896909550302243159291708961581313011292492252257299024117661858664239618804465707311813227032423149193624066231922735589426741752658842844701707977712003637941074721803449035718344590941728535177745604685810868825458407815130156851573413473108506893095470224994601422787346223750439645580222175001403577650789649100422108752782828531334154860714442415630377026258583163202357117002294042360202271099492607751315160836568153716728766281196292803470574223905760336476998436921235774471012591619900182283266672030015120501937881611150292981110777450063492331368563162531466715690488583492027836742506726711753826136993788277788728765748101306739968197706479120135277591902616740178107797519396786348548231793837993155776008300177754316004883052809292778294747837404238398550875686464808238645626449180222864100982738586008771392559037560207620822877868526133620578852371533216952911545419714766142058513319621266823392097204778520199141919923780381987321167285213907562804222396212327438582077956831426429142672902950711553823543382459019967876358709495431878314605641764370830714655125631324124146570916472636139806038650372184495490767895425204791712539430406706970124391363104375451255765200120687182618786516973408061475652963477299361242464453763423637375805340700651624578699937427976873371370054149146213318488253570046192944521002872665498884736941108930678372155542004104199268621835295313105367000848830045286043536761370063353845307838435804967036477886701703782505297878018173213281926486369921185615749387939550232435035546525369714412353573969975278088746214464559894793816368501468518947227469132936055036767045709934882689691551761315494122849362000232921541463335163420346596159168742425554673835101959510918049727562308173971784783040262105012177721222430702673175969131809671387286748108770014273442075291194152974639818726108333467325476417490897057119326874015297002442627896544190925294585471895220088973356735502855575790209730764605564919243633908228269072110679924605682254846343087078027001074832549354216422969899200955178101139442080138807935623718057319351435307890985088353393536256882719617814750826268431730284580783191100044705599006705376657319555628367637140896862335573458723787797945009992500716470159382837326343049419593058633828158734623525417047255051694554778051516942469457515432753738409989085093248503393150418451655715155890167376708557531260936435239050611118075283562698339082855572136641273713146857296675487994035383554727550385430900716127479269891235425600829896197212234098725884401021072378150481596561919078083741870694029401864756524534598307166135599762113258205689364463448117649150217068878114925495018493045232056524787241751031565507524160232532190387679964670365624839538523291155704655423502052991681231159861102540049888685346058909689654295117624857569387053963006188871259560869497598531468515224649690624331963097527976712634617164715149712753472420079625609845725793631816044721520011333503297031819269320246975301205258560254113273895914156151176372335802350292602890930935293996009508289008215258774378025514238334507727097827282549950835900192213078190566837784323986972225110931549514361985358649725257877059942483971529280087389094338064616118243471334221021329350042459377446013317427487186651076505098165302237758679726275065103890454435534315862501259997511719929188487099599608606055457538313431030747853122505817296725022227444772383753802030400119401286040066655511258138293110041639509966486420545483649140671139379099117080937744748428830489016385760937906969779240318831255463407829344849496841812847416380242984294175906184463117989147384088674977760673298055787469630897641402372933167872058956557385940494973081753318998381638384497939348656018341387858594057310880078231593616806875384461878215816559141183159679692835163727873167413486390351533001431146732237511182652029834086557807253556945557717575884031423045383326681365493295131336466675485044493673311259944163697499839183878516253943010858051196561801809042241118956773672964171757131450653602769267260636300640413907167207284968728311228758071488024018921520658932712623207464521513285707968939381793833405913060398511290887116698380074649324641076980329132733822863735073246634859869681251709874646862189436600832975761350656380126950997361147390510276025479785252161145418521867788858936176170230011675819714257846604332436957307832090632037907427853786920827401790988788734206156730359314019682925201830287003214389256633928385493144872335001075303961512980947817574137017233118151920719796624973142154848992945084653828779836077823038376802264239147367952679094124076368674025352293265815995461727589318594524225265823557244824179826007911338865479140537565726016829052014745684731096537634168139739553983635392669513432255639759178731036346754506143414070842275977780876271608235817714478027515836012007919197357327737803226018346098541175692070176494391604398219710895298402910915689026159151238851411931706995415290305446402977479421979960633624730468401740873412074795982245379896872137676945350959205913254662414242475476567526786847772415050212953727047677749309031608567903111257848785507652913936202785405893532256930960149558800378295286175058798965854395190419642421693971492438934419861951450325445802258552458196527052580831446109418713658174285648855878731840232673545908984535449181646646160848805540725209060793433674996444260312640866276331128833668663402922919295808530918272407723877863434917841206894267781369277718174555316178171235682026539585492465808631709490268498956387683729132684967374782372354528533442839025800667493524351168659206945667288725794801318842029097562812282873113498473142390937660062455808422754759918430674687888642091974652841626797092690955025816501009875210552251311502077949435649218549306976603967207533168194271999713053611725284914469598943579369272247873568550570240852077187750548817643982281801502355676960742118924624077631242415963553911276455032391244776140717360663279439197814280498490047883055505078176800580727325102757608526498038255137301421665943961665696873419617781430376492013553863011353410109447658234884404353668099851912285638304331142241642463374797421071830514175682916764623816635540929664105653034710772250763289575886337512416506019514912837187374592401716105188126104412679434708058428079482900372646468458180698582929293485050929602392256942443854379778853028852476183001875947238675435599983493770509756829720931438829022284425908623289594302385569213609525721516812890458240727164069224047384684071194017430450409759420282307497252749851658962529000857863245214875454545773204290882900470948219395799920329996334921885242500015660050036409277507604840421696931055033195089915601859527868747446380656320346829607245431450049519247613258069478089344244960967910155029700580731282492864786519380114199594900951695565227689586159725604176254384233923171175322020263132993993535502613548671585307500855962194995770207917906381185757620158907300361062889372368669597073694968558454625594211024483150642885295999044250741264040136111779804142466524039180365862148067487432766743134783400363124555996693778644555210243135117081476609658461951552672442978505091592845690456661039443062766017128487807095860722064317083531708964361423081968237287380149625465469528027010612888944563076814257938317733234326843087688402731486017738987424788753716531140768567561162922474069762694856858392837039949037767153925713878924504264900236225640139412586707205502920737901234074723171476513423988712153143463516439438424782562423711104932680901330832973254222257715527685854388480348627376105839020450263345991281653829810732511848418463121592209055031346951431903754938303804503336149692752757390193391329451704760668884655243464223844832016569694886374980765599612378545394789545111363459384183878043125163250226843577224710187614731786018167595629671044925003499685894069551822242713526937603507564960626866698236962879250652636941207379348948178336438008417719042429863920251639922482763861086335980270278208853583966972334243554194338733103365118467309401119716634677990349627140637697785076088993095863544222613046251775742551211132693012348723805842514485429152391685115609596988822302952502875217251643763965410809224113541888119660228220296693732994761074484551772914161968927132598551825603770385282818882788269333912135024962426839781285791390492360624066122098986160128894346792445300500048591144109014627295939180147791104300917630498990248440072608083491063864235384888790122852421583360835903291404622711421211009616402296397085651246535124243445661695403035819610491630341119595019520585557549349374501201542313254404812910683939128190362829970645463626546362168226440917102173706408198306873369314473183435599569866583931430152795619209961624511040471447225617640139576714352334983561908818397552411615767115796594309707869522871060134565984142305003860383459259251910064300794894609939944501431630316212938176973011168416317670348192778155314127450058050621531918738884020621535853105913889509289991328742757749614365246569649446082156526027650756519069332542735952386627031754514015189974777567407795248043018721898861188749827826570011629851207297583830725839761482572950299205177217008136279485492111942289041824289439668576127814941674554836960142289190536794246893907910999217203907310443386917359840967306009254425994841675088330656995716672430781990511717451827882027833786265872614643199525533824638914894299117276973759243439474080574729502311559328639491970874339039125681635750275638788698617899893151808923199951471469664133985998249618059063253811977324374330437015674787979256809813942102211297812919223745810393617774146542058679824043658578353109966628010766612171643857638036546588727192877158074030328922716585753355154659971728316051720705466619171667198425554084409944228179179386817114754038464155694731948572418178628141353681722103297763788849140044275136558265234317991526216846669858004951456794514516260693780206898882479471758758084325737119286065544241010273018936748534306118072290362228388510356560353313896924104286236075936535073920360832368475349202251183325162864329644237700998797313033982114713264125611347819619015988987329053969549984493259644227997192976728063448031175958183974258294804326656842816242700254750528225687324262907352112530385214007843430932818281650932399768235749313114295665134510098929322940416246702649474099020784512544428054419807354741636680570823841904137506484792479170014066339497441339471717536944637797096348730007627650780799168626372410445548959156792919091387753034776304704597318708561827582428323212984012634658966286066669038523052929338739557174007927293977845626297448050075591212753425130660405698421833375893712526371245295433964581525318881544678805772207815456637668387753915096918004770199523996399376803035771817590709433847110228365012348738222822378813514613999965910568685826935277308510624909821431830261181149596946839605526977501487599150535316546109422330523358538560752640388706592501261567048623211029709414631172439018495907388949026047203461418697634245657612041984457308475445538865629011037055788036975266878880232337173810728126372545190631815452431970439820536955230990926957044239403618019850258492776129405950768232159064396061546891389266225354666976178296210125816342828086500834007193742697849925503838387440022807674664477945791303266666368874805482647995831987341960617602134725505955922594563840647206934166317255901580207326521594609299057006006145607764489427118124957346643227027277500799352914944747244186636864382379669350513926094390364106668500111366411545391739742141651780455376762019157837236622541944751303676435038755596681012569482855218048920839393425197060934507604906669170372607542128347729242885265035507519055833724964829043660667079515444400193880063201635590556436072739294524631679635454666038941658963614820136432962902882192646600265720724846218157635968247751336294124432068713534996225044704771324034649135022109954139249222102956929980054580037575531688689479590707740038839841389529432917583920037256712341728263266041149842132013267352425645963919978724885404746332516913437932976604230329094913351032949448429534718122094903966657089246768626333415657289259154502771147566545099073483515174767273093455259663493385496068687227627789508369114294648162551856550103784147455991743699219530332693748985209840669376030166204163625426751598617032279163086449867230304435103963367385916858356862312875414063583546157268301897545311917868500538533985826830881870878215249495797986469749163081129981777104214308102318348768686387344813540430839960016624134637977967639978670789529804715168508196672115833288175986628103094149094306282001709956545385647489751219202633535555996133613601785518502875458529824716526035651581656102453743294083116333614633861949523992389683906708937851130635698254997457864575531125273748451628868379850753963493041976568532533702925323624338329195786662393099546466745121835567545042191147387952508094371962998048048090247232439878538532187059483704519647411291449095449091535899549233194025811273075734192480833945422828010098255186193182488771954278404826233904302496406605934708660810924088514408518669897922558954177838835791154542413839146682582461579982957531196937581891375952359503659212144473026000792522404537448749805481337440045384878501787169290261123038736791909476780154579441295523241564861933809850264308045912831855466284419932412077928619909509414333650400068365160414932623486922056743617985932220469200437366671578496021782863462135869069315167498519765283208415598694737766418777942752821345325758665685590129916503867184707101411423347550514138303177721251555058928465922967798759307607383293537473394510999668380099699658644036367829047184685595350673728622574206978410936193113265949275314847773311558476646981235367400931499300190622743308364286673525454814542188165975885638399911731210483951341072944140088774356846417286755314819360996264679169836425132428320606225247608212372873371178865539432819191562942353312604627896832687050468968971148723006235105661032021152530116321891318855032724115641114611639875527822661256436869671495876159998216523111967777228192752710041392773627430716243371617794499934681588862745453040985737201370430871873553729159260351630465897015567033144929316185316904145321212680904738726727653186586858189642781668339363395113290327875858786659503454580106767128594556591574861421876096217965320167105754293264174983219858304194853517460868037292503984397416326794166425785355289695119404329389809882092292910185102346501824382261552922558653519088618149502587656203544283991991384539162366005767660647037388060255119854735782888694636203283372981342002638166041178271564936782779947764844050826453499975879795747736123239754592934373008196387770958509736423842396468014475509522912892900169415668390504012485756679824488980263060705109240002221599381598798012273818676719945691908021727442107078380782701916711307805025723292708211643297845664754537887380811550628828800081418603506872104144460268325544846790062894385393983292960157684221474499816427305283634144054580064965899017270526709710655470686554764560961892731583141189035849790282770036183514917448204098535113531243371785465392718723142662365050371819943090960473391832706679365962738730287017817078080088816600155070821402978278886311720901849176419777074881764041424632584765970987114388351840095858945188843328873800558476845287198088658472001631422195961361516116965758868666868703296512034003235188748202408362033155607539247458190164115482799996433608592942054910049618004802432204721341945556849483815600992286388409627212274493920387900012276288798144577591557041283020786950302040706214728756279965804529066298946818766149643677311336621580094654504901502018719066305237649087538262972317428592916590114578180800070799479264861525938301815561531705979652650470642543065026863992597592508664551629357124023553135598708962965757430574588042132628558170162373025625743952196133562750647657351772600678569283082570209164474265388553115645254067136006206675458002501915596153814452062984568681384799433975697646286575016320177595553623576329630965019248768028229205312732222701766771559214335698600423420467904189000486666436586768988416448627451244289802769536259181318793782971847685299159477717658412407067674033299507241835827917767918595703420831888583404767394147085763350905481953043038826829325543503175840396744942470525639330229128095807636961314906004198002112188491328542603095083126864744648854403798925560368008221826895048928575531414717052496910950438431801222646230437614266157388114113204997674702520702075776317285788680431946088663439151468189534202734653276499191233802154067281818388121220055923094443090214449222075490891962291161925903857463128218461166753410861102690001119205390519406837106134314177364203517551012433381985243725049890666443973786522883118939179484734079250941523461378601616858698467518787974090625562835077978018686420875574942055387847151842254787682381108169691106238157422073141168134600276690455370258087333676433315076852862773552384608434467473271000027050008356202514053732761895257300379854683347598094600530412307294747150135455891188619894878241373457341287492313393483527257211023631792260529625385000296799758838102045198555573789023161727191816244719714597909772456120524674592497835327495085270147110882621656640248533976951721280410450226761048167037163273927154716492217418853092838150373219961697187696101868343418146092866625906944982077688182121415041182550762373942597114893325046199105257341957540881792943527570688067420813024047879893590314868789360847584608398104253806904509380369013280540066342982138349089995950519580801072638546220474347733728304982072972014457551756326219717771128734469523211163933060607903774288178047193716452627093947104769099986021297219852847680430688826325267171067246352645094263764123145660936307921076460668971967496438601226178055254897472899017055625397717583937306414937599241295538127654602933520102495488344034903206112101790899476640220805968743213892166449890952401100085118205764884301161273926805563783855343680379725034357513094567284313688605411697605406773254456033169036196575955844051460941193791621086300238591069605744874145766042796716312639110926803573659332660808989251419547393120302718583315185842784445620288611299565864833349064846243948887990125792779390629811892778916993063294830765062311885784390387505921020518606975114142056497665615378471289520423439565016899625319583729557474701070680694425401393296782510509874249512974294582743347458218319383979247405392445693603443261430143457445002618463412755159245538168676541143069279623826299046721799231485341008338496757546506539529412975760105064087089803644914526032655091100838390257931210078240470013425270515636263362934349142569808672829731151559214499620694590829781337065697915022809332808699915009752180677019054771367736301186438420902468515938968668752263603544840516976250179031375016111074766699351679737220943043005549406415718748863907797187535958400383432423040599859487764754917956519509640863769404800784007121984406379356375090994328004850890027640014990759439575567749159183425348511057996229318627871368500816669626716066494457707816278715721118934240866307781300260695932623453589608845913984659411583901881127713032794212132685715095668096056839005781686547340981790703322042922884158318052940353552044399723849928087769216884739011982872010444042733892903918547464622447231626737877539224811650254190330542823219405249155389409166174873208128372284908272410021710480488657516403407112610138616707289148600286722661039631163298802616701714709210352469409737756841611571649104355218655910788954832462740108877401168811443355174060648106968594217532827428727224798007130146294328216747562956363908839007232765473092503588935244358269333788375842081351978736265617940096656331049275721405076780370160038797141259422403812794741539899910614351518960918633288682724751034039237977546961543974907899200461215403634327202365882538440665367933972508691701917085073725858742463572635832540137304465061735385128423598479468009244412228960874325357640212008720441567647733142300687690302888223906654257350470722244316704085572725097028929117376892062372743131242269421186871715086289008648654644544313350949455786602526344194744430872172351064052646767817743437083419809644973406585491310710124867051675715991749421692676730975122278670244533360492279757455653020148994407488432782825221189332334788353128884246222264887114618821318601834445943328301958366817405041320836226774662595478401995654853594087670937869390251718073792561603532663959256253575506378584608553805991541829679709039394690959388409591832190767305636254902243853459300454886313205969693937301763179882791754512346122751758416665395833545761072887140591901523320253262486153798563426577887234553110116073825991858755024693568115561070778437871496651969976629926745454328026460871869208130869167597335443062438416820847532910005149839701003324136190642215532049776628609436348744547079297872732979127036306773430786991913924764584284919692994494084858736362688627443970407942044272653099447405777867545622435325054377786882558768600312959459294523964225411789388275031875924855107188115694650428892100606529615917929196754251811531585718938085617750496004318277867384842337966806518793869645208541513070114399900013346602284707897417467340248997820685985685980199440295435697769558717827740476229111250923199280547660292419977969196924052890243204111426661391469021257629338781702984238684840039535222078818541202141271458697005552214289836696841127769850332934446699247607958030824597772709209926040386179970302463427899979426129976959241642965622603261135062526183827100828846330397871880549154074260755607438518746213004414901156507270148987686375742226213939114004744312995683551679799271443082799787363742673281167378588890953449738538939693567125122566952199747231875479315862628442885881283711219444684509424787994268227209886152555896200916392301796414135259333947164023336881098012225319550751045309340262796813510544907085759189844305471489969657961564672609368207893944467549855541911028336168841631312466293055435336886237079004905670160035872742570047835151135213464428584426714970510527216011949923107176932426612573450419086788303590485958944752517183537611939710658287139737627217345208342420561437436414850766570774096687559473651371914624742677160138925097864893026288943812957759002854837658222674978623726287395588919671458749339980970171730919851944690364848912018603271046030450287559332371689733174958497473222867775032853230088090315384908437917527151155358561453054944300201552155582044760515288587783223086100215866590404691386693678238468430442791010476795723355077487579168856207712486840910642305766265551593577642638989358732261288154470107446348030127719060093338824026751480058678535497139662266466695643137262103192787718299630122271951326381402547655429921697226190763407105385157133110822873712744193876035016228057538811317372211262800533052777186315302955031358423616126870235729180823785058212611812644962701112319158853760354918990957219504644756171802598565355401639997856019747574461266042134176183906849818953863805940531379504161551799319929431462854099466831092345418024707122350688489622365123622062204215757889860490284417855999631714093349327942218154698755473706184904962479354384858757673425043267098581218047405410283489990855882465218141877045981117938012205799485952903314154364880276148571502369157572188370764348110500237560038455000957820783018499281181440853979701441450103804235954544795546836849217044207145540857528966464411538415877321282243597760271109833564597182015376968518855093332063462852209296743229962012045376526065987819498070449211922954810345282025516605499796235089546224352319218888417337235964807947978894793857406045791768803614512606531329607904291889596891283798327763697329057617035453869871830869955892136816170863766511631120931341365182888508788878979677403021729870747146641710649334357209795830490520820765496679789897674200597426025936826321885282239435676397293732700030584637435932637092254236791029561115568226086694810770340566436522982680817315902764835701913143896949349058369067075962875583209993876572986492128980750412843794830948725141274440730051880413120115695264487243752651496202285856711659452243135305696467270045641062896665507582477376081837167785104205863157704453166170845577975323946583348955475141974759545969472376654943491379356630724126916616233222463895557389633113975646357413011385864758904072419232953931942151899889135837664904765000803869435134884068248745039503332345055269750072454228774658340992466933162756627761468189642369077156713943623447944396323006642035496139824406044839467593147064301277993034544074060636223213366256583275130645230661704008293041902286591399855569000997144295139625555151842428756183665348514301477065636194162540630221263653331656630686995448483641321186868536429188227160495688950221299285850551034041993496778111847769054079941940773556978791449949327590051453170789584493251705749309687448110859377693183884162381463843950425258065265918627270028952771879870176968969967339775988707190003809011247667996143969259603700082593298804474765059607135277162956913341886155290224789834269801771275543476614303876861231055130567197944334969188556889846324598515614056536168845432686144563923078497138282404491287026186625660291562270435317796028503283528840933181097403765699227653982914023128538462014907848244897406085423621556376943591616695386455944897659609249492817238387977578576997108971086973082965488778508511916086879519336757199083430788063313152944209086759874702820178922863338978027654223604410947985980793487672004917064183617174790450664260591231080970146524240371193150683346976687589891512846497908480576335494005860140073941614021021237669571315597975679854765137683582603008866894241896014535126702800749326312963179603759016806859787976541503628752926513314727980796792698852138289878585307881810762866685733806480771313264539934183953274172567670160410857972794327116668327287680445864225073673194789913302052850943334787241843602785595455310525773650324198678065921181755917618993900713715878785345705127483715306340822885044713246395923821534597950380227645236540908322667236346107488444937901683213484624984356015684598941916113782256163582945959196844661437686673755343188534770857435334858300825031031863152973913046152650419576319878354317626585830670191510448425236961115863361613092498806127883978420510914423317613626776112273129150813961757823869970323331328698487337576043266750456213434175021263365296646191792066662379070158612215907332104354837133421230447420735338738290701059450090746732509628943907067606435935410958102051995305068577138848786981696520667282869282423871548479058321387459054453125280888519210085607662026905085099034467679124820952348219177371560479358595610434893623400388433352015122661826563004733522575314774398564196453168438776451305152869162970763346668337933896553378006285203372025654718629681057183232911919106425415412974329495973704379685092752167105684064871085979068805741349347357572434715407964540648154617065026059482572884630456305552341216736480356890193488707550280197319619064506049566974464724588698736722673393574274963772667469546943082125064207374071799464927312658228986397802260426137364227168548348200329591179392405376747688071764538275409511530838719800989316297673842228735017214507756090205646512947841610282661967528447899536188821126390158908845470450479859011767072911881538976977265878988054914523492561169989136146869819494606025655550212506598160296773576851142390962294932043438635789770881583922592297398330058506871415143146801391270934275795320876111886864671856747568191195180806707327423882689698007464520803370251789838494900798919795971337451927291174087154415439427915296323707942645324842129214916699682111521973243249047900180972243913818538986327443374766270922229272190166348038190951301465608683578886895338007224368626419130437418075999537128606824754539978862903809190316299645716621675410021157788049211981563082238383825021957871830373790094723793720895752375074518972098955711245607485680287969954875647196613885803641812495839612935634229281990995221344331587161977392894418128911069533706092072670532298100580115946924965153611512918966384630334080045486659260154545410688911429295569282153719484393297299308220851216852532987403664149884853752621473340435825972811807439508141929158221710544571665844511230971099198416196181974884846589970737124980487534285968503262595270931848728185595862384802335381115890230597211683211657978444959111012848757652786238690196220953259430560700381702787576680795231968928464186688126103998505181698690873113361650343233039116601176492966349124976007354379876529079240753720825685797702488947586267456765315054506788299663862917059337351085836840726487653117100008386478819339369971369544921604306708012067522309567462300732240398236624455738318114929651658209332606582380378238445739130757466433587526105313561803065733562725331132444069709582040120355079819023192710425289981859231411265592074045259763511901244345452980784425831832064010282477329981407832768377386178110817734969087871679613562671146705620042253240520085214278880721551563088795518232224907879155669825326554184396859852279249358241328186162291368578430834174736128928124698251938926096637028672347617210952537985481519813760449761541343654624569121580091046258683821832952684604018226469254710186818497999929816629633900572988329095407318049734077284379580706368139163690338391632316497798797643000367317951902812636577531718872518052606362946301103617879148140313648074745277379215303192196908527913671397904356881194131590043460629463083397070797373482041826767114837994410540734926582001695913017129842516747634351946851511789972560569070425698317719347580125841629487429968637063109227156470820044660757529167238944625005578754877848099948127471107281946632857495851977526226525046843888391841975289333304131384516814055638549503406172280320587391753585976929239850207979071735512615506037000090177237585913133352662274149450985440534311625299871046036550190554789890658068542550843616825453334280315749715172441868735742056433804938140469293126323441065956357965633094497293354006584278843744772955887468605966708970319764117327283940218068065585145756267421651662898318603714591262203761307541600172744889079011455665866820082618149845366357739636487408638910125064147440925900221938309452362003275460216298726922811366854076018377098839801188378781706543426587750433263466715915041166680684545339212323480109081432764586802265606973366866380425587118277993607095985271262525782330529119372391813849209863156387636718410002193449327702419381472410764850313148347238413154204475885092933772194211812037827708793989466824246521445841767495362606117275443028065511322678026178173800428061245056784280570415731200893812656890746109388084504499353212199229487667392633553657717455713681767031243760176326518633068216866487135582427586017156689641265469225976265976947010074587432425829078115239627863777982672461749799865838570505759298268108859392555326784751601469040315239767382950091085500052936259088978787110064723295788018755730209826191888313837788204152244764882659101254709699411390802885123704319301537906027813258176594168606270751117187607066780687358054936645348952121833063302991671733839361892567031076089354134130062857680696156234242467727566570249114371794509558048103766833361784108075191621393213362801293558441269905107096845703439559023399980826196673564834262330087184450386590929426592236973329231457439957864622831220663598939344466529946684046287819971549535008728250400695446547059858370169636631156366765678849375865843899784296885253751857088388575397598483518392239734253310533081969249648409840818192878259974111120802931876524385476440328295168751983899225246671215255808379370885405026207267583849874493608021091036874192853331058714123441920225347036896466251245153062289382677067107128678038065702979876134765908134599863562166717963661288018749948262111973315177605036813590313895542203388833951713822238736571972910821715392116845537097148853204620516054393577903334684934118035023881420955070589683018834852934245117359006469961116955712111949421980269351898702550920464685605739343383936650422655456301779689510031831867423741158531339521499781168524097446533737202522897545542365456548646189806709648680803704707076083512676834944619646872744017237238648968841443810727170308101357424913255070428009417751402128936845104472187906131779149832779457933402419285895493107383425836332818585788521439717048836353389344194905497853444423894697194729744827168963685005807670500123323504585856660910328333449680552319840742089720908815720283906676704644123635325832038611285447753936220230204173264085840055061140486957716935133112331202991250823612980215921412569711112621092191017845055806403031054879909786368214515426344521699861054791095294138360955581412574064450789064165111866428570760522299075261536728701437859462268928336574240918223030068162572573122383059942837990459644660919094470812992519410041031612499113913553014080327435502822010377242570112324896650773203546178921749831393972804856510001367504487908888622622472262765745557195474133870074216892889041828620833776174160850178800253472005682898668874229819650931337734222542943561730015009377439705653490657635275049311384221951564102584735350286888111407654681032540288724144025894481559270019207371274711608645204887616482686208649602105147727803503718082366931608713671323162562749528734068433751751251706828564850226045505512599678520425782263960547133241397297066136422723142744615119365135899202062460729144000228375658927170984383378212215938563209617349584226841839646902178460778097970855492484819587160774250400110452476883111546226846398213619717792521359672530531556704319378360975425569037180773644124241624532847371629043120235175905816027562652036408776174462725997850018450278071351337448391154235406056032113949396877497098320136869332843478162338168178647836565290541875985923500942453561401879128246454186024736583732656502223143712776695553963798510654449171597719167052409068229265378419570900592818390852993638126623824257129387845460682139084151650424170089821283140161633560876945156389710372686078516963463441220496100757534640295770167362821578791520193606089095403555235601400451666263651291668955318953373780987356638898890139555507501381599882887598435298720193870567965848991081091040381332990092853727497974973313882404907288278069501390568369478909048368214981550138317829710183233524919682306361410037190388515624327840089416677982541881166333956046184163123232514294380706493035774924123237186480360528695996138520823314059473602332110874902946615742570901242216641062278096315835614049230315013691249368279852967631699501849266161726588951205433428557319309253499500807094207243413583670100289059692972575990303496548660971823218367547761622994231667352809011251284348226985260161789369005867925625006366991601247205731613497607135811915376219638861794620589439109184936241603675494186970547293936478460768273099810075250782858354318519840428148298598361351992235398630449876944013587834813635188555898821767962264568969097599211513462195031483400911135329367662729479269845314329184852815368826915617006074051357378967358867498081761025798862601392631173558107561638086386294193197796174821327245415407382664131303442001428200348536845029015517135832273426494798558582908935874411713054269329774982582834295271911013206828488951656236228416583561318399300228587826210566234265749963562512744886428931999499286010336976468721879433937620887474660200467304362880265269085552478364243749669910148460408285519535244902840111497482314765668062363030840350470114780428211137867783502170652695565360088854795974617378901857514937023898668299814417942161413697276168983912259538254617505080922611459071238710738953563545616545127216973922461799320545720166947517717019897506848540878898620860257337847151495429618910456522936324490328688239847597842649302801317144596995230427273483634614803805874460264744342111870340180414084542541605522605126195655655289633097280895403763679161824043466589348855208636610119449874723930081713469053770944982039195232656099760442202542122517351667597382354891907152239725054640805687742212520037259651093182160789872110556091120206896095674420224462682026382876139399846486009652872096881301341537355731629868919036962565901779753119349398147657879574654363002333882072685570586882431143258890572952031146101527808663983796248565962624368773639325296049365979707856318173729604115697025443173800314149674237459217880618505065301410406604049504676595836655426780680559201063666145159006595446215523718024487934557934609191624786003448483827442976657905252722141547026441743385958992696860629432485103830337010155704955844416076085575618611546838740931780747099661499306665703423728215703779501580193371942472847085847587757170063561955998914066758958469545804949770808577826961751665341229118018746974538013520937893449775250254169623274838405110705686768849256963804920706552221362199534694640470724772839493032384942305657076123072212121220768336024965850895638651307929974479604387857524495998236662343087052130281179867532316944290248421597434732580291797912400489479958189222771988584246760280750533051402077854558041142911688547763722905928575923150437875540432574697207614009159073035786990617631863722122713682116916585898075100721921086781955586687236702595541647869699124213296706800710273798394695604107869101456675359652975162898419997834437015050009829843188318963028712717397256584374574952942194131275540705924796830303989480178045772252324882795924394843694552491510832129269250038788182421489577171148400499346281915355452851135007329879450225391446485295254668636100727026245387281665646104951080580180679354918427254238271840608994800018949668072362558819758079393982182844551966627992503335370242762874407407127236560948385153318467024167198539551360034827323747151390231597894637659740266734028487646539731524766401584038783419580895689679016144038453802861744525821772664529416894557627728986683891591225297090095875209445703704965168610948640629453324353641632593045214129070589967877526909309217312330655294608487734655431964002553422878881524570879568945904174090122891003395869993319529553150618983519484686770067443563176316122409874588041213298803445044019742377265138234956045446873062190216594419015932329893503104866060581502936623747979132988095585897857630853934918632541376087485775140952588658790979921990708432051765189083226081110557446157144144540118826536478391395310490605036360619997849707916340342625947007060316909876675750778870555665972442738242340525289659352353702935693156917631790412916687064192172797451333845217736671593301766296418142167879154538149188104410900582576313227019415071335855912003020440924708948748699613840830807960333269931555095732773025459025415258924238020826366422999283735313146367684585375214469195428721256079312069502978122436297646974845588755750785474660482873198667233933176262735501191423447101652246200003376430411669389584488578654493281169146231613891477174426249997465557978886588823947530201988549076674716800148491806801938309627023327010317218529538200289888819003032974492644846965806982235708431868070379224926736557900391511608565600972561983472657642783315988308245973961016842410364715046483006509367838797690939043399743480166369561125967550538388297049687128412279080476712470473383491362035389017856682193341438525180329431664495557001810709214056767666285806823698492890686219662356862636190818811164770108702253396409449955617046684442740610368172715952906787143900928549064918338151969868360116148938978554619823923554818222943292633430199031334373861133173124851271392518889230490753688736145328068612086675318267831057512298050637892257803664758947286605479276120250716277929685859396380507704620701336249400561417370261629990851715545078769035177690071524945444558185803794107702601519656372615930876047280002334103003780708953849952775700819013283079846062619633483739507745719553303621022924283357924704108604441904786732238196673738251186820905886378168039175612841497927312367200231192558570357792289947445202920811774398170000964234250509928463794840264585756711366697041983101296827652840714757184186929791716050124868346266935000344668550334408178906566475872406384611797033210168789906678669727096024547687914628759444699033197364726816138958448802558928675202673530027451719042649774679602106406326823758656811091058595518406658016226753077508257648048176228447865102902048216076034973332439405850314716803607781490875024192737699116402273266256257261746747580723143973961014545538718918258053262056209464773939670823168773405759411912588247319411441141028081156194060810900804479824115381239861198098533158324758755656934595932005729552099940630676845335746546151131338378878062335557001398740874695035923629594023283577058320211709326212759754291527302300193352831558936619143308846642677440744053706857997814835820350759123533464143766605525718417442449412234076929738238489289317106924102743579404319645408349127123348799257282326079322886017030013084448857593034622414841324531899685924378925525273431368016327009576163056548554179694418227657734951212697179468494600224290978954027109930477631215546511367393719064923998075459151527361457320211790244690481473362348108242619094798940176300434703558136475551849444527557073634602698876305449577548749051278336001809336605764927045873827830924752935346436922081168935669789342262343254020919492814236562364326201062975350097951252818176035142265820180314886276462667791715049439835895631403987896259363915338325160408927529301858678444577963315048227483390340501493248609697644163031699236535006186227013024810479189852356014555428795448588769570428249648192450942694445076234451017900818901030827937344891763324382693988239154033674635513762928267343947153978464514558862700502158803154730118439694308324963134936390261282335435655447864302476259237271031907563914673964545844144025479616236520408180459746493081741401596222803530588514736009731361886448965018449558795519900512336207742452041012888823585804452411196814194428992246448853082697005176535988943006961779350774965574560089448103937744240174464363716065052366267631615102164274032688492202187494244195247528365062443167061503439665728510808861127140235430195005935433461520186723276095126499046801886669906804958741964013680598720842888102775290075069016901856871876238638507135007250943022916106157394196372339245653258139984448752190139610817859435833204348204847167736118482300479800231812784790276038436690748931217869747267375914771883835760509614035146567402174660797150618769508656304436131972620539373608126472438875407018588783552176127671548857381812618396343617653301887565856613690409987204991069908167545671173066565384397522656393720679022791076433390256567543482918661449288832918592727431055928607464083948584212145524179706295531093756645792765834484436111912099504481567282013913878671842905389658914135202442795043975455589442096651350248491118246150587674885216683689881250741725339250404488062834047659969761133108858537575343319962991371348468264674829393494355882735064109871352288651931124633414980987300900537577347205953471615954655764775458164521653699666727192544463828238436338970491078737828050216143657927573148441046195976754228170066294952589601393403532508959240580527957922415384834418883248115552717414441347389659709366872689350909362905487633126316533315626842712653046404355910680560520765047060871526353875758285897163643214716535018372139128741164727894166202812584969937513484064542941577413479982707101125383651372148428556439973731345219162432049545583002160318928770576727201075468879502848178364170616209924738158522971779077590029033399778342118501843839725489144901339138537058050672900231220028871171772173196484864693092717180263355054683599408831471405201522366297880565090438180431970377111770037345993236035041727035857360101592766152828815818942058820621691872480989260863836246325634365443570418719164877613295840762741110104957373975246435719830390413150893783940466273306705030103638570145100420527072129026719140159719577277020323860399141549641598177792886528220257915348669383765742902570280609375631974089517023064745878779909304477657573667447720439830540428592994842007799787153526627190124911035295035152418756003483391364458629075104609262381774903670345722510613441031221123638907600943231020352452457278180827930941467498196746508247274544017614903958034181171689410183357772510683793515010578652165634109191920650642291427978262894841738872273075127705054954734827436580905550476194540266847849922320880625720356513384772877771219571834681436287252179100538060378480474319806234487662440521666917197578303972383437951875665912206363552178452407315681976125199596615555340193114829802067398783110011741349218433928448660490140484997664806995152821984610607876646917260916298818589350457142793185982449601175715006813360489851600871632873560132163135262498406444382932736778601917257816439555410363075248929908232889195820076573573158018665318548625894169451464710548865972432765187307993897439896808257871915908511131347928025983189583972156106674862743111798276600527860352253988834325704545511371983628027696083806461279207853958026239889438723616883021102355308312859645524742590953809171572366384485736846181350668253246512536288565405588869637407418679776191956245855609203866181504955027673743641905983657707616634513001733938868532522346816890315123210995345303165834907390437872007703221234697547474125090767226530316770787279728464762413191536989284988475543596628628232897941973180653061903938167040767426795218931270661596559547799382344585077307592568016838119926357405251428482497234159432924426489166338011099360768925043198188402175719031191048967041545661425641978814969828614576710072086989906048508007509752370582344797164847887694471594679576658197666208848806662467316003965810226407867100821980839420477706473752840963312955076369637884878647836004190155316680023045799792122940182308961580041247646339054557495102703091902228079315384108267392437055778554147141384624843972405313438693952191144535256012052372983333454967493965711676927905920426872236509977966715592655612050400494088165671196001684456789093527361828962712877601647300010111584238009337746973686423394091422860776729864730740400796699360582244294100098997017561714269602800166113261810138124750144647462642303021062182616855442240116505160839146158811109476764449860083800335161302489718348513098993507693637168730772295691309020572212767560751419596204648772190438131015661081483220251574540299330747887832913752627772394992151825357225018090272520034954413572868382710564264112560380329083029652364492323735079419472320222419192894443066563507730019800056571524004229607964968120739768290287991637418396544050692243659393691839683156187367684725701114391342438351154540668486495497633507065671437695131732273937706830305608095125029174736426352126268306789846237192954143267910307577565548363545150713105706012906399135176069928756953000034839038118268161432659477395614844618142852435843834983790755097179674264370092127721888057813142155070247495162938552994982242715180196491349795071048496012076707949599836756813651496196800927992549255559202920453731555936976901275169456627168144673981755087700664479646891571735577105760475722008521575487924703137377620152028069377789436213213349164220361232396588929902784886983912839011545123546773466965041764685149120990016024040932420716855089362477857135794730059114442885546516862751255703243563741447128377809154988646156351680404932923282469902930249774087621484752897082521513387272170648359888144324477440907000307985810574835963865936307458374450829143578229274641440960703898851155179719264012534968686591900147270485787517230141995418619145311302212936321288325377058600083398544638156485249279582498692690346676651786954600460772727548251429537127889261241100108886797321834221407517871160760612809553387325387765652763378951488731539357439511891819992451262804795072912720807990030405255549067952627560831996639243643362759584448707738558814910189797554498472416007742110632576504028490013352804180969976347595943238850856713436169749861021454300293756580205517143045633016769866053302515483137304870924718753261386333656327256905163763563066464782031795553961705295736341818432684623027127181666732377370187561858751327432150890452804624615035119841523026122269139599852511315034229629400136037675730000937541639249389566353565658753851296267673586744466963373340197083297310090219226904154689050634724964592096081953762923206841047036375196122034321693366344980128424016464825187789612738042224906307714858328302224420943171843733472902653446485416853413553209221576156942261421651859058398632462287773683487891481305271281721157100584072678061658104892285714899739767820194126022647177344615473710043015859141712519838634692008910783883229166191810282024421680383271727692857273206733804589240511270903931565581926986050391721390920849393063343575513870111820132172608438261250413305700161017997820427968894365513881788199710966932799942130009533513663733737566672458388473889624303531706926928994179656353452300992410364109107982540396065541851883159235912926693181173891252018039131339985714885264985100375382150909353438197364444840354040683327263232508631076159119921357697764606138452045395827150403500003565370303230598297918608408433691020584156071729284897738805924667926267739987575957884328684391391571627415230016265823610307509937844931012220168340338608834940994375430437207762133990930613382325298325898122364271797794333889690228679306780481285087974402873434406600088395755681207409991433923177149462325449750813529235081037348263685505301959152719611726893517749508592981707718522714075812891662180385434513870266304597368548682000949807306519021638043337419816376727824119905910337487804750039978250157451283169882431795277833636908076795930257444267953875444906039765783549896892309097799300537649733871404153465238121550951174802253578198107831559949221845834932252948193668783259843279945302126690396458875441324546907427566542655479058382038814336669417036647959117587787959921302709784359769791259583173185244773825063165765074401417122777755922817809361329349487439713903883328484711877823984049888041726113661411479905129823896282475256176195725040268180073810462958253828457260587545107029821768105113869899454711308282433216275932929887967739098466063583580722005434166301619751565228494754509337240383173390171365777161390043505153710755264787105375764053181165791738747371567110097612175993763671064966774866224530978547297798963137300257281326220816437045786283509274655337642136697007748669250061911048703862372790088365945841440984858138302736632412032162790049045848346382763804249901240902109770296460842117700877554647836851856127819830416247216238613163270049854820538895897790913917948472531816810622125396959571517240283312371640308387110455566795278295122707026230981384505765609431932954087599683960763581461485935732713181693806734814621957578883469967055341276788288103712890945832443279437459066880075282959163632371522796665562226533647742232819651206943537585270200248641617284788862963606757142867236771601932792424966850954438993626621780254844653555299051528764009857186527906248448738105306716839252203325604827656905372987882325537579743225094179023390668908167546516674223279895146775639002818684084296813931778187124804644850578106834700839232743571011312208885192803700455982703036044499322439126562146907029773048096730510957235740413377920842409787349396754784219548372099768582302377932040205955274498779790960935829021186724785220834742912398257107794242294064107976586123018309561788373277347755342411004546194188025825669014609851433992591562877122422809470291521541991516311491267589093761200432786161011813447282743871942566560799092790366391165166546279801588828142788431066060687383587098904866011314351948762191927611697253415564546765833197909448536208536666392307825874467878877152968601639392203629716114762072621926758657497288549254195315807011456375389527764637887224041479047477630585951159595649838750566598910272022896786696694419749696633480939889297401872608037621965911278347497075679557891389205675501576194629185153484211498627452385979558577878418819485921833311887016905350996313871719232556887658363651958634334691954261084139817466076091192232292978423941716294322077100353500832780197287277216922621976614325585272220766615602637201569896566683942931193505680984876828614160932968263241171117430618130552920517749077614735422072061340339110941720723914189302408654229558671152789582306082975947298835693703260197639373018728534737439987077739481231598976327319514035251785855818440830826698658999916815192922086912004902084650926276522217726710124533745423328676306680691993758002662933525029977835307118407043241775154294632193370463599665079099028119338969517743952113203789779631237323439024211708438228267561056501139218110817180371655478853590333110476065124132992448474980194981114780009817615339017799754001255077158494618895318548313275417038809353042817620921102945055483873475229933456603274811435265538391594063077855180619318600732879416322994481347365143582949255228982844185963403338281752512186380364200004258126264201719102297197467519536525683320586257738367791454408679692103440533169410366729548860072702876392874414200898476660534270056648918699283954441109725083560149352994737210245572102922900415326474697786194972977495716243498600735069846195399946895156691559837672299794329787308286198422253916348476050987382668660747165005547766806762114003357974918360581904529139427989763153959752269462701811654887213874697690829919561566537178426155600716807772246618377016497828486075655424000651157589038981751376434311418640246514724232023056651501237275329267571436828301894659173885894213238289308161863243257741715583680944956757522269257180202713087031182108334286145910388054734695543868921359916322710859167292419206431874793237134211150358799370220101495955472578039319188948990658999428552479634843943042955895414873637801921632596846217916393026903817414448348589040483673793893457341141601356742875153179494334693304440913542208616455881411369379394958345922578665549340213468190748821474750037964406108404682564405966258579020448505004593282233856845005527945491592303354703099413246478967854505444284684059728635529587146770994940913798425603933402776644689690919645459771844147101339821811251639894977590414240905167433041432076422514343764726272001187198921488511782790805420178355539824691482764695015489239834910680749937583985558650982041361008927812877438936026347356439987548708905853666220054992961861066025000312292922434044143670629811575643801393883266423934254637143868244901432519203936726509349314735921747771917440144504561422060719814846001531391473206289963541918079428959451013018491371544115007663532687023516712719556706552480942801859617402676188010879695999355737196358258834517598822608401111150777690222548326334147731557981101197380155838061707747403727046760581989951294834251658514670477407387820370373615385903714654233543978286116271320032564587980543147962512250435789832000919300435912101977087382311755084358611444686665976647732808834483445076086356748358453002083719759939329813002817346650966716319941052479470371837925316333426935163184205329970302430177379281723495860522253029622541874323421004184457291649711871421387491893819957736199317729093509334323543498766206929191617502522040168492931799077897534671361219798114801264279722762863755525734668944463763854151067229566359915451618315061096344563715286730388542681536918359285170822636816548289992752459802028973494938431051789083627124523424543151850666268920176144259294813430991088884912447875580387646371131790044799963053955622070721553980365569915094056270400417747875803593489238465758027372550901726811961290934313984184135006278069381404961771468420034058538725663163434542941492446958522566591628159759435012768030092046676968074457279244073761985331903508003582007244026046832522840137428629423355726499591821980276963436644775082442215075642113285720209044927399469960187713140055492466344167705409313072768343488756235163631062006834606001197123581757726635963733261685231991116679454934532347638350222500434824453417864118411384617381853782295196200037214557591311843507655520045365978391461926363756953843782865213792349087396725844198116713151220879073051277651320609657945413957336822387937045093236630774283946570139617161985042659413639251868640819391166800462690489323611288680210061379279416688669364151298889849478541006590644156043166133365314716348685162570589283873736935853096043873077103036781898850205485393830234782102862025184179261987494202541030234671470715694196935730722303524605739714039918764092979760183310743447865195915423976780080749292220631577387290898228260272712366859970686655694610361063545551387358941219194732802373106621785737438460159580680663041752309982192871678399465373891918394100110055243860094567587577840394674913674985583602491255603169502048726962562270119425361854985178976926223011789589504220060864079942442770242306288424625410865152932840035032294627731076402387597149679522025958755286303844481422739622444242893837767217290013294945737926897598669161920280118621116119841236806235786339405548933252336279914461409294439211963765985492312715996260236754560276706122618404963151251250720200903827836425120519101502803422277603624653469895871079658528042238008889238148239378614400764661351605244755870386297445509121058534872219771703260534582604963662782115026575099166351980568097918411229967053875322019092052049572337564193846939521004489921439806124026173557244659863125375977145111226455521692205685963609989967974671413566126619129418975073035258798095322476895984546309198849413348100828621779902032627218832903674010529394575540661194136114195282447238836838695386825507120153382611311365549190319774003129221459702024185700285989075263489230538414542024636105293437397218660120395777160843327674516935231270038596378262928592470785985546279152099820036183255655251910990212541437033135862034733519291055654998267562106702926667470825214998170719742094186357695976855119182624374823264223972261430360971912319272915072229777086565787671942078652187970755517392274552998183857250257198945872703059783294816229662656923320350193790968569501067844412123717432425984359093701343929924451180201396151669314191327160988770899863058423954996415362812442405645289989822157419991448110881269472414651763526564335150960796787697952786534568109429357821316956405790898330792244350983438874262214077570179958062015840894295413624368316980077153355236091639354362423595592709025921657556668759889044529830115143775960929381959032039076263912615738289330695654757704502605752236849767477470903564307701269896389697188856626249013250908064835593460180281449986965182775644437332780227149569715642669153044603499820397822215281260961527701102208061974321108081633355767484585597301005828447957533913307059915519966788369685952991357683249684355813418737154217332546379175022596285596613597883738673816543762044371074604050306511782415836604572293319772300485535946697073136214499002854530989014311235424941420670511723540775352233251774361326942420702641107077913402036914709747632487082856127225147462059051955239892188093313479405295391152513523964063477398532317517705242765085720564361876806986481494885491092866929200616921943595515680924932321911229535916350273047977236183128429231894990629657335605593854386528222551586463950525441961087776672076983422684355987782072936490688122705087858978985217491046839454129502251514281941088400273190214045867959900290251921430732068205149947192878492968514217804554733898357951185265757477527755991916205395814185323456910657533327072458519642649251701712973411041275695597332664878062462115186410113022243480508382518794747328233090767971960851382405572772137432599531142716045730536127560807931282006218380701936349494084016201928238531543079663640805724158348179400357293514142651693714617796222301677750708977122189799073532146426963542722701006846585748661486406285105932314440103333216590150797810339887045254522616388478504178430245598908854283781302962109543302484185566847369548520309058116761081255276140273623145872803284968676948647572245478897767581258801997610047143876752699486337716756715804444965507896355013142262250385903688674300345286362315416408094050807018149484289882974522081010415292758769861006010736519520616889047172656442236545840267647153059972579404779945726459284741579988328463497734338220220412058908113409937244474391250739706265941826599308752330938618881834826208377606907978739424950457354372962433941895176713146572117382055449468624238782863695931396460588088346544875901688231457054519648891748253234432669079677077947233654830631778727572331410993890955227765894475067330140853499554763785711776078170210116146785532294478622819745242946855622206021324074274705940446439383203909362354703258847292831077385145411038307782066287227175567328298244955865794688414221848483762464772799721332608363651700862116861036252333515531697761345987155566011028211481772460943656745464889137916812306861722342187686416626142745310712099872571018942654345576473404523401964927711498596840341156424135287887128760873922448721712142901705878508673225859881821825963830865027871549751954724488770358145610682178348834438088871624407578888305386856596545837240539296611495772809757835017694737653529105238017919652638901308056235179470322912600102735212812320676189489158547151672134834350372357318007717479283574060549029169646873825129421848689172098951149983763563437840057682587629178378794758924546705598451967585110010723704033330895588301574329306046788189367923855773406792683093783204138614056353625530952585211004786017321175328030665344750858067170266425259240031706806337705221030546863189393809370542319321223914975260803615226033044619692480246896005075651894044156808729407756614697309851218846409005583786913448794951219201518901315785722065653316064363534088522059379057666202391517735172300504872970688744867592633201903606668332920191507275400818875763839314339252115363621900862879629202581235363050317861139975234046411474421091634109210374599937790747745572193421170935904887274232672282955528569783598241738828070759264830892701913145442841741326533730826297105446940109883926743504051246850105602567690432835267842233691567213465160471133408578464420929432299918505627871087412650684879853406197193990993891737213425980636643011039206622556847912871596542719833535724388097265250422855544345661471373549004554618716645543974392567072895060182958899297795660804779804566353765275619174006658494031709996059651761971352125858526973354488411975595424656393133566741347770690269809473094007140480890911388086439115316346728901310939179554230708586795294444450390841469840546122431524243119067330008534776015821704578424961605717351907130144314303779141868322185847265594666389440365246330264411842586931858282091417376722175301800960581177252122290062558477290258294313272928368158769280032743640350012192755734604674099601076513066695600317582208885271764153697876039371197063611674496520189930536005120379052212774185076749004762040362092063913298690908931391813877395413538007602554568562678752785553317984597001642147101400919732435143756128864417079465492350783338763002656721380792951802750428574011337583672715118379495286841759451474462402609557934024513962371297767448403032440354310041699757205275879115743485337108666013483339705027615916802263289707323662325548502873892948477873879828443106491177821611966036425537173975125232339800730467946896045517205339836366295990867568199904155070185690494482408828071509951206179528916757066790884119081486560399685814156264254937842066452658788408164019946220467750515424012029738735977669316492280971393387597968335275975609115100355813698156740967402912980442128000786357338006556456576723740721369124793826500288061405806893553377923055020468274705662627641673283621284820368561062968405455370149174781779989004073503610540651686803751719299866249467613463106742335350457637123046372012340778354925938197488113889664839007618605301261142817572782785655542620010092698770388095912771053380961847579805179106142015438490473733526381230733874558141647206388517395048170622274576541412800857924709682645361202472279270438020403680006494699522274516620069761753007210117546216324673137239246498618774027633745430198642704541896651317333905355710750337704424791096985041020550992200978551730258547315616687033871500625296004733148846365691391630284616238753040110679654295665898855759316033768931870378730240898856877387185330071616502004284452038927019066525035782972270510100073810393234432431823468724548152390356687882746956946068290823295650891903403911589934938189003895560869434419767239414624647000965891361532745469125459784553081253640428554567252761091800507802112422062175693334774680322033631625024517404741982062769100092617341062578500604432755538942399425692156747931584572030788902332859741120832313587637583629321221467669831519279465756218341947471870868257204921200886927442783845767107410813345316069361535123226434606798412743944290250154067792582497990778265934536104766766671111107568862996417424589864153748267693836873212458316063076808541091303253560957663370166959394374245951814848455345786180200958956019777459720784968784535616426498084961774600829898076292417951997863696709809300906873018268309698629052246400692332561436995986951482133453660671782418683726996886650712921935419247785531143962120451398284789255854291394586337796098364681729277217241471991829061835839579427353286178019886895153178908681068463601770470629385590785580745139671536705885005599205995708634942315503183400184724467818094041345151702828646112404163734605383888260827104435268760235020296576413122393702768539691362202173340425662495233748010541327795691790829434110376372992052340117185830078486318563272232049937750545858789842733550737312753934506677191396807243270530497803254648059991793806105184459540562147368768005398816905197311234398420022569874067211154941358761043009494101035412519277765704033195529266705065944194018121832665174497590742034660397015188606329306353399865695407599007161047969485429148813741170429033246923091009768957316673739588191072451837455551041411698985169778689278427591545400950464529043191115855858530601407587370897456418776274809176864878443226396326104644793304471839581930468540840504591545485860354441897600324634651701092651291254428835011264504259664719588218789153083783491865421775427267729243188914730894821360592573321872501595145711814873831206027373823192201553533620714980519791140533200796865169335045727098478037795374975694316456441203779004284900974451931048106586200171759419045126355224981204777968827176922608596080988849664172307344663292929597442703400713213899636620717197451246140171793817104317562085113991429858497334188462208521056545357691350873496059257018884056720951250085368573644471113842166140429262269281232458182321945607444946143626541947013710232270171894827242502007869657670711178981176208577481829861846458838811075342753139374570787367401296445106517840937969635719668287160103528823371837084144629091429439039290502889238892272668044286393858075018605361056706628262817976231486582493096128783724433380294087692977860848780680689688581778812233880757567143911711603686023536326814144515739336460070957933030873625228710231724927065617369317409050487153359150312245573742019292672409051577184932044862371496612013432832231882457905087884226316705949781664012287022029171216575668277623766935901371486972064938110890878517806446635533592707486334986811075270136456429964269957600594874093641086946847017683658523158166326837686081098338138858852807265542033712422105404829042144101833942940753015686584235842859682202277727645768302855437017338005441327427144909691283676173566484602150190262931058021222108942846971868036198693591787540280615579347231676168950495414047624462802957639683556430839372409658603191897846354768452624175491358186170725169282664001246762354465300600913532249516351580444034832290867141143078513290786029886895206748142203693965377033762355603661417127388678855563754488181828295048271817040474464556556612711033823624720941315067061213239819369188641937402652076215957508394853897005735303196431261010136198627582331034227328803347821508758056006105103034279202435352263213712027501240122545897040465269288235701736453078021241418729929288878194521732635790739861432086032389767772467363962482772383485319614102679459083070468278225645632227557379655928977537790087140606662862928411601932368279245767043979726174880501092985643013520383377087737051073779358848782881059721997548021839792962236804347796000065626938023123064108376168365031102962822811975345863882852270088898363472782794368612230566715385228119268582995220653265669134906673487840982815619797042234619313698184789109406456932036650426452892304990235008257991297383069505996661471954200463572678050827099290950713552261951569558808458009330076797086346180072626349803983510506020486763604994577296910750108911851781440141946312862686002422926878539036102844645266558466827683590426395164287517780004339625748324147408790410200334008435180421965670537325536802038530197010847196698300154929247588193091791900196978518159842417319866147531183055907653688862791954406377780724218884959839505500541919873592670695274028223885576829888023440967704505110854141459109377523101600103588370682603144183636184358451720278705269584407129111992631389289351758924168507081878735713483716785091806277193183668620398163998380979159812106306043233200987021717725015176315427492449515167187693471635960948233357399055677955381961470357823406909439310088744472064918572536347002785858119596154568973752910312047148164105840614587194218660521293878190394412723354651642130907747401578474023940626020151404331715351417166216847318227611175975965868989270523330756954847368256510557970865859592269171124573191670673555423786651850256701742516097314621691137077332308775754737628622341368347202568406628044227889962757578960112384601187360752554730486162619145072630855734769190513836121007456939023374498194668231413182865023817436774583990693679747969955379526799776991963246093890157967052143734619345747579581779075201582416386512059167186435049973210047824491240592814840061901660942112686002540988468593397583005684005290065814576873868278019588130867514958098895003279773233635766977400398363360555183328950791472777828924594839384321955244074154260364375640453638731533424325913747407468596429535232283101687345851421174573376563746632904572781173492628290162060647971084279527629442492356490553946671613794137403430102070831583573882425105399569732614630538021468279062670501135328570458315318217636171591915474083927013454571073853479771476310726171154101010327582792442091234461092485012015205808885399857103312510262482289560541881300943666000168200274967433219931270360221906556888051514320671095311100381303900068248129812882846393381597046550438157685719541857516481031917952756421130020503358488652749290282215340714760879720727833780527347554474543391983736823504639334017407631333385399462423213641091449082699552632788706648410758665863607768041453519242190152019047220929915090281136916422715659255393376042992999967534078200063957910616132944756762136343343197325689371347475654291122053330173225385341648074386189848000611928469424327172478876176383859104914146150934776987381059410058705088323607758999665542484270639118468231490451686372297007186296988970875660857591226326886590256136161933055964730474916448719304002722742956279005532792822500306522426179936682003833328220692679483493453606850701996027029869044935159688765559470000824132431373755555231074484140844708915903905848494925540877053087287880532661876413465700153463093427157615962889012133492648977889086400883952181238445673683570333650687064449805595755945087937971930703772951845401926390132731543218953920660092657147730924795221059490229615179994028958162311567349007252934007862269760143650628858934628933363111407452145652628999318613983934482657904441862180587408553367927778524609165862229837363043691467822062644182367127271949631808723672715881927448288242791166376802673047729571325276241552189915704916004275365614225129608930594463935934794092741536628426931304346509852461306891453413822848630646279514484652981586323044841699978273871433394108063705607820043390724952473276705653796781587855875943387951228698104125008113690601613619575779998283624072771669623513987532689664910500485847850646098108778075677872780735309391730165009549261055576974631104091749932662618467955940933579998447106679349484251936770207883248151384224574331368933236555582435243363378887559306559187063864815399109048129036042092077918960982647025294529033676075374035568157036381195377998573542387141116964223486547687234966100164370660376371018923073335827278532271960063359617055160525595580615568593758226290061254084399371932709826038063024176637097964896565579148991970462250834576088792098669326009401753147281799841903184051802503656243055685430916893056679719159060693310434378421063625523953404047513108547595320761412035093203394031524878607582680142204442564668644347553614091073710421305636575197999789155268597352780253908743897212265248942839419465436513742703800564115439497269663091846116741889087025651215419238449117272429779858585076083085002003991518138367396769054291653277279050328021236003186269183255073182306384721120449009240860593238485704902244064005627328387115479249501410127238859405152145179434207600306822411365664252669735531868889354499464740224872903838918179918947655677901155207513660348404665564397443371064681153385061808952178517566831714667992139042096103704236124053067764868392433983632295019626864936476339004755816103551581711981903802178411377277297388414427692408549796061775977879651747658314095449694516584403857346607017042483358798426079981279154719363494873597421929935640843478017980040367642410359814571808680780950705957210867469417570234406351671343703608805517976315349093554361787762976603253244549940806690368118401483324764346785402413294320054509058827036879366500704476187895147445300827186989870234985393011007206586455409716720540426351874074850402248642529094075564422063447453506970008956478418752149862681548428352353972906013428344064614775246564508160113754695565432172265251776780564062092260076707540811631810884154316397738698487528444426320651493365298811104839833392557860736390990736396283336205206056185177185927338773705735958428760529889419398898433412537665046446721394349640309510899607660217430438188764313103923962984508459860030339705877894502238059352786861899282436513025962363302089377745905543204159430968931542046477291073949537117063880417070696316595200595475758629763688057406728154589943833763143846293845722858614388482352061849455718311477902577768222860506502211952879606144910335995138913241878529637761280171917153300967156382086111002615240116411320761242805437869267800670528297810284391723272026659047420494130982208800920896423396759033132028953558865959787411466082126222663883961841553616884481951268508228254978921812488474809573376106223461695880107768768553390964144216514474894448642081005016125135138426246665731522569058984920891223055244250454777732373956254689815224500152793172101885380272861987123106373540192944774715961289515303273061154631178620392643257305667657775377352992585220591148998403281427421099628060997320385029505812410481332947972659290342948322389604113483153302148886696224316766771792665699770610579236918421581239269580110678292966011407716166774726107584210861941276851039265776403640751775343831212641670329200428938916071601885694483665626358677559479648551122921155789204518756927940091999682916652905591648878146467795437828701626478166855669336179614624207323774516421408469140152940919611762013298388275773302799248405789180318360177768234182073994317111409758012367488827927015113263497690531941058074479514337213243208163237024667409800644753356783675080114426659272136354162196901647744190512497749821190074951516301572779465260431986077196376849545255774920278466938657425845301382737154303532156545183585333057190848176493509583196047719885525669732048035281067818043656216710536703936833201557958745443938111046750030568637689714217024652039748534176660675693279799259885625341443864073817641499999271468492051134596634688839182891142677712684702288204832155702328950310303620102661122338715255808296606054414569505966441581490821664960398508836920458016571712999419182967797075160498658265782361484543734093695355606349610427562503980376420611106873713821378297890635381140624194559144145955132588076182713344539530456334946577460020059829219507283982514813318378049334712161379421451198452263584476860209437606683073875760946440200523167782079863530101561927791874177831267852144925870244693598850128571263586256617407901071280570690411785884106009959727486614829783444384526563794989426787638917714352602261994630620094765810104550985035025952122232889128848861060820697222813276297495767340329556379867964497318037204593306337724049535622402356601586791664796569938391522437233306294711344937804715532285149559902837213887480820918741946215703723012490261975264658964511543840507689646571451074197888648077972285126286574323401750505369777824149136351050871700877747413662713517763098654055545065668881101594956974661312872282683785478900186027520061463548443526609553073691601757293079047801042943115641777445488254417197317577535462153402472356871957249092121264589146040446694546310989175602342114702636749807753219582394123044335613955441102461222634031703806943219953875875667918802766638031033825907825597544383643292461728753507758325657787534253068725522848011506391094760123826119190795938207245371845752300920347433409275850034279789332545677572920821811738398298202996493572403971521234930010779346185756772116544797327576778506276723918630969381200983248369181274864749844562585756549191349185818812414425502898492409751782521085030932298939048251225054332670593475616291352250677946026330974252953855166191619368594669500761203128921786067636475538959232462523477032134904036129402300985322571254514446767040530073397846667824704699122046567108351533087214887791599519709175556094489651426821962978468824966109510188544086777102537648790953440088938712304447651561332200699811722154753977028441741259886030641097446030604772292218226554734082028041745725845681471645323859574414234121713526268433067993422062910811961808541396044498331647807136501957944714002749458268911115161840586999823191971357967864795602147112380368676878661584983242697370658130812381454561280376144786213171054514275764414188234547697210831802154445542175017706092131574890121449566918467687712098979878984115178662404806910995486129876732153557632855175334273836741739520644685214413424553049872268525445009882000154817542914721568515113122256573107857171873302661730623493916067468956072220130026693103464256778911912001304676394648028429949162780349152600962896727283368858091035630910929016649030403041495527999824184452921930730380312548129034673909257490557777764718959631131090512317827462087559428111299865632549925533583531391203451525991861740442648949221933594752112072134977861139684765650179966341571079237295416713123512592662994365123646693723337510144972151018862933614793817213557054784204894747045365394071749589414774617749061883477081185445336795876014038875937328388246734021225440227357454520208641228790998407214941015313459341553173260404554410134801698688738545348949636980904109373792158461001650889569559238471347919145182958919707648566257535482195894409408471777093486796568694834293094429038127637261558610989326246899409134373862940714814041693653704023652136404886185613039170046654684659522807955000198941478051133758976717692844863773179031322478723996328563443492972052196904623902820012915409435715714095680744921993133477187472932925469146540160264356987267525610360320515655074439539314804679239441023168527442190437660813489409119342682077246270891868630987037194706885673789472086144596913479209056916181306205772568898824305254673069639317572870873254942820917004245969132140140010287829811100209737698256865051365730146366050908259508395043501435629282673012208679912123770904686180723941460594033475765249217296462890856078003268252136372630294496283857787365759866830981749071660503434126295012689114482231915733252246594564515072163728229444537182101806175905912622532312964532736244853130378996890002027014510701368629096401417339972059489836378820308451022882924330709271871498783353752519238790944054087937871107388130659044979617761704496959358821661364423636911229599479964852166204383180324140541626572121327585032587625719625256487615853196718018267861347454466616507533629229514172751566044858680309422826438249456317867250933266156144024288447997016313605740138412985377349054003778168670731704045539640359966368451051984555746496901241139303297328965461687875813558027736462795881469423129357350840647936888140400103901743339291970263194001993884269939748925077793028258110857609480768977928433329188000086823302866834571201396728911661747749085149271738924287947494058607556991414139299711397926034750932830383417140315542454599587792023509244306932812860427255145311915359221221488194228610219257215628449737923578722981202242840696429410706025172707694423841988195192371198739910126676199506012430415159115337042286610239261254643742335146552384624183010583448420268519466165911757936679905544674015159807746750922940912906432804462154177079000048956084489277780725725281322130246095519322692312872976745265362603462557331558443066694603153683213866586216506038741645956808906837613545828618588650920236766117060322864384867449551141086398166473909232823356212460348702764094223561657892142184437563355984886541925721235452126335073850818924965286776597682899070081354160497742562306369938939193581602099332167114683856327249845672195301884156190805974310877665378486422625135224820138454191650020226687336372249482581061010779913403351781623257044182526041937727579011304136413330952196551191516109311245515392980435117772389785131072616054672744108488555459622808125602452059956242836747794812830072119123094630222849419679074870889964038806663250888902249627961245472029061937960837025309948897888539958443762010696349913840952051819831024724458692940272928202714244192391582879009963683246521916997452710785136516120087388020709073467563355651168224694926296043654072167678593997541488918974928873687176857506560025415017807284520070343356445458806486916544309625843522639522789973159888700034993435566515661147496136606537129268056772231626850480654646048946108963139686614254572462081349393597734029813411291369869377826311675288204487080161752252690695864845820721859085914410035113273420404458790702992180646482075517151300730512060119541243622291116519255494974411855665621765788347314238964318659813621804729718449540449344115917624910166064632317141808821395203590664294161397481889668991729863130883672187624430336789792345182101627334955847405879873649561874913945422429526072847301637897957401397924736202116866460238162934084465624950754574459540586555221350377963188813015087665688003750017406650469115385361289857641519886537809453737714148889777018175983071546120605643036350876271635884529967716534593162262483402981340926811744947786563099819928924520898326849699204107917082451486714987461809216380455336974849179392400640454899029534367280700305168166151170484781453024916707407607758004518225202328186952596404025148696384855693592210235263915486373794629529329851501216776001876328451323044570295366784731928096374113626898155190519164842346660777459811351772147894947533911121357552828342337129712902082626205749638770101462269837062469901199766599357697302727643171209207950295585116624122404098485959366919209845192630760474919905568123450516123730966578294837771943969970161512695097592276745908995163095465783024955158016152221694327525936662329868187007773371962202864379396051473740179315446454853978092015540639730041788738770111664679420659275094364518494751266528759193715111969243273366052650906541781907854549322311876872729693670735618661107613332334581949363740245950190998125527411191824068564268800494524913873810072888523404731764669256655485612446497197170552669740848547481163594577073282660493809546725857849212568684843186414090297303749582987107119167839777414794484733994511397286094861877934042904423235770656310617357891482528697604460914408814648215675236080853719194546427253813896132276643477026122823258055866808952084005096492173150167302460053931175414836076379151159245853379693295022246690534018064469033071630016049418064942165274365661823819917479725240241854715766792738017442004263398417592739426544130933555438513549762428483278891052772706637889022746645217313506822635073039637783668535997868976910002478539715564002840487870528707688621988523358903982753859097193028334984857872210963846221854708032988694733229256658193661297511869183936989990594885737225924016091703692824503477664531382323450345722902119562867666174084560275770054989969701227998734830829171256538613624325050088296104078413814906009210356179766959342482367503081384780871285866987460344649063932876712751492250710485166567491608072239012955713285519249526282645720301653571687322955243698428484114403253178775385769100620925511416184494851758099257553665731902742044773019452594389771863997690899829178355472884463022235242965120466981010295025512390338291192036083403415794347650743676637553266633100809124569571894924536846361205687559828905023352797462973348419792389427971108552620767535953961696339288283643305862135211887701883304290047348937636471310038131910850099286274969064298838127261569407860087458927785207038969093041449950641001331510695052883923879622530455435318060450595964583862096071932593846144463835450419918068039972437426088116180254060104353787114535005882655973701722445869093319468186504144653475147999835232407798964121306720575926403155495369525924923392406290999861183037883709850342163992302998326962656708915096257874339405450786480150968574650761100545559001040239951140456645563096942453440994256763384531641171151162248458841695588874248724384087725797740977401798765549467244332465069403826613936845851477915168883462447565305302873619293631773108209800018211615679738726719790404641989898880353829153226586509671047051070318716670999329248218044615311210171971381633727354894903390625408401494957537888861841853797420070800816285246420833790602791921825485774490193776614443288183188180155466506069075469556075714957623638718303885029244338657257237907187163693367619957947600378842470473805282893907977973120041705053446444054429084429119863956655637763375470640831284005066634727458066848718604969673384189491100575881875879058100454080294279429109489957405533661493785737321777626219379662236170467290113686699467273420961905938992912497031893865492103687255854672359576654129132109358319443709751324912078723849442988029337706561357446411891545809393154468823429476767688047783810111913789246542645709470255007033990282168100675625428404877508022805900467582632824934474520826148712825007169729652247866803817514460432880487300568897262260389477864932979329523176258896822555704849519685400390160792161424339108616443314233429736534785555574605816252839527903881506578445472747435301855085152337629118679749946740602716002020817663147198773355320749125202878683874666259478480778309287941872098224443367657017448507886086296331179575249954649342957641668708787827293063762527350954820883879582417300314574891504813513857969861827794581462700537602163409007613242998457439009598002939238870995198105612536039296909307851426818433767656478080150237958462234088893361063209838876208444623997425866294249496533183616550636986377239490041102374584722053682732757039943278832630174705626123694181277484522764656432378077039643591782663300047796689772084096748362302778243021713535443923897873512760537923586766812906447626581513702482694592818871704008638649618205763442931476685119816367026272969812991064906623864844014635344024515021488848477898085586722106043813927844224871548788570283301326108137756893607400501022697030378355092906148882511256532843207220036159211000942651428838789329847308053616443995686907146671014104700477810441079779143574061934214167044968970504889238723020071111176220113401436149627169235950044694620770671641701894885291551436252086015100103575233345008054844275693446881322117110254118890350670993465952660352730122716645070530402252912960608965786036550509175385704946424161170955388012376985950130244368088524934057306000018583515860137763235367650225396503883524474531602972312335128138391817978993652793349542125169472822877933888977529091365743338939535583414387650520990588247523919397246986807396226416853596149954363962169508672482047489538736347275076211443080106535550393985777170600556450381797550999586625340535976053720854760211853645630647277358592563813526508552651771014181356735217271594848959173343673559160356711328490094389689806273141752814312223026754688615347802197599855119999508571971386914777714809384274329358532030118240770251907899567126965704627103152238085187830058015254083532329229905279142622230680451694692031901759736377523797183142385440638238695421312154540266282815294547056647644183443472549285067267862084293783342573369433500872300778101479343389449469388859275876330556643258188788808150391646783985453812196071032124239276053912572820880052803918806890096980386257992774843991295712711134341939243841247677101009060423885861781307716166505889193456199843652005190466907148815234745924244506451434391496622798286049083733113092306922862368778485399582684135305633760748858258899096065591011935294112405070436866818554666301023167738141034756542283576164425372813825194742321661710443515912345331386408679264451071640590762703049165696829488726516980833075736586592951561192257686891002176703586019946865740979390042640628580923050453708666293305485974467079926706689068680488970605471265595507837836391856897634902443876540549570552830167038324823712700724128212385828797258743341307547623510483128184792719258491791925422946009663617976236542985560914199563417060929129442050560699542857784285247178136373688594936147363626942985375252701141770995262202655071838604634085064795521140013887600010559886172614630353270500870970026914492931318619956115641844948783613479141653014034391443683410608872111299506575935589221731768119622875210444163993378218161586675548912210068164742660308113541379585757949993157897674989214774904068704706369781609565300964969362459649543421335973564643364036234370455798637044934299328168317463556118577483866382418272141432032384001030306131841953058789971139290039234278170972628267056191028254307008169163269152756895238346918832619285350991917721668667071333880957120647384966748368737800553429204388403302874204834509130984793400414882321817748342343352243951472537613960817610071332965000604514100847132511105274853659625356290162969674628078324470778277674528250728537968821543457366405078207402305019997109384458477151147186723411907891640681931316013266287970964451884339526699425645735443426919750180113965985958452563407937314999687211415514654427690736018558312868105946576320874902404378915270582343054808222042560737833788582086369521150309940898989441568065368521602899218985882513506284292169121933309953480045649689063709908657460880687851133152061209991388918698559840993599564983076291093499899422170893483759156372378491437192459721039231527514570366768673820578853862751468160940611172052120631938131311002935251769018794420788600986515348654475839784782896460125975051847244572494380894643463113539386655732760196497411055152554254589465925307442657521025283703289430890414526550410204424688084001910099429271911133947987574191942912198250889369150518772333259450650821510051900588263440072395849400734298533559485315504671276656822890619500634169464002775847418568730750773905335597392194143080260668464916774453362167194959823454349227496067880336711283530407281166465701988885562927906050128915304983294339099040720127560401649528127792831431735206556673688833748004893082663456529431818959540021044808106937467089915396970954663690017919165827005526130851547328328383896889363145038392864179957630415976601118527597834094735885118360952831560860466811010831588140450057552333083228059483915827893370058845071593499637985604625918867409901560816709045205858004023879966104597678330247903156547618213312402581444487872780941913901003958665024481607257921619884314149129729125295343515505183751053979923179021804005889743827444410662073007765186861881197806977282690398396692674577125755242909113367083539432099277889338656427534237495697197031958588196571308847211207288048072102967705011351510317934571003975203028139652176588777764673487000838070558005200878130295124652916041738847333052822981583158172281561833929767992184248996577127013476093879799606186230182004171622969565698161911467063027390480122697372238116318079243133941636479750970090639764679217426314787917481664489468779979898734646836782273389932611844056706324156762081756670867848744358124521432863354538024982963084463679980326918894759436250861271216503901756184477033323071515471425505341825612468640684036999520640751216450916395401949355853291522380006851396410995685346735313945129780152111807507857719610908705887588902570604436825839385124254684719604311584752483372311423187574578374667863455847744102410440707856826609578285713637859427019820632526059772962629853525117745390431046201319031336738493795634703687997450195712241931578550227313462894512838234323199656278751567948946561504422705451620732363117476015021667780662176221614455391989647014779564178287667872822418389960918698661277097027040356132362894901857410390771124683381123141803208914527414352257424555086903831075159708471333377524322530553794929005966185696760850339976515366058407865539952198720230321395869863577191761095120767677040723856100112324304643036213516647377918854333437109455651680520483952148517463327801790813236281543322220885266997190387830764124611893505509696245139803428657655340406418913444233355070487993161549869882257308686094102030961037242205534922102519032289971646877633914567711646299363867973858241839266839177156961737470060697994885926108839514343908581073614132056318642312883173549640309979285552736777049534383615110898909484148974240344534818126691009560976730127880721181479054105633165088796700453451033015628742738754526950798560939545860880714901356444566756736709184385679378783457484464192270211979647925353639065987356048367495353207765675141371705472285270350076917393041792038568244647598456738568826979590187773477418981986217734100074692867998275162214882020739157326846859459779860133910000193419082144764912544375981178398930783539477364088467600601109507201914810266866920447188007492318890717340365560976255931108815200492052400593852858165090474514199396694497846970163980509350620535810865251233506365883501300135212024027720075794729754094357615165377768340531355973040098088228872761678145543764370097181285776532237583459076986691919792403957984066021375142193493563301816626669263201602174849091045778669470375428045505733172334914046297107948280566940353150921837904156961907242208271491061262795830095204841940109819182666659692123007777264202516796938335183999281245634642167615823217268044017498719204969394172484170567516291557292183515368190582529047853490879301074752687000261075967302169190282169370626176393170009487565054635808177274918662070291581386762951202860235047301845315591570368049960553627696219654203486314107296217148112969018482880281780248614144687423435674959321886291548209329467354152376989889617207524806887932730035858604195444740738757097160135561607031694971005353462638206460341395890160381771163076991468791159991988348645923223971706837673068993754561877505357065934972066917606966399134203895445412043542758651852417614556502342005087457615799459312793501833997608237419716733274445924591120525693801817375184420187798069961807272830684758083345190449913012160760532058871536342662007694799352334014489116110989568011370332427093982397056375845670086419712534687739621699704750291657661698827583491739493628301451127993465653300956727708850126657343363515993425618801238010091068795735649960346696019668252792247172745998904141142473617477643990741080591423876263580073137511969948038217865878568973806845502294978211171660181221110371238599283716023193255250889242051980595271437003635991847654214937579602711732298891910085177388162464079505169116381675492160436929149335078892602672952166900665849687370161883150304489498480718724530552488980685331281467232247929639191944668343391247927054409639076728517866774364294598125323362185669216605833311533970778990406498014806305442204148079621574592628869994002721613121505590648280107238756751617618749704780738898601452959485273398534788669072896043172156688561680483271614625316276231580361083640967449433873889278045239455188474001414632460864255350645528865168621793288180926408016127358205867995284612930821123264062338387101539958317678299151477515228074230666357701391075265297768337487466334711453181314267612193091398101894317423461973470875599964467017204885286436665648138578283535705826246017625680834363274216884232552717286892147453892711399459952669242565032326330661422244018953850633551729638613925806370482177084193762221071638057939131481381514181090711471639156246277794445589735468362880638879692110251814447270267040638755665438084373274866528700977846606837340791636376462449250286324927290329486014060866674463077608802701981322166724925832343176241814165973803304143351222437454861672732488453773132764278131845397154770159941611878846195025837983351467744951337035673498461672198413717890971301279554486712509279447309966892945359521943182369807767720539328245916992736359908961052657322010691967428567431274642999148078224122704731020195989754402672722942395944634398010298340437232251691422458806961297828373224510430940937225601506313426219357228319441525713086272231365007193701859151918388722661190572717062330106164567414049421805843940110700069290446301155654762828954139063142391913521766592335544064988267160999764094512613063333061037973364133594670518729330111349801577689371213389642069960644092964137563392696810604874572864300443093200636667243438533140170430636493848113068234770185132445946318625596515771502914857814254327451007976124922455982548436823423564705616215381324068878328340743065738601581213485369966039439136327346717046046889760869964155496206103482492713990110206001047423137960408371658016213563257978870534910169186625473828970278780232733705375351931752836039499978701011272891790241230584768643490995254842991465710298528640377974962549877387933662237651052078550566671731618646342614293499077727920629415687780742446552449679565999537568646788618225613532841771227202649141814554502639814613100691203920883426721326008439577265022134247329462240500297973803572693833968215229685892031110227120721672753498825037064257441545436724553295332666426895771352680652645310117154347494842116727896751216870388213433019312022284056813312178301041905911139514622487501861287242550341528599625381777021503143548631367427907583873960500993743826880018338216579388963348803038614654113964063718964321421737897013779925424713820588216897941227586168644765037742898328025908830033576704552736737994905625322942100490473692094903602767490759496598313742851519120227985635122809506656063663567962983836202500442025355937986460738993706813570457912847878247567947264702573610850942851405076077032121709870971687536720297164879675003336221157220947214143216766092278277453566247053032816441661933887615214859639681419434098538674691121673504326408077865143711730536769174660284130885567966943621362712006612499576855081677285744972559702309936055411949311809592603851872865456234794213711325148901406363018466951153594496685328789401596681782019833825346006345045906115514776557325307162602658894092984596041567614705694464360955521254335293753176987147045858963526740373539152925893403302455552207276390077630814299516324229319641395114366292871409222604858692935940301071077830992047058881106384513624452268052429562804308234724873860899140243330274814626979357822327723959864894594385653206053377641982016987252478651904836133495293782513170063297181531581877371876832324476782841464549973508479529803341396035835842093746793403774931767386607076316348184103825467052923976812725445605109785591270616623488251707436771944628774780252941029714651900120467975556485337359038440292539511777555246396620540772101848726288584445400864464862169087661484599740934386710538041275502150723045096452216086586849368942280231700682610235724135573661977391853152913478530654643085978606276222238969654380742027508366696938141497692463205668829564891424463054256651154894075366331370361320957100445659696571766780693438924322035129568810560064365512719165807792635024427258090014343839934352550576728085237320655762539135410948709124988662205110907686508083840819249341775271980556181999296615940131518384970333651952383733720194971829473603632457149918575633804176120881087437092329978845140810909810117411117087606721782771240929526382161804228423150847782954953647279311382701187916007375562743938775839414900525443468818074828376869209195861721996812566775260978973857443684425269523672096768233116678686023831841403029720801177135623677616913809969772917797644102938530962895505430741917848467589883165036855163349078863004675373976688040027130797600818625824338195324127492532631455770073131853215240212616110397960786931320830354832466420742887963701802045535736264058553645105514185114906110108050069289199315682792250254272452188910553735400972883876637040422203431155671514049291056378718070188722499197290488962570929364961322548099595480539337760896226627031894586728249384135542097632661856736177234051924925574656444732500350901856369989458785586894221209076961195152203928993208971496211099215854664417625082539776660862877069348843597465396141799146606921801896798441579905887388275335746442323339712445161167667526194424495062868118581456852474025887159774289642945858832435045754705476277183629586696222720431619262634964313420476777978494000457268080972400137045710572087750989917152602903147273086372663149542542274206809958749310499979225671284025760895366124043150363137710218864716181452360100164340415541308537262623460151660674325943041132437172557473553717165088501998940252968716750653654032358395928513668266897039742841496923871944677654294551153206760842505401624282910144903089907743976867317038186462784555231504230527430538502279288502548590961464641562428545254979851733271131000829629043419450381069242401994950453245534098084997152860551175843325771448642558630235602201770576886601364949946263305610605042175420250492065965991291990522134040740194799472040543404111714104811496778361961491756803283612213774928193664769884780785090333928042078698155145471593564130873082013228168234709099900076333212240926384752713628139211094775003886439589675171768168424876544037658327159904040000833781759703345550352642854917199160171296159432532352714039328221777453445160038538655861636660566945677770989312060752902516670970232369969980399865550098418366623389514912642725837626780373070258714602529070075546947128438877379666181392935724905854047966842786834926529832541326063888254213388418600827902997338689573745749125677366036196589484734450054048197563912599303933951629808932910800132255836876446433509360298052797872548006029453920577864596870632063828943861028791291327339969618291824678113765066442141304605510429957435342998825733292430532988206658677102284362149175260137371344907277536414427169491560412518524638150764972043706560790945307204606243629343120339617230154642734630297389320413477675144425390209807846295449843104032764338058932711947016946706580127645986961263477518255885634074400100529159926676442521232901247623516191459611001867055940316746777126542705859224514078930506679013289853250409101688914580511555083189336237134394531034405287695299229171355862676633007586124530527483730722467533921150465194940234631336643961149393853433611161121813691796164714318746390404031439097205274944407240059394701295683649880489373733247681810397864186536707926905112711310377102741193839808501848925564558139703395020601783791963788600162512713199375310259323379377875743059887585111411642206379015112515425206508594634807987043026718844572415954790115777301802614026061784327603168118271984744188534840048718225140234222343414724315199667900818930173726187952426674615766171516701820347341675429440754599035142640338771266304927992205994231531841802907152404088314899950920325774367140185761566563990562141349646724479864281154639933462689761036489918369615654207645742534252166777187321309387404098575343489104998417188704832912231011785367324918629589265751327764566756719261557779681407823957331619310077296734625374830655213786903224146467955181131766640535107370424476890480641479299955961182375210117241155878591640465912074525731055297378262987201796270043067826765498553691494815552754529860388975098607874301525892227253734844881274881984293631008817732911944568518521613509241060038343008779132947075066927913983940582485335021120883423452034550290099123814532271092492074184733509319631228019114850224997430794790772926218860366534258933966817687814182675511037741366161824512113771592536170927904399945472011513725464465329891227769409426581554954476329651205875228568814916959716690378086140265400210968364250254506225051597490065013090315645534744252877304203563200928990107652396311564802477738728433775679734791969605658797585680411535031709760104343707058117474731599840144795301290816372265692017503113483824767291115851667942786168945554164286097481123069420133454784071779843391245425037646750709239927991484659949538534967485594544797513619701102995548767509151003919858373043837494243053865399328918252629911076913084438766722303509774481544005187188166674356209656209093106785053691501861657142226303011836708257136826977634397111406195621045967274453383135703833771726305303934469348450483351018829957246056838107447608446388345734245892846464898633116075086060301562020522395620859351373413500668080415268901181112394527547365603619342091161264537499757085515288388212109437524032177722716043770617070605173613761042863850391832018936151899783812364194528991379024135572606163639047471235946728418676653431395045595370315142021102632877084286300054882085896160416362644653560249186173220035742689436807247639033930115164420841395002701056254419338399217784173968243129180897921298816755645877867785925725240518728195340304987235647351578649971544353156316091497554671444906328667223997865217502567520814371782271508949091061339447978016504459028494099591910321077947424470363216277244635042203712188094448721528064223104855240749229927813072185939838944070215099903548489286864993082849639252826968061556801061494762524562167850311528923494058948942374763098968364668475823470537442795056719203216768425817533093798773323785680753788851153892607146270204882540088058661791329448452564751146742273716995597291174455123082182509626953665463493366487172933731394490854785561453918962034614093319819030821553330272897645578562762285079428392352945772499528528255355547482729111155741909027538734770877849241158183665295825035018845360526343968628205386424352250080747010721618130895080923598625630329802212230245437019615023423410071010704912868389210933715226551146390357873924250815140374577982604371886081003638724058593294257998406755716040282533668808895525199946498884701675944497770736616960041258150368878177411570776911812213611816831303866139356732333714294090059442275135775247992290209277315259273358032867482833511512771240923319061703555799080855340462516728725164573148606295699016660558180211971704488602624302840196235751161159078376231438783311453564394229299422868327732762850276894419737681807821498572803662785736591386844431030598939201709158998755804559965808235207874305527071405312425633161251569623108503783826225888945635467017271637368999666301902709856056109245171218909806566225256515799557261298822982007818939848417870172534010523759428053221212169264257252348198852621608939535735390158966658235844872861445097796380286977800818839153362466302529635525632145987392856791127935372108874111942423774734836873968081529552763857524304209756988102395150752342118446997567942607767935235749760225112666314973620814167356194453555806937347665224802248151430085274574186698029166838117594426512446228841390285519450480860058175875252527831451073657558772438637099036587498139250766082994195909788893762260081255433745631363609531928461303602298035007375055582439034892647430876893322561009215093534612108010751934204544755247843176987838117499862480616350448531436750996787296939779744977258888062730142087014597387102942805776049461235294144524698659154585620397885015759189051523901850919018057172365520059069807982093901108639207466432858831450289060683859327191930045077437840421710489579476481443194672676691936338791841525464527254715455344405242953766095475017140742380933319291143309319307128258684561048895692444033537221484321308545148258334301011832997362686470456834961680206179853657842679200422648973123153600413426748349234201569878821516801148522870063551000756738965081646046703995468943277969422498530428649220500297209149474211917049229637233913973042303489047865039010950548097944903368386405764146447759250255056979517793837603225065553856894118871927523609696508251538001157578722096393856318360864626496118626616849736414307936356963044124302083112602854216099873945886819468100409554826583592015305753144196958232001558323673647060539117053662144837749386754226433313156640169162522555126683423246181455363558830187950763640261747598100939328244274632396243092957245294525197365798205268289456186843874045776901550606955272968144191822547541270595217196000543958410174648410164401557260736207510666269417894849691809808039206204171232838980994386389415151955881205598789160818226464464904526022069430316037239881590558363819760972118342238545355004549367715437762659058258309631254843669836843127135799280421786405896423961059931308687099608319658290229188250197146091307583015938269545731530505240859438265207194122470661121794076497729962914961817197321185714105916338806571725802748282264487506895233173599535288285627497679942346765088306327274391176096383842713359534919107919923092724272948385247593513771687376481174730837390662103834731637840717172000662676085698018771498381021748848917983505958774462706567071945469726433442358744059817289664262517847248224034730325823965623369420278702216676702245383337101567313994547282251823995300983128606437944837493296830849800095483503580814288190869614772056968241274732318049959073204566636040076704477417843496344754166395583631215043098949624128556723399113473625926111024150508251450688915288795738213861325901308515582598385370566018508830200254293710723166034661283862992607607218981350693248731788668310362645304806175601199345173437111861437025238055259381867496481815878316106876578761826105055007533157128425916630325067066134321906615171654755773723347175417297871848401245507856872014802254775064793213262355932332617444166261010247479895376939874931319237010088959425210693423617648225553240613661611458239378743768117765565482392500736043744887634750838127808907976374619523361291551271484023718931308932916431223516252844733335095704107120555744616420185178983391345067943482927607944888658588516733574606327288383636543728848209972136902862779172287197985728874438473194517496986602486738059819805877935307361343564530382711530449331405013094792674831892524204440637403408966627825619280027090965565513184009577371193111598566607322992198453587683798381734974375965408820227022682659918338181085691750412755269066712690863009674584156781523848065715738216092636753302789113835618867478023611233780093079218941216694978781395243858573045117697797917719036934023992862417464414544621155377438031673942104862164373031575374979253193210168566759890743778704457758602919738909337704703377254875961411906655056233909072651940485347107464951220216481944197117531827697531874129158187062481571984247169945123206632631852011459243564684918513597611211875292612719548758132924365496449837181939883941452972566049074878126295866877082973261763772938049423211653124035643370079018297779124005063236840205910032873316228171045623603944339073233132074242412331016373936192498473027322978533665846904269320829968754221722293794595222482290320697790316165776116564604500863157041023329382798154716109680130102397103923008069326736626749949330615818374786320355282161303855508994764497447594536617584815964358294514389573333728100618341013943466911892217246847401595395717600988383507585916852684619447827865283655200276904680601499676604503023279128391674135284379105737178483095952382628401886506505122400553880924471729716343612418588630761951086883923030598704017451173154616729441506945658027461485917727590682389146938937998776839438643290832708338093195408087357690210163347615207349851570737435682555320539325712054681343396008142264693088813318626533841057529464752740984349604542416207665900772707425101646503945418475330903540938629121898381644873111000455173712834143970215135941342792337701868680965075411819879494478439215634171861591792612113321611000373956234663787278323463249891266240056120250876025860763468881893946937036458191252015470077152569125572740561660237246999390272380574218340048345892199468735615485226631453131403072939577990567087826645235847286507260478787777967035481719321186827802328209175555305945346900895013494671767154068704370642990516652947255503495732497671337099420698752918286009738550508660898582606572236921460435761373572583142434020499310192463889547534469925403265250246751004607755915584653539308335628729711690932218002118629673847793789206545177424604991495813569002460138480803004236162435118394374840529457196839161387986848361720283126532537496224185763928376291893028326675303897136625098955084198142055467630126253369945397110981994785874093358919442030481462114802449134960210448838487747690117235944963134440298264676578846851764555630543017590329995435592813959693712959996021867487555987347188016560967786412357158942928353140369858636318696493496929078135874296604557184342003214321611980916972593787609045645621670555623937720192220516322524723618171948357789795384122593385329781588628997778152027260626993920064379250030547611164087081574589689811100883289563079441226495699813232352565305724223624658988510752030567671502416865373201763048260902904809759617951146087614519306974929828807948571277497302419190382462996481676640293306905730528497888190141049614570715498295743819972566624601289699504447715650219376405447309014784726614674447537232110209555549987918423076633642268149101545675011603225058269471104853283022361864715464876703238427444862300501576570728456363189966197860325732914556566269083687004117110156345682681917717251378786741216740778468925542131491810990826707089665369307925623627006783323193390619823567546501523877614695015266931389119204004273583226271720645123273908638451448006895343905685736545775295230870570413748230072872656082278217407468256784939426755652194989300984533631119437794043160731764296638025468662069119163601738223821051094554188509537710319728915586645064658438630056742932709747698505433427270861319018798125539063290591693395653895903462740766828744441519395844203330017803089976916381508126249719406620507374450089415048335887218453952055532897165716112774067969628988250624820642192919091992544443548874817107976359752818841242931483892873053816820944776758051857744061496160381749041620495124190303694985026294574513959582049296403139552760279929495925955013257265759878963432725753102297962534104816616194470632546889169025259961886935854544211919228424129463561425355829489796569021194228355303492314264871099020597258321590609248033955221293069221840554402101384436109802669099439190936259337188468634528346539271941837278629260010285285489918139815576383286880831159498955119911269560032526525184983141507690554651071449751907723511343029029812066712481749943981924644746144050701973830431269653407803318845910251683782894519341178699561391723599765293624301145719277850530419984319328389416895026378324249027662517053609899612218983959990885920787054143837365957484946818457944128368205792907285433428662392927357502024397392001711411732093829415374188393780079987789213766758849015998321562796012705719038488714737423499371403749089555959910637650343991433871852618269791428165290483722826367599736720576845527726135133532172952716409404509136182072124390291496887830997186817752569834552600109973944260067076725331247904724622705374294536876118813586005787121118419224748634134642628741320399925459192608368006194130536961688555973086826318433566181446086719391910945750710046753251250597110561472547709729466922262039671634886484002902265787409486361276557788150510377144013142151235751986826413531363022919346840629523158918438603657942694471648442444971008377396250895621236931635919622076923609988657247823169564507227152114761018978623769644090696104564167663791025622831067991091508390521492220686867090365837358240196505610761742817495032953639655151768939969545332283004754929484739832955707506912267138534080412993764140965363090622128520085188885303139203258803824266815603551136435003692432507124650365055773422363411361159655266620586355573344917109612422217850992137742892847857132093642963102011759712345833238201540492143691941846306565049759973261060157984672817061524035037442417236477760548321752038313700782122499546851670190296649567702235903668446451881364435772461383639642863079029276930230414465488793121714708284223240128126662005248980346713021448694945665144636079839510578918361860314496133226407522651063088157052776286287365567355273602357541997659615575774882364248091150342956556894563482311576380377099695711900202341255307958372384227759703612920488250542630369026159960255706727694301682799646526092315923508477140281371802304656010218463677636100216335254244393988098834412281501581874601646624900027967539293518251451733499249821618517035328528469654601780601803246149639280644368750620703593575012029776604293757875963410968203950382804220277178442679010916712688715375189857487905730354435501370354748121007618570619009729261613972831108414338972807298227771552318900939134234499734032270395849698161455380922093185715525474019640408376548099467279916557768010267483486494513663881802514392572652566663506974018962776361143661490323987454688982726124149642154923859292303464824964618182451846912214976561489610032076837901048429932584923275369727203044474153432856905689732242916719631734743991310791370825492353355236120299433811139483159538484851447002768829989034872857507592573803014160558341330017600834242082213777233789607952512586219801563973828252732097544342282719835759291478563575639816410242232980791284813923461906132340155739473719619586317209690369240630161643882770821478847990165353573289487557663791724056653273759766270365880653995151428514649300209448717297158729520941127851829867836594696953364813950700697057590469198773457216026120424187677017991620913070563186178679611090460592814804421862935091375197568867313536687248430478260177560785591663760691918836719182700038762429064960512757646844441121472306596788002165331019697682265306143421275149209502261976478992995251796451381496506392969589909311533026680990423637511137955450346688901072862107518155237124284953949424756669650998726658070032191198030654158515303727522048200842442198460396102608808974381497970655311972446217371651084725357104501710046252349067893809199289116726119207339171994905762232577209767099786151913793684928454087505072323451827201141069501522210974358443132709163595669008834007001142482481371686104341134862979189983593622468826559415405524174652964365359708828557143887917417870715802770044603113099521129691378484352129974312681409562415589401499952044832609297242993573297383638979400013401650341051733399899090446662361024104387745886804639582621042132062702823926456682758581057720451431526779977952487230489123672602351014484831893574665224006016667509453762998817895604253360737722392576677077266681802378571096961968854200933109023900984948921419235141474619028405389990264402536801722146615376333900155824905894024694642691465816230665863530650287630331045296409730275628210475431181492916369012845061877142504619341386832954167134867826320320396024816669632908830904776029734445402094839226283982740654725950248618695989619469401535104384786661343205172809399214560773852040283169584337478730805921428215569846315760662755997953223586591240345301105301082678163479581996636606324583963668685337508356640683993574371377460702309333940038404727984892941913556463570532309523658990620320771460062810209692954264381990578791377444291246072738200302746228658378836151733318958624277833804074812921617817740049330090518527464080193054996981675504394932568456981721616492441233909912093657236051421752478301441738975520865500262056126563183524839886117780565082627113838307342621268676688514848606860963027944664559133809154283730459727648775417698621718369151808374978564538420554172392034178612639023809969700363936967752768830271178583873895797896039888597520820095765937777083253085253428577242865493352392480312475299500181710035633688386272933302192668816849436013019904310824982635264333513609831016207773993984458728374846061201740432944189239555979341906312394628997460437313770058122914274333454984473409650985961647546448125221105746269745130338470043539292892679947327254252286113794253230077253739830367014188558000636832077722688975084744274624548902139052608190797998097222423975898911115611519889172744870365495895839181684539891329610889850213580530272496313874303730542467554841056983387272056983538014929331453410793814365981320215290096199627140382475953971976693009755386693825910562764287992143426658389982525868879908779954196253869076065461212636012170189161896647244003227641455667254744410327267775246034924434985799705404869347347944180369120226296237165427419406540681802322715347671303531899462319703660591108847480976447547883163981984326422327958661137763409741876970986576188423912326138502073625152076530874332696438319366482398948219456482169545040290734972761669547206858311548152761090724407279757969701140065859073092643822803533953658583722992010171544609827471964397391013425264522956480994707169683469145391464154223739150628770462843086411430326772586630336158306018086292416112119260113676287775854338382779055099739225174009845519264263744055071098061506894503168147933994169614434252371987559604265758240905009559124534861593526080672986738674999360574951474045668778743209053876938121889879793008626626129005043242756305313435895591348532294119029725699144950065805097943493153292604065522033676421661269344595474784226236302336923382179857539569482898850828299804667250896692145977500501347789276097934537141514589463679265294559716668929931172020234767810128984901743106762361112090000983924228387208880880606277048855126898155857695499887958817440335500300526582601778618303186372120271298018795912779105386787054943464785171405182103818646129389992419880643558706781325463389537556426483410310656962903354069175899752999579577066932349372693471741400777395181385217752557532202919243729226986476853830856771449854276067218878671445872475554178296868587259995200562071673747124532987366980361133276401389310368429319848624935774168080991768639343656109476592863170441918374771907736603811057236517120222531987654532977766886015855831468787062564856090524299236185893337466880242583148389673998192527448986199322684937318689927552436679542988852028204625293384088408041522354276931580009843643997020292384353549175546276319807743813046201194732260464727479290648108785826508758676820721980653320632063779779082748017803749948743897462580192387007111523136083577344161319198958761978599508755974005740333597734910752094568533192988712663422710223051617045587770420197622609846190604297819006394655381081875048168675299071888272194650074023475126032822364060557536634819414760964331996306182748844673719006030496567970959073856358950941993236819493225403906115647791387299540028446997463224753877209469854014353718976132474832858545425951127636744725890534049319218932529852462953652088600219264319521126082666715990152657050537419397475830351840689754195265256973774645269719430811964118632158384915338714262361462183878899357531808988223611760889521070521667539847843598913034970115644452977315448385917610773663737576824878761653115711771657092240008757308344752378314656768897863201426563350285626802106949032377304274389131963598755891477362189471861470085811739561924219950877449488788462184275295152399580067534689058824240375520410502240730855926530594896457703501251237610464254659323275348793548969713088021835372408351690458383235637680684502417302238989665348917464415162455148985339938510314629278466221637869478524692115321400170969427077624762979471323359521374544971526696749414179207961050280721328756711386485970826850318872166618056977457869599250195329188609018269226171417188527667354411737848426732314754629759124015531532723360190825017968146708607898618351317908462971812397867781911613184816424988803033977871239592226334479805980155998629191561447884722230050170366344094883340844509095418868308851892604610084643183538021898612296511599289421686516338942798664958497124171133786211777425594769391008414266171341858611595975740582285045279907454131721421073945114874233482042720076832251103042364883832910924848365753849424045397812862179610702294654914165157100655385376314871848109558090437355630774481676063864259409894988523773086502395599867388924206327532518327893764261979143569331590609672586791697100086188575501233488679851932751459957409028915700058147081793039884697818563438278815837618118649560318677338184949245250029022506080271370612868804563437531978515223612285524575448777324686263203334758866291837823294123824518963629964038723921028585801427271308236472888075323223856047186422613719116246504272088006340226520819475211624477904976401822310541670748910673080925115635841839816005324940039458792306840534407184950796099799458898508852489688258974336755075802238700920578447965348732238694433471783911198663019128601712198241882665540504546842518285499922345605141503912254116508815649012749072714449381403530005047641151404854667440312516215677973297237353410394300696388895008476678324686107831534219047432711368581090344662707653293131151627284330148038483691759463771951369341101449142417608506954892245191468094632064353413493837193656585927702937745246069848239676221251905397983585320913037773381570637400545718420483257633479041126648747827280134339560562094911275774260462179765070632177421610211430866256999083675908296266063916206416749135037664343296776802658745412780752127834436410858223511911226310799095863972837308969430580776402670341784468120108851038445068575240783052162093530802323527808202923224721600202087597532171528092761681435109144822033749343827127843588134802738478634797048962524759461706400073840659813061164931431346902134145954621585107081223727270736018851911132217032975942246507302884465412919486010916805615234684230750630627136103760200628415193292683178823989254704862266288185454912041557950406757151591972140662577097347021396551893161864955627081285751293077397651534676934567632876598517160090747706885489879151995614684861405262811419164506615372505971130284235474201252003857041066498349724878191337281327638152610164950399347184525259840309497033171866310604259907146378257576221442670451407414282284337001621669199078972761024048062152829376903229418558656129476114704092507327114230990388715242466514332696355962140355445278248201504621358592190617461969659191614250618404694347891258201203747371422463915791123187689003049583706830225996846889839354480031348857139895353909678235188805312278349214944943048480455671878909606027913519624573037080114922460990059122490062579606059364212524408608333745189679860896089004545020572265607909636169365783908013303314322870747850635379232005466101404968774597615305378948310886164807843694900971376523500589518870132052254762121168614748334885029087524697001614244961293108862741313047886947675286686997492245954641389892805500936474514965490394873724699827573617358130925419926467282938537405834494706476182301001273326971763016163834874456541139137657009109402969751285545445924894264240523338018802907020093138031917502211176605651843192385416480974179302459535062697606700446311950303051666445002508810978480851331824539707351232147769702760616445450106284595320318528908697559725910556739115918736139512975458934947316426001506727400004563428968118773412757484511103829493409973161698999220126361970265606530609904569255509439551260470140481738876108104312949050562411359885807975493153276027419540230963708831601405017204290376453497383570968518404141521839047149176846903935112287657039382712342866358520661473129153277325551731958216517860441538128870214507375270325407917141654143617912519965454171822372096787156740258859513791303808561430221314649247456482489328294303505918637511340285264646748033689499770867826039276197324895711340549202342373796634654497454197020163679057907461933634758058716800152595739761094828128408147937249908473510879417366344289334183179903972731811026821716114371448662434278519174988336586263644013639402187174890376768904822712997171517935002294256323316373922554992934091583264272606537936632544565704668826010603146977396620752713071325710947898357926681087970625352554166488187612006996886330410045781869328864879344836005095890328584035550141959862279635541752470968019647013075168708370483247151762288334356323551574788166720400576922133551707450746239451270039901568165297147928101363661747876538922879868390171499491489251219795658521912269800691008808837971673873296632706714265774184497914329956517830133555281381415267088919446117739527209292430828800416269519096924905888907141393143698436682212572686895824312500274424528331868429020635594269902215744529017882542831546496680443135016703995389609027230387286128537998758380378055725654176212497886764916892204493785918636018694643328192694300356079465845924627249345027906143391686957412636429205088705290390620763891616389325442575200722629490594913498866607953874480213560224786360108994551574449256932700347121818254735101634720141354653579338270206397500399997118844135968686865445382690063996560194182241359876488633496086251520152318735537046983469924550544262942447169446056758318970551761464084184701610729578024457494399340472389198190538795506907854162237219355773727542845273823212811608681576565116455392065953953635813912121586472538257190409106535371724397463201096802466573745374159569510914230897921414774199122375356806773643728296901402051195815225494361147749310595385148414077141461671430043655559650706621659011869624963600787245878512761075728202377586448809788454848849349800462516543347603874055273714126863064464672915999011376773330088363318379499606910312644370730707714214818811494047288709322402815264643479852133403504767804597291706939286882113794399227304559383011274097716930119423429113477497663263156251514592100027398108419239210523855407810778101159450966404211784910443439172014934588198646679500512095002989843260980627326367958315602530023109149204869221741186654606165939386890796211819411527538203940452728584351345256137731429595232921719618884272435668518260046295381985726472855639661145768078453033404802279676816454469970590944055592314335111456123668903874623902607270869088320831857866466657012892322546255505296783647303713051102152670192859590069591079968862610409242464230049080700896165456981545552674188565932137642670617665804276889943004468528168337077130480191354980046725113025387582019619455342126915876025468612323147597218494546309142701508812331768429620444667301169298571974140053034654297851545550754801224098868514104117897633509628824925272163002073617653649963474523170455743584303196886505352818157918284643369796559995133082085323748921077182807457773976479524527268393210958234417083810087358585694690464464617038911827375623300407177659859639256557308769468968482618725979034425091951710257060514970911399202596194466042856161543589687603838127184026432167340701193604002858552489443984143845426026425083712711922681494631418059548558738918674387995014196142082456858337449564936423437354520902102001757727150418244949796189388088880323308245718353577622978000053966340287814834504823713766808208326797532592021261678120706644118213935876388806720527301585240430084645421202714132722667055926148511730294699039720598375014998215581386552339613358825003211487992723400880278598475711268241986557108408099399368982453075783741803881993146213708163117023526701698063349632848240546962561858651678778003618944153229959923219370258922419151950431288319349343738469582167151281860355328316219615733466468703405753817634919559310301798010340239735563649614545672257716322083978735401841856726935688818518106326434377844880419296453229080287819540642943054969944322297830418347500366290863358719611678699949900334994244616949945327921506421476145614065319066985755652814701133673009511264717179745240956172366462585666249044042226226191581989108894656696864672534679302530410756877967594747549506919749821915162421559869480907266185911364621828297405958793795206540724032776123315828338973126917578093657923799583959805302877610444563145109530865121045504315467740790951273457537936205344776024825527525594602901293665394886108960037584071718311762367817103162903445721500186037235604386781324553165721486134788633392351225611208516711675750931408618612881519365706657175667855051642891144105504570444569089999644594098936507528811019708010493101376950916374272881742419759489278022228303601596738453195792379532191474765662290280503590802721248852526412508509686237830678964035509657496648622251365893702384152833985009447676447467117956921078691441915709997973945262061030032808981730814345869279804680920043092174716778550747325916934451182499105766892717485928247115696584770399145546523633184714755496686892064174524417261796661026884491468664254968982368422039756883767889649958533795489419158979347214848058662816563890056325352312525590514766256220105137008411257281019205874300716835789644540286169475485466651727246908250318317895019412635743994754066426735953551034934970072868267851840799805479327089142267226296457947161611794612279558796580931442519017346349709929972628933328701114612863136494397719606667092408752380160032859119919780998710936745394598972615836479599851968839582859654383613657748053989939374195200969908508459365828661655331303312284038678510145295097105961685820317337881861398747316482402974069551585761359605102990178946240966545150323840949427758425228402808237715902063627149518050646133397746581783364734899314473027754693772071761333214809819397282622984611384123841599915852424098508075532296686104256433612688659450004029615501505337862320906461111031502208620999036457236477869188494988795954143879945177149944794709686336655308716141575778871742736326181430309508395778819443226504965263797437743960650055497540496465666562446476624710378667308224882717780296365785894888783888613211128554798557539642940843310572466104623954215012479880885388279165287629880531769025882671099214495739652686210031601580041667383559847323718185681361308854543602582106236651377705316233015242384597611482208520369126592892240832304472761943530551453149154255899988457483963799540216419545653759453490313302253823992476057874429613561720367450220214622356539239835159131857525313514414249122998999737150479014549440312104340148586979657018252909221011534271514155902266629727610082295081516805309083909755426690796048579133637240527678540799175509443703909769525086624191012865855757820628480722981407587277490556231529713012255175434589374069143371706181378987892851193999311910931233272298948972434128280145254639650903909697072761354936429789458937669934170398385553653179663018161322619667589088319522780769877403827940602106564746274213569008222738510411953433064837899385665164137887344378563383045336932645413816679878214001344109450562246386734308863062298870479624308071968031675764558869830275406799141997182896321878139041543487721176760235531685823483350115354058036458859242195819507635932974890712324039903918781073226779585184334892795146927390422053976598512306636331776148696977003059146347731054864241299989741078059030093863815272533578800513707740313845804856054945731467935545100324021094069129364215179248252748438673271927959106030225313499265395396027011520366393404058323252440625339356575420341187252971995602158657740699285220591581991422472825207438585633606388715417808870459650357363643472593287589758836300638303198482434584481336620987514371350547581435165488730920919962702467112370309738896182987083963709902752710731148819284284743424309115880087389295010370377935042691833321784324847738646702722023454945725532661455005678139123802893435281396218905809219013419271425883019528434434398341055237940582380731405032816720471316356459004900628605335399583265827618585287045487932575303104121832545014368711979368359127655846713104575934269473712353551977664756531473528821867940881661382762469701995884631322786416685978904248404396660382551181312710910624460378806233363710054933018291294086428181938919239220573467257976390908139763921642509092559648857735239504038403644076535033690614069871158028182921315224408818676152601210975156628714152027851784227959580159795626699631292125727826158620971394000441911160606999452088559827226931078162471584818587983820616386754747113355946418844322006269888363934819603925773016576810858839843739432258106305733294460280022256285455773072440343737078244760730792863926162774401727528981582929731122516402742240322832487182167366439919028194097127710239612551809215471370057874229683547039785503271138867496174002433563593533260351059708765782527921389748453105886310268145006462330791247574374516111904934995411925229462988566467029955401751117471090795767585712143223542888276835196874265032916839566793912405403201677766333613659874235499555802808374341698113535710154499376769283078313794469327221536849791950707564457395333127922172460841958979572425903681565002099192486555498499825479492928461928507340619019412633941967669364854019737375810742722116166144628722539277362168755261145726996572901033485731576969677628406785091506665913517738955310058812470420466574645152109071528597425807662767549530673214673072478717220473800677379889048651148314037324346296187738017478268656463341712482447158232457059432646925808633889932449033048338261590687564518427143567996874538659824321647782556723965246432257118006032517977894693494979809117045576796844287854292845171560441416867387596057983251179343172146361876965557442686280309710387471557187811314315580917957986192780319717136040792255445180506362771321581576692862122652517188824855318478103647703124643145612869429458083801599429795797511436594361725072280102253856126280112903367177890576391381077019204614085619265446097453471892470680805001863989599477219561716170285703614129594302723860474949094433411967859679933215888321008356186462962050000966441428740712628817780146368264767748403949716655217886396867140295170491956637134700313121103812266340932504497505980317820701415384452844086497673199193246904529767948694933558236192115847351480028427418626472167008148161588423945123889570291124054870088073890734992079258883271905873360441500908621574899799749041343166970138979630161604956270732617170217707661670935485841794115321422882369447512510294172775602530613652889319387516342556692035025779800606412302134303149292047190294875754727861603437609929417824708650890104269367328009921534241834838485759865349495995501709660699489243877503798881488950754320312178326712842436176102456242126616299056885416958853863187083532661874271071738145417049190810875473054584712618417686807299103140341207329990550170098035099494093927852651394156509890250629984920162105519024075216760818237092988849228615954031032883581538863292367326551274231831294056572102638179099913149285812385447555606602409179219470395283395037522775529035719474002310445382184678394086256853201346892063255771677515324376947853456407919889590621647149819687173908596684059612793086315437744852695702818823544782597370287142081669444829507275304722023623856487634594157164909012010289326743073328477188047113830670949841311298974020232501241136407491636056807930301349880253991144993734164259395705572590463587709614622454139910961758761141624930671450221708135572768573963398807811251218522390300687868942652639674646122322467776600057227851557240665156478382279605995615135351065064802997060254710897851692287985868971147787281038179548280339502333846806218356993947872437951639643955979813303615184016505328453516733277861461976532476863658244742858548779989508856988777682629482208560956222131900927339115502725008302235907503145111775792564356011236654224784236443025131070541907370720991231225048906997181451214928610270008914620833647268450294940850293322160132783140211704219078784678606054204633174213442861741930772011344875364340153257571544514016732858258708738534709408708978213837251102112511935887903800738987451860050714940295288380911703961278543323635610484258004099197510770084608715187407917170841966445563633389401156358446211969380299034345287137247448599535088568355056174984986002890679788531846517338288483324734576243198602495605252508302122413548830345143156062510173872837169977534569968818282566243447928572705719505394898837671263060263202895353553058992039649181164526487666300907943373336134831195512812701504822416552827254031386363944341361110566312542016686404452840787610758560141031478352957359401993576440703283430878590009362064817113619004519361351305731855518868493306569120241908825450662666086694409908101049048028732778958019956916410352481435508743826406828314315975295403032737546659466143691582071951142304583572669782336706484661650114171855713948718868343592431738860083531747957125941119011175746416937900575972530443175101272073431888207650095576489323663548133504835682176464610151773540084132619014606400356020001957328036882058563907315663269968139469636918316365587598051136414753394078337816599829862448875609636340886272535032085210392282522470722458730611572103395283236045936420359908050780632646090347382370264968007206971718916512862305076908889180550509264626960746642267718775522817047581773516107917211538670332354832846654650960889428538199958446194268663593287517507933602510263342807559204610899216495505213910034546839898876446335926588347641238056198494211498155802254298534434367845486302532029786449658202026756241826276133655490946314799803769866842321642150211798779343730057178887498917497162947532949180688194387566727040764891925758239578053032489880682612272010225668560208124743555218633437033919167822134068323796749141697679849152810088445269107024371079015423011303694876156458502297302985386200333440005242413656651862539213031580582944736958159743852634520456746713819445793644419646280791339300164612989446329909097640767303588389605627479906474790217287835282293329988272389766140828640167382443586060712813999166530391871862192727206641162428580015084110085073982074044138828809495161960492009918144378706791705015989538779992648926514113063376031461032174053561284259206509977721612733670868134566104909385265282702691996643546744368491860237193975784872165057407199091712876932444430252151357097692421859560757976999135594657813133684758616314225409212242351069539420164498588557087908932710784701391832154817663259033826621431685655130557100097511889730098041072883962446215489145773340326976890083640270114537379744562907321929137889509045583819061571609701759852463113909986071295865855633549305911213659682058773816566368018586238122042760991344663595058342820904553239641061294442457524622016034008526736612015647272663355834113235332991187392301833090300394136249335051700944599865508959389174406166755480995597480408152060861164129436509632176935973139313193977179324356530030416098348384316660073751730491474447815554653688535610274252640377446620824220238243421936613843934244358190087908465242418786287033276663621031209261216618474582324060327281407267373531438627483966124196762154173288051807914833739013855859641264221036910574194566690599090232480832240076001986148229024200618527789442162365423075522724448852467362919478400564791168145129541941109772161847999909571867350752461809112940093780990646663748743618058729024583340411983777851858003981510504918858383083573998949840565445309493070143313691072002620205569063178382729538498395919659743090745539686371111059680421537421813654569140516830243568370820629730296264475603189236538260533219419172423885488426713427061763142182686504921787755192886108248590322211627813848391887331351337385683815471426925647004468307117971002852894533776686986831856620583121158021479316463273142063323291443600011211269427183893159791207514242423783271914320513127634452412565165151848122274658009701441250217622015661974018807757638188714976395203289390170141409633117187288097190219292316938172754005272354045965456519364476639733344689490986522877510116034847124107607666548193415636015021460189410859192516017646201740354951573950657426515769674304105581415503508904183704906949573053289986955184659833924269588693676304388587036371763076018411260742642028172151898582574878423167351643230802251161540209860922975426653105115408411264008101198036383021478640574427476198059939982269178092745083068740165339255740397863125838796840519060637523038642238989583213901395867638758672645386074908745159611786425018130326544402775610883130278255905202363830676924022110651971419148789668021911566515778992200572729716256020503085237581340817221725144866644777930554341079069730122665085339254255440789735058236567000892405756450707751475346940563050415103060478351256452607449822442908430461196238498028774131931887890932644943130057306682067830924328580531540126105256004568049187069658278679051664680431492535573633989618348204334534954683593856342806091233866552683253205280450756470619633386937120760185796868557002381352261322197254165690473857111957917356985815582825126731237661434993331789180823927161558642885995629913814910463920871505887384699368296358880717751096764007745120731066410356850325968869550649233292625558270102528993715955926268231865632115110160127241042375405384883429803546708533664054307568169046311902938795704560470854976074645565139415463303740985517121917022299944997350338645499106073899152243944133568059760956526379764245855559577383186150050605830129370389635636066125373145512330138050978878947404104901186249890505415061569937286161681003599366007938034576437638349403293847683840131664017883391364836471937905817596453446992181486541514800442085680259499593487371666364273172449659698131027121075242234533144246664825579757686871497193723180900325213175684890422310993003477827913707110412655459934363352474081488839168604154374083148841948405635434753706488539050285938669847017353114903194295030416488284591043606313814309756388034788255822735876449653555410913741711511189599470220696232121771774264952592661419530077627343880511518878727287278760177015044108107418641582431229624940836807766027468796560598405674765047824511106953802303617281669585758193299573924288804685321958791726462271035713344397860722204043033695647940122286362228843462840386092845936081562494818414792829805007017533406810509499542144507215517907383110527566943734282177875917581376258927962816667820275002219726787852069445066646510830521413411096359625135791983112097180016149766574425284371490938907350279886200086437238781488957614662264633857563083435387189306375999093558313267914286100342660767509673522885387306849025047308069273564001810539963379232343219736716678229403968603715520556990407948261895815580546250597136731617831896692007828626197281903776136306583148916344918723597836668121108647910691880918338832838577079358197004401452295130677457040660430630613606090866622200483534069511217335170305433998273224477671020895365148610778994257233910866413504703928057415303217262097341680305128634654614952292236973003572505533018058054720826827564555074169861599337980879151245490725886492234660337525948890790829189864583415369783180279974568524365481788173831480185923254758527358629799034122123532672669135359435289353840400822263918832020201810675916709208483559261354633165611738141306806937328019106576316226966860351324603416196123345488715887894776348087353060328694990329607771146857909544886360904677741669334532376770171177118106943748151868897625576698300981654166700444112601907655114032055643705205421306207628832279921792641037910416328403150814642649534547017476221841837202001723379901841256544164127928806708895910144582535038470285284444497361489661891132994823037556118998490508070940813968776461718803086660484279734687855610844163810988039210083522092676027062427971651045196592436175628242977995177841225013741118816870389516746009071607928927268362406918915055840738063205719021810587300258999146273223856882525781215270849631870245298900496226705921814473856193932401095994930735715321924875901069359225466668623395795796256105542640631235726597448754780354144414395641928889275495605115980946196991982856097878072396655396588110881444523298255903162309574178589259306467020332900393715891617063746854843252915434854108842795660822032703552295960293506811865619669358515843710809147196557729412619178207749643647468850528946899582935544011652296406533853642146122897314233667279992803453937709997180109963797156498331399471071945943525931061792888057121965669013313503359018631908034037007613712069273292294106097306788313162063016233019846357848863382178465848361280769703442677406370613535063039396694078681895799414233821648214140440129356059825919039772635031739131628198830923833970140012734424818026354934598341013092592153358035251659669456383393057071827676940843799806105230528143960576254082343915045798159913072850578209929593085866161148166157482705988515445421851987241923153919760860746414366266941879287543322528693751757174328008955402591580249112475250759123734734011340545692760879118324570415390413315940690763156215993679263562211458058701040533252366998615838371370181402353729618316088988803725046016898031064612763665850086699728854618122173833478396224709523205304988591513459611724761598234479684735711307398897307875535951330057364244580975912798516478328103092699345137061322034757583743525878626552837823133155528401192298991915042110945972522219330595080416194407389035666454104857181795451432371404685852142186111789153492209773389140444264394453958751081869478824588290172712494379921040911882110479430508633152305741334134412427887705287494764112239591039215978771115664708004119499673566305582270129329742696559172899846716775977758761127182402328946854770607515099889119783205894141989137896542164782996455098422832639615561804210376632515814128434874989793945552332483622403179225844772461165799314725005765868823038370225913783753191073319627783297083318142534685543975997933876694575417829613939531823656953763929497286928657476590174397596329804761291357972878994414737309301405534322932568017389747335230580822118204112570318653210894964643961343471771111738208943729730894123134631698256703924677542802016271927849030055861348547466766929876189797355225882875085818590518916680062140571403088138525869270718451884007676997183187767583967757288558674080507488960212693681319622163198798091061864137464666918767805095864626676895966142086756566130623596531990660172007252759467332790475431632682044860327759398486115267148530366542601048043124308974087629280222337714435808134632462878660059035257669599296634354402867149069368650301654446718400000685661521862914662552418814123908043033553362588933292937733504107529946038959162310147605400822699864423169155910049055399588009150802611024039942492766223026215188322977676096097541798383233853110070665686321309687940919106252004604749218928539393491192653844188382703201500019262898762832771038830573599489695046478482843847519232724690047116906317631659305623798437919455290173159119864271112255541660779128412358588574049403975770933340485187950021281972231302506925274147826115142272590629620624036158620322817772404036331179937431926214719567149506101523662732275977498578756804998664335521585869697924604872131778164388243631132784961796220874691174115882170791059358933497648279210638692946371702207299053360340164346031668976074837983341763028606328171000711369353236513894617554030786925632437718802034259820589174497774303127477864487460199065567829630817997915408969969915695885834473513754428269559677048726815668652657739814242557745310480848891883203749547581261029124639416851013961133192298846354473416440332480315801762465730648024451936178880600790067278378056493062389632659134340381284827627411913690814153363053162737827603131102704006434257079380252652033716623727130164182925936294065864979199825826570711875310369487272489776173800706707904352086236243681777955891464154277315016638474065347507379197563819282878482004664105906374546945790516078714300837320713225465694461372856727699018893230260358872248466213864006003563773242634849207285511158822399197812911312808629825855198842690460083714473480363318305984012234736820336489151232449100335860565056018770158820326143555775354027563692052381422816802182393613674629535694274015581729148867572396539004759171166118691861583794110024301993657467462471908562284091315737379921420633011628572321717034172405594792874798870685027478040770015626548155857443556420843719766544774341704625243693753127611798991641174823167680478000569417248529611032299588810258422613988204773445814866407416153181024555966253279215015285990440989556017087259948260624418431984643427615312473768002046075620097312529174200951930899608542181571415783310849410312739274970033318811487406282146959022333862790277656010054137797643791090381828623353522618652495209741307802669319107281115728744779810691941688038057097560608283854171749958352443499003951882630288366109701230787586993957995294189582974770081206940582948720743819921581416547949676572270331000673637456699075655727103525643850251567157868832833735851280061564005373211109300711412000965959530343380627948456626909558070717304657558190276195673289446671333075721545409351572895320754333403491316067403283364639385423339086508452266533164897986654386438272811135497614669957540883923511054710317572585909419658641073307019599546624808621914655229497748115437909357496128596415764794722946200686100301688560292828909264076367302328294165086864274204577244490567843549906756402743929402475552483165319352855998699512294485642681612659472872791968562011220842323404402540887998275406257111260945029082540173423861542444175411210106604950062015109946120864966921250297269595794795431276684157381153628215022641461885399081728488030451567112964817381500323526396481545919206062344232968902433138291259975552453023458812283359666890809139686336618997309120856637093145167068356014927009507688870878639731587915041362381449120182275637792719324780855794194729440058362957667423828844163024070692992515525746753858973802847321159038084015321677089345780452746884769898982623949715244368782933405880430905891950189570339120123704143657757873007723370128972598052109859520393242055191114822046294048109610573447175305597151647321747358067671250473562257750472802511845058427781754587831141427998453359936600053395388235284678210250804609519441273557701997573074937686035172276199565372949568714832721830733452547532469031374495960326528586486201016366307407506269046350116086810078060637528545681581098218502315068986790606304831796905681335671153363729915325472054606397617462343112806082020016048603882030914674317229036697688180900469194205014946650826180227121979289706991778223994914103352680263267514319985267601116307922467932896994549117682758428916998873542462166567590650955921635200226222027064914486875809825805301283627651261327066485223479627211980303965583550327042351001818087765148013355917273735783840524136574069800001971686771334639329994094391584624127652674774291463883438859235751991853698925267376898292086166684268352855082702476999544077217777556346050066766775318441555656180431874946886440688276888606108160142611105569333686032673870399249297409798830477833350202227443774782325443649194601720892221019604322412608614091334291249345297132673934467922609878349856542191355165575871865998955617972228607768519818546591749069938849552965270487927497506525141599098006190974663805988271521343804860564096473045563582999266097716344303251398405748497609623669016937040544165881156192205722621574440669291226913950023950698509939068580657560014346654921609056410231202735417153653932861391945586698268293582641008486929360760197608563179270500796873408076281574874523573295241983453023372847724691358831900853891882218292728385151608186133713765027777297948500077595067666219720312985333873638592572954088096815271111271130213383727979889254516912215707479812858429227968434043518586627119646919306473752720527520451052400870671983101192417968711565250278661021236794394598149132358857399940858918518178805914390755022928341255745725802139219748462467229301074829217857149563243369351792160471654367914958365633748556676292416950968706756080718517410233842985498541932394448985260176998277718955954203116500855703605659188188926768412505247071389795362415936589301301934334344474870672456787984267020936585139131112379495783639695910305699274568759847295579578106214213326834003954232478308581961358935876915127901333789359889890286800603237848697158697719883564442945956315140659147643795069715951446851807190246598324303520450134964343238110809016926705885766004567984650720302998880913894185795497673869139433111979202666574109412635506763429538224838890506023268160683313254145126443918888240558157302016829671290133724691207555559737843260265427861255529112367044931771662508035638873779402697688348542950625295982836526968167169186080797669909363628136505893035112193362394665617756359705026845005383695892282433501185114256797032452799944275952926171591432904511193107464832544878973401345047737473821865703455315042250365931896378635761515090900409641856642242395182405498013566036388300991782793698236356094931455259017442831425750656444852604248842862431769741915370390491833711910646281029047134488003976929077455947846996265274136672128919347483362792535950526840470974703524466015862523766714477685698693383178027179313633603729820286779491780308337619482560897425278479771913435926585215769174340757693608232617170993575003672472664325868068197773439083015616067246347139129394016116700454668902110860419464263995788866860677639476471848130143912250070407615029672027282986046696317451387855573921874695766608461509765999250271649587402582734643360682107419243365773375830675938154437560910071971421266259835413920781294020957467031301412158651799513320178532104512079810708923711003974738564062639335462266434480619517472564130751570080638231484364639316757035907737416233086974058056004938703983046106912859847599049129695976262275035078049832263469869534092649569245550233040301490871373882151204419926083551057653621948193050312763322415502393596381440617356947725077487385663224292162277977514587957771569692062242814832131899453706291448363079729814846760605036100290573654149421757768721018351220888124718450026754316641984983841825948575339029243796965652046635627719293984668055400300319681357098099542950238931341293089335919225376711438310940816330633092984282520461981958947779942461590219491536962142420086221742908844790364485330302833181941809465780847470657466719057004738873031165525901353441956967537922533158398187068886831215539429152151273801028333374475299807448015613438197484107805502766733268040550059784112202325184141746002898065776905382063480167897226834096122127862516245648823737467266343354355717203610018061595879296011286862162653884135335496516199854176458169625197633118708397374615918061287093329146660887659323809094737030701485753633218043435763931702458253773630947806802730455040897384213148737407493837892620218002230266140617079754336323106543189780225288963896023417411906767072772820222076127894200968008449395346673838063723473600383049602891839058005921634208779629804685941957778522942021130297803789414923302014434586766981042430272495287420069772466255935612655248984250496194440263846977482213862728199974000466103128562283318617364384989983296533110482664440165113744335936834214110444340901222698920000748785975908730697163027098570886305453369389275598303427356696531647174525621485933189729687008916424663768153512124479147409310652949856961527046796984465557382685232217560613314272831545781313066603356955178370468427132808928043607775271335936995259942734990649234813658016439212798881390536281970710451904052628854036057293059717709614731723441733881565552767677513575201285719626173658573874982882866991168409178957269829870730917097072714727277971662903910208452872560696238696226720595884528244234273246209406581213825808980430989489683680009875400425651777161125570070998020584450702058395027471557910691159574868030083269643798594699041878590167831977486191734498034296041132015106723724315156984128439901180742204076711652113458350801094274265771033025966836617156377759670693276220606784889912189015396204315243731609335157098991913828189597904776830183196176345629666526331213153919129493055164165029695856502152636850258623222216664081347258777563582260168766322181641463152053942141307681091467312801270346967586867524627600684152138662632963206078214679650019382161707126351674173766012206926760363313679299127778882145012008702409246995172637061446210921769346935719056718017348739352687221869192131384173117600845422111323873101971683315824508873010851034578253795510351047256424937773236694203289595013294414381698354311123929312946870320066134629244940947699719277403769230567874103835814326239542088275145945475969878252210414000037688058927332174075509827548345430791753975114445660750482364638658147357223361501025936252023130434044677698540956873145558369121844625781864883944569875043434893240622214318930616016836161379909656738311091677510864139467879457068417599423794305217519491409859034244205319105797411533696556937409830022802307185522458640916544048350026125441757540385262377399794052783158257800891041542817374896612777556450868843463710818188782398261576980620688417020591728534375848523726808469286346558265056892856236542485164555146772947040156001294604329944876283655576665500097490195794071797109707942860485955200434430785317382792371510234969477298882101730414318786956823100195351031145937984729301487452310752933124901182147684202594338832717008233603514341580841877431763657949117118989218617245125285171659647974861430217031128143170413440326952575737749469433050160697396020070186316079763900381351731470004335309464521165465321084190869757963868502930913491483790490931209222138420418686872914947374172525026805553880106331130080909294152108924663154215446666178908052967862214712132469198504888457566181628074534604250796457696866129192137801787100164350309632521983177954953398766042206041963322390703470893650370792572836740347747636417583771515663429496657126776615808349764555180524750727338327212987226998348509857567699520135419673253122584600084564714849305573252012680176438549613043210692802423444858868695038294851795260601804348503491954353965930061199270470610049917012231820407840841535873353352640234287370502006091873132205607136152625721007756343185800610566059522431642120586106927637847642757873769040225815776970037525172342727695916579224644134874055207903329789958459367666683857493473061038418284199206440375025863619899168908883837120534808929884436028467871470191421815945641036207380724819718419523086796423790015655050647150347078577949454118830841151124240711999352180937074509085454113554296017133880967953759411098568338114301064737793281473835408720042124429840722917047621980956400184509707399290649932648098956175553692449580982911870498883502623223249161701093359163025821724551321031571706065193261011053707385625272671026922152198487224777769923890763137242590757605031720940670742092108889007645599232760357495182069156403054720023335262391487258623908806923734926616834622538160558733331889852892674281711550678695238801974644797186303994700993966134339742107295279631876569208641726428854378786807426122380007173230870810328991687966484124826190997377311198390175098169631614006920638275796041624467203085561361914764823881791788084555363065385220990818688161738466057849444559632296929108627793920275155543716280600066841380518364849559683579520739788523512994281121865286440114518119874096398964116722799069209213142468038533700185475878547417287998112410749121595963651468736668658585967914777772118038592591418772653004740113755842641041638786939290287518836547649937925370156297816233250440505352103044903424865342735863296599863599913677368505976749566084375428270961009772972683716790859027982424818616620705143636876446255773778453639438349313747955260070468848472327900054830049616812804199584209441387624905968961233096093359873668437501170761015463079128568136283810115755363427097975324363902120791049485275652770591415522574385647013321090901529068138717255277977911658201370936939992498609864914046951518918649659395072892950351508640122859443879287329612743656664265542752468199383530353002029279574757822174646217658703172561666338795146637797972327090729274366941409447323423190370772080940975900675932183865353707183669604100057281201210630668872910115563757042630513852373710781346413581724766146545553865208074944627444343905746611685842387357494129768675961867058481208843169893928924955486646129007495583405196065337657974860146739864632132940125169113290453801161132323647874061830294870561753227435990997847902744730537539382685464573624533237442748247587330213816496816996956357591022771122602881280467669997789536068714860749847513999732874303223253744194733843091626223711604591080639651338209039207794377521235705017854648995368575646941920533562191445845215068303416764412034670415842769475654233677716388884990451277794973789998357482746403393488380866943682061466996679295959686063287142412380087071631287631404424899629674164871599855019149768731031380907907406478139350505467450819632496156974503268997767810654558373020906866848271054764255819245584658483367551747710528296766345971252904859371539341021043623030462361788982488567010183448324545626794385528633093791187865229078433089632590333313589541927159454429408147192651724502343374345187390446737390134041359322608322184214998589050975620609898408934341244776561363665962684065265211630829012577159526580659571931190014245212293491284597899022662609904334409275020631726906860495023332399784495469030631857279569067988250481793097272426641348806684845206058360366993935029075339066030006434501401681079884452780989140630449913434302860543692784054543021451628815456927856141731909012939633585346137866351251458093210773203163304516518542177002718545206264052049452494166783858225159099397302016713361599620372818065027766591639926240325741480635438909046384952674854357671557408105813305177214449338846954574619622296992861163592441821338005751798659197789673132943397701194919077922417533096172612046133127712283235824479242163343043756197571214239921444518476884395343195599062178630997431364291491744302192386935352771971744149484616983691421733225215740685057827981097831870672096674686473687183209192910347114107313289128521592676839853361703778267326397150113828827482238433149341046897333587227518357192154139620260495810650979185742070835308750774842540140253116710309755730584613431971273187796421813418459201760948253080323193585862953699667046810116914233191809662498647839752590466605139566177076324258526599954852047385272433348171305064907843794767090807314447817002447105839684829647177841046722522049457756769208870676586171805504737261991585978593752538960039892852199378131189657687761811595392945096482784400432361936883491845795033570899332289258338475389270296690747297904280336553067806423389748649176856737656930028097779034910680105705093692808801626658182261852178805414790326101043854465600300026793642641122894883987569213630951214202145633354594078854518427729257194385941073242928094403241487936761092549271108768110737610881915410179357830065823483575888519242362028041291012783211363951729863615405486381448622293934409211735319277929841143025107371070982224792068050015427222548974062617176885165909946345469050243324781921695144305492599424113306499040611578551672996282135784934305421880951984067127114833089477379134136180725808783728064198094898627024184283331859805758058268283193849405916059094340785484403764804461907766877164343276463601029700416535070411421073593492561868826418407582301864916406406544514081967047340547161110190341882100578738260078733389777863817306976125894960537967324674079521955333937255481192302470819929735438934518999073686855162128019610367294783425140632450713417106025961352753023584624422171378498582397237987916969195987025611293918953399255236687482982871021139662768908635283601695556358148950623769043119570499175246079847389819049016135105963415966362745229097106012433606953120053050797638271662444090201288181641473951069248646792912320925191880342386998060113598628952562842023934548840745482575798752760321147610842467242006814283604202259749777678868639363697178100500140051140261872574725922629728008548205106114950385719201359558775079204200918768693513767631072916970854518040334610098387578352603087322490756735772201639829608379227116421538157878877886751785414857077763974949275960278647179179039272339981680705075066368375120569282774224821088703729921662932974434943438735378788573958135997917713528410645173985675104172105235971903528347867147536576448815748818525768887731855485635593953632325069661624257603098808038857258568478134376342253990066434248383585565816514538244444111803335932258078250711659830805374333808901765071061883335780002316345463810914021458338874910121767986382912118644739658234263060704043508194296862359431698181271074916497693992808659068969267337760916219655906197563791694857313643217157920580760918053199608749597393760923425045584992612103763192261402939229830153239962860499622698753213099367958432216396293480464579210517767611395156997193873350224361826924254605053395675661750123989638937412428369056760205278325825955317297008045940605696941179564671631432814539576176510685088988991638368284407418364293116660116397848488104574452113020545538717872437336188847932592398428656519791033984169791973215110554848684469094824701968261639856336690769712930460421328523844814009880045840448167063966103703819436503762917920623686510985089301629062099468943336458807037396186384690147218324223417287131038503163934708816232905504234337958491237737658158439121762462262717097038417283838966861274638135553687396539059037231783433452603266054333823294093865340598521786344967360479604857659430935990571847199626482395798350773936344706543529977032570182022892204414536942868726867886443276141206434465418349844679373304005651640832107514553087022032773370088909224632356858417305629944824030229503698877517643373367373333255556805145529143238620075572853514650805646873316950889864770458280263546033949689385095246612948523454746544132769229738970922593211000704050169331371734503211909389209117796562791930736151582216310674022299085098377966686815720136571613452362270143089743670786916943262064583147969167546633707378517129339284967803482327891387283052963618423561840772155616465661392273779821333781969274469824143967665177408875004544262401003080406140645786597209449106823949233312910697713295636279271486460540357152584826253186519960851280331064137404312709286860340674830916560089945209294452591535245741292589567566628419779830164080130400626793560453919851605426435068261667388394352691521133332951666417200576937247908278018452204538784100346382685234170206327825270697370159805869752955125769293480050517374980661193222218171125349722999688427537516998908137058850782911559757920413961826800409311540666580641789138260242123291641678621860449614413504958700072675225738166149322282121873438044104849023540819751010103342290627475763889099808868539421753081145075629855158949372504991632881777173894037504951479895763366878722573386186774720654864690798298269183288812515443011454527831607142490952940889792425621292580123573897820005785445239035880700496536018694884036219856737907239046315157029712991231847698311293548148482654240076516759581927178141011685433261111059495196253991087130581123168820244553127376317664932438671559809501605172233301052942443653098206099284165834903733603056994015826543843338769396625445740921048604186442168503734145739582504489308815469966939923733131441291112746027465387122127227611877501164528795398190072166711184741401574394149295899079373635433335897304758777748032957870802542008711099004444396206821106069611090486033639161627017285242615066751652745492330597078741974257225388591499047450856143443967885255235750284945548145233944885678527603738356216232289415457446971791163430624969257999278746066880350723743557493263455434428530532915761104056876790945461975580088483851177609023500720963493059624604550174709821054760928096186817545751403951524634158331705481672972450125362542067986071361126235974989601855350197871507669882921653728546363183016031380168947343737550107281104116446854867932678937864257517739878142628140359825831563511163472374776036981860239603312209515588369039740244678092630548088516495117097415537430740997225455081425769539596256085059449887101911939472435281920455119639408918063763492249791127777258261156657611417871546695032719445995121937393202163068452757217361382763274378758748979039319592427863411566154870925855134289545784605759128713978089645327337223825185714463066167914588978213272585859580164215728112401260807339222743105896519033539876768411869415023105603275816863410147992608523767545998496946438372390635357086071952073076714420164879608236718019255346602073605427637489140302609443655410502311326270812976122247079673388892755143215942374303323108011782421856011315631028386092047521708621197965092282400159921181888970170566239998216214587471939711079182218259403254359257624944894656731873475350994107916251908291155687124125308322597542209383200421847831289041034370352448620762385944349826432233511906377121157509575960055523495087365221729081752634367938678010417101725462375894555525484243195149552024717669643876067907308619682245583186770612673676648873600885723283941289380856980070922461954954258609464495001033394314966678397335925964190177234090007771681022166634170257887811364515487299449335443224278439422719957492159780705620457562518229449379530055194172362838938300584949637627588835097598047585027200154717257659714904370895561786357906646026423048247088721998355824008752313908033330894634705788446955499961726436969374724909726889589291055811618202924073643522882362011855621730201698266753888661556644383814843925947120285353793762900924324367622778896283453528577943313626116141635272731660137487690529523770445279079238910215391044878961156703127800574760995177888289462932155597834626629677697649032725782323167717585813395681352305339948686785091436692318758754967201668896346811272671817688293366507670753955571293778061609497284903158405032305444101871415141571699532167488063470309937610210002859953811915089587018211100652248639254065997772892143172900939468522454269923079971866974888216286232635004447425939115635016581527658209494692573822600802087874485486964577547774444722627312869094784326006444543348043984151576279366612862862303254111384775797682075821598195944244902664571309633759274220642102783067614283600251189391165094184432503155484038616861215745142562031775897834008410794845296116817069102571620642594301283389472274146431918878340978257972901333528341167549199836704033287716705970373590121799702467310082474897665632870941252563577083977975443291382492692686785966335963157273699028898363885954760756167358295287144855721495061666410968823837382879203969679067375431434837656347101892297217424230640496240165561125162131731696489751150074017210725396566650381082121444276273594342497990992176971042132693890163112100774310313706167435326641434022393153604782630656061119780644982577404172292796487392884211229998054351576136161276022824228123464599444969340974575066298039848819726798043175187836724149165726003866379028333014537195666791114729920349929038486702107051715170245758521512108738617281688261523336017446919189356977110752805844527730391868259254288428752408955787125846795044893026774162070138467564873182223995648215012204356814993572310382838104175400072445824773231184233028724327759471169769452784135071884514375729223374172946414961850959294135605227399613324560013550678009936307269279401230999443739113850449344278355026533550180831545166149846944299479478910957211064382791894330340078005974603562301834200147480102779347647999998168422667283486823306085801226728024821532108387960957656649800170287751244703359262138747242251561169757826925127582495097949638138380957550550022598648306328845736042593556946876008744452364022718971518705952612191150152505640679153369300565753532029771729594408859339602732721529237924627320682195045064094592710178982323229058168978284608557071970675845095218568783757092972097211846968898106557582243190764036668903516933620477994240000016154722556284143341410249972547508263838509353008918098603058617863890204776126520310982308508605492362948319410065100204767718495673622550256106048174847060202861712032409719659092036614308623393178148946207963477955949701931632044199900251748811850707263438983824842381825968875400948453202327686407817864380786833450113625065191889376547627578738494768678604003219889220110777507518500970737564471841657325991801842929844572087129354652620164856819881299305057670219101129876327875327955755225493250348441855542843368961210280823504732994914965827151016481516187878440444048291674947755704269798468019293928871999936425354627366913013129001925130809114723025734291310016651679987036863847096264406886671039557248736307106428570708874715324120429959843630648736363337628397019850945920185973181167586352299995749158401092167877742518210614323823851540928112340856932676364836788213652773929377048087105189509154628353636870039147628469593094373371644498594664817576462391554386258326494749584442117823462893629165010947979115313592375279711420786454042804960313395093683665835497287137404802200248147866364605316723172070893503151457543243107010603504786950603155591380851112207457604929022241287719778540401239214047078624645218189217194927550683252154193342811091131805438356615772981722488698167854080454257778166572848498602104800342641738708615542675596618196991857200842158686972005206577732374649397007349344735467274046340724537087979072951965474686698284954159739613729835334220720693546093638032079530634883218792462159813795768705109778261208873040008862683178601402798454728096428007861227319951271754283000062274056061503797780762088617539759630598206711295836685476898908714975126177249556405458508840967388876728926520566430131635978945056357694408333385124592288204646440867462883510302898758802023296886023935285323144220346159489793455701045479867557607819260709474691926400791024989339038736671833212826494302743397586424983920426648995649360303093830994526522041042165713520174526492670876045268834717591359754717408419744591391493940788759588839508305806090660225449671428275143339131579079392449356416339541542787410807233261764867356071504584935333067848936974794751862338606395893444183606849148818888808223408553180570386162519705006207112843385727103446668859908465380521534568583056297430685526533520324254384215448506039570748591879107676302098042087135588857583578093993938156826530772493591314768843436438903810721787815906780405537334485528864302968135563636716471388854688893006906944722869778586629621522289139110899627628197256968509559132775097961116612098854086611848484581959527222553432361132535181572521855675538372898863473578628044869806041230251130288460730428733322144466626619830032700076113894723615630857862256223511681761943716516831317540747597329563482581668002096492256185526650805488545846801430623969990068635561231139162582096358923701460507467791727795535525299356312525483268958297612614218180504427652171090349566611421564455514948594057017377378410556355550334150427662637257354646813348460051838815004641464942069788264379935001784635171846866671300824794227068662808958730673625759354763876250701067562251858506001638646663858206474591047623765974713415966867635717940434982455341845014518242747760928668200356663887030616211793154963547110880697850048334868181507048641420816828716692366866260512602793275552272831216697574632201577017302419862067149790247427400005016584255600513822603390808440335708424943917984118959439343941787870322012958587025905588488796081913830201870541942145478296314313474281969800256129396328177816607318579493287695453226064198202580567729912457024013284064529560441815246229644595233969788618502086083035577175013529111731882514711040815828091445322051683658975616851487517280584307844551347395146293019094108170952916041322795171607860246564183005369004841155564258704038965015338492084101420091058268030908452451376243313139208412720878302391406314607491566882218233910668165933837751491162737759242494759878509278286653951981545194176371505891504036477311945471506199985144932159067958186920174262085965533251394460547818005051473283029384717013667072132760694318851781608515935816569971632516946010130268123352861288164918913122986328160024015284930798901540644173202836187819908308438224758440294637064118565088730542610164172950213555120040484487528438801747524661958703383271290948771691686753011783051294773466717948092253245117491717050722731051420948137385617191338880999883228611728408893440187817944510601148423818430806341269568468925858641737547837082125895894829880845316660466081416108810171145822271738155813601259756925761582576768757898351178105913677144969763246801146967263835379064288897582494865864776656273097830169600838608099452941220456587623389223853923161055129123532792048084443299390278104440561290891659192428683054538143930061642990986177485272292774677146628069757434363488761881619593984917631781855978028771558254245923688516056008076109562870297388861047197272967927715864935059065101588606513208330670837975945087015597317391882050606909703291268987761101668456937965841010823942612979034692124514823709465414529975332013388394826013357775682721153171263689878660977802844136803452966135017850411100110303026535060529770012922996421660008945784951489587849616822334265041027638975574049337062413896478217836282515285924705155116106139325583099119677097284105157922794211053504184729609411224331473453457466848941511976850174258910982153344275778345822681257119040443290478588244643794506017255522086380107798517523653532232887005851176742039622890100053579649116257758916997276182481471612106471450268110297868072758288313914019822139669161631702737521439917393058279335437280253766803085117638906713579668588881394344277004521348464555423946394310235619694222265217590468531852476184162043771251491509700568632354353676661928853107453723294666551196658101130976927302762591940776689898973527739367281529061952353762166484594584345285968869545040068770752115480622766478681472032138098221599265426699849486043884868600926991549825004729970950030992009266827554810055546699709674350651611063533103989963902794480260781233909658086615022822766370804309299887940233899952753097076583150898057034041427653868692872700276661489028358549001196628037667985982276982060235936188450367277548401907024487803160125370665603383171727727612686455409927286277683741744549691124463762393136372648376487831414643382301414545420197239616069234689237471244820529928473098642571757188762187076800329822526250789143962111169115912269326567335472707929272824987139870391671740141926989015863843765479757994264180506888318112996164958656986585088294801316410300487173598661899877196950616817694818432499522060766425417973575517965050360886608630916909532462300679097211033938367150257121908775813490782375270248212130836712200849581082324934934716878662961711297182370761709375480873696876994924169277521340942284943990567869740457739217736789221394248153598501582992276050471812479211780438961825354230182254850291915175097500177887649410256430514404701045895632670775437101223664786659680918584805980092347107324670944368505643501531888204908674115962430477938452142957489001256478862621733739050855049983558695169304684492559751140977939814674814773749376082621840025733455161036536342687608707418709857788014078320603585209708370264112334015976404268271208253428029931808102752154779822630698009176666434352389019747774922606905688699491677674971181328398098423952358667721367626929901464300243280667921285557323789134911593535428708386844318458296032540320457301080296897447122597036590678242875022218758097310931687267013555992785458559425584538556527667089953596675239555198145479533560733081393239516312199188313361954695009808833910735603452577332367813180630851767044375780862822670135925144177178988181656384183347715054158525692628190185732993727689254309528971954654309051400386773042739576249259503532344777934921655282606782072372791952443672827956789224389389358457081227905975699112857085930009239822489418491877035656527901196877294500392017350131554694777285323706162461290223875984703404479483126202969694543334826751926454797631793872693985860448676582032464592255275903899233579202675116753443642099678375457501376432181266490991988814092887925772848375624589824225192266203262062776846263076984546271226940989362921978074737122972684083136102538352344129154186759196051185250931798137620220037247183866747891608240310052248818456300822947654651758581473529470859057907278017327355417901165536198656970036923612045087260828698089393143800071566479884721241754409903134795281125669442089058436846377791092015718195906804591562873102811378620581339392351492937042376746392359246289180524004029439938583443454807985812433030944490303084001339577800158906666675298681095947489448438277255910852051029942769615470080609572084707072136976670748855555218725040093247638678701213175856569797309503791174596141283241065540139682189706503073729861448398298901424621248087868322007931540065930692936963881797445438044880347254539560523815983728781593536136779477928233606849618136968069697163889227514592123433361616399273669218181285698155372334490891879027246565471849016129242162627878321084968018104309535201567372223602053605515534052705083945584440222095474810531432731496020714489165186651309273424487797156172395437041699870326240448781486828890658015692907289904185016719261941706053993614259475843942030715318010108759716057406409148201900512391318354989189446184829633338998577844595890749590639499834821641513359020908384110648948622545521063311622207511263158771599276502870079353168494366045802711604261330985565313440244769944340554828794752501760841880013844436261269656715977353535538832868471502989053494085433011498719193361280931781318061644767039895239182754957212023070694636577482353302703106551774050654897555723089394512830656724768871802999973083504003225118179009941569454141042220668632457403152966482934388025679982482008899635527075035714422615116194335463339133584317842625270246718605772212748154485041772793031060576013015526152523399002385164834369171823744055233268920297936313392735391925748574678283577624205066120811838815756971061559951301078332457711304787947587247052483580233904295193323659085792257469700661256469523322321493147838938363312621124785710467515537232617879945039984432547986224054579430991858996603163577995573913485944409539374612365728181381955461541794438500565680603510834897872319869058915625338891577905034731410145734980838345589898229405283271371861357291618475060194735326924847516050919816077323021554334329638949470616369674595763283848145045372667155906264856704000381703237012354362003528214327714648157076045011967358477947961077257467067532243174200678723100657148513092876099380774455576954070252740770487993483219023906001373218462759671918557406171254692784659767600458220315518779458844831808486580980078288055989466786742820335787128998190150054531290221880330415717985216561322293730999557149452428430048123805189543415554489468237682487384864166692721748396638357545953152334550955720002298634851411293677869428231200589900964681370207187163069087594240065260888667136231668968156418127115621462922065373200331604403011390217177866323989068423767581464544523102551193118642770331511689324627922422177158848381089374664541199205938274045507957939598667764464337220848077997893145004181573441048129698227915543660400232856276384739729931066377170050433416504866549524410552506289534148792182437967385529602079552189956812729385647152378252505377245989448462736377195046945607532881718878354050578231239760714104549665648254482830219535594367341369729838156215722180799323578150010817207396168862031815433862237698583751732240146433055654489440408913637670966421864605092487588240093024856963019753282676147682739308817213991982037246540109494723444483011277347927769615809260657613858829242987416224664504959710627645905951443054068226081564164604299326523912954014616123851029415003466581847052150858263175856694431209265361778904498402688163187117724743032419715512752236001298411785453994993561330025791108303138043703010762726381535289757255301469178507440009319696046642491085895308646856972898342233867000375130293622024589997017414655690866546388142231432906410582984672644397984425635944748109280365432912806281970801026134529090934024868705411209916131120241853328646322673249442607812659269824385014736375910704080572975609171216511459318303065033970764578350065549419588984991353740800333610541782827063153678011271383049185277217625226798666195202940123360847086085560816743149885388006585001391814924484707978771735415884581860705841884706005544713563444609624820519285018433453601330323293425369320012736430346732476064115372565324288502949556266921384085416801384502975851829694139983815257736462309116859091144543182138389922178204674302812147271019241184045450440231565702682908282432199832109969147521647037066687418351281590241827635554877336752382891634124682984467701065528913176740028020107535055862260674864226050578426444204321516772100433623417127262188006797509764110649263762104494020055763118438744399186705326301487321319331521649272141974254162456860887696387796900677350842071589928413064066263778131445955892133072572637255880684476490772174253177405774404321561731262075670937053463307850741173104949285693602631155351455715302520358290914467302757314636755647510349450112441373999537851614710665823118249707479148744581384005649847718790782812153843032380945177610686730503973337812306275693827797464163960695248457340712419581470173976035208893758599376045242577056460391401551075193751029577643142100251394614066264510578097483471641816486346114542349984356449716131628152381951957695829329337146822528267659728411056245884713605687411985715131055668878102701496355079521007140803056902411905042664507988066805722968021881922560678111763281346970272744191307797408404941274015406629111552638168385856730167542162554233945216023917328863274520698984016281578832088290923507830568206708241710927604944132306932523453137537721823920442687137435233127222763814635720478165921972065768318802868543604086473347156517434549788175080944713637300913990461491519793493537164146577909468233511226931753833749118988174670091632581994683267822894807619171634907213269982135467981757360877518700423435509171798904878134965840762737969048122432058669915716223714666502939757341108375205207968056381852908989781005353407576353166342207903754087715805928027042063044289161168510293412349268130895532857782690524208633430149782254062871801741169302681632777850242431107712047310539652653685584572173716106899674624301370082674374860075614636019834447612210099735158272585489736610812573615487321554118587985127487177061846608547665545622711513157764100970315105492833807255259098691311733515056764028374907334076522972307839673768242707023635324484612477861120083718572806631353457363980685685418687144922763079466222758706746547871689217279147180143291572366843337483098333664736881212132762011223425639546778390723029797273017480329690353142993083240543848705158811472278037236134961956266874631031066591757663033168575957300219495679876860037383120420857997236055817250513502171424506887332529561394197940237651626091313905689550489214099178302845809907575354287416250935193332546789802430860933409518182150686317165382141118792813436806525688916009153841945179988339515964237100833739067456155928210626769836354722108157087541407199209900265362818895032949325300204332578908769584461206205543120189925715781272176997323569021917530107217801279241721377866770277729997807512402061872177081908783883178914184243799948751654264025837160914353085414393534540005678457726724558379087457246768422483504196065371048638656018056973362762099355372398480148791991445951488474845857367001621817933960868839615222208669964007231702369605122619616137706813128700700908537987914334828111544840863307696740429036885674311009016841625301339763664206998776615367019621524062378658937118407250385379581148687276952200882298906468631491174845793485053567521658166780823621573407509797449593710214598248461157861060317293956211628072999950426522294834865862267880836885436629201634357096394638047142477099379849362013533653881817332377929198042941544252537327783330011932119825948140688648500783973901463218037531681115972262852161911949150048927337986760566012221883575242914214532102801886649152971737826497097620313896107090712383970231470709395755789190007315434062372334939487614152832080623862928337335456943798659290411331656477122901163128321594433471252025457140097642614135003925626015889118305404366568176372938288023419398488694112604164119622664678302802438867991538633562944038927354328080273754731467745099620252858625204126659939123672460599032732536441193659458215127080014067409637537175131650025310979274266066556585097410052628241128916964529573525246822969490619772710664365707790906500737790464692884481254543272616209698430423708604778801208576542215276437003893637412219799066250805533799609593659003246461478267214001702168397830410084242722981099493306178611036456241586544460468259043977184258326395536829646439643519593496234216796051987448124387148987337594946194276749524633632268040503296700998828932620428831859619519991123450764507789869659306445913378043874043690540966778361112581175072046177741456766580272672264097940979461228895718683397585523977587470914289534696488805663343777759622044446757809080111031123282035599522777773050695759510154940220511885029553281845419103616721220778775838375614543887215362822366571880487781058157647989020334246848502248714012421763135496843228058589218613524927917176109028339053990049615436066725549940213871475598080526461352406105787900992785288722126831866606408262215058030781478723949495362411682387207653105702203410387615724525054658519196221137048280217864528897290548491196953729003559337655183849835397214639285914259601639256055514626198696014563684976088906380631277975533978883926674781774896720658429047051676460930728441264686763995342996513646139171492032051685431984955915933640147670159816970206008443501097100455605459594668420506370375427189476473005616465676623918246015192266051158909840071184567740166418383723046783993917137418061549949764577991315468842582374368889785332377368197663511783366915494724021714521783444677303602303561930323891638846968886484123125375842710903789649041249438044571752329654875873756850826760550374766967406152743086672567169424097900927014121412602710303729948039866031225206664472418088329354905608489504946776985041242621934984074265387570318400532178204117208462523963314610930034819588919208840735166885340395851980165171880347943262017905197124198678589803364315118549793242455648961698978988457465000397100585528555180815063744028980286005626415111190576563598700326170091144107474970058254085952562810741060171186070815300111871327599933943271381031314039296468602107033205584738173984498425118161596087257885921790233805960847835739228837557038546694719967729769439660851614423076054387574724858597797474857504765129721881753619778001596855445615875342535553787012762677043134849652724657704788826660077892110613652135821615862654833714736957698140609019984387799720415850736573782039247823880164239998343655138749842764441107498287639309720549633068731728306516165896127576868542513782614944780423753782656088417776611289573835845564750792088899447052659883026907314354046769140167710523545497903093337558594172005090203532931805180713510216361870555257621625501304874007622930607703380188484240789742752764161878697459044247859930379769332966159985827282417045950823156102408801672681805235350758536571611008732610565424400366186705315032526598305382645027906693618171103909719744233036459258655537325270227574666802549553483128024522224904993825623052780175808814334419051055078296761646964328135253575549276135152482290267832022400454593486222504211213551177607142467486888725041875102140981602662582185750995696632075663506653901157911030851107004668249089015133746617099710426759927652697339588157231894206860626089551921688568988935534657234710363669068988959193097417441396750560020547292059768143218045336957124655792213214946432533617944877869173119278268297609582006661118785394450759148213387072874025534764945550072599411027560365226243253302127047219503654374594630168119106011359721294093997345069114593756888351955954565010301414979424024981073360382282808325983404358549323924263146340138592997835538058958845581311965611198687537545533617727449308027380865430986924250122450785122318398724937741370733496688712663868990676812501379624729046063462073626554308125664713177176053700468265346471046313019511879094451628161764552223370807776133528785654365757991807075628146972176085752612853570338601433680510112703315738769133992224694014189974719169160227043636927216238762014180937939711460711568077065850355524926120032797043098822435077334381320777629086724756515942741329359647791596802344003869669649411927753300533864628262271278143718567970040187190905834834804844381069381308101672377031765912656367538882640393877910291228359508773663948342441189038873915221554140582570037610597790329768774709426441534049110831086540109343236515037727052207987108053493805044642573736539911777675343103261348541302969724867339025818399067482320281754171652369980460128394755237359000101027719240190913416196540282656663619741766110627461090344333071699825963457421682834989369940212740791961403555605022735816826180165363527877195407983078461433534629723895260608108187251877801811321357024979028670788111625024866252429234129964306805097205055534287623230155849139274816014566823259882515484110221825978841972270453917201140445696243916175620631138631944563403707159684073294695105653369848163521482962202701442251075689533229854572278125090456792305947039208169625057826767225649026125683810454148678854402154536752589834795233879934320582212855394296596243747138556380870345485092413981502812095230316079320698647942187281649232203669452097481199616949088763369566184125038792429165723975408454286116774068725255256866965363011357747679582752591877969677466971510310748827132130956818390567542294357941725422556408441893622000323827797470105121150942841946654332028016900800654315060963735633789544397497319876099759333612299869985635646558330499444355299329148665600149402090676792770690565622600375362611628429411522897197511189171017861879987693599757467012971917298302148181206912540558482500113012760327814201871383656634923781964263856214636583703415376740366574305029392488877345632212055301573930352735065981730392644706075363407534637693723703225479935579652333233636370731432332101083214462945495701865614574997936220187097856555646221172999019451875253851495378184794320241597163368245254150765963667972221208150725073843906094155288184135858611520337603307159502923270922945037915261763327839833358759801623235357943250207294842658668607242700097173128690464800149215232379401905509798691751022513716133615480193567832081534353445613080171267803522555703390638509212497355926837045696465330688651864648923576141888622824764849226150638363089607005595192818216702199199318876243469109478018916657986892176899168162635140809960186786916331977177022040303810107031431688715483218869748828208484054276178677942182285135029841234600003028037550997366263090452423738983048484161451637460065247973452688271919963464100960888457695302022068091505875813945272230628795093217845844858145076467298190506414086664839692933649435325521464586741131805214759049221502159314037341979382246023478908201430612178736197871700049622348776651381459832064539295761575666371144997151531917419947760068624974596319280796153603765794531749990956411557907854007070674348580683597296713834456572193032795600036503742157167950331783440499566462691012791764415448346119368473695115025662052760774448099157381143237423490256513790135773226727385664518852475493906929471304348218524976654269993896290666908251444572389233478917743041633343866955801844311935915942601121634335810173104764029036807887546990908578357135778250694362245218120512516909079983971004088107286499284100916849866288900681248673357814243478856219602883945398031180482476532383884745241392016994742043857768708316031274396807089364720855548150815535831469641992491637426909878325864938641152942085609980868059481520625629301928393396844097129717227056301113908362529690743796671083064086981481397380767117712320450977370803737215314430868875651408498175275647108815386586616996580531130588159008227552672475146117296972453112790383821719552163376414809429038321515825461247305524013504357028539150356187389790848407123442063344317995612604590585351155692224552003005995678593027898130826582308380161228756853326447199078445215130083106090887003208706980924004976236469333801548497525878964250160267170220574101685221088953490876539770583790855200057915542997172110871529301332422648449547600537532155419020309909044537460216896522006266926149981373748547340319216972866172081175548555976194491712974183106543853673869382130519690449655841987786909740245020680799472971285639145087568746613614729614371387003883594254151968577109327123482508311887986069301701848787462548241794476596605801118107523549085108257711612483549737774600833628980462476197825782887691151843047795162086352357627484681926419925945675106652643841109195631615082567043904844218617385013708524913832784829666745940363613567566040924344179297001696051435592076044613439613487718282791764040608133639952493027058064837450263259387556809039999370566880152044531514707435003520517305474041607297008010139784983375262835795046444266584602714853400873203200883646765462412558537733354456828144314706473441293634521091177656840681356885658658512031009074781087486026157820490970674605079111290571844092086070382700787947136104263406564941858655758995071545509144707051161098693309784000412120336779330075550843106947440982242312938759559034676637286643339503384627893163316057747991335725382801812543071502804429248172344178622868351751870605171644702526662702860492604498785358174600065806226989518669977817286849238335810604685418663617853689868858714361723946832365117600695654230433603119527572667293438764664743255712706356761323767970979562845663630590842315737546910018905528701978958266550878230892955041522785473233045747478973988477227805262180701755707557270940924072039404583159498511781138863938643469321805834506551628807605419402546555434865285975007585217851743621891613980290188196723834476988397295506075657989985118668111419978964305917021579033083938676377303893959459605937551393152267826695547399096193217738301819597762139538671966735493610826818475215058544503151264754352415500318325151879317914275968707759017501446570599136628609821632081159554475628614842597325848590692799239869220217473770427906021279277231106014728553100056606196096604983873290704630215003115651533264277270902193585098096612171855697352194828714087478433093260209618935126053415773452611555157172171467641118538269163957127735070093371130543667743086116207717152100140576065729071058059532652934195499007251394376206907672360886824024065805915272436163483743704098902948846318696572388755221585815239844131216618200178159428823108120111591582253761560091369396850055031190253957493763662388917581144231579573922116897717661107180468787884163466439921387179201852894239430622973078972736441440020300916312983342319697254501920528991699328466998260769339604963388809194139682411075175015345940811471892236073134060810773967839873921595528687414100769759303007898163782741341313411320679540429564766438440398514822580687407659785930798873028151942393797883943597970325815941678573359785325159873573579295739192832453718210952350299680436608804629091792661100235751320759255195495601254577581333101071830748646688649444349026354323452900589525547615977285446259535512472158033005308058497463304506463582295007114928064222260781780644314035610532025118051288536182323639132823366280212447241535030705230261232026625397157260054489643080912635323670466960786726101412327708124306313577395577722049736160484803641995138745446470884852961249563035521866742099872667558059428220496028284834278166109818402803535052989741222983859278110309457510400857075258265192485180326075862201054994093245998153312436071850818543247403604082933430628917636022342160592240133310719371960087884793092529076857203250189486914894838132002361160725411034764977881660193728346980414128545414854836704668028642514858535258574696229734998387488832587261593356844764269455786125027337644985307606945554624952123020396309256816257869784020125766390191819165787674230042946425888754727229716591635098898784905014288576187705404739708455569247600608083433131783222572367186987406334196921296032375296728510486695682836797628480665849099235431247814024535062557727083055652035303738710040242923613810371887056997959574293561034294496480998680865208769419854742640170037993649633691079607664793994511986797947545131039804752946176455864912250312599641354114359452460715853342875991478255903840031139878214017551559227604291758680234354423029638241679898674735262023929669363642948096155029157857677669787827868618321516326781075452025045263046095084058361486847186646374548403953187100491341884038984924662281430529766214058242249488875866446709866299534125646281965790174275776046671061508129692454274286473711125664164115050457715276692266673563698479917561141322688932954906124666372246765955792772741395734671950982552732474190677950361907516972515972912027908058393979253600633264601232625408959530896278970837756664040842968720892941003904888876378587362868824902476861366018465352546937594368173269469295618975793937851816899099115140045552946594938457630579334063263519610925966790671663055588523368537112972246400522469022707264552882392531875824973540962009437502552263274137302570041473993315668203540021417080565182356430098089074118220687678253520640969979481900792083667789028631002264261201540756548410672941838856423625612494293358184615420913146417952143407151803404443900502825698147172837649558207484680268353842310296838763892755801953190065227862899824119925114144662146295453797812182539845667134250173832163358434094838140763078739890411038903802865957062635956135416493403469381436251990163651696257246707499539193982541225524841587656865425780380812711566742101883861278072810462949517037399068711406031892256992193430624922812595715473173259383378950800704451351657600576912579929165136009433080739887430079541015463083609160279610058987139470319593562737614294580960649535990965003093466093891542277173428929610071795163181658882318777208525140026336559383703423035598377757068833751482852056417722660354829974464499285654348148295705840133371044181882035756356837422784181486412249776547297985181811527630014994711088203477761114838966677516438285989556506560743034157645080786992568982156157675942678355464641982522251658610774128334271596635874132265253500861925418616559352911324262065839157689271653725538378339587905183010214562218337028212192664509536061371232691400373577479230886881923553908274007134399567958320266420134627737594334432795105465065781977315609704053503156651423141024746858495375213136608803587740422014951587443679346110807660141857266500943025784380616320756289421624793982952976565378924913049492876281473959239641882038449375472945272253114036706643092904768966564084028330380809012255541278357006528967948472708790953153692239775983353761264255968623385098655109773404909688459401706759258541893423068016020986956589924843587066427353509149360344563895856649614215983081312379485170080210125767005089166029753663879103462756918225461087784875622860857371674194778095864857175367317504873282544119490719719083758696500054013982947280512862427278353996944014539105438067186156374853569162966002913100304235128525299774684578293154730677465606762251480399236877792868491024335396724750178493754834684942904424218834283348311969201293859417795292601380754999288697880053826021097714213366289493956208642980449734976841819116561799413436343423940735204330197111867158744381317414961832772356309888744549491571692681509101130001787608768261312179934708012051080265196725507054992871335882109718644077418940801108659192547427236889028869132856874799785408852998186074824501694292377515764868862793222480878346126045949737869293421870089675713168871728894471967771472981355285655560426182680710777094286724614058306344271617045807213591967995580010073162129041352787540889918179451484107799679263575700442395704571383228469070285296364648824818297132889786302467609220636889728541606996194937285699010779387890780050395783115063124206971367842933871271897129527367314873030627596928640338381479778815668791276960504375310430355413003698076677719740761467056778581187155781164433942080310007303447759364521831411715868199878293230774695054619544484187559120211566903956466156700356538139212983389744643009306276448164455125043799924246985568813208448105608723824673281633603472664111687728874570638731251406374125267345560836000009173098159520829442083318157804103454948299373750369083743618205167037275696123182144861411321063333613295867234556403194176683110917153624438258566690184576484034123707049577544172844509544422349861313582639215261906465622469346584268258704898862953018940506211435060864350317684646016999469129874111995541080741932505053567991222282100584294430755026424721199609877817798032689016719471799063539456164694004705484834391845324098859350865840715735624369650210543686282715515445652374264826757535480818313112616080826690240799497799539143720005369058114262477479606085411188319884048935538979436764039690774395940973541125187240662312884924767055615417393472200837491675437074953471546050785881775448257402174090822156482617140951536414537717328654954024506779719700205747300830422999766853163627363169471508395750940905348080905764161804111949302200367617724407558001386106020769216236372633524223139976942522933426188952547643301291091174046916732520615725291711535201845911016328522187965522869119409847293345385044825779164472298620103828935547846628089984972656734099232006774842422627466745478585979739883412606628513603714937858840079922638629725752487844374506626023899328944851639186077630660121554388178147613980787166782237486017368152594111799528775596586885138850652340254694429520689372804395011345668578465214801715441725667356201211413438292771065181385196470825384965473432139482219916956892594406863109083503001469641444449252618974953529773816517327848986466478619492057859777475290538748450102746531442932826214915451715301202707656800409030861192817315831611534963489914448810888811992851103230634567664482351661091446426082848886440263531172435691949742317402957699297217604771991105725879684549556271103079089233655380088064365636535334741974254332798166015312293932163891194974521249350128071903129567852491990116220556080985194757144030577995475866267430180981160960959774400489923013780695367784837273281259093831875846918939194838096726004592892660346830364945766749260031796941575452467339771881495919570820779569549346599942613890826396735902324541619710349576444311699160288466287205716811884991560381006107822684855781066729616711930727877363099469376896862267999660716286673515270162626810073125160821837277631825284395778239311050733458627954938756324526172138925490636470355326403563795743419986961311403146919567113793396701723611666033831289936278828930937966252546381102919451706151411923850544610499848168070132008451179943308674770203917922513248954077508697059900028507976961773182131060903472507714140471162413473667747101839552930894300402192343694116475127454314840106423243351536499588349643421230254701166338544633056639869270183893425515781287559703833611890497283529031557106967861590815099390045022957026314362610054363629703119967004759894082733349157352862991679426197332176271822401875141075137867590734013053818441729802882889610333585864548280279413366068382072417609114646091334637272332216559823291608605947293417416660778039528308832684088616425825485964510110030271026334518819269562705768783821300662928249501585158007875003102954440381936923877441618691848356450354553738900758556880239874457526622004480226079438131892551847595446447714436015058449079471763681064904361338063242666582456021927212012170088553771298664089141408661802186904851640427309888809066826816735918257333589299721927843536991031796467224086888742195265787873194243080376584027541326536144761760711544807855854546010495632292681714514536400830337764508118388802529635806312730201833232818528262494507043053714376652111547936870996946564129450752782973894316529271362302719973461589430410941954533362007189177616087102197213735514256660427458925751628115970946693083948623439134958119181440250640278629118113820943838906498905986968376085603061329624118555037535864631626549867035152414877943834324492758046822282096844935188024702253255328961845068685556335984431848836241696441395407281250254499015337586431045969590653634761048132609249219198344988532763067708254005160268407384222786635082781980304242323363357519633539723611971170781844857465357783303721750605255818411477452170280251105493403319465782265590076735220143034599967928966594689231818253387206999259748455353910784889650385668291675021130175446959126061428394520969176292354023589669722345169972151262441571763782595125838759015272463818946867696201788663755052710632085280250392013727541269146066119800829401517854902711938518692378524931809206885903103745643760528006931242315663681195467652127626592524899668996767288030899892869722417072299146583890270508872078597567941439220340396144277903795242487396714544313584435071480978559674551473060482364031673109455671182935797592894350953200495924659612531434478266894106197296420463735944068170603680337567283645255000159918984545317108892999514172802637547122754375555270626703497700886554216108341203048892255867730360258803799596045953859707555159465808828041090954759251992355322961349717943205807102690461304937728851212253447698694499752041768185597790961730791902344916838869637750840317175005184989953842630763723910858902534835787426753362962518813713882785780797827899757908012759359198895459339324041342592921580322765188191779393980443141815834493684126072055871880501954821339243596383665370584701620129871273538368848044177996023380377154048981079945584076359182403129504938824668391198017748688603865748661041780007267663103082153993111214824599224687867057771618256162084237480729497435578718609329794646392027639883571319930679316903273588066745634602737169358020795134520800639254800728596381062108154294657894737665649842246702041625579539890781424276392529141604966007501126482463202003299406983735505607546038589880882113436929920079410629398097523927253576761244769603659983634578584001934935168272387149556470224083565111534442363099204618300687822338544594089317662778502867771243630499859914443854407277023168742220698174991192163002385266850227695993100285893139340206339845955921150318099576892511866835046275632292423212765741838204569236432805587066959885790096563405898928897422884702744295680379185895655909628696789264031703157045562719520099915698295115080709623600797748429994824018788864785978989915141991926077190511547145335180995397021450978756546217401389394683799853708768889924841464323051297512117030175022818057631522919977271421571912014867196051311230538887331544589942941022144898517307018131126572646931381595976184809574169061556864416328718477994296509694555654676706402028460498291000196951491474401604587593589304728354324460137904726303970157585264783412044409172698561438940338265890719053865634905861498440524073399411305830134227758087943587206512184298117179242500662047097387487393445725697721865802474411927523042366890142301810948350406796856408120702586114228474871549435320325309302362120504928159434801874605165759661853975271479101486175912336389097943128540234202888481555977428889873068888752172752198533925464330676549736803364466638141265476398430732685124259304602345301394755699686671511928564921732041172687232702088693119364443312193665685380395069879168764879340954793586302650907869986022795502963033187148752453695525155514251363400712648507673687000845246597181836242035602101171170164845525766919838613545556438869244084370939490543554461816640868410943752652426259514241917331052240864929437566525254922646295411117153167724675195690539500953322368463541186741910690275835382775295385485628592318727623709331233799958800240320890827689408419790745276339208427914366756474060606333804655068505173518779130160250124163225489897387199470941513484789372872238657779284982785885556436211900064621340357467048859665021836002251643987015931256717734046653297703756347048991196035909043842194773621403694454753604685434850330744094197211145792626367120992213242082321454622557537911612005141220207639735264611310608587589086565014044054581530419393458814141655715492150005600227083154750138834323802913203123819954350316140958926434877499759881927571675575258783434133634871679770407230341800349720276726172270409801336897027479474176522649777373646438914729029849558773388126694305002546573153485031776910250957602264142591168205237990458535229302810856848072685698277639388348735162915797771093339808308106353515505455501408682232951867289011434391027967005314867414713934052364034217510954580466397762628480357780021919681153703252136574206911044116113080196534900697489843075653354319920963523362799872370372206241604124475801293194294525678694793731087257980910396853198846171344017472669110793965088545834491795078087810117943280977285465303098754252342531825199971365022790537701972816546129583603328912371739972065043921095282762620929087261609651395825705887053320999841928525580269869964814644728035552299036469252239613821561027546733162685821196385754241918931197709425813422971632448453443189799331952646812672077002289375410406939003851820612737088957569383024538655102368119195623377137636528759383522868118843224396771478119680746377800329935992766676835114503945777797754572642350463766851307699410143957844093646616217843225273616641851491521828190336639131997305936082939641775951185146243778551281440603245682722821698383600756053491711434828455186772214660603877193486651672443882926449238364478199270627810067054938683981352521226646789994297762195622014809640139203929801726463146943759695484753418707970093848771301502699555943774183344883118625311906716135125755103143035863032620526189350002456301992578971654036646535322251999283680030607886370308729366565048017577542353010574516705515674047883171452827800125665255977157673072671748439686393081985304301579020977596149073944313194932874346884797048450332967191736147817483695460653423457181087207497557558589307347250088684850782366588105457399938194724255798540111416860811189668400160833642307446325474919308620678500759819826268632093074581956263114353746500811024115758287307875350639295069555973609884214965777873558416233773942883828157543425833965549062969320955956758543017486397512518323754035884672081168535107785991045123982243405503750453177487430380647172325091411748894394823800083436442322686749835117334461224561757287738791574641330695438679975953943483383772222244254638441740999331418302616464382085316314318202035885503642763005302968493144056006866687175256284502497749227120689179729180275244515403414266461988673497520107713478151985945029983494072861762806353108641298221621829256502764509839537544746011052547497567439759116023155858092151276031512257400523134150025975745384306142596861533710879564211526121252503553646192883799664381694436518131301070659892560758408342833813458490232987675607265291608799737688134261107843069452076261435138296711236938742097427830800701003723893727307943514906884578856851726632477614921241650836789669926372122435080235494587701429026870598273354748698604259690453309482311278200219004553583422660796237960375051494664335609110974186013793678164893230613113247095743463597635492860648582432165193658439711799186667316613493463340240496241284084247652438987651837789395319066063948855805775537979547592984519799487400053615615020140721515636987726308410201063512450992348054348502721675631918196158379428448230779853840789992629659674641307588663134815715625593303635554657365697334741883979470695369208435879399154389615414204912595798725236263360001747486670813374947068874143824310508165574890982981159101017923913085428629696232506576400672175720094162756432976279403646721505924718411659012721277344485386871218595600631592850553966498573131373295632147330512155971359390765796145653621269791514076198019217207392614793700836993509290844486796348852036362406095230287723247788612720991655914387790975919111379424552009206691553715840928670535159760218921574448990411868364308482307449489536875363104940498135648277548304371134529400501871342759172958437305378806515185500182928298346141264569386346867324535150496633982841637144493832349899966067460130395102960293665147355843933580782302071328923926765470135949205643363139656813311766925813567573996811110355832413760765507906493633394517301091293810400770146683539771000503827846734531326919686929957951283821627467645335961377099160917637566592760478694451989184208771291145560232487855725024476669218171058308193320712304119596908254695705367344888326093694017210403316658857545747269019022760812764440451932106295323025694177692614372033652636228662371323867526678693800282882109978177657229358436465798504762705206261192386502389604688333822939843062915564816591180039018170681566344547976419677501563438097118437730619874598767916720776764038255106811650187704608840500161073867111685981725599576618886008562769756935947619316726549472354157120347966817445719950158984495953044124702617712696855219529497371123125521080815161948265138147043834467936560491586994909934369068425644091367278784306156380229217262452050077490602164373637349759170097404423368340581985037907483387542733383116620626401703129689803876207568986217570089062635357905151576407870820778354642015766801363900562021830890552954223030964457476000714670225101318582354248131361349095635492196320426575710146416836776301535109828524917782392466009076615807336848653155700400251403245741039137483566055117019491109136117754578734949019800756029919273798235985353962068118262369223741176816474427870982954209801238992683081895421254447989817433637814213259473207491565351377304030432468460980609061874966169948052160415129390032601513514912335214346797804668817329880022911595478250419158163844142869859624135260149958698344884870383702627676580744565162282108328020279340158222914315777797108941186833821114709099482814646865700666727907752039458800519752895727038041000129608031074706708986703818958852173252614485258968631455466737396104043013348609346934680683408592854505967963708810562354999908414870081166240324899775456314438769346416921971098132144237053769429128843086606033852082987884553326267788046305819623890442308235227675551413177366445465934258489693869163413122393119047227320535217637962170560926103055203740074926462025116193527984296457032796265239566188156933849915559579748360521095566480731977948899025268169500207589291644915760595121978897533862164379777500788476546133674973824956455819541867956067518931406715328076402333139845037303796965114682080559596770525768392211071881029734611208937906820693798969864598861061393840257077210613913644787505270408349661367599831974141713585433577729903760392248763105521403124844033267667168859732003521575200986390118288872625799957358470857955280779778609761316684745060181057513368672889911089975228485247912599947775749906603912076204669461281771705177140876862962634675269851287750226152555362877891874387076316603528853251832272992475455586026204110471672516728259878330491654440709056457967741460435666417994639664922450595874439436322241171208475218255631481685668906486111294380693849947120346069762918812286123891810481151221964402833753205416108263143243243093051434488941554632941608960764152327181676305866083219290303142157201553758327502354058201691640373355754659201205500891074548362460088688613850761455782702861511638458973340732022795298052991387695111428589154672610190934504709191675243933453138863247122541814448633049862458216563831860087448109959881986109984557679885731050614979548683767976998646736595989829399789886147572290039963521333284173397510138406634745948878031939007800862815396743386498039087925414380966482469411591438946156925734310502765114272851149990524954816950951580867296967528296485088390976331610906726381862745463561940372454724032010702910053875939896240415264531613708517269520098492576866809377592911656185927584998167333184284680954652577444258834826781058426952353346405207510333178904079312083038112964859048043086735281303790767619809871054294138907726608046509520860408278997556154946595923823104304176732343172870512948723702735873785131019129987509119551301137630108150928418909912477841976613476375847218099229464395754380512522572531586807259556778030720963606707431534427995800935995267044809387177273310746781565511567614401926530449708957552184338659444253509647590403980537609437447513066880118468304827182801982674196284877998368782911981290577948578807369040516235671300442849733937711323248203826246592571427427211809389168161732577658886527833364445955475220565567455817269598662635013466970319813312677360624128600283922966082281334314744375456961513558648508098156947074524445021544873530012302913673533747057880908416878397042354177504989688855566458635717802091579830649453040600719622330498927139486184190733972534513988783652615429629499253897229889492138479919172327750966146824106545001267379323715164663175869731340581911173735156521246731409123806638201957788291512994208860046517331321574816333983119373770385949848494196158749766840031855392376379647900165363374729086513454325682630593903038575618093840014937335441477746565941900424936062213659774420269975808263943477722729876763947193238880326017897185984767429360015089447743818654522023233453560860031746678159852989620564737995109777572639049862692280404672980354307728163527154989491298714751077435512415517339043468097457462890324768917127146830626854981499334477177320602922109138806560017009135550907700736292135962477014597310261497538267966584109144161151924963858933550205948274820902813747937196849547849238338321738488291310347561733980774061492266556681889910160808222058632316515363336748698725908478015429633425962045672236628496277121713212829625879174824849000693324792151957798046312798829513801045997685590090125057384532376564394168869434621641335508550662882650864215845723238814664946848050943757300680738932862849962110268942780503137671763848402428216810554779929006066465545011784288564605267961358496223235665460098800821346819554484488679086999208728571123432845743984673838545278561262199988942135019307293075502674927676397554655098098151760888811838330817316329456572584970447195743717342259341935047157390899004105503490987373911855194971936857219524166567851258758184095472807271990387380360798405105873982469884504765801448012793055973652267705519575748390914409557508309841106744191281065130568196412134369669456640589452292249463344075339449113938060231642704869931901089874151593780685827702517987555667687077622561555917513155218340064436705957281374205984810866444457904219522460314631761494087954002763316705008954578806201190787647654021443445741087931934139996968338808442161868695542015829784112056636605461756779931605136044128458364034554293116078002924755237792640240829324507223168167536189484114597498118039311798715510287979777317696758275064879801512830134539933366605751197738953401628024757757932878345747254783211615673745441779049171914849644255992549458418940989776583535250701708864723813648492897137687258282135343447777675954712509166141346289392822558909916066502721813715461248309018847543443579596831570908480685009253837100097367913108014801310007173068435518696943537107923632949158699969708721835607600778143718243775666144005061089906015896990110090943615973979135055669380391313043436607679566721816476718900835021909310721755579953415449539220113419927457271107519616141428722552443346841068580913703674233075624556694188884890546990636651785025642823223453806554970932146634293521707806895314482604551259639106388085830546380928608650022528285124346733684200099280030881507909169565192010454860613679713662509565428284104986267283467820947167145389982841193828671908201428585165087538789387885734072122127785741569255733308871245688225446614598741735694493242003760136781974007448623455238574624045802885067781603132890569569554569327122184098433045460626764319826701591243431618809513408934636292883090822624372048763170974013649057963957731329062357338645578083960825543468430145087438587088500350525743551752736183104237843601114874028819468980633523712993078629531124522470430633333146582239521651464977293707400850314591198829654717822429084120203971198858326486461047107029916105701145205918962001294835952364767333638539688497323396914714404921270190719966164500891813233983290524871323642117074074707278831461677577621651369130514975704499482277200141641823182149674877579034935672506914826692138641809236460168907591061805819030968976057510849538197300818645800484466340627888988377611154113583749076584505422309412345479948257698661320352499496687895684985646811996089814296624523616236360683178478415059979278952085735029379434691237537728738600372833189153902578308907809013721342208615217913230152103570648571050366437045787420335016950781657620423198369112345826547674895710826835607167224502286303761928868642928217862594081653282505402759156308491867271088041543004366089374058252257193900845846572487495834443427366877466338403312373675089147416048901705044670407287273592480691712608570678759867508999007462229670612239823331638255432110267457380526409113501987132092109963647145707347936609815824371597517150821704258660936460719053500071304093524173164798542583305869696911312175406597901460936539880981166976866448938242041440613462172170233149578438080438997156257291264495187317713103671217499476469253249280434471310140800649926941884303308022227963709764672458780705524562163135590542804923580579971957118749113111018369888118568085659356924122322867555431056808561573653350048338683242014000774879128164960528878600707335969974773289885902180416817795002481409175073906727640987358965993006123014852593993483092911261827894241830156909484777256891450744251862524690476573456811826419456067855993987798837174442240013302086403315607002579870061900187212165110395162310147851034729965541161694430139109807696852087705362537961677248699080330759367931202690583680484091794923530403546118920563673555710990258367867741710237884203891846697456704187432707655764700686577115725055821135410741295574894548023639495835093370118423493015172422775431486153452226350061411309194581420580648789126193152084918121962202913816722000451798533358905045922540238893625162369101274040442396114441619904307374748083308675577671070244307673172570412025979809913664080884677601535512423958230874183428923371069523276517354996226836656214081175100396469215883142195707483099896656961804530443666735427424563174432899350269198618993604631233250538665360099532751213114184064773159945727749132811416711513077624491035801470958851644082473343819971639106331376505423664345653652481714689908968362890405005773426936716521741544275057011649688173753920125792283938188574432139248520932316948130653964070215999180364833729325405395164665525005069476789185719850032303957496427663378751179763540481789619288186409183952600945395552740300781875277227251221212281524330309899663632931110565594939953121827537458293231019383592584426641447242481987482165613546819769346313280190838443684381949258083847401286470333963773855130802967211794769529919690632572252246983354585061077594211943396845539439290686665989084886160921607080770808571569901616401608036865417298443170590696367576551549781018926638275713528418411784663215570970779009038527406559764617537692929235157648407861011644485478990830438324916359148633884530814288609161648537973958803632000639434366183135033647460946353403606208797821475709767992519634756463167557792423508541593787198709174388896525692160404146893830502360286235187517324094569749001943980294842637380326153780752803320753293503214415203861615094240646138307716955124052842232266539866839438525675702443525263654128306100171517109787609879513053681861861043039271626034979366158079510000881943535254650968882434763238020413420516729343435286931709452473062162303301396355522473317817259020735783075492968631615932821448111768292100072214623869669856908431426866977263773822559724050675948396706617387010322514635367843727349481406710891262623190198335495298689554701511819081362453844353907687542580775003378044429981390146321060497275837324769395932612822387900383417851611681473069588147228483611267908802368113994397463181762673474485951765961764190719981147854036183629450526144476574165667023705681382806258438448368523092055042226981606801177601981224314681684897869891765829338149897090671396001844605884436397652131463826775951017600029051245518894697743583491889245080368751059872388139587577796608483278706040394125743308353644821573305344513636531523588874204513357618461956781264047382911316100753617999278381593004788628486363086131249173312056192194077569047811524008536330655176946421899913843024321881094099322646543606282699282411391871864751180328264979073161410913795056002892501554246889170558294765159233265798008997875655019794957122441752565582490137638586165179736827215347450679481168878841107624010570454758835983811555715655833411972122184870478114826440002484825701467839510417165963735083442807743661797466819443559289769212256031292561313125541353748180677822983806142645075938543498445831080589919557216969470394417990190446622685306229319823803847319523576547973650016187061590754250115705087515500501753619940443153213290743096351243276246997440032378893582726078711148087473179276015432525071122629695111830812911991643676566670213220205749082432764059363108537816087112488210259655346855065848496988642745625198124074859196020256919320990412205708600632682163687643458851676119909877850779774279067224962692742146572265521244833099592020960322973547814819311017780144328672447133767715985195562255203096403082071383202529105655811617018505813322005609675892327943139723686223011885589041311232541674354221785986013591581181094070247795822914382942009971315111442247707317522708404841888842025877015202832347506927323765112431525885323662086526056311036371509900161772810643591447746514278200585618977687482017698468160096307245422004236325622629125995427145461988963778548702259109638227624427905298968559864635641539784304646197389569754721531072186016292557735813944531585906317741193622068879950665058971453195811533718730821093894261779827537202247427219674705589225102411198651731173346207727767005775166366713797723171624293098736004082083199132091815677733053308689380922462691864547937531780724654241674885104907540691058186263254236046854583294227060668025235679745744887629408943430422676475140094598651804154662471323789359763800702713111900325149963817358608946151448081377280475400204320316439405420602920970525812122077985671314748200852517831080249810953778704473870243940860076820495351781476040577740718550089312273038579906805608147194376395581360949646695463286041186061064163914744539165332352259376669189606500339812775834932145275445760159228499159392756953038136133091453027255945967196962233937828382178447487741809582212701112849475055757702621751660870087947896004827429787727388626833345551981970472905609745470829776290222439422806158586818193451264633030848482911950672609552512715202694646833101161725437080791543817480483921016852382442824806884869175591571546991637678858936351991200335550978205477363583997072335811914113305887710113831308570174218127731433800413024699730948408768543160805089256651248730501530293364555448582882760486509870148505761940493328980633390689202061831888959296102935124889685587977565207263194527929598007585437481367230688580238734029841531460206616068841493395820677139172342622992227004670551430669199954629814378156737748519229545295260685617449188950380191323762850853716850826272915443944138842920500299632482027326118415715135681353745401245881173604260245970551519075985955804144043246222054681076890438367220464068753117724446877473592240482308273277673791188972386468661697066477026825143829244314874059743335638377009584354260799173915193055633978792513013393646919707272019030109946789459775836968034529678952737050970780593534735215195307372785465347913807416425088574344282442193658353754586454938002180722495439247313408667198801550110095125647707500858040434228777879630108038712217052684750606155610269952584277871676417369962817763831603491149657919279857226040411235143486603575891191663140389801965093562071244986546669009855954895640941351006741758053467098941088820475251080571285492061894049308537913932696065503698157055208123639379625874520135831730605412084474120771103779644652458111570061878325959828109674636930751158696231808406103502823929066256668224863490411944446552636678307804549737105942820638406331818890466533610902389022432525373780566372459294137578907913701923755054326006805105682035096766507445426328762599039870240275361291845547910231051566153945920236909161413955037561341224708786488993565893797564086376002438388727267017881888986223767103889417729433556654771243690346797130513885166785197044820358118174227482162279731271598201931818458476862927267549281681550813842548667124460764728691210252720496828908976546922340414932217753459544105711788284715104092462895415514478313898403459693012161713212129098230432236785366072791722308854445527684394353564669803119234554310121822882836487867153802255654102202934174572570360782560294417348285674896572435412589579874737848877970962859337431746048793720080905934403816681290699272007378714825532388074448307266154253242285017227341489819237229396840881872720398654017627619512780255631893473143563210497004980439522766014609194666955028368384990665766641741643758973220837403459029719115590926744230281579223852558499185508183676682815024518522760065397789051156746057975066840461141473028354344163246940202453632386348043436524623004598265246849229050652548228926056301992006415897039165458233393069910375170729872730134646236600204282095009486921855372867022502762004035606775677317483811209223181704275108069274218926824982127139708411508274038362716392083150064416995099814000702473878352730678944795886074241381882722248489211769744267342523894477581772130261112237156606634132226762806332508941904639719428714596676224200624883503193857621583064757946301621429442770395508747691622918085334947400526017206527996487208168736722188353827432405168711031589588826732667314156212089175266024355395119706507820121453103163265506912441251001051087667107138985030511134823859964838029742417729949631990157186354758452535804645710181650387356567258592717721733532447927826927764527550802513639781556833758436855677879850099813112207109543613895673628629204052887630799925738481170152739564886553693718405173232461150842293311194680290348186757706697467475820687199153869151639503585194288107970396740706691385522461811314193206711928022691040433832831484431134439786713686296613988300012456044468224982173258414104741399059984672421793322937115167423288428818189056343043926908067121136603701876822465453055734437906189587314968645552941420546724967229574558867610600702435364158186863176112245488744937138208526943485041268322471922195907689464686556337405692817993729521746510002228769748458010173977991938482652317534730739393738827638275715781719994345966474254031998488120260369335884910791276669205774611939643614617943000069472479670727978502338880027330060836656721440815199011745966422780946858153825212118563946672199727170698407529741103031255787905174715084082990495879839222666655451184391754993200585067563873092873633943184913557114797039393784490020843134349790672325931023941682708919200613983912069361916883779029226538592085352536340432574831486097698484462455002908643995212391392211816484508724023728511478333621103732892202134928750551366960607534465649696828366835358787489263954084865719121554290015106465442854076582147616770207985191449264417301037524248840423370900667935085439425258390489571413095571598982380205667382049830498418619789109323644462864769906053737507486064670811376224290026114882981263131124937660646719443941838681016264902942219188222932520525078006528314853785689987383547920072354748117417190182933232802874822021579629468704833498952496472816662608839757691050545402314056365321593570157388837704817437568594654965046482250387301029630310142823002790961857692897288685333392111406380900145681840003486035086318984669966347154888739781368469235102461453631382143309259747427990768045999384715376104227788857926410671757017802388348617562816033995539692657419049514404936882266152188424042112582589442375841325232985604441905014458271296137453684947399782935147423137159359740653076120640478861965468100273043380597935780749519247114918878731354554183849762903114073330068108183533417676173867193418416902114455135286152671477463968139431827645507698953659327021190831209102403596838638226077447092424250142997091009966195447854883715764405438516840195721296633178655548053246711244789390550558344044569118843718312114112687817286369407230763762707905709538388690528891168314771470287557154707335667212493497831738726230515290052403844138368168673269617041257718209794994862454203193431800930438647736685985735555921066728691804027206607702739522227948414927839618050471029536500629026994470150913260869099745767928935598741054553631036987506864154990545628052848465451787953965209690687597013129141835391203768671627694204836488401604498165304302608925132902850465471061694126297838701649793181138108908947381208907902138494261695135967783303899155116543088111264583766935829126873384114706656246258399833560327784332819471045024635230369196734673875364342381044005997348067410847041796934651510303044774564918679425039415674197074113835712744075928202120453087186990743395422624113809911609965975093343297944529718191300790246896297848088172074411434264789122594583043739027981267872495938276442597578104850602478114576492783811167215685446068114129984526395604749397584129476743421470171906814879610875117484781463505984372044409252242875543484649638717205588512788964927285400163803667825362090086202163478816543600831792823353545467474227807839563141184963963662008986071736141476917671720466966346310604190009435625379737609429542303358790110651637829969819123470542718806247127954596293176341844688525559219420051653819403369205284116984723590538970884050748083246532960530950466886225390450734112345504075871345585056616441847686925546550001712340568105239876637571310362755892984578084559087533007354790024739614459243637682755211541633373911709534100611033628124703444432814858249416006081860436529097860217591205850640482749488802319166667296226722399958209298346107793427635764626287296859767622590181877460742234883832149971298357738922446468101745023545729469879135331923114887459132749115324747765620305303468915882259080104337787267065266019203715256186639412731179116690181248791658257085444293474651200461462029276559625778244244878737903547034488106208808866780395081914610601930056059864107192305448867350559263604359976449820690451491610901493956214304034405267838589679010500146143089102455899382898123723050969971138052105542399331385719232097280102580912950474596429333340535426514495109889780317939393037727634569624039947051640129841872467957648978439114371559335814084677205602050552799078891640066873399843872795302553029968708098603633455309125053569763320095014347377315286365643351100521743673982460003727480511251561308250628234210702610533444062995119145005454740850417433348226721228401621174349849450235721539130413449849954341271600452015417864536103794517266024853598997789078116524213933428598587200567623118024409467938092805804966804065173847066614271625693204165608898624699937324024366934233326733006433253692121865966437309261014725556731915126050232531514085113135684852876449512892541059541934275245677297472522754758371427771249393951600220504115474105215672027665464050727074909685820307297633529952471279737864927873398369959825902464045834940065551274001243966541001775430605401397310394414470104194692100159623161265498506671542624148035623121214186225029405285048965634100407543478986778531209119747328394502203638256798634253586969965216912232148758043650729163437328129520238163745902691131495696709585897845312099603342771529922726955618719929265702618199877359604043956838988297026458398998328937519393011389670639889437445949951839694595806427448056132549062874554708750833158669166031603891247336655315720404614054998143282730888270267908947405944491659059209695886339482954600690535659528928072491529973285928427606123363279032883393701217109939384253413828062691276485793283745814649286867328786085653490033407896113703189876818803122146185481176056493710468086911579293926997115067000533431082021013888301158550602892163971408260436498980520298181267372442676795177128231619957290073602138584478630894669245020349616614813604362646124883609637358266029438841077413844130034349035655306187543457592734172499452176306126848321844324508065526044447740139351648862703579652256216642251021453282468159819862694041530168080376828501868155139677243466807549583011852875140635556272709502238355275817503457490240910262001268468486827694658331046638046317570642005895932807295409532726179662059442798163010933676810823915764167844301836624014508208653279113734970263698598639148582593985339370904696504200683771530286420567003949489486644024474289163147897343944633594248678639512941046454365919581521034538640559539998475241288414332473798317892892058883574953192782051923992305705078141111011902528550634089243384491281806713310619113687331728916748644408215374095377458033864169813088626695286701013563522011926273035518253436050289695148482521173663265864833030696508312449770578133395515523114349474199239113370271717088970248176219568374959302452424735071375573763615571474975610459676975192464083695411095597455618078825255144915786832625295786355371056952504774156390737935070542384590187421329046209892284233060909866690325663314655945673816898587984201959845046283325123528113978291605250457883537927337103347854480647912813733037618869972234107960742772609700582645822421389917347394090524296487634167393140459462758012472296177560765714645044157122709630759682734336896077003287779953339531266740839228756411617115562325954863468384700876060219446516766343419153053082271270890524848861496318865273679784816571078427624836611876623951855690133035547560556905204727957194427879228872303549059577647687112044694457806658609559274275484826687206903874832211800370611329089535319382776196819072098049021343059437894385653766198468516127885419620621434181385539900089466162815035840075038793972712424327478565563215939991864229904959267227544350509302834646943510181452740957022184336657129277929395063468613298252521572589549804281291730640666370473081906464831898844153901705900114996043661036075993612532602187562457906075769291597474672809333659323674143452696367735742683292817725071741386143333835771524280055630717201479739240724267585367962001830481072375074657809734105188420795676001134332938380041037409299003595575796503661117312224228224408552538487595689985530884384632991771524830570852199701713815465520140959216086031372732269553855681397518836596125196313627604766772734523499160529413100625494584519275840554637050269976860326993314919453314043677853316478699305550350179225352096254192827145809090554851467486188777597819063444879731394400614530118839810692757086185517404076199695850398430318704326134866606384699809405594511943839672668584286780486679631948518862682139199494924185285038472880735925004768117549171452084559225364090016409006172188519844798989701466184644046084797926228414815822184149556927155190363528299982103124356503749074824932745193726795795793894487479748695839661889483929153132941237505996004314883857419704199272842859716233584596013506172011463287033558186613674054252623513491545839070290858851983144330518479652392516707467617592232087976162251951312612620665634050476784672095661969445864440073232920883150097364985482839753555420114076429752283125142595230814569022152524485033102461179608604098968099995895545978868230195838304814817335249342555684261305014273999388899057746466356878906784004785973000508345920626192086497898949685799377385660589920745697424536911400561100023810719449556959682622311021850455473104287682175849058446961909999721000063833224128190964989715252484632575984188689129032899724519394894743001413878047166868714366087009595682792496382281546901096841045440874284422514676923837688590571941231166197632873211625014154344965978667488787641122676422567360052050337955095130504274683902834248497756258618850659385905416321077812643561527611753268781478939954503922409828301648439383830136312716351469673370012248546428840410432112115566818976047035066749088298771068392519038859674051771855280272838500460142834982013924559395757251199452507484499797651489462541298504795855951991032203772181302795844706713830491239682566579955731622578159848644722507013021518296595497259591177588310867609923599450637891175741546313333296919045968393197715306383612529871221129663775911728856555471494663421977181711463740708804491446900024521430060872911969287993178476289355428731964643826499102391723718572277752764300140267437478311872376101680591830189124422694930439312344221582110841472274472507172957035200248629967564849582604178184417606958992996314612175815238970020413779936326534490472223725676507624815647925589603772240838103919500846269161645269939800862017827726669108275668138557101043826018049518733572538148822018163614145314910515895495941896501336020486112368401005583682662847550396661598621983895356108392015217716374369069467892701847822155830590298731273535338026471800691407632625524989100880264614474277059000644823463566292824220123019481034305523398869315555743157602726789595993972019078061735490276910567679448602970754297989719807012542152799576974748735452796921635663126888847337257276121223452749516121944505621799546404586426546568565633973955937295992446364430637428118297743638584728231607226071349176210315263433764343802147274804161229571179268722845532415012185459489859961436295288983986824588574306235539851427450443441630707917008472575187064272640896751380456070460639667571346370606271162292079602304135159878365835494329769611848908524382088235295023679543984513145686835719410706206242403048146895323712700736182608902356598461602382940353024311241503872822060885954514896480895747297727122171470945564475060626227879800296111794728999722767423757608970657129769465920856973359350801288693920375490944319597719975501165163701367957284048545807497129082980446390249837237765334271740634144662723614336522702626949658995350006428438883565033239642721190439859719352842233937248488631560320500893472078715891026621216112712809993225345350195700039917141901421226772405302856127642032698937835596465625439448915887464478347396594363150152463185796755744635209949659535510646653515443574745682759488630275986611189101802517552556101955011286766368067002525355169341749183835878260606868673149707869281971195396935000611296423565370661223208142249369160657327454411706462498336748251481871212803586242705758207304409245418482415077546840080561078266712819117650510704769598657479755284607990948379640400548749636303445942992144555075111859762940774766133859462453217076958420187889573170149115747683954626479269070600872197272821504212857437868560146953923505475478668894889822584749790401778519230485372632976349447567530820339275757348269846653428137804310801685001490990126630760178875915633054211211028700293573725985483955724994918678607390945216002069003020773516298398300035561232337775465067095936738964526485577852479858848416876969040542974252843710368731896528446881080868591363273290911120915713334772648756159310413331711386497469655664987126376273057034659813507888741767972211532557177514675032667001203683304185867397858962996856267616635208573163459947553575453809945116445017527755833066841595496266092391744696198498240753334945774283264596665708807467777582128638706786031415106983283961247654401011999382018174359817713432835470536526785286623337501518047654959350515424815287981056474301500614594597005310247294224800406213131690399338652355679914398797280284902602250715941235474518752155801653441929975679847970210471197894706750556851503665145062530427554123469732908448923792046166012604927638287867305196704222228601955029120816166770976719266904982704875607461138672844689098896814420533457374239492903642881379569257659519928609356926718623316760680140685811834203641474083699606436228198016040554430150911839376034682293943413849681188699806848969545100780360419101724510871395995539827414166718204987670555072172799682587043070629004759581039838338241253606148287027247210171763394904959929253302940505207724579780000154615834497618535122155663502742314767037392503609418406719779135174798068783159157392772790538727946071462412340618527290895771971266684389152661975518242479910505032256291439544425561814342731672720983753789823144456955133435473807560339315545274424598444684405862639640155585573625652185680863277110840673684054182619997927666635308209281615708831533172417160241921639411678624807380196537870589005637017494549665640836695493988497271261702433991079921057571857831345231561743250557533102720539006649064100140913969370070598854905576725559261285842225196010636855935657780371329107511327390860755990756841008385219431913535294493330826229975437936350058278867551890835555077204417620113520040724011623200628229516170880014054143200989449890332023620542867101161005188115857572550869185478582512123568890187272234598001501751105057947630496678008959529915162345981790022614567491492513474411819881578870806712715197360680674678219557486979606906338095550365042146255560539434796772502345290045068844119602656191782166231576174464938401416421241852603452260984718167797609493633071081224171037049352942722121119994452077787565100994914225732884562467395136046970537047855616882132255226833327553664129028915782612217788472679709244664144921456070728217842115000913689659299365675304357854327191242929057273297796528215602757903173717045714345976898483897927480593629210736705324068019409209884503983553647167454431674683042492876655190405944954808366514461318560512554166865304765953302616733151309646495773338040691077654655348713826335789256052734652864739866745959972963105160763621011850659781796014635995712396356742432109613994778696925708448357817770370657025828980462813241040253505484295564061731967545659786516576929453545305223446595468889759664635259926394663751189739183630723344197505581007844611939644043463303128187496490056594382012612527433435018173964536538266063394302442283443787516479278031475869587653196472722221258899570347875227777815502357614440439108095122024887467749193978127846313886442932641103078603311401439300028746793790262584246706587140355679700222385935113621869033527368244199150241117273547671240633954552734866633716093758148271303506561880622549749705664261408348695993918514470678421533677894958845938733716318576595816203012467706457212400024698789116918410619609345342767812943354653393243618522916183442746675142298278965279201410977811337653790880170000667479937365533097874203919157604599912532216657890221438032152159497619310508817223810035259651882572039865039995192329229529118233117520920094706245322031464120811078215205216798565421078023678411517255708171343092661832816470691875420841003919089227921619826474251245405418149136292820271092458674510646446589527130649845183028496179493519958221433731912866931358391011359110901649846859979781125312981351403412535811511026362571829626388387807273533733387884801296157131701606148659500071569622824746827378091959863492827421077627506322713863100272044230664533562886838929898907310711968343089225859624260820583499157202407565031843330652723792193879542951538053209945234434593521028793845566222288371454374567862259998827745163439217717666733219971302691744236409720887644789914008471673844467591638448620554847259547990502488548657089054364470018257331044562357871869285557558897431691421381969127866255452194084917088100298379734261590977843485386858635746885071966612465619394056788441453777721748216964529047801789451041758682261961698671393183935742965543722599467171446448074721638176783747983471441924328251566035737290882783115582013102877669399257849458489823644999566367638183413621738746653928251720795765848581807741081126911630538734285504019952602709916504574468696063457068621814329105789861093148644114916871878975578609388096796122432389036981856276137882202614182470382116114952620838550264471772906388411330283533648546157598218513090241686811116291094918080884493455596402885822128407544259156119423583958828782934524095151144479088977793042679558157093540285264044849949342683242122682502467488688201895537446226370997092026985210926396665663223868228587000473168375987803210955297073842991861865232740941100971598615465770749595904921780201492757446673568538393513541908604076679961786864898125400683224413185679922898822440838752909608269249678133679020128251646629615403937292137401701519269907789908738884079273335105656222511548043598326460764238538960724126815839097109175104552485457543243343017692270669123844517067252303822706275930344114937556946333820635817899639671435761219799244025704768515555522371868181951093506294114214687576799997309461759561591646558458520970852436409695845364600201850235829499505361599570909104384250579843245243094647024272891817291882788332626148608591851605536005356924994498864011221427985798095266355437256720686726817968697501228001837893800377963202026016903971279896003714612600380185208452070755261604123823892039499314743339591453001330000722160200758861333719722609965301228004950776632680436918498387520549472917892561768535448423153253210073562237995731467160446389841270246682658525276863524507364744571073954500420339147026146262464895020068429642737871361727454267622713757038536738743935613445018158423873081111499723245573499678130230985993654195909604528393103986005842026710198165931920939361609004767890446350699493642543298470936695940657230124031078340502997001865054396449505579113809981394852289575987902178469818022153067228323807401690051550805397762484160020113603555761490345337437473687396790237015532726079186826396449973748815962314073419281033079243356335331051760520098751152887467100108438578403864888465595620150038579433491647038766588883520489939058391614803455720827847346287569378867697599778256159249493954741703863663102131544728683443848561985658014376417236834707913336841308538958299946771007111254696784775691094142006839893657716447717176109324819895351086680386208567732889302133529307731529600752022236509299620485975237341690793713747254526199600533780207368277793062941872672043038814045052931904512644131308646388145980901266771736571127579128078764356571133807266700507876738668972655526438227924057917507732113379328470405780398452656887175753897898848451568549040001177027466184997182303346050402698374294209094723968153101606170693404749428442841340068561810124356077603506749012310425686144038863038162012007224328499797839125775273809914837076944780089796911494895430976344687290727068357939974088973616197893351678918641191748093833196389185959004485876141452908854124645540526278615186877565833385680434434025998600679555741560390490938769007364370270752847354860865420187607945536231717163016364276307435264126869678581043064265401511821401884854523759543193247243522134753193135383856606415449644326317866003017218380917459764355802922455371838325384102153900296903721543143459193316761574967889276165316861225432315932719050008514409342939694511635712161521112515666103210345705365861574728318023968896959669621273403158507092674002370980526233300240162707959413830746302202518543743993213594992307878656718133006012028172937985966401565956968886129625821316518645348314945313788377205716984868053696262062202641047478833769777632436035615638361896769834192952440356056626939287923322262956606937588258962330158604634818369298351769296616514097372819794010929720897206320639494942787786083302383587976671833304544973120876170507163421826755345660259158382112874930608503512928086350916593504024294907992630994530025092307467852480946489762165967769951317704534203223017312437179737206331795601804897869326057842047560253924012224843462104250086630211540837593643477652058634188584762698446218073362085105570003942475114775336496807868199659974822770980279329194574499030203421661467809363701167684234032772193458556930668244779205099924712965756726082837098523652248134422309954986483698561611127089919517303571827367747649512273318748346179087626833427142645702695638367128395624632740107020861777135456044133425236735602628055656476556481551731153056864370073511218624656464060339174871216472369797631343696534174276915015331955324920841615958784370575646406805129693982580536135082878253479054596777531083573420651975916003924957033681908773680871728568797178702463084344810111978833017646253955601000678556184757327377919123067564057043782316289923694097247033676154675159167626740803074752795452373661276370166070010202054893161909496611930753447595010176138141116739132859927245980805551996703188641685670148614579498153850519059019412123121306313802094870132123052813872084358890478212186516378406621636163603907181772972050825784339631278075774781363547729660235978601018764525498065959466508693723864571671693618234969363412983000373115221554722974439614626236709161129423549199893486066740322862487432881494235994135283232391381854652791257793966780287647382508586962753691708852009563797523300136989461021025410243511501008436981836331622038573053583653788410580908771589867813231675296566668013217788856963450514524024771938207405456045430535825785545051323022259853056835937268385827054027869618129823135626211060644925431201726867049552683174751836552534625848479985144177088053063696537837396664136842007646920627244137385971906561167940366497707238649114773115162587805011439014296094102882812245360942054593077942869135351708719504653827097422261567920228871745487616843317388642561726625937969892072545939447776257358404007222758489951668565367993152261781488167450417637237513975516155123521315120201602183644782707996719285374429801277288351116105368984356266237064427065372827862561954465486396196328009622904133570872599767854534098072428760195011911724655721918075085975378224860540674745797415163400131771994343260659302459063341801523010195904926526767336662549036919454521011778081726475437692529806764338431808267159864702960125641408477717931348292881818263846906929048162558752919246673265275720311310808434441088238334497083923415840901326610062640839527691842296954505755313092804078103797146061186430309069553330044859430677639424998007936273641049915371187413175183999507842030998973036005767342089824794657410048923953824786999193220246807116494636033395663221693454965162420041684890483262485926916932774055354080832625889032254416655795131288074776619203747278978841749923792886067469412042359950173835136318431971770609156571916661359495339529977911189931757558460373302962525678787148949503850259806163422298526769953993217281256569421981526588856887331356947275150385900427817558986353236965124283427373650239472165963200470218739780654771931456132903526110828508514720476820205311038100457578953433895847319979175200548276765941642874669260445402101445534979175028262588827784191201720421197877863784270091892204067425873157356992167332212451009570116747492668199438457834400436740478891720608589661351195905247809290758120278359106680766921612265001910385913726085677316810761726931944026567065146714866134555464361283953058389770091012236799593011077511620202403858296910042492008824606708722679747502934745129143772607786781271989422137579436308119861410769310012773924683140297052815444075731196872067952080468719854759031748585375878974615440913483428593550590735011489055457291218422616861089292427380789383047655409384556083194454984118937854159544182522303008168868468417348022290790702127308297724174559762587592320225957866790470158234758839127330269880492070006001898893842008085044478892986229481866367271588311811337764358563251410159130788820082097723491178180528548571035503073972909761615444134231038759099146260508502779187069547469185037639673216997142883346950756060751562038589414210899426178178090129858677361284828345364704687383932443229866298063082622116344230657014441591401747043182373514076591415137056814717313877135821811902860868064546040115128698094175276414644982700469422376571395336029440243779692866369379420672016669466397393392089080361066016378966707318427446940390828137238749661973866812432509249183393303912457701373850116958939565316052655017004912729370711315526877341342627607952067205295930259974464160666295574378536930189610812015081914627270061398197627267583074872116674765028063112984438149594240167705848713273200311305194921540964686950063150221271911765720877669859416580695475438191730413523977178705505546744536622847142718861050310794162213862409155038922131445961610765132317310127570859573488846699897080535900823554643891438767287805785616528438268698635501028220292663001436417590174975106669870946566395192334026503711068033993759228754832566654635170659254669932976162521835374572016242902653893527911315330405986867016662896996026811042879113499689511477445838152792526349021897222089019905975524037111239608200850255442620862047164047380985006183537829518382538368991064231492321381657154876693731969409662047426769597963211548265305602523976152763314347062262774181951551751548548866831117221978096029577079296817173684896678353870269162703342941507036388816683531708154204542084163287237428532047558836220743720349092853617677683632337078508872215301833110255795605815375704181424158684460031497409880064439645141591825451771293228958657179812250205914180690880249571400533197040647253526053762134178346397786972145606761308998498371863849893926175849114054197668225485897388856543974744564004951409155904778611707653335098372227894858829302795867364004773308753938519448036299344094431832441044951437766058840608538112945228023751550207715468676867854605102829284795676132436301870886278075089868299058220958230534620152667321472172970054300041324712229061212593974793081753739372014286024745314106224947159616836238358466885912487932745219173824049820401698941999550671174753712425321102042770725501160762586132226179354907278992848381632556951550572334284829547547982174547850111009702066884848473693178734489266619916148720509343184057434180936951811510150498503172577316018492445221376173025226412877984943293671446194076925438743393183162638268679555398573418066003119709477428449380396352956158904578735625743300746631727397976225350757489485116985414636253663065903154396451023486002788831709664419358065933352274668595076485367844757355482317097373103533918346627719558038780258256100010008508195485244338563783424198270273786536830055428112594144468196469315701291614165762191164912033512204875175532539029224609458630626944937704879564345915939416224750786696051772465840798751627956848898422270373110867358522173457791119662509404683834935177332443322049861962679404915504112819585816413809877302560820695179314798318645522769041586755244207479889963365142353071080203248383888261764612733726661930088212609719939811039801247402650208177834963852239738597244790209942279485688397237840269896531930470103472180005919210319612593676044802942138170547472883898106986919656720564731583394067263114941821920339786054899197036398401912716977753038485567201842237543744584362670096141146569864397301510959993163406101861975208637567849229715717078728514319159936913874077228617818790522380400723135963088417809989931140702606902027881668384334322352310981763334169327524080361174598663947118869488272950073332489742551659157793327592097497525619656989208323330586261231701189209976535367937671472384645843265446581905219463477087780219245708393260716370456215058179488777290577790192235276860913871034403656071371026689655640656332665719589241237699870860440809225002250449441829359439245699254642273121477938884807038322553871721445536709173958505498586839236405961643152503311170217967560102792428995223717499859710588639758866745688435853368556234730739134935191683735340042387754989803537890369952384624042616657430668296556252896795077078211749230916461130349022852196183968806661945346429563111520615357718242011357816873900820563905586927549308703098032422125463956948416713121869063494919724968684033839592285824037684036084824747739545171429522901156035334850758965246545445531017017451127138837217349744556192710052619544641389499788801900275266351450930262494169921672122175471495190825452288416321360481298787400520004830198953070601074890203378359373618569727914388144766397049483563002151627451039041066043150054877808954190120283715812312702345522791264380932549819198207399477268494710958273258608214912239441258708939776353078213139892093815292798367164013322375920762660519960891150196026657870083821033133668334132537172553118712196181022869345724788570584982470734441883952746946656768210056522210095199989408626875143967485203041920195164157233401907820469531733562866850259404488779713932613104178133215629309278136204914423403831439314560675252777533898885348776001547937160319138811347984022815258445642589734858470361323970209561773201395238806563891073904112060102732875127554383924910033799687954979108343541899859239077040587218557927351447803280975187359851147328352312932278067775595312732385652199837673133951443058227935952357999068344310686486428214275614006667884780157696191669724358975200650715031390028588009798455086479896347161059033741392038602754436259757829711700939529406270373199801832049118618969550151369652523928984090522505304859590056778836117466459571953411477013630519289585397729693659070728812247852763526060372155421804643465445790572855092397038289256059029321058908907651547704504178764065572235433216251212690085745672864521868515142337880959268521092203251852336580912559672628339818723608504594445212937333515569501196350842166429801952194937818277248028477751419421685770431983772095370137147732217226891936275483004609364580588007350152290706285156959611734888713376416220551119947271040924942765818474165222439784564291447653040802292871690296130263842156285719902744997451602175688112609591720831470906435168274325688910343160253862112408098054828140955666096768795175079158677210587217490965685470427059931305480894192907078924400271715141175856386921041303507386160118536123844739957911124385419339056675011783319104701414417619334508167958857412580256825570432101012860258950948531817376574060159697929181870204504560893085806893594695151332068739049653461526752569859330488482222416927402756793137262693117003662585940047171576399890868500799613035490045370905929602925183066240037554978367076868268041967835166214900965072812763652075866444029227755914111866194528478035714307794585884377764978437548421192909905276512188238978043818968975399231284528557005208673477091863726034320599132317178224496188056803434827725942057618623535153961771171702756049247963961803383568890444485681418955277785663855037983818684297726124125945959510531467801686580251954740298791629566991031458525293153206424926940702988640353575569193858947544268746394508080930079504106340097933497430880228011661400300970493090717258001674912218511226089310618384469238670867490949320913754356069363635864461403020439520406298372018121645237934931771368099367502205842789891697468442116314520828931996612271169840295495682505877231296685054925375866453504100287180763935595412469470713378228558719448097878742904803222892484051822255670557637942033225085144225342795431678341987191403063537658292671216334115021803731280555730443084013733557979838049662363930939935551206414215255517832924446105864204484385762437836219830433570401020214219283660530720377828360097103363457671919003931511373772798844394102419705819848286837885265127212652532140055646794180115804939449789025122093956336373678385486397155401308839803576564523693779510571518395753245478428983822851168076011268483087296293131192217154277175136347294127982871155926894241682307252647966370737262757522885434011934170028939035498811251706986570675578433753838208071694745492255387498707313504343048863239841411417388092824760472686913355126919834396132639233826911165013192610558840326709994441668482203656215395579104872252955920336261733757979206819554697142892836592356044295198185513391652054869502081427445952008444687445801277211634159851252753973779763819603513875334983919871377202575572334666238548265657843886891119580185415666348274571908734984256937065290707637491418253410207296514144959194271614298442022936400325196137231184909381740417106913799800223680527845045340550324280730967891699507953792880625374536126264293870555056232648412940701244209106931163267283109437766579654700544306123884865216444200182595899187402145818290615825274753344512792600711402451941368820245305791379245952138355319319078476394085737038935913290689189514014765134720788278314895436764018552911419807691883227152359148893959422875960832162774266689858281297025576466999009867189199617202797036328404993259281258546230705142291041477171267173311666820405407326479985909445720820532878842368103495742003638798599910610819259152879380852037802756061913035471451279491367243611990707451669605432697239574148939215135028105249539883640244774912022631756120339950947024540529562533937994951324027972301555586390841111059610831890902873444888376856126771018648809818753916488978842719682856435258099663946027318450676730515450485393596530870662636094407580046237876550397265475131287445764996815516278142125797006888734857282354138111973470423368193294426394383992570673579465681012068485397219964305908232386198705597888345526698612973464663761858547761355594809136341236099246184798500209956504648511629427578900978502041304087127364070762551594122221731425085180361475199723480243197802168635317395427258647861807851438024699379953285326729641834675080252911091286155986788821330446073490337585783516781441700429486172931624290839677682115308117786365662745413873006994992791677802289587463966126428917323336570508509984677821527160397928563069113392523555037214275507023549581857098541953936798918481989849244824899410026215401720204097065335249333533646878996820668049969797747986048898519274495334756777311674313660856325211550414482449456343807149498120644259776546090440113139761908538532292606239419281816655224565176374392633016668386641993760268923150264657257206762597234982578562720850116122701121858931658201612040429942611226352064351661856870303807185916922642615020370989684799845700552149023777897883249957633012976418361487480424051187851790845208770136000327317209911098748295770285430188306564919498678359728442341974219882953681523189718257311679243419099629710343123130829510010499394398168547650741288426400453780193179570943136404341336372778967622831175669153340765465250009118234307633046025138971107771365938884868652116636738426020333326127932788270818965269304634674635051830921705473689204825124382574303643313800221398598933602245113143230581881470362341814296281539498054812559952827535435167256391276176404897655596635010534091066103187445539359610411723941691705906893973616114150316440634287077468127105877119170364973655054376297382173348665255093006236166617414191337672940006972699844256900025376665122524162217429278321225192407323139797195182135985501433257362442610154771672797601411067189975719479387468991792556397768047830434782163278920937871292055532971691220276517145927062896734489541072582818421982494933356999488676137126249590010138703986200843267418432152521971407107735045875169753273153857356259343687412462858734664625560611400978217130942331313672119844173585469100876380623062233400476475782789924468625187173607145604326132911882284635477004606626199889321057431422389324495669778345300074617889493096748263166373478702047639914331811293676102002998254639991727560117026263771647358160688490732056263741805825798805652651685604572504819741304652786884617669660772967945444453730312017635737846730502953629444836026907502059921177695777894274906548663084478425278752321353498362082257924134144077907452967626475499896216413531525269808765786822787243893659919956805766046346750051906339885315715171427073169078704456812341368939312661414850196885408106004124135727843768205814324298182256170055631741546144324834932781971766035928035863739063729301843954015170628324697193046728911209959917201090004696241069884135313929713400436870802394727539193089696309353376361695750293484966263858656102094328239925704297791188639511790154347993939834868172137528887004259039909719368065398699713351888445512782874768082864124711244518970208650266595418096092364804578845868089200648530506285177313871811020488995770519726033740771679247865025286836336064290409078231226662473517755533356643302507699114013270947152671558860944458138685999819783620308964068623428639394030104683842774359942563969943164311704519629678924177387866889706740160170327057613453693738927723968744881662515721542682964515458622633805559892277428996472943980841570327872242466706144704793482405046797173632605961362692846538804372836158164401836308681186467001007008656095088957324051922100270874487508779959289572983070249469336965246934366227991521457186417284225676505044048710405076695232935558387723244600954132934412214263637424240364838056662283592697214079205191154326289757686893921219418777457517379605585545515445294767292948971513911858797109115089286599193835019079427229382580501953544813576124487509136361200080337521618421267235754292725758410390455018455960947405243253504660547406865771571379965955701290225650223089772283576786392238106016533579003457978004399683869605318104947808391224261347423448942236070830527650634231351874153950620760527703853744488570758021553680445316083919745770399619592114683024300054193612440617544819335054127966426971033169142806687811754762145590398791650051450236395503140981105219400339836932194814924258892675397156475780663274955764673017390979607345191762724337329473633250695008923645613890967500155508506555924051659057239442695207704540276368000367850183172562946593634325709501912538603092735652667921785776825714254557057670944409092854442249732204148102382343592551063515193111541251978473296366239507099228263149675677774505158269218823685665976427669692086229863085171865608026389453194502974099156813057054043973140865005155516692239267009030118683036405195701709253212504970396391675296864410451387413385882731210380423810991897023852697942486991623032952521517751377714999762860405032835104766566937986088625556643289453332007624314780736137422727391930953025821434691985375289153452621562590365660865471562609853548264497181489639819488956304009695680574027576856528445835721934253078267460621865275501763963027345470144143251896491148083242195370045283136607367021712152165576274054416870064806739106928543803052958151634497984479765485246500310343495638668468871026689169774068892892945048831166397668452655908481548197300015188278568390267167996495208072413732241925274110350222651701687027257842631712681101011350999824296016780134408350070828284751611154735541903513566503344011039836315578297600089779727765263881472729082539347751501696326115258732391944320685893425108827125819061150659019465521820947165522139927699157763640601807234888377388998010321868200854651791481900298856056285971443056897398619975933414028884986205292243940522370181439209325967365113102932746818412529312307901388569666432662879810590544724057158027409219036161715106374065580819544476039457132877889434108284743763063931347407491219491268468512089180553852768778428676374344101751731123003732614037174336005777916793924717036763593255210071988210960472142504222674865286937766106661816727903271161263111602689802292889731713118836716170703207151819575010492871029705376728580908866659897237449871100597461912767493077801100471064314770574283333485128249573436224064960157763957821405127099291043287917987897645015382094966882818574678512824201720685524638248926327957141039733096774939732958177480541565043562569569528692420806484406258318058342713046636254950335179376433407726860421111350359361213721644733840270309786775478536759336456871194331005229255223655021863049989030282147427338368371442120766119829940917877822405335071971656217525929321219844208717553444017455429323550345377479303745123231950254966387082410584666727715039566525670545178626834834267785044141660321102539588183352737733376628627899395336499322063198949834474666389075585590910598613683327057937210347751298217517244752261607909990031660717178756825573389732919896168465352223037611486187248770474665835861824316467455449466560286995994132631932044882991652826441540059408594484136542245502797340860201258276238678793795978205469380368014259390089434097350824004877930716655311396843648107794857878044529284967019197404579700629501967325927872712477901328165266146749338460682627715646114234759613491456728718827662772711486277121829403838577011430742769288553641120336832031352342597770727007013816523742665388596779329788421194388384155834393122071941014303370511239165103727957492960992911567616103976404131591242931954014405527547147692414622392622531003896103096848269225236720738854514546670356337901388676344163956540196875420752308667127389653507233046337894195368952134749026101087290306812751206323092669888300912893500360167357210745747412570853427913235485322153637284486938428729223929945530752057138252041041159811844183651395813322366061815181074871301289256471249237488400294973283677655912127183559633936993633691345217996275471820468244862043408794070872299960701119624010369520316066505271698527464057441834668326228930417795849293241390685408850035260087197835372765689174676382558367975714159771551824603417944333657436132947995409009520577093299310815739434466716901476603963267330189510393648392403607832037722849089295681627967409927911860320792462225621601471487169218199367932181393808004645312254221924847497204550302345863102170718036498641066185160668825792056891723819424430790048735751927882269668311548091943416660501904563265246688349965954511452613714335263508415233178609685556626731913020705217046201207341345980881793042389361434422222745743459891547683369272982131296323738485072872974797845379536340593620291249407556726501209481306885827850558694972570361679883498816514970681189164361293827333256011047203098361123668860932061868033163652842427024967401149579020583024813399089847026077488748047447997040840747311736149182148292417528292075522127842922127172757897596958552869421809436925128331248458206257439133975727254761712961783271147246357969114145822482375807850222962670286660199929727205983698922179555033533747831921954611287765948854621399011010616893167364071566652121634161680842018214824683386635862461074123801737396452740009638994364868521409138462510791651651276740872095343574918817249991071364545588925426318847912721798935140349669718965928897532698161177197896451988420949461976123270478840811933276287491204788278550068320373708340625147424224103864698604881060967107139150021882780264667928619227764354390359842840293672621487049689235660512064647665842011556901960273321637948833097915350994714689838393309870601130752642643670671623064777068162034791135174421411198590895807766876218405881043692744486945491899143923832222922922271125988281415314089551415230868005114165578483567353807307531497045152308835862278335449789151462217835822405535906457417049208807243538720609605051993239095194096774482406176662252178649297153489696658934808007125737594361242941343088689649313563609341412079397772516256651863899631179825593023507775390142246961253517434682831188116820577714839964346017389471645085997436191759709957145266769263138703921182929254935194196608705366450645370954232417074173320469463335765494549772321796650248679101815822732809913701744750385171000708370757916719084262823441812607064237193180070414259721442642022104139746514740664630990935805089959407325325934950734052377814484736523060810019516866484689754076758361795810352952051070953321162747632563196727887730604179965140310494250917978580935410222835811106936169010165554908283398260580528378550318251461929332772064597858473178379271178160539906085415445172711897516910842610897340923666060393661221786230476754942733151982337743285168224477230094190634309596798642602752752165423552066886189643295799449468088747357523001658341784216628751502892757974016713847980715926940288005344953215869529172470029218628363047110912043466350396089002643175690085442133274037578676797860248180947142594700180359218330785768680453909988690195836452061704963189884420424668263944348215907601350391727107772273728069006801294171361000386635121263729168935435383359936268738432985395812001155272292629412490062807149645759739094573355785535670999679546595721698153637855460408849598657772874552832362941107459863916154525393971385152301008731845137020639103670934537956930877195342725551096538925121449744646592595462044809511298252615725460727036262885169926563932939404487383321860857705506043302237620034583813119066037961516414403728181694866638794349417728827279778910906157405714450795151906679839398536304028010226747979936666309353994359395802185924498170191512836702697494710922896773537813164037116644854851329073529268405079060563535730755664235446418806170650136642014488141035852577207228969846041629873394857460059142085059380127079115240176078444394658654721906990601630908569522319670537471697320431008792764947866876259191080065909444779847369883562573098280279897408190905770541424014248020887990694052618023042004118063793782016217194325859860908277232078675794467187732849778430765902098052113913460252398386459556657537749972356404013628241245084186201881720629214919861155092537137117877515066217293124326237124922601875759392808060250154972238120229391841695498223822243690185020006893232066638294332544344923337700014403630978692840393914668640554433595997028477447449049247030376179984390019212396649184438804353406104116389818574281280591658214902297638891251052914218917326986185619834210424340530098160040840766151711148908719167817663267005995251428194997820474242226451829281775050333752218505890854198649487583082926470690842270331838762470058964097272160007084144656745569276554173539125823582203119263183919395287817952458786548350612192920180842292411284183556095985695491231970203362697543513104497148189611612335808902303520234565387320537382266389764498907736385345801702179992563831747213832920239706612562926216456273504546168240440436893558466780891575796840574275916349453336318739491514176329638890788890446920203948547148616193122232913170995801864370883343279085417027998908130526929457653621108561211911094229672699851290510401266705869373023732810997264735177359299363120452962738414331104197786533652075741117475251732464511830274286400162350414263117892468322903432877342886390130474339479179612285981129914801686932040400552861488543505614941292379979774559078162519780254541592353347774960356038936951082597568099928546523800902012861124702767400848434971642693729281083447057562343579411081720677447920038687514874808749616760905401017194848833510261869079795719699005734861031795158876209606772025012566893564700242384348961601989662043596207974968708436460694467042756190238177703172421484842205259135589111009044788229434115209014164305126704553169768249780989665244628525424267679057464158693538801641664824068494287531878718557075892754206340996282536381751782432209117376924105922786573054970030914886546508628116299511876735492635143835269270201926931515654127759724570868443669504192844178185694574026432059559581861352262660313384291622228994099780625506233038836972362219702770851094266073310538801404122576397353166138229517386176870262237644884497933685077892145896227404187488884503147702677435238867036599070015949900992249776430835973622317034047559994987414544454073274824349741986971669538495978858622173349156113706470390595441255875106871556331777259439430558235849022323556406597050298725410066648637236767088957414445042636120032917746278225669076378675409294222106013546774563661577659280809854756153394325556929858296628144176128577409215242526410445460778943451079851238224123441491238579755918561832777037034830483823946576696999836453197690520271798468995136420838762807759073027860245247000644083432262116484395079776410159044164098837593214377042529748036273497704120428715306473846495751877649637219755596607185249788907259130803481424957972780177736494354914882383058044313098619353185074050509390817819339073763305390855056383938497671404535199162549672470280310558087651581077310168452748589823802176275302851430743745292717739202394032986934713282562442539879136431468886071108049389376724190181062163891346073440322055390617124172029933853738595264008423958796035811173482326052386064308663228774494287426649595371195950466258819566707290184719702101463026157104546282975486956983229685089473865138225909190746679421075921743102102074077419006687236609226746261126135695221973904454458026846493529872739032395263947547496794850070758562488899348752757571088613152798893504828129035151143965710753274727974692431705451359037504600603614644413173067518089048197328045835016697184303843078547893972434033216136651160225877828814846200713930476222222308454190161332059505984296302193427897447303383621544776139588733581017872596905359171852530097584841956752497604389981412359225752667877712397980883067967209061437957250356044556321818208015426738359553222563873987505898794931198593017643252763571951240016425666449190374149610045979055010480770634829041556526452706396229823216548448091229014309341299406514880777657020551814557330336041788754782268957352709494499071296849933115440186268701596116355353892121835434083097085020845652681590616168918419969171703841224012681212012174284334680198390756956594799988458737541368055387223651455136464261111017566554609433370966071275913274164857905721028088429211879925809429924682997297099579763518181091238965373537184861786057367677945808620821041137337433452882391930159956676224042136968150270224147264593152118476734856967441690929709255629036875447711285379474892299710388854532490319476280175402594272732885497561646966563086200637683550803819951299820283771221315924658013000841388930695229423677419853952773118663207375345926597432314196457609874876812462495586683452994051406844164641194730546661186998896901184671023347177544121883013892983424815392504369409533908239395045258322151029099528306040615231920104091209820218655076735821523314601675548093239452929073348127330092803073315195209428067370743325992949885354809076047533953279140914481137861904330294357857489730851449694028231182604536294347805062259970170201220115938989655741888314291627577111230397281036157590242242523597204088976496847131510780141742687609493261613584555349097822806345029928310293870137728693994444518657169450574783455178295927551899609668425165942052359774068978715257813011306274104771185850798105672046407589854205270607403204848914626548360029105586265459284420040714208807148680378119488045970491791564700604979251629953740077958278658005160257020565379528848382209963507687308136039228703935188163176459815887359959711292042201296390613706106726154607607146454130066476464033491264271280009028463750584260690652797214247280621993403048000802901435217565296560909092507888444238246489044491687775549137038819296863148287506218426689273109778035062162774563028612727776952636418599925602312242910229953931282389570900432877378683655731255572469297755065356200529210524663521384748085602041835794528144878249888909433143551617998039401929259476158391445089458818177589168370999291671759364563362051487769110443762329890004004519081484673563542877137262143538013879619762616729024811380186385527594688681273511769994137353100324279103029225338291627423554056771768966982200211165903990140531119421342133132889930641561795089696124334782519185572604211110547079528241738471857564185668558876754790078750162166211638575958133730772381851098941909194020830002454667122591570008690800804261284281375890127998526611625813623879099572197141903224486142432419107598084733160260954126688381630947147575162924758008609101678874193248231959380882001626679740041110687072434394857466181122430577797369574192074907282231695340200173583127638630845162742403054248595420496110929662776943481089621690428180571826317530332570914941979851614956023948853511058579983065502222126782105651878883814413251997636298344676377579275776908832259178924021873077321056669415669463914529702328785819353030674114780388165801361381743504253902894809966579658266744256663617417330724900017563027021663120843970779476240059043809403388492521467446469328775603312607455717195525216444393297829409108462808729145257691392712421653581210202665604727346854065780756219697274107063360087389437976513211903673837464268406866571007301473188883233636231491516064839228573955528697386251853967956988203134369322077222460431044931019227926220418955004606868055798039187557976459139432764764328019863936914605823804943289904337184288629476089701649322168135580585634501486946260241639403257551308670045815862473775169476325478607847216777064430725515761194278341333566546635780320771210454039192849185374804162617752369842257543098058533467221902612888777208019013905643075431136262874092144217138676850504208131709698844942540134541478644118412454749403252565704917163781180295858097096285620964813786617312964412089886515668815676822978740475778583325889974785154909491589108850205681808662325350356797030659734609872100184897564053738794517248177727470512491662505184322899122614535646439702404800081044313929310933801352643792445066441192509622694619247826371689435148640570102647119273708896444947309800966468537685764823515560973036090350401143565850957053867977469378680636755160230980838905305357849662879917597044048650320011696738472257456001982103212828338938192282460598992712707368435256603213254525919712122528420880582056537652392772559215418969899934323051976734163083158703345467619433169688399013066306086790022850245760709056774741239089522787423469095119914552032539433521199895246781135004392243537273619278872423381745577841101048422918005233831758249618327556015600964560209172674356682969401165968614515540801708534747531102550548088972831886393121378062053164110116833457206874904949836112360296206879481012818930626284788216321617221168353388386264189195066922931357422905112672241872206778390791359810435165985981271310706670452440863771215719870892282292466657547357693740847524160539933004169299242097431063107933748415860374781518647282301328513486107805739800884264843158941949108787215940922760878090490744423319238388129086403830030048219332641111540009403750589882844957799162337249245668763066788050269182685731516975636978367152296136662317591806050807892074478062601193500157739145062221730227006151621502219263029524324319773838399237467320405895041252060529232634949129830334335065510928060545859272085922654903587375744436381015108833490321398254683809577432854570979812967145129410298905852692815702714457776934123173357345696105488464992934160559818430319311018642060510709564990159150915281773999095510409734451620072873747001007532009728256163336391203838923807683730817778222070365386634629168980400101986455434845954732449935377653278650799221258985971636684707440318385074457199417049469129253519429668439185414598288690859244033421293574191483821186824204053288652755932278730678025629908356876935916147469906337136129473466895543766119445183993065441953818952804800468698468310686939296373762942939605644389197426743426931682909696899787033034358976790537635313412635528677742221686093373832087130296643085120459112201323394061240008107339287255844254713071691482168720105825042296625081355065669578999181815152048608368428027128393613280422516402903174196294508534518402653037503277002783887874663684376762980823216882171302900853290698470890745606997773744210267103271154280015261821735639055551080150316764065907480341107255607350829400684364426154758002918044816296347335544627125976445591935514336542120862640432359586797229871139140633135435977629747871073122272929970546625398040420730534602888371649801579665948663143765612714716643201511749869933348143842570853274296485280042461400903400016045498572100768401196369283722191661589594263039046409203441165559957108949056911875375843376558349726093257991603848060971697694255963841464573204579839589425020562269023021629764320022624231034577587536202238582543568431565370094634903692656790154960586507207445024083998794051538884970072088638949450759932427960796035659976834971434366004749714453828033138680529066249099897949858054839741264180222726929451292686814093512021250296195066392708960134829071000088135110340496416090159016069393896712422316189223761908099718162056185255427217862180193420600014607703703226633571153148750225126419413201708271093890111871824139192489486125366679670806342569974563722836897521410084529124093021117741934637665899725326491006968594453967655093658676675664402683705828342490579872504776557106115501101198978387274613328021928210499627758810457857093530713441231513345420604874921311928918575844295200599537333152748880435357145045927953727775689166322866833046737151288485145501099686535777159751706734481119365106301946062855659856130291701399262209626563232401552414775784733830111768277762460407633049492396366597926007949920517966815217656594892631068521461070435935901272504775662135773498665787919208315213777598675883910414122059655491080118252867424241109108656602044425631374969036017551671089592748993016433394580052165489522733964514531628600538590250039266514992185848735140549771144335522420009482725343736239532346514089626508213960370949448101206725555560627999066756198571167097653037681488754765801572970334174813395280706860502346764938003800641575682924460618744545604430435269976772360537296392336173498117633011375553996215429300703032017089328456080722523978699917468612783625593388034208787482363385891011292633812050850814055516726079386278072210097050893132599063236572403861736552699402170667716774248428969874786443976665729100590678170591322288891360142161632021925814966260420333049224948244888471275712018771045222622624484583792020412947210785340412364974371882936236699146024672029533957253197124278053721245851619614736967221476568225498679702578283400955846617072195539520323531076419139683361465288354230894406368733921470622169000144222123519409638996310679414646290545944999355241335777250120331279597918492018318665366329553699223882355025861412216109492414166240371633009355917762814949946805620322895474076268383666881344789100148215744551074917867545388398027777690572306554814540771182728085000236575161180673642370227215945244168854600194770392197122326725370233106357973872913743633039797133893744399493442003975064893603957342148907930673846695592850028825362667746729260686452268535001052148378484577540410045345329579656758969387725433505586041211331185502198719533826849663152806410337591236758883025241723613080383282482285154021076242488009623001416753261239877237414641332142175213528422469363291464253507979373085478187521193098389329585502279451375782428011387723839021453499943149208398313169066263948423092323209415050674803037594561475112129768519040462140525833284651261085639699431782167633017709423671743263723503838469898638281062100648241032153569767983362574076646533778547492504859582579294914208841197867236177068409820236998886619780467005288341860941399679838850270190957794244851329100137018802179120645740000554257563354122610778163884670154336815408328877783478808655792113215930753402722919343462524921370427250125303034563071266644788401258350914414768966478061774119224040917525164301088488979367659623596524346901137683021988670007740885277724030132737945273426920950046541621139978770959387599731378743103579401547135426496584386600224850583880557366903476050116516892591134421939703578508407032767657377738443063106399242748546895806938989493100938235270357392477077411089562275104817927787187229177859618589326010432441122096201665786336702660061486504752843393241835386369421224172518460345705383398848782564616198353868792382849153606332605446533935380870075280400795912592346772546456557933105958017506768257001100624097638520304029012387423034750420180093431372329733308510808717033327810970371371400449331278994241445339247743491533368188343817976615380875547851430083507080351258425835015605485945893604838558447033735228335343514550062695574351934239398835546061100340992629537555833834745849957766555317793508137960632881828218021872335493983155545494742980662799064173973956687436057610499735210527694928073332814096160665059510118107701142160834164719994611023819595760991018963902691163785441779797541853306207471700799823621028159855284331539266704201228843183505012612365642792882737809997920813039267600928105131783328030537460895098977812611445566226470909304766878419074065420073310698267995347366842710384111386048061079804022452609636855533658613888464550944777662269634260380916542798692784499667786464056318902914991327564407651636428229697877926514677615206201817119877676835609889553107905956055763618795736700375536393423801827070041437880358364736252263812863501256046089417387853207162997277230759129464126587730587501480830269082933867082338602562819322345724502147918145736912650861749415731417229964077044789310959722997972862319726682663610001810515734790162731801450277247291550571885701710862513791810780316245636798722342352429531606544618444676391087892311765237446391144492618619565350844286310512641201516849124437237843155579301365296520666212208818620879828293790149107219666138339336491968946743335333342470799646408458522440699805679228611488528718918669678155045463651727036235491321036833386760164802761867785506754987173116908881410251729268034659338846565735451795624977693833244836015968852001107988597260221483451290005883983355801890455106823579418773659790353740738091491489287260677348025684290620170250117676631564622214010572672877396579372713043337173454469036872613912574393658106704124892542903192457314418652222553697853807086988410539003802363901701561528676614122417824191667808579428964212349089102464251367663220377790753950956053730177896964075988763767019052894621358420315650100633469447016008280094337763972382695411539303437123958985848110020012395972086141288820041228654700913018171437677391220578132620322244671257804362609246774214914394703382873445178696025353616827648842776066557731355787420518025122206606186004605150413764271491272024169795763795965138991948931377257225447368505189580259405873430124396079555897740502005190413246103704494862942306582445902004791446111388360090050093782425015183233809892322739164884469465207898599200046113614799693875526103950843182645910962937927833902162985406674502749341370921438403738196046094200538726861603621774075818583804753542073584566019261016874960037354175863391803300357134551316673337090760674441218503784008832244585835389100403351983257511263819171929940285951389190641276978268055833946430028376411494461334305803576026259687617036698219890994027988693626457767929837371576682023984743023353157589018869356512513361827044528790045308903924259445394449653587290720623549380700265600256870703964511747831340346538141811552497037588297026896826289034565974252153501509702831855532145071409947391560494472722640910715504422711222022185404576408822465414692721684449818467677822052528009696493666156067121754267951021226005600882244460094611694228043679264907858095188249302408749594474412461159323844620288423416586690962623002931082903678060094733681861657322685008191781050980672594190815801057856748488439482906290657468287083780440653550995908562015912216532986401481693481133486502633936029399398677853283676405487463567587385129875023637804347624794519271647130958910746677000976671143531572092427856079042226911342092647252565356345709738925487922086852972198577770983278270667366892639292863972865610843868460421065798654129383584369588461626249968110538207260474540905922964109403871785593239581039850979011474916820666084735267452403803677023124100655158288254485171368357290322413780919625461024720957193902513081209563412929079366953341113804123564935051063078080622735875805178808447143304687113152383073059820534858096981572373923389292387536315123987534696711675779795761396624673151031654809796515457092828264907633964313418495310702395566541975278793047110552905167687742438840446417907902387517739376036453396445563741977265120624400817891582724539655727934048357400514069083559605920931623477709966554853665337164194475742783703209976492451213769209287007498749580140298732454711577722285734238695907414233506872290296575478301400358145892463979998173186737445644315448322182809307632094347229366202737570314554667598364245813135061286066807196643953556041783326065141217634110819623348723890896808069352812186111699166114365422885923066327221968409087299663452945468886426371185647132491269007569181038581787759582732929452953896068989236536506998305047413096878829640383057622764016581446170163823911440317561430174310661826982399530827643092724259857849566172763831066151036138639263895952661117895787227041804156940019140226344003763985543595535112718943931629705588330571842663798162455827282747259316650754059154327860295707021160758904283683970088351545376737643341303336222954882154218427372259757022276366726222707127753560313575954730432860382444096810955063448599679256295844175042683656176913565589119613045727668778603008292437240855614470719509267710221977621035906251017210853793393481274246349002622774164249821707257490498718387565909362722922700447528377158426407599762404180896869824378083191665741956861681702398532838608743357685533231721618513452180541979624390646931077557629935718026266783349481112670790909483801047980249151868259342519447053523218745317193207853905221417333788293402061651336290994370131348577840525578813819105025105151664350831000510791374095813452438067180155060944571801197140200147928256639052904789184390730941504239719526874820427602028018758743083918057108984675931642639079308951462952630600313152721238217148322792686749683850498273086124811825956554028199659723924837252406129940396645217741980557345959790078762084767050090464365672613068816193303586820187207785193447084521849771774987216646643292727843571243036415359732353609212747571500916268072474186363785347662644312153009805683076015932706738770081945052357679523218361777983540769127527843951005377902764810706554798720493461097705237496279020998065561573314177250253596686936569188546261392226004115689386118804668808227190113898742250866868582701772890472643822002992612224801632537831863192535252500390900112546442441718102360422151761277644099550456525714580780234675643664477428733585051555147224419072577096587874123308431901974184820276750723765990564892356677256968483678690673694037297766735492419739824605186450191464622287501428456597604347588077806656725385173946995814636623207906552486590047734378893162734560611689496745499373039230282396485002764707243819173217409707551003889053181035898064441999202611690163093268862991321923157324642487916951241489502032225274963072670267409124451252779640440855663250550983125993414034297369058948575223899003352717822491117392794584185976611687399381639988151099525134126323801599860357671540926980026001428164811358324134747669854270942273680186929777715061374591790801594756636298237250812891221561281772778357910754375406356838872697370228470726206024444399023189201378059227129100658195441318409400524008118749217334648052122112926317747756944619744352135435035216805227228387104970599739845224379012154453671689648259874078354163646024385011358435615039366032420776857059289370951518631537826360292816531655589998880846514180713611476002592656806690211594278427011704342513334029093233581890783048721925030363909308560353355559094162343367420182195065841059646554510992357492939981667558588308249167855308279228104639844273255808960119117980785866360150560834142976582640611222750885794578591740460898625161301251625574488412785738172006794980878705824763339437853773152049650093299057145562600910027822023259337512540621322505752831929519800239803002172738377425145171629065489007660856067441180084705541724401989777177575037349073334395524646229539024943039452563944740066693767091966582627160221917606721187935437473420996122494476768159147038993404628950596983005742483702059382090998470136867455233199701362113414811201600672325978015175744427923547808720381730039322753142064510279243199817516246102648635314364373636636951740404935172042862710607784860445022380035854597920868866123442226273767607840914928062944775502962002992866199621139897464985614297666220816417013559200731793532688445727960938232662244646649486993814638545670369133453741075726793499736660581415215037384850414608376614972147962869225984457022547740546541573276746439521142233931288080712875492067150208401893773919002363236819767663026341659240760954735033522998345781467058331985542502476514903050889209838138281242096002490315817784045634041816095093314264859782754931101466548875204335617808567002854578821033175033041919839596491112730885150378411081100146101925695391660438013433600275980451909901115550716295678198434686976903437716971303634547577789526700123850009955334361915121501979400780024671403037276377344185852416484726359762934850638861314254800506668318728076589829205083133947112901270652740014212879288277380889545787987524179409570792589378881222131197139439187364887670615719330011181907736590981646739679513725779356774261207245091468775209215688673822975510373839366686754502849265183599273376796907193258855519678844973294888660614884101646743884605166716700217629403137166690744525294717608592548518040032929424294255643099268122719163270926473522172890551172134094521642499821252406630997252570406016983304065857228792030938661207842314288661428058528254762120723968819834501104197486355358708140123032925785909303023586961604424064368637768793893240692049567323983977869792151010586636099592765543711241941707360406396304725759580734227215162207977881452140529252410344905030875983593806608673318279703587208765388566338914507878795314372418644397266379334786025989989877440985599686102295123884674291796044669688136325448860207502640329547583924063036148115541867564401399891335568528897090253800554878637642791917494500470148500225644813021827149465286687136515178875793724261672684051136131510539787091401973490024011030572566160384675531136037978217586920313677465073858990160733310008049095873936651503265800395946005054223930518414302102698815955284373029874945377687208570854765997220878468874750616978549997260448358535105534442353015905362228686387647416296141514047261904345247199967309505363592997894752460875336454049084238849264125168751640837523272729522703228029912361085558138075420756457353032346034268099770989084841653111107253946333591415036335783922140467065322071585734464598699968529336769991076971272682073709844982876444008721983516942010514233565124806975204304299399009978178928688713592913239884293581860123280538736456565643349539204577531559361518408749929546059092656802697198798668921982439611411885394436509865932509833025795561017805180324359471876852869020300726582280218182745883322936986693526108714710695873343442509894456823169175011547386381754246956569249606543890306829948183138753820939288605492121076530114219278635278735814502138341480267046582924288274683937852596438389649535955133954103954341462737945337878531853208884956988546720684392220054887087587388027530417477799605429604908501711775303785866174846139396438350354829513628669007886363893170430129001736171055812756493788333375051138886017363950532109248972895739967498196826591155746076345568299472089506259325710058067547182483617192654974806479190421377503644895491935976375428005707089384553676195973900456010358079317274512955419630864726548061641617510271675102822294527265526684028953141449918038338906507219783043479369541516455828865255423014442446436750817621590490516345695084683010037486721333979597318355091737689645035429893134019408659904658497390810761267395409395183726697594752705988262077320802398963275199175883387118550666717444118548810937704844781360522635827367516634314186707704657140058030795409900611318504090748919761366696854275471301261082791338619298321091615361705846448883449049528096519699411679655941706830483417756135325550326541284034794355644524792917372394680812693127887279136745598108871304236475599301429313367741961097798787889296733080490320599042399048561332627759110094106851185041590355309244852581797658304541331029007348862568584301602131487682622599434482490188178091776629702013164226701452001328930290016078513103794915356692839175200283524761850906701775527215865819784371574907007041509627279378112804664381322683491931693522459600752601668454843506708758409802333615593115319490699674371398854235946303679814690740169368402452522847933706296740965138279546315057451340703312871331585692454441499984008156194349719592777843381589177317848990456845443171834044332072511340300524211414512382285427922143933501131245329454451578631480096183822613598426012324704275475526417755739562429380194400440072590453983098324928549132503933285594948604996709279923721761196469038436199750796051226727967305984848905102711995065321482807353413023728730966793422032823135405205938220588448616942482242248842057339811551671940182884413228799608730017140264496117519645043074954951068231746782476436900533179023763682960665147031518404292809831713326879489215185365374127697973956510743918888746963689365574544386464437417032543613152637338291925042603799171970546598743155222656599060191184558064733482698848474059633475907285123310715291067747330062055459292898619823187570980702064255957995494242027562362342395048012156601497652362432128774598420346278611458708832311351397593090174215907972453434631486150306868183564971412864250484887093124563220082947585283718115749322611185713387039007371490989330581748786639331170332662818806602310362751616639221240665535866202362460887598968223384817289080872532892717331965413373362569300515357543278923354369875689070913852237431741251427792428618910977970687626763235765804058126179281122090613949006699044053303320775676237436957420421663528054259581687846662660084927771622971689274653292940197254815122393474549957966083462066811718194967226792293256087249764124053695313214893124582542325708340338592232338746198971731465114405045551054548552891584420902867447132158506304778202556469353460757286133714042632773975554300528897893815457342489070036132124584401773739278879605078162065382058707568577537742423410664362532934015001052793643108005869863062715147120273105915402774721478038478535320804357957062383641683269562097847507229437861086324336458422682413107775059863613817117888033139661160966033653820996096825847385787610982110758309859122983171979909948880493900990170660054006704890732597983218764484833811886145364028228159208679445055769559630875090614096400464195736635106890176350279394938825565484691089164804298895675816571948997712722517647289356702436497652621259892730844043013479222982643689548291403912174605183826148004253820513408990149342330074738687448543710008268048573084186223450085822508824073228732645143184408058816001544503827587662192429226003929553731512298124794257103498645941319766312479192494898667636255898937113305013494051202510409032390285322183821934473810011947658471859180239278024485007506279046411788420242673982926192613127918947060621360390186245439194673214103209446241436987396495810299486161856561080968954486523600995921755818928042236508090975452265652565063278319913134953629015298476688512670596721155097245066946771756116569946833194494012112754803810158320046239955169805053158894321789077813265990276873697996826359050969254592527622282899640156442745461734366754125723101130214268198400826385759205641188688557914765549693221232122721773817342653044523046900280513848276528082075426260091464517377229371070948863656692505879552876961153044018200978159941712238313207186165059872242594252017608207823141591095658938839070840146746085641604274678405897479471187372086407345337837376512813088640266006500158006036570551368442173486287289309010167901649566537271696597491579193368493215075849441332346492466081946852168319809564673571591169843110448411233696342671106574872956255575470556200867666590191443700640283074259908535829282898619874453066554499446237104383917831985960849392472227775827615224882352136245724297823109977598955765335814443708549945611523701018458418602576440116678454770835186364796124352922558303735183032383612764437672880821224664991956441155675668760413924177173333457136867402361089621076225675763486679530811930004604604104462351059056319975010181488092883929796873021088803804096970694615784048398973265852820520545718719905836457539941161027078620954921100756682263798810627496477992181864578149386664318769028272197889150196450291068814113383081196034294564470695975058009573186512763622812004391381972460316544527258463263776345707816033629806297051692962978116405870477604279665736995196597439146310609088278716328955138089211870327833759103693859409446649982286069209771135869497264503384938070907932794391464469733056925068792391544858117308041755638217016705932520913993881960049829743235694835103768111371509243158757344138935928943381305666648750322427837232136751844162939447496745430404977844246056079242246583116636859150347611607947503591946310016923557428877816224145248883679709738634698118662243652902634147155131801450242128558896642234845950304091304005818397006157932224079537548767097683741754142516147629327889034799308745120127775791908686184352534408964541940883679323672950055714268263796944965376496538103013482685749498677355400384623562670868401559304742878531312922065477594015759824662960552885830597142904078030401795898518642284857814389504615876548067962468044646302805047584655834316025356014417217864027311212600867644411713243209496614617792713241245168870040694810723264884741778719563036094086639020271366422185367342906892485499633206754207409181597620211868623353453797517620997285617296036629418102524541303656952321214428251983085256121864741956640565892563482974639927060144431551144776093928480699870005318425879058186796598370609576617484924278164223640681469400554282377783059432740636837749641937698187924338725322790579841463745360154066012416123179257589396988700847596088392721289184898784699211481987739503512574571256268669327045610685692282007573937181426805353914027331715182437792446693492342455754314371492604798133136696150872138754083960000919632002596310400802125700348720882873492134939102171808389396746833642752163009852834387771445676442108225073145857998453750105743099485682478358132797460850770179986188330845398046980666437293894025459887005224527336511627470618745619475286034198635575021549960467508830228126595295098524222266920145099511488864992608704016591453634658780038502987954381898122375785641409849746306124902265735255751966288305745458568731341532235751149650094794181215730982901639697461401970435982547606063536146077643594538040457371643806483825118908268479266600924969919867128904120783166469976566769219553475230161540767337802921794014247649516530552538674993800254512614648446759214408477701899765069227320162041625804959443399122680860151151934637402742809853110084416096624555682982311796086650880391457205128631700820836860960950513378996012739991370100315550955030539968711723258109012399912668144736054654279508989776756814004915157055537746774448368427601394230023105457745686579939120507288908080316778828198896092704841153568058953905337166934771158491238970000405829880332272644330277868458169951923218507752991644505668960870544161588838820206118175111764892269875806098773907603303711458836720450712947030487255533358726969728331008766027216873763004728518421461079911905973410927870982840891957371868066485935286410040453118911010559753419234524062223894675433657776452009145725368693186298530501513218131055033489917503074115491609631691343318158701387355217468858364837671824917462583297261515636314221969947866452339103058494336582456583241392089106697277812623003273557460672786701044542700546113743852556478350356010429230412482043767594264633838585116979444054455051678517714727215713381694344671107310785263510150913827879395899024454215786991893914245029651384917756701227044289693641490691192122747487244104458930204137241182492362757585603336212589983863000454389398863503989730666275261635150361267950097451256195381290287426807675622314432656730633519615135040040698944134780794788375547059876686706826948749735321314543860482545511653054163148996654452104429190845161261598446787047536414993714087367003677644524051441211980477982793835406583158505611265125172987610416546931340089217431784988000258605643318653239200241133817482536694132233410395758254023492395487312246213584506369089603286766059181852366319636185759327728397271818843110189039313266949087192121948860977102333771623154196806071805529147334456095738280910764964891201278139970238798890360289415796217072849356047579853936037095962328145190057699371585198620544456271543865669966491601275117459267415035722260401025525075363620581438855653351881441747573897765299454943664990853399494027381548611285872598045715879597104454686229479067498730190355247438687345795153946455394168431890196341960441816678588207297137510096812687386019899523301274516867865379801563435583278892851727394721567293852426339879602691764629391733556386676223759655146027808624442987028332190850516724547777920170003152806718851962161601109976431898594336225111575490977865966440978485411659753274432434256374826686888086776700195427254367911355899992825592701913140833523157827196772615172267342798933189915802676370611273098020498285468543981261022242868198888154272107338589935037380492304406743718532769272710163827570020499435195964648220452891922090825753128885074511658997855864857713035344040003593023368011557138031383583555422369188763078034702811599391746095457358933249554270650564391264912679048346812352240500235083075057607433166162332270581588852991262553314967311653134245772986857003611246951294047996772129879165111550475454957469797144336231764528318929905796044945598471876568385262211009620521691438614838689103306921382369788565858160596149371800495394355449683481185277382992457173887438617343377887209271939801711034560352869781166358503319770134925900295268184652687412464751306138449549224475147072327061944883219211063808562943287706004436093367549491697876576123493624213547499721288485973958224298842620412784064923051651860616275233977514734359123489002261816757680065438826027605321440712337800608566354025902272458067220224327442151078789889421808813636148886885098691434437487779683563767830427624721189540698661081002039340720548066305010822474150162262853273112773387034498955737877359309046193099958465139829115664551657435381937510481447620837553135016410837815892644480906267392755357589202378220737934405391274369623238724553443875126740137150384606070723866028095854367598700688989915237375426764579570724900045041587496557646161702386473161052280082429712037854519900433648788828802815084281269810548183460580413584482419089093847554157155701613286449400646381213999473617455945422790617976644185334433391085175480124954506332782184813024488120614134795360162796807223980508073610821347850535565507385004119794960298017617372430165542946132419415783417941187896413232611973324676149719473526299731855993282447845836064064824948392965021233203326633173134878528143391577259856539922911434507541625988257142383927784325419340667226564481885633375382238169214093855674222592725211708229111422648379836934938135608526530141373589422649452834456194445112330429865401127031574966123150990399927422987050343821154004568571273816552322621468862943892247780768504293189697847848664690980855415139613748378767735649744351728222358366281843345901419545647801880810088232380766326155125122366169215533231648778548114180692676826645244610249486400431708426542307400454972178438722049221694607842465942786629461742075148332721698899428168003398987679517002924638481078699976472536206611195385363694160980472767642792512138567020669183785890757375757437699086564977910426404301645676303483540283846884589192302920033147609142412405413203727018447067025903331543871829249586411398343198933336904922911542245049508088672390999415479898898359219291543079506022800913136420594932816750312208573570827933445004386597219346196344075133051649286019844406873324399373630688573690148804467822735179561608899077175485278030747823097245748147955589071255045318655631206038957522924912991655613439451939658599969206011124157673051382354319560514601531811925077920656138927595484587846477637601565649838044967131276400780865073071727306807298738050351893901195111080685432825421779101667934769706558028660520869408946160963355051304140046446173423646617834920453138544052165522471850440837238433731572311437989767229546531179764652913201974016539536149826429723908127388081613231525775175889522758320078621191059996452301545751921055022393103995462633415120798939401608037445013180084604163119090854050710843245532994682149840897487937954126424152856927634898793115313694264533472672197479491012757958649995686746673620979223521715129256115223070802428283163593946987954613192345990596327879700401322922318661907646577140796713297245496023319267176372436661664595035646538619602956231406567813644083167748176633331481553924590104905096560092507576343575427631338051464263330180309502913200168304015955336577695489682606022016894727420169693543099965838638647061190592730174077035002543200482262860247757104840748728815060837439714834061050059710937841695019103072227543650972048725952234382258780628003236562683926428522483842784669859335182545674390709183381278313753521915261887134858044635077668592565324385359959818892376591138700817517540358360662623242514569896834465694331899619566574314916003729218109055911115490983842318686379026269410489179334471728986055582362829904614160938412713643101345372780394533315302508255699398089324389331162256925985476453643844456164665227170477610007412360026371785289619205418846563266550590658058850689449548378351888134146415518054448379362394623615380097390489231040127778446297412489641121327309183147125924653680980781311614602656736211328074899695572619908342390921564277848693356763406157878428492831193943658444704778648169857836781911037105429780739411088565030038939256286545973165126506980229385383889282825273459747776342317747118087816083540131515110421358698593841711826242715832743099221830183404171257697962931111435675512502746776981361230294417936513682229138046471205827740836880943483866924005390209313682971158740391919744399400331997450589181177622616605125156741212508566817074582592985595397098903570371157192228705939151910439549138656851942454398395343438155025575052251624503994244019183022949332377629794758673923288502007689686544885369852724650976324703437929065367168963479486055351513597997965181890996722613390871252702388500801163096517805526234552508228535333127529468972465708832301607091993883127194452173377274596970880764623047617745803115488170858490291434688474295054693380166416841707785582411135596267625342791201272736465346541493741834885248111055474973008969917180161139305175358111378287366402007315270199599526448225051723948619409155442546523234774944788952994817484980447484220581522114964705370112462515606170888624707652056726717765389627623772563375518035469940610853703143713037262835729385863932431308880161130637700405847916458345902625547125306741983701772900362432609312486260234511632485606039747984695154078656175415854860908018218716332803706335169967755254306547143101303846174230391719868195797342698710761778609103934988070998907632609087475053002355883806710287831054113848588970120068780491357906154024695783966049597905401672498800430881086988913008934010136184014645448240229333962435551828699927000219449229081949145334121813159187708824463684337995523279225436454639115274315151256495606135966380410446837239041073913568045951124382655853549329874363495830396377910143942688795910855643647327521129850276925060361834205200721786002176717498342637296875665152815946393831940758531517031028396689282899471887590527640161013779289090609107222823977720881534142115297094232178599731555304232729899487380505812510625395087462518490011368652693991730649761499608152527008114141656558116527506803724156720433031899481436968237228075170965151997931326856292426150869501777784523753650696107218799200734729837707486796634399313668009211492020820689433251718038749656022928951910382585964442775010669785703955743983885735846868932672076217080681204620631477962346745091096446669911846371108796344735817375523355792516256057109476721141411243851265168150022144789323112879884161401882217265088851833488767059481679846525646961815793541412762330170950931703922902396855360458740083482932345415749802975049954223889205788852834507176190601175831653512674677627603718739362824502139083257151956126243415084026280783151180601235315350922018986008916005810977024577088888386702985605257176908470644286471647067825784146056991695892259188102767056480137592277554208423692411700054644360338960013922516145037664576165591233039614735006824961838679108603823381150563576824975664785672294558811850278303640759833509196544356495045321242554211322098759198219096124665476739730029018481432277145176676235408086863237862522502168310457585934010577535898455771860729764555171207606913614393245919744012382141700065853104572229982701249148880809757618361494150462163134961642579895284005599638166418138926924827816738815321869528274024873327066092401667571898073321383474303659588462520852102034548969138479532978728186858377152101764481780241044357441221061046040246393605978884408449887096486099368448917725970080110701274115103630695855362215860425298219519956270782764235755972925302890529932912057841318766876506509117841430621743501882280476452015998657941346763293640390526882662928754364348935076396102478573108589885555958501297682860218364535974963961856124726072332644865423936739797922921026519921466333890659646110881178017830644456856507463182724968132113089907259410644172813846409377398441954305927451711415911739685859548029077397700047943455137767334922070182362668167404121986385814585524741161141871950709016963943668177831600141833136035369503547715193219501911888057561474236610685990953898137758025745162461956176267542359371211117253839001898404539999240193445294322233890341767654679517074296300405452605932537803824176151909840848995828807426571118821838324004894142376967022320360943221101731636738767198172702181402133502750442790002701446387391437985897614425573749830997702855724329517593301853482086343852573666256475182587602625462875653295618409915553901325839924130010909774901469093551862577147224108924384677357570052552053060570250453223643897215905553962143798883832227250121908036255416232098942712445650662947487435246964974059097295208720501685574639229334936597543013183524038024472368569015947844489339845559161444465402995247010046421836924808395434256210192480835049218809793482532484671969229753334159458653189752358016866078421789076492585272504750958148383489743827999104047997083884220624990498230660220694472978312461714615904602381889425249311115823833734773009788056261857951199130708010038915313506691316967514875033516702243130054981224534176391185318889253567467613679923907349210984978635457305893794032380650606112183140408680616513787232407030269714920813468815794359518043123796145840682773908133202204246341896836033320672846452986549872351757655028081369782172263509859883456308724066536362093529399965539810736661440892509332779979226508274847111587939079076105484081405726253679810617890584616645350765422823203772580819102218513619496717558022534448056261716643369855552747347833857287914625448557514980818261283011092458865037460426973097082579530483526900828441061217911759368390205712120410532986442465643281503241675494409342118074624441911484859253286703170467586668895567335037291164306800012903666855103028968343884178646683164498169330754865139452746406043849839204028378262459907488317022744821881950446511577845616856261910601059897257939632234954176586411732502540717975409275649172315012642733158095044201677025747951546440919413216994679369571320021372909101504582817689482220739516273661412425907209161238364320877391689725905808117802226840819643111366641124318041182582913622880514478724878339051986545871792567698225696386414848359568637116537531177588635799743009276907448610968857951382605119672860954800524441615092242190966926561622025488996339592393990285380456369386632753691759597551672152497242781489250905088153823861267328210761909631576248008363171074683178183092112464780357777628143178743840201427899454661933533333414155348409916954483662132689107952557144295770264517298449468182790840541016367388338690276028207159581883483238310835810741636617247198927392612158873946958776355711743489976259311974529275461416330830230404180957599185439987624436041742382793472590140164562696116649662868034523431890826583103154433059044346156842440928520921947914432014895214566648029558322466366044219872724907689578628493083750793942835344110504810005764366798418496961526662835236706994845308609157675567487545937433025541000593534027903727297504477948379921869766766638740408657450669214108867990106149948663061828136708918797999900830527203227523442902309607227129070945381798194344448425132063005173698981126984181515474390940941382757226345076941499485610567817038733951925213181791783266580243424644324387784594489009518386439680022575609033675623250290355893142346079469406457188359457140952554367072223614466484037847860493121631852006069060989913678092439420528857691843098387899125864652533150445523103995724386705771251329506063809774203657545170241151236841829975252963059919178288111449960187561162009609474067046319250348729933337816037078668295010225223197228731426844097126989904687024894244687228715657222774680445173859341046553222969674590397465236953831971122452194150427698238769624731226177016058522113242086387702557700200709157276150778869343552342393252336764770526010518520348707219530426958067588619771812841318635964841188164044064347032877457112004045439686734581007500616290093434243367033494321080362086812527271121145408285635060767280977697101904970097350866962698249281652773509160906646029700414457612044423384983147361942488648867509459301637394246113280628667455422126857656956780744217259036241305873843934539941520853276947941040202611286202456466007476381576767295562121831801218775199668388089675263648446883893577136443559034962731866302871938035564148160563812344125167124914757581645472764327107720629589720935524175375160624219562071336950980798516851308998189247970025772871688640004595069202832321464995561773652486165456194414794794700421441760959430331731758423023866204307990094236748293298409835505527737672211860038418846046783222351483782928101398244563505048648692671902677720781258619294356488778023942943927838125240278183369875040909513980049051685012081727654432002543512897967517412506563497802812112533481224575902892726905464747252413756447936888322572503173320552123282522366481577090906674537755398989430132516220902095416269444008242337032270781390047355209798376570016274426002177434002027582459707456101153274532139012050152128461144961988821926728075445287564029180066751422768991904424918016965340457193565083445748007842240706832013753960021842365491891016523401849678999410989791280605386932542160606846335021038702587910559360884157920896538765320715003602370098592470620343684562669498890700032925003590651526907149873122814884876092644871436000656789234340945569605867190987307515155301852362310663581919109412542585483331047557619691877935212470103815540324046553679055166566934491285548460131119182764876118546980617679676321594431770604548725399278075094037583716509869506036288967682067458463143828396864468878529635867745580323391222904929156091410994011382410920070368499544704247415172129716857709669608956224328284743083412463780075386889977195045488868812820417884112673926864895001816121598815509242039239775378887027067742457705866578967647447356649783261580590330650849384758027209339088894925871654150197516759329372057970369636164421206625812617419798613292554679995589404104906893170463069671552757075244050936999021543922156404280910451505217940532348060482545843541172409153749022690450085160888712192279930457772726176536025070820344863834753727977227565843358697314589375856206933623669107537356018307966029231980221065470403898918195121428126716247224834875525769860695196079106880812849266803092992887979352904503970053817705711367007684261193858841067288515595261488338379840071812489637205875148926467093738881740900832856714859608434705317433465722818613858887848846232645967512250885613589598358258942967566697225290446989147631430068530434092277769501719709913454445257832082522006897762089343696832415188511223081006406425990454238080033797528601553247813845351090937486049638985739395129645532144084618201982758653588203587404386045457563064040445097741175628047684289016082662310635194453289633314868157971977639380599077606209239133556146245267473899511964207283206123607271031142799904078126239996378499080783633599246050369567920592133134975773930682265845865887917592987923632096193684479370524211119301839263696992589110283089297409229370481719054166121003094538515449428271631048973426996948100351360882151787038209220688858527483730494433459810632549511671048716011053684894070706741260783753068539624333698710530970412869968943139794336751815436267892209639997377755098281834765697976608213676107438769041448539164295581912957740876978260618642934522831292026543460850606309385299997832680638037457111011051749636845956478736683669303956327542302907709269052458335199554983482973431862993692676568824638642402846913385497024875629600820349720876630063117368466059690562902086553535183322007576745030664581817246249454455442568124688799353904028622363344316671573229936698050742256326391404923823164355433563827732194582064971967273680014283245161291501412825272845284483154594771440377117008599080449375188042890534165840256756453603579762899624185120212631290043190352972238840612838335676478549757014125304391810963210879892694306611874907927645179684357953232440102270370488122567992179886189031774840825079713115192002011742918071975018972931022178518997503613914005935641949816015847469607760202227378763406068271128792664526069096602773042539325082783714128070833119461035917613137793007837630727649910216177841254090633000902475344490971967369982298061506028220316547828050266428000740294891563558449559040044851016440830562910865711219239250450696777456081024107606789228794466427701499884872292728780134758184701047879885615490382072180069852400825020754525202381291925323763294429548388757928010036980171493316854577129544623232740219123478847305367664381306708255653100632455578790012596986852586217550197423831673094402756964451581505109210067823923987670346209825022935805302951526722731651026082135174750144558079041811868365977474560690275190160713364291824412781959443484410430345138366594481615451435581077878512977862817498569490853371663298688357784407832293485306532805559325825772463428169120618781403367877255760794620645032823437742179475286737079844070338442516607544500583500473041757934035230462152578461378388684830516664883848494475765591441474485352917706792033428435828945208499424902165330211435174654015490987734273002940583414318965706262732222261556997388266195201650865384339219979736827913588463563428242935307573610522558793633339995420896778283351963839801933467853674655013739868205612336581325288004820111622077729631362491481130598808515029904613860374279213601289442475235453691333395748859522781505066408108719322719540198600871242936027855260213565779849025856197986607611013864412997153729420125665093984419548119367608763433431408252901144555861320082268039258237488334567872551984387012656244380877126816828248117168253565322214892349578466100570908770131467921241043933832871219723382468655143526679263236650848102123312772415660256307904835485205982810073898646577166540120286996167173218706119630600349863872740650204520111606496229369212108026480834780645419604161268895531034031482569740511626678623591615116803668411993382601344097088606832516451908276478442416818979743656688116823017884603258453256329257467400068294947333962360083070598359006750181230681264725712757213036900917179840131281814735935945728660290154050038696028251722226201368352387638690061379873910011239163406135954608383489100565775052486987540772157821753766112268335198337107475990763811837085520837005941141229800116112517527513859006101919335637095118461389219303967083163064309175865332082989775639771703617816851659362960552033838336744188479976457915788546441499471810931639573532964423314870731277818063043879585083342776826179219548909323013982223787197228474325188232818611523939269434130805135566253594983508184473329971139209606400418976461320348334842675512118468852869165343029347724452119110197146886765133582670262420575930056865982026237078483633651107355661465233708195058268294662711304420506141797504230979829333653779366671957616448763127917132361082316238563138451731419071699676512866250454033104747124106215144863737383910436406761143930254775274379921548963884883280271462893766732174297435487759459256788841024657963032341938295400365468740313966773935039783993392792584131789100860494882106170969662580022003617707269055428500706238854916222969659050965983741644552692339864734769905599038582286104248043108176431247793913609258923499627179780292408606290672209829363878233340158976167038563160769442841458973328022073105069394099551095767710261722125446343223089900098214720102314250990234349327150118337513551492634242662160492702598268675790051471928664777339854526016383488485804039241608722270768245505449809557914130288700886017215652100784206462315243287720200716483980218656829254989118519276179650016549461854780845278110547288418723683543948566695144968353674480368969127480010531775299645218290354473841919756561479313255442026718385897448405709173104597221514534814627942939672028824053614133988564393628084056550879963322679256543245920865757280040498819216077475180162240025877531471781812741416323957831189099921811266746566351230396815304385940732792599695392536010079668199567320200661086014406602408268109998901685289510671069543037597549115423917590616292246193177014326374177397321586007031428442027742228391178296937719841548254039613216491710912211448180097382176569388541718036133230282048659188002578136780363563731575678978869318749237536444727236161911057548597872370762249236441647157756510458035067035053904623999339505208339140424842823338358412664988349166287589694045742962532856034609178797410644426986143166020942932400683616850287745431166598734438341365834448248960281446756877860047184233793670974151488842078884554104861402659834851606726730243620782020521942699135788344529061941606898787920520406413407388824782023499246622787918886279286666485675665879556976155323670411851691586640740948416916781547438954354028401471848000604609110961583925633024219646144074703163336077752570720392081107786640438567836246991083831692304620208819133275678782361717992374531471747717370315770344322111325591878974869400862272121579764101521826407522408391186462849712284589567957363919672830827101687737772893035725988609036430999067908783933884099439385836614246189527785072735660329554159680054710737294328184615625570363399701766702144483488590005422577954042351516371740931793208365124472787032942340791367099302941958813106825099424443844843462245607580334906638183404251452675158207535391269036745478957012373153017296108562061040630355692065513023575069664672908993228103573865468589905870218565002630388786088032620256188023779924623782010161370920635362866753050703141874166426028641187034558140208606643976572833282121007153529039424628337143270534760374838055039513622701698373272486030822944621773538904817462246230890834074563158995280503089990147231159925247844829567400609824982739847890668684216782909941972887671266149862964835176338054119420438280649788825302366770383653652429657795131923164366270283495038170277611784744802695618994026462690700403925679313556018868108780891208071220447278734030026624396290084853311507176118458280972961278274307339693032908420509055137032247487150565716168236699262794479355959510703879675399666461342020156044185384131703788588910326761978930355388180365495973077981134623942078035156441130604367941744276711613602226227795391834108553613169676241857843312111956785042227062697048289141534258904966409122601972748148529747786500595259531113804056373297444244764402738486080460042223126773231610284954917800925581009109732292533447247111849475834735333717815598453718947345002590531707795212195650730661808731050492709891684271857217475854202200053306869162131269440550659657901494281657811987674908530613986739769880103915919783589704587499002704916451122248661664100091632043696837959253445706388841826920552869260279270533047322345209772333092102584088566264964685243275384392369384600032114588600448794239742876250451998885246388725338352504435605698522855784110247408820480289363146696458836349638862537626440306608713281514672888016712289098834170682445312305878324604406197749348420770154585199729630341896070965198997690275883378644753722355566094797608334671138492322056802126406215550028336412553735223909904164624523855718581222733411891216597894375854131466002582119230584680474217180281109646742331998381373690529530725344387721187604330850645468971892198632415424767298667084717702134915341452262833462303286140629235168598438510887484432058873024282204169872605065045816003093467233176565983101261598181476239271077825973586832498236533843002218483829996584526283975413957439561426115105171408237653803741997362417752696439218529894847915396326581462008954368582905242155377857465470440416918242106616385737090064053481594802882526256599667818537529104083135503788047747945344242137944195399340105416843422703156233670484191737577691599843417665103713727482149953598101205037251206953825136647858074743420157961500969430262030220965524296652752632164286702240571585730560852029062908569263349518703478147022464105026296021183865281692841021737922372376351616550626190984107299988135910280464459131914559789845558694141167428952584698028751767512234962070213144910233126391959716192118177129043793068159321478901692998643846415969434056796312768494745322044161548284171059779326558065440092323150543400513584626697457454837237405814496534016579918337256671126264925709460568490104617101031276076991709480647876933753126242671237621114601743613413820305985154445252615440634089970093534280921899050473968571200803433735244754070306059603958396990465189462394383349743786364729352708146552670307343478507439082589132121093473469816784736582278664756336770127050599989072386938041796076252561528961380760682576143511339895344159085399612150375104036578405576511968529741702200140626338873943826714297680163844482863333862530401540813170309027623006244872450249125894769580504950823507459953576877590354516637476250123599121809790086592505155405491580583692425315668736428518939036057546131477525140622656906873559284373049904192669869198190375850214428608354254725123022583961491510986208682488482543232023739784479865897219532165285590480966963762520236519062849250124374904326339209994700594605358087617973431201563270066751256096890269433228295669449443488718979949652342587601572047166654399618276128261870204062845022499050834527222351694238802150014165575016537446598934467700563300464992670191351315583948715522084055792338674851137183900010992307965891233750939829948043204598859152433431267882930071734095520909823665819201828310578962870930564208390246451224494706029854051775671093149991389004591924105961385476416026852822895356456020580705085505202402506071527942825091204538154608304401804376880957448129518273856518085456261660360327513414396838330046093504272925421705828232411691935623515145393187751747051369925939453861750130308889957077646154357175674012542135868769045323393704830422382158384113873482582045646706419999825084864936732694815391674914351260181425795035582339683798332215365634545984399338536078416602411606896718439801556029860753138297578131842752952231566492032396994680637656632600439458143463021218613808644658574319311588956229325850046666347060463039316242223261045124628413971665365754610076380121331818281547724074559943472568104110018646836817270253468630187403062496620489337233115712072330946946554770205856070495993633179322000552224185833893898108075393036662749660630101856465308051717638887148445096643498203604068036571991653530601739379048209109042932063552693882569543894567937730667784649906332631876696516379070570049686903984757435218073509191337766601865466991858368977197338749938019026331193463762643524540821952846769091568558307072648777907593751741970744267667952737222782499279207033159724194107946456520267960113610778374501642337361699922407485712470050839334081927443165831352496959571064295096658588383651791696064775636149007910783001619964575628135215740866309560354202246512449686758979112615028087343967095866965897802727051442964353103716183728178882021998301052052645731716994871800654880635759095951782558069385403908102482461954763355707507362545119252480115308324578689505045211164057298272046689870659894930107620101661985816345466617654880292351315294994910787933089607875189057399381056636024074878960771308519246653485358015373814220218893112283207953585140559230702080422864053133570212375822403856856153143620357980792103197794417900811815948890095852791399457576763574625746395960325993379681748833425784612353248552909650901938668302031040514405414290027380317396255428196432502204624123555988200426847496772292614618867048491867064807569883898589766568889384398437708240284128974928019638650528755062896122169277694907802318593317487690656325210202428718001560232468767098161023132592450528049739910837652752689852112033231453051200825308021749527487327976892870734882393022535091811552230967403181829819782281645797387390585640658131586009277479236444464831066556878795034794314379330799068785936635258425861275195934604970157618899548876597880674394080983092868086212062191200467402555906066785658757741410637495075133546001826031454888563484575674164765300544103317713755024290104137436964194453857981392088326604656963883888761463061172393203502359221541723718656798582364138888613026435440760334688175219212935974748139706605304868289007471549342475489641871941332460616816064371124588624568752759625145776834071495966349111619281023317549629917187411632714193290193565821372423992100657949939672206821399166127185153901798575611438018957108400950461774937684181413401060806678120690435711966130269441171445875214903348528293434165543722672296353836440961184431115062747579575288620595735654939036977716811018454705312303804627001606813421765188365780979442849701642113031755588876592502955924645410505686506512537395024044268070343729145554838208581087083964200337052065087410123675525697138895641539467248218105104359504567374310415233788613095233578123415283646466174854099053149726850948570782655421269700519164656874156809889951703429719148055961767895744350504795711891180805043674271805378923566408734252015679783383826566718065034422599008860476093340735818623130013506248325714636048256967223076968178935699327012363175454650223575800686489021514459902463209518164977511573321262319057115549287951333148980603324845423813479929078784266036410862621800130950281697660835969219801501950876245264580516606067341789062751312238682562069173395922754930340029099503237428969155710236635111345801066197353713230779449668727102213311035925781552993108267435543195958879977758176346358570778686226868125616467404869158612269937982689367506304887726184062278306199083468014873054256724044349024671697378614508623855798691293503777181233307087739202931437650635310132679383506122026152224231845871089288102777779651271168586205283539337361428874825085165448962606541436495046422307681853996827317654864178717035364144138686132734921224531399717576143733598539530359361598798421740787942689247765273752517387720267300959389859983602613021193721852040490672221581561329146843471067253866832066472840141291896454050716685471008158737676859640176075260401189956654026612792204204866528298240173538741718082746888838101809352320107295817058667460667504098339879032784420613216720717502796708740469224913690293813176857643960925719378270047486601716981216174169741354722249883559279145573210896992706039624825435821984712374703478394515773227995449820223232384034994587851622390683458399445152896344478528771874456709361353800332333255766762081206438698860997926035676880949732392411046065330780533435405142842792719146902774402062711011379178582015113641496487791578584970408696715847071600431400347709359193858577783682159923621454683911145123689433228691128795935260024396341688377684724787075223719824898458192207934099751623764088630413178128731426225914499479520053203288441337944840666046602725965706062878874861696837691696907608767207334575859255988450742443465556207238705623977808696763839141816593115908437153668193649699899669823050903201043205911632192418277926213690681037966664053329620423938785238469043099750280949004794883585641764722863177883242592465189373172475355466184070353895560607875801902216897449377888996793736110888960661024410490019569983862358443070481418793050213576235983455280851688868056799186027501541864054138811848254161387841828315062007963070668656705145556191989964536574489128064108159069425319337527497336582499680957983240665944695852109695240549616005615332508598678197118003138689819455934763291096310661739711996613288069367260887781280065720836195865218643687288983319515168013759935077330484239218793551012561492301479823840253315332996247357016337998573513568242455411924879546767043544326202623387118259382678777627705905266937698636713298092807286230580718568922222844713935829240291106756168918797787327235791088364463976731841681814251039167712671382379382486204450376423334863313408435348642881969096827252848580956473068386793890749691934032115699202286890999183032601187399930083867146105140822066518006294675853318854176299005783125500365014813171796648617669141061139447897531822475628150804012997117147378267222724739359013703141718891151745072909431818217635885586879240691319816361652041448846914407281459972246788581690998755499765413619412023205097045831769084366969601875899507565820740286344151034884975953330548355345260317877019720923336912499241592730895129531039163322131090288685991444270499534435343971298243339737502913268587826471404703753710604315758427850379128416730000164310647433504732219012583049448732026108682222739393101329322629906709437775607509927211882256699270765267331683727597559952659230258281099726914720607013186422687732662451282604928722146912244421792521054248336986256387546096055213066519350703247606721930491287438082187809805699785907101316064334863943762441058198334529028963267572299312624089280017879417325703118164585129448373227911952037906596708546037974322298144718196310680468844448977915723279463969624364842726657396769245045016104791295137647134012419899032193313513224711954276373832501566572792752863059091095123718234634276781903260363883161953115920886152837001655661376734187252357731152009370651125905572076528665040384118101695727582621287717048711405054681519553625413961019858054982845452017080796246548756075503067944376226349195759205699277878574619376723375118861948390364750269796923973492137823804821735743646016760436785848140084717255736168738678643564754359290897283745692416555918111487186965157148422508049120291754017519656226542488039496857667744941196288474654444214588491647992825190240248814833389581114024634244874374638057807841207750817373117021642994858010148145005955644083911358535222461739953555823052716716743472873692006465514798577619645978649875830571984887779007106190873372968804899398433119425022096037423582862653807150264777641777284897099595684091319852849430077579485518530503371067742337929375685396428029638820540811041114612893819432721890109075630209177890919721036645474052727959326022253388731685050505362887029050192021791452535828678086579762802549275663580431627742502789971863944959190907463559926718672972114106059651729687739862897080830173037441906956837295191758298089523716835115414134297917459957847409948321693221633335734946591047958495863587666029210760401994141360163073486635956897035501417001820018816277246788860491807098069734116667400604081867547045877467192581329327055566221119898145044928074599807254589767841142498276482113067124392199407433505968989919927619445956919470411123186617621615133862355010645650841589024222545440749598938733863684669803303774017035784638318896643897271788989594309275021477640394035217559898686219367204372145508597219847670171946204540679993436366144723305292367536609538953880279614854754853364715039329454255493597380997163130251694143810615749508821471738730795190397393501796380985746830653535668821102110819783498853120753772595641580516849578800803065171116178253302285944166589968678265938001871054054551006695687313055092549659481439197916273656300980985053420571415689113679278467190837967027902947939153528962628599472597563552749141209424974451952761684564186231372181388128984126202547819841107132746935218615124615112332622495384856015849110685466188270630089997901753847156754487865692771363689812023045519347860354581694997713130138875100144376237581914200740090507402545426617099199393768458954101354041822205984046548272349658525518380433576999126576244437603224179108425823108161308780564263506987405275827779183610399458106899653411714753607188500042976916285413950536665232785484821150793031498719601755530387500169072294997898726762655283959919929445825051593971011323497994347387916966614509115126372313201485794396932130298395437463961828997666762711591370069870869806923467748142888260385382313528304496191422258754159643629787562883312900033519155057031516537286284021076486817528033997824918127379154716608206383962454272954510711309756741741526355807448077835453123578269813379481134757630505995372695315441808705416136725306779130352111782081973626244328843484188100794266029810919819979693035254272470554610474656564013611571667242300596438023768271419304902677966274847872456698490953507009722356707397503039345196440649529895313118364268870227128252646309531186254084334065613520740492858943640196681342273828772603066758878453377346594907219118225895694284854718141953537864501607290432221730926468178220106045281520190084571368783903814800638514669122848697969140197795988678011498151651291664411798631230538891767096273087199758449080111909111987986436808887348040334427595030955431106403882632118448195085899464212292232416699704876267070121118441678382339052197890281548361556994180520772551721764539660390689264801969400285783592053245104307124597464112891371894387110313053244228436095792242364930267857708277389654428314911501102419962375128313022145374369580545701125399976641145356053850802044036425894876789574648182285731739299483640051770626108340797606688710562703483885674482059464828488573076901447410123017591442456377477336269974469370793559749278467844181458226971991564934004266412825739383839353113334100318869132439154258907665483693905097674180167951317120645232428918236302914222681462123121490913704439252141986513688340636381731217138990560068917351037204682855666904511512720954891095419405468884962547573548541071662598908545203513462493286628595926720087921073901996952694979681324326440823068075821852804025187949567061131363067836939347656516950248381222656278662178719313730294268884901881146186871428976669189187286376057027513285924056363358063700202410463509105939896443196782222654635681058827438826273638053909875579598937791741734399198515833700793482919036074493550171027589758741794813864719982328473440578286165074096539164859418110255682691682878799281893779991044310893142211007195639527347414923791126402778209678381208308499956655552591557440788613342802562618414466679063968511757629352151360610146751322425021876791958220978799524143769904943924382341477968193216635580652389796700624709672808939431474821480370350728025559813809216095451320568936409765219561050272332577049130733765549692539211928901553425597565134656910991919274844049093076277532171318582181129149880371376782170979044993994399916920024019488427096443529325162261401569132087470098790273830163418338387065466135254857861658100923779313350974014013265638555514107004050153787753819176832964923712749911266609957987492550532792355828965463463037729003848190361397585619250044900652230223862314504115425791801045129299831904429804736085492818596523888662846275716911767837519171868100725897520568687310594560317618562612972655582537422103754861086743436362896547655128474469637306602096373881194939459978275006221120581374751185547583742379231593060412206323962697483837099240397338815679012043290670249086298031901600848448783583217511718146098851966908445029638256564371757234091157181857574513385831888319412886029337107311934418751914834258194272808331563913732983073678976667219296727339505608922064630722073935777443817466190514408139894116264197091252627963957476494502797054535005009714858130810615845389092330660427186848440683271129305085219415611347286983080286401752723522654780596432588782663825838769761836192223865939011422964628286882196656956577091165114079977677051520238918127982008431983111143993859236225702181561100092062799025076186999847663588790034866000409312256845585232544558769881883296439290480831570624881541804233442722468692840005787225811409067801537698352628253310974489355898856327601316037450538038696024868620677627324379088062156886072769892026405629054285667632779790703634451950820783430678466423308808037895581319341750212596471350512822068237123367556064857076689546920678263590258685024736697507649655199451883768195649843384529258304725129606311475246725247390434653342708074471765910681303207484051839671984679633969053333837051638296127549750116213013307929562103745332073087646971323645420689642713517910426340660819599474281946654796180312584661300630996446946475204089770747692659345577145302803360892590691043992626137169670094215613964838800831084822838829193185179811028889287801957126648441307572950684417995246776143159773002142125200107395224014199650163089540526672488210497825976293314044824218474908482251585039223890309550266980921507354051022259606291264087361481609944484560081921216458595610602208144428271281082692803568212674903637410988609567828227258321899869947567751001043838801548421892639073549126793560285118091415506827378820100042650116723815023513905249575032509383549619574773963415793482099254983294555748108900542512180419014542714375018931884566430544312365238698128102135687317540044487152746549235306645087528273029891686191120311521003172059981501907607643943318263835873019786119070210471582655782600677049233916091603329900001082031488561154104971446111389613726614617256334927374639289969141485342915566936140055404405539502285930092576502381903978340504069420792649249328099670681244355995385345680319898305446387722993816962620984253300343666976815800432680580847335198386747943680529692106236155482237578593753531335646500429828381401282619617847183100761268870127993576401937868502406836105234159243421320805008235159203047867912488881345668850690586064765742094656866536372964898475332734397088957769953307213706788562311950719331599273091227040315298048032104532213706091720094581688311019330173785295551120284563059573241055863559436424800391416460336472316096068006574219059224361049094332288438473831004428855684621928920620813005990290554206396180889815167071881031393859964198641980076814564277349154813024566946935470515399345655248197126410779650133678530076729992154607718075785561472783681721565488719301714080802242697719480119944773260204008979342964493843958803410387307917719420727405157762488621545554307558694200276689224309867176747096499009753411508824184932566040776672147395397729878100331039646392097468483839236639617579047647479079617484561980276439683493431588505097683263034904885519642456051241833455786486612142171201969028954238423274287120052324390843956967387650901268704798012113502141865000194606399679411668454277066810468778895877760997527160645562414237789195568368811253074239870667203320703881485806043892832978399522209545962764330971203923251876968844681942145518990427289152276313907995277422790631391509172148215854611457205225927508674153281589984860728632979437957138175923727599838690749458948609433488330874299812640851065560667299951916976377117550510936025068492578471656617078869042257628148989370947763610820012375637412832711322098517900896010608288289220147666959717566733568608990782015130239593755018662334672834859190244359030854659000330505012799558718957185542657853406303799884325126525856953775170303984453656621256884767543069459173206033006420299995592572198002171049872969976449285116293924445129123313202063740237515970308589791160998244461532774556148573398102126137748679637422070251242838536244741569656463613945678719163805433837876021276401024679470056619194033391186945352971661602721265098202021740569181730438594086659980471393099691857064802181473999688130515142200158843740422458536874660678371626757017589361979749107602470583428275972587487190710213601167018141981717168085799619177799951843273472556571905399008116546773036310278744401461033011721733306662699726571384236649024595428391369657440063515989380224741230588587183466711509659356628752480755201378770368013238697615927608698594340505254646809072834133221303312780071598231351587138261212767943633096853910423644979625890848447256220077568133673068661627970337051175445287088178693611656197591664815909406108792996924981754852284679583966935039147957624794127133737904833009854150663453303655816302719093917543896645965874701042497991879929048706234923441183823184632621942166507504453608129294725939606120268543505875085557623706442021756049266339082005296282990863864999193982277496207265215503502304445824695715936249912490587048587262542990199227187694365318880462538204762951614745220129916237577724181047730951464306314443374461157704649451376736706708675831393060109774380411191876595171989255744282642557069993124313236692654874949511486197508074887825790837066536718267884506309102774992237157508527229663617347314635368801492498945099303794869742207587256419568251528091606297615397029003748654686942533066682133146248055726096327027894602241209824093259475217867670189921686291518556172090603330352868781494853339807422121005656994357240740466079054937014580728512416417317464288839588292757610204591240929423053382850538168326941433962230146222049361134428028971706870873581901789501743641668043184440414594057923288506806185176441807138295033846999907594816673113997816988974461724624168209476135171831993968986952864804975593393026878639239728620530018559431220840525080449945587508316119861159686364802766853614549561753998130355763816846821407921829192701768608160119586786448891826238088259397590014007677378321619775697954671432146249502489312320852010674162914790644572247818861275021232084258196464600135415982263217698232918908360166724389152806071549508323535948890397344064990548668194684383818495601067159777083726191602206070744999070481053954565772676138197749923719945172842267011161390219035871051542561721008206733072539723191905092561530927876647436527252165025453522333507039792085407310797291410709371570728793104739801976708500748825121037252032898959866835059189346232984291767335423047527945687038164898354974449537589346865189766820405419542121699640713664060960864525581344818885219714918395081887851478371047508367313618646187779802060433551595715834633035641280312284081922690581919574489269782083940170471258064033116259839808543071204907213584441423854662944136867995905759780746517764413611574623018434688876955282873889071568724368325119298585347900389661319116543952977584898513600132244186477423434088456106806136421199875052369673811501909170222213387723690969609664403813334094377772001049809096577818268772260784619991630948741511563188170689117019409844145900431666943306151721052680930011183192122504787014426779347361158754199783674550857153660438766737678145354136982240694101233799800650505762717166281797429519782547866124275855889507712390098095459479188059259986619866631210024279732647687886749336749996252629677454141684822801286748708131245996180951507529713526394371509816587735690901265869302674584133199962898584091620035230712288937042191580296382584766160012102607338086636625375372951545354002870869312384212382421027851665911405360075163471616430080153363094558722340699752624134357131301500222431526943942836762855995429252604491456916827342050069570367115631685413594610024811234472399931064797459227287532488757771050679377488404921199516644841847129638634974673635294395761761475233424419379212798147982853153278790659625235667380008078926085625289805131169209657965832705814223862306199792199022469668181636144991045499544695453763678441468910253353814159568396756649724229197127092148721745527587405946303022410405654377925023636849046167835771853017786971828311495526657716431601851724473455683010196407379874941609069022208316243468386478177596891867331211858105746095406033928223300156476012328439894410132870632220686463878435557199854043127654020210550516837368103430609411972652655143572289406477446411599716761297682068774464981783144289237335791832280409079414540922165622157657604627679679496106152723130043687369614331755302773696415711536134144999181775995372851318917281187850845265965107335009982002498765945150764200093525415016052029315847226841174684008525033374186826070882699192390433462777303505177269077721109753515310466371598711285278653617637040694608099006970262596273378342119246397923792729370772914022628691458845042552072564320050996702627939407095566070580412285246250153940028069201423199337501807538486768241829890530407845996550701504904005683544636208424131474831430737648075795772934731805267341627280060609449830395334768791077305648090759580781676491644124858551509727542306009132442888322479259155807380163587579292980926538683513839776391208181467641044859765831575461604921610390569600326978435734935295340872276679232269250774604274397405480044717484961181447384690266123113510207356022954210052907324386960690256283146264833456062010704999054663427787655185331200458667503204588356259029034639948913143384487644166252867322638855101685362855497414753594490617817639115891615995584691568996631049824951049476773618109479935042402993323316281155319022406242322690501737658828592986138511179203141566577993453470761014218870135246534039115841638022535693503045707098123151135275490330970874630209514815077553423362649995730378577775841961788894518328582114099017019097694660820319896514596214702443260870770693324964726552035156838735385947058441037576724912542888644127069894022099011820583061109937012922214960188774154632865783041540391214748833944588156237050941760570199328112240600162109436513838155116995384972076338386957529103205023358714342973405287633882453994568705810781772827399258646029773862420590428127041430775657625989892131708332075827023394802946590699361295228682000767975759556543419365694161494995189154969165514119586339521843373756827366743660816088907021249177732321649987894091746379680795831754025334100731038673626058706798011342106958451952086194639265914585267716464776252145691706323616168326626385791951266156518530183820634963205914914288862236866766421435974790916666452030369202269121293919854744092488438373680935734120741371229513687405609498769706479183594229745432955310039614877762014782574946995203208822532358926133627395065668658702194798532673932641651804300249753136986052067873175268540803564835409431163783896989610542671663732927088187783186623176772750551233842463110734414662528325215593283660345102820532233311839347684401594461524315011083612020632003706663607853856804283822945832298183407479264163887976941990304338554621999099363265143099682049139183412871336319672606360041116539134466613288267424474677859533426622921639338947548021357662776651692089903788184509411458156198614203189048989821033592976683012389619514520817894131313953020176654181389251814483861010441484516183514777803431610409769793032613617738805804398122617399794837060890561961961552218637281380711945314612911963015918599542578091283319529428930085399934058742659456243545987589257908501913649683047251216250217023438541813611754249763841030473807619854710105624305628193925087583162156593291463714645960038080683431272612203272937484347053668273913272721810192619621705369161108573294971075848641908845819412813210048827836252818516344798613011264835387207302086119710369978483934234060887585559035760621940437582126058525226884275981817084066590465142690166448720192183793610264572327311933557337584257054372475840827186167133311096302300145012011682093956051111511362996980783098018226557644391768922778842302154859660886965176031930129412943597775729664579765157269006256940515615489676938790709779325619580889163884512490068776543857989432173119954205262573924451324499179778978982482334175450983904299318710837803883553160240023600779016132020135830597426036616652314013939168918279660376822697266028972934427593049155278931770987493704678648836878357791532754401185575856991431487447120333639083834969291219298281389501707696234007684881729063093146138121140260435720527231303239108359255173945461002500078856515279682695694932746277332785981869623956956983978975712847609834266575733314434711911143309863427131659727870122779155076593842810255005542603949224762340800934957391144548291800702087331276633458953067059173060801912433410651630227687131044485966802300688520836310810615706621056352826844875466961453947006424864808163269101274523186639359159203625596417545442566999024703967870114029051862025232662722522912524116058456294676451012423227555556749746763065848746244275579497987304925362228795413321208814152707144240496700988949111618742352554848310993895013023194973402046842183978594442817095839332508233554904669063071989384940106919539761073458411213762340957910704016486512344945862696042395241311602667224143429729468626323202928078757520684505597298491923267086198050254368811102812864662617749854648470754632016108011646266018116230907388259053971113434021503492365883053080297987378926043206405984908360060822473772474526088276952710482328679014349489735035390490365015048862887793902818320131127546096961513587622254572464714506468988896993575918120799163414630008886036367568751419163603700267273903325033187311320803695341277823026944684258696618543000590052200181158673244234456182871904526341881070233441277207954024202218711077474804592420175329669357572905649978087623162114134947009138185112070727962528568852813716255922796756038553793950774251199076032318336439226420450259847163421695462027786127256233621338222385663226873223240693888541686757632160176162452389791007059505569306930946505230007293877757442173149699057126187113650916942488569800765950091149402506771284773010681728461122578836603836692449402118057513483314928133182161884097651206457112568461794244159890966620236928025887021700566909098250926482971142909964668066122006415017615552241966082437123857637797649127287757773557337590815391066666350002876816002772028728644144302941908850557473520266791912067311435564345259497326517528502729652460321155213961367361065107801092417045470829781864402265978955252181439436412708422629384109801149839383928578999358675987062895859378596026818808884709152391652766696568053312287279322162793369780670356334655734020617521754536468972752951200661474501053019389420863286400338931355302599710826927519668548512163828584158281660254827162122879328174381519752624469257873005358692879836566919271746614883288979064642143119771977589590943594744289784712505196309787490789091605391598686461524623726248076986838298886785337772010708131421929870660519604040217737072062924573774734532832430960163745063893624683441762455468217583082430256263102861257459441205895372068737775957250100252446862091477804158959788099849475412458053590610670916035479898103395468442557786191110468535566486913389028166193383849259598851443647393905157906895346642833660964123001572920953427856321453173230253404292203562354984561509034294497097080896614850361371385382818280975193045761702061514716080739754231625382375250306779832770504371329609301526245422114465601024101845522584322101852319731706734229971110231278308421476667471419133042205912483248430051954489816870730733625515964613548274430913466794283040404040675734428536203757837502863214249158035764762340344686876140793033097815391262222642607699985783664115537832409936161607754943243484614107503148662804432983141050840489017910214151245372276923027376535795688413589305384778753846693412763642745969636124018957207584248709509895855091593774360992156460981198528664473034345169152515408303613343019831256826112808788808438905734207832467821908767326339607450936079776466627139657519766394912299664069708842455191316621838806400948222844418910962304352502657622489062791111584236707830451621836356122240262570984521416788129293296102061392286613637502381428330045474983211212713769353095962222084928024684400599567721716955177385984746621102625654039240973294320844470046217955175012119124448178187730450690757706560811217583483986068018522628757702804325746506656614049978364963981075571437233633193273670069835516133088904163369714392344136008769412772694844962840256524135967347858377882037882750570903586374254735142718914381565092514258765653249832828197363984394666159878368797570485661071761912618812751308086728369086411602021487624588320239484170637452372579342430713680370949011094351154367373740965127749320073764529108666223307885519457412178799175577121539901107293961551755359442470509415455637395864260589323329262325003377299278038685073204157508133641253721607624325079963154871712602587770304128845298092566220498170065474790139763337261054662179949429770967997024258989576187332953302501215520247199011269005713038850590841538311861405003434620718830762599342390538467027541138308684323803966038719400815476303975144348555767127226188691737310921770351668199346724519975633173760646471073767155673667297439035860841348812669972211704203589410244269160071065415933752960377034531621827099813438612930883351426049021579268444722319498439393462553835717341745958401659470240227559159308940358614593490267418297367495797215365947159415208684450557775873552253687739924304638726694359392915408897014799865762968308276528693732499387435750116433496443079051509898560067673406254079898482988438935778046208812808153879316540392844856251173154149980413252536222935535106025601593238521697137427567500990467961585645894234958963150776392947396908230814390189937482832565765673113702137173582068159490418081166445921366852660835938254961685052990882629404554870237421662378815533257579173516629361113349690699186836664086316537688054548784641477542105907254494167714677598419430192587711894399435106494738221001948369003957072431357483564474426354682356170136335447770467941240542663509398679417972797542105979217730518213189600432376444350680093420753210838405093296908160392207282342906357481213642857270314612063268735682726563120843398700081051407157576435023947143788843339780626869760438878629056174169621184649409377635767185054420378982638806569821131089039707787241694075583249714387435191146959678705388237262076969763551764191911405433180318565186844687093292299059038530965549645950144414894604610580214442333366601979680427457908732115126315135650352235276155364826969311964604762999755155635498207376853722259307255683019199369901910428094241420332386750342594014613903164801952372800984632046725742498186392645561800562731458621731197409856865279583610855732866339531647284002287048278524652651248794183101728001535716270311798353102355359907892881131651638930581545309983452537651848244242248183088289104106070579954786651305287781427044497800199904098424842146825478173736995399939355245265242775752003250285699432469817425897490123256592322944081353466548787988918700322996429783854303495009405422578093867916126684309498596318918551175897934847003203512369611065956053544255861579220780479126597605014943585737813812356170198194106910026171103096451086821714563269157065765749891217340341437863772674662357181216905013632700849576415602964062656867568375945729606586979697314809547416903909963840837185209872884871884147121319023301382982848379490881624727892232691930970312395050295277851171324422461220274140602627461647901856995677605996478591181469314528905205279079854095415577521922249692062373728326794026996379962522615621369956282911968684974642741026330490909080220011583162198613972058378432273843899533911990848509232877703695890970754961175048968131017210033567958405914346788984103668606104935630153586591580204447273776495454681312822530022434425451350849580396622150284991723952964450846048043717404249818534190283896347336798214069654289774904267454352264156816207767693931498995384901466690611272932521999254048645385116998736943080946268520400382969922609141388121100320320864048506932795613802331519826294378979496612877292444649401129355124406052096508763275698247596465471623401681242005121685429705614849513343500197698609883174587349184419752519991207968415574467631543993234788956816348599377903999899657973288585321545441496741263429671029449758882474424809001682519117064658580141141432037480323801089227042987580257608693778324930622980007700252153841986928811303189435808855084829298519982940085173755023674984721202657127339625516969804211050520357113995643022461099826125235462132323094780875685475789757766620292754766453601268014647040019895116265879570086613395994288643931430958731938806090984661115173878763140342050534664841468663291727983967222744379458080138185455551495122448052434674554780390348209533599023175669742021951609581622933978636401345475207777823341165415055310552546682543149457545683478670519438833674128930011744675586940278983171581544267681344978565923142180653475241721640130211128407098848831017160492326405059067903314921076952203491278797847468103686380906125657556072713293398918586665309827978450221482225141931761012396600327242696939867242258604201648613242976040474857003963023084824855448809096239450847065191996365878949624763578648305452804563635249351870326277969333206810036328258351469326178212872354605672310670501517602760952274519141326298645172813669919234129023765139741974044182989347706130897797391355642667997460707341022693526305094305308473530132088288575733087879215949781549064583461201658547757341335250412848564205241436037753930273263879477612750480750886281255004985227306878910725432662170396608298440505662437073896349922039138800736481730739089714534799781868723317881058857836842028796600566743789066409940660055219533368292168983829664744728266192678701548781746800226702489944141609085836415089339041736076959164927250921501389128065589860043732195253005005473708729641116141443342171553684979067701991741084959037625473026283538289241008917137804136329526107074110459080858375884772219353403324142350719554764765470742284414194470789053025781871176244513826228709704683339099946317847474844340068070876058769462358318335900295068850109778003346749091978110844519314262493963421951486494502196551773539456713017147526464301741181089819743584590982488512933672734681192076917139628101868971576684866139202080716915255160289401349512967491983345711765259795571197012606603005417043108662463521210343150622863889407156102875626246155391583006707285454582409164173924219889460752593325318658959242671225269628014268595549467470244515330425725400298580524424826697807671969013140551622975345088789128554777321315275348071417157103592247445699168185247697206760986321026990314803293422184245215926142560657349856086858951513950124421031267570488252582202825076610620996789745303529428403598862925481001658144898182172075010730347574792916287021796109704963927330313520854238641522393769703406653342682633790347181192673932517709541968105541659667344565066653156306914274238813840127052464407465742429880801654331518481457059664624641203109542131538721380758091128398272051154076937284433668279215660107523886890894500845845110984403433853524350069402887252530549904075477685548346576256290480553638143098654628471081415344541111365060437602085381638478036390879788246200976164924083803500811416398984203665986413411401087930904114162365299578052792236434903096220531876251291517139128521351775740628690802910988239393061693961335368470633126936776019619724005068700383529407440775062847713978480017813863592981675808549175518777429398349747792950763912518219682757603571978719412662375765183976819733940981948773785395612032820081360121721008060053824187779786823525063214316698422011730870382809738520969072929001365789764404404118447136014273857825406898332411479293191236867264618606578280554681084764076972560734349302365288726755231580616360540463014220919910834836610615304101439937797598624407195363205411668862128568707370445575470012276673518408026704814489837218170932908309635020840877017971535583800040854179092051840155101349231528180332701419611317597880368758547391215146544205616888271560025117160994110969431993545891267549266054138231074701128757428440016069766332651863921785243432531141316692771353141766829689231409886333814376071566701450443776217114199649849122712791097623878804564638598208617711368970178627704412720256675254893270831422175736323830229801802596766767692706051857093222064654949033362805114328057203436349446960776325297637584428889260960458805480151457906937174880576584256845670457997294007153623549623925953608550887082216082407940118415371900244250916869770407081422047069820921357200024773811145387978505273737860449978670440077443315344041756048399466413772673919043922867829192507578549477713521594082719245932844575123062256617138241547847390748811392955292258782285602016098288799259242827987632676816631430910671697218118626466005200929099393819472751172784015114389226389842521981496675892193808909087601807478773586476523739190869130005010973317069912700680391887467120916463186213147199388983761503872799650315999695735989804607828178088981996868367175991349945551410688008143433282462951557144745765698483138295951645769263274627280128660296253973430790938598560444309751752400996536576882012685641532850866188405317844538025857623175584837426254964198661784106054916540413488200955000157782473148507038501160767771626597006399518515735711459396508289283572019082716640714041349338968275523119396219885638017359690658719114141986722474690742591856139031485405397422482615491461041093126682593813389913429002608336936631476914426394372460757680208301078060130188724208925772564987823730865194307515076039763074056702829252953198212488366206811751681698915278827180421445806398090932820586369892922574197566123514249011501097361963682169860782754514681025733887893614397769360400568079403028116709141978511402086584532299122438849134633993301207180832147159049813934718585229791413114953716497418541814218638844600872788383250190339567468905928376927086796076985190874841968357348849421747767580209255795979659741737348570397119918516671288721012158995789861292511379909396121544830912291171415849630354924563230644579609670072635036950250255472690138320646038839737866441968989508446142911679584103796497604023015730634458022117567345955817576092893077616813851479179719229912459711621516759784476446146237813537666920571848617659355651851634042221259409192648728291305319614765514808337464940542275509744257856043379018486271122017223425882216116598198358889110649090751208603995803982875084574003411630307328220040664595285648655618795161453688479777655268379377932571220660245366751535762434080487966229030080616220786035381981254281795554637436235551458365487702225374173715885053543943698242914932198185268687433917317867467685850017703098650667396415375972567773934628701549116386990037257686671286898453818240424245713755610223917813936574146430951472588642608185486545098141097578230849864235139126044518386866829762173363805135513462465512842875703631819493511271730742476150579457484735183818655404567278940894873091598533851153344709668609026648891525252128441393376741238881359042048904425904250245145797389360409893186003661554303330436739732858031461956238736173883318745920803911206455890784422172212568098338679051762822398934426217371241970097108097770829296908780018635760125839334217232621907276186952744928624310316356738602306517661085808360796447575345493712918128454845986417813479433078116459544155094863230007090005432552790070640054079812724127807259057125265378435395209875092538886788003233362734351310663009053311458849040149040204868081795983819845777101405334136391913074191826119921811350464422101225777499108029695828483989558241122673142277364550395219895254616861077134147673778225996463687989803377149389461938175392940618807664194629803271276033682804308345586052308370091967288163333137964790039469445090051803438824045120285304545469259227227939294228970157632907297208796154929426555516869413406377822954817177273823647959487922821381432145438437105823714616189313107923022728193684930727983065697364330827137756823894304895705805007361562055453824792320429499506517728119763859277337719049070901641527364287591649723078478784914322740492507597379412708391543588629894970987904776889722146389071393322468320272232902189882393190873112842653685574400039435523522923295193257278319248783691820457401697791528211650595178807802203415782811570531359243246820903393582915399966927624703635537378293245792705674724619666191616200558099622919887068754606272558143903036339223354789659643054710143524111151926991686240016418609442725991681969455134326646678811789986435395850536979733867617756108385872114339124115507728108038429387910992027192194621007142586848060445428611881574458726998831998010950062590998895246036025400082865337075095901463884972546327921778098517097100979837098499831222297725068195462363415957878450678028422640773860137188461302949547025010113966197139835889753686993511541698272977593491476246416138289893596348438023898864446947292191698495861916783962649067214087086764119537877686169114780025080641011027765460334914400160677610872429788826459050403211155507365279736743961830039967394008024488181877274573941705999293269985879994198433184932706091421505014926784065349208522162122469920206026020794444950584132937805832135115836128878203640962792222653458176134451050261150510002886438224514337974758504386153130691196597349746504888517190695609434827595123863624878784208053243306371895774090935081058291585717975228584957714647380509150820737003620133857750733740517504249205162395839059246681126614447983515090941237502778857015807308885977302022469849121957485260806474714694388325836413030044342284693385183347347707129740447694808875686580206391380624206327435707764840237429085977933576951914544340482187608954734103940244694119727752534099496565679805128479113511619169365538761723322937413976739248170229880279428484915085737612151855983727355268846494719885176260920827392439654946163288410044962976470130264002268991943099697312974611973549537143417804360809388527432470511345633741623387974608029754312598704873228031851910495194876576449416099249794020790419516451743526844589088338592383730444252128978272407123430870751008834390632387161017268279022759559338972074174110183088294055063013798495966238016637414819221899523773730100903217061969497844337602703982099726385406843823976442033004646109781903167341469641381408691072944192012561345788172874139159930248986625057494265746258465727810965686078533805399758108127812066237512209733829776734929443626336917186681386599606065635172466850451575782570194144511052278045949397302292854002667829575692797008135328108134846736323116079846258048652846462703969736174584481181225152900956874706056415614751000564012119896340100739601240476258254744317983949469840912848252642631114306273951030226458933427047383958288479632299591112143145628960521801146864028522206717478257955634349266372884892543645481916624451168353102180552492926225099947238356485048094816929736974846349422294752337982887486851278251974504450891823282514172319870653766687651702551030889672963061596283814872453264213010120126317683384539077204743237016329495026935771410343274632745623095498590093211957681778103752825031089372531305396202884551410639632795570579151475861917314063419436043917302589352308340501141668550675834819307876660967864200406295154257979394350674376530462848565513339832758453809281660466800021332670354269088337205523694037400207844311364649400586030847212449840196815469763457647281639625129096884400413328993764719448826366353529626586125139227991824001362740070105022646208329498863395426721696419514344591598137266104752443903583455879342548043525471891204337332740012153694637066309217290889576595150640946823720305987150356141173473527111461423081042562074546341148607166729931553570756063243879576121481192651971680009019039509429998999413314166864050279741032882510279211508108223199690290602725776365744974995137811649373670473987335972781652138788425964062701642362507018062746937145100576534556005481448760998744553712374289264040460218979328540399947455468584672189443081285265706585327271541710941250620135076254752156719553769531407955511239574213155345448553307594130580629855134374933428919320003516403756867871004585061887011447229835718044142326931139590601874528512903515463572462494398888521630949803583855369838598493614296435046028127943229234569509389177161906262152173369912630971629183785567240593899927342564375865018531070078892645487825186827354336199818671248757041462883868535138548449250786097159406261119488488519363757018492492906123016825673415603937273500456835183916935557560068323385520817501776119828773427511037121553397198372693631165330712165736011456873731841893315706288570495759997261929191831246361673104756079488592113125550617954150710524426750823105729387631658325837208639435044082908817896414350298620151364312087524498048942784616117853676383842504517230255751094689942557041241469054326110014993391272881272024855504863338149500325390268576571990793130669700227720644352755004402550648287988089162012700447372432804530052990715475807059358516294654376649129838398633970794103186995287569217703105579514521593574498901505901124099999684425300119279682907786866438208892893892820748533614329708441766252882212582223788462401618750315283378162887521184718216299127307329041903681178184053864411669245941099026721609449757382289675420762003916722915207444351931051076868498286220350573700577300156649997972780592655482007740349895491839604903988443941932281757851756991523092404903685453432451787869306753335884453193802467034542886575292749399814118402446886377858564145565454466092175796998258866257313616061562099938099916270987745594566287030464156255189935011960162765789386890224949873290135763957231455865068149726321215692915795282655972537122449253211062359311896505920925798744411241452924846179056659241124487801909331966073129625393001697865438151913179565176432096137810980055575299679142037280352266106372638492067636600939467818370696255123567531851152322876015684802027446442233963219217348649641473526428858282435614473219836143508810722864070423015076233919200832605236956772290506718730719141140010638554096217394218787309995533391810563465671569875897836053585463381876065020673433069674509832357396896443402397763442725111954848574525051171005112849592594990130670378348636442557160806439805523839638285861504625804977615882033941469725119249960092881254969231976033914610318745076607648330535472506457844281413301416713571832358065245435307549060081091840010305325738436953991605961785263990392591801180739035635662437646375007219260620613774494616546147829747571902939601826969269554907365800919052466598366756363646395515835712345648368008883696879816004380548468919861508052930144993384135525171687751553420239312259328126172119331925806306149888600217290097448697394658972910364124069965245990128566801021339276532441212231454359611416837861651132569654708972588327416799541380679233041926444480586152632272674961153201068085010756198622438259706975640621329383149494734283341496594631541590788856399050626272851730496078419845411068164261583722352985029768525442479802715006717058558181678335208460508371933020535100388851381358126688198228618812280954944763963422518121173345158637037478457854444055707996351027146236723373790095519661624040401634530304861252083145022025927237246556439825125672717848817496494644618480514136056814000100711109135193779033415545300742260087339932998510706782485896134408590500238721481675743850796793555273981821691544779650179026501384779309937759540747043926247344059326596718592453801739292742951032544146971684316337252649585100876509725423282793258326663156181095606833285851822678522753593086646887022826264497634960627361802527001387884304847607422800490220141924572716783790121196014705735616372304325053305419640883341013359002041488121150499832824013472789780786620516112520515376387980623558532736203875767401466632644309382360714475543507218637727579194979774823932052496519873012619700804329133497884694342808828634468639578923573358519662270368323794826625326597984537026351679714073684362369505430908179107422664403898423455964733456838832112840967057047971357290335070334902472631490464960964086218393719614942987726715998763067750568194528246967573305473648024253160822028591682964362370797579874367046684514649515145255854534842646250652376493553151330963256845300299964242478213644503264178659011190867194034242748854029725994747442246107768358028462798822490083020681969698953344827121216305468047915109879566612260850252155202846766697978881203885911319958529350854165769202285212164600084142011276452745145813783930934582258480977706579445219911335059472019299735326930556779770793621878404214517695692605717724629979980219721252102309753125060355078189113173566790878133246167901704371269797947556529912648696579594881902904880099049843150460565106787161196462744166287604940714565121044563535924403559729329238848426881125274717252287637798517782902696710291240502303898908318964970861873093458601311825584759992916454929202094415148424048156981333926405537240767314389290829681952795420309006344458237426877756130841532051050172638612680765552351240098125873294219478022621739351674317377051419070868375315858191051875085104239662098688439631231828871920451963627810585469272987962465627834347640054030112503331443512102394838173502445194753755887898080093531571233193006291136331953706968769849041056646277988240329208031327845555594294695907151539771874324578950370426364232277889512138907380871762182972847451954520174722575269640656185914399111023378887845157511012967004386868910937746843344588490843929049452645084816913549638334556281618087707214850630424677134329925267510039595419080489528118668651319619517898724495299745220893294018847096874671550569244880917426518170815037656599987385101918378463806623932418927012374129844414242495136292215083456798443940728675703193727220696353616070185177186751949906073236912047583735469363039658589451150812706759938875974685118706303162120355849694112797908561772592467835692864534744396654132527508993236881527196023479303338275982936322253594245712035553808835269533533740890763028944993557290095796288874723789902427440812896581218679912476351533345720276340083494178636416181523903234583530819806752618970928811807526763119155502998179549821123014256486758641567429057368009715014855831176956858413712718190126836838940618627173759507186191647071451359672568543965887411555960815533894419163369459793473796029563119770208292588951186085289730957318934136302176096128612188003976760208351354788049369620745628004435168868031603420488776969154266985542159428604755749174686341160750157917898224935734164565496685013508211381565137323589029151335818970556514859516690606254748815282190502939851080141099907196530403184181730207270599451101016831201613371491613333442769493328705304179086059197340249462548334341033084985375442225785842597753045594634879159312979656488253448710436210659769774962394245401139120502204362552565077103353471326241623093872292874728766999301859443032760135595564848438790131502416127107341781769196840611636796015857192440948062439229460479875729168441081709988433619702064171232815871985920727772201122889697236962981506449660663136535008025533335610127866028118757420828378922112857059455703678329509089204928369086874586584061404039276106884501881672033086220962195779824093226652487009272782544413686039036711671923063720803849722727873738818115901502766527069925985281726394116502336024123590778652954339510316745195117502643361388492831486030693236482251048940700252183588312240175832487174042288379434469414820315101620262435575012222186444534848359138394886601025973067059251314635944417252572159481137671681263293611747963941558283473131114456626729294044269372731477843540075330895746422361120027805679885117812958421003227055146505856343466843008049815943088948582922808770175437268619168187882376780048932423234844024681595511817330194459282293739878855809232745077055035251177428292060219730024740408268317241045550601738656225144719219728592325420096626034936437586223928974089532131441206335976509013954548652761130072487217167282662722488749609020511026336297586985258110864399190660624041218240273225108125388387126989153299922706196345528560253875324895506388230403660388382633280571514479737850077293979706730750667714086258965442868122850690051429296909702116902448590198678309338653059706853234018596581922536287992938293500643080720713662874606746429955529592144059585597810384145532905779432271961151181386321258693721709629806220904144369990130344076983800057820104584141457387624463524625466419665712939077390034396524513304663536946874203657266479742695390241689458790686388482939171821391994994896703114871070130694048905614109912268962061238738273453880654610540514397328571619582208548185238912234237111323273941668597423447213718060218923255685408383057163386747555393219944787775990448612824857105628275713884834141460369108711077122643892966171732061372873744400092491358651310430891925420147396929434295570739462124401422701963666892920592357964004983369639512686079272393222096411159351543808626791336530340581388609100175162437113917677421132755713210953300342212001125158029629539124464198423570993740652474603714158861503211950387137912976412712738841667723468218879765145554331250506385341444147628601407141426109463887959079486835792276145396980571954621897225056981712852346204132592793639931481632792449473216290195058375816429376826528078888965462865608866275490010781527683131495567018585759296593583776669275742907404756402702852976336883793196067600464055926241398081644015454712383037497977441628712409005351913337648730918259550202595519037575314671545696266181074532938235105745413655409104816512519647375976197306235043208935371848529596945772436033475646472904444252058566076367599947402447830614900072693659717566958259342024610712304266880250287122442643847224844193322215861785769660817518256714409257902765255355408915194460452746860226360567666176469530131076215399857887692596341074348822719787243343099745657606985927947939670218708858895423720877741488986920838393747003228639135442604801818053581137085044754405392729777217874257511811124730413161875864459666721532486372367456509398247721124567899493668093618394810583107715946982692248673523342907657606769818703306412515556677204779680521151769903080304756259876973537343683587013195122974996840620157693255523047638003335305389180060597001652144922477557517489767386390514010935030196685438628507549492843472954476562590252288986297353213677345070469854016344626914946133609882438678499252419502487777138995177633652155456620788610332747968492517770626969399497747851527436868709057121984711580664491452865886621167664594439841863827616175816218458373745265870515202664768992702253837079088790140114720729949878627034781261980608971362521692317596218254895545787563380168013847287944799473393057707509201309965833261330433790483887496448731779731163122123028174295415116096809542906939685695789482414445951047953117007662014922885895695945363438827110635920476102935000419974013933283727839733940707952524338945989389185482445496394509826092596791697378229198759392327325461417014758340277198849357432539970876765847598165337422203847524954658470046180228587924240525733171115876476159625225699203523644940649163027327726582938024189326907043512168054384174967702906628553037044568444295704186878378511613684444885925234918622733235096407555897763311733764512681135347517553233430838501932199496118495413599011120107374296225953336884732452643607348029480229127469982299716350071125770896834621252034469145793073833856141688818997670940835693533165537067959865822241752073323218464243099185238259601891346574564217129928894098410493627219967955569799740828665308021187088320671449274626721394692486031578978323090468123037180909530393750679646397333732177665384780287543127570159243408635514212049925785588324726359511393253794179766390098758428573160461933096818075232480596261745325967211408487782989991304154441579218573932999472211680362574308061948206891693819908771743872410933978070723241758310851446525562605584573086787514528511856238316875985226904878927385858812582183316922758524651062112168515770688660338289602643753113679599796727255804409697029327800540111766325621044997657683072920653151434227217456079644579225812685305339529139034237010662844805813853473407199983322564753924597517699947576298656997065178102032990365342587307731326066056806516101838806331080332434053758807086485629136849806615961275638309769973787074535148062097299849854155792178826631694777848640811209386645457537766597634305824156961372999462343367658229817507749927504563730318019483172637780744415772774611350197458277593174442959046119557733385428530187629442040143453062957200018256331719984456383099013927482350861430508477111386763407518440033241027665333441382221410227541119664091420831550727089028857350900274237819248355448176293455962386440222393662822965339171147894378707959115617821447227952006293070657353827406691489585190521107852835506876566438305108515357922389094915091019350289689801338416263119826234937618075382435616691248575425025705988772100799342515127281281129199862681724340017966200278671910655609528955016194279619791371536523475057847122423803892581547513954252932460822342886442722678035874848393652984378090934509548450308302379949254587611031302910041923159115606436461164085323424108643253967645709416473478727025693722439228967897390098619571304120966174256558569211764828245363576972234794073537051636491173470001028878978021874374504501380164108655001818273519018616576522550271461618885587300209578887150349767271825666738657529992267537660780998918006850491401891837042551216320347881090054842299163885734180270349379773604654341393816048096392641971226604023471515926331043598031665541803746961774161703734267775236792182555694671038871237625294754707846378409896643567700972565272173119146939394670455693964885765990325205097644261853098525454273129750063663071833833232224619685260233847943954844939909005380479921903899547727353975301906557574569163154589464857740693294266083864642253800514596126696509573505931312807631889107748506202835960327039163769786359298273460498319887051437287227736405401233187046694789054185555105946126977016840847011117874086672391757359807347142509846802622803746077029545201354102691241062542711647784930788366701093423393050843267008292619272229379639972950273236439232109380806310146609480671640024919494560113485248541335369899023850329923510081741645559717232861206590232217886326416302397396489465576961106252331757034735785302664162316945622385059454577551350025247697697262073561978714976684181344350783412955045889018150809038446014132031862216674578460679889608380908807730573498947612241750856714339530889990874376999514475713781063814288460811558413335264718409717228527669950165509078832563800114783987390741189313671873625687737223502966114455971511109219848746931171819637361262301254553088243941185113530055852807625303454067588558113906230405269509979791607795215707136470817146427836298346995268475219629407432093574961376839450806906954903863857281183327460769336744944914082514869758411488218838710414035849687288434941816299732217566810835809972964365922980836220826140448003909863478045186053888952633136199351946390436200010000265965548366660842156014984179680732965577854682583756897922401379601043459770976426436220196497377905509644874662357002631532571623403012408272721428114823388972021391926616822067853553273142378987122905095561155427297704357851426765803753532465615154561439868687067828249813279196324844068629342477888825068290970487414566510063716298157307540545094402380592853040741845157482427385812819004271776104410752446961464673882696282865668944098066293067011841560494520400641488697321803533541561357512599434415169892866039515135488117076084230221249836358559197067951800822943725289694261267558683304560847359206167861982408575407770998357190308605510491244899777291236114564938388536142497695848276789376083334268563472908283900317271649962981054022653928537339356706649089812168838725159656601235300931265813269336597180131244055535900397703888997870818432735844323775499108153759923831645484824365827925459805930151718870246295628419303634594888403049790555422671436627013038641987169237770641247848037748122683886153342157702063600916036439849163200216571259332149844633112459939203686281582739088328145871797034945121897711408847449688328412133673699959408962798150306927231867803451500672655649690398003010755290737452121201148695761891128095798873908746725150716207098754549518654808085552189188860028445629641461453274100502751509892100167369243091204728116252861285945602656093780745154902265771541697186323260223044553298461766087031467353925046138814179918042621069938908916255665229032573305637740407172911222620374912455013048892032232448810201354711581672402871581327481679415395364688455173412766641636878450979064246428185020640574695289343562618399843394929974358704253077018896156627351176970525387689347025316588529253419425825128433169040909362857313391076891693440170515458260137593138622390418446152577663916808060064845272796454170358151432075444618233092267574568526444234607344976731015629955893463509373863499535323231281153953140412047932828550179767484974394857202597407303251067837201169493089817370615611096386191272387165813592278086304498673016611717496929324281096617174152555422877340241364271812235116920258606273106524307791061117611632453181603964021302772600094483502542331425414609328154163868688711826880141172411375822000579342485928618658304794460971284946214813789281283541321273521043116758022207630367006256584358863032575463747889491382085079937702696749509768564607682398345082071740617170007139391347802187776978131079581067590585256371765237544091721104509514298184626823609973944348285594829258805556210620789055683046348245290947441251754871865686150395642959699745854026411219185962107424723304874609590992772855650829699427312707613659542167224392899202509615561014451237501932962983853305686311016920192958769047671146784302404337154229321719019619772362572206381322834756010138157533749711327061769101516308846434728762903274525224424205929734669873057261971260926626607263838171143756292222690246465539850664554582154927222893564066055935646159924483828556931634397248184401076058987373603776616265866711108046404021699347960467371574535711420762588628561756376852676891759689571281877807025122856615268718282363164909308588053689621015971024982460771718149400307778998379659410849780212947942032975003774394641152057173471888178851095660940373298475633705815070427591153271039990877886863626253867951924811775634606432662077355849709862887160202147331782414369051355812536330971930512845532994892075579794386267405166556854510714617031574028176940665874943317977876504635141782673111792193717561745440783346787686600773639125419643299717732497984349348492220648831990620145731922319812709502625089407952514542294421665911333772876666826113286918381342898620804324390163727216093303146346828295079984578322163980926675237060451460100498281695338285489694404357577080685430867099558312475359089148448185561255215840635088860552030884663200195050393487667585221830381725379101778596035957387003639362613027643171368121008785509159840710290657475851396314961502929086807838596923852610637488747312549051238156341481318608438793888257451129723474173886924096441110286320808454134744609307276934133133139096283063812924373054991791446236924965063184940381982704303575847202144434419095408671323958283358235593736169951551849625365374540927473216634421832152173344885679648559503012454798131858524358212240806318323606073074852195703852163253730756729965583951647070210324868496504257767644123211589784805890999489243869052558522686974049667618781415575051297189369227467316185530074298378061314791061147901155302571865204242397088362542568863392582340214138285934875746680613071321410211099616381988160434250946785586258733884270788954060398148468478208749402354161697942144517081460846689854458365005528633621190056164450088712562738778510746455013271798909181315642218843571119506079861065160027165004933598111800176647177989682445867738804935569618454165505081076426641319918358889595296960861214340420245367338111589610373353143400928368734194765990697224388659559048219529930403283868228904389443986955100227911016770121545473856150699657598921068540400125893029773009574973503591113603845343734910533384451977469309046035828445186700006594908688883260981814029545540322108843020412590888588623522697214942703113325412679490161026030333247411666021804865530132748686921781508044193786147340473517379759653878635782964203582538553608284409361375537075411652965120416368267977087635957451427996497730313910313608100663980838856547213097565823927754470453469440629133248854272844110634352980872032665093396197903829176350183176834071990181705273231112124900074493443441124894940475077829771841004421661994469146067164574876513408845758394208198935452037989154186103058660753315930509793590777965682536917200253099527029685718425474886064528044679387140103078504600599469261227820538837200953236082646880955370726806980512168044647453094679376297821550586973530511926088628152321235655682536921020056670820182097236672614039002619670001221506233248681571718894759209443200207066322544212165354875331367240781649252401389434638466199869000451764779231832602928652148687153170687332735940022355728644903646241832939085733811458709297600389389665583532701743737042131234463827794263085145300735634711196971805309586874702546451794528304574089984969732082621897868214379820162968910064030765470477777050142148461363365557287110122053214807556430298500526369375512781450180214891656287412611795056070670082789287985050484220367195240548709242052158329064858227028717208944156983706418461438924110662236213433552529786258317400947246359794926591625468943779608915340151341287442908409419309607269090716152924617474597002158597776224838357421533898191550050561119019760018579208112214412590978106199444084199952942203904668234140661818197011924679444739013521054057348575991555894234231592344218542448905657706355858032271097153116268540260027387607994380830084895021420592047941502933296954017866357956581490680627079454251949284666558055771318379620986516463207573326436152334648754845751043442236437976017269712253931965359546960055541417050636365456094056904817522824367296235119293054642068669635594674681430378080583172198705373887650369545446387735691111083840911154734688865779144965446012506473239289605938520451273686650712689931472622012524572754246925811695273982079370225991281540237531256420389116987226019105351957503388212646325209970354185319854251379474306929038651967519209391550878952427488373121163967250419418189475956511996742423045597332462682386784162758537513781033257680388980870419294434575052151619953511032022779021398089920549191812153245133763955891889097930560133538344122938390804492973078601578694568073425977277195385432114153510135788738848854702163386297006769439512422613080894904518474483694614156539546391215581539818539577408504164792704860038873462579380229408660314689574987674834617806173785075935393106610565282295887832158693236725193568856251527751460622628406330326875053981388042273128564178232192860482596961344128821231988781712397762515165566836518069667751257687674993950534929187622257996593092986835393143838959195525639394904571085477707559614843055319777636639697702154411470706086289866987861884629867895607983933259290397864670228883751841713119086666493598329246011911761135772098275918498916608509376616037118042006270881609502398440750136429741281737193506548967356721433310648060698191928032690744931677386143924331284039734159628170550787122011041522796072579103582457329499124997935834560971245717565960573584398909207003755943813175309056733549800031650511010275319713787561723406995724439909204976065879671689901214694892608562030239991568962395589632220474400919715445595194963382327288380789036112344536732805879177386208648583762576935144788922932079757863991669362654079122499065578797417631652799876341233925247102178815226983455349303248508289332904361628557551247431009810632438442660390883459228552297905254461062968016296172382447672065918061605019009546482258110041165432642424784823119067948159074767895703712713597751151623687682709622621959311390889901063517377457487337408228556335812717390327103296971173522868644325803930964536297910696618098875913466925514984463724427265879724117285461674589454665366806368518838700110266084922945165685904040398372012928875566356325720746121185879805765858692950277729285837028552879693791821610318829604217323950997038322650662721451891498968897118992694304456770615536329834674014252544142636404756057276860799793124756406638120294292704527205531882410797446298437241673081104303485500614607836425739309297606490929633594008127722521852907876548305908092283302540149801456156221768667670621439428107444395903899454851448043726681786885825475390022107006274656127442191666138282931945483875213450761492954166455002289923860499853052057960794757212234851855095598177267014747205867853317261694630483150994074419504463309985675082332578330481302588484367170432836593189631396983362127462259189863011815629158984295594696118838184482790966717761104787344344756145117254503442903684768697865043148669829652559994273133461970774382700451489887171154242393246949522373072857941040937742627593811564004181396645824072527916524046847108459411519280312279176454359779786013094477450943799054974612906182151753318229878067632735149424595625795982483554942549713271136338190970125737483546111017897755092333683206637411912783084052100733747372337377787611397269982592565959371316952601763880518915133246471142883152607397510772348094968444377329399816586351668633187935128829742200680466233729840955697841586626136666391387637709871390462524993469966364451905485053197985100778381561925471714179226898240323036435113509297428619291848183923073260946033481880084784760829573492103827419970835479021568001315714807237066419430150453703113090046945113593236723384781576312177836713919882795109214018678044859870012451934734450667286079951718368159878606317081835902980593680679899286568428965810225104172483648034544031334916044737676002243078121534925260756724934688302877642352725511506451908348159976253967024962398405610362128413762222172933608289204435294851839339405564775563901919971609272910132855683272713617201466972489156655320240048053076663578461964293664531123267411255131616037924015352005798982355875140110590554947436130839927144565490554510783694890443713773082996442250132731012438288773448817676064469535052871162095699011075607566532384820696624532527192612067196749343639637780228882279285689923105049238545953514032303910440938234838579669644609695262959590460196533189168502668242348508707461789185986824877840225062635694124985243281927223256679865524107709881116508235906713773441801917452058856675344434049155233576133059372702645101933345906585834561035525169252193553867566218853018177593952920531403888803322557405110596294751117710259250353884553810812440956606288595376031558409330751263424610182217416584604276621019568338443436431155525923080219730383955099489502430866303869340600586114968558050363183804394963025557601268404426988505407004892092698017586724225999445724959360389530641864283013744529452478938721349479691976960886976550554453969501780624171309122618847899006690713201150859775637638183860986508700697537656462133353098351495805262128690060886270016021432063243029806252314780174850024789233730152482370731104083473343079663694508090269793752747800642465954256540103065014805588818171164099431050000906304518270522891893588957603378601540985676608195841159261216980970965585508039262631755520421334935510427898622757252972840098245361230900319037360548437037303614955986684187892562103748203482657833689609594890349342410392794467529717012092433637866381049228037176135529748691037853661490115206279550195820923753383261177522204622555880630450487258191396815494222069102534343566921252497923019413900472118353688141369609814404615030357226512634452833964404966420794575856114852816700570468585579292741407508185485945652549566217364271308736277923012809319372530052231681943706270762636992222343873699636886053914225223760685915747511024834021012290794557812808151205175766157814661844804888609552687218812780114781506740365171487621729009316489788871499998890978912108423008318997222415507130241744033780269463401089603230618067197242877514105375930116068781585108342159514216414030004937994035489374006262336153401441756592802074291973682668995062695197392243886709997221973259094393969693907189795438265777387873692970177814066189461177108751854369336409481953599150906798369705477521705430407052924841518539343240723879441219238049480616970304495908007151513499411434822529542886180762593578030052245456132364229346390722725979537007552213191721015196904801545669426787692094396095287375017776436721294868516345026604115006469047123261173024141158524297680424726092257169543300401831355954274249572911531593158286033621663126799055545989278859951739897391888709448015454999477787256415418843190281870220393589572360785726943052253970099246258092080845770434488692942129746985860038148636182867805262451535876229056269473528284067146478924977620707819991402552584989134577041704624462158341739541955710946287465183756507464185044732389166845520493464858094909906742766515454715302004719097857065153262929046401660950200655125396188340038024593504681111978860929564953242100209112466648933021520826926971186589069675102492328709018013375058242207682320633660720409103743487732084891253119557629596121779406806432690321680778188332768329241343776960465738416469212722380937400001486834275598670243570187794853685665787646529352461640985711965415370160193923380255480587449371559453627292013840145347054641093981174071971121072377813114583108899151289300142900700616635062587991343652924122423611932188019887801185105793204165190254580532115834845763440267950014736555037283933050242902818352060839840375108915307856475276259769469821398909756148353740474593006316318379513742088116875482600921704291300553364920777431616109524464294904702798373577005747956971292249916518799890082063999980903763756767872026639050136712830006460445047971750043612320087596813287094006336031941517709546635110569469143331044352395740086660701481566701568081915638572268661963240916526674895349885148425322474973923263584148875818353794653912139583785780261706381871121892692727519796252121428264805570442160927717857388089277720931326319388912024530897054030778204882266575396875989320308687817302627290584403673111559383497298563897111711772716423715529890840034371068308555660383635454133857409343279732643402102896861863298485915838367119211739761023333240125986418848767366557676226976511363486081492775643727913947888560148574419234392199209666925191926043037331592943874687238432529174596948852845302518108887977908253281764174420905209606514993328370663565496215310214878016963272231834101585893092194285743371331134685813611409757966999373176988881727666762197457005620929737581451980051231063028934503290827405789132013688003833180025723090689704344060529641592956401948360276863928941886883555455620389007820199163233985736616639480636133275127523955463849276158059795067477209535957503134548171569488517699981200141649523455297359667608524273394040355794810042417627546146959350245811410716132509184920821231244971377144502795371409827230720699943010243372260854813421530055228995144800909144557567909069970041559575890720558736481196478353752500153732757401712571554787998122420376703891071969282698743860790842904055743170187358565809828185979336121576791970280073629227743001433502408519555349269072199308363455273642907493816911154532459798324866587136497364889425624835124374643515417598570021402698812865402393814093111695119446849932065678431530548013491488566729081056200101765415730056354959473563627945202705566086358969477131585459758260540223525715094017905455152896636329509373495290174541822172671928917518351952139323885025435019177473148181318877444041081392581110988393512485920255091707925995962433467845488032703264398114015156088195410636073867578111980366674454398321859374707220072483307949327397321110980299372552201095369929730113933496173731984224976637667209673832348168435612316568482446793024947795709291687460853872286940717722263528210610651969194250410782035213732201232850261686258435534618673125825555464023109707055838783828893383107921811576209908186539835390907741052640826710787656831416621251150757544912435165558865155685137135818407376499892011367167255489297374377981779700207370087312364785577342093416079313966499887589627441740590106504050163120994238036171022650207416853645771806437659124255942754941292723876545016675338938321121845358302216202494285713217461518223294653270496535088595455882092666257466055037047384480737116957651829816519671114995717849886324433519315188486191514604739297954086091859146196427595678371777446377352773411408787148912025433783942230830246467397550862659653465503069267330603370496899769281044736617173548972612874496146040177744223446728810660430593883945743294834131400132490146560670557177054983515265393339881769790461318787873020471425816816036394585800868895317950625252617262449851516509979886710618266921692352013583984716975644326870531492454991581664398210562299987166355828931279006912839784591929779285850166316126535976820103516975242339114405601515269433281630832208955852778471288267241793312751852706731119062831028531531852032013704666670725874413618463315278211749446947824805380621401087898141245024727401583475718699353111277531646117021167153906598761630353401521302096329972441504762367269511508627986556455434774960268881043044414827817362838672923634013972913503659862466355146734075878739889176096687173133328669949266988178309307438459755413190511346072075150947367245443592872207181412116032639773165649394526799705874460441697629496887385155170075079954587561414712140745157826720276638312428584168909503141489975817677529934669931853491769624182422670188422700735687916508029290578390956189596147431939881820517624071844492497959397680280383453311094517323507746497070096188189164634561970597579696004119854241410241367676299027877997924825294229686838504592057407423883250178418684636825933015631646290454972727049206767606932728786775581181607889460525941806776805282118030878530906057538280816906835248136038215116321333913758620838740604494864149977417032044339335091152157668496865732384663184824154720713540064807685652933345695145362422458428832326549932410611149856817345693033369875185053767470851124112889333997733796704360800159318294887828574548305229746557235536764729167661906754369683104057164122223599596026808837437226283615605221243036755358931557942292559354454747924037690553243137193850382497438850351214301423373071469981829782898231833237460884151116140745375160075991656594312849250382297440632855918875866802502315427916820846099098655595413018174719612741808817104069309623449229363673914918470279618628697495763887966590772027085640528734809680074764795003171918336515298099084000691487826828571262486457582257358462659082962806415284837817936779794396594115579723191661405957083688607884897279446419662924968700800964395431741404364374011446530552028925365493500928156395208721663051731522281089378469102704027395386140396408839184428173761042927318177861385749998853241532544863705235715067227032966320241515027561587198665888326768957931687601137420498184891842408365246445501926600738252373240007871539600391721710681697315821597208035695174821196904583253074655799390586237747618850800137244320059563860482217686323916350785071163040567809670458470614742826042991482211518542528920262215513013755796789819300768422795426463396825576292814486567307416520043885212887979874272775873639478716432190786749136307586067228075898620217203255193373102454466071964070870112817448942582775122607062560837077896511623254678746717892915304665805477733944664772174688697752651604612762230311249169364370109970227504210291521947578642781595360546490588840463775077131637643279532172652388536020955418850292708058329135581131519055403658043076714936696643622626592543574191490654371331373734970544811937136455205188658178907955588141292526995648724944383866974682750479299537845381814782312529779053635699264333413337941523424978439428801900491155978399831755411407596026024397563652432785126131195129806856204701815563574705086205481076969388370159035734383076398722303675910891280231863982352943107649701942921978854170269639432866631221674077836252183914778437806090629252632119190461859736742744584225289559555791550665396520266733872904625317599530221525369309936631176702357711477682904222152295640054680515352239649560861624579026911091113689488973677718488829386791852504812402835207518839893285294990899875029866404374825470084719549179386631949465820572512633349492282544647985232673069407604247409068604733069860503815695897540393928067947635249996351746117677558192151756174538195452300539332109041011823556430670094269339461109900836557205542082582780392288538670307433865522309088636058481381023647096329608106937859820149831271871894570637209163182815846135618404709315393719880860875612256356074545667098407820911461681624490919640881699255497812532811768930904494480797212492994392497716110562745218553238819380409766966180578983941398806188928139028569897285383204458768028136675125698725436527373209491645601952744652466005168068822918369897493278085489029753299953446736456297660119749927163580050363542430647688948592823374820192019733561896922028336736007238163578533617926859563713035655439884296981268484739926205661798917053204394039597715190457027465379947452418651794919167307214900071810750579029630070189451894771900734491962371400159637972101099296750209578388915604328300472928179896025736493415738178266028298670157657739380218700429616215387531548832387387042085520096853223084854536681648992100121555102091301203380595471966357571710740556125069535807034654186221891069372634219481188356965016192472456294884341829160785083143774808816659390835423060038016933416596683806026450080732231031994839081496848230726924945403864682830329890161074583246938381846218177895464299667127909731117937934775466999272558131635687014110976644447723463376842197106068133756574684727864462153185258362173848892222624694258744497435250401219664125810202464229610662427702306380593239609116749188399674455953049378382409231825861432694895623165799097477254920400640205336517488043294153455142120048821585935145937439674283364751926764960368769029355869466517401689104193896661941760122006545507033726974900608635818114032191036567987982994229963119243552642572786437552607949443930973973146393772127646748156278123750542511139056450172551276957079154781848767596565921895878158016172288974855615134619772165762185652651616915399746174222687997380878439813502143098497161103870859200712943466444341783425380350919988031456279925754511994068100326377491228555555413920094860615446781928868251814987946360249739912193293680964392124201172893245724221149644607050988540178494094920939908338162325116006471202132582869184368790271241907686655398308313008631633428807512526606703190301943993624423085209296090787796020594331848908867350759506643796336247496566939038662131871120820250295349525727392971768221577752199764343326069914151034123669056692633129192979903478954108037741930903416107957571179687588132503917861226462565037379528551453264765341957829245094608204895194904388391185850773321462531865528052824071997511783522931280082596589170696348893298942583947564072168666597319859909744497250420344218215400295035826276692474816456879917991580091830690351657374165240643194085242341721362457081409568325684329297099930237724088570816686809851015759455048823329913108020459845898142716196357111923322053421353142383644620896477783145489214639761116963099702876879410040047956851662954833888042893809420343810227275073465654465785427725605500217121932072066203404539339256559753884140044160360336988199662304645038080600029005230351969681934761185431286408405501743894215985020712927760751613992727718418462424463907235006513742691821366837958151226138204663952589022113895599992730693335555990227840218329027369541587201219002609715701589872969712309009835859566217916470819247307246920363035525494338738981695624460040856119508068352814154834790281084060877665078013227807328914234607827575509251854105434526800914770037319228821063950603012715133732239254623942790829044590059823928674734245593116164001136577747625802095053366449322165118515910917098556922931404011507321787679008800543121597138373922058847096778941686929824955867781305251665102409235803130203804187673431877810807983673556218821927753378783050729585338078298443966633910854877487242877420990425576103703680976117782483072561991120839807143252444286470530553693320821533754104591794967287744485384142035747025285490043039391697063660502535619423440501185136798788825737504519962621609749169538749321903874444957569043246533377685824858628813310283794494285682434640579288201142435510597546230018120308780539233040857425243922654030133772826222819213714051103141759890082468564785546913798120151340074880586598224917743549993678656401763390135505271622722672200728306337410621532527599105227966072862875086606655751673166015594857756046140865630692523614956971166247576887128279008843333434012363858085327011646772494436225306643850172766241522642172030299917466840127585791540764602188631599294932704529417533631817973783260711577389933120432315537506720793302383309225450417147211221722350674065545121558504598185964139572872971295661013862864270188669050317054627270973749998977401813533951131700167565424626851706550743960640422853278586730335374398794191911262518543032582038403654626167314354436988050456432602250339648820039401521623706877376084805137039789578487449594946331540293203329768389529457233097402973824453435445068913062940845396680018724005393835615733949385118319802682106819096978609557617666378840015065952295367382118124151290536477397785675394488552714135093228195506540031588108802740123676250955766318868863458549734223982362495030415470622123212346672164334778245935766380240997736899920440706544040693447884514617984128547644286161215477469411335191907238340491186199670521794340396969212152304444376457936534889980257865166268516298153293489979120531468607780219449965399870010128881258817197222535498178898270366357181494920162837413654470697809420589614136460343165078826599686568334233042160757988817092077914387682240071034531442530120285891565073676129889906570045644836957933938416486599898796768742781411260051061709454479410407740872209945730798804292438264607243952629315978759392189422813955490708996766873740864303407000747948988933950706068606787642137335256145226617287829218528645513828511447448638843728203072266876629882341067000702605342166739849453260351738190447901454662609332084591381315833344624536036580724911902435709283115707466190129699607892606510742246948510851308496186020378093778206258517145390853306669185042802301466526692363575343473177347989944435267856755599447346352650554019893013468686071434738914340068599919849090261587964683836674043152116901845566980695650571121633200794112992141960770199723037062281050601099501045816355361067790576723304789694409802927147859015309291757547105385452289928180429168748318000541078598325343980707318345619034142180750652657255236030394892930391003093725694668489550495874302884423390527783608401395073312380704811748381706770308230305365936648229518131057524205067833891952459222123105079867224694722048417795254589267899746734040752246409121839340688988226439946325049051180268265715464143087942186086738887648341762160466103835097416343892680497717583384995730850039161760349459612200034364549772705256088910851023119739078323327726953288865631995069654027241708157016313901819436460579404438772634088092766302903488917825631054467932896104339014304238785930413719030927139539079188973242729894086006330875099285303004603300718431550108793162428806034620865233677668520628889729244902075575557079802684514012760625467905835114163318679525794632847767402048317014797350342944274483675479101572652528177592509298016569024689819302345379326146370357142706640436497420303310651871258341236097461286021814986544511943724258204986049113467756107860980906019450455467051463218215299356451531334676678761552352220316999769336538804546128658073996219956864995314285272332021246407047239747018088054104721766087083655871827507015783676070905415061680378252356070588824006273135796911620076656292124292553322677146682056386917977198595602582761397700426892126966754914876673365027835923271525729020497809842371887936297394027437029292000470174659113093748002561786666726369247130014818506253787770727873569731236223723499598915707664812379026634908386518057278709773027554881944257184355071072481111621792980166820027592889030914180783391275142805622232593035632243248675247621419753788087444266149873085619938417201262581123881447612612819759794123153019923141390563818969389413825686895504581454247753556471838476292319115164289500029830321755667933443570197152184878102165907803650123123946953297075861867821045555934455114430308249033716564355127603449491949268678208408606980556303523042089238910798683631156182917982627627033367235081969199329579115332758123718588098624371204451978431973390832863804181944307275391459733988524313311056461369930385154359254601047452425667169691529780978025441626404075051885422476387403585340402017537542269298072895845322503493415196359531872411438657910141248684984179564652220950911950756361411861016123599782934895081450764652459251417333529566597941230055990458240429839346417098433981879348871400866705034824068989888815463388120013846243819686437112457399819761825018371862371383587236284202394828556057921940900648513871090168317327590651971144177468147934673555554806273705139175025296477938059567241078216139293373980444587857084889107257303160195270129345497526594337176420081292866025065816799927205558668506180094897925335781586000641679882197253113263160640380261568705499056288389632032560992389046372960673361635784272795263442694308482087174318989245061321782861602710591189426280342319349625447565353319396509868080597143304270798891480036628893063242038865924017511840762569572986839679840604253995383241573073121404322573106803988800467964186349952213245827053817931424330594908832576504559866180655553822004484062542738107908554638341546882093101977672729234358886806968727377146114009926198221121470503749445770663519239979203962866696464753309002439089885952299994957292251097864413773845385357545333099592153751773328739970962274477944864556486713652359414589367581053968452284903019278359122880161091436066034923957920562092999166346829703494596913374661420156137039604325639172425220695370857427886224116949146092927797934530143254681163091368216897278545059058035643867692389001401912883318501689728027754075247978228209614985512140594294243942834435969278485560550476490189659782258137382010623038241469768743085020626081246646290320433979343458835936446279053065520085030715861134202663660350802632313193806011774757473210831562079480728916541135595273159957824532980581208061268816699874613543662013627185258555919846865872771897727766284860981107832853288477279216339917865336593618775896081816034742538026372093028693346899750454133738606102681121684045687647849529601749149434446072865207868623925556126069119097961926798474902675012197912534035204213657577367850723903364964971025434621613047123423680590158564890590906343494482083191667547712765543749692727317936400046038843286049069501012594953707109931474017589196063115459532718734338435284353336465721306758603191199923465645212724982516908227063039073912434350527112487155491017595963740943955957493071369283279352827530860176273020620450367691169903705411059453768200882304490832880193226751507499714744139744692926965627950561642069743996276668353619155505008656003703717533231035822953928143461264403359426765439946676976590781191375408296675258663749006302744465347788817887301958327185753086662025671336370569081002542401424616639960326070956883340018479724175113219119397857719024350075695757652132707345791696065847052289932024350400130965828741584736186914634638252774973849193426211570175928094371318772407373541538481460226099602396451269843027919245223918701115559222582430599967243237737741784495934485619360796005273168648783619622579749437404951889296832805205562336056813662443404327083823801147990225364644132717912240854030935795778230679587948540913723016184328043469960697601218104299636486881047639869369551789159141347046226988726880363986625360121446279625621104455117731878793844143112314182094852903467887694470463533411732199479989707307112763477907739502033899248910980547921454590101952536929089001985276494177105656433144971903287648848718099878667906495945813401691606696177045006181670600762808252829617262106327991740876449766055698015786494870558131102367272253134448017371263880075475342897848862116386459805283181656741224331362641616181108606138775248962280737628607089666347818354465389722026835646528259067397304061779425864956462376397751279695580254832779410390187830141145653442315163643326867366501442778481383083249374562256943272114889305206458791634088558950265958748146389304632320123534612503725472851320859679024629451184098119310134410685977350986572797110581107050180662889422671272152151797226056711337793435292735853943867343989636209818077441656283130429118609043529473174313352483053389209211224962582238158445003222191669837684872715051214252329898983868088922949758648309543389544699843368668696776155809903660136816657119030180002897141802190566259776083629746594465505825130143494864404840529757982859754689061163261280007903508571550188330271929569519657240085053959188473251082010176426012084835125671864083853724792224014961136990545890767104512925358901688948764771718910921800112407269563683540126675902824451559730596892372152313728850171379611359568541599585443471955905745205777176793045677987298662020668795479777580909568526215744112269039250786439873522804277312167201651894984291807725113614918842843408820713200058594677374110534032933719664320414630152098842490249015174510632439751016296809336054412817309105131027146816321370803547431584690063415144904413825830304711068185400908313709888528467405094545360002304478123684806812779637240592874566624647776204720994045210043069821735960464160214312412434014305082797376727205447080597212736614296232842326771721336880911140775560340596286857876205828924528248522703977472471621477187786109746532698537942267894832921852139539261909394159479396550558034463844717003442711353924529826191493292426442098855609974118526338465376261311389737869514937515351728605711561427294749093224311536449143167669731413945525746657609202641075888652982271595217742609116839766252472532627872217638936084836808499649662471298795903566063870765315391531632755656333867623626592676020180348807288375294270831630101166032220844301525397843613071251667767125332516229206836290005417352864040293455661471620096495812842016348774210150848030575875575098225047164017472895866614051108232460541302825750494677667792287245178721096011903824138451693916690725978640139074012860525334317341468184755522337338755463526032731931883120674544818145304493468046785761580703658824210068180781447879444636130543476456051312344639417946272385345024305815721789566184606906423556542166741908471736639871273525828506982861205545884258502338071010471124709838776927831697653929265894168189103229963737597616820745099402355281262668922851052068637928651085400980819380351270662980957513525442197008554782056522713248212768731235608015813728258511591632533283646574207420768464869802726131364597035042899463561890942272077085360086800458656681372784678080704245201022772011011426657505683215887738115058423690838537051532059963543924591018796976364273639747941230110733091925339409598727166740128222843972782173169705259785614717605680718397747668882304892197734418783850999407951819562871490010870484570898260513670938427995232465297984779273470427952119181047049245672878612208489341556912009539846826339273562639944459609868787117516998589896181177425055889776372375927352943975666106382162320538145492807717139554202125526339821326168655859501628268941470690573918623821459844913328206056432661493515099854868400017020099318926525108000535527712862295593632680224531584956004298506293635834665785821089973120876934672477438444784021875875402463221018209589341359545635917360288713276252183334948268134142815357580205589519963799887842763543365129199871048372193551452313640343240058237249937629180552991537726007019387748055270103138724595564969615213401039259377854845832130785417672377284930662503112846051417020905387555647763637280307431045234114135293371605550936964830633353978864314983291545215022265720436359713467706372796992987011125049242684389372793801005386066510776290822734126318223829890803099262786103701194230693132964263494901672242818656013585273105447831239017054409044927137052536908165610869489433164385924559430434405523831598381172067916186518262292561251990096157526605181827546763025070866756044241332934765195332315831439825245741996044737600578102976012014615696264722803992761259388013219188091282845425943966033218187680631785383957237013774134264008079042168545638863771614568298721344957184202283652240872350221197115845709905839050649924408056461956700155980537430067748158965340822945066656106995856602090648851887082048689221296271128367563966288293048477569915327880896263414951974656281258031011647802375111731862628165777786892056229636974534431161675734701682973785992365395709460310708147052470285090441033217652262606293827204794378263727366748455941310273254967602240276837942995198122693818968645281398385338764306391331294696220632182949058102500472660722966581498744455208686393219773133452063239930236914072117424625472794847300585682900997086534995791204807544613037435430655121441068337740439347899639427888802015769598146201189373568261687586129159942310086761758277888631106337533518319004380338715543097803722742446822911782847001370985627275129524237249059384190228041144257611344416607201036339865317224504463609753927793276771272092701183015680616243500536421881889790367809725360995868276631185280565239318844345727993265920222093051271776290541060288262944695035697848140434216599082646632135571868586751381043080730046977342877917320144349771010784030499658364568022553269355977374900892686872359211698068043187817611397462435334144367192268880476337476350123809671380550058978780864970605724869358629738203412098315907918132289613094770594016777582338144559031967110209246148574030259859014067131169427317394927756087318056338162476756864695403447668095106661425233788619740599479254593016819189245329458380981257006060172379755207869066120642463527680087064547499619216501543587462125652520248833658356430682914542306892957361270951007420420857558439973702091009969390369332755335003756900068833503398116327402458364592811586350710967101171972399603781284225333770715959162086166743514868320389590983073309102283857600836939992196986706856431170192010707654319798325705648487200770311906225457440128376611810437613342946204752771685192987894690377868460509131217069452260129120645885795818178596964100008493407591138738685239575805792288192559792631365852874944680519960213713913863212690735165855874319086256336439441710412833181064446285157955288451958460320749748764143348780464014307231890668475178370705096778865891566180690607930013765539003030847791329750198500542963223574427944152204639113498147030710717558853352903887676137430614944245683915249369556100275544799028929212564376808620194734998020311242176282201861292632138172620660342273462018037565237802682677291320484036998715293757108963726252668550582616162831041441830267367396473566237517974760627077852475908634410794449965841758267019674782496928470524810643681785429092160872351748205717807906798160819609201842443494849697394659185029685885006214793722138547691078312248993816583687057318053393283710982190773603551332053711380783124253270236500521768595075014759517822075128188797773929928755387390024000739129995803773226296078378001418391815703117150555386984757955255311923189332683968247946943600998427945586370787031417840649556037196421076654323277921390188989656806492518618172322765856906083334139351882556781309923902057989899808970558002396833914561713914942179720271202093237462264861377769627679145219603221709449394943956351046193357797095900907547129181844408421500014415432193277313237971520618512327410235058586178869752179311984505022049956484744979607354057655263751276254945312804569866530698878514359603805258148683155067524496226704619449517773550048000256103370532717213992505143306307875456765018148828376436871009705044808124009258591068953602232242343752141097233833824763200905888638064887441058722165588074732162094065124629151491933572195891265571066606033641262548627111276724221861011806611692300659093513443780087927695261796061680875056226690914832503849956587307844696632575528433703200075926724437904943970868522261193598595618536264063531867276746893844214286251926562274756167642822572242381937438351548052069381189127630846227954569280830714843369559580428824012109791273385068219472648688468106187628099719464209011735239527054197459986790074995922335125185821353809450431022705559378890524661781036275692270157397948595027842958364568407766592358306331438543938725128284541447980703113166470531040969997200764481063762288865204060287485793619398559413629688336629414485960879780689080823601031549639132342796348710009163817240800051953844613304373647521067509106536192746590446616714124278379502552745082636750745242800888749333662904578585339001425545495900230424547163470428121129432580643922041283935983952362106680663184988782459309088718058606384539639718756175322804409687381487024957240188647227262218657732285353134914635357132285326659656385350273704704873706873061380316920749887191251763190436826117549821584004409251454375321105455801352150815504552489684705508368207467477637235064074685109801668144244502523290990495436340466349643067204969037257941684998486563596302669359384662899450930202885601599843820502350601967943207132232630698982872150079600340057165963093670060293021722537163831017901528000003714061204172408403061466508206702337763020556741263723638021927120515076451503959570644784329444310125401620695119826439950572950661291504811962931451104775512181844205248772468983628713856623021291125148657414555058433231187001043853065782032921608407866897927621817848651086392148094970253402091868509994688217751747200823631430921671689469949999053272293271269695958707596730812690098836619768353564848955824906856148631833283952870851518817771801393632920081206818205599167646992273362656859620759865641761826854562318490821032134711415329677665842272608551313078859876313882322011573116285752693591678626901044588279460211511969864099118616703913170451417488536639320303945004399815037955244306214191578741715009412165094121292530897891353252384442173395089790640999390450756555145555255725531197614307412096254340085969559710992700463545268692406151718832403347974163635903893194765064476841162359748181541998155736221223564534397624483269049691839387777485842405365622908344889516931345742140692616536816657801810721402256173367039402117318632785106723132245351267767953067167259187226517646627561149870591267803288278590946144069006378836718930324737830077050865087989696653019894045476569872742297401900598799923761687146865185534092037751571468508058595796757685125957714430548075710768687326467255363714136844404214025831487685731943222404696257476635779684333300119940678263356008303908089234180698758804142453543878362791486367728144922293967334494679048402969366505236719125458418179134927737464603506484212367926318761343951850097490694508554309465156735550830886536191858647923055368378004626512694378585824380257546475185946331599335693132613701604093404893670673820300090015807134322200520696973415699329336348413709663330977278276765200357972161501083409795129784051746348179593172122326751070844180913523139203449159578461218634998461995387562851440170764242472224296855581634503604057241026981945537967283888092695541043415036456695483922164359676870061520670788969449009079970523159491883663050269248604621681443344243180744446856882351325518973071720178043222271002571659644376997469445106377326464494772592929381916705902937848565988323991542224121668431057424930322213080611550253355909433817946556203061266631693098835529588637085704994714046643175315881307486283456463737347336245947045482357095971412766923378347234155049082498815243751984455182303527581489034042932103139095519104240742813857586464661841873098399307720172708570925232219264238471142886262549796108109029789403846993453512880337582617836150502860969950765162484161790605663517439643592694961145375957890217037631852294750996401861764848453440497402189715132345937671565213680502398455612104443906000571817637101602036580314798356626681107874728124032923200666732367549916611899590301546174577894309665219697652059238892734647122753964785147538615054475762408135492799055651295222009083444098384659408716812179154729330837760453340230458292941030346915885322573276982321362635650059274251261448387885607445868790664099950436067680937426703282367495290878137339955482490440919848320899759863099342270226484181033096469846380461990479302933698330048582771640255946385490230461405406490788205095638661721162425606602841662481748485377909044478911029278424433535049586628249893764153834762787422931332912358292078268791162460561456127773113947699152952706921435255796055959258546778002221393636279432019450212123216415395507532144681192978358256750567230917341416394065419144920993232254226976705098178147423574400310816805260123418503249090681621893521893402017002667135208148113786450186828233775997425316642478444761410175238014938014491919961192812890697688699934070409949214136779626898618967711085660019908295986131586796891463024197739779570929974308969643417242704729448935668864158608914627956432796931162666069504564079632767673707718278682746362776941482894693574642945965297060061375414352564929244759652385139673043919974671589810885136212962176861595351368344221383822615542870853575951547747340628102541578123722353087860184491593504315817563163043206811181932924440858457540412804787545825233015403847180757618971762934594013314344264626254796538630528863170525206860686696194933004922779781160857229626447577280539734425488135015509463211879427847870018011871620094933297440434068568557228060332656367663716318229557833032527559614225197509497807440390374573604224106007841187368697691827286810383796854106991356782694046113375269530591030621330825660206317980082720894598952406654031695799512193828261404461437069707465383806087955906858335466171771830977993985012141574479941029292487102137661301021475387727543493360607467205625586131768137119147791668179208381961315374370381332217126173402493136093812721170768473577173903502193059087297021388258313608291949722238667114318341430707792404832452080498100226259039416601795244948777575095484883702033787190457453381602680944828540607702626608058344173227827268770590627358761576123012965499883315200702644454114805596795678564426855770983689774245255526630801083215579400129050100682360992835098801516045649188365988807467361539194977606351815399790453684818532161846217450716915924207122405941824762930679635281738225000148633784159050821702075882071302040528760698848313977397740090231511858128176750710028686236378685766799204320399612391083458891705645759670903101621410677124896110730641212319997068628248657022791605850393679351067778140893193310319117682789828886569636951667738243087066274938373396881654098811372798131516633124009658887426151210062105975860297020321904397850571302768969480065929760208313406751770597168498692323309623185893923696126127953290915927944918759595636784710603397568525714528020210276553268489657626025346846907226225205094559349637717471666745830038727743654542554313240903412909831766137086024996260543187345352586174245558668721903892610181411927248758938150424726419797807505778535545503027797585789108733721413991272292412416845008454088655735693946772774022917610712656960225608339670821190344237191888134822047667548154836906393205488780810761174021128897229374022615325266770651859674134018925750441559251635144307422112073243919275498679732042477909302284214672465411571608650126749874440155296485192196296399648898511583707866420133102215514867203525162079912419258966545598167990138139245880216336170738429217643844435420688279091100825020853133130767949997548729456069962277527876634592945306865214468987275553737313045012722177547162823368579563704248274372324763542596634791187618417710850431827981284909323297915421080599408247163412318969326732108268917973810249859591905256126374696435108221932860391625204146312424945118917919252338875103959348008362883770158885437442805369995886175589058908170066612143477381425835414809119644831431037775157562917879667517006011397610809042690089502409079780125065020918422034793754404540313120406389254069404540762705479583238788151227442047426417556650763354731832017072584364630864700944015186623265002982099261725132082905345011084615461104508312040285753610876671121225788306399560113744706604164039156275566745438892684518965477255932366539396836120057657915358715250379664073351689259139684180537945071730184714763296146790391201655850242059426210666344151391815553538581152900641583347950444072753091042210065029156675540055746198503517988051664725061258849342867904981910136382397690078586824799805394682977590671102840123555949033050647903705721969257449618046762177101799565980494285006297475402158627511882590976867728583803193478000396497715534882363538929824586349732774815679318714822664423594572291918234294221183321296544351431683888723479356735894165212911905433420656996165903834994090275621334798573340731044699435126168399157194665355851045046103206357814908738125944419141300311118409909831896607518724183581785916562636390523066228861938395603921796766022024749833879317830366097166615122187964319933232703441540209438082237147619944036972358937883758452699777568079044655393126720659380039123144089597656003886812636008991992723342251089058707310691089424868894234735943342437124730345803163708660503424837688082448010598030154783272559250647334546410124022999772386366138415858494405406514612871488703679992252019091417539312943835191213686553084505876180384533020647179600396292537645908904710434086810524692795221474266798595012041946578820812444884068697119328869195905458719740163549784037922346145039579402173360379311890051262759085596058707666878503337869540960324428985660126426624035960381191746071565609029105469303378107759672135599107668983189491882744439837627119017643613613274637150960186478524466269069927860534747917497164007072244210857921378929040728973380328673169075499079222084225238999859884548095407909662096767612916165557322957571896743786257776336754881559735502911374079161866299537276418878255934722280464281339874035759393862874265713465311899989732629416333422496117986467968649299962594110924889357193475145693265378306720394787949021624851209085832504690614184581019652325019702720984603643950199579364291492522209877882718091395241772073524451479220583661237939088822969791940133031181254695216928321510885434627629439944535974756116511685908039622024365011190468625756186288153293124491911120764408508919333698085511810129340678638843924420139270704665190166730153855506440876674832520793450817852225575149813537576340953075812647716604210994430000836569964048637844395194036546753915749839455167017396295034774137744844427215047324001084063227965200193135362895456445862311917694131210558559842218738978112406017579313089107765629832737858714980438689428395541386647162882625936731917277267702633030097427714251635331079623993512256390895468427313142992158434275194189562859142980796058881898464006635667635879107159153385883844713950159544295036989972708099462187789347755144795703390402860880191431405673962312473597855132454226784503079828150464903246136668525196662744989066360332579216028344255727648222833603631769643135577145118945663840008622087644314953707806705825582390447155812941886665001314766153542197299941147588090555821622322437220312741988644427831542285249696613875104054149494760107554449945982249756056175877094572159712397055641923049489554710264368918330649933032228526711489745885385201592373682415626921000414698361883128921346834997809077003184121409350799715188104082798051731998155875990579223096678562745478834685018040823823404388123630736418069110343542883089751436102300953419910809848079062077350995772800507452171897684608421160583099706453153596306569937266860834117383853519739840217493846966679943794565766383587557623699670476162092102695959569395952706526323971225532718250112171994916646686157319326567401552709478742507223907504393917471649773709474719164357527600429122105079853958813783733335234927067371982734888496811524985945936817221218677471641359540620975511814739802136711111379783579508634417292747290103835717971332005835413574582933841153614611158582102030510740774018349420508105815745702275495086126093306173262908901524508468297010025151329850718371933741850221178009676713185387384060933655416599535207465997532431357323709131294300761684207923803734643591899431840029640162806842392800331096028739212016762153080591106112631319021043173224949907563436856240348449196449258533733292795701272679444633922870374979863463157656765262321557242297621105579415591532815437678352687259911464876923094832552918178063273643658808773233634961351613555230167284420119611542046393154419683879900004709364569907179469408791375415859980852260066107197025953991206031098696161077334216847949719740310574577078752844718985431984926562656856626036007397313758478041875257266793783490631869003475854564242329719675803081620253374574846843257931678481546799268996816567603540210320516083573919910634961368523588279580326801032410308796176283849089396942370249045925475645675915322135252708776885369847784728995896571182704285412141938304114194753961159577459862884952826701661477139211637487866869417963106936555173651200524145654016599404793996689085111129683709542897220289305150521417963987960592721154076930756890568922079130626989265415231635954487527620239457600351793911885482510202593239021153995766719180417803230751832208096291610655823583681139593560083442410328283317477980035395611190172212213025183160134075706546916648900967787798953168030741695349053351267368258684008319946516298962680410363806409437037530891020812973591361992569390385770791988321100575955753554150181991162822907937921725882588047045384951701808500568958738383381823700367969677686103830460579993464868267333539726099137166093869435409226382525236371274086635622219502707119932394630497830693472520966347900495839607509337925625761594545001306959051198433882115534797353797184269208252226024606355136313142942031965601764265761375347260560343683451503161855075120947044870657399019153044672733121180673105090019104799250452131603746397347855059411804078627939778774695848660548454350245484789028741008500817881493055087681848936462366912664965163975532043106389350356232128446251770988574533913960747416526363051731630858220899156025687673150941658105533251091580390484909091634840587602049171841987024340103503018848686037307990138552251142170660013785563981485974699324363367471865220412973114588048351480786186417103170681186393494349318560762694518231271519693380325925655596215656430494130602810895897370522733774946622800805341860148815706813963554880910197663588698701594599616572389258537029708351307724768960063069974703429758674091538910268474331306808107346556713338053806635964880712181461749165731360449777885970810323097259239352226217965251963827669473897799940111599636480856157490891730288635418432229717690920927010977842712009583744863921812057293003424499953633787454021031841992343996838787748663595551980984085504260520652340630403918870923959594763474960636008668890052120071517518400341875788478241713537654411191473434055885330126653003822945820060840514471807448518283810680736376631221409964302887795692729132447959583059329545612766802090820009232292224250035453081388443326848370663148718078507234040570395438210165118408274425286268384001971940090800812909694397003897026290501866696929765606452445105124660025803723283303292645689266860195217321629429736214758721926813441326368049572157536075020897401183136653483261981931703663999495257206062087920705729574030362953336013715800588379450836604448962300608113141909574600313760052924380291489624608274008321143222750322549435700214071733803578597948682800804313962633764074712213144456248304709490313137657538041432336203544742252211875895696064925239574724767544727274872100568514338962890163787377842822416584395881761774552118769036184056172868599517527480164485763145129021594844064027085390506559847299993879689283255155440821553354253277645593201361562262740957314820416561305457816295035004814628128521886287555102899671864960932106499775112022956028222340386487104444538910859970943885162911041920313191008851501002960415843629222669129488618644733865904377556947893489305543193578002696474467384400198025213339268547660872515785241630368091883537812542273608337556851752900562610980303605960389374239256787669003185877978116964078618935776979164019829362633618233107388051360469635719031468555117258204912310709723613523649670270933526305838993540447565467008590340350023787613332117182505462719034867494036637081996351945622763506094153192677991986969596976383372441250266494252185306169839297057465524631012711298410186265687785457341484820115684658621055167636894485493500746648688170746484405394440272905565822537743938425929801980931160936815896167973917359602000278230618070238264245754714821910492468570941239645896079719021997520943544751016625366120888960320177286972009756141331281707080105372470223652469857773778780144051775125735288398392664738137395327704095698261834211916596916901883531270298050087348048397644033197483486509993587870982639172984797588464492335988658600393521056418505000982356217758735274137205998606740864711138226549481351075161088836935548565231850127845625461342618213329601985605679217380989573532868596679265786232309247735192641163260728705848524298451931699313730271612978248591273985464139156419295279451060042746509140530809798652241622691316761461800896270807196970808285461307593003614821253942248636709393819368255178813283002031245875649033012503489395374895973680062948247640506367881845630819808726569394723375308241961991680968355839365943715625581007315015489219662591582414598012717351474555785478035353731339355482083295069449962713977075465302066142350350082455080365675266249846418466282991906798583937223794718014645191011859745177965800332798187533689275948679449938993852019909023635333511668975547464495365011572060415847114717583945431486845399780777508563238763999323994332205377233536938584707275468456163563459865974581341219057126892991956013789531631064704493907798667317100746453670526638733435216568799378534832376124048260777343170746950705685662408091756847328957539602346101571346450691062936128296708522674522393271567800066818064534587689865654598536518287729290468347071424207010263915381738348868412120487957669401383260701321417212762603994019634363059023080246932477651782523003744425634448304463812597472008842859612829808888532467253506211289395554428964976774332980026518500425744951170657022106744981501753044289521497323146835334794135424485839764964758612719839749007489780084642190294975925793918897120081155717557701183957940925707281056849564656069616111217046956630738566906016829444698421382692694407339494197602669214654151212036961438161418004285433838102056122102376426118488362458251280325640628410200781261170550976129547807992507408615595992263770927731281184120882706210103972754466662425859177504914612472287782241114971955442666951731653140859915234041941062344096597339373198659202546031440193617727927592453627037801014608846514352813124117356572605346119004840146471977506315208171034343477803614050722966131410810186413300655488564097404241058847262176580159481075590181285211264718687375038855637235747982985041198143071774353409840358842408464554300524660311411957466089529878414986326453173868798400460062312658585279770922416296832294405075570782817670680513491011240019975910108918801627738676046931445833831870983369024385292667672638262609246473330131936035299568717306207577950019353349940232789141948425889132117576375974638741541924778990941511441490356238425681286626457994883147385614868947567687878291107681571464130292267649671013069568097128949409976018039055560727169562202530641026930306688469452572406193251104409190858968122887686466370296927876695785009153147320678040426804385845279106411492537535381760310123671005562889535882010505028310089340597339616235271628331777562006792154910145519727120609126670262735308621922731051182242655342059196967932913867607608515922539928932247192253978934202563885186750774059671183718897089850026973898284230616560609129784972119711275078932527391306961163229799712840995354639234479732644866492484672884642530184888587786369994006464440626437619170523827964117922706299245165818901865458902548034848388078718095739944984510774742333199182486490431441327666569765331223341083089882803328395133607199238532415774672925593787658501656770089273751620775984050608038055927399378145754960462252972158933827667681195053600665539818100949414362933855279394525014814197435412238786485884584445715490495651375904699308876247258930110165416332257289777700931175648404267112155195435873255995219211488679225643456416133887213419438041387491640576171235998693541902509962093395511407639639954757887269428759214181680894727145166890043673092658421361715021518388949561142005173607891164914888416474155041835674400750669093541210592705136201934428546262503765629255685974199447456685605191370173756833478114598472026690312071411979748465902162745347083128483922851174878351800947199550011546904046245146569347210257445275411165672304979444753620504420633007229668570800511504363677515496989038657039900207580116738907095262936992198771107734783516521882558052332388848954994719086204881651151619474294433687068171759540664041387842778488768126239157979134546675549837229503965990442915680934294503902342651109254007768142001446824473379406765504816188035504734049515674970640842418680548060611261485327521718460887495486926934950070370045821674971857788384385327246189707636378069717370341256637994795467143462810773497009418731331137156393602994958042895208081510602966091817672863741493759739027731597910083820841146018574705696092895476320870307617243021603572002278360128449461432415051752875534271309813181377317929331420102105442078464884744276877273023484003628305270118964590413718792467211483576175067784607103568251143386952218338533646302429985014675744569153893678684245004158482849150028989172950805180262634122751548659702826966576034014307942709232516269542201241589617120870568808888636567231176419684833042500121086986451465988012986889956895664262713667533773665159653618733003227141778670382642765990288097457115439196011416123906427964117257846820488328417261610448850855385373622068022013573994349887549290919880893153643975908810559215100881744189784867234452656650764484961850047409079088782818072412859025317353856062593070678435999040421781923804870342713003902299556490499189203126034160743761053271088428801083818085694364506608511804897524371639569769133318190690986656508715245681168816573013750078598750191474604434825601426631068370916776318941797421713202757839673840820933339254033052584652396544628755758408589049736588905224119577055444475227041374501945239429704947654495083089699513829793366599365148074370485038752622702326256326389649931329722347578604460075094858208663609049894481305673447327314744601315471470150697046542159993312965667208132301323048117408008648661279273484812393280563581755955845250704755919065706256153701501173137368301903063101912814977746703758374981411506121221345259713937626303432398616431378886456442987308829366134358284547332001048365913774430443880954914295639928147147450667456289848929729327557623770156086463247814362793918551810023387146870793037937241572582868352424631728778208152499938282795663693616716263448547259365183930151202041402254813581608264900994448555780564387055401849279705691730122340018838447594480887868608382147479855312556627973640745764394952322376447300680242026846658114051036618895635104987498268239357560059335763371604844841352803207052993836656129906230357907894980979185621735157259697765010224734666142655318239492053197024447622860448431040859229590070246879542824748159873422640499074296236527401656181945552130244952858961013759194606250276557699318357539794850877732147389770963142501753556977316967468639071023069305766843841301343414396869923758933042343730693473412010134733929725887709465882733305788909433775317763395250194491532164943488645845400566646185013241337509094072579960398839651124167333673762879355420391519369612062393363106910065162817031390286779583067958477653541936308740521655207941393434518591301662132897136833527645887678906196094875469312846523064877951432270915649069095419699349288554385931346517060026565715049516942365920207143079434556089804487628593294225243675944758632481529850936848468871174124736015485691525522028747834136808552644301967165394436956743341967343126147019516234669744685721616488324942665333204692931408369129460695980602043150634395622468160213482231018668521818848141517114940306432699106161916057885569397064998791604857075051533476389862870551971700973093493862086922449254611825453228644074502988902937602663205337622386885115911426860897201135037128131399314007059936979579368474178782992417301008652534314632149479316268524114189858380174546858318493150843537225076511124446653629103583921067744148574062801061605772508085630068370485349981752231726075536490413234193746927592049731499149749625105841847947700490472800350376255360305116139421288919197637187305861677725589027056011979502949665782452565334757103151857468657119580816333323592129523357364525975719854319132096513403131999520665692493825067754697824436252529984428144936190869170967375149360316495121399342341291823644020987063869932511298996409075092350022149657428881405587828900549209006772888418042121524651288592461760668159643225886000617990763441976214195545754019300519525005812637398289136859666001814798245621948243348219295352336370411413909817974123235282894837414915363365095512273445090775735678230592494929686921570846030860235878332315626195292522725623866610734718335327026879766011125232479806130910882210439115686353660172621091998070250157323011832862640321224108547499135369463200064811707974337676217193287814333054268696700378024623954228818608640877532791025771811851109343816868291186345577113305143663834852974423541534772053111455820367872471194231730846816707957796018236846261962617432894327100702160913911742234268035508756849966850003077211179030243723159392795509992288982384281728345647666436761781049391364658571887812587229924086669810940644486809560650412865774439103902101792677941747697351531159368209574097986566051681120492007869204651109799366278248223371632059483952180879465197203265335728040073025856652963040804664627172775459535196266319320028150183361490529399448095635447088233468811539677676274595729739317895330335168582393264094466374192905796036705827272691683312917773966141311106178705837020848058151176070436684555320878802422576960037133005365073122299173496360346686756280816506675139418639475620707235975955437577715112885293643419384485838331860371391333788015714433579723738281365632774255528552253185256166258695053384334435444898439225091378171519449879257102367810701627925851542722960350654609987495391360795106191840001465696090544460453323624456522655204682129898354622302700786267509981322622665651547157962090058325838293048347556270439219639636951890963481182280174003505947055220467022525953599833832209055862150109651937603007411831731210314871617880288568051512692184202520760310075351969337375868842514560629900081741813581123069246012094711461317736011630535021253460832632228641995695629006492424067545631032970549513933849572769190976589694139491453836377430053395625167645719875852528487810404745349095255166536528360392820904756905100080617515527958948300714592134601066318420172448035490339759277977340546643600280301939734841136084397428052873340282630984344756806405802992256355410776289539273516571305973985947759403174341382904248373526861312516715406927314912999380066464936844795764012268462818211921493165675599642386683530961540711162642817470809368073100830252548744724038070285663291221678861975044977938889657746528357078527404257547956620710333438192771091023582895862768891308504448558051617406295904737806612825386971382354594930824381872424135472925124639808945016279906594073626717340212688717967168546879536277086264139362292058881195654756543834746504598693809011779544167283687442303969399096031308772391668829735544412875837129391359466315342810169142774456969810841852444854928758972207432665969832073877591074932333278450190174188269063980312174647402935666785023769255982681995846165762960306278155300748774800713395968791856291763602720663024611178077001261238925040213144900823764534258591957084034345171297003856032927918866765574761133133259149486419221532959053541203432995447662487277944439050542664657675204134440334713841958518213771514039772618298570797438314815882632104982206925217576427261661758013702531333185561804185658903465684878565101088906874024903268371668719454609898187107306947527344473589358860405964710285160104394660530703885366824406341711856428006400645240999822967157485751631451381251333254040295478912040518946231647917110328748284903348379935588319173439633170466005877251667118895879564202408260214942638426126481771339377821444428513078848757731595548486959287492709832276249743155645176290625739706671741256439837235346899638106829499938088059795007242426916587510883153799475498960128068709452406133898105104528430288142552243849739731620515923991242580726832196403854612284740664725114461545552723589928303308227827886832802807410971344629721679018336930707307338889049862111331530851527522869863099844106297888658115707652876482339261211684544117452592676917243358315385399918250913138255432860220991982362974947361653958359037401785868040812096063824391939444363621614894099118950787433646048739511082390212177138441667072966037353516577630828193206718823243860452632345344221297783691451874646891564294952457233878313141827896965091820406798586944993726707570928823821268013050054385627823891949158730140894899633418114196962175935769674073897154554580744658188468341726914166056814868015618422349651711199106438088667940048785212850695753380092009213685814771357273485972869802822237095231531700525251483534370659838654654557157513587825317439443694985739602372094734761769373722600279192724413088467936730026198181887499455058015143484728585855220303773992197333179010020225189423327356577251499313316867883525200918358280625439947145578844226764713347734571649054888453921635677258787630738064741285574601288854770928257026420879373106580175865395708280004091983408046098997005558981509983700003889928484144737925584949066465699579800001800772887682743555283683585029788921811915663272927313121175431890925573438182606700104736081065277434524934848658585798689760027022192119393802796969123304804878336459383014182959862897873982249213070648191030184827251728213856971818689797819760630739520908156251592568554758072351841270542417662966476862416373181810799785788627215969019864073480421774507635020447060332270973176293315080306692757004509383793681938146176113244101227561933322804329359872941426302481767687282556655219958548131820355533611434572544719830735679147702827249840101107421294168201439260915378161759363390662368322688186308193909528598559476073579032642400415230359864510786256435421483780370350021379939113827372417252297739298102888298436484776002724277836512258481779509630738619080458944826437028897836340716581470933015407983756985228398393995624633379421335586033605404446803093381078823661240742910045001960670996146694714161681888863385049307930602569370493803687094278149852194946665845486136054764281503549348112690765609900100610419415767167797834687993232677108738162542064515973002989315807363485626105107596663366568168677040882987723179946737380730863814505249911774153418015449773331660450862590076711631680334877288835440990174602980039720889031185962390689736721964479298368637995056871667834406573939590919161770704842147024736117430266081143971190459131253814279442914317970251542673217458471852620566012900677885403605628524647148832599103972426435039409430128089879158809524542543354950008702504039916032294032195372012851207110604260642169311935610207660278258986294492462061836830055664982017165173733439677227000612581483672660571915608862227898121837623649802663043944117415688917321665919615622391772770929740013575018350781452789410643123728648777499635289172799915143811179256426771280471168636000003366774166169339988551271874539999306729059499051850147361002347047170793524897063748338053559649187815576778120555569321878421300367865902651507355587494971144953239436094320110146982698176345463728712298999695800255389785008124236387016567410125873036701086441568674178714237997900546067111227810271499270415333690301646618662907498668240477966415420785956735409022413083483570629818955873932379324294347767246786826428151615595299725481983266493730059229364928269137438333378762126741772464028721781017097193066879466096880367474099915239632314957067162226454232037594347521563659414283912573271962125251411644981074547367298137612403028671021175151637335326353517574491113298349864485569856744487137828369681400597759941198687184637376950205969922394365639384070446982105327086484637890243007860451418078894548399050484405118436212867394597188603038644323102737411956924735076243562634215846214503600125684736142745675335793669972312058461188465570085145129975533295196458600062172057360535212678913344749301758949806901306621150863864039965210314584835334540463565924167335960210981084394596645724449373918886979178930809243878535552200583958397100261526163689975975029108502577265647699761506956933886634851139358766787159870792166379786835620874454466583279161313266102109700685694893357454916062659714203376768907384344707266786453499066148953794948056470579674750333861901872760237753067445780497465411265854710790362350903239965990500037293340763326612190048979045926031833762387579434134160675842195120533726631517064247940487994662062042257189401871778372900706660404133634130985161754203465264037564792875242037566019037132146897993430373608370822559042213668217217765785810257766042282287850231907421214622905487061993171692965026742356043603893904903962495792858547135515844977256202792186763833618846177265325238769258710753823479149207659266648450626983958622939666711093314537265667817022350094454645147199452169498568233060016370255843039683411186798116917271367197231125542403274679063438690722953407426227079453278130250309435050570221500461567448349736933604387194089946725505051187222248202459479809666982727805007083711525882074595420193106759853495882181505124976426460392508299925838196973115902092696524867226491601772934699577183624084635772444646708655452024689720900780320755021374400750590430625994729781849583935434590514231108497068171589620012128433577150862778413381337788697284350928305486341422963196813593370020753375992860303195336342459089974729451421394950865143070141462466065468063873329057764907946305582533621475789032352992177381329445521199843724226319652954940455002545608657681273885524690578531893168138817004717514875771063171162320603191979435276437239637383402051640067508523667413165740886467740792446120987224597105691870233550995098021413351432240703656198236456962498816047946787462677871736460112727782692685655824357329759508906382904950179114036188244350167308959545224744310119255134819214200179971974215710368765681028830029873166779419754633465083741138399034258054146537806016264474020100139353663280161318728499156732970556203153724895646220191560713436616274633568953178775032696840732207441188858598180580040990327474704342298980723092284452137856515370196387595586073562094081474530331965714178319316699477251588676708933382268206446269455248645598645226224306071934860253071488975727336134200229289573655343214981377003703773955421269146274152155289159540476990193094486573476080944704135949832068066290150048198386139027871094798504855220295424475613529190086090782239640669855934871435176003315651990635547705624390355758930533004894793831775771731140321639019582802918581418081895972846147868785940087743743071308302277978668906284303712627268616331085398681544899208535733877839067491148771126091509824153958946251361722618356796173934631237078910704138736306775554554260821179420524921517395903785825761031357979544505442810344433235440339691423170260999552257469522150229920052325546664229990153022633871005566312409418945714396238128457099105597182672451616156511485017918332506936426947267780215521385061885677323597361974248408829915188423812239828411304282215899342003756794799849121421082859378720969868376874645653175350617591308897680099964112714252454529871168230633726742823108123154929301854172915798874170271647092564483425211867089434476236224996122223693914490690740666588266361915112667322629284102173863966355344574883891539134406045534342364445579435346508445968215822659567178001019740072749003620369140643837845998628687057544003621393133217112275525301219701641248981666090921166235812969487417878430752849701443184679459413445290532123508324791676218542163433195621367700888714592064675948916961033934258803669473925483059098096831280221470519549518911997573735717400652148312053365533525454347099910416641791469153062321449377714378323817667852927915456290570846080116754048237571875825379340357151001785084729879959249142080567444055055528287382586638117043058072134795137540409911795387123393773768727874692079166908248559297131779449525739055574317036508790011036445392793821948776245074877705334678895022882949790392617545171864601007688576599406624166020591618989337036176574868995634994526891734088340541932637686739029356331990792458594825807336500098166854151414364992579077089687418664675823053116439005026050994757824209986066882035254704610955235878000069825178333566300623909619867907363179651978881130694794166083394702436291540759788055842286787936400382643098044520337349879491453661078202623936168648092160472283888527333260001706365662757461440728099171286060069814013323752856388514660669912289424123462766305378544350177084626752687456158605488763180832216784257416602129674225647833015445421436941475501255494326377718465206331105698320245789749987610300286151507372636333435417583825821457838758136278809985323595770547453742146044055003795699053000391233518375153966630481930954411112274442882076869384632225567453661992628341926072104584001858821784370928375625127643962480814263990622373192943220298774766239882294487809872485499941025040174590207542503678453140151514315304838437223149557499078687142117468755003496061756769905803730341347053408224471143378460233564411320263043813608227358771939922044375907591345731069730074273127718548148328650145986698422719242307966514051582284691683797892431223176794742162544630697192630119649822034750893180757638065588738871534518991410664714016194978703482982089000252473385142648652711973112728759873550538597155097667545296713289492988959443008292408066054378446682206015113137109715608835057822883481331242841869101989127257042452658151780339472307778276994063324119816223143783429591339870428315940585689652614429612284720560384835630615215485908293389976186789637737667663548335064374123585115907847639718206736127400212865667834661409407956680265153816809988385775241627746311185972120200230027339006237543726104328037659084481254119270577595547941334684433574052405558352671852899690068162379110318827751206029768049951401475892377298263215172408113956281368232886229910134135958490261989966085319770735102970429798990086068727592986773349044451959462498779226852662183112566677631273769128378272557450934661418079537588142195222250385358542075794521697977304598227313702822540992925161537238229366891659349130348086134471200899529277725652649406928232014489534527102598466611858186161705382801548203071992710325842822698668598845583680520190050710687036934670723507052056042808371418935694394317139978929094934019368346503818183830225130991629059369290201111954161969621999245988808524162033338460180695557463318623156191940733032998698657084618580644508234683071023803875428748509821893825450985803251639834648533131075738030125000604280663069692534812473629937367992224279386017286996491449367120548415552783107727777949942059187441064066636273917898886914739186059900563979174605283394495849842036052274307124648211129482362574907386934101675974512820095988496379361390508256864426072578160908555560044734864180426121460576099244009502138361351200141753533922591256124058059678112512845648605983788246953882213277387879113226111945123335904583831264938595625345972701636017688683262115968250332344921530343507480343972475031833216714080184060042224041903979190382159810306988474694228929718925291964899602908440344140643858157402326335368226671000825318848376664798053305501956934006186832263402554826404740954885010181109735082878095374169400170595866821851693557758066010655606576176983114996280620485797858987410233830561463438042715095591491102418641270363049300929924756374243110908438618850823710534636354815941132998038918687170167140846346289524231803810505936367715850240326875485625030923057017525046202552295018217072679296781225343882532363926687358812502830115082755829172935088160958692944980033266507394047936757405128227985004497280074288431585645243558799720518101709387083807174913184947151180953688607459566311672657634619114773321514570567694002563809774512710794612824167095707470455934611637828060972745204813142125148773818527508831522919023105393246613427694180352746370102450905468990864533938154514421286895117820731614272832297506408592899669701018893868102615569922146870504022302774273187545132450018304915970463771921721265357821148474835087133290727657125126464278243364827886458257473610031841720804793851222090080416908405468088069152629096002371292646826384228771188800694736156309474706690376077042217947255701704783671952845511236530743900121253733183886039825675051526651361193532358279166936152043325193819404709473351599850650429369732857380534421690053997496360895122212527235912548522837121676478401127217372442629456121683004398591437271392092262057021894413148196195183065441030202327668752667843944418612374298922452372767118408208000294717285050895911090389604137016406168881264197233035475547630577837663856499976563837911094216896519297808893601093279234805521353372925332538133893678326654518436649693527253581570145785935400151626509719808534293053868178281255618000129317267361819419673711033022764319359887511096960117059063289491159617727099850038471259142220255841386617775098785751718399438866860271874627156525008604214779114713707004870103130206646465915189416063341298593770171432883884696811065113755501735830972313160901115682599112779418831952963566795947054824602909223659389425477324245809458390941647150036634497432171780744149836893264457677163767091060186125424444944750895123918510430997944106159939239419550468542855993582582857689066107800203983994028465003126522436933605259026831384228822071312550476369162464790071814106692381534412475339843026926583861709042583955762600510964672881120304577705785101466013791025530263843082296987976116230150623890130611816089622655241662129632944733952157749893311286012136683026125818626890580177069853954585080657402220392652273412308881783482574771130936258221724443437600420061208152753778401098812244704761952524791409191934697718535040247213321270587165623484947977505716177590983507905695814990376934734539269528121021493209844546788991112751697146632749229376824175853100147175072354668472122045176016421796124832343462931398696647348694588726567679349406213374330901623674070917087397892988297163661103806439975207197119628511988167832862381501096145890744154642655265036811191444989648715018917882041195100557585798386083007900756424406488642134386207089445502088317426438529876783706681203759763699628293641402644292081571185384099460545143801309487278253891428712029563597200460938949093473186906379230454087358638278195202693393480170023113415332877013366284934827114017727184367573301012057308526351503194336368178566422968885828083938358768410748274489235288707757669147855993562142593359583640715695300616758950527465712457460884252389285458871721107523702781099695739370096114442785502241860933582125976748384868179420429595868711476772145853420383595482784834953274797845294885828413242960135731360135678476855844082725304310134795055287117440870460329182980850234755078098278663646168737159642039966534463817154101377724432920174429569310106702758610872624652658763213118995686551315090743978168484645129520584459863805127711571249298279868719854933124645751798920743067925951873178113856163789765848758223327124266248562608753218925983244147318991900459760405249962126280613572397150769028271693848261538874863054080753072068332142369530058744124953289855780193753404581868841012847008238153837277452746346644593885838202597723856185979786935863328750002227034235040490750978110110247719318162902310559778778954459862412978903684582076177723718253151923098827736036067906019858666682281690685712740917150172351398935022841073763445777504411230694778171894449445188011292227206892808168207472703122993673818507300487627993594327092494020055583971767170881969486247272759443467686676303792259555557285514999646649773225770109038146578399706203542981816448702764333779779399246229088782068225935309194929464190959608833257809762786496349202702349806036888346312533657429133550047209544097967133999574235727291054601902963749539774421400533047691961753559671898322383671780334451240617820051741869694380434529122117189890146298809279284916668891764294868505768758669591372301773454194490113289474686298272793342198224081704969846430910124575521591503967222276968793380674400759809992587766735442852252855502821399969754852247003195071482855084940052998047590391922086198866052603807495965507525542075606805493500067953461784143102700219243488473757792850682527034625772560896594252947339732174526199858610221750040849816962239021943584262686726863891595817971089788863746876810846462957914489475992819417570670377739483934914040241420453515473759979796700969869960147139242542619186928617150167195636710371328617288953927595137204195261362113097578627613837408086143365604067799534620505976758443661366377590805731524097167247176169777444137551905489315429455394722356996456306096340564977761956259098796653521707227773618278292258610603084077124073253488975830072262303618008818933285708743709478345242556807509614006211441111853975183661916712935020968643409591463852523005166484820734280296251311638571464633963396173810132708142217265632512970136005431266171993552435080916127790466685329317111883885918262539856004172460573220285615365411784840837422267090075438551296193842926537458683941344372934773444771987090590095108465678325913602883502025362419706799814218016978189607243594223454861266089886180830640565809675336073992050414023546165003870981772647994605502431702859693907204339836188415594938786127103835370209463549249471350652140660294722897347932553792561243624920617483158731905396964285547813245164189018875967044753393883900713445988486945150412099610040632705188163900503825687469613578453766258730423927799657705093605678058555734137461522135707803525239690214819850993314962197875869887431069914708909831056152172542180900970526070216346310913486190687295774249702356732642099082607975542056287210027115881316955205943607252050035153426301907290239577613507561562594932954901711779915142007827273483074942044001064727402446276141972670575906039074269626542799603656915183178425776487495908270256403813079618450516574237550180962351097786993168445712055169078370192386723465884832798124982974266483872685322182752255564098645066045018489042033728345375327088583214326089803845615252943590023396171312823289629537856045389706346332454891958669808638141053254591514245020364731287950868844220507436574319453868259038092075084352481166700634493961956479197664148099280189534796401149869782815722133041853725404829215146988179093828102256075809743319165441015913059456923892118158656299496892285374978583682033942607605773062318173042362098657681200673866213925784184751972050421400209757867516156768563414976836490586792539085813960916768133887099607183129060606188545398707434395717770665783815956415806197240182618622275626963077881859038186432832760277193415083390031697739288222162314441105941448759109452526427524466869602338374776780523225815269161744850649799790194481412088232582298520116327843565391067026343344590831508151206266405308127217850503880046166014172448061731929715930976945132075417148362259815660833554170188618036704588117441942294479147418082709877784737886842229929647932933967654804838727519176382941998507629099687428268911184865509108369798132372925236745503743425388276928609655109326124704322460538685134198263929141344881324715147561091818734726611579652887925512746363990681313165781125977064625222550038861894096179809635714013060343693489562932940322469537259136964130291170313917956833175365647840181656075202739644168380036898555426130387994487080841875603309739157467400184522241573787322941546423477058066892673550942206594529566466235088688045010372412775643358147967562207675427285799388829099418264639213243225358385783288096741815951316996676632796153608157237436528799013959140825445336796146472044704849703205776566690335027259671807509300626986799666531397070708042006776929517864882726410338971004005531977962859853071682973358131505758843938571901869467932085414333146118569073817100098788264166364627252519116818359715587311086536722804480799457312371330390686953271585129073994677077845882102997411576625858729771369988081655864308701362886073514700687284538782628170966103802710706259580261496116003933441950232575565099427361632578249250354864795279768748248907613107862646593893456099580788580914507874169291386048827639480546766668516946843574748425993169022709364291903873761747043242622428956436286485519016731592339216677543149384350532974139230356963346912194409248653747664630658251673261367508754880824965151826162241697581885960065982507978553915967442619890233894250569720918238977538660787205463665650354505540255610720322948533395055631047694481094408565933744329009434054038552716074870233213147513642814874173693757848660114070721690095723336227578474975213311612356198664152330526451104607642903919336589895579185474679346497846179038998236901436122381191504101897304237041035765123798759990024722759958760989638650317174492200563068542880582497883039283723284740867435714268444421029335392149882397221839846134853534689379756726688164068225280569521488735199240854381499754364518477806967919494869369341164166044199341050568249537826278841941079967128083578965986823713657756746181998858454416236545231177093079600250731301163191827425481494984134395984544912851738849502076414789965350889255828474905972153824915019137808061622401202656369387798541000540324438065991090298106108688877663485348993547218883770503783217797454601207532048954722866209325701117036891130714004396565776315677097604840344317380507882893530564186847611853334957755599586394515480896272512367874979603589023703201245410134052299021965829039630863079450612125806519211244153588262855760842062666668662492410499667654326901370290026225209626256891288333501382507328502659553066772047281982678100133016436935589961658313886544612315437252610028456582883373006437589916465438867412501590223211436028550465986809405569271248399359200440672509576285182782982897057956741803180817293547003071873080291081159745035172204701769443961810085013923570594640959193472647608970943302771578785094149545635291103655951973801090876763037441817229684332314206904754742547330973424129895370851932018396853670562268925279033011242451112871945623296707353072365572971170518659738316326453006223180028816655083937114459162435585315890092789365461887529876335394423910183411966108941676877738209825717133898204812298151826207591982252597136386628885634625939417370125757054017246721031267164714318453503894183204981196350621798115998530329818187540352909744673494471652580486016826943599391152533173353785545533746986438390274172348151912546714601379010818042028167625298635144880122783412537634719864268130956378012065964137504092707057244984274955591313214324044480743197501382867720267118727176246183637701238210358751953885521684051762497960381023432415513879435489037589996012078013547817499315610110614736458855651918057353323652000911668952615118095938768773614319057169812675503866421215935946699707821294636319997493047163640973053971550665134158575434870523292357525495752979582443344296899671542200232495033637005870806241402823088911430291363665915702567817162490448703254553410389849259826116385973092790489600556539668785631636603116931440311944602454654032676098065012705201279991550942073158444795591219179348536038155956370433977856070032274461041094733452468708943509504758083233555704935055856438272802229241931023473798564346784205046123841921409753189705053467220605321374982121986428540074032890774797479873318665529522614421849294953482744718933428216328711673660077864452051305904550776366864548132330019930335973183609690491814888870210704159322225195003288381315085866250247980066349471657550179573959799960602124515051739181360009692614530435033889503031603592250827500509927320887684292949052471010886348940714998652007211195996478512405511447394224351100256914511626316655915105430431203733265890783389054755293179584615262194003059354378123681240281729565705810627787471808126523553564776351500651564601306306393822719739319021073948424659595918595572797956299457149670901263638979370761191943840101481619895317844889976718002857362416468237817504351331084874479567811255754642206706609452439898376950351566023853241380870466119280657521655232519518226802298702986854618822320649114660824760452702212375249093821163615429198995565388264334745011638315171341509170393736709817914599703969015643497606442667543781465225906934143125215942184875180043478637148830172425548204345749471223102320899636594882828783410232435611865101023956276418794797695700620147891718506970091825973151396833550646879729624345568443573576627762553832745737712920300470988370708456209608086701411030463209499985438941576282654865139930747368777987669540149379396579970889251098748910349185033804262273561226221903674237780746527482350466521858220822651187174297302640805282357077827720176182429715292963713490637697686533382977757903031358939899793185724428963663478244966498709206867779996885551074369704147928896308814826359243833476954274089462422625857099796517912986266154080996053802889789994599978539522956680184488406475521913469257486163511013912933115022591948006234174453469976251908308823070131204006292380820237538375298336245027364047693196922522788316592970388536229460329219226202150800360193422850878510550234058733438694534847395061364760927666290537289073784497297969257580071532978834371472660472187024975788730166179502036316764119741355507653616789537928623685183005717762347698122973699164044753850098329484387052186822868377195958202092138568294524123011962042526820425665605642296671819506562532387515132206923891150819986583131626728569054305378053969356775004430541786389527924298260274638194237359544128646780875499889332742505384609190959117348770379177359634920707135716024800314478972681415049517376294005445705313041162995478954157136734328992634663479999821203974356783965045127548843271054793655577764347989220530441778636859921816899358651260341467152251848506775619804237617089036830992974764429087383034497632320847085895103479708173907231690038390972947035471260801365201933192048979492455410305894419556266362786105911725088729189309170040258806245364073134530214687832851071784845264421022336094289160659031182159297716020756730714786757725896666197353430234523603079741296798633494096125766611081147064123496537233344351366883988241641221310454418583512113769855643170512047088577323417270335105997567251158127336407887863747866213469807925463020932572366635570857041078170647490647631395474996762315638937425679644811604263930863051189816976979508056680657521104523046249093139999958579317933097261238923056002367567723993699550350511049022277657153195656137076507835612885494405850483129679453453684937958088259383612264142589540117124397979406166928051862984628921006359576359097264070022856570302457808686568716292509335533608608874293374228881631208536341438145050116722390691862205432857114604484139568746689178542676582891063028445773663866724364950960812538114991040750670323548510316635203530864365108899636525563730697864416292547691186487517998501334923953467465359613038513733725383799909910485683858275986764513994507544373493233037360817037843744669231261235859550772432269730479531330246621774783206150518260796217388626573501285783187583999696876026177857809325882957890440150554390368390426472646605396519957542963896271802188920753357787864001284268642820200391514390912183593827235777462511961237870666684559272486491630690171439442924146569484726463662872487741495317346079335511294603615367287945285002719293964282999491583442326306192370721426699354469509264748317677653617928905367197049462014168590578406687636809548810933783034957129810931067532615385923738572757371050963682092992827177725480519901562231912953932387569388603644894431484712013782641894506241029573028403276412256759252213963446734091501459762782179711345695909240772416301698738308406156586079257012897749436493353994047191284513661577610537832563621355339336171813819073642978101563027530201305233520319653986579740579264677762842349479444596599397195618408323810107627733617855432040202149157288130998134881539004324489859718841716593421665776287755817209329990262732668681795335847166751123157218773259785492279373699984156965508850055318962926599528617900289150010223604102527591198164605025366133191404451427312718983802293470050635569889301054186656280242927894477113819047513551258856192359603765489932560742639198710960649839683446498428791733663405564285854362471364964459874310558265683295489873098951058284574417093822832343761987793768031583618854701207910811539220088067421485421513700754116902525205309265774158076474589436580247781427859563550524671581575012559014796976269466862040370477830583833992110120218062897713714533579894972184159935942047492108216193850661121194637821904060437470528265808381811005937707236359672206860838430148565783425972671028118620261441380930006718241178069044968975732608364393993289514730239970814056406463588444448979138427540211053546257469878834973509176025681852339051536191400839093285389712196623952902426018665358272970139987837333928395266010055546420662964760360861892848720021158592382649561595023547564093880111112649409733042299587068940394620882349672442412682408080567909060125008996252139026116690483256304560434590869661856775089820163287078959394136509178435210813953614053238331512329748258314197081239724148739276691246071027206672755510411946296358025750001616500301651726459594643578783604988669645680593694008773728354262682834938709003615150904946033004526787092290125617173263963736446071368969556278621505477283404153077530292445719905872184869810845098067905598265011619483391698452609753593194936132278124446460039475081610180252261718916306750711093945394481329198911682311596607035396391454064983081140568182841082015426058529387327587162198701607225642367177304722512682818811962437372654485894136234008478442158115466945526674301864336201852066648785402950002538862586963256624652643571466146714970078656739535782217443437443743649495294045337833879205554491154559168605647176360606979977859900044945288117385425770864630765284307529491945036991655597495204621952478596428219061425086949468005589700181877870847097665051468560135448029487157888507303831560118033047889825802789172645500370507879159615431422785931273048987875228025329606017394266330277254947143142156317240473051192814604827457146513604558120671168906055208922222798773301271622978655790756986125401928763189664132277557487791150335397279704292339859368964039756047490061310289885655785597055794652103424932470575019534089207461269786556666439749329661795501948749423151041841337786279379184877980305337617168728166631703850830600081668070520373050802065307684197717325056063686687733101909192736268855158778511310231927943330924703083938665803491605999808975541582522039652024524421844338088061332422323221520728315071218714847779669922061820814875935754627377695483530957652108977742576301402056652215727429120529987557889316404255267997062681722270425741865433896860087089166571893689457071047595242944171934018681081385610492408710007599175856833919465380473547739968687898774435019288778531912069600847504947252722938975383634585273378688391701616593840090019977060718150306102997354998616349620356455207959527661485879337888884640617105345356438961904332509404566503266391386238186463380337994453586638693427650317219351199709336903686374745517585980102371081469361344321780779692197711842477959401502150470937878385592045103898942348010128983616339545351622060564027986458032316677641270415962411806290823127464522999446971972796914202998567910298097502953709565609758665194533963603940786022001168300512860894570155424698894052162563596764013839517243643539950991110307975942091946305036427011307582623915302994766997163129771384101137102309132569237076935675370214937800848772287890153928749586501630124358219173336589145355668603318670063105282367849041241535295669764268623277271502144537562717474715348329466588214584577806527484134705452916421482315570637185776045573450010576125095298351928871365418523268032002012106726966455581494009453071724595112766006607155632188252574767973957706636317097308666229939550086242976075327020305297314720969543057319664960277221871040599654343441030451206535027611642154254650118461146215056987197344165756833244044852523161893430704263002799286256510891279508347201038637928481433906193557455095664382515625477825803040784697381130380823108758996870501079996616412229073798149145104110548614070724773349783273617085714154098183078265772368664946634084727309462110295140502344241297842333963141775074962808637836456551784159273119072027745185569106486307433201814560474864212040780768354850967352176327024623107652088049904923682403145362361356858533606190925702694027469907332473139505353581750338387810273036802544080043252561100052309240973066221324114287154979560033126211467914894638657771124432387219326514481373954406455539672925819169105321698524074493593149516780065831664139975374422236725511198311473238406196350483616857026528383048542689491236329093626705260355344198556654331577436624010440512619329288250371969263051066935032602288481056676511612218407938731583048774654042648940168306202028747444423732378134115939053471932920725989645814558122130854079837441682069053786634755098659866204360351061056420150067515348548831674137067862083621630204756925305529365496041818107187243086976325357503001783288045313202921274376047576595187974396813406965559345597090859899007243039982178352956907276120323580409506342522403348350805476257380430837640796387222958971796548479712412039289188215001083874921855855863330282477422535100716410966161151572569055421923041399448767337244001731217682622704263901201267962689652579830155027952714858451492342975465131634702168039351983320135308142961491156678949699942495709671072761125942900874320720515497788808074569445076098098911711691024622469086470742866723760603008513346303720466404077221417714570137107664652744605059706488036379998421209767747972702302375274340774771158062897083047545927827284767605273771450528581697237847532353237719803143109623365841292749560475525191609683103434685721597162697338851589872570784781360326548056534566096828979054295402930633173490618451480782266603064982773226657878723659841473195894093884448446298774722637709569757265202299606597799606842257944161806210322965287097963522319028269927754919973232783149462132664133739891169993903394552687628520132153709324141906566822634631342840933066550011674359041055857641894866744622799168195899966746624616371023186504684978101521102607546457138419645517369754947637993892267510805782653163971843275328278919431609692688760583041181312572581143670055120923060468092092281956691579294959600876140769671946119140654244000484071397590982723073941533394589308543077082044852724188235407320732781888210228744438672071849893373900334088727104767413317603616380776246785297725226400574339101512539927621545190962078747120345949170538846250791501269882349159007806096300293223521462189973818402280909033486241403756309830680406212046565116066867856036219370633462938380608969259212343292116088755078603378618745282094478106523908340762606761028325177328314939731417440081663582300172227653956797434819624359978448672061692848407235692474545683428292218403347009752784288814266363553286526356772501782052606616540682447214596556440479679432109316002539230809096838377206331641827683294045430649753135632689762182982013437777284883271414785592376196339433161394035241551052138478607918980232474406370088644448234763464804865363714170398495486045454664892467787051788456397863163700033582483339725388744279854958602085413858550604444558016581428062536825322291655235042592391937394721887945578280558586705638444176677226486143117382478506122136124982649700764008100222408902672684091930654325169240679790575659113747865966065638377398934821546522508733676270614203405286021554626218955745856861971929562616716930994815421047384350530862386629663344824110293765384302582799776855157700597839634049044037142713238174287211983998457753799730143526016690501302574025965896176626968356933571790714799860974328687381273811148809421705734087255367842778636000957646383633432400825862825686404019708484531752520812988913547969466246967976211167829461282647892062238915226470834402168233155267157765349546720308284406736467575501740344901206648195842465520695291983755513721613906174028285700121021812170844854751476866006073422925759513271601797408531806889981981314443590807998509000450695194311353020475632724485387706357560349067479348307025033346218068046223524960287821487698523305268919610106339081841021763169613709147719793925724035584560343433624434010266476955230283185503137113537311409906873866063667390464099816031963199236548032877920479623189548216184334402323861277206337254873493814214084704435155517692027855719069196656480397787193792939248457359368634488144929685607395225192901372897069177592726431138606588396005972749694021042314075714166858137125826184547413705395819149398024072618360543335045485863209895711867622777437367084323935966139873060946899914217509593134479658217021875904412546505181154751457761997824687425895991096431025871142977141799303605295885420882767474193691577891196106445932841285991655502391367428818764488370099678803817202429620747297158932331617804801824847600121287762596203130862736181513272382144072111501620213719694663545660266126527371871753568239061804752468744657291585628762181585070216844292067323716823889658935028988573981897813915672920862770449437913904813557089344563517126678865502209999946846947869654120056786983168740033226027689191964442007114004270829942511590227233831768916862341352521188629986326301038967561083772010044003675223113203560874399554650793489609959867640801303980141095616581652932186699547709055204174335169601254537157390474415677500352869065709794257268323310259290359192549780077249087739740240733161850814207867334268089419529976850112916557360306028323371675722724382546978395298086363384302825150821681993664838479953367906467842156692976973827929250377728423233571545231855020392734621300007171511460991080977649456205236479141076101154880908739013861811581845973967282258228674145425547758589219708815242837453497332079324806424696086039470563497899397372978076486407259046242620749468927593496988635622723842515778919990919111724529221006015326732198548120135388828138033279439674067070440153429524907300909366097174606749811031693580874369532840122795247103484568761149207782373718488483261884051868242067893119582021287218547265868024946683766542835355677661153659937851141925583504678095727966710603038482413503095583209875459570682585704371729373177261545374742810237978370311704598752865985704557098202220196226197187883734245185522012236229899612933374206213859389599774029018388471686719196622118017865980003010889076759549679809551223092906651032161565643873568012179059672975927426458946645065985994461530392420447324009202656401694477266574653360086933859924712855425479901948366964687289261471930886063500598174526601366250662329135692951580128280219708633820385596667490536271598285155645277153693555062944112915044698433072028558373918382249030182001102992716675392992799036402934629509661738358926059084991578429087146276070298986154088269554270424569665292539158409864048522131452970280054999459659284165222178883174061072721596847557120577968777874387730406807333281443065892344024278631511625163549061808795111781358191498352206864249010948961348015268718438972778807082397304003478911760693235207595943728052397692759127068925914300583494657792957648922076242146846966710148676705859601956139239264849861985601902417136353742330467590393693650332411032006722999868818660407510313655889920692619272588951813905647646065914564520936306258715651555726506190163066338355330923172599247288128730263492533291660691372232775171292484643090507526188965834285196367592353317942281167439848458582957403738045216601642127956336028033820846017581167447359936511054840764138726859324185677901110135670957003673463477903030889371929615976301394349633140894482088397984294087113545632288983054602817909249374429733042816581507698126040097669309034221763812824771879976205595567616074581306826816845558228020921716466283023917959565537052638153363367862623634476225818817514966244902360032248913285476402271297181419113272572923487521315683086422803228461871380108897987519476120030410599465377035940600512444291527757066790536584647973598509127668391485988860322760042033071379198078155004543077980203552830780380595584325404319564322671076258073137455923666202499362146279578475215532358709131934295081679389083171912225781787326147250579025536871384024072083899512404565801925761751446825009689688990185642599173626387712165444157933245541717707567696041559407326053044245055576862217179765657085224504039353066032905180171111324048812850719007050247374737653425228493232399214612489401537730130381128917822812695874683739067380643909396840310257317294895888979440533143278851925332973630356362597312981530780783981331679713418984618629791059409446191308067232196579478958834654495031589454958897338907475926290037274212203275826194134212219032717286734162330704291310176393391528327325381692613728777943427409495074844851022471550885331483829706082821560291575185453696794724171674421282839559422698912325888625577894858522498165476865914463490293433014634676364593424598663127216219250554105865764843016332636866936853965400499092372088187022243784892542204511219905033599571839576505129926079352972296674520768909707277227301051799470569409139251332092745153219963114766139479912158643422901630723322634829687763175642430116810593816597411719989711103287102059986260132645980231422133299151730811112012112515056681994016076904130023400981633013178019692153874502058482705440425155422345606534489575579557825709354988273809392410917886633847231713944459204727475858235253852634929566225645258185215827103325516325411480058491112322492481367535437365637869772851970444304365911480120550376143297323694542915438507157620377188955635608243839268035636517047594485606862758672242465956537811426027135694774899301709978930844904413885968453273387304588996103373327878784357305004299310856958406240455953962637689869937203186039999794539131199705653356769476793628718661227029905463923890809310709465432155621761653351166804900978349745408333731400316351510333525897288193266702273863010872383696609216716723650264856627143463432615900976886959870089645694221683054910103114444396519657260711649473124730158967576784227025073368630700619909191151579575618578956052471028132335178647541725519655813587926380365084715979519094629558013207611943920962324616875498059789470898673308141572397305019230437165255445572357037578775378650065353066547041440291319191668462050725730854193958647673040109080115979275305388823718661802255638324070300154574662553431422055086119096717906215211314576064640329835088767974855816350715841208267573011085104857685558848182045658743434101769042096028038940739824304276683176018919129242731177755415894924608386987106051494260461582525899741222426510744986251804099136592463678249516567588361849656018150080128321953738138584697430870395070402911885115234249448428836730269849405638628694807512597715677658273515885140574908564810804771072947032640376783433535810269952677757948244192769372567117375261282499145506680608261021001165548686824749158094547625135002248147965566585824896848474560092261821488814602689460878700850562461956000936414679298873241023841310047398024300998333952225660783082129446782825260063473529490713762411307694448441604210752853964560940399011419769111824450849910654578639123330222349336697436402890715474695402573387517584590172574168486642925967596512577199930096531191858026569482863207219784774958966750497839604264854397155291930080973113115089618430277794761727953407230862299585702018276419741550338877733290603623693928345907660707487943205622157447564211050155911439808164863781061143063366445583064051718016817203883330426927684844764618457598684016993229212343183178860706085708744898851174982759525911942334139683322279147637827059023636553507310651870746411504721177586531352196759154912287486055434174858514375097731842573631084697811182279580733352739676964701106705937745765194788358898203655146502319215414918464384869221677973400682069611429511960532972650053283680299724785379303583830225482041855992864462861430841647653513325553006698547827063027940995636569863234859277120709403533306050625285159853442215330750747178514686516622617400381627858485342775309090670749967108182674865580021820825722465015804697713349897965856165424788552122634310342534694402553681619738965627387139965213476216146413622488323425260434829529703187451350153185822346596448030338568814314263574029935528298817151677722076245631246935189550187400414525464107929922412785963851202248214774859968099121640992790831692626334046565246543237217731524438494656174671206421652773351000886411021144521347148664059582499414418319750423035892146430230447230201223507413754198779680278175173223908651762929644839901633058617138999231806900539824750656658108764466592610983205680433251252000753047891800895072822456876354817696992013124219383069258842221655912291524371163878881418138316859376206515557993915145713165716777762778124161151219855366320583774867718735276527950125960600360404719615787372312888309965632476669114331114914726910381256324434402239187022508764602648771627354093121328644113388993214980351278666782614374424045510880283634544273651588389202242970066414070026245745660077771205493336065598290564796857096975835545007317721420557197014025276749631273895917252337642487223238218395061672135048365770219307342379892265595664340278373425969477291968563331268473227627401174076366315728704897583280778828288899515437207153282715145082484137944874925134745084097339438634966670479852351939345128441045717867451262467028809284074791098823270057938867590920649842615127120906376756737685966888699131673664023347361212318016792518028997860256019118016686287388944567470022576959763051619244008258484842198080123013566898772536718305350232757984725953343767310268356794563161455923381996530909088862797595389072187161290722029630646281916339243935636475916828225177682531843582693808313296912485631584699732632921005901931345334570735871708954732239177649899753619518966441200424614858842453273566018675421353110089309261851652885197979314236979834951683501536046002023126776031029093858113840227792412142909883992802882650003608498860653140503138237935113037162244532372399031373290243373290210394439632684729538018180135787927559715508177918992868751587870837729042615196671869245408789657251885915941863253469581568778801124846908836548507915491452422041086761383607201210730110855595096618100525174287229697159852830678444382433277348266675405917767250685623188619362477049338515599858259145260152566572153678785586446502893651373464826420322631963469153433118877659398716958730314471115787259533841892012420007631063894029273863021831667024045911251539859473701928854676351799483784418718289970318140252146995417121693887862084844495536280203059930772613369497182618636714309234704978768706521694210762559178825016934036535735007426081086454730463040465738431248713040576166208038198639859813145264260001815830040153181551971553112630244425493003481696319221165101662675119660365505380309800097300941868381771128057046457100821800077114279039735486818263262070506988672572956993248243888790626433202316258568750081096666165451636148902451344931421704036785750790485360890072762347016544163785525034694666552107366811790075685351569822308413007206774175012574584772476234644223588630179606915206373439899457689355790051123796098356989327832927164711042325618161636677053510999216380320770850490114483210337721618541796436719611777529121334950783369326913111571051749398448532616331228467242974916435103466836799928920596251013325795499641699403238193169742874987896546725084480020605478660528718059458898868862598700076301620142534880813820121964435807900528921918073091275895538713103408342277131973703708711403517058550737307171153066098663496060207230524502502061408082272903769371624153231356723751058604618369970741096499078670588988089805971610434561314468573108007486131945141852258125870734177277700836482994492771637764843956670542380795858811123839898520840323281628639904336541070615185496087549260661981375656853929139101265290926583944147115375975105519895016782511621110079463542631316764710958343438355693103321945259487859413719473522456171051380490776095197098377824921052052972363613514778764320496680790708143518190268809232431323074946228607625504649569819402138388631263167229621986583828284413478115156267704257889827446321657412000654895428980129658167498358106937560246200666864371897015369343699839262115779762929355260186644587746328868991618270217157418762324217143601866330710697675171024061823589510771043293826008905624490399202495125723843769655077575352211011516863199850745475524831020308752543112236961973411841040260123298625283370227171138770950632385879855916280737485917939765085051816510833839834989996702743290251659512949199848116108109847426666652337020476638234731494009515794974298640751584558954747944324543084247430743284034139702131781824804183606354511462884941415292840095210942808722029054536840473479260784985913994169693106396206994550972457810366149340437322594596620196134052740007259292848867979496973135359183397123915715210060107834838081734595391220222482551570772108439688118228194081820371857374940927424895444906360336814653424438603744351243288887148806821495475913579143351812979216338839441704019194781221133842052666430450668532818077368350131778663330679213761392346772505779129999376653315311261643774879492463404931686074361623404711080041366364480935529933100840738466919106753889913655712975401046323541320692456787804148094409278829659331389078755935986296291274102341524860201209108610832626864456518424817324908376174336132059299240407628721670447516392144656209654854672139516245471858320876233236315542319892077185059424655072894214084022657604350087670195938174096888558098251651198247776597059513902193659929393189468571387061199887170867530304979022166488052120618318712896399611176831225775743637377948256237259750368022285528273448832799626517506626597319403958083156512960739112025515909019856462625471840699999588856663879317487401876643074582627365105945782744172047943480024598154570793429681022130895932820837096381226704167314615536548688304983803255316155167684422535499737288738998040149532816250241372178404510627202073694476618793126353110311282450949118114309573787131759005602068006125357484875699915295298022161178919388910966603785629959502264586647704658819440877465713018586055760835558016206109936994494312952861479031486777210241546266657839918684981925106169014905387104644702245178773841604966651754206186841666065113954768233776411947495362041273168613007479550937781071069741891671327421719089934217871060219159614293592674340759941880149316499167591247723348384878268237312386731774970824498506171509042314004289295791400585367943350302350589306275356107653654843573863075025631265884044037759931347080357440917836418137348024686837335770552798610325531529053490836498106432110059759527614885778147717023766629423117465834899990187759234288634682264596492556360099080531434786188547241194292884561424281488662706361567007267416583954624188875070260909836805052747893834664277413831991578375510237502172280292358155566415771362730119172841778861181233464822109206833961352439661934961134078297790094500561703925238225434958887214313141206759725066140173485208449117499221998875161661336824794935745551603907435186533281801683435106532243143940121543813181813038776361248424396580108616434367917037303406885638644073646024133960667339933769861665961964157622622575771843120548766639374693237213799350744934483431221277834547781794339224115789757593287786404039937147223225049396508308070825100022741059380622141436964291697119217031985619133404074696046082499071627558968574582867083078729331243798569122483616381220944990542871191164527027563536384739415736449026963390526858223447485915497617003242396485958319262717666125937932362638425416710586471605785915448749521502484042060336745643423682548634921530116270862140008465089341160567805908916599854802847187839472002342270472463416969225150981290782552959471613552703581141597563750570432412555128032648401769956316594675520669080265119640596264219619923323380043263437611295972826555882735198050224714208746275879421227701965656491498459668195196550954023541815528477371021469604041658658024742473544413659941909770576708283936137040716945715524714279689822346228293401453971188564707696399411775048496086238680626881901003199644934580991444068425982521341377721160251070939215240237752318878000941972725538366890084251891080438787293080040481979792738641538363716700956406426628081198342085352229249225892235227918056053814989881241036511179948534433338957606571129530380123210617129390602149492300243785573169268404196777400023130367673312195637726610242720698076046955742436085450245859264955080322461853560929595403910391490297976970104886869571040449415320543170421110705108207215932119969214762415786793072792405958733574442307257067835927284776887690037796632098505439395756600535475387333947090751227744001403826657768292653302392406391418006166384832572023700423044671046995094614093081114715129082417555396140502346034481028436584682103828977724979218800459891417186307746318323165249777895093239819180787034229126909888499776432037282345986131503798355955414666520416942410546186182613574940231007889346614550235709881166325105348800394010957843680381121809800472365733149573846338899139451353447607566254263251344871799695367989755234802783762723233118844000703907794506339175500749563722330012183365488652254026404652501904856369268056837122443771257498670888795637326404043937341720712177515126438991136171942715318847340351936923616968086188423444599486239106520717579357974931219679674317007533261630416023420619142017164356124973730440011523434488690516572299016694171981519887232399797969456396223922899597691657383955640762908304155530747851547510168157243037723203364500764070643020150990318786118018959535870673315091562427999065720118329473905807609099513598061167902704996458806538473637609705105494879290813999237401847456424654162728007161325659762672376981543065970235876189477424607179797285551072820843638022024189416010745684562221801832191051018226042944335307585414040174848043273532542556010265833375051278299203501332410591205531572834053045011414201738390263778455430069406732612370966746856679832507008786402107254850775396040544168826733588871862147977897785383417528443208052836158664033729001966393411638536391327562288097446517902615158695601026438280103889737849988447201913838128085136078093650595935722796986259296745768914600344778481904354395606365605577689765120298852663966517401527643295188411966403910085765685510600286784842274747746325542348301010051797654007663461715631966493834124455706992879883381618959942990994684855938281952181351044752204093008418263129586763225820263812619133857679181660840971976128947295283809897162214347537582807526724922089325672934933522586887054878934476860155398088754445051709148340374112976477755172667306208307785500652444024453883600526335799366907998302027423552077311544883991012952511010041564486291380033711771166184297012665510144404637539586857499364756392780449928365705078067440576899124201114981320470620392029311714900390843532100440517788907105933564360510419227324120831682300634204880281610296160226897258186778971915303510749386158767121395972080298388129282749554182928083805448871254029518270902396694138516905472531259621316620016640924302710078785126826353421648157323793031645833787605932829801619006328453151070869754237333542562495030242160690817345194305510300153612721898568252113637554707238946316703058848909550677256869176496088330789564191469962330089686079199654909192391056296609357669647424554444766161654834109758129727268948375881540419034922669769439480299468796629284488129567311634143258613499297975049030026979533340631928271980264357711146560943443931166551345564911207387464989982577261144999211856880291163301283943940858250020533660023561482772311977721879282041282326656825494700843043030810766067147047401849217735814857316070912018687323390847220271531094391307603246260363946782854349134304835777267166272376749375473172336138997445879506748234346402413722782705076620841251567294169566843286821885053647561334653496260618610207278677354344084173199939978660031879761396896571499870839944771046326387242331698523854914629572582507577056825039831268147657042055677225923441139205964875354006909036345174048426433264941487353323018971709500957027980982702509221432107662301305428512552974361952430950038196909312366162955005243485091238482028041358489943181394385269420788590414670002422311224266229694486150595801512470042165193664787274853199856042517103580127651763305036219076050127009197666109023145685211194426878839247322967049141828918683422601816581006242984817576904913560210063567977722051829673750089432777923745488045631947530456479326150691984638894261581960762161175214352172187397853357178199306515885288093461028159487298467486677987164841498675054898479693698546526916246901829115493295303747425350280693973241004729277270999744300318587339670536217624039744303602980913639361537927911716183435702066978234710196538079069232236383027627034639389940567432480689877023509726453387458873649450552851450203480405745212198175677536022330117858580017273903433941955240575314974744357065850390631037519859788633034361727554349994143434683850308561897957629872525647874552590157627548996633388536551651780394796767277731566007007416846140173157025981467595152858566951188568589045773417782810194507832518814480210247264576649582404651920755840462180125314079698663893625233765799490759005622261470483422144976133286601028113567328727431527250881029717213831438231748649044865062949843279100344739278429818579344549307320993890395276583453735210010963401822249206430332582253360627398596354525815559786444915506797746123776415171939817732347186691449725519431980241417125435388871073367278142124336434730711521040365872981745481642302104662753330822932441402002590634354158218357676817209637219040801368427436472994424748341771481687434344815632560516861826972323544472145265272557071946010415613280203889743345601538673402756655188874094396496704278208541500384234562866071081826572856067756416073562858606595639563517548826964543085071091883796270990086555107643074277419727332934922329611428461545188900346174944116853728370565236452251354925762980674518013318155925167150059290434949263574254480980369007851117489454854786666241327028601943797558309201502426127988826400553812799677360111109335123388962052321795003276293214309068327561751608515344408311719856094329466437266803244574673231178541853230572496992411066381254300822486543871307645267694652234059036388151033088533473863012390389320656804785294204457850930450592420622413919778772887919161550057514261123043359677812286543948543418783870830772818672181802066949159921560748161413684539422657271004513494365965125590394596973042127734442082966675776469075491272898877649918354485972042851262234698130702730936381515130771879609616256124019559961905830150992286713278170067198448269677013132322444834346200925581613883651411296357860211635775413508222581649314018825141165983570810316886557047295308509114005446730552691272629577375291231492126068066418574271712553458225810899846418743698577391899951338165120208679226530838539211034324368408256886591137990830282634443890285494707500657604116917748552606627722004951663260912230223903519789284755309909817819147099948264968469648467714101786840189152218552238112274645586238173673840046075122128903136979234631104909659435645071362366161026709963397657684178138429339314163701675994666559782218780903066824916960957268314167907780316700007355068462406905225595996785187911831801066419556754897089785099206205989633088030074787103186035960887069270019309018886410932781746275015935451362332418340526134986157011803998421792893386071282553525533557337689931155397541351137382507401456736353574357415627625076547896158394256754012993880855330141559389452333453677392309032691368707678040036481788548090946324404808451359320542481594990062202348169274763486183770866168674481034588097023456086842614234408655049778088290900168105738855241465512902958523331340948716950453897575653851291827629901930490922207102093768434449753897823569156007862563535660745557710197644603582528260907805534131961345105799628984521810494064951713532035929347828351252922224120880149667410265033324090227921290212904862783674487031611839057012841904198540164245702989132473871503004403761255495627935815559005503199757901126831169853755320413423580632096823824358639175872797459923051478913902864083386344174808473764098735794325988028238506533939354053549261304212353862683568742771445936893997336418127283679983692294408199473785119267878023127032478701312806736046372270210286904708422154919846792923649110122607734871969940504606537425971608849393758334731648223453256984960246091959051272538601221984993048397773718198134299469714083981822179127105724499194064067922413423554743164135906581743284347581915782981466136891913834227459642381784894360538906555852316192740020776425098024857003615092912894565425604457111395947797949514153559702033256155133101803050604579890889219467412366598597031814396728104206251571715801648528819020763974631206263072851615967036442864840740136005465096816970992888799902752469624545061374091016091846151791597917691316686171907271307930487440886440809678541852263476103679034498877842932575206950378593314777889945665058777365989300870858294073935192754700548614284016840444194006573983550829437410696062658786968575641249777802592608668747179282267549278309168244021182936164202387270208224616086453262242768219102745219466026219416723441463820298961544402983153724544533444262172947346788416434542891539275338650238501541663362973243383740503958611971424753179675758564791394368193126181511747006265977626184729637230867538753641602235353662864580307323937405627115551268879968506439490361749992794722489514471833595832450996593537678519298940897297111069651955213425264235511494144168291745186280112551466772971280713057717917170848696981580323445242797269980205181833588308993802945867183895120202343276947678980587896759597809407001860996794129480987160192118682612423567206574312550980400862193110735617606189265910078096329731567142093577565199774628217094480807985941003629509492881207968573873201847843734567461277575178766597220219990147309222556244317730991210153282143398795169804357537192172409188613507397633250882584385331011563945340474821740285827545408892831019198197394160850202781486980657991282757441166196240570591213236121374361143990617414511432767011280805470798285026975831440934950078497725226554654059571421049249124131460001061674963256982315073757858675755880767450642062326519105431250284467085766133960436131037908193546655584346191247148202012604010270268973469147993604439520162356156854174424797514500475605167495624323844191587584144223442902360676265682585324242767740900817191176242514023924002629025493289804434151792152353170056000524140784996493495801282265180421084360691686464152733492907685269397742544956211127418850552677707425468350510795999541256222274139577738570408142983662345580373600306231807256179168953797409579564675852400196206905941695407485433006462082144140358957927524149609628278058523275665977121705890933015159113612931746589970237176091526550440225995072554027427379765884464584199554713623259684075272256767340149423795399602995278549376414416212437962084486624776257633155202431851150716423560154530933410960726071968624816116390020883556953097792857164202425931918758092120892679845568340678245971434635118451901806946740602795515728340770810715654586006911309121392483950035487190001361311741573586269774818479223537868455359732885631640255566113491918628527533638541236657336287189452286109119184882978313564680546361026123963133982812474081396102886675129575826437916017545006995960988051963249813241813216914995030355118540390633682024622189810150170832322012943049188635754496098501315799713278009444716220500292417786761616561801853361443042219621844762358373381493273069696490594428143997417095393272609249757933100334943617477318893947684677317428010484400082483123062536108858691000136977893657223283549324668359460832491100788507287477644510173235907444109786442355245144512048023953504293800599820051457653202618924756236442160585048998934727960165980382790823754529516240701080880567978236269404605835659270640407939105174544424073425068402492652117443616397922354199146436772078087479088665413949677699890182567484726771329879162143368611578493756476126996178428085430249264437736306190260289200381000240488966176396145873616407117544240551004143143286396473610477894869617969326238377414764154740636177515286276348480986694404984119516858565269263357185317123145606929400547137490151113753675922302137183401848833754988380619967872552231394479002291829975901781492070677688974928840972851244320099937642780936432486564439738239679595177787856696503349530436269748638856117600340433579434174540928910062963662524047795707461125961302964337950785375607694009706293702073690449589154813811029837727217988448626309167194923447943934799981084440503946632062648144177915550996051205139139059718256614883048209969965940714842707404773287424709468064458889291548617153706242236658402388698125197198227834626293984617918722909290664117316738586470586079031628445105088252152849151312467035796296800855605300425430167018837136158209480940993996970288481364450433983336066115482325749439974638005864399765866889314218848791746111880684131790433516916053202854399447504592627730690199305760919694342774205503064399401733246425068339245022192739799053708664979957849789175456696324606734745178502412650242663681093440178710788370640109124430528923483509109005827483063769080051549009034442175182334878978740523685808179139604285439531033282105321549851143712324295818176863464309225627226390627825204355470874900378589489863767161991083559476751445861373125950440871321421528435641921717388364046949247685900145576025401065091558612429325482436204143322330256730402820833600614989471164288738265309947344327489075439784370842255461311957389327394893751425564786125678194357771139626258424425884257248727538627161366394704031880999413043580046419269819126667842210970395381716373017199129200844178070095571588376797924876831225930985164881494218494511105929736884291842842113114423851552974713384830708644053228091176180791059749662592380241094638039336870145685168902402170048466246134962665619642334789209918125506892376911584614436989250590423473579370954019484777491155938174713575917588682338445621411774797030870398696335227381180631538122024238561323975672169783061175065134688807576889743670481909832868838454592330944559550333807556559248395911671275036232992941855487191298843109769897441137888517935566726905241690933018343936042367846208273617665334914210853654010258118306988672924352055316324684308053870843191742220685456225223578708620972897494288953134579591920143719141284219972718607845675194654618145618576425338131608983459078723591608209125367655541076324299888938609333182345185105014035470092961695861893609335851872643545234097457210228821785793888988725524428114587193984448338237493532233086246388766313132783580144072439914970339834257435575390928945487047015208149127138409177277162539537014468682832176265746936853195532420988728472742844590984446536126991650168623899113269628280694579454633398393668210123577273053760330826907276604715561270708311871104845137112522089723309186683378281027094335131480092022070094547515626213616799635779276076345580275466126430686088510823934157932462728652664810067209766221868148577910188940552725282795307242666238884093908832526741744850594122078581738281545319807147215651721162173502736623057887489526911209022198331113581357028614846948399562912735688274996369551045320955614082908369925351607533500515861917915152914524942132379735713816093407177998559068532156496433578581350759700987027506794058242079481037614919657288066100495250662293092141986415829937707476236496554557949513554126084394993813587759312949957602573197942420624168173787984858401909195779749453031161497711397882381879684968210696274918027193925126123188636543600465971603382049042017732953557141225768376111878897359474261959681168604650557275768986936700680280075580743244777183555777372181854562948063576847334899360551152732626352917842856743228956009187609082459895410225789996642788424918014485670930051660573543629188515377556652590491140421155456825292274722892315808931477000882447821425289719981253029767056101047002701990895367960969093765506534733327464898908998027794869657485661875948367223857218670447302066144753069367728056109273706168436245936475755731020195849801882263962486574159895928762172048146287732828818499891588858814922140548738894434992505394462141081814672724357400422079496369435981097416032661498547492218703752079715739256850987508219873990705697895125921126678758556905175703016670941194727085528827129451664555095796406156145731369088029766456923821199261727543240970528091555884815690658894914391530020422792282811370348802499319407439871873442463230130827417933503902597319770305501041310978997813066342320139796999910547893683302011351659509671004426354729393438393604455695031332478171785653258414692661924776073860369325735372185500196522988895255676292521403527484030266796362895933399829052997909638608354001525600888733857204910105176671391773683975360272421705941529513815868990518118648801559053261752690388759750388140935621031731752381185207800879091657386962129997209420471617399886100259041671855868236874198340047961447877540240966364376555373951081951976703180398287799201579798565970448949974371899738960181833306136779029183171118028969594105326724861936065174171131105154629065485582136991099938104313884383623884156676444042439651696071291139118226934354535090178388755446355228233160988158341049898284665358630209637100686078755825959715807616862457682486233230720764032749361642291973107459926230563937840182588524023647913287225721601500449125749407038917673480892257729481928353610726426110701287078312802861768692550938902876887299080281321494679789157989998645593575559327486123241662040614186847518726866332948840455371671947851723318556295950450394459336876212602954497676238003656667087712631329502226745192437384631648559307339750968732167715686382677081340812753681576465236227624967810045774867935665276432643544334222343812248459433845922695045635349680509846306086172341296283408589945557126759023327623884317155073985593334645669255104078707423531206602713563369510533497507703831755399070082356391283937325345100932429565043800955950627110832105291221658629471245076232095712155648012247321062214705202810782794089394677587036555886531682362945700018478661304961626881479507281935794503794000245508665859385903510571972551681259446035199490231881833902536255347988449851988758336006110905381004716458085791530929138429856442708455960927970261966455314404045767689669926877513884970057690258181129766106937680627522453423431507998956948839457258439705668825842469936065140308030207841927453935586436280765625238113979875912249944794510691226205880372067759699753451261600736924128767326971089216668757757173901829083462000332750778737156586242294721579294964772142602404057397986404549578568267104710761774739878151929964788069323594981490021031212913267466027299246135739234848221733736276210263757251348846925452765954071283438890472860737961345696539723438532238350511886149209846796708387044148090573010746958712271247981974125799292848662701801881366794751410622550114513013637473369556330004722611572862873125593477424906480078516672422371007882974869521980229645699997728231813078944635645833227828994681060905503191703844376747008389163398074724694691344269308611264881320095816190040519234834725143703570202000012815498621396604026041990541904711637449670420214250902248718703535556017347973207627511136411162394092002610028531862185189170825501426932165150441461134949576915190150259785013960424891704355237585905166185452740928631478793331734228948248265608780413276109865452321722037153433374792064470332761918862287331516957886993850678048010818945063754680506586029821536502812557055408776401798557892611402689696068638069128383716994763462639932441985317553993303129434238777840952073486461435635147596907956242750030113152512983404912251965642232486055495010078390562554986989832703565421768758190960429805161574375905669894524626268799189089567243922688134456759376172656591667874047860585135725240993702400749378078417196843991612723769623488243979039060287463713858514775157974382034502193420520824067057177411768971152088162677827378156940330465051638650182307777478535917152741294946756444372498845050356025216033891047206775855344455262791182060509722150460673530100073208855671975332466875727141196319367298321446463579543864354104499021361129349660774545480649373551163838560266919647480475861821201349312625113408391259100180975256911986021335508457800157842236703665405891298403006131930993559959326655073319670431521579502811690943348610157556000208497584119900272112801525926514568801230365243912772119751514919010278015170098039122118549010098601913744707452025242602701455989310095466671867630186241768015013719541677168960433380992774960450593961676424683930119871630192501912144984232954394322136870012703695367712769145204984934504153925896143241453682546350872243910779984781935115945461883155887439090303342347678522005928897778383227647665243678929666888649694854052161790791388678210120403228700294354035402741536119360897446047947961296735280800225198733520403751757522481459733793361360204568145575779025406234227335856185537327162726106526448257773767224414801406623315328624540722323731920407138223825381727718514968809361772675993179101145287374391968520636548976662702471604373868344340888842657410411723927756420888745567816481575240563526931452205039458828526436822131717895207629833377941621197873087672126925803192414327285887202123260322929340883252608038468771257806708628955149268531744756161542356554996114871953140649823066179158017316339336857562442855091250851128781169214087726816473556160510349544969891636656100442061089291680427328218687518828420195579516681370643677408324021616816660626938924062531193542078402610084830534320549116910007521101202993061255732536572360374691147771209943998776494541714773765064955439718905230267442540552194470264910691440434805600289985157847646143445687889336880964828587905014293433139378525376225673053248981148046393566003848663852398917290672785587984404163660425073095364820003445075960229174342695597974455744892085194766897206586608541510086863784069159475197071286672577242239683592682982893332146475262435198572468497577601979256331733471448338194317169131765651827606971728996442185741770612312106244778995399415616349061897058022500011598344031218053779025754614198970229925541375023564971388860806790460883569242699304955657265313006272402533554329194291647136470046140670714324159255388242460545980829490272004610644014371483522186283336671407963588364127042091714995209595707259936000288741868465681793245978163998364299032262879274499974149101727886126180061468332983230236817743320750513360024678523566362189241588483713346819804152772999231319791228048470112566003475191145431037264339401761222979285013051056935184712260429708474955040340572016571967763023073352995644570513159529792345391365485222955732589057233341923287572302656657390095887379770571100984556044923606843816417019012622085238533854747389331301843033102945070475058654731477999723744950373318559368116000785313107082798836756124012182821250857733024240702601801628648676495658575821322036204827129220910155012278076854137641718964973548711041054529405760963298489951228254066827089048456506376984790803056301947642729967483153870151816949873844617552901027216640610511723974635883656145766482000402816750970290904285182742032792690421994257845589245463677438134932195463456567439538467977102930814421513361435606646545515949293707964813279121587664786623960623125035122057394867142917850035094090633007764046850243827214864884650089770485196817181201435618586170105092165617898651208184521484543946334969102419491972931449645220374101424696471728084858472941359461268728924625220415561422559445424781713305861628305219701421419171118756612198382279100272008647611983341471847421146432653236182382360806323134663613660776857315405102797679887224149942612798602720396221366910566867129339418820751554440917691804088198478464422536388838702472087414008105079557321371897446997730779915628690557191124511720178528031965564423788729602128577434009019603953645961470938083860687670534623269728171863541140673286656493176158555182576354662138389238785399175421367662670294795936675908565212554684097218145239193764743894722153210469578868964719828934709114372845057936755589449561699079777787653934725390149674896129688055750122790400956651184702928391843362443176447806408358932039608334562543875829732343531754179001362806451171878306069743450138710463778448860679373673227230377666716695914395522046532292757445409464936576755482479924881255196932141015069223605141712177679381017118467435472718805276098841473494145043104953662956486665266092126858184737307520987246226067055358082627635505368477634249235177418036176706115780563581045558690313498626800121430648978321047836275246499135111443194651635726982060752823039590957120035096994104993780368453447159774984749929528757404387213336641126520990058148052670022020520174471771054638074495224812013228106818617213511103245502876036376864142981329365372471931798297673881098544786783062372515954829625807924680562747490462466087951053558882634684132713079161998769980357262921380150747396192077634486784979432931993337606122466466023253955885006056184998379488504066542907690963876246577796085412560255053921583299343869221658889196412143925349307960124485767065243881063212265503441451088119484556600576496640819331754260268085013179351867113876281485266551708272334308108440251119121315487482632068959752395072919632450148224493918361426628998401560485817796949656022261903791215426999658864904830961260431400620490000731435341229257468101931282000782979870809532486111378270605801160956928719571057659206547924039539556199518759386646597346808423539951424512997395828880868430751599608046866829073383640158369930627782880842803198350314432722220250603195573958636013103215177147698783863649025451045784808137927461772759630384318428284666280136489841075743205138180790508954154498029450452385371411382441253124998433082699254062613952111362639169082880705935872262725256378838839661554887594727799256233094948131036852974665481534587046544756587660115795754042723419721536194338521134702994247359987708243352226588565021171015435221353460743515274284703915792141886191492074931823044919139814848452416923673427940232008929276650627209509996986815364912905133937335141122875085676505061560094845525591347439537056327266773376014575227696996137591300307217925218979430117251326848025737835349595168605084042920928338490957572335704514114314716516068012074734197741653472645253359400974462753998931285038116800462434061523649981928024581517566724549647526078144810013229921188972717128368596162884492704654376173384268909545242560492231902448413336289954622497926064514836401318448472092967794882909036520082640332880292315169774655745272464564984877527409343153153157245026522798589193425731906627245323340342845960841276666351248393152922565216482766636664017480812238023295125129768047596668384183992517478586243880589374357409753561724095488855744520088138039430257736647436384428922486194030683701457121192708143506733404620910838903582076496161494006984284977562723783070655010275515540615381858627005225683024459956552105093996300986101772353806806496310356827582555155470855007546420958323285511727119746496450760709140060237326265754926685584379588978735617829743061677755383994446560749039979672428246792390747401880635529854580580954312901230843195276300475208347076444831570700200893522210621676104620408283789898283815883379255687103391747798494727488745682198705883850548947357831486685040855955396136481889504511921040577764389254416492604855965582373138454426133318537711369106505124725412488354358072963472507035421747997976985091469451718227866738568849294982871297360822967755278062213399506091261471031794599341849467523190255953448703105133736669435984784493640950689518215562111542183623903873313455818812904064141533650514693946961883706223108212592027169434628809601848084506383241039758781175130750706638632683252483396386646905145386870809592108725670965619758628835445408216465477597597156051889258268219264389089323504586929362932575717424170861619096128303689020960318835923046761600209165475550916848609156762848991604925203411690582131043020125860161312926436857417589163203470050531998069433204729646195142965380592004700645971747522083142723241325396327018908347592709991080057120072093350646536650276916034399383707138503692738805236908591430451655165669151271207551065633484432610640415468866058523402530054402602057461837985056796826996523576007129917901267237851164015777749162499914168900167401212955007117235674210059422252911365630142368699090534110422248157364569449995311611654820360202466438713616202481935868690244751405396871092190734572550250656843239224694237871202502473223935493649417259688189811380321253903039797816461687591270012095383914890082552828293450593500666365439003772225558991011077282215588050778099158953685263947134737893465121576406336659513707263736491138331692306766354790142450237235471307537218568366747746303325999465680685591859861648520409179827062485271935798428327211454687924375997120114325933405053806796563988281889140867568633082723892626686838716141577401561915726981272692092392831453818652228193115682582490505114134292973545108786944968965843672015300340249837867866862085024008861239312632894582357441247720346278029846365051178591226200513793914238014678618841039127747016335839663169625126743788223451127929826984023468737638887180003999427609863489334734086120917592263584491182808386488189185689028644174791631718775250164765629638301041084712877079764657752938670565900367129550602861759442871087484725423015688466649242481973049986655424703003544282567955133637012890030953108505304099876445205458744291877954851476172238078009726668216017578525263158254435530761485799398253155812544422791758956261550134241942235323859437703973315735343359302805369168766332739115170149297778414182666027178252547579021049061338747340901268411228849015626470867966110944316583031963449451734269757869712361399718988428868804918303554503336667467797888980032058339185248777952511400293290634976136583225245434571588943938036652984882059102540806485736715501752395429785196814245798894755631609900805032815567826740285983193407742168969523916992189689739518458101890916654674386702631811874227043613093915438869578425100913542487264058261829173356712906479137108809512640571874700237918266729923973650091424376514983692665148360362940371420551755063080967044613833350055277059228103375230445372570238354201357432449667640468662645497471915751782220060685740275472908065921752026665617001638723145844492816410029809916635714697789975289788893281958318595223375704026292398724776656416788316269349266239412544009955287759961848181180256777860884435085144036013752625065884636160248248874908443146229350607930626350643816144244886175570040899670388920131062337131030402450113248926374943677700196355952171980295674857063470037935426165276754931113407886778031205981028738146166165052660871619712459345801098604947849038172847660052796527882930563316704277276043949389506658599985380449508473064703641735770232582367968612657880140790215528594223142366213180471521008433908097157497000492028627756451824949252356775494707300999419885442695284430962958833619199499220077988656366886808911601846924463604919253973441340919646130085450830127388340398789595267048688878047216392767880932725727325895700665781573561340138498804013356938853922882700829105918439823116756292724809980606238878643706868823083207461914920289716905593940130415908980310127777679812367502017942692902961250458427065883632308362825935083825724766843221465918014946140844330190973085893614917667728523814779253758503839586559024484164633698482445556379791684054299490737010682717889743784412063074805676469362362675993144752238337055274800132713676510206082090320016256244482121654124372959283886281767167910638154407670795603895204768776500346986948185640643213766423458181974288382287704976250083608611639616165123251558969319092043615702176167535062130107932994981610359394991127597904499857770601166273138072821738897142562892801991290524252338224901595837690863497655662063732225287893999004028308129883727849822778890566808128572562121086850896783086015306024950566492643596861688206967210095233312230598734055586954745122347313176878741729946593917459428423306978357810926396622528559802150284392522514031531255268690336474168371725745978698898862348726691929210809044758328304163593407864745974530530523711881178935632029111556807636794360818994802036605103554206482247808226061936943629653476536808632054839376060877626754002159619910178313220409625298749662552691752697514668540923188434085608450554129511667457745496061065242299889968381082856221164638886332307571997076717876917387857436066678964208772479520328073047599008860682508963468540260740496623154558052105579409955603214061946358142994280862621403163648073166783615978029704384155454068386072447790666320280992772860216948795433868334835642336254730428450695115586780885290973325833439258933380035579906478618668830481400221087074221689016755898591268272572261501901437568352852137053879297607550626535938243682263269797905094539662032793396921184763428978894414751807222056784274844881473513702720605461754339529130478055636720459437068332560061895276517687763442714020429632520668269019122541182623915150790730484144974957674090279694878372553355077770116405503152831058594303490479210471584323132065753284857904597667825279147254303623322217241455911759463402618247626899784229879328447424712253555876933549105612834128089905584109782794390120628872294588293958140509157378401077429135463600122680894821531343661879668483133056828192838480784960306292711897854922929678823827209091668890586035615230878583005588016375093046805783841381479590185194744987716637645825880084019847764612641485112982512171571872574592775053388127164221470674325422648820674549525976765149480159756298647578093301808613275296759188573864025610843343624802623638130791336712898964291357213726653874644949656536381397081695621267469415541869276231269847370800641229016991816839545267328721523361933303648013263470620928030513478034024726491984331924360807481733218259498321829879602254899730725449091826790472558566772001052303530658024451537942015587359471725909771818459091312100302983872565415261571641230891062242376344841532965428773029236021704471149316366222591069946547266878001350723541103475594408685390211027870792853204129460570456725516726846132635035017462506456891858313264830948002307049043708717888669941266202132571481770732173679978272468597390064327093773689801346100366482290868673764534666648106342876065380340875155189349253860232500071856954634686633727401759739785630642844636586859570866628541987018829357140646057734237007151863956461696410309898697007069896328665549707982734709246218011925211789547072465898251290033064170193325894221411380831442279850334441148149086520395252241241902917814180754768318437347422606789430568258964986479435972845667624774617209970786254036858783167199708650032345548693247181053604244060995929816235957761223927929264055764437341645772023606346424548916819005347857925909362373662672055456820587997565338863138786060269014911860004648740847212745352976625542379218014912908430881360118227147014356243971037166734434127102498053650055106903924679265598990704570888763251775024713260298028239957978460134528516042067532961489527863185077570709143349051472156296123008234207837885217547210077736390291013961706416691761564866648366479010216258453547285872991968333584739828325529933124162383564904722937752830187260199879374319129802379844239352366113669839487210685382257951840859564319821605868818564707277083797315934437635899224971365777724323633859170882279151039869085362211192202697105556992125682580527056651963872278349819706272546678206849447581437082998541427708459839681028475053542432573699669425222310923565186869220842426601296747843433161844049181364349899482683044145306762142249410868952401667690357221292216770929684735025898476892237626555011862756468635763968477015394741712095258098402597400788549956415403791025813297016236799240091865622367652438573626729094019741482997735500066174528855873050428605454682206416775957260529701464989717626335436965442412941962332583125229217251774372628083670452253853535256558453346355619948803723212817892287536944165628184321628706174401658443469510654527212430126582265154257794378134683302203374404753750355095156957514923784171830225446853610152450556699107151737751737131321123285088979827100022234464767213508618832930123830137306538888934835995161050116251570768101072935809740401054379036217437670664881219801574780512895197464173462493450618433227897900448439287226245250332932966886055592105807640320588311010224267276663124244201798625174308030132538759354326004077780417847064859696695413206851248811501309108672002558186966749819983560488301686834869010865656342283334472306713552933624915311251251705383262751291520423697728265888959919119152111225607867317398850159188637468590912321133726962741265742336580242695800479639803909773210181186614818138466931646098940552827845718389247732013839893957065626008337426750179581252661981057685376401718623003839824634595568935732800416035473751175635548518792257187104963226812424188674031942847579276438558741863757270584594854057086203648367669018673698029011597136258603968694669709274063681825827567742341401126951629642985262535495119704945537324920286525200865785983194970472038430259561343003770274157492224314558037613096235317596153348391073227792630728960669633525749166914073708850960046624202328966063407076793347213221215223030093137088100756928190397788897799894461085896110819585197110654346611753098189774359276798112325681202805225496577256593079247129386388937007346629241126266812810945048012951041513737031397094691061998178329110106688112314335452734076880929575247853636976245404594108425968620833363373185283804698501869956170110625231633962753239961048339886930514289583192152290762772170458771884580549666391530942843116563663997482733808331270211366493340294367847300947458950219200847996205447626547366122299144723617292995597927956085615437268546028159651470517733901575065233902458735172717647030358878088434897571365332954704936461525691447355280830659603181176912278073440308853845084581993861725766541406654552090406994185713056453243641740367981999181655202211063539257992964706744010100783290277369864304179990903247163245633944948195434441893719296137397096647209190028675441109106333589735405624495196760027408477534383437565360237687266680585955606024548366280979480649255752110818090766136592999208582335600915119406809393409118785579887628514372913932491433912321983008965443296792571029631885400786391104095604505546646108048652241126789391191382221276375322477233045085607147748580768998826120193561216192537547116952376024674587029577561044809059858967720986508792410868567696787659585684047861982372247178668254607332034475105632757579432344076142712672684698704802245537109539640478818621737598981449907543404033569819364924274827083201062241168568821618398931923134016670479887465636480937460076341019414999955084606770182696501589833420736198447028245057335997208996466908086197149722312529272359059436699833660653719501094068583635665042746794914706715375182595681975801847339150003798710498341243923537718954983543272969273729622753283245029255464691927451503521526190102863803289019106996746269161352796089472536596403945114023551738976013612320028613040183029806259062916497900419927953783086077915437891944141778400050005386708572038602202221381007734324801748571294764196209810727948121361833372828110434047692923815021576451022681359125406663543425940984302046797441562691723830969284000738787263305901769179919666849565738445809982915632428703375743671440738387695720958155029828759237211350359601473221690245943872604998976949487380162533751430060455257046944131600257405563802514252896302116974917776570420001861385063559175652572528416796298897909857011185439922350493850281620026962036502522323408144430371851455875222785811790616666205809508723573042287408434099421229045146825438274382895675602385831398090330751471105295029251575251067868256446419214151415056941731341109673842071829739261138591918140619274547112411417677965186984664185562002870889718760052875285016782294676389139347525155398093196399485717744100242887810943331516935645372498173354200421499305156457326107432000791689900862133257663238770048971895615325392565743844460118724004503421086292100052076330583992661531735462536522774723154700282359564290463484106478220965609179154071457528273302966642163911936053115243585564876004276717611124939549630420125498924326333389609456351401794894225415668355325917091077038480358827046173827340069714424218447806362846453761405699116852522169548925089800419859971870520876139130781759142969704189583209220821284587381094804081151457377651436458989812743449766104308756585998612879257286999024245244108539974616243629903211494991063722538407802242549229849053253412185187133322057013441284741744360007570842677746257039257272684171676838832735555102858331585724575536679974623325479281745032261911968954868968091454045028429331052260438320244344505988380642826836402027998104130151538575176566287743676375925653436606945875835629143205616787562849752768317882815232559298156348304589217986111987477070157329448803706263450753028804913688898075374110727268481979109312631384918183500045282198171925144254880738957938937697449260828634597681797390113175210659319059625605614750848230491559075729082802942215467481457074014049827382077783371500395404011491417358405677870079540991360953388772262798083691625756819517447178272692135772768059821388893600051314488478173632751840807180734808335042755969149118268145510662644929099280033447017193107928204183405322577873998130964318393579214903903032017960362509744511265711159556564145600733027329663787943839322761304241341008589208872127887227359588371818851285026224515661987098957868991824635351615331240462829965272192421071163187948364832039350396654043846811016649560071696380568253838617453847385658320633462674387329117133809447051053935002940452709846788816440193911876210977246238901146097002578148340983805381098223877112879912789364841233648920845070986936720349309437675283846330472469394304730467540988106807052513678923640150638617662916489258386218105738236232023390926470611994210595608254692322048655980260942530329944010252824576809004217477591340947049368107669682211021938352336119693430322372623670806801598617480690617685766134423081185083872688086156776306337514466680923089719818603298458727585589274851640643405388726502783480155594382630460770361033653348550353186124067674721210743450020164095328349593252532306270080232933980421386025763681734507289583567768161217758816462928984353136320026667418872752037174686402680542017355901530521374319872112016892024612037731546237708443267910170718026154252416153912137517995849481900713474187260792577104638279810904192391197771618059646087425613729645038866188900859431208792312465514804992044808204670398148104280311544539209702307551314818472232054689287356495725036817097640291293302890744425794468525398336365598498487576628112704673385555206807538546904527144955522262987745839960246777287003767743764710029652616496259349363401784615812186355254608054089506058540002294293458076447075026204260403872495805767467373941292587837655660699908695965692127979314260125712009434585711846905441942564573288829621753079535110147932596015882783409361840124447421389576771387014489587926052903870718076658042445805009243739472469244330895061863448850771054979207163150608110124267061555689432636347054323083517016933968948778920828503017307805383593495740047838839795086416548187666243923186838824434330063978307490871504645393246781970746723093094890397792741573373636614064704727756658469437095018426903514319675308664630016268387948255903945912734430215404110200407136101440680962643239738914240401575661444379858581258693328663950771238003009545043414835192447963080480550324004712894206757887849285888790009701112182724855363641896621514647534060831751121366362567782963602824342475433703842422783273516882777700966264149957653918225529244172304882565434654219515275106307983120315918006752546000316326891802922314905044435263668364935160785657316172977267839773399450625732885206156548027698356434907293647864642875242185375670077177333328483990929412030877427054988438960115559372435501461349702439165064550823134029773669534579746863648475856673234761273416405515300629257164884044901420015578210341813598946646786140853753886766005306097281483960213499215896985801352311371689275534406755241138066412100419623660717427192856537295773346313482131779635966731035400378478938579157771462602676632776421390302562809574167558035592048285196254849624449636656638814056304789845341258706806714454497611846417047056316880203472384854883633404767833030932679975450269924116548236652684072794170246349477738711353833777260676659317179839889364746417348671939538303305571784245387136426451212021658750783318013749992273536419185425394236615926218852452869827253450649611947712797535837497103783949827581698133533076821953157895847958939419215372730650446697940504065874679779314359970599975798259921262382389470523505732862360586547490989715269315186225674827199378931840377548834954551480159901655256887006525665984119126356379281115571173239176548888152779437982856576162205521095506777166702629544951785970672554033563347612890587354579509010138549963584220675449013742004157824515626863868994609090808523091730068647134896569932966546824163546884860895205284839582663937334051985303165878204684813730778071973810597858797593678311811139116868682228863704596362491407130621650869836060034709476068369171611420040500170366464960659412804395911391202879924446931550004191583151808324882172298858392757284520302382241494923745645321839956480350258001972216559827007843425297604052999541272153399937105038431309101634160077697849814128673701561069759512180302045175082542296803237553631032290494826874812676630286252423631877552731360733618306950673543997913930433662452972828337470642913131539094824170528835817322274976390478550118136460014068051871944557562251368479641112463544135738069874125907710748873454959394834792119003169160015643195306852905532393268154432732874025154892525559604300622661089034185404086485954375490320269911317141314613485172771599363102651677036865761125323597898102399861085758135321973793861132168631450587414395834315294013332845443708762459008210522275588561891102697713002011376526082586104326213396128970134737808875042816298418701088504285711308200018581278847794520275276489566033571543347053062681276873330341103720372126212838606864809147335297021622547558849182638891372376253663428494947051939626866572020392414922871077084493137586778122244544363592350730867035406635184792254845553315480546440127795338646777956525395607904436881867329115221430845925095349166933805062056742284397303161976631862012148193844687289711907990790236600933668812943743842287163702757261851121926486329731030084189341701687909270093476850103120296238579370596722726041085899958160799852726069450388348295780347878252192785824051132177357636978483313132818481979366803012406009475062720930744960537929784084036000032002818504748235565362164226127903758580264648667142053475289608989491982085165380857349475088531680055770910760468354840753996737466348940922699920521875604724835973352280082891110488302003736021787698021018574914963862309167067634601220263438878863058365445329263390097812245816077174177103197599457609953323743053757122208332047451296549415747329097045875551938025075890404560680197156185166088606224719368872519196105160056862987182052113402212427961014928464983375662935744338732910702745819587279454859954224383831104890208217322682476937217019354655220351348219043046849760055573517298796963157928008080272612951763608291606863676508540625624023825724318056962706489125039690022800195979317007469840857096107819704915696468790022931335198804958111963120996282736635373169241153755845980986734434904770234369701089820761744512462188118316672345803268393905773040543608871188839867630166511447862734150112791272965800885145094870644535825262710203496334821392256684687197517086235781032431469238739592908791559583681247717736285665215235186840120724172265511422098562678822439803661986510862127204607001894598861612296812579837078634022074905203461789897057355120902826843631867488912096110966944531719119399770339638935573942208894580490342880791113124830334883344984998315534339466698858984064948162945321404135155316798791172295805446172297652479881942397376663164782779725256870668064582248954836514255764278148331492783444044983931065694070040613410731409987586470183104887897407774864004382091941225813294346478235794897981948004464368186183105017958690001946563661396849673659709218763918635910199844505403358476606912574563371964519373550548778633114557629297735883236677406966471404118655400242754630553622147076009749448774928249234891565536868908651009933664816984998569213308075739017550283706181995108560258919890986540346066773583228960824306772449632360346209789476231889206545521625289532482893820605352593719016520776388142443335603885125912101960168163237571852317900290907717921524231661399314688269404764884852311416754181737271910166413307382023896235529206296677146474520548808700039343141154371960979638793837861478915811425171186187493796491439901938728586666559561992516890931507351893905767749786409382775051238494376902085219094226205768017142952327894687797146212518682909342363825741311475042082434085590040756847254543434303777549117054653414620230964241846945543490226030334387758476075783299578136662753989584680683518158579128256282954024974150476196584950017308863530624283143636046782971650304573258771796124728547426923572107893224046052839651075965352723331517890074395461611058791533791345389228802440478641545363324272820948332044321306160611238485231072450071125395134777265155165981683460297841483338602735942433887838641904449895483486784881242609473285456212887061833038330361307761653702701283746113734303231087845531549075424969947111436505621038717287371294611205123879943520547448789929346860672345920966145781447655839709271593344738571162735171341039580207589267864024334919705909796690732498985803605860032434491861163322694015970594365936932649595256378493112147758989643051282908323619122771759799587087545323753730191441017748460016645034044804665822032790630950071300242143137119428701401949764319569482419678599572527654224153891741976818626287122438061924085195758580585694783970962606686533134174121119480273669944127804639261976284791961826536107809741034216163579790675541224550120012014125985759194780502304423183797798965988466748747231357281227740204642014402464791825427166974379073724386625889354572693982376284356073922135403245830404912680768492478357384021729990916495264227008252177926592679323185795519314374355819547948418034357729271803017218489700656470169486349156252438042186199379432862913309356428789327861112477377062492833697085865980926074510954797793517038728126809029056528965119217858434161598151557500215955512596311519139131696531554948744790499646746385341192666223756814062692303419791805464038289804457174996956775316028626351119169087490023670950935371629477861451248636918673184269977135932188649466176414513583289909584065214656182364566625594511058477419214728321601677716301610701318370262198292210065744559314952783621880078232383090457021390019268391747356208683004483589690285062347019001238748876758262377200152319850120680465253443109817913227433432306853800129482754019502652303810524539539154480100122068197988997042096433416495919407684499177428600239194894041188506939872864546246385003132920256403997646109046974893343722001278843289995653883838977402732881182895126644468135499194714075525519179428283000825579559863025813349986614389463904058629073965305980034337570510343209303732600952791136296961313322191921601690134372282120864435457012961098379335366195980575197124801652705547405619773741597011527405889761002275518673888953930691892288096476202203141315001320790340514665996399903110764792766428835699737460961213365692079483697027471647087264415320670549436704419254331496703299369160282935984621980067076279756036964550635772733048922572222134423802017775471225567710670601695518317966528285934978946607363846995032846880601818402383240028418284153704158533475264248846795016266663693292211544980201984352420337889802129371755940360198709225138481667122379255105028630349947351337402381013578729837095001527747140845240078607479515751842774846128849545060429859583421338281090774435922303679801529364401139561455596352392826514981318028405786255635650991555634985331472814358791430760792410155562244006293485866409354136792109014079848013617142850390576745105410502505746882757296168256639364487166944973746283778335445382101499469855941364590847499738376847032521124831763948861556421492784556919652493552164669693417884219911924466604002065312466305002454520841665273462226720573707971163702459332550330057054176657970189109726998300449063319521059650573217041548195150271027472883895806540701701268780875897471309200503143514628173921633103395953426593143024669268359528254011108805067256841066707900175367727026527951138238594082410682090748660025649851969167889273535031390466879129883562491777372556239817789694662238425310758504484815832807005589049274245525248974325670207506896614804753466064759797752046084292708715671959737656706947935158481341396426073570288251406975515961322574848768124738907534122491508837860518339722333697144528222854172395071224017585747405309636312613818461204406140057094712739644500744589748857719921908945468606430103709115442853255174390422565558137908970256557005759385139780385993073152418272074059500264675694999253920683772135493612508708463147063915373842770770983829762615110730417889419559663123088383567180728671022270118364945351804003280063640785189686784960368909057430138370083589372692958808480661450185032123418621708679416426915246036888438621750117076144351057523978097616865744233796536774196577771925353947510045886039426964486276567622128225227334663790000473629161613317506606382670584537590310201334297631327362600810802622654649200380389011658903500533424558918537306174666785526802975273650766758993683173470492187172291721998042848949544146791397035998525463757759445076488738598030584545381040993995614515787547617127034191318427072277600685330565046140792648551451122959796005573447567025517689983628396434881321422770559240435061063270792030002973542758464103606041042034708683556058419312584513830029261294729027274307590229072284573942504586877103636593639756369107596767032989409439501350265349607988479186915329604557217612552712084540258784695950508751875096966030220149964506876111145353001314402266045994648230214370827082476799465064710239724366273174842414772429029824134168173841762829313158708760431538637850688685998016684563982523177593545209003709338729511787212533857889342402384105177948619670064774246716209393837923262743736192351379527577940601194083496769373874375141957816348809099725195400111507513365591558597914472808888043389568348902013142685581902678579083681872851696108536889414645993443456228690257958571643862667524013979613205168156866129723286064476057890251086992930451082421030288456822969693215326077894727386575517202977443246001287840569639698946972869154743258603783971519601769296097326293211593934739396286474207876121966657097157029370894978486090608761158720046682755141255105093274332825476079694733779215457432641792852652898268563701399523178954433753415423269026024924685332448723610178498378732865292448038274059546579495965051737075360679769328955129783700191317533993988029412964291216198228345405817675352746929637893804920814436250854595818316860383183966023615141849391855287565961240339111333681405649054700924310467461370048885617347867000156903357708123221607469063883686326521478418576340155637923953237859698815447704856527153471525878262191159688113199619917789388387977053097639561985574803729435383490139264249433108945359905012337081708944136628396296886905027844418580112413005907445281445993239006320628003518560708340908463523224472581983649085423401012388383665721763415318634930427225757674666656700231753273266520457330621009919987166833818951566388575892922670909824875524697312513119501848242080480290766669233439286016012310633975795019925588172633337676828346890711907538325448264948387048902461989586012686190158332496006874584542340060914243577298631623012387326188521532950439875721178077361136792143771140199175013654041409747893100727451770279948293485374121780966765317463937818846799831637198628009718703090430790202747884004985169735679073557182303431332829908692481914652552901328804482907576044469049512606272880362224625840277815820408909827772461363128175049365328807606626111834334661914405758989214449941341699501148062068000933501381220899936834753837436205694449437239975291587196436743300522777625231419650763846598313874823031064444582490754183789044432743554659861869462521017533362831942817701796325528174587711681940700708179462294999188247888210159410936929366593481964190579079986300702375648616345034996403639603232403537206730846902698148518413229017698753053855659391424399406145737973307048045183417866804074223387946752027914269897228241823219993582735840547622517466788838669152302267360483602885947276815416319959497364766183721485908174782488301371267627194076475386124495984658230194996906993115779419073266561371917588409199455893987869752937434462335701814435438213843436153768616477376555915245577383338172070651486923416972185305743009252863941823788775170395573127069342152672198154294136400944006778534924685460654984144490448376648521919376038815882580934045356781432732181090078679193274246349575093094669426790037844903202879238200044834726598936341366648821238101652661816818690542203571096059670571876145875555642706783366722823491552005377023032845345270064301080673022670034988325916422641173230568962212902447935725479872839409250263083289461897905820814858591516699970457851326270878244408002534370155623539478902870084232312605556596584177639701564747654644241734963548292399693325191290476441512679667854281354317978743374903526469399416865555216979871419449598904238874491355550874558634506641808610203363762901897509588591263985565051019805055418088234419328650125990642381337716239833564958725601832568536265220415443378575867760788180008637017198860097368267472440693173552021006603527504412844987358301586446588067646263162258691887721898969403560438588703669643896807523572896063873415870847678882961437970586566243616073394079517211251973261290578664737317431779807786680209553260086670710464422011756988474017370248776747069546916729308746055373509474746990813689643666737391193118018241960399514516066328200005891060458368364477941462240077625222978735135431738557824836670677919994447878921789668709866156151519765098969133500535113525669338666369124785834509042695413992838975687498136867071168963084916510243350551646114924942298529176853360657068169592055586175308036785571415540291607200972309920968995158184980369742340023331969428971566801005857482031189215387953192275519230687751435820030551340183270998450175923583019818870418826443410209860197938265864041806451141451436873883676211396688144943203083257205030902208263527608904256950771873508183301788197082870652510666383745792417771009055818294912639309117577050961198137717034668062381607024040391676143643263524198955746418233045304356068865182493758488955276951381332325327204634101725069222147705997610715294045034230128794379760395828948884537053888688150490264822897659778885798548321002439994277176589604389690514767858818675138947060669266008664182724215812875757306089193323627519312990858917086498256365573327497711709132727446567413634248650591093150480770054370969158706495764288923686293284915743925321498106185714711948942839148877356510587959854397438403134257936524810511839325980596970497914632911835492293598712340633217346920760512990060545286892317443864527343907704296961001313812658205972178880538804478454057212143030749323465877265883734668101018899318217553571203147112638393796424681944086321497958008690671733859852638391924671073386352205704878878718283847915698354575793315292986648524492589173444013639337798034709187296740979320364055311227162736502128560726164739314978749855231164611729155809060090887672000346562913472334263346486475649251334881351979339663294624469178909141756279422093298585466847718943531471315563110221515737815983455715437268465460105413568213284570837840529488292341748298279285355795340514956640875497396831646880533999984151566546721194555617263031653397114115269349262696456938474252539344279126581881246189459443685073202009513392255693451109699733940605381615092611642901491272486887655949184523103293252426999117231547164594425971379858806885111953159121514543376736690530290373499775574305952330920190319272733575460660506881398871774591773630408371536522423352768658422113920057480761062871267889785871953759612463266877161900136895357953154047492485223110113780840317454104172381144156593804212748523070616825463502263063743244944588307476795525621024192663818138963616932312176297756761822694664254900709831617035068171875593372255160463113729727222751760996301638719120995136506171045333505113759175734196118985163063739059423619420484172131273974723231622382490006332890185644566629911703476002918758272435371742541377231634516754363033480756939801410378774289216282184937502813931085519201876342489242612984503242029830644293620790620347656274778911683823308587603985737699247688224893110805386878825441100271353824357934077707537396992173095111578852187255181260449995327053078655774472082063769275323877783210592210379471824030595801530155384939077355685277012332621525035159401251843199642235577720152862088033624834264545245747955428402075483943343768375783506977983213224912169917292019854821597011068979744512646224111206923725325885964372375544655629412739873774153104192126736225218582791638527789042952810962356501016904968056610549664946936946295985098296447076869965190290779687132563022029268414730880833649825742710751300303524884651458885162328154563038526341883534244325314974803664558879281837514743304644929502177473168148952994486499332814380156395884251545548734092330555839104399665347932769908971542959913442801171181464785569455783495642301612493317827174183224636644426113548170077794193805177560715461519043758713845387173225220013903113871094408768260176703027438481531953764755685780778394918912282304190889958425096615125034791615501675124027343887393535329135026467042131998497750150216760108675690246316639522404175491509097027401619183481633446685016490599524914245628094256504559440878006817561527067082490374383577239276759718338956146722833350634365745077804265419345681292096500556036696966360162747413825626515303613768774993525907270484706385739236535536937762017885942837233383105039875276084835325437247545567569981667029521979283294461930504939959964684345936016454924833776400902049967729576987257435743864926401279679975146578873785409697632293868512148289236181799592157879358320815520943944536911982796481197033554902073099613634506600381419742608108098976634318177146333805329275921431883840308207166393489258522645228638628597366621529337121734756085107778224202385980501656891606587235254055218052353225333059503926765570177851363012584839004361742718594730865182222378328364409225367773476391615564163347595772461146954641228137404689480053959187954461252102055781622864812029547345993993742144977153784415631159401006667079386244235165284524734406492797909475827135945369605382638878394355749121151781977708115311808697157234607001352991344017733054699721844984715165673682381297556283790097519698527124160795596427339685076073254117973014305390719998687998532148100425720152144411187719145138348512958771492421392776567920698396841204454386564593055153152716809067865198647370535352939428237401320288850593082929353168987141043674195292677569626065148295005734699193286838436965025828517395272048429454850776323673930750913592681472159077069047133292223654943754202286825652220574172283123299821125250618369120420626645387796142781429500464156033003143572611576631255478431284105837228434603892120015013550042041546945360618907102207849157124165727451344100827384398091887797998260230652473470470599579041067137761517944924850644502010474840739904919747329994032142989368346453663580174176276828650476799858580013961265634071136981893412013155685562951468047587708768259224809815629003691004762736653656308086823177721696661500088114747756191140767194062740049258437853840958228293462655675136070970952874713648465689557996707112408869261395523828179470421524069151169981684960665876385408014997027196680600701324412380035094216242270263336828002213190760838693725483207490155410613023762402645401475123412560491131553185701257134465614616613431577263136702138077864705346483942227656595058764081303419641342952134482381173345313512867564226081180350250901038814228046908494430314232930391036503014069090781906695351697182101338113716849856044130314772540111356486770028618822257573770771803258181306223361895447399629406769074421358265735174710931753403663866834030334030521269031206179993918126187504444075340588099700559359001516385475549377229898068975222345880748716164337536718252775572883730482449043168596287687647608862711435116562712203238804470139015841586493679144141158812576448395724291851046724858888738115152098786594915324857764572727064978579959131395534524997766300747805352254239914620022370764565621596649442210012461158027649156433158879962515906078216643139665213839393486265342021173441720746568280159408502964921592597203018587393801351934862356837929100455494478172262033976022048594643770068492035227967217171391273397961601929598036482302325260172440087509759175205378402861776594952301767282152162857108945899157945562457891888982942000661932379150454653793956448492183925096800848746329921507157143470558834466738107539351150974307346795278051097674190210233799913417002251750037377056513422753560020659611494566589671648987134219732237732460106285239237221946534018126958524180965318488173139506828266772495909964395264143300232349314238309066765452545475163484740895097328997836807437686127008270601903656608926283723489958292746064235460626297196287206183774795391384482325498385822329756653348250974391287860495418733014099435645149236953251704635046378278063181974384870230386670871092064887296952966995059822238883878248437471467714983277274578004138666791078764043730208619463948417428114851242985188890881688218324065232422569558569474644731146607932288051502120911692667899726687002439832456043520798524370700523657164985128345467021450978996838652985298731533955086323628641001922835808136313940241489695996964764056154956500125197152484966437699884609766194629122571338109653298744517834155376196284750799900079406043552324818446755539913717198251580462451182219873350272329409108053380988125224522320614485459914969623100560359091229125703938934531803317968455542369863031612842725320799425365062571888338455002803758881374104081246700960965151400021149783139111907968178641830015438173909135786759271561642929111896941520311491415539118288806259907984524012172053867625277704933761777986414173751376886254170987205424987909150229874128467339855467149998743743549243844973391339698804625365218237157899759459342902364644043239802590189943385678334530679499682267367545024951249950364780876884537642500489528841745407961322023173253664934054737462419337291473695999432312440462671042542128016036516765581088097708461916910565285580795546114651038249346437207778412773427379981305843987857076249193505476011378270590801982236205274718304050351421937963756557010019867528334037486222218391257731200415467073984734304223120676665442469480188340307927215459651282180919110711888861729405937061169484076030275718950137728047330160429399814373616664033673231713961095219861440328731862924068212045551519467187657020530847505658735954365145240078339908933316008582865255127429706087270579132952800372277175322341546081575306937775866467006769012841987054220353087088739402696528123215177472077080650938512126926566345416657547507829814796511554123549933045915105609746865064440963995420773502623499531495733344794789813946188235766712025515922372542218771656534879525285233763735268502285159281947242271173690422082594256175983716780158083356489954832395498053756639722266789430967261185008079095393609380706090508286675126962848668163042492954862902208834938952446625071714686821112292780210717976443185197822989399732234530954603406771554777289447874506045820212981215242468609633157160959897456320723640210391311364231647982884784071348053883290579460029605572733647176107112272748645588410741841836360837609186241730115353686246150954845327114369462238670888437124245402538475924389089354815331741536017206978015132060907494458119382480895028902445377085515180586108494397164106246056428821292956018417440733194420763527124890729149954484896790029082647096919864837436829451963037459777842963982492036196628306118932908533339387448019598295097679360782420235297282023933862607104698864722692534465236804564216905352718085535532649479565955964217538754444719872117918616928052989967534660205227260318559632981471452241854865934240688680547749255250821265225570620353815525681674625859288181870197019825845020458876211719696923904464790065299794602503696744654096947532055323867721964027572944781171289920338595612917253559793215570178710084752192080083482359944045762970704747072436881786656186752945473803595061676981059719344864092455453428011010503133063009627173139180187135682921696545595254292396433429197261285680831062735671960020255925937673086618958720595972003891951808266551536805392349172475176071035479351268432109174664534587979983973773187714778680951776606341130986514163634087339520698224858059215150219021564489122485400460496386855737056769945944485811503188986680857917426983243642433654792722651483709858893548480800701537640999320062374698181833344220497678753618859911339378303579403371772712426658599706820622855305051890329612790126758949357967455216266716252146420260129532209300528800602635017183549285586076955167952337411959836618067431015914378526891897904322216588917963719538639888749672356064715342183632450698354683264134502425439913432314777966209386588382570987666059813498319313207732358365004196499195478051932510759597406055300680268258359972528188298152358212323958563013901636484282328697322260149409100901090982813849955334953587234164443870208164796012858914683379038370635455475227717872105168031730916927429593718911188932250517042841349207590155825986231073706420164396890798864758722313620129000363245580357141018688710272902715982470134026833702762336040094049151271078753548263447708374034562408911840477427445626888745154796305701855478866900921643544955055507722650872742947676738684211489446634786612625477821488729386581235846317556114562455423341089414705285778080008861178841516722805285554037761857193999581960220824185702338593320806321546609824621761429903337222190587725001179676376595299044323248584538966187793998579888720811727533125709511469533595152646046592666554879066324848049764196049631300585118923910528194669334971205891398285981844527607111280263162951370623875436849183170099247476757005108477747050881611055400933911729958818481233225003417560848173092594952939806441681383953923656745275082643375720731854846381094479059931052429247492941386996650411939635385776067041260170513415468334131710723155868442941668956663012761765265757856062850117967590758278623617233810368424891403641506529528943032623690015710561921024014286149779083385451921963610046284094625888758528748471260610916134851937113963761156411795127990217814745854688825836716833900289023620031929479852663582662922641466641356853929299629648930736165526493530344111805469657540858518012773422612748084707829551313691321382677138822358638767292613553724995464622165276003640872600044051820473832965462268880387809608959602466037843550704625257970479734507389955565963074099418304977972708434072681056789231494557851492675192924092112612155542567580733952162012928205920584020613562225818401576596703008619984519058681033325983231663544287216822141478888539471621283315329198049806520820032317395170275399827678303203102376904298776849550015961810126955604523401964422777190480225203045490092763070341508925674532887852831367893305273515412446820856026338739988135896828597627902882853195987090137404428328491895486130540384677569314861675474504161919557778165092131351549024445749125402439814049092362491484157031689448248845176478054031644625055748932016367780622112114933391167042836384128408204106852065610151286349649352205682754715171739602259876699137734474207731446711439334792626237714229736218565414058898129462365127539328286616718043221621083441695808520723279814879904815109343771038741578679815279919229299997602777723356066772324442964959912300533292337863162839160576415175636963817606037287605384683193975730376929637953100874177208762191764163792613524101517883394170271573932012662017911691445158845616100439258551009596341847160980911638086485487731350585789802199374568648899911895394505507438871780086907092571778003292387251454788899191710928022893981479752633776221030218679714542699618518155267055771852527332172885499946351178626247394990849250100626852861072351176387890367420633585075658294977751602894149428744165183122522187980585318126255266886319639159413766148351704903742204121591484280866053952253450374242107695175941513250068302442968030837643003281135667826453262103100223769650709258848270060411923207401738154410244463276343390880934764504194858694051566130350271222602827466545679122728065466166340021865928733462063032635269902754265721540395572353176805863615746405197822297811286521523532192961399447937480752804536170782404882465703254499248493885695396731581100170580353183244218968485715076831325041706307575354500075304272755868772698670301558517904980051578036068009444706535816634144955582063464845980536847872429222856523727142853111741719439695777101068531998993894080930113626352647590110199794114517727009521348970317321181664393354662333672269100751620505354457598506861599990638244669507008084021435904477630484482565634869588501762768446970132713025039896653819691207699708769454844882778035620339596225367549774804772402192823570456399252085015164836728058336333913408972456344986886280026153937221831305985344101510441919449312030667367934067967513268497584372285678732358637358286152621300836201199192876395477699561621047583816161193703805093416916771109760044309894105593545369020207767802092130339861224087707832162082797639938410427552929784820912757230564715110173465749398304939578106292688846938017847040280449404237232926196465670805342891017453813091914224083361605664814411717867678042735198221268435673797784082736194963955749159017785016328378315467933082684143611347277163930246126189004843839711391079690396405872804759213055648128398297266285058209727067630401911199031194524884756839209357214532373498277415020941871419226794633740019765941036840333258586567512334969399668530870560829336840159188228784289042249736949506296225484278695698715271155920734516825731106573940870094581569199965504511465345114445926548361164036057983214269687809437767804537867300952414568238705677221811300175191885235219637606415009819914794415866547931108105520093697956295583055213464010602960259881782381335281455279481887412011930755450922175669643902206869314489271680494316758959431660145387882611081981974037656521851220393989658858962394678910763334607663753509431984138719471457935674311548121186016746499790513376855180362458815749110602693293517168357500262513570351468251398593612253480084226152572872452805280410730592688835663855284312380131421400214815943764080575928446532750667142471236338951879780320055452891093299934254914004594242312926880539579158182034419120640929175401403760050877384975653526413386804725233552737405279326014108614386078519129176700517225730555899120717835904488305348668096771595580007180566028703763193242283133059105050344742173262897624781754279706107184891861070122703148635786706243536176579807578076673031579988825232277647784915332295313026785066140369377726989182381870737052646330590265693194138933194996035303854392597432501145183167182008601984555930207061317398293521566556295930232971794285723539337159098561960644512869716248481221157264454228674856431204908841584589049274951097445442837134939667476359021580702095081737401429241488085074070835206317871288144634178325295151676729540411939039002195571164127471906309648092016840924589419715904669302304475097500280322517723029846436802367685708500750979658847506014170928171448733624963710079982088774088518117838714410622594913804885613653211348713931647135734995548310823599190675996190326049397501738397640990747995778592418200926755257343216671721515908570950075266574380974731170962535923982879069153671610298306265323780561750771358547193767496914696847586708023592874393263553887729255198305108398354731470695805763805144751175738466269237970996636298720834088794597113132002682645077754832948385316863645315172195659177271844692943204635787470541007328176671426143741002815653029974466520463980209712502545135085664817888458921157121592807281657308241249577013798714832614530586723259249562765462665482932438327668036364493387542174293508761163425789055319364130346011533951706405615442988822495189968345708252009158891748957429839739391913632132797057724815239854569836688592647538338930598080210027573637847231796351239297582442304873797554715382896390932687119433764828745012885350979214010261384559861254284621701853589199754756851870059014165867649996559688615251703085210693993447593891325936578318393269860811384424455282088617886184962985850661794766720367513958913194350044419421765108530470022418897052802448083821600986830183898186493709080344798269930889350130628383803243465945011074463084971986698475691112930384331714623548125633661061527746149230874407930307085149167401906903952880092167324999843058899979246412766535859116870978219904246315172483079631760667800916985724780084328553983328652193722437541668804349107232970966277763730864034010919137989393822812655888114247099640380904581578440014762510025290156113307158491292094625817339040702825484498509883119140165121267064697371089819933075214961046672263315609823275852774779449176470610672410569899488449773972046563605056610025442755143393821905512664250804410181148034763153932702892214692487387199199640481527528556928820719742773386677628249834533140101136949446476720383726950304544418867498430264946795001371533289184348684900143592915337910171411416950049588790403052695087563128379749214389510939736332759396257067719254340494548458772137396091485979842995755770936743676267008203240456917922459701711277166939663673639278706225101164335842019690334755023035206993348418603057376108421932486532195897586550457869566526201325580993060357358393808716482956628780841765298878642408808861533293382993404646584618033543580469246334240658075713653517493731229117174629419084550311529467726294901340211079836556086779045499936887457314217133569751880153218796640095738705359214176932371640132130252401264154641458988978361589512359999074004718097313959409672111432895441663577486732077974633186371301102680461641055397160663045918287819449274471104160302381123082961717381034339308536404597440482823384158967790145430023744122534711486805468717795989575738718345456670821017018143501331179086002384577788208592336818528149848687834279753021160217855283971038945245216286110497850814622167357592872164695799901808173200618665013963127639849655189401320874668769543683542910944027633065075330601380227408774054936343970096060596715786253367416420654072166022837880089267292336491768139584321377574895128701218650377300409406576071128292332949017811744993240492980775653613802457661180453131407523825818219330854741435849302858513355019600824499844779516669763627337198365408234459661508895573438100631457493993635916070999224918381738919284217250358066804240366909338539830990040969575754241233871346279173063809973413508843135109902890844924778632194641992504369448073602107180703993896266345668093085596562276518247602711492708976341939447168732053727358899007476447041050061279469627269053201160696120346121703999731944999044029612362854196396091770466187375894044134219644302967488078276449689606561471711834334747858097602462198022311112855478532471810519121673348111653561865617011583749298095655992895701403513598552747055586312750481292039479132970459324294977511293978869135598294087303836493482031723251014407048500822536657675574923910349174137797569899370795504290517408334603523780804306002544161157602834061385994666173334486856315361929289659704359891893201580393626642701195854926438054275312267927215479327159376476079933104454963588964001446934464585434773077392378088285828272100087376960678626989294714971497882777230824003088095819638574148927648982214263664298052455771326859808024017800786814368046891127426331860754360196960625677681186314178695499466485161122952897147249041867812130478657517160092616933136201790621152120889510968172766710089294916493125755171774189822455196930931284167654741884359947320285187710962602050685682798462125390718303451156673735214671077504318404244740995378921218999159854951700532924860388580723497830201579837263300860500463076188649037049721625189513650056906484045773685493033950921889384683332268136023792810100020931236615805056554008493178334821271153553180956922634553513427784021079780790440032053150375735400592297084336587128924007048599127475329098798338727032460951756256338726431748935441000519305730904450306062072150952213254875484132465764824509837705473168485944493869254404215951002519577393501162156238240973998017730912965087087626221900538117061297409480536058213158726418717326069035939413600915044367567194598285012273031271485016435459921284984052644404102863106616803651836550137003574304048282473192082417829830258199385924951613602733793298453053661150367540106234393331144976504315335167450445588617195754659171081536636527195365645521938729490707884970087974364453643664031954584287617968916365288340736484132551099613794796783903375779928815148481494718315828832395615180785843746911391847296270818573959855198568736806992888068907979362654949435734542752255599415804121876496458483523219852115187224468377250386720511577092606028765729959558131413430227307296584112609780718175785237498846410179249258056704349937604187374569852483212857743062837573583777817978435444715192263723007860242395552063239198404571226384600323019812995640087473218759128162482391607031309887365672801280791949424276247040219152153116227390745728460114141341937272550287488993003696664198136095386865769841803412601177788076486783055175842281745900950536743100868151171131786501390204410903041768847508864211483301708290664406835727377039125818019607984989216363115825002995950257561308957750918450504324930637347855490176682084059924804353466966392621640483245717998343277007713543551679226881400440330560044129640823469012335550503515592910557300812706774394069576235277109841648020500434034965592248606221636909363465841466697806457340155052602337893439421198809788215078435632233343938084104071656607587846062422378291188960355217272280880788589682197070786352805980521597746981806132576464376683322989410878374010728170132647744955008060643621918676455341030310872098525102841862945608168413469164651051400690127261437846474913079126552038574950428127811966876680730599328114930548520367614550387169063647380108617699109651991356783056242670315690137799065984607056869039055563732768676014546548161908858747597349673899444173416428125155232524332458872403622704379586358888569792013843033688540919809378144711755820265958843706675144771264597814989777433861139561538378005579491953749920549359618161037632291969350967062004020700775989734750983681866679099974817937421220524764659549396711467437097759558028653724451160719926730168287728651838260505311307359360617095434514624380269774621219787157189920631455364802132827041451943214383840250262423804395083579831338296011365464048193712698369211772390765523366951679165743096444473109754906107656762462592731036314422782624180840931115007605401089933143946733415827247314644322985364359069943351350201940162373440773900832291648120212234019317177842171052034868203278513266615096235556774640136493161335308560763606455521489763806910082549977822281458759999894173898679178418826297188170653483304516116119978055744022339507093061260346404175175459944041147789951818659481922784014415218577374400826750123673094795552015107167504047194850594968732771843094786684534577347705059978320653703049192215475886123138589177794393233885977504896491636525508936610516050970640714464783962947270079179738365418217161347382393467784847783399060480335853565233941981727864179252576534347942128842624766144988988399285457214156954343363341751241101441659123033535823965780530240310962093843210036077348061490784957687860300316669007331690752548869674900763110287131848510466540012230062660173492095709965623082690516908736718755592473821683713900336385414628820495315376040885071253843414241983901133060902789023245001924725093619019467730124979375565389495283757904448655675220382851370138777706666326413887988403782904766625918156489140071573177088026818962997527002647134336376057865041606311769548811569083713654924522094010001567947272433827116054996848371976866318751528254897056777921674712637597926922669874185980174689230606465624139644164112992133790979751798418259315445928476377832237186110252670296881553924170867483063033123238884111828922907202167489586019607742806135599945055427281439729609674922037288205997216981043976162709217525837352981935739275351938811820382336993919839014783642617479110541140854724680932885593327753116323428182408168051076742786420308191911578565438296194201659158067518648534341615641858841678698318912522131684029928233857059838221905411573922308251996522480798596230236801787823659489573987416771512627723618225765204136640844995460727647049742260373926863228687995159952862946956810893415311505633146934252963205162786402166148922121847325983199950163855368981284815502366342985014124658283099994286530697830850604279034090911642711474362860905874408646403830349214508980751417790800117365264169913963400586652699012583106332393613626604612728413079678957049175617277381989819574505875603212199046768640384044514179049050221145738918809888000653172112198617404336034602207199319727183080244038682037938844872389080254933386708287343624029165766283066557653453136686234336721187860915088981338060927607370148569893869961907825122861000822565191084237853621750658201305705127370324205979157635773356776377160991618940376941667047661526044735529399540401699825790775720127972238344359646430150315959535065583050255420375211566374716440188665186017890241025792249966320244743645613703880156518661745128482631175158610399162531599896833960500876389339032990109791524928275414851276689747451082410053751240443958018446505294097036238522788970692549370601395379210244139886199707185118839120947577829830249076425365960946103971767123513598369733153604725581875007675018509246847813991001996469409101839291866510476159723285574035856539298013631078732352075087827805328269385083212692309776468280859285010786286573303640853159805487718202186550144278262077611997860579539212190278271204664298533396420505640356302982483715906358034346302884300211482851292783096434715656331610185885478126870895379326552631014741130290316541028542380400640133795308635599566030499743773677367938140963168312703735881244363166236250015063176506928245102904204848509869217753069816125303215940653225777265174435814672783803272404980038896657068749362983403263106517275062920816325516504785619161398898475636229003014418691291145969503817382588775654443585936509316522184216487933519135383989017489963301498013335350208332690615371792629321701310272314170136537241969483839644122322147218595345353843706898715319729982607098097681508545278603579959478005127846260124424510983071588375690744161900944368212992954257445697335138897216172197591743269904021232808941039535975346435406209737836989959369407586581919394045165651272848113351402752119349731442559757250294894618612979147323399965918733018557534722441993854905467135190410766327685025892800394750840572708367496680727064855695013886142145696327334210003000487032199565594709382469466813162384720905117017421449419589094228050904027761104734040578088043740009017016144304252779742450844744817268123159505567801657988943132435680539581795476723248180807772472298919127948641846365604655666130035266166420794546015611480817992348811513232211341711291680209173103952892649359308386945081224742252801705428540131759307833181487393860488180644254565714018658980362073104172385509592334964463788496304818462393892288343614359341456624820583343802131831308305689933805878808685776317038346376738548455828268010095042238715991189544192804214769882113120631942167001069731671550645703783719521731572476242873113227896576093967579207850799600138153119626951142031415842883346907878231288203532298516806584667810951306660566769203724706731714054504827470881424001050793492851263546365595514362315418688197076059750192872710957832822587736678224910141296593107460334825687439041218915329685982095063106784970544022168056531917389417696518190635445903722641337321014999264938846558329878958771923820845702126086739812066494276458644490199489387973507047198259581209042302926446122539586027648927111215109004464032401849718156642796053639162974487104233627955733614444249140623628492077833230680498809634602803916688106667261202984861268748717728462325461250277857392001007855883378066794498310594315094713401793925979317460300890897625163171628252904476791270185298423060003815008756563622932005110946388666138191025962713249704636416451032024337772564309950593250556110779286813136409161532801651675481474994068861008861632861188533430467336054659741437430439401438115185940542038104951490895849897528259748848290552586555921685163338557580032208561802391249441022101933788696832225636672049268124906340016139133616187361041982551042208477451856425539385216678298459448264467905375613355374511733046160225547734074468872384614218258391914190767271497867767411961988016763753652040168135027092847416913660490282109576752036392804438584564475934487544375546432436137120373769976355558578488862349112811045052042671737684607148171749691545706435725587428238951979443557474314379504625546267080606519172029887186657345397833917432485818707969013386861449035531177329627949194797864634329577359645830576193204249433221353071209997006568755372186257987303634740130521638173173135757008899368803162965037561939728496407442476430235673419277067845112988553388438827297413091995936711149271756231137831548990716423538626558848366968699131659506375062683908481602932492177208292880023796575076363455573929058843950302770732110278386048574463462942119059154666276691762939850295596933179500593625449193632897797362506587157876188746782425864227081252152535882978707478179639453302171425703313818536217323193396170346772139979398470977251929067700180639648958608022178869444600068319270770828559686023933324177590951869418256093679131090451869633603457476812104098287463000409685546426473805508693795548933529200234833832676854817730629438207936425407017014402842512861075673922479236784612134686533140526339373346711112406325359250395579653405943615556432098300220600889045227429621006452316228441717137188878297332383883375823665243947047331447764514260639918688894117867346641236568073073154708292128502051633027237177588494166019968867716261160204276171658428914820122187921243516497117015513593532512653313885266318064211958380235768066955432434634013537120267797027175073004507906714543199058401337940935793790659986361051876498729956447258544558075178909469764369044689366581416562313925322763591343815332726567600211174570568479732496432358238347606199339004564460583768467706950516982341023047326474864250784204177996113728690625560905459242664863621951550485958869808241326040650440279386299560766350580919403960484528768659179580129993709291436044500172659047847337945347423880086955640682096039194723942389511085116014525419246602117349409941451057412146500153158561634386424897352623749645910296118835762079817327968614129128251865569379497297144108197968928364221808019068463133890207655120616768677199985732825540317705068916506696173888375053618325473425420012536007709650037276334485544411840217085934020222224242678284664665428067984062634319815697204653276051278735169119308327342629727630970666682091135888964820581086684059467495358511389233273058851185823740279506518298808206097811948865829997394962413888494568093481665826066069026486818916003690119177117171653953428665488982300729372710087717639088254280699163828684151336647129549471013600605825263556327709367969424561051886363872647462423813970285040541816251313277592044418878177640014488455232676847840210084459631128368502587751088871145320641399986153103996194866059841286548550121774468767775133023812504518622224998727036467155795489147201655956483223540734250540573149262805218496737848556960450087857682802085285742074637897894043451849703614222054316492242792011841704274870840105886274698341645271841533145343547924241760920617486792911203615718088668708614229822879670025680300448995422873868875336665856454755195919211275438141708377565856791218848119155399258524761082792637024520013367042799477031026760817784512879116889277477104545808744760487156100653533974210055007400765360896646655041972274400406286068419521611902384612848677393240139465818161225492052838077729281954017876779029455962640121168851672247513724734375564584638833669109048271005340529284708607084545366163798315840737942642891954400681379538101580889012029084630959267304156358462187453921664090960912670237658892686161497638985683860207057638114591686621772924337716537878827407353092568617638237523274297665323384951114805511785508220393968836861829192579558062894055941471441017080339249283236165899902192220056770179461114907512862373393020257384046174610921101541687649263843028582159352056728041557658246695365116725865463535616947980867400748483303791505669968384873526026770732964444322416919467524846515356078697460869534173773944806484695067630090111594049961847997037641207593350302945047778422694988107858568054760470639658779300549539138542623168858091236150854898921649350172145597343615901846595534171029464048494222687386860894913426413640578877414977366025925920072784160097911653799054847317528257460226771431709010839620319784468471441955539546770821963282444220091156764273670231284501935687003747774139957195360817865156499547167619531701396650578611978086964847194647715308558032783080254624560949214885708536819156892209813123897412406717249328172848945456547235125577964514407583485900330699772987538538195813154875674119382613237670869749883147041837878312387926332203807024204112746081727270596221236488673706165785919865594408534610135715120360419114598017628156450000174932229975005925607488737237440177719688674855066776477094398816532175364373940990712513239825834580620835060022982600952402944302859276812862836595589468822227241338105264800460490193747620018319092569567171666968929733110869248916589951249918876721970560510411845601231543044439552718304994625848319368063077424127454459931033528478032945529955211889660309487839965325174216384166889095661229371465169636271214752217487371168860146421588695257652786457278241193505048024776821779083914374363814916255293443765954613219646472855242001972013331351667870805274059277004303816196768907818492542535260301939340667832048787771440202906068773349092942115485961099205372533775573482796192640620043533607693906785871248021977523282143216282202595473593012393159836468226434149427867935925688695378922070853242146459662711864156631353976478819115182105951640216933080384357525397165055006494291455566800386449408502419454632430946472625794860905876048778931944052605973246898321689941859399417279931887872024450131695238737710023307813020003783263549880276545619248162779634256966388913262488786456756570033943684032240717575907085494082551762870911562536130964040528356172993346212176002502548561610325236475148640667669725014157679678793811119928216944853648593593622749544995532027646818601986907739086437126252653510667055102248078697307498093855091181800249685620338940159796106673611505807482152723802520091184359469456338907165096262516125555053417885736202312206338370941874654677123145944932268710444500824373601611459755952049571104376454611762674377465432652702053768749408936910302768844350963893838926869322273486457317744072234843349243026476193908983435475649698548045301173943349965199492763856527560083353630683701466661839397960989805837998992125353586781315597758208079151467377212691489901159457567227253607391204266873945521699868620653921446665514077769429456771042828516424093880876804036190978131643686039138460292849338333589660618849227399488358273963730249568769107332758947354954218505670703890659871388310843605736131704197316120069256546381345642027919399625507586385392528881273478982981922598623385350490586157655511126082490576984197300963224434456520994238476254977961611876597695556116521178900911415983415339426056727533903892092930231894914688179153435375676075223425330477542726061238787824836871312411450295211167078165599405720370797782076443198832245159594825941474593633400953917596645246642084011515375169824038066813210609597083639492683355811992408940298802997557147911047063712235326361541898118354408461869420129300590523521340300505994334838665217248900626620348401240515059293945778903078906633766134071717607027645726514271166184819550823920728512685227207004666457774043472112048153382036903652885117710185922016987756719445127934468001563374667286295897319004459064026399818285354599770416757624082082683087752034356918300045421876666105598763401232833107183853950196948284353623173315691943240540493021013984526316176173128537783562667288700162323806432981447911303399092386149209405439973217007654153397768752675946799561230283553714026491632887284882457668725271036318456239047045720831528666298444423768335608373239531351674340020879456368813525547400679919595574438224909033015769904290695312875664417897516107287563042484647331683288154028538402090143568170775153198311954350324655728024715054222040876166820202666457307734950187298508758121814395624438835485748231071343165691328911193188334167407450505421317483711566071484201305806663778365154965485973235128333314099326642349356161676344482619269919810964765721689373552896999473377695007323124339036372926345145294158627208228460387569098259389522419797678072117866060698128255758090250008568310799832013638646998653820793928075297806987315835968956788726656287123051598396485054103896469963162238657764638289847095878634381384491260736342617646590978107509040200666689540403368372792752492293300663973070740230995506277969381255167132836854045281046243717439877505673732045617913675162720224138963392605207523755976157073942203190987308778214877109620616816205757825736449344617471040565425076347166050111264783776902826010347448198980463750926660515548359285474693876768645426579780897776690963285151022980921108758392762907656698132366122732281963744353473335664971270989284183111056648887945657381993914515911209302068573477176622214131131160459298706034427857330200417558937981249685211668065804339160363186336498536637155005572082233243055877339357922271580377538841766704851023203535032634469575883188606957433991809210838636760893591424538384819859121090609065471197538337010964003254724431769762704710643017743509016792455807839505947146485761659453349812202119026473497642619082144476454060047955782820027222224362901276426116727453256695273982778091966419853962782887247018197176119196105428179499801430395381652450491900642962952248321722443184846308907878291040128601352394162319718082657408123872149007244205989946144198165077765259839794579554185254197432893479485350427635317775914308924799124238621037864791426656686290361995731753353879874443384566665398699144292786656408672392981698012977270818281079809266847191829075187420914272467655444953353295579139502362529675867055478191756464117773588385957552103079686765591031017267508671116069650841566391452172523932715512670650917185045320621840151483724743841492343327012358901737754117400570575015271097412238519134276903693468256525691059608196281042425816198989069414988370890285894664466846683280107723537385846874069419541590722649097012218617317477952216777648564857368947056706337347117757245460842716468221688736953207575832854548169763808255834918832243816480632850552216838060640550127395895561342561246426528739702373462381556991686568009987625268870032275774491072248093483660274925790299119766911917114867169298158439576533364124754724038873908212747265005608950508165753904647390281646446844604962074128605877292995340899526000292303439256356558837377712161855413711250841861574286612324501274584892737855039281680077032761445386793043197005089359036437114930052123166071070768009366692999805468421598613017713822341792022081691863328468686171859701072434376701920759407530742970169836644405617274222364132036067767210640242584854303043957076568463032499488387715207569946080758407133737772574335758386469720299263864086401673704500180993477274452056603844305421361531530753776778434156174574488822903216905090493861966912537693656779309116974027601147398801089214857356037426504298732587994209283083400397585204706495558792231476420103552992051874313278940574653074717739127496670538471772365629930904114788493204288701261573169576064350153261946741391571008025030365328029343356667794148542206210345155288358540497920561130341883957005232669578924461209820897730008263496012133163227954744268402430033431630894903286558805324660841046588778815586024929594813617708518820603785043045503957161938159451094434550332655159719881215970786886151267961735865234711069699957040409622182594502551976495916435448222986342392096278713055353502174839089206212753974162141071575572035955000744201353406391896785540670868311390190401092130954613347683242185726075641836368214336667939843988384253526353645096440058723866760771314604037161591197689025028113671814766104700109073259835673494669603595927341350219017483006146972963324561218136845028387555241190387316798722134226181529500850572196103231046871359252070904797261410490505524281450993623832577322066482453455895870724345218399626050020092889250368448242165665416680290349583061385920370830914651007757639994785000879129360949920843802240467591632562369518834874487150347705451135460349715337053699298927211997450155397228321131758151797342556691895128264877916077997199861499934114706139254395963690040439725795116332289878465472104033285259277895488507946829599845704023718768097683952503803346264519859555895256994353453341354823060702647031246388918286153384119343602378968329665543237034802284278648474043470822958834716317165398284181486175795128795659858242751965531097735322899299141266650907405358405077595703157040779427323923348719101269688465675581100945352762911113890872901548914435845468833645962314567378186260810464901450776099394876386464942139554076274544829298867979386675078176211164114382399978356664065561685879962118791677969276686521419288350447183503863824843897640776146693105293081365411381877029353102392808485533562908417565516502806726084399051941900108531798582081101244901249071189971855646515727986816159475909374835606054997520824791227686752256081601500543269626234107381199656799278590210091564047169783691405033833236039942471540561430096781170869930885883101700588239094098616854783497256870699161968306311228419517142559122707689343140628405176486246354732446472145459176376847422711719089351364124543801527225586709265794682654411198645767110184646871308239555763327900594806025993391657955638086919889836183862810326034759414753270269409291759029627605917239158922055017193069142752762633677781930345241984122890249739916806345862788490420762460502848064346917683867916496705074818204717629934073378954002630643329299457185990879983145773765058903867310635150727010056083718636170353143846512492705796582261911646949425986888986635034801862030456411686956005175576693748381624279631679689384536032951136454892972944149983383025603394516320103828947166543078750298061218766401563814754192271266851723221212786730111171980996739774315867571409185758264354720475243753515079556264698186017740565439002307142209396514315048031057945327451531338171287941068847893783080482572681169823815032134220298760800252043331548460139933579589710028656929849433717681770610949552368569289598474683566639269892323833080999078143600352840115229103835746409966565733743828018362170045203381375392651029874824539211238402569805952533831154336991491947709917263281249805148915074808411810276109306226790746290553894781644676483281502340695024835593484470291016221950484376595286574669126800588640880913093997423767853423339677400507069248561720688259269699281657257512252946969805890689513400872253761475965752301811670524569604008497162129493679695424000833309530605727795693484926445123562699105523614287551586704415942230176308150433318267511602620585582391027367163345118346223841096148620693844542133395243145101077360379078645573432731371619357627041402176283612954159128272936746157602677635335580995533772586989593308540835176798899731303013985409627861150543160713408091194452035466373337998286774483759199530377540100439439220523564313053928398609637403768292880954540881470588850247951185194215232160290812953056158307447385378244872475499205085950412091729934586468070301620197672326827181237352202259247377113987444655181937655475222357434999093969825645617512532302882482507871991031304501591101521423655100642849033478893727543837492490704349383082551478245894242395998059849259157278462099163755668397318185063543664063733757123011892235839768776922541059149607535775944858420211569561344214918961018275112607911255212625828009175358060508309712256691713580338216250658302917961792450704730216354515931813035679628845348725319018774934814414527206677887508941813724991372551353898108797301058764563218948049421071298567513639185993007526300074438061555137747469053359143518241931895289186658815394604596297238673960928167855540051404462106538349113678738385596394833277767321138362071468300186806013205269191395603679517447340775870840500534155322837966855041892252115232145270835495541941639744214477887587339854820699699701483703602856273156276248075362271731617429563670148086987625108724296395783350505964052315956363655736994641016748635419485822075246111856437413660048855866257819637002427326474871556841080300242948683220546486343722203695763087710796048104951051634227160040705118683553924756411563098207944489691578837573935668025735207290076480073292829136185526939428577169657815389413553875596239306372542820667597038103025892232301873368776367784027648178360970061880796284875278100042247575119980470457914925752752332454409087320157998848270176283554580220563589587594106494257462532382250747527311341030087056700063180655546169361475862896431705663733647757442879732844136779520984684484318556240655333360060449832528227604956786978579484865126144685920400052547840915917223253220115307460141952394590295948969024390555007223521686927340641261982349276583885908070036590711159810335515957691906265547205784313608705802690064506112911706789088883734940952078584533338923037893287778172695587985739920526807678216934477397642564617111572220946456536080286537985975440330615277319876509404823948321326242324359914640967572051762322771452470064281807071688972497861956470211043354497092793029525262706135148785542881713706662286906558961477553981027130840952705059475639793456685574058981642339051161199186820008007954109442958049248592479547104837222679879521248519991810760298718392144097802049107956707299813059437738904579747630941236747964795140880378390462669136503551617830895130611812838676224495030467610407205269063738832781174170125746100125529499069948225211894000724620564018762574863877876841670389347222976595913398578994220128481066631376200854285640567410732357922863843665884465726762742466571670187175011892756792204366328867888360056067756954037213680840252361143765084385683341363683189522814754419492976880788373871834161514674284152501829820480207026894713430502044446212840171868188196706370622309809716411778115493853549191845909100664431839891250199285590216533384435081670626611010723293897113984039264809247216916297114665491915638298369733326066977963732970377145178127992548187709774284820058890059627427997105444124847369187459058128642271756214399392234126060000329627440864025585192465736742623008466578503059582963656654575338936530162738307743246041880876628194146172736487343846959202019974473491924506146867421664786035295939654984074858448668807672056851179807762500907443430507497733816964131480599943616923053469311634216292217877086534551422037632347810124993761881409661519472210282486441987060164107978627816543948394545774449452222712474233869683762793248295516726774687458498653937946120959410089665324718966697627768682517863192080729636295300056273926359425855100290096059251397733534267095151633185876984846303959047409109102090885401839820133364224733826099074004654686280924630644070620458973081605983754127599167018999801974725033401676867308754228740925798017342164596214985261656196367414422549094295211783601478755306817745540820478208472426881198046560554835943372281535318393265358613263246988889042529663135363011904048084729136971224517490424251832020220599499207951697909971306122544458173216294164609648937648449051844744428458331404730918290697784246128776408509296147230687499984861931294108377364337859783045777680558146375596156238309765200257606170668633536726314092702434331311107353979676576735680993810364165601949949721198768650667161252769841366742045855277657996876447029938631034868514980742416502575309241149527797391341235139858951518932255345792705042805873511373205082158127273179543379159689567345622228113165222885960276653510319653373642227318212010162489669589334340484100196209239772377978336134986942709138362614857313062631796887349585608983844859006720487371244093083484700006473854672947804181954097043254412923736934695950080910762350416623379336199205791680029411875507655550984869653160979022074724166128826180932717719532713395282226027182079425295678419182226610940755377645862766077245097638281259981632812725589108845908701090304415546271732900223669436039770187401217725629027991280055075288115215423333730410407006536645993646991602928469827699238621352896868505959189907663335312556478700488315049886946303337077388496889580644210290509779095241206046736760128835009367949484882953066219597202270938662897315452824668507391456613845097340394842992437079493928539413661382704730263228367443987561741980212254219673340541274636373223687014528134015259086889697751115134651780193133524859947826557188253093422451640945557687742262099557584732064018802111984122593830899035654461496933361703230974107385848872750956230213225185086013334168133736499721967641222568128801081151343582930657191805839271043082366907881570007802737839550176013696998453021358366462736995068582528856020254484337759257262758187117485001281371993816374898040700204696282683730307668782687663618522628399908172976508779170948464674240084208092619850280715698216034697902295475611632038351709894513419917632305590894571496651068928798552807834704950482041393012340133144727381525223308396942835010431145405890023512076488996434631794472069383524104774895523274739942028181966666098479734291888432148085807887298718198037040546140653397603990045183009745085830704827522527351979521273104177004783357620005881042936722912560697371638467865020892447862262076669779941962841445932889983659712301057375757985848527236648401442652707288953889319809047728818889287735470702894815916855802400300070384324909816408876998560433134883786674885238290449930615430661446601100875746835304594420929841639061603126496890833435495383005302435762725161075755414092571640783018680607025181983800971848618315323630933662949433210934222866955196885529370797776025859513871379649407976874906366870734592844013046528881683337587050540441845040950943730932157220778650150922431283412475932823967902688427175665296150608358213651842271180635158971904908689122598168465842155003161067132466781230996789458115447115066900509770733803612291203266969929497376428034151966609389513264488559700676914536592551119272817308832162985947311769821542281766255490390690830357588088413890624621208820747855967057379209502456197494207840089013354553533594630977341444208156187174169016216329568948057207128097145395518460981731420741307941568544991701888602403289676279643115148015534630491726293479299795493614590007276879297992761410239709825598210532528770883438850707411309216922472828530363333264812018809385689498769227851375165710790031551845075789289859033697797493972084859011260058027580498132941204081539715748093577140811736278226752450354845980145673655055971250647671649447694937629086646162358823880990978901192623650697628485281709003257784169893380946323422751849794252245596515525812870980944756051212684091499455954670834026078840474738841551053249272031433601345794150661225629929247240361514041266036843344702315729929132208882234205945774176241672875172544681304746692888206837590727389298960371459421755369759156247346487787417504252465560001144941074729733237707846380115777853702082667422339899249133985212957320185556867815684867298861171855518195943746958703529106262817062910510295165832335371454496698200269321749212675867061268144059732009268219383312322842907724321636921938139087062887903751236752845236137315393772672106756424148415488253755154140678512691119651042137301477376850612541083666439783674735189859370991164560377028199324996385274475695996844692331911269952892143348431612203233514092119229512786164989400069629302267294102268427258132078156576648943914572693534179765498320103521099006262590011092139494741567451551813194673517321345126075674077863589864060044044600646677815381493016668927083396899140112657037928613877761422484051705510952717233044894390566175624835734986539665929755916994923482351959703920633780080098304830291425709175376822056630816778088710238535385363299846993750130735449188239303707334414455951779905729257029783083322049516827816186667008467840923212318305337326931222680986384103501359778623286354379586631885918599697452787287503311194325727592447066174087907391008230858050850360471335790858885670000129553546456105976159687039523069531955790437435312469202014876538824160960340587523013641671399965688952927609167855637735594074506592908865234757099943011676880355288743919001469403795229267897818388777155412005692613190878512283083133861162894611773359997083275327352877232445980844102501986263358213278270855123143861933835704452737202748210931320595509555257646872177612774707723459552746920741162396743954037900722394236033567001287658339559918760766261569130359754362662726228868539602103592475337558997424377501148121401497841720050479810060097459700747717878254252483368099784731453975329719518645745285294865919922892751751413829671057792709309567884346006359135301360578859618242542846742142155833312618080153060862750416991194756012146389950262913151878811226291424281751617011031109109885057934846063323043041514904893358240517134437421128602250114843294275250904909531397536366885026842114508850043209635361131455685002395576566305251276201001654512596054624980315503285080839883206471485194676928606308691562630453020985470052572670453044229350214172328100824304003729572667501347804787589731778579745064172666109562506694719403635938818589298221729271532498318970370421801496266959498996455678678038709760854169922650706441946854172348269654118876497385744716111075702737451420613670664187862646546747092162290253889417899359937620351831963700543735709999142552445049605442288422432773462507184989168286028645852373148198342849301036924937818429367296446717498832213100637473930405923962117883836624234032389974751776819368529589182280678309455501105973954055430689340835770082180991125758321699439311340825260814394188407160380630525411429068246558126542483231666285960497673214086926625592648547824865806244947013044106026913258148124010370753921522859565259138567571859470285482562388611784589568233195756890645653289646501490307261840909406602315042397854879330180023813498276275903993609715595348524449584106532369241068126882978845461920242530967219440152507138063887591709759893430363353525277318910520936460727429869197452820025415642309531596949302412933599488924365040752714183377072486182918515527400924522860601992988684674338756093549917732506876760557334408347741514896337803630438415692200273504567727379518434658757821319371225236954291131287332825158869514908647580321526079208787082243370325390291116851997188887602379642230570547971349132011023739111957069812227981840633419490651839123875387337245887252530000024286218030291782174574506008039416878612689763909341290842394917841676509508421377578560393933519764952628222804253684001319967310489699383321484433399189376981708295183306551930719799992251644263549948061941853721750856312221302806774356044708180228876642748312615582723688867749238761577674688360185726292752375793485469690564757939791892883902414227608044305591036966574999255688306235840394924122295222019510032488829514550011994457850233252147657288495506658464814046778281952807310771668449590190324366343165876161442432392759541644557619196141903144324433759542332386104728723920282146626125159337445528897470704631020278136154097167127746087247104547918312673469671984843556817988388356916276131550596060773455209628930537405877446679541855238187389075776502607929070797695837272682363274879034562619341143209039117494616002297832093201345116280523662282565474480241038950470303337569375681890759579487340510601374328397372126028291008533688741613714158581214053452564954721163300803411215865943066715677436985773765330474958267247614552488130526341267286776332339325552063489022464447071200296379868931246310534610409743992407664941903673182190210036112413642447868014050512706578608853201114287970619379950189794856483912352695885806820678742442189398550568163562249007529644951126300307822503600354211427330769530730789722439208907382577576552364483075445463782505597405662950677855101686820803682045522250697970699104617734545964127572147976004640419177819401463670087954079922752593835657073030032014831187807856140042504874760923075199288864460779442861945169825435300192881195162761898950508623357114047548837846005526379772099012407190083094398520988680550542251300834390746554615805262535105514042104405611636667375691332098505864005303893813116510143867307575539536494754503358128273229792241672808438267011778943234415905281895097052506481613663238460775282283973317856307517062983098438039605632162812407562529647000782953061612484038856985577889124962272885969474134133169864888370405289107404960750345331998002805547683108920232895813105651967437161670242350372789293290479146696838955809304049020148198972772799120387858791453240467068421338006467350412216432654788172046079238994676927981653980788788561993394488475267940620914137553930443433222441091548792660409543919743551463625915235029717555273392919412847120520043736662618371239235202669915012478990025639258744941024034617841479539333498343736925077326485362332393544737132454119491766289263947643052734673012035373302465000924349373735706221618055693271603268908270419688751214656351687982708439967753033404679811122090457012157287159346859881665525752916049657102313084102053146926847353594317375353336992372405591327483569488743062415576794778732893512820311723774149965165144736022497128108594615785742354584478160330493539422320749567385663434787015607123955922727341058345815034258017727152637092197558680721745273238796235308895928967285029881386355090653270502746227619776462524449141359887623946229201019112935469892552503043082912182797696317386401565600516981388163724121098931381818303079507544569461855823163558966644434796637293127818820509266353964040044893806632198403527897824340272232343069319262761905027164774945938102788731234006207120265922973024555093947490077154221917160451815935675489463348171803422632067058843223606897800856606673980846848755104435998876448183737183461408192274623657947583378450429272820698882378617996485198315809252985394700371465921065676250589143388310499241484218157338097699821007934997664866854619463934971404422273432456936385468579957512967610238831004031565841848723223457292090883231994439289029912707863626283908307107915124243180461974718954487892132747506754303798257030853340433792462396802879596965818841481922472605015774003445680404569432823213077215321574093966101316241684725732736895948357958509421165248564537276671426366834068234041897025581433726075175910937375345570936240270903140907398755101834410791484610253863922275348131402859554005507396766903565462855542162777177765218944275984808151742424953472052871258045951428709209248984901227980144539009106336706316400728675366207817271425660940549175186986441629401275767449292448722943086757170899076069700214672513819212486126733577615959667342256133977959041608450741968726059420348819037597241066026512314657295180258630786850412811319267588661226044602191064623426009879993801281811748057879897265240533111809495203472245115863094945129730429441247274871423387852207281724463778456739531292476012736932187913714152984384163554962322453387632227401001061041380577609990622181741368915889291167148275702746711388240454643927373137964748406906134567762358729191381576049427302142850876383802698760235643794149939764991500315973315089394374672361400941895099739139919890788797209792201197433126325401371985741724699760234729945053835077027357612109428021800304200108248411515418640589110675399188745637150561316639706618924033971524679766153271423438145487303646681401301134824335750655132867486700612450368539856647600847132685589198153990004144401637557009035198351448287861625656672372574366100827847900670571902324879914304109150303271292924714697804664869198894330202975385210615429744346739761321248796347870818593562444947107254243434609275655601916950904990987132923397979624692324914031574795382307444752546925474655622422917736131104985313330335446717114728223674129698029475143400363410468116493069134420807130696364313081219489564246744854179659205546069601647963277424325254223178378554096769931902304431716307293902553401277523960773095047010314882576749366891851231714152870880665510443994453256132734996537380047599191301378434830089139328303907149087082387533505754946246459343559165878382533804532742161911974395123992681810382565939760703428464853052816867617351125574728391577105611040947733394339997835678717165827608246399983457829540693174185955459699617417770346734690926131706024884920140413425969813276098831234054101548003119439352845064829736131950586053975248693899794245431679236233141820055447480412141983519753396454645749161423681344096889914486243964850980669146280767965110057696506173214381885066556482470529579622424386786486692504000388273953612373633719106913754530566104932351241567094106159909016935013781411283869427751588722546427708911993020261573455128307619632580926521859440172569801619717374780399756220353707051942325168353917042536986385169173263550121891311991469771561619391494701599172334614773557789791000795311392071596083346564678790893751387642726826078917285613179216385701219943183172339293369348213781891300501116059550031116146592796503929793539198899420172652162697127302478476921373474430919353806800588661569700611900940470826104436958591672146126741035244241326681696043814104847337229639471437178177242019840969295181932942603559233824947538261617385274165799899566946052867195175656570645734730649240088957863120649671263592341763816009764738695738606695992548024263316162929117707532820032053006778763124525458911104522286545811312615084195755917261525112836208947042179981775031135814162260672111009801057628977548937668480525688859948378932881183047878693781054964424097794363311529903718773210976638965319767533370437813571754121715995937055489593592130123372649839372302956665236703772670442691997914928952100876722745364688004575196567131237739405251330348934498311323630563221627451264154169980060026141091864560887105316670366361514691661107056440047286988119499769545811060073891071882923645128107291938674718013752118856315153180989339267895960672194892139435682433762501371313167716895981236619093472601641323613070570309983035796357976652197335048882243361909126149206799825895444487234174486256059936062109463409890017223198105542149382027079124204706524474905702194639740430638928880498780809601631527763653842812840907557357194243578939691096233786968970556447155580569790263528491880314083222559957183376789709649252064717535157894499006989252407172692706762529123520078736910164527612761119926467530081667115069653342922786904369318604521284273807898870596417001234633338707174255620595648286785437346063022653460315910668064580004061426357804936788306794931109039976139900647300426548003744164296006149596939599899919339575188460465047941746343984216868947248750501598980908043727953201668873298489137042168052068507455568957269952504534546579595045901123291817518555987322122238725568781240930441284833311909016852722058622234271341239506332640919068944496713762092686673118230301368530446113714535408825416860165411973674005626915239309673501362057206113038305014733565551371873386458476449520288975727748102990354565877279915253181962087190713581438839577176389201052427358559761717083831145219613407598819922788758647059007389771579605522854152607263402752837029555174422376613318237786291612688092403380272325840272930387932099642279271296333941093734677790371406470604314600847597697885540472149487790487774089329963116762629580817654310008078112489210945418446386081021570157673844743072255921713126586113770796201984121312610280243964059026873978082423201663140518472829247985330411278582165276689558613172307070168753674341486863705667954364760148245410355816849181846745964640614981088854788532863073994314957787116792724587125005491427666698720389047346642490880715777007110445603778777428168536713607596885070461290334416685610067183998886460674770132752933053065576762538626046218840868863677964488404941342331847661577640736389866778855049545997943418454286813351343622127514585717318617139816844131818005451140828581018890402732893850779894089633439468897986344680988075871892252150785396206414157676745459730105282060322769805829961126283085801011122526207319433405286626951293688975601674305789541606178736473778689795100407320576559529814694497072574012115220155642516635839891839968392274153850636963963043576108971104587496596774727003237397865253973464105327956655055095207749687240999423623901815647470936710558111003586082158241476261429743135365936324557831365473652143948557804735586545438966025841383021480858163523250346217686652358215824761669216776464732424733723652501621055324497929754501304278735649902647763521205816187030592904297735261804722877352745624864858877387079730289079018622319162826576758384019268192840049261065824982862193426355330291095220040413707521821934140033216227108584881179731576310475472939761435240820167291170625084473518542414104129748272208386914452204265695537291781777241800054957516039725078471770148925503194149463388690420700031410639291558379108199522611393266487880220913161087091651489148816819403361371769331996452927623750264593353768884915194665345289199995951303607936857269043330335489046276440890144007658472186794983805379073664033406515085502098053763643304944089946304744491300988289993868594480996526303338983446371777925762366075465510381448274885813840651362484277240359884341067813185398092380816291461199301532467624137134920182092459843072063060732486742382443622246080316753316314688361303523239983019915846270319661996409320058742503541581587601971735140245450058314686232682434695526834450085586778640754134723380395377984448521639052274833157688926076583486850976564225855235722440325383129843287022023933413352130655503194304022460210002716780053621245499755966827160131434378889978546393421205380062297920133303689279160182889260599544401019971925338235799446175588867386272186241290798375453263720432962104573778851600576499218702669282024522395447466666597634069148065843885306230008664801423836394939584343704580956742971618959890441063819267423224509242282633969135633460871356034791230106516707567376231255056568248055003034604882191928360852576807904612829302558648033445881902688050662297260346657432308488540816678702451310583706205567984713273697189025591337455918931034791754559643445966323924397659767425818745101358996370421836655321020653216440994068566443072810832712216696280634824692758968476959498219931565306578991010845349918963430038519836913106520899312079757573567373283383147553819407127172843899107972606108924441288108503795114487970515559064924069319671597292546024325635363074247168697059454057181316091457266168192619735527653360396588291034237389458886075601930963140239635501286496469531920796809434088947434721647333118371003967652548885562965673928216427149942088440201671946172503455706730012647452934576174040422870586280943141452935162022558355693640418753715129748830578241680221119205339457707487771771930063403371146415646677479604838253529411713701603640775828949128863565782422709596611792031405786868743164335581005880494193710542180607864228600418648489299338410924339738224417509299283444265160216059620018663309197805853380843292985329428494810585330312092278354763649993602187820622716550818693756265244146104885764529469897500442648124541982243704497729810372120209152793852258864805581218107082454937606646470034680999831029087857281578153488972210300778582479384033565579619319733142026733671300612077629672189222285930759672418967339388196479201365156549940854862571882279204231481113388117005772075787618352938853032140611872072180879283421800298376187335314559677864824580520842346752082649189806259090611908888654214558953923850737295754861795170652897320381023486348448570930370987594915977999399645640470262095608852638214585856309288401488222964752980838008486638129928665927498272549862128237586891262129710141265272657712161670868598688179056697122183467368086657090339350008693454644946158686318551980304758636678273896127343086623117148857806637663830350959231801853768524639169220785527776045640060053187370894577637554714652550126521680899078562371451727675539242168823049769036688742068233761361156040800604867118476934298342303499962890299459461535332956668077973067583305446683307250227513211850660721476882328995777864743163688483568752896345080082112379184812498642813030551800775833658632615117081507021390406744736154057887451147774992564983750756104672773398323104805839878429777644581598892119950882532764899132395132944455174614521907827305928235702799363005926423730605143770424467538363724589887861480798043931351314871371977531207569438435501956530530458462751062250844996039968534300822304846362130213468884556754218080497882775342813450511546356854528685357510959479617953813245554143816433138779165054401429104878559018963766341393723990949804365892745462033615173176485850175057242475952511917491151895262115440585250643307467305117251133426776643311607585956050117500289225722401328550128026554165471005505688892601834474894512146833509918912367865476143114444339227865081346776666160332936560244770206079711271861528328649620479762977515241120008296765030943065884004384253352103961482239329465560750278344331606174894875213700219890918577115538761922903746079946942636835427356942843408505029437236720952296418208529365026057234650857146374694865490644671469412604270924714200187248957268114438111319086630653735457827369269227060168135342301315862971686158162161481248369170849287067285670624536837534776730483192025849283272655304172649850257344172131121192435027630875116346082313506234179243986080389962070985913843890771011706774230803126873928813000329412904958214130404601878458056076434300907801406386932576334243831313018340249142752697947794124223627944702352463707487161965443853226883036967278693906156331729024167449201283790576531761286944321604428422824460844685242135763284667697333287320914187926648092543705587321010926008720745281008134733381707873562620267361305534085559127792083853491684829785365288251363196026760974196889060655385853092867209560420210869748745078124121516022829149953148932232717395882811513302494301060076109618283133522809692519029982264114314537891192546456899373099789718479948791473261151037178714452000007006754425028059074272239746921259622787685570412937055689203788438983777245330630461646868164217014181800578275233510884109878339958372333946163644295397432984892466900753826056484078992773107595164703228581161313278046332463406105879935062800720328480463233599608236460259466490569303615993732863271309680532609369304028832141755588147438777504642481908974942981144210965610018303892877508649807873751427902882387529107016369800735019738271132620925334633893077313193862611587150012714261213589467273606860078465662702934621950370412396840326917581147302952492014148348681658248133626188844854117914351835471792930922837263421254540533763441794768136734701272577856720735707418521684532353709115611926810069078578849902522925412846580426599558349169625962304224560289123392046656451978893967270415322510355874068775843891227626283303821463139409966017729715326952674235725508249752274482973469489766805276827248421229118812662786775584614235954711175279424209408092664157477970667947789627002394988882304889269805222149789232751889162137381256474301474111228312379829504505718467526466383185989871944774224239081990604897897615578651829406238381736139778712930293249617133831182535127915360417528902043456281488883511912682160794555291909346873465904723034376192698197920402322061693084359186551500837608360860839957007549058243967486756194430559913430309502225829387725091091928116854741762682574654243761372374884823686544074315134056162426775608412899135752241904434762059086925523995209027745133884699100784729473144958727038722095241071489280770072167406792862543388039371963532611297512133259502761582649553232236281392681323476291174104324256369959925483210984031883712306498045463536079133220822537267219939455407731901354549973393121475858796560158852418239163865670571400999526293286317080479799378906975920475251031199497428580165365263092002393751236137407378965544763342434204851199202159371534452712841568817366582815922654418178824779125902317942414262120020987135266219025347549004705503044271769513570464149254461241121084206500128289649745122366430510751593216244647093097928373282419491193644478843220122670379859360843176902059169955238486734535642846198677523534433024063502660737243658763325545268420974286304486034171689716281514815722426211149985500834285640396229575511795438736314979829462779738151444014830105764068026539130827235934629845738257611921455960152557640028343664026028660852392237286338771911093762654244994777930718440867519874011526698217067884191193672107618795280476451175273007245394924826926774314469722265701175564749915894237759778298353856744542743762841379766442122400410326827129949581398343797956197140663962808745975765697041721333757892102375601602614147653883564824806314900650884027503356760561941081337591703663713489302814499804801089291163068500379933212720615974041968979210345950652690569791089427606190504629461312251437399036806577219115149944106164629831227894558695033894916218923598601074104464407911611480960445445192625662442652144510583577199226978346013943195300628480397676704642099104885351074653079462957020584874760011884102124726228051583627570037772787383418462339616026885707226582044113767489046982519383971828131849145856442956294527882447707024490066104576372486417617529574030747666300596914158495868412795013568448579090412279080604679975479632616184055073837067061905572994686584815747518803108337433003754981462915154809341755169950134109285902476257745248950594778505642367446518603162640811152654645202559565017051512775775639898012763843829956351063343102957807998116839941829251093812228714211348970346938601322902932537271772360773091144295041676989453069298074177757812121114233157327009504847991990861194419322949449700922361043870766340762352316676249169077435582063783903239031562044673533116006025867483697084651793186763877249766189804842975860457126114862298266233426225572827613780334279156581338679433436411026576218632805822953568337812867478436823018214312053275831777871319259249830332757259359355940054211684574249454622433082970445232519293460967286836156084011734674343267351419687044562329576396054784703689628646488205679075662140351265221740803207100459018255430054026562989147568302801274349031052335469891248173950140348763593980911058378068321503824451587526452072721164350048247177047428219233982002415420129209449952524889464414292248561368410884901493394977229492538146003475009775926553389322937628874687902792172272936658841281778905996747406381687250720592097451965388820065426520919395101806193067805145644836847659426126603764226919743308301727488433408255531632916659497349911408415017798445087924413295674856858536831987909414009975828670120576926446710675526285915180674467200896692899400107170317981108973454317724424043286744719169719680901755705983447304041032601276664543308425752475485932240294110902482240476283286123499015993695216388839378511599244192014746921310848250697598986389590482652523115344904247523541576226313749182351487298411115264850752007994820919377293929211790787634866432709072323390045700605947661115307398915567195511742784544488324778167515910788045067116918649073350596581083521751247462010176181030540413692097420594494223806913743532821216233406156566047881217785122672024583062325387709867858616475325946554058055757455795451901696249103291416569405910080334710655558010405980393694222371569582191238199072915506452472339730500000014751073388753816928584809079566919341921707153741170241471100036773754210298568156306447991601644957876702350511584955939520673808935965910876753610706784200453754822490721109972583174817914097514804045296297104106442818474488421394812939404087443627702448724341008571606606951452785302868383190953328386419054182176838234061042939989281668230383259066777152101538347999086008007459325791430678231658218474426367901863724301553487554796988264680948540405864788833674543888955308195829222696520568756809391457947316751946883757573189029594025498986265090070762147596939831460781392229880682875792757238085908949775638634908812110293890344625343325959369479453498616065561067068526620610912822621670729499897661520196247157413472116066155146457116080267197699264795257462267305435286400220549510511145065862822231510492405212894242244341536357771275173610878542547122513035995466541679032974830455081890060189374350157117578295135968840071448836015640869773482908740130224733433879893804498954611403104133663031397183684473009067395890447097881814251851615971274991203531494742399722549197676418987971713710393939863508019259078966323354760591495215181786948099420688796504575707748774577341958659619519843549569196453964617375567078772389283653156906555891168625602859020833861811620609198342623950366131201898088354501053678334463919175287758337560869765361869808717726752968118269322181200935745400162360801729605847439308709388245237510297548996386851601414930860353588831098313616867380075684294435662968160244004703285395282206220948729504321012005850970586282167241242843800069198423264295574830864798811504695450061657997551812659999126773539557690589422081215677511014849740815459015949192902958006119464117437019519293777535239162074352583398632915090741284980621178406352124090240683273090496440339134107134918475461446421245601045583004876762578738095393253196769966103865163119464862166244156475202811214812010285295574580624219092217218984973774096897671109930249108061371854526359137708312526674620127150142385531668739613788226844642097554274348552536310650666235050697913441181676173319509207053901775474845603498296568103153074185828092800426398388884413075882223233687510349166011306258384288979201457871144517623296548335089572623067113960592814673046552775085196779031357143525905391251697150122766825710180726471621502759454494081126020655339548391027065049905517294477969290524327503935642146398204901187548456158346409597585341445531647612793515687155648894217713111716425886693863598601794901113570496809417728157953330503779338630546084168131454256659085758014601351931157488702147917904521336180184183909682516790548737250387615175268889762543891605921227780774943034662129516204993387609830767835398589934885986312642982732623597638120841511164712268027155996256974388631749375034706893254136522463736535263039702483334154457471494154747081509856653402547270388568157423308391823197607945761903638016163611440150619688475608835456410942213148323586090042125987385799977940916120793972497238852048707296246003437316510375989763677969991455645456359034469562403151713335617765086206620397404001968360172355740161073886569113671785324450978749512546154961258746468822184250148456878227194498147325937544207468354984111907767877368984444913590340459736201266585245966424368751703413977560637581953288827378869291146934405428681776302674647267010158697556211688061915995978694115464320952331548389034902739491950165348046707340043828895438980499303769325679346145782163713945457080765623613323381884630298389836921454949589686562864739302714592187034493253487290353498498988323500483562631497679873083672761557791204187686806239128364171985357747577206588447451232727330820044115835994882876351590125273390717734378092991581917794654580130676822714801802453639848329456789365501540610762934545435582594337797346132599373817506807693945228717764429277688401660934279310530035716114803644636936653765241968145116736622331105392950992966458376136649364144912459706489519523632013951501377525759553541961408314628724841545122661417917459639577478008493750562528847700295321221800839871991449230659789015464415425433954216414144644426344686454381034902112466843452122126151598169778391280126811852246192978045344765815463244340685363179032919147736614025079422835144162246865445208432842637036917668103929696228059031184960766040392088094229981590731146953354717176554128672741194495650059658169498477874933481182999389635943570652492333282303521664067320734519472571900692218310665448094169723623757959577140721808488826679214214354577651115050986964087880634385424905166263934196016616384244629026435113586425580531967500638506841539305238042532305632501718008216954691220960613904791146206102858105345737508501297170008243244619871068859725742816823448082643251347705076078784127863268163994979754872288174733021742777154150090377787151958762267739558788734232114263040735999674862638381132916622318147092928402877487781429248509679145816921465830322344805215589976913245415207663744103005379636019685136182751497557862242754875099602040620430410914457115444504449868656608420617017435769892985033259487867852580395208712744318748172425076218697922772804487322953415436799190655890872925212810426165121343013680861018161654328523381613723237405326173657699652525717991367108169129943062507856075476185859970914240849922729715349762223302164936968773194011339435781878322018284585970942531022983245232525140246398057642492900784032755277133143696340638653188413042118210006895082761895103900464350452880073066276569751340982774878791579012709379924997912802232097934366858031057316072280721734386272881018296164852677165513539182911350338429170406872691303323712433376436229466896505281695896942472642062590633611353629772435907018360060307059738559329336809229642440527448261682262585472925213844108121802865324328580180468841184360946188430801561654434608418722154387564011060268093587108082023864908828383849809357203889392529190156767884528033093599503862324628170867352537608392227814127614815899331706803141515857982531695407815237739574773522698816641446163527940051381931111975935427843481286320743158171180508711259406670473238669936450760492508895736313398843840400663185601080039466561612967936678378088492191448966571677507113243536767073825575644928359158174168889332197368792908636768557790379767282833206327672839752530092338468872192589127467413476976793108737761083826139118422011930328290989697421646441931985180146759305236536664172548381514960870977272064465371600760788567032707302772652176672648734979320768825219707797200339757972619821445689218586537022447615265413492755009137420420450825392412879629856432346476972528446893563786650520128891622388022203620111988835465465954108738209154449114813301643689329427702082832005414120076706807368702799385612262089605632028331855043256050344748880409824933326612031445147108441044517289430199211744998283516645385568913015988950451708656413089698970228756977740366237956845242638145113049587718814873955643422806992203671405510411075979838573104859400969189171600813564479371614595680075834125680709588544237223013687431782419325878050992909558708460242949825616418756365035785979901967714988328592380066185805471153252677451183510993358050716077434895507484417219838932017624760556217530013012179468414636732382410580542853349730100853148086567654258712446059485216880504677532006464114973601642023757272414350329182690659749433009502149299593948727855543307882569189831728583658566200041346087678495660733197377350706402917012659471522373885490300093889686323808592200736988402255429862006788713982562170924828783630598251458566532154921086768185940577322976430329301716848677246474510895254499902176200835688254238690763528997654388224050326459173070901717811216676828421512579625764529643184930199977816622083943497825774426298577756620102660831158340889062985017470871407351016885229545878940195832829316122570778204696622585353234966216085936318244594246936004612188106557172897836141456823841125718398367165912308084273989420157437809066202603240075351947640948360497631583091342464953095700142898789035334954384332675629239781907297514962095098053218990254402943296946347027817956996474201638334195937195139412317765705491155278780453227312076530308625969246926735023834606722599063083029589555870132422884928672555779098011123835810041417737395346178379514263316554105566526793523661960421028765433655195857053098488458491300956709586846450838042016091038921614283423556986284811567188426107664612253710670224423684405055261256918171554371076466695032084803099652390383790724838970788685647794402912876030523503029692571661936667575181655345794841917094536211044849266879351935953763805983660659072064982954508204758859483967563626628618096002084735121951665037284793079163047980257083725415682833244664583494322181900610984567249760802019932725621124076484483417781769567020794743155712572061047041930606730089403364555559039018657090981363870603248372416330376545724108647508993003752156637080255526128017910788026115415187805159901460848686579936623476739987436904951199705667353030519287891811184098206910711600396837697064578871109473604526299195962671687193934115659752664437095864260581117755019270064746698298996260677994549025791410345713558406165056954949505058103497527075420862784420554614979007879131586741208798363783310458751252973370969884893608967941998497145936611916877000554745311682787961964143077678146862314070170638998326356304952533716450572619354546742287118127151049434463785046049062514589443206549946495082823162369715153467501044895953408805315777397695515064362943461008599087529797137878980339047521212794491637396554019195922537226465467377602806683819661162211031329081649687849054933002506421919720739402434061244560026790386419978755334507082084219683004197052732074808815468842345629156048376504819688469124076875537019139324284319737614988140062187884654949145134131198588663571452301474573206982181730470052444344446365336866009166572947249616137019542551764517902455029837468823179613893923801615220401651266557862393391608255441805593504407458186068865466335463766967962717538461691823039437506545032453849945823238142898302796913945009653504975757608056351479320562399030591217393651687262888137313072371260935242409766411345818334772132607291282385588466154252324354961180887616607330195735872971114865999188360549194907964930280093504468295633338622678478185850709471945524719215170315742397745674326898585935332907069119512690139333393694412450106851741307074553938079003317321810509102199005056831726185494349369441043744105141746464219636476885486274229975664645485151562042248086999569352891070585387299894088109626914244427976841008662820196730359504777605874578906056488554829712666699695379397505933813712446279939384283599232192517830077825753267371525294284737516979900827389204666636593117434691852667579456872989921015717354397331877074625529630443018245715577967890512896707227797217196810873462995881895965429507707113141030130279650916152830436914641999424693335450133534871379720875330821894963081402523152758482508739874507443595270442263964349361309645924131103256416935930226756556432976293406709311571304900700686453230112316968973465936560317545337568324687334743239557531977132977856853370757647793777257078892863609598777587740904261779646570738259426784240266930134555553503196480426326867947230752103557680252430474949646021732127468309838084810420776400304455688341728032700515466064114291280375078207285574324100718976868338521717006918604142485210179481386487511383456594402007016633322012102832847164837989853729394854982490397838426883218092007729927335131976838701971600836226823480435463963266944208703654848390685701384313292458853092031857716539799150476710839429859736584654338164832676738459746521255001247853683399583117430168572324422629589821943838417300609870351957959228851086118603113806493480727013703358751266766042763701725612230460501708962617545045026252561003728062716129275101661058552318781647084362931062920031391163275837978051604410060461964717054503077158834130706293382062122700429347117278398276055111698195599566530137556149696425615689438391714254659430697713111736268463919521051261960411482346051986765849106486053421940246280550936096818370796351741727961980612883074909326770501065550745499402442199681754656266663380534218226229143091208407016702796627164173420853238662422985869220672552563818229518414263170124492422355681936871497987386302606273191528643895094983292450253390983187058246477898020467488005362696622296719506690267848553951291948818420336905132456229764647081349139351993985078227919251223550665001491807892074801625747570084256631176324866723264369927158286567325277155727610959542337588474036986800107277724984915107772542702309000535825939250650669702580388346348667888852998298784347415318077167868143686242911463399750189039838591666008895733840309803083026941138780910635244459774506698700968842545713273243617828831729567521776300979139843455687800030821753786821502908965702867699328622919297077801619473748225949495045835696285625532839529415230806800929198235670411117752117859842450883391850101751545838805736250451447954412973775358644954202629625946358048707719287097884134239193110128200615341306336377787438883189774716775637210034356981131884557170236356521203962537077453897631682010660165692672242449131457075013110064201396763233799643145014024962067231558961370606094094453036811107152775915534218839926868058985947854847060353622282717630020065639426560086722731792019819944174370250862407266233491880856919408947065001131048885127220078401693901172070639932196634411296556634990790161474678850806568256253084716760989976310878299135694036977291639602471913066073186240991821918027569402915492750368777618131632274441937903188941757263594907184061243828041735719908717978638978137711236754582161715595604914813578686223438257723202924353454411471293532510684184750244011896025046946958867213806469563382694777394068066669881538577798997793037204473462665807754440134543226224823875690631754527773293279004876775017671062641550419735749663692293193169358423482755527816240105642422006355969801469755871903942492708491731069106952399824470539596216317643870973641445859116341764589797883372371917295888200546646865990466027784673665440212828194413796676213823895896911481654936251979366776453184862837578906828156402720937681730875174317682314897707818099279560615351260947890505119787533585686997207948397623009175327848735108398986204133591818343890394855197246940134247188035449170924370936654106426687953465014760242514604048993478667331123299177537179689161995223241457603124146372472814906098806425416532203510191766907799185488418307279081189590502410378082138004453658477572033254058332840304699238592406336553518985795398086355274488062311316844034699062253454843741624662684518104320758552368309545779124694582859447972242582361138716575177375065100579645506246590776746746764219003737231446238393553971826268078887628297887324225300311909744901791212256033437832576605654441142277184092032315750762981970903887119840939753906878523442664032022827963849211414424221514823341571159227416120409612842705851219213432529777848069337254282098384966819135736594708287210485828779718279059880812327491143325643846142010234439054634096904672616976925163906723137823184457523337451332925622933665376396156154488063495434167635117088845500265249287631315731498692947460855237863758589061247057900526054981541301305551093371184222330832176623485841105722995529336906887607863049123722238838249494662702846074224649415738227807730631431957022130349066701807948719332023861526963684699466170988211210230185630798092586611395144754535213525119064916201821099081486716919940532488671455656324061620160755889567760749880167118038738723288359781311586254179755680321616930056313422594346900003714108566705483271483786448081164191795122846610525781876900395270606881088436760682335145646701276944014883641286158937854263615865850940418075837271194245725726499660053528964592732592199648481554673570276543322076854416015007052860759126327329169014597805397616778944803652083438325108280578322922205933962261240739251273091194625914470909935016254556396728701221811022684966038545122302821093313300498306039509822727686849669834687427518330569899427802329133305460034979991959317245241376241996242744318652298530698282495002968240982799307233457594265371469039903489414931676210778395455572709699307621444829454717858902228419919316561052534361162925588222475385327389719443956542272508822655607770438946823423602026546197131220841820506761397595410222968069564561821599782731813476542059489202690582802521911559579663760552154657071584909631758301987670641626687419095137067683229228419037360342794185096791188208212595381371239908184551100656409023148547930291248550350003645249220571685021455779556633611264899531324057446047205931566054485353864588060266234540471167607795749869557784170057922045035564723312843883933083351165608974709106328899853720284813782664095409793464213478314858951047082774690459489850794124709045112516623721048621882702888878990509442453003291662289365249784758835588369147070255599515651383499010174375011194566247667101429592477805009272808344160855479790088484910278986901832152520829084727297951062748269449795108254950074480623163825991218969254494232222666104419040893743231063181407228183256806162083061750845331496974529299794803444148921671266848201756841908154600440593622950969994056095671032768586449338651280741524935215564819179455916141391437705103222189761928943674169748548630859982497886699148440627003911874060454056914411057612539109541180087646218862182793670437059005566646571376371953103603734512534214549636724216881180844796469152241374263835336445020958803776016673410726253044112702827980781547998562373614700713825811935425858047175944331525272178540014292569009265487866033004300499473502179093195523694385484556676731929434504391204360653470125312098783477776926516482137687221541568133860376443672623467058985366534768058667123539193324890140656802179531314062969453343292177994182054831099165274539732076410515065253070837326461424029964687284233011052823066336216834437102686308433278731035632779527563988327516128209947157912207857327207060663621644650293332359634808338588558966965835686790410565294775020651432884693845738317449637859072933231342773858205144730082936302300936897650387816788720733086422229952904071313917851356466328017190147498107062069664305336421447788610173900894293807435645281878050430013766540039302757434436277460652653524891410084800988259023030778930487642880576286312153212857555178140174549827004186187770915726122518852630559587487064416021687732251906543194679640660169998876039326577425130867342305783560024026635258977795678230130126938030784064179019792208590867102698009379614836737627453517866346505331794599689116158889638623197193291089778083863596153689923347109019622472699365254951250280061751602964415481619278008648094709188967139303683415291724026920262028024248474121802082329059587100463446054551648563083165860711049892607836519904403444889650273741011731698562823901262691109023471051615898477143253409582925594066138000572516275645846999486291534282390462055556668915066749096863205062159258501210485782530815821514731686377440923440542461450382241017481629363006370527042503304933079413946122529548959086955104896519387891169463130235177127920697594886707177959542133430697038731103956697533672823120595200555386866733830171703674930773328478029983790116352506328721630691541640312517473288931369925510048254193455095025076352332836595093940493185971780144911695844335709154511813809202504892713777566587862105731702386959350588134805690017046288423978690861032933155977600527604718713537176447282336498795471977874595644283794979268608408314376420077793496063503225188352486546592107917492618881059036072327719536144852829576257305739628668198049646007706049885665977116315609916460791702580741455085017175821318646126513784143738438213655211750875644152154289469751546349242038980947325881760992569345404512547024871267612959348117230102140983787401073215499771538699457786345389386513124054848883315149099220103702423921632306001339681436130096523351075177767674339909714652573950617924495285438595400971028005808852105114101721540191541689658856115684005840167170714052404548174684414451418209009989932014501075502628345622320246992621623298904152005420665097834428391137530653102712471296513150881066564659841980075841367785611660888359094772585363977608281212116545991527161191818270849125306753670392521852580992625855779287697095737008831023895066730184281220539962161804788023409040686571531824848517201596902575634311184758177545282093604444214975364193996636390724198231757479001318209252450604122869280268829990272685594397734622464555196573297587016609543716643273195106230208996057225978865188803516824198110262974743881322748759828559149402704364989905922273180736491794233686340444626685376381307137150820984280625517604508106987725889727582465797103456844499026152743354857258132465901949135254212120986974267103391394966411526524996249184122769045841987767883687752505580077666906566035856732854959478481200836955419251968368753171481184805321677302111717232671903906783814074004940539998516462327448369560491516253880385438643074876811389068735430127305225744501091794543960479204898081875317246298336604256002519772502857210304621028061741661166254228516106151686161157331538255627073213612949668477585561574648762157716638475579433005511957022673466460614516862930095680119033792920419427742082731715076302094756940774108929039335010892448041531617885275147266215224603409409112971044451072799928308439560380724340304163164886573136891078413067815895666070865419978508848885485043608947849118769428644960206665306836241934020927797134570582365276287127855384311879684600450919556575589686148458222422809719988893685115445729748522936009140968974616033166999940679172591019971035305848933404631176472341924448549462008132637126655176777993433846873555931558477210473808880743969766490733951847211938426769783696769930017700158086044250710895450512581111937664883631902650560945783613526651631516039000822557511637639478208980972249722823112475854632134206456196008658058866592255424990983653037893552501591489418081578223928214465400625524042053292389811060333470389026415187812012268027876976993269279089442550445924851676441784089286765994407556623909032213559736869882460623437356867265003607653471380861937696040933393628053616401745459056336772182964946227334217675087216311477427157086075958212246702943845858730769815047294426780199498111221737208227941735459479456594248829926577078725052362192848032288433441634068009618268063604095860899766975841919904651653559256615679900376784984861409422748728078314839547245337828236555157610986739086151996075711081504876657089786023549514878491053022190781941506384152257245508372157169422039891281732492592455501402880957115070318484364678460727017923571736170915418602241039946988152262159485982905129577665449088782281602335873657629182709897259249704190522696470639358087717715878939856638732893512390702843509848265487330908290519257291395980500929762030679257096119338248245902933697587802863474592241911816546077233607778242378004617072233529793067921378297897057930113697719958833120634289715014442036495754584912991671847585373925701887603062031064219247544154033208029998476880661518154588484151076271587938938454470078432623933309951942761246912378275558909178268759598667357865121885190291766852916657366993950205384500246091715919899305093929843224134761998271687311100441140024089215973544202149997815024630587894565706775267546653263411038564537364109057479921429836431725978944469220527257050177244678287907403430301837335039941420048526525390746219205212572203595410200962963402963146428412597767762948815434410849966446437818659431539181970516860788328800579671256837459220352118310818832047886325038937476817562103652874560282176678436219653665634256042479405668337669240360443087514469274566957747026502349004566406655278485682789738351744389884012411937600311365734690445128504877107662163078768179308098507127926990885878479410010980270993200176142198966454290342856145570273846823927721990988133477150293527026340633081063864944272200392938140514779188630256380014248205828494341401616236342816571601361688330760051928171720296840084177100896898837080060285509216005019016070466959276086063093566584904920556591400854403024831206713425165997446524942912033921745437391076003162092388341376264412885157815494410479543596669007555382510411562689620296793651809210032951471167086542799667517829597633462270890785549987724987076259294267713114621820915479759404903732524610630989138362528675782855176387570657787477918409807414306535507462892425793233240292539242657332173891087049948673693560956273070690483124851337320203172906229074945113806671257381545126450219920315967106063856063823994334598681595434549343359747195955224532472998903310704754080202438728412854784785146424539976770036806813278689021834615683532600016546919623488635848929956171815726407402808244167023995459174067400278523292909879820406937013613193291195136097278803163183983704477975609817817603364917318665797175694583184897841574399160040805036457505685580252551974144982832439739658041267221114846953168324107298731050496164256313153368851328494551048936040656929909847286207968948307054191204242986459156668743200079757083295922913874210983864780360651734694362992200164622544649562803904732744834246127896267747733966786881021032091223875732144097226214991847658123244117178599911184205847036325422105462109135867733840493083774762120164831496758679429774208337128851292255748407964945705280929875641870865913810260963003093449288239106553041863056299624364633735730680080184795116154765618582130913168933824691302671483205488556351605906117068597690135337026124418988303809383062133340824155888310756655605734229360115841999017330977667635807058893382348380890609817911991801186994939418866018808280167228826645718674631932112419597488006312604838323411137789990003189121879073425242829644299436804495016305367209530495994586954851471264028502364189652821434114186839773419876272946626198383651752063574080363674817840768847441519446094679026715968639492680411816829770009969381737191886609840591942703909271966187413662856855481920555014071392827594941808894274792727843247497009065495809341866246362739848768137098657097729621052733717229865610866039314134279412114938444080209817404823636765538509520131962249055037955023008109742756236417085034331466585425058571470860452346001163184643753456259290909930654026656962241213181882765492561123979986440975084431664604412145292892594853987940738295569752797871123062998317757999909166436335506833091246160183778862350069989433999637246098431758578516706234411156799710455178613090378444928185992769775686090264422175567430207529462677881563693352047702080562851028384790782876237163997732578759861207945948439951676420316319024338511356691961903700873013699661961757467831730648188816208968988158281962782963820327841852660213885236441861519256026799791704468511462832825347093604443565902907541357429446799322048433753942823527928710111020180728983526527594595665881302957707656394216806313020658272353893985533460403479266311768648235767012282274825161445350331455733955569147615788240749005464581969499076322311898765051854583119719289327807208047976318753884430872562347624738481050192965851334571668820086049678117847512919632479277391270423239073988323822237884857083340855327477716892024145897230573619362932717648224134762121334973121927892941103902050844675802983826107144851190244460107212692176116646805007150941986217274188008868197783203302440987030698969956998851152745712988928307435343663774500078428669876146027504300527943914466164370786925172568180599155803686606453946648932124665758745033232229975221652814720755123720608033323368170288780651894265984206516338099371936188748639772287480526922423560604997546815004293141302849912512187805384622293694430020129791740996699991674449340420341346745891475283030022912848672380582986703509997731820174594202626386856242340409059556749378579060419519224147450345076841456507728465852462094473920054178869909623436511275672255910021959396583816503966735587144511322978704386791165159455836200262711732313598808037646527654958324052513859728445119162555895200177131316772816698690005638487519650280469137010118398185030993389797571852932620675120618304969773960290995475691698787170703351849337722156662672163648225062895268375252809469739426572104215802314466658879626489452838648363438058122089900909707237253456434303526368761350593478052130028734322697937236630632058808957287510012578471182948267850323916315149415178117149836513159596541628732803950765681424664080146263128854530611272241449956397134907954480714540966335880402979239088894533649827523252586370097098081811919971769467988407968134079929048281281946885248129168166201857782120577458851539850402233522902215130131218776023965441768455316062345655875492312769126249891398159854846972946286887297786193422323526277985328683646000600329301614754254927342855039819849360396167734779232667805025615526400008158339003858937546972676874683037338320236809876111014790388643160187948327773153473161830878760211516615097772596433789503366037472004686288025033087276402075095092900800445384239032433982872896956524113373318124047568645696964717911348529719028517639684942576696526700261380456184359773931519509362100984154583735246472644630867329735109570316584354032844305619110019835206663836461270590130513519579311448010125711468311532532913928759962441050782050738343618609156841287280968225302943453575671675702815157250117055524621088161859111047301201657625247534950253314991839595638174624092484867352026021320531563787646768607089358260828553014904329223177911180318920756867754866116594767679908045508798556995141880632598677880644083664015473091714403913511306117664665633398869509756749344992646682812732052994617042491896384271884957761498240972615894845029879280470945495124241379081239343676245243525624265708196243871940050789575012472636639869081754465071014797793659493675393380236509312298492068809034470669328800263469656598244667896610323254899834804317311751941684447157801307524220771232113894669468636469922300520339946774347833566041092155834508866056425291827285222830807894460251936990538523255141953932847625591431288204236576003961061760552560992605539726477303221055799321074739699159152529618252008478099815321146740491842809578980038168087384876300760750891637087654577730688561670059229144378774040101582523881302703007509858392958527848664147608012086923793229200875302575400895044446308134418257673337920598728055670588453663340457652566117374561606125782149983623175984519575044051945739090058732948921216377441859111744685791431052277276169815515282389547538731472105158367778533206860263602149051555516769736937805936296263915099878636173091066592108718093829226657063188920183776298367985568130089700227909541697587203153687625015511092218650339235210930110973657487154082210719984757474639706478961454952807887871441640265187747818400341886877468402562757599826582391112180117881332787115292294752866947463955715496462874192160694709341079429049652046841434354018341000374134326502508942785641605836522154616696354385486946203072174306816593920255008510325392780741474903520333623024693109955818699084133749201470868403294472231959901635429309578314053082690576130700934676472000818794594044347126479442963055562572451005621285016296602402632623510416424562582182461763144438923022280543585678471228328707941466243288341410760679176426040114090149144835922495081882064407664718278241301333188861803000868946243495656176889054301494072151720570183935813159219824567828121410657452151174337326358864686968213601301659762411828937763842579649293732254398867555225137221075693928847376410917061878477405314857136348204470726542299043657371331453784180671179260848574046038610489710368217259244385394149424617952656877171613418576955815164841512428046275899480586740244064464989361299188260669611902926789809970168678993974081935591712923371018432345996647389714243355849711585011262527464462136864347826145550211755385842036954892150432473692031818550401246513589066920143287461025885967068654772673039257741215551702793128445837744856728617825163467557853624818688292984299871399131191456113019929450907558342101303233538094997316468228107236733531098735361083294134642714700292993811798922847325150669238502345491285719475840433648475643798820008758837738542998276443248727246139174525552011851951784666738608574918656331955220290371628111942476081779242264471835289101603237570848364774403674973863638081594922558993103181250569245238027876635708214795607902325949427946758950873122794028647854519333764432046138610425901336039731906801071905046170833784902963915557593450256493606361249896633268733070013244550263377352688125944403861006886679798032191883361873669559365246890311555757250135317011031383757130851221038540931388719806440662441643761840919143836779361797334077111947592742205497006199428331988377703533602157747061076137755104585684135326600900394344534711984225692662522942924574233930946692339554498447257122636952831184076270104306882491166054825245783281519095040725257715299605587425204581354176367457655388642370918619622607701813495143996422813762719929370508946811819267772148379240160667863908721699459891389850046754503611393747539407150145782698519039050403756521179073360107909153495742706798851981966295077821692222763523572594891022150995641716505682525956938719811770055798498632006371655862289755643230451199005861823527877468342545250114774530375997830912154139505177458607850054376044418410765813051196197795130220754868423623228460166639783221027082909959485242055379988998991793777543598806891721019059083842523590922615800285970272867257804682001589500141969683293880059261096602961573006919821431846382645791028130726954983616979309289385564957347529355408945972555504002436400982806672969980532638513088750628263325304808262321076110083259935457910738345388296813332028340785586059779197401163726581065046712784122070330810452185697862387284185903731180620494844927389889786237034220588422360086943717967697897763149309139336389085242611650106614395332470879245080533210720541891955331924105290347627313653065670371498214919837066999867321499450005896359349158814306896088297572862644277162965667505635067018006896134350673409043992427354356009749726026246935204204361120444284564905181687718484279016144193617170179838720666623181483202167504038704425735069464870744702303020089919685532393093552467921171887416459169013178124361815504019177446531472346052112380771924885860928612136890028602781277625782085574620304150588929223124516084934608160854992864870078274725101601207869831992485669156265781165180338345334646513205465129144978137300146735679719395074230970742225325005539503917961460698922707892173404122661618440948325465912178454957674213094532179555996232615378641154044825142166444949063405874794277096701835809573036720267844040380855257659268018897702334031673594281425641633766782395192895740555461349262793944208554205104536254243396526999205225812521361432050598362999097730012326228995540651040150396788956717397412776793360228388953506592816112433264753452242151786638186187222650743901638776301772171079947081399697748341731445853311478569232771843682691910433869756661846266581803657658964834133904629153372855173941278512689190388239108391667083314022711072548949461402690924706149235715755822378062612782243626997284290705227086048557968409367305187401375246547021815345630474105583453814385988796881772647199667723250168091192466512848483833270860081157223666128716703092688014678814116460022591367565937807514258725914253852106046810862513131417544999370522599908920893075123070607055926329582823991993482309911321301328909693778503820673008685942814548108831124314666236084131254405178752117888877196518941974900380477724307698241331349658224789493660181666157708769104198150989132383875959509741521046861678730613917808563909530261792559720250097669692076531911110770353847392029733977203448204197495952947291734313688790296629294087811983582447735509824313397270253495045622266429446667470690930207042655698555653470615907564024207799447183478298586827385957210060050589145015350896597734416807011553784457167308744974593421389128950419911860433564556198266296230193209305818570044607450187497180623655964585278560571463827474110806814280954938542784338170819559662646734938347289870674824995237299571710151059115055687870849995155069196314306891936608944121514955064371305645288091052528676513448291566405469567177018161767581612433820215868261187614186821484309384289787744152764991779331096524078581929836853807996894393899739508680873597861669125057783567507983807121350378131363708798925120065902805000067053432929417741911700078576129716302599255085741851259768535206531893883369190270468108776329437776347375505906078373110019881565247471827386102931699758937355641449604159856490431377753235474296350725259771592590089861231765246370252224126934803168268957149387918893752016153858557682505717789779173904626488258056742167802419649754591903536732878596192151449283962621059178608149663457040902219041140828164596974024291379690835207366785737192368073048014292158000424710245843061211279250590697160066467833456944000263261465853390941189173203007678183010263652749854975357287065639245498158655031662003963988586174184757310752215959339174200795300836611826835024127063698282525581734068046351693848444984135180035731693139836516298907699043837240760444990880646187570515083196355445688891392840434741077021430802537116011479125449167721725448088882417377369887022645791393790327324670331776726102838253730723184244898399519767490050876305505780055535390463753521824803188937375713825361618577793086033168994430160346628570324747109973204963048231476762216084927789065114465052241855039023840280988879326087585359085430110701496986151840206023451291638608213509810528323782934368786738871465110198218600042221283992732088113409493246443444211181603648984670694592301092644985787474068414460954923936131847413278515593260968948295787534851024192599477364440528674128570944097483874833110022155062676408188042748480910692465186394090532538492054071639720850578785854293587494732874190564787169192687317535899939731139373229223426562364662251786498165439577264485172869145788439351024732840420217323653318981746623028420584181267538566381558729571646256100698506133934188307846624275518998334175019190948937933613423874337049158859744937746068358257668957211687496010715029000002575214917766739478126003419608511952216316837957168751783080338824695405901755407701854666376132536728744653701526396426472760222496298868221452686036422912366179781658695146112348312049307460059709696637441638800831387619813722399674065544822473835361157603298896252186985520697208135288006631096794923613124748614714593733449398109453140525639037321610318501736598276022794062175477975657723109469089816770670461888263970894682195465584569465011889943504456692270237257993184128628857717604351414325118277662031091546596506554221125726663237624065165607266070025708022984868682626278527947392230952012286093857506175805444694672593546955696107680260371513013554711201709196419788600064918986922457127187520736900427951071145055478581308391922131683551678175989211732273030375489475192731922472237710649813354912658687514402999969730486889600616574824211067466590727303167774150467614530043962466804876891417718519656198571793743010663180756216657433433371357336800159256182111997561070125831797738104561826725155075288272749635463816577488220096473777243221544942157387159335624531872382851701096712759302957663189742263889342226994174966398308357800239476108022534178544564328159856389383572810388443093379489711370776024906429077035347609640548229282813964890359524446387421414367950445104630482410363570415424237888935826390368051935495890559935144766149000094818496436168812474257884405876395597265380546545761729996076003070448090037107808620228324689733796310766429177882001830349858578183678047112851339663377858792520158318855598667590125554391916157532465929508430440731975209008714481726361748283669310625751981289182640972562022815348666810597824896301967555461654213255308923601856253617094296533305202981206731485184208213084153644724390348640538476645547104337434932144854483857264515993777235041923019103726657638077544208330426754420964919459894997174389634907849528221839720076945033155848865962115521862973441328721233979187499098991091377945949460801007349386629642487537175053831285974186152649722381140361957319237234129993181079850697071079085952173297099871586075452258903182773564172343972905193350379526741804440283789119168087821247195603941867387619356458341058134876078912396631291716395462693344057299440945779766101540977633548174443053840799959181082852187582514728352650756819956239011421592784559112433396428660609537677422909058265608668922285140901365631793640548680576085263007715963492594937569861511657034316687591801527999839724040530433541226580218882570189132050131827658737786821050174173866773873061351822053881016676237136025446052091650694316822717186497659727504944064328828794919963829235935834465690891350537032504605503022159578065456821262012645699679603647113746020677803410110007325094049518772637206876430952790733661825149233601857711339923572666992428280744822183364998104753817113104403692956300329329110357409273921095825765156527286454787692117983596608293961908677047601405361219369430657448275934320084248307226461459144775763911359943861397177042055438446029373121951758534665004754987269869129604966247317356101150297723612278121305581800973476597963432033652040700883561693239839700328265352950681691028786909956720035506706174385648279215890303070073017697289936649985190220545805271431741688728894231520744951434934951021655957092183822908986418826664517344779608410048832353019508719636977632645297081189125998921285064397998971877778958819894057953640819487795717206043932315005886524101421442992328062107343790756112548470615542550179404902908572572797944423373488972329728336398520135952973458801357633978758187578371529599449859713285228208721077687413361294603407835012658663325047053303923465066468831943694376300852270939761818592225806539052690150246023195390307043144990819153967945454424254356980745142858477870954162747660181805147808721111110001580276496382153653607595966302098628852234337525688277466402450383988949589355870418901301783534312508087056964615071147712155231092209124294117225494581012961859439872971539445155233690262980444942873948626650556456245244622965267096518283165331210082661500358424129360989280623276891407082903147653137041749123179463232051959583183942959391735465246524455440082593533107424746397734731956884191099799072876674870408632531261487559080312948216527918410574030828807911869801323728992205180015499892286284580738222310993245329172916335326085742427822434315737884523205216449971176959566140322337139942052567042179041523505737600785342025458743453460912983398646964024022931157630361761597509332278848482280606195535530412988891468700844065987055363980484156020529081145771318684538695412277299886170210058536070949302839664724211764513843829328636015379545940876909653453331880379711994979925774291486182997390894946401206184290356207539055694306087279347617271108557558026002617929475884734146670103247037459501165464395090430701276313651247583638709444009371434905714003828498747750239153523584578290495768744829943232266448655408180109391911278107047883447848845669641476415137183706802359353105713092281808699179895233776920968300805119131401054589601013219482555148260944791344111601968342104732120865738697472579068681223138225579855933546071128829715789517534326584632292373457867523491408340702844079846912217890492829018707772286526135333201552086635134829468425901124903811824694474414424958617483001204482101878953846554170178657665199189339236274980966460001699422055536926207926947336157357503988452708918185857348617496779274269541277109761454415401975049909424609592853275534807957078070312057745432883923977751267903491108611539855565063374682250230202830227423392256857039041517455200856667267765488370378924371520370419673216901589840866433158982869224259762351402584750720845085436552413112433544968941433841834698902185137574092259564250873329841941203954168225593504107330082885316891707781637560281890724614804033009177989412114388426803746384851951896696136197080603268362508879110642043441465755310356548838824682638151822410602024512923743284195762028811775121004495068984939701710595740024816650373143820920590361696316310036776887565193973160887868720162072989211953199702560229903326331518825272539457025117125819076078573869345712083719978156412752002568959639738851151076075575997963993707096763590486932213744310664142137633033775334697191423408086444116908469248444858962432171269475419588597422987346473237651337447147897864826087476677536111294371240008239578320420751554438269116694040255345490507730234960455605906204074014388465429677671534495955287740818415868833254868966720053759073738648518459256421158516622090296825871450889578361663087522168200596426698883315096683374490359059842005120079023271559357387197061339915511472629851073194854319095451074438281015633574479731124681279640373020306573566835070317286473111384739447451904716858018530031594250950817068733713929653678680578563460770501334363680962007927494461532265380142184784850530867227487573655857474328810862050056626029023511793295814081903370050154472636613573438644554421074628990748877475190566748889994978534686929236606809049552342236582394357716422744006274937448814126632469368381946172572792853850888711507327484743935659949011055107818385972581156340405247934789791284306093544084290352783519107324212990394798262864357832864972354889886117582523655802789307010213620179924037451520895385517948969947451593430042209841671526549424049317179162666517642387836584722142465873426148764030685771764299213975157136245095469790468314516420553061668995793325961928006121679454393332822164833943420988179929294391938159251745785159144456307775357629897419862723344784499571936882857082084233189430727060729651914535517988712880542371974586177716354294822801938294173040284514188243461769868508894207035757035515725489806063311236580871744048928402868426151828340225529759426246368522384838110452797770642714496631015211420150662925161450081486933499572915275240262860792740246424963822779871466485640985285558704748405698187007838603382066733114511359656556922339086997561779870795711620016502406639275924140465145265278138537824192421020550032998586020723072032812434402725821062439319953322086275074225309776544454068339984786856064709313154554433147647198878899338159859392481498633911845595881179232828761532650420068815758315837063019120030620227787321822391624827580190042735432450425024771843377218700862014035777575146361800633879592448758825160928413739515540535587214908034893619704829159296039117488449827486114118191956784259277285024886183199007848528412511433672612569402516603929439925803188806301015399267996320156947482842923942238448246275179592971873378094989948996481106855086979748724159428762403177027113732055816019665944092008198294898004723320996764651216168836290606149968517255252452527863400299962697839701167631131577796001613725697786204085713328809241064189644878123844021833767684958783724161799921758595921771629818464910483957809911846045493436204094484440678189279602391134282163064302755382096064367507470704275617383150950000994298355244100548515880119750396450894197005003770366738495433866983122801008932670704530689036178322705641402847811857536222146560401500753971115172048683616059820676668774935535967536035098134730459563250897184882944528434438347735969982995709888935780167731588915519745452289528499493036823768835287559300418269048415299020997078048104281804996911032131855303540542432060151679133168397167623690154634080561982198478945706547910847650772895920969957019009199148108038830844820174737420969037299032105439292811906929940330360834381230619562520718302292885286330297533707408240996413025393001463084779178863041029529537023093279554325768146832211440928291863502044513046840131357542410648062690756614663116406224344894216890937631559149555921694507026180908237761155989631465022568671672135029339404618186273173454858276520530391987708906771039614022660829992130584731315478307815138327101817841278813443044741374361742451427056299474949866441886155620933592225834401280324748203517991053481953896850311660060710284694358332267644407094700231417520839525325412222593460196590907745398765252145923149289637074983829116467078167204680212475752590767497963117140585262471648593978209849110601498833464628100149836827320395605177967613050327389052093866693040768983827184683462119579194594239056836599988619512329915426344351744978489317996135649240391775699492918810306337395934557994767478005241033816655746967891178077847488589873748579853138282757035029935209897350974536061238256887351446456437777802098551031007061360191868528856467645523091193755338604127266457718548706485546791358726987909463889606976767479368409004174790619596578887536710580477779498248071066756205307715438915564445835917937154058696734395404932578414290687176786641608102895813106771349818293413387573492025957894841370803936717044061396671515371077008769781033316482079163370834319827413830068974766005461321993598706395200011438599753970171166974086460959272996553696480836220318702166458252229844302058084464073255713364624007374286085105348556938479205699737566149031859870772813980390367801164363129720847095028595608682803122391150030118859819057735673322953902552245571900844212050829983752325496492535105686927079070125179861326316411301185920600598583745548112641561550472496896765698935470759050864969767428431061058127440893280320541756711320355990193056679422663536161592273964534295442865812153563379448216886244252075854369869224310506643683426305914622248078067895318710080142133504145144717300694446313669599271660733593994178124788333128938233775692559707990299947593976108734877242090348670889020218813487690723245871179332326660802270172482112171128506082772532140622792372422509272589674058322780941304682389871553932591187912066014208465044130024595543145911763078926802092430329203514905318067837367231866207596791042030453274459596941791745537412767314026534267662416955825854094891595550153190989519368530091426341371266718509456061188871611324219114857655463579349229117012334301762936574714325229062773849610502900947523878588768010094461689118755020452331493854224274593980278283654034388139633513914934973567131479744712384734273072478670471884963497429814980128726727956804628310830123319395778954594492639677049016645704152905139579374119113425960007452871065517392249555433016576270518872091303131914150599181339156821169367602903462688611904086233030728777263049689703133419143337035176391601376294035250178856197392102798131412956562521476801787801064039054828630893910227161809606373004256348297162641035645102905757112802853726926997054182423134342198046174135102415616856143655289832207493557113418965852370060190340735688360257804478952959697619859733725694362076282014241534318516929111454985211195622924500712184801977212818342952650557220853304902397726015364744146326776778568703547555737682927835780418748820691357530468968517780514728861529104774636024715835428473938662563755314193184505920292112215335926549409096234523937299221628012890293004949007309356288867542428354254701030992768716929954532511207741983625273819808914411845682488414572256476450230260815201044779088902475556651849804724100254655670869566346240987770611609702773612129088417760263229927829820852726074932999536903272673635206904174847944018003773143145021644236730640591603795275980736165866946132576181475679169097483242174261258173987703574733925349747700236532755540173297225270983637204425218889991440872393558945479890889463665891491174774531501134173056190342856530578888549133029475768240702156846876750500879714158076890511736217572194832701558811268806908788385304248813146255258618412593490669125601762680431758173043847759169944811400304883507549954428268712978121115597744083564527653424013041420705769848834303712880920175180324667270857209170579373557668811198664484778850650573068316716367428086263348270561275601066053770554325720808759689838829931003492352004174813356473116744367966616358013587176210930632744807485312879720814009529473251224824267843557545159762139710045213023318938776037575635301480724912622441862977370712379937725881124725941524098961720640226856819534673971933611387449400705112764022983506971674293571198222621185092456295880933854624415981415000641267309652918272307179538154731857415658063187145569223204321744923995986622650924401929228636664393955607074370534485239105906400332700553727134950218984594298961313440576370480288973724893950322534526185601258116802292320989011412612634964877677393276886084476311521377364900015778989916825368577262845417517622144433583663411533578441234747456731827720166154118449327454819118661357937488896828419069647816343171639614998310733577331444917575570121201083284852156584158038025673012454072025243946326027047430966595832512057938036305444807420228539996915042308528466232942752244894460747557242841090214210870054899929723481192490116871413402447739426119762099377420312838858884029677564372248341697385345305484161916802905903795862977263314997220625193419361527905767506479852875670666415866866852501990451384093649838568237587899267229088324706631138047033536174521545286066103799911429386580333663942252470402385506452358233689910899199002645474577484695032230092634984834556447017176722254074794553816996188038098500071407267877701007590214532985167464662250379214495671089353640825861476253716635963820258404440915513003071338518675577478598917923625924081105640762095704733381449776599764460973487707222082343242558117740697423382436507822998022960005074268327054163106510739007019556848951369337593742768233297800367005252204235380031535680797065410143673615027239797858395863791032465832725686409537979195885301411077789977245357135600489799680742713757105090620197819512856397848141421026762911259979461301082542603844860022541772232733352882954530972858806672626594948972010464547963032122655545497455154774661978401084977929416846834024425161925476770704936545068589173019041856560719257508921200564754857267677451926421133622401146131173390928536243250199287508151818093860881422690925858637898060757389744664060953428970597102376548726496885207840677023847242455430319144759793316224274140372226340231381516237592504958562491990647416910881998027446374511078863080971274081314215422877059177117802673765585693830935946221377163080239216863413711876035127822913480598334238445489439136352070342863148550491738218178583974102870108479444438350807093709601356156623977665194751235848496793802566711979714484619761695742921403859547264918844135765901471184322683740243753135477514004457034245448191355275255398342691510329571888950349705944700655282221699995255097616164875995190255348213236346458951135305975493727822020976842706853672978869236964387314614180816558952987109015025087829921202874954061858073124436799871536595060728946915157502367577603929116490644557325722470664944518325903854963237463524404669394807481819044033204723397288778047293180042892034046531468756871250766536649427320809277198867515116352806225663739833726912494896105503880912078101992592767139596006668023777303515432024140256816497796398589339196246134613220924799794068456593153255572901064248846003018173204891792641759159270944474229311431490902369951225689494245246649875395554934650512122195491053349695825083317966936938426388832102220297150260368726738929434818937308415153044068305818585065000971868017735995240106307401678830940138618521613534561378881160773276099939005310343445068273792917064105698140369631319627260969066706047482220138142771033946069399077314640182847090637481470882422043043017894429466626446296931619233641902234581666621233126698568572194668190379324081218624674128853118047369010409567506691010902010559810303143724833048862590484685385782323760468035254221716136261245538942437525382634712183861402334730268490992860429569652180317022480440644708698507331675773470079122548712596749600670819903601747023832213936385860273160546884057643440457667857434393700484126050022217546027526518075630482759149080821109666488051142021569578478296609490479914753915384554077285583952213852080214596266951845539945075118842156517419576638234505839673617881284292258042799294483280867753172719315290323468154251029399280695543814339275529341223216185865599478682350361142770355489645209822503925844228126366753205591698054639663765592407787607446996451568139573004644339463115343688776446846325954409142078647954440219190850107942674718610848600552135504479334945210072354741853811167688159657989685413587516388592540455021676652937918258336511159798229029314726063084236247979497245931604891340241754258276574893608899775647065858777489196665280764301865560912337035121371610887085797009392922630070162983500948947941178483649429991971617287941199876327268467986727049944832937032703545804754773736728099955143822295586000318329010295432594978122670252265198920627092825997508291585780926577017268039691411800419502675428313293091208805832606962149163323325160873385187321671562952600567251138525602108461465934894632961054915120767296179879299010770145804331383194165108158585563314699242682484201006647142970662914548996918612573870975938963978795069488801297775156715173487210612780140643040181627159788101550626707076841745439204630068480660347943696116273101575026818496892237600408294968918912042676914672404653334364821802600304877365839706721338706886998193639830476021944344819822820416139742924499553435045631028542991602344052206680756748410781048543809321723399701801489243518099980131664493479142914757368792526427117567366687301995210267624389674641534392785365469064782667897592735248249320735633573974953465644918497765052308647341884675282172380931481961382988896930265017038288222606250248650338472257129535827183047366508105389843960629068028385419839415196998626476453216134760586269204240173909616038398229856052983651729349472440318336919004737075476287737209874329603156304589710225884681114392925183271650755445447391196132570329826906725870127733407417782962531867555103537271063208021318481251684502309672026629128650713879696976130792410061326816159919173309971787734062766077068044475243662011155640626645502466003754918975437583605888259203072727124746859713131024124016519305985877708777580553174843577280743520369084380657222909935218375518641313453872301523804124352580486235550342955159748063513907571625513149874935839030922588015950834060771281317492002186692256838759306645815633584445109585370976941204941833270682199601089091197543298978687499602088117654272603444319634814528845890451831604054685264527002897979844866923177587650454039163835680515588667196187186696944213443850974265321948734127455623844628005781038797049148960199841495156952613767788697764943168511430483984562554809249350368506185742111160884615664762373540659446867729160874138250545244932395294055068400691908013937695208333636995900775026975108316197700655578333977142544716855722128567833111127447421320976746906146272634120897854197862944757410065907736340121907404950772245267046253385366840731621549648434193429136678577395186213341017941262469957476745288106084010085348748306524827330417696685422591173101648941587438056482811960601258686444519711749720486800088180507102926991227053126445368287820002354239165574283618095351133410590076106475940175385229519445194956764671592182104993963203645618237738641731396108238036988646049697236374188528969321116610358817725036152844817704917242653170395411708337821307223099777696782097809152333479049464719516615934603687866552180799974816183711627307902982446555209790689852193895497734049730650521697581286325730635142167895565584518483389865894744756174010013637387576703536298055170090281262864260762054457370375644294217852561428376004777713083879215284478278459524551685280672337215853190519257854753060359648885014184441348842588070525191074768743386059544438187795170504565127842121485235302966443374080862867730102416359802592516774530867204289330239896939402914886748855129297719185916099324296808342583830743488119864885592757744550367037626013024116315655726955909142725337333856188598165530376567140228057316045568240403272670234891477118317007274944947181829693742605518204482120043334592650365675469441734271531974378969993833816201962468130230027960715272576688182724012082338265374882353561058970914255060108764553375417565925858025223509920751332972353599124752233461760719216260624561306003134348240804506832928948001341463979392855993096058690878702187524868735519478077013513084804253229075091667791170720856659641162712609573677012640209559200191079122369465857349583573334026753535017823764125005689257582905237106618394976054830380351302303230267751576714668343935637048734114116966130335628446339027821089450449016286620710108096794485101311271527130579977643357932187237483335909731786949560412110418934427371530138836452847837283683666386413638922086192814307413290285499403911178103920333766580612177245562113403619899051943734693894194188826821337465064584179191201903649999880172016693894380568858474557101000138933646649643744072786841910635038531727286277967178504596720045744495085622856738059216069359058374037015356531589987711941906056655891723205860242973798485911241418925385513132457383794341730105126422991397066060189867001882555698642253473975281515426173284997039934394421500227210801557905783015286131323497048688622210074405955075851477869945480006945512737404406480948630390591816961584100604527615840718164706725036551292630598970527008821654963364928696922916491157510369999455329316645306812676574755604223512493907831641638882965489701736554198790552778142770252876763681517151543925143346378455494436957750700207712945877465022171888283446151063138434867456531003388787386418266375412531273680523871626393231296045427391925807819171230092258763371015573701716084959248021074695229303003495928383468278898365322316053463394985370299379217824133399648118809654009961854906727116614938636677582575300752123494726532828670732003947987538592024770054324262853003096992859802912474028603008389983805897178159168050532974640799811020316336112363305367343251716465013754087822949556301168097055932136364385444483572283380972185252566284183213381119274794457763064217778072398703140014241686892337474559432483403009279086184607938372160755843947619903583564229363493676007652664045374428371782360604228429601974666291739505705692967339621204793978664610274850665368953849192910021232188836926334809295263526543340315021076016556155522054307533499299346189135261918563989470206912546657987713348396909719236239559533395395064051065426187175045944856117051705992958290891537519984925518138190030222939359463025149718096209238204009452102473063887002318564784783318596725960642082307829494165179593777789035531716937131974418005419513334104142163720222215296574985516505375356806165673210811413026634403892049006387110028604203039437323626295741285886938104370186228366736683608786121912413736904962899253647410332360308933147839834248375467478282954358936589352326531041735472597512070770341694769670416188683090261346874125574889726188598322822165012277095549801875751058265667489540626934195396966835727437578847672434681187251179696307472840740565199486990771977771249669857141723014693039331872435302748271781947632817142825242580757270641064940432335161436973462319774129863635273285708190866653743558130429029880905122716787241429896579240940235758743163218447492658262882411663886712954902952346016494768954550355604697913541649762696828661790256292974646645161571375094683113047826738831629864846834791310729069091081244838905267936072312848595896804186171213075372710294323333830258147288817590470809761629029498229504250040278552332904298528723375048815305915210060395418411083054269909307974820953581132947487058561576254509618012597539150781903978547466001392173573321513841252245456474584581285884603978387213610527529776586034514560811557132825664992477571067975620114860465011814824403583755060385416160383841698945190612099881993486660550750144253239341774148833440795058492562364496773332842813957738319908596997718036120838438183527004820021617511051033416561491928854385902005559506817741010029766008558904455436856758706339580777293936420832615772132993137146491152126568507574301547731842247745553702846201581238895239976795838009356283741769480457926372133824754282924620204764601973234551368003898471389978768492128199614011552654625676238463123993122583355206047867359640512502829808808900754043982093231399681739359135045134991179228285805135632238821997935190826560865649183929362895858172655866364179527359273796308838590951745665754551423914411931998902745451222997188273359193428301850964211377349395175853391455980882558073153061786313882475750285078025598743830993191424005793058874310358083632705176348313942328972752256540742701401955532244129679575106706580211722526079232785760036522677594882953288577043569335613930981058133278268270205611186426364559694261404007021477539955614239236874450211280412976318419214813567017824284498137303017289276688914938222634849123160586514175635365948286790957220045238310680217832856528394646141849428184139939811105718977379425112000468926065377687433409451274414924052686766098153062391825255755273862277077625332356777162340259684769572820274896375688704096809972553270380748443248832031806681070058335668522112913808821890596216210482425140029043909042195911240737985111773354826327330929871592050590124356055977532667592312082858997432243529572699378197271068902467189518635786254379209676288788093302517103892969813535971921756023042820725922704166790906766289156242097620861873973999377117943929040583850971835638912003441692596916513010151240451180001616580087409912442743291608641525679135266451275867889063955869646767624940317762393704757050505220933548784933092314613105712940593549037945337876753671013935562850162176494242191554131363268274959234976606732662929092113241232748887376242146096830523283938775844160157169462402489361757649550351767705481115295325675072543748015186872742650245513231725113551512882979476788062127522120256892568970825668789297459624603092887526718241487127720947779287719927500147185639527751433554200097374251306394885640324096361319767485507855421618019256751238571295772236447454213460989554597279785943739861691912880659950394040678542065859632224849090637378071554855851046226673363221307727018716747021278022181986479498326951652097047586034341462018313584019143899277320186451213232440279997784026629267638169262883011629616326617162041781791081413933085309221907943800366365842681072288327837762085003617710598789463465380102589818820239135153299284650246411609317180458217013547060806137004448631096455380186653217821146671317432878524962318347567901402812733045811611165830551431412418452606439447567082229523810183473033260021246971768091774813915619370832656162495956232986343445737976218643435395337547090449474413086260095775450681631226976325567487713763482619192809079310618958203924127145570594185218838472273094231356575658926104273233061880431455616891615547030752218691999079137226999162535970671266413140113812196667201968667540460181087409094250681224372662716830156913259839691192149241495540760179965460414403035000363610788019690575369903348300652466009342234256220230945611211672053631919720272443136505280631848856686745182972217301639281876732134107539052462247605103423508477749350985217041121699678433042683628880403216252295944239044651332409462278896805165862267469155052865707648222351454223295370614310458713034735693107697571661325468109610226803017069111452080494859134171325495303107096859635511046681011384751218990115435951422905056573092917112259581451166641051605888411314359136857127745688781752855411639054095031198763727608485822798344829242138084553937678233123953652765467129711763559663615707457311189542622787862062635651311452886930272780679142754140195069122567238886255849612750976136089120848210976913721968247910504821733423623667512548902840869137952566794033288137273722564214684075280856273717050632061340174712936292585655131688056897944535035581659311209800879850855931131856862423985536722832871656853296448992064266929213401009795953082533685794524141467462574953782788731983153559444139787876176400569278560200618402959886498335451467917934003869540305060442480507159070715538085883536844832741647673644901481367932969922807308749661636281508790853455784588142154973465593600861556784377101763451332726791560239793558449835584315453540773150760486327063762875250756159714772897985584719507575937091226644201494408789734479602286518550782701356626715020100109097963596019722293937594016033493263766227177921200338265387507187007659957882652765789806037166667982241702285413774356389126022017576544932566997948642317890495545837782536642559526615497085234684865176112142176739427229480621160821969394205457135928310680859177669447532408798967169037798195677921750218040042287647372049449024369896094890843431116492132900450092298385826068575662867825770905716729092364905643289642306793343540223890271850584696994231869449388991161923410580732920554348529900477553490775382457381686615248297240040926388592840183613887414080473505234826289295144595095050448644525130936585252746600245841417675231681848520551266287321387514645195160770245806413868064272030953681271275984747463644479329713411788286320356732546859619778673086778379724849543742539919054011827499023878677283091696936250042980747060177096049279525790523626560564975991711531795646681408331022976135604034826736111785394400908454863103377239856934512502608812046835448253340659736887065722405069187009283964575499245551236729087327030717409501911893468489512761991996447067275723677655771136675031445737057890933257797361333985240533483899163247415192991111191053074913730937638728048717676440437432479230166124619256606167516530652196122833199609087414078871344323618555975470354050954997459252165650527839705885643712680668436020012621243587547949646739308335831046577253423189230123552601236744263821178818836788761057101586631210181033097251451923366537164746996959760761465770413106955927434998310785429049541137151394141103972275257969357107080297141071340962899639415284014021070920732418967816096099749681678894593221627206836091184169328021309822127721312102994691558099166771203736779641009927544151331993115738996500830692480697100393667458304661215281710354765535359176166971694973727681469486553084362965192975700550739499989926391313015140994409758509897868563721133993859873891826132542699920274787951849724934738551653646428376152926414526951599020227849473194483848924253187809742355773103548985320135002252070303323182229242646975363688976467963199382413421771160224371192206273085250127412237999347625696881378079435243963841053731304009043529957684001205231651235212555320897456516302904766672064821024539395478957131174694651448094172410692482883114571534651762154649260676763233316936996837406367037795933601786220726130962727666751158684175566938525861695599169815034709048945807135567023920088066040081188496943399405284065025221238222493258252974560645599646456453735534517916018000549162471232026362924663149617192047974532251004759996656368917454963392107494216715090906986867176950101109715009839760843880242365363362361978010492707554853231974447656840430295777060414656350529152987160904610609907877714024876542225578091604404294732752796772543258633917330543615903283785743196396566640980274723018683483692128738568272419108587313090956408594231019383789374859327609157573704707808096360718049350328879517290401305015197564049319354125842044689562666842867986567247839100172037090042136410512809749515545833366870434695382779238117841248142523807713029516736018990544514684452101399245950168442740699819530288467429623654135553701940427127535356661336339975507616863200228688914854447167140476286705526955529569682162559830201404165345875598607966169918064309281690547770986809489383520379815338026552851059739658886357076491157366584819543744598411135854595334932944695602466811225290387243870660166461817527102595080203729743193251239217968188290950700333246401421330283940427647755826223444518586383501067393882258634489843908232939923141662797550972267317998018567967230823544583850246143849169978231444648690375901360145877074797915104827408908222261378135899465017661779324903968625296183633584486096224316687383862386831687607046100306223852360672196048056361547378428237827147185641951221644739726405516459157468442330370635758663292728461234306993609934031513567280206599733698311912531118025687252470009967870663708917980247275591328194739972803060598123858139431962035817396042937404560646589518700284563662307948017477579002874384790915767629156171395645284465182694340227768846836132987892713165792288923627473442015609232300664268448927524884790195951311906920423242878946729191273696533489015060521259588743607502070917187605884245496133535287043643731318492211717643934235923025997824367028314821294785546229772512894512024522746158439476347899715575835429182498903486620085657105120455080983669761607625997035137987817425730286426944539082802205250000509208730049792496176998311233942263386236326239748851237311212273992410207588977519180978521671338968619149521050930390448001840875565906877749496389494016867456128191312194757955371927512930548596381670071063269639383582448445749130778350779980008687191018502871985606295935745665764171628290760354772882719622532435278478183494975693210783140791765965199203587431269079975389083494400952696004048646368528652464019393190924986468442118109597654904605469639228334287052902540226454696883890304916417287793678683190840562483789413771190336863503856055395320506765397201116852416185681732126025846711952311405750101467384972861639479002101501659309811151016360271316121046116597113910987691928884680262939081014936756389711939033227990483613396954775707326504095008528779108380070292351493072104226880820701828068998647747095199356110095601957136800697214122610330583152780152513492760956735952711464117994518249518739323269196201630422447952468020507078786922752070042606951118741923823871381517002636696333993363498153938267277293868949337842020982285839770616606699480304872752030059419956165182167426648278668639869963072640486332839882293370914382664985921152400945835563155879820137528409422579105242094340221469098375604841151337360378208907841414137755255999418091406591219373146137457297457098843717513203831101848016813667531752669470352834097958114160238270552847508645489678296073854888332526397958613859327115350464052547690875103434652556892793660658052654116402231426164543189777996927905719087241987034951722327462292170980046556238688786148312392591935245582707800929043544771295364947606400712011794740176588798268745757366618328944326028047155901624878578459644930144266778744675553133340747126141097249927934359637048596214669711080789544212685675673907255712500419600573986402736914565992676373101618937397113124795388504551989659996358764627883634907771264347534368595911811923029517981854694984905591682495435780969873801586970320922177263226318015834357049893039750652063267074568387577458089644695636288121987045690795052200920851740083180115003060290725596524161070463405783894430520842928479213614916136039599621732888784664155780645523734352869742558945624267158225173021831567656097478839270786034762857937609375969980514411094135487067045145797874082427350257754158415790162707707342555447155473138014642654172209715494925111589044950124005121352655997554966452875170018573479166454835622047159621050720364893663144690621286517531685256137371368090351013208515218607942315412604149541169688428024672639366909240359450645346642668325184591491802630378987501026825401746981018432225322816656964155915825069924615545606233889571048986411792891271236361970673904047486938032457409605211222728377927103196462684686295900951107273882405136002389582888736387967592555294975064864645862801840528702467981105754657584794004451486586973602805564156558328383210793103914585910339978341504106268938882248983103372627967583842103321242651377315749857623244782999603370458277941242976136472887927883433593922566969184020331092855274494112359888369044452925897402766217208355705294339821638019853797145281568096571713855785336805238898017364799665226503076968780926437073780295134643791244864090496618731625700796367069349149922542293694169583875446682552823194283313304605718670306166597423092989589450961095684048419312851131092172468867990246709974619418500766726449576908297589490761089548402967215093956021130078353046866286619516986008139759341443147234255602530250140636393599528643943991802644294562731157214959791669985432094585257305687661135453899545772372976750789612417125860267806397155048709553074884554241560887674808539140044100681519191830082686279150554605553189701337222331973014982748052963710211873583419394510863040743989400084467187513020902602027519409360153624525657037865012075513344083393524092383358841326534006582294531874775556789299331487883036432711746705694026556910140892889363045713025062585789062643975722219003741892397469174130635843316979130547450242937472957764514034941558542638190739097258507131874652259914628369646991658179917758582529592356030351832129163342301709009794168061802941477241292745267529373159164875302182051779514491363536535449139830746559706457317470488498479615829333947369439583574007681023517191541876081541249706307765284509321943170559591151251812617930693232132513884756790161149382853479138883770711328635576023373366203673127243192692421245749477759775496003034694637243032342542325751198572581428857580364747790946511097730413343387741132972832379720623496691882258726133139597075027829972085079794011821339252856298216533889760464911992007560265206125204059116776846082294242872967887482678966880241501133392623555110118489579173875550810931071550095801806311485207137707713030441349725288323810105963864808286930154068969839367138643101969278995977443567402538369108062712919757276994436083100846559564949067380366679000916863233216548789762037102304831422221499101162103230995270467929491722469992426180204328513033940320209854118322555290322911482474143644473998360771841245704364528078221827702413714748259271587128681984843486844727779576050910053425602986718655968927631789200227919957984421058858047393826309833228865963336326784637526307165123564562152647098287265216802563841973662044762958765417870160279441854379409722432954721488047886756756452877781985812958599661141959738737332369416985486097892045942259115745155291623355678781825403699408292373672496728722850555823792527825189321445227324467246864524805145133117546785857810628758765242053939780356152698126875886668423080868220963860197191664695782213108674659325990979447723479923621607073247057257142676741992076771873926955770339422753163919839672866065834874727276274212795758221311088297882259096852146336900782026753604121063333132123945739917004917541045798565637829425621275473587315196246340559133272543315584703028123869206214059224534290127121424953825242231305789118724630730046825611189159490132058850123328508592086853173079410652745606807046256293611976494944041547290885735316006738671565337563539052890976706140982953111007206749928883267767128361636390715868150495551542817144921342122223754314866630416691828485095979616319950503340219368230411275398208045103021232699731742916328175804494661794451025327226137738684474138632507815566020019630445500713467975963683012039358397220218960585447910756936648361017835777823892624443493369753432888533633407537243865198165272114249244079543415889981627425928064583567464111274114408362090482903484554730600019870546952439751052098499906704343037939117977730879137843614977315882546380669925245961506967814008608211424166241452815844766718355524172198746701807963006884547166920639354008872667099212648437286061249761966671887601485211763020784612098682490226782723532115130999990182153440410607898809951644211162125331978090841144469979471890008143342531699471901869090878097620278103384130042204339731923045272122912705245721448721620117802985477241908944306164244777979928498918772952134553209798077234568955154910123150400576950783185177517728269417231763878180940620246559790559563863810046399962202613034331398082507173926960998980737587913034488094114897280999303603381993797961955971154522405081130504382957184153957434535311883617081100346496622268748884080033095584426677180893298180173138768299459994661513969771560349662930835792582107692930483624907614000868529659132785812529567908067250825720362254041504681132794929954059828939920674394296242115518989372632279584056908195174384352467840106303916560992139883604119644441617007227355993046243196856141351982913997062748536174359358279296564523620937646815972389748636579840797445414858657756853236669732463679161283015717687929615776212235691921554928753743675328536855369498678887476755411263702706877389638178499147902571773741011028790775714355526278234995160594313641851499895747177116300732656125128950440700208315200518414494203233040963017408460580008450096739511843610643142156390656100571580604771614481861729302035726275030011379326511037406751997439457049524435028346838051606281004053648041327399031817686552462092682562887301044994390454530918481158335923279623917370571688854371197640419549269164149193440066300885709567371444452069699684611069320879605899760171273600188888305326325444249291585209330843588356468412258629933139288175501374001464840176198037926819518132092852668852928869351086540313654179720194790100728662004785489191999494964348678103894501596114536069357732253364275631559353529000099584541595412437486862392984663797767864733257923294842630041832611239230904466164454297148268173931680276086019529788413224645260845034448806203863160978872847270126781506558336426802610464395507695559228695631096584932241209635031931594607590134403150159025333180566400408085967323721178257717761672926560087967815761842206145083708238159199576105494329022303783520991886183719075563186704345383668694547052007350917743441217916091514149263927422981326672284962760400066666352136671645617589247446795927611794979760636292916167669347917302960612029633219739299833306842780806647077191145541763943451868497860824345050098860207255213378848769721042873010822667389201810038415512991068558131149949948471061648961870390294625950225494080665389890942048314638314972453424180150592410176786059797084697960553086703740869665424283612538606440158115943834087703998440657265551577186559818058498194099433902917943416221020772558920602835620496654241111486623898840698550302461083954884102368936367929338519006524139186815701196881621355689754206104506032663080308323084868506991851699900966739934267144993130759326114031710421406003517216860084402214496165864068793500038119151180989389899669154092345218905075455037202435001231046566916910150284005441816416105247416760080268759392606451555670672203097365878347312688513427742585647168924434102182884680736436858219533255370810614555729173457406705830522915836792473147664545644227507241131052906331305336815104996760007761177087640296946510587339424809215224330089692799004030200682123200154949476671874497027965448114179478748065308584262877408995501283546638967684795042009460038620812608750532411307395189621090490795864621328958427965103197085495770564931274423803938920427696228392990018952184736494209689304290670499798054914466998082376562231301432157524618355201390144108899371757862629835253842651244902357170810970692985724802505584254586373105760352402921472784175451892356053874435185883576017037794042125994828493320780799287772837950322238638167170558418201988699022746185857477766151955709027551980287749906017445383779227624093519607799753979480545838686204093703145346551626019518358294239446256196389547277316229009939403029066489465277829457536284179336392045656922520281013326016050908825379710476872242439753505358341695508881839772961009348969151857317545077040143339952965554701881748249568895252587076928414663112934744283974292882656363224540038009863956195277284575937885391228077586494131890807598400069302780633616922034980090012591464760036819530730467927872929513461419673709355741170759740435318306822873866489598095140432691729211810114513677735382286886482532534406816250377413362425265183033705259612299066200846789551806915835467315993433156959614458020236816864345858899082586889693980600369968623040384271427388724452061787756541536412711123089097736135957110147583355667911134725351990905998272409506258973937455202070419405857001471532633842539748517099387021693979389913115592425957567628016284011978354680464600149466583050220754019175215094155609586780383688647224223341635212271720482096047304152265216912446625828944057167174345902166661325033596130692578438907120359446630577551225880834980129753435145406679218168700167795063011876260804823075891063777339466996984096202513265371606413507347253694828097217844088758650456674462981959928027107373657195660971100417320775141883927942670900608119894380363237154287846276931135848053369755387177583468524625612800335899066418149120439145298733862811119402140824935039911297056613590142630850868627975348054049941348037491349835007016537067691067773936918105224016002008879168969470622220055137468390784472250911597306213257151250048548884055065668107909878889900635949109637269078049292320190664609651446216934790145212181839242292634666836011831964104020395035879603364631114995841893644668435382737788882242901382948929300495067733593358032587136024214047274125243690152332345870456079775046413271426586334167798683407101034368331534325459053821693430283305434547420522269878852600381359910888421318906777180173852095032399410147993281045532959148862903524813667969243418737228167294963865833539577058405110591616645502090176975425348280199650332916314391026680117283612279734214404040948600389057374563158710936113319025043534743379824511021794137189377435469714659036362813040017860383126639980748390906005137515486574014002610511907727161035007784091041170749424950391196475554307769579353688606728941422180347673305692617650512486150480083567196601995459298290922037371632434049910764491726423236219431380807191065427068461383008208860242364748395300269092566894928074280450569843350166091290608327099692482088783532801384641218680493487983040662353061572876878936981741457753692456265975234788872400761216611611126600714789720675409000125047077720972167057117754882321437746398862281622802983582400511632319608175089434604838404543746332072594807946848458549104148083287077979264202436529440960240634675184464019771150553024505879802652226238389385391167374669362372486854369838709506313266832375030257221919023401271076322386004220574267996622007934132275613447523494409396062372119838024976090722936526222071064644070944877249494439809325671947436088848073088275119256227273436978973551175070602729345119069800163652271715131072089526819780768053643568987406527298832191511755277985846267819352540486659094682390989597915177931762100681494463812572068526730684306523901327795184526436565073417433931305744432837961699251485873921102243008992064182024289999371839224676613261291779619777096841569946968362210336260369741735426782054894568629318975709917878353347132635849909973091163839467281923984277410259794967497601438393338362597041911745774554359177548218663697091847078872757435115316908993232699162335146707185906836419771879481941185134639982799212776117861489481232057458610622433479197321385745284938112693965032260209045041962427171218454509962309714476801266326973687772495859367923196631892173278879008292558911080143401595302667279296311332827079493462158972759697234689579289613339081988626524787213879084454881776401537183511164833522321577349711411071343404520278733278091843527230116160206235043092484536440994055513637915217564345770407908177530992858684413646762824910570537456850627510749929262523641227691724013025407982120459208847945394325401483038785258159359182185959343889473591263370624855647348860258136986554956683486541149918929124762867922824981248822971517565398037160191913955258955603457995686212807060383475052126095383073650324167339410665891995344451089928225564057565953507700056915295677474090811154580230235048358110948836002633702643216082434659636116945693998831418352896696640518168523678014727173388716407276128849637469144183535501802846113910502448838118461245048507453946626526826769166209928411905851095604687973419173882245392039860765392903039408778161190770377540519936859152915377164876302605668257964920284920077692271620540221107246004799134038007389280537378179795352993678282731120182481461700660350132599487137670831311209362608473550975691553696171040709001651891461884735027739692496916273252728566189544269898363368844206335397038810442589172420437816104352067432661262777721353327920357425865006491569011452760693011965657851261245229370285434978225028178860164488544830163934069550884223707664694077842728818639217240467440637416057436767608018948388467581349790084591711841068377600292941943254155425781954435962504720636202439721507058110683314420274277824778101331190863236686650755033991594031984436463810998005898163092891476428833483700437880339670257930190892083680186270617360167941619005741818939245243071652836702021243186052015311854379375735362009645247954076554617418225326759075848180275235490446376097055575895562962345028533271445126133718306932838131890442311575669748366633164964887490619732108681185022599903903145076767761578729469985192654086020821300429737023254541027318556553750281055126331672587292532749600952777362331024808452041836595048041566638344981131766817676047932376371214969968290114871401221254478932810123611781247608980465171530647593051875240604269477607349673014633185028594988465451486421604657866488109445145143320660148439132025019671377784983911494779294553815102429568803861807709775753987899978204798263711569468813574179860995314599782615270227887335507803872689837540751200672474186368405966617127373804455648404921191519392388728615354465482820174136345034129755716889301643360732238762372856471281907570774964541250709376508588134022924549937087499646558910061973558443576523483635436089509353840437587362971095673206248265041782223343519152009680475528193741423857659278148819385346443266273409195262918408069367171879265583562384730670764645534877921722952391812556440723805845603070778030408856949074458137342744804911968076206160268174700371015409625461773676005952923202233987743093743213324804191840768784157838272938775545542314308178355003004981842774493450298509930350249458668392707727010079613505839261504529160171518844967855722181058607012202019370184561229824649561770476401172443301829793479968441067100337281845004180908692550463373500523583574592506362783212126238211145097552896970718517994054797351967912860749750739572144522156249416742388416509533723591336830755364478125142591000069716833901377878227879963343319768198337753510923989454252967854516140357654978651246698763096365833595060042884413111135575040422734948505144620044977436050564504029643232093710494773779340797921470225273456550146299613642350201526321689924236389873436657126037205280175430952181974883836968008501943690378509632127730258154765671887931323389573964424445894890865785349060190864435700493682059125199109765320121388269811097822469504783340069375392162358446653041799508907983116838206249232722780128273884305796358763132287808292494064866713124683870921762085077176342044933024949290391721683197186768947338175479893900948751691469218961559221563879465766833425559755286219937647378599214993104315278294470059621112182342824521767936495474280395344528886619465017488278730475047597646909744859938086732535456913778315555916830930645091043644965207313566877891878075171225797203792031263120096839937461334932650018332737432353800571956755928758614733946874858705930238736505648458030170850944728036796007251072317969377671538313116110492904681509622416515560829171508118876010513510554245378468399005482521902947015333446752379322811415465677539722765988716108149903914385420893812585876256885813223165163381605762522998128165686783035326992746335307882225343696632579443792259791406094890491404180119267103738064149735865952587734480858636906956826354195963533338431435647459166219307424123890243267966678786438463356455187529825270146828134578671482944044481701182236238552007515142771146749505444940396756308409577354194312437461303127277783530061576430130377949561595918565878409974137305459234869948599744314074113487942833679322821193537699338859346261000646904688745740228526859015158362545792766946693857816678798153265056447800595974484571048329436701986074654551168745781416657132503322800366370888146391831132508155773351777171744108410343544999063326956469679547507739843398822416631680870974991278478164533221075788180326613330533561895104862621169532691070139750934698485757292789421332097385651855413142981275059392540184434082816406604775981584336489688350419068139539674709701707698015337458992912268270808001909440192711232402650486161305102768341131877199165277898982268635181057271415120349983716540368169565959654429528196501549012451142153014297787199332924161234575219834015714651874221985412306884233819298926277771550091482908592514621907543826863525813783872284111835040692669318666523573610980319139507929485564922980149178602409541535933336808790942344385408155638709397642683632719443197651199692816047144227450537147410232799803119421871043993396838710516708502276558515420145760973060501836363434798620791676724608091381799000787252167280811172740213424840020138430175080482347414104620942322521590686965707067614633531716509235286572000957255788533206020794725580591641352439151762628694335073732690232583547770653551298435083699120497640758000197549674776097444256504494179121523170131145073255331311590643262879870370856975560176547521591664037300618496862065019482245161371957997026537158305734730470349487365384419706089411530439958671478790868220033193926277561264679221076731724747169779375077510283455992266913381807273522718349818756958947448547102505162131339666427390327194514006175002125062538821345808401447177303326480774799401590082409560119996673009185827326785416538238016880002930771979797311965411404453174785137638883923659715447351139205942119053864244155768554248906203706561250264619737777867244952623689045194036343204706158777464477355924871792757549587048184601060820147527847971614059064850040447853453762258517689956461676869623656390308173077347957225785571943260418172217786938125103393958285601941721578397565505857924951994645014670383136805585526799487172144900014997062252848675210665860012232327398360870934499951317616538538613679096382417211119288782371085975540667795279537380790890895117400234465827061828800449331124206761366662381665519830410062002839978032583227213239035630645160831231557224615170070339295175745679643484080390783466534136437714519732158757877257868867770511214986651236270091805803806797291861947096171936938037496181783428712818690230636294973752210025037216444240974830261101650450252627171050654643967308587028663375098968129974747261297603498813872430475254477118890852799260786726184966027997223927781609626240330321876947174314862339929799998270317802350257418492093365047180428408441982400666778844621820595499206189944410119707312426502222899301586691893031584493216611021373579493507293610817282413337357098766154669595095798343129066464260216991058995208878211134524458543553720015380422947234028599392995002917211947568620283989779394493512022872776203436493765770242684918247729595661654431740745966657858694002206307428797099423374205453573583536199315347008666525204128226214265417158648940808215456554299202393806662397684347089039228952443264186815965162833334820619363445634608557686223082063590986090084506645121813553122228624712116253053723827336348242434192445038844928578466033050840565347422233600349160833772674113133287993444482936639484153207694402013213936220251892224282350553165066399570397880127655677377458372484323953505333600368510255535473384806768760006538507873665918781972266962797634409923646802300838607920212367607534229088250788830813366157962490262892142547504236258614071090825918327698658656685666719166860322652667009239280142536411625123478656162443273879336392324255618122254359197749417672642338101730569845454488292709181692730230415195397096244560709089508990985509549777064875983687113137185426483458425528997146203691423749039265716617545791972387591993757255109862798426300713407524786431278098621629082847237850273888837156005049231226300022120841485592708171357672278066474130037707255532129107950839706495135167183163937198224171615776401233156681288533441838417980427642436957491969391199957581634385325493385790053755926287830458466478621602450642848118767930650163186163033903212784619189091919913539314187894522057860787183933932172189999708255057439593876270307274245602340407777888924334435658208282994354093141061409056386690617650940568604471834783748812121847599405147652978238569921980186516872529459309516332673028288770304004236710065223258698370066915660474281017976616506248166358596028533728631155055244586273898825825850323170734658218211928808374332724353627824090812217446705418345071775193995804454418213237945149647117338258254544441397528953635312109317099490389892326256242092926762779627828403254082596124486587833730191978218172267691819355322711375825502192140776485958677129594757216177647467749020167394636785606700835874990510191308388345026973128522730438131688528383228969863782481138246583532517171515136540163814729952693385200915023436660263105406606932371978241343142607580986512038959333849045351596844194373290389593745856564378496609703880383991214742001489256867466832996091531259111001178244708477634749619245946093179509748908672720903661052076210714787870229264975216273063490283836865559852552097921130579870600041684137968047476117552706196037905261456118110661398833052514208582305507764873450621241005561831956001488999652242765186388305239444018749432869208813962259957336359658703852054887779534449528278597395693386868778753013703026330850722131717038788587123055982715348560164067981694117977039565720109939184307203927780997431365404112580258639975712683135031483077219656107555398662577196882785164536291880333714750054778811359728360327635002122892463899632313578810582925136078731999154574306941706195182467070354901705068231875168375753853728867144002275940164944929489773538366716067985600529515410417222749309200172799325991614668388435660382450921714707625477773406180462821165399397458806339924342629731247790837964463880915394414118344778959669337456762748461710040261573226450010627961474250904016046473705387457521703673289608332240580135784944839994254568807459480369306612555295365417489652502784222175150084912395108469883218048623791281008772950698817054291131679975796103160238661021517157553059371597719782693110225695701339294587537832741352748953460213094553854220269065792650227173872364295789516543801172815306055590065959382285430534228086801900701980775916304106615969025432185933753506256304143800821390542031663947998078486077455352485874610759807238112707402777765191715264917806166669518828365571554523906658818534039358538454308014740823112607321930692548781361883568815007467465274655443464889244044354177578915117933825730547000598616262463139068321878575014484221636444832753143545782633301095183895812807731788668696836975888804148342226263620482634000453101874796378247599741017793227702253137543145172557420889719382506662771386371648055733840259704888260359025044067452893959622061932003199079253952268117192660153515734220344550652742319647735535265555505562813214218917049111280154919672651826351031097731065819580499201464179247963232970541179755338718875675136108432741833770888752094976692248524377905381075818952368464032335538968420470709612644626839153733383321141879324445371568818422247919921729746401786738403864484067313602475014121317441893282722240510761411040452982617775684810252492214043756738959886656265773049404044297864819283341148534175397772036170536514081539709330042032985892314427712521487369415885143139955019754543921193026691595106946888424661862128233276819977423564015471869214606849471729359635173960519333119022099407636427858896891382497042817516911362222529120871369204972703384668141146050018127429150948823756614299602398849209693035800623901890232172781284480526516107039425965107690260184082769903287377859920856838469664966645641400270823198617868347523351293677160300755147518555265406428293961245871125121807443569828147089001037399594900336991185571381945370564777836843677797565295250667114667370886353376207181105802494323714036297412628446299064641408789112841970188495654555543942701068573665691174785220319135624742256811466063531718858806477206335822240398754183078218779030729929606738614011886253971360636929960033273074217862753097482436686988597389397889149189221766977596587839638683833751128262409109017773128048711003540561282222024485567361410496079299413100425333561408285190697091371230915518291492248599493804698063514947766887595004556652009659710844913909079196195777458627985131624276017803301351420119801475762771383322145320218583156300774067459042639097310726580506469128595626387602106107325887674125872738799466738593208260998712389325946038211747418931976861042729225839740554158449962441188367380605144047764709938196341055568702403892948612035665896907514629229562297396649614497325054459298910819864535496591153891544471088580059987353615032157090272739989010053928992534617028661041694925306468042587690948686174808218670256228421928709285477905340817968321246894118139190115989547006756715373178089752383176480794477859531389250450153161748256645762057873609067780128072941112637304185466568098349042179455995842788091904922785674659017854741210891415420780654558375987529287215331433241746274615040830784614242772766531323244924397624068146699188379764643076239757824103983459631117269910829040607872028915998802132754281160397564610062736957296176023167477934436971670911019613991930043040823846270355329644259307128371672130126594637924799724332154820915855710883557922796149553395976541602219951362542750660878401078053775614782534619430264636633957063934817068637753182546684156491251397888505567550937849573920275891105239549757145324055701976046449115981415799397893646576060844128782582192645310065913095394977491875182975245009498393004776895790604555490124931723252852723566079420156254176570594972764139382900637025626247942624249810173545402018622043214627543522215133813129749288399996569001247324933168584876333121074135408782598217983904680790028878534026293120407728350921783610950611153291790537205885070298987991851437194667661484574792811314310885358200933846889950782813697529089383550106344088227437599276282086883308988706926993712808933954148054239375644560353961751585728319907666331086551890993559026487781966742115877734872345346077693393712302179597029901922119406887794546258577793609044917644336741104495013520727149197280753126642518744139934359869460584544817866111340644309835701863142097330753675923884374059844744320565643429853011704513832347441758773234466543139176882936731912441626995853428654373669990815181197575118956089662543375449363534618518825658948469973570255455086136100329558371716314262543449883528497740541471650457060150367838550683758947747611855667795300904522339732142858952901409471494495621847161235893045463146189533091129270247774258618678943720214120962690531251314328953534949116089725783356152832873393460165861844000157122482658981895187462184443932706247141346208836809019284630431353173299912209662962385191769768559786812083703200039667008787857808543704212741614697747813985764665255798078255543955979744549462114671687772661751894909148742924045214985541561365475771034390259398612454652962586502733393918943349403278444596179155291917206647129497162478247973303956388146555182632300146755709057202777907399001117912984816767363106181253102922359009205052491899180602064267298926676924909157764926397310368599211810771129214793580305873554613274480921515165456187056284309593768707922092010339561349212431377884687242976014627566351584303008191261746229092225903478816884319415871230264777545663074299820989003393390098395018555019753517363007988491524353291526378273674713137385581233196683318836513402830276643799701782472387223347194607250776581350895317058939350320581016130927255920801472888364110214019968336437205428589175863228805547744195671750648754643069890673177734952932318539646759912914334280367647268105221956317234009296771064024275829200694874023879638557516115592111018829013807428866100048949542989890472118211974192207422606212648945720722983578563922175344800866155156622599252717456404322660223905949736989603672665112234662018753176063778346544301970984051349639653139377577512245299837477673507876566565683389954860337975749912171788568284137912232740008606871820065842918996053239641296542358700569340672530087342324387695310860804409157921245265487342412460597815185128134002404195194515737635678880573881189307558457702298798436878926254852332417155895552162318133337929645894886815725818438246273755838098904244906077411614962285062626975119057385376750715846848783442498106974020348201040540964004534211020078244560836947294179421962647973195816364090698110512381545722480722667351326540279389861871458309043538152517387107371381832652831095211510484120136007247253447496087607479528899987014641288027060392287016909955682949076248772577194488606495745971969315165278011435377934152237644595386956972278275056120170890706025690918725956463388070590479269335046415563703183805652872627014768092130444194621138723863685093467912945134640063499162728851686774519893786142392951090327557631999649447101747060235734259473114975645872250621823799765973628941870941612102116654098157247085802760048978072550727684003448317081542884751130566377000739609215446037930628760279761763157006122351043858835105850934888367269235011930222087005893731391565150282597247257415467676845369645081140047625576770026646117459090940486430251921125442217133795880346717141565365228917754595475371297768028369206143870962999104523930578701984563552268232993750341913072902563646956748203819203333193478914145969031181160403285211465014460371413650495821201082107852824214063959404352229753457922936579372317769092087511406227716532767774893006992702362143154535360971025194010331833266512529450680392387423040495528584589056577060739199844605644860842512723459513788596900672656424874981198055568139967187431726425602111039345974712911939024486223043843613664423537759792813837695702313406220778065586042949009194795136434783616691136334500630576540050355331649625379471896452858040579707566704933016435081153131797686882457767086715678180894510724971284076993375072282562418963354612045471124821303544597918643239478887163777566498435951944313223599546055926708701207821946119373560054342727657092861073874345486587155320520653270460008223220917829506632027902382541413034935361561046543816751716098669689113235651479870326797390143563697602417056330312385725807562302388643673377742925897116594592606951105895433368314324268290060140577377790953387095728332877996671840311620132117649272137055449529486402847738105704451796899437837740332566478490920176675563434018778291661531392175693225967542922665519212771503192768951935821027881554638934195986165961445524180986799322393184055034756925234879744586333206753232737256702950971840477448028388530941370212031189104295267193291308483841035597953574586218744582004441270184388610697695857559519279172289266482076509858513594752426766798521906259470501715830512222851189608262792867966329865414730445442654177322953211827184825519873596161389954347693766679165451460291382806391727009759360870392735973790992442238871009217720349359991883312731334456342472140607202673054709142524438165542818343070225839663039446813850056443072131342332558560418486627707347794414143071910733856631924648831781111739080164838878240448554807185506626138610328804432224911715916245265525212825537222653817915388203539333501915176846329693944024606484145400053867667793799144429748786412513884355812151709418316737762951292974634265464364859738080565646417630030750620021474985230787093624330443185809360720559295772808172164118756441550697566455475345130134158347860656721945914830957210517500260032139957328236518361407779924951954587224427455969619620620126944856890344652122967520589812768398712723843875191682598467196984646459567818588419654125328878570816063756199665064690258378376525567854364636566363943257732019694926509096548396366739979487655483413493083686078096232353766820422925726139426719463226514257084446586260768488209355431718510826847059324517133840117622562735153011302472111216837788942833796135904050167494843381823443460247684690728947146587583177077806221255414762913286524265638471103364702690910882977529674109989907838281994260367388180968700908005787506508274739765057114308088579689559351415204091906280803186614076034539493745865126771541412275751735776933185243636195956173965718148290164007632404492865641188935214213238801506200495385098606507611076572885122505929002012615103795101302696811921693043618978570268100844682924568610914412244635966430484152713473567877644752049875179939318120868263711713691801603845715241522157444235483364254444269015788455216448247604673945143650245419248979259403404951954249027571356170628562639413248845351427039879982625030600156604626324625868025226866048019006641508861719159795937584316626254894452870691723084607682546610414405525572211653421834470877033346616324970490961466004646245229236338432268544780761056483503970179678005160994935732958064267826993739206588184178668131057846372315722365101133840295752021320503034501827073113454510519909725244554965501086484185822851135188263135536892255197318146780010559614417918284304358012188623362174043218568405370745812174008234500629484304732927513916810042077783315024469175270526912494206058005791017710258264382359229213570040028073283941654949122494481652089429550545149486046971755136465440613636613711277700206475785163997146419810896099466782432075668556744039772542606413558331690371656290830711554533892022840517893981160562965513416361646952525628441661828730254521223785886116151011802436171665932941887818338765699515982675829494113681121993111919593564337603423603578099561804276169484992320271183286214717172157211189522385770791610677516889549180607361142315837428995449440309962832839819330391301907564428878386414197572358045160072123505937996489224880157964331883611806178278629620763537676819502704555917067331562966591281219760752660249443092499811335450030880233807798912920693531377576821787994592172456494404608627063208419924505430384741180973761594309980537008822919529829202972604075162863359733325627148810684961601802573514253147331856566164644523153272704854872443896819707334691672003447370318089792655045305637172439034777525662938680728229644623297289129584477011496908653542190554501927959369100805446047706025383861923875765298346743647652194425570529316503537948652310589169942815637976618222160143788388883293898841579173338646681359935867929150231523398216081589575870181007430728039976682441028920725450581801560836881915920982552444408581390943514049580075698264647645256763021796866856604954450123410283449797607621105839699398566476018489844693784061733701927000929693745648023634452186104008251177234230852142153809719122342107803636025430672539537482255473750163746760549059954428793043417036152874642978577675196539050597684088727358128731230482473221925521052193586728542397811239310248268319152881950115849468834808038954054793532312119933694268919989415427391619116958487470934676237621085104108052618534096374921428381832247384603648804955267464688342121130325707043558096340234382881260911239650672499149763027542840423954822709432673417669720492527041377061216008813613684919582983713864227584215837277236422450209918369996221051278881678975860266576996350884981991024930397122706139527040675444005722260964597213499773452961947628156409461620421888617035843259467849364880598251938472121088414685560938368689224611392500317351697766013388349187184751433370254497384950454304968560508636498841866682786896478659376186836791986258888266382695388762815949453984709805979101096304504445886569998387930518477761306970076731332982631978893210545410615333967382305587450632090399455921892673323869278471626432721781924025976142545817813449175821974596421180507009742538952498217249389162816637128634311084322637314158511925948685114694021509415447412358043265262952717270715961612997179334297680800701649524119383705929968127098594652406596242616316978054592519764348928374388320126256603041146217190208910395088174945732999329324113174145806266943018703563531991781119029007707318394955904655553381524146841372736289875467185354254579038386358817861092549670089040193160861737227818777528365771844266200518180769788789763843183574734884162593417943368498491006750294984402107085726231508861028323627855657947095888505749218061594930761378316123559821653149389210198559048041454320437484299309157537886929725654732851866055494606219577192298377716525088190876878362768281792698423247933807657205109673806957381368345732785782446828243309451686131705621807591785832760585833559366319230052553712791655228084835379725766175890517171258659477111686575682758074969540334367175383190929404745226150209660841605118118174399338032983193274783531198935383756422506355697494468707167699185435133104942725543217849175306761354860724893899894780559774560865810106860957957007057713954235692863001880509563999635251637413816230530181055688574751085544607399550881646534569372657194987062759744268938700648191504722628880466056676453121756003816738715245868540468914704549065640311604356858529983601503039259848797168154473023204803650909501017483580676225379454485749438544047431887978290296033906838999898258931092850233628956630639757991597203808257084603108599473215318853118173398907626835936627894197695420910336645682643551181581560671246522794172960094845639877715907370006117191500222384340151183300672495386878409716937557343172682694181601616810688926756376948054395961413856513657559802249035260496219505788544636921925202804559979767258202002260313323463708162320127584391269665549968385829218528780847044091154102880733687543287792835472043283828030208664516548600814948689452525190879673875960601741219914155326853333060794130096449674233541401590810616481642978935472595945137508809602511861420433773275673506237661447420517629780310018341047662003284860812749735718141231377067264612070876208825265462306152765115638370958529379508716008552248872830458402621891733347824821035159312678429746738868934715496584376051652199786075381128852154381025250689799058834428222735223343705213009605378721575802418211769214090271177181791247890370170855954113231861837042244066855075068635400326682940057935538577687697921503532432077663495850509549577634445176043378255689442065211243350190138711583577140520652905640835887724674611495543484290641063622750850160469236617923495354024313951811300342260333310816421521723629980656862254853053548266376075665439534552795734850976464468796186385736360502339574395059819327652546011379336435384389559803211482880423913227127930639709985270862239546707139753580870902910839129711576869913042931206218191555237008403511592479218852031395422990768780250945767746543048067530100000993444666614950319563373244413239358690807080755859528201105549497086341458925038310177286697237156408372564233745546038368522002806615734786156490741016095399271757087165032692283498430677098362864799601679991220171422293011494155237799367765710616880803827207905830580768518775551239414610246728780938530316127123328909082370697294310260014832689952367330700426403002044844519690966825230722833262910940248960663610993376774324859511662179755289863908725511505820796508341936969297650979525476246120571602866483896415754120537227395184837815383670587395473317366577325045788755143948374813527538591581815165022515371460478024742239813756742630441602224425781481906900310241081674267457577378344264296258700165535094755332218648515810220137550552998841327515841936570810647633362467726730590562097962727316457439958680153370529746804916090040701170490410050852058622451284332784847075382291842769616895866631589455148912970283158517646624376561225742218488831020936114116067195696562608371071492692269609234881687798360320121095895237926963498997352361924458715901577849491660585377849355468361734355828633947572775596442951343843564247320156784427495418319594983275292962325904462801070696345499995654941944839146584263081955926800395946759821470472648102443702062437822484437755208976122463974777601229390628170767065126494392437425049548605976989083065203355727772893815322386758085278312707701869603072915430956827149021681979256437199516514531815443992561086623492589941199891749418023592247965591520103895054429018335709612394179501012677388610543028279514762034685209190824597445233007538206926475191212202402791538563615371372507259116553619908654865960481698728474468951418468811173219028267123655386137204163419443775381556910529163236342171416471470136384670704490746637918675059213212250356334365472932155616048167536350266741377310759787167956906570152926188876115570647094418395760112713562767847097131646595703641698088227724571472177151412286872557162838252109240995032167164164040599798767670280060253757640485662964913935036022091325240384734242889108368231405920368033364523802992394883747910557594967240791030324287684102710093748889285218114048638437544064144340607233112210929426368576696960025564139811239599069180614402515975679244851902313573130385775182511993872813520555898678230731643373789654271575061715300404984197751895622362396168728406225146263906180299751486053759572455650925957924908358600622988203460756677725648775887787426136055755047287226652796056055852304587537656376361470263833518763155665986944493250029779252984779410520056975893478495434049197926783616953442029595540266799977158209881858360056990020026250635443125920427044369268854748947380323925784563620372731540624167003030052598122762977968221854034700268826068013000133861170548740883312766696701584326746998029971161431816106183304281047180227906972941728064544055261671981095310744608259348071378469205870789500387124044783756682454421151841548286989968163403293991074883141561458699844187618043648748373783169357868453390481597834700977337263580984245805646291517204339942618514180001037213915622237155483166275290903678514855840551657003351450205236114879980783687265652143409540983713684165686470746924463752282978758924808544545382247054622723565780466472371796452966091574667426573949206834460372236819290722096388482084328601826026961115805925813892011319889575593570732797000847047758896056831078709607129974016840155240234814037507140490643283200608636941687929819862594698883075758006503240953279102124979448814804746313740531073128659237648101289708045237569857711164009739443872125718205863775881231425527239389652156137558403431708581268336562069006695045554897566194181542803719266828393609795557217191099776283833495433495726120861656733609551737383171253076216140007290409113561466788429352054923677293756222637079868194818432707226440242157706854900006413693594943857585517018047972176904698410226223934798385154582045398753311701195209672890953004560369797647364643646399613499775019164659058118458931663774690211798992643183251841865409914112958671000146809134462219753091808068045141166573293574540245624751939294371542426366053208470241686114965284230293781079101576412451419663844965852748093618821630825079646781580337857933639850664181024707604992519187961325842982749241841055464549346888990568901724642383616405640666614325854750934000122823256445913575063869626574299138957074401347239226590380909475680550228659055334781812911179249525932599104157890965537366931355214641273536095099432955247972859485945085556697168852669129067322655875701701984509781718586334623395509064923310859206019914283441004846098943638096376032408377061046928615051512098521339753792620930731309614886105578626953161956409552995463030310723467938311284328735659187710765334991315239937834006443122336830795228095516845508241238972232718456123006191864000958696962700605113484864913806985851891234783774035796071823988521336095090555907781750473389360594117538645801751687838341512464565363357622560043468799316216460952299763459431165699146392969940427598611005362925466159858918026979101272334758606731952777740597057064208784478277895584592868158170934665586839510489510979944046660570401863632213177518733295944378910389326890244132834276946880217728654260116841956723933788581053255805569134567131747233656128235118428055150954556087709566350838779076510205696380597178864431838457675886493007471324350619530876624456219183806827998988763118414604242268996414289569267236371983090710313485022411385132717908970804719744662967839067042538400698614902803733160995346500664376197251799814015022900074150639921706599622876839672604951267716865386480012468647510615704005955501533349542110056194574474717289862868052901857427384791214147525523192909683288969504366556323554322809602549628052965672620959444507504373166634952117792262532730534746988445750071009874043325525615565627443704022020788406778977896719988762566137241177726976423450668172457287616608407845279871504954219981657514299460183303691195774150224446316541529436354431992286571799706089668034290452512510974878098218439032786210395806871203701039658458247113492964906220459843724831614496526540031486246695420319508795861138988325426351374914130023434609553555891579327316119858444666385399727629693220751627631901728129698225045687854603556667528362009803995628040117668806231926927640961683074502624599413691822626587851583211944847717223357226406756945116620032393077434466005335689819734375616335043659428846196640361358353094590929921807111811457617627641706686806515140552639925873428452475361271102950917377960292631883574998424352632945228150145678146625149076266119602230548380540694722879824167186564899423569852683328886079179959771593860671872174826033811205426456947767209864883559356589016667590358047341691885722003783484588222546749790422158873066506172968484711035362900133443623039831015871555326735966030694528447404833461520420447564203520785801125855254707214690270839769661279136025262093992289749233930740834202997299794148208255536357016149079085396542030084493988565978789168089714278976106073702370772133327491106193099873694600467805207162134137379934295143790767036319096813828537863880392882792502868744358464750724370771876910796526491934651458212389120072438631897516769843404076729141297078964116445607479341709492903175301699560327508463021147743005448679797850830183167938572224876170904741196357969918745692558013717624140863360670098081598590534098967120540675930484310670672106778348182693926723439733412747646923906830048409080769871994950584731096047212047785140092439497772887919748471820206496902162757346127231654153178108990296208274974158943163098792749196408678330614672093177040492182361469164854052334049350932398004269510562772177106875372822257793388211694279357429878621958126609914853629141769389352325145045965284918169982243935811792461820689627301545099314910981114402893798885872737157323784390745704327644697000898833772486494752094117347396043958448578333127538499315694388911558679771740902463245101366194568437772357303377637181348501234973812128813064911085500071788986294480135651868459351675554163390402388994785609388268095051553182397297952042339050399276780736009509337348725215559378534052226459537948545849140251714287599903869843552337746348689833110724080869060216191600324285286545194446457028868456580170203742395164797864833817212368085974103014129668406667584351294355287339889632618515036299737634727994012250433054147926923017451465764293460165470366151214314893078291509512586049249591986261102439399121361798188708292289466987865197712986781722528673592289923476546761059863076877831517921877625784537275051270446040415450890162795174749784665812504812034173415857834668179101097571433771346428545596985810992190422122732511005639591017253049312609377134195366535346047243836878665319053890890120258186490633828322800875272087175826646409066578692166611422721917671880139725750009063552500819654640068173850680351166180313385178249367925809239409789570495266554548982740633498149526206511626787357852041607393039467552585788486899241105114745263568405984335173319512595375867540564677293211711113772151385430073755202456593154759392604669152785680572060746304386596690795149359940953791790896192525708342207831726091936376591317058679839824986319580339363416821639290476978966363748640635301121107393054209261112511102775606348086659494019993040265106834380237241367851435536530162224960904613378400137644315352003483965056616612679240180807515720069512159341023659125784826679825762502884582957826227000458446098889802914065049913941591278986324939042515127507107371956965042312523741428119893465256033029144414058153790484942084180359855172538895907443410806759551883693927102052757944345451852489020456781083845549301373719483457327531434233521351786039468742933940113807492764092433063220322968502501006665797031064888366819796146281763391935101159929640024428239360598577974958856013792569203957574174673138904046804418521139625993743925662439800352112654865655463590247556961595821263867721226633683104904630163762737991672957013507849766962941900418024450580865993645752637184755253233270141332420260690555259612121732118344582350154527845171010952898125210764097496512861022462339261113121441744874120099240858010440331374646043349762338718931928935879166375763284052952377696493562083798720579586002343459469090134895764046332623173123139681411239637314046486803616715700663864787242731503797490596922057387039466381195613361447050592053585585809311123435356930762495606984424568457724762771543347822653602061351599821210973444704590839531763328757041652836459625625775403042062751763801273186862050146028955877740087947131974888425477827114366281112377021695700335808347347213662086085352791189568640656455580388242180462445172718495555432846391041970254775008155588675264433328648117152788213630687759496732812609361229698719308482098235533452486691444975918033113920442764939502383889385427009438092313529555058120853254551440933368872315723647683983825916719703726380484093738699760704331960536170356497228706588852488345004012380837717719582696556122322635533284648485438244694892556003197476975085630313537352327902098500138894310312485241556141408675750322635674116430597533391581004950403527505628189012495182371111824769998434836400402620358125252373421685131617905539138956066263370040846681309919018858438164858115427859558280858499316132855716497111330317900580102576438212710977100594372951840986470809433164656125624660972423986568216728795978518228008180479130194040492810572831202083559094631967541294152678513982396741180640120843522790566001388761272292832038628078546031056261132135293225321427556145999097467133425513639021031304832748084081764163288152426908951483785395305559981960905526853443314680106712276945144602765489204138236890586649841841676447131805731558238409878401813611541377513086594960743758486369011254612703658823768506050472071425411339831507578197878973204568681351028171398802709239385394709508593441949803439386597438703086655416926902360614421815936098628263101857648628490263444729043167996649596419357284406681580933514765290611282567037037498113095705004239968179282925697745343600078706800031261926633139246407503749654067208794234296955523308479608533365188772812958518883213515914133928490479298485484296327802375965970652284621667613657429093180998689572563310619756001775833263953876818411113680736690649359680420626948251985289078116135926145864301331720125068916960760005688981251648048236501419339421862209070653562558923208103056317296866053348595807101320821917675206661929806798548792728952591890226502395961207071408241106752916294733685582974813895174645429840893243990880590218160092397031709132621591252811067788877692898324802072215735105014609824255690617852332841991187841375859991237436100830343360652971103534655263879940031224206593464806097494040487804518131144034891554732782562947810654596617233239981912125805354421515314581811980179845717431144891986978079878946044948782512289319092775961117172088096465107489490568186124204750009100577557357902266000252401505128374897136620588416137554702717711440050311454429414503742599526508516039578649557852315328478110929028349075261495395599262226819742862979514613366486335853111754821180276425627150540562290578674657637320884206523531412153262400957820780456286122535181167176003961079482643040700247191009310317765189842920758097310411387158004481222186023784561294066428831805984393797803557514104631652478834067102118805434847019917623538293939508488827725090689954944027585217349688764841171495342248741815181438890262649179900767176341374512914473248930153050199826328120344955577561447934511428629518566380678261214235765760669485686410668826341569884280843033653542529513046362038853544974720626901989578919144765986076153672980406403202492187856451184634100451253965787466686579871204425982654226614578100719492942974867912837220672093726541439090509298544702642321733378210702819317640743710823435911333307621842222146480994839800500656056129135303720449774473300832624190751153459813448751107157223605325701703391519445648747850466903331974704094917198796312904484420611937940618043843397257382241044669454311205391615141483143555557728223310488841810766108754623282046383001172561959327413860726240238637010091399173661877325366473911965647705159352917505502501444747955984518787129406527249471152802677682485724089051144477700694117707658624780689303585600382227890892984475563904622470857287112714706906130842350727647331760730383856431408059756051284761129618590566734392747308423697637244443904697247901200848602683896118130684083871471209501872412911448009667557079540283877761552260508735689059456939185548836658237026137797735199595512160711832481173699493330725191520505134249575892031195842534920733004627277152234307617400292908600991058934322165764150084865171314454704304138230870505486856924049137991136293764072932767841056043221942135930958921445753165414201294204748805437122080068320029489232884657832685364587864339843245333981164666563741701400257960308326127946072767320997259960038739618421717151789033081683995712235732207911032260187858273808224161578165303358921994086800291788632796617706833821832028400266101488769353294102438651986667760684326911277662126098109466114983955951561946161551475538625392541105185522085375004536182283175696169644811750683031223880615821973452894152134966431883368104176803930004039690040012689327665889166381685356057144369561796486781154213647691420282161219410083160738686694110166598231265283005412555494673778213855006974286577634245236078356202351673975207119292381703264255743981934988662562937325371227984788771192982449360071596055853551304511327056131454229620714122665421794159503142877077250819141236023232084973298141332253542878016604321722861116797121059505716037187447570176122335200712502242325043258786516824809411825225638499220919877672541105845141329212860788762707645920335918839120454491090580323666347545818442866191951417169287811556938887126135622753060340121095575084117920778855284224852426080341384619174496206591108952332675688404015712727557212279969370906147128331307853032118115409608208354022982969315261401592659738340414351199747376107942115058612244762980870124796266835373977012940615028836784804617718494914049397762484725689451275109662509160083279443090538123626787927493512400986369802540826680727173790059680224186986139598444475445937931568518172137825882492605719909680741367834672209749580535662148572471750847395981453450364914086046954736584286798650127824111015704869901384009312676580111396327654614109967656202860318559257716741069564405360291948004299039727375031623996104660025648987214288729904460011813890532598802798934715203900804197345685424775942781768460815574501976610688191170766756539977016615830091737838094254094079581371247215128229049710897641440769612584580614274218256546842165092534515898053913483944678768021122625461021503868583937740369604059457081081704800382578340454016930882211588697726316615027256888201833123927703574392507645707436876401010006896260640919379121051995538253174211253128760807855470174238128046716393164522391319695163911764277614314774000685857426427900768644423853041895335493149436585598569081942053921894635160256772348927858694530519694660964708403003808196157126958375545282746813294583567312195357979415701710023942464185749627700757136607560975886046903494106759396126237805653274335454938767112728387121630622021020266823945069650949672411631977416308969091092171771748817623894441856558173708909425626014102767228497817648343654359001776235244573923334709122727471683933512208712312626928516633265237065149078572047314814936917200779478307035188986416069242363648797415768779288639934041465894963285550630967586783971299129302835666481873778730366420472604824665511616515957465688044601290526507977859522738891619957602264905317595361626893349128225154301790550163980659545213414579458698953828936802966144243611501916231715887820211111418342196791949246963404601668533383533787491051318601834786585156594849446032826757155993962780466331834985086027044346620411168011797227417815225088651696799163794785753328048680553825291406440607059020755713252339385861370377373475280713757606993022146598827237643820432785788670803282632022280632635002811252068457207756280218983035582855383461005427476752014495036522653065384302860614181152569302516818164908005717318196599474279153183371064283410300172355669165116989355631027450841850449388502217159710405162202228479578119922059887141359214778893409705589120729253963423888019155518913602589038814814650930841543163750546627281111883891572494556805524177516172628399617654680041064516936056454094257416930294472083486690244520214011994390579633071304960760251008670945145916390083420304377126543519780913219866243691061892634294737502797758473378361587319392180146917795014542341174468673346302060703917151275595904976496628763574548370196285127957123918125824764190335666141661025512873875316263395028080226008483174272420844654626116000312275075817611099429287845560668054733744388667243637487798124483806564088907516443885960739472934714679283624701462004214166134338370915243745444010102174732023064474383614521972641083522073968389139222236213616083763084515750927119329345162128867677395939818730943032767058024025606424447048091918677370910756284222261829046366256889883207250746663007688714948652963591862729437927692795700675816188906781517045210238870558384599097240246328931536728635909853848545124723239806643058780742147427215683203808651571985133382857189216450743277250316106905627139851885729094342246447995214115987690286222444716988309033082671453796605204681253195221920053071709529619765357447623859400122661923965237288986397576432128891352218968199918796092022734929753800541358226658191969378765446891103925606410362197717720462684711383884454787335935588813213084904326549579151790613912792518635118954011003718282483845803957788594674830208178211477984558525984427908733674250383533342471688447391916382255188825891407989485672824595509585981063742852621268714235474256381864450851335747981583700141723454450620759481278480664275586193695965390524480392061747501310693573989348932169721780230167772553453974697423887728937276514437509199140854256058461782600227582497175481051152794366650979135211937167497188508980163272409299383502597686996634071737992006579908827279503178563008421488854459515328674222726952774534115754821395255727971497246556700101786596826056658508756832880626097108161033256303488444382343031765166877099819819331503024910268238280731879312955921053360866847337083999093036702715720748383105239051178764353559669857927016672055409009316126783388007757352735864649676341479881188199535516449637569130836623080826830645095238596821884998157228919375514859982198259063994734167299670906709039608355026395137933168876784633856305209549540418552862297538652475374176492796428110939395300588777840519340457304266919617206495809067469775485761291872495178033124455604643692376827106388681095290535550743818991146891660445570630389169591377534475900955718608648646082613548868362989658184046959280622147534921938853651607907858944746547337241894362329801353963233638904488473055767077260487120782866853714099929955469260765441343153462214755924616449362856693411687750170730131326555397517949026736793942647024474833753361189910936965997461395211409562420991182175566960944284972920696135306311359368740809323496182295394061156121962647697276437974861551158416060419056483641087587652310969499088833174037866031992800796387707017970760145933390357620376889609182928873529855832972729003421099083756620790857896816887500894405861981153077811479843449616749471980916769848487100729571099135275829589571572065950798860185707452452658480334748200074945121459043395768175311015481269482184854388891423307050638510675979860418140239545867712336590090639386644695008425504175979872900549496128148955583235759351292148828335920974060396447990697261393949305528444583235962192499709112858263281580939896554428279755702103540156206287530607299279378469507460367666417263371315016820562923891070900757246371495831548565942657494419546061898961192502512031899805661160464510248809657578495750363600273223463929777250744528181674071716155693701218559171980900076828707055157783932571791100022402649084768402136342518136681330430284220937700331835440561092755968600410008590563995344937651077089369678426343193198329748255991206526520095752695270673749169504707965040601275046913257942738094722808577535600583753168380954207180331523871848965367653504100174448381005163576056781497205851162226036685982863336282099478281311643013606621515420167213036252062783169100946227545540138533920922190816670680925673713681151756967537757992147818415342403010037122189797149941261089383999505116924107181632381189163414351262446816084779768512307143199938981080969407424832452461797504609663935439245856453332015920021111398458470138095908193184660634469923083155926475545358758722415998545462231268298809291674607253223671076436391529101399242243923514940969932896432178599257200861803679348013981653697352633426626862552545712194004171057560873268019652796760520992926379547061206357680915496812134429575352634804545139181376321030202132752026059093334402708432623849563097716790588285800315606139855167214440167614820963958661701815039598558523749979760910023850225152097067092800266488840070762234671933831691061944531305065686423416018913330091844302319019493453630089377904196273549670841994869161949497017464584489174780243840454366135564904291329957457445601977832112458539261282548472777265398747409286867746201096548959137484243908964201656120612403304965338200035168681065564271804300478009686801580604359020005958738495048454412820855682558412563782136986559210226495034783623344506259702088114903326832674868734835120605746816467820753590468992298543677723784330226367235643886233526521909003417225790578729482316347444603375573171853706310070792650637357543104132415470456097187649912712095776320144400046774037717925518636072226903230989307083559030983314857208425816274509856782148662240366228301570286189931483985870813739454107521983479810489230144474085875534097675817034885785354479614069327615820362469218267116023657429587743079950474964871551096206788161784132695008168699677501913266643021066563852019657382323160174422975942702313893147173107858002490944065437879949676260888690747918916887376788143081009580902032194017755692698571261480187826407245428310851059175612072143423166758944589894273697815328575189829990422740009205549325668494426823391650031546624376796947671522187620250908733079606106458217759471475883586574779813296873802421923168049552769768827437076240805042538971049584362513292736091039083486300543184581542233527449378857406148915174436780608646590795232117698787517312589830698468112389462166000344944095243179978933624924752470198618012298860629966194015896431385449094773294362069432418563124349906517614863909751551488112878640776930226151485524688247858814454226858834808016739682644426639797487654994509346939223096004426905120822513398202530239100579021903710239806136556932006380387857213527959428949705128511355378472647827713353588557475025881370384104283412995391475043538746157096952419846991044791169235096579293328873449434396563452720419415670310092809220769445205684201056419656987751887853204841852691218317894314571217219674141033722912406692070088301993121557778502352972885513436030305506008613367067410402416839754430124462286628356383054824609610988332742557279834258258676461155992756779568440400811006173359654168036855864228932431028395240823308511970756231447159123628961624498988499792819266189325497028685949326859075670809624115383176568363261351883899912170248412544403533617598762262396578130671726705087584744018161631823161366880477542406345911850810931989837556778761584060782465021641298367013100090365035865683333787389004083745538357789433846305624660210388719600499130331302691380738980548360196883063503801182358430336481714037849957763831424380912163319735028975869091102004610826956442632439035034644871261044423607767036044568813350266311264264039612420121498412307433025177417339023118223783246514050036629586198362260195844895242049070881319573815495463491573559759350743062317249178456871413487495487239890228747978001878209696963547188565966111086503437446982506301764312452073073229332070594727775731516440052786025403730565796576021813931636550967737141909234147202774776674596312331914472260327683489209758840366247120504500794803635129916990513354597778863867533283685440619514048938008249500776003845719754323101094071932887301919513253275489811676784702997610788146736518781149566873924444493966147336387998529804438285753470919802404374348392586308434424070738624174152247160575287602641614288519479000768516726489698325145306839542275235101969922800510551014674764253862234908973267059565743686155706026839058449511743634112618603132425867469136924485598638707550832337843930220439328726669348792398181143125693597179389496298039739146947581331327580152440912631375751152560048123021418978271486626062506494532875892304704040755575295034146712822566300334040071814908160719797350438282676609791610153967167757228277217028261088994716912799742255442986030466037561788353539600644183176057157783666516105869528312313146404248797831571990165087675336800353572757650599428456249270386531675977217576300921079270773014254325519940840043837827811686306965647686862624599580133266686420675752428480015733753491944691527828581054253805531489473247314388744854175094261706013111511765465717507711932711380772116507089329663968546991751321113770691324907012201746377581030793124072715410595496636291057685973814544320740464400785357875520144587092131129913348975393908766325639582672690515072921995413605639449268136252750807771521729037689758482151225046265852564812204623981007990017735189292868436558468201991436511415112006589751575025949589062233858710132965792323808542230778147025123863411979727466067651564210380288494189830886132112603252579242188559753937127181128749341822076604143886206478197170935931803798481232085536907803544296119730314669634617227037743819044566163212682733897962069975986524413072448271651637844592791884926671327938146331714968500461966469115291898710825743839365041260250628692319711510410128907738882851752101145157216075979730819388643067395183979702645709767390058274635470534187807644449305203716032890428905614728142287206831108857702460505972729902941149288385354940620804451528259553840301575936014034894921699719270270671755603844047645480224627495158868927747732352630202118416367493189578146946213846689493764173864502912110634272292802155154029112360067431417189692225853814063959342373830195761270378438975938971059846741480830405886979257812102854506590886251173110774053984069041291412410964617520220200207149577076968159726759697663847923435011645024284451198902192496076743815922160029940725995015092973850864118450787786436283138739487653789422280653519505922220166065983819393399785628327000069956001612599738256035328780906441455242379116967032859307084450085425992091796780785377574475563902102041492124953715407069189590673088182537255602758054750872899683972999711083005004696593596932854706620173719250233147168179838608731960984946966833105328553918448880902277897416125087121469322224885697941014496580686068854050179528275438384397722726744186219352111629994816960755730755873523610404078926951927908434723555881043612605801074666476835459164149111731779974219524780440220081033569031104376669521091032909993745274036585548111393581082488835838439783123517388026564804025924166905700949561399372186839354256203804561190440562088826799065584670176496137423929591370141781723572110503055951976167849562171440718290212520579619914525375084658454387440463931815930473099979701719687869123393420074359770865528375114169665307111276155672029560355622016396248075772279889036618422660623792920988479814449551461347651637040345947599360005047644562939718212348496690046845251758619130514660231360778736110779959053736223255488161807539948707143174437484251719266904315944670890003908342190836158634808373278222868248047592364314999703896871722020138241248437105891467610729768341587772953779495334540710613902773349316280893125604841260141384339512323005081628560159740134076991179576236189036387910591751607701325324910641818719676965200164697526667954044702791005606311056728000237068906016918817865402746026444282466336854026627376469273238478886892266031378854688818745629108539071903631260955506944578037390840961342330856953693174705896564028404147971789291380031787108913835264297155610104074519226658357912256101963518366715780417618944578439151073138858684464717754813128181493801209547975812205164373610759107138992831533978151457028066101119476539792219590302349573356986185309168158823376842052749609694895508690739984326420304853336399050728205908074635680704450003117128108565809737748544432938263560869877409818826221005032988937034780571607288853044038018507313982357659443360013643347729212680531611697419475514933922667136272201099203649603723935045741802766806265664066231601377822113589826258755069864028293620780172000627025990591475073247013434985820200701065680142352132332063000399570238021968730917197084957816657090153895755732532659248307459275537735659863475426341210424637000099577385152318693345084141926815279230567196956615443715469445722102230836722258063808983326241414134698442181014128014324927769996599502019945600959640385621568786399824717219503985549097977281502647818806008053742063517679637771802559638816677794531004183377818642933615530934068254008253692280594932343326183849876931262308339992032120805048355102665755398415558889336470100289333925531333641879345323598670742377159348557419318133220891989730250690556543654930289157179550292551207802475524688799379821087413554333278530871173229521696354445102129996199669036802566092108271414760163099458024508848364136450884050351546903558012433328311831643990637548876479100027586699038254998524449166427125267261575171648960837654640053847428958788456632104389157729376301870674158660620408741994514320558111505671435872761059518054952230008844297639316062631370774345973144064754874451066087067370489412007543378441389838146823689113637693561551604651536316799326728277504425937826523910371658425617086493843339074028476781433566754785657967540210089632213623920618791988143624452102539255492343974047365230486596865959575784338561274638249939279356205235174818177597426228677528290389082673465695616920930419881495619209946026097094958199618212593084697548904434573839451696991395558221203177529275331836099790363111033011162213461246901934642264965992160069578367208523477902214047164971605589376075870043665224358741783698524087087430465881862923913133592089549645046006363763477189004249435525648370013638182186791329808788657651720016933746232209607822441288403226548618830583056479206924839326311460846331975092430846221205142416492129216871346850849202609323573657166779849646540444824743945779411897984062407617718410636524604272220413063421212427765569154289113444113578151207785732513957457454387026433989521991915447519693200658974085006345483461195717723818543727312450262304716502564471646238820987157069552946337318147091639000391320540010817624417745750533995132307232011093374167109066946851837852381622482832148710556206827361067732719777078622892299733996019989432696540568233319748762746987914220629035995288145824903264774496681587174047560219818093730537484026294719942435778805666306039267972973008648206892949494807511362330999919939867408685996071073514177373319534983510678151103450491541282308461626744462641379403112893980518241198852612023532998433990086446609780813725167923758049203307027666480502987134218493485668403310766019767561050857640834231089593849713928869569489176786952417953943867232372280410283478617360310462772228511714955452361712459282621934843866926543012265851696122763019089967671552729579669694491659956927708385313615536506909301369181104794753140431625183419797084423520849740445641747868464823051688319909132283620563140830815643579401396930211956950046919966693901004976606780939668794038224948278923578629156488900087425470424107958125218718418622731276481965305925715024793753096524764982017555056032350371975208965739786591003532681671741682558788282258093781069281423924262735649029828417924926110408984861674379480066891307137192883238983550604096646664435187286915216861902425664675301396890295253948215955570777124464552965174929221053732770813530847281839537327303550093578228158193495017781158036005894420179138604823679462401091710171465803387522814595365911874978070087983544974087628320391112530155813241864919955130860539417078160896672929921279455143027454481060172460249210747720207650624703336433976585985719132753888606526137141086882299818907266252633689705629404465420130932342086288866282580259499261344326854845210191235934868066598330057697292857812651969090682189955244486897629927324033963273643524849655691938014393259862825077054528229168834332428733978714979683427268115467770810518169848400829482281276986516593323609282914345590939247151322475205711292360736682867874708864345291426875236134700300197610247454740466725708838866132740648360793259363149654370547706258638379862791955547192930693724775757735569842057023848808146631345734943552608313239266250154998166695570296576006723289240441060043940555287307027570447675461659186380486785128837749553993683973304508187826782341512684669116216812855953660000175765126822268047717527598274906109010708559541239959559008028280907526094753512961636419758575988204451621871182163274539337592126172527262606970446679065302117680504247570223237061298295232143105884966058803359783438716821208354640824358378036673595421063445810246028574911701163034865845418688452176086095592875556353005274389846812821027166027167783142723929910404032769607504051753274448189327568708167258586198861854366050424142402308033372087251540455646788156039837618427223712495782237492910379306559236514426704700353841239363061350663102842149572004074313247029914076427744360346905090096694331634015879632427608703313567994657387776797077094023761807557988060343114389886806337726662255069727927284797763689678595824160380345639220878144608000663031176465885642605040879799230171671994834683875983606836241851315568352930005302855661026072043123789543403963097556908047877273718548084233721258309723626926529924936981348579116559388154331660105126653694404636342118286025805303802785217238571845572814449990181621455351207407459540223651964647980035965093182138074155542028238083998783171867954834136971973231912100991913112038436766741242959339621335965515635574103927608346315063960377048335017690909019614571050002188032396998227544645029568130949396019138727195716048119664172032817370332152835105162114329964295912032846335223008762200209549440157673525865378598240313793097778432128590469438590704656677410749886129832210821109426449471691603469304033578412475145715120693759221301272807835043040586402030380779441565366620957254306677754466150730588598341121473389237293426415192328154808222113227124288245408258198029761129101117354829699728628408521819083456501010299093664632714356591848576338748313670121318570107776467917067490198290708027917800134332726111820148330128778163024367295639725856371613326730024527153826270913803437848130618716212784984079317487544598678988940839861587834995160056006576273011614800107363368949828851760805852461879779682267959177732530952456670367046421992847089405596437706093999994435371733323517006563099881686706267075094502693428748908608034836704966531917158246543451550992391253891888409171260497045843784552059167668725504822257968180126721802046055101667227292825369898654587915407338717426309391689331885343846174573954302464695749280017451614825964420046917828049157457128923200015102718778466782006082012085643940643294556663369266653237071126364426307470132592700530577929997373838786519918027634529458637026948671372196409358001638223184812712579761428729567436068506326370815387846189875431545620158269232978351107593833233487242729635984571379067262194857153292874334579261530414082344106526891219863270835423276899341699439330414028493029412906431675354727995944303099555550659330095525768380371186289899572262727453393120246328775122760848729928947353337564778313471156567296788685353601410106117820215283217632577880019324753811082956417315683274710329560239845157147671345364055494455240134807724140118823107593568696170953379694651255505161436205511302783840135700564932377947490703211279586203661032504510644853240593643783809145419620073302770728175782173414183525357533849080996621284690480013347300095278414428936677947243731187032452706079995620898819521958709295900236699139216689975854328082287764000307203718166559374602063469355488724394490277462497877426673657901202354067870866408483113615664007542683269083436710333541097680866159603724444694349512421295332853666211693239528119461036928568198645108844496846419249226465085003898834156505090026649096683470431188131680000290647922498730262093895355611237753396077713363781867040988451349831077864498019051920397435190280939153142287043913638337792323101512517671321461728065686361048926380508679918795977904047638471330289133184833748151848509603093547637883472403149907915139910742868853016360200105623407083635125003279265039717160179198313791901645785890343198699680577364275359184430022920941043290906903180299492149180751267231611841709012688506913556249764631376612601014309496177556463560018028756401438408379182714274018958762962295539155400525486318504526458713352481982321662255348188332656783408451696805644696381441097994476655151846930870852535374681115196615545298249604258409494971058807356767940475757891059606851513621604323472251402263247025616387360721078039747545455452584399162214642333643884083907096017755297785641511872299665853038007023383406382310167783005418385613712065711970799337120692842278937598904255547254764478879273341173330573245234427368820672750400674462666199437605270254441929041529432397125524677525507836024597385267428752797563955303182939031891937261284381090025420184386839924932132365862116572764752102750710996789115092428741592657638797384776010331638760624496916900267278677196523418636286428650067777210411609162898365102334551275798046143735414412048969124235423929524485958745982340862159783555279759771642458465718556329091021345878462742945276173657293796542284838278949064639106813707144325781753416301250337026714727681092769047484597131681993119451592834177398846553350410281108076976558509046152133871545398477460122709999732792824440021205824191266892793520600811190203091416173234940966656571514375132819137900666005097919327669429652951122640273880557569103982007387169084036395812768636484544853684084715733966568531633577991249618441232292039940236981079319583924436719044654375859255996030177013141571130017123996594363515959989267595172624444199793543774257405955453893035501503070267119940464476171734326513768943781845922293134287198820685436418621495898527760407287922137863661143110457202854839261146273560828717931652238068740889483908476516183459922715739129483327575575082114425979922366487692666802653977768058770321921391523954093982768629600608073201550276261679704864705933596261291077513522677218876141100218496098590840516516369238267233668366800955667713405606243129973321746681198259769752075199597527348186432700388746200644753791603176631156318818739176158219235533115839845091758514765243577483407574155450686210814966812370082117239204240486249184270881703938292553757367073347589870447663345854281739804328133603902458589472380808104426354237208384872152060330523066983053954943653125240828957870506120530413471759687950140636140880927180819819164290883334439471382379858724980908220230206823930077292131067939989920619040628254558919354057566426427352070021359182352283680942617769038027043500826949587876523483086562758033123311368772836565999923813129706719543124393441626597220247000903622843922336091466643316042802126809155146502567079789101730012650360356283731702472045600784468212683802281686978942288015880261500909346260036132887772376452006316013983592771865937131785811975050335699442613698908326076086368116115473502249276842455101109039372370032416801696631649869262066051253706694819281298075767552989878075957428372463076555202670721992337309375385006150340741241425643723315687716065552723045532202167993519852871268813531497119322058205026607891258978702082981681322014333610587432872691323724111216010159451969618990614440338399630758426764439366250029731724323657247366663801072061723264456081927939738435709115940798120977963511402432776045608636357416563218609258157076242132762407473267941718445368095539799923719849693638717619473808523288686772819418325083897460134981231414786872645425481934897836397530377984138830492918411735854873249354759257176001447552238359721286782655491793399137775803437601280409624975136508211678934274844952961826177866374506405713095414741717343610650247430236344880743467968844901375453598499912489721792344894581831864636052706577961747767204764288574204185041840261075244848061645724844653274602492729191637558262024075227872429600007414775248405512988399845869386264295851631362011563236979421266039657015615123108417440100354105881231429722257000375391293144663105678021789256015441186735306681363798066193032663186705207070661214563636935520211909137533241454806523422167478184009983406686532698481569049662916485018521356047048538369989466446597722262071669441261118440661637681019129238375686993284345536617887513858018805368688074782987130616636469506672483414417341547400750050848081559261446839713860432576685068192827705550842180172018505482667898200752309752603637324916823126756206681162551559299105227028818393023865390615776608586712493212590822218518760059967661953213038974589229404868493237895835861670332494604919835297443896068311009826936288618981133125113850745830957972962787775025714881964917240664452762641497484186634820269115432961786749878504666775901224388708237961831438078370779924461591130552178402063745230816359939974919731197515658583517297848701866983582985377403550271016916076976686488563011715435752576849842416110691474957453219847622595423961834015028165606642680827033749153953628804583336126286302925333158891573176551198364599274123714137892370155915588579197541280508104604399201938824037169538785080590600764688831902700416655392908994732502117702183561505414571717454451525006186381186651536724743506085346016097660091962388890631481346387639442146744018856530151494181081575272349765053620244982201650230897785772820100742510659358347036630724162969480415796852235682564791471995835289286630370675473208916478018320660648479406519931991509119575526727879274239755625577976551959924639748445781009826963515347404739958884700427954195319352760321592233551644062031416818745508641553326670630468580407484942726283922377140632871103560370044219332911170246787916315128171407465828975662619278473020444761281880795121280492888479964039858560026233587032502244418472571056755732164366933907412164655381037149470317564872927251929665278084730414457734916697145079187729517543424331952850021185784467652301597273502907381075870423836140958409166838612351317883724633328910019889422971641930620282319062835774705688554929550310444913047824658765150965520904425585898161232283493357900803881280791809305509953629042418743217475179583890215345939338901916914313338250583009962184984883173680029787329240476804932254252577482547958322884993748390740332473944050596651954872551280286152145020062465032454894138476466053806516171040980601107214300879624468560558072175863805418597585644839318807398073054186166522874853808256262447278936896307418165089851042561241622989002887276956058998829748778948595626363694814276171621673950034269943497330863972552884909356549604989206229003129350495140116379765696413547208084291428530632168175962152707515898089442169092248053196462102533371202517172280772401472316337624649693431051585162657546889793501211803835921809341464801532928765639026378110979742338076968976599598749900147853132484182501310089658943061266100357919706502008407907160915898895013407403739877694753592140474118070341593059618702358302920669130326051697152768192462717873897114919908197817108431626417600803702321615508262968591838124882904943451072915433457103237878458516876015067866975054225142368406787495912644097459397674314992684640534585488788288147951634147350884401885296690744190567306533522563142136300481447414195958530907029632896694409758090264674167564607125089813545318299465529530784133827048003933980560007114938563281852182793568113706684446175479413035494031099429115878987848988897738904564616081832842187722607032123860919197681116438789855881618771070311987515119487566589180602739396607507404733774240180251122199305066452725583187478405167996031504937561099397651458814409827616143780789947536959446922327243569118020578617176435138814633123929321218348106864406969558434250427552185373410541961997528168459409294128547609299911666353429974006696482755300295160828612109531327266309323960934460889152650215741251026474973314665278731167777288063387284682429735829734267962327637112655895605295409513830724937066690030712693077324139823569219915933818808758179365259640878819226784045101907346268656193943874265290464269581324309873023313611880087848895327575113027673507264246046171965508676628658801885375213618599638552048786188202774415800921102978071564520251465923453809790222071175688026264802339199612725456678189899430691455485545225409138089116390020562116375878387311697812595023462572841815551098747873470416654000718276059194591869449246173066636442425751036012928234672164121703167142337305990562435892663542674084205125930480094834539436119766352768948535544649326831521900992198349164952260363353644170880805115346347615166723975828091004344111599095286619222425829001948787155114043048795266895443824300506164274696998549813069426968168633300256524040893325283240757305479419492543647053556814246678834888650670708346094839736217881025505055731144898666320728703075051737648905411923413456098060658946489099416166398554666443363958712658345754645699496441211623177536894484391789515771213801312148283441031046502433242164550997251554923190705453536191738804254899790872649648726374521705504941002109455439395114854584186063149142965293971584304849803701115012130248500691549626774843595748698028895725251517669030198935154441943170911367505530931536227624774076180158764060978360525221849739939437175127374246763735185647847582992882764925917456026522389792709095269568577014802479211557274120520590991867957344735622632176031753314077425686989725512238777410505219734427297837068160000863416010357425641607265652081474913439118109392298288293681694787415808693954742178256663430254091326445236890015179915420749568079562917706742858976465589543002224094270187984043076901633452465171118479346198752969254291123699123659213334494953327981017045601496844965153507685702993789571774704720352798528944205578087981575886817394428249854756028425561508356437204483396354769266813974197517860758666994882678363813376938428857548057658170558704280530711254801251600874947740431162965148695245434760561364108665985180330254072089293315125746693999066645893980134141382613359652305378818122330453152696737817275398294783855946006351672271770915800937323364452957089256634956144298288069078365063804011140900387681528056706471472534305025666182868485668357809167146776310318374829157506472935749976038973463088569211476546537395875084426160319269329576552553874276121828800445693626695505384448920883902839526790777342026201262029363563734092518963027658527216002326717094978955608759977544390026422726666128371853327107005440674617208056696267303372998804438271931928624455196630131777340674636428775363157221749401323381713400478044899622601467476111770079879432087584407075848411664083768786796478805848077897256393541785905348094429683073196254755162186886254792412541419161226530121046180348926558772751917929459841232081924058581625968298867758839919187896882856520388326109244452913418759324957936930541906994550785241010918121483487809703590035985799992726393559107402659108535784395760065074698323462374399101297011664634008506582519629053110803817096603109997420827738491074033316886009452740782779092611522871239536202664075672280231448246762730642370905038168621348000910113695057723891024096325324116360746147073767348120400870038096199745669352025213833292670012978019631001947979133043572854418215496324350660483768321766905796273702444974822919323584595258973371875281092657847092187982426202343886109087582619345986014473913677424109392939700145899855101899147187419190964928667276646579301405658823808933749925661168346416157085397754745908267450899473967195202280438164312529130973444795178341522240045882681766993741888651619217851605267524631997638040449014409255214202235514066042436190761996027601419692024667221508219654693440457366560978087784520606244273619517645106210874726059975505164848783037341115599570912658428936138841021690022528504438657266978223576616239401164705438356864312648515497864603071017801144866205505967224720689591787130528464099012462947578742250911494558928477445501209913906950282056750969074988731097804229668595496519854396967007623548635332814865554151250124769290669815457716455943904697255725889550019565627644455469405951489921800338553062856913567902088954751100998633455077520586128124103552872124160688853564407428344437666045446651686327270789753278177906607038995546218463611404493503250285186739976158412215911752408278786791180208362858196911595167731908208942178616574745709958679025856765955635814912085062683330400770708716499710412971981634480613545353525737426728513600652363200061935605384379951851636762353864366945188711337900795026830191896162986852676755207513108068518574104549731774417726860258481029659580223500833618824801865459910036495057428108449105086084056831245382829450216135089491860340442044622310625889420568254881439230541542749786283292831787140007458048230137365112336483657781444684185491508015895714237501069490461639958900695512524527853667427971041236662314180781447264113396956697769093930080439464269534383259611675502551180060588959426026234927184328855069428501808099878337897249754458926881675670716614676735445172960091513101933544089382156806184869256513821310302704038028971856296341752514828989771931381776602267770308121080476045914233089697410454427229186771424712343064495423369147852910343919361411802022847898469015730441205911422240576696026476652642643724177847310650713938251639414695953207461360158744600890519663612541653213439838542306705643697547015001973496146076899037300512418309385539582177092360585134670993962263331370519876284763790309676336731008647399332418191931749888503330488845567329923473208756652305730513758964032229732282936755930252759771709680257575999121485881079129632291386056894785319057422293281169835840526153715122870938332563695260954409588287565519242481830024802974558241813955199285071215135160556133939986587809564290308680676012716610362036401535408652739307374161712769445910686405179423720319371920108638601902011814912067273077000940805762214486519610499023179728128216244986975402291195289938243832558294101894673048604552226662618887329506494616095369706317635529931061036520450948477581530810640182521274683031726583436570774732674560875071922338542836254461529789000030316501143844300839189040940066810247434680771443321891174022631752024997535534414287662710539479057190237359717051400819806056453462145197813137991769977958315384553343396719810188428038147139504235699269032291391461964982870787633863247027686264571045635101824065546477583231762245924262686663880955290017826624496412534871261606905842544746009803789499618195439845782792833277007231677638794166056006359981960723985620500181886850460774722273708798496466548372231259183151931099439402768994635616596936999144169966370307269845054780159627946132557563456634467170327868859271334940980392350682504062662635818571921631302933550515950946318576329286842816632375043132301598112288060995711109129103347159022722058611868864846119067765903631806620183616144623029476198191599197003549944045613319822672977781690037824797763672967765733477970925017640158985970969808710818208849934651959190309793813610570624677719888421152879442910571860245663706719899049039699298949690294468302523908602887892144396293025934536152001264306507222633226131226159364713872766605391849368040886925566019310940054950523885053782486092745789819224260012938649391838189331024650301116708898611028946150019661441820353107246870528411428679313514112357078905058450233407274343931094444603658943956965739604354540690531922687529604468571127844918693614851826231384836640093809966868797587448698760209054254784146970727991066092525124326189363025409617344834711518148329957067464833408142085907025650020488243486293865975953413654323724407219466471003698167272628683562820323096378180632462091937511440511422812974155020204087773824159133849276151826325046532514471587038983197436981694196660387757583324728611031025260596911643311059341439237346663539818608317716606092426876492620578866801588740203979336485890502342203616015475016771427540444286319999377691141108296471894232548424742368897697339446348102944082002091589720622699814889302925146218133393418684258465172172478388678444410089316898984437597265041284336044271493338762555495286132746648685976838395338228838450215700280160035724590846093278667536747737865104721354002288981470910168784693184757988319790342499514139709142136319971396433851842727978496638769856016261780082149021751140162682053374042606384595560991003895610144489910593676572815820388632092065400289001360010879453989468397374353277128409882827797065080879207234529506530973452872342101863979472583606214340117680146459791655674890754970409708961218791438150153585317354023382448211567791502246166226975327104683989242201592710870803989152679199337196459755070168278087607183722307243368959442641107587239321707637853959578322548502970742020445089160664266994123321386896931657901297995800090526387059285975323512477140951506460180550831436880385774468873731926677131393619250954742290677658799625843125231327915052197121525392405064312675546709612793115316656030231957059977685689500314385764837959665794866926638201041845379893657386261618966302806475565445723961214933285003004541001785782296262481424838654978287856848967759684509703866126161433650275411533305198681901794937703371727015857811924976467764548481417424364599370900084267873891252445516816589514680039924520100859601025357424270478472242453238075980097930747071407054858745788572461556329846933216161126698900568892799067928513521161690510860391068521724927627299577691823417018489483501705945372115753088938393345086356294018397103127085974918153991506932018608709401527643491440691290426361645267977297571319181768422807834378409040396969714181241790760287611851338764028214793338513769431939571599439121571260088483513102284070718109977362458536982794489388970161789186721724295608199087378888880613905789439384661070031967227792358312668866971428864786394908298132152919556247568120497494550491141874488783425578842732832150546669683395027729060469102404723542149564124440250791027859907144459961078137181883044875772127872307191687023041397329636016832434570772297644179546602657937178951805044861127413399873290996515709624220561789071712639407892924446479507311464888692412087724359907141802562081916784398946920400047409350974377483959106481191773092493553933415419681474533823060385159386796428866776144314409759313952628783033748949966368941157994653262154318400417248763012226301677252311656750843063402320920135419920018212672803739543614256584847576070869564003950637632413869936918321263617092987570456527959605237985339693153038608601659761075754490841325267951938511785022964224427603171376639477805917277712264747903782610280544217460830188450518353544023295930440608825376395745554840278961857781338843974208171484894436205701900631981968794941699643660284275008819761155346096840063650594935443354406491844046268367287177306777428615874110950574591685496785296286718622320344623304912411781388523523476048394565715558802138292623744904052565055674086789902827300543641013930415977828177837702447964887240566399713877806501654001934387307311367342650329277231903739130348190247851996577432762125480455678691126471663407535276488097099687584686439674642280884634909007794380003865503033334102548880930219040111987452142232985465601079953671376563278399221418753582529043925827590094614077661216529672198903114231555213213003134218255833952137860533695160778741740545080227126436691216520940877991083870954866170260228052407191706014272992407458233721587575946511147766394949045644131951304700749282664620625419967065744770091850055410545502140931450607415008039060555674758332459726156074245455122873121882911323387181720219462717369782331042837010846320434389733663645897111880553397526728524065199405343030535917898751458968393463411846360760566245022286199588071364778633461551379810081210213140261255000939348557547645788813039606256285494907500859715296408958118814482174941546930695556294475746173590494186927033815481662496095635370492526474427113183262303758646972047736991229493913703311013256341954236586776385733527324728317074139889583259588788548738865608467327605906838415306606467632579358456223644242515463879176903229422562644332326129785949729806326001351455324831303468969107274049308588631757671422752450184592954437657443346635766073009192182834612814700109374133130997730554285569358733347855743788414633459147987855817734782367000972189730524318752649749904350290008569941119870418213097806181464968287888851046718125163099060749162119257034006474570613432872911537894264760107876569118255405014356894031507766952172290118113364156379709490483234246639582347472297057642961143606182799303967942295330169428458156148520324112363892315732195918076163432636792427707340146251798261188030988769946324774658059549586028254721418257388194476483491313275959970242634259336551232112588915770331783777757353884060979722430316907912957890872479574696520209650784870986205468835300522923523124827937812482904629624691263974615618667673009668877488152977183428809834199981565876438304673699572285793534349228332854013283544758246603889711460766608633575626791025808927465561884076233820676026054536626255244381040765650517500821268604604031919577942887431134640786380395778987924053569174617730876662343789036004419610380523903785121739443897618775864289779592078589579502680372785538502832217356022341788497321623756920046620840936847233514723920130469815154255950654002346863042470781691174430169272271197398743499144407787222612099275756572521707937868319987401138729447343523657063751051165399513685336912764884585574991206173019427993999745895123655129640539472323996590126405834705564496356213140685417136027204596074914644078555256975662364403706783276782786058095981313991036975172254830671926475711668012303430541543608174395473383490507824970797357108520593465095025099720231002322935741578443022149191342004825993212925614494511550097387237442879552694552630632047607829453908879835337655980458004569414908913396485630457513466988444424804419958194751398389764226361020125165331307875581619601633945748250261062934686793866806517715923439172415411707623034423667462049399376824239461785839971771089510022293361108736903516441005440660933356033206166467439788358619584595655832391742516073518744119631380852422083060710040274984049347985516055828980453242881689659932164415283868459876415640421997578536795390326595732067755825175956027711262728753464917958310775400257802650880759781974944779211734589798317230297684361098639636528511127778857746335051393641800026916006881940345893092663098129502124465027508042815458148733263539891447098465095776314769538477168037619042433900692391609466535070410769238904168776858057764063836493299698837681453013031569883410786057577270782369653788063934712448663799418860173842791356726637165596160604737760030650017365989440014026343673334383627744592234160539567201815127062224685992507660362821911838154370077236962385805571684113734055227638721549725073440671116930201322550455338267299439508493534772159557792299384197752092099675867830974088740784273479128221332167255826413150497428874966513311557820142122108952175158616783393056144110457920802609816771010051261474710643214096934380028588047640984218085923376496058895871925505452077384662356063497622863692826114030641278322681086431687939709695080062621054119851875836216649315451496285027275243444013943669939584912009026073057263444127749109126557835715265050177883889627240187829326363804191670277505308189424932923068534781869651086655551543791263229305998721120738703404689951084812059584747653076794722674772144447710791051291113452739160607694589313365521465368914333554231688534017075872130468513187549437272080423039910927720378303288701127873008441922181862850983060477682436640758974413737643564308995059487777331120735383940183302233868936172816256180039485946032145059095010427654782361576193314862140020713135976867725735778963782207086680284835223201451594172096543138483790543374947338454663468096979386177977844068985968330501091833314112831707430896683975180223354729500498067519829694812184436317556269209321837419817751750882400639982339937725605546625484714552235632388082799798669084729617693673458762986487326163173421034619283817815310760085667801695425112914247691593884283107882612056897395569995572587516597348892474940902108617695960196714393866187335385084919921682488507938615118391806384930496213330224684649808993091209391388912323238138959062743140378937710523068152710427849821297119989993854660678008085388048969077313999732121089870105074609347845523661661862702406325195585799371445776959111706719631717192126370995628555483939516839530331977840882235485967813194840434626739438862815737728231611190781526587771021704366860701127861292493804779946531788998095584370936492965497680478669714414110505640869767703580190509872574071498741747755359108107484986680977353155729662942166841498566316189317220322576889422474401367579481568523642678135536746415710727147256711026069186397408050820850938610970402254193997491855230731252972684814026748467245392306063015929863874165232760165041598217475808796695764953782491135174557266791672820530546950307616902355177434082824980276463961806917324925101170260458812400054399806333725447233912865180708434916645108328653257661342132699104763430797167439828018360768905363505339160127560009799882254213966410184581489652534099694037496089568917416660515343094077249483248379116152137835115101177969010855509599500540873333964004909670950621073961094177437584207872938698054742196095768209304193794511688573670957128841182699774887717214381056825688719398838828430921563298261399303533684245920629597260581442497434590329649052061512828171850757645333575518807637516254012160333362275115413601079334256228815451762488190800011490403676338670823074605256039173327199049398605552487720991357581588006644605775129350352643648560171519234684934667707490933675145062487866966415578338013705179280755186942413130577192736390664727338204471815342054581308777241996817483643755667200541104759371474673844835678585744839074852916395285078157697730472299640856757381628329867465121854161808674027631312722832268831895657881917976920439709849330788033939372518881961991267791373580188991764455051430075701154889914697966147202444538869283784992132941490956444267229663114455125541766555506065749861955804154604791850494426907674770687824279082089624046720491431759575476486870668273039396443927730389923811706989140592949356794562578994411953675830483639426869001890288380342346785238764251030400692030936150504508449525776824371043707679718737366169196504996412100348005694833745956184209496370206973291309720369372904623953983532602830727710960171390878798339024390197544152691987581190856505811186894830801367505030648017960228272947390029389406560577101306248411380231906567431879301300854180171208640206130826446111091805902839265733947511777438017959850852452218076346401146707105395942467775855133402466352262147055629535013168598482284063724736402582042945190842448597924391910107587399545809271500610576481970462920395593045810735343728674723467135989724355737733490830308470804185889284468117569095405546476330958343193836271642895751758026124336543470211807949830114098648042631911387334651002638749248553002608302927760454620462236198343499488327239731678634037170321099429888629464327916574236016415363165290799283417610230571995885066963202575174558872198418266037220732572053809848006632398880292246095046074111082406552326772886904428627238683762436730042275494962827080713501605794314608946170782370382641484521984515747487523062493919763308093747413545793690075698240424296199854308198233127580991992563249178939199933114622558114104616763227685695419696517465599319165366488091265857953238894108204726304339811139531503066728587584423764394500785431388015739734534972778110126530515090229798334256817313956689820706606661332197015860509592396440840469284296509613094995387524883589359354509515605156445428366534020322099861455681124568185817727114539087900651262095619231404357346937846432636307581553154186657637968609484818923263119439673009603281434255494835987176972281053229740960979382392741325915488236404679439747066865992023584778318828584124859708178878634222178447276320486011417438694730153121675678955320249452559833144680604395181500257727681922035787589762903135522168128972231407185519373364513380889072190076571163973866659057361642004510505177202865105125549434240590956897648086338343151046716352580603800392109855895863607873951116240345234311065844839019375183586283784549803949624050807280691769645727751314139467269641829034411522579850493060673406290589268064345166848174484078789684196691099274815003996900659380352057312944314647853997242483961959035692760014462489899158642541652328961501457852356082710266760795150380170282490498106934625932330094835422380873589123589004270586094960267619950217228979136136703208775142054504137656520202451309860267482850375475499722281053084297067402789012089184278175792933283209419661929566043682249843909275735594131512057732378646810556266130198064973303739934465220633902718955470333930192159624331624780243459664011069304866906716393943608497082690491296507908219472971302225665885012015843302629576179645613596426563416183975944616716770463312584479589510360803504476328015366984649212313501325384873359241992109806674070034731013660199252934350373040585283664979197501907088983721358019488678095649735383526319672503379037271616455909406157383396207037566373287977555589969247842068215485433319037028882631714116424663189291649834115188624411222037816680695562267693291342199376746420057798758013256435667597500279447017850952004597559755046283568557653215546783164207974028685196814652120519780939863528187341630443292793789049661560882998652120971193379041561797739497364515716407473731081899622864675454144733514255659419957990494428229720855152254201928551548483759864244596171676908561818253844245054759885091663106502779899527810437435248928424512059742418873953459941390349993518113827516642086271857106536256426750664744832487918175712712412100631864030872642088530326364361676642023916959335627290250894993068593711307283635554464077819262059151430366018038250938022265755314799238430492361434211712256040270728994571364263218570134404194637826981211761848617266837713307358152032427077790742162654454755403370115756958026532906801716171109560897084004238233964312160800312717674527988070709629183693845794359637683579474057995613371898603898481198370984345269417043596320260135043024919981949655731598851556090328227846687449364712182109366998034776882215744998569625886532959363944715685339280224876419558873453569824748287267014972071051204957355028829763160878952330461778795339453463806491736396080233429763366577122309212440317846062312797403087315902245566081100775478473982660941180551466074831536806432125504105803488698741652552052114632615007285871359661904095069487999729018400911150154219860171523149201171888278293434269129799570049398013382840618780092694912634901081282924253815223944238305579111438655655701595556833981226239136466442354740210530095523766088983977316218890529037668421520457283941989006058232009277833373230756859811327213588600783795868487046649006877662319379200063996840159791512656381084465483449737074016471501998644235526799211825573881121284465998443677775132536375245675060497760074837767260779476430651645783077874594799292257738966583721121346466456231841182503447099654660332297636538955183524368716591472450732362025129056723227884173371985239100766004968968069557613801098979468667881770612601319992071404450102079213520920994676965131021744930447279896940200268675394666376900656878022244517477014215897140101108111802632567284748926889651649596210377617044137055133268311309039504555229327279622120064575762880589483661367634707924714121395741723218122683352131465897522932152062664620926555228102445155031685586515660174868430301094946719889698370451688678956317168665129307925807311314436455297324671772380634913421403008145342754090622751372966632714766087542948929711865476663535757316404123189586946775064666273808810885190969612653021681220478867372543229098228725731805947592686118183096153946049940991891318413843887768726417792502241830688976441676552367102227645953564322577403901172507797376382178271625695848605757862442775320625033263586112586911344759745977235613536081098082159067725784662365942093629615425214943750741817531965035445785094349999078298112214412175128506611349019016702065321943318101856638238693048230076840557562862788043507069018660388399745674887251057560788313511671575271432957685698895122159992547969432614554589579845399572339450860643232686106954852082406743646249897361488817304255914830932487982952728387573423548596933094073039867048465591108442218315691872232487835490022009934615652334455905286940192686081669170195999490358597972643648419183784748077065750457992479898884872836174763856529942707757945655192360869352501451746880002913166495055261094422504845235462426896445335541065162281048484189598988855667969325735071226214615072751473349556432783346852919157936895819335638664752735664658484913122756980209406742843493849076582542697544804585098662222677944529491867367966714265016726852066125269440594607310116633875000062410259494366217938865753187145683361454007201810011628326142710887792789124776800101358387976903033553859165406165565327959556610506781630444310166831423851797662712837906023809922744361517817416759735655875767126541906174417550690960972495365147867795287432974975370784783447011989318703471993767347629322313567255940003345751095887157448130075837643500820172336259543684597309478245869722861630476402065084066718013584733757680499716343208618595856532482632734501455954929705425026860457054259290485981461333809099653203047692632562349189406384523469843258172689661901351829607819534743390617334447543864948632489010583928562283360860694185757624406207848921895585364974191717846717055211787788034024821975328273199174907758727038707137708725200058962013583173396440502779060546528341618657816204341644007376499702627706961781847135420337979449786468866319603414011468126362707973623939526146208031447563895201158119176109715723419885865887572580824777888496649416175848332860369144824594752255658296102207407550122009440355514937871990273212880239227080775496803315316266376426520610962903662577080306310200122643696542620284510708743051375691100353784588452201507950693699949955009984197767868799998811377891924976220450593537226931400703933377546237020967101812308082503597463100890308755961163297424242749799667805950412548772280256576982356399188004786390919859095051686125188268101526430597096019861885436270959849083800347826305264238470066085709309795735975609881168244898339903553978249477982888070230152953349827326451518013180516235847170566334548375418311134818410500310745961977129900929348748588336971915593425675902785687635097887696529494589381687634335567703318607016802562608655469244526610427169547040943949794318670725795898719753154627618205916508194250776304649896940596512912592857424298229366710033650960301646406293057873195964931395909849974081535353351648155754603522204022390547998790716813745950801305745175863801419918583464019923462480126289150293795362940537169792644412741459485402152353539878324423410037960131840763901258585941293235500109582187959805217479978117874341309950715905270658170491308251095075818286237376049984678861431264004551885733911850204387402159033448848075925798536273245722447706409205517222623805793703494879682155734457710862108599835364333626723717812858648309368429117909836170366971296404677719421355906397354493040002267512384727193392151313471927901788536750899134068611494924682274897263664819850797130017327675788023475320768702006356881004075393881846339768895201836341345579778363150319464904304726572422862271024853629685749152266777768506866923334452185914897005408213543078328602538136521688494397014400397231724448645196901155929824066455382541823264010720969051460922296308686756330633399732526527404151612004923976559630501751575779847839468498851979900843687170094442857332826529477075564871994757907706458256222395348894543967810704374744289821954378045048613732644602048781540713335622442961799245488844706217480215958250694004411730653061442366095907190010881276928048701668271347862260455040102895578581374591238241948948526283944184404982355935193048878258785914924169703925697567382158800588857772303755107447460958329304842533026888708394490840303744429644997642303431937425349076510134019414850452635940229907899022639693542735645631542306077670405318619329414169034903992182088475409167946625962218196049824923226144731712333554362447238523942516682525576333318842426951914952453824268641237990248922751537635081762930600976169510464653214181987410547252681687543194429151701346504519149016202448687216682768296297712536411413187839968107281507775906912438081324450060233858388912530226469602563291050805209742315068063314694790939343389048632579817774527398142256541256534028154154580690145255028441979132723622279419034513852848119746988382522739059666972353697971337642108456517041494452168611105116813990823447446797952783547827837641726196429795676394741622582507391271039059855380973892462133047759841535420222432097699750910471343385949500166794429240244503950200760952294178538178834671053298047822067383692359704150265548614035938504570096086462302828550324307663838425155165580391532626132175550947284512409291477719717326602163355881458520811668456851248621724586090605854723313387488065242365026601387747939514930820941727477733845602362259381791623388475263370904674022805957115336516223679841824031588608047601818177452692090179076989270184471777643904021327009346955853270811072199343734039227245757888700929954813370491376591421436856104369540891525825580445246880965468434444237000237307558695861866312227273906096036093512940279853438820854391703909480836494569769308973044932350473856456524994695731444502266326400446112203076980472419056143538404681983078492842444337433103333481249685456873415103244236935970611905443343869793419423186471505876666833652524320948603105974899323202338182429475309157574862994069304485667195056668011709045959264111862798563723104764911463053929934802269819714535267821870606878331025073754463994232314157099236537019840117601291238607418768015402924955185639689468837998489405325733132961734436032965225475286344523974732003155253011953982424695507867941976393425622917112875093636298600805103037605577745257349453806339213639148534315426987489817327112966512180237365877965617087452119175011796981822891383048196001118514583159855455887536860949290353765547043928116953507009363807044689981500984827830015813428537025430451286706133748008955707136919082701229503427235980066558477093139439411907737837226718683380061803422454032591474459370539601697301110659528397937502075487415572367966513774192174392177883399962915716474435447039472773680309754297712455783507562579894587714351811846442609764226980807870619657549119858480698699790935226691863672535165120121861513341132079293682030439140165215663417091495898490001727057257190592693236174866279122710484417427394653982044071378239016840101296730003711721142924961539311525117176311292198435134739386608523081423648032829596421121332390554687770325494718868915453426933528198161506257303120512049512153256762020588935969393870884782102046686765873075542047458352891719252763461939476327257399563026450846334598912119553299003540440412993434953748586579445356526025993296858926085603552211476171744072713226605616444411374086704231176166924867911291314696025025457505756782078232028192308315573574498371627649440746826039422785171291363834003248051685692647483496621441037345003102285213190952683403650785608014610185840286723802852525094058315117347720489844511473013546218410906851588665247120923218704314560593457999857121221857044313370961276874376944019793417516230493686317883668592903818936376499813070473908162409298705719171347067674328110380511844843886626063931775157192436331565828278652237915781011197970601721159726848726767695749749456438353644984407684572059098718115938444772478097241900629466550331108650468515404535542856098072137742068597317037360709343772284591893435041317369879524556434960130636841617916217035749306648798490522418319013107348637131994191655182763755890706335437387385570192170380037561272587924253201527576026914705768456891058207389316523573263503471998618712609867499086278523704047375102764762456428457221190153984234866624584511857257903149732091951329239460689161904272796102414065444280667076797914038410525642505108810871944438182595945874105602454116981695406094269978072334582213796157076139123300970424633518727883173272792180742626701360761656669863645526760288614155703559791210793196399616630786556629733469285665626730456884820635083598521734010169085886473355321640204935619007541198579540367933135345271512802468607910030157153340097911666774187967665420782664484394201218709112796098360378224638089533723322463725301101361498253622645983699176327495517196789234861391200313092422477598882103381350448092759443639575334227053888276433776135725598805505112329092069877066547046155043058273719687639696642175476432891445931956319718282667024837989735239755384076798555307845756724887236625241257239500702429469619611726419153556035204454861612286234529695942139202391915264901843868952529605292031345723449634116887808086670267838573516437883199650204751591732986925896350144956374019453877329248421650097698571658266719185547335520779511142121124913022663362118025347113733223636980707719938404418512408212113262775481326704078738288502272925608417376717878751294750437554877460869080130695996865538503667273311100228412009053784295582288852769479760602709545157791998397214906163024197643994679974272207332398638369872776187806516058436308911248119986627441139124768433597263680915331758947298789822715489551346749904154943675370518362027314887704151130975436415268219095149720340652721908099957814315465377075236290447505022694580014758212497687058865140618382138161780188835755557402762009814670764563947959400666513850344505487857331674920473104583449269833798832949432021982163197263354673589121785049794907129507201396708802669223849396922813283641404878059874915882020767029203721804630362783940855311096716925099971681257539580434030534825019728723453535941315703634132073048499611279112245752415792231699436825406260989657116187106474926924537453368314810049023062792724665384997717546047912412069800726570426145915296606970387097244030639957927327484710282241547953711292886656655829075729720503470433592787408367190633175267565692820918446756888911089415334687235991015717210817967762565718707756308688439443863832009544949633349553123467849869072404315744291079844006811517970526492250557013987739717264153010785978202563363567881585376679925694710120579507697819391143047974797032719122637271003246792560531416797727483688317713755105281502544143235397204479900127888141945514057794115703467277769397909537003440450546361744269081588997220577114848696855480154053903571677154300542397237436143904745059504298238349224873768150886383707868095398240496745711803896404440815794535658686589324375074605262463001862784118901869692749550931892278203531252194652422261091889003822339222237785368451500689547475983481306400621060428884188279944965940357667565937896614861167350047703587030302112444361359742314568072904614950436966571925936822977998446130296345359602365645769747955912945766245129297925000143255014138812246632166676167856129480507320489714488997802976088197537062761339020387919635182168992709545060920742124046981485106390157787512323861785109554196972372059120963998289181329663219326055341394344120707016127214566044908408964742670553323426607670712802094058582767023708046302049241117669603178564065599401184343677709887699755247931651525867304445174914350564749035679158741955148039475290445005645542924332586680597363274822022321181480106449955410383341302664034758137091018019941234332544803937980759231288456659912049812107655404300206062857345149876934516225947355594030301233568601881560366434342492570893320294184026352331758771658679255369535416821160879397926443589510948751846016688215308567129365653835236775443862908383070845055084516034267315195585392125970327253974731315220107725562766707239611694767137150079657823674636712070044278218988740068869481062436125527309993462703194951008945403882488396701310864393988378379108479960915332467223898907657050621735122031408250413785611774770698946734592871653837418497430904821713476236463519711713348557563086304712861765058222820610685474387940408160651154874016628286151691444051711329052001646486174616051342119395548751823044900473831903966465003820039991830577148898984406073495449990943894477110170119202415308575258198154296820185353855059773291945803803128326564503666764961019265339989280126349434857975823483949048324447577149523381912430942446673091975131463310290594972349960262956295253388432488294966643872299834543403543443543619269778430145322753090619284139504523958525453764745458288074036499978136855858312229673665299566033629964501420325563165378173498259655653887493079356145634223923718571660248282477331070138758629670281718783426106858215426287760697786524954977783551410440772849330187383165743022808473088063519119606210248405883085021183365260713020927873824839992881855436127610601347450150663516817938645300931039114723276923588369555780595197115929338909186327975623230001372725671975827529957322861318082990766299668200215522254618587796470523339359789817350552136033859936318736958599097637035732064002107277159587028539593076370365360779040024954417670814126217415661433609740304735755475486845787044092761748415086825073813074991601376867478628215459801875359618106037381332948272752410229826827587360539145880605814369831686225953939416962145031121373361766370532818449802309107229387416351351365019359974301057598762939426160130598618035382243874555514421926662301063252755004078917399024684157526492235745808954069048891457922661000063258551064728133873649650306439759043303621986791512670943133328288121150150493718446244190406510770759162627968860064497487890415569133935829500138665795356066318418368592503607488866097843713858060148491021007824053899318581956184733755207316839373590759319562054761019111984717579923566780547461737458783526506438074702775715446653066093279891298752417423636458370870410008646002225787976878239595646431025511961558288446361022806978412136096567913578949158947866610850032561789625997089001394375543448374961269913367269264272464141272948958198727464826624893826255184578469664840588616415306484341053357269381187569700097361230634485622528024014295238972768936360240710256885214530428480790880281693750265358126204356679841475076523153762652058707100776924428483102969191348522341203581685200033180846574030274538359092244170317753238993637447402840893503480110847917652723635090763904934547792717245681473830596222547828400868938692970949142060902406213196208946421685021771419228918954635801482281405437296973317901516719083905637385699438085199276954474158064513154939205247513626370342266551883506393915839470875306985434949714256486744593772969700092347586061324503326581542142535502292166927583034539018245253355598497132149650913841973332293942112322732398157958574416941653765905392890409209489819350025053072551940609486474245318349257780649155037091743758354854600251882689095037086805476482025481607730781892317381934263215011969271100346475505840447014573765588541574503708789145487515180108125789824545858965060480341992013516274661462185330933345517837574445066198640696146306620331298512124900536699519502986331212585777120614559745353709406555930956318207883156727144029229798378852870704707205179017522027310866937953910520291229486328485737116971632206022718604118036116691267537573492979012168404485325881012827972053856735413215767497073932721311899728172965938101143543786035599610224761194145387926388835889998579731928493449298180737070078534995023007468910016405414122223763208489090310677039138766609396579501529886217031597334540378912582594755007380868900602881774147295895701742279589799401464590721038927874412102839855450622244617886354486621012050527130326395261308166158066476389858261479811794133712541669653287983712941442720855746926459604187687088011726021191649454954649743220050364134055053905049548405890963071223713299263344027139527852030730607831685731025481720158546725938520435463500228832530729129156163107409540700543921537241082357123823879939778021598721820158380419067365191037329399823405818100786086564139764520609009578862646083141844714275889435367347800269689286921555146753984171071681482485107236603068430695501219773221864318180116104288738601900010033630553197813617301767637391398102696477571943926161015485384638967543933263338126406132538279989143841260629194900913569137387262309192330707699526050134599808792673429174615488657249946662467662707246509494707986804171082115549327195124079755587903495892690371508966409162251123771398136887974209505740960598231617312532291996197493979504490186964894292156229152186439483899553236533228397615603269173387091215025404582820060707752747212780899727166842749227215095548681746607855921992817957178319865940882780416738579610100649952890351449129841785083238187932465356252487760022368182516358783019532744835334127948093138595394719683790927191139861285587427664434811018800404362205522586160279589589249136612806865157720450026855313824666792730611657655420499066830223190679828533608176428959794798686637755594819022401129957841618158681312783298373975158987853356930063002988806102136702932111742215503323847936315274237308606335480969161240374622188397664694115523811615794793175770986055377304322108959423815499702975154890254883368972877681917149057409160592423707372040995105017225018099104966927700246102129866341400545864922874238891685813303419121802643874354458412613115226661227288519902275382177823813148264152743176743748551748261123391946392491215224526217419365870027065573568548984499937780161721717858487329475579557040278561093961167182079045187763229943571310189372480978755246125997102147418752204461390161470633484739443901993510839561960496242194742306964527012651493933585395346567786150681885890579527618376115719211667776147179174070879653213339506800814528777522796937103936212195382695776460546616072879956225021179366178730811617655824385019423730035006771567970511153304650922882001552876394481831531508138187854028607431449910020152872869467163955574770425195418279769232076248800905501810704664038708305129522649327195073708707312221961594674764143363642669464804171238767196745890676501974596549900040770148384122984989193278220076091989105338774471343642540458686219379732232004233860032628621201052796369934751615399210934495213011879718192346175056969061396832591106920926480171856816713972602417595827601961969436404191870562685200903603682754832798029780763374887496146273843524228642365207979557029190325297628832955024531264500417465844040222812717816420039180399364165413729554330282715644661424296905447490797884821276423966336855451648491471162151706674481726824360610553489658882744626357724074552553844998541960401482589465115089455712076264557113308717501172305207382275823874794019787060709982800810548416378813272497940751446728426479766883417970292694587952504112161812106672357363945241445081782406500094998392531451902149501815492706939990860972198867281097601711071930250526978158416753808405564994998343891291917772947687985605995491671782933454067652354243902869745621414680207998916318681670230811935130350993951750452066025212553230967642085887525215841984262746865659818430952444056734282985749659559571478887064124469035269319008288469124097268150137796268470300555935973995261232628824007458911300795421855680222075398148143372419600514278092968260702470285045799163155687917214612337580973352639739665087290311279916140821223528481174032403395357333645783318159112422442084971290841853293506582995987158048005698023067610147110353076327316539703081961583140861960867748388774125803074760794425295044384612903257075152707345139851455790937038458696506836697142644745428766524959988851303357045365264198072443830713440479758535116098434837652278262471243544833387502623055554988301970689605065166635370330867751787253293747532200444285788713239803924175930375915618338645607919171130077809655361546105715496563178797650451767254252393654518716155476905298933887998822163787065722503008599118214698133035744655432716619720737550055824684518166117255081645516897617711159077996447510776066953568491530454157817972053133589508667088858141468355720250059437120369466219917595450667189181194530847966654131217412520974492972021927043563674833856640000696633160507163847192052078014652266927133121827555986780478598433016284609455601500264037341211630468424363518807415708008688989486104044528570793128947147427573541736744062771253009164534360063286651023656991759448699708188682789847688963626665503095298432746510408206739478138975875940629552977445187377742997369821335670793004320605279661905815865586309614978517583143184097881344107729881146504245814430793606682484132448323241270324967755649890106417900837136691896022204911951420176859386002934173470632744109051741139922628733689986436127191915165965689693163803621192983182429156453198631974933786550210422404616858919743082037556091027464497895493203622489184997165165111572781030358825721438361373167058203639646048334763326365868386536943246457300839727847830522254195341542452993191307228799487613728670495281345225317539645730494016160057934777658212326539948006919944066559180882110017351569768128015793945593310454760805198880132732272818386701083780539334935525801297172195390702127179507755552379689381730110248207167547421955154111098833379241119039647926122255787215879395633035351031882996916014924723564514710228473325773798575908033017338792926035739410050283344121545266086943245024191892069837876008790093147028490532916233109161006861529840745620646543541442772882708319934021480228541147272675633866562734730438540230627485045328640059583507558931434418710964036060123632049375641476712761332269452534014240932796599393477245766721642581712313853841280309031637826175951114826255517697729733538259335111274390478251188486225567424110500423662706331089074240238647790620619539582675048072804964037992698671590727127092645911683172449121017751402391442063385594752646461185876177305015523776388633620616551244550210669238337118608573399798282958264369030812266855734965269109525507320213496897298991169621675571066500932810800612848774459547329887668184781208460720129977268434049077791660086272552675069004647019577839502805654100374642457426779473129915955291613023023804750535953334556693603921064217391438163128610491117413453859224061504069558535851300182174331587177056595855159982592467331046081475790009069730828391303045978268750306721381374018671719253142030071582170138178535825642435371637654199034078322012493471241763943892978414292059576950171359394065606239708204869936139751828135362592408766896995462426380872242557519963621479719649893598894811307631078309724336211848303966415131115105759809154557263471980113437847687977270528380223634641132266986957493359101165401052723721548056348150261555015694624311191857707399968211872893145940548585228903451686310268693192732424021830783203006592520309028829097477847904965936946038088980652792684806252380921967871906884476825244959902569118696820121734813581835555045038241933594189342579846276706229755865504197453550448405144370353839106146183270272139372986902966598957448958633875398740194191127298582348788010099377392948328559365928537811364818632882442943525821676927134092566410492936326383662271437203546683705153881134382762389505907462539923717890270454245366157380694440886336658846171287936151908446853494196010709117433255717272718072023048124812307244521890451473188525508492870107000138688887757576113744035288985341554922111303935006447828246806522162620784037852385204462488964491082678421379207264560648767715145070545333030986590596074189806946314250405017603208578584216550562551017855835726507798424268731624169728206862235792646925806041454487322263949702758285107700777254148663659852196939678968140917007293992199487218003731002611198272431814543274385236986305169927589637250263201576041047187300314726139044904585946202230925043937196222494886957954665034062928235243544101824292578348989730278581659566023997746613931035070668366080414414306256680444434712714893264787872740580129265409417260507571624311559103765253479352905284128837126228256509226053060811706634648744001840418745564183565353468482755260941002915999074548622154996945400956954004604664370778311095672543370277746925869222527414263568955409024491045389025708427324048027313730023539856470538792373281197041298520296273743502333217256977332431333645091535878552322300693521987516465620266197396139448487727561910621494501705762228946375513343097885904127724512672244703218421537059954930258129760857220334789935151450844056097447445874638468084938957889810807667998868508236171380494480083719891234846910168482379817456940791381827807881834032037211517134674569976163859058296230892013070597711112093907116503375949628223739448003529674917966141756840189393378185957971710192255609915852939456255455956574505994453450924869286607383762514555964707178118832100866770210629377339271852281492730634030960349997061258276236652296126432800754213673248389417847224854143812159516076421828110130335517995362960660636144221103075778646873709295825564231967279878443683672559741191729738909852960060504754511157780433880340415673470204144331804588714263581836724163275850360248738238880953325929058616550433412742144358052377989900296459022133860886824240827236572754418428552419975012772340806449669387100161949908122546238270921910394486175332815351192586027518892851217770259361410041622687755951321480502594105256436106763532454392489423416704870344469796845118577175091768084295646585495211228761580176229257403222588337344270260359583988621017418951972279392466465007415640826498352395970234052738916092058964180009425803428157941848815973865337273050701861259728961230721397504451052140559943039202964500978618376676268284917791719076475735001967841844329241810559684833148327051481483618646931775227353688281970265074224505834873995061301322076197026879936994787100609011815505618733471839981632565368318297559284268069181390572849015900980718472037512690172693675521762839803023994878786533695117617412607197358496977580894141407272333131133488176976096696506865926048726799004212596207293903929378210134635964591345160113282965280212657615284356987106512599255530860038554548826794822936403472734055459695079008143986079352318810635206158677106061978316498865603123104865031773390493823695055554538773612810244198783103884346111844189374003682824454795382930204931300691200017621015661170814830372686611610972085830749841610339823379243188275000711815137083411691847989284061926217967788939792820096794892577498554674997635895710952909942035336403143396049461113915935344800998285684447133794162894883966510448615876593419737094279806606050419713727107962983039278680953466483522922920278707221337558450548328885649301229685183475976669682955024360509735484436638581943226719276655347177071670267509730401054496964717491721305189965893562156245197381929833159240700815926546666401847888910310074356559965189963401832033634174173697294182476785368914559805801357820000538384792741838697445071022324577370007389510492524099299104377993825290589275662042574433225330405254831123728122658289744159536127832553176627805812405139200954749233366939779884511533594952745464865602142407869438886710637816383683042547324125286142775734490851630402812301593835850341625565758931664635760344019501884160058558791709320667853672573905023716605332178028294720097695949075427712506030146693550397935364176769336770277054376108612153933574552950370841693089783078432786882111350686613837017568672107776161631140879396093752645747034291724837904418754306113388811384244635503177962619837779939398172925702161597956288115585388016567547113880123791662843161526728018848105627337971765657489317255859371916809908359745614840475686485645970385823448182270736624609415118839799823541612384922107788529180252310650220098328181927505168809746924013377591337400844087876644029322423413615707800081675511435773514677288116026329902175678844746562194673789505762341242781315584984386673625360881545766705604481595950347867141269150465043472905028411834775892758851470695560140200592848276180044356611080525080295944527129308290746322214753221065069391859594131657223409652377061231217487242838956493008357392372033470442162926682987190442784353689248770078746259145489437628258124667448091875622948973113041259883992952264022524183162298586571774961414621844304148166238244469929449508207678759262900125019365379271287504516668778680032850431381102521384400606159531451952665609314811744558249227023666139823393366187955182507518644328377901718982296345566737588008915831826159391942676463541195151853738204692113347148802108444598458992810407289635827584699731912249697145246299845214235152304121956650522036754960167861756370232124583566226607612360458647843295949178844744671912209803562584173891012733629223952431238699184020229059424400893953444285504705032482609751218851634799392673718807681002584301701502254655074309890860405354228105715582193650356424237847569690317506458051289774297582857545363897619614327162761798205240702749845177430443467330711775027151921286048956300264912207136272731437969960350329250021494811445283858040475740308361662992283779522157018870460244541613986220344371948424600189515396941004758147078840258564964255061345517255630264105438818504327340254538493275773627956169298011868449497133276194402708087761451794631057647210276575646450289303615861456562875401795365542551231804851935589299274313802262057546334971161267287167312406932894799939742211439943310333655545160451764059004513711996009732152136414791649592796798142601889813470685090883512544323484384822198134630592132537237572374160369035910758055987482836950277426779365863353843612524804285412046085834066343121223776155248405552479494985922694642513227405072707275735194592642252072825505315810805142667595292285548481062363687120391490054932883124408934586678908999744768821461392510417999587014348838105878979860919186007475364133305959013626203225399425207967464273324443232768728062942361000880373614078092788948782873428931892704788391457318705393684713913871500528695906531958189150646987023620617458395865438792253590170395956978848820017227239159100105843570428694919222076678576755032164075786472281344224986127305709967356001816696998477487215030849717943362460243981785557407041695804417314267824950301719971049386452848024907365265124971568492799894449697637507444025329733506804174760270746297417158724097128725043929278625840183945015756917021608304149407033265412420625587630084101778352117159612384268310840538491631276584419985357939063529955821415144230528768858289247325396080966069084150275198489369846023793647434560447615105563798011513795186909989479558548010428735834635377287339052986631414593074229943297200106950112742138388732615664348006373829242301326021907446583953674602485673521973785906483626274203854189960157723009114031047525856476969523523991677073003336599074585527145294912075951584988677625189605756509225669496546224662165001088683360722105414535976569137525429408906699089177923431440210153500218551653524558540748107141119169450343627323813864274827183495510795405354569978936647127772345271401700031749028341535699334677506684929877677122266227308849660403929464466363604058843503617460185860755851874480078272908021911939929188301688821238780946727300713563789956012247495722992791747385620287220328414462349359876174292950634461300480365575785455698924709461639163156599545066931371654886274435000393330675988155658489586524868398541783020514525260228995888465482848598087512636790351717671498236040912998896167890051051312283376350100933370477544797928656559021786919486541168577714534147160047034993480948328089731839502279325873921252050917665452399706153152403201248085848382821696963719669069993846222506593036832384263327249111259745903202312073814405547294128550622460231234409349358025004681232548673584451211727359923755212579744490595227403966337890403293903158071352717011290113832584186584258939377827002246666220555384420961239368636961559723376766441403758692222256324684291333424788517400927488106883791942946927658067617092432924453709255883000871917522385043227918574396255337023085055591186833264174788548377435180372202368287102949555863190070763928419076130150080896937502683674018650290775367743437315281942597198778907787760232761787274518376940931837529574519713447887136531244035929121694472462577133102747984627776531028560256890956174383845444810200265923035080232475725567131325657881539541948069555734483428544996657363138285568630267796514116603876407386727696513327247684447619750885880141220197086846122679553520889756714800851877950624951157898248708789225201726654187141540297345394920301679789400806431994181968088370246174559303090249828361249359621827197245248110572100618215245404112015574586645192531493739367412709356268011084395152019108306477888957719740037722992176587402404338529044813711929087771065010906612605543255996613753378098033673273420331489202364771550967655585712102298335169427682632813766123242111126677026091960882103638923951934625094916592590248528122766974996055585324870969143674476131622268107290250265690002621689241003045607144766014294828051944966755574572925113234256562170253186430913196647173430623516104054877156082522407831792989418330346534486505711488445746153502440264088822820446164509763652937885543044484492912668140373043716883814249632167505135290871893896395266708395007036216030199843808503740053420236529873321944488196710469778854185172601286645930029795931371637762966218200839294795898195099464374827760857705163073570368234378291367728258393689435671385437814769755102455495818741186149260448640994825497256068421503995892945806176925566484910149058084174782965530207703007680426408459323255069526561464491128045025463942627497483754628688899563910301122178621411434428695064467448232671640827890847989830983731902990370532200682571101480217819354611320117934466594472886065441990381424760020195703752569495461051652406477424720819279470129137060747544937319056547845250496457374893768644186712105043712503616205972864479618607807989196696660426380963470888306070597803845514277906987519129545288685275986776946569696142924478648094578744185673362777102113115173323039779621967284236122693128172837414487774990253797446363245253595633279128163949716847065204219064309252903503454027135905017275843774548969156815644134619578958602648383494128515557447616345137239869869376473888288681822782902436897038527204623982858031039624848856584051801508368586153514847760082745697721164730455410180512397070147651005113334702269780891125563975741346219290634898126167245128419456996836780700346013524956273748829206681773526622756812876413506206329088591383752159163672725839465729086117730351153222816438508597314665409367224889973637622059800176625429306954361057975733660652870772732421949158186401791435624236160605552965061177778458520400932762256650772039470629232454666744914437856973530483088930908361121528846051544871375266610182669992866279069007634590798918511332948377127657680608343922478785062965776759198973958244008144240652580050022433688254101295486852239774509131710430819096561545865156219208899909303859677548943149159780731072820412657376551913620523120600413689959553139033676403929645531464243260190113385630472619223698591199117947594619636934867995917457478558400523262161754064939703610631852765244685285202228387589318736100361305178838349273150790387921998986502061945768005972281729680099715579262581448692787082864649762547477972332102560613724852696107871368771282510503088877819614630458203827581954614283436030591170076237492432377614631610590717666649812603414494429970469824484345733187389612188959353114282794815174433267061233586479566439686314988214385040552380014784066278128823312309787152526599060846868222328422279257400868548094807470713890600866863595457808769259355227024062903350699797188600422904459125897937643211006340124212001838610588276785161718132251818221801070158073649828057977522112537194091294275477682991748283770772122214034780636135625338587140413939543985880449753104248687775637992365211437712470100185293066992798113329255904529513834365978401361755819982760103733176486280110664322153979567463693299723089431760750360964402749198766450948084069118033614478028864031869580853442953741879084269987923466592093816927171446620626656207692839879781386674211194626294662533221399095985400446849389672127946259197078777034157755538415370437686413696720764253552934246987706020102226702881110278792834714790618087184298613759761224465114229676271914016207871198883658050362549810398308737337246646701977334561882655766045843954166116411886112234741675138584284299908271460555998187646431972342340201803038892349476378990933252992349250715147990201563262011495411481015128487523140130971301248004433257736900563961701888865418949675739800063922241562400635966255423074003195591621431592344441612023308924874291997560769090422269480844646559042213559225596693587546135166758267789294375809738618122904057026666345778742055775770713813419898399982022770451812258509297413305420079336405180602511254539771099801709656021183855661131917943032157898482915523701666259105231993672168225120949554335847575900027683193750582539419726166118946632006043696393704097349821953713015936002219711321226056595194561552416802949371190602954082992226033236047482748547739923290423989934817362336789395144618572002184916987291915442834640326738296490087415222105559056203229376034872572581444817042936953942235448431849986768936859897532045766231583496342586019297999378946518758013516731809741801964185120816618564997899492594038394355910631774843632162849650325610264416770221387848768133989495197942821623104204892471801380693310685848495958818747257214886869302272032881295243251014574830060605107880205044104309163812862857118768289702032113038160986155898854387421827517021334707148421711087747291012834057266558291349246387862348676021838573805312395959601107993654661239592605236930636067872422032532279516714253006336738598087466803790689989935323117345693000037708775273914624308427860797765808434191121539078381898159512016168564454965186196758836518328746424944581116131856026583684257580664511738301825554406449106140572424338045965572776741511867549625255200825800612378211315128787483301671784627719982250697442416298388044666528417513621297494725893455048658208183050763590609428639423977016295348800223618766169260713867491302520007277886125090338426899260226646942061824239201997787859904049497082652799338578410631432437443624463429736636845214042834111013286632184675235850013230417117810734063343857196539684036311030006500340096287809011635317523746244220909383142041360336374690014532591706435117248050074336489318932520842977961437550510089616586939600562265466759612178157937318787853525749976309616371126085933930823804580643803995493834680794749192430731181886125047831856587004069693331720562281129116810780640812255230344221473691822301275169708090668184197769352124547151776290632529683906487437277867320644336612536090581112333194280634949984026006426920511374302384557314816403272821349414671572182285768489584487421071921094036069474346007366310590922733132987148689855224544901098635989005257564151821565759803090781644893254465722796684267965852861132518118529969890655728438958398615525572093953048049036505461960146020015561937299813697806527678004389047625820943344865920062166654849737628694927600471736345263132773147854860649924729511479193676697481458588187023927969524648952451095430823054024819161435060556661177826359898878571477531047702063026227616504445895442716206614211214536529647536792186555649634438265855439961106334426431149483561118957610295870615446968552345951103004696920812841360567622397142684056066205583001830552488897494623566623454353299361834908357186965417681296267003544595896642762000616183320619592633330241601210751760742436645895196684672224274788294401783442039982947760442064976397695607576357999647628137681701162887460260652707447466433355290248241601031048679467506469348228276038049641682933258108941269773201273290515184068614857161779157019835837750496849859489044380790788449601194012367212914404095281160737246084693204061605210402047628551378053879528175157653723075029239200512365305801480820500293494803900641838642187591236045688801991531866812850839379955634028308288632701644933875604057260537427123516616687325888130769736481395949836047705554769577599193404427092775305312833198179223328769514362595975970498550658205524139889308876110064061523803577433700464943480854107425305584353496648653677293051676832027133398012313572857830350777386701667744403307549718936174218506718887866873800049741160028487759658515729446582512625671182178468953733302456379160728746278114584594801103731878083749451544264577021701789228149829609844961523118847919363967431373038541180834396865981490494249072131235516439490530828335053683203023403721743777268323572179966449933634400331451761266051821891653691011104360536554758427370503786168524967848897293639139413312836226024411931704783698857561162366586348475255196174836687227293838488205072176293600214923456867498442395344875459190114283828770541194942031237868048400884529846210619871507146793332951960327742621365534903376636679755504787598095763695784522404995917819034843394331028900131293999187585172635886493722545385538134052141730841194379674526708926283023000425944235290396492119030272945948300966101868414443035267644126398788095236243430220396005147803143022690547502498838396033308507041720471775596490337047208002394194940036292767457587852214266150027877615150763183227848402323969185336526520340258425012768233711896364773646220341729054075253751048192154342487175908129963031198766096436522859430224654480119537356266433907189598291579778190325535491625730535682078004701187071299108253237119068457069245909307656551640799836008886007616115225718598277261440627301894967679834758093978341518104736521820693613842787296392766519493085785668020606140551175964145311332601365794276928955452359676171933009853280628105551312973120185186185683636018100431015134272272152586190692140606031224389711393293207274381484828687246508693927924656283742913533732068154066673899730284133132338872193424533773041101711398541497418230377165893276965901503807450450744209320938298118179421070258619266220809555918829327789604852349741188482698099471397973821358844234985760044727760584904009555000664929115929725903936892650262159900769017632138706262068423145444700625494518929677908363012036040984620721745219107011457462588339841315090008234540011122375931387739774194743357178997774976978902754221847249201474287485388086274176080672234633018280898792102935671690990944675406689165620949069001425194965151106298324114241605337451250761663652584812867722417472385190147760628316145724453669460017802773372531427163245133238337867224783232678921846255748574881147019903928878672549334989140611856889265493260363492541711560925717942227126508720608821922888544727886502487048816473742739733111352625944538350876784447379700271225286769232385247838164591283863091581770534707903749997987908354520805714860857640571493290521276338824994117758982761199221570356068877767057406026135220957424674525536790993267472058414618628310097383093006538617812510994123236744545324799044727172606613209411714040471713381220178175947781410419322065789118185531394149430520518359595347994540077195527520665808930475860892514683862003711609190664677188771257799143219724607325436829029930561868707481398473448925543928407195587677183525533083091084508243092538579680532048098743525610819703720651750271920459086446504045382716105249329576028999915021924007918712212558444972508397011907437913082510224702012211496144160369090208267248235473665343527400020186224739844885564564755749254827314328337173800483779291674190138373125437899473438116070196209162552916509056103830104709496625176784923679347890443335930924547296994274447130682897267732471052889346478720851666578435381869457099728320174170528935106248554816577139408358582740743350265193236677248567140115181572387747004044305295878217940044096238045944892428507560785782138727851541182889988880044540320274735793056255492862257929158264909523963653130058020203083124754724319826119946520261698119831473360071060395897249870067592314192168789155111563944746751267520746332092935012110912920461518353664473676590030125103879349461897285803601444259480710167379129157827301257908434275512033879637050997924924549904736478598317954845469567501031485499777855404921155923422745894946880439175458504550032438444038235229511935731331488245187239201483755720989156731707450622729030052051658657832650846510041606997887535232486834466113357413596713555316672733874527765697586222517971611016606824542744743174011153823163858156229686998365981729299015696077210054533328773149810214773370705182192776496640917926902046926798650137331652302404136555450507955822183078018737170923692444291537424886889706893566486036211228969998560873505482519966938588327653253284777095030708253598126700428185059735457702476079210241462111860355980982901487125886767133281918383352751589616852633392961709532489857043102625831599053036749515377355458022650191532940802285537721338182554499174430738229858404542497629924794769898818236500561643299996741643900533360368844438362674607381203977044018848688602756763344842542848672437780501038012513279203942283224271353993864746342151000285457782622021807920561164227348582480237303348106563036712015233169248127998609290629588816419712232059584729239084274968214211077797382670429435595787614442204418141788387385728759297125884263932148784820529220752871723804418091396240703971807318492335264385756109588429774565044973965306435554975518505176620907807596861289103890896717731095770704623245911319023305445914972114524444779585909251060705131225834500329512698110834105613151017462916694360919006287940868353921485772786015979893750882108036369133276412447404213748844445658407873449088053312347308633726095667514509078823476526771773571983326905530943871615998113787157534095808982992340514118326965392497203499278563707829910087139625117006712159640194543116865409673277864367231323081236937395250924585753698536023469381787419049095886407870980609176379346852049489572684307964258029121547786954884177683894325260868295875109180952355417370058638247243083799997499384223546831372348763930892200485407001068846203401876391740960284443261105195988364631479946473569048165396549750182679151914562077403902140218814536258234655541629788472700283257277553901566579478547711388212149466125866991306077554203225279436407158422761649786017318576160872351791400498189111157677210994321654272306774030862228704261114694414369409640628473418049499757032283607472512739705603477975809460633739209076654380303481611600292325500387489771804764146565004150941597055801540759188246590514319147469616056808634758937727172111413397817514910487175110391366965662827151226111086389469299873089425651979978181521610445306143007783316196654491944084472779839296532136516121178050709078814190828333380670940853258156084639629451550776304538302266091237973228448076444937601985377234209367296117306981505585381638761762503635699249785950075540530618371867507585074093235372911217628851042949095614797296338677511485070585507249328692293775516787354764296623832587978056757801474045667598927123056424065638714660285074295197091178591412597474561320712930209375685000428466918358670264227303367112356411306501096415523559214268444003907122250761279938809450511844371971182433773511027185810463154969604599704576874714268924379419095848092674391370249179720753581597861732091016189335172538317165594880657292594410668167864260164979450616678044719827820087903581825083109369689497478631500183066586632661658325622088427801176567462355497371143096982263523857571389110414260939319085802303793197404466440204086102878324323291634445982477431526997720698086565043583065361952910260669393029699895006281343178903371068453216630610579170679652153998399119172711860705091546376217867339875660685977626129660212519370095989527378745908302838903690791380225123379757596528237211860095076784559618049495055928175455889193392070473800542866668340811948913857373023670831159023379075422525273051007683843310445362729863703013349000001634534312703869056608007408904376299090072422118260266674371128392140762299756888146969550177316885767921535160996163163724066038798106599267633758976904632965633314703563001336663467110676221836153913419099378923813712605803736090762750854027057741715022677629748831399131902746042738082725317552403878487274873971110280980229095880219458035390887108493095074510103144154007899115940994177895907126123982303474169905869957164172848760897469250070524478990097443948746683102444278021726823496704552462513482879695345864570133433133286545967605104044849925903092437311509581055342366982712756947359431121836756719600162611886157061769672374936504489298308117483670596247190653269545654970726047621828998947841457225669452136079757095246687107784699362875284188471439564772861739809446359298661972711497034292514373807414133585636739408443691318632539583035174901537438552563015067424816058887313282468171257345889208712485527045596184590460448622495755591950975112496612793268235364441738231911879119962377070101032696951225811070943592508540768580070963500124853161366943976494778402548000881656941714380967082716727920809604366065815538892378293558227257166794093668582494381017155950219191080398619528604756915732960922093388369321361837336525166455563804251228792471677133189882709062267422853778713159806948821804687371715099674264810893228984180142229139041879103652237797454425764353829558518998444278619573264347452732174352211270442557743751064804695290170471711219022371739080579601890639560994594958063209233474953458091340732621515012718516171314942049114764194124217390654553934004149091259328250892323685329830963884700601918150906965485334338146546214653648372042077301251192317193087495592427221344500980882157914397146131308367626266600023599727226203141860240733929167440250736072459982508297740165706106886176176739103870363148525579538222647806141946327939066097258468712889583160287978539713347710542509497042876418651541179418831799685537362625317717338072888905622034902435273007977681044155858776514964686043894780603396397857862292264760714663949748483770559722868289878188758409499063370680413525997294536749379071254946399720496571927948813353201834995944455062036711536584489513263415697575423635906577608540315361877656019504337729803632078585790062857147754176195747473456995893086985514660228091067913558699270405322919883428515662860231575433486042669287187131468981993386960616309478873159513831614608389193503059326678067326188906601309384058061184982181529740464822173576698531404346920229273077238340304272078833589764393558355292024545026555246058046592412317139487217524137627852288464381486948295286919496219488934369414423066397850828509281231602604270723125414203543439050649269867615011352034905623010473769641605060239877328184397423376203389947591935785963608932364972750960559048002120671396397747640358936729423771695672637384707874623750261152429932150358018556589371815084591539515194839268890115379370028079851729576259321276117824326819911533417356049483536403778169628094262081502161390679270104104678425178282214430549290237156575380609390160071426030218184944875594838419477990656793983481717262430583337359892585020160610419952753952594634836893024157284207693541163349832506509756033390439671085119133438489884218914546984832873429271412448554580471484035704996506112584921976964534387803484375513041864846812334123630913088494852629319447458510377648643287150136499015532073832110297523973666080902217625533655029116440525872206902516703832142869980709110200836668138928396953580414948975768682231412233728965392729819802019921392549666847599114368906705992636613344281452785645627996136797187296507848794938421199427934072585051530197568992981371594023020536779319995034274755551202550674840739986795400603893995115965387915344662897127525630025134348323481312800567011730832842148331155007162799467421877976388444935435975843513548075241470557206633322273977179053717585382476098630538874923313575595347521206682415507171697943194898468081078041162029452197596377832707155873391258337398876185980940836040243527621996976602216269392649953135551392222411313871404299108688191764318181615812624994925594938397477172593967524311129910918113297490758191688889159987547096815397833474162632824574566331195225748812578061581951113583418571796849255738156948513525556043452408047463525843613397191194523335472818220555801895102584024710880984346236812048775967467310228200946902634103767700789067989632380738110262222014377854111457819017521167044273871911781645471459684808234684609513446999740796233630406058253386517696915620646765628530797325486991055757299879991569754134118443110581153036445569341760865612255474349112607477896407121091678747941903343868454782946030076957405274510086601929642648794019644182512599049570810020614413961989197900199513268441450805534685587897160504855780994493793352135840165678513105564193196121469649120779208822013624481216363578330196591888636256968007158001934284967960917773970913755098264469809499612014956029165971972205290660798845883030158132480121498452208700007628683910799477461754071467281620435237078841368789365358743660660308490418005105487767232531660629049645567117525329969494150355821204887050843028370255193495700485451518195900123832290473722241332018047803197915798174780334344650696993400541667880804864595638682842646313519143966054401510911535480177835465671916394180180000225843530525006336684098584174970652430969688712628315757186706017348709553525290027953514931930920203413687049676952823973793662908562702837190420078883025474855779123324998288348521645837462929663483829189282915016968974190822564852638239888428515363942299998584808456101783043938013480479473974556955258794130127178061847555161500167666531873866171771236012439468103895956157202711224707153133567545437412823144869519021848170345870143296334338281065285061253586271935860965323378193347313450049828015286156931587479197486784348031426813311083017984653766489394693098496774691700215281418448710745948962575098278262525231234885558414796603135216512126143723302107393475001982106826933766899195620293937404858107032032866382595864728685359805730241162213369374057978358428646450257494729777700042767238119313038613224112938416498440135391224873947743465637259453757731207534323501878788198638588015075211684414933604725349004854400837780009372544218397721591900015653022509040187993691851844864174641252585537401818872552499284639671822309622560187327091381317244193165408420090841936904408363381461373615228743477359121866327917271258063203397523435292141930170157211199908791556256585295088541304101219416814447660298369523687454331222330394745572028313448539804740106915299366828550544000608700315162335686003080407558362746986535893882892894476581652625597848371887357423038768336783893092389735664626835242971822000978805429072449123757176074375374628552443533472787095630634661080376828378390967870714041833101379755779326689646999371847476740336505526636523823911889404667455521346797853942748346625425384337161694866291861249329180942803487087691165907930710345767376827845995236580173975738834033183945706326963363988816202935800415591980609331604618630592800436236844437366216605372204784473531080511788532332081469622979861606210268710901758978389956598563599035595887405103512038848257945393370921050842089826855222257713529775482015109268735343168501148101874939913767516148026505527631775291573443751623258592343987492225360487431349993876531014758038456006211908924047671765069671548170397137716678417218900161551958519422459751564235072470873768954475561042044834681706559028401877326192719455491155214280649170469253844405749917785288542853929578594505210438368582412994086844760583510677143743878735742841591354099829204673174198293217717283043405610153470178525262972279509592026424793361981062128706272597739263898659416238467590566567797775986435952302374514181773044228779493179245972763468241411090775977671269206544554325124381124656779116409134066152720839672082694639131142008112209581996373947758525237482631229936281766191699487549728672517975231964199759359461076025280069858101695787605659532954270416714495758465798738367165690694271617960755703383428731453844469369290620182520582739382700414901437233150021280601977022130478091390132789395854439747713569376300951574109569874706566830840302233305812363522451909624913292006304995666343496027553983810568104564661409750233393097277088878604559454683864374584909738132513197301200320350220097664181012389205626174224065901526776396818671226430775120813236211632640546478018529365102960637425738474534202515505884671069038423606237685860790716625132092907317292636263912862884873507169668511630211026501543373927719819713837185492762428978516823903176266402351465898825483548360743572735578590277203904997156294271750276294109974226711310011261026241952124641307390655368419306471363308500466154674196172489429326459142696831259728711394540235644571200600120122423844309800391472358556338263440298616819269001175292896452057945807328695016455839511836493970643773399059313884953554518835485178130607600765659065383799348963382943810203873775228818709893332161187042739001512104155949484537074115146726147591438180583752224796336446638089249023587087541775132568031070749489029426654575551853268032036309059314627867996592574184549664399396125492503830968717464580427548969975999462862423093130133196536100386693436027224587857320407777339994371042567877819350588958105598501887564871954604236621279161811320455376613530261149212334233041137623080531963824087258468890718968980716382571161494446124500329194632262788111645465360804795356560169920065447885183014067782852062710567183952218347653474406263646034889078374688419456329465758981593472471066408067948026244773450896223405717976963840126485339746289737245976352260546374282800354191128632523374150385133067166943114771912393197756194261838167839958702638056528842181484046243607152917712308624425942210705547152960360597790992085604919106784003001179734027572753889450627721119642240733383609318111129088912601588543366245027174156192885350653031385728220292144249911200758278249256795805392654937813654609050549353695760972349067498059383961592720509577324175614512582777053106296824961900131831765100974841588859515798001326136135272867561883972890984069382887731440373670508914055010246917971433021636238626458315305495780837191135214477701334266515165216222049833584312185644332679107245119667421638526432486085600495688956886133349526129844175757086080092290712193080462731267365771460154009085978960035356857644663542803992886742792897469529038926525775920142785187613165549494444805860734651950205006125728650349579443568516146484479341286392584770809442986030666389663122926168430651287541834956317048485263372899387879904848604397605903985151869241898380411002686239741142354393310587415912689722772313285664646762708793538228701709493708347050820706167301049999747373955063204031754771039855310891307681538547536174167071407784727447216849249697584599966083854493199960695172424920249570835728797457311860097161220792303878819854588560000363135648287426229779859300410346105208231701508677184163059976755886930450895604442552921423970662655085113197266825071877194098784952742572575206592191561606696031681235183458085213966877525278841578888305763556226591134200880551426311873861966500615102302800575979102994444803632516443646537520998143886892908766689216896818636101521640358067445448741791232830154896874175526879880777224164360134067457196811533810984780257431491503277940834780333824391505075526885067565408019216158684172346616563044571201819308291506892931508141412655315508435159282951673042595513413893391478651547550696836003607845152430220028844825539529236891661325380025625350615541569092973028924634612346372271286501287461460288205304517946263156231399869635381791058197208277293180807035997776348361172156550104606673594957938611969941031280997590010496139655010393585471674554994745575883306484199334561353676126129302885705530681647951550309195934360377285077071653906098418551459534180428780951543097130063509036003077213905112933120692623106962625224205151936992224506840018377112359024485960000717873951081337669092177132051481406742398920136034005157201520782338799658840997151928344766739098449270285944499999029159469667547898677325495137187918536670555497021162298408838982784852063284280769265878213843475034285103399805774685935319156119331927032329091909224942658906907683083175118496929287561265671335263567087742030367611666605141265297087239640073489701394411567944348595017194071515207961069011162366273298028565752062412117067254360444185498989911198176736945523752410962546821737424799195972303742991855634921307908343416807167828892715133343334594491253033290453957326981960788011695622144254171515864723757025090860157773751802050982952523468503820178691608020050199989538813471752878067902155653822641916587776530209158191808904846133743754635845994824389422189269513658517648579641567911902114114170374593711084058132741824192380886088796957497569676946128847527491675575252903891314320240452335508999677598140969905324138922293321571327010285653747124545292966987788888399020187603188369819171492632418147288430162592275397251024481684495036180777319325142632115236566740836566294491077396582678879458917161432891315243635563600615062453954937087435057393688599267736236440213670080921555675421650567436816023055720812664276142987182907761436619034467672323214820570872816005317581166647858624585258109800379798852269306903858387729431819322917889765431828554603485330491394998080188851655576672767872126308242751992846646360438517066287934507793012010177449714018848508877086055697506544922317077888606267875352323452993805390549025678127650935447441955377877499370339216714252354692063335295297485574817371280162838680603525898663539499328581744281911877522264350915086037718076501135109860936591411576324621460618268386927804336925671750111777397115574211184965081203106813605826879737672016366721029206538884949077506779700267908410910981719248581371133858528576780825189341086330596197770786918174946598547036160147818561438572789881443774579774917281546671473030318784827099041039278193237618995165370167480685217465004434911373926329075889920391789170642745299863449709562862402810341344746838531809057418333792992251045951099470178073389467737784482311866763927013472074918835823144403250604113591845475802151385676166779514181021420257607051199865466117339912231714500605854164087786897241146889388935606964774383433933824641505288261365245373690718103386080402810081852163095762245239317144845633736396432695702350982041894502725285270986475354513329748490573789864377647982394702940704228411981313764104913867836273410652083177202989467741228031283457808690531183339369722152418626741105614614776989761614893766023524692586320934571839908181610441232901127263831585664473826920058108159943254318569941583493758391678213535877565897356041384741100524027534230115969182351532995662323649264677915337561670819551556734407315030623175351900276989409178356696400943035610637592002339179059631814567838601362249822529092869355463785413393467946579484467496832093726514738652120580940987947124086841061238857768081062066507302163661731512202951626609042283102757945526847084050928523240320901531704926070905008055825714005969396636451136010698180731778227102274540812264199948559268260871754982637299346151381686092264755747787133397200304058068664330833512319316142737657385444210108697866489665689567785198484433432788010347246748270867705864081975211392146813465550203651137527529375050110972750544951250184091463145142754405066486058298244727176267522784508903513783324604386120248398190808406736848323875059802264225545460106778512176249685976044258873385777891190658403716751883726929550221214465590437184661110902504841955573241370601385156624481532383596457228603884541868082367235690394710062253981389338553870700970736622017646928393265487960142354442200990953696882073948643882591815415136099327729438043019411151845345752632749813306757167362741032645181150298096809756707280820786223826186597291386788420615411368264050773534351034420693842168539055234732094800338577448666352662574943937450365099628800682256842495126228121857557135796303834119897353091987878282882672821138654312834155888778017577301976809473611625063730373522895154038350263234613141950661452407172029736622659186565741662020022425307054445471718646096372120471156214688368399870086647151731059093571242158045358168217542393692036707991322687851074865866696332206694946460794400604053990476533738865896812830061249462609021286207704436071736613747296504173532568846599209254198153335904812571344016649040834539505607953547020461085554843484266637251796579723743003560271507385505691897140094568856862527260198157094638087141697935400187541386165241086377571088139563403181385692551680438666505975758941883938866544423741536624501580807190094007908989890307397139665967240761952182540180450557067655963351730187597336391117043008419431094206561862953771264198142659716374047377638795761795764631362081709798001471628293963221551908755381850346609689157214434761264204197051321902156032564291986265348973406968167665378991384478420248676418534888631896366163247360598990775047899609292544259177463328571522857325330794984619926739003434445860811233344101420089561262043041339680896924054368019567740975974962737647889380540827494172556185482165890347248225605123052229315261231589431100541985870227841913460696297640504348773887428024499725451302204409928358353790363227719673260620877608988814811810507179180882254484837620754209978352968146068989830235963436457033915933710660638136195585417930208981771991388927423765578109194077576273847968295985720329043054444655797547514793912830165642603602857453357403938032483269105989701482827010860416462341572643471588184367300238667060240050758145627919336362634388866645446059961530686590513081260342466763925172392072921020996577941769893157833703461946458009923891943023676269714682266136365847601298009111056358911325847713409152379914797427449499763014430898009095336311909440676342310923333682212522564497314642957630059820385650788874332661975403494441000671504610129615301850709941600478199792384201810447138084416660905518689378250427376151088967914628609737318765543444790908189400724079386145660719097314335617436999658310610189820654001072286429781018901159108863839138815954843211231604520297143997764851800644506694715190205806558314746535847815664527727154448369013310786885886756527114375203268125174527154495736451555621394653974713091617539858247804493741143451403325801523509035419512628756283300312618736848924248223706192472965475131563868761448530504821237683809591917760142602584204683491888637558685595277268826067642089269311318757096957002171140914181287925809491859452708286245150088073470846082764762889283745998026647260769213010060637774271820242359623472059501315623730671007880215840304911818917554778120960267529592823953385766529184607198645369328255550157776682084163047579749884213324776315053788705991700690512993287686141870777127430578382109212018133986301375105612093334861493129092837143762545605097506311010594394328654207252021015455327949023907378303145395335874862380376191348100286638707983188179144042982209380420679351730562985611755882138787233873627777739273296429805250063575268025662454384854367249500622632798237993537545801714499348218135519680765038809718152071326570305746237291996384057374131248933257063418256262963626203063066658464411381416194192325354358862799732498634825341876510489182861825755389833421268310286794768766279781805483509773136422920776953097781866493949879022217214576881609333761612241401881840176564181330067123579039401690456115259826326803792787428967767738203329356125882525922976195810203297160252599428390219037952305539876305941882061408485931577883526392854961136854411391536760644140963636257387478516571066539400085132164940551170579246158402108387077626288060141584849760822059020223506350086524199393666137808468696949415532189955506734306271869881921845084648792443133458790173388204152782183468629448133544456160960527324607277379336096640462770321716894364947538998475951794349351321744381140765467341296105066545035438507820077188111073889201164265829004703125086015520256184808790156759675592535276601153781671068964040921235559608435763665331966058181782371533413048667114973964989547184295981170108884751495173685327079774171894064676375223930903146531655802880730427666138462455273762881676566578183223445616688170121394217398640815127588153815435109234551400369714488997278645041054032997067856391341303181854314882124509484724589273468861567344223450662430646728457891465574194744042462522675330889986780886741882633737904131270961735128537269581509185811878853012491838122536479395159620055123419282821127719797340888176746554084002686471184203602547973644234310417474073650530516661652462492723214191546782890854363296640866218899221938731026469199410953010058082329182237168278834779736934923576409945617590470026445672398387855698837848186356053471361296875639765419985347231255206177403903615641280379654212005463618376425603622103005948723541513190655235529382285383839982583054341913677865151956418658805958927987277351588967453637354869782196227273353506822102140391657355388536805005438770129285610160600287078089666844531541136529524873261877177802841830659237567278845698753192318858843624031398720755234739874737354461925990503147121813002513196681400320084964553617017333513368305067342200227296462805610347671992585272003973116759936262967381688972717105146131880442772485032415320367629849997261931708723008865081764020992597684107021559629607012199053615834142325985119816387580663934666634857440023190665835842200034974860385034525340266628689267039295465519916245663851227104847774159209230370522497586377480593222629883740438368159868747568908611608727792267748684752659150615875961515657642433340393623159876947429213321248898211995756105998897831577912665735230126501541276628727721166468355221518697449962738453487136469278592785252344677742565234909339782376490591504233557847637802341215071625164505561000589129181311219109026489018562882105830362468840479841513153732707121014841937375183300615935609137607212268067729177376082631073201799132411939461104511807777745204855479065617658939875369375595955619433694574987253207321910321105010643913206023542239291424222092376612530239318347270451333978657989573180043273462787163339691649184088972615994834001548423979558930434704745487445968709652997069138172856857991829074176837812748818849518042339712332291008794746384592689042042368138462339486297795859942997260509115880613806293249342770269345607497396519199664403635350289007582270048634368411064871540593995405640477841247145294093140312722534366749157678288185219106421635604568964286141054217383968044387278818935113284815591277105592389237906263497552914537407007111728868979878328172160536244139626105924920796421744142574519236270763256241732074786311046520042826922376862386152183127228214980700760950046203857327993361468290011168801006591093454080167673484155210670337065174094708618567494175160591420770811470348134160975673707977236567851874319308800881744904931555809642263435073484029246602835038619540918349462153642322233205857810792350876919352094319204560777340550740570117622169705244676428226216134552557540125161286833172633922715828997980052539574775872704956904659920594619826574562700531400894359338133690029901650574788333580707338552461582482787880234744711411196361993114026979461697697135197751207780219578742720900482864037183785315449453406702047113507655526162656091792959522949065722832348470687207159995864224772879926180123432460167970916110755175536932880060717675272642550402537563114400238994648116472295883105773334586895654676099424490226047302788165544152698570665497884488165275640916894240457610139167016796494221439409159035609505627893360735698204771535619588761576500739498416818742828358516383191376117984930860250275962191531363338718090453233298865243226095717419405378538193537730422890117162076460615819325187017530546247720840418710519881181244274287652955545985355239462737669652174830411634382162357392130480973060976642993270173622926447721762731475558059498115078098569534059984011052098141513268105745012552080234724598614313673173366023272441399687462012479509338336711281997088356672154582414895413200269145821027001847802980812895325995613541901896121379154638231451906369264670146902340094182650261179177804647988617931066537338561780093530317130166960970931545307955802024865262982091452321652925742140717945541125282635853810852323853947881638221547734982432881701784546175416697736878227487155152635547244930292215117941931749122298052102194523824705656343382558532988013522401605036337009724238998631953320847479278517267840681696230685203384836267915138500373733558585743323897516790541519758535873358247770841090148769488468434775068209756310954141606299683871021848129306363107266681415900864861589061140107932530514315964585433412814485077684176880580133181033719938459126110305330611448833733343774441621976422562881764741999555687098143537898513117397975780651998961557474871831802953081834051767778794989965467766651122339805836916353655342601870381756500500008472858608384515486567346131344076764906822820286106967129366061384861702128276054983766933826342108792592098503777705054232401491547442986646197259336927060592964203842871771044954668142627422563865271429875070428634570704710883551224805327547753302395214617397207083876678423726443492657855601713417474760055218833146633595146424714263824342925062456289716428936245702359925964673108311973606280254127837911681262340168674610321287033672243135291444832929217355510597694347611411857835800491767480054408748405345025076512912570416127068786426032879362096350604014616714776504284794255070943897024961037513101720248819431863581824839998218569085887326265513362808138153388087555686190714523275612922707474470195703673356579574703839693484052020797830458463395779106813623071730013920397248059873287399697089998607715061966059844089499935354824426323573690323168528978682227611498041912983804214761945190136178230870748614682131928041013365106643180510183298540387479611220493482065809281204060911077734928297272375942000102742862781193252588910925986873536811423814543506747438184430477962735745305252399849627258005881418566727297582790513908285690187466512637726176356195961052342705401488950762492828753969492887969916788694076965509235810169978253272305863884849722536072639356943465588845033741544282260632612383768946887334691657543624606448960309600599867980449765656543582634107422837385440968849339690785779855803129531486287785797645002906895987981921349669127230047945937711429714010689967990392005027626246097877986517739177180260326524012861408865594594698526945501466058895667690320814398248261987151506813870564187275781883679987825183678299402823301911712072963659321904181288828779715588093263372084897454147105624974455429227517949174968456821288867178347895778747776366767202344551481340453020157219232239568641716126103857974097260747772901888607446055823375426239919790732999088117158712064435156163048629976655274140645509069195324199154931454456906169810463842299208083439689734689239920235756242263577100121823341602708633806056338553083223341165790825022396559862176830529755247847838368370579005198296927630163351875164363361732690104287063135011446382125652297148751502154506827228922463654359257808470581054849683900952136537151514662941727069399661780447249942587090213271428809469089243681941391523249006486979277866391423472097834124741720425573869942176749577003488134124083384702641744112255615379007897134277981328995756135140729558231658000433221117548242158389730444558527960821132279536400559506529281265385631693368715935895650569958674977319028219345088377018643304001138703973687221382381175571957984792027721677652412683930215741945502638011719463688556813646469004790716021610240596661395217352105056119193980433960244490604539371390911385171842558211886269526415334028021080427630782179636180493100553545345549692030331262221394453803158274533549169495236495709089937551487105412394959410926034362935123493202473502890487677435483018403526395324463309933638524141940536223731365352404009470824236204055349680212679337487632870945119900463025842317319521371068797429777686547343552825669119321436516962886992291968131105272812586442117671347948958706532499910335390099430899511017617249725520541311849640135143353241742413261310025272904292240206859983910669847328362464516184363783315503998004475081817335814696461609035884819310232653063308683598646420658709394801759301554526142217082032520356254585269967594836627145299589581518175742421195730795456514651265806814428395891821626541947868955708652511039848245876787345484428818654861489820803283112087139155614311721121793236793068320563915791063626117261959503620714568748248166557030617939816035269238749118339581752208760100221847518213099548126540867033958120990102803996033606922847044008634644395323268031456524282716360372050110914952298601579382722246272530808838208045871467253761221708771219631462554408990272836060323033814172804539018708224211287919957485646390429040591436335361958052454420365297204747492559959227427348353582346796842685484489475364692218912968560320238668683726770823436802368351537111377768418204036131100169359378337896772525937472023055631174535705639676942730957275083180159643415706446741272244494295959920409443918531336103179671486225559030271091863277001145351915641711573263392192829949889100784913145105357224005425027599000168948704828517504266713971908045096729312337367645980253783952528114897023982111129123295076738679662295631316440046131910406698150822216714250178670050991310140168771925575867492694840747591842305350535810184596603759617956550577143122457681445056374311229994508954255070830239212495392777334598681391645590127091633172722437871725741099700804742698878917243668712155325820690488644906932677387016468748827939039717978303772960696935262986691400016681807696620616760113557294316751026144460295604062716879226402166660909012656405069640461765764111712889458344109050784141796464873362473362011800432181889699728620845746952590790418370003945611674814559091649312044765133010560127805942290225728137262128277451083781469940512115741500820171871872142658676352708145252817145010655580139887687152502640077141325093327716613491454744500301826695920275601416402705894269855440558358532893962615296938945891812164699107077871768257279896515307828462947639286670511485085265957761552825904399316378804425011976922315937275485486222810897438731465857713214222060061999127350109519194399846157263504127309195360660732586611547688613833456383101919322787048876054015703992472237875323139154820628701574423702057423387794630233627407105275489869402862942234135005934563175123146143538905772645239847452193632789292020081515797025324305596453764284585742453810233797706197111773649009990143809558952569475125112222500914984194555861216109034059530150310594394474736763854611832018684851501652084895613630345124986054397350221760136458058696834530988280034526243432237913982768847538947896630805030262119058167783800030181147753605622551562795842130898447674205841388497132026750785628284012474168711819151273812806170978903239022152218055440658665784831601256643977119432768897916936659165171792979438016019683186260081837759190450524635683260889791192612639854275280469375535429428448206894188105373164077308052047053431109572540161227933791693135958750771709090727132292049575001136108430294140065127731016240457982051815459432108487128782903425657209060027932374960210837680895481607530491857053587038768493549482561943230115177197220737924100563023391223732852469728095697351321578213951855675430564803064003798186342015668035448363013920838609278057147477994635308518689782090971276473539691291756123308944147026764306888500043641046285662926352449614636139832688549924767443784495961543873276901504861070722738074998815214159269481222099740504052638137916466589332132518337708653374159333040565748488154089088608337526455534146745021202753877369308635492534479311281368864385942663960124879699609023555660594108908902188754554841111177266401160995642789665422780671334556235592221513449644162899704072880233585013030536684873703255861752785756101322778763512497145583442168151238666772362429545367183934842380870000510707451981574941926491881386503201807375778955907623492908091625563051153922218376435280209503163370901819192265668001984617892804855075834077656294617684276186212549570821238795869916046201885811094975386216359838120975300993257918420293070239311418327788116129363757441599985887372111795892680528072490472205902476692333669507510250375942256092950347511190140296407246930969603734823479909768891594953430416784524195602195642863206270021329195763059690326120509013072962815000886029297835518728334957555757633656185281261701427188110699494690458586372593043177742535353084829121777970574500040114451846765727121618849199327612253532134584423086688693049691890887633945482232062604139546488862966905384624769956650272178953882488320840981917931385332370073349373169145924549511699782090247592929067336306296612047355676928923604417747762863314687776383972293583539488084786748920875648032701107842440944133604125908617614733215084923559491696216813295339012987055965840903030355005341785873964616859996107853817067946108695233801917726463914509757171778212946122382278448498261773635044880205342003673058054319906627532169283843915368771104418227979112593920404299336448745624109585643308517351595286669862715453361946243922988539939751555868861612108323643061085062604489108554038498167760441446688241843073982316121080098797701804013111993908284382179884485746669214303530763231073939328302298844914747795129585575102853395568419911162159757952843352776098131255817731896115052165932847171646127131396183332239134189416118303113776950808297777072278166162512768058756365735007048499464842889455246586616058094655067610659243013183728645017319369694770613756885380057953845555385724107957467664771121936713671209624446217543716575888532310444091263539216590383528604158329264322645345927176122763996627900555072294493430187667790943765346210071462843142570973106432268020774440503149253042303906640610341532970338964526384667738084426524790097261988913988232015918369050885505313750358725583997163296655636767462644707238664876188744862733854807955001724528181426431710558093971903935859119699739120209879837423426034635500871827913864545373357942208192355523216295988156210282470202022240945731248579884303245878920995713245192886043055841658504555136787084619095656725174181526364740648070054384115028670744062979796111936059146202796094728146240098448515120455919785530618290156388679497725820803395290401387053853684826223067267994919172970545056718338325304571524230368280751981444547192751650969397139920380033524873464582715349839125561315465612723275645612645534369357479729991724083051720932475001446243460903347010957243703391653116547058341287042965576468784417713551969239376585434703547219573346230568793272398457898544101909785079772841912633443072271078479414303065653346305432197662879097035326708019275969543012856581350417243317302193290959515776484413689213453645383548571257015489421819643137863872247376881196585788138147356793667950319966418998027003846614862050435390067652070375562202393267840661402447978111696965183806689808371129673652400840969327899029926545747306338236488444892590879391544663548977509095982161654802017073156218976890512073815834278972160658563076229328058872573959871197214310705894134230854179714072213718615355190851640563438066928022628469561650412210445436509877922100129200508410502631368193616714520255865082689880361892301440010385203829775172341385021700498614424915056697848472112254959902244253892629581247921818347193255390045288879028197405273567584397851211942097070174486027866507080376136270464861193475804760199882994468718826079981424392355808817966064556931491433140150629457028835389362783138245616940776348094208831712027806847347460394481098311564230554622668049986265600890246310525768710865860016796891740781053021306265192259468201131733653736028741195831946281545689651427898993695459607278230346132171826048951861989754460310163567983506323636351560679516776268805511412839414805682037277239464737349188020415398433440662876394759884270731935492255808064361606890366603931995888958843472499425352856644571734357175900892814749057578837106708198255717966442888309293027747289189272278863952123941651967089557178295086502241864522265187053728834278903214040398543055874575956517516583244068888688357742455839865756839784740430566912265938803750523252623894940575625483850076567963214163126682820914938636500287010366187474242893688768364392688395117145488961262065198711432815371427468789900447911913667375733836533224053850198296329122190831483435538898092949298559267721908750606030895147293256285859155950934896520336695119219286797177250360122311775126778339611882578879368591659273304589575415813172132911670290284665807325826900940083491844056443608791719120970092517836328695777518725794845867254413857528850774915416219196567376836229419884772619780000713673036776508248371253204991606702107336364473560817428787908409940642622214533876521928790839568347764259153649134264799686471146453296881790111782405229303887031464026229719054421979889431514999726450366258291549809931378850569503509451013499630978904637702831679877169538124807986044128184283765429337813526584123546421224148283007972210982090627475917562270150773664760517404287660741846715260355625216662610297006606568501602952412108908263520025455630620763625252761060517969581281959834002272743280783563934842570233588240780455319937339174414037683454605659127179840580557110572707745716585392452138663911445668634102872692323351883311599446962547251198041286712797878425757941634800366920598560349403103795515851318712495194716909076886765315151740102332995140468163455429309911024046596128888186189741446112684740345714609215010408853782546177049779407645732900881273033646460399293660966670116171643480303528056606395045203385621542585820951342319269744690540107627156150664486551101689533461476522555547765488604126048959817601753556718662172279036474033323794812065933932894368273214467097377226048858312917273269205241549451291599861071041990424295462879506253332565524131352198904080398899295556604406373695431292695021486035672288048927556736951678095825741162077659686541631618234891340997632213024320955922097153114931755936905282032853592908679957578263103161031637660387117826027242631507352062570812973898177226348189918752116678021698894942662776514096654169174452951441394499040919045734536471560229621373576078407967823838743126782995860550536237634953747780234014961193330199039146215637418316944099848716435380277902177352370365800819009315109860008314960296296337842170565865088168896524205663710916947987654752333423444516115579975810079677181032312313663790646515376850278689382784706343370605187352723884727356368684067814128722627449236046134501764879939556418552474833059585061929041510948461864753582277202477198156922654024147523419173636427390339776030745867352400785131574935237187606004886382720287767135517399265264023023442358974862454634654443882711781310477514382330887261583659713036845940336272224916943229075173324904147427255661374403579400162826444575864206513709644592652938355685685944600273668148109167006616721361960327373294126866694717465206634115423576519843642906772200164902971961368268091476567763859958737181767900328711623414478480283633608041853353302892112232648910913623151857610111409220087777965311161007461569380288031636486285415699413268179962536127547863604418201001753574612851110526948643425680845326229402044933413434443753147581655178044619289034327424932986953765140461414990633187906512404872363847868822261110411490362846331222786870396667052314179876692444293136106656482268991006895662373320126020404742694052263237728006311161936713353815982596651665586975084419656820066743354484651531975088814589853243544837579018633360878548252905204869019180966885937787427558759442081110869454504217819692661305992104666030332748759160943632376675735176167568055651023221233477414828377669070978713497411320634248369234786611699159887798892721769064947746024181725792198083713536499240730991774545142848702675869186821538519472703131300792029454003934107876634323799906001409880833037164856573040239045871211321735208314724295658703594188996298028967482992292720409737847780047620620120077533306910825957969558301971774938128591339776642191992668101480780127151064843862795107776127491945051509143201867350707163337707944868174400609284589724037902411453325609500185085250332644876035678416574127716340470874668398423478705280759797405221804722497711040497450954476849939023442805317745708584798730407889951594354993841135935520582425697648854359373955335696072794228425043656408797449669087893172357251573246708827050726262338395090708132433181364334010811236589737351903741799001773730995167571245352610838839657791070807341151455006059141055096452041041613425970746392040644423503909700072910012176918982890920380517160918020885015197752847388945963988027874336627773462966323657236107920904153534657448290940001229589700098390239575326608328847490125725452051076929068338112383918046995016647337548381174548575477892455120567870414724475629504910336188971625437786667730648532594196133790518172306279092840524071330179507284495909349193896820627926915027018510560050855711551650380539640619250395096821246710117122079802263509797728257014859923411754429468596000076663007463034118537405175213002601056971432327953815199823970105654155738593163561953655062664881473382748693135879409505050971567983498719070479580774226434502861709280331103209724292971511762715090108440300126238386875492112890005318312358076751435197430079393938476384167069658729425393868582568879235058665978687917765893135686605488850339963297724199683884294089339023284690116413162025165002598422579531291276501348888591851737080627879653684871202566268992601505427216119512679163060418117488807529262799007782487412469379863379665616596109778534609709419017283504139417666638505833450740959064195720309030037658903994382872455141000659782121853830715707018838997636849140791287002923910537663166607747757368735474640528666443978232693378351152392814998727758206860521795876433876696333537384312033791371707485300215420504174029520267352514562285771395226871662401384905254795851891183015995250293016690270415994896228293903620352459336303487234721050882108760372783681473602286603996892791570802349529805832663819443949740478097832161955891238309885010545309746994911272590462056233470441281218102286259584052801757432905149605543590425386111976068987351851841539921921905897045964403638573634010571146315057965538819022226557637657198922645283445856150599469187513455379578301597909339661135614315094990881344091711032108611229357113112945231935748731681996364160261527968127742769836248077771428681636862069908441492719596698646504780563660188838737728639126640180010004270821421568780422385896846420394693774123029329137731126109738468662848619723977525382224210078816524736609017225876788306256348496835504572489223322339284175553663535870286133050333993383173221106261604694354324357614803067776612376558772540868634178910921669926577565273037063914390420629542518709841218074617924327949983338895935366140951103742855124325199521627908478418620066829400584309503383474273014790284169037999495596082836655906408135484428799225354754544212824619888504644541258508435431391676216177371263118748525806718389480383875656950133379713842535502714123857782492992331891475834357027276459498559150846245281108453070342444309247126682758052749934100618640425864449974802352634394803903391540916593376801917759930249634572219686559225473497248407054129799824275007846334776730735775505524194091798282510483414292129872834660394534015059698853635432734499127396196373127662052762798500326395914025464118881554135211247444230800061991245253391585129555178398297099390291862336654802430327861422753258850878913888863925807361834848610166894925283170014224920057956541616738740127799178136976973507279645519211242758574556650175444010724419620911640428586419036726239733208871641236080992824579111323670197997174302294599558547190527720207195148359497558889910696983047359083433026937513957059918060953120440456995251041153282234123311987451143602603494117298364073939858817051190013868615279302304110780450089020007176706690692599565171591833756614522576512231266785433754161232107711230002146672922711162067808673778840136496018177791100741578285792956568302647923624412091733290695075113791278780771258949051375076796802457186670782086408399884115123923187135059083449829084997132978231049905554420690755237347305216569899183768170078594630290083107168225045073513768777719565765929632377247486000007703340651282186056427677615079045182869431579135805807002322893821820552134445765318732666398212132748078180749664959253316393333859542514416341172881455353191479896244055791013571358859698352310464290953669218803052620566851604305292383047953484553902718374308675511953875471609357752536581635829983730407541808238022829598929085525406163477072494225704404776809568588944572866516377209228318402248520486469580062656290002377001878210054400857103429758557256065499027920652721482543381619555860915733941992830115607138264215937475175665118070984682881472152481320013737546517857649246283782060431948910575280172241689263345351911398230538586028810301557139871129701588032447188520808170738479277752708592870811054010234017355314733667359077105348825164209299621453431321434549344386657638936408033993663134127721644046796249014168764452687533158610735989271024892184120430940354955638169262482279864897041764088469640633430978051026684705963346418478199380170683871440950793890079975935304666958240626868566020969439809481786771754801639286627113084934135785500854065158510763768814473215008914006668226724730941337925102904361275806900012790027679390187873506366210123195593080797634181011039458712733327320053523648296151764253542070758185932561944656188270090285708778031148647825856143738118176294493078262387443067868124340477010452344659313699298559694504002990405942951811851910676545888753398837546220999816534133743587027293632846991937044914920031579810359868435105247489478826624473447040859936682071202903478271741585886450180576526689127080334155831824418325453079690479424035680024268409967946595353718121339113842344051559176824759711325110184289004829899997176393368276346844604170208506575474725944428299310024768878143316386331694243150585735475033441464923753362891784230983817813945726463249507480862970728024122467970432078460702150947774226588621634076487318424051931454177737816011297398055561609751851051880645396571549739136746154616483400735433905153922045991371946749172113997534688454516215260705010530257708595585578172678056284166770127910989831497055641900476116605377338932646381165750335353011119965251057716885827725090691838477935846145155802549949506775458839816628149411930267549928024768179309213747968127502337743393253856593446545105340673977314850972141005381611534320221568989616079667404131380510923598607543886697744286296363149189964939923722108832364946425823194634551735589339657602115095651181191467460384644840742178868781456405884432060091140787065067072182563837384324959573729347456681779835802397445321276146196225756378103291175194186201079022163119082055114806757837541648444417395800381127246185112557495259912084179704364000487917571060251473582681931832328210436218747291385767805641826128121525411054975987085200919622615903911130606804149960549496001627221410484488947341577451362106609458625168106671542572353987301060765774637602801407880723039250661936689932407367221712867264887989773506008238529759892961511858152224209072092734459096641867927109566247468050137505104691905207441667615055126334449136881095701018520671273472982766996488799344454060010362660233512613686656884021653264972546883016224662718449981439121926068617795292988124702842169525189862117306544808961903279119759170682558684002760628331875160093349431165115601304749081573495831616419024536235887481615440679314779754715291201199401665526211174056559340434089050760465564846425759996623094746113259759616821914164455284892373217833367008190507773579474806230708313283923240328493320735848278352413626219491956715724330092890156988475825600461560198218950302005709416546384081365607554620523821469628567665802891749008011685016670221665195527297242673905872248477035134345796387461066082458126815227212572327840127216976264464337224345764956518651772922324597509229847358446200497191663892500418235593185090634807981080793379956964112313963674780707441352076007229108945453467477278721018788172429156865087267067498659192461756488613381872053394739617342954612402201209148485358453988818213035243175025258405743427968532176425727917488792060491894189260539360585102162337016829440920812487309568512802408858405096915740229113261469899646309332530891867786627708355543982158134900360219203458664532293014148147194958612904092605663367679686393511209281493396735468621074276152155751630381967005076914715151799384914274088538353037847747549194018051403964584879963583678312711289026155842230880387551784884971279683690083751834382810358953121921356973080043094725420196214902628308915151941655434864026274526537453292968532012939817731069264589645626484051000848430419467977123537751041722333459738021500996368938003571610826373353036180909852539671844226862011019145854287583102582662928945151851700850174680782150030662972471424619280818038652467944510279841932413083762388515184671284970138968793391371885022970894228166296333328415393463337267660336192944100361731146078426571804924886441996957283024340045259839064085344715445226138562140544976460613575440023918054481354765815467152989604558367647660468757779198612534804498483473572705056092879284928214909318165139297127873225358596723211881338394295058851436359511495188346575397409415492008945408568933041077504974699222825402265350310532664134713849193471169013222666668092041258688359951259030400964780301658420711623240500053336374869570359387456658923585583628675475448490022760192617447544209424874621404454581738865777761843812796793732618074315207532714785858078033247149130744560110615127904621304040599528501295557897965639468318246866940991654288282900122240494084990394437951163966634443181476370462140176929438837671239021485110347492236960069279203444247481588890407813453477394400944826306429605122390726532497463456657063476281911889029947608591435044802511330776507288915810141739844158407391003717137077084501684728423753391885327086551905280971883788350858834563419470888562726201672121915950894850470643040489915159453748073775607809161366645798179564812762234209663132943826114209864922782825422458462546660829530835222786688988797046993321043594948103061083012325232727618674614201732599890033569071625118434042191201110158639023109435412034630736836868686643745330235069878416814189875507236972437827675870704373600656678405601652261933211372599866876023518247634318825959573851087675036949555149698916392763896450647222898413622828404749188142844926436026073398993168536692841847380067423962439987680338162627710121764386266166407888839291170728494273342151172372336442000805489995090967072856176744451054074510641975293217284303214512010991008264039220686731476586200580856385836281393003716568387928865223869186542013128035366158432079831635186514399192261159654175813715578784873447814190373640640690290210744939889402620897740477704712633235534281188404532755554444113046456307725379052039253767202725054512643658768495456559633490815338844295334822839084698063780316374701564524702415857629730345041910342091438777849131726087824659114403896848152526429252366217625769743402596663195527161098896775921447583072207628770276977650161563952413220805055014031191159193350066422748741687984633269813267346967890265904750834855590535533923983432030461728127123318692170335864911113902859200713939618217371974755680074440045758027529556338953205787799504091491150313874488490033782404449276180991575234607544760915707632125972502214811367710395121631719381633710109318901375593877067977469988669004456797424813454407324122598174795835885078995947525073020261989408624030037347907785374039549342301157164147930570321356581383747953632975205600848158119953613481102617145065463445840175081530946970459941649144073625357717419053906966488725029030690036019225221916849405006670129176761504461107559044002168108727896481205168133058513524775745159192948768364485112700178031301665887272092450551993329728583072338224213741027345372440488463314025635014037520993052493292073505369566408824574185058090045048332980165413105455352388854490797549452326913602094875650940053001452564908995892478923184419201511801357582183522596269495546301619473952110584113568467187464648056253447365966124468164398367942749292359616643781370590512104106646259384876194845096164689221620349026305441092142094033253066470417783493181373202263817897884512367610972961480003637572865477588540635173360594971387023796654293233215518239806688020303923680096168051822238308371789894690144042401056459587321481218705640513174204736161815480776906550673954603953372500655063269634662983720204002285745591474828897241256577170228800902825882227984194721292732281712541561970279991993271613988869302338380412162542440921993996443037262029100959213432176887061870392337700931768678148184376360616640677809074579659667916322907469265855847686859943000691772392917990758920929425688107073159784606307860090440075661359604966404083418438308362451864299969404430360522230908896503950304996526095632457854381388124532185569633139563891484075037561619599668006977186475524355030643474857669056408833896067335584627161157501567518609263314894256534908624871002759661230190020627286323589653370580356386469492303709897773103435505906079803835917348407193468471523697204035837508377304124324448471862388464678117049801127419933932488860042178907089702379914369981107098113866224403923692631736766732668275571891080312525706306848315293347737162376981909956811014887199583015356001709299380286472455855553778951478982657112174690204022091814675933702843240082683511109793703962335407626454755045519895917026595916158692398467620074304240318198704533816237669982562970925074004094726846830129487750325364385550656907268195752516720515177837978339337212871303672881332813211329660467610131464354232907532954934810520361062210768945995475699648801586416333408595675781979347819007145757239912211341511890204271658942349461225573419427674846343611188175523425375759935741517663117967637343651182711916542956990783323762298996825675182702106901994952450097556558637823226917846149784032859457525927380920163338442633154665914363685956032550981215755834162335307331042584075862855572815837906835801747476475090064733774250477698635018290898693737283597043340092926963290933215668403588600097330708502064068626719501416036996428366320251777209525033273746415200121067074212455075073859375112838473760133692882411365518285209418624291637320986998845921436087163811017952274449125647958019104038959028839610506225545908022111351740232372838341061658797687813574667959572345457237126691441850559744851655663607943051176154452343750148406739221642464684766664926086967341781859155772356556500636795302700559613631686734569939898295912183651336626411006818658995917669518288156981281906300915992570565026754567758459603995593995759894538953333823141874377472241032985813738879518971974175639952918894790902543822517457628513407167236147554128559549446559140533270051514344629018498818281264910714818566642541638821597033097338730361032446414133455104802038980028859753249866927649384657728490601743137822289451935636623689659639716868820958092369517559527243356072977694699537943483436047034882208568972537041935627969338696314042696473322707671102015482322693279729937734529256200566157736146300282521353683202229968554214916657220636204232917376506473487910886201818781795539963967177041186574170222617957303459993988130880096922455996623132743506119577476511661504051360490809906232039813114302485869785471014078572366695860919728156039686302746775730442012332329335243024667765090142064430623855187116870705516502361798365647009357652986246293683643096270077183144528004419635622069441678051690723066264904702906011844568385694745336680196941717926005629935795200891515047369221797453243309688006903275161719542655042638998266272880934903791719020205534801132912942134854633710866895402318216943128325331497844061500873788555977669982173960151520562726331821151729378051109345331299162978819475489634455736117335432633594864129636777470234167609947394519214710661061407641429022874427193999138923777206139497781597835043974806584476009504899020006147744684913336810696203789888580419752514218174005836149826340746115718355176686593985205249580312682489477746333459154557343308969320761863208951300070755216395554017454018916815296244462358289663074484182585731910728136749497694678116087115017753757797379823434376132192810065923649582445001511815184452701714300848038878980463801545561781531492071402912520225992137934262142127476066307785241177812642791948942106799806542602215214674266819574891932841821599630063509555496271770856680454685567176950348202989299550355595853607636318848801694702049398432404218757810337344441528563266399574834156404096599847850373690260264044199085793610708139598233922324344120403939418323848788854691715636914697302716942293948483554304490272021509911156330262133533649400900900210326324775493086348042673563172394754697096353836987521325263606529554839922254168621921324604715105048367301964291910977076104955472939621964052752193693470556549684155213557291240729225359289239370072813047905045480548165758421849598477931856531063016826685631820696684900391143268036324340244958709554430315366395347139499410122153363516698526263061603719606675977422964513509222431731443105801316922904291473020446452449927859768461093794129313434434571257222864894872074097852130384212206121748840918242837808855570888086209659544406373116860850782584179714585042529108861723666985255107585189242404710591602534680761747312425646401198393184588573112070956949664109618351464463964664118020920198777004681098955765650783407066203339776809456913944717111664437923474684351228039673221941472247859538157245795903171303937605024541901802299866445385922659927072279141413537783535063646153100795999201245780572062186358988312614159922414949907533407152973602513226906212875070702935154112465230461248592891088653008993260592607427990585342774483958116902038727031549290053869234557272165117448231512769511142874438314165859514864613112009883854262008602066140467914304203795052040165899585634342244774179614609616149072819500169200127834651180811005267725154611026933356624181561912968044751122525258301503516087456861647210862831526678980397194254379445792515997716856657245264416363056925369024326862733087476576478872826238956042441524355739733507948742998846769872826757290786550743198567161220069474654758650122669894239519344053708692016216435691140528524133543634013185722503042175357131905531135420506335387056461957712175049512243904031985026241968565709726136551777631510542619647086723766531288217440088324970249997664442548983964558617133254679626432794494284867384000257703461687550323844021183620250358276704161997981190619981624592699386581132034469290469948526111588564727587014322447682764703190915072506575074417139419714646742090744004288846810850616264629988209064219178443060193976277395781056127181830145906179598468190503650593594937434755509893839431155796025959637276627001943809742569021576102175672172950234317881763219564350673857340136120847043039782232726681834730691086579394308859871882935515456119989347784153733165743585680972783878376886295526543348915694319547102401821491805005159622300278616520483649533188243175903800323355510645321009003468668094765174861752643592189539321184567231779056745564742709259304002277790791306680141587840630747586860077720052874485548423877675994753094669548280937820042188002948799581674645615292692408356991991832613885941937595342772109487547189097826916851044820659818042073484334524330494522386313229446488159054944314430424129981428074867746899895537151199673166757369381172196910282061764721423575140999932515434810174423502368733195038324752653571254529759928405902740116734131564977806095905718643629681297875055140208364421662012871707905873812683057610676475643985692059000249478792072295767853509232436257507083856012450984979867389751348862728626101952629456669125061514466152088718183247409824400981090861814531309839872730513024629854656521463624350303806410762653452421550882181554429983836938278262451410002157043783866502580947385146315999867817777571523120515662503219078880905061508033251894907985296726313948051050335267699115065555489717418861538229633476394613029532045004087549256937810234829049436582207981756276218720619795335855006981466187928922837936070434018016759079323158522803239347972683983943637420458092921521602775102781743228056216511693262541039635829122977472262635498649147573313923738308527269935485290393408555019883091470522696386889573807811474247456382437473695672546245425304963481006733105579200460879284523003185013181182699490153521933105696725604188852030197119095312416640125945110369366028441607153620981960690921966616298592513715650864192995445450220753895486828021532966321530622940280284424507297325252174992966400308227742754672239155811033323298082759914021384689273967064762413917804066820941007457827316926843044416642720562159719558094882899863314411596987552414248112648350376071573054779162234013414968123945338145346560669952197302723803204700006019560074053516837003366532439954319432868394231669023717449496539896233848337430332226376747849106548738126166327764313857832381451535793824816525085524932663213618172124679452907467150072802807399487357699776954416259042467455967991655712725570735105040641418727871621047827717819791870643079793282807173800097825350791284567644430128416369652659916453312351023659076717666604675193459559732871769761051605653188056744351155722983031969446805160239053194095291548668746145000825639542552253677294451557448163707331259894952616537630533684186699655169914982357669832202084901076425585147885136447069149338422059379339062060746065169320461717922079724903773802543099486120523983860839703532427854088500690421590060476056361045255287162264089410774416349898392145636565211621623737161347039940364263566230104797597651777465008471382356690294254699108510676787736182548639943095021772070257217780929533943668662897640171047116890217833861368826572825387697737835830755758698083789908759064064406768112652154304930863730099994817756451585552897787931928199436877055642506591754003086331184023265763202716477705073391429850899861992519694999932548347258617324340874373831339442015851286967755504365025107693395415717569781191813443499348096691064888304183966121456040116137461242632866514811567400066039569849473429633243147745428960113662783749142788926734971419864505101794341948264714350309770385988306860914755078856940342961089389150031639619389763616565536497418331295645017863798865373595857120217625904265027294994800012983366178903347112979404693755754924086728542979356107022397999427934215525315522968051804961562672895226951855630883555789097011179874922240706236526421558281039827138846930573749813377170575257813488441645540427826845345543034927177415039412723251294866815759820366195282978772559513408709670944363839870777810012620492968470576744020785198887801256518973835017894925083100056338544329558276550080102947634690438968663982017880462511776863938954705975907872199472491079251674926752906510989404695332325892055412744915962447884667857535523932316049592025217335291006548811261699933236016589549183415675830410232520165435804901394741387878111029123745920145018753694047009574655997736499347492133234722481282795395117450043085331161679843491809728747961028965356139901233136921125568740003097904271889404751609003518320829078627922340476385833964713566188264298744723887340476108088856269843549587784436956207763765772909162016746324721208812640391846944330407016475606451693511375798811867872999628869395081958803813593732920591739407354198292307873502980983677922382647926882612071347430702386305672152000340431987732236070646077421117673618976015515968993984627164263595653502198153989708305427462234011031531472839813322768177087920179159231335245269834735663212379428751832288745388867509911463192546253471002629209187925146534578477441596082083803957544684073638684798013185271134522466653725076035288266795433221324490704202865650376245675371588172610017120223179499191213713328778439119013508788634179907574743695562052667536464722150443587518302370547217957975466526014061935733203069036546564698668041905028253924254244902100586719633242400692290956268138282692993447680816070050246133343303632766925582500256212294759114481459168899326004195660887956883594006474807009927312046109002295514653996592901604372507500215406779108192823571725979839146079870312687742361307445336222529599877963535826835403989417852608828733253574344532892728751021030300780628004425431965992069211187009695793228291409996090624958923355852333378456544192947905106092382560224988606191685323872204102875619974090617818371124226311417218020146967965358464467686522266614116847736414566846297275879658297004231369321717822300042991671755428863895810326329129808815285278321697675623193003898493294223635334298748928254455067832579923840353405941184135578458308994184936916104950157356724317843582094760475729975377161483771107813383201551020918631815791106786869806194778913094489794752612877540204438249741800363918370837467523731795048021576363170224238095535814157717659463860181377566354959784920013700821995768255636163834307677443357572169208493909616477148425084525025118866647275004818644484838128792619111409405733781917481064913080126242773408832069031477119745621258550547340492956707762881152803779925192364747236097927812694133999769298030124301431720711245380564048928716587581985451108094744967834278472257261848014776460160033078103969239739239554096127557380768959806303832977426261573411780264535989190594218877724704584885499194066412347314650636741416851357449822620262643680046811679058347912067862661674309122384991745027352674059597168608713019691483761434993395951022327111721924907515523838911238874315748192628885073936810015186972635938991715602530097642750943099863679441304230321704684885740855462143111532415285094420322443708035063663323809960544082856836222088001065530634966082716966454639821460995562723093055657064636544962697441157723910023927312284958444701493553432174491914432407652405002445435601293159074396464318385645903553588121515802482276346090445319457905560554312312188924725111590196388819365173549113659168896244792494459008394845605718438941314402232735447745345748094749841638407461564349294719495333855309726849181669385252526979609580859205385603820606127294244174226862359246240185740732251579731698501824448861470707187278782638497041383619070192512332331306161791917169952638458220061419073295152065782672568924955823274190135281864566095795589411726251276552003863697431898786166777670054129967729309582740106770268986056427528381489410950522467481375515907362009832196110829843655598289923836264384561180015784478172452772816334318894582492808199083348415553251694837913371555265403297969889657254397966618294830869933766119463319390711066436927189177779691813641753860027566790803862419297298131254110977253405543033413617444271763427377117187735158472509656522036151297175654090111641947389477692009668000213775389124580578957261196398490428644095475181329630096504634837988878670923518700451255246068778218834643411308010367903202557804266592481473240591364419092443457263793615566067842579438059577835735382980355304223917329206416060978377521080065159974862000399556656758377856084653639870875169398130645723645579307658882187747087038406850565952525076304947551559197503449550402030124290304732981268582085208388656984949035736556772680658099723125720816979312509433690518861843932043139803350983064815521747941473715447064190760717874175662070473386418924969045590475794276906188800420365435690671314593633515564965539910118909904725035570194939181131924081169271441476395402497589648042806448798635930777629448228176581141718652489372860889187304476926317980770429045781369903673062596025056440129006877215437186110309853280781395976004262997638284024927102373550720814425029136548845488171666338783826133357643278575464550137246993648115400788033370791183491883872508976173858025404012703627959837490718187222873863889383436505136244314172806238701512501769279917298194152883031329130195519345458782116273420083755383945366698010121571664566339070397146136399134752908962446312966977939040143819609058920253671800163604694001945773864892062013349806752521677019544659928724208243563904656343236724691417105431824240096324371112809631409695848791835223548546492269129639337374845306842535507402519989665697847096900051528674584080518405947165065835170500471648962438655904473889660595467267940395698009776475668286681290763225798980987973263475220430927874872718267017858540275285665924804767922579225681866990952143547541487390098493762843389179625435432868751857477584128555869221778163893405577410813642865035964959978250554828646932649599419985841366278509515355990783944439818362213739042964288650316248494616220160696839905454531548918145152539067227010841219013241694547749439846585124423099821135892664953188645159395777743894724719452072319697660094869383725510234528277680665669434536037774274723963089542210797989917146062425453558540773907358887401496794015712575758798748294228169612796028016925560883276106867684163942716431234006134811388386500411143304598753597346225901848732410222713142766721864913023847462132434230283427011555068995222944397576859936893517154186433500716073303645169249530798113431427569099497244920992457806674119147431842576186719651720597536802078045191874677749237752207727526773511590221228123656770756571785889699436073738862107348270065932672088342470426900440261078430948117143907244453228880324260125865363512158526727897547601610041024725831472714873243902610183906840447424263186375286187114818083110059024472228879264633087290129633214041844613304788841414469281220188596263745674513947863068844704382714512751407372163523518485573590741896076215209329522185067914133198746248015419830791845844775701724368260230514961292555485431587505991059365471367027915264444555704914933195335290713215911065965190161076999569208431236022381567817973992663698524173824645463858578400628195441638413082275679432682020299093836293558799109502809993728593381971022792124437642482112673632467656331950652005752685535125371425382258717415659054007507219981786824081531301974144483663549042221976944057854993370710523751532936159300726828336215738708653335387978798873691107376421522174851208155455373369964218463977612061393447360200483322818448166137040185281613047245136144639255256011641390347347338176882044249339796101219991957489284526978828122610262824639878980779501803292850584095108395185276263249172478127663078076805474091032575713048996282454551926166539450064486932433195579802911834954761741543194237679551751023899845148846878721990986394713211576644638353660181434278695010093687760966724406554287252483190827418146522273613192202459438358958406830224965287228778421578402294058545604677060380149307779006631719870566524215521734622372120980215151553878796067566526874819871264370120496518008406404514665721692695516810763090713560166551137381898929965168398769452491958049882852437443607826522426949455503260815551674645054617798090535231066206459292916464347282008383914293208735192222752560076285633299286673887752389868310029053920956128112523629655258710743107936306416197213149364317549141422327676597813301685978333894441494157818827876439674630023868954585364322276073884768768750243045744233205761175694125687754947710540034528300088036476943842351159911248037052307727292857359498294060329157787163939106019825215282463586881374119878467855361650777659773121771601430974964987760067673959975392609930680075678796837424771451939118974431585616430795365167510695925641108737491618326910268630668725210818903805933733862844848382986863891360608673539554756552046010179009978922560429244654540026434133773983271855712306029761968679746497719430737836901910276350065478215134000009311536567690262233203768988740758642609150215444784689757279115707910414050476490416345319792042802215427031965734532680344377014203732966745333725135317648669999203360196967341057957221563086345241244977046303817581264507086680331400886387832396292883134548256874183601819118509796182025643372851617366378351472718415236857940965011121558448750448759543459170784154327315431063144582237948729092104476103906866887018577949185503709175699485494063464466342896141877058151339235316793659369666339608682297771024882738699563765032479292042964325110166130775165391139038135264757900520990555502756946380688886655048369379188067081340437271109355689494721201488279573375369719466728139890626068992427240109551749859221220228498771580162822209383793323162136413632051953284160909126343989365835629073342354735127447262935450905291940280462703214943281686548766291542914022435420505744552466881663084466307277750935051364843720234870617617909130609793043954338953979554887476562808525383984505579159310987180351151816672614497048332500946671236527287500976980725386858886918066453613271080012882368321582287682787331623239309671988869058966784456693911223543180635562379179741608787165052337293336821350698660543222793400517242976679584778032024728248487369279729303904024470558785962204496775696254905220087397705468642377344972032779838016578370805697733706244218958924721316147649107719775574972465154330949175642064367488442333119543961624579644351677861578596457290468878335080647564677378116326216148906215627775026193963412367240489664064790164171066195805426348880409569081419412968572445300919244342307802494656002499105878215332934626411903273248404949262787017898048718380751932463939771453181897551698404223289414772771549616729062696161415684704472454843347427631970407267230575422599643141959592071194826464699131121671229265776560235315885838239475199333971604027468446149455422694414759531198790764562628765898124935614135960827900455397734184974638899405267649559082854329333018596711879797033887795354301863818624627853850905124517188913105856614103353160586599247516442651297878867733755742733085877679816525820290269940144437879298172552078271432281832842399388258504174838140192146227908516982090598467293494564695124310984573865787317570545692960347549973906980930026929564750223086158227646605633144595019435622237077865149074307420796117627920343186507953382055675937164720344907411310766154473407333319980307383745792044738252834409082174695423955616637822341643802985192871343115818734896442924335883142884026941664507252728500912849517123706124882595608666138258836854001980706790481379991288938967505463913316550836452027135301906659223345198255632260665253457696900325777196203346261323078532554114189979916216018033279358324710904275594586237319375398435468140253076935711171262421824788111871702710690590069398211493443540290297151338263453220084660327559476731280860453939277319846956904439208177815613565211327748818965260199910975329735433109258985874316979610426609696233694596926057904308711415156596004523214033457214849959624740810405614633275531204666024577895290568617996063484256518145852114570001225958552296189145931334086788197187094669081655972838007421415191128302129473397391447120435650748181351397007388131605889439712335657643588386099585197940316103559171306258907153220115482777756888169088430707159207619850384652447910049638890444499729959089562789523486610738246918810838646756488432174681119376824522944521521031392954131269115754082437971579502424903324374912564519352276204840582281704180495449919727463183931605539487729524833763826727358590402529196958273860599072795237578353110291663594585796579015193632416237560747159939750496010729960917818290477143659643958529440776430223971352283198565600864369757080144056920962412007839033178184497055994817227408121716685089216901973873115445352792509448175980112494457901186563127518324460160098484929520300048934123232299586058757064193538883665290030754591009622536350298111570903513494232056832275073778410959029632328724534959315813377723008951522695591495735290564414719324986929467668703637242431338450884572805810327568487947132895493579404106691554593177510630367614995873627768324767037827110280793097984734400675535118015060036810345129477341387658461625149142590916430794990391553694387357147388312898654838866091251709181509062638516637321374993659247522049200606037755445981901176168936630763325599786212370599585706122689813457143678622739131924933233890873766539197519414522023786642398430646369318279679832912599178545750432444526243521446955747321079062649837697744428443024045578515536737240651168235535240303892983988703160354117721631012340981536439846889480047268811816275058312295708131328804776990583130086607312426341866126875016737987277957166759321161452233807871982518276379994397602062531657164034900668765312501455683176285234079594278678290651002683576912907166106809776670592621139724134590752611015689656431201923057782260776587805510200269552946896409710075252602763973609095638863652451836063566726567854155265770232524098272883935506651960537471999163255727732760671887532167911956098829995592319153186175361086215121596474553529737631576166080100658654785988199494278796636985188905064484846700465111403086037616494457342327624775927446108944281147475042041996600185188737157195348917791959418432625844781848860359309027790931710542927952439491435659505364628740313039601771545199816569200615597709916537275404885433400557898341106090876962232526773259154022516813146456901425776653379151658124599267649114265995573580393365797039008352467754347390144918889593921960620384401834745801335498310674073222168692334248516021139339474262932244184568999170722681729730139515848404998818943748625347228905989764120873665454837540645237538001959706943717441394225834394497531415959893377703957406868853099364183136327362810760651687882555591691698438820466999825659661624707368632107315299711956140806656015215550766297651337066760023277555925035949356447781564146082825052365350319071503619577356603761720412940811699753270304657838562398543987342192615039326485383535583671385134049207653575016385849511990791785275766162418349717391291993083925179882284146026284939372830248652623064179141635794880575293105843760734775733044733317637886991061822757428619354139879156272358908535326017223035523791442031034480525146920136694381225164104921006245811982111033389952084940932508335225804086725917470294670435671151781843044581211442109863870584087803075691230721455347549416907126356322896858673181768183193955327950537264973284738725597193331654272812171306062670729315521324211401536132029241130958307473315630881289299680142530222570800079841194058310346768284906766952793161237909641493259583063573410315250555265649561630586265872738908921173397094783822763588095352425043607331435911003231836315821534616591530533296710390521727056181834924427933963124535385959823888730090583836024287654542812793085352193818681276156716333549644971663892493910663769025990347210891219420852399628369676713782729554424679862691013753490840027770538129008995231272586090084443476371626336816947088248172321732592765701500159171440668390248468791761645507619522357314054782794141267608401455130685906745032546350221510020138371154485933634254322639603523273324752278435911949779482905631680738216299619249322676922390425559850561130297026422505787538370923917001922103082798841052686770645695907236792032362314496727089267823366344587859530436726450758099232954510335300673548336516657416520741207181592547331256739351270260910963027754924299975268752008146892709590927519110790318901994358850709807155581843874212684001673584859316416547449890037974816494564450480710728858831596903729149184852405354407919948986526231523071914424428060073837434458982174665211515204928028739802169224174427937840087523226674341089721474882758874890842026907156184899920669813528989924574240448651846891481839015580294735688842978193161013345442777612604649414974846536904714381895517315112638712642713812606103563797004235520571624878276957934814813555556743346920279142314546279204321351133393150115417774444240594371500232659617407728465246921415928009204530453711104557800018618546688274146667118809026301989059162148516073553587444114284360597476716251463110746937008681265392431001651023559665624731407748157572001236994005097296012887654851371869105478784055124500463070035926966115830602102590664876206067461103358149284374779936342323276048070764104999728935525379025743913912852324373687860670750719607416228982843270026046028066071751764249623475885526156184702411269766497767351363283924884269008942419977662778676133912955415295173223239844775836876342276517267932292424335782253486187756534300569303959801254399845943964627641463549831905512439637441821671006501209261426663596619648550429385039442765709161572453507495991422446492718311813694791668659912501494905391270949105119681311413889725231783205120570577218802402196360465613114154289508931034263128689329960428591124564949911246667745278747304369563245906293512237340473449224995156277346915833797847915962284916931197764546834163803967395269217478628901814798057176344926784912335224298318445231696849465561334256315829208930772032995458747342903909196470120145494829570753016008665418429140275944092627188734466040868533989008922692574578081258673714091397037249313795968324467611698706725167598741233952439522929495056070641015995974673467054047253191149977247752449234626099253036085548836766052810125499256897740143742656304224766393395143868600925221178701264637962959864673812347313076432795531051620404757096222164390893041028532714491155101473323983768670603861157262138463583236290543056346974831351807033956718607388413336959654721241897339931262215810988498836926143797013705746220295202169558335438898011702770059474747705992806119514453825966256705189466680774462020338037531087197287013249100564878122437455310203541349603661133242818749083800945160330120268765152619253308383790379158425260773319635408484424626627129584651759046039910514266900743240541043502555584240671906181922831202443934459917720048437743772966666686550131808074335737685897631368231116974261468414453450658683275909716588093637779420607324473842313935625992334008783968854957797015349774913932192406958251775589619838794782162990097238539845446441417891124336541586575301292835816199066787600120440598426969303462160115047920827963073352677194757656720539728934032585330794011378677676955632949706924782198371875282723668582132109306783934213214357547129461826960250532495815960298929097523092715538355077764633595802045229193856779633903065880123383813397664045331546211323530707914424618471041517901443602990416390304611979434524408181410945366379380943141505255044211862979558469799069860780496689959730824035312540364429284517507477827177630788437207063037819678429552167714313286400299192516356156481078295694933332059833439458107972370567637542227974695892260758862782624111622454859050677413849097896217405684722855913854673087173807551959515416133872126445508866612068941112040547497640301233641047645375532602212834409629412586424249246758819996501984264099346223455170410486873082482135519478401583988981216975377525300956614369981204277851244001225086439880606437245329561418623135309946071836893706269200800547851471651838455226455745989157861188839878809885010525954997381537506812965195524212313071303035794564368868006835853523287741627698721309559790074185466801361660854635977820903894498232087498826802173476075120917698314030074565038087050502960530914134439796748307509023356107630549059771370668639823420540427678344359567772443855192687039095503729594007213718887560151215367887951336482112669062630114840399808420747814727291396497059633025529369759546598493272290253474455986708844146701076348757964900807228943798610095152238974493403030059094846843478682203105507135541674861975330916452322760219134399317045653074548109796834297219138071645959888232396692804699202815312730659620851273581477486170779156666504480342040174351784522413304466683452866726424475254889731002142618594413158586802344087259433412911854265095927635408887982024544208351675999767184081075431157475862590457907269082938913148990530427465403534797808859725667399124143525108626620991491962834780730299238942354391670029440978788533148094630651857556490616875188516203527105318099009818085089532907793728047881675036754538034028377591421804153214748343765628406109589836527809395931984764350874662553655509336768348621038091422657554567596147009284938665523089810399574216293263921528309589046592584610734413454736491570977134927798790508037545243015359542023696386021359607334985065369834063099307931210518987265641851366665796247308045356259776207680024172411660887467819490959101446513650110329684891266064032446902510015604863117839178592846245667356726435375351208012275708651946356632957875285393476569443081990715746828169783562160645742504584502483289636864565911879471235402215986984818005073571183994011016807028115232507332764964433612006063922507890625838023963080668021385639121643061840472172441640010392968520083922922160740991540715741847160254473743305830054017774401006583445312362837237374039326334771795573223204744517544057308196458614116881375100814408472299451430731919141776678511745496411266598219910226599446469981628118798462296868037437024396595018827732905932012089011814452908681403752911545030999523205532168959761056548358375962117610077582289657834329343336199415174483300580563644215186700109303033482736137380257868146692655094863702511895363630205779900532654932504900205542510791419299270423878171094629051741900388847918138290095530315455265241043586436833251119949440496842325592440743914035169798474485369701557024586495367559113252978446760222020715025767194850568867280979042733209820082617278343949469187794743686668363133139641665101152589426231575537066026666344051820066865255482442545743438087517311616105175997861838202276072587443400620623577396816680715158753273509535266330569925624832840406438131767061844267925707861620427087906080241602651217831691415482653691509393795016052586566338981496877090220834651337211728710792828985255320132660202082087508903960760451496575096605185292622997394931576377056146635183206150613583390914131104582675314943695731832799366337193080681162400867276679136083562770554784968221067618620739305844246630084296290338315166647354174172622509607344365829666260324502560318820528130199395048726898379817568013529852899655738660902756153276416763479783423534099990362985155395631375205773991833467445798653405298083790540036826694736917553636906593898280519575833758294271896613005477804635388873427229668506667124121585057114052458756596654166413912908060351613368786391525796742299264762382902193319640122313455220108397591110382313111232179230872451465314165194667121790343202551093182637103723991583663646129496795811399069895371912682369062836291784506931495639726485859112311642416214286495258757892605334544508902400241511002400609525576836158931533674756234015851163734589351547592555554214344387111952178304988773156726431789797614944964018245406225172160992088458440094122328060576093089521874397194598505335839477554108495855303420782229803941459828867453775063656335661627360351188587626912279744805088841483952724418050587147757565401234059605516955701133576430276953926993608939441318539324211030980722800233651050240342473905889663156416139983650097549696132007386679079741539366643497227861385094737588203995193613008940082301120354926241046158248615646511663264076129475700142791623397298505328361909762440674574703811673365584745683589531075718065029954102073510853104633413238939851918151009563782296720848802271382743537763521589469209840966343075996853796350775300246131205111787309460539346737093300908146489896077403409055920663318542514647543476658433432243099749237796884777097023624257530373477947905105878299687808612545898576844236638572658936827596087065168188027405480079996521969005475669722053329256454051145462148028253770703370144985979070242879537104136951179261853045497249443082132412713658480838185702668316221416787195481595199048945267986294287661772642595031183806660969086547287302610999101950741041300761287472581368097932814750416613595411199793524727469765188927252594829023497657004824640393073321511818573279434164220677262079840016357029288572194528148338042466957403849412059949918571755844227714603100411191350653873306714624649225566827674879232073351862829792818659822078009406771795124410711341752973250557105099883990291301259298451582238764028975053865667386939547158742063559469411604555276546231581984534827843021933642294798983590697379950420894673620324146532881938640463360153037114413030505417457007359252218594069167167619001575651912538776437994952660539217453572755512092348547983142774036051132061707314699974324570332562471296142326067558831742155017756413707264022565763535922069657609972912843514332887483492906418026150817919301493526109930325236403134823136143008698717994370818007753427541827963560628989213002304568072533273985747099645567416131926464820608563608926538919706883144719071667091166009237271907935720615317008717528627907856898022522749596426261024204254824286477771697321314571019145345095249137270878655036628104801550704521242305939760331025871512575945727449315966677247366642561586051845519504288613009968834530733517077737089253725096621092754377350345850851156140771082890940759159004209978469500047587624436051279413646803541054393571534292916351418085301391065145706130755475446951720735112031499934863941912198638043551551565210611402813516019075184931617256080571520538797882466458303237455680106565020919740872804337770195807012590678975163648380673737487905768852323518884112660079650580375446028379986240010747182704321430886581943688450084632472305795962615219133127888489866933924226249429362181485737188154569301984858738741296787438754484420402297928181024624148325220423883912454858350125795928500683789478883686253299158572451102067201159791705909011014495456528396487411075958835216407192005836258464601887113333434194635131073209339844189131612626472125196417114727840768455401473276869309637005452195794012690065689268717557440569932461183120566957330859294982600957292424588443035627478954550101331527211820849217696193807966548814825335294770228121550288648513375684435135082467988156263186787357449436468454684764587154475014330586123613388263692447322329060972467462342187031320929218591311905068362513827282615000097874846724080523003358891845246814248631401490334932222024233629875817041842956921800997520043453211924813563213410913822077535467160967892118248555927912758687968404190818715212409730679174217404014450763185334074130660075530216120355478575244696920396958920434266688448578160338795054168240843971674418390151150181925831272338614437650540361139211696458529063320940917213074774766582201265790494798260919840220688618800060047580776611251367199128830331929049947510005470197083602499583350037320875147779973416211322493874754718594391720952017370152082198959885346486576927183258009273770689955037451508489437751221989662548238947394395381128955567882466021280721265304521173959837084457490498198742836360079471779948723309371562915632490611894425961366289602159237731248809912488364022436290528563165732729390591849672545883984512720088317707694876036507695070802936307134864975953827380569638273361108654408426750994260735709629676612475192849971962970052700517504683622834337252851753458059734684152505856843587514763491912426375298943631499470019455090837990673871366966265344366362382948383684149667632669423828641244396080348917095175504964410191053790843485671518643926132615455156181571817364467954815752090252826410127364940471560484011195687873425528866779420737440296002020682614723821553096739624473878374177977137837614082619728435301610599460143933929258380176692001871278952464581658707790079362372664230090825864631515677464064935442564917276670921046752852588118815970561240919615208582285670688315006152375290057619163016418781762317041553640452466657747248046292338065153994326299341795429511336587550415417986374060968839792663707232265802538025853549480438670836427863526946732663219116655112735208951556441189387666063520418147561496925621888625493774396546480671154271968504020623502350231476631022863974166833651329782886654775185823120510367559738229669137853285994825930058230845131399786834685722026844134847689685410083884728507639569733398442044773873612512382685351209323637482468735919741203643238904438891186217702347529847714176245135740615248363422413475844793373652573750863472233906077328067251720461861335244363811196879425342866101542710330736683726842540672739269417128539187828680942962484292118131588191035545380509805979745909487821953086998256449231981822172109784973482681388394601894800321007102852312489140006670455672301188340796322047413069542921472120765585095226116657951691014996528008266354578137299323431247564388447145777180873384792967997997360876562167404160298787293064647352357807990899215400715144566234304355763338642132669173960618023811483101343039974595250328831203238586583566434376442410672467755981597840687047159318021661013936677093416654044395951127500325204073525514978366102044940077452761584936121559922957331002101370924470432602385515604478929863356014962944384251463224503836458937746608565707454026800319998584523308440508724727517016566800941994405420973620870862955431845231552119049316921177442367793297791948042537631771467744379035710570433278492858948873838953306268179344186084809021978084278667730847035641131006015784142038772667738434422929071701265407120818762671513410006272725497020641023113831926089316036400361166385138292848747257218641529305563217921317305477799754388076957272414939052060263868457611061923782854575429829866209018320718825415735837392122452115329011508177838743494607095871576237954476050609537900545120322294756892752729526166060170189664413904523958607323659175406620481546445266966399171142908270637175074468421741631913216646937641941800870289184417875893799044639441367276736547066728397376905920363185245831244939348323363871829389688252110947994195263381591638088659579107109637909816924518880612216523076659102165928593193759885568780640249995655491520382849678904453639449651113008331605072821784405773496452535466061353825669251776150694807211889757303699667143172066749583614784788192938354646295941340415279711978642930387016642435684809002908987501186446597091419983137848019921462516768974985739448415143986985589260958267546250405688113518171705722740403318744933637700292838582646986012099179391469536519753387758334456687458641222423736727098365020664046754177764462623891999850618042012473085060196403569021571794894569851899289865757647110935842281134189951449701856104499130457050116422962584264295880586570554879796391834584976298120323538515150633786764311673497685913461181353934916028154819036413920521597796532084333890957297578363796903591502313365266214965219470650971614998138180891013301928070022392633930709085610869516828118390834338506418107302440828716719205443071248608431229310113404774864436247026791215836926836914328308892907476062058622806720459044134732572824911066253375769212669744821852087371071913700000691098646202112082724026500570396560485645495447321406366740339480910409874370751879029070882811869663476194798283121899872564593028386027473862753014125572968591119377640765569203762092359633405091920880269905430320756910493421691120577694599078788718936671434629781675104076332618604034595553052025758115388368535075446327855570659688504459624383355540605484828926088496579430699740634590255339405835400746311485721624292784178619718304719230851570045487774957483611855193955299679200894898313238147710970971040484347350858644726075693571491643671669263705912469650195668419192786718585234536683767533811486788906553834483795519482912983289483583804647727196121627649682349746143143077378529988915378205459279818109979950297664722908781878413793869619199671465105309675945075474558740208821594454204937531065380839281500713553700526588347210115180050765430754429724938402000375937905950750683964810589421504760725629652199458206117223426181141090252185575742345921165515110121781989093152798119835583679013047589710196606319512427525992455397526191909082922380132049370158393435404859896934799499335242570923532546893561466010658179274446722295622749330507935941602145916295308842914357460013414036641264241885690973957614024993881208974249249462399625018597404289257216140340343412904233858469433421116360737756279978570454228242109667286987811759831960139750897218446587313999147243030449294632895336266365001770427801048149935566592044909783498690906939488959747001786880468036522910643941065505466513206833120479782969721790171200387336379493273245586628002552117787705532102590535088804669362886772812376726015439157413762417375086406626007653851621798636283343049823111945925719331308844023339362342102157831328680058001100240893325326293941541589226529016189926698098951326540856780845312513085457764896173058229760779848129364643477976247554680380186101242867529594465930597503649293459325156832679828919302492627026216100304102404537092811609583975979221742572220279928095556280600018681437384742602078321970649795100454855424681563246689393128636102483684998717428993633057413348765293883919758729197076437840261385946752556921770831423241464874708998319234505115825396018547064040031530118540848050655911705025689321937361746223305360804641856572198394290633396083735207297940716899670562099747610279221661733462500803982941127146923095098994330691653874539871589361169038042443499083933408123417597995226904847665656362814342011620448633819660880248807319036992277422070759610896204422982874526108962136206527743412067497084350389690403278166008265341908909427662102798576929904064934426771245334670001589647758805232968398418698303386609576922707440240520122655249488347365439049360520484915237175599891255918643169184753628019089759913848066560871696978872303579228564369359429165241556799974808624793032517035060866499231104320340097646679922420464218255241235496210948466788020121588285955207964647424194144422171102478767978121925851830889654493870018361526206059640104325465570870830545057140604229044683982662835898273005898986438117922155628742965235554627975480780418991724447977999157569045693090529847094144075644069176148401267741142529616095598309688541797104236268205627026115964559600631989412722093528739038737379139738732207224681748313073768165642165676149139269989695211791601611766891829804609065893559122089897726889389995669593738777382848681977684875233502669267814346672052299660864713627306551379917040217591142451147577133775204299077006184430010981422666118085065963260548176952612703904667863411586456726000727684370891477008122051482741025193604718446154088470401354158341346206813423438325562988439081990100754349684715552325750287037201009498835924832811265713741773837644324649428172028875564481660099118177232504502403478338587317581678512043640921994415612670976802133176518054932710445384173475194498334289662035092145553519057719109862557574604848632706152886768146690646029862817700664505546025507427313620241271517068046617092398824784432061139062464521250249714193515325803483113946239981195811664595036014154932038939024193183565448574987985871920831477018937072950048130416435075538009697836036079743432243877535589225286526175126027253381915502751013898432578455763112612184428816682346036199659815502397569581357383492013041181841963635698931833617099888758539822895496546823865716515782685256371176334048182523221927978097603151857840172290244925934114529666194747035417999705831466938039322792595413046657636286830525576820860594617979364986057537015011033096973043441715616370143125897440343249810815130848019848248740340659659009024756032990524587549753050618001466928515658984662548915290668581368787411425734114525968095364707595727644651468642242283464954671878097369248640517406218732441799193679907677561119563503329912288184852986531551360835231384767678541989441887866438398296509857820495561204884903529174271205766765858894706060477299620666083375869771668936924245179996702080166274633867520766207412218639314008710246019772424239605171590931730425428527169517640512609648354421427600714577944233685221238534629427360973728639466503456480399775799313074429037817822344432999409430083924701943166059331179916860821465175169612933010983758044627540054090285637035322671193729018201244083909117795356897815529654808805338724017274495123828346610193740728358709747147743360916619827837317693355611340813133490723978497490599898640614967411029112323572127632481307320731233584179288088122338382135033996145623382469171907256225259899366190665623445408692310500639045995486922715016576022679807484163066002545091038990377276441277808220970399545189708817285668270916902747147771446148229395570327909919838565789954193506453044076959545793345019745055693593313296303578932946114374425291288419423147882938176066067920413743388304018317708138075495202496810852204832055868346784671610838090082928486043048506103705664507794815536923206555749901684111297795307194259224298429991022562222536599671217247260230374774108771593957451100429608876873654170690486185259140254342521919817296874542421100220079116354498441800036908590611651581447750491903120664858069601106069098565314067775127249826012475747621768646972401077683153060578742841141574529334732379726476764512037399381104050487974249533583161741537814150949451751421878206283579443792779325652152628287978350998798386748687948239738792931669753214869304314346815446844767079523669739404516711935799704483933650363668954344844954601228017867098802873805370499545629634603458206553868640043785499221506907676752705772827710227298059336597187598953605260227976667623725201978216196142956723956149205635492783553480982346606493013348696225054986531015892957475669054624121775578665309580486801181029772774617641483414304589033641289053893518929489575232948985740837200955377453619617187708650808252897961635768924783825686404477720369978822741494954082090531992851214619710978836332725258993342920038076062169182785612611105133731979533709321976230363837925613729900004811636640958448601317409675142611390364712141087661788170961045532714277117759492239275456918340458764058422542536152935154656064328730355653952542164527140180699412735449177962401792941932474277694960455165454019833195525621808102199854802169366445132818757174889086612513662180308356948838226524970355362382765716663743754965034579443904772343903255615177355730535094941016528242855463457552425373863030729962545166589659086879902405496460857663744512178175276668128994725938633062401768502763459858181472189288957690894647370541957771617922890811559210898944147631502284555800612973609434910698282352911911497657603720846800866779522979157853390266347409213691158164093719668978151174846054216607207945707119254905654223855524855945361313640943589897949564069182624516697408316131913085692650937305393684001150516635986468257784260180542355556519810030590775225009362796924670001493919256879600820364336582413344855100494966028072521158675022513318789151247497835792102096917116985342038823169445216632806796035099285724921079203420245056835651627454688197774185421460849958938457048373445820965049249387940103710519503350531065749055803730804569128373671306499780314695895525482855996517355186417151689582946038097859324354236326785141301660148712172203965536511714786690209189503807192194081608668669754918501172504815001460341714927131960739543626195473134502437926929159777320874822482827560577021847759234766149566373431153453984457879404388879452655524230485562815127558010774938314712200921821499264536794715977585755347476062984993675701783785775135315487158084161364858093438914347329246467741559122063542257626610332667718637860805247052599072672390738899708560666665016355634758985099538331793552154218128428905951003717644387749441628377050145355057460001983537298511386389718673516624340147030215086803989386473481939333666154035902164834940170505510969751149377682320737938044514251244456863816763188822958929357490048076094940813637476495855254551494400139848781427042308659755605381150952979035855576652786850369665033172210272285997249217657186338184343132325350976713869315464908533364942801189954908595847230683096828859131726228071297141199786040714719911790475962241592351825320820193560868711074110357515791166678853846242442417635665467824557575349264520464602216811138816942533390492181634234367335066411631553454404122404114665342927392989130117746603418724912696358029858907650732402202420979998113006428863012136093979974451972270341113743318428613441851180249144860159414802161775054644994811473158488147374956128409216787210849300029282904495085220741820488368315236742541825376686291761643667194328571865186773315906583223859810880448701045585662544104416362539225151437838192618707219543706025850540579145606291928685708460611062248495509993547255849891095021386512146904715710205551306546092399641123365567007197269041198830631551924412879670965132082227306587634985297925152325404327430676859106035947405259951563454788633969182489671290186979213563533662048342321652446862794576326371965012854300031922831933263227777142084911508689243953131240961014825884647164609832104466035987002836133981278920073141864923290158753119335596349346565453451705615495929863780141036923505244108964903522592863105673309655416092289265848981729767694290102506260266592119539627302382250081243103015687170893780575370025021932390142970835667287435960934757351074153549742080067695357480361583193942439242019614755718447501545014286816058948343137248195950671704384875020039741836569924537548020541277601235036227898959992068295734001247424672446216374916312300423576001807688051721828477445012201861801879083987353773685491966900294877115901289600503269285608303806799941339820364515966622777449419689457379906969934990503339248504762561750282873596893011815624121510481700231296653363849516577956623646540457134007592493039863966245866151722657309821137380308890942296816866565383531953595585257152232868244396472103984399387820347754893145129276014541934042377358469020289997112338657634440499681408536880129670738683726827290436371463719671494929883077041548479504978591569405748820413918942144853190422252587326069193812162153843018027464098309985716540616541487358030958419406637105384045106624391742432391458321476604865216392701671228344492281223630268904749135085469525547393237076530751783713006898840486764368067712105973618061573718605912988712992263590918232281469273637716934813002492172398226463861372173325825210380677801552127675252771429486462572037970609652063770654380748113655227426223352855894528865105987878993957935637863271265259110368752117738004925509622542433247960251063684877443348626779376645213050877251765235814554984791413245719346051301930219174050213213089992146188206135928103546564035375994629140738867160873092338413264122039490345148891059141937955903584670110903233566991298231516080123178935886044756819106704953491673443371420348590787480661437312724031742189103857218032669115241737641337259562083524818731590600534237357816586138314235320288389096845355209144391600776736695252542268844489955613760272548703995607977824950260331486160592559886605018725275137908397947103039451385583152318795950359205943509908783705997738703165110481225586551114516559371937283971283484882817211098656503737677792360784396219996555030117464705169413081584431475573846138804469829593295079198277643329651371921293572118419900531370477626135306458653663100776041059799832887476694742527208877146562636017977702260193491625084562777823040639592084760112340216811515765475174782613596337278602352532002727272067040300180002737248950866662317605292942074583245079447666525482528904510478172263221456157599093571455619383821898143508835189014105969345383780259983449896758131765822199234972388995698033479187711249590338451789102233298427574465387426593250232853048011330477309618702616264614031718785231111422390155632739152380757841991812945237492116945285104392273841604117460986076909888740636530673012064123870105853479574968102855575641350547888896115267984834749789513662294800507885361532979421843622839004318974230734190505409705466978256997242889699043436194732160392459326331917347784610614081517084124818752183380950324702703122182615356153402251449410886941958471511282743443993946264981324483562141416318612923624800744086268898309096022494315260808974304976921214284834208142371608274564723080116978222270066710904081539821770206769953350442683708423432941337995250560502733000529010939768848772350592922273176843664615862032696601810719541361220190079696996336629431802689885495418678489422170846320348695228638821754594926610271317136893120604241092685948879803797398433819571095056159177903395747193609250188301871900418333433527359503934009878831406142587211850086870534118323611475674760022897475902833463915414631130514321986760052994094127105519757880863122976913000966118231255012642648924726458487169030167006403124367866872518297257288416435917095689823907034541430624887663418038018419241283688100896380148979026913257263996035746147680705830070500857771240555861797193848199126972878884712720209921379437323748510014517385411095509227797624511452831350796983973066573090015617224866930230532290398791476098853370436555247698107580481215397217206928480795391890094484046683122192490756334303282971723047312811305738861929227717953802463403070179370659943867156376619735040845630165454860707415966036795786878855113353017992439470830655512768771638911487335543722659672744769152665701917248575592213326896781300780475058178434920738553206386115770380829075178558367130153622980375686301428813506499732129985209152677564311695925649672340754921150166588478624146304399435382282670293530350058272018059109259495578827868704902295331286778147437978273339786488883198348996634158373848517380593863514616513931503714887964005104860169795303728004381510661600758347451021789183889372164129953750819360563868277344890330242928768409122284160144075188173610032451779312644434187119741199641523444305740768845334067289683866645559228419877364490927090067947844562364353452940813922247695220039839344138670948128115320674957741320979118285727314740605345771909352362301472583045574758110248246837340757618414084408943948083354812204303099982881901146370307504397026354455895566013742181076524844540247397711792422612651516608388025500807513319848761956231219359262736447600822035163828987749108035510814724061218672515785461446273023018781615917244974213590897979225246607132911367970118707956883135195742472110295857901279021462367860080326646937212356535847337911625892936556042496399770422287542244777543449930373272515388524410980574361671188401692041934738351399273707873966319072096043230090062459917971488260311336411295451689857857778900358114623299277251213641019023947534513086241728150972523487371464000297659769494423100654841384279065754387579480550632692696949464264935342128602870962582536767497502490827997849178000242683664663875518945577210181303970369048782385984062373026162286138780482668582372410002686031205400949919497139052573099737183395308937446084319376246815548354407634153775796796114448231801913561007148550492593788292869314948101069503767961736721576016783761855797470885018909880907460647178380731827464501701529614269732145823457503503912220226264858745678427555870558487192891216897163704681852620497254463958206006750058734953413196334485945901442160250896163282349016017749130721735527840315292872085044365889542815882250530825041460622434939214764734727579176784449099192368750708147123701548859527651725347049569024319211139886976868977457128653418857175936373548859891706327809920844884671381267953996361210242893845952678262557081291698307545776946560857211269954150264208035641452677156680105093460010446309913733359177371304165008898535620138135898447330969197791631413918215650492418016883939917971867446481428143620837176182833477239504764916909632654610938832154554735965973134089271833078161635422625561123782386620772361342066012547774091136523905244521073315006150189964496429802748264998086758410253123787260132941378580137356625401290366525321601959896097084600520910989775124064570619519144337960844531664164501477808437015729886519731051916977505915450921216334782381592751483922120304051841888438831059831368969494699674885259163240613198154665125721820277991608184506848292451383742632828190238996517809184286692255295982456632362010700373844563486851015811493503367341967189685749878040914531381615481668123611260212768307852478051257100472692013469495421438406664628803258261001674194728184268148649731487561890627689241293436592258920375292399460544044574309869649605338909982620773242659844369951034136031429233561016737916438160277440373391954735462392330782536085615400442138881511510128467349740327251672736487387378455697438810139395288456364377625333708190284236640224225604875267132315480830963942344760091461949110162813013675114050450564943134513942013106970098226675170378703275963121953351066653872868096368388192845180581560854549454661576400071604155729539901893291854571261212464243739242466715205163754608824481495316758811336564755472545183019400543131083130494094598557700924823801042684468127462098773565446515842417670248336914965657252895137434543089034603202168273941334518396626231346618107680919952701632315118200786535626513855965272868770128096690192657589828937857506023895645323342718560885079862923583003895980758334039673282260520967344842570603177499801240614563346224323805529054816249887982875992946296677684435463094199625046597789322956048239729963077451571392296761846725897980169082820264340290839419524931555165558283025738544731241116404956893850523505243471813327141583026476614731781807033726204981131754931933267531217190531344192809537780920146220678431662766816015551246555122192036919467726878325774284309254643706271830367093859365915381800806885787609109332395344828750768498584581071819402136484781874354795826112217879991734694471674503787766317696872507281673075513095677504637882151656533812536715590439354963524443298959827194833668366440212288965148419914415338296794574061985069960442883805646431911740741745729454842523874914780291127637276211836126372715366340113282201443317334635793403192009835656386256010295016437570079187979185612166892043591744893970858204223755633928507438093417852144743119465017424723926921501574925569115757335899766766404072540280873961699771678218834416619196142388446533433340237369558831056010491942359215745606302764389802026451180533783507893997571535481359953588354129200054545328346405606068567557611337120202483608758212651858137751650614610002751011437040408519853312957949216056666675705033162606759284524964991086242706083735845636503222659496984748100200962673576141318590378133058888382168391831842683790702559978150334825846497236409922720388243230975971483733245821283825995653070348659656441485315925766454196155450122790409785415601115091819372720191781379950905953046619712858349945542584714225156051207844104943475160232185652277973742614216820554998870227391812431559888962610566101737917419265120802825273577702769709674190713405433633124262047510260583991785769129980303441478504981584996648626482084275381084396996658965078799091646297226012818634556239617275957024832306328751622654538385186518572752928779116203301469835263932281816412199330251026174274670489753422534387707741197760894114210001034463567458496306452689709972924731239199786944709643852125839710648615437552600304630123210011669539956884601263320627472486279094225826568387874108054275530262864707143334888686442782228592859622769956813658884807990968175725062292164355580859779019553682152617006441452370537692433114386761969665515891604149446834196020542480082364097122947260216148924881432971264569553904297111831615073914800174110354784331486504787360692413016824500072100856944725704573039297365776223060991266462364617878662028833441114195068590223986091693821067947153255465694547101028079168029251659930788164386027700477615786429156494872385378609173055654220690602155850385423921781891302589329993185883090260883051014980644222962226790624018157001354547735892706596039883772754996367350847900513307395522360492718699516685519456381913284348965175749126845022455372650536243015355084415117792158553429978793349030240623462034788126464952270929069827767257020357944398268880370102354254705919848773971003259554633399333656888501290957041839604726964946192093092854270920801711835868518083244375112710413899659933346977501982721305542899553901989497051241787604749786762380835428223293148149528016798002590123975155264746565134105096243255358393614244812169849404275317987676050322040691011090158423065859621361180015808126139291827040068889845992531821593655051125316859524463612563791374829262933296180038088312307565090642959943074030795039627575800909027104273527947019113325554523760962581007962487958736446539073820335150617093800520884040916402132868696734503588351682574685917364028273518595924126118892276035705875302894274049480107030158708589259286334471980193910153810736551857179522212327930653487004208661485048300587644426271292008938095558790339195149250367136844549630948127450743156073754020560100293343384167963418030249118529631800116662090219704433851959806621519724822676510083452487441308126630756353489012300481786186820550954626335843050082149502086935037613286932660407417486641406452516243052067854747207323629118409094158398417757179048320456082661422275672476043683510767049730605582920585854715756367404878078466847985500185977729474027699353737564320190974777417961934127951391956948944092580542501303149319354782975502732885824918922999943288289409283911996421087963878805662620519903631341947555981616170860570992895430606960540315243760710846889335344933313576530958463460527604077829698320641495301262661348180834187977091807348485718911204425194839166178864889270878241778086056425784302093116711461025069108185577939482155939646667658603769914661979155096466993653620285734109707089998967519403187465650350164201427856632835941723096842261818547409587265302220900626676524166011520962019759519357501224116955362003362124298964599270923001950681650971116574251311392509738776412432469731170187818843377714474020346507908705877939579503267036472997289676603162452267023307818956288270695423855724358020239963387684577671164242288406998114399851146332141875661221732069285449730828838419371140678751985556110273394347597298826284517374819241937397788853058325301093347444030684556582747411455434150987192559447084269170974714797726895064265869028674543228990572390949362103497585321226810838080329369788417572902845011803952047338031208693015789305651142282372611089652149255102437675571758780753240540151461869602720481152112210731085384430990951882341704852364948400608011324944224879596393636999472400123186878498653900879501339748718161897965558225559772896330347167279066006120651034827487731165040874989105352392832744050640108882372268367622467219720807851050005082487184698426124842121113842107065366936107696962797558656592402607912069112164330976999599114147978901503350472684289642964814057720296362435942393039716236162583636622975120879109931328170996615317265066560210047517409036178808359818379821249788381743452582515146913574065019384700150836742063746223402592115672799743991688946744513762082648869661016939204157005807992654591770510746947089804276211247868183789432964486093142433388782950803798936796160457948522995628804982001064565888696964441718520224727070991837583150644399777045698151680610951214653057915178197602500307809704476582761585024976038581706502180500466166851870685319966972410249535655001846222648823636731397593763010743243367081887870366971475172062224961745017531205958776293014879848005990471696319277123259154205488186718613335185931687417756944352184944285298080584354959722862590840358419386108152359582609734970619629846421790102616126267289089886311324358383911607529160927276612400316500587172540455960157204243030364650385879886494689161979522452296779368019221290857216947330776220991891464444559465085460006748063965596448582054887382187758309031917810458497575166928189659721538954322867307286660562295922625534153666485484340695507113577014234221073546549105587329160731059078159785232875746556309388484264922509445867242717979226603059138070200387705535174845517364871275843255362197620958470374757266242645236788398256209785218209982886087296793537729546317803349947606417350635051860959014713742131408319601248717936853824985932946163434846353333245880315210015255609935102028361788351247459097552436203372941295060012591723265770267328106358804878848509025760882313607063522002815934994393487938000970675978125994159105282099887355855093727157211074076538015421213126105569091058989174142258596669748234429837849008866507221777692027892722892193890058913290109070127011405037314509484749158947687291442875846873188361107713253365116381802085201359227910064947881721861170026979312094037156086309443151860888482627857815258998675229885773111054184742401265165816563465185937747016012658610431863857254725589292920813919020964754477567408281958576234597005723773932877064790274951487408943068101797145155018778242601287176273874189140162190627016610821564267866432794117804127169188058095942342110855379666061688133921174192676433017896663086019018457823141801893140207306642300950593058646609473298264497808952224798769108520175863902684575881537459228118682401894104165341510457327001109645300028656333796674328312437924351420329412748201572773478538497608177722241411680741530143611488163258942079933337218819618081871837199660410006654490642003308209229945040983465148172699620152925412510362646595064916093148273692519968728751505914243751237332047152387033491749132714571599064521541069835866650100361569904635537055398114236706267366461413077394857601582954123663406449166084075915673144534549148935676079071276690757191269526777867211857908715931242688962388694435784205426526132862570551758834848196075566652504448186457030874720231541293419364837188314259550504651455554225761814010167653671125599373767824546694958621834236226770512288858515954943561910852371495960350640975272895065767853380737655941789401185168936028037222802798582341421572798965209720189375980773276356573252994147230945425191704603604532200806070591085994480656865709136265519599429023129992905351762823282838174530767355847534411097333097886735273163638578122792272184318013524742258993824391089566821272655675567748912141832650889661207913286180572879444500196627627360841604521762964085862724802238639281789762411227728679123572014543906100703512423243735358861193386243934815337363291167930108508275131108553931832525583968713603138032125911338377639881735584196548424200427768572021637764194879591725168328996909941279901936022767129648970220516051226164986219792268088049763236171843306423819742667258513125956304714779132085422486654529054543561041253249547868085674040591472297502439258671055879410022181395516039266503817019485019357200217465067275448176342096447802537424688674875515154655384420796761093543552332169913905162069930516348943149885700242849446583175734689778466947315945068520546969953308872573549130505993611101427825075424905792456957690609273964774567689899501872160167906840748895634599560664392197112649743872291675420427279252541179003903308514984696488045258764163766111304292079053231997307701360605158067510470796513053515993263299631006191798522862786435096508155077785555508201829718489258963345228610373977094577097626812090667098394548671055447715019895734953620709268271903803460728939908895667334759071397992079152636342286599851563216897910400052222742473751568362386233452909255715793360911016556851845915346382768276965229598556101567615447897056163654841247564199769215313288896836812677761742538549836826880268535069873752496164898397976415636520858119621504576188745064097197466507404822998426980933979729336665148053778690989902929591981527686202486332323406166016432833704174952523392436924873454120674991231564539855843296713288001025252422561860571505130752432223496420345582257871971353623707170123234944065165922367146603625685542558476468135998185368667844886613417395905298584031568183156170299773670787095122074000539927541064272000883541799428055668996932203846318167041802976595185532063549965016250941295682085338137283290709676924614393350869933067590423881645407864870501141511141046438450701919064522058919663774212916879624225198233197296848192935146275612125102821381632102562704614990786279573825435704798388484611134138020701326224321853582401051040295000471901828772145498931489315618945198240910150944624533840508695572601138845500710666697915260769874254742013297757024750622191918163714687090685597708953741801734543042908078319175192158576950320844853017466646763044024733840716519227123871179671981421850793816897497796946486542358234269593065741786796705889588431830351083826931696297164344608549664181666473318985805642045310806510335173972070454913862203125688430658221472621750154905473038304239995558160282621191975479480497992463206704809382009647160181477968087031962345309306170712122893239063041282394154327916872376993549597891521871700223928095384574407225208526296254367687110168557479607754016986946867480769053209466535279884424370781532058743034940283936201102132497315413423173374339520638740776122773300370863156009003659649606085381951079888124993852588644819580282631310240407607102382682897566216919932026202691038575768537318531840838109983650350422877566462182936738957697118279179961393241299561414287049826954952746694115465747805509982056636453875556890605285317712025198180172277068755792103338683242832017091286251444943300868070469063304802373756113661822223890121136627605615233868311427579631191614145677285582577169157810949708943325183698811605672119572576924485234576512716111433221185632385929312260274618802295720189639942705441002383544655856731898568124435614318706693892428815389613029808338306388943445271821846264567790429068476742118932397980669813355505008329408272668449474046150443911078474342093965961898530123317606932723521503590571795356389303233928981010196029200569009633978564726977668364146258111735724520937647400774931673235739942719843800581080144469996926564656055991844272397092436080663945798914207020473429831995550954650788434563810789606626951833210426610876910942308773426526024993151997694999306351531116432590423138501065692815034017676237572689227731784127825073632999346101266516770994646996621827545026014716611106328765962292752978179922251512974912472038142757369780588444864951807770446212019527842042779714059552230866795765323741821947521032323022798663042652129256141035724154496861960706802034104193800710177187760754296950163573860272549307767394034111326082490149835272258007654583751210526346136725207082031089944040866729049960894089494216476528675967627407544809760989640987181465140504634268927030916727701054027815729118856591866901145330340680063047915498629013877640732468111504370057828596319893745472981305115845853737896344089855013509750035906281713815414867655637395548949939817448892731760735486389104029629342124269113693800928642641459082050980117656586915829521045580530359556100661743191660972855670857403432069852899583126670785755307596131637956958167281418599359637855278182989095070135066036771604439221889114057062603442979997951333560606035219425432077625933925178340600487290160272221352893738164945555341438288573085857984758530215152134617392119445178023469018087842947601530422996078257094159099007095858195019274875911375295192449047038239784409686373338674693883731428486544089132212700492109004211412624513566545087841259853376585117745636343938746565160445329086425019946716383772543443376699631262803521102442722011384448757567939652521154664724886973875775975382719790667470957998097906520461367395132794317747059738615860996768693919346717452486887863888382073096728316212599120233455373416706360239146052435321238784389921093729952683794205434387469162685307063753923848884108557476797643178969153383976520506727687792180823784186296969746655435797763135781729577499989113128017005160755435044059065397362630475135047078406536665615091981676234773494991836277640026535962544662807520090041873898330329755016611016890951277827104951918946534011909421423301382980081219780507582710036268231172288497677369176466948953605357285028696744205486864292013043872116592410958552273254893732937515065681900886821420733422269799694851876299459624651692768800723763145784791741444857609576265703732456760233765751503274072838330037181953304762288340680965963086753606376964634744901133120537721363450690499895305352909765493425673626166806496363439295796806117161002658877315052916989888251676487399918476700000419629701963834132764526529581397614584447584584918785018560701682276863593140088298117313443286808209649649083597042077434393480952039707305396787278974067412106495313641062786331130941137738385030508652848635789104295758736155138286145338302606249974477495366601278830899693840977450978057455319195251685932366135678611173105478452749766000458062489576870099851086074145927655821288432571281608702259640830993750181349367190172606141769158122565275844437959830777464365157624642249871985572730031480520715738074104632558708161853916133517838736478357692383909595325861277556187590284836817871896639287517044999525971835596080451831328993709080632641342782658653572217652782200585163661169046394483475195208211459783014537599738820540604997399402552653579617958647834788675742040487170719542076608724582410934053148175209563482711462355750691807268801437929343238509920679560785273623838969879008783006335209474347529399553003868603238048049629151299905388548762323564383708081474741554168023657249670402934281197914062530341104005311161346703823148888057567929382611335731374496104825791904052441730973096496244723242356489346490293389122810703342079902987154447066630165290524882681289023747827172678878154650298146800071194587769753628442496943341474381985871389577086731638876124166435855505287636402225870842441998685079124341083184955689859473334149819391015580820160029349848757771171594127246744792809174819702125785848913381917584296422999413327405331474744342972904815076035385338935938058837313529778482210563951611351179491665293139867443414976274698637703702828690974463757881674132512182296531974965288878253958716200422157316680932951241696100089852299289273311776183370644337405862602485585597906122421538653417302791975169511826340052617005945099498557646889538809372656337575344291793834542038544993651600983680983634864099152761039370651673940864587790267058094811302756631416782338813610527608490468864544284814628134787551802428404709270775430074133663936896873023945298307179682987079666956027771973128598427751948817367661259113427253225857774347866297834873160248079863025141505482822967467646227363048715072583026509960767105846359953995057184603446253028038731662462643829642545918684667696048902381026180793469104159708130113229677891395462978201093605082634983863508940356008713411110477751462457968234235211190538129683763335801044882770167261514202625489592088850789633817471839988421187191843415050186099823124146322237593560105329873362135395050626058083247014113901175329458206991784954461826105942623276199472696767658004497641178891212126351670909885224553118416321669367632805253801670832924835882609369140692846740601444306093393633537227182127296837665291488936394293547326660056616090930790468240795193916563591656557716032628567527139220270709156728196770747948631250681742074893326396119271355723120617252218913534199238780914789642332410780175194442152106405181959460393095209137561924090488428838595212931108993124123347965112753240127775596673088088864938806511521401890138258824090540927441840199419961304620385821526592906704624929896141740219060573322116404366525557975408520272452361601881022828196502359651088762032156626577887274295465392468798506877672939575252524025062507565897574713932686450853787010540600326455225005497969534886733337864657897133915388870479783804566808839058344230352053994876370100323858577151503212583496338603186811796047546545248698864897843155540353428136469276698858290925112497197105023602066220179201198173755179753654294265213840990918269545411037678415046475173044020788892928544236555185592628971957196656274020789953225845295574514304530593970633409058132063976733397836068674614496558192479919314939075206952520087072889238360284115550705579114469762515657419719624358306580098025649911732298564190356164632695082900386828564608746172647413917931730141694701037352365904108157176557106903503124474683625663066560703625957905074081566341412286040423951708169662573620569025285692903129009003577119351198895456803876431304688573141900158141614406404880708011573775912727805400617308382896353416973062992574320308556483843602427631610203070065621359080005905026635145288302685055838355921849196543640838374013107823487484598139102232408337372486690842278489333113523617466802924261868592661153081920208638497554631823688140513508755995270530032199310700480077195607380065113101419122378245794115131494868276217521584092940623322807024222027503368215865600262294017936806066803957389319496503415964336033910297500805757482333952043994746179374080256069217649337200612032491867230881578238777009476710145044089568754229683007651629207157054510523634517103446467338855195301438387353339237953165143239676621464034374811230254945692727478451585627820221417508304997672817546486067142598594210084704325292638960870283374052333206129465431589026501898809178326362205702730663183684094088284895323805014162483612741416537050292675136229982212023820508007997777234879215033528440104771068553788503522911089288775751403841559953804441307319047951238039659556255173451015945209159324865450915934472010195870218232187402968926393070978421435374664166625046101454960964151353980895045191788443198161265299471065666311299786039821221980673878985640761725281946206453975134287570711517911302320364575282596780543739586248270055470826027442867774676510296071108025252246706087124535775184042971381519153630572455871401502498792764960643653929503971972026660567576314117283337762688814563531302488441106374356933207082354687190024381102342330059048726984483930667365395364226897610172625574490138623621543460142434044449070577248460478653842655325317862816932171694923466975498205562863428002226414021982315324946630824802084183000426390957307296875079846877740150205586029262361522751293436635144300214788697997147009711234869821043925595433325369422242134987398185289356673776572143118845823126843363982145323479803781955739302260383250375992676020020083070626953772477191615009734249980006460147425250042541583373714680951247203035996987051594648748873455032430356529653620219555837716936490646680592368157748263161424364366789188624662902210261270640789530699957969265127572083237175754563760201190655807761106951494115842985432663419307098346108187849159505881606686517601332644197486611098045225648640139540752720559276502027241256002056473017146116690697121454903904022963272253866707407394464488020044128742750136618522674866082432598249265409946997923930217506035770299575710647711240198051247382937284771520864165104118313405385707997310330871950007128108066336739226798789007130719001878727666592096904957822567748924472226114666277083120549175322149094523988325123703066082658496543340907131606431065801687016357839111563768661783289470612237913342352250270460337474638166834541550352567215718898580249048888628566452897107356823579452945605754648112556292025008596207513612436339571071609640235213866286645502949590074049236228167162191589884841475741000101254453368805526073288316511235363746413400742894926055452359807675499275539480419518226400365707484943060047595438804556780173189636173127731786301377660605523674172033258161683046153101662565184535994716749119977106953433901216293443802386984291130937163003715959474291788277689703321055317236111723960128704974160507666899470963375503562090761944520646651906607452376050593910912006697704500077371028430403602428259019752204912183077437783140916191247994895391731450704662539165087548395511537845073744062674714691153686995901543972761823657553704769284366021785567304752054880089543111787355608134730589577348475336361636988024730978376597185643243968336790585043614251960755906543535750371255176354037605848706211251023033285782136791746352044199953775904851309035584383196875293628415092810635754198021554276356208961409066750024012055864377692338353186805367911722030040299834463486549070162227385966154610813081859610879408006416755116886649186568871188025972732566682383274893753372620314723320279263739156951723120680104754483167531513666291915497926274609026433689230115296982939495772218388551164668047499505538058042871594579652966503563164531871662418698221705698115974749051732687047408245248422255953902245657590417902289137707336739892873359327382336556062003681567111600424001123466160202333714017023638670114333761273657807921785653180267743400127252905581301184872433083047377867870993772832761186140756548973765473031813362447218391945289449152632710673108030707372239920928802631755936488412813517861780657230634139607336742456155782398124650220776596097289744324458645120866842348130365815873947083814756125623703691980217188312914151247755281847897023588868912190291528221496757137865338856359200641322916508637041930344756348211411783164063764861102106365721973313778665525009703838070477099214868764153305492583554692709732689787866946836934910234159837915620733628560235398049240282033883333483823719336601722643076823757724828016178524654191259795886624222149767823405309433714471291901209772838607966764591403085141236722256095222992240586775974245539392276782516906652064321335155948121445438666133982327417432912638427144537042025736884230291225549124023368647424304160399338553859764509838990793232468240432973160438582244014473524185950941284219164792828803667750300725230401248734012491251998579931274141759637918672612779367218173560528970769526320370021047446763755540908225684781084125851083693897953306102856690740769064100794568900876931638696303993020564233149380014734900271173904398992003882285297217710275081682472071139450829644002747677057987579641594366588566490339522452569143283786166450054501099493610190039009352653279203830794008851463312819859689192552630079153071230993610104250620980639604790941700755423315019043216531342438355469438587476530639382752212077117712188026617282836065920772233372441657302393571378781561745107041281101016606651624555971861886144475762689432643832477272508500948579404771871182016077490735091400108090476825985508823575629826288551424366569766253901437039671051751061148218889020597720192904136437471411146119203280577236310696792538329817713088825878523576866504278222078679935186034298907543482398469909278308330366991367093633097033149603188467150817517865097952757959597818906068329377391091787866473624275632247564088528996303577733607665367879547495173631922492641358258519380185753302022376057297162599656995251385275422761897397455566775526916014175060766144725317370125598636814082910292028387275614726331500225341259620339749415192425237882788040203130865778923042581199340181018085991223046148259994441741324953919947440847497144695015962816996047249107387734310663341083358083150563171656303650055955126428759865407702099578577042822729212280510457753915163240272661000777942792186104816135479182058096409316218671711442364380965134685586841930052248005155543044411944077326888047451894638494242641527563176284419601696967110974998793654661655415302684486015800014291382368020305246493913914324148386698861780702426311960975254049138572724034120492255610506355391215309257043456565155777973108525074580075969473181447774828382501963576851925511829822793484124344979540942531926323767208498020345914183382954816923898210121498682805054040672292095269677418713391574006954452491216132847734960493392456120911626610072700570452590713254001321500092821244218050131794972013975626879619950628470634923044704967638177165272426702495443947211426128202779728731604442965752022208415131561049989909471250542544369189517540929597946911165340812643067509391871111083298022793721476386703854687611666982302637408849909653005467181100734308567746958272798591931844752379195588958976299898932682017002948972455022858040996240489890641668886022443249977897188140692404775879554287326992370518296588638853597729252746255810449125811458675096470899318475127021695400929544162349677694396832573021872326615559280853222624082186961759426721305928131171371960268483936077975738627464403622587386590686705221162102790269496240517510303731264217166546022262874554449006869110206393973700821371505675768195100297966814438529480276669962027039305913781987733754469612118862034778540698976535342719729453259964000892132073817855306262217612147996979630862532375271354556191292897367322245648210066566617213289219585716550997021627225876621954634358650973015659287668695069894157735754570726911970630283183417957426237504609028854283789559371612469480115553722776301729438944211933946306909709805396865863443448070833223409498049179287841422211163312548987624582527983338292630067256501185748001739777974492162984814610383831438704140910257201330103691700280545174694998319537735926565091948885499494433819958607494989744664441008635238301384395042208505729110601501566354432171556486144863221534615763910465274537025740903925133323065769839133929466603543987641717714451322006866870644537943613416081562698732573732986818367307856878647120403599814088689391179692069077762086379393221152609180491739860692400556439416010345415034552934695963069068360836609054977424741752848591187982924572226546719686245220619911569766660366438945088126544564559930451579150354038452302362025262754500049177609495526850111338795076795022532199820392535211653360618497908380999445420706459743352701024328520615264042996944779046080779575312144686141142465514252035439629015877588554771539656059769089426682570699808766391501199651661944330322666175881155632964866018367998689511575565522929876360492598442434609353332152421548249738765484992561318173904760431717548644191705254722541479950127160901518556853456546132236604561666504155066495482236529039350774537428745309668595944182840677480733554121282672481481721246738811697969541661480835055600826922584238467706110873942070335753512770108607654312388197767698120460482219765889250381255791593183261669075785220015982592664604103557791335046279453229438651957763671193513421016102451512953312820955399991228717229665610498065746738587519685239410699630605423292013149631125818402454652493978105796778645146976154140604181169013582204034597113019273150315687594594816036591605594103127235933888867658894463985761615019147647529560146123161494770962808843761389697943805371435757176917116383279181614422295177975197556663180845968254248101201037082782229901816764976772238927091836035095116539163593831172491336331375357203435019410995410510264800786814815316677557665195052699667030716626619671533799893540231628151162120874326484309350974229852108270262561194118649345544983708401214859578368218772704068661161343571971151730845871286479628592144285744929923514164023914293927318805983193852751808510649425557453908685720639261893621602598769299536575261561875828003017426878733941571735528538385514196337695767751775517845941029817549172317317579621636683413233594883379159387326103934242428229184422101005669191972638922300254167817289093135783769800562644031726036541523355235822787566519749891158386519172821262098612666561773293080929505358187616564368360922268333638648200563853506401199074349263032833838825676196471107135413427260534574726486504463592721439330924852706449852548562892670849510649038001010199844242926500969554375310768531098099890720946728522462891536745491579294880938346402246858790561406029992653710528421592682405393348442584491666666986015296434754493483970170355360789199833581140244303544162426020795250837997983403436336263225444961474944946259257722111492742496778166562946268762621780317459074578228525798872442663356250985794364313445171215988698936508392198450654575870178226862475891114227072247360151060282143269315552824317183587279553546464191490999402079901597401916795379000673951312798330104520049661802733480648063563836624194331224061358861241170631659407248344680434844301666856283073954516492558308026570965565733184674040486884228461837040855953936604769975761457317820398303066869726688343983288088063026496842140384336415124045538957702151632103544416955109578624748678978969488435054247154358658318707667439859454072691979391564273581448823604369779409907270521882624156780208341944275763894745790029213870746508986788725869121138377419328546061693950061554051668364682987399689966796813443008978581029230327670603190116513220941679604084535753426085545490075229458459909864901514218427221983673198533390948613680098538436548323110440418070342458930085416815602384656851880987979813867374124693264679847728017003366248663567735341361499974366863338367588283411309023361040820062320384052299890066561131506912861728548404454972176451871284125923502663088239088143955628945317128155748114422160395930731223606734046589337720283415678642604352854935511446608337603394322904668819087864004082293755543784482714032834725826824260512055661796364009482953461336843783912824208366384383104115271444506183792754445407761661096940162525038633132755536274185496288026513177079564250925700816522281097627441698887569322614988497452242777552476106370542428726977396918720809025424056581630926196020531311750101936200753949827888337409531986309867019171835593197766052485463212244991519805899826504001984980880087755323891483378020816835864186631677786231310328730672140302113915732295374523955592698812359190879829011060761539235480550305039828953455505324830302584731722397984688646528313617806567392516307556368030289131339482874596987554850744406140251085535210303889593839272106496476605667502068144695503918236087624049671751321243322785734585184965960300584544342662313208593603480166458134991219152013736624304329185991321249851771984039692780953347235923306009757214200732141954263272244228380503004019963281545392708751020060711053338634457710816056822752380644834938621971512909641009496732859775298455443859265190468075875497784969158818552437387852895619713800218994327372668062244053991810714420143654198097265883371595622082261962900204976351025663266564476227065378651892170723405037910639541273002901800618578735379727010461038016075959821646091360877542511909386452408831630655519311033811479195412812112206816637170275598678487588483409929380701039046057469188813579136827774736723555303241878335863692073846604372258500133897197915062245635867806278215952307795777619469292076701983077270143703917192383989729057277516811317628115285720158597884203412778062751888297525748385637409990740565756091729533081433115045782056903050164605941239976801741998990322497004005432209600637971850164106902534104839569931056210874130526331281856977317075049956449765427240958085548632134775840712502974690570592503948878033709209072314173768537443243040751827183451882839199594150968741576628934361574490680935935208932063460165214568180116072642981193985375455930232305274381451088313428923372482638071126435062593406955086635408623846100392556064465894728397893978659103440819529802556119163204636057416096855953954605494216722688268243240830224354348858138464093762669998484618079262031944360175650911975882766233678261101798694313126587655806366158627771667130231192933095595569242389395587433501868109034966283915359293161052000634964143460249491527663810557079606219577116928364932025803801021895390583393464061285307540820771383002146744775611851766153130984304347010989846995840351366725608335353932700117893095680873153856577068387837389046659306848642320034944848628342771508447547341078307832153607234380905973086484823179506534667166015535731658885932158681623448901575409040616909779127912229943011928221962895024165411054321336354984992051431840584859442502289334318303312379899534972342998341163608070257106518562511316903579118749659902390954926602011860714754007262605058692472949388587391620555588055421765976310912775546090405860147775011690789447166556592152582005559512298025254660072784300135353199098363891285060155359394687354980795545196979998695195247316884389607563531428224968600955934481327040516751576896364960972256716232637750666347972580286450834010317808369952536317308498042176479394125111383996634049619059800578803813690241925946415879977600864751886561386578520352250943253094129345551580528193905902054474809452876378296215128873014903976879471358110570482199266516817544208529926950677986966927371769640555639684226296092984296943951845764269612797626335582214531541371272446151466954079622305835543338944014213571176819451038747056718967498167167549876356482448233672784189735710385494527054079345631511089508748974178640956060040303038635190616036444385703084356732308001164319787913151483639379608054897012034211291546941495505217165691267619504263371629977382418769122926560729247614961552565207716235220867463893692319418980037511374483884267506489064940000140140314499579591016120146449948395599284587243504050112910994934474152784121796810315994737199992372447960597638344011307638505634011894330896704692204828057889487407441773434383417030347961590802359530060578893511027055918454783044455332367633838931728515617481299912821297341660945025956644109849970257044195070979069295088053705430123914847701970386805828758670642609760248020462565952990673284048563216222884653484616633492278659319275990169787255195580950982290541948792422041443709594040267444939404175263958074996843940296533627289258094349712563738690430882946840192449441054060162508108599766905122589332516167251941548498410379903462312227144910582121131041014830584426775492244499266337299458941666927621975566483164315095687051712044528520050492033061802339011697857038451838241685347497701642256503017831048986202119091130562634327375781831401234186141325488453872875254809899977127323105952070018302456312255032981226609372441362162698324005733616581077365169490990178870702233187887079986608729914842021702335365118157076830018795515533555419696341683781776891165768851163286748915730123571140967062592847501759058512898340846129707916654170643308555201268021616041973698148771547289821808830489758523396124867203892468243976816960065442318148704047823255552298799794859499647242849610364650168827715368751168876447127902747349891776673452218306997008999907243409528739005776475480855905119190029188116731006403093231068124069708392703698173579414053610556644138790209807419094965893956673935180261685695851166668107671360587330759688980671682045783313946633397790295360824970589847779361923887697058260932569855405822080354143439088576593199148312120501397625083408446522054038401106998765863964909628982917244838943726609258050739732402469110715317282778830161738649070122526120651750887900248120084430673101677246738463461983015317613608913947161792288911412778481112454936925644546178116322814037656045609045633507305193558719433337041765904240647730082142188402362756384433187174259751663980793825197209745289985927706599341059581704118127247163675224929817959417369559898923538507775666930959598914796399038495222076903485087887283987746670019308789478075405680021356059359352815457584402443763732159480038501261854023347316870632266290258548717362134706284161640745053210621874804994523731314338851485896946005717508911924024224078623906729048106704568274216762485669098304922624279234969921053302702022592760481199491785291534999317039468966946999802108518112461084185893862103901691184734534283655963360631617948101347724255135470896719551418533828960084171175819423718729306531470819189550563080274337519575404248820442712468516323263096876529968178522471363579831514480766487247972960135375822974329602777813812693903146705243384368369135073753092086436351755777289276602160321876901447255688825557306742000543645945093380016907357023422360400300629401957947634265548149892145329182032424754682990177308722330709073033673096016068262027757172220760404483580562766133727575154584096779709189355546630647700729969090399118188640918142989255828990501487406334122875341204130552390033372642927877134811606743782499995462846770778859910028277502932745485533213068500100665880053725147880416062062960921712620139738295201808483604959269757851169757107429839132258374558126254651960636285651560724211935287984183542137304293828217133594575861922224872907665054402637906795457924182887541910917704678612357101962068767119098932006352913731235609672099005936280259821211491469080563936780032098742098419265014336263623089983104244493465755800312223382112551104789827321141905984593837920363696199704115183112812103091067372520055787031328209490267847939118916055426388016477250543641366303630329663459299981404517621117504721650765583601258609953049593699253271460930396872843864592192094288641792310076646110914818378604275756452396147665028715042932634824740155978757870980570636092493889647655578650735593495443378713131457887728995530785007978778368262498106415036712856343922966096889105572323989002019379209549509499363700804286961481151604359745245195826551943067652286260984648064726973328448687386934274536739172950918311395194425254272194082446285357881102916436974025982992234724960661219352552219666308944528734364391228892813246275366179329558043116973482506280007511486987728246404049422322661158378027081409562818728668382185027051782785411306641821466149539728059096901483310808430022991089632571480842789444755658581654478321608579087007760645779299927018735230575778091023846428466328758773700279551743914386076377541382387837796143694648482417082188402571235491124171769982671804203247227724305837110448470317806813092809991637250093628721708752699790930932391191814945186646398845602761279604354962536041802107206999058707552413945252120569837929456291855227319867703043743048818671337158987371940290313125135223521397831329434061563255716228362249654969168180147201795334259622170815827768573804642546772537868431284616310958264299800642866436632303110547763260157143827273940467803788378137190698822739214413642884216380466350175250712796211781462772562653140678877129377941830831764159292202284939726861003962617087072729487115592166339690077551804407962592504478810540937165871643316770616105298265752026321638724402413171750756268235795711786155110905303974219257622311614834033601525947497448134594307365991180880962432122656879581241864258872197793582016933633367850010639281303248929980888632448705588554138367083083899559861974920553529589282622798080716638856046711176207764710220310710872204875167641103804864575340450653381788347328262462955775559022229093189259425133854795911772865569896570974728320791562968454779088356398866557094626705126355621290166869479346679398067030033401043583856978883741290506439784963036176523378740947917581651039778482440747172275371838037367708609368060614687528800038020062181148816266220504899467662082853624710211984258659819749144599081655899042086096490664983864230587181797489686126666653162870820654401076290083887682601452147911460221382970005491848291421407791907424962054298786256293311823650444053007042100778856415099132576320498990287643061524987779705142316480158811767096549750745258024549281733261763931248031028404216625405003637865773317081010759912213699442935020387992805209934101013174126393675549895146666593596948322163028858463121429063292049980525287359080765526348678076103678738546944706213902917986969607977341065852949282231887243864035902784870840772162782749339614083784885124055969765392631675583257264642166280075100341937346415962777724347518145916483594519463396564667617457028301484416564111956669152234537395952703107373942223554365226889449879417236574857057633596932124922795318079209908332030263433740661447908278016870336370062866752776062203094459425269413907690475627984925717650015895964013440447245069372279784432457877941941433620569414947834804371232181883268837712337485603387106035531784011318031168974524596563132974158732939266937610086664527941499052589848493511510743706992580625657270218288901923591748715268917087694328986937247335486555770009103945950597384922372295056966722920978714645433584236902737200164059707818698989578115699112912021453387780437639543460438151444589758010950298128944715716144038194430653435719272182466425838588582794583227525743294947214286041654427242460008799764948436353161167202075146518398664841421037422277655714074856922924861158160006906517494089240834855126478071347214600954087288033966126481558151400337364438697238074498347444894132574350222430692007265572897108382953411722990456688842759522527150981144169371000361527890899320308028832936408987430051632529729178088135671074332701373853406907311038396242233627645822972914746239219892889158090766884404016213975403555797850818836521886380882554906172220465811001492507500132523975234283673553694989296134896274763112120816863593103640366791691277906391615876973516520741871308882107109567141848893614242711401207305798180985903837661186002004830355406816193058570719736776350671499671112590665883469124931101262529626279110708927842187512920316990018289343111438275503424202619189183355849482094563972044540794365695270925181226134629653401159029081435382184248469896611195993033963776528602711298437906747591853862546018699914605818360215805895264635702835539854304299145542962437121698153015226019299738512778686231163847576945570065515338627112227004196638902262909821117029934813860072703345993677443543405774121792567249616679788782674624477768309439389945636964775547089178201269678977842335663144743580164803960341578440230088402708746686548821642581103339108677279551979983034671875399658055377809471431530369010349322610327250255483228783228663289474468232675398017369479491180018470365537507303928280689414537474472346875340409834696360258854580095678607948610794500436876740211088151752487673013299980764580852884711310486864806936775642473652603046561616854736017822338036046589851426343146120541344226714015152689733192541635392245114092403424920324353148693466379730597200701534304671078759875157795284106195106399034384250067662869781696125165651773799055465610704714124440943981955743887440093837217228150706609795573471266074592591546537198083724757113275278941125707712637773290630967314241016518300065898806598899155322278218781444460486084795658990593872704420207634631784002842684201810102810774005249423146676151615756252012170784521603249962307488893816445138465952271243224304671884339467583654903825983017190665619630086713078262252622804563874011473758314018075767382161713480558398055001347805972803118515139845656446057488970151936511772778608005797314330056459519419778775340428764191942577445973749308932170102958118542025139267389275288715263648938370504091663480823886045166977732131206550526074104812492595117239302232387533179026252491279577926395300298462241126175453129296182000638260999853151618918619978702489163303119014196244629643355334747114115507431223010411869053790105777220620406707265087620244566016678622817668698166798344515076698528103308639675711465427905809501689059130158667027360274893458092732531417274123598391123814449985638521183272795847407530274303472922470341021217443869592592950720390845024465954734509320419532274065386779701499208695923660335588409622834260275035585319370121730969233041367866755012870656043780297141362270023462758867743041972363656563876036117891235082668613973351050251292675626437940218051897855035136264299219620150137597162734628242693315105845241176131539127029267398568273181965878091480055678977292347986912602011325474361678323465581497780323723926268165398852394846824039056183356942139912177595855808615940900013199520599699345028032546066440937594001229751264115469142903861075458851988202506631779000827776982786050986572234937435426866701295736429425348186266692669981147908363645947713916203127949039648439872434907005170643299646759955452855026543117991778180512426714555825155164948705448521411988121777893821660530464260484658573282474324874298299461104461658742391671802904810585769604836616440780852493329452735359213177482939972543241453112810350772066637651075590250103830087657151021485306655719875806506635058941120650477188491420337391622499017959428530054532724537632370591101982364700590176920222880106817307015374895203820038832288053078119616935716556452889535684214412065148770362846598481850363835479567902797123813378250778425024787644885249792619358699818174315721039611968158128427837516621504896437020370490813148293060569200319054389622929901721665456379501938013035449718600893775690410715028929494168534588884412229706247592258056337815648382459109840647498691980550814090478218562236274830782399372368343271004033007264681458758831540108468563967051565403272805173862148420121231407974670872302109011886836870957607199876103409109704187388803918922877941765091611543466574618666290829448655104683874871336833652290134140328548271706285376597284223140336679549620725829804497210589397577121159603802190745029513181025978512241999002079168526409545332502526227705956906098931705938571340130289541153888681867790666996933733843312789320360935318359198623087675102856754970204681968222858383125357184128838898488394970449987499673852114183651972198795541026356252154584583877269729974896996361064271677406877933767852723320845213985864906042815078615657502928408674907109844895801456947677673475761428682864336867759889777738238801751892578303713585202802829928142899041910995665104301543704201964367828604466154547145008785979000780621112499316095112420363702171418937642198012170310413809592203708916202606486815764670427955875696200480016102649777145387950524640446067938997226407348458056188746956954797683248141657636106718343420523018071477181037699709562736733183898895243068479943249073050689038061482707770483402277325138152401338086162367756203856489198828274079253558187051806003375690666739337869972402531732854813747837921956918446896068409288334088173470345781871524041948061419300639692065880467662209340001537409259691403193836417784778118764351819673328636919488508326128054101334991998373103086375221746659122723374997715496760184434565590179030027242090517909478798028527462779348842363300343551272870166726350493317201285537809297480680826098694346344445207969900984619426304721604406544449474278938608672580369624524724914329810145098571420178991864033169951943912129197266093963565332705756756976058341238875592847465232267998249243342697517192915225188716853264733431600368026220053293559455033571177032835549638946691460011595497436093537377267100314879507910101466728418074819475564748663086225250417508879529112703536920957902194134039231695251833549219378532579176006626546042339526400911030831946142390052243780926970717692368844450620504741814243569930990675326965762583983153385955527922981847832749380162503094018061096011473733023243943496690223152967530877904876549934947024033369188182354301970627226849626003339741724603471345480499888479368239869856971291477381351502569622770449245465694796443434312477749150514231572235515907658353092779768278730751623580284412763535784346367195481464673335687378616065062605496392743033196535849913472696831236183626149093732883049204140154791927641053872511687263061318121345773675956731609515073445141126889978834319948290263386043325110492534238441757789189183387732842905922506596016130299413414568676237239566916643597771363097331492109122621315471545854106626636248163738992242327180722774081692444328214342901065712935339353478434806191928545401576663688731343936249068286426575665515816492945948557312475596564951248664720987963374340410167364271780883985421278153857890596078634715591334030378013041621891283777981201240692493203655493175628583396646040840528049747088962325546492645362815106550862277847077090982988283953522410893718968798340501846731741998701747401546921820362806613314395431993374084520872092198892475531481943856582721103846917214207188184073737099754418597649748281976554002069085727259733698398970802368231223863360967911026631010491468189603722069038665656576334940923815589505101403363974087597207842246013063106178726544005867557920970559822479352437580170828657092323165058149770253218152763782111934247781084317664151983682713187966109270008997977627817021293822476831695375502941411568751860389666439639409842495603105385791711042500633696509654860390637300974036891196959566365880535356634683388125339808272023073545057378553063776583562064170070347264538337361249864508834493653780615655015114800295825056510257158214250861303301324564236525640012295097992113409375394811725807165802274235876230073086065645830562007556431685254743992561949058103702447446807645178613934337783724925338938845704490288882821521490388958369360770269785846439798199703460352755601221525178620766869096178756546566269405107946617663868925097498203853702428476946270396087845921441818212616051902701852904289331598103676969556041515309117271867035299365104452102610963954803282415785086548639675824774165625733484805388357554157821727790026002056849357941984602295793862774173791591613259933087371086980952637861786075108031875236808066126610125968536849421009123334535496886996412784117178994353485956465486895821883564468300768035510122617477153749495939676252425145603252580842891610119481925157442460784775165840573837035818869629042904746926763184086679903754369947033153469678370060260933541188355013776742771060512930220688686097778403264516574236110668232085994468773799780990571210558048486371764751187366258525783471402967386270818367203271280645803320807233813853657615043325460150130812597589938608176031156160507467178124897792660339580124557117496502995807698496901340620376311070925017261172489295006598815548692343000252388504460278652524590470243963910691155412849461878129387847873632018564281296165630289044383214601528260652407017392074111131365587493826205485515332806248163655377235520329576929599249111277850495464578432912376639331799182662622206752889028432558808612364721096643797509125758483538494777035064015943545392431365743859273063724248431748847058409228800102380361149168181342757548788917719266425912097511231254470928558754565772935004876091263546858874496810328654160281671257435018811850430562260236634165358473215467930052843435679799218098695228626337911231188550841791562662047388701083955022272022870337383147944927519844893304419694635940556472755166083391997620749078018037264936696653956440676303679128401234004317534600675915209978908129285001445917317115036356277313223639034539037456254173873997166479328073811076720348676542114527039596523015198748743674167260280744469613617495788229630941103503318882094486869151930916705921355104352643589972794021605558497844764294713011937836493754520360909809931326633249503088125695838981316061609590210949498530535814279659428020748121788554534696114461894008978619488111997721665251092006377678158356980581609621164503170013708521356837706458899841601487912146253674565324609500947757835251315886618518561224845417922857068204853091294548104750422854815676176205917188249914078497804844424016925000833010637303003002482195298842302874203712197045787894333382762268843388107616902214030657372213648271725342599743709992645957740361398865493742886428918036726939949959028850003420798832836779322816333879486411769507698833969407452551029556264397866129810971149274179165303630585221436579149400611221968849191602586629352367407310381934801460849748535741967717843620684698362862958215700450433499031480557020281493181797323856566930437368815506996229001190898237512627907964269147137653780011581938084510465456154762488154119249147527878960958268123177747176829469198339747602972783268715145728805983610594308263988107022496345573156436304572375531079818850065929543805417025089593559496319497456190115573397483740396107233344543140733266542697079502230306924408498342230754245729703038491550436491629322147571217653384241386107178885842151579323894705186574114247349487491507734517555903156315183616088189055386040062315633093402914043023665490883832556811214845512579670277643805277675753768850476168182771826802473312484784878192461287855204888617311600435446071232861488844830158335086135775522439087292087588538936679466450632205895490636944800896346029938799057922799363885922036751595134939467297923297292851906504894795796156892069914256662430765439127731777782414315368336553602464740809246679065744569215515061085826082009274008129931759673893881602646756848153513136813552066236580447614032322811629280539537748807090542433017532153781658157097633257555187002866775712959665197038062091862302161443604463178937353216376341622874744043285203210532816335404575055650301278990429591297722869859246169097508843614562774953374302674231574416152040082908276697650575059014289695263621858655899995633610831588003901012217162634508481216660776454014804100790536876616426498945764696940049689180013213398537581312619172551257147788687531492053546053387384925988537332714673488246553668188819894980005801948016108366185809812239204489440443931313538793409478713164759723583035238392903768020773800362148859775674240766894601794924749954725754380849599420518998751419746174120461021431909558508171079762038789768799048376658835457083655686967313650524314447067024632462383191496813833949757806065368288557215485709086188958869837889610097986980167362253802901650138255692239605789720899241779558175192202643061714230931295767530232347530055222769729356722958115217465954181233001256365521043067772718801494035510841878805475254370476741596769414958623518132625674767650265327643590786961169728401690763247595843262004807101557486375769502858831295183903890560730438092362403279208728034478726568803217894988116594890604004801356932241268134142039892843636396335886599850633810422294675331424949996564993223451597865959791412007682583364770442521491930346667494969094653030894335323948633751531343543546265362326193570951554423170914399764558440583806549656882386484316958544672732798759358662681633129452441089466918870133107858547151249641607466840539056030967145889086641819686920687755765600444639260044335855505040353009875123629808812677585760052074869441772235933829267700084483860902229638773751008641679618901690898765023804998569236436377008578105425555514344473267431717101024965664468921351148100553058556271716829973386447356850075795121818555691775276333142281443633362909359953620739998022218470835641135980494187663071182282033513470845175935959917065846516614185855814215708722520206863752683512970632138804873897328054922587963428476780388030418170718475495825281038912351048225653654670317945258056073936257451148767728806295547902011748963219138846860673100701980697298579086923582446957955815201169113175531064603517120018185615976462731456642125296361198804159158917610777572334671036757343614721936181092214100612527791386868379614584626509563651178586342890574050146372774849086404051903040045484157649090157892325207726443652797539799091761231066323347396301676952457829427287396359514050299915049189752516921264714838555818556319163393080252258813897143365727574252989377609246279029066734770811611874002861368898309962170478018230547704148389187295480622433502157898749768352085141581875733188900487677719452284714207894063293419148875867333692396634036784750027473330147705463151071229621519020840451480416885020548405443023921178010498704372783022504457264424328785627645998623764246000745472269220156764326140800316544427054262599191253223439993404033047475892478964256248722506309168213725472630203679390046166728734465752103249132839375750058372399888419193911450030018378660972043509687474731050868369794030887381838406014797231776429875602816730650402923975871391426676777782344270407807270648882617086131209192476903887109111023850378581205878424477122539791189612188913664989406183793445909126949147725198565408151855891725035470831704436214678421370218829068316244226806681256633382618276254672669972580155843137154475127443293235338871235452094843952552791799346537273818385763892867899936387925759009300786386959935612099528175666562824312371242544969772519548326910638207407301152019592397772813639359419105241339636943394691373808168729694221225859887057905506675308738469660253435929896698012192927389818021800595460786654066342419228119699211587036158882855897774016317586817080744675540662084828536851098531293772029965057520117303061487788495944060975123551324460871561817915295818290373131204769262507469137820471239488973006245537471576134895904261642626194834195604021059112657436607093304663311425649293013872504980093488655881427562109291853679611374459399036384957539482056769783360895597719473346463999307773844728586064275285262657127426513476473376789244016761576910171120414882326294603681080206625483140110055217807203177362752466030057921614559648917603515182742245095986261134704745681488692379914605788497597512070600448922443037418481771564017705444667795518751562697021619192971660464852991098807178850698453853626866076313803428708888077435624047246640959615013192823544179235054423862403273128503507547174638319878963526311966401282041057289508177489234558612532199398524597368013050126445088181436605775250891938530447289451636383174993412321978697783306042905072287581486374055723966398581923816504411610281854410187325205106828905251645899492643632763508197889507008677863479563513472886020762818872850428017702867108749515350934404603423918172052866445701746271068500907966329119410208984050667055997149579347646043314228838049527513803217098077590786332916793536901558091505313732249730076377490931071606078207638614078831413189317688154772657460102316244228029812151528540020323770785765375620044612050977421295512149500062145784801811246647916424369414996040469517808069523705748778775407586679071082781987164425408740648930080109166051449466471086241334761232254522214888734445386546033184133985670851863084081134992531902261733923174047550480401443908391291694878766611703524999393879829504105527329079173413056364289839033770286421121793249408750331448124924771025036521990599689815902128688700564062086380414392795794781141856103195032329856882578036583008713667724136047157026193147510717379387019162675332693013357665125790975917733793466349953768158602389574284423837308837312589774990858865441517635725811380387282838421689946810075068426726046906132721733735596313681783470742575558770113565044745136895776994389826825720677271475232705721453782170610897551051557367320093717039225564818242768329103757654857250270490780566366995838415543599114588614392710580349766764076296774823634872748286519851391385463006508891331663888647328447431474681331628392537131109689501049464844852436160317288014414423253573987615455606394375115744155787164503565426702840382516330513009192266831673249650888107831116517900412483592327047573718660766809540487408919268036523390731065562629781059689095469020797166918422514262711999724144278925231106027312736353903568916919665824952524681200379906464349773768105795804587492441631724432510317580401251569711213941915059709486467943803236182790030003426963417836410693941411404032348649806584674809895857282911287647367246268307918443774078755689402098951003260869530094794239460640322851032807994821618342979676273973424687895778065908876268122205203925200977963525225030477998887342212887324709910157517360913404113087869987852074558235736112034149159882804927650079320769033721718596946086192504940855439008346057373454769789888021890722201249085426737125958007355856467095788106520206387602706331043754273235725737917876617988337573712023626940897972855053150285886011528848899310419863315242032351652756356539427242456565189747918545337888976738580721954026476272171800414508685720310270235274708274552331308264610763293925670696611347803442553433363970459987108130888832404640215829201863455282471848191767935039207684041905787398846272925879155374175062088877909356447504158405160053854388211685020784684497169211311296691949235359621628252875916892821225782598948582557767882853139332676079926985972654748383634135640329657011349512305453731489744530254237366195653805895968708458996512205225887487762352701684540395724781500769280012298333887470226103910851313505504839746772441529378992698487273246247394442200352950042248681041312869613684672040627235649761266126468274275237587915910542318938690987415090337660572100440922110506413588126214221213033719086451366401176961782180274012090312609568591011927988959957336034883729681363783072464412806415037853622051789206162799556690207541792415829458136280139537425928792893964358543085700094151994478947233506403822292570355885221087359959660744549425018871558187912419296719766398028446013629298166448367486189800308859114908708856128466515903260937094052694113381288022396350990804036968414624705972128055762548729784110118753765842332356533695279924956760214147129201289976216652217343027840221597036266814965216050844763776424641039349103149404563094949447337360590711875496510659917760887039740741158858934041808969539584973234257992443833882724896123910085492254108338324998148151321491500786071551762530236543686362902623773889018761101560078620768778866481140620229813362058450524588320088290435836994874264035150256903744792673582052116998844981894266190455561162640161754429597181807828125709785426274434011786979124096981679716401553093798699521555212982065276029427043193492352458337813627310021287065062372358222252348268776379920223560097160856239670677381908361885433331060822110684576390338860277985176866074634577492638132826860035417322006205831913568703705717028845387477128490104548530095308326391030514968775157950720640579495825285076619247463288898600391543114070342933374158936140381684461226593165802675667518340904314100554437790883285096543190411236271151328405271297014580642650671062672866451006520839801765451167744753953755332878666374928081755019012020968869476191610138327890230333999101801004406735858043743044766283562816432393566166014286644648685471967443897876484544104768321425900292182429106114287817521501411442894764836466978154798617006356935534436266161072535151490592073773870411729280123591522296984483450608148554223933937863622963781224162678620829771871006601974400426636089170690827482392005166199719450739788808123528900773997810692179641879021973148930899590518905230996444207031503559881292949730014792678478094541799506960834779470611376988185648598336126334152979370742022745968393139987116798915046556604638511559767679694603220304844766519597671089464667991928112223459099611947292181595091112896405230130431900164124656976681361219393880081891778316694571006598755766674527432750812031647395295978915317545678384101568780980118236221057294836957704624232896020547789014069534537562252214805294840468729234109491460148773784630994247348461681093905584842234752779486722691181823321851582467935816871298192499380352422645934339663515668577043366235834415983812641934465309363603658485348167777567350587461605593193505966195095839915894397076339706183958836711560125158472522246853902699899846699888722334955534992252357247538659557296708970675787953871577120025534628219611795091542632688564542741231755216521989842584374466130882066125880323268298315505520673901837179397711212589408957064994862355736912874800754426681204886857513624465596209054153728702718225854473771638083720943840598566309892067040014793332403436658509642494160384693680139967926060957410070970110317204500288748645597123394957125102424084477707199834012303021649521483859618261175547465382400380713898908486069539027848326387985967869875056064507384760638125349705031467282889407825971962301614182649174040746173785384169793263314699224072843002209017181949645917182916101598416360402213293254321093683038350330147894034516138609601723981828709574510575484618491638333724945309085666850016276448905228400306222322805560211303776485538380174981264292106092200778724832407253584817650492513842264736643895435971813494557619550362984153122059226965271425999680122770753856048549274692501126351269766316483616361709192410381357514571012130627114809970402571590162845793393266773742369361620725975713737147773667679863158662514245269588880419637201688807253717298263213992549604612725988834810746104254368852041083943810865151410683806825198212218199795366140752822174637307456449890880703849605390525654533249998536709619822689637261679884307435615266392817747243017650106317728797512278515386207603566654543765978472579913089481169883311800363270999796043210648691230141701604370484512348899421609178771600138432376176416416970016298996470990468702509371561378434205793154494598195917271690420605230250707457626541379219559025770611177128954516514499597848716789142129164409194031301751105379314419453777958587945572417543127675688462326195233155489414734759713882559394891462081882642129194306356702147840845391614721149264361657686142096979630904109711563982795678567574308728746981295241998729470606122015046165280105863862770325421622468005278879177721370349593372846103869102539112694921415001711613031749634764126434379338831674589521346960024660530541704925146576273687007463550483865110175458554323747797386475077572628258133875612708061143375656485465467960629116028046441911677304174371272723364029876221675483801015382760152622267599120373519172292598801901706907676826683337963556974611307941971354814558745703149752502364233229309367488577011776634204914176426014294190671687524697551022272515821208501316347309417430248134770549841909279215182686005896814049438840030256060338712736993299466082540078845634396199117358750205975223565848814575015936874173149668258568761884805602364638559578608603933238480999900727616016607589266775902310812220759370317816966014015261802715351624683448853910486644860376454515666616451818935611854828016470006711296586554981560080768438229307453251177733720446644224802739400365257256526094277037826977093707270076964610401219490503726450173644339816885152785313100504629975726907039133987379958404582163761602878927192409131099568179135665186766959657440872484907815854509677421614849941922294934925011612620760026863884699919293644776970891075216254279579600496420054588425611792883369215747859168890041759240722194907306598639697855152681465810959997850345710654174910766956912132444105939488776441186560467298876905870310796224753701874999785869715887880208899008478262336085761346489596341353953873075233044814212755392351808643308457415938989585048982903816038868969994046548734053090981617691735443450058559419026344161728698034759287631299058176574427373327477706235424243088630945769739149167192049785440783157096315529861549905647988244810574730956719941120253064668091524566221557356576101127127792607508445198475711484892556739975591144857768702193948962638927152356049474556213502673384721839550647541998516088174149114441231167240888248250707327702585915969047882443670303167660398779097578291734524364260929602604417798054264387157250053311396796968510721399407928981620226045714433531399597381923337404200565587981954439836640920554072370371516575352561598323518944431765114020452612534128640628150464664891848543707252261917896189871951319893243117591403889664550024902259351228389341962782718993923531664159041640719221756326511400542660162087840575745741053982472586734952360847889615371972389552086649489251053521704748392408341749937429744496402901056851585544461650060779824114149146669625999014635706072983831532728275623124965033454224597340763882792431590370482310301482875492933488508128286384432109686751914497374176584057269163015162944154277034177262439147944512549548542316810705031033980702722583665912150408083309343888668138862354621168077154172123764394066735756985865885732313088060020156119145426557953283402484530987149280143837229837925608967865994462436733573536398729619577512523987955293120303829128323565119951428028513303091841628226217776113693411956484087829246529157310229554494997178655602838939010572771438958145658164056351750738690871816310050710170263204318620531060051126008372373843382704492975202607009003738963741852701017183358462464668116479429182030025049658937620474169389759810559981249243870943344938937008260115690451523205833470371816867785535388159984676217027981163506953402705490867244353770258763553574947337194992607948468587028163082004290268407582726403631703779278517809931685043303943402789237674345331505208102072401062896973329648735052128744510347358443054050597930188271207891543357587661759820233281694577282073595206414749960183477441070180119484636933867075813827982616421871385896850484082814314483237642178458139787348833130839912031314980533350344769435029915137722482568454869373421920800476338627456642982781219343412680537865806495003259432490019541342956009755479987784893343244318625119997908375857741631867928134049319012214631246278329190124929344017925261153352566772338834819744981085855151591202955882940165932474736690254928118405232003522269757653705092990876321518574370703900239089323124667637952453415718310164839600038811712733208774939860658446520753446218215496480603433235640019312043304859914974707563502465707326479449196170507274269209579260031083260939768984469723136955950856178613027988501378716982389189036502523680545738738957854194088739798444151304326300292817033344472230467455890869007710090760671170350322763908122666056544750879455433224596103842146290217798460931325237401357752849671457947748361420237422299396625298331827250732669247646649834710776934294518692242078182630348989710478943590321880174422612773532824965094408880370587476547944490626140755977708832060823044915189525455435723026110070871301403714155537018768662915385362790527685440345611235822336823259856876130335239533931665164257197452835600743947534632409240452718334934393985669963758751119326558100221637042719636322973309455544889645430831120958602350732447686173970110667232809293383807093284319121387359983817483744157580376561650745803487133099578708164727833739196392127603001724059781667659427997711170484338430703480309576744490174264062453443903738316702945751755660110567723168979941220343173787505846989474716292363461397526069500975602687428534166827373491540195366957018763866549003986852226015069666405034566226711460756274098444929018683029935766346265687657388680739300158550805628774754544458871766512615574172359482472668229985129329911653959016469973561353888332935519418161393978269866091358210722853849665858588550631871863008064633039187157435982013936808428556872575753328910118220208483066731273444880064958339604193707303798380801344584267551627491681690439842768389231981945762895320808365773585639967004583409508903894118045850551181147823035235718117712303452931404852333984337068237351807050108760315555251662458181294504605746720389095302772584924631737457389585930931383337708504334148431440136551776218607860894470073794509475816213350138719232902145764481648253283434108575978047203982030230335329876742948345213460516297230437724068448777873535046298975136205878550812832097883157569449834922120037061685861827569256116678170498338932327934086465138125833190968451006952162234964522039569656656356931683486133630512126154949338653315375036944049385182579529634315329075996214275955906790792118080207227203637715696767368019648772952055994157094805930827163507299921872687509164302218790784438623554700226183369583884199336631888271978938175992766426668376535692844139877748997244952643934472197736917996115743095057483492973784278736604537649865391234818562433503699366445353881975728845622188694573949502679013416768128840949243176421357328508643017421505743836146964863788848420964510500369529553832361446247928393837226466560421674588881099262244119509674651411483161224095636084186132082290023171051166707028493061764725828542289236020769877594316511433103848602905111993023488091042923744180583352980211990787947250081662389603180385865437818056867215298885620054845806160880208863076131123372687167261156550694050052787338932821442383201859134590825930455854822110907187251174934856641829152685495690442856603546166699907048804410819208068721342373963130032747495494677317188944485613812837828149911260433711017797381610275613898818502919170927459808600207233910822196684191566256248521288479959633692646366017181929482200293989134392855463762757913647991184962358144565936078944076488378167393841518965233137173382096776300573513774160661684129777473783318684128165785549430022404818043396555289822271905772578530108324267013120163001953214412366244723297509550651239612501970605974614706803782266926429730694338452239461437549911265547445475098259781777243322936837356487073041925321584941346161656250365680084263096993777211648494752828306126537150256457251190240611237292453904154456955728967326863788803006122523257332899428142956329800474483111672539425697564218446986850647305785900170377785156111432069104599642421362177854832855749481455468113104854123557579629869883260687395264867458893276135047866875557790026641091437442105793296137095022406269202092250044276441340766709210980866677196872663754504597006926113024666474255489258559267465595820469831058421644435492944126625357308886815504785672692001267575540973093336399204198602323174074701886678508021605716693668817526677047869856771357303119683327887643120842363230405286141776473002734721472521954678232635429199419117885841755584329043114967554842349184305553393539847307600122235558663042697210337920281500671389790619327371807975854043830590152780348728733676009726248569482776115501837398529485502705819684018656147081545748893771674844114755091679334544051366953874306179788164573815309873535677312439483642340943562337164345707968432573465615912643777277671181530908744866552596645688673555516321746413452723348765394659015076414176905608645536516559117859267393179408425036976098878704694105332358051795495633667602903261660967168234865664057904030402169258735334345876407191787436600433908469403505093077605083413068461185300896043626998429497730347149735010621284573775961680534353410975707706810813090429696149989171858772656386279429483090818383786425686456319008745110847013742640111938855688480342571173994368737365524851834087295324226502321754280930768256384460499689384372802846879369821730736945434644173451211030635871682649426751416042287351582212530595051277330251066765024110680258192234993070154821266967788049207294885749006471504898984627789353705558187563694337168077474945519438626480935110861626957967880078436616942873663481271084191969800019401247957354488663973613811434134884742253563755711811324713313395596645794845434474697610726267237334290311108815390384188134657883539429548134686997655745478308899812917434868437261685481798975799351162944942782758572486357834571806013408875630344939488350916000988219199479553446733476302045763169584910341367155443878219610700192304079037406162951596329532980846815184519947802757068438707465059807432162463321451239568521039368322348132386022857816660002048330294395027701818166004787888608765312850386634551180127744798471914832621976170037142867588637364612791431593315386306807072690157603918992928103310729727968947413751116294692120736554605414495161553127354308724358696667740525066142839425271160596420670504589074133113095500117829887012086845319005055514690971542474508392264148354019286240300355108305504319452005151817822342278494464087205590237927747309543581636346688532151241263260743408635897929071544048133403577160581020130514853745810004326857518957908140780396743584510051200755179184594826576873245441800058973818916902461657367488484173891307778752871771792848650012429615956709856742597545014456881315315086567875918550206056034472145697967613231537918289707109370762039639646733375247700151691893584878829407698118877522507261904016156075727497202454816470324279274981550148953509141706683036359406560497478715966786572696363124425739130663433789529911283675933703874610883394414205850831571743029294061593924137581535997645272203783516150688680504554728538219860659593672816564664811312302628764497492810252938384377729149871940938117450847102957277777320158260430014763955591705138348213572054780613318324338795250461285405969286379825958950984219183727327747407381709344725126468946389808542914588319829918375272794192916412233048951155221704846302874488629213440502313984139640099318210334337744092395121350293610178809223614090655310727056147841250643417637569215895626633505070384111560243385912672049092479839351521745726719759497243202778061815156347446205888935429327592095010495068546952592462758740901888643883498983421294037118182380067700674548215179109827214010745912255782960929827685070375939366327374575360335394259169083004922988944110462982286605058879240199212862668108203132550976182682728800096053514506384477387489078779823616547570265326694111560348485245564114223600032681951914332603188061416448748470990672006371031646417211072999727640598071470179703516732329875677434612529222395174724602290345062203762348650461625450560409325502485284361940147689103134339120428953235339280822980644540441168941332176791188664630235647908048715487072102336389047737855309041939964515210200942330047714978858451065201057019427054431518419341485155691905865678980876428330107086078841126515792923099741616159090878440830255204905197465625624144282258981784231975751127606272405875829577092908092128737867163731174690991774135852087969984097091538455832638193788019796168328769664418657087919024614838105756271131994505673992798250238090469455883001626373632100368405933923668713455896680159983246625056502667620461400820956533112122124299492501146162009640917542694078674163097292503958140174008175258484740773668258133556767178665861008658988340657622531773533486962054173289716949379201780003240162735499230478341737637832225646676838899222040107691107455849280720197329331662984680529209058011051636846974208012517157412268908102591770306949466616402621662844007804190498529283982155449866941060455656402681209002472093014785824038962769167665664307863182603235608359302711002506322697134043813620074540105240918306822144912812005304383136545185516441958635975751285469850748848991053816809511289908818991285353524789763221123608528472044172757056027533687353620956489180188942146907805437737638061657838540467272961402320291775392582834410144196089904975988133866681543426536646182350684059233615579071213273922018211554058842786165019573686380977214209663539128461117975923782502607692286899501541146011672025438075218983821651716116510188206259607906239143805316245542059660548286960912198886662563800825789689082004103830459487168127017966876100699108820699474437838477028169289371015261758318382607598925771737493292680338814964800379509830039774928337545827952222885503805631451089025750632007033780297023580050713564597858643125179178325474777421801930866014863184761743474184382525586760157578242480237373113666219781669031500505659392359376205290494372928620489687891261493557292688765363211053265595546051402492787152181226834314234750045600182498355519996354897404633003764651741268006840266482383910580118864379855038869733477793567777157731001790534616474694718851906816082818924931433662687168032379281119884203055075704105867155536884499959635935973943634323889095687885713897592527264413116193807293621992364340483673529787039193151295360685491522856788571367816713449498968811417474132618501389014065967816230210174146981592106330804706952135273307419661235515688852883948020236512389904715565235288062554097828364810316686423487042032508668832832456202599001879664373132781938378080367805580216325095997894534601873623949310999731514076211610352632942237960443923043207571774062478682311325013104035567386624754409452307424734021592666542554675535494223509896872634923021526068238173749495174182754332005796484111828483362122859469071265930292625413347543120291912675231706354486386108000265262293884299816241465892813140836274412600476078524225153968456812958435227735878729601518727413731915716720180791918095671404496435784045154300635982739126520925181982977693672729795796506577604410448177184183804264996038574023455904100549762118338130194898871152301160206439152884825266427331523365286952809528147190429568704725759261957492345075643485678424656124738328031239132973740669123792338262143608347222591966500197274037809710023936753281498166559641498957709379154214658559518322093994036297423708375058491334403696361152035018187263805836391429151150576396803336014719641078614912137130175843709587499885276966032155563859816636257120951563363322743198834840307890009182946596313005532965117040832137452532189937273636553623243761521299822423644338551347803049390119863645278332994463537050258300876145352361994266945253524090069772314873306233503186738609556180254917316622375057501677354502289100498960029372283952190054048456151479773487475358377778416225556226032917208319468061963774370798918928477956278690317075830381843074339211016342552679680861752813346299917473648862180573170003686437642631140267994299502654245036401319056893581233606184774493519594462749763492665107029150336933967569663746476964032134349656791792080364203393959475438444252692085202518236117945276345372168221193471897927093121736029740439462914980783493419579389776567707444808704166012692248114710070219489312662114585534602610047233994170710102740014144760823441295670398949408166966144777117329411756297889219690605559321850504056192787656631916973162975087435296046182371387215603909448925238257646639832582670547057298587796207116436864057444447530214913710168510403001958863078007028095565933120649143190101947506505912738511050155360540412554209937445153271039185386530474479164860223328375648570206848156843244540027649096564233852310220783506965134686324206462418599261392158404173537395598618678823757947958374379759686602292775011684664822784712943281663855361239439639056107866914341029473245055748654812484932473471653397876768993459944577390435919548783323050802977700102702269828959062293166594684313466961085572006202146143201940304073322715012087023399770870499597678795010353512805557387970241333626394739354220689980380050162071207606251168170834750501592486002652047524822690356566525784810043204795472477632219832903841154460222750480258458990124075659372700914789763057096432381646491319883885570238496544495163163421069495726580346742594632639589303051786032797007973588065982649492795449583505652882566226140127304053594646863198374579441429950952413319764214814501684170470648720938453479976298359156913552839986484887562699148969804679298712825993832993265302043876855158434644520282981112615868399519527564893339904991352709774336628720087414602604376355518579098554652929954034316795986046001764002980579429356412798344754871288143443594358148793047836490531087120300418720584509810393850512707262806981032596532644831900709483891676599171944546254591991704141397294294313284278036622656330342108068052903950412835711522486623740359243954501067491100486073650406321134084502498917111398233980309898037464472289529557057484282723594477752381814561683737164715438354854919348100494345505084332190581847427997270644970759746867344867693491158695474730970848933479036408672503156895608318052409651377718248914521281284218120457097888035032646541076828426538082192298257689347552206786013899025471254372319186533219988159743640314562808538725171070183143299392535177576188265297138986921353304697821179346073776322881934336632140798398768254321189905626954680321663204424575698029002818297698517280849407135023670329557896106777197461881325271724335917327974466437912948148690778975918637984965714243775831932869452980540621499932452959790766536078009909337917725589718955103059659098485757475815214277377783367478602489193995357216471663101625248542760606786109724925273604036948431991618534726071509646725364632785374799066213833827856984696241658950054520965009458317118456311344113694574252937333605002389186806501836771303619199805150857695558070947926144256941971420822948089461282276096800765203385797806294468816803866401642807648680463157570346048838455976928482226845897534201629615551501221796388564415614893191500176305215301920801031908474982829590643639273475016544809666989390943171096467420820715736321466991516875476269431061171200008428518800760409207753322255311419084653989614294839883201005360882537643212659600152211916864981707496620347209366071710644166068154343595640450490395308922317134119104947917022393433932405129202463510750307539757505551609219591642043838385099178781367581826178298543389747029694891623193788085184283259728047172999464162583914097889924643334798655207909285950791084520505192833364850725604763475524309604945665210833656540310136738349801943868815861085165944942973189265749645233583339627931624155597381801351724018752986007325582450159467014799226691860736372098414175978307548820794891294098568608488699295074548584779966806734447132918730536563011313033712035615549158300279123531816645338257695035528629621561435359715515530486542355138689412295811570033036966749528662121718998619940689710618567909184133913116642140636105875781193841769583035189106965865850087068627562247617316151112899398951303733416310187671206990626346197089218556549241082140540708703271027272742295492158320711495531687771019717512000217927547847237348987688551446913370664228162847095171774026224522130909074193519904782955946265700702967137953769664730448304271914568608044094325260650628038267449964651599301568514447735494911846189529644211807571873051523361925885430831738167258832867724899518856768466920635214787586003139118781518067454987824008109387627607787763050646738132065314181844655686844084859754934789592540912866298628883491936186741092625545950148100159462251902351069157659365996817082964932340836060010642782056313888281115841637268959844628734166878115434060619107216194477646540537874349910246520392507914254068211434912736649358157645269631749033497806537531917711478580137311190322393903940924732150233849461583051162609011088709718053142208206777256751617131280063403041008102764784828858259619866932117992958324461930162846593700115749333005661133457727958086144682924363329476389428443354756017025453432877120683658786935338226863658368478671991372679175220782306295616727591782206119757826786156542732508086268839768701596492880649049792063786078202854001790058531676127527944309822979458585870144371136945053174448658534298934818260730854677782208630858218175478821125937204104411189891417012288469783333046102822428087860793694917604235361690885094496083523913108101057942154895092935429632581979330669601594268943013492609961207319702548382328948995258435647303392043679220821499157990735978926353406471212609084193922425385221651699646647909440700439872913732604555190683697471754405778399425120294035970271002467517576360804644906337978067934392073457145571970301232724120369095505098148163185392819208382624818935518615129684812334715790254099224589939673942533463072139453580952049787088893377960585582312976417554159827155509341555017764492169947765271653213271138995081614128867969056054873158935997279530360443015871245256153272560629178884138368318064313043851309464814406052909480482552346410679785064908825285569792020971260468240555848607273741809132567827294403493838426531280679442363210618410089437968582098807272939864171235186111388147517402454435211324115369702533086209716151482255639499243333259479640483452682379484125815353099175968032606812291812170469344952965770767207675198178435515126711999672211269911029123375767137903552169898193858474939705917027613362026811104828245061272724953704429309024794014232127390238592679094571654030821368110152576658529990297792898268766208345108448330372030728171599289024123809139336164569487337431021284471245573271261079983341677996255524148186897480289952168764422807431780516248142676564108700864995438433645314574274375282274086026408814906367159295602839223016611873425998098072125653341343447838581314771695700382351400082690786089037033269712337913097364312176813166284631453719512148072874255027564026301297869317998301993991976427771029807891600681431218768305096942202240082352077893642444732265406138564047591091176663431612644563131908973524641267564123847101953460431482334283377544914535457078847892792429655388684928700779752535603457854171506671125129314416504317759212203501023089307050750693324507419091355006015860672512048373856597269803261884811013356538127948443249638914998518859256066057691040780196922015743767229675918507944613675862055714085129402512811577412282519907476933585895372467287019483818492354799436907749187837379873069207805272734684095423564711035007618115869747763631087850372618329984067314635639774213325428695356822948009482080488163503828192788202685851611361371226241580542142485108660499466255978981125929062931238366008863533919435182070350474196894751367837451503861148103800893578300066022228979543931982726601939484212564249765411264882419902468957823670984237252843005072294121131532739266137586024198159865451871598877165106438204606772046469777406618664315819019380632409953539036828459924494333363057780073806206598454088052545371632429344241497603512513312101611856817799535007377100093352071755554997435932212012274758507321288086188901019020705834549376293916864888383449405204612310525447289098659265190536706208263052941793085817581570804777892811019655776514889560047896754848844166553092043109071686878625508500904102350329307525607157403954328621347270433424799439220651865325649040227896844310469704561243562001019507427120283070783019755565461243829133263990729610406933951829876442266129400500086497654462255576546499303151069844498901188380430206671625957852902082767706466407547244321834029351356048480057178863371486076591223241111196744491488326060798108448744899038819228923087577235929103733881577241578844509743504083317899096414947849056959790709954449244058878786688417852851726300820470222784264804476979305797421932301689143359470292254128160255537325020718697937145839428675177474492461417544883739670258190402650843334197169583316870024668300687019913180821475192090522156308059337990601127354363436699557408390880838313141895754300885833394315521858538774061362197154219520992874557043394090669335933401310501085275754103938065080697249681893023992794329085560603363091946321757561537978330931562536666152200740405355471032566279193384073744799940128856534373356040438414120985168669189994816011607499540245809804068434708754832610430814009267415939840720095974953804715836612277691747662051584330347178143876633864260681315814561362671042755875817597285854126881996375079689254891770900047383757935470945445282990796118191991625354437413597035881336698202243168402110729408108857674779494411621291762948064550748600509271159301442303541765130893243272291087415226826494572321706446683612165677863713547292675575070089697525439986779276995191520182217403161992044127770501873603080417967912835515679999909388957208378359115616989286838117448375113752554494764469017934410428130209977020251051094716701770545478150021661508797135740520071493207803442150496533885627275374912887864907793237076915879688600852150645612208134869220690409976959213955393613236859275723670969147039398043160006095663967472859108473992976697529330061498487543932700446328911121804572941434198516159128971907347494869301017697282566121600164712420105749641704860755318659604266575255705517431341948573283052532796826801427126412396669716315589936089466518504646490089216211096642234464816109202842632750883536168985613111455328307391688755436721833658144402851029680782268456226217934972716101108654781104363925393334017464377513675339708434030166642931061640411858607423284867297282011414278438888730679095881231212003194189128721038384745290902701470699299938595683862049325891240833233623919655248781500191161925742919397161898855535811993743678479170316035237579416710994598658504899475142677494220023570184857611598778785365248984266359476665554879798532833113599537313581861498193167478902604685373049878469705541890881585390180706373692407925730417543020778420592270222807329651356266481570885276166693378908268837880528841962175821288713354646639106965921248332627577503171721896538425593882676358042409277380179746178064904061691479426506967801578598692478684897408366783655306440138991631978450239094757063917391088218309436589568911942530416795950748659566959563731260587369903758446031874958694494196001818867967961686407879768663459932458575744614118303039188173981383023925029552780466555229814433854579254066796049157478687362156537637155030456134244345603482105039393206075062738330993093815790558340530974366239156247581109189710346661219044919982569347699090100915235060600398653174276620529664308273959393932955993931668515195084573018971033363808114727036062897372701724083155164719808820859383396132201456049736375894737724017686969142584815334327914600832879729481680988339683003437797798206616087730242624461861202121598297333045332371612276756512222067527467514606445972114583497886085032922043220356519746320823155793497751430494300840503507214407216194270582742252647493283995421843118200048496298260794629336752345108105058802320597146289675448357799632240014578502899343671140081364115174084181222571897787310987697085326220932562927973268334907020442145504708614303642492036529870210425334665972883697856241079037908470794764078166739182454535714337332199978587449110975204406315952223442222231653184530760866458871178267104872797072600090501055976715346009171389661944083145896170754060657106388015059690048176856421693567858534464931793918656646926875000457589332057742473665645212087210604602608872731233895263002951223297308440509655884284277569366123962202434828281844662688727819296666906793290239762089381381396408951344053621890918323482111413354959960959818478913123758911517461860740480656366511521034096601376697701041455459073281860642506801018969671938684850969179204524886479835188352653162609223085901438767292113924696632780685154321298188283434577971808574021690031978526228680429523119090557918887921931096864007041690770476195734038437929041511059158354165963649564372973025336946021586514689303307084472728939238895187042204792612725688136997828145368344388369332678683993651286512878613201162337713850447759614294915776788179559778415007211582946541124207409385552998916461962253273711140463358292298708731799692170425201225079151635838935628905511396068809218079661677024322315036655503737122132030044703680377159164714898672814806974734787455323215228500969460451960827155512576247385368672087737016715165021827046789349245052518271234732034726752717669322116954746799991720972534574963092766448256014202992064620627196882123961176222890259167654371107687585004265275999113924238057580420025294488801471150900649195205281724088035257726326387157275928237069643167496870290145982410299703804076959745549794433776807649836872166336902826003937943225585632550116711094314906287079388265542356738869100564089469909395925271765483408595543493701718118746255290365184047735189721859098491461766563536132532972371380904081097288734244103918482752051530023874260787031170683462778497710582235400232395789885986075238806429167759280734143373793324690310508024804494997874650952740326199076436451814918191928940111114891363084086756686355280963081420767594587033673824649002903035538355438990083498155112110928976712446621498545626908630062251874890336686370958784524612403682673363610505633154159923866738632464148364816005505271313379985514922279558821044451831888502740666543973668021284773403634137247657610533987599361778578656866521637160701237931579730286406047216939819311918686812687945712980774091772375379136230265033770427200944491803931111568384681538950368752805020478777391259401508590062936500272430280618590451396821249325629864817095249876195349147500508760481905788015127017458690799660612068447688394575238223145609697803047435038515466086714070049797830341539854881349093075784469709171722108705450989520096296230724130129466685063923791135063057713877119753899760324560062483002706168647115294532163024406445670420950553154277980140189574477314543485212156954049057251142993288573182862902045416361775932883099808183632369844743269845160246713103132603410673917738265603847729456614079455830449560286545487737091457868363508782054667908636950266798564930607171130354377616180429997453558259346328315859329993434750456555394319864994623824764439349501971518429836705614444291134923190008742986615120504372787250823491243446300495267091389202678661013959915495982196356210079711932110646621542768152254382369258634572261077355071630625844493538963707920502305829999429313804110570275380986093415684506134042023333188324836100935167964901081588650003344651692545223034422723257091216233324314969931636022389447986021152503075433402333400611309015968762627722103796316410429545517228695751423898461546389969542242403237148137684678247095907101346921511609491801068403305351407544094359510166400001578161320191637241279558102425328589417378997734033655639969435099316197960317911740642338724908266904990575010635690137029625380434293358145311932176355094166771614481057264232897281070943482284066723600319621631634222945470926188278643960643266511928534964560110276733995028246794762624148861572857650246839684138126367387944409357928413954240679415053260770627898969914419300332829414941461322277754013195397485690148399682197127398996314258377566662099103784840169102795815442716219415054205207326695098168176597782367673618400455268034416378302356899233884404082018010893422352738784066157044819040673696344644365875096056051339626173719909299389726073072854835197376232446795849330736800506148774738710304932114939073351104120525921914216207425467947277097685919625410699543759055911621134319159500096604057468274235846910276587725049044902310765087525967315056164524264112726977896413437211016844707024529229045818524304957306392525477016982585405717639833233500821429811661475211373308681197250089230834466294969392121016777647741713039875288540275865296018976862231049569072020571897840723274139977139202386203397107652038432111181538477775562209366457437485450870779577088468931021007839038634808392374421572068615833654340181166305032436912416796874481802690203432061681276758254532643102138428897123578478540709592110637300722524551479791930935483590416654694950990954886979208973730989138197090333765514356713352121794067452997759820947042746005044153769002582517346740780007111881195387088966215041336095902663556213567363485725287402808840708018369228960130968794123058027271631716368399088975776777822395267430335564330845128254271946905138231292153583733174506615269568372350914975597039047325147055983729024487428461594742581014859559269789589011977137804643766053795792741424740900407794486841853777029889414796645184999857552912877093297814180596498723976335807223304295020013772563093809843324654690018552532121402130831986097709640599528931432822041255494158593742795883754630290015820022596878780886743976371790089113169779741465699538439282771573647622807782271778930523438981132919435340934912335549748161734579018225010977193917749623820646681091990909671816249030736484923732675873942029902754407211737784006135173642755274102392562903383256853911408916208812269465951166946310644345976508485324543910736287929962458917050488559606359098635145670147079977021899571438044705326905382466983552441181599937988153028999734916558575750351148532205307959451732212257012117695340985565514182846589758161203598350991202148643520244704959306286135557793975336228535438003833297305869483661504955411535844303218635873240789067974608783718990421262362777293628456869269838865439406107219827853359428370229909802997169985234541848934258741976149526704979790654688605655156413373242931646567243973532688216177479741939032353533186743862839206453318268246320042316114361536085363535377098816206545640161861164995357386635909569314850842264572543398604322435080701031407093394686824591949108708705936924355065011997588091858109393237374357368725075079671477510197197850003912965760255457328252160713681916141302514821261956371393935873520381415035251122472100514815183526083771987461810575869874139751396112029346351699519986525011961985566194109522530273077286267374067516679980187147000995645980282788073291951004930484646877993401165970021056703243194926748107830355493653380260193059500079402166706299283618220192279407805488814301361641051798995808414195077698491997043352036952702137853307313720548817629211071856653244191216543455073269382253243155876606805852614737251313855267996830536103540817946067477593914705606617645072883259840156328353003947847909637661964461018023266200162003476089684465426552319048847178600619110462018841967040471666232410261686028972999640984640156522049062261316040699875324897813669267787863197106701712128996175941162982598380316647105187983350825258825884625329631152220365072949229689216088927291544924168496819669881486674232340500727686648397972603577322592278698508783172066336567089710856355665442624547126449264694185142603644461383053637124925497521460171459840953159134000489339773352312868498573873152293251355381836156180925512175137760328402527597783739563425949639277431824537748088838584152757606284093047241734673977985154758317770422318108278653677547450591621898485195120075603901474420286099595600997373443653369134601180175711626059708991309012758990159752325686436003118092532654475741635140536353830739791167420065777486726550402024586866855213485077225515051141245044893146574702253163510175663126043472365996850834160492279963263022635307862454484833987065283166264553459486299073666880531489620713819420428589487109228129356282363527308478670046547778576005068247134269907132459480394216715807020561741005951958784493585889859535582508380042183083581321594656148186332818406874559733485932893379848996005761096892987511133426193548153516953878592172543166205752931453798004044024565985053489336545283005473142981006535897365640934439867981630004004362772666062851448582099684054643362015993198703193562980296582124282224265649826348163120932412689947875074488291986170702762542044192530976378289992269040119873227160579145189165076390282914407898489615331333136192526640771394550824069781020619505683660893189251878842839208487599234438285302961592968664743270707072724020211719659326308243295960170227053872987369876636828759514153548268306785723082957458712895363958194313767306783755071964839534250569575666397042930134199892253714492673388363401511342067344459192569557652203324450913965389114686540424610060197647819036657180090246157575961130843897663917810595090862169254426241765616446867547169483954209291174014162983337901245330434630964604683496792749880469300015677311687478740043129752690708141963554981712554909725243543567241283285883787949603055939194369387251941030946931787707698891131917115260699625058852136270334337184600624117750589183205232388730357474623890427662936687303802118683599718967029023776882479235428395547952217412764136855426947436311677960307289262289374996987207709575054882663791249657831727613885031767494816515657140208962622497456058875753318119801884800141197136115533144037377755226122932655681514682070706524832778380806130433030413188038193290792161100038197540896455539366651356928681767544786806937787993223185131583870120164069054488984691036178338489504548810162489526080610823114839389531003324823590635427943017382302588721329494697429404626042778597234222363910563674520263438634160964914892206379522370008666109939875664064093859598549070151684693466396660145737218273986563318390107198458741624977801158657942152317571637424705481915174420734832670287016080043938686577695091075342724613480865872429949877994052223700933508772649185077017665040213008110153722072530199538044611737959044162543867977223919320487792167449489952695775938805489388049015749534920869638758339470932012978717470311057887280102407041547347167506945400125532145280209402152544038116613938084158785260725933612717716056293809840303528370178305576914766931752358452669196669534819561024105083166342153347227233044602709500284955973956113420238224554762347610488040557203853596272910583240061293057359917801720940591808834880834429276968894836461452147870072087051483273946206522436781127865879418855095525749658932574239747192052709605009858185307423213652783723077493081429508754660871565495053412572323790078705863753158332390441702744552697471536578554281370406097479425451681184143819280745703818758412215983194469193484532436758987217367116884849486627843865483872377220642333104255813628593135784430911204015203308404359420237534522137673553622918688049713522263828268157539018940782960947611481284807341130788860987256864731556921724765851207985876134601809088142785017050311744420402730090633660833784373783714360662113768821898704803416370493641875981299949813513128811312723868757228703438198299492970122091263619763836074397876011506675527046766935722395701667666908143120180409011728230239580364404500187203243274157388340687415240232035302935596152844199474871189838424174763661528179450476670304013884808227499279429007619453297069957173843882959956424588896017577317602010247830441525448923554993816975478607767255083787502922913644432593397722014892691961374141808993290417076300064295047225759870414405080256877670303423493783128301594766993212870377854711186311052317619700273982922282974069838981210831112629267391888565356058356940920683966007142824587007802290804991240599597710153342922967563477466454069439658198452926007866699179310489552160679658046003015570449028623302827323797917927546877847954569924438359805187620936176419535570884330762687357269143738528851118891424145548883224340676467642826070905322038801865341727431065091538097480355123465049230139050986593261305329768732744638024231342281179441929632724699765063885526379410507657814386092348533017238155414550057603785031278546740645739290601903767953387847774385499614971189718511256714864666495835319124190860235833874552898797263646898027822284185608957712760098238575557287817638342592493643195442152474388139354226148070527595889532873967665888100103866149328535556254989657846095423111983147656408339798571368342980482323969747692995073393151272673947756726039471512232409933108449460789136677240812238387922370408595831532943635953739884662030079454410310634347633346687076828012662569743777939400586466320952626582771382806507639845858473473233184661639999451685142875976243363778343338683912829232039048440319976426472081363523519991973464174301479470500386006823730297152788942340353960266369530460179048407119245155798980757004202408932839998186532360125230219153736729609237559899991437591687375388547478330615418478646893369885063372993102075265693036519518542365028366837666467471938446508615275286993004832558653490497210170615539567113690747283798371880873805601537636185465359639858902216945515426004721898314162806021774704939887142079033771432534470349880426398916280700432183830245040823908958590274519263955830406344117936008665401496779449353390450424673132395134704030266602582301043904614970065575644734416992412030187851832160377355233507685933437275749600176344370449375436420456806284820645769570762310660369700652940025040611285536144435998540176766029962104478052408244340876519084649992616712234197912399371002106247818394515236179808285694172653835130272701795980243066102758865078204201467276425738679451918373940221106099709491982171152289761209025670804239416592115758031771880182998261806224654002121087395505778886862771838229510168141393321991221644219185179897807817057129002626057646194766752869340688837010843776226838920946814020671134346600295128415870112540266130036785294405055170732546949909092501738098766640963096343146256651538275681300891701240934560523050176684468124679732246633300913734990924082459736661568257357563707017016896582179029800406408637571143889584124100911315162159462492789777611917175191783131182113525077594241140242098174290819471550034279618840146406386216320343494810699955937714871862692788393772885551830794735204912551617838252921711051465306544980654116068238345740688496344530244546893179314048663486295229107308237325856723031256939854254280393507872012076798326803920828762015794363053516776298855469490936147675771402749634852678713247151584295448111220592962129726591843265400379905715463668914562537403427764479441013161475678760197366828819070826159876361538942929356791182757201011080943558421367006792337910650805898429594106225448885751371291954872105559389038911163136953665872827490674092554698036023407389189971201670375154617766251261723229264054594934775679563787936917156442064720963888629551834949642516744084376854396428217230325280658381384402029126056786595270152251769664000618710793191373069771429784643006194875150578585171663208440939524391948535553818509364615912098312965460265901235787819990608532382410111663365303561523747799732313911021263454441311842602000929164768805546100956909594679446310107749588603147128008938438960044502908547244783291410704103705191477575477042404737632711165623603420167972358267009925594650029471699811499021330169091380594175089751954195637825398754572601634772480811202271480537041283259585933346260321546348946805192217968303039827660957800334150530033072128340645169007078362969303214956579215249034084002355461471818633413111603023970007693558463394510501216082200522143496962128988090691357031147673656559919281439405181384293492476908115652131532722594521597055126414519903645772119067006143708913636780142392751820564194721221755114245136560613994526119712852706290056760411564687894680323402136415143829015911642009560909291582110140270582331214854836243530581035646957106285792804058022284910008859248729539247733650320782315193768884046228295249578460222769340962700089408966965888037173758058551502100849106943785922638975730141967849385308030839134586761695114792142011521766738728580745405252439309824989458788302046351146568790962384535438194439569643309786438985339202563566964214990980656327779282410516194313743894276663959937521859204444636630469323816581914780578266206654676796811921975360233134714356296619987096512693689491497790648508220275870593669915915430077247992433022876574382790795553123303631745031371736692575940364534473041391347200846192414808786471794947915257883531453485524129387639106298469593604741085169283062799712550192219754100383955645359848913115601186588034877505209961463412466815002227579406275131334572050141274024178346086036533485281584053306821109375871359997602132390483689286312313221528253893344307536829778828215590063683280057956184236415666189877930300696197397359434640687187974156175935417434482105304840853937799208778588024656488503358881532425368667189073169433241641913922982912778861830690518347015242473929334275381610538271137329852961905125039230128343434089009198426541075775465493837263562937130568823012709431571323289481481761292444154085005613833673107583667925804079275153679485192732009684600358392361652041374224382802985043483053974043253669053901976010118650336744484757394461368415217645446840736065909373578110517345829119969489096446946918130436897879887873175725279512173559467385987943328911100689066282010029135554005514569678807078794123357397809948536527469282174612010438484650061758050944987115852625432282227475970863964757499232259801682995335641898363390846344639517812399874993566159030940802212218277962167865605869242176710445265043810076784417908391490057295019046185512317113723546873001826015640768757025484460189251673306083876300410873653892458487290107278494980699094977207676309055044295695588493618027496767349022058677514592261699993212767523144761287285845211868867304400259676860678452485745928788168566149634046697324613526540738213341985444708904646482338838745945049794302561109609615960788965761017330775005246212291314552152156630336203553125916381024701066089701125744711763492568322017338288686031712652974329976046284662494664552328792739931642258053446999173126965277481477468881175810905701552162827616136576204575620529534223947241616860665307793853597547983576848195160904841240471486380113663458289237671164956923664801843992916277343245205850765357470062696923168549752147053732470125176930857516839096939168418883799386610618654847103124787393754491513313555823309653182078208005471456274546267038354502645942940957176831294687666594701667342118885387390962422220450848702414089265798163703480759809844831292904999954616530636968784815395954252683389236464247202042494189141137803156392482205568975973970621388506186196882431713172888790511354719359642156691164984830453488653423999842897389111035759715775663847776945921036204892047516656793639308123970337013392889924835363447043078599316227522095718722349154506858098056177192673385784138413440367402243403531650887527492551310119598728043293072571967961802071172015243827467631785598807050642397697402531490714277217684150013399354089771262287633644787975314614473011557538014353712715018094914885780536095429909067138402388513727911877500408395643756227687634147744351651529250471523557061538924494428069137605271354640635650683218128356901542671914601707818843334220101871142604754168796837647449857960364442292925116902283127941690559420258984931952485578613035669375673392786957641377694303931847943586795903717212852677878570673100184015302354506479256204641875042630096109901589865110943868068658017897902934263842453942033062084165292393592148843721363299290208085775657990095156572086916940419493572871153833807850553864137428037854493610332261682830963429129694603792690232070538912263876282664036333227354378178395025701877786740882700032838415273335967204432616756162634962450665094172767035029274255320776181934529558107291475327220350174157300720544660002540497892811586269038455111403459083094728693747902095201975131394119113081824587411131172976415453986930891474897953995866632433875488288455158263611891647045668306805635017848094990445581464030823150174172946806932268483484888024646139793931816800892806855228291647845065316455890809047963338885610279056926542818654906439649851488237994979503007563997111243633733117159275493695412107264923307418441534409218442740936582943494708661288842996130230621117356204557873039481093883510945530815391846606453229169634181518351033489147837504543067532173648130761659910401692013350928668350505752482738847973676822015178773657884254225498061361652916815075904212121975295244406830334436807694199299555601952865141168573540967942219821725834878624277248323837520146932746413314120401637227011373006006119414652936545130735398644057046308489680583724516996443316420928151105561878101435151721846950473167442696077161175476085059193419486580810802982782541122433559422571472420005051604014995371744349832307528799635927323233542015446887211366443223519525085987443268709798995281066117266480037509273468064193469702906679831844930220153518347822387374000421870837451397338004186684069997861612635229909982498510634557649074691925108945738640976307895449392737536155614998593322261793560281749506555538349630238319549792247303980594920356859442352407437192571567881000516187419864332578928036388830155242697072654754169879240183888512206877382953382196619559484020420875418027554682790817470372425991073526418709193594758776146193472716081310331342565024406844434869229570924065289865308040530986103767005798252431300844862408350792839722896315113816436340587278707056307003579756562840488541222651167974865542836068578252815654153793914999573425656617272650809487006179543652211012948172074533718668984825879559005683515846436049803446560309523815768585406387568104677652340718946840085178994813263948872294813672943148919150513524135905434443095040022690303251238134665604853039001620179147335886860842075949609372143578966675184712778669431110543036346801336181363313541597920857442344849168674920713267843509300250873375696873334004576097295619907846375545490358590683690279548546270758361026388127864666737982648365985891619684055558832571189133054570054399974438028706461130923933390637529160095731097204340989725796024248732027960915011354509171828738487603464699450290173894846429494214661556725220569538780467912618034946493918178783068643002553423331507333266572272068010804494897357782664416406560729518992704843082229552917469841063444281486321528876647918322701337717773326670286986020012325139349937073760891662899953102685026139057605326540929129594363131785715587768283370157057826027902123750519202868465714981352407209884355647105423942306490681811902941265804456944111579795250658781097999323884572332936325983630806705271266517011220540391545312677172811394666865696640836059613566848106522259272236872075122904227335337662913731595820201286351844814804039618558710337838711351916605531004541812713032082947296639513296431023830804191044842826851722731702926146487891768808625540294025845338186362487528426663719244968334781548616391068810789324136723498467527340477731922413149492252504236751626364992579750522137596393602289416106140327036823866163721232273207624010698974513294652902865563699135107408455940046219905634834356801025842955382946742518160227768772341043222428646397124859038521868525826938615668807122052892208654189290261533579780615347671907638386455694905883441366219090434109549979770066642383465453022950586072324965022386921978864594361060395749617907422002147886778019978387373515535635175137492355507793304607160768572684073069110570312668001510881047130355912951643064746986154946365558028362835979073181507441377858476526745465705119690835720284854007025196156593434913069636549806796823890292722938966660091099174585570418919893005580561893094306411072603542593667242542109613027100458992372213836545774773489544268015762390868675189810176324412942702145760049573280586941282811981442308179646549267850590684240531880765724145795272297923550285960823355373441019159973171431931367036614675756492916602071425029072276187735182512342457189322500063785792646622655904148334860506809586757567443649360265950555333355860950825073565429531296261872574015381174017528584072814440269524683850895966477666621650685364180603054491297046159401524150340473336510232229346639106852742783712562188189057222214483296648021323770411862289964979601598429117415264107330464579049613465621746641246024831395723063819857034525147685296893024439322140712278954950780012182579466114775942361742969579093429052726015855646005098597303030410599815569719077079617990533661439124464728159966911382353408033267574657542241115572228781406382944646721530162998970954664434425929793080936249606598481630952079614702411191742261545719555837034891418913486651559961437643502987352549681465712781909331900939115586021083430504444495008214963637171202458615669170698219365319720031464136182403471377415818326352186211987235528587039844133513391475431617708022882553023482217667562443910289619147997937038684166787282853965581908709224602605553783918914820732650670356171733075781072664492689384762424934719600500992457551907364969177193017650276599405691140871871965831776778996565788805148377106647607880174328312730907021436648341604984552392992978470601148366180007370260833058538661159862305467683570206485528806294170133143358821072239792479659002609452946377936196585748897981880046640714090980855649007928562193372678970238271337482251977142818595954620438369152480712863407567565767517000504201516209654617140932383057844235295541112737810078722421246365371895324751743720683140076913449494596300123538230255292542383206315421736248092930731131383848950209986620355036376682407133474645874600680011364414937382533459119517289023680841712470968148661009910818706617981249154048548436251578095138981317087855530762708788242182488406437656278633766305736226429667134571098646485019325240901613081147625699481461541101225267231570658424301592979133398410172396607543834096673728571171600594816819338674847947069090655922738120989112362683879388806263990898455286397389651694114751202510917951892070488004053823996114845913150677016165144613294407046273944331544177562472447038381356614815024345241748307251399728505646498805171465701775139890305824556585902475169917868784057452027033934824731274005513506372323701948597892206344343737569079290637577429697893725142332860081181924920128774739874751731252186881844655911362799901751740573202572191849063009071306050119283966502164936462128631368793231863760856918177605774550762027875291997679392608686297787510758336130584803262531464570158873661317639998390241908235816316374254518300486420319580894677231324474824717313748667027373627079768224491684799102781659294267875451548220386838992493352316637499380259126628008591984899839905418470899783117438020068690901414500309295151946060525511050527255937848016371133455316161435285044118356401722247262301828257850872330057271545533971473382227127941820039562956253535244739596321222942479747128054672009931072359265871264826673647135743149516661459893223104160792956425517524313965751972513192858693279675035072973334104637171889509691791376870853397717028323660075754740903809465324383339161693689022770592618399540634410639913678126579520127205083787397282841336471417087611923329635629866716294366726018857289238360291434033972854753416508346953273653715631343037279698438862262294110423011668926517377389488088248970601401161047504742998247507997573165192070253999803658907814462057783008094168666359378752203662468964258484050663924208101924642831113657883955507646187397262678379677035631892251064143531380961598568068581559596621671934776682713985971924277814471571156572809239828791028485077020753960460850193200917961788605735608296336985047060568060690745964549210799436005658067231413618495230166410104518678054785722628889868729987803343901889351048529747339264978288353027253131135472699584093187759260665608539153872524811711999849150193831722385900550382312541195036679323748199706177404872174580861085674892112210840276684331425774947267643185342999652566805313764735330904822101582350495644513470975467319229596329865952863208504447940875152252137537380561137967370331523222004182611300043419662448054812015019864568983633344435075614130210127045342148406290599686273077174224166095621493115714788614772140792198615806658843091138146667272898823381617728956326596176493496574789820065242380155831420803629012488762145098112439725573512581721503994548599977346100814825805416400756662431504614806728097942269374995546580711507842818824546998299835895812552270791512390560890095897045185760822335807659747509506420623334976892075005787287656695414327356246777264983599254409953313239157789026748842740523219261248736150417838441359621169706331774899865407048766683425577957974497572431766999120516729655632156507572993480632374230896717554736221776772485877238875148816821266705472175767883672330926046923431101419503171530911376653862197723003679031066796114382677632559778089394369060468718120068792619097459002660382059021693777635015849001690696205332152656638134671876527937103407022296987195693846760303258313351648881658837813445574132831590795777540209872799123692040486368399479654345613525152912362184077966750412324964015648145642556081030401276472285522321324449355146167509359855777707346010733903659565344926468278075973243052110796649338356031409674704179099800231515859575059158258191943192851776376096314160647609334821507153569437605884989982770783779663620159129159265296882195787289493273237726858242019640282877524635929880470379356741498057509387737947358481203792899149078254240186546649128134315492370257627494743359963595008310860688587906933984755204397026015964062894517187621300854017445777789027374630617952737647175965547129486794980282929824263107374489130255223341977783221554027690196986936346519495994778277985834911015986648738375477059675443388737504569881106514554220042417055339263677090934284234255436677331181791651435044796290394593439507046923599472606665442009986879351310134160631407763252815771271008144272008970885271780131081604489545309854517220313507255250985854464090504462549728691269948038795862345083419353345800353547804989502713737458674981128126978416624287003015150798592022869077673217789239204356161372604474580805661918445803883727568070410764709381512680173287538116519843369195001424460777808016848793647483084797314234502717155147458843810190461521022699034683970616330555709451799291003285528894917843919023720327683151752917380783650565345910710958295192443923546429956572293685802068810078692078113273318293139143710992184740646613782724244230431192241821276662444505129543562339456837169825346593863719120488764999002825269504436609919566916002892732845613772660364264769593473156394421869612080479613032067309461006662968483217279822057507555441198411860426506136499951966748885928967804722732232405086529285542614857454651760247181324701908669694914093119497085659695327100095319373705748690983675715394647375299155751338225288882750002158245859840130583529839854678825240055259657281843620816361569297181113021308291558639323599441201230445743112406733295759144312280715789051506712883408855819042191871565599914227565149300427243801351810574367377505351225283871813590514054517229969519125532486744243471185765371039540266067440529289760330660341931451174186941794160245246928405010617577449318039592218531454566437554550639783598919514597342265175485898370280069253223815217562952300620169841386093311960165637220109610696025827165261670428423908747846304105443055261743140537575807137522113031007107549345896338244687902232918572680344247853831362941316549127315304766646606338287510640545497170690007021602829026666560686121954076233819046847926110858357522933148949873912701460469757366819713878032712781695193657589188860002284796101069600677722780726929600814969524932071747232212876608063478150329016024287782888458200812355745063003643957735219229834051301650128416136458521673038388182999789634068064873792370791045139622724613225716938642987496007373300060811421965400976467227764074953249140113142525325800932556422614561983266220387237079058167735949005357251228352586340799353286509689927485927899908903097639464492137805895585458047508925922341679809756456981303223356129413828674221018209144576053043581206119923947869503411326247892444499828649432199902736725540074528643176486884894301101640879005436306186440751992953365347425563735096478441404976237043044646237697483926918104434530911350959826934973765458472273981816785157843223470911477925553736498151462899899590765461921739715759900462641576215132189208037409980450841326119775002362069568503028290227058658026877588810001515223044341221862139693468816554477084551708885672712410325858826168441366289560941644424023587989889674558403385838474748708791477066872593023723309692611253995981089089870069686271866527575945015151884755565372652855455071465215513524436924973358448623563121982358035439747436278689089674782764592345296179661353479733814514233744178719800289326291260545543257783230442598193440031164074857781275799820010078416211544210084258099752519523360006072446429056739034475173399459101644704734860292518642053955191129281274255600525003798153528899023192884652463746030442333895935680584369019797210002028425723693936466061071084346945122033012877547929681187075981695751628866460707767680095846175343525098179116509908398894852948697820630491784262274453653133204217736390615653031468063964282596615495766205053728671715355255591474185032559580377845775993835756581545310720596795871103224946529680247404333219349664888554303689744688627861842561916953636106855496034292989459419393371717021396539485301633022838703570574943525928885899983986978799600825893081609843130723569025550534563362396124001876664239199753179481546854592054451592440163704121167392163872609658778885526744919061728151196985703605610679533768377670988160708106166329140156898770618961309578323437383186597846533578347315371319524168671641944413788556745290348218511808269471188595182220651183128536601382284149169540904506175259239179602052096024901673391703448766821697655125429293626372063789798352700937686548834451442779087951203083289933183420316665854047295732166209297102789438647131211085810207402165473154926880059416966487934917988057336953361146816674236856469063053379692890628990598014908828183998715706952773479584210634464179861461798328031733195976586143544063260420999016882161654650160102247087483755957304434694502966365922384572140342164187215486025511998009633343516544096336644391805217647768873085508515944897215719045032019683969006406446904331231374228896265289946560458260288824737870201485214614099779005207121821940786175164622643003473141573715119675596196880380858343177687961240983007836286953188695993768264914834797917082690193788897867261234095534478160230116770186256097027293229412496365226352536209951630969987903117745117151459529979030380625591268405303376053672665534469483721875110146479970327018821142518390541850086030153946725463409906419081443451920726059433491604201793298092113977435053573911906807724290394862046499708710933188697828652700191265761627206004617698977213541760787807749389494797240386623688344033208458249880875071720258220803456401476551379459627838985977844910994312927963674096844561306314446818991293322921747754287055091609222718490532523908250987947203315506880652356685926104738321958611275348170121245928226552583557208128199200340476602917001619016765667057989954070510909226371775968538012368827699524816445102723755611332906593091872562344397821148869434026090043083093269352937769489055742343238230105416420124815398129770260256652635784590526060729541094306701987789990997152652962283679852353405975086064174475560900811954575871638585084268870330799658494678630518252446947066670308586358274451080072257183176519917160300085906692405519667007930137633352432427627543032391299191756790219381719242196071694366046507437708201860406805197800767141582623607683766308000403575265172369231771322925720952951877427809561735407239944671351975229297816241439261860458881260913134743831308242510890290186706424010860319416825761576793479914535630288834716838687420015643278698093422400165085913516161228338801077194408070357274793958641567156165160667242628804379933919997417860115352458078350060719287249027225582644735204435300142829747039174440777196825941803433894087746092663837703983465810959620517995970482322176217826407596610192087904754607082045823197019321363231118150009628506390703023414984416614924089947638232608048706345205619944669922447972300850723841629939798393438755599990826435864317557884565277834667794319939330521516552850531209074706345460028906283912897120042420396011937477106716398204394659546522168214773688649491761992804169093575418894596231799000625956389342532663626484192409949171510976099099701297565885512569252412739252529000940967085487340832118841415034797476439482162692960206924999912175735141203601691871745182720872247308086953057129688540794199008325928647478722666112332590020180459206014854457775568979055539726347372147279872662089805938692725824204065369624762452315235363455107224367217798062595812375544555465403928288876569478818961821001139967843831945443131202478173280048826288376095530813412166066830886483187230666233342834052885419364195771197853633265067168676474714782684946446770929559604082894600781996185435811062947114127033000827304976733716285956452734923021111136994030477383544668242571879389471553551880449590103844148939609027435318472618107032826795303163603921285602852503040052582248953182079017021195678563129381063533358041426795699300542251620081574129583742787519388986517745260419749777371855328134589385250168613829550222983382212004512721978744536653297188865499699589617665696220205986969161476257050648059103351402807817372714427328575192687730584528309524110800580607895651013848216263038782068583068350059253493820322847930269339528292938475397287689939707131252719238499408279228897038951091912986093831310595227314229528487350431031856797696625202908782090694906503724241405934969968254829826385289806855917920531962617450143183576836441857891513185663381296369792179918060715678502496593035292715893727327657002181783683793463516027359660832791880868800346478504744978379139158468468175215071258844680267661796951845487971604013290234626502373861089188826122111323657281913174033654486522436365426539272451526228323715617409564632655024671643240195331325124614684726147760777541521363438825484740060679739413727747582447000520749032318085727591101167497501129561070608211607613693828211072936215309334900670277478373930314239618373152979544949167930345527187741605212486993800087453854837915055988426602449993771304865157809228881785759447312600638431018258720257245069499506326262416076693786813595591832727855677220878302277713521477533248450685790025325349292461117664143156206497849552407319637080334563353176829186447139466078742392027658974970247789879589034772208238579824148349009184743737289904916029670760899531820881132573376093777300355203606133160388064661756165211628009574879475191258217726023049302399136718949477931659625278879673152652796124154012670808357834508797981251585872497524734575080714274284815004340330560910136550038883675976032605852611794243800857029317564487804361384367199349915783930997865084807224787644919388742994948835345711900497715723138629234537611730846122301254685713428738233779592926157239218808256973301653999309025641124272507779937997505581050195947745635203726034657726980123515751521897623691149559337756779282859209110552468591594918938046605551078032881615300460234820384380469636026547587124037211934101651548557497097751722091131525939605980781519286393903567921549909893092860529892102311750149252788981313653687252868116700727550357135544701540963687638843349289798270094881304227502004949296012454675338682654578667714967035113004476266820957873742905309797904175810147217246602395953651825376505324354439600382971150548542578352362790894314546168054462335887653728877147647841866965284038515964141376371835892827487933726641520293127673372026529380527108674520766363445840040135018117889171454756906534394865448964136086833018458545625305469575032747391334258321130537638474999437786727926095881659732808041380472100867810345623886020614431616173027083604523738593597100310042151904877935034881003686884213792735393873394122243427264610643122856716102698054444288167975980464370947896362660035048657203613714952857364092320716467526815929770189315856447356102446866185311433488075380795365642785619578346182958680684629768617365890688220455454011067883980472475361934973172724156161192288396603109886859891597839379362124484866379241005202707487311586699133542007188787231919739660497598655512344215298074126976958722915096032829948713205802704281008481451376873845421994084983722255266971345394720246178606736924961117723939702607522420051266636298394713689778659781415753755393140029460627774413664603349055978831898423232907750053756083976501426788059142270750641838906482090181523735481895487642064860665102178299017932589456681443287541608843832781340565276728056685929517500551637027266443754157375259909243041909123384222789044713641337412666920548591991659113473600997189377226581800997955216634805217875601018761117895132724068810054307027963357016149129186500677303384737912969206798456699892099138092397969083993919674082929610944471807025769848846912508166491999844036107319581187578736819432159177875212981480497874790355962593694200059041001181893629747621886948605479831068797981182123982355223464781217182151841899905620746311926605696838634711571836634032800657137456870134246778546551996610934586336085450629082259426600388406068115957514111009232683167600594975072344048734526470980608930770642598790597734656949654821500063113034031761889051522270484551140130531596033823893646838580891911078041806808508789759488862620421980102468596596124019385335101375611183192065628898471600077460197740544608233823231078022337831119896453021538575621162027171748122175296368140038421840878799013399048579714521862879037432245764301323053320187567052097401633907043545711640080116963625482766563379734141364308755873399955273892191055164644535917955771541664782442353169445427805759267941063544389245471309113149485696567542757416500838377335962313168828671648568937794099660275843864855722988323446167838695592879626888200507553757194668227613506187922412652147316371876689078802435705781156126990315359797442883898424088126302146117120292174367171831576043365310282901836803355826176617878816180728614329569477032533033121628884643765574727553242356800764429773158208785437034450379249395594153492681302909910199518313907039197897078515292671021746186352380669809507427472278690774115804611209493587578711712148670235071878944963880286832218524851743116755821015810215764491582363466254833980635996526215818315495159607519767386240845981038141809735145679721072260458880835064009380261641473797630520849886481379706460804039149352626243415658769210661608755789428835486267503900023221408244211559324428752653336807041195089488771727306342927406577157352709517056804983116924937059639572741852533887404152482731713781302977122320802219482115470516951478230115957190341143290034818165590461130913230173289250489582218598198685971395335804220029243190737047414993578715220381802388228502181233962072805020493998565477980841812640774977932079905576769213524398189939229951850844927265038582129617162616107509385982151345895098636135537977702091798991531978608631308433583556273911270014175608877440646951799885706472180060906878598492979905659578996029527696371311387671768413932247419593018099245422119946722014172660349063733808595623410510106016349465398141323902968938993184232526210051941375024403896827836764277823237095401833253210576809384203233401548726251655624737209929539567811935220598130986831668821637339529740309763781307462490339046319102906630763084583723213384339638036413373361777935187743362073692721494688039298849920407653577257619754934597253415678607441753262592831838819238506807370878519872414756342527242759995956369041953581467404977361932415411628654902681297723475377313689929625443370800062994671349045424187530086289920602407518238401926698230342288620943825534081180598559941412715846607651522748914646364266972125011157641895958228931200141498473866366855690363250592936894400275886753030951965004575212586848041553960725533552655047984915479858459733852502421074593956714268423163845069915346236531344067021554858878386504655086937781256829380885666826677902674048094170637230653838708451733249740755953927418350408580573079229687746737586972828434052993772202811340550296355640289229719848060677034599305715694459381485959056356387482087816875600441980555169246123815450578871594746436597793272615718287422070470922051874272702548464540544681751206675813080698638656383929478994321219725279925692027357418008297231636332473499295903154970430071200610842898513254553836747714526051638838141464763052368283990879705348205715437057238299686869352845329182628298797314094076872773019804608965842196817325818516490131695370426254545849341313474361549111117705225271504459477107672903135511666283326659667652680685847107457109907759927018145431683354030028629758279507088429507872002401337048646823496104395578966390487774137956738729113950635745452537517907785878925033502342005364487885015733728337926744566242484961464085545429907050439629476241650430240371835787005178882963985751294427297191505772675347665989630618797293371818913474934848273669082585995067203608763713482224345579658591520967770716318453050020744889027623232310431883536732864456871107712206601793319120959504094351032600121771003371190865688529483732491098794166169921801128608462903745569464273555643701862040404646955708519122926521223929548360859305314763071514246178234243124679208473779522299220312429287533140871988566358534704875347840027211896181574723430234708980781048301538954034943569503263523262546040110009393382632481629908696928039841584583165427192618965316395011272836873312770754488435716298300428449870885586481330580228723230891733290178766663865545291756046515868705738831395104968683126708848993878929613549138792062241872058300190279009615253275496663861624854589716080345663956467815055011720766071099056447941894783095275161491793908130805403430431992998307578516021347415117513542955015024248965965537067914592984085684315051764787006509016272351468675928195389186836887886916480864511155858985583696840322491431168672222234418657153668418313288700195024556518793839553571628149145277401230909960239732863155144594681135265120360632812323466337234277975253393781780462094497272648291874529270663063720244867533953953156091960745971479183699641749829180103860131639278957330814528469749710109739379515210409318553332951615542881702767591182195006308810647941754577647724331254941040267672539180892116663835453293986151536150311475533677999412735363615174328196391173429746717252681948923084595373868832554826538680608872593938663481220141392935040228757422002923557146302341362655342237488785854866594117789499497469956079711576616711021468082295375106477956471048544783282389997759162269079944397715398855546205342432702443307944272330959524999356137852599293745535658427256693074240707863436331870760666810875243520260238889940911103447789844059354235946982367638616251497380001522084010504031854262604412135467298756148611839138504930161229523258244991471165768948156428449684189251280842271563556907394144260284067830046295063893164349996923049342979831943827265906007348208759172640871143649617893628164565148592353014763298586119860037888233222275116374390152799102851630893312537248677274309512945818275725531611136832759519090444105227611102726895610531234362766979580263284285654650846015551088529651128060320239801027444255955726596297486144571204235625589276519997794092257500641594054130541793117661758945040037518104955555245950503322564454280480392924500582846087016066137459831417580511410708425321543911262652261733248493309990021062811623549840853702295341148815847000717582484509556140767622989188286531448377551807429329158966643610472206530825945984190457575208403700985557512271406758370772051636807748639097860424981346349862105068836637350798634002602072147972888185964277275289092967180635456192772157415664598416364413524136608195230783828517942941507234414437921063957257956878187023172094789736511650872679815304535204573393542488248865817414475725802289607088359104764866382632454381823358285278956457422431054714413414521691199446120967927705981114716388369947494304364300943998938287541243953733129289050820691962678778600702066193151133213433120898504301459670542473923622360452449656433819963760342565332018180421653112581886554272244823953637704750043321048136999138763390574701908279671717085753640002651648667336332656016682750324119900434071740939636490108877666784364294527374455622196224551128531826872621265985665830953104511071558150934344722680898324565900319278092786383063778828998902174678053102725214500581938742079456876198967122592320801334836739955876385128726780902719272669316020914736091131632015989269033822547269924537936927687705027979539279969651292278742915082292422858621345308439337862298176375936769176695328711903504304996306275106842637994212830712290058043984593832329836828645705827722444614243734060616173120775560089637316606950763160276874985088912021902849613815641916200505080927201394176955605131111098417126326200478235578272985176556635316214649644018069512873345389028918503269021773216095258406001277517673148233958340632782778770863978163526862108516499129289742267808336014167084435550621293820677886988131437707875574939380066268388437669541187853123545850897197945517350683453536350393237096418541250781848380374978885292715360151489283448852819946745463826680784481483446527851724850256678845832548254140459197477444216826984907945106266944444944213205312006202129579626693455444253376868492770538084644945695077671884537296311692074401157791079258117748909859764118100631175005171725467492374196429271645992012853587599881237864683612062969047397825900503920745427371309195291739412476155323891663073142708037735172767242165809907172285177177251333585287637673963388512409353506657787102121769553327087657248465930002762107963232671027502616077576183511550433194387232370059604103718745356790987329264238725319858544580010119484070274614690285265763296104254489830962401583333338206341241415841738188322701839020933954643780068840724702040852949714232058773248362612101111052774221925303533044182489975685310820775105681118450538791735578185852479430767358964813829979084466736597490651029207037981590447024386205512924094965341972056748221604258964164983682071030793294433364465031615779405687146149505829967679692789448012663593549311917572882651322022834685080228288913608537104070344855969825322077362437019705341018659786032497321530327206589283392129007473431284140052271646801807589130106619791907287093382866087191560118055454297683493654351944616747471528596285839992752836153388578405850134220394463233413933897742715611456321846516281120836519665075025548674322875027733919588008910634352696630281204926331618394598776988504098942081492687050324217301285706741351066400388332734228515896996158946136836031442283864720509825284748831817217876027323340077756406409383160208118306066499997871874667009928140298211655337007554209730672942043782284867942319731340754222118197494683108988865257783447401418043116107942860496408619017354766728344361240888629332265711192576647067688287369733050579037557858479245345653143592329375550423765601319256380761441366794259057601144422273807909594933607420417673399171067711899208914326890543349570545151282315230970516309284501719908649473955034636897514098523825811946384487569934527322347312494292236732189150522870005004231147691394821652890639006595714678682158666678285378169363053160421797169972447486910026592890473612836677935357871976354877614161400040338500591645909871763959105272880292207415471085684856696357462543249491054952155858938379179664908801314359162614589470613760793700391864018220432523646870218784212341821015614655352686101082236018670456531421111118796417051835923531501403983276774306229201538063986575207234138068417979917519813124417672414425773666490268456577566573887966364363876335033749383247714985274532236482606915313373790815355861647892081814510941645526438665239684822497376303684464893966727367649496452206160078975671790801127473976834699956725520886734259498547695577418767696994288236163350034578071306639626883311520176110091213613383339533959420294820427557624329039863612329458162473476067581302047107812819515015571767105303225640746813158013964065837505948064367368612782615960955806274675830142065104480979506216257503483614303795093768775371427940553968766305777943054780205404575993060901370145411607153726869863647220378466970174966872447080510973253023993993982974578506096684886291720176407077187720876043531941843551572496499534978881443163231310182706609614515698759030038154686799338621028682122106893696954653846530175504092333640028193685465977673795967236236602764019007608883542987004833353871971102006907847324633436957077827688578314276623758689652543493191536370585573071979223668111230040852989987765115821830653197892940930251588898284093998737509014058743054351570324278502902253996812833815385977954401405673208440479371377304387847753979958670546624637507433504466655340606802032293999449582651865652198330062079024614370823841340124035582440684400288106209773981872997568055359041449492744208141194324329227024287792657500979538678574617031194127439391088016426250242178379583614822860131278381135759742899686482633703624928217993406728795441473146362854754957836172358744412623033238957923385583305058866278013032876872697084162093634297728878285675655401498391702250276537538427196032227178451435047804970273108811265648680431360073765731861960747113706675573869392487301331699981600854101960052344416632923214858286355651609733567467976065921068999626517887818022684878679750670238851326378330835755344320223337158910901573001553949354562013583615920100074903127067758992299115292086877953285467019659508703929543450883495608192748332026815970840998329490782484820717664650980668537167788071106991176145747144790914044343202650040183796426585516443510975780155619058735204490986990484186170171608699728710073813998230039975168479966848648637024537604893809825573522004777687483366309293435332066818213397089902485066647705906960937971595231045920212488853842012133665820414307947732966457070270228335721527980759584333822369123042950155502506341650764067272956281408864684142271518483504973262780133952469193453267696105443124117901822596596736735127856264986207503687998406114375638144356664201382137001833292376146438105729474848676781244271517719764653386180469640189272228385017888890444024375025017915644094275294511501830688924344771635744895480717554807195602323512166834502250082577112333767602365523214290733200425126867246330890795949087894387742844028180257705558832279052344026012495454594625881678994513844640078590521758575355834516522288847885797524466628268886995267304700096639951884975143678370771081758771766142533695776747571298198460632665273613195744573321001363426371031463044837263705504237379286369147451653564981562261691427171777951979301616744981008453432668001895269013910253554863414049554326973389073353291456153514928040423020392558572882537059451754864843229695678374537338444522434945727959985635261128566044156820290790981977384921457852838552989230236630712637562403600296508306606359444887953349665574380763066388447934177449022484960112478712490566949627062790301990336844535622919421251498503892106092493338484054231446765617897805594892749260539146712333365816081448687727661374226031103666439993680946832980766394926443343809289542305411050058622133097509543279524139910873684530826060351381486940613800632394675835647312987453627932343365724574976508536587782347357802702261754223194603330943967393307588890718928685563265831264778526116609827019695532706288559496942743210006164805520533419456154949077347068203250893259591918148275926544972203468629983576532730562421624100586802250760271794523511316168131318176906150187109724402102129674712169400935902611673458364165414792037671227518182100093294563609358840554658291660612069912257511505624930205545436245265877404699930366328607588131746237101377125546717468743989982583395452104749246150195310317494115326365808056081338121306835954016652785832042323704669444807783793529320343572014046225103104210727625142738824935192284389570785489452346156560763829073084012033690952110076690284995240364442506091586225394560271895064038872511869551796081388224695889964596721191880537132145842566586464510817258678766929306966075067742217520754060385402120688294009432634353593450254339910049553560782107778052855874374158348687688281699096768709317341273621176688767074128379281374631585720083906141825784306353094793063980432601484397870938432823922682727145954019910587306232780271952266230411786312366802687001981950628914990827159765464562521887534523083853732580586150148542370901556345137690874087560264713466364745345741360412150091834254552567121320503970384027787732580648963732707827029547243351012306965770091896831412454707587552692884928366321638323321844035015879629889951297960736148842318017221891536592904451152447414056085464007780756563388279282792432102574231544366831761975020292066820282524923131305783162185545067124924068539758894421256224511172843051770271276397511190346622463663038020865339808233958709938802165321403075437571622326174494437679161151183834762129865314717973129709519798439108595563168519996234583169914344930659203444093416286486759358357473182335526226725518086496758920735759933987280704854455506714620398584215168575749038636808397032988227895032293894671384992182731904775713640733078606435619745655802773584624506913856298690694281711165772951203603132612917871837308607600106638329123521451835786739825265902878453702499746742092866993506901071126953223965566643513632386661892710502447885262142949864017377051152831730696629900857251709778296128244628973139942086420167843783852990379687664368084166062057324261760577295672842345999119975717343758120544563150111203017596504285942083034580762336463961644595272485293336859462162020622146287330440404730480088717006201591431649195585422511151004338454654601238970691114736047612503478048219029810801439489409689017834068801429716687059039741699354131812765402005403728326113631876848428785518189028493009334274841963954650438292452687356191567217423680325133732602586027283545906010565190207506482547468344523489077555987018296874193057634556565665208753570614696039646628458320890278134631360404493208007313800274964000555867107403601492389070551385044773192193021471417598664598662257965538703302805915471412291099763980097987954635081274166700889717535973111192654003938173043243864245962652019738810528515193123071733692856216696508443136898293762810080550990305789415764871732301521486684436570078936435536908925952786658514292634935869000466120523523053568176306790723222504623485310607819782280980152625903547800483457571314591345940012704414550575910333744014813590491662863680708713205757709059790419629024333858597892014953213407817355848446710241335101886464941407142493195550535518386255827779762841315155422960019374888963427452147135027289033902173074542945753346756747421505382298019291615304474498864832541926267390240897173721312291491224174938751541009885416852817664939753074531960579281522806796938040547666652121963975895595744332611813760747788353492749095790025537068361854443045491293277531326205370206662583551774655568522465698743340583542956268923230883202112352970891012507312022611879336597734164793934295734159583364676716528373320273228373959107938708936776617730803550942945738102389534938887108518300905324038510070160076641487731020541021431974585602925575333832922533890785966421632178239645938158634182843067763543914430058228054345281440053164771634680649716265329306950205651086693645638247346653706279911818400784200915639200318315984441886090133838224441842480143189544925306499652908644985607045529518467831886055798742714460678949118552011412705553673104040174935320526884840316672217562114416778009130060363591170123845135118179441049821035012473707183131196948453324893810146540474722161106140422621974215825760086108835468810037764014922059009303068665607300079337005192696272655109460564210064312494879598438064179846284784909710575294271441687027970145621810316289371521033161610023410855483643962414973256737984695533314716905388651067381995182596451805475550983409712491593032695635034998287721977961399282566998085189460709558699702197112867895139230771373209072148418459077970185444010433539326162291330055241282504411626849425378196975518837085564953704149656698525180895530995965438138535508582788657218948242268262554617280955000831949891902619457578671242426969834028965415126155632327171484244784144302873549191088873233234804020039916462262959689670510299732222989572557427206214794329834140185129262859738707683064417330536940612278133772817700619642525225314668598037480271949864705195307002790503607780143510115778993996434243129299964025576326102519708578268896634500834240864628614269461877384984162005078230082318359862498550215727370307132852759232026150882726637211716644069281506165793633401730176028249246426948554086394113814337401558572364270387264063300769055567731734214616116874961452368449577607871853749605116160434748857344963841470203590857662174271096901800758171904294794232720726328521892338418196581191486959493125423829044394040688388432999398276295023310939901989774008054765337847469896306352176108589734910103036905866118841767896331291678877309264046581703329207876611957397805607139588803309268195172574491129702473738859360775091306890210979387574391002530480434471787197697019226922946386967964506525516481425014740218577248637703900039908403922049292397611535065422212337838609579484783782642161853357737055950815254950786047688249950625657138979319432766013083421716397592175085987267477366493517427259558093449086549227792742975069627537763070619031957495399349555334726340744179339552497247291754283886700406502803510041999018014979906299199737725529568391254277216882933319540588061386225902168846047650011596765153064541507941266679475192012795767704097699894525621812027785048378475294952647600463026027333875572712346398693649966175257100832621943331420280829730852964480721832073730358917265971688878465311320615087691419435560842882187440674804767248975605905039028963444941849750587262029060060516035144549665245907747121444802489105227311250003626458549738079477334235901998384973648052133834091879165783153288800745808961066592998430535164204898755431195132522372647026079578302313794237771689110539953482632621619433068173986850157323133245634176416883491676153655973231907189948146475124465932662194705371421325411797431237772731855563869862403822122100143002841554696243025756870812509045648065756863172274361975806345742446907295448763364800121481861001667526990244040947274969075905143736353625608577732511016214818738363905626695890886707860456265191016565651201621184632079548543955050476828519151553165891012887734491821920885558961004002550439316401901016100165154368026704755978468605272477427999326406286529028790911841909145322285594919282174837264437029972464815317721282823927053590679040024001987791697526931554260434923044129584579075757441768708315446936009245055720838458299903488630090657706558163776502620876330305654698597602539997817335475018106416462917841710264053682253853338170684416575175168916687353439799269303381376814090828151267764989237092711698038239285974776438023777067549348182932786212130100728292706895155424991312132100083545647077802548466629261148967718945884847525625132129436712188544447448430838874400437245167409784383453234180485923873316818878997231415764369787759373153143132761332954939260774458230630383665643660796120945244237065380724663881687806623391623373584614651807557889225270451661379609348176081982542845853152131646760985623074070152147243365722570794346238408321645289477903987431102837513377381139781257902449686333202612948939472577413733440855893895872914046409719985137782916446438452587347222273767144591819812073391039674479276767817371347025850283206581582510176373851037129376836232780845754539759394303546880664229011663153914368935716995220590352616197318730967768441252722717949968384620663290114040388458666369562025413236258732052734529249919638217023218671529213463738458380572998559285138339867991338629709653622488204507844890699647462429041723997718856633228622217257839988319491841178285466895202809763329729953792989368161506055546008865906448029269026543036390206680432007025199632477248758118317761634200780790011670037552965583553207495442973859794676235508085131766119950337274693834007813782330889986986730681607703478533300780886011861902114247681347360753782436206471278681800811560524672407660901655965158026152256019518473652766523586055623262727834730665313143226173596025713018643149754504456183981777297340805085430638372109993075539624395322414648074908059716887120589651330752498692726257022855264928865082421326141887005317716252297478447263665155766641858699558848016185234236620930316856178261829989960882174834524167736687160730664939483518295524030065211773733946440205891593425074785016334598421644193030970491579650839931282301028437234602518764927462155455231809721794721722961673914131379732106112140121277178674498165976393833846852879915923958851430869402587502618928218939761022677820718523370097594900627545725386887073754536718124730080292987377308498895241455097941651537618689081789037040492477779588711568627668921103663568901724906399586043087594389053054762507128818710176441964043701848542925771885110525406510106538333660356643102927917413739644185727498653400762771650092551277003651102984874610266206370735613866036311404993413606997973103389551942382012126444859207934831357211426119848744642762063915522089106692614768161557748004433394729180343862823083176962361316780180138548366870498391546745922296167604243074687098448755171356802278227287949153000087615982156171540674591047371446047558712987202930161483113963543615911092566217529655788624176800848186930127993006792944191311369865314242766556414176682523023043070001584253909077001379247922541315254417169740326418428277742137950963931241262601995159050541226231713709917979915111987524091201496674770170168694421757644462786733664523245559997882935098467442977484877743055174881294672776888271423429991822333617380309583353576154303524241255297523677022581360105504331958936291279834241215399962336341594713817450220717743642401367618134308080233642626156936234179987976207703487598520225045268876752924480469872990927604452760968426873370493608513551032000307513607778207270675779607515990141750759241998521887043540370264576152635608206654448841963734995563599962180721938924130375226055106705935427376811860273581031742262682320935895426725373277475093046288293324819699647561841367411519189658578389660506361333598730949494560448549723549088960195570303913198494366123422804283101351795673612936893115370628029568259584634004756775049957736966796130607102652841768570468767739011221109472446059559118726110155871354090604761072037965250273038135404670356228646487114940296350151251992503339822643429063683562658852465696203027202811255168443148853251504330263659089323903962157906841800750642198369492233801745974475399302624480552653480970861063776646937436245253525763386089375928895153569059855526208037732604178172969621732827620222683268435650589456914455919970946746957714853411831882893657206125810866845736726646515079895872016779878891039745892442451104139569535861205052927667444420461198697929958399750924505230910898167561054395878764164330741697862684902862594127303011974683795975162987476232466947273630911284808701476639727195688052659878684642982451726165362669599235553900375938646840183872423458064305448621702032400503394817256655396274116269984404965077473117341715533512818997922605633929105832157744984127623561981300471633473034063809940383957581218212165267237440678616229104440413788745814275479492773569056976616342516791642611325034254701516437591583153466065950718013374288938645272453645966929250703508717988095329956032656662772696398483122038897359946920118942554086552306190171641539917185916901017794219910856735975967030802667128778000566471893056286150441426091451638444995993711201346051597938557455841727336527563444948714908119362362132335068440463218234735324244859975109764411640364885765565966326883483475440725093532857393974075142481489927574160777562825025193110032355281786669967596263958808842523287816837162491705564741844232588403945615669352462180518363078397452155018954476216602548689302464824990306360237717906736475925639887287365434519991756722849311303988457981717065640271965383002199408624650771354052167080586603515288395758223108349679888947667564501406758547009557052531883055517403201410257125108455118153383732698635976997800781857844845823982634235961721788901350580418039892220483559617904416056774633339104882322448161343573690226022774473727676761125848333692182437762948198007421315057951266628860363769680308424343080647364258075619209472317341937954954142323359075176355176180298924367157590977901144599345760759318537601336945110965384612680976956408311619020090849137934406393997544379075327114081373155243448968231284656338476831490220949656492499776679093428587580999968686547449973941614336567589012074969318349671809464610824371955237465012915231967218462871490208031339933714163246396341710481173731764158641780665157421084289828886532472712042496795239584469779937464554783805161651702714742819635440343237643266272379890634909303978241295003453492269233948215059503978792073303053928234697035028970877595594078760939268055107212691876806325810261925087146298791477140527578475230284828781167732874205214935041155079933402626066910785589297512822980464970209827419525325980367360950854742670351603649402222579017637741691424055267209919486840111722660204701742278672896706403993845855609937257274710378323248775650296295414270141884442098604180611248158324124094218553913749267613116089977072896502878737064734978975415076968386290326680903874048666666365655893097178134310941687094960992468528158108487035370952454960648198702525458044281303168263250110669525422782235588593597063227504665872171422411697156308473980992176441371673712571959385873112356532154742179361349683031930737979620924360723312937879682697488161542184992108685627278040283364866475801300741229987212522454772985834907333938960463257583502907831328469142352560904652784822958430277427923026855125120619776716810021382118600663116620017996006023796992752580309781382530819091820330421505866010868680327447390008630456802603731200800324855576519662522762796488885200139985333650659457506234231994763319176268612726564927390132920912333068085243997171136120806432518873283800566370500884273561920331043971527564290188599049812396959782922168689959991272989204414153835393141202272369209421046583163913671223803565922942854227836823560428984667246951211557407203359250735275804673053907749528452250179022494058459865593017139074745905323531551899427495395248340331111826490884826234148166225933090171168453303397684842160570607131983722934765876048700882200438890152436865516071022421965181485692957017157792512946314202319988888956338824245023438741387507489571816266277493310541400040344999117262257799238280812441159513756123725380461845888918610314083737617116966349570176132965953130620927173502602069462407978676774910124856857659746540629246408094251379664193999515142015799074866903947532768622936015420250435334096777369392610519564046750576808994654562276353892535032787862775628439756500792823558837846275229470787131026281548953305869881609239246856624387360502482925076300401828964379274777639405730194510620273645911624280724263452360107490176775181570494714698394779698510540762189303052391998099507793195369204271944576388205718754851900236127223297771376680721062476292989494403864851917894596002415672388134614521651673575362691525959075308083334968287664380281751262594489823329598624648487510288166235742469797527643330026052008262204579423066289201363489619082227199286860136647611425201453185717319423822731161129102236003625647988970448719040844492345776906219425080297456930593424163554349365853618966845152613535601513760201387806573068496994224990330106590966170695577126540310737904012845341501955538011769436349087178782716429833950299867204556473569388339547533565753559349947181821448439421571566943085782289553730289338352086899330243299238994406795010950279881091302732874351207539818730052687242404774564591715278030857534204268191832903514443334656792647857713166632993110635415136027966645300015505475134031358400423129828691732231528258717208918129257892078599291759054054107930127048315946990081005889253342514527842710154656857358607984757816982413763815881436790464629312506855667396679518071746340861148679681413246609059448826808014154750455334633861642582285243504326173983797897447405363561790252730097412321803317819527032067906273593964367517728777440589587017140585890798228236859014542244386595635295282955927364172605807530986085985103451110840662137519734116117083203016656703450221796109709697315568234151749565535350848002857947427838622791616427380981506976870427979110478990753242444697803422742416857590310121286652675955719451830134397865215156315595413573925665327421851756541464115905379628915608783269896396871257959991443484139792929812454642638020038943206393248969037988368287080236184837401801842553220254730473486638293437141239608126164971013308422424531084645876125535650595313579870082162797294511729556950433242070295775574253087157228534340913197564333065577117132518645001838581988607432666310219784529961733245593114630165565946976438387022085382253237083414250951986200237142644527637033543258115345862675582471706269510498970666981842581428026261953134016623896637253985497455953386283390659900852900721555836648310209974425293752590698651964522881642584035954605377832105748209865745592275006050816541883872278180742439585171650280882478776178716661002874660976766526834515079624614080989877855749904226328165404026272629414080684383157836415706769917717098787898501129719259074965243100868100058366284637585111786079138442518371205785726110026719392468041950506959161164003108928190524400498062453028855711799774025082522786548905495514578235256782153248742158772827789062195276380815812576816259379617664523462847786453786448658832859443703019711769729245541861824078929896561326937289475630737304418632199239689619560064580855689311558603258690860878475600915535043653969134998443226189922327015106987151348364301499208207636521102002598410320595894183385321537548351572880972778617733515560091612533517920330886404499659058480197238765767918252793868338226325080283740868098690179371536501059363961576932504869467558202165681164749429790220270028936935023985834576585881282197341914453334236210554860540320878494870988592782539695665958047765357462066262031168736734287182982480196789721199345494751636117941473932591910875940488414911893484348703461407002591046113357926151696183168443189677014259996541854568701934787815257208502048986103682792391500705925663143517643390648164466952458816759220510315900736985771488636592597462605693529585656562612740932154560869939289310301104511864269603997217768798041222380443044502283295188815475748404161840163665032295352375479457165414695381113064983039327301669337937159078064042029337866230670227438404413269169783638515251219195618949715650535394146586692574952084799772428778314952609604864436440931328005925986493077464344712562465494330634900726057193745144036305514274851737119828557698977989737565447818341360032495530250874487410478701415186394919633460838362128993251715084004266565555294890990558749832442222201332129227701528035365197597528413005450914670962688078445281019335296539146395072714076799837766045289959796485150691677112712392942328102654187623776037015555935329537147772005163273527434109675488819258408318701825443756822255662338090395044756264618216490957791679175187879829509976580338262095462547569566114546789187041821118891047006573522389190373301489750780938398839237727004798458528098075229603994366455581346363259445657146903522477409099589380448334648933464921399256263531938805098050736091649176629341849926602082450177166172008962050385536516403914521234634569733810390795137864070694404737640112286006712674468162142739211803192739367155224294928235631768581651916808440323887736180518686856603758921127017982542811685419145710085580002128289948688937731570796116556448188787675776053917446520900215831959954524412123976482329879377897026099447774493828477583975899618340783966434710316241448046467956291595463604037099091543439644873240062229213352391358596827777350338201108808307171708823841243510909505208703960809759937601086734676478583012224383648328940073402058740967040464774599153980409745758228166590574103125482595282668469622853537557669743626531312287192242490990914165365955603297105868210299426160104960030850616422449326576818121679745664784846242001043461850340724928522092178893228818426138370075308627831911023693826311999448619547520012033300677277047745224248547753567219911910512703261444037966823208238727677222198594816556370327884550179139802125769071929952179962107119902527409104336788088713893076135488410867190090271147795901978151844296155933884818306539509415352906431863513037559468032223683052450645862815939805834483703594377903034651280457248740129716057082562958913364473598586271401355664722794643999950770789099923275152077548072362876599444404922179091861010370740683122883281806571465256925918562489431712425495560507512541186484213787384875676434709682213394046393872104468056598686298551921167854903327792600726028006923174421563764638684876916505231390667844993618387706012023563068278048749594534048371399062960818068813633052827300461753478275973238973390691374219270794690275598904140665538548781805211204497762905665095904684796354722207484370509506999429646647501466518054759027994931286317909021586728074463758077685639574708882910137766993810932202925978179300099679919629975640788454339309175231726189061598921835483777192342532335875456091402599227250591448884789999208853946233125789413542534462761858546368330089231206328624083783088781688860099313889482692049539211548898844197185793861410441703555017203118562040117942097019848986441296431210935754806804830706163428682323393244738494178429798833136974649067465557373878130743225368249536715720104057228159812351136208094293872268069487257558303917086113956560080478625271609727751443370368147188985476923804700548837149859005602602476534052088394589787908874345210403891090909733802150901159233499242670707938166909887057691032453984938959432478107494519855874960099854690343473866832905720894188872512150271671893189156058091310844855486488062425898245600318882880107932845197629361093595383911693502198056273946976775392614896246029078875118979324614632473868672615221187018371492365680108365638701081524415198121052218698321325288657257100630176454207441670869579369898723307549512204013491228076497456044329300274053747232326592474331770754203447325608144079821858725476575977910445991260780593581604431505437219734836047668818589437390520146782312021199961053339483393479162728229157605285200293902811859941372655467004839166760033835623305762668206011257466683205519234697527504620592303844161117362618031694420217787497810325104931743815056534684830551669113054990474719812780468549924621838279750847461307603486819947397099656077132302997190822698849869754400759273224811576601268349816997257672012357413532776345477514317047233806357894718171767001425667013137706815217084582678486007351206246513299541068309717571991457636556160153758439058090539668377413609822706546741456892062026448688175253790222901785334785296280833998353391497809679130685934298666658512089889336613374478460278276522212396828989901200363443985161835754692335692610703147134064476015615097532499720524077632257651956360388251228461828675864640405278112621624460953237438115588615944729867459397718929348851080072684764872735649424037042603197695213555027202095685416447615280251401382896601728201792980279697641182219909446899761163567157427159762257290756190979243885093395925365970850614453765357868243475776395635471750071533997518170170815761784561983979516900819524492285284340795666887652072268256125237215656095450228712448282005920849696933151353360384091087588400328960127852831016874342718820545424005895424692595867730129664075523139009206129008045864437573260120079798911344120444867729021530521367076962689747953798191466182764436605609533851020530597529447532838558826811935061485373215304191160188833872426678052500753263275121383999379899410964201671709232784394247042210040669712242002795194859056655696492531788051304518493553793311083928394146718105991143324263541906468471783638962615832176228500534304097016045244063801251788160377991769825047238784669224681242210702317995678209108054015504633845007324965235900593092989952122102334508499423783702603940991373666240807830714932827744673705261768811350850620154800913379034221331120350154483907891153015232392449741596943432478117909256018286609679785626176348802579322333789283517534241147539624835250190611015295885402110888659640146195345270606543867929204420977180295868331469938621520465956329033919845718017770124765845664024844449750775536377276189617119629505000036995978426617964987298154072460267359692330739986946483334491456411754459037902771281191956520585415552512779867650649576280265279755061245356312304694315765078485091187622520643792375028777145067662263397056910195071304660201447131269886980211506881490096170531637931232589480990268889784049775539599363356490362278947463395606027551792532105170591120517300796975104295966867225401313267016303588544664097385494244116501132179508069677762082386067416267414114439746853264437657170463472534156777653457061716717391765258845701149058239579596960493550835828126390126207238572678294846710265758225374719891328348715067864365520436673061264904428325879352721829017358871516790068300024290659381477420154052485264565997287756338569237999168237607301401434894209566874402885371692272440139937765148588949899192103632759467505502243350156409305860134402890812306136417152510802330786329756967455082080812599346213564369252467125740364781677919750748390311132764337643005676275564899805590036092039983567159033922159368746765919007074902576446138207169181438465240090370494448278008019610960674917356884190454614420217132792496912175349971651740581052757022234544974532903313835388539947274523553750795417609718217091846042618691356977370708351633173761547466200921731165667424586661261443365315757690680233880420535226006293794140415089166860759690370811112985538140609047331421875774594544052626702934450560014776594340484453442874539235006724780669276432151789442715263621733270569684360909240935319914121453063187721420417561398291429180545097164785080593278276320560235423233037633436202869908683251655042555575723401409299090407266734876356355007652065136410620652998463361540715640479177844965547080792266907500908924747163682181647816967506922980203432560218644001053704833681089886069999189365126973760369456219489475815409740993976650531517552073223254368068646184057358573854069007566960481371820467282255495116175835644011009563644376060855258106750449955047254653971137590728923691953403897472463463350201044884948693602125229236076287319220301061075098396462354945056552345612524207703312284293955973119854737698066488060260228993280341733320952230762873705280477179371040783262223763888385261507233930506908560004367697470040091872137533983851567743947431633333521997295117226819910870731673255785354424232962498499018926087531532274044112416798653668521210695347148819699630639336461525519237543168536953385533897807482233398136821571357871272850542325669967250862776862620878720877933976716157670333842690793844205372969747595884012827650839234732576192162913918947879604051696713979785559568323229645766142840402073472010111035753446487280627770826253243037925020160703644990072318353848227601956593755778635359150373732457389114046640430671946265796936915292208531952237173651553318567615524691848216175064999287173248121018972220654393507682061270758450716661460140151575388832627067242789894943512819591690109381012608847088972384154797616909962282758916645035261420739912631477874816720106422705367535007811632697490369450363427750729777183121218379588929288159119134762037314578222310819870829640402741062760555327870996394486983271792643167425876176124608089068337685684863604056698162721799336516697440043717068797105482991880464600179334476590573225893082797194577070123593817850676891539476458069322314082797457588666689573117628967233662450410694428693136777088534192714391858250532336141234314906890946836340580135100148534563123357867397509594891631212334109565317757897678440632856758441371427079415328358016170330494514998875938875741695614989613829412353029566016441302178676322722780879830013567460140458392196317997218063441181083464212166016371652344798110966638403221447668800325970422704126754451974831975228473583066606372071596868412835877830361547967818053067242937634612256917096836194343432020356680986070780163331455572523582805197194896299312026567451391922595241899485478747647794731102723436423755187297279009602834603518532903957562934537933694301078654970579609616751373805737652840154642717305132870943629129310627988868986655118255832146538587758216518799792917762897830606997598079797591411383809231816499215269411185033492717339656496659718206689823801377172798476241814132090868989461816840229146763950320167641030715224007525965204449444136739005279153603472559097647725744869026997187836986353514428529363102858191252003525161322139730411334370447912619297555575204563907797771858656103308483598276581274653970102551048295317988756820303112324293957146012372683965544367089334700140521396454607049839367240490268231799581899775062960744805632537841574710091561479633025916984627724447968043322155349568156180045638019796552784371976693830110760445340715223785553401715904148348929413609042617078768000009992400618772020651056352773577047820323400309657675991177810412587940201602507619940853137659497595571687019668943703490186014208977534335861541293509944094254039661297012999629396512276780718101457375549287455402997951456758868541830682082537714695103449154288594410771684952129926120448939099058846658678107700225903975752228163890420743191115341206068877951001357445138262237560668625903471426379548366665085494981472041945658259757401519924553446019266558614166745704549472375924663537526151302766488762277939964836502413122934816359010618087681279948747508555113844645770178987233885235051926395032254985163328457965473016220607358949229355998598426512688982245603496133404225515322581343702478087882028252865517795072317738011185113069620812181437579023962853118295030436712515580567431904082629604767534093506165851255170728368804259160864663114982383126068425138815348181871193889651825940220723667682413015273791989564661149689538277740941112163656416826548686079247240638960498879277306160998414179834936343587040986146442114924205049257139591491292311702451448539213925012385146163190371294521238570772002581746877473333981815597479530583546011675762096362467527332899110183447965816903208026512444509567112218133872002345349097621423895214783639639609502398522367510534983069944815487176317559385265996916794751315430662831061623904958517479464376384280877854792919907976157460078524569218278700328785496827928221966004955587352554943044213967754191754815338202385111382298992322149191720203772361955425755376774209086183451857506535235153560815974661686837002595732118189546163375350173448224845726952456084850611730990973078976782761239733493943317079339678227094196468107558887813717949911722133065326872496181280401695531763111948762342782244854790968635184307351095881923070907644043276824596263171678475683477240037472365012634960282722971474547008019681800140864721363290117957310333577137204426282718671596955084485889129564313358423197570867087299185086451807760490392325420410809453721034763484772055235786980514553015506080643028772907719077885534267972440118691278786231515678819213099965639412335608419236219213130670921241838766510456916907518763353804793219109693859230329315802089200362762964457430725614946057553194974353811825304561555831196343130249139664658099908286228038930783135805360042497085233177197009929731988287746078938713399071565221002075859097306119627264722099013106669502754398200750596172432366623669519193076406516083558982705195937014098340779982145943871345216168140106361400518747787459857833380177291115473248096531490634035963473811234742521183361865210794057548372875418547678228519772194050564668874837084292116268533052331080333887798890985885880441127487589171016213773248751093896180650735717236905401510253047881340605292558888213360216339542726576956451361063241385310445927388854568898303438944180705522989700241902183296073957383477088294973257225845128640411015426187879684837899606304175153103049707457946455645465146665577042616186371342150462583254391869930099084630423890547322641242700978433126939787597933204223168898281392059038229772312380626730663853827514576283449239883734395934492302112489918844046787112533097748930783045587448858967864893328174084277155214662815767623876314884082282621140285810932842572915850067313017774304866724353838042946944051637356321975086254757287371984003749377272487356797461643823314866882248768846167776853001119343517851869262708735268261731454723160194758569937626952964487512937480282994428649098666883710137352768441477135409760586013459890804923620319660951901806675225533071157224250374657354245820529816878028138368217467782867833328136243778567552884428194376042226642138853566137392995381241395547779194831157525581061530362590412343894983486854908273916213466157374241038661730046023887242647428461809162276850084137852237782083856381210753383850198221491847062644392878594239897729165316486325281544273694230736962088436931214149619642268364540999805195279998657834937493514734464154386980292432109383755953843775707226886104912100605217314983103673371225829500842397510413633883895327007846957261933470656190331064717285695794056976686105400348701579282040586714726565103773376398478382973554678199044658649504835254409427507028674833584804752663922423642093481785415048774267731196266617454200641426485698924104221593918671507704600094009036042835126510851803193072618533436796803192814627234572338960371844339719964382441211286443085063279648563468983299615695205923997567496116181124848058670437707463919739291372558973969076554316525664250397868980560332552871524813092552602279992799758659615582338248020896416011509469440257988338554411324704391184357470829616736091290517366792699524041121701045125476449069424859079980005248898470458158326631419812551896243869317454476505334669938524341203216287839099150261895334064369302546402690488791899982957850854830530581744628459358924683542825864187037396383737929639501004858549662782340474896146929732432059370489894144077699862921643706894003050868193705867691240541236161094794541714797287277250258757311233224046065400445948066130635667487112655055087846126555955082174632897275027762739642355847976852658673537523489758203044322708134956163660775801716634799974300326273716342115909126776417384563467391338391545605439096002831244608892627752073536889265129431303276770100911632785695011468642258776968331614597903029627609923912241481253869468838564113908809784866720815743314862561197858876548656314517940990368702872520603479973767288470288568545945840814323498672523779232088326364204781137029108995155924893281346046632828059783517804801975715220147158938048641669484297186548789998853559652091266766330105664123702249931695321308012014113744441578801767580805054818657536631431107790706979239809994209096322697045902499447536003631867228658519135675445602473410071855432313786669531876292976171784839517307432264198046469786528669483780778858187615410549510447713106429466886324443708826793895798300970278855202823513694133783753445955016802210798654292221842586138920775173646667462987908481589921882546840686926031664453374248350519409334649997131601992746003370991615591149007958688350668198339270990306774957972317215342824009257432717959519990526428506625016092189329365714438968123614094637268154125015224743496303967766789273544138186546871409296569305670625089182850699341503801587536646472630132449488696012384178679373476359625787478128389533583589631450701187585323782220576434150921016433921004085436319068575435360700883121799202658930972062186096446806161410915251124714226310451053970709770037621533218530741687805747333732457461538860361022674779004042643582918012398951336449057420025624418247381330360672381154684320851282599827370989763648161429260292141453398014290514714640212066838125855128338440360543034436600171810704918785561912794896285706097179566685512188666224937480316572069846705339518317459755888652935325995379518373099855531211590303363547400674444586676387119763938547759196507994386693129530485113643491423602824359139811384359530716037802177607418939005183185762043229480440817051961683056779742836482765373706111998655184848712848124658626352973778209025421023755473782359441772729487556949785859905676937676283303678641894635675058864032830054229694940934823083029215820379403495266566847602970354816675785549131038912376075632659250708493489295352011713343351471029328407110023084976609287785067134441406871390464851262315177208286794254392027966660683041023641384548026383397135284048254664006392678843172356858617778323870896061277392679710966143917875722100569126411048045282050566363028175586361734984485816979242211626146252209401717230819965738527312824313358373472137573715429914860047042727739089761013941197849295275163244849592386233778899519332863746900974538304466050533617455033297457658304598824164910792678634138052215534318125372534583393380381668897121677313978419654608390485214074702407612326334270015486997518218901254570574483489539113008189009568107767358820411000206423483691832755257697857731744580899430602173874598759266303132875205094520862552969105745064830478760732678153193905500530389670801563745941023757502403363101067063236049820232618022094993828400443058525457962437580571313191305938032949035373173866663419727117833221888490131403816648528378669545427588143723478511107123116846011859728671656129756820281948729108086524897550292760826944034768964465235144654699422881584370759570363970166700273822833733170035279264026373474410289004454895390160441507095534635277232449462287068446701241587399010203352360241024140266819500087720991338061448902667796122779831953197267546135544532243978818904607736388503259682388304008443932314908918270026901517320932281500429754024398536195513896061451711897900604754534750787230119853290018203462927262164667074128724995049616752169293775493040777152158169686006079256306286652051655192411901601012656239114636699575431517441940678924492053769019082420615176990596125569227810611468251036657985117463811051596479844231969940481789034925651953715040003091913870153816239989165544386222411593087144120896711138398111061577566339257995738408629360943271292710843454932843178498761211336159878822120245029805170924007613812598861398526552340563625832394586913387951084642401019733736911745485966440906380469311838144238132444268144788405744875456415453864431301123544846743539905842627130133135869025357729975771602799249628844326155723462201315991264459852388250553969423619184586470079468560937416609127049696772956799494735988477724003603980193003889122379578166813794914928533907216519709622896454813015269074533371963697079657312750469506164674559326132278087542591697992596540657265207823243448426819993708767175564467985105402883736454540410565002517617606965743758049506036005776956401000969252652372027419880896832631281362436864169249743182785212319816492393860817298254189285288552467394804151737342853536275904982306588659014742380644697426315067325110428717738784722711951051388466328298965484846254629044165712332440044477098274013227969517559162915712567782964259294816689059835219400872382984437194445101093877745653066400183544439327180246722798218003796359485383546954723028970198161957838186157956670339871690435498172434517726352578004353128788539557193599043978499262484701619245884408649741124917364975795092337174074734861707265166513695425935256718276737615766673899994520007327023183277685468449093367400875365641731498496628403878628702587533861151123787914902367321568432460982080981431782846628348122293437860289866408552106809663834533962262099914184378287795403528493201922827467390600075156408788972256447177105556429758432986652852817023965173515392015270171932635001240908587771381243692275186399298823188806933006143329258810176336243812905841570809562934886605909026484028691638302691020542358022504546809510648164941668110750439373368710183647067462752413250093919468957212272318449508632265367591973771674512157037508486804967590381426342016287943621079906100406424398481897489941695019555409130069570359464628012556233246541278635182239260669496119674145980820118395872919185496272893147492072423510186144011664057328764987502099419363949991070707357619353229367427463393263268095468256417237485625781389784239424959772720880322362438489848379740008937170659386075469989884923039543157416883811712615246980515966369173376622132235456244449905094484401823858011743143134289856962604954607965739371007599698007608700161249133528903715485852826621383734348609249237133013225275681755402580527074237033820248600389396777618200348013699357450696327059857734614421212170131344523479167364852227495781694323965932179798268848312530704971606715280141627608323256739742626688847192477236578910643338174736420125574123783849217934413994796625331199274158889387315630781408008531156074931211460987819540822683096740163357395269909936301138750022478290516698828133060283623259724240771574460875153601672949825085147457605638068237605059510285792331012348508565093795167042333120367519927973748733914266026305137214428145636226064532592222181742504267677517850936387968203265084994434723787069672826711162142927604825091820553553649534349978170306068047017326285500965632836806975658378090854480120819028577059660058807607953694348432551308077926744165012133444780910719768182254463951634709351507729946145747595569630628243391302898257587737927470606765860115471747064459407951280936139924893881583667705719776238763266680080769994504678729751173158655588126452439285862949866530040003210939425976609094052873899685105290445942610461492203245885586295476667243624969297253666428382797537350369204937963406124417803992029214935820301145103939254717596500589112457217632526938968932278405811222813691202303459721818789648448845503307175509285191460734039549625559499648430903164994794249291437190188887166843498024522604487318715585939209145281781282234728387163901802031852536095212468438895810270849157594299250670986807980469182173584404125629049866362238865656635493129568414005793694531884977625377870872497014426127582650646220967042950040224698149571353592759856484022663129671931361580898037545297908437863426683519760270722181500358637403243059367240488559173300499782840944012849621815210128224294467804652027092491951693152372609886826867577385830354995398788966059938661701736471509843554730100436642217608736176380960380519478814569035710219849499370715573846935026343667488228932548029891396557211664100462978489810422949084758142228738435853397507154748905971256344614166420442020643431538089943775482446660702016441824935730989107174298950092385441031525222819365008331799460295312169012051632834243914822296622993747197640648939064013265503223929234034649100949009321763008877848235060524900124855658300664722261451799346027552372194910269934066039128819395140401777903541285774440555666304270475403649062041373374178342926491718512481487791309853551666068068261413602254322676382967210172453316186233000551325572475931004389220215550699917598148295010177866373070640117369584038782314920855388981701081044047452014060146934555617328344684498883714897634786137282437010017564698004638962018028706110109660090801411680402342716173659397903569577401898848166455315947981214870427019171620516726866758809212619329417142750976600508660787859284624366242482472845672576402905012189020787750148095930991804569541349807564281827442927514607564032315004331990195019674995314137928770835563970562128737301129809248745184375200825139606254259760010218518790663316069559708796478203112247458418682299414838905247830216676800591359666670094624899175847416000417589947590991034236889720103792186676307249268298115799902467888368397553795483306634267731051927675422718792731646289446123024369544924754879089055198518479174521736548217223695223403069304022268834658313090999238893911571563503818153900525858698541754699900061193189509045010602853703702031456924078993956374772874817133821455919485670091933695306639910914932448494858282332354673732440385533131109122619999177386802532938645091513422931217235462988100081625863181302533265564800064514195273701885303856985063112523818914975955505477858210037094201830860186890439513929034023270475040897572572743944875935309277340273673135304880348341054499635368492996431715524435420759700456132520738058937818251333006035016128188837028880629702824277170956529434155740868158759763389840377518517142552479682714425783501774132481780843030745730735035449253586367634539491221624074893912418112110422526879920113378808273220432965691020256245573182702633023728196397301754583921447589612392869201963323754549300165783034389625972176525209465337901053146690204548411687634965466189421137132197181342925202706724306003099130990304866723890107260274131506578284237991446385975374655854096325255104345095274166396148908217105786085579549389361170122205849755400598251377822726835372464922401547093893116050256007289946555265543150809987058988452071748029603699014090444531736665835951719968546075211947995289928260936805622265901081161197555280530726562296759005214670535176247930538522213497682251382395702312981101120818234499395052990905063332651286215711020194277110595240857191549670268118054128389502035186388898663004866742763218303909521040752240705831150889067511290186076379037736517145181570495879699730609801137023748787473467331768144983450975456596779001797901599975771061060879101749169041454602731231328729873863365365476415336912623422880344297775745211549718720856436252485981840070373003788894996056407197658536828831101595747573342357849003091969518752003316280021656233002280298499716938017963119570868714139042743710234707495956225005846618763703758019974739927100495643204539721940202300227291795626913525553281557127651827891121237996128640117273498809124218423603040672356514780471577852949536710719339537237053476016495827340565337761658036846515781475642902798314817316993763678061536973599507521181170580646591951463200854997813914105520054370077885301077623075276406097837441376572976679759211240511290175030787953947117564692586234419952889859201203862141020470000459011368998659380842175085954134825225471481019468123041215571389965320309002271905270158709567449375394153237072184270611639626619066472204222667973866279471309874517308877194993841825388131698194185928151115393896948744499559380291685524353660400808081393030768363700199016336578434242129270650898439930606205021057256777644151585232218281873389612080011777462519965096179483520439235008919824960647452105073364169393778678612356036434250568820762413891782033903578148305243746554105013115449577640916901361905187290086243264846526946779956303340937114332919482420237561427694031883655339219342865842873668761681959553557754482470126975557022542344674213319585712050351394655397338651023817043788988226819137938980397389917908125625458419766613066685182740424290369435174854546152777300171530029030298530050955319958324847809277120320463016502588477961484901725811752639111171889624219864930224818531944898915325837458123317215920940705839974945776368258843788444181018196256768839229466573772004233023806787747312513462941273780279841908787270976933122792556297270336679675363892391514996879210162148789599263727412248273049202870915010155889332893080113610379071058600289514764646892431066810905414792215674346602163372116706415596315003256468731792292164468035464421955858872316504573154153849110737384042434039588189283950346067924712253934529211598366988624287563625119595248671143081493305598829475460590593015739285068679861228446235532600935819527968743981384037158503444729134694183589665276299260512400627034300002614435643968075060045586895806472492195093412857881805208892246542445149658247027427199116409051748190062783870959861880048981041839021158855749443846353297931527471964344473457714486512363516558839427399462598348061741816835090107281656608990990487660543777751455459014056780676933965681792107174944593080464887273389828599962308851469143727043106913546152005928256562553796363445716022803181360319217714367279593061419248118595822943155388300692713545672262660428268089818867136707741623544538871230889756902269325093551143197610375367330266431044214749043864905496066324809758324171890705490891236161930821580225960438744652285869555545158487004396734825783533942368594190422603370172378512076356284742554678249977675950339158835352495976736131025820664990706343464669909167700777040518207373003247150198961209257063461461493568918051954774455015119325501729659886396886579461754878874894991746086503465875101023323283591454989088867132867800242088073294963036839519223526854803751924675998442453622596202046747594460640208444000476996039280002335288621539458324684997770325215974963846221249383290277021175549889585191558859447988251515389544871941829668348155981072034463689319160758212119127299058113760850121511449891583416025860949553628295331590369519344233382116614132330959400620347002771987882935380106778157284127385674794199744936754589810597531455869476122657574902400944321660115388170291779711979664714305841898400632361450192176369918840965894691946694482274469199103618449463855488752798639626718477177597070040789938386632323897122898038015170458949026322783370234064093918789246552421361838368344519556524878081633562151721349621497599440758824375754272831401233226608260582347263759543189772361918123196019801357006826607583116950798530013089150317342481589751090923382552839671224836340947770417988451457681086591834883316664929224836847946716553928372508741368990701837500352239913451988623232290107752530242609859691753399483574042822545355705093769741843642126960208161205785875887491812525738401530997647262476343008286301678767332662336734274793523233512660273772999958952428041578270268998988014372003704332234386083905152093110664590517940209311950539596135627440421433641384986604818388517102521816366785895327846072570008891123860690565888899054441229471759218024448606387237358279510629870502071734358173418875510964081407591125195241408911648309396393300288529495316141525542685309997440298966378350519370179508852957347244138911522908094664428284524233338250388806477239503701005555508436434564555555874288209803455726022098728072381425560697520300723415997295836947695892423007596733497249608366118835652008356091015787676699169708152917718351726455690822844594998103008755100584200807927847471220819191505705812302592541914464266400397065037943205294518816157381343600118465825011011497992506484066566554274563292265114130086205595663329258563840836456554648312729333285849557336784264385066801539862068549879441142986657471776156601153576570453447037296847263732416466872840606147759215765581732289008356252945071716376183961756431139279077543466606864766624171530417264571468840880688451702154197292764286438931903691192217051997151816797576192702344233574334142204044602666270291299830696374599527063664275349675027058747895316699549455742970619773350206709500428356560643138543350946791468736438057603193749976039747204067391535090104520961793684120618651375697995916832435099095081293969525102334622013248309996959024382619562512748432353056521437555650484695844718016296382623095531248269827780932794637665197759712076136029408447818591201665537063692845202754278949105021411934705813966346698258826269702797443683986717413477561230503063885860336821669150356973961994074423301660982203612505799574678703673594033032723325878648880695668675179850605129482311123626404272867952957045547997564858271968636850033621286684667915646371169425810014509216999314862287797541207012736813592811241398250899019338452903405529226606614550453596153399609543951254202766661139853893337125636043130840396775157980907297830860347538450427898399828734079318836524838030963652255447603160456348684228654265671995061729839769616746529104629379329643124084279547193090907719774903188914107010762647473818812026138954425189878233964180842185387228328423700094905724919100235728358741144227636547820323712581239593603366742601875718196156594536742418074341821645094891949430031256492854373501088177104951785330484887839354846011522237272686760269117657180094925052825749045366937620080734393410050169786132205230916383240441407964235675604788922197216877672657388371175932025187689161539079611599861904092130326031785610488929792196840567904108546698532310859915280854667810199907622529637035237526458984088960751916397711413560767816618841954031888556176420968628445746905561664664277782807763641645457454805771302669434295080192346947260718673811746633881734154325227917816221385057345565912391066671757843080507704323190556620302785952559271271233082357455597714660673457335467002605487697783774073039737681577823791310766883586017059498516571988740157404630423786210150855115081766340872665411415562404493506180580497657748397624433702516346000802540518817220619997041855458619576734791457949876339440951881165149033756354500396912126126933749979218632357700176374294806885817526226112954635225062924806570810181874882212030048465814937399583055789987982891878532258856061494826119652796218229252253200225489157032706684587167233793580583624182465219642874710044038954543896180313270109064716208472599437990826862357789430065633755235449389586045485914505330969669450314406188481921587906439654224790622176049566994275506516588657280197212171393507293858702195676026022144537732951349932730847273873430521494953021423670333900974654092416053192302371018240779255308668119486735333229770444744554734553281392831983361785782333101120589252194912358018091741761837997753823962438981204163844688143710094322734734191640426007243909419565776379640381760197334600765559165075409512560201095231764623136404016713577659855207751714287167679047595653036253166672262021317571730696220075982904035806284340691902012034259276825119973805266438888756099698275456006220854901008807252220163124628489121294726464192001358996356648087263903024373100661782065647747494579629040401142550388825526547173750983084477621873344826118374429875097682604960174161988190812115049963624297224303229639559585993063295618290148201238373757122979238859743735210370068272430836914746299392020375029878464494722714598765497052272268304951633480782261647341314589820742574772607574904740269791193237971796621032313410128532852923541270191355059995897176362945910126919715750050364168792046285461270202453214200453348630654139804389910035750321553710178916937269482603900697482653378575728214032648817758740638050713118669296541933540313409536951432669106484726835551965601791364966408952539129870578889970388267035987414087307995650919517177436207576124642762917244021504127316794651586139304376941851451954213533464070206543779535624021690716017843267437767220789906548756239486154119514472603516032368755284860351152453835950286622898026650050709142511022989912265476285205063389734101228139637910800066660964366651474783109072986942311582462794453229385363410406494277997794066565842184884031303507112081861039826305604736009427129448783868845615906723166251952856370348673562180463176219773463568114511460199334245954623401361174043857781420339348750004002907601253115882824219028538010904852002100551304132686777946261879233116010834781739906667875603133309197011536860614766190814008784933996260752781053803514627228966714569638408278561859661187930366567272472642819082776106797438702597331743082614874780937296390796375279947922546925543460880352412588245926951410156366123585928890308218473504319391444703116266535795587970289014200860679076950930205634754989346143703259805596790231187074388690003684923111981015140044542382501879576298058413237561836904094147641883401354992292682881388669071896022088313261497371391166915709363248949736587172517738836459029063907930551778020453795460980492151235490931167626789227482379189000332402742325098507272074167482936833310933933884050542565507773240101958785450281132663744575168571118825077491282340348121958845447289824496320657295842192010368708241369736944954819853373951806550957352055134427821862231234696369040232680079775141536070225794623433180704693847484513008563551643430007334921666267391046041073062228915403630683349762006666540458377014715771961242510468810654714589928500918132356648268369197080618855769783178711648356279383763372614067177411468464852095224192616376698292194872411657175583187107634426066209944484850828060830811761241932530755324776540923418912035236011280658304300113831463835348071664616353006945122413880715363406894920030153158474480370537864505738506921757890256579458598180291992767197527125474647584220960820807853752148568857013523955369551965778283967001577445607861254929102567358167772391199884132766757708711164865468003740500266908164574734386176555732595547325253673214201749623972437251888223894227781537773382730263223179163039601161348616021890729955216431652453273235603676133768708153912457301329822482631368982425389830293906016374838763879655596347948034225616376904309215494180726762998823660679858947264895516099480960129782316053449125784200989283089052694530551332738092683151595569816253140983567306087397401472036074387947749721901625214857494470200787659860667037292134326458614989755858139467582868607197036330345145811214015012694309645034042952386934868521793769370330308023324570954204543249314813375190415034189745943581072001385262536364833047041589071211826908726120493460301867226949932225993448083646689096683130912390391862506969162513725668469333664673356270842963567693038111468877454033764780928344702424403512849511026669883255921890653985774515374883677582314156158050568093723047683392731601230442231095115784147709191613141095615035418365625099182375935169555722405356678240173922948452904174216196041888019939359401119472114757613143355375565069621300651090642523441808522968239888646528737696743198336221370058118703613203539758219658106447506344482421237338413539309741512777266706385623993515932650062572956084116127640119952486612941141067653435296352998360805500457796100414984441786163859365897350078800377132896389806574599784220231684037980760586460554182361479454085038378002071809900029618336303475580779266403841896286871958752594312333314142142688751484640083941950009586313991392601699920026143686081422548718278288415780237555469514568826386379873566325442414308796591358624490012557977910229798648538350855763685102177295496540054629255997113254727070409067405037245493388941226637449542134104056618167844384041447262021751828201705246693838678604977682762586741053862767915739891289443286045029573652801598456010808622989501591638920775942859140757674405747226042967530986541748843244765755303122472407291736559827271806243929577275502792910572671796310625801291809953428367667300757636621594261791374292733769498618145303589861785685245313605777244563489350009780618273062387386132642940879755339472690690747785253119803979437755542834630843725626017769981879483254929478383714416390185940247911141113617709655303368828678148199004603176859549927592036859448572744732988540219686445755881178237134595140896602977144488502010221245881477136292158229434956006282398924899602901303491771025870069338337572561427436032417282752348417721541185975103495059037740355997650511116978840497093772735839793636695403628178505835466224322902760077046409457936959084216988554116671984333062032955200025038025362377686696148767865819465196977076765671394305707810635885941216784573046129031546518168266967822199751302151613220295783772709366566325663165562529501735330216984432575864285895291482528207843408661861680552877393048443346381982775681254565280003695278707434834079141713058352601246329009331499330765774889393407028787726675052881508101298328436756765994529311413493077961578974719022769254655800832761594766123702310056959805495600708309881541508705462938664276826819757821247502202012182512931248007525907187415757094487203671735190721303817396594550595966164363600037304837076973505725092368427064175192270388451637328690572456528569654051290843510594270305375538735038931949978522407482774843763577082839183107136860123428084451331821278011312644123166084143432563940871458771557267846570507694569979740536937119881400266911089335205710075189241152445449129916643153194033729916524903404894322732957345650917704328985284402970455354676346553430176035058775745717473928657035261101322165490579556628428326924059147299450276061463094112900703272338732255155508023310568688606759335969893067701200211359027386031557453281038885390378763047880138292906496130773176422796428337395081606554375309997254972625188296698379348939854621073275424864874963018051644549238358609132986987196510930290494998895824734681350450486577252332143496857520985200053127181397063267768504830774514671994830027151640370817882014853505021546222735107482782369339953000849454067979299179174195114811546124382316978125605480441325538699340258916566987549852817534895396151319433423030907016038883201729118924151493415070465506270848907669832618070413667138001846327496711122513950610001648171822391766088057677051381537468919766175691337705532112813521521642835475208832125101019897152887255324608825979657184029755405575851798074075939720178179069426461529803561729986692087693820887189026349975615924429362761281785138080299891562460898095898569701393889172130587728684729930392373247531600384170569333127592225105365371244203251816722752592244850132998882274748334036250266869311240979820885599079566353404106166118280246921802638749925679330917755826172466740142390884133236617019281360890246090816960475249083991604108445331880027905156825078388364775212206278229774841633180625750754577218740103781434156879793412756360456628000561944007601138990881812659469809854609463967191412042502248254388921942382043382124269955972896256533702668618742337770124319236749551593038251095774135972597851205194641768014590561087294987485629477284082655880500562698988054435656653790460802589987276172187181430943971424942393472969744181993900879860580620127661097148914702280528492056911773950848944798274440057680269155367396354873469995652472641543197687660698566989854486501339734805849442115040286234737287063517862323889895949788760022682701002442066723060217452644270129936262772956256011384107973843807420564897877800370925061583213724762902202475004226875520002137354372354793668623383589462690291746109049719508574832362034785045313129731487201929562964722294623403664013543286753014539067681046128230668652000855039657401326901352733422867004821515130211455767279181561099746022348986464925864256464745680423305726528249820693336004049256015066247717431098339347425737405324950069159927897418181900003794349020369979768528986812087719940523614544191333863417454306136211344738208640970474838502875520869870739843981397852542006747053460983923027196981522755688049846982078334831805945653891104538208769761091689875694576244115977749464781114147795106250038079318079054317937108634137263101910681755663963621797993911762330143734996719001640005236649064858468225352580378751601158409748426791073379936553732508350066638615039607769738856404372844512783540379567536659531487675234840714325829043487205482306906925155193319616655916531973469462452521179498214698826885643035197135035026781978759855996177198415988115993264684366084199346180865182852991478176769976456122464861763767223708194482821791458533395669900396768370240546938395255037472745825478048773010151317139693416283938414907076513397222088284771458251887587211198911657173520300130882374435925585936437895794937461940119376311804466321162335988923356907050612654184651303563001809782975715477986206648221622176028160357701199335231603149099510161943849020583266128941589923157906068884159659221298749270646292472456835815871474200520655425791422753707306853787434506104696836437835790372339856665722656493407395335588113972732381121353226213491486847907482750295900549623188479782466437391169514285084121564833498230904299000452413803447139699024070898991022001474937504419633413318967459092011624594473056822235088169650759384398721089078038463648013720883832309026336600015985674087975730952290998329732608590272612618815756095320080593276425462558518687483048457417645433081886124848762440769685217044622691703369936208529916973812501796772279324984229399677987396951520735256330113721004299096267175720133149751303882770117646193180126995275468772417158662590931796919259865794550585197947386022585752594127639405759119188122396581587001435661544884159991586086054510975378872880786516634913059955677231759142538401386784202943903048640289278610899102723154575166135747782086528499529249838100911907421838667809974188787862722805532959328861718219087695621748511304909379682474078444720359333525651311359306110572296765473850781369928348549373957433715602889773178664066988197912277311707962848052301753564315699012321762438535926143162812368548033353275025195147993853402187083921970654183343250476224369638902667008559828098707249850540616890042706992725132987895163073953315306896657712520197910137869668780009756872255702028804336413323212667581366176973013252231958573827120670175281515882222314726854132776302180450373785531722047035034156120450719677067718163465387329725048981060048469805103049437487661516550128539783603198953108452877093660067107128003301713884760391100656077722515439131192853863983846756905339871197132154983903571561989570800347125562760283919333892436976222310468771461585311158460413935678196155483625680766054650285319893737242637657151484281271986113422356546316702965097544730358396174978528563256516493542744025990547665499190743972196292166429531535329963984587742979407202477984670984468139774465654782686872247428198040393621016490887969292877847229402658988243221872858662912106442968604470171851324602086062956944088279207882668270653788595132317081047852828190451079392835061770773972289954601033404490466137335743111746467342145091027928760969125838457700785335759991368562502499915500257101407876511786135046028683060922093082456711592206422361160505072032068799845118640631653832262640841869499093722935235325549631711570074296434267694286859270278164239923645593042751633692145050994139256328320202915428212687727441303894862709885321810511131124996848911330188555547347489298578650296320620581111751313089813578865582853839243113638364421104114334684916570859191640313092323580408317490653753232979153494265738238702373366027479720874463906326072205527924581955727842934075557152008555666145845831572433797260645948729950389281672548029467673879676227920581470713508106831839774366074868447359615966366455316461131487181022384261383400184943876318762873321382631106310674586193404024132284304003862560329267019723357123850367219064921936693559585227306604901431391209410326738340012503473600936456500457120609792159816468917326673641781324252284127058653214832674753533012857776985653263367876302791745619667380989355841451252878865923531328918580974904379144028022722435499511442039101437104815774745945707263121015569435717194860981389856183267322101877693951053577468963884217372283761748251475410633976600733641004633368120950352361448606848135007978732325939026686881549679515473682731647813975832040068685000349810407889157879005552356493809695471380632598475946642669106161862195970117440806000587787323699666370918852730997093185242444168191280114909236381363040584870826121018033112043982645289373197353168720389218704223787535447817448985061077669025317574851084789848170213172432753842076760125435071520692167314479701305743110818701567249797858910500682630429097990510417539616140671034678811350832052956400101690351500758352642965272035340519920049820765754665290806203114189059130843457677314509376551455254306462329392326575992888274422310695451335245441075963107599882749226716506159064072471320492633749291117639821361200337451981684137042019632253834636113619759232940465553176050573684392858706172810615347541134970715642846799198368445875135368401758818033964047722275799127672082507284368434144661221313476623392708598410185654282149244332110986999320128454319300699961050014114049602992083726606109281726874244807184217470573314664896506627887601065771359687657428555650697206735441406808240842785674635900469651948993183425271512179764149373364326009532720234245532137989163063746633429190233380088396053796511492253745681650470644736314670711976920634582272974681531152286711077333736211258932220093321869975097981924942087115275113821291435342321065941410114184113995502156745506715497843698560964881504927460623236220315145715283551893691043737006554799616605853915133599539544401951836582749081746334796987332180283266431021622480527954743644934406731231559180663072063758520947658308911683237705130324842567276280691226893873674376885678082696735349641318648906354786432792625253650748469778408681630012257883664634351833644659155793830152620407673068733469123303428216688906212480481737367408460637692624609231903172868573745652366508286321092734922069832066349302522336069470095573093362787919641402611436722483874441183528270882349451130820398716156063254314136752393362487080870153175009757125383757458273938016481681322652784586613098141192570084916553788655352506838885300671624182939010090945411395041686877092881862568258470043369126640363448614262335547052399918923346536171383684407536803992904900228430076700302824301607990743457005338715076526175130145692932454639081705754399422931042594427714662084914065261675924437511678938145222658176370362031480045473072219792713265083194006359712338527434160158775134127061984352895992042726074273528369945010800889614768025879514425227715386698826194439825262496218374772939316432713153000412962219860453823769297399196721818630224150396494921431016299178241735728716197383610793441544277556603051536483320195476802839253656584616065813454009271493208870826890120266233956291882655689791386825155446969811920126652645899717584441868785215754742727036025899374251342736178127931079415117352973327527716245075764926175900843539089594707626291443577342000480659401910316791733243406449062374707070103473870324485047912451396693276563771492225029402738668730330424732092051569858524399777802799631280145675835103100719060010117849112307518149357548448938705381529304337957818885141940568242502836539558533449151066428683418537506960487538515533720372719887757878727761945857030810342071544358801197176378586587888938346789957697267119728203280557499684940528856403598892910254570875515949689296767050048769022115994913879693317186176623616307562175108147992848782277102466812149423424305437374879755744331376967627046893512357950710706683657767891441524074199223786458367575979671760378936945506701518442582230207674176751369931523495164673794965323134798928327980236224532872220634077099854345577810747147458755448889937817551834461836021672765232951527537694751891599847266981717966820399659796146340247350032846591327409238769540513112833451280106219879769882733851050244805738355632187562512175100229219714918469736222576162472925373291849519746612651841778643130963645097303034902713556729031326753477924552456353890615674280214559790929429122547410147334406132263202678878046653968092901970217301974984755837176001437741547727005485819736399508204279921228114475533353033712777904966012004915066487198623672004465603434186692948189986421150106057545848078085209878664869967664794118774608344883366055046414121760551882776567826507061975088665810287928979877427292145635855349659970102888683404500166527838197152884741250437360022918753441918489119168027326158555871494700609245558487220584583044733671826348341131146490685449197981411926584943705087373726786634612932249991377634448978387625726012540792268743965073074426953183363332850916951316218281676272053950231989059191343060037849339213912666614326106323489550550051156517651555307291912708445945350011394162259009089797266427103414983836683350068339025965753630042252382549317805745123025047844289258719193823775894431962542395772901640427770210156786690534044975666694920510936533527623238084707900283886674155628803930540317911409999376270699532357137115552762509451066219981922208578628752050396634837113768425399348217195111667457654348013266760690787497903447055861800997386186303838916213306918713747348484279196168181032850269566915493742645062660079566247579220309957779354021092978906430668207484122821499142716986658477261764343010703396495032120841308085938507026843030282176776189728989327652396546657405531777780964371784305172976860753234953052880678247034764449718816675111564711545359563187808462836432105438291462323665683515840301000164319168256295090700539323601814294889418100853705443175351529674627622236744250600397756754780367195738466275249494872200968194126083689443293152674887222653920606427607389100669135222175687798825231352629006891410091351291305326931213548008933334503585194149903525293255438117430297445756068367533436158739280570292047599968682945631299797315864629893643918847964159129051386306754016904210724542716646875384846464778019340990928337541898489179604928400056520511606888387907961777197793877365180514126061259861543392844461347594874325958921492506081746100717560627259275847815149215602003688735289938376979559516239575845331915692423686413141089935826742104359126818510235277035132231436029285815502750707690622738096654655238223768676532179640927996834493879796401175244022710028901471944216951467464605350056828915229644037927393980590083425593400489232063975907967200447107873152278593555226408453611466523578559393131404142498078900529686130126936583376742998968874970474193118121483942681679293370969846896676368612540430614856557084729569851892698960549760367235737560838763840069497291097505316709814908990707493878224824751881786217832772564448910619965156284129417094411640288717251930987462033961962211880511356044027376354065223765334067039050180712113563791474599951006382190844264832802539606314901018034167417184712104385904840264031136687233085049248389056181584744314178141939456333192539643865799961275509258754093730130135500305887254180927664951748832505968887915423378203218581539701860111485806147532188151713829294508031331630499968470103278282956213392457199952216851550613325158927882406291687780888630853405196010210919094137465166156374908779139323473110326347566776483001693142828355666628697851527394425276286007776540248141264466473493379141712306873536288402148246249114656239527191452603832009930662237516307333553102162115290106081135687479772498788283484214939769746863691393379128506123634573544914406484525117633121081385657011643589575215731988369063425273321940996567573352573683341785851057147008104466517098608203298235221931321327902416737241022938465596328308098054378091621970596056348404253527919657005707337047854493664200047853735064177367500656552664245612782568314842226196692321001094317545309270683270682212594995907525530504704680373025371626636193028152341321239481228216105139503306946871312902872239282227039417895563538130597799834335547178127701343435386885044456770051102818079224729775606117737075524258647654390425421382821227374303654693659654558510107219632042474880068626003914404488584542554148589198877804450906441950858004357203120833584074138902855408351852908026978834537199226201046950218865436524885094254924282266452526368847383547771850290665537842727927710603932484797288556047338668184476891461872654768889698650049111721996809799100291018675315297902898331190563040587517916753708602258914771854763561010565708293553133982374003936919910650498250533670329185348831122874064698609582241230204962772673544043159926843062378946361387233087294289160966046397347364588764747113186598937974210438116198373156917506556181980045788116361357065036008834477543737077585928099099556808162112404452123823261820249150954297818314686192173604873361492985257307780153662661478242839157084770053827285914926675331936982353819782843512330589831396883615636949056561666085194297713796082027245160065965331968895599925773188814936532210250304514366447892815683017483407766560831833000513255821927291013887184747305250178167954579998265947887766174175525382647563752194376181221794005582951107384540289977763655025565748486375831828133246932191347995148099845305971451661763891564836823131258971865521342509232637462564331398056774203758580569436049724649543554696637543951153655278641660626547809599820810660829251594648889930749184838147041719647988168675033012111954871505241747480494629342275037088872440290149178323477209298547829547381602462466747003513227541708577560505316158289114411922383955185090901920684160076960295890367283713398676161336919802297662997751083676766853141808377710986381946903128299246789197220807816192067373110758694181032154954917533309322495513494702448028836755903719901506505082041606012060707312504312742756082663010693668883145945725557710712977976872097410349072047070840511195742506729650911055370321969502948420778789496473459461740553465650194461805534241903561119710938742747730583598339481464686116247667678769161644598593821713679944244693066319967823692964923502543811572920368300353884549293016356321374353149358775588446578723377454902513018419326831696723023411825404061684803686830287113648260578560896687273725803159164658704673361689490965637223521588108563680045864420999415860905684380263901299860090523136761906582417342387427495791150258813490889757610598794338659718902792886359933176557402141065750657358300946816350283625581342303407763428860218013216676284798558113057075665771161817790711855447420126121326146957753822785458217537213006558268367011267137643308911474602807660000956910102487929720377930343917156999881852563977575701566997233414840258641735315235879456715870112612232721342900783206438581085142000121014420556339913368439543923208159069868418372471540459563162225245577744168999383863271093085713234831339877541044432160863375974329678894934614838968065419945649592910969625051213143113028008345250070621625874925871079003852195649363677681112620662322374593259084484631902817511681094145315030810218761382474772078407651911719946273062791596042453821241782677529538021636575798128320444382978709023701540070027096342442927194884742943886148658361511346975552034266370296006199673140824312063438480073350283356918122633476821388921594344453893180632472893106358674033998553120632019726872851471257549216020166913072039998491905672812914214763220818316984806078772779032886020401795494378153450213961782037212713611717911327118972870080338907679909208929865456793280870674737114437922793979700474982393236386454199691481308580230110544715160662969821263199680680574684353840562833377803174195214078800518391917364122942390955926599559492126010009486538579534459900358148447519607113007239180960939887873128129505639134851531127401429016850730711687739304769886283460046301228819619692348360070485100088120712633273918104442004034436538391930325251562626294367968122106373755756036062310172756129557090745253315344330354793033371386423758267281956115860510980322519414171477360719741951211708383397389804950508834579565673863817246770853568613562681073200138313601396457032601754963487452285154655228354081786968220420604990796190571412103942443149739836968806739338012464719186300798388097822686247507149520642596353553372987198574436968848361560287586130104418099540348879250167909384584456239594791946160914668917243710802871260153007444458300805383065725544341040318315816596398381477511058966394548243978344883759423294788038334468123433663007969904103251729682865077739748149910880420433178959863544216505952840880069339930783457915623013797112390170425550245416977281821481053716946976075927030868118550946093718612405623062423116436360170580859424028005658494393518455226411795383427590701619352017594802916642889700308294571446045078233560956541839355717571893512941065104400928595542670337262063547654542380010726952894616990002447316005108328947922526444189485795080754011737676074454199682837046694122916649373012958025971105380347670930946089367123657051690446077800443766309211806335024386023892480065740594307572384787506053293497122030119992553393965450826708786759127546026670528522498744049206632484418918885540682247131680834988527137110001012355767569352680262763652608572880253284165676749976004889564045240398683693372736102400523317911224584801620537679368947357852889185076153666245616574166220030735977304892593795304393731482486508739162940368010025190480013703220134228091275778710404506522239848993876631228739082390025026717574619689221958795396046389217832861039134029270416397636661919260440230106723274924307122769275447874250408191325911423494109610842580997746315976357705537804302163246389678497412200925064325463346475008085709025478973569828852715170321005100862781150822206603908343751410510524460558305470581705158732607414605403495021638977380987714548260486641569137881254376571421758340414930174624995925859690925873377746040865447129753506994996926882069927138879272254529480484924584928113911649672959290532961629555203221540118548286799151019945926469899772471129500023057698899000377967107002153494886629829669949110262429266831639044825055989051463224457165369203137531355005873421853567716228910427874062283960440157863303751371557175909752263466645806807768158308369581131128803600365796308035166493416181614906367795668580067598600482012260188903577429061029738148506856480954711516192249550627310596844190271786122415237967474242578828320360615434343782482124587492681396994943796027218457455830816086091901848201811189745947921566971440786445043959169404516626574788462887730445642259048667286595325951806273984591373123219528366352671544049900656951013305881817681325287575863842490858966628892660605157903874400013356852707585124906256132672978102687354634409234462713669411406958934017774345483833235557614372265552445868451410696670282645524275315592329231897747839076431415972783394646783955915204240712959878843865094439411835956377876527850201247546877474455099652120002909790267577222591901133805319115000216016610315391725620189036185902937100706126970976704551851358735094226704800587317808817515827191754614673465219558775641346133117277822447512059485523180876069966497393636701882982786942371317091983125721418827396842149399774963093538494536176077673029631316080065952887590796153938537459554809022125241270027117047489108280964487718073005948072704961075006888051936177749201323417217232899788797992439832896849610276017582863105668795678165560550700114890487965069126091052079974495754507500386851829776832614494476364656956875345978233197704584571861562073302536074751481184525790475395761436190024631285612938915922700910313039597450638829940453848385321628697697088675121898748253497099227207391887710631369571598258292506725662263772422422400610438528062306093424531424288467837944939942536499323364988264363693250673846419413984816313652567999662951263591448962808288494998576155726924582848017723208775854088109221289876004613344700329609211683345916172641802459014521363107834074134196308433627645061930886615035586726512010424045418610267755153000166995806935339343970511592212986840254368651527299031602753722617494053016627360807686947842733486522121329765385294383311951194222638795532401654742670469345275384158254265882533257049812682794812833332959099271255565306457848351958804284564005363631088924797320671573660115223952274669474011616381833858467130623370257081745100130485562083458788662031392010579025812839578237589484025620386928788155405497454024847548885603564145353954735316239107034399378823125646950466362047626702174407317191814269463552619737824152852771693464522167923605863126362585883494302168625956327948225951234332514725604929361000327146292136566952389904466997409133729153383377318997806889488512301224770585432239690535756954883904199313423626575612065722704138697265239882723707885350714428517451145352576877506699591135924531638581248995443069303713629437597630931697848301809901902317167722715975443545929754955368108119563828457471859938457227832023073645114325753260322276331488270826365757628329453777109352297537100455385233237430488586016905752451333313642322334808501860764934688569933437837593890620087790306208581977592056289428657787551545558815250504791185242928814228186292160136921914135913656768641370982655501980751117458780174780658828406086047670111259427704726584022359649202126542899578518017827610706569990816600082852868232934271758924187161577153943062445885770982453135849217454870443232414484140861180623367490718825118770135882547304624729387630567630116957126505611058750750248587029476250381942773436616272397750647210071991615323964067355854260055358783642572037930989963550963161433295769652716419265148486244405465021240055074097000308461811366159685194769742764122130133214784110334327744305893790895266674967274015640943329533235265799792231056892893638806446383335517914978964836384874693064708258692072653651265365700588215348332208485115132859287109395183917723616446700480480892582836310091832868046046559547399652966397049524968501291576397806328162663205719859781920169839394908059857764494514990730570655590587493842618660771005592796135944803862330863290277756008570030426867788808529787252637303100265887084711183317955231123367188135936742750583205085654525419144113129071922770583047792958381414052826131952741413601366851527192210520739376615188470882515666619207916297221275561048858745435276984864248513233542733446052042705946764846051147231839077792149062567144106079460195169395868534895841199464870367306857376919122775005011588254073136414915471695304862845157680846443367186798379042963576522873594656584349485877324649476439845770655888096573027712432583808742169816913897382607781653466649896931160698581544664655454122883885709776652128557070661723171071375160189503221417360123123576994195024633605318099402244166416281636761436226441205630999864180643730195718742637689374054035143971381207415789580860412745136826080430277889264448552236358443857083149814013952729181855487943670764744663415590065451965632144642226979461274320143814454485274973468203571283379845979875190111090903443217686150565554544341092766306609306244204635350232479772220134149975170911727659651703787748967253684417141792093745681370291632101097129328213125399511675173549296157938825959818281431300620612651471703051973728731361750742708243738977153180375155219227695902336510541476131533795946739653166244902351875999164376636984548254478142187579868706253204435650063728230142334057919569690130972380131679625998505989215573421935403537070154866265169248350092508816923043858625181445018599782336311211118904320728158564916938633923552456752979068238710535332855685861610602835073482742572697686705382231717414638905082468471478688284911830190898910927173521241571896222097774076002925829843432559796658175875834560974264025978734937493897825401949097806111473711660972831574090506688055319428479517123855604851484731982570394317633493567668350580328315599016821568158117754661803086863122923330857205769379943466355179892266039684809709474079883230303589490564020432924925206350453272680804276567873550542627953496646076009130037086205990490211331077406208566976451157779104491580677110003022920976694518922142496508989261243101421627378854976443646422382280043608318485943588560448730669292823955841616597701899066066954381666599787723135234615004893713463472136509517828600070517654895416956600259700274484342368175326997021722017261252133999482184185347069573127393097463590764573325705933979977829983147729116771277394105010622596261811285601615037291788771385914734616989390169690762322405453433440152905308011154441172219344151005797591462033230216815824450864276431638967124896957337459183685286670465883966120059995343838932984184566176430212058874308994615466638548791031626677389197210659316576327102712520814816639690290192732026819725732796237678489825697029472672541660840686868517859250101757560430295944359233787470974536868730650351548604035625183129219004231395264952241048600453547803083016770699570102881828723982633231891345920847499145966935464102312246701479091555066941433427420029756483112898961549170768137497022732473848324943676054993103794300119115046140474246261388211777593445291714472801088167551006636891035537901423009190671617538755376212729311113690949618488009754551866345391172047095302930226480572332276807210913181590544083688031971161356156556115166120733588429882834806743523715313812273763451376687332406507282076213861866123853841465422796614017903874218758082784512178813718374232470440633652061131282184331316274694936833760697643324272270049804486084083627203934720187789340060027481988614829538029468082499829817406675030503732727402164724462832299932930915845980250678807190663430328405764032563356199822646155043288325937491170841562064571416602691960259141248595838792693844586203862818756151625543912985185752077741419763550176508455998434119552239499417808970634503551790587657661380679941712570187846279239146946207344110743565428571429498550659474696978381317478950595218273351841507698190712724551031986797529969690389158336777834901042985689400800661721694706753772812452246724438332204602189161662083196506212483288618156403164007865727464638333180286017734597146548144170116279014821221728497331984172619958416792683173283951382252885090173090181046902848095459323635732963864264538205940540617332242505203119133979270804237689097451986927538073377181444601465211171850472241863807016296141175142532291617358210489396174326921365897784319253077732803259658734087021372470566284669038835541803925430827985105480426883459841279529484347526415769482846424705851835943491305677143212428508729744954026003404414254741057572201032575042691872056752993475319044842556481958282242050114992631253157663638203006348639937831718466749229366801944498136285389175307127647891834856855620429178389418310694132770067523275787529372498709027522318722799688511525840532907592903186053822944977136292245394676235740706699913005767767858597703846732294746535952373358281599153656686043457839142413681620177816906447846912876355915151150180910714364175473803115244118723120588924440275831905796829973720919718396780695651016934294381386358084582969598835847848290470457288584642169175108718436566390238998277501534162814756379598316467688910448326215415801056932556387051219807999171196824701702117000880097890880504827512105704029429266472988494435827149778836606815913855298739865645945855533801128644443759851740326356978788616174083263537195150823998418345844596580751901559676556686165251045424010821572376895229980967191021273611444598849739268962272694555099980833520321356956059454700239492686244103290775332146286183240967392135773695401162282016119275694986330839501938027673705540359276906371776296436782175938522987358950148545772783439488084272601144148057917502631582656689141751747425602683824652081421054525275509993791220265900717797260821352987376722210119469330810355434696040405643632301589646298059804058180190760116178670737402222029511354029621412261005538574262785840902042547574843159448793690474977325430281229644459665281111618885875339730196852681990226445954567004806086734080579396353183712372422340895370729014728025190150200251528698228850843120353836415286268467433708516784580967829025961594081342501630525482292563677362915384204657102276749675952488155996984382103053912151669951929302588778098270619843241064605351380394894957188965552317009055677756013515311021826771862505905220712976830180284784587942059521319475475029990167532563539076950622921229356094400974976269891864010791687299254226672745093850868335600133742325027746105085345543854625856542865381705206404981987232211011817119579303492255068258557805660257170852332159589783138865027412293761575286408065238911940987590710376648514752282142666448759019281092202161778324119417480068823159405275116504112966695382079694280114776457191598514264845480010059261854843657668435224663929498442133276263421201732359417415849533946393264553538655873042642292903249262497190105421226910497054723570762786768840273345871489962312896804320044564049844182251157762812422416032888939866824485780850886188174745037198948024509030416680617950300552438778522124588171851961547409216681645834651430857673452745177749739914353764368897755323437123435385554071932416480471978044784624159780584935906973643534010738962472695338038416182834427847733460014520716085569657230511574858555275499570459192541411633074482471709481896433684061333979497764311883796508965779177112161469041331925115935174454286995928981031922540636745611630770590008874431506528804385398484342732110740433175945731350684864158579667574512248642152618677146187153793329130791342450448176488840363934848935709455015932629068066957015598848993895271634207529086033937380791347049771654376420203385858257644218041360135744275353237079383524566665370570679630955611919001740429409629417075678611941398320897357689462534951499260098021358020638662455802289317908157775419985757235301439912908491617583064743771241328337594217942803592616740018407583889820515425653404300597311941781401854802939055964319491625547639506724606685909699081474175492252293715894483643721664547575750682437494728314088584230915593686974645497603134211652225744200449057663295174261386739528781724037602849766092664636186239989543566133030365059156051415999881075212128850171246613000487781942589189980086871091829228009710134407729212016547476898729352212159812387766331736306598286753183534717770681363465407922781807552156230135464600860301470195859689770061288677061794551327617872108545530901616518126637330737009036498063939336339293372541823542639001298374147415842392828997289849087707137498996198814508771627085699941312264913623227666055093185604999407310382953396316623622312570358311031589611185074462456757811526333917099797243296217538472924420704832279150490532804197793056513425547217991181213911895745571751595533967935294328114563229290446718797582659856126270717645809593403556093993407834924477065926804227393164291173853129067977886463928125185124758179395477937837056566694208501417881479282819417671685206660459574633953390914610371942525612803570211429777835483838162777323202227864832825835862652955409029425478065680567797325530089611138464065711308761086869829200842281880284847895251526838149415698361975138393445560783316575740794749632241470891990374813278547637084836172733482810379094144707719899014574923493766969412574718632388079827107240195746986323961409088242883703284544329541811305719238548793957692827409535471513825688328495022564439287260093777746532217697728103875822428380393586488194113376256952546278316504481711337776036416723906501974323101364912243671332710478566346288210286494999371314739614201367184949242106232981846678254641367124241396772042687351145330225799151228055252104491161217173635834534922526200874082361623236786657431100712330969493077198306530277958619196918267000320667567833682479444974387720315068637599880993924679620356511971241237819636697597065923079230287072188842478498326533407652692257609488440629263426063438141187985085875419643212619805081392916038601208929039773610722885463358877234045444058423743899175119817533982470507962750846463646274477668904210783581280999581414932138300465200850115595267645224741254578046232375888148461459779830554213023371923167830721827541287075010142538163358263580615042513317412477802401078309333839729938774155438576292322732045634134904294775149714045579155901639229748778958232258684809157449098795142613039813119358135747391642343779292420828771536457271804645805375016371765608192151151819794605066530222535748665602705659525859425532776991245948446942450287762455410809506728049095981213801982513962631281013694413151952999905184207832554675310499751463386675325090745012506412048637647224681869474359284214260513538417092268467031720118727778044473855189575130237437852864137163816021538641120395243085192313236639324127739883235987984999205919982843905143396145808839657429580656495236705497160114744147328468515214475731218668932585311667811016516297624076186130686666290405038388558470077071119113269072164411195129684292051897619898662320758416113311263866383109902765737933561733188531795248018903580932745600413032017030611625611944842637015638160633024019415145581466030482506184736673596225763140010687425799717654095327422308525533277551756328343122043356532264281334669399084132115441840608635286756177368168042363086822388206274660743631145817819403029287904227611728574007747214762835047639951966104928683742335449247265116438446138533234057792118314208650445351967757519973769040298256058029353154420189166058933762490598108713068523989175739718911256022542852043660295558244605024336330257975152705227406101015036799347556291897313565056290001301035663643145719230274682775535784868400011694843113751518665250870581455515247519068451712970862978376572931623710214824203425258032822962881244053488226892350196039396831536669027862055887688389952540681298805503217665083547793579518227859154847549190775934207963585919695778996124341032933713217331582791153294998039528007655696554441257215055234750836418907734718857551292668787683920441252857508847375437850840551782282784823077020287069337695052693382648105675515564937203700954438953140662536947835331611265233454760417969772233039127022509067909044082617750248833347390715285879686463689255181694670528491957903677783497406665300187873326596595065855950570662510242168397734475216780955332059659424402267551490868322494742375118184705332089651070395371597136980382107837813665650319280416821352462050669959627941922346602086529363133764823881181242491258342583609639387117956017854416718178962635037802067864525783787061188858405192801109983953896213504189737327514180558183524509518282720356920107925974253865773784164341730177698131801735312162111383035305033623099237909231109039742080150135240543410784902741269766415614912015156279360415661264526959905687899273561999392968307274729684451496574975253581977529317767217975143131979145771189646653324657341978804875812674912756685538432768231312217459100896615637752701716603597401642622684055680388800763858337171264468059079449561752486943617433430300057971486925794287501144838126889518950995258848387330025880036929087229122984733683724679244682010625403072702378244249828826413220202765597186319081158142589236808352704803995368437611259169395329782767223114742791695200845382448336009069537759382134913495773701542346833999806371674632897760212029316901774993988415737993031417098598698879546841226819237569929466227461063598732094910289884482797519903647492839757633505197677932176068591484574566060234558793780385510265386778230527161588920012249672392569508854830673801910627711966450865940539313749923620091944880728382115671514648936749771996670984987297714520143347857349444207302716611816094757484857603185030422869174561611841703527409042649176364450329107185808309991558602130711104731070584711571326420685130921550170160998746568611812513464516507872000867840585202532154278612096421791103301626278297394115377115100543724419354656055202158118498777052887246842359341431447940362105146738559416351284895504771080844900259513500556085658338301874999682580086738357997238318984113561445328152944093320594456787661133255747573333898221749957693337131603824695559632898682719728501387780164977870294654946662396394540328476583054356159601670934848767082656550471234010239648792603813687779626860358753272202398999305936013653312159411975510857840849108499368784006936886656513074474359151162594683790365498019739213222275691854258980946825479753584313057608114831018315741664788212084699885771081550930379798740963252448981417493613726969984189570117295162632407134672425340409024897577581966750235309722012196418985088849223320400403902325119866728849086665114137755298366477943623331392676271235475881324510111776433454656860657159012010315507245140825715412642142251183280106235992683411973184975651952037141253879449360012176310903170322305677082223883679970398990274281072300899971240894519124452227353393475556753139492761745652962059993435670164501898435579833044697749105237165699450666019278295068576304181231272137161048206599491769713143390917319793893029580946482487097775388234683749449431370425577658413712765500904422480044631782413666226622611131214911088428633355413326784549209610873527197172999236285065030976034674941563018150192411440139557300946050719257837452988764023573851154839960345162725265679235512884063509932738141272397099384962526007184684476900675131169698917363467918711350252842332376442740717477278495458270446850302171895509653414379210252444527169940041551016384048137493379812975726743319300563935744607414804225230168880714829660666639195191141834141494016234909434739726792518233970549677130029464467502383774474005442993728233924766811751950093463243316445966150200846371879957843779641722515081187501091582620906207580591978487920579372123023448033210636871183737923663203669177790306615616919574053947585667552905819785005345885296201694090809552771552198856537243637652896545510875957577943222736424129972301559273661018114125684566251553519345027051719292325485357696263957475564201255173239832354008443062015619422927040311300042230995522208827154976955146411200523613719406641158038737289754067926093971754010765619169824664087709702401805094608274366745556093349367547808574769670510904367181030829880289498978882222487364990625244879374121086206387417798263203912588781892838517915736169439043384478646714357078372326534525425863951412602052881778932921124474519076192431864623236413949353971568169284795286604842758743581750676594495145209065526595546821243350854713932544613776769932361449260398975937426270856655256600381936067445717947055478932511592059440431928220117799383075654484974263694322611326317491883141361819548174442082211861000224430146735340936344038543447057063170324131862708335392956430937240982458350541734727095318142137750059788282730268184982330579676722552532815787226285547073429574945577417836468373222792022893502029794363703871191020410680557700038676122602830491435512564924842225502501122210304123722237771864187711178234969284530450952429237460055975468167560260980494079304044262581809239848274730531614545295233370891616596861172468820677552648955950406595495771700980513845597143663571613112946198452784291384587297687363164885369298249323937571896781060908110372279057954478710049771954692059745325879182927883130970973575377669409680379515925296978632123647847499346306886342053646405827230518131194518623025344973600345703956678526487178023775021285137278994368737564581822364945112566282885546671251896686388245393067388482182660932197045064732262121692342536766192289605943641414523015595895105647407974871393476905976215150799055501131224933238394857727790938049991020104666210951243985672991787151383647281904065320308084604198239670161614012321182403133523385781352470317206804459552972638650359289172143611872456453189289283670741086989337439165734932185329107589498875414776627509505639348581159132044328918804669122384213172791380216852111616271813331965602279664836455979294132932523627646852487373210838965493937761690422538166025521847105956244524144780246623809519954511614870093651423178907098062062446994170779261798511858770913154440304436468188752505946938861141387157447185532334160855466818711002061341116331668326996352039822846533705364696165832480013298970480592127686345317201171298785528559487025313714053756537157567395307537633333046596895716514829020104003817517912782754680885609681026444378603284729486435300049291297245466414388237756392315373107556744679350265160389500942772318667030514467255122910079232983993700042747870871848948651801040126550588600087133675746693629677616220982333131503341727327464550940383097034810084283449731275052287798586098332074865905285983767481969314169829476379862738141302074818151641048351126329547821006449136301861857705259988555494070953782339145604200679476016525530832455846863289185733365165196946315097058746154761112649815487159470846315768525199786670020602535522215425053291035108761468154821021730249775653280577973852462112614250479194484280793274153722203947233752100379056716705829123253355444296443904900686417367431425360440177065065047354958093824583403135380222178837196267204027635603543728261725847933523683541142577045787947200396645535114248508231200863574296893753479405951179668561872782953923629636872386670295912141695689943202053914922080301932754751191427916082791742222475156607712893856129624312987283678944445820942965524242179718192092853142033914386782242830289768588496474615587803694052619984299433195499287779636188606604471344757156786705996993645429761999280122173208196095425695615485230608739712755284408691253549606330233371846294413725544419118404552399887333193646057926641795899434253092154798967599613102715203053602612289070995935942409106021106333094166705484823691587249059984906454216066629743586760139750516087006388748450009857925630589894824709524059345446084912335983220468948997765184221185305038224705480551397514755506235768881890650330473663985917071544322420726014729043167807449119430866023034665518974636868404209052553374336020096040968790900338611358326301771387713237525959801626939540785928047633193508125011909059986379742024812440650015807819536180534715591217016513885362687978047248422943939651548043054437619945897793573099286267249853195872017183244079490559203136126042828268784792018286174304433699529767671371685322200131612386788732071471711722276297848985065436893913598823634408454042316505745276695952322933726844181792995907283951881641380872359898844849107385308564010724086802531342790740282055200222261110902812944617184877304154924478178432400306049245226632092016018010927318465774811604320896886307964123647225302408150901310247611633309073566092820598304433650426031185077838833129235717111748402016565836554683651487835290752230542660522965053467059601068162498719808782892537141677239995345047232749623530609747108689801707418894725569278747085079401418661947255493977897730116770336046856842439654273387670831292840896663872003223550146423354350493840623820853725375528858686486146690574246249328261968140396488981680426774333158047985612360844158211664600300934542696949498695542681285354203503873846059728469602073902543243118267263649815944205815924152113049611947474667496751645254993278688358348034356434016621270995236430307832174539791734097910614248884499572393589950088351346033408462054530298231674230748734450442657785963148130356443072758953736029884562509432174928656553649237438803809582958726942189594581876024878800733489967593562996487329675135669852375440246353356182612518706768273313471639663134244994507054447352053314192589811155785617986157417010120561500731648975776443550973730033395260699383205862748259153517331351904192217705257193070070044343921340821277713824274895660599887273834577735465424400481813317238882086100423455078576650883449462625414379838589954550341403487224690595981533214613374909351165491433926766388192985353340975599675007861030014433631064637423654450846521141822253285297753295981155760950320246677702867754732731230455815768979865351624697684244911814721314841253258417649836959518775748704258483927463079754707470491709114372374873361721386302654808591572801448955951844577133729346306326971268407272238772625875456020935583769452413332257905068713125545121120212847802993574644733137862635568864028207120442854382579678149973803747154569829255241869235007956061787304006614588889574880482136605112486802607501707289153520348874113228655796312107226674495187218955950418404694186070907251087930695229917540889681729534732085905204920649237090506860513682935201940127702617172800179028631894433941897044366477677202171005402352542061410415329672672068702282202812904670656921359461392965064494890293328162346872782576312136006571066457989228455652045339862819016521867991227817778279184898252478987886325324489598850017280130357198390306156003709521987014869725727610100000627593001097298867796502483538177214463144197070080088837135028845002063119709830150944597106597316150295387210849376412180032685985564698922493574243745378189291843560041749391307248292744151958268108636152277009067823749858530310476311548681698075156637103712424950501320200337776164159921789487660314663080443507543848932861582446920224843828795462883279939215819408272801651246726087647075523440857463315286030866052671862881149671829630272155543214583573790604336961403172386330984878702213426788044120217361153186828878669696330384820054425139151770800430093348599339114012373899838591123823049384489187989391987904927498322554324928797743876530647395074043995106640742903045915677275519741949557020833990035311147995606996221239802477866159422665835710344680061926054275759062538318083548541599616679316314758877186438828632198555177797706404327913140614604171211209705815209089844286293103369037715827860016898200650755190326535094416212838792733768355262687347767589559103021614025149632036655829923559615728300165701720182573517530040843250685451724095387768076652530894222868061214444565785258458626934920273451366579913282230021652734223803594869331843704118295233085951083209874932351145456926950935157836861050172218158326421092620679657920283382161491678051810448273553119774781277304836309628699322222599228199421509709844785136073297480418884154990158431722324145477359502208470778138230936104595384959195357902823924719160945313668698285219323886921445394734842024043990543655617004460611710759043679479953828017578522180963268139099682820057156541494434751958908598377361374439158236955618756034469131145379892762868361363050120579835653747401784577328827337313891890196805231953780447875922091201897313162749430893797233442465305241789077867474006356867779585437153223713509493686104062645618566016539695190746934501265462398700105782710080092696071874250078806456261108571035293093482637672118564374255558701899252246770591858267791860068403745542826866962454543250501558893594803299910138206999067200998180470231757733843117981279559845221384662355481525283667071903882802452504170079992010079045572655855817494810028122705286949163779350120048106423156577853145315125269609817530910984691399287147683290617966638214551903051967075079701411529770267760549899587591949353295418898489665691748620467078689445848336983976601199103859124006779662337990195833621261566179451635396391574345550870691983056132605879053409412526681902259451934697690378126059360801420421332456409014739359826782726441213180948065031813545487612420216758142099812284087392002261008089446977280599261221070886848715536788935043177001992954033875722256056869584072830486196325297539801750477217357443480366892594688091693455941468484630361596771912927722313478014800502024764757422402413078718540676717966588931899495622389879791517919397938779158008976125682831118112981484915976746930961500323480902644951697522783919349623706872201569648097795215900867508910087790957620959597083004883643339483639136239650792493605526935334152479644195418697449799215011957812948269421541548097067337084095082123066757757489956998208240402086865525263230746533514390318090482704166835767372237562122928644383416503959433424747760082529915660398928173418920747488137964977151023273366908711685745808071800041305885356509972843769238868902219753737819541471328751845564614358595658727131475165364731004023092807746211418492146802825189227070322219673078777199403994456801023985146240542897154940807560635127932886664325906583137108451294102629653821088504889568725377064197088679765477305812886878575097333811837810123218348108459745560705957882242187392324746710915862573841720384956149542290097860805372090718808641878684039080102231444956625822627463116184065331570997350896853365016829709670780040634363439382323543175433801879072527300736139846662573122442984675825879135859487213378921863094399666832956736629574125212470527914172132198259851687994443657561261564577381252804975506025035096759948045701573704646654243439651169590801933806242316211795687688469060645608572268937133055817478004615948292892062301727259583187443226935858719109581608284486233515725192799804927746566168686015252571096821131424862366172809487188566621548952146440920066848463925015910311177440708784628643793944239674002243762212171871392200807556140340778908194058025244231793566502284074315891506953046958646277581453781112389397362860017842150286787819122444864159716087308119067415303486879544264135524649980584370296552099522357774801532044538985025271354792114325218497433463667837303109498236791353472986331056556307349332059288575893512620459702298518856598657792232358427619890618113843042544886532146422193416451007942338280120988019365771997067994829038030471058331385201930330620639141135119864654790869703298846803769661746716549267961453917305314162412933038323914403786802787126849350009385196408088199268671199242500119137762804755470191466797192686473335982207554846895981865382406175378972983254799130651937172243395994628973009916849512319223628840645331515539977484682582344845264543443440504333317697233568844066360045050455671957867434347556892027723482781700229714023726550047824955225225635538505222850712191786428613832539883612716189972626805605942347714229125016575423377464396012425254247322264022426877296804887037410844970434461057055260179576703953760711294892327337040188739221587060120008487640088443039668757630991029892733339841707180576307261136637524591952903046725466114373608982518315001380897957748636720805643236338145421758174583970771037161182701841446211214847177625548203529742152235322892499029707888163052689781859742143377928787466533812616252881519380937068268588558004288302870151235932552294646762315981446692455796698975319850504828094678432485401497214851448978731874379231364246302393478954733054445899800606003097055376031701025969908871303176716505058427670536577519701943953325662394951837029010954731753647685089211303882031182335717085851338069850003651221776023479485234959083213120986817775491553552527249964659176880928001727588996385220658633547853208065241965337042594399056061677101562492000788434404459260979082941116027725258262475125236794996525800674923320385068062360864616428700297560395400124432671467361268780256241428966224359643161553980999832339925793856383481861537065741222528259566482532359217765539112711244954977706357165057794470047378373234909845757463859391621587717040170350792160088989990586721937243113449136027430312431168058369805456065068305847397912233706396414462556958084036919382969911430649051158951761415415659232313062217545994087362206958537307587598618655056155007315653652086093241002786361900916824431602908889334003769136491242546544708549435467749228739321561256024458020495720571295495504575847106525685005040785228634732229146882553475201694476235111530445808315354784396226465296515588821773313810677629039738854742894577959791927080987652695976483559779627289822057984059961693608356408846520087193839083008751326115885294243243561730001768920225556237493733691937649752296471100426787744953329979418111454521286546792987732213768900417817479874754610599629111771373662965944068374001683044054006514444266843274604979725432172166614735713141501863346100211095924903749992389835826171589006158770371892295335546951250450380791845436291227098314637637630486483451118990483925167229961353049707363027339741452510466054998691596522704630907580094685908615449707883851654531753160586450516957802689214137733405781467602888777435583067308508288710222003154036974693710304220530193433254905004710325720238236435026407121583971605257931010865001535894320933452045885961363612923335977411839321092835661387191581348093752002925753776843175222208833432901406401465881297660589112563439609612089464399987270956733564728178126559150580158128522223208613782499099680317923427812802643469041426334480429598696355020205377152352920863316383604501142284222305032498170618115782483251829866049981249604996848440560602916769874203766228905291125681388114813628597713053122062451011214820907250220538446597262368824146280421682676256033342192941420049625727458448216486109223208138570569234874897524836928041491988557408977408577390315233439329477021309736439352692512009956963025361622540115464669889357161188959950282728293984985824125943927482663781573227225528441449609086056961866177528895183235993568232252300519194655937322806475471568073795568029046169920130072592106177475793076001832195140210328162737359639755993552429000534682635334018451408407258735136031690726640975444969491560154170808179717821569832366736097561888765503440090479682852156436428470626182724803115251359191051392671601976870347339023510419813842982261328693621273625890187824675094147620966786021372974152560287200007021749665636078910522302143077885342130552815364554666094215306199515584065852572122258653941982721571030868671749020708391339881302996524833896689201631245705322471632840005655837753571526084305798819051548852040016321702631050578458661166249773463607098732215421646028855075822993086348610762657689059116981745980135570499542817147961150492167958527519271535037228728023550421061653289988636087325589860050660064013505744673918963896323839202158543807754128346543281817525995160304957566765011282667567926559604575782741911255465981510613348318496256266610198996072078949511064373012786304355741464639553861215881130986794520947595823691259728777143817739230382308962810681632988329283012011893040680521272817118503697297962301507785535246823918493478624782846012743797685883543121425794474610343442629560177362089961175327663299556997592133613483098784448888477089198810933864208171674746707326829528378634534295892162233492849301075364627172851729505979057554529359988462856100251276800397850655315475763579385945966933984495408816233258564829868155860021339187555048321189360152308254547788275210170691339693779694361421594580886856786181669608357709738730979993767043826207862428338946378529521828241646678918415908613743073738820842694870922371730785262623147179282118972894775516712636942021537956247802969791327308316254873504757718365725649363195951091613585132809091484802040778176036025214182246216511829294609194337573708112080663310108764640312092201971531678527358960671287890515523515533738896300628730362722395906647135632259385125459698552066890108102302179993793654580099581534106441432849915611046710680135690597102336007698048357016303793474334685844866857782661698700210394704988001431073589711115781285231471654099324457039550462837207406750177663618424706611048734170665309433770733239850526184690161149106708893323244714462896975076995780361723390142773766933775909691808227096698017292054728529830546433408862814254731560592237474373504603778073792418572932490777958292258346961268932207621212989001715671422006489183374491774005756552317636831048874865041016789972107565012558697725924796965696822109586204555609338106142977297625730644712015380504042892497203197364709043122619840438934285574023653658468189538628016886139044360450717983302765640377819929952800443419302149948061026437260480902904292578392090672103863913208566531579328337590285024303007523564839358903268361905111599555199451656405395246042557300581382292072896562695917195125248388391230536538590707365936779043976871687038762821768155257871055121004576218079960889129464403560326571743721387611897321474024955729041039676448844541936079628677012323036869464910213188184464885212723938186907357289081887202023075386382956105215214912908662947092484870833576546251037826770338117625709636618265896910045797003814765787269814689452382793323505794475063976607810640900003182806735844129305997821387580580573493265467629168088527823207274860161294379546229781888995742972675233164907073020217810924442833951411613800736728491544934654309000544342670126834728226137874278172143732740343025206970560122091358244441148948578374575860808408722539898027125540309777116265101648886221701786012619080565004792257271365895716220714940084958402056254067044265696101163039855281248201950012782600552287364860817956476090393821271980511824712563551836455090897938717987232777861243577839654770597843800808687387144840855715796584721139559458392317763266363991476187056155129334115629338662267932514884843593047526087915950504859481398103013644350433256933077319050741256362950347538325229458614864381159080540464572408386928156064022753309356569542535394481942333116964995943880092383642983112375719568413941811801477383912517482920274938600744055187664079708608339853635459627024996243731000119478538921036529756021400640626225274626693823017707105093641469971064943147164631512264981750140214997610880400632461795954270231988088456904985893161999795427386890186135347589197021129497388101623409133590186812005820228551720434485968631101139355503593439207260924774274868919082445581357960470731493806032543341109112027076152416846226897076274807118337154098560604905010424812798831859201690911730628279967584168405238739471555851490649092640658397215902408714376560342193800873650568213520967976191791801997629082532662079513715945239537394148712122632723198421502609970598513333042368615972327035293755734519528099604841831733893445086306191027472555090688350019663650401204461016679131853582950779575612198005440246235453178396666925281760659479288728873656901310411045029839585170539672054484077981997072852563337891564106303965126900995125335504594213281252829608345456851716467307069425691544953414256556660587711759621504983693200594602908073242531381805278351330349752730556192183246369137311622551257807780827847616528644681599037021856917805452832554903378815678083094109043816533173836578268906847927882554145466330778564815305846585796896005997530017374256588510013750528464094203818950967774352881633581212900880458237789525648741616049279803957887991148527035226059286930818884621405092446087075110697225758910793169598245375804234936233553399716494273425751519640531833084088744099271235087984918736026168422610351522247264210379825223933870225018904177297498539895613333316793043636912355140922557133959520732190655872119354449107616258068790585379835171057683481026938792197547033169804837278367329866735088122632337319202131420848238313145801860526938854667044453399292747613076853006087959466520859281771723872190433059079196855356637975919984079375442105517951932719620212697527298183799949320324284668801255960758682902725387512189726887831834182201680488655703548893877317625336307139530664789417370711720916474208424849559172702951440447664225676625625989473589162465218078186647481812543611307073263087487541191099899317550371843792341803820590412965792958591407202849813021667464337368115349465914076013455421117753681225397716077152963395488091693487172080697682919691021532168913199556942557874977302548289153685798097006350732050659321360289216309001031511264303445567926956325885615499128175691191323360642574520380859442184509258253654521687760834555509447783155738927296574537853758056708016239390650312582870166293935062717709687601890897339439856949067503763493515737310931345108529654332038142855996180044976109210116984085489265272514998122002896382471197132085581576955127448392746850723862989923594078557455904555855401373403971876125500334036973535019276178418160066177260740859172630072342533122117771033215122174151693972669989130065255467243516544971309516543647575441085617751510479579667883891942413578945880670607897525784834364404546477721427932490815914457975817998209385937734166300406529044099443143013018549867890614638608269989573672201755961230705520855929362389485849561994165654536246031838476057179753118528860295017696123095765987020817686915030238253964685311412760034435950211967205706071279754890831829868842978598641065197331048735088332612112520235282386800711176037893707697263574465049425816012896887151819061681875516168050772280125775395235637165572462284747942354397619880972842671367970311557181602514924239075045757448161359056963042215046098611244622713963034212264293693417565298485145300273647216631382649056603684105168933436747953582384894428194247695073584203490764014459844823692507669583409336084085690827146866608326142319592159007026134440485505471412326862162605324364305432667831872441242920521273438184988053246358307125047013894528259131581664037008721986991183337160039602157691338639716012871886772956937118749707050519488782291120981427958672612987565935937930876701387085318550780264760528182466222483052548520479150501485497534262125356828122561514748267164051874516551690372346453657625914732876125262403015746191288642021787462017603726237856946796573822839807684171692506646684033553844241300219115156476545959256509194293581413495092016401508077211663715105452783858775047665593210487131452908004744361239726304640166381746416381393811998512921546653332887532193169920837761253697517612120944074418160148959602533949820396745424207163948197096569640513768479501099098835989268595225394732613014154920514403685544150453473572481151041332370478221783360920439929735862419882156950325422457533720470484778708844050519671392330330991554052762676458927426583253924162054626210570513848115844998128254479865145801835124346367711979799559845189282014335067886423041931952318486250355690204836632453544336622500223047440851382501859514370377707023893000041563532095070664280323719516054344403366178744534899964002780198353962331526266877249825489112404265356585834558862359960336806724085987113392826705979631923815371176500476305942508482667220773172816875411727242273443210799598261068241970432476167409600292677222813296155672667652657666153167818276932980578095007995704462296453548656526052984288390238597221411429384676154828350159616300774347963885899258641627928923368555993208461250149479508666436486563715978176093961653199488402575443716341220726115591860976151020979460772714516328315469644829070474898418779425782656145517837683756701271973897680205388286353981200487898513030212282036224528567925247317127599918463293520982503045340778079896008637825237117699466586544785486548514681103184218076162612207082996276115940339245559796715468780030724880919837918138704678736254178781163249295836738339960424241754811763635144633009313400771895850883955033358705500700823930935638671974685266459753942810275645533770766344791083842968191246101145347063891993320467483631533946438687358413811955334793130505445240046018605145865196768422291314938940127297387235244361207018192743065241852615667864448650352982933295911577932423274592503730479006107107958060728713305522911712638127243492223997700314164625966462719925020321876722678845607560724246319581223071715855320970633130141817775022005839209728326732778857581976639803383169194878256185337385698713559577529893750383614454727821043121225429659602001476586991569969609036334513940325798001689472299162797114038857819619723853513991377874365242551896856910664091069523814109533255082189938535345490209352834235661978823079294821945287778992570362461302185645132041623035364827564401990504256318147243664065188898879715445946916223869080628040247486287416178620335520491051303720229318390112242105997608297969447964109750619940033592723349315022249498782096550977358790953342661217689248119050499245282140198070239920798768030204556100254026346409347078936346225139007083704938393647128059847759911974392281367187592668541500728873199186555860939944498351988289062969912316655096333242044950522073923031476733122319099294968680064551566442661431981842022560066488922978794534805323948068604913096046102787064720850532872576965383943098989649012679543971551706483177338262310613789917833724145072897589266204989635775305031850417993497673751080251126287105153630566685657818013690329452584695392853310994610865511341369703198524485374159801691166761093633148438501168310016224552854364005816204394412982416070572029167922429099337648584756903998651481302685355517595008664027209544068554184937502958123702257756721418464954783623938192267454484967058137137271819763615415287692788933048878706345241233334409883306637772631600407867641940364308871476128667991167798766666715623848376194793247601508067929161419950215676962311656338393091159842364433974764914271375659737139230016508712784927194767808069280301013431395289883066568848259716056968308926934920429852137625865948283743211296724727261376578449327511604372776309567868909188159269128708141146754117374133600468406810430776746869950335095702366532884240251953242604891227125223273611222327496320543420243071828780041533469351723401782362328410775672104957068644660679796188296191813770142504045773617680440655366638206426581798392523713831853737006321379497173804415465551229527537139909426917474321808708689614823899593566750329707556143940421509037805600540552433990304981574327838612087776579753394118130932473606940283201288289420095963031428244917938989341088300734576087286257142369309340016074040604288082157593705771279760481141648029921491779046403418913015214183174144197674885867561798655574899812883416800054613599686676899374094855371391954857084031348909632844385815725242824976118234900648430951008170443559186338828280354055230460090956217399863892725826628492864525909413824195948639743653655395157430117129583696111037552121039514831101335980512976037971604684771014415028749212388970643544634288188633790842018379208488056651437961330223192273186717351934360645657319569729790657276580767392346369894782379983603355513003099795985175418689733258801138080163571551970032101088096520503839596863658516082599205630376943539526151040668250073880571581404497608274989932442439931843047363927421683583148183533184828579374298830229250032274882417915520745485034916767707133786357671484609487664134539699925974460352949643098814565431814805020921543366461912197464459945804024206991044159274099970801875067354798024570810393297361771549193449828508399660229901608380911789539241890756485789547840251296731065307905100528238213540912834720335058851129533969314995552457790599363356187382454268016726560437805320549734419252079131749746105823413813622662205431536794978204108610245733080337548379228581852785477781338707350673219866770019728375407659819899691471988778982930632635258942327429747514195024042065239131894748229594130384448018234851788597969727440844003991241583990587771165285362595361909515764948748049024798288564005516110513166247082121843446202762769323189337170929806557724724038304708206266444382312084522286458914331970656147037578027363278967617906724766304900488406348909488359329163679713143666828251760616277060637439748509277644656742361845220648976832162256617067481016080946693353005826694558659702531196154618940316259519009964020747605660230593132241428340411915652233920790719551316451267212639847109484969270610729045507039529209253209069439041718860262254158878053858447934752270028029840876194515005848992933559197964319991472684183133901748874724336593291635021143892515962673444117447754399011028500565089515058430315624966139115702010039326239276192283269967975864691006771232866072073613907942715474127251559907102209616341614251183560896743924090629881705787117848380334159873360765302343296906282916114614330303082748604758510278535231179412199270979386071827372180172491567425127013139066105611325460697866321047832279118223361192682069520572202615701660848725179836349924024419958449104052020592468802897934297438266148023575199392745945967120752550328322669225597723799546955546157804972059918020892269930053142236606117724653437380064893257521160627196329805107837431499999615563610733165085757814123058589983214758611842331127248963987981505994533169051393316242519122306295052418732971204587966712563639867104798895206074979649371055841980331410800676999770516164480199054541161904342868272026509835122449022132266118973062282777770845960685778980941012319922020974564461579471931251020526680507844764980131910611566006293846922230505328014925269345102785529912555540013082667485523633426000393235530179848110373509763437608843317766572887559495409876146176046873170359204463654583042453313136233556148642576503366941685538474118666026357965968620883830440657306154699143680644590914764324787016236102179302960884601311041392730667546438377217328401239303344590040573406177616801683116118054088004109213756982137650828973903658133736589718830318311531642670654278704256957518915545898863748084826043356835253657837515356818106408414669421876824885321786557423584551573921856388585232083224386191431133965013203304205997683946381330532278687495122933688141222548269863963230708915140249989771875481142405488392839500832998301672808178369918940737306638564956374392948597500858530351671418156268181099518806492221086578333422561909104161971254530009703172992345561318656038841301808772358363979317212803298713071624772525212857516165588667847233362234222216291326218746914373943495125753739748408409930156787747398188620071568630639270770733296795627149247993123242825574593691593833642167143439423276025369000972223638613919196225258772762686229211395053703807406199452616713196874764474946542383167291022479363671864293508857235237882059906185974933665448301479705498035295952613956528732500741018435028072448755637710523438764411478771144171291401304387444572836559197951322211442034889096520436061936517781930209104948247786630166691339973708073668600931767162878769010113624283678068211373002680954151433490662048401632294223684337547410054256272747822727928195712187399498067331343125695784155910501084325127228555953651876698215479232803632331480590443112189260899659493403580091642145669712266061941923685890440154654015079062106453082199100182435687454573509882639716608224667120421576043141852188791341093384882415734711284954083715712708257047858063950203066233133611790294913103471584692257645539707866874957965420832240939002227109235474619617408347131397870940315886627393263759358784018221113461963573673288506344641512590731934696632166746684128917072815062584099643041132106347133123531835796980512217405828874835110774518382349033715126165929084615254733686013110739477211590272478318120407085195564965406824804439675886502561350591588329730497948507691265565666125936890795823544431097821777619221996257738072182802779837490660779186075878757874607854721397887069944156185187817592053298986734965881644636382883953833316395582298527423511004981385168490047192146480006247490007087029661707776314597008620548178954720004854499338654133783420673098017447472617366006949362257225577838958749656872685779537885321279346680140735273705445548617979820416982745916074604950030829907361494592933452368352799315492767621697750719726263174620645454766219656064413535089577794178123468137373469038822468967384308264352218937774629518068013928889801485497547909355957670870447380664458599579513293471523191655458903851386378333262206560605854820777291198327176539283605054699415719048847707587116953530091008540886637440271841296874318214644542390691326885174842663138983882906881356355154046337230269401218787778455208438435278091903920552944709922785583121463586986980747285166282712397560476601871083735555096930747495820622745891319636181391889971372161068337487272605393828832924193757097376716984467967219469267563660219821506377682755300821707864837317328462334194032856590585287686649196375143266143893542414213719299317650625912402046165241244625051595547031643650959557571679621159453285532949583681932646431664330054265917212518256882750273006936172989189461918999797029029259910124845056833489744662081865840748696477740568377812143747760412690138232908849533968311095816375024936641864428261783320691094626030532385560211037195727518913813393801341071380345761573063379318262804369769452045213275388778285741616897293954921972666088171257307265057501343879924435089477314562636620149428304979883429406155286852313476901557978041854807211536187102495969436617632144623865589855620596078407236793825529145859190077045591447708625624687334577735330927464626520595855128339234803950286267563477193134207761666075132159576685321035684352433990274094311371426521953748683134982662574578165117056569213275696090721107266716801327327354835296079250024865203817967355068001542241641329699446302557216986740092691521459677512952411551680733328721768762127207178294733085790325666681206906087855767157515855328226811203758959733403532471560370353771295334176975621760786317576319657352743911378414262726487043652578461043038475768464250757191098044548178101583670267377286109194735345760786107860845920415676011209086208423504086692267003933699544634505877418696861006048524491163479331123110917410916000069706539397254102255905298376858173135609308748925404038345075007266423532363733784090827940078673244887055151587720819825435961172998095956287294389861294600315918365060114022283499284578166233775973417536376356997673486337547731405399176641405659324099640354174141641451213358911253406430473105243258109876795051836210502148197586902246421774519761434751898355666543609581618258174350176599543614859999770708885599237267620418802061674311551194603702628925645883205049547091975595708823567037464257270692372409181356428712289590247767268466660225245823772093566974301034359547357574302229581018984042977637399732246719226210344144452307673139760414829698113215540972729057921320408326869406099499971012606667724247258884295340595300545531420085985976783200651133737877904959910353518894700845220565940881158672546178157412953775280560817538263985476670877313080379544852608524078243670552389995040786008011556398750357096104141552800773765619367161384556014338965706741667691183367041089002223206603545840380632794794858465108669880292137183297986508008586111620769973126177154861134701047048831121156123959294792817946560437540470797491265697021933534738264971671248863517587107589001846632526570591290540065647849976302744899411456283579224349040194963168175115894994604600674278791401070710557400997956389563534475658277616488790783788423098318527296586458664744134500572778894816201924818556869758467280943559175721178312308912497986005998756382718503091783238037174023796217439413672927514289709395921469616346147454243866550168287636319623852855912475686222756323291861586100088376747197394259262519729257482640029463856142302689248426209279937877464017286442313116330782008226631698999337580503991767753282987890739051428630209697201643776077133829345661925321973083179591804317354033986029285071104173260155045098889535848971695229567597645383288913919411445424590662011019765741904661999836175654608088263901083842583968195219074400639280207149558171498291994299815622853320851710099062084738464507104607072866012000715920530476477100984887652325066936692605450277801043484839128424828163321599336821894235142535377591546517319496398912265276618464463990467417548747129951081469310188079218638224687143499028225749438466365111228959510436181414321524843628643782856046726293930795243196038959796083047960638300159133874976297176964766425275323277719072587551852047563543004563742707406231432591998510529829462129836502533139795562496609783666045819351841466984037719827817946236480401719323829701270523716764576744696667740455391822279749705066237260856320023106479028807414672895541591534940033117503730456637340593743308406748194450232049061453796602416116976448694998047448420757537228703052737184438837919293505216926444599641363774206086982068597306499826968300356741298981717428444757184440233543663735185205852008157127449645828464593560912683837712164054311540759731058113796004943940926795200499814394699473824057769570182245349471927027080010407808365566464255473750179030139473406354040847304276187767453624176794586694468251672578506299728651378131270768433159952375484201430342765456075134353755629726005727226613604842230007235084718738767419883298560455637907677192564338202187641983375602086502994518012083306693819018593935721707217089318293013349880233384157868548683158123950056609140737350648203515986473320558126942945179484681325266708018659119068222731211064185743294464270696886531028613937860356365770793865986237760808107106085218758652907160891145768127092215335466105114396362130178594041663698267965048771701874508630186101845916544385354712244747152118573757190266208108349266147780950400290335646765576275542449629687382814352216366665155060344136603727903555545178720918295221592991717261924281816964777892253575649670769646357001840417112722812583676472703001243455341416569421675727514879575496391372871249895017717989308720181021499555759116873662606577336701438584670500878973270273772186726554641970065972579964538045774042897572356610050273515447491079505996691180894397543992695316419470143458264064174365798960013205602355856465086195754283125596719035565114645888540735760881761206650462944274127911861199805515723501874866604722326816423603325123505101873056984279537542038925142571598352687990822023657566109901350976925040276849227743867412609186518803884590039624828459067709606616625471952108148770164509530698274765205777673830810259756491662242145322622489791337167684918324661047909215548681360867319249178591782260450179539300511719367940484446105810545972249704013958223325988472904142510876270572041246603756775901579304784671424216663023313247645316592103722454244907045992419434270407462730666819571500761192224909981045296852797748210484232782102729001586118329094448389280820350449181376284426836389069106196433825732593045964777062635475710575384119306428619028879769400881289672982017724593571516518179124903014315672807198599870329969687923688594289653351365783739758631263173596220627713470127902692751918519990214257771845111524079788477420201315303539666421016481918218269043649719033876472768952420302056805639074288477191694494190464440830252987749038029234534223777026084477440629009634587771642017365889492853145764989162513521673900691586641689645500558679103092306176527673464831510116491168824868549979721926028500057445555165300871394456299186799861930680937416305195803149618356565987142746232156355342445223929622506395996449480955793960071592214930542927898976123895032608483351000172517391276065601313698338312764323774977264115749829894282147212962646067010863905970120390801224825830328906390521946747951667589236105636165026259170353118934139391928821763466784491172470381197868581692729267319327595648701430087941667217854116936121609841510361914486521349946993742308214747931935912286226867362602021054284593472681427014542448499224398383144089087198100356366847031367171825298094806179973370894764025806082447670992619634006948293137961750026733787079712224157084986324500958948546285720514967966524335178328978830183359050013846205383061766726342856348126890217423076852764433290962461174476383547847789072141420118851470195394990889692016626631668152713803344976600253375995042573453617790489746537541443715795402570634479065557074664085870216731516658284266968932740394148030309863634446269605492629048179850480859928789741210299164007067184643386344244403213440495548969187745817759776077264692575953218168266776223717433243046092431213150618820287218233169827704485023557063783371418216638660597912124737599149463145028532368662370221748451539954283299382161973737681944217864223874419794584478685462007216590813233033398928240217846718935353816657023332831904115721172850893273811527149373912713342221703818904198801713806192408224280643274204018200064350116545618355472137485011686707997220827395284587104396275117733562180076494869275608403119612268118119917577415541880331425634894074502916776157850139201847567574955840758167825176797436761534575099800508288507418659286707600481747234910141708618140755492274681673089462421378684121932078796252677997871394799087544885136048249742114081895102870770000714291952261507690660869402728733606245296670247209619115609733808135861890354830701897879927392622492450718588213691158088024686642667226741266007435580649897720472156781702280276069766606058319225904186490915585572500261822837625696606524306096815645924798609657052082098266167546767873910636281226971735469032627775707082867792679478936044843936800769731332567325056727789515079896387985958461374349931926647738764075889766634462781128406783768461167943971928523964767010068893286554445277229355629808985626726387163356354073693379443572107869558290464021917180413322345066727997195732047273488630265635595477940271815858112510824951397770117702645776888717330840197339348187332182727467441934685922228978618432706503187494198873884867201399068366716047329684909457125439112369371094929811982574512516682974754973402862329887791931400778469401250848834764210993237666997968212574071150493841134176731568126048323596866960336948149744270503319920456369036011690687432389507794182637277159589113131864297442950981086503043175310167201551677392354363923349682273753523781709395524829357490576457635875146728091838256989583555637309197356551923048088556714680818798980015203701537495032421880906412194658210024068389024391826690873774003905389229773749847816581738001538285106168017838504619615874645027791640694736429488055421355454672261977734570888178368011266128720695054442728687689251353383580195182359109099837772121289021279305398655723113628268517983205244104550054073134318607524361886806156893617665918055167006822263367067506564489469919381990996297966927384163679208263403269895621373043580845746567852091683968263055603760185143854857110225021609495020802416092795821709332145527254069302944196991837904539550820282391851665567753149872297310180229297109163865126676989090759284641608795792738388404980699868417696299104392305262653752018593561513782162124391196499963079150037405996629437442086790237228490400990485079497261630546148623098901960643608138174670734964507158004391779455498526590578441289902258724252381252770889505632535464431985060333646286405546940014940447124289115948319627141422088942293142759245175712054663720568365100579259848410318389563449868249282303464415878374162905234040884752823517661991360620115915297417122301743807072780326381708892249917982734769563814732779805689699491692761654479272501938135789384279023938405057782342796191302111639780930109235451019518556435874660958655778599406512432701296740316758217214490696429200536300960653548076523048587338378584869879079151346786517894052601359370630428184608995552707871152730791783360024868347595851594776849564783423538197963367147841090488698653740847370558835160176586300103251425924290644126521173845114568262527934158446780931428025437175441561383544284232489254422595334512111498493311378975873507969281802752318117771718735245829987908003127697183915027613854321460920841471026431903659430264590747237204850118688735614706265938691760258141896992426001819094344809247155598593207086730964170859507491735183410236863944191315746059926644745382459355853053243912400058011896887475125375702065809097968984258360684302884910871703274756703182349309955508448452869311313545098779364185519665387803753705765865032843726376984229989027360758586246628597873572847086046428395695445152648753012011359974264914016924112731593635913143110035332717053799668337738809870570901445162073327108406574660290878820297927072414422468447999038240182401350135035885408825320938765717852829759110311615007481516646132698793972698373041044278821658581401364472366574718499986321679088686879533484541683945277523622568220600589311721538767189124249875966109923217957950122528689085523617402111870548935180251153421144108003825890409535565969038908978256004020908281029977555667997016501903145046327031039064223423018778963092905164410874559820038249870336496280455366365932770938223857242434681443588213480410170687419463687510007033347562551024983646647236839543737718185796242432625855880592629475231938279157303115892018777096180613033543415452597563345906468071268753113751233323392134955912981842809355285384416419193156532744339469233785361424182961108019548783676471984619287926553869621067675743509165419706500259290255197944148548745582422152235423868669221408898827669593101057716833084563519303271876482005585289378613828301462862077011614734038901494132971027575375992799703631378948030108158566708131658655243443775474009845899643131009921045737673650554850370195745921437144148921286604815047850990251477924394654427276846357753303596857711484868327982520732314200875723353452824825353891028737950973275042280423846421444021577341899114253778777784732570259842550114351505315164365406868073316931918055509432866250838278720355623456528951295083257836815226656269340432180607073909793708556493303005419299416079647841287198875675866342994100426657259481507796430288305671986591428016592746978872965272084235190625550015840847514412498491635838859362071698510395424259739253481097034498634103182762827868976146000203801342413458940512188830909216607123141751471703264125655953742968385249680725568307291912851656306337303103014565094612045669373930492267317320593585990014317128865970247125709556140256511557357843029971041258292117840658443476057571823342759325864750174932273125702977527153172232979367909370336650892223320158812793682490263763340655311108163562539954818941290179850504888257454791518690134864685462181260478101646325860756880799743137335950185827351621348041874748506378840441778592482235525556978367999660554353548833130367560315314110638095433994040703276550279992128077589296921826384883345080239148956481606940119291126139447234058532740220758889010911917941978580068914573611824353642915574266374231476136501810661567730591019024254099540115942711184148715659831188884960266936928211577894706872410735737390706855824207015470327039753982445489812838363065091794485294642561597696967752251001644380326200847511451856072565121319394536767479074546290796859526394394424843611225047824796725681702591991905550166422696062793816550206747440728800519188583590585072672411120593462625434734094821655337549503536682411272322898471769839531914226726835356960937373717461411051568991366394670217252013346512017812327515298495003761103211035909948568030016760360735310690099160712653179275118560104021914378700493572818565435538805143950050367024899052250389226862924444489721989574848885589935635693743363081584618389630023764367669070098039392462274071001275142107288395196377006641435491741867504728208620081060076137023892737912550732742783379014604303081989977043527361962026711469748598481818213419121888859685283688586616825520228479119020390937643018374896369273756962416724758453675080010613646327394729397403944727459780753354388201513816222303789140674476663865700090499906480674436839190829929696737863900613847909988152433643975553646553012852183549152532429311320144354359078818017651368341843449552478816780920834822036820431368304442439949274898329354450197298839912040521935866178895366418705915819130569188787575210525765389297336074506902627711515556821201656024530136140113467361741161997169738797584460514034094890130802182046832203568654415365629205943032957365701075239302458254037046299818725940996407674156703750444875257067404762692844839869308298944423469859705742086483309505552305614121512490598024050119907010785618455540313313241448916941170669912038136239592079761171276979741702054807545202957095998647787161022819685894817586888506000282452246266635648144261111489014578341312027445430466195699412159939273634793356390670037694139965562887070308358131726272423090858893288657589624247399476439706146172265776924567228293748765094743277382663806583067418637153758270752269530232432633078273032818518966757720468018157307578797653657578303347760695142846219928229855057236948378784579360535703174560207939865205304376440336269533107907368529105366263360789481254158672206976367247173094149175586654556196642335344997204504577628371624228401468867984992308909633275515176122062494522010272780690811669660652647959628976167858864597665464589734681164668544860656483873875997882719665935536746912902193135915737446727409996740233758468933369243650901147189597894839410127482895029660745044586556945303494569917171947620427729201084555597272642567895690776012790430556592248790300930238527310370053173889719181850402704999654607819699254070524658723474802512738004987683208864775552609227462204963778020691064057691098385202436646343027049122010772196743509176294159995703711165178926457178505370124883237718599279753401485765425520627633919958144197365071311500206688897844739957673128917658892697145867821491945169867061061523547540187090843703659610543998932435786522618774516535916741495071330373994897216786997663815328499079241834138689235548175402762195625646035896547810860235200481596959876574654701168781566928892918746453115849071158216992417976434838757462112766183213458023104940626802966961728135484361105625247580923254211014814644269235196002336447054156388069366779366084011089179345442846943863323677428444738826912515719493653106772934377555160521121723363083796403389718426590873988518661463758882097123475605092876816486567907585472401327029361031351243546366968278831253114475136386371346267652517390857338477606861102177280441854978056165907478127836814987131485923307331377475724336296784340651960184625807435526345657249116678184614333159841978909103926485878188455123512092144158504881987803949082161501827596710275702769275508545196010888627057412398491498496566171664162862822936602020234333899457364990292230740744129295615094954430513118888517146456788072491246001110290082311612210618005222386980050903075142145719435409426291258931187811603326973897857703675510590959654806475147841439064197088458104829199688151165552229011836582361829430845712465417129706942471007914837017959489561016728776482216511931926236474738446609972634778226692033669982428928713529573606386242373764441125151793441865148739060667095344521324085448279733043462763555844343466126721643749616105060240180278775257730525250506195062276103473574247998069531856266885114498335981059060952887788370561263788190660907869813058073850727636760902537374173914380536506294485245692624461228794424145798245601458261861597765574588245129839546473730937130213782497899721810439455159326606578338680673180814407320242739575659094289674906679689192357205407775126292583179371122686779993342939821803189541103258704579040449691427537177010567852516013148967077129465455635750101465550136849749282868246443034031695134014709842897788053556229113391485509312362821480811177484514748843378675565699489341049145428966208989024305610522065865520912047359127954680223220819153877709498559217518092161352536037381582779440933435028778763568315418004515276076146472643940002712040335568015898696198118450571057491958023061261586802834694426663160428872449886674639626976654252133923752264224820869181571851302218867104638212631304941479521625013316664426579095348206343943656946076924710989504375818188718275157866739390584998811728926240263262730114585900033996610585707278828102283425254440567094404282836085213201514816215557734658563459200802057171781776861735904239991277150258707167487362425720752102394866222897519584021830317816521243126111217060125125576423608743238009152192312805288369851692481537547908322324036248454212662521240395238018708810029936445461083257565235713587158054941836500115467660026067809440055678937506660158029518382280316475229108152836655126497774063069730786703241670166731166419633996043614075368168769864458092462269058155468137292668252129929702018281033977806527523538347966473953866915403055259338534651820703472674208336006109110807944694900730505268443085066830436362281300559389620883192742229419857125368717127794172744677954418982804537504339860872189421904909328621806592401927991114907662670841923567771205230656499473438395712854379282255613144021808585034348886207613896830330589775524318976088757495081384996465257607071153344913427583330900072532817928743142717487170240254843445654896875867995342397342882866036885920886846667893826918410511840646817491174714412787659381585603569550103286309503022682360687824272108447955257459240398932635269952238270388915772915003190573106193464138267144160991236113852658184465628024906073299272513249115760670618731949652228863716237437482497464046662671872115726513327141631262661500367932356807290764204753809014209596169521962959469972100642372030320939497842396494616743568296251223595609756633407801407067918155009924747597470179469412092612752444491673750839987645740846934849655906496521075777824631498950565637379452444478687365397424922759120403875570985565128885824265954974484505981256480511136832213233614670093283027039336419245586400134938673819804102630404245783666198903192414009151288488622905528055503620436216269862592242627140732543216297141819673833068750370265572991472932483393321608874454891284836265470981856684108489044947820733582613861725866942956556535606204961522198087217003289867400691205336018182973964532567874129887320244546768026881852286917289167981072472928589369438687860513477293991661675005335216832892065284120665893144668941338316279552176561470725936600530501155018745843610755933244816768277264068825837678514893256570137769397056073764213284389742604801923774353292193702268777148649398883369335868843876095034384839663141256649075059938427370407914459008433132528654240031103899455361318681694791181553777231626039058892245899549574241245950335815136598168092328092150808538948430431658587995349757754578127057930375540159099681199103277499722363414725921048954512586075508564978147928259850990325094500124469710049394996860697695980465043615343544524969908755612973776584595792486322884973864358559638562985649379417248639113817573892999460614002737579429523718600211594311955538455198434660665519919005204511471964365148485029930559278169633060680249058146655453312767852950933055217596628494284953707063778113154836509827286263554491846032405511091196301700030046884999445204319099867350810122182434140382164826729011468042200552215674224343097830522091581802053660061175863786465054053570260678017868371768456579959118549335020559898934239875355212788748507095148050880036297493194124971747200625957998241715053889435863465621529114937161461813631876751218227124489500016476703631385437541469887357976249127661697334685477340449449006002638842601938618384427671357305742540386815518734934371603163113034322978635596867992564237940933470425212830670407200008098700747159715892453962504774150799518893836548170927598926594334795740884783021358534501457349881159077997723265062557491637103720172813402965208482996118870003122460203512111834275989962318346640709205883640830450994200029252264170681094238982987305344338193801565628367738287336991665071343674835806314986831617658442396266767263296264856268618781699073044296307588488630410092071575060388757785200791018136056753098050426139016598268373657283074415025984370756992472439274150755779338176404623939631840308035107988006674421337691892184332974210988366237350040575707521009167826099869695147423171541032351502799140284519536634062467484091674971342850535413003222998185939781948378590497476407800336392877992424995369295051328202916592494776399886113716279207465663036686838484123723248155327857722256813795067393515947054737247315330191052694018911912548502808294392296350730319544272568401127545087241810989908942974487560473913773360907869132320095198284517253572733428912398239769558863521043742792442272674568210486834892991932847584831282206837649823388758484332666638819101628826585993469758383727786924924048248797275646278938184508003793877022638402616523475519985977209081218956265262817331441164409258277109231966259290796561231365204889780950512215540266236765397455952167659429732142004128251260311046357852470428917938814989707607263606995282210525679902566667728350902498417468442183413013376264013878214592490460033076356431336130128358627624619088991786727576645457299054946801336704946692223958320021382220237285896539397262893607755015971555147199584663444510113567986018410371299195523579476565835844229451553468555436140009566992530338040515591162663065756953855345011421642595059467904113214389624715327402765282819556522793015764004457401382624521283716004133706710564768020055789884876156059074593582670586064259241109181911462980549518414053423960199142718298954377712586445022226934547896384844491480489327147532347339847712065829444624071325250042368625646613524307326375986195873497298390924095703155551656556385332623400390730372014100337497964619081864160952006461446541495129731696169754343218502084228735825532848401637409754664021314197787847715196047309669675260574937652543560745660034904189154142411310886141518803749864685676507964716455572642563168592238768245579773855540569279924310074932207205574900059969876293830364736175230224331147029839301757275444553020636548037336993579134411482902223669059760704791281257632922713480610262262169295554731247461916379056855566103440641379326007550309953495485356776495570240224843929349969435967986853345106832529857282217097116732087207431153935215283970357573325610335397801400344963783485817154531233654095574324369605313683063731330897030531263372995151922302647081184164258620223699378614578070268957822528861163999275893864019845729784846966970526768871245193798143168686251267279316883761461234430001036331570526967100620053936877918586214229460175190940277814719745019116988153882876945003966246404207835740239789131236269918661695929505273166189161920613584067423648803431292738231062561526453582835395329291547495097006514384865141751102444142639777404321666518307913452703000134217801351404409159283830067855367636181736411697412668845249260473841120987376770383372715036194858844521380826341329499257694960279605534834044379841526095591639096307144842999896213264441804620407643148535804452297668966797286761035222660724829667608851856366233255984719073905988740529676153365222989635386049916152305277104455017680324471253482047510779883303083541903322357696749171597890267289827007267230581324691276223540866723323862821529168292248918752408080720506922321282195073541399685006079296632516620373403447128741224041738387243555300300481319665691520550066226860708305418650929346767794843557342608721290571114034056327711195015423771676737452774708089520257111746334551608397897482066755463630806548084575709042968416415944142277248755836121539112167831673649712173581399848082859646888010292552842742656267153544201189380041377126954887049447149561498098270189671697032490629675857083441931036926602010893139390840220673188432494052942649267187219645886312387805995370171372407639676187937122422327613992935915562470402142321118135784735458990878341234772989455034335573844135927055579519320149091854690491549527412525988681556381778527006502721669082030320562703969439025773541590779262917205048763226460620439980630268844070242760681673967998300443242306241373665677238753023329604374265675312919470300996766126019693532937679150497138300005523742067499585496118327676623302789233403937433721597530489455554591041797939363924303633082409898845438082075632807056731679685290675110316691670637015149329853292361549188293947137859145898550125323699100298393602814395515355450613137366230621019963107176166088117185383427100767706337493133584245638572422367468898202587632789953692242525815797861000020539367449301354678327554145764685855104860520828417863629941000320099694463944422892069639760605304876104700757127783137982392398690826057978813061133147087094707278455823825343946304865348645456956070383631352318485706556061171882158840388176277983476930862189787096604365960603032506872030296170447170986240762671272683649034666056884338857037805127097886337850854021140353009518696302787089180273232811620427804508970868255898897610082363553972548079708645713370284217705336566684536367234295948358006475798791321992859573940719010325238379126392494762056537490674417933015012283859755561755379091388891620176913989921307166655636858553817751572569733304208531244793825461843395283069239072655766208836999060745603740071617336069495564874762296936657416195957356564030402944860268145403145678976203355980579540353069034508712414070948502016280673309579883544970695773852873453955792988263788289408336713345645134659254291506090112102591626287564923546141804390320001115038634750150523760932416991633426955622829567632575875440901026459031285625154985640346233530899014146658182842874468994354880309584202307260078501150328707583064606305378102476594388296162755472520400666129279829432471631323537511166189700690048713883615275338199706367790184299993987335795444675081698885234672588101012309662806084611061895130794318500452236988750382902091894965838967409037537175160632580925523049438013048723989956099728571237817627947400796063097485354931977893008177481999498809863962799300917735538177887586666216583617978271707370247035192677956162192326269852405927151422800877920360295833722774260808341285253212824577793388195544589067970378696719557104272024477216686806454964613368168974509886515843018706431463281006100680018326625312840277301132524018577276728242706112592887018417161288114644149565250107119373966389307091297307480654989946366216523448596736350294109824606351859973862193928926806621361819808379374809465412848695087783049685512276876403770599476262057614441971021581331626235584539641947757966220545186519273163317174313093132556335107905852750208165555784054835136971135067525369626312865425270207326963488330660896545179441251167843505060558472955489603844367087792923997688988282501883290815305325648618403741609501171966322905141491680848356873177484485891655846620883838181865071894158031967646932103897947804253529771933957673338681121672028815848453033830869947557691222902035777051578499540346413618033308192075039135089122882194503696794500699775349455795770781070972598423413716525235438504299962018128167727070989460950729547690226087211921927215796573862101420741200601511775093741431899160889008323785479687549192362733566849157518441456807251853628265243213199354889674725997197125774674890333759053369513400108278878218728397346093309563144815470367002884655728424220248638393845280513526130266962183665590841430608116879609953149218771162236425371455002381516181215840487155691269248243567099457093954837004502008268505320702775418700292450590766766866208518066554247328292379960626070697913309591297333989988671737832962920724935798117685169659582740200655054765115135459943985037663993734993514439513777245221182535295575842619654917331937907271979969893107162323283217777372483713840661181258959003547614575107934615062353845444736267902574064422058887999655400383523369413018277978253238901053190647991110547987426022497725660839645655588678481874764747052253434814578301734272218125102543900913390281494740261945399328931852785091764001139177547381232013042052379357502614019619856381265487135812855493290400261775855837846597271852422136296397248799873554107398085057411812688830446948407655342333718531826495385551815300293360964274770021103635664197963183936707959193255195512417027017326511919187345465929810359879637185358988528709041112318172129478865622978346005618853939686140096995460486121171337387085973998959360858378688839793273543529025229041030664589759446929437383177487652938189135556214001447108405921347755073913733506228846620860545863362878602944949155140694157913487360131862216393359596786486896942958619971364586486670134152574031581302833856803722290305729068535913307516882097648660071485263828388083855850372788775543700122034172672454862733396552146925448715317632557972206576421141949896707024420365431693807473031625036825477418657281146339342898582434796035136105471056407484082992972593079387748695619644501864309586181855141413777953948853211357562560712966289687040129747387364936461857436374692925847930234278965994436298829859599869867733799629186563128791650808677485854695427084552400898049157087517544985028724168152206293503758374185979267559802120546808045477996643692998595114113543196774932046948320181765336402987308328797127394032038953737074116735180653880724952287811290827350325575765797022746775938042972944238689664702585680487262761083592475508093959181817799255522548796092040331939483962388149437764341031989012086511153894068795720397583592480743153702840919923045185537583006265426436466805337767959550229009442104903070714391445920624565870921856849064056504647364478715998295906660910846374475951036822562166711281829432412469385983703402391945391173501211378787124388861832704217794929800140764988651418426491790579116880745497202851206216549374498617239399915259999089389379935731872393343910592634222144295032740840990038181269141272675216553376311516061593214418518939331587598862137543155902321261760554207400545990461740825577018044026027823517112460656436451217579306476339292850470409850497866666532510720493132697673116407815335089706260002232466427682198544991255861285287285626841001433329342791907282332640923089961666931424898869553570470953944472877487289662907764001407143605166171651792459860287366818907357693510986349990657897475758394783313870572917206298671428377077830845353820862632041529667948166037837993196090874838598568934549406228959070824825774837884547568929739340144062982250867872722052744111871953995622168378449508040880495878549594654599853793629958241584275136782445937811248197396189276943066634763936239127921592809413136684288277833654442431141248738803642795081683063899706611849104251497575222712789958206967156847601758431169252920567656917158433692446774985126456741097330112668452817823228499173426492229105977362217388963359896082353858108792115120340383970323778583341068205857557055136838665946884698060716314033198801143608117398427823411781369504165170052730239288780962689963043186596585704589557630797460903577216185348068498686716341027210795295183842354469638079928521547469992550854480588815228231123136827095604666090930424382587952663105679982946585235059791972229349580225707844576830305960494770102308695345579028827739373771286069779807014658734948379455547887533276296043647322112753280334316209723112665161162030070412617451373108037933817120813081444620797731192782714267790619112277126683090830491749451768499901062264579771477615982903547524509862013494101487814251108940994692538757363123825843081421221576747916857646481665832119102934610793829347939040026637442938434273017165958264602347136685357058619176449006543223020149599465030570082715354388047223762549713084206093539077215945741068474745510931262302150889400909426115427015620585770055797106067963090077509116378618257005863965873611482742381188052637136034625321423682269031435503709554206861392514166871382322139659640458654096162632411211348375545870978590522842123584008953579660416722912051294999938073197614521559268085585560135694762699322125158267598052704401124697493061831644599414340211589767894341636888744785249855465645923157864307203935483457386368440197298915136854394671669417795553190272684141898793893362347282856028833197035804167614499925992830533314754197066226344962134764215888014838049895788538763494083710644243366823522896986558356143601761100186108981859230447354703036642834755226411679137861960994070006177927667031776179678142637813297411902001709816532267092061000042114674331265212788018035348122758104484157860890974685001679528943416468930451653169611813564363622623935517945731041069239072605646074906724137205006257334450451544819709413473032705023009735826224704980092166870940268945297044310915491929057683308773773362397722439255950757445006777958342431132797003779480714989762038999493104164435980853412085370447775107606283560091056573366168446767301448451452958995489557349869556990393971784850057977208406275357633370076054705580148936892400036832136659519612493097435160000543420430725529509202218018672190961801436406528809045968433064473568637482619824479002835500395555101210877733913962925502340592805804691571490776012469301824644277822960736076421723132723103826119662783551501425486807014605802140354626914637864427394724021672667580986145857463789422546377571805125096920659637321913144793708050297729539486752734462217510539474167595230532278235019439958741005827681856485139827811630522793647161417014990702668243171857551789841003790522813489938836191219972177968071733749842678433047713296190573797796243854631100216675004743841674421590434734717972572826747102748749662743068268356986793183828603683045518018824119138638828215441418681466914539999494634757467473269865334109924891778596629886661765708402006694365878209239216213996475183857865006982294893837471070534639391835820435551661425894639275594565010671317107441579898616023080178747144017235790732946001564813978155631561582346722421206931852330820463622996808307205898789733198163657029774402971400196248135498334653138826208691974616641562275618460009389276573692834926380747897556448895872215381404444802735410925253678200485840731208302972360919419642993869733036459035170646573352159042053248549250721414012526089896591018585844081199682445232110175303293449108324586850899529983390282603215907703754072253933670335211798335511566589448173465170135749374615969054921121153225625962656041765979991607050588750464082100581562841679713201005618124745431532319765538611824360443486575302577982543726430849660705657170117239983920882336874878522771564462154388795115451336888860816581604004264853676062647340961436542675069483789747039836170940823102200565630055499551106539747734361710665600796305606044294971894276967468971253915792311627226879680105327660443531045407230186058012127173859695495597483471207843765183227711378651890429465670257001425656686331457078713737762869176451979195418881656113418585655669985201681189584117309657551925858300673142153823040451339509237642690286401217908222080711133953536348737727236028272135025069166226225878751838812151359761534823615240870039279281629466958415267703940006880639052549481330958384160138153709780191685676476178513549372882808096299521861106593721912672230928680251786731893869182078053398707157501998460549606083582054268938147874572705808230218765053313004405219405019250510280298807179408573384354150651255055312336450402499468337136092729529139371319359281045688406558458924771263388350965551407156635638956719174582183865228755247824349267681162690888679286245687307174523677720168126774586388614883412597798118505966523166867803845830174088394344612804343864711128858888806092198729565595388623353845044375802521066711786849102849540567984729446168494402280409238324207194478436632115297671746910110002628993057492915582974239601252695917469041135470093252095710486277211580098406383582753281100263317342298043812629785300176513667537658944717834023537437930361726832324020645739646743483968753085253163054992261172886626636480805346990174912213052962991214073754439235787403827506649425206236126526447160556830057689944458568122912207961358947499824284924203492531446631507247878367891969394614361686267243799850843785035398976201443468060806453105000942050790889256893672449127093733620309484388782464951464061418593189140114732440772925160281331898470476641958327849669735856168434829664588530872049902719141140214969870483307898093918652904171305346267803315367322928694749021658514770631949997724624352993606510388025409031423327671057064762297626201345643423778958997073930529197193473306748660241099343456802761188761591940976072130656581566717365062237479772382724722353837925869512277434166187627663210335250134888081291393758416598083715489704121384765803166960548455234970096465285907735982844865550344676308638997669347509798331781790659581575969422344776657061049527252398736668121097710370302522498515100769061454014768205009999839136218714077784432243691434932826642073208248046761317210038277624177719805230045479272240528924337252554809089566746455299431936631658899894380244973186373017754376114399118027983619251494985296798617898329344659186917742602081701291308232062138939600372168914280292943688846610582178093409512185325842858041419790395127877148397359303571705719650676050674152778352311839456580195116765715187849878899928320429406602536387854789920313653466955101200514740206104749796882925247645005527981640357108374513029175787481981264446875117587104695904294028065151895041138318396408726798205915762973579876109391369574739154769857940029987331085396551626916522812599109580339408755269068072538462673919618753580114766094488557103858511643958184757257354590191313278347602062890977437298299454142814231649506082429502206692475855040524312155012647057302829574223937832979500861198465854164354500164332832002016562884954747644447012658189558951270986667162235129782973313134577826477009853508492408655451502435192992957164997987319607242520894559524948012440889894892506427473909698839478491193613581324594200392152087610436324976665993650546389894072162468382751005366736752294158599495214485883664408359594552594299292776277214066104123100438955506079481460022333564369087969904872514557120494600573728834972898027455244477759778343893441705253848199277477304298711998472221066059422177634845375801062611817667764688511808326723311357498288841606573090193295856733656472698804485769238058140824621786831214665250313405956377943098449677685220113453390773143149987364357048412421919804735530001852904685157402399058456831398278665872918509935235691608799859187990181242838518448505348770465041031815859765034399132607873372759761194007477343421309606574202209469868074936614693956009299157499958821120860130053957083384761969584745117386442571792657793307746590262482599941283427642228168054797051735577348957087630014555880410805421588491470052540063842657959164285662945879411824250157985443600201596833359687709227517973987911517286842911594401308479189163595428268173196785756666038457989846751475124982257623058904277394205330510701266020106501397043243261731320898780325538651768190329300808042717711367968665614581639520390767025714685797362719866150043487925275205728311753292952704411507325180696670319236578003862551846517405568450138960665680868943726241292710454926843715068520750659313312095046971797055896758384390429619028742103948326481114704453097946147022472686296759940402480481403993344485020883144292811703688197153832660868188849190791068752486571578056893488740852230474522372763985128423869791302793091011499695485086978591450995049554544015607182063386670490547460907543487997462295089349676609979587414279952750008411271948462018889643135051201298489108634155307535645598568379190745783512909440420022157880314131880162946080215787560855809261776692902688688094230547868965991637686489416647222450778750243534341449477474633646328643791949742806137237298129909574924172146142224418884700086920294113073316829183989787391853491949552306756250807293847145553375601327108692266140013224250361394711256352782989167367960734892661780121075070631725873629028390423454327679653394591814270232224513320060331449005418822148491812745536168670958864453839073478211740677785390552714074586117859251434427500167445159651941719875019792077491507638483747265735257303693471131043141984215105161182804921699625036565683176199876006832340979373783798524505913795221138349546593331973663029683033722249299848412888323192486882839637821261740062898774483054451998046770294608865237627293129081696821204234361846276134162978950193514589434518462746928108347171949209578785336244971202021199541719576849348477187506675423380788855567274751000680642938839828447686145836217273586259555077723396644302377189332581649838927415983593966253021399877015604904270906214990056071208216851839165857655106918605686266437971688053484180392075436337467608809026534719927930923531042095966996689094508403344356472323525390737877299242844941917285681226804947434300613627256400507527267441882386120775887453817627839542716125279713136145290900922198905744111588507580401857524416168726588991431836244075838033427663309403074040705878406970363166221620865886872985120271789441925044556068874182062155329057739529612250172671173676460313510575445826329405791260298652918873568496844584338643300788559304164816048983700420481660804269712048261077883045706380202664461139437122711785759536401990901121777677329774779113150141123765836319632066819496683289503357633869190351507575769334574571340033496616676980579448271913879851994304103745303524277130779622902019202246650430533901305421016338214499763255194404306845251008999686663624209018415738725632932672351570806180619512141789016955708401857909451999514161916873119847455855493478113042368375871124842736213315057477772990000375534174748517599080978710920153652147323888864588693039260691620156471234105930697482171014773918268527332983799984550143170555416185389309740551407095397239800596152970210799568978908606086556510314028551261316782512630415961863972692585006745033267398446070136937754146723671997471035179032263567813615919359481710485565769866090917244749299900848787689239326945066808337707598238013683183662406843357233490016179615384609933339066092208388398958960779284038435131814685837781441835099144748212310340888061792677437852232370827857508486257431779712365956319057227197670330480754559829291377742566001873610921915377664073480293528469148191098990827139695755376890945616814261181771417646558114653448097743837286647164941400125270825541914785130584284351973733036467075309692645104874500359986746906339524111228707807159314935881167595931100360609142749604536131138185258472176407580232282439329237522974559828560454084147953484830586212928427713492618390364660450406272696899178451676024934893382983701816673155287705457880611367050015977379740196282140107987341358608541703596608585158410751127636533935947672850691548426960634572638123309559184479608455839150714100799959741259590272121569978686000754776729134251884431013931026720348407598466767059189466329599190426585007428465035960541157893911040097223683549706456976027935850575828127966989516321416312714767533532288011781474358953557659497836975629461984835944074411162161061434516672031724597344768164815759565074979913157172840057970568132004078300485828541169321050464406214525163781023595205823440364353854044337694036983429020621455802689128172395268519692956283789561488615962753061376898554708438562887315852657278878883780884328799028299625005672725659450259115558069722024620033153219789179322446747417841783112243345283905001984712085556628529042892490842386206201874869957414494126196777495157835362124420359617653319033183661706688800099868322774532669775226631578266073668258034838429931352196840870830566123804263920711679463976499022719037905426712204783207211036756625257594351615323066981617048269078983615502300263143613547777414331165501750959678072289779548164160125554460083079858411460419144417523525772798920501663692652335128111042918886298411587890505100790592181987991397617058059052884091015164508103657424298806166425658115875716492209913315269710012632884555528086904250526087604224373158181976087457805075796875254060275136836805855976061809837550860896958390123131659618837688346687935717049628027781117891472446519862842380301264968176936461908256575180481860924166763498777906559295151990524471076774068436724266189546023877036445558702846139429950854513834710800435127293561447551309519397834729487295158318020689847586400547193461614262605877919835720172610800831911277066031027348031110961349580206725698955237744251080750908251588559059345251523645183558445273288672388469471069025477487385094566322245107927074365712211788427016638800405453821157396416925318918815256280129512694566415213012651920736861720654830681188929446155377442557221072546778482575185434743636485663357882142178045686947241559748976001592693843929582888496801616492212624847203600264028471800030293586642304305791891826914207929520983103835679971622098733179259669725463795891641244687987376452724325186078483663621186950089308973073841387576951104309502753824647671333529461741534445210147240622729467233041747698260555366760393437434920269864754471602273317192300003236551528131124636284021437096901173415163361477032883736213157652680331294943234379630947833006503580413873818853213591920305787934925123498939439635460478322563760247968880024926894371190116698730146381671371147179877303972197937717646179650739111343538111019549000410006937617217504013035114377500600981342682771515251615849787457577349613531130224561539932228738364737363160878504912138632781223421501126830167553601967485162283724993433349103157739078125263293962098174927039112879738806055136455923343493673916979502567730104662832867417525980037534324013421421230882114881249520273216630334009129741635142791581039631188674665780256659165234081356286814250380245529414747772449517258438808122799273839051824644090794385920499304512676003242136032691190534044307643395185246818512242630439728836360158562829624155759223461935590369236753794610280932660310674282626747794096127802720519495771219942218191046318936253852875815733243613738300297920166230636258277429101914157169839409950701390513449827310113333872432947206263810918044292313711483401267953054372406274564513788943396390356045665689039379669432604950949579610715989118800671366863580803870085543996964996582540350967347142557391053994881078378187032662111594433184930961151013595668843214871323144923945461258969662870853813852966288184440512553439104720081670526702499607181879238069441745346605232397741790994583254650675069097887256921029606444956895105770914683483093838226335923609913335295227148710852493433520991105383291730764823091886600414510373592004859887662475323319835097421650818824070425015248747026823408268148338066524372876317802960940450163992159424845639096804581328661081047598207391563834163843148145977928970471984993015464291452291766747020680057422821712386653924022268291840134607692248762962778550180418230578929601691675432117699782927579502826426896543816158729885751403523634741672610417112280024348947931374217369673944240061944911345008378650114553146361896713797411594389737738616638931770273387458153704121937634440317520508817240051182368972947026656593294941112667424406029361138049718100168212533898906554060173139415389237659896693668296812230979822173979538747575290613720613424433287112716789134139399073079921575939268036966346105023076746268466211823946512210957308202522158170219226032333698691336040171648760332230523269288520502974756406452347226780731859050949683305585323737150566093386738152431490634669550341073171330881424525683393438215768809195474674357858425117592632755938275000870570617250085271576655369631009051963643020778198610453953530513330818096599494338142924139577272091890399682850416390535709255263263597041796866928086462671278719682672299306354135659243438808232378524258783757993415360263345426372318362454058376733294221260682695439454130477473555964422533637252540224202473679182161002198596725084325957919066406561864629413003476992615304952417087260973345556716584478695646732469077277034509321591736845032031711079741231616884118822912416473155818326009201361649077491495841425508468915301500487114177811585075644179013176365979357419542778229308617974368595955486872611598194106771663791949961296938097056157672389457036922351148220348521569192210595032687423166686848275710527226718063073278060434878011365435944936343067773665034052770602538094732347192107895517560697510284058240505688924928844113950882368078877989833477639118785975202419671583085706194542044285809627470327658944550849284263294331934953079356719866660783519886243048416550471995696175298624661508073084714449714215605925023819692940848054404657199897191000628681280788329794223715462917287356696341475686875726425359978100918381532597461918243012528850978805024272159970770759594095291031220588203805920813954307434022602910582037425408348435378951925809334512641916145037414303348412164860395406381073222169540253927157434536380664599217784282644872983206972709374063415680463449060242549353600776416707064043392020848658034897796559604367873891736956869018209385948800834488892668614660855686217766041228182154841390836947656654207603152768667624884526136965736691974398552852788318391121926036819627077684869395162101242010299890901837663366791269848863462123777987473040732939190971994991081031236366763268850133344428065520264516939903933814526514363071191167447563743701353595582438761386194395707045518894111850730991603986762626228783592819506122637850402573516309862773876735391696009500239443359166592005263065437749742020932269479211112099100352608853214282776853162612017055186873190506519187005124098071708899854038798206092391356043509642271748744834810952341264042980321762024452300405391905494176029382381407907438543431531958325008904271135287986841387494592587749076040801776921634066049003452768649407627110991793625966119595395790208681329676982533778812746981486295807073342879563611448364884280281673812404103308148503493997234359740445796059271421663379462762652228396394417960817488593499301448594159856332346152448351262009639684035836723836504812899436840959549604867384429918173476048398388807950126126964483512045046012026726802719106240506535772948698319835392384288801651901622730116335668692921770005360017631637237415889760583836909924139903025492716740267799826698156373262210308651592560393333938691446814816695752344971730772559187033778929912662907799827156464105986764597531067787987438724261604817305064450969575818993168215962301692538978876668988640905344388837210257552186122019515478960588673417860050045071442562801967436266122428813391595363505901997261180260891056443003585155786767241527839079031026253839892552100810969545428003943432141684945461981962145258557327297830598208430084584920507463234937290587577335568576618092414986755220223538200933125355415554889300225885232071453736650200905276896885684064177738496928841075831197391451397436019324075878798487471258807936036328942396998998607306767251907044741039214957364359503861965979742163729805816237040157812481693644615028042642405522611418262210216439629327421679875709745197012897729521291831728368661914977595520052387020215844374576967079691656391370681720537822417824539994145621085292407700509743698173598762461027303186828694270688728395686256667410065449627817048981486990544903110130952700807245544009583987142935007068216338517212320860843776078328684178573695829692059912870909795292868782257739564928040404521711276664094358715489602825596544696509712095709272335779101224515050724384072985710678699817029093575945311208061623233064460987043250599037856075274892798800759436097879829579005625134228930668496124775400740425673267048541141214714896670052419390136414226844800036562889302759128857235681104857118851756316868243032497332077064923823823394757035651091985000203182651868448938791154844662018221267926892120351867969466190664313510698334948702188374096896749983061843561554546884121638064481727381388756794879585787294987143818853975076916649697189823633992220904845012221485242167517085429926475993936489412203572774377190663189966607812918395105514866013675401269256583998844050361615537781116638690608451917979649223420124126920672511548076674690173024416856738354526501542599074359522169443403342058616735367991255513020865634999665259437003130432710948629064805408005597273145407670565868786985569467802874414019329814941938057791626133604307976586552842096817228422970838476462012453326554723165169889850973209662982245721805375997148753766284152713026421558224538508549533187848296599174245097068246682929717980581558060620020880586696888614805738882737955435257823738841787123254950653786399668709303689851640395069820611846678372717377893569371344706802671171690676671072775378957829483708820719014428180402978242046693908436487465142053155095996514340041543059984865924225902006520467732158722241393108136174271729564399919751447674690446947086432522829490155387780163472855677555758078392328470049071620844950760555697446219006326884252735601046870910273888234225911649300351644778422560932391419906926959761283671276523807711209517070416165425202155090077922797445438592116720065734441157654364211666773622870933886582467185629324812709004769880120372083093385064544717099550279655834280727990736401505343983261637066843569952724249374948299043334086042113501712110814409936891087187442558812455425434371571490004485578531389235684717671062645936439336288528912700732078764938367168369392767362350615195802079414364033062534950283999963665849743822035895651674014167994009549345572081452237038201384984151310576754784364869415215978962868719266497356953313889341538409094859793807601247589704873029269378605235564501108217441456034093056204129807633957779455371720027870776134919340545737404037685990434570109233563486942794382629328708244404028729338117864305540540771501567007001680415539610276827714839575687058414105172311542659563742557417038824028902128488415495060436741946514820317574026861435833783974340591941536640177611749263442900208754820957757999081977574817886701709877131419595473201633527088623947424243422254842650302115599933393473336329099047958793825550920659968179283938477994198674224832347623528709358528600513123374933797224340820589522907935516259693386741978473206265181013222376989386728228976830797633441114950144141356302054557211681367438417177472905647651564212109611488756268201826997046369257662149845758119747180244680438179484865960422569597631906139077684768587456707730510489692873946527879133571367619306927131591746437909003293986545822704227536032388676159858187952007726010405817297338665734682283496581431204742842638109246172817140484091847756869223103080668633027033386946953203182710824062252592712737843653940075649291961697233946274978035830616271357661262836936648543136127315651291838837448428664851641872602915830217699263630732293519183275561913797658081689165608487592961718712837488694737114329077079783172213636137760739429108055726299536923372984602119520372189103551607071634322931232596010300939085473359699587362834052549163175144758879609674590298661630360353597093445121779294748119876651723906622565029226208365993676565389877284974204471592653030526677769935422334809040587614847097735520723472659509712441127231093431185539010202475894320409416733394389047590677633673188992246653315649463907247768995621769102672399532690869417045032774593252651084217967856727537526982976514817577468927837996056279594670914265333355567602602310702091743589496951854262588921030426323417814742464958578630068914780030078293172299042097434615979036827716466058319573965484981920098918183835589704736551501522772261490169328696469498497391407958492867668108235869766154448898617170749398525909148534724396800684836443513826702734584904985414033229283379570014538487139661985273921235551359711371999961766268381812221045899368252126531726462851766618663613990228078667792558882269228175479453482425547887503699569260396448876761866584674754517000319013003989089822010412953113550937635297712265887789848368954645309191738348851227802743531256811417019215632711348670494176379782092644090955832703528672154515662701196112169696841747480250835647203683304878567286009050680034906161463328063175627279290396835878353863079222087525318370398654841894425529044439930727789775099898375486674215075186247601056049892981813303635801922954972347850770471389221065774644468639354963269974668836198868673199384080770801041907396998984536110248849425465751972648562878166828464521471934787759767106534534708772744759820046255897880329159259902473066511308554574072691357166872958095210776393671603432731651797959696434363714971543149913118947516420702645801409990371580507301923409875720745590274488775889060661600102332344360466601307670743769241122158714426976475158998819430538292927852316525125522193760679685810876480919757775092396365689518531776905495404764645506061168996372906136015331606356294557359375378259233746526024609399843780405744591256669097706415323499284903439583658520568528080104236513016551552476919688865140949766495828669448368044672932006419857299739795925318771496699198121489946145149034934310628890634156264934245203904557765152144779149979090055103021024643740323655745062199133852032947145948362333208472258945424582775137172340584785507427083676088836962919073284777678060359559575794610711966759001398110875625741091816665370691515037084258163501329422207184773568971998200449935900332017633971861637403739851978138626141434696993754111152679131949330370192577573028081332143456997622373807468347933980122465938947639012921612300861280101922033212116956115519841521601220395933349196808793046511573348702675778043350497385523828062488107516156731729941651114545153560787520636029917401089190661063832321835364827596184567314284569276526567414309682084843480086338992383903202363806993538386933408320503278650491164242615054954357312854962635583837436984241623502171426535116757075150623595189676534218389014536733618428409570618327415346081442913501380555296947866202573693909847843338329549276214000066274477531931499930311873886153611342936753522742435552604024816549150159438044803079129499729443112351289351669818087579297531932250814143747955428416676001966360461178657690153338026232909566164752752854139810567141187657651248973570642619856414580743685994918115891113829835059702828566207864385336167646401448487291467353929940054034751261540385271793543481065290789801409021953117561390405782663920815358657439862683983491782655992655070429717448659448960152049501257486407063147648529537154822464110504871085801547680179626742196935329997525099518303792544828109355218579288012901019436764828191661577473151486835599386962491157762030353879350124769547655357520928670142335448826585500720902502946573826072715841604865949652994087839556474466449147120080013985916292777003000085182457624166506190354110748223195983069216006222481907343289213846720491816709839449434582280703256175590447670299161598860370042285831981177863203299041721837022535004338382690453198320436558951960209650210691206626809778771509055377799213954387480083409856863059077894193520016611439538423468464393319678345937039661991939582446056864809810738255510059383931843308490206814924462838197536358488326209325500669304740560764419449864932762874323955631452539497384536170152387924760407224670021721245824394900656133916771379851538272426800696139594009470452451903587175577827733902595846406376913430639731955140976961641984546220780221486358420839902023082709642466653958109131814888750965902993240451691714275716701511557980231467015401559984606278097363138277915177641949088324965052006557937996149067606719784774787535826876706969664661788611605013906374531986014825530207601162698650973298640556860175873711238161839919937962657936971695465261618577675174301462206436369430892338033935697435964613580382742435503272390136289144187360457470577054638852737775046219033218666350254794183889608419326667265233979865197363189792167557842811333578971528690207466260431333173274032763734661724067328984921747899757349033682215867227110035144789580699013855012969481721511406742080782499213432237661579564648303291888850854263359434689467064296540055747248975870092283286323749851249053182524985772512993040098595589347467728576050298641398268508076764819953823684728686329230822417149148515316849372778660729987058482329333678868129678794353007885079147692987619211278345218316835179612244485655921089481222166591203570419247810608057662863120135036745054428817044952990595849131701841166511736318235219297484899437895750576672322604591695889584392889644864706003775736795057167531748253015804803040435879467248008409673348977858885833169462762107683309974833651729437371776183431198435265249469292388359567540470654849721884612513691324197673058820750104483584569997912483487816118711778821427790638773528405890602304680644507674398832775457584680619453591644027891208046769654889613488505613048574931895799134869805002336799715917597398062825993769975058715644555310674734626094511873595617882543419354040456612399253676392472031265101555029000896131739607945181274612742792391654209021288763140523603818802430003884556064950328760013479946704349568177786454492034789049091433384561257560914022620896384555094250457895635941534206378138943199216859013511255763039516762274203413617508997410072268579132191940888664437729462864804153403183482837806011720730905182847504373189139709515532333724498332554833059216560702581812823527582185843287407882560553996851654438687647567784202840805185645240613864772669870959487957563876899185250973005602326100563912995473009948043348160342711154848601217100626200434231334694808462995362779545760664229382813828466145927693416229225739517596044574062790062686423803592868757645215903477275242188665477007662433269027091277192012321897592090556298641704096149880073482769594110883423649624832858681155749709633381770317289604203447610525280270438413671667124205988462230014086614682495819643147282337832529195470442920477690468527725135843104911910365645103198688479699617761260203839492266780323411475326014442809631337700661785541653667586246783909739909968617717494442323304565128385165025032820899065079131839395293075793824766452056380462069417315462730249266350083165999576260783274355060388206118073274846157983841172397683677794897973125740594455366469359305377516751063574950554970433552532420553822176363305655368738077391269333930801775719591203702150092810474499757808399765594782498325479001875146572353322322532287449437166156873327508428103240486350557126563045968536371779306308628268917693248935215081174442963231975008944773541239448470639525679023824669334128295350357450242196752762702988924823946328528577981884417875949087176249434392702178083520673054048581507195208445522109618785412180132231511230304502386482830821427813095634580820536420996003752210952748015945774562079005780112413064973542193595306058768034920459726082335606043195796656517090228591839898184572363347466859673840277848032840392006052828094051693015420108760680461037751430987284081819708342684266094992765075019014009525103329884990368730259203809891218427937437317402781173532634206102866137452868590162537428775689586772628071223157168939025791689269155845225834558830338118958735970844734201059446373202933884188853933126339301849962774529410439062536214641171036736105007513452059469643715567014053537324647974507709036966012514645936758960084601721300253417449537648859137282219379140815562795697108811876594375838605941401700224023532010534371053683780018551045672253973084096563658744338260286879115024237406775227947280067933527523489282688345829825014946541271406914776986338123600894913115875251816599107199733067696583311606711370271469594509440661796844443622562907305798284817003680306898539285966132355843502652615326245801304692960418326663331575779853845828528094990306850802850566564402714772369428485962072316406653149726344085115108998686845493369209829345869082287580040553398453345036835458310475199566726086606522220865708631466346394700845576047731610150898685017014835735164085729185249226447685617607002000863592956249694881216194091901770894810630315945187558702127577971866559059222844931481812923385556450188199068529049299765261428983854083020496693214100193507299059805677337257924231099866163492618617894628184268416585330482518573784735697543325259680137841799468583746397688287873321268811341569118318904578052781499155299275816262031613140133825812899538222321207152716359007015235859524268808336792735638771279902835145704356866241768463492004694937434973157354059005224906708068381322820611468018199357542337769644433398232335948855606915038721798306062657857284376340508200953999909821225147205134236183218894513345136768110855622847637507224728448963782650164003157728660699247298487250762689879452813875764800166201932017180622424947101484043194429846487924670268676837633369022086095466191442092543404691297441235533917412483245340089548796432207073556064431646135082294689998437180953321481836731429362486659433143721820334769166584516341481320626911274012783013070047046599133760644343155675945288128994730068148469761905475855459254338436931006565811121805902675761956285835155617554969961908349754715050642752939603361494391798556824965385326654817125134712215595851509817779185824668180708928043548517408086842323397048695196924379572412931998296464594229604540672305848648635521450684837874988831505236096312372844011624742243431211072805466115080131508431094794028526173146277778156557073353672440774132441319770724781765700974253226695445767704478009434636790957792253316261858780601886515099247395132941015342357537508112784754639458798568190774203140622981255371350320670511253045199190256482393167428348467948225712680604861498890367748468538354640164673657773618749908093026524229189721559967139751434481792954030399303422351933854887352667129493197090122967432662590159977856568700708269937761634116711901124497443176825516355392522121965258656779262441478971588399256156165849409358412097725111981750737747940868820395629211968967886052944926817678721385469468962749930205681962902190472737081217856242467316264170656627161931250833380388490400301878131913889975718596430905629948388401144571700332801622385174075686423430069394515565321709759090693250468960941543203710354863829952501717088665236212320654598412541748384603119675783916885913805194831161972445458315598274242537336243927269688384464181071100194829385167189272595491360733707925101431235882861526970284999301281293171431813578686102709349582465361939344258057879357463282896162674338887173156643319898490605033883565898603548891805745806953889135066711522819113943515480645122569327903277031052269299103548217670422627462326718319702499133585222013853895018530187297872540331554870450782424856646084708777534152139740246598979056063685790300581235042423299889282873762069413081958106951478960423035743883182020089405263421877656063937125046767933567457340299924094165009214468825960903611578149323529618730196859901714752206057127147010481319766927212531936428146453137512496721863547375863413014456240373968704981467042920639909849831190078966311035864118776790307521624213703105604251551237336276682791594874353500228892025523095376199393301785077372846519469476570187570524054310318946130478842794633045760112388477684461913834666739399035793272073179622173500365995560542682517949054424435610203467291458564115862981153660107512500606154625074922677219146313349265459998213466404199432734734535399367893691746151073747474119517877956091057200056077942698131251244741265174082627593450654874177541097037697023301483702343088368001015213900068265949409735443790042363538684666255781210673971151926367138334882946609100155675974101675479963787389275341394078909680231889238886832134138522114827938974439123628013321406357637111406036099792255888604760109993420117574922269740991787023952560312806765579533487795628654269895417930234670409954378815882556094256364215774659750342875069525856998300046410890647704839966876867526882794894499763811069966887804460009118472296192055623300678862926525479736637511227543576142129224460123881403360253424166122935552221248136221834764347614096292546801021302462914115070715435749936909720800039287696929607654423922157756401842881347423305072744227529410713792087409095397105925520283041874771761087717060862141726930972685992548075951091254994943931069801490862695666534069623006711178153048825769138858333845810401978699203045608977853900555506986471327498031685124537296445935933716734028948884622000337420498172777484847933526325661177657985675716436302835210322201085537619849820206707836529796546074830936772395611081175165266293081730396306742768890141840514596730897269037049407672754110915701119853400595361577174586110853554309367785038969933669421890711813258702245212045088809566779140300867437261223015586332878938220664337147946344047745172044286793911453902593800168919616026480576192460165489559553875610516902051601230966755689002804811214026991821451254676236849199432016627662731098164279770594622537901035933625954062130919631479073125007654298405600031562224472177206264667789648419455205427386932790688996684510282198791676494137563054798884615197274739990838536203206573531555441028172368168736482800426506223783343177486064129807816567463284323334753584336288014669915336212579778140090908116390436741328149106476849426865238238818036309934866518222917177667639910210549547501590215628526629364077196077785872782748153644755358514788153347789772124358037111544491691015832139582339277312170875653173713653337796050245674419258688757983808922877037712783260409939941344683255547888508848678046609944304525381014317637302718657284470137521208816122101663072283896806856355875816172245152748933688702835781448911359124384023885328994768773720621733292094631097120228222528178164146857868040447349971002450240633102417485771278943086414389394007255014088753380625219886680930099405801860699067560915365492379675114387754461356991692772442284476139388081035087944142627762118186217095254453422795336470797814204547989166496094628562290987028804933207011190530599155877476045784580165389184523147329890662237385749908401598119276379350122791980808131402811068473487955278526224839293759999879061811135573464846997898793632824455335983216738506211417123864490256138717590734815435117583805128669547411308736948426319526422190120834209418449115279127153732684895510829237960086231337092308855990805536058553705162108430070155086761217134561700729410886127369840963388478665858636952625914118608753181327365347766752129029502483419768740533634614612144721265054999680939788880241557817632075042438913650115280054409648918104466379293371740490137252443142273617062385416661862562187900000717957338298667349934007459410780057533021881378427484609476116994798507383260250147339153143279770400131872292012771302617724708578153151225289454196974079770672701425920364791673469938961923015036396761120718372827356542773357111442774379837317111529887187994157707953255158815268115969403743393493471899515861707440722537313024631574000279332768848752207634268058874019822779895850030075459444265222078435173216773316602089286319440793984556692320343927097549086158990147287258383890597396360605942570172268908787641686969907533918253388815764614464650149776125523712560502725634485643910054994672398477146954010921352627887806198022105938544139400388554657713921406124430878135534847887980605777910467619222463356762630223591433195629769276485263068042051116093030045694506729193195648982778101025899244879441219036700704798652637754031272758139731010256388079921457699722868565989025437441300195056777677777376184412985584271695325177301458574169594094598786929090500347776846698630434096839774529549041206384482776692048026747545584013378051721485218952515816316517546696477785110545088214826743557036709489897026199376595338421332488143429824471833362775087349626653320563482059555498787458652526399136517115043425293863724036658454495725616382194847588031822782053766439487193422276229365396769554082429607425504876986071205323984232417369228774718445040771296159429803000272998377412351022040289715900095311991327341162386875455068682303534856427490791213861144052068906493861268536079695607975057977518439691127896816392075099020235749953327391568863371730845348020309262357373973325667791981702468382304678734930989931325450879241615564918822297059410556343615703752969288386899421192596285690392772112277526832247981183499646025727563885269382052876698182238451543101605893761126256316260671515617025775619374449641441910900357880730207967104354644811329663097729094139816728953701533545378983508952641361285449250490428976090956268278201777347659063391528442357153418687845109147460109884541371000345982758244819064357148864772016534512408759408430752607843721328616751106449285266090691851556095043419911252023922266125120571946480093791874708328808774993714553713839105095259739391336794570007357058927668319814439782817622777657277512963719040614000623610935270320635491594047042963876997706308775103240505346643607423166019024447608595367046978758341892787628390444004426668125353287444518854533451049083773327730463507746863815359951320161863840238805065173162710384061920197147410297832823941497827298815551114950496797931143334515111831076371452267954921488667340375273176787550777073764514479586689223137094613783010944644387721984635298060461156974190598417062632817086508609375122995954311133250329293074086076483717085313634487184768761396068433783312298079895102716788240915797417108896227158295958166515020042569683041656292808690791959126898816429317548808457546748884427059899908382248160869537253314630074403501160132562425851666373050834920464548792600214934686551255872568419902429586505936196558628726481793406823006210027448312932940376560713103622382034697846048704465468186771685404185643152745329972543355627585135712018956280641056524740092165239581585627256721786128635970653842522452519161969401164898028939695929210167261172415875336890012613494258322478287541083134854331042709888066588508818717408865765779821795680798696780161216667830603343576884752564533476276996877905460064598599138445372134346695802955683967699569042770600231879701815361133772448889356743375509899759559784458654148939339987257690610411245387241997988373637052148367934325565961078767467895127862091605077668872932425270602718985881321851912955586568742326288616896391880580829607458321812885376188981653512309945135500221480417571411674799223968834019850553743477445263993390838913448821555194466080740169853753453057443554564154270958716841229372862643023907572479112216136900738709205268535188311598028746898129777410695164700340447776652958663702165927737521029135581556364669846894060942472212474341345679669314061503175965561011545304284562435525456940783702513474451039265612553317251528734362293077745339361945291790541133260080901694649654478029977819777273345597865108417866995570182938839705223179683009854940808268473112067493296256749416690919408609307827170679633940513731271225263123265386037817711919553728355671131745367663836047491324087907568444259795380916365383344586990181751943238586494571223432609358729950466398423205954685154884519711620554047813842885932109629117635615829943091585590793335408045289740134870581765199056055896610392414766013863369390608418461446207857312142132267026831068808171925057027303376594832273933317640027533258839561658628360702027498102599122088129086099273600150348264965450967724241971335284242881863027970097199444848382529810052238713160646326756971161791935470059290232342355665218381838953251985121784627039258010492257914912515787711302645175787717622685337627261780320168120794752132229827910202377369970425266059371307676613244772720592858139700682442674570265796214439365179177266918643135263587239681543562750860329243119571286598797802378229538441288288557922565194177535668721969530352110177999835216023406000620344389924142951182006796058229018173178592423121836587056382037370413792421023186069737837323124868280841653293145616842809863089155538727309788981839777202510920669491474767195841829174939481427256942773734454920412115649439084695057616847177935676828612850135848576923886581974094341294671106184877796502841381605250194658821264776416980139740707840650631321245379042776044920359824559667694571732213137723508783349092593728755462511688761453727699133414269194531034031452133967812994053486010081666822852281594211621118871635662196421046444979112433693254913149619246045348369769919519844490376505079043964436293886546650109389203523809936946137759156301649484083810539076258754250552938062825408501675860281395933331983322437524957016922319105025941206909510707067925316536228151159801372154367453970923510036398033890556572690408528594620402754137321510775358756749196335906147034619486839336211247825047890352897390729194065769366617247771685646464057864785587418720842101909507683009965815979202368376226898147167886453815756747594199200424306382387162968485473494997905111931958537038225495163735755631842864689859666839399345673484574343530324550052077125088929324143735546853231487036280029189873902953498697529117610915471727640007561214072317481637819177401322279433033470949305492780447233733943677344629616984156521621419557981304384205687858664129297870406695202503076328056035142918357507456767080796059143009731003368592006495972430759307858454327228664856760437521489047364330632376113789827611382639566773838519427717045416757722985718630154856134403781858259764153274217977600879824117522267696097524380187959379825046618516088849357455110036393618915521899250358715266752069290480102977646968636773420714217530313586750283619013693645639819883897044850365398356203330920392133693462072293938060959007594097645571490099905262850196417972686931916178073183667089896281232817456459449640792759262016588500005839849209832973387956469150724922029792638177676413859932391079854036171916924165835490503633974967767831888091141100558632957802675680091448161810873596900323206876354685755661292927895493746293249130245435634139995644713068518168439692162604134091888513872755552292928493754212746628932352947104836709359766484641198622558791274969898683754700738980252027973058356873013600322127259112387165764075330852089144374232422051323194661591869460680415232419762690570420378998318634363932504839040281581550314693584324661029543433359108708301073100338887010031371831114389877891562610505668291272496247298014490510054289234406596354542939117348517660972271418922846116069841214471542594696774524487554153494303781978492758027676495105083435830028427042141872594464169271279552700102633819540854195027837417041474780240589007212295387426085717979510076304927277834324283491263138754665514906220592761491636034095174234342520175295347732464117943854808789015363446400398166341340533388393685581182305529498180421432320710866783857656864016568404125790800401676961803125442707229971817747010455803710610848567733235139574248873533363918112848883266738531579303280353266493986640346838228358197758713444583604806699811250895054663016959945224826993221892248667468157711142257224412319328009834086893676611697276178875443446934175163414676879043896810047864107310656559165357954779111258745242675415552537542446417553810692015574848407598167267324941178461724396125307267134766675869943999643288873068583777155232176932994078706331791768228548152239159149594323722666308680117331201158451403405538147640902649548048335433320830312276332689949977644156733707116313527722750160452063913483622027050295983201560505909348432546353980898399694037267760090055208246300396709808558069491496799671180842413904403996473303073167479115799091909843998412102388643836583140549149987659225675447443540163856024452564493872212980829528362163576236080502699334077186854817664011402906875061621445126219617182951038490730536527722084608940191430501346094833394347915943474542389383928138568133346313425426761827088170251190541890424078947663381597002894475747506833285938296816372140490513503762258224497783241029469666557133148987343715114662887850976065888346789439937852299031195450556048926753666767631541054352641259844075467470976687420047434552888028765302981516598419612489262889799821219614371264257140648467699889647282225209290099117396753859060461237441301581353407137241116859495723330953365695665616851732384092038302138800237759073630410508298040802041800222162475544267271255430457613809795643208967808196547191144011060581061684115021838125020225820186907008315048207997595434361680688627828124860438491117460657276713338757746373809100830987922642270680835228461652856836853357140530738597033519085602227827174520053429037342237309882238769979042886645421985392480404692844414540732186726468815311769335291867327093212305129279873070868799937063087887502763569936672407526382958118765380904466790598719388983881760845194339113876371849503925758751720780744043184823076309230791044134288001106308454746119572093188094001442047853902067324606085059131116356009199012956319275287807686184187447798262890512676230285285738547282949957464377008738546472487511774078023268468550293764367477704684456549173971726465790518827823183357750900745816745727648804140662749728610228092506936263131428494569969828073138556918318629663315790810163995360310043546659406429880350239282406888788462339448722582303791725930598924100251654229111052123181449173649201382575049524417461156729366333809650164755159996819277448037194755609509631936096651490372435932222280103040308376422782239200568339782874478448250740697031201783220263221893778776400603220915806483523879555353020673662764161797448822506249219454663292958818528195246157966213973972293663184958523675587372243308963337772814691545272933551178782390074980065688383483918996107995971862050855438657504825642612308721315322015887295701120814860205160799235712581440051887855003416632144447702652195290939387698320429064552485624598813581861197416960680777030976053506826316782040711066490648145253591796625805225573201965888498212549194210014572889120749315223451646978344913368988082625721721081629255433059852462352291546280099471541104161326443076072604925975805387874786034693942908591789287161858537722732528644130352184897402330196494196955474634034750402190146303219606112647162916208812404668425784102337011497959914146114329423594993610584445970263837917100657141659807097202759572671298429692349790329793033641100519499991330836122701931141446299949358689208789983344707285073123029385735254974418832147929240792056765609802260552941121092359978903396599772167707126446911129217861900930507886734434296443964038411713603144467592915346187707312040605386800853243102742893627010846597200341032459334753485081517072579750781690581402868710023068462858601981288535581027014319847996433568450156368338822492533681226048557918160487206357713665214390110370501600910756829011326643210478336957193047424220820609607706524598368812524847826953428067492061285508037472499753332982897196511546688826105124103013538689862329065361749765089877126092673463131768421457712488770623955466194899733314726157853420370160630195518225231607264410212075755680761181566071840496535127439099694388977934281345977711740344372916609686001373062650416516139442474299738269812953709163047597242996004324471409742309429966370050216344083090463619935441453600811406361832221047106893838949661217299856159098522270952864448234717749880821063248116178072363074287126753725658173486478515389416204885262995639473893027195616667913331953578992755148711718790701762015953759052800996069589660441611574586505584921075490471644075006110658563523421443564053599072746980360304018104051664026734443550298603256668052217472264528530918787239389022816396122855447427770688493125780232072988253557967316683487671857987962016475897182698712298782955386273053778411824413509462503270792886401285660664706119325048703873919673337725194776848301883628863962783894272117475870780965231271888419875451042389293216413732126078983901263268753400164620630455009163884307785137604799243194054068729450933947236994978613316395863530875841731735173974173005397159337956773225556756875573429521991367760446331969508161733760613812920463440574889674222429494883223503704423989838492446128773882383160116888567443639887385247035997005875294000798872034457949397098114954580247050414658594747165974177400342263350837141813865472162226628859156878031827158114427678313949152262307409025453599111506501595504350298073393006329870957709790108071643869864210393633823079557542103413104688379659422092133153244526231122419130949491477009521202371995909054678899257134584365719458808520126444045081982102619726208263996148613558631594594822995943593350423353817758928922151236774583379607253409967717310588429407040513980331629822815127384365064999848820575681081914096247555996712142546928999880725681917699967355892742286708894053744845519961033097512929812292862642360402205926805243292899990321400069339069371208502106048172215496324107391132242218678419364483795847206035272074257437944008425753426588880698413601076108309579419208097725272137560845610164376910220476741086650570324200740927567378591624217900798261181028978992505869705997535164372944740691640498030498148772903589431974958266021430153022638341283654726483044628655719969382166714291466850235114041023239397108551694033884053722279183351992483277781440805600966889484554503732936528850166687220448171209039914673630427543431817559240412358963610737392875175540784739929046836499972315838370593010878949943073276271035774417708163247799352644130082058314267274482082469043682484507537361344196568469596337615473098064222269580538960497064146499376057672987721570506424570336489792671802112973067473772115631610306852502645943842346492357965057779100933853027282849193960131516410330777483084148822580403838978126380854815087584196154228704637397723537470246356457638809831139090890059741339834968310343668771320589808274720822008440692226352114989689009494422731369835845579649556349315420342198245252205154445495621017558034415966423532630146361373608653254380244705148176911224483740894587062238487980684558201597684115049543460901470384628535101557500198879709837778654015075801375245237397939408481052490067626098418177001549131278759196771770290032619198565203964143387346930799421448203301781521924589696786605362029270982631449418706970447078850884291036488770376143303455201780487590865224788954084231658326332581268256525729907688962245710019266792811631866179541220903400930524735699934632676069576582090189302423399086374251093596547742204789742188417438940941976753135469913531936822541100778668138218904847936211439383865429410121615700629759644725566526478933571612967357863563922073278574815794148569075388256452838345071192168729097401487168233131622076638677190149458448727940445401603972898916683593531910866424305569036308305260364249643516907795792449989999857734619810299298039309875632547630106124531569926493236448145560381467260738051905869180294864012432792097230688966709009979168615857621390027109650509115454293303036033484401006566761974282762170785786647306919447234700905603647173840541515181191177305392979873066662593006915232345041733006126787315561673531197482006393107460690305609403090084438325212757542084508236563207170306375235067663015731492941639265552756232572965826966017103151519466927211086373288155225289111831437041865434343024971676166040283089026384213096657971519784994603978493432453597271155283002715773720634522336907951794551182984561155932388676804117002509101460327064045851625542675166495250101863677091759530933675243034780106829535368248707805655560396856961371803186991232723261924075044360710451705783200156970231507788623145254423373238121977883811259304434260855173717237650659927668960571172999630383503829796868807637172871224662757511201718441592877088134313038662164116938048263237516068831479782313033777066151241207246138863822496992916472089481721143746232118076747584530179727760034831735355874337811687626902427599817563022345972739569663702425623486007634874219741254412383475099234489374081650686245030336152456051306525755107553207351550072433501203011104208445371164837107070050426067610003673730345699339507568639914596658932328211674279842297792434314592560497656727294162374940921661960637271380154054197697993098007258138314660249352312597011783012629370410881027030977713081996283478158779513364484698100054390988192413937731970741260481267593379669149375917746425601443913753712376669827225897722565350757774637797114209522561331131418931302270196851753081943825938069010170274910197594728104243577639802247135995658689880384213557993044846316221116360542795642326699452705681537204913460013686223508563356603363117464880702041057162970839539993723212042163543810631973523218856980712695053727030441219374893068218268949157730674202678796503027576725214281458217181309444155521373813518690058380471752508603939082037105116803147450315897940219143974468023745920758421045421469441589009960744385166635353384409261251575344821734876281248336879007784598249014664348832903549614541216013513321394378649256229940681363785059587748079717357237843884706378015704059232482646662536725158323603528537755543775241212633387673296310230122078195365151456893939343953829248289200712634116339306167867057480761508242647934591205944477975513113312057217530347522192166266947100239942233176330332312095846266317446210112498455050255634284517764689072616207299138683618413131913670152003123287151670032104027857289020804647070000729054468861895288984111143842277261490393087754439189935716328616642980349980829292379036975413323297938718537163583002796992511740778704646856063474880913016686988639856775586876286326011414900669102455597379486945414745625063899497029262956430206359204176740485824476602972562906163521713060733416163998207123255794066339052626580969294927909764123640228308901195109407852265337883930842560294051032489279891918109246939305971507402725935553027143381602833994962374812010626611594971332744362192352363401185613621338202077651866032550629430720044553998000570606921161204183465588997849094306309132085892037720489619367866727368483901649980165071987725806187290999025049023450771891307217645325573916750718892654609815256181047656692345191788873210114757456606369930962542499764914697743715987574423072399944007669576975737189480713261048601950013864445560882470471181502118148074735359845194157968554951218849022841497904040331053789396339703584694412129930343539728101476560598692480390820974881912176788012890707249245644609739546982542228929560413579986498981764225525579456350828327006485341583029147169739622389821909629427603499023218215333499433676842559714693664567867498383310319951858867414005837661256653984437081242480598210999582329705047773688608366187590991280064687990631022958809025088377798621442052125109456540685273772907989085089387109780016233688564666177365272917852880774037341042556789836356144112836431013965583870103775551454632383138907263923913712984854489856326413160304087879362945470238736617845963617071921143043177990547855648208926450302407033670723724720865015415128827771304739989278881791910615398222019062261158866730214077784034260086530081062086962573905462018648033159962146435389078324209117081157265958282460003280929414022013533127613513926909314785226737232042953140564984863535321334455298549725449938251607469674991093552180867713123790008624152658157122157195967521252667295348361448930804525940279031976899646810087043044596099275701844694114505796276671552943973405430244673234981961925384932872596343792825311808998194339541689532512440844790106241306858139730201899387541720792986741113100445035076531709222617934897996947695932243676622024406261557211153544273842597676915528046250325839660456687664397165265484483102706199927182793012813619991567965575666271434592021057218233559255575483272691006481925305432403689305263315520404861281449135219715959249864445097145074602001546452010508708671289670720740754034292033545834218121934489104862257168677402425492394260537472677309950197510973966813679464438155044965842902390480286840471763255604140493228338592033683037854053337707209030946142970408339068526034057735534829139359347377241620919772999493064489835250186427765565593615335094080158260761061386007776704115137025400051207018071751001274980009413616102961402734111280179872681393120845553411315887365130268771620475655422863772270874194647316030237534834215570395221913190077385198479229386171415035818719520698441806898485404941179842212178567939952398855922590156113020211223960793886197804153602960993302863376127019470630748712124819839420028770793827294153957123607049608639848502312802288713376726647387347451784403614307497187382470434031794573924738673230581820096439733051848936023763237572638048158054201052011122728306788792715248547185223445840715717825831038477506831763103475755533629962417852940919353385046298674452472635007192122865350066345868959811492336366505153936674045289423945846919466609083382905934780332067064515310045154282309039352824139077366886051765405747475179005576899876791949215559891973231189650470244002254752114245085781122699084787210882976165997939948674879186148968829953030484789442594197975526676051108687212087015927318728552381939098206630908961258097332491386848060501592230736803007861351114826517896574921525540364683788445149028211898091310996666448077573447671697952227247257692663238463107837884034319477887764947471049522300052412235321359384921131177277552912595688121749224580968990446007836421364679357843846674689286939899263624864817271494754160996729237004753958782681635389667529500662347403555262001656429080446905914615327604270077441084625896780734062299702601446479720831900318596477166556432960009090197975208449827731397998475570030668373627309735689188293694612406473448608046851205515767442679649368256148227428352284842499905603981500092244943321096690859592414554284947886040234586602113581458568824533642702378418541556778394208563009213867418707275372175188547027391816907380179862445003323502905456269367056924779598194651587776515930323501488848751787957033817032166111656766670251952446617961468661722124932470692058643094087716149524463112399891439794186788734365731604176834611288380193878540011255247240212922898108560066016530225119674157280271815702917579516692405137232168909664296399839955574068152171572267604261064686602552467262396999723238425678699316820353554821582770800243898168908583975352616992697190566918084813845916145174435792926061409573218837938634369016071740048264081904367531487780379853570615533800536757247306684773536127538143671589369203573096544273767755766140334188760665432001581554239344643922666977130618098160003114810122581166102376869416818771479382127717393153174996556032457163261515524896059953749116191561402280004947442353138701561395233490953577394985625346852560696133249374233681890920874259232960398997867191154463214339938118791202045649166336044093369186483776650609938443694491323174400608481147785778244212953286135688778135799084905078950211369462968069216694580737091381777661501207851514555291692066018946417487041579613290175148169015647635105018084264015269921214259883694878279386969035524882978682541440089224845027395029021792305843681787428411915259882013823203952706631199940963292344762046293448911595439849723099694166333831408905448365218981421953349986340490246340346656316086331741060912670903751409874800226580569083683260684231536593469406088955893198388254472441456631486290432073462326547247774520079221920028513965468306876149798274643850503423084940452895112787956906389909910830180393866433943593198968873981505939628920961190528452802459838269377705776893952839137696049931579714074013188172551641822198939877634744138987324972437162188847434289820904510583882619313374935712876651791482084452687926901426608484592554244334155055200872019486209913892577339597422269259416800178501257496438662181188985743773076431857207677155662127442197419001384343416294593549115992288044885750941279800007822697233799015076594840785862470710749590919924411636981517963117203490607372030894325608053763235984084215328836396563332784687833310107757072044922925184450263964917109576084147756395655377079924699259671442463736710332761054633582481216509893993353079278382739091809395372015960132652726183386901842184199000773641393009884990277389488875489245381129420388689930634960007968483026085404656629161743651921840795279651293692039710903352686916571372042868713476120732895558683956516256368280285956696099780951504428186006087121505962056834284844086664648355196596481917469329792076698310236603999689186875506505237494997716744721348612609285900440682457135034654306415934634391007513907183255238935650046138693660927033601873243663245512352439300175155757237316455395048211695826523927997035415607415029642237918234127073409272131002717094055730597203648071606379832194256880387412842310336186171998053040275330620692698896172246679297452670834202126338448413630304746531391472763974341318987511710202173066936082027626212672000627903992296010284553464297784187321612242503277288864990923273367260317177150090594619547639602217406105835193275438730407377716265151445498953202916388544321490541182670274795032505544565720680817611530907398465688012861053172405460102330852197473672455987196606505376886989335596642261970211024100110020022872453260805616750471269114086107020159997152219721791903277973819808912714000242635276470563424447126508400699391936968487539941723514959796415501044260595418835382112675669518378551510597572218656970766003774745176431138922450089730976401692994209611114502800354852086424082293884059413665998083350389553993989110825249901871451386075325758022347332396587262709446684056644087185995522558253295784821276005016567937344080578472152826199512196782379336661376509849128664500897668665457680697107810498929782349747015023081458790121694678947245576578472565378469033315336727795557962680160795915162820907094079785242703971340550187348662922250289535482501015771625232004038247566956926686500809296084933760088986849413853502692936992869351821332652689865921845097316176747723886451274189884300796794129315276294912969088314235476256424755979545804174544190630202029955181016503490426841773703533043830649703046886059567858448902700560890064591060991085205199634426388291661579658804022121795344137449382055818676185843952741673121436013263034234990717798389714067677011356311367241740329824073280197913428436122901761912875845790710281320401404110592137183549246859611051181497585939234899539934046192817030149100377906523917967641258476601484048348231972669204779552651983485243630753501142015887780011647555725598681957301297618343780028290908365034242805415484603479503022237770082199212085864649501694024517941376497306540202133530617417251159357747022661540572836807110926409158796801432480238223298383554694883410785801572424113129320722193895516254962332052853086333505180576869518928787840822428568516683266485960441151538072471063987566879566735285208259473081426330316771433520579909252775554496545982199526102405975684894967040049724793356665953375090302868716550911843978139820070203958581218402245339306533115855062343622157612964756358663257273134873388088908157076156296141872620044951634181853490572072269600215654543002822264589578442559640475661438810513528379624246509426552587741957762529916710047713551923082850616012957549990631653576873840732527497506705578263618925914889163654902301131575330647644165829792679468112407106349964309654712997396293080083918012824226500468326499762642228133914606705823989504032777124157198278141215789066029612032027637549713803660226261967225829754847639633571394308521690051553375529108190969203612882748765468731960287135281627436070077744674266407241052665087140889000256993927484153897790631689229829567030416285247216941878503475896108780001239936462877554508665253764040082404783609851972218410162714628765029684321796799785131795280714615650078802123632971017865633560968867251931729847859718494626486121150434822054397377346825157773008376362407239311286525970993140286752142849456342041401327049941472163446137335899100509849205284506586731509834709336178413848821012015793854039419961714199517217860228618137145394626029316817857966653160887958893521741167409254935228029938891516780635228490373092075382372857049456658074339842449324248154334266643564007004524720313989290645511834015007361486850130453326883687002697126208891371385814331963998381313419011932173941807383753090082143099824339469917080551520415966301671796631833851282210198210775062045523425271284665034378025794598913589169735006840223455429340367972046565157227811996297144294036034208592085898828696281036244350587354207480679052324950735395814225628286460332677635585071394732352432993749985985360346408203854749981885512698442141360650333962838368220130678330086277035590161233767384270966293797390474258920999672657196166268918888333393399785326994870604640394858137550804962044342470561978165022973645496262857053318989021694921348265501724043992403209934399518760820520901969829969231005254423675493054620578852377605809482053982136625900874097296491271039050672098585860208361677852307768011820066376936293892046790570872588855331769929107665052167157773383218153388525487983918108511955691150248484605320155135837690366719068083765992536993483736180867765473720621923373854175665628826017788264213392820865279260086189949234400212831868224762121313321083356769750616599653259176384601810337533608393976360072226594578665779294240960955264626246768838251033068139429538447939100119587830043267085816976093647478676146866108174973158609664674505879186260880023448092866582444029730059356057150865045634328976800577098692863023472368101104633610638434198405170805691208506741933886935326847096779170696260685028419652335633956675025009427754986170128467520618062176632576818088747537403423169783708822429394179079001677358985241599588258484193732178596528803984422410753589987895372958642600040382662246984543223131771210861708776064258710378063448555742871845569451471696941967041514867560724106594393317278246440153233811049044412032254080923573198787400489127659450380121272795361633825725788384522241463286299143756101230470300649969272990246170975490408396425255675105304942716396386006432179191165585481624290323459521228436983477165042674356447119131689293126787972950025161123006200004745589105039350210578066064151322755006246333091116046675494050580138484171479866141454332182684244973233306911649690441807228073385092710889905378816169344376523326137378818973008164372034146316830486985189217468784497093597547283448184399981877171688220279481058726442561199523455265916803135477270998231491397254371158373192457360080838871864282750295687265259582052860489451563067564896219566870164269005411246931638827887072981229996790135138043005127924724471620457632940437671432585686422224351799942891118477727158115367539982106725103646810522373451612986625390880244841878670044840253264826121329791076118627099149037621733329190316925372540290679049973222963702131584220557617641549589738899329661531912389854421504001905571253081052155709399083190109601358574464140630808447840351625396688117543817033863215386656334266416731075295945496451516820411969290799040069729127967465776403446806638302382298364452464152013062101642404765451885966617185779075298261439342529541648350150792857611184748659716475844971367457706509879694203254283921622530146539050747378974935095526529301509077118051051467551459906015002144492740501201066738377895816354573712832526258244878360194416929379861219651728811345358344861930388669163900964163780528770710170582065264662035895115967380443548942028656491075474986984698487608196276050323162106492823440998881841009237425638772207118947547160461312394195118397855776026869052461976254083643681993788131429828464461477459773936931283253831101785185429283736873002745272098519604890260886828217942242647015853296790542084537279043712715603095642346832002251015238998251440038238014637900373837516704895016231980235701927251151707436680045229568870150920862090823681637807067955527734731786838040371683572663611286139957268560671616940490061217807414532873786156919261798038171622820920009098667183866333747332814279007379222255630240282601489644697070047720377254758517220752475180565478187861079317571711729421497199667142419857122971618273811725732850751251582051548139110461279616606916523129308539561003907270471320183914908433580202570256960247707841797198101981082884556518118440970748727837954984166243647041845006925003076913812155580807324582444821887525292779315494865692049277485377068043529190898481246290299202287255255557490842119089836096035087157160130941103952191313887585542050881887295384591924624499704516770279448611622124680425891522782638888370956579279011446656374663987833251853853288957428733174661173734887676151268630958349769052234331178094577437340603782748234313962928912007450688970313310065862787786297407124454329903205042277842151227821563309952437492406094136654466466224052287741532007521286938363656380901852789273980637544232314510670921450231418656505336633497764276224599165817375800399812552207911070261373310405973598661265796025379174341801711015978110353734073056598920030021046720926751400656483526468851425691219729102344966406413582422233098147844173963228090420809538096502562437511204863508461321309276923124401865993062472518294247263793259451209792824226831778826376110174390679692602557691444020347565917088472750223546813248882853212875922379250043793823244607224808345640581469327599030220473493458250102367157526567972841250920194651790181446641486601434552042858610932340802602023890008655795133062050711008762716338757770173870652569606260820692321310955562491784099508133830495402410585190055249270905567147691451811543127444255685451139107726438769042529162661152484555493189235239660503421755056881862076837437296056375087197886711214197662329824363642965010179378053108689026966773343037555938881159082385999813301671457497047178507607506619112757695802082981461765548569708103618735044024103699443800623099147129264672548396042713133813755309433797326050478561387818276265524127195177484791513576539378093502620150391817465169458436054772710333679906107936992205341653942646161645955780456627180832263377190072764125370591035282657223146318032189847108491304173194658856786185092414602109198358095638116907487856775042836561714251006488878067839191219765847051826120099818783795015799899411890937530104031295522752972398209124317104502944582366621467702799244712845929378050828658909569554462196193716958945398705233239858960964269666683142795185252626452364496440738293959211460758262564372499519182708899896133460049325562888202768423652366664236078485939098673425343811114433804689615053253580593778251410938091095621476954779304375281326000474745802138945573575308862449494816513597619887644440661408403389207023061906021279872831765567439430062119491168120431779579769813815212972946061072694981310656295963220125953256015430159538482563845376657723407261932456738617397882647678971141458785315766417086946740669113309922298511141631031928421414361659577769761430386552257047133171940342427744997705015833114761094095363708115335294391097114112902485754739375803309255601127119700836646839923173921228195127243582089074016550616153785128637362544940680176289620476718595355258825013680766204332754653450151211703215073969634244702650258515016091104941086727412569360097819884413813080183151443030061094735168601084815901713491133708794265867575919370831461726607086592443968948652068891026624450398977412839665892427765977458314479505196455416344876702650501625476483968587927468275653429539828326849339902347392873723682264543597893400660724059715608188131563293868688388018086177739465354846924189726307046142919652303257518387815163344584041740992928048090513237113793012488608710851512327973547314892765516829102423304774763256424976457539318581827597504152454106366677393540998759290081000775713474629897867323769166554754406732489073409567206509846733106582441926934955913479392439716409094005648174537895687516106906434628187149822349722984651160848322495837712804063098456126210855030053545273711521881002219438585308120785406748905712877053791610143620122892068446664832063016687838513825155357752740396992097003123099964761265859046166941113318514839147680019523138983048477502065208851640342251743873271255987077327934575620538687337049944325847500722744136588666491605959305210457516229590791262186364315697280628994696714705007426925222883587385195299110548070085415095322491725173016198027520234516487203577857024309105497955122458087862440788706889713918308733948642020386141341777748134671471853178261965533507233778586097284352928523552215805492921153606839527948558447803962030895293854325189636367468584431730929411043828096794953738672039461539012506597368539939643327291896962020715050597701162315312743247606746818372917869774499435953816676871419025570292302626466324776371133984445996993354357083355391143103422956816459114541099207718264641337448027379164766741313783091886613846029500496084132153577369797738537066064710529101539457078959519786746430486362817329962459919108223899739823440763146841215418604342656275860762404736446307323675465944463804602382590011591593298574397700758558972147844634417049604205463810440774703208191772190785298114439548009276669336602978243967433564433081756483522731061206426959917896444089059562151211628752320703599535984744071267377211042946643788820447184360766250051608536893562499604196735572475378994323760158476774783495208203756725413531115500307122716597647646538825290852088462294706073683260075741169120373538101133209594353346220570659256025146347231822262718251093814203003451020379816745305153384197463059024035162716976570824456764228859484364328356185024072464814377096927199426620592678308118036942578990566705739894031097360740805301761581269797335507956043738143713062071123456549442535502907175919108201719911768683582007912533720098371975316153693420122203202552900038998747384899150661524040426599817853618694191181131670659322398872997431537421073541496016829026298332503742447149134266256054673429253148448873676204413545639314488501694886167025263695333004642414188704852200367858426441486905245597083986692246456030883122832754253081486187297463427110265331365016166232940979844988426916966625510643215295864531640079504392762712930095634605412336222349555702296197283600907427813295715169601147355007542034799956368784261682065685535676713056127915583576295119152344952544686226784094982459725802891221270629761311633961604730304818246758006010804993680019723470221392280280476558930748088232295962262543891220986945501398910823378666014249497659508758418157115665690898279281956132746144763958164837572473021209899800765341903824837560169516454804564387683934958148312825983387755393535456816245596077835824637775634943579055295773419442459440518118329212866393908219675354304632953799986031967386753508587371506661137476304264943741338730804132378366773583739453820912900488881597568852375713891126044269600665932641427247559884287256665064363737378083315197204239955798630954439760789929804103120500923399607901303726126583347902884206681425450368735295725184423232688096384014300952619430417286239704629355863297442778791155338160214420471852524877292959768695616553868359602380663555851958323834354702149381419102468315912805375414763673373713517935186727699754310959107460711820543481951667754860656100358857597406297067917010739572335143262779019038271768700106814043122450771598109953765200482673049546068997445664751150622383195419190296256550802004775872473947479636690571792838515173011707974809329835607303128551017623721929213818046205896197817093553832951028555492885426749918748052598217081491778396803206293587300970947396965451545283091784319487679502983296462071128117819638534816635823954457198452507896625082985824627836472645009730336531936699821464695933098901741675544321635655901955648553631099617148901079507221185138234464065623534797544101781488295212690767421486402540706714991515891472999275649471257889630413994649592838231586997001844005574003444334014781340211405326147331200587030344932482797555513049278903818720978298962009400651885086912329785081672176418347272194301419533370605143383063883973311559157325475636472327642825114862984932659191526816268011129922467058553299605841771797926770182807782753542240257806436044610086606682134513204936485278639299237779645339551528084307096810953590384543018963983864204387379908609311613815398782767953269280547091711879090590660562449356452986272770586081030190688795852525270557327088783494949676108361113904632919284940272066259038086290024567638673352598925867260622645597569667260114750226352421319270298894830378342531204626981266787282205235742915637365297636966483015503753074645211867277655201704418815967028533423437221463526190993702232744156101801059646865972502175088249760398124093238499797293248268689960352548396753018797458616576313632205641874356846540082694436591256888344402914193642522951663829833326619511958695584929097361307527973018140822661770576026428161878754453265828828465382599501928027064636138362231539808864180444511847411602504904333458908656858019408300229124582935245530877973025930816365685690102779204128476694417550856865248289542269313332934564848455387663402130850611619342390580896011648922936928838055937408724948429588641331453301321745023795729764291944709567113349895670816450682838126474920301516557112855661532670350965091659617894333419295888580160054394084944924210510387205303168892298214085855461569655184073325358082062630229192688669354460455004143072479459566975232253722096117314026984675221730915830044313398056575786037355029895195255346298596374184448064227512907912994463965393767388801315223472364917754562470749993542684184611466846025430902523030396192036375886267968383162430464094283421111237196755392426421705444435591158272483848787918759587432054520847436240208414621609120429645289335846054292614457865265882154396629319330709765334150623102255540623076541438679581712401330093292661966551648222240005811714066638362710979605907562139264341339622704651841257527849188937758777271774643506487899305799296620193389298258757484671677665635055911266984207860956406935649846888847745439391932560581801143579378676107692069758428074892975182357328909544329528857357169452354466270243610261930429091582587713224032555865256783021978870826541837101876901507605353748740519505910057510110347540931033136493838529182127907548310478549137102213923629378643799080914946440112672874090038181890169328856512000160051054023689914328152154625389676574433323048488009743977586161174403567140983637795038631336828815260145557214927066490811550290246720382271329796626566975318117874495339565139791111123730964681428947166239471498201883167856613806216539950975279312121322194034419076667721095985119365164121914809467877300539610787252941511689873757503960967697875966409060032961759333181337990468629510668653913198762270761764837514338067625907975853017960575857445327795518233991741800637723273807565329424383860885633595803307008861737372909926069501680019817103377296411213348071367812788028049745503561159842686291907739613551368255392366038659927832940075007110407311428771396870022840110891723718289383033968386479492671283520350029713333127357387141268902561133366805009578382599166011474957068013659118149149342824166044436587350819495514427924556710749848774879780437034620656275531331071150945210003143509543398032370449967544674125279413575244394427090118409815200815293339317921239748996911774869219636862378895687322234529414656205402982268686431678068086418160977347531669684273646619893828094539884875303494574483673182097884903209587420028273116312999455250043984809943491454657493379302367109252716934373589961711924575250030031062846271246400297151107869658048024120639841921934305775158582075822848401052971883444616279224097524219233302655393144349408371712569684767442911356311066914291351090781425674820525529257454230997926609553215749757091463517278096413645301784953069724903088013587869175699558949245279558572894596715359636486052916043263404715268453390328389147567764518513330664330598321270073083507070814254309735050856884583693084320804514657211088009018636223125152512716976360696474380008948919336106682372687875764560914661527575734542077594451468779616305590046404198758412855177665966512882577317272336254219496312059297499824063624857536271543766174333930933787634282704674068575615801340471540879745136155934688919502462656666343275081819521041842576904909828588181338703269125744604249835479320600294423402481930131189041528022356305905027436917137928068154925328273179565188110289370892215068434652773767592554643767624478617796919263005161087865015178552033919703485484457841073893090109369167888417615885908045303655657497201196340772980632993013884248103050232163678899374873297749419719339382613428442204052877450789072990951391357826201743443528271970813792363109577281100939124314926081016883769731656727718273126657369509145251354767559227826653416569224643043111266499027738922410388988168986551257764255035461016976590054123487242511342955933358412003133097249246238522146720108795681827600951537486677236755097565769606251967614988270326855466025011407122703955979508832400229190453410847870164001429597368311667333795976246270877003812825688541136530773796279556293480976985484817355736512064312089369001838474794922743687299998057952762499057646756661385714556217098161725308755592499722080850188215720540819459934928201342667908776056297259273328002045632890711446370738218242903600323894446828304822384341025569401950388426291121064673400052864176857569303222989222241080756072228924484312897335633795583338677533386016312245225345218041394905406837040543255654198257628273458613433216657568232116977587384456948134094192035217792877227482244895137825361159541907864758734252173715070630443998686818973041536765832128207228481826871548840315113472601967065584013792551531311837541289836108258457775035238032254039287883144061763835249822605946796693726381820750829354949448620063617519908784154872565675470634231463275968804851523947397263623700029549898962223445568676794033865371637098641620761035582808513654292048493245805710094934998991184159364594149044475129878789639786382711781490062394419958175791961518364707618015918946444860242586797817995665868977819981050042545047316770108082383418513197381268152735413847651076655028252417212647355112904540726477254944599471135631961200281018237683921798730158765950561380755643354352873997618622719337760229889158324463593087981637152465924605662169069437136690361137370030479410409462726710128285466778711542782956817278940343387984426825797934790840991251899140466366423812584738649515533636042883595754872662130434898046153612766544748755464967822939400097792000514919401619482854970388764840636363874375011770267562859044021001013892836845488537962696455721053169896911114180950796228450705318989538245503515682019601679331165581598452001803660391074365029342919368740897733178140937250326964329450453676640116708636270380895031069507181714823990170806800264888373028301403090049365679366701010629354450330028215975326283431611800463045422421422044904506052669749675628580173780878494583064359275928144067169729118193227977748886016101156462665132904098099527429128485056965450745998416278812153381645445116786824578209110732027671997628229549063508908341473460556404812285942255756470234335004879288202345331971369366562022148116472720091466479235831709585562894191192064253473575873764823699653247291847444726142779987707310378407302119030853693043379070192963169306360180874215567158121736067186276639632327390072383866680822152070742178998120930773885305796112263679338902292083701188096999527640838036982976362400579204775561131606959772058553587330491858964936312563390387751023019716204756997983410216541892757840848256309318440743479443655276537171123498243676555070555995147634301159561608142575948551054442977964878638204996479248593096173616430848420352409521998785837818664647665987529990282599425708807107142140190233423156118902775567125764780074054878148484596631277673828333510107672668587293360515900077682193168374347189885940183185898723500199772768702976374871576855343699887031542187160438811030677293418686899285221397447056122433324005817130338273477525416435764043004812585786096145468103833627428242511183501110446144266547065530846412267274926550650402044777679843015370916903754677578922601667800884130051368191852351009103880938064018027460143040155996732720881876636893580375980707913123495991346402638775616611028578674997072696058031428864949434600969455411253582610680633786404166455470934473647854403000716934290741267203543214159288991182742172796650218954435073267426621095658160781461160754611508058263220934224008796548556077935950852492004548269343640588083429185338925858870795156543000121626748376747547270180453137234180001615343124017784319704465324368339862438490990130849894976843677407410107391034566765385839802354000023955630989330916722506780927368065687666755600971113797834263797191285204550761707943379072642371710881388075070483593177001214355144871925944536156576143109392027620117424104247750198714637921867098372764085661253657750344724123758812294403204143377583027295705460184860200281563024292383570467573163596200328811945510256784077053315632924007829834037560434218934214533784804522998150943817919410152196335439160105958371908971375039410794708278131115276331670483006502276193425654455311530137709600421515447519746221878757486097628250804122196440835688479196756854838051921028309737201343976807267066651065866539902679279794206937210415823688722079881889904867823292242701876328447411341490583529130034159719904602451878506542450108810763258863693720423031258383863293785427621183043782311481308369464456305223926986385055911172233856444735403968136358746498290142027117083231209180031690047858494349474331686595500824428470456146004216908306444266874424237666168968005741523560732036684452522416314116978956464936175596639311808123228256400494777060277866081761850377230259205204578676051299639839055350850194816359555696216805084597147536319603405336196425864626378793653472943824380652567952224481967635034325940555743521806222669579525690230315782263552160450745965430571181919986508142786502942084114996087557683581607625460334580770074240503898049450228423032210669165949240721674496081507865020238261457169192772632017988391708457955908183753935733095357888633361826663761396169699388858166947355387744304759479707921274463258383887447673036087975131617445322478137015533248115591465958867723832519879697190599197123759677992442576614342257068151394751956101415100166423104472140212274974417667161582309364204317084538225561583276706591105182028397632901397795542351688643348504135303511754056571089324811390455055229728621541801874068014242029755063517914090272660592251005794964848183742502923724146470703108699508467194092031472025740099367864126657934338704690979242272437702459320630879039112601506217517892362445155921112629270741779237629344615363948356592408053377361259105578670135354978116117595509690292612404442040306818147921007908466681105869539454047199983592594010261330857852587857289893967126392778464767251177490051018632177484608497715041178554025796466712789463659008118604442497074658707306564487182020125772359633990864511464835473799498294031820148484420508743630828528725626245484919371234073678026560598658852764748362721321032457488122368285092062203361153333187715288828327925140626715165059776564702119571056231608651097030727906958675875659246656881834796793102830550241601744644598700229877356458084777407443352574330685947653046555472397618545607061101586879450784645470680767471410366224783446669656870474431241851792106362252036840668069432323459400234407145351850835393416881143558017251715033543630513605946292295351360454999546711884822682143526715623212041732961824789735259988370605255168905816625905016344168808378900727601255473349967211274513970881678840948792198243807553125435289317731145336027228046692742767877031247852414415461783469391029866373719890991770655518304269499478358470140386037217072477068890026986180981383674295529351015922319483588477816318139538619268132644026914322405915590541723613099130505112273144224854873499388334269152002595481871215441817876405121399662698628118686454611937265779085685375343990493448908892304913649217865652154175254579782929424161928810932118523253052161284847712573411418417252057838639147842772245078860480924760943625631912136229568270787783168196076629044580859504681799490454415265814107931960570202877617832306594891576093161477992244572759088131236202013003896908384253070322392078710748165382210712422455130521465629730249994375489955888019507113653365446243039390428729013020852728081931970067498572498519866618097886224833202473372155830782267828832466319274214966128637255088805174091606199976912269909467414712556375627854945772946535325579316151395007005347058777420483234991901646366870052808382383366584700860531873711157872220173047923572836018486168577726399551251378847533956933836064599821471227566851361100916619547696121246450796196169613540977856836165375386718857972700376554734657573706743650318825285972374211955956900620840605183956224831136921282952767165146034057026687166091323007187541244409052526606066442697757634643597476526081194079278030186820407938889652606433086161047315605620097536620095112072806941822570181328058935159233881355832104935091771611871491982233824252291594572990772974215372857464444283375404327974154853276168501286666969855496910229549293698126470605241782282380935232478319554432404845931343262877128032959267783354219649660002748904447599817608699515902031070563031229567894770302245367659853656038336249998601548862903223267925863393506492088820168753866276623673175464505435525694188033965086568894599179780021067566593190081643076891198964571119760919208357684894311780428914403957097563654071086300883323693095203112146992781817910125349540167047468341975880971623953093488214061829700041692493433163437169711700853209984509872851185955549145103747013966719902773807938422520264952230018489581765988910856560534280525391502493455882380689307460114104288226105394113656910051032858672924090433091759947801822246397221995371701738681216406212715826192645859767365257230767572710560628496587817205574681564073678034649254531384837942503236956364824877976362941676531296581142768793217438216788383088400154261382676771913405281070810582846950402291330881865709157872403058230067646022980758328364085040234030781583504994767449907045983692544591574971928643824466766276869167510246480545519734815296426207152562199580518443623031118678495546804779536542057270328054193979278933027563697701835992659283594461820399296802880576506614046405246596258409176834226465507922032245944656477616947487341939760817523575102160321240196923853948610253000884365080050620898384210615463992297902242346797327115301115580669491720736882002903109022161841292517256990329592278663186714255385758869434735120621058345432602837152458970627920859082650483952670907923094154077245856844178517043559602140382797092740501708530524885413708017258020515593156815946535006014783663022533008355574723712658527949938090850711257410674290743951052696448890917378759459895475374311544221680822631281527939422792550842642945248402474335738787358778390796675655356195659618165812452188205114738656972597524488304822016029464806904868766244165183511330053724091050121786969137297279395881611501587270487756200003438479655311657340385175916323014455866058382922133688595703536254309241403410742099439067242561761359469203161836685670938003257784282056318934652216700904546779386713923321720514206661479345943533798930014542131421291417321745924566118114123246087898587857379016453708086407194759457277593146862917310546093639914607817302250110210393760144165200310224319175974815542139206121136967734781900732856055095087443514388200283054425573412375097104320461075376678047691697817778036481655261581825854726578579786994421129273236073637878307096085126489698921427311657787863851958883198026180818014331763241058759590984146014330144490924524097124286054386703315922740785686844299115562375407569083829667607910337856391690699378829104951382334988499195015341992477132815305663629617538721350056636995523954782871140614438396683458195434949914721279150211983141658517172891222917557519055291105302786012585129190360080447335630778890615990610679299064866537598428960351920808967740658067527149369398103234835073164682250499291094500405876722988293368048958094028709725606446926826093327307185918363458335602444903386035587902711154733375177826996676624400864500777984664207356846773210756630215208780716614267839876988894056447352332005699932839116167419188697042922523751000769840734166346800877908904230910553112174492974056843371904813458596691930671711025357970274550021212693329917612698788060641409549359948771807976906439283420367955762978672768941095682522300513001506162290427646421275798490874917224241044264477789983470753807343256545661948681940225918452727509137324555557979846129732778304213024157740932267183767289927841999592514354212381014790451356313310665167452565123117792859984095646814906107862084327192857009512839661796596883864695943682029671196479002617577293013593793604236879239553506580042071477956741093422053606446623683111928577108585276089320239315407104823714046800714924892868811557475284344577791114216899159261424946210333914784540439849434876906011050799954443196929693992295796803776342987107389406082158985652199307673386082109826184836743407948469987407392164092190467500718500605392060747268828432366939579800112747984771717821251184350595982208859501072139630469949860003512996585215898712179101237616630132185707830065973657690115652112335021359407505415914200638226147385151900557547356179998856669476981144371522966325270050780540886350141364350164681460057285300625066900500549032255424541148537927997690358335912082989668591590020343147496575340485325514416805381535889473786904921295562951571238578932196221218111720998406201470206753632264438676341589824704161677097011000072819627294739143257606501523922713225401239744970192111562126568471220438366891905407219430070360013587874801377367283460649617424522872620432798932948108638540876910338991677543961983984832765051054100924588611200440499275101248954577954337675990800735116876938272257750883801778461006506383041530832862411929314816595152658041629423149720165633312476862002460267866787897700915624539102379563702725276803129618946424793449164122267754321905437536053092482367121481214874553638073471672996061549476575064507482739172044073937368253178210604911383470891251554168747198037247552542447345344792702861042252945210666170452893267380876107939827253585970874473253540930863907541216597141217279138593128527226054694422022518088952539046308425914125609449299010580391410804018015476062053643578371898470713888237875265944152865452026032848565605836834932049826230933422990938373333448936868333325453277225843107066912762633152720953859504681338618144077751496568987404147386030810626769230057516352735187939216071429177212142187397287680377625180649018612561875016360106597073930188002790459769224159095654049572901179841099105126713826029707802916457600961745524302436420066293348129647639037032883747286478972613402402358018140590284612265398958986880028753120879843858539852596662931050519194413266309023915584456813459540187614760269271953856577343071218899336917265182318565075180313634383973789522929260059820177037704511739713344919400936312921732453471509648131064981408622907631245166947159804346137980492398027019627590476893382312496823197875264822362742238656131678570221331304318564642697058907289820282676176381101665493639248855413433388886171349523338031218582338397429011171915482670910670252506404440084566077741104952801398697145658560499063967755273031982261303700875896574540894081008275642299566299098996774284244723265767441924129317082101196451665481172278529913888981558098159611307216741292075085832377923146656281740830915919811911139567033876923634359662211843064493397357193235978260666844227187899661385375732559293589984225974989291085417683624165121550068250232652334316593461985305326030175647141152091677477440936518524550516807955722402058810525900990294865323540470905077557778660318194730309589242960764205774065717038268632060183266680586042999888987942927466177137080539044303815595195610255302119843161816371754963622172287829321740979234806309676722398487156242006862091552964144976418455391859122693526818993808408937376771720444631864468841396254749782534026031811710398161049527324478662591562125241965996054000852134741756327131278878495874213741600894055838522703456280016341030751073965349840289804553195423279840136604598831151700007957746668745343156531342645149929074760538223790997363335010956830145074604401582185199300726675677381925297673900030459716598500353696911781363666120527895706458919311150696694484072471356305668682927725558007320461036490701535020912345172100187869642511388055212854061761056803965713270205951182320405424386162923108990329397828440429259101961499508957797658578761711503252172554058216872194016939112957081553808827539669172860744613760571892688030107952566560695117013394614128771337280228731457979068094644320922770844702876316094790116469705336647736824501551198291180879004560668788312906742736639125251164785397493917703865806512031679714858561697552272838303873547964386724673943849900508293378857713142689361709818546236448533012503609758939552844125208917863274904007950796028865806689251659935234619767581527127072833073567039303060815109271038900920079061724549102480791783270850427785610408779347036254948630838808822126596139261286002951690181229780861001084212159245805570439938639027495274705638570627330162736170317278951572388665427115347153861298509797678216168796084452743259616645350815936706046283660249834292566338656984888355547092340009978037364275171021205547038107520499939422113305770310230021920085597507685193342974265736154934416073393314104037562670159723730150461465961817594850963660075470751679008716775787640440440503322684286180950336879690034147130545171842456539591769238966225693938488984535947794664384449890723382848419817936124294086221084294434940801516219587966842450400564608721239521585281553258149434375499062037667673148889976125319124173026182709923289805772521156651345729543580306760831537730029323354983348560764122308131632420346640390998583323157022039982778644961527233038582488978796104396887280163124597282130516302964682739420644274536773835888041475126491367087986422266385402799064448895236636685046076750925966824387400499762674761430051465537495201086973299896436314321566438384124898359255478573678604777500604291129161301242384338787080171119184126689827804413831335062772800566903665027637330639595999954445237953400713197705313354303936016897332852180638652589920197618821063481084496012949845239897733987684523167049322913104436149730014452388114102854843710739407771740638454462347465455224441368495372009563940753755899206287683471140512598992809788444914885014745244323221102322159815064747988519672856232937647748637237841668384070908070597606583856936671550330963913589749570691571477552456131498444127879937369951796817609730832369184748755669135778076332373062964945824550138206075917602148410214199606443995366069949825192970090780746077315172824376438794094805068564903906914051933624202053116915086925529258281897192095702469802942172657706809926974868894823294563513948761495473402638616761842611800825601957946854294508971713533762600179980574864635917601638968167762998124829695666766264833512942145106406794712353531699530768193761057785627366705835171955848568333514475380081055774747413544754066305878705074954958962289506620292369686967069285272133589547355330447875810276095360579178819516806877954997966856612810930151143107629405615468044507071242646509501616585756459600294888570920551384908080929172356018611907587738525808082996274896271795121238404120671655562917644427787036417951497415814530171781272373040540088094035255038121504726030072341807335533540129959376998738328631258772532599777798056879803349203098824157840957322888092485868179162616987681718354574789279467823215298531904703704553871643939142878601937825267585216280337056496201427421965360499420830593536529334672458508008193156522461531771287826701213142161793561599669117320116411040191980371402361653813691326909589876573302274703378229217222420626677855745360603974520794324953632660219300748996889275908273460374263696313204878979118673294206472341340825545997558759687941153078109054298390688999138512894804051406969701644920391590351003854914155652124214404910372914335272255843389034286567175504066508956903727693702650934056640122831082060590463574436357495552978157919267119283766639751736709030165418670505818719183782334157602612280138891690027391118721043576253765711925427876888336435138422301418536292221076311798621054966215177996978284402975274343948114726804490554421574164285183584649287266185917089275851634447710825656457269954514866726987061762160596088810200954097444688072680741562075473492201471907589774497017060610125833667801487276060798279945198016636442159550772548453851567040023341368467182060103012316297935540764834465777961506854671064526263527554362950075585189715284534652115165325065035941453795572111382643919598873144136659532042632420254709380635828621938039876711583714240991413025482205965868720198559154867198132719164089545744748071993877725186135848590529683655854105122521110095109177759806521916192503469142462613945891012522674213588583754436804318584961833842601385021290520757503919522527632424135188882599140946318221990727556806463600572567905000659412902722120279822061824685516636679150253845322569067508634107196955740770695360836043666086327862271739325513285887728478319648164691897251731859920873848103365816920919100335792342079938750986951102374167492114272610472684111936109700145572409665742442543774901112194435793095546042257739851714702861460350224744494789368427314455066978197569723993105418344981203081857935772985823772417263098147904438271769539277877261664800717534003463061987081505050333535759702047550208495109766622530250611016683380466032461958103532483839438339609489937869002001967451768008780684886184490785897946332947643911158814025751546631014993562280391602393104129802987670197587738273708296364565231294902125437666923519067492603357305127862298996438797181600209061584066636098537219824687602059039593747813968688185853460172616018947058999865453450106025281944911002866690618990304931931506454701763353188191671375794447157355373467102035287136794624965069660978033941051067727040638546923855082332810127864131816264836294867354095808850394426600835042504862777071040776239569766752661753654195640384923907323763602773294537102413222746681917838833488700208694911348796444974685989626705119799327035212892250953595080562822069358176540450747186348584031028594591203781336943769625056592178674725915217129008424126926486261865317547973496446404050267497167928131545933842039008252599484665621592741188219520428511160991363631188994198607646344269823740246748437814181904431316813832913342485510972575821629671018384052246934040812254936128608781690430854660520067657927329418439294628370727108281020004592756835302089750698948112549155827238919367696755478531197360539148549570490977202322563906814275144652789936161544405099251991689101772789335081447068905628711582372113786333158873680256455410135130476549050717729211912819391024238077575495841185645328058953302910996335493839370792301198288244918494403349671024373559453786196950315789801571180078923250302533772890914030766705679976503001475324438233252583691992631351949228586222008344687502213918941222086137026525161970009856125115788253798008445846230928389396036364258291682174225025729893167743461188282445581497196067262458658410035874065701321942824546252162864430162634065880486033047845251795820606497952852678592686353279091986075359322178978838747737885863290715638752647299185448153937616475273412211367771236797200739350613931588205150830166259120203164855251274458718429219336913160630567626342935960049312938106558898933825864543880312640230771865073546406237945124298112545412453044202927026013428529977014280588777363064141099852816335237594749206255554799764715351945266596446777548881405489159570492549186283955562799897687014417132469954082751609820753433202555367704493606073452240361930518827909860809766763169201988226219497288173338054884929701338551511226041568487827829726522408316593081900370230281473406769359660528640166251834971678947063554620556007215136218166036222960734388533834834149015035400772143308162280092646765710139888717445607653144135517456267550374806811344165020413666659869628970248767653329816597450498354775048571094530214522614543922902431051645809064424340705810660787919114145389633343379840388337864153840368048091423768982687152100061812572579047655957028645422162191273782660243172281903139484263027447961098779442664107706989027074369835320417656777461467842256099021930219873420073358044670288748284174261565758691397111633090498886907441726688599049432063475940739303105086189134912650229380328166653685637825176612711777606750713050297949492014949478209649922189324415722588448401807455356778636714305136176015623982200566630961911241960090149093260382394595118218992673777416697025093222667479045044863432683103195552872376729348704054466315813198345982008944397461632160720871525757326948799265446140644520658059544998765726388470556971850363716961258834661873385379619515890968346926987946980964101492712206702590833147950939543066459729289158365954782438841591692796804034760513562946835253562121682495898605980984295047339505998404612312773746438781272843194834678795865266318333896683447548701711233844013046576734477519468251456439055649939323586852029216694902037482698225607956622588345476744356610144937153370930830221354982934843939042541258023704065698158701852897670970803397626047680414804847629839360482580482412288339532887479751444318392557415568874365334753734307648048012091512793933196615814756531819561982137474714589137239445123250244366189390438175966359393217035361892889659663774276064777486579465298904734615559431728234497449212295813625482056473896277021082944168434892605853109048592765909051300180614479632066023706848532750227634632815995918393899082655036692697644515373297431848742344743338301710663368699075464445135484418718582789220000407041856296681603648004778678392411998104519790212752415460799496599825039267520357560528254609562659971215862972657602790254992747511951218533856115943356828643464053718859901759794962964305506981754206840300551799742129715139041299769354258402307774872742832470035226643941983889141405011781302199478177083993418858431543894183277744000471123562947659518868587232464301753703149722658237899334376058369728926166430053790315434106958560433425223887497199011654129830023459412644438749750536010801774070478219305245150884283671378612392767785528757261461581889914293518711319106930084214243603042348227489812459714462912513426209562754485071897912872912747358495880050665500176919759726559715250282096411266638609503059030854956267807758840427776365972618949497921180025448961993050952673060898400264031093966239702311084604327452771197467870984170466783220680160772126384106037545065786306525009415246733023168775987341244678570750014481536373799679039540760051691007901203435944017571657006070314291644508409148095642611502637075233624698093797175672817512308151549434654303927475391775773570361026764077907905463558476723201931145058922185100373608712110022857359182824058139851936043661491185209256718523532806517013241994895136279356847836591668226097964063818971621117856771386583485277017691966724908168435970682138728258068372848162133042968241812725320845788872065640594775703409662658244318676128911575001841217323262256090675813004187916438137484473097190807844856267249638621984718649950460157337988098913203649455372444377323939117241394127978453625340155398152662818863783082005393330110360906384637506233950664499407031377371078866454351510426415679958257305933644443217496715001538932915214734760182409438360189556926974943147537917850036007626698810947398864365336878882623530370958801996237556879479375506872117281056539352989286074285468331609072289668676628695658494647543154420918636868294776674728893965075726702009828470581671339453944693634644174758646571174723952801579838611141500482961280326260575001973581847777891358472586356837678639024094512604025305356062755902131827960939828576330535220381946649471971900918706519593987933553279007878001203144742793778917916483317057594057438231132754857844973301135329579070916969023669665330782360694506132452369571216971321319510150408790382299631710559890843667006772916720545229260198839283236315084080684350826932456396343686409475197420240627001313000137362003045337949210494783094397840846844098881036412873900832968573442441848987660053985169643461685336140681027319590537160742968969396759450015959076451580916087481148737833825853304464727577215429258287295120044509910807923687230189839197497603786601850224256159709430995381372183611816882737882621331200303450959618826209467501240944557414729117863753653119357321722157708833239162841281622772482029554493957078174824865046070670701453382809396670723608070903861508361947519566167203856120913986832528412489958180211902328655190246159648173115005365440036293114260749193402957354820325253292596237096364189904293293070204963236808046928118445061306264571199833795402501796768332035132741124318959775915913847826601429949112527092611950910024775436547223440258391469148421713504414713972234738018216570342829397812645865520599325289606248575745350639326715322217854999857519036426089928183741212585080234595570126932223061140422763755542043328312867036120907593118086577379920516778646868542415682430717035793226775445589366556843076776586866791483750313812354870523610818827747006872018770147255802703890459349266169236909791515515558353188672000169790260875168237584237321917780369229443251001478661428093966181205656279287905232894300724185835361301233504317951944985573361252599141015046960289607029149229959538613017503684412079331205074933317891187196202403835064513992848996952190840667746623463954935317578773335700257776510255673449605355376347167142053474567367828441761990622041364993945492511275688346810594781317417644664292737418855490222410925278891527803851549501990754921849635589312728942591306272631556395392177685443806387971607803055499346839541279224041990127981464276835522387093329118160655255698248041356244045699907661770630750232236656702068011204111004302286011214271928229786438734532206233529087861452408529975440510901523561298789892198540616011099498888017560205692718882174094985954318051601283588424952672962268602438476291505362306325778315270243552647711055498454731523848401083368689081454176444217301395893364241635844813567696473899918039214405201470581138850353904572582039152366017016324006320609283963489011070300905274008168575424262652630399995473753994659884052602975793256894667029180440648943535614009804964608144186299610523090954832694213432389240713489490455513418543450656809414181307744509085523535201355619914769721509706389668042337742956115009668797085065686971404812178334122136284883213204062607851351029751635780854531637750288467586820554605187768621660069918847481684800539895183494842445011612096704723918326293077852519049288990829797183318355827286006086748498383420473516270173146316063835578914288307063317123040857700647006567536807151569293873857927204585644107617631103752869233193555901177473680921901658464910831692789917605786866979085513397503466121491027664335290847040059846482323335469425211366703687106809341032553029830529706298336164833461123149160872791626748516037675676403888083839566645689819594032471577864915449859189727149508738926277751489719283060230555185655129937909355102376529565145258307342314544139847463312060085806087840139355326644797414982010727136748501769521044744699152313053895187707078448953612792145629650854794058494737077714540652845719584216963377680776171638787963057757925247243291935340300684801233396853105035852180822464862173763119794571004137700766413720994067620356038835226084591849914504064743616494214122349850237561412303636046589943815298533128737275473376472055426255983525048300190426681587455055741623817097928976522937960115766796662072357498803461216044942333291965740809062787649116216681214077612242009549673064617118796336735303069164191553322831399848157412892821582860047080800883029375995250932012665942581226112224536995070204619681293735388995890348470932755471462607414784068179195589032503713735705175365931151569256410620893348952223418856212125075562503467822283126339870801079019358275707090768081645510292712219778228529131067393052119944903905943599518623613420529441459598303422699556606172648531977151989666444005421756191158413774618387893861764098385066871469810749953256317528959608226078251984708263870912198342906137860413118151087465283446129774075021571677551175063308604729436456869545309185977615135089331358512992199171784235411547272220467168450702607653379389810974120067138921108887691845983824946321635447528228707657598080742754076332021564904317173173037247763595686102006341068890617993494494570473858171856177490298360788856755357272120587344721248241585607495278568333447973786211164305471743969828464684071888311891248923628430992322025340472712862150783045520915189467568443253420039380612437188331701746872522763661311687964828220331401585705736583273125977156499678340752053747373245353490803296358572250269989675512316932900303019817496337007921497571826765398386773957177335935258506601219811719069927299058439321770885920683270810720235038853959557343959100662547807621409295341576900839690801087837763356779684049234906458603424751679058475872849240856474715105753454631561232556059431576596344600180660971565798381359546476083274476214324320963911394638087479387999284182617881288473926704186430053224637655758520039926113848507759613083464244034636588878503298918586172383506878820625157618904793720685920387413435867578685167493984405569291206134011995460649787154946681511908480364434334408325025229733219948745953871983378808860546537681628914974359022241933367329733584961693018382590480828318061861567571237104674574829450691970734107569079610318237787014989758773780616077507382681351754008199391052603626231611642680110973510280477831108060580543366843529782231845729171646578067234021857745337237226861053387828798568758811929258771517497996509925762830124501332467525277436410703437712649315064956075812115909995391765162740825628544299511028601252397456701239339484811464622272473568292058486020887822824560859530936052226004591984678009040227014932159478342381486959809364279714426768839043613935183038134531714328597488283359974993288578729172405828324297209278876584520024078753544269040119223225658905774523112954011564394237554884958822490535919898894145473814920666545302073340042913075411859864199547751968669613593622129166052381812244620244574278479276735993225563192786348166967410156693495652039518991066831703208310534153361044559143150930430492245350210619904686695706662381289474971485015306790753461032771146875056622903108734847501013909309663160944981154501221995006610691193534735675566176823736509210604810097303513940459401859808038298657509529444522327116587407707865967617911791447172155456552628274427631969323021625991544521020360662795470749272636822048303582964180261969747905570281942577317849727797197087847634442993903332019699348396862502630789420361816804867324183543357216790389783222829859429180355419215759028706083041351737693318408145352837007838922416724115295612798820167156426396008587236276934720845094271362668212158325686802814471118391763701297457942568193241152408702757732560828040972648745568611937259868705053064490405784365956323358836825203301625109242091458169520525434400433362738286757005337055716160548318974055361352529769887014645625570192331969697444056669218512057775247095929716950585446895106324435325975077408134174420904109559378108795609188009024796011547265336392415475632378461113485087543086886307348494409899617552358283647364284283049921648224443754314976207834074481531568726195011454534989409126033063566237558252084886475933945263369071810865654987970491965038763006820617550978693508416297037249365021185729795142582740724027008484024384801471747117990119139261601631763580494282855882727698131273638892347367398329373745593950731695248874249901225517694765620605291313437845990060823127524428924639613414724926981758632240886603984220009436154001602041793326957299964536258916051552396225293099059067342678152872107337519339012284937264279618377386804273816619967166784976191934772343054352557168868261399396187444009563218426312759016955892171657373980875598646636832927556097743555006514680241843796250059620934909212808688434571838608467876762620735953348572537594771827619137023760691458065363832669964039902957586686790903916615580279215486970173840966284209766840246977644010504666380338475616620044639790875975058585553743844060304173642392230354353160042384401034705318438859821386559801180103453785058850391478298354197767626748619077927260361248761348384497791936188970600910176026469353893188678660062502603624082658920106455233618599050024917742495718303472324782543764317560932913224208629771941595069082892295712265404028483025226052515484797917730947159545965219331910927372768537069868087200923328399998462367349462518607063541053488719532025355203076968352762095891885614486012938236608794175595243679079301471597828330916832592886808345291694767393706018359723728855984469463708985024307220901246569025162754196058296106418449379071754917410961862434301963837901426027129493295396157808244521673254151040117228087485147340282898872738553004918022771653084390290337355397681863044559777905194241406695844667118970347682397201841470193582128800461890369798100170563322000761984025832882847754398027038364341198908258054044812464744079040437398562087587578263183990036333350455783144406017452642044104778511717295683488953643798852817445201028868983495142540068154272139248472868808059315232094076327385393470372514127309113342700398855105149791956166176138587240010667390922512245989718632409852451373810258677815407980525490894471825217437498724127715619076696107483642986598945214261509202202290938746049763599513013941870286383596603932029830097470962127434907284965398208119820544601158838410157935493544197635112860912214978267136223695378133816914479175959684879554082900767038882471950395010231718851716888127612873627759513937254461643927253282469184248645208234826706299627858146015266922273346794735284801723799830994578909361316527579025144474731720261203292175153169312782960566067390252508727354254359891770166192059246228995970866108619349619952192307040368386638167228852274051117090068874455720817463183619818991956171199960992019664798312314828629438072608339221366844954049286862918089860167147006036618307475131715534104975113201374779186967419629995966135517534249921618868079230929183833165735047722996250656659574520785495097604619950414780765399384154648071501032124676322312639603589650784741774233894183134860718463789875815211144141429552370265882673418769294624569352997890722960832666574924963643482096879737910385442613383070558776557636776317238795524673821668475435947312346379915941378238507984915547147037537364593967218533830630646964139503875520207530038703420060390857371185486589651219105738620395547757914355576598963655017920818180923971156802189781625643773223044035636308128161198431491790276869345102270110172541740462047888605031881459187236283619061696820726441710430018963126924267457737366998601543334988123476879113585731584717776982487192745694915395927325121124375633718360645484213220787314306651918369515465027107429091842464127195237341614553636830254573240400386209219464066928005296863721301357092014366517369668577460582233866659239808326522995883866411400304594153622190035621631454793042926889250009303155314240260648568381107978773858262310837534280480536034862035089324186047570686968380548952825373400301203072931277711646029023737635839149408467958019856069158304882402699081051674344591392189111607674653020570213020096338791370747061605826270301223042305505068561283915573798257131684868470842181477284914240685324368159876990337808996906825791553617340392224169623217644776431772499370284622057434962694390605830123462783713170329558536154929958059151301936419086743228594477118151951205468268015981044910991311945202832386920271802530725151709189340177748008555214554709993777732157407541898245956116438720368626090418594038180043831597121240865548038520246809121994128461954638106390552652511116429823941517056967764430238113094166609767597436709401405006606109286579522273334755178063763790146162097704167610741179015950011459640373677372072093992784028271947661425751398842624551851313834543475434170578514975061000845330699201946834473230719547688507087615331286970816166268514556685874981632950193953071081513459417604549427144651792396932051053797245659463261572420727411774294614057931642730022963523330766059574252006817422422220689954813290650399314422733858612503025725710978769958817206086156517549338871620471689541368481194076751357671841364083733911914938797388696326107042926562153584296091450223993954440281477510127507695267089661018231331348873146314257154701497790825233225928484010070906069565125882959440001641989778873622111139573611024941875305270849913264023459080760688797324825466795180765525152949042127578723747286142545978514932711677400229638755545963380719705049325904676117396080084114570350727735079023459594392776684676767533796942427853864676542789610858957020743216355796377966149495961541967051015450598100335030326137760541323268813774873468061604528721809118900278093162214902740388154940301279868204733463491489300778164229658766650595472039977810352868839425920074109227565475652733802247358021389261291003920342830388491423522823650987750807383070834861724591108889832956682826056602983526940969064418575940563284799724861068187405927035852895885785417203170040020381384189797083843192459275232174460907525633945246220521542399180416367424772229973612846438135498734600981996021295272788782196705794510018778317684522248799504973144762113212936942105211348516815090107782908444309853013890900457851277202554420149275672664707839945890033580634981074378403189214405869770538274446155842654054373270895358431116075367505471612428595344184625989683645973066645354136693760320381958557601048870687836664581554645923819535114788837036537856315619909967668134768941521757388142565805116304795959319623428556250185282402370038489493755623775915925115216161105662283781462523915096008347626904074282060954770097843181944588656481800460028486216813475201592241739514842587855590787563970595859856513218531544738026107907660253379035623344474149289476676135249105127811967049220088997736908283141712150562090798985644405486125492377616646586539163056709498928500344597357116468758637454967003149015878924723188108047767428442706323404199465110031290101461788965455486854838675606479070071782473193074899711997387878766190096330609222589381573133240431717866542526221108289290897459071784814196197219730715968747770843240964943928520144399663956561948880196000971094863335101930857691988386314003530106441095595643781785402030807838166720023226113433638903382235767601768914566199248102816136303002954691390043003627460468045424869157497520260380529028993154073269493779632824037828184694930884594724368055865276625447298324438327673103519701681258477504269545122197896502370654736181033971108430611276543685101343884148635428282161165349172037302820092358481167825102778884805939063927955733416367228593694124210714909068532178204799683450756304349329508540330882303188420825286948041508770204907161186054986245063981974324851543773877621766706104624603417973448829909400859303974054105582191701950004006989917536748983635861792483571750441636804745355773818600939328542339528620756281679515504676673990553198909841818249340108963102254336627951687754735747949243610057647408158873465408077471175851713235396775515401636334947918109065493404663196992919348644740906984529274027512987642873555633101777159561877272735407408844800541292264281208625970593419945520211285467768570524426670766176020966635679712053343849970256860200807190871730971003109431216112647249130254283342050754997962565797141696455857320407594125941130755792722102245585976336801441018295513607556486567038388305565796492753003322543331636933692338526299516834521701786109032852287097399088961086167378970034408865560096646612014051683570592801042406782168661958342490989553440106319846713706599573943918084315447819696464293879610445273968347158152926268210927024359326616020552811155672539511013326265005012502568586661061129961734325255875541387145415175496995316923445573395162958077425890873043420590224965002740724382348222645579642954843048122733941092152468412489585561787477343422060456728409213967978743718199184641541546729244354799948379003729344328362643357204334284961462970807595621491725146518037021273683659408547125280085113126705243993090087905091457219935419445796668849558622939799041985161043495897533834027863437321963584130870840317779849819776474083539581998063225565249842777835198064647666661853043703278313601644041742864517862832196931399076967342330832004854167953863808011774761884746959568082331231905063725908151467683437580912105816418910415760432707367703209759970289394733924781387621683820925133365823609272078844604576650484627584601208181682797434649575757197226077162295715691033522667491201902726727167219266305025220782943579291308660262950008931998957645307101620901679147105904461403394705268591410317233562688306854417193360781556722244967085989453978448549940319804189833800196614805974660725992700301604553188928112955404868810891964887001132634331776457249438434710171914441021768442207284813028121393358840775436409600974238842989083830344052522169071732635327394493216486472840182349860798390561845088096630067881211045830670513024419482881554266658249996364522444134884697666818045847135766734856807089345441994819436315879393656724697573315545598149534949240368587660418688773369616246258457831531209633072837947413203922268354155757733074525184823605234999090232922335908535735497163561240008737245048065331060652772663260532836169272492087446971182667956968488611744622530842537538761633320620690404547257024371814612268242087091963931033159259772132196738016375615425503588958484444014398705587616179740535800077522509323117595230541307003087807511879000234630996960459048067835260912711583183183886470533795085454051758603033104194693179826047681624739830299159387437042762974047989338714770476395334864133787699028732782982991222427870476733738135925373033684594846347982721138390829623672916551141752348024406820351593854347951026032724902347819668646461477938550818989254982091911116256197135537821420749786008157119567388553247965742945870320871475943932000116833734929518335093715717516622687395421236797653076248773053765511552445654700431496205464004561805855189423871621289380266251321017223335059533956981437105566079264579738432721870096257136328129523241934125510258345623975493465185456253572494933666006361873575558741660242461790793436299853708533861231290125604898411065553169902854974692005327755271338453996437203244585187287404555717503762617298675928582615000901875886882317501842820950797976236694474522773871760923503422754728100698611428369683562295571584247548820438474200951067680766460109435992238712347720497076130032117378262243525056373012976806121217254442337900663592865801810307023744141905425464216646311086475577063946916464695475558300373579296411025332842038554619305218322691093940493368742903097776697420198836629424437877321380360685355407956712732706077626048446685734397360146113574375678918594394776065910019494225280833825605702859721994706262437869883453774892805866160665985125407418525516330250517118845478064055443973016104139329509091015388102031094388784181876259236998165086277937686428721402014421523587879809183648125547553930608212692522069761524630264815804951479160502747397185598104202140522579320930833399653797486159956813990104741862540498989866767333108353568754672228160619496194964389588182042969576472890201606625898952192229831321601733841519429465126899198351551742112525948481294378828634952505495706137683898574500174844726047085895681955166530830455928858944496235134576530282756037125249099889610336914056114267671913597556381246927155178286243024997128605950684661394966126964859467631512108536004151412591789607750798425433264292746288997488511720818374480727989633173043942866639936856029545756072325625232932165955385533359637391021329232325059450824906762739756569727831177010390789332160982482905542309331678548615865179189881346618154142340801126801943835680755299681746006043351074864372167125748629887888024494853770142824269152996797002791140456455757648650323899504654318095855467513447190871651728887680995048631142549031832028494440087174785504297471650347987609419439194605474346880102448659518827528021325621667791945758517676616709801419393294099378909182261032961826632086262957750714663443238270188243443401275200599490593885733301529310623155551697313266744156302997336535308521559730148267239092824421987048589818023076407580822848249176037467845796462248620310757453716762794714895821871622710154792192774070247933143489800500959824296673245597398165588940040177590559067316635414167444164325232387647559740917601969435521559998357827109860551112009387147870316018087630415970235261622342137923119429331325839288087145409348995758184295880279398693383486238861476154278714429848250521394980746933440859228068884991001830102026036408821915714535599509097105561016044976543749127454887413788789573590786216021463604767313446486355507352366120326635538644376621796525635970848007448528656885835870281245703402748223548651350871535118862554853229054669655396794514401585923085117306090644773790258836529422156019894397348948517341549004035875938267250763810456453372510877585947988090588581752345421081574388353201365956813126105279268320969020801010903776747744809595184087074982481044320066839894889117623059640733174686203323527426741422729402712256444763418883269302314683188050337932278527232213494073662739073366159287951719494187362881930576737182980102630262346077071087404197172753798429593673203346557681579825775473829219683777591082828314762990354166938849264087897969911939992181858657404844618959497963261480848616917614876931775235697802643298990406828125295623387178475515917903521747792245746399186323035530581795887768040596462710938914986327545543686612727436016591218423028638138455426422517259242698302495870774033160233504796236396461443617976781356685568954861430754455448037757603725566081597381426817234583947416049951926264819601571241526453960563788124086513718010670057732993054435113921360620933310885653059064616268290030679214177485191931245658508025967482961635000931091079200347599498050945922634111213362424538998425192112556584826414212986974286612412081386667821922406268164713685925114930083103543869643089523973776511506016246835716049100800483120728438642124999295886132144171782037595720255996715024126738072937457388844355419006105786623881729964797298539442519189550815704685067462635756594528642897983379345755715452461442958258484529893421720935640521423239905416944252076551580337856349253358515279958748912135555365669000842611286692600373231643565233969325864300367345430748917867216016022507925505484387294712649451494330544811964312992960175329446941149356277398734510463670565591621852432490513832795359671717449992887967680923495377505317202790340038627414141427948186626049429581551109328558618381565900226378920978343328938356848851322580992601442221273439475447549748193722789145449762363900113117875409635923420827966925457827900063329405243400135308804074388023470781044525957638530067037552602758016138853993110076670293518597368655941294428506896752389082950653409530426710456717942083717956972856251706633330716270623965688570633773708072406018295852803772631304869492812908230727351705347204969373064323136068285099696196515080034855472480434507294204141683240467663035482044075293287049149750711262831626898930407041101591069263812257439565606574805656323252550298005706367561481318746479279109945521006300508748470333633248668248898711121337017722299013082486385296118932939514455180136838315166602793509157583513264484695875151870284261206190239410684575158230004139465059631058545404215517066699177801900064083296322135758029954803236572003342832728358403161304545158209821580610465453579241398928419382287144753236911049525466989698585255439149504455795274609894912749171543688153797600796936383376107804024234480688451273099060823217994025120356385424749065241304855464025321742419606426970399267154166463581166616941941285260536882548103849588343346101090336497993142498826480605422541161889769400583979002629418651713137790900728518746602793714104989479085717364366462916710127504675950849020002330647379137062752320793443529700595838241974718072977268256559247501208098182729172121982932708688984011625087011593424593569245218291339372153257345906681653755206365706549680390850921417250921209370927151843693289709444186067079929520490476478706994865825009643104632521112305174949009210842685665394045153620512463803182123562613042727957958745458009879788234316912693666991626242819984853317349236937119760009993928050003528995905991856328455783202881283000416714534540929041380911760378425984262438211226441745256583786577136703469389216582333619131761537282938653545863941291477802227288953364237838221876185952680795648928963106476390944696717366082500636243425003022885875068259581560495531399808024582230608872577050961851727408956752966413241819984422942301015597785440962865421761557318787951865842895449326101465162028307230784971424764139435980808686094277619516095355536616706498058940384450890308453877187032967965738546081409620662956408272943856577109172255929385376801899663878827842614552799601545964247411710355864231703918691671236846874713806066722561650403741042562207804209333695906743290477617119681760402654695613280475716253246800035166489763400611155681643653206184685880644902847224718242647628577546675130483954005084886519481311771497882080871011450823217353761924385536105701857493088213679024947659830905260918405251775048653311979184518087218802968458024992464203440389392184674284886686832199841874503175279091583600523775562551232149514036476157349458424703134644123927322120612390495897484917490430998077770899512755167587196632918227062834840067150507904112311622954116571548063956562025496677219854480828208276665062830521635312330536843422760473568975876841628981004431023664992003493234277434125814931367779303304178122433862417119702730089216778602119333819150083683241747032428436491353182494787019982508614673361843186602893483250063652452915395632088315847393666523958154464440336917154529129972717257537286412692196426476062277768320930829242527595080366655366266794005095638037704970878884299399171405333114466706468199344487945564010705362920826275581377126583374608632151836104758514349959861708100820739950751323212761403106174060779483403842851728160714282064733846012070537197569047485560427906548039731388531923723255364884095463203685704019562361544360394383068099927791257675372182050283968533815675509597768462003263222464352785672925315211181785070013922636205916622199012027562673192345504790057589632823595757900102781263638774888070885239821322543473699007213542591840209219138363464447647554433865126368989064885068737773056953838248532370727890113003974337032361177188675780089011773518318044452584127302637789572485211581334909103198050588563046157852655049716303771612309284644332001278337224540663474288953925548716463552277378072560347288062724975941200269772477804897205487247192668910248735504646222475728131049168094807881624137857348261845098980808703143445980351690829213536155087933268694551319111709400008019496812171281950643684773212782841475953261498497345442116467119676662954994800135112866622412542141456573728426067354578638317300854528065762907920737599979547815069563453221399299249819418286286925475182650878678230027772196082653207639247138509413899589685746169584911393290612814762454350159208092360956959635813246752399566690631058260776764629740067249601302558448128652812861066377842091037355915191002415655650892366609227772922537290329541251333370891296776688686214686474973534102184192747948996753289649230607743377379787164991765260985550532432039395875877003433414260441552004955944120191463273662857262529317863570090776288589535410360911540488334163463160623399893106023079469566988633489875643821593141309070469984144865887728035006052934516867015556274201838088711984076630098319528638480539890343918798606578578273180929629571660652764864732270577995728341555176401023862236362239623065848873886377542683134964086368941421053536045530346210242706580034764078230465977473947322436557821430045426483059624020563804719111582921796937915499066452082555731058908533492049551007817710095281999868020933527837927464882060273329637116333190125487592983778393319491994209621503071294751474310031195070824668363743799821599366696703371509816994595012066157624252149564702138908063889138427542921041340043318874139148891371698409460283831565937357601891581380766913590607283174348080206168650978009543767108149062243408366787495749848782819067703555405654193298842142651843180330779947025590598003241907668693711102945766285330051421431597276834491882494366446368042349636652116541700475173924948934567362543377209708301738143941301859485100159158775297975798036314697656251379884843800984906916055929231946145646060095724107037340823829997340901955358124698690260021603775867378332630775057283137153791433071989502373955596093477523725886570270370329901531058989537089241662483000980590957974630214744670210723841340458484108034768267588659918054708517291453553768275966605289132363257380972958612738054886625117807168725143518726310851957229109148186183299319012716043432429297596125344800012229061353769421954736785238032661097599627542939676221981856022760905914894970394906235806736668803420217426524263300538962420745790733832487221578566235252676874583508449648431354304778935724246731651807274575284621593209917009641475240238625227368178796648065997735315829658294832240915978276174210409643229810606985504710448629967753155875918859714521724777853233286268329924755274538523510407101751889202170651500831524733149661069150920413039094858119278659333380062470650504992293458389278459958630317336225770759334914152890975772173691178589790824845164142461298807289138106117233432560335737824181595772225542172723882596461669195417845590567442593587733689959440103799613715787386241355875667774148751924422463538326251348699974965045369644792264686696601068124603420290372832665015564747562931029806974406079496358065728163071410764251141806530322855723786636436605002277763529119781220946504133080594755557537986011251908082337783850487162508975837902052458011414949748351078968009339156693000907526226231391476261644098691015648623153493498984993620206801965661173894509381423038437168734778774192966090825517341303886011097505744073529979014403481501550911718055300541810017050801895391223011651102463945519207991099547794658184441202964112778462558987303701779143037639172453983110765389357450063955012711715525169710164493158591525105833110889116229654402287485544374913012591066064954730406156482670379707429623300999839270971400904978132004776422577868012652058697140798744011137584803279013343443740040659813181830539860341113696591850408707779270884619219342765697822692218581977915355088221082104496842761529323853689889333664856393523167350851553666480490113872605407631209161044243468369209186731272254164521636308213429018906992283327733605493057808521712284955382183669637856629761361448056198167447713485790627632266043734203534666949849360920336411595140336789443796171195712776547646083624586237990409888931215327883401112499797981089500072629038179730349018821358135093424592068308036827029632618812934654017470049464210429153114931044170427027622897385573554572545424184145332084989187512731279642177359372507171599703186260898443351963040557529159161453313751922440225030924401472816616145789821931989528889065031918908152554530575569177263425116145321037427762963699891220677319776188994881564231752900811215879604688489579551506973613745372325860655528969645251816164696794740781545776566702955347039609807354632995462200982824923645344843119251483645705591737715116393919030291036423938533878556817008676330445733102294300174906087528405343334998532131070616463870029771617670440535681292156870966059147386231592460477110698895795033697574083011816095702499977181873052085206698005844609833859764080883360862012677118210109498697771292038503135519108055113909981989265930889573733663048588803614558688801063691062712297936841742895602200870828879062832913729392869966109424095966614163582570112798968133258258187745786594325590020390816327109024806091293167095722799908821170122542352078431603423959429858277938790598343416694714635613580022666067866031410387747569371896812626420095986137431541198732627501044957285314478867283168348949841489598499181982723009797704517403834500847369515609139940143281552240034929195475297712663567011208058835586373467195022476654854706710569298272968432945870029543736672717742537533497704924546856841448151633721329943315780633593407670583127317061362919060264038318273048634545860712990917348387777796589036517682143355036424628744779529775315391159652852538487236417269798982341793404483477079228228322946914092324694009776701607551636199983099632135067106157185920757004198788597787755452087819565922702202860785923992060600206981510198312102474912421351025009134977153544586868964449929699311024553710240408024254908552233140092525397202858141630328631145891330167924499169821112577445743355214717250299215116933656571879806550604993540547947223140074867113727735752877294578504918167676107694186898978567838277118898558175010555589033567198224812634452681842646874268820999373538654772678600653035369522607900299355754177607927579297390737645947031499205920100574994270837827038079912611695730605249154557955410411118166156692922851732112495080509910600236628979234288335891100966167921409198457247149820680254388760243417646566062595147212036887890176356796915245880685637469597964151931186873089013235056144808607529654756176659590634951856275131869498651398919649923648142199957789037746152664263010687919462040560546283057073403115437248082414698320817995903484374790504577749352407482330221384462839410645711333767864959650662017882584049573320491550796899762901597955679765672058017894301035919556957530546348143654017286890886162019427795238827090216407241767859244916250856897811844598161122602912461286609885915738415946745921413495079334738750879422487688736824705488618876246061210455668905752774904880846480851057837592488763687390358298291932748090471580170287517912378986155329954588836302060326599681262610921600165459690382718991652632710115783514281428397956318797568108097181102731176589436095661137334862151520534020110732925280403075321756236517074088813925524357170020215423863300976673490633000759752634743886691525730275677570478329490844607726261433457408625505855786327753811867667718522047369163426256612442380607778497930532002516105291638370385886794994149908377085042327372047536779022055934034662486454139682901071664531768099891284431465733212840008313187424923702852081531742784247397960498898570011630938912077002878619869180199230933118310998566469770376462624212433156039720186276953213873059959427937547668083376822465438521035759660583360749282973464349860080652183777244660280852081606712973849572648713535678471484895482709022860937145249093766099876960120968772521350596908025399281143938690895371312248231491460075053421902091516660352512520184969375695465945742221432940621181552480321673652823963986697824759648897705839854663477664907300426292807026557800968270395534223709755843357727117350680415489147502061280385827755059050090459660458716073270227911387908042652329728561405484509554837514260014523556016799360439510343201005324982120040231536168802948713603435625253408622773510928058120168392155578903098503759269828731284116538528831341806685368688043070244588748854890424582832044821615467934717405687100889267935334652446664816219307175507269532051688901281619985877716166438107086807830270749704931660134238802430020381072600235923242343975293231977074508297464817837513272409011274470592409311228741642832068636328855986241264192025536965207646271870941100687623086527328960453488711147646278808698488035173733467548536131868816487973895556407846892892132573376429535683255085946758429518524786379390577673505276172308779751234411964067145789896725154547596768041169980917459089987970192682968587603540601573011970637059826222142736434310449238610080961613747999556567520084662593962586041247157706166840914244069138677049100811779200935009205211306716069703885000071509894396642343700177106007353821851098110893071489636257193872261612838897493077790709124594595003820356881749900988729732498454310677228298414463853235960286943919776012526657397943327677519971757459356050674427501306323797769323912807560683355925007457846215869682679249420967747159458451827040589872209051122133985593239411805823971607832920792323422386345571374348488832044106637590951731584420314198714149015370640602525667900505363046130463805229212792594868376532257050935888905218119917527497557204156895116370283343360084358316030428960392412572803227059380012333073130298784953369453532914345836503415682637099380274098194312251365603252796409515005734106353270666222848562649661765465155964927058150883301903714222018574478311542064563031354451712169749882685588066609485187266235518914630089037457919401739608119600132544709174164914053723050183366030096952568148749035262986355291375079749663037169114381600646997921750602728534743864534948733204048978841763988841214712434898596126634961159928582052024560610556246856533086149808696207443403063004536538552103951517588003278277378710539556321230468367042351728417974676683494195365370122478518068425275100761790822144204124947662092331281616347630651354742805002796800648527715995847843983967919616112523493939538555211313950931119820377193359759099476627673482921304401822532629709873649668177251148225919880080343628559398237493309914617513036222400855177602648893092362285171302614432860669670908083505345338701705391972063438827651934447761555749497123827142787307454362214772159576205144079353699832623389003728796226776226367442564908589983998751178820194499730730406450881133937971096996213933951586121002961184570705634741218829279012849434148339377243195405077265657013765466771644506653119398621373896196453265536208642701650555872431330698142698616104171578924566433309391421914301767145780180417880774270817069225199122692985135299956356575922219530877020600106440931731783962112741995172288493849580089685236821940126218241061624152878733421214543769405746622417893067184038341005096576485517185179903045967666772777839617306255345317916559699806390851145253698552778348830986940906197936054412465103726015921948252335846067817570069038959682641998783052089467475498981113519993043478214394991872670958478120603837082355097821507496259805205814072347469832020127978471107340147244306461217680853768602035166154662090111849347615545939015131764041708647095653985649263493398951228987733605890748264918242454927916077186112156688618235083543099356352680143332671093478549203356260083814531924536955245489420712499958512931002334572554796607466743572539866516650697619190287985171245399366646839799037466512387208577036808193092525279870029788152816443037794544821311619383942707882959274747001445219817980306746328555956998974367755249742766663659999225295694585581211237927033724396701482896033576839481855937520752389029404563482901168973230038372979768094377365595606690621040519307608332413401239760224474648703083161319871810330510470676461944770454258569189354955170895009185757812426672921560321928850517758927183386866395195070837054204377024135277381148087323982826144254970162652557336057633761123810904502953161435434555183464810131826482137183984977946801037324589859499854478072549596990395075727654912573179344385308877465753323774005030791154096389010932538361866488734435391266872129463084711775142039619949802014388753317727978401934049040281009886912298170594011864682402997345160318202518024611078593639468560348709470663321128652950779178961592264199037283024639061427579606506225939269670770387581583134985951715479226876049793110437066270557432877225346679162144009507272427721740331404703984121792841106575018748247734282686921062725864589828352154059534326022278299584249130111439349588884180822776425657881282791123714118264245607026942747523706045134415914019336331729559058684753439937774223912151977150105542877217585545610246788708775959158943469210452489507864426057693220738667206456668464182229196091574848494589642376282164421632504408480559597702106237006738828732310627382411887084215902110755270544307104317776580908875549168453079656889956119031653225537049887126157272910790154376354875246373819390242852696195269486308085938594398362178959413266182829076899889103208960459373032604332497254276356004026166570142675563918063118830954326308874057762042701144811578512235986154690586434167935210053495584235548678543573539504385631011893342522154119302656400215228673064809228576367063745955810445714943685368573751153460129038543375113746507757512080632096617984235556328196138708786158597879817468417697919522057515790972566759994902233130655332114110570629104586438631550339520853032775642770080768372222637583662366878187745764947602814631191008604231164670846224149334425742480010467652923521275088842178996695140775431725673978645473706362723514412302795730802319935745396419128711792638441942677654735505979369077663670117553931018372327606561509022359263660908826728948945239729918205252948081388597591220457217518606020259697825944963548384009225408242985174275946534072993071131117932890813257391193740651765693338543877910188503773067245446347460720815344840222921281714589941597608390153094018795338345013633379758081794798641639661459411946582854656301500092377956863635511489290770792874947382463618051972590838344145651845726388572076644761571305732742416803461195828967504179688483658969931847306671340285367151141965320191813683641603483400573568853626043978535095306534753150324922018369160505506815720949364708420976703978037421617111093997657637050413051618708865123474240644468132362509953865925749432957419967778976869774223182585792615806873388473627598798664647266795840209821464593106535396256450652679610890942208628226171505575354638225882176767948600750345055260171950815979852662339353838012446486399754967654144001882580279642844463903420622835762170225234545128758186402364416004716499791691868489119605966037026979388688068315693830888795278554246224136044661243019836190188587142709485721889650307674331306814583248605107551692391034869855486678641285219036476542396241794488274651743765119206818088713749738112868431630231147846222121557944834667899138326216278701610435431710383098122335101587286592966085061093098143467738456093913310802160424409851686110082586195413687260570070869548757459172051976672843237026810804411571639933854785690564384350887280423302824601427634977100873835182912318038844268149341489107900760690763938148256846382258610745794601038648160103936881071206170735309227357263346751682913587620484217451899841144301383386323378069446231779675098614189651502959844893510930841300550709560892708795032753021210244102185782378217812040855841592938649218147016358791206821269287913701552045856382628302409744558704842487274383703443511904424548291795631108866041638276331918533896113368038080017125699808003794525093480065070471462770636759483292353210161148752020810644017228569650623023617397134641183545661940797077922367364123316262393502870758796688375499461903384263689427695710387816588231555284279366077964103290549911815629861317721600257065738835536297223778022978023706985277534337039146958031949433339545865996483343929916173184709920154237278897991306205531731924880350940054023734520401547592260261560987749928649189561381047708236800138993606108112838223466158721188983241023736260322183728377770915514315349720120733358880655257416109513593281833642085404728272246355839894212878529339376270004858300230598565321699833479891343026287815578724924518370686934318725464503853471384674636825258713098591676246520032230901042722594441701435225658428166757131572588301802518225850675868912969708417236587776783387199012464954912111668705838987812227057822279366042397802593756630239101814954955507495136500090986274102365396198826567251515059056871073335081583159070491601286661590566320971356539013910462966658441819608908317477621397103535132561821851527926959679328362961116134611437261570883133351655279918968502018583099234248804553386592134604651942586095735336871936104646380613913577779851812368469052040491874587357459389789972685336230616025292145906216047825291168605607025154686750884574086836190976325130689168418151601583322959642562330150547989201192812459602931845894892136184264851071100253751481533810307919434810058367362359020099766867014087522887751264769985932033635409274955602008902482004254111162125177882135938437028149883184414036961600956884101363226616387644171984047697087426031426541360668850652093498823770586079777193130395084292723295138283302764545371213384416574048761730189740439656540266973545731761697573292916365245127569068816799104500051297163708844949890075483685044080385277838827071516476792972922279025456598301938824404382399790876352493301322983836673696505502321866998074433924184687692175725885379803524349391517039783659210593793182068482659198278464828279696308616236904480839183840011591794782331649867619402996082256631076954449735333817907795878706047833853613869958290813039889374284136008977615361142487585744044648554755707871162988190359914904434764427229045736770210008631264675039782142305876411993323235718088895510266915598218727881679376181142370337635060893241577843180636719487424759852888768138045061448606658015722220245981810530098849152048934303481826269968613369467257427978843206215539966539133279759110290101654051062818713753837108421131211703738511256648549407907849625095960464173195394980649951475379843953115100498950860943045415537328112962146967599610570681984240028665846827660521716147303152505291300856833132634442242339400232098846698336906465130965284310720145055935215863520122378408990981502106300960211335765188934378950321558351889840921654621863435124725646043146874235551931721829340552770369916441262336234829764559865059516284295621892787629062920765367828262564002057440052801681147898283486636617361615129385170654518382692019759728946926449896074860498469325330349246407192267546471363331750433759356606096181332689737507282343173801675938716649104185426175755947189800594419883644203937387067081437399941901399052826132522048149351170830065780307307202868355210916826419931650676541081516487503007212483418548279883467121861739034363256111898345029110450907776198080864550523149472480272670726746691298878629549595733095133864777339787246001884998426311772227431261500649549824456078562331123574168517147155090193862236262442323219341713888257069716701528506622472423351126601941735179508812490206831060388287948561833735117475501973275918583462041027796508714355801562312545675131372534651433558744585965013467380431170745452601057258551894595281783186301923296552569365754348478587977220517709169733546244168324774742850870862259355507782252255909703846267461813761425391280689801434589891634305768682644209687558263273695414671743362216217081381987263263197906455338119683121688076384547408583450141803338844266573554542158720890708971164266777937755520733470232078877424347842889840828735250131338113746372803234466882586712350642968775741873301196911631585673561071014759673479838078108969348656907406926166886785017093376709718850902463526838387886856075161945534431784664022373047193980431323863763658868089281367134416418822182352035606913800148453250633054221167431382736156773736382480240987457291800073290880539972726349796152889115533424961165847854240110599567718887640209465341555133277544944561731181123271340365265440238109701175947855993405111362354821436220798802884849352784862490008086814805188004373364414833818649269788522770321672002621219246785673345025482812958993423651772623089788539023103042624813283664950896747087842377039688535067978975437785406156847405553053268819119808731388458294899774552697294962305517944129261129149473336940383548480871559482386208930824263925912393050210245373833843431392151406740848570000998285741492876178353671208191433855615027377144372272051012013472548447040050854075087107905411975777616239470114850803634910809060220856955094448547313608222940202520625066928868723227210184378993810670146041838475961339686539800147625684078519481953656227366676734799378465974017160950825647864242958858802674302515378182689809795392602913441501704574849372734810337418573217285571023573363083354091126707462273384111246219475345879375441601535032557675301404657869083144982669711842093987224301318863408563868302280848914756825589865184740832846324693967808224755035337042476443200337572589442896689559720399038614463732702262309300797596712973704062019119389282146325685452064354614250814334284680359821330637250086515968615674518891800178976700012564643535150746601838700514121515995563748093067091079135260320930765241107323758166687810593959631255390800707358870061524296807532958679782915576876230790446751354612222161110783832271144109718937707597468022119845050250052100059933808412333126289184678322838929269120181852625821034013897669317707353840432467803910439900735713609393821000863372872279664972680775804622843121414159844604347329909012372347308100224066916671241133625050055990606816416847265361272653686154412916718897921478230045159430255128341048242601272366504081064540518034440418576038234630274544101246576485798785204926019566906567921180695323292779858626117426737035284396918069725126439054409717722488651173797066133437091698383711767681839360943918543992486217268590529609279366606890325881598017102095634409584105851182430263373902476621269568135590907872704416934916190771995467299848824528205307662201644529063941713102658509205143474452798632989184799478210418746405021627811853902948622628172248649634373708725155407629035869549351389418311343624186469693161919806855802647389379281444518794651999498572056904672288884412468214124280052687493598604106347828590546263361272320965539946923493922373056381876421099264346546333995957814643466743322314883523711993749187062293816463642657228483290346459324412685732633076423280614433846878990370101653369010580486240989467742488671097967431069983751299195729560424001077975389475055678720934730230476246368959787612258548330981306388086460920268179441710941243859963043301766924173582250553671443370773452129068547851917014625272357091909521082189557211237096249915122850506022178955593564496522199982928689522426301179259833156892380356380105051064161391885241812532548466200471407661068848257608592403876538963535159221874718889234420743331302339367257435575501534731077909535018331984787880682083188673235929851029404503473025479289356758272720681162686932557064130865248732462466712293079181079445423180013303560942534517520007565770415512810153072211144776093812025049075613531951803128249431412300772536803667040920968711151260806438447362246350062308475800402077211891707826568750037337329266420108979074544518233748071855424551540688352038709336823279986939614888380759013622672166093148024807052353189152058352411858804693249957953359144681911413932320329430306336526813425408779343669995955473653868865269110071934873040109052449452952548005681996599989985244965153844345310476584917961741135425949187926165918754655492847835922800681951028311023085871200039973608658658243537791590667133356437219953571174206126228319435921103350146911304794120438224447957093650598055463430185058788806284347106300281653611524557062762009500558411207575207370664272341946056131472155296277224626320123493978870270199373590378357364136676494277617783131484677425650811204829287326289263521337212398451118454506019909245199305882621875441615289604282209641282334308439129965607971415994137036208970571767718924714373545537180530639263743531303634868928241174702560067643272801722221741820553993508620989245828108019831282670505744977068073137112573783050047163913391642438454911706963937063255013466467966503879335947722864130480194107236164921541195850504193741815369158358847980041168038901322913378659714697131283249399956662226403970203687568741552313304883787346586767219692991346701672764691792083726739000638491761533002598095750979273254229785209947670621627043901803476754662566863739990937437417224637818713950568911218552583275587155705536765027491479966660327281284697059829484232567586529354594556176691353802503302524779505182419916672005052413154025463447581307859194397113632981539752413679031082592616804257165847897057916294029627105912064859008655829556497194983544679862774913232886312552112243846705973904027514915301421577426305016368953319050687973504546772045672191551878211175945772641155099373744603192479902119891787341554721815595114570730135253342200511561187953077783578072225403085976387522837016577512694232944191032010192874340555874963613347838011301926718595576250890463089172857572881164887999628793519339587262281241182732574062392171174717171545097563734614260807023367874247835510840033200680817172755195023640570023190904003772050661535413425868768524432208312074799370663614617903627731270740103538807883696137373586749651612824139859996908182397200925420924154610594407772413228161274783228949750926779962123152589989496272203322608386055659171951854084487353885999251524525284893335752011091472384342639751870654679566399024602004868888174693357598378391823489657196637667738106285829887346466914573936143874311031728595325070617934212868410128991129099946031245929395737036984491525637949797298555178539789146448196451413329447673321993773132171522269509816624811438581538796567805841857898507883680435838643501441386968183609439836183063325000756332380622502725130309112697930449973034551607206232659704402585715692227779202674104983990683067904702636275078584468858548801611866795353816721939236299897003442062468026429918674861679799363290011914463789444854295739406317554134825683109290520080019287780735824275636396594527048285358568306053450693481848529047560201390691891944080882902174938792334410730077963075608360807413292824927820999168256559080136458370892838519921945918467306833495612700881415969378528962558188137547447716390553183774627642724957865603935468613569118757318972164124924860662433642238207782800912790048935427846689520734038968810677289765687652393960435943457091987141724424337943178089681200307477699954783510830260048511580418396479071309001665250198145474082258319382070397901790161747906836310079709662796492912462436683528864090649734012272221167522287668349593831903539113147366284926855102242647855854844139531356199987001652520424825634927676274580592369253110005664197235559138373460953869137960606220997972023954872074417954182774514715100742972116586413352151018442491882924031487573348877357230681357725424262174366864553094302564517199871126769946713285123900768409152289833273221833687738540197377222225824318013286374149122610828637328458700498042111031945305970813397807036830256373761146113932434978693469623579473576497457891050106368483993681961034465379822155411497091309030526899949249664864183764586129392629770601554694651814648290180512802668711994402372363178496885948725561039225947615551585094011643742306191918849175409837012632889873246366840236261090005231618040556382503807256818815374160119682476877957264104929250013906779534674206406517400628329573321296384557582079041646150420510349371926602959249128696754652198172687213365435574388198373307542387734753700145289214412158031551082125012840036310593014156585558612469184948666819528581670801115992444696241468914819810869389471464655010311341580258281663565824656346219333200085122837697939670204492582798160049283252081735721027123653709603293848104372722538059276771901060358706492584446391421615024694181700440039640971821971625469752159659493594065141238432638780142767808817311480879779316189660264377654320027775828892668358123635634432443679104850133019499524371100818332530458681050960747727533495570940259261597308073303067512412525110286542053588875850196303176940287678426644813446776761483382749506964443177514460644272721021999606872175102638651344940015406974257458837446891253976581260613045881333888664641794886088794198079959134917419420813493939987870280718497953839131821792292552031364852420965915070560846640478012489019433030969126624588543694758732265894882428919716878055658141554836307253106741146056739399704927730161997690767513195981535761390433323024484528155931200596823745995325725821262347936146020464753068642412807865104095004572730136620627740182003926608356938817470432366801301651006529625919964857806446582238174642319988557180410541587274612952052758209759795180834405217506170072880920832369102172158022608693972867445852024692634137868363818206364539035663657753046777253173869933516472960488314788468538753361067204872962207998339174169623262556831855011113455593292597204486033121758508904089924195788679727493580379484428239549329819318198423062969674308769644206844068107379804166839208616982729887579612611958966912115704741537285060456082407436356515615819704195573548058131880573754860023403397285463372741871800183931829507191107060239503618784465005760386921974142084760023648381119280235894320670412890210969934192688748955193680249141566578628261499026786534570589936395327168695306145453161074849424188949483096515944792465302886466974468202291111808173680392431233251803471343752174635696680732672515719153881250398512911145698714824459929098409834576451585553771967299139046876316369269296749258604488598156855202967151100074384145565591614327432275103680711006876993713252352063109779636868382802288821879922284833530041154569760228187530810512372616687258517593431924515159268865320747969809759648800176407303483320437374547724252102878922850567713572071476797468744686807645703047045024614556039017440317645653887983894230172415684207907566841998791155415803045933250295056448410823672173141222583478525144587341969840263261705777764705759524423102804118034761696955897200096441715703838012813337350249970867467383200899164787621504607297610868813876099920871766815036355709330392558832619821059264237089507186538895637537808231457508977908747217997513181335042323385629058221803842573895283484132858781832338333404426530244073227505334470422740534991832603389347270242911139676662616457192416704182796712619520204569341334651561729492832493823364781598751732979830389042381667063803609606493165103279544891707846803191646460545064365251669230294828149276819360874104147053005302968422578599682418519460298994511531762737262364387442481297746608064277689154722438696906607712958650667156787442073972933208406818240995153526176102034204436158398719278803813769764610759495597388918121874106894066405301785466890425992698533595291000334683370657457591890328686247423046092581191457185521540076566621412035847675226004232259222929411957299469202424242496066388269484020495126935952104734903535914414215618868260392364562944863994047498458683302594564872123281446429371625327766494542914684669432128223774059020300811571214823032202896332774704131036464054122850973492310857701032562783147721883749166043014964596545502426524024884885678169714500400879868215322842035756938195625910240147713765197562113264710320029037711130658434251117081617829557954275889413091116989861541422142827550565089794994862001015979463085937083085454801709626075643117848146149158373223334336090816163532091599284413641895068931848927846194121060920057208397642003644263158600126861424939860925562984578217809709966503257533681881568717406074189996898639685459900019521554605645558998972020322960466755599990942114998675101670852267696271897142292786090109873121662419276642217228693243534598649626384180616786023005261183729568377541831259598605913729716681919742676286878960260263216542216672315442224931031278249601192746946250075276057868479541700311897959388793798306895982607678228646937328370924629115925633426589956543208495940745690344764526635623390922583387717951063653941715759764811798078873707011153635779805936673084445861209267649142467994067321747119041790248191290772202730667419439500137148113627611183926272413922178186686503972600040276541093957162676013929772779411672101060453633253821612772212807089209208427779825916128514362408051110012847559428368422613129387666525628974451962381299998078324288758694017875658267563923535909804046591948964225046001829466918475215695801148064897898337319648934132330036690441023032374255731751912406152033502841723686538466015514911540298955895224081000637493236143758405313932253778103991748961091476302279105109670649470721901191963129708047144208721224313111272383751944060063308811303510077527209610190773876586489492746168237306053441104967818144970706320594504766258658536351831052309131892320513002430695897343563857008967557399756958963928577004855797709644875087995498085192824808650445615932854224002866100004537447368829089592299015585742377037383374342371191268957886955723436904104904839038326358285949238065422308099658082542033287481676926378878757884102066285404854171776872502546163512129883953809605272676920404872479585938809848684621657636292624530990448004699888542165215196851500267830775401416459692072742194134236721874029871089141437769486736811466345960852915655873664680514447750618612888807486864391644381727997410422536921926397079854063175191594199599823239424909666927213055135346981835671114324269590844881817530363700397174503042171489463795909159254841642726637184579895027205433490731968944682242874383123547578623725922703106489628612202120449214575370273020903726770842214623974047880602640638865907197705364539970606604872972896740971843956007524186248309918528867427850696272381684299791994526185240301252513402799454287908129980890646269034978899087472325937179577671972351242317015724785739555154970500154213443291119288421966140133632546795576819559723916428591772739610990058156559678397945914935836935143158408237081726424015036990169730155679394448568548506273830288111251562648841610770950230362600017605889764278566539385569140741934514432324238912414955120657013393713967714472318937359740651724402986990479029859489265355193998257921964581604141071831219019925594100468086400938946806238671987337838065867544446623368757152175597599777053737513033264201731260550787255647387794403279636001939178842176457994599159976970616555425768496048375187767180993335560304664288092621898171192875048941477876715298073058981638890502363818639359555716598026135088528083229690166602144261478564678192502607268086021216944443167991980337570632387886550904888977990584210503568309362485078047771133049081598294351996711662404481787252970169705690083288087539884918693655715790034136527985983888310732615020202271268834604047670700362561205089215980503349900806474753265844397869606178972554317759211887902910854123403097658346011298336173402611018092456673002756381099318646038628023194466773239986702345870091965757991997250164365261663230676902438810474183385705997296042629709951038996761535225133283558150882000875657853853804664747491541001359066004592373163880926072568446099786639367290238971585238893944133758140823936484730328751886012849820799490711755693858274614474050970122523044647738732290713675958865215068366077941748683660660243898975132685319412393722680722549886969140397836761423154702150110146374308289958635256351887930737636148291413068166012098126200558990785698968629415776818272920094876530226057612057233675746911234828848928472798241298552305683288479016389385973927888934842508547693480497221278475268625743591036595859962312614333075942609027003743756663361731718360711210655907886162493238528828548884689106065084851773425592161514499913445989341328958990391427546116905279728488781141710821994564194531659066548475384710223545206285915717171803541008479619669373046168039026091159142855127500007993814296882285484174647398369474069817605076179555591794091086347389409611066352108400457225318641659982000461067535214060547576267793460712880173952275325118961915237633123748234578699630129553119032863328617618930827693352566712297049805164092923740932554122602420047510405941589428516115065808431186008807759573357282072069293034839935555863412111070561528941394366827724185617816513483527435412422934472490424431031935652821694276301868819022319287201745156620427320643053008122676818370998863455236863322415749086340997925858910514149577380098451386494504753446022991871707065799713220174550267646504889872566131002116570072338541824183469025015168168003709840229461847466554827879319405737683950714704101441560518696007812846282584042349423942302323506122933591323874395522385029747029781748918251788692821659945666701296670779100252275289776267270062733820976776098860177233126628165504205622522346628827993296238714316056453280515096366611695366480751999304750667762963556771789957585057592955121251837052452910865499257581882337255168804397851292775232621270700736235805225574319644522102544618199710333177095222866742270020960638819346883087241441648594352835602367893495753629202425719209006845093406782392950620524741836694634978065471182405544051218174538055248702159788684375272017967553160824420289609869214230340783257549594248307422416507215666781732684709658418156693539561197148938469581956272410074060819057698968285896818856980109750308550096093586651872527679720981641747827472183990984824047099500776266000676799551680936944074783972603270736104634536750797338176438076928837760337426191190256223909077084298641622695329257637605981572118323352121143123753670883337792858014728348855788283326108214846675444177355039217237597487433505498294437948514063273306038507307127294727911138991808134577184386810550471247290799182025612740003756398091835821435779690478303356547437654605640927722418973524457404866526183824798498454904507326843850550706589542636654656334819240966488357036486381436147411717111843791650940586983654633626901518341615649817571963609361956509044112392688782142217402570012815375197931090162772354915306734842115025118630583008143555209443367444901574815838787537246215761943637307713859828225471850995919629695685801302772421096653402026397623035718405087909108705695909450679999875796324554440783728286675820855908749374067088954841218492790573761995903155906796832290500298832793223256851710253422449808536450785498722193442324126991522846858002881789322780928539611890339144401928122087623995361790018348248857347853934756457856504155996898578355163494882526551919244062088550302247524518567431161464995125033439820104367060545580792087723083906304606749389109574209091643191331790207045227775536094691531941193885425647346979732341745773888634146688316253772090568610338732188108252393396741154080282646317045800375643111518509574970676244796654774649987409608026476896937466054704111532066792876648651248008844665404914880270255662205902486835594955872214017441552713310756273671703817193593222875499583839171453086973847562768346066784333988844140870236078183810384925914177294728134413144040770683259692930344319899004256927684768943076341923519587705278639557054139900923777027251761769266874824055934539257154812578218321841285273425004711718051981163616063334998667796716136015858239796240007689836383323768170716045026254372277101900917273443277743805869641885545206355396611064832851700093703620601280375172261481326440850252701561388314886412826750252233123387202729538669479118300713183461632091136878986318584235209157795595534187780565830323885566742512844445766419000208785941502125498938182241802019311387307963432122840889069216153845632405422435441972232959812691964623655561669242098955053214522975182919786816786234735071900457289111715670938260196195295001818813311395899543538150283070138653433394552465432727041985159211165807838428912710719403138418006113267383404271400691785262989208060629494875901147348511372986817049311852473412990628563423214826337777385845247125486558257280273197752831693465755563170724663473087071751632778693915606429688178190865006207155838081873622398095627194059066850078133155756055740254070599666360779252863258881953597639759640453403662956190962544839110090382609401273208445321764271653846362995697740448811981330573601472392270812561070536598003791640111095146806987943504690330702754631653538446288137528982287982213960905396012325426414012842968745299584742749513388369915651836646070312931964910845217066877701694324691331223110626093823856648125827895050395120209061593162970503701937562194065531404538629908805637879331588579813122910012323814239025216758754318774124997053331385041281600466394470471779943424970333944003783800421114267929363046293109538088361180166671044595358070453881405277328766391112583884309752710536480963039982016215434960758898158673648640960670073725975873317138351846597481939332326672564721675836458001233213731716740258864561423947297234590540456499327767794413961224084668885444142404221774625485186353536854157093527314713720948546943106689348233489240927996028120890745142535752974208195157976088141892580208343322778693237750304596896513768486399012472179702093734793387409386550842748075855669187671519018345750399856688308339874274724363026864062577219758907867861631862586526592541558262899490592929611005436554511498838265553989596690601110592141018016391911593783258862812322285904758462799810001786440968629915117424396961038643874210354261352044825142419472375424263981433085589507308153716770352585967681171583192790374015410899657002316775818164577231811777229641028842749771795213251341345185735128210869702073862797916729251613049442028620513118196571337204616866090536107181984900733567872792991194219955288727645225773124864148336149206668085518310173375069822324655169135008393752024921217265704824160270201991078256776112510737388387745738834393944203178156649838585980719500860660704447341393491502634312545869939162396337069101794232394614484748907863424854013607291007537605239143077834599351615154417387967215172677341346631394989723428450571641022576115900276197748503746901861195164717658911365976163258975392280065753546557348217568587119482821055327246112329917367035778562983287022795224288989391707576862942421360574718141032133513583810994006479592707782064905028758865162775545368842215648015697993781354459682864972120893619142210559584590465443621606831681896132939358976214058346240254499551913140030524672927259924494088836906866314899149359874041306253337943268759933676816548131364252797264824907598817679225075951546475057684395633813545496902391719942045530290488438934734413940615917679964816192505950465229568925575992411053322388872280898437179847902802755262447131328163846079546950417117110228777656113620354823827176104734579563435749212431363269448472927742772417980530091461152519195638189785942336353770830596373249373737330834685604808990606986275521769572451264111169501749211188466405518674784506013517591355939913635602666350865433051298262368557730650641662787184066586236960204756560777232151236347042198809727924434618320764130065342925323350404916712014998410406549319361901400358632448924441183241377488117678049507229712703326326112673429905960117122177784883801382625178632158397960699296382246182517696811109479897358050297104147937537287052798293913800731206619598342358415159939619578183163962702497557636966686852678003021832400619311354696698727636509677351809033065801339086398611715830821586406254567120040177056497262145570644939330163064763376289060393528939061100960477063706551656550083328504383115358657493837205853009174617678840845749696400724569172096571619170112520128802635005357238843795960031693297685037943609154850223907656893309709424842321963083915619127377655197644394326759009895596749505882285979500301858521729359968239021077201317487052011036014810283295108363068683786276111700889659773772460381700144062394215704783614037710812098954870311191373299261395782462139322529217422612307984333878862371934737801921338176697039986735101595453547669029668838454079429447288017396045873587936467304626356234501515100452390019454704787867809355568864343706125643785565193699418337981815367569400417672887857655690958000333972163009721807551807383652700498547000107618780830281052218019426235179796303282196256828352412577318171250635990906661750328310367322189779497180637109375209993920771880409652793568408506383261306847183397035368383427657853244497305209044330607547415565617639174687102162241537934007930570357661542551759965021564676967708711764638956667371783240909934854063376352576546985356258262041475387214891297778373794421743557239975592835610167034168607688589912376591059822983958970727556006862192930476724502152228943453958513465124010693838799713823232080102039330190518020242711044769738443821253159637592343294247693393812467983787574721060827123750939682347709707952726401863091485379027475509205054036465450543870861253974844136780726364268909400898510129898841706954321799513728552658404514817140163572579771104168602581657471753485651857400771066926732065088991261703153588409338076474443471657910416390151642899543623220188107200123522550211153069675336687456851708131480181478146561595499767763174635970467788055519874181244501490130941316832887825947346619464087095931936448802193721518906347631005247023266888584257054930462158918726791289652681122069906478862627585832414079157131547827324105515623074537513526045223237137546050399327724284376927167952027849725172484449442944126699227835326143728103052697208837022574684895041433468496693158280626219069627393777527728584212253395031028416331146967607069568095636013177608271658855330910985092456290551791022444891163643858651087031881923792738342715748350594355035153843479929394688730839181952392652326035527851861768789607683507097575524506059768804389185301575551595029295014374108938928003201151079802564132971952921063516063412267519952238161288282996209818823380150182734120818279677467401649568403316739915063849079002231029500556910498211931644626364682546074033520388538137752121109724552061948402270908439148981826961753730722900032106729088504760579885815576635167417631121277852923917530808101589533683887741713420512403435402855165638732441026938757431894121115202952562872171814007645267761632462170236225702911967281562345393767009161669071184533595549722199854903536297566560316699992848694160488464016918310191128239858419291619372530931456616806200554769597273303655611034332123475736067142337281664759671521079305738227167929242946117920019053404925509700444108407478869153587056724248970239025716792135222569062947991791152548456092427910785814153528474922051511889599325979770876699028129066479015884130923073446996935356766876521340488120347288248334599697977153892787001785612325278643700600984056429764757713783863881985808742606132853580608024036175800392260922170568268209814719587825330149457462690607772814657078176086347773520437002741821215478276623141789995884820640405090543421014420419111125645657080195984298142399864731664247112195213672413055909422371448667066226503442095855880870059821172614535935030569299569480048053027565287163655399675289743291901942371451311772925432417320545662060388882114458150849455449432693152750973815949562674167188519610050350540673528773868952397799585440673929266829932256672476774398911818849252433705403409345889652976736588325496133026597842474391666583350957430508137554527637928803722702610507229404777239511052681154540234221096825460473276961339861938903011149641893674416499337986281242834054375509901768511642209759449726178092751991328807633229616147937437326975338982402860871503846759183720458055536056027237118825846175052169561142994581672245614123473217703516199939793003610264362812224671521491364881522931505185472984247012948875552001570713505856848802323848248127758216489179726955925896799206595970884079113419864236326123795342572161331311396462178947547984217513561935946468887787249855241265947656459689430107432692027920547709712142177052003215011443930054532172685149804193317248928710534038221015981532631356777673003708796521139127271273297814650411361366149030346786904519176153392674952051255164408109683708431110895116369754617948277596548440794981550264164653406015563924347424464065592062319549686575377392728934075593115585014521120592541016483042025005782424628868556681600925574721558411543650014062746069129923140190850705194697594448212280953793133859866297962578512384320144528483866548402574314433664308128096808289428585156066728247178929877745498477912328531113198134830263486721261658677425476617824595010285252498596324127110325565294065962540593348719396742395983601670375639363583172545896781125139446787222825129185628810211494996665188054463401835051752890349324879045209675571422667272189836545020777688614331424241818228468847417399030239202054309389247454539754505638005153180649630400470221026398540865182140961894742309010467762689484910561678664922005621580283544753412429741480968451800250365568353286383802686818217154204817654098306863803078590104388212056752078861113159194780458294069893245803860609789585022493603410861914013262403632523770849585158987417098150174559255044497781609177633325654386924812682368981734208218159909823193829851492943571412375024103243999640830097709668532777920623337375025551700733397918546432344495165483758648222291449034326638598736288736132829474987843254433050375004810121744625126561309251337927635366862453088051185343517388867158558306542323800553833300528257347975731281794463379781342846731541607782058787992239281040600139094588078158640886623890573409210445180806346965781095433475140666768294443764699829995547023115295789560690580588420906201668809025251913500682604555771772858241607658633163332402748310887026249088072399873358843917504270460349935191195301188459184014015776318299397424300620550009702916493553763091113821367856911112041755142752474034379202844475684669641272277856809088209621152594292266523017456547906333347566823538794671814801968291901454027803159518252771860173265634054458996810262714334761493220502210041376744737411239538947905734482066511563948847946140094082243299050173382980576434490523733781236996499131748582778417149195400283174112962237135221785439712278073518666324384824190656711212677848296366127907543563397858208860926963501967741130044105127480458119305393152983031405682843034803951357955688680623086779795992552890978182351575042179690423639883795219017735825948180349777021556555240072973535111854500699185955156237973081812921646756122499042637956023291211716773517188842750364050831649167953212348199081811109679830732344731760912427000586446225368554431937222120012047859991049349977770438133143345281081815924661911976189185912743694444444436403113618591760453268060571659616621202087272716808107888194144239940513661364939976717718787891748873974840363980303061583470009904050232931817154615522053747343367153479101007986166594779616550889782675519125958642382678851045315595397787932829317427030827232572378299872379047938692271678933235555209893544410442862449991070293676425652230480934261238570931214900506112951292246228948061547738050988845743637723440021459874158706923413834136686081789952887211837195749638389882539811671042815584168028722388930847721127082415886053553749599452777085958320195785008734057360955621836579753395737821079351959104569264920753533593231252428355647937525399999082034713143686577678744090507104062291954724772030621632071846762109949065205712674814428871003228406798484934685280309305037738652756057454126771315110680215534403986471340629836086878583791726251139681327492069326227037748625329010002839053327873130659925880300017985554544999213725195771111059486634842524919965939004874057750704067092312077854181857249626683296869328913223902906431397887736463030228935836316203256907461380327549059812535124274917402328898767216029402221347099198958036455663344988813583535360127339214542073806357564442289109849802427931842437473062913007865707592351453064491039325229358524353875696958276308555579918288990307978227591287948115906096696411420298052320259145434684803019059149186073033782349783825376280147267742641020220735794670552266102036597725732341493579662896847163558458131981533271675438347640420673811824119787846634347096167765713837491206791287815796583467494371367952228842054826820461478917185148545377298500313527436106293200409012773950788221201827063346619166168244218033770424194539436903602334111123414215635234428440450767409629239721365941655830000878563340730168577762681242361869603423294863306678608157113717921730813480717468847731934451867347141409405328876490576730116256281319452894274242673288507700573691107607656682068473669094187514669219588329128858586621332749686005637680487551056833235696873005925085438168238843405636758539182322530276197124093970045191695630116570542837653301898296973075219211318655165208185865684446685762046785034883319868666955930322567926754262983787387736932213797284856119545676730980909681752863266712323239697515368869368769527351193926098691676816501891978029644228055726822628485978013445384761956189717363803543615127632187198729946479241313326254100550157439145391381115987964435522596519704210794103229955065401216801688249957501896458512184986729254336472006669413931799084899203889783284336457655102204784224679043976227599513545051502162131176734585561712892697547029847082575623686605874916566104068068316801753342264324490772421848469277797903781924572775899841549866875293107077304403723355610917721721937500213818758808917625832449386587700437477605262842748736778863711784040105934252204891687750986392955113224593089559001623931678351753949460772823173645558558807492381745001045327368958906599538238727151657431724880258182495524510823991391531605763505384959553153450925133476139632257550869498665273226721530857182385889177812071261082644031592856387008382687992378136581685931625618077734202506948234804002964676325601105253428552252026985521620550732369753706588749764156987692526844483587112537591426719347396606608520784453133644676902904599251085187336740813936547327694247854743876322039377898478381073803516530629129649757610489152660771751664832672118206648159739602303970962940246587583007775710062399842474330182353031487245884807498888378884027999639309831514406748984889024391365338763759762953856393133445394122051996558640285423043857853562740475601235611077984726504547562875491812033786626011697136714201618110004655567643805832467807408402847250545417600117535947453300652657158817568507941889578430274220699436614766219294456098995804058585216385084489383836316060340846776482242436899192663962266038141714190343463348442763327183585819576844807207999845108256229042675218625819586336189447630889837146870597809276920017257462067797176322382465688820781284870772283662075886083517303210095460712601454481534263087196532328482110636229440132439438793199414809948061804003145969665308546014050684695892808929985899523597705435025147047517567800555034038054414473283141053368885718512767616974314167193766645498664306302040967493584677024505125624739589354013265907175090191439270213994876185614458825387358111820462918946485696166324585663325773723965652063502276374068129199921270615041078798257644478239592662807669151446703053403194703590826576250696105824412248851027084979776156706222454036457763858248650924229798289098727832161326955557422774861990727762707146944484728453053409177180281989771514177527830146831748351869032214254791888808470776299298232676658381804702669898002702316603308019347596824617472177505379019019994896746201008836557971372545892841187052715613883616297752951010155432777280632527369816596827225891686140960703777132709802196010135231611578538936964234763631106061192723281460977721550176558679221834197162803654897171044306495302261678535384465832733070018155157519382744284573635439121801093155126590404786970207795546698159819805979395519200528908027519360410337083061087274799864939293339301942379599170123049403722461182652893563820628247385085755340362245980491949859139152041304529271349960666372713803320315675993152574885328490833438245596481842165653978927351085398920293994532789938763576076330301949800245721106530692162368717184719301487392626289473195841644535932528272910923806592085495047657629520113047573413290989415584696680276609226002856577378689011425723887315923442161573370400888395951111183003698534587538406283962330173060294238369687401244414852092398336323258352203672519455994929299875520993034052753226210304018932876528095255751014787689541991973634703482324615134370615616605156755927013583347022838859344916029331151315434271722140778803794731684490788224973752637614407149071676893829220828925009453064004590777753311737827892263964663394938168812444577006999159420408703508422813133911715217386507814502158895269315589983143332824323603623738194485936097734277544596284015768719212058673378177482801868730234354563109776219008988193096134197744237983557450110676362005801587577317097905350090520843293258265287364553754240300775433150214865878433600896639586414572238307080175730726922399913776055389823909369022688788557344023042734481274826089677599041956253301175797432470554994332311954737347580083849905589849397597912824332193271924351212716655358431016730979478219962045197784927249110429500205260059555945491745649174770859217925479540320126539540808102749901462833083800782660395157533529561267539443670925612011082452316158774850697261961790115619945908527275706447683360505027414255947486435037408323907467525852157778072380408497385919326948573739694774407091705225780423399841453042694265873274258345633157314905404070495692585292026919812941657381626012663040581773639950612410096517577046821337886661012071336372552778904036489995142825468867201616217479692383465006495394082459673376819118761424209477439755270300547345613402272675128405265142298074045830060149352549819178442669059451210988780838933351651056700389539770844405071812376658594888928061664627580560361240677014665522261559044629693038102229267551253435353949133409157301017432572936407527918087520707029108455694189047872109276191720552577055064680828514624453780862725017699084249947732479887421486942638112956118972797328121178204115065266216677833918621380716875329943208420217223223843862728598504106454901661538206931288156349146042999058370511225462440832662051266609097335151016081787330665834887848657030997051028133880719178274442325951779871351381327443951143347457782754714197537628707108743111012338746381147525500959730734444675059144197442267657914967574024205611610212866737622826177901685758120776126224128799866912573017181799782274017924719399818943566418985810754842432892398243441190129921241129093866228203702131356848759167387366927894404462742284555755636746597876651222234112223554933180451472063162611903052833100669581311873986019022715424228856024483083329399328001246158455428454025163989749245024916560634237179843180151281947215946512136511561447581300565115206549110812392035819385926570460456898628506886812197545631906555644924398809425407070106150162838074848737037962254311217661199481659109200389903296218195623889175223767300584018188454725970781486575584092913702629348583952926586522345943717691648037457707266261945407295547944609417221936636875504717520418343049700683077060659752294846440916051639879919789677177432100482773792937024549474109253955999426497262340147532181201022175676572636750161920805512403797823940257205155211289618290579022014862543100184794102961931100759083694067421541109931730905451093028157416248362087051862119215899776373743313815431766729357528307403748321213755416770525908726534035009856360009931175275791178134310110704743953172864181095671220303057576431533108334098543936154945369817400139147835366893445344696109700638931888137517108700929386139580921717029234166722996814366822395405957359173617204741164839499373952242687932633746601419927058933890055727893779274884490583232733265221140513296272980783032621159988180276345380283211572273040781019522722520527031707102543134833025036417100633811829722062476040634265328484591348164241949581111092398422151266360469255913051822506188739239617751423980414412891419512362068512218401556948444712091884429476836565183291139518687629861987359886295593019024526883560152253199765176053726788758738165322938438784144508936249009754700120529516891550669857943235964331048255684804267493448762347897524098720034572658649398943360151010367059088248409433141722593719731867471933203751158179413864733047929885359492233202685714585582995076010210577566588444305740320852046660259391256091015217386252306566931575510659020914521285349808361801995889777959075247922713232872975880674247269752362918797242919553756001876924962672804075738072127829553575138715175423646043995006193141485736562005939529923329485387831704811451080432705542010234800759040205693017314998827909291332648693540802280081790780934689936539419758377324205072740460618586374579457165778456232144369657020154834328874087995592224108125437315306334709313843061103840974055287623940627845813818447736725925917730835784611776573702319408306542216405078747464120898606744970017143845843671521344848948120261023992960062298314575295240512756475819079385351802265992901400482350451243489270489159726745999931196054677455164913687950447064574399127121560363035221863231466286305595560738890761625363078135018768825388977187462633549371028972622045520258647130623985714052399000604569602083935419629703401721522607446512688370235547235527378804401551419348828708815411372566306075948512231272157430408938026425521235125170051442770230322039172943366381075530616277835044830203545410721056502370853670178785794355469730819414068717203651142787190864536968327036137840830710622898554321032098570928489638057969714306107032881086971377943251395369415109521386434515580368036871360614704193707694742670494198843344760462264077817577208932213197677939603950779291107381613361035836855401708832600167238068572959091405393458558205603419004292342256886770278421915579732202715900534229862317805529572178802816224087552343760711101515452821388277608672042183282550186316582065433648013507040897704042242337524278063815777511170804260929310514579768322152979642957034286168274572976242600512150116305077481816345037485431986488616862373324937432779281897009031915269989440282424961039075174555553610445226075017696144260060630229361543788259079337712438432828678411424135328615577818751594837776128891208362640572366004351360058372947170577487018254627955258950548893529742473115652700734614523382909291422393785024459019383832413592948081012100751745150386078986667690691894153104128046551621652212404829269000573728276630720284003287246718097555549367505924776258959475177615397108809787146078365722275734961634783193466725217004914724607015855397924752521698081352226810675995777008090943748822068614455915573568331969700007161858559262952350430355637903910426042217285287045731565140183270790023597622934608014284061074320678511915217391370807651102372604090229443614834281377193757988214052418979872667951630675698066403834870013218504874940033447237144842112780963640631321207567705137663280462031748542654645200138357501934226463832910415598621040665645427544661636102426245030333757543000222849990070106535907450763811933198109036554737580083983648202511052505515800730543113610044935011954995574049914741270056950543807431412620115554910043619468819679672182386540563422479221185549752244120490640703719445589318022111243184800908503790930590394801592157192453736048798993008879169518994121803821946762738343765696641387230984577912023179865006008934867153776607781343400855010743281990121825450306748726462747058694825040717982017032569584116877439919472493337254712355893920837996290784482414711212761626749217406731151689697494963222965755121204930341944609732538087216959792637305233786799185877789116912822545353175686617402439446192555832788209468225228895212872618226729915044157013978628967193342812621500401911238413481097079417705643041243274115783957176604276459488298761905382944956263052235607837716827310980470515413819374740160858420284593492547566310723418907942970572741501060174661637860618142473091559016325519145857411230398934273513198636505141788067872016153078210090235386013118155974663128805700263604548912096901683615450408053433772330901072986947795317709293043901690998493637837197629391422428504703324514458715235150202219869506094178764592648013043498635688368083390399606376710900224895314209417375646224981643705843272557989170050916009156488713513418601198322802234781902767533066388477973737004773607387089190857131000960782446797027576785948417763169250576893666392371964765458988524548087240611623825520665046934837000163009861316841740197562423549366947261677483526247323361634939816392394617392001727965641902091281808302447492255300910180687054848940408154153448526132635759260496654426934523563635520321757508047118242768981310624788338586053719299134159095803338472859920878120894502877917255797089023912075678780492006801552857007930560921442364655412433903304276226028109241720701211439519208019236071659993839910810187375512454907745411801969861477339631019305723845687619713729725998560534808463848112549924838000635879099734376479715119873708550410712820152141386165793867842515402668164493979463689579183781562197930351243091639585541335605515288976740256176689982176591208610900788954763897814724956538282897225806294198070586305867376584245255592949128140213275865180595364995464107957156369625832738065511723405653459392377296193286321569956469663106835579535739529757878649399410635986479391206641873261534557423199357861369295977331231928710867934303244873025411712504317144761865160589563486837225328071422916388380462314467282052024645465441494556796010661785870782210839011021417585441052063728114015378604062855469165714783619765358672489605136397389335006397909109899190879909705553348663498851160417186369706984197018102934776943559011604718880484254195104122584064092781706242920772070227187795566386121356921403995077268479766962474421886454031329791850421118603406574177771114878452374589429757533729448469679538291856473669111598107579400595345406368259486326579021745861311892032852399726825936570989584856684198339976687459116270668539477231359742837050561087377747808154846378531982854687478664236350465020402038648843204513106058152183707237976773604981965564001749499729769487846881345541898886863708444763468695058753658913469449099945411839611161912952993496000011281942127492026346784332333397452328111794202245812712349801865647512115319326750587554167406399460190356638931604217940170069547729236675735174761432272963121399766396593395920733699739637750302152173667845139590436386901453926937852762203477251599579523889551628548493545934585516538727688937435389668912326908989504654827712499353353026747254634528689418049703678369380792773175453433010096279056751754970995768302917886696685732016845464423377271394921222101937144567920360077512882146398765332154977461942622890690422546533508325572223789135417253695427863339164250133079580636841349076101299791462539026523955036677059300383393551954073555525849462516838894191320044034248590502005902571900173318909055099449803740392668123155992028268051303884132090248667484341387669574930930118640637964094452934250443687444145077207129403538815549528617073390098378030362278077865771612125032423211118867736995552298338886583356540484121768081975840743472120405456194220419787300635184969395223812525340777215655973378533495193036864810947617408974916013931474331318053047567936065823017502816499236609710485287720366279718799148618074642520941268396755820412501919344293765764484287416626278906204774774986852048495919355130255395990087273492333903467608150943071266982123872874244975441804231393627120859767959489387049220097077532617395500933946008207378969228850680494334839641351181950937556458781275261963512100625181227359503734543149732949150357624260689415093795226304204635252031778206237941398011433039453690165270467411613767675996401803817979450287507470853193883339511420296843389698684468555513686695140775291702782331362626146139357194868328362018387874767378628626378045348306823930586051537212431616765077684164803125722566449416054772252429510465243348448880247535995284001843311003542194352070471599068729613828275008441943430556784560498579675042504544928153393645085650390410420104522017365258579229007422360343845510672283839829956998703665703990364653157567289793505050030153450539628377061046950622667224650395689330485691851040944708962396786325305679063369529648938954196314844199432068141827051329260945918665167687261173169564171791788995884354234699213892810735980456074026758934331102178274875173990401917151926862629547520011592349968361513579640369355436552870273062774516688190618109095958524956012930976341057271150963725059896154522738030315633941010429082938097596433418182997637219472726346618778623680707815900055505966970722954145115046997807994987385372452384057800379313473331052983096817787250737168639918591318965163547557607808216813361812172903416298179597254462958277504939483858958324751410463885312674629851132601369534075128457260863719410324836024028939320836943638937987755406459297695155494258421050046371367174894796026863536941744646357942055064899839974392933168384042583434718994473927435534699770052010742104097502455601171353466328459328797410128490172503739510650143129984398743366431618071159441967067453423640200392810655336488567673118180527130783215800312356464260016272583683926606532659479617200032358078052140460195301221348833016150060388486195362607564030246969290436739827073920384943638111253503628637960914052275975938016070340690639535158422307005713657032217224687660389213692665405204751822682875919898939377364888432671908896862667433000896134806384222308476705229382853361621230801576632490292277287549468293230620352735693502816116784978579607762678560680916930158393466064367134884729332644933751328826064665363973769857652305372345983157305916294495109622784394409100895122948447813879650202518825362702196226032393822264828313256018341747221343941349061716957193730878713372562314109625778242783370964614504681024086507083305127624316705640307864193061458307198372849128550259925325347209219630508912806296932392239594446254052331246781325404888964678881168204176668427578187046352937470699495184689587525472395810587009551403672627643069414001084869658976495406463917455822636084769518196906558865229494329683146372966842448502135026827152193502949291570702724563880547937258419947089570697959004419268035959883763334713936329202467969933336695995836457118588845677555094221935173347382235701045264862272326471651301392100402556785133745739212553921117300804823356902874087822859366638826131906612720709422112666284407107052428750950778269566630328872338698082168444771704041707190406571416892938095884095452216092893347830546110031340373093898651495651372715949912386185737986206996105144147065264870946732715155870127736880810107392911852583697499308638567835712605590179216325809022195704978402539402490415332913976794937244744551125367697461442608831584516223663044626520147551012607500095497647985788495632903261842060975164004989597151261696658814446291650640373380967747986780516553871742516952811876379200456454241621654589038356385618682674678021383181694480279102511714324929034040929066641554462391421053765952303910713493828865529273827713989125833862339901478793104074218274772932296677902134978152223060597414562813762746141636787042097767589085850553699047211172340702487806066797598105267669478739576876341112881187840391934823992338631024178597636082077943191731357813182064407107863149795504855550967176060209166455081234963587875049518856095018349199598167110446520940800637257188655359436814042004259481643145236950756101637589773249116474749812004747311346909936697332762510150180722899964041596371586255536138267489929429668657100809846755280108280348517043114253660553238030402101033018410657394403873551074616361544527360956938044236723040919129759932804503745378926740123991493067412027849744502017723863292990266525003471721311318621202938946885156396217807420657148087612225180909367678438725196069651890722015047783281092151374889370577773871913118150697992353433951033336514431653964060801443766716552539222746274044406851072677833272447228380277000239127223544330712642848150314136595234897061219544783399267027245175655805902951926292547354644792632021615733082465268737859503395462493977360658210156756008035303090733718454490045233674972141954828502538732584974964437295249708202688703331131989445602148667065331286617414954593013548088271437100438661793401120136829416564366145447262012129688367036972088095981351820814475455887236392391559237872539947444598112759438630304834438280019113381468951373532438518904768689993604426450923984579188415462405478319359859514213842577560967774070746784170718647027235380698436898463965011440642830894800023000262654258481167382971996705523094469588664699661681083190618362114669274358308972106171960893221486413492439375547954261059510971493675833215588258958495113995503861188934131097101412840096457435118963392774718366574520848674355572077881528472396873143368492170855298821846879207222694616705289733602622998765681792765158009483234122659681264454590930372804874508889619488864408529615556275053129772141560431262729512019154298897846486123621671585980918859457673446998770999943603033549537205844825766766952716939152173799672415528883029904456027314513724091210071263599544960251387847033495169077522749096640651641306230521790266354393773975021630811143861918182724318345951094198888471296376967163228501864510217327870721530577799591305819584871769890120631474222884798038019348388815129574476744514920132684735414049156091521649958161330057291676089911387717208880725834000990840458781267265397611921986302897211874558403215173749963752738398202940574166752716887027146965285383664026565537612176887420273750782107354036723991152993616440075011044028138627768037790790092040077849176089622183899424470160190783673263576933983788707863413387413406991566236839320094695196872752074468449528067942456665016397182724726495629937324454227531327033943604803787182364538894918447756325204961967065875763789872852144166172704905331147835634360701753594909285767391110986394794997925593091736230152808617030680801978876716457482922063772535901472962134969804901284208406174860396895887105415347610766969487098820861489592871172552819148460725638842712028726743508242091057058923575322075765437733814501450184262988770666565791286256743941424062444903290374840551688557333577690568900288943842294523822806475526167775439885488724010337320578334966493867500188124729180211870687077605686551283581177912172072075063883290740168025608698181933683048238560094105960342124581199516363688821843087083861853999360530746432125327371302017344803976439447369254931437288053304463768117164678289719662671119284374118882868090094925298589007667635545993399891029903927903893441845855911643838717828341071577018266844371893790896508402446389175378092640160332340943889040530557633873020185996195093686691695053339418927999371376924211325280347189572038546703914834299322515802728316721475433385493270560571909622146919588289647958781427309958021879782561765377844123675332208934889084183064566268885884722223657647744669789094346257371661921362283236798920654335723278018336170048065533071068531084385194400316437427003187537365662711245947731936740265546963480492600137442312612979991094867176498838367667425321181187862458473211152944788328795036866679545900632718332430798569568713120543081689428866177380033911959440841271004527654505853253925350311508404786922960250861251949756572740454965041149990095725775309826144532980203423850677544406459692364550494284963912989566006823008985889518330541716411125439769753527955216520858476284290364418365126274155644913873608489594423892741486519258274153210201076981088566240776577439584543037750528335771400138106014334417475036352112207063173707909084366590974788629627075288025280808160378693391689484626754885826386085967498086390303059677920258445519347531917747927429208027992225403548693680381142176739815885680601564699967660783067930755007957902681123163726103665278080493758908877965982480397827056561651466790750310964907508428894194126422985847547526695094913799364238211218885462275271915315210830909862623702857710548532410331821704165782930607275791457045696496063862539234657656746495844387995218696402807416485834183764802557003198803492363189834751858535515109467419153349287284749251743546928174094379828927690995099602139814950897323767029716800875877724524930960198747710745918677309900391529404882313249840583646460170624193979232825342280356170730004914298972275902077987902684917357933227242800574999401331546014582103823835264617148866533762086774831103507609581055619630258042776862611899030430494694901840287615876564702805117476810567933729773573407424470034895261409100641591454249892405917521591863713365206020267081305920929476332481014065036139768239173529930471181860772340834834008256303405789317535851039048426708937914481157802144793964216344490419509945256533561607641892207950189037367492162114706734311273890779921266128732896708990410009170297523242819411995196284728163080019935753301767823411488337954494468681331383020349211068547079144637713063513362989523133364596022715453529692475696999553445383818197859409173159944404756506351256560111607279076650358260897430699427945565536575189716186453614450888747356310413217407738232880352804319913952415184036598095463084877476073000029173788734625383093679143113448434052247253221817136654771218172910959568240435716701614842041397563456672944865130688959777964050170709732634882845797357837128212062867543763679458425648004821800713528737900797299701092485735596218564474219078657217160205215891350659886143010220043947481486802879347944653808094036084735486705695555356420909031403552048999242427779410142874268375157019949370781903414566539742363079010558371073935712092704746056198893733685108186454824346420499986473804313153767919960859931891804960962741348902696119038825705953807421478936192957208526697458780504910114627290396985828694451217774013118863349630119605561132261463434019797962661690879779242439718759473060950687465208548240215379395711554015577232590246452916325307408939665050212361769445089490928091829664503954479837796704595005158578764269527703608621440921719356700765106761266293458054494337399563628993429195462123113657617037914071948328268593974065663103019599157010911220078131474641663448359434024568480751123280528031633085500030562978904215495781091125347110815681613406269332520395943688191639547710646784941617981986825276907577025974236521294586587051031005861500422469590430603807467367813108221194937473348394055355015821520787667809846247925412057066358260640758222664842333801803027726321841663628297164986708666766338351081660420195483787555055585822713860098445927666303131534826277190469863628370771894681875679216198238094829366019050768835918576032370612012276813842828185322810010749748156688573547582019791273651712752478567925936764663151758349639935097876810855408179491742068134130614654417856189984804371542640247955382949745470346507958044893427982528537582686388811069376358418801365824693266866566751127231189411370844140016940586960659672617776567577893568630424042710826351850940438163655258143867839418238685550001155753179039797950767328722602207203130306480942024759400003739652856425067714817834729901025808169751612058656687908672974502418381567665881185949182139985811986156962631596171539740408530143246671286515805055878948357204665133973434563392533593768827093260082867530653600688877224967036627697645761576169755371224195525844364604863039515027376917839597739304757350890730079168158517676348946287441307721051049317084934534929282078089218561205212650710857445223704619182157498894646180950976701093949922953196743215688343529880022483645251358887745102587643388376043835653045926947393843360640957437552340442539821932207824919541659305929449276557667047424513149186086302410075997989438116161722796034920398010028815472789887260343748480410636368672475025743179295518643369454944702400305549339615956610581717924679097287953394175006234013816719157680400260125483101721431776009915106501323414293956992457090485332558218863738191677413704262922484253373903884805151339469521304387234016508655510958172796652705569092245596223229913498381246062466406692969510836078702970063862381604136542653119834280572725492390611544949258481153410208420289618381534376981567335418684833961177698051746714735473874840936308172843784385128733410593016024500374844458166581178477303345436950042105232500624280480814304603798323051319016889411605378590169478012150587367569875948736908890897029459088804892235571579998160038928298090977330309288445720468697020434288612403418036515786661821652257852123017983810838265074144244829946401858870586527396016944156540432921467157040025471424824546961941187367288243723565164989563208894685575488800680327517989778706719931886112223811044245791303639021319225071079955908446559083013644094397279513645871666456429292510955743138659667380456558808954348477259364826792779355107801096952050859968008835580907359259471842757293548251015869815553673890106952440908815837598580047196700838585350780755820964673103929650662820028003515489742335193946857613867876680075567519555404769179500933993751031113497653486388810031109370803240095471783736448286974221008666450285887104767005340239552406617349554222703297949902101029532468432744676272886318987689834003573233361843951856531588456073760441045667329058098856908397187514694716258336995354567205118955300046377619692393590010153118000090172459718200303955434425143729932179749814054929803661153240607234713747954432682826891643989815543887062066563883081790021275520141728482630722410934723132631237616294526536244933832708809451647805635924441742177516538134789972340084619868644974148965105855634146979088997123866239506220335010790003168792825729395832329704281915031236489150070169845944119266567354769153147368797469703318986429722603570116607788576538615347526224649674970604764105601521463280128583484774803930153760982259666620416064059893152005975658529645755745195158448168911960827325939940042163688034552273729237713191027194610327499049000862179744391144321594001507688762914583920625068720466874771975821702005267782010437526342596921578685087100331062956895318940883241318728790477351015393829284576838389971079590169341304132671205190346258374157545077392189932521010167345371626789726653786749458347914114520335948172902756231181481164992117836552803690290407761926968020622941604463910594522862589277878598680704764977376556648896497925440346943266170221403726986493009697070008410082375631797668891450632091702358706995260019358727134022137027818115401561638363560700352881485558453146531764405778981343300009122100210105903049117535762975166666225209814821702811402914750792517466653441648137647155147539365194982866969577523160051175702863191544888010362205205297942349462762346708413335266061229850443941998587438110005109406122607735911147139604386678428131676044315486480824943988018718821061716816686187125552073493967643557727650125687503194329019541933029283796705131495089135421796822435197247343969421886503196687542690283761716771015236017884625796119917246005417829614484655993543568834515940590937122289366510692768811090549118847205729836624216218106414769664901138845496838751233212579382654768985932111545009569418795557781733172109079507223594717807685200110491502822183937316467891101495028587007423593908595903409687151532867980389999203966730251538135159077262545869010108962797023252052975918078287393212543350751836557181803153357442517987498742775795813473862552839943961458011064187631792716191688406589803431873635989644673224129206002986535846750664129543877056338399668560849737076090366106785121097335716032065920318609462113378581329807201546934651141889200606147608808584284970849483683090678333182577739515969024877584522121728551887565830288588396712669407664888936124100298461532122361493299395700437323961889661201780445576167892731720562899261808264873768586272169106461573647318854680258672005703384182607563122919791338742619757182779951023694557383562468585698495829689495812135898762829803847322757032912807326107729372473613884116136726593014959998502068957521024928945019451710917204886549221503125462002263452834611039057179912878001910134055358363081528251871984986322709055044811528225578196617416450911551995065267538650576168034713566303630436313864701732188637794432022355155603420965802078678833847274302320206825762084854353952319231181511327536097594681964885988508577358870855444787997487780315073724262115935533486662291996877855305979423852923048895283582618656735084855676067426865447742844809726789003587481708206935470764022768328119412955553865943407126607790430544088177138459728747035771110137454804184680604811018473777679121729145703722369621588896204455100772464745050753665177325406557358246013277983808791156644047702047327781654967371793760418245212213060107413948824546607586448227217152042557536453156759548854395953413855978682371073173274784889056783040455342365132090215644725195617108636181062439862651356482202385031234846504299644553225829757444966578060304800322644431583304302175183097181250392994084484792288163686451233614458843527223362836563086616289542833886636817896530677737494878189479414823073281200846669827913039234396065539261344426419183701836195022374005298860338631310527155444434329071682056963796164295351907237948030651434157743987572552169501502710951205564650116872362780814686283484611004058986402193138452160848371851641498457097842392532541038270588475300165335249822872786845426672182637831839926603572342082011126142238426256457079097037670232097422560494523341082318584627470225434181507899971989942021501793433748104426938404380750031336128957692711497563487064206756870796629643831423867190575964954753139497288870490589989932301067129212313331821967386322232071430242982670842468319461767619233588824137949631529809646736745075542195986524332624974225159737112449101709105310381499738178869607598725763305354399894704294679360934874724145921169453987217106876765460427612896098114664637768207857298727104258180433560667970965746708719532697697674594790924037180809085976376340086027604430596966415605888233289395366987461512156158851723942036879935200305951233020920203950382377157699487170122848253347197399907899643188662743724968575461726382378050604016322776176202410051409880770218606469558991099199373809927000316986006929243382599917728557014781490772803947768052398449718921976426879412874150242871327898693451380441518146571138632911589721297116381310367647573602763166616578220809161631372894665544787341029893011828880997710316251317431278587157353885392873296362714126997684055627598757989422972327520698023938735074305871997737378953500621158947588545731440185488504521680793494109377200362220500348848277341366597085712819696535249485167137027925779423174061748479502794908586614104080652989585090139585454758311721111720231428997056644176223778795975118328879045843182309775590880785370448051368342768943296069364413691862960519983021250349557345131584475681455586221319233301843462325050081188640431854190513066946970155839930445258599063627980940456397280922534396156367947859823462985015728153317671157511186868686139357219749621932790181977137730012447357457665752593800317234250846603939554856871785500280074038918124327467715210907526353541706883589789685599355992555852771234708720527266432210875066119162639716300352109472501334762040504905970305749630175604155175219641152276550656595947633748749760273648117828344294400724563587074804300890528965049408092230783803696577335457465266038203901537667756100540281070393492300457454437232922908390911848068753688122042609906877978374609205902847896605472804461965110758079942653824263446610689603833042205824374901469556610021573112923719837186448513255728363601879675320868724175188615896905700967865673701469650715078058321032227707280676250044882059718890489363151149873510087870102018168634980037689232154150052728442189588498510384233685706072964409605494784142067027598960765281134178128274727338403867751256568556078166235625126229205347714195596537095594529007607304848122980949456990324793671608187766039426962032220922063603383408144049312843521139356112550751301253315785306962203427114145982818117278698672957418835360981174575160731703439903717758208810760754226860234076782627688229030137786920088659513886017767383194654254578439800771795448568374423040750676709770990275792612241141553942763800649684864884340769968704989998155459621137568777334637613452267598183510628281781164561780476491849645924610289870567024443393352583931216484785624909329289245086662094308978285672884570085263248704747822012856397878770635055404453754391134841185881071758486062330616889181304165756088935301195346520041174773615361210640063759913635190868592503715371217684308477814484712127393565830457385034317159747715248825384241832873208626167371880954295456584371809151728424063058058963468868363938318524943296223119812779171373108508434364757686576147734931198985916137375046436368072027475777245598232855641555929906652866715317411999083788391451561684198721303664145653131149469910779640221948963904297302160857405102136022249987647687232883127811148478636319682854368631112544285798209152242432307097387141117167809285537451853558663734533378208053321595050784809365554756436940225455311173184236584897621999292083295396816901457296890545249185557920667361723510559854353131629115207720578016542057003164813717254386474879986455949718336300636482760928706312080053977772148773516399539368041951158573327338076155274691699349966971540479625672653734940981095224999226470663691829885912578522675618554594152634127401828322125285518929520499236477488322849894123588877530623399113467441271747745406419037017029606204016242154452497662432610954116551097731100407754520083239086170879789172793752442523947022236995303830323100448790315123442525873913800738154195080995329898064736129258728262006758898647043850184721378871818830130227388244288705421885152377231874733406669769117569165579290925975862523765015256181238580324730064175122168301432844258171144727703162377042965889898751421527270047025794117279530039370675834764528130506630006306708676374084669628288835588803580089023251497684446800680173760682251278216752982882968095973698852243680011484737754376449304430586442222234002108571501490256468072753026177267951094327183742802502095031104237543242838865617902418907725585916633052081584755816453103288815941332610338734161166038545740458462238694793412638540991303015568975753234345327891264051771998963527372024649578779816246661840102786636138780411709890890244349070436437658054989696351986875999078215473045863049120825724889867579877529815549631449366122059602577674326840897899895370054042301419959823299914840029503895707217792875206242346955357158162280747799822346279706035346818385865058717388626233653110457223429666944710762234676678497857065585728697038574392476836358702386275235912785786378402816511087540208377125459724777853171301556422640254088936195508219056972838544077460268208542237497397798297409901975484777061358159856390897795578446047611112406123694624356619952727781176516682019641993589428352564120893477758807919583080739768685698834081019246904929790313027983797018292022952608249215352426812671243224373289667812913405139620433553126221613396480520455068054654602936321859432171123398694381889121838644228837954397135963823475878269861160395589437871217077888307936548626078887887910845619730607051484699514116862012726752133405203542462937756416289230271174638957974931331020323726337669972997628994560571084776640929536537986657731999350192518642789925406482533587581819245212877975857610010175898844068873022382013051832804034629885305643642573595086798588707468379926653464509928279330307433163831007951100727110011487524017162846187647227677925959487326521547880040243182713880112277439322528720671299761827779202505895744053612112866493095699524992921706648544026660824637023323488679982587390694916034241224814540881259542922291979282915531796457876022562725760654645614786440961705130572571412784507201835815659597123040766483046698341391885793849400121112635336173127181546331312469149308482201106292243732873494073053093378967014803628287729809406451546706791937972571760738990367925151868221282394325001843217542677063043722357372003141571175300090725519049736254857999491502190641527352993983574144638685102890685505935226865505040761019853570598433272569997564181030007544024392567498450739344949659192546888676755627389210921045095464571618820202989125313780542972871279268912364516412683913931109454015916996190207859057981531930375967282144908104426788697550619711652212401164942228635525211509654729697951210944961743997819674875234443653769249140332467232636875493137495640343802256073813046197798721023346894733784526379312436449845175398976607867372809039846479707784326616683112477844332185784060888527030902082255207211638890005490067670365686041931602634929573100732222852954543810238210242449684368780759524738263248343468184706627921122038881932852428748793785598336315620387148097179399413840224163675503429923948693276490147179434394856587019369152655562422467704057415865145823951221311254552213988631930685864109334748476773184130757179590716391270675778596981522527452856215423387358308983297397586892725908509290974445356062726814177196972247463660777423091078020481062415956535737142309787000966634279000328662849954881389540143531356967568999795538231974265950832644943529343554137696688079462184454229311534047937250677716264340404446130886321749172037755280935288209154982497733885328211505704843339036147334699860990460141305399632416141015603431533706424878705297264919116995610533378468699569357672318088962717934590580784179640344103969530963189700982609929442157588170655850519006530392368957771391920660219811009937738511052222980459227658567903898905391277808475796011237364404905537593247598657188547514296400958090103330795422797388841986642058277422690547171549704737162808590367046700653588112989993466256470283257159311952698115704892136303714853621242381231585650251885334736610686761644821552994457345613098831669744604691035754717166697468237854664583071725968275025492706478671579554973361029159273544566838618540462901727207278163144452448092150144950395115937206607990240965277492501156706467153150094107818865510515710524853085910907587579087209306794295080280100268917590417682172459381626633150153729234786918486070274860269547196817635774293396223808263542625111980008885852562021259732759491637065080221906343808618035884202394049247666390464298554475046656920479752720097409795518498462730822771010877430396492567760409579160233485466466558204305690838922856372380123855952638043895606940266326164368860301404694185686805601946485536352540930873300980069218075601378484336454687610333610793992139997283558249242200824931593117482214645058853942442276486422660829704085713050600886153718952870114612471164324795796989752107351786000125632825290486428439880574373377700210992378180959760444438047806100744961569648821224620497873052702397503490814574829741931248855742329082534024934681511634921327063332626423920473110384690246417379941460601616464493589167329583832329811400836906357707679624105734021126889566645815961706740296510919743447447835402984147446284487477082668717624503823380347877522611136959277903192362647205649973327531749060696029020123588537882060637104637191700719379136643082801089245863957690170818787842791397687076978686045935998327032265848240293469688940278638539121922621200519393522003889213354791066014794068484197350155893685851199305914112469418340074104855583962542283491650060521465393409804278146300599535521175147281840349978972527343875491586015885225411165785528438766281522528348249318147817767913669362310114810149519805787840971942109986622111400355961997257865550495589380351032061701505029288497073785011656127801425290476861135627150995225562573472970965376901684455404705818334853056306643477840459452462158130230013298361669753609513165605185091601161145037443080646375182268315030920327853795861871124687879738421541345753236468438233229628714724193161618304370172906409071094588648299432036646523693590948683482200764398023240433659943205476378084379156762128821991259439304608475531081566835279018303010371652517456404844319331889830476130849811471210188745696563796014726322252156848552529927219091823393556978910369934220783718672291032846783359974414184530289652091157216031985505489241182419704993540505585286437047458017176244660679792245873583525679504301628566464729899729480054177989323682428124791370552146147811939881601476919422742927516229582648541590443399065419524924498241455144335228797650507376996647271504799415278850906207064462177875825354451030956059972216480012895757843860641737173142538450519944218853220102967939451712834788158063769314656377497699056355021873164560358011743620413745525370421669980925275220669550222457882836365952547223634334692116500434425935501784197537171821313305484165464884383198420145860851706806360427514488144300230341572934246061524757372732224395391736464830679272032616513494577188245508975609497549687880537698812658431508331252562650692781065992047309700662289628449162211667320419225171757623062213063515700494150748003024540860702723722149291360320983113593217915541779753658704941687556621383427540321974705350653939869216906006829327053886934878151164937358130028608262581763798885748802053045632012022830982378807825011544948775433961291208747601108060418958759412170358723595492542309678396820238972976244518161422579451939593091485191377617633276702917750030894723859932990189211639482565608428542293552069355050098562562209147162305481742582298916956566685473205505898005421098365835123340507275399833494973980655330373350252859615268364525500547099666613517196016472994930641575904752868366252746623047785422877210681722608445505215314020032824866809857226593003267523893409758946977432390790696057146581101969829518320278950228286980912884430557194689345210598187737181187689463805683361241653379618163903684534692305164905922337683868556659337949767204155936241982745734777356144204993530995569230360738402996232949833638967108097408393492605511282688280310888388783724778140281839505204044836383789406202228611153037821515600881789134803455764191895193566937923793621721933056760740853654539692393870394438020157085746710377784079232735277079361409266518165923136334760173398367450376863399714939526748465659731919997669407943769285635332277567370605614440600800006102614523644623809437960681819148820292415812723995878785644363359249531785765269277052229901741409799063150596011128829703206574386131206130310178589169322384381309263112803992276902366760937840542729501686137992840900692909737125042960440876462699904320008026628050616342846821953468094586915334819574511768846975048735905815818597985707103093595285321646995954396871410926310439795738540330800506207125817863110869277958769093981357674431635848402957772997484852423090877779739812285493207722236235321329531255874123408252040297468998051037227027156314825664054195487773814237190915658429519444747899857543474792061773639243125163625357108046447830312378539927811748616265337928975474047234373319578907696019014806660159489553178308126939191532755611666339409271904433555485557140120375619743851679539127014583678162477108417398408500036183561292257372967232531802730053216179149132811475252136738730179005820370489237187008196297877342887580997839472209650184562430068733711027782466892838200635876449201313641125260405400351192529858830047459441310576459775648982037796573883835803351396883931201964835530731747029754336293719125376576375465349472733979061504414814085722135821809031655378024152638365081232005266809347737192484728466197274359441841920801083885566138632093854909905401710265364003569422852077432566472302454731266784567678143248900588738512073206294531542013905954579689965238302179361795307983467980578468253846203059483613472957769332315409414740691177967197090484984155222991732717628007467066085862666497057985470110618282972753782211075499998127424800478607996994253817965420135966747710104962122857338031200109509399792486149615114781750839862337833119958547539009717848310105502590912941607900486487469155733167077148178002036466924536259846240944748445108481955009633634294254808102225139569239705755068601245612409711955940747275039887957167863109030990747648806284587068284665419182072289591989550909428709959629641688361203078767181829631136563836355463682199560404858086894967403242639942869960944407091968558099229880465155386767642487222535705665234113745473123246942370317846653626169556718025646691852255952944796691723540400841545831375631976068412534215052687836562168598834700708580922902206561759059126666807818546519338524635706213835498241941119593300528375571363451120362718803129376040980544237116093714305712331689115132364231093089185021432142417286271014631649781837980529287935451382613747784925291957844594442150783401324033340407174216412747755428165767578326472424612494312972810258944924222155517415220415394769256714289125098492757404521638556583956012430217956502854572489595042538340121327145111577346911104657308143026341691585523414712991058589566818590119677816584283505757985722622917089852452258898275318168628213382636691766198761890274668003353619179905966164731693744540409323423932529406642795775067261280957654046422146800724621435906487389037643564337828020839975597053908687303456397487295118847755925378869091121525549414616372180842731179251367746230233320470637492843067433589609364910098533260014345655838748685305614598329043359999710209911851962821894594080248035016928325747655102175711150825329511128538019511948258622497867950262161931973892311824828755376327838303240545231831218190989600817616911570942711025587759555271151403676740960839480850950953198912328464999386237527594681522763292699971607412506322037903322496416275199910079225669318086892938194700672606627843507434733161879107410101775844355984532805535607616753419248450334451787098098158633746317345011094050969838056976983746271737237355974020021555082125602037953679191062785504288179227313191118374338553761546343197231188993048435085322760717562052987662851754624050550048820455784284893062241295673130388822842938963124270491160415794424189470664781280379990043771338327236617104614324035897396694726410423710663279315912375619377891534642155359964677976644288160820146812275643728482649013487470195117035694179863087665823903965625986266086719715616043587686715412618242721724941537778742009646730689279078141250487479518224981262850280607303829293210988329145456146964639696107160511993127333835748939937652943449564982791525552881039260155273191533192958997203881011266363494882451356410491179283019354054918239449647191854085435648959495661435168375338353163237916847382759302292926155514612377669276474137199144525037464897522449506322999241700281128213656908083706153757011186293823521578541868349179471952560466643159881741961689544432327309480126315678827769346846119976944308039449882476773938305667434893990915506402321156875404452135032570319633055922409345121996756934441051390187969501216839131946782508997459649418302974615534013131120537333979810746364294830115487325219531972963166912519310562478945214880957323803751846945826427167298481161424285440589606858738239117687891386923424720558991293932590096278668819563119031351123356244538771115800154768913365268100627353751593114011231318641310836713425424338430218937277901232118466567963989012900784724228087322333489248014745345528838606512212500299604832793010136534739594845535041486384797410168083025532145059171599336721167203794865664741965324998334526910345687999650042222291024269856036685403469950348708272668529459253244363084400976886209208263455713163703753810825137371425475347803233086560157413501774888684525391233445204967441972354890546727078829181188523101298232559064053776563513913133495491754443063358580590241120386829866743343127661394325947173759107088944129383540754414979416650601876568694001538835508620091404813674449177576839435130245909575485817795298993955771320840022930181372897616199757639759627777478780791048774356462823845333426185125288218269576388070588424899773118726552350104107884424558442002979021643387783382936954570385379472106459160213978054668684133080051694500057000875854810530169905238357004975001106128114768048863145059717490235793649431052435853066282026445533351223556629047640404488775222458101334343217205275918823124523685540637016474222762471685354583096405700376898461007479372767600652354035195840046282514635075255026921660616234171988559964163732664998762973933952663892855680106557027860212443695861697720760481699243104250169965031851881290521355415124412953508560131101251347560317839473654899800798880820421989520387573189263598225274188354898026216732704741145208536582654446864315247472114339824309358422094471683052334224034423851910018252981934652030707024870888927845875573441619266911780387760516868187181596691667005929993156668685828281224854796932982103611509558539716782642699531725313165359656356931245850815516257350415829260147845136315578256965913900715489055341579968177314374448079017536545802996963895789307348736134539243961669932589186878402931683665746560935257962447432477874120445427452640988052606036120959079275986065124317653175922816934102178453637948064636825290437088140865963216637154765653114760679972047260744485900999598481410500851610759964945431957721695987449899391820536056054068904895416462991869840563163124529767156740012089087711652085389871064261996165207146692269803683377721049289423407588346526260028326243417676573902045308419524763805776383487128157204595832603397083178028104352485298506614329909646814868881652036596126647157270704044850171187903755584685855116520331242528203901943874747252433447997426488984278144149110274821166642024166125038418663797909574273419923769734395847350805385983117471388337718300420280342893915019694540727020318307034976157178561570152306577693047422680159417516590257910163524928457517042344634474700528990272642757245158344052735863157503956050488575246425466996502297676142805566032008122563086813130478080876896771466865482548422944550558057382054781739528306057131610104568778873858310031225443774844509965463741972320626677157170898758701485568153868688697948395463883248151406088606739322731461032398696316201641909090141445260924301621437605769727636999180901982882298399825418853672105220878045911808322656600353324092381827967514060724364590591813061789920218365583986973267443962645499682708785627953496254861363702146965358701130446022713293046840915004205470744096710321176905581523646325864640970768328997925919583705345596080116713722065542802536232448162445488742396438877816113507347883851415918461624176618608832414191202345003616748117991904667657575112742191282690633174494232826576256301761346166610393786685508983765115449056837496142838991990418487627008935221432556680165914076693163124063100320398361633642584462504746900864440782143160689401988175925784356193909475406768216616167556954680746822869623779048790940372493024873706116407711035051674399542738694080718802479499023062530430833108503991634629873583205308177783180475542949211283250529651044755105589179369683107205874591676586396682684297588473910658302084715521511032271202732140699918219659449697598859986043949042172960969925731077975595137531941676714158903517641538810661047539420535369409278041539040299421870607602481504943081378853332418867273853077950812010207421045976337171663918824503224094842368954778888130725082831419737623281336485530605711357567913408487632190953217484190441101225683520844668784306052339936775284544204591287132964831609764255675088442413337115311112615241747884565192546292663690158032006917743982120191613266164693825701892942377100590341034135660636614066288098972964742854106293598389310229021017223363408364121694988016379432274229463693678326447171277244117616306761669409998592718361389153120222297037940315726133456477453919833005508995928526056908623234271362025597203721105184542496847183778299928393459985101842211765258309519848793297703113163058840210852251295708489836780632045949322258181652946094876010760735863811668740653468803356397990196867924158976647855481607930769821761263820897635007944808183118352227096824452565941592996108578059857913126747962012866854966568916538263028502738758693963120847076388303770365705810462450191125749185889385723141907875130310271518410464876548056328546071796616228265923015537109368063225861404377287822770503622030929380680091841691807769718789471336172911464797840587220959262479893404713387404282468685845091778885042259402782693169177047237704740675663742919316037810753023482505814978031755079095786731535362476812013701735828372088222546811892831066645986481315374027397377648725780629894490605788410841365735527209949700919110771306983936295997764326782420198933788578390730813051054723243096001422882198831659427101144704669864045393960511561807169693457711712059027414939217390895037983482085362930683592730631541763803445521896176098917277098789038303588063655773593689530419871866914507959495580257795741369764800039029253343235589492788167546964213760193794268082682452164211105788056844125810452016325126332674955185231162101684813784276794613159222721033594255755900121623935563916753546094652779733189302155667410768318298454461825672238255186971714705420513249435644475328237359537157282789827996522892342978631676957928849729157817934908269887856378850775011823515624846890692001278374818333496686780608642198501149672733934064349213294943669824878067421566458799402012755800103511188556634204385757393459478655277350740680713306388997416769361747477108761684394298484603233624767676944718795302753202312435384414915901580846038018240335686725789893539107234416216078292331150439525116715836223285444310711809849915012212314952310858391412877660691576972465327696089903564038718338873631045179098612489347668736435374702908278573547949122185893016331258343558730595073882688258449709686959012146049370163629361121217006053868304798363587670975865022911682444091984481703490293227648263321814387519807776300587026998146301359250113806291912322480686548044069950603157611654129081292985631915389260780514955489470150464212813209413796499707413216600734832725860838007414329081273197749150648714191296485525464243495228507544408674705428757375623270234971213105192653224291618626134741294598707744744963201704818433255882138057043005546521618219823360419151125963798810902473023267816302397338843174961679125536221647288011085711919727979606256082539355604814094170339663030923381049446361177154186113295054671604212395550501189710875412767402192914316216733362382967044998783296752658598497766607419789996776228551231750407781887328378254786621889479266496730172501739200332801761527916937990343107082421398948728904726638348558868232951909023439259682109505491062368166176477676770277178435098928921271323021131258957656251227045416088450082957432228457723938203963512562599625932467743847733146135184774864282912292490106885306081448793545044984672847701129478183022406732180161423296365158771692220420975699405150694790051878629816117099773681764092457332794955819548537416933955933029120167891311195716806431951884068640485978786789722071500906268205756060585967441776775179470995605880880034420210263861413053414086729751365880145194180959398503138974670319561970568716881422390894521211471373065556407109567930100301166692353792067006259113448894674877995836012235359279690284542667202944912652962090403811103760056682849219024467138916569493385684288356661519441531146859945156141684729577382191882142909491927214483891127263188229755086276117668161621712309340009736140687592827808489026041221558541170908901055817749011950706225975028571934092681643763926541409176187001806299612678816182449458491824624059710581337320513238649238320790182872824661618677937761912960812484779499497797926566240470865892127550367165792243413662659077072881485527573755421002591733660833083913929753281053037202553734852729951311165664284334338887449157135530227199825277286209316177751477693474662336264901521077571092149885013145754244319275861356058925081199347468042703941626099435747627979974022579989091229785135937794344206718198584692785333135682137346343984529005747088843486644984410965209183990727941282439378450769249387337700005659052797377187120921303262400319863914818411585653624782089019928122704709878074019578897742019878800181462982535083161499083953351433040001642197147445320804034637160175263208875807323630961434019147804104134194255018939162000401474017091456768829156503482710733185582950133854376442450335173667770842877979577820651402587681586195406644113372090363506595822272075082570073978082940331327768178447294197124467156310482299341766956916581083134667723639656631668401036957581492615073919565969731361371140788240787133417636621773535530791173282041588106157842067894132559095811716304662845502730635249317916157894563585982264366775094264901015697195974064822360682768448730484504460526886858612472603232135251873664620226172732432965386554219226776116459747052835808669864950144209793909878008414093074480923228772088953867113236593523661610250155569084720457821530235511419050337108359651638702982244833123996949464461895561114559301649652837571930576283507070773678905992387220810338688025831424963675206638666117816818929068006950513585791023298756193894091245393928473122449052987433457559337438767608597287539136889711297780226903916005301355019550202924020937399002787673005206952494147016821769053135798069611485160723091250234545066808626139985416148332110796452824469230635587196902423281889465678752115981127711371794852624931212200384580089331684336807620348366385776500849369331201517860891261154790536163244468527907384337579154514961626919786268239866728021590824382751638115802061944881121135543568947658334785671303378953188423097973512136470545320647699832972983238232954942501028441865650305574305341413467829872944105110351986532403461470960269884040955351689402398940611242100065811556158492420524484816788083904151586466023359887517544032584284477753143053340364317363025928604342352186441862376276217350340753294636369536921656947635411995245458178259159212029897173495490123038428153180979990433768260177144284261449459426675939619079344814430129107412213810628395465371067827490582835466459397363566765662034195441751042931396278496039540564257331242692611023391830583797154749911035288671889616499094430593479070812607063553158367788231297711164499012747079730240070043459532557167348449107231861525049106380796242620376444892914153117289977777554726794683985689492586294881444955934972909469745253170318180247126755138510406165472386138561558622864845890627069540847701711504307106466145252913170904502157844324221425676771743998612533137243499272912593516742090687608058383968343311087338468462565354584430403483886364025454504907077568695651739081162433716748480904405970361812385979432447466677822344870123859721414586666662888072397276160513991986050451911027336310033421793805775496397063863851862827777497569650130387038659124262963255780121228968764486662702898157844386890339633444756209332792290293088239834840677965899097740085477257997931245320173956951858237582446731442672968368922195304831896862986118876548625278718924988348774822272669976403618401135577721806340737225225737555660809327022381121334544459894882923403115471445976021217615146779304498501211013868992860721881419123280639409264099361127683202557265791607305960075183092131350463679943912960506397164866864337422587201004879481708798242400109552737632055609177641509672448236758424997002936866301399184806346811002073351765510286129211371769516017681366858319142343122711697521495989782442204207688889894281649315270470089865300935327040749204417389109137888577723054509434254112018403108807728316025657827656335461627640452038849612372851631234155372706832231318693664333639232237537139263958204705729945234154930765920827679574321585862363926686372769298528010781456997472945003607694596503699205413841156255976293119746476033618790344494019986019277359941040062798108962696242827408232665988183536433019241547395326433205185138088216414817187659983426148578313501862994029998339770555415996145249085150667349293494920981635481059715124347256256686996774522404395562693006581915955615820788230689488705242320223132924428787502436123525898556063368303661768549428446324960267707448911820235520455465604118064893209084174091954906445544739461602017820570032260520126704501266701678686975930405828070526747201564245416276015237424786458787758096933318753522832696584820802283923768105599254158405171671012781262466067832889198918238415768989756363089705387872244480149648463373548963925962144115719294359392273125854969844762177899619769263071375117222117656894993167400735912899345248917649094881654930313369245416793346642439086588196897575390656699433086523586107291724697193049540574994066604107081300539546288856162454336183308005734276453594606808859931200345125539226190357710588838998697101593147681393663393189364695052367789137663697885637040657345653672138172753996992888528328935439524088508701006083571449283992578171538869649751583004317128373104574660783722074997792515331899246463947150642252812905357826961926083660788504626957903774398009900343371236071919079995011084013859692503391527458681823293648006717231226245666651242755870388031157456157825725650034693595326911726878855878392601596393247794085076531327482862086865226372412499667675257672120343926754883494070563087661623887324664619663053019348566382989288862074523028181815220405760937463247603578794139031298183338923506533404492734741087605667157849029742346242542994360211489289521261226090710175248404786842845756251167980122512126093462547722772535498626608999819601819023994304763273807951754638203914929700878691590900963213990953163926432038536971420943996708921222194920751176750350755243960330109400046965270533716629496280836135206622813328747123239486651436507810705246193927648927260468320685749509752664115537900139207515177115026496793650405990279910467992298015217929994281194720037934538489322394172696727044053511755273986801364010661126998229101030926322912105699278420612497089825801780448563600467358163017516204587488096107175090506458770276670702961655675538775712848733813115247932421255024277270791944510339505917605450194879631085107590087997059840793988859684167277891025172972631305353015974686556690257688883212079990773819195980206151189562372524776926419100566999769782390131981758499861315992190112268010259184942764739016014546433969542629949474511113387669122418443232576248466246463157128727995382039580725429831509808945600739749652087282658803855939994973966671248549929835595953038844247335184748166816206784343036618919344262686477515976158906677322159426642299361886615290300159566048292561505296219271865392704548115786103305438293640791330074541825120820132334681898621536219928005175045382712793791012397818962550175473088590815651909140202334609568289485961952753209042758747793054240333743663837991068824932462177809118634831016817829681218874069836423177880553297940002580042322974655708102456486540212952009024268359683240142761253506644319397225942036036056631593394427558552163379096035025529620234560008723402195379879265477171629453682286200688176942721715765958898354775467459648960158904622813945896222516914048779154472887189362809588299357457416816752632052931090181648880526870856682067419034407860071226515033381699610604060478604668249863983043186836569297501546011697310941440250760343114429383668499483387784521914556968728970745221283617302215820548846095571762630928181964500777726222955994492116311370634301672062405896555250007504106230014187693379970100623797912990086229677929643440579381468481892387736811281018828306405717059957500313312953281499494253010980260953106740480829829364676728817641563861700242903575005115265067899582063406839505974648759307124402312065943916374907142398215936764073212063335558212885288423476657760927286996447397470824392132160634659821266904497152076679529672955509769626159209380332919021464642367371282931501218614027120777397367471168872038549234248224238083167911377482851224720043694146717337729124761138700861328698566458918827575770585568539759660741547958869239607179765462127424651935845087603301188568287921429738687098576097125872830377956342952254650925256435546456259851205517340255425356809910427493830770207564289281113377243430205366277951065612726462612144049093590641960327281771391501486350176258128577251452384239621278508229191421225766853227180066877795585545885429421335198415652857724475701479313093812938900028876934285906599635035101749666493156715810297953199884936208528113168241125547845891420545378362645727666373689179942879378139777372564986609033613378739749204839015770245569972882813213438446712443139302956726461764865488750646467314885177477785367444892913932679104060453387735043800892073087072120795022075980751645761364051209520839593402352901681212353338909331708664257587338408412467225413087452151423671054020673286076886528805868780529226923333538346012479839291536796031795064166293017805746544894696121834501465178961617739999722280391231300325233651468744494442368729265062462172300102155351908708987814005014873368643593527864338129274382297600086847601288005000686939014024079115467714235060125013562545611036445501323942097832984111838973635912359120573157436991157065921220753712772329518008318317304110458406526046907559752633347405767893021833717330624433375262911635606415296857572146162636787031145577070738552452018441665987160509414958685718033419261258292027015596262264655821874571932113051850989968667950227267886809080937080232660218003926529737702305989332634887068423393086658212935120127399260719186348406517228699894870960048785137020249913631220923193427564069475890860476497703966145439707708839747402755151780871335667611491695436344149857328151023087164451796692078373798897356499026728969653767221751724342740424272045270285033159752819448413232106523677495339497588237675426964407451430966618614318662475439671181454315458550004947705634066525789491782627829834478253324773392915064345239967911219525638598524531448620450162248258197532271607918662488326181118713838858852641495521788438813911716767429222504596832120751122926995581980962507590322023329251655747493024039060580349353172614058250888012418271105218815201066701430440123222153270796348202848987506723690158089729856394766646944258660555162053035972988793125962627784898635978893701240083706560743577441225960962312643161516470673454837608419676221870075148024945735642713052819152712443919340667572194573222771334486884531903749888518669495094135740856581835003593106745928029760027485500679087879924753646741731607052060715427534375858905683047985929226345988984033347625093440708755216317930176608442245748726378435263769553931050483213697586211907328447937570826083123789352462189562980769302460935007397861125520650537061628320769416169280169435938687044627867652846587294577666346733896593929974421806069943759219047051739572479360529086957830840169383528905707603404206135685897224125319468825298807096465274523112465928741655284047086243747023966133566063618084708584399982660811988760127552663168856321129945749662487358803065364672566342680157582942608752692587760380021530089636249366035726734266041707162997037841295529084671598996504374152375452800017193663430435998218025072891273828485757325515265960889454408586909601425307701041804810620466127130797924214994823576941889438187642223578282758067460522890860019775006573114173439264234004558115167354618743771609593225681267496290108691338045739620992962084135345568632395655811137756762610358419920687020298790509708824174396668164855900776052095819525740354475156952991310794642170358089338101683795580624010606276970541881169114040064949026754106968976793320504811256538641597198170634130489038308540303700705799721631346015711884005042204031873203113610798080812843980199596854301196173949631253747496972365384135392136713450766367451216857214857022993903816209542685301029811150070599105366530266917138346280286341931481945843600823704645891032211153903642347024467376729903972782488592686554878566530749448867494508877107510619001054354156847634416932582618273555611934440756645248490669933788418491134623375057927442492506923103896656168340675612607881908927900641529354568541257261682746410001692985396617774621852227436578021710529852315748328918847572283773528303262362227760225705228524218127455064052529463841039925340678872583766733428242065768542659421698687255166680985492592315796964814551211689190999921464526546608384685753844333132086344423083372021037845837208076316604529468725379111058103182895823907803844272938194910482307984040027309432911135639120838271310538064806416723422659867850046843755648459821477598370279328421919087099031223000976179227249852544465383830271233224088884887917383865958442745742912425879008878181447285163569762527213217192363852532595991940521105447865973211504532508009328568352911129048338412498448561522845967260235004413593898586405420641429038521210033672710614606836852293002689971272882235477790664438188341501468526577685654698578112754586106887042380584124721626630781377965738118684597039101742689663890773733635307178185001494247411167393717869221554778319730859171167098336364866078396855402320476097967566864832312600042575467300177427974813467448558069088144814776750668085438549057111773621410459310576052206265673847997001553344256557482987990332948687935693952160215109946805095402647992431866350756672329238336501304736628175839378783321686371565985239197700044377746523389984164903465618653017762197699087346505421182278787569636137461970238705886095704348072779649691146540175812570227600478327590832266480313879076401586893118691449936243617900504067702649541113131281284225209557036154799898045112203916723778667149449586582368044097976448169002422377827136441031942506523180702892246403234179703485239639136502794714408151005509053658944440006944271005418702179557868906864218409257078088711909170131865988026923832009103233855728486006994954252291587781227264329189974636452648155370939336263037944627174062931592764713697350715483929978317180712002294673314823894070978314047274961041249458256851195247782739031123579365839352190606929047977647584486332862756316675049406060451779776982272217341493738664473081040403072144898717901220171502422881389071600494475907699045524741779881843843280355106782031920529133247276783775601821375452293547832880652228013521389045793496833428965701731284853541638027127278761919401142848912054961893074850619906763222331686808479959852638642133560783325730877234210304883140002917712854410523099829294399653622643671746704255522070336666615000536813613479245306671333182026959657276248649703278283786257752400088897115583971185003626869202359331580659971622062835883655530720790321556492505944056074076524629686126574534890306970226867299937171707986929975440118304527651310109893275932663376827613801869241656864768531803886635776931373031059258357232474434587804976680653157391154360407708578630828713237697830973066411809839274589167370790101149415091171049082202635661531739119692279100426827068307650813300682134239464999303472508334206620556220225805534206297728351386510532012075594695537724517084970204766433752181405877807494461877482711673588699943437673921686647631990555725856375405236585976516732234958946203481306278114984418303679498385203542702477522945524469271882981169013567992757242173172738871214035108916393713349385861850555461251152642054559643618584255848638726512351904891838578339529908699354465436865374428796942049900924432279204185587511522551780865573732311473302117693878653568854913173312412187008035917890683998119809324689519332238839932608016697729675165066413278139472776069878344995818794352296998351628197765843279510929172536395247786304128508960103349840104337459503942226659638232946074728778836192918791070994356979795885406409627137836277888037386934944883746457863706724676185591708766954675461594374647143824921183154828361034448537903555492667985393900965238108109694463635643188666737748727292407573105058247978325405120355972524983569786333194274681981846862115386100954853342263810509138698321681973156521078958788658390700125044470824321781985011327925810254668653928481252429650152139464549029601024388618238520708921429912393108059976677431717858069542009871486807200436125814861180277067996815022846801557509953900686888762588064733788494226297649959089629192262170823558993978558278063603434495235146831020358910126761118458320490987566546624607285725138442220291945098447250868607629973462425936860326856590862427533154535622749487857460833689860833739181180224692615138726703230985076905016234457290249161824797467990237580754169807818575026731821356412350772124882131084504221598208700160584570058195792485000093369894003820578021443020966978847433673465846994146818676215137221148904848332773491681174048720505062659836098367239092987279333339247760768317955893920246981960829844881795380320508785118235358816564863153716214897583181124462910754151682665737952157820103473499323744596730839882333428976325585343863433243541601137697037310266837595537054895587239269082229052216903405316704696815439614245754525678702496932959742516915161528296980620145011102685768897091408657742351616765740507417934283612108165044477938136347412931471023047678600574107672417760160279968704440451995288466444230068583069646855105695044885150523165373198296146045826551332800960751046993503479955310978460242491352759782923211542328590889944185792015666453682717045528648531450084503572814772605971339920774750292575718009037876955420103334143249925340775529881635355346210152524532372606352461149883301728980468635300503828206335780228800129394170753486665444890134210094861037966274372954263303404816958640183843543388204639760071621808725795979108196349266377173393829200187939987182706178571426183399646181665554562802815718540281365326304509392212232329564561660303979465951514692499529907721043553761904278874248865583518953347623099740047981165707386047951677379038726488019205808415084233717546400097649009071397171652259716559418083634507796447260975471410118766508742804414527478713481757409640350411013639532537767491607971221143625794210211061336655774515733683958893872791951920877151605537355357050860673385539103111497955842087500967849275212304470395245850227749588036583735711654099507113969046936662628996874491668727347835563424633750608254589085066874896673802721033060815929644511040205750616508636267525597526349324255478265960256880044152627143688682617315764921129477589292622207989585366287969236251748451339653151291234620143458005109022853311474141171325704875410970000735772620212415576842411615402599703363088352036011042448604132788651850930245810225447889857059563459663577493235533467136563056979934328235537169073105646620480450162408671510997869807360176512644019638994947917381908354105362548242244309237722277827725972217730410181944563745379963331624229826378786249156997821132675993471878085679863540338521972693895079533508005031954278884285654732520389439575110458057454895433371059509012574792616657418428446867718403364872485292478218252768599837066561276356078305320728975106789254670322575957688873980444544858016961652079166319124071100706226583980909723065508213643734065447611970720714976594437587916245774149846639595534683001908652221112183579736108686312758809903600176212954577297364539538580072228353106971682837049826937455743765991822530891703529808679526034116394308705853978584817018351461926408502339510669099977943561166253357878665846153539517528754017125968210008656490151007770215636281631512344110553508133683754763746967905708982546034785101361174778144210497820071701161131135848836044920352037675941093562129960168434965294546455742106980712586566840026601191519806490160135488620271052391391133533024887193339122992669911091436742701125059812308849016573700005962619543271474466209651253033364319721142357539313124562969497240083093139940736075754210947904671807646637656003648061891214288239281813948713329028826960781741117565063632356841878063750118527365639303226453917554852291452086429382837543038484203307762221361519876187996717442296585861831417557226046306702538786359432303683404382932332559441220422232125453200317754538765442504972600893897590421887854689480292066374221616117019194618362169099338360519787126793806777225087122067643300753714761959586069646688178080153649597743901054800105583994680380645163219060886322721901894497847021710342020245350186832520544528866533600146394439272066744687259484161947207754178774028908981122996465296952569220961491774954426861078008655465655711667638620334022798628436690072316503612882261350190405155321883971096669273748376798291754139054576190966076240175579702804559699255805887668789715633171333792279654547746931617913932568809782791409011921399752600425942547635829697389674569746502250893057895973360095332749148808023573100421233804196701521191565593997595393137826086379112531034116471125829207588472793955036818359546095719359197175884324858263167465865277030889408861475167445433235426082843663911194825308370582374952687013399407592032059264027462370318912384322730123814422301912900484920314138058022266638891956122053645384337383014445567081032039528592927806039141073660543858006183717485899144381245721608453200962651434071902194975807374589248757547911943252311678665268144543200993061804803475203035697108725267621689966229699909425534396226999094838415420040843775492282789625952499643322610706566570120862780331015111533755371188756505625645155799295923346841974611200445618150249651374340369146760007762146377053138215402333914461868265960831007797144883926927773338917279511080406902912890288923419168935719013585703854199645033684143536882517979029370422068472200215429857332633587659144270580185855124796925932789871814394791576897742131801214519619306497467674803494518285104038050386788589669206338490853843287637631053525687119859098432504459177304198357591675263847773722928730250876336489103708350199543921702728494203246029593787977229801364220042048648690793401334737913345845532286445660031900867613862883767936366293191941356655558947985345424013562262939413098991232192978045815356078603272692011212120097972371235641767683091898406772042740214273222338312376512961352629742150397373083614864536842691484439839510707664774777910806002878495423230208521197546778001399031091803955554582783829079137035693347191115300233214377148393164286569837077093852458701490837299409662423875190183358313654017313558662119523108148408496823016806512973129584350133128785881091274184998529765950061793291143164579530918619120626369560699717809790373227621377994409692043547838763676038749294048460704274742913510876777012232152802798898827138567411356254356881672377369342328623759411519315331452261978904954643034372646767049332387928580671239189185756647328880650461019984520643746070447016479213869930005661556259163736177799855157700657431711032738221614795324287997661134720551876045919242444976773589890038551368462413809612107200133961031935894106169607975964160103543771689292205115953051883724963963308948284861694219323434841846654863961779366248478265809711684656950102295368313729343641173646835864144478986061498489892827484461627788808680507079993539876655038057169147447556033233973067108106229959351329153534235641744144304204741849278627235281578023257043596238425637452177442166958202160784638256237345394090780795176563066153829910550441539817445277993413072803785404844039613326454348163302840174431348854220650069617482284150565576547793922945033110948971258842345369807187344948389322776099415301317600267196092880707832221039146693529062861994788600743675498272570869992990728914678029508833806878762164987149672282785110272506307793227043175433707193257480139499827668382968398680609174994702201764181361079778233205647588559384210538402736844295240382286471930842924282195038272709402225579575720996565104184502824635790079551670863682660293829022003856625470137641788837806776745468745634803097221501269627041685152779246727291630287710668186987208363040787909284494789015788660597823122416007878300300295934829300522322158823387476561025970035390626561108348302952806763272063829437622724069974818678468967103492281232703413287268221521803871747269315724788187267907956139094566437205016344507151441036443725202041165710214869761873384174825441148656600885506356729016166621735369066728765484759155251934497193450219113098750714700792182970376789317392837397421620435128769487466970212975644654498701417926157417009194920591959067560193131214324050766819765482029687387311452500999253866069767248802905561639966408937942056415322985300442694181965639311816864368088714620775296042092980421962738793493691613849968916331725684456971580395579341459935299964521353618708587732124086227290900378002209798206439053320132181706748679712527458995668654804335882596025405384815585992215632027038893533849630375625782120273062662335021486058032362768691836967362527334400473135775561204153361613992610747982068291903624498999481888668328443539621538947368985405544559787957194126260507773074105618248501765818012761940402905011592911123914124340537206440973940078803611841234420162475099930263440335287213242889033208594572744485207152617013706950731550233371457633922674766499071401382823244198846154003108974285138693146512423385637661708628680001493677674564323144404525605997778456377781086245999905707999591667053361152331202594749774778584163713105213401719550878564114158260438195063045873984744002866950571514383562035823492726947195546684404299263718418601304479811515496737652219546485440747127795237782514883266430560828891261547358473962922748104981705251593363323698971800656216318445427788677830552225177183319228471647799789684328461170658346282093232809663818552577662663387352107268542812391186189354702223876694086396221488798201057922029732124107403011337360498327658985229143771859251640001357657908670156026938337758357315814626156465749009774721686737228401487863035718530368118925418388125049950513208858926707403657475654245918001215904164823300679376174628676029469670644546527832324771601476797896324424151157509720454033403420168560703791022886318252848865187195851350166890021481115567586322420559198987021331897614211048169167186093493219136096195302351492735116712040288387765663099306349740549249253844995333697930102892630316420025632515164270428572340506804180355859334797942586054738324535896401572767324796605584234471796932232631171739137564727613182055398517486436093991708347079314348980277592663009891416670540489131049723023409909600912953721363253948530528650320047008201901778854691792016765741230520024376888236232033628062847346876296297641522813404306198081251549502393261900100520324909875227911268506974786120041626817417674929956588837377022600239821065557472214572497463595471735581138012142221206795189506369886151840955339157848762452527555443507472990407497900897833092172234238281145131064839434629547859167556487876387121386903262560431559190367007483925106283862059342479555202065981787985790677261951133849348750622162573887862442992525604830935745458635146401660284904136960600855023142487941189130736645589176238198026387601575933128916298361200189111588900274570032454784447120173840314184920383926120830290361986029588099105502194662864334350538088469039735574407486914939571921906071453756717468606476201873343081453452130495053769505829586192448801765210819792935780202324832066838819655996865068311626502087911175768496292874745607540737146543179047717077396035140971994482719159059399935552705773540403856886146974432824680526201127797371762893594458021317463672597776583965217980672000700663684074615874513773937081052995997621483503565592374549999534045274940861126386364056390634502358227449468958118015005108233729820150408327884642549791966099698776841568286094942239104361465536656390977434539217802298902023755297846986987015765804191737072985491300058970036015141349141100368844674107110892729880688508692704671392931393410224592500649262422791721156667514971342285786723315989632586679712373685276257441373045203573379568885635925417524447496800798273421786921590932734698060747356789837814919176462188915945053970369123726405499211295726818980048809593350173592050481568036563659446686255348128724931483461608519360418507017324319113588028300760350467633710622395474277929116730965896074510933437299410815883808576771639143376538793134077516701045626256152163873112770388734340295212429144399510688032517971558297267735857342645111141147326629943362936905931304845650789257406270361249167319905959239058497095417699977649948446135958146012452004555432259717577421037693689021670286828440616158111702257365358137663595750890627437783185881661069741672513849318863410983990060015123967492739072424950927352263669869044464455770706061166625573324424297870570878676948525795226337556396594497972923479859219556590036374097441012911334667803346145720423919233511726851261911242369198142345368494636372620600222401742681857019369488888660355919772857319984686217826294933228723188160528089345218473149724127862157718152616665066463786974722179309506581484412583572943504771530553594591975925038173909781813225333371194305089102332166260070053694167346705947462677316595801918621299378970397933750025404212589085252341243345839907628874267877097487148015889218000000119244044740559484055465625611338139414807161568138362211864366405546957505413472523911672637306938525406179763153099698441026322458663822468872900118423616103686056191901168293468619697149814308701845027014951837480113750578708955106583636324155925288327832351778427847428356306821155188235498834157386620784569142332474235589758178125616909892443336613056240946443810030351990302765305256590967545874231476573098348239428188450494561275883187396125346072528841079842651136712646112998891829235262262674799085439143664772103567925647850995380069878274228743523222002713286516766711678222829498426635310805777259548783821835241962956416521418308103343172345756968824332405662749517130884979709687383816007359793215722989463571277447578266135165445010167340048613800307680386611844469662797679655211940743430958695597654199903376479616253053454073104814253948767324710317934696897114754073795014339432699666199828060479959513753784241223357679836627302834652614176331001943487845083641797155292415490574208527879351030951050508177891770418731779423422451753723062214911965120013721456593801322754750025601092525849613228971691294231564199458814713175239396916886311074242094071561488222239915168008097190678851790325665909956532845911531462199089012186688241642403302103037437755505034978448972214944553104228554841855009597318445585460361496657731667076797848167820723192892096783362168505498805888868816491622025250158781219734227735656307690575861609231045194796896217974328215400703420642286986056252884878260449070542725556313659106068001042669563908072783162192454694687502740428102122716343102984828073244463765251737155785196048981197142992679689327299638454774750245027880506841861664133368764210518640471428769763266345114973394110818632818906440650837315151194713728765595404362394823296050451177296681529437820963711895878215559957548969119745814737619913603816407893129886562479664811760658588595225469088192264269874850624208483156340758398404398960882861359189217233897933047800094756854444609373558134001701007052238086617037497067570693830113020728726834097263598862208778720242874631297691276207341603280058190145158644220879018678252033264689659919606308958529016337065310558962133415259147581171288101289930775799187065081041018867089106784649193453525585156036275353952361988697488096190262605736149073745803458700274249280682591847519097465205278823548497844656711650979155378192789407541015087528126208248506225290507770462668194717033044103943257126229053050199365006097547311550177769046786591904170927550250197391315164133269942803766793603570539910713493370138657693578371001241512667493611158469086733227821951050602019208185799820294774491794764276805272580353593752438667929971792701970836528975844373446001551522735872362557798749987281800731977053843249174559926599509198179488385236645495003469555440202416184422625810324699255888024932063129850797958318713667392531532565518476393752078031718866312480490098795350029562248789484494923471403082265634894327836739753141966554079983299847122430219161740049322474375937890534162359693062878838073593754299217041489041574156216178360971341994758696698653065967630340319456982150596447343781613353592751987094901579576066821110716912432739994579007019460078281907358014326895372573975730260222047741336184259092103219001380601917621860219362769521776980707838701206752387895209296721265668506770818508085504167968498538945547979478248477952073759664768923804745797282241436377198382871068337728630458228218527728119952344852635681588691868656367380685159612033383549062556708191562075007650668615634974301144278521909173945514830863470536345738952879879703025628441750144516595837507975192466079741119134701863962742062059419537809396627206132486116909827570519421887482935588418449253365597539658187140554755242738974540990740420703263979764293512004082899605505758162054636156306067928314981214005416707786640582181947236151505501670007187810504509253006338147034538948916839583816842857235325346817692063661682040208876464652437458902252820736155043688606803561370809590605480793868910168280554623457786617783065790417519436771413376776241093625592434131467814496372600162443010145711538664513847138261395629918865678773582672187893407793046932839212149606752309833186206188193222941740170841643674961143785874435663887020698322834603248972394751614671613431918406862766749372803469740887615744302562852367796889511581186285348496442454505842855149841840796522678241087765467623675406055732114826640433314585390193748030753528641883581054704799535397265862477323458497133494281199785645048578848608145677034967206602039871283666224470224469466319497621563589699629593576011100091488338792608763799673491265598740587632662012359334838774755462671319614018252859574659287036878262377918008361687268645768143608323781763787609268051424293819567350249150991811680545944142038158298873846901358152656056532814225582082517867135217998828041751674438708556769783457866402330487528032625057362576465176136025564817820528548969167494735032521150292247592798805845867888307708601065408592170414419436969105583213926032538870908680287648901356440937181190776087701771276700483879109355571837222139436629007453577428540044937759476894024846926939909920185567654422474456104153344197112718655027120739651089567806016545417384998181530181011273189994239193214223720980612064409451928778998426508256364314564090190369660738919210317762971679418863824042559789669690215628977119093623217826350679715716012687427534277292689363292774603724421027760441400388423471848577152929605943070917236314019819818562503576789983052660506024538627561228219183655742832631639441441023300894070047883100500295431205472795575861691599798822435958588601987569318379317400180160188874319788698670740297182447040657838994085643082200936331950779309687303287513341140865472806354478432549538079552448595086112477099911908744896483054882309058626983002077526009520176463250000307204397920287079939909175001150108877700208404422184791711092927702199204000989957624440573702123563995407006269310787861402253876778460852365898471628510401360617253372364154207566641848219252156017655988161221469039258824894737745811001390652315527668038928396638503805837911324462079950557328088799241928172623748061947176711155288185677811160641515234431901199044720301201013670692841723538651057549903170415359809735038513550588235215794454044732061304486840367159980825428317228793612840504206493427331174950666783971937035306523854729600305203326410299981126049861061124644854846824903905975107012900614672553900668946578725736177870182346216851401983671337715924844257844760533199519614160637567201529181376530449463032759533776666552763042056440148587272986754704939311608924499399923541728067151930345273159785279706219990678078381077585460728848166337298945828538313122002490382721070617034369806554214098946896035734238155154491764577124904279292175964108397356785588003621641179147689452791074017272666359018257308059502831741302446840883010220033371668868752827458335604967959102092240886533868927348607904589595701325073735865456381325338704581700339248233252948787415701932116342186417888827455733468845282618628225444652999783888922830482174597617306589663640841598526378920858931228582457377504347267540147347025066267235686345890272830562990832971775690790180097021110985262117215825441042819376640880889936657004265494872859881710376690896775722608278973469519778139033504869924757206525110624499077716737407041319992127705285481338785847451460877060358871069401364707303256365963221441793925686076830391033840334662138309624788272539718717704294172663256645250145156273999118561626982167942632998101236413194009407595833626455854017408899262311807903672219675975453902215833019874636909600020092771279403684861057558498432121592849383089633511986485478774318169787871313193274422663838398928426570249793451809238826301096173097662025644789239912784332853382417424235258499207938635787596181491251073676032564604524646658274949359474085493130488017989371341499992367744165720812933697080014627982832033577341329020211916009791175208559222397867831852131887823308288442302637847153701677965045774959040795715219830950790826223496889743393588516980279353176412207921073554709085304340295144503682485608736895711807370880276900503560202512415511435245405436933535977394487949531378654293684116681797995908268245598707843584037401215966850687075025052384175554992931159946986039791437438136883830289994537526544647871263536772004056810758062074480651381877142512847264482652058626756348673571919109548563759993611074930376364834514648985743894229476298639222644903619072067606486085010791041128394022130271678360144883389481994448600340667731352267441162117639271948051351056511583142011815288858724530151689578098034660900037715590294752420563341901601270924457585699777983325613165769548180808549724118676801446023634210526699689082567125560930060632485671284564478181417610021164414744249741724981321420056265990205317373099730514513639852864084768524486483300480533324010459251944060485139091600873375826373134268321297718132150136719096650006400491771312170207019714670502607188581356416515008508882041155288244828541702767154108595523910412001870990116679475349631191834087677435941832216526286920675069075176573722362661140745417992283537300430594195346121034198407769537120029479687975209018858630687530076763900422074982709541193177575954972726450399943294403381107166013850204426551232780120355281398851990920015121853450436868121786952213913375418605339609624705501678235493343056519060634601534203608962658507295774549563249028088001866864060653459668049054291059369218568267860178637548628586215104407980883273395658920844970843967927158880673782879536711380409624419673822296628907176578510899790060967875384573348671832216859793874149712211083227031658798123496063138615482961146077575269374923110214546252014001487023630605572289536724052300297005368558243467308081736473727268323451738449124789025439046485061957752206090357010623435786963642517782775756051105686989644506440745726730435533457619576745930650203525024413492820027174165968708740973410558537822267010822565589186647044160470920262637156002305178833802719997455662243773181805817437802670509344234903174469919991237595730975320199414913372536145683647775712697626246461810008149075725729974199528442180992075661573782111489323342012649284093273924741710510843081069565654203696941835032898497108769803171744197416101983785133540576679860645083530677267592630705456870242248791347854640598922596107127041428105505755781681904944768748524766224479823558627934982123841670705906962049523619152188516163108384486929171013291098563659739914256486108677018263510867243581302638804876924707470996830293162149691739260744043353366168141712440409294649563745162410302716809221379057737975350407992229320758047766735097055755437920801893789443038615191389906207613267931575965892388500936483345902073496810613018272926197236929248620403335464325267029773241128195981009689296542849328773404453937591934260116922013399454267347135775594053158418941809027901168104847108274979335122364434768802480248971919445843945352547571446527260304250575402830334127980824960120212317742931593804004546694291216340384894868898584477295499810875091443742126217142036754299949212473301970062488624492830457434107423458541802593373171068501372928550680213263030386723126156736533752500627109258895229349175155318305327461518412831562099072774531295085204819185659465729945795815793269380060046402913087007340856782334420105624057451927354062926848667994134681215817684336767722895493496907763041351348013748612620099982039510598514369701762982539126661459917409042218484950366414820050380584865500445670029035726436175673086557154175637363331834464345265317295109318357106750070283013254082865276629808936902623157862885338133176489905452946387060812070402605717297352723744151444550985835384763150008203752473321724002523167036460191912915072382384710096025801260588295746959055004932930352184867969338022314220041843676810848336411397720533770159392102777529662779298950082684673378051399630821123589962464997428049984882772803344793110883255263687016124356153022735637400575322219314400604013831242334343490197405177392875041010068902974943175305644381182304837345651995492999309183111213875339585123858134362251818932424789179211072405642234272443525283533314944515151950312732693805727711993762089589235362071534329729808758890719333324051908051237428301576624542659538429552100139957973910895095670422905496691095295631070274728920076354656529135112535032123824605201445538825562105655548942114305065062212513751129273323632759880770140281153118807963192111686258934992704094336252712480488285328202889025962828499058944413843790438905649472987817638142351627189562894608162622531949700449022066127377341810900370194415069134509292289722622907368113269318539501046003617097722823246736611018528197432729287734937589724529627763982879305211394812609829573645984746247036523307202896237411433525068009884591263576111523810197388261120496509445173241438061303168798491315427281846707421212108308742523273745456546276744588515029167090240281387698331918947117989913540948160053988899407864013537925364403273780535637220240260716456274553740224510418415097882509543071049681124997302984284779485315887842865116633377822552966827119766071739989045841594872875409256310632451264805070272770272912297588372898047386317459193555014654991926441952674234444087964813466330996003883019372747756173531655056768406365441697052192648819287887420834913040614266749351506623372110340824839864631052166998630348102582919003501913320006819064371225007019727039921983726927919157210327494828921419455632737113834119192203320445576060643426725528416846280745971554819107640076910771897852949301482573769627402699050680103285785768535400413669138336384512379847793288222572382568319374557408901844351169450362372794264695131629084802529940482919373700476363001568083898874071066376488743650504911465188072720991488380808106806148793252577353670177677336732520782257382498750412123167642778298657628479812146920707006780248423290401230758524303261323376116101252146672242955787800097363219448593038456112117933401407779628974692819411998855374088434812268630234122654256651293582336918360969418023684094595059873956897192147553189944582363971358902386529757965947492342314379878487655374056755346963963827067315817717697224139310875544057152030362181887020109617351117680525987547220998507926014966036383940920215381446212375755387085825669313165509765957970474336949010562613045231020066853780666521975176476847141708211041628445170098861352322071783038755633393166372635159624115630156046289244910768791624945820393093269537128915129992143257194030039996645063206850676065218943077122166157214103743063642874332306886334002654059155157782000423413001902994823589788347526517634405118311768995016116110058158929289916607359604045002100339299226347390765382646161288857804198299201356316309136998394746888583561061621268529608353078897186774609110483830409116213879702864681174531734004087775523109283871397820135463793566621777728008271878979448500892585579914812784928787931493263930192463378718651053118239415724544050757155560510058368900680779015749486666935379800258848098608095564423095876688817312683670719312188994419597745722869662172830677434460529360724993972257769857994357621476158108646391610971853896281453883807457259377273292656399351830653408384441288853699484949878194373000383068992153634701043794394045466197195277293265433636328310043159542777798780384701450916303630173585235803400292023940103699352626083902439279841379569209980409314768522287937338557034267378178854188968580114988398700882619980540025755086968136933942268401767270993647694596349910283916308677355733491459328653953929325933032120234849996501710793556233172277032144407355604257791928585866319370593001061198758783993570793377585207218790794131871486344444172288925448145989334249333308837027612508312487968791066730796850799805174701621434677134810503504405816474740368045062616823385133117364515469522398889918280311167424265455622824305733324768610078607121752399938467393918222296581974205326395231228597680049184402400958791520383927463016946975944945272790407848430694676208072861289160314361456203550004422936041186890646536753734525500984235092146449218404306347015653746581087672369412237981964713239104085520876762418015810822373450069794650243839274838343799467657089991109663846784361050450962578898031825280593609241160864799429617274766815339788838036757087981281438207256553171707614399020605297277224841641993439150946115548257155294580760346804494930075177955369782141867551627334526315343871394974583031079946125325112836810376780918008714320552291286017325402924425396668203483393577951636459150735269704251872619383703319880238670487508818186074116202953052934475698944425791555477953383938522031477224737525995874722597392816046789175412729375221204243610319165221438905285246103785686727829300796995797697386438734604746202615086498249412037868600364232004656948142187003906527798409608070497119872821833918044716705095834034799185083741642101177313374077766075923643330103422262873432579461363493620977839690396127183590587276864260849761021495113818613383810481293899197615946298795378539735593828226918619979481996432799286773892721516003452859470431936214404903094280443687370008430094085870795707554091257068794801396603601312807062069223311052462024642476975469929729511333611296724331956917987931623234730820790490583869245846281395800679348095719678047538806245960015967926450353224968188508751514077914150883120972763266492731383553818622488498839670508143760550609391563451124531102868203019592998381346330694105094004977803066095897033735872625273418102101327498048320353260544625703203208163837756184880233464861059452067043527625849687296439697099645072870174570222339426405384025573318034041500340998503979105467622685310697519257490527639704099199044251819034127312126938884886723396813879053112569037897911818206299947725330696828656573309281925869784751417453435674473177780170464184079202173984607235282038475602532522727767391206300501303612646731862525658868567581871539243106438904313891410789881582102367670206816160812458368125735278307235775276676242139456353177311817218334614239300571641876986398571084528236025037043226707647068469998165117186894870807295287714249424150636457859547409491523668334757444696468629033503744003430908608121719487750013537669352145017441415713952463409985397711697215639833201388205322468132750803311335624080337498755896812006662023046630741969628662227854994308260803561824601672521979825686201024485401119678674575842405652776152339509292479053448098401869884445356400745861037467454273533081224138722527395886348088937940508738774247451770651430696987310790722115507902882329188611494121408498764426459602395928385118369462604122118658198001887596787694394778179159465077255594654951231858918992559940645295525639818740307595678298326400737742919881425186708730180619536523508902028855131230205526533655940141852496604847705750591048950735781764261809749111158383074275951806849653453198724607673922145874867689592935856965915255911751767178014289479355209298848724361448498748890410943975030218519209473041015317117128892145984233816992923598464075867473874469444442359960970359895060051424858507873144823196629728211921377036970610426040500524720398972540368206397255245935680871049301828604836093706826681747793632348167346707507121756489775077931835767470532317844649586046999397073911594978456675844978288434943214573180741384480824380258718093652239811677087902910965654893784066938253405286126336832304914472146786924253538620059381556025168519020903376639188894529790640189498644288818267047164015852636028904067203976579733444733471861995852841840999955815812201530034587129790477329075574507972198132323406872431154489812787711507731320034156050695415112170438796132968739556078973307352310268893755634978667432341468815307216104118668872533589357554135217887306807820499900109818973434029506755368535368573325065712393289277043545399637009792642927807460928093406928390965191058569611910936772419132889490083790494776534640355082894184234119759561409039231961752739643949489651095700522109766192049397493466340453580339376644609530165837396495834299036268392550380183307335780970908984831672371494232811048297244703341005456597899370122281570270379022414446382027486073311808932699500797799410784645586007709990204677570708919307010844046882159507447162774932170746558015028991773292144493419780420213367606903609155868562181765897665439577504122157652070429638542997315430580867571399111333844739516875884461304776954679470610738086833494653923552458636138605722955147133932521191619892510530602304299715476405268428088331058966589620861611096073672795728700049926155543764645966156946382551059725146133963414560145853765494303737587264997330009339916235191859291214609921776768789095430741246170116186070043935772367200589044436211714113477946508573526453894767412102113241699495417893907382275927075737336918731151614005379711358868127221006819755961900128235912380621183401636789424606981787046939437887097734243539101039189706501081799506975062771357308081385450100768835429142030890597519794180990026570166753223263855432277987534250728086165351750439545838301035077625988999013413739247617400216114794873196808223846975040458301780032519366058840474860676408003958703305483444784507363299015976727701997261057561178823043548379677154304926537509708734879087443952517994658851015924414991015103754341558126401084441896322060414491564427240805255954312917007319266632090747639767845131418396137405343152502997254093530325196764225959798568286034796349508332228160280293250474515441515953221994441990980105520739287822492178280262506786091989224943621311132010244579655048777731060037360268936189067802114143414863941082159366802173282031074246124398753049290307564385160490435350256693265716779024875628338427912295789397933052291783091053362744427333104094465559016804293171075627666319401204204348441274166834596162181165288559550238602604286902786428407648100838565599053866258646810348014067911436846474642384135242258285069197252632756148141420486139464771725060690702533640118471407541535690800520128691422169423538857973577258734722044518033274183446914379654436608674358600349665176177182573220840978258953107067959248366780740144284031485395857057561641144934408548797186066632301932832487699451470983855915389648926036675650809964746093701653148827774057080400048120476676179112817812448044244023138147832105286211469626033317506386844967963043481272631578777506357878709091688313640963454034221404266892441538586087452688579357265836799644120464712734524910108059449874558062348976698440152987719337976412848310912657856284072521683163310709588697797332211546769399673842172051770548138030355467110247485479385647525301664203556971150806328350159982620464030489951761458951546678091282040437376760913046249255581025788394629227842558059359716966441172598269383750299280412883285240720813962485580077607050023541133177977816954478983907241708964086259778944822844467216385755734889405467034951763763964925908223670626516236622603931746081498144427463990236183726536107757721673498980357682665410880910108393470703806349704868359739267205185509943513598801264270960926934089445756569706956795549323627696219358324903045333544874645766402314869405431304367725772852336760252619585749660981005568137446646108631821649400355809590879311623986671738372099977776076436099654506138776272535109201235298384135973186401919834298588157700782579963835748000942830018061047614516238884615082562582343928767933901707170908333580042866867071896182947833548750366689022377373714499988370050095091906917283200373296539548086986972272771284278784442126669848327656327471800375645754282457068101496480054618903103758288930046731594600104446414787294250825093916087141664139096955964093857808048314117192151775031988593037454751282707019670404395665511196863171252053628073963657490283909483540817341640482022221952954092925926860329679875429294249046423013850615796026614897874375392434396843250198392819285395532097398139896952075905013056093443275307667398886431573122001610025247846713179598964581127788647837647854489628211261549533439558545865173407365758679340571080829735771069307604609788184629264072825743050184770488906318308062384071131293082993148348037792532881352848053685897815288200578912398163778113616749783251183334213445588571052938753610782851718463413794847619382000189805570568494262060042338060357410114321351482625518590483292064017076251098250983081684375596231033399741126253510642526390773649498280066679855016707942454828925962835067926271550976613768138506006685906282985666534762654168619064788053766428802248019449410764167067615561624000290051349491319539541135850985494692879326946445505226191886997103603292378476868457358815465371013919485020007416009978090270394348860548657489722135893663702739086323842348573771565132162255834432525741111464837878880281254577291289820427687545045645291026036881131812343427102974016297876040253345240117816389131468507317447368747484265023492178783546202602438402125575847021137611770624168947120645538618258724642397871282959275380044288439929150295217895644098272306496247491836359030105250243712430556148519281555278730146884548318432488342708710542366978361559071428937046144037490627468818171740182016748199680453099352907875486402395050394757869844516437833090812692339924920184855473624103903229431190985820986463364669318340590741497425899800531887028137634202737831644691092333229147172376922637693534532463082674542411415246466549154540600140909127748416089101197463102549656323521101859556339071296346767528112871238976817331611277505123671166019458460239976582004132298140221175636119743546909344739386049744618017183089371072204262391179491683526564282078893603530854599582409898579724395131951895795146154279064931920145878180318830041842020830686435866744730979957705898166471796792667482885856092118394691726936039341105717594288243932316673476696226659688928138424834218002130052744656771092317360451507510254960311502060708000968499842352023159284401987241749181104788493553302090307369853452324135992752903438360110213239195639785020042654907861903731341966915198077967002213517042416759519800221896828070201198186568504078984500014786913698300570107454554207729654594841227236865331767880916562063262171086872536756357820282175070003020511797267306061191027276245369576964958225458203696671547989296115339402956214385494836364169019805662783128060528787304202126680115245504644353481750858074034011802885862680090770891576560299358469577388155729830656684243325798915587901707793017821278868463007424704470178713593424299944104122360685216019148121280367804653148728400650377503610727072524953272470533422268443819591079243835695686311290839545188944937265435191661551416857035527571705005907406589758215122592785871698359310406350300379235605567265714267160912437962233678950360934511942173987982103537749590951436845794982972108916723988155867397103973994580987891565043260974519904689064816972199492926459506295133675054032211025923002808515003998896486830898048432987263173438836619131370972411381352122462478138444855171630336589285069104041050042822929268549183806098361935195890953392496110764344235409324388024280152406359546636126850682032003769298691832381495254564057397009336825311587319758733657504944291334279330269022623888802342906300556596751587962417601532099863780117489065477331364652726160157869680806446217316875590614812031438768406024911492514558482723891563414252461375273461559089460841310287011895744076737404015412122608799862554105875652093504903785797987905970700705522586042023236403459011019836964358034629621990065399015654103117099368378511303883773734782210886405550072866298548844736747655751933978019677814988783619204015867383308650884698220672612107325926506896438640094061764801237564641986302266402659253382765878679128567272496728044660967362219058374598917729199523991456423118833658044906091658751116649927895490893858356957305560567292127662016314504767827542789329895071361348536198384134715828189072731195513608085312733912623739722114705106591971156755822922526109868787264148400115340141770142109849057686224095096383226446324947900313109344830207943128410126240758285272880731542915912244696611438636808589341936815740836355368686114176084669784658377132673814291037811915232768739197345537395558195026601021946494975877956167138112317249140400818769548891624394558587029163962858303550735339551930739944980294566636180865194058058310818256718631727287061678968455747808231091930548740898125569594112172557887857670039584389254563795527897788522063075913254355040317053742018235418527729901774674522816586885550734196195950356165369748478141690046642264493356617608462071711170691150738482464164978423197204567608862217334033659177094342658548118002126291517865434471254508821469160265103167497495282607985459011890432770502010956838293297004253557464108634117862961381179903036278250108288591736282334416571445841827604359453775044710505374023522303039071824268416130280812659249723518912765270245684679118893156348895907449645862758726820264741127773101335550841612322432309723724610469766375296793159409273412077604080226414615268616463701880887819347358371210564960025795305412665345894394852090428525348166700401041500027193646857435610802153023046413703752155351028133829321362815380918301107518960896138736128052485696013028206802105922552117513878863160746794908750442657693035283286018192445249166382509905557675616009053850512594028200511041569879799727825848763105370201756298983460755294693008896933084629546138219981201974053696704389412011200786790107947804918865815337903613324942456985035281797501517295724920936085785257205521124082326023463504506596654557038654816363481413495160789113254953517885970949131183923094015616031830346465521410424275297929807876469406740916121847017155269114507370757123513798548354903042397103484253935602676408429736727233438167471320334620593733609327093265393125418821809048223176566358005426217540486804163534840125367612813108285616787485870358209307744779037962171122891758755397209472468896767770646543734112275181609224234164608175817498352061030736017034002627080635262476934206132862192407809314239006953624957033590668466267874022972264258733406333454003209931503806479545634771467108429713134851449093364464873065670610406589885217894708736366869646476404099336432726263703315578892134188976705113636164548639577702369507609444486204111349561246962849861284216602612784232567656424394289155434411571150907542688826909615077239745396880212174089105297614067116850822855338915716805897295761260234154335939969739563018341718319785104522032724801669024461201352909982139488323238044843694572814777791239215037491540034143544709245692066565646848450383321144276079189540380105620091297281343951561791554588832644081377397747482098990363888384079564389057730753287430580170437767527859161681899133033405696425215875997157130424556760182533481989820569776670008357601785911299316797479541251673968221393366475746831310549711254071825381477249046536825397684106379339902489670119132225989678795373107079393643213736998961819103249528773784117010424394516045169165561921210984938913976917020398889586640625355771335371538534266596224434230886341285091741394483441077631969959030317001670644043077005392544162109999136673717354368195109773960273455104381745192832813758286612128929136395247555027750697131131421334628987136429952558697286010821299880221579037245908751404353658007358170195170550765453971032166232907714755109499386925160843807774917327432203275511656612817408627012600519008211448350145328222829849080643981354059520488297119631384313083412058675433981338713103628579972609637376792370391440278562035142770699910795676161369117695402659406272690005472400005227514925638505375290061175224099710432871611982735221872082944988798809287941658834456979951740031693579932616187633100840342610366214088402072101316170611977967686454835390417723934860285074840602543461977909275538620149657760415863941483957764118835383588197244049033393548232469580357024251906584029430697107398152076772352391046055288859667286903453120053965399991409450297964006951745502787393421373725626736994293274703339548905186602160520190810553376329151885631610910244933513657144394797238531007037388801929511571890181040492217545428471950212014598997680362582059819131945087736065217676963867219779984865883171289677521085783914358192756873540331581565815314092101005016033702264011705562563332124684622787885613301490390624115815182730926871487629021688612800840066612384645570734833396825873875064461785557416824042442931975529358433204461030236776051353899366114247844107354464685752328166118280564293104857353818069167670308196392761733264672183135273312472426089800409665050789679136741965438199441779282147475580393163169528383791958049437491947561429211529811202367463188691130626663534822346985725060384439050967070103300052634404013456083838785389112660612839309629692707493839587019169408621922689175979367353703809179695239554387093617439467856649628154537272526878535715050521178941859352844420184734953665592644603077524455296945642451059695580379250093755510962161536047656858584598141152057202489081590254059358682363207294128428317495773365791256165845068753865115191789438274370860332753141497421546566475701046550669740136784718603248607521974756757392819976514617522019365941454765464136907357889791671642415285501708037260566461963079691928914673263419352400657831173581018509456545163600327701091213398019294600273544087954623506566791268015166472605168293914053545002145879913993371151937325872171022265867548418028177658551363009617132803004046390293927207629249816455785320900378095710751869103178199002689387233109759641851733359894754928646121944874804928649656489260167292191251118777654894311078152847961017542377426638265775935154423009305376480804230143101608282967387468007897844756197189676580147805368098908488541462419572858090183442622541645183298811934311170447633853455210742338727489586488753247000671577175269407778990615201182362551954020535718189073617369832942702971779441175637289601332974472419873314699444974644440874803920737792173255368237409882832189810340422561432067526550239315489050984270546846328715917368473328459104644611723036100513512568018250802206673517254016057430644061869156340247928715446492190323985852278221703223114285375984993295558493281403458738985740709907398712443316346384260840565347151112920415015900387729095686938950974476044492809164679234530631818779332073757875170947432646750433688139404662499110255029416804954109561793014036733745357531076004974722997535848611579685233028032408738300815654197752929378008801526428043595874489344284007610731077678377217252557510079378380481688586184696293411159953852781071947714881072712416421424577065457443334430996444824438360866935442388037657256746385574285705127567199036421690831627131070458895563121174114227340554594590906260382979745372176783576461258569415241140997502067535699591656103048223337602683622618045310777167992240626010046895508777899078440352976522412543223847086756679135979892784999334279823043233590299500938904442189466777805979610542266503593950991137704809771781468499931612316901647757133034748866951641061699635012848030082440159624605203378406517070519664409732200763352708735566441317614887690185055324780706623651999073016823689409899557729769453199320612853221898402267136521062283544364944085332633245627991610953512002425255243326779715363022000545739914510545177741084236697035337097962252698040200608766626869499893298238813452843049375471919922896264720236265462188441334323956694798228908744099221696208695899916675066826452455368817838051881527636979025394079360194690471354456077369441975145941461563927386594741951917242866292209137015031249450208304759392478874150928834051620705934042830772898347924296315362052665721005999742555681397763447739466199359024204885413659434934877975289491807798280447855378688364634256155334440916572710867421248838007446552713281334039230460746047229648756545825390160983577992726406009884927387083146884347232920021076857364174813799190328922820433292844962608617570642704793594065013267258090200883007082165736518653322909846125733110433296662810937805888384997921988549229777497155212047060547636191428329158321162965465177831572038483503089211386285781505748750350294430129255097637012061366760881572345133632288111557043036805789479853828114845050926741007767079219229670742076734920780583697423142696421883525781477843730574183878238334055679051216759195930737574651756519826750312614112549255661491279627056809422975624626137207466411833181963150851178895911544331196903859676822843724792006632230544127410889823594744182780012078597638304463919723043899462166631881474991881945182521900624700423252206738255258201900836368621435710688156417005791943434928042552204816137008349201763170195798012791651677624267811615795791308141736576745808032671357593577634850157186308928235281405356801814139161864822972458505551784389355818066119492257843562900931503566307564927245403660271110582946247991490595404014382055573198348266087217120068065775541054764755263533360074451971896422945319695631712881757135979258215529887387461567224551727062943687005874870303501636355289430763521334903198075852558268598467697775523802129792077029249237806908510901713764357962726786273028962223785251673580164946705014363451273909381856488299350525970295315675462088226657423113941913266131529881682628063515732411881357542952279940584950862417274344459281056891303858547703955319147544058661446091263961663081950503722407185730987257763631628517715014556722187706785189727637581906250480940828425303370909728446969518250173877375775766968832894539002554772572398782326631101200566448715182053958544385398337048435280028396384092045596419401527755266694568312543167254230608834460592037889423826343338912592344099125408318222548456135022399182306936336133515752902544555950559850998080048323996957939857702486070242179749531813272797188379771946213214422200504976762873202600635411312692575449720587856112870337212971269389199155416991769103260597338443753914440643290237822087010637483457479365210521025102871966185616811741692302941221817520157391533998636070887410325002878601931234548963920874598521385269295011736220314882123126139785511326855742011235030870153808360981513907588391903226367737418496145370423303837413049644509338868339455360556698333971822927493377237250862135937143039502851190383041361480272217688683875549137957399907524598627365186502830895996031230965257863650618447140039743001730125450304405326611733934444611702585833229728110667328147775524353534332152812619693943098218545264802105437732635449517250025799159583508414645522605050227527627554779663516298173315382495122252125619957120949047455680615997336334084336993913858564624638071340730066078752245846134202105191229171741652693950508772038065944961470588975273835821624000977904220931897880240950727672527076117827288311031312410971011824636517636317060247035663616689826135614646283512226172979629894451672312187349379372573827630694314044070140504496575438390451483060819195533794878499938193521922057001987964780349175451920900261917418564897810923666949150957675150274620194631012808374625071586108018970906746025433319747213583523265559349610578515872930063699442129467606315961425411384436466844599885651778902858101171548725285814615121288572430330827409846795172669727392980215057482350178890644126692997815997339450359836627485730398380493874493869273486072286957311940497261161841258954081038316304713820044532183247924166161586155936775251152568639412107721124722298434977393608065135046581440692082933140543174460117867417056137348547674667869825745472579693733766070266769633598767461098153544706632288734373479271444922882554146260752887508824449410282739250785196747702432852210355412741622706291385878619217326716791275595439270488907841494082273954947548481625076124369429047742316333012530765661284545292984727726094341968012000957204559606682713227371584376764512242336214184379380683509076241819224584244237368792564567296299419647643540422769002311535883560677847146623028256600403040242412130072043622236566215188212669195307634030052055422373263708655159106187875943258333828264070919756448063576943048199643010586909644452680339759074645825947769936328208250046457165746540226459733750009537235432335655337931534741871505601835021158341307118997306209899832202897258202948902500066547990017363433200692355632441367493139331841637027552721725669126870726412797416772661093421634420129819357424946507256428445944951424536478636492213783317408752183381257471130285134993156782322295253575901904539587284527860154854194280090792037095423384798918761666299408344931725388748077170115824556004222573646899749554772775880719528184554632882384578861668624148698243166900311773472048564684476583710601061392690719611239637047139706714609364383589591237349591910047743919483408573515011376923387144882173985159300413863445426885272667579915230085757122901264230579934640585258957509637297889234521954668095810487788810840823947571247641468798552048425512221415215953777066612499810109258275243041434111424414026082335617575281897885248511464411153687085208211497041465855076342990902470530294486545667006010149633132921911888698972131349481773399933559110318111388523928984422077578902379630550188879039518227056932553337256544178540446248354648152867606753132303250646163659776475942438167540184691031025574000707054611821611789154993353039701230103064985469192519426481035273694491689805251586417280231920494295064132547321718235418631032626926297688746849477552056830837184158845631460730856294418026746937730250948648422493170875531820775216484909497397114599608179233789780139044181041949468674165245364777536133674611090667935642404309003825464540535946002303399470436144237539794052377370076038824175729158347562757504020865257757134880075424446783307918658560053472643333701308894428156251245638209315037051110238121971690992869281892442614432833172798002738180015806035543634803328545652667363020867229792393990120997673759173907378466767475449767348617000760411225358258570429921705862363650062340161660728911283392652488438306738925796270788759390566723307093605551292198738422582164782749738860999986055406227284547063589303853825663120716434194061269047889509198292887947882476414426590774611871418128190522237063885189282144726146557318974893036643473426275896169047720742141093205964474903628946661282296401494774425827240615122221522676489521038683258323204715390378627923883573229011460914763998467467937799489692396408135143535783517591418322375436506199620154724982113975910972774544466899337883696880182830425334955923151345857057631268061643446136046772643421947071412847941115611006608613379452311924628401008048549886275418238828404361189715332950604686406509672539624815090362187382262890662702077539207986008008395709231628140206389044711040977711983546527300739826535214662572174108637207784865799679637091548691538532214571385066391858463090138356949086949349313534365364316390391915382676768736024403330493096505541521505994615477582901820662525259185786537408093121170071875042460183644493388501698121051980436478464153305996746736015648137641604254985894384474278086799228829908042614044189387084581278404505725775126077185745984993031765399614926161999300869143303526191402690934561380141631786708171791844046276382516106995255350203028416682037912832881274277469668177327664073740989728172685901345945638751207500490108061212919405051042895898665541254309223783923780779923386915878284696824508676524568246010658082184157318408828787218444618978729552979395223188230659027076399005154681216711124849872572024201694691969435756754592669241929534564475405203670792134097659736134900003029432912364079849003766422850104919367890491483385084988598062897608141904790667768946048298626599084546571279163221199274804843365380604982423460341717540611137871168902255203553111108182918456400519512944120999932572160866040102637504336767625861809068992180991349310969221922533836789423029162941612347909139356256755694707825612282367461991779825740490217978030379905104965661511647336539453998516191049549848721652704255488948342632438261361893468866196509148710196037593859141540091309130144351712247656759115256878758791476178557177716284874977808797499431576108605389283166311849471900028697433118340267972011864401213747428011943762857616557170097452609304469096981054895034942764903664706745174424085481169182229244043430546159589140831221209451627169374428636165258354745392488731647744250883624679276753957112611191188512975240895432819854256876928565568096783619591839742023105245970960572882775302537074935964287724392300702743433197612658403487135908494102732312342898697995512250635015461779897820164435669413257913669676480313592926456201174642902493699938936943498992371712040259573981936707686170752700729854711095263609262819261862759944660153894487139866710463039015578757647812684423410365496479469774039614566758261758646036548986388209979578748094271663638746132048478367956353002740812799748638808650742162034172011536780140295953632684008213203488740044103286050503025930051062721084934264961029504825410230639709289570500542230872135393661310328511819279654499160366301875357303425813161352401105302398177309153900179581637497903819917399106285813207445156730701777037072411935120310353728269632056750669047052332259625532780087076065331680039963000701758182174557985768764195433326030153965475886905234124349704494198287716431659420161999931723129710168583049952141317906448307497199871519648320623625289652932676951379798045380608321929159942140049353331806973009047889117335950682622552294743104600841385254049145616213303061946021697430462061895381389241713377088979783441918015636529930540412759853189482488649817038166067144863308776707541910452655884887706917825536406125606469864602772562948529619982005741946350415435502935543663420991300470332436910225918751367696835047536848959803275918306021427468366246604431370935295180399935356057603658730042294651818054585417531670595300454409236549740387557362868746658723015086512722499028934264657776528148156988875418278477918692223055702284456512526317693378116036965213387717214378723673212212941880825869062903652279097032725235482560185858019773579434758927224942709517331134945879142310435669750429930063897988105465186164271930764187211975451356053426459194155112178328312773320604298382548988606715790353534615461396695176691202846809650483269501624929743390724637548512406075643090856101871282832104960609412790944031038397859416431380305237150779036436505696904551261086144298872496702686782987758668097143433566519803857189015715344062896519091989055147762299902107166935459048938756936705034292963289784881419171853996495001282997587083306042017733671898111041316041982056098784097600448382889622616009841474122708541883631410837553662742257027831030382279004082442459822461630431506389524666021235912927821895071943125661075376208820600550114116843174060470444706607942250953402196086956824166359193541754351266312322336234676079933476600076911462947186520635986868498497018252476906467853598451393643355331351759316765509866292562112633420763308526939167771344667938237031741729971865060046885885576809041555351345139807702834747798702392620267337050143908386892325972027560178794638557252993592806636583565081473851196205372513961100973498064814539989839549249942968208046627854343569073831326144068557126181459518499354597755440543329391234687781224195397054215561919683103712278405141000390123828475687662009154976727230892061203016778656405879954144304260688027515276019394022279168849572622503710861589324926598291499019559840957265415075734505480666943114176230617310676223983279672263976093096044502140833523397413646390171046654849904992889130278898941738050597739502432261664993909686400007105792776714020157258539206234399022233370348506538517713812447158326783079402709936603296812946138665941537819278910248378492023094977067581105068691325824019178849464604836986944896950508036201281640968982096992748562410045364897563321339472716014841232159186654000091152526590306184483588563214335531360401054275855160208260293244568374646761693808868834013261042045035446013897186114716871024963696279558027974928656008623011757942012356006414375753687631758162220954892035093569950897377181088090249678892712559976282690201355883477981445112993365887222932704463203900466422657067457705307112822397788245017419291002740266180125074382679324046862338819408736967727056674349132716424739917488556117118456208497195941349795128602803996896711172279263153801580831371390118690149640266898626905540908845336612546558524686546731033401101878179464746781802575245554467579409974422729298842302234272732577434702408857174749295860680038720065585643333078421615317886476369322222005902752164973906719493028362711449715506034261369792757855633064771470503518699091632173463023497227761013177778508997757229350115908980778429262698122525312115632923676425523690397589817578973409077061465112427494291148136493571303365424765944052898580623335918793218358632197642519856732983292662535934519685413757781362232279040420966430566317017778269357576942572465163389880359860076808385499012694976842319639554357345013040003461380505729961603054778478713306390168828837804978519081521171583474788975574063142401526159765315669291026897248360340889084244266532329708914693202322403170929632072283751130963999046715790269724282230399539988559843384331553351181197108269739295867061021586472107455779693053352823836793431563800184583758275104933565697721986929301743665250315833524365362213159907708637796314779804773492016761229992407753471999672605248930309894539419650928089067513104149328944203283969554203637267369844685362230176296293179718740000420711387976154027186693058305670932703120286408859972651368396419615821653423449493947248264890135785190749872688420371714506822026690531633504861016453273333607865938279639243461296006668204783262929885092850748782190393199158562406849730611050149827974633454315959776850755058013989994498938656234368390523457208658562236121448040686751563142400973270971934906193071197173834877248661537141335730707895840085219718033111651612239931300287013763736793253307228100795688569395234495765241866563071320974426793892664651814658192106224204478644151078415454591362207910774242043614464678354450197607959314526692679736933488856662289335524373217602987354188773726329583206499021145907177869342345700739991893581439186258759800788330262621975123969093768263210668456828966676893758363497553546406732714483287107203073568691185010527595116178687542097939261194193540595829340478524752193644245765323617927898779868784835743254885788420190009137563031468155343142354761950862131738678167688997359323817235152187474550212619249232952468145771430171017967418291909407910803080516117700971428762292592789288912511036890825906493342048859494806900963968585540234732272515016091270792038523905600950509580428947991699849678512179111441396451627009530796779188052123716673785936841871848167872900871323188797433034988738337465505242143948351519997988972119403272101635778303766090696971693542763784736737367677618279795864211443648850648092875655871644714909258820737639051453297188719321482850296465842792956851689391928970205873597001863323152120163120337431108784236690393596642479327430157855676817686932796080550124787127133665618950769175431177577470120386783033957717302983084926241119816371095358891468037029925558638035094420772626700530842824909246270324719208127551639524297402000486200813084400839036976082505708721486423965053873679101963108809521018089168544216387006779949284975534695909655383601112875787822622204513490916670845537079742996432567628621568428719587719476737166114271331430529781849472077942029082312466448299219252460109248451970437012278685101434339897813074542000138875912705582118631127050370010463142181694183365174398693913880571445085963415901359354054075799936047984038718017091351533024947171006795218149668853208461015688235428749070956713859711757695884107617167269106037045789549862266282629292316622629782219867340179085163996021138277696171761438167770790205079276881164385908160955586223829645323097357017317215939779207893275400214982272189063784519052430296015767421558995202995587607453800544113784350877995098012501722803199866726684083609727027839859870464287435502931091665616653911135837958925786229802348483278128040845529529292006514866306756983352437844508586175598783330579368270558837943705552823619887605796191996057432759397385023839468735526429596474207825073229307624615663376329675189216468504465441289886605030560387082949021373250724530636949197460181572462534048268415996725987981750381052974086561177027196997427525297387677909989102373339015268896642794115848006120524047789239141066396556312455888251573384590792171900440392127110020205323507067497118850109810158352164960221548807662308884784717042025147733193311695184574751626743524493440796743039560590958491468403099587292612653228268999796983025520195747779552430959053868940729947771844229415572748206848826314924347444931279940541106825122384814522547466021463092194709831939619543121667639417953775900714036933045761956609903748658032093899430521137796200998502557114443560637620344258795311839645700407123258562132500994742611316836592336833424114444817028317120153102238309204262814923010760116274206708590892529116982259920311924301608813438699986582565470747797659461182429673723517301420377316164542117749600765286925522224474478073348346523029089159390963411285258562672054755301870566012438926558961037791254466168341921108999012374733773820535880751306674981520155910946196586916644066205436169512601710054059369392883292110973541000283521125497094829648022391703604492646350852904529771963898295571489806702311210116984851675459303989371916982385252736647243906218919121970177307553303550372089340686714082423492886763296986644891486277200440800611639610997658675123550837095664834780273635477901071753667726659147701325928844311890717240125501014432519160679125077568920526758308359278029841219958178110383970114543163158538005023379407866805851002801091681696176380513017676407285401137694824188389379729982386429105133593421303441829599952741560273029770469270101124669373004288680098327560588267169783616994826185189319195514996825814424182176319896556367771059454499358786016817726596070989003181988341536479182506622006078664217135461995469576122850488118751714973049980994007136616940485030667410875414932907413108800626726081927210058909585134312979556966437626898180189607591582278191568382150003871579609923302087310979215310949918609559957771247566557276029913639089439392547864124649394245924020296151326547231644514624603074371888656161481512145914880479115048152488418378660500820696152586007778283272058869290209088896362717144889676072481623601768820548474653396135746690336846173050877664796333151697884016331622845417708422877300032557494003616187440831690508763119783862499462900223892960951845324474884649291714031176055996195368110771553778386090497369396587949720061907122071199541831710539732108106674706157199861988242926488809169942816411818310743647732656918786170645483676631822127165144571247300460285773302663022147836078820340003374419230795352775347933860601986912200456347877570943774027331950976512290712718837720271559513024667217480096811879047469064693026762681291326873606502392008719228668894585532407643932049228023447328577943580636733376783270777288225486710518043894417773929273209922881688572586966018921776202690784377792089230186725107398124195861404247083823134734229648855265057092693597214771430633259627055848088858061272700421960415412899978294615584133560482417427309151219506291474371138388104689883248805996339674970725257943550941825766057500571604725450143092332055173458271431170484182640689316178302688086279012910500605938657782086611139766062702864396289219385425399825122112735973884674051660249744328593251744408894579954658477014328629099059381748239295956152394908319498764983449388316933132351548288083198999264742526973533386165511094143739696102118639109094263511645855428217658958147255974771950934358215713844461540048894945693534502219584227259269933317957582390706492854345825351699277301195047523775010027449328651543302872610424849245938633476207024403149799029511245451690645271727657020889751751042043884683849843829099773594361899940468382231787092583120105444646639205104531646374523987263618196897945607475205770360597776686619532278178240933678963585699204247462879231712225343422038441815500352412049541876895211002284531174041049220320859811601581781422337994213155405118210603610664422165918541786195463923573188842477819165942595395656091685830228918622123189961023469459067939378040640368469726175740970705892655857880211643033619981476882740960815791013330834339903340408379799775070114109845795197288569077675295160383296361735591536675897673464622635824425981813024676334205539116233070856592087423379495904811872730529279474451574682584622164439158226332359844698859471795853925348131737063298723222182678758698704345931954061610248738642515561605970407971720325926331376471125764720072003638852629057921897899906803209921122725523692132445129519714737219177787103267679291476926246537092092172946350981999977757738713248560658761788103071867036874061296508179300929769677021256671671254827558466503388582064088771829175888336879624807798533914896986474978543512303953449777671847067519127491350903376665285951723563408020161238884025864085778768741104566288027775910857546115364443042454558662757218369777173929248613266387504494836372831972678208698943058605388665700431972505663704113993761670486439572617947425549136870981402594661401701020055368769184979279835937283754378504793212736019984959887553439403558447548959211372950492209546906216546475553818467958626598169677612276496573282252981808890652774096747287564464541517995753424071382499252196069334299169503906878730147831538447891819348155187358500684402807223597783043448195084100011684360820349770663073078296593646049533482360362041846703151266483518973702853992353270861197373209305404708040076233557395824645545870417323468845040854193518399434377849306013407361523456892762182883461454962182122011980919749203730486511718926921059342442267126979683399026136847445249128555563122413102569238034834333278187563160788268113039261689100001035550610653685334000435688225704083557799877761943549937037535612128612005504565349698842364082801849235071372136226329788182765026294982820871482564652486999484688423243648230322763731495853001289556453850900255867143679268121035716197356544019382288255943350215631860463399387640472185725884847690718756833683241849632835242874428776881671968198632797884606586399675295081574727159727790426407880557322243876496400646649740230136116824584025781639883231702049022495186176769551323929448753665828616728672142335415646896759214139625491766660448977965097217260114000045794807973327268369825103821682907256003207127996385990662779005066420837734861743261488343280284263127983932627031665348316419295962997772302778125490073045763108994014793994267559223720264259982008532066266608811839222369323243866313707734893806771792870374096076397821141820273798939501704802453191308599263502943705687194069157273159802763252272359744461562352641293029836394969744726040603035263614183298419913694038321693929982853739512708030373342868797245050383877861112911084430760061354826257154660259555448910810505040685645150539451545956629123934740161285751993915345723235514913676248431456583637335053220785922635249997318940067874232755315732203830864143085711126124903967342599907475483358869245533456329650111758150573660034628177700707791327229472942669779693526896900129958492440210963241233285294822266941111070609247076814417179837085269203165623076587553753441661458637518009180201009865340685973071696193186454067734877275610200457497848341552515268351584208825228699829290709657243101047275130156117770048573469982160775462727723549223635201429781125630807323345935782962440097968415949410185554447486870540300663803860551826377793985921410949466745811598024308030737629653093626581279407109483777897582289501714868751679349656117569490201612806700406883356013008320229530985414467937924598524499884931253854333143559818408961113256493242949921971532078526057153760211878823259105469101182004338310474094074574847864145552819897802055825724017381822572816262804224441194735364219485268317734493267963580519493252878735238291970152529126058765210982515014858340942604064334835434731820961435327272831017926601114827905529684677451998538667441600752895653057152623780262762542689149581946680903909029022792732313640792531817616646476451440148648298211518181365318249189515666831700049875805806210990741991929806737206142076425897306025781916897072601362588273025581746091781321208721285310654709304403536627625144328611796643876752193502445542333385372480744027786490250339548535837068578035498709460878292944842237080744028819984240675924043396883628633368657488088986997875068238346774154858359273297936054581123266575089594952566196958254981599892493047373373185937165166510477186685721330372603109549939392134919211141664059072960989791252067702275861816258070947676533113791335963900664985795147568293748806045375182377044340152561976142912973902349504064268685821257402424747428812202398684107117657750563076314133592776980997451515887249901655594797280014292651066014498414897976580232545144118811702039948410075813946953323839318052362679521896256113933961519570056579576844434787110027815140755862412845392781851548001514910706251434393309626310180482308509436368272905692646874672035624269797928263895399577857849830646439236144699443663027902724501885406435550608306384821494363790567321525443640751494104327460644779223940477043409529061830630906828544805682206377774486340721342044250449956006856492748406608939022988422991738510725241726362126980500861583781562913861510045755481835951132919769331362984156503887858144244099444318198130657272432588949391832078045362856384371572835855834196040294506125849601708252029467944277596393855140413195755890841238731130411816202420537555297368803766453543191528805266669142760895383517057993666788398905162868078945521402323195822449724543778906096755195889840598581197144100108345767055760468011452663880637013463485700498138193172619736007705200689270780544741671461244300774045832951764840337893161864837479225101982083307503558550713338658515888287537778980546776417444329161663288301987152767517708512209303520048269240739925435539722063435444109402587482727320867949693267656738351106712655980084881150358962346254497096558901509518382044677869538183196636911124819273255759247122001731677092685584859239818743820053927851500358999362971242751956094754506712802177687593915007669945590581968459806769036001286832968589091003425106143630164457071113269150503172686741085015100171360455801571946897309357468731402557107005384751744321695815660505474841687333978004456714843748027900576398569827788150728147105616355120030039726762866323697526551978482305407489131526053581833652496479183172567515068375346974751721794213653456495116481932184798502739633404837432327055465294795792154949175494441420943237648834381215497836160884365320883636127876860098275787893930171768742948518108050683662619850746565928781850799155807316826610552930877744767635603481374968463904625806075066307638023102269011397962823671308573676199055804620199192301067965385591875441753547492839894513061621542456575589093115992238483229233281102406269722698734342918093489581658650667556957798664790050195262250908276213064705726609122111264912784171292291216970505961065003167927819327983331031878436592887580308688942165579056820833655892096162904404922818375271559301112471358885590647868288036016749524888482769876359205963063853399447333582102175765978179523642931973075236908798362864271568129840466891562441814715270212101503617096181011055542802441223789725530255764995568623241544862774581989778907471110386580322770219660497884627498655129575064423482404717025943979527773128300548842175485563069698306241452686332143853004540891051992821429404998847419362378756562716594380666378190784732296760643530665708997389668360445363615853657456238057722303504733904933074809472692630461036028510012869388749373485621054328800097817254626564180683447278634522869465999872624534893666440716281495179585410363523404460703069352764981816605411638177767619334185863360986305702553039668994049427885265996504856074816184203130993301307560780867748273421097339401494318024925793470113425060444151492746641507062840263970535505978390996215426863705599190263056026462736985316719829283677825895412315690316397972463969315075255469367328548750270146704077639389202554918815685982446684886486223999701392522469871628600739078894693301884667457621426540939172754714487501155828159961323511558067651965986282084313336879895428532175379279548349109624190481923635010668319871409377815829355487770016876200254714004051999003872442240094420075095817380562203095443418969020636583108715416515555432155356331294431900551258040572666572912528875074715137310051585860990507241349314573585009285792501712159802993785483902367230184332384807167180730344081544773630434265214690822798187718098314169650194885794282144949349626344326061230549088666954922445760239332904335011706611707312009505444464303643469783444315993833153649213317540665957331003803203967407563516839540487529711665687572535137872243793256645327267606431554498109679175529766112472185839068857655597651577276738642770529264088513420984618987907135545109693192588111244087945812835676273090228122223171341567379642866099337820651981880313321860769092472448920732957726671782008423678927231218129979944957146262240466866717975026795234037639499161123364370039017251647123764554906062323499502430339095014073834110552871158489087541233560879552143358656333903124516296654893168133588274535051108509511353091484553689944319843912260736445329115346775346868504658437607238996482605896991684545512564164524448141235523693677093466172908221404339825938277635712939933410375971499048528537970215165892149490364894969228971668656672043407646231229358488153411242468195874767623194773297497131913116256771527014594128227369762451090748641552704946729817621573454376156842971482549030795589338169231168051397011080026692271782651937053447146759408241446510733056641119335377332518109942553104653829710799073138311384861987117357964807391635843510464678225329186723333189422881932299631964764871176257353178482435147848758191781674858210705105860810815366691801097858690603346934808087862795990355078795010020403729534227823712675436388770905367699317103497997858164860417081384818580595799246727041199893412125068362928020203031573457152952363583547741685623162054068524559726874218655467525935175607974514205459266845566736680347460402721614959155608526254912768885665889550466436936556348209118733834353225479324085936756565576437664488842869131317804176558072013206121236053196724385671150962373012874103250755044212244423681946478943061626143452204039175875478289994442694890552636544621362570421067977136430397864604698853884990508446341201442571647858227859081770213536814512568468519699348495070531650535201237118856786088710176850094937931344694629924930386217546243894463165114637082093869990148229409216235598457888372720500629198647712742249021013891875301416326627432407529334049474894788815399879527436201133675243729183140345373409247263038474114200762946505978103405677706337340902552532024672444892112018108642588355272940416588391105209411114604998960256369023917227651824256427203676978699914450593703296151682453731053164519211518022958856326636843614489042010059194616758787650440105320916605910077060756190686771139307791267143103376791249608849454105704556370248773620780329772543883189060883302030608288722307167330700132809094793574540139160611661086801537446516001898836245699588995460784836768042820089039260832371182479548087123579786521674685915411378803767410746510752753045353859491066803148519164935653148889900052407262148088750227144502564170123099411801515257762353260044788233575259828832012414321501009919761746684019060265580802651940633973745891069720584156224599307906045821516255771372487104508343425422824798682581484532578626510814657228901395508521426551288268448235320342584459429337820857095012247505290606720355707252588907218029776542315765122821969901597993119115912516513101069336925120650250823218765795754084745947004775358646759083663590960728585931718034982479462415351369983837200066552771110063058952157961544546774644517510136281583825154356306490421411822819478443554734358930103420224006081296231841100222267437157777695599470777712961998508184116588082218795657272588762371835985372148739409290716498521200689753196408820141875250280647666636472928075156794356483502772450459342633649711010294556372193092392474287052277559439095907345758428933196199182768906584202090198937815676046512231335287194529208996564188502842299845012729945903659902906028729130602832308329141084270238687688534820547634586316171575116450447059554378826563755743621524547890240738670506047380661742372704194989649625640162266974585730761776289563416059476951008152690671431962319042112095023582511134793756576465715704661529510679223056326851708366523182969627520388461697853291848864502440345945062032711365488264478803434955962390879500750476822542367673249356576465387546631745006307438500967600519336478294777794260748448653147362613043223488851017670074545367607017476267990832417736148623196277633941920493768191867714941242678947022044809606380778974506358941540358981766168561656505155823393670042005140149697257806746207045573253942008131260954718285133493148757582841689815418067743851210655522670911763700812376303336001737395587248057383665792220278961163246772980949329216086075031704049627922953268369321535048451639764297577484535209772457000796697716691384098817840940456160252157179110680575853477012813245618786031262416549165452464819778526235333808063387468466725711217925220648258897971113454280264097387044938886598292055325691808633354808560511834057169914423684696695967783178560728854835487899273650767323871340578592990767945265432260673759781667111075033622036999723922950258953284336913038259945999508926631102611192464320973696810082736957480475344232826862926913873428931654732378420591936211624506180409876284321048014506482909854210182334991358983869927370850025361518011680060130964179377746337816112586317497504933086864185954768368740774465466070430273507088728174455400024679034851200777083918056597878841690167561876472797731750882863729177138120986189019973286432406147038402693547369282180493467640701153262770103050946342629457724466920267525120340990355827405765614211334794667061490018957603820069562484960440843929868426087072730040864271858212635144965353564676155006092696628218760003782368978827801158251505251080289981576349829811366928825527920909957078502014995452438171792739058356084495435866307976989643613191637611001045920322642973939821670314750394412536495159893107412458203649796503612790259435595940157593000762939466788110980971239408400288717725807905221143906545743778033595076347712531512630200418728961834701131886914804519695183145596504799388513026951406636677217698229929604099654646063479992520509625860410193176158112157491059055150558677020421446420123350039349817833523133992026995964021801437241797523995998116513686006199266635323002246244797537360120290392255697902143323820766498178272213464885942281876920171460006332684108868671086542088857287883749838677097585929300796592449213268354650460932979322908269599019237662347146425079259495932273750777514595255302076163867878420204228399183475919275175513766311405412635185647679547318140546671413736242459589163710140846107279053359594292035107057396514639413362822323005698645418259525257734426836916089518552997655886110927278082948776146040295633962494448381034166539547297846500039335256431786523181780816607212297378893366647498548777222368416104369985276733160669542253091614515115092098980507930986063194305528370761419868054994784606389113427695430531995004470245320723929074933870403004867900835630978604368445570091815330622068277952170635531683542804004040605902023522956660125584994600151614592200730083794681682466519085144683549957861310133290100487576156043916715374179567436476213959426589279298039525626506117743072838297356319244977783043224780129475913339736754174419256624942082276714293899854500212746390793986236187572738803590245837420109634457117220496272745106804022763504220699268662139788174393967452149385471130571180365929234903602283215922989644174741706701567270369662404535064390857628393394249146362647971245422595102883398366949242310346020423320081855993475511655319263525023182757980606320894971556393724005368432957085220816556040120346147200156492995452506876850961517604231743169108874495607199567865341032788956816656031040055463304063585547436841874431649049791027037857596312762013156827455433783867809262244849863388645901035897035817402663000128356934343157232618600252401659716395952938284145311293733738149749994396001811637755570921354389222643417314547322476783713156100708041490968317814979439604959922831464777650840527696684365774675392233016184744437024084107471934729844970047149054379481940301611780275047277801131137464666842670596096279936141464360378022560769657458232695102953087201047699463386894889140885770438023463430223934999491221166301079436602073645952598054528534801930656527130364802113172544175975018575691302082855120230879434389531275920225203043310833842847449787462462485312237421454710327248000657476782909751050117061752468577551381735934864600830645879032349298090044795913810202080757140343894810623974313060331704454601078414920627608668171125798531453890472560556445984157929854131791413544586790327954714650923212570381797738859613120596159175505558417568798497659327168491632750025547494318053689926350844980971579661580204232072837336354107078642069756509260127269208842708911293668539254471562167606928149940343164847341537643349880095295848513485476805434859177018303035704401158431494860482754088034853956371259315746582784665989075088726878308014492399451946742421137359560561857736443463462752550762425531050605943647562724704823654291872842992426074026981091691975607418357014380287325086655803181008219010893377710283107982123020275905521734818101424144319208245261792284164753152975123290865070973846234191209982398001914686806193477035066953398330482102553493374045737622373750066106032801362769813043313626024645768448246635628638697568607988013181255559727559882445594108471172012953987442284897154204674093788372843429254289201696364825937331491913088531365238283445833875553040759902374496994959313525786040606886860205424981048468335400822677313298716560132327934012608320114931953757697732847683551453705424108915527873571596423125763051467599488969924389853061134979648810331286613327058279819388805716638721552336530438380391197485334387546465150867390329046702883815672006068758172654604887450947556301495280944070515866807070250970092183678152523649294811064548055547010964020236138358658135908435060871585886291102383274096393530662412847092085213535413967195048362400051803214339152479056978221767608927478343645738472855481777102786483176274623523730707273207246772565284043305692782685778923156618583861050057497897118829476736159330110853733526548700695579190428763913282016148639735013255050154145836300423222320028320111766650186756151695261103526382947539822419851720831130694473607460258065931529612330562878035195727768447925322172946279105978842170001830241560595707119808221850986545023938369755941549315963432187798942783064105447834675340386553756468239282322862983193379574344843512102270861412600232839643322228811680455289312190693157652239662046773413243364982433062333111029144820257594119402935639721251191183109028332078892773176548387789622765675349789473359182354467023000014269612167766888712207236697477628921613205286191663722733195089220735001358901835660432069592673043306907215237939837201517551682444151099339479759808248247069696722159901123685060900995283860912488664071895299432531403477935177961862912492696461948131523551194903115982801022439191123712927777332868962523011721697867902575684023462551009337753255113835352318436890185186630799381049455372937291796266897032699859791299303792165891302135463157395525917692874252527957325656717008921074224701606409096489541269850667688758228122713980385603306521800624662600953763057650139716773789066196203472739230080943281337145173393445709898102049083220591200334656093846166012849437710132311926450118564603528652770257655435805314106459927257639197433377890357839786221360634951273075674694231625103062985536495246899977161183668601565393565491898258166601201620916583399979814748761735516680928425842346469594639109536389197031452476262257701818201062364523407247557442794920897173655715350909389731604483432604782204264386787933309097865521527956080675206040237595487799181685702738160112986413436791363102609392187150995684973337430017032544845225591564481062659924519216139923332777995339023929954580007258322305255703097098953052978353223681756986982235107209277008257241854195861564883281811214353334325677129672715074269549044670499022761938792034748741774872803692922789611180615383401822005259979657960842291836504067285026652004068968964323144622880245377163478394139067350235610823489530376422221565214051365086730056686774295924884112892905671731589649643022180506166661214796805095646199935298863059946495340319397496779407910160540398111916885331331479445515949218730476883538546937301554647268938226764365089753737574757041873262511879442674603010334986566772872725088012482744125443963163476332261884533906286708423550820212423031875051203983030330016529767992630254724312257653902683513622557254602903864982465543947771766656341708894964453769078100175111253936984416801445521501421557851142657268801212565143998126171958296353776011106652541451075513094750912921298743141316204385776014819590023203798018793097904764041240485963260761024703780757633203116311051837787740781426320406248926635726592389265421404303434884936513280275976134644580491636238945020514432294284108532374952960898379877406870875320370583476942130796059879369187355055177081895322499765809282946808988554734275246162341173404969911991683897508070575263891145089668948842184360152308283107539545251701534903381332632489083138036629675798930368120381052127862042383548706850560736581208594681999563176225790865503110904789429561539600863867979609042255735526346472536825403520746503514834050110230522822793776258076144834419886043767247401459519768328988615584913156480566929058334074953127918303606694054403819364963514170744950940277067662251032709719246450931174763434249806885073374897114132307966230303848949018345074147578037802716435258653312215861789723739359172867236648704844703516110819271593886512131623399425499399658526354997077411228407356499496794904510707931381457297960420219411067616140249685575468956533606009055303846980418936069518919089324155334121300004793331678234478441695388875813697471308898467411497997399108216103332683179200886217777915383498117350120734365784102283486116368761658866615351500509985798440128132493636327648258053180930844273452580894316192113394946413062659815061994084223453914669181705191285192140118137014037748550420828429902910812574004109523202685548757812069549814259657234288811330563851542902132063830726777392885605268737897828885136107718385615828948720835774884753901550805039937308955368740477028850767982859656780368256424521905534669446409461744250555575944511686296685439302609454282937333532463517977140798456683629023294850788497840484233723294706146491263388787033010714241771890874953649704051786030867591520982469190256876320908965360906372055611608345445602837944263934655522335678318769272927559543330182368036706613194989773854570168242216978032193591159938808637447641767255048254184904498430163149513748529289322011755304672923672450427451786451268625121117380270296479463448262364212801927371671034579081046760872021861826853797014832793319853553154013148466238685008716774096359427609654185855083435868351710991184759765738524613323671463631993864673768988710482522144579044832883298659440552570952385394593986462720864050264072094556458589002844068493634155685257878322138243005945024320692650259002343174210543827271280402770075193465844884540128434092268103873678479992644812837098814574127940520327850822465376232810626473762170649752576869639134324038042348691387303135795757650285646920942502824656327357594519258929689147158399283704287858389391763865747584823525495567333584249862981099170989354987766295353216527911549003935594633429019678992013386800478069561386829302311768181133570488162850885207521439604550931654572830424716139527603986113237057574676714266831544254838797437603822013456396788865489833524055277441922089657921563640741567560502820124260091844207891971687735843741078392960726431506271704450522018374031915771160324109266823112619188041123275327240652522678676474511059960168737005246079101484337747578676177568081376425585876529197322942598514130022852463399008070137228545506129219808264604969072416604375288933650715127551356618638402767076805000253022806436337662849775158991475952211811233721754297748818171038152961860508625460248565742269310011109896959359482254408449044279826698865648901979414932346424870328591807786410587907696218488460727009212741042214320134194506183880305535518043201545180142024434715698206675429119631210971586457606350929737017361145596945038375478283362241886013005233621985310184558752078558040009806524781309546102051108056160702978434673746202819093955732436740353770503890211928569132460659066288761853643242114712115392822070233666638286687394860363528293213149296468009212541325615579270550010046604862377088322881409766242734007247630524055569717321626767651488446179661840047560593520341825233299228615555325876914811506813954212201194864532292774969187765360474279974746018197617016681969590476671146197360671506979028488391584899002836372708643717611053272174683255600116538203457710830545284238016398521238378095938989166195580907260667468568490091466868782146701050769801815992455029237512505807825505750826363141143907387515200268266594306693901837402861245020150722086007332483621773581152812093761090319444012023591997505224429852808667200803292111559156241798730549889197137308188889582959044949180439249335598707108393544596866318415286598105967137826616263657128826097753991666611794870953741007835808414371049850748275502035223062227652145289248879547463176421580412573589355208793066640194552597253430055951388947010133759980960172224727652301575003535728182409368341723889592803729553906268850571484728229172161103272644317096593259914077083165035066468034203274954839295938862108467080534434904810296206788993822925564120570838762473059119350955601841900570239947668006035366614743442765810018430701465002635840641373685642535237254739539624288687471296587970088065455943775131794585923938679851879681177419525898196186992069893022352186796846181353869648088068127274031182060851807955064223879415830972655070597955036120042106884208334947103772513948094619275876269424412768668857051963115024245814989420887255589010035197287433347265797213965622871587260219989437965717979544093431777637804352570117761222324466820853346347171915023537704066872645546122870556784205743259832660698827137603633961639686316888613622612388150192448594342216383649615745747176323258516906385647764151164057930794710109122385418058228062683644728937918099418729752778737693231946110726511927937505153632671130765483086047388690673614811798065014867583994764962996921217001428937089372133764903055915210508526967646801044289524120022269981655544558765491411583952273700762600989671247744138366771966661829827897376918651957656555257700108724885645547639659059973162794440527575551260482003264264761361184078168495586144334355774745549175068796223472206639378086753282061891801995081087524314364998537569266381189810843750018630052347061989985823690855165479060896771743764134168098642906331996287957821006953073005339926857663608740591575852728310731656380348505703923131104806112386275146074382018258980148036771839805906467153290553980784338006400913213335333012320065831094173490098742668182953796516880089859536209419084082862559830365823615445962950417421937771024392934220773197107948907557213991624645093084118447745356058957511902348105598993462277361226996365354893660005816992778552507385914324073970025994613367500586900285980830266133182886193710937639983938505992503576849955005039335934424618914356009535193659148576283154808739705719437537351707198698988716125236046731465479434366443835331726214827293540355470566379625507462821847121577982530613819266916059340539002370797056277146477848009188670458677906897128525541334597976825733951443600954391964854817751525879991806181697921954045552752063084195560905173459362855399900130017532589814140846153599036225012132736497920881502842247897877358470776883054435770401230997298963100413420923626811694482081204028487374954577740849790494140366590425333585490522837919116381257187537613779231730045918461752856033727116167337259667794930692707954280703651038362339955115116356724715461943353805445109785081678440130204047483704039906412072706751644293310627572572514839934398784399143301708994693505902280631053308296150928724036823330674198646867964247307410468852145530314105385623487462141192055881247163417937538055012831495527632995103558977537739030981196809514580801943791680491573337151581883792269309636791232976364083287585603014645798540632901832492407669611534353899308092348731417431608740950354971957934847991995183831123364155981418270520554790564872727005190238422267672261426264531317738745964179861753132592270966390039985545173303142545508656951970995318975562327107648163014155422796174074736493988239237258210871301825561191922744966365865508473875780203142416723335460390772792688888450862047572705550567103101126709349072323099466730387124633388203943207840608987344438761416003535128203572342341927674332015344713117777964745586292409380490859249917003149102772045855598718505646476189206974774300341022387335685338684519100949379170909214994905361912643596462727373738750819988217167075408453056464861878221497951940116849481044311556952736891410431859432099755561447755758534188932413984077054224366073933838754224684176817416275889827779546732317718619819577249961627665786358141284504941491239788349669973222930497477161953500758941395803605025256597705994321063084514661777508588679312785781420457791914292953776779214629549428153794913360756371253553660960160957421413750378459468474948116860114251349216639090087197522504616912352642789927563196940815831825598830479192116808350425815033776318740165951443515796918497999736986704067150241840458017436211470709888636719634711949202234359655674807265177368461909326388259942788565098026192665118479496175351249045792352673932690242899660274110021750564390742955265506256934009772267452311661563826979902643513056939787774667259575622391071575311133850281470559470723601193097895161029685507037608528531010019091734697500008107938316294193987966413267100884639368499276940154980750940957693910481653856168253474354017437501058425886564915823445299188806660826331094076917115013843522069146662936761564572459111160099051271371959114563895694510210555847053808910444293454908526121817251219998484120539280427303519349861988743597016552418243764759719325023219616271901772859586074350371394695915530290985014830291868834861458271847318736032201427902987853131145128340120971170067703219903990587817656593069766615782877616124587852591613355923100397598512251564074162301100725500987571278402662734300796961217344896527411106726562319745506676384970810872929190761615553918147185273281003639960405970317113387807183139826688056208764836904649811872165727997254926017837280601729917425614882771173927845237003378336863319567636366822540102124508606654702296779161922214986480513413558794364325530288833922070708068302832526946308933608642496488784574728276407817848338953867235098980928783114855317863922797774119690792370632023315871299783265192748452657307951049878401900424552632232754724677366260527573933456869902174517924035009838780681816304737942713949220666082209497294646779232299064048299224553999720870846637269059336264235241883564705377939718855741511971291634342712083746295071412431705287386675166281235827644770987395597759788681886870226416366512508875463641346715272885919854127235414490616689211706386852390182390790184589352837795999848332517730561531138550063035458291370827722411990220881532971429586386240083391049259053742992620711326498802459857909366714805663013601855035690490823604862150440312203185942477862121259970954815275803565613389376620698700814453511418044375673323220803975653897339141651505679553234025256292394241015896735502223812730330080257929003281156061281596094561747095321145306931546525395732040767866433684224282436923262318686246820921860240191603734050555114106127912645954065558300630223488015718306162535618498758335037670541471535638135496740896149173336574454351249839381201626509071498306227408086113697034392212509311511772040301545579878474775258914331079828964949505952120430345581516499988837791651633772122782086641578445535013470023507148424231126256078978230418723897880928874226694224429137594926417434263432948168075498166864818944418915263960745325250418137103650343230066662944884122636837072473117386541004494436531389157399270659726132391635756852856774498639557036193945861533857667314809407007904347004343142770491074896444146581040817785569315664476384825076345429783736499658694925593937790945355626241223921659873684685012885276053150431493243309520717807289992103604127506435641513347322650417516137572830829517397202926404463149933859756618558795093729124185757970744078601136884227808309969892626772042151238945281287407872404376680597939649453189173061099297592821503357697618090811052320080642479294474866988168074831857016894484452684784745421780359318181874554807976122309742117908229514023876925201950526628687103630844737478668259236295132857598234944719238763367596041416230520858508981938958930086556172383216633074882394621681478197274632939580885910455165126314534208975181306341223704124958999688907836832680813650674513756892129235402449768535757503792787990800809659952795610751261891992105929198596654589461126351025511964692189090178921008864487087704590783937218695284923561075619677573165016470733680229462424210534097242925896841902224659317028298381212454661244856723660916365235632746193279284287295931559296229911781146579918560909469003575321612525171001269913204346564496692345495807390568264746947331260884384947746714789896706430639579560848094162860777906662316585425174487429173151084312293855198396958381224339029249145711128085184044021797750695620774700342642404021989390559265943987227096987419565024681090640298538832801636574492043183601288158392725140603012168603103494807472493394763588445996882328811172002159840591152515614925206807950393730690522579542140459209615403943940084072455678853146755764520492847902112513244792611733642483254938588141794932852366870503847652821407104025329313403768882417495063798451301931578188251574043967081542782362026013156566598097604148001033299248253688210708304488872005713542491527629398595203291552098900426510744018408028243291745859820928727111174932456860063638546715591445038268857132743390271102821096955561932267335036299782514744146845694139646224314305185696981570047042901013656376327692575054739996597477060499617115171734791648528918063560299542281511285754934135970433142006648239833595431457526948253980266569345849078383126650093517939530323264066581240565103967843064159486386394878418082660391795722931657359046679889155609976729415120312923147643760551386958656248369164480510084089741859790917804068414531993773344173181943575878739134630971228876251492803276994446118960610133764334818952309869038645245727999983378886236330706728286825338288878044982809001785210115890340561019589233994137562542372904217780076626220789043212287338204485198312031472036883749985568222997454457610497171384763173692458875207760529745195414395735058122886862773722042556663034328585977587485293558824348350415485412660066902864743052801253613627738703490178541323454561706062846629102701828224583460094184667054265270138640427544049276306056032090829227065126107284148509095972917526331709365182814310155847725994388502026026581738143811395344486517058792526112763943288016122744300416982507868993538461555481404297879802844981279929989463617812879492765461378140029258669952473633379367495353696670617260483155102597451957101991015434243033677947049190866730607351918724535340178914377265581505434843928540125087037487109618931846004040609017870101840455884380128291355498944063641073239947603049792869948671609504711205181152805802013753811776368907714727404034429649137022770998105637914244788041687937723188342130629626378736622106834581106951630690847446317105339289905105075721971274872495517359365026927182101252327605084720399755923913972598801479635458832346942147868646425904904730867184816910162530000148238639181546762797072891243473727997481515906729395137685299448954952147284277920024861248689531720913623655681188152712897271772381108582422527722483768806967330342261369508253338352566475451380760945203219285787650206859794965054831826435896254403987531837126033218616111983629443729130913673586258766306056613809542666411650842606322731961050082905238787364291363647073927803877301275383313960494583826373473399489443146503931470380979530872070745168241096389976274767796995270080494747149339750813865838230108197447926396358457621762300839969481974819765429195613196734585895822656605510839418212538173175944597859760405007350657051628609704989920832495746534892390403925725481881686301382050451582495240873165721709048655341311023933796781068012502503561533338412273428691684670259429308722455385228589816292202726051622146133575501105208491404718944809717687589124983474955124785747368200846507715396045377424157568816521806654125267395217819485952115762393689045987841280546553727645894505554770148439110194166232671620478380330533683597404196467668781006842790166670338412975284911676483108945600956887360217484873713501826024491294121543313723954743562199609222649615905454702941594598056533328420099287391861671253080494202921006931652847088658648935972696089137672718039761947105040861351345529499425493413347826731743864771049615017765784512368861510429343964669661969808059261820079558104339185203661305679333378879261431540447142378850840406290663044106698316079551732218373724867353823447405639195516849600872493005549852464270371980132001852681698982855527528508709560148268312484032359000864855962326226919449621717600374391449661722871795224761920479265919907350472167770898409582147647370973588316138452483681634382188756384259408547682388985728543597797817199020440937059322884501492149250168516919348442124053046870689197900619082243001043390719419328870468680841031205535599759804531608924805327822959659513565347941538331408113081870840999984413831795523925884669427194032568733657825598253829937371204431349416688683571614558255048600377897285674753571756422586837779541630133831525363125906050161169977013649753701749786680698247527974217827630118904227974478274751808948771377139152716757997839690265220262881758150527265432919647060240090575494652195474460142208087001006464345414490084090323232877408317430541647785266262512946495287926603159851169768973295737639010574112349749290112775734923451728816167548653997994519521793695059416900057284902385205150589928914062418084209195442844135632551933846424057496082063484818204880243919009954748856523287634698399532773546674576140614217301084536717656052838985141655223484208372192711242372399078265446455909087404453238222975435190079370983628093201759317110827089652393550694467115502168325256142872812580017768147167863930166824195061668716698505872337684469105985765263717486875775804220394262352252735719427153225215044545589140050587564538980147761691610822325882193718730482232297330711366472101350808025034985597773505076594456812935878562042315391201867411279083278887931371690998669977830522006311552050780678946473432642819273552499046746289576233621421116772846397531615680594123280787123717580374200532555883313520340455841440566656110895992931851847291344788736275757263615183675779969497504508303601691390635596810656912420776763091316631620989112416387672509092546089764165859713911230152688542492934188353604016930979647241461429493060018485941459603051043641924417718496465706912241810623801712757319315635461896024433196360028401676374106155110304177664027366687280376642811649651200873095019406357947839258198383831915321931724901435306692804001445745591840304972859123762623602016360190471845883772663600716577358191896089579456630252836865948859883458882227286636842185053890882904562596878735724537864723755375105235588353526443088302127205668114764573608507072429132837635300116420189954209719134228604228122598324737120950040639239946236172360453025578099428941415181910330380339899483390071439332765121899889951574110535040532171349510686237660650789660775986521062880164904936007817219594884784009011225617018796999635607124456620267769992404129680996770608626814916713940673531498776213157702628478628191533922461769010435859611702955466343618082424692319840492509042009593784610398412436538956816204355884815089471729596624844069203199123208748939391681915237162987948254331217557286309703429167312211365014670699179384162515201138835027082784527989581401631913291422932985646507187817475459874307509784098453310396242203898189074985295397989982827686098269966143689818145380579058567193722754192105872347626454101249611786432082970842481039821202663350526461199805186331477930837956561628167497445526506379054795186834440144393083116295212831391601385614142583717532775567809150143761599448626092256299336214219255575710073912338856852414970592107762936515666187810927160670677671835276843850242399565760782561923796161385856089621255123236649256214132868162595143972749235700693953561435603843361910060652542090495789242681944891451848716879882593757672191957771090987065939998509753517654886033849388014679155082638137125607431119262196582165020599139778625020169460051844429792238039529164251928428472151328332657682447614621340507287760307593072195736696080549784853075143043300208032934019484299305350447156352875359065446327212590785716179212627982706930443623302092131640890423591024529439625654484158635150518424933015352911559769160364200617485058393925085643906566226175305260858974925934296648664462029157226403324407049726021573472753120085997842783786118462329639176801532689381530329622259619462180092631784940042784554469858741479411908619186977962104192728906691258658963043171733709366893285771548895781261239640821633322834765712584589097711551608717970302734624800045804403599213702903896419738480139881244056018563317112380020668499937551136508067208126714264778209961218331781052125978241045045101760332844316146982396369251519902877739972010418702573940248118527068064722703250898215413043001787429870774128472257362946622763897500956061664518862444499611312734088757011544339778069197477203082355296191126700211405284649440694713285753352957200516178541048244026043997647736755832201227429122863425206245088843019457961007967854174973921550409687140656098215306456031558134890344664440511235227775310895017029384175862648309095373156178712666694103705846546912420046875187892038593080513070368041600713308228413262724028389779592522849452673506404647962552661944213230512960089881101144589859581184385291487409773154273177249624901993681204783222774867102742229152768616645564595603580042286192041455460000772798761598115308063157201742763219344367207340602890010770893966153283682693819704360490031672307459240773934739309103436062400164022626332353973410253283960702281930934131239876249810877567677774403123183749161308952367944811775339033615055596338904846030739608194028096691168274145399393496131121895506779191390150381565037514935037096895168949761084019213224087547539183736808864451804395410512926457869130239432082352143743500640542687020286299413209513666448794796779727799635256785198466600585705431918312819986431867319093248578041409678583034059357808093371192017619550805222957914029191361676454462170467864343312626869625368281876180444513319606853373318007533985545846756396923766402219592641332830298249082270236113180772580437358744394310596965016772629560007886719246842913889237556504234231326745305807043466369051364442747997561496365676738637944599267821779635851973882325098353070756358458241342600662381255231395338032384193613527217705522951567205409946404607661113827087016080859190114005344904753490900393283224598440871012039680267423010304136303344279444049288336022643924967877470982670858180901747259212990389778022644251872645847713810564970945158935306290259064664992308506102701756229813205743828020309847820309086687192588257238623534220921572521225388247137946119268016650497714145000937571407440914803790314448277212301119330464410820838472305702279892957371024223110893073638282860795825869054593409963220610192437552244905070787715330778978614642247894730280983551528054518024874935369141476834982394464688139485673509855608251853400322824743906266359953049587861379969812692052808882132592121864383570887149072847435928001665576771345902709968878742314707891031323449723106518238393797867792114376598305001242672144034209453321743173960499811457787999152636371153811376371550025632061573022755735779943498562937841001441122415653116584772387850004002013441457294235389211353088996828595517717751101261854591229572315132834392674418595377532622945742663543385602759152085349285807511366337669412481180003774835026428702681355194848971466997411944875234702385314962693539948128703677365690114310903790289953689399591864832401058331874944591558444430672225743825837396044539661293207742646375206436012098912311256625266373799157414887473671763044830889190142017273690771242094971377132684742594622777029454489862090240277238770448826825013876645731502237046954900910454815945929463198333017017156061107889787514783488530546963439998791575047247938950250135447635135709371820833736971577227352575610477397651309014218799900368035115972599510875954493146382016441066113781661595059805875724482789934658092783515004800999007509244481632760653604541188273852514737652386996446468979806622836213461056645694390841454564591283038463202638581730153888347961994834891935544154287653180749883468315289142072216079814601372101018018924551614355080980445812681019073125081574691563125129056911981226084924380816758301231668231002407773850240620329138412209355889662533525776203366584970440177673465657346647240022556613462752409991278135174093887871590438355404705816429870702310424195479139701260600178998316407206155064031784653633770404527435287972394915367214129445349553760173011775231727285436249314894679942374482073342035248216456835784068613833438916084633619818830104206597667842107518118011345583970865045009294190130192318931076615685557164462596408538995446560153127398327052723046354151220008942247584774467082944434936897594645449601616137542661690612781498352974878885965259929355162277877311452374157716620578798084586305396095547541878439046361168342299575699317909247001135306637480389601504781252040075883606835789527436696676284704955860812783065410940772222744208772306048032310713272759141943952455384869298927578811391047283006413587941051900623318235418376091418161548819146209851947365747067470633649393937362022521264786086711259824191261727458399219003343512261383936555861980163716000233448015816027033238004169202189955425008029210179243164495093908929302576966998097682554849354565905979974050219282618724391755382794190647327422228953568561855047059249716755737816836202700640657324534378904255054935960929663067282029982444574347831136744265954752998338105571024891829313791626720968635437948028661330482877706210367163982617937015682217204187535921759029124697943755030143559653439142190488237782611451531157564461630780904193431566741297424191189036019802321788294738679426392003642670848569380842481761159588320923231477969747097469865274124555158449298191858757848887027107662933424783185554030040430031818654414966872390478293159331844148868303435087686001714125633630550261549343232400581178796887833366817467417466698826635723620442373677599321975751690294652220814737169358457154554126720903594918854684241911449425808745077055748683899845567319255971154347096339896590755546831349535409423122251673350838049384695748096989395733560841412296231719029682284817122826989051045035026658729904968037101477723337680370871803672763554252339174431768919195010698830799359655954384071895192758897663502353337055648135743301232471393354323400918176013931305597699352847139961842110816739528164650502916085297050049893546937931851139039696971772187689252250563918132972956941247184757740107956435439039112647071115070037954583808333300480016985901725361254787949421991070457520918799250340936658653324087254811136763798808043556211468702816653517292929094996358276330778990995028743402134670708797258074192796376532899845887037882760107973704727468474374139896223955691803374843482169630159439645869344389895519931050555401783719224005629787581572147288368658104250438176072817309203589850047417863560575681217931765579397212201264668078872059916002174920364043381214530249480613900362732201186217397702817474212322078385721450907938757401353934320102656240260454424941376603405126842121935454539818031377445845483251741216849606695401565312477597313579299237765904960170338771187325038133185428812696513008617589285100375946705670753357828006360192505458133911165975599167757759726947442433852588595155588914112947049458284380723201636931482142636517890104594931851905336500845015737015732815677748044354763517878371305557667941714863640215729796599217977367194161822664808233236071341378488715932772348144837865053626305189026580691003665717711653122928038218878593507994558468585883405024005276764997811364688622877029729361708669308619448482341665967921406760395704851976355184103125525413406474568816293009157502086109536230391325317140773470304423482530255651234119884438019978850217358986074016225699628232030707911157359032716371395256647308792750071268742745050040832707849962182741396604416371047254947458112611712808790765920757927791105855196219705976092870482771984487971118947445232507783017344261644401396865265495862866516043410113059941820242060322766683747872977066776075279728051456927337632650577436681606701962125339877509401413614193373076343166907709788177088489354639625789953518771462908601561895487048329067182468221747536568095301905118443793215704002948802581082388299124979709818057642485288495606462476672855974850543543396868218131023929946410188121093010601120784574643759479324397793511248773531007776870462977386638300522904213439256499555616378414647770386615755048824343801704113448652846995782821394590410865911591131961650817305613601157692867192121305259912751969714566569393061907514944079962821977060799478156298162977021131251664375120638529606112648681100917043861191185627627882631945498659669225450653504413253611619602919500403902715107623823863049413480974311224917774618938396955504609794402709330041788192615121041415741667868584233034432267132404132336482179761029663971468824783393130644216246914857279831829670754311753652543083209378425446769112388208159428671737097754429187401363281581221756296067149212046094596386891892609454291733217792499914172616178336381833379168928239964086566857570943152102207679811013075327313104555374006815030800631338826926813209992991593559497871703276498821661257648294034327416261315417950144109728146919479882137193652177780146484951933490258041921659011641128789720742208880823131792765751581419266808023394096491692837922475424831298628045876698486084395679165239748069669449530720624939036881087106693764517735932391192008749963263906918753976119057535451139349679327773863539986165677799337923652922577369126586274038980243537252861198506297240256303151886594826035906736374250336950986283474349338817211088609265095473208899981622950157347309372464584988346059732995263229243911177116623698645300650181519020862628420894713728614370649001316708678343077791058297358455149970310937383687679180859324806058755593393999504007970194452055198509955961507729470414546955373258360468294196655081497378228012762449608737024439729545834415107953671618790376063287193286005549072608933060602947478389072420880154132593360285429392101556765936583633160660863722514144347525528841488922749638309025243086129405115005447921146144614873906460814529768621498364306517664904317084007340608429081441910885261969505363911529724547259268207357009841363518973462586326065804836434192383178528651840500539242971340175630870842496536967551388492118133055002076050706633243936754087409947824494942708742776394483155063820447627656662862609810718781306801552782959818026067235344209929822907433149155085669902858847351451858997384102684624122007347069438221965538968568688343866444434000578287745650449740237716612544960856723300198458813878372098215628633522442617647942769428366944017516345606766104385444201960539374583134816392716094670275417768912681624217591736493962250417574496551632485754770994444939022161249208283045856076161858134655140346815508903555824195932269532063040314269916958992975646315940977434877805695119149056685737931595446873285194167217633692302367879211960392396235772975450917035995505491602247915213425651170011097203507073361799793989798507574193951418381107876415022389237816810361607955798269510245206481990824747497372900794538673011822367818733919181914621925749705996551216273586713189971144596563256546116478936141158060325622161733344941899089366416608795168444413899499930707675397263788077190578235408807417115868970641144861571055051997018586353018015218397375375476959431257365887956939722648606337795633438882844688329884434434163398464055891252458485188111918072075586317206952880411849562578355826292789579710329533137956942602925244681204029115992259738400880580236015906885467155195435675601364813090477432513697755267419330174284721134481176055572142671365004370360267256119660558128733431855049642926050345246408358124702010808827059523039061343263924898453337496911199379670937923161947402651148417816665670598280352311698191683674045915109034328907354178261908978034368169904440364360812372036725846195911044814716080476437315002270455958625487371045133398107511641275838070566804970688193611503724169622539700321978470576050551853141022987672225612341776381649297819391577619114822253190377260838221804942035791308361181362064867125664218179734278519035583537510260343430797574135059346431916347878145215436688779221022214014466497157546016405762038093231064005087785010020836353466033256821962733712178038292903995838616203599519356438245419460851915415596506187322700197464364079547480310822409108755882546004145050047002692494071511687589783034198562506664841442402540697309872395377660236278004256771455691232020101266606189181578748891387125389736898905191911271681234921850054363957952229085428176831433256744121300566009543904769478553081055219929893228116160370884906235296646054236390480472491566726622212618480045074220632816724758465869660682176424243624381002136706463475706378357507022096619587610848216807604980290782161211640143172598759906953287310009625073893944522890507304788982643803101313177984792249430109637525568238484300104132732412839279315395049916623243703906487881806448657185130591143688632636801763906738083959984853831811000306977571880455955202194628725110062696883231045449712357828520281907905502615721642124091707460776564098313849107326099803525836706867375687171382368996705723194598852028279044315824725822504021047724941266661644692504196745514186725422027347013246512086020765134739174061025153570644177193673105986868234370216260820561426667330571777151570504016635630971707677401190831588816118988945618276075262797369403284189506994015272254782791330349412939089177519468481717111517416841111008080164954624934208137612010468754504108890478066434082065845234127125082810762452849669090120348647577030485159889503886943043134954311649979132304880979780481663875465393369701644479161575446657328324844579467163683046527639872710517049232508674165274581077713188057931496159022740650204266508313961004192668348322674375906886400588699655981616218780971873921783855177484963071621989869231493045012325754224844507851416194124676373714798313248984833495163925271853229433057650689823069920541813488740151108255974358426770929799709867343345962846470796324319807084211547655020370020529810590316401404119973702550559441186407485966413807739866084605919558545101066219519562127204682803005946456303120015877244143443093373462839022796900029808899767217800097749175030416764269696552256575391602561886970599030699395631037470981797081164716880716008570419128388746503158635101851829020011403534045366783904733783793033148278890300415702106068256732274799399241370830136858366915114365331211704761499670831817044675757230692578248695173057127834812233046080128760707820661460705618097800219600565370627780641064166090790549384231864982941702837869120418568133439568576065950964618910260402401588942736212090109790021866943282525254304697269894612271728895365969401786571706822307394972991326041518206978905708348033441236377337988696665844903832962382479541888541332095270709350719731195943734316477072075702584371711350136971134941511037237778715352785580368505990034369482225612602917799070463815102662610115265390878329782590174905719909953503327079334965276471618110755891502485278068247990991616838863326528851536304057917073678210639934755184751032994038546365890486054864491867141992438313185477099474508548041276034361346202842968382172857390827346036390315466397012711410442295814992259708517142134933843613627915378264184801629687147319114391205704447408471818137590721162231737418802689626810595598780557755021942477089824777042808961243942227555605652913117402979928565052921391439513235048058202091802384424243364705957994063762588091269305369097700877737587841622358449582779625006653094205132453670441339492876836602731147188888186580246947423356321280511842955075568097286851356679657942686422105018529774133078559877340871558308858504103533499172515772341077690381681631356815102881179564965573786816370459079550778262868344041109917223050824359160180836934902833924581156724939160716099223058110064572592496636190583359615036762676821988335705750602704723962138360708325588448806171752967694808399312991531099230402588884811280864272708132571885348124933105122017417313897777287742881082577154038625968366738869592496834557578337004920409192552308143784820930294467012478007804115223656641638048527343742022732532260407047540218531550398428194031387833525055452526792952942413659615439749849760164722537737809733567845480824282867730698279632533538675937903694077215267324536202314605139483388397371668538203057394137799539789187681437083110356413045575017207219598367519726511059264883637276420320831321735678395184414471685586073760536611101757107292021889679132113227398496043208238250439289880088498216958016917548088985730213105841094437234889420420257082140472716658948266989297544316893218251900410233033219980977453956434746772951238398578048254334367668692625383973708743441000507366384600988106871097241643781400504859620637635764912663376157211623230349571695055357414850980528592534162785001358259685622147397239933306561855402475952113234662765635611898469348129064808608014724121268840641296085656898284839519769706943176245105935623090642556946722501135812402233841269261943386812274680232717647424303775469746126256399793885914920132774578670097013639020444830155344013917665628472323740519488423227409250949807728562217175963485761091649534512449678583903026926798319628313906276649234714850624505215994424549808321812202376028606665120596923297401244371491722872831603691915078573655663323090348212451997565140705245768394246977411462772149506015422986828058560054631823732246569882472899620776872365682981999853673872484098315788964965461975128265747834150332109913778525734722956615242848957763089896637243269549553587733738437239047623391236796609737902251856147540424480754441984827636554454967050302052836114919262015657621103739085498723151280530980225317727088557973903660248858114380819873334302803017120698155397982958510265165568784597543688563584468584274352880799833849480264101669153890531338102500414019811035230266523598983669511352368343106764055145697706879039051121782258099153378771155798475270835829337482842408926399505160813138752147210751420435580559233619493744262761516936095262245793522799774526122260648305092852140604350489221286543595045403008069424393147675774305834635975581994978587136710944699659036408915647472361750269865476420058473016332377848090119952867930227308529517644791597206761836675874874023603705320979591994969247207547834393875113123873217545626503581598632278471004370703232840059965134603514419903466492718949401165240127231890335517032155091425097568225850892860077288383676042465942546683015050493444826891950523047834613249973778077837623802384616687272404854981567437413776181920287528309551559949596451105073045348411525816347677480635145554331676974193892889102050530516002485262793974738989588178254471081025592087472344095739429402791065119110082175573764065951620504987516433040396151813132286976200341641858426254615414229910830105519988238833321168437914415035079537871796476815071633785203015139339405879435370221158317213967785373164766853943563652995239951103625562992471752120260370945311138612397535112830618421223286919067818228569009920871708723019804902115669696257640380641546202449692234843863851771492808711689241141152031469577542616498813626453077202144050418876632237002476054522548309722033712120085261460909278177061572120272311800720003577250262634624267502261037639726714993954327881836888053526024427013281761450712535788999803752793456347956331253002002066023513037279101517186056344381441475486096171942644106641252392387414198046083618428914467753706859425501562910180922671854929527920697173770618270222692765351134301139082899861433268752939171583338182651387964557903752162749490248095175726790647042096780190718870986187683769487284997251872438511597061663408844269370993930231805380180170728255806595434454993485862141036867391794076973515602621454667858906086405724470619116539580760682184354337292214465154354705880307607718327281591492783665353019156402639900334802980277117264676082835948860434302682740090354829651249546002830310550911189839777990383037568887350847227428308933473385333936373943254172918697080233186170758496593194133678163075961635926268658792990974603124049111197328287662539197410480874487196699489059114790170108167653207481666788806549394554720289172545740857981460115917236626867405994959216377681936494180621727861445709635085581153164277185292110118157968454123231464447530070921211831636194648202942573464228626198216386843479965232660961001548483255313583230998191759075026060110217571708230946025699721611073158636912047247893893089008916144772174531845582919229777547008869844170467843131078278358645625885994366475094588591294876278015612895944885233394819655000902358475216177986080977186255732943928226974365885319754398476138443281883693359607813876494387315181202055747774164282591285629218834812605969962454773726722361158669669775478293970038000541877089467276521440033095975835263352163123040133433322848805473152441738559520322231985719658604455705339552264405783294318191316409410478594143230430606251944554118100979997446993299176139592821606458618742484643666964233441550530399182212636015267844414240118495892776749933659099997437348221091928625898792894305026821687385382232797582549527099806837483357272389088726604032368308580377586637733145527845167823706082589469962108383649029898747542671467447506815083044182731932487866830414026982296759998208032500691873146230223464958264738379720111988702424827576545129717560957623718799108155033009177540318769127175649549576547731311300300221364521510513486051440720495509568333310275013954902386607441815925578200399648504224231184114365383900997739200912643834253463931730905189518107126079470703804468054797462119541174009184555825203021774112374643258324178548480902163734023384244785236726821848019987285432741565602919802298150492963274961629592881750714257313253742810332822245284419586788589275848411329877206397105825407324740518673538721088530917718582272102773669502249018139758718718679089234249585804134182635925050160915398986552790869342338866730494643887885246912040635131820419631019584478303866359316481484386322407527548677177369427093686666865290474562986657830217966913246222283430236203751678797013576459898818872303409682143860766347814367814849495404027538542533565509240081894525803588063810721105276256120880657634286083596322257458828276854447063413335929908326792534607421595900708439779103826029099656024365912861239143738290426546114443630784389837638406488973762620552613406191623411296639394875350236366587660425214483782392520160084165028082851431219764872702516625086397830037723638029586618446627308525662011406020469622178342749183818240851299305997192038691331643509637072248494445172908281521184937633185265571634006331086185812734956931902230468149481735400666817890446771797385597662330286902758258083736762254218684410984399697503507487092216183065033708330415706157521371259541525523075491207015546728188509707390467598535518599552349791406145339123262295632578301088402280987672812850082209702872114141986833050985378339143636684745545774381616349422040442222354264031207238555875249499662268776937677433380303862066662272484806485870553071201553310055230217718331857402172287000348503815987914491065086917036598083727398071620521164605681551467068571072794776405695914898418382971488581956465051203486515044447266883307359738166766300653394720814569826872617844785660383392443555034487347128880216751818013112372675347508260894717971711812644714958016043658507752085422777640514070933519855740580066347929168419171936803693857073207141969835380595887720482389686814704081750381260293512169448758054197142413988555754392327258829025034541448050768360169413976088358046872938982301169283570065447488745865819748876838434187400460142656477479989012513336602122726772454351356430023597963910787969473433412110361179554938697149062862398712491504771137059441548626656751542838620311590991779134214854093487849897273098762579101473697792455442803748385250570328176102251776789696425142755701337148646638010375959734738524358088190799918819055317343515542193968253110642087758602601314469111329672223387769860324120238240137722721224903684015157594518956309033859351479899156605433486469077934221545367828728992572171349335686094720134485876458592190890445710232519978040747368995463979433677494017754590574384658005629410261128912900336941519807247830827439009526500993902235623363959416834502223085718583199692576188709022168430704493801642787720623315424729521127515712905202498070232494279648859897898762574623318226862590682518130296079130547475637544484027830388672901972887981853925620123607362419723609577951446203037940462937743316813190012727903707421199871897306277802188850805193234059436301994532248055601181042742636630032660768437350382070729489119065934769296177537930448170421127454004722481192260733394101177763525796412968816584299486926745366393847421734662003933628347112525404659723694181258468985139884249916329551687416905805050436242317605113019693994348572553085811344474813562227924358245471437597939623787662635029930791917669854288685553565165519929729176416838163589950236570320363288789926742985669653189387905530040038783324186350210274333447447363821693171563131649800430886694684841676359106739756859955124445416530789608649872403157991577651788153002418765747730317363954961357176501596301747956157825414855976348965686515579365526326006054001211648237573141815400976827479458525360301523489370766149077358783472258051620782731424475983733497729036062188140685998734075997829275964137031824722357336675944085665165165769420780001229620374073050874639992923780777939404071055231120526866820279139811806622715114073771985741508711684883844293798119036952303646076299914962028986147278186748797089894403883790470676293765338900891771118861075993256448616737360308524514897753805170117491925518433762017874859710767074862855651607199565127216817552968702721181253012069834487297545977944877379889209560532849299614732911283905665245416767827789842646036747104017393468872851210993411085769917361099256987873887092895653515311001121036852532634423403657344895410239165648646239299243498163414480787496688744930154941668185339091988967486339108817445357539951875842640661672391534041734340364692634183083603703637264987993365637500773711694541414966780718940040433108434997803481071584243329819989384935707976529699894155697253809750278136061479825612977809380931984555068770931958247289066673019212648148147719635491716119328775539296882910168940149213668747650596590985525785250879545200375895313797045917496225289955289175640890259606666005699609700785201313032694934483630774078011271742110193869056675596995343824981817341875750612149720217092922878051290080719559403905821081221409468036192603905749102556901646513549898988616252698047608530509714859070346702489757572819584818262853078543272283528292050337398457341669288432745558029838127293159621778431918025092706681057543969548584452710033012652621011411844009711383191814970635408875482287556335439056240116225824817665316945757554351790062970372054302236587280323360135427379728873873093104411052176291171692422317359424534361069860861351211755688684028966005898975881878575047430837547899248208809580206331908796427248658117974466820129683135140670864507961288226537117443592137892567812521302847460058411239930052754239840049358027361638547214156772632250746497614245448074076359833330094014203002453026812684139996038931985825920234882558493926192873076248297765644499141501028823765316357338782225466607646155154056753488550140896758563827502491688698636262771828740627529805133554393003765973143624680735079444102144710355332837016159198440773311366108855135539213596051922192638208662160813290513343909221563510943839689426560247731039118349274752875645474835232532495502812819568947614374707653559895848243374733713449722786170172602043662799310000766849298710518061260012510820125542571857984480854878233109968169206638769387602301635761391075239314432525420738825158510981070514722264851743869351360728464884891709437374537791876925757061018864336627678517755984568236388694344777635686265455388068914510670734229541160551744573772818397494251604475209438950490726400319326348924959817856492333397218904939144167625957672746081572338319486193892274709562060593214000851243903335011474549895592158326400484696203019857568175309573996275734129582870669676779079081899984139639801083072383690212097907001992491280621554411236906299004345990457360315431317169598269528157584142582194266739444177774648150113959892355889675900505805219073572302177416965427520130457561432676965810785515724526355564209490662577664839683982546380093735781678388687308226117465953798477384441614010390084492488459972951787496292720952940480901992165790727378911281781453643846389941089667304498221537319357419235700758849383980300816710367468324647661765306149721603725134554284981754848596386368244922410321960272317725348291608933167978009437221568816595777040015295457528563970358479655142175632063568350523018109084270906653203998170584719073394231852506400443510271218076740556554984753286164768560031817386443785076892120914365274510226394810027662108168171762881680840055595096386547349472918165974226498558598818553910523096211781530536741649413712824654258618838747353691752992095518160930728889192583705346146322146995559664541674740905726847788204905821285158568374111051027863173691295417349860603709718244568982100054470218176371903032865494762646063088703942929676364884744434635248980648640581841178334496264522716409801327594026253497263193856176776202977854851980431904310582208774648494480793817702644645040890932792585169381225515265375364247270521462069479212826588169715815974034860838066378160369349632394358741569581105929712301493411418656602820162401604341426496036952675965004164080223210508688650347925744392500996445837250987432608264090869964588595255682858886059733438291956595370920176964362025863754321902968176720248268183391676616681680120199143716346392411350527300331842034395074013771211594527292476513514854703256424280062219156446383837623579046430924179953278087476325468887775700512798943500597803567077589629148935854940186266633849745341178970173125034265540185526342257945180726776852260766883358908215252041311882947287550043411108840545630223862042008371306312821275964903118370956788121064664011399780365013102899679472898804346674408317345233296670885330566361096772661925343669638287860422916845305448436289979966356846315492571851590144341784633488106745101563089642088785150707463554179831329865457586801436201981373494492781625561229940949462884828380171501320122382967309312820928241060500418395536386938138904277623921722794464645702796809873207733733913293316265000977147833120459073929052580148762085666018851954776487626923118514836137172276290479508360698809492952181771567820820688247430327035045820924948890203458490471419079998222005999881686763608401524743384643408180762154595588031620857970685747989442496251311419528701779488478609068646437150410374550130550276845143336498334006987778251313908130037541857435999588116506750395873880907230645368950400047635847594429499672971883476004988948884572380076175855356475203448057253724293229404686275451501578589240282147203245116983384572933044865233559551021214528392412079323660151140440169591844146700972168102232535790136345139564094655434957388220469631127336336871957739904815928797122318607462351531730356796344228665190834771351787383816501558772624650186424107754008736734145683774317386657397847134808487130056678724648939600454728567928942934061369306675827290725590242938251590856646825575337416568589212266895550792982789621540076823680196877525536965387737529039095033526257364636418851302900988672177033307064133308977452648936622073738873689729835798169233745440301629788790557174885458600549197048003125127885808287612217891131608668025493234746716184447913540692669109085095339794832860716813575353507361606934635133667889507154575732465379321737728748570801675501451516668899320360724889747194944545321653912316346297675109655871757207445053807903274955478862590561356251531619102377267059472696390166861425203958353475758731996767126154485203896661808305476140910346849416857568794002192589755507808588387691671526099020943883975036952864439891504059537993660476441378894366700408667910697794009978252352360487514298127143290542792063455604140434737954055004642508569467598776555619636508044674567359013280349413054067867923609397415249708490849381412227180217061010134236264540688350032044997311924510521265677836371323249583977259653666456094854708325607328194868941093149679083350610297194171406885502239660848279316112685451708920909347274944479947282639472006383118527779215223544158224191435041696955184935899037684480920225894025565713972612175039776438569773512435877064839448682243685927366193179523673539332827542037537315694628066999481217289607900249454198536641228040483308266884896717625051480770412900031952384961924855766571871302773115635382713936549265593227215970935999826894130184508795659110953109574803461496303348521499373556511684398385011044030549466787912913709352440548728758140379506855337125381740958449644149079922030242190850825420458149847492034331268909164840071059286796495244686875999385837674487524916952603808612839301680638053276481905575790625300882657291906980566780979282071482399017841608590474235018951162786294947722647015685321652724613375431176652131209724142342857252857909337785338369826688733456043615279679809920717379019774790585704419327919985090942195019148208939544659729360421350897313160956137793826609422801180309510809648890701848610857491777257068275816727624133704568693964422270399813122252794906104996122220970178773164075509780863175056969328157833755782012082460439109092498967163670612753141418186459582038504151435983108247739510744174935339532626414783486038326336719567058782693564129941368744293350154070436353014419509406115652301861075201112844449209198599874478709310173264019272167038197969471360046796566925594121467485759907201451555760978782960726818445265183588967609381410744585594428596467484631195953249386724537494237226712178962092867663422502155252570886379725471383555797020527220347245235597649479166435963056242995650116594612941287369405346753714570353774195518056602690884730166982851515613583039663931125136671142572507653007236721854152468685186774946700470217716314372201023302895804805871423879621651476740973317114154411102881455830094811460649170319402603226427114587586040803430189110925466746543934908214008779295943414709893015386897049806680877492657839360031156736464418326530995247095052732706997886163930562606609065137571269359101000157050526271103586248406510250576994521109887592679596749292156605835692121485279616847780060965881074308795698464232016344805580290208323764003538808411382857301648592498509329382503875619523652264773178940445069333112986783312606767240853786552755366675450355944277165429063345203404137359107864454032675371541259322410912295861993727670843262760518348527926381913125441767102408184977203601782105740302434108015576516649464116245174696745483346497502202940032891421211679862170096595561929396448487608511006511469637676913875698324887434307921816288641943227512736107382833966826602383668219061116799982394743196885252107218552859866361488629001041149040781416067727102666122573667453432538987890279325125528663316758999539819382042213157624939062872002432332598977822364471827333205660357044725858395407778298880030545915906407011726810279624611754554192323510820613988676135628416305259683554337851848344708702997359122725742639273100550862255875143743474668601074355637642866906630452984762750799322030685616405256090808525654838960524180523543012918270727135666618838629424163324932194156616322607554034784336374932464688237038113787143228207288737130839580824283258746237308026793999104003724770724189888456670393070051256121404909935222041222070296636223339400376688082944598268865884296619247647765696127818193377200484317496631632017507160553354965572405779216903729926024803601998400336971696384782821573597480733622073335559813392541524101368652017961815172646539445455018916469994152296509685431646362310385357331742057735361429535647078795363359059575924871899200707584909866569190298100503523982503151671097723789643182470911039693841400339790498742796792644502232660993644595081119416992248066428332072522586535785268389009447766568250580339437704642073168036200796247451321614548067873651381639973552579474327522487181296990681783067689556709589849122108604402868507176767052039813526462927829665993580551889334655543470562322124651099660437473760615806588899695123211517219392773022530992389687296148701527164308698760479730705077671632475515248923378745125392518652203398365062434431242920191960002834347014626992336894373191451243295763688618816660079914400962009670487521557993350268547016862618479343002768706441911182219375194964945478074290635828093967911407089982503031367235931769006725476557696113623799697530871926814008481156223517419753453148763543918021600862489000446518634709376555834071962110632983999479423936322492574335361250748501577508350558438969029422649552714188559640506791077142335746341220901730713072518942306866405483393556092278597715787177278440267469635584445946362877138449066790650245490453397871054392218213077265373183376904702800402669267333961911638102460518935705230716395710023874618710181440518281564118409704187102058029492865516934949492625248904596791979086539339537786314120743568710239403925607719662367827484695436779648441737271231878432340131891235195695070159498054328181129389177549707898456895773543272866396830755192620413807139760299134206993895951126265235253661798713293652130787759589240678603722960703754520923776873086922987496270125224823256043066283636386725341933426052651976227102662972651634182241420873532230457448513237111800681811056940401593199405826307196672045920673228857228114731143283824654666724070138837383877342662384557093167897288609339655291598468231369606246138760130331539008834504226319846006131394145627327901515489366966914039839709527475085609182770902445648052801605894013651359362777424618457014954201235402475639029324635433996205637083886124662973378661542991914081490382377395041500937360055467915451812134677007014563887194840921901506895187431986030095514155916796233999984202435475363238602387408003288784917517512828087929633806171632660670691399435736581241727678722230524056852856072715715393646472893967803906577377456035188338953568395369428242067624556930686755874938380466577821280509868976130911076545852906523847402355483935292122306352199867307146359210800446074482783684879074978790860343432461914710561216017376279746286189585268309592643706682660061780294187772982829714569867146706527290860138649277959673489713847061804873504945331174974960686693310646259083576469364483630087344495576556136664964771112670135857419714097845560427465194188997945851215822173228224210910249485040505477884712285466125776506804884731171335296100805751014627582734314578856143358232067146858800692491111931798437059447564834105336178976931461859893759768236273909030336912398427488934953361127312387575830920370780315975026052843876865140320714699699755139237387710245234097244622134255827167656089594555674216400886661304935622035077160460593362019512184946107139632564142670003777692608545071880074127146262287844587102952783795990424847020221292307980668825308178720542987546258049849917732656856178314094451466166328905112364374121297974881887982589241885983186842578111984143820516571516780871004237618538545289486809277390320344822299697417901676452115321110933089102962940418017459072439064890758742444729339514343531848300711705792963737667395702224530719152717658119868526444966889803881419023693743420368982450955237373701054876328493355998808999053970708413067941789860108129607627196107448605258486337499781115561747933422867321259314486348481791418795157642622834349771231757131360808532546585660168396661435445527329521200960895056989239914913818669620115611198663298125447669428061088545352803173996489976111789842404794030495815771720563919693976539813335981892129238304358879307901405117522463342836849423783999688706937035762358525518056052640710865666531011340571842666225319970698617452006234224404997561038863001318687118148495202075478631374164473383819318192239265313457385676656489052820570105458709281871237628295639457377631982796191431657141507715927461829548129624166919339819659815846971451303473232748854313171969708461126232821380565564424742746828046995015266610474791322794289207059461420721657961581522577370602686790817323344053130711810611027104528950221538837314602155113902543077267642250948479168969418535307421385089202490898914800022846498458032089435150500518354462340712079949952839373915206107901362532755509664777049739306255347516891359550522641642869967556890556388089170746802529584103716836430745574339923066435476738693088253172657085658362321696215756957463807544963706119313782611353188489500807407661890897887477065121280455133581519202211073199404602759868244346684111350500840924461320962672375118922796580527836981057029494527812113394513209250746044491698538483972593890371599936907368902002288217494693241518443308352669401292719239985093134380298385994491534313612465085995693641586432598625341172425186475597703040777530985071239082876040656977065405493813386970532815418005837574598214716647720858856441413997774272280513595486926823064348093958441497048766058216526134407738342258840973269543438534952458765475586345127093092052653513021485797374369625623400423684205948131804856790271267006512197652604019721491580100401787248459469177922699894193247309670859222036205167444830634783835099050101355579989968106474720452863882609220580277581471038471629446143282085404374311601361400772263897622691876233531437964377128321808712019894084537235128018095969938419557819594314998927919017217246907091143975939011917303566944282156865015758079784497810033238642350186583767481994472617109453380502836774277423385820933969552325255821476215217395793069777626620006924933134340560661623939198754615696636817753468996573678671183320845582870727096197008465046184568494955202031767777283213929101144415409854655001489052703052648120404853444208705145294274255546913820831972729421399545503426739528316475703052295384007854090138356488292396901088630895749717674429978263904359927527202000719467178682445877835791669360177668664165652539317698752012440901163181815027642044599502970238926636467387457560327460641958810939156271364951538142927462775299403174077631401504437705271365917010830116156046272334182918649728552832596037144674474866971297000986093694458041564521895468391609330022857916735560049293400539462396813441751684860786730433813210678782041079362888737475783982600953418595513881066007869436622919095126796607438311777854543667568986154959386789583698076901001789904805535931658327098006180518748586037235528050815759453505080909325666885974198775065369450812381210021114154836870207900605921136520925380576244659718802680242061056192901435830568245257291545018121405360233910763955754712708158910155333529506047817196930954263635338840113084501496006812482394765521683047231264355036591383843698019496421828058963037720013009672209005758617672021975581900427935634698221503386372461746243917535389168681650246983329886603524639361916274533253075833608003245979263389661667392705936086431793565853291593212781012379822143078512139251793663552131417575249463602546034669542194139591656796295543908781614550020243824567673183797322414843127988103851132680710227929844328484138970217209563145600369465826880948836470012955780386404125637432366576687702014905022954242028527426044218336099824144908751967397975548663666895547372458626315255428169662145691429760269543254389704054741209481879295679685673176653131425408391744149775189120389103406186205575226046774549166956879228494881193846375763510571353063873527225801578104973006827618283932413911043123582723520527971534505803871581863229261711403833400066757366188765263119451334131925912844957069372514709915998562175375733189952706671446568729990352503264431685612762681589131948102848422783422039567864030992884835903801103596856257618640034783669840671312954298676056328796943475547367032636253115426187067322073993609412887418004141689321579917747823318699921376672540365086278540481215804779237502004219375704144618703104710489374954186460008996572338084064294388549290827158091332590949328833820783079270576702486706539795834293853292081270746189710389427669577979642473414851541331915106851096829492557714276542051508701000207557697000419275680422781566037899619899443112500090138280186974873927605190889033282239444424742196302733732628815437451022200946156204957738622179404967466503676535145507650609833094548113800707687006948540819240623091209480184971551149410139074845741326794999618457153255214725966465856146064601462445705543883939389261847952607315921832734008788716931757949734987436087001341657999602642638750450204229262613078437995169439694906447912024995077241432031474699727951734331465244388487816923629354250621215428773497781641545788898921594431410504875433433371469694303887806058376788522000450820752670766920479382857257383453757454245153298249192735976211509836056922127188790199631201962002061245549349603701098715942676988921533408898665418950506321134344484492914897672799403251144241377098315532348421295987909716043173984542645832118547732381947751409360190656962212056030139000844051219481808443180970056316557225492836108771105778191946896034136150471047690678150610720650847434240176091616648227564150438586031029126907473374859740983011031160865890122673251667361256767210924054286746408852438902963430983540384217120598028468155251431766813632747535044477778768842751522230872188091818969667156345526680666583983494412808537331295840987249251349269973662956061516250372752244409538406167073082768266274835621320666607381541591681502756888951252978398385924759382438645980950526862391854342719934686164896496839383072522391029828478937687354724111892325980189297863830754597028137501988107628264822470896973041299431123478849947652455572154476336304131159529677418237260428834542640288500819782277702417667189833456223341149339268278023016282234373368179929828901849352522918740544592552124958981482959093060926686627395792788510436249233736967658430561055264168762289724868935489143824521503094037497001284143636606790958429650317403524775372971006507050645307094516454626714713126583718350028771514131089152099867897881722273084468619919781742586069927283836463506009598828195271306006089086720451475246858934394650689707195276633237750798609564634920181751760866928429606716007549580792675938922119137227078888169904148717875757911733627632670406209013310969914595058224777972071052202957711618355111365436149531718885073701696629785614611868284474766517371804789770839805806811833800492392136734425885172747882129608699938723647713548582033384503438377655694152929336483932469858659915232907892900173707253854074407825530423801426527416890413052043961910224843148306790634457509589953358090388165563485660819837161127408785765313210468695825947991920188049213215044049143512218844393675202052320688641959438919642658313060271729997514268780534939791444418841943481523346086999872460849723604675384073742709070511628683535183300592909533688082261346395475930485561911714133806069708197234161674879641045340366722340125223005058225703594659549481373957564016757739956314920664609206751142663561080143191740479849122021459352884012091559635933410094827760350734543654897983911241907144985386063287057233352675261979648959164543252336427719015721236540641284945653864123501382527898486910548298209280584517660865039884976948789783649577854532324923259136113814172849941562278260700784949361612417462264761977323556036963559252694408297379143127814541357033604021436068515228156182161297394133779061713670390537583524424160754514134627807470919488479575300324001203511383079385394587032182539815085084508370582759585697048620006509188543776944834768040573582736358586476938951931682199630421037876263980899229488996795701748989293494459002095154572460632460979135349301147169305395857046794952498271557025267481212514393642365594117787573730082852193797948947951384703253632386186387020680553629236876728399715966716427957791517218414366892967089137200724436282614621489781600095093669198077416789454932967619071586000089774749692473875098186064652725267527149083871054061895744649452191313928652000949814555756816130234131078977789831876158522625758786473621273357130190175790962951422029986998601934545161026278015382282899152463990627906369626930605338822057976667188037708119916372211997776526474703772544522204980549346725832375671697233783325383244671975714216828742316018759657243074249765677569690275269832903005287505590496352187073259761068606472938959678141245689899808797205044810379499466239926146643379560277164171746594192765923208290125634665576881300847157574730255218416841171964220292686391672093675327099235395565423867688016914428389457728391262567929367025022946563345449580372401780220945982407711219357422077549772592124054254939664486345766628477813233777348707682654142765320424784438921261130752888530555663879996338146791506908167751798526023017949820439468602867579737089871405515898040270670545162779837475723507746096425024680431653917011307251266637536753268716807247243177985241574904210409516045483591662855042545937252787216139222863993449399230440911847143250791557674205435484637056658995327758195883624415456700517897931732488599848980504495287683393511079548667791661824788143980925875220907700232537041961468245098917937297008428375742634996156210023701171996788294547318953305014241812292109966318307110224873168246503136184233847264419487959428473693825507166523898851793510895629962091531422531227126210199318594539841527162375133386854007346944876497875204984169976189437098897037836163683927700678926938322399994354987562646305489799667849041638107290172803302874923446610783806015665828343246361668407770168337861806509240985709587468850122140627802933484178586164119712888638011387683714787963725278946505515145324323297707865398048294816505853393769010066005537712972743257690255757747527426541378423630066833457082190761297038034618898636635262014862438743050958606677228537381295223939034901648850753254107556937515163254305152554516132587712630998498893704164828229238912680598586695111574209294278265424920092868733395618758285537439260849805747297203520051989654872038097228875861291869131418594186862556659592457442773061950067622102650316449741969572933083890900894857306551553389803062051909336765279030089928718503070209493034643439847262176392953539532903112918200689975529518410336834890002599980500670155394965730097641798641061196453544798448435668973728749373697749476561808529229220407227816820523281963881500538812369001471111881607266965298696879767068181553582111303560994922982759551792422314467703419533213184011276998315313719613164549854496224684888515538746345144134522537732488310004120169840794082743224430937685176335964192968146515089086575790643854173837898759249018265412758774963101207358148483015846725757215303875673314611890540743945682518452450182383973806363089786843982188877811287458728464106561916643987182195363113755989572479937652532574690821934239271569293059009993303593602221691982484827613348697629112545197207499851652391062240168474990714452372821016035746536796370117569620457472813453588276979045790782347812278841940826783786940798822443179194475998516030175735510669840448939664913823462821384701819797500143187054433354360880764443633263291766894721673164645811372298889229366199034226739619671504419773756260723434499206366932720419888023141648677544378281141935902666240121510536452078584470354392243079213884396716322480317976626517758108858813199370194995732970534409831183021181481009238073209564133331132819609937855527020676145546234719068485780501805135857248176057177377152711719964993528133045064755539275879689305048478617693212371743102814751666599046639487979986107798780386462192992790003954797872288413893711652234011557693185520519815664673888121525206215090556555952129383372811794412827307415605340128054805668840346995184423102352312480155390960195372501208296015885331096011541824998938808331139816497013459371115566281323502232529308289803736655854345326727668606357982169626599203253547644761626298938220194515665463421510484233523329240031236699231882391055194222984791463536381322757173685259181378613839731778513977354566400193456250601142885140354455600992805651638895037358100490502774616477374867084442568527543817729610486926026723262189533157012355760857307605202502101208914770832492466620098258775711848356474375952555761037656473058779002427247299706590618885583328051791985695101791524588976713993842773715624225386347669560787866298344146250747117517913720894209024252744961632049701950421533224614029806581243080553675380813968319935602238185212942125246267146916787739788027862498735028358072919868169944833366756322168152517079873633434831656696587238462193687655590536527991165844704004372958996987723355486906145411773083099765136590244906050385761194879325965142012136952217044743840756529975017369111019801994442144848019809906153096443566708236137961534797643373537850651052226584180149040131547917808931602502002524350481394004860148063900543450361692982619647498393439999895470676250066973312656571534538812260265793831348984380699514486004260928011775767436184523443409323800757552359334669457684443205639421843866675895374768332650516678832374595589954448483178977928029917062524175758362877897291225728491695336612370437397337555286954037536104665368389334715365746768737949387270979958233505643672659039810084148031845206271711780713025525841314340004480119951594335102857137144095756213650244923785647782836128801025967928487857710334718748194616895998055345110848056248897174722068909975171122742506065855419587269469896221715472375139927740981869088452551275767318956984437932949828318916228979847708903772794000277995688808749684009670794538285608008903960132986117172568473151853051642545556379966912945717769487656425462512619335024358136800105343112976578189131733338640035049107010493050155402670000443724017984127003715492383034737084384641627587542568160258662397027266372066609451554612221695343627032706079429652234328388970697243080075109721647419451764323022553187816864874201385071553028192787597325796556897563214398909325761788528079171462207472867601472544452331122885809673037314511960338765433636075144315699983271380831139259622591345986484235714002284825591280852281214069768289312863825701181450263470983934252814781749095330462886220805074386185667566211718348357133854383500544742122662783501652614119024330663987728034011939762949918867226667252266283341756177837776280680026560109778567277205491084029552912427244883741506966346701046899919226698480642223614440188145221690512367417190708289600522940001314815548510140206956165982433556852432751519043423555746704388114421623991995293489397855979904741435354581660316316389136799089236214146349068486487219519297319064791671632468672338452576994581484101001246494067054279405111496026628416315885907184418598073451698649196002169452102953039674972934224769117358757693222970034996005642834923067891162663382881616740504758648690412818226423083985111834947938962060662516342664090211036956690071723647885055753541088137181468829076989423411968190209532009761990022809420211095879931611242007140056053165518262064090017515424512874813480656244472098183246911499460305029775402006407236133923062914769982506745758088746986452288798725639392514426034622106499701823038216371626613008283574053839943644364630749183882532727238552543553474986203988964464826676391609983350345855075547079378929321895840131571437578085158111008128388160053527339495895725350826815684188031047930965586789345361426779361241203704912502704027095816364044367768739560078640196827363786397461590608952623695846713899811621387763744142743329917300121112149158534939972927313702934470712133369062413764604548432893349816809700314848619998334803836961419348872188723005129957895117924087122132899963302996059195803259274909734769092816525249480948509107656855134971650992306019769274956345812221453009650091488880842260127737832715483156387981224165793940941202079679498866383825422546891632301722285569093019168815381153702852516953144522286757819590505421082891974657373965505112290663777435575601991527164938871972122411364769829594962481553128526153511049916365947802527010731731363520375399731251587097029356799485823521077534668103600779820070387197070732744285432860123586504576881386302006645710593510148751338028393616590495164817053701087178330592906841012325648079080227874263097699227032725959328177284605651145426504814292804549840702463357510484058147532782269460166438629747535206092041318315135726723984326983471440939485107073600466477541636047482198357340206442192516832400336666742034692955064657855628118335515018334193103796229251639364492475010458992342246359252184663865960483239448431380884616137757501502189310995856999033945975992890624403220726361146432723269417599333078099561107039062169403161530750316666502318198998941781056367151567750244473230203025022501860194983452183331251429078818206611762249535293336714383472444837301810575987478818871357455382303016761096792730390178860718667603989161982358734286629151581178068583880006028888160070275996765292912972885083700144339276631629335377234436721065687605425549165612031333779115562830819991589134920688395403120309760258480454127303068841784262639846414735348937505062987989756254357546504902801533002405563160512610554677869297907829288677862059965511429280747177987780258123729899418229779756081117867396159777621192059866504196661140568077829685561433309973860091133355837802966606309226988598896330485118257734431057664038224862090808415145468102006770343581410701844777223932887678086979026268271670940146736091978127954196200955419608619315657150188404819480324871902053655102878113404606083966188300074694471331305581422006975843155138656268773556513716878599688657154292511565065123291984762753782924460384303908261935840993639612363452740943754678658257803182351855613390547619140678642055375564613286628993830360937336928374830911186439461504555035005904874381274518401642978095406052271756690510591624504549476259260302206540370811351189671117815849079147009673028222735159071250171315284602004332074299349307010005189286084860313580300154307019495612768760028609213203389902546127953337398702768940678798969398881722110616897365148442448321026140792814121032286019069736310827262984917964188657842939182826808731580732319601322133082143358047176192959721596338093378860238174883335437849786293600792181704544156944942453979074933151460446431775230947780043992201319671938865132752895298632291173541666394726051984285544935545058215508445779294138467778291047081557418138487640429602723996506759735381622364381954547925783459820896314774847276682023294712262095607561333501742833207208532977567237653449182732219311667667989086405340061081411687763426116180000207176736445012591204293603670044704393693940862396117911420851229289625118848543121947751680479127556162976508889892116766845670469051146555844596874028252531960528832349170003592342628981764576906091231776722487186888349374282352613032386054920314965634987995883603012405977381830078827987536760526436248941128501467297650365237605588682177493585864465391460045636250615568711965619279760653200855838081224881881928999507813664455881023295786214586815932274413079099231611497330683276835705174360392928767057089215116221754819885806004320886865383384128086334071878523973598749051841221880641136536083216400121427683259449049393367073866129896204296315184379884932358581346615525812040104285372772196901016114937279348990922785830513551178873313897552988312512498492425723279666985002241739539075657478107594878643262446356942410465937332630147452804523530167438439533533814646815708981801689706986948517169386206117318164057723509797262734643510883308975444287699657342941777233297639345833749193596573612682039045908020789391937036230864002235993577656615510475776046968833590061263610215542854293229103455641098512110207953158317891634558639531054355757504019169787327675420929890482409750421393349793742659446905650291266018240141276494432934321871338675052316282907499968458668454189584826283258484950124531296378352824408122747617536799594870529315982004669261567760550648506084364398387765116254888391781982351876878231194735704210145026420125388777929864502342432896205050922827225522985427165896746153356776326848785735309997002856720580434967688971385993644698272607429134579236195031698857439015341417304991870346779626508998808073473011905788735970540911357900988853705858366070810173792829005113896003228450878566096910911615384432388335134405474271691108386395602129584949184804263426850326666875652752983254086847059020008271744908147403080819182862508206485227283870996284473933176422699833771939848442277958410787566809868640086092487920068857017102284827705897123774679410272203670829299565188464318025404355697208634465829894635815915549181780464354521593152809045630873373640434681716037144596391239292425119978640769081364141633144236225986201445826813081478630612986446347314592759454214601682889504117274846062928191276042338156780669923523647902162502594438444564042547752527136079170494061052406679441269377964895428097547912296390922745199381032422605677840342522576313257367601248432427100204302702904627604421984630758625986657638304327501376146201703348152742134016821848258075630331132344683196084618997232601104570955929258545838804997841332602265932455351356928609436114677577558334217566955210763486219562464092270925018839791849339141871281770418798514361696149608241744059364154424476353751398369842128375666842346818590062257003111538805454724297500321768331895169381569920068769818230475761760362178180647305111186453436391898216316305654760358784741524528962701171774071523197853302833838974225160029707486233644257069712771364189946605679799818444737578318096486091340196149596213391920738807765340911587731599947538964344595657769057569903210825750012421531737190577947985405487506816737390908515969319993999936953076681964583014511968674802955582244825748633287167253718089438815789054241942171853049468947593475583026812914993892876803603963121570966815256648431893560802962108057664441277391112967282999113490412447998116117612098676253223505241796914278484413433976899365408218501885276470736189216465164768393398207803538370902809350528204920488583628503810016076887079885998742182600458856373987419761903788660955281561649765935876876783976088067583447578030802517400647000271558500162634719206185840595170615925498527498530070392138011319417130068229001541956123330703340023611565398445151699106448668063768520827051531356800496110785013675040219264227201361330187732653472784880179592014283911150595764386902211384940379692539396081187999805274016554506558539581051669950754171747753472462970982438205239630937407726298618564399803792126780314456733532219577670117287806177145502201482066422323978651417522163606675625676230537525444605630395994246420603606614360729958625676742505090650181930054182314198391174456363707090774998810762390102956785213003467187440757381006693188541479723377907994832983562719124844831607182737582038511881935211106299781133075464171090474866721158892432474517708819182688378291865662065480896420717817612028509944549440757027896369188364204177075764083488131701438449998182943670174651087750945360404278174905811738540627893958809517965845009754310135765455779504779631249743120727500745190453494252589830866854907698092389200486022924630788691910705903898676574901702788977266219112519981345238298393141918484960434051864451656368316336302970536826066529630805538945260235589691851876831758024342075156813440976736316655572637121987144299088656444536031620696506196889213964582662429863026994879156625086273060862032674451932901831029676230714266938862593263201266067196812192356530181434397196912445548632855139223397510979142939942296731291334360486342252801048605366281964691049395986092975734693374404652404417025308240455203867903965035595763654482854452239412719180688541451809778030146205570886449111655285751602426014367933765459231687748339324794751892631639072944575276067026388384806723156122014758261306827112549232012631560433065042276394580936793514240033657126325174468732428153692367537571113488874768580385115098436083236657117444222338584844521374642079844207194866279602911201967374195938326714419058808811920778149235809453939473171812924907980800914639423570331532479761640251430732371613017991258878077040794874685092213900401292238698077368751580350608014397399790052599417236155492616117476065308570913341531506751972600227854505178163565159463640601972888382364469403279308003863532937445105519868732103831466002669507649579199886359310419573706144113461715852890035355104641385114685066735706864297641345484092456282385721308769523445184379310899600632778078541023767604504811226484819698955934213542657024587204533393097805122030309345040296946552157884182759277468564051217326223804224158379233299014937245909452257327431427556980524628526495677564325428948169040694009415376315307983893915803336014410298347054027912038525854682429372192993246101295849101781611911579544067999748359051470938965652659986388782958097709736109749401759197833690658637729615973737627765612071035731173107568781941699856255670989510230606900587602330895203569662014235615570250041281350613337571178326788958372380695174485283823467873619848994707098641866052150856483269542634842126062093046558816087595021966773167440332680373612457392308233594714007742322864507726206825702407257372299869983653389241729254613826773128285236554521880580325659409581886275205648044062678774138236011678309537218896055425308260737240598609842741177571641461935779738869801413494282585865869231929525113362239889723379467320326842415162015049081869908129852541564436651480623920505157918234153195956546063720640527364757026065420501651199839536363256540963921447593194196843152227642326874300533274441064606635953009152368309770607251464244306808826988005154049105423768564401158816516433827545183562868220579333376747015300948085863534493251919295140755092406831219750466160246945568976573063042233418996361758993439579294165716258974862612304083723086787738958212842363913239885398090708146452459773496051187482398720995952788449776288404027497441317279541683572291879152538456456184716062185753998957534794018643283590448202735619224839311380760994881314023933437307845606959801502176306109055585115399412892782627718486041739388971663318977723276216693174219309189905109656637109683354624611522386673559087005114503071852202621747852760942158957540709471945926096091259266800597422038179916954749154569841584739683574237983159515117456686579455638888268735862062619653399270311739074167830324212477005141698521227835975925817542390516875553913978109170352186544081254587368758782111905428614900647318358859152058708437605653552471364677822171534359942871765713786006334076498251178191670391835542736546757737314927030607205894764788571098889184216635662940078583241361481337711546631160311863576551182960891839881139826476838705189938281634319544043863985514728731770047618091955582471559172139594749876214152743183646605157390321430956445606751879609184395359335869960790664405940895090824543593290700510511818392426861249721607324645746885841262938319001783816123325992474461838827665405327400260533072085075106699421895386859255399290829705065847838718316004401902424533096972982277279870500448549915614327052059560064854444444692463629875599250786429574733422803113155642557173472705937656129865308457174648168223375018829184308131957738933579087214784028056979548202183427607506688721415615466680537965480796632806912812208100616939018475868607882983324348443196364416973480523731677487639543010825784026650621863863337491501704081992330916095755342008272995686908728390630597526971415265812971856042713195219377941851496321378294417483666538107479316152738526517322172708750385084030864977166181592359801227500381457931064694940344922385324573602648583340521802661550387222925214551829328990474546040643074349563424732266736952657863219722231917554961675134648277600222519604085369548866068916774147381176158139189582443738345754319572974180257182843188255086740845980421775222215979423265279126868494297336908136107397048182545845064070843526521584671665272079674558701474782974282358180422498572368996538986172303992315298591061852714851277169786668150942640313411074230851135733992183529441866764378787574412072228857196074432141172027545587099577679659179670467987341247670496259658309367416007309103563483251319435230912881654216146297778402239983203503218112546910304823050147121390372056838637021545302478467468066651971930103192799462872808397804646964947319140481273475900794247601279410620370019138363249606998201227959947156072869108384902545550662032901252390428461013240982665332834720507147513769738861192042079732287358632152414457598263106128018672933062202574867801774976216869032603480419804811397511496010623885203601573110312268096018073862738988442200416506215654841082790353976567329479519310657124503032987593037417155894366433808752976178442524008089708129614532451399843913615816805797472900990313907984368046241896956027914317848736838344351482893111926730380112000666572699787446026292304487435699854422832855617194306277212336373382605822761046077768170312569051247448780993627949564409786906293920871910609093532293518022528771276904905444831162502975771371138978993562518254589237728592176280380021510276224063530698092763013552687737138063407640191854274112271086479065245831648355050582016441095479703878580906280955015572139525253774038036503553558675981967757587748949434707492413838746242606031154590034047316034547091562681146918653788618267077090591562352527326696188602216933149118034724316446313724575954820410990275192956439639749692220148653631789044293599869046747981538063976235125634694915134849314140667154442707721790041424525462511434387267584449477543105710701385192473488275588077577977618643848824382337705707883985546027857105085034399907241392287103409107746075349484074474660468144573700122682278386051142124283331169552581066928630802312765630542432206431919153990708562733195101515329126732974359228257767912446716951148076665702961908374194689273159751559327001722061164172776953613977156918565702417920440469194035475643210796919849689720273585495640636397726297223271861423626027540041768960644417690689065931266661625538974217335835983215346899639961363669721514203403377198431994548471332390260556076035313875727880377883398685803539583549397998866651174540766673727096152316265274085669337876509935616050446321394716462236084083569708348553955226739742157246386893051030708487474179234549733121843753670709464602142815641419022251730452915966499052267085811057131897773110439513447224006905371631858852444910409913219411141788523613450358189589237916359343970871781634475520039540488978883452532269077771881413447251564252799453984132915000921535489565272127077173329403142402551697824076135122444108533932339612427659797353609913186732907159911320113555407580211728963761639981793130112878648243607317566733919708943240734556650635615693867868016007257363865553210237968941417446329129554007992855870531414576507522869017333725117085782638537544054885933931579150183019320268789049136144869711588352640223161100833904427670877895036223916247928310199648440181185205648617318319754215664534254484557155407474726690634981748886906626771826325354753793735183767651565196510288868415763325028113394157827634105942896405140426763422677167042590946041613811385850713294892330285488560116812593636971399132482801181101716254714496638999772758817766050090224403642524584634207674907082050954950720404938793860251646555567781436476284838990600757831700691205208906734897842056425069477302561062541407900390667758454873569984265631858730064068448574315921445100587350758841910303563304468242852643455725759903701140811729679786985354952057867919831673149297502878573574968843131135688330501126047243156989921614252717553790923766293036472526656414634998777401046776045931177088238950986872580199403188806013254715293902767948046418827022003874600219867116513610641856713852258907812631862397946982121947173533334169604566216702678613134573202543828297837526621937071613576480385803052722177492163338689081756965948175178662721728613072507939292108191240443177416981012674962133990825425930651825772878646550508582298823832489652731629569004064779343466638397262524242123780203305935940148721283228457735493828643937878118863364012571570720053071276427571492934628702301340454692933327192183287311903147608551006854127915068568561105671818911999494362371121406964543097691455913825855169326963785812559686292269259710329953640476250299533777929653648600177614769603383096984771022119962677305377798429942653216220352583183552989600528333354707830610086880548257102580217225730464087452245859258526533372168216588309598008542167164309308088547985583823765076693383321713238416384353719940747769292347712168354967637573466910556440674318896985672880781197612723602143067070622949036134252027244446379824607495295667999998779814809515195694976529727708885476561983889943729636241519233590141143685207054763752359727601311822041665847337173932391966019282898164076692935085991728431270988946050500700690745057131262570652204272308729441674801060116100583205768843312982177419886719671226857193052336824485663134618794317732836952466269317136247581815565867360037375548536110560559890857108605199515373017449425527790562759385955645029072408888696651686828102005488397877012204535424990869880750168031503292822783936492299918824279535168631575578569188311758690002830631374440369043551057810593496982486969298387375150071206392321566843429240541805620917706332835940710448894334531045123606550397281735948165140618416740346812188648677387178808369426693191086134446251094688466801091122586756280905873837179412503860931250508560890068133854788923026682826108232690289909685905351837465638915456192994413804684145577475376588787604256587834650238136980770799166037670764157758941582934702288059120748424705961518596396460355022754481096408053605115959440944433759367328057594110818182207004405936941613168141397201405242390685003133013729834125389025869580212666607301222843959617834468464860968611817718021245656896138769264309145287461431530588964900356963650363110722568504761038859978256208867377464510477105852377168049515766879297025073954866511479125426946435918472647886002792481703327147896566679397915821905783435390068919755069012904989454920806988871588510842255524198631939483457519996599036774968828856482087473971154943976347594969302332703932829836911847609046206853361504531451586382731131540404920046246864162924905844216077180858231378010061324026037702632236910781421893401653833055901501304648461315002871693954724698829992956451110523074254653564351571829929007195574554532017467557731795800596850704061691073455741966587159097694842177987445239967764394373950487594029290701977766961191629439971093466552905618055561436440669753839238653455880735336485305215884765407560046872665578530104345502786493958015835937288660973543338920649278291738834116920500195571629859416200956812667262582763716525500411942485623736120073983580415949688162052968330676402535026814488531538628435835751318774481177785055978006237570455606899037414819031923581122328831579461290809455221085699647219225464346484430670370778540135441708558874170445899988279726008489376478699518141096843726213474800542123694116594011296325535950728904955049752839043569756238615099064759087982402052760365230403143545240958950101427047415334421106233183901506469632316245563183641138592198162417415096916267965766547979963595704749858739132312273283548669233191735240273286117652316322341453003023265254963446530128700899551153723073194167925629470030658355667021506009327673001864225935029655136172862034493939118559929543404444825243266732749208048895218097945807000203057891966652861497027524553561667141670177787106467348419927477240796810633492472656290569626410781652113626577482889212448136082267237026299094626962349537929723116625303175037346944887458572046321373600156933283466536590885868847489902383094804769334073680917120332228473745968886581706527254608206731908416639858211538192886216615514313833768714514404803651346677670804107558563924086779071861961112024115593579017719290291044407741643042175912107551405092556214415354421717343928663401655555583830065275962037902132547991712906745150558103842470449799889692155749230026847148713681682154715891325582670144314016454908892088743260788191396408076881903467793172389254146253828806643591019826171117312159081272001608230327660846978667303100901943196329361959262142038771677121124161676885922047374572010617503375115712657419212357015085337513403621723184359883702441461551337493056471162052103248092772337910763384483581706216657749234210661227197182409119893133349521458667850094327945001288162626716299424403986652436389818855051541445865141021928442154992703837321026285615458006692521732906306534748873297102273190320316436382895408920462401271204596940030430493151393025159480624190494374739682364939383434681756968787182503885089490428461882421471050732471344083497282016104015879668965812753756098693360253756271979303124344560791541283305870354781439025097794347998121383235000727471111919370208581191191334625428725532390545208000190022439307588146104894697868326556847862560735306978996085396165917281056850781574873628134653601861875683932860647998662781428202446535241567459026273171433185282586590326562108175849730645490222298850275555818029074071608545450802024003250196644729284941900641146185835666812441084977300910818713807175130377925690521026611806343249022771691154212549172740025604278295915900914815661177004271185007122196690440069113221149891997097931686330232270407447946551580180281375500558854511612701253779776829136890067996564955047380374402259155545242651514284216715767393340422618211036699923656643268392950306658997162536672002268971915909823827125319516213172246998874356758081059104049383224902660758301445115639139361608749672202578074675010179008932838054948681006404538391887283075579895264502478348416587772441300169790239941431403330206618393242731455553445346546699481177185187959197183030048709110665754337553657543969318491776584545202828208728615398849616222217795711756140329505318772431493736544770474418671355226401990805396150461000641427419295954172183964705562135775382890694455724587722077605314764833421729885621965961941645775548755759251684593539417053660362068335425406508033228309856455579283467583179821510058281633095038288717559308304771024301455725934957187691037434769570349999475978239447381876533249192035516817959345947409131023570053611323441730930829671852022588539348122416830576962779591346078940499361221475739574543611087156776273096076247627845041257822482176288688493459269702615525349597329058799239686708393315483548985326053534446332027573076299473201837042609814249545164039562250518966417016645016073843519711161625978716434680552682811043738764529085410105205048305441561226192276295902120172493576893809662453543162298035218181991710775347647019318870228347860695350001576322934644664145432303165785479422432933508521353521241846981196674003656069007187467719752149937724295580995215890598662940430633139505762200867280761306262403152680732623108457479839694904376292766559386152212321944265946438925430923728843803131644789210587281234066730547113268089019456499615181586616199084872683570654427547219022095827277424284453649798418803274562032600910915907044398950192144591601807430030416843125269481118282204774061152846799741108881040431872317275810410340989056512891533365095231518415462310388920470222930544634632510470319583410966340163848995662461177132777997224401893445253667406269019169969317353907572372324086252256580730510029408856204446861113786040984315463251740360245998631184651160164418110586992239528746530130683568696477561024693352177782783936055036420031081803816508479352554158032102118099391760937254134297995625246699809910705641659727615890113480817929485343518581357383620261950506361611010949734395631373060080033024542993345393178128193821690944258952080446325896449188781953017624446567213526792779213164406478255017491752536923026323112963967454512791566808429128457821617794506003897076756122893930441695215540139105026612308201366040921509561439227127125011041865972440972335205816587125121695134932596734537616928532140759971171485500297527578797408552749101044521338897868700957657671789190565624666803078297055461507644266747395691798478084996178334051455585936250826259670888353228798601366448164129783404623383397194245998350449872818075374014189409936126853553722082525590036009075384294954239545292259920915734959987535844611382488274365501753190548945913940464829654086163593306271903661838507099162111568000449939771297608004126871410599043864566103919640063794409435212606621815883360568905826984462762463323909841972684498778571689274307974544289757473900930449527896018990848214437608398144255002688407329127405447011264399506934242737952299762515195408237045805322830019621090932156097420466059787452649981804266498410978244566007345234328402708236413736280499694616803842357242555068026159601611019806453130043524164154867936505986932277785579371553181502780565995783321977858117016835109347497728306766586549923600312036913452365606604868932641313758553047782936861216029625336580387529845950221199193086843148462020455262865811197791039844915501827219580641151131800073669628291509609567674072878975082124728023137599909090078531656198696916307991702776841041799779827836198305572379747699289052069609598349923068402364687740111672141987238487613509529752353384319992670910848457390174800729911309575469177477889530612238032671208828866762655671010834287470449792724000779879193572007644627051489513826612961877970738066072099550641858643665459328168833937131422089926270399668515749983583278267850905226635547370688377503440124340599370557912659658503558460656951480792331162133983241655765433633601685104786211303059683821685886941363855617358887414316038664540049357236078026050267873917841301833518376841392577900593578661079643743567380366827970123356407058193857891828792942263321650026101123603297589027376265380692656453649714620851847307126733865167567923361689462186968734126474722043318024335881608119340155925198995750867582288250268933976343796829686166652184114430820718646718067428901572819277420323203544530351088780699009392550006127982642792401497577652835013807954636464149499856448931722245322073340009321222249271001863598561020063611261035796229234704260617649459300296959448542283679011600691520059816851477170513924848124309009457403283151522838340585263184347366099459112549509841384553588757011171598647064037795643393343044329541695999300574824943659257749755563599100850311055638265206913310274106421939934163617388574273323957370314603895211256737009984711336739838469273940795022293636043712054683055959035422345668224338323903583310876526924203586142312193118578188313674940336823326669645109306902740600385279883125202041522898912490963795412214109874536091236042997809279676653108157697591723349967470032468203752293960100786291874188200462515260342506659894758929796913514209180364479614470457613787514464146711778950123399365008336398400497736589701365093168518455749126275110028553605839524493228354024454214054904857417207781014614906924535627966684225265806376871993611066387571988585956494610979662820923596537623637645324187594630143999245391707931164645881027324355711905545568925712422273738121396757317394383884989986295518691114825196797990122679713525710362121529962892043548240907112084638930228630074147806384229978013561083180138335164187145059868674631152867689245743995176951249938108102470507723722991605580109225088588076492217551973352026091298484243171754366537597320533984914775304632991447133331816254617106208037169988864182598624348360391567847690824071328017035555293356249499210506725470081532464922425729265147964982088200995057464738390447603098754552449028787712629716567297434764028521436261203325861645469517306811609161238551804365814286036865389078594178384972150565558754454795760614974419394175311933013959451796274119091652134475964025204754841164384379200329812764379666323541215118693587660643910212179607329707073544803260720487959188527019914195802838414362120004908494288083571997072378830561738357245163138069063370065153806615764621994058871756846409074315648701321483657310588123923353498961357741453650216372433568572739232614347645003860299532142172749766311513990254639189543967197881039120315203744589931283981598660849763047097388615555661267905357561232029992415870066173398951008271503033922821541424119937331002349206270699443080148195539211153723816295282561991717396690646686692574993990238841730702186125609079592590965052485053233713153482432275138800189112838381598249596027739818631726868292473987479466982708529571904326916092489986707237228297210611606493159359196973360874620987200775319940709972990653966562701469190520282356622163206447351654800050348803124163195139735198586865736512606400815941300542305417803759841152909846728863128996738276867996600327216136239432128908698413838922591198798501153070173001794698206451153694860603707274838313070147548454574867938986097122686728200652969784252412300051135996400273381585296072294193568605188137110293129966725341646661513673866916442532181420919918554145665794267038075752438354601761245569106488946941859653093409282066926277714130685296856434563655150199077326335763502343552967510204939218928452596448851666522616696143951138867348763627074813397416598147188199513595242169104670417975295192518762994374643704809486684839279486148533632207850233864504822759699849944399869744485391343484048563420478508105705895601606237217570714162338424841205998361206705171963263599488030689786726330631105210294119101782772748628149611513897746787238650922175082645276992876156894677345481954821964027313904397326302679763369073024073841584187976352302654962144830991108299764419709115488959484485137407569803377362324389057122584371995809538979403877090925685653959227304900953930437489329180687020539346058398491482415786836033757614219127138546007830029805224596692838729620458204812641203317681739787468490445153390098893641829675020565152988734808556722566226044668047696888866496602975073753850916589428106281959544406672131107412560850455290643368561989012797968613200606336337666990953959569566596690330766694372448946192580958404340173376185100669027250814716521663808884362339762276114485208492322974268384680838440912738806027374399397666519649831848997837684190673388957575648966582378454877712861054005517811851953114469047581903995315812934519797422697192522727617071879732503213552710763738567608803424145125126083840318834503289268760430208943788989885899586107214333932556126878754045881728081056609899189265547750866450355425740364016221265121624846392754525157950218148361032382245426130914061116409931751638430244385638780412903546853618255919468552971404263770546401868939961040832608619000396171468742116981156754693906912764473919537812205557038015552311793996081888096985520232618555518555860994771684532579467778220699094170275780798843099401378712980610078114208711082646527967724579434090250228683539041724637992619922189248629720800476948192066511762290394182180297717221982463906752669864913847007652579690939054227276776091703238026143540945687025394625734397674551252667952360316933407142813408082696251411676252545008377953761248572935988848332540072890182361974905716278865672817888819889451817524535391209603971425091001605678842294287501177652377524735822082362939221974430218551327440769009213952358726079598348348268828548025003869043336568332804148787352562865570228303343124984164844089229403724576145827590717698378162296866250948326872445049074574943548436274980780353699588776243313536646668468242887178445026173104748259887738897903392451658659197377020209872430739264075651703684360439273607344235833656417761183243609260851964582881629829990082621067019277835410954556595974502435336831361343317648365139764091936191530664129081611054021243566609336523639895240257175038363920203177654366806027724094501315119963422649016740950287297783521316278858031436371715671876365995787669916455456605057954504151909766156138161404426760411986477238802712597878049642423695510561472018263751855208130129557790399273892528655693623312357509538364167928849030632775186382728744997048941815862758899230022304080733824271186700946267022661282220036950343605340911101040140075510270641052755348489654750002297672095310443772288275825775115729288517141458983409583527503027919354883204371926410359398558935461906287696995203755772235002544646314493926254502085626123368324457179316489106990971798327473970321693884245294224654157811681874479000487096101447572356014798315819921050152070727450845891391651273823589412344422328436043344797723928702389604962832789661136260102055619523423632720212953230838513362318210829200475827347270501873429354995419074270544262110480242274943242543925814946968094466883687186900350747956173204353343958493362894204002024487810360150927823529849590825818428510111104261111475450528450168073534276481865491278179469379712451025663697450237543753761914496443705566919240176174635279495377908089088925994235099389965713544808081209531234420476400437968295499940582159515330932238633030023542511707290834370275586037605961805787075742179942838402602078544000355520985363190866086785704173768892696111970589059586491964707516487789442758540407888993218699998285737151649912038575684666845917397053604947264668153446386860385548416491360651979210031101169637414952964511791865582371302371886638672806587033070401671074863541154608173026970522343108218209266151252191085107620943132085396610298784042672066868363975907348710460695831380536323134594723450938617439543224508857899030274573326955586438271983935850089963098062908671910941974226110710484007672379567377828386526890116491140677528433525397492168625622274538810335092663190542517262680402239040986360233360978763735221015113826823280425814679118024538547752828351573293708834484967763180361600787273776499637586853357144216069183547727956829278951299638504218638147636432792758660977955963503792033299498438168771594325991196974623615564052522710685433696103632982971182092304271432794292187435864869463114632816291702998472472018274187615001103290184844933067392679765854685101067505902675131825547302475422255024659352508173780334259651809028001281390889842256003713185096638379883465212170510288894602832591969176864422802706945029700378348314627666941790039750679895201989285575656403883672969270180096366152704393913537581080997802592780739962052294772940744451220094370100254200549146435485178160136302453140722317875046505031171741549157762327628633739868095941672736099197246045067936973078181222259405205254771817098837136596883087402517090971484323183370549423258241839983021487690003691427254260064883344230426600656673283953938386198226326810827299220025770467906351081456567517459276263688103190180494456272507264568404877743414649356491457666909820225039491084355840161642729810014416129832685576702111328459807942570098391217251367802412689604700546468500782393283251709784716367263842824195432915976629259634485616183812147472552824030551302338091430089750755243726515100479655976493452164622860741780625644812076187124631060621509669641885192840165480203065691997530241301818348291716553521240276226293115336287256162934287542128761229347897861518788310971857325395836887114064050368854511597091941797300925954782501600270862433484902821814416066115400795734382224424800095088301892210259372828971595329431684057215807021886672334991485323618381077381299705394450120649767901908512098838328175179040522964181295544083961908869751898923842621334545444971166345483273205736243589742278662793613229912428755595282615321595321061438058766109535131958860419025337115870934628101991485867474149077578173466891529265136280848646875821807747819275458902793843037767009689737977382735283287964253540991953526256547237116348032049678830114479278203117200115286236137697115519829036042363025706675643046671248364630489430647599513962413057816556170086901701415956949545273452527845182770726686841668410521353285922123197036978843361112547651029830645079946284927318251846120524628390652411163440164771020139530195972066615737018050079465480619676191555603121571843987485954402572448801084164873845973781491795878740228966277513193785693357387512635564171129858710811616288286598938561320188151204567496614518958843025136688835640912001767932472286252224594750962325419750526012825597547219511324014218145167646873852768219104405188060221302093794093376447565656476059519268225630273760963538581311384150088343620358259938564757339182042367769041443352794552034559750604249983673074483095954898230626417410636446357332153578482833647444641644355180265081097200067229286416865258323089790452577956624561830259934681507588156413418400051752031220729631215519767814725766711491807915230694814007420732594991035643190887402769367519492733101844541680945242375791740169165794239744688092190848558166206665151865379695847149186914845951033173346367617896925487336421064544788939337511031013400849668026069022911198539954316809001217884368840328107766772851383624473889002643513493555467717465007428073689678772485701522796278475033163892067704483771255200290805448566735107900895989066239962050930319903116149506404410034529596204120408148116048774714812670029451713200559474142907824943994967055791964818598495381154159821386172347321367566168595577139967021936212187915337960356270325712936539684231000799699534511185899570781126561088724510813236857065826403725000029139192928621156505554319968067699068858042266096458704300402347854766737027921703039307462607555474322505202739090868948471913003054757806965590762869907894871262080641929343001174927537821406635906755002720479592753021277170600478258332140162965502723512072865567476644271885358648206375542681692916741551558862925496050634370794866854166543552157882232012647232555784511204768664612199103134614744287789918933186768488472363224690178275800586362859175991980591385135111905153768185593816829474759846406115361608875579519995354699441145173838970806228998271425764359503849047401188310579880369708550259622617533252748293609263126655367824500460672739832177879487540440590992205597487247809150322895440212676906145815841326454577259841802791404452715701671034297738929377082083748597446496733247938171769657274178118028830666448837493653038063552714332658496617044118545576470248508657509532214090086900774114114421980718395838699308440679480028283073581707306602162562819447127143755648793840110111804664319519080995719480606807900102889338556706465290506527051580512181221527560934069571469117659749614516457629442328034466085327571489118158129311132831264054786789291469263769070394908722589768892027399717734822810658680483545556214757312375319253250789422579265160162865129321844171529791987088910256212737537000567514022650861284053521304014014945755096854636536504636816728836642366479259709801899279425805831891542740770468907598335003411953288362522585857198855290074305252013947217676673001749711403529885378890028614531055674828291127402029612162811645790004750606335532158749287772395773939371503298063950146287981235408344484745022118904227763978433686273840638941536177838904231232777644536541938124079972029426548102662658156552262579071361752156468616070584251337399385967876168661634719340456605795338809561271374476483632927836669092473276065295525928084255981102659254781989712773075078007029714026399842452485624619246993883573620166645760767157513244529566501494966277898884315250092428945732081057103836128336662433665452889238465531319713931600649131221856146595905395576050786616256222821999999485574274672059175271340201795783574512832406547362763301707329281519975920546723176565614236752548391141264594087510259157021936225891558573624246993443883106665070225063468102365345986624014743013800182546488899007685141358163872934248249145189930024071614332222472106090002995402736808016264216775833405700741649692499070329110975565594216626310161841368160391281539103595987341518944500640455395811202080234164583659509191580899481920622700690964311656906079833056550920701458115959771192012838349381318357672064693558203176980536067881381215732061491475924483238250987257414027894653173069295174869920012098475643437841102392802798506669430214559157396835602046366275837078166927505879838420441108955126008501742365970137965387747908782367988536412651414144969595638808729542678511778294968760721128573372480884807617252369609970594208987582742066316557920230365884299257718471848334318400026927297609554235836631439344629613781210333492514935764456625507733161919078560184836230551468672171185744356299093091137257297205839839062926737843997868534488211965725700502197188851761897456311706630533539007941912165425737024960614664373816214452111014135449416529916850137691831579978133435910294320462044724373836720128494392635943227344575187439793170369074499827069653571333853794459735369692264424153795639063081138402902134691694009158019338602778444991543008325034283432024390001332466913890371913838306927510892094204769794926221771001441004148619525038625946511996123840808093457412841806119669492284614063334045605436544378332024554703887521492219382371385456499026492894255360486111506080227090379984155720771791129494563703025433117394606208701343615611543224110018356256970383346212962172061748762038147548600967111716573739906913637455029209969698416764310683884791839591757144840043768156847760180294645664795554540987296724641534130166350003245617022343746940568317857932636839240689343018054064725651152469396032747592059123549750608223028928616021845613851577726167688124015635480700077709539993036382576160746034720141388801881488512855381766252650762843719333306805937162777126377740513199589340031376888452206382311665566035291972045475887454035557425345571490986438836536705895453406893995714936067614549037145780854792703987264881000672986059927430590419999941347788507906386603739390537592919428120959640136191600982291297406291049728113690209968065266643950283215087280427130924132927202291928898401316541455311143802136331138196652890295825848156819879102627851467496246859488004561465123006070666174185617426848436800159462649770267969031750229728740045838790055125741342233720310516348785058871065893020379998644608274189241493423437380182398811000084385905534203366212320325232371722083299252810587166250340889799403441417900589561205191512949471888326610283815067333795142016054152651709893134339456305734512333700399225623923716587868921727807782281968813741048138151486406401774415232849013246687788075567337540133509628848818532135402307693131841083146801382551608329665793767492079710475307195315923986468585780756806347467317624789700418115524042819017972981445967812581582933527321357417682718983886635902877133216750560878648004856124091645000698499830275848460050365030801256819325283450587159894130731064199082484151219945020192918098418295887323232613393878961107669931815319207600883690810890529987169412354742348519189747592796646948160413015934558955294432869600340048339867889315888631749005793006860183261057059289211340055010869980160898019771883750226426764001686592650478676555903475396963436121706580332569655787360491992790344325208337069968069982219598731509700638780548139682351248919621096930177577302342505600691989694247550662967603518502146095786017604320026646597640469102843603319365221489192527887527699608053802740594121437893578858817384073910670411360046830738091391849887244123324654583703058691023866106182896964365511007375097095066580355594049127006059904919299933800269435458855129728416702564918226623639736388872905271795709280751224575391721214914489448203413614202855397410807106280574951372260922703149435634694337293180486398159663531592951158002510369173491316533974773726783610504563511013014496924809884318577963318208404113053106124061559753236532321550873960114363263815338044117681916759254795488289768367223758809559750903493127187019859705874209751322549152391750530055893352651096413442642248202120933017878004961760626808286199890656990701779023839807253848185006876646524139754849260101174847504211042328974788027397382210771273346336681444696261311524936005267685363894584017890649948881336788794848044251878849386227515228925140285903187383444959641822492188789171445310533904704100758591059693537069393961256839110109303438425757970559121977136045124457950205566527637058670589331547406024154755836789832838264022808400712539606935288066626059945074736232149453607024373056379572891834387424263393034228095489169310782409988206407930308768709031604946540445425656511388120319368691308838466783374063226970929097132832837889409135030460130224805983223558937242565932590484585566203763413197702262126290216422033645629154648790639923040167310379805647327606092513853875622296574387813535281453694288458688369412378755073465337432626883597638055377783076145958569042771348199073445190560807660964702688985690006423419225841353269520572229514790505667347751110454180381505581949912296897986312052959016557262867965514632487133353367936356581608161597437619805738207726011320260419362947592099186446985915545956597306834627329878368730659021405105134892732351897534501396939377555357274143287773267826197180943169745363831871474001453918415756855070067904603406038474513056137410449806783722637541608835686220114824362972186874060963346095287534440710445488712578168234836075746420515864863834564366271091952545201508010737689975732671707359675424416530935772145163489150082343232460508441828325546904583550099233569369949123621186900706239481497406160116316438325071925422274228275976530741683258669208139567173468679356203057752460404191754793070086788584329764774083615805234795711059440750969061855560174821110720417529642298006234584109030696821213017991115244892002705761771428816442077829306540938885815611942020418047449329974324009250232684853824410460173667724765899299389290560486195674972317846591974056211366141525228584518894714989615962468243473892396032350969811692197616810575814400085409359084502344808595333974165180683080589122051009589740998928745376500356230373401215514427737351595716352245865181823170623412792041965396015457536068013534539869176714254507750480826760067242398279731439276153849223569997315621604140009671019842027508987959365891925530544339161906194554168886652568087655439129281777765291435940335430637713057801636144777124765271141799147571273842321406715801170982428258903914168311615642635507452802899463697206160375632652998564040206201862597641975992155464381230450874812084916378653727969671636107571847822000212041847247578758742628909551501447433735226184075689126264827317150309157103675203504419855254237922240786728687231314789219427875799963639924104023542258405258446188623074953521849907814079118533124894776026798606572869495252803938996222307300099523184503484480122009016862691760588888275598351475704637626841008537539996756547955303245393232187281648655385673399646369196823632151657444544746288326803584938146242132660384327759581369783225235898554047575125812346578137041324207937407000656834236931543340666901274754834622243571481545094885695231396710771014726083065858975379737796229740706037893873089701977877426578666208480889004088569126430333972721913910061065347073158611136921887403620204819682621094396925926919892467729809297397583960673980801384446418831163290239243873978200386663092504325050958701445771265178512544193276071119254676936066797022047682582582501468315927481953301366775526266106816773162606332949283804153571792168206811969510084521895488369927117010859408280979986683612489755986993636076040269925324094218822856010634596761112700875085330893205584785481475179955022630746743175142433625777963967507006631442295604768598692528168132693679979173374169096650770823298529166144427951641478223454963430799924335394925906595648315473497840810988924094666365199879066216055328214997569529799895330402263880819887127182751139383590253113860369820051780916566060836139360005704625241095324596172805524412368220139817994190423366057186028420267386554138462814175871239704975551771970535434912894383247494703010414119052951563911102744361680640014110453037950153409036082863901831689278066482260508120883781889201840336765832119699992412893825656506823108664993729738518579972454379278961501612428829709484034510453805619937207195490608232073454777969909362838438132416042473614972599818914299118627482001702756734287963629906111591459284784467761270927412269284297358532517204239703638263405078065782523617437714325754730858314784090874048080665857500509296797714168078698111873442155568018012602156610978705017172886008529948064668066081065178644055832910079704547837210321648167825924217355266179842368596499359452892556698014329827133937608910999146548238062186118785690315634756546596865829090490004711238455020628848620068252249442761316463052775941198679841278885687429288060211118508290125139199364248722013866392506844221876430971314488292186011758450382505052728852382678309102564611992999751685603076707725215075703929186992118580523439677879080138351670563521672385603147083252150661443863935183430745405288889988515134056815324610131594974394580191580314595860301033351785374917678941866649138916819166537357277975894509560006822068548642687640251941654414608582657547807229749773465850910892783013391482646569493710212267229300470550569969280400530636057468302139170405353746038122195272569811892742331767368123735687898556875481822041822950149533448472819010388667349626722713798084749961994646480680740411572380829314761444187622714891189729062199130270867647695725044289720406230469191954895965724778117697691214954676378952241107540534155447076460825661872721046334818374700108408558302528583772125899960389551966504754849240961299974474725578823110053181281722840863420182619943371041259065097920458410776498314956603438793955850824763711194246987491251963235952653636961144897888711116540151950203867011983546722099459322111035781198124013291562513583743504394684758729939128822230841679926362248720988842678925062768580655588885372237025933924947933146089737486111240438438616932524936398991109301751477194403382972544510226523387323108044501899148893511301162602785832536573745651658993643160311417197692985315284271825581057407111157187588245894289698215307990849280218152263657520025161800043729174210089344290191830881532075846777625030047717041077031807963285177220430171368450105740808723062768179826540005064699014583740645880717979236208913037968080468488464596616142946728479527233523686709905026508189294233895879507847165289924832921746626749755522659353566518132295795931319201304504362855864516833801634261957404619658567182319790509653597981893841197567285827838722012763464078772875033498095390177359070938729317316872934709091840249381974641680318551013618140521048697087548820412405781660194176977567631215664220100072880721920107305447796785218673436418752844519681930495509500921264883611767651301955160626805716894293177098277080681217315730591725026730205219558278475909711661729957290113725614136001053718674788709871724924773612234535677864850403929693718887660251353817764238973786134899140649211554506623432368549866503561022185252119582506312969584143287364882460661944902689628166502213546665005389600090297861120575830722771978215702611136931438828688001567064711403412506704227981075125824918795877477748061709583656425597996444504295128470076538146787129237199324771069255376542015737207057563290391975988806137264591531637460648553589494952644919498108355763168688127101661596598298914666628673208354912684606611307731751069402312452865933731274967062041303711334101178952258889348331099440847821953787708976742485380676556975105634509483259717339260283250772657182543522792754889079140159717105639447678483046955221997096479117762489406947961357686675189689625896907122206761335439443914152979685777501802354593529946195789333940943917881473715839608678846709555587602479501615865661526228656132553094012404581518265262662063502901014410950323298175297251439834374452608791595096651965702896398841820330954059163859335373311500094589351499803259537127407085751834499245806200892814723940745412702451273971231713974131663377554760381058432254145837731826264126738039367904540104967035249037132555313952848954803318369502591984641735723982061851791590501776407097117417597113845665324157694068329561765211295302571398605433309088080944589418591313146287834317609356577254842627000107082791486136776543688904335453091496889040471164511719756177396403641304968437286361571420405259536131356771463409304608005409095613098880285566378396274029667568399624072802550816196801031309139465126139861322456973517654635797532290656536738037635728213421237099409751721274115175778247053340410066689264157029913406568086673754325686321281680393527264017932086846131656690584108722486819672273892532355157358662497120771917833620500738258543433053923786348757198426219279746263096809434030663712207433576623309328777692670657064009466002852549444054868672303055284090581863793181081650438645048903003915627125707391448375422069229311585685441941176525946266604136856769830458582291355241728260274701460726189419998150197831039979548556254799464769175030029128084186686562042577432292729721964670821615744860178946918681645970140191897596650730003263090101277459396190882181481459650761244756519950518712059152857356439782777957552424588147424898581740526699481608704381277786544682778943077878496252589471475744936257622027650627583483423884180605091579046169039393629805110331754107668754495101261265563231945800450779548144747996051553574045979827580289760837263912647789076606150242989136067874754347930622423862639600971847520752401267520988636680164152612509604729414676386420419206905109916785837648024517557700768654597532487616676029956563683100725617422067224307175946479569755023255728066290846344111286369773784569042833510971193207684709216211933932690353837275383000173222921539087189307659141605736246795157583962153962807674000455696719709784171454964630434493855907897609075256755166466004293913664145804474166488282130717700664993158595342766341936989621784560909834921580697802923552750802907545415795132343677886817283679782398260495404355158514003012453364399629625217732880899920875924160963831014356903270963790325702609291680991449672840129711926494147289541189258846879913496775291462810586131936514340083984124518932836783049068927910003981878024402410460899957939245091021803680489805385319293379182645938749256089832565532752074776414001745069455700250867373725964440151268790466949546032976771568927813570877185647629343673308007645508236816804213595590564279595528587363719439865014077449745838199054166717765470906023446929352689588854853415200211575166515912167622876020957175705775352110590697459415047527950940630930802184558001662535199664844840117384124857025726495726371325275965684019716764208716141864295777259579560440839825499276075469967475704453179669698172594056989958182825962155829945026432471096931778590319655883638928324952708740422775390942784194628359247595893469315210800153087528052385122069049188700687944258679529107513854496762906790296226139842818199033746597152288613368703244745759790244773348930434483676902533036189222546736836989303222013828718759440951705511336333626053728854704967727175293178498358489052864997381471657504529433274609192882563176733731118416836586341025420571088432206751856426008728504816242775252322524897275383987954196001754460907774463059210319993936321625041614579523413362708358271721843999956710442609813238413127765392958484040483427490273069066467151170328720377719595912881526277025433276716285447878367507569545525359658860372948156463701815952274644080693396744551421516712561404439650234156444771353617207513459504964789920223535417958457654745940083024409383290829316290326609367351743382940968833789136287545656298613977713712120851607112660490273785953279544944957624453402076970472209618591552753806970437779266638769394790356720799488772327535311682230206726567103830048965707067070579906893724995937362426122097677568925117994412701529492826964633910466538147028529401691412139060864043472679560620416357384713294557586908278914067885198455207432068194657343867423937491196151417982097304384918240846114015085911654862817726707965113414970773334223718263858605492413056282334735988306105296411696687791978350649680301117238357610290102023773052874015943674397880127565947268230317282914914965126652225565063601683254892027029771994268295585282717517376320000839701633437222868584763213113302413643987239548133715116725152857145014671675247030146443545684452345464122470577739022831067500374588145571522882753233944181717107720357686533885177965046719846134011697347776840978538790656170880103201778775872502371748603740955321796448758411436447436618557268298079085922880953357222832421117623902455927173536934114575092572749402123946244974680295598738681454185708879407753632834867045101709968986666625762865551320657174564262959079494662361334723653576423914030216136441650032903823346808219570977093099584461818217599368481105181277792134312046562322782633519462804051023634856461376090129901705959640844885886984419646247404395044378529414979601640208003348265888610040389906071125812407894448941709576671333469470790103314257821295882338362098121585771561348133908425867094565462823005788614634296757453142757292312762728617479025865869850917845238117584974445410089887997907677757455936564871738841756414610063589337046135117698836328233890676757101779075024779698843706304130134129033385912117709207486490928277714322528678671333165128732617601571488359946464723564260489542915631088743642518080054707518759307781303741863496923758895751607688719393662750835180783654171270185184079472446597384430698342377914714722882856729634945640355113656841845716357284348920221774324193759731913742780954872701873637536307716439744533073124077276718134786052638331922254274623322630372123639113034202823306756867773587303714414965742512591652516485014348958858762519155297344069435468536817991365714223710051308410250219941364313608761350314353914451888718382923692879809312387411493696594814886652073350482721767750612952794480332360144714959003160899359294885314207198017859644896836294365725518791396571672622610681934551875716340407082583530252231201491799692898655652223463448292367605391703106836539699563802242806583734625347097124743384162785169250118122098626747046417867170692448361582551949794259040577947801426421766784018519875028572144406857226140013092405645115505845994655615701055260869974571517839027636656240342080357726480201548268185399169445945312340420788668429218759553080621086197592473947731150591291650895970455681379265667503220078771221795833814195723558431837494198800956527005556576692349810529895653206783119859868379039793841579660651631490383259181227249091250929874525877033337919630771042217291628652610021311398196464699654463887964187075161783120525783706723258896987778306554716260477633971383084967216007040462158968389458563913048035880999999040729168262721052585854329382426306284056838467166496109360198347374010430904910444506528738123673807455877545628944911018306327380485664908525902505654208531450932489837591663824641339720909635815542983322524482993040891898124233992318842953088453405002984510416973415488495203451935285154485313462693259654193472338994592912824871567489366470760044738064168538516104463773411370401226336139641730389062964339774765530035933411267450679505951446420105564835669107938445846266812726788778990428816722506069733267829028001395731324325183957641096221230765729498623372375358189743871405710861067501481524161707361184015551891988152693450314622058153055368000784583533922861387276789885166020423096716976666917569877076003261217996362812582809913477650419350657879023434270259161992307560970358539441071200280398014910222299187595645942020425964690144112856468008268591920442046644889178500794943890800077795589773856937788910262747598688176742817965955202328240433559980519562978359552579326320326196592855971520779306711526171665111856855758131414198254074297462099134627589565699795847058656972756122700620475803684563541690319148870054855804520280664193976429536245939196400135456763502437972560316225954822739202880985450272467428290486121090201917055627148100132945977499841757244796009891904361528275850213439753375346571288352817628328186259017360965198880077937184381552287890526624383348940719240035520551453985686786504896030521030940743413349522894875983539883192063624063170681121795189998563209267625739958158534070379234725642490541756519638342820425162794235081421840387132018513052301010434484028604823345312609888022871597696745591029998842826311929541689868702619259894823454970570882377772845206168133838298667363110540704499436464753664941382927747722096822049404409818916514892225471355664527535375202054818876930709823002027902566425568963131873079398066151297926141115296820447928837645212805975585953830346224252509699262255034846167893141793353282823867811500359549568363016399003776914637086516573667489257553690049828971305828287111483655263363985345650973490994723576783291114610648359127739241030543109520624493844863241667064428196913320081667409605714441996792157701101898777050525319799022648994979917594642549841971828525523987064889943054812826266907628616324671115614849489849830154025326169381018739266449446984355583498758925113527587862876495057791023527453542436585752404269968977972862918821712672726566690962819486047467838910456657165822703397846596865378366447939998390603176674283181215712846188360839891460091238604585856869208527434172436543192695469335986710246100838275171702845398405547534197421675640607525589319752921060908053738892722520898260782277697923778670119073724203418623918836640031134926202720483710462139966802017012108818883866692925207409523002717389490443502394261162342409268142841278007582763299699503196910291739178834961011030931854668884206628564422723615447075122327368890692480181185041249121250573424078366079478467051952178609094522987929392890007143295415251317566782853675104954166893354292441179903716322870355997971413013817688869085071485538119717487247849651891694152648065200156152420279973883385235850967658210737107777149262011778804171286831795603030412635577345311746308920667359718840422356280812655263198759261931897676672528693154679759520801721921395460329810418448679767684383263367509604306975791446409390957094902813522070466560433196706576764583232357516780486219806968697070585647185231176395786410028662083722708638887134645930235556839306460611647073838405046700048950408851345305491875500032761451725164334460604460689919438022800237933526838165397575626538485697840021950643119149002008786309473909313479809396652806261187830127726916370625746415923602756188578114016789310400384645993528640645211680313854383814654641203432286548527149541350679294814535137978839641633233945488465174144139669865652761165966242965218021342182692691191176378494014682121629116626996767798907750335735038411746811786287820266722331036463339465342085315791447039670757040051520024776922127561321787385288978608966338331652808471303316457449392005951636804293093962163453117057378929400364068452468198460184695977484288498413310487369859286108975503278652815949224484721856046912289314956650451514240556843144225755341239007775947063690422921995356641005632576191295377297019297354031120562734384279024109581333346375930726858868877086669290463411475680814474303637761767504923648282633407803489214013575524444069298605622902463965310531114642591947990246099803555140349940594681046026297349681674822786045433591047434194684795516682528548041207299226714191093228584315456835754026657734414708752238660439786435620220660855909755386304215069163540646928320630907886012845887527198045347628499085027151394020483067808610754774912556983154986842580479063240815322673586814245675815107832778885984170674421992603173959705043824576392845432069397772553929459032047161884914568701181841625641284431804905660738454793288006076507565330908159379485755992794070124950220843978740654603455553480672057466711823879494967076825420104390815116487136945595088839100998377131999121950986182625548221842869114198886802533599073651879578606971294456743027353385342510929828039990129673588768527390671297516915611642331718016821942714913753552200293294716528020890096906378949901218940753664105442067337517716249933035912474880678774241943556516097598562346627561385549862209785640905032387862680514273901393060400066668116669915523630076796297221733120782634190256588025038099500284629648504335261615798347087198281681629780543629519492726799519427186138102707232273219428660189244423503044151054908595592522932251483581824079421259847858566884257859345437387151409817863538155143029535921653970840893973667708956930128592789043393272063691728596662362408112070820487543564108004107337739990919792479042179216124089793504848610033882244778913382258706109639453307688522260748198099069973703800416622835482025446110893507264563061591530097365647743397482904299685978143296087344316757423398309934948591705267131727600798037278387052198417839101293032830926496138867487043850736061968052415526421010659124139360840388323877129783783123771699558065933163271323215600645564589091057869364941620051420839855494882110799536278366818152026733236863366154709938384714361144116532821723940742594906895304708784657338559913483011182475198530629296992331240510089571962936981182069824819430452386480202381469103578361412712527501411970007638524832004034453085576715310025002765434195216958599921130143830871529249439403521926731848270321670958533617432277377350921697801822384851653623443126929304117536713339258209631830376851861479667716809475122154597691904684117868491359546753812495816087704535180407015594804990710129832483282304563717354310573492603583667382836681256633777761419875186276456657793279694100891459170583683032570364364911264173689482907634790021089894461992636375464717422194729904647063393969026192570179997699648455755212711935021780000474556578693564799398132964349600784724768362130674838823159538033334914122102790985360396131656134423115406324438530448507436109370078537416711171385074969846172896186730245682858903329106254138204808703647716827723015610302158385340805445344762254370925841989966119152582863385613297395685099781677349120309020821439611110650715113650124819706561170013580448075369615435158015835854467262393081038727204945799628378203842982960825003483373198553596302121935173137650049433538225870235762097753164347651553511448155142156690699527311981351805961192705945311401195033927996563295063343846765206369189513134306951814668023545822909036448202773247847900317004119027031015936814775157338512530745744670001942202747700714735829598428243317186566443880917558752218207177494963092289878025759008542637733938110448502863712807134040992971302603447880542941518670029813928517545802681045238015625885862359048339490944006331272062242639997287255670361565425508316347051786066305375519252612739389704570839278253556124647089116337737575991404443633449604686261528048399424499641407890289659016713239667524215700050814176135785833048410351745167863162712780472660887477947817651903689934257619140110461040706167071726246339157184842745016032649494967479405414306748120787810615509507400527367815294236925215214232150249359403996315899749113939040140810467873393488209748720407177798815745282524537176221461423407106132722822340785447927535101539608628367813554704752317859055046490661150317534286873867074663796296887798088722704635987837325625594028235705706829317708015904838307488494671693918778640500668511854106401464847830343019749878819708788794928377510954517772945242404411088933526847252636782727239437901211994802820842818649316769353930005133088754541295075288601643508640340565922610878525938098837032837774501308069585786034357735591961946060081289405730715603441086015713776022488718525102954125774588011336468610838331471405314983337044228772845382902856048919228504442185541518017706590896319518638954898583015963073886323806829176643240479380388127268683497896450172367835346611351704764192266669243459688918712503083601527984750548944885162705680559521567103856464202682691802735814384947095812112786430122430773656996481982384934230235751738733895434179447550927593134162786242122393010045918417178154242462880086383589649310494535245203823292438530643524738225792522360447006126214773889103044182179318265517600839810700952736506225975813995581544374653580032355306616383407431965067522120863775833582207008874803794323126262313387268454877525228821170967873390718018872511702269893738892935141552468757341138284393450796898539493730947543055786518130404549628627095143548768163520129735725905750670832000000423403073828958566756858310457772008986692611324211438069944299424550357929955847281453885756974109168227078564784541280553699927643865023350245570048351168557936294170797565903914209112819472924396462065743776479728293143765097543671065331431640134288863648384725622446797696832709872150355786998396008626940854705928306967784291314204055495876455637176426638480373374467212513125216896987159256750658520151197432925920446393872012409479541347114734466312348290041895440515438257669429874753104643452158073212123271877873078441455286615412922010843305381639406640599360329227005534340240853363565041054524079995497151922754300818073564124133203389431614904399989095126194333435726607906701096607558331399213675531271642603706839522141647279129589916448404527096389680713716895329330647745245079365658938363530753846308989426622948348610842891771436758880062531468523493373724223150912761299597954170386111553964609897152745718874307667565216711353912599907760875323658047832405283941736302590193257459462545919427466941675251630102243959323391760033106112906211614409126764593913834432722762647845377065389050308070915065649915632702277443452894482040473387807048372364394588894052711765154718562799641165527740388010703932905309670745877168376940022536847244757145722877746530121326270588427273228545277307286286144377168162935120782998111173252891497292260321020911316174238573509562438775562238366457409939714052578763646111236938341762613855447227519504756875668476343990130727570676461196232790814659277574564430216105994979364811191553338901109310575242946474857755952225637876148419453241355645399246527379561472569284389422694526492219813333606395442375627392298021918617664175378518582633608291473317958240295500588208180606294666964239228145346323458907453438530765257804116779479080671956211654208841866979658055951104133318717029954899472048403946981567702332162736808483885836329298907554821874105035482400072975187917569337805701420791880641236333288559264401978962669253579620606580989740719652267818029546174347137062608991115021068311845984549162806090822435641839492275340162976171079723768748746923213360158615167889736961873799743867592584746368986220248082053939853862180255733041275680589394286659474353678528494914266650302383495514767489346628122781250096476720425947352782080736561418513605287526551044114824225881669471759808672607525688437738029157427283807720060151490696144977242170133289009744415314246484599842725941997902008257547539415643597633908086278353011229187209948684524015770492703867732069595082191175525209610268714259480492617896601624111200328740267526103284153136491811717459401495459964539594839750717106104564642606167568276770932725666062643517459771110257677331388234369128651895943058943290246908265531956001291851624180882505109192045021436733986063455153943230932440820753154230824112382338930489763908397994596575431423117019545907210839797830240576310110160105245298646219088375706329015246849300456544292860644867058491554926279042450978972426875469079850436414451352120858088260696219120166121062143230332300865617311522949298738305596177560930330557909445653794723014532872728914431596389399532574011737079988775712765233663567557966769225238558111878039599290469006569807284876303474509050990397815706114010655400322806637693887082949051452980804262460280358692054975852660505413497278432258256901911848933485005455605627420410027700702188259068661494206082134603215337461818797783664366153280500362860489339989914149624341554345142146575977064175562379928430316792801661812175188605679461614721018910925380207178506673819653809832307653628095390014258154417852750010354790436629597385240217626422179473591140694416916692176887781889018292275567603130527511162080681652069221208850240920473079830551669838585228708911406158203768377773922820944532685188140871633231258773353492774206411950640836452149983940303248040568229083236614290420584784503838457488095161362395153212733943548965586462698597248210336764369797206337614143259220480708068812940767223658163169191566311742519959661226472314865872461341784285890093109677711194953937852093487288838583132948956483496836883196877780158825296517502669867515540730719275305182822548086855959223848005929558426058394039036465842640205514578827817317543121395842781775712189660471056887135074600591937089978122407527212115093604821886489773683872671525577948110831268876003480333519275619996185100436010956230608720388506507798113618417299524930373319131067380817139824196862545925018748059811374555301961419008316347197254643262918110380691463771743125814291109762207825197335413956094646088311014728121639349490023922564511985926993858562826957392966739022748927490038700764159177414901633445386290412132958306858813591504218807999149616275668770830322444763185945412633068101230313086415225842858626441345489184203115477852592092108805644253606129269900611500927035313767730479130779451082202368657532164979431528298063983760481202302233091074957483762814526864424115579602173867761878922322356484246466547886215827103074413874160382036569527363885207321852840973121527859716978987956300996464993860289296158389163088940288545418642940482719169790342894238635889393494132106895454361031870091606954367809664080945820622509115378694695743691612085156511395332980312155684472851009257256478133493488391871651599806713660523275742141124027888752563123721662872777037966015800902021659938460077316161648710931770834133243029640023442408520397980266021746523967162657816971696168445939547688050935681211052886329020318396339080112172573699237508362315503284745521368386547414287852272794664393833678748792576886164836084026505951669606653255205299824592420685536827319413517922050102649310229419658384575094802835696864042034835184224707773258869176894391846641128252365805026355229609554024240391145051799500427736412851783922869519203640460748988349807465976400270291308531745860748632092525518526686751188914235819977004395119246758362245542025099520040401820759826342734232186784451563261089332924529593831709979499142008497944909799725451158533769991155807561520273705756677595469035715838740752044013845266389672553771909321115367225741971512071209433789749132540566808640395113701898419183571814689826569706492737677599968069178518156262150477195571820760226951805123983681817916490539009411561142088743672094300472111362511206389808463303986556650963219388600039724377817908180756985102635987922220126060369131501196128385250132305550291005298350225174011775457085456929510244831272914226337312077110449846408120959424094973688994889041190788957528229993223571767330425360526596440085197436737162193885523242192986675094541102833847484293248078757595816727658604274360437433379883807775446459561716843636323242715461862902329203503485730815566625753473608532770178817868825556786007878728877355151765720903991527452839951281853809833461103510868855620066137844065965392575785882436501796860846384926187477582260582029228915396084892520402513316320022670207438437956667775472179988056442470196706099552857709633795143719946068773908133421311514791648652260637122915307031526961253302251349295567818951514810949393573446488393876703459716701428639022082843001290281259882603023234328568689074504318555659986815113096854706868275146393964206141855662268246857803279544286208313941201625086543741434032468330551185514424176978026071624804469594072381404585298253075209776806177318294488286726173714118902913098872709762360533573406614689059849584695110358134181878969441099729730984575878550352493082786552745542013051268463783015171766190128528154036989949112027197664539333548786144925647340872196115981939210913824007957518398076924865393415898526650764760449546073197484426696833948195734178522190186929402845885113938281755225503767472050166064055743107590459416635309848238665963833260337314659927315466625586322390560361859789426695732222645512849033972027317753852029525882750531491885560546212067515404488920592156338641828703601232997309808524137517143887349550001824766427612143031442858623924500015526091725146278462686265941867789047699556383805055757125784471759333717127620725350690434367697872392800635510482333437113706800110683253219963382047800211510776278278151819477668030126259054628712908878891625877027948092481307224096365358659579289640438508978995397675519070915795262266918515163303913589639755306995577889727839165239120653350256609337008070543718035598712529596142621628727986626767885918873282491220344609578043229066585641120951067087054562076014142820350095493526759736459302544988837583979496493604531296894183347249983313004822151764125981618286358997050986677183855706908068648438685459622818823231699823344294979466105746335493854930831913451038369332228761240023863237132922387964068726595447867800836731126258440023791636786401522466640767789402629680065319717587079483826178596851002010512579995547685641419846068079145600251120486151120700874150488967861557493032268609812323930525633959999710347796785746635084819372773486068110815560284024216270110677345265301695229586692489440526716139151694444810439850074737712694629206160360351224995676449443756739075585167363389813771680686908141369064068020708653602910568610737591649442912872018097469907482919758510941998734664270798509427555563950236598656316616936001689130834825439712835783170487820382639695742237424180450753322321096957133152110190505135586736189129299336819350222324225093105498930460259903582224424950254442562782401552706212078465199434387729020049085065409106983380735044234379413879655836689557354914324111510081502786226731871574685332558338718203158536179949868050590021860573665133477684762671113816408321816261046721081173658530445412306596048355366472931014840959653817976506682918464921829113032164954143965315295574729237937218269413019948360231369355422378345853680352068515578977232298811808629440772615628415904706816554068366288890360279352248085015135064721689580495577122499798997619264764754373379818463590054629803798153777716538422574728269093316157863965944493702813958682393813521350640527606169068445372271947279063316540635236756725406357074513797068454748420794715926604514236268719663271155754335234074867019944828118154281123883874989274871584105054572632609406493055825064055903366583652618823394535381676567918641246806135390122479414462619054414005255096875800894718998647621698541301265955693884907915274025937717971645386311049939913848986476745969187649854888804468056479916086496770059538415339601083636488759705250444024406338047669500780155618697887553628434138611262948574272764550799901885250498786537694674551535949744073404134345224071392300601985061226433652596847822902927087776033533660408203343913488178442669067690307203005109719485912325923116221700584582806725376314263376916571599696994029964593604950490278805165140436059984201199506518467300832076240528563213979005827867656014370357902898202219772631006075763878049520118499906687085763974672908839830988756063616794615560206135765255618956911164158402600861498745134176341386376221276083560954211535696804363693713073698494798115347568805774222656258064513018610241572492290681305886755915449418092160945360801998050918102540375197016281816463763088410623492607509638015498004477338770012898855191722347086869890168656091546154472262210752697431424686002435423824212757803697112496102194270321409172458165065779969682253472129539827830461397351697433331985798357954368866501773385077672025115313820285835936461828160642217330758700579099404488345569140737522886443375487132822871914892205404438775916141051916140363250068704753503180270642073078162964921814924008523148944925185448841614325185490841066095029651689433773018810859177000325682258804410348199382742745125962342653819961223949340937452217269994309047570008983901154946996627139599388528049335803319266760399364791918263601908082844953192033367578030617275874345878633349586949125507150505187784379906311394773655593695412164429776696825066822149362474586929085417799295350041307976498600263398189662597317467563638755894158326509394037004134644908467560558233677854617734753892194575232903400114086508412740525254519874279969163384521873839660687600389864587293727678907064180754562807397172529860387289018735464784778448272424715916397238600952494751365739086386780998887550785537174093396701518631985680600719731280204464921491401974777700738726741111844704174125257491968504952685070104006216808313266846102051301889362488525105939831339922141372873998939307780700683761493294977188791519537376860734775627732798523449022780328367911587429581285781693133018680669335265280069290002174316113749976754435033129343470275881109811305716502052122522958317317386592102169814918787431622836507829675977547959510379636128050694059344381575694419410286227858736517076994055834363970513306636077435501522042161895710637646446589601588582476997327810327843552256621616986812620030790846479502888276095082443229020013192532087793070827955863963776430602037170079578950738979866250457936114902347507923772021584390582772726071832459047414399720824546668751549489440364679445884210241006582042152913542389420116348190509805606100623955437343171987735603409849844770200130099642001975769780949780206597857127398318029627366041095678966316347620235811317234060456168120019493546894086003856025661187465118190550476040554399569571162647113458642574848515199443860517604132699033377468845708159692569044376475459530681431239058792901095735649873341171099802047445223727874426955996133233933674701299637325366640916293496808707408432080438251346576755116325504864829607930387509518119097827650731222783244347676500300915736906688068456187962868910334980941478964426511654675894922590921592113384674649733941225283450620765708143135480130731616745914366177953673940042009832889560040474617766779964551071030775941102806544947033253523815328893227670325903424966797977102934314081421612524218293502980632731550000125299858979594229359914595762195817283966890526705976355631621306362210640029684903281640252078147504223114733258127398169806802203792736837229797287854732373055074562667566699399991823103749963753754778285296575456958226183803514664825136259671375580641959106096694128206314288143048529172088382598095742500961246601861039531988059993964525295038473286917882528209901449805512694000261397411437070438075856767071627403541589829206470032636915652853561442846820150917573160580200365900089964059161247739746129469144198629917777054775452232762884026059999582211815254211679438036085046440729234491280199040117417266794412866537437635620031970300100060728147316266565203303759759296980881515591504966344759135289229768137397233866407763128734362098033387619771084039330384942035616537464682775580882663946057429356911565824477240308427983988320970429732489077347318339707396267262109361358940474757414398637846472867410903784486650600718283253566062417242494966660808293716310114622316527209327879424963905288722181234747908633568802033265222203313064553647870456774009473757832329569897528217072612138402893055027735333550195510827248786750715172580644772693519257377008191138456520776774960972320188945440969312339021588133974974942442049869997651949782139776153306903159013559050051337930703907318982831291413116914221577674783416218441974192771345038243328892447418547735799232277493273051328081489093791101371238357636627378283027390850403403085385908394201211769413469582000528258185368742787060936576703373763759790545928931162948118690895211095483594575123360712748606021762434646153282565772034042741586698250573302312921868428909383633609252062628251629040476375988361255788441799798434733445861987061885095285374113725019588432712751838017086509948696582413877847168862684793130283260637757783885696172186558350887768398291131739495512166156128397686758354743520537732520607623387488115260410388328355087933440342093923734324150709587798725766946195081354582203900328954746452576869931500338390586807829346361766870545657721442701356951787553545324474730752965625028046472437315224187882121978656937996602593925860434647233943392922787160632639227143153833685583739089109967787999195261519668100428668058027583777062271092488298144670396656639151048843663876293951627713451665045353449633985437813843197340612263023959304880546224062180231047384355984786324499194737820162001545182565816204725654557369253587289614807451611387532930657818587473031974366167519126525210683295714843642701057832712775073156421948779510863391496236588069395679766313241743484722036358547804270137866599247796458152038330360544863847049173972389063903128136244495236632962637390458854778877926680128309272974616829533957971346460418585653608992589671483365318305016026723788063785494227326901710562455233525773618154203689227866891914374547115552397848541819679221393805000886608279420479870344592718164736938285789663836602034713273228524337401370904920489364896088599008873092985080631991155076685674276234678727943176995231680193183525794017504554619110551977850415134125218396573548692930630521752887873225493632708917209338787669153860240716375780081768270445012709842478490277978592016448311949568722857692243756326490555156103763725664429163547678259498758030917110145000726098973079532208651241301235021211759852592196738604653570258945401905149447910681908067788464800152573745099147235469256248427494636014087594556682746170156482010810320705178018453723530011096756668054400899343363086222993182199606361958775779943965314980891739319058393204996738558820860199136006450287022110348388520495179087292786391451524492051080876098959216763141572857122700540461823917506839021198158477675996711955511332443449441782206419977167724940694950703383440358907116245671430247006703444182512566719156083125407446381274612080797932323045914847521041410697999680702334330867297161748201405812168691787447598742956217264339997186095334492512550442935425842292300059011333363092451481577890032237917673023353025099029767904908074242263131247280881227347534969332637621147923842651304664723853839777181705518103086519487874070154368349265299687822922079602331851164794997462848993533192866154884359105283596181906364329796426123895486590632505228609778077016253339590322032185353952683791669093081309317805995300464963089145642993856092954936105297933483546367584134464794685033376919769582097283037243636163161269704722756133422355520649912168084127350953613705628010821070945776793641356150843851576738800505552010520146261167764238678831106617545017945106581017489498437707793112291420445213650408580960396590116921502801182009483577587934726627376111481873477658520878411921166315475002949753710826050583543975404340211009971798916227878119993921502760188180322838585559625717111496899438217993854356743602961215471623525695667113205643559833494767176514553702406793897756364115146304292531083762306641769023538874059497197318006842269230326736826865360500498318940483221194567535318689473300623480510725992535506788204698071961177121611093918172204522705510210948935935534866816985050085494416669873642989798986627712408555523882489736681790711066803214165556807008702939351057521999679874185591934213481798685216360658240630205075929909188025637163956819089569368327849043049075666883165656836140736633732896058805411662855436794418691698372688388465735200921952495762200215452178654617191331550068315830150562445438247517999434291512209042339734305311104450802934464684413266700658075628741276864229934845734084395500177661628127697537944700566741511889152835002022963428294826238761567278919926518328988854121688440716914140128186091664467678625127641635079758593294097639645169278383047546563801427348948129226787063820398777419451130828597007644457178250261077886451552533557892242376813208763788682439798805168038118096696738306210778642817444974275383532150449719424413507320579260891064219468501348014833312961293562862119895529807499391378458094454565256920648106903021978218864251929841312129548663186369614582807387593582960146484853901452784812329152992920397618195256973354035425777242820901315616005578907972425321006584739231237882846441148943658498428300574018220006881938584243511730408738232227034082764448524042160013791068058732984197868654376618379892267139461374578027490804000391983414965231421091444046444093421275652018360615744365841984455164281183736659749975100414440224648713880609722526933987783817968143189958651994418001118621966202899590563113691478453569690999446966020795713311167104848456980452817543181379626943450825985602660340473356521137240163849963659227973906535891089608846033679396172693908750119266074630502960678931035824545420427239626938360056954258147610190673475712903994362069869658399060459152586208561998553612924545780841250061240118554825165663595554847209423479253601484966106124338358251581710461606766821276720623533331679407914734686057878251799685258621652155051591960670436267456462770058041284331835958687401450798684507105951839023060494846646961486255901866651238616440062606391036138222831734076746336718615950492125729675713654356190074915737101279752557047915056897817150806809929236949739144529042814131217415162765909469465750102294311465508488076000775022532035168534531593562640748738330250764905772755653081353650371272360656917125543024993636027650457940773420500152067362905716531320435083671736651215451881134063665104188811350660545279419412448192609720847793188726955898192855780329649560101971982440153715931282384870537584409949718052566400125099311613891609433654093868349292195547118791888990886693326180484788380958890674936263037670186863395878352340533470781811926254414337702626352074708362086124496960867830095000457999469834627396826646353446089938423912164107708280319751654020722690908061956825672141820728704386090179008532265816926490112322140358183252065798466374121779886734709733978203325992053320871265584066824506193978718129945300179120156661107202661900128036052715170675684726030886802723364658145336409760406000556262891397380960039307058505017580347420294313175904819516179623913796898265317145745217213949299643987632695219455999609374789835003768724484205047011140902773849420094034098332577573197713591427903397243079009039618688061833427501054078320122989674739970595716824896182976329915683086907754582320232280720205161369116403323706332716433293491517636743467474138756255999460726682661384452956422616397132047316038679880794969412683665530607918518322620302641718788908932264642232166776464859016919225109198280853846500992428407083950424787953510378011291074528389339685934271538208243236291604318231506239056427403926649226167743479044612749029407903677281441673561603349073104508203883077813224395976837923103922997715761104939916247829692773739088615007566625554007040100027309725027130013356754762654330227171106481847783316162805088398052717244397593708340844517027377545802573982005546811384369034952200757949970659326475141545092177925449731522656102679853640669434025280727323156210132501631859352411594960315286453056302304077861833175529112096882512718847795930028765781897637479259298395130421872401578439390444902960225181861353719427823586284930250257408873949429027287798826072777761401252054342917734849851498585925571535233869362737614926756721189116100691029624516517257690892766028558491558583365829510063522863915520903830456239019412325592506926081711324493519357065502750828616638045593041684486444536557766973807869978841380514856087133853919991206272039255949878671984055670003067078915889148472509252995889992473786237641717845898348192932917395653304379166360599573323756530727267649845675779657969863804089701448231247531800733302770246594378134917903142406624581815251369724735761904435133056057317574289866982492147136619229464874784467514749692434846236547808734577093718598680768467106805136936322995570991778098468138157308657722643887670296123392510436121828796329180346798065034087221103133412078111369284858066681351725047928220929635090683911747031339124181994999053267382651011081761263059052961058707321925358894435955930065551465511967156066488287811220237075741832426736282000678311335173795339951312497123334355859971831562895678894552935935747692963478779150416286700056749115763467733463469297622600672762742994868575365029528529490063269711390129706525861435353619189083854839185800469788955245628760356531584728492103439209719251449058568838094733638428989394611878567729592471076614207075116972311984894673075490352920894938806635653786111470323591530725470992701643846285194226021665194877402755684707310847498159505123131814877110751001223531421133498267365029066632140630938271274430577601799264970810945619638497174192057479054823156052719525666538208469397872291060811060250202403295329275556769231327863117539664843028099696973307791525679246072974041728165264554471517388133348523415467963413594805619977364605150586869435592349957691482957072905973185141291296480281142361547417226446169210456777887259215851442792294451119200190191108418485840901883486131320737560741607168495038974626145536147904568558184676701711511686459196627032927518038204098255122582358022290269899433200390199098489220851177205447085140570438636793562855421753677160374942490991202385403203988875949187007896299683772932742741750881057217089243576040742494015381338565520766432202254129427102806166931123395229193468735793646800736441999866309309981411593604375006396813601321444105639902548218195618480979776544157408822864357977398218085202825386783143803832405323400911184172602853831581846997639012394016353996571571957785057348622173429062197716925830318926993077543389709383665544972648228317763998784254040623155306489241116531723417620742480988146328870718077536977986596141407807035560867573192743979373524199637389856153134769898343532350027541390135806292933089981168799966043707471093417920948026493946655698382725303122635322345487648675723258471353326355263301278519217171977930796798821615496218233051709946024795632046718189757895915149962710579693463295016899884182173195555181983463224248999018668789048008440803375909076045473971406190948775770152607500887157083526318882418215635656206801651551498334648234877347684812146472746078621480607264391736090567333733909738699996149199185390198797901175940840616386356235137841245211262576159341092014298393678484015382751425788547588960537355021903772604843571141352654570632727229283179703758670283410610157791220454071478892949020290658676335480043251838548627229296629898608238321960060951593739795869280686736595767415389516965391531521583707031252114978281664928241916752511877059306580653614321404791170112721482744846355628853219427892140935967948507011848083036050629061408980171869507174871110446164760665554417594595072957769523730474482650752006876460839767089385212210963854442573690190780352908492933455601557020378159448902946571880590647373499830560251674191592257021186932606610956831836060527751330600030160013924330914379739430109396546160270292991956056915869430111589841917995540226596794031167797851462741101310506559145659494138646083260575828736818336906432118245265174688480086033728571283256920457284517432283800540310696929736636218533035391556865194341721418673240560497549079803113553148564361877634183849722953528016179504106529597970770949911752180146100340308910110668782096357706091246708369793410217966254090110914312517430070323789121132677195136030388244469566804974873537060204672856741500863057280414789775442605093124446166211376434455982212538794562731757323166624035590977373918737967347724442801246243665463474736022469435574200736148894494368043480241674653525629370241537341156110889423970836116146105828548443341847321988877595645512186211528770659717884152858842002272131741605752543336507961631493505041130479982840827343832683503691586882580710354898603835799169556525289593064754061259524783939764328706839881980704956395397569129345863046297297051699131692389010756227201570001623724465647646966077115981967136631557566318698625342849507908578801828626434411482309208669203407696495946599173480074348789450433619976508882035736633522830306330109635735583747616488621598534581338328238938663887926343042219053350987171926068874680443578960703660980369554992024138934357988284012529836741663452817217561888780855039561013226851607661584336755180994234773748940506377549714134169452692701858815120317198851469549409185811185828945396731311963030478619163944966147038012538238461768213137342841786097363025762630322217097630845585710033930426343289176832903095491780196052734901594440626536263065811085499842743691316980386571739507690540146491817986927769515121096522073085465844233707320376165034083539602940824441098605477162865366887597541342320675147167468841019656121355983138606986143834065248805884472124102594410205403089775991390779531747701663926355894906831414132805285046380987366680666614710337809886780214487605535355379661943846957413975172863640389385929864740836563017894747952595533903686640294802146443684828011132972926100097395308375770316946249894429053922305002665394230515139539775985084986848798782248428735482862308953798316715101193609456474505860950101973660717004619928235236825915118531531527808622643465904533371232241248517270676628994795493925058560753490469593508246602995535562661449935099036166655776812852251140013483105751429499842330646075371526425224489572603764443590740218963069192410764342073733820010629670158567680531766421489221371398946375385762056420605147799749257995028517887321380800806872877763176357828253872887715018329508818765349689806722414901596864405775425463319767400722835864194605771520956995239455655465356833641646808758491783555692169189628479641520852046909376950775372441461856392685625526295329413258046445903030383268097928696009681752306374336613724592101233778842092815575819441971979759987306045062251354447367235702720540169392429417260632152815660233056476442123264354505543149204957951546021801335707000869413672702348989587668420510852582183230869028920278806308550774195841990268324338353832921955329644993163928766374851567910789475793141016097952810079374946520569424644354576295873808797024675553863228965095130599445388399011841755823167498378805293820901527977828439089407293497226489290359441987619490454523043942509713955819996280180267263452546525725403840139538557844139305079275647813180369253794239991386279227638442448344582967149552976727960380893722083510832133031387494281433131091944784560630198443489604816927868085072277849419326301754653162927942155168664402421013337673188739965076345582230177554981471770749713049966029608826269084976868477368444365962145222169797943387601155236329095061387645749948769530295541895455391828478343976564053535100875950441249037163238442342203828534337468280978751986300599117447455177439518677285902770744185951514201036075775986039289540060566837938201838119230160486892567212742424205617850292081446236774731211676332055359559029368612150828718525321178758631834142286754839604286528179373117196607409925701514137442374996783310189407991908397406503006217345859265415988707981970887794112919584208926362019380249569463717944554682081656857139420848986320391367666057407142675693096832010732652604490158328569712387508779386790141452771481366916380099917811091161984018611977854208792177941232246006777786451579353796816693058174258209710604013926293331446602912267115471837986065533098125356317120385628390400652111023115840753848053102512620976583746403406279667726526538201896058885147609888875855142196142782677460421863579665568972706117667783688400288450738546505822321188668923246239299499533762397466138736626785660760226591292036807912192295284712423111610822184483729003598203751827701907415762762128171666543526942991189096582202078635730930680810807410920152135467166243704574405919207344741257885973118410607097649933125877399140723410553080393567348670138511523388267949320348993748695387018131097022110251967569904224232968813248238432327285569851073807352343208844873687170206370717154870360957449941588600501258567544367430797956035548011410317954676206173726162400400506142923450986613224184701635921866875289490398947473285657041950253334918911486840293927340797018041246367141775237594320166012570141403778773555795076968632417816064684443024241079889875574613115913484244289745637125630468268692815287504199936356938780666105372316138299707134212723840052948147348073033386709256155055558884767667744533698450669891841406856223237674964429369781846964846699935810664616771657804910242010645566810454742561750498804394161782849178465651363612459610358355957760856695760272615956221434547813853805186446032240165566840145240489369241643364135921608041196587697264580669971031508824141369650321625751707930997131482965243167026016604363795699538409789476485580900199898017020464992523183560142134737488017418104950074195373730346808739257883325321946855636858757276441259114352209717368840490162801820035848697337062022888998936318793240771569175420656896895357054269145766005914382782141275047386899522169937958688225548774562938095369016446402843591441429838601319284902071764361589376001369125874672752572269119807471948299657844046354914525026363439955120609371480678919857563398413401610890320273078559708615686752530994684905270397456839454316510050057030550562491597962965300292309875397462994197929761787421478757617718157618071298787188854813931346044355246974541487669624726336504322900570234685035231959954420199221821136749676709732348405681241207884639995133104699669185904468225493450510116917612339613513546460740405475358237806186105729510168710174000216569205329792321276929086340802868925555376908386502299428056378569077001870954540107683730392767391934172331083864072577657844861087916143494721094995967565004104504210797896835637215891937238497922137733469054602439234966305131044264627006418252706314882740750324388227242714985117688203794895004862458926167795973496739730976397755372027310983808588335365489674175058594534804290308875259862838935277231875805511080203309689402557880962377827277748733918107867729377417775555903345649236061550411514690748182431951049434533884648084927884164803364272782950666238969796942375577117864650182509158918458138615518702374965346809808437242564206900606880827941835918177174986424549002004852154889387533761938232927384904734756269367721016210339322487716519698064900263108200152198994128619747486986875894123433641425300211452037851394599346015127443949684075520473967278867924592775114096047676643818645189497653634359114459792077080024669411433344990195811605248096528566114952266617418574074215567770010909965274292918994316991891649175245289920191983528383626290586679374935042907968589618053763003687049778754892837104441222237204232932922136776146874959022193341938084015438917182282629522128109483836646900792142198208878282669626248471989589065861470803170513769969985811116394035141114453814239087940920472991559390291640460239291726733054669500674808229751535060389998816553942427562625944258420835206947160141339934667449810620164187523565711018665011251420807939381714178235601285571274309597564786190611232349166949323677746094670410712598863338416864654838806854148652185094380155275016964253698526795541887840577290812848430064205326783571432834790311031552145615975480396701993710205549759438520232359344508075490304069417447694830697780016539729567181570278639765939421363002092958953625651789812698411909537848873731526881450892442161599277442236559087053368072497312610312597871299315590306580465833632274392236856457193744118281581938701749355685216159059017200049773458472159176020377041687900927466260516779361702999999287700130888415516636934864668311450346243302488826273532708127220282863931692749383908565587823585458505605310967872327836925126834585241904578767075106488857438361912846783286981097352479186374331829453714920730463587338126167192568565438985423702225180471654265813319166802312175602715191786200078738200668488427462443056530062256964233097143308036669198688162860725739455524296273162707976396327596038350818127623717360625370178358892435550802447790576398617337656916385665756134793353729573870297024525340768312057890983597241018107836687208781975953632859690880855317271299793896770261223218872641695417528425451390443491112488910680036489955706983233496837572023745363921515134470221602240133120959833948394747683843305632106505839495355959845418130324778454535270920431568806355969668814901758441116580956252032664652762829756504427033651360480641760723621631877044949559754613024574190112789916900588546483629523448079001228707984412741634691278892477912195529807575686375757614290836846165646377110917192254878451740078022925235169969620218339587932445410980681044555362731095564869461868725446201180675804273513979935419942267218664903154098701900407839184629369590865218821625074559675637461506452090367824511760679651531198826091508897830225878079305487512537402555051529125942676177737919008200811423083498895377119962868146156756590324745511540390453793456788370232114390790438975879351198078811299492897473957914362373899938678808507849162315577417272119609446513837674069007961195668371608079910857292043406089438706200827736683114300204079344131455473276782379801626758887081377308095154304170809551271896579802606808571287162179889995152924560293202437658651749565819867996610870220768696625499820764346825558434142215081495332402606207199233205491967416739425309743176940245731393204090155031616980047375242392316428107860378285406534026326990422561491210018184108536278144913247258459169293630373294440185612826951743967456665942959320007186163756774148367215171236771979947927615623788919949316255541318198004832070950412911228537841270165835464611547683392918374600293925495836746592227527064059103467621695498087834478462548396165207658630507800892893263811721555804505220034274687785336502701248939296463400845255114054333373514116290996306927226879588725011404360887648802000371259342278530749789232391246727586990405955023383901185601713729456714924382490374115677797048432523199158656769944411413943661941662476889722081304822789098223109665414061366709868179293126895263581544771756418793907303041453044145515303432926239503097104280642971118965080763367037455627249898190816696969579540822011230509694873018816340481032244052255917953716866939245692343300910099777307735978888809571157138461568553131384846998054292135141908339350382138128688660190141486976045817248731076047681764340122743964822164966611739404222930155384640339596959144458155573172898539613927987019805247259484945381935799202562422761607462402842095669085266460898183582529565093616299349389703214836872796306563358718066088771224244912127733546088767002475912979247383843068074387923319932351108242010723220308894898761070467854554472249588787582708578940486940749046535729320795961853081563667501087273173442318432602973402918730139215686456773719790518654861219724563964125779032204720556810786350857121392880115413155233094636283524039902699161653544143327842576092068052374942060518237826643233601961366808084268406891351920219763373799991350692596136617272953192000602353878969663817384201501248091891423148401833764493900747256071766272357882442473227957461585272858472645634430256458071872318292401642488225015014048176103004096360898877115181749031731642131940319278105093295982676099271361435815270152331936200416773018352884850889771267185143216030644815533884527180143538811227639261409690167928517289817428647327367565994646546559043235517020039930869273086554752428815372059664330214399620445821444242079210106574753966592887614618029829726783876775339087736905632743806981382141826618883396778702409285400083809342665314054707698488572745409290564650920626686848438285928553505137509965028356141257381177413314784343896141301648062779960025036201182387715848608518669061307681755391111760298621200659042790070931279044802742173460501366589735651870113757689671178271980528170312120690980225343063395991174244154744316804365450429810357293622512287560697219161188504510184126705726579154000550593917957664132533454365087483281805201394254325333183261515103602369864021543999943496381986519195176429596025989617038281395239896533271154094601309590876335114051919140916956343754497495333549746045221729888998478866404720912935715576257771279622603122618535308688505891711425397970138226910070961104991057482551200199275959314768773156631183483421773311894921845696903765756218522503465510224470927379177124873728084593577644888053194813780000652343699929471986766563091614409087759597861187559374113939843444030017381269202826831748944095644550405586956204350384858271607216489233941152411147258474903495601031831243713928217470218004879743014084171957648520544188145682115749022261485937143038530537731825855194303095026949071725568225633795928031014591797293902434013021452567282929034478852560200336136954739553881201156436383338247842314226617581757145724133751192795435176626830627437992485042983909807640985329529020903493149144910675971614628911454450792774331691281573366090143547064666403176397909395533692149649647392240864044950275959268077251998342508605892766361694234759278623249178995452593079919873630978342221885428447226082421547494864004225283780207030249186729329095477771570002094411164598748896761343474263437076282287090823299065599429004641195705670916708901610402717821635193503885099615661733150698999511101403716238736265431109072039252263764171581069272106810937197582885552467791317224684740464100697399138547501445587985417721181995819529273319338843810002314471543032627152448357792353792430681099689593866733018441022199680595795741809652987177029162281951829771688297730205858592528947612356163425773172610058272051527673525419555999570452873482237059725070043040012091173767482979924586581576914322724520991568388355254462214002868942088614923787678371819087636350151598495777977215587033015520576497593596507373375533448967122178662682472444193140964396382441637715627016320191828103549526061053501908396325967638543859116858357769662451097086120133212635613853167094303397837426863812628652736421270748475172983369085960080409913819905457491054105719983933953930394404921472996787410494792485151499682518896481988828377175088376457219558295992350890069581058881554785027185923602192765874982347643787652344171060227289671098061492714767443966602142075010724797488883927932341040896281490033108219298443282405853966846593672877680398100237994369692096554204674166650982151662908906151586802537138283157483151137168581895190134862665662474380786580876536362801552421330634022582849449137090573881447419820418576950840295053786801562163543197708031505775933983980234869701728169936133948546869537078302855532955990175629590396790261947753260182272136147409245064150367687118849947790964464380643900329271511457806709945469885401536643534580316702012766987473798281627786108036100728854257741894554472815511541302774640967615356145918057315510420029425984670764533160944919989202752813992037408688728874394414257201586839276620313128765398467317968285934909515487339146508796244533184681916059147673285353955174483190275506848258357327183245522324678790860385538841958458501461760545410691116652050898645987996473708667186972708414126028045613194869395160671635462800003843476493767296816580003674852584948981865492279166003371498798605304912169259534791951148617309725342382090600507439468471791798431211533835607260547227377802572123225814320438626972044720028618487080688132799259546284620811923114044474230377414968974867957935194281335383848822298812232271209836925228561690141466624880018701895712653097818808314758586246973910710761059272382452279616283678064891619625135717117027582542336538425820854291087359752073781037101515840328552183877618540089027114090129258769788691239884231574311428953261870283594552978864451006894027673437819367963312741511834876113454312115475617638363494880896335880075120945243680603811378025869158468342066322045023605417971091123814766691155152867387675112971081768273198033733288556432240097731016780267229363621639760987207230169111780989755913054105646697509890629306040680355508097721578457559234238978564463728756961751890928896593271809841222731929591075838239784456001696826784324596615075957654770216724150814562625037975278808337812313838755352127019697723623524591510572496500498513779780669916540523376710649564037140151196029458057772787980789654116810017365091527256977674115102618573141490531359033843507305365201640206430031313312087494471891796425615300527556110185607965644201166971966551322285943789248924723979472419019037287619903702278324291475378125591024761437630545036086266788136209286421977054836321943596926803030980308143463867961240687940539634529468972461430551937320143080913699938154457377467941247273931500998885330675827653957034774651500565832493954029085080054465896968532338159145130702325870441115484322884798871831457661579080994711803291218975842591523989495468664728994340477811735473856835381849526481677821325648357801590627552442123463123552213307897145784374177784147312864157912253119932593576677730368815941201928732915352398124158027211157669810444375446922535119004146841997519240312935234726547342999892280362497238321062964683600275267086109588729803454383099891225459438132679315423537836965803092656905051584494793118000643410232845816691562409932353411626633857152805633011319969103622279717211918402084982324317307078723409188382580853597115368117908631178836131414124107817688683616572021145541669847709186037201993128471771463037541779002866848054471199207096435248489374441636714649855313159918807261049008105552076016066443902596205162147188757428175739029833849094145412378774770780551439478641011544951434710048575771983136285892768163077844846369042246529070542281483583254643171465947248462228575583714484446614500380670255923166974670293442628981686096287400134404986950734488036940279143810826918988692241087818067018710030221578742473881182424774696250961055668196984598235630118406222673645629365349103982906099646991167714140767521857583267015675164189685700529940846797218417993787667606396795794302631946961739086728813039326823348931496911870604135255918353750567124493211215300081636074023612543281021028245592273789348207545280158619802821332562726765347775775141723268432207039749065436754070976515922256845572911797836045250561976307202069973509004250032351163006451826803793944020574000163042190505517557718729745286817346274294340074071590294698992957307993645564854784493276142177155689369733235988324831272474986346996567513324294078562479090413443190453259978361750989687334405951833811396407412425224249483937069691215671623019824985772836471536631345093590409997693494472221648084202820292294263374746260006542941842727788842369324290432204157765745823205057295562446969935611306901282596201990989072997044374418330936456394592768118183464909914415864910212415513289842976086393777086484262018796823547174155301500143064474116347080292580931727319863898328315564664099001931752298947452258041452651400641897746420512599390628325420705325027833294763558771715734891171285522820939437664053108726803503535794965165552690509742556883604993488077493064167543518370028250343531199375930809993212225761433203551067593526766673423358023966786129470138701975175322918255364565490547499889906623352015231378873110473722893344683053056012957715427024654913308931087946794475997222576120032282490635406323747335368819953102212031829644123613612185859037500811533993722750205105370242234394821623998357300949155051395584933573597230149889747413390613031473771708015379319935883961046101755117319308708454300175341459258869258081924325890656819206496445080939081492881513067526197580086429043720446423727715333395289753064984868800533804052136434195097672687129100477226913368498853019623035381187846046457713897759598602741933006509012143466263682245581029759749989450777632856439584259399445541981012487804803043853390539096357565967932761089774643984399010969374205162626394094985102897680923243264659500255704875745128337648932504611505490254793707382597525281262827249866307564529407862304785370526005470883614894492743867340540004757713694698275649822052732107610982095204929141824029313524677739175603136178213786760385498034890092326145268430118951555037390024348538005382968513681581166203160712646330509116659310266172976361087524208546008342993223334711118593905263274575222453091513846155119688202043587286348746956006511529711860342642797561590918679984680923613103765024601544839557581468886697916900545449159777307672538317496261228719182283894277693769571467272714720335414473653295037372963765050940165051519101683254427211719263596150560677799451502040337039104186722833563008217225184567106316618705651532696322795316083181499477524588249591256600916835852596834480850409183027487140238480557451519977712947064879930178234611839368776500345908903508833433539528909506182679505080823708132203288205307441502681997733490620031298811547588925123385520878637887402860244832196341764940039301157950671522279618079938651298096338492072964390610419579747140745051221218391603271097002129599310158859147012277934797936954826043143710398505222092199252276522541440082550668563886407878045590739018335437223407130609889913564618139330362347025519679257347787428596696820657648067142439625075706177319344727857410383141207050524471065840034928756655394455615398573315223595592677653041109899417204004912069243281960399380003676638243675343933987661562063218621930655932961448977629653869609913840961308325938197477127784644981778573171055303303099578821754607251740191677320059274995510713209890559782691714590036696429978604849479315238865439602314073027212100874663684881163214876545072045187369613299757959481798076106294457403948792625065238901327112794403859020297144896951204974562763291732529064493210638099385430931943998538721565360054796018772768652167723151138099324426076869168008779757004549347923664911627866698110329426243014262887074028920378748371775652225411006155683694111101396401221241420598458233377751370397095460170999322666033900816946724261313292269187929040766138944706659674501742258944459200511378114250865700729306533119298276461202170709945334663060522237010850620068592876124208867466024029426207528551035469270048063773272255668962173766445130690349972248159177394512301953403421660697431607579766736362773009591946990614996608089019488581576969150954609972401782319789861525683228431271885356050810295968692738476357149470142880247584637816493809623720695201679513766170806102413624233462195060591082295195443369068704456405828409972331160905937479882117126221998325335221309831630714869133319792281371796278848038115949845280702795136018335863316028682486563832917903058448626691430760082350424086236005958920703469618902256900763103888020080475253423508696354315614995932287462026954052592740500970703829487505871631387674288514431153132201883382094365944845526291902383694251158986871376252975365248628537494060060585565580950757213536173584002559399648556925484771520610732417899468752924264249382447699745235017239271949872964632533287382531152518956787984639692382815282453436150330859654544208150589451870390762494316264757224931876896070015045230395530015095876191222641378280165636488245221357857456097270251955681695006036664020938677016944473297831624814159795386334499167070601842637450655499200400931410745551601238953459769818434141475250427129763193076073819426827270184306339454945226902628840826747274265013691179335831482848553648374764640285016039816049544624458005161220245014735980739894924107722290067570232260012672859183827922882708308607489400856492400952110916985579506864262499807543118615924189173511902891508458795151872453445680182858269711847544743190476471500733770365861662951562616060590128430319381846492513392598752785431225231709573676649232476800656692423866908198140190482366474517493208565523390499501124361405427519579642767708427210294109528212767146741171667432182952291392722228065832012570920572264811292305199181964797333583284444117672645493648906507670069659778222443836811084239559383387028142782535783003248421868867412901730544797197914280096738781444819567420213379517390746294403960504173284091165245229382061055953622709753032787721270283712672217958683882151658647739347010746628811296606468314879849886039755220841058023750022445930125321053396531540194000224688652038482201147624006556813070265287639575371240756872753979189962378925721274155739705498177771922913287071246941800561990850321839278950502585500084046225406552100212328799289451594553521053048420661916736038427048086463241947148987085922784056894193668893734772794255920112345723493735764407551101086757038153887772287550217465048276335523020721428967850406372552099682389821469253280827954974452918454426568851010111757504893925923212897636494579951190090875892565788137512411890603440567135591853241645197811499233596894647861771410494793271586571238463852169209764156350544099734316116591941710948999709558739514975524632451903037494571435171472512026748849843368215759706232917945272353393665566332094939741156413667716306368218645367455693568591450562431099795091761365578262843327310742952269602235971163183597398383109241864419753691722277709274779080575859797685717610493565723845207885369076392343357734533428451217853049014448627485834138654139254039162414524079576616424557274254603440018780135843743852581500017627156985549175414432198997658305010068069772964013983483802533844360787957169804910827391007632571483593720965480154646191768144221302798272241514737020365872432473435125249086448999431597562586044627924891310979589887077686042842284925689784621301702507413995510345106948319030920879938921756403589155707289304565593382221860834864945140974139341617536472609194672110820803029565998886554257970873308845847084514557709557526797900396844138080277225159858471948772271595224574146710656067041900949707574989038194317355216707984215304297639249034372722615034305655097307380252939465501664560797814292413108011990150590503363032918079032880515702840144284496092080400157406819853192494100892966629184422785303771296041305307677874239067765710926031095854316509027677681197019867531263776264808872998517377054814458538632547169755504898911188694985424316247966497628436124662883486087690824348770823525138780109557179928057725914260443863595702299102729219983154395033950750515669457567778841178189198761291862847539786282307724797118157099596198118704937732859166451335678973402620428444083373561825912234384619848821201355812289715058389645189872448467145499921336672231639106636633375980591993733344643325779608181585938640796694913123226576694094520252728384264820003146609605059215344493491082979739689804599193847857512213705983363787319519758420095133079212222093333765832681878770716745192866793818188369167100806151525555839484865070548172854407902858676883387483457698093347347071719382233034295600339508012134438161767985356242803634979236077925206525335179029509575201748167392125998979694338741826544786332528082412994416492801533129016041905949098031810059768726949231287938215824958030725201272512586936967132765954941887558271221718199546704079959224901051199472532405370507350251353311097860681385903629960530967978198452525548222787285708774467667512943388351305619790569470662247648314544782457596617578052023039785889032037623716634120157815418058922319229965255878954155388274396273870844635595383352772657126129566650682543976190838327364988645992050128173836953861601936200987670749104008118661228367977390569871256696634246727026488794128307163069554428061922028120810820310904845789235376530966211392449921399075937399363529869272025464739875703869293030900427578906809210754038683763226973822348153370349680226254382122875952223826223712096420897457229848446715218634462788974118963370138695864679693122538369980404556123003025133457466643353248385787283976178192428298285559076968295115817935603792815205291815147982469374673167702381374674970797553671428673432930482033384645023540538426310619520854322417577035921708160474966384894471364315595804944729248105863889270045842929070830306975585809088024354383319306598135161706584011292799083717745581223755734120958262868997989350046553274328116491588830798996080209764708481126807192417075260506738497638227373674860506973406319048489466154835107082651926695835844397277414362567425671052915159231058812994699344867306586227461672097346756069461677293257966848779456295000834971949476865339350860837989333301873154287675208659564394965814606003916642966844062160271694385227659905489127155557941725530521616450000200661029688076567636698280425771907397169405188721268915343400477257931635041447358591696639822990580953316939268912392641500609507008017848102860637983893023379969947971809797695285592448729796304476413250711820569272387386254147848351248899337924536796399302741888889911674921706779568473806858399046319062255920360649690447752837419665042066104189507755640226759648579932605754206280432125903021627638189884093201726091497966315124052061648185908378016442467108291969108369430510166089840864423415482935892596581874667234005039025910295509512386438378029207833567838192094901646409032328130336084052172833864562680145541986644663868019600085165814810925974547154838029706290080603823574947680061004674517098053262329859190015151109936542729480065300479175984428855148819297034140945971165337934716044140576539105462958684247101385460225317013367507448897683188841991921658400902983160364150756377701773209762922227881460235506722417317453162349717444659140908110175331718564260269857362714755207709844333825271019346621340742220930001611619849152078466609305278144252579660060881453969128486618402063754499370099062741686625246232558453951289303469232343624073766641264906313825671522741311677405337064969161463021771975854042836015665543984941863517693489452061813522147753364344750338401399977906345566206069475351251607997285060858626996148777397189696883067785669404159512324101547666075852114401555101879243793832160018248842362299863754137848283051282774270693160889729150336801641611993536512406984007260631276222965348433074261413520358192354728759235038609915385897583051854119290113871425426550042688086132922524858499098410599137988087756235043069752540296931602176182080760262774658956241350740270547826853067426378959950975396428007192530761631462853820290402097716327265021562233280506304805125964200045713189022020641361696010709742810097359995220578402701868817166877456519747912478283046904251176411695452335736024495768359489334532159576901211220862349141165846463025302852775995188556127588348836564549520816047211935323681524138154333201113812572566636786208454073879172955531424855623062035152492714416975287630331063047642244364373737328738771883932679549912271604551539191654127985883822574390629212775337243696996587851919192501318712399673307601505962908844961287380031859066316683277988081175546296321439187366693912072035853571895858292874717614846881609790519130981618574228594729756922389944552981619806723128097857401051079323580826097801398536304319070506860870072496863149375030144166054298571565350801052036485321764168050633284223157313652905706866786875553862753753650465143729269854434537260753112578030499224260742046973864820169711421586635996128708720005973383019862594289157798624973300947372832061086895518221537522336931966906046169097891574795546155685219102461249963186569724433712888517364398178524730763004020639070858894196840954825182708596474956006711238286580505906158736678759551154006848208476248276499582929600957276655415188853822548625413998560935143115170538682483701413674596653923803184691056926567241320229942853217724834279792244305365221734170620440873412078432997097216589262844102768142268957611574860998692480297564514431965467109817135622767146316439018549303563674008191649008333438575116399363617577470033331978980889200172744624066184342421060471280874668779997696391777198040111862566078298225760743228536483751581861133076295858530417051766977754125528111145883855849673652703794054241372408024972615268853339643301412703918655180904771948616710804558181077676448145947537188029098783130150900408375809352786750253611642420858906793435747781821572517289290965674562265237855225224662302139731817765475492046604198485571709999498173987828329488483390632028759437880660642723743243121623406456894030353646319368018242385095265370491056765855838140124981623057764758714055924583726616080724390495207031510671645928228302773653732318402826605790778256519519065194079174185970515900004639612170837661596737459713085019666885460353375806439097959731178576161069697950204284277825793587691572645160445882757257599176060902783257033309047777114494127205101620630865768397152801118456599081457463508942124146185932917614754880998153377268669864095108589234384983930486199896968131208307730505005044474388725981011297380364588737858692338704451557034843755351247683748421786879716995020960075349684801801452982092182577495120599329752307449129558689535357728197917778699962845235033084989381917613627664162879727320065902256721921226695838206346230308210050202866299455098785257696692718484186271150001652876357430767163006118844622492853613689066979687210760546881365581811049160696186547845792450326594818117332993707709452952202903016453965807416691922083927428857321205596606736322314151378257801208699934207088370976422880933543632834785521962379697850725945373220321055403569788955061521662687955635253227132184931117241977405151429951129010354752570381333351037904484652465344158599825462398409761088032072855882031194512247660754013580748105521109807022772737038809182441518141097137216752111837485927497731210825653511395055508358512899242880660821518321695987148530207664045306233111957777463804725160066222032730228319041770186719728906941807631862960628074797776396529481482462712611975217023378145458456152683552492641565589583639380916525324883576177703986672865786641231549619884119172608415721391547435636466682036752813276245008309293481021728479795260167552140861031221558551214055284486453984899640844769055886535243997152963267768315826044605007539643550509084572470618969642133412587016305302099515944274801710018735126081993085196745768517953657301692660573026163785492709596182762183243992303246626796365336821225410345164647104162222985856807532087374074787482184345401838443685021695423559441704223409883992038536294448170849433586233121745741844471306770334234502126553627931041200204700551938223633448314010273415740664299947357670403329729130213000185493834241090251451734055770020577980885463607904789150465913810507020314018316981223583162232109398753286018254792135867009510693455980402191879829095544081228341382029079707902835694107443223524270337517669594864459996656105889651171213120304537759849633204880109908281308032055204083137403950518914623035727917496605218529621906848840648355539060187393920518831216346702092576071855555423819661931151642449138903062474529241898602065286994599898396320490553147992378605202714559650037680411580278218832032067080974218350128131472881090716958654115778282112925553942954523413388863148971519607755951297990755256295068367770635647112759583288549172750308324658470108730744492942477737800718964858933555670131779571799727297540607267845121588837010245896005295829845155736512152254706371305031310072966795153388044353117955635126866929497912824990839461546534983347779852905717175134179982709074995540616034913934140217176767880652260978852963208158114242349830452881850786326520972835410338116490847551806249569534686254318756908016208399072399413529730965465769816104726003399471991823648559887689149595703392254112260864399714394348193695114820290133958782312087461224505660830695275345999700095588169032328522410907373894626454534118305925812103803512086401266220977911825177224341637609851445174611080068546384413534009944775525075680490143258666284615081653075150328373071063933912529424933517890731180677882893341630455068816448846453069015577057021573729468105597661063970276761561284688063348756559811434365103982939459157161452470895145572155466290407246663380641548144185697164334041348217003732610313995791378813935362502932927686846594166903722483805164367285877661829101791562719765435383398049031174698893212588111390194868380752816543253896599391826334641909124745713271824776830061741927258801732283418881914624150990497010696142718730649482155710370646775042765721126054510021596515095099717418070518886139577734498946330710179294706278161813746220368012514311566329177269904166670561209511041291116987426074397743011052414212068330370718620410789072669616651233780174255508402736916661089015419239462409794101705357687639246876774105932721484416005141085360583601928298575217379920802648869197304625269264010083031403031353318727612794913359010274134820301088763317292197477720014968459966089030622303159343205274587155369925657627155772371702495407938842320479639410505823931106048809473547275873061771976721072726343348727453586615796203807162861248228888925895717770521850076710723110273704971955328494596137268801220796662498327966172452999134030117813180120458252600634453212865749489413451612141777860347084126057625034099341701136646086906413564884665709607990620010013205762122801338702205524210528712250140736485491668715166083254120417470888095659256520863625670812027880798283939062138370629277107269601276660423370939296191883013392894267130811665244681131045902441864997534503946135443984585488480934325422791986090588653154355368953715308801477042068463682049090574633885848356693240200160684579338406768223593308439629620775339040755866450253522001856548287249740005897789708084108820861479051642822343837720455471330756614598165376485438435152118656416412126244609900752778245491826695275068936118618172914028496333019647089709458427572399405842735916886960157873560523910308960044746167905778842225995829072735408849473317102060156207141218188855307429307399258242992841986827116729382855920920187539351396693523603420711435430828550773939065088950867023862405131854687392580684670037926560251249851718737348265893151085743913773094988339139202673216709299617872043760815163422895116295118472701259322813576817996317516769184960966639138510589385912939668746236613540352110782805031377647247340736931297540120632310781105732066846081299531849564225711169130867833747702974611063904897496265576176016599214303608406212315103977149378358046014700496366869129598826155109791288545155875311414589659753584073493555159705977200693193037676087471694095860180821894435150260998491529351236571353949112908220105031062236147056070254544480500416116522302908751994513953895337394992455813654840089934016079193840413529176430553370853219939581780962129858239141703518315571169306947959716963089061947368109939416365835704808853301504206647992681868462575342219952611871370046182711333443369247757995240500061159224906748599904041017505561937119980961889752341198001788613404975559413231137984521001612497583015381480428698814412411114940517273324210049521364692800700820463095838613072088717541431117514541941848669108621668987057373246768559603168815484646019858060632139690213279918587790912208474916297651650190075582205094869098190087940351351548290443558200452415219120969346583251179086464118063184767423423886939812472049295485053743219232999441830990826835422428102710234378287918300465786602929450883064800006958191056182688571905399251587184944203093542686906508221522853357681361032266050299928841966098707885290537835137525952970642408411466743515324398719347109264177387470274745056348781758564849901225363817061092497322604997846784711680790938632179249212945296336067912391625500036674971186984798428306782779504236393636141201019064195028211398041063480691533887436166972377412370174310173010499722426557095397056162653140254640435069597570195597238383464288624376010326531149619767321087643124715587984497718761249713619197414731408098288407666450612274940145511641551143350297073445276232522363222190692490590379546259558432007379058838547983998962594441771426449268176024297444071942087560312660767695021270723326391752304381701693909896125930481342763334000304445793196523736504987569134950427964705276216355050706650130397765199141673370013407975213640148154278558120874437194463867109072060650561587079386545797792068440567839172044713335989999848865676825932800502145658438351730934671740481935852941879604466453171778614047213557036239325473227688357113085247260558774422226269794463668926746731368801830944775153688931439441797287935722585165408200249027195758422844586313992619088608066798862453019537441175624593829095958701176786301878864018879789198822080342837124005999650617588224829057073267040281918062420644874791128116855775782519510001225377138333071608507848291524175956620593716514579156173830402205879714023142219037434766854921299645417679159508268753880683105303417291391345767279681442160960383471570088474157260642960981019332727788532415850173229867762269447530680006232412765913988809766411543095620236383120400971639520811117380010510664601974603662495419421151596125773371689157370505674842600946943986727155232688106824093922460650088545234857359061294127707171836374980006814000690661474750352778421384237436420976201469845736585908615795875690553136970618190220734993604689637677772394418876762368352617721476209632567224517784815744380992495267472295997588038532592082724388478250027868776516773182189557217421598601418438964003214260063476535727807219164082190833598672087051412488904646002370745141707761262089401929233202944121076770682527069644166988517503219423960065255615557320308376503956585180438431026387163600374683854658303158962080800038115846007794463147003869661191251265407943477837260069919213914209278656934975175940775796606769719907346493732589725023435012695351147733373981575834511118278886453974171109976551727873197541918197193136301993784214136129743727259569989704931180710473816731717973346951876641774858838605729499962576966474886677199122030726795685794616681861383549701472120611647229068562258045794214982634053913582553471722231936091520064661188867164318783921538077107699288310407834036340726083126233030309776803477855843582050868658948511855329214524536688277942641113435796498439780824790881725179841726198749523547584492771596809973773396201321328328847134151547839386201606693882209598640717115384092777592602375686556416329492906112187366145286170021246466651659573201191583999268993737944439878874424928737876334194070038726218706728497292575870777549782017421526351005988310352699817726913876682068543710193776437007294640371687469485109017603634084484771407222358624256068270669584095322814354062276278769388827972958427163459064211739053434488205684387534270376947908203949438749856669667200911372098513566785405231413359677627259841875265906281642002444222292594606100843748349011348641005596234799045387679078672951839915356722509958223097168513032504468971608396311951291069375586446261401376673373279681078922871593218204975674663537221330587462193855182348639819683855481069988783123113147300305409262066158379836347182997401617591836654555837342934364133908911728459958022548601156150915158748064922031489204577259767968306469698652641274064840786724676398278281414137301554859882541928301115458561850702487313130832091608729402058831808336106781935454735118379852779063178505412885060584190549099062661418587251169937140457525220916524050125814293848640288561717918413878452244549913603729782467243417329797276117186551216009604714275818930899306653907373452692458505176964524968267702809216934693766888012003473544058007184031339111058337394773923951267537149750178179054144410665127110276670893365130056399832637004835034808680165910233784827654031443659056301944193714023962493653721171740950644150767097767996598517757729011693439285248223563525311185132927688688149115971931638517861712467262819637776058249120690950023014255895606702496493932515084008160633153945064157081532050700758256232404943117537980151396893119940097589593006676731677748545350968051618480091783548952093711627648920866583677507239016190981361784808894616561374786372674744300258705986935375655437442293132844337287524129192010714674898928048469895767198666072613272345148370358045934726609502982006747279254719512912323372980947623444981420507333420097735431431131855342249787743207356592570673851629214437710464178974006935370026282533176642168662710545984065447026595497875290571941811104628285002715602481887096415349588683509417763586650603903812561155726109978966896057680527911615207175934943391953128697789620031429019075419235296117738023400698847009759053700869877501254467116819520350871827300679753003838975197770081980777240216720425730041386365192538364283721350172117170174947321650549405810386473816434800289534701892574254088669059713255689784694256833136084081172340149979987008663613805715655921851174635865058010410494941642798896131210749486188170429423569380013951559478303191629849683675092180234379306762467021972555207614149239928286160954323322838161889343903190067201024567388210969603646631719185341766157346909371950904261174810061515223357678795745866968971090219425990604091400255692459219243242724958531471027381739470132698489986677064859562451400312177135731351219544327094363199082837328236942794827458873558566296521514201976267124062540075936804140830591225168182310539335162667043025367264515684015381524977236409066182382251948286787069500555734128812317551791521532822734641047567296228117486927579274214265054045421430347972178118462139058491779176963944241720278973032456031420923540301419055481981919592062857342071058168820785579142849643007649132532679205001683297157120967696737520566621805768431593058168201007533731413998107781502329003690094829810381450861447509722629326443578667323462145843704739855290265225562548026968697868249096125409455422872319727063805737656954377261884223801547766317307650975332385063985152662601730882863078978993066269775922816058864724172281177486355996092769046509819157875271550032007504461122165884581564911956994252138696920861086007475313676661913079294953851944729417687853101989735305540601408589511226313296766666192523982943585630315077534234387451493396175556999721394173251037610562910281842210251404246478513496236929596118915869428252422912383325321093325747467753583791466385551789828174089613367180498548828857763237692324825231018942979425959441584429212054861399342254268754240554107456880467509104038739988654285526006298558358324816753626291586576897784622112617276518152502237282156680674396365160400773307598116419307182367053276605876853304686122641058715110698081656392294011317217054160892015625423935855907636861869113369307324249236037211720450402977673574607610065504802154011481937094148814475589719134423502726987031519203077350403543346526586572002275314823203531032362709523560995161679431836651818869945601646184333715598658452651670978245780612990661393677437876800223081228690113416969307763107866639076535121360831718152204671724722109810032521494238148609506408842272990625781733176088728484269577350881483858904592827006155742754467627787797167808023851682810090460198853309911689056820818260714783296634128317137647702951746716936841853354724938637794129734608629107314359155189339774949220508392056485137819689763635265972195939705167444188909017636911512462142767863001332547868090093481694328241897918183939114420219786984652819458611200736917015090869022513419555608127089293614970437792594980667235291281790977172453718383595190384866702755063578499659662006702668416025051637132012031242234220627039158505744229061886214858187760754868894152023229233201952138590423826093804480788686428066543871537990390108858326512786643164186973549144550512552191676784163332484861173936589390204952149689610944252413893619151735332207383194740134204838798767624801174763098884460689800766435086515100684028875955492611032746946770841229356878882990740472801046414178016720472367165825605937418648823609680541238075701586925991110444115472254944866083836429781814749230423145886327861889992161648933197773012333164275371550296714540551059469069393044710596616392714902027748081234631017537644763035488377937259387063967465147158195494269943836656847779549751185267706653572264757092281203432002538462226323912798399325628520852991590223818441358939779798629245616647469059164504952133799391107191877948700383299500973431060683725313588407445363594144009273953797501556770460911794318871419493949761160109245010790630429278019461719503517760515965259005775921422196273785992293327032183071291663563417099311941254175872474390304503084050018407625437776367300351187639801775469639584934895209219206535585675004096816756824056582350763979284726389516070800194358808967590466145049281420466987692207038453084380653946632093350377077835026683422306576268273596028492844593205974381206553317534464861288146521871768300914206345602935589164638758490447371081833877794452403810763647559062910586504105437797017838110561341092892771138092492110794114774155041799894008277140415999205735173661214838011990736171791478884246508501675170753164208230775412421434925700687157633335704779811537370921714538673468020963150233757403723823102444853937854735631124168088521851785665308381190600150962810482052683672790397262563313545822586722432401432335229183102870966990746897393564284397729909144500221547442547973256805334734247369636254251448551350161206246703132146879118260190999771893665879201089118831283512881361018872750692132247570905132635359346951243063637931136001512413234122989442007465338160119665614491445273174858955526548293788297078189857463149629750373996235938660875391580385898100056492658518113717926649809771275650486344448442876733128660852820349047875392528906041370095492176223345023995639744263433291643008845962121316480426290515943493464025997914763888046093395086009520330158670491419325604048272792603843646652451283919439600514842865916780812341923941599432493409043996023082035780348069319022115904360906819216816953076630076155140905327674802095864423948166627206715584140889521070515693579929932741899430239364444596342732255319387328013001487791083628228804236755144861672852226508278466055163716058557123689634730734263997140384725973559163160018793991235709018633457817682965516758542550605917461456790760087676105051589661586489884359003505065844514902312746931292817921905969462691830780610377366913596941885081916167092700686396589468700025490160415364521785918974142000666350940826511118776271592444397683985210617507641231867331475640190083027696876522297288385985635487418319817422765307716823879686288272069302047582868780263924537712912920967934258472929718975369688333472861914914786702545182793932612855996716620046408500959546057096419769535440572754518333210776918944504785615772873765146820450362134757702276110752189340921684887763007728854922152979320976850849007275374609830227680544198204018416209611789243631022710530939583715052516291425560993997806843531592914307987848162008150232619228262525252956673763430050712156862660994474154974079358197952233559238055400409527413324141885347641389141247821863720345957435357305248401041284343879038621972419376887007972038214945540022541833318736331963015764427689969975584596001252657271667631827195680015205512979828377274262384048239783208579848027482127508193700512406903071859564559796267116033350228543283956867805980545012098891271781002373906793365785241662848553087029093340688514343367537163706733034752689001217515675808604212274063890227940388186298000573425930926109350703416639009010593350712321457851831905244407948617979228035428602631798957402946529685509586247951054464796313099918450005404780444516533288920770478346194531116246142751430700166735620037701277801154868053573854850545246630118004968005629586935448921557037138382741786401647412779945746234033855266476169202984687712560780736607105212024310180885660681492623160748175010600692576291734225507394833212025866255768970829708934392865193426608174787796547776353053149840921005397210715081057863468528792825597553106928671808535619976581526407303852032524538213408194327696662495864760215864357415780870523053423425402492450381855506765612396093598976758192316466270846443130522264777633378615350840220154838789668972942295242849164258573158175784006151217312903673700961123817989862813692545935109555608631871990446142355818868012449324761995202572159731827842076131647572189873242631420187596726021346370388628279834460568900180402785016693864386976099542904888032300585531951710362623384123145651727792996607846440999198426987696701480652177261724239664753925012984171471170223252033472930327502886031675970549629726230975389655775600065660124143725308610700171841377909249030357878186847436925273195485515695560937920416370084414874259024432886192914537276308687585389519812583943785645811090588617342562229387777225921233139234456378094419523913805690050588308052530081231370714814873847848305972443808676015768052285917953642103155239814587260152245436439493224360281553568689973308914009614633899816996627921177022387521560733204224619199813257717418739414184264279291301315139554275968633251571893199907360881141636930805534731730653500244329578389885255868432212012597916388969187170268170141427696085380667057261566911841721442503499581100022637562832455290065470860357181658714155775098602337252348772539948196302871736209413982641345928148520316535911779546672056265474387534012353523407897424783440611811480990627357321511805365633824826326539232473177883825532209108946373047895893884823240294316151372634376561513286383735622108909854748019648584916020025871488769798045887351762369436746049363652143979689022395710776163401581690658406946434350196418799863649932780386833505609770097129872555143649696553351659715275217825626213250732008135397231442627969944299864823738796521991965747852809533404111735776494558119957312108633267137670120980255323915399249795457322104180886158775591647957583240326360104425481529291727566845789034918228424170752032550263077282631050220054437413408615744437900060486233645562651318652944425100866889129765049476965602733147569966654392087976863387334674385902590954177623367896819237113633127216019889790029088383717134694170979052240970671465829491326337201176403973988466369207277759837830182015640706901717863283056644081683164704176815798051937039156051024608044247101064612103329881833166535374353408173964972413818120526697027942309095707493618910638183818684838780969400588924922161570059984486925790185271645936433967696414828755971873809664933826340932718718511337675424433533107674581348099808767813300423845582871422676264910892816624593518381881847021902650666671696635753999618975513271554709864300259137692998877636193081802161618945135138050524160479137949995505416568162322596269936847479616419218807611345040721395665006373282231445605372566168838604011233385208811844857191404544884733393755734623875090721705663531972002868010896335292588301813698936615729431903039835570118299513762587317911483872497729593906272502801749632240433388931592367648482935269600406681066583534339797762561224528353013025738720615982611270990467992829627142960520677643850384818094762409926943432527626638048740580044764150654433579398748831091683551051524829124416786553326982665197720388840120393246110942196434978966570402725736521960284271027571149116234708908386495182956409822162338540040137977934455154452545899529281529035138419177991388485469852832806905875152107069285167015294391718112464442391227265178160381162684124710986169828999793823007785055787232187307603253427607948462253741734622174190209323930045920913925515970710805873673677956595938307593197926541642020583087063868355454512097081953117130087117517117441878975914982539094102437305501897919440285546211573647171286229981052463976027022461402529651564470069533164449297477601327152413053136419298698955651437695939662606187344096280783902153991253288042956297311854867455653828319368600234207414071715801381369719029308965980146228687419055170436672058969370420490677270028517591536389934993871086247386508927496584554017077054058188083265779223568295726769125689491417382590011061677148700111963499684749694703382057014623453365566076518306130854336521316760142711498002466660014159851359968068229796291278441907097064619354841464062681326656434412282203016804347232826869145115800701704822470855813659397080792222573548660579203311419048572196429739564906285099875262436244494649248458188415379382659129695020895641073079558521745643581924698272338373608156841177578331227660170755513869130430114908563253537675384339755756657151473815014543711107478675726868576420727353371673559504685149873355503979763931016910086524999386313727954712961845473772819341805033721948775165136544187236146088117806523849345349585295592360921697535634829530912331920663290472047478160988916388406323341983515279674096539908078663684315156789887932566474807250880466843489786567159525492957097109273308690628063783837170021705946701025800256969227229026897009453935320906307992647239677356411417759037984122208474100731698799414708876807254839188583835828337256128873885730242553922925857424940686271423962195816596636330934859099094436807908112701563242838849733419760103468846834534072942198368749622264662690188731106242812422209316810689371254578135879518314506898852139578746643292623494660318012399552190175841309830601470035425605732701636304143141370929148332291419812770741324825889329537895079847911424468044653333709656777199527062079711825936120416701157544256577794740177747930477083911669344212010340151435225456009477367021536786581879324692895067781132723142191313517537119736016352059924327741948925074865607148488819965293718423747480289003265514118866365808093669154847096917842293994200776277793948313650084049764659199650874681627279473094064584129007692844367014084138382596417034362098705619849781442778594220389988664176986676700698857496585096714395513275292156616580049306710774312461009517063800297685018665852115879549350578650775481191202580895894818613597767274172030032823358800556984003763147834749498692479101956880118327011427906197604519342279219548542408859520761299858378495157068808850338233654778258550805338273783165354299562793707919618686707753130572090741198062494597678811137873705238330093729851682059350712160444504399501084475518681849552864680112353141446547682895960346602153699789375888687380942779457877122314597084978071123703935737408928595434704361099491244910632140366374399080969265942814816063738870245155299115058087401749979190244025245787117166698301890020452007293623518100674465954999995460381768057331003249495662309650518851400394959687080683125823005535002120190298823933253748405634146030294433553310388038281201398154373110437587232639627649123726028960862250151851196404496749186912018935127121352075733497895722299348528164339042248181078659445536233711959854064821037977158130619360206168613827396013167930612842178759870611043988629844605832992323174393571753965691564078826014207005354587013059191587801195062738667291673372926188845030378862876395236848914721559171073927346464194880848003847813954741120006685180916844308129541087818333243690170117646999352885170700978407107576276854634684700042874552932041130305857157422568342951928300869142645872231449658791880162290732040714823502413452397278426827047763076004661381759374321662886534485368734098425308567870281957280424065315362701357140996052234434470581611788601204325986392173364470078218796431283570006956241339822570763511939763126111275166958097423684199779134321191419208832449166462151278479648391361376494451560448467790140375136427846884637206160256851381131099897546235216630645388622894154313904245987722739817975239869628593156561587021177077534165249098870547456941634905334163934601572386869878086017333390037004422882398354845815045206172590257518784889296993640525723669514702137041534438081916785716541835552201351855899404594403739280883913831875144460923741026822155872757162830982354071628209036123052564311373659767919997742683343059917475485735970646031833106893490196832100650201726192620794209713939920647270947950846876584808838038780009294005121680928193959798113801897320357033122836795117733197668911442683687205833305396931970992540774624667802539160174719953395148935761854234729951094724200683864382469569618087061677187219535488184287961760878689676412323683679324534363087020502186345293802957188401866630375966549834835406732569863213937153541530297859614443471387226163850396260689378142183354752607972302497568159512215734286625673403493918990741731264021137834355546932008486652835922608242970997137352968362920565925527968779974213676794013410012127635975965307152011010923658812388776758602478781470291509816544083269903405432972866080945875492445528282934526159772649319173373543613103899176806661737077364833577288286308307370413198424919299038810843290893428657515876636928350178485629605148435102914540329312851237810998342510180607931663235032358841892591018793423257718062091120790432593351283142088528911759701594472414458386455255351141129815374092404397087408506518498544300274069746203795298384293318652877526424994959521300905551475810289147684022296639446702477963240374894644750971291134988427254201021025840730616517451317740713596279878449892703943792243128799792658539822345582072354307148194750087801596757762118297400152148037162287758151276106954982698212225234362171562222360906362237612362327987861729423320445720458153141806031699671250365188381628920719333279101963580008592395903160406542908174061057923420257035983563774728711510518578966095131924117643943651917234115662191273003883263631944430606591894740171506709108656805160523467510211035047817786399385999101522006431191979317635075020508086428492474936085703763210529916277358855263167760621995960491048732695091855856665404602645639235860799503963428310186306122749700599329266330096951431364877260140660475871541532307448328323292882965819740740149427077617140056375692226768073521559545603184209822436411246010658219165859716550824757625885228499338350548108926448719013882380771100764235654827152055316264064088862970662032521399707958229033508202853073606307024094154578475665264840085354077865725650016351447926136756495786348479666791633873502228907442915749998852957917734935720870698938165221862940079759012732285369078780150750568927392637448155996209203833202945372071821549051816381217576051078253848493423865809546416562845586412335911564018291873248076258771526854314482568438941484351647843648642896612616363104128204561375432302254419526087333312206550373892951050660093408911408529434860888196521283514521111868603616116689520938345388420072058759337301582701110118542694964486828114537365932177610238908668825887625795961396734518261879543116741815309738370275489501530779677979577539652984796325129788364516819007513285533413534636660737505515323190445325029492066206115966507269804386226703032278126073014149887600804496324413146701845587366511180652197618581089679049820621144408400242101721022431693059852828727768576201291160988434691636083851130531157453651952755475958778326966077803878997472206590705025550024848325741729229934088418226919787327488907157289471848195877908623113572097981490357371482393132527962447532999024665130690011436603256787960350660612409480955746524407816936823582442286228526530593353812525060335152000216227260751759748874318945547527251011525577235249315407526504947549616325242112787156950810456519971703421678688400933368251514377548527545229473629447910629508922106528262820694604626038609508166301447718366058315973248324095812121035224428802262039441075081297641142606513731566264438004251522309243944879170454693885671700218272953951682567633094513234807112914796956948125256155689638285070231635708117613954440678717976680001132829565787352512699060130614735141888104941758394204496251335709165013746704213690301016979069288450128644920496594799666062985458137284237446349393555806711191990954216738436669896126789373787496316390240023422633084396290325146036339065038094494866488474825799802582469230562419814641579471549899963434301389452221949794706616654970934813311570857140945728488457338492244534872214104484631274376854032484517512054656591347667062732340043537875503939064002898936134616060409196240310436321320346242295479023107547407605329196972506193021701851412065427411621189780957730953411215350049702566419088120632033007614538774435749123414130899628070494820563465014515266947332375596227253383557539007681870670676574801660356241757058385248251940785966699807404615009347952950760435110875230946224005647947750842439852443067620720594196953000569472493189334242459064288214568438194342663434383381645319020420043264911343802914770798430747925522467530991440834495431237116550930162762119171702463818754386185350176059639653593838558978205670025356150538698027464139634634868234142344470673038259704325309355032073474205189094064660881304920030713631706151435177097826039612278634915120757531068323590006490379554579279704691559277594309911487670014305031145322048886813401318915693022711796176010334413693487911347914688060570397504184962320002980952739070346131614148175793232308775692409302242053779351039074391943944139251022433526795577874583977207624543182902820084428458606086404666275613142810309445525816006342948739951351464435561467991788400246611082729166874036839795562629377044023434574148866615158965124420249907024771955075455320209587590085115374501278102274463132241364123696996944902399242740147964271562248801870486538615535076089901809360734686229827301372937988833736546180329882536366624938551567707933892512015649270168571680137198396989098361986221438235890417453321528459826426374812732278476335784419169882771284486050794184327142131352369795638687050342009434565056570673607674755806807542336688178603769546792110579637194052798703888256087628752266957480944790904203417227931313218395214738124602341606664696983462409233065482523083460898355450960406771564139790157126235017707777444532188847127114824770529658056489940924385910854347947691379961781289502328703793896248888107058582140727790574521402876930784692728040590304167647548264185597512374038029372961926283258442876923123616556165115549990796975170510210038876324852428137623097810677975292968973772354941349159362769728210927414181636040891866039620767251859472684740462069591554068784169627096122017044281113718197136276381963968735908292134415208942078647386889519060245421139102880510133020800132527839710369964104320616489838520694667480494762473644333740790116658057529774702694368351218299432453689918729812400790181969897180105509717333802932229519460333560163306691021076090209740683188329161318420902483748752672457228650802103361539601433966579234065919125098508978740726058497759530839606274031140493790617630014118336672814821949629726655794120718593296208283909019956534509806580733704421506178420187350081124630503494628793785611290547821891106169662455882186698243569820901207056959460147829864792411649630238953703680571930445703695804017025828477891185153471773369326777808586437092248057631274751981256058477363614356926991266587124895935096384690952159150528817790418024450628319569284669330689162974280108733277773768829610530622998940192224785659659104305513314848888925251124183186867314052443877807076154324217374088196428942726583576734031497144817419762046195009572258841346663302156779013133045510795657694213280920930282254388939166270152795476612277247772990783952047529187168782266566492043988124809784939149389858260392155968930768824501695974678499715023865760140813860625480161443819704274936910351952535051345642978444757200496289377118855012495964232801988866652273043068467420620226752605408819374724795156608240152298784266859954518938639077181080041892142315049110475622126308833064137656128412371327466177272439806322236462376508310899693049147133891421374733814120147909356540536460798192031736991716403880987231868526665065767165798659176059532488374100612006063931388712720689647338210344167359022474899339370340485868419978873783333150798792555796748619325688467525720387577754387750445753927243486727721210703921074568563778363959773374145121121721616357891908855537182091750362898240774307385882244073602021360013921870681173075319235512098676383540066006522042211664100310725573147850592851365443976494337522983378281459951771332467501486010038018142266454919705664260925371467318627099983566098257211017965715739092042353725122026040555595474930332384949484487300978293898800699886332160592525234022991471695776238456844161357207918716800152029543982218964670340804332058135156688852132534117300048450211818252160556461672559223865672451126289800564401717598123284609950054229713525330782581106470862385357497619704343797894008193706971211126295103081632257128848686645662135028807147307225111444752904320611219039114895833486672157524154993685048304275697823746666426466920072546087438025134742014087960170610299246354136512513119406204262936409126763060432253449266532864547795205568886028592503901144057642241350407535360448197719967569548921232122771235986683834763856465583648393126311108830757735231593725716299226032886588522398632151455340993104624935796638133263431594520067034146250211683280020832297888162244599103501487751705860142186845069059767878004527132357629256810370296474803760586288318269883174100820288190441355632951910357638115035787403924365013830592747729024217139175643985242703415884818773785024342294817732930614009328201225463578430163349088332669808896519155583900126292217016979968458309091106895705650156551264853317076492287970538421854410493419331747276900004303412838063072678153933559719813981638197212494167497384820290336383150686371005206219611370279421325463425150796432770121241861363005104191316007056276780229948441646244081046984243919370715337776641712779840850710635591099939092348127838921951725571136130082468153575966606327513813971747161358522364372983526929886691062055836320320328686578067616837025842488000660853555259992469027396442021796813586939085159179768482320544682298852772973179381265905864029384964245316267555770139958192154493672662692170279888753768896031929161164514506570204222066754776392857020148607114826633102067799029392036044230073938334103970935398140327163801862340684073568148786607970351966387115091801884684385753944216388868724599597608151841724234847804785410372811105215889169867425137333840313255182753816179721456543824817695970559352432684604156453046775543912303817420447392366193298138155686564966890560020735123372462152098984177752835430011563326034887723547201261727074719558989127682151831016217468056353623126430855424418542269932123575550900652503978656754996449480312512215747604812669931885486096890568998525402509186233465594396340326426310317088028304490634696965353828714258473060745029062876076524704298138759781520602400182941143782151193047570822539327802619503003322335164373226594218968025157190508384391942935403855301164501850656332263250538248669296748982653710724225138514321976231031423245184296703653677443420241778565651158658304031070317484939485002323400806779369107076298183646695351170789044854640016235413718183639961859494583423771063139466160856891142237488130026920564070875274055175949256931729631554216904338696510586725836125860368279065619808447210603746563494563271162373553170719497317584381595722255596974382183250968599098616632305906483706698812202671869950290116085373279876292024349643522273096854174362898043820460379607565715641396716884802393005703858824811242725680065961357570292766712592862157934464873804543182556388129285066004106291052928623281193913829915965437774440624691816328629813660567521310240057481261346296720661103779760832054381320165528286182692679484590645434098567366317215290270865166628544060677299159763707618764153513157530420453683454299278188474311285477971334990976607507649778689538035297528061323541711122669988577460658974123842262455729526586889718807505290609984615545617526502681497553626341703545849235838630300586599495654146565343138031116744146801344092411815422359050389275562190309280870114631302082337340647229812190753779885364171059234900952909741126780110118594579178636241419738028001243431519424012781395357556706596908724269052796319512039682907569395011943186962519995752588143609532018836409551409972772286117596823615285490829387435510381529547396599306998012081988564904444431104297446329953250070433989183794409240066579857080500004940438336297953648861051191353062162110577519989405533433339446799348934340278259518194764460852969233407414110699151753643327764924725739998497809599677642744141059863109400410292850546108147406374578621520374816798402491518166081859827439971397537839235792984753589742620983046998610530227340520948497328267047477650863908363294806072244010760031954503428846564373836782855843204780730806820354735715050408296452953377154051146313644442086326718289331683685126899406495349310810129972096355605660161290992594776822771973214225419795476512118738637086799103895647693369436506525580804896843540410060123533205761726743357962130845461248258828312150240496353557708308391898100749053018963221609736452292694038215134978379821372577481484733992721927792434372587910244889114771034078400161236812210666780209772894861266105507735444890293055165601957794195144751005607829731958068267800363481042780849655419859747490314840324660492987667467491651799118577907425925739556746071384472309212064604000168587864341990249492227230288620571427241502558944183795599434454386309135057624008258000005982112177761282131973535201651572335249082794232027966492031657984762247151090557864654399316703559649149307692860626600632439763474640006593060630407198870351813391478325360384136472378624061770053670486248088441677816128849883980816444501956230187116784665952299701462417028462402257270184986494371270452468851250276675443471440600380758943441353342798517872098996245176089179782285016239204899800843648499753720559778230785341203011429480964350823708910620662723671423319997248176326648753582521762078044048183967594125370502821385547208107790975634742052974897557883803147988729926236665418535000007582839639115384918087782198263773538762700704907322491872722965439611801721917918966610486866154738608642057335176686835588361450687722330313350306002896254039818663288314582883510499726298281111971863119113738292842106153614611692270351285796112563976851459540417735702897845349046022532716879269376425284449738635717862808712173541674946607371935179429039183409021332391309582032765008260365112893847712416909528406696711602881971553792890559233617939762619482926849622817464990613176692100238791251813526212800421323596770135331655684561645555777109474722478418829746717015067982203642571050082875044047944707244035265108046499846066408443265255291144991308630563427197742487161102705828061006832538688272910706396256734258838077475271562548304947566831626802184127044451165154068555984778549881114919026788787698990918365809190819531489598666003665112734335740458902834339443221863141042872114823145535633194790729177076663535481220019686067369758989274168798911965951226769459274713156359700271268003916471963596403205374065677680454522879153192006399690679869120888280358460350804247509870674029972548094507825503311241370434244121298796474161812036579150757813183533803477295117983509091347629729711118113516122226963598652310988446013332296882429913574771016671292874684333270138015767223966921515050656684673295923399709815631736256084923628268635368792386606782311375554544490148343535704940301468250599936442521319961944815910512336325866009979006701216567338347727876705628566961228373428886672639292658467008346777020263608683249060124335780550903003858820031455237215473629223387794716476052338110170726057909661613962109965096398472329566339105145129274655342064276910260946092937888205638248805729224511672265590310952500568500352995637358725512754418911789027811848269358455445711582121951098934753035443229891649893992871467143759361435611048415704982214398428734657442448386485616802163962593797138597875669773871923158622716669682036219667387508170878092554201433163125014574171750686055601993967801207283732785327080373020697301651055972812575312798689710376478690373675307783552541244409678370058625627946116048488517979844911844435913484125510682990877185932476138958861966999037468630478411174954986335216592484654702812979405327429586190722813946541992809634275739520580160367728511214280263870196983801466311752617221752216174551907121452264290333180419854585147764292729011895569084637704555983464010737353500939121024993902368538361521779893398004598839936057888721935932192794007121646187447572418919910426364768205329409165502575804831687743375277655699381042964725737809752122184389663019770010676953726213724623258804427430404455142139080438563563628554670712602247418107360760468760652047350207715254129717950480729030888934638891216445567762478035755098500706439501738726855902995227742851469253342335635943177413518434866093974647225336180362610243348154813643073066755030221468518817687445253848619847442199187846254276294012206401714834195985192727587778725347182571226800751091804085268208323962073837819383106851071582072285809433554015230742418795096796485678089658888666688178605383906808729289353878049419938719914447152893064603187221700635875523607033586027984247356982331988622343105092932754133162871951612374790527339421769923429852888410738857137880889532240689565465278739662928943883934837150611781233359191678941135346858697685236185540822322314508071116912814623585528093230712303597005639873360540382201276757760072722368538456496087374517553615675754847371707444177498261404466752958028199156677658307390045548587580084531238284317320801340383645443528370174765324730747740098268267747193003475125314150693401037337432539527112235763266865756024134678715291477125279826916921238108929790234397352790582581016093658866250829485544339374535055144076800024263270629917363700845496425367831841392800341485544034495781492840536077552808957818114685001027720574465677105662965783373340886578569227420762903011394652962035148153306063528221382707469699638989064791295725677175677934921812848502695327651481143242454476729395165362788902288165374460171482959395956432130497097877094844396898539869637305140145872837774295980784083059234595485608500766764283594108925029712160043406135834700838242252918048215415192633656738572593856046920409943880173963593264559473808257674244433809029716247426358346356235309882398568075476556720499352505413188368607826929188328680790456126968992947909482427329657429338812672544058388217316543650329549237137460053596009229703748182985439053990504801473320858990445148589425891712311493652560158538962122272673465683567217409411789396120238298393088101416541575972199744474589519357295765138704220529060605895191156732212053086401616056270980157623962051920939655594391629680432730222271383856069471292592054807232897638700941954766962827740060446303889237254521478320740376835580306144793006036408566499322723065527799713221612395611341136650352687472238900445918188450513832264814540759824538145190981222733906802274185330346940214173707164078915734725499819385238163804578056710666469584660868540424225942686871367951244877103552961125012957124651132491207032506669991171380382049540994358376609514558695887711403429463285430047548071461232097175965568176551398631317398630046676169229408611847350891647006327428720900927340032321495553971134523188590974240891770478161931172787203697865264592993717172693671412220571272810025065342041127078481434955309409716207354214637890835514614962379599613197479456724943540018969831757451163358700714281479279603929308608777355298702344753263869292323588811911239247700754942457708944179296919022913827647614069686623894620820870101259583573220470556211146745460910218744813704906021676028774993336200762551216590438109518615728024413074966310587449681947131286266912469604237818127262281332945543287572697287544314545681097231109215883700513285688603209588555447752459943548119985259782938388762692586284662041186399959447716137942995761120797962725811138578778573295164576861772986583344920671178498083593745409753924572648477474528007740202923662123968682377836422815208797052067176748835465830038123882027710972975508882114223344443290765355953120847205654456513210329352974297746337734528084335521653065538517008136989628949043398371810585942706266403715553509833049836643937907775419651172041848276937839774611290814549374508859984417480011488839004970280969866200010833023597894615680923708390899357274519881971229764630695634243093540736155632413741393398329548391551433762248177204344923984135421777652901198584347387324488338744858132301399219795565753319588740762236988253785464755586356249142023185836767327065643827117499931786800426425532382121473009229822871213227101117518369857323933001673297484851414664323663538359115635204371665833182537995892482576570335939973246795375147957671596107589737152563141043147616116874947520161575264772221749899632032245366589816009096332346275262283597011073266671318508088433878878559871235304945904344518043150839052999249442897632906952621662638615359304585707820930146072355945902597926074553628332767937840970623965895717584324371739010304411024585281056085285848613861409716208716626226633829175217748057122125365658079882238670794405421965749361245490087523269234115392120895319660067314669218200288087406489889385297870842851969944616274007200335107691884919382061932452043290394421858447177142111203462405541632314398615757164216386596174724509621792116967736682261157963686732671140716176618256810222084179128633955887444825070779903861354057165457499467996752815556057698994787554996063394923851177499550724659595818371377096860460455032858573766204635498144488744487114883396645554249012500333902489507084852167296264901934961992419086819326584497240906723273794469923330034056181902701595092432630699453895873599077139839948863330749703262428082099478895448364127631718476037966431787377615845792322830429815296882503936081227608780906317632143291389844453794089031986947601521133060984441218006508411097312270512470445062277636674844726191184357458917419384740350996842972354865250729961698043001431900702376407661888284222106857845628546788544631042107011236236083077969166574931135445083639546971138197932684819591852401712422935618182954572768151847601426213954028043277805519193028790467332201320880056525313344577511533663564643087184199904844321346523930442223086462524065418285295278419463835191829522964433673828120165198556725901917702299143354831193757104889370724414291630764330397766645623273525861679719203349508714806104685636586991956953098299087836527961643488615218090574213945090377258465766659088031028367161646446020466209151552102093069692548392479986783063511900852065528247965031779773804247189487210716577614038816732183346536413044795871426673717029343931997604103162365912108333927221612997393884308228569823970202257926281121375253627431879278796243324683902043856683661630750616044669521107014460852065928686862771090751588664720213497969055517988463409500124008239058650791482614729961095740947745266418666771549510869806166935287616769766588871956272370580720820347458904724788628642031812117313829131655413836402625434630762326515759162206538459231883900099992937578153946630885967655381361081380096483507019584716332207438319291969332363821189367715308100157912430148570636696846222502754978133541952655201378104404689054457933179991229493220225182433595843523621081840108305149086529963025949973029234784614213032001658449613073272483630810349522079301094642631891615083894305147528476236754360757078472059361704056361161753791583418823793395667519306975862689918520150877821330153401686686623087424322778266753070109909152604354130101510273566155542209774519205006348427869428594174204357007049949588357352922367940643828990022863182212785464133747305329713836636877682029713816159759945637280655942482564669080375027806217185381564439411124383337322934922098441538369261913612984631844838957488402828800708205881757603868635064615262769250739492145306302133033104865692080063826109700367837547630817998865085556020313471967674996386218624769192356547689027961108535776432575734619583748744763791716531382984354573246743032435748250444695322075059792353555689890149338754683949442823633595178976049754945732381234795262929130801440221717162508387022485013673389527022692486817854013677026061830076469386994987029396971108297440342380300144183914586128059020190611911069143154035508936307704419825084773780562876175706180911021286728794305981312409801620102003710866668378968665038343614804528043301880765464465399942828694322742998986371225755995819726805526421374808300429134583699571227503907324226957783365180843939555899778344353636004162102557320941544592636496152380605330993605374116057131040195297485224953766414554903100415100714424683504839299402524784418963764694310879684930919657277388773166888248431117563130954561654793675776903191615594582751224613225238767655886735689177485013603630817389580839088286188570087093682734001787135501136726094590786796900114467418982372354652826421960327135699828012398640186126567256766196720448480544162101459894772775624584277856094425501534993267518541855657697629278524381767278478789908253087062420662065943008943659531877744831091501095006256322451935387207218233390888653497556782423261101104479788619752043656477536756530266164519058802820923243490249042843877492591338950215008122228223445162283814232135483001325876931424100774283249001904580118945009520718769513704588169222239135766309534777036100433245078345726949715265457182128381270203279069816381800979809241373778276016860735574597327832611079187437703924250114068050871432546190367243381280426616377747101765944379004866212253402956339366081928317791764547294961703220089769867459495660659073434033015604098727846191742218460314611441639396317928307913214908221141713900310323572801022069652940426064085203228157885784480434071233386382770278513835219752710209473152962578320824310278898143591422810769448525539148320718109505484560035109560816824034361324897681489757821939977055252974833564485659508454345050873562318558152739824563494241532992336699004775848719332041356031117490389929918532523417784434380881519042782345013038583635554816549631832328863677840330534215072874951925817848596693164278624711868345525743587430969769438089270175774539513162405327300108708110179601991931230134169213643926893036210955644432651776129159077751994714964535775399548203898390858411926371721340781832694422720566905071682913939373234010959624063606009393611741684010373841542524976248975799285452436678262313864124124346728329120325288714308727846152817926089208233313333769219908414993115150322271444169199650847169976884667783047965403053292268411559838017074138949974761784848794029519995761357367923704924619366947504914510290483063130672782128897501557668522469809442561830947543782395454868219923462954997867423409408849075454431326743146282541672705367359996059051390892168191664141675811982376753277566708398768230354286524351412496194800157902161387655547124345759142758131670388799756241409514300885552543509874207531401348117118685960026412914563086030319480689780706386242271316890790957384028156173201606056326612473036744220745861356937607061659535590408859711807985120799936289104496757694364384191520481869524298733648259161432940600355913324985324762655246263844014026213567655033398136395415446483352560140545524276315010895693967012483487833927182047337486350675574099645826458569402343804608560994602399796694332727039209018458324192231761802903832389419845597455564320863886881551262705023540058242943663120915145829190906249916251315381243618182915198053224665354228723478744615002127517676130459412184168590796285792286789266823407890175502556203825821599608387371709581148398403580322540476092148843106907884670582707976534408226181556465759867537008037765208519487129482271299209805495539808488793561462357883016573212023362785703153888024521032900763031695969866705599006774931842581666160400056092440877422302268339880950017873281694787302797534279515187788121852229832304342699604355489737144019824171956212039586509702398990313877906137351005423626632292660102693694042600525860526075081908324098059676008665349611026551813522898264411363741595261481144642745469568955166838013218503728305964465608445669756296173185172468481290204676341932152624640228151632041947773041132780031188171685719379986638061387203157868721638797813110212856187148717404385514503634389408700766543244740573385639371841990102577606330310766728751028483987909341650976246419493942638082834046576204147302555381070992956832313896903374612103173306335643217794132719814778346940074048857379527934459122544775547232971913363935367559515545851647486134155139359136372232984129601652264878185919109608153290261056294136978478052834111978101433612358995403075617008676205775119325509548470742383795734827614753147718356152679144384936915193321991014195625833306661239524467611806534594513597716118342930269766052180596621876721870468098546699285525756987502141247819485273558655307201029709777552062658014001849289503601525901597623094100513008483392700942671928851846781981034451817100387926635358188397105095677921412604371631856920123073316305223804631523503536949271274226988415444893191973099786488225526426959815877991118779632951644409027813282223481067842504091581143004799123222942611316387359767418245276006190528426380280790165507450556224811752045820760148701817714074789484626691566930232879405649681405017189487986052373765047623370749717358538779025236985908612139461083553383773123915379821110752623376724794837688005755288747392143278650273850573960762438455700299454239113287621417608160564079302826841800755612136845210769576385502298591551799525963545529010813433938879169165015187944726540456861866657453110701989963394315419910093013705410506180627488987615737413676342101643562835376088571793334162032818088208144034342102952388922671142244611697149407846132216257266705946267370163877762936906007372834050224278998834899546268646319098778381625874109955006035942066481275461983877373074663480433185950154655905379819888529799253345607723293387968853905357738097241070322557600380552234737513618475530674191109153125255606163126889278249753613842193069892647878826421148544243792978984261270902533361433587256849415881117046702298891451973764599587771524596229053994178487532760274287007583303290898551261309628925554236819833950814134703077067268450725632530256643257723586921074928035774513321662302152654409849951096385376908841153186507544734156507838025370857934126284006201026495234566668433776316382723842960420796232685474767345162784119501058765715100904175904686924596636181809080470134006295340255941255958167359794068862322249189271252500046522455100397314535162554226155339481323673294604843942782856326346516484836274008693614668922900786988391785615755216742271459547056240616179668069652394205731458281987725155692401591609419535440762180778520723339552903644849065221315238315159201069655575193098243142451467604840545643538053997744156178537197925329857525167999904436798674434682675098366969822502324321496049350005820074456589061613625661926586921295436129338661978185131322115617472795799607864250377027700020969109225550071041381036489154603780783236743875722725077223112274949310207987593864081005954629415101867146496977888433367851614607212712846792290271698829497056551909948130955625700801049532074191020873205082394675932803061083664250968877828612241611675213753249647425819409116178095142263524544629973404014606292906714271207887429355219264524456841976052486707560514368033581576864536136745185406205919958299430878351268047558017673463179710678660184719755994578836139601332287315506923029037954807755973520843785812507630677378518277392743397017805639574731278035194718266988519234244178736215709755174768640468076734522222589709680934406512620119060619896848903972452984467057387440750050131185977690347442419641791281898073496953694153658133296919589598243388441922447660031208598953734613453653792699096607733035537231857940384312828266869755749422708744478920652418979092415074865337822412256818056191373257080287756607190436170074583359175800163470740797464899342399211327336628735123725751125387847439925631215131118592459936324430432746879354186185804522922856981312271368267426472933811543052585157935130811159182436096462757831102328965719175046879891198690156748116125204008428912617826962783064137276758799144744024278989919432902354986132831219409954412956225841085020159404041496569586916881941266787978443652841729967201053393278521036000517857324526202019513926322077417735049144893440618253378007465438068459390462177563502061483183769961277641123776537652314720230503784287762657509339531642151761440578701593615520683971456099628961376081622437006441489953089587466181587557353249778911031582186230813589461371434163578922887171888563833657497662855895543203372605392161553650665180431797705667482123201480311718703792685357422984056949032457536265002718861064472502806297038858672800998024809001062211621070230955188817171255358502602527731128001824529887316835782880226930489040558828406052722674814515026755248326549157771732366114385746422416492882319337325682611382371861969183136879693073365180082720482765400947262459130313024739076435410303174248046237791283927734095844659450411105301567034782986978189839539942533001441670598530575556122961446743747675749130718347391534399669343411790950013940001505293406060646064174379827077941813319850710885952314059332689438032526052171430902997664778562393976014366439489849572900835776699827944436010557318444844656397983946869161315962108996825088465681828454882971583222410391844557336425975879733910125364533300431634894082368765742388791546971067230645058350108143489600493124980711606352190517295204422895701660909156040208301396136956829937838279372078797181105353225277898669327540149966328209284445248104908990030523209994125918609366136314057175646900992479926789198807955025357251619673516549487454334387113677259259602781433961196266975355911415410466822907141661622242220226709664909445697494877302527188624841187588099955587998111688257110360161035323598784371432992859871795132304407507265936590613378197276164316538079112977575669530044647244904162574028937851771329455152109236227905251057653595505595789405943970755730982813987225593291793963791614520214042795873975785196485361296458873321068307241344734402513683204196426917744462333318624926518208032163238530104517283202937171963568774154609851565941783438697120273763851054414763880919014999918024511424189723286620903077855060476487526273904518111323296407789924410401414779483581555852216522704497113901043912381642179708919574099133327469922591250370978696288857021481317124463909862270437228882635830574820027963912840838827177033581917819812863326274211130503149613795516656340203467109369227202821868117363431052372101214224272326411494349034747629408704051238454478964753697925048439458425884081680974369861335724254747520928778616263845847625856031197976067276360565013022976447320333839122764319185171082073844198987047470495888492300923666156662773827456745559519565193686159917272779419679588175134724030535831508401218297969458871557791283430502536201716000933521605209790429159288273149034061529866406220084065273957577653043525818233284533814872156810159328820492066704740307739113053681404282419180254071128870079580104276766750617574707066845913083078870388755371384122899926255776508598913293638964090419530385998271971835855618238766291666142279983422458608714972805431168008983370217708454335359906890489441999113744203638836998460594990147717589433086958818886615702507425780633170197884354913926184398739835702202969812524322971248588520216763947523031935391007371675896531012407612442989242701587439053480059953603981204659803547612101194074025205612328218393304782354069373259561581934473652569197128619664393698087473021985472380671000571218120845405223053814683587605946143997606113740640599676320039693588486218695609000840944062057523906654110861701952743930642889157697171482174658518279164760363968644881647992967655510368856005645456343093818422232173295439549433006786526936684525651066553636918694585107703729381361967464376511876809742357859874508334568468254079589533108639215895494178981863344695509891729498030826180150191372071893868615674778212905016400408710446379358987098897016267858924777815848662111839828894742649848183526795845814888802946707882242293584409231540048263243307704746031312289007267502352241164331857629997802703625831997654972959649993988475057150612964842463435883505355134809505796261608148540804451450271376826523894359966646075858431164614562955682321884086981262483389767139597006300175102399679160485135092297376274870246948390826439693880428444638626519258707840049029725702671198755840608241071067537729114757829946488391998024289414025683407397818800087640122173922624260374416688348217099760157622842191518967912840799619549408525151247707342420537362215060836296530806328865993136255467635623225294195747939490503642374085960701151018973555606702401116430369370050106139336111869612576555816239054299198036229082540934715744439077149696077590273640359785597165974349949565651805573325716478287616314850167259779859774723139773104433507390914922288668883577520110967993623895542412863342514823126044267325054787802723184918383276342423133126207416672652048311367770444013327149283093042544354036867125218156155941754630844545534187985773353690394873181572975411196991292171088199835092937748571912097565555784752567093628177849806771836029619754201979877997987821980949570515489130154463176622877745887421271130649623984384062121572966241424994664828672300599278419873637194654158575941519060933220578179693170177219758207891159672694566986844683006301123529962733545739091662104709908022080242404796316197490054516119025445191148979079213177060953870047365083885991114161472597454996774510739804017416171086960997508006475619287376797516526576428741938040846328321946706498933861050013468303691551013622554981992182360124594130419081327786962448383040523439618883562080441489936557428222937557317278955394613466983225145329675254823503228565507110868820504779362061854290080521014816648913749394162161081095936691614117284706744711710858113297012061901945399038119411352932904337261395523406931551288683942733874610939073542074920536347480724768569403863641102945809964318751032571259784880224926859290175372503752739485746823266452043744539858698744813395932908501022295274675836662623434164804124875806486435256887068255604059116396832710072055023857337439258891741987483950136244535258134781008963191619774592475188757763949289481083438518449036195383408074779861936347713141428922692325215353679213883040539179311526802425673278833045963898209175403124536672846582216612610865057501390845009553482937461975208042182141244302636574025136543804706855822719934737209941860834706347958472070518514988797438607745945483167364596616370332676807814697693634077138661793195008910595576878061612058674506185602564272763094432858333551225807495937970294106299562805460589900675855389972730006680530854904667404068292617580780673263660525526484271258585086230493625735030403567576972443703449134747948629793986083015167480015235172730040830224572178991223220279913453916533393414523332741629949100007844177949965136561312217332703424143330351808212558582924273245986297768352293264976504259120273371485758169418649921204721967627979202138674807733449377969740679209978343336469272242878322475071152855777209698067043233903689744429205427206537294594091599357034842388933983522112383842370774550656371173079226813742381386345379041405891411040789821151558849707230891900303690238706569981970980802930916695214579139233231822298825296210781604023572714816673314065550417102489172800916445776142273716566685230484447093652721372692319383751668305454454017160083552923465763098247740195068460573632639709013259808395576806697850730476920345541571754885972810582151337334988105635451082550227107359693026763871941940731941568291789744177677925203042702369503027769123123089298019511298298402192479873992605298840935640011240058892067491647189286771818610033333344851431838068760422639504045821321209830453822660447248661673717008972360918223544467234794026952329924026012716366317968976461824835038014736018280615234095235691623505334301900245854397467585447080354939829618641699298816729950044871662633210093753703614733613351583065874329059686750516513104973032363960443223901279254990481939664762617220669282298883365620557515572637628012829950859678066608676092327760337625345526759816221186123444217370137242993658884791719325428400743779777893851120401283482129183512222588852854588626075481265056942533998787789962955420399846676791409270772339791027626606063512322741016312381338484618918747089160390735084096307023534111436292466555649576478397568827199210011776549277000868822481440455929411886341931567461472784647536070098762701680444153099173486021959216803329036844538129737428921758429218332170136440165159089847987580855430715641915586964567723090845247907602726104618516660469743790146603172454350295710052446001326697992321736007992159256783669319763086651495432999016367749899124260939391627361681006687994579819831429948802552542237342118731859761800782735149934820770578761105995692722878268636075769560302011402823406077824861986938882443640220031675288403169937510958619003628013628316782278791612319649671057241257895792040814088991581302641516956322615112831951096587728550660559750252182861578815969264889141574185200356021655163683539420363230998570501728292840640567644456406404229594831028806596946382741185224068477177270297037300552813143054361699234977466483332929308230892421452378409192314221823453335655104780732425873048331666097873381243684913930202856292530718006336213050604708508959125371380708036946171063192138639038654805242182262815265157236832110310122991711833853016753068963109895990261569251036823833597601402505433453789753339187447702265876647114905859104944663997415575373286734872165643011897610492742384423161333098937066285890522734292389953849059128425898883012130336426399350980866009763634141242839181136219689853921901317432824887408322185912486366864310986860980260110493175704079914589170225245147225902364006370243277095712869412819492332018420108397899811243528302547925796400195200009256881238445774487622972247938598940362080593558537227951328567738290102842924882106535029605076844691287028264853768505288924987250674613544352121517541960210912779301292446307595128661904965458183108450033522643158322669127036989621633480414113670557582147339667879416732577651107262452951439933807002925528028133156534091225050637942390237847647720074173195836617792354048264912016957667857658517390219159857720936201263270699504977605645558793141696572737365936789070923314795765267530069030964848103548441572225613556836206012020465572933660947928699666527163985645187818557126300993029102777156963435502095615753938860458268168217177435355471071559607733870331034690718962971079831371782727766026975200637336866669993996503246361755501410140814659568510069799031755786869872859413280235044929100960558582238950416544638187178403252987975749221744053255291066268771344517428297379070751409007392023839504479216187235944592179928833410598129609913697881890397612962412714986197941912358049966124296703649655249758759242583953557009963864025914399704636094399975131066813490830536268081013323623044005258278735287431316482346548766148890488510194580803812108472564274446391885331772176796907165977967276979563638270845363025466608565786101019977055254837386814839557831115236296046690541532102294097617410110373635948953295514664160168476181914940615872802751056241434456272155669538990864921191425168265757331905677096553036023804684773736860547029565267463753822636144758473843552954450747395239381446505119512628602327458494906229685285638686684527424787993741933698211084872409978630008681277392390146539482577048032651603244598609860414739316624783939491945225331910971779417978008278590668996576747513605182105929033175142081649639313140700485543477615846755154530428202098074182125571509572890496817386519200797798349401506886979646265226569035811438211394670023299382289844678294260327211370848065094218805872262151976687859971308549652828974467202618094049826512944674272769812754989398985632998596972749721604488725335852048512547557439517155524659246892591878638578693854578561906215837807779326430458044240660830430970854977649814907677294075625881434365440186486288698359244526428550181780843473326291043997388505313062897015024056417424650509125440512030834298386702667131538123984643757566041215831181633776502557984054964416443316816673702719395313867387228710898126800192109071860307857599102035894824395744378359976905751601357675986124299605250868006348658956165916765862614338857229240861600530305916481349546612772246488606904679373082610399768993367112922288998904004348311862297700163781612901462517895091008509564900103890749786970391835639269565941965570446754464436679731622571811118307215831125771148601424729853377572424858116922235928290009075773323820508434197345742447279472689513398402602133344140017493189278409992228117186373706604839008565989461587246270683956940997055046213324320552222531440246179361620781419759949132580557865419177971919779760780018042685606385969257777335457063955912306055951235369424818754814910200871474306050738540433963219730931462167408413595770866570809900545917294598559306512680893890778797468558641611929112993871774753642208014468450035817597607442907424487788087614887163234081614704470490017250087005392367318712522070765079133222589396740888955162531013598560013373990348909229571985670336889937818257935035383587079956405306004602224534122661605010714767771715777465907809567455495153424630534347584365729096110363275590813753947156683748209947611087074528844968190754567614839378945748376508730672590150115669053461770281206504373079985157603248291034172337150839961376614176946734920066856797578326921721101697271863519049589426246587966546712232583175637088073858329290341090012013393127520156978247361181420109367056598508932453622814500665211741008953769230482408231932553956939112493477582307785277507424327596019549336961236107457233842044183910840449344841902061010697154241252218518200861491454447086790178869356251903241294590156646265103125317547989445798619402399871775378601886451533475274222762363873756604630052797943750393860945473025115407266388946223148855469575483354604953396596534598197501838202039512880086182388317967368962655658199091708229701227770713269195357215212663373531152063961503757285802040479174034232580426454856272697012905506200337660461160243582730118693460146606406453251150386732073656741087396682240967417934503585451393469967752751010546714751267256611095781490327992793201404783269539456738532316822650518684761711951816513540360257445808256005178300542594288786247460337758469364279130791383379672057199284574887795982434651579847512366907998152305181659002889133912735505266454439504135795793847096221317429668038834596036859156547472478058851574239529904918890098997285419054045716321180134724856017317393703269319997739895537038004127130361493621711549201930685980539255886686847821450119938590337026015462224741812352751263315286961751599353633298679707242357519893289267846483581207499610839918729402790632219497870559571944265733213036590236859969391230535820201226498439826769344329246774473429693981453086572173865992770292343990198147412703144344031795836236056398938737711727332381304075025680556649609921771844534819205726573784814834016572981961648262469634493968863015965434140134499882778361380687363421903630265844547024221577665305874070669800454994163040743053662992763594354671375335201693895278537844278440069777367386333671389785168280791030309819522495816190406602744667995259802874006883179362041853512725473439480154265195146770416624732767010681130554915607862338594985667999021093708450176688219115552272561601941463616479151062767947454561839987046679106232621319362424606482691899907686724746159573097710244661853331785729170749277355688562578633359173517359405010799981707647212742716775312880381064943550351242507349103899160242631559075755437519068215934474590339569993136413673088255834049250481755128962587607806415313442547281102328235283452149018740257705788042200023881415153800432745590035760021087413482746734319318315949150418491192807679594334689751858349547109346498025537131736467145138535721265846790506367445343077476099585195697137426605968617613792506863218685328915495969153817713797222887874601946682710231707262183879782500307921251362841000526104065995504418891006688785050692352532554747868680176370864023336111602934173778567281829815735507428025594319638332802485963514768342855636343659265528728098085957226676730367663916589134632309636467380066749467637187469251866434641711423229561541493879887303702925433995684252433477810245434886207038723640494623999058193653604508566542399939389262136510195451780889203981704619919642620003197806368977843937966714198918844746228960931809352899668916123625630304212470985075344556401473405490555739041275411302655755111726881755553379516953996812425342059199165872105015328783709575379067704862458475212077175506836098018531513890267240578883561351633074012224834546936528197003890425733065709167126288604031965230241888289915787244996441487319896712676832418543101986677970845702036909455241876423534241293286434484179809718537193710031749854067509275423048964866024450086977061498149366296043569319806023178970804949201019560081664017744183325355549150904557413343618106133598398814227036068364777213321102021385791622057243953318432209877165805788527119993818836539216272034574768535132945254636632922623156661896397781603305983271639802260799095215162418161738666665608459932319442992520683166676672835455793389321918372148193365752316252106238464666626459899281307425547200616794409599222194048653024352301433639864782826811990298242704087600369205728784991283358306416811231715730881714228139734223494966691643337315603030114658410293139224144025939284050228979236103516943922085840763527265434302227692475562885582983126626292376230436254616681488081592740321341332428888572470882874682559749726706666300434163956655557847123309844929319109042746141269074079022042019651055057653547761395584955232500526940554815371732837618838646376609822506324345087585247600593921608163789580022515627142777496909817075379377867645397998428614314048853519704132919764292540861612231689961977144066357598837758494684947125008503868348220493553442857536080990267457003008881175019013333887751868271440653703819599995149704111699985566181364307898617949439271644986040398037164916022715951684581760636788023100956361419363693564175610338347743846342407801367873128918296612564410653080719020645608459841046969834226097394195251166297055273871055816297312386206851123595039437161414534202440434172088761819193491872184548236899843448204665346346398546913514089410303103284620679697241078045076839872668106112180625166621348447000005069607795934195571050014619679841409210665522912983852509057714959239186894297670463946725683635514530261837942237563526110075705180281499363013777075749780166444031116415743955048960254201236008353946015654899807782942559734412224160171681452733245727176384695133464347367133958232860315729947492136745495236061546093114257146428008861776630378434897675521959276966551431781896763147215684923097703239629311006117711797117375487586885409907786120676969646053397799321037803392912531838362807679558000370166669671061550603728549885547453266185886400837039370718876136920115071183887601766214047602369925573650448683771378142371239027469471999329073944628101548322231552363058244347226457160897993152892517113712155527549139386012920987602125062351926189622271367430110519506380948163454415977397707312409580826538448068107555765382356093780210681844947339741201829702239690482620140910153967668585497610948423402330613853189980073403047216584719789518634049026573297008641880618703475139538425112839130933932041666994178649545409929262212960351258502933401663840171150136990601656677048248780036561346265077296227462655905318502888250089936448581968370660240386107175512061282980382704886226689578262246645750180660036499421219673292585502949664608697208515815356253218655265526629379050576411566399715059606229634825795943143549461958901127925105401615326821881725611688121089805039396526106412690504993819964492463435705776547525769191811400372659882233398620043089366147920303476545407931497494584555331118958987657825125944955943295670821090581930985069459324393156422016978815760924675771677633026154212775484438682536395038164900055009409167573667142352214361954335865848281538578769137381367301391189928395780536231800788271301006606267044484915332370573876885697023615630769983780516257615678569107147553847110594280280403075923657270838804741249713626559334920646495720668798712899753056806143344093351319200975862854841540483388022477525960215125829872278558773955036179511602331739526374042801679897510510933079251352890159388657922794217198018158749764431941674383781717115961569371029338537304948019605167117084019958218169702270333788771344099778936789574596145478976813646291886343189147592919339423854030367266215813678377922210186776068396333630512862050961781426638543221105197486526961283614563650299498371061945335285397301936980767389034575472530300498511957034250952249737383194096154968751393142042922052605794859943464883046366800530763080568330867748853851387799878845585602569825608241403920938922373389209502020079003334727880403819327846246612875209036737460775981700786572220440592641317274751339597308488269997703408365852781528553714005808875973138489593050763693368409450974574075530465689394790425738995381847321106131785544792092614257354852548534354691332031214138607849971348870246373278775087866271233056282560915901882445315276549244025533506883430974755669664310275938307307242698311208991970239089259083270536109711325951300226837099289706350481605432722271266239152370272742146387396576410852252653578141417746905577298642317109762288624353042928736369438277293705287693226531012514780519090788486099717177571018332042928462241617980373821844257461882201543502251803063433438684009386809631058727210473410292089821010772784082826557119726577065948467199435053751055528372315326753977460035758091409007186868484877073838661856664853182326051183577979931509136307326988508758948085965877926902052803236242886797059536576068843367759772689931087093133439991409953815337033671600570150108485905496025421677471407282154254286711805053895705681777862359860353005757075727484701102286398647306064871250164932840790092010586142107925413860018561223821342020345929140315583143653964257083972884770744917343726390086672459580624511287092321475233070017556997076380875822156968683480462202188528565374506423099272790497424638376797562620010925519628210253488455474987474502299856685374784968243938708763756772590181789678899885232683469032393757412276098185142058565741291763022420945217777652868934636535634619249773576471211044240331882120030780721643269549677151446314348171837551969141818987372786471108603597703499481504485073754514921276056820158530036623749471937808358188267751960661044152233937009076171566100952848969362363070707111360486790372007008816677176163274278738567398488641381619466263011939200981961226887483781635225661846840250646482097491648538516364916083891943942966888187083283647757099529912946715087729235703786275653534008228702871960441741155955299705667501984478667305371629623494958401540679790609322245989577414361212592749534557468171527989001728108365132802255850623657234565549563197793078316328255721955933844876103733509933564278268101030383628197436033077816480443167705890364302877981741570159338386662213229616268700787869753339535787128757922541387814751386562032078925504320344525160443863113717422935356853953449827682166463363675103744435138593782910919791983931866550333740176225665887989107295710631117591200529572518542094297641858680330376088196858849447663818238504655601892205049675712943717159808509470645355536813648802402066342045704308327140083112500402725256228619180434722379775504014966587441250994503761247211841151600026655030417547005870356821909170131932502118232653098875939975693949493019989303394092971462244564155742096181319255757474272665221178253619142703431275341181843577919975260251805773965844321308401956705660195557081004073916215905897105542987541336085884589022098832739227775497742849631899985679812612582144080276469117207721246874419827251698215410669002698562785806370651977733803474144194813835352283318076439173794772450311750475530048119094570934946097756661582016246988619667419057481370611166039829649793616659158422213438306994338629224094679436391897146079544824467440316228790457379689618998984292965734465117996818762721581952501940201062792840863614128399765982463480486146874047750668410340823872900927306751423311487774980062310857109100432805320255783099542530582646892647602780684783743935209377587062580772125864199567604774688926566082870223099966859703570135921223462537712749261701923304009059537795363446160504968348374209480909055498840428884457702017222892860092959036241181649267821135881176838335325310681563143373114795237556376065620804430265948942609800083962754837272432325719872597072922259505114456037691627416477399539775581295713939104131996736030516917442507106147435345204267763182636171830072192933934456739903891755348806805762738663480347438065659888893517188780564763617484412103665220530919383977872590704292754625463650743410198698817610592002249823595017639530650778507217983707195771910819368767465707462832410546150996857726568886473769294507534499079069267579055636119057221951145873497059799549933579654236280442642225371501080647389023291646532197960362743945529786823739350014855991658320675002649210415542387273284064090020012124228424443313058876300652669888960152117144246900490353333201060771522675854797794627334898780734622369006634964643405019040795300646337298974920586541598268055101399304921131475620448979162492252558608112709604817964636974419539779929891736703994821286142108598853832036332245162382444090653770504599220527916166040904453367584626433251355821847757720779179165776804469328516771586917748580930480498281122480694212547199297659596760090753571222910991456309306707958911633673784203640838047092859047900379466653127439398775727455428014134415690887747667269256855551628677198482041142621718528857736671358430827302980433238913098900997134497261114458316025271357419682271511132426144404003744158554346474394021799445039742671983354547372053944003193123368505933076137990265909248519558542362247138225145493460372767463830101025349653067267086652815529686497305430044826260459122212090657284659895582653080324295814339364402622444846406654240375792965434676024287323259108293598684182283198744125593194443022304815283450768959541863455104412013076498476143787808213382211549640393431658904359489447967453364058443987463883770801778891011499464219616747511289996876524430578368319319694119754551716463495494527686231960605414016171238418643036458773961158525938371389569968318686653563687384788507003307814577064090898885743334865076611918176761076615473164839434966284479210799995004799786321863590787944648393129500741932994820419243117806519597010134885679317434915213938377918831514709362225591603463188924021117055884226135731976560864033462622151315707456122584698160127992568865575867995721439308034192935971994789332726990443356083084315469146799080543303008383187505470000502262750113428813180903628154429403210792592102472465971072178036849013633574234929174222623555493821087532515710621256696297071601107534555411562624242417325118962260786497176436019228945733202261648772853669764584404204222961210153685850651344362303451484372563085086260830646530605051834362567595975272718731540232184092722215135792012563856217410221782673240475925874878440468959433818102659913467577067638864018839290243550122232081649257740771486818022210523091840149685699744485241383596158863483694841243905260840827106370790434399131731189119284785755939793939368068305586651035055693913217298662290122628888974244799391774441704089031300281940389152353934226946536084501801631289001729892077484752447523881620565700660951119967977712729635109917490917113246583944631034179808110967840650040276317466698662368112645499592115173404014111083219707587716862408563836011129143821307599050924210117581332948083272207295395277685958839516916911235078874777119813648289152095670177122010835979061995410437400417765155352284461884732750544280634559309460279038124987111562418728718704059181996782361960487777981173096772800888193907187892714937133507379208667643165532903843397125285358510405193099396403832101116599276040644884506623961196300981480483424633775133380243312174066811348095816836313686910698162287584707521515890078801303710992423525754519820204174087044000586600814553589452797220351015245575216962481406607611287213539133937739917253450477756717797796134108596546555173732131794672070152639384399355792516486757307801497412241259419505797056418457280176674175549146598395203450271108146685482330653198761862837310700381824846336645169571233124785609590007714749440074100920251145304207339144448232572070850441832325647040072317684036010576753567351875212469657843162782251954624663236123238224972657558887262018025985232293469214530351281916814721887446143690387826933177954186236129790190272322990640712968561502671470391484866847818061299547579309757964317534725110834139495855715558470842093897861506812628413723750670092490562239274393632206202918286885994613585694561106675840498545338952214103056119528693594736345768481341973753460645471389672614454116215544080772613091381645547354604964867932521762491629135259001084984611943699005936112632860487948009635627370053830547840052372410473219781041812447466232019558140409825086980895094774946803298828021693232362170779259961556001401599651863738182634427917366588093628769814930922687719091800303402534932166619054143728073224433533552244783778144852198660647546988998052814985853665127406451912315880326655992427366874486908380645815243100019625302077358441410454241727002620532627723769158658014304494976858548266063471411294707825253569005361123766414944633364969169956921027784512864994744557170343030901240995230234574484931900728151765797269635707054581780680581280112900831931694418100974627739144075473312747331167824833735258214518747485634062540938692769269556824117088947437774912068144902708963322478318226729815551092255635848616707533441559195759935306555469222056588849939541482820874443972041068158417085484874624967264232281524072424485345442969560178445411883215299466162177530984325409222963474780183920558520670862461403772173882310134493277253821648445428003052382587657333782960155331431518733835315794668142395519969119762227414281986085326764463464124209966286939843653598942694672312284132289916049730169540246062854745311459367950757464745119033465676261545657581688653326131907900320383279625148351548519945301568685556299051389939020375322379757552509396747114471597840718084247864147543863643949419995097442078440675447328642514742752407164246326741841771626729404927433543856488499003432568931214701356946350113052485714561698145020957594298192664860361867272941629799015045175129697767632104950569644059027044923240838430783843491009279783802849874859929715949794463991762473455587533634912073639890180910713746917912313138741564818091123829299060270947205907685391459612863812536977554055259272947425307115557612074640273386094517911531497677466857072403907163806315786253843482099853263984439934114559997122011157408268054821103817346120665387035199242599595900257738205816516246606096650464677752953106020694788528162890990108847148331180123760607779624760974051882828898019489754653616604963911436086818247865753121405717976714777951539346202255446255372959351503948219977328529238333334291641939653150391690642602940494041049917444545024070059098404829882893161498630632833251235816206781354145082967214200443166176503098755837674593769983279501918975196183004050784848450017488802463014597908542553180244022611300731977156191518542729091933322429691618366172662578143664674181919021322827796312079228448864757425929564575284858999692276120249865552625257348531250438842067267322946278751277454145147063139629774534991620340645618190683423108518705372131899765805563327868327744234045322484194720152298262179740933118369724487744556769099692378895928733124906732798462762912370303852097983913229409078223687072966398025894007856470142656882249545297232605144000300597214895124476074935282725254297714305933337076098871050016626716033891175375186616243652705268659153876135916742910862028400796518953359359681030830836163898332457183266297738321367190139788049861762835738978216775230861778722808270512208259998632827809020091517174243861801784791755278846870543974183894995383209744245828753557296601861116023192090481896175221847579412802668287038591085130456600855979560804002324001578017866958429650400407119535936923132041948580666113304381744296971099431901650652002928818757355181673372433235984565491104994499548783106686591635330855946438062000674415214660690586211652397015675634262200287467577789232802335940469217671125318316066155409672017267045618920802081021444697781361062177957052995609581241260760508452032383441255308865086463723953540367488476904134507526152593533765413629536798582573879923947037267002664229457185458291714493181795966427093931007249158609455838007765607616121269334384291102570413503318039894554245079705589944864620835653905797324593914339723799433592262466051453069207863663296629954923269214917093980596770475074414177546217591679101136647224277894745433407951720166963183690706413617207023170800165487534368884400131307505401971638869847484930333327861735427993296996637285159892169182674551572231280908678631976822610764390695813912940245902609926114633832373277296760863819675297891639508612363461941471733625512865554359022449431073945733079833239901403894997985402411570849296485673840947961631670477833691320519211314239740019158281161857053369719711600240197019559743848195642667963780816486162218705207227076930060271156366138669573522433581678875401171221346201685741441206314655860433357870005119612817829028995719877559056310824264577359777207133808058872627493377332015475826237386349916485742231388032629378139487104660766829127948300303219647946580888726957754771717502412969169229477905032718201303543834349937773812018562967047690438840181229821049057903349852036571893045695023993843329823981115015918116553887490607687029162866305065462491486983575017240285797408535213027211396566416427814559302970464491310815353261136303154998023356126681392136952387950974276352561718195599591809582075400078282971236046076514361005308472956156659637633209103229723484478088230571793566826026504147350910364939997506393914679323729903920809432571680779218808817834011219895460141669033317320517810061058299406686354843796890422381033769949867922949209885485173613593919334872190218318191903810199214854161086097231579497502082190809609205635627156471035812033535263640940250605751479181827897539161039181398356786730528128421377575335209428354546164636834466550744753837778946693744720526109151088482342667379413714799673014805148739419998489078290231183704719363907807229401163662433531784119109241254307049215772005799692518240974544846331342359784662766574410341556782982964106082953425786324322079995021672498146568079604344198369982934753729286510643791704520866031813775412548655354839136533486982584005235420602233354057907534156552252238466475281865685147213486160111781205810016983626997022746290992856604091503426819715958339928292561693100140001188459674522102448295725568463711486318692942179454251775962737363220587979401209539729202109606446626242543809817497578859576305953755137566639479406301777553757133582138215163138747780862068786720271639145247190292451563912593090268276768652246236955483229065134786789150266401697662205510507169002200254950424934327610983686952563872444496326034408803915298537013252587145367138937864921796885000641193079596472974009600827302540194028388589233060545043150984395696874672160587653486684158652462661815423724954996389284611961390979004421945530221318567292943787136680459966583933211705054871935159973671514198110816244961278267990016274301506746786357589954350006651062596753855353986822531975720937872833568203598330366535382116575503606334537758159082578101624001104949120889145877247224743064762012226519047239355449035381773486206539627361685288905832656702525245046132595236939326757790944839943845977597785660905488518148201390613718478393547352173106238483700617412862802293939350050722782644734995972216711696302740708217931320777015949122702210096948759909315556604974941131604199955531070776465070388183270273387569969352465801260151241737822885810205477035453232300609341530063752721633475019281658585274559438172104979515245907521183728471445821283228786782264464775792333410435496389999360979340802165557151047736602187146454518857747406956480806924918986300202086721804013972237628907477727889000929417470909401767934567930413451483793811350239896744117993009402240278869774913373893276451652615562184882166843414956634157204356526010705735126093463926139194792314257694785867099313271189477628305494080384080329321736976302610239727267059239581477297189790297635071010474634825439810851200731339972056208054536932694059330202143092367886813998433645913110625021009777570282789812194227524202873242273002009813838216742386630957381433783709450532751796874991115093914571047274571438404659620178814488533418382414115006151403019231378928041504465219591970844060108327863869443268907328831010683841584739578805967099364789312225172182590825251124150900307401483091832378294844211920225439608184066644433920343552874097010193163924078838859884094525284391892604935778520910604970896338156643688672139035688740773419886132275814158777367286495013833135100510732799600936360116588934066523943918134733716607900753160216688642287065170102269935513773607221440934802102944111058160384609455673716279769686625559254495220364770078353106692085007564741114036167307944820704051944257910405179069970936718888206576556085291760094258954931812629174654907987727315734624095149963473429039059590435426711039670244813165336890262705798557157034455322298003612944615637903479818488479973026999479818470057250759093983592456387202248991754485264335396930505151986290782336926933352184738962093640713592439565994991149827096258548700424951606198158399853748310196264807409886386452873933993944996946265226253890563332672502470261968723920592227538839535991650979756100101929663897173851764451169928804147368638020739400191898700681708620334878563754314613951466698584806550494871968058248824459228337040172522004293568929885506743467320653555347564882301054499426195798952972110183470308469788983349859884982988659273274670587895657358582811058986461470671929771277344403523366677450425186274409639722186684659283842156096046770730163702107181270932241576654241634745670599424908150624956321377269858523231242997199085562827568514869019643023234973838080389535348511889272733922636555908009593491051360073731961485312724173495046321102392506417513167131218265574811151274128063098933516727331345347952053044694928171699311555789528436631514420125179006829966855200477540610325325213704084263232923524898584942429068280939354900991721800507239085803629472382479312505311178645324087576082503975635281792991893461259379686728118605322045352488350585881142096212067462705525320352973077019773741787771383477701546547630459161343688194660409049803432742115700670665319919820616599955814687662374202031424838650434916305962799562438782868697049756217411956770296035465294645003353265893660686569107968595589547235836628272127438029441430327065673261339722812697326954710214518600462964953657305864289376193334733485252028112697195216245146281366421450762289597872099074396221534073469400588253796545727850254403107394678528532651353174833901943983597708005743773542690459649331183346091164247055592524400833515518961792663677697405355362672638004284591209897126487217916395331215202823068984607788595173101419129975189696819096883669495035524300251449033289031448510735959076919019997518261107728670830726654739114207892598335555207365382443593588438096381858413663418108408530481531388536360349093899962261903680074340842960315362288722611268981700360446414276738957273897279045010832148013030575588791697488509523244562541215744805120893144551303252695904842931960889702897549648164765922882691835081799259204148257289314895808835863949328749730347054939844269275292034030870868481849382185107189917721325179410908463739752921211638861568577585681184311560270812229250173814880831816743211948878393115158211399879293968790268530246553282067108264768774263594437085213892520754093250355562467290893288796855785625109989377238742408558904102211171725164426440158176786054960883183756985566631301389570894033644896560558089407420389624974277995696467319073295025402278936661408584482943524695649382764285185808217561174312912114316597457330126973911404084141164033584724768212188673331009984336382139599692506801592773064443957992508406209435563796839459265129781500457932667255838935927476248328249927737846449067755566907163775425760115616894678554348556600036974223414345386872660455683969692159428083416644815967079080316913652432517060566431550536344893877282433384787525172963445431884192029521516023246827187733745310985404941859312271268072600529966526086234444931478472093037160966152669180296215340044548695081387993399562739715914170382521478458040011964709843993225406271981944655025981291672136753496114665174281157395001158576711117503647241642759449147999529784057223487902849011812591962452359920974180793994870937315933052572202831244943623727762416228697797748783028210245954288232339176427877486825587082426911744180766136098442426636073455246870215385950380246040561066777643657374674689221395865203913695459814876050280891270019062105465563444258080013426117704285040518904055697153750317758111634512451673413079968328479534150325800508228323925825361626145599462969819696310091873205993684522684551975458136715835518230976932948410857320033969013804279589838177398993860678873138617027934101061478460633380334942976584626974436916290197341605913533945418461635511497956551041990368359332876789384738062394939864669077690470233991149124235831085947858408221389623344478343723316159875421257877920044888890450538108396150852379362683122729409329695202934215209660207979211972016862129729663234485898395238813833680857583572480184494338772540959075855856534232566638161500450423448641077534773806207917734771597635004639914521234929649898354542033763371759599245406260007008947581998480913956044924251901548198602745526732301364256182511401910095329206212693989866821072391446596365847600433313617112640334847061185652482265699371204247324224897451398912170443640929185872223145177983827913718356041854043245830090050491696319666868396045115010164206362415492916856757729767880758013764123957432019507733250597752035989145686301127248753446451659081570999678297972234971567882972992341952373020031063740557728893833065333675108086761814321529950526077669225690770130953578953195455759642233328880136717015335578838424995365041797251628786620796554146911352277424058221416868257155344691361109378423650284306772786113863478283026798886446210854918884990551051034563085593319732530877030788704245121641775298176259160765346193878286197031130279625746836140904916301174053928750173845180775543786932205385414347233278297378383818772054361816568396154157829723945396735211109653589283051536330157134515066002103096814534979414114519086138768695918928427768064292330959217638050690261740696843641386772189870251890350621606412396204014348502850612427433742090816341449313751110124321267355689445263907261914433238313978589225616313198426008216767457831290668647146298170251117090100641079820748800646094301385608280658547188929207597288993888848883982303314150846945923339175041027007947274912448782045882199168734625889049836497409673403440289394285729193681072352048541796457597864261343627833789384664908444844323287898837922861366131413982090644896909524529052981254765347227147766951989468850625835245459356228720351016280492436299552330609297894026125727006852016827430392443401008110151254430134180013516224954402885478042842590908034568289148014646919615517060912968625227918035662752127444345728534623923222289859777526544936029585226824142412881283651075738925302938648062616117483021187646836446379631163774703681381252943168787250103743414257086306234364424814484335037736718931382168486390228479681078146402480358206835763353466453416661965372283300682886960891873088016072557356992392450789201463746137147057281592598714682804692312319407968692478452372223545783536175856273059970966374773145289883787036085510785589514916020337049963703471941717811677102259249118058841350088804312480552080559153661172728761749788805572373850258896239343908103676130312531710574725958033518138719572099886590685959137762763504487783728346217597956839811769748667819469457498122632327600815997078951581295570194416968066386168564798579002411355060636717257505908820973500981315927625134755651972658057251838207904960021173067021780428820776693747444716408587857241333039785874955311209467273244275552865268804866315831515199728309683818510002797599252360788409305025605270904499111058514004228053194293503810968802949333660317184157832782270849240180824536811242228479153243389029108797523567616687076660478870634313915798931403719166087782628996420638394973561697747686630316998575802360688663602611772802986953360467571638306492890892452140637996032829089693502707735298881873533169294060672293719802117055867643034311283111071462229944690933829131982255283936419667010683098226382488544688395400861838324996264507697683736473758886897020985031419843172257575883584537978399977102336441607690477183840221196003204623902094280819656290674790831792316352274693312010926192709360099518950420109349382516436342066732080349862291597085515720773185583779862888506454921788590021653146810494036568896300933247359225424949376031532679995072051788179260417873385649558120009552302736873989843333025488337649094038492214946182951664060807300443265342575676049342410208329555656052091851233881910224056663061041479458258200594980157577777460943909328000929139654759640070020422085583308416681970461590044395878408103067499107876003915993604329492633763925451749776404254210852620037406145994574028895363181810414386289746182649047059098043568409785471330051135970110809723667565512423325966347460977879891665548591214890261092388226095679494419828980981867919098839628887535798356875498147677954820572603353371043597717684042779826664657606296337661664031751686894616234556221731977427848206313773547643538393187013705991024664623732182421571857689920912833064157088681960381248129558975187798910192398050969040424359801932765004652288421035470945154345761222922556030261978457775422933206522953268924493399700608525027967425761397973709785239805072391907196745005572326697397860044257042590509428325718052649888526066525322288553602515400852984520072274861113901000821710380970584847455412465528523803955595712527884397127057247893322854116596955849748605931417822470848359297370790767439602051684586020530955867770589404372476608192129873751194622677135311576641453528258151609383762732488326604393808998080053320336473032986775623007672813421783126263770860969548288508495067792846989292167620058384037888028466809138529804860030287653186472992836455730717377508497782794973260508584172047020381584734488628126700681258198769704707359996438420809871615717979451481710165173784041636216359686470357956459193827504991429849008589536141208051758528940007370483247950910626373713534244077279747922505174948435630017542974399311112527465771037581763694118847743793601424448971240531450098134425056748350698850923373173644627089385062957082242310031350134231567854787362883779656749880708061971233197731246701232875291066502685225120627826783879224777815971884072321389891711411924218392285950157125062252331467072086913405159133719874738435230305230746292147214731441482817725497170579644821160743300755320662912722127538196531790698168346779233918258449780888341541391392675161455274685402033764709546798808309322615874971123786439721288464365940874317092576259344672637667499258233448632970475085199182357367933487454664589987400474146921191497022389284795390525650808800262112849672576085885132617762412670805815572811144383818104764355895687670161928842804396579324227398486416727239263607676239058812564310863087501741910007808998199730920154115623586230452576570012849944464332051613794430018751541822924864244124192723516127283742945615500902784038145278264993240780491548876222579909145448880416999652836740032561824881283133095080004866134648790780602636969278008446051509489748489604688306920697254800874888081947916863525006929836866080201389377816806213381592072261306427521491249348468531566741788087732714508716391341851350061241306621516370759416019607442941950543745956468541262855401305573037849169714830309862094871663386093285363047316847311370651882118906061224866418199157623821574753970631553821410860366853496970458066491695816595178875407424437949861383649803095013614699606439676186974476766937561758375782751999625748620070040818290834235740375858281777257717506319317343224754772415899966615819480916399883450655060205587620260980168380909909235587176605502622188767849112260361102158437030749627898386933600034723261957689745156796181351925141830548792139096391175535033518423383474448509220446525880604701425383074316572783626567042958192116439106054278625754763649020170234919214557826064445434409916085833095751185746019405650025308277591072686870763644232049410488384876466673796362574689926293509887339742406165330638106671704570333772987617082337298034060935429669629757942194971082177810717566960799394500830026467690599909232510544189727834630083932302330893535035775387590796048774097156609659455733252742889320762152873019371691489170559623038084519819944841386392957119275043978543434522498725540800506055629795961700254872134043814044873034732595496126693983708306637223642787321734613074646171529960056612534340405477244271082331997371277692404710752667001409498893517750131574332768446734731439223082948157216162152346580653151042010225454721753692715593209952909441547894382163819485703270839144105268239131172746457198099377137545991641370779141869721654877204050124580806010209028955919703588238610947592134118845748406550294922227585262376916335778967333065937572243884574614754660075286920326366269476597687044597268527168958493496123902425586350442281043739550203460677046045509223429483607500924249271942683996471541968931586583833827997595658977513580664532235149871218658084332231965966252346880133817496078525618340044878874616280900007894505038719862787810410531673844042429135502954419186797963318928192227004765877492184320831925668455889869021641313227867045085654443283888439431411290429601552906658499563367582633547118115767135449169450212296360037251376672044748826828901565383853147343836431660455273830883648684601026755149362163381721085445671549784399599704465715738367927516388672025043400225520241895831068194492017428271318142424299467599580571433968316267620999845937511340005744038379098582315482893337468958680400926092779333241766315283533162353532042259764595216174813335403340052326179910064188498941464990680639305113851874359372897774016956422098302199680665778146894510501123984810811536150102690863805314544239845900144793549986547537343711854641716340909342680037166633751132269149934711021417446202459648148238155691003010589197617399787134695018893455501075470535279876060192014535714282001840065130233261460646135462180091424807208277475210862702785510787031692167408659593781051151974614412618474139648396615888029698454685493215652645605708155472012145064891739996690823134974812189004192481019557098043039342282059232973326972829326190650962018306238672788325994564410029944460724999531506107187375799666458986855803474363268979210235601591774073578224228560828780832393851749376259462670089900691302655746381289577985679154520112356019341655267588591473481293376738903132208700593079912806793188469036277831897077391240705177067168075776067651920503821912964411369192878153430868622407078948940353932006250380812848184131268936089676715335953235249499666101161685359922650430483118757604853572995713277571962287855625444164276447790428592897578367692733561187852016635666461923913814407613083753550648306140113749650074561486909356591053192763965547991612770356552953721513217900526004064535876298239351577876895245523674548356703406423871274798597260789414952734911938569139449303532170689795413419323782618648288742095327726550563589511179230761284120826284563146398803455899190410280833903591321457974965454129605135831295068721828229895063688385429797464635203553915345487836185362122482620909428326756235639849920454332333153213925373912850074224736590053082989616262549361632184941041184180487468016579328131914608344910721706192784815846626064849106215846128266243456271393258200206426201511467501420732466696651692576314533426848393367288967870672418013936513273086226970924618739503591289785544363979627023118861945001145590585128501057558584460673859781067051566327206265632237967094269454116680093627101636067120424923577584352559659408130917348574481831775043377971579347058693697846888918494690674309076647728285169891348809233277035887187498583869970507495703656264931408048515792222382782487577709284292144857893121995767783940989334507343325291253022633122722748286173117013699326553213749643080618870580411697853723278402467603920786206886503988901644814088473493240635070541643008936942889907306754621683343479494240865671189265512405545677083915525285207435886684720496444534662234056115629118526596092606537763712799777835500150788946678876696571278704673530100851837361890751080044106083532210337992325978793828055338212627671776647874346243744834419436027176636260980949109380672171100274909416008064095614275823221587746451403204360512355914721849307793552789322255000766482325366002712225315127646847544952342136709257925037987554381051735487264699532987678936542748278997011742749924087873630798376570632940488104832035404742851420283606331965221171065609879202822924658993821817457284464127437040656524030703819865714145866758595615514138264296951895800653052018831885685611531821643239107427424131473942943518287719401414269045111861906789812099909239174110840905275131909657883346912475330572617485902155296327038973012598168953315473459958696030966315520289006356238257843483348850905528276984498472378380146177199407751468300547960481091756987402502355847509180771084118923990675306745481864119168811521578487337398338920517626358231481465198475698771210797614393144041641148295452789002338968137637981270604377774449652038669441495273972130819067844317427915904307112733674691209772873887925467982377791688735480343154423568502137583628433125459117818341986648563383702706384462365910597141165377575733448621353133535918334200048494035138700813694374620658620831854931959052828521905808008546504846172512492650654873135243203602820773391484565764864625823116496836641742218866259698781607675590441208281900195496896479608609375045278312134728405636729709782361830740732874520835383186490115939508050512915670665825943978773178828286299783020721951167262479623505203424121534492821836753518945063231116181311540514793688336036186689602592140418160427186564668252806471334781289537505585051341266744776251753508657193362408143016092947284899513254418033610279537560410993353156577812235113425875765185348897001953290374151687727756647207648584789323322773238432882891057068250040201664416532577111864776735165565234774436837477124583123460214052738066488688018438248031705237352236169658211266839878129887172490244955872460246449635214138562346573700389846086024694335553030384861945312785530435298283157284441295452891810977640515401014734757089866134621684548598292559242102565633402222273191392731100557175859289488998738240280802660387192208905141723388971071504208565600375811284539467535054894317372035838964262030356486257851469070830202340332097339808753784658875081612960948895989399748841234570032002823538970608831332903517559787686135672071202552799592389973254129465628184679973636559256996139388760882919673386464058796024814256848978674831250580481465980314052966668194182584967332079165849666474349823580949109787916443726056421325020165991814334100368610950068424231305541954453746889302870897333496296924741440912584129280514887780965802325820005577201543692715018216514819957564862513637021726102540604245806914400692086731259798198353469520887213211113704987245940924452656804466761703668568648720056197348186407795574636740056692712110639039470603025442281292229431123491794535661394830015873744293691811067624581493373878276366346412029140393090234975786145959195754874580041504630734002882679900814647350177570456590225691167783629212718016933527093960673610448701581137248570605295061128978501962617428962095712503463243014318790540462718224777127230744886264935778798661335002120603315685600630813932260862608581890653837370077443070720688432013914045053844330394869170547447522037209740517021871685315308334620943802814620100811270389045525973527237898312818401405640077389128871504126765073216036413464772305405853641568650056289529196100690391760313194730732945557902035409642157948344053903814079087522373645575396149450955895840761054382169741974609670732258091778042063686627891519295037667348342289475319416048529819371290810927948448339658809479882880207111827781534263505740134117101896428087848267336944496586333274572135652959880751103508934249463514313992586701171812969390378490980464359623512345025691408922614177157969040401842256850461658349117555726989653787506656213973352547709569620698856151694023804005591876786171052350306835298442155159661988662545404275334473305100335512772900759412817681462962988234584025011422440557417187021167488433263056286319322171717253682234773433567990993258818132159253212160561687029163066659276146487238831426674551325528691994898703090685291294956213177489956151256971688600313132297624550101291997734141335680492566858327649943936846915511577513404989324556003384065686334298126065107383417791645527104252027610358002107405699987141807620014863131357556279861153592212524615949907380901813420546735508614885939716455019219618242813047127259613556240461174469710587026855713860852117098235322765015819132483344485619663129803154888858532409009438887716860570309573562057554992844079925679508926125054563906047062220300055420105548616519865426314443157016777986985140384095959376245539227859237743249856378349481415892685108118755370300806482138265196790732487065224287400233561960341187327669317712370422553768775059228747118587353287267122792134407775794576162570827608378629312978162663546210398397029452573877481403986798420623850555965118816643122362773282530779436534301315695084685884599670044706210478756312177793004386827195819543268413936214761761402935205053016362792265986462296339102674610261682006438020924790439321048444652542711202618813726646335610852863196166240032602586979386105858096995496034006013725372999245543365930113685280406383719521006938140917081030252804214760402082630446432604892545265001327004972407493897298451083444792640289618886343109144518559891560457922373694849631278529051231675434115304067523862100980623531193622782495825641954564028055366163919017333476489333304617193275846441774240865477506095713565008040355451648582373927254789732275744029070018384223824957817426343084303788098637155144043228569124450481685002707605602910048918904410320903735378770068492829046154531170296333560476191235415917093796349912455133107025186645848546777279491736115838752535633095956532498577435485862105282434801227304477183067151577999328599753029634026626326809639225759339098106968300035122736686839435775914894373413288804606067491594862892318784872478741397596154146156745818296903707448528846237861330179440485728986888563573302837036822063840141254629072454383682652456927466841267264448364141526214321390802346324051572328986795414936537149673304109648810781309305447999172715339834563514104621089879388891768829977211652903525832820220965113334175191628102143938839768445325328846326045273116072667053850684969367233911067145081692280992988175291035829278724001091900167312813485880620077960361504895577396748047160350467165135072695782095120256362006141631340500707373893121219983861712177257555317992756426959475666353472498381710139206685287914709223698349022999425506352481703694184244639990323982058457834002645083641723048997252017528454938756911754510701840292238210126749724500944174091277694523869456555111158472156924965802411811928959152878097475769794246813567067047832832252914018951512564990592825801069150191398506894637425952401859357170148576337742609393697218099448294841393469839599175357675025565943557198382233125525194593968189979962652755125169557978895335733241535846397591914116868307171977157008939737454095563361529961433177975121548007361407083185934897963503294780884945181612013864062202021140119786112034115955437574251820251401250618602001280905808213235975121379498687649264193180268189492766497821329736856120834730801131423425874650706727303131454734250334678310089497861356427486285808504098532715027525064753674743945502028811025622273981199208469294965355032288013567276990035158867660413918746859321836176171505438353700757186580205068052678373004574638111058251971237863922647225841096092768779064990121084219588282564456502122808974930509954855827851584124999544520999122054769688262644691958066736499242134819778175553728474162969056166871316345143394504069958474897776020374105927446670373821140845501704517686832628139758574975743214601959906218463153312013665951542402672321169966442426829270913192562527775086406181426087104247509364700127891776890923387448091415390913659146408312735323962071224417787964279554877061387359586202371405472103440883715876167436244047450914769295242387385283381532165287964687333727177134464039183854028410601021317136873750433529353028000138974628440580712555287898991747477530877929181570304800936018829463151206598404161864016659029815610666132382324270871775841814241688028475739385282809452719127920314129036686287934250636921345612576781487542986170756689303427841479280046535329264139554465435136250023386605359803676798417757027738609896377617190639479751403481806015590401442191883141885620711196058192421835504491726670500516683835562051061106690830963362014162707249054954527008512665286428837999826805811030309791737854740277831053041492127482083624039265747899483480318684791125683132326551295182171462479785231666097090045463011004934543069534586166881923541333369215932989359340590388124941662534005905192087562679795507329797723795327576708616215691085214821266261195122248889413509650567583888301325744201628769804762376512834680285176176012783691344199212941180379809589718484926523591952304809322184598145139669264093806978896750652630035312000359386787100661511904530734679550551176949506062437374073593096392584300456156509974328253229708899216037045821914418483462591618609741986978340641639670952118078402982761280219730860669215001020817988550736938824929668302364420910968052257101479299917372358360851412868768756188119354981159744216554544248423031753624516799172752709018743392645288723241572636351199964876041627021580509421595782692075009420237459031870853676855215100418333910456002799915629272515607389543277017732956350489526875183223231329687016547043715212446467470782137473617856859426930968952788776283420853291054596982105027853141278686311885459602778124145732002395228684073075762612632261435851229799119003774361848567286701828492959515249500981087321296344314745969744121023268805000658563887237704928318489688499500766599649890352395338950739016240740819843958096160582793607860090462361304071490062591340132483220723043094319866064103281659173523477496306510614659154209138937934354237690812260761412427296719341784184048990152895109774841241329648089231792433036872132049737167391235564521225697575511083303855362536746018987622413995209655635195569557518831981624212978298425366867186178444504043452427838414351940966215781850208726243605847797963721173089938309677251580249590374590312004479296414897446110231902780293641141997187877186253763347890903645000675266574638315923861349099279458971973687009925816548608148804111126328638898190237204885512776938953896591923720895179140747410829473766611500307898985690151197862661738951156578819611281937979506044651170508698574862993437334494735636734989498768756085905937708893510548425770067919978297176819586113904631943576836441220524816844462122116238945995253138978805450754120219295975289873679105958608873662951265314343440745175297134585079603303239302825474978373437286274518631423122727051723847154240156362613371401321101611398324662472266611663229026466486257027139882368284282103303873571185614108177915979955334799757333774535061028164486811876198936751828796275669868830381970936789993668549418756768678922339531656162659850905199407637646194924075918386390428504454093107052131216120382194278889096808004141205979478288077175420161540621390775415522278744347682940674920572355950103621451220415719965365308708650434691932990882724209911565543006847852202028404129034049228188283464314007007087235002938572593092083596082608843379360498104301963285018843384969162906963405695798028448066115564370253364855738512553267104977832384021396428920754697383110049151457433292066159829173404637597446163715954559744604476735553476715498927860376448133329583947632414923855777903630419196078139249222134242672145722858310314926637312533790886707814885115344583573539906324079249419613703604957652420451103859705638508389428446586581879651238541851614274896715990726851872624148322123273647872508066756712106817729495019658394451872030134219509062238394884294880333187613724507521159882361898695995445744489277334097912134824770488592062448411131795549485646499351995785674369341500727146627752890991888681887833089315372468602938305748241529285935955656017252700415492007738557548509702186330226753273940554592738971374207602570165657290763660999522115136470341534424722413837161220550455111873807536258167260422548367031716872176221187419473286326700012786586996831252294544776573494324116888862109918110006836093798751122139087136256661147852424137236600081668228478374436814687896999579931620065568031991714113724407429946876793828500810851105752935725883057171619084655803211714340867002308663366253135606505204016288428754694033550898599765552155726943384055731088237124993583838457545192861169065662538361273981690076329220671942412602526952868000790788989458962913132140144525961186073936654429380257118311480224348449668855537697577421551337176351156651890966429458867964015360275278255077847103323319937248879618626100896758351122249509557479992928039379748571335259208382963000884655520114532582775937986978660446323813637187410409907233267398603723193593764264167035869564473752702881175725375593242738003277158637589373355626615738094483830644862692210851100950472647918684147905225675931182029905862157644385708993264496965864251078333278571822820801251674083360998046805996643273247723786536966202786878312469328416942958426682018732495379871937326692703003178425483342242771311929442472054809820890386612742784953275028721698535610542635393413315148002756027193521876464155355097510811960468771796092151339273075311378748151453883080551824608755909046514794273061231440428766735296926095442947654488438276011077763426584195503069415914870358642658215797637764669448639078985735277912387824058150984160911673560353025052733424515597418162019144512200686934286734991371049987726737513008892882024852740567940724294374164071857917431645202496366027636849662411278223598064403540525988472458202619110011856152405970059207842818429350459958735404015998785619997728120096672959166449311163487283461535033512226635911700381457204343712601706952811761166661469148965031769649976210858375786001725007184787760325976951367413997348511127824613979122929328504422963552954537135903443836002992031048613757920830678844385131169742759865064615606582895161433793043271760571867814971665082270312358455418307883746539071248383827374942494715684034166302993089066102084930488757996498469554149539338129749111888236517688920405147916174144800786844932735754472510190870137014294240891488262518933453079621680640327175493117892202916896711060955858049912911137494511437882998619608836042262575181636811675992676220230928475625272702773151382685370486127418690077414850693597442773688793602066840774079841680621846966744256952753998188022639777583712843893697181078347236396918933129716154471944940137211456667247942700486887434334324418265171203139549705751119396207392984487057896522304395955026102101179725388055595394991850033496359968698843940335648834108739771898352344863141288032249470313402806317431771115312092218814221038893801238101394389770027478173860984291877850571168778826004984135271394952316316417010913479031063470398623574447677286575332539018291871101084858468685341099297105105574433610172486675817691011294357928794826558083512531694887830687356474769156789850681417367680475058558138607536158457270450398268114265152183895119348841080780762520067469810716079480605409949056669640429935834374122872891120608766220515720328412907535065931371316211592892390800124897087620452443554326631039286904857469125533648052451715209481664040019401601605147258311371165178781273668624803312684544955409431006163277283873102098451191021974618474623700095535830374158578332115078114395818626015571265986464996079056566084417645363210416107173969431504589090144233940040285393730566127169925178951247291400231715517591341127928383807010239407062836442652324272494100348184208663746854804369535927113239258176846219713099056649356533129407426415075069222016750702743481103940579154910979803748085059499859042451966377591895194051801188169271774485463597224740232757451991054391906277420011154666798829845084136714380950657561843470514084860332462402852873466588539073914563773035293150971097601429532795025115462631242778203576485037085009206668690720890239601279338223329709509452091715853986778511905068947834623751187998175547105274919956995364593924643854273067764090771957004493438030742498280476689654020721027015460311383959591819732378681953873163453801390769968112691674808727000991515475976992060495844461701533028297428582838190999906420703781675262806854465572822364132143520440892334234179893666552257667967366908556573463939741494317920612450470132861274723101672334665707962332447654632929695136304276448731962236137417382922135181462454492382754095759653213407068311240903776017660931953751432933341267017172765693994257686718513893084810452185510649109255778790243738782084224730391324113134596521775888637411226164625769113238234413664802546392798274714222398240754857136212771259817608252456611428179318529810218744678022825322130023615965290423537074065120551475519354549163692287494523562306502079313336988152207963463166876245844226922320190208846655430075894818868135087322516332510922593941866924138400497051433976165875871281785661540638885415847026031787109265923585622864858560854090063396183267600677255875069607407770181822926558717090470696864294586423989138087654054155935390590535451492855023627054267608987846452508474717321971748940605453736563359690042099701435730677403555568244082687754573529017669922041921546805995888141998210697728162898058608575591920589047529083352807899486444783282653498065823493900661690956081318073090557169519369691933882763209526560997910310219533988599355283934231801589095312977224554316393499687701097171524633629575560844557344059879092066319552995563882535196153681293581988769977041781405589724068353611088563719916069425584675826027046206054310526371853424967936581308502547414458813754284498982891396024686709176375171021314015006624122278298999518939009775908667564529732884168416669608906725171127537582277074961796345886245671149227139997499292676859330020865079489543793725460309164429068600280396358916875324864836755098399115010940970213156790118825322151183097956221798575127862587379815725487688748149659444244049152652605995772183415905977595862871711432353668643555199767649582607953892435936535496169126208012335168520325409928829375716108111443544260729359654923970399632611230272916444909344161881161657105825372653529833500056134091732152701470099634994709075083161637724080703564806595248601217549284994527169480051157282753482316699502846496691110003858993505653406017221340605431541939646355281431798510162724469042671387216499748579208740396239830761327571704296391781145094606982586027086206607872273283268628720051485453882939369643908506250625777251694660249878670538948608108352933341079468502686961289523712302093195094969977065034969885066378731099455643726884701956453860564863715540319878019293847376802315452714867027243884449895024988510200105005182239522728006537265631441895242785070189250930663502399306172606408174219327474247400371446796104403325708896976122821755695662457685781283537884814043740066783355609841793991468459545384429767349199158047030839074823267210968066482989434579843321661717349547004403038353429688052509232738100579493034925806094976438371616910255776623346290433524242696463745494254243731023561890854999256544005968786105999615629673339541717657856778043354903554301159128129842243611629145394716480022510886835642098042727220310522838194515145546198801827089352782699287463195174157567524140592539938290454934137095498171725575781749426482950291494811222006787201497743025849281891670133364604036522767156956586497923717173370243761911791370784500700791822400852710146695172915082748927233916468633554428469377895919786716159968823931516546222929606822343302509513362174421099348881445531973571422076983990554396153166320543447157395542455928539882938441369443408355905602704480077382884299312767239605359742509611586875404227729121878011894160150049797724077607543598498256884896167034932172641208143711961307368652851277990894354492920271955451329636772374607423969773944597313956693295452738547586480869920198459294165346548508977836662146121051487156365378533154873722401999875150505847693079060117075993860643800433563511617674827575866596127774631255345101426072785119543335944990531175495797681094805870311184043896576839006851454466368202379485523625335712897447545916107017429968465927491359134704163603016255423913036443993488070089867003183363469717436739720694470260457284395253598865865421969335395728359802331953782530738819792813772921282893599137092864621920202282596457804613179243314911968663775131275067703342611178040190678730566593277295386434398207570050642951167505219366217761376049033090293034350830568049682663616796246564548317006499500591003876479402450832642523581642360682353565367636520612429258521534832938508260921830364085742231968342369824355647437463119037573989725180004810607538045939186166723325695298878103308924642842415732680839903352943434880957931729575645796953675375621650585416524866032446305001975629532823372477824432856077540717456149567876054861397522319877846593661254687050538596575233379164051766370609157098191649730797925355825895405003067537595789197115754410545916042494850056809800741773450700850848959101923600009293563531819284135946451722126282758452750515376160585168192731745011582121603086495396147750029325874919932283383060361220521527468126847935633443283152511914733780348972533080307716857286652182583960950136036084025848442567495938658019778582560508784394164967677342540551615554471316713581234515097755275044344893574480973150146950308751094774979124511266618537196440955757487722786953346468846143041250615523998327643571263084582990729291920410773100570577427288460129923786777004084116845463237260674563901088608522949856664708999156921285339720542012649667498742359854396032254710001749235198090485999571430338099014459220791229985913034241892849839403781644654886450691360616087964633919854097307040891440079583519403783193607840974411116384225822873351564315905799578784863346203432509564543592213401860329208825435341893568568480401572343158401071633561724511101053757924247615763641195485410329963590275562357599017939462187308936510516441557277659577582936681516341131002457143564194607600375874112620456810507916580707149872797411794669551478956607711219301876392864998555053566262734974150007934423827891529104777335333639506541633218911719389211681387936092545125396185781917226242980063591177216144098217987870795260141396201777478741634769129970803914905660656093206437230815136644570866427729933850962143923728404200897655777703920567965161930880067366639901146788808220442136343746965825656212016780991210749852639981526729644157271512217480862359820190454987056866561674478643356929351854130520012688979956924795201017338290078927651248914108782094331875293696720718976148738074198981011612782310406611567381876601854982635372217269254554479265616248708481156454258054658304498626385740340568762464623171792609247908897061461888409299243086614355773004226927732148390833848797521436959380018027998896560453611967670583381005077842735386406109021411731851343442520140768137556711992549158580235078695921386589938903918204337629906383077749059635429683708016457922190507957846105799436796183346813695694528054579671017638616181995400722156190782114453136935805527027793788064915802705809325784649171534637238742888888999499320568089630296115438015823851949869425423225592287744387122425351433381156816462782876243755107376044129421721194899445609910726481496675651188479973723782774243700757510803511762378465265544775673846082359098912468235489318020758508490161682201409951560678512417444635295538489404973132181669038215497361904441106472185893292869571956402902703088844356758300542913252214935347362953235778224724788114455698768157632116002028903384418251205980174034941197164316061857408550311430160934861693920465734064429230961082854753818904064974261922434598336948434213293189194250147991722978933460184228267582909454955424969791260496459281099328217294682653545071922049737420458015547904127085819160997273759987655144367707603543935482114659945829858076246024447787910756214319565603077184329325907814877713407139267855920089584920613049160498902598160002480151280669682733997888594408419418670792703200440281575961606614252705430177036186336376866582161427855231555683808298505892888215523642281197468712586192610862536887971269287864976064349483147048465875836797197344097960728926144436680846687093700163357873072088713064894740789545687790668567554046324018117367800327585969685149530374622405821637821298663780409478340134303598105787523632399733171119662665237156461965442720559715263916972027487168694239931248440445146746696128451801630312875969969125328200469854730268174758991243305220554185192432777183567872154542516032084780345422163419848365186905756665002222803736244254828743625922359562842613565821740213539875211946374911915753410433956224814211682020479090581905672856481907477875382016092164935955883549105620315738755715496752715091768738846161509211049304102275342300368845741054377619738533342378712648027731037583194641189383032810489868844138774557808441180202476637402738613699036517729469145941748004507317166167673630571204610277179630016255947979554099456147568796404098558241402883654965124036001898086801493409414543012966973584776993272953188294432349720149209340989743873303690077872059369071565847074839942136920355520395792739884465618011357425070265870678022141578889400398333320448534837180283205061391454065161176565325041909520082606208440002956768923177307658609032525385792269984094606724447308418796487666800514948468453717591227929499475386798179664767431380667398158391258800303469104105594837244144691873175242653390062699273118561845683843606582088469702004952705992482746165126607905030561230472133429968960546948834501542190010969099651048456674022729710469583203337520501278089454156359505402227608615037447331250467244876196320489107616739080316665102073585639310104921298725154738412611151731689463025022543899248527834019132545414657860875635565151715243453827629098107821346997093549314486053708254567910012508407747375286475714168864280143344651236082864088764506349236103177318900414963289533378300113598216814614619870479991347729967487228744922503579040086094939614101015773987481900999208595928099672234274352074231785365888222180008724648527146803978040526748196950762829160373777490965473724305714366244817771411273031906560525034298024186225041620068913119740749897131331288926264168835745646415267902009342846512058398831865271032063541176075622946867178806125635354847287337759126373329513083968333829113849866132612175213323012579234433810028632829915585276309601951493729322319958112823414850181682808453502877126586742318825163247457805418812218360245736146723760902135671539132453709336896283034744443452524747155163065854472801535380984891699162620299050413761256297646275327063946418553476275135993308689781000287593742048243112517979455822228394668008252243436561294578814749322288777494855363925012606916403246319506162711975464714043846804682098409199398800501441168829153751232011503787499718241967470026474519662364945182025763133927902816525949197902885124594430826048909383892996959608501477828634358801831037896067564586118066781315861904941405059527792731130567596562248213230161266411619623403070982591522759599400864888013552342345163470586776976155871216967663864216824229197785364942974313942983700631791145981083799022728079708132056989761364222017465671922514452199242032776005594865655609663286188518824999322443674215126015464760906332775401105789649002058944365902514213134469978584135666086089595615636932451648470107001006608864407061115915028103773460365675654615909647193004258973779006941285560915908951755543216634756361475309539518717033907648790431084380464176912722890070298753996146066086670174368231176231539761562822015435482609064486304844852201274911833432728354516139250130444474856648146830650743303285756949388320196752034007614389997274886547274659473752483432104745661754275774342076650127219426735494022684631998119705133796243460920043471274208762858443329557718516506307901528311354992323181325545621592446553334604431006414075364757774368259737324407547788238677782507545760403375495315924196766081670895044536436816106029464778286657695663463135417902605843274338008208693365043369165964603222024664613086260538473382625948666641046230337090127535050075368432020882432058557056592652965664859441765679383071014169438488593261119069714528494658804987357026705706878069670810574762532001490957903698027122800011173206432505523570490976188687175991090508200171981644055290284273945614591519251773307727620530469709915921810555935922116361746573416465232970619813241534967851414943188111031585171130345362000228921215196818251518842062280494169482232557104491054851438480926376742920374784233897547209240563967189051188970376276760317684146862193550481505627661432742293611058956583907932880110509735455944765546077170656135302540468667610384741625782674424180133473775429003883863392370973598058477649727300788453684738750927789923645816055133403603946993277171601865431017994020836547878804007852914999866131851566992296869053881595213998381981361702428872299097976302259301305711702696551204772630372051557653477580462692515250692915266950568217857537029815251846136477119597382780483246886876120246206568625866661471545635454029753122353906152623040092230982435197858063992749357556972677096706960181475853239090639119304840700097080021538465795058818301357715107541434970177157015784846491815340713640002993854171611001942683264066299036394169719424235265220806250727016732924875388044614499540193879103032371680090855917805576990434207776200699307580730780117116491698476396550465916541406755901026725123962585049852084289016172673301578619073388356818580627184607057365922721580175571935723112126670503324058174721532247284096572761349262445261148012768944016081199352515817624584859420985367722903526879358362178088767049465829080583456831681918708659167458283747712682026727475899015787185773634022588400229023055949119920577446162024460024991303520846097130883761490134246425859606773881992231865170833943556213757093971052588521519700760475071281315040585475849472284213964161525976024427503315857784543219338882794105707294334559645557956323858779796877884923917341107531716771723381068575537991688945185519443910031215780857930214712525400151158268802065663774484477305148553741807772113787804842012184773592069144154689127692213273678757279053584784371750648389038765757249265647266481243547253717295270027691621934733363744103233671997418753426265622035234020716722539364817555578639353695945137782192713884421761337801436089163286544040600917434758658994470063304346162699554636755932053718246111494618543352261729004537825712552770742218249111754952422663695746988697203529936417680782290236233877565389773923733428566842344716111112254821193963419100324890060845638903098315836175084729919361086753347708155314133748667017436382484164600638319287095699966521744036841786466492626674055762079901714009356579781267410348150481066215960125072222932376168432946878409895970763953350968267602768047692353329340290493531140731551382839959904964082541297099596502091467217256895258824694978476058311111270759423135884128511602194137362663359992843005090771533680533789589959073098240895754904747860744121328331541105427647649761941188738415798644882290799664545117481620586767979485714367159582463625969017067160684185360384009172843989010682002831745331236058167687711167598567928010574893013942674889647494843861988684267580914053804031643771054689434814892350824899143001954448813777215313123500363400120134386376708831952291187682053110495469998021888395822989750827264279688538274267333765454940968788660258304519220579382796034162794456791980736481741181418755853556412244197965901423782419652324720363925420346761940773924027867915113132174915786983681861006269978742274967453918838799134023745306190332139609195899468210713223289191564997796594410500480322849537778568166954937059425808463880987357377744288474557268591773295286624452920593016956173272122882551128179053316487774320045029814557920801955294431127472049338639823686063270961204895040521361740190527580870580699253561265309198567030171033131334951611669361895537066707842255665167653890436561753260164481078756803564989265346047942462149172354968810032268917864712881091933151447539110060178659998841338706477696319063055219469086338314798507273908813334781412503032590723421722847824163407039127358928516269948561839367025550637443897703578868816733149028289323339492369668135977182527824396410775557707722208018755943722841980845296312323800391434986018651607886348219834782661207013082631865090991071546612372083498132675840343242115768433904549650713243784417004697132705085881429026148304491936370108190270320902108452829241105288748530668493883364555967055619273836722789847164596551434162233787497924234089013013883769227013716544182274700205890822461435061872515006713270274749819297983155080112632112066462842153737384608689053393397657686500482620847443432915761307487422786059012906138194005925677178772074144464501522240613058149466687826393271017215951049051487289422295524118046245054919845994580412052677542895751037273935239729167988411911281638858356523870318345798155169870113398671933556727197459986371273124832897905557273331995158902865376254304382269876759718581768235734090620364085531549638310210955269180433591902278841014636722908333569635878337072878606249082764333923484872185260884957214705684898154340384001765947389845700326403732875952403967514440720418603391237246292412017066635500979292927391489667008554192055625030717220141928537125427818250015447636737907799080999958431836595401296463002097582267653973470763170549671251219774198767458952653819980360354684130647093976012607367008812341049826132655455819945896187328865970535015080577708215688333617464172684321381915284687927475471865370549295502683556061524976090171758133883226356308199962120778186448236545675760780500151224789487012659224808749218454057292008483952896755304868169777836471461584011733070655633279190443682936624706532555241331141212944160632921163326172561322250414518512680067356808602701165621546463455408978503904417080156035614149502846563064278910223498845515060973964537105792457104170057756989128571821598390432238173824816472681289142110247124486964622009900783697681180666342410135915354169921168183699861532375944810188179070305012231471644622522780363608916059105586722221987649889792875407995812984367879476710485276313081970937441747652161577494974918524355497581271679539054664145378908568069565352480507950228996231719154370702652346074980688345714779017601861269015042446873317784554156006116861269163728243309466794890904235692898026562011343694600584601068473476973720808435160632955778414755885401933512502018191092609900776152767840033375504417477663552732005198577606887710153037426988202795851775239188828498599192053859705092004701022682895432635343289744294960470666521379741694164208385246559010451910039319317257794924195116500513485332443548535445907795087536032743895163231772468306193323093049806164297346978346834788443070693824586978515136511118600251022110277978586569536601211996030829556040182344378453070969780048209262660267235289578390972135673639434601414256786867333537793786034038102659027049910844197507954583659536772014615656174020534895317110076789724282888917390631494573696518758037681899345693613009089747573532325892025447606764694847090326879799201052314649598215557817963214064937279038613438622591613950137184948696551554236645399261521080051984461907212128552824669901464641437286452408102651546770455893206771607692485151930995552719001890887676649744787766183613024682379333987277593235477686801131509993426857537961882457363377058084649698592222740195917247509885150366877428120142067149617450468514320466774238204568659110178900648904923894779994642455393988394393736267277885085496728224042941776540060226038465346366338737001447420991228421724989109151293068852775105533971012979869727088749454727766700871696893363112845911715956567168027056893280327934599896210188817332285271432222208294920118800183222855477361641143910282170037259376973779977011224801083997516628775448247936185647848395709294325283065033118429050267239020927570838204641962804438819461261866022917316407947183723437394634717843189199296464888321721814386803565380870491242629235538434757662127967375870930560638124354113128139126666580884040131364588666825532026152274004561847295269338414329283987096036262898311033885150267176825205536697337281842126300269651848082847323965956321055047904745045042977136413122780850095190474608851771815602432864571882438660835689408105045702560686433888955279442315804701219274156952346186191754311536653078664185283386665026866282927493203082378187737452662810447349769981985399074158348627282165226388235307023651917197572528118719674384784968660436447110240725523336685650050080554253095605969347641756520899613344816583336236481030677596263592287834500426666469920694200862354768234507064273688655484381721277711933876864657268598573423388451778509913483211099388327244743211416643758137457623585909060807562830377037203988319617963832332345586374498567832558003009609668154682834128422605377589409246861965989532289763970845081863902259330391395742457310722864236788915682312832693670260245551899880805385824817798940932599439986067972118419183921437532773516610802296986936050683249151206627684553017473673601265650750822445998127816979680253772662026913754716391434864235962455339842217630672278537611331123226934162111582755488906597261969785962876831591608073173716472031407546928227442117203178147522093199258620269570927651288140646368744491158270626903554686845956069295390847929046455698365953461891389254446633032976238077519354583954512808103357983000881651816922453463877524985717085552119969010799652025993203616793104396303016292046825181174738629255022925240301790400769844280662668768434739168960783438149820156472154746501849683922112569453144395694976329036848894950168843643515171070942909936123734316830635723725875245023409883978763185568248491340436076637138650395695136994052361209140625365124885207298076490356077039360831937069216332882291063830915553620033721509320067162539464834112502311393167996182788182026687981081104550464659918717866664325979305904304836353737636128254117861261217292775326209829756538689148057537849193355681372157431851702592922764216305739136670399492771696580461921098181190708683768177292167237774071126372659985804371611278684465783449572766329630381868268075047966265408960898422588660957076701373206336418819719609004958472972185867750475634547259724675673986044609529461988707682552742993490756097436406376712083460938317844278912314830040981332724690556395275583754573712800873741546428608420819364808484596865946534545382553007910016808748626450636120667732112800545499044788762867951318133617230460838089337446699831895587217579433522371189538384246862701134099998215629653906721775280926414313575054499108333371123407737543758348334969828379772158918552417117377324936281273467163752030157444353054846590730871668310453983832682543674383005830421525825707273586284853139160164112109728255704509328210357917880898303060827819562617379545584862553428672088524187287111798569378915645227199312374777841201228275894708393367564502922367868294085509010349318349666122378304841336681475611248580247350820380826267847871712224375637576742474661578523398595702544526760730811167976120296546228020231866849666875644070189396502764411590003282234777797986206474383207104428199360010390312298216472647106688790503766146588611605240971848030545445945861755552574025263219402488406347752921101910225936320167821168968031763351940665171445175671242620242737578002791632306782602426218123096272996429849264240398614184767914237939623713168883955379506999259463127003673708092546451526862299928895304371643823024312681352791190649412885788343108799272749819949115841796014794194050636928950309006202693275574072183367441259058298385035382478628872328284429434114573822545552771053005725536559229799802183631424579906427860541859950562770737333094918698421506899047568921333550121628951728111377469765233086269129527831137312928597808899213687749991339228081540155477606237213720084432327702530212904047912682460085325528156643291832075823796725083553445485644361861242286950758920461729347160118383698768855325913159553601555851606618581400908029957225105933107501542274266424741174763728794715704169775011574961787933369668383825557572105353284179276486754783977356172251997593850664238406634736039971816999119208601709105246939062557457554218953851409379765402898506107426753235190699829057534578059666636631646831045707548687535372946259328203605666981191512198440993483043949101637057940313589650905933844517546826008513511427046310030982121190055441339110357272884430749828155587080201389189797149582652220016845405824038537133973882981824607075983133938475256612045744998181845520599518657984636014455679113951746471599383430544558876595950903975226196352768195736691807405006512997040128297955524040309952728576458943565601337396151021860748342238829312372156100188382738130236035072000018890517029165744330401170763813266453373649050413303388127155491340419143030276402800745964365689004504815014210253295008749906906945420924963835130628871318708830780738525682084511687030133974321121265904774791589992467836987738024104132284115791928655828531124950224628002277252153672888536093689384280264987036120158413646732876525356255016342654121292009226363025495513720171546582970596167698237104952600167686393485630355026557097012997222922642787053761472520153895321850637841619395251480565164843963506598951056346326966485910882431049668446084399656246735949219913977586343393156804061577963635092746419703725635064695835469098803135163285544671455367251929134493488104262579665180445508101001930400236644458653932077564570246085564878570110521683126899906181792796555493117479973674635754474191988199106460656319391587393382363527456257954274530257599194000086750372782222414562675906222375006286068340441572456486215603147422909219894456186173432053324187823891282415445274773988623566477252723694014637807697426129419427243099016506860124046155514848867926904476222640216886632392880225789507949433618567518725177118971216651918250346457442595734347505720954040204391736499559727264817107929305341718435452704537965879179140189193211649849630188924452669816936469208590163326120493288363998298251318261635974973463540884591876207919977922238996415610763999025044219756284365553645462721872280441370040420065234779303101888934105069697839169873160011464563176790280693959575859460540236796591782954384359009536713126217333059896242764107948695422607527978011378381529526963315586927778962795817905698713248692586426020180572751865457626939393620275762213750746796038716650266305836083537123483932049035150689672858280252830502640024652953277800537262499208932938917287056557933767472015861569405958475540242989416877927423321755973182134039764209718830037125941873872968137329770755665266717785039331362884686611760028016105265045619974040933391464412571818712788998128397697539368084295992610295552660995298165043937593087186961665235915473326186890013902397258702949224191991837126402496256125672394243036548270820521178174860382188889558809022013057448188763137985047589675227746890929963508201572537940598505464510768199164925314242046807070048898562149361680749364467871179207081309498328646579380285683796245213477639950227442737786687121204505233293562848112447532938726263249972191407598135711278327392864978273824223669424992091237786272502479066434110405863374242847654998411168389520500425745938200485558598089846653473935189263997078032717469133066716607504343488633273563937168552253848675988857802598467266916655848455620818045491427618147692113119989713447818118440776334273165831677685112545794363524278599804604110636796522225966761777945834069481201929621214655377606508331597592466426911139272716201736345661747380666938713103520249425114497563294930449053056329015440709280092617940193228224315922922284817154770932858536037285755091313304782715977769827049627055683337747251274557728266597126653854692248181723701192799065605811821711135050877340142735897426302029217607726169639329927900045520308089949979647280765697382940077215225862645108872448982787425896031034066191511852428995762696605731687358451624761449021857481694441296067660247201776540014241459188458077320038315164866147434434571615734964067595037795088704612904718766279985717865573997293219082039891811494638775433922111699232629736755386855921093968347454002750517684474496312060255333160790572711511514747504950087193353444052175416783162292122122385188049733032951152947572400967688826738650482358808365634110453202899375033959380837730676075535505132737042237940487545874913418224808580269619249258510294895096056190937991163687362162133446378212931536573950938317506733805760106306858930669177538612450243490727598879716708786193971136907459677212503160436843348604699687590554667209901863740894971284055380034529794729774612388623766785214053541175587449379558629798543023144928532731905571701569444977793988013896060838083463466055237608204969965371273334368551416473145881376612195410448642486790131149995129629154476347406792443798627602963455903503885676195029444399593714782229377981333429477288766422592342243845924161258849556039384700321680577828770039789382590982397076407491129330445443284134211988129056730930045767752965488286287735055282492622524411968594102826250363142006086969297019352072809820128211650961490403138992061712201193737196504117935868493800323645541700736598056587146950919394994997250197622118967969019273829062624677795127061880059960453047712704097425036404256725172524366263989122333181382716518808998491374892818307423204418486975552305506425362278052777990023946780125451306060100674760498306185138144946435899143590387546170706448489300930197012278131260414736600756162622765877994296808736170718932051594705389926093047526623108501842589713539368388916460152523551210482094475904362601087633844242531475286883566912978674579359544885183660853332687363733387538879832603095619899364036697311277506239826367544097601705209720770314034725762964140514637128353650123371836962931602623652672724082199357261873119858425781657740006242144706912745035905484100738947470569048555634380057307323981631959059968603044440693651730933941303686658697596162604732262360894932014249083756827772636204945584239149856536096765167408161420286091517194851912705813601305813523114411170240964447703846479519981209695436793034006664661767421087997385487328972274653081920306530624650683417471393434740632940599911588736504688821004424305565149384382303421862795607888008523191911738881817503030525502353989564883859872899872274530290358634472259765845102972747416401927190463819424942871156982761541333739351124019301399381144711380733006054045790895471509444495175991016370068075504497374470283700229124366630337600212381959426362535212983811040494045765760437638249422802573419334239196456929961100481959015357157977267077864993549068311565900686637484533556928265975421856654297907703831863039010510376287237876238598643652701527458548361971080456475155544154772010828969983446400234088754477155629140991053154559630402918139625231911330636775199720076824336795728919576100156595987025693469331065359206075165820368650641722960919415916846907402349445357870513767458523230761922698852590263046405179309594603660995864871322540379657733574662301162931999005383740931681754553824367083912463604740198069156396317044216651197486233573895759695169116712483864912947182216103327906013333469147305375977755107728800521975638462582475684315429881661997955103387526196279599081134021163801845425807133430870846746796955820876419504076117659722823447826370540048602823207715131533836827149553879721306686845553064203090653109879108213160132586746866560880486862851663325812012648470892589753707533589064294630416838438893746897570685642865417974842374556807269970809418670067480845424876209125853422447568159002265151398651408895872441018231618794228111676898597316425685635940628710504463770601164695792172962762316824088513153795281961568122468681174325964416056601686537162633627383903949315476385780618092254973326091510989867941433053806438378095287508926121587911176588942401327243809744572638752390703459567811701647617367617324168229491219369685583423194404900138736904573198745104720457304038974539071089735160432551149994113239597321363120021431368418995037956548403505026787823345109481337051378345061749361185098759369945211450959166806762223258063155260132895397808303883216796331605525261492615635206303105073204715800366097244914967203000881265635895625840577400794746525085952479885681837484909488549815996173365360699369777144585831319821143183799553324851125256186240440185787191638633678084800310090280793919929867273397293001716296845615331680096036673401344872787729431342904162839856673107909230385024881803175325063049091783946857541209888596958983484798917836560190054257774101681765206241781207995081013592133466200048421581288285385993227261314822184104712334617889719290770527428946200649914356016029376547354618978307633015027194930065441340765346214181020274083200272426030491468117360536583577591812231736287220384384279919254479325317095379597592509059242861211332042537147865687214449746813415098667889459602817227887906948038008883548876613713627206010103286168870985336809267337662729789282369964852645504517122924280936453636402844993503361777488199941090980178665316023844800768540741484249979618266587656205915829692103255790237725002551485359117239963515737580900171690058732421080866526120237373964553078792456257522820685306764803047147975121492958588719460525465305213164218229001020568740184601556987927923285147346919707251846547569582801057859974357727222217256425282338127691112834877216171400838430479964865630813351324679676355196273892908969640946480880390533002253722118469630273261996822250481659615483645927537900288954845465898433116977625903481395080339589858367840266760076789905274695432056108093325232625712487272154562391231387647629830862564201668265668372494127099153622026598780533805840454251803709871787505844846398740964514504263221907835969000969321659721275527095776378485266869887698407911787315562982945081535116073751418571487372003472433000285800579903902088623371328717820276309329096321699601133580213681825428567784745896554504732474044458659756272648667331749951770744950134786769584273645870931354790817984514594060598455949033055695752483429138216604287938328391619455286213432783871401808869975731995677865375701860547727500092645283401533109279844606501475901501422418931894702386624908923130300544128061717000189759245730326569459329710795157514870016272482269709693183118403114411904987515243098471532040665985144420653563043189181615213992821222951186251470839285676977971468669516824644603582810808103815817868912089154848022433922753450105961572359867716193129717271979773300026823264919947043683286546186023084990820213820803996555415698134795055419176505928199167403519561073518531790967310894825413598713739091286649405157194719076168559422379709804955247725356145836110924471473866649990130156655051602506577806599672298874569306261473078663443552825781276821109899611507842347713416151566816013144661407068592813739596030819972767926876796793427929710452499836983959905907363669850110666969299303102417425032033782456446726941379834480111524145746503020159791563918841234239660252986071653407237501609049429959661595310181113717966951033945298550840401307424610308074285115738888326193965372486869306249318545580652157461534685233025341434601338531630337155490203454015612289454650004281269524993431656232097311912497668428872422194895719265202545821850496864789378486969284983670124046630919130149524170903974013213683306672898044187951608096332428577732268554718905876381872133108546167214047502319037229162540096135636299710364486116924736324345136108462135828812905481875015193127674300121569366111888422669686455209409982101994219915336716972161251907347725574892921332622141532476753249043944491448572576887182728500162535519236870723923746323556295393983326223520449505493552836611651443101155362607998529849664490395799121663457931162589328220898519325712579664545713894211719107551347280046945150712025824522781101297176844978254682946206237520643925801951461851122368893229450950342501775323298663958854198983375834848758626946368266290797811573615428334067829663267830142484313886866287927856515084840022354565557128353906671994068721095646985469757629615299962093729274674782554908993518631288037261237103675562369189049083530606088629701431086075694864189105845162072642707586621051096782264946811675253222310632370911074326072204628773958045467001804303804502251865367010370269080668013010534509747247972099972627898519726162523038744627285423981428869466620369868385707665397946937466778900363821260540672640926302037637905499419006088647833399291698129648683296428564609931477849359659713961808070991166181914268967919562600845632414246663528137261839035474193239156267658682374436110870014066864520558988823191839938218645967918543370501255970468769610814363680197975457141911009500657889797107155651023553747808516940921767055107662358373176345860670094878520922341938455721395457526349500783224296660285761488562114532039771414420086956685119809559118139888800767177435704053218096307945139286325372433547017835813150645836856782214003251950583905340242971158884524937725850528770768396591980300213931544156038625183088703631368160650984710923774167345299060825471908945249755698116663651927292322885183162075654696491404886446988977775946918989924631506700766759303207039776513001500276277302986031582606384861728405585644010596888034366957156436764748927644706188039653543144578361742299536180739356502324182167205564594621186752559294871856522383891438938695118539404288449123373507626430559230784903794813919590000091828620046663213376697232958128183267502202361485372262735471599306602912075105061583625368847575515115436698652920494243016586344413665836602404541948480133408772483150694243865529998148850224498199345529316217150211786761388240172355942961307683078902181916053989078151174990108761271522273748387726314572579360964812219619510897100908644518525830970768560044654935296541758772603026171771177169607953435932362992037692222783924642007688580799598957916628023394844543914768751117424875572234725037210364173132967129532278914406435070447536182732300610947752362797777091439420173655773924382057163937253989079217249980850504946196784418247034573067706013167098560210586910263163464833962336748626893874825947865361214164945342914300068354188883651926616925771791186491455137888432704730376340382427987885092880936192887637753003134617568161988110610297772347173167190028987244344256999183933845417545167835405834842623487620331678277033254055106454684951280926301471375584839941284842393338011716633352889501333455014836855084459025542527257699947421335534329252264756402689254621071431719715824262301686396348986112584874272448242123304963029843734924340158679033463079627100767187669462727687462977105550346217562242247814286348215312337073337801576793131219720455444256579044571332828441568204956475160510965889783725403025257049282993967801763300712406882550956677891078498937037830038127974758517188943136717343900307485709661022215967619203096377554273836282667474123024615246838798037514548176972699931991845783083853891660071257978915506988747042363909292257975744640106240500463575387705546405970226081245731932184743525287224800811633477570153538128446193875703187497475438711373695862595390589901935471770467985762999507311753131004923261781650457290639191863708220451591173701228050192755127778217608382203765101174132234533037602810069122513454528316780792685314812825912221273708558602883039755769879361940966267950701395857487978173298562466648456605416332264055883372944280111276765883048822243351599797761315324247818971318696806676650292865069656018749488102489448710123307741716507328833197947743712629946696041603472717767660646663689136758799154424557955268482993603400348981735147865255327026618039932406370003610477661363835760322653330702739018994219720423670810743919017525549529326491842502293586452205002777705317044293501852189069551510058721435820853539268567809771828741972135262052213595256918278638798587315062416002694711403073834745748022498312203461857440100212450066454386096952729367085101995185150613678851362316997544149637567799727403328306674082376203753435965030819259191527462518718441196278064756886404617684664093866516981829557246685623653741400456422033249457318975940076167881224562329500023863190392604770558083701343196149090221820545619308184491978772976272217266721461343845620180753409447862082178404452934021051715962034709708626368177767790775538487775563117323079662324319728458059501158091051157423187271523190827738170969815151485598476634703992555390590359558344711330130690213233689523323253157234561529470381934178723581609615522256679190320416013172510231462710933198514659841725150110727699440373826323163296474178107375152688584344011084690670725596469283073078105243726570285267647536502713318170283692456425223946216671501253945781063494614373124932778202648341556336930211471434622315723315433439717926475499827089805531664796226213659601332595079543656871788369798881237669692055842583752670479187739602653852842269365525195474483341089012371541893245552581993835894158357559870394036740347056022041236533524206610244462820597788333179126880108052218348211122452100275461502397510063476424777043440283523159100746696180201321335304087203807810114991647037233282484010004296272491426346763108025106013207504665404941378905578695120124726037749483002806993941920511528904991155457261127059689627027958018935346500562531249205619432275376676390499504598302457421649528952838563992863682984871350188438507399414231280931757361848398764117355621730664420540541082758738260306417547578865914544384113877396172077486151283903397831242732495361745614664147410778917158930653582631767461479954510775496560624520721210488966257914707165265286269546713689198186569336661575266517029464938525332992500551418647926487189020570669154777909268360122434101597180295461030886237567112882716289424164204858866819312919578111461550676443929198892259614237858769409615449228388066038839469388255643497270741042344481260914538660056389958216098230135358629856993900691894831595957989551133901794972496579684222790217383811563183684675297677436020457447573901915962256620840959646022145022203204253984281230805073763979124561316749210791401353334541744736787930300707893771944268228649833882891248426624636127068565966963191982472350340620716339896218020858513428880471795420600228690774415474325460339001206826391679953251067220537834959420790286112186903685129377117364303777506797108118558164029428347018830814660286517464127658409265570858382483643372104798266880760721697085573641518717825171598543205694293039693609700254212789944878823286093261693067072949585235992757013815647450990174999363136992914532031350951703955401066805503417102879334502381433623884748519338945097456642811990252580143169214815404722824390429336887035834866322966805857393742009207831057586042791857517738614900391239889837560036715642414363916940339966818939298960960264125101425865695701492522689153627753948619554583928033460038420287135368928976264056232464124511243578872677582520475729749591493650558458141219342181939537281218292792319075433897188369026385973287181136651287435893353146928813412844882259417904253772456732134396549265289535239422189100260304007349413521959156282512893243657691440834753960194833663796102323502662336555635774777962012208801196176935093305121354430512043438673738162176757409521331500233060756395592433273471609899870733771287947707162393699335273490568599533091943863038880622301662828254807585678032256558634527423496559124780419081225875745082527710394217961324425979725793682847266860279222296322502695595141899556828486311259943415071322515141039539133695983022818183188691246370641718706345330660689372988143050254534322329747177478936737959958220073837329700224206942738827422418456412751313228348550206174660043978739654879007990963556966235155257036120647655638544493922359085890303384013396201529907893547117625384070050448335347279465195071477101326641461560793240931252549304697797095787565555921839228360945658371009256790480314306473169365977960343875850720854336762040344843050003744245801340669174887854996633235007313493390572515081097431523567964949033411700083223470409371838179253485366038149192212809861121430084148541262436043241585756289082783631483863471839197572572627480054141154246494232010796939912876088617063168894570769424821214140176162576009616060692318093769089492994601138934839272787098668665119174266341848366253694816042732533428155803545194984500673459478846242306704886154394348422938530847605959264036619208808994352014156590549438051762139414061271004061367810566827535837534100066834800360519232344684168031446493176742780284987933587902943818620293262943738005184433030436222488117218601155885184624449163487755792434808700145826886935713022600008375816148712498808504181691298075795230010721673049136360768521621580878695818882666975190129209001703858506687775266617162041581466062849093440405515814593712115338322662125221666979140536515651157804580486727459867574633308702585668275883198227214159107161813609614089995139346024593876477574269936155899019252846993418723782660952263024004651612070274128292292818689586658395022981262717802766319704193097997613379923157199447444958195560631455615239099160520470758429730813482078301527699351015800535606604877597677322167166783768177081490864423765196710923641989696060755256680282234002743965632630896176811880975782145440022691254077809146732570321069395989875152029672543838699111035230592232589155223708325568792574352096545908432433647822337667405594315053635023913741305559422445957514346329447832647187464259796497672895506805651304567051443923639556475180362387966890003637938246740197103723830967351956769421854742963527359972393713617493984992091570579149822613163243492704435035667178205797751405873285728574459490593342067342145676053025593197619964916779346378923695551287403953716253655993048230772427503310620256920593814934439502228381017672893759859547838687926609225121628103104643844356172839962196803762757714114118551421223977795927336484400135888351060692240800379072630299855096319964352643326689095797470604621434644591390498585606742081242110970890249222265738756617093798332356969363523631971168668337304779783838956668818241626364625472475011885778107852482832286184857769318471245051430408879889051456544834181972650990163819383613283095894677381264377048473472871170114829167956480821449520505217625020303707339509144591067652661055988071604394630044217786087809022704263687146606407169395831304115045677140927238015275985450209765740135169205097448625146361919174281324041361795854972207792891300018080562464638457990436379105567629784004795604934536343326802415862031120557410280546319460532993814639593770166934148597231087133040388714566324284221481122543876175654963295981745463778707811061869716551721433972250938971295214693598596944391448995559203411800981656852408762443670110207065628662340291830719532655488407014643653885382574430847416540961881331462124150981427991399231252345441286140651134749442461915593357911834310300627319628278006882862865227981962524692486794561906499583706823606507595195395380050274510242392669507262490538257992806511909418166743729568255041408957907457409341972035714673014798952728138228743873773115846486132906959905949607010184498735338655689199563814301863062445905216175177234317780155946630998703063017816392410565249561621252939788828001126532323091264482652970888262810270257617945190352211197063830107871123434875568261279012422945303249349407698740052372866528245103507379813015792883875071269619516337632852460143567416259611244692942328112167426282635231192386746699944644993025742704475764025119623228368427087647805007321534459042716546982022058107061512038458781950053165053568456457820395427617663484400207321663616155529081934350159524185270428431845371732606252823184873733551316729418174145771392904279803552576477655286519376881640798215508407818991703875217118191267594024954846401584812005655673731842105973492457454657588263177141414245458082558147085224625422135763647620479406078867148277858742143039102505687282816502888120038365208106760512348405625625536037746985260765724062913715733581772529423174196333172247334534581097993431726235598010443056779690727668257013154411943343450340241937919737358412081931939602458008746374754480066546784754290985371735152550590585031175528027844268186257259089699298400485450538713788199404840582886020394188925341207115315005441308521704859286730734423737732777402907893721662733029681995085916413894817442681845908230024775235277029341641846921334171665319784462438136054187161671115703100336996651512847271811535890863945617510309680159605680996589244189973761212837812322615430800987653083105675888377394037787586027082606327782779739170421527998295742706827630832124027058404585434142605349920983161831379719672218155436365385125968499309483657778195646534749093687574094685139841805195085371202326274792151961970355510231237150036973451784135950530433064648549456075471766066697035817872554588407344124977977622162898584409320237006336531058468478927542900101597780678085203806792772624566375799722367752677464404848560826573958061659698455651222882147637545447085101568922503175925893325045952289453678345821509955136152925163440006913418529093548863244838774686830688207207994827710055843961886233918967930763431126633670714781808442682879520850255657660449720396396546428863402690256914109348662301631185636543325960347764078467674405795815429805311249387964158768205775633929087979454147487704218485038953509463838620623345786620676331058249952755822047852275165665440698335435938339025806716508534478283766007376200545505147620245793274862433631559283604078345675397645130798524954425844505172487926581999409107175383660401491429969528142574175055500495893020864073313462573303675083898441152930417514562851513911242749078080007352507751036394383690753240979771841360011317109018490888502133336883763857731850742446054048745333034259399826962589425391677097271476404649098717562023297432167245178355437203579375059403593415522330754095020476635908100214131997865153088143837278342522855580117475681772699427766076419544818776856553486637656898969820501885744106782790129208182930712322299608607373685917003799727202769773370575630016464561759749978134421690930296420954900669532106011165868536950997539566287691052667489924421008918054693265461796897030941027594354876668329852211588640065428624739857508197394473302182084224729255881031048213214557127175271509130213900502888008143700670306303210159418393616503083989807190754036329728485099264372623909710964774921496048308731402287582752291146704094586634714476352131159074253165963564903990741923407108463757900412096926531281263530307625253203010150618063156838649496925846982082292508753955837586087273889058831892822932673298007007947187435895461340590976149302978879850432574427009264423757234253604625105185870407319878401856661562562468222433894996563165212361644317736487351656029054353669090672703786172998097454782604787369825909478278830195378553940176764441154372486159627428568381318150236558954068425204469872881208265955159892017457965142799959380015562569396499301965363622316907995007686729109064450048166696082002475393411025916253727498699806457639034698033288886822569568478547846653516855640745352132212006392083332446551562502219441812860884387997138620535212539334938598852038666146833363412492755847233551493194558017858943160662670846324441931656444105135988064899454101813105029165547415400128110296574910802271505787982978000655045682621396370543220124206999183653776853563918676765661859444026347419091213749162503282209139380295385594068958814917057214669269564707350274056806770821563299909974330305639842398790633971474910614660993276285193484606750211993161400344906491534416599120264426831914968993933405664887168318411876780162922003943205958454419353964605572316311090617540356284819679134636717427971336151366876876761947327822337442610028864781985645942911490767685026879550299536526328214836690524609369523999201701027755590792022082635291908709750958467015242761708667370346155472437916566273943229147021447765758756242148690535323688378844894167637189686564993981819408501421179675724163949200881497113023823360340809701126156845501465609992817730337815682316023338480756581717024856476806186052076906097762561746508791328834523280636064997900347291170480272280723959173324662331352974721052517547511460562147369410226500173435332316364293957648329460804309166417113393604098199900986120560773505447346608116998625053707877147428034146802383267086550796288118396883551433503451744270700514010348236005129922227561349141589576768198259214226618655814683951269178580307673701300132809159699619855009484078848101117359235322050310303750569039304996190077072328218555724643302955864496674596527574610384893983979314068886557855344613990721165882184812552453597944176880966762406080362673022616086639347967564065964186995556365392438665345444408124716216162826039295785942778285905173995097834148429760571154092985923993291291869999287212728659184379421000694926621424708387984786411878429376548314719963233605942889570840042076658402761588673234721394188538876586825844189481491731258514768029781809011315989412045983684352967313960473423689135974608580977794284620633607584521900494573064627889445354686572965607697782236227919486272521534940505807111167355654202019742541459902833051211928749620712617178288850588725949675043229196079859133662804861602145911551181654573413629801590590217015242936876915431091199088415352397982331862099773382981396858311877982425857264715966833108030277508346184689939749793413046962178807959407187797857165282759057891715860486904199128864692327781236968547530740712314672385069776575658568532860620470592108106130663289787089189372603998501333059560481749366252753150614063377520341255051822322123437813083923410966164188103030912910826708081782282579831582607308152095070393016853504020818645866561904272998931131401492988639110024545766484712449152284719454671224879613620602794663984164240836080249271487957519693748197302860852800209782484632065088341423231246193930916525826098052623524718741408063717020009247546946213862706089399796741771327810771294243045363936778898218944089580829856239616093502273033225137843702910264052699370781404555962912243413482443286886776108442424660989219100289874880846434792713274796311238720568923819516719080543539334349636658823372255593097089836928816684445244646260452191516983686156362812296178653215864823666199465482000421146327495382104885922698928716141255397768622595820315261102161009354913941599625880969010425969829986975676789204639038065135113727499817801570990651741782164286010615786876407352121263651289143436496224445917307416246272988451999635501604159744783555316971812019821989023315561246948304294715285980492929654741463433869538546914224711308508646556479084397843511491577874855082691206699574308309306393866935047701343404524468661820723096738223813551344008402172241963544312183551322014648842112702631827117791522683958061934173283104254830046756361238478011026089665834932818373427790661401231729878642466042322073380567771612014120447189263028802971460883966683640844701685159879735209234720427022322898653853427615251582567214445228704733077798364366940126319358850710359679527185954834904501634273737355358575278850442978580241979957634900266706570218378423974361849120498966389587557285025848805569434927705765514957809710411499731465744591028546734005208356282542082391430940674213311412973271800639442245933557906808508994912079699781427642905269793812383089394141511093612061267703591985029999092240100391719593866647511020721304942792670127700081309489164780002650082524752866928199323631568420098647840829883764130958265053990316412647590255181911030688936877473669580602136381466068342478314550961889958002395798317517199759788788496467044084743487754977888336730632412683173251217374813325742572973582891207536181953939383529440152412323426625864432419966685746299387086454659762620718549831836289006482125779650499917696864980691056347039028319729866379912703126243592365118548725862425284949967782854244384163787973135245452235618724716599898763768416450022946170496981387185106873928607429218806824216535246461595479767411919338703949832753704472515037200709393775383540418990691409632178569666100934149871325703497528684422436670427539540131987151267205689632051193508974878577445398800583580565281970792156591362436505615464477916314047330131621223275765012008747291050564810067645895624717811421822744934671871847983102949562454279893691204416188762931157444756270312532368114703631757300248483447819441617764536788736482676622597758672734367894612689680298650828472195110575661737146348273276326600942059566521654503032427637169003284017773754450049245380788887410983221066342303832213227672314894505409137814208516560407272189841874416599376889867464237932246054537650934061108702957385450203004244388188502872874910860491501193666213763257581038638798763003957301369918755936604356220786615198658125033546328876532855757286902695674460154703571518350952554112846993857207543033546028303693525663657521380772559583401407577423364587611620636517416491256528539670418107579263931294861590628676081884005657958813197030566871875751051328526384420355853655233893628227671117999517748410981520791053984507908717067467988095386055183144782029912562774118464779908334254302169732423075523426883553489119749446283041143518219136130620948156412974810761201643600436375656399133896075717176098502623415889354119759740765115190582056130444834663981675640494172096651361878397143586403366184505174910311313583413909010854400554269410088302596782850882033548009946870181863153093102652222273102333150414407462793239158731631268343697119617277005591750465603539785241271738597914464976764280314686983357814464822179068150610714218010649375285484461455244862156408029613007593681893352256836154347527182333735748307640115873348954242960269410216335339721969018441010765216250197650669458444079566835639553553466465714942778299187790999106021026536804947607232966780108134437294076961041937997644093969449522682817810974377157625526938503753262160933183432377711615525947464211448190800212707118970169968620683797367775791114388276994715036406593743385437266572029313994244077538330928830677670860763917885078283564057340959925103177118995249958384372539630195649443084917283312407314354275345748798319117744473570784609720392692216914741127784966960515492979689261670657996705208353586454360807815239885729750456211743650559805346961893399224525514500309595076677622417243707017762298177934181218422347175516334024546261677267296719898862849484481243078575024198343113196150367859947822364448212081303801714761862543211230203341402934102457476542115812134813749380757716904128384629999969610876266615707338991339758852009957451645567755224563595812687283578500976584696234304442273048361943272215598274451518558933627937495799673620794900554494196538022388138662467501982727499394172770605095128544955847305545527806670953885456932270093921272289795834028676087436606605382044847360155008362663169527636088959449887155659247301769798229034717667390214211719457377612697164227154224878452194794035533684556258865932837770438208521725378478643633160380426308765412829661447609090041245926069056188920875319500447354080352087818368244055264458043843530609261914248056889732954531146375276868303896205892041598641354131930833290997956607454723067185635775193071692918191731073192894274818899531685705235956348526176368154488524485422048224297398359405179712184780444604882577232296931633907037954778741711827944210748145189271806919945289088266596860557307337968288832059168507485589398441291467331981860333555729711951923027427295109261303923395782710353907004815027183129518050510239484478899673078350140281062988308310218897398551539947021852607837945904740993778923627124175999260900232788203505881068221877915870170563211697108135980113721351540646907407674143649689231644917768603193538807247528731426142607629602816807116483252197622073185446637566835966450371629200834197501746404070328017672164780664853287460850234258748821007329001419119431361310534996205591602722782938619634369452920487468482490552567894999442753788554230438601792026501858011867477480321545483497817122304895271492571578103376830380143758577070910854536160390363402025463538969383543137865726827021869548494028583783024772779794724435348587765891690781093924954730041299089804218865737512673766920162801033966544016722627351842475820175941934939267967255388045759844772986536715388719443228830429158524831000551827351270891623615268219849928545006483420635997982032689125546032049174903535555353882019578257813871183819540025242624472640799680645802281079435474612560959331332700250960190122432421660447961804230992066574302783089868338613982558008207196041725080235595580474887895298155775003996216601878702921018038745240569731317582586012118637831281401554986118138683087000809777728374958704333862499516121056850896353442757573287816940855834449749841902195851429453898367408806229702668229365966081150870981085877264892917758444432426905969663488614165867235462519218359537915986766112503074375385998737485024772606189848122602929551561822203243949189447322524746758490103716527269349062327579156144860172143183794539909009366157775846521679948575917890534518076066172974278107471868850347232512735474350709317522004541101772406008411507333959484065105488617500462363281348810191981118380866160115609369031108009160644634034279081041561652492163595827575586906100843092308555206448493501129756892183980965153470318793653493901660088014565246009042990794629011986225233100876871672891676092330168477335104087602993297100569166548080814588033102248035957597741637065346483410665388240527647302045673821350262447376000076186480780871080733367257815607973813918841612147591598391574167887378045834973423152861912921272857600357737619121708316243045586072246557405576251119151810977738399269718275573062848009576896771584840448809825379064123755714681601351218112534853113878846048912471017953754879834468078377254440868385858923689331420343020741686373491506527072845585382049791456488449991029755814044390112243589660243130194770543241012351978076777988064837016223309697302520816220716011552229754948892712472618733312711578026729997309274780486919028693699815554401418070516586262859825183067070135820599312060202939806146887580224783200875753321974365847291901377299147564720674054227561881388697301678405171861484215666928699809320586968140632956698957608379280381586863403751392114556763372936756163055556713959061761885284754372849928934440701255040027168368156564438839301914841299366340721436951848361874850340252440321749286945243719861659835312373730748138099916330906763700533733125505012365241469538504322933326100163190100222296414586847240274221348517421394127417199285650514695744560329559540982848210698470029561176037275860378555857877515424618854911831321498588964998863170557393067443112388463504391568411764444877991882602990087627482410521815645968734908752844296913406709330140829719244111470795718374136156739177790069712602201278558022460725437914141377420504828465943803688387913169051173544493506586685704786368661932439606014323517613219213593425250837796787309455418289380654830047380972327737729212829193589008308761813484576370824144352905891927132292025193965244281191303510239315429086097506439144428035825006691491671444046499479573942848407604256608108599528522190700209683696482997017778324339755221467623123415158212259974141119576063204228327030516462422708001950140282503108734721352857319261436610720065137705222561266260108180476977955136059387879170230576421004493010614800439585584419204259170378498411488917189563637730298325036086727406394429670925048564231541279963547231555184691455154283323169841851825079588869159210485369794947618352634152510739751313681363215799988412827292737606242512810276057317483780638944467228280045412622768302702468669041715708952905097727620203275319225250526363155526801451428198105498747599012832322011623475934655785157797677377955007336920696330841613482395540116791126770857770999153531817052122777854674110335403571432607068507441385603680933018347581243227753647434142328890914703659819115004410158383447763239472372553918763221847550394123514563819534007382714535741628556931854510252048522550866566828213007953683508394051332837834372765014347342746989390919130221097634809363338125079976602106175610174459693442646549957086243456297700347922726130379414613883478468551334317885605739561323004838515231659092360379679828623271187621527258713861057178720017166403684563922938054231035275046295747042976363106001481111627776412594225498391931738519387207699410941736229466972189968249696497803787612087148347668273522397292610341267636409943854746137697454156221751026995754588120683734265216118510243365767220712041513463739187799033998695775695406614533862463651314375661751539321622169716630907120333192682192497016497844708829012357741377755179104385613831503318658128392798968540845060866489780383138094985844124338304071852383246297741332910833428090693326733854984433736572755837097577373666956677021705269415951080458920801062753453145656597708291684073702320775624318022535157093275012642375496558977872095273358926057187771448111111626760501552661483769556547154687751657905304768633973734878749689467161914790667884929255796349221665847862426264445651575915405098652650650395551456288334718365094148037309707951398561708737351829164484935370169441346583118566452430827789609126439124165345519189928873604190026203230624411435766034550890844000127863726888223899837372690430773876352830262810155010710365763544638163426465230072115860034840993120090161485609663078372998494863725962522828592137504645770142280494663328192907481991574067109091161179417918621416144958960824338873514588939329599042502141607734618230860111085531370751590132348553848712608986281909891556238030755163038852661991690465914470274376179068716732451879954301049666802906727093369635589881727199579083460616940476227909033427809920452045660309259625150779805223514025915635603037776121936797484783497500215275218225845969215806270018011131589650294783825961309729123155365633597431341574267608272499910366114158134205455821338233360182843880848128231688722163797289295763587586016336414441729938881654005304169799145047578697615389935945681742101201100311772885993911493061850406383353534191973280085545040353011562768295698678480590872899557123140917887497292652372787619007349042508401366143747743025051967818259447237662631096121615397923404942173460666554622057865839157096132040531759146406983616981381962598553592618505378456411302410009482989548366802782411805960835200318524996967218481061734467400860331853579799572929944315623928901518934156818635505328166121992336008649307386161853000792721055559088417240336557117868986665597709660923434513464106853631020816498239164661845856169360124742173674666653964419431934861090050913827708314119009012595244489582186950342642920152304260168821237086899944708047895106129840936137031601457415780480838439119797451781073655992360505205645159587322966537221866063822821567106919403178154239895242498851256693927907716555433847672540470505054959470331554317841320249402447616943609911714830524020270242925636237976898874902038628348525536686651291909295193710807841060355409590490442489769146903115678124187670228790366844662269827896750174813146709024497244140229767113624488451985923064248830140346664724718546688242213372998565183229584612292909107099069085952615798377339017874043299388649932992498337668027823953197431606720441087629149774805747916586178306243876646312263297609728014657119535344498158219924234717998031874015694303469553668033060765011906114506335169234299979942787435637455594932728408849758385376883157526590157658688300932737807328485505746548890540517565707770824397401186274253222210544770482435017244042252048563651598336919504739460399425207358057636948542365975619206432949165878078844101496389968655610072279222153831832266702046921650937487617169217389215301177655111674017431640102884735254480317705154489354016964635420209768984465470875043575304274876553635996133637223786298334101502327044296604285436483326684156214439271940365433627891106509871109661181236064417325458674603989288230962182103628912979721329131019336507108847615230429753057737208040227047225722803905813459932582453158367139453510588041204185236785873917003972673385311771307679292682235974647728315461042870725210775089190697561429504785576719631044407863037930331275502393336536497039849845361377368795716100520185753672613379701958012372119927468172352763263796171363850530467316424072796016259058690179609688457142676386623890145483148012107803142864271475436844859703308089119406573590289595974415191251433247248239593059640822394551311221112148781533025070582367227152443675275783118716478734371347460202851249728281750165924820874762194812500427302745000244376970445318226466134519167602441973546623255745910501238363224252835973431437719520773640257469778809652335374641168893274992804468419009429637244137932397830765793282330441813559524484552409406085058609183299188938526269966326816510885728507085614290767572855991262512522885962914899473234343409852524527249828961510296878561386705503447904028250920004886483517807494236467799915521974613177063163375440066759959860316323404452724275694225629717505903848622605327620737180628741805989462245264104725796505522415843275506171130300990965821016859844106482595948381951142409406528549030169659984446472241446300501192546276452553493419772974513035072027054221998835175774482128409857080839706221717696444381150284423781796522877227036028034756107490068213924494890530862341084119360774864598636763968630142215418909573947318375396883961751863026804933474965839827379390699223113703315036478534290246481789339887654729284814697674658998618980869603945760317274703855870355239865688136721953152178568433423909232008440839170312746126150841421808365377681997905169767142275465966577175142775563296810538870335427571362743161606955815149502834023344040666440163189767864341679123064593964217314973496500430704995715915591700836109866307026109082295319188110702730688953576944132392696653105737808958380516513055101527612685230097850493582281228577670384909171736759317739667097005530173523134116707427241602561330130690897779139796395592947868699644949609543727742783047863183788598325487536754980335169510365297980486922351937664335609317306189853711379257279687973152245631661507291655263383451440627012308085356804545798180939973150141230941902024957676862702357772002020929405942781246741972017431350809373144869518696657327537163667641407443347851871533500296968753809873393246600359248325366852749094186764214333933842541254051096769876625467241118985133933674355550135426720042345982018654416870329000595122315222431147421504142045429036534505510041181670728129391520565125013613032000475887350549453826023111631473631588804194882721470401881966544209666003511032910304786950548236522944905688096726821723270860102172395527165296868158525766476919644956843004012676500426222267453746332572720151148558332053862589769373677872833165722367528568559269548906709151972097758336598778970014357924912226972817591034206760385706441641205666267424108570812887211908674606623372383829657491411299677834499283452361499499273322958263807286388901388183036695331526493995116992569306079130613027531973898557081423642303614863445933714579425079592407627959209456621901991349517349928995362028099033613719077354406745856267195371535443637375231272173923130527848305308341988492970363139831462792191385910026886054947489301919633535111502634733579298596698119261385074487105555903514666563823655289747169378956648051748047357399350994497244354379102591829351428587603089741700846017600249388067715830681821648636805756671395803626055709733993245490436921321392514022426199958182615775152251515259689893002738357857499307647505854226445588758630802009198805694543546230052902842018894094084878808994205622009804105293624384659246262401279466753505791849775701686289564926674239312158153080852046981257988344767699918012017078696030528800349820234639071576648254402896136988343530684078350460753001614033303788867837310413615052658788987456128437006742684203432864144933150855583819491659524421599056837682914514450163042195604499694274705689127787939937280257330957685166552325649128938277440937508515062078535420642844819376454625236637533469540401540459090729572890697208643177460782189027071060359767686266493509048304600529587233127583233988181521907748153209795681436146416388308297819134056428333212817740928159499659552675720052417527753395988874677392651044358943285656356446980714133986432182364515830728789305776527287621692479696015194288898228999727720057890119055494389051030722420875142388992168611761421008608376085545093742767747479177640078261502868247536511498785321076651330475685082862077119990771563451478460384905616766378659877549652016148005254135551342774018383980597235127701198770170462737957913671282531781277596297219458947868912732342329594636909314484752483798238162102726484773053897736656280387842247801679832209199286751197324522109999327537848685509911702577180204867944819786351112922280495472604535527275051714651788137325809184763882716351678301420914123377572947608087603419640953827963327272695685784516959451583168215339245947827348093716572615622063443053210135782317984526135522187109143327844865486665761278196833596811903509639646961125200968583796040337319843994391745533810721934704182433775989151674531471085869928144309953843168551771468645608111398401634249522733996446668340880043293658107198666034136775174527606494599781329436972884086231619942724858740575876391966386663132046245382152130341143790027267552055491286648119687137317393382246902806647603160583673526748298198273617247850156008297743765797465151051684106232952744111276260974962701338053938325336265263516886714900246532227612829961262468314402722629116447160923677977430086745404822059812798278611873324505277107157737989862017427575191598637916812744097269323335635799119977347878092443104667709278450710079265300945761016484681944593904036630288206338441152154074465942135905406031206524146783989910744982205493246743778996664665111818008439453835365086723305599650194467208689434028810990721743409237993581293743081635076130637041910095881539938505323075126093630793410624606903977117153189553837343793019724322952265788778642503049939056322053063123369835480639305559698264018479402093022809639248571083213401955104468421077928249242891025134397072971877455528098967269831492524545328345372181252846465858841958453084847946128035427435617229562086268470058102262006590313835612721665758057173114038213486659580904105507300235059966769910967018253399664276166245598860215677848630796948804081658243805561389170985198297894489848914682620471462290691402598703722080257508226327736432164363752028355771159303647408159881142286253059818642478120342079842479997467427579076143703778779835072537991614740506504634946520215886332413208512693427363273200469919532015031691403453138674523055060020340881899429112903501691478449212841057208659980164810765502789671824742924793792674943292772560491421561976778054564959464454741859470163340716539768557029662680742280289488213958087848479884619427822728780479663555300899359838392315875083006400864733034672556654043043138014425906533586954342062474170980721189893417856827829342919910498373606372622995047307108318190406656300379269074742237713458070790593573588542903816226875693400764773530909871520494600777888469304456157833788110434511800841649812756206017962314528533186914558405097141495347077961283772990390334183017878005182324264632955871543825615218704889984794131406082444732969878703357547468893908150365340417337888969188977380496219651504342880852419768545416439421372623725974648889814296841107035536153986337274396041610792065583448225051161235743784202039219660307823144784841988512680029647785418002502680218959946309780212903580082403333938433866846093566401263095486096922533997998783273378734699583729898646450977218859450409596615956503888480551616816569081656173605319622691277318990121649370502600898607880287186843062858400189594553441289298146000918097131565553664408294906943263557501862645458472356452992950163309620535784168962302579127869798964109628266386220039718284467166411005211480279771316725840757393319441014421981826785330308070058959069151123313866297886316352676138694054626245064125853745368009497381012674751611004881692156058373432323474639469303924071615035832750391747529373482075404829070296743346023932023246994788710342571424887845635224498866774504777549672258318831557001179603373625793460678723827722835058175192651073882458136558201562643924094907436821353729171019759587694748521655747992886100766145180109712322899616392691100749604223290447773341864949331321322925389288596921703113953680064263027816332667885976252323657934250340379575580577219756732995943481904351014660915239650583886827342869415725759990153418602378351392232550182960582324838725404176260384394598946339310879626137946980490596567376006667409119717782863910505136607415856494039121355254167910734218804513827111241103467574309485755114845877653728038287516400894894146357184468917200481497488408094070659351239700873910392919441317184510481700288023724217075798382726700404755726043264465244232081622872791771186247947017762832265187831386571531812861251652561753002955605450780639111139182270407347801928996649986361034510509417896017500115576531105500868673732171211623621884726467296802036402884117159390608349995069048290953092781311847199297034298409062606555100822627584289255278610363576327477420989781622026314069375954133053151659542855592526517321813315311747860409825354421610449806557777413234828911877144366279835552613666801296510005889599608479709502385883593846215099204321814274096454216383152526005150145169179993632300566287080231217386258016695127683849726575024535021127850397695860818137357964832861798464550953745140147282647674283139678753584951642127759410348551348076943190594161869468666010748076492293676236802771244634001982298343191144057575929863313257423673858112934865398583031978544172812820439730680096780018495659273606118035577535449992546049655163046414471752151273991524604499086308862160358959190326912816036258047299661473712008210543737973482126030773335211937731206121386317306428021539022923166841818349749015459314861136389261217184880720528600036264575187106030229713421872635192579664339412991555692805841147293572974065306533308152161568730034990845327316455376260445183184966113706581989863559712436946533052072179224061660047589635450655934808448002885045058415739410599493842221462803900690002652524568970085989620339258729069788039994347179152252235031345272856136822347033465524869385602161192818625543470128247919219514599776686820611756906493281657959233408856653351753394462089949966137125572348725166296249793670759713492621266463583507304480433879382969071735005382897635315621880867851374886142851129441156467314858107588869511866604647689896579599231311597761194650936629557997285981615888948425249958621785047528061746525229392788689386164402823116359802261673011252114276998362034751386168623130983960979736059210375371538512085404558579442241565922650006169206153782722144868946724157806543574689262261046544329653866206192091045289704566690171740534047941123441450855318339548990070845319328022293840276937259283878205531916055853304025524108512143765365920413982708125016290623488412465137922870423595273408659540832068356470718953576378269545495785116849572555974617729562321097808712341153073386435678499652518632462250211471145283565853543135673114540747901919793730276680909147151643298626920751565493482437307191437581213457606071618623771775154866300801417112587722186580854541891485116856696034342288568563203985132160244811993308866156157889431233017871107771483691698705748308444231320745647080006008906927246846190524837722842501172119593442706550379280808594246605177176564171865870498840884327577543085007595451454896461404114994845567678686831374987618324443335425246596405556182750075684215613945679977172106223920105863984152978174232155265019235011800747137000030226975598990954385873821384571333773352209890505420413280457622111793345907754682738238558753254568537924145490730578161852787975213440808593163490211183566033131274199320821381177412808034073820190624032401085667017638487003023064071043905792259456312060599002461323202488805966040731237872196011112850662044803163352355233458943849983323523151348925787255309810219342413088138840353755358600660207908798857717906902660694397284647002489226688088445345833416745396980389057907415102172898543887751814967319107046835913920938670210849072681881191089561441552892788087763991955776351753384441305533291009257199213783488941727137775267116192501019493950581242232693818314051355950512345174942501338740354055093498477829404033454630163339088123430047562515456502947401318161380683425741784917530918413556635740532418900071036786395932086119952752761684354875366326744384880822466996727756623811296444590218438708167828952786882282607540742809750391726424572895632990084535212958667487561953050035204731392685598574981174995796850557057794432683184245977904261247859684065914003786697910773108823700219814692255905543679639737616228451718869878627686347865439191025435241262095125582072735661280106386545709414288702397433802425934688247273198229926538393733513212764661898108557808876225662848711681617361936293377615937003616738519236223167976078783152822486508453210689123520989068524150867331825931939816106646436960555936188254867645715514016824163227164542973139462411999125103810922721588364294840543645488412264528748961241319002975296364894287402704604616213561726289153039924612181109891836010885247426592810875735364142048387410003724044320299864604205647851085761658045716292077710370192451751699940179545949811019250776586171208933600445639211306817376413980878288987624952312983920812586716858361459494725370685268245841837042130606373238899416123596165361351365566513915916067553515393976574224309686611225228915095235196772904373833856578160327054945396459600744135180513538442349826943634429723070924950689306864388106635966939497925611853573746231796965284069978730872070683463788389818258276152452750477246252697561534590546602889180642373791878189620750065276369887559897395675714775906214411477122749816713761371411204088239168164314365290807692846417855395995878914057554075810919778778555425135782032972630267678693328986783221088918257896991508293918547224782303735708196628455540749555791642014247478941165842228254048030508096188800596906637248370924108544274549157070798298087008358294730384091175428965612407792032153439810048988070669729043798311984777504576016013732049367745845655811880700199173696408888013200167132276591630843263042760198148664095887418817780704562196115076818990611656955329859734790198457704609953288690870278842250288858280308704202722230172755443416213069947270294116170665306178932701773594895456212774455520334325184500205589857329665278543358150633129366523845024668642592758193641765518823182803135528463151537877620257087655363849524501205057173936619647503007869950566490194027527413573979547344786474093639437618048458322531208365544049799968651468911990814510071777138937451684864019220309698830057679108688797116640247618889560797908181931445663350982881632753345975639785177203164864825843385259793853067235749957274367917494061917156922619856444685859346473573499078976313335056355018897630453396837959388931381978967992413667038046604887833612053017894511387950358670878876288867144665682706659288389339713851760740891293095710112764728934105288454109440253598307543569607144404593779504605945188638184980555401840828479591618318786409559661826809096790177612128123477522732449855699502046065174217942593914044430056914843802000177696872948405078257416517122555173432179947674494045992858213689477668336653094503204695571432299104816438443919819164494391626598202548653252219929634277180464535754916490305577158247010749284884438875770722044012476323944389438907589495499367282816493868350286471728728999950599941317819433396121167247671635405278624128692360029365495918315807054086028190658697219652202252932505159800549612641619530840579001666319103798889681480203092038792080955905561045724586460939076201245915427699616334251939666928716646456977195663558841109987374458927294171870141031322001477021961252332954731656337266589546481552475381608673867142599586174431493630935893158649337654187092917359347645268955171373950051208258627683617475356785070724270385191870160573234363458542173610079822108229981075505968106365084575035869864875907439808131669194035023743749382443676280890248211376005654543026541725019240742970007606839807400083153734684092356495670544268701345464934802301697303924023658807990000869327543585270349002418616336145514167127296066975363777025575997529305942770422495627587024102281415846327980202410818547381882230482447785140899352265468757031490061422981036164964115095466742505964918575976164954046095070735374162025344101120666502702599481940539572932523540255986595177598394618875165750821141417967029200402316524534703244766297573121838859559481318437111803512084665498883830724528982447931957976259252101857462550937911863551734974347976954271117235212355745378353155164299857719944952050291961051651806938424034321273645685632693476294128966932855767430841755236252660093392275770895297206872780694049330742920050073351530941198210150694258537311252533339137610137116663642107648336375726012990035951755635765709125844069760736270429547611609621688083155492225127070023349957362385086065765804826670923034479941051465612239367931447830529405909424511090271284431204033141652387589610793336467583274020792017804672273099268095587590417746015085469143076787754876578083988833605306596669117886652787548772264714427995634202295327746563233974445115566458618206784283714621326522154612631193045781597993486633374087712450070325570358825568906085938446497401307432598348383622121308323302955848918551785741314758686560041852872670574575099129887689099356503586970130094214517970313992591766516357946284143193400699190111123470984526614033790080738499366287130024184760101120125661511463290424607742958888867313930762411100595633278495105435344786963423694531239550752053471056716682025274853767533885448287270786438805145233568768184043509634296524499255383218886588197139171411794029394224274007443144857643346507971111039360696162632666662604236365756968128969283627252694315046243774943084980816407232907911341767745065843149247984402454703025683335933274011938089118327538158536478154457912143103843478312221806911114354255197969992983591398320355426212218044159776697649829979919399617539418194757569857680899149151947640878538530975650708582928305493045147609367331332819928772989618560901311917497422038354271503387722288789043167015192999458957494551465501622423596671963027552942991261023243044459231064151129343341920143759817974564205120640466765687463364532828673957597226069488656858889393499542173893998581630124429496073333463194271604709249648572816282517724227176688578388193735554884963135165199919713712918155089806823706145440190057767505716730119435089796167519696101392834313189405583506337140230375786917587224338606505351215879182095865276855780024074887618603764369648612622086335978382244509785941407755273408832225863942439006408425973322730824900711702914863499473614773926759960055440129095640573717772933941672866622413736665310815418116641674197644062679156928570965399371169175936082590958629818335210030876669452085060910110718001175005044096638308860332850742977290324801635613539639034290942665406712006617567114367023389072011518841718050008233649883753696947559803060666066198685427866021094709934340990702247512056264991275757409189968660163362975332631742648401071186043059007591649792942268746032681778346988268369059830960580400370031056246909134827897346954257590336558031170938855907499754413524723361360169952827031720162918811928558282610363605773670553591141782305724030622065391560084117820229333208387002932580217507013912772073188737279880728606596730033591521169068290823275378793252527121912874477008951062281613747106959966376096514246790437713594743647171021349183156902057876896543751962168059961432393336731613222033627764758940959912822924854416134919113415633105747527668407790406484174343372510201143578888453152069061300279855385718031336642615059712245030579742814647134661423584295775104382393989940142493310389966028530911361740272895577527122465794047483759531378225437026361476257384959796917826061542933490100787084899501746404156758726894441528761185770840256072674734709160663856078609856300541172745761686429869606169881430698558348099231857735174618691470331919653879643590054531931685519229716953074669880140145178113569662426767839835562255189756765214039091927423311208478913755879584658341089248135480865307016333668727808522159458534258629452236989865353036265108497820076656541103662526076606610708759900330144964715926247019871658754438530082073074033857436230946086980052716904664344427747469539572063973980856755212557247865857627307755530788979395168046602940540895341482614976728732737230975322074504849818734116556910876052734008284189658887925164000493886926980746954379021304290833219481747083530120301798677008012438626185429989102941628974668355987721386042125929970991567001024454281818794261609500617866513232190530991304533898112420920576449079535689596608595874245096840071617714430857544027808976446070137068897605975417207344228903648312549987659859438831656993991332718752437757745293923817106181663118332316736182114504136986256460304966148372884591622100876995553348055816486076489174815279056075282427431811657528866449263478815360715281602928981192663350504662562995764003265672088853028604437134098489885895325903520017702750962486772013757305684739547314932405006026831881534594686171088028915998561257169564542204781938570917855146406446491517780909604421664909198435229553608576614253573410407372454528770822196674409331142210741916824444281721147255470769829310463252444663313424998899321734666937875832785686780237825084138986211053183563694402950766607827796312176245678820063092538112953245549302283241114888892811061498113784207628516885022485281442717096868101714344685296641099519043156529016138748192089233956264204125846827097487381684793118147613868824509180078401499465552863063276779400068781568855549364335769996088522226887486011713659531195632976370984873399434044068300822874442918378568129342399036903491633500633781197848659144431954118375824735047258347312258739416270857067843616220424370552446347900692047729337763972519020685480520715361882172024992035878254583490181295362224741902582994340846891657369645356536818410810902643528441200870179108337564353574059094080129369037656743812142890758750776739272928144874503674245399292279165351025844658230584296593431227046604449180363976091003495413193785111797821516148341250700079369037231270171717933877243932249538119378346118307392279509484158433320069719022822501115965030833669586884266271657618421810819114212297913363450079627146622673080902386125825581150507829836707636757798089792213757806799281063252590300717927715396592048951260702953088014245971162464884518955484336008511181331494997363397480417650981674453599542680165288971608758068957077379265866484156657015058651006729697262343173305153192522257806672952779939569297389555890815178836268559408583662575339555746253825535260877475996000165837835478480236329297224695004387848285394319749319206254608498339940742795039521578452780791912668044807965227616446030594045632138430918927022791610125214937120056041957039694260564458546476934906191857343216957647167190058201823053128473970066281047089508742944342827562566394997323029283821166111373047603039328028794473824649715417851036270025505528199758946602927490947555862447969418226488109837731163148266127406133959635693484725490158988367651469982646739859565921315858938940887560815675764920925295341401263996007467738289431655474152286028859619898871302438275617792408539274656531860947071986652795354490968905118147599601770511397741828279646597960454352176095184658202509758707170479101929601563781892593236870420692827314129400247333546310267176711338067920315120004704057899724914294035701801820806306017262326446953040542282868596261504127130133026195604778495112654373014626450360788383288929509446332380540335870018181748505614041316993569712940646417590269460475776505658181521082586885670461674519390455471083602213032174741969490102891912232903741727181090982620668513144076372693150155864028262988621143912810970825564082826495173885713946055397231277020886082457168451149836846824789678052336568208362474255718467409447058566691146617511456260772581814206134608281253949707157707160740332097178111054224315794595091562251168368726033803203840150767155170986185487371881756158193417817437114929012442657260734267661687788800833209931185307744540150355891076736869521933758411002655623249530703361304904024380838656288663030445709566777609590881875668925781586558282169176552833620524734548990227523551716397554417294422378567939894087941271879404358231177430215566652133324486835478204603627559745688053561442630520251738325240113401944473726040075249383968560429051915384719198803747838882787881526834430138654694489727652202007721227085912061946653948357356914981516711699463120886015564400610388038403205839221561154175578648036116730517098205964658710019460463727280758095949666122229138941297922989196134943817800557385951827238968147001488812985458066242442124700485637174535211847120008736688317377190118184888593660620104774207785257682682400050741450621489072469121676096951940691808471808761340363394741855022645363995846016617419390771927548632909183831324110552934574320489675629226923914300158421972779811982657747442183914505971047040444438827067306246641308740937185682230380597307775136154840749901640131824686852657466330656239996343247298624191531750718304319758580529734385655363811703484617785889394228382071310721930903705505509207088099725097397263064406090811039873358677559593118962351497676956436881093261727364635766874263531846884472344404974286675604325530179999217931274056346458898524184237077805949384518318623361551221550518825309653068254128456664234030979486031561707021310214021678314262616009627091857207133530456931735523113618902017574511178713288214890083224946956153312561613298135004688316775652945533012566597347271762472441741079083446873129901816159237563703365056043199951434015218802358152182760859925745319866007379574324291405660771566349011197367571031217960459175853311765708032903663338571633257669695500410117889352191794354416481105144078223325095128112814088403447541021955057821835450664913657128366453321635470038994029059706240239999419185481754312985086614091339875746277261834304212907175059547822523783919933588082324167925150199414430165175399435104476367331920200202340223218962181591725304031481178070540860061798361465962514114579207255436146882386607542966134251449296134540762777630468673208960965866249013123866604224562348595339129456303142314827707257887073217539198768995164466258975914105424960592186837568170653029650730858474030212252027139612922158743587696881948052447984839978013024057781097825517487811104143413149994295436311565399276163318124323358469064463303926659196017375368462673156810922895946375288656486504618041268145277254562088817947523153781668801663160019074345673749757691916764752612974970716081519357658096592423250023446003198436509364569789117204177412617402742667382674694394313412199663444285928363684083233059521863952542754712742151758575602338513417317862701095019201331069208961740605057635228833957721730374390553949141173703114457389570181389600140044713854365335909732968095736122056938288310067607352482725532417779729840153069834538042825357742588849490005597696625750860295767536297574367071728683783864209202206647513143330381274075869289352060219115201570352599538971456192900650395436020632994578415584916377798446870855945215211101665920606723004957845475343938968028697361661384124856403362424956484998620670992724611526496526675533976421175707587126737325811950218654667629035690710693789547159865908073243993230545962924834057159701138762145333648115182472108099338443499994252029150853036400176950283794529968172364293036268276410260582327488597137721281094293690781442773268810106627068144064430033272370228758139469459220621631815143121183929037240591090349641055169151018387290998184471035162515322638456386487259622096268262509995226988465003617862103703941474251626443679756313089190014676334664610629529176365452428775978364476984714617438353341352040070795400647525156011119435730162208345144345230899551976380467319623847463551705429669156937084689421047665174071232891945743724004259257511532840192966035145460898314164137829252690340821235892241786677759135817176517665211331835520816530570716617267687146016952956119609169881398862483072369312628882067319925997778397201431555400302622187366853744519105989582075978665818866858897873856443095184191010394770600178767741446066945523295460659237742586068482342745277141304542055174989512452118990009784815727916983851216338383120672122712599108049568033929540567843974836100468957481921178630101252640772629622714134200272961953074500774100912832670609096475896188566250554844551640940237177096601502923641024244791848477981081902493644071586441246670206379113649491737857153522453899609844401710103507399902453039799711445944676919603543099600331378304328771751761335168465234908780405887384596749889524301384398805032710368860925150418327002501366969764265402019366135932435032962930281742058355340919801644491961421794059015786483789001293890131728574468374495180982203183764788180811472097915102973294379380885981473363713206728257961749230374173059513144834830394132939648606018183559303985589617692133779948363503584893296168549794130682560663784593385590665790989820042334256170892836173204498168379737172095964145156492018614743657108504731940833204342702051445072742635821407655867701627966295786598314419288083587683567675681574420643827380238026938481751766211562339509677924138429045413141619347200569824386311502999142062489455810910313483043251400251604622373724672521825919515622200420287053679760573820258265862571010098540101378568923823640743579985953650211712453258036858675851023905264098327869482141809442556336026916079877236397925367354150721411074646721860363547409143435705118889233434903407527809095855245345729392551994438183670853629108833362914121389231926645557964052835726659451416152191897921594832848447438722021471357081691015519727948355012198692544262157511049756023259520356885684534880302848177268292008651120799917532714236767831155149545130366257144500753986300610476080976821571806443925301762674222285141208300555125059612601036600569719333760060068548590723485935588895682869359804152562559369881394705598393485420338956547939530387640090588042793279635330848032815600153684105457349010069839080630660635531332955733180021779244011957056557786510206216226498341250542873688345523893579884777014310350883799486592968543332078862482804716955756784184129739841376819388029321141243505792798185630717780395830715613990178742525403294538125720443431368301514628934704749242944958140185338993069852733752848524652373453705295248802746517565505755297654856445806166562809787182333830377287863012615191780171660436482140590138432649682552867977406620229899304637074520484354786642912063988023564411646427060455020056283003643458934640414339400523005388182401947747418535220553534637883780248278858309893053989477717356849132922906922088119874902575270074249006509070358603995198202750918810806228933286778088581096852057468524881006400180572838623657713062749950356924445599078804375496571283830888042008384956866231607549232797120442946569842199606336839524334772905585223372128290006042252706961012795905206829434731377583082606142058141176335086951862964720570332203896677238207911614816624978589826644689519256556829209750383729156619833805740854996299849591396248440630733131319739871939291165087822185570778442604267590452124157051559242390827858607932275925059123493737301328202151762571919584822746768027850483519324925668943610094157132694394511601094342516865758282228133697760665178288803711196907250107710234642625190625232093382664080948048307146792073918259356882384633986866381748869183096635173862823229470786572969357402350221194227739341005404934096149340366557615293224418505780937546246212153077668393263649646579957808260747174415265013989065021071733725891275996116688860971228506502656243484311072597319585271559955466075440168334443719302707331978759750910069401671686062936828213151534530715156994932111255563551833241924413100608998775816087450684751902879346750256983189067471677389392603546130388202719168959122810413524598444736599325183186860065062685345238060279224966463163442649425675678850409628017225633080657738024088597103183757431534552502188252387069747185704107711923620573820537316174592742993046795964152231117576003475395161492055829435885451767228853964462131890557682589907840720519739389034584199643085295571740807007188313554671483314007827200493005777276699208253315891811086282892401598174208516641558885037406661259223627572563302341932838478156181658354899060305404642764860730468526291889606871019599644430351409971435853510865842903908898320382136094893212580651680070265770140087479968587126259935332764129115760218111867424692411418211595464638533889908006509172335792385962712658260623218805205059373857055678127977449973016518018355948389642913889336838700419108615889206234292224150833090894265232917223223609937031153208544735253772269137863310121939779772269025893784571482452101752502492287567815657732288624538787994972558506232148736023625083555303361675355569588599169633344425243692065610307257736588579206239712723210593079479979458255207538248702682332775646477139125747617025600731453032826469922135543855075509199319163080454043623888362030884128690548239941488932864838892186186832875287553160673238720048543381070377225519054443271963293925296084568270042451945787866695517509267079456504312375471198426006100492064402751060298213551713443743027732531161195537735198323676827808281967108141606903755920662203283472834027110873076436096535465562338123299833296131794886121364112895800189143895111639142022746381526479585177158481744718791634227525732569594801130814146626352912737556823230689128139807460905531818222465140374952466203753577549476302497522421369601722208087288211996662950431011760153900734766201358478684511982328162826679127550626332452688585890997391951207418711096456630308571077169633260277119380164378067502891470178518403790074727977339603816489032451482857686485313096633206151001536592516391465465584430235743035263768263737971375021929959714816569397800002415737909195240089113277271061974621504882629627190139155896363187965205570035879864606667630934856301115352365775580673782537344906403834179748320970128712799661883415352507576461223512822567882454217871154991454530306130084037874383633729208175823771258302346997960645657716945668488875419780846890164999244385549480063257974646067062172696788726833843386652810560808829052385573131054268760791300722987008324570475204845118221356305877173248104435040163721660676835301916399067112022028928951249052968399533514212306764677456041427616127245223601542770941612213384879642894751950796214562459219963345018832789478288927349719656871007076384182560771181918865866149794347042813617351009162650341855376819065609953358265208173376966103249665912945302173070407902527942357513607952561099413558736325620668649826959029361068944695153840073823521989691726886803332846742852481144349756559093518513523031717950053161900363631812268539833383212967430455053282303503932123963827183241963391550459407246600444457594248523402247455608308365228114827007743538489266050958137196328520170912022013878078289742096272208038745152060343652674877591768255880008874967389438804913098110878087073834680264030145250115723745598330597391328855005293405301018907051447424771079633269768560473125478787983594496225842658255927017320504252966864508033722700884525839322303134701068273712365825164118764074245914475699340574803838701374682498536354934993505804341265233982670160917517428472134612959126014595749992082037676023738512147469799808077729116325766623087494382917063673994732487835847487649622178691316610651453354897452930557170565728746083442013968584584086795121113208408508699487763648604482772262233194698536437050079122420440049796862848656469379400833111416825323890744468534871559146023847683665561458199629351436430058635086179709920849830406902628480238232751917792376760702580759471700556142549269071231631196361307779758308670452453098784638078372658189492859375558483805949152814117550528612839573515636887066187282225147518342291210069909418991673054331340854275077664893483509381807819991796657569518395065073479536954073145017790944226137080305790366179087374059111228199419734635158720440659291259505659874551570676533235044345006899971566027139403302244377360666868490889010481212665588999247932799097205061059610518362033919455186457936944672032986316157257682709456969412627763000217237351000451292095771133507405703943125628261073777331405330922295126880278597649299005119499802424365659145387527046676207227750274579868673162507115586519682009364169442383114230882098462120383919394398889815315094158619262255245523110881648299876387896262696442656893086033633642647096821243800066914005509796402861879371740442996562898040584321843542618542686527668008227379252321830402979484295820083224278638858323243050634952875933692743558882842590081853604863261820714328788431337153288940303011495311673162379474330573219924112295058717053618314859222110457673283307919465820861797399913798130119204978780923837917325914838760202297487121961093936893526518390132832219320461289293111056759348522841993860900227453484632154258977817054826617164734132980807895080382808288729042331990220715439038998045467943471016559303633376626531479116629071113530463312881207804470750171320664864276451564223746941078049753137929051874105023004469110079591248467806183737524257178617555256725974315542138848467565263672222718357647421766722441360138384902623099027526898219720531625966046261126567400701757969524711554100796149544033618685837862523627424806046291042201397016552203570802596862090072440419922012308810525211481755676566633223734579357183435715362059417447771885938799569836763785917471731128492249997602463043992832119405407940941490103392058188481756971496014023369337554981850952975662958834256514695551405759468545300745103551741388576436069018437850274328533454162043844913619429666124871761853256609033353063067066328194152029222449385223771508279850157180768567591735177808128806446339844103412289970554552263463774044363055222514079547777734227344342225630115194945524545672898365401010030078975801833227221544568770038590661018394146812822176654188386281977322723038407751074533984580313816618878680722587211338651840427459624929972421850937807333609174420235266355120681224016568087550251255456493815352448375643444196408184530354417378421500433799845164853459958012536097652826167702479484297353505744475753654916374993889234067777320554357827771259325066270317166991876725334549041197753076926176037733479479047681236891662250222974331505599062243210576080294379920994513516650346788564389533990482063187055536391224614350827127841319919911959504436414630763519602978479740410716703070427478428554694240614113575865231258011242221572095564768310346755432434250494248993898139810455091628680203360216941642483094758491864601258807501016951792103321394969087589640430271671798363422484156580777990874334993420723337377311843177011249451885864032012074636631410136220719892025183451827187205385265040845556832954481566571178965841669924811115815208550202175885132832300217116824393340021818330754925200536451030010179073973743914517560747005708689428490223629748902723259929249813811979754038143629847743478249086418630910127780533886816597673318127864228316018717969332704474224032907930003701887822728859935566132029128530415948558619843381855584132355133551264452665512438284417097958164464366100266045221630829978999949714038355116821340181288774479151012344270173688992600983128626629449195460223404545088602894323929466502717485310257182236815321263507237782781482333532749607685735657219259793045774588702701151040343589103117413094226538446596063446742507560762662792361130200741192070557513953303585673765533206135939484888103224294637871293548361720238259855210946741875120558439672661711990373901381317210517591881393334125740048208738352078793194936706966893567820452312724374457484545733811076985071154155846611387986588561628060263345782451335714962266548829473402735663688643950176990870331608106738002004861770285091661853335328550350218722353788213208075096406823014269872489034243650292613596142648253295959393387128288979737756723917469789358694751525214289077227085018292184670462270111245875631175399691449177517504866840693260882880458891835995533736281954828526316879973755704907234903266054985005049692022494876296747825306604819769030796631854017202287718703000141556723846938529253409224342167907425927150598730861997413436029747348258763959134015864405578300011100650916683582458613851023641239990750059746572525526354112123694012893746928219230754614248266849652324870398864616711895861759643534178877304923141975933841771982290869777606228134558426012470154320496719215058221757831892061675274183152125212691554860351252268669807155045725808994698248832326654171208734627196599916457513328532685668925272149908649237418261163195356641464045102958594991249193929171516335162991921505054873976396726873834670997192329602627556600027369456513293716929426629687209359267173236328976514452102875527359609846021690080397835093626163582397075772691641885231625231288794433392028180938887127006782153567852308441595487866420682009004661920903467665594928140806481709752481908036923358428485777135887081567763330026100943400366481678224325244306593186795382403449192211063155284625303389034060843108471919076990698541084823334535801633475395048282952042102938504072626118578941944249433597853077971177476075789486711878196988479267116592423909343024711567436473434822776808283026749938898776843417866177740444396521060897448828634291342064293810171511220766927363742573554257654986910259989208146744568531559024663484390691426882706367193073934729672582502925607421974164478436375136232753002809692115032293349038055441159287643793112287584955671492715805539698365318210996134080438878017968570760292032742710240631110197017025957769718464107603505774041792892513856134873588859995956892425186075753746718827250153203985288933836174169892612881726171518832741571662877544869800229998022024658176411960371716818115982372433353849948075461241014103791392523430284540519842361953089068753876557144553271678339673393222403782893323645575783742786638764918532115376428497818283522750184444268941439762633387955979129541533630256644075892337028417614193847771821952067216865536854284460972007929706249681202085495520227717039186688171607850600275627218768537189531385175432845950341843498646573921990849416793671554425871170341086239308232682042034669941534889053987123436162658708244977310213696104720487617081984886575297570919194995077957483333312272019611851647593767446186572529663450865379889637835958616991814675158914405366289739469282699899306933962382558438338858363638888352613849713476257794763128350186178492768755005434219125110647769510259998578460658456965218450066431127771546023527885156706206251366745410394773278337919260371944868270118617058408717847621083368962825673484627247127470700272924488883442209202286441319480365038370478945189790499875263545742899767442050392129887226933570043673274729697190548932147348262378015071810800596917064930142815906960075123159330644680570379247833879891804461764368570286631747329160068470265289935320481162634140015526788667165695706297504672554641674267895504559163084645535313020367020234067521098368800840377543514831464069804967118674090661766465740618204718876559797275500917877181918267180483197061772229537892740321015704162565667753450583980915426293547526769636643671883021848103880533840044066649472527250484618728941767318096027379334143216942307716676440220113832501452394295829000747327150572288464707281346050696187178218471307543220777665331970359690711878513757104037868567040532709251098648865763204419752490938731005766687932112537696650935805600569631345723333722870040414254776170784198030545383525515894812376328174713671423380169720907165829134349223768114717011613029577117612910756573533814885833467458322385933159026483662523188657673541527367016167113768009564666162513936531761471644058319646992925893049566824628031395100211126282712189710890263160272307769438859732739629866357077977070209629445425369536199861435360902991178764321615362884254451307177114153887719324227256059655993230775868271438580122275847712874590079507551939498951719779182345728974256297373778507512696471664827742048446975279456782206730997221768034306341197199421184774424063035532377138661645427485393830208169774631441784048463605072299872216457826353110325988804168068560456774594216068351772894703460141064106144690283829626888573221748034784605646008866406575293738824000457327611401069881259305453418375205305995645856765254802476669368016502765412257779112786899393439991667794486700087331312384527912283319772715909310938713194544105584310736301890752872201562937297794138708165669246992079860670077291034360525269189815896760194886048147246739910413560196247266360267065180837837632248473505480091120814171422481175851752767035578261972305573594946930503389574583576689872434920499813656872315804723539172442410813550505301208781168461148963577570372703342301062245867586692497255047042452919648217654046020859690107393659565599565125342936525241138352510671098372858510786659180354639229235257732691408693816636833432938641889089176466549680004121231269179359468181102998343410417502266625029462662169091346174050059796633329884265466043220151077014885561666647649040733319016097866126193631556536082305276462031582183983461040022692349133204327664261240752676416121598318976902132292543188255368524783379197118514227875757550958171769105394349761903841582396261647226321762495740583594292793695666080386431361707536313519947816156921592177752593096342694896259716903868100255707076350838703670876700151450377067473080366351665484576685161176123327276508284185772203568391615873523363866509104146787243872499071695791684801946970073574660678070739234926095612312448710475255900043209605130894443766023119722193713184645673410824473292863022786928031492921103396052315878456196678304761239075364163597355879663815897207589364908475498524208330124345661148462792610992317446448954718793526698331706381403477478971851734070521085418592672173444517867602149788816658657402601722425565013115645252134526842219580650601071477928295656386302393645420725016989308534348482116160200986433371137926838886643769158112609685814480114914819249932519889214464631426631206610960280156766964497810943375524586704352242262357302997529813342689895319992766782738493107938173923559662694736067466865266703243166684427994895190445078644985723764719170916777385482987747900863257889762849009717214543596017446868857653428462044851701660775030737981110734022864667671536020033868647749703099153076878040051082535591141905022215074677694046364478031270591742819483712629844756197859463082572628153472641067811954058018120114653172442116751725433651576212728608983942174480108272276706246752540470392714772350370119166332541191356421590705646378173339750044266671957158493542069613652958641166254092382602979522051667685151965827736240184442923413393977176058111590670466608803826413515013062665349641387916662297298493279287052201940891227539370187084029979532304182636342358897982992049653097405946772666228596942999978936214198076719967188806869590316790175679581291466512314215927720221590520209626122921930152092704014582223994685805330045458894265032190992228321381271579727775674445956594294192710358815403436013188989914129152723310635795978442258593919931564198107442503237225836660250690677779473373332421515423673449506603961043354952013315066070453865612884528613878527030278101968160019975137178234347899354892444182998228147101936864090108107920433619296639344170827049774077335574418089216427099539226692301391853072184517738941722836775688092581048460372159034385407979096995980914859767671259157736023627155981714844317656582450401612090550934466423867471650669897125491068525483175498120023663396446245432504991634448598540490977401024338687425038808162466647207837128019197864524955972709950160850702620716576321651431824554136121925170058566515019659911133992845785552087490592697270131251471958415502577882259469557569182297327690530188753069671010508241522977844726206154830341448466166178057283105363012098256908739970193233362199938840654812332707929669767977970850510863147546275082308112394273335217439673754915425326242684462003318270784518644358643408791254320872979908302282509972074415876444008513521627289667460156131276417018681484698736966037395370374853168156258201776029898667594526175736214904586104888446409966347593563273619128007947004617026398800055603074144527435537813618471635566556138497934992966064536439331598778940738787622299076204150580620201042113992768600817730425993836354675789743156794871490314634439035598943917066374759486956741409415214425734785825154543190777462034976740333909606044569578859328875322019002503728973951979177105572858328010864691504681464414759724754062304747719567276767883632038910862117941911038401334907563664873441218372667612105318552043412525231367833097779352430379928467261194149621496836983980937627611975671200579411451602404192970027315893403838813526253125962535559776018484458659868667428844616982272711225465252670414825684869923237445922117842529199056626132657798564402043106639560682681579588848821083328556255100260875133756607156680070062966235141750791995009675082015977032438027847010999236742434041050536225291557725657276912612546190854075095895408678850629563161429628499437802037717289324835445993622048280709097003464517960146582836673078143656871492948255326061035130540208871193388558254749949186584928697759468185039235037026901264662801200739689549820218347182269363968314873067483054042862002415569944796483700750004593640681692838669067720182210108858132161207397636943938776295565820107928738118865932329518807955177381913227475483691736957188522388089866968077572577439487687188647496486974838994207479787818060546739095088921716398999566483253317779747220807427849577733081369535811725558812164486104005280189621158174759067345713267044061963686332649433758882518540245846712589012359466162629908174649917185531119613000560640447122645932836427730031161026553353661041444968733782781695183483717472331122701506806983716008692469218188586697976913924501930317747458784989718725549002347465837698117487820597291146167085671744307535234966019140458086550965477666127984552121174235312232491303908125873372637013027796622209603125901951774118647902481129923052758794198080556959039856495342968367279758365465882392566483588840040421091307517295309219694483658587784280058595666049098602243286359018795059318990879795426718769149371313295244042196984953871515317593184317939937044576302552096092508219221560792365979146212634372442238610629761580568742303222783689231995286411034334715570041907187981249813148929194747826538458926457162971414618287005934987442078736852964971574727855979562238842088536189561833233578045084726049806313320811957943794483729748941469282817615468732228614607769413926641961845702251947114304298539788309699233688324272945168568447884551943551206390399747712843546421937650513168770061088320272336889316019985299819777540496247955866560448111353100230323642646142139162457343126055152885762959028784047691862640519800835526044919692104210174974652185531720838110522181917676620959564473645699627176569480958471665218343872141984416862384598524488191860916471332238878347082061354947428366854222819639925035016693878744255435745464692485629152020110538522416915218639345094670153308959287967134844668759825574051665411613267928048433198176332666084292624512630508850379704670803436007513272282076961926397578477965226151668771688124074635413374713448553266422731266095544538675320540450651898967692967261282145378766788289690962420515958331675009975930936755819938410354350597616759651270086375846846246187066132103655221053610502345093290270446673801538832332994212334472486986106344229879310247098108985892711641016055585717604827422600505504979633927052636709109277741238419121438337564030037547160511414348252783463947999010891883483203945531889886629774973427358417746227665224666136150283327358316532559640755826465047036465017677486461874339204703849698888590659873686680879208689389793419261666371674268228311046301492356875783706025793811821757186993326927706038027197754419097012502961142983670075140134217400727437015585213458332740711355317840499453455535654988282531800244728827890165609423923129136372102100783081422257082286600763337782643909514315178369338482660155796753892222312771893961377716040755207508747314525494948517858866584638691761352216082628041771879314782686870706511377446122157157975930416425026988502969044492475096033166203966413877454691244505276119035535504230660525154085007374097790150022783166404185403043279981294746716324217371561656776858337685545062746419163640986314482891691107627520852408649478735447952476677767526776707789771463297438373245130786225988359470232377308205777630671185483921462486786222259353171184364736899598851122872818713591262615661923165952205530349258842198524887019080897006151924969109693613444299438126192337371524395541890428834160806949925791956008504204522566277055246152474402081019411623284283442885308464140504371339975092341394362568486038116569388175788169034129302697428623999284958148146851908470830184756134993392101848272700809598030533055348820096403869408323101136045253206731138797940801334631724192399270372558557166792001697824601885309254306039720779495573809831878130864693405767285481857427870187594610078334913946576988208214576651447033718930368819031207387580090676153279629795291831304387069995204512488557947040236677853313156958037013453038579780250574157229974142806618207336692934256567430115714999088333684010175290647973823295348641329643387904219706604848757877491612053119648085857214763194676594016719837920465388518211837831322357187081328280836797417293153976183136885749072594092905957685444719696259466914064245648052179117132408933959818270549501389472196229877709934551896658954005724036121904373894154590770420026201162727102490483060532728003544162879982458982393792415854022891118003017978081274368747620351222144876455210814788172931126156216651660756010504805656089221994279683749601508158486808979304008036539683357153676070189092063546881326042166516506579468188696078813821968808588501946368935239203712215229246855176778308357068796361950753314916538937310958967868975314566828496350723035914742491602441500091345833644125327420929226670261496486397653936220058699019473656859753550597217409757279611469252669975612797755489880001721991189426416982635650732041750368703827004973515292487469687088270376992273463465475176706173660394456170852818378547097343504821728326181906881064381876386620658222278948633140890339028533280224703876525394071980462889743729496914991422367504560759466767657401417345211825819973053423298044227249759216091108941276890028494397947866150829472538109264626117343676004440680141519967206678763075797469065515436147140229854235876871665196485514112821925535210010159008136539675298037144228773409892785396329205077354052542862512531948110241185691073038229616848530179919277685989127427395295619673459233401331563482588967755172601862526927919039973673272538140060299210814532546561786093466300359394889608755473096999924609493179252572710358256919098225215803856448409222169878211842912766948376167425846171574868233580491705016392259780470125809570458911340995385799373342354825894136981874457748877686449349737827333327691087282534549107905077140641628534659402229388713668432775577746124215412015569991625414441596752244438711433526740796711623298184448892358242570500904686938495669497724015531515305068022950265172279853179149801329969409463730955207217920533479289480125686345422749598767006438306840463293561093085560218690128009816401243356616635178348955803967591060062307502285586203222615583049483601681495116048013122911308567603356048591915617960699789327114985473917627129619362560013057469720210820784919533272919072349200183303460287355403768894105242319302008814068893094469813242800694286135627397176910401235370443637988210051458595266851533086826416965679406157317200239060303689637877284865114227934859387421938053864830737664975253355319636899999971545590636299588664896790740725374046859811920572740983678936056923775026240145767535735626346258679817133761735916564843864298555737715291955294209261302541912323935225633022690126319442011045571007612373299891803823385255320450254377616638991025447362086012734870513298244290567626377776823850962444615532427672893029075718046455219954127295961437953672227621708591742093407032027885408163833287455605583536923357107646130439647994737796019703032530206570113192292408479925558999425677678233224612718631328305514197829326219691792067813389534929865800212378814579442151672458463705066247146700981484778094389744563970916006080540317606864526597944914048082050856144897940711123690346272569811892672453433857633060874555558563448227299947786732170746037759183050395739496567294172824722519857993434204564861145522952358290936158203284096705895202626279820735187416353767000893530230839487085365461869284800506464125454946482648575907026493525792639440697759417755514230482169978858357973438561043622606840293771058893532707771307908567556247342994481274775415619447471060005474483438897733667605317034828587397347211489252541871763459070535294636426165518564679298956029370516457980286207524801413322425053261519649028915198504435104845495940308805531418808873197417610584966225885979653139995322933520358147462129258906547509552299998904462564540969064447284410381554231336173768347602491503290194081488530098091296810748349182410011299842340999603753882516104853955282434025362439665954160878422011783876126324561879610039870615836324223747242709460424490576642792658028754334196716038780216202665764766107625564204080430041610674941525299140086544736129910410425568117710646038111060916593541736984630302504631595078038611598979854824732223196140274805991801813959801230518131273136000497740016413925765369844959067751106258572724205839937338132460859509917200652909229439203689189851614791650527716018488328592442874623827802077512359006096230435858113418715253881163061076248066027571689223412047070464401757626132152242385389351573492768030115347254874934279189213334618698117129815716931600078042641957272030370096905577885521508462758614500261531292335990597689464859049838472002882705530297824538783581487199250279614828773793539766020205875475852473407040496880253290642574275011782643200611227375971660804294858036158285618084221503961416844423081740753837356389128401990009425104707560614163073224978929679071442406988211383601636253838041027167885191266205446917521035146003899371733206173309320388743401940519708983794386595383093726364029298751252240028982920187126003211859852341654039410010596565063301244153560287089622287435362555401998950222030740428282540986259774757832170741462609111750599350133379496914605612180817524653406374808153792501084081356488604242506217653470754842915669158266529145381150533032903206440037409883581683276465019526116335182222316973640148085850814584120837358086426061847519971825670018999722223990620608690552443554502526040673253868474433476559766318455045610549133409982649553678370997148023330891961335867116872436890286129891554112649171496519124486159046791925511909938606538785414388649290664019973378865382118301074688192527910229507003729752517850783957961670802984129292761625525431893902015241158743964659593829970261319414802563659739123569916429220365527494688359335313154279844537010172210700180450475512501643923783118268310342012902208663275554358678063775044363508098196564665678299267632856516414927849923350430191384928961327111876727582144512636704440918631248903429059532048535514933221937265231717992647101564447025433143544018734182693884652954514046211751115282975032662077048139557023481139970453022822246326052135507654489243301686656829964083628523978980017584757038983147453859242766307212845976706991739090157199430899160320912282368277297769389115841671418939650556172859755432676465512407263631535294361810936134157570329125968128597373063592554937749892190309928806893846359611214915268686862981551501701071424486008899755798079252479898718623004436446679705282452442561192585774296640596508025843140895797775603895096459270932143804563722819320505348405691887930618142242731725353903084641184694817358066685725804105324765956042408873163491381266215059491483977375219190963354462628264772952333423939188957014128174269514885206893376464576872031024314494612532601933464452954923499155603711851794828784026826295446340808008136638003697752769264076496121052943531593433608207721750738262514227558206046946385395811631849583646311019129372923395594091555920596789477950498638936831245933225933152485926789356209872933794389171959559455864754067753551603286558839974762745270121405917702688896024644156548595418061224444096750124697233732572320062734624441940122347893548723107853704428898956568450003052702070611532416427300222470492098335563701444402282578270527659826077430834401593685176843652018753064760145097604174870505304149792588566770448606175966438249874468619032034828024281385258402053314969747694935608949098094800924740643067906105073779939419380094591058067322829876793932307393112923062405755267277874676625976371079331611526023549761455224155692009824509422389032777809890038277440877462456893322766431848488266954566514862663850337491467931319863937181751324060211099617542724192339309753507748562578214943289668070825340142795942680458308231792601988543431708038467644497576912997035657324432075616665922937227577639356105111037941479694709141829812768154498324069403063760538543460642329114018107139553235623930844856555073342559065672210179554005056300811093272630180236787323419466893351355783308716315576421047750246239909224155739196673986664514002081558461391616671081829065910916057364781380502607934361144784889938863177616454603565627382608066772266057342919535483720341541892863149805969869393581857440273055473949622764056465754510929227062652351213531749194500376739688093838964307308003500666161791485128051789605486584238144855806629373384148709137640323482857091182867815285381420183647666126914533359137271721122479602414843774086241043124775691287690869488563289175388243191328239045591396622693664439578675928426876082030247101600463858298953432012506345166774243946216348339874478501827917362194492953098392962143545591415925241604344986891853862678457733527903359937624229140498449493685061925557863285603906905802607441828217255410891490326520401220985074389316360294438123736718409193051961379740481840649549201015786263351014418704815007893323365956321950759620560493899879673800301530490424872097293035311052904039493485400314183027742902427781410652309751096472086811454700724148517432008517186436463792530389414625214566409098743471542696577972623557179355560638833460702591503991404088183409309582779091067536506488894972922144921149278714859125808309329207507947355798694503943474493379989835833986627870203437115091851438946737952641471425444671939314031214000144469229011208776054352176212286621772120536960418928591308100349052534681353010503158547959377044573194966947620401793552074228422402584912046684093256790215785278568125014647633701058683203069077395837328730593265788430709051033352400511625319451439050700150240046585081837110493424587098815278885354668223763082002811959663494099405383369229389681369217088428753259918920303257873551677385331001460469276808427330375989114828466482286334119382707271404204807962761400865696573871307235190260846526136376396998063863418193467752295957443889940020729841558828196716844400211969888664689478920000402261996302708707374976260431319988896108533952125057775406085579010490637399538275179368960349408795596961703394785081995172519454086662122357362535679437699274413464201342373674123345488839855373869350366824895990241360553996957493285988206177838488103189744662040507698940299984707462729213725714646485682598519342111133453319625668370405426793112912505883463848516569417003650815647924288474571822491713821513671678229950465675698857253237402063232445216153467847424424985306099342535847806517698580851216184467104043994903235445533641949791785682136427033932840355133189446383677704521474445271353207604976888637908712807892240710129371755419527375763283432652638114309335118560078590511433385482392795168878536069076686140588836417137566930515080792356599523080483664251013617089892254006916569163151602338510723478442179691596725143384226992943242602271537009883878037154646212912654089325950444746825242671938813739021097139287014919617431430118894074002016605443723573637147827865586949514144432727123367602515445760161135790546151315942420022125602765407605915665829439514848995549578841910149716906710107249553032818044584042901577679347426859697312811363611578752949834267190875591370933049243017479472472305757910318730989697519332065534780840149747270622878050530202990501040527280255774692210751624120915634097408530734436379124303762606436615919475240387319967523663684438559375797925358077896155191365988851104175541232634952276111738896638673275076359646438824085650893385348219790058360823517317778213055588209806557597316299333721707992794494336375951419193888894922381492700097496805112353332803291876654540840736299659951120459150940699884008670031706910487465468998249455184284685538514113957474788505520639818886947052524587884892728231233512503161778125682294524648573116111033516364623966320295948893012410724157849741593476208599194597877810582463485296558716651795228400428108962204894647953970520944926886545673389437234827220316476566634746626713519721824733149201776181304824538712402113731744649092478735135146969405182683134109076419790857816878900380976519858340161890822240213855335530675239058141104714328301608686813068446713673032713482070089282812306436051205851805229190437077769528742583111119200304981547322026937911413966589609002900754624565226096149460489026001566484629870772911010814969840257936677297524296391920695655577074987445814937106492738222853680434948727842291155568322461516021645744970504118323800081209351386170328730327581019903538190565526332100876435367265944972346596461686560037089715059232765482155697350809087093229978937402207924504546756664189312288902438308637666814838869746915918980522772174449284799717246646109060950571095994896309632900945549463929228300532453808265335190022859369584477559475368570094915161521779791815109195806680530142496808741033643849322493815945028461308243669684235765925142316539497138354052760719144951291128462692031276629956360464387470828085452887720700951751331736204157113176538333234254979081531113896323927225884102443974667606157004101889246339721978749047242453528491568460513826379451961570191550651757855127178228516028391684747954900024854069863971112419390880991111015547859517481617802274345184906177597860061244945555006400571681717535957613722607478454327463641658553835443798799310236714974119079488074195689926239973041644915198579879586375424880493551875293663938436550358227272169907246443550034442435008041131508616026505263479944376487264520516280650727561871540775839664030531434138143337479938422711022247772892254267901139531255586361251096691506790891401627605892686962712495037185087908646716141204272376919864944457039306129285742393720443449775411938999642979374553461793640706199987241186902984644734389069374294526790658621254070029110609486695664241128844124240876976813690062805474074979004639613007029911902949294293750590078436400946248725160142730146905199178159779832043078795400877048043284132295296675229694585263996177119052945997831879375029754835472993436962210225478798050074446348128004854801412592133235801416939036284059122013195595840506172295717948034033927327305884512577981528779134727253339018760049854416926342361659427321838229276305503377990013888864807639472366464106812294470619611991472671007121730951255655080448533028281849308437610700566327755162645890886014438694746704560208566343845154661077200175420167479223701027274271900141446975834209688962331332420970180542363423799679583490073852622320412661718350272448970571886889189751837351145626220228498920759256267544908569104863663000010127724761257266290984246220125172296568700158007551027811362858739960575594631203175280980983779117647281011191878534543323524918076236645262519671890416935841270026483322669478399554057434632823594081491016198291949663610463232736678681660119836160536771541793568419150689703984071473527766628653738474228136699036888837583315405794814407358588179549300865957162021039230457641438551173610189103514651460420360715225210803723319595071323135491400222745312650295512450780864796741228188594911803200058867136731825132560991311023680683968263592611298192035689626234021689310395873524200730656797015483004226183471047657293664073707825215264530929639670113047790637808954701136481604827695265365627420088861903621477793086014869853890264543633903301693010081296534021115900427558196305901379116151501683455792199279398177693624372530924429544644702118557499250451876863599965474956989278171435137047968460711090745014695054640304592536283052185426699428854862275593270073915802963231611656415097136292397567653868771481747262205069474096697955689259883614728338874854909827414353428146345738804727508414039705038218948671596185023343116111546171118533479419897758205730674985289747495408358730370755802762867940623911141457234278442720873615137935230018620762553702238216431419323205825397206419617375089782025406533461509422547000325800082858643325376903201114330630305062842557567431930565910280524198132330091854492350891083574662168590642870915689993114060712275106713199751203129226338461059533568736024267428044480164682396402960575951226096273570052179400067576959897452359319953977619390605761828429343551244945712618076222611407233745925231601592831177928407209911380839216898752859314886578519362330987787160053140918389114072674625536085690363534575250744545648555925740857183497071745824445134563125703229310525915856959183679041994332034270281651576692563024896428383866234484101893319870124067052918079897132091879362506953340779972657353865369820847894010940815759407860084180614446637647718259485395464237501821396983010175584864721468334318822635768349855630300099541712094036677299593941167949382768961560462634260787162978136445677786922971695466405859283829150269239790905485748749777057402459251325596964193337907686041711825714904504707037072142230456800373130686276285510604690200740581144160266480309428227677839808282240798295999969750224741666994752669521358458135419509917625804934875385073617253819193485970889007148236167056646396392122744358259042010186466143334014756459056408964537032708056579342621178289443741845548642067050860558071375991294085509871908884939661070741978511276792479026217389547552559949863235241962566726638372370945185517845749718331732555419688032711055149489633886545989046593365419882688301079845155448035085995429006799707623403561491773024661580614978522194898390236839171406342338200647269518728051080172439683324048940808356063135655591361426671729143384951265993431928584116649082781470571236086602926939762888835831085897700972513727951263960613096517963641948739936452776790744792256394848917622794466795454677652586870234606702709646030405668323820912835011581164551214322131048148099108960072438669520383141790638624911936286061089887110836875039562102102178774089860030290117760100656038051232591414876875745096686543587714675017843149535774846045561674692353425297974327524056562636985412384503409167325896213389084001733546856495053063965166735757293937380956019131678992008199347701799643938783602159487769018474685375558355601270426874527798925328355998172988258738929781962671368904036444614650619597120491770066051907158267600774091533902171883831837873416648539907510628097065198570172898314780178823904734607528190701521628165795396486962783247462501285454000397997865180974404863796960417834340048434040711997433355385260555252662261729073180261112041027442655732013188145690085653598046672132698473097979063378572106594441538029834180976827861501662052098043679083735864260973161528489126491311345067568851045881232637418324700190764719335412031092096085897365868715672747602808544214972958619482537432961308868533997315894992635607720241363763873296025763188749547178301135201662233896079904467707025910515689979216535486803037590770102895452298429086600299750731926317944985888296154078679125004891152826734431743911469514632448507464036991746981291159791357507884286443222146441828144722808896824615329402456459237403027420655892074986913477950029555362236057846660648737937762105925498729499635801680511112817071698540657596197745064101193020956689808742968856630913894527916258940251261717537945496694331879627078238620488374842525737715913620125636621054276857274751412051046237956343751867862620191331846742122176839403189647010724507731365883004570098329279977573857175187987993653717593501826212830887399623675263659938459950359610906235625842052180205236466939357025301088836381538586844865126885419942899028099236442708562245870160574865698572705294473801065641944501859007770081697221506417441622089383363380239477040824955944789723024348475298799765728418397854318266296263689734941686738361487348884236133579198919966282458322658666589429029647281038057698874088677095722328692396754458635811856507441218133612500912074355322885619600550398086171937764849921311754255082182503448168709019222563392769822859316763000688321137186792295469169962161471847729564499893048578035759670144566375036171785615548968338436013339035704422857952711222157067815637082685199744480241688617064759798842462583012735773832692945492322748488908710023625405919837743988892805959449039084172143947005879181810117725866613922305606342266795765006634175640381829664967704980575846717030667498351367534679044324561765614369435990459043493228268506479485016076043877252953804616105468337750595075421720722509269112210039673838397160113880353395939313444411009242067523913085951644406703048245016668878943165287863613440159443985911682061200469841995420990375645246850152046735595443038842482337318448727655294267981301730277939715204416609842301014503144394479569007384694110344624341245615805998128748687930070086050748380851578951084720400142878462193714299336204487664499802193696568525860028378071783237214564485489064170614146499482320449551423872098699416376714484466869428700753761376635437376667185215384441242982162146174964613362375299873196656132117655947049963603735113764455282976740555762839735932906333913177317606164764237361152203492866682381801993795216040591513259131630594901980968316195522470424467825524358262999640625821685295326598568773020735384570457876465140079364024512955855348391427461372310423233865483516574360779611599953494890577381842857601835398869177531763623429840754754974193368858960272600550224007305168805049851728140448157171933130481238179309174830492489280874342227097869144356384605173106819886288814827930545344461766276852823106116835708934238433491493449241438673644345193999139959586911334305750852220168892119414008054521856836731187079168414902837124231496284975932224850211233078209323118749486303314538241122245163645523396637638608373984348561336507596298979175231739862451170077200359959103500163624326250370579583403925974233336566764883551627921474877227406749845763916361193811224878601302351925673108712472272644292864082769910815362423407738229082098058136235202332315679688686366965730153786276154105692774234855252851861069893027221091332841533544704763710216372606092264151333934245208170634633954470242949495308676537224932486225670243053851054774219569606950421019455017440646512497554951578299630198457483442944959209743107468531807415695211851670138289077624463920586776406767936614749268289934851165311907476120354299206024969008879552871765068167063282663639765405485583835115151385148324475918549810484085941034965596043261700465476776099652459886457345660731715460944021282353602568141898288280341889080378082674302623681571829665781504888847707020606467775091474646491415208229295731556755302068558857449723765552383670425212364411059444669274437624607345524221236176935441531724243828596785826993819251094102116262649274295084838065727561136443633923205860586975364086326513239903901019084599731793486350734336782741911102368922397708061457844281223056993805949993638844151095266601852229464286767228074088783040971085647273708171538515276573011142430889779001872492799901328247319991647193664132404961257674669490289387521357312827423972903388417341993868580869520993017706070246266638723467980543554894905803278424757719091153787088295787202375419043051570496893550104989330338147023776523610918423151566436982556328786498355932306207492928595232880563257558383344593319141399925537490911351306623879725888603564174165842994018291899115997114160940398882794428507888713504627050192799323316095634047135229160880797943416152695070834858906602001061466463330386259304920458784345526572981875067979677450486882650697873139287749708747740117749607319017043070422810263622242198859907260521733307511082900111436877054542080181743578423897314028872752839264314016085578128723087710821226590708662815791148512181952441289574890832163420583645935630372528574390805756127610033749135625882864749805663165067742481501111035294584116537009615431889307861376775817645010452897406588735987167240278661921630742918878392016124827072899514492594131852936263076573624663593272453741262417060049353345966684250582920607689883633024436104127625937214907661731008960285480376545766308155433035568760134072510361212680699666666877131269977661242672299818134805613609337783071090330355472630628673236077195996744187778193403271992347856550455456640632205637645576036477723551503878527381664444994166314672297285360737770396957615554052671955786477726252147906592302094925509556707444605087865943326679331807206637027937478729838173416808752476501628876269408935398979414762207488817688865768609118164822817157031151467879293178227552020513637142095432364208494091581916163547986890825744676334935312298125818653951256036233347343655441636730707353428070215880750960860824261760293168256291873406100561126995578863294053423231793214146903885908970828949079222439114459079748906494353323137470501891815009748319604378092291281676215118407859036021907025591813493089957304863391568882829535758051836128077124322306436654845829312168096334893599494456054198685510511800243195246605785633652485739423467967736509862678137586312604340372382091376063725501496593878041015321283900765743048178766770071287476006688333730748262253889646240282498591164246389053367167388446765749390326309129773928155893730165295046732838015830466075835606068081008513174366398387812474938811132048102435433150874774082073577126136725039925576953864170517265153463667062571818000005324338268642773199584012681745459993608259423193154959598597250416425711225064588005397378070647845709774189402981136798104758184513720085586580986877633504974478679325190538275985201208813772881136646989374951005658563681485883645830102986051524991283422346046881055596653552071264429000108559382818199030485865102707117495873136304756638802557688027319575984683705857083058605199234747877730512587636929839053778925551673918061367172813930332700715741131780661805101575538931822204119665026517882476359841544834226018384567562140707371861981731918906665922869289686405383532979963603712911756734240347181225511673015687924178012612793642303835025839236887559568478922145079089874517326943395807491417180934790670834091299536804402817845236769898661826551180524608429664626819536443665763367336295691896573172895061501706944217213959902815165726947052475401491520923046995456881380649000874048745844387988211184389217635476435474043072490989408276724157490699837635668352990410099631717148138107293607490167413330391727338303554208433685337904640627108087298367036135728451556477790398586134670151146905289312897729628980193570764768421295732540779956066357670619906354821974830778833073457592491122852430522937046946725657267834473689686319301454115712265519566247524120771108938659034954309620621433434479721696399405431798750509683999757703527927346651197172914184213567085168117041934032749392042023652904935217184114705933183011797389123896622474971427908943289587890909503876922910269116582184775120456143450060544721620375779583631770705588065333365231038247325195849313356893560246202561454361152304914346011505104268531716833837125487902098503031452260474165767166958053969889774101166909161608857284474524538643057333408395634486865265420546562865193761713896831454912741105538203322253144026484846815554306928931868279446118442548509451065939544719256586598954376838870306338430631912328925611560459166287542114557703857330183734484058965944563913158131916696564619790843546739551286386348854365664316380031940023123479039804794055860288633144733562211882722739460567585103205686762201222364638853990347502112267524692896632675047683286365438303151849134409587966392106486097046531326892749726422669412273590332520148289719479344096596284332117678663483863480003226284291157121390717491313278020500209287860965179590118494982722930559966292097050654223324089001902427243087362743130438053061248071302659269247194833535205506557347496905981175483654751573469395123663673256422236737745501683860012896138116099818638158872024410516602080737437266615182101078977395993013288943552510668254639410054463830283048627029474590451112034906797159210612383336873668269020149074798483611677980960372528566203869641267194334198317008985425602966441161194728597820582150604613207882677318684789068721153995441278784967484736871074080450832716583088831355825879093766819776232297346015939161968028904258469769010131542573060539710200073781531159499370669560867326822538442382061969526131696266193370973736680815702563004024877365868495542785315878166495181360821541698929426412706974757645055947081578577920470212975543617627503677137613777693355413720631249090569412656494123411236525142301246790980209841968016473527439193975705699649077982269418918485006862246577771789524991439494273226206755469374966827814081307380701766490789030543450216760397135519201102681815560296619582388282344216059831717312613350988029347643811926927102420322860409149963502155209586978458621286270096404536198537039716290159014286609578128622500004652089760263602359691997039095977540850301838809633469375320247858023398609797347399460515218962601620984907578165406802818163085199946264063217305760529147280889726564185176587482568504962413520201537080881211543297056267415696422216692980164229458789386097108891291709086333653925790656573477515155383583626035592273734095010632801709274855226409355803775028466766235024218692406922166695953695778772551478354177652561164538908048540122598952913606988932010276467846204007924022496026619695669904748121638076997589270767562088196902195866986728473459184650561872280404366701972809318674453198279232697377526472250573011910127861296820147219407596101013957439837578637640528830864223615703393510372512874376421410854015287668739414503965133924901052629947976933679164685356566716391875920264244320770279480469036446975367483098319312786864498426472358677352501885287131101401447268661033425364893272206032141358788579506186462263195070892644771208238480497535433959755694314787656171387868595532754321897582630883694699792095206233352521074268738302559239629253842918752612836321819581312242826789324511712658385688952566553839911968671717703819796167953848234649187318468455635948323016749966312363262931661272944449796467403034189120760306196296412630112697926381297633352070218457276268543103326020223442135231555052346303251397288041887806985431663644037856687717546437468587361149512570213246383830959871402174701740845527519543839933136651340198268436184402569185314938519344214532969552767387474659958330217732336574119902851161458759162433675522068440039210836833789026164516989911639246136477279346052509199339487245266318585243318632336211499761043200372743676956812063677003256116721388545536807850099026361893598783528477838332859718167663790098780277959621794183385338926854497889482620829628856706896035691342691388111603476021706738244782632015595668225737254315768204936122048996229572701681087099343987297274197088192547984352819674691597689291998074380630397618202056758050767636521861246977975665206744380118372180321865913103909559200113063927230005948314125368770308024213962951210720690833022163779388257867607745545456162378517125163003582765249327038956071081772660462527285226808359485388361746320865267881582952033265514560909857580280409859572141945906730224944331604454728535767263308195628758590303409945418700935055763997195166285147373306744005658761575626480529880689730487420121478828858666511073592601116492796252589014337646483347743035837464771126910996994067926403410581629242423588658167303137472707587428405409314329273519062209647067446047576458495133012172359927690188525250244931979232743788718921450513465645324856137324183376501749270329895316469937298877677350086120741318188579220562229640108214581175306547644343388080883876949929470028147334226560450055592224875755363493916909048126959145788896179497699289435331905561585443072197726195905560489513443051044888722302033260704627144255681079157739322422908192711730287598698639644294043465745425594411998465253713728086079050611243191809834309647376424323619191266516927659381632110804381000387351092998915574772782971350608860077251958670468916377607573407634510627672876841803538412206089540677944731883287162516396295372432560691083532990264928578198881922959285270656109612684665266170528964273495962218470470747809064845315130638549600696260718945006571378164966162898070992494961831964367331949224835443974335190901313124354655210196923423842457139397366676289608277523447745153060576634516455442980507390748408159068642531103775674662780594729229444902903899304995317029936432142951330351675796005167178108960825211863155510696130427901541187768511462525893133540067066239697482618249161823344009691764221815504788396322097183494086050527920481169603450615908790308031279413279016520598223639253355181496096691543386205190509044320205287288149783064504403744847758015993566019553894888292111728179262394097237068282514079239912457516820099829230481103351805066110024000587868168162598132199886388893265265408257803715415092916254117986723965213617155844278570011939777498820028155920352324278136539261984351290871595088902535117709386075095981029387795733553791806026310589532756887553414922623775268129027104076549559339859387769121960481623622916278459149053659495300519549476010478467699749862533117260760920453760205374617675839240894324618021455250916585406989717638201147510386165382651773910642203079511240217052937746232336390521834730145061899166297104022728627917880744980186042481172131154294146415037874784452232944229749759775069646667767101469412215702425403432021142668569589437865220100878762016495793801373435753458166441050654832425864759942432077308527445701553444959285517914749227200208140415665719284828644368205630958161085761599687125559352170803918572733691987717024842309792266549488651291187858575953631148493829689607936552632102504697423522670875982042880048626756017854208509260487208396154092817107616865708732330242614918404974571844850848290039156158886178392946067998402048131517522049752067900382984177423785717675641799291155078425085691879030302231927268861596062829134303818746246969158280428945239040290219522949072672250046035719198377566417561573681032080685027704062200094624196413508781328944509249866345070591460933121327992595185843044226269702297026607791273316888333879328590086397290908363282575759171069456828840563679258372018470922491474179603135544554084564995915213370878494948473528549024263347650676413275466930036234072369560628471590902068723366188162700141175858289217339666765118737471587413828727168257088028809930090003918339028249428961683403209830018290450396152712088480648752765966523749450185337606713918102260963257578875920451455951137237573303709549844773616661402712016170079345657076293491944078271677621400676258415051476491998532152363855700020892498272147656425673389477186631968988412179291839169370440799413177830024414942704675975792733097232357404645436182452996759924415119669375851435509803931821305930537549925342587297138364773739734933358144111511217529886345294149563613760826615638808277312965540452732837871283250175491965909413171917146699194341422482272845570015605306186199900027348718623994746797650383431525371520409608100435446211402674227660981796923358456712825561657612738579636214460644474226655873369230761340959025299963168007030930430060332065994083834825820631241793170561235624710429391255612675291537216524090448756087486872821369046104295393575223175170885469133333854981959421363743433773044884704622127073086806950034444441647378849440792888845166895007991334469270878782335220006300209089510816849308710947617647952046617691819974803616070960897750853974925487343246123608499678255857672699760038183708726669301958594670892284226918658393359089421315952217236309077477956836363161004588051434030510357364874013105736765855580656160080671352706118337148348057429484414540306598542351588016120801170726180095720003430884293787692544529614562524391968053403949280428169384519905096399152621962638039691597032754366763021837250449892556428704729166231694524847969166290679520288015901939176633938042880081598084681216664138939812977582262645230258290376178693266251766623032494979421955197761628495968121199779749947564990624474278727471414947760412854750256249248288168212006273934032625643886555671986370801879029123799503744901734412214224277764280306242663913523141258024061270339371155685366393264876914597011960788838047101049572425535721689241378085270084769971436807881411418863444647171420126179429845551538598860104520568251030536749592728443072511750787235584414940279774049746756425933625842247213104666823148088628394439952258879441007072694185903100726519888634226604501771268771874890163538718279102235540603585302000800086858520029334517512294826117365118849049817268476808387691159409743235058213157574089970593094955680486689441531184148651103162427052334530525892007634638004245198353840489905557834452442320439340461024205642020210101370378604263292016057747582893018402134189041676390409980252633725116160083130584460406958217883885464083955315515032530617729927411863834372158242536585102299476783855843146865190171138887007425355978945811356599157423747643161370323763572040142258958619948946292197154128452061148298625202264104373569579524168499514661091811588605033999452156371751452859754134861020997428917809067243680882145519391477268312621830765699836623649370625944583589675866011712617563307139460781083529024300877132284642101719883363918801395738198671384597060911070146173774673518143667937243851280005432107492768135845653409741956875779402344988002603346611724221181380250214586882628991774905014036228370117224443017056942771444431327876289714468759499282396297697904594292314720613847388159036316737335970601620670405758603176232002814474613086995231796862027108188061323224540361776145379085860731492811011145116350307727182706786097614277332988801545525530752770985038185857366915084964014176904801621291227895268323615137202404788991831897904985570022683806700300862776541689943448961525138421464740354192591146701769277738348934320430836144596790226046956767801335442304766773667526373250019779222523057050408224741968952633714418534218878738554283384050939118032327305637364541879360464928151106531489481847877033984172179699139588842240845764392895911311420540488004097519387608701778006599141337591016752939654508159856410527887840750413436362471644202355730844001079363265253280626054619536435074531682133652037814454333391526514966495131388191516125953145891469228241329138530696398845154938021438879948543396765230581773472252646565912807546367488885513756856525333415658687189322248759172417231812129442365415795263694298390551443892044296336041186621338010276511189152607931999363719788618190976975787058725486666596689209051327117625075091642156477053193814724524626624803413599113969082422294902061233303735497671758979576210759076066015897591576070214999015224058175697645297555501393953297448316237113396882095184013778146003891754942380698930723128372419656142012570875720214823176517550455394618919619143964219144786394613185698352528631756780749489738187699754154085538838052709112895913232212206412207470481993241350912825880717505615355972423219614052071123531217760660209658616317784550557470567616376331330441593614606739284187417486639610898315498634334425348859275558865541559601391901845290743704992576805523268899066765936749399791548060591221796710157869148334563724285762963656163083422841924635959960442401819505680936906251300608795000692662325032896386913899266857608266413395825850926917649736949658185463885970049325738179431773882835064236508027876848810432075417586719511995603200130136199754998351960437300982685290455421825602350284443938027678641386986525162379323297349688268812371189140624626385596614783177652594393730872861268226894380282052107293988473480315238338763602603351654661125712089291741263015988854445764559768909240794386557354716347625104493546390698988907738322906377313894934317637824267440366983137093860220375559464536229177997234565654343632133273151119525192818607339070687253306493163198909354392281814122551588464225173355163469176428097384720709208670768924013754767891547384754451003149689043478883752295488064055923619718806498330937212704848573218459812598720057289814175333157944417691761215864949839289139249316513047956437455954522406896496530141283140722801730589397106235027713667202392225647705467019211040614125164709124810202076126080352595414664971304272412485636794717405363030864476942207852095912225718931929138027687143569481280054053510025140339308327698877358508612554168370606650090520800669162096629787060622519272394935488982243546533084573609840226933681224491502703496822664853433202038279591457098569315106712944349476354843468846052510020788018032980620059362170407037957668216367607254710787032879908887136624806873393869009231544473746711434907165524745006271665670514315805093100987788201801742509175724801440035621709513974309517958173991219818260855282702166293994022501265518977600764628774716270899517216199990431132283438676338325867953287432862247875168046574492272653963877178461850068582121389478517684624973503597473122817257442176136175857440586445821921437810390889113873769330007835717702603099291177823762557354792223702710102464794447718068647270635267265988970686896475631367548097173775475924401039659707753603488313802776282535270244013372364160694254334810499546194546013985488943355285723076117907682542413163772468446467505485114006610104469570181968658230406201712960115135778955497008080105905955377704737867085735543258327099152550763792141423601235220527307476344711372733173188642886426377012894503737662942166739479023707914292291400492989589923574009787817198868095299231448972699851474472907477119497974956374900811911805734224839944920079224469356710958491038596214362809117868855502133479591449816234546612459355721551017452153898679738849203389262226269564775713981128931892738605370033834175952937806430965386976989769311068201661000611757805065081009237659286050019139393407866042571503883266188156956358109828633616504544016874483122345854232216439348283842765536764869883501449517542186157706476922022358792676629137323430291767599438201275946587734299836929914021815626646889867118842037568290839438731126721256265161058053249151404409941880212167462806129804886225145345173878474076650066002370131960023525068732981935000389434181736831058099821833680066238905274373350394733782248253667160496334341079777103349104426212979586234150311299961468492382736470957717300363960376058220044627212342312640195914459264814579497713667562869550113016025997430869992479156744875985495294587021141438837561525720255723758312706975693126228318159640960505102615277307012465980566194096555185349510745581045266352662321331049815900595069812821815731747441743875304477335490145161956131258833319258869093724433405801086053702119118443425057263221011874305268635631950674300488176604992513557861842101081431444886006904287273480628265669467658893320243800770044916117366944284592029316314954520761340710006906390811353603545957089343561346419355803624347966922981422776195482187503300332701838098596183592013709874065612217302691880859636688376424384300483122478494517843738333805604113168262249479675643828597579978619161852844264800165552461109996883157367557391762290596713421712936602205606246592759566241534514833376040132775524857512326988266162033624098292402235812641167599206233656833878863319338427365213593148996613171553710189527329055577739250643679522309772434914708421496677354741904899994443169706759310139556053690378505675073102342876986379657883380045954582413821673942062305138658106654536462699434640627612132525757251445695181083605430266658417290232825488744365855356563418307126755470704412752113171512766028621727857663412024290362797561836903596588712844715065672921680734695128150372573316793343028367171891076708433849516117763841685862844264157216613839773493726760825687524052027052268845305240825217394469181238620206178054989707697491119369052338477049319885636378863448061959427451890320455374694436332020102345022266267326918547284767137625914578211020177919746180704898381159919440645134762892822744712455617948249626071401514724133009580498969164725741467598449112685125222445354304369104787566466170239769668493885501771884512370992603110010175126031524224283345993771226582671702518507203731510036542484217231875594357383086413941401545165650907355229803860424487884691024849128275495430304822102841485227348036333035669240693504809713640980611680499019000744301382078995976661104335583083895287407714071635693485022422767071379628111084992997942015223665690097415495537138376397025136845926476755346609099974527076065112185292156230922170774150840361159566317950009046901847325126303668418025203571328962231253999888758287820354345827639901533307222494573066056699443513470108613022343989885791145017563623617029077414531997881748113478654908994741039384502064110402889708279284193769511102992882785088898707804436145088476574727638320283910508173354865968876971353421824494179168442336918462471566825337401126322069048381628078730545836679185882276116477884613428774471287173237598754383969156625078313965732976012361149388324777014951530766774986463682971640443276539591156662852144194148908772808436466811228138444481221502939553356504569543072900496578056882236694069148066165515655972514113260035773092504342637191589989264412295419860823287637610438728875541574855307183523269738433026243505976280420774908206566243404557217584048694335903492072392471360900716247663596993261478365887560906381493355140650300226601684430021472691949735104675203738340641047893576950873694345997979010256885435851944793698032481542695483398526386692108672818414210530133174857310903085530624338792509008151247729678172691022589237196421248379741385334224457517464993594781684206340346751005897410183199045671649069675899994353041702855172863942731517117872325927522718402297977190009257693766739369768156108706896769114388788803337216082099885066235946678083747666235479850727567978886611700179931055193745318876847857327824972040018865458030529803535634126096971941042432444953692577035654482383390426716044208013609539891624769040470855202077035389206935500645065911415056021399965960464836004908717806641644037298345679522501342292107737844134175638071169196579635506191934234487312469518132789959438128551621624204898837769551527156874691190894068073523239511912914088468241736235314972360684412927605903743339530336403388288856947372016585341492054084091612241841633632093023324038073064031287385898618167994205439043528675990711120791133284721441639902475958151437684116823135867147995579356491274962145013829533673306041448485531617297092442431876282523606399038349550427635832250466071101031117588546994432011994606329568563861286945025157477425279926882014940925941489296181105223110652441547048159757722584028900009358336678821162314249571841021359084436407043345958865936860558904996294557694500960694780170926192925663309565182866943319049810779668589241732364512961040584184907636394145660698119214091646515925539281885777052229545645154760906429127559935668731436013411773304150667298787737781026814824528119248848781543479113392075715079205101459525155120859455107736186071889588358820944542399728089238820638012337730357634754063705061494182063111057719806545246472779898985340188960405796565943447814125497373231380048997533231684564004650275421760429783048466299280375463468950733756137372516795165915456227482328217400759677978661097650744210261439228600820307678588306558489212503752313578578018965827939334126423795421799445038990813404889669460389588720940755582383016610789380859753110115874165502782794066824701462899646998833104219617835594175268569366304310785203682367148446841574071252762741420275943060876366948065138851760948645744255019020548973088304608241780723901976740875227744623472944267844965351308050146262822026393458440852912071636912824965287757282663168961560914974153920173921650489350472807246434236937266384522272716072362694555641915043182130524483888269261666264995783110593879805257504614387480116216751779207827442560245300954537648142603329925158463131265204814751530656052466573748330289399971800399035470639262451282818190493850254062213277984046940965113459620670215179463190581832983314164310381110340624766511217723113705009676799649673779789560158718926704324696135013128497975142222152346230330200450521456668220034605601298700256466159479055156802269977836811232225735710065665077342675671809202159005069648597413967106671147706176475723995090240180306494903023452521742838099147988248320392658266277262553840349419823086290648258199569723342788273550617090269011816215576322695222460626651121855239452272635356086728191242929485489473243819744376573573067907602248586425595559628104770655979241207028864816394371188341254200823245772291025626764079066182712191924669349558525078228235750052091561721942951798314581792822965461063316088305462657585927924425106589302058542220645104212722969974188842329839785487599078870809579783647429776826019724856233662466857251117704779506718138734237152831901661498875550083332994432568992631082164407766951654924482337726489363251774804036023918955755483065373383567874134681805862683393252080808011566001973647004784816902498235870622285884627542653729050430310884245943631801361318865760334537212095293814048741995729231841993675500955346387799741926988743461906673752515960456805763633649646576292865802991966616929688525608917169433532811023616789855391695162646900667144533882534900178011006132344132534293864704494292445712099938502200956972213719739437282240402998205981239065756085164524060601708313342946865059449383404297511874821279818094662992368368055293353003014821492823261627200945655434468435629207932859710473907729538909036188947789635987214869765508574846385758339122478232403313270625230201883025296888785758008444875804822697411613793677332832055348447550170251532871669145960141764900187449176704026069247709857905992695195155355393777881296324035370821156510383058447257261753628330685390873996200796023543947027170839659373980244293640246134270301010094336465100399601373563019239129246617124756752707407500501194753805172227985549031364918613119084545644277454334632818605356770168193023537435628988655069007858381279187270936895236415680039795690094138448355382657252371110201844545128384161586295609512732122167810381804972139352499818523930669545547547138003598272866423363466239641029893460308118676803307696396298040730812118222121596667690344120070698506009467362927395815878083243630792198095540726980190053730493746021669624181770425849427970535362770147472514665858147503172909732468594919859951686558281098920487025676996811315538640489603750772430677873266710999509726220982294816000063515549061278965835684503252513581172277473792242270594828388420442976034972436141115282126104636354822420421540192541587067594230609830406162418049885799659836276613019400557212857053986250538689577507176899760466709733814738843768895730970744694016065780162517546312518291401590010489120695629140760616707989414377991333508620568234531203840402408795972428098214276392763189391554502527183689174830860432424430523876740135838024761713599343398905062589528009997865446583029311947947986089213251531890329562338774025300911226799731964374652414750340081014941426043287843211864780972550986480570927277239730227828077751327743234537356560274290542238341302031463162718790079606937748375805459490846072515607132443656940531949778874518432967171778646382930169257712728075902163231591124274436485886521857600139930661223795227634992735437898621628389099376570858982234877420609834070786579216154262252127204091955852912252054605570818915193484618603480637882147010033460698261736199388671680881544622405417269599647584492677973827431143106017958769467246057634016102501238626983945875218905533558180696488772663552373530715820427668542051669599541656126356207729768826471593557664713520446260798446911921784136761446450208920293417341055506276518814053620172421371298131734589940489396006802780725779684565223458038798979371951978217165136187205966695148153443850074514946456068386289249348249086607873012996686191371205624337514344459753049142239069275447346861114775152633092805400515375899241047787889356922851454485630952735129690332495794712611938896546321782269530761422015194495009077880004817127565846830071739944609317607419350368875182496452208601477571140313859233837382270841172842299430509213997075943628663179939534514408444756360497840284391602586926238366779559458468451061240919426401214475231460770643829158162134227246507147360616158037484026565237016829570547103442180001325561755901900423321602379283635928860454384339724775394967897396527201287713249235942876080864050660098332298535218582524640540771209793788784999777878501676283758557858016644499995474569881788845376495652659916003587813992467688689630823552127733500069854417855903131435569118036011252377728714991117702579606976308581388376182997238052175969611029119127286101675515319929652388790054137293311576561471317114144579366270011680321551853995547470251945168424414439280260929625448602879329513583120103825803275877413859483543357915223649885811370893855218484194812348281539252490199300900732332928721698517399183430856033077023050959022163384288160276288526588959835164116982931817851673465046979193947642970523977627445338903667890600341978472894215931678059545893041336163861892417667384553806362706463162307210536079491305730756702973488477506168550984145879148488341789949109091590068611048657471918896344247644980733012774699350990774937099272392953000283439119750923023828248988268226634346295860145246190688421784293322796250018448966340228341517968375979252163617364004907052243365093676893038529854182559566889929689460416866079414804982781416761065008942230920420775650176636912010928842837951395765189855842941219061865419969045046355829812696033664515610345222250077123706734934798872932359252986220540717587393948473410385168983466194420325305045361194056722561186969425964583618853290939546283401063593530395548065421457522957676532092385437434594235084990623078775556610412022131578215956543722523890578837982237384803186902578527261827945587491795152629430457287442089358249173109955199378618308358275467534295697607438601530238375286605915783111140174713259161908739278038999831657854389151877983100146395766712342835781936352933952168084645504390431610227315130525016444204862434631298232377935142651240949413173089074581647858633363453872587982325813839591028806713472261175782158643403689158498898912269135439085308552434789955528767042739250540670399766227413596938668567231032563567323503953049028979968630743732567832009673348447770257890073853276447495581958755750073759692450254629953803052588737757702543692950502329466591833496504816307223146276412653861556592386145749838109290846160849283567889773866689212959764629261737931556762585335972512612001330838793565230492699280984430340051800659917497099935488189411967231616987423208384826200477915084723588320499410549241224272369806074347835879416469548245635345730361746743045255833429049837962571402554144406683712308020933881990617319029924016924250709247914170531524811789386301977181977513572749672770620652830591729875001682472399587666011482125337488492237533276192202997660842865973576380354671616870900538338684835740205896402462741960196682588639373225543048746863106493053152310433503711034514183377407184848135543684088986405275568807633912070559776108471958775053682673819265288112655621870304813515048385012420307294645500649637638209747565586463380841215065988265169932252122856264187108646534917468969047357963079616434792226123753554205150137410875772012888433774936848128646760041452487246668911689725072059494770639526618846621944498160097039718882500304572924782448971768734988260745974319077061371660267010660171504955126866697611154519134380167100364927625448504409878970128059084727910478563683828084347289917677255869613027324351043450475503081923210978840938522221779199294926483295052862732652845677625104717952910268893229364686453894175344272313098375962645676964891767349494440351673046094798070000183529413918071197634408738189655753928222958579529809907077583980973137427243220804091655810255278497980483134055520135739722969630641930425588016696423675580801807655534700142602227508450890299940563120631795036471241824718197871768385221820319813325795275663509245910487634803789161101833121220501660787950427015818056418678478782038371772740839283701388279127994798533683497105215947146570959288396964649514087870397471438207954180991034774950448876372710271470178080441239767652084593663863740704797946289100197561719653313193681026263356288688669381325909925702956034485074300523350151099520105058713226207496021904531795820269881832759311675531178800294012902115275126707778706596448279645163072149637217855006841968072141824571764876940658250786305721264513426179519874404664479036589624049895112716436847819354420654835377305975832059786323232835908745566489598597881156422484468316857608604295591219047155099174545927563838552449933299797131317996779715128998301927124803402267721880073388937899845365576519436389470616615695567789732578956856423907055514872430431860129071024890425179763070124021468476316766152198078417349900086219818583436080556524824723782983429485101553515371882092467660183006155187011793509093186807006089720024276409307968747402914756695816005641857799523632113865849097956545780198670520751299681115767671680327056167199905706040837457829956533645179581251280601544582237143482774554808261623179777011834871846719171360582975378001786962216046594618020296287836396720929090902557301399574645310744052435760190428644784221777109645323129601520558605853500779593200269810690828864380290511941777350532640012497446513713043694030936628940496785332445575158320703287053874029676546182537738722591303881571970803456038922401212063374687415823162985942256266279122205904412567406884938920621070168029374737339595313030577827255652418432853571022409656702902305784678262982560736456064919020504541546150122763719662448193964694076190034145965966131505322198120500585424326906098768372824522918772329515039069306007888646212641011610433148962143452187085086735043573370650754083350649556813157336920174884389019928939087303428777620421067003286559033347440239013732825947670024442874485739412024971661176399879363896063646225337731797420015663227398173740158208445294184572537328012344874740088721356154112492307711725350426828621821967358821029264038688772999392442997319275236751473393010880937858047665845879819838323685562464924530557038099418416945959098086307293996492511980970622717132679230072907239273854719010016069399001914021239637085251832413117503020663533272739569764638874983758036163734903608161814580866664362977129306622456600181341704189706429386469994567076710488149733705569817488072462500910581676948677043336667668740236185199645115063467085966073233524715914760882865415451769961860004818521378755783645130455293012800456570744370539196177649324616591101447091240584899231311730605292329022190665538960465267998664605719397718559768737866354557535668025664519245114958229192395122344762363340825777992260745761344607238414490452421595766297462374166952215043081032999154737629009298521878637437188283972458988234114160947551314200845660196090811780396090359227373227292631282915458231364095812770299532573371569964268399450565563798024487002303092276085900752353825222317986023007414957501117506548517391657521419675190378173696020292360269092860176288282293025301674089196526099112910015517236952874995736441462763633475642394031971036455930518841493697327546333420319397824471539178371470697738836895305503841101268035776327287395558428219225178320714217805438207955805808800831950686344824383546950595199103995598854763113864702278512038904118017983529767205462742787943360151173358890171131531158148461201004298264213705099218439939856839493856441424281509009035161740963837545208206506392030591027378904228092567306049996559916782285354008538901282779253768016057302384267786330665859190206762558793526026055890714439732294210766041459895379553631057677394632873788329480288890709555926139963410005217843829757113925626409112830898436425375932241659885614611532961250197190574133028250961188650960534054057150893725316953468769663178013202369859879633614591942878192743269952155058505343218946898725139454927261761213440027438859152594649076134427080091327205579708658150307333812810517654292674332517488054446695541501233452608267795873104674759510162747029526653466947302494364962261365194027772061836904626282595401756412886729758934208239251875959378630096498717544779828434228779607332759748972014307741800919601812835082215503526404690990887819118311683890706797046425049991799684086300918281774681578151602013495765444694217301332321187107591340149271579271310312967053362221201860066361139518921514689450737917873524742922957742082506338994004523798521400160360825285747279579680794762692342255502005511223078772625508700630048940161310343293147543635135900780094099796941862481745217418436111097746630481591474246624468737546591261336818116605060544609807032890640860461158325528637410266916851836336024649211823249411779428409544884030066482227167204345809412544167632404552694088933038797021139424179105317928418595431007462718871431757631278841272902177825921349774147244645701936261314608336560784183233110991857764088567635212447101832753916868861341942199420539488608769764012541402826772885978206448354312147550230967016907955092733316067745032880659029306538854207090035136041448173163234494157375191171445032911211289760158356987160062062248753369012836720895708868957016230682716960254265925997651317400602201312888177884540217903049823364127501012354366557946269274699779405405826780518751822870662555804811091232741328584279655140696153015073101488378972187087930054910428522209172119211741583912373343197205662378561935750605314821409560423853220905458254261905101119925135353575171336328107883956150996411848508667049125980877173490151658179036094446330349809340550316437188631061033026463567945719389449299252434548724088142608414677019522558263249919631712161849854825777382556581298709242394361099002944627740802586561632343902358480088700750017476473227971125305295730377738232997098895688490400444956595712816688265842733224263670992917191188762514202893152521744965848245922836739428600836717997154110951908446569031470787304874623721148629587837364975019247575837471524751931068096847370474953742051345720320814680686938611065129177888983490518795343939799415075336692300401249052687853364440665626409237864933361797707828832483483313847396387094730713833594386853621195459515352830132774197080465290697068385957320468576946628355919622770398454794016232051831713780202264943198862787950048604360928444697871278432135714283457084259908720566176216328037564955010202992452283431764396716207040540370537495333328295242148629605380343057814055562777380182099845714699925311122419396208298918828405921313108892754327565440186359952615404213335403651547173711932170765775723652616616556469719708280126318628767436344227748985667885380243422483982783278944179675595900334557788505945395716792160945501276160524788221261242329380203974674071223688904298447120863127683697370624699537565857085816784977375480096158695159695712546670730905688443490552840627773078459831468262146259411679805911134479784042476693035932511312353759114058792088775570158451347988853394001025201873852470953080206613674542938261359008892113726533884148059489545033359037236876224662451998308847262259890146686014535800389121249097010875713855267908840326813615861141845241268176045788315719038868265730446224771376246422101647241764059156811870049861215460925662006247858557342117420627365455652979726728794865436891937524669326460200258569913587711940605969065287568188685982181511952940738364475575830190884064060916356031908582697751858500593004760144004869851088284375997680426540304932774437767532274640111270177574244525721588468098415689956702319931532208883986795491349065990887788397712160553061581624921901700197267463378041431381711579962802410018760471947988878495488674166092632802980280769393520201877933244210153931760126523409583089803720609054711901967362382892163588197507600280174032114224046879856772094092233267614467034647564134757605959391392831036614788166804779393041804351687174942277339320643651610565405957516908354633312898050623296061105999218228892029909267560371047230684687377323261673933991362672787260905156820680461591686375205277058491317152220096851317337763101877995707935698802135669681998309720344989156896821725987088175380130259223939041347430236683634286319825621710605734808855564898611384861003954797480410175245882786769717017406142255691653514006869757168211218275313986012897098369864880935423131579372143298655789636966436832175125590314372636861452842742266821102728636363023228788355724354301028562744777500892314542830280889770083520346261956543718190208684461935451253761810587463815568059822371095070349831845549423781328886575002629069009140760541859576539623087604487544250268623673996512857662855710595554931600958585358438634925060980631204920896435405010836218706374294140622143002901618975100785053798138686406259936024440367870544712937370593524361074091657838823090432637105065762365002981959161648308911548907780998174239570816865386723593910737339111357944205843954037017332495993228022382398105754937983853734317611143167289679729317410664518600095341141806121683005653150616801655767680123423176802651213054326160320681467917752125249740809492186359373597122880505128239487472084338797384397681494129521970985494190029094407960554255103287316282552515523090773697725484042070578685301450267380094563804076453666959511855026297044365074779379445723709675447873479156202255741366341778389501110573349758395363853033289668737991428135173796463405157902408557295731316642569959253472445560914436253295460153782801540962728652044875641128183520397711848876690200284651095700658787422658754873772340939706912532230173359417083779815118574077611036013706908831596460127728736373398128092493628125903130663053647052291124753547416913611138565493489497132511746548414620481788830905223237981791720148533949287196404874910460465444901983446235745009901737071045994635374542063722369368234357785945514314694765582328287347252987285285694510366733299517048593446291549596851381942113526791438931208046571672745903363826437606089023301671135434600906460900177675037401985352056216983858035711312655423080721992176570286656515434589148896420519468248754700356266694022748095609881030953397007139334263210631612730574271799921609461156681266004664807039147269634935392878486895941818917029357541002042241449769203960507515062079049148167682771836596576947615043175124262795875082271928604181783801137058215090212352293493388800967969949212886180113923387493731974678591398292570830951035168490248427516212945122463538474593567132720872370045979567332808177291127861504480357617899910620570051246335892404373649381905693299428880777606329879629590146803196507379112807880143525247196657109312057492471671173443546598838491327138702340961292407524223351311076865498774098936706130600134950315991477731042244290924505285723106156933324315339292946807887648117916864771717992398710186578655901672097650188371100449048461428884700801448763964183358289577375869729231508768935006422802185560356727055236335066691998015558778501087674721153807748670731527336727306925418289876037721310945672439684723261892681484104504947080647928347969107700269318048640350869617540893685896546180399252559233102478009097931604454624750452245438552291913382471773035303340585586146228982723332615476733536302542341890385869058437595834216507377438723391200843699897471093298846339327369020541770744752508813072184944005344012939273660734846503202881378389688782296726206982272789852533487288251780134277197034611515507603401229878904849738810930362174310173662246513851502355505182816729242059089957730102930312419073173137357735933004652847522577476879418736136070459408786810218709388812425567940068556006907753064524081259498548439798593280362005365602789305457491029232663973775674707068580844132398381639283799346809260705557034190955469840557614529096619366960441690390714662945652170834502490598997945189676119419610234735185603019067178475000498110706559961043847861646211425194787794162913259749605738798161431232216534906925079127364098675322213467337308987253030958914661339907721807898486113100735119894894477629796640173400435168987555560060617578965536534659120441496375402576987290952887738042915105274541391455151664662930907464586765883946160593191529597572255258233488840671626521120566163208720291911857427379956821388660576693471663576934770795124550364832665626985804024703495828708252956297208338105475763222903661512238535538084709352030283550592342841151652703542620064796952796317411006839179043865055777386047081986444472702374393026538050861818400549170711605310349445808922169789497152115904214269897794341297990382636286452103707085166937594492555619221489782974996522449674219996721077177842700318900300009101890494271873869643906160972142697567104948533700454951650533287939986065257082655034448144594217080189175618550813411622665004668170451832683912295560264959529363598589611767249295373191435635835016379018277413653465957794869903764928933034916635419629759219040115079732929030412343641074768591838530678795159138995375141771215682284000022000006819079377551688081483833817839247204564120528143078902990441551177307714949182744283494747450746252084732823510116059831475653672948219795739107759655552326635212640591903968711953138502656480611985433364900171430050418624579800238362783074745354019366848634497659605767497665533157439482875883480393548740961223275841194573108794284155383709726814260570773394131736523923647967852376605742522578768118019366574457656061915098842679863956430452973387804725820968583978573328366725061247098938814875544189170241955838596707361475856973236260310179879523947284270225736685627294632384063946714254792202060594246022630099001681805540825452595777875586432420861108686265238749549614037939325484455518523415674027873795745896447802587548932022088110510061755781447709486866907558975512849291189837088787730811523359929810249840426161135792897303899183363196035438348675215828934825978930692892953005558750781878077735264590274908110643689636316957761431662326011001020322513891283455577292152201999778962663120213754836830651466275168556275525723262019292469535293522522550978350943700243014297370338275700090037569528310754709054413525635788087123694796999388814344781276473650052549616646654411346258137609642730664359434559150008986973003228285015417508258208674335469973544813155567826775423867411875971450563070676349740592044539292044852676624093517058407555717981159502871169980306517418720249809012564153114849597722597560637282344752737996851615291375009608816223947507420172166601947896553393853405906824426094228044690943893264847428093132683194086372046778642095581938616281239962755739731106699748493920254979197122555499840048734110547810342622827725173059064339258879325346109906386129938263013340030904853236222905434679872501147917598132346188050779047636481964141545740506619676909410041788443799396437860307159568076256754924991474290922529868930373096863721543949352398324820099975696330225909420869235609612279246878536828453515357801847271064546459900975047010044022403510834331475426702444533094034731035354343262870995882963446713106608207422063953281461401513689815153080287801592697144405935796557917696530129046860132484811427136596026509376508053383349641616907947235628535922739035753924374512234212986423450436220903080103616178962929941454898308987960472954553942363801286470350684893420498416383316447706661466480132642372854254500144222275835682985210368307133038384674285709725860295431599928341641356488049186975451732346445870798868078549416659215184388224805899472567209242026751778602915060606090883040006837193066632606051609006827777694603629687298174097805819278753731909761285060389846962443484557912984912983547525435438278390986932936841084239821835703695906840981318178913970294497587453032015839186421255333219068879203852643621701150030378090197744747646729621778048819125826737076493225528629751887122339581910752787530520268918241935352103860370003989393517125468316889356245250526678022706058613941060618720943339346355349767073078815127370189401290405215971481485387564912883113661648136281322313297810839987074230247558247165076266676322743127225780380258954913378111187261604190670438006465117619125147633947478003638470224867212881176783404022860105469006450761931972515747796237284516900154903991030671925808305326482874677267857058250528996842466046554269946808458964474412916794211859024371815633657007649913166520894952640303685585354295124201529691476258139425633791651670917203003736154718620012539175429380349066007157973765522105545769505229527097203461483106424836533503061478966660390321151459132112008725333710452383504591688405809010852258216061471444954190891095990717175538993755283776523420249129993291659792790322008533613886296395299702836651307737251333704483504442356109902100913923466200941254119642905078646713427660227557262181943417031172415900237807729064297767343169119661194342816940608829250141885590452726545660110045891245406078995760790692440108289788726350898441277839590428792497843783512344767580765815510958573886343558777409169710272791763400693528144076156046347603008095164569274713651218733552403864061420598106141282116168769646995373726786986778887544768184602916899851870850544056384631822354922628131125426663851060172657564635744843560978474582128508942818529475559633262476866457400380057149209224020787398741814292006242799404740475053069286194845115374334140298254419913365966201982466860686186240879625177204756551849380195482876322042980544385476308562184027762728742873138759477757475526356375626654712034255266042926643342904431009884167903078655294382781870580091927632507576342187117512397778386711811667429024059009610002987840932697576110343416294326815077791238040584165596339750224340890999693480690955411320622443098285975774248442869557571492306781035375354653287328140393960177668913993090724213883426391942914452758883883077037230298374181772918977362847538105407919330496032355545534028353468229599558795699512497544230423350465913093779050630096368539875722470225375490216867536947942176657058769435545168316428739821601498114235373711396616179068397856606754709141227738756734314500675260507754910906331394886012147538554550150231399440181413866676872658824464130379182735328406673564498508096081308066700573873078140718982628335426651684771078051142729083535398535768093792843962187902003403136857568093101905705725120462896399399000514113200691846558165351051428223565898234062645380892711533335372357287048214603147347657552532977800616018160042577697819493171853294580942052872692157267256250815356004057329311922889170383399983078783252967012223722824761874452926098783215658826808770211803274996783164850727234442146510512728145713648566932037532853969961353971152939685116373238527355154958799109426335931066802401515454679387404709527080096188562480061188375447830324159215775092042863691841421424710086129884129882691891871641612974348720332106060195094313528233720772437051712551604198017987131106011082677130005274622423637260135955062320316684545370374469910219440702724336188895201225866909289628964270822574749915216519008913538974797128933301899996128202344114319061626043295733257924166445467976441650143577459090100305964462600171258286688642500275997602217196723871051851394270319189596371562797813833994300286267806421492081368352011030477444237480725825744076704823931252677203948710842214983573895460237683378126603801153960240937980111681921746879284394558286576957625960463036496205031917870676129453603200052130654333626912614058448423718130605379360382158592691718868983085128069929290019734565148175803112129490684314400627252022592944130500517860047102913488928347489965113162058897084834630631886245841890406374087189171623033153231153126578273049650741972044157859813503329270477908202239799572748434206397456871441160692874822790191238980137029218444133959183346507170182814309888576859983398139057097784803873158825340316680919262930671812182944125321345789342638437072975186890688835789348158362506936515276346672618197641830968483857027752031247099578170398328356960348300819339628232234922069795594571700299470268852438283521338861559221462666097818328848135031984823316197983693466282991337311290064979440187937008576983821155621009205344322012155941046989576379216328306441244829888410442863706183928178239624708453188678589770781308079010478488757765855863496940881108025391656288883327409768574517156510678999524758902842312933835647205902067213823175805762129494119775106634720011639821895539275506657696632707861835793515382521559115075734831173591799878908440698014951749161504439708971994320584352522601612664111912691777427264400906901896035805398284510859515638680659503541976428544384986723033211062435121276596041579256648094853109140486213859574987934672244570641122657650560453262600686495594817932712878749572215333645833641548789870443248638995526594238853283390313241320631290013736396968983805215526104676108612617950702552269949831503836856350068856125997101008116908223332850383902332037246976011807308778247027127142051960952949184498802032831421703018546544336954622859579011893612437900452011522396188555833754601937905689638629442634598136282442329293067346954087718272255588249152898201862133117705037971903460589549808569643093750793481996322298299238833618696846468956539255973498508526530403874433482968028272766811188616556429245419357790604116597598134826986105521733623908939237888832052406310110734647964958806224859142889227433606964053317519037108445957268454030095639647356722438868566873689529457331257115432506571219953885725928463609770255640506740031432385127202791491019781207210012115044265743581367194123169486549498895587232054447229758940117774125024608851939668883465793729043232290540421506622843852636727776805867395096915847968186899137592634812487677628165044937172043531502649801285443500581037531423923487494291988628320444768300495208127366362116449919777411189864453922814891204663513219234253596658816300239210041015292676470935715840440551787861328577964099130086444767449706038988698885751500587775149802031216289779400130820785061205452647247340004214603393595961401066831305435813727132647079934600700654431778461808360017455850775723256303004572070882678960720528340620361020996970743456625290192674259161459372153277159711962189057179472014372362510517873127343334111467313786757602843870029017261047086777494012268045037923964490281733719615323146644643731565214681500701596846177497787194116654471620081431712096251672017716732583377079314405291184548622271157194361154915320348967196021867357461234302259395995910532702253496855590555905774994736238489739965013011377958003483786022000406504060058232000289819704247580280019832247266617316750563813599526839447166793798430970089674204181157749107126601754745193119367542774278299120379408569512167183704569986858342809951374945982510997885986834057661123504549021954694444517804164915354484756544793874944826540784292778906023774344224644082002276699089208975471215176834183016303123268898729937806015759549891312756684878380854533697621643476387900202000444489215442182035107959819249139299687820951023569791059827857762318850367055606187702101096978945804506737472004261874952790671015247311464259740743576468967018041664288665518923551733970861735282388044369193249291341562911379473681010299051759371719423976097593928031635098316957403534000256961338710985832184790996787374897773974404120663636246961613018924908531907771006310583272391734794585062661489138560312731994766741070012000480777257718178948219941154714768771658851083095099800947920884163357327743773371368838617138090191674994230269855595596694357983300236907443639492796703132021019522018431102806461633316348799304938647633042836287951061086367496604677177168840126478187935810385880486546899783470192491489976535515806663125153723453452500144954431155582658845157880068169713662136614402320710653247780558454949591369840467988887816799537868746529031067013392560525701390899941108497621973527324241146731929021856356215644194127115092359263904376450095766514820379380158425117146369171060522501213465415097705558862184594510632790683599191800496834023072187903096619376734202075625211137100400144207036001352690334506712074407575619244285354590070385878151028516277333715346618170293251062414722364069745258772291986450242182070875778715110374926769901227643362346925273912358166474284581084827258558782890666206673689688396620648522891651564621496072500337636308489349035861620090301485608671118327315409964627882317419593992583839812648797800049862549668170200841922233689404959160937667562992840134593702990300154321622594559257004281653038742422753111835805027822504454772945184795375443894834276136699222879207213422313032770186847166625930877509332864432507310117023450326532219620117980097278914474946085052341825701466749039779482548096066642943393341925375341570512790187846395182178901366436432974349989730307189322790340736070200147860673725740151425664603981530308764644542028389853140337294613842238436889884607606787529911873992146177550710823542034808540427698573831491341703794588043219308845592609467607713067663274398853483398597887166000080870317086632451499540318498603753750822116424131723117487367668255284832431616892122225410069751963306060606074348127151789590866599098189043258407303052518114760483268339111203196726519284875146139044073956624917162896381780819186972039839443632016044735217229881854768136775155928500448459742570901757276635998000590776521336733017243715576139528811539103413545068842557394664770719538393097871098267479024880750552902603321146931129616311608740306366939271940856027327187141150076102198829233691328603434306471579718121104422671038878607794086939906690774680742000657955869489712332148460494828426818578881892679235651586260338233058586767479758653906503944468277791984538867929305246326626631484948300036714839202940091557098397040701221708307377640783569380349441128824326331456519230536162845297413334556550366010292646492265152037643884556905150930036197607048623823189106978342778496083522248999320582431003409218935148395263732735777663983308980730958460854131155966324320913975123126526447455602195247617201153851713136373647866136409692442637105669675036219360443953597520248743529689180392068813844714909313218876137258056932892042739230394965965910074511759626036286257133138968074320823416044955922489300645839784714658555648594563803616769750647090310114021649160837610498976305623872475736973717687654267511769757933458718497574412274524310688951773944454679523700427514225913838822347301243036654463326317972795837663844620112379176939590677507304861190535819201077732899800240216084191913125572260260732246121427915406134157440145680988699953320964477818867973548206807190817928044435398828201705628853213391213173861270857226470843681784662491960982273230550909839390613827949485557165306443681414474132262452804835157094330744495786627087032109823452771791939090710127643426854457617813953970108119948364223580170119341834133233318405722522840314203942052099092244573835017099936952310918736372107554044416024711948058695762265795161136714024954089513828475933405888319398276176479958286907127578297773313036076078234831080881856623306566474168502716972183448615455486112897872798679879368261128328113584055933575449694071012651204732075817875109481214079738287866446991330454361813005161602957858652252603745264388681332623074028601059638456838256943001591009205580922578616404477270844877796136763232569003500766082192406450172622475457184982621425419458048054493585839291527561755146386633503363175861639968959867856773800822834521085598934918967300475699778094534875907652897137031234638526414222999789277320151661565581489026821094563438848131549356558789511319276813988456511092130104793005871029242263639526013758678079174125374810958310291204055604356448606805704206029835786143952865439924889547552686426140026550350899621661025432227665594760656528235637036604990794763782154367731379692995795031708739731368775417084962264854766410921280443462214192368476108232111774687094077297112757561574994491753541955268449629122854329532444512144216404430764555425269975373785247263340612926906434782359594270507461970310811645184908491952220200718618357074587307059657201965328208888811902932957674427673682812975873681330032728476131874686470789534997238267965650466891261538388796021303299228652852607047291804508199448607698595664300408324788814666042987241205402494900708149206756536211457780678058319512884709207649739344514029743654563354465404787496475482763087729971858165038062339117980380664981927242409136974511675267452583439219898842046970139012259719823563641004397439010258262744678836522193812837704286124642820815316460960851413130710000046680501830095482477546084608486704677165699648153842295076179261848550872138997332091722987860178945983870363960693010121217673553349571086201138817104632964055807617052549412071783596794763512175808272609866635317483184192292434377101759516059389259701367327618189625663686844195107940652420663069814167571005758239714588991712871752281571156202356145606593502349634081213100268387607034533022273753267607653760478183203589819888383986077090722597613203442071207387992800167822167276162352033500031895860762316379344185706571791550071821116288867070712702430568838786933520846747180210175877790745113604496978846921158680134922315226889191047479394346583809120809686971186790761530588306051633097031188001440117522829278905676387934647881742472962480644403300452061802451476237397890200976024251010233241871717880904611402949135261641267430784870560969915806072574763320482333810280085202647581414589014663062709977582213966675617760704149601652392631078281408019405624051797751245118379324445222928431617689429667789667102042795107026590424640600239644820185876990282680479542024054008575418158473362394519913216861396748616847934796867044340024740897808175808288045789973284876988289502695058681561802923877425955379230226712886509617069356894254476110969031907240421585856382345172086884308344906757044240489823068541643876077955262232549701506196921309018089623889232281072897011045501932595190331302419613819324824734736200903287362912695221440317987625178514413027289119655043234895817083134629165551351952554967517414725934253146888693118176299859978045794130621698427452063803862560786039442554359615693370740502152299613112987120510034377925194504832493716910393032974033153313477151073669410262967019548672735174553508776164234570087439462161854906574335985047747599668804093619979846374545220694927547530670586512040466300573849070832665900640390115972239281833728658980538743927988712491583611008416292915479963821616302503508360626968150214828993357044258661576906455507841378030585755993037028521000311519758029915631463184127745875561078499922105434043150971752930685634481871577660174867338722262366384646797663689248949767318185215402271995148784378741858321697973924717481501713216386175592865240023143017098126157573874634940605060152402143097823191864652713942726380446035258367492894492393900974233206051349835287105297735130155758591322073116225111929715338269640346117328341428965145494893631652031717019141327524603565505284282637582919790423023639107997315680830359833119779764523780276846604913108887007346235565268869066629573116016894115504886257542242577917853994764586675894712093188426105424294570001254870469140953816307762571513795101482087009779505246793371972590973434574012854790568215709853767831866322628440110573509586011172334232754929614933815295312756067626495021652252361294000029793822334962567945145316364955748342608257024132941791911484761798515163894722856133305833440594110205007476027167116963013506241770228834351392312305740504878754625653788460782959556714720716838646241445298961273828901309956665951519920923599508777790885201584420533504640574959158148355507855102744104768783805720414910729397681652889841821706296798135570729398483276698348932713518003226430798586907301633491289031967773873976643012630381783638954145703263381360534898037269441604421983765868433532703727422597266700509003377820337262987164014725009722092662234756078022206759135406352793612183670900463320394317066977666102581053876148186191249760941947771838806541651381039366789986293688163558862916048540400606644805855655035801578710664189022946478478445111235686374153492407806989734265749702407690118369167451901511928346917636988638373196209653874494573614047279688600219229846332037547957980481802110744570404127957313441732326350321188336611143201175197595989476739694628810692128839193124947379805296029632354152579290381520696487670666752712611097992145025128861298374698251439622263049275609405956190219178009781025824656763876239773730055225629383445027683101253328792174460433885438953522337382433467635550444396625725593392575520496607157958537454668974015313237269089303673219941181924140896579109110907213478222954954420709392483308566920001509483801710801747135478122634565573751004747749664224721474088567335009554350183057760327273851456550610129972194547267062288596901582803875352960704679981341509862633646352786743729389587190492883791481808822127547760369010725436518000960826317306849575537562068823566789935747058977908273905101465002749252280976189142945708439968947883085092587765133722382374261705716345680439730381108656710933454644160738730468840388369230497772797851898461829946863906657445109044394952167326042082070313708280551020888904167509564412910438053114523690283174099772433896321441181026253325974267605386358233253604688824367831892583797083392427214399151790418987648433240835674336392019968378089042151970482165641310146138517983504214172539793910453535697707031719577890893050814208385921816469593013283977454318122670503503152444313781244693198159976154862209946692728824721601163324566036975029166368479343926474096031068784081431173091103706559862563769729833964297463248259566828848593392895327944831796302344986173535969228125963696701551832346441099605055126617817628192803950454078778581547507172992144911754124030909505073730136735172169910054277310968228879355318823596774963381322350878063220194344262499683235919737114585109057318156556432663971513121986072254104129935185129570587821746293272458801237409960709839113405174593759602931968870503215767910314269183840704840218965513341860568819701180952894575767714820460915344784181684684388474827113379850331208226281111713789645978795153990856584878741720391490558787730038420772963864639585619445419906231390910439901174105509688687008067708460221016063181010672870306204585035872381246624893640887641002286519934035157496097570988246459531072502819057205600862372408068767092740757570823262652845695521101827956253253937056130371104063210789937912078350273400708694351483494311670465350874852374882515715994276041017431861651703849751902717043565750959203098299288592226896574892969179287761614129020459833375286185844987648328943239101776586363866043307244133006442628235527301070618582459081266337360834594932514226323087505838180618575952225041669888115137716159219596150980899079986442292532178859979069674046387199022381146969927547993507943357305471891040795595372013780762930225830063271421140977535107482518468873056593897850280028329057035060857171257371229137058863633105002381477330363280025439437811447241654192054518696881500550695360895331975696847559634855206538340501177693528526854235371520672698744021760518684809488961035063179685437834044388108062778898691026487900592344435417171672003229694196501638255224121829939337910355036760018093608368192955023029874632607430726011670002486133993410168293363037060016741469848032011128535533899987454688148085733791281757941599372248669522701856657525516976657824470374153647728333657067075111355558409537342381694390241265092711927429396245115226325178849937669345989770003383430267106002972850887602422967055860127883581876470065855088641985047921177633450011143503021200875135143223489847998864587734697273425064759384239404458748048642463408116729312809552243199277004727782657777364917450917974284298767161734364068695991619939751107308657451158689007734816845227938232178633024823904973718793361930873629833888778978264653307860652368456249615972171098477700337326630205540934005676757185018302419487301452684444604293671175631779787990543572592730592550737557515555286728310974060753939560999313604399493780672201115432309508885110119452932732827157627633552136673468380300514155506397830219210847572018900244446818650356357515200406887073259927801814740482914080481241871956305127364347665149684508444484309182942342062051437714721602217704276645721681535134933538707225028869085678191522709760319812126384212873273771253220848854185367048182780568374899545138680492762548501164195397955095823062341429594407785229056336156931032170453127666384338684069214178102328608643356576234541899269397005838197582515810144162481019878865973311059250298220360987841962074830978692039148284846172531272600786152909150801965963999096753889522648689540919210376641989002818516966393981828356823483516097924561401379623197164960223145025186855118594153165216346554805844735143844236824122508337417222228782640426288508018945509544596666537502002191540934963207341455306129332890690082178285174849065821691097745189720603068843692997035935184708437040527048530914100756271136183178087014806191397657941793602317940280115412925298214558132049997597025312991838259630397253445760948473283459450388365108653623945221937609528038456578478021140888809354362156341117708476816484067124589156325082853485376131226841410173695960996454538902388000191179508186498003631320707788412496419333117698147318259464829050684597351790078487778488563951257671573842638123182970908925506097982413407298726304700116006984300089713185402399784588626524725500750063166843389794518644385524361052999773403044701179498239773579061219049578135481866516011125749147982723728884397406079387383381209491593683370447102460556347398950499450301087815707085244561524409157977695162908995929103457895105121316742051392483124965570280470339980537143831217887669580818121734058961161705745711433789543577779775475809535779074115724217469410975188210103053621887976139305975971366517071936029287473467697682425569886051916235782806257148826161650851867112621184335509401189064159980044155788767933660513821724918766462832443941866292543992019801240896440258194244807869221176736855329433029445029924098716138246925386012979880936756504626851414452403108854640622598007426543055945328272240857473826041485071618549418208314049146326982850029629361797629843161512593821143695004921680444781708811253099933266686959747894287223575620167873187548306234726166582620258905353533454463493112514799781398335517589273943803050044870155457245452187097910764483651412014159138654889094508108529419260436576092665872832182144999127613600835686127908472408421201441672884334736336366565917111716575236676423199724457037345097380909280940008040554669261676381308870197989287680914826338617356611555467185965349293125438138376538161369156579926191525751298367504096618792390243835695620424809856546135705845247767386323591708764218512041646090344499856760530465709750265990806340532128161505052745208448045909542182760339643318225241222267097081870735187487959653439293254220267345390530491557090392001129733128666328732158724030589521662052650905136371412180453632329348821962860833527327977059757531954005806749530946487687061737949838400003596594101799673097470012417433719223397985568917333111226593705392084774270655754771110875837932555711990996107500026313455935289942570105446714857539897205252663018469316283909093313748579152674273574202755281318436202836365960338483418146731397182448868586746909487321422325214187168386609564510466814818268335348701385619462928064920127318917264913829918994588720222886535922862710871388980784439098766626073726831271484959732888803171123777180100720142049970142575296914394613363596866955566429224608877336704919994941113630988000795452292892163529543882152959936715519296446777030241622541580226069412905395854456896508779365105147368820982450757180597238343384100066347519983963540287942095994064349707824694268799143674996229111404038315108177328661143385645783466400106137113850105610423961348873791688311894374703181451768776167310355889569293816589471355019643454637727506229141191608770822604736896467599019708069911175376255726159689175438826936650619214168294962053914585060011035689781017367855860833592944512956804866161848586865077962950760932938063656452938845308982204146454812103598621766940228806110660561592151191745299959856897938849403558399206606990214244736539330058526831097225363041573384044143488226698749046281415463990119057391068101197445701238250651579372134617580280831360067322143956841709313630512532813979283924252904196528774077391317148285222693056737431554130551503022074319580767232658134578068206403978283002918762713595982844166408681340253749553108073037770833155462817525801977523790435246595696924280416574322928807127060110161370480467684740737497837609047070465736026009262027559002083357103291546158041403038584270312774692745055581189755055482617841309298678890480039335758897275397258730233508784953188576337551431686426902985115743402608382318227608601691651782416197274497344794397587002912333290109383508210733612391453754634902275309213664487311685313186203705910205492996694540165599428072698777913672563041509273035295147656796511175386594778206980951664369356861545440677646355765738576095733921598670934964633357521171356449551419585081227581919171559891414756452608850635290465882314573538615613099445738141340573744581047823917473306898238959026933944938166786754413491349325754602476744866314370081769741445456028073975622577633194956140497865719990651266404710409964857629820650107412737045578588605471360716742574424203079117815212439740587069425879007890399316867836372542714117711361769194392750577759982287075980258374299826197535950979748681836635285240959906001410279894661916708913953234773898935153806145213808870506033271687089000471081953238678976887134081053862820924361160887576032461684368948122881734788448101665345608521066107207660065068069132351984862416751179390750530438231254703892823619307145922707960232460039535518672173033089334755345686048297338126914467044670773507368300192089435889262712311905193449829220729732232425880810844350209919587936809122263151326051042910865921542141038036863919884772601489590617866625511867306907472366022079172183114758978540619366061254485372668597190286631879747961031366681432437836642109538608520826951345068444308228685036353816786683661022717770328768596797835479653494133720871108452118930250900323719748701889579309787922211803285180828673521156987294917482566409236546765907903434331269880017486365589883324900525219795617868119901797002915340064300797439201763268656660584966582467106890660113001795589774609866194837170916641071805568393232981926685329299552124736531453471618708298312555164087517397750441185010306522781675383092523467075831285760267324848272167187254170046451336076363567058197812637335104492550674718486969206852522431775829068128315069950644677772237956530172535703304751933141654422046705448653572329391261554228243376118829295434747530304803569603220121761867381249346357355388377956172590006366187094138243525770563396617136586124584818808260659330781772325326358330194837674895281344784430780902066297911810292050332448796058392447014350505040616240957295914912000366448383863228173832016093732817284907890791247234418687891917980808399468051434822986051810237549641098465918628604815022527146836240244668272418906203738093576338550944669407445487914817118385358348410134470558951659379162153134923139922069933827776940252322858660621757194536821835767416567879629668013339230561720074332489713460477444879789097090628304468967872424750380412881199579340287816932029201825590161528840125217720835858793065868993484679571314418753956576403103412768442212827689950506965128052661248231126578938605060663222330854023008296593622334699197319813019626184719365739517389812894339426915754248595638914046367471605240409961485561023651299831455133605685632557768892417347784590396471137602082840025268626221453318816024639030223063259904485620991097926941456782008395460596053038645538305051205837254839398198719278411450870274743672975906672434320794679804195799148521253823872109400136640852231592070570789515776222573885014976526193392629163047052999145325173524614814003815733308223106401226647999623524159131979486717985968353796198007889603057144090544981713061375907288102820594402515284448196091429425412072257497122560663734617455012229764474876371817370412559308718353541348076246480692294183396334921526908772670630608176645073282537116178487982177032064110410398219114874043361137212870961049877948995119055677755775472871488366462156124882723939954033791717319462610120940783692659538603269995397028220785891913702879688280790673578923960212817637964406822353036188969294079362439661356473693752808426460879579689390026703203070386833298120010916893946871361260551465900185662484609358827456140622316614344783064018057423338967244591460079003045012221182342577746418618813969942572426034285009383180493973474411816873319996774891604072564854430065219014618612977367535246875290384558165685906309117957610749271386784930445823234528605225465256324114760818627975983908697124258209258876410592823554957079172497764233741676002959418766967149066524249280968965524130085755131723061479432293100218940411564410837243997788649926879118938645757548558811539821977759190027919765541630181422353535393913295946041931459612559678056787862659479568140335589744472202794583732722016321780416382834433953243914382457680985711616540287836771769520469550487404092271928086615228890497282906572996927167452630235176792155174596243036864931202154090027151548317212911394576421731655322099656441618406290530068408389684704707438561658108085351464737330235007018746783086382038397000154538000244466653437371511712386751772706896960098259295334177255720636972887864361763347631591657074538776828079686053635898804847206784049727075403403379449894902300904070425012823259656967736180147128645801819001506353253515824826685725551997518908619867532614371883745937582645485353087214191550754724942567301037472027495945635342067005650524861068207732964131151316524493795216294846052096691167225527238687435510403963887492066070962101328444045683925296097616592383689635709143013293798919700074630340008565680873973040850218773399312570468553760857317277811361144566130443402275884806916596362699716738023119035528375918441778938336882222934763567480160864567438727594216685057478872911262068623692580649744611509886121014401292821708114694680961165326580435467426049249928600858932211706661252007121344310997072629634031958497056799527054217930789262114272379061637927283796180105706329935628275238083373391736602069144829218141398232689552931285213084586905384418886826592259544627416583306828160746979619974203529135299607606884739064116146040309636941529740846480216504591608568595900127449870893526754314018414857494606856789032960035163481772098939041373194041317711651819941160246420980482692041997405013926539947860664361945015966699151812906694942772378837066173956578747937047555940496354375659298698870343346565452798414346016889024545296524833602824886111913939426222996208179146393061293162429999395655982247086898543424512600157505687330543912742178832637497981737231614021120036658092015503897483616745109036621344657017656680307378771931044352697669146268457088651542463495594006831661597774156748949290127345568012818560575559505736076190062858243873400008401249704733182330651091912767940852731156861731280905744020292513016095614178240254406176479522289564747220166026459376758406826752869948347316413194217882788854461499491034607311250346387527945608251637180573788361243502147090569075049117816478296644101968669118058132266412584903262855691250787300321871954150582750794956449551249952480239226053623254857112495700493912706760252577427531752601666201210707790872133140191418605142956716010108604045146242533516165761375128241750564796040025181178634512120971805916729494008055120119136873195814053180633681434076996650534975525770649925885735867258736491886538543980269403639281217261807420824369943688395801302762144424761037020145145712287401347079144385927767118601602650694259021529816795941540150747634607685586642644190976953236406633111134091943817121663709936163014901424942154605204137762120381327620871561887982692650825047567700045119499733815077282095247207177867986110976844950017842044275217381896364390991708009469634454239599985422738912484867424508532058923400247290589714513266841328280396396057711878780488171245710916338534382430229690066647956350705268457330978455612462073980840811700914570958379242363272272396318861242924176558621659800733501403779780404405785918708863057791367144518318225342577033183470253773179697790493024070124185531573462588517885647066863429068466791810178015265905023351367140461152813477391050825358763715180163831535729928539307384164300212220242886616978909326894885879940037229626366478128360131535780683565252170718880038913352281242309431576143989284593977903180695870553452424211470029079027117165608325473440516937341499390241434600796984388763334811164970990938914145832438727649325159566779690585100566772739460111174246472932179501870655415250391376213592238252666214373735704678779446774974473876308859133943745694055047799096881186514461566773431801049621856176373952439166505449757111101262968163034285901418353037843119339235863468841993445163080487765800821463699471956865994449419976384124686333187582939379306237051753039700379066974099002796718371068552828656429115642485196693188551573765182849596878275078514118433073610246821625255231123920571994819195923189551009959198689833786009451051975425158465071087335290291670937300451082634655274359015802082213960418325025899794623573662064506702461796274089994247879650665826177190619067562703824393573757238089330528171217131880255308163450651604037569494577426802823858228150110296051766565764127885464388386048361281247863429927810326037146308329266179928137253889154224046729174335223496473901039831763591329205526249491946798482400635613058041589969086492949547512580654918272903431691368206941351235647185125213670243577581504008402579798602720607541950947097770494657126452399707700629310648587587109718468905511733536988366216311899915588754713978412037594234657013824528960655866377873852643914195318537658046459041444222955887795706531638241372720507567314660302761026157470542692399096560989498269602436028622474675376953224916335181238525667966740945830564928558669637245969122184987366399373897068589789845300114603880912886166760441768753565996617618109622016969792254320326502436157807069315077959912570759083803402564875760222911646644327120579803692346759568632956870276791644330942278934098877852586884821834478680050474614434249058728097872686866322540589320046563317588166354884549146106515506410356218236199411882198087381047113506292910593222506848238583956610162911328643232934273869870855905355631275241316066180721178763805789514105449649847283904424624605888687026207446763769266064990391713919698530375435212863733526128329983379841280087842031725356867564880829601111732651412161786706176538598324136538718989156796133192720854153931799056908588913273274746582538819584144260503665340718296751307457433744022465398813764426079425948376855548501447369446758597658818921793393066837427988989959286431492911705375948165042775656585218181006289262161342877657937178857413519070747949093823011282850210169665636233717008110291364245750857748253216395950206445774002031598400274381858711224186603541952734777216899519724512254648754075931761263489571995903995210501483294186142564414433848837066482411242520300441491624533565746919195390682805609544647815076614720159913112516913600847147979706466898702855125787842581006145109134880683449876234558680791020183142565507141065154939063204886182380605520166815001695449656849553223617750304854652800738381630441745873091323662731728696388902696790927804853550052945653372966150529546766506884133186063400325996631967301135871812601783497850430419908929876906902191090583894645324894188495801009382985793401096768828747391291330941964395483745935935584925166920227712251763182006007412178375268199614389037145727013220904958054340814264349198374982850304546369679756026047130277205968890105163598876161247401166146552305229931940681326201203975864439765028228601969288415016611337014683887999085386667680476408606107358481788353776370717237665443638520499290277408783479352043756773513065855971774246840057062604324873964109959886986887980621043257320614360982016094219164236650433896403025304177868661678996906253470993379020564665816002475707499734574262529558383105826996671786799004516732453774233369218842138376340781635394211780112967456568954944947874831565875659644520436369549400178807907071342853731894948232681778663198071941854146935166957421233104288773475386561014356716142943921700298993035590518860376859287478039015059404085676328230461969834296460452620460116595833360968206844164262248424135000646811003650566202493396937933323246234261288964900959459666647769600839932742856702782367392442070685971805046926264433717461369673998535212699022054424925164872379296184684701809004432320422017064998537966503030949260223153238586454999777863613920772349949494676245451228015688449654384319434536068922872081588215016753824401801702660306302758707144970874596058491512166287217594848138111518974485116382864876646807116473664845264743410090621279518961997282918953836446018921331853659654553253491850266893315531172380316934059360464934961799787733639289234092855838100379262908679229046346069667465691201312564055581086286295805009898304279334152938792554368590169274506281455336870339715225868736748268622164137028122837118966527412354339039395358445310533106410500089490819955259059934174848383073993894079021436583852359944055433129152250743308628386708567838885436423203443390782538177896019340850144880186564741917643367172794913674719284095143358230302457755167845627723648398408159980534131732833024152483256620268091339908270301088512588608497879295767630426547429811656382746953297872401876991047079692184289825327073908219137453762124629416353839596922131449342308250698355921456611734494240221846365554847837536499494199194151734471743302087687488620524232732538923454987593142669685215104172909216595220877091791944396027422426134228914843682942616000553547538121348925044663469456393470269409317722774478284117625334108209600990465099593328024324603924797251703366663876170066226629035013964099456730683558158435380708922637757492003227491590459391913145814385359222428582172725976086465644210611144724764918863399559865085401512706913376069962063239676979692206327381997143836597768194872646002890570913198605018954427991705290564046428949606472785624838697688107080691297812401938694927092667299001825453793971711882509581791723623045761038075176279132561001810652802845717702864743978719776521928843063426058319891353482693221443977283146299466504611836184031203199875965681666255162056301806563888950907230978592758135575061473705550245414834271501971080580368030072869477761785446398273104471346794717375653620537406870448733064750076809143993641682023270797733567047790083667505026316074489590447871415593488639473650466811546056937699602371176897692335428491950343286370793025549643040234583443355828624760946189815518533933042727244079967147743385143150938549266622379251645254995390605368207805018990640222883090127366293046567374603379521726311153458043359977819563315227791143143011578772763579263273227696440971476331615603752673866990988330117936294842424877578364162090169121124629034412298981848799867667067418119262343586911992539883904979130232805233878171999842301993882731868279440760979584545460189369155908543000268431106055467436453961479203619301105889247317482029607546599694724743693832797304941659449327643116765088553560031576622638159560234167132578070384623101051663173694425717696631239039782361904229980894275306795496544368304973701195214568204169551569397481121331565038704305581075529807879351423389437566606935037883158019002830866965869492330037454311574718015641645315954520658861425896694209275725705602989862338306428223982308778663628149217473733138585252854500893000676131583661897233664396176961212824409599606561490107477238127065819278374586319468065490496385772975453468124421104479931878044539242560411647694854692377334991479844140620237533265314185923016337264347752912047430388932152567595799729523330708566137296457613274930899000356215127941680496194571716185581201237684459544785055732517190074720085930468456355427667708595227972655040917204579167508756205577347490915155812683554977096953098277196914045409935222937723790329794340745173173823552448594770549899517492042247784409106043739705025619182669815231416433751548902149686678334658153510845258276217048516399298979330494436508549135251051240033251166243354971507526603538672984065663521714798347549304245270338088207777695566830043288585847553788224660983679610703415517629893003373487728237016372575753521981377230136865557550050500786865600909819000116627614367624333143631753901498453262178742798576901709138248127003812640025737098906576035234044372042941954543676541601887858031457715081554455977829714962290508298947866815021579583259032078385506878742995124923462552255347782810747354160458488395958135970873250637597678854264974896989928485470265438034564959562995906019614299865803077010537007536230705218701436947154718122217868400884942251435188242907956156177634065995280952797272110015728145071380709925800374587086634076845791592902205841526844529825869790271977340965451110859862735223434359394071924661626956331313412262261673561362621904175174323278016024604410245764760613364279476977241664964700344117155937047066927397256575404322477284517917544712826037825449555045536972750617645926277561164274328920805536419114268244255542770242810731425278252510916529812386630411685563234995589230502897697239615429574632709710367328913365347317580024315381475588399551031238226383285330871335858275053894587687456810689261222723470683780574693927469574158375999183488532173651552157286452338023488704717084303138586911721000960530852929066798970414819139472659895103562263334555203202567586356927825455003055727228892451339964911670766791228625716057928354435475937831085574642174265248280416337142409773650679659548672987901504339123093952538762287621364714202660358522063459521372643264113992163964206783550082688421973333519904645016175377114079311557235567821696001402480855191872577800452064757245681525763506276939734603263340630250675437929612794506910654451288723480389564968084624291644739955919937325849911290005336433731462460161710018275453069338782656646985247276440180863669915862474969595966885185626666119094797373198231701124606766749212525125380903076180221573689606558523599919486933202687670412025563159637608900312504792340755435743967183146774672365632261427934660808252823939149390224685294963656314105830487448242989934528412773784847433405073208580296480766725669012308514726342844378505969386499928562780162027785948190670432498509384834210356617653457730688867814661139228924417822667021029994864307501095677912873898053027637210321582746945370976498392860045077090084270687652591904193763217435298271571654058032689556592683461487458189670380622214705064461821461728980968695409289707763585767275013543717069073275080641988123583245732850884426782776375074849589838851689668137027402287297006352114843023178597345715514257613269616757780433549606509347710399281785840049110537991264372892921943012585944942092217101487265760340091876516490877060028552495650157521422397280088750942249234694464478350839749679239409843031171375600264305021624704391289524657672123810562000393127975599264757307319415718310437228521076419391729152299947668541390952155446476632904308375484798700138539246983501866192303989900842238606051266126143270298018229282740146038404471484554377076418651732024039254693272524782103087851371304428236956739913186035374250029795056349218502526047473719061179490562027589406340030506019667489768460180467894952123057223300027679630794204461668704511104485352121700458068724871391524341311158544369887737522155343786361047279662175944675040415124469620581531821995018833689781155905516611081722522310689656235175685916778216785024401149381888861975226681920604359008747651775701635363067690485354475715319933830702999296512087543376249824622794612520730176155261734169282935654000178528241471210820538654963296297484041659414045576264007330154835328202892944678237846722983121849671388475412297157496679782911360413377210144333116635049942677162022749506361403640360740039964689827450836608160091709829908857322875854758677912830430288461517766802450091634814783847108001953690279484738013918937188114150146315879444361041398547636991833068595070710517925421654219957053419089289358647016114343698573417788587870758117037011257293717239860802131046345919839869591893496899554984998480796259514732891254276646262581496690258279816783535759066999199231502830993326091356314478169435236301815264183138580243116928660375730528769528827162453826730874640853285082714256007372318777908472991286762831459551559582673798315696488088256126133471732864536269718009567343642206682048340285521896107248751064616480776497954787812955020522709282678739047035783611453732896729786718422018280492815746735389168134378571044879300528406233817803185801165401563222880131469076650175958721590928468546675907073361418313134972952618809847471811588420554276512416177014713078825405140689453067524551501113663711860619150308322866035276883804001477205360501589985190062136679258676937245073791379167582860003726166014317650721298911434278502812895270359416245238688581629649867070868787352720229523015798658241960362172829081582746931951085939597184600895972426267528625492687362198838476768077791101717734897857398126773146429578039781999999340160733610211874562779420045865311978715834041405423934907647614008493823379651751865316820885324283941577578911608489167116391428474570770020756999160835015720932476911153597500858659237922953635572405487924491661167097632274995973854966983771068919249704455183181511621442265480835659291430557459126267097046455071547006710287176806923428299732873638236139474918717432354092159031793365769123636559434739437891331197848764748819332549607685157374802152598956701446995920055107783899579899671261690972186342995441783364520156249573153712895186036402707543133708211340994074399966401783394209163677538605411886531664482735678975137205924504908989178787687003058400745652786333735353157433947447615740903231794673992738872789548591549292337301975289879747042536300239237922196202442491496234234159414772995173864175068136816895900989775751765997697942632060232128036734874674467863660338550228909048063995721557997436446787662180171481972764294440753348420595616978130146730924910411170154995186321078348940537734605026064679677442554751792720834621122244513766742467283344337724095898727810230376040044911308489745320814502693050839644708694239757191624939652414942142262768317692941571955934168215185772610461137665430038045889986654901285687508733640342161945598292196136010333541065577491799812978217584234815297156079402477138831202632797572648879073005261005443588369981372567183798549650358489206603403629213135391901381602632998477535288930821533499310805188238774223979446670729264615815894807237804987033061745231928845828201932016543799089178151755950846496572535096847377543116224965246858008611622098205205791302323648796246545551343108164609402093243287122146182347566243183541095423397356710019118087012159247351590170353701238713876587160863057244317386498513205109874834367361759153589182499315482876083245513848544150725824429486572214398948906453626601239875374846325638905818747680039529706035387943750194728914187139661543736999869036680299697696930386677435498056122687865929609595760489396128924145130050825986494410750638844132926409314757712872486058512061256862542622729416843933020772229620939155597572926566459031526927742795490821736103495451641388001116052677363613226523741168681519327378026464015050698418786392092659484304015763751827402822041521970277993789196755262301717451712289124833714255635041369113940750615803165015769067677664576046825404876538557892306532266100551230604092124737813291053948140299917237334993443794069106239653947704739085772060534867153608114483688338048357098151320646404460421978264584921379968516680538340995236326319600446045388282688425208825272758543316526171847172085363346345237210802027093478282160604551913088168633318385908288610179068636807295169933579844226453205079578119812906752243766179935842115144804042022250396736889109548290093296681478546854536558071831199566311629683190622030503800586388742951949490076945550709324349861925855694249596923261169963803983693902600695891563566064099419472919625118555399957454273810892649349816681194576342412709979132531955955596335107614121995936602850975345874699264776865326131372657331951827511464042758006115490819431201358322320791280634091961347535500738316783735091872774225463308447968741187225929961171398518828949557955233011639357752516124726221437200775884793784278921056165129564327741566409654251811094719821398445896023498202185786982177512070904991619285922511834914536559833184405978017223532843779957793406812813304372646564303578034494908569363090559452107546718908482979555088956211357147232712042257871458311762666588213252947933887529163473588474582200677046234728071642289257037338484552336889875263009369260297996935251050294663888568077064848175580575389321110481572191961697305484393540252391947537778452689150557287277141411776477801355067916097698654953156599324301070047380499828541420453210663583833529175600079003596569089246270462824612733880621585866046654293830875273368428992735777569203703543552692892101374346991417635917339256151739735429228894207247594714447481525865854334850586574503786131151970331813100806641947283796526765811759548769798317321051989692717987331302824498288326923781557484758906714272151113755074794947771370445416896861484373116863286669661298065402024747277419676764989734504045383816731470810941072662714506852081625463179865962734391616770084016522423794894294865836896202614820307466021287396693421001214066902715212802453655021789896035201395139525292819104697949560598770276555305909614878588526613348069473576883763297774750542254109662586542058455396068185575479324337481515941443802235720430510923657304162538739401617537225346384501330083195686303020329818501300825492376097962457102164987295477487416861572722213550318498189632323598051529648077428916339997818634063895161789721250331655422813544853265497611383824929079130486624320127952271900231323506473886109977968751702975961494258228759130020043853529199676631953806944826450985561829739633016365990644751778276983956794120832954487625799043189711006950201711298651914452671150097009630303999668855719487377286159322604237245752737600261819149445815531628950650678514336232538157161795900757279550734455415320393513066402861795111194088548556138339348546876613219461415042915819280414179485442459543541212779626333770697523998366445106022581478241103810564853028204316353893627342852761512193689999497773816409335596164159814593511826144619848510144348954654285340474194762695942810769405150997870041565641540160996623365579843473219296433254986170887456770143987578675342135188154387865670774534924674013388851859991614497802788026546658218500233086420782976912740201884673645856483473181650553347436772915455952707884225033985380427816374438346483218477952783340166291646595039144533018130406004266271053823561482686248211189848433009804876782942975647415592112708184871961016652413327635724331906896690054757643138556707185287183740070648138977613839402659291127510579093079649810686522234193426272920017931252317025742893371674242324814640046783580308677884653267321160184352898899520566463813068880707372357316381543784659898235693366996264150771506908593484654380519150731649108504495390913742905401411396460071701065765711629187747621737966244871646081103810261880892084881718698880207925839717683786711835838015678014315391231254765677542411376318951543540092674789236103093865473857533287766842149344288559759934510790132030378994435303861454947874995284947761931849951188885942438375562005305953188600673796502516507326894891009760314073654354188283744988478758692272106757042377789201130718383737150460315821833350601016962573939923956679939145285758491301366246653563503713877317237855627975181044471693632750993151880278088396935489558083196758784945429376893298221535675215574144061485429395093627151856616697819282344764283690727267433367048619177183860391970030053527357863509341126461936330237746867361006232016826378135416898762437985146894259420906067748471728572228992976661340192714853028006922367594745118065996176341340861517485454956244259154074497786453456273649750197368680931463596509196623311095096908907780689101463569076117010917551945561061799782493588962464217403556148163011313327733977621790620950669664816749655755524064263389763974422365187968501089899991575193666352525382994709707601677723344113300453150642887529525364665788956020539854415219198259597887269939356245470856895903202969969492128563391757678043099705900606638845682112773447183168952409483445004967975198923193945145968777645896999683008939856377157112313928764453666412672726173173018343573075371276972152741661785096417320683685467210868447721756595925270095389110019823133634585996369105745198208908588158931834862621711842592344776358891388342503869136120053851755224204581139996466499277847734432045054504738771330411114689981473664509122519288270222230518375771595195454893034240994788722747734844718100657906738257550219869504141378460092050199130392339128579389695519575732819352470767024161198514398429612960382269711785402109266842845327993071579226005295153061910167005249623932375874645023152925917919976279531832029827526010929738822614060820752576937058014065485991369421954944719727770893476316744601716284130281316743139877536727857539439057985185324619166199866235225713477302333403853193273443733485040330343469970001558557409478713287693182085602633290398772773371457613452653399882930864167903185676942595409837253058242655434892699252338034065333190464301663025694946792305285540270782713426221313362420801890028703533339599635542709657697442582439755510549002902431151319421438262525245262548074472012513625265871986374595319369369333281332437679041640338232614512240222178110507924180939725377793025336378632218141738344513590200318854279500257371583701479927666917008572201154910547709662562914024728208457238588474874969242918186246535820046706908952360989778736050391791900721850469274471135062673271798182282846153447221418552644082854200745051573110949949955344874194477058605779459180748821839109547587855252695128472288088330582234445836494025677438914090078704729210524800351750642927852576953214587493498057066180541347263799296013376694154922255252588979805251866039835333067724486238316269604967359284914843072480448576186891755528568418920253734493162428721677359105521788277971193390298477548303340189405743051715158031926715293649141360114172013003993954040395048208536916896625527504097697713785360936859191143493982190005720720409103299366371122045053596528226066807423186201522894126536513217072230720168138301139990689374605403106432683860515472299936498464225170822553478720412788229156928344767656330389610375310962049087858022268815333308646305628920265945086110647347513692239222309990379530229210413070863059366919615072118650239176165365322036096948421121795681596944312310530758162530970456065281175150057629314162303017797368167786342679877621731309441743404601325531668696647154985840965761673319728126685769885872069573280066739291023158994560724975123880784757751671344108748413866361657094182965102692998379631231227081530942622424224397095823388643994275785190825448488797034047326209067537072700017614056036319784214708819372324670369392901819502279903111010962497414600261701240861199375345771623111015144763981706560379227457427060720843555821000169130357721784734910589172711628308808438115557589398329560260651568369881050255660964576441547064667718436678258222559764666236418330652578962468956058690060851587060454812694112937888197568075223177677401237783523185588419518472301475923702073785409591738814703235299555423897070056365559267597969385765814220815011435857594623579683354625127729283416237040629767897353659470168205753342867505509230661509380261934816871022937881640636805867614190257458162677414451059715312936550419767979830229264268830671156549415287819317135451648437566363886044886660049761603753667212757616041252220317548734055823442275046893952658623727793451416619932928947445195941680039452662240707050931960642229603764220335240516345782955537338040834873933777488725987678563395095489060771780194824230643022460486902585638203034305148154846531166355218182527723755060559973895502864286966993754493099122606138040946122086907713305364682507193264538799035835229153423972368368463622415472256663323072941217648475067093439686333481160083744526482583066978992501781093169809693547922807486905314844329943514381266114837964782703453841131349154850068609301833600912754085206884708249918802599999635729349445997897815860415412770930713277772703379317298666422239209140584556937154656365822869886097965919307671868293241786790835962104165205723369614952745048307058846118733794156561378575922381624804962273295057878829290933962219566758670806748532362742431159161924996002322124279527507029036249844090720425551921567092724351030205894012949351475783293951847158521022893942196279659822439306761723961691126482334214492147709267448741318830481123118094884935895370995631630849473722123971612739845475182161433919300361297430923675168566441292599695441455388613560312746662138780545933465987868527443053639636056084019160118175847116490802268583093707210405328175931682741886075536046603571075361894269377969245894637166501445386885264193291588486917661716275251989343732799439630049700384796415361695358610080882885397420517905915222658189221924839314082389417231090260570083055758030856634912262295367907756928277708841944260909505438844069737103745613784089191139107342503998875071198690968304967883682558341824111860619356948604160478799387633483967143425323792024075727284104763349032757789341174456989506250590667452792248090817467305530049954529085406838028946568272298526506259402516023710643237650924466549378707536235396946835571164028745576258869217579618643925151835688020492135447000634968090153392484209238337704084021098012470790344197268549016822077797975631054988088903415318286403431089015062056381386877624167713654882763391139356165913538967842781698070501145369710151745738729706517406445757405639336552967790856512042904808809105265541181639066353134149282962665632374622412718113698271329532357069464577102142614361000744986827130249735405558786799384227608381099254603532181368098015145247728092229210262688596321135309977865612674903051210646362233658994984552370671319738436644923702947865343499518178034818897447608242143845819752172963392421319762568925485667066201130019954623140586885292925173861166837692758264860489564009888023166957911776262206873169364759018315625897191666553477777872450543470586225814223371357945067281936883261551447783989326206993458888430054258263200624683006798278910595263727354524393982672215925486330574039490539370960291979758160498597350458809551758649043850296572947034958216824123127467077119255469020801231562013353355877030676844897144883091118782597325426225801121475733082464242602061341318566415783372729842374824360411024080470815274179231523514407676319707404321486338343122671038120702363998356937754612588928083554808576917989742554968510285140383627863994638253178661928923304696070654050763317381077073846203638889560339980684227467246099351673200854461591700477234377766231677055476807439449650664282836862456512032840874302991383599547893733856847395008221961127943113072232214431504830504626020021572501004459790890112420833863717003040908499899468571617966034161871745898365926277429103824456504435684495315936962297467515161207422439604792863654626544689237317861497166250553708061437407340375138241606049781871192047556924401763805479773347201275893539200401145338910691195410683232308016576466809010690919394446869455292775356760628332748407243973406751377683208337025879463595809161859973217109217859170050033524652494757862190575460999945052273655398397811081511327620135033966819007374605791662243124010161136857739005230859764505038600163944819857492916788939099171014819943826820819816012255587834072150696117194409688924942811262867227378130177056375334273811801232481229227455267118900642088064834151279925338027437595010548893962331445175810507929355381875060348135470389712005804153602502529105933749001320930033447734761123267765243617171796355861039314365155627784638535700229918610968128505320109952333098389169291623982073066499972468413921780012647988673898981043251945438999076652554146968455174656984056314784171705008296012288249820655843650614064891536527801837494639954820727057254484510048688739298309277152019989196615364887902879390021635042598359731487067105999144163584238835174010083322512032557276855923814727525198084346594942890039658435896383793741213583432536726202328780291919346967949492244563652310766893825918491749811211297373443964675484313098864563874224229051874289240217452180473096897328196678141307355748797218935894686602724510833306538937161015794423933497515459387783158590698475102600325144675944627612717705772153925098779893922886658342230019574242051658995289458263260083970112694326344178529271637357630004696576346578825206083120624719903384857390511652530820411281291900846426209816004152716850628533418664092615437685318325747336668279541675364250265469851264848945075326526424724633456016911289170448406687093067160279209263254360022297126464267014416323401943697333704113126258934791536197785269551347701560578239601887464143027972725327945817664024916675559556533395780604435150223520774204438310386942054984928825466607960255621154436418015316964929257513754980689311193110977726863540440173690478646464979743550587805938946370826177352355503424070275583648034327694702622784511169335558076712891114748280587272820358761533378163579709194753699495545572753223194233103537284109618467522979193474376028643341026430623416825923830819907792612634624530721584204066362354504357631457007020478441841820897079329423257699697176118413712889239264264842559149864037450440362523804264761033236682033142702978437181946127133697330420598465050924283323233919913498301824503603842346887063490181321891777871766907420454418855442343518629978936828156094210705582116349375609030315395929970045156725557235382290135696394927281999482075382536990176803666563721042083984274052564227929561748628342460084268447350185715663348439308555457793074004489485740517928431096428808236260258667439781369529918891604989604837000040815512809566242904543396083285319487911889779696904094925996288702853368049402697325904515566541488533036629505365415985322721595813484350812858145673471339662347299165971623952486430204115447246978565516655990752991926251542388411476688894783854030907996424935661433836850855778771372222484707421157219098908691745199996837098543543846735570944222313507052496343358404558449230537741237307750998356875694651362804276640525124503790576238575739389703824559736586376462257828184407205468148861368818510644649687649110895936695517859109730537411311778088948158485241122885224900111934686518746545689154683159261430974995365424737745978584523217499058773717714663237565872635321311844246119581462218199990037508874167411022839384137135299519441471282042753297182261750911707116115382589721739372642924096786229217472546128454584300360324269977879932705055939704228788163659379566003064288037916706068260552787896361254444786475499720471589887089199800013367117626516399701778615105219631100589182550470866971473844074686526030232332111946006032933101886294568720563355849210058996006436436211883432798667916266240062814415348480247649193820958417888140636762363903889170884078385034469431152797012351163942060296473736274175039952784024430853940357972688825692162355777436843413781887041371012802474548323409367598039864958385892222094982393243867834192248488971885293896867534802581233110144396608789880833658885298257931724544606497829208160110834109059636325249030652988136168436548358450822841144289308949711571583088566483280153111100546145803831137325564507776555378318322765804412253834530755822209591427539071368835515005790094717092898843350387983813851354656794771534957024366611403577508541371069920128136777036311552236238186223454215075813893806510152421064506236573820186184662991824135580222238782566468217687108703164251366430161729623389852440508937274264263731318563076045046004966881675771289987206075023580881759009179710111124470348526472856604680877618253439270956492367115189477810582106591691754736072344976767288936912064024068669829719693155850887317020941556261521329532192704121758295397714491830303917741416892562184616624536131107942481374863785650139684747430247028750428683956710407749521359794937766367047053358467523446059726873640441425129928956650980256628023403252458462787806839432084870864859535117665969387516121061140841369001705099645728750925071640882215215258936089033793628681187456044830950375805387041642803390964938255031340979135178343762141213525697337249830702866340124341821596904029584763635516896277396608378943080967983183282917642882590941393580236430917201125802603137472193711223339466212601095123191388909039615906752546685528907913953533056705361183454714055283814886909222639503512942295418185084605919355653604689012082928258548374899516140752500486933653843366681546780974697320671143172557970765589697105599524173657867726711518088213758184478591891108862164835510864497696081959376926735421810904781369668536698101269654685389825437769383614037351722134346839159964840645536249570887849343850906140154889687211573982342200493112476581295863252199409908720291592657213212429558462157494956562707999591304486452461386775104964012881481523527203297131477209867902113191056572585679060848834883061156161698319567564799591708293198754803667777542647919771048776044609373890720568808736292892362376476076464876878991459718451563664695600105052462789811143966751995787357092784402587755619460396153072836887586531824962937275056692367709288035494030705551565246741274411410678581933574681829256644525097362210105299209049440657358743048038628886848533742459581537056409607850709690231965625200166494005401454002606183330634069037081453529980703945081738764976371811760909896114014755788431572248666303610435552103854527498064948478202876807676638280725773183637306432954661438813589490216832093340724227354133943522282278032085786171023686605634514452006825677669585081097528381542416661765513380392239682710286617623408480755209966197759418667536766566271842220899188635883431046124524253708756713484363046038028865121903293246015406000788005476365995709525890368955370635850290105520403303240786200073421447275532864270004592970130294143557278233210249330570829124550206106042977989941141549117730570423703472002782296829400545861253275983175565328192015884602488663937410196958638953909552406475748104503573974572459618402458724047627298501609483387572561264297183495148276666762748961270380110763480353764190351276553388319754594054016692045193222208733532293914163130748748542949728896183038554013695310422018340276068415144778682389245452896700202627831180098253775005034133424383288582202560911926270193778552909013124555089254961122411678518572698394476795812412179839600262300985360055980687860720938458295114774020832961122264799994403450824732532036562680306185752052205228601244672160284296475568333652284886098713993993603718768247961345162026280937432400644889649152452580710124786867260695213479598715804385046254682807453872354662951737992471950696796828761493970741894368241087040973452530350483707259100496173731130421893342563692650422087939374338359017835449099961911858087760114154826147822453447042780688881026632641527417675875426710869599651600487029404976429404326957051794234944625192496531778465162841492524235895641850915947169530475258828116121304775145056365797426803361793890677449501671207577114798981484095003638561118844333836448450364264884548653253952898193174223634614259725941831292830240091374658703840194907968344156168167583131471384392488357164900082753557757761814814453829016875777691912284703178188140988007331074589200540438658868439237868538371920481922432392089545532049009443618390328092215794308481026472685587505987310452500247295843955328289451950063491322390882629690977648269242166483077619146243287014093987970059087473844158227435364929809412397175637899292483806429680273555521850128413840461983893537799595918127126948556223947137120678759206928671243447411196856382191775654000077081955976115612045092710706497170262575067741587336953693286234256850129639103938684372001764206714664366170232263805900840430206370153844508853580849820162598027768536899281191760351729484736483427508429702167670144345206835083607716027273044627973746788423766309907226512656919383437232092851168675891848639949783419936156006118028126361891387197322407640020435401602799535808740167804108585350326519754136248728458923291683690183858925139587561240190889534442348755140564040155884114029333653618476915920875616866850862940910242409363583511468328769086932230939365113367247228555244477523965697498598664916806392545087663222282478037456826593956757308866076683476519709917121565717436269834585859863718113854214820113571731981605807473150261767222223994379584145460670109553686362358974646967169992920485717253710069376140602437482170885633924389145588590665642641028710818455274454205312736293014083444099080758687827305837310338782949877874748200072296025938658643514007689983053009964894204741966916497855691739172425105787951170985613927264152127213949566486027888167076870089589579205907554898060333564913941106854794906302555607972818145045671199428907472488705860675361847468582917834125088830347717609183241860859380043433315718518602737239042344438684771234540611149954879622655005586781915612765806173238443185282718285977441293300534480836527376879860447323909703160569230013730373139397669128569440056497719670013653824906808843641039367922901984624510566487934653541711317733837528287942515268621008281582066142650249173725215405529051529261534915337190447117653069517400583997586708494358692201762845821479554520094990195527641352525632300852014479478770727840933683709995671207197502367924434060544661261428384900356973563946462229185820223126065347454194183660198810598361431299455760625547928667281354439734693497649026656509637835509043029209772565552521404839194501600585000994996026663864590111901401582482934748861506618909433416859929207566532051989278209321990186924907350184921660378140474267259531403322314801401711698543562611421271858717246261649094531262622236394311719302074736761657237838888025279721655674843330823254955925871816758539203675794734689938805485693048537640125978820071798679148653037708506609527083904320463140295981175078928278585703334255309974075121445943491393177197696379618181702945841146961278648764304907390211176248966985521975474964621596832766561069509926822751073938552097553306934140552786711690288252328214993821640870277775853944571568253710703709659128034073051860355225781571013674625111154881958891395787736125702065807637317682941211323234300555656455029755640156463002079114597066736055715048646591833896401567678089161329100693488114969003244982828833280420299516661514071912067285331526074499846481219698380986016159637422456393276702689559528740948003363308651935563074461803228344829382654576342908204596997347560232223777625677880998192774684159840713444983818814874004165085563097923420683498739012497558760593745410784233299937072609200736806287827801459396003184803505267178626884155442696024877641840840101283517301451097638658695925257813435946474124454840032204682379400247333383288920794606799285613452387935296976152113268617654055463028659150005014740744100618992787300632907561350470739295912837912457226684621424339289426239080342104637087839982745619109318335432724368416634477281851132113714356004593715520814460964946624611971605034972804554809638819834393533334081619789068456739640152460143760053254667483528312061995340966842701308508540950471164379402921714130403441449212093305709901152072293397622705098783447301906427435884843344080160276428173418629905003282879704717250582690476489892665953331961273840269501757098436845029664874740553347771795880337195656688588332974134631500035928262684612858845074214964994755627617654854560815856790641994582134755527129496161963376384368509607619689139827527720090559563433275870560036732358054400460263124802053675632017826773849390295815366905223085353637060073724710722787131616298475712334532877021881796281348565955461374483873237522621172061348722928861623781675067418786443704432739968145108779996577467826469426212950138136913022127059645878397105924615817696582300550529005637278626336487210282043595918367997877087886985802775651049481779315683445115689614239069973141572975149860728400706658457261437790420809142882927694832584061567043832091710451604045510080777153717397779266868413378825498490777336686579569076624865959737332867644603866450630461027446513967792246087743308735817550890337358441013790373827169161858339224315514365783435030657044257544232019192934005844912089687565196810610078424814959555887446168250948285831992058300978833037866423942083361676250339564458036197270223146905566632250645066786005567776655841054235428897138265764187962034813993259280246259369049013608406042698297944267930698100957164509033372848035804866352023955603689984620201345256161124455738891369397763778990016485952329711601843994298047377231149904512847872339093530599196451066282883159454862988986950861687439669206046732791150915541590689375796238929278441065697494867035510571792547875162657417760863358355781482126083336916199682799244169210424527791083045883240230325897525953454120005551619230466822942264975607094301830541482587702968302082071263565726309358068022194120088131897264851096667532689274777069315537673891403233023806407362705661715737265239770225993908851680005080903121477566926910615407721952248807739393849875546841327247222073270340099533233328549242850654804450891636150075993668035033636210831872057525729712132250673857432293976618202432375815819614707928732375501987721577891987957117086184991667332181961500808978198800369947292284723378316477315670345861667872286390827388702759273690836043890289292278530199747921297724027108718400154571785813612771495520495289477178167422635857848844176199008304787586546110683369008831437225103511022076193575316590218820845385179446082437688918358278487302555006260521508987149285581804287293307250506013984676125125130262731818169369480109150529886916305219019856106817880949698273106773178467266732432521676103519814269703454366365575548820126875525908170204532687845661324447545350690687855208700740093230157389798091461256472224153037363104026331412254925007520223905576101279584287703740985222066322858180238375707387615532322126263851946328595571601489876597873752420415027641227310650409557599550296705458252771694350697766515828226732952453634040452520812093209874161508049877079451752786073742453856742091889580825410106236857720580131787505752615411125771364614872001038500008070735415463726331796211274760161840210516787295167901817399663521195287688903695214445477726448434078787421982595425454340576804051108752535332238231433566637545710068483534950983467400741207842854580967028888959807678852347267813125999646720949388709883129707556192420010074703129280703946822216485099163621654269926467921457183747621985451135290527475591063808477695948350158042024771680934547713774220219507394183005120855936450521095381605296262734443262695834939213020054998986501018633556482013293458985319578091265397889587359002430154824777797041921325286519851433210910362660692270125314050716306281472631403460840037915012111286772087889766872619450929589093681761219860127886871760027653330442489274563812120923478311441677557625352640687458583724615200538585226633892611794624603815251193452965055099796146211755259000209897007828942989229743156409579270607779706091168794633429594621857247280863281337248887619212826080075673067854057749689256331397095203075671363336009553696757285595756643273618294075863017032554529871406112912915189287778241773273486926178103061724338416850851316562887354616342160046065989322322702173427389247459731604375334977028266292906316495119717082134246022476741339071786956959696855024842222547487780725391478678033021781798898843564598847984992906303936188360916261329772346238430068293852018022827330042527374893130325058994790584591372031915347374906483363396241417979850964699213069661916226250586012379223050065217270813148883806638527316455620257896984865142956133499257590746950386702690742206304324036927904757841013081150026099346909285929716281586359408421279119320191141604772250286983318536200173132076790680525123554189856081413045356703165090410689669092715597534145018375081494306595845997842464965293357334626391177356401638800240908934644666732924138530466182615709029489972649753860997895335498188380106417729692220010957726458978095161608472743021072886470681276791880997053555429665521465845777941252121494545522012343700706488096839432211572692073879377958252944069025481287052345943455575790048003962612267586671224014119298871783852094346629479049165857772909294015966703139279093872066977902489863452189429083508977012705722674171795036021502604377560023877303752846173637095671611464324441743710356685118650462936481681740903156352911305614841649254914333090927012806280098929416371305617345314402975515394272469524273558632297143496950679299556168364758914718333721479958157953451282225644171772118692303090986324451845144230992444298816380225412475531686841347719474985835023960597148663001430182305030678098273064612548302466678718018927185736079272770350011934412930483821126417194021932477788389418925355652086418247879884555649562727238567845246317005065335785171806266958156579499584299622175833965778504262866841422459469676840550898566251410610382395409607921112982860685129275724425470562909898935597532686932015633856190738861853782846900592731445724204380126524120179394680485219137898913216776168248841895554932446784869292507823594049243162799570223406492209149796701644395502142564952223844555532988107811251500252939045872694879821469822638144846322313233577081971407203950338105668706742348708025088932662986997758717838918451446906493874127266736547329473315648914186171890783448344479912321144723161308684530343120616588283299040236035905096581937074660673015610906910891309629806323588086876888219897556517754745244385449168903644850415811832538734741929451003999565923002298594937728742322630775415726965806081550719467340831658708506670492466720792278553571684523650828265841426579411052652622869761171971394377776636661054301096747740520098768625784734609698045158854391765761360274479609689650670746398663658854275036388567872998083731571071221935967973086794523012513979913779757175348183539664389596051555613051415781036940325861525758922835310900581824198166202721188677342934259169118450544849860892765588494326057391166847744222132277880582578887001082401659402757750559291925183297372948076516014964088937168442856181023984141843399830239891907978996931409136349444834204282384584384482954853724463212306583171549526771462325251381003849470553451520901166736874025251723770677466464069289517531444035421947742229187482342470256403545883997066408873678806864376877370052895977816665465269082618643196813418541021931942646995087443206172737693955043494559891225695988547461476953365600043228248629383879477977630860709233617211847688442648065647732404587834644172844763304848771925957159090581577034295256973350574753481072510841885231725078460794915018290931424604578577064067712653185666178161075349368974753122007903646677564740443741441374090349250832771909079766113306059161618814594119529313813596331899557307785899715199530368091864039272143766944079551320712935012575223847771559116402710385324102061173963545379932482589199284493788451181234036959447911510556992117999571821150549890837128468013551710131856528038681185295067938329289404175382129796430108553939416087760623457251784275704282475125221389514359213557490708647718544719387965477507698280316066437900644301253567392745546268732397497272110783204256792801379909504109501691009441072591552993418186455311154952190770075563302223657792392602232951942359800981827536035167735812240005962397344101769459535889088872973990386780070207626766101185624125149598773647344544664241904094043620416414693782586708189619811489135948841027097327483603988648396058131193570964658846627223609453829212464011667044968141370304483551370466077487714577984247622139006596093510555621258128198472713478302469481383926813324773641755705473851526198766223137592617547594465562006237091023399161135326604022387787938337813099256222036896107638683050250765857417243107094959377275858926182684173945678385168234878322095940925113540598636496762925652219556979163983741944855738719636442897155412268392773140453904926575158491169670829385892560049179075859323216040339181508048089607596660055499739527757209560690128824572229682388004037365943018794526464950100643979568530570786348843929512906123838480721218708144461382592122390686247851353206523744274034063641352199870413538537762299076921803250326746548124503135485662301998528075069184239272084346556389324233756867128217455138731490585892860461544879077780475507396099485686558491412563111722584674845333763567856610126184601969033985902994758522207103658004944146909681247193412703711843889569664066239969539671232618698748811520143243093417083480770907447287587999557266764964637093893597419567057331219206601103078856329409850250420307311843686813640524902006544068043330433959848536193811349497594714644655660631343242049470737585171380364222146188792824454716444501540017163786951989054450275041151816109590242367642041508603834303872418734757092160920786968472555068033043555794049307975865746723961109902012737681721004180392722883563987764461636597727104769506286008430023436932529451572734221862174874888476848283612839306040863410772244373999957118426256456926711532692273766818731986483842284798470237246151548990048862039428678337201197384916702141842231615690702718192978159515201965470660234168381143747605099200073866412446719338565893197486940830408106222999148613881443726608063582673179739862249962788339070683339078748857562390803396292544747728178912525341045643564914686529609513993755489019259379321823686488689000791408538450028599268567687388736238449875838077531480145004520082765427860406269222257291355385120072669474110175080304287687699559134038749810647205452007493166221395893791100515209942859536457509643029383016241229698844942846102067140659540859159730260973851968387072182874546772867576647166169195616684384008494444543797949933506091610819919447248736627265255449114184363111281563465445788514028382312417647994275512427043838119972854482963209238304833480678624318605893759164707514566618366235714588857531302189241924624164718252857121387775560893839205805887249316656773505092182123658347468247574489182035643361946413718364766667805204836915358593968795811988922839117271356598134438198777859385564396110509308882531164871268406906268354505101862734938317713630096600136189961702425559380616620418825216694771537099462939013752305210012047361317761473743180379020549513080756179049041781352555343502713549470515058648505552295993078982132427455607863499789738770630220934540831416007767927152654341277787900997244088371823590369254034602508629602191383006529195060721240930965642816801085594034672807250696048162782737266619511091616613166922207688270925862340639005029100084736132506209353795211995215966030223636947223811658906476924756415357593582472545422270727711217629893301595999004005562798030704178707820481195933319444322536031212871593522851182270673423213847065095722775297869105569718076229987439925440608194171013218579242648755062424656667007079130970787722178217907019993898928679660045728333978070424150792646092362354258959737034642929003491362589726906091879731157948793758381391137299086446101315084818103475555762582453767637219736540977394079382012809596219798499710711984833635878904749446748300583140170949138968061311509730641773869414512626296698344184629686123310975496917998177816438656063596364919340049017677901693422852308602721699947965004861285565824487237057323879310681394231650634704330748127553525096671915222852976649950845757052792227783809841490641105651003571802646972874574977763856671641586427918378560146211270129354844323280318464298483871335159361436494864539725307043060969662154985219238989276210529895145104842796284346480236530177433919923272503552673602274047479491165331604673124989840105583476649107838506178737579702879791612059833204469295468495421847013550099238909365625159868761980880693400295154095179105293093904326435564493890391517532908873380684773466458727622860056365905345747467229419960378976864373737866774893253616572577113928784313566016285527608297919534674444413280363180495972692922065767518791738328821907485577242504714527167908994158166266286174798506938671791464831610096200654694426744640949585268083105689687747826200573801950829035502762831906119698690441954204854950562139747263995380233673949763701875974058904670988995871738585021813374465459504298772612343001951987921376439332270517942968438088181531218946851895402916299674876820733415165186158003615347758509854341629403090146824763939157412476007845351169374712344112092737525848885266749582417389660377916012903384957100502049934546306609549516688769893741607547983526620088417203331091549800788899916592163905365397627300679812678531743485881626444462348395333639631359865294208410776400071143415488953605963381768184543402479616509074482071861962707175367813827327629980561093132293111454791965828949701268712158515910322216174386997078978755705956103586201309412071006261033298014182254982877816481222359948844890493652970847695702644423035673346947182022296472460782328344316988869488619557953240530561525185290445251047334358808314974373906818505025255285858994907603523535604037581790516818323142846022122260776776403185918003952935291607685108765929799694442135508977067353787418587878300571567112898229768892706065602643812627931542654596153639991811564014531525648171116275948202977670619719008234067687270891005360638872142175070312561580969378266839026255461347298494509169480541566320155519030977621297742285689919207080003622993447173255798286719065462780910998191590655493785401515742761879130574156236434189563605009770999422166347317196777573256087907565146576156740219230205675974687980675282654572333830972136839331062029417808038637663936072017734897163112915929396658697050961019454023405447119767623594367381359598167312904860209978279478501262855618553977947483014812069819075212713564665821073803221678992290482430559282128398899329929215410473019378484688231278800707329600954393166724234712895880633893982792517688794098783565220621761824064307854872676615717117929370182369613654002913140223052629386772864888139643303951244444281914640169293677852496620535056674655872181669931165620474591765812838676811704398948465798705437773497358140969819080649640411008267255625719703296327558887074429680632743878327071538788810494800511826041689663526509191846157895465971718320944826573266360509450227579988053606271957919649842662450004654318926241174429185111166206017094965953886283691069084164968477827044472047749560850207478562168481212912363615578015483249804634483036812681804188158857687518561460137134919509595507568477003112503572530081462887166746996456129479857620682107845011259604821484699337194658739848048381765800663977847413213760978681511155416009789664550903925522192705919244068229292249609621197667209158770518358062869028105116007832559686452985707044012785576132375567683933500133299225502611547681456526911240574060178466424113880621521575222052686917930574428274007398250723391562872851380562150594904617979583328592681134364814862867945756667148757677828272809230948664871133918036299028983468252391022140725097289729722740243542386896945715792490283170519795007574866090969119517635113579682037191774609452588864243606273653137297101438133022356918662911146080391334892033487093513136647566575691183204076654248952781781831806683687105429695676592243813560008822709668136611108039960665844442685803955286879910803522365428056880939908215741915230755256919060089887138971372389627713144759124310101453327314754492679379559627662822161177603094666647389045174290144505565256210407596360920301906865845865550276903121995830476513135034871963371091902409919386528126090994757944980590254072117830079865543961988222721924007363783198858997093711089272957479906058764288036355563443518424387894059137151200306269944837466407115087698075718503292787420882502001509621399301446733658338309989106532569814779582294067901353714053827009321942973548325068884817623373191456391761516083979969949597033826061482964352223494628955350448880603357878168557355036889126541636764154217501262725931742294847499498333495573488258980046121481063121314723495218307492041153594289953156239990141629169735663307157445390722819575367166554512051131081907839295121075171220780920474984019736718364680632972267477258179167286867692541159939113657240752190003388486937296058008394572314152313216665160573104612479592565687178550530456342869952024248945432717101569896759647022806125990649468859304810635715824878279565200586026373095512362835226008153482579226097879405383831740970356139910364033540281750831480861773068609798317222820419809067923853832323823431411511819011429005624332222315632340666288167268561481168156519166673552810714164555568857820074702805951152252170923317366835006816742969795577359185789924115024486865921410463684435727405445994795283020307427826875188625258290362776687011500562211771720442073194106681632579386127772468567529505537396616111033929899920933820990664658445886531757351024562459048092853226944735157978050867132545705696955992017880500306338651370122746452246728713094159152444272857455232475911134208309876531918834098297471569104481727045426235008198927078158536087090306927161007498120051247564824103202457774412805853925956348796084252227304426167271650045481621195276899721658900907898049164746280564095862051725539204420182202505961355711481270269927912780527212039925168085405651121988676360237104596230658072351033949610953512216527227112086814012902006453440832786149563213718888021884381401343880314077012518799917781306691421970969147083906356863089795890137035439424848812843692389704514757357303761610024846768787660899402190971063012107830524111216169478143457993063961221070452980118684236430172623638659692130924738053846500920195935707962908341524685552666724481926212306182984822509303426986559076211161874537722502068238904241144444440998085174813373767364252023236270549831979948053404900248317483359335694830396009489559152694038669766400038366361055088475663802838677423878295680514647871216396630716761819636148907924617728686604986161168748936871072904639263344288865844987536436628162000071581769502189968044697475537657273629830056064652992275110583239803437683056661631351938688532798457771200979688955393426181879152646846443518164313694068877665234940396818402349355611836684390104512843033445328928579541643508646104898428181137082488344411054125118441510146574690770830635314838244444205048943140224285479979150828703348352323135913184178489055403083629999425178551058957203090768187998510622157107263124835323093701476318244188240429301729996690030427699081500087079126459961020727382544693002770080289232026493927084794124662430855146544196125889118806771628729923630723540105901661369795971642632528153159743414905058270733401595258116473855031535273283286546662750503785543001131258432664490630952465141299774335449068554521995191202289462690229279849954750888165952530162687423532073740888192695202521003646059795141535846765407598584214216254923581567418229585915220243036253913520969851133895264029836880221024375212939789747671725688394493983976661907923537362794416958598325712075494794893075504128314998761347805731530486515016002168513616717646725974566492304862919822971225587072130406808164692567961537015809293078315255404564160513041784798956296395530019858305223566882757345514529491861894820272797756073899883401565177049733598678522442002514976896873907842807785629892991219951388459282126763425848814702769372742273580867913804220725566647892293219354771722389308988800716865149125025292279549799451525637459329903632349528846074491725596387506126203456837008734062799115177620376373755689798007238378803238975676269154415034402484078993765105247296821320556571367109055040513595747227584966005462605431012587567606602946179401307293100799278702263616085211866660079946348836799834480654746960235640562747300886351298008637415859475643069286415415761922906757987785306703065639790887460474447171907725592876011121458124019121673610452366586338230608338361577647811698870844484912060859622289185430068941727163180573130867393220951033700790158975627016050544106095411318356496288959872579005860089405547987577782063682871437549193741520562644144869304877217624784798106028909977500965287962642698301410158746763519863326724758891512822093387907243719432893790692637216762521305835040384052583268630194144657937194967393527031236915693269209999730282019877796757558856664098993917444105643366812644809944225404597612268500686295084781394836550008103492032177180100768659652160024313611245244848546245979225610520027603162406098782497791294045414578585625623887445587209141280693957465978354519116934793161424910520361664926285569318781746496098896031622368965875836647878826039671472259720746837896197489521545330147867772540145405931632358377385743623132262288075859038089506743449591200784861673400616002242529917193430661575915870031911458322949113354170221558033542003814161757553873909640669053916787384454241934906972251911333157182167965286249636461240917276884573840590031803938588596873576810439144923609732458267304201559228445978520861864033470372071239213725881655570630356929616039816200747102386779586104964607261006200115126862046145101704002190174453046770987766275973021274809869477580781430639575243740888910196196200606302794410269610493084502346709739960298020989370364830421590186388188115439375689739305691084349389021127244098497906047539969983840605568437631201660722642768189011561231138647484627836755981077429878569000176837187681829135999037471254314157598297858818879120792031694867944833556286863767184801773905120985030862575479778591054558132976843490123949335953386068905253857661075725246489606643705306503717774897363626662675739704388944352882908830916137405883785731406195757590265507117108108017442158686269132563619234445244645450138979609026284926575191897665133653718127847572037716927358917852250821217299138665992261217235992647219656716121118129518187487499636950217742074116756568624535659737572413157497304216304814476001569752090503319558142076572379000478144217031818477049234013745443142755658193110739731792573140875954588312710153674919452899755270207191272056381296856418475903279719841909330799210428039065040076441864837176064523633728430096513160421383950392142294573910531068741058403692123167845162688320911775052014120267637596695325976441501290821622673061539103045194036425312703755008041676112130574718145203604864844989278196810179098819194303075537076061164830929057699251171016953890394813021612932899580547550410711738712105930034667677497881297556533184040546730062833351712604975135046005524852630457228206291058373541938805315847349715366796272901849670209370771792465801833731957259498032396597199475177582141583900569227407703997993790127682419203116535812299805917428005438949625348324503658880358861989379425892240799864966870975336113254616838952806952335428404327475862350605843191541205981352410774617811312530354092207082658653291279562843389567597369568397477096157461997409218824506780037716342079537589802680083296491723794620534872820934034191522851228980616392956664674155374884571724776625893183372999822025862267965348691627419440440080900522342515843431297882656733286464317559328508640255816630907778010996448343545930494779658366426757552966703669496150569130047791034222235660399056464232185353820948170068161029175351155767829893548698396203274296594157136650786898268588598765125495068894110822127074208594264713048249032328514508890742534556731113828881469964005919431241332649523052176178563304708025654861917261075398527078010357843352158749254981850907952951391316030454865179594961011940786195665669244497174892396255251830525800317879048258783793271346324330631846402775292464945317570546073794326818311287420871940436460182897477520046961221616674486203361183807787192748842842210113659332020294694265446055671291563537432576739211042023151377785109937417605577499592998605369214724688972309589049393609045429134346731736580613308652981680690793999702655927539219660178669457279008330869287687741924105194692068029872009250673430576523689760707594224214351414269724611827003832416825917575298175678508331766422629072040812626030750830355264724505480249082172597099582712262038807694589615264475052083858919627619440315232245025888100907536710274059312406306087245657378436729009484931163129206980360214391376254274409617884647376527394906304898801825923451929088560831591135589098187494598695866716131470367485952664716394620529335130429963309916477916164412849945105258211884009532810965719537387068237043054230674616956143633227618161090704922385595547877032523695734481305687012586209243905818464789560639632040798780000942248820401854885371018473934304557753329990074066680444496643001517323107261998428768332117405838960879044726428323817819090351129423834468120558043292534953050778732965776025787731514553736988395665550521966925539829873471114356579726140087208947278164860910652231842378336465533581928663227266056986172102012854205720341131033570988227211962985267739605237647608207463627680548996390087017050894780554918019648404863405091789433030845890818645684917593872202356247890193796229125545247227454121540559923373471632302816421628992992476092778141338893026393164264903334964291841915879784065067925709255642070280992564983047329229214381949902332515792078555389929998162316028224654046320212379917859500355686196577905667778058360653586971062732588274208977632520588843039875625695920260820824200619357585526628911735181370373350207324315776327242871320075153021511047689819773773082732449134666251049368812195788182389852877136747525725449172286555876089049118351569806326985981530455222285874035796686572229615297218684908152406180183600199628823278805106029168672347210590524653092372468549286949221881832699564574538328011629816999008406160603182594243461856867741495719405565206350880702848170533232860270184665920187681073145761951754126879560261322531310091173080699817447054617448881083931022182095548544997242230216340074993216581975453099841663341976658474061739572702218119683678045678217788064958703623471054972228352576859970236654645502195370901646534240597947924491268746610853776004427973080224855623796614474122931515504821154237597974996572493148191882839684278295285835124043526403760346574383383370339855226950363209835861748948670995794871902403358992054168645103934329080932537924653082316026130538741139042909989399684758291397091211585363148710433004049437365104907728553356769709599706590252550765775085534356964290751228568938358069491727042224109573330912347079267471117790097353471652684102587082867478796195021336766051191842487653321498484521915862803269841328885495015172313897147825455933187670628198525700466305782502015596365406538266806664978648454658514696510448726246305547184681729600452089492016513827498526602828426299309032058114621035092083526560462373335902466343797846925676259342547174474299135995223551453449278746369089664423214740452957281278485179373042537185952242747610337782310535606384511448618453724359972077140148461815697241282527578573932312259378161458896135737474798410445974119747165483417480935852286517992397738111529054057680995836392630427941817666953153604843756576265906280306710165604580975399271918320304446897746397935525771723621262864728677172420979898450533385326345514576646556888169546639015520070837428095354314846879915712707448396564869489542281102919265609398655036072840710229699517054256382796952622906201813809780425725626675219245169101646205708894300931560886857308929190769675301075098154967179849009597731759113506558712950639386184915234701844298950247155775472489681787986894989672273703449177954010325928661699055298117954428346413375401787003988539505868260207992629780091625041000860520672714461974161527617254325882402319066715558981364363110022047522688113488775238775219034495528951530361941581841015908093216775623538332696269524335356961824636233163224958980841392403616414397084544248542973418261584659405394149875484149966603985474846862137384512991922077892738542261919754122569943259557912229092697716915996763838470367376314952039840407092397690457440597805697880811724015818267585480861302849412018991129825416601450862371915515334600217590006573733767563707864105542459103543606720905174884313680956016539671808709306141815632932732928735459882487668063956223279477157249444108726138811594519824784489576535277560340987362511421179922810380883220169637171020240437416938989910458875533918290370223629324444644330482454351274003570145617639286417449643725624381362175540394363125338993724167819092564066332928986098108441124426802181046061877976073654209798164681790061624629178488429541493591963733975158764508072768384313862496707621363975338260337274402709143826995218668888517307181385302548147757365683753190869302484671068473744169474307070076091222453394774941577837921303076853746213691923476102086921874223164415746584371837317576268597028069149412646094840945517449539770480265416995487149994910901312971075876394938584631563617504975855279631092972705110471488029360707150494149769599566023234551827418723910391259524190787473178136283134004750166328658488017810456925208341207180617969133034839742541452982880360357349597376130479971139413817860128083052287094194223366304912364081050507726159243969405441818835131571359188556099605799081539880761298253535039134927885545608789633656410763728023091708284452487331342574460058450798769627526266335717293952859830938779835048298186191145355386428370448994901516795747961657270058737605338490121461523074578275424730253125490307262508450632306082440543108811570216293613510917069564801954654486041411847356104085339253217108366782379969152215610864425988309629942082329006643985178785432319970166348833582744910265467394040053779352167422108263264371442909247942583118007005803055768608035558724655918371600177363156974099726328005327033706821093578037950942716164894103474835578121768587008051615325522832733685686279474219554461666538490257902411074997115655921904341990381876355697789394562886952782624879393929399098553745257117061228540679100989405583549366098184723810901371179449438901793654928245966598243593463758804101554800836691607103948821541026336217471688873862335419339774462931797650998121067333361747372308453556112841672109581691772838213748395710629237251025652472506857035513637140651191855967659203077258972281591684217412132714538297983102152488612736377504238684761811045417895405131311372047984154636854452824267223441777175911459576616278841979643809019006130687195188938153607886251384715360907959885082663034269641206065941116877995438322441528004845013388042403226796710766667971595856590105919201889424103438976867025995102348074139693791559771815526044550155810512273143427779599412430350909350267730724969617540376299107439321376835904244650839775987625355302500255023204251921353495417860600495084337241575317515338005833138969679518352567596960458744020829213578533321107498326048792022966858313471250002867751935665885133080058186166651512109803880821761093894954028382392642318977225054737424031321362188706811162223055516633482362194775603921490184116720287021927789857261386756166339842705454460288028955426282298296447991805808647296376911749085481171662856530433962828118244671128407347146946614920210466050164432419224527278697459508446636064934521160621967445462631892157315942936321140567693469064569490110514961288815152486104750383047802014678293883283457254019961204395701065408605935118770620936370365299665368331341906230661740200627945533123301782513472163985531936324699187441388411983066223127082830241451233150375735602430177876945912922155767503512792294264893986163189153527407340474180435630064318679782257750925740237716394104564593323022539743941193115783357156024883254238471380775690402699013639323528940599991743680846178942396182844759415219470176961867810921166180284053458850251368216364924565792378182812999874980068481269256795876352324096216800526782607313403227020780359583493066814137754862389361202412805413644133542782014662809198088642929185598737056554148467685668891309061798901991757577044743460598436918640070903744369061862571144071095820778612304849644542083675415036045775277293447854646243613545459158759899945290978138327221312087109221948932518302129789761550393896156858702424986047158998719845823853366565351241859639849083134656066399865230576847553656396568708130761240920864575438842964880883426008237810728102536574086571378015491868479482770484586746985815531917108946878930958945848843343492797873203716843703484960307943464222241041982944545783654702781689031258775674719103988303422491984473016216281080928894485731724070377233835341072747260224135741130885366682551910653279155067746130394285152478532018293681057782696009535738486890026171637924703414497669992762788268361676897919450425231262292489977629997227808522087998283774491975166374087819379914467912094079495598415683235320183877114417744012859305470985673487878138038410747331752980456805552152475206070351149825150462256651086800147949297915204169423528656865446287412710910730203405235262030453311333287755795788666119868443667976793227640437353499024761009096879655775657677147220702535816583879876551652916211750979096540473060677794657402016730109771847796866832453939619850011752788496100886108396444955118476264606321264057935835924550441586845503112432314696693284652355625848486061414221855173094755393506362970165064581152202998481011902720071118847417621561386420689629706368745415935627077647501108034519604117933093510468732199020411792664462820462893390678578986009018769466106642270733903361333103461989561222638740900112954190116347043918316762364511576325485460457031866835344234874104963137634861745418095753879952697203106727977694801092424365726812994621505131969509427684200970707066228672403856017044806238281001798294422926696895816777800985391967020945431229039961425071983985838370081734272791196383563673477736553540274199431081982682064904743328341270964196496096470941310916029410651758488381035842882022586612110243595824776445616868579031556875031482495996936636062560822161286110751101145593403926924883816440871498006312248258754329082607836632153211250215188446779193950726615031563237633248255187467976011323699446012781145483807066602065717860147512298119179575708708276620673655858732747767406446630506976004986745029286006199119946658242309037194462287319071418877346980855996556140875447731592674601503229598606234637544696115106893985680547618019540255780099024667287722487833435280364346002460500515888425377096794475181519045510992974496329299173941894902127882037496833743480143590687173154076966530923582587691830029619132029026011004339597205116473141723985873460001800914957160653887931128241385017582361584531364743099558190705149683997601159952990572201248302720028794897034816193874251697169087162008795490905024341010267134527682894239460845737744368617469597118824252271035947139551713584147783735488156441328636142254582160022264819595794669288192487360943327215669038049626875563332988635832523096749848088324828554291502551041906391836984804131438194052953682331100960276241794653634559989183915040001919014925587142004140886059499476100742525337355729978874642129731082390191138337052862750104466268229388302122658631908203089987283008593427060100958468572495494062599590048968008085947269156810962327924571541999136390556835746300702538298956356021155461560043654839852640082088979522085541626927820359591271491431502477321231034391799750063440667081236868117041206479403880139468865366931501440188461372461158478171625205164311403927582976286293936387830777999656460794296607090573573636589877732870951632003298513840167361469686767087276115580283504183044721070453494496240991583033554056243151643377383165259228866030971133210664151369348810792119468295380419951433876050281317092743402729934992135197783889308439183782217212167635939304140084935627918182944127810870628120832917098122711508633668672197184752825333268436140008419312683749436172344011866395626247834562866470232006612521181693955570003417711028368930558888440503709773241112791464070248956881378250109952019310184595247694998540091311071936891136026154152156079653340822083599977304059518892235236018575813408115022115473046677088661589756373025271060309974095137524156192525809943680806788274956302141683056590073026145711367805216537053161797779940332694302203900701460274455371609286836445290448452687084977471159943277203868170096232847799067372574355645837452057521491411138400026146853526193189437378596733332456536959920237630448473391865660441101799689102376382343428925856223156838615703862202636467819368777875572605628725932621734868285980338681624583134236387329253433187971901674905321186129270032724131257376214059115712803704305076098919449606762132660591130109001092244648913239579574601809614155104286304016777311263264372107523482945676025402389926531019497655163762733771397431998544624438888431273417019811949951082104712628893480817165611584627492090342727726833954239639577987839070246891009487610952060919107609212597137754331673944466774862395801190005274287636457172525589128484838834869434744182025145239767661899140724555692781114164356083601255246413938669023842536207050305945179423372093014770613709691404338211856392082182863447389619309035366385242069347476434779743271587539410742299242808091181808754117340261762482579976461024816048674115641104640114274253481487790322691346505814873823160672392974426171883047298016188094538321492963689125886570209799799049290622298047238846410992598331875983694565670448673750714934227421086884977644933802551393097865767046861348476280882200105742987162805994048070413939076462635099251168658665262277915464825272085460407996142608284746750631063842201002467738110014240864741181933277407885627456989749749362650511465085450576787212071941326799106099776545504494654416337484133210276451253823727626796602307153460794788560282956412727487227760312175585135822713475236272556697994212765152069710860135761585583582451505489630468067941732419303221953193890042030367544284462938655416274899886132184123685426222984872596435971004775644269673804441992768172193029481520119699223714016113432816170267375515175794985545271350861001891677364729137283209178752154105705907148351657682578764471579488060290321770020819586222876331398709278278670548825860077804206313282738090311393675142826674951711662090137015141262315027991259989673794303001191820141527349577721815648677213572389155564908110147559636340531711806359876317051869345807239626825278157540616558839974793204199340857039795314748489258500835799255460908185340098797042309404004029856304006282889585161489794291763160430665498032175813679356181203419415484537852557941935129802680053381555252550440749722722920176415707950865270906858747971490425525541919613868082604389059258330363246507726590645119649395816072876880689448626135628223442661001402097627672423676462396131492444153919295773883301601019178664980852358838152262547620187871959197259652748441499029922734506939458529565110416271164187490811090551209683921445672326107610819697484673565350148159298704300774177063472236117071964464571935172471812508969266712208055591867891267803297505657631479504841057300501427275318748609781762133822872560425072185594369980365883325714136080859729540573871039699016278341323250611045581621895583442338124673185089532839679006310834111166571225852284584879399429420487886315523892496247269049317586807335083294678020317911681552816513554087731336656707278647097968360566789581836844100251004714627930198643923447365877793585579532468813528513456965978341355796555479851201221299825306391147053943009491729774728741059411759727533752150607755750313398670974626261984083218141293020203841024945689487546866523204942539560443722071812085226893113010088672374509862005628075986814824611486896701005703986020468202270670045632687469565374556754771153254811072330865146930664175332942596300856577084996605388542865596786588421245738006888211022400600368053684845305896638033592707672766824966289052686450858929828311306708894745134561333205327211215190366058790113677693794933759529611357779010688931283147963813740769835870777940985620603906995897296779392714781853850755095146161768159623668793267343180861232476133731718111464068615434492647192431808127752194951230170540821409937052293498554855044245300469910819339696991125034648835167746070951290528770340196678655609833841887992755842754367072830408520485288628284720289831673764092477223642456518751028404636095626519922343807863279702592863147403052319668269250541319772876377939114831855699084565023745529084654891924541680147530851592665709580916755563922231796697408611191073527649786117176299556119525996036496572273107857229643340635607631576094753918913384543810844616038280299529767800497652356834173846766462058974518235849629345515663406537956416479052957575266033661505732412376812015509416293702643825874775174005063916714213312867898321558469334026748610324358144463741982177509645461001309458631555073976974231283338597604600760037078577937390034202663394273003013703002256487749177034785717521296484763989067538946581410912396985784632370628970990474187954985790946649050365107008607002432565176155560262400350889667136301108915766639037889851908705841321656850785664799478469762748886120811178369467269307763048181166154082288091888871371667368999485648997441527860059401564004190650571072915617398506197747745193217116303381471128903540255251046916237818143430767509381973349711912733625965451339706652787909848381179605595230205219573699664758781163138048951871021884222658223258220431037852380980794568308619679789850804864214329855711353883768841176794692761048565591723872969577402518762690434010591868104082945976330654402438044905550158126274374722878941490320515367542132116926592712277289752158817189138451667386153082883223558500215919610751357977707058945995796499150028603104608334660641602684901889151121689320514495971707012951879155605797225040727683440878883528949122828672365171230459358681452010435910195466823637080570316670417964179098690888912606184079792709665866257605612456285086717501800813598013043492717929712718180424794752986359415509706112632705310979363973699956860550663522016071453989293429944100685295276035862185551224819191742061110061386224081896502355630957645670119592681853186090017831986909472566142782527909336729746465600726039855111668617012704823871628125926283970700136835206883490728789497201499532283493320012647587880504782258566012369920901678652647304140546256980192888783204888279550258566454284726417920900448482793365040196173568925877785453171992433206244153623311160960653976235091179382488523424409035386306803713521935870636279345718085673016170896260978703138149450785161166648308591515080588502536076945660387663209461061465181813711439992576173052799484408276035462922195552120098268911843181988379275514104127380498573978765025631558403004625141657448910964085304272526437117631083907808376426402079525831753328730968347884841588122428703547825521898345934260480277289162758596221553096921010152357240591423143939857435171598536157773983706747077983349930350981763750753505292550014472956756652025138607078168403307760175649004676825454872279699937103230910636139887852185121803428818908818022766575357653627507365624733288238265377320380953987156665577487496329764692917015392552495873027181427080586069262694349347002486944207703384776674741543704544289014002426266883170815552356574368436496959316549818890939902885289101867359795553409605139473402110477493271503458670292307128609112174459142738990756549211449109600599637386771139725493655578533476045060685448244096239185867813133581264177958825639390743774232378853491201808731204007384510644510851669298896787148872288389810978535810882811288794331194393339051759084112479342117648344970855865918077512734507631534012336112835377663963197014042850094708897504135670012532470932289956315612369255248846566132800228106413448391257118361268231439912354253012316407082566693633161504369431089143717846589595688556555124363198664090535862385383232773348795644756262421975302278875969395221667088384118870952529748600485613570404993366091455526081951622479568425210447732328422049226303864401451416617948660163730507992158335770455761205063968146542659629027040737073139050744193723877272152815636010292255416124695650876379048474742285514437551451707571678010416811884483116113573749210906179416105325555000324579788329372371492466916772139879723850476224935952128183849612818411827604828512572579403184017810245943130198977821194850011546585058784435154630005189555724459078973951115323377960835207972094108436263934391148233567593998965887681452966179664513555785884822960093063449462194618526107153641546038810516044773047022410705483393301690890600549358563920257852745124041305620351180156998009957901601127809627494591320477423135959032134160637726333977628804874432277507289066547101145070284598103856278183867473735722582093429884884700524937029014234729893078777071990898979864676819124138404293887902824153491767599235409099097740002466335201199215171170203627980691971017020613912302975729254304665158063183981411204581322374339497467027702943194209983161019654436598608285524454738681232056327685383634016837391723545701174348412322892249719965155283340381278244889750116864995828038631030886830588164424127710529444791565566530245447471602095976226036249948734028296249384778351616777866831602887545672418181372670284405952686142287421902087537592101978675130185874946665811037989840501442518797473225256596197756652265660152550889174373903625416543657293550097518061674840322684245083174588188711232993764121946193249352843087001324806504842603845575402299409080795406736479541246275201982902709705447322824684536350672910577604516755756771773313137726978280714218319264400535062814136985332020094141033851628708848191804834374309284244685032832283667585383311712761657589027972264180646741405256534857625256286614096530889877429893852778213665065327158474945853218427830916024964794181840794976053323409295679469136855547513197704536871022001891224273374686037998824396847045786579587554481651443297212273357577577092661722798638259267207156293286682087041827833311005585988150490528498559341213279580133146809497075877726785392331999498711082065754777805279240662303715718976141773323098804127728492198887984118093709285426491530946839721224381661999323964273077711054569668166082485377873973708539367777492920952390765851487521886710156695817920312196943067189875251548620156301899499147230520809200428853757274471894047955271601487965761084534554907379638706837481388020217147416451799788311773592071959385557120490487891089489577344210537599591611891893685723662784068530424318412776219804324533676759697877580160363303937157473663371987007092843680215211937169215844130320195782377646635199554739225261383699696216070607136989026446195793783323378532141541099369820168280770655748984135491541464701876063555245654960554801795249334885458588382409781566211365432069952332377112321143120154676847960632561209596438883172946918305429958538343051121214912454451802351065154810210385480227699265911678282000931520900555883020848894600061170461691416163082157653530428069447049711448035548461473075586980940282788216957451399409481350312442786249612729455257928478466448948335575429556173581780021194459393187703858443208370218645754985145872575720570773571960846888324232819644210976596034957582031286197359364772147597186601186700222075244275427341463713217232978693484184154424744700769459649462554399359535799295334003153873750666776671349916995402917205225661768120336099291421835413182144133262306083491216835981871150751534461283021583627887761199765023307504487488852433560934290389324863693164540769522353919700011737935284396482223318532772535108245587226012448128287447144173356796912447824563182916868872562876085391477062941736758305042611283749950836901539116701930463528695086219479233857458236668175139978286168363909305373829845678058969153491512842354342424513831113052112163610071508914134997701103005597565086973469614951365080999224991409086884034931517012090564529024818270413457886184837338435190283893827260597373562925694409370972358500261923944190575072500487520536487332087613068492785298037546429320212796829797336342667726590856745689488602063070936281919636537070979164341217477169724011722195231529502267184556314179499605021618733595997228761917052266976214379225402488240618631224258378249383766727680086938200375426102686901016599089603372397772625952584670589327978560625571840532788880179946129095710138622120377813940800753084939252588130444220495886010387146660533246204571602550139514723365954241044868663094749724887287519914742679790497710806383337416260958190977641072653650950911785859802288113166181045222496696129519292861130678222041590215556230923688874692654557529122359793824889686332143661185781963734872129152104236821936300898640134465728037543646368675420032983350805406611778271876573110801920366742758682521016177948758214287816837570890687685905753176074541570336349748054879988977528407680343720276814996193551330731748045851332316958667281799393896924351111312457951379789165869712465628796599232836253754702419162581737607383475891710920465283938153173046489952580875765625372609035167812013687468048693831426208184910701565790329347525706269393993644125606835345587917233458504408920363042545253251844417623701205301864389408443384496889898731063924267506197593746628538815986185701467947637351157868722373070571955426388602430885197151889846745796117674604436520043545650458371595594076465373998368404882028391395800038145091335204512009304350502712915706370963063181947924602472249508260983672345158133883335823264286842543557935935858413973087713044742762250371358441886531809513176378776967166651195309244790819890704479843189264018523015542572902094815445900908810130918657348315548892974303167626602127437029906294619762400518076488396950915798260853797063009813505834772931813758590278996744481594792538398585388520223774436632157959566049541455666460820932703077982013659475256651675867027450698623011230769882144724281677034710022107517926571789293191443622368831042309460960680096107864443637522626163445913695999067382517446811066974858025749601090506559331843951945522452472667706315454841210627608778383067236217366630900429820216719194576568565078551173143302138373028577333227119114892287130962356227966331580924396048883986546484269201854757144248670808076534589436067678869639366394578360756561653648758319155365758378129867613264786847839604488147232024010135601988703187143157513785286565970126756503060690350657539736094154676759856508391588330223574830753286834572386358139664576073974579544078213747231549832612719180380852395776086067641609126121343286193768367086917572276004543922243345228896374136736667260201633368713486234277364656519569806864042170510917903718842485675307070915755166742557620171934025565979301747478487372836625949256546704850151789153391333436847257026550587947949034410538007118174389944109715106993090416292299622514010914844619748877552811972103694791217373061145050314849864839467627558191646647340924722888120555665622353492954359234901650059928212470594004186694521994570875502118519162446835946518453084763019395184581671571134854101802302786674972358893929638948755442690438426420557473378966848865343590470747339133328790278428653449623842782021107111295803070812144825191199979532312043587432895704521873037305173844543899504272853785702884374489144522288640538186478652147018616645565602627467186728430773826980154650566578918175594597043472829533159316321773784661340989017395966261298475214412995032050006251135204271793239535622710832836290514579273528279333210531903140627940819537648677757364903479004144345865608969767474077609926054022917668899972758293433508822162668505354541098427245833563512102183985831830416117418875026770425910437353579223840039463572508894729476950506895160438046364745080567658683436358425600149898761556132112253762976941079025308944294185127948245671689163364049676411436104589113891466498288349206235867854353802886195706023020234748026827093976128224501277066182216374883891543209697723324081450554454974616835493140856386806763742640663463728441322606732275868937842354603936489583479144798680843829201164326822558346124968567898737202267576565735018280852229093748698632228724812115193397718998934380516708002515910571581927132082430051933050039771014258125291000131486059173727612067327393869569483109520438531913125423323770953301890820827187647104356435875668071189366851044471606064344782366627019537276176021761542936289530445506562636458370071356970250200210058984589240736314375667511026503209819572356014232853334847387630061706699337491881366815754310780424922156972139591963673934926027645104571257941844063657997948496886589153138694409370301271747685142186940755133330289510348157022056422248842627413679689091427928865599197984960881409514980198737604926328901019442469743522204910696307932559847974937721499647703715269373179755364831585376130359911106182584738393317766579350592024441486404371288022026681652177804369848919304632925950061517303272574132407443255893134232127554681528563993919607080333563018825828243597774184312652277712479426908894910743827003088933358604066663144356087124464654077397215244732654440076107815395676240338287386180766965458372692343523078744920288623035404464795470634229766881864388676034721216848297431937014427822742913249173305354621636764100488027397419187076768399818922336538229411933567749700755729501590850150550090176197839835809087020938280232793560893420688752437330117908588231393615934360820412660125665398743049526793033870254668616435641206719887002737883080191864398037684342319440678829603041818517892008075776485748118549307105996267411275555244742870079960538086124307919303288901779637756253149319252867429246652805994579074759744866290220865882703271563311294639215193425437953049144911373797507901075955983253912502735623911735145396046440434160432377142904988059576146748717339545308712856690970151730614834626402511484221645055876918160437789582264307286127529652213722842791256077031449799598018555262567730748165453264052722376089703611456466349304573239535238660672528647007910382443871509913660509471718301837943962383884116321934063885733022992722371784303709496359712056329669218969302897643070947759631499994415918638586392769981990594491188601234667721404719995972880693917689721635758280406686002644455434505091064001659339353868232171122579837123227731279831225589921201231841584728620851703355040167315694410849123871630378676146313001468875552949878481578324476504823281552102916853200998964724034049600071175169601691469979363250331250120553346274321467160029524460592079438274188784023224343649282586041145843247081936853003583062905908981068065451191993074900625974518284981646101361634817987461421831247142652463622370152692122175255355730816356982712301997680028840167523871371076663774479195284821720372906998254120461919015087108065198849706575003742400349271498388233232806720260961056556447692179301598642128612188426790919187079190192742489749181754290909000841389965309566052341650112570691838274741640700956767094923817597608478035363823518576868286521299461699577449317543701197341532019194217417458359104350423276652788285180037567258517128707463765639031177108439898662163591220243331478325203652132933842044159493535720910926856243100532169612717997577853707121615361969431943359664185760212308560592134100770248270135761743687721977888423302288741978948489236629603533312130432068089920217336003864248567718961750074866565963814242635609196062180206463854633492614064010291810408150541502266857184567324616336008882834784776860031001024793634525897199321368322006957063341782293196249543332036656225498672645403282049638870082764445746362246277422921241704427493641912957405287829454675609442906331289949408346661244027119117845829948273950292386966148834312283705397208963119733502963280764004253132962348695196605670295764434185025194992577228820438904898033937796943826414864067907584342285532522384162947789679337374278624624831626309342267489143399215217092589072594316539233067563125507300188015981602496911754337350937368805143730035960246267223759531353872497521344570376025732857832128147272179705662387288350874561037552560411271454520327626423457449861064309197521297019588506963853697821974810145211195084559241642494317336333110408538837387332956468619734995570433229375892529977573328052800376424132132314814511577961147302960470955803604875820707545662786896185789534212237108032739438580921389722545120667091612320348110323263669571376002119676823254281129311809239200707803864875681894922921397677213166080452357191106601064682255939751018265114654770421957158356981736069166524866303654259592923221353351399927376728285295426650381990916098645154632633097310634339660912184801467966602735676613419338509927927156451550127905643892422507926422383383562760077821957651568990156260309562770932486815478435312739155046296202207813641656160590946315299539434677483800504679594843658973898495779299652457661747826393235764541447753906938921428444648775212124631558416750131014004505140870214633923017926830554225097277848563659038894097853111162851604596018695217659836184827291211269357498183853746893483018035727550320802051501607977651168310920156911210584097423517315270475038004063215366513097155467414670623628901943646574145396619468046338987683202147114330109085451077439555346386183596341477771110227209936717258040271423445055609412202520539915050706333642073298089170111140691048486622401553766444210270728796697233547600080898527960167168605900237130417542960242639185727523267372261619893625655021552932704315455091041450509432184271414761979866090820598023809755084055928907278222324473041248859525799495400859642092117633551658984328162701389204013171840402744595805208965221785014606070014514650993016866564486343685389341208109872249781127330084890056988556217990715920198925421541217086507752011475540358797487846269531035522184964330204929368373255740172676009918694743566319821712072697183912550206080890974272067679601827697992590007257244621283445150712308644017641534697676309816866609679727150992159998574349124125018126403492693844879117614992028828909432711243650414897864185793774085570927459068421070799605578936775914377474287682297669730642811093752904098025438580955784727343629643069197796856559727024513727454192649359384214942381545231858906574946836786375780815373190904006971672860602891403398595509447103330869550664464277109279673594500862534452866915334856000412392078604231842926039122522438181968755346505113856154135579932794835398441802261057487924092246002381100280853757314183875007446994125152555643079606731658817870211960032036527795751499919871593341585749844641317004719252469667104115148350390019246800195743242213899179088582109279684133267662947888192508895705719382468800590649578062845337805823950994547228448984693202494989408726937464577580574243641077562101679572157784197537887980073511058816177255997489474677758422409440494777843940020718541779990421172311769921146672045670048696128291580004112181051639041443287825112699814884167970950898595330497430894858028351334420674936496354897592058411338388510500331838722429255893103558893635160537487057878317672485159302622820534787179011931054677818793765198072787096367136078309816927503984446546136655034896868798085469289039857321599843694939066433132436826734341408695954539500554976649272567831032759835336596901992501658521274353923161159888869146821362038451095769973809365522095923466506656779263259442845973988991781900792700032414482688820266794211134577474076011532340695688928054389177030388359008077164723994165641279508683889418508988765823616087324822826794515099264560749409763810366199787978315409471534638710210768182444313724134915305842164238951705321167650243777678811742507840523450350800072936373981214982589528623457247329410043948254584981173368233057190086899648903976596032098311791395403390322581698170850751382033955258778244061920633310300462595170134949499970636850402435771557861546598081980192635630247034096461060961625001075512494550682978113232162399887359279585094922447938936116399959172492012136776787396868911275213385457442175741112027528173003903664456907042088913739547895288712814669434032531163701481251218900749227727487968815463943158836026280822230958461026767979360813892641692031522106076585796064664951329017803079734409877034475828742321006559161721170570418152673938929711166990980955972598694658286746270097751664338876820282058207715769233201853339825428005690592803140056211041763189084304412032082253710331184836074997521450003959511533374425116225723233357164111551474852408147490648532919174707221484193992864415392010332848107079330535611742213060206331683686023255902314268259294928834733568646383285115946770059396197581891619353543953453578962934559336202432832696096250003117614332391344058556034872839356115053689912205216992252451987011696321895099696479063892757216708696238701677237403932690154616440967336314460316352070504236939266086243827334804096652578168594592250728929404816724438537056344868650917957791740781689736604672252514993797409991180301692347463754442534454383973150134012231954868607210574148445380271411436871903546871449012535733070389677876516503595275089547920916816324709659348881514311737408925873094269851932236466697182571396582303710756227768762432236952222204354606211694328662906930483852105835227716306550496627961951487146055917438851104171851461975372897610758336897467924024138612252631051319912318968687873090656815277559922662350108037683502368817353836515105508515002902058443380165852929504728172711183368675222475578977663833873019476693336007133841503922497351625874044769250613993592104123209723531128676741641654589101378466075541673965178673153757471814199278641903127873133066865487495859441353251202057364409028991397672089079976986060147523685338655625347683430602074234057338167989748173724972384484805515827827251741127351714106887381204219531265850607741305999405096586402040103919893790246213204886273607484815509964227784031730791619352291981280155600111771579550873675353983026018725186751689541881668871048747195470051984393124893799148061342017760534451290254317103218998608855381294589849545119518573502401049078375810877822164906826311605162536753431798614336284731531342980188497180231713277083257439576193007840064330757531170175403766670290197291373415940990290778286408437332747338589963110364962550730439789382007777550445830808035944449276835276617148641525962859571895434306812302894532238261626416952982916824953302640809195581771148498464781204446034115114985118652495257929694980743042134939561466872906637419109851853708399616188611777137223185963217373603108945881998483573184036627760662575664554299137012944668046032842750562056181831890448785990752406264675731649479490059586352258212158241841498184875613762277367838229211599692912237036614764424657439347017165166421840115842456097274917968936484061724071101672312650491899610973108464932534855707921523645003429464023217744559113587837987528502101052595744423051097649984998693639298397855411531715100407991272524751358162521524402113109805219492350919857138652998417163791875987719525769955094317123583609090236251870817391907528452704556504267595488625888812483933099380349008483534979125217562097901829136513945485825615721223903874642234926007144855133323504793873786504296125639562441530273117334801439013779631273785047922881423231703286054804167508196804429197857518696060858198959028254444475001981840884741690559513204668574017398671351406006362029846587776279107093851886591079778951717709305105777167968064214205892584349215168437706724334792867074171833042308218882282013239396553848775253735467477354293147808266974360732456066448142463788848485016011847674024871298415880686771305791851694979161859722791599585606368596532321657974753646058065527319477885305428221273066896500764316385728894449632299252380005018601861151675065225681514547532278728833937732058950953479095948302786900195131715776139383207198666364073934090885251651088989866809212448734405833436731874073889263128248737391897537876593700696000015636597192544927479564059146308762558022986171270975009971521170026195543202770717503904134290046951238339346019690288348426766779181417444516339786487345684763624033306322363257121299565532367423380803132524138902744558689405932056597660844394636659738174212053384349760931625003566409744924289366970215124547751036787161328233495441329298082697852158358126041787103362861095073480624317437364467626757564068035649013501095255627703912757668032881487250021134647381830816830504421499199148934547815615760943763341086735414395953049217755265416971113720543926806612218351658351414416145155674849852219470026005137668401429798629890238386059042149100420256886924303859374759929843546773208049933074907142551932364915358029582806242348766860076639381873812096197993393006309196209282328343862690133565445127692985825652106204584006944472478111735823206832510147789261069775234682053089693826785241753494316757060089743164021938972783576083234151127880413746857710707396326162626536659810057319857286308367141336055408492677106122768915912019250808489508389114198526083456784084101118657004808272856836905234567507629721821153431745846298592811360375271154301971160149074893233883156499234199479575602276549268899717248820952553587824879050473250203845658702269527794795931910730788861587264675315784777374137653795340743454158481491897860386144633027458260553954465595323602223379953434722117119918676375899049562590804255688960054737549272131127818401703701800925566962455144834395696565086959035437388376566355110637106245853866843124673761651391663199101775676448800554516121894795479064888663160142300295504856095796356137077853974020133638874379475076699074553567363496546048124157109444189252819304340373855696857175435072483011105717713368519009017114723178580262844824545118596611039096470112883939245986890414229744019008308929162767068955663219967697825441116914070225227722362362701118201341403139665256419431279630336794908475481903475673124716739131821011485521370003220236176822971580682591230230318413217236733540618920983230858185333898192522059173900723125977255462732881458195791217101814607035375378352991311072074254603435544156385447985269556763927321379719630141003994452445253532045996664836551996827021203494128795670410115835771940638690207541202742381086128193106608311241249268134934658320364869674442025367588735570776398142951053390128230768979046504202387248449639892320769139109451823041507096017769536136218872223472032525069685260157802561950409660249969680829040356955426080119096675947313271657152064185872247248074145534157595076282921729193526940545468131960841068238501315090402629437528603359890961626388657829187265255041120430136235120139922825002492817928343729859506845375097717297065953564761443060960160354071861272353908860593957868083581237430293219618676731983873636644876894000041665321002723416633000377950389094566376530435606892711455190728358745192097105525084264746319634451800718346590752113353233568262144537810499739228061743400207399737752705152835363227362782957757449985575656104175061707280125770901125564834222400144452423569617463204548115009285839197237114962727933832563143661546738000108769679352755278127929483864249982106787467655204962145389403101086871381442321401300406522234484658789150757530820639148364490089938340435336234687596525393356191660849433613091733442146482653713639812858379297234340234188222068675918044375581050998764915695213700418411048931335646534308437818755264425721239723199935340144505166537450895128485274616078706048227477759078441838560038143143529168605712899095308402420308341937619508413668690324541934491647701002626338600949862963694534287103095585571356379913520697826098708867016497481262004098013830872579331639683421779825851898836452973989735057902618644749244153247433982040490644313298276413590706386256985957825634266622809584750542528779887146141149811534635416143640356014439525347616879657878007030388207280193518621479755140457924770847960987236765912279247770411645605352187130495878131219512409789351793024340116235716541314759675939853561139417623792654394711748204359517744077273007237626661675369952882764117207128651242666678146652004444314930540285772692590733029616253056211081836002438431676005716140389442058966848949086624249898731667917430375578076057932025913896058506202236124962746160155503768550572404508385361476715544554993495816532050672024344929572313206014505105259288181120911892020394327615050028408907513774963850639429731171938969427954089682008066525833526946453476514731478297915637420285850082965552785575275428757429709955478507742814324063976876827378194556593385091380882002803462075996401898622184410888499833801557755732251244779075521642327212158338911947934398686447398744554154501659984396156949766546392525116692223017354451912754924241421985046338940914828835777840712622735980041992838207459726949099030139960949431376986927820059202273121369558441265187832545184665934664272673011200152195787350973351227696636596126761256382052539730290737600121133640948361839090501065763939773090403794792764525054709517745319144192344186598128102349941851587046447826094801534424186785454994510568485883891351621490186102765150053116151109818746704684003526942274068590839071713637471249175726178350501367722438201502493068416440288366462154153959092198239309408485190146576763853615431731170808010285810729939468680473519170106032205809840038227914652205933448040458288973277660840843470263905132326650018999957458940117100718221029765810904325571356419463214196809705967629674207892582758025004054307469352654240367672523348856115908480903494983401814239690654515947761505714713474524004362731563992242376187538343730470136607496223478159029803427192279581901608245552887704553492604794010725210698769857899667433477308695669207226836408427532338311537892427542882054559512593342409368229328305211463665439185603587363025612887961517215892742953424931277109156942520834174116044220919918696686051097431636333305456182069576807577192295917157112815602678518994401864522185256796022302109180359314099967583279273539031469083762265891637822472561658338608890593395453647920991318201095943995327647420775238348396545717039631087192320333696738498188337812830006156728369928598100689700596929601722140522395777163263635126586980298897147746839617164870528789062856150994580874745287704556375837740769244807710767596436156971362063732010303820377215789528929033766023613821601768813230484597481710152693938424243631327068439282874873988913235359413727455985993458376475378661509722177696940050137846936561125092244249759080429594434175450518866376921679721655011588284733276495070781833731301372573989521604485443958548836775833989682787710917434387222719346778609866712234569662432512001288767459291563594413601111009418341456193497593619825470787458166016489231647295110621178213331867477159618909471920985972108163377926263948537647737863615809348139979358853701131300871524444055214672642082880736989304028257200581987677048764245945578342025797736571714438477302798044604043530253529715125715434964521584661416078173134898138383808590168207250031956240138923143654556587233600805981122836867636707887492366967743502624053267887989281442473519564481075264090628662804748640932289534717045937051276699746489950847865895113178984143200914398182126298005036818262716624222734563911828056416330430479612995684586763035087135465634486337440759622685035907744825603572637970948624696987796898148218338871385177212310368356845356437261949775732499880450321394965015256903119686572645649453079555114703588208955502292942929397364428733900134880973550345937908704705929177293594926834516428127908560784908228479805956261623743600243766522231217464459719595090938790533064643552847341253386506720442741170091595011437211165047969189765025080303237661879442532624123336835878827788088633025300278703594363827260722014246289009303019561399077967256784957562760858888655887452844025422426755530056522562290105401710073697557208189364940504270954669569887176406305519437533264457931597647264111657687793589766407907108680325897591542195901298479243941935907713104543134816334545661411223576345512424018242701035400450758851251990388379945205460385409655885976095308282597748698881901019307659609480439792970619634863374554646992592070270974954808367694840462224796394605037265123460659710647776742857606471475152114223125144885522330369936430717380156279452891186640942539131262135735973636458617217946659350636977115682421967564500120167844320055509141289951211012846205712329285036570768031233883365298488489594658818963931584569065155177434993674527449301248226017780138332420766507383450121003468716265128034097725908078973438166966458221007219978405194096457079435835301975241226883688737557712623507993479545171082499465764919320700490573302515470624031665303905130126032604130436032433379141732479588479971561587489967549243628710884463688873469559134714924279189386299419702286693048238149195266327067922722957938986886731193319946534662514108700354751620024636628686108373360036629216804019392922141384482448091620753021474575068981571526892265151907937236366360500288119211977098024009772222984088421204373986772517496708879842194137940190843807952847488174000294401993699395207329697102730014869927351770530755495038736087440430733524414051702663453769776992695817185443728776044434992115910766940944521862761076116713696738929447475497839396516851805074151966762512977507795018770787803823994802771713214124756725129623722675011020317328708983922683213452945643525667986122583004168895127907116455639995846803815247203463512024990895624095945262420228033981496028964323064274049086791522066575554199448528254161151195949424653568432458181327460744273717255199980191841194812296176825892561923266469087653244243216296260128755797038828513782535947799101848742700436642432257283127963001396685906006256328393195304993813996319548402428810665180053085774283169650281199962734190802567364129883439621240060385520875134598573621899483213913045160303127234746369748763305944467191324166699377839627319078749474799014825437585073261984175518553819332916192065181342091870575246969653125121937938326316304276849533726610389059192607744078151719028116064221323887139505715442297306672076290349239669648835677648622631434481396853975566694967147876613222934455114377198249981791318645313307287467752433111907637353681469766307088491800613988460005645154433872743261536328972744118696892531612244321993418391246083898017847435473536704533028825423014454937786812552121234872273962912768832434794372658419722003382494429243537853004660063416498408350772285908597451602218367008840592347765106831358128091285939688086342111532050916561273324612869004424195344390947516306718224757151020626895462706944882313600386266087711387279381087541689515004107692228793727980807246774156246793867230335651933387603408922857383736867219409164297439093306716265637545957926669615016859103242479198397560132341957070542652645531135084175349578411806002282766691545917714604556107077017246772641485341539795779831660717005194794733843008461342839123554460836022335118528142603143402634765229422808583775974702800514417600809125676022971431128109963117791980442107943941474821049249613883654757063859967461551028547041025928168525551856183098728778754532297417462220625527295867498715519712412648635897651429596778933597235983509988198022327397129935034286709843327321746916609264868075062314125185770811021599211661760761628426478340064338885055698865818646615785235929894362938209899454602341556145607981962816689572067638562778782777869851377379887870100902527626952787950137399239514766661268645681613566228129667055861255697046124652978151589735997767917050956618236768436730509655292826820726062801297785229943200099559230751761719529975825244849584699187720187935340892749910307337672155870345458928316190471064570024182478429388345171345525849392765710950163370624313762324713455000769018032914076563926765807528556033317924917873972484468732642169547548086621118584909122198060935593553012125890727706269499273028913183635289471531291702556404168887426953087138101546679392058057916697315461595889418195437846506987576414793460795090689826613419774073912164446765072520243694836769896695260585011507485237620096188953590235006146248703560640486814910891433778864147161544684805196603376622479734875591794510530233088700170336857430302007914387508689027632369580841638077409001539070278784565208624590538716718108173541747248830703942299697870873129279444070914965794133511602695243238622802185694295075208448798377778246578668249110042100836222185075259371431905272962020229664094023729814413775493364940951368299832339229480252183671647760782736320486250415271470835385436988449099797490046751848821425118470181920104115644722796886175249157983073680390056478252123840729735967577727671875664131177081067397994724292446914006062934217012545342768484879538309279116840997984276637557664166629748748392879078691290840297457458906357905858990739051933663425757637860213637295605600235517820064797398477262233884482171373303029566861947422553797635600954345398393388910293349682333587393234085304473857481121642925902816311317346102883041575545673297979258819542471495670387874653932126557266106441187572064939822109330855631464835495061798218245592732665636149657615989465073356933213806510834972585200399352807421960971794173653992116931168876903666072376810515195725492461992221552533099200947573989829533087572626788848702330278552142552740216256802320864149923338934262789563369350288864117848084395892494853531265856740505664473699366306856978174888727307738643703149162426484457234152139778008639298181534267971879700102339800838429674029311014416280995454112688413987378731303992712593931364890518072806787776130448184782544558239391311520651970271511596225157050729775132575915128182804922176730548197753269313857445845566713929159363147821504072248545773711406272874658208107783606822989500129511693813279169311404704974947174992633989847445517897579976096750062649872685281823412340891384968598596779443629760134742817612668436149940077797900991059179911908994628571967131314803823182638498968222566270448104809642743433344649367034025904991676958153568348802920833170259497698660501880945371479097386821798426152167220588468429187863751649116240118588003998491513734055279128520943804819730082693429258235415764321450095210836313924989493213810759627402520832017099194198713833777649360953089938589971281788439288612192597031403069206807576901686915563869452253937031085980248387523236248029148913461329890423865672319070166098204314050724901425079150629275666311288130370267855456351252110299030508516412764691285511572311160123307490383108753833782903698914876287462358758933982410163496778052724278726530403263232293472764804042549712227304672412801723309683759963981095723395565787433352974843826844047586312082318995126307376651939991716402767995108799513377187877156802109209752275383128556240124920740683061579108493241121247668939441820466915655217315871105086828068774604668462147631813732594203863598918711523183251937710217029274103297726596288262822460726238766825470358054841026038901591373728987892222426855508113650213013459485262966136148308545586390015894401178981230101584604101570222760744169611393068411027374322007733305698687618103307906507390388875434354556671900952069752971628993592571483973454616699453234876765427964223541817951654316296990687741797143872861371093813463121572731167263068139776951797977238644494435047622334182214603520488548689824388237935684164669816301772443990953814334419191498422682479758263633779578088559146173736473969295468545059821512825864412685653311800955974666712302368373135630490489285160116694685620950290602602920617300242037173762500611248695474125592340418876106452314844828826845405208139366168976691353609217627582042389938945147250619464143656558348108161888142322784926009792902502150095515427747263634713761626716331369760897231981214006737223462037436983634328792961487309002572814196996990820022933298536845005485823895514360463998028886215414397482447593070413311412764501262137454784191404260117499132599427023591053652749344516541343122312349787745625920363191335193097540003472478594189813372451567293071884420360292265539844780454928691887949551535809766096301347081325073112533033102571233208749826373331661636974458721544400906259160675229375852360433310007767432791493676137215863046795592988853843050500866665792395835788098183223716862351138996286250990210771398106570274454568039515894168159545999279345257953916291381882338116316254406798424445102674898938174826709016333295417429053985058686699523558734597634894885672723363109724517741993798542506459532956310215221225006442486492232777335406650402138444755484950928419142446520225033645764093429373237472702659941495430211755407796826626810512024194093023194526293091323110267606513784658340934636358010759384584591318078680616555807045952258216035331027236429741614024738113089653452028343103837709017860928122982201000131335380658532966064402471136365937986151029442055519955305753382923482421265557545965913535438335949697869434428748376577611303853469275578348814004181001920387658507884421215492366375545748082254426858043330264683219101675696844306638882844332961986834297577877811072382450112175455033412432757611886840077323945810979976603021435266362273783086694842140789245847703080246259735011417143204297881109989618576743627932296718887064538045674941830597185618373694030776397803358177623973968839605117598543612255187057080464063749001575503064171477386085656601362007964125200437793810063821648934565253350706790215028441421062779515924109038784932724483542427689478035679801531624825314936051677523303095364435285024434603419142108453082012096408180888530102987970224662518006831273485476346793782187766661614600843462748901518263476187096025872095048823060714165469355957822104214193723392163976594398808926640040609681347273289958836362254227360537397500352709766564815313120677007108819007517403991987915339706349943858411728978277851392401659029159843478412764772665424771191941101078575580505933230120347859998568207587542654255999710884295300848914933265136775641045479093417342819875980595167986814455809330580664301333382110860440125179892977175107295212368149398442076357216057358301829789593959254398974271085623672997271908081556901054370996274618893627905132840981988707160515935803106164893851710737446576362442097476880742373382819550465010198095151363113918621998798056881763155327529908588976796934389108252493163554563342074344210639211980835786511183541125181523915240559505447049676542135553746979821017219338516531470455051573978693599124310084899769780371793596194850683301675651442317820024144490941669133241167546631447632139990275207890305389070533405550950787230050376943389340693426752813971977866969899889601144768602486398360092255255984109519325894130275209412095350148162897977406350747887755689365191873093407830384885623804950098027439241187520586124710066330497186999024786549240534432785484827919966436680751947089094663644902811342411027436116431772654842213754714270784034652099817088227565180553928368761194735225931475158628998122790328905867615562935770285523245767020953080921792075922766492163837324157697233221708757921502253845549972802124519874814080951377092272059261401238057362514260882870383703152874520215437410413580323839975290111787732566191924819078099870674526125812789509835185282117867285331414503448463085298298514907901961318719309115748232688926465532876704426956174848523964588210104747044412968671831766434581175415281482670126585241934765808870083127080564762752301638103322746416307577004038479121380544067408162381090441337781430483122958649483374117287939629601018633918626283515043580608287277959055674819700725749337613746980410877350880973126774671676483300012113149521463512487111637713659772300108150022743571083892165677282504086277306668928469923238737942430177686522798111019276883575395528848473166174089002787684751975150385935500853336536750804787100596350892205224449433750672331478002806506686455054139080653433119246007021784203268815378498953386610582002968249138587151768782641961798907291046876945365375792487789692111341396354788079080546272302948135583745441347742539223647063229287369809605462348129380873278244195500927796379101501160640433627885430921530240728951296665894572508781925225613755736600671509290817420429500054071017955411809412689666099859464146560176144292770459662811572336263295323444440515541240033828838976370025798193626573934068743461849726635707830188689453051284456321890414631009306345030730867688789419784385443213402150137399903651086565499495834061125774124510708991245695024751252395511311875134074659649813226656587571611080450099232842721861310878486023483643162755896400551756401516624738916269896198700491905149977735644651442149067287760079837509793533466396116867740098514333435247962659454829713617448250783781349067766530142039830162535192328758512167190092362393390387314234370265850361393315255507452616404865463902154306861919052844297509241186400428989843224120256139608594848602810198379645081295024040098019505005527992645922608631486674794164865815009479872288601292469830266572880655660849565685429920114888386678949047416308971485895294990255074156930954292678540049903650103701045693544520377316171935700206177611253666860248289355351708089780970919859876647678962938177649028165239050241301489057957170028629962764898551993655961726520600613841253255119386484301090446287927776031476063188896413024210527704345693380237446042551518973277982589818170438693369467398724440546542609985137903694882916697355350763721940856238098681531041676133779506901890038447390263398284713496128855208498947905461926643987756205918608268453344788239762585182021640786617616962085114860883229493223877401018169236200890624067634110052335264195321915498749437599702489955767711833164019072906936663639244424995942532464107516039717609438790742098774287093774716350027009136812619482287883825217765799973603398514776058108500299896378816777340682869931674330967605875965871644772621627941863944676963645999383371984007131575792213542970639102618222796492562917288747152507803190850776928967849675846901379813834506956974984121938098091722701079492753245918756822841054160714435113604371699547592343436002328730983787979699573740670628602271674064149469030248064398848486085786183767272962166278269828210385317405936838857323327676302883335679207836764589339631793249947418981080776483906282967457388982405756981555511093996586886427634087030893523634463095644360952035821973447346685509858843427467442153668667455690430472221665433938259346870624297890622988259074324788235760585557321739180352975912108853195676925901313481987842902387622200344430262157609539373170622128025480055146615862053426094539566006580925414147229958385962879179151862219427290573001165764427404660973997823781418983907788158909863112276443250117018159340776743975038050692871572087733038105039498891636505701794660431421494669740477481622020640921970706227366828458509613182073350657724894719491411794043358765417917678531898100564862937039197481752443858998306784968146598864061086152204356607161180550656791091767072905937137050651892531092355156746873865592281635500259702146380555969675819482622263371552117522770348666128031432980961187297753689868876134698242964937308096350539854576816972912097549428124302864290150649282340523022301384915099231278678382142776466906135809051516392425423302344709247025503774276097548616134148515172012149346905880046020928299787497370569734426824883701567986010435769464317577407340494166964519830499087180316043463395509540017156295596013782925661763786559203339728994334671948651074191322070410852579107036157201276966448571587125847638766650454893372747416584064213549375919593352686347725385680868845318065894930940126669596875388631165720065902263030387994219823401854571320202756298903585448948606192975975447524882259119522353547061750816408283320675250555523659660673901183544591585255142666916053425155319732984667703221630415635189464364756525264977680834342621413635229950455064605506084742690647314126271911481479554890657045404223312536457075468309799758797264954970441177286778972105298455643606841242328242508231381943397368425114756100246126494508742879441551197145440034208156520289687422333697005675989738354626649427681477803995648365547358198032446355645025906014242446129077191050275633494012670581744824727255866450746383090742449756009921606660559305955578587383255650113364556548801648048256758296456621404608889919595676969441547725956373427711593709515894387435269713953618389799595765068253137873691315868142207628865606481898824711466616872882551267400827270701311962731141811759546264485899578933820580528366725331635766672188285464802105771024597538285977795363168995119115331489874817513988643351893204170126692721935189984532798473495750213959094782184943330214269781265538755410682356432772444168113133055427352392165099314480816367856518381359933605323154933362459618147489051938612497509357809671424130769377392635256731061060654059846056252319506264431265885498505679014807580635056388429791476915519247530156478824696201004047680716045507329580887571848333460136013887801415216642203188866817111875671706544858662575984694803945525210880057247515601209211389785572394552761586935262652854204076599641917064001526449897658686126153129497258372226805914825248884543340538045151905666503528457555824295762641155885593293666464100847947000757856934735706817963535612750883129992195601914236289181065044834062913131954777814175569019124725908887799251600926835149678229895810732788894779583111576998928272436449721082828865721375478961844963800169766155365109039977487717952322583763749156609738995232196799409612358785014594905736884573034613273150037666203066421614197957373977780270474778911309844840466594571025585505097988881924621818405604883828727394427249434815618648300087360489563451927366201492838285283631463268023996127346837698313936402090434425085691598087494280662217340375524950230518322171865020162978321178092063601678380470342140620642115995083177012933251366855688671117717771568004735175820638726244517313317730223502685284543117477119495577649075345301537019196924709143289003936170916987269887328484884244743120146416967682212312473723050046836323001079047825401695322054471438152876879652603790549475732877983539374769395661043935673633787867889813013028416336384074154744232359509405987149044541428472023452540293785162655135329641517275061846547881658647413567656524269609566418066036427674019722614337880522832908390493760658398880476175751290583041445742357024094828948207175872307694824341083228424081127771130783083908307194923279357913435725817092366036843342746349574076156323671667156419651223090033424955442667418388605261885099975095958864506093888104290661055326844960600124147393742181151923882149821372987133351272040172284148859025712654140307359638950276981271046462668432455528633633749172106833605774502460549550713866869484974012966124603752201544957180693069710899708617433276537676363763736001858763922586631046043641803472042512230503005041225791502122865091434876562354388695601033972361149172124096520169823843314375529961677689694372887592080308400963001642191494856812920589842483457323797077418581900648679183867360498216953433266612184592984309653519149669614346587226362262545904574793310773276283833538174104579641992204909544589794398858141236456150340958394881358328700682074655553761101192530468552933055859388935353269001722828532442992868164767705785350352674086751197164682763708404930029234361181988597669306530792022595906544418787924863829077970116143521120083129331337682813651994865006481545925434512402428902611534227691411427097751360711797106878561639883988042979044580553651070751786847118566043711207736348758318745468137049320372566209951255123501186981843968195877406470655485409261371831445852507601618091755642360535545312231519001247688461864100418948551513586399656286719971540117134607062728342155922827483822591405198465739396531625045858264158534392316802720310052191937977045448070599447202010307358605765886503233251971634623989756066618073481148685392999553392790447307145900594273601791955311456032207525353725049456830757170568394120169114513142878294583078548190547534693272156435551625161301851825056157226128914253464854939042780434601429747666064392715892287843518193035790421553293004284134271136259665372519917697575992052708475223027747699079760839734919227687235620298479482952331875162002872939665683322907022559722188691024134424919797454333135609805303428549228108218616165895623058047372697244696610169378429899743511836143362453641314608721699734260635612499687371008498587547800095985454987438478540305123077906979079662636856344242121674758320174844071657947688188141136965149176714682222902025354330878921057369030207998852921768082329673516592917159511201906803491227494451787933303862512081411675973023134253626751586629627610772468265656500443840645673423793216447469553034549483405942156161154093366553144717546865108116313472560887685734433614060009246530466579106451589512112371700558116833838286111653849059244659707595563448610887020508703082023513471732584049240498753922915406041946783659894376556791242676892344767000283842515020964770688955207171509776736270915712793684917033973613385756568240070895617458926733085939569015943536238464319869904833098548194181270326153975801898863053909430649586125033029034536610949365590120209134817846850627099295340573510718787575182958504981631905034436805071210872409412268902749698093011000747265762587920612465882651035351577983165994792567339620983312179498322585458256932019670806969150156745669777156741261737089816102562376709267455220193694455034511694186712247257122262643274090748582837500119247102450974620933024656875029331811082005161286832250890305899921953941206366384195515716187768926463092382569661413360225391938979582572677475227276447610807300712665885107888151214170380726733099209461595969274951933386158632947837101809108092912542910251011193274675057456128232826345454627549392555930886328398396158851360962668578902844479526077083175188192627831218560823780707233795145717801570753739702691485152487747634688307668315726207439776089745520915711632462529588899463085768013550422933878501597247682104114223923310516327713261091847366360666995573808453875143903408572443969300466318265412174743254906770938461535860045003684337660784741677408035093437370463570027973715954552961334500857148598910253316935288797598833340452214224418348081815981326217340678883207180637141956082287830957882220993598079292076712928543036580864465681519633240392847703210471022447245606023487746742167421824296127183113706444758616438040917683815026073329083256721182329647769798226646347744666868749040255423313465723458534207862692210914626747868007768802512123745985680913361628763260201640298920504860835703785234266636927940630675081270848610271286480858632755498356061821612172129652480001919096777698194501316015320623203408486526484932740046091976149191645353079549037057420349549815271855884841979117537223185781133949682043930411730538742871577790726018134692664214281639143800722457631266961021566533308638468882083416316841709346229319758795779990964320907080025304902626892900311578163593746276684477810425457432065403717377318578405580903057247757927286708483223808524656079904548838643819824470053092886435310719503433400090520042320705071285679910283531972542967263082123758982247150469799116265644649943539811209579499264944033884689387886400518291129051083542465471481137857024188789703923397573005863354037059935970622598950499761537010976821850372744869309471733043569688450649157539288210543319495896101353111862483984810858100908866300352644912044785827335706669962119430778137311114593959978617275317301485694342683787789164984648580292326502850662009457095423471639202702267207935994630232145140687879894218298045491132443484973846786206847681249476130778284484842557361053428599771652043758672297582814086479383641265896715705236577706497050323921900974050052430103936339796044496922351026043337717855391611372330933638233808009985941407193433969646253754632547205169371463542099001417099150682600525214621207784397066949870880532124011756458593991579761699176267191081761823805580428166623355795563155869177903521181862609821558756770161406157816721903536872520957242913607151242904369670249581604740327087753980547288854574519337221004707856976910715223772222800466332739310004575109162386734519685588281111788626816920740794603984428986252734547233483986919335800077330378417793034336954310079628948707779139452165852803525659000733307219580167823002024757350535435456565551674418606961506612835217058959111904392233769747995946413358654142086316056879822371612674192889197549262454433679794839611505486074813678672650542447428462477616045880226416808503436856843818747448594353428210691569696827404780287426299491901502813323282824653799417391014405065728389778366840110475270092436949178134431948614082316034365370848338138446757663647950027233390127070270768572600629643514133081043423421179858089582440792680813609352330132074911945897817663252769000826016526586128335293695963339317488725594349787504950155620110767048304134809537664003498211361292296987752250480808394232027852877977142235582418409599700624140178321909699416160850419325120466055087553822837795203729299358181056734391949603152144515907218644364302339872722699407618908546248808066442386997251311387545252603132254510904334904752178833800061371569895864001134695571265769782191846386869538269721316029747997906883287488095707537850848152599021081081122296543147522285564269684461958876748150798803918288518093796610213703326547537679714097156690352747207257134822944654585074361174504198190020952294383685768487264337272544425711065608944561041195894513553005709034969576850511091288813134629198357773201373148720853598271777811596901308029573657767289159845968375551501629097364668197188466857125147889699346050737997498630331940142400600197083107322872537140652841777484726332230723969006945629911678991211922887216617032681755109322189735853019282798070820872736455537404048677624612374181283588496102557815638242658616198896458394115275422368470647153207887468405410525330884431218561421272563460859131352715175634000098840027286980326010968692475544541970208030402429068973104950863318624394887341037970689571166111805968995620989359037531497637773295801918362590371803672524689479941570653344213965819809426646822505679020071736926882718908042940529955541209676255769900922270361323656631152050856153547390774419292217211776978440181441154734059397635448492580170335797909801907023384567452814322615151386144766202542978461728560597069284292424422172414790922524800592025322205126913427635948336268672004666225184086723851147441971282775402175110281218041252819060988150641793852764337406426478526229897915003597700739910786738604013815942855366470977959166446894755341629426365585460620405576767890645605749752734784156361973624697883000379530592426369768689731856116577657419605686670505981923385984964887615328174120055785340297603765098108929551816831840492637626454260704048732896917051889191072153044453482634319286405281507088937380517011521837322659036449097996937318984304407286929538926216790182431198727868780959856536784289259063922989784462898475265974105621056450555926046457372337009527850814277278092141544845727151372445364841874502782319051074557313665340796039793714415900630671835167205058264398312281477405174332192023886617117200516464975749880335365439261388107148695573178546633470739939485765082964473084989325291472190931043405600475384286546065420845326790610257307571915411428996051062330030194001374475126599862165168870990259703436905985226380459808155506111776274448669476490731827169368683938256721144646322296636849040810029964266338577178293074726206271778839904698107079125011644730325392370257198993383197602476222936461883800087399315859657111267414293149029536015410996712411186229790873064296049959339107712194515387346982038542754652381095512837269874009758381304868610445804201930879853782622939937862225833738783253948100041881171004824811629952528575920015834280066043701717061748552416737568530710023000294976653679619219776433735672272617211440558926286058713749752457732285198827712215453679378153093707240197782367140680928903475730100041942223595463456487969227959004053718277657755721403054284646950641235042720853186480633365357579361905132904887324186410011356668166949711355905958799413878826356895783794555491843519127006906893661375771653086553446150147917468682810209477250262432241561659242197886131733065895776076668639115895628120558824597488629677018442821284438943663535981500781531994054089717979125362322045772693268932474669071435417031086089094859612604102461741281752303148960780564429580216401546843327734942702000513400736011970481694113238052285585798607902682184766774400074505789398297292381025424254806949075420378876864914689222979975818299170945486905124220543054731977138126017913952012825344738114904893289696428223370711800999583383951250964494239353471570082830693351274766046380906427359523651611539069426995881876832023668558864937975720681540763790525804341955462402069489361033604764969404354675671970828147247479599080099509305802249568776172268999568952458657965934487497137360488921656487794341106334625093904865982302093488943083272729950085347330833651816239596417750516900870059638329600579957636533959994004956952885855753819176005044195081749925921478284648946401486058001990706306091827637949662974237708529606236998595472438619122313677954328141002817823021359135419854080339227504869406320665308685307658309494949436747247475224564427494436596673322104166710676153555968611493995292883604046159657308764193348694533118025491916989963381392331109891202649260936349177692264052008386553590192349916986288800957502186167224878193167256696738762728570344066463938999956840542375903861697654261234775818511881884469581769610927258680535919278893274412155606982242432394043654846593305234087594977604640736892152317845497102712221583329432733804579769995164881768631853272169526667259391102215412328989871561147290936837101232712613356280103605470443084782087175962963437147305333653317436551997994981583650289881785824162969803754167023399108631509211645186343636659977623320085847152754559229206211030957238459695057763229036001928343322920406973838871389810626758110946603879543147547198484541227531039093399632174601300161703048100181687703885719620757261308022155080019266109566154780730321535848273306682425319416420624228323349800781068394104298638363171704501386844699924959017907611730271031857805506708274602951077490689797903113761351288843269293340226491261401679492290234955774721551082691512833893921302620709836383032554818490414219353259821383568469594801381411027983911825216657229874148862972032323969741856301435647308095078040772839204927769855524424589961544445380344724442088309736250833648890916652632944783563826155386531729711098725937167599715186693388261970337868643919698015511232079875914002722571673633833180280115173030784854624793874004458061682784288291290647041247620709126810134871964998723193771824167928178194435389517015265283627866354755363671721329919101948978687823881037404209071932050250116779713205095257958766360010011470886774625704960382803791921183019089346834690104735431741933422714817403155896151699861980177781224421244784837435332827439648862263830770925388223467178818297057445220842488261436939282454598960919257299207704459267798204084469205180607082767547751844604259090294220903808121871127438847262094180104789750369838971255413984175983231328156911430143850631385904604966291899029993568963433870134899180855406893793783756969100571105427078078823030499566734388893437033665848735011646545688014233827241462357879515729165178283767713190206328664657409701283305191316982889542420916625351536805593093253395650667608020336706175890587920856742243615161005996108474286230784973265447823326538638660730112138885254719527227968919559670670610673007720431271262103740726537362155691910596054369568827658234577418053636290342003245327115675521010836370757961440053017426019339114084618346982351365665091754082367475359895799120645469014040762253587425984055801569764605541341309869343662111420518343885801851174778596321491739165317369620899662467104728121858723905374448681782221756292334265322158024338287401499805168063511000069733316009841647003231135320591906347788040826402953059433645433979158384348033531166986807194782811735195510427339828136105352424136879260469873840144783705473425567052057696576480227056284190812876455566134656190631363808814062004624981405934973224607077572171072196402432636450192582494874474564957911931360684334410917380148949823611669224822392385034581441345888566795553619218755513969244661252493905878790002244159973490773170016002916896575800501446216737602967414646566830176643526009769072530934555065239343148633852730363592657219175692237406952471015529165922273399668384985048915565663377542751219505706049424572238787716913441947718040983601940844705285635563306964201734556106472293778209763678854127503102296299677056729034289208535982504503540403182643961360277981553549383932298879828942298424561896809841405865626546493779825188093527397306736818380819023621484196918806522570268034284034334051473043212701760952273718013049029844736093593344091162249886383775666991627095912514984797353568771214481697563595365196787307899336669413157198346513735423341742884286136017904220521190055823472631478410185321748262777746206791143949395302545460614099498202860251834178175377121127636769933287245094544631960456075073750376914407818219935449615186256883939822708126062140153848870963941873420652639483621077672450760037393258430734979790873735268062523195659086721686175287019135455750299190680183591341272539797240511112229803340760046840305630132537949624845705891833788762885104991562828093552361854857398568600398796758128463039449222978889188759719297014403802751158775354645534501822485716910820393272713598731031275896355746630811344592345774228465096894612809450064042527887194394793912608535342124553126317048088391699672939051734166918207345238292204030156452660784771529322985354440806952889652876516782263825915171586129811018005881181421489925366814088030583064195556621620495952703553366247706198256509560173107206188899389170868025548249488970989210111379388350046457073941409262413631691500704027067217460482120195066708150456921638976726190072763333646213900864976686360280273928824014427697820374735797180075169270891991017206762379287235591910766628967233962655915900576061531578488638188574366302104907438719153562655478902584762421104012773283118467274708549400137141303799969620519888476548303510706425734448968219074747798932567320555992871432960075469468432795283221473852987340029964912358483606843189861189576305028720723065208913019933691659782693915615468793314030574857328104342531009049860682682499787202809427644171344474708834357397284643563497843182025417092802269451524626610677716552137963448697743724097956837933395739031886740480064085275813271039065554358530762235961205001087785515397798781105996470152244595321176675718112279607320967065922373348891949861981070482928158610537063443394939680389983067591926794357528816290908017371465026655352795037874412486167886513505855985627096890355097874400881825696813258752657822732549475964970051241722580931197409491200033411254694374048623955395297640389966347550005028282920536666927396053847568201909741347183333597329698413522829668766696186699997688376675051304116094538277361136285512431805167598113330166700962878343325676354362380243103467730335163077291918909920840693797519451813250056900672554859613076351482717783885833391097945996716550163891043093751363964567129082720015447239575011783674474540892809155011890851066506105953984626191004040530189744039790598752662805366216724239599652442119846050275958313987493018359211786038078973322798717182443774404340483873093287620677711339354022850458333031320696239197262982779362679776390540757679400100573235140055775080464284504255678834006624389786346588769761193261883191854248304240024930536938841873242699406573103574901625591084593012750675652251242445544927133785993145940811189497570797479198909197706883846893263515565904020417444427265777475048086209112956083110322187346019813552960598446634940273637059998641142105440301981589443386612713431353574485261149022631307295419868323722757300164591106032263317951616904139292822358339219830868546880280542483143483094740680334270951359806758266239029970567327802201077418924649643821512211433841006921935889136773187519233522383752327462764725386852729455896041965141639367696998710788869466120752756941424381901521883301732256391089818756653321292797907776772141414714169112387406097030329771651804499508947360263795044870652882468578352117358088670845107228258947931340703232607722141778366754770085989118033904463297526592596071603513572404906032134556321292404024275153407586148087048685980734003432281389634311972768568750690993391774578826137133590485819085095144124010651934603823465069106502462531924725444338198044134985908487902068741304421355073083319035831383022427544501486979953615191795776576167238782616784304482508130571533082162634591823081155784309346124056030929045308594426561339463968062629038859457835461063221653603967166099612960215391530528239639557907226429446301531775893699730488006982440280312169398763063249076778507462307117913114693356296565689174474186720607184032987314376992282339189082080350151418563198963030570688753377962996747175020620624037975025509908081066770270193010547368248343667706868612744266826662703163357468503729867557214778203289929897987403614436539533558386924219970076721268828142638873219308479864601588876543693813247198213051186179260771199330169935249448388968264783112381664563135440268288938906435020289506043069285554531697486134536943779330014783116912119266672702806168889804975682409921378111712059115509027916605238962071883659211271552501545583113288485541002251698004999720180109296474543326184251805601122596713361521552616171444049335596401256952899454778231486463594545937894484621509139860529605574176198296933426558011846733983349294120801597922904961378953706643240047861502792747391898791516875559384063503521049747274211803362031041431552393591044362961818510788557936645775432257717872808813812968033029953302876109378626299364950558126017721018761120086573876235634802827961513111900603405118850081138467700443294298634222814379453056861392834661182767117410696807482818892448167953717266410432723733380833806982970805334776717971185731741353891274467242648389846717301032962279732160830570705866694882684373674320296580295397600112682318731551415358471528062728008063557448021165116579659329151739466615774234152858877858749914167602858630804312869692455705390361266612500194461431958807520903190573114550645538723151245511515340335109749009695922920896319749676565300603682432517672017631643091365514316579413962685050671701937560789305080479242052998895901824099021394820779630827763470717301432544590205953236880044327199190777310299578811056574760965999049636675324162473349455347362533532463647345350361489410845566307425314183823651862917186285557252700275321183667355956718142364428557105884446744933411617788599437905239698719327677487188757348758496259064944772434940224794620980383776261608865064298170744812800496729240155921840287176184471224970678693925565621594863294708126169443783060124903438195021626918301410720888876280301422303572398550924602084171231770283671879944488470192484906659019642080776680788538865156331669686144969193607940497695321235578531156475585007468716455505065121302950240961384165551711500276719111714148613332266841681550929775658111171350160800164981553048710947292645444010796879772142210016381316519536513511766241799303525737726190506274192726695118166162622651647614624697220626935898099079888137941476647846643711310665588259446251059424265111483764909214343650824692371294544366865864238056848899305521399183009044397999461984811081200143636669666398704852528341583781699649651490667743988398293369037530009175683226772250290076281505168064838183710456376492151129340416585162801352826533701298989041822625681499738173188817459680681695534124317748900768147472263298427859078018800275826850460680868591230956218725659910640897079774245121180372772156902446227558233119701071120371178441411354592301313184468813084907475353153084052083731407654553244498750932312906751467450769234952779360248079735768419879529156606205731097229065139506716915640353736612004015923778971242404740438967363380828644870090616467075961368901731339268313700765061588393633277240223384757592158312505126601688147104936018803040214864958061893830741339510531006711345797501461475935219512977347250770116039111522004928370518245595123987654161894084969475344547855039301592483741669673208049986237668280835389243009813962206838740293467688407906977727882714631789413351500548590429669875845536026626597402597635272611301597162159411613277130764378386134468429457556666005936620863252929847820478767882159292727200417880397030526246391193255432627137504689812756234613723872112355144961730537976866941809460107193271296627889474865881827188315850426631167708794820952867108618454165874162590102227967421926995608519511090159072893071052915806437687964209658485682796851430276338906108806009466848818567251657308409170505426986288150042062373085409210239516651110140498156053213464793589156617162462371156234114049751806828006539678285728275016920590046031718991311835925442627039043252163985715354265666106663370621467971829873103997250511984863429643151478038338848062476983123295771691047459915156061441428914508962189945285177601560820730101750407864627080815500500808877014873772395936389004999992375366606655246585887463158322893455676516398998027825305103708196737599822808270533183072344492792589695254437290726973193007448439744635577902858948065739004049706397592044988670087917404384382820587505321319494608662558177303417712945507269963657176092486193853955108371803079988237166241310043932729339403662126226271178149432535262747489234903001534149873050020485086273144952690090324310320888223528627916142073977835071211514151049976309298904986762255785813806712022653766589992381099760463899228958053039807267672358357524482252722643647968541602496819720502760875608772116743364108126619862678143043046312008671255995262030329268729287095875176285364744062849603068877096795896352455016526759057275541341544010824983383883375175658614541879091063351869581217782618020849404893372766982866880592979079980012471734153612273066856061119432068676926810452710292337844740370180014145446352012741280141739059893687721104511594796128339287492336474569167249970916699932694201761907085388742979544747737683073612231003528852229693025731699928433536399406304956390996578667300241440247419675339189678295473782259819087679728705579270632922825077455152886027513895121556379285479201010320825184729302384344898378015337289163305347118158007940843842803795659851125385941338543858211365717584278127342382752562782721177716130680600014913933851117037575467999661291626263581785807482261781918548321180928857776966753082477968290603218960609775754876655035255149796119526440999480114126328542360149584093868552124787604546388066272167189680790102310441003838611025084266287742696954741209522122940284391778743473429262469791996123151240181871748148993630436400422148457076540725515098830078749189486894538263648573438889523558402674301840921146554917185736321156544511546866840469414359454530209302769967497780907140091088142367443364831992509452456748159278319839726458108878664561058339249275746828840204571681537119891455764252249172861065565859388827940064053966515487914996786681113878074181996980757538072276489654178242185825245918827123030863484450533282353743250978669634621668396814186170338865143673288183212739058379854148444013436291792299573019857968423874906585131625466308721523662066611202043797251882806964444438658648988713012112124081411540343997418436943654321695220939545716490649981140049939403861495483499401004699549948828476649794654765960397973792677476053481194083297964594880369113306459318953967587597969088167767036766464858432870490511370929528648875604692941370377918864795216979969323219162404838545487017597620239475873472830560025850912716048008322728251268667711439785828095498151991050789305654891321209243385757052777066492008694677630358694044030387543454155364013620183190795280059054151199563336834608862582032778115324612006577331753639085004763116432518407775367943274468896901435900218380638060471376006713375536672963595674364461953852842268620618670677054444457791104601273335310347826116851176822653770043110243126391754988300303848770031432143707795708052637179574847620311483588070006909510523046856270347444345718246593175368673749322952580950491451193575923549459379015408747474861865406229315523902562253903283319892460745759570287415797844754486561691182792585764584842587670660723289930934361801831265337889560377744576346064601281457260763276510051898494651725478572575771699859089071412575829482964797903856442928694703363096478919551795100021807941383612577535996719764233431312644945561733632587580815506056277164376096254949366079296508457608101213070303141265617739702195119914930443748390798171787468942903674237623084946568521977511530969462186131284144088523713075712567579336194677633460708045876346066846840476496497013141025239975179072393107051040486438899310772934407491979350129599054979111189711447624574182432524467789913652112040430681653382269779107530244481670092626391057833028926830430759551620353065460800927722948293007448178771668825207073384284661829335840008982811105772804462225546944583432126835636197079941959932650200481021981218624809028560741169559458045348882651154030036473041713746083066623670459323843777741439895357484636192727616873342041792625033040967748562064538604165658265510152327107420503400347193368629778666247114621658151320666763594044183715681158089201629938499301697208472352974089774964776805903039478362986581713497772044450171667062757587147073640604327691052013607504523375526004486987477291799503156773006020707837235130029522826692967046015396963382753597724999556170058214703222853090589210603736325325455274985294255684144390256298739295259801836326604374021938676169729225070174579187012962976645789688063489929699119665736747448257212902669564633523841039938830830575583851549395806607545149075839011798495816372049758309895151904032458958294978370323325097019487268718712931163194409980347195800679825446376560444518818573238288713643912233331350642722217012429013472054371481715350429070948703947267842226043653975741981826264688396508296039275291204561609732010337094575565143701985798143548987009141344572530863669501717947289540591492005954092666324198240658445987448598125681240996872159246345181486184271947305895060427042148684843266080872477362208011146158728747581506746081975385794108558103260228126942238391992187781384664982740957062095525349961531602563877347010591544056904862884828348272938845206665553160698544558732846134018044802580011422500746966999947498750361469497578689921055360999634902655521793992698379987979249351314089896018023464519881178670003363269164085678525167575459784666651034963305224278756423724617290953153966056513108738203794581877590933816835802274478095532338048524552576708640521681957015095579164061928859381624774126354047352123602560200168479076489692054861369430592070384953132375527805313700506926131487866200417783838181761381427704052369603585032372435533608317453374374188192337309746635189232519591738209994988656249967006621728177627171043109090277608566066255604717552007197128018757547751469861483301700900534813187648685679702652696260352999228969708172628149875456172096495442178072074974457210423009079701968762912713147445400342806902202118558601487958072383926949907188334407884039852457374541308113366540696864401236060680198504185909183882419543251355175276432747378143504346645331817420426388459354456801409794202254214502712874988873951901336218682789857123655622586076520428840488046082281708143366694751796505709823216972995140325448858806369204384703112529391615002627956429426992553070348225312637068352939736149147259407932015821838756040793144876367441526163524304696057860767925439527978136681777911908804650778956180106124928880349990517476658764858828696706475942686907599070950817473346757546009957760973254393949359294680975485997492508924737631735366783658472320033182088585845413196217410285371765827769884335827772728376985475106038869329561148082682775187168479441959080309717426095760976218061861005425363860011205668425499425007158908165523795500767085226149603136238512901368956730253145383206295755767700606601026643053283124672804549349461334752608682767594590490468572237127718900032397971132445812895034867411728440753631610435574804181471151853269512586729350736274005051777669616141053844544233838543108100583184789834971533724563858093220089053904323076874757073601915487766460393709106926060961663116133831030672012995909851328672219794042549593035633774801830301216587571262594494647376486115265668938435899523679274114418813372428584808675962581653405478937251805617984852345201077323732655053923365990645895497952351932220361402538858983833886338898458085880836677585324459886801456654246555311630873583867920747312302615900785991855568338843131893110874208476785893750566177393422242951868401658521446212833382919901202818972021720453894621833114228708514566651390385679394539714689886182006556091528827525850435916814972197789880328112417395947579246118009804728668970101542614032519460115667068174965603480332653071844850389915196920071062806370900802023550441142287619627136983766795895693472120715415807161327134282466954756468116802409789735447860596943008012502915024904202395667805052545338965662171790437233795932038358608289853318392676360733899333232597511780693746840149173368066639419928816263362179426337337926151753042199731947388420298614464880990933900913621911402498009820456217808221031199469952436872141725080025251821404832229637928480942314633014458011713087925855099293971918572947846711058319345645749558071124586798162336737156201384055139895240759790377346152141903543377273648271270782541936964299248484600960740173660049586208311006278713602638450155050477925874373873049346304063018972755462645672045665231689768252074517971312093063153960469431213889658481635824690452565820970864758949709566072574180590759893518646056312916206830759919894893985568274944626942921043168242795972134723708172419508025315311211601236256764348040176612879305114766291112604974028618078585676686266731683881222003423831594045989751619690693283514030998596306802257513838335231431249176279864078049776085571635761449688730744327783877762420425097608134505893476246478974750468942541150235325371862396090775111952982171464575705548161846037878108630759529617611618918321786906348741684814683840456603685910490552554336693404623933656050805800196543098823355091489598611533078726985961797467561414042220099073093079095076825790739714623106047596573234160296755021256385811716696916060287433614119232394203710898010033489901162195010163038578998230552822019216837892367913542174819207587664454583977687600355513233735992127067726620239169509198878530088978370115495068079937885494165787967421065559941670515163109261125016224570051132326134428941821260524039886924729310886688089639717696821746936594405605306855047392398845611548594120485233795661846938345311931778888095113412335237337055099915290831406596168984983743475594348959369049777052413994866251978734625645403921147656898607185334098167571626044571236545729269764813478302806748380424962726502930391540691990184998211730815474422182093014982420995735369337184862750186995516324894010867793258848792397120711897257502654736324883385181232600579719303492354021352722375473245945644679065756676398600869644006223709957423063485571452518459838937455919184702594613618172474118342643306757446772610342026027436341317644312869139365577841139869481457410799648704873490848247164713205794306691564433804840582916215421291899921817800799905113713281762111518950028055219863651712436153559998589655015828269130681233571904778399971414548111107651913377081656973983481712510086780812835969704219923589820340793863664954409790151676627538399776496779026997938089699971714075562731746587438145134981338941148506125968825267347653582490069023973789881557634143332906834327406019848330535536271937351646748531345720159467685007222416141177584368496331143594875708381078903651340752036826002718592025031288633409508566850945756999520843400701244069135870467872307826421330097169826934890299581436801489025296102561526128910108588896989715932901443808217529823756487955900866712191871705721529467278642109881230089441197647078841611961271813726850884584825864107314140673263722257143494035078142239580489080977027639469958108099349915531404279700171359716256945028119646237529257420837963991670046697043214863554054895257582968549750505886318737898703961724537735833952351960901791112639753225706011659655605854494389033913595522499587639963340356465065906471000818386577326299793595112526721436675207347557082739937247858865297064254579506945310626939093441640001994929492058147905247885208029154159822465651356669360412670948368658523879120434245444056961481157652043465436445730571805801624275351993631230863107971813807437747571479755965117554239575272593337926749278158985351759790812927602652456557815913669591974942291102244869204506834418510561317863118084944046081397910816354628373948357377035274617453713284335280575148200262212770765409022572360049942926957907707160991696227359426274374208635401420191128498906826087472005431660426965622521357725950032271709359931260951711366617130087488576770333523970253710346149572866922369174334871507317054266128999549464165059779094302184133963105121318965252146300697420131871796704703230907717256925275301023906782238586914192904079488477197811912920612728062781504232868703810128726827482922340701670906959122877464706443157137887666799559437252547763188764720982249472318306033641190256047633988161753746234980390660247883160088466736874577053585841692368039095182079044127533983781308237172800233547889277096121965751745235813005597317466630427502462558693360913982258178638782913960455651898779395758085908607311928830133166480084729967519389906356281651297114976902547713459033454224300272448147137146973497784892101273218222519742470829189020632898005168869565598751503416249761158973077560560776232397111161616572809050607147116306555218449162463587883163780715746647508484365896568455004561692608871786293460893992310661772055921363955621352667875508019766607020508715375093577531201614096911925886423678961138945582220369249413113368743250715761064885786818648323970754354076817246908674144034989272376723203169018372105619552610255604115323406640440138589256748933694012372079205142069489018927794564294158746800909568677034903536829544142704439825788666010514959058082351684294205662606721519027686781467957469808973877273174738316098261547134565778684197182701916544470285212506150035057412903851613384979139022596786594951524172991829316843230649488273516041658068447997839174232717734491870146365075823012527136096447719241479027777745830524764970036056837423465632035057808655155495020469944403080057196299712970128964253427136006931860698439978006414571657275061999420348330521443527756943664901520497134867473288380095684496071485511489200918414451162594760281038174674706924065924348001115765761367868588337846107049043901189077550892627988617292319092599674377261251746757023235126277687412804904830229379438761926198499830361667016585082235499749680130693700529487444355328463150923637745483857258085637252260690494831977365383673768646207829884445917814256550363860480999473518769033195332891000676192405366103181074874574316332486086057330619874628838379711438227316531503412779544462740733707957327435014340460437720022130306041677551290566072721544331898390063973822810297697489920922693580417804080506982633248809521519309706760005856804043671389947440506148570729770237713193249322076194523150996198596972285949048743367390063531749518797020423471889029430334332235040261955384196600994405812445140313916182255090731812129950676796168327200805319861728111427924922628331232225119800345800464930401978505541027317244399899009786088266540529121224883495825231850750827828567576895700505037160168186775655647224516892716965945912049814971976688729026370198061299914885103084367768858017029315020573746057845250796594783477639944895191974532529476558982177400092430485742307028164282577868584872343477279750055022266492827038959739268911787290715086708772625307216410308555245649812353589680827458909683236199230478576034559098934665367174377616641334952500834963696193365605804210135591903210865034921262190103626610893053569838582028356450852532787095185787240423853671932184439881773685664894341213646495478690594567688996241007415709087933818231246012576764523201641631618834652472072764671989452549851321721763172295754330628497085033079740941315626823599956723074839274704953639517481785039743734699741344226119226388974506736161505072461629854443989276547798653374948060288539602078227181381565185163813951781273801798987737584029225037928103006604889232442665665541077883467838809137452003742857635048845732199054857540380292509299008498364264930309489539853027984185675098273292872543648296684470170258672952444859377914987754210002533844143459005027389225636382251404144250524712473858291469507195972068359998021852388822484819210854952637307560480951593096441973630554461862698374921552427455821616087273878168705588641466356446269705438962774338954256558131439347435243793591560341663092816440805858951106141829548913831515472721295828270482732838020647730883320465419580018246468676492754064343014253685211570126533736665826824652408629479541000342665262544958902984453700182647976805213279542137735172413700105836734396436767745611876398275862748283186147622476386167038385871533494972688032601338624913530745950748734966484576801677162406537157002817810423273799692568595636924020817058240356021964845252196761793933748950785043003326902600299886361203260304221224455353237645321149766531547322167212404163081960459195353834230204427699431318937249289522153356165920606052174395424606852395559616503891039680818697233111287892773699838867408213527111324430302458200847536847365838042045528348350368290321410294056015478875970761160824221753395337780029984919395730625964324130704987447878082082287953423873166098612155904795283850492051748819811097332568167096692120557209494528799614747235537263058642474550693206583639851306948469468401092401100422816683585202030742508707777857944931020334012369114435221678792654655076513566396319325812987691709010678771117678999224892460235432876535876105198061018734140072144211235258084699045092127226098740444793646535975418391095471852257268493667732317761170660025603429831261702693014369776462158121648560331895586461217459993093074151950407769056124516907127311619853044947880297701981095216147140369395942336718574925643605249659999299398355676175546235646145040837807919360081458267587370456887522325470737892701851231587546322331173613275426946917804938964670548834346941701446917525763185320974714438220883649404752864065917929945762158109808896917647817865590625730628772548037611889784150864032973262034895969450457775759399781261867677932177018382384504229354400871080112151741950139366134883636828887666706259482915327161633237294485911775295602603574261805126986866944573379524310505188058202964495699273327560407594415973067591034705053822750622819728760515377450976605785797575159361085715439579198391484957760230236744007722593422806518844687605279362671474172513640757307991888797784446747715761212650254447463957712151835500248695491965700484526181349622249313946960134968096392030894183345009831826799239901678872544114151900658619769331524086789764757303313883712196594770105431785110914089901202843275056188227076703336435582104540325010818234089482428888279634215844652259474879546842454993767997204676995797143851018622924471160280343143050723878170968899447643892652911171210225553263636057846557134259655689301177651968970755246791963259024698738872544158458428048989607424547776050466327471862932553261445528981515500807311757944312471070621220835039037156341492878925117470704577008056383644852512625851603269960689557194915190430615849375248905695152887055287199641734373939398806070959406643165991182321337771294766879315471630166192023865060764280155812902900125397789266984750037970265983049399922559346004400449401559904065365942225527770231404620646458846595732314846203505948650666479249716766644097824234889936904945093584511637864992811678869982791192327173360386609397128802489363073819870788973526934691119980633890166367018666290541345228121835937017217249815687736945655379253203766077558776305413709579301336059338502479329269825497370307908802568853743392120685237599081074994825849671881205158290268520621177286548861153342428295831629946362325367248628849787716300418176926990818901154340521539259125207360538395264094510514233034259448376870079481969396375757994727565418140132664542205342594162505087880884653778248007802684635372713702535263536419390087380863230156236509951747719968457696747334794616267604131761025373547290530245171097803848884371047810779888474137335147825047365950733656075347915771142275437024586712585008765054835207761593793353755019863980151218663560747045024595031042048145754444385957352701523751149691703892336135689555097037783134441060047357467312054334986364408891575275567160513127651946402828665941192970701492907221123573184237957961359258149030980908023833593386937604551496620009986379301294138101784311835043129326250518605546547142178836417693066079056223291624343706900340646509801972724235808203361581730601398833506981233829735293699321242451362745370762375622864384322099168898938962282180482219526839410116695799471947384160911273456469139829923921905087501390945450863470233542621647247269642384122475391671248242133188324760176233250464707681987518551305821919700547054882993960114679236758626865467962513282010246915052303344274782400514331833224502544204108408083253984967795152070991757700019276565209191034868277927893798389557837453781658979426157600280199403932714241850771695259095295672819150958396767497503286390593517674294353167752390289161660879459815537248265533649228133484680751641641440806324298074097944238212913459207062061101372150438082178449769742172601779519276936335637841630599655872921376535376223100473801309064731439285683225906674136804471250174981368034479103949316061591819107158301348145107449932450724574871065583762395241621046208183404119772861619743696579665283946736479521586382812535615030729107286456446822354612040801464519319790284271980596165412521901328232923761490033219525803667591324225248838348332692647024282616443838963635879150165027364486050131313397142716212264503915845464681379451258861708267732459975269404717810503795264532490883782139352316249988828770215213587163628688619916350753718571618887542942027520490314483589233884911450229150382448974110182567307247437240626498596742303686934799557176109538770141475531732935561092901860504623320019997044868266087647129581977380392917965897519557843457381823058366456572480940901919957496265766933938062240085349563174760458837097291907902840755016837213551356566546966301025456407963617036043434592449346083613511278972554489268636902375047785002941395127989088394912963129097438861685670749586513739318967216914124732224462810758756096852102016517226216037613048945507747170654801695264129456423119567926225157399391359881691133591427471644440592781707357271568620927738475597754321099382831427914792818151370792437074220986389794700938378121116070089510860714606675243268841901265252244565415010940034109383053254975875150746051394451079193859590155083724910910499818829643328964901693116976035405426645631612796238589766554575298104632357232138057085939908823817706327929086044884659655309324648206499458542268280564893845365361882512013936224873845434133474329870395521761124909365334850335111624201223411873416216766035434552831375096265923034241532024987967453602942836226647438210626459030769978862118988912876189745004710558890316421110566892838201754484852527393049672117465315441381227946201981784128472969668970529032621769831581991224640862423103317229051957117363538530584080298878963539135166584880987466800999508304946391685145828545283331877306441579340606815163362531647668812302435875339838572392886151341899260590329421684887014299954182559267842807594117736779978742802086243050053237408083407398459836126314182515039430131505209983960830096681590050573391222908847539564148398797361607874319963986263962599802826520514071608268591026987034823135363928826747410912380710163514237094169451919150425997319156325102364674991909582583622242390710683174181358866115523775830125878966769089390132491948348792307938641023999957688225932476170620954880020664744320167332579366464593443477951925902689864146554884652617608636358285785759420388236863628130097717435053258115136563290293375633096927485294071966744030830276762495584161916503932788476235975017261325252543520046744189936319252594621926471818274483825634165902479343822313257014641988684844229196779190311053343244410578257641395811044733637349674453659306751293789127913840523226132851736546164700740930536978514351267489466649299940605095177753137502784187603617915883644242933854983478815193340315264110059772929905186953934943268294275809364138259818255789201815406780511511050364092437326827584320628114884304892479069229457848473783227593069893394036411677421459112313485155548758239294369305669125574566479985897533435617187413800331069462794263762579641323963867097870579091201368242893940046457940860395337499039898240718223313756496548264820008983060535694234801033937223393026595935051332213644473694167226434645079439004674027601976122676221070218735660484804677909394131650329060668719487439319842900965538844768937926763290555230896899309885007272961256142525008198855130941955269033910602330630605359244331124613891075178402331098475087575146221998791653961790517645501795467547113441751965064143043840705254252017133941075626026371783812490241648399517046723491050693001911332393331678090048623102188016689873089229226654439095577841934203214528157113226030327670153456839063126773253699749580249034919500293457277432724100642413062998689784815479759716196465635260555707966712184951323010137878881607016790678639294675603265571426408339445256096418818519314181567676024409077903735942585103317709853487543448125685793492040003062444096570219347701592439183950207558208993910098112618605316544612700434927928906190459946057971358796593970582934713366739800138782036305432431054941069744706062698168860308747647730695331075873992389576116708664851782653323314471368987129889498804378155620768814270054536453643197921779703798027127770901564387619215878630270534470572023320232657430646454916515983709270232335485805993097814511774858537513269490828890688267150427963826962919097629362719217501928832921694671501882779118495077976651270353658927024293930253492328775632540765400225686652122775885563638073907808021584863709917350091751829740404076164532807497635159284718825114933023880120936498154429520146170254874952862144919210690240466466678393577124946765212807364897334416525418074637806300386443078136318502957305816987646921500477272162303250222613549132729142168298089466020568557722618099913379701415228489607301027828204754477264120355070261405610452614973248108278696350039065702988492158892112599134375428043088146174537526996691905044412667150641999161715088895061144228518727929547105793248229271825337060058809473569790535156244366600152636824181555401622664878075846298789389546352545825094258355138687937134049610004814301002280739548677487136264527972633227194580569181750625084763398942031586743583202117856444842719068570792554569542263515238545738610310471507253340771264434624095299377925700081504464483051401800300014324360579902632644744204327064680721935691736651128783844885974529420919800871007400936889060622126601004188203126238621552831521352973484461016979918062537431862212061829153062368147602536038390533975240404998122356269373115203843425967021460194205355471843773703934537753816098358640071618589590246749503631295934354427573342632591652333757600751664849600283990777708972339514612319316998375975706403088419490103581852361468543095961154918473528743226093487560726033314757121965583087918261948986142420716319813247112995201481305367557426197497133092194755069644705038254840712746571242880780632107136853454219888573648829121878956799645660478009637074003864788173837028701877929392339732254854891062316492377039037825922788276184851681943576293111625427344237002610359032113727813732949169563218047541918587072204460250506099733309734416270076126550414894971392197644524408759825451250047860775370389561635391212901608147222814654067671352780882086792762554100500723092162064071334433684407196828614789525579196817158254264129736640373913840392006376790461726258705370739140754962713801694422256196429066471040687292162090608889962528169942307909648330455817987570574488647646817363717639891102977948842432966201196070591804498467991442334937528625257375639052066499890352764120197059957835414321857220365128316329230051071543669467055727550247683928977091294861696101948986255271914137797447196012163481543760524085161679805655800785617489154577213234191046946494860917617672470736587906504242109988718070585965324902069675292123170718139304197468299017460858235404794034842356367312059757772514002222000725466321335674062926796751443507864679012180174678740141307861351834507719975928600953896515725613085321841883487577482649797786193178793024683543873155898471256364708359865197388368379668049806594174665979119000051944958732437489923650665705819357836448705184840379528700525173959769769039327301162373181095687656963836191532024256002201827128293689487730879528681912209812273768070412825034325911290034926425321150039082617976136054194019798961050521283744271415194101723920103635665612973073752269733806647881430602454180483893655538349434937017072916037677435526529887536047803258596299882172086786348975865783458779737831936148374173517139089984464988917919129703323555151590850044225178800292886506972314206429842908152034300461184207940676067106403108667772346515183872356104268668307348642657879912597839180809451286609326902969484559309065707396409519036851430526436062347824735512902778399886058102224454806249686590390807827643655389643865179188474144030459828453910858739067595684557436458808633906936698580067269779058731865058424806468508637299697105395117805918983015028271917899836714236455785611962787323361114760138393144985435686007430592810567079135390588306600669488970481408005683813831927181814349407489964378917991161287376874475044920871980165951928991953848532583524376324221969074253253576641648733667270055514622392566961015046752587120539670277854872857277172647640962034552610008103704514773138596729189267444899191903981908179744281572452069961263693692142188095347735498289161762080424182065004756680033881404580129243023753803460986532630604382263790695307506567295662334518072997804442565152218975036483715021285524793636709681917893844634689616712949155999209960540880963135537800766490452153395360768518517020039568318517700113035003034872831368253861169229199101285582038071001996345455561395412898181973452055176225503597477470710215153456748046904485324906355514697522599758325542807398528867779076911672222034009930559084760068487761302815079482274211997527567318464013107828713852034491655603685026596641652110344720699134692022078163950665291341761001445567596052136588542541867973466024759087037399107679110054434772393700643980616864098856531101637281490486478791156400847310165213127713780614721900494978844198476666917144708250084267280605695772024838403729224367838529955239138971931406378520250106010517424933632915561173958812401874584514258344585304374025407580729431836705442950886767105863643748254153665418243228386680146643818095642137533209677249943830718277507926410469722480222840556240204718545709733263577973820699350277153229880058511814633031711092356072568764231048664089008575015807627712185246091443107010271115171593634042935590726681696755778755571579374018861843260479129382271313459891419397508276570902504177944471237525501414579321667663309472323241737554676993327479112734637140913866932087242863036764646357449739270857458891065181846808978326741632987439053613759273539120660313883527079490807436365119986246851643347427278409568907372345431884328468600819423120260738488801528544485573149501897774103307116490299607761720446726461099230419561670659237900600458073424623709640260043693984396425010771709262190389538478081142543357913909032540900844428123301459939585688811794424480657794441654233312213357186264540910393859719883688509605875325726608332580707009626300907572817253345296898960985618949632160778573158242265205372321085408778932313727521187590287981680544234007417232890071614011878085528228959728070394355857594889269479502809448509372867816882540222004033011713289436508911859006130050613363516572395043506289369858980434837286920619050767517105232056425204037313755097543636771305389506893668239159388475808552669855637916438583183627896434678107656839445901311389435602098958967114785657946420016440471874895570087455301687095047916080364394757562153606512965166040531608149138584055294808680423412008551962729238497785282487443340723780345615172280336623062005884636000882944710882031520103143941665539159161913039778089133605858769217505953125170232832329729564637695681842973450417686597285059449459262031068863789279836283567047301888082298422697523067532658971590212282494575436209947100434944276588183299406513709400104010899057145142770674633475676493696924683217372911708120768298650207565370472684403228396840506626453032323648631533533479274602711113214548759531666379445794370019537973573608201606854532185203347843460058526638605022118138155657105170160625999583448276015244467133492892823535100055382499472245285121252919439767455752079243143176265377655717738586564106163330190148594835376538870072809481626488468923329194941976964572563427150491962369159594243653428765939387009391601125978986286634330337352558165924040934262439579735567725442983751828366844047701791877010659444045646556730375715338599512665239910286528853084008647960561917697334972014744463078694017837134766566142407222048691851033560751629016469016177016305220816255230213261186266861123640404290624527036440974486179028297816399720872452540714292385797289712974376674621829883751962890315915327988643136612206574760378896520973628794052741002035722324453247987294610851812468511516608109937846044414484046627290104533584088162385371321666658332373410963139287754307991788528434525233451264412812413283483233800365616527157716470583852502417620649537933687051319701799555955885634828830569249701512261969034262655810494109676130826395631586718636711621098197204196662548588980276488288137494013719910925333713509533420634238493687138150087847385471604298383377793924887640749596471668171909622815874580934741516230342052455806760727639379444383492220739598856736226458096830511320024681624407366539870823252660704406303268093457835830788514164920132830972715720722746626318670594649677446305721419133571525009895276813418773685341532459736229146462807777797655442368460172202978469246101593760303545186780248621094130808393606457072457483916691349924918847972733230542030320825548226412388278029510284995538235416299131182584474828388734413823124283027793174133826474557673212680869683827617902004020693556634881333427312764633331144248382664259493282616020289470723104805303513076945606827039270325920361787248730846386924837487891729613488004773605527836404814641496117392827477968269478938828828164160688554261879034614290595730069907745320131408805748844939015691797276750085408219764986266516327004962639922757366403117777488428514740787688754026546868902637579098554956344864011839296071002989827135474720323766313329373036330820825575832352425122590838366864203272626861804458051263180160451178062008316049313920198788622581570904151146321947524450954423523953823006817703036497945628875993956179059575704393055175422476044014872170706397035151392080392824262250616059117573887010064106796010881210334547888128183701789602661027270633197815487190900409977579238523110529931088113896349136754815083770448186626203778480108623598001817018008160600207399343067511557807071127853207669059781432313694113788495156678161373252628092365307597308059899281264639586026876893509073210361486689270486380007751965342276303053036745965744565846959322784200372716335511211793586892522873197838400110738246768293054520589412519760084178649188822538254856055590255074974976616582651177537860368309399690047697497523167696447945262614882859548771261582115045812255914448715378397553606938228422515560506188044449650669371509635348861534821103978447730663132500825731752753209911413998714345856757989252372849987906287305742938302877254525298154301179400395582812075447747044800005700739745202251983998470771366294406565546746100464888200043178693260533449372502805772839616078118546420231084458595252127921201008441192625084060714020123213565994364996600197720818037071718098089515272986400972922321161767125955647993724746048338132837681992136839830341338780632889994792900587581449912050685960506353132016515563053857065533825603197511363945374652114872444123842798160796684352611360385890666641879947068048316103462733266790766521494557660813225670600749190730752490509781050744276905447459961030797495812206243178030163951019766298807285537703585193009727514849779531919290332615341173129438138876467836578798446529096281719992996217941444583444058360524768541302933395939115481235560825586604309847158057532822621355865132586286049210644143520796186322969179135522337280991058335195242150668472148771387252955748495429665909674124871101303684831637205434801643909581293158369853978455135916904809678591436343108446757312512906774378540039519459331800418355896042029256541387930672769028316419753358193608927967224067726882308610641867613596550035352696888355561928374340871297071888481097842095347790196924750757581225494957536239451009022332560816639506724061334072116418087587776071045510585177376897196062359607776407430333870447142040760142559536770181764843995084265622659633198447764050628189355185393331054119470488743339452743582284039047842382152345950643050407912035508355481341215008480844948177346058562887190839359745045290486266041314713688969160328010366177031965312800930132776452411182676802306536735785259098174933238330837578722340507945060885130447508709921841672243544754392557677271918663988036108060245580586765766736329078796749461425588308847475372710248716728823301868215828269076449235170007487598454855406630744876810472506135899627200506136095266587917655605031412644672846372231457825606571783381197663810795159149848718573900782849165053122434571159521727154888214847215136449806347340157908461887781398944689284780689506924633059516967418963888710480702797105414856704769224596596176046790416910560354478168388900049179896145184257047412283799037103557540027140646882913200961292137061510629475501195684762370730995116937213926869270645353229276062285451591858338435972435808722873840917750902418800323214489323106213459624804071850037769834398642335756950277491989550099901324682611813155322966430709586888900003866773468575922477223306754889597239498801559978842734019463402447103240846724650130431230093236826999199658888896982241824431257395988185926640591724501727426123969032870435022568044894495162831149283089247979733078837407762987662304980414022204325832009051652876550286300411403696055017515625223776431393591822469397718240307118878906504952280340890387188417143001542711546349515356502189131829714822069501868433218484488398690363891631290788601253154081073624679489540315857355276944424610007998194006179091972101293969766247350923217910927791208569041554369263561918618534378271014572167223506283402820713492722935397196104317226591085197499985984396724594517117010354379041607936946675269558449899263904781933354655856313053190053469395669324539011580467074355458200489201499510464672130699272644469236949746437926751606450344156869466358238902230613579707273727642599057483163956959942408165071034669319530141712845534740515643816609675719710814531704691004153452588159029726045337983332445199997737873802932139273666318661635829941447878954958936897626068878813238218690890751790385602757525668502228072198390746528102961476389858972697962991850949687004264576045276429666814080372441896182532377243005756636779855536389521986526819695446673408545591272050119894598829177530906433594131479423267647980745566217487621208502791693134185359931292151101772771907594475849989931979511111365589399348545825153579326624204307482120957559836492449388248515665707182079516504144129558140264079913491949067162432690317546634912985401295863908831076501711576232395779537742633416165614483688397957258817679056812320973182439625180378982862416882165636484709812306234974547397657483886713144634295482334471065959443787880968531653411165938653920644559311812925517884446545029226762039777957296240902612102985321398196736888912664999385403657020762965368036051437307804201930657232590961004919492770834088204209388678703281454083682873834536183250072736972484877438652531648048606943447401062367426361410488046222083392309453363279253377816189955052014889951909612519450016688761845077493291798251538829423786877321917470634968066160633307116003821302669091813363954593164001960265380340759382168009290425726501549962488790073829845221927725418917015434131373210710188466194142502122386555552004117668693470217271733507128171605022231914141558227878638256623907236947436827825761128823032553636381671512017437306063850840528013714229358549639006636247781675174510004940105439471221327409555568805823306160337416746748639690622681387677897265086801617953024316581981956221940217772684795429305036266121680000979415715162347018308914871838147588097238773544594941551471526403650376711041493300354134236046433880247999704207997383209365071464184837806241374106388936503065551484274911827548200214663626472758819564688649189182110383255100339739286546376979355483499130878390045067289698646642486838808958126523152637567857563228028191430512636730869616804928071157065957658396088143151523006394474145051218085173625120231742688809990057270776023627574125157427135151753317803671230388238611992459357889598059068277845499248083053490595837414748652430687353707787313990322413306714416524585004428794542618062005606826573656450661410749563201749672103079630723971433525204465654364862459420012762159684121182905920444260194564880414836343669976310967389918675418828484211816571491330670442885336159441270364174762342211742619446905359075194263139185420337417063564800540234884600537549078391188964280717644500796850799703834226558755532420763223054000577662049590771806092772673132047003901604758763159671547740740861603447264378535960671083419393338505466742627377394705509458397540182696768231772920070083378943680005081650178494929387779810372062956074079091099385084806674929352199944409087173836817743518534637426316259342266736442152420288441003773836010992533111273888963973306879270505107293043805155165518216267931847249268595149802856584307191267390978383548712158189095331347948221212692457393293824419575299840190615252532319015497968053167923770466386201362505123620295228223362715923946583691952947791125958462557909027048297502172911665485300039866872980405674346703022163346088424007257684367597746790902706345581548509218049865636485057818374689119607261350465639023227646413494197704346565178414471860900440723617493659521291163694975884137998805776019017105409514455793375651333428916879555712692999481834914105238886622647897507986085701780686105719848294081632058481134842443245089157246618504663274724442753671198498353511152588775366117739081821039878323811480775045690246741248696871891077393118147337191469255082611652013086756854581362981984052243525808212440416118280115786480039352859896956279554685168936308771308984444683435450826293375478582653103732753256723639749269322231834424068145652934164343425287153965333394748449396137536309672832297041060237317714995432815130592610304629209016494255590761457481386842665829229519102016485124610762446571658511802160180410861747567272008632115355570971210998801197497086172772813120979510179510650687885713282089031173925895230639554807193597558136650704834795067749349314704188305002365454981364592794561751858393609532142401319194198443957613085085584291945979639555763725374028018401722395995511815234591731950753598028798879677931808076328938988244652026782336735657523090856382482434202489124075907578914872376974178199015925185012089784426259542952715052443058362142309406398654851722438772559343814345235068879343327725812804786575309453381095213283950806680592524427956106524297887651699608046362601691754127149987939534491812180684953436245927479479281222725906966858057591079024700625952125471957436880524272027339662896670452797521170552912766230338669918752923648424433798979455027874432599967972714273904780969002761881811322735663110643751151760067932957312553780546030933079595072324780015870969719990041887087477112535500679913028056223837775558636213874114773346409374279573643374135437570549937572676730055275638988957665101374290060275454726837976219821139397419421298780425270430600183779825663188608760324174559203059567747361023418002003404613065228873882174142769879545076351790652962492297382539185346602034389497755117244600079141526123943581960667127315637608652762550805575956483852685203104493881329558949619108830275659106183233026877645108063146092816300749399923303329490343808360240802245674380363106456055135188239152282789392014167486548228161326394174281275371173598704825894514922702378154717053867931127794184065249710323270964078510368422739710963617726364386915160932953353759210016737273731235647436344572665864953607381259450371781063060611243306825435380500491131681625635447904700028897667703474779463869997233670531476874782197591746961976737740467982724323478232426843525192413856158198270107947533440278171545595334357607042353614945241824798987104967139129165802744664408432498389852276296824750195018163333804107400961721451488507444886392293232653781277220361170796297643396319382759838764576126622559564985276554148209313744657964074173504451556796209026701153078396729465059895167123354748742544357779905074801792311941116902350422410769541185858506655810880789842183316780245210724446834611528199299111412039402004931949786515158361223645410480536158487297560204470463553134532869376331197079095496935674270497222031389403145555740238544909860408132023520732214983307479225161322767328085390210050807632096722255030312190641722937505209548652560793981179375447855468486782777965513764541406070148885898885637668060473324241248804752210901499265937052667487986807404230336924680447988101718942375275900632423106700408828394468759471481838753638133751327498298820108702536028809850315563279827837612928599110203576333997520106586713807956879297173471412854243140944566477903905954817915597834124358418779886096592055485828466540915805542624090288620425895051835739387359489032934218369507759138885571732105441224506656516034602399211779450429706219181305037566646147527029140512529272884590483935472413232328825908743052466636696436869546927898520844092830260547533403678481147995828173577176955956083561611929035623778998340242201059792064235162665951909699228226922015737654541515338061797195032396339240886429290465877600860870847635426838273737170681502489125299986321192934146267910073469175115188275978368171010022686427072016686428411101313043856144228305078398194548215930478231008719619511003617170495535350282355577320850854242402642450542710190387612863208444294821915981788877729306781031644352907966193060859164753148574577171155533973964891362407031812694527694502849406360193810080172280795452946180347925829703877417639768476185122703996543596853314940270089789181928665372007834963328406946871910179684327727865851452522288558715692961821009305685672966588576560924115489759480224413859057412427908556640911291423316645069830240460260931979502394498244220347151564481658379533098181532817785105309453040775363528145214893931628621374433129395558735255721450781843948972803752049789730890925732221644039456642107333072449845214812335558897786845591200516080257533751935902884324179117059171822608145635056332233037407520459447211137974131126201422735943668512914258768468120287127611343200993659180767277644340248274117472830262098178683812550861532475354926193203675222984550671965625853194205474985863621983677611121535260503363464371844846936420279652551268582499444467330512145792399866359484799752837087806206158324235499763099991980088972101998126158358883142371178512279390368568027833436674310347838937837114144559320902383014512319294190293708173153646245276874510011857610655500069379017510099475595979569882781588281398591290913457298774211826400822627219892640339716722101083543503499090188523342584290487350810999882434670647969530730767847259835187239215200476716228341853092522845481090916670444413093050335793955569184815787340689361276873812333524861655874105553719343474924018257567953598795508422333634403548586340814469858329735386401355039232937962051851322108933391150232556690935843363408059985116531155473006848417486219497619370880405406916464962105759450312574831472951319041730976565593737875325169775428398313655079163170021416758925824480228277098388954712289934863029888694022868710542702350445110863481395821911649777129205741398052843029891957175810565312649265652936944010422134423084418014155150255743561502346493131601033257590237935532352929379832030894140776359708328456088766597015910936423634712018702490284104355767523617619638643420054487468597480518957571055726655306054464569851934958186692421875675561662852671053958626246664664969208193464215420552855518057492174077421564634352682741598681345776705651379026089247052085142977688745623985577880209971536953588954645110552200581678026924415108615637888182751595772666147748867157952427535862068217800534498702741163521643149798837612792195066401353091910868226196090135786806118719539550361640922360432476588597008357434701884579791590725711409632431642298758678535599935081028265765054409084618312159123268003358099182350384638936794090775628586508814728173132889951329461094128661906378423579520140894956132928527023839245873447270019411443103474249190313094006209163324044921746483289894156784466972465156385755638321911012424479803574262519353134416564685000522131408800517677071073067299895049259009512217233622838977759168241476008317368037066459990590264987188264524078857132512262254235137249436082625480524195854879279297339408370736784635603861850064770482667180371026629945286500679176533134041395263881916857068431007219896067770400434885896873770212234993216311894288950855930979893025595400282359941890604974130684204933200301215359214171567361735387074448052778148769694581751234469348577812070047917714825257273442199417543952447840719199390108331111847492850748742541196399897573994732174073302373774060574531015448861392386582812019778048775019783165194397245622268577030201233484651213214144319217427469838199657554644222018382483989486307911747976010819018933575078494331923721304688964293421800200613765879036876103631521096379557655521910916963244214355659166063657707318585117097756889970082284205686698082612920987821745154604700146227914385541591094913356509825243149772951167330573274540578983928534137895827188564425332346259014896237660466941094191276810243493807852067621696511250627774492273733895048972294124012125163360210241355849200953137039210773449822969655682168159652987034779367357410175329933503432298618919895353065584206174734861619448661628669744316077906184839392135008087066132255202274978937373713025291521164212411449889130584268067479091094058144590659987505404294102940298651106788406573248624468102527301045411846394293176358654364318220500300389998784193034143041789350278472832964103137062677233337619145135088798291124158215888634623867510701711507614706179600010711787519421779640650242477245340372988480250967538727624255346018696103583400808935156879493230719242456988830184973953613281598810641064079956283236517810814836706048279580268960790294364465910916890149677343997048741213208017854138482924988573992918927363237819003296442861801471353879155480489317809195823411941777415862912655088272316473429353970664899748826462418361508291754627176993926757301582477894562736468512312101681433146862495924985105269123136485753819860995087059659939239902860673914689097983212106219350736981223565329850616097845056539394513436481163407954839938083176152314480589471306291413553911234101801936063203662889821373317156137956841094524558583734425980700847501067801201708217755584826978094360704493864261789423306013376472499971659987304353247985920278648454947030794972704298595615929066011273968149495199598401149864239696816328003952550683845357205636289551432612248819478716754587965736356356148389865287037290527447589156018936385826978592683513564151024003912328569505523220493659235690181412928309714102308042545088997244952165829264527250875462237867230800462123450414149006919927074216028128854113540906565582701075136599494760455973762902716556627561534002379876106347497188996503738836147816498431195412864456239975982961918929316586071229593776899671323062246523136080046608323106897974990530079912972573516702352667465723899239319195122563768838091272419022653121472630646485559519606984896932366007033795244859140890388338262992714499566946135950516185265121953394266471934883729531062031144573535944191006584769540184149329785969484069622607531471601007402962565237485446629845151574956132913833509575737402232893239584244483835278975171476970991836861651051808754727913866492629413293628438086800848562834537534481703403307808411595296345201553907498297677867570287531462692280454518345065283675721300184488848621097522680488772987153409360200218554031498993937273922824143395850004304460032335070637427575928915638538885574926022122444790859936493279749637209111994328707848674740421860328734838336827008724672045755414348272642118504549393956744537376762005087409301910201187489630912753302652935979070415447605048879268397412719350476936910244088983419121997440346793633905652017115638173560789034856240971388121968638909012452638818890474418801469846977293439748004546114220438892416398426292501598181801095345366119680108371468826848384814453814713894220190432705697806012090474417957143765367468391063759095169280284791095451706637485574917537695523333647118423440229457067590943487172512542040434907090886912486135694235716472960032443303724592339127949487816543301397614933166456784406934887566190194757647030369499004062493398304854328420609882740645923362623643863420621200160100645597596509102814193245864190368629040289133504448304901396323555380369353115189894035104910888778219920275304146812182771867324804017222348726017082692169571694417265033017382972372312392623182856905093140257307309722901030502351952508446712605143708814744426007148624965661747332569678039206559961167003754329262562028356963897459600435412424886888133071591051855244183165632055485690652443893643650587825181020130556265284557534229048154356709176329201237402359663353264198275269618098392157729197513620761902023744291829431275725140497264787165224996793138169087692586146585075140424665903705633641539279012436848624314033838591551045650091156726534637813939588441064288473111512108173842937113302447704900316323366781141989832228841096461530584817240546663217577525579734628328504116203153570048939410569648569007097255435258194709653945244338181420749972428833068711667465660777767895606366350860617474060976737666950192364959178928677927856867155241810946239494703216911884839083735680000019837336828784847674211311515950081479323717426407776238367086113729444033622270030727328144492113598305050633843018542881356654138567642103718711665903801777302749933627469643486970725113908339243636579097585007524385523871317086983246228571227542821592527617636014571796168192222737878798173847462207485325820689200806282622177696826947918754123078732723497184767280248587228851634015610666814993015555853251728027294968063213344712810707255836041864849657257528993816876453363070342851210655158003208046301165683248653928890513186129651230491470803301513504258201706000244394394550567084834764758752024311279002119567808477011932826465516338627236291658106920130541193995593122272703637115405182423281136002010514351928853219853246474953720416078030202841417699781464543325982107022606595188090020577524166220057587215386036693282933798031078841856230083018098194643553495807067936992920122346681729446594802065854195193080516388908173134439267694752642230285781602981577642072189235777794848067001816649120166740775828608394447607588877759860248348333794765754767287723029178687282162461193874932678012895140789024635658293565413287333822648270109277164435445782750510463367843850141004900032647518381996717473650973448665686875921268002602839793276954358466707599388214523362863763953294133176315486438419110602893675800731968365888134704934238130903030483534093288992256761435121527202345079785571756055033258579051605653754859840308469943369641165861914402341088346842517463220885838799240722502072006605596018059232631142862013826311345504820836791697714857097146886498275753801996282556660039846228983460347038207926463701963049860014889816959687356251133713165958326286808073955936363678782101761136518632790615205816216363963121312026370905390585990621437043122137108585275206253656844713672079537027154691845413673262337561083400335340141797690898535443277975745616592175240599493387569669570906976644225505238509791262743853225893631124455436763570522085636668028168645040034882479399414292909067750983121113583225197931544092939038739506589446619051420605126867688621121821212375277694046599566996523663084992144682086751111411664946725451542620411936236993314209644035491109081572141117674672436658954160053437119197695338258178562444437461616614402012459194218454929601042007782320124338053562235814865519409917587116275020853731385417364842549902521954999642868601634391859393538850735612364050969168085126154110902586306034994320345827833764575725490855054791210769157799113105956820158072563331198628819492368338063331494593323330551503273629584762196692898015653064719044503325798113243246760784132744145629435609220430546889126815743221930304918551880848823677978815928935155892976613253325255335524596312517598289733013915393436607625589625355845277648397864907734373023588157783110470024913274215614998311650330426741002001926338497757544690215714351836086231744030292727977463536167164110667895777910654718039667682216681757118037979978151193046422479170710445068626690874725219244253909769952354123718247342782884767641683067267638132120079978153956815987047843322998487961235299331076192410126945414608171050765607882755255249648529987138238169741751444241259433296773443838498215216307539822714737242929912945636493624313764506743599218251326658266356189724036628451881455602068195869934909717285814753970475669747846696799783979232660550570224479187285233118732770256585668097597890224595057721101726447170140469434068773194041675214078428878385085932306715855727685133352269157351657083514610493344949858378623016842619326426451167292187756203177390511241963522954832141617206987572769687897781413015100807582878608732361012617775839176886157837054543486489686875167731819215181549625513537413109058877013854836416100391806789453167957171719690271051346100832016935279974746846447053362230598190552066678823822078623666712355490905329096359165667563596190135612792234667908773240673601293192860882668232652154134382600327356309873935880530802382727666805234275145021508890187334130356870919865233783179922447761618112050536878712471386205150721997600934009295399074189703720788484736635848190267307409971538632725750335737589344498197827787729525803828761391090701802889913019455028712714929389243642005075962062646318956127634905075159988776318497830134906493326655111894462527817264439010335545567981325874910088499950028112643637206702993000477251958699649752181395915549479048828631839488934770437626902574482947873540815820393949778068634879027920602500251049188912599500669012591112453310557994104322430741883154409959620016171390421552836622871318581552689684638190292926302017362656925831369034918087176443525431870718366895599424338026301647895007592734771182807453535787273186222348480303257724689076545067861119325457822502408050914342241988847788861944582396325661716471079223216732000097871751384625062109710422636109683641329276966036289092110692013784939118715253152560646947029525477179114653628298060889326075219210027840189851996428161570388796892437445180971790901923982931313806073657404097881564683932447285019649293502773152231042382940929423628265691677404753128055268137030272886344689475792573569200707720964427977824827914067395573078016912900453235701535182167444610675442073128450696543262205635173078880206421616869577434136994402814067120930733122119919370253174234864105234825380834294517669436813141791139495457612369729769262418045583348891733236824150586234458718987321647679189167950832240366215087500052537301600101793027607140388554273001426145628614577089352976743484841993406710242163650112477744542640985727101891408626651745342994689706247755076608428082069759231604623418061940323335539383289206858726864636786107387850999726109219611484941195199525876468812884440909683371019423746174086717237049546148825352077736421755587367749272543137864257646632929761505072001794618859938789589624438424656609238783521704706130094962061763132348645538562741535601719590392456051214928661797105014961114993810272808632957447735961618053626908276050620679668820738962616942830364553961688821791700277998063741008753902802536257487596973389530070390798374460306309776803174661412120277601225923066486242436139338154424227317626334600015764103329117190775185461056355908643501523998525565464683409420928374341891067785161332471356888635449068995069937625149484342291789682711256977313161091685697391850619509257910603156203049770969751137631118837916976016297588106472244783853851746105634134571533318556973936419930822113632125546257647887616654620679290222609529040875105869891129237467781065862301678229315936085618233573413395900216645796380556102600959156991673348677826587273091315219278035452403622457680696475340977241366805310894635253046302486446351521432739886428334324616047599027062918958263083718886031114189008311728665808473854487730733273021327973956520150841487877121200227802525882129926798919908468984374354633316882926949856875014410609086285449161405829480295497917702100504250606509781460385853640450551421332325360518441245897531472205819461802630857166757730140983700118503843302362627279341497260647116656261186599208442322681454036791794841887622829502211309709489279060618011983498769898274052146857864725959338093574582254275374582944286958946685357302822842720374027635981382657950952337220919997839577448040740455857012999223180214298760880140890014230299590430356456610710013067965176537118312478782324489023507447907945708970860511309659233848682029721545077736498465754066983519495662082489401608051082319867464308028036932532266724276047953518586572940910412943587297066595280748889919498698306722313592964204006577445239069973480435133445005834629776280090693234185210489934921018458144317163080746979565036712529379605367007000993038739998937011323545619803119655299877358169951755248592985949659952100682272944782550827269143109586590655526777432658447900277839600744765365055121894449886790379619191366495740007960586386432063578287981060040092893029737365853801013265636910026625572525845671090399171835564604516562243459679286034791145246523173645414487770164807311457752196721204903462663279725375591538162664470847393062919879017902623935811272730922978930196589493593405170174553763465275694765945132126583580276177270307901144247778657937898979121933281571292290769732803778491750342246844134809759688426737511491282362508547736624623953405487873189397335894207721957098054050294549666071621341283346646348708954655203141538646355338042139841392001414141550286666130919920627929982623999826625736244149259133226987829360022183135012608249698011367607474587827253844568883792398528864587881836955564258259644247196856931695278411205794537260815232618260209468456152973533407350923080674959739965585876731003967358445236927513730204651000113530003526045733229628301325023109305805575030467708708274961508209525621083626986087018622737871381537007511823186969021987770707619982612617225839848524406809967216582826195016574815664440387602888620686040219874892044591039156035866338567603163357642520449329237964036386622858944040400746023004049123998700044342835870475882950017083654805527332109799883878627410552257818004415650635866902283536557580047542098713380488856362202222185954174819528065828792493356076373218930191462930325391017715856343591397253450483812967431604602906383096512146491736652518026251054840288868891298860167489982902054546147428998734887908671999514383739924778495925068082159981857262386363668960062516457555791454365896628830351882667278754990886970370906662190586655505114289900653367919241878019151152750601002501324559110278794379615196155342910440704024557797124145928314248301767187479564123660400774403178167242952706662011337764049420464310415991089479430545785053621689518336754499356335358879093075066837040315366191701077887367680653003302539557046304407585436865395244992229415933162912393319217684900254767949390214227578496626021988680684596445428386831703327224417852141173249909228787235358193944761093771470639929660279257146444250518721435223619178997626067509407787356225223629162405257692441225050207795916040169707405747882127325219067032442114018787276765339102141450268801782470161489906824642504480545061198376858844334789732899432455631716725067310107375796504039028358884599748891121073628989608984390091849990899415653277225666787203743405546592974593327128967849159314171817419166346756672028496321297911552052308138451179376697442286695560753860475618901444605256723194941626465707181765908365842201682772198093790097110790715446042729798971433447993990903639352928814505096187641637466486308164895041396692869240977714919600144757119475870427185345911860024867427413058243446082360759165600259287490511467175898587823168461705752177825210289246040902690971011314720968710696173218797397503193630725616664774423154759298372020851056103706306791204742157171613382513676786756529632996459892418984714910488797878594344322417552383682706562913866789127462209379765945835591766022864055549470409551175159332503385760717948933926442845620129287037112292985663572767615096598639122493895930681665534880401544125029084749840096993004686650993379476684092272732990532302856024468505650539335471614032840874101135832957756609691232412395582539566547052633112843927498897154486319300826589461466866115745641443428482640507617046117812650132363440336498454860985169719615131985931232055541086257553307180302193724731391599716411707401541650220361020571059065668053813430182297947472349728350891117753261574943015060186116594868702024009135048708705270229108715402700613966287624244826311967833763208878809895919971425093069430055294355702021426939986619648823124828001235246596683745017875587585674088679996287353123634092703149028001343027900815850808692705617134450663181275128430703766434917259703454020885930679404699655356431233494010141946042712932084128665753997900553340537860492623622568024584202800650110777852605691527881279170564505401502583814788852088278627590530231787115119161497576807292714760409211858414520620459088265088904596637160397631608407486858064280653017102716452356132414488247395689040096640837905519241752984326042308964919729922735128596636747997111218039636747661075824425810293045859587335724657689496319485906124659940870692961408353142435266860496151608311211159836834008241785974375846193323083827664939655155955150987133552111526479323393905959898614070350026531511538718969050672039700005640157156550016714175688344513173549313657028737022260241394971407596732269545447548969451856028466466597129843714195499564662483674363301994556452019375712320492303549717601394443525689895992900384072825112130323682282309063381318184012107068175831869839788864263814614133079910725417345626521124822670196570477434966740139285533429951338549475081261830585491717576755502999340055452639771137359000860296613844506762062624540702914614162190936051622635511161952504842707138758171420646256368261215308265220687236298082096428924066421611337301925538116723723570681443570473601737842081685352033913638702606371400158902228173855669269649361017186826626507586340012277502522172575401380000715619201833685680522488484676694989575071942984441715444427679037484787530288770460082939553573637714692001508644460148008286253121593136757114789483904471760001603105971558657729286295999687766315152423488908962227088386239165616646702197301092541033648045844498197026862963653852345089816562966235603372776321509303556357350587417883132996495907799614044157901351662348811296764387381239182598759444500629555528946410672915795250558074213107580942015678195215359654448936915460630164184728048481428103076632558986309825255712328994646104157921628407896045902279720259509400949257848611745022791190939995521419062020685201835994098612835471277127468322168234485992217929210572487093278699818489362992776763571993942946762430947853999528255178198025155515664488841746727001090227575090557012561970974368676350195041595276860935710831238499635714304844554143764817852509600043003932611669766123188407574506940801899307489468824853941845057087942080983833876315123419850559493462247291462317347727796578617888418165563515294298131670624953995704215768908146788617374618253250721957500226646141464703938262417583091872677183237778699363235854844783957941620333428877143731463622901608224759867934343225221108255617242903613482815325638310164153210079499145296157801161868852909418703204516635672417672719262595330962367145044628193793168698571819889562487472838363565345732391540162918698862639012401833628872658056969634068875449388666498931240109009135566399231952035131342881493669489673137743106788950227122940324733720650292275527369673148292199027742131671463909405700654439400533765329107725293956262457548684099381989419245861162062135946297847540757356888980812288590247251279906317255366607678327136495452555378557919656093350235425158297782040851066525129051585982108330290465644178296223714456004901748804215107229015011708838977680010697198796917204148864361611272851878515469956499337533323545023553814223358407883080875869707514803925003851169757150236980071580381983114371203304513079752409934945095352618112415094546297081114583899997546146297898009975205149749237371103559844033404298033223479846926723322775396165362667950243847025770486770754549534372503913149432496451665997086496617974904138402988496876605382161613570541405230484466263798224606044090545059261135288669222486861298977320816400168548562709260756275544682602362978162425763298871142487008492977154219311495608184672373316204957013476771646827378849727292881895137522569123264979907174106944932891338969980085082368509459167094521316962550014434344760546950266869987694094460546822533100022420996591649759614379554268705268310586101612734658746912638289877319280916147687556741208895339198583122213331940884562408001242950321075232343550334327733707970112991091731543732004769696367430897072139380174072795481087302825038373709358770156411180073289574103715297179398380277243108122428872244632358053503266713911555898140825474783352574710159569286349497350577546717739069101445863548265298999853454343370600321098291184784086960878287045893777243033975763763087468060260121230143761548927722952774032716436015806237483804704854205757200045737109282052941314401743033415718504617457272996810016141948370600293918025712881592348840639229084694681961459940371054458317075368183386188764027280126671450300316802310052036770154387215239815001373485310165003263069314507539656937686033647087471142360963463760097569375774038297712530397820115438439802165404851100646919062344030743096770659188058717626922095293083992312856256949817662996396910170734699157203933732862488045540685962682345437698148045184654396147928594318355252872755918821198816705013671418257719438100977084899512447061408902846798553535135723443783167081632113881931372582840553489377663173623184848311152832576167571355139246858790576875027921186997235696705291265708819809081223915669070721319991870938292921640366357920468887953331231113846147037101607891307217804097135549688543471504124564425304137226428909273787937615212309128916786557774126078216385359156173515286270382336241323558736460088921920805068800254393600270802854235732945504279370374529684158039490467452473789527958716716699792030055026113225553534875569736805851531396015679088411765757360670731331503421680629009259182605576157649706898090206138159599576585457761027563556242758165127419258224710587948881462839002490082252198332034994865666098329729212780222115417312732646105077018295329456335428140397166305366420547200652474643084160353495152113130865195076660718441019468570230569791089595006412491640440135253692359667526489775658010974522370417799205214223892524424961956401248784954813296915754616690208081778384630873635256687519769930206925374806561359272608789436329317612100936614928638899452347629435328037793349686447183720641679214582578196352101883573342944324188358407696035519646977711706026322532477730580666896329493188515593096383343266945692060532000520171016894082881238529177685541565017634963777296711584958749393994444554518930401716919888227877594921184079120428866121274365252722172342967047927434833652131431623364917091040573789123567913080871412459954028932458005679860736252169006981160231557701697022594244120487984713812815385208986278898095167486134625838642715081744292378725553545364441646734187932807590460464628516588121444035740274563101921336222923359744586402491983864052020219119152853233962124167439661506359090237876498782892426933375915760909228570726582613620657215193140924982314187256977136617412873325721042818313691210106812364065566283845153899400466871042478585833271270046777095037125256759452951665072268482719214636892491433570152733322641605887791158815295813050986275990202512448351147759222064812771447996075793672938206571726777574500022097727816417103995637042572914302288341949877125962972941898491048170766968808254905835741887028489587382068752083351945318664802304991640489574067042927095233919554892743819690972900868454165712412180409742593239204890909701143251531968069828474306833536752885943342483251369652753841992023993139162326165238718685927246369970185923124328836245396911406566323114970852898501150001360553317762154096427405951302766034143938762816280237722084029478182587754668959899424255340682942935667161411051115747953880789821994152661974456845412753123780684720856413193937597840413839237340973805413569783215966345223418817627586266176395294794531518620549036045071721622767066474505143740566595710402505541672915682136439833618155593973209030070964993352738343177061269027609781249092039099091994552428198070949900985840373424836849532477002128962404254825365472855655952924341553348900414238761606081969908131058315245853718108136947032805639728271020539210018386318435508969302624600638669884468506019684427992617838963626039379683137967957552799446277892990979312435289705045920287112083285724137799358958801355591993364429390120984527169942262375610730071807911678532806631783409688983149121624702888041289630932566885106023274249858396848386946097781379425304269270849870235543013320476540299847114490739758657833769406694869034682247631702354684514827268740564448115915279723353379328212573169038711569906891207671648531582496313902668498643191770030475772221173660901916216446049721454860411595558713248858151507761791658462292476668293792339546874995899507937329903221773118259485021318002326305113750725019174229801285526680240259159786182902810778110313245165814645477649811924079081608520580820549181434638747637998066448440444184230123231173252606090342142488132431981075806749222950442361772127744389111446128689204836271379290693529494768083801198380340249977611306743507964988895803711774591190452447202317347408580131078758706506091745837342038061298522984357186628155258201474283967149890708535331300422580290043380823818199635594474720793007633040549960643848626220431034890534210828852209977159788028800879344906222852911108039149536008229924896946468280398875705852924352364730928266708627378384483761794249672789470104929046176837300996771911782069315785225512442099085421459455820215106347569992870724382216562550138527466713356226135878263833685528335243343722476555069104847126915059935135961433865914478689593917568054567069940286279779125877519404755882337342489483812165697544225765822178607845343715019604318218947384334212287963720095293971160336390384956566169149354514444836490706200486650542975952841022470681581962634964197788171520932520919389114625169532834195930844527436489546497602414194453967601113666234413055902747961490900425555798724352246534822430147695129409830656992400705992891275542347909363814362054540050806317883581055578311136854280054644867231548627458456299259221863081275809177533950031051868340649790044486970971372316972810687638302769029872733903113904264353518936092477832318384899465021825496125066308843372438104221630933020454477501062035598082225560341443951889894720571464524507830395449367048119042241770383316415035441410572076137741160214292156668322349583559778046523922862912219923119714115042144734905741453137293037973542123323658667815229407118368344685202695538305656011481016302120038509625554825483766927933496183557828278082064819105275895980564468715517988300004864387930491912554061504309813340247851864764446897291586836910178572287173655090552016527036751799431657211715331577051980443047602446253021361659196804373688742400346789365564058599956512860361092547920365643247561011932894508459035652419511056544652598629130239269277345822321294272423768129032777555473051332398347536581617407526654682608384473973157424153122601635258627095050913583093833923744008108359277488407291376218990860252604757072522039938700174728413975498634818713145431180283960442751230343312668788648360952911359339502888461395486982351924076855021815325833184567112182454191661732524316716744082312529230346235750096535786871213058162802347636925890833197357954066902597724634799426071891544952166967874400629172633104965361830909057796515540836503015705241396788017363896861418318313818386665349362436303674984976574277101389493362542452597258036324986240086315020757793267465297482828082561056367001065952122443743525863836563755610387076705581395810458950913496128848650681777751213356688888688296361073984659607760557561555016973569120812482955237771485070151720281140682036974598867028323800377594337144750872792769048112011826818892747632508724225763039572244578641285406947004284160899366059692319224046680519947103448995610997428835916308983394508574333290677998025802356536728903213723714201922947451182149158263495151706500749890704568183939050289170934476696228184469728671220406168487829572343477184071637285357970403798932882246061514488957490875680560466179501569315281872375808940200377050238753002183138986847412631552357798085727928561570177676895991280558248361262352088846265885485411213812931575119222150990925467347870880799038767907219626012033862626210332391200265985849119034174779730305181390843471736305522757617131078730183922654101098637571586047724712844171523984571196560372442599192866004823514559602911884788812943758662366833157920838996969378398613733063625781231516786778350232310065063516782079582741486087054402695194224417023291848273745223820175412586433676618237333898135326717158557049267883611458574346088401492052587133265400759451350592456352239832723740572892639353202236174684615481061927641643251271840364210415616425532320665191665592096711970795833019784866065005721819974204631768068374317631543132261612896383931687596618128965686196111624424883191686971918569378654307348706630627649757095683273697618245409921463912663536510960174892542824573538452077327623982971562693723722448535905783921416145249798384422441964988101266701170285799886196378396870979906060509415916581199381512495493514307945011535755082438217878209657903570852515037895359824357318918600449224308242325596867654776665830135767694956304845919487310596087812862264598856615156839785006212908070016613441152888494417686397678009809752819636398814130224615076946580222715542078019429797656230117912702759485905404041482748379702873813142386148358855900511277898533223365244568587960669608069216835600007053556510838947319050243595335409729101944048638709649647750169301564759388867947433135407860972497831794619929210402847570227898292267619758324035252796765993715303387587061395584964423182863205839845265553236362666281739980831185664099940432224953308336243226692591981780962765274757816067323113977479914404662036585142107621972929896361046758876541457864008271464822228186841531712312327312025782264719616990187545984855648288919147997293166541895014024622532209042389976938189071909439526436250464618348041437592060970180597265816713532674658408575401652998700869522508176475395048278606328948758807031181174754035202932398072951326323898986196212359682579684867820658549380491012499491705785333931513128769341739025799632005071055584882356606121170400800422619909852455813482185275081487253975488713487730606730004175421765024490451017269952508356266677653364746921052588084295051338695223657855535244176083087297069008533705279589648113843679528311883427983279272353890205176604279798554153316498258547024573478516197898887382494475995299218192314317818724923449377890500939575659556842031751966994773495532802895139064471405456599531280616989769546126116298055620489641014434019455901447610347004436208592442912038311392888104669769627068911168814835760204618076933689869735054378299122914084433504194682263101843150595145953625809577997152750732492114706037964413765915705920273698249109249424821306804791273054148303732673665816146436730233108320923006202586556829514243514304468483410404633664018105465046356704273998458389105849082997121539793509633227888964392316971548169530864083737676433485430622339446369953144675914198745196849389769487671390486241889432723960989869859754056504504069794246913037316469085424472024206241909915589738523957009708909382958031771639103767211073270709763543053015163840053396868745891302608784991940067744835440236905344436442687630797437133783880835366884893661132114884421961151439736012005960472266106868594399791774618636895780254388580303292485873845423641127144865611677148858032942306292999445210032451830825079161333277034335227806643836127666689220020536999969878872080116370479102748418491464829329549847041273293489778231755565677323142161773940559024503609564697740611886574813099122773113974618090503231859453715689065972860136585152268693086341002874573184438158544709488393578726850687687540996653059027627341123570973419337018610063202514825314921756621917151491396700951540001559811738321220974636331232489411094162250783627004277499365803965264139866105613781464738751763306340930332788641020787302064455044998155590530855955506241358248530215899846659891437581049255764465765342326826747309701973728669880347651528444356590261635175223677876064905410789067811232576902475336874366198049096254633704966809296128915649250724712745831686142180676664391993345810880311099234984482591621873346016762042950134223355421828249306102419478086976954013977026866121624936546607768067555160455520193849986726598869693191319252918037760983775088532125780362701191241938105047518394789043004512015453352701286608282383061813603781623109843906232590420289077943718832806321290813469612939077737964275859951280450321630450214996080424531728863331624022095824684476515819850295774789003637603371955653031507116961533852231420398926239068498870769785277368802489972103578524568461333129785483551239617762135330571552703508626093800017994937739744789147712090824499809443487484418361607612541884958297638970914111116375856296349539749513747117962010556650576727613796783791732925996467832716031221609954270410308308187567124236089706274415067677152824077591700658498741618322151809855215401918807575958475805089304035288180483103506708085968476405223337565210311518191403730131760705931727887645157192725194170829893711144586028008462961790395374838354676207467481801612218060323808296753047888144225753466858520047221783078671390261501838109363260676169570393733036436899230736846970851210247606634866966015690742328205365736847308065497381946188533570322287977827519682247406842120467468386519674729676426774982284889874385316332441135248584265769395355086577958614714156245442096708687939432234246996665732120653421586089201719189362598989294281724516133784482199432942966789137338586078870011286239436473531717884773924245802870806244971447831877346420942229368369002742427639077444215748793273900041356023620578216798026550418065322406850876472892915658889793701104692654738309723184559287030777936772594846788858377195192741332879667683131537563232671584074297174545211114692623717825136604864356713588817485126598733899420991573134220235739287998358548763799434079843342829808446905355449108429122417169091195908062850058580594585415347110224485139124341236690291802232054448157765303416629983005001542916810920651526388100644878375988902314896958591219734624008667701051569873173595196302227936629170390047228674580877976438733958890577108041354451329895172872326754415944218268379893960039552141364985536548509675161885365483243255764897725549555513309695131819477044025370765078400608250128221134463800321155267057392192242688409414434656244321429611447039730328000143051489038071643414248677623109349297815534541049015529053848184578742028281850651363828441700186659491666669287518522718843667592879871024872880077724032936628473286188835940522594199266252666121376440026979356845681876603317659216759318912718897331006773074532668173864788190127853140682610337604690104439726437303068647153762663117066833778345563243506120505446402408101829930158392188257487046959493934597839216392889661587336435706447032909385153196477600246729499490742630540170397869889107122174033126908895419628749310318378400112959636399427599947253468510651995528357580455207844206714750516400446786773543426117273796968762136805928187418397554229479697985977067643120538525343649976340578581805154324183484866415172062180264741816166138547303568812746470908079558046906006049743732440380565403504815147380010365371873096381378221877592948739654974180751333235192626010539503291162022533941384658116152524594134909277276062258483276251542174937110025196586914188401259991774686214806892857672705535900426741119137584634725763416869398657839187621390350651711396072457283415467491999039544275470081188492086154902334024978906700281765848281328410355277749481677396689907316426006406459321440603897385023870661049155635988098122068880994523215798904859688498274564129508650685709277780923138243819690274598810392285831890894853085652982114535699268393986571505785171675492368973668623434337747031982990989085032918215135887792638860547745767231766785131686785977065843190383055196814837860297249477549366323891623056556886100541820333935029473446307826032990995170036715103533609302595239856595616393081795106788033723328039140789100916412700036377235129041279339033501553741343392271392033939970529875593809916702965755930541264768807531391347946344109167545260073961942682936091289916276038607833329324551874737229314245516193221522846246121424240468010147730458187155942727141907939572698195947138682362152407683456486554001259956325270857125755524308871575307662786432817488553449891959840426813896158068684589571578738147159004126061859667621034946212995481111347135840678798551110003040411351596182826076842439360252764862134008405569818784105019074166987760045098604380560282179385349614472712118328623816678019365938969882914579104140877465624669698546506146964474818851053535752894256103749506130139700053636426387638567199262841406653583742016954047302950945413446115853101316275224330618673588714953650741984171614959927042626075694364159708600957679625426205319086597478882478886760577239302656886162382402616331995335794815688367021389018737083007310460508948416066009182380368457321757187394596567605345302464760147985170467731774220147308779196309491428691899215900014234831922374774236999297930815737831262247654174868198349223913464810869522520157672397221092729917528284639347607593281475634386848305190287169854920961633516832314748407624255592935360081920793342487998742905638693607289552743313182143240163409467895214700833703499142653942469722926265441163167313334900470848291314610927783579294489891239307395738341182692095306051419817936926298357661755913963966056708108487378073750000886914695041403705614744917567662444221602753572134201236452741504260720335376264351402292623460336695311038556095405220488918258012577180892130286392872191403530684250376699172114582802610300565100410851897161055267358519629124933616482830564138915083434480876825471538986366276218117372075850022630017446722513353508869133553374486545662456672675039431436163246572672842562825446234742147608032241317932704759729652692020401490316713784541768546893998206785106855584533968767901259218419125416113988329966726611650241153894598620342249615513740147173752376443461927318356364295105632508336376977120659457327506327287069111699373781310759672409775123002523462882721216999644601509571155198253411261532083740518959571560618002374759852086259562470028766722066076150315346475992830870249764088090886843941686484872419851283370318055924873872503682945589012448028062262379495709366073803276145992222261712798860812433944525253489156657484944959214406976798689770573497743563794434930686511580741369844075880510111887495403752112270050900550228327266343338873473248936484968957754843625191443420169532028149416264818457153132725400174064082612072044325729878121616041479717950434162668605558302826500176124896710628810483010603551353934495481610305731940018994310529759251836315805403943394523354168621172937158146595380093779092629310568615088666502165329148971863138560560508601262303106621654890231450668805834735377039070077661485520056439566177999723244130622966424474721091098344652668981083745103132390287452013759962723630301824369431565133112492022301962354331897754128501896782494854010480675269582272509348662189514574343327066780696004010475711789496164423363204786130673956586026193672326893333738139200984230437214273948437805368494178390911350931229298211562726534082890353472784692770961011357400421669467893205033131186268517446483866315225602679036809961388665826672623252957862309361421311777293994773745553200711743392009594944433333453674458111968217879440573916038629471914835221741355546434634541992301988163928333852296934262101129624255116130589158786659121812233113295296903326078631081784466710670641859940071642645616322593839667182765274685518921269366283466603316116892328895944546480218667261998094676929331530170104591248347060452795302886684366617212902982945517705880796302481341188953846253124685609533061885176887322892440420145294548508565397633951729585019861612638726620826202226894650829196674875510569104098340617125076484949459661718258013134373696455764551684151747140652236999312563534387007305751456532475048489024382561165894359198145040154195175884992976741269528312054440230692010820866899468530476428566935922434605933980127623135138818533718669684783963544788864995759988104238072900144102715613262701157182058919437826876122194506300053368164843917094125501043044349522200625239659157678558679357852227836306725988465263536035519109655838947769820504705456905955985207954534186683861521663100466374814592603186373800933640095827407380195754046458166116743862555125274765885773806131797466834951630224726304588694906766367196202638810154453799190858469010757297866362202166875856191884899768537100773955475535703649981207615577247622498681231197710550431686994371703725184295217075670976433030775480621273102464042935932606583045693161329434797637468494988604452280744354841852571925254095148295848793415967515699852567186166587609107428065090748544802556670616730428167962059553020457354249094205559912618050600269004266608500926141521112741986340672608793243269644058359434192887853982412614763733818124011227732921430131792652568478949553693950624779559516541489754857336327672346273079067186211894382119651599003973299579164134509484109070818941036804985312050203276960374872005273862955867528056514634646020525517888207459880558341139894841071328684132951427464292593245568651669768058543285582955100720082551055973674074546689284673439206741698750614535798313855199314643522245669172416590105795595408655900045679299748053756300707600053680507578009393289022936786508964583948005054045084007643517854319418076756388058309026760162694865621487461680524170029129942626735301827212787255030721631725979951782289620546412177227728784618909329434947929877396347092343835530573804744815031969217896480925729245480468307846679302413276111371576403517336148002590623253344538734131635082330977428795906930063497985994655277886487492783378301497398146520491323942502284765709177461284852545306496055082786521948204555324413831641558652255749140171409730586184980849273560343571982834984457956388154507892114899707071166491867835816539030751307873008242027899953460611454088586643534626468790360944144495485344653225280093833835940689680318151693484634000233217181367830572455842689512591191699831154123050191753466218108119619931647457918557504997517531867990255066471456858553430736667823544201361767184348503556836221101273054780080724517871922729123329412311415968920641330718865429548244329253404966445524686664230902222599857482085590114905623753875531384895438405609780754117036256375368763309405934066635963602763040789487423617703148487655831976364348772406829076866874886693034219176743210821645368568560749512218670895242833162699922144248152995476174687031944819985141609648547232439690415072005219657447337467867936095624944351276938573407233841453987518533743728266030739868803739029400267282689452563582548999911939438442282155526295041626675705690290631270454160034923556696105333781059798154283116163494283684204163326218822347015281661043675322348825449950425263751065910102808166292093204865301420244472057292841777282702413103130111782185470108810183199435846262513737322241488365904548992714371414047234694871074925554934660830670754851665505056523646165618154770057648896863372496953690509795232333692688827245382963632388935698321778686238043937814489649260865761985892694847294565601353654200042199255489096524007479105333743733705469454919727857512679071372112739735920822367774529793700411393231047969950697305093611341897262866728836373414384819745957531733819245147912649395498257926703956497366014286381445692552934417630681238880437610913105392093081999846507299897865116992013992212335350363820395410506432985231165402461155923348499128389272481915609130149514010981110927168880891550810644914316600855932235003947589361633651612614000946790591216834315131279228362523373261525654104646346255218742091020957992476188520561474895956803794452117315191602887428270387035200470279493042439755673548624469682818455346859416450869839037744456225156844364272954354440552404016240582418022282562483754564488668098008677314799693913589258552435321989511828811907643219414275934358005102337683745456375440325815728903189863179385052069244778931971685060555551323019072471232945124383162395777981325589855450793152351484072643847264106816644477593157145078814151257124385331425031504454078556606362033637106304865160597656055444136874400121015876193693664766132794320420912045667702858064832960842010348954382546839347162884424152803730034138927477390216534169863318335327400444833514721059556864479818985266277562413596829983398304589100546719462699575964352985121227635022105731064192122794772370304491689757815847134581066427827994193780801485033096617610534704038325453521103621482662076761487622457343495441764588350118906287392674473867756163975230177813015343000466936345818208584582080690915135796891212048276589854495411033590212399977331109945921783305735655259974190104104302553535058177665265537418595793678489455539467886005578421130218927086887359169465410134127095849199435121942500053846019385756826539017228461258214727190337563501847820586735682784422330851357601573334277893119980290469032473953548242868039148351555234200090772229916352574299430117867127407272629350125352186782929581337602000013008314974736967227874088018420900505876723988000072910811657475335429973602475753404432652266698978508623839195942248370784870116177111778183097768901975749931040608916267066602065338636979806423368526284377822129942061498966911386593462805540233999236275926489319865835869360706292341667077793421361437437221688933865545153202228512194231897025587040056794292568705258643733417821404230812684143754519139592467619978720231383954355289686403361819979767905347471909111050837762831761298699345780259256975222413977541891786511856795043818650308654617696734675835676346082811570873627253024263065775625468218143216175777748945670111799025037803922925361831607211988692951268335199594246495863035072298685562820406907681840847402171656289453065709373172778280867985859287326398910591791843272219299298233759600541025444627079426381155533170203656731718434339549993927264365466874029601347062842054303767908798814935256770183361840029842751138718306276680564271501775304642206462423846393638007433124560734710564825860362454137324866507137345579072655934786875277254609987290498322887291346672439735737745436248252043693673354190239294832919491791767820646823095192441468367319228003375503794736265520542752398766471027172131742296055978581956269410220309870021592483110897943128562112390065044753684234157622205401087160600697767248757763129934229654632675117613398231387911423130184958916859137288678023244618052825126669910425595720931930774630677437222651787940427921191451522184163549628228155732591071572710463181935480673605015459323727627084750740382706765122013711850578510133309626253416219609066036824828380594094488281010481966856811530579722326557683949381232641312913902950351672429273282221803003184509237857230639367976820348161936677364617665991660401257524319128933857913917206155453487346162939658975539437863279706496544114785913647373758875224838697932368557746077214847216683617349779204510000929401563980517341854601076257616265084952736143359352030775388119047262253360024173375816864733526383201157541977912630330191651408050029211040391486905324572789074634343594160284973567734719422387050923163781520735513414207397613728132836891191525462991661913058230952943801489104661975105137683261550977273096458814236582379074864701144702967009162863515183964902442421705343391968519273703784146155058339819960475055433336797355901241204609139748766338368006662792277864052763043575339282043887379316427340750335836619326922364554833059502811179420386499375132381584939985186105803698271291515289510826217790833692751961536265287311858650444263880926044448924821433289488860845707449354726495714564303951270696735270239430582266177042026360623984001735343459851701215381569850139976204377490699657644454759758683855715916389595085699153148815944484266191438191593038154749908067950897284729770944227510317732752842333942551129401795228751514847163046472199819980275680156268919683357883907828931239705194722674765175267571074605957921204766184510460345434555880833663484064587681354255389732089846277416307417173067681361711077598933945508847486928524327606081927305838893357860979631659091671646928135466864674309450331129534137022187644421100784024505669356535961565226771706698169929811733190910499514294062742394048749316034174080023057274123158127388170579157690343375282284152702513888824856808970989845029764337381696835252899687685055959518746651393732635266654200270988033126404431467297079766458767575878184344709680525540970962656617860229469069448934206595415983232931296164133335498218538168468314670406889120391762355855397638273149488603976377613193603955966161611284654183288240915092580164853125798962408883121190427267591570714173727751127160557074683848355235843415075814471468300784939405849295580735953000340110902714786134643643797310751960670745093617949466314883215246712339497753124541088084973457277530355010572038967183152675158168365039452555403180234919237239440989548313964604852074159230516512420938937875100783905717420830213990796499684023633562010519109284816575333490626976064740630665694277413074826066568701127021962049529937645377403802321937985468500897880950775552020493488308727482818746095906058578867245492404467311550517739492710070450144287944223281725593639262399328354952478787762439174814359255180026781034714310226687611735874396229626920852824349008980746361367505481589260931234363658032708375231148737737678657647459124099429196510685969836784984831982436714599305219859606983593879813343678437951181983188000330127975506946996193169369727968034347179750954498487787644994985287475616360336293870169769696950787087339149910185470892145787414672179547154742201233547689523021481219579210588749248328340423927180102098340742591479641245649988963290888083457450960519150142354134118363704810338338963572924422770139332389669697295762239534879426312861140965988397807380461953258365063480620048442330504946060222017332772105835767254018142532027944492011499147177927340827505874765003179537739590019200065816567671333756888759378635107509327630614397385664414608508980487012835140327397731620122582544202218018454851797183824733196265902014640728251261917763883910568738186811776496363893246656408144560935817032534362383288248781536616118159510680584379601561878523330074743692243938873981940491116137503651984808469911355971698495905524442917025341797595848450372226089991036725629452086943633004304814738495763902306114541244178642206998055710050408745670406730104865491557119506528275834056971542755988091285311855701138772084316277951293369199286472103485574372102578768148426633728227611160483245075710806452437516007924549482578476299734644162507402729705179741521524542299807451967285952064112131335969366553842255506838829590898600627410274723328654110371291132624566746232463980412850477484919700225902187348189783521931106444977874482792786358518030284293461791092243183390327966258312673625324417275400406292271809804700603982182483314466031135989160393179191842199949739026312149527652786752414176648615561272908399411656979480900885039111895216120230539565038728971926959314393949569308650797066748693230391075961847180796548912038768862077102488192161776293364111129361707263121748430453482304767602337769041605808590138244218071024040665012275763485760248607758561149787699653681619058714822661925469815399246331383156354122046397423763359279026232275417380716450726066403543461560504465215880823443923273983042333938424979793909311403889539829483091081645680509454036531047266249558892027434583533856263673167785443620697593074018527632802004102728359097794693538030193657120551689183284660037281073439794723801483734717792926874750589815088495283945878050626770026964386491430944331687425711619802288055134080938273691912050525520227289384232862024992962806493480595562947532971381796714101002953796085200787545038274997017997982611260600901358981562500215736054168758569139119269281073496665345401356548876584539991300063022260216775054378246393365510357608017702966721680770238695628422651336548963493252436555029221745856574486328666207260581930123183038039381475527441158006441101516526342156595014076750133690849785534191533219397964166875076887991042250060575828071178574446023971181272308417308433172406842935491882567287949762640426012845417162609453361189548422601721009386528444082618920284062186763033888482508357043783849050556173799240289977709771645056353528161320312717771219497288738750719235491435750092851983510849090540460032621582220572993920618404859486709317333747780920134077577879934335426792280422616237653500692217761539892310770515737138627136483603207552938183708569647426404220297530845757021657858353385172642670583654828414659935886862434538228329465281527714456804014520438012938595894070525842148271229441790989247460290393519874979367965246286669628931052420889065434220906640230897039966722319268897810138055208895640872515394722401510630143738424170415480349282300437844082661087323752067860677998520465062004479507395160526157910730997464434398524367624901008598761272879550741030219250969135737059408689513090573092483974841230303429240973480984334988544264641548163653704750653863339139535582452002801828580847981448604217689803053407375985939057431739064809118215521498573763195714563396627791616065675799161498671161092565679296100785242618983649317631586620350865228133698586937074153594217145490560151088598290749431869777644519496632637207535689259260142261185834799775806292046827755557549477484895551625990186046271304436796074842446485709980535178083864846628439192106068690270138220954905722772723494246261157042072371504627810279815331594457720736486953783740573438784108028484409147620533338351919512712272629734697506164051795047311698874579567567745296868988402989541805737969618835966170744870445964035263917617131518180762493716950972590266938016287719804150228729701005273243833814106861338730677018194266454027461220642054513773716825830303222227108566061123226104569432072515666259102883842680856937963691520473958814598916302451883021380624919040191543575064428752209020253671221189218991352517810783262422043623185954596099302057043981983252093062835521024636471358980615536674637794579948767259588752137464756419364283497107518037395895103922424328807145312101714193811754877129495050501504644337417606954222073659915614891438812661827926438222865902757792390886654006160375848099309738789366269675061568248604712156973019963823914932910088593318590846859676705027975161329431262454899366677692900920193819875078237283433890734208890508097914588321348209813979659629478260814143615123732506374340442614615011076888294264510769507164157911367425405170908323629915011189409601132124909286373988279172415527757093190111028713297855206930705046321324004737321190275332791284609586988208551362043715064923299806476919847655718707365991354388077444661012265553456010131339450149110810510321144928779168148798945395752263945955756331906778217950017396221259187742829174267147933906014461376780320674446317657379554518518863112477055818943628675820818873593723356252251584011436722040005639864601997430002596539577382836766706636789938914665392371419759833626278569424846109452835674375164072584304625050747756111346746744187102237289880109789440338319801342007783898980362287111089444868855607487886871389026434440428540565966490302738186905722820289112122476706755080529763882193726025148158777804081708589922235207574886891081441804347400244286234253182730036433851135167331814747316733236687024637985164425927520407770713863317429810880764575475172406998550687531177949181497995307315685946508531082549183715347674072155458710410661080412903148283708510185702729821654836720101685571534229718407250283685425092092555916152957854867257913315170594082375453748912695051443787682356523129739864565968477277637668871964008373375549770987389202163025583158303345893985369869388720443397200743208674269192810639917603649921496129865995870593107497428422190741887457965489844341706789368630738683340214224183625402831156896812424571441732648670750894793702388700010796142089657471761155507287196650432295773019727619675407039843506717432142226358966126931640097004402686429888138545344265298832621857490445503043337411215710956777151178727263066749457973398504992064057707415890870130147156293794474663976833535413604955243637673410718444920810903591752186175483533026596184136875988038452215985061229468728948226543511090121064625680647777842600153594148925331425075671855690563193464364029357445449875199171973240361792054487703716394741047792383080467211333298514742934891312203315076799381537712994805993239610562687578424031870198606683738963955619811488187378806587002740639349733755807436032120479721295556045753821346237958368587202054351273307280241755893532012674036844217246990812533837133922084894319887101045751189263379553703830525737164089858862406800084030958498247762441246490323979429371981201383043136165853179755844823922116198984152203850052988042857315249893591652684373222590290931761862045045202769585406454876482677038631226775408678406801574366986299486927486445857226815305682418759604363492515092279276655842317620502225500346131979255596185404756558153204708902526256541712272961700469793391948936609293330293087063114603833874014084428695777149212483159591855394796157248327436498592690217932236826397140397090657219438288577096631980724190329392379299570596582719861675428286994989374912920768479957878025232551281364500438386500288014756140389282128321270795076265743686642100280834467178581394322648467281065217976246819302468507870134594977923147732791411469498637168653341426859864900712324908635015438587361148390189949890940721002141288340251979860795415652206261129231871188774588805647002156433815620636369358864432397373240505343546597129401298117675834296915420077327181543884141790250764478890440654322377161877974155104442699527721902077694885072057369279390454589231217672582266463816751534851026245915490035702779451152145732480565361770139456932463112102408566462538121712046111454824394970725590473795503197133321941297441630087312134957939842195930479251943476312060906243059990198981902880910303698391595699539043817045765265337498044838127402986650661624349267392059531519516646516247654088533749385487971713911118227706801556592319296593506798958103185010864179846678282277580691337858722292445583933602378950717635546272259318340890140205515019238750335707545860388534142806206578658198155182085600928782390705410293696565564001212209845263335946481371136489615527977227398257704790609749081729502025413646548899487530270153066216415888492033371177218007747393563896906337412325262130440806016205275853637733645670580206810667363773974301076949326733817694771013644077747034081567982895307945417942834759373422410070300260359974584097377568566795576622107618345038642901597789417461969684200639564109480009419026096298937042126001812588153785619866715616895465720959837026146074296379398396910242189820715406675228683604776226616698127457473743180492859796184727593795012936628561791896523458339247452859271502178574223150204210196144436714795341197050520194716736523804806876789807127833136496140786497000712881248666719849055010704583111336487161000753253890820866197579769532663076120747770978965077082408208304152301193612247354519563997857304770420015886539073675563447575999686495158260244889308924730942444948146129682876048479114982416890012528797752685603437205678541982991723207122891866474182613447327595643860209751867582773200071474445379535871892244813005511400501204702678203989189016284391265813594942810482935162229862953520736919202224211507301636243944955391225532023943332109120944603941610891404972046836739022789246122691371282566069322907103311181040877893799548646113418821981967067397970798427369876119524462584337999979236926416732065436786480774374120303794529036757560683996426329929364863222431524193239320245961684551523945260360856066073824741935927250293757448447812842915398678029134890266935880118792449601584627753877020272248037743502391645773416809505423695675247967434453424255842742523317092944254158101436722125255465439519367349626800570811264192765416291540325712344581250498214228039622327698184098147319157359955926369035934607487888502300324990456812249051746864946930375574398581501090804344097050267284189922172753487282613166366535951994337843427125636088108942412508391955679918513134222045951488334442715734288686709866435523423934764330628366392984922790837304208315860249992508909835781128211869040093585239140718699753819595529630755700178661466088079239217571295601277267685089768631822890453727193121199801953533395979689012444454837463008830725512532994457206083144484811649416847824727847850450216673295932916909735074735055918813777740358324907540666454819930780293472279484950513515482349687898298932965463898846430833113017505256708197726723154514332167978944071641834915321824747859140287370425598185100462702733230555687053096734198650936177463205009709978117267721494756347708535038198277188105930625586420437523660077741050843363591992375272602188735956810502232767937928653487427530963723089329259018811047497013128887511071749917876895556636102801953911407029245750608897644487157747121906734043990301159811312910692112773178714304185922742115693390831384016010283002226506948165440079482102046195317533701004980896879594837840071081932820373107226960670413592421964080731579267137148508569182414099454024567476704231992564978778317627751854404043226516940644614308378102038541014424310228844440114345213709510901269806695135098745968543713819754784136567492049971452535991519136654943922883972647266701197958105894459993040025600713772346993835670985189004808360993430833839037509564690366743053393664141831125332847849527784289980247843654926183498824512599446618921443667518611932272558803317086953582517110406021134432414040627009030867219468662727555312363113667359437971615125508719959115499229946887677129430860844104028044243627163655119829871801370541094675450146125661735373036768810550776924855790498955439605334670792845595100548309475483234735059081971257676561530821901190164638911188732945365109654162014096610691207660253732983656045185334520462350390381660768222237110296199732247813102971109557830053672036658190540850264917669529436907803144357091367811367738021093645228356059308117157855301983021625563188516094211875576583827425371427463257079118985295214346229950706475455514185984493759488520188321311023820205731067009821946447704692132979760946756207722577075408663275500013215010493827916615903678326722668233939710308008857677397624584978620713195534926900264547819597292331660613011504337996077734874949374808883089808336854413416720633680832807632775893548563392511916725547309200725309505353657847326422494488771027024432161450758239171281622191920155405048256393999200484652863534751701218013234759243594707279255016963776653681409816156140339603334333682626172488435759437671344193379359011076301042631136760241003895091337729113926104316370822161815067906698349640642667247707425398363046605191754350634694496066401840222329250447059071852072403433462571549237260332048350435852255498665329113926679342341364364037454638867717158490664874730538349023812104742543833925905844358825934431976884002470210168052642894139877700276812829153464819896069574820589280449891218682707705641008004263752461041580078349254575357968284604741787649369019035761008789780277858470396981117451568848064817053249013757040710014794840242997308659618303143458367017570526208575111115397505923186157625791650070515665259678793450955171146425772280918216158372711490280252433966688374123717674652788775236350495059467876595675719867705190818413709108465604103335636891495472507671452009186469002727955636551651454013222323674672853963879850200082444466643637527121861818736561133757387773075833911324840676691009202425647676452730604560154984127992077988075987325306752761619650389590410958066317325844556200165688118267413309286578760806564546405667002678560866840487181361205284111957848612235640013720379350873327784767482328201754474108878504871049039596624204764928229557153052624288479353255842216501914216782461512932310355686422958466132629504468860980912540624262655124019877037817118941043650786593283843137337601946315668752453791415211419078858955226023704408568523031655725119902226567144671653108196061845775586089573964665612420117641545891214801924511798898744058735508978142445420933273007436436422856099911820135680478922344054521503965641388755807791539654325087359606351933533755382478839791361371551185077957385991865908054048086523949613866512675532241175521609560291625420900642046934167163379127144407927948719920875826228245456951858227114809120962665122244902115119119422485914650599359855493492315312395143265288695860911784974173296849074423345331059727438290265800280624409037873944243164250289008343317146941357297123787157718033727746133794747729715172246857453766812855990049247027497386572378120046032930587007013901189215689879486389396942094684568380873713061894829255163016504500858127964039841835926485476465294278606047776454622727880590476137390591721358025136836734700629832506156234962272544686027702915959463715088551431376911462270001840598308256908767444461523168594176811839821806563855695822459471850787430027531098370045912024703400564821402087378375240526042190281532012908637545701945624272936227815918157995573769062334869491281382767527383186129785492638343008855821771640781729036537278069334418151792336414304444525297789096677957447125037604442361218749865388880393215981695125567686794218240704879209862059100074844719064133168456918189150356973827166934832939264608438571430626696528421844008844322545172823507333370004292005805457915008792610712276639467361192509313638631690039243824291121673149153971207740529254146933890694366301560053536471752429524516783833725033506602714517281149311841700416291106203334384904042233101994836782056185477564923810722862482910151491620641451375471591515312212491088954600532170595552204864367651709201183782918463558635304608544540525339146045264905128351949002649841609752794407225450663044458157735859471547085361078057976063512149067709157200878230268817579976299819965203260860217462961459114637273949130176774184815171936445007241054744861720142968193253601703835197331547370878220458475756587466858127315325124258579852455575810108284319017650699522530014303618656449785665491051546017137463782413976390875112880787302042311286836689567534067788279411159981735621057812087076134368358352617206023684124937020698234529828542863014160643615253379977841053585166795014240375718994627430977678129503783744507119438866521181375046679440349819918098665811397976665626408626890802236179243234905550345591804730325015248679903850535528868205526497798783829651604049494474963110881926840755493882426076759260828580009260358061116310369719074030462469857658360864597615883048218083241153320239314610888913968753334865166731329554163325352109177346805684100263920683795745704628319939160324344077614757008681318764280130411735178974361243217461299640091357103455982697243885805035541120065876867218061315367897146102524774259145664818872382917183290322831703058623816296210785525660652310759996947655299525813227039275068769077832371746566985700965314562469498026098305145370735149174327876569474018749201489650816223545248999118210958492746343377687330082839799537038966555946965124087422129152840425939588630504113453809850220802339287324710210538805415392671330592183223373606340025063687126934545693401827713907735540746984920231526664671724523970181722311528083995628830243526663838491591753458352293630628843102506292030910181925570490539221370806594397389697893176402835386044171635222705976539807706341505081352858424007848745838416872705367391938733203742720708879817396376160768848490151247034070700147793580681485934036383051777586365394733249393182412437348600918805044683842577219437927014055062412072872654624306888323516326673731807074112305521533196284834402620799937578189453077204512547357682860390843542862174280268020986246942089929646964907014626004581278442704972026609584647423322639112046929528885541498090794198118032161846245314979225060672566213212942187850169634297363521112105459039561725853425281377742395925175264306451604493865082684106262080610836844434515154718843677187680041293665876907300011159706261961610026817804384800495310280703654398643871762476186516726039513850813854128980154129281134851857829288508759495272059992330711888006718609776759979481296276001442019068386625856641084869665378853337436473962469070443522427255828735411038862974893728471334351244322291081428019974316478649841010294219607390942717605126385755093282656595443387229552234550603097951684717462691691501437691741073000834774636894247577982727487947761287550403936578051015490031186758482379250131243444541606267061839770997838219220781569976847925110049324376666770069576153036299861624157405834212628880841875528463462851752412293906648606987746662454286099015150346253029302006065208115498574250670700479213951870328028990229476562429639890239939684248380599934334446893285569792323346901401991110961094967450529173660057782929480199578864818371975384334846760308300543838887185803465600382799256565261389024829205675972915285556720380545466416708442399876994889887323940243558128698333880983463131381397346113238630675872958815066604857866010066024281965626776402861426620485085614077758457320347413934998256258162115343585470099195590644348160811445407646455147502092344805607833681158496226290469743504214486103981870456883210178015194321621062398267756115665059134107607280790063109430351042045138352623970996694846821729924162921288307428898787355619328801543594577677421657395386014860103273960368157456910373732972024255112508040147379926076964586733039307866950461950449303924136020427374782758896551120575033977296339200541025361118607905374208929577066989023013488764256747175780626960588275004640098652454481480241882522951226511507595821311731055978148307295198514811979654728563330839883669377890481526814656695895762836306087015292354098431368491861107417765458649976509139030741340304825258988099934471915586136540972094692037470178053753741315204495764705516558012625333063144793197225915589708654621086322731409866097318877234394321517665451417780305643837194555264965461569718139338076024640335113611828600275518346418685507848600411389067851341425855355567626377445976347193898082994342575819500423066908967466272848590810073998280947537803785346904749274951726466020085532664074288281769859133899958217582877438694447598625017654265532851948457107312851409030872935534352266825838028373421040180853277178607111261888701453836282847611082569660297623336914359770916817025914227758998091512197747408704029699466497790640440554039341997081600913248462683293439235553963704514840620241885994747401591707255731489078759446408661176506764666627186186060169275101533704390466240539509945034394449431310076821044672175935947499696259680172835254495682878053818514512255635400634025840080899783623973280662730629477520951753917058052626593632361141457078898942947186151894947621215116801445597172205044992850307871902616898666174408834732088307569243115705351518158444877199508391789690914547681093257115384724399519159275754363356764244377771625751996941699017837195992524534721588199633640185398844946050364525121507592294718314596711982707188272003859638395547800390876802393085846719517687536831426064420550513641786205091414096418911965692729269880390998179741535756191105369804829282694656007707750623589088303846082423610677357282469370141113440056129230393924239074191991097993738870307509962308586928039155407543110149078550274384659111643867410656439957481030392688416606944352238016257080321081087326621832595820418786762188537989368899827268522849461176660389218285412566145953990347184631131733763385855622888655797581451920561891388257005317713797282524568424470864626040597896477104670914846789989013768684695433210926423875803489064204776566239574334180111474685833684921963997749574104649830697632823547818706248733920342112837001047872504461526111739294784257915666332660145197936829307262595290778669920013250159855563660296193848359274167223414159267419291293298318179323329544837990370091398546279528253214527592848192729012635077088394770468717278665741374499631675423900826390309997042479965310361075228622991136463708321704862264262972044242409415207306768360930024066309369440666133410482770618420990390120051180426413024750831000987411279629744291073647602721536008444046659251851703668399230032863922162857104464614153802342085043961046467930606302202336356309138239602784700504719264232402546584720536966288651192169446517740042261534429518942754173595184960278679369857593826250566843816409820725841432472424154012519668086128294737835022606310151924257584884049470926451682111795599753358746936316030130296099257800236923443562265353391505537445942293034507607143246172596354675473007127180764559075942398905929104379843064549334287364926375677258115637812628734113855875758855811409212859572237054790402837857994408050212576087911686608982064438836230524896869151428096885192754112307455993318304262473197971820536015948596563407264314963552678590042839885642425126483633910485050562527679485448468643695826859629305744367258096907883699566178257935979437578742851435350191776585854382608748348279270076231162449240202985015285688917955159998526951938877442400934414624474171437025216703912209144294552261049954107926865848389094981184151151826568121667248672609485481963382952214206918609875242680038425673073775088472623120135642611979513185105546626055651891881470490536045796047603324887068755631173227424636478483779698691433524011450048399357356574081780974256159244787082884229535644948435852529458858864223792287855732446831207518995808501551812411613185128891110401340493409650517585274475271330690115770902636015316924756278362814648343771473050731531864768347381516004255815604014197192906973224063417757151694573560994164147111159382386422189809054392837265199302818147929242670077756703436849054377719851631171870515438079275029272872927348044383760973912690260507284338172594690605892182267628823026043680720535070419304101762843946667512230872676751053108482165714237221252735696388076328977798856301411298946112391712205607281888173586321094137960295120080662990003554507071497408816997523959495602417675064221794684169161221976166800758140339939003737698710938563815583286896419708337434367879718471158650261383657010692467910009581130511183050746765179575912023622182624883740462745491475442144981121857690315059111031990380829405010922002311303024429206152355495468101474906827042389499001106150652011793395759435422915798468913459813840210366703096136960541371748005196128954452790517445589532142511254943656396233165854520808457369797449378309329870673669077980150993002495790084558235894964540946967980419715593149119120139469197810937108978530258358253572881062386980247706299733578009457073595218822885097469813383390965468591631362496497097433952035752196239721801327055572725333629022585541726380520987731032640264706927438856509073368562337636347033236158278109737393279979134372675879339623462076592538947421090270101996913809491106237437449197789247516471586167793812600125286792832314590343409852833734070533536206841324677032063659161985403246662164740637663915070280766385082924366275136364836389810567556704561616921858088036043379154893015016477523025200915811596116889991321418717270128608132968876170451248798226011721710975277936095146841878398992252936213419034464723246574548559077642675321661836432388612239631489354377437097043500350947716968841910553597252000044204622356892159005235320445502608427732012539068038818239702903125877668505843249985482776685607482293896152176785732375019497770543665612941814790616198831569188458350182966142100957400538197549484772227366809743766369380526671393767124496994371248398242032022870742757111335161984121599295674566994162013676636846491495248802837040219928687299740370129851609624262702748849641091814788237946792950331696704845692576793024362853469052735817696658421545720430971494624028885884941681084601862015559468451608113472626476107553844033701289267604577338044465826820506976769486555001247663924450984134350427127225056535241127204328969358509861849625794956955797267746648838858241664353576725553687243438916897490736444962865653571451118064892923148665141162573996560178550576293116459722479159976128740165231365876631131918361632139578174113365914422976594996060312523806916954565256174308375571694329406663172927373924284305757637354601386466516926669014722372322139211349273669023013672932767782179828499538720028339384190169292177996441717392272680364876101382772152819962703788941363429453293249344539341073806290341641586484700322268498635877245088481429422315997795036692805475757946419924120743261575494200373976363187548100794943283431612404157321898600618591417404169977081307161549580370860570157875359204837204113274126530262180689172970936370337748728385920065207695214540955346157493311585183883862899608791979720251875892657262070401929466697910093895179919267914319082622277652945491865659851970036659097778943913422868536591655843438192238012083578753985254524148615136297330327745868151524653533054567545035692436523982821271219781667801204604515822586034834786030584403880375544813595297502958518944174132571271371906668952130654846804601441170402970866107489181159261639920850977647237647132387044831887092734253333361432128199209046122667586123182178595250089560687490462265695884222280095424571695855800903616295437457028090466222411890120926130595431153706941741205956115004433279013731088815608568247134167567367106249923481918473500309116702315417035468267572139589636148657356365802922241055557648412974581676117066125673536999773092103035766344144655794317158978508198581025927415694751640360305862668968720544544273292532869336796861804660925273522101684144307006969691755179859711483389399293811897320313532130917243340343920447722430556593092194756800361290359539413604624828584572403031414060189878816504598198367674980172318445275657201515600502110125538736911544153825866562501190950042716452025422263381126789565093905944209539990671347906512912464839882270854991808219553899682095311135575045832704727659877782553408935460449451169148083119000382964445872534014069034341104817558904204007827167141204401470341340382724772572070174678313216868641214775382638026571196204600183081887169597754535440035559314664600189728588497601223420414791242763435249050849307082268369019913928492036284988986577595957757942204257915116911443015216639419348654795952847333797278880048940163482682819688614871696953144344882036872015407300143348707688885772771603200631689323441221472916593566916115418607607289867966963353194158408521348546690430433913416462365377744323692376530810699063159486664656175038013366565128495245650774172113995819141869272351822120768508724420683293258429143388175829082715217580035885797516361085620672067238281349027105981049530332824223504501107977923731013064545584852687011393559948061469165233905554154298638919107125171635137272456887560640619802811310466325592515641938507564596872312840972874797299808359451052423933429539711450774072499879732821858194042358090639639348667994121920931199521499529289139730596817820773480796382783722890452161421392951471806726385320787874951752555410964532867764712951482490963714001037214778387264420833132023327716046893690862007437494306265626507925424468555527444477866143762636664998031284772940373221592726285360716731718158493603281621029196179730821024023644398817176163775461857138046759946513802522440940402864174533436621497474874372181471188667181791797617140898471198188712244760249750502193859721785348511368385075379456020510789360841036460501359513951673815000251161715288795534818754439127327816910819250636546779749857219724274438363185403199066933544104360433135358435052329361569883219473115691300524191480933672316092357276313891309731478697311073923341580871451965413923726727279187015039052540299211747832833195032136162104935546885242129743038949627328489768947105539294422144199239525526413175344890355164164772816016220839158678714587693846362589865896748875744400834826581084355819266541379888379876325171119026698678226544606170219711093227923781014836427931307414938406122254580890287884279495072730856004337744803218645128092641469848724498315897813773071246373452274613524607340202040708312928877761692119814238335231884530225388789240931761664473326736413624660112990545552102276005045960322481836204710968461592498775287355145768326648228613316915573372421378296464031938435493102488721002647762646167234583540702060288907168280682908869893735533881095091539860452258956778027050527759751445965292307029362486878606271137640152711625763026499172473481452433637657925640174233007962721844389946117374195184187897946422165523620333385827765720688131693904110682808422102805845638426558451358087135408487604323504045331224994582149048041989378504822869591610308872491573481476229206034334877000987676465562469613334444568532578760165739742675735494768804887944037245320774879827532385514546493872461268362429954049491487258722175193310558278749060770213901407904915369242276381641409536911274963181619863019432212854375762417658343125486088761248621527557151796541610511969917810054182451441877679618797293171887147081699071133051751408089168556873122678816967354890339169405142099346128808689074443983405365074545097715035394687041249924066899155622734045403632916634653486049882997205137755315805382011507337992137698687370105371281937551639756328627397383286810904856096463534111229603287833716331862225464353717258480508825007450498598516852013384660120024282676356951573259421248083795754089022120002416809047694484112111702888286777658153313217643497751072989507397197058540550972389744759617862704318356933909172576799844101243141196285116280067054028500490280390785174256210221672135891637639290138687253514080134908826980535153319471683039785297592458520648273598489079405834861146256209574957440905581639237907441917006490290999481651259435006354069826752358130099902392669735270598339895850142220407732800630377439769568713261438631179543986232533935451758849921773303008233740246662136182367497386178304939780650637587769801858064171192066997344148564660092295864759463788403453084828820851087084534942295969444371269062799037221549364285317343723335026742154192493293408244051864893509210291233202897572207118198361616651587500560607148390419633910370791382390529601754542673073964825097048418675901718768431308749915824362555684647277041262588177887405223681313129229354180604050975034618189422530060003533344989708804059764608128758601758025473785618211566853997769998021971260665572545883769272492526741721719480847489156868138730890375460194740946728090306025054984995737116018610141524278760175416214023173816707546909735816091103596293971365219799580298099976041401774235501800053957779394417849582196619961783544099010490050357146902054419053490123508393274550079599456438058878329736328073458764665547585780546336269403488610126060149114672123531115228902553349839815375803782520418845735972866701864155638533164104951394498420248755785065522853921672523822743911756895423835827588851183891345531180582296690729494706204708940496828698827830157416160754904654037491989535727508279512087225681920192863364794777399320340383419150645591695066055410102977690356714493438577868841182359550780200545225861058587993071214173292395838619004107905262825686987453208783250970867416498388341905228302101843543258485274083741760043221187152887184067704387965677911078216049651723617466889639273378067356676990134199603015717885169181508924264276607786555192417604079160295811038602699995684028262636566853968947466930509449120435148501126236040459971252209114501919595416402391651839276738862724883284878701040383242828657558737654704160744966707169790576096589631053784593823681266341827876957023550332012194153578920399299962883440261046717562246611924347157781485702678464327853938082760313769076226889989267092953155943603784349961857200697051062649867486273885626143366268912549812722603672653144423860085157190209525368015706496627803200136327311050667383900386883716318894086901055131100555233151451901073278949357199185729279157882207007283001340699185107046246874958277929758888922371843863048120297864348184077459576970264590977043993292518259012458026838382403651804955587991367330719838895905063833212940274335779398444548573976059400996944429972391911246007336197872606814703444020577679667688897365534768898476697354150317748690514042727276054934329994034378019008931076045057842567813119250479640599470193352341373262253887453730046480331438078291129732242682986952027191594278164384829435701234411432551515524346087399747730101592714048657077959366900571841000703516034420557022623211065847815466051973883559522522387878771083001623171233152060397082810160671064251797318956769158932980499220111791543221497475126597385252010886970716232156402983373037960526963944032579565791283061217124911763270226043200681593848274347478347417985483133125887407915065322380160019860011042701781464229091436316868123687507739694193542944536808330726951094215459928629969059370982143821923522834354782219935772987332150311357592315263603411390665742756251570373821483318267573589116623793968912110713667698302064540231181072705580914517016940846825750105682849037322947775304862488614842588272054271973956541593992999529478883234664615125424218953112214175055684350431694004176222384931501711030486501726363604774543034924748919508732737891922024843953959489356342595720195030613395605186789973042146373997163619245171776592824850813963784098356659920543211988492717412768938833435868482924168738725799521139204278126180982981428975459067938840837001219239520504695490990841570361849395891436181237014286921229481136912181982973326723870616919086383146638659247895809514850552782125108046631157691991934513743992885385084932704370047136977028301735864186308620843301727227454224514882648213280130133620892303196286997298120306736907021194887798340540976338652735823762024244517604634019435308381583074369870845136393080774492870702246153725839252123269935686363603068936648909811696187414212279126556299863970187552202742292680989719723187231873529655624339144369341551165653484954643211523228263602836680152463625573905847860881831687329687810957366095972058042137718881136538591279874757065496254802051586243119422993671436494081899138421682942120292424781722063835595873561662570004161029245392712458386685840160506097875110158117047975373977399834293234938714670590760709944112045286580635856931222884815847981140611048894449470574512340414788866679725187990204243142333583008977749784024762327099596447520662308445260929643862756938582566889471857562244571127371505494050201875624912576377878895612506941167761711488585592137351363042413400161174666051633868647984934406466100366116755487310503528659675176977169689297869737658092414848210192873646332438233939421213608755981856121517177204717676842391892643119893610265045982583560463773007422410214503758301020262619407629291993963899629905124176046270478541043805963515178074968331218744246801588610754369125441600691715912398740291298022577657962414124101661136268346777786810649096468111725254356901323522302034977579980064646999243916472219468504051863368455210656722459537489969962885905098560460295503565084148455706066806102903138277158112235429490267217243514108112781745362894536616374950805621730727572833979553744955355487289959394816222173465845726484331173342923169694845777724252582063979154993155349008044437063912106461141005277331411192476968509979369186638650286012323652065179297190484396905849736380734445517688803021959666330046117582051308419851552271387727594100593474941427185663089589500219588616888928291627499382089783188843790612643981159464588514388419894089517418252622134585217108135387284849657712057490383487784195708767507398861649798309067958429318651881660617888214094519203650562593071314102480993858651800229762356504430297010638639725117276595737925397053724904156466594642427764892601542424454605702352288887795961059187627372367161145448827032944972574106141814289977870754955821748027566950533934372635848636294482069617472880566506562611014041711656874116626463643562793256107211440553158487459582403061174630084189353316149134156482181452547879988065576862498366762356992425554240445483200329885027094024672226444142843014271138106415886779583471293690288210958697848917400884516656147762966506265866908254849610602805446801565199599414490548649196639689984534064265797663866224722081852298575479399940161262551423878047086118506951634146244142621039566170787864597913399615929556153030382656047250252116901906240488030267817059245732935354399610398795218144708465635252604915071543327809896694035406330576679601560283161457334551624479552206454353411065094364311454137928360607199778032141616045138291767852390918261784227081252816887173681812569248687750952995851319095119671759475245880426505108311701744128530469369317306411816024150757605206019616086880442338734282340573163539651093829980567731826876862456029644914901404294751092237063398778156212363764145993989538596308506286759461650927716278905404846451154062931214196036625527703077817166879330829642163358287822058544020751627152657254587348624621553180736721663482218446394866770948813582845393044509107578958225158961726900722183164008209324291286724604075624813809680589864409866920424785029673885897150158198813201122555759504521999546402764064362294610502727363793803772270565963468411110365804057874365329134591836560423265048333658890138926611927810412778382683464696343309900961200315283235423325819668025591415679588506874267134652787625167413927498946974167362102110531177382554881571140416826700907211721497926606708362620837646519729254661854450345083799285704955697683029943226604260156616707488889394089905594213265270507956861007386542476924136446114586939778039411450494732748251427635600033449285316343033806270136378056363189571873430087862658397330734009829637401324677933177669897975062812774806277090335186520396658774569944340104578635194614660644332013197204718202202981350710906131616938965442161017703746631262427916542582125898462871864294257318083194060485188380810739571472275260504865930721206748332646303500572218427295603757740843000891669224050744454646261562610944738172129143975937261950587166403326083060246445317716458943171793522870467458701178540065516340807860327415036703278927416489809144645098397753105634274201808623009614143281610966656850409188025903387145968969016269325824089491242574310579154577073826959526308143438046871040623253367593578155993701823978689961429336320653447617118962733607049208488037294938638437457391608098411726656333480239337136209220518840975558442640090457879123953570554169974964388176873464332520571183450292594891103718130772382190061882432891360257832143288823616445896455871037629782607397956495851841220109150839951636050411162495314842727253265831488512991312157672902495760281292238880522024837004035171121375944955466744274712804917789628158573290845381712209580305711368767129101675524833744176409216803864638064675903719691486234470769793782551833757602738829690730774959242381088307589870530703819511751704006359447296484068492939672667360396974391345446391697577098005647186645068005771495877580217485666899636875699877066779198373587300760279332101135939631573772001690614819651220047325084224846158282371384021606528607199160426162614209782427273082474105276299778941694725019613554986701834008947848291268408818708872156181931813552763827017187485060594090810132477700169763737262202709465534365071804415510465860678324079791726078085090371676942367486881629143995427300427776695652754602234717182889785062691871948920524988192810681165879953193249038938579695560576502493979440058752910665716180814611704720309617328976839797658210213957237903349398578401254255946709004736684610899603776961924244434420314781948756240539517053416562356643668760692550385835731335781284393010851317172750711166942021349398666542813835674919639988827411339527760797570525846273401197165339565095828746747208645486561997479290336815978336075402231936815168697315590068327327716754492471786270952590125894559179645136007954707383415752643347109286032709063015642310201179392856838934671300175160326434638313504607553329123445867659341481865593414155297209186428257538864351928685392114653786391622682952337649003091810581132829909387905440753145595434128419287964859788383904996554596262412183245162480614410246469965761900763324275390403703965845112646811023323376554785032286487040413141924248592948843197603127856303036030573577965922326243450599997032760822932639276620390353805578642422338310718012394404387091700041243003873851318049406425848918113095913260599145542456800375162859717380601809611302833872049152320867995553483604337610897353980815830799975021372373325973380005026627280333711601679161757369935136359156855336562810341485725262586434991143427309636995871962386100709650632964046160716839004626116571875877990311087203137397197722706884064112373688937933733639725898441164307066855128551445546639532800842920961238566087406466414997046017292066994645580139811514903031452403188025433984626207206042825456599935252246402942518377017788220599800751319610045551364477284296580936305221812897775554717599954944991668564814208734704343533534424943649900121518672009848226069303372300928692631450705664866722610830197534346311682378859406842446729030807993733457698784820396440649976693203530481396673813769469233279422877877007593631346326187181223486954296182977337024238376026600701764938570173351428712418566301660143361782253350099357679934214776292840888794993437656151374065538756044249121303852556635152306556412214321130601993603493917667098315616359725474953062379883974888504328686570521359680989349146467510004156680725652945488975425596420775161480847354825334947691961988285919411475727791467114841727450539043906935687144487726545220595720819604745082723177530700251650969834489881874257510166946563803599101886753062626287649281429639261206697358805920429315790271473427226599663746297536994825528539889632725718608483521515448594907469325782020593845866221086217247411432689397497718988560391784106660826974487596948977167546307766501731094121356328465319363067052274081650265738388136568008903939266325618858617819936947760303172004591041289875582497243083368440624127774162832304648371208424896809143398253535363163055750861668376135877532005218158063580048687439695491683710647014601659288822368923639265431881839684514636327901567304507631777760348431089536356261989600866843168149578153276514058321180074645408081177944256817467691871974373125990698874763776573535168102751905045606817682097471990482190975509098942300387438744544989905001876773039455519648583695219998161050280604048939786987342127041410377268869023836872543362744558276502757219442728215221260781846026260238847698737278850508835815552097502108365731260874335194789086328609734722278176146902011881299628392323257633844523282034814534974521689274771488161090645199072396572157524149559556701687631565355287936407349219489765533005957266285728927027339321770382080083642074827902531409187137382166279822677712844520580677792494519070114969599513425414405713787067338112922637190192300961986860254117441606385030416253262918105305904979388503261693647430645563399958296969652105818284304543617053569713052104898707944311791412742636162326282657835148086250548347918974977874712495733717014670086415201981112505284945094186167503550900384418183362166621511381892336315616456320742709126107763851854401678752610083479481688503051910590311700489798226134596099918157566361537261585405882184655397846566255542663600963991285765618069557234951905922930458144092444278764341777398260750152527674799711297693590810377328180612899296040110142488434788487155982856693871783314904284721859314124369064955837098816719356302022873678516416212331737726838900037334564103794641368712772396954131427640089728744536187654765646606727984129957008386562720770422715161053847575313298606569141807196062816684890495138722728244074010838043067962762242807234155579551947103313111789368693583286453094188763973721956528331649436065396535776869449904039941799746151764792130667872010554713839169549932606535488764873715350934640940992127885707606565022982743998862239068610941831159080164277426008906946838313399250662024860487429397812687043645714306548550805631835847342495188178248824462920695797197628857415296021336670290716168560217243349964349122994518384907631217904335025245311407792678305662746194502916199590675489178739087904613565362575248699694301306078685454116132021660136530915581702593866119713276313245631664682071798575105611427142546118454268805546020859400147460486415919366132193659913064091918082239206640995892478100439575015419733765326728916061123487563649568293583357274759672065046386354656348059676732170789021763775736748744001454086647943989441879043037111713535749008142450782447567649036875174625461442860029236015549510377253387920417931428736922497015306117293841540870334323955589258089730581437698440365560341188191541641599017018876171728939160993773345540850034946444496784622087759881191664202838471497733112336646380751865034500465051548980345013105888537359434494874720858963132439464947233013397158583955215536837626007220055450770428187687937862657068394355431588650402001373799840425797679521812563025887595294315898463760868455964075383564803008286723984564850288248146963606146961108056118180798233898475734653998969355839266950969726654655445440357104673081519550497548896600097560364054621334213360440689656636758723318216816151002047261477003291873971969738364289473080094100080348968671360085702947255526610181602122173968856123906178853523383179793540838019958188821429351156188894166013589540950779604538499466151912523698330114106465935425417867000844488907098659667696280292497899293376582385795439705817784688228072641396869190558951045694226891310939697872739806714756834275344141449932013755623991713253440889935585967590455650201682444120699526178233939942810765187144929707867071002501732992792881186213874439717790785038556027813745465776954596791109552667001983335006429248174385841460816645424338753166789572185379270144151272750173504232571388121440205725063057891793737777760385581558010349974000135336005527011201079905545703020869450517593653496446823819682114145492100090986949758127558540628487309668757663470583187591221219036437248470796335846372358375385465742015726103628579169868438582676561990817814085845489866802025016265803820541566091705179895076504994901194927707715203163416013834462341373684710521597080894019637177305960950706874242670252430079862864015016135219857738591621386423752764476907881464538646200599433600098579029265283928480485847537911588245497603669432155977856054612794384861510962557090322085727523125319033336130785172396711713752599549520404481092097691292124246073305484963117626044743416268014599752092598424946833299378945186365364876592959239736807597103953125552265439050542123629883360762327025718898061492060039205590491512741192959195089099484795562713450424840645682690045736324264655483777019196250593297051625139355136943395581171755045795593129415846089578140586570546479520802463256897040599673455546135459558355979606993421702903633872420192912657523488064986962081860881951585449719028045722741078603839804361883759015369819308288169579015406240362401737457767518361220417096310732299089058259813169423135798405783850705067719166550307928805511962274848102232046932243161695455729948878768960566520808035813110156648723320967735840965738740567317352443242472395142995936130113340721528687099195644891149428101595335934015272118314007049255736473936258171057233363315155347175939231250258147322472219631468612757799594541729987353783306232439395440800997912339609778856830049981703270849259825766207023202706683243821418398798617909071979498986598325274671016888898496132482575263435884187439411626335609185894226286085486343819452700882441144851492892993576903406126744226599962446775027799905649026720868137786172018162571107500399346558945518785145061125041615738555059274708132058101676945563219302234063146851876946879470011323182511120622314697398991326847396588751886706446318805148409667557185581462690519133452775671785628404938509533056061297092395726940030306002588440417832895871470349880969953009006310984311096055044335254913206767568053877172463493325904954820546310586317410661924503608807889642413763882879278984952316150356551568754998662186907083066756833848641790657650549353499301630843504128382841602058649450746572697194729136064327815818792666223774121348040376700166633470392672154992564556277315470639926088616744015920319455877206184350740378340692805524843995846198145577242825377540148507601761159467770296817922703223449981568528190617259562698746933281467648400345448806584199680140451718051583191415059247796516141490646559272083372856864954471305320465549078450444525265970935662327677934578208408190316222436288429114206987062088556627989303635176831640946197702674591613380297389141636443045511043387947332104242947784770664617979082925728980607511954990112476734524531493687278534280179846997851158047571032041745074770529757246340201410194013422436855499955994523798620872400836040628015640962624168307353037663791756205770898927163028510991284029212758570340736112648694857518039824169996674698036659767462676602443734984394468952747779672321747923574685677051203005033626301186029191887052734197292209402492256014316168221490260838778594251802399417620081394342256451198277318850907381491014442608409629513803935711978587100153208502637247771073821638260155069223698215577814973544388810814990469474597483693190553338641690702878339910631044444716578778270576190898821656515617415914776260183791799507131642019050798573009418288232118635945909523335342755406779568544113698962386620504397517477907636987498474414171457066077906164585606473496754178016281354127883949971260556018229183614913326421793048835577595559899951799522625288442327052458071687225231854118433791466866963453272166782372661980250422785411754132015752579032385290720162727594441736570778353850373853429949096257622400175331623263114372887140425427691936063261041395340273595925412605765825816019723565985924978627003716013162508173457494365886022346614515574114778787731973569537499178029747572411500234980220325554497088303766421046246065185638946940740254291832042349010434173036042796405015623521291328272273222444685974242503105933694360092936666535240232248277158845025745638241753643666279706024269195575582213676332208049781752605252223969043992607935235813473780810678016006996946838023630421970219443024511416981782141556737395015140360438157328126982607280360522129494917282266637852733142936716336346617241747821571077050953767887199721168682059351289102760799059960138600926247997030243486421852446256964091333325153360931556246652017884652802561398066399242122193999934393683431831713855596781264968630903497267453842071591465644708966020417127048472579211267008433315821458384636961567318328348725817247925718176628879325716873801876492931209914241583246887322158613348054718771269852520391430590140769429470384583047846031582292769900295161101095715214063369227232819955907362218085137313251578338529308535367050501723760649640486140842955668953791825578487540344635235779758804733963574851160333929669395304985419575847577126935218429402497164646407272693838632473524543325077527433409837232873872433858398692274261859508279045075221748647882146743148590703452845649655708728309431206974190526344544074686641500919332053024837428491744034670856054471085829933468967407382325585068910165333892726325664258741976617961791301990758412024418259098614495903197760151590662667710966226947355868796332026340193944140092885055624749019318253400924395656525749439484566061727242653794170956097928765299697517166743025525701634605333915876177738250578267762822131038057086503772519170845699735300929139448545695713200084894160202430301768072887095019707407090721843716194494161342372717723838863154740840535658579097024943444143845149389024880215901856148595313303089107568486311525232706126840601236687961209173020347703597944724211412279174998761306034035530792522403204599228046541604363455610342586490568222616538353239664095437381343917632167884794372526212587131505548900708025535898036403114023445928630534520781752662564137751795861857919069272975168870929639160734112484203272630771562138196816819833953805627894552940856081168396615496790104711252111500275181733702170833576076031781866719273448734046238083002855826526149595796792580958800373898383700424337793524541095806641610079614320241466184694151146651945218342612294527596625642216397050127910543209491309948347312298747164262887973417038457340256953169700712696452865869249792588047655013026898995400703574374020698898175308730038074871088095713551113578661425634222597166782507435509483232078948179073289604988053068329413305099973430838570689695343483839247206196913671600607471681074727818910378968074611755067408197194752337000407952829833224114784430582794795228762348091650885955756861960020999827417938299997995487714930919783638257474696378569185813233169174094078374692263138193346186333093290828237914338987747079637903460898998923588058941133353152987611558304901369483553281274658162823317439665214360786513547707797133597937062630310521399224549815542960088796412058083988481425707966048767446284520376777267931414790014104840881168252918253977497135138824703174267519319840785422777694586711161142846809269232221669450273254631240150364878729886135229261826523161520622136220456302927653835751360061692778372862056761502850210741336393875769859946975796854047001660517335325217223512590730440796425917887720948265610344774020818694886379670930826377284864382465547616651402517444113893503357483428623878550678838026486041696017934986634458921774234454348490621041439017919078435758645470852881859843902737091870824552503278315901817057180642608239415584577802604370057177177368440511526951548099973846973418812499666611290913478679059887610519736178709644594065073083566662959082560525021132289471301123978097975332366379364210074206554838786350225247478642102506879931187516706519562567891908422399699762087696514714447403465972208348087693274164230709842772422420920511482185028580469335614403935565312178213711729647135972406456608530844946404037759750414487707633698156487620937497466684045081491050759789795604449612630965096398638178796748688374165075605308887924320175005598683141231241037149625049644811596338163364940335461000596565721555447952028002239296027114202503982266190258363485167516620102102631730623375877985021836604459206181578011872501807395868036263200295738262206503744323125718040365848890275799185131715410967657401793488515905971724151795725449009873429676730202715803305622430089224733177519226497056294204285798898625355090984719246669474493944274953212937104334897460905412541559744851772796209303235456415985287012655308326329871018398189283599909321997712766642357319511275205067512772932622598964585697363054456644709567415054822552130984711096292241410717093725163879441215013010786088075709273484730051191242876411938609033814530747138322685813818125684864546788228975193842082862201273027612968737012496912027306395491406423870615430022734155297203398184787265101597755422358488263983790758057236912692863703280531249924799907622609636844889498826108196095634916667716819976268100064504550368541618243083157445402539129751460614879623965508780402080627191272205751297193283190939396416955719975147660934067979035946491927858850518529636691494829328584559541026503023908687738319988971633030958112990184815854779813463791906898911215251739938793084182999722046180804622649345121617316298075394021313785420370505215972592034224300047955462301648877076497760520341064763141070393995707023739485455557897228724144195687247771126346878407578398929000780995781909647271295885559946459221821862176162884418327887713659047847877708136868323519651395184087916389687142557603862326741643323327393650266565863652940231725101751436027386465267590522135763717202278929724605731242295550453308716665214484619453972118831998912642222789985508051979505609502805874709125552988377441483808647285127095422867735182380633479999354272759971991986125204053342459071485542600176282845117277649838367814857801407790925836714300676803418005634683628575492906866384707751639613097257881903455606846299473404369119263114827773057392452605332287537984877096910810816980371820684835382592666401307902077925108564108680178980756496805621511246714585580354522738349297619311931114753671216158482603497643130803224140645987697063081404896144501303462833419800895502568313609771041767934262894981351509818797220705236221851337283788689654556430220401083779826485315953243541982290380496835084952060189899953668867176780887392399069782687571549945865822271888545437397486215350336938873961019747541353809084411008903542328205554974174480013351780263655145279013713081049412412596457084103308849466533263888919355289507962216997283219004477498894464305431998957800524909266515368601854908266733246085195600936636701862465707329967800622818321207908535931543429193681701231328823563502571045298741115235439717612021058916976631018505458933793688106520157817812406882292202517113442718749149686824210386886718588748171661293149833986734730496996260668636923802903583698262113224670123314609586258355526986908815989218490977999435817879816579965878188724793276503496308684260547179209289436713464401167166903721857602590896240320058337870286071563965510934821622817176793910897274608959160111734135959169012665833836430323083269357317324748599232243800341485973185764569772628504794256682832051976893373344125938262870732302597507700276290543067226352921227341278116387540289867061613281966099727192437009312383142498732307644447831658437092263628000416341920504284321305506269428810037754847731157232040364160098468387686969191088705805709819760244449938513707472197479731364774592751261841200695479387068782321721617362789172513587651827428425890482521494532349187656067204055023876887685118655648102665688248433097302712868393588112785650130745853535063505070918942894045329898905503457503929147917333824304154252057781651510006838384603510280574564817817444606911992543289607492350658553654320021690093215062481130652785228796482438473081119838746453706988636411154985643411784151063957742797993706383204344509976682774535103345639364785099410311769909224420677830518833528959733671336812394742366620846747528535283077478534870712044183765170601815411414350575917380544158494148920710704763956680337323813135525973033481023972324497517422475192500813334809836274174502844459177550989899201056830511546951269558618953124261799115675324177571226861986029261023320966792651391311862778045498003010118396344133729085043650983532912773720852404933379225355048379692194512491533562168736480687020984225912534173154717449191885959648300585676569260537221353297289232905616795080001536575657359224569689903783884832445030963763751085211196328749003798247266196311589117889509339327058554823790433505152661370109120686294199366488461243574512936037264216914221845606501986411811802255101452065282274189615629821873881841969848147584263942732707488046070587555304246581729853762951859138485973061719814896888732704401745476981403566852258418762868009273191932385196590642643385535731444278942274282542048271107731513053359382875636476572977456731157203420321262176447027570344585785915775894759500659455709758198071599324084913992366165336159895259229275367338483659977283366025278462193603948492694755757216698560740832315645296712197365728078393071379773713647959859767831974408267667129204682422963297460062043402618663646164009750316716027603187885348715334377383049079147613082778641518580715380380245705235782931810818499932068082944606011477713541371665277287024241350108406740194859145036575551107831903002436074854465528758616484989289163706304781974185974005350578977497317974523221562078325937612362446522022686588789898927894462957224993950270347004316322896457805268146647446419852924289165918037763938355310114995598091839093163119307572924760468728392529577042292367855366786840301397542188525142925359246787164836298589270034352209364549511373492134113364212604929516857475836240086286131185389380560054752900318592687165407480923985742096621519187001315116961263465085658019316224535585457487612747730011650730183627606058968851894581181500217442349796653661597989540775738544443925687325925233126269954438164085949660369646118805123487842599248389937052972754948787217569398348936681413608720298462709059172458336666191278458925156590679589986287453380118411474797147443990856058642879999955225574260251682638816086946126024954661586238617625187415647262961474386235035087297406740512946291208910335115993315425800487520909810568777431000958759108150627537324984481181932604417052485213975091454690369344302009852910036886516078229881179046215533196173097832370204504519920016822964758620334066539892462249332113560740780349031199937271946102374383295400498393377065609756266742263680857473136613004196483518362361450849020048200470683720853687500132263077620589485621702810089929348700085361444402536880520946536273220797488883401231373250196072643754378602058334700706608831689384783786638775969947219538057650494991140352209603472465523757812094856272288758773534610628073283406635335232557325546666190903925542379959773316381992975360069766338413804559734078260910541644242931423783973411183767572206958791373788660793295802509376984016211750102064797634103394719408942374825731361760660131072809014027276402068063882337550411803957670066820330378914192883056323911662599778475451106238454148979308885620921692712439630781211864012977211228809026067868434463417983018662311584578848769544588035013741686945072683315974410541925812804186965698460445241354835124272680782842082243941516631172843572209525181440947843266890000112293736275465449823912485600416429062956731291127237632417533951306313364795617595371624841456669992214764143112111509893233528663553069430986494658583204996395013244619257002858573922367007187315953036078232005941331211356011379692705471634019718824279204955363792666497031462336860492228214479239094819592932594710642323501831880898401435939028548249295532987449781746329917832666061551705097804880870262430040573281409196804460452352686862468396112266314756341892010863359857188707092648509123086928580094519944012228649593253118313787688359822802146411364808267129867202005821447576162102975554161893250855715873091678925763338153949704026279662759108067017092039029100446784034196899363025800540996371360050450123955239727398272402828858411015134036358993534476724152196847234332598348073200954502837500150534583038855395135359959252794639402414688027989864180677914662672619402329114963405200386736195048529681883419427124870277375961957876946451024940482256349206107728607565252968351830241044809326242141763382225457102169433679256672765219345429395829330573276535966950642779444433376757369029292135180520730683332608463461549192414904647014973552966015111838728173864692244459595521054776525382832890872336473060113739481175816925598671579632642063637288663588032051962399725152897307065440297941994381911217794241646055583306766326776945722261956561028304148429319496198853178966313257962541168813333564422892353697016536423265505306668873798648696184090459776059768583844628080024169958022869051046457964947400232885091874658955487580567194975774625194378583149562173649680381933740837119729052045189363465629580234904436296326112423267640893418673732021330809463769043667379186495574989474052002488344792957636246786659465244634847189394062471896175664641784351843025054004067772952655801868330692102227069055443038370974057381577481040846837584767082925735018851250077081721878148315778283932067469404246282976916372383865486725146636984471054189068874506831862547910796003941901456373735870599098755099832376865051989433834876789638027074005000447193026003490805686276613923266804619298823487507639920849344510350875285916212086837624211513425874801145517441427719391372396686174342044620483784304072587285848567095423615486890025499403801489277400016513464364863299119921947021981692920318994235932268790626637332167986448627603615510148710999178296716726667464063023413472975289096141940964972456857625424051771147866192002675165699161464542732577378772021902276202652727048979680726401762672228843253709300920871330296756464122146489465645218278244731164592123775649061644837211635867823871759518105244831488745130901590032098828052540296283374490965897860039028358545798881929963893689260073019915582408689205295781246800089775125120857382283100260322233859265071576898200769525453334888350273455995839898248622426203864476865822423652261932099475803682419651750662132517745636394305647181868857242473240988644150362477059810232095813409894169543485631132597010293097743542793787354990726488462901052444258930572617369325674694603377391236389239433240479610586390783568099724697796412814255934099264167928314470598290457499684217319031771242416945290201324042728189124288751064624222005127425102963813636756043634955273604898189392314266843559861502659207294367348807543264319622670621355242261200414756103849698526837534929324469053097124811919505751881081130900661881097139351246353502363725064839181287867382842816435444754514571897870449596737402410242094848229895997129851504203834212422892399644186135478286807479272613518475568806559560422226539935154817920809985373202704968881268073913889071646741725997099171727347082008280770295671220073047417152150852849268332468006829371906898723668738863894923183593024008080816664166440486733336318227666832200601965005299768010202195929628126016353316050721927905253499365321225066606092381631947535364994876939248613112004415333436644755167598771752959344195287215868541750609237402861567732709695392690289068024471566888964894757646302290754256028306721548702346585805587592329846120710369847190548015987299177304566231235843800973324099150304151039465866689348072062592080992035597155229270716095171886492508342382481846683664690366025022162191493645532128630692615902491442564289441503838468548650311346870360754276153697579388874269488947426204176254123576772829013536006721406738902805857605941298865882492223555036688563857779764698157957800021135455192260018238202340279200726291974512806472311822227023197516941833853785198413229468429622308751823642970251937127435325945607209636493403111780370095889137645796720823308666606573636724863528073708342612151789431902855792675804234603344632601228954545192940761122456875784085152241207866561698371697480922337851784285152173220971515642425442746693306897102595979382758339910608730469093406185961308613669213092135217435820394196985835591551322826762303676799975176691333335348897925310022394151481131652419898080823568520360313988635165092616645553937743796017628051600165878186701700645743684419533736295433373192006621508915159451204691987512886351785361002940199889839745749124957894472337292127325052121672118556052349995640231436222825639715962752830158509068943932631999137022917700563721571360943026998163246092121283802192009940983688002751779039066161111690585568218775735943055567549358542794274879419500242219285318965429797937489852399962706873653221664356243481172664617674578870440456359957023771373194509644630177681849621577660921382336417423949833100143447414910576572386860940615266851326370272330972643620650055814794447575823905476509489280534353905411063859579881710363217363169316545731479769153992909044587178246479193426954074505740916039301352485441635138529591177963738700431324985994168588333342827557864921201700662730623040721873462565742197850007983391447780778614444909194907644887448331679280300526796805647027555764538318902183917564451029387331960286384514001899221492513830559338802760169724869279667578058701874538662019046218994177674418815580614953850749270556918995963407623650459017523812387538260491184396868578060621043343489882306907115934217450095385361990743852987863613371552292510493176719838665869631676632599423289035354034229731950290651941427680439639183662542619622071652020912904020247311301227498219261916847972575212520925533962669578944512011711563919918703216379782744985740198640371287698734610193352131979279298679210222268110773889136254518518305785371211787142715051752015365632244833901900909647242069713029993630172031998518332917261204703700154354759433554648046864465221459313052763065337519898808555342453242704648830433924823131232003388355452598789009596173023832115560026155276999363004034026514766136466267567488885331438409994989932330600607497948879731144309102534704932170477540367133113411185826099070495812503994328379119999247910538370882214197022350805049179688075569143268541769333241546393998716947898402806777590341438722244037871477719649779053348536302067489974752528849903603977700891783758693143018674796998807242616192091991610867348938818125951730439112834110705051032582739643306135588726450214828719047323780012641999221503442513104659844425674478195795844099236380283857945201299099829982753425017959173156498173699810780425873020062127682730883545562414681698994229225418367910840958813443219634215750375613566069550461779202969711436836130745983346809832504274767715055057503224889196525375584504808403283365756900262627660995106302741092247486609749241203338246738134064352331964019614032171377523094488463417707222796382269738675677857806082853409580334694013292259802439328572604719176018942676380478460024207670733065194618779167070359671736269795424557495376361439539730760419344622132903487947296510733778382054304062512412157322970352273963500999623670549279360164764568789854681676030491479541409492755311117249450172618038817715810105272797404967576378567059263491704253740820807472894308943885108562572779494357794042655055327862727849709638001062503796576940150167845931242580733083307468981578651112961233535362092546221061983283385773453040007515344451294965127504524483353221093418141933341778913449867650943665540661894688336988655713109467751252992888117856826867427028986808429935280428950296303168795452875154708051844218397464553401778769652232205249925342331303961314451299584668932810916604625341886387831856038452539592760616082664316492121312541370460893014797214883090971298827053685598404760445886075984760024868028941454895532096535938327519719008969600167973375787720856107313857701405039956915656255784162958187051659263600655144394537577947086472727015945380045986617259382723022963467431307975697034226913994765732523249090836180132903378975003120194131691782046447736256558267533617412035180485589935219313025216623276687886475741353541720265018336029402399111344164978479148024749946214939615024722289816870768787041392145306049984735503686897845140903883716277283402373402396567826469878618144318183358609886829610860920894262086118010280949907628547962303382408566107195910692260389003540209792835653256213663876644814468756178009848647342612132458117267880163894196421350409235568190544534022208361741747121704593029618203393766078092652346820635494078313533988218911514592872814754496174727570370713580809733138079284997024789456127287863309319206323153173719952548716644134421845732492721939365987179477085157107241649122058447109400122058694695611189353264910998007753901776847522905415772557223905533215976936826055081218387744722684640716751714451217682889308202680973086595828684703445016914912983796965690416992062706299689578520221027031662249262575712308105168512829508792147573930784717742234102239115711299241974118010200595002651113641813894634964303923972063865451009007911095744559327335204536146490669647338988958235626502029257329383903544367419838575927893512545680869659890861127833485352423779581417546063826971641674635384403044830193772875019230548698403192961468349698669102740773126126535177478776354037881930254375398376610470798033110871395240387526776160512687885396772917510333001419360882516055492221863573881717923629420340755218310199222281758349145564385390065075847803351383448223804885674304192537740340573975216194637679368244034820854406640222427822624459310520896980484024587411282730403333512086259624148750597269219991515081654870933827187977231891900722740316575348074969202549078540101813702232322068158656720018284516528701422283517229060095642762749507530825076246469023938676977868684941125288417013621827961281340780623379041747912707939136725994334624475874364550562156712184723897419862279016743321558731611335661061073870564859486335508682269619266195353790303904940208039506852512247071107730743655061466951685294682688880541412241963529105904610975630328709845875766506258535493201714873443447286403438879217945726970261143058376541500189828967160639771025372115758789157882706102121739782332248378033681861360362098818222362385030322213533844627060763565511635914751916803996478165749375774590243326413372380432942227232439935198061883382511336179920352220613048063349886366326550156860342530020896416040781574420373171868676473096843629951035217092488965670035453716364870784973415923827561818939309455822061525154266416563900325585685890132752091038545793804033832443511173796422504056498223891946019144716680731888205652672989639587095136481511016360016579380371877533591098355787482536175631504828229968382207965755155057252461081333829912761967006051081805833364853523535031342418328834675198381915109046869787811908007193827975379071800985237451647773399823699844056496607455908997792567965996547767390253257271263234601976254245944642959012516916229851229127317437352567712739559943231783966884134534274477870501777771172847564512264421846331153321797892788593453494200638425663349338646995947984947838592044915569324111060791739962465923805717337795507444608036088540804116960281401359471865080100263356154477283223129743199228099543034119872259520380316701292296191767056733881212673222610217159567269396039053444060728091405137767835347142859666039653683427845413666696213809629232076955549453528028999055062356070201242193341524178102830096229832494301378075780774765344664653147201740153122644690332861430299438063986977683980784394323067314219804995390023380723182344009896043362847763880925912560472878611455019846414999253110633064622400304138115493975497280554521135728755576656258342091036428748771892292347648868255774638552873494253186334491584008041769407541544314988779697312146252257578753521994110374084320208526235286752784612743318487135184615344158487313205809781648341599757974175157025575621829854998995234962392808836898964724631761745244333651323821433848053884698580536583013065520802579508113879666621125653979361975849143912181937655782219056460289443930671353883215766623143244461132146274786559168229310908258426666091470938497534240671821119293739828711542205857122866583153689807622744320716853623971958280373451379118708613079005323928204538690944423650718613249838357218102666908892748959750171171015075616222058050442680788409147576320125577041905959740385105664451183162311703343060007025781852391984977558960644200614361267041961772478635830613872780065110666633837749312139585471032758142923994076183474600077865055489718084580785450131397671421259005446201113114355642576443283384042419829996675674505091061796912516741091055921106580992738423236050357518156066418554112494274843424022380778878676957058147899437314114362198251833761163017616609107108112261976300930072222877405354831659080158272818781440040725624021113649838558312653683574502791499317289738381115402828598410911575241585544964606560332161525888183207723213588270675399351207198133512760494435296661249238789331629166054969427323107207078441220725619084985813317569103142580686154133173246185590436138361122831375569665864190514880211546140710308722864341236531606788446809988687339251864469888136620285593214186011196266926975578162719766971937879349479014871849840470239210539010674482137180739207821304616680301248619661478502363337202127973557189537461509291635487469948435628184901312962039593851881342376704219126975114974458501911491272892350327834428551494687221850333819830685108394659864590083333584513924419887482678608792061040788534453282677186837553630934827747207329593417110392384215518110869471901143592588642739785358861830223374011802072359095643573358919820663530825449348607935960884343352767135408798225875711249825485025262261736922792175246254800510817639079422844543896850247426743036840237060095925086473330381667543211920457925924448317700742921208948231523691970826492566885661507203454404785339374879974376209552858666015082886075306924485111276468071155352381157520749287051816456465925325252031784379074259622364434124268302832772427960271034111628599237369395587625456739863753726075882469281983574240071324603224581630114836523026867752780237882083991034970954824116523865027535797443646903784431589023023726012087199178147031955758498144261992987074637256925802482764822384570961990121937243385494775441698547178690477582328953115976149075741802396950213098100424818252322897422805283582349574297691168356438044006545298047486515477803545222955487325475327848683089847111919117658472406362842174553594612514345605927092122158652641640763745899562820990366589363227401310946622970869141672896628563758382094584846602717254924170092926668804815320973140082933411553211670998243207528337674807157378256382395640531018779902507431181422568734817485434126438860482517781141436111294605133365487557080691624324248904689848026843665474078117923517690934058485357235136297530657270485250812343125610011435453897389430016870005720481390049331909186214329971075558856189564508027882499907743936616258139829973855718497158008100922040389376375029830186677781070234732814447870624587573588263592638023099021122336088808401746786846165410745499276110922671374124649132759124485239908829017421172707546302827772971894436503934689853799932467304207459978902803099373338020332205280845166147632776151265595783201524800356650293535881504657403161186760016461084530831217166129775952373019008110665010473391906889968036837573350829330982986182799016240577117143984459708240238672071475940474095545768158672074876411704042298565975708837170650010347379689294938816474392226057305730864837997759125945937609459560657302962112867738596917486842102311621144151367355829253955697492414938106616012178217072032191746624217226688155536166423910053668109443244029136684920296839509980526863236192852251065244041885812967370978516503451705767032288999197479187724146424623662101556327914101571215600773397496521316390966099909602970607839467770719108514685571318839153511763646979723862932196175250157266403901619367641780691518956151180558246747657826114683562961332056729169416323323479635172693385088730267418810639700454419022236125142381115268005498869759019760486737056498234283562048421369526989302878040524985985148168090273584848141953032737478258014363992760540840175448429457938671120130929404748535925543647509803079424431840896436685571465390823291207941885132955680183246907548330771925361417854284235629609467229838908930903036082689762406368347894739648762672426390948082152115569503313197030073294570487583319203348286695784306973920202643665502972218384177147411348120351645758306364459061454899662777651675324334695528507630372661695158871077697292704342103991912067230224050808493256987825994485907896860914441739529565188290901194263772351523148388814613741527896213762381225475114446807737296499628993733880855028811743426680875171636030856665118214455114868058245858577371163517046917840351190191189128935244894259340595528898481216399170529201665712832973009425888425717246200489108090893796524528845625435095987786874481810850036353342756276953630857818494198448655662802029942950031106470236221902419442676104897752309980985176612842859548163491350411061345063132805566727674389549543675725244618157166552594308397268462627589771562441556254126475736494906037836642751498176394197931185438551072391083863743545451578445249869845746929898337045240545439786214553980399972913558146350796236431315281663270864132352868696524135274408231338769512579112220128936182891082925858888994839438969266320147784260517348400938135483946243027469630579442317862188338959784018366744414151257154502083636982856541163570372423900787334267978697245208989639150451159721582122666932814286091288232192909456716231648445459079795316155394972723673891523520607805251414684698480030393946240752497028790419403529743571941418077401285388031028544995884920187832184423444114735469393014361182178954687217817409063966181458344343216259029777572855696255965000100415802411038077598869669812416379017961306183332442496728644931296449983121611277001437226160201545240561685109741148281197844765615922515472072137048521073712313242547666411742657677285279177376203546342821367978663441924426772648689711845760774562921072791940237197247548289023326662162037986610077727447643233910810904671002228788121278708142263324501281143068145116460484017701031206736265790658427305688212947168141750576880103136467846067714618381862905006539459074981006516341149590574871292540049427878175646577622488450210353923367306037443454423086492740046062721827343721763528071057778184522294152304153660867823134011516801251013980661104555167697069558479856296414649712301476850203054527332126320879731361017438085525346478225245478727951619903012317991675058281966356136918484196001597624546534536452216124679463075982252706716393201602000519368408950542250383197676585143481132905937557751009364499949922932743280522757975413026504213411338829981199748454143897569769905402754984862640535880994366884779349232450826676385590740452564365954106932747638507237932580745392728764722750353246360454791229773744487010815598406754111680205321248536044363955342013966861124700442350670895260731030782941640172600494282411163676179804181468536460469060377547610563495089091758159184480068331787540213732942337872439833649144171636681486613732407901385415633686560338038467200050192661635388306597377314908493885834272992230355744109406079204917708334421536867980909755220676659529753015976922682053310442154241021303879706961441984003264253994319831798153435444440140303281332457528288507642490172758530561429278026261422957651230550294113018177702871272168700465222105292157673178824951960187497388014377647807457465127493031435742414235000223348522990619325925420286111316807799841293736795643540665969936163207762934639205389870246942876200197010688081559304257257171357112849544882179579576655762645806456502855578753191135279259006923627385814649125052587248150623496596076512283256553293569551290498583806982959566868089075062384595541802635216748172704451123053238288192603972845126735617524615898458481073903272783510239454937970918957341303279143892505570329333449419654189573808001732095961997298140606643524253125717584346397455941137317478510779710647948395011725807989272289278474579165585801971478033689303153552861452003850259669392598353695207272780683857147257659856876730861695562853804757424272537853389478362861533366357398284595496033070365975586182483641912298082148690412847323598955247662001109798900039988666518361804889244132696346154011935994194532185337614500343045444164233493934695030308669445334094347168836803029287403078742762519132988928124159821773594128463345067655287560196511268726511583023803864185610362875162147245476735807816572691583415470243525589636075273319242961149099833883048318859648281914079339068164869195653895074097625296504163467134347574100250399343710151566770755162519121560367970963247143284531999374994260226030776952848312341629938409696643303309805007139079359635812129604729097560972959484159938033009931634894633361176363331505846763868073143011454695049996873309061931444346439482477539631797999393309326483766255530512828925382393874135420345207770048363738583491978634605153490920271775808944065504588694596515919696046724011077256700360613242030438348592255820039432648845928078320035381769881735421817826269405118669848010051519823546450741660342733428147939879729815206907467484147198495840467728237250181247544728595905668866425299275596911567922287423459137326675321261591252397618048556050369114588734300511896221688064027136979362128324420525768247253414267863822841021139506401449244941241415269999150765499328862999074813390771715890704212831003738632338727716247212957405101099259588695404900329045219059423595067109681955570986806238216979900696819070613263835719695459730957402992170028158152240828601626146897984772125559307866524393128001405195614602955986327576406523827659752505412204359835801700879779962115464482987340250370098733937774194408725898918841285304406127574992653662241946454511077821666344397661731633033985334220169098438165500906779064797864376561641748635702842748763937390717961182102962090406534857041656074164903229205217177251288295220225446032802889025644689738925247885804750169312482751125777353602052258931737820569400047250001866766353395433465335169523059457920336117254769919073856478493531110651701921578372773610503236045945513164605928510312919487224477031855015584643495242454657071896247027990180858088964378071883428007645313135621270304380806899729072652811653045166618473135448465798376284254260376141507104050893691509480222190205191657241622730430302684115275162336364259235821308757412891142594341212073199723630795833538570719470734381125502027888098881326582441113314289450722008255044991833298994877913456715883644739745075531259906740396246500385237874275868599689877517427328296823728402593191691597576615802133721180651793903159618922478429928708355229042708051976661288563966664205603401085343013076754067563350238601238194887782128031092477769458594127848080488161659284452836839022158330873596299730453038697675357058701016220620320893894264250002006872068182335574262853135019767291356822255902513150471497236090514171811296713628031084083981693788562588915845626464951439176327000948786486338474586711784923673521346506354984062269542003079064090949033339312530511174665972110353040707977124167578330096164535826947191676835747928381575393798528218214954021733686416440993979370530278887001564238602268896581753669715636340595557447289494312753371365736202753270195026125277836080180117092280954807337072980225670154586449813678276545364350094658483461613557313007472083650446183824069191446773508649535259306635618047351384349980340551208435237557001340400298991851036827953758158909786160824857708625665620646631342957319209941673110425062465133304962470245166926253672019336618943401376917417481146866044003561002386564170567670853781548375573181838386014113824304969976833260774874705837745327625800698214912015528158077467679003173013176969126633218663934985390932599295389222931193839212526262404558152409858039601290738209395661721875228063592362435287172518335626819217710512046663760194158596002204014675839292898229089323397379213616130171224327158830200527298839506806323023348289822330493337422289164311371594070158360720788467687790513842522668930595359055547812481887167200244377690822361763691587474896669850523391150226964135436142928976013945915179183652419102176031068734470008221270837259905451452836972727791731163042550603262497376571053802530693196603350892023045162687932477097695325827197165545783654790663583944447468674646753608700348344859531768035420190016042685541666000327469218444849236624702901691557059675073217442594671621067633172669259699572572919091748023357321688541313145720847157024314197227804503418835001538444167240199459048408235148576710299696365056940859242971508936231469205862537961965421052455397803663196784944089946718083222220855685944436382024651604989124801090921169702594402929514090597876818307529291133541603576480202376019790058671458989554834211128681349428869088004525473294021477429191875110650846439758434105959273340544561549079795308741708064858571304240093111253557887821446492594648833786207914661326474939455125467230815590203661827858294017587577707645111014273833276426573992984594558617680984568775318710668218680316969532177621899820199904552218890232637896912130645957058385662697279754023196362470026641180981541096244792767005646188302831472002893277761023998321795886322624765823568762633802124652651473491347619999697583610015735716083968740914898645857838658245666828502017937512097981093179322484109294524666037900525808644872678638340193233288890639117032088541568196200264354600312024901001788356038578408853387229243695064706630298106259735309271455242433203090658913242598881059664078741281363705037370585837219125521132086445501308629392876164356435992184289584456541218275561444276587487863609978466463070566942238219889514099455802344853148969341960479110680057483603774640354714353562438756030582262439523897933622470471407007136951255508734507417852655274758567416551535887988745495773521642497463008304973270751633452471817435166010816976254642731748609450240008044414246512719504003844470632462021672063498154282874461817297335075213172297558924809135761706071099624048986878443481155673331062433129662049764037267771092089450517820181472133912410510013925765246702354900897258289506319621069184529151008143987820115996241543986469853452219861963315022392912758297735812856440629481070367287247797217344556312766519099838653722133577127325973817706621773485609814251003547850569466609369016862360853521965225991074885319342363165627972594089423654548142338704824509591849609287568852403010497631664955464035736801677759577471100964670633657378224401452795457351639164493022617176157827125416362650826444165088542354993695084707878800748839074173660062923878803655560207675006881947150289435966301987606418100810812951042005768540555262494428177254146980335342309066589417390650856790782294588081214781889364008762947541910071476118692201390059683753557612755862016866356185398785766908067219498834919597730041044696443489891822447628523033325397067817778890947684077333947809065653831423595028953405822917928700433256583900221941228061309838210572688105463801547103442577438803556569172827210321983843647272814227647814965416014112186645873943468641033683216144104534426550527468547109405676348394955884145946353665993408176369239537945089533966373246650879115868528651485811957173589682640941738462966077631860747847536892800128530365581783273762474816187532147099667482951589872568116827153792305897840847222564354076897758832809397777183309540125656866119931560230626397812331076030123882136074126348247772753638750000564475962428016316062042818040501859914314810294906184352066974740510918959645020213544101360799148546932318174083377062334260798914441521417948789148262936554241068041046644940914032110212458594363862071598932493902590843538285797814840464363004205537449422641845281084850011826660613672458190951073006620483340410489100568747537575086973023322156681284024228333919656451653023085361081004342652095397994665656499880906121790843049316760031805438360320213493039760815488972250561330989096502014958848584645003573528323620070246718151837092542712343577790356895677178734380512348554445969896961112965709639311598506236285904094709945964344516087244199140719779426222794671410881275505333160701673913314743191930653902688238539300942940664743324994969965181032912893211610536840598647447542738489049653606954585384478246033315174453149351476179592371362041566969414868055738400620750504935365109669204676152175529672277528049390866469990628501925561449947923642112420254543294705399459243117938247174404335177320920091436977090380922838876926471241801554483960814025456303428424946966476566817344059162258612681298309745916271718695932706942627210569164823897256667343092703369908786516635416999106727273357713518484804801834619621917967200666044714210142402336215479192606942071636773537245020107809920420480063089820599285901580969023724935253980781036398781159235507102008577926199343576759618362074725338680270920940312437407045812536522342366942024697947126446768150906350984548820792499009600715352356510085228012855311304248443966072523540909964782259233997314852093177039561717935288170882466808871115452313404929572929466183370846521065871759306022985579178974186398258829429998425060800175088401388128037100189434873532106162157996974708360050896538169603727174978472227521068986046143954430601274011183492098200834384088657194185931842899282536765998656966954373178218057610693339588528573325943776345395517452030798729055247649910336818124697197708569294825044529893807522724757584183673421136700501942834268988771572180995239586408556827263632842148767940541434463916944999360589481235335007554286939325500151500553876379377882668178902741474539694315760905378513112148854016134684943582592564376037231513065690173367542842105644291740904286225658780153551023979312322352378544002246793076736509378334924807686778199369019731000769362557438065162985601508188970282981066395619511644510491107906890060986234421363437787668811006505052793403274795224326826975502465108107165181251189431248072161908277705913666273608148559396950069906329405926461487515049410609063635600167095113283118262957113929945535573346758238269258789601379454710050636711157396698707217598338365113385412532158223329012586238229776201264173016901585952404822918164324893268270133144752233473377174428435844393219072910744581966961770825403871411257758441397379315878706799595349801909390617891585178842656718591210621489986215068089550530255959672945743593691266028651314012352388448359434675127810114383708048733699064805530856943105279584617182227251782505107709323005462793361894496607077687628467127537566287770098307364770550693159905830007367439428173729871590488043692822040741391969637625962713561102738909758806824835194110227513315575352048698419040806925673031383521521780745895581956564698452650695817533563423682546212791683831873471183092008951861249478887229731777104759635489833498579299811495856994526734376295417537226653682906285570404890297520097492847784805490371677695492442566582548130198870199691660660847976229393865492861485196921730474709181579842081316702802346566962433004324697317934625201710131669361078639903387670752591871674380044648658953078874135599588882332153520776972846340590286395881428325635053935576259076144557577808421081750471900472784487531404139689015010523110517145994692963849530381877066222998530946707876435664636928431544251681276741269054882263918992954564427700901355636288705295113433942517835197220665392547649038230449181128094181918210457895391933570060479812516299639601507848751882505935738551236874070658819448544392376425905427553037114158637213100989434684674076605477152088692058105984172147413831205400469223708942904789145367126122958513602359993514512450447204740746721894026613836268053420932230670596299081915888030449779250445604931299856519974445186342266811966572357672355030451265654638393740580185665113012807963687249012469793846641406373845811077721147595821643086961699816130195073116267347041977957733033953171977076342883923460964848803267951375529022864245924368950805360895461301779944359006024100328307829643883705280835461816735112330564581277032765944858304281806171043246349513831202323872784713803966518554102082791880831357673437292655300763198606915313611437338290190560196941792365892073301522688848696928431348790344717209496829633075041325012685886850208527227995360694911766518552384013855586885009866176268938830020656373925813890674917933507050562846285611116990013014488314230478313671514172859065485705877052824072543291349800421202339615921480700659332247523331667901693994754670316425746280983629059727879720173493321948936657559560827813843097167042178454066717375746385897756865461664609671389796039047641742859763555913654468425866910405326022754026253533754907725698171735897237941866707716430446862416165392452805527989042034946627390090988573876720945113720035122994411572805626325613696492702502190769355818764033801154946015951205963215288707936052705719680374449121773239462247435594777895333750364577605541044675915959850240727778852158122754865875513064701664340532231368730763008874191109192951019628069352185821380017849272191593763482865228523287038183984108559730347535380017076240864409370118802694033078813041559641304965359156098508589381396090815810873292787823971930289734848440151567496662463966866250851238685091945272508272887860272848354191371655575601249675457649244023376941713049510929065892386165328622438171743535913413644662360116825122620319383344183521964487523951453996019353793044772408423737409849771251930393544924258369448100979388842071613156445798369294227212000224906173948806788481659416035692634298883826125343563458922618354142347705630939198442929069715691714307004660815596635676213400037865968968388910984291802662782218054065644003238758413772200138793176179577697139194592528831994615984531601929428681590987749822471697483412486635890521678470145553418418867520465613710584100724350709083405079468295848147694532566882425269205691307659931540651648754117456500427941120744752017497473313713506426262930126110387068365810650469718667314969770916428061870279598805167696982834182599511988372140109965534409243487038897476413526810897748988808056127395221857357644718619516418960099419490681507927208187389056552763996288037492375032666518177806064410206721771989741034111646209034049005313861165855871011410633267580427324357677276950077214771901021787199462881957998687084672760000325541307214003265336775332613525929997392731300152791748937644516809926278845202847118800743752086409482135049185615976308161528049846548930549409778911041240266786439419438118534702480926426586585869788465192898873697035210756547600751639307705080650189528247721018439718602130158199453920015284171440728065620205452892804111989817392702105583527243014474042792014563639134724426044377622593451973866149397850613423679116098778066533324939432608707044851101391502920235548006783319363876546569732817402605825314472001179959617133095714118181940783038752538864997598656324780099742459621417562607038691386356010123451727646569321058886795313200657775182959638806912418821934887631401840720884782725549047191031404196149949248457126525531439174511421319248150661382821710095697416643729075519402853251894849606149458767751639405655627298261556051956486762335582214864802501221410165122636784317023400965193410511035712685162180960295414059443522897527858486565753823788952170637921523068413076479463808521493377940349938285773039295549725017854872281901451079560200173546874981537779287837146963889711545878080517649254324792090978080883498117503090043291134019062982576931102932758443184633174809590811432004416572518166269866002497775181064097948344133771930741021831059476493322730984485654169818936602386527470476684521606466922878095388738913499040179578849195472063348229755018967749271647270307336661098235574440969931935149348443070649882449147491061880127229877751847012492936848258826368127640557167065997522710090477263260362749507159102779989921314831081054164154355539801047216668751768513082776978664653983591928052464114673827873380410590322342899265096627409864674038653564109456804305510394877643955102576307768745471302918230861311675397623251409417862194686242302256325540358660856786852308069466073982914692068298171405887718916467025256698230727602885744774380990676169951599608786894572592651293704152656402498514145354715976802321960259439270704503023536913699147004332401518488810188496053427441229659770171632778760651991957073187465034323360561059441682299210748473791882580873625695745256842144362467032807755983939524095227438124192489524297724247532250391090646182660408284726680989224931258787766279433754273283587853047458920246323708775808653777290414800040166108700628731805729931880925578410193657142362239502856473052460704278695478382625236178466699008309263860901752581244604731411365532951506466798106622238274395996992344653879083721517364069447514873387385095344050531356595669541273405279393245745301896203071195148544582486752994640363989073072209281770229050173852588295852008626535605060670070272914913193981255555374166462116676370740588520777637810366231830547421639362651258442285683359890156813803483878593452741506474833405099465770341816390232133775705445096019007134394798736865205360072135112768546466946519481144818564626672142584890241462379935878879532100513685912403972104630323010996118540069713476818419249686209730355813761149436400190264476243537048812746718869355953614472592774297602507491009646821402624896813913651554311003077543201072400029452954627007195901548662806941337420272006126236373741922983192845897114407741265505045061387867044566895778657584297434261995536160314651517631147998717018087500880121280817072697078686044631470149245622187966028460422068805401325681158061593843735275869426295984900460043478574072186230521632075840228696246076046908016395461483888835100796826401813440703404307612221720083914940637033857098424605511208834841802174920511757880915974410982435582695383906106032340140080234231093874148745475433139681259048342555747586354565386091138321996660688283743840179971036541992821249863950551718646672036273080435588050176721249981830854142485464084900585214176814627467364201774854529785986653245463622780338492353865337019623634945284041392471163374309751552098046347817991751641840257738734134731844226982036118170124299138308998467150220548669326855001357298199759360104157528095654490782344449730263787752730185995604241109325424107810752241450392481211440906959681949329577389484778616487400253878526405086988401078038360376071923344580285620901924869155302069666120100741347149256395871440302514026800015129356332327386777932755346117318722566900422650926333746817538293447308570194683066131935354655064822985740023795941986908129910584507739363313812797954833068886599221516638735863223734876099269755146068346975696558340441814660362154874062763321135154640689519983936059540113902777930267855969726161882961190325752146010255256582375977685817043324329434143684719587936406755349318667381728313713941267257639563605827407481621279173534145873405656637633955309184262202333936281152326292288218619815169528747704868662292941047423292443908097242449823705613756925359732332485275973842127765045826645461859135467119631629872694392788149330052457026294967374429874818510484261609861667597779398945333987801096572140567162809794139201739580456179352185890152221363988264081563738841288729402262515730201381464402738331237688812300495901466925540743577183865649677265567008007550432261359194344436749479016822754657265546934247455648762241475841655414452202109939783754264758297574536299958151721632950565020743212071336886845593016260110447893362810128169046560039858579351600400906664134917318549998763776621137330115964328489899696217183950331295694646795264065203322123969136218187709938346531284868573729628241892127203675381744547346766706415863563504452959033310249795907193009785018956302758337325802142119918912160042576467090553927907211189157146627919911282777768473141419620019962616483064056107266267731280195012720699570647955687852972452406265719845654165393710518430412914282371482596882147201946260371313670027284843439885973706575624671636987538695379738946157421456157500891287016219099805703327272784274771819840479492024076500087144168244416948734741933596933258755795056197218421285431525727322624466932424604813355122230934969908024210483076815755729618826019874614587198336195761727924228617233324344117924485759802960526537245805266984107349025954874769122129962108728504591396874728901183896415197613468233761131714402831023819600679945230316841427562350060518586516069348478457739238197272158796532607340981503585484040270948724576361952952395212394176385620443226224149258860453935704085828538017646322132256997202712801011088559287058859698071930037950285959923751103644090312610158596968901898358095522449560168847846140627217053010832402636289962659869292212700555334529121148179753239958769174883704265633692247350974908071507960187089224103260243974210479941966339286056644680941479731447999608357958917583802135573408774541205961274236079602660398201486829686598571464377820952161934405968574972647608718815879059889018802098623909980672555898785234812955414756874060222931952877924976865117161952254465970310206093856648657094522583349348366240132658993405695751076891233734689571691262408837431663517516458615075921597289759797577851252690319860634760000546556376542428892741317000235870818680291387720287904973386400281499340945337214544877778112745984650055718871410672062689626504158601811482939801367834488441406804820995001843982402103517204258308774190625600496910235467420638213678808170124417319977602049966305378985096518490370433146076026551141249262249595390799963931304685063038004101152397440255874148755455059248968385579364543047596428124503588478334054704855840995483370973408064134869197232493463357852596723451193587374952026235459127026499915901761371061210760719761878188538717895720564288575008836707675483840271235799235681499682440491974620728085522176793698916191262351636469780498649206556532304720746974965516274994052817437489617197278943363954432831526636878490481043350472531313316898227725094419039066764665211979017874661192126216932501371823153393512718934381533649186593617604465449463937414128841509450567547957131222764406980946596541888606971745577598680516912566087164792015260548220650845917515826801825405844326355399750043292693627870204331382189854288656992628271160009648353339669651173998853835360848327976893199423919098115055204345173368954583696803408982711555814582232217380253797442338088543589314453903936038306874504163900077115171986850880815203135440582007978733463699352784486689349666224728080904115935898922320097826661989572690198817243061209779159194186078329776920343673429838403242117069953116766968164405459808168900839656045228141189030196370036644237137563509192103544745094175795798810642200155930587648968537338835688522755482378347695905107989244447941490082981950442177095116254667063764206490631613283898473199618648897500055558157305204172786325437563849857399706903254792465403781985088607117665577898705835941123265201869027259518194853777402920536337750525294631918476638565751341471986543016301999831025953630106741052058759602871128666803280172180644922606158746936610634838344634740744273591739995624259440789955342559862881710791932409450524481124097768880147160324316724824486857359522035580544586050291031695317973202055799789951094625446265750094508639280239515791793832547521909941255589532319375031828432092133650807026508359507322600363858660885273878562041720662134217243718535736696600074754989274244524744818622054966929987146543056348965538548678763230191280789864896691171046209850351318906395183706078624889384421750810233132680225983907058901386138949911948667005567900994670444192848074832505554046837077439034268203409605841403447558513376651084007147082785471893992770108991742183796175666333431980986298561002907849359801238567327931984412461847272328608993629816952383526857158719575900262900130119122341216250543289944923127996820715634056064246534227694427579431589785178779139679490623903079386732171247593009140735567048683738407676962872367982262731703881576387985700020310118310816801939548197954614941534299663417059485166588953302226432368234225609673367050005874103980260987777482461767719572712919107325046937454387359704605259925584322966868080400952094124184366946452589276178405069577126656181996316601447330925298220254835306766558518713592631559923289845861447736245356625355392516236336061825054321940586629052088445052753023062321481552108465335340123700496691213234196102079062059570059922140642341098313941034204250941105550313476751394527561437138794110664441567050710684142054517121196955211760185290938277352719917021302048811701248152230484239106352481168688312276523002890023288813042040789007124862849687332866495087886825908430486343509380479959750983024075168806203036801771769055584298523180377784667327122413667251542579514530680434698140954517844515939230521085738740450658507141369765412980537300709484338806343119438331279917690986955826580827769646752751038893297538562346289270608067844585318157383207199539326865122196611735032538782412003771997451859196920564918451238948739538859804390154484656646115361005244962887394602826291270988706343603485586444607727674503031419853208771340544769032094679596196524072419801768301083151339664943703760106205130046620533612650265390704569014144114411324734187254178045360291530914174488802446971809334202561911664988892067636220322570235334402231487639066435757133671338078706711697852593152211007500529551026779188079501243668014322414162536441348578934741990531644000921965410873987890964162674941698267981565321664541988685651621276934809621594448721327145485204008713518668284546361375250555553409486706317990334475008882206375785699047058181016880343374353272960663891222371508638886796048678901729367481980770114293132239043051914794793647110004889276349975980534240045455534643372465384885548251693019117013121825010990024472068927457071169242158406710295882604615614139379028983109819497930457990038687939064299381901135787682658576066923184775100953554766523672878212758116516382232996407125214864154606322691255448399787332812855695733976323102279792303896289160523384933157441458462830336808828440306650853621451651359605325180177470774110092191700053837142678828186196913100513678771898485428703100168210222101092385941391278833921136123589740222264692702992353211540489737543591900420904871983739988726206177046769589842806668477239809925682483023152975784712270914117653340885554720534340409352023451094916284260803295022539943729581223905507881616166431194080812204996754325459683609130203317349877863005344730101882948299272737967127713386023286961897630983054985682607906139450213466776124699500561109728773014625673112412815303571332350912898241503815090305291619577753993395417952586198233553145420519677278149242803943418060380560096206315551628487229623995638516157832043873535480443837593230023782647060852056862468739616451586351607955456173738760847086861551715967818367208608292722981698440376263026771275218560683099138954066497353768856108875121024820045034643998596079261493262663796078838069673272225253124701361575040842971861107901812594714046835511678272104814597725694994061172017108442185305519270593106067260910949890846067911966902364891327895467943336360511719604425236784175575058229540463344216880274472516710944523627029072296342260910907504810428627950208173375755946463566630596063031720711888224138170801827443522679037634086904305469790980800156685349607037626635309109921606725665475450419734637418162883850914171548197809975541517576382069314190956704658965367092193450602045789100510385517579293787728519061524771310718082065554912403196608542630840949228825965056270712297805294706821205095588668106667980127378491955650845172359897303499289573984278181554327007187977971079055031428435217201301051668889426029347201712058196731045295604238988169855187411749773539403867096284821932107936253435826461840756174303346787565544711767505743725350047727414536764312485104961835264759625815951305605858467877559312246099429854249640358285084010578929307770170085499491491549574339369458617749931195131755009587427228203037927489724818292458134223677915127574460600614435019355508797208406956809067488981783143225571317119396687038458964410969080614906616298959015183502114242593735260841672375538512291353744059146403172742311922254960382691447168778555149184344477492928026220037737748451951663606608158603766213739350181050354112165922518186293500707368292982012934887137343776929144588039526036877066865819817723496208493503241499757755459961781965093259890607572352938471214961810857917775310431807602246665790277138698784505012600959712329801100744290182568803497855100426040345517813691224782928611980127947805051080289836433291521721775146057949993412805372693591235937986132020339036956975405315711451740055493592559947280836992979799838846071958393086032660655351702069926626192507330604757636594412504724436396205927910571936307874031605489712349583034900894015757412931546019294890694648240036621430234726820993885490724882534592584255096635425930350602527246655340707158567893138221739343167973798624847717492359379425256503720461734936157302084748022139479827456140652206384496553769461367820984182029788831190244016970018616798819018601581806190703886861085873756803721961917794211188749273843060141400744330770678605697696734409879652486002002208720300120817829517430948969115118712045045405654729614578539707800502974728792294571367904215432172791381908509842404490600709375041975904537210423636425207196822925161934657930419811149753284376131212594615840911387527752890832700419245349841037461330896815500082423651658292590639062929186345919641921734841867759993502027594621389574246573323770047956357325546789675935751440696091152550072810726236834346791870430363435249553766571696414678766443349129107619406143374061457419045932548161913825152212995921395005238387655611732572484085783143212524875295877976200465192602020585682824955332147940758787872605615574875344453438044004893528255757880929354583744225394203708723960732986022128458322374202390981931069646990539286064958782793597605950703949761848878164418499451311749584841682919292837180648549119229132857522926534720356631645980018172771676829052589553585678112192626289585580615760362200714773289221530955100046157373194467459062100402392926044644890025221659419386411504607452997096393714564075067520165796810368454549116436027537289993189804281598618534913817465624267466738712680673043805251347227069107037675481692273734272117070581239700472507449190690996560810670485389717977377535307342180033243697292682567617233701791874435208121723386512696515261598424410210579254749445919871930281053044823804402623642232031400325276505946594496709932592677346158845900250589823614816012057742685926474241946830782544154149741404192633936957379116649103127679686416127848487431329643754817446798006855472496479129957884990394812844581219454037756774719839898840900776178834797368470019919266408398381255327054712206692804154625056783623800678041689942716502143094415552164693486016885437784050428823075247560218926215273012202950535355347354349809101586763246260234917105722609064679707417758063210251643277255714748768014709375625995842249478705809127804171192556421525364082873726683025793040694610683650874326940758250993739005933376556570587677357212811928998825985543346922642574362428928226654652864093379450031556943337388961157815519914915022549494654405257790249500661167389516576640272483231783343990824146902588777602562628310661347053256618126225137577970417540789595980091726098475995868689264573684777230363889547362740328868868577437996241304100816140635238017096552855565348026671741078216378961880830211425684115983343054086176624140709294700287784120336579032300579730146302201292220305484869657429073291207445204247389678536634883421856791749722535403582336384345610803801258545573709420488080567135793872613847347136478494039654087862207179357088110186098149791098370277543907873246244411055210460137962962747043238716460510783466972845121129265557095438463945483071283248237173591761838696310203647415806851444126435798223716540360088398948990103375653512977365789810954268471881161041229421526333478124686945390638659609372348139229410169985531603056983141120558153613840104293267560905212650153591649011310469394785430281076083505034973077659305545486221809543392242819036964085699382846306926894441224410280396434113635928388098944094285977452737982319485569386822390957518180001527616828755720670379693554121260553385921248781859935623031434515911151469630878490246167925824024230229733691361194338751189428480978028492281100428753046590294299777382348460800899887690892346672436496585813116159233972502593928986140703017671553440465410585013590775294443434317813166336625630961998178273885998376103389124573679458973639852906941063543821347450847587999482166614256168086519268376071842902528968784927480191439402145538230460631220368659210278861248963080560690729120580477625289203283246632332815609765595143656650858610950131795844036622507607286410495706586904470041941512341597955841320984877446364656005114862215421392924310812059783670483434179051965772985238024623659038852627302938616535464892632624902728573202843280829630555614175652808266012156178688225385263145317976855474474925968514161840953550179158967694249213809259752046071292748340176592793225472539637882192124370287325524586856130384338024524666040646953965710698671619549368960545391552413662076617656551048053229378874909412496115153082201538164222212860114209685733328333450690187596343244359280122879649914103119950932081035444260672005103379501009391041955134431671751897910278591732331481541020384731055721623799924194889213398462793094203667096531805492103443528318710450288674113424153857641336288994118611999451148003798077459557159534631996199484983805604159927268827106215694557003576119511640056309775285705512537973647879577764870384657611642439963101570191190414120904772960022971430747145591933856085839894540141101397057672649256969701754140946206206434673027584610978853535340781360995788758194185758619296696432592590230422945929893632656273820905957182121745741043046555752625381117847442902751160078274773012334871541234060467494727463511604358222956572068878838115039128703325887098294408589226787795521001058556100099811690285042656330747734668138267564482785917785391454543349861642587741143841902670177991869332079561047442862454590975682522228152264117124847263343980959271321492422729028441117933759983044231665731604783913827935940972374186808290704645280855367856522183847494465712249876328084641641226644619114499087644920848142189981779959861940914741132064108013004830763365104433811851750252336004114185002984264196516847872581601394442842090569384118675694288679988284352331655066032100632062562146446543727656505796566092239185442603843941646854494818823639649310874707803227641931476074504934241229475839568764338158086345918984451766854375571402215074694981089005597101297446328134307347555776615646047107372211825470954544378846727450382477021429985487808596820423350258351207166237479031482023448070885821586122577242124374483647852143938083670100527992284101888517445902501910696709406615198978355076967773514298848010095474368495972903113816612420875172593697570772418686962771953899506266545069291972416987828234575840122653859011408021673147795857665871463701964400249509731287654885260973163823428960573492486132169430799813743578132362139416144540210837261699942542305033355121836838012990908067362559063090693699490674968494997098860132857420576587083899231660159127200960906235382643266044769545818573000974425948881339566122452856722317429521896770449409731376218348244212333802367909870080219861845036722319033921220160255404682232627597106902319480679679433051092490439555375112993820878310655754178679141145353363985168493739539763539888498714300218173907409278860420589441226769767499767591589768683989776875464594503595951738900743561899886091847308784572574088486995364825459791382408255027935339685289560184812414740880091610549106650119354167135523703327572705865452226579802683208905707473421747616487175424366150765388859767894820990498239565171179897753267087844678049407274004394910585351496707914042052685988995049875000113789160625849575016102129242837526969358908927755263854432271220067784136877702276310030793491170674764299078383530905346470101324094966268300437422367606588349031731683508410765297332596540957027297038349461897393334478617428147856745901237687712585432321189736424714789167152114008051459687236769628006197518422076479859846546190603566773854868222694272161758769008423515934947835065660706760817530134435240242625469052618839884902289732331402256178017057435257998001181459222953261492179242494693070976413700965172437875465053182547814167786798547363214425096836039423037949629405959424141310608908915576501508166025874076628267484643066361468162790713654920138169077472917333090331089714883859227000980458019140255392960529253403890047743724469615579775729600662263750881466961397160798970774978620756125945862297864417426339448838152281148676997513440048251088835981557076671352076095076739210992809686414790809798714102608974629351207923789621293592624423498815367915368113372731687655722993455094424120912350358007514285364659147642221626657012134276613302453968083037743520986409220362914232548305566249982938725598515592848469103816095730973112713049084082345278136273225420216958542444750755680065391893801754556771884333668085095614898288369596238524157101520828265768777184076875970274365151271905381677731497956452008449593485292526270542257020245838110870409391231738968718060425801889502192813255929526118526342240869582151196418701107709082517796367212856974734870498011222741909888327187534139540802344571895640166553550570070608879150847459766543758801057567879355063962729799683129229164171085563062918404302464958781680165258925322972216180154199636180450234747342288037263110522278814008412234634510062225631711594082235712570514344965412623623400806759273212358298755859813903793965049306679677140222772819089014686019707072618297001610060719495954592317179753244263258835557304337676464568031567039399508856995479724530680951061386044006902547547251664576631170866780984840487461498914353811644130752363566288781394996823679541609308293191276470928727363604234512146111797871263458472825680223223492056232421052961144175325046682586082122601578965171073692909236718812596941016227648073148759576969071738153971813035703448840238445315172638244809227083660010921557319774027106010248935494424194822292570577904035151513639000490607078746629328162473568572823809663676110014271321728735550730392610594418264999594563032802983361511057026154225842569973043874149326822461873196903008806505364153524516167395711061622589885024545711663217155412761649355664521193658327375900996312250483972650485879739152238954318290471983013048995005079716775139512682076251736741941848948792812745854032593131545545952568458791740704777190462979583393315284688902466025214331926808525194230314781651338286332978151565588911818947727846547839872820669843000808204020774592775942609544086903231737661751343909815252899020727271337573323276858769234111284924279908065920221740761594225398420571358496559180154353265046891815117616622494547669321902932257385161026541191998505997048973349742572508522107437252466051073968452736244806799753788344713046741616442420802406522799413974545473483915148243055943055006923275489102400053156400404056701186845167321316126525856536051898575449290149292049870106956835605850815117551190613611519045474698391743760163376397684308030485299830610638360990328455766927079162905038550761761688820870475748742976150688277826658317677664144266886878584483790669065944694769201659529115346641301300476387810914433509588214767297248445156861228588743393780292914012262133781495578724746148638868466106016961052886660430387369254823925332548596112576102182394610534644579490180722917558075855410181653594631509731268612040670616278386459276469577960583590914841849522667096320127936261765396412358660773697616227012388607006984463703096450346052637934865888290475033113666994782957759859843754791427341254211878656523642972955170538607423970757138602634135338961985130733582481994765745127552262780112433824884025801366000544736766686939677951139631940939677288799422444048986180000911374477986710717617434055161228032966366051488554354209518144349411644101647898571626459563211425184057825462115069141923581482787495482101436002094148495323572043152140619432419306639881206307787269845634119435984270380421858690926534123599838445800862688923364545845360621224328815259748645128332088058386922822998731965774813741206666050888982282488135894773316598579282863116118135299240535825938558421089298325855153671848426236697091174049511292966919313402906167559940450157668339159083875085609809324138235843653597603925508706110307273109616457199719278177369240310630596787299687716590654029134879164202339256157734290313147458320957953563493877472758754013689220710701357020898455614832561977893951816733344149622532086932873603803024574871038815125612823045164319035836588092708876344112671784670510420599278713685231328150163593696275130087358560817951175414729947254302005900207588968983782784094312061137946108382123121980444139113462943724152470748264983117544783348542419039846639346245112179055815290054053136213950454797181241039732952281406266915080120024731307107324901351053403634797870304947688089636315871344730323923056695714264753643945342171043956650364736134031747197696615774682794053930778952541249224694611542829501960525802299556838248251176849348061323295571476082699219504237908863002383600705280455236473854768173504232616679696817374444318558490127562622911757837077325452084116680997522710242003299379870025043743108824018862126208082121547674443281642009392756130350006886823622931610109124212592891950291946767063484807950795801491755485875255562537699749741926972361974694297834043288901731366805963902157545143130999303848855122118904361158714683827441014264496878718773216615638751800648199873651558876386108221462567877875025243165701814881536291863686532885775691985913706752715544084025011150019597353060604385485960054032931730728283542837125479453501137781417062495126729273798141526074385996643749909897393460135493610007652111918521232744215235284003001396306047921611414663937991723187153611766115191163507830032061664140166350609162514005412842845605182881013986830965763886013258021689474653877475524769896892922431769234112558518803878942147957989236861158200021610442313595142761550195448169656956188065253165118273695631242182884045759668654060449451120557717389356299528412862767587415964957173193075448106285105495503721704384468183923826343166947684890473323817347391590435807653821192102169532523348650025298010502456845444249149322259599391521177807676451541547188020252395839923453330000859512153254680585429506229414188721491353575580271789208527774253471672020146831926524538918236082039954906908607120896816040128544812019973148906495369958951426831799657642864580229418867599754799069811199593851295624390244065893611916243558593185421372324821838711781135088142227044497043576314524222644772921621990965288733961515585991474056032371535381238186411695950060053496362756712181232032199551442557393622188513449039113882886197722457392470007872607451661225192454964196321032078040737656562380869704147374242491420748209674416489964848191283471431692599137256668105240941518477606368085791889574744379097702943777994589114936475235170687488645808341924361794557846226912303995906603968924359528255575250561210101664258170827846000025402392943602120826994895437459956473124975396646738517181354051071445542440485268154074257916069661516282836356966379212031169101258801609233494113536576959353319615554332147394724815411761058116716323358575357907261395742664687486299064399546885132408641682133603256501027682151686864693454551401591001442014176664173680211148785880972445188040122650056423765308268709445216891734876506924662527621397399917173107647549436870611365862167988876473885359182743333672219599887349157784803950795132811160015622002071988587350821188990469279534341799022958069256291010753545976700514242700068468219271910720789262766319765184410542240265209800871576410338645870998700789940372680130229539499105028565994374937954012108355917152831506142508963403679820182456792555211169178496660327828163548668671370795211538359997843931509264035187112732219164731290241415794204355467477336851110571737865534009255188107516301369333700592231463567528857003665368485817858971616704522223864106407778430390311782312587953488049522058500612118880758065660032787447662549631756616710642827986468883144577830980153387260378746740281306572163607386077480751963662915255706923497254581261611986825170496786457571638404376134167026013951718956822533223651059846723168594938809690825671598015150587864554753527279878042266226900729795580502107458451329504892167615992137030395059473412803774693461048543614113470688397162815076606112782632172158076313665077241780516171163682771346678922801783727058817130873866054248843495491726946016802418184967427155389740552426930900848085849097162039585566435298343707956147317556333003642774461335918225696411447351281492759571111957179517447114587829204909464755803778581034078775925524044875448874630480050121273834353339045833085002404614034136395508399106783413697872359368195519609090543025732768953694475890255741033008377606743937708888276648741452942249954074101555472333305171457854991867980196773483258625449640034431086609600954290156282892023723630055105163620794896013535851103238200371089445386742427655893784585354583162423771662490929655493478474111514028565899605517383427894511102376373810632809789686685134634256988423629183749984831963552891125199685185880344522529718101543761605425825277512275263563962487413222134235963533824914188688052372556450148781588289293809703346692036204894534887404414284067823996376677274715675443479462271010781723148336656394772957588723844507214008263525550060092982511144233499716865484642571146240624592025233304362857646608104903166794283775611789535659784787096377554666170930410435713633072049525669894938233850181235145759704609940209177316566665621375648841788233190466751220961212345246020204792781911238286548045123156538848486782310258529208110222744686304363109972022848780612653580568100088790383247460337658506852433562674432714374696328155082047072352348715927045356332492520655419765538844577215649792676163465751270135312826295174291873660372771073023535750649556209678189577162341158923092864932558714721993987874447958819145220930858598891622708920649767443702839788300037796498922889056634066399329804344239827161188090553472473698885382185526183195380518410022431063069848055211167817630982450949303138993292146254892152112541593382078594249549747835658007618534192768252267510761363320848468976676742649017552366435160080057249619861972693696519196034708807516737610524277791649933602965587560252639345819203183269062380520924278798413941840183688544050114495404380138597306301625969372028230033653739711187521483710981507318285527173473884230285758878237167565788187465561208911286416300645734812342611315552361218092958046158431621250429110637420154392114574920664481344537888575495635073394238655323078382011056297890666343935457150046060099767531905837579031669594701124859569838471526787358977414265156893780711724068969311578592426153677971772701370056640682467403080652329397911640595940874170452328641050285766186102201037205973251103285673001446407488881169116089158827686945885717316424591307188369245235171154170672302980643785000436878941787420534836447056098449314834695845346661276889445353326064290054152272698240633274958569499297496339006612069429366014524788068182935775998861614553639003961101995786480655965373252554155826404945503476750839250107634998482080335890186870095157443362321748489697557319407091679585149560743015310452931422352806530937788130711161627798818232044361177235129167838304516331510556066734784990365930736587527763057438185912890386549177949701663611605500440510040897219266236859968006995921120211749579243453258128623626245507942608874792153420321336246528862929384214366570599434746259164382252609061270618477322067330104932072907471559979434841180828426742866927293050558460729547736920918114297142056832631730087616842090946117216334561730015076071459661611969951393298174638516837357522031486095121319580703198749609961197625812719978023995915145467220465947508877512206952474606279456025679523305270975796787133324614920592341523434633827712841669701792135280065481496347072267764623185931369226969873437028807914578427612593221355676565607046839515312430240105714775691293326572998325616945964802483187983597430448763971933270021448877165965323418872893685638070213991926845632285996197901750158346328471991084721788789083105014542942211297951152352095245221114144622895840840445769491533595140327160655835361459456405143199076016047743325998733791675396358870133468304709039714431211801821768251062899075397290604694291131500134050033330759460387126525892819414964912858550617007311442525199421708451801234422652192377280673894604689953340474231313470521114002193786659457256920577321538139281285389597714058968497572464847820176543112037336318277077190867687777370316575090254214754083651960875719655406335505852619163138634765079494774681840940496709008063658200241864107847483809624395010020960572646849598253792073462972123619506111739180942067865469803236270138192437939980085704141293399831835224228489505350525373905033805556458373548688372044056085251012402382939119631331592632644282582674595273494415104684058732903649871550776052866200441889465526543507859435554310832325010479308945913948624821910061357649962461120817328744630518565077533797032933516232077138583902361553863417698518868409717879133218974413126016557598477504902125656611456934203067540108292518420803689102000628231865089076863686000756968783418375099666585942447373409469818943981140913152227170490369822962744353028011946014021614414308946431098347855025058202237648780130791827754980420507754545085548469254350210698257246537446679628894274152780851196035600111505420498315760863470926743100675880569536775072020542486416942331484125246818587255786280552294334443925746775796051640356923861681419655960192524400591815514263331060316065092909696012204827184157343571652245855791367436708940892029378190117587548741396587495716565697721023261478219131290437317544504590394717855456829131780807821790342622260068276704661496030941376050473513893958031241236416236974412558828392077452245501141867184531752765794640600352752563074044378551496630551307820336646109861401796943923051752922322284682119470224306625039013994961086157996907917485219632384964789937457130505977168731517818093141028827089399063025948539287127976023996910423192213701157371055226626052024746197871653088544696732056507400314676293902825376452258263438633114507660883507905474736214309620777279967266219176388965230651278102024877745705960323316798435571533395855241540360143898379076131577343034420609518325759043867274501352420008338238312015645659730932543083841890672183245247448148882056014295514231057174164845097300318355457785217644666178181418435645745186411259644429708583691857065958281991684309861989624784895703582063104223952351887619053186788181785257186937151566353089851573073223170839746222370506223903991775133166149462285819892826339890420545763618528202511555977964564383732524280609104776901701727351589138710547746937782068611049071219469033151458349888320855383570027763428706969422080070120566718792393628608486459409515988938931605158058912373107453874810565856057079814945115685117487067702279777536079113702297367592485941334901847086596307400552121315759447716222423529484276097680134809946611865756818322472787287104835681555895906072686228414051618890239106012173835063862577702445594020356827002298052704269378111007331184593256817587550825766872892796170489253473309466663577208896909517276047248810610048100875777656583189905180595613991526801244734535403307081038436901033699701252069336480141522316109001893259455418751888033078421444716768688926830026133159983148238319189386270312588696179264511705366185817953884333342062172006599708173847472904325276524233676055625546225194093793957443874688165962470669995826566634250218920383217906236502298715338675941252469958554393794005452934770794188445070495430021942810625267706207056300271384707739784765142639783600989684117395493153384984452721934324043368074862149333240752615368349212047353719585209679355644067855551332753534790264785030440690933806138773306477503818900209207083969504758802946966751793489018453795534420147133104129516912553853834476968634502982805758660717106144207691613186522991383592825735193583663957457377632990096057048674097116385680354019787388278537273525155263771632382147305536270108373417642450589416916256942106564081044337875646448514011470579586052342873072019539968626898697901476534715518063355719736894759782476684505737570856364544552146727638886658860352128673503616730134567842100311429364615062198749661283145355607665933538779124588363069827839059371191493675396801457366478536646923678968435471445323642825753728942233332862618896959860369010647036774692497971724600162260891336641699643956717817034161817066468662366005713368363544807209394699219475301198382636371223163593868962724162094414204994514944289845092937584091890382514924050340089420365422618919710417402338499585005214818604995805648024315548503257151868847735135138548672289716200743166419494094089005201589666861720010718824093545482482024260336243216033819564249548749958249899568155132538639557632844362088780134556931753290709158255084700551538801902810457516343403604275005847384964080934548114022632598554815076983379860763657431926892275653792168428501421497088219491760703719422386403473711571674975520335632024835157897172737773421476150759494191326936673374281913539208236550949805816084578302718404082196932390502905660952320101099963147742863227899642751108232548222758522126727745803625344431366957542864546986241501115871679907759889382501016115445499639605968436554776431360418869833522763967280554687502454917805342712243958298438040977949937291903508942951049963254850885646178085104287651642576522963869441899124265680600344389549346355851148413365012433815865062779019851441104982378284390164113077376091815145765086337508230307925213906036933434800521981696016173291478097803046780190300586321445584974523123773976773817107303368897582807602906737330240695104476550727298006931944119608611969944204146059077929972392479370502402355556445875876733621709041515586897940178351977505395406531269977899424868987416494969684583228784383587437287843872385587835511312452252312798099055953628760248237813492242723351885391598334358208788447988772315681819134184899357991952113450535536568961842448694676613997823805785700554863470002316095500259182903669349671234065675430786889164188364093201439622175171484520054244062116861810410954317832649945671219929669109203372960930165602148055037612140731991143735552845771166418477903496874058040996382383999781413112587504774213973376627690090571149765278599892453839766139899245211994030247842307289018082516696289611726173270379470921289395823179569961826750944232259071287545309052716595330690978240048798124945292536676643534769924426102963186612642119316138751873454182793469683746592093265723740743504488484130305757921585458915474658828985039560046981943959390216973896855704587172973391602845464574621879139372832060596407567220355756997109126479880006922912929049918354105833483696042631075422827822583437408686458880098439403861395531299808937033634542608231337760445798314859248736710464522422505041515489331255754737172234814379590691332989224251855943923468062905408679435820426973832915019886040172959145982475665149221503889358172115135750116841323909185811380836865578045623847067265945926666271954034332258457818204382676810157741964178388494706782712255498761590950601607493741532757131770284699462266053959964410817041770634375268129831034818545963935483523914717398504486260420984696545045627839931286363368143708820654817290327490299367088982984276254562889171803802066972059185245220385559203272549517582188155333909353225975247288015869733173280678743597399786242699278740770792135684522973743458332865832259956244752392825121850121497025012746955441830539283861111795934050485128541803756950364445711323446077916841133423026228744993171879105027061671762578732461694710668621981778181682882362253379142092531320040841553841439423268015633321044003366103328926341181146227306523503548441830287289803797569588736192932824005925606496040555816007177945372600252078797714354471671446713106848720593481124986476294125422577175889869252481724051458259937794013131666670175708926337536419400747686301500037310615858164803074191799768776148348447108197917635287896701400488907979844258750451823046609447157975602739371522843216000234051159292285602064696471047627757911392574826367639728598399255462996900576187512084500569660254412891453140285819148262534284806539298434498790577077550549431585076429984675975421253159593513865828711438074664078892256267624095920853239933851133953687947371751135614520337382217715400308955047427065938749802542806022630640233658672710456541593435315158659247065806243552941147023438248145062838957248734591919997095220345399511842429061622545106957308358867704190949995869045695322209844585476021171595065561139465077810923355877923198211721011337048884159773585001566186915497110866410002646171107511371178358729680432201180253580135599447172038473659786652767913573302935403007794092824803111047985020241481140229284082030683340010410692531111896580438333910193529612995824261277893897711890154148974017991684672605239657489660753180298232874703099179257626417559842091752240875986005380497034128098241094906557933319268043510092583913773967718020750715525619592573651744829338682029958259397743859706981051860377875872894387783088381095447582341312745473931859140961132422429194292008843633843167824284703863999606514812294403134305193324953538301969935643152236481852855911061209845312877737660728229546758852536027892732484735236196621187960069732350431707705683401074465431309314490948193252668217638057629527608560363261628279841471555016580536604079023886136038446274689503859122467908966638383426441050688106076326389091517232789071516888685965852201709751312473247297844236092924160330061128188867662733919737852722586270564005333402375248329847191595905730376015434255746078128210061934846915557261382196354238759670786424242113005757449363340477406043930007773436560001348871808488919558249182942436873426227295680465815321629137762727097118403088692347997133913989713190564002246840438110849483277544161509871688016716221507838260993234899140343726110080521617782681467378279604159787862091364681893888676865830041766812990796706607549580433480197335078628346532462918621180010649294332716573248481526588179209566020118815458407156996213792648037447676907175582710787700646834183808132984404059971001273330641094369644713333805655781688588431124979304477237556632487378868869628101184235885898634961853167950539686021045484044516635273097738656069300307156487056636546764452556831914393949921032777662523866656324252879324220567722307378385693777690829940310568535632156510740055638647014194380734196194497493619710913266324494906770771086756036507851753369710411087736743696985459829044803239236437820019285253119603486866569858730614696991350640676051790124237446174926158110136329147688796619474641079549097132333339523372226502118496047631431991999806441908388809608391802193992182658868087416152314834944141006774204179229212683774604693581051329228546810811334681631037402109349886751012596319177720135586966938753763943576715947509150682368018746328767486473186484768659323430485205469607662171352156878334239237918614416516715936137478439233504930345650285427295553691107445462422246829633582998133558397720108259810386276728856598275841431116923075084745974529231974367681453609798733889546152572386992681761097969331426991592452328712655990373013249863752592875640112215187201130910845353002567255557123378035198574766584306320012471099932093029844443319569293136986294878401575393031007647551969925222781691128852304662754237758529230526943051685091154734434492220170441224371993805292331876646520172237669681098446841408069029047091238863395276512823670878438184734865412182868293491018244096323551339737535293220716576582770388186720680867896445363456985718507965591141320584771249336148314835665289870609477565190504355599304283599843005478229875456589330132522461296092470527259655301783747173113101787902554926301479805089577370169255018654429454107630634277990141829494848993367865156965723424276166921371715075474187591802745996686687406664249485248945508750119593833914097398061769972702239419817524188044420814675690548453798505430293896134973194090661264538624961103559994797634712536196246802803359086738158953556778606544896618670238827830165584218967144777783554718079154177655070586841615960565119741185514405203970551281531398899714719292626401518863771261888738648195959003138170601641704509142535861926611339714038233448211858693928764008311124011446983031137128482147087862066050914548668583518090780684828676189498853969836852530726512405244832673998695534987269776576681555807764810826545906795136150041776229389804155666594507229154664287003806214039928164934400773089947795410058418065322850010684116836299074835445672893514655363270760182031194567687894110298417253582208399880417291114281900567874314140708900742348248077634138176398995960553752407455618202523934099827561182122934761093812941239013156689391477120528839444293415449136507941372695854943075200920715371658488044907039078911827350444147692851645563490907393050718568033448904452727987655845257950943464446093806172984400771566883321172383111552323087948942807121038542693396270388284587656269867717496525614299400964258756106772579969061766507038592120868373052740082817672860880289990358271236468252466347356751327051043549317496304810258257248765102509419062889286638061014268393459439070425799147385507998391933440717573304079834231054411440009048051553551705273119671446897740628770201417556258327305676920593659654469957697024877337867911078794750171549454263060118100383396022810805569752543885286692844432858125319210846917174271507435592611896016846094045215728809388268294022988890543401732373757026469586505646835924345144033715439508362485907260886230894666313423690795187915521503812977133061867478279298006187074255252123189207175744500065543261089745423245269636844342292208823886263132838316162721388821991004836803831214148212070338412136962540119498143554359177822992432312498960139434909049866465528799102250347913443730152672342265686094275399081273066560310357128389773506143811429971618510184140057996112324602215026027413574955851709964487070661822582703559824716658532585641766573093584460598188878421607979916963117955763596523607987274042867721672973921807328569233362410554680876055998712926645589005765521001732274471767537686503602300469347213946004563513237630147165162765957864603772038364359190888256138741609043752812270007674856665688966331217011233801846803035548673201518770466786230418043917891737542397146269318264511659693806045608925879852353537097981060415243250826121603798382891970056780844405298304089988424285801809801102504041002892043872468340615191022083924180244840561991025122384817143444497828698202538311375498193541005608345209198296483048302915563643449057407655602871001343173711297684062751848389765047322324582476428065997675643083335460191717339397436813653977856714172170515490318130132250891455192965734774025497440247039926235033772258924593702775176615674215381817349502469192692061723689357949210713663664975107106660297867358448984536201442141801823762602448959693053026565769439329222965934797419538305780872316018866450794257406433370089839885283763117816581149798048151917939052553929839478542966060448460270071596877487013698232259752151100034895883361478643444008215369372276957136473080712684568581960967935942628595629585289775292168588668061615183292429343529165997144565702053259096403321176088173152496184412536781863065713906908898918021505466396791507627611435470757042903439668232569946067089968388098044629780338036877821098496733015879104616220320311220639827999780027950783412893330037739362524872760769914914242638175408055089014830366042547630025134585659272466781217543979925212590158838948206640072747774306847530120305752595357913964507210784586448464346790361914834565203778495412172639815511058337770896010064843619979094868515051202785938474669167498585391661997455807796033523559370014233998645492710976623371618417607728026236289049665338195763132863090215207809457034801315838034478118478954614551323048649075532127676508116925052985833355077432018231065334384563432745850491409169775849108546355333926324333210347413558239295306524532464852594040080646673249357956307415076011248927769556530649983174419604316383992527975355892791786171873812227777183152437012948095394069251481433548222771924764051300754446283608860343126638717643256523470377619383092667502892785189126559285075091303704109022640641589484032997404276094887236214753876461538104077182558130128308602585058788533465696677021146180941389146618831762961993713071491034698684624453588080773822199833698600862615271358407990778204567423556992600856047696021198593746684587286292646957210325221411525848045985570983420792044723541157958382141965852668705950175492916779581375741017451004723831130075972078554953385134764141919093183174137650455565497879272273445047624728389323497567616175502209650910061138098536927636095327000184209247055031143502298257503771150367794693083953118006781709713646095058093607873602155842977407136189076487454475600655927971545876582401303278939418507865531703688413208395798008303196674995834456816681528580725427275386401223500469154207793882177952794097860364390216122343659865122261804904065082537219158912760020768681361201390780629222880510299284053384429138855412768002257425314819900733651146476049014599199914945155844258124834127180350227961764141676882264537358032323669680042281315166901593089492194051999407909940368810061423188777247593744432473532656105339094556108990256904165082148158404714772898104780894289188737174346420779908784236210762116103085999446327274519519560284065758882192804620199685813801245951539381207240483345557465562595888039814767821595307556097689316021230536323889951714434698175369539405414834352700283096936128171025155912740592535119441052478748988285519330785619566076616831387511319151627785583290640460131616173512449186049557433166423689998159674480109492272558701018855863588444643923379736644906133820519984869910316764750699028696939141181068049103018459276653022865656830779112615279215632380138912735220439882883689928402490142995859697165350723053650493288125000389917289248317055583113408453090900253621886475166384476758787402820741936385718872822813899135079531237347192860298780105369414773592870695990926883440025981366458934481888903672539640470486757747413854237704327533641792416644428075797758261969996258461686551865668304715036866535453689145457757714466103025709422452091105785317679290640196051127616392564910536017060698843057733243487537782950447950533993608292983807351848309069771757333741200099448728230973702053336147763349139744573257026494651400474822419363565985553737113734582214813769343327665042174037199921666715229410216679836610227962184807593756238082605397757676242017654287658563110401711865309889557582810984407916118808352424851018969512616946888853502858376820565858018385260439616704479866160587337792330832027693070907641551700349793029299825411183423510033773755140169977666157656138947013816655579557782324622466107512904029084781086112246308251549740298655206297827273753943661359542779678762445833414258718668852155441507726533501366675395237741373428900176646952821771484199939048160077211497784539098936721558531304376949120947562486091793369450745772328097113187519077383631407736289343156503079777656851550247580316978699087153056487362612472878390164258186063248086813299511317385605279247215213242056942548376872684588040799744963940190211605237882979907826563694811948000195830481846132109584226207056322808445131928861592737622495241958937859765654217750038578559960101268911108735308641870445024348349015740168015883840058935140771705355717293976402214579747836145261056347950296808176514910669795959711659653040288678053728094272959975092397076763541650200863644645909044276612044677130168899196274879145416925748652933908054065802916821871992598277253824209231462347581214280150054142426093685874013656205001987981650359796224715923893680618304775959373357693450919342026321850995411746792588180855303999702638525007005747181562251986330872574574859611556937627033879759782694009811557222993297887776791010166193770826767590043379804151160298443091863781410270545710519848636168989700762719111305560687170637314793495890364551849236910385189095704358264145632865253938788364350901831078433380127984039839103122576270990982587677554094647294566804285030170976424073746853664427479916707242505446130708287145471164532705467560560703829594805141718978807921654260442473042954642310402044449298066206214199909619000720732517907473784898837409097700776682550574256124137163563231051923417649638059753177746730038665020310515403206718165071889289472359662495212633734666614338720250111535512888541358182110374524858681666398704893662898807318503263836417311543941808524035950050967272555390980149438498086005320986902940502244346541033414990053196322692860159912002519486191970258816270228092079873183426490110103472287684986405744992750485208868877060920055300950880058653692288019532746019886546518051102805314722917301293584003968604787176678276680887083551628160615468548706570786721920423694923988151385734013963242281007435585234269340243017197537925182207410521406328788472411266381440365188627119351033668306671067586360440715896974564640465944183299077946502275250630986181899656096332041297916851983754009718414968505055440675000678964692044549298230758757885580516402010321136421741127007913497930158327091939517245166107659548465602336118436210392818684755624291819932092120339388014197565229693152274844682872747977457396366727790712556062699286235866746909253775384806779082112713545201343037745046008134122354076816586126465381742061349519413850058567999536481240979371347908314443162720617603233759332917887667180762941779753393888022471973387161354137014462527997339598952232894868455089547971012577871975651479206040505871222054111402723092274075288083901853377175433682909043875961519840926988762080761609195706180985718595295508908338471249472101978144852589301342296411447044502667401304701716756196925533406789766247560203109561152692242007966593745318135358857936800969353877329684717086038252264202286945586168136863673971730721740920477906328326437544353512334700066438521414490344578333169160595938724846788948342542415693258953498411057527190523422882929229518131718027135516880224982509104382468545699822889176908686299656377413389958905783653077797860805118085956575434850884524919568895914587905088856991988289868512636367598642212892992954143285431910239024974642923598199154023556357920813588992935601135279626996494718727382742527098621657180582258173876857396514050882462432095659299538634141352164240432229715226887257294438937410273160111686451061311899432535840498632652758745374049748367171677176626798534135318851087555777783542751283625932846712255003022412444076705732193560022906851626275115219103351256027029743591559619109859455934860099346586132883150781322977856939980054789081005133072143650505987752091893388993595129996975231988973240379420441810909300735655882053349284567811433432039660172374655724815078463302362658549321884947856769296060045804425031775712652181865920929154121104293962881855158689508006079432122052496198164002073601087415211809962027973305050308275623605778927396443214376025564978613152593669089555360274619640875925836354897065669492159427307731476302369300445997619374750573658219657151616211684918120597305609194830475129837764714854569809064073597390990687859484845013283939214656784588783808449498987410537325229079336225478230889413874501553310761005547891731685767745285785737641695338439348113814999113597568445913526095552086323322464338691689904239589490917101152384405035580753191940636088761594317744482432666796127268655368994926167912038298771574740098438795475559523692111149897555506888458357633315869685440057033756244815890781847721191698383351413688376096909117718692191043603213210022228807491170540436460627622367698625781272090550137034404919191284783347969982191680255646297516026831220356904944477298748956347325916429972373674203979631810626020706076064568742022007418963906526940007465600759630938204289358750582425602975021580751488337277909584045516742908169064512921539863790697123080996807521480218142010454125883365730747403022169018149280726046202879726295034510476780138717495298646663940353449272105010171191499879637149576648626238705014090172383112545453740631529013774195885799422266401896408024723029206130425346643618076778215171345903322988748389561625722842677466118269267172472374451188508158779067069596415516870470929677474412396453725745041369700132869990539530364615183644047857286149999171411690924785395820054935815017200467132447898456592638425029838555835824950407766556154207722023719828169354235556783605033726064428943568466499388916867756246642236319444161233808636067752786217715391046089482804174785618862982845329020059146222879599230744219576145971966005553593435542145925407491069984079300705070317790806574490156795479397168726942822323425369038090653114258413905321990145984452593890072618367706373997730134270636860023959342106010968908628033753270753961373221894252512370521806396906807516575539082765944412421211124091835309815206267797027344727638593612482652236385222614803422346742389210208993184662472762795553154118354444457114439926397187551610462092694567773188877792364361155165943305871372194561705051930715887340552607695045127822425533997358662433810544719951712029548467665291577971781047853154397130996921320366244104444426229318417168193164214029235026408016354918980593271463549115599513269504882436724400174844102438688031072419224033900761030091897490179759042803813289411785739740293286799164260736845991703979598069603988138834055393864503980848274916512888624155484914735044746708221526414566728654365753381017817310858485662050421447287345788941641534441647295657425937998884337187614528626217953847383182104982275469507945525596434517169505134004947526094310137877071898989956424107036983287611102541945887482269471762909468156047074023401241949372683397179395472639698833598882467950738710974195386049532357691795332051657145878114679087611654631398479501630056777566004599601262239285106513426745045848349484889168575835209527945773232684654175922457021720435254273752610362430807726027060234886745787612902863301023631005416174992018504809235963379971338696506718026514555032296208382055100773501578179700200430786429547811182219352315544344340786028377194244116281286670766549674406126587056483890597203179760883884853340538763051334336896462555064260401025632856124225219847981214918134405836389471398217745647906977532394227043512087666000022324141151358519448503617200965590221400618307148929138893215011469098309239795116926978017620295864987360556711420714508972940566160950923266325562864910330635859033568615506359568465487625740501192626138662510199958606584518626604680659998213063001985934878599343674057815568743599513433575044575455177577950044609523765449983648210999098430460901555144288192182265706801865663981758505011444050625867200191204529512130387142754924642103453313314501492285764183310836286296325272347494865463213554454918751340532064936949564630218385432513691676997825198493852933964761703184426274714604610680029747578105292151228757695090801967384952455084080643943739147804555445468362943655401084750431637056523931748305806149928245768249377409867869824545837101883211517988978130857787529359314076050305017808305455294107442778052657096603232294524474189844926671589465162908927345753017906989748093497553525925120192334700782238911090540780971624076468574680714413460808402271953348706974201930683101080649248743161668686288632843418653727521590797662169043274534076578568697612799480191888396496210584768154586388737838320635381419946683969239363877505806529961735339972426620474721476368601444428700925865102665063316416789851726570623854157651651698515953145945026604544552229018918974652142718463197856792526463622772116759475636636328723230568725874482709999583710871718664697887813104906112915779511184085878645203194130143581080715540370202427337444200539288541988301787796439598767315761062828787065976629082948527380905285123673139710333670802342659144191202987000547243417565914700857073298866523470456787408911864333267302252032200019502047583918265132379723842111773554213863706373882801145437554063178691022564463101756005417282523532208473398883233763896406882980423786725117609530573967993681531701678706180374787855175845656468298650213331933938769431819986709769032891696740190870323950322496686258026280086914652921789773854150816266236121843888138553575007064742578977011438096861812139468603337066450057553004571921617870789017605346511453176126476601830029156872468144844067215231572002025799040533357350375009218289577777388728076317841090673031997622511676992991013221104264059435889777829099320371749822079915463109529871072400154249357301718278012304269993314137729134427040153362256523040731299191100538985502604946887600110913926101788928392193393012698315491606177376613049004940194096112436128491248048795926795446479141831564995652694610687550235191808817845604708636142951699800850374677294089341294883388036614010956923200033900403866964393554681291941459766198138040560342957978755435787227462044985059132911791650968737621510396339683349639519965682630827588197681125582715477744222626770409894349702515313548384983927698322740642783338145640867186988643023111870056129877623403430133920104364155773344249296383196130480342966061962748105392961395912944934439690760677310794683257908575301613007419086121806607144646493220969509713922117144556733646122489464360940875197185676829426924654213042312215152163954476081892560400307285903298650432033134083976831114574550991329219208725297250390415188728857486190444535556560348380290143122554189956169553481979077543170815456682126696596783442294161312860196054150852632992865052629053448508342204648441391910562644537446947683783076548400425190264807619122564391033827930409592083118808959977923350044966532570809327531777705855387338850262380981133004616590592268071847422784715612075537251793268346706016837236094058250399792837170867545072478108835983553084732109984735240725005893768123475080499535573768944286686036581204500082139088153179312879985176472422004514179349957621372897580749224252701644520538075422325400894749734310516409123513027979425748827408839518048850001841838928168816326425603018383239075766578442458850362063850537008162314690872898704508015868047836570264325595850142970004286425218044213115257639157496838324351551611382059780703718695094299341244210083517341576026243133626619121694320847108043231193404681743767671171911118342604019457549296262108327658487484061717002530711856527758829459029909686010325587093431516518149322250435454765937951751079469735617655263593510062487497905766668900341745412351132485971754299426109431606391102471642644674226549645864931893547575818696080915276798789065977770353926228662361717750317548155598959997592939192347517867128322780026096296256315364358334664422925873880590416250575807224989552933515062389681768921294872929915279345539239374111802252628213878975451211387789775572156844534247072534808857176824524855536684263617797317122425974149560229941360364307659834349554387592508029307182082026251167994896818788173620406083474030693481464732350803938531406676405606743320539192628204164456093231367680680244033615732973409780838648169210393236956611455843171679165849327064283937752435018872041555160060121500637073807531236165194027566831439095377485314066411912354921831936300685807977482460972826297826046750206680371157908421923522407674994005124489854474831691472753121171447457937232260132929571418925668469843584705848155349016659833574647545574999982438358994915407988855950860426167145420453395060380026806463507071648298053177942514464895725785036585657004051865519737600836156079524186961487227190424252714181589516848793788305398864818122537777230813220196493106111954870692547486436579196880241974286499643871442766374820565326101724063832157068191887767154557044924928515695737095992418595321656508614472478771220495811638358548295690084675611797226823164127835270429230986469026404182372851005031830655905597061987244491825398406684889631318014439474532849754526833679521815680119385326073221171778908285966231416468869341838962164582816117172324263333719427530153418145437843581723037779110977214825337937000536153386417986984512382210995791176844312356183086792824062228731232879351836675524525759883119868657269216893856839131077244903934602308671133699574458278879014972628390593929238266270206507676446088131170715016303656147815021735812587939532121072232200707947768827036644336710221866218453217200636042825163939363804018493977222972951314722413946178040323876413006020575698786257827221840222938762483963123341243063624331414045728692282035429429196229063555171033545367917940658051072291339297789815108429080232098143876870527681027361097938544309822440907097083005324615758986658823366522004901073172497637832965606785005609755095326927597689806111989700201459367182300112303637714224550710550067380194976066005672526178279580215656676312154144077163648718549354988008211444030643853036873431748230803457597878712415861618102142485778361318643136730022624631574541223827643344443042610032120461234348724163487976216162406802334176563112295279218909373283900955444768089320643979757901815110501024251666111523065818158792952358246663955295148296497814629348587128354751673937273618300731801493542794606632096586565647685936886275064884620098004709606223464627374621149075698794719576205695844769922317644224944158785696263415144697642969421134456063588385872165416134389139288203123309280122172849408841957018613992804732515459519844012892043324673538775438371829746132969074976008321047480564943992758282168274742830310758601213479497142515044629300238068952091286100638548206754496268588647169301524979985266611142978785547146925937860427089143977548297500980602503746525044551114675811427218024496056435114684032899675678128710645357561296796874527514955113804663413605310916479386507793289682471258651889349848971550936474626458709457737996920178012797224658199543192204358758755467874693902066579164454058856028951864475080901303853215221588657217795470268652077302043488933043771472581534556506990131755581022768777539406264262762709264156519934564565983956010168265076638942488938713397277857205128781328362215053454102598739283744957848123339868146307120489223514314499518368298550722662100012168704013164037644518678896683872711816583490506642477917597022778333334978008560526256384878941231163291583698309536040621172173262180389697963606964558485779679788849225406089800987199873247783537710971782957339339066654679542364471606186933147253002234325491769481975221828968641224578094741470116525051117262236983807354327055412744743000400022173043058229731092828576442866880628141099620603056278670714929312296710574905034095775420431324774351929830096635518245277006980978457124181556496396577531862879310158760792871454062516381927277097083965583481405773838356522104954369488769598972245809132371001088893306877593101114204245730666679823197742522796261555387625569528229061059749799494701630347525922189637640513163209102422882295972194846536466941271397105736096734519506549602122479828435316681330989754899540355498306435514859799445720297563723674640983856050415897952195728746398290738405167541802449944277586377931892847478675761791380323085233591752680561881390550316634625073875523485015177936460804321496517691526920770775599314170354523111444515238398252094016458082281316569678706891717202262472135404986761956889972354296216166214485132544693968886089741454706165717979973046646745228027483156648182811843096127892892542428741067582516356412656862526260195140493615867773434665777950724684267619338026401137502684628652558527090291587194979043423961878047418653567435790553026891895078723445405338553841632728978979282525988778462443588802611237122525980256965185222284520478658361905084447601946132453519324101541796514957311950193097654911681707113755794545482496962741582613051114526985627141429577689826706005192742673937841073375414027159330964308756997011700822958539731818611129693904598111269155814839721227970428629561249056512780307153496566231106031668459546009780333856257517301774745508872369790921535563390958043298048151673508296705200179587594845640206492366757587793895266454584490936994624440013158341796959537101595704982996916830780501892975654028851229663041544295964686459568301887759765422977527592186378223413425565865548962774707688651982259027442447562713398739606027431881074803857365427457716056348052567236956520379410595396795661167308687032979576580374198274291077853506350466507789750009793670075312757295894961548949864344336208798943254707465177029911134802401859945069110984864211039272914014093324567184791274450592850385060064320036735665446165692832347746017280602345219841419934274573777423236614919923200070005839438538802139831548859326842397886439865282681890964797636812913121444431671664482546630557577283725616787948813890718438496543448378693845446417157733102721945918524095445707016056973290658326455452015001394678256866119182702480505125784099089857317453971154024429177489600717934697909563332240220205556232790899609385809225167570270199057744805458739853317630925497163957347131743151181243449840287460012788779046418755469944939194114003248152024100384609775746795884744245738956869322775797545300635691124798290151980265805116706611153507677198295815920007071747634132676632228266062152814267350150169207076366562959652262983338501066736716798007143654998054463063210374454179859563276635779692465600771643012210752249787606866895135781760685366235068587454417215925006959917421808840974681560277457797687694029370665394687330336767567463759656110347576299870411204499174128075716601192081563636219728468987322835959301949078711892985216629742661805218304424026673537714999203855836784118330331206174957124350255568824217931896933109442467180313290420273249372971581314347868591209386449188787587996319822935054509307564149278078930488002437205464968542668928650603978324184526406823646685164306039460366773012407518092950173446817104495054963985393083676601267435922680016946849739270743083410946405815758367023720507790930284369481890559489794396188564357370186022694709121115623770207389057951675560319401804139748271632634712486681027314694620207503646062691188506440420813539433681073702339622520431692976205093727914215014741324457714280118538909985131574446580101306973562366679615111702065879405870273073877892383312015801436153499846861974596961811221442076874385015891386015532746444553648886344925319547410338560459317176709847061678344418828341374255324807307034526462610400167994642087316179400514015337719684792579133876248481917677701495327342599099146428810346639543024661270537488467145025000378888159363709601844091814696260393853422284405274992053902848149182439831555915667840403173559558506421325233470135746868449162572067295057598495429463982594346308312909866529272920248369367331272124881145753955526610837408388930044218738288781120120970782352795618873701955381080367522116301228761624112696878380790278401260462109537526861407909259245960268241283955263954422986529772011071573538448684638747643714513859209188139786201196580253018318779692437926617286419790262357644422032154299446340598897973624882616146464847454761037365953553500153661544347396903674071084475219138036429063044076280909761388154764169671570567573317503194799279777257860180597066725169336947041925738736700065189207119461252249644359975242197848569099977880150883460896272007279664988283762648485051610326399154478019116726502739679374096865551981959407283250370778382857275463215276292606111845044867975487002945412035348774121661859982480032287374881637963630824145453150653250439480180196996866232027056494430640620356996123562003898371800920289869907847527662090066584050021841157580635256863999065417035098479771525765684944411684984379104862850547416761232193598570437585039305051440769630374397461341540577136730462882985990473191067311006433552984989892371670672340684407708221127968592397878488297726254717782570848006191416010862790332291402258581255888388418565472451703030615201786759574135608998806127139589746003571374867029798631927703664511458456901108590075744992003362957158855462693393021775564025090620318978971772413207550537749845085490948952960858751458286417164888202108160269062779283958212776259552151653336549462602566509150704278027954180382511815285675516987032130245876706757131213890972250273016146370844000006999071572791601159401564827366167521340761903636339716483950559299763640976877829283746413719337085068862383840220025614346864662830237983815639272533672927984368979028569009377789234164743250938419651866412814147641656888347072268973789042320971939428513875138786769725624793073018535632258302754499978466809431546104861892539869394359519968496851787958096125238117165197648453250664896338770611079339476627501587350745461200879849335494200565950314326075016213848610703917574049971395374008002389922413448463360563439627440288094860279075512841335087485522843346676583047872959604553856596727169931459717768743279443585126285185695412984662930914105210234776517444216915415397400424746758127606971923121059759026764556725249062095893188659170424004478924861156392818021874020554459706164205246212400685449696249070581197720520548389454426326528319516166472212226291341940978402089680903320287374393780350422511863767642862239659551691028127734176471064407885320285573278894525037669225751660994084233190518453868234876028168626959923826969809232800062890428383304236913928825080352814472621158283662739919877789518928254541058722871236380144584677507221690918960007779475361144725880675480701696444735590880923865506745634589440443666389068079646762561707570058637802166461281017990779539969644514386490388613144616400105693264335705056191311224339860840851507757754973499242731615773099136580628630663843226611503379529262450717944878946165757727243591951152014667317409511954262392191356513647041330471593389320796946078735050723661418666673304482928900628995682157379634482918925984999971172443588971468269631420926669079110529285576614443652907988409870199800879059358016234961692156183951035085941944803527322720549523595943008607750468781628070237543218945381558624142229052185064784560489303035254146967320235076054868963955298919511147684303498631022870517197036922256883201580837378321006436364953321672735259985228155518565098353161992640858203575611630886611947100155846587440601131615609112452072188151849541644264986526203810925286017659257637304424796685739609046963939503584003660293649872295900479045893703467748977020530987115257137364850842587612456963432144636258328226766232625418271194142952230046581216709164757715352185221067917509371031164580136994756659496972290270261738104920559140897447897064024979450603070543762985311603050399247602789661156141945527902487270183270230455069844819540172919030124193465634138002558032513773480939836919543636831991057431318459085143045470783436908033644023112258141606624204115363307669553180550819926232733889110092409603075435919920573449718603997877713713342504867163984007706313764016602681614705352342118281141385166304414780962687945997348263470865608240272935688353540607656418747408816031771709813881903572903766613101504565215643416188030634415461596960431973752461419029722319822641414546102515460059208846702256823258155122773856636612393112681321737732571478638710821818757336060546235595287784155492939871452210892547560279097112929586363205869396261442751064297919988203889035294469432322190272915491569496038729838019228493512660667411742093456178322835435983003541464625749136988637676934711348754427223820261221052818126212028934544862054796970803558536910226437649221166337196482625185426864219624349347910692230655220347463596457099584255351400198054129610387062107264706052900706512736697772915155173553756136262195964256794079776246278523472801373717889578738060604299500054778881465122325443291678077072614091727417800202848320583759476464832352784812357592199620663659199776184773324429629660986736184714340314737345290030209690071604001140100051889532843760895580491606105419608598920169741752864671050510844100729990750509985873973782539095546341407791017445840829580354392854001095367780183698419445875121263186072843971898147683326088321020379512171204462374767809032609712268545992041556513399655565152634874532430375816360529628633281528455567700781898977976751317073711839008435152747587884228173068195592473074861031735592528178811928682207860903434100206988796408096137154151263389521858561052342415729340178217266984093864639715237655866106638894665216862063364157179487387411481342092274001743852860593637162858116427482319794353328154925379633960102986157164114575035296013965643865854605801362706984068307836419125608251986181548462698408457525195410161449111526004384433881307256311703967597037023229710398322710728568334110555675792695711193222490730586400433666947577280230233139722377343625744833364743589250843677694060382909032290905543135647264675555610188718057259248893264250622933686263507333343058348006153114489010108939883332765194830719640517119963541926728249435790687071620496479973941259725547667460528222490756158679317172919005573651136272282436704312919757855477736687258030352896572161453580663409521912832680405050452505814481945384881613406515183225680231194643364840307432715262828289381415895034740930089622491714372854280711690157326406686953777353628265216206823877898358221282311245481517167935162869020390055628341115691209518555507367387356088791883592437382399635019184926028563434684789334353075522925298598167233952005369793692810301712375115016845922176837593163010095121271217516468018878525019805440911650732890372237739826828936109186016906520925780745503461449512724093642047866528824994003463549959314063165249206715418460732139871093485510998845061341725003910197509613279691125744466347705212027472806664438442145515126197807113349208448048523213685759647439358166281094032082233736566064699028600136914519853446041095462605367831509513148022817750032373033335284514028471345936147361317990780177086349671263571670998370693040807856067348013478554432270963681157117657937533794646227929812478531083236247844251581767977718015259158117203645337176878237634432996764191729262595696183942014302614542055666667838828456850478191869618951713544189257699851832056712183734361317175858020172779961086420741258112217604565761852822626553752380093436980924607923464026729446731318602072672476420404560745518907279091542226935404616896478551061225610913622120456813240188901280216378665193926780377098002555287864044269674935468447466314650146994882172795861368809813642897578544079782036487878563867388597769226239507762664932432554840692393280587203369425863507524695400149589655536940432198903117040966762572141002946661514466954098842963863534149814434387697683493288940155054436937325387170690408178655004252239673606763181538646036220012799351358693735710115469783969405736097712161876312906899964583810643835965339163847756164993501624340753175134997378338188289744819801185510791473934839432300544230221355675003352243737754723932137367860268954987863560706219145152199183943213674423728972938162281516696578875655610237707940692101923323270614454113501690814634369814780037973992781810765370574429470872826246317657113173633448095779993924372618290739410891048081924829261601100739068082853063668697090828498712997029932031907021785934268281560711803120507996935366302822575426766487939760655401429578102424096943105117141479603393886309723992429890271294922358116903665184594578503429189966094096696322570047771046958324447680439855378987544450999104364531186220579188157964104628999812994625619113340008834091825795889043073611631305673986340221651979479476758932405154345766211998891388597272358119412827636691868204792506070640500218070240688017340268540339261291484459057350254345031385371052424274517257731839120350506520329932218258713619886841257414761924505477005281447336182715489119100375061168148618219559866348701718196159462946604693134515344716954287030178019479829218660435142534869667992459561794887398316352989365715437796908281304627413050304179572876274379334834265271756640332212749773672032176901582469253025539176071850255629711580941422964363663895299275061541671573862386590696360864912359089406102550062654322953391972383197615499067824412038407253324889344465128353787875666794640655837855012021874617184362806406050402976497321614525851786360866970488422936247986601475823671107596881022199695049886402585364800505700690071129652354240914446801954225771778838388760008229403575349522564764879558314880059309902808051555099728929083179949802917617772834745285470786245457582283204509459235945753679363707750802622336994253262751308150443466809101020474145942511012903439740901603062666198315148947049472822955428666599394233341846385636966803936645699669054886948990591108977505372943180050244082693662279237485338755463559573023621046211960710253457149618894925230229410417187097389730457530981061144387451404663397447115065339691457221974826487071349565975266377176899361896303063334283868024377995123754510584328637509720589644079722711195711878630548731957922211609035526544456092782412885476282148125466862196415514583189303203262648793885154633730601322903530835631392274018339462333692358159437064508334021528423604071173877408173814477164569734184447843744151000928936063054216772137641496383874098122724212455498709301161336521615638044262089307961612582540104036026868176858950831517561082948364071844772314660973038077915913593456270004906449698461395903842622303524568922125287900263360608917726864478811539988690907901606917981085673330614290880789517206729740632847759519019069213284739959490748437403392823570480308196927914469373154471527049055049301580799864229522919927371450347272708419793824480246095398281853654531745633081737414234979024598210995055035407130159073347457310186227517541947964973515501314379629780903418417076067761648922831144135627468160993167701949270166760249673191051122997014099907932150000070802039995603583734090109735401386853464900906305576342461867357294084223557663763822388503772508466849532544819026422780463111739007104758472810712474628471449258861218331378487059070888871616473488707000413517048389571634686553406803085007735893512342392526281307070037568755907813631018848129634086618009624179804493566757572917785690554572381558559278130973730651893648917449130604387028276967108569292766113516249937901393790370013118923262312112817584151603450026974257559099515714670687358668491403528758268367276759616883385116109870588410645932088157529047749429671716176814567837986697723086368490310605733809162067653563289686929529853283609601885964757177464220259280596095032497473804724870784500836282775086951030013023949699511402438269156073259969028112459085184058000750435441910890050451895582266206129370587647311274383233526709818281433830953345548142415017101475904140145574775735935277600785388469396260581791584403651200342922347696817039614639166495017014313012228704301701594742777190555672159491298304234400330363347500588622961881037232616821439214933354267016145130230323863908276165577712437731122112523581639200577900606795301676055696910570220244426634759302731031514010643198652898079237662340994150465312915804240561543898236294207768553512700719879831788185532520809170958199442251101138227856636454604749203133686376653633267678132425997765527545829934436320508163794982905465137200514957043091615364193382782359057079025831849690683021661508811432105195287061173876092919755688477508993460095427192957049585061690011176179364056802817456434090117923121549553096944308108901734132142438932617003831082998741054536225845402658020691724294778833142784381437952886692400254458778533697499683947036457856540028217245757364936300850253769184186947423565353510910498326545389048648590839990764746782591806435641695010984807259347606043388713838972233729365724473854787115703879649195790220094420241131377714725478584939266622352927953356202121884343583084300294248021882648273875237527470269333638733139540406386242938679023252839784789227685534833136641657247334750484797271016770443613073353557686035409802071907643016162409982940670742163165477762075345844386968772647691164953817815483915717503654995477375534658596596152621700083401199964495918946805588111868971858953211674704675142317346821827638466949271227636917728960531152401382076257833529200984031924510602427236190450989508622754494481974761446443033536003913990111163457734272475647819608837463209786219517339095867391552506992775327528428151112115454231462611576339438202083504870199302478918904095654145772141133599923301361202350022137870832664998332810698083198526839739022989263719724849178741007329490984617140025178978159542379003461151742315138831468347323247010984553669733839251674352788292242143672125101383198857271993989468209892077313337157406179893734489759830714179511916096903767699548291447718262999428740659406979045335394227417916019844207501146194116258097571036887180340714932643342284350758552921917808367850486336081017785347180256766126392264974678076579395973803322241968998213296661705620152253380798284282058294850592395866199696873293731378081656076617180453390516272826308530605490290172487187297177293725148788435929248209201628352790856449053957283148116367466357997099516346379964925361159433640642408783958012776194452107181378469795825791054835077596049866289910359094252758405912018201939529263625336920095831304097808974180904700532519083407775231184724560165274794318800623520086349504953717788824690563137027965943801237651742831619519846015944255115644604897816742906129875032992015210918389885979077194862642315344807896971254830831013300691564871430104354989949774011758764994473516360908310662587939743595204081871145327622332447144292610434933300389091515389377611528130807587004787673018060639319094428378776509750524045097300819359767811462514044527665868708653528743092142375420256778592911221042566867163200511294635492681223546387907685171687537196499845330545432649890216582139090831789402418313373474523324223104668292469908139832578090591411444664143426528438917986243937588394742007991888092544109684480847075988381165202118147329683025070702861163366831446278624161578027317686925525585347359945401427326285510165148719922851969443490618750030964448880363556875638626868839594917921478128237541394503058072144803435872663493934006351308682499545819953549722722740430458136278423554080210470009719685564766682580554261561506906882549334738552363062748673193316980046019266788989497672515872269030072084130202799488734413943742594003536946586340182337653363026442580436212580183498901574203980947404840626930622251932645471704907697490874886523683833839226008790485091787899260109027607537431488045282978335063691996086365014835758140504561927372671194923029308051608827240596045040376912945019869603702026440263470760739551390904210020202388287979392215030180978996714830123294571210643750521134410569083494537869760032259981593861776861165785012764097314319131026149293842233082952594450520995807432422044115998902914792009219126573665804179640232121013288005154832798624142645049976853543531543463963983129567836691970588224284593828241815405145370327201043722480300784203544852369478675807537274250166250342843115595651044177964003240608515529639488386036967712465359521210958183742716911023536957026660131211303121933000859253812393182525692061937854469470297144571236606153304088820647451295105779755771643952052943235062797534698891540862842299223624403645774172794243448058506382332890601993493867888571053059797615910446715119270458589841607119557783691876384374737134309372850324424423428947877756965911668037358728039195794804147773356011625160512524351776127397782938167831222158719665582921681640073223228302563471457840533844908396369639219058337561273400593838176577011702993240028340620521156901957390256535029916809944011197992011438738056304669394265153755113213917307364325771794919296491908510868219562358486772201473566821309404482276500270518857902141027839294346542000224458043588074634277046971441002421030337410192611489526884928919662478428918874964968592306002991777268548302757128006132588848093506320769577929939824966443861042558132562057474617258111553314859649117995452509996210756978850145454316915927081627907746368393871382403392022576661045916477194582786303959342836043871105558627765880417559145481682783992546349357290777130337591505853262314578850649618377430193467104587438060635379848331633389143325838198188076272607202263719045746818095492324710975149443610793287147374579290901691970560255553666911397678317927735014473721955798875498477572425781407365765255493053705023891945546307290848935036209587623098004833315110084211686904179494471741819767062906438185178955733674146739006025540090984950194578721405187376964123163259165365745798624251155426295380616087647096985401912650229741988479695193941073359787391051641309678503812115325505845585643794191579917778806050308805664363376223836051812739610463476909483036649956230596888214472674317832504333851901271976331172933361774514154063450117823285734457636952781029745923748488060175568828954268848030306983712846196328181927773425673462809642400947756832225999201947719757555936377972296290490753956382488611811838065458060178981743685805573110419643678199716833270837586903158078017048754461727012655077778027314106529701472119545095383114166748078227122703569858452972357591564599422014917528595454670361080883593548319815572604550170288038982599430157355540587231679737558551918009596645440610842794465338255617149108214580411785180395541550908221106804307802851123577160620526556083016828801763632856568214332268437655924350401216895655947860936725413484215290568099287769710636023478491397757731315063734799325276615988655596241591009617372267385352895039207459123640768463890797666488202429528966817981727694616289908349728111458729610215845831794557689552869692089953754844814966636899895366704178839990832407045033039068855244767301056084371452783783048978510383430833152792971118814696809958156985323494817006661152378309653239849140615076709270954885580032024413760720981584365398588618525472247771966566029347737999902042195927059436898687334745151912380206423674959575230926241154972360135191413195782464171951318186675397432461066642316914877366733939720181358498967003662431271954825090779879001171778656282742140057172828804739655172863900596876437980385701039475294092137017773486936017965011778261178991031624724727463611349472093360033108254987867726243638610497850773045910331283188923468246964905041167267978576551309066586662982842085169855659769940513978961419012365118091662741081109618054124125515570801936897447959087743555082539812372570867680663142649053657157863643546991089907939114096483041848810646215947299803442898462283793195591257923112858409645032182662673234824119324634958950802697415640573637327164751945117641705774617991811572239630527370002268385717016615363071193067518473355960960621211161474582382607878257293993897566303630857870596221818259854559384551875106578745245820789529533257770892985091178848312744847452223472700396568092421368491703265127491510983465775875075824531673996365314592754408597928086564631638814038022165011909254085409519567376989666995239812118790562364934149622440543988880730477954781876857729267111051612872018100520172177957231543174084723365758508260250736146912981135436288412539485632277833283346081696914899706662893702713816065653048396122970726928821553803279554308139955395402348068743643838072706314741359936652947218076913521371791277884701514157237723038352797569327225440698848071813889332109267008933522274401231851842681826870344669669841819959807517902742025283478766196079032214290379654270653784674068452917712720548227773028932833818338594234693683033928683106261164181147944481278523385826798599064940513577014109242594167578970466425795929291798213605484595478927187192115509250388121796462739084462795617665272486514610903722392193789058315724447399718603529801853010726137406031865569385233831023358800395106638592171180325037351930887589289390063731357224736051290873510763950576009798636632862651431106277000811612120146750520238577970636505867210572549790908288020315210195512311257245777811259512850833818884558863307349159562872884871190458844120054336646900409645837531547410707157966244920101283007031487348378787025205064883580700883844920159756027590162071247323806167575286159895272916115039245830107502991254793498901279860817721473777433043598411928979585516391369174314481953049741352675242035959482187124048286473945856870352656894858715994442150473278930420516623201368934921460728415643403593599511317927854720489082545557902671730765195722252754049244335249187129426627208417219689520483403311668801429076812100187094060520021523946065926614531700309906166901106041869286846187564731151026925568762324789817714117299782485258582367227142481531622482647772967640305520820134840265582975268732840475347904719141989141423376212601740898736076993732269179346167762436362159260475364721932993944835356025009546223183586435522949332760585088766535907134029922178496780729418949957821908632022366475538972142899243481100672417220421989560354116602235295473455021018941484699842767563216085952487718724944568158330074925662526080162077142210861732705900514545344931748261427907636822988514420654609905163802026634748360826805592096892577581623662337236861636654919797773918870520377401992766477290008248370744147331200753548843755670306332995710776173644570279190713559717993342016440709618298213751118747059329731110387764413024150792756810647955666066517626846981234352419481754775099052838926055267977903108314101020077188709098074710824075170256831161299059852596862460071320109420198516582318591909112061485680626370650322821455301040902887005377915184736950198686895261606454452356973440996743062904324092821926978191723506630683296820341666754106355650650400128052913148657172102417576884657211124224045689041532103471790407788396396625029483784453339502411696538693907108470190244609996959996902068355481971177910460014635753454577871141145894041956829155610653866980175491613113957289200585277335303467691614433234038140434395969048576636047544845839622156075813942887565397388688362616739820169637468568706465876591954762601798370766968103539142854424562070698903077635307728790044474422445220379658857370583404729778542984072928668371380891324173815733637191223594258195275975885159395081584979883436677304118905631389645350466633419904060139669934347712138369673992025319088905008152433196783097430316932942790506620682183644043771288708912243073487944414657163487364935996772289181048930372042237765683593013764095531604049338485559020188585387868847068042883687905435897138314038074502438405404565492306093502419801378436513242415851651003036563529998725732424911611896121275583266949081247528326527037226355567724497608449768237482540307002632948254506099704437262932367112218305595252128042342328493964017147339843479850532854437573796772976632090549275304861195614596891259400086831952868597933509300335585683304293914060682232538942280415195052009446346190027009838724063956721673924398016475051822990717746125703435534184877324289100478012206263338235979669960876020350751683271221869639970728785306100659255411862470300548725455511456193494789209583309880289550043485426512667749401833177135529373911571768228607472270256208122659033881677307914670571096417120247520499981498824138541805243523383295547204487129705906254884651990511861384557914496424203587099767229708240240980995070857486767449575777039250651023625565940972869327950985288360461512489832375427548730468398625953151757851768541251807905937217589597292807449140062176182560888854388627449628467264001222410227898026750560821855350595708171186430589053649301157550841196381792333119993851462966061932318201531329461767261654957364873072780530813988616351595816980000403028461565230937600628175796554499353172024223633632252960997625792986549119455410032361617604392008953130128584488741460977861801974489476505260627985825353816205420441863355704981348637829196111146352872542951480565243221499822507352089279222735010291910685341843486460756721892731187263291368288249831997218877394875883069232505239674931383143832000687950244500633278878610111987527459915558062737520471982997027890093150143791329032555504471044227848977218726769039798849915262848367530308103964703422566862902820860710615673522576925745656429583492974337205666431435601107047562879143173115288689042761557264364074735800926399764550757077260415245986104173499678231954531981572521989663253084173141582636922002025520812623012951089769847380102140166797346798592565447096664808987107286857848436091785594610084196494799973474951762309455067739667874711156841083216409376678982239961666305461840005422285500059953423140242436207155413979482885420447993349918284136955579454313543752349229835040106053518651089638376311389677088276861651864538654641090466935431656633570591422266673672159934382557662512941271545418041772409585174128587201102123183695151648830338339065394891301575268048976787721237984706498339747877057199376329583071352184168055162240416514752463400156541705017925025157099556746939328885745194833332696409234844354563809885344042169718730270469277888775083341555689917604173215922935110397257561499119355803846658373526122093797482001014366551971946956085777176909851715887771744916475304929103408847140253598349792441858035402938185639006468035956948894876018682629802887619956336428161705788773692283382951670747430158055223065309801208502577217951032564912068006688949750009990609364839462702162612638644132438395707600110498450875175808311234824333868075227411327149478721953228771640111122830688415804901156434607405096101778950216190752219915077358367123472937146785005010833552912214267648516268807953617915107834286817780706262570037548714087470702293693017703059534735317684485011177910848190459015067506995184952636467959113363705597483191141006498702548887894438892716785285108580508412890201101212297390544590091190263293144265494862897480722043905851031298911258085215598594558308638891950841259367751663450891083543270796110282262105808271910716009163833850573211902635113906021343674769112979650129643463567048320610222271641987857413176036626238728003368034777381015583138840011177101706787638020352360027578251140336120767852037535622820033528839532857882491470958854790048836341654145816833890610664758852517600407556556322063402946508922724681577761343046522802690595780133877123640434521988876411262129421267671273213925295259787214106442352092668043691363912946005205619559211218443957840650746824795291846220876881582851392062614705370330064429539350897997115585904863976778802552305145896236926446035637224503939647231204683792672117590945711640458565231879816292838144773491812964899616042057530737071195002117405668135039651321943050463898790520024999516698929797598653183261031611526472772754871886694752826656428899547726091403800025553810858840765602335731870061820283379053419556189716666927510250283576321653747432120242138743979118124395248647677859602163383076942916543710735107558056275777118331599609236845777932923418101455975791012057157527797140496795609373829354615459049122595686225705364659779418759842783859262263001651629758845407045743039081295107820735543023807697787196255251590373691730865588469774204742606949228655750500758200107636174777134976559503329595758352005621343289449945333319999152164625433623600184752374599537969014850216561333539413819326476772078049671218370538174872744789456757202892427640700615958933695176589544527342860351532298861823250826651810718766058705530597817787338222050403434991634786028643661039547363242943629274999372061903301955240559868327110176978036390403851789613924584334787177635389540117933134428269767263326831821313383738465049136304155834511015717344549115805025575372647737831879904831090773717545119285146440648727434855761606089958174135543582111890175833201902354820183944584052964331142215758758082505553078654236411870326799465913091700134143591374825529890278056131923315913804736277890754481795842210179277639338406471032526228473390672309781316350606542340008710315774580811554660265135666124574292543473154441018722996411384140397119025160070115404054157351870405089957311753975811584675793768421020511821180541066842462962060030054131947809056302144977953484844767956531197175012156429849456574760703865876212186507871927681068544759980160565743501383902832890569350204821361119239097730701893358198577830762792993489922106263430924800881667274335838926130363588067900575681358761738450778059005500773049305119053199884736309472753805674037048509758606156390908423309134760820041909445247480192035218002317716264072621048703371744385334497248185692052280636803562010245209201805308668331578653843182846302571991628418847629375313672991043620961581662723752993448944643303542156958370268639303595153755326429080429550853546755092010549079449843251547088804476672084120272494938728365036745873193800097627918533458201506451680429101995846957139210215972358430664958364772462564567370115109886614893907022339877750884087748434540914596527785311651459396831825381987337598368209768305020483837322294444322462699660931783053658661185171486569086893254453723799923375906112491873547724862277236099343817846998427032524346998888477803648171914846538917848803256101786678799943997546633539808001990593403612718761663499136708402624268504741102709638607378127211989187807265790668608833378674674932119346708183382550153587974064247740107956722572953064812453370074295846572734072288334672188507327940190785506004944025111457269121923351152076524133640700222245165970269876291511388772972832059023059691455648451476348819080474775600605855957332197571884218390261251089717207794636333412385419744479532657895574552291655613827943056886787318723975646909341849968591445512461851751812509188071240260802227230423961139956551202896182047979376050214341579405121697637906817409057947860480560272154541069739040562063289177418178192584600194000633271110914448282053876732817502235004639557799993783894887138590712159511496692085827283715787427390477761608551299019132713957452814004465242975196750032821666073704770143293171462398853275844313735937052593547253161402615108068504263144232152338398661065002757153753296664061665784152614680504844119335232269339726460352207251779113226944105179307790737492040258595566292293192049408795162911631930136770415640350333307145293028487019065995155624052015995619635813152458158227592332349001500189673219507053740734256127814202710694323637059935715692850802101934456607382545633214249928806828037128214627009886135082475277473921360500811403705816354641271300089339102353813372697079374893073862920015656358448113898477783491621535438099766045432688697948357970447636234589181601868846558834898056994270105841123521079322332980058112938229402138769849941845069954082231039687867830607664956079992633178450837684658219158740209156876138755499786518083762900200435562465401065239426779740321673801652890310216282541798980041555997079708181296081740043731328254920553318873778691778488714635387363881105376738514798276335260236803959073098828742583124379060510399666069170455719642336094650147366627933528364100544154455154560239659569221143765530520976009316022986220637726519057692266052191294470947104962893566978306782135314435761392330878788530473972513847254721789982887143301525607722950358405709363043193599375749028449370902551340244230461282295787190977175875127005436323129330043650606820954701997512003259442341151681629472812752332028223381152693354506002334968859121393897374507585458824019350859948385824542381472299803162637709696396247217108339193855354073318560177520925902529490818756226252556074607484781972958376420068472493577919273292644702967655911605619176674706547852283463452893298118410895956882131973897435251570136652598112888500781392013566026490284055232062931347564861891356983280076050593457646379238640343447379735105220991086042307530828371934432417694934943007879384822341303589280874498602490607535656251559580332756642148070860927792714569995479901274651366496380407169323913353215604788847520459505347871482222211899157085122005732394528217622438313696980158727721746280045800085314082990051208494966993580804282169625774876171916281917830547609565820159145199786482653254737855977135841687663161156340937600797118223359471809793222920644580550730724606444652766329261745847596221319600707767755127796228312896451453684419709192515777498168654985941802900375922412022127956167829371121474820181149037288423719939013271864488208326048237565250122871608166604352366809420895859872005482118683235777573960302390095054905822684064083917799583265360946836183977956571284663997651055677859975710988477638139347891115777036635552670268748236104942842026235399902321565338659127870111653078767624895968730996560964131474834224004741466297807931403177838471383233157578202043022478296334150634232284792137568612255319463897577785694627090154239380216177430233972418267849454864401053357251050317349610533321719536688628610850520903074842215262582247563452295114446448293103931812096920209307582143364440549397595077705616545811081824823997461897707487043656537658781445516075517478252837707738986466588715826357457265702312325359935182843975564789354072554337805591381689826692528880320615122320685931320085706487887729705968445951426686965927169432834673629158619508055109538376405336148117741346879965562166670683940769952110755107970661120899668327504287970839305597569197822508413972935602365302203408508599456162470994193575321678489409410294830581814443136033847250800648985169524375899994898933173672346224101944767985879026767482518015155425172339956305293714306351035114301035744093742286929658487500069186557910437772769449741002372441243538200498521473582875919806686497625650309379458136398936110988911479576456587750985545576462059491438303860659765628768020947990737819128660427826593944944758331028431871232653219614329034786200603866234154782518855752197851195155618778031532912804022417667046411736394580107565544432104686380197829566510977969970308182314004072854848382419928791910913043786376301046331905278225685956005516729232915918679895397057404139312450276151510546681292500070229893252284698783283798190223922615493209574161272138100388236898308303931543980468652842561394298896843040956201311955135188958329866032978406198054400004541733042352601485686361950445158526229099215288171309971924951287662604187181294224642200859689745049401755585913482706814106302192566086289449581318871109515778802906091393322686598590565319773112218267349954332487134723466397938082314625591776803964232592859909650040653136370546025306856240618990909820583826725971029138867559156043196730619294322056664332306356381043657018435233435802880206913077130720349715169875938050310915925249160852416009459549101442971168183114988592662436877229001775759768120830577133342463119342623091322461770592928459798912809317786946047205034062437217403739448736514669283478896651119222558669701539321547102127835879407218329181362818311311685307482977625293197850322660769630833576784613058032974736723664078028948454956574223328446883251021059566069581905678110121781896600056147425934193028979297774149773122866541682555417828797578387830794598547679435403679101727424926918103223988939853103923780734387633336611857148523393391858231211502704604246500804246727078421879771084434168634956879337644186950676216216696982135254984199234093385631224288130669166384277484650735636919390451565379547520289700544574000611148794048288936497733611563484142130164140964567878804930604717188218279107073186437346152859459055319435495487983507150095950353322437016105771871135114310398461912442460510656602081429441514818029859237701997039942243509336956119633313530567089132824952433073263309857862063246531169358051016557633306619423460077006722964338477090368617062947000680487723624815174400444459418745011474978482515174173984695610462028508227652280520995993431317161599109648981043903941107452596496412098364593064532598061508121594239712538961270143483431078812837968731848152162303769249049728286546695113648217658594390697413725571353217722011997534575990809744572153037330795765869085113302410305608232895106794506852181854228774290047236976767267552153840135137684429811164980639587833299769164548608775032267444486864403557916888386304151066896027795398861208010225230492249066159488774616361423865198070727228393047408790801413011376291258275056192717673004488948933897209995691189129281232691549420425502991311193528849785585543476778290930385869429795900721052644130597237974048236822382212367078194853342620267087171760424194087345632073824867787976789348869339429242431087992124272051477127891268237978780671153377795226988205730365818320833257697676257766773539557533751783844189135078642557371559931866033983030445297182145982645198168186429966776807578013582602298530113144389608474784882219700815857698163859026724896996362444403140949638791762323982467444989713336800333556241311637220762929381424617149215427894868532424005735387108438369422444132768755715703575944774072214733320945932470789431742131639219831300911239787767819635275283911727449628653686549017408680705959525613624234833372963705591064016856250608405563420460771033270956102722195976169651591241486107762265186483178142721348210724956623125344904101995540121923090407722858374482622360074110589537320025477201749033425045069515560761383509053736571619177868492377151657085520598304817789340373781195549004142327221807087353821729777233363869852856049653429090845645105922114013314286692326767462189668582506202371792884925686508488374976136737310105600398724887639461076100875774038481421916833239534151987286251217763867737138953109105376322028843240137128643207748480002697084571150558834183140108289879633929434814925776184976225674978435953846610718661315757578152393687650027393459132664895214532115413192793752896826826557844819591438141793041292435624170052032126369822221742423690633133923747110260287712176339670844360302817823547517181807254425286055459433832487097060082954175196867309887024819402949947089378209195429544574210780065024116121876921581343128071055733297257319655872713022221066796038342725482274943840646507130736964260273788782690567285197351417868315723112379148759811728205714399485137706093757364806489340879844015824065005051129639020514731942345917480229251972582808921945214152426216695415159458875303265057358050309173723399435832350995593775830214497829620707746242442132709179117532382139945222808109184566193800616346494049825772929094660893527716234832807504033205493161963115838583144038300948666498650228659402832150000869408685637282129473412179061488563257735247926178796944924723355194052416575538108619664118411580020256033811275562607870570932717837606405171084423071279545438407811335201836834216591056489231760385463133386082772456975660359823112749173958400808285069487226627579662922065800612681686055431634666952384018518761468208066289760135016888250076956353545322237086594782129497112061358889224177505800728255350764257297367167236186694966771791496999379518788405979654425721926792791264628497700111373408413627623878665645043764155047183086666762870033317818658493043244139967576936144253224244020854195986433145750444951524422331175233581248987860367327288390810150892741420760906135567844870888654868421623311557417747364229252156643758546308044900042215583753179042287685852552261282266975540722483004749395228565845849804574287677313476919084038239407795292989155444734856280486673078441187671560263293757385990132458478560248387331840690409647153074551152263760823194773834728991801547692073198815858795478103972987146052106453982723102734594716544757503080755779347380689827987197317378329934875130930263332268264574977522867181145937663443038990350332493118311116751985912056206624092523589101271950330314201929255733347405546729516667156604085967616118207363231895776945631957519376967654352047473325579533019405756337572234300388683717039180266076592480877522318451352240265638506035744048772096147728211935306810673264506030830045727634402525284630977228734358891807297916029124416540794827924406086861831682511970448869459560204861875550567949931482682704208138786977960690260131803659318916911473092445819240809631143328639594514451846194424503588433396160565779427921530812384513416535802360462728771302502204904894684868711378460499153643161555968750821423774548527458629703053616385413430694619202102395950287638152963756435051923558859101521500008623412732192370839454070232001590855295442668142281217282977435838468636567086970311206815140927166902689942326418772829040155694713026198720609619488203040951796648171523657863760790536431923450682278407961787607430918020540073279655952368331742243064392539192901458276565697147863874379481808283590807058881672780604295745466276069444350229835041743371957693225250498466269160985333881714490222743331121495105205096129273345169165107256163455999595270180120305853832741277746480396593477750152344887025509181826704613401683836492804734700217535120303709092689192945883162082837374243918669815732397169181416629357095152539525341539506376902182440656258219606004149255720317561429385534356905315764857839347416115363852635139411207212484588859790139157418771090468548573121525021129800239012086246101038639824929660592626971178044979391155333741795282432465545197499421192723567885080001325491435553433805804560578001115671242657933320861300061067818201523821272914636744366217349351210420910323495691769589702175738120547203467228486539169237521824311455917682079358235176617002345463710655027061197917740192118178215557877516743245686138040733568345382203701542932786902191477821224918069858952949265168901382620759087885936428672128615003851542596782073239268669814623587393814543479516800465997008540778062552783138846780326540427905001175284976102295014941969509559947685668877638962760797612187695589208656383343204704553997636297126217427413787386245393124519032173479525562299352855135803751555341753009089802714180813378119610119336340634549901996252893268581739133533267079546138412920852004575579019639994916972056543081374891446066372275888625200842436593339659816990506513601394542459493026569998374304968115935845236033580444288039662676030914837643835834698204608694537030963744619366597170078035092103564012018441961033424668195657740456250422314133879013235829357444088489002873553410761823378730547034586758092490148112570142357001609942299498284341007869161508369753040536149196579615472167351244987145491935379113332912692174330150289109557293316182285374373276998899712649232296258729926706590648196976676910229073503144729710361685692183601423979103255196267250029138260160504589119517410411120053653156125963531500302912364759110349768244351315843485880562810168450124313627555498488170304811584850783211173055626762178431621885265323547042128969941919421970418296273714608590057466449401222047286758808372100434199704700776451571530771985041396706094012373100894161183199461135290924951706665409509365141145029519406285438601662273754795474181264999628778059709462014559031341873016223230875206371364981400270040910621074732144684975328645009771540975260437486151989293779356731207067830274129459002876652239777272030213794886509626616846372399187649120672038200341442711871477486905280764647880567908164990426237036040905665484967610754231534141434811524678745385236538362575322910625134225109418595845168990900095632005534517454539566664910156827842674518914690956415832085435717696855312747728482313675155175924107449018835805086649862779182110001469779584893794826972447428400347912127321928809459420261405952557918727893902533352097439000942240133868472562060375734825935463558782396783015223024575055109020714457874975324932233735114985138675278459157713822750815128117904210806982749926066653970942879221204614118938149033591256246572121264973490559556103445364282104192225590279963410877924955300054428093372749655361926001479187388813672500190623702099752478944558451250892627093748868672864649928188535379358375540957454585425220672133374695569013949186903503590823702511371964351570660053589934903267525526844882955171591707120049560783001250679395666442936435421052762589859643979115580641473168223449766706813573283525727459560191946242583337491178251335643773079595159243970648366394058364196903863818794718599047894266724450670550203013683348622995913413881059262209528524501100638259507714277954280110079996433953541897735265286800490882734646190699626746009942853164898075097739291003640722116621994591283350332857312742819468559443061909271291951043648497357691356009196161107486503533602939621167956184568950958200851066533164638760799866306586857990306915426176740077894815862338270054907040969751181407054842760758783769895600582642107680789756388771070811121067465819437142424777604635807531637887458464298291245449570160734479579963812529736310330303160448888763828454479653257909873604629025540454194480760285248493331518608794457665782206030442258969410336442775393644424411432979144096036115124958140092389201475030232355997110986602570623552883736063210642959967203432224121132755776538135998649257296455495683482820399191679801358686015194313720618595910288022665642305291642372590275678322067355359203971506133595923344356637117762449647853363405091384155545479372220911438620710095487981111081250548812621926181204329048676688721212778794312876390325724548307676991151246683400084683971525178218481701563477111553113164318972723691654277923560875140174130839202075790577394317351578523455154108721628479591729068613602466156665466856255447069659844837661950653320715561099458582319456795606050116294540851996328551984896516401320506056660227452392130516761678568819220713409136799893853363862380224877934323630346550185455689043072901253785380346974718462976047278390091352681998703597327429877122846050621993535180561451727369317297539813899692666841977891851935798663662776665157152848726099797361353097188910975521717711377922843882380898517103579158070541403092636990820930519652334590450425643755949924977127210354222702143379892023023822920508864435344821466558197878004684811880747140395283957152640794310697517580376512847990273532073362465622440455702601403956153294593632729389690853252913830811629211267619027861660661722783599502198712311996065355929515000748043546276432078799925251797431100561854401321821291742542844032108380926084961363042456441395894353332885468191091279561428109998855360814348662493548714801072997619643185740366715115914992845324350849772718058161583455999035658594438382454353030052033424895641590049607977525622333426831116808953574065858154551739028668404771807683909650611749876557896380358342701207631694526588842278167047154092129869361799460133611364844465628041111707013193413984013792956137866161359608545468800336195530810588454798185785612994518283698181172392992642198278887023496371960503010025859618925209657545607630330627100776284707676849480614857106049909594541413122408563251352524551465004545463859807520462968006892696666004116083647805889273911906478256492660677740277449634773195011863953813189819003421195817785195658572705996079441172368516424055241462245807178749879703037612385119462301225451298094196349657569908157344396659975007689331243078245357845382465095966488836754735343490155591390479167914334167977082725560546543305128342948570095637656236213447245610737721397337689196074841395300821838140183921730544914329305610795284763610619467033577279913436413910178653466934998778718354501400367814134854093102942794911403563646991899147924727280894372720771745913478825343753354313481419451820966854938457542040831708309111378192931870673302575053917211648731463622354445082253329144668809421040576550348255173042745520601744562355916948910688413864090019971481631042295827288600449230026841369070275594741700544037141274563943690534496323235227565484446935932632248978897336806297798832589524478541634283367838545668535126015359407453552968889758517726446049015261232037717019023643072391743328724282248496115822751391735008725569361027687718364073113405578561193716667799586117990534150749761300193481674658049990749116529294498704579720306952815608636765809106696496254107129736145897757101343262645919851844113771659080536331271422947736080209749922369604566906168830183781707297417499004223667801993307217140822978707076572766985884818896246699344370426294442018583077030429819588074515316538409811281345828108292843959279157358483611994568775869621590616640594697957452443560115115502653118167421566046453870982041544791295008036158476993998552184409744404422726799598473475362586865474189683914649300418722515893761420890323511508588025953070604465288361689768225978472418981915105676191880696916526937054964563392578854549757546076692566436674511703426736930079981937137105615178549241500452352533822007429527155611189885240094900371872519850449739327759781958770597273487653310078218466657273212300120756116693113035989071684859771210975684333638521714810987535552098058034342134117129139811494307346523577631245748483106595735034861103607164947946801916190416903492029777331171631469765413069467792865303413471731853697458867289912681526578371778675836742579814067533212839594297923922579871263721946159646116881153098105457224503414470617223266948943344573408245648814309490435069052842746100500447828235729237707659367669477559165063375245543495883045014478755170078936909689346034314882182438473304008972246834152917746641189371234093852928913011977489585001586214243029084629744685362883924551021925286104415730698472682698865285943427667505362134931522516622874755131119967612109569699980682015616394212737064376234937880341364182621004361000715438105176701313141191796103453652995039283209719549374107073145990484031705648982440029547717696586419498607727670507136145619114625082807866588309203392712544323324494495363713438455519939599271412175710632252494397567582031096118755151309481869186993022759510885010425059524760894441589810400179515850801276936245930064680029621635359101114880287572650818799677790495992239891091448226702947321143479233687379784614042048166443229100647972377915567970975328617136631006599739224230418036446007693772873779233147946467578164681867733727808695128074741784985974149055931500478073526161517769135920312144703814911043802496142716046431074871469653459363730119302184557383751349210852873808522486064043705700044706801310071637558193893611879596007019806489788626040409757691584444534722026073553003175937614257462077128367495220616282045078124167718424548376513007349127885000569312134836513888061190820174793899660118058120212812956097532687091768158077538633962598700996479388255602905783533856968031861536326512111546264307838554614053266710953028846639531543521387769446479778618414576991059504655785218399836844555699520398834085868291505831931610851845349064449438619230405483086269157684843185609855510840267029336495355121428763364576703602827575406195729669556899237143795335449833216657969087195961158925852204925145254390489584347239559109196093234257809162175724244686249576030264949923905535268337334576968208301238501007048522485406382798741555053251273475813610658494530973324823372445194551941727267368814463144428450844455200710656961316425076661504540633283556488196443964867367441323158843549934298774113061416084983491275414775132720084157130223464554385531383032686907592906015584604230984593564872707486399265027705520312002417713598391182140924589117459675522991737220500114108816492304681794366164222352545950060116843439410196304961150116040596697765714859865590030594180355445290097960126013514626814574139656615460606110664256905522687784607536751255903632122249545537558171596916544423656503823210282553893227236484586890786303110213347682984641056919350954689042107160925813767526746622877095221503492216773832086125672070246843272585245100352545040795729156173977111987932883554861912404028692893640506839022439246882609370191663603256667819154531777080018051010510706730499600045746795096175465803079268866936977594902047776938832248036898276628510689486450731361980002073441894272698925930645333844249786740253611378057142543576476565084424520692439576986789115841540185376206960335373146546926061577919933010351108970270225920450596075203798013920459821390760300484337910112818946173540859338584130815934743725127022945318996315330260173077980873556129107026500180525370545466466365808504398032082751138688430062937150931836478765404992980874464671717768484376500798855335922797292762928678394567086182357760247596601608149970684227411092697177453845026406959660722092472727638943057449048183984298602876078024512054516813145728509184344980140401273744210251276364993463429746332727719337418440038661457568114967049038212099067496393712683186769482623798770716757877813470558414748114178892017581022701326307003905131507864546100459412955275353379324504332189098618037852608632837082337929964773750027664552253237539711313365695312207371739423609903630530344812029029824850784475294585471753890667269767716067549087903176219003305059467782960433556690572495761006430706434762374072752928004717753839168825916280972534658663537569792943653107504219881061052471309360512960314486071644572146908191785909052083721208690508260975730348400911435556913395419575893398851078454235613484889248942725387618832351689360342665013640442563078875444739185669078444417146693548991487000494219674390963825140000800395289226893946566252919929304493929802275122008204722810342510201578989106973973946978743985099507664321630713029270330863267045116976295223920981459697649153736076086494108370683146430133496546800590642917913431044017835561474456965719234156350130104496631940874730286980328254332980187640939938248687337288652556536726887210255195450085673266743242925894642580390472688132610196521985924403946966232218001359940464419093730770778811473651819574768869157852224563338749305781607877434368969269008612295622191903382630016039586119132137710045073096842407792499569300734495051980827165483716374000343414614001055566268646957112868264850251314211796448857606565981320185702586065610486376289485869955354651150977909599993214378599199316266060927996270814202446038880145092440133882570800373357722751121553868289990140692317007994243672466617914107496855925715272538500660675522587859152092651946939329771558544320429926558258431158795652643936028984232542116268670171730145134253304657309896274920479129099371795185292901112988658794234926446748861458880499079205247265783106986225718807796135798460657346946658935197161636681083036955025540689450283526871795188432398895844411114412308644891940755570209332241293976330278972734384576176218626955533561346845682904657312346149788439132052308883782824874898710092094286870669096210528956529363445528744795108872747255194662906852312648136075887682028729781692846586611238611424581658671511261371034387237410208278089338826649410796629744522292837234844898959776587445761392310576058055102057341562660352607426019928316617241909602911344786857393814225938033499916989948046675145701156709534481829721850056712113688457851694482787472825232693415449462748540201452411776503308820180502809821753496779216483058743362716778209710539130349692742865662870191593553052625425797453372957166445393482998058876567648672130876573638512405183725280493682671081182438658269821106638735214793812028615161661557208174628672931160024191831731550588874953530219072857717050558302816064443276853317860042871665931439542619018356798113720759962691834015811127911684411342582303521304135680328498990415826169042502074833806172675318310548086329042775369831857362314494223882446464442677863042811439674106798326797570799541739097547559468096906535006526972425130201550520555186432803065406611386653708461379268612634846833796260038864607411996757256705231874321976773103801285522813878892342334698077729084354043144966311180391938660756676721167227705755685476725976655100724111616800525091865250872458623636297929056036203456682100086821307721897356884176311298400657573353469609614583697606573762672001540082949224343826290223232478000024072821928094514032908739752492325023066284913569345062567234051161796377033760765874077963894644837152571056552265574443796142965783378193907887905571124852685806415300366369881989095944953828769037198659519872070111976551489291549712198295757336579241380831537079789650683040401499926145878187965681651081923333901250878474673806939282968137386259818407983760793437064260681823563185133959690088656538039211668196704556294597378767182236035034935513400205346204662018712877444897299882361340002773745652738437157546871476038355049944428898682747881119464972959666185231983402580885475944947118622737512189378472895686401270166476567048472217386503282352816921464618032404620853096748407673779178067419468410105089898140747466581338969152189741793573950382126661773111177503469405537809406359137878203563492998301832876846736852658115629811429113181137610826781768984537203048088715397985889922409737976045399715075808765036476529904864491318836939709273566490251250016333165114163786412160857007027760045061713181486955226475273494778376709249188997643175508872433287877634727852332803242422087883593449349515346641877886266793676146300669357721529240869027755983747807397667587421644049015200857601254297079030240779816878321580139937034563856110944781944362648023437314888498696840249983825503826321023382933124366524950947715049601787409102264717616249383946579510132740485020220138531280265325313889686906115462384181854841668348077965995888453589088561226060180434255800066596122241599195550894628158147240565229105352488004128699861884181872643717466378869911829467119856890050847450530122993755062712123527936920561685994531405529770230017397075496374015029650263736407821616245841299115858749804996438442823219691044763256014833914863314546277393887558963179791142724952498785375347203878782359006483534840576653720397871517988375327325265818744600638092197111365318369312711986716921099973714132007548213400809062946457157497397680713945014349254458945290866885174984503465301876745855290131101171083748021777616854640890927753916967677214726607712152788851195384618386537080087197924773025057322530860204017099237584282142062891136523981239654605794685419676094392229803444061278712832315766406579408875845250352123074058998901846646253363224023019360740499589520601413080180134608698149352710498916699504433901341309437708844569922824652631251096217558799488564269503775878179026182905605075238571346147117797715819751649032986571803998554968057513300224788867392625917076296852658280129687643524824876101019158585261855293269221003865288440636300454449473322068341852078203799511935674716369907136900600297525120538444498499401129295657429390587540305251204813685729613588142612934125262960368907454679356331089305598627060740213190894675177936981932851635370675348055994018707172143097391775989792740125897978991553489054792043668280110160077809121221398306779454969024062324954885197749031029874085029874443205251604199206219008617289349558013736566493582616721327302986405669139391263030897158526910756003256707401773512720936844338859504099075927888776225411756635763793466152256598847603090613182718789020991317440989469435433421174893037490853735503332360709309876720960858500209765531671153770024779097775500362322912455911431256051453016289093138362331984613360186257762729108191306664239282067671854995428219842173743925224979455278318241036838185796526678992495661338539260753376157743335364093990284797597828598091980579386633297764688893372199715059801398239738668078939517613797113341678916258146576605659659726300021396361336562848175877812833973071614414240301699471238845728692409024616677940976788604553117486996684662375729779826827049951170459894070993077595041797218752876542812528324220431612781262608126372010521524879554941396987215842571016854443142190785400599493830686652124096786962281065494165433912573284360643740419223511488998008499318919149363050046821640480413171081397083470296859209105756965307673536002553055516161031513197527339316301442321510099166829118251164768922953006902517116013339018706394197976472593389339662272536249161359599237937428247809855474696217944104609830607690354016931626920813602388290270794596762209665159630412364030812281726007902689370839058467274970098780541302117821062589588704396184188153301263354086510912221006530680731090758040157249970875494309064843627668803247431796011969431572771853410599799581154580345513469400570131420224879005649537958780127303872859341941940247390188003070043679497389637293129848196390409230909948584002801160964850200042645473191391962354306528602491969394238658706580585956828777779874162747475750409014686859796752685495833291831339852803018290690455864562964599805079487819130127411200469840921754699217076222601359288534142050256253960863074235207223384722329530504252582691444350561024156455873680050237622514443048150824571691074263993226588361638160023978974256420206088730216723364966007334946221784724990231373864360091263096248414245841341848570035333910793824718985677554150766755155541536509172261279160534702565298700129684629349733866990931898996542109746707192912735035022690573475431386341845535920998253883749449432577045567654503602871504775285684997337177690057596449789999978778078209325201748265822532880577491741408787178389046348070097798790056969275088394473336101896179923114067541646793392754322024659593689064407593290599547259168913222427171963660092916305137298933776898597522141636471295216307107433690239869626205154797012650769643466358517011450879790583099656932496419563368921339057469354700036495438531387598957538740946131124149833579181424930817929322065777722023167062459233031320318118692454325437786176047093214797119018278104088152606278746100840866499937520516454614506213528588635706236998356475769842442962293212846756926220213272064052285959337853355234724633549446125944450225945951532291260917590372144611162580671083384267081161446447365139686983172381108187546647488489981211680535166592161001480202710072621448111457516432910827981528970272943091331808115894497831883474123792598534780417198332729863801568271588336953630644960327642588772654046769013323510760729740953822043796975946770072983409104757213840536780069626904585979271469021844180698457102574957472609798976554266346749108212182615562431384214657839661029949321238894164676902145848536669913280665431213756903902055554554178838963011149385595360932933563775629072858668860393618297245141848560162190920415494389736420282858170624617968691935157445278628565270679955931420219277670737872200571198690586748908467783684358336081788409147650569151720924806424599275798238646073326404354686852390685574309733166596722156403377702149980396323211761641923883238531603597387205525189752982829948973450354635514409205749462196235982071112223215200321926143419774174777538713123190410702163255561578916122955690282989309623870974813279563786880481196551408972075925429393486778150891935073199176810187615946171002364472346818348858312743436875799229127815176435231596015926250592063865180395809153935192918065120901197850713067755334082026190444216149700029732282582745208273876101093549632624138372406643086249148735318318053344472295609798852104507666940081313265266535686099777038033975094627583201525410297285606628295389221844021534758809864542257746932095106381256787777799948599252106018961069923605362542013307150321762102710957164945228030522511296351906680028060956401801406228320954291672985072367314000885065528537556455759266140329067003174922430804282892886144074845160627443677358736609645372699052053977565410851530171723543624575280578115557410626029581544666407345218547813904047174004550979583486242115705670140780860369603455844329578249085247437981882327696552365929533954190414239346422698176545318958829692532711801163640184391945289034329237646072418551435250843265182924933086333444640765943652660228377290154271226044500017588290388776403843542312650095087106607116195266743907978704622630550522913988440386998271888328001836445693637906923801409464897743747114111461649270006649011412098625880435643246783994627908222152769894904986538960013467136620101097989563750651754394058572090107659315217727105165754146739176597230805148342265806501065974300052417782335349386279136124767097422734337187209482483636477702315280270467146458890830651923911613390739814239778834814254213128820366661954465456865278888595490299068912140353323942437235951084774962433251831197569932081561266033519034548691716663392741276243515434706362285881844357736728561794189691666282992255653745288034101916356795943258733701595785051716757060799272580157429711255054366434217289824617293554668521239923004463806532406961337805575971478499255149568618158277544510728169984799205275132891163492351487994919426465407171360278249611147398293674649952893724964235536402666628195281667824554645843899225275919910343490272537396267873873597594430027604663047993353425725199296793440418095346612633550154812576526800485037361744091159474623169045047603847836527650369584504332533090370177281015324877700297802529391184680347547611279367178512034547119411833451043014381638772118704427433695084562821082305691245768016571806699479113821715019251988120889336622769066865591965695416548167700502351525241618629818202669228713061152463692847160241084751677471915150104989189497283130933642519647956268894778327648699807364613048225877671858728424979285929563539003844295940051769194011891861864117113298638091488039116083359619292898229125280634197209061006856040189995113720358164129086114646506916723597526522242217964117507048491642202372468608593793435044191796865426699822879516257549246070238229743731066720926803953696877462075813850833592659276884518332647319800689087646950143172745625937310197841147813386260557401680525758028641927508805560095482895293313579656541821552836759743225018265337809052057400045596054098320017751456288145040898803678515199262410063261678174492261997717963520391525543433072218365179541576695227060578637152300367084438248604958382104899186355852368965185407556544066502668788827821178600979611177026351775103164260801856365905428288006315269948110076770340102259610203740073881617875634842315127847135804620578949319594245098044584675984087950191531349566142568225251930224536840241247820925915001288868504215926121755053544516020041475083104925208774271301967119878167750900248045260801400268416276104176054290869577236552978301310235890737685547197946436569905415353057871680300401505748546325211321949823289184253797742036920425454628981921327441911698287413773581366982873109720481339587601126536764932265560441329666606125509194100407418991926856079359003704137267678602859861107017245023866215401048855949101723132951108278787542003638379875794440044985583826983598011938448219645487271446401334408331068970216499378279020821463836157753844210011257048719383592710381678874547043936508277232236595812675568760496487302272017980182542599433342701734858289574541838271178539343832608546085706856718248491381579833912804842984946833168277758925581492111152616694671474219006144437102134637658661238094600338159056006871787450936358026030570208741022106449152981939653871457011636442356343933273888305324385984608527571016378762763647961639320219386743881056430878797077856340030792624434531196531246711432676011650281177162783467350975350928647149591723048405931998307019580981617130388658925667611330251736417778706503538381454651008280268198410221880317386453862702311607538564798315810483955618611226083314959106981399263656953582305025015553328569762304053307070706926531227075781511211874623767162711697863548579022919059784655970102276710408881031649372565795769118430688181163385314896675768531515401674519648419279434005577704673572307715904711146358381258742787727325078018784700454973376178051535142727490861343786143080740673297909865229504957715512215411381478691097572937504651369677250059812894346304727222305163645327292905390717509136846316844294714721666944548010398405781660593014287852361134716573898781238667814576602012504183837963332827314172398335206287180049893011268693016685645050121659693430678172492914539986210879759846132131793893457329160076147594486743655228756871792614570360907446185920167668685212931913177387237984533860997770421277818628687391493292262226976683547014907755609678642546204925636649808952370457145605153682130668886769182360947719310297602693687952085482988082789880729292624393276200032470426957685480540429083048734181976042795030481450102077861732614393724347997480432837637445606424884644414009529524244639803164722027610450338769389992556173190324297997012652521229786193513586307504766900452237439673188027286437496331038322760204285836505822122345258289721102194037152103395503045527836674058313833386937173806888884935402390636932589203471838782317771262772395682478448958302639658256535265395151450053777882993061730156530468669150673150555732080767520684708128646771046240617776273769231253779228823719052659722816066692341180046177248504806958500042101080145522177808522389249047262086720391152807140673957747120148744365647547744479314882443475468715485306889163285069390797363086967848889548382899097357721236820594270306263100564990133530108652552990134754641120383071950221333606865181701945734006354893542045588494978179010240692248455735399410654706462942661595433128637220186368345286130033428964925457225152716847986982319086100857986851955330897173960526603499639484226425323273362494857006825853253932070659070781388131679385674015325558367347597137757397791177790484053598326174828972860847598542902241727533443811830336019657969676537978974652114754191170368068934471442992795004149025730830225346503456453967989152003580585314496147292476334652984914984147328778931378069179789475476523956586923540280988527701572131991690642544902454697513988532264793903261150481239083988991356577135532944272628160537789826148582408490122282867184817041466746190565519971417746335578540603841407487671137098541000715108468612808732620378556988184320739773578322968294860121342895741375470490525468460457611436522654816819252632862652494704061478341918343482324880478930760584134361466543342331177597949429297781415840186931032209218574930677687870391895295400915978535589004102763017960081776711467707740195678868081864521328076089321895654469193705272845757165086228308382843187984119074468142400537794946224876544406783426955349071025810008062874485551423904396827214866950274693204955926486555795650860586800639752354475820508787784197359091491117673077541663279210193939001926265891158503769737727467384829892070229367130425909279407555133010723901758035736370708724114576695326083028715087624160856317750295957984528501699926353296822249854860825491825058994522237942641933985139915285621635508733329916888140370771084593424360960674934998138512376204129435573781083218915111259494594844524569255937464898219582051381781190946195083249404191670093374299750233692883060154961090218861003923289910582786015866826851632164446687615741080327178618219385557660181330702277101151330894876802317789537811519234230511917111595203189900055159200546676455029996821597500653372735497424015129566021061541467243629922075264644703222055182926417459234503330188531672203786165742734092441813129776247228375484519780496989237686939104141612198085374560905800225648750272606223763725492690422195755764853767949544759165729468271163584717348047796682466640012079623631694733385968312635406727590228688012405351239380976728392798103045576533456254742697328960678724337359071142333215359118753870537540045426555577472236417350009880016740138666654654856264020655790931994740493041218072254625137748776449334597550446910540321238157725371850196281641649290630942369298154757928805737637661646497726702303835820450948582290315543246977493048348653904271666632032882671638255741031578582811003682401800599293300025464117037480944462450028498566864637865945734130482118597436050425445230738517211118060798062875997219784190002429373386053066614680881921641829819957600198981359324640570793932633987811967998501615698628053496207466446912566495831426077589275741761067492856268723035388491449976278017523911943008987579911699981186881135857141683759668103717610572813292784418441068267032413042122503661536132154808925886417975297677559522267167686799226202960163162023666119677353086277142937657151817563584298796263653056383799816421119670830511778118511235601905380832456675569520712973778743229046482354346298907926737031237890168478106611423751468407225457582233162321215173907640977995901242492178024293778020991731208350120350524574415088189841228947033614657372031461475717065605197146412800265510004907567214536752494007575203047560670748941169579224482197818123454866975425368867929388867665818958050638752548247579434584073883853782984062293586623860769879171428590974394792634669656012815914889469986998622743390790004078012165004836691315255562738918908396743770959174452168943827863305065536335752183289981659684033856713761490039110412146646211479703933102062795216419828203977645290345130721216492206495825354735095444927471438521906928646422585759269830558081930677107678313016401706249621832040213220210132606220207209531831737497137075460575508739497876701993080922599242078386773808255531089405605499351270443026599859177579433577236244833412761952957612334433006084947622248626142579255937358095649128098978459765943569409987543951796110136361087931330001739309588305510331394399208339453022746266877696284119324414801999642807578691807456644986559905820201962748688605433241381639771542512967386528425720250660833111002921881237638381860957141660190117487133433782826099059290686637708736383035354104227751154300680540645192280060190062683262947147665282193198995317305119167342048036817797050060540050736649868739710984035305417665393042383751748029482518633516278086404789333176288794095254413243619615712692889262735204700231914800425544458715473514928257032272873113004036163806604024345551217918835987352970865274771525289159541119105677604644812197646076127977385519964144609677131162201579114545948263955092537722309379525157178565119822348259880206947972471950295348071279668097847851897146418512712775602041409124162627416722853844102262033742186801709724085802198876198004777131947803151312172810548100515951565238171169043148623839212430599502955803260533124743255825672120979935640865432777405818730117410434672173161708422043257863208638500163123587591875218574960523146174973653333190919366698696146543715204120736459409398006516869147616305173857748924527231968573040424202568146677402755578975135845896502911901154974955790607457748270261577357892270988549045652827224827196973069281309260527521572004474112119691722257105373135138029341966972008033037072780145423512769463564813906117390833431337656352074672409257489233461242673829302769532250455286749994411525200403348391406196009764904607534157390143847675641817383435380287551110758632030177216962838571906256647154995266291073349750711075710065563334284995240074922370949312340278093710024832398100209688379908989631177085914414324909405357512867975656483895836906497686103617286317265970429649067746966773895885597486428351810273031598833334578212863388871114177921376616247684507310486710741034138196226341634691621431853205169539614934338543368240778210851717320629989679591814950280054646311205991195113342528987711321286234948431380453246536388252442680802301698457325618528252732010807628203766210868937453852598788518732274004038471953203849320668752370549010693186493246433217703081058421311806384737829597532366267799332550398042467394555672815335804138412177479203106525610211748291013698525241464641726027927056158055658392569971539640459172569340187044026269948795958769439167019699227956268702477848453507648470564506194662437402146652892376484996917504931432786136848190416669908759915456496232419699216198398887229467780510117285559100239410881457566705462316462620628877082844640941030768661573741488478516057549811736126241054395865587652518025474623527683883159778867216242948701158484203589272928170501966190519931432554413942584092791396460893625148231167137076717420791393619917757427555408676758620810985207912885394154739108347903348479041854254042605939117616265876017079547360274109813126065763144187727491918117145267212298006378056953987110345358441365286815187212230182487861416245076793466463623880867504699090556303302160619438664050172501862973326733705712813523426420310288049337333133792198426004363356268992707417899836790981896203767360873878862330370117619871786945499227623828521407198408787802406969500794021753659083122528872193694797792706723507194688967573664679994318426805191704605164563962614871997677148007496388923467249450265745391105848977200150621976551568599098560406806207625229679985451542421302717048715688263816100097703321695807697750774272322582297228935511305915090189642416249943282258162861422462724544760021181161546440704714506499758559013453829045597018026136416010044580222495042727328392407399718140418957843592913528064399053594628138889847978103187438938839526767547107044928947101742019182807901128586065773603805838968715497852602710609499449050094231998518202720679465611640229212172778353138519617104981194508534187106348612182826121359699607826501120090772897371581461475079838948099704557288672965779909920323241644702022351154161111747547434394808257839154645664778272885262871963649685968253952149035095527501475460703753143950847076346655180097237603275966412649592360349064022048452718925193348399763447476001632207590621268688035072638442425018143224164380918813334605340537379745096557572027120611354619277047563212022895412705630086840859049172394024406459187058947410604843124604094542480467384136193247511915127512428163737878427016258019550503467072380380474606067168311478078012308967797934967502276826941233264739021990029950022678909160752744181792283655968447404363958493082091270549705739329408512420130653654595428016934748348547389967399387373809612912662447956916884846671753713620178283718176266327631949906642078045811488334918867840157095493508036247140814581938375251686386546217499624936605500116772224605405961073852722987790354718575104712740483542859745152388545634924055623591647871666624289729744521810507385621090100572000397969883098289924301994704003781695253470547908438933937364371572252132288047899985934566562919149274576035410037343120345227602376934233216003847465150827955918147758862257642342235711745927669163850920933305158049220687655638856138392979091820785981231854507495679696543841454814829434283496275418288622248601630290762371643412036214336036821671481382221186475307406279214066344986339505448660870976999502082986437130881703513924948669587364554952830416934860861432032982049937575369702242752482033979682987628024885384532267005144094450749159462338527257774737364171286265681274414654352835756390819322436137249010168733668168062614241053464681596508303860061538047083548432874851196549727573366038716428494168849073535374797733758404918686340949779921209799347341381498904817146939062490611286733349529058237380956803273131913952504554174538503439186139547889476421800305199409422533256660654541774024592238159033869727220456460394084937654511288683550059823297569577365514236191319548774929597314087171651576813145715242827025455946343035835133976671282460349324208644326609848798117713719110367582661150007544130934077024389652422106395346273062382981628224545076685333373282564441978054987343719244694171003216374150236955290443578120040010449169853563422941056873784074760740744409249078987469222293092265169305212500025311595664339364374573625053928367161550139925383035443940544170900169465703413115671302537021810939401134510929066068271534120087868047787293741218543829560443634485570075994255755813106140336159718697097203208065441517646372972776823590038545876852483288762400518903854884947955889603838055282937999455636780971930893691514516736164964855384369740614445934789024150261368870057290067094544101394039413378435667790416443395396813814090238059990912444833758291010409615875126017061323130279533094019227404227485109041369443236431922946674918962560608426478022864797725926354057490389281354495059355024756747855453127198873834508341369656491829385921103031294632233042558786017553230360603839697609987056003395244600299259266542023387853818558690283882835028062332098147785482631184249039446862157509942404706180373455683568474390335118511729611933848363715313501740868088589346440658928132430049143272310574030074671371527856897954211481048614021455836325490670792125920986529708583916964868111097417696693168925847699150513817822487951150804480597220654724112209126722676143779737456387789259783656007663170759250658266721484941752316172768270470625376449286674206729749620402204887769510311382338113077815147648008696469762057385783507877629129185066628595938220550748493038253502223213411688925280508718350716230462516532387251369969682789915632776535439126646383571834994384492700224105945205967770763691405279934554564340640784643803269279391051627311661866475861113677192385509963835552873716802186983310256616319876348198076886042461619875336404883784122151992942445089272046648849366976514008512740062238586088683611758327187045373182853655162763974596763851962510262484027284697687331398940232650774878926655763915417919698656181535226860793061376270023362731575542794093062081406341225140833471934973955510999609233038697267312438709278926697154315885667583052068095781304507339424395142679083078642425947632468571244903166184211206210652372235289548291968598169539396996305702408491035861773609454013817671969978710100952400749165092835364072385549179415870836244390590937586811396481652290447338266202534111339278892838164782704581647775715371595302772098085258737942266020181745385161257279750779791675019054282410007827365067780366167626196796862859425351520730625266580642840994996270278042296920748540208425651284260332721416829372005563705879373555354207047378813229684795769510856093684175101874085411171751149373144278753368812050388639383894696365601765017506623728485767431493876543272163959232122793808355892034120977307352355104865862432534528916611249573000320704267100565568889588859384222236037118055030657993482119181997071994263169690079393185052033605631309437723323366858734729108527250432995629849514732028729590752411794728085970003062439153300820637461269695707555399725319922000003888967704848801652690548961627192392479050569486764798318349287828777890676608983818178093445871176356085628764227373649128421348973649866625756110073554104010568010804871405482140026587453815259127555514621782676330064742410514358788249420198174105434360265550254737342599099821929544734555472069769133367201661152483314127110745030616762931484272660850327931713844415299678098613721985822241678892186401449201489379079096745808871391249419013357464079753518501434910778890011822098917597429216174717806400746481777045385970496294128428601969045546456130598073681080028134889822951049333399457677169667641506654163926796563056215909743991206196378621520179947506039379269414095823690529059355799446572705935202841825815154453730574899553755980650882876961542207039964326718144273822251096366038914240852164796209684994847945908145223993686462472353756210290849264614560531575556561069525596954934652847678542852727316393745092786059088872274985664577898059825510224976297760988973520216472222925165588384813407498875482189364869415064780917990461738211810698129755890136827523377919009833607224174082389456993758131431212485702757368851441854519441397854077760989703835661036146229304929082949173876444088336108418092221616757620933278002881026202627466808208509637104177876668661289726039795842946064167332527786818981370277024398716125105007433820097269327235529587166526706010896725502396456579875107035512059651601842271133308738174790564869491495410725335440111212598696964544672099366353857959114384079143748969975210581552366411854237858705007834739951911850812496471933519876798757226788050542913908269668871226008603290846446981874010234460569132613878623339376298738205475327654831339904176081774508101395775462269527169552247666899635204153722974733880707177781646196410241636616885020104419456493021133785889609599884078173701766338679479705667052007287346001928183716463163515872423180707488548729462592398661907488398184328982478700145775846516246563447733121136491318108754173058656012772691570966497453563041561548919526484258558904257441314978899385188803942560892030402076866275407970321236834788779926088481680546109694231486632860499320832592278935367984022781590195954658631284594884410374663149564425614334098138820432950998086597519141575557436966721035445281575129452221621222659592006334138757866375801973793749316959211878635285305003248960648320637636099078183459482867428683282378984825444519345011310051927660173089403997413072461242434071801673915598215407842283851702228408838907231653660785044231670508483069850018966188062473890556741263907760077616145518592050891666413927384266567442371037510644437932244001065293433749905044477312599753931810741067916961583755929913379491323940583362400348327015142534251681960982735968132735020963677939322918696338472356229579419151568138255328395188008610750588570401745962572876384175655904460252680934808018932938074582273281113501261294899835903490261661528622331113640390702076488220753558688625968573819599425390759659624442803928352032245977055702045915231974645680046900901264110673071275765591490145241486714829533638811987885091036633177743625896394303921778758409382746505986293720674660283530856921082771259664626443347633110906786837636855572195540926610985386595288051389266201931570765373359339444813443414453787740776393814516477295103984322391562976889912669132962905645984206657791428544935956322010811126713018925959314861945927160815324740859208804620796993765303144579769998545337307114047812069724059371024699606020398136069707746867837532291562565446460456790629688602074173790964224652327084610054751288317781272456040732874261238742438479077602887460510317918040986612964706957165157666975061237413781498253009281571002194215781717024556575713184656103510193866484197152625573813611442578006907164404767357962500123693541061243122362333085827071414579021260450763815354455281145840245667595264243129577131296966208100235205963843384549342395388364732400998358440334053605438525434862518133396860934690038796304530432692938808595916057885412641582017942110492349141424001354520862626138658539222968903593843990882137160354214682754830037363496438539728528852656880260807299825906263877504910129985684688026096766003129784551398683731219088125143684503947816238388055428315778853093441501741812814403426992369332273298988976382900503230157826120670558711629037205945919674703383642498861056320496297923584367017154418582298334247101783779276512561453872425382894218913696987204527190977418590003860318548008977500877571789746121071271532669392093316845309261371470643950156155910570902040423500479157448203221932333280666945077507515149570406486990306104987083223468986166518077219132606421241559149814491622518726977596058839033161216738671797817180900161647418749606854713212255560945628193914032131384279229787897911548040072236949685867439692060469226101748304137220322997650995447229924006172278087077408063188456669117140414414702294514828986874567586517614261565826188818407742319818032695305765091374030165029732018363292498784053067274340791068372505500998336785448692608514636851928551756606761656733726403609614297534162699117914909334531675803077463124841134962448524381721070899701525424502163213172135188067441771352046996026684345403172137223872960768993281402304556001579909268231127092101752160008796180288922448680389016460535374169319481219333632822801776675418020646237973593145888116607098404207518161695821775885279378381768176012289971053436303946189862202818002270075522735457036471057500480323109342716056618663895450391089272302262622800844484419433630098757471417574487206443799204895595510719378398149758417596398868015841728641731888295268904007459364610289498082338466253144578777014567970139527745276530518171657218563103519616590449938127084756395779680923853065344317382570554413132212621778231767501223392656696961997981720717185611018605081185874002788015889561764480379568874233126636371190125508528218150404507915780495999507988572701457764186916753656893248472699053571101242048069366199948405211530347712925095498747974851744517940876806647383801367922167670285947993456029966017638701808871213133952018816831929078996696598419091858627938810025967140657739026281324490063937650827948285662750232283521882784104992117135537987460578710434270502408512073519571165504970650133440390715117119800771954616633851092980402465824157050365874154840863680298170491293208584395898316617198810790635860321095671045132266864808868495697319411061288556054588322465322412914291093996300836933532320266972641423743284582764756313108665540616487656025159338448375722585377678029986969284397419620290776307091047176601760922388142850906159231241866408851421415358498315607601077184022884421191588955254150752534146258214085286972120097279087490832987557574517944447130913546016752661094231099984070146776819344127415411956330233588551125007789051622729430256702935475721435470073561177140607174053630100123927353554919094670461264395548207600268930385140859037213824831523285313240833854984350589276665488970558939033248635510435919308813921474645852138635696736350438709053919209494958724994538324299531397775738561536410787046652202627121835444444674553544834775602081111457400887431509520923671042411914553157596751053630670623670237746476862553786960017637166595637702754017664399148350339173056717259026957567346611094684585394823720759963062667404645168769868184112290337868149750645167789977848510764150320662444822720179902723365764171964009107464621415731995694298881382279444551084051657151842766064979638184671438735502854317405656892334629855586271628314201611029961315090429852928905772538418348003612681448045488229826299543965105025608504143999319844395060032032313163322968809794875935547187700136541825783259685604574932409408114803524230463556941296456693863901262936434528417635113634205156828832748438322682620022834864584761811347324867052283659520203912819368138612457615230462574594935225187712619580416384401200275645684437207600560000905034987025137155698976823667405883448217620939774826510779827083760531973221233940998885421830715756310939210935915650306353509608043309335357778633946435972482548234741100693414316372755077845067383836233295834240234345849743867364251619453722065997296585807165223812339671542186332380974881084625811992197849403649704091955408180070081029984918242324032524359382546405084306980502995304112079343928908175938092316560538812539735518217084356115455512389916877824577873151619818910596775571527292832768403824118646950447397320222900000160656530071397324256069386393675156584633474995817865943528743294249685829947271001126124915448012067681337437389644477635933782690731926082978019566757854739301782533621766272766656018135930533964909851343605359886147823059028978729405109665647555288281349338872476291623087756780516759325958009574556844508868233155125810890222794007102500910344217966308369728016474170325341773706805712202338328941827854857136332840066443934093790168315090422700691014678449042243184869889056891576691375222799965001678373452042482002950395639455446182109763875100211980250139771238331248624071004279920605709795103101174179661934858090799107882319718094871802098594610499002036117491030880312804077521934993132437830489950738662193658234660549416904529815402579425411436496115691608918652836125417434873024675769798376277180752969021548621437313501965565544976620012656357412442904396919144464586359943494628160438595289709990322301765516744265995472665638002513322870600865357926110399933412215718560442934109346674620770958741935527655532693191687943752486681377242067976951651552768139634540609178530161601484007309297040644360341865580347015149788895755383069573789531309925806752774760128621193066493789799063664269570399113742221497840224399722170985712584200573076423203566587743574147769819567312118980961931126424721220509019795325243685612671587602256525948363779949778436144609941200935623917327105813548951945629230646215418213506666089458426372036157100415558091376163770767846129458163896159957405937414298336284285907732134505820082945038096645617042904608087387317992092390134107114070158820418743823365441104593894854926122545394893895671508581463102854505922053508983858560637870625951402367006380859115925313170496614051147703152482749298518757782407034110260232597560323893639536258403639964236681023769619382810307508775054246527632566165711522128783238290829064523498924503748521039580411724075006827827613335624559287782104167935792643030344876454108962567716259432157295014529130142955540011795368990263266844588526208092523544814198476775400145607376466397848757143860543689993383504102786487370780277716348213017597753442768613162341353128488858883660914866297892852594008074022447205375050765341112625663690631488974390509634444547423347250815927075121651839770703549866048680394837215876339693532254931955964890119734307081462695843086455094286627263527900142951188575530286141954763140970139744687587361106874490349389009444212845472051201435091251512330430897365579039478160813600871458731683182551529632182248882500481536961989747217722647490628926525943876923317456400453012264509279828260383455317836829873389881057311548517156193017286537841428524780137470336545051431578189726391186626974681817937460414565586347706175609944308956701796278347789595328002834963246081398015662071095358005488567506574446459533086672592995542043366965282600599713161676796800049410772826039015157788587976540819997105385814648751239345524010096841590492148026576045550670406517500235149787882832498780778679167522574646134612159145080481279866577875593985114230787090060271550996067625137412635985812492154325960486084546739126832814543473263006225900166882327020073039173563620605345087023090383490249056350085181404174245016989554991483850663161810693968294901329234865205894555514725351152653186588996051504918673390960382662952128801802399442436536287935281667568364492494732768798225348568483950218333888870110851575774367262837505220037587229223291909037163867475754514415803219989566606392023945395799255076091856895479598981536213209513413888009547929911665491751584979476889769000307829591314433635920938198798314540786430742270336465331821123362791769671160546424610787335713930179559237560357749175477152714584760577422779248712656220158564787939723680943210094853970148434157290930995782303340943722158298148999327721704996230575356586460970459163408560152260197038049754870085751713335863558965079508195597614554483032878732058496798227550111396701737471878756650945389786951613261458959431429012802781292177182210513060497487195254967002910358832216262471512812604221809651656088235740403998355657335875465709484818325691878898774567408252587881866617830014245298703882069435274496647828542786027512016345058967723226664821150952154572289721308262184444373445137248421266559851943813806675365991488244851301761508748914761286090340240635892448185137775516525474931782867162357354342980757673055901831465970787068013431998644704741561240858495556385674955808502428553198224592931762505892911157889130028211197209402002718909354268526087444817324926632414714976418016741084516225343792039153500037118870469802461193003485502344514255174351386939489758556543053254310200224666178581657695736386891449960664990463233306061928044204021946777308603147798725202849686578518436455142445674336188889938365315691077071242178073700428494745158489308774633585599997515760948012127186708049467952732318459134731823723329279323050593964316920125866376338215602850691499701964073998757182288351371146209722748347959665735325322390329804696998663908213477331742483104197022021301081868559020119832529864848409524487427558206545801722453643490001449279421940092573742820460618413745413510571324446692062734041252056126068572825137967260350904930870458022626423113164855279541892179996184324286238272848053963525099133259538135226114331843693565613834326008979265744444457430085414122512609686884429025330774697185582361453990405222491762991439955649604161272104933136842542540668383634542827206662873156192398801255705222721635961590816494396096639435109536580233238450529591901472693442366946668377903636433588678295975840498630196202640244773276640733465748592054604545612036896148168762185093887615930261406819557531299800682314479064781821972769838164436280092066414309117150100550230652042135911837226879200982909717332682129634948067591286514433146174408365006288431304853059998240942277215755281942173445282203778247864204555176205797264624938779490155008938447654238470939564338913556486825531629845623990276758834040880067653658784362313978685115714487423730780271995927598802944326713926066799306716790392662097872472234971585413996684361229908771107631079274261149534240604531617433353285568871760531610926899245414445729620563438806133550046410404400089414727277314464548895468229811195949302535435434176414019663916279153608621256732788366333888031922450406999641143151222251978193931079742083432341648553025703796707000527701853402919851480141657714509098469650460820327890934584754655722227509885928446593498141862099885662615466612441145427599733240874860984835616348955099737275595721247663886810770502269258843750933407995032029533395201011913995155419280280949671572499420156640781499408301071671461267668906522648811568100043789752084538912607772543578221324559219520998026072044760111166622678634709371778181629131596395532255345114536699121246178935077614340235470688800583177608916548168122382262795948976932138147577105849726587498797640192102961713960643385251849878870281678404271336010968970648496317110406761932479437797844891555748493168125669524127917515939807073991807950423057796791337791155830165043068894208075330971682353042013940942510039460849381846009147731137196668299017621193407842031885453827621983165106130549075453480909126724414364786227678324937886580568384687666197938217016828029319878402074555553313147158804429906186441960624442173956630066414898017067021995134383461011499674968488637009833494725293154698177947015560743022863422154102869061166560365696450773993790710050115021967535161097338210950428530165292971059871296086035956723244340527655148719641176927353406670072771330174069700172531793506946741813298518312311479575875643635136540397733479776165309825807282851691162959794224541939113592852984151123498103692696961637331662761164690232366871998828832709823819581055357507290775008721019171814481043802109207687606338832277558288902927788929003101695585114010872032296925174925389373020524552009001859425083983686650502272158452773363450105627005381093720100485526870455527563864811526652214633672300007757437018898460640270311661485104990010974017409782784713062040547392186567281969153538676403860145424476421655031625815800327791546808106631737657533370063406898585877682999687196960757899186248980057529364371612200000057942731101381089272683996469994013758382014777489077836241686574716500248326691818364609526987671287631579184766525620413424801743000186991681766250336537292125214866945378471311718977117397305664209580620981736635917787657882548726236875105015922791477341808913472199341928600716835119197437164894809181642733500904182021668278672077098483200131243355722325043493760327676380534179813750155907674063311388771517832903614330869824827046429418873613207765598508888267980918353771126734584689664708860512077550933393231587914763246204572944766442515530915455681454515147134038898489347500068543608835925163779868132405397843477552734619883200788075563972569209272572131338577963173286466820193310316083657454441577623470030784643392430106888131419672772723181112722514519202516521984564682778346563710835813782453487409668878903172872927251372138837511297503460835228027934468918621289919821856804047809448611200294195529846333646282111401354500468100194011736744513126921020039686795454120974815382804939327911823233617580407585799875766708736140751138253124871512766560984751236266255914508824100856127737933530252855786388753469327112281767878376282808129289885553323070788927575940057360414067843388638644284814980916875936214753184119210652977347589014049167776276302404020318168544208735065127914615558206399109684123139913398320853449560618462821006271362263702027898553835114091871781777421535811866651023146791299752578273753631880934488727902396693890282417685819964737224695015596248003365270044911437661587585354957860179706775451556431709348227559668931832991510215038758980396559795740526732203365663366232243216225980123287811078832192125514606363727124460159643733085164948968680608010653334268027333388865996765355080613827060907507544415238538339235889701464840935150769730270667179367296086968401199836556426983812981807229072818606386112240617645652598353460657369571346436796737069498255084716012831783827055838516744139952855227888480812179477695804018450011768849773531625334425628333050414069351005500911787942547745658275798712939756456132770909892882516462338033399757688221317737914155993856709557929534770928475804646051184741095076299195389247053860576767898052823668252949019143169624135398215784825992057866486793920744658633316424105104019910243309803063370013714421539538445112749987060984043789899136336946719784538558339962695021738092299871903568494647635432825040738104488519958512076733738316859966627164691169533137159825198441465582107410593889245742216210191124417947673950354675416298754840782324795589354292319595684701182281523651195380979289371290455091019487593088556255150053817653787224158099553797341529581303375707188469744595693216175275047665643373065194188145557459903615571662529594225881861122540636642983575225738333492180304324614262144159082536642753344859678825988858600489880330186492783347261742336541908877328372366186390982713452796310588996382976649510423695826779686441670460397215578843615984836965347827865969233553744173006892776560625521230103267916227871833802377313910954265993131833736074798521458856450142659023516614804403131552572678328297201930514132847725074840388128860529300140697835990658037219473956869701847407012231010379516215714007391901832707417669717682555593891124853684994344742720348399724715915916103881798777441683073777500459243799369580525001741025964858183504470217653759654098788116392425174350729902606822184310579659332059178881794847371839864241280588431379828662267139867111515647965547254047764164792231292658537164943008280193007042226412165789346128169082185132364973678951651030639648020872964333619395979055651098414731582674987371475355857238194370267639767103908034431770318587864189468498835628990332805951453178242661080893623042202868076464944940437313308065530587542869616353602576701044264457469581684758978098538764460688486423834945771922217910161355684853159999155840191722063019291694957858723158165843337929468186331532529888203377420078743433872942200934335985250611885028268102805878076124506214088046302030315729593402571457441935155005964424755643119870017863133184169503472244543921896655470680502899726855791958604899360886822276807590314353762132391685534847363126951603880133083803598958468382756406250155235244879364785087978723983460709675527571839700655887276819736710590383292898207378550547795385015625892200297379544298361653344022708669135581530033880192162845378875728595324933547623190027670870838902221118380598924204247970606203129692148467793929428676860504671618150839629388603232690651327518554384941012723240047335127460084993624218067995160390820542399611682796152574943761189027526363092274537634696994619063056038469557998336849620080006996684592820203445766213943063400359149485241175309383828050002082749632176791182355616300159639015171514018847485405634014055525048726796992186516118505460036303260746069304072474275323873624720682774286540643741406132078725493540280188266262732198859171739472382496493292715299874779401508780001725010157243799985587985400251217339033092945150279450404772324687213448040697113702701356419509277128382943945379831638957917042130528696319755000190014293218135609213214562392744725984783288671276216387990708518935200599289005688857588101656756271064081420085508596391169112891079293380107669463561626018736819054894236253349236637714769639856630542227475723748285834348701855031810726512870470171170678866876408215518612269149237412113536497371689877886565259698970479221070503633474581130236548513735365431796599359285745168265818191526055770626764925475984953396341930535286010781087623525216519463994984562344587599785499873813917256805909517965103550477317526883679002121723903509487850174076273104543899230050667673226973542041121019630243165115582291488307538321390646808956222957434976335416709433027014165594300707015441180803952514034231053285947139479044991547943776923931793438185390425993738346453326629467101855512173212941483007054658453143545265158680230317162281501105906751787272716648098984273847796337396049930597698086008467074866398393027596993362382283370785343007021892941550084827952660954530738237151669486434953963558686053326260986576010511856577625829893161351054593777651543798679757909870462824562866719865042437835574080166164327177060445962300586003475430580300957879470499844635448598040040988527101555227169980545222050776844225734592085976997362964192368946620241123977611096384337902868649980063260469124383262284182310235306824482117833967453575283326465130292032856554245498704721280944177922416454903270486998878121464522933760000131065139933513381544868692070781257693084654087353569562154971383071458554552715080932797202087405733876018198253943888530819911030116388933915832075308325854224092532646849287390482131324217460631226039732747320673544221329575993930643695740304034053362864672566574336224483485777249420358308220778709857837087436548970818819189798495680712943180466150895040556853849868585247186456574836529181691045425295126671920259270085335848245981187629958003153510769156561721103695132914287563896429044179144698799945756186060154228925229268818954743269820553085474236798741372968154534793490976119417820858776999433131716966306621018840526696307206715018102110688537634060687180978646997596151059785910602551228549628220701849937881138409620940232181656213730762408027806644114230283115263448390692956751406814730471176714013135907252382445860552298060108239537593180556966226759256980414265219588318559604054231245375510061742245739217853138310814425879316404679551372187185230022151656224652807374128394212352977155897911441509438773724838689070964633773765111110365295339567707206641729957376387195082343143129769812861470486729430259462328373119187894937040401362944949774119968030928066631125493625358251843980287717111872226657219414889344716856589573955626557876164975431704321651541602058952249655004581728114000061419320243749833906639376809436630778716414376568075889702069870632109438015497638548377198038368377809935983488604387909736563114019528667949397270958279969787827281644327913867401666888735236299738481686771513650532172412920984437578510347045331415190852850603671205611058321077547860432152310273796094574982979873365875772460700396148999127731860962344484451957984582218588937332599168501121722535462109454946697914022938636968072410515920016253315717102317962379154908074499803314891820356125625841334751689848316137166070831105513540632799104503506778322956707316166636439891504836238290663220615435414801110491526519869327905484785097859322748966576798334547408059180823655032587393953119715581618941222135784290304837272111216868724870516842576416396060855417049646358872288313404914428196980310827147880137865679322872080027995192955643002387013281960889830713051307894059730897079719221945593783405776096505297138634106160590529765795228626637180120787236546636404012136478857141787496676238755971340254305730326959593344332842157787070234309977522499767033488841422858089520140684869977410052749191274495815944804374060659491737250700918496653374002687347374661852832381696787468551719187570334216276426613615026567532601511866382168496432782415793832014457005671880099253938132192619540183100707566793022695413655320081604219372234151501965354754427479977327193129739411768613316573870619621420938278221526356509692811490731065720559936866773315782937006511961205326973044441186966826519621623760575332038563969019249209015665040776588717421590118780236232610749969270238605304510701433149880781608019276070518722378079331865152313382910055598242774302698256317796517731747881366009636914763872062848429705176880034641152804721252677462206751506761877841775878845478427704362005782791789769878920544858414357753746056489187938355084355745003467895202201481066278412224503029294028319828993828709810535857086158179937929312978591183448259409216198370362240588508262250880243406021406062838543378915175660697584788898345873709209136399432875546029973424305738626329149167488816758090244619095892917265283176999121761383296712086127284073176844594684787384854167324671112051402963939938794262818891536690549655669122137765078299387298955612981908541375790894001687550062424695462535754945537088943949167785075202065556464539779850165969232069963582256655106866975583558236842118453141645277268262002776853785023156600240617103140068461780414315272777918494613310892703539884100480030851646122272230223221567513307670329319719793244304766780389416360698786638356770307501479610080498003246336907373432337962906494289653444399193567797027860214863717031762001388542416010297025409471680683642195792312023509762595049641719202227484700963940979964323996266313084526688644118160513870180258144935907401150678361232290522519743994235345252410264270218965543729950140534138720126631689361660404567084551180393023103048839700664248101677515982024809572789527941850269097417586742936908358145005206263588214083427841893462638609185762260602045881242241883530977713981082775681020358238912740506162259712092235631158068726380088088983636153548475388534843008049418186975566025523855869060834008626626936855347710870259537194056876339534386947152342669993638156093421498405161632334205497217002452773789959778253653630086040945789021501369801470446856152526893765059627629939462829198538932359870455839735355532521620049106638231225219755261473085865912939708924312931381359681892550307414015335953613268030203959384827776641360477620004773377196564143770676340973459608417686416383226456365453548358543893976099719433151265506591195337807812637113373216358530407773577037103333615942857908417163766061732377529380918481960721603069582151786925098527938193654808893419067797046129617407244554553064396292614852585026985602133160051574270929207367004650215946671712522782051869695297808425780801439862318279052233216071903304950930052857625446107330637004915515644487349353967654464602331235407942800337793583851910162126482838129007315492762409193188272100995219263099114713708817076440907744886683567629740687096690440342382609464509214154559097650207231437757083333208120716220489892340898158638707222069957748693077177287925543571905619552329763705377599225453140135746227952255930380172509500798725486921551773692492961684560492404922649607251594086277298947262226156027126746984137222954364981748643043483605017521382025455986123593879751079098227920847744085774372594163681688983795976325845379062689315957670118637447631309220618334376830397898061856906458897062293926813748251727815483875444101687379593275047083316224889462777738773899113619209064473553927203554413091274308450025261907325778996481175482807849173507170554923634141579896397667096524366943322159315852281868433161566743150579278852109320298304827875324942534384827658091115771586696745638671387719535554191606545210368340209583294999954840593564753730576105759568488231469565075952272553556971565983977100634236780327743043777989881582580009812546910046369861861033098134360130808865090014223709552921920085914916870399833353501097273949224000373609972752256431419246076189776117260688993885593195763735233989365271610225807240280782414273425080919017316960459388008574593990765850379159052395956677032209645695436633766078807943319229331562205395141768017191759876661253196175396726122855409145796619333018605017070298808263063206847054519883407846958512264524182762969088410943101312358851107031804481787212147638438797830871385919143745518243213372338617080300907960625442863294180247538376365617594073609810705673183946154160173908880705942022913320707468295396559475791225931232183127720731267135650466592484444006693393793078894022753818608328321936350539109488197656782629261714966537086570904532276894552683831058769223719189105521449631180389013313215184091015863089071741981958382292375644228427871677368045588111468928031873104247171035129331197826578993254678119417555874433041511268929787714343296687986473925964535982058961238173263690985630855033314038828437266235737430602857327060344079554809772380451828053174652827792449843769073672433478478320298705776473415685583902023538918485119149735440869093857316758329761449610301806509363101882573309311988476352545571008157524458522874902851964987950552384001883958789843418500917396568845690391353548291563152685659048600366834385967993272779920322027619836350727102568825259448815543518725561838088623717452361005999876456634603815915622089521707473368671951504735218420494169029557778198367895233714337113633119400660988321540962727116756707927219244693696717785547081849562791952543335807304536721963684173752222098028968320502055628977141275053150501754545342145868330528709454851564231336607399807792372695770475597249671098735571288609706931531366914070351529305220430261020758092870185079160207777489980290834464913540498200612184200082440889099403141721419166250350667420189804945422166036004626512905428773025050447857494356298950554042320567274382222146109822096054763518615320431094355529826620158234815030423686689614604345676592844788311366023799127213384535458328212819996470237282992401642986175541948744148170439241729981065395604016705614919458623973502685902924983230390016964473944225330432546924287128195490519931032911286390503828952192246912239406957561990580359369559985808480117893341529025511971037461285139703662928832432919922811998183679013932386619709390782244487876331705507051848386460436545916342841716534674193131676120309406980113296116768166476582482670481532291448889916050996481046605822359633581763704754599649264444726592809605363693972902618587519591764899740721612236723322814090679109336876176230404291801052316187422519099578774531169244409693616941910737575206400562670741481836705700225741946932088774190738603242235750272311903433005333577649046154852060615477705792924148190668143081921487745268720263972355169132846156771529203621213606543912827647417631770869102741470568647416939926768160615294485166848164327601062378656188010595635211588465176144690851345486864150190586453309342984780384066099592229084422663052230062492946840444921457354946129601353886094886687672677386484314210732140635645793988845303973703366990279211767592745892673738640771790041507305199591101339148712699963449295783246843419140816609960785480436828210141256346675897221355536894520804144555642040464749748603262337772345919875188389007906334722469026469606397250148008649609424205717415149374082693604853984640057511293366268725226053754661535297657708505455705357879521155502328020170900667611878552006444100713345855186446791762200488181174257061892325601016738928422902134507372486147100072147306066633742227531064067600512998922320722231977325945700968734170282260192031309925520105978511864436764309757376584872379659299925005633735012905364637157478105987082976951705060420382737221256327182368997778788135588848124674257639360482365124020633144818160093673633702591356214860876671769623001875688298328261468664814198731765355005864404399936583909302897039279633767704467592806445618443828422853519878518841747736899796232672465445853822630216401419033170889257229710679327203259206431324606335394103363734589761762962231685731184243818349033558380546482435123426794017785353645615293464302796028845203830601254983026634169912774408712785626769904030457074089974573472345925940479478048938338933196374116141898805471973422745778555274924099042122767514152937743016671402272088697356785958420068111458487694797033906274375360014301172418622742272971236914635820833910516873600674089719317007058407239047932225824755204027864793803743758121462042210580599837352621640097168115682916377053702812768822353725830268992956523939665644921506948554474198100433176421389589075996782811802603969040955632069133294589068130434902779856556485985990559039966678316318125672605022516915014319815442658260120089374823329194511234108255428976676935941287555297070339487131269078523977051269595131549211399678557407124659462360498984317701986188770462314063744493372330133446154679464687895000000519282558483902975374159493960525345752204501737646518822961329761171123192655824038824057559721193541510345430096952372829664705972479565483582472780912853747034799069110040764969374818480280965766444263897670442411516012777453988346813836028875469265025360523404961157135643601920838552478213915668999713227875928154918946322445685809117803605551418532133169012924305978494402789786549732475510334648260815423309869858806037227206798298483207259893774809163278997036400458738030246803471888707087833788588999423062570772443960838048040744937328828373701499184881223612737496879569130821158329439600832704213753088867510796778874784713538576246677245436668039473537620918146784624214284744178348175338476481023647161696353819214577891334912667032893430380696506797327014400837944500939455230608538255554986615532192357217642783599053831133522986223215722480645703606418935219667471293476310692284434690528220763406825606082769079597832814061258023475839172808942703551844406645408848516139362304301256330761800227383148682047792697773091992037692559518285478427505357066077594907821163573220901367166457299463121671584084437546822474321860379854044078798450349395313414257240550520894359936842979483866116172953722981049320787141302716858622389525939302400510222327967569985163258393126500568764998182571486257706819197893709255487059466071634142784129669198946102210106754812032341996802318891408905125377974889282027287568416948308900751469648512476398103378589764118160440114772869093563008647153781897462182100438168172415517922496731059284713598377354531245904395842201171283065872335653854823938701591713622697163536388112534220311734942000856348272256416552408212054317178289143634509319990795179138080836193187629615974228005998445978952391915218890535299204350058445776792265208809238669272818842843332043843369660445509274395161871357869894235597406731783420185352614928906767394350186916107423623384878210385687704612990441226101123525282683170273015007394548484816042205828010457760478493060863002421965508327821430479532592410628495780665985529568488169744989340069166677644858307412492557511399149179502132000222802630610177078513152592794338808314386516583025844544978839259734422557104667554119640669275777437657274208492757872595567873034751936919645599381762869764359018737346298220244059764236726146815668881017953424643187513805931359703698434769285450196174239787780123405634755440209023944316144795575626198073959460483443527695762153422331842174964632992241798444441281607273301953775904077835249767898513402630211313569872790957287612486083396788631247251844874764694082596650997277365245166747991366870681022016042565227748808368478697754926741101873800036818038559075483405282795534286755979934532624644341676796239942229540953519780504161056991578961449595575196819882308213960674675311163467639721232932568158048645593077838350509142319518342685184546343262236687884020680989963912981860797961530110712310348341823437344056873775152344559809415170759239608957188401286621461499847021851104573602952673866273220237108807017443797649588701849178876659258028351497319820799539588178648051867990183129612722176106072196937607732746827479185700767389496458026018594954439337384235735342135558264448663365449247336156997756341778563519199440223097683772733783390850708789364201386714539876330299963142765093027006927380146921065633817132885197154118147981379939851493395844132876819927183464824448239505697927959882976167864115070854770531425078039064621733700738911544057209671720277821773797436649401687566940116031649842984833571396400785691541813517417255756041625511237047122700147565271539407125247450061436191307157395057593384042352824826271846670422883236466648838503401176569142270645115263176600078773227474248327686247624884718682636902881138743394752425700755982978019605637692224836428798865928373517890406250829464611059308073991332014966072354168284898644870332164229058062689130446928873655862791484423494765378094574663352962309303678836847182921133019784485239302379734179315813183347055413827143475496676758476359110193121295760448696992636877299214571368641635353164304884263694972710100659258426940430325467685805784117416727816214715847699623478488301842089250508936885727313273545254161112837792180018117372805744151045333603590781916873168662171637296500457481061648671287999688086502151539818186386645066783473059622117015587069723213411803101286926694728157832787440753852219786944754198835239225544467121236462888205483000788341025453620798775859938926533320269929122499957798847825070973487937036658606999825189325436316435867059247728877256975643901192780926473214303159103780124732004973677117679191327575480994746784609684809183589355119310639439349857745067891544642167495518784649213475167556541305596333870848835063671506124420802836584275679500391644345492726607844190813370309974401685342661918268002019195182937901799653989596041843882245876950930181560544043132768535175981880990448174718249572140904751156345126547654629312763886152388116077788731884722452450570248090979337445348680703438652840954657865711125474334681061029600665428620986049912381907835223383906749852269185906945474330613864666517265738103318245523758167184247268076450662683523749965914543369009273748270868808075543843054782542903493539469149092482983401109061757365254938579639768875953367592841675777735908838697914673870041432249118060737011625922428382211384886369257788656212626605761590951899428909232215849238849013262043720586792816102802696536153283029547683592162837928905384917407818816927532923773181052152188434412742657277684618688020680090776176947098165026269929010628647767537027493808735770976799431923504076927143887244029889878563129964879218437259042938218860096731052510936104451150803364897088560366043198569693457086369986687515326954925675242029892806780200655621319233198708269218432618442864463758510951981101493234009340970421297225464141180113118213006775657868032085102540324888639534775770416994994514743255083817975685998462852386075154104093177210024438572434033255203368434331990557203596830360849702599557999118237829159947835421823569806641100996499894476896346618944605287567130025883408426658315274858831525024426499821300902693939944314811094139955004003649590949579657907347224022707278231512197750712128723449648524793328854483814499314582803553616332878990568824681516139580784269717364085471849456234923066856535563471937447191682020349504001959443970174328354501412304396968566227681406794899178473952299241089258640473883070069333476208847629750356973493114290363342372953046002660724441614394697499834505679120403612043240110358433237105358664618021971038449304844619183703775162654777606508468055960885828738029523040038978112838200850103006060782972998136451266562888145092263234838280582839539809928733617322599718707741570943292016057525558573333317271450870147766750255577831231068372628182295704752653952248115321457478292364484726942531742928995413790641338174642151335343814455186141008085328928722204983037643628476945759308474491703833266692157748116864381322435093529050510846768919308271222074043722812248679708575267974573286035870422093376987968938075444985219049662344948479383511975107968853369856845799736186487813564299314895379606056690214983137826232290519636951562629094251491446026335427566634134412194419039433480473705139827356759306260178297726879722119052595214694616028963199684882903004988926693131618709027003582871072117034620691235499002815686494208720617950995348495545227746826073674601419719437576942529304105722838802513561156100101298663452252072602688174591585449660018740760556841163401624050102183011526912670109086235168478131071050224740758533495327106397862697118855328416057407582313442327916653999646186051489902049560216885272841790405247639055699118159138255530905651630396635105019934154356139689382695324608726539380245890046448679486704546733041143290549922534432639930173904842842707766984650457395146470571639251333603696966524765883299603108287072289136202930388231505979081794654516969605009033115973294846882485785778332989606571676271454580952911422741970181824254339712244635907470403866341843040446631701285187985374215994530398010945035197745404255339925905383437849884694618837144808459638212434520054719991852333120318361483159750447778992298647927188973799519047582761445009145693311363489152385629671448956363796357370752605638375266043373538183339952761670167650555878837759755829908428429208991116563868691686274062056717441864767079203725170367706617677160763233512858861392477832753779021175469212932507339558521147889595368086882303983840134677191710899838186397399384750571913720363392278997428815073905978123005420718309060566933360173687272936653078480016276260229168174094994505258574050753329188593354982922419311912222087561995414440138997849164363138246284719617405239496409993592125714706206761140985114970308957640657170239730635279897185310207408932158459800284792976058748089261655269583615248159174868648702015646835821127267168125630498553873314160265416251768340839247013757762628801994156322794707840410546402368697274636476744124658516874390914366651820520486422276795942101419404879509199465223786606820072352079923134842382018262285889598280792173677365368893080249932697176933063377746422445566342936804344811215939704056141863139221541738593496076631976504377919659049250346671376089159722265957113330255424459423904138006428356778121282208783596239210641537347967861261083818229507369829304724201900264532214974077625681297061422365442163324227246605461124350680907078440826819616051679033279160795058704002366755114615670022927803188005284246630496929652448248193149663249980623969028466555648628869966096018850809741789517712949056545909112800671961316979732893247704719405480311090096354149172852922337197018650086440838458914928875169816385642709053589254941689208337657197001178821824438448064421173700282196456835832429945472368808033043065614063370687786625612987568350245922342892230115953526649868005265035092872351574004939793293026446479565109433497260211582874368802483196976449560974144331055052853309008192276531211126571519559584828075324428172586061149745467513909243214573623154214038507710126931814194516301449849300324170872449332996146740721873467763458223162129882481746018985768836782389673840458754970799894776327974256856590821975407442566600038404749641603234336915165080643354293111438651960958957479174546885949364856949938397313859123745648707109486728536694208936134056331134547893287077438699905431327236906611680052782951030877924199928669415658934144288567811010536352798221306903751748547780407403859448983625267467141080789443631228605783349434349549478016177156237507716698727397165862339607687234180650690791075797339367570129297564080585609577763230425754088301522978660483719415652109785003682052396324600553584946967532681684316837368040437029683044393511089742614111902476306009569469432111274487635166549663770792446337992063197872804634412626913228898348107698319563323338876292006830399937698681266111752084097219542697347927391189400419388505711532431074068157913999865550216669821182325490904627455066754468854525535271929580359412336241531235038785275613573386089249148024595350905695255459748248513099008225845206663717398027681927417720458449095207259596756631030538981437103602987030358779632655277785936928820001367287834213813660777104631246056275869528335760014500440643947595839947451317587204553513982891517400243597881409894660359006450928153902318593311270702580938271992972223243919491544156351919747917259952417327484982231517662085616266337046838516740842739903389239608843965762072697447239319881273429975953122050303944067809031002089184454214619170931683313163444833176528222976432543435453428797620981095148682711920491925026196542602439597602501283556616433423990242319201594460361676151343760846662157664363729046224903696756176608678434134953783327855355592947363855973563201491832759934021825594912219221423346541353868414559800262050166530995628920719012307443450362735557538638231348077182544120227689164143552173920802691399743738343392717541757949642805233889381880142611453985723942219965721203975483424063626594264631336218933967876887830090237186958740603480975283174309898150138954914585196443535020080396677920400127414892644482294689892298065998483810477499942339796100466584802408871077942326649021719526094544244106054267652157226578836876042002311502608874443680788548251215507377806510952801760153973169530661484694596499193059194393701691030423290740356966826790300640421399738087578069177660512892828297502970130944339184455040987383996135345760169894895522854808453830871285972172525585986378452225092160700929527148740272654558275820432294132946884475855893164646027887616727190038929365898817330622962045129052010124205147996118086511688220223053684354511790098219295955651785249269340019703999635013858039565165305172670109640201583002184696586268988397070964561239280541737690061921570944165211151104718206103242834248282161384088396972158554306450961644977706607044720807646472057845267612770003055938605297721480740360880499498226511149549821274554209301413429231901545636751153457467655367350220527802311682587131346254723012960028814474429325426752382603516749243702026950644449821346687970821559444846114669921977178298435010297617144770701506411898037101695377209997119484849946129162481647578616535069985947001202879704358869035935517433502500729657824491822713166516315319362267230692767633083010266009969929099722815637523976708266829298609378638727816835739946219160492463880674085406626192766009657545154428875965552041395498009065235357884888505541477778648422633397584113529121767479853086612267586229370886090491055916411113773377910693527618697355257258899077677592237363254586588598032133677515922284413427052157217046915309191067796149122729788446246643493634354747674659912406872611350662443011816409428902501280406513652315744931681823790746707872620223219272434913012419952632044890166769341897249654218566446556942005711498407134265072138446631126001269213416923635936626297999566861020608418493256128436568573459609566035005712167915646945077864956193929736711467151607057983307803067688758879102035491336604711899770759070168959993722902061909409631074247645871345995811438505649633067424759790166008510444713314449379669102600544025753620501317186363104111432847499672584201925589615931953329057350391858023096624180881822222876167553507048468705729260140177773185894444698515265728496453443918502960142373370536420229074289075251133698649002381013890333573665212715906053479410581069644175568342494394639926370229339380040658419449128479937204588850929122360586064204388115760527213922035147203437853735901160081566980639850254417113190356835795749981611534495680665224208336028442553402591668203749576507150794607022549505018948106149398159684794105527957714619063260743776525912126481188909929224371566612824731710086237206551562880682689555455428263865723599847159031829145878770698385992311779533794622272917462779413896688275296961316582678983715009055064986622526226638426929171848891310411447612435205673868379802881753846845602666353332392052245848511058498134600999062771220481445554723349997688248780351966453868188678801973898458230573038603480578157337047604299964113033031391731180896072290398772943403234025480926763962190682994727741870718787944694871747325062612699466972883101646384545140553601225419286601666379733568990897275654831486153010494709043435684966548818183929514656926074899660896009700405938108512187190167928124074163684191978186537492633211373600280662190407971850824809563521576518921143057512040631082015600037946583421293009623084129289081358092719316830884793810048606272999110747839288419534963034927985970417970128256897445284696161425150094532243590618656649139849752630681647799677315792820514618073220783011744900902817305756962807653745709936217201566311040040226025057161818989729941075903487820738881834075774330660668626139253497644583663342058072332994013269715150770096081438967683418473049216757328209288741475479783870001492482089214592909128109088503463883235791703524039870300630681078477076698593650495289222462514800558069729530534520542736374211215150803117578504560042593941424084829564900985983144122359525577829340443856100784986696865767445551315455079627968746703677490578165618375314827996633548095191566831111684180946135642286228270552516553058703942170886894598414162811990870781297674277122809121619368414665627324570939018074235561482310453399536802971989162139742518153755225322962964162251954810681136027661251232693793477478504367971725352227828861144699020556933946365317485342276407948001320645391053839754079355395920291947031794466382414772592395278149556190290458989525679452855520837997037828695593397371730081952452219339807969595371152242532611995383834598315231401057699771670456869700330004456296216917693172795276412633237634867314227429166531640664373202341545577477749438583429253153657584731216550015570214612318118699049151170442427793451389594799314463490772940237319431788273790268740479416020381844284534030719737441080903656598870486790446237579663767715349376310102375759549892644801905926210651425416156370372890719689477194383107649176932213847432359228187209858647819937511325356138400764644724756907529121001062341527821438352992331520895316375492500677795572700819012037729778014701556069150133237515249570513779511329089131049087139512438970219985167055834556387536357489402236004936667966944284876731849245743585304070922190519088226777199423026028403863975960421266098473761991211628845800780540226166134982895329193654473727320510603773722180584531332236568456297998558460368807690306766765954737178272331741835738934538017025614526537221894251927961115800725235849252370961389288196473133386300124993499250326702351112232730472051190231912599863920027091469117198654737002526761993014150199680423117419197395326867538548075288937705297217931586537038529877245891376844814940926833083480729428022594559312605769525848036110848969838330706662992360320558443169467456530166369454808525600308469868062306866327068219439092615141916029727203631373816462624116642066814824233307826720178449259375726275779027912465185451457844135747391732046220181538372632577569101895846508449674608641906334751481884220076733598669787777297434481011723628219398657596362442431585446382436855012140225687003100231585709854288969832427831541833334693658994287276876861247849042204914990909436418890666188119737154487655306478580325169821604689907156791750269347914609057329893892432511450542265681918531216994312121115590073623478015598561510290053435455815883980061264773584725182960314166278562279432757176937261290705528847656915505534174953448664373392841498822394180524794794179533124392013218072543774350111296470303485477294388894128577351344645390891201480248974158388100728251722209382952907145144049909280593229605460346514223985386972135694724416137061011294344175118888615797163250817882880554120180042317149734068983809249091988062554899300813444310143298193113899822370965977619823843110550212727803032066435727634357219504116823127103121697509738328559714803907568916769376957747810525896181347324903808948212117845939257467996390315279472197410854340518060102563386538151046024651608720655093655337945016929409330586748763255303327689101416176432229244495279674796857264523404889932331470608041575402634657057158679141820574368481770851250797281937339035166701428852164992417947078876497145900337915451595418425487003188371123115041352906175304601927855639239888062604588381742874441567340613813028977437819788197400612318496099019023332207202485399257339400175615860121879409497466386583016493769343267819311682595355004992927536788898544837319996392405384166224804322357103700236735496941336208190280453297455225222445569505009973977281317452685774943927021419781097480726689106858697263317803932690828491475141064266614047721111606058486177011838093833600070110965039382974029630206603743507200945793463365522368176943528407096417095950635030441434496901319979912783191091645164294244796030013664202744492814965437052034499060363908888891965459694907921997708373072431248834940889985767647536297285788105166442960799174677565928271512960640674025073868962523796510453537701735640982547045827601276617418924992165162387398726327279818068489769469163809705325902901171516367636553027244751395780965620738046139291484387040427173061805557901400609751529812137016411042295038020964776614345174446635796951211440290807688147394561097854578971731736659403759775386867573734514271763337289329850540858748143280567078848940288701871474724959316622993010418960082398964506332164163878571905550944690408035182875286662570534422422967226354484173549654059043030924164152152491760028911567812329532978300044047762635119913478101210636879288901911271424473561219483426407921697365438684511042091568926456197006303213953054198889196453105253770638414225908164298488997472949293644664970201922918818789456271475878576093838099911098220502632678925481055348809566613282471203471236733720692781402062172358528472307884661254852647386182426848048416980487200851501190950139642601230353291282626218103558827627715381077657582036832181266581116308388069036971251561542476710123580518280482916848976248807287220124209752802689309181387241266257038324211987761219417150515801794784321520240216255697117015165714086436460367485521807015202094709961207905697549840006867080525678447017292121071442933047419112405245422573748530339393683832172520755683731391666285480769033598446176408973910150167041507127161217913578535751758632613786540207877518634590443363757172354130958890343242176406070865042950599883043950711231582223406389501872661480293862180715774859770103096558441166446913289075801112465303527099869056152399301375145268152580814789845735029224818115300387532942376759894257597834007846640163566505665936682718643497146350801676875666034886801927785147799809286823167268905514936331546649287123824336499461854006484405597492926679810119542826014310570517175353147197437999682244043666371209335455380318666801513551483985720611968887795787604185300863177561985739011082502590840840506951259851019305268174029258019140605833228294562308100039003351211843625285479565131847689110075807453341425514629475243396209655569956131548970159825704716903950530155338869093281981399680742549577739403775575717374149248922438972527462966297258296572761938192465561652030376350072966769181947653903390925088653331050365378055144068071230893405837374883032920505547664269897749959341920050451638363638763674137941641967982715472976100324683076889164926730566816319009473648682939974238388769381875289959665075723289429400959687778091194415418468854525030014903874107998107062452961916201308098143244073786930371488475742594576909301407394257191167024241656291497464080070718823020968054154830823852413761977836856693351832635609737115094976811997652661234340384658057532998984316707718180210787859565962244299001931813358519958582159759995452605659047580519764386228582352696346195057718492613489340394438099298259356909984291413343925775995629261228722832388280678282362276121291859254809863033103342618029179277664563928520072644493841357380578549422183908313599833280396745336670148509473733696289987622038311144083916432893401564145469220140562595461966208872101319025115001783892964473918874429960916669133978814136330214624338018032580339683233026335566918335689637114814462184766072045807083378426305117440348561365213750885833969725452081411993531454639564122532112718870771479873096429144088596027169839280124265987743965308166335009535202383399067104610968890675574135772725009490117926972168062856649484020398336200274509589594066859771141925771276379410359966408622694205919543383359350666620266135563798693784835687549439982578548479637046695763448107294175840096165034846923470811587626349794061778782827343499399326513008474555754427015303924842082089493214993513872048658353374430217826271797478030328100516627287287145082746556594364428303902966295953545402095509948092997722923404692124509752506724090349474321915632315640767297979735528499097548707588270395565720871994266357081841589224357645867020439949700498686503289691063935756643118028778301934032787157743214157727059009851566021895965465312639975111762215960208415068443208307524119664677705587301023974161856330468128270325709830701726578079747441318349801764832269793522398357074759842030095756298825500346873899618796340291023004716982006459489266640240649132887740631491044448655875298158045231582361027284523748543867074982632414690818270734749188817683886834044826063304068351289338029149770417293271450865832697230108785765455263348495224566690747666754804621740112044594360221304170431553324838139630734308860097228748416856959130062761825199251156264617612275675786859557627812262626499421406466848878083477467110397415313245294863028192289910492191106273333190105660178044651675930852317744203064349074644111885323227542998209407881681464296121414670979012864279626953851527219638626900856408327933392630595974170046852970013797455783783033369629895061976516771539068412795986645257493877949210803020817683059703333063818845558499267898658858301990365545822880205161217473509117861780447129967536137217015182074202887557924558636353055357679118314799416751496433708032888815174492275039501453852544879456404335172412413557282761166960631903746503875370798927486569926354497898067922560710445597731054366100821002787166229049338822625113151705920862159664114724882941713810394859038995961543614370103941478542013339698063170971722328792707408871472829104011314443326129724593934295380703818960055117420109832736361822996250778550135852569835165398558139399725345205660123926768910993181442911420997946032728703077309826721484621985021455568637357251054095996106712332555863408630004842449494230856388297789398679615934632779868571942403215914108225494486885534751889018347741066148917519803428689987963556215122893151417460651138748603864138102718127622631694071185010870618389379608781779662834387080721669200726921869348426377211490814849911058876792077617853613213522563514080572554294528069387354930806533131242384837270155201270429034894014479850306725817732349880248649923215435281808451229170742434887710305375168530395753266454199518476754877820938972282974658947244464409425599365907784507738003419875509568204398475571442829660375315563495204024096685300186395124253815867661578471242426212901853896757904052042601614353162165553553951651341900972950583714995946833696952885130966856504291605743623620017496727487085498769765693234964550815878709603496277010151003861966106429674177491148993162594678999276809262434832634937039118893705972315227367491904843958829148546997465713124877632751565374000494482308263818634712495097646639936319021346109129360077553925586431740984004463675648611483056203592224934530354749688289311552373633165618764252034836212399386091211709414877522575006329328992356232218875963274756819605539422748870597937176767004746149842958597422585638368819306532681764309423190886109120195608846170316236422456992588286836032746505258066788091313734373254625345324086622557020314395631474803537881588895970883653580079952274446816818750184225804756339559825958099052694254039288331036722095111172491459044243364035348801380920764033971980818501801621808264359893743040339360741566573202230721741857318204905248818541228207264677935735845486723634481558160696908998982461526233687062981541466589859805580270834767476735024791172325611236526226370460021052475130170564456462546187026711609427983428537039129640911797314891581166873133957635623823903245189651241719884014272061736885461915005410774565873464504183031468690557707121312940369628403448940865919456922925778540366516296234017737325047892600906757961970792243364263119694307906369678204442284277166172777294215865401774023216691233368883315120905314649180573073143385947413172199698341395231443397205445486272877155207356566202946202840571025446537370973906956869715211029902819134970666906017127649583649424948525695303647528566276046582287108598966048571096177741037996120203780303007413479512541444667691443610058122070796615665203554722781335374545281417762606462131449688410877205878342671714997768093012233392892045242136177351380144645296516638741034527399352430094125813011869132540316740091572926814142721065717046149744617991475368990912778263773648344104631964780755092229003386896503089009701330504063005152774273167271014472134364322603838575336956468446396060884606821249095653917487291226927413946593138460510035228985845332030495521156554943517466768643291856890132043434831761091820351627366076513859949388913405674922349058130950398503018848257531479609093145944573665696615157000299978704143327338062375588960266361589323860093564040770758540842629281245977889958088593246170820170535069995428861670893722453837728335161019670907877762554773294123313113755632252725580514467283718220649299277354516896827599524655944878533173702181394972558077315747916117219508154353104200470386115717765319606301648422133658038834383375601321589010895717536533199837831107620556811777040875649630144067780312762346799046817019314381656771492753852897012551825594710723124843027574738523729948486334478497972531975870959584387055357053659273166435385767997933237280694675861819118113536471709913477952617162118306975276114436751143643799978243013588881496931706018023610420332302291876315649098473594440643225117576419329293817061759320500661811417215364453706860621775631302153143136107787670031481681971315435022895397621768066420313397096073141680420791230432901364355036499707065225781342731941494190556900771547580288571978175135609804799082738181902972247683131644063914205355988390496949121278799112778260947532626303786281356085753788405656477913556098701025713036733596118142735692405683365937855153425097139970979840850564253660113433478345597482492862176126910661550589440791557081432471550159711677123123776397375836372074758887760230195672957824797158784263335804405085874560648625718086829482812848179128463526959015443712004269854695899921855228114423173712543435828494482248634429309081167230575552594093518789981458799859466748771875653063399928298515912838031322300347849361785877453881863989138761068328857994362939321321240091213276644844334782689270158179918414922866311014366162403384595059003341541869171569071043982415567198829050534834286826670175705850522138756921739490053025940869753805365329888196144481378973405838696570639851137322152945489579553927494102350702290129340926939026258429841119349244286043692719097775358468561217009417506244970101820310486412669266488414736061915688083126031378245723838357295982293363768099631263689816512523091292333965053580772516463814623073143840218892340928302061731994535012993367642940233920222236008301010401836715479667766827457351443717831645431535694456007542128424712781901560378283975493990121321578371131312563424886745042833869540018745905133295860506668305280959654224088270598730178660621241825883539164057568904469032140190237610880732138492086359457045889738287861488061228731387229031827117042950900586928320444445929277321084946412141664532879310766016213431521090872828769265094930087584493653080057353228988707086647299700507375762961021862079736672648665891950405226892519287421902159153641657951757735641538999658917200577667879814509440856967238979952629129991867734974754163208695690053034690583689111848366688395677666202431912958511712202815051347251405618211498394076826912217987380272265560300477757718250090534509564531830927540563803018242908922929869393501284133324337804403459606032713199833836518055334603743320672048188973198544455962369262178092124042551386601086222681153071505635893102263945842558466041309196659647053294337206461436344419688202987749717219206717624548235205091388919985489566165980038691159070198123618312251282427203835912860582114064151241574758800866376805329072131119084741931251603841315518413655376600037887959856698002858985617250621557685047515044305879929930623584083338282331399181118085603766665809999478103200674220781132282822334795219416568157419660650267018641706959642249041717092242588049020623202429309163165635447982126636026155490148112094771692844065232663100605494097948692617239568043234802919565716727766964980041197500672097292934131485890143003138372331941818700704622961832682336754592781585251950652258232586826650784303831269690828503460187299069025683340067504841460358201523345616250653255350412134366285420733368394258966667252573662240598174148731351659949865451405951323046830909258060641911847285603062273904283785614491158707606823596035515853536471252340610829171490597484245972599590167374371376587990731813440258773813298503344516355642533020035388658302668065336432104747698425347645736765325908226523513875567753657967127172866774312650364512764860005924548124647354946572631391980356923169387814137101626912242054515269365870597829379529380062294737193616728770802014984816671916075164501203831604284394309294819096674481669530455032802814187686884971511133565672026010615343821082980354482516094436683194659617869767677796352618625559789961685815498920619672223841559746551859255711956367155795034554076309557040037357758226877173920339443210659470487701386028758787494750319984376308748930933025507054861906856517323583875331990729099875167802509706174356392762661733276561738271613235567746445649649426442274096345550511974036927981885851424849604265698361836204803904691075240377263715676579935864734106161278534518036072234765864612445220911681412777950946215364448447394403144989867713260473447157486305128269438564729584462433394532760775197383039968954065887401883637018018963678142930798326359087998489909547904950911543613591890200990814977862192560695149617529720292036003282828055407120712853861827046749878287655681725530029962529008493300360981310893721296773395553702571876646761392738703110435796451460461604037281903363270661821329208774920774664893596231286412276716254972753627796724721613349149327495412079834212411391454031906851170451740018979263457292456229500317727443286737267872649674389184134836363172027307619495212940150864120858026885792801339392876578835336208483809684481886458959620882973360368544776749229830458985011946089430893977431790744993218451334691513835802607537066282863372122402823693627755516539135652955341288030163160532226618735826786095466333255189177374911069334728764333910585325747103706273064905242273145243788669499643387128002922305423271835318061589255960593085514818321381084103388777019845306006556886045262623626035720830532204858682830851504817443843048963890268031059439163720373225524978507662464562561734826836919700598377184459323717390159360282388662232261838547761520573403785764632367661445205871702050025383523346901255076169042027415524677016564651440910844402523172867178334418207348750272807547277651338177223291032519565521453333362696131299056555227284253066037353898624555788368789768327105196413052805140626617278858618023985965918821070312748774666268889429200405104670936524273971742659631722279101772681475557853467320095350614104537217589305658202249948696604308888017103418241297254797685289108918689960859139348708781975142817352266043423496348325692442492244266055242561120210536475177326558694399039113252967060624333433682844663898044635832444632349139452463457323900122081165620579274147387395395716506358439296130260923727557929899945416263878253549635014756306254142764833349925505115906210043939645783830959100877306397067415947555146511365402608032889380460825115441796480171288426253860285524711813503872619553926862046162890737037269312566506618528196444624261485342531715786499215139818527432145150763389789934928925739610680078380683412648826136166533526334976347908856455381164296042528221564796581182694147229121097486724805617052934667921614589829090506140899053914709026868447188500837159847919434350460793793752234266233836411971769118158922510688075433186968698545477863220982269589596883037309859635378430444675422558800666754538313848420459990239741983901499955613340867116862737962576294197401841879858237968265411464859262231118352544390351955559083353882055111421560261377441415795274146563561085509215229502579558363707482335945462706650153947471506441594965478463881596593909103903601061284746834247731156484401972272127611038041152013085458264711558857481193117587011540841032077704007249216970644788522784062003283268566830273652717079747189224086241384386932469335206481505290400366556207694314251673078400084724508748535715903443386924483331250994370127894617626769282003662863210654754734587815229623794080449718341978917992279211002976131752087453086956904608853762494921584764375070638674502925501346067506832567322103426075722669380845549177866213400402841498723480365319969220673091899021601360796488017686510050900868230931772779035916224301359617469594294606732882766104113246246673480382486375977997742844333229875389892948859201495725414428449124935429500914025720368369723109553958898984809609907049878496927950116928706625577050557824583802359535513419323822280522793034826963918240411741063757227279209088254045287637411256139440358073001575846640041393182923652261986878136621588893397156132176538240856389823118168548200163894025487638290197376906635354297904825817919894937375476972611625438243426086661046804601822684569485508701644783972749686990342083781002063518539774649156580782298247881140851012734441537850171260278280025013600087506405519555163283516636915611546640906442305093717676698126264787180504112573684931448153780325959080579089985217906383023747733654661282360221393236016418906054736457340007381631710889267641176388562971562982356432862488637730464919748442852762583811594158647726264158743268731429782476058820237048243324385468782664686727070954083234706759908935701034739599552667470970281994373066709268811260803734135160489016140465933415115055478578035677575693653906621904775091071804086207093647890340510253513886568292472692507969441120767987430725965489760009503603639365335991622370051568470126419165579820508974533271852045357982567132735903345380288097611111633548495984548239330215926270017878738283055728527492895485080071520879471081246309078680753485077111001619770520496952451944634058925717520873407442348604604204337993706749730007045001076796077736570170016340548061107286611562559493235438849774952043778722245722733210243488216313465179049781432038384726155538524628205361908647915959338741625641886558536996986422400184853556537579899666561601111529196820552844033652446003638338597582926029736113002397169996039015710270886657750621894618555486228175083999386383452349434536691601489208316053241320089365497014201523999113883487596005042483754700284631566239536535536121529244852612328251913804218647729224417444859791998198065268473763674239705148439687467262208913956280173741560757698571045338287314657997952815849490269766192034631224236317324281866554040707758193397571708473466864973177395897343076120404972297679455699094232616923280564336342162969237639722099351964288815215475653458298569455802665304293197224102576365367398384389648483639039478552694397433487093135121213040279976941996395033371654791263149244785076397805526793612421900650123900214584891674433930056556918274468249446755626369885411922318088272063599782444025173644889315830530348837795792294973420412321120952611918770869368923725078516963578776263754182255250487294300808504167899508166418823250445838475501219900410681034035920726352424541094314677461464176183042263341001440707319818386776821840390313103022457614475749056800623761774880860337057136589945885905620235809290244729812801684392751478264565009505667906583011319815021261817957050234668419623064697535157304434068286060431411682771904479408678653890577339221683689390337917599006052198044758649495725727078342697093709961359223642749217854216604472549128645215251072267105845859808911508729993223407309683724148699193173977768933512459513220541756180609462635607748740304402344177279242109181937081990976797609833156646799580152339091051951336797551577637859232582470060845554910600097702172455952886198666068869214198631527717438654998804714248994423971366233086406603059369178905326123381017294888350797918827346156411148004126339352791582816583767202759177188086623935836232116938351272404566301087241223207325126540366487702925388663230534763748120582293090738218720855955145801561800731410674403390188687573114737246463426822069802933672274988719968628335108146961204488517962200686711055939372336328271318449104961830254723705989593547298213789895411583527608405299254257967914481090379731071357756863953882998123500043138593748097167340056535367476663010623383271070408142916374685586389477836899656441495865840020910537732616746151933903481375124837026598775276489625032492873591077410376526547925059484332754501258723178821411683990432785448743534686621631142531608264958274858245385765415816267305854803283386940578124791229515645262281086211632439295333863015939339583194584368095426513754388041083109795919452201144005742891560913466490337815931098982712900627985721542749151675643897455810947735893884530993801429984937640730145378861134734438275810023975444042720103013552815262581643905546105786766658590483144149912426840394053320851353557119067447939375604071313207860934610475409332193162346837162496408795020370076762969769846602843099116464408117711706290368857051803360200579466186951908293551011996770596394662578326334340552975014974933062502063118213222923427875388080722016795414381474725949831731876067643883921797400066038620241272428923153960728437734667637198136226154138330949950720792930553023851056012711398077933119733202394434896016549967085505479115048156631652865399956120081703350421324131550908428040258616839804273777632431148402428864863451752375504961163829042552057164336824910911569868427507084857793580843337786259949358362692080415037107615692388864495170599274369871531384781252852877925702745729446776254840012193435032015243113296917801684668140277946721597133805204687029293842864016346244909962665259796939527357206205618472799462153755061697492765285900852981710125958826969842254654502883078046941419502020991720861986593318322266512118977868275474726355825533867346192899303365320860853303331654742351678632106854097807164773969586905025296591548348283178577642909298039900904545736643085686327086479874267076033020183755841522979884020576522843168409174869138127612187898017007274837155967332086729390193285429884243134738696482114107479583782286441218049792746958227345245756528658097532146796430091605378236907543933344806725855913396279755621747871268574455714460020892526439912594379819759033793297871023543034353451523105300206961520359139299052312621633333261073747264839767638753283573921641873889788859146757833125095676624647530691034306979398104941512082221388649443685581038817029243589347387826132983414162641799411059841588085595468994236454480581180963341799842127607873498419535744454611867948056713924024128737461945309244674581975171848253005510797108451916937572016176228074702931120182820372961467885583578538790393696244441137237166013103825169529272031076622511718429136170887551091322480744238008979424882923062636046646397518758005027479012401893059355950084518604617570064217867812212674790884398928008065196417800377450047807948368496705513440590539830431462597653988259979212216641279638395478691004566487963219134631235338806877859870924214850995912846392959004953495428083743561293624472784484682547801810919852952560655096037544272868042263081170790738993048935992048880757595428288789453536147795577026244248079685399509004043300767607620393774656262104029356644546003049683991786726848684736323432569669618973274417658694787500153059445191775120778151318609866753500471298045041065415717267472163907751523578099151563821566571420945302320216906300066350685033362777044355309722007788004002389806822390641415913557437976397404047029377787319931874658688056159924475765816734993053556418864672237752163776354850960136103231611458354529555815746637964363340106142747235986420116848129939857949455996703562051074581912262336777465598901134812178510789443505945634845188508518575819046485943515807341570269623364516683618380621423152919176680027262776188959443486275420133513987438548172487949641700103914670141894167846063989358956886330702217280372716950877232889559859820316777558950198507898100316745021588828354550370719355336374147310217621575845718033433263495864543675401986345824174267588912472837119491684954229730489183509870378554742977020408720898352875810794508348523871262007713508618286567996531504888851528798680056272060603656092865155537815558198272855689992978051103978030690330413565211329704768446033731290217101381476208918438766334067456589172527443551435757630638115729286529108589167807873600456899858899023841151471329970707241694700742873658174660757859064960614768455164173997947339207342604827060029777378688002252383689469989355707733338115019319597797309859319705437196604362652740166842747846766931674431126547118292211663519427964355510380897567705603663653230674739814036557292895246260620051657930287067212066452468577972520261000437964134326879591115513414746630512997891245791971908548289951653078460571330922749096927573160693309063679873736502139628422792911919324258274705949439507757626970126194607665683570351080401038046271623858100889829419212544662863516478279726275191823448176992858072555178285277971466051098077742121289800540282236246897058324499219941212781055489881392157567271685764506988409861734696253417186354351444096805104041813316806410091637704538758558010111437281569749768160057932018493670793786894899019573193561070749742606420857921183280850804382799105557264361854933127320468040547760821140852263823247854835392846676723609718892788952004456664373420187559582454408818184718538841828388380080600542879107545120934479659338517970958988927502553351180192776708349690653496607044252980967556140031400893037331086695093916854489712797233923454440574154428864164098695375648478295394993456061901942124691987443016275634573407700980010746241561427770585562750330606151391696803946113917352102429027784289848305785502839718820201271515938508177351653652745580586128508542668964308080445440654798537515844728322472038883293531931137820318253497583999955192639551426932468476605106376006188805384934438912629063718397761705527572004318186798054887360018828325837597353230140279252687955354838646675067092510252373827972568377030431147409567351006391312583046228233038497217204272008887574978849148248514983498227234483395682265787219247548159053919087516863697814552970609316377687392276615837345270267494850863939011023633157041101520820671385058047424247491357602708953083586113448091261247392953124637051138912268810451609325751459688526585980107339621301247043336168053894652099474626331303106305847933053873965079934374188188600259114068428497717041437094063251315027727839174071969747674894758449901517537891643282291595791701886483758312682559714090244343683608077024414404051319935663850324038636155390023828901858042451993836277916878981725089906257981486971825726424740354999449610825893599661832247232796167237253130829646987681061473795639341742615793945232502793867335054257774810108155007588824836641163969552921248628546717163130590802994554208015422981908198892172686115074078690962071090219228990630122488946649449148680737264136441354264435012326619980185767736975216317402945791775977808483499545333889855156659697852707107039911858810359308988737027336388761712865600388282214271016702859869399365700796476608616912287156385210952776060255362404062094561112032533705019117356829709867688046950915824653175452394107520390772435121107191866900664958987367433691592205003793508187561602164733037560879013138065167486330360934840227218753413476019494208156491388298905324049522736519281894154297647892593223399637428611258348719781053052025526561746838364144690561252308867888339319192388573415716784528843206640255202187358939393301884295150360939608321941105517011173930436526383133801422683418103635299229497254312809809801047171534642579247090517864675108271549844712406886303790421049581326619253795731646756480823873457590690634101310995245409221858946254841796553235176833039526280655099389307458941288793804620075548885144593891386603594667164300580423122319165326879625956167009119657110400837856861110624928962470662361644261681764759948439350363323485873620816568307213430982366470657297312971844825167483817573930669512773247793075778722715789378752543415225257032862348295418080098815982498622424786875734961289298733532423199916323065107362722140271672992705663105869941918622575327953559990995325476713016253607895220987480527037272992506730891674617560196525672355263588778340038417505212354817534879665930875565229701530905204569213206420523104052866177971820309211922471786969053179848787733343024153431303484369173676491207008223665967152884315323106192039757524250973022213494525895510856061835624756616687680004917590057144330780366857458414144435303861887451410195978809187897081776940448008381375556555468592245149785258305855334251804380761521084781259338023329434747837242934789099500470795989794557056301697667096561403664384176960538941320995635723800745250113918690892693643748338329051119176014040985194254682638341212994837699954500047716790374085965000773849163892551941840035578661051400369763286061044250955082542610689699379207591330479421584917934305480642523699105823562087543755300821613239360808938809543320434740734403074411324319953041074884628330856254406519300679915181111522806628584767000630000968598984752331755434574066468954245472983673519054126769754899159041988063977129857013438726090623307640124711720222023215930248974323721283852876033184040914938100313219097027696209271061433858870800048907832440636188029509085991295397779727357829354517323902508635980870803483330047207908111586235273329157178089490806299436449221200851557093560087074632377220176970603747863972602736685454558461797906237067961136700510154106418188558491837895727414857600365599009616456461498990817600416107991642339053884345305689879145829786161288580305866514160137721140985514005938113361130011139919409117642184557688689162834277656172474689724175392539809781504405395819492090878652505383059084483888165744144168530622955016195836549742701343106316560835940014314292425454524560957999011965792342572287181381267125785775858291808680605221915771311344453848314927673323712784607155141140509761145142618888116982545643349025827750879804353359265435829806335720410986833446435377371517930382989415299945701906449858415572946409449812698433647809021913986656169539445718786202231041035442321418735733382615994088115420332302972474575514045063417050877040916081697644727445848595069641125487972443838361115926040434597341655949057664163317643931028010673974043655670249884023951049927773593426791057452621077055390824141505538296662570672770764548672474280983497155515477661826156514443755613817735654181026088106099516351148409577979588006239221248670957497072130785926018985694471713225634409406217234277762133734656680171687301486283067421063160349927703262191873445720193315866929103250912765210560152788153356944931816047615644290398620083986245385981671991021855822787043382471988991369058004331426642574055028286268476062115344209191186975817039662821943262066544529303378773141447204444889441352755255281986225595619012471856674881178648679915193939079889083444756521007033495637320869563326299953601913227691373806455433220665716170381290139619680335391290660521401601465051752550203485264633449639481476532695324189105649797797591963436772823922352230096347829074246635640002221595300199319335692830490938964012951089506519298908057717138146828863690484632623883378765937671721483527185630063175676935420402559591166193824690528151717474676574397987428412915458447138541839925083428319011937650085875330204407359545867493859004226225839946613581326101686121588533239020189410516080179373414198506672024196301992754191632932664090604814438296643922249970194460397976199331460921154888169422209225089961075894741894859977578323304428756582803268706160832950635693885973579641279549913508504993762000067254638215166006924495046355293921145799086562096964448279191706415302382066138176869109650546838883143730335292631688471846744737944432576065854149570180914236917801800283878521231873952645656714057548773175716582467707253661963749518611330612570419360382564412787890359440016400384658737376147169129861203717604122786815123636727264908626108509891868685459477096460707290751391224844512074726295496483148503676414798717106769794292354252448323051504139749554034638527185610983221951670469091411763462695832800656575022101269737687191839935942131907028390081728892324562692234564339201527096275155631303440879198379290729089146594452038727498452096903917723208527017290414920384854231802765202792212445649613815030772016080833658593663750653479678630960621701794076950521169753993881822114199142493560959402775100448150186289217591967227072167103915376150299387555299552868836276021396269835044829988657284408512101603017186154243968822459967234904419039115691288545857790696378276837844993835081285556089449263982948109723177983972106059747283334303965003393276128935689915881691372918390712771273543342406844180517515413679807194685140746972596626040327411871462011574686485318194869165950208198356497439620936725280471240043091088970546032528297220682208686064151505491410070769966561991619728036105059422424437491228309590166493234197756070959310736888248222739804618037801092459569979976281345564749139137987336789041333350320428331605620739392212473269936314575876506574836910718175973592085451479421842381461861221942998161401763334541179471034358851298502747709029273643953536652712276040639763949880003563285041459999323968818880317304452927902965592731600505391826700948906352298623732061789939387358112558933767368109244325068612333190079930974810493363191755504046528434338829963198848132860168955014665980242616833561429753347895531528759675261790821017469308354831400151516668863864181016295541156951766891163394170563333398655105663704405644935829176114906048284594043969281653731519717328763150109514516732747768020315303088436308693535633421686637289374645683489442764324294573303543197259211559991611471778194835835873691426706157203782792846699368710004761435021917417899600266421236729256832458759160584602474416139999202599607957230868047541915210451591182814297724882156682581359235307315363400873055095199197967078051171443803213128074141323352747734161465376775053657514122641819273101636690589325260855115760293723040395843777644779322333221089070926815504968613842832092587592489828329640390632626015567336622167350734743771619505325539604012284277293194785183311911638390279800016316242284833980525672613162511484839983143882791335424191372186871750486170696907829178103639433526827707471453298968877283249426061523805957171527479324514453785652022344660715769103099052191282148616545991864754021273760796796350726424437723847162422434242703394885794162753389589345394932880042006980805957303099721974951164003513269315019820653482560533880343978490549118765523445056821774680107186442172695899644035385163954472690173436611186619623656195004817105244499137649302076195813308364621183648442842764318533667799472998056621495067595850044622080773031261211527617580665972169932724777324322019565231038092739026361145752317370897588462877279271802614376846226365828296706118158053714204470654954212259717685565621069450311585613271832884839836442448379911992407978194387932752923448785264736545632691619366840548735480163379193712181942158709403883830762228613348935922514482511597087755282520241924869150958100981469142971308771299517047840155815209423222771137716418770317102299929454785242404316799409134089131982875369051843671666167183904623353699220143515947336773042738249567463946718239962050383083835020855903227960964628477945008992227810736555904749585394569246080328729932347758630939154676573580774955525330650191648998748988737562547453510857057315653649285078311197463002194689538700147594241016668873468018308880287913944641883607879969908027861298724619245269319189516645692345347667479434381602112097644610696736432141841901774932045698498714947110967750326344836356493888236737064400723810403121122831469967085949655532588091639547054160756928733762952696673977990117343222868427761183423146841050739588036451597895474783907489614553608032438025146074203171484827386781344576756487119421443428765117510145684284982824694531604879175919501573192493479195660449911301126311581899654786363090668966088151239680140453830812747400190994565684284263402748577392209052381843276202414213221318836478705925146937421992589912205682991407027944892541398698350304505682410815525291169006518536965984226296909484665377721721278513443458029240492495752687509200922257074614916663716890268922269181606361809846200268859835545734459590465247828420194778051825838388548032405622360512319617618550863834509512863039832669827537893919930945342246384207688928422984155632536808108878620711565748712611852420407297634848360149912427777393178025400743701034061299374348942806929840760695376256629162748399303082654881064968732413510830742260667286633359152784882625735855972635055709932527746960610846078369822650932677216700523120297893454811260819194137632338282131470435907652632415780723733595452545355464636941584049953090569873577887367330044149736486364870805080914955599168427814942953924439789093901051464437027649212403004676836631666620028395915261295385867518520551159575733435492434314861854592205239112570391401183897094001205061709686700619821507209534150732815084248787362024570858869205754470780514334947313780274498935988888227080102025342945972483129345058375152216018032279082560701590425447878066367694677532634301161634179494461917854411986402002781167551434200588962192001815784738251232446567310396823435373328968893376596838622830015257455644831230890320574190390570380160373727930904011842044885399470399497748297313222826723209121409466161269386847128024442924194589314398738215453320200708092174537544507912644164430401747789974332490278466402709278034041939305668665768928246405697736200762339420127114778238260351033373376678230815763086135740329462346773409796423198800623541927946081977172442167857824237888553805967086470008213532636246042734426318445899625756448235716326023538617370522541927299213595684539878670518164339156386192558251349282488075407026939535258828944017326050680327530818983192885336319534009638461309669830732470935533100376150000095206142069881045949068723859762028455906197010231154292717015886126295669012752504331063887167967060880285114617490608386773584915872428982368654688492732686783926437102786803025030145030143582350671837085537154399136237540576372200046822359537743254933937693363670594183596578277316745450222905292428719417248931972343425094073588638092957960295026208192093687753294713139955222279592451449102609316125262606603260846464062610460328050698952310635577058748643160648134323886103507492701659514300131783962973805942137312486825267104210228367557259188197846862855685029951329377713734037148621690110378440961214083989281624764978971192327946914290713559816675746248984597162397369021876748854186021237020957605760676390881905389028018339503830117165034134496196150274617755234840794535312292424711127640479493075643398800920658099491688573897604236768133535549089086156848960530413696777224781942489619207665731834875857153922803939726706254391626034772433564089017022189149119754724820289446771320583126419022312791348181511137434793381166690595248998013212889943254527816367219507319846839335939649038400913089063552419432125786470449230444794996232547831885475641304157728133129129798462847902354044651769519287258048427949030025574791006006126426551674113798204496467044310901555015361380901976204412435655676351522921420697488379130809457359264213105381498208853116129555129934126963564600906441732436380145059697814576332712205881773393535498773553684229805090967796396096301067082595154101651486825045768167626530646905695548632536232548484177220665354164133085331274650945278839395078889966134080261780148637921885305098844130508437463924945485571492898607594402696642046749641058684719813961088831634042691844491711051485711104932138464311431680711748173941764286123632077979675659342522937908369744980144260780439569481503023998898398629786734432680733282008743468155238832736143246675544155725397999803561106795076507661026313704434881968655152743280405072372828615745661576977508379990342144431498124747162712778558152290143117495776148796782072805579944721047518876495666282325239673909467303772943617291127606865361635238833358057916516637152184979585131683410201665506939864211877720978755026924376568066702333468641382960617439638732332545046032978230051863491779526310469188873595256055093851769123787639599289191350076247740167401682714040504464735535113826840984868977273271347627804843663110307725268556955336040372193841340457505402064579869878992284125444455483519238738591881946545807596302389445725806718832720760531989264515628545028222415627018723407527528946854770965061450182898228247337134607689870935990525460521277926446874756169438937436532496054271673979569791993151407550781197830033474429147837130075961895302794225727534780386192029585957009052273511262420667873963327173380026418500225069020774652005647092228420830781267692481033897905543941090536687543972414463815238680756637310651382879351937881341738495038711839031144731539732692511289022419111167597079346569989180489492537607996687332703662318335445896600692585540114333749304652094331835835241860998841857488701039634386811679909827207036478990151753911147200018486886281820283349221876504641967585103367604072059812638898054333498807619587160432221447135988611077305913725823376386996164501141020080756588368110468939652114722093479449419960191137328032672501294020005337539630980795699518658642045373845997271789997622887420966751503959138468894058811544361458035656100734974078366686079428638214367201506592379931271323264865285826095611147109573089271290122699809631452709455124523035117379300306583591292686847418212900538279949204616127946255030914084764560770808511517641454182398140551137004642958998002105039032574256637382388786973662441014144254850400803372259150644264786174891148175418074692393956118718682235069762962354497437567849278792682230617926609117440396743026468637804959486130019159835932946609342544878079808561960416608869490329087613432501271114424814697577910036123345377615671150499528835729808449885650352832857441121316936396510270196334498336198605125558602903294715175472113222163430244603943894102050332628974474528056483064481232735952610224008689605396812575498528556432786489597641599396159917546411109373400181520174913599395571564157171984902148247005412662693509599703575811377006105163307140630271829768118200460450600249954989089419021109645147861322266770015957048214427470151797854734852237854067820480469970930026095173692260758591865558568022921691356272189029275378452766988299137478962651975462797549059866448702646881086773874999440654780659119255285317723004013877230393989798675096342792212896522840246622118047936377376911057763134557770442349748254935232275760439143108597649190667308220598569816785231439545487356102860246133684546496956964062669411610931752653616920931416655787749244886052838427689685508181072992925186612226190874407383668968661550207998492119644631756198783474122583083720838419315810348669162095472235233858576790749936473078567667658254193084636106864411979763460990136660060079548679905264031472144777683347067717179307124907704166166820903441851814784302309535230099618291897526156312492888765115319512604442693121233177391388548280974329405706523704387395457428672870397928156053776099999554982255187828595183937322094703752518688300032399051211675555598486144679986235559673207634798486869387741762023372465640973021921466272171434502301474459880883439240508600742492203213308153157211269667580476155489248584358610743620457232059217272486557418206831132158415666567603413616702450089180885355919377545650941685417469109298623038847188277443798783327144887526081771054050376427089247340266366883144738489298927463695859218346923780775819775258999167049355299764198297484799049028463142500013418462381792899944585565770355996688898682935561646806598658705240874146695689788335572212979361393420214795341291874408615890190556098769033726671275418946450273026551155051379056464874725993664884585743557035017780638251170443182349510599254285792624455863473890488491883583856615786558136213232302882839505259622945399130733841593611973999979006983604692512501530775000464535821023278460761136963592844586058295631086820927204630987939268801428950145812139582872259462071245580034131643516478044182846127122383939493110413416831770664303548664054711048807517455862731966206893204846804285374274791390838542765785120763006570276394317423017377122006087343785251800727123700947627121071842473151732843969537693266645718509796307726364068344315308011752432442164981260989661170419748205584864241873065085364759562918824259606920100214881932842421426503705087018514291080448636781843517236017728386069711720663860219431576260924075055672733667139834055878239463450239569890143159100655667071778829603257109223155937970849798873022390890722217024957012181487865970634296083467997065973400622905592911587791768462559255963794567778631687676387369145945680006292525839029854548659023520671939833208007189224492379055659483428656681480844190140552004198985693161644356373924998104116939396809711239375567310655457105408216706033816015039920564421671966620865800677897114982922254878230674463172651020014724736946661349629643634874077559206954641282098287246807578863613698187916038723088745202486735468310408841965667630407229658484753663360635807527314435179127369114065653417955292397160231525820145678698460211425694793752478074326442560208307318299104443099713987882955993075454965509018705547566448667216471739446819939752670345564137963154171803379725990488064103159418756608399918932761962922139639532036848146605221660073826267108744258004231071117970629234165149859260573389498905788690037230304155763404892028597757257311963591264698581618546850835938316869729368886433051336954966328570520225139494395629608642036924982939351464662746096524068860487159417708493641512827567614816028642977537011274139338711551837657198828506799780551177948325192446965580500913932064921352967666377268037891734194719292116623737510348427142804070807272844792404033315412800351979359743234495228959206277429867450213627855748755741682136822750062459692893229210380479957690629069766326991490246745359475774375881922626947727894357294628159990055804817478622077352816760672276301343960566629985460350702315451230075137277799727494141942039774942000936345893502000813190644282049401859385005778929915724404243783437525132364079931617497529583282174334972335169746851656323044238782181087386687819937795623241192655776232802143524397732002527228474690901800224264128289338385521282733530476519874944402509063377118374255508487479607589624048738359794226079316048650820177357323157067204206614086078659790825169787006918951918732679692348676584522024610675496231354136455358863056876678024095657278444683493259081939393368042426218487299026942129651702555681522514248523014010690616728466535390866023044022540569830271577508315246871747937059288112617326955385925778034376663423450259866603836786295225613811657489355539033209873627761425464040595332930121036439897455886137752893697347553514125264697136321433973029401848161898831676967227266031578104330997681585111491059650557365003837557690876185243040647989850025733940755426364405452017888744818016391675115974117840286227454954916291164920156733773296739635757660359964279490961506388852274451437057192425973453887516346192065646770347401549250179284078189249545148623309064748053729989735577992135631749295433701391880782592966123214049585138017447137056047973334552210631135707183647391928153443274882330733475138166347856600080350490383979088613279134512098491949247531632267743049224360163082797397818858033398130791985035025954366916094996613990493008744256409352670790483398579817119606677990707915987608128506993566576433300631088681414972665275954454133044726992816801720888157829856073257199240764327173633691891758561567325949984233364343082657960618786905956918659191958142889641632632445978672929674040187860998517018026372775368302374715267288901443135239172749628528368649226001342120971117774638029176674908378290212686185883066294144254922127765208067274002373843931641828511481542795467264170459104137827782611083945693336147086945658336945040841100069768967108524844223948220552642454095024039722366567321195618232002670944830632217821497066610045319094552999214633726452012844900575071174308950643583758861401710048238537053839504807962392026111330955323210581600247721389715619908969123496379215407797116079212869498013322387900140320976677101187231518221281642847353665008863014533337601968619078626170890707992932038689069215189723682073550970559608413064000491914237952436169239646124637178660984684327926468095450307631146681574434808887588735183865926558813015292538684518959174500337638570690465518696076362155562013900460804584856755076468986107355529798205006753418277389073832835909562456258684103299285008716613290520544079239166624656144590848841974483075194731181446884609038304177589756865141003910559647929912926442549304939261588840092440359088427882086838724943753539779857519408753872009568940807776207759012892191528135278392424444551018799466555575767691590176792749508810086524725041228126747412639246840292102016932613326471291491747000289421171918681934428911705686327936275356928828290926066436550467636566840340837224120934057712747361064709257588536067306490413397090606851042175097813468820873227151280811793738381076907391526056845484939096461458334759880374585491213507767730869042744738499681105852063313979080203469022712012034688947316289707398195902610121222037920607572215548893486568510576016846647397902295387001005873553267668187838178784933622487906186202673420450988868529952657406814743716502854455974798278314248861076921914878838528416355742822127558348546218638022558566438977744497038587227734102372229985245036503014506245957612831972884432820529894202069136416036139339628065502304742343307365884594837165045950535627861778137707186385923809708639020637904833803973621496175052426687923430483121856254449957677976663980058872383661153347061380176462113754136714953073089727375432061626613793501559557736894140676837465004414418794798254605893731866416867808085183491393938137473514973212414190950999589951521201018194383226245683810974403455324245189628624887731748125082400927544458497064548672682034054741913176448087266699105979542059506432004138462914226620699967407319131522541746598389979300059723778270462968402322609404736340125885236647054945109029950743169387743149253032086689865561591102044393924485300556426695878101664099520856685401081472603355536438930492971465283009219594673443803772126887462029117214828085859720654999920003445589878691288125600305401648239015961846198093575027860680053634052007181974668635238991586765965462979298335180870199847986191449338335816792701657781042357141327161455505244418579372363475832148901935924347852666563993879048306664194506815030958795375568437071748852072709312910425256064034049437025578677336831480085584657123043872448730826610651847563363495338468516075057202808060059285966423950567034436600784700629522720831657741683097954195476873188745938851197255624571208295834710102110783233938206417668979400808068810337884352782531909528914875505000361087878665376247367906916393596508880451988079924912395743342294243024810963419975108060054494895708064662416529914900587453025368159883343226855253279435287247325301698351107025188896206962485288339046389556528643955944033643963779499868861446878490597544158542990564499257789916405274557838418995630010102846755107809853409246632021064227762392514594395712269385455378808752916136808053993791611856703474069635423351232919623394654898105102592564544537588434863637842069455668878538336954251137240955902037889569903316556175140596763962968402312576276555713370921760008127234020216344998211098132536703290532874173320678465054474465137807940082878748059383033633905526435819741713159770163457951098120841087919894769576380872974200970072881681289540645690864054186158483233057419049441657653409330473984470473156375536814005993313264633107753873220318027024141972051265216183517762257486696244507050534709270512435405798767859415862279984556539571998327306613294212163674000249522953361307321205352827172937851501147701031756925334867984997853483573788085422880327082929816513554581822753368806066316972765510326861962271626671801565881176625824851956309990335104201891887616641067732284617484010378135530640249824042333769641103132270862503992826004390517502156331814636748648756241226413618618308071027615374429934835556199619060660610978847462165051229430995259215145805920700548846833919991737997296628797627726141705781984640155091768233481468785419471170473690603603606848399142030738804619668152259703082743527242726966021447925102300425319529142786231455791203825915040070611468192498533079442974907967177135538696524066493917929738843869748837764754945846122089560248688391393179992169242613288003187810335012064876662460237091667224252479043069177100670812642696578772314371260394824897124626960200912142905195187498655879353557431280199081145842586933855429458073975877033810693276943603078192811319135097962995224990304259439436575691263708492367598304318333333617329017412887081982128359368710724854216541211976567186002604576429098250547326629877222044795705231454014375958238650954624978962084736517159626171844198605371697242931562481596102087900587142959545166410324101348792649057997456739876512228361368355968002057628477660220540737540579015970773309703725482613563621033388280362509453039606251748044223270664242829386026625200779273055814428248187432322826578731161588690675823610596690417981395652282363591306405910835034575950239370978061096400253101583357494359651546037475616117604888945169235788953638989399294478833820754742881049388462314330226584071836118571180219172062125263173245887006048915201181406463892288219058293791957759065825477571119125899730532096425437862105195935752543812784306925987501015884011799029492377974824181389144356998904529418756406534702257028588859855719717855209470043043011462036403575366277003626111363948162434179517085782709629222827072000286917951893856313730290513531481784141257629010834276607159823815049647336318413036806422206967839037222141781266155100125289418733125003839459979618632119714031682976607829201070892414277632307659286200762882231643440721089669939495386082618272407828712962994588251746707245322409764659441116629306330977802402166544841835349619381564289675489404813414685750540408990727196036641087674534148597495277395163791955131618307805210963079972281897181739981407379678675009800632948120354638462951557129173783494742576170447681899579567324329073489869075236474377078683084348544451894469000230284914662117320884829125115619740271285665380264936795639746887476932126609512237374752535603333848448111122311722859925818294498131777073801703754676615551298889208843782162679249207185721111628676482600361199010282127740200571101014885156703952449739212465053280574197252223317029840375401830438511572355550525935800675619794616982305573320293116432608464880022431818419171104623473184307696311365301963971412818836398082426201688918025592852031254208207687915392007549543893697617721309518424902432700347560904087666896032740061168520974906022342893436736421113125087871175219380511904372038849890455680549778735699468833149347050080783375116284369604472814148631771424578754295445335606938521794154441726495742163140514188704327013372060733464068645360183114746037425794122192192980829123689446910196452847068930676546947935819915058311231369603273071433451958557870513927873927188103755094664380873081494959304040402725307449732572389467251798785798765401913307319014755843322219649107568597820104117772810596717646556478893740885845156688991925572521866563483852278937309569527218703736389129720898415911987255348341582954179191395545799399919629973276898791519728072982302169494193674223869185087190275984941681281849406841909951758465596263440801743963340395805491357610104514146514824662085921577297583403652477049399314514434983405710209556810324848324695388999975368248184194355616314271519327914081694990512348949217891245348697394368819990200191320380321764594619751256207195669387763587538806284793840166117332520280059138504370834746833808088121320097186639323583670308115533444329950096506922331388530398685763415423924399716274738840284931100842704902809234216479589351133533554649233707859879187778465567751251866351950044979508412934207421646635367104250034047949232847657010976025355492153183929340242769836534953128799756387616062506098877994622927803276704574625041277518590461902654288324038851782346688100526518826781474495289241454374532962183452622645241142494332594669918636227843177133632543149616926098653917443349458668408710278336018796749007367282703310203576440547035927451356266896385033066720799315703887975428084592121488199095512341666208137668185452118211199747393550405034073323790446662196741084412252792051804455031142726841581373864050898155397074024203727338795796115878473756085693119628089312509234820557129568442990726293987500071196629626176875625084983138248425531417649997902760980507309993399538027846436384454992209108886977865543620851815223456615820666623686587027839774141912760099924957443260970954075499834492082762618865403234281267160268328504247128754759040400238918436919549714169668715729882493327236190389253211563088237601416111000777418797856343268812418621979833840968295677766241304217688872807793577858006573199256271381516185020698577075236471304938490403233748081687410991477825516519462217760189050612082727517564452895104376360680649053926822010872772034681097090211327426423097119389865897003630926961974307605852933325581237689821493907844998484665197451197052347195033452203837511000115593959858406812921901342171837730624537919551816812708151980918915357924645605890032966381696814210037430761913094544617447364367918369305450020186160039824258907694669116490225073413249005057940543842482939285645778956705100814651789847700992657317458155336320944628269566008707955424002536445064936421536968872829382786276666774330009762592027713547144197108835750214670123325788171808376448115764445482741468532322588620715555334214073786797064779153669364277000082091810247301015665325347908486645281063250577217740806904633523391494086121026924901086770915522097401660443503557859559689443256029045595535893852471347441672510144450681883311646647636672425509349954115668878638294895856200451285519020583805766057149691732579037571712295831598134983777553437738275026253089752786516977993206597924016581322027250033894690805993008242819067160160488084318814364204085871311950676115334568826497496266674757791483514805266872660783608898662673913832797961862913208564409402464956575654964970539623163384543887241276154493346357346655798609014916096840787391200531097173445844464528321625031762208833532070668883732697738563579541524171256736574829112898847307582494940577753960580738672168705669518606791263662663640658746275672255277560117668024798827838918806994328584441562468113437994550287141779395431290975955767998685103060725857748981806128286801328826998189238518248305774166853197998197911502176231730474627169548507133261764289626665080705407087080176256462798623547245641003220183128413748461567917043534131337467495214141044677778865227276063859407089500162116148392329768481473211559078321373569213399187648339403178852500192273466062972911363488299332739388282492162581343302698201423675108897899650234214568165288709612036640062939059832026808059578426250898449710874946714296600539493314026059002873267999700242546069104892575866235852688487535208640800276493152899874875007838500057854453667138868415989215689787289912440674650355177903711124416490263890030295080478459795555181045428943982998075452083883875199469253835259397341899626511623170629409599478924083464719821445315487437331066443589836890053857052858215977010179972075718823044184458021504613708139900867870620678450550072128964180602499788056707794332856864636064855754854473671774090778010957849746890951367222706962532688325161012137426576479049050810876250333842682167212620762638433595980454303620449011757396723354692753813583743944714710398710791899368223130663921361428359537265822126530801905435091535029742197557915366496914169237092246827965407848468429738892478062574704940037017254572846087722681771704667611464243758836979964684904257506746997795584288128019869779880111865644305599585159197787038181778983252330268366967378131668158766585022661914138425371131704909339843780729184498996651781387189512034559956205263351978010864482499902694411931536336593935297569591800974465691932098739292081760832671897426118218893460578184733767078123654215280223974652745959262237656067360386995090718980478878980302076180113427356664530822879167726102010903056878969225869504971738704438111947370678407792101710875410607387580273880000369007640838137234585426193922480744804183697660187054441093969792116016945294447991792009140660446677875312927631136879132223212847642737219976728405135613202461407722966445705714709303069052522741373537708731583397192217397741850522948245832319599112641420266588382124831204973817575044646332522186002291138271282426365612256955441299059329155661757731207203134507918420393643606509029461716461197623269777970243403500753830474722825159723258134847820281818995031108633551838055378238010147964101420602212969124511358865490049079962735028963456312531032010727572814303333476433493400647083746913424893705445202404991296484815065772893273533571728324711981775021262259783513316543286748526585736671567290965720376139149430272920683000141998646214963398848241760498551526192244410258290034750832526860151720585646963961388584982761238772903987944261724253663441703207500983375864955215625896768166609382517543211229410870455866907878447169913995774157427167049259790369901781229460569323575285732518458068028669316321039318150271065264483170149900128673586448027613613568011828002478906581298035893679327225657102158458114325466462772594099288242510979806808701001030467991012338176419673311813469504685334551900551201324731851911577188238980740583266804131139117000019126084960386582916773132053167432082561774040000682686045379815253953367709026717163065682894280292742379602981041598255899140050039949035246852669108872662948498582837037951867796182200544536831955909388040347888981006972935529845694558146654008789651310258078033841219516084689783109300083691058935470568319915281336946861261014257349284150137031004798023567598328449885970503733478568511755113365079811096700672834544456696197492982823996154371518038544058633893838830892274399108344193758547727005755867439908257343545165108419927485858617574244779845627687449720253959886923809997303629705317692934801151174059435097773648164367345495441405125582946592381040353708297737270665399662710910979539879196950683900797990739499327844129154783498878764642919728197091835592121751861902760194897365499257185710016000229303571393536559263598805670083992512823387881811667249565637052693964037990104788727557947751541052279342524704546978497033350264593978572991249614421407099324007955603263991755638050819464652031100390255645648749888490716386059862772744195862098043039499453852282833740757799542067368402227160843931346330115831792348891749543456211418784086480302436790170186742106494186852513397538069384115431882046720171780854903724391341254679223252286848965345390322733131622635394323434891589612139771335226196752374241761293178166998666216677427133808730896709098197714837422042434518913988147992967427699627287771318430042258427516901433216221262047185453179711254547916782367095581289814897938045662833620346453907820153806300307605578124092860079342046620526264316496814435144526420608698127623996100970965895688383879051083939624192397615468507608268727098668828007038844696553926173043257081816045522875669177781695741008596973463549338845805100954675245303507616284573369023349798709246693381870125213146258706665533011643824128212189710049668567297757116796356692756697671651885027200634332331640730906461610992186280676517759770168779224615832185417811870766719934165997114199081304406635561679035769245328750192532406962453300816458878279273669707064763853814792638920364035852418358696953811711263039132074082123067012723309207224239577582040909287655314249688316578390567940635669255468444134959543938059208238091845470093181055217233210892050723757809850627310585861774270526860460794545901534125281994273935172442203427886203323238670023355269247438480857675833430414309284776393470061931693056144848022595565674152750678599030677931025398367062232518053220251159246376634559565174906500685182725833221172038748694476113992295583522981363119186174001599906343666523501961858471828676684853266118964872781603398271927553069173498739533282683828058853184723142763240129613889681532239961336615847898921883085796657963553391515412444357726308905672862724224242339324053080765282156742205670718749394515316611969051060776005305796407563430051542601649869641765890591274143293473049528203910294403854782703774478278188357796128278557767794014595648316218894420865060239654479821360162311651513496006939640636946532692140985631349519999762283906521754823949200025876018188423579256053925919765994953747923482000659418786297377119974844532127846228894168096477714514662762639298545947521866502879168813609288981830986231340704077308827439919156325652519087810069520591860181172007235521509635809853140384311964158736453067001398527343918693779384560719939526847519596128781979799576950896727798186346269343582223602218571613466365792973581790935343985581967287107910645679426464887412849775426568369799718986330363000382606937026185128420733069248143157773537949999727607328527744771723034103496820810380988361355275057655954920043279911152767630791115926297697527764748236580217336678440544981131419722351307858468836624822800270886112010106564714086002287382974989279047099124935917229727942049612307813331348130229307793728716582760219404521444695922219998715442402387080156248657479758678693817144342832586113998298018006768238685250804848093261441663458069861701071460904372019979244376668312967154474732980615791327960784328635144396591895481769382718934097379733576370827175112193720703774895837043145007446495533003009356052626366541293354112365165737537153376394970546287346784168710698750510134188951608001352625797459736601269263093559022609504580670594520381876559187484481953954650934451304453363380742161540394693154832617352971807255578547249374241437613692347333233001630791017995386557299876153093134831205064152449285398956972265407779370498776274270831178152268569432164858441277959985881101402273406525091547969860736816729648477726751547298363713138403254500904066009364043115831940000089765640943023793158632171337316401632774303068300014939949879335919190086894808520093622662029119302526693409195705796777171289146550249865666084221361311484223465717006383102560897247240034385631764688197819787903708574005803722221750739116551710009297287920724296186435356959381958206403935978205002074252002461431954877078489983905182557315256684624497106153334314028443511683382812863171584094829215970399626012802196718722875999581290935509487892267839090122228427069571274757102312845080934603635963494315892548682000629636949177185503651069757757916067991815728586479892940319554422808875871837129832445808255777021354920581461106249003284231922484278317258233968916846949785285668987441660737843502588010376713372241576433716219338949051557574888342361846692414563849211483655226951433782387209779071514160610136699027825880418591271111480010810850385845870605986011705817632602395343015755638047142414478775459919715890463291689880018396805455495249337258355131113244095630763065612656797065128045875394939888745641827218711452363802361850135685269909124787607015590447140133452821831687536738402563937792643781754971376050913471568850832464761552127995835740041321267840536797347272857256584581879423518404871591445211294445283150187040163811742798723948894986098531937706067196191758001174394178391730595179071029939256471510059102160128469077134616628979947454237384918788186591817652836258082357535107851739937882759818901703036147023257758778938804626361843003331118011863486134800787679730180047941736159986045237604569373972021338219497344587669066570282038976039999373964255222932435610155546403697525756795374051264310001262995088104523212544385299610563045799480627784203571843301803190843324468350769060356946334557023172493301564932448282173943704566232255797196702282853305135495222354027383722904894889005200145304637889415372843999054697336182690276793576714903944412949433713344598311230823593479944917544804237640853338802980987804442735679863753718170831772386690880425322950180970905623547556469160655882169383214825970309849515277100011882501259644133189152547117393881520334544975061220754208341383002404721325383537317730105566289460215830589654911877928024448326406686048285078790441738031919201793920368191217337752160720338922337669301369796053415243723159346959219203876128597801967172281015322412398271665854158598141603657201174003054285845862548612072567417018326667011764196651093579313987345374918406322260321893323704118644971141998441566606769032969974554425369603953780971078042003097846833332232377452260590106498070573740129100049402678318154934378128863891482333267618902896468832492174756334716951273085214421643348735336968751049467203596577420522871968446525950593367826480447003303571020581715291471171366235522115966341649377298114837477555776818522027164518992023203652691772417492995079532399560107063613909961612397278627942105728748442919229606805999232185616147525663122278144265683177548928038158067801455324039958392142786728768039410265650738256792109451243740470008371368703190415127368484599433065579427117751346861264494506450036423039840037377951800334555339569248705423534471066696432493966317531603170984316454255794864760554943961225266146662084142269078348036736575120064274105364065237474606284442972225213809869199062851618166091583249647571428718386495240462920935381383717687328428916762470789114033877343306153739629801251849095862358313276835893672939031044497229144625598127802122692592164495738367995193264735166647122297278714921751276691268000414575441416399522531033043424848911290751749980780825208201529826600133676904909335875847250146408962798687048822870528375153614036690693066917742536410548265313813909651904607089058164827824001145990346454985012877951596476762255834934397407303734680063497558737844142390096577138005179250372962875680817004711209499758693526345238642901320090749329530753404038238233613121842235852459505470135086179637328658835363671536532385572405604511673927571898639951342934076740596074454412901028979055782577140137011890557385634233738607364365240394358389561839049382248212326143665002239046316163713549386601792908126023691818399755453379563873950856927191397956896213965611070253690652644050854690131414416981692345506331351134054562795528624138876641726039197723772498383923455830699961519264370247030289756125275350356208672490649987421588906603225486320434216984667421455801424944737076555271806177600979957596048416873787085118137097921501087752760527651692485841992675919828709504014563115341052143994053822650551718344445011442085859501389373812337664438565081629797300878517901188775135757742397104710724853215831417018678345139325889836321046765043948984029003524351411869766494162700552252173856829373232340079817800320711749831365173520408942044257803336456531467229062738438865302650643652431206476316253347253496961080317438325534021738499223024167620410505547322235330222490354147951546953179652785164578867282526803768563054997892750080589399977349170603854054409491665916327718690139685749667877250852652377978756047740782362960216049543928473066867975606277365826074523315837426008725985018246262089324748381555820736040033779379799614681567807876752812219474782998714978779008538867596736192057070935194693204574986552139995788538608116982695174020275220963119222330299256613514132430931174447529078073937656862126360741682949206031233705698720515147364872544793171931057436405826822231733551519127572366514755161954825871653643541424083604737163302824263238117528111241860743310448190817276365721988616744237522830681115413955178428390562211737986825320558578469409524630295942014244246710172492788346127874029610033685963615995282771132284200677549733924452689578078273108349705835785690979027854229702759872906881415081040378903569449008141798564045032443157949856600143414978747292100308484593512951675518633960913745291110949987617307573783613045478877628039258255948957087147948300903443198018250272847290195135692916734068842241183017004720046687005745771527385820974385743862401000729343622278725250406491123809585961704186741158900997592194740817445134033906728800091541759005337249246333491667279831990305530304427955598673204519684292675063106961718056325169635005330781487340075376144330011784175532621867048293902611077563300667861125177065426870839040659981368448617870637835621143282408327611879999908713807580296702711766302215024692723558290588108771156980367795298550657596161839428053967177925487431624923239879441373294106560618492239873915885315383543632255442680323515170696672425969360901582608066400711157779093199081893676121547981029769446164038168443929611590697727339196510571250534605550159383088287601529855398606172707383568275797271535897309862286095880669371994971656673939978021209032017373726403610784873380726660223678082134892392718786544172719216469681057455518011475610565804990204453039200614199817816926559668741759451111196525716066553574056375404902803231635048827266989391617124831324519306501589796848638633255699968562412623241472692145857137185547832310718642739590269029305897333931853906666078647249287084452232039740092299051927843670714335761499810780203853263875811251069325852383463614269044220821406806472164465925265076916367093286910213062367943347566586742080392132092868368190547641696397546946295824558547619925382427949375758997205792872795804203195510024932430621930697950338626276766555177826697047835449174009691195296412132491670524281190661851246956661331478131260183296334118890357305330859996774149261448645151169356849058758594429026177222897004787051687765944248144757687719068257684050687087727271856904778203955653318540324473926867861311981335663073839584922031731695229242479228315978032380319277267220787226487161276862270898988565083526097832725234748542572919556628240911013153294245474757346201706108642422750632230981123989795520169930968863806075139040747408805568081369866482937128991929012180105533242085742439304424327918506991844273607762789548469629687007254248772139253109994592433007999634655098897113696106619075943426407552975549054669301561989897223765152331450945671750732167744647199791187276008425195335438111215051560415665498033011718680536809828370095522397206220468759941632461830018977734459775995762863000791471388557894961537196331168141132208525078811966916944386203801096321618433334573029246338327992565506538680473125814018773601785241423117067425617625313854574474657242464031470076629016157624051198926445875332250018394897441273998988394456871909410387446345645949760754776380147443915295929085007419963664633138052652817655178683544360594064716489664938642650757424395996808755159083443365166594884265215095770569333358941638763382451796739738919520838457622256541612945734292985564133902511234409605683263030443788251942883145503568920048669602074739905664647042810571311503508121513440378837478398160360618941032673498520546758069150439015538562784556046931156347243273281691830133524882938518020830133637073813432095213965743062885953878094371939333493258834867227453684889307277349061951576053273739161769893542397682694613112039673703967785053117548203234776380889010208655090819665087396272355608985185435430517491456372358566076749799340852548184979991079590089065491478977071118916252754491124451191348888553967301666132866101891955730518403848626136015343044036338744107010178896829084129533937393222407009940927590265341621667121780198620667186532255664140713467891923173591557166486845181637902126580503055777890219767061415048386660643798257091663773560135097769754304655249153197983386522567756884313114252007963061246250337812038055101307322038165823255384328882142975546714973025887974843070510319668324203712747735287771801947334284189232031183935666582992240645761061496387397725560045453305671275640626795934357403616483786294175120930111456129540953340945192503549375677779566377790155948156182476991084023808109727143878594900971669271748984910761439196808068698832296700114596325490638368004650858251603441508062813826189391755340059211396087784673831828922838873550526755485679532244952818087538023882441414382670723786846653158354313125977408043122374150638341659147221652539863766966811678617269653740871442772141342805364888988501106916035300171157797508857183453833231897803183353346938843519888286879956091514922133068568234901629304988887987455928817698961206149043447191351530076366259904574227837511848984767186960260938125509166347240292269205266208974881009165523765267818886458467354075343505864938247179174226922671467271912905365584872715389150169742733504043209215672367594975340850364446400775300456362068929476941058290575952398274201272052211070799024092342480300957383185853807773264290211623594949092791418153074942223964824404654720527789172610725462157517183967115111027868851154968503476327808880377219472310351596023429921959971415456018747270691359645661958757297686540928179292332373065870549924283234190435780663389984661851088601669709177138286315087748974184395958555945280097940836021988195892521101862860063176076402572454694588837601544564570300109995836059585715160546787871778369354414134410908447558491595429072850890292812481719319049538115735739140361921560978689586358501052495533678833782963419228494368358305794333659649670664163158244900583885245533467869797936492645482978841444594771507880079111665364082521058036940616674863124616395732147812170844781565460141978518214910019002854447005085817370812290317135191076201339023583450647210302915637431768880854033913091833380700479447271688236490469243170951081195597677328568323439586616478427674333259193666205219067039987718961251858977360317538924781870612422289190949863323566854006496813651459375931024090999337197884388287135438183163590069738518685221550988298241461427019191787519604135071833289368960063558612668404927999107175113817343406821826179080446880588337815243223631296700399790781770049794328338207341471268970025006898117859684567985100675281333562495255120409102415246901813254380182896251509161210437147572524005100051454088726933450752916744267717040795628148724025582285086385428277819446294440994492955564145048489774834671250703479416810840870809257108787298047572161248670624297963288660967086034180594307796386462439787980187044888144492240448641666093949514363242684471776914275705432001593808373353888384635304693023293195368866615028903187107842732027275162281934530425530403763938035060925092928159171385904724390744374080447713146842475426098474467538537494405894864914450394784561424009292282529243727748744946573785047483657737556317913030710303727447840911788392049189127722586719179027278588581540282272732866929689544677640065107694831996050976207325141120772016411609823078078578213645978283838329261126650374001274705094517501779347262275425725887137819094655956501793968422806790196330176140842238066071702034020654779425187617460011763607869333823233869279355711279050154952504802792536017817997554672822454074835338981279351689180297742360683745797544547915780135072206545010956228042623905350301668947062191469882419613988707295343316866821116454083414417441538616744176670665185388400210240287641568007474636368329921769867081590517414101624460541400913367919020996894043056232070672690579215376609365118181035622411805012688330974229689378668584263895343230359063382492960113484459925323543201593469281757687099146309478364714836089678330336208950953567759447446973503518107622752780655167948436658758847067066822831124720218348823781437014653116818906986779616446510428595978022301951736661116363405934364685370622586374465599092985330933762166753130166580224894324538185504237124175117824156145244827213310611688870181614519907893616040913988397876072323525607667380296480118133261424724976249011530368968138560221352143655890839577818300843991313875274534043048702381322230596010009971678325964486582046354339808816908115384696724225821790879292797730080618963824717899038744776752085892160586028060455338040846763535886743313149552658945031067993692940202571935855885480839825018397121843664615248277903957548287484268837478431850980665264004303901802203997798205752625183828499603001991069063423039957200458938466131956445908368541518239931656525556708287777875717067908737544243514333491062036484759673901562992460785872681092889511605752816353101160478858133847690200127029440652134628338170879599314059592337246917496754254034257887175770183892795761232755485759772252069352376837052363322825898264933063351369166105948589078748062122172242312659208258263862847029800459790059765363449022943988059887605453799088040962120745162517964466965713093780211666434704365825414013309182333253554080412726701536863659832999002309358968394183310662533678624258988379244532724347363178117646996614985545059727800607321824361376197167614145026819738371427806878496287968933970301443486306112962143965618754955014941594246150576391299844928774353997519652083585075803268669189224464852588189206428962343020796797851755802313380539337514529061076523886809647035616306803498677274106781524579608330849056440119537154945557590916029807639811717662336479450282715209245746092000032005026538902440032642206948440739573878361588479549797901744895390741557014119459311708717144059508872521504305555379201514294839149087075750164234250190238495294506533002015391462870779851501247712722781812744145057590339591477845146458498601294107805909007792781097755282450972700160451545375291954797230895585317110007669953061802505522271508790248333102231009629204150529698728290792722467989802286828800703933951410558120632184730178429842515699298840873449045478280185142483810585199806882621757081968264081586924091986122175833793121431619091065179769888265132805567811537158989925688788140122501994393268467844582955439909744198272539472945430619630317444265431988811652986634406760685228108336870525064055835095460810289321620744927520257236573579404743303014918983315490831144475062549845603184986523018335141046902513963172881881592475626432664133284116938798993148142323394959955077924516217986614433954970672972823098393246414582120823332011787414520120065729703433966837760014309255664372826862864158944861382113855818886979995360347632555710812450533507063510045373886125669294441278691706622170490384235502387213089303740390339074114405371415030317791513785473718155129405058609935522300601503683152438137261375657735845929781814886882341989168370347650895689002607370634494634192505453148484789778966274583913926908312720115945676788582450613855856085292662749311714765117607696159035089855712908447090960635405144018832479165425189954742378405942814329296991290510316522836001254781687912410037258232839351181944577204447256461678088079879097539912956242395326415133512352891936817463830961211137790943029739261751557443460409692388694572091958603887333133885972433258267386898969546896265257680787029009707814132748817881753280075957723273825819540029876561923262915023014378614846870398558609588119700631614041140689694772315630953153567260292398464847272155925627992655196689302187780834937296326190546346050238559570383577750290229293275227399452998526060934918636695329710784562853056599570761121437447817973081030704547633201211692559958064493929790517567867674255199915013973664669520350174763229276725634512046000019903754095194920521720734523357434697314853151214012652790942940731688636791721556014949060118782215182384980476679327340738047628862886882838936033318311489568082100591911878379114515024396845854027736663034286595717010461124123034310368193719395233104520913732845463693307641393737562941247816954615464336857363731123995162706077449198875107992066177887093515138684297308578156453820193211899282846405927714868536673935901638513535245818259706141689431358454400656394719068598643120987400383346981636731758531623338882747298280291109445166556275608229231351888192814693457408288135896066726414296633230960954733267690313126948461363337405904109581828367771640994507597228419253115085825645013003253863243207108544378262250701006857602910996437767134698295138863637789819189634792191938771515322661173306963927881876899518258143072777220315739476210424108682248387616425203500094723342423193751568982695400514211414827070400930977757587183511869031932522833269727735767527569955119864523640890065784623724224318716186669279914215560017026701788235644871847877597801519956254395832101298265513049874103915793789643249199751348015810226421551636048608331381998315213663056540018210420007375318126591978791662785990357998414193289781611793701481361524536673088441946797614812415507943082919999925739780145137658382398812445352068256617539842939011886749451704088532115432269053281435651993144239585368861883374645759310486440037442089561567560431050203230137107822973282954835996909330198028101339421748004907607395205043190592237178536750656652903250654116936817225184630285322819314077380679322751865812558983400399831429157001331944777015798531532043262990858551377340723237679910387718793495004355124938639626378466953414567985445625569585937360421522333149093184892819599784738771384805819333198955603749597339986923223190360552696964434782921256882567914818721162540649497261961023935626039247897441139811797908699194595482991631142462296957874506774966597402378659971209207924921966594272898018638638814234623694446936878118722660167090193238313084444207063099189445607401205554895468089021870107783868690672733092379086254089457649267968008557506217908455741384751529428388108542696337896900515437336221650598063178396993241823793714562885066150613138517124218295432411789661499303271531035411391719402380716185936238762217562772153583797355777372510934668026032104718451387801165144588387899296503712226141563995248129042579383577064294630488912183517884285185704258962346320043463538316289126216194738443508269234475046728213169032457624874436056164217486477856543992558921318861214630758962266901467954662496788724182965006976900635127450602227333221472497617138345783317215699780658455876324905958069008525646709830537148726142151057839014237693887717162988614093317658863677036894255011210576764361525313514783682151298959935367718296444863491708694952687500948126095592801929589034121452383152070892108047103767341761245068983726178596684402684218870814138703714522212365238880309102854451004430120358485878793141103926515222184765680928309678868850941145064434407289292193602263970457764819529466551311546072227978204287243416489651406084597804476795461909245636560247609727141586623897252025954102556491446856858619379376426866376531658963155583339270860442403867005535817839051895282200937801128422277890033424335300940974603904080347765977550645199373114291912198824069316881010520945738051191837170392125237778005654906612253929834639460368189250505148906945759166179765628685722301049688763688716721173262256896985769342943284215033483610421199044836580865763038358861752491161494771265442842839679587921684360128831042024872833629302627378066079717852631629532439800961814705057837257640103837970149165332911018379424941672022985035481991173481900820792907087939232866314189318803187708655985954173466621129706294842665774739470260727311271215863185542695482709506082555292958222945204599384019637420300466741033087511877521923116322486075625037989787797614510401028962483122106665111398434077494413270902241218493097972727475118125311040603494223302763309898853323252155382645724863107748101244444727130349561168451239782254698442090565542233937856573658676213684565204525756479862590261440092533081550536704167518036830888724557554315125521954786523086580484805969226077549480605178501556915562113875611168505369572089637796610944644988143562586008534608663068267327840941691577480493972341739211351086843352361644846229701332285688553126841543693320496977352538769959613015475604557960520602731484880907109799479541189961838599367451945131131576013706348035136342066942482664702469231032638598185743451936230107940660796919460747229883932787694101817263108288975360848152863017007008903949944913833489459866276951621815658769111295445631341793002228362016967089260701035383066369888475760750663030918400905376793434993397412602794917405365486212554625456871403846502884747248238828425373224903722361609519789759218177873989929282364007885408784923004661713022733340209684213528286662338463183872687131527611954575695861692204706247395282268199926400243032265804852268997824807161221147858076858251066904148309273627068063482309321064493039481775906820311475744746137906508089176343526153176718737219913441240204347328270522005188616167223882426408799354827047048218562748228248446889332866444217736813150394304206597755434260630616701761045278374090852278598544769483956556071281877933379383366363033555864441298947631411175774765473211578035205430463369991467522616693243837463439610735865442312807053741698724678532195406114896026077288117545998406121786558081161770905478617235525684234456774852264585239386527913315977200486311025954004014412657971746464344587100533676138234946212281789587457497135699256732673057824409974625856020398146383227353796220334766295773849420995381977692834073556877228603800404261687665075787830552598567584997863781391159040691359504811629390621986751506698521899952736657170697158666849484721068842723317285822112073196529637620213070385752649113664431627064259643079545585237248250819650441113486732864532984879005043389292073976698246970775257063669600663199102218529043412535536767256768847238753411648763290948522973961460454872085374461527161343369400737206135778578111532177711644500490932388704804341291044296444570176786301012375681200772141832675453863374695183266985933191539609956484886501791828840429674161784658041828935272045255298836689757214256861055519648072878933937452305030269645440556915807573614799930893501546552463439550129072781751355361939874583018139094038138267858095258115012517770428619572208995259969745154580783003194383169318968132071772506617531649946460988045129116710235549721430152820382200664729802485428351297268295571593252124830855471031493898877037101055274556353159730139723582654158730315002249196767642652863559192451166868882618482785299705766793350203726412316940616308572184818829993882783761586857776059434538735799883181301542047933059282155304128059032948630013045274743634805252106741750823322745047944161337301368450481720657146891444810117358093199200567319602319325057489904170100594947470822859724499666736267435339073100357576350182270406343462662066304794925590416146831496409105327888272627241836402354138819800063937231766451004103387984332583568612959466163571772164759387367588739191045355699620858143607512417345217352131100208346080981178311055357055648684311174666056316662309821711955407669095645597894414500589512436134411888475644459348603705419418086860155448912930453414259447644060501295992223822806810454682490310584132155212688050385839973034788377082626602764229619889296159405576728822690318416108336376587837928184813629619490197488930573125482169675915803466378961294360211755043148270496297513255121441712508100003851968656469750214991966591271685454665046607812058588344290577031734506133024643937108026165910659450671073834529118943239850402002728979687712635623186420709216350654713344626540312931542645861862809063362378898090310687253848104863055512510700340719234995808836553135557597395646879676929772181249352949625844665464220315051176594371810457726484871139282087601060138271118853600318613860328765197600975704894407455042875851260025639845607908003742595072654746056190157495015970752430313814957956949421449686521591337004307326416325097365567884760550805800777397643482668228039173327278240731010785348278630140392902513400247956519641689615383141437841475707524661854386826026282690658890719504666818897235430223014729227014180899490749978442810595804259173592714549753212750884082875895321347473192232404373684833764318805897473322161166469542001397919060936585697340072787896867997356610319826704144573267700581341725409972849269397857232993256791677558268653332562692795669848376150029666489550761651776092183977768034112163760556007076451914124724421422506375003183915141255139921982150616743894287578215451615542864123842219728697039173369115897061162357928497288592731421098652919746602353030257736966071536178042674891096380300900668654843258109550650635318486663374689500130645401011910011298867062830127279501187064666982179091381192069378782106854044165630618699533560072498671958363717430496926568371025099439466425580364070467889100600851469910926617205652980520619227073468670936628421897013686350768534160724426275806739175685573967324133372188262814260038334857515253432813915204385809270390364938726619276588577244430166201721030953805116771621472415511786616154419872974407022998463702107988379732511877606565095407496538864299883363678112474295830225678333855176016354633457013654159536988275229503294351660251303080443848932161490023395371850222023381728525990504942403585873251630558007189720730806493809158601296983682674919588739550094151263100267292506520921827312935137986128279061328665202850366607516478008027545686557285641244478509693714448312374216772139295278899771486191457155190972202179321733966909399648404294254262051548220131461846821865806538220442296939711360774700387628926054911944000985465041539446142642128196625145606398422611300962117121114474459483111078486944926110411378335586781551222878819527322278183577102404077038723491820822897949101608909907385637879391662659437289720291277869081730051969846241099107625484136801726281364617443482820431911817416604764155861326553902524852700212842577670274857454943717100017201585498896923301179438651598696468000426634902168658803361936593718564780249627398502422685430905394730437327970220319588664305200285078411178302768411026047476930346197002957110122603311255310901126020521261285725773888697426802862749442244554184708561018520017032372201334991569693421801525881382062274146524699065857823441786767372954930022139329679834619492353063223045692087988732133477971048786762305739958422112330805957287240071733224193526454607417747132313484853753932223138809484776070082358813153349359259763691220532755745945116272467170080213718920771266835215116611010707536951793181987152739247062583259301051534317362287184187120504551712965245738675607881937770886508766076032929273832049448578380149614015945085292221745460638869006614280348049845240887492230284472231480691778976790988065419466304707557909339348231422996459071125723767439591749868661459928712683243360734044306961516635420374378846038896917108195858326662169412179641828976508934021479275448216287802352790286210791880448381561944300599140565165807152853932078155079986047412530963957484907070674400038773158207046414709066925482704518479767587655719286490437577369695531001349433143857487243062545422547980931662028986401696063850253337966816546216391650747868707644828364132805881005277496082983811786330580497139901347757360818188779232887909183742157114038309482116834728797058226170700959622139512364599621827095420632115803438176226482085295653559893628659823555781041817387151665584798694558212219804586070692123185196279442268438677929546966297472739173207536735608425238004749652656149487258523707954406984971986412652019167755882201128813356004379325398771778967926050884868808581486879075189522723370491609307611353642504988851910873088558069935193249350970025290284003310777722026673566450988118496292186235701679684324075123175259485309743114141336089672158550155358885639853291172293351433583113004607946803231554182331886819791186802210371899189678779264300491298618955251636828057603910922178219996092436529143148401139204198873786219302833757210351709673253714179415861922736724092506699942937638616419778607414714328451538323632180832127190889353699725237265272245725937995673447384530340363680115563627705470857596888233199920410194078192030234158745726781405501998630087615729900835249620261628442771179919358023364959026745073560225114454859730703867021327611939203415507209340113967601149327697372519858361977842045839917623672313409835870665714720956004887818854349394910120922095974380102066542208887030720049877566539231792347330136959581645208158552577355644085982184973457769002022025392798232930004469155084914150348799199500693968134870287950922256960789487810073794931220729467268660240772252867981773234942704703205356491705336947336626631001672956532952149570251526290323841408136773558413361359018741406667467023752473891764036971865335941640168743594441592215771787928212431137030294104819842552497441894253582828284092353549788083384645324574070722898581820977300068487857890968345641424914463495660331922854359178091522322979586019272701590610574845318599444422332097373623512077408857899179235860218959151849030235607512654471848600980264702702601616085637945348928913588225196953391030601426209051103484239579383543090033604375794231944895736574987992589176093970528024188725549554451502132016751296682287507400247423302214484734648081258996237191142377181648701403970189731261096134664336351953649687564848144984232496793331304417638663202262266683487681713239626594466881752045968045571349052800809274286127280826023876138172817342276040666287391907669167899512070901692000809250692094491755974237996294939085171541152797145155246524769884293108941858270330848688760245641626567429009321419471127269180936226507663174536013822831949428218343367390657377483058328514490153534123235756981419517706094042672546092557491240767159964427855400795176233302063352665960031701140937119472590763709054605532886297599651613548206502991400498218037804129452835096761828656246092449334573735030668340889373078952353768476338965219460901093134938330904567444630516869544958584031149288780250878570007632039771959219447389254780429884541658256514623260702826756735301487493159946866494870552787002182856526282139661682030638726071633272631707558855767322029087981864954680606797007699480585142137290525039466924154924412987482021490212977911034705649682466765180241097627492004572401528656697945092572479871756004707437708187876655427923278054511903009633924228089890362765988399552648914401019422594549760201282182520324191102728723044546353602467944861673926093009689343687901265844851774590235422954490263172266319638840175367070486612803362663771065036778688581483622877175319428397126752988794982474345142876359072968768540289814524830238021967826616341209005425750952370899343378379732913094474175786261480579921024882419427072995443040972241668513660289588576311235851481113881695556811715951891322072996903759350515889016689324937850298234828951729668810557244026026488320761585586311052994472128079601471638645289945148509695978226942449610813699072539390018421007947623632177225192574237447699756658347922475786689031682836748996313001138692632708139879407820741673474574644256535011342622924181607548998082470305953278844993271946653751255232475986022894200692687122660576795902088512916345558331841820354691478212412699849110395933968755157270796892646379924830469969774000184674077514063253338841257658568581269696387993914781946941023185342826631960280045300946473063067175218281075260230788964862839798017857161918205242326637226312527922327300416475718104317089296952884304089921662171541220346107653846885294732128265852344029742534824768558675092781882180156337528033575183539027604008362698558458604948620644572250505752850953644926620806786326704184427589782808344381195411074622137225591849801075348079925753127269614442192294315452599520530329734686048973325348867664553447930221077576274548793832269840934514276460991950790895158560263627173919033882848568884590720487503397819553944292494104214323225743903874012043274112973871196474098463248836458153699807188537892568899794495871361651639582971263705220915899982005058275336147062971758966969729784548928192639847057772266843672673731281422484170017280177328280026803318401747249490473012652772737083833995236087213459018508683544142116196902574345475285630355980603770729988760665711934902657250991110817985597079493832915088331412276576812447333933678828397331404177607387574340228993526569626923621723199851044111332136720340231769890401712756409646014426552546971983391905236297395972570713754436433937804228362420567844227083481796744859346634287405808779405981410844488229447601154774940013971947033098879814606984269333995014319666670462346125221536631396831388264126030350484179431617053512849371308555344924602452653051530741474141441851542331093710266001953374748156921998498131660147091944560527965107499922266203619422072034913678949323591519699936238037950681868663928399820630556447351430461406295039200130560858909567564488473568040018846039931939461529147195720831799089852456086873648849130045515565747370021779438341900327546313440950718015720780502877454618266823882580735122828364975568467379463190634374646987982530305847430340351435049960615941156262652451894489279324408472225839320347334900265296264571338522075945128315537787996521793267382431636142650505709985482806408206249307837601209329790277545479340914717493994191178920568229431122159300036377692953465075582510902790945189577817723757473784945017639756881741756936918072413065767789009890814420353070025386149899461468578145738115929098572748333233570182573527851768191042173716611980151033627091442299986735504749365212548322385432797190541882126133895879931520760254831518774229686475269984566405832488553563993043355819731749857472255743769830197740564946283316289129252613466527645631771014551882822550349460367606787438371798806723814230483589716065653033993135758882690377447346009265530065963034527990286208103847053254628899532048546109944003306690633787158544200177127010132936345917789514753816594441992136158685112790881307651824213796733026277736150341519864403738750804161394420284446441319734147044113150299400599225993854672335520558706857200622354974402199079975289681988264859400779584767225749080863172357276221623948349253942917305111359987271426602178613911093369552181310555687197899401449321594358461733643921667600321455663846069898288008907538628928542853592762607077636916639770205430461265008703992442752839486675418517419846757530006800030455033906325742625695225432586458268213615774921118160665752887452718432608229823893939483842387565700858018933621353288203073549874023549490417544999657260305358230506495556455079415830936548053872301065108669664618931782377654404867692356421999009000507563324384836046252056805763479987574249054630310459087982982862442482696111171196730615459795324470337028702947843841734095766551183118054833602600575599527694552749043971326010052225171954567119850525627594534822401676201085786795543386881863054384166747062858444300791760172334797529922939502901615313420007710007767030871631153731114049370482902752972151882122510914781502778997748984931965264371098774175837344877723720454926349239611061813778486593878708043427584168484039075233331070699884133688138198134944651772108668037932398650029076558661078201792698074271702384253933020208423582819015671864422280105689979273633493815189866169096169298773086528284543235898721450921189164666046676177908428881133447886538682309837433400750480887649473078408702901099125323159951053919483564095780153358093672710286608054251916720842694180037657785352333736846581062549727686954092948895616336358714149000649686492981547687670557924462131843772247715041668416771285608418253721651389649466745278904681965558544539827790998411237465141826152911374839513570878681350400315874590962639805385063940290850756224643549080807066919952147133420586807393155739796746877592056826831693826985937653239621550198911634644864620625061537568492135909146247857690336677074841354586248944604769170198439639030321373689154802116344109635428314997834532723018839235696367534452345795101280687377310907327608692890696572945339545153860241263568622942852273265427358765068572363056200701911649856042341974854397831245791924421025479541941855638836197858719937696577521610764652932463366616141394163503600186061004360136430675364308086135345899360240241231599878924040409893575331293581360984165111750790561115242098404032848941924378432655718372472180338859325863354111508154825491998700337273847709782277435096655018457613671595708390233420910589213219260587948722255159132802076954929868766372430813552033990747391343623955028458026565962366722896422934010231844870196043506278609595401638571552342135063865629218062637162284975035012408040558443185529865349752028754782726519017811387765748262621399688429952623387893564474947899016725313377511551076706003549118588747402080166363474805384352759570805069772754452401185208927279896250383936313866957601034876710743784412951661722647153691156274392397984317050956455228178014505622088469712489244399064722857465575578558331176177454601977897666758504328550538759829046930366241666407449809833827277442112669766561530638260674180396466421224559463117412559800261394912781725004932280438694016727717563490720292811740244900676992050358050133786762309356105166720016628418352869227536125727007067107819859947295243822946271773225161967247340809228882566344311753524171679647244760249949499294343902572339629546909919441516556912672119362954884928279488922567097248475726830085057260925413964012824347634434488867259307156529237516808376752212599012471728127972865941778297061818528854984630130355542400632809654690119925800272539202609586010003367581353447908787917318918561239083987787185989985082251499735269657532761310020763267216260429997514132412038849338987626287200748306403119018782975100334136878536798377304062034859408929814623967149488383136808468380684999450981252255247651444668019348666127576478312362713991057465936525140654920496375799017416451481794592221301022032801801601635819680805448948348842609226650850091639649150964008431657452575417330729859789583055437497301556831673562722673441638872479197010317531164973706497595789072394203579058844977397216146332537573240957920551512165839353344031691003414160081601656407676219035811381834707667044362665351225557003850103773120929863487614510012254528487929141547324332863612590403162336680933097652954804395263714591621401041321356862061984591367106952191709916234534994819460830006097574522382839928229411880031289441935468430437173206385100619152044807232582123507634090738150203436654997327429614834504202292822422608686143888094946739024412523306546547691233954685687328800828502736340632779941510220980944689723408889254721446441320210422658824160399595511205047902616144883513053693228480428728324555219429416790166469299026466658715769475419153969618482768559975743787870134873268884948010279828702951463032475013650609846327308539994381719896591857324663076599300452022066760716635648379660357854650711309904524392558414466518038450632713998844082454731397309746585366054745851059604034478288087861447708933333751835354111605893238815113809390324829213597384446439064913905842370544174141672804780045118934636738841323759983342080953200373661343099103214211419544460746238568454102210651957909257005863747044046568393115419682826237634866871987856670966112862653846815443020146907932841124553827887744164638662613795272651597820010843025698681959993090080101614478012660437649297642157006695576962783266603010068914993751514299739372017738265530244915871108834218402626923641737918508877599439949800820904357792384638549142574598722786629519996358353759128921440192420942358580335624328955633730218034386885471254498105906349604959485485837512146249682191320659769111634701642312342992123227047726022932687664458874139528563710918071389105207546640092014978325592896467143871575247847732737602385123842996560586379636115468128717495957870866484350784970885837019414453511108174130180319423299967256665998231786670078048930969856637911544812565403588469208930129212502231249283030919755520807690608270246594117390117498384289087374817308078511672956361245929704129860420706360308059027331090192580099362046158275092911821807991071706289468504212882846285264614884120815766889934949374396705187896829506682310785711199789443149126278181614387629133548539149925932363549673622987930489854416043030880009502119669425564112442716307330004334193583436502492649806970175846677423285124879169139754046525235668703815068823388244703811108333409833439091449252355194002787136738245703684862588289545880112642173209160322856706841144301983633260712664611345707324684174823647868952819562839380026163193304037982265415357546603314487694577194073241222979728893319244643169982511067520394044730526605128030143047444218627957067012387948453573590953847593274595424448000264451802180060048673455865902221868181934460208830072994824400626556957709823035359385950280332921902202817598207739046885504842647643391085194484934034429558708901542172658035717173810992128507408213119718435429325644071892751726718892114624603845073054869939741407703970052785315998011968745298970923861369847808380238958869480224586039548632108035310806728014530803991763260979138942302708583189879491323931331835987171541330685952444454276291190772185482190890077348659611286165334141992766565205410499989522564306807545174609531642404875902800255309070687149761876966911924928786092117625317490202735205427870197825137925550198301683934346642131040407830583097519889268367972597954566769302209039108641685441316366982556797027320430201361444757798804806955575158003616190002072105566773507224728666648990102298469611833939605336538263198589358469881796949078302163698279989987830019402121981952643484004876302039361677313689507267856658906820543398135587433777381865505388343579937595267267700265416978552743035039200167758307515982889087156152514218285319579877448341240144428476726659300442647529670762215040119705967283437055146500694500716350836131725934430973096037345344400370648691243884183426187051327811995731451911873709988147186005095965300961114644305692528470572242470261427233115382787550829459166582751534347323632482370664103158718069718961216372147179127917624881051014049466117200856213152390354226765072658960415024606529499136521088174582013151624814487369951546815983917378505367180786926112601386833769906615457938486393575876698485153180675946178989907518876101642381972979896928101917526225479507924756770580279143964937553643904144346058180948595429486002779440601075907344309480344436575148045364508083013931126090569042676851904165220034309155480959196309957586834345732381360976721276676773669738311911787382508907744882492939151017182941697904513863586696413419380393001954672892172029510330172491688185247896019445389139370364420836013178356407135147463368882981557788997917000292707703951831251011130576104139617545949550657071005543743179104865413948005592921991892448484955263563744871261354835973237737892876106005901716597103180506449036871572947529095501368664923685057779094613006191568278703184165731277627259715722362731499865281356174927744184068183010829227146485183292603301273954139865116980524731158723957723177877732009260856828165355008805480924776203380546515355210282797439484595779040170572869163082142457888261577604807076091798432641988565795537432436096699360274107900929923592872482021960856124928810723255849460122329965338424094235167588186410501838824760174586991087206967372502421127488317929309316478032546775034628084825639121743204587824301808818548028190189901980473183039038676771940975974514308402384029341271423159507088450766952964551599181706820730500242025995404062956997410556570497830156297229066814470972254213487409933143029864117310614044752836790228346210316280749264385891825988212400592203552302535788373061542243246523458954345888558362938154291174980197738262326482056237845063618762290833915465233398800036686035109188052275640446430325893815589512923269755301709084633982375208560226378659543606374065178419655416712228717033564210872915249042564911962116351462351836893193539111222006729504476579689632296118863766050849139148605645150022664360767581022876550211202615158648348254708542656022491469769341420488161316043830195585026238730463559432735677210924437560173710926405407828349598312668886506889037538027104557945458939504803299809382340302288499930011888259652944994564816908304001830353681824575033141406041990110565826137051216955652493078543690851368864610083177265015063273144700391196049603802115758603480116497937548368211741358592229697330864168091594252429541411451270361240109714247888045056664010986433477726487193953926319614557737734005459598093866413747129164166627455172674312131698226881737816746745031310535958441192886532259548352383631378238359938824706005267002714094703073004644572529265984528241374160617455745286836756423212581622380903835469285570147076492794602131472687886522837067477490811738875912795556926371351526531152154634661480389778057200831966461332985515174905130091685151220423111155358096920296177778755201495010655797027046680796684579731933045360352994709791434786856852474988282654708975752681698831113398676857885462205533147068087381617419963765021110049988910090358098462932240854588358056889978397789891034503187310107074001920366171919303302794285908522871615837676417133405996464470843774040679459399862626154816819814025647755224503277706910006086227425402717767092794346149751557508845321599430066586361493683865666559016615349285978208851045790960031145823117188049937630726203291116002868111434164041549833269807159183740473774139546340956051687370537305565127804133998144762898439933103412136794799035835190080166500685618922009641681820704712124654559913028055516059823515328660664360368165833355376158222739458688934395481105168865911128016514726907759789214947909823573469058515078200815224539183764496496573065200983284026017796786997879168084625963233034612353852080062580484438684771817784246112389642314648078453741798795877162561148683043931018883520115757465458234556368008091153609820791695026177095934638580620620159006507479008124085904104036403602618680702150696452312931725156669528752322418729967423577455865739927944119213241343106752541991148192919422711726208678494733328545327180628744806433077087404910665603511329048869007977114004821526106474720633805264225541924872742353769111135806219034151619911866201743662532061002102050967991370935315068437352517032571988595329217329114632061397022519410070267086265313944206956503378388544169034082866587505158493319256743194439945847710435772271878635303658242071823360799388511415340506256547588695472209563966973527230169120551647961003346536772411098999285432590778748521626919737504500075353016281747882574834256611371280901257479670847089049970620597614448295939469406285719481435453387515739402882561519875459854074957338174144821174382453384262195215315261309674027867857362846027593339706962374023644674167561639852856695677306944180301553484561672593328647151090796747945462954627447660919169402494458632271680679379815848683431362517233482824813651051757840923453712953862536805264286933321102726936150231646973632566852607198738497454478267959403840267975863884463116934150551730351985171502912986661903969207551410235694465680660165594442432393363721097015791415538405437220880816729999256043419478164336517159227823266851654227722311264567559967639627790802963580159716267068978653853243069586405199215077585353394078653099562684254552917387146087234236958708588390438211095874668785586730539116061000435571547468638110569737492728101252151445168722372354025754021082588967566719904872638505450535775826080214002486333574094856298247440648685039281455168909812884322136547625701544029299505215961390873564472358812221761180803633823072647378350969778024603175979385258484093419457092169953447331810210833257703033181418255923386929093842871666399521232792838731795360858871174232917107983564330481698113841250844453956670959399686552406438179666788140719223936490713236826718899183942018018870469924316465611795766797314368508758815341696965524473545073845447703125280716261159545484243348196073212582958018878257193578801843056453180817292987124596309442430750591791676345508199658449346857107172097878886557795820991274095534366078349202593567323272285754282661158141763971146396889617576601564352886785029182366782219689863247486827234605433713123305798267007822152435050490006346618453335327607054955002282801599953908793632905285553233100725347193761888700423405418422837438643510282403668407275936642073292383209972929476864588040843750945060870700184083826791733871416595195915752715300531225816164039938679380069959938178599356561951669446908971298900032771919659306047516723393964132450320519301808162398599481101404861312241647300727468774949699171637211802990953423603191327218506442852079770395709861303109294639076242454357468021166452534680959256106761626226695529451182145222080017641650928347145132164602048734924924084269273145088115982899152984423986340524184099978143033811404235695456994989507519851960606149310523374628260931354332947180732132919529234233493783023350975083703819399488102559446143600124909922189638668217081395834012363533977169297181191919473095893923427627408490217397112732264900040600466521672991557413488833196902099399595846756300917711552270689651457068382798550319563957974644461357781321535601813253753206959305619186430615614790122334663851178078166413848358577500529817481882417620799421149729136009523071150198235784988258248084554853103409550818825729952729843597971066471841294364624293878454442149196852118790550422577527918836091288986317680907592038078407937055103545811593655869950192150083535935896096525625349526522426679327029653235901188801225755373940467329873284035336707328104867417145868809671894992154278884176957460638624168160431881436377334667474811277404834933667672856376215806990520989813930950810016310043214629496641624520990338128895930070041654296220715214142974452470654879686067704242861974465067772253425397151115279459909088058870290008514858166940810022470033427105299712349225076943577707696269282068413359172415878748733653006285634746968600418027796025365404881029436131592379605310979607089036962304149128913975815322062633079073489529617476560421482263272162654981915693423235759615956750136880131319998787962741197817503795127701902923857776381638219252642750351374920499389862583279731345555588557558007126242506062649476642082223605635761782402217236371373879417872306706498516507017396982661433797661385154390777649343581246648737570104693169474327436333907216302189123232595965645011212830572497843356552366131341648377564417448292830800136489426014581957744340834798213217550871178029615409632445887624097669562207826118971072450329778933108808520107168777382790549908932214102610822955432933848534135572743828659851782053465053010917163153147574620683532603312744416873177804147161856236196704357819144749399031168132329378153281643136022491244684845553752434209207222112036519050560133828726607088015511163924146353160945037716685597593904861867878531649400769690552527479264814508989288345050893166919226358960312748542476281407261893192489437889126114455831608832499119523320824230655662695453867481838251734570558142044735426885554645643310219258908619412693995914719223990925993466272671451031832608218009315103813418604275974397398978388998294795378093096208987920758573485736913932944538679625790109019249843776973831538164947390042063136011383292890480047936066176719145026465713079030346904322957020495554281970952254235085522131425301431155118284833155529531860738867292346530946399142724298918561702448497426728690041229238393139657853813345674825019484284997497707153588079144594522448562958493289000382122407235637370651614753541471498399207923179507028277708898959949662237412568399557548862442417782128084832332605897750078701670761277812957654767257002174684220794017802327808766941346129607426889386121548094724271125535465738248260629421152751497368434206007939814273375140954982301757918415916132772849455906716987827582032815170163212117540934463001065001621115219858613317345916995206060556062093782146011891055212167018631061880654297102300428479028786074674008035344057932843928478520322390834406083294354838265258646941415547925398407877419631865565760712402786843882343273566053555462296826830490868372673200004459970568017427961538102987772297311188827972494508145613676390150138933479120039279548388155255482523513127179203671667911489746496621655979957205905864344098549448036647484754379855514715701239459309168690735282277588942168883753025845133928481064196292300311299555819741642876509175175322812460492800720796562693442010668493056184754655236190402795554177363209480824517375427077433578539586509932496953839292663390979988920837897597220541912628432214204156099692329068593243922894747451497646117128383185401935299928567418246528213771709962902981169367831605774595718195439802553107983584607182153389714779542776051511072094459931520909358529798715576253220249702609311966191120317739940274958658947346892739425150760867520860042848485140774558908869932724073953500967893148828491747019548800226121121215254705538434364877482904138345841200593625022869750369016653261822255158937009553778939832968541570938407221882329355764033529899980070130620450377639526651636599198191092332368232685881549297359823310927973076147071332442430120859748395955140283647156887253837296806879962172973674253882420821575205588841498766417943630391764185911092225129055495751578817364927003549408147044505489151206356370196385105023937221873065725342288629547124597149506768766961526322138477427899896899107560226694076848889751633890766863883914348106957394000315146449081445490337334091058433626255023159249451354799938701714119722985256744441681834059760766062985791583794227935932171023331245550495337227735233312363919820798956053821786825881059190124289093917335517853891147232016329382440626235668125322807426833454092776611359684268121146315883003324471013351145032659273181346041174407152121126991218672964023763533058101805542577390786795093906985425465035164739258434061305165087277743475495824315625478233199930061020960389619473496801967223365732788847684869935152924537670688049013767300564506801444271116395935683078116419506061938264021882123801163612365524374401695960067674186086310489957595323499758263228242468967293058268732280751141333875483684033203075691390151455501803089301835306698349805474168703246926986937162659151520186458912684327321866739778951136296097548255712782305027292446147363832577241226643807304710120742779422748736213703599943065625033738501663678688860157932144708585338997460703662006638307455229185493570221564280266239990219049748915261882357847297570103259342109785958038390135039799595436212859984231570136771025281068351440590606620145433834457395856592430944132462418653748856034841380363152453845004327786866050505553057574153578294576804170670889367341888771841396342010657012247095224504191234725584148803322672886103325887186387351591126631260908713223908204341825101174681667156485725856088513330199407975902786562165787929581935950912912537682168998862062577868773315504875867320234512976834302696619573854632517857234767984999784410804525840806919104341107994959991013471664227931788708267407472350786837631705573982427485565262493506009276501132461377232728652939411521820061436535020427401670072239148007146353807154227217964108025317991252366188340999471868884628831826569835711375219888485507470994985983507116372136938889399976683858615641973122580376899527339291366671203221573891286696838781340018986441586486858930542641681819974447046484723442187589579812114446406639239453719027580193311480030367259063803518891449862096393615720542537596724794078440426724016725306912857592639315053527722484653602299669697858246455864965577906092513450814119871344396390016249983456380277305719946754215514541732030949954871543787437688323712955952699566056203011187270312697530669977748779195513228706594928517363257735632652443937805942681652054584172389724338591740982229777824150019773529386629730264373676601246799738591559641782445838470485730938761636890489740458263002380664065684232195919017621890259880701005271164043936673338044959343426166044177651325972494816692790929442301259339362315626962639927232037285571542624201346236894578325582926595073389498543110139539443964331926271707933877101330059405551712850176385690560688526888062562722301432688128776501622208751739261360439178109310418392093206571680735691219247341420830757080806805686969499063303864208178017369555353068019100913546904989066328107582486662213333232884171289494597327226491570905791817336926700033643432351208043220141780504050591518540877130631091167870567416309161676032769774312466359410775051009621302002413821609256900631315654183744252092580634010465055998919138271128243961019688592011236573500804107917631762486033821894143560214737370022914053700321452874877212667175728996538672497186553368503339468738633580072879547597610752217914274005845080382277610307713638372609269474167114032850783179998319122775682380322753826897168756788349269098780648207577703219235261411864342007608853449593101232542532163218722674646332944491989859575105339327630043181830980815673055747919709608038745136135890671228988792230908530390167515005048639387447129835261997901537040109354464760164332298412449552226657795187717667751412943145461249438489999925450884629656182940764020608834513020833873601174409076640008141013216110362016080154374869246233084692022017633122913846616150182528636836944964310617807355834110265224639560067110615118728604497473446571234122350515596007352650669421637254798959356361333852196211667088336909769091564780875652675467939830540656090837870986923038457938710556896471151569741524445199093628667648027826347211028088754738699781588223825436505723038538056573780995552491343374454954827804256353122172811808034079518349827042597792263532018373909703428392978029461412162916424140975217906192050549910098103382798697744010561368447629781064432223142933924152818551861947606353696256810100499682802523420671346880868772992407899869063848494008724283686473704605918761576617793650064692888204080363102070541453098476113857535490451899341336665697202651981102792541728700773703509137521450440793293395090504184849572035427061045244148711086361773819566405681852439796111956038671075301576541389595037662758235762469968124007404773666139778267361701178997084203346510677565621067822011791799473152831961200188932773512792887555255593468322284313564397876409572306396557881162759845087817316436447410465832915011747110475322699549324027096639291124987140858485245341174394656968630330659559499333888134664868649138782771108969491336102886216958937810988984259458892094286164787325281469194310855500306232122763269134173822096434362167381304952106006307966093872413436223565774945102040938441312556809222393543040164479349260106536718706716268093120837028487514357291649536114182776722687273092688276213370877281786599027004790020996256553340676236450698182838980493598534830630063384241797921412200610360498196581338345918912026682501360307961440719969130377025159695473226505224459308891874927185599527974125005659495253846560253773667669638051070346888119838931086413641574309051327962980048713785498685635839562282706615780127366780657945766852513479279669630335280442090335892714695089994649600519330679449119128171496794485967277762233082383670457153658341147479335199577090924717730653557296356499547195273698177688701415393204661502194552992429171170065781747080112412441203066715370950338797714727711975864500417727632079810016701747186556037649321122176598138178770409582447136295087132761183515458908000828788744231174995763547484031936781103319525578890507672221816150882399831066229596960490524899983645215752086630300963474872801309102789823863716785799743163169976844236950604199117000556231442518288679173190541476465390106344152738217693022841106426291698391528401027938748637433725283125144623997861465720084406099885000851679945230045561006168924302612870309521033762264588015670500887026338956099022827193625662964949379227369859071190679802687747793052653049182821886133805290803143639208919905121024134565845337423454721328506813657819656939870509954646947730566657177438387057374526131801268730362016890356245571825447357903232177506011233024245692751006473381324099802882236892341964975678943052673588636812727047233023585105880696126082599209147759370650514237307277469344451284506687054165397672260908597847165490310060001534192525454318533627448109286562515079401788577046762863976826495879845039167996836488471597556524317258018443027827744206225966925424776849087074832162119383056825207496801625267300994394133873156560437927758825383979983181983715059534521326727468501208708415545769075568260744550085150163506354230805491252249547536135182614629324066041260308369509572266307970655795426909303657891249980982938765388350607832838712972756914484856739682742019464313807611034733407846496263262589670093492910975337098394863710712502131667527299883790864862963862503146297690778979541204147455372598297177286882521619070091917476665562308365612426126427608246256411372300881551250992609917888844051416224524836787998990905188802344679814749406360492281547488361426266279441262779915407575737989258360894270961009753124465034343865810967953594539280882659016440032966515945995097286346610314120037116300403319148400287829798995061006977771250930978386099723319913592220227372332325880565846627598805869980741295449623494829034716932177161139814863852929979406165639731152024415707128517208629240522537685013311300579348020127698682596846990406167665958842283661181972161809842134369722996385311761976740372516649749706081515270718495251575393736486454001644199204468448016649532564324205906499527061371015500669587532544669385124027635295049955651577889124445262909510380251278644841086830637639330497350568273954569016368807128749323841989033229505714515574828038510273731933997626190543217119334742783337690876828854617270058733258489194069748057836887136389053736394893108423806825746183798996372913571975887914532283586907539597259053483071843039726365349300820966507118728884195280687041455881961378811427023609238291429975620527780066928294379187408414046610396729757470966623653224646124858641039584563353638684669120710672035221362773218942830675714139477151509440331261477491907824062787139769582755614178243593182318489162826667480475320654554658893793678548669154090589318865711889439450583379805671331790202605618333086704541890145095656429010857533846990089798791082555602115237467590295147446109809853770673808768554950903176890870687819407034677395529257896222938420015163092291675192450397784973996069617668860779588571896113186247543544133203839599300698266282096531251942579372271873988672113808089245394276865742874742808214808475037919395050806512138323754575861170557037279237141025593116228255312415576806920444179638611722063825968661264282462996438182821550543158508443746831226666712607436235483091758433609532374096853798103125167802234773317473733914993794149730666797868027500511687538685708006760626282454999219593425026648276954601242466916261100870788558427559488917228680077359891959762739311820669021272773199942235650347812707364328344047625535307153376363383395027557650569861414860946546868547497254632394069580751220610984126466299741617311768412460781715117265907822603169791604200795123042211341052306397270467850058086380125582407131318336312348345507323329180545157197547818328888321980238619679017770929706032432379357396313492132253293406436711783979312876383939900599322259973799498821010604420228809902729276326187655809176103230332128813421728637546299277386563000420669056640156730211908722940770014172058516933661729932518833267436163752140790633148747423931494650508573640270964716112886954846558986050344551629789285651043992746714466605308577710165343664631750226290770311578584372677296245652019207889587878554783681395985359792915677587099732058165353663616286486982276131582389994286504434602007562540849113763410871371778163756020813248594606872180381391867835264284838191788127730890933654287358848903373323185668522175918743811226202906264063559839398251677871753414656395455356771588956986053789160767618476783818880023214423401793233168100063875105695651435402787449066005717036895280288006368880236591944686559249932405692990747232345669957042194665384505778875235243621859515002660629708620960219759381116147414022736762110886641157974777015138389012265087130912116788145791896368929977007961837172917205554370933544642919553353282327279471397607622461021647978593137613547352476788445964410395917531566984768365404823009053916372672818064610709634787067313691957868709053269029209462883532797023409840052028570974985241465255835773855793632386562314576155785211750970717629265337661617950526937814776344108563088803847306679435367737194756751821737082798539138764228999346356909774662765771455025454106021558770417007530387924124013066712645804703796419896999744136568531166822394722136926161987920401938857890882320549737919804705114950655228136061158574637774877312836898653956387831154511703470623733068175729748449719121879050873922612251294890653308175494054323504275766198831280817823399753130822299081022097019886480440013249963289820946076602632928744617925660571281959647944479650247738476897293811119711330982536235987797830670770841134430056141034362124834997018371969340083329576633471243980471595210301593296181881128755394561348112982911397903338303429021578374685407793738973886815860263673353112212771486642744224456010100210594980359604342284811902873177078910592273292405543862190830981440468480414838194164003479955019143649278451665441964169342539113636424652955844331216744347122564617244526819798295503256976979015686029540568741284026491123730646704694463693201338945341929977438488580374646883720078008751333997619630182573481038484987011898643571494496619079026821352986415261089306546727261641559727311723102892916570658708606448735022564469005060276639899803686989559857054804638834233310328806944339211003848742079848420121691868054225115604955200977780353362104235297906845262541353055592879685280490671826682642030233239348974645150735345996558328899155872171465828872103660180613855619733556359698960706522804459554983753041676432652953647986035294257719983400023147123280572931705242202887687188013771424266531458445060340814776425090904058516781255887277913679640732289258770879202113527905158046591751945834014712023205867583511553121019055169051297739396561718874937069690624961950064605436307481480901664371212888671082581435885354313553258481541408136194649596381879675020253510124381384279519718745620031645531377971187590979361706268265030473557786472428677241745262200182964170833259261920120909256766860830673963069913145794632611775305830674538724117974897703537739375245679076021461035801794943898028046073587209350494914048709080815594773594587008414128009618751549083943866396575364697608022047752354476554828186851684275780791893379784126223605601917870511506234943237063310444547647018803823279189155501748119796235834924500265339838961367925382780318192439977946263810499659478015313552678760654369493307733246380360670016363474281795926054120564725373337685711774947620357942211221454682574998315554596685676950793089758563113616608363888227030191074170961337660298001128578931230036694823516133917644300327963539513348944496617885995473437889186892480644878651868277203601809604968359432274363708779492750698504636579120328760319929856122199727664317655992134806499230702349617106415926189531583622410869093141277305952536596601585127786503364095960552264393632972945250262510165889868275699811750130102022553081055015757131865358863515172134736652187692356325270679529021869887936751079190157132853502215723879339332908900080204057186466813592509241493809800713648950446965339576002118652273319342468176177707536019867961653508973392071005211225645588472356833022889047840947660170977085573531635968650519754632637752030328732622388114886273330171899258969577978509852172631649636202705825460924110729695435585687541950713160819874599827260438791061774789414358919546119448989431854396467921055854161758800048345170893218784678637347303853677637182956959666032955142837212876447851678606052750080944084242438815321271648832112521485728127325256554221271880469265247740450305113488015191132377542486063222566825453951429429593876481772904451882430568610670885449235242945157727525143261837606887864283684743347041215445296362881730847786760504877780015623395251909381606139730852027393958912148607635585825201742265733017957816379080121138507532858064251250376590808515461549893743467988025026141222060437783612494697355334060345211238864632031567202464976116890781429060762397384162153932116133568066807465057213917725800461164679041755588038546284114052554098758590347521773641984209744037574016956164054875834858416201980665055993281841150913506377843851530645374751238099593169653407338743372148903497419995910189100342881890783241074488051572192635057963452017685370515520242076066512057383622599793135612850893699454310817392916784068278604738471129402650318750952356170909861205236494551673033262450949105894876000568336123661813217926863368643698163955950507397716705090797362605663932958787362071524589212152256899079810521583670347758233729143125806141935629224822862025627567346259742630799894116444462366732962292173801369832380854831731920242042731680589224302578580913989815877851219534448965457313389665132156645680804549091720721152951628458662129545269505862701865557080578036344319519973797961196789976602937158807667076620131478677209491325185979341448027953175007661863920140498864312721962880051351141620928449864570811108939174264612210661418005304817853318991989272747042954461239809736545153334672728177774684274797506222939887831357163221583545906681583390490733573453420457771466898058615518828897459164680143244773212903101230871637561896032366613201492890815447314421566107767508110058091887741084256949625442929483128403662138305399676402582054991421131907366167901224801194325781042417666223866390308883041337799752225532361092395067488372451792921055102699381655700276155610251759876352475820177782278410521978990641982212737729208459828609006818082245776515112412147803430762351638060102609490653953346489071711414316988705030408398943844753279559822545281402614581769741621328556257982013262384618072417923916393639085825071117381936711371322675400124316234614763916515634530302052170503567289574922159623543559867155592087212561713823179084228978540803239075907465125188132964434984873812995499344797891807709124900424848608269385522553302281103186267159341557299857190304253108458584339151975993756848355408797072722257121234324729157850018019268464662492343391869531558490292841282881509202034054831501240017475621806471730559316903310500064687140382909404250557641379166072769470867046035132183430010336924580441744407516169879723989955732292320980868740214020682611124196115010988474330759482980769192314012465433410395179801450223616946993650040553503895685037390724234102649920674927583863737829239833266321946013983134709194026015046915763375358769071559898954577048432550686293224084672381085286260508122847269600204484074970288273572179977637074713608747385358816839875474138265738321431020424493793675442314482756264083037942976277736430848338340932462060986798686698395114565348568753737961364930316253944554525725759971128095207032636051965112221809280178535275961329538548637796753965912164904440994623376943775809713594009048893180386103396104501729501302252633587245952468506766233255558725217791999017397562433861516102119537235018841441352574427391139425072905769228394178901728690609971325963564592032769281129390106697529835422613669730591649285530768743530744889111205129548572687609093481602501314577896082400920475132273932068152260174053157025583047672522756466623437116841478832788034403733552618743383843255167807282256784905735433871875484746302899898522489688214280142281739681029463586716641875160753335936500237243761045314519410147436159301435249766474300126750326916552731178966256933332207036799768609306373416862362118826438063626927050014473476715254734750577734192906328941054989543770634025616858134481261079365675854997871036953746983060218321385522892154900260090266383035870243664870390345272062584119251797664021875756556555543564925379413270061833002684160141899293744043161543953890350107319669434904585966390419947045436881386435814119202128949004937456045732938139593856449299941112431022436279143483793428466706762742841434681782460667867895542486618036968153613062503868194895706632923185482153388339146717023295211311405857343692243720028342858159672656583978154518688500531868042110322829271049806424479275606317145886112301217182237099118348451650100864839190654996297938298489000651404690460675206805033744838528070725881441910565310248030766088602051939623790993883532123123978120987612280082605084230981726155354501131692695822951363353355329374007735996361895808081326659942367386991919835930309364183614894760365537675068694195576302847158224686673993667295859033144811732337773627355820124908468698123688843487841678053114392251419239437315518169386272541614874218615313188957496616911047885520360620509481410637385169381210840866867051257325638754266898834818962591588953251601510506091821157165776262831283076387176449358173793934387887661993669643259627018570698566577878880839774060828666417556136857799512511169337234516590209633755901205125556933964869945251013727897564506336438058261319506298042084727979361240344659388759507409723140392320275165091597320990611019961896837850000662325302522898610491104440002652331229255220593705165453424021887361173430650089292830616935958683007370262759907264789368419339625126565543785306061603868958000614723564823145349625145343802822333381094077602293434013562680192008819514818097830892131219186863160767078929814415684748528286636107976845919027065325668838091490339288888691941499415670331221567044399683586005554711159227010037497859433788054741914336712557986696785374399524122719297395798363897007392484795928314460567783189674193181213986641805778835868927785860661733028948791193281810585023618398774394739066256150988299089864256805688274641937390555933912405343403729035225644775659194354855230998066956242747175900144197671913934464103122397569141153328492252319601422591166082931869562551120847009595460549390807378117990245135459628453752448874676722422185182034427632248494373325371670967460296089844754483271255015045996208949441506014269719111351157081435273945683465598989673745732704532275609730849561466100918909071368494735092819825815833810546530888326952975459114010094825947903813064037820599950456324538379830270554298972500220739993557044950886377739470645554747254112979231189989771029311270859601990893194394716575399656974968341030210865469074970228900418635880314379729813847367468164291656830340581531493373717568329062011462792343716498552899280936723248558522738497250491950468531614241643175874481318274151275745393915015652317594716534538666550709111579219926512945650923339603689555315342154330572042870998570555421388017818746350526667264862960828893455432023154895513836297438513092153577016841742139811184339100538990851525137431335021126838200055735530195424462853233506547558833519766721910915596447531491533185324302924457247456335167823528869608641771780759313562050401072577466995833550908947212959201259132643027477744542414227874081681997614654928728646208187671511397821279707049573405600552824217732950164239121126518825730279039280595045850424702974538849419023934730526476714594638494416948468891078735356446959437084193301566931884985892358857661246034213835196746369800984839736214549719409325889973743770801609979167558359433615006333500919561185711052156796084827340490721342275298578161257448625198901865249354694100009886303232240424921062053313326322462302348872276181847731762944176740582620378873616333309943027605847908933227913470039468723463652073881679363248268220734387900492885616155718520418841334244890311748647838298758322400242254284064636758269481402868173019053951790745056889880311318100323085320664334890986569552171643333128442498219666812044760563422674841631494103633157029822023559833436047145147082394843980947051250559599498008098076936310727800120545743923450767242264725462911612855117171648929902312381888779972290286322065179952828302108471851632047207695899910015825523233185640572070895461340044822581856767643613202190511263209040214571178761991008934345583255191599475674101389465271019255959627167023462123656335874662694260033686179327050204855395235328937272874753132753856106603214626059103449879623922400248745785621913297785991935360906884568016644245746559710198465949448062147216504171880600899654574829422202758450121835319684799273699146835694925125096178992914200319464953983675541506177642456233839919365923571736632237203539829200168289784970087901227365403999303643947205525759261110019668887833167508031420796874617347652040572672602579156571684567156267384166952989045435176585139180515466590031056835897371046091763014267995714392246519705623939317026955809296793124064888990258381738315180126848520578440340116541484448256665741611594535394077399478784717651033425567760511353705943624192049622621712655313332283075975507916725350452720147350854369706529934757692376164934145240016240782648756151391443635051957017735148747883402605337654585247168784494495907725239668190281196620364782092593486870422400479799305336451320793849910189540059202481628490261713789227708009438462136617046070383116417589992665229536475229353031238200037459209338774674687063240675349556310562336424131230969579296156626135861368641433242406622576947318999825437714873292706519303238735698413501554000252106610503774907137022858691820852125323354560908602036756005700803811186601719190973234801760365879320045399730909921948189174415539548463039720226895824938244336172103986623147024783482049875186640250261934913360907513287609516672708643858838805651669034472858668720329170463529598692510636052244083571882065968830942155936683531870410526037418645114002310157242610671703559760026739405503516297924356900884549381710522646665035823872174879510918512795087675786946089484703728675659739645079972595844270603074931093803105551202661112077502652527158331385355997765551975246387901876280576314568431096095946155980080810245020654923187935515790489196098357585055510835484083531615999127318677174467711525788856471391574067294626295889930530527107331856962842032400164666621236904980371061079251405546443185838342128259528743110168289173663384497429124908640509596319580876342248944078851004643381468367357548426828767409631745302377005246943032862459122649690001594669459523280909624298110027283325993366986321960268492881022899749611904863480399113426729028881027128182054337881924833161342878600099484507949352599411295864287473619393737995893387897904977278961824656766484186449512992360418392729870904427681188570087826727709972929354352653467396232455623742212251724265801835412182370473297356655241630905365885452634919520989588053306718840011298612879352035287606491502342700000213003085571188098512191748928328211841332570508193459944700491724310503660434158873818517270858089485906226821118402530675383056197220647850160964121471966984114975549250606243333597246647137105556281654649483506826488880397743874656675153866673280838195741133687342419864890716186372968583726747374956760464567636038021263215806459780748423290827249477395277854088811398719558270525843970281779594744973441835109555546562776373987375108710854450080269890537676360725643190814898940985486015526882942832221198890738719603516831097629385058074842652113455065023879374528909391260307406269929199417657625172805889687475663060365921909722603371020136443085649168743327233296248989389336741170929956749228726543813627057790707967939890974856052929847852966544012430612427724924890096129277066288284351521492241167096593607250862750180426883651521175356587430620679318328130823405448621439260692242864516492423498045868984134828151008528016785038576613629608277415878765836089595432871956824314529572956482302901707770782107764516736542041254797168768907120505587079098232078884901715095573384052258789491307059250320122636773532310180849340103290324810938216723932853374827370758496075545034367084907174939702386961954145216824408838658686036116328071688240272403287902221553402979145348531750110765847485234502883277722517355108385800369721184827662335497106956407895313603950274817884020158942011704858215930111490465839908954796022148830091011764643024256256028663537686272592883284580042190777428187197788172837695951155240611297971991244295252378066497448912590190134994294115874122510195935104135529274981857658051268228904586993387534504042140645370939735215500676242702666883358540229355301774498849603550147342643196683229209447064388647947474221062219267173476854144533526725350622213624465161285004425670255858819746004057947517374361939605959948488320662476279289977010270964476547048667197129457784340615782192606459842856611480842836905110159772553727619471281549289847598947187861782018603371734901421365826533439074379514068798263702788700522079283244932864786737460254864710924448730316313386602174761123938216430168865539188595052756118109849754374960458401872025474048606276204934344915167714735844402602036655824112292962052729760566324690884663840362575377815153111388124871490474395419373573073349684279808864681215025777484051197503491233495353457078992755519492196168484395849165676740183091718422722324174379090916432336662281397339811796780140551984941318173279318869360902409238764418445297130613852982889170818961567132504850205532196111769175976042213685325002743697671160991196777284506256773997794711392915896282588771382120293646681180683268366304951220781975281638540280750686799909085731732769495805310479003357422908995467013689774295174216397389716663418432705254734428694807816849474656365985189625009850042363753595000829753015847784062005408271870871399714100780215467692434014319774057510790824729776212987556606860915372140350105275059213771432616778553840936583517398454384081631946899100782947100230603939471850631924499468454760911327793212521957989903666266990151021365782737597739576643896738934973404158596898747611203239540078072072867913007922979313620182456149973597999507090429903126219988365526700330167599710535857283358502135190575020612492477323221729940793226713576981282247178308209312576770130511503942014452719016848615282280316337406176456845678215712006883522508505789960219747526522151350057245369832605872377714175268253990371094439880598418933302008925495972563539961153137514354890323714053704195341755086902598276218071059358022926593171108534858168424964499914142907598981721438584112961714573826455777410995361843528837790279831344114901991660211288074549790118585182926264168743728312583995333474672111867864587412681197615039766744074541877755872870600546537021208276010449331024798309550835554576155987277884998451840981606548369814859216282822732344257968927874104044791604788745469405509588463283511215136372914457677161298988814992361390996067286148666898143938435640658193356054398353862416537511678667925936410944757561555599036186351488431763904864615156843672929716653233110918072063945429356574671583149233619282780911778999841808878739747980787997883454843200132170911447276770923884840136621021257647608040324810112292813887348666491499652561138760895112843804870359605724204082702969233910350675591615098021442820806111447948909028012437166264504102385906486969809341395693058769400424958332109801464722783844798430502799796251038061244668692218547343260568284473407093551824662302300621129299451903625366111481236812128973182513357735317463271858252024416848682062775510616759966428638102252416782046798380180961400620994507752797001788308446227332626577665163638911106473243949583371268990435662185553843292025090246807547201503926714768908682808825685760849097600248383768492249876952358280877013057299617110087996522139721272678368720388807560459317138400707649436726200227251588626178734534308037341231409418997372858009881481183631416433741462317451040749477014402327078590994353979425554407533811222951837944444852886123553514517522784743486684123207833957111199055121455433542445912220568144846199496725374584672716580028483148921565408627361794043888216186360841279706876923824273587637878165380604949147526133489718223944939918646907512967286542518104198091977412882323566146144258242706518862232321354759813572255504421262634145220853324234800752772109736576310679093185295742885125159319259265011180795019259708950017831900718099978953116958871375536811378491498626622346329286757827674373284025000958353490246737093947664101642206559142254707769644805302336799484664491451385646166689260504293099510211530088259739079988800307252022559104328893439108177238150989038184666007908598089823289085436837768064582593314241375519222211604802171616399845097375643491897278030085199766516919363890260429430794330318006702217070878642436287582964000894451332872663848952829250367873741793601715682546837682564625130010002005159418560888276238497789466023975272303148750339067670569563500556436960186182000734856590885070785457126524323570991502422520569279941351447594882735166002703912966410278090733244668756333610211043331661070746818619523520489489394187222161517411688980071936314155490705597053235134739587550461613206654097181421834900721558914308356285585343821485228046788517060322563800925000946603292180788117369449752039916388441499922850939579333811891073744509363864532351994541064376521155688235756574337115720048280299834648888788461636819228492217814207231154152143577195150308080182726081725619571324732115560349353837493461156851341102657494934691778603572285208559754287404987572247784229403543444138043240176248976624053484500383688121080475185331565966171016785692563221317478405538920110760013313491342837114849265035547537287026562544585430755055974999906559953274130419082474707356660698282284965705399820923526908925157376722996747254002903959938826572173376133798659362806011483748242616600034373660249086405424891458311043342600314493937874801269665610601492167789255293379165810659416870153059422743976344029348554893295944961496042034230921096382895382288590228223625282308188068389600206875848789074073504368318342582070882246938369390314002447553418000073065895250800082872306569492227543417366786976465122052438769688818877522958136238808254771705731471245790135545879978017025059375485883061110930108474136798351396584786874619671344223691225141049749242758501945537171965628979103581569871740421554235032705638889467329337014523543370749877298826009437396732921559765238168190641940499614142010207788591866378153101157430736270024995915225364201829697151008072477454263902321634277957256696442448609032742745864938610848753023411609305202620077921662789767426489127855844276174017848557080712591729632246060007464000421956044734183060528851380869339752588691318314232361594547561065985990881620394992325032183551552358919617856777713220231552633838441605785862456998037353707426188209183477353908692930253501894163256251478007735129987075477511749961831177566231969266962172615738674351601035118049884010901601540778226289552864841033966464379237081638747376489651981774418666918111026420499309791902505489622617945444004690304820524820546177653395905796266595613169903196105967790098721234823547929422215428705572418061030142891678402882318869650758010497398678071801455984705309626468611521908201228492773352409127149610937753661533998276641669741179253659348712508652235267986420909844677522508375761930680150006007026175423617367501963017457698099082741696314188909777991986259384689835178569198957371178036847701728538987901234897229205996779128870468198878334928531047235292200371658880819841130943198082803915244119089812650604139222401591323330845884662798387314214086648923438610152317073114460292352241357208109259440490094607852826723065013791898789361531920086032248507673785027156475321950219920173769657565822639619378985325850885434943647902647402159787447093870239749252259568707803561496476295955222485755391125524054248215606609646342002430434769293178856012304828729098238152575718271409806996079082319813464692716878114577438626641356762178073191130255218207043783713302173044478595937072540343710130982060956562105392254027679529069011949416792404566269373467361045792057864243805953234194951390331922628282063685677587410172141842732735836843864150436011159446387023916410232736916229569750445862016082899686488682529538563518365017273830365834956095202593157808171304799372931589702659656573052765293990303373664816225675370178488934950309662233690334065221137592385126280220962156293730458346794651027269582833104387413521454145496513395543339356693262105314961841804076383534705822765971085282388227751950411415592278355537212278279893102850494620608511537103587788564743706720576238004854459470650546944438152110307634195809340860448069017827943873748899080238465905189157739351135687925591076665411710688876217370578262766466368613425718823187391151577522778267995790386079036921899419759275921778589410375402115622108770692384165748593855611327455617314099365121664390865314165420807209839931875038805872454134285299113562019005621107498960689142976301073778131294981927082018089871272195135108867245603341076591773332158867433517781280136818427223695162803616354992000954149415670887293344538776744063949123052403977813005723182416789210283462251704388511370663201083383438194759267641487685084701670452765943568084478979153403278674199321045532258422328548723505923347666240917978496673103741899963500072004038460039120243160693475557499851098252180953533703175944532078109171763816542259755143139022812275063110746014225843772575776478927719674068005044753570398655261930510533275486900470304803108681060996385282326511586723620576752090217415382031516413114837258909600088258379984419607963884057406387292116267531475558456025014816787537225339900822839413686106367104716971904294908394677286830162403728911017331235771901874263987918802368925525376735414953676628095254484022360388181311191182755115425675911788232662524436905078356900133716624805799109408409795214236194614666693581109244808259236806140624267184283335182305861971753662240477574922820745129136653388331716084237350637225366166911367655898094541810921545621093625763204755001004880157662953505671023010628857515092889072401143584179985813706013012357228197795240371287860705053118717739041059339224899913882281094050482707755569033835546669627806576926529754313328374835508609718562502760895277356598256339087087127054862117925141008993812020294459010831533193507453442997135055524100671003777647916622841822870050241066852329779718269126886989904708432198974866381860364246272370144089343113849186909899679763955408949655264298654416508869512690548998834439781869476663503867387007044914402885274735462093295297608485382679278611387098257649641027681397874141602194232942220548356887540883095792319655744212168073720539336406121070546115450455960831466934199989502594217284307353470193458124968494756996865937030619174763921284108407333045606087768605638217656298617357743261410732508628389344987814320809957248816490845867739033425944916426921982850953440080360386099962456714133856560128983980984477450784053918626711341509695063198047849659121556671356967552814543180326905968152765162816725817635631484522590230076600956540941053358604149164000205344043913273790770685273614932553012383869614956836766742094810817434370075049981259811040880559390248527730561883657229306824488830462989522588471880282710592012936237883938583884453983970337792081810058351437828571210540669611079117082225626924550770300400649537701721616904920860347621451352427159981156570996836675316430043865624919120009139618959455265618529568495318491117376129062086314838253262899847264489945513991658265428134320418862096943627645920719720745857956729339885419610359391894257036749750738912204738426559488841685300286846352651418896428386883200939030032077998104415938549561869498142549950967460161469092959234098468979721167013766995013611912221468487168355578015228598422610915541164945762082935483918119822462877727158967218223204989030981393491143459637252046249668233543249421123801146136309087634281621903619565888835533344190958302308431651253295956955202467884953047489733826096060960773447281462487349869275960639186739247036522510342581980063109606565650384269837252181965299563764762230786103792402307986041406264008221244050798480923897127947565982947818880554623723826375150170189323834850100098284323639161878995044985476386165921101729809398285439630257297482476165181884979451970667511638766681747704302579532166453513674602893652127361097424575869238686698589001350462215480413859945871146087843951811114378204324607213348087072331286995403591209591922466194917269365118722492897771998708175974364097482830317645781309987086084363896502051511482304190429241362562597462518411242543572502086714934008402475245911892192484538270629877019046860377188440145864488021140953875069033709137563770868606779979988953742537005265228329099732434943946416124085171694865520411423066631685443682905676021687089792752823046053309481582245580227875388371785722590186486577465772467420398072781318583167192210886772733154670438383124872292344575307506369548137734711776020432052464961439550239107542479243681756759254577495682720348131132345122841063512932795342659819672615882706548094021273894741384717423577412425432131787998745119787939676029901713295143071699487509221495714476107175738329162503943225519412348009422668987801945737885978519828628367217966740329634032360478043947502706299134311474843128863447315634376667655297325937542871396059268777694850426120697966564123569008799994644853731990809912941214565053585891311726617177627249449022805147665112372401284951228665294102907738815437185806832036477351247723949898206293537614987376518265375551643757501257066768129525111975342869600862450104844017227039419130159149587095460085753460085153535669536255170674973404637051123465228496454581635936596243691304273899498981157215126014288785141632855482111746816813499428569363538764065786972912445188655823635844018168786780536171965066498514950280785885048935597792088053646867622554383593560705950562645723287600613906489417532123700573837440058612859364440006463853301408970110244910103578441860420718453827029167033996860584724443495076102271320543656125295098378157635695463325985068346752463671979888108075065106728389439656073585509977126880842787531010522324984554014107927493792821702125621871399369273476627716192818050446182435457052313199955156622132033650595862778712406249722077438799202131833161582048753580929570149116585703939117608871301875341838303466424219324033197349326906354896643814957358090384754328622288694855618281412002707551880814117590485867985076486174801703093317801593028143825226761311994997332186753346009006134728017746347598785221791668291120751663245503446358629555298139380732372791275817704804025199650451406025552117123313734878799942648357457099146951778059328594250384050069074326290030897531028835798564241708807426088420794003218803928813994171764409090115589070583547868605525600043743903090092876321960445549263546735864446254593478672659201181643536340073626164044555779936535371365425823758918131767012454058372330665617874912771199003219184810769631299747982577637784107340344219701988285735627579468509211442244970237546764230793068105155132089656616868759921063382579575176929919490329051993349206190623079894945549308430475947388304340770861854621863023095476630666980717308657291012166760777784344661683720444600984277510098895510568258652510379411390151122942113198653296536567073146639054621709541677037447643761640557419926521793251147812479425275749334752467330337731827583022408292827874178582551488339706839307350490794768804123543763057406708328290865381873550598795041765767747404483108880210953567025999691131720335155335996454272877999179943674118598109980400881548766431785411443909107318440934837807858507462559187393979579716383628776940222352662942921288994499884565681383257056139553476887626516724576091021372497431889294413264082063335426561635618385012568209327215777524862293290262183394427380448663232667950515387176579042479171408951940429280107456136955923929058847374628467558472883333907785569137482037370894608787829960517018129765443029220274983755027857483998424377133757222192165202688644819878743652643907660860227833886980388254653801295813605856674562945011986278692851235743339642064176471551785348335181505082581427229439396084153448906025378326517364379011499104604126519524154969959006950416217731934261252010485317725367330592888296480621952035486231021905263613827960633670369787021788512083840117302586907348350358838940336004914124371806103947423268887462293621007718965634321182988956604689630372341758568098899476072314914086561530091821511938294870406814189732985920449178674133795576130349403741031299291253193351602457181216931231799546346174939272979025884497412912775546888421570264765466341687647368156619648917137612084697469036112553999959352688320157645803775823834117351602422305437952854641983466979557561961374426327726856331661852309657644789703939789507312312689289428188478719711420615935440637938938343231820718511222009812524148595385943558946245247099665152744088492248154480526453009921834827449012761161911057137401172534244880906834123817755191411777037130394994623497472359528500945699767150175604237591055516941014071623754431212774217448197438304954315016676371975748920545961039633616366976357926909310995275988907478343582097810477204659603908301746569509537710556068083969295983153044858517681877182915923686723261610271940099954425382589070558704719851844732334937543564323724656238358984919882086408374146920059769607704232936647005985285269735139160950852119667516968272788877127993804052400798312384011420223446798924202573925863153616877084252888332277526653185899456231204179217748068689051590285417266484303242848569989587899248219806544341531367641755303420477239196605812562267926258315991765606887465442196497939750875659473703755820469438298441922862600546300478282052321002882730570087550522176886276463421734328470220517412483195967148608820235740768488854727067930934818227804148586763511495836118968675769235706643198032604464103942174739173950050089574436877921321045662571745060718734134955812064075102825238502615858032038127283851252945872342444743440210906976885801546417015892674601191447861264307087741524034879426148461566013109853915416616081378088528774919794835828127251648885024469774228119717197828296974987390555475889057157885616298782144655782511965271802958239439331442132966130384919568127591653128251955831963830447203325758959742376444555335628533748605977905523804124568347968122393917780287550186539792557211777558717888371785495370725118789200640958081619549404804374616889798493021090111567180694752118388493598201840928044719647214463571690936474445273576784173999132041515987616514753316972351087501543085098797805917827217748070599273051011886785676676704945527458818659664381679784715277039114862395182012352987866001703351050602807357582977486026499553661875956895032520034595753941062049487543622413262648491377879872241667107923642378090423120625012127701535660766544977517522936193617210846627948294222348779106333404553620308901712235823430731695025846181103163714073962546022108829916379531113023542238868568976499637809603278474142599013795935669621417649862747193156688048772737985154141305225534574067018795048042707285685067881209063470363711149307068765132251563431308099550697740664904173145550983622972084037226698683569874540465836233836987080189922927312928271089928610167486724202021691679640505415398278792373108723674837318766560392359384306458740331766405106186264550508014675489893420185773588457561946767390067289117412480151852681002125338077243829162026768000285976520172827158052879928715261998570007876525074695780671726594914094051361637523044309324153800690845576111796829326817663110500365164588995025469686428014213360040608664483909583333123558306584836969451763322376856640119138704272740997381010471012378005132128151714769779051058797761135683494489434775922225604380945611920024746990510206021516391807476897001393171599443453190180439101614676326303921366557098319867383238417897182598397000223618892727575991252252832711785302782947279136901169964405548255040591478361927858027594729199947968990109999532230350060818824457960400518676995202151062563195411553769704786612808087402643977885430887289576572863476849609164399543366114102012389622025896575087875438337378254303478091055928728403896792105251512307771696652576297913716191876505669744269690574765400208133094227746894591593882604975514502454308688029594040840541757650497588737534241895073846536293755368104805715700890561803868916062732902210965932840690330856099309982952372242044265889992167113735835730116951925260896429760927031802950165014022880012124738891052755891383603277977654737785018810002981434636457436313513637238919943294386330447315986681180536013628874806225284346545656317059479052042169342656507160813107028281550404696956598927293725006904650829433236832178951775191495086387898485807511142372444448945212041629898470415270558482416789475522633517748732570143587796544432720085315236638799264138909872592221612668319489671849753413795396779784417468158792055992597556202668832774382939020315221179179048500905034951781864644390590421034813135791448712638520596809582663095307530173977804887319790093406903148071949622691719357199570741714523219989728765929240421654667507680912219012797795564756594939923273733076956478689157052422887756798292505817597635108477760464686691945624932354413701822948064252948597912819777083808725177001318460106191674073550841171872094067349836950497447476039365023735302501525029225906985326389049235293004858278272125980734264409337832587423941832223308013006430829573882399749176675090268248361409544016652958790457141443001816593518874324776918758502540098143864893721143190852687001234372001858922717481048490781362358514548329876944984803292042150059802388526631988375672060279294842656726095539565229736530507134155648468858228987461798046945103513464916424255563089933785556081495406611007855527912924480221720095878111122128870914277577564439472355094406427660945920963831976439376183070911945869962500835503965037646641721320922776839931934325901557440014390264627279230116289383143431368149473201496069062737137439367501596847635607489734774775310544364986672821248251568279515353832590421182247568328607496543735567657688463261655482673085623947519853081298338927532433160283216071891543429387505634973092476745691058562445110740553056718688975766529810280589669885739252813299824804521686462078151124509856529644297281289213025891461366709225549362095243739820915057065139872174916717524879473578900394236514982984410322766349183242037589092618776397025336174459774864114000412479443392927949939383232637577721973878394277029860005757615857890884431202088964296517732591210159713184713158815765197272056420880460425950683386177990313356078497880467243899185752547953626453975943394655010760486723356151563555647373372590653965254983176747934431661379545012044747912386098340726799413864722936381226041238871024384963324760259118752422183783830632431096099043232650213105249173901838465260752703668211783518747841176042260732052558636834770784879503558793186517860450902008116388956377751284689063518540961705740615567533588563308185681543328308797295937187014173252205134032240466247160109273736171169265937387964405225735763502060560099870986149545827513028647579947992441771223344592736205884454690595745856141788839376501478627047774521830377112244645932049358506841803132051227670493451852521159778141017763551766998684122506089100552859865006338706182349748496294500404167249440544951193823494758006897062145373446986377544676732904045080583986022464000547601159119471657995580027892191693255580622461581325725527893930784370137482074473452575697775366290545386368449798346666305843441958833764701594049790505750971970597754757720892525675474776732957453815335263975450587185727737418925118862953875591568967993249859652035885491587437363385174914599779480223923186889148533780799557823900818975291172658398980556196811093401534929159939027603029370202353776211736867049012641310236281132243507399253332864139828238637617129531152943454611629662420476277981436900742170736335090184140003369186876984012270522538537009507411455662215166516655253810247901373314534290785746070394184080088673821852710189227619374571959409006899811914075324557814756087317078976468188296364041253467852621704650604318434176634931766561128799536288807118855761671854867217401649114259228706007919358576730852850915612710666312042668379519818508626504439169252204515214497926180477738277766300051219957949725307746903425147567982644500678316508340106283036603674364746722810479857951071049962081630473995403183196475961909051351098357926074397498091329054219570987354131990606864216881093111337245084694591555936758786921657278411343843309890321915684356064178142340224471718283354355627758694643901377176363996779443715263547130675246112238696660252831016787141276629141711242775571953678707351830999494526976419911648773380121585367511094269862419503005242161256477154492352356417375947039350182313349955887357069074227007646603067413344553638065513813267386075198191957873347008932951148433713371429200542097653508074967602174423786040538797466975899811339402680004072527574250539465473202097320647554733856574787395779250504904067404973999702910303602255897606551929542908479259430083325179188941352316261912390844639453713706292981626937576440627155168288044976860745415963170357441506416656046321912037157258761558970665667288716439398667780341734408054765760966472196372034575287598385196008604302863682696053041538705782336040824738250331850218593499103681411407708093055599551497000189061487258619888029587501225052533407579256355859951723637892102468681874801506813470215326653121810353856944607269839954138737960070795055469787734714100667081846516709767968616011836193543306847973607109501935206851032658964754856506123485127616616545353548922715963624487992942559808311448008411707443775185056863425743668565250315560233538788887680294977775507368298554826638987926836219814498810292780826087229188817517298385497662333900249322186763754872593641326875124112150242716378108369607437294683186645976026422118195722785370175877303477397323557057771501031709163471700673664387179327661073034410987198627681639467713738290838287979124431101616782288764102171756754937689604403349337005040377359300760634259609239187548331908205625895181441291191584129927921967807419719818440895931424001273351854089598982559196745964246838779899459164782253838730173687361497636911308905822410844037634347839067692867175177625052331705261679944263182262521781496175425817829008936735083132788963901639649483822593465916857811764085273836927739662577185923696170926402116710201791081795398924877800318131462854875558843185786205229691111447333727775326418540721150180064181530067694705650760136484573910138517992377210899997893557293796654506617320904756175718066532636244918898337459903947258459949129743604740954151175558515003028544584873346023290857220944743834219435705430560375337888252452101381937118926846431045656931577168603766572271893936665653551752071519979091977682407551404031687950675751369417230480480421567099118919292341006729331463180300753681374336668642565605863610682295419616377740272631106173672280010191791629551142506973901893155951128432664788251073160163265814903261261941185389240093403195263726448623353311858036706362740597214646279267133054458607875249294105259557143241872614317316147592296008810192726304279128730135843404125465598847748563891357813964386921178735346091154511743078437688725303091126922492989238140565252608274766802758777769855934445680700073160026362391304193217068547805191163057953797543923741704091942624554811506707881014211413395488022996905288658025225254876176393363900246293203360508398951478454380341937111420886796918007135165188833886187230201688160615817244070297456469874238390244920602263762838889361475775145584133770803329418535536378323045673026365290281886302785179699220804445763390450946754070009522829442995415818547471008180690293657073265315532073497560193807783109314732351697070847496313831294013172239417820171613040522245335684544309973368588830671388229528511958958452444928695537262269983901968581358722734089282289044541328507454098857274453046193042702094974834130408278310855127193984816982185960933360416721795279857428313509265176654335167758708709584844959282298954690313272634881990140760319131177355277096458389737533473016755627909293259880785064809908660796057557592549215431388164286808067388118036493680796097398377510576123759025065311605267984351511532104395648879577089769215231147899613309544277839710321288402552416412215128055965236528813677955998336977617061389710152475649635395653123404322645961885641201922403524796046902736744395598708231242703057702963900127319180237701309520785946492504400401683935772768243931045047714996001420132451011399436229559313959755369309975820204955085701753554685699538494784206598617192753203085513644804839515744712306419505039478089198680172370548383332545779462072189571440561404310212033032279767855640244835254078159882320256854117852384575387104097758070302608156729043164545066923280569952469648128210041783183123937921477545694906168880477625068489245278653490818760618599781875377494695230835079101603415505659038048830361896506913485762350647237900183464886019791573692822313862404800593592055048967513978506197802579252205670363746774877170584872729951342706305243374528889268221670433011756427202427752289946575056783450936449393103503725418931766013091898009193503652086134573052957576413495945045263523422751734931782636236184679736595581081844507963259087586681838715357387552547934264323937337223797235250986773356331412360356307088627494120758697484663988431021683008884381933325030098204762270613212954184084584988143228705882037826592096422899325456199945373057988375683792103974102722256893878407704248142385245024584136522519848515346254345761125798314488415587999374712813080223459995781985294479936639306154407381874853280205625023778199075224003409443901543721104905457611576688805230821102036279740855033067115273173866919103601195852587824039104749677354462551637541020344806766171504186592427017078727018129001200257098963638210785278057365979063691796696591320279797657504875844174320665059660761279853674290168416416889393791916217056872816179968124216382314404105337511554894145841751907467830057185196809400782374985515335580810215882427438733634097332395317374118561136533757288252352432287087869347521382425850081621838461344946657717791335656392582504721274902121811500901345292574494765785149391588518249962424873104529541410141794497969572260456961355565261736204285781914052772678409913512553036051112980655546343073097335275505634295788781647909539410424317965930872049903229461406326610092827410235159347480127949991700804175207643429702520267908973556957153924628274381436083193189159494329563189310980045062646406497282700896501792401948052385987379551012352352028800830386392049548817190310317649832815067760546980714445227641556944538694670388087553508315862745173202590892058683508427505891281712890138043414799701224273781974784145364436531612404556266113591192701641079023688071727368264543579235827928396884756023187720461686588547364281043423501508836708964294747149156654476470400299703759435641613478616893854677305672682794341767597891731151457091170675458684043402227005749879688213986747331459047046362982996921056783800281182572361288564301026687524590187257233382893851607905991174262546541663561998822956390047163090940984034437691496226850777639171873127315787202351170794882362851420525065729022583552860434194487854311285059269640529368411908580065702825345009179173570541492429236801703042210265064302392896743827341440884917629810842435860750280527517977902481245419177182364476317901025030000181871581425109994645060733553434646886736284742217391166287470487100392923166861878071520304194242112317012703598987290694207772783820790106229726807986846447829972844977429926569414043121541061261445882375504005097361229374638049806219819429775723114616296330302676149985902754221418021840967049147475077485605288659451329737964096166076894573318378427366530462939666837309137550153506614277334946323951233116542095775185359693969108288054685311210665825174262836467560786361317478363303365750260976169611951743323234366757170831459722264811932397309645217015429212694315737234148308675860886003956945591532469779902397599299416405782593853429581309077535579412850390830449774828566500335752780851914682370507577694648463961908520277599395415562602373081542603786704100389009814063926385530629313908080530483405708068193756764296684269178847203961283122253383036827179194160030366797290201500597657476304777910391044787743574602931811209691896026520642536395230726508058162248807414942814279936171234916419298584427990059288311870755079939903010024733078678506307859265643612291330945921965693592164252399092229895329631724584943657673401740546875021863303341535453822380216523636455109153114789659091001655425952377908368514065626044337934629696414321971222452597736005290636595895347094820563475234676124882060065417193672084032941626424263166449642954775018293526293903103623003465444227731596333404753522263324291675647455134316191423625257765116572899917583787058346620461940259695291379964311881838595394083397726465465608729996033681127032822086426498071821605678849716670958625204833454741826731991115786971688251380468351082387089179833666839927381609635150963881186241807690220091711834490247475846311701035263821238635080930296812106793910937426011894219586001842524774329973822539322508121161009612009606668773106178035304288809781695422825355052161641078286712537408933680957925101824601510271741446089382447704849885497014797868390603923868512287140108390906228343101051059120793024903316990267154252468981834977501855655949297882172631714494588553560912923091655764014433309511344205233001677304930520160900042725483750030631692220901566383187732181987778512983166211078781705143040258604578851720473108302445450053441225445157733139876260797895138060754027442717104837724762534699822265814767995398466553008576517102930544138421799034606695358121366311710109851726219666157768530603420856769958086572236092822739688464767735183681916994516441347742088327428024166463717933232402056843469879321172384781170450906280281623408839473207919662380827010816893395661701859334617113652936896279903509643534211048026872033365916075605082568733802298437051559747225106335648647161910370306084366614980954847004387670508347221924712293393363755332044268663309359038637795963836066720288914945946487475914619797965624875729225811843267432143684626712770199518822918483088344738988920438802695458221589956930577089563122356203222825801682985990018015456411602039546482474022725763803317900010292336444785885549747773978848015767214354951753147716987806710781592547221655876518128389490179574478740698806865581746669445003478694834349455280351995359577880182385649673789134826055326329828009828837143916370539676425626061032641185611465772593802525271989439634082639055862725736610433808476539651872964367111186443550586822363329109410513529638350137791072639156515379716499681862373068683932524637753103985378079027225780842810782227131740366664781426264837417099644470414308557269037662289367146131790160578876175326030642458507388105470539997670945868111103945985492978092069045703081715473712284126347546065181731363049990427243169672102985961919215282372723020951471439948335105335641156577946712110693724093092712773503927450552349782416153184847027718047532877369101666107781010524339010775947083704636839413917865781659133427916516058172285683753832171249406205109372031759789263017244762162050791086949729939317297473926282677675783571845505974764659803507126202403990324709354825749510151016906267444894383116126192217006781674440444376285006820451695797588567920820209287475015063633706160221831198178773845392557062025751762028822113268763920284625624868864786946201206447713734258155326365264861664107186832270651072337996075436638748267770637811082994531005308975736848502914217856995115285732611015464193353311940445765830950462583198442063060144738417118993423580945473342037636630077289468442718685260044405559595671106764260540552598647515278916430130877914811692822115104514802399473579613952986911239073489706980463966847941293115207759723341183288157621490839231556485144690165412195164909017318073909696004098669485123118859873971323284868536488899407295899393263059143074165590703058545434795097182163161740093284196731409618568536755072207678612701884284773525187862535386192044994428031800265621346889223754683400537104973716390960175475299152298827157376115536608589132678675873531736904449861218147967678144321988717314114543913800118275081867128341115674508008269924231861340903272311295574445651420622718063916448618052003584900122680904022852478721930211672191072672982889261869412981342738727087657393851428141187686113148160072899111867570407172678908488425958144761083362339504664120673718174997668997969171245111338690159182320493500489971352475391073246989177920792614699136799728770784081747315516247308386104168531163131033776274992765721987910925367515340127894724305405413188558090899810082240993616198541070119474376062537770590811059675886512942355052773466806225478172902999577743406386619971604191791484767043795425683915052641573160749938862594138526329708826198783293679180627759127227883396038268649008830542594268888007381230638851071151130241935900299478868745105708170511653627768263514426616199982315358301782952339434936215674331526283453569858149310806904161907387663841077756443450700098765059289594769248507875556147963026498106033774861372999506134630350730348706184739000310031362409599077901795466028333942008399472373330476217662821692434704917716613893353270108021996305171810906280186398972592980053539243320940866363725953997885462966384802623293255901907905849410556123900464761087235183380826726269410598879689378976908237873828361829679146497194709701423247505119100596426150318022605504761445043935397102267975140306518195563241760514564814523961230262175666213131848251949128686131375637996219826427680412345964125463339790761428108068189688485364032351207953062386832368704085320305589233245257106033890323387611583914780320322833771844660859845204246537099931016724310065884222848849590103081606185089915879066208103069693954929947387707071478197204900063420318545374834631113411283598370237573163298229733540890147975301231031510248198295925941391991482301065485332567697656986562346046188392896004685542164843492553794638573484238079842150733744566392032775610103866456778945487693279319956768481541071400473855686823101194891826189187337344224057061059022617649453430775194967326398994831317214160415628821741602976540817202090259841533410789304268033167336972397093125422230788163941878531226113292704547375952589813220309478202100259611509218972540704766604745279070259454622635741234811166675568417825664160350755438684665402957448687224953514169718315807838885079858294091872797621479458426556737462683974689499178365493145752761856141252961598791260710648606487824302811945763010651407684441332991003646852402200748419762200166639587327165867250304392509455880393171055460830129563611117804878402069747612346361538272799613124475392126707957451840907657547827314147969729014088902553392118886377062260560208788727739002332476779248543384272623541805902022525482832506388707220673198106294886160777431941639384773254963898365127872185375219139832631566920990508633822228194926111679074349066353451444480844356938485970429674398578916312493296379798508471819551198764467112586975424635827208899423853452461349729848022709850260637983294390907425568420475488390269817702612325586585139732167271684638361555021461248447512086661683309612414261520887295456487396331377058981203465790270448396571888870784771388320533079530686847472637950897824940604348311642891044310446006183319983837376722630190254598057751336963635857504924016722930349839418163649493766403926415148254140070160587131928607680949174564010161505494222104360024275788142661613900405860790264750273316246102259311820483995391832832742265554771792802592984400199459258996788220543489092753662217498206218093182839255440758156789734537377224662423008396049756552634890220355083780686412128325989346863796025289602692348191875919883670212243109875699348567059200642376709059120510089638858112523187185230565986095098158473307003522363980965967791226991720477674510642566326361917293851184116921744754393310181798496550064282765450916022352038409973630015731080815378740259372411736571742029036770569668779560850120353700227949488051857341009066087990435212084577434682649802235784410389961717589424954692894546458619431502209945412213439771104867775345876148030556181347854741780221984425621910953837377641011330063785253081853993129705640355869942084042014597606995044426865519505417135941646901475444686299707412374494231676178085584831994590412739947349822449227950174170822709723962917409272375466658180102897294554181774121437556864119966609906179702881218964979852506837534652440363331067431705278932770413201389440147275144325122852799459813741047235889717918400869676012943273238043919258932274536944199717507853384606368022132411414819994798649451990739854733721955625329550618390727260450730143240508804286025107618610736684301291298045151532759821810250581501797985897709459896126340238971948766584433301499581409091388856382943629679618271057216237639728052246749551396245959665331405679238843852602011227299698670506407599398533195249321041531189966268662375832372551501552268269659874404785687995131919544360559091497531582220943824331729663819272465561952559858124853082300717317759081035071739442690622592351331403269460391211636134171693917130467810147141818455320263253610011036855767927821708922519070111555896495959239023890690125801011684349289749156186157438433986256564023072676957106235945655685883169114896696259787287314080197093913903062697415714459347517604403586675813564321555060970722247703192835179203820611176401878162868787146614607370467584380491863480808423107997046574642165051674780553512340404693833874524140095547940791630407864834333057796535556777194365469429743656382392010630596689567065598597141350624206183359499094671951457474356184280272582054906154406294614600490424643956092973008415887202679839190838953520176712228227903742491596307311353371629902045137866452747372614831592052112454549818349853064752740707734424218848440253295583500671249201831061911812006290219755141371367495426275762881044660002690194729986850598749014752883079134831015289285574909318078708764536852209753849938261591098974310639566323501675297899591513026297449864438330629468099861260215157670971535476880053659561625328771699026772481429959497106319164869839553608990491385933474244620704463843368163535907951950098745608259485057646921601005328670643392487832409763183292081207449110051159575733115556378274630865116396875754757154091660124506771338950551928584122562928024257546817598256925520792128140960151988345954072338519825143389263922412889332202474333997266395060026002612037669832852108891206503996022535965952546083536278640849484402992492605187714742548050833404336292707793174938799907000070642866470550669464552668847421704927917671357758916602385004704667676573321865136357248950301998806127445856979023379691559033946806493254026634998433975807156957238981083556085645866966255570813771380758717578622933968189990360392354665002116651045389729071546448907329736016231211998971506595518837031726877287345900827660242415215665430367481246197620920493717305950340827067823756979015886721255011795141314252740677590727805769154267383144372347385654389683151127473877122276492118639555227808206424976857039160729051585810391316748059985856416947576404480433891538123647630878871973839519223378607497313392777898281331006262531416830747998111910314427344065982721658730470170642645440784973783982439564154512199520215059346880117139232126375558433105110160424092862860864896398606744899314320847448881628723552463146531667392757496870278536534082349186772710626011654837546653907600958912060299500228316697545342172571749282394298345013317766512673200438020888713160392484455057166508135472424331954049225393662484701966494252489044691217693475027338792888187153234087733975047100196762014972343640615042515183115436000092952842274980534899231952451572574570737136444619459490818533607784741158728288679382676204006854110399417863491733972313200223791317219976559596176650544349043095539195792966703716600582476551724874778607070079411284900509660377146576071349158956411712092681592566786716863067874065037455916969330238992748738417849914638741195522921204477523571117979874465057693713772531962747614322558467150830550942901844645400680703892227907707105725841387197581365394277852047449525641779937130169560907148225197007560859610111361119717465011294796615212624385624780015764543828244283396302829086142210195944996899641247178462668226311136938579462131512729755335431111675558413304440584405683262884901358515159933883453577076306012600814246495869645525692656372266880235621527506444123816804591407327667825978841972256118725345732519260000850383860181836421572213001948570568802503294908170216335408398720003609437951270932311782464754692654276976924609109948858677546837944227159567233752978911722900986318831471575799891941468741275882986249833117871394271728313375535176947117809412169646159659921047945209804749363728104853073216539327835454799415052929107360966412645792008608725245324264008741711906193608629566726884948229483730026281928545298117031245162037175235851302970183897693153766722349141520305191005605805229543086034317134127497833813804592922852593754290713902530732907835967591386999054950718180576789141318592197412794537010573882348669786922715559199226548664737663320013710334686495193442400303651693354528463407555994592885041295168060055987005761206351521247951146884042037366139301391011168942145088432833333065523985501349664794025043673045151919733498995979003965686309002192071841399772768987795171375674663117029132464774610963669128449388028037659528536898523754182242215796882187978650470996915863196354556408330014153394624137925654721312049082554946136777413868406441376036247743159248540608204567364648159584639463371990899152072416200163355894221545165449612757917986364730189721124212498854874524056915339594737405231296443751357429842011128387293891393836811946880089935724306383831014427305774999313688163107700044647246163595028457571854096314930455211414273974435675880090921002465066465062038238452520020038740470923275413474631088695492805908748535111195679404009429108170669516051750783271159223915310963662521884391932893612783595157001473369012206141931626123403907108551409675297561796795208026662808679392551423809008075312933300172848694885612769270311758866265677704594280315901205010066137380569068807802970813731898555995722281026748690077181828219941183719862489001686879453373859464909216682054748996449663107161098548292566487649097452783419724111338845250197219097904850938158644041209015851159934301960495108023718495532546914201950493488088640187719370520867694395998190814014288541308379485398613757680667305407894433178305625907580782849155238701065687923103966115533353372400866824908029703119798103187351866460501896259450196091302338554534912913721275854500092340660447771607887341083435379414843184996028918984440121489748200826893728679193410552617264259950767657785251617312525762496709060964709433749671616093202350430419687649388542085367319674556677171763524781304349785663693834163234790379254950360826959947746085185684481316099962861852937807185743993669186844496428431548319248683933719801875518340391360610532503378532716110801800716803755610546132298960665341056940276834840956998264031251350132412170437270410083095164281831084324936768024454669592621988494925238457186878073789974521915583596944591263993185613957429494514861677716019953768640191198298340421963050210407850994671004744437189022590155319703054669132121543480255751068739691030470755373687591832376677802063652924230508734220918007976040640700982498876297867947638897014661993429348861290041814318723136332120612019735036387434310544764415053795291226029925315024503001965265129205951433922599487819891258056019784417502429632086829673143928213159487942365591249059847557924506802890659524242270590013410730223344000207737405133223979093101318403872021111529740969410820953619479469068513717777778013717406984840540129077849106198171776839742738384782240020121701167963074025449287496920005355785307875040814631184955856717426244939504057948660746478638953614927639178358808152122815021617268049921985437252648030134481788270560224251336621172060536829161982997008229682701900549316543108428304676367713574426559020968065533500508596770538192591072813400381942572389629593213038747766252565507344734678800044505019906769405151280792124198983518569987307569636087634750164769979587602952918396086795825051005852906421212283124229412317861467266920753411423159592499754829471586550190059132816725896005567311701024598577537652590226710818013096329328414252347214998627313121091793832459533763336068293986200009211756514440604454887028950853881220817835824017797048981579555133316835944911282848655773394823223867178017067593386468757285387206167584026301423814425479935083135302232449069192685240172367746167808193068943758233162457960925868591027533107958266169753189778491521991402362069425679082797859168824269796858073559431523979631594034466233023518015198693444979209627880846162320405935938006243028185912355446570472050384254908813577727815724121464079501425442064429313398781319433720574853817577904945611206394077353575436767365864443738279691352102337603276839754487802427508308959179386717782343915289714890657264881590766845699699630753818042147623685990697314512063280265181014561120939124616968070207256836793281372388591479449683574586945231375295157938424879201380536894705526127003887585976556291077205570328105801442586482090633657830961483551504855699926154418659783707760235605544348562683873053642354377104025447940099501254693009533862671510829409550484863918435029068926750334884109872158039609479011548268728311349750776248222076810518200421755078702899654165342102375547445109791815125116290723943793426791071828122802293305450416147436141429128032765157315315133245701064070660817290838722690558126169673601443990054835268520091917571525404053750547750667407360138217478457199586143976484992504147826848051332944374586290084167977455370250612654904974284007559297113678179772881469233995411770979222049940036066392749050566805193977404822977086918473502006968222996548396138822283163559037728863274741362232915150919244934882167623449131634589026283692648206367913054874275605955729884323606088069606787877690065863836401420705507070683205069619962935943433025646166149780832119665582003601163535599635602896289236945104539966593812344208811579518079945218478739675706599932016315395578797674755814596366946296810997369830459870638133984564197508018737886355869244365303407635262894654605201025619786198725644114957116541706854556244400638441517524859167217617469186488688682122000399406115829015477834040229752860082174646113479738804830984096098840670624232225336298143369595094880818238180768830156575802605041015473717380984971311294306357269064505934540140073906446338063971869338721787826654467622048085857053190158979711796241581298593898271617724058352606293625455776234438729714702125883135135272088040905933939065853502304301465196046429032997125243269177509733846469932434137590437498722035172029316797377806604668585316640452887615415003762067835521621297091999833203410834273254028212552420492956996259801201154096572445835305595929443479636980157409385227350442226856996598351981369620354330064030495249380227363521724345443766192090919522986569275056432653998969452921275451413736272484035166571406553586606740346832279022416685511288158453466522367655006549718636462300287550330196442205918945341114555258460560920749273566985527953390634964290872978210501558217421578857498869173754556416014667973054124628765965618698829563591684913020387223946554457870044233072782870359361336349183564930284366010821251648842560974174370695024878778502200632337550463592372890170896382366712654213481530188234323939628393052462776441737947433814116921594270662705627467935582145042934870351180939805033468162902838035740595434296494588384520943613351714076136886538806002879924623051418585718342664956090534927610816731762650953345166593967330535580191055159143000227276716264586623594643443715814905113538125645958753587964387476887120252541029892608115995244467049258417022222791247639342073919829108254467989338408386504758920671623701959858038287846399358809086374318967569170906707258627896915674827191908859236205347987728563506413262625339805910699963087545883757588045149097855718200082909972307053213756633606805878597886732417978993471907542570295124526876847491409538706989357893823624621349316865932480966346921066743085717668202664146975256908850356722331338958659620310472556010465839906126859447018200431449198920697040357890238890453377993241161323059377604699869883296782832122819810994216257219889979843414984987074690452582141211784245514006114613264824494636347019886094145430627846046588066140270307694455240468642419190121111429619694034006194914910456155328360219388794894815988174282712293639457717464808127621922055146781507112906441746826851699348312745483922022220202723977601860492595376087548671775547526523004271064287682754680146046669928294460298671737786618129352047135667099239929487547243076623477741454228775365716580790056940592113209406377432000526018395370180604580348428780225111578172501244243955862298663425533932295427200238783968473381237937735606453976533255268588674819508482632886369940965724704330563316607518615973092078225250643646845658672316264798097626083500632608941346893225918252967688843700205171684890608372728032497166683811764236594460265043482708534893646650234963084728604752062757443980982425969807326516254483352852806487142085164294976175258957100916168488924556822552457042479561993382365716060106736172395380133813858544852589914163938808810275867575139661405591622304163579957014812341222352898785689046741572282794729290880026284421523257716204861472396489912735177441412174616596096305928212002053570719847008407382496530151350495955935264123056707930461109838350549783715718245053785601649916158963783944590379767980461665567501645041562049726303164764331203036500617177001054555354597212335956450131491172011821607149757363032305400429074284627924530357169114976016999124066692165475478880551803664587410998491296678323135520006725991667851842174384181635609689676196872534951732115070231428218216668694545694154652574941392634263393360520059680312173545215936965051106729119726671842835679920646318064839112091282944152856400296295905439447604095055127071625537982709339749239591910903268436174343174512401261012444126786642586108117632131833981966294772324662251388535131929349568660241814146159616865085385301618427134254098299724610279803993154700580085233781692503105318464151582369105067617022228054069626760470168433440792797782332829373321509359256769397089258978241258079685338932722271970488164123444408849486938423231412400744044324827129898639369846036780749335507094697217032404395507961639761149097143060939672293119667273597377499439323963955587398237820166408919718467464321611914778295261964066980180502778921796688170349601626225397887450101407609185768173038213957072991059398906184808135403757953046357239662451944766042345632670779687801194743822592206388754430257123066591663271394598197124121794699395150656044783364316796065788652250043071827483468649261899906025074026396909117219243630680179413828161353837821122129844256273577198914092972605428891378119534262420864344787902088079276921105564397739225627261311489419912971954071680739750437245708382400634281344557202817661843146781167389335401317423505709503634303919539225087028883458389582021957017465906000766038005353881422510265350482654525456717878213310432254509863296001622367298816479958187089788457236683472148241902749995007001604506988171760692597844379833500132616456844780791315400749851939081660701141223842535885902697251666166624771433804001228820961663319688814079129705543939746626621297687357076163063403707542000377918365076248331117559063617493696318309555209988425053361340679614708373525140207944772274585204099974710728735137115831662393991687398712068304531159697895810608904838187661220250780067502264025261787882927752209971020984184454391068725043391604934093342395202847642750435906489153379250430902550244615752576936415473480610907362785878766923670301762217441184427404758585556380248502851679865173393378848532440148205868345227941031526719649738616312476371429276734036214871357289013180071592500005100048490093145731232718988866770299184656142957626004336727288666222415808183836489064307534887264935217927761677181304623214843751999019466140755024990751231204351986650808405820745999690687873579935734202686114727686243596230135660840966206147653054218050725754207731084843963156036096317986647860132548990649440558082185348195607573291056377109712222143785815007991047046058163020264958810306588866519580913026611428672425479153701099373838083847014009103278866876563079121564480805588492024105203328026072561919723132291021484645299918638606968681263947586122037017148376159296444805255673550463605464480741917516628456532532253726070984814317874571013186099915036140867650011212974486123143512948202543139449664382108632668858766216219781546898423277437853063989890225001063018490775491591350940321636882273043514624357364047984577031744630764395737200525646073486448203149751025507777493840600865614340827149173493163832904041007816380505354567917918670175051162967533731979996923874314426101219264957813763842548528450456891944458343808953456134320573780670703788754131799030493547043894493034440220013195837145389680224328391299249809506913478379280631160712859389981701921719750793288609913395839271484956795290899295505280696498812734580218599604238981128266696428502902480058930673026736071373083511526248209887950619604113004432895283551664780767554959619592995159832429128265641338701558735401884300906545980041330186013038530986116809473328480089131541945726831701324921371901499471446666866122599563892048221422449455713030078074197073829560947888124842721148357463462192676606470872735404829187185007181534461241906034121811500047995078125387371772765769517423585041077071284055712234740278182504363266865386972649282343620173436113581180442168798515002944734770027464830041998228201313485484127101672943545421382228529106428908334412834006512803872226291400927449254047773179447248591647271949993174332973612854149423593410616204172501902915529988185214969427585804955565100111584775099920267774778080381446263213728126186958413130564033792957466208765725935962756995589775971661606836777685275786531461368030523080349602799919161204538239698875888386626237303658027472411960409022522974312342647352335469545548060977281242943958931681772274342797018498905772632198739275701175574230126785397568978193305039698561403241141634056271028603462104838470714481809487796143490489886200416208497687320108175572670206232184691213118246170028271158509774289970985478095416766305948236617726601892227879838848240245092192139317715501476415790648527474942471304876631426050111807010796787518723371554744528451838837990162100565538994263956106395969776898525278735299503665740609652346583092310698162007541331618270923906677861248980112716091273581008884804688856810805165298626469545365781276412437816514313987375345520653164310225532850338180552929539702042896395122729278567810861496717939644610538225547222401191368173812617839218746824951645835621591760976352517292672531599748969155865934222281414803317451151726024697457321682995643898144269694357174366656667908906870495954603256257076511390523847818165579327053845287347866107663779806175130650375720667207348920215808367222601945712887803412280326991126008037021438478514137500887246812432474708899753869731070215516339498497578974007566919508262741032610903087279043793331264219575342365232906553471264006335663721146846337497062383200918696736995490727069849048767773295848364501986778211102607441309540781571310385574373958980366022965853224513564235251380412393313958713693614890980645266059120218321096035090570308843605167320204904821110356418291164773917007062352907367339905118400043655388759481064528107667854407982843272624735239057978366333867103213067309909943219895382762697221272739117285943960841401260155603766892508598188479124765747742171813776441620560718507401098267452362898199380518726727417602430291888069013530588980235951951244397027685166905853312954585033378772809956587222716923048433962691719252715128116301105346173019855701280122712714063673006560901903293065325200952604699236881372101225628554297609034770696103569702438446449608011227650606832002070373873595889705277527008303052432413211902351917263455505713545567077942426157750523347974879313970014408249301193521343382314682773588209637752105521820890514143957467649440826899178774577799814109241315397307902201321069251595560997983239566513255917320701876049595668811730217846460720405207704778573917298185820081268585139189529058148710459375041421196574757721618481980349103803097348257815006116348411386821124598840370817728427140178467150304028976742906217010496580911604428070743535418935248400641047419580445742055425002504140261325749312550910439248315377573422657170666609950861934481193929552370868537149689316332370274093882121116746056745906107587735972489747053803302838329487791480782125575113439718443248542123242616975878648872046734631309970328679904668917478413155438888914671235813567110958387970097527819116006986294648592900053487741342866000728922624894928757476945578733150249211597243056801196090033777142691190649238089138522328143502193958730281300084010725220283975473181393696571343157128509513829113322141910652874251043774151452615037487949758776934443856856741320054810573877550986848324373530844384603961330292869804713724522318144181911666395279809282162255494494335417156574926825902574124782960328202130643490476084852119400886920190058885747149379511750420323802204161586404572436564181926263663560295430416173724050916013867138656644138251216711889530953513505555931692828718723669856152948561721336933046156330537160847965763134530663952309574005358685251306738610119484750244786986305851750689298193396626321433510360556234082960847712274822025644238422377558683700332857603935250972057591910433007264323223744227135117457747644296421914246336673049623497994695834128565870307998692791056244160520000129233938915553262796441469692762691726572518353346287462495115355275755493882765667067602704212018065461149229988915486441956417372600597707668945937100025042695665018177212070926338893588601502403059102422125173390771317173900621034824365986661472597548375095158513680260911526545216990478625391312048592395150594897759922012810323354197958942971032720330234338043134690099132051974393176899979167108540260039648162304282019327923741282789446841816198216547951370887269045367831055166979781679830526387067505798555006894392337140117545754035212672435751611158046890377760790352046205676816301749001193245681984129413347159390260265999889629161708341182881606932727620273890290103592400717929341480341007395984427569090153223232863794486223867823572907068521659525839466262516576986368068477342283905986852722495522402461093753746511396322999470589215711283796190342339378162649992349193379734297261145981402482183672528807119282606678286382626591387289363577058478970036462070781272738247443392963765793638482071969294317579389212058391762645893050560058712466968798964133547544714232955073568840875551223338583720826625460073689360643884949792104022174087189805423548134058035882365956546037498201600639977677090689655322239204767621900473368566870722162098656133823428301488816450795127428432972728616347086045637131402357312676386347690624853932781292318930900668662400671016455696378461439174489732066413602747892544039335092344935321750909911199954243631109616478052987775788543273176330427962981968602044130360430692361247115843427780748750590627964712613594037744001467697303474699992720189347299689902506840487607341462004247290247857220071924831417201029623362264215206781562204341564245033878120626594366358061197495368807995411645541866582980714323382435891636917436661796689310005557495383487745596060091936437131839844371816395131803349586713830037697497356918578153392286615372836745751190573552275271145186185894518704245115228185993696278291999757101663931594499838777357603476012389965194047757395731173704233226501181546493011320279004362762541534761951274766100462472358416811884871070101319950535624327374922963548055411230638504490370890210026503524690228586911403674973526656687656783417999477569280552981678064694078042079215416491840970980602425763057013811256133464331419755672922199164389172876708566761142864112878617622024511150930556696628739107295454739010067228198681489495804967606816642658848517096318237385469407907091431464235791793569702068345065888030880307010841456330842624003549786899231876369825825339205990284245113552840609785959302519003915885404392981293485091613711568217941505461095471604217708581961513536564678861883604565203058396144028102034168934056606532006393921170839013651612691543172282608338271619899045089415372028449082973723362488889912438391541495509162730605475592151582476883039197344970563588109882217558064384411857437815777237814903993083222236882081119702439388792924849391895755062743500921401813778718509318960029317540090974840637631778016459437361168914284578578200771919708011852012224479893729167363631308654229690419087900770327011568483510397704865352842671863783754826902421054732653021794419870327765388352934987915843013005440275641304353035919697251389921545081373712871840053601621481882915731699988313344154643380839209336921126850797539810649925884692620463801592632417289330982608155198873133998734330674205818064284885039328236368341029012195984906085529380346067960237919086293969872479831991277357395345533552242899980084620945081779564426187984653865963594979155205608355930242222861926455596717904329289413649438708723340955378959097635889262904181279262965367404800438900475337886558333393639820316702105824424967197343452111617636028262859073688492713418192183749756873946514744937975359680618331685833435233844172511525775821012000312268076674703151963009705278566416532890858263047088757004136054012226660351931435655454511632412793848357386168819606287602403026656573002892311379653805490111618162079702668404778825600432029658508360819735027572063020702847919857430642830050191918292637347510051636181690534184917189163241436093585457708907320011499461052799922944475612814499754771933793696006186693274360152818529334574067464204009104020816037879924512617072213345065310835508286159009312640345909120881083288288111370710286541295386715416052283004101204800330684584690242543167794570952143427601016965076467771541557723457751442783524825696453340985610548096322156347363209597435408053491569990356409642259883327691139919591293044459133127914623827489044398135415108464480164311328091960869572881680251192731720623318882703019444838061752513732408745354922058626272136521186067595265627636601302364491256816080836482412117485573011775095541068571331406557092580891847557398364310072527078322786990120071822419126888004945009792331430499617242255088493215973901358231425997701832915091575316056646979446729511598411169919860492986330025291221445873441840010685637078016128392944211655328417410955709432473446728243374577282340100043301917175575577127350444033206644250453383063128594093904942023347908117499213046732557969200282690198125765031904206839358465883886523637589436194489534087608692111372298665945164156468505986945249096364990961295790298294069339737784806868647776235028218677639389362351809057424280831663728401933819830634021669383504116572653404671140462199707508042371672703462086713158686543587430695569977876982524533165611373492556272026329333737975477090236461079387994947886561359041177309127490560597098156386468185019687683069128520652226746962817660232704660412049710638127763411494225355841798130533078580280170246625228095433562987124239754782659258148170784664734033807880505918957012409286011831550331159202975512912985529000291531124297847933814559554317299131298747648179758082647233347814102199099417605237444786661833265924977872440359756423246994977208125511614310261722511270950505791224149565412246497418757881270441814832835065185477960752630471965111412321520690242511334017409985357299537434637703985440730897123119061578521368475689930593458355180097055691731700705819632531237594929316999491439677593774263911070983698212122875118114346167319168746609677337033697847065947925482814028849457131335159334768953896799426642853357767726017349185818591968709109447895112052672170890536454996832649063744503041532408178982090163563518844256798690510765845749149391804597307861548115551020173372583378143125562653669115909239897051102145977469172563476679770509565892609717111401845645128730367197136011640443239838954197104918694962391314191819524396315991012811459554205323245649574385691110713282204429043218803837793787387122535158930889104609956216472405215725394956076744589149774053041627739102560382869520377397138311633275820161456951095535773683344445955984411305957058017023697838876423042273772505636410683171157286780501119083655165858060193643651830523939361448512100581126356399915636496268329505189215538979707860698280997149743957734391309461757524972801481434625470672383474365484620428115960315792541470171010634026660490243380775136739678111658469619790352292855142333015050733046682220017993030288622676458890539975792616696996926914698559699432142047984521448872053009349796374588997749194354393341028797938653281753151200574184076316951743220940531403190570426820258558858569433308464647522155872966178262537395961619734165352207431477129139663286532899764610058179627025770150094893937514932087404877430143632573814117301665517913099465943969497050772773729748250918302846380945190177137548646915162467252505507895207691880157107586705074361223771268938720645436911703810812243362236485547522215904146344020338712440862867358671682402236355280370108691974415865016885120535918290273707121974190887080413839023843931444596140207269345646304886492814652184852261407216590202052550802945584783089562950359622015204628944931563622734648086154520214220203245581079479306994661057872142640196591070396940188470356407962830197083662250824165237421934194381258189466914590583976141740001371080640082590102395211506290216552939908334962297415023156041649703894465569777661581708926270144613702497970568071873888818406245544665766479380227115451239446433694912488977358188920723956921826004515647258115845526407765807501082603355725082966547098274651550165875108565058366152324517494244487685368466830429259775293048747208957205527291765290527505121265981685922578789382350364677523258594491828908484089216464061905000390706062680865415312451874344485913595317219734685339741571876786956825865192492738123902631083389659741327507062985767940281537016972790631838891403147249447396554894408076927668829161936549754511560842988624548576576895358547435811918087510438846900859691689822757759292753467990894966989716825316358266775538479061240105438168344897243996841137282605079024015437975604422022653862033472578178154797156385991424521835384424304445716137870418923547621261600580801041009015618533343224187430191918737729903941660676145773917636291072943986975182612589643657685814465649487681979263900508654962145281558984003122553276909807464654158480442141961381718766881894206855483419056517241527126618507522770354431296013285905533014065470246979644183780354789487603648372288976035626938254994702880675987684810063847800750200396344941469544780129557454656743496964269153589975868961086854965593875115019153753564813030869974798835061228389143822860145319609378324374045141308214479514938948273353291258873240189329145579818911735984922122023280637091076892048733081619373310451797378854132434778412046730230454001889525403118038046151702008319404969365878174715013552192121836125081619094941700346329932761921123850875909023640609188156816169950135531856657562692959206490644728131744034292579920816954055836595788174937354813732092755687074587829033870238223088672461934856117468269022116727499992154385977211996409372321968627882211035778111964553984849423960699826879963364038454531380777284250163800403080806489048187073636085235719460889778801605450684245598232009282438443187256786963487822105912496011500368828921087255632879297128301154498168451093993975727521262136172837268719230170315073597687594375329307981413732975305298944911670939017408213554162853379785806391313472632194154009902001833204842315403793580376091196736901551099533543614168997625504060536364170858935373453287175935432370831402165659527831465492892532700818727873045731550253736606504217406763807463541761059165036662808819916700156258564586631255057616706256210566797097537436426863737728561363228553921271509983420796734635919562509422616390350197678136135303803802290915435268816169449482010987496889674426881895195218026935679354780255624294645888444988476040736606300457213399433137012020575160137323061902228890652045929887072655113058847317570274724962864610965491372212337277098318010634259969128800647145283709799796512354481457543003026145112527575986166102005855027478515213829523171172179248315927280136897158778416669181830528700485267118565631907174081006391850792303783705974252404043633531544560945377809331258788797329426437235239560809821393434260320756382694662970446587245527041690950788172034856677640825091714806432449265379437645087930351867792814360335859298777659122107935988071057457582270827201232320348651011320451486222883052556352072372616074635020380412468971808311225727065964575959958068864656741946494718029231735852780236406665672300571807300180638049672614028222561199733402817948560588980934487282545325588142806973231708524184809830259775763007352619274162744896497998884909893016822503592652558153841584408898353449171920299618605658471018752836119948761549120656178435947081585449932938918096577118416093951466064852933919636185081043025004498475314500560546114991751941089472966443804534464361323932230191677793110726539821553334199187591182800830761779947735445234053058512063686177834157327439479493001230890909510394544841049150918882228897625620494444259061549930819532382823942770582027209661761440591619466096771877980492711088554427697410079630840942190158670833019804487532917984260626087100322183540866287811598141738033518972068877199973366998566111966262898983340764222573284900733985150833264966689312807989434769004484157083927318754791171155273978471295501335594097185794871586268721526745326746386318606947237813262764571616962577370682205927982615034354817548882991446842165804755812086488477069964733242006939701652576753280312426912429278105944433145366903092910192687031429371898143022432995446650374176988390500379554991282830068958615857188483044459270214066148016726995451674595972332028949835074343874071191574219218587256257113443300651671478860915653546707054888326224548093035579261158079160099515725328386520376186684330979178466459976981442314026058462868064132238593145198711298786351635707345772422713624117041946002762442427683191406771120662235540668036993843195467596200913463527034876878024642698520950778790336313302642245843860640125993458535862846130052011950667669033104105730550602162176835649935094547011494056471339867150511827143459084996634255860495367096115062955741643903703692732856538380840583089345963480028643736689402964880324269411599324238865905280417653499052747527652387717594415946282228567628658553595585162770407786876441483547144286678393840008161090162678607809404522069286122535854558118056598175420133014494293469730105297552485566456349515271471835569084328960274902302600295950380897355151096457012423787470004438490011072589875618097430581078171253243974010889872046383419679384461694566554861002145837247382360183778270634609657872716588708231866910827693739430556965518258420486654605657226778633041084207314799103627552829358139111568952560359466978652632353902261330198481230047913339210972260838109807012507372420507171268588987866545938825225751702996055917826557753768581059163191093879990997151984917334773734378244007431529968400348477986228414898917068171419168690165155753861934688950596181263171602706079268181590942458670052452588618470807681813361636373976462034296845974601440003215811232560366813384288884370611733700589190453451443251358582768515829755716267859072399581324880404454267764492222089149750532008614063970979997874229836502531847256732671565409326323375629753636856947382135633644961732055067996553140314003190713624377823232271718094743305015250299868567952887971741013196762231158690581560338953575437298801439095951932238869793408370766743880048111826399773256696734781403650810396841927061469453800684935252102005158512991654616598132508084866734863453816694975231941248053161555000973089420665146768246471157955313136401535487644062359970582199752494101950431559334968320588667153449223573614707682890994995523040091840785081351730636649894470048988319719077536508133141160391338752108434476443584196581791868247641835125320069832810266598268863115065921028964432011214894442476047765387000929573114282229971314885182464486202456270156011971660741253320597824555320620186136217942656601358462395571248787513970290800169907405429834940942249915447849382853199533176426106537045342690032837564413314660874954953414781364006490409161032931833470914406964016497719830708774491111784158618933431944897319242638287607280232604899123136171150441823004799111569285891804493512472827575515821387893743282319957806371277562775875525485049086321427682474913700651247801967213935056691048524535651399637318560817346775703519387356323207932994886877385108172754412665841557753405109527088310840653162716541504013250133604995438988674611820628733382531548159643266057454679608006910875326636166103206339217995776976932729613201241166386099138717763388310181466938356397393677508895743781837336380066947842207497132402827553083110771699238800001523226406533612744494342611783076523550734713686788799416110661205501040351995939380377193262403361658089166436582008376154589162110588244256276375698026388133798493024117890700060335589706255690206679219228321297700924947889290078322119851464292555034715272301190797375469184953781383214641405950506830144470590639064646374896672986207604286952059101076076953352426873895558158777503218848101958011858596805141414344386077859083030032647192118418190209271633330023126109927825763639902776340588763360710999170272541544310942283721357990109778271678690872112950591603411962133286445551254243914941007525600463309179387245597315759228235611909316365123716247610019966168576900596946242291243767964823384654357900089961541816081015680416311488657280409061928035576383117921871064460075615286973305512883025331302643791235411810963279188000688462027033623798336441097104984022687097603948344821013962557282160543119537399552100686242881831430783695173680495533760303101333784745272900162763656626337723318220692934716604540122194985841056997622128569434536119546085572355348525775258946446638658237903765867646444088873983498486340646516847315576536917627539693718350484957634263907331437101477829440126497617198114819588702771661084019789842321577406665775793465567223018761613062892477140217376530084438999608778524956427361691075117821849884243411306316198728010498552243148529113184762308616825473589813376938231594816764172995271285232248625781576681542535316037020877602521682198307102248956887335317824705293305830062235852301166283117698848481103280120319039159839900049502261385885422982558475900506638011299123445230994549967151848769621995120788045588274371421443329467264183423626304857786499125860348341757963610251219374515203514886530065628566619926424982597981217736016427714453548389723223593875218514974358280040841082626423572320678395473391485835221315824169577981813818549880908751854294474605183867789911619344980013937645760103889615902335779489677473600729624511563791233237784859159159975941129120686739514775209296495478083227095800410849110681436867381414675012183909427500268225954274869639415012756660226276440316049983922111463524505882447912334867118733218720792685725699860692328419535965587567707652257065861757865356335790121570863343145409220567117740512870869073780114016802687360365232588113373037822500818798914269616951486853407363547324969236431656850875101675079549195522726341049003402293701039225349929446192765855238550491206398664648964524434712081295174205238872929441670621750906889381637291218147073801095973908663074884216268883060327507301554550143300047067616863810012585247491345517156081994407895476126851875379262008176998872216948209720712968027518314054075273206032671769795559060759991298608382698690610643493203291479012806753524826718110960136529886647190340695190562147775640447638851877246533577335959778988414774312234014775207780560892880408415982460998521877131098010891026753489430360993435870922130921278206122786933693117341558754051400631968090232825996683280965431289806143760775114813841104527454581342301198187192365025811425251435345203157595093985961827946799967170112326098704140947288277611642541396752465355570015293303006086494344998393579716095941551153551128789299143280069726944011915891549775968672081699746479826420583407267203337167907476763299508115381174823775182941869859251693334944975090554002529180162260597447761902202691127496851226425592211308003877731716791780853789410780555420932507955822392019702527965933870287631584037654367847514269242037943956253087066425647992336460457302408004104660121841523997543952525777042987869079971958554197490406957914144482566610285274774480058536971365099472710383225471589640786917813373771553506870744374467974270084172541909971042244520276861950062947131435574335020235163560760973697268939994856476214563538621879176445824439346810107496845227111184788967200858901024547412035292641106517048894392598629801399310957009306856416771416213323881296886404806557008511023564496814953990842202738219347100793586932162039348730110611068385593386774985926988234575066454057125205711401114992786633978873819626773730154991625936387777459587639337635609647321956429054783932711936641373723749050215144967334232541452240617447309253504986654315038428478591354241034233298291927383170830218334287388319269770091143406825150308381651528740372913717064497069742446536801034885434642425684648241749074678314896367596031245866245540610135154680631451516365019318880077463266958688519016700736211552433084955157253879730066159764430637753857523140601203053725400137340227235767719638687856439686411059228599050388442455228476113411643197693269081293106630355249757178615418687205458370246159651245124278865553519238545446214286441621806346115969799586504599215374102398879089539387606100979254739923349453268979439907914523560189219264189400725132427667586978075928852169802060491673480015353123134616895851375296115801030246074242071685477641762609430950112556261653872724684911400161213357784495058090392867697869700344842960855168667083172557530699280945039982015262004856226665983338293374551124686710961275762949460616393147067577505151277814196988432115350778591557661778043571836881327953510971526129951171127177479571191777087879941373906349850953242335995064754047256421062458011271239704548783105161677795355980122317335859700729099246711497343387017313966701806420407147444664585456626114790193444390630792568810944582614280010601651795900044628623700533499478203934021969059937242002227350578067252668860243685209010706993291582967477249271463144254789300377362208446398165888215903207339606038853078125240789226928979876927612895712732132230201227072856644021598193709046259106167954783849336263055067125267133276099405928029012294560449087247549496062197242798119396727873307653005027558727267485761304241299949081391240149939975689262989712748767358863940005067312975401545900478692692156312945968251108221178204605306322803973594252911599499142980465138408125168234325979188096798021018446790111717433675880412180334179774338252490660879716887343510907438250650963644161913102116268361270070499719594701964053477363949191156372958239401646475366636608349106176473556937739936718694580469582520612538696691129625847340178622421426921595153231683935046404208224389107383013476776940394490889585556172861228313504404191601395253708694699610808933065388983035196466620220753372461234070028784035318142586331960570684568317527661597392538472068982212363884451762359364280354238605709697019672730485361941368819223358804213235080752896768129934886458230701488324585031324712995087967111413884716883777289537599120673005793078713798563466160792476875537257586875278554803350629220068265040382321812593283117632680612488375171258864493327666615572861750240051208322451212953441182815191347071456980644089034609254410499050247387756443330899034058069564016154078872015611832018768350321621210384773573773374842752078752195634400394535465119168222979146293536848191100218209083564304679931842367047218396095774311732794677942431909743758298961875206389755735371728573823348453877528724580340001155946811429963538372526988586557112067676540158480759669548723719170763802200190841645814173927261198583633881357271526058764561899428350248590264523950114660440240938900374358392190476425553671108950040458683055488487441965923387800336941834667556234393919351911945584908400770895957970042494289683306584532985366003188469123538281967350302737085564617402351617850020828768607989849765259896289116202471866778576257130270236583533995465565830516171634939343311846713392033582609637033466536406503290910292408323110093153888329096390803417207452486748907224345664767814859692765811399443311052998549859143994351937166574211154380593889161423274488524234742459056747748622270208566957179767865044491818179939928956375394746210346950067017286553688907056936495792278197586282552441739644480430065908730807194287059546346625645542680402683607341099357261649584839115954192718958290700577980484496331328569193802026403886236558583016844954610181944562427515884477825988155145593560834614654253265903536519221095182464502710529918313440298521876822891095173135956489527442177904308133844095882902197102553308546536349524710790993873322878869780613713906272236503184096167309767744653868347837122254803108754937743346301697740144135451323527980161903678725498908831889217946830547093194368142085892759102505271791695491967097541622118347182838494021241105493840402111545367233915579543290085699812770562706219446409450672952031159990881642321765262150477429315827871249286266449253751208187169176342714936723020892784820850299883016977489815647123341246963541136352496884642288797422210369629779231873992165654204057364318401140083100252282265832632355394214227839953282797367543000058543080062412651097127382384412539175699385943257197901964288480123486233652043326993371123464669268950552584511457306167550321049871633806895107148624753434010947648489341650526088588080930341997198616966647200322487427118509177450138160856076807930278059876064640319719310685351004332772757947972518542663071871143654075971109339964318874394286340708534524762832706844911256707958220331013512274403985645442774808794388571555891304646858633605836287773683824056249901984502333385945747962500840391082420502043519821196357340843973499668880234698106215369570519399971856164829956435034017354886107765603567193540468985842658351570220829210911047973467157287436592671450770152376397151453698386692512674327296652285665662438000429933340104032745165465763181822488112866559073303127489964096175651589482587623362571794640467592520993314724259513809973581573353359987043959170306768542926926950070571023626724855624938655265503821835713058017677786559818841150144822722567015328694041265989914973380887396631484266611654008919051451108640074566352089022353756687167459940604815936491928703055910936888794007584621819249339914331056853205909513229980622314398337596741522347917510328588999659783836741387751453600222750237296923961274417060570543027107940800814859246329234240240564276303390202288422564538888976325069063070242130782192360642026804711303373923018474669767574417306913373474843818896397682872874463952562111831992966541377590061480286867374888279296658521469792047158061489120660449641768507826612707741232871672663350110346741671377118332030006641720451433711640131979743894101931140950876762932237006042842068871606774635473318385561807436102405335713156141321588401032992771218466482517909354108926367824599613603277959580630589836020334818594120094697870959379115759069784748978973395951797220862206443036603342383644580735996806246212058077590587698046826645779401225502795259625363158852916557321130818418940264285775227539048098323468137949748091148535452986758395185873760947057052203600353220383350310560547808516559312044920830222686042085155810065884409281113000599665510033461270583068921595090239447887617381168901213335948238387352188911741004126191334474182997679824697507826108010854379931887906300722091939844005018960981370545675029423307831307283252280112063844301932372402391637930557480104068035348594750573065060041592636680350588878611210898244221856041826748574077801348178338488320323329377500556321406366243059872646278208241497311638085249314545898347481789583165405750885808281230100734498995389534961766702150908595175085267835576404239278993104429474303991548214574267768346092377157944869357926678704799371620685938056706718833242398542774720310042382533353801697585852300719049890520390990800086762181984776587579122112612622061236283177398970085901576913999279304068898041626387776201056086894172403790968517031859395664109318784037058221839313451716167347363659539097659930287999094522010588032861168763903572556856443220543014898758063525432704019636816727511123956734900933820561396114144576818412248357362176240851944274032252063834019702773092230786220872597249117515631316429874264647051181074525594062744742463406200717222756477916358954026691408832589771809451802313254639834657338682631140790624356672180244559390295674859077533519956733601830398548877404988601179379184604955118893549011991780865762007666614667954976878994655736913338105306851006013600233624521210168354592842987632579555429137431272416812724709670032586953759843797602275561030310963822901978855466030178369807675478182746966623496963580396700390445352152878660586315913134487713495176097423023508075737573889146160585875699902802923210056433421702759635159817281097549571020797321305841172151022258716196541112798469759895863151880763345715465993345768778851322912368710651098692470593550827954945425188057609347268453109809894872185374822027202711173907707330555550414238597228084882549233001049757418831527775549550998754035994479902103835112345785940902572233001317005439550291575315446945872272441626248677218314939463304357869418341992651268768457262667831451299869587030844913935162804946398769952443116966786394373996658331597946401365795290849403593453920327141667570206364541873645717541132825054537781513132898711507894423504119333921892447485588977298506249865957937210001858396380904082604099388503708534542904571043204615840476930277476927794772593366459767398694408112283038428199011246327447313614879904291937619855692231728150660454738818408257601586650325806139068375521906170654115480863263621805942080919606186014428166349293134126261492633322498378386519478565492997852462636260315979052252165200668977768022784936352681316644133377459520550754569640149901819859385891043757718580636444025802086193303153729417179217246858562254830369021376996824935152857011174068391419218744623060300360510879448863329832352840763663838568923939685260374482458465200878511314865272446498756581392572580188163159792050772934072540670630161129370550017222531467211555585386149285117090988405841992372098148158213936859433450997797589925997053344364731697906712698220944338447903841680550444850330610162825822942490863728577438328675012105297046942347482785508815804997497584922135365801956142281652464762322212467537980973829901121739489731089494082111495827053700186576019322609342624431092120652925217148617135745078778393329872958896117988930007830486748738800860654393793102092122108199690507576769543352143714363250958807719159452922817403536654711184472500456197714760957798542694911237157051654342216415728132716310963612888892261924497444037822490455261325359534380750242704112670664017496030276728980928350475796096542327652387137438125620692144588416523932662691746169932533370469732851871690666841434891116411738025311335568421592044409546701859748563844181362286430577329985503678928603794808233906242535495080625293087505047988749136606563910405636947161876910236412238338717555706816063982292772866418867337210610855727686960770186921409287090613624993799926179817003404210165542938504164620332645961170162351917515289015467561683823652921877323942086773732702376248152827552710374419001904951169709144050560455709155028645363021365045017492249881912448870229351140923788642156140816935073219190771663748887179612034933875071662218326412037578452616360864119970858968294695121049277505024062383234412811236578027063709294841845962121387394619749218490321487176413263741816958201478452953941667856485505075365043448551345656821117216022753055178276314318192588896696502860502747763969853977326261501264592542973329875696560884431682558629831228605226206236698871477847081381806572205334470632065317178831483906295832931242471478565960188809472647746486495380411614088911518051595048205688141360886498667299344620470246144064824152120805242156850907722711264821403949600523176628872372384608999188826111513540091670304493690705269248585920255349513511335920597913863895814342949004041797489806395912130644208133023795671949961949228538681304351708914687994027896205226640438732630692767040873793889634633818977789299650239534145271491927412012042051740281391637524056141242852647239964584896093191029511211317484884118393193959278315887088024563982689350557225404701810425668024243830502517493493706199499485940424982310298042536430343600148363741115836385214303101944962794285378134970492450108569293502832826221013620457728689440927531520426278661308876007027256977779078428776634266880815479912818176295674310017296162333797964657374101179122242095153783497792550966305672933335262327847062434257537594431917267905381515505094671730327687171156525284909086185516863845378179262476453695637379489026647122111213966185955452706681626415143107220062222900397900848609693012232555494649354821186621223655832495105531323856754502575571351079797946099851717915223342238409736880787891191252705484472344838457679384490276889235906213650128080524151643610384961941778959987249671583546692903392283685195478137377885558259414813166450322339635492323580464890794129717510362067135862176304816521476364394122320408318264329233361605360524002090207122008900826272898695164327711835849031179236226122655062560820460759236723369087276454693953520776912231881929233062554615540906460306809748808351859885349489763568674352576820363263384652900158624650543992414756051243452700699039223084040992459330240707799443592979480415555177506021561261585029034923873189018468288052848998843345947978834596133332313220342165974045379912258059414955929405932233101500574676290524468206166915746720304053807523575922247989497924057427591306129673811658725445630553189802086992885990005616149614655667252857603099386537489243619480566017010688782858690811775123597034638749754541399315147251379061498890455965858409300846006983661582630045422755316454587576837673446303099572392946870427776585964949528746501104553536606909961912670230941135318028229964445266416996218449571577783022618657388165388560281649278970868365680041488122841668731063113989584177395448542943079910093302336232061775200816058938255598551012491309570407233844946612211592688380263673934168505192660720415978132692574059535471279647951441609608421180733285198628627129014007992504273710067629112582494382914328808300013938386681013165521548559441987379062736620473330670941829506256591690528252791078162294860729274446100330537560336886184798961751952461673601697324707059149253353031481947966273281991621563928183026657006514662972821816581099471726935029768605487073236845411108708295465859752881206457311284964370431309105565114263720471178716247235221586204926047207716260407760950652133566413268453804701212506128259325814480774971604144306108220721392899845719439599214352188017971279790923548787784331114644624124379120738422195542980534532151267440970695241543492751506883591035837834046739777102560647628554339066890349673880918296373342278585554259594447790380990369832071681291097334691074733568607430792727335819928705785994378573745580036843633550596740041991162504722993255774353619303899498123983335943496090232841682452300391022610494353659927770281606574179415540234227227956650095941857910471106739815190281395161491115292328832217606983720658661085333619431245701970948395507347393161337539941255121328807177495757238834984115275129977285555151391576466815860172092463244017339349801312634659486306803919058733901390414748451405208275006243216414044940409189266350222092233405552198426023603631546012532172489759558477798598173991329538349485784358965574719434771460653636864944191414607872115498854818698528555911262140688039545107193814809708331074855639170323566258135899477592112555228872573970385688179983483784944726041545548940617755813290323834490946256350851783985790366351969469508320235636381793846111510680057096016794764757725597206331934419232716590339377399177805907924471308236411117084829262051584450655836163352217079534568345706179536798106624330280105652623771504599077094538953141548058935506318249713051425258294670181844165682996818864516135556548918232000977223978569630919014112461646267047772448722245530480278141818760506542286492328430891671781304732849812058987439115007121951074132097578946153618800834016163308822931700994003713686860175635512585679201031227498188346742123227581459003210974642756781817819492042688959261347804219983764803510113183321125388541262146659330388710398552805452177340742222710554718568987264508840477301269832399339226144537095025238615238598352645201097134287640399500438649357532344878434813181318307770734706522489118272908835103107894296195860378324550755417629969639810287850380606722723632758609167192117459472480304353369262172513298654235866597036908745772695562798915217412707160274585459611364537110488109760397620827153856639556948523867888246211563622254480662514932102912752685644214176521520808167690940442063551608139941137183991703520291695924477097255072599868270120390829980282294517599975825743093064577464340817531375555028131658056651879347346869518528984741902609748685138915315291308458025972336998970364206877962616946670540593571441914569514666931059399980130049700790671069730630262775963827010387607849913010796967547006047723890142906638850437489632515696981893834300646925363534109264861794140102252386152988462071473938903087998970534566686940172582639874316034505444395309736816057441296022148169240762315549863560276355903639794887618272965610135543319419586811071484898412119781916468153136612258690414711638588030145023500618613138854027397524817953127346881143135747960843672125772903798225121604810921549497340905001675994172301048650934428610948256468884344852845620726930352811930131158539498235372542593875640539574828859455610576292015966129724293816588542723863580557871580252555659362700461335306264912370746754534660039396644051038774009446938511611054239916431207305871624867603011079051515405077044072467188364551281256970159511203895435527736577351765726809971906484056329396131991460525634838028919234424012535954127536650124334847702879176695010185840022145126927637032386580819434386577813784474578363554651057111147402782378205449566078827731226873439863649712531523647261382451388276291344246162714688705682297741791098065917213166772834857620527059554659894099901201353473741773580249198544417907974387282886054672163929413750224306508083010294413541923718430409641529137364643939543257921880304049335773021028201386167626685998721647577432234657330383388896623628762984128195261432854850798791952779723407787562184680197919559804161589705840648451701279416530173454423770969615482602713268459474733180218921549044452163848913405170976870495920294932044014195190753269187507847194400418383703559238181500243595258528326485559969823308872850562787690321562123746959832985510479827161545472283017200088119259892252616379639571666783466990449095675218183295741765852910689618627440648865193508524602189948934204605069157576100513651504501563052357598076911974322080736956695198280353435571373083349297375332564336295256399222787802007844026930946264994465000228450094115384653420852904618796466121786677570452117005975493689163759172302805441175028621991948725061351380079428658460306117905933181463335151992959509649119332756819515256756195508755330401993549801346271850103526244434800180112095530894666146776905625646989288192608121716298411263492140526062253041659499753719487459786771108347804295518953518928249347167943425924758231243959216852821811782529798298144033904947827877178302639376143910711689316599468511864308914211068608469095459067857085110004704582495358260849471726815075540572752495138211081614580839791053191740970350865749090325587450210792657258706565493402554424065191049761097945432333451916593339383232123606028510639146312794641931985806063430678944790355175661593402940865914661872328190044968323719184515801776394066096125144100693984357998895753296495973801206804164616987873263620517795573127849139710706565442550024347628563380278211032717538730120974164609947706531051082298882382477189940555203381076936553310494995685413183789043608813131168873130785167652375862368527786730097466417527701138794293292289609210861638810896046822385788488719582749842657855964283200440806425097548850886556442984288870873279391528631935392922169428177278765072502871809583774228585730976272139182504094917858152396061234253622842781550747980241149882651152021193626429742614459119926949780304843696654949784018728872722660479898685614695654722828422468473357371907109698880531033486666364573884378145322425143795321701105183579801704353956032695449726257964864396662081438607783974420889301393923891109572632055365202297994994541006760215956179551285845599385834251124860176356925214900795355095609435921703724319437870439432582185634906471698238323451528996914079201917551502892604472566840692636410024477665470593919045312304485221027852996720913339583546337339779876754668873564151129755267010820930311162453186377440672122378420387313585911660696351942647306273977010807900048404387358635586976023686197510562226432293864736255676569271924020840353656951390312028412555471827785125489242735927212544771047989602419537260170722390493375828817979320166462216565051003244626288804285282822902475141504433325418676026917086024759815134168621476983821912019684505222213412439700696002992080053412226446347152855372705215056520646886060695459468369014372398363188889071757301312530732581431974698424218368999668779479771418704123526831860266225040982428594050455301642868826077585501185278999808115517290686813200777162922253740425872479712486851085460704578972766002101668025095322819246719743806642340588984331034921956112970410207945720304611021596575793701090710725094892078576411482486972019709471303036296958732935269772816574364296951032887955231448008676780669010772926701177314233046920005554771635367785528501098226017570901077242884312605737217097744791742880602533191179289202863277877834413879242472702821957736523955545161613897878575425632982456372706529138095507204557941011453720230089599003633568644552849104435372742842400511908936764739395967475461687758115127137967588440730482798317916543746644037330441198596624716101715602560136778593961182017067301732577809317934423216247104127870024658723473604220297239228894070952001900276191954120354030924801468472153332611768209099371913835694490611103142385679004028392470574540705639631357430922420152808080553309722896011287547234752086830934749915091916957179532518785328001977092034036249437866006407989690065666394011934002774080571693831986839606835296102318380527996612063795876394005437952028592592295807447379451811836174608642162529594827816753181762932182135723892050510994731773594279906685317344808574648105639497012666298580016951584733534451610491547915626495654791639014637995947250109175546545130997558968670501284074149874839217974706800804043610291240442075584574968034274476757319571957072400813549033792587847273197705530898482368867848882325178671538490998488132031468767975384765319138921699098441702376765557575364252098055357227322783047109772282391717840026384095195332224434375621554695225517055819950955520195230268697279036387804193203947894142478125444276763381106209073557769466826512158892115040215421094601819270451079869514890938773140373743732005456117969167464308747143396270929587520046427050325667674140415093351748038018244292975325661197966157387324435192439208809560098604292142538583533295386247277342690255176970680413184271646746032364206714817888802020170106884799849134479891611153248501087123544151913062696891463723527236121631355850713338301340811964474388523875167294952407654927061696320344246206439387422819229187988254168567062307199825989048642696727440220039726387018299850442858712599275715781556459405700571414317642764948107403232303354359111404078046833449616932891901773605437737712397208171759631057858035795744311532782831341020183489512345843963880263209965033042774636342688830426692160062912298526329578350382143531646319218163475847763185665948216018208623639608518325522407002548583155688427942672285621777920279673595960497264421078072310265642069429786869589660830060428750049192690436070896886580613856718768119116842795017129359745450501667040860408036704335818964488373776525788672975613864564459572309003901248718539900166005247983771047026908390639864804666289901610998792080353026435216742990720166210330470556826097291161369814525258235320837567688615191388522495273444381351635240438169671556943440307581820207268028578721407030076769326818959684017995084607159362744611706978851548923182971302016974039899125644217488648406406699526870467672032325734575430904751036849357066636772035233004595769346040871027218925982906599031844410879151230393829594675996261961539847340757357147727179385201922053598463398910697526162564668188664623236734086566018275249113911369796326541243932796104944735414881085941699666139199605739710383282377519959847051805951335498891307951557346438472295402448900272835016570151616676732478527903794846585020084952739591000486424293397169956143875896798967736143680486322127844050785147696978740403623267646494827963783709437753078531467911507584213914280182580210979941599577801489467965406033441142987069554171988379562043260703789199091012473193570462262430012706516890417054034650757399350589065194261155215769111643673080755563575101683393499490683672189650386873371765425468667180523160186795892008709086874698458853270684353618343049366334960703459587900175633231307078786271401774735803113723858752610619077848156006877521704880607412976830762264011247081635547970904497314006705714415634688987509155756433115609318075356028356617818347317016599088817434765459891854272595758912981560230384498714537767284039063558493076408052298937601094039939372367642322694035752891178647308702711940168152305469686126131579001640919223335793440677033402241908792542672570921331281846131336982426869769956256864695360334755292856880407301784315622993439862743840821891494427433932940367135559882056751815891254467400874628966219395386025088978388161189719388466103357601262328160181916000140836463782559739936593471581912303976996185408505705014268754949936442242912379341558355570709241643312771192332704807526488545541698859683407597988102372486701598402399983580071790955204639617259289786973408422307754422681119166736130804065886528751281323414573596051641996069766064007131413067999619071300954943317793081701257538569685690364942015022455384776419771098337698869954848960835694421951293509338403140390269680288857839353477698036176900556816551281223006456547004400171093802169468179830508171292256435418245323216649539057057400501897781049248700373496477186412880299655986414494838251772560962671406962783619960195590023101687480380851066334872276384406501698305746976732234861165571874163094974478558505346718538549797977199336014388100851880665532356838011784624743098473710115062823321095590791189165845409693385994534348150624707077337429761680920416708867093734190979666838675696794224233599352876739203989069772519526567540721184319947113700809888801358558157668113861769780538415349336302881050668065702913569138141876957653037310124608068207334313323681083103927333597704357657576728055960422177302521936916579028236199095345002979202909445283097956111933132891777077983754617452770331842419284247203778758029250736849455329184279268339817582418928636542877895664767934984675937381740221297284971210646448987686503362072189117257264558114561246757505986489427195774754242472966858027501422798773036407195680310810315297501444427955325984136911809372502105614317531055204506648592099340327715398941275490912112214865623348461363501228491517504817693702631951140087444780956639099150627115881464493013133021906584841946572007391568042703718859990606382939011408279199640655947614309470332058251930547669858311925360387197695747990137352187832769402092689063626407284476660309906608726865209139070226545846689726903954677574865855782654278536681589329307574902826589951654276453038564240595261738238657795550691461579154780683881652361218149278265617602704289165249055057909230025085108630809856542122820358294325179799235422400486295589411336848692690517381669945325882444285247434390260950964699767955418657554540662544975966138018531021833276509464404588337274393254427113234780924769657661081755052742227600311182075445691184124112326757917545664913940480933570699817774142050307044366444740661803037879817938454947825495380680780991062951980439582718246123934128316664547386666765771663254765931965922911601348347882098984637640635235477225090012246820341005789772107302280117757904628026587925701462149295761280952343201371242640895091072652530502598418022177652832395193648340258851113358684852134356673909470613779227583884473607968024837641835390753292778041707396974707725435065761685300002876269197919094873313033331527664596180613644112001781132094058300375028360228410088595378284960766323679990656626477207027190990843504039266556135874735959485915373003544998911155116292669998414094514988067005188063477533902567599117595120460367152042295976529602020444165230764491646504049958968102660804281807615647594747943536505429630519284143540067444062981792797014641054834727517879039686267412989752031298916765789356264535066504053625858831987534624680350014651718564442236336868468541089993760314565906150312773493800163995744338557394567483322375996066571553483134745613907375489620955794099771570018813529076558405154509111016395776597024974633305167854350330174673191508007999740614624551691360577780630954677147830605743676219417833461169378641906622965694257577418900621645105493251196675960104478525853085267649214149754578565608028659809840452827035307765363296476562071003947488952677913709469006315312628276702029605031971095172009235606851425796049704789642856463532643830106073762330533395522902066812828943379599933733082121168764386042972064542494376169345285150052847261398516965994011195243547043364923589238967974046746628946960487862276110823643501514055368525310934014070112683492868059725659020844892682422599481845456023355327321651184609124724272396500493176074793719119276469768454425975631888001124291345932868738746806722419838174784526695184394207607884908934640808040852847694543407820794061617852956419861536154250052488492013550736557403660749636680377472874818102822552381673259387667680491020962723128443662454711140127472016497979838452772895236842591746747704199498180316878264075760699673873707747422651060602282547894408928327851120101016350130070252896586018530446540055815400145265580038882392092627726453555707015239104749510351158534025079522555779774695537067940062391844743877999775223956856095368232202538401529880725919308701953966628824073834677293560153152695579240472047983135323078211768073875068965769688458720240263976424022267100332358990090949796956506126351831926820633595994363642771102632399066223013664785548429151791216793725600467576106711498053230724916817022596065254801185237680910003895196403489852935135234446422160239038921977832497508424525972022410107563953980467257052797014822085126848227603173660099743537519486044728243573546425156358819323715620012436280454317485604279295382669940978256264858839016686180627286483688426961100096394797531523849652661109572296412024155780877049288895947417739190372204528823837663792235608917857280925547531774504246863099549871724556818876346011134404900120565876731391009965116655073917863293513625217799428423228611062563051949944216198447202956816705357671542182142917895628674777774614079469122520748580075458688026148178353870668773598462552327220837942701430697672431275289588576991137834853241998300121605777859069185523380663080412253805259694940537638145483263944799593472599343462969975473301073565049692459384494365152573463881301426753833259034889696764001171629954677509575567758511936360545481860125251299819966317465601960613256300402717167568438077000115273491790695867058209602105777921455466405742426242966106147807123220017209875840388192460294640699360173081466547364257329353645941286001183782666239921933259906316514754718317172538670393913216417894510032930043613589651418888718910754086260942681659273861164224482231641800091309850157655429788881449943724319646186582366540804074355127293805104271829451561046068051294308622768266164446577674555246203772387788107225530818227189296822787829362401397345145124426928998511952286723035993296541919758079013934621784724175521564579257753191710603788045679468498904377954868630420526584026291388117925106204498242688332263947292268811369585780431450651451106535549502220786081835082198078487994638498903868178957455731731749001088960028969038057254213883364347095274138094908864037136903891247377563085468990982095048505462015033149400199306587949321694324383751498769314644989446955003782483639760375775712447367670047718517896621530145551508726455816564648096918323365874305343359139538875208886115749179663208046319487188209102667995403089865096128391330022071715488386172741373117615100860161832278885559523245614434423862256809384297595958780901775368653157128212280484602407211356360663099844341348713916722008326410327709080254379993149729800878331168550327809167243860840376997420413654139237942848620515943800616843802469081162498211605746346882393980618434926393485300250445178687833865154303022305425153138220813909675185895174937088667313670617688258932917509994500107562671116132353694910780084174125968696555596262110999236167633182892109478829048536796014128862834958305871482647101173779848056380106263457704833346037186493485270412636495958957791623335744823477493586525028901845154472295635400677924234303884048556512824392393209019530729411081536047901532593649397003194946180528494253248539505525968189776738653363172572133269087475110701576115469080967724563535077302320778307314228887479109687196329865993718466578608936090528605812524252064436685317583870132910318431594128222121119481205311005911020985890118203684097051126500670745896989350176496032653123321085326792104464283199753964149110642827871235798147189815300739791912878287982883451759622990273884177706596816317003813719022843902774556739912611915412041967096633750082648470309727204246568737067144052476719912239001157687958467149800955104678888116530701138228548925750465276184797647531453519512281090925833893146755526678730890968646338754867517289689828381425726047070459963158146755662352850640685834387931927521578092886092185435441898308105934757865456615695650497066728509596011393428909623953215474228875465456207093413064918378334730473228546623470778445234447207067872542539358680768742262025192504495134070424050340835075387004552888282034761482540992415725644235373336512208571418685724546184665211889747745776646874281551921959974008458279047179079274198927216268202181301364870306880530650138571425120938068610834440254983041709463371458254032366356911571733982529015240655995994768563452259621819776839432082422341620551444806147963125647730278781631456997801240727898389038535848921153793715639057580716538132625425514834780278754686961343995218804038850349319520974495570475575237889422294289399099490084353870597273112160131937297326710334489406907192660058522667451805968105862098204788164635397280893127968919516999693639110624138612718647363449169400023210403909034493720456792650323751124764046392952265893662767309568589415639314109328387775096187126770984691375842484406037592924104005331850522493733265872774644029839092263786690359191034549469525314482697499881153832598068955249005722251246906461697341514897902330616252155837487521910858525138140053281833594344303359598313677438391606579595795437084885042768034788072541842380368010423182423834569145048702750939532588483049435783248069626540176077947593111058244305042085318098978456102240143478320230263084395003306459688863137828962300192433654009446509710296764555061692196400770650334546041263289524611327226585025220283504132309882228640905298526327637236189420418502345599899933968312119837919434871145216247693035275820053602197973839844733680786622634247873378818216707704208136706461670874712869858084108512063067426450518218325865778499701571534456143848804764749060542602083664991964630462181045921335302607147919783474597729838228468193262745356913894535992568713545343027146653785208874565662270945913850116774388337410299146393175546239901746369243546817427952272700231278858531164574670833404096300835042904029290452250821295274246748346612913607216792376576659387319332994429522788443929413124898342213651498016328511398949839787607490351425964158236848700050251406960511385569431692489782445601124772438413151905734522443722060677193670899001147876123836054885061687181810431339432886838282926073216697208712597801341628503806933588902773079421199768617588438482948696233459870068362941134351383130218473673641312734536529624965179236584995900465387224597595880846936541930688875938147334195789668573065543373417154781546593277553183890091697616580281202926405821740144324541141074221810903385599534357663638539614823388549053873817941833811765186687169621252464000196799572097981953471857004456058055948167327882229807524631748800315698906931323324911073921102539458048916770308289998500519007742626850417978186513434735092371664006609111083576399896972189572221727567162763346886745637669248118496490888194044270820354026154323741653321743320465394911238147298672685141684916381772819067680930298689122866122915417199985225022420394527947612362661906869605460657655519059212486707257095507612413564342562728276961038708718661751189939968056107996485318228065384684587420086739649958124053259783674176004918565707164772565590819318413365469583918011000017271572881658464781125895671535211368322295210785043732487946611204633515296902482381641323776673433537118105821566638295414885861982724040175550361893618876479423747187398085490862181993835760504158644578421077697408883463556619380230768619472160716648119414356774110979031998973656518645168099463246525265821256238840366867495499829392273489736275659362625123062507045940677313014236659770921264814388981160216171465117689569893259312265777818762143061870968267440600735373391950839733493211695103935955435729312167852210877499076451339044815883019129136078150214868895706021195088689539113153645839448213525083770546315377838127130984587558602282080900184630730309444544998445297771634115113625242171919249194619318324548407918384113531787396625275136148878845731642660276453711136561270351752843457164837249865132445747849480949766713233894101950165808290745409950563363107504157381748491293053183832753398461787217249255000003010555666528231875441653451776553114007400451041704685611210663371243498988489754882202055031460189541258805532568257999168012302196722381516634298061928797967601830266207476961302152181349072261259551463088450095202228773022983329132112623337522572418992313198969590455115798823308630287207490450435160017725097283667368534217296139501307683664883744650403128238625301396887871063476457186594936747439041532438426335785333660358692324247503197375446408855454430308654324592003181319117742044758713610134894864022656198445372628074545894606071075761830133470704791715308574350754877894515501359594280887182949847164031740263491131823591302052303939751767844591437628301718648352918806473408054377174691391111301596761675952168068608999436323987486189420699152481974195032058242708701971013539668097427128742391822823317625584792166254927440488203314224073013154281754750228783758061580129392808391951758159889783266557019407645925144429748885843984579415600200616866334058198784502524445727061631005586280485185316107019674725284693634097298813956227451192421710179267270265406302172114683620176587524989812078542160732456285890046473014256338919540656599531416119586884560809015396096148455974466480085430660531155448227110329985369085124912484383407157318371840109599706179784994889308456388743567344304511019891198732603471727669499213162027157647711728606234635157887084140867848873383589988554011102994752175472022225806263861698555757494015063928980583903745570303363151270214126975302014276781561898496389252599770952419591063882451508162562815618777161560630512825662597914819842719496266994483204221974677667820843606050501411050494223767416364441114054920026437030796774803004399352504481095070057652229429064795576764690885642669951326644829604759850205952394724632275906274888590316220409351874220160312298266024347622016516943085961557729967572734150965883582801035297330292611235789589016679834456058788467824096682770751408743045016047428514222893155812435737798992577690948425494178371529865690697286002798118051968820799102404434243965040536115818527651445221124209508748708905570250570563968960074793292656856746646057924203119739050853096055284073168064083646567903178248983457420388265079715330043904729233700723917220932798028287937747905834539657250509516238433939932580221738721495499899747948813759736837533936941811785171295018513633781110718731818636432191578818967523758823376946723980880328122815839094335062960880443097720291345340712481207292385422083530815455612145873486289897301499250828080368050164074542105285952992561731673934025235530063394121380632328165238286035215328554331313058709504127549601640603531571070360326797269585465664880819934340874306298722258781581282665860934771058303987965474208212436901468281482275596352943888310990220001648095758494154612456026109835919668901671938073530793262538510789123551986672708623707536725236019070135126732280250442578275435700106861957614980454772734841958091983541606448094664079165247065991070876534514874867373368154565979998435747150841731508788503378099349865564513218247465453516282515872397259759201256132366321830184378105850266554479142507221048627532115302105837479788771593813462027148514720580462328704039711084719231445618674916713865202067749285021328389860643165553784213142045124715983030725058621619844715319014635411415703638541690103619358724330852083189769460687427305602199585375516327693650172809048941993686070298884210994279135211484519940689400170936261941668952687170604379319725103617369651864758808032826061942397004005834346103051044171872333186897735760170083483707258580042970949628537648026324016900101270352435185254596858974433510047961671878240102508678882156718367278729144087919005571357511577241890282024806290155605733103774277070529313217182905035492463345417820724834965260562911716689826426221361429016876972849050145696516592674850664024044639713500139542581436127978310773993055821714968622940643997809379933568337263523472517893103304335660607052967607475049513285506714100231967523801387411368947292506102495491719854147117362231672530964556064390098967297550011401818278747535410801681157116515326060604025731136973819731459692527035147041621132980467835531169270249921753556518629534831705511011606459428240332248263088593235897111441177706339140274714905482375171779740492413586709553147389642678204530448213937523625062682275638842269383464931418223104596784539349464595505420343985785227736907663011602286709732267688083498757953368190028473334412074299060529623435653149324309053994065638768772299431920201864652912833026055249767804344771536293973400260125323440420366042434391359826012810588708500056194131925490543569065938625437496038768952776878350972261318981461434177152774013877694563592714302297601966342304756939097940209365523529183645485449344554735676930352407130603891113290276984775720618450734808588041927907192625983769498383746510741558405209864696603665014883890620263785794181701026126010195362639586086636407797911446253586960074835137265680052555593155655732717659720228798647724131126584131189947618048109707380383070860763104218537187120763619662968411518143290351898172890085063119684312194906173873865714350872781691892404429648998033898839093043289185602182143673996375736668857316118960376459005420924916761283911149402697277194819868829439698371945848620268211518863986615806172516614023341051769265050063628013140653595017488229411413162895931444024677504221168872027598773313191709530372775069534490796783213808770876248837836513076060463991230560014661817440041307909737500204936313908900408629465305558991750340227353321283158934646068641657741971012776336421665055183219798942232821489226979224181516257006165754552503508111997383339372003104549799863177388351241624362419157518850783793831706515916311714453859758444715104077850507529977266867918733050409978041416969861760797254446925627452113104347067124732496872413376692516487329558990031468269813667173688472813609617757032597475744011433929807129017010736002693659324415434882834166029845109451742084063988830541808513119808267372308154146171020834280360512038412835828070182567245726721144485596821752843556178479884214076858244856306874637639054923247420411526477454995545309535013697703273545809382714181224497682226288233380846225156796093479698253738761634847479065100347227093749074934339439200950436598221901605904968458259521741150378651846027871285528466294634430687772489533325172742536884470417336262700601992226070594176347903174420695112715632829311112109050230280836025158911426034147356830811879549154965795303335553742739161679341180964888784458246353318872382116556060760603425092206609190445476773923121192316375568697844472984953519033626978658558634398390531237690352499368268543307732212644620049139928798561402363149674650764846115151219391365068118498202706799769370358101592582966014219859165071407560126597546741697970004247206787728572557109870900239868564530440639402662801529125453945542974258477982493532768647889442486258010233403560643569674647531639265635887731755255302424518213813690739376531321268645830802792084162626472283524315894982181295059553257983572057970820985440898687514392868255340255541165681057377777140790903223123602583308130254008446085504583479823233505037255594821589737990595367108854593963732759329756123286405921372029510859608593013420940478825898842180831486052025619667376306865778656654955998232334105739518468478587479888250939732675326902689144650175861962262805105126596925922482288524125654638591406368587426475935949999591322484322802184530475537696250834067797997613340239499649924798389319280590998736567823468550090406792846607595783516779451672193401975442425175637051006660855014223057879990939870702990994119194020095472646210569406950134932101775904055121968077714502537430406691155673178020686494985717706642238890559076075569337027454636874622827751727032306432579583496761062740726439307257972596246019301851865303016362000381971320442763029606646951980700510592474283689848545269753667905583191526706034133608762202759243227029981424284948184115669417466918860385155310624993422975740972877096304278340017169975346115590139204265669663700919814928854218321122561705419146265808062216353694989064101975619250471684801668352844526753621260493182943231180972192769354612009641609385959435901487619039987630165084044337391401558119467458181065081380787661459983968414003712475299762448782757898865365042102126363986923807830735948687721120381895864664444376849316202446806775341324416109412251835239183631156541595376663857382787257083486302454810329615498612860653648330937612524773299129625141223836689286346672540929162805178554059921210931446536468999506833657087431448712616022428513331359046024617839087258525310917464345083754205221426373626636690357907564652859710964293109549053979462192540581583277932121500260577005378691699069411847611910479556084300595607122618577302274087229559929681760813697290748386219598759101507666448841089500819720276855049158481180252687405117058909785506340017155292978559687923923646541185829087766718638718020754546236358068935498518849272267047474030408323126404053752182011381437541916789715381786594620761364010714182216092643070950753748254415401684479581862427617419626193025215438127471277063499070749354729088599124755650657349550920039729164589992060415210694613929417818960831984512293775772207862131335995466746151556512846204079899254857394051176703931347488103748704387608683700215186921343016240768210525278399555772118331569604862028021111942387430539785893724893170940133318841509869823442249970910001060443731503198605345569837325019349532578564510572366364880869169971790014716388780791815337285891081216137459986766652381862639948088529920668487103086196279578773180375105345418942469756696298715763344072292432706174779393580748409214141790625409512776977311825528122838969353082492498944670571907631603878318079673518085246597385616374010434658529586490786294742042146938652650345895123054128070878970764628734290699148254559311255846192832097140847644793093029883101965931105751773521812899526448440903766441289583643762431658952141116887506045726525011979610247027182957259023811938776933937501692940058335774698384676037854989529000788182849270121258544234573709376715124411628214419653311546064736541989313767113533898746732332010153148433026079730661131833092878080141026751362864262988310608250144852980539259684966777120448787768431676034389336842725498090278250678598996788840547089303929290509651429322465140882827494972442229073083895788524805994135286839880167996452184145430693215210112322669623426338209743225212174946051916091953280164442650318283114314666625752114061521500979536990142662905132988676551686728427739551505114536286607015267602076950466111606435358156524262498919349895384494079467162036595232154986959372868018213462034153788006232547987955043055573423447790663876293677390718767872163048896476336965414608620692223479076974620107938796065616544623119231166127212684994723193799118240137608034495952967329782789352369677839802887284500982613047198824016204326596601892460143418252117471262729805754229739467980870049171293950488533891211451214740495062401336572104894817676780281360140104030206524008809112749943232209315877870119574563640728811225252814037251232458946786433475150918882219409582871252493863566462891055209589944023934730792482374531536411866222996693150007396836964738127307639260882349593642273925910738005841499902107663035506111203409534322671259371959761909263056816471021399257367500994026670276074454517621379961856146691469870936238034905592826815859078252048298091173555668086530217051281073924790022826122477383474999327628579526504690978726992970921388102608640189638331277415990306790806946275644121030954842760124464083409490032323920017482332143924751013389850942474574862476836677624612501379484664947761024132387774284502637076814034634129924109556645197893155614552502762263957289219358187753770112714787794763053357175130890362275298341054399092847750668480582534735970092410803112685148655560962682995151224607020132903168472109592975686715005448472463152218840501683306819444190507173579256295279646925930324296893518510757316587723491925039444003641101711699866050406307151675288702463970769935461924432875762740523875936791375954448789715693368554575372628901453016393527128702423505181934905315472336004116041320883181578216722037410223131436073298531953373760256191662636125087097982743491412370193149013788398495354705519259034859211676432072214795605762109665217737173197705833029698577500126704843268299871150394693457287131718377696555062194377172681772537478309347468775294823383755868170051383723808588407005397500083419371405068471472551382461805962983698444437745327592205871039459242099926858612940398334356669962296803743276330748739727290970449131892064563285112034810486439217503097616563417171950126331441412340845496499302376266659163805928826997270100648494347203704465028338095501153652416640217191667061843997376319750352614119928516469051454461947642581017795170944646204342823960498085832824601166901019242654224461321353800662940090187811844894072789483678774883445720206672435234252606879446104436263882015362703620463419995953678811537790644044308828959586615543628201183766053279875585728414485878704653421132137743170964235479046113820378501909888341296269806248902220859134457098210063262388593235787211773124713450318816262571945276439914793015737865537052215597962768274719063133983040941244410428346161980998826552719556175248179382586493683991691860153069651158287298754028921174747948793612311371139813802183909598476617043161838852810917535264296126718695772888931454158565830881965055197294696505834494922046794422617168859041346835896290754553257053914065313405961768927177709456559058426423446872206269278886857762188047524550962341968489179053933148607149657586714994034816048232866255662626854934991679546084342318302699701248053290842759188760656241532729573418632914836958537012627877130848491366492657818405678160938089884285294994281422154100233296693053127367564425829759392103953045975454122737629652994857230541243145539696363264104534548802598984849078216954519098539286152217647086799605364609641941874404812620183891183717547737752302389703525143650395018438014870314746969772440056708820455981853923120758792083774941289127474386342754446032986906842552414933603876205429715312006110872445167224054679690345263548738377407483373669243234661209445094257766283644087367682541251962696728209620705088656744281444485819599234005895747956471188805378560398250470793368476782021325133299759789366526169289036165841125232871875970740674592923368641395076644862031111690037576118445485390642714285951973334425499138587959401597357058516944421119645455799539581022932823178569310191624287675692153059523104693783850076615163404098789277963882245060989164655831845784430071678878278279472715753962909368708873567120487690923512278059238182180359612888348449107534941772617362889077612287300119148516156634104228831470203603808719009647770906050066485956956825864913355228372422807344479529866603723743304562268225674291824654683239567649693270638273756418919305951473454303760810810464680291440172708722123221396266370389936233325295413891544551119916391227891979142907945892303167212809042264347373096320592769801821362853931968766970589963138465672478334469806109306852815031952084179972073118848121198773172307794720953973055385973816671980081656052261735712793246569855326269657695417511106420803860160994807590542372955055186102730243659289815204203673212562855661609540772707366274889714835323473840755623512771560221108660732653614056646912509693834831410584944276639237194840045644032182228714842230573241711306523799262035824903905916484736433008716690657704855373796743396800704626665219211605509070825626976091339038821067864761789807686737769477536932475557906864985948866316528388560840782730922159823099941185546724003553016705891801396984381280032519673934559935552354209377790712325272532678282349562921192186589333134065304500807533156175222672368982004223768209613328802785710081170020864924783735381188350736776936472707908027336965457080098082079240514463881658877891589688941358010558671097328754387113214811474423312442168632216963202890585124362621693679128102021225208977998101732935981756575235305294101522056657142039141978131051415222062029111629900230251161786103242366172691016293651790673592637548665228647838287841708532556051476259662950477148048612862236887933863128905848358168997861836190302413265010252752173722767910567651744729952765698853617467786095002024994916449575970724246030419483323502123747986764536230707009441626137247392042014227730026844789776595282101588795893563260673733950504986073787929766130693041491993066244838709653037432883023602717317828168147858786513009335699430013208645781284901025100692557967647920873045394487648698397918705162548789920193710796176131203608269960147490314312530844359906894086402025917667833841333223578331070556918691739231897154523122915864828688205377866120779695877465103640767896647091735835960890500968852899960374544362114745546592178009978047797498167962692297836987457567857124258730408964532806650543404070738899808087670615606273369474586166475845427918414472243410166678410998223818893468720759181097788225812544288474835497351224047500400702994635951886560956305680651439935513562341289390110363975944759663967318988397514957337852177920077667734274267804965143963537117994724812115304311052029047233437131995985484467541260508977524851771365354701941620367429867255223991951647786867746657075234501503662383513002036759084922385675618086289374384674943128503646135485881510044319131276401850026252727691441404666870520869032291998312032858064935633397097318520418254277897043425997293315673537365504839270280698083013291110423446021614020149302160534063769633699248451350561613253267281181308946865221198404303425208490087625539886725913892313506071133623751129946136425083523443207978016941751473211633224115753814952959997764274732310315941428985211790921712701398021976340129003488817995919605507910522218099613069587641614077731645370585584227058258337728936981826396313429052050782527643469055341030907948940980341669791666039918912205187440789447219222225102656097691761537419377087087854869751406862371780875748629171391809949823837261160518881598599183725911841223528000467117822480635502102301769549029987759017711107494709695399453194578909436774733187308014935652741806806941536428179423457598774772581758756179582092063664475293667996725466868682362416274472464495436743146990579977973428715459770373567102410587511091420440772042385893156541547872744066031519159010919340665343853417725762844120755234232203522254011253740598676479868546775024568386907846478075045624504505191002328927042558585530519880288241867406180682379766607800235770847066878259979955036148257445925577999753607218897575292228810958164700212297595526183120079597108740719342927515512394014760323816468440047499578829234366562208539872967897971242845223542117553114907109734608733608230430019324540257862850823596459005504137996712167192979311580440273147086241622953209286287566073798167898518300077626447320219232233427036590778523144230075773501180502853535007725267947516132011181658922467030296144481935129221112602630330884989938679152971694236060158471807434995602353284796311831706192622819192627178799231147140852708444807611002653785882695585071081716192410729046489943807116577316424473630844832644537421845912713058432142245602843784924549951933581729909719294006611606724509989561059860075291240583103703331175618570887720401569722153069133593473938166419946259184946979734401966353031149176531140993657709335714523649967222720688918357018617810063985908314174152794881558254113495105111122339506586742716222948155637957584478554682622327617421150888458037588481648322748984954645453451856547792592168983558909449412773887730823220573801897404769724861435443494910780909589160783346300269869237077041552934777920471928933706681375346057363029650243409904569465818489440715351640749727844032216794296284529110936198378426362901332245283789713434817210105192396849824452886795258364635432910243499997887142029032287265329500734164189178315645886449534768957068046976061407239549121517685364613440179903254360796347805695804458189388550487400432225472227417467845145894484634329238285338755339580721409502159650111157574836898132787519554610798796266440814602603170416245075297554889817904074917188966193243633473719585655376712605820702482127564145239214736320381885522432700274435622467638970153264492722277610299012088143813062516801942221145257905160054336555446566491431186894003132343281778882755552111154067787456281558596705147069405594225931312498680396483300906415480961995297676584759797408957525924034131328569305554868759667451536644696750517501003761043973435393856797453193713658246648839288060833404726411162665473366000820603243258589062716698498249014010167970964225083656486134349252492247945866373552233264011872146398954628673065927376389161663065855336252578348917080639435828659931742153408738090213393623715519226689245873923486905368444115367011481251542081291677801063776960849989831575470348913432118482164048029127475401533371662154235005064273582668853347035907044478316349330212621134749209206938463796572591995056089793567174790190699200307162749899080152542252040977408025159545380637664186199092782350532877852949539101681717859866266406779240831457490575150355648554203169558737020687235311602837978398281355369196929321861042926249377921306194773906531691343415006457397565001001860130688092282918266889241182521120262153570683176339493918658138513718204881131389058914023325920882244466984447359552995185950611954622311184145340576774655009924762858014464914886429035053111356036859542437900370394465785338990135853925836474940254186239279236558513979301824908857790130956200407305439299005314001848960800061680138988114266916201327044451465197379455046728207390553119013782913450042206047949038030233961186819088903306975421455069348485731406587244081197962459321604246263429012672233259784977583019242229091808206589158710907689340354235559239833145792794996398085025616376243816112929534228692773982839469104445327308778679403060153853788264520078708443368064640759761197620150743972501055795355681772539909517292194636777804542577425503195814899341877967932905949071360753522223390387625146372363145791623981757110163564287447002699166214527128706497756058712331581361031102378609692669393956051554378435615084112133868751043477005352155960229112898319911020610062635373156506713500642709596212664626246276468578353738544861989860208795067723964708116571476760521625512807472006457734133335201027037812503923846203085312447831023478444092585171242225829800935113752634720135108789418777849278628782555063225963393411263211105546116292927110726528576081210754330418682444197768706898060397648245199000506603369966103971065446828015267443104138460757923945312752257919494412155396374654546291185384021034562436971365124271231282885773629379612297720975814113661405177298909971053275116416733806611834733543614878598666384949789822256907910524814463982468038152414009816031922988075051713037373606934473238621355825305477870255862266976293122878817656453652044093729869133972268229537822025253235849191793228408079602716107821760490412865928015036764539141206311321124591956981072495620713303912998636149201930365416386760200566230055468448964315186332773813638940385988699384361458645493303229913633281179855653458438603557824349042303321599524773741334195864400287413883103227953662996833264013148587396255270231465512715235321214593736987930398997388665008452371295264941576315132541043674048454667693020086239165705784192072491457910674104431804663595927366774390238539139251667425430916169598717720581675499194859091108468382199184578700190623760213113376318245716574332034146481315000954475786421281320993657115743589536024660079701876914737303353888444182158163954612106997849504266684547541120006100094749453570572120184799592685294057406676396551739284329101942200919147987959247355469152526131223979866165501712804035569022495877293824653413133493892070542585921246624682100204383817578701067849693738464410475980662278940661487835804536397263089557133277587575102085286455410151308047580895778453206247601154043262871891776071001731928910934149031474063760631679793028066422628641158295157507344259629357138178323753569025134063229912351077816522682262947387862103159769821687035827432112840591258389279248494763001654310410585563537232934088191005307193291036860329484928938657190793507521583565341702087627680468513268689417472191247185234419929217809264053473993086701922102022438195065761046535446811591946306915387771502613998782086126403842226981796011006914297644955917654485079527777323283766529583679156053612766723439692405967651138457074210605595735944670219474000828833455594955228911299007816214039414792031970856870578334874221716486719789431551754553362750345702292048206446202776131988625197903746414764892658726259147380279136475725179531165306839337193429535408585327181723633595927348648346078010978405200842589100284951855202132817365294406811234872758500111461499438092598498518597172673507620790212700376443032446835099947944669934398238799631137819785891862158464924734884939568063964464010841523879560542604064591757917373356235934997341221381749260035315730186550270763837710471832037802780835438756795463527235663956378856813661286824661678812923858337568773169420643557096838756495389998056780162268727879495555524221654076168458507045635958435060927175446814317666089899087724220504404567997281248496076722053357723310744385885853474616363590253576362085294888381693737520023782979560508335600172705363700064808691596055414074153039250881265507029675289770888446582041185250873272255943420445325376182937828846509797826443960184949317824771165129154924670154112535373143643531015367999063277091707069473352723882323539542827208305038797688205519405908266419748129660260562124019511165037568547272811746469804086295584078823810451176803220011981773509875301635570566145201706852460449839116130932040467642431380538373029669077421431763798199963484794061072516468977345312950423050082549134704754279003193866069006642983447204791314429810220783718689061691676506818539940968582597099480530567513205147170515339666454264815139913476819558422308687663649036968788086654523356637685905959617292420954877643953952871449453766062872521143397842328795479411324800492034020178703565024138187611291673548638171820716748037125786903470602265210716352847099538873009478425214677323868520721978640651884221617402003736573504458784480255790440542755648942855778918952279026764615456108962162515242379387605389047234001936200970458203199827195122047017776579547983707817637205874846674276654961439816984707265066223396915660451147504773646721762358722858939455346861500352928930533993930817562228827765016842757842627004352432620974633343899824160687069945297980472600647761782229339784163939506646660196635003288965944828178792768188228191048418180861663722741092740547869743937651830339793848359745140659815772486030006617115497007602622567676049059882441210223220783720411852091430149686098987169717018953661595956243404535923053735483100499444634696012470134826292766955776443038274353293802589535939153052069943001644764148427931986291926288240443675621335460358479237193039523732846565723288271023673078768766410442565421204769556978291548825641509527428806875366363039476985220092245691767698977015932647635111206497058570750516567520860328483374252415920073031147422252326590192488073805137872382360695923142110246389260515195395942634645677680379949781435643518293591535577718353227095838379444419213652223000390736728224702216900572486354535379182252947227593250033756865066684150354679813748065524060407955126811353598676697215598159801774436968811739340142403355253574744258177051183438122423481869621427037558151888887509470521521331744186707611381107965280585677124142649610903142192550445515879498475920202513166723696703252362695984025638845001762791914924660093093839773666926673928458981100923971474850225739546651006042283389137017658260208846373536567419268940951620174091126525519311468430833980027380814739640638548172916507152823197543867677521861863663496603793989115490462308867304366868594241913140125610191262833952941827049184937817031791630158003015494575981579307217966141497852654366149340431242198205713639279191201717053443598109573276844397195745552543762319202159101310751757713224523553168872847211870400290976625512483957812753012761854718899061650444149053700170658636320566246161252232578563126833885548381147901386022905073440946444582639626307317072945151534507090401916324014613439843903871185226027840250158336441816886050270718762290895578147241967999762561007843059168079088576324674329021396012725887740894782625588413839933268029146779887892059403220586858169293244188773562130887843441676804889378645579358843698742247753370877400574121336106233940521649834978048044850770849975080713882157359208013780623116156254287156163553904309854877062484096038311291516300030126544360450636288781571350881904053400653847843485916666969334279715880468930460001522013364032401704780038812719679729673318239587663059544919312921816866697998132286649731048341338082236619182947361481988611182018012206925522470807198930390365517993211807256746342546065065720675899821622791464937279919383449211638928583423095371061662143051332454034404168285899288238331875346622802848769939333564179898907346900002821997676659056655952763640793687698086638622183340945282093261956973594348883808405137066624945226623027230659990598005897097521530011294515292265105758570341930578422509431998144941670825292075662200194094241793602124975863408305393559038017514901804530335670404286855093841736536347982236042167910619775077732521279754559505355595389156081297573329389808112723576642834813785714286013100608504015026028528879869233298111098823978065407510205248854333713697477897455928529203336356753956110523281401646309205148575766803461506010165133648634397107347293420856428514837325158650810222201063151597621615757581260066209284490793421755570882587759595003007229475170653249296761677626777783588460175802300689932348268233811869644283089757012011853204353045025701962123342401907478437534827914883139049726452316523457413764478682707295007849295485610308103671138878974857512796235581476879944644120064854852881817788273909108426328170884727358387098325560790702490876234979378275632337760275497387169323749674545180819799812427012306607072354355398089862150358678069759571626158443466194727693034756257476456017388116968611163535368952657948180224526770945985259186860074498028990584134288552276300375426828077369201915363901714692485675904885202358683743379811475159046143713524270638695999164479115158340560093707547239247555073594954676483934473337957849517264757755419564970704219809421234948128454658130540148987914605635461390711529938787987870018834751954198417668348850240609684925321849141424313038794228507418744842621085107151450644242193924940092268103743176138117579427583421392244481801467053858956506397240447047155867461412975874923144849421758166741855561202700780801408341886068756450161528595967074622357765740106128859679665591909216079458871166638029622391979708104129314392980273073829911779858450075570610896630695553775171283512036249053371728765155313400099557323016282940924358355756123386628139700630481126359208767046947185769125440886010374194931970369867792134183198941117852997703965987435767564656585244668089486383011921853242876976611371555681270233805222647311922382206351572878069825996105473054251365948406013411437144201076429443369505322991159186136492910832735883228412187979295804462840223916548742105479024256431429496289962165145499040539569286113931550655924154287526232026071770087379367095838779928467079622479409482353235553447142194581732422256312469538401336431497742230472907080828483036181309997101641773895011615675627534664928892875511141769347050706636937844612727969931896077905149575035325777407999682980592500396289477422736919490822913900136335418210266388265019731113037363048172344653487115579031089563597822867459311412902656253486466837366424644516294395604302158599724822551175660115062236807530009185456809832867401963523238704317542373995842160200175255055363179219660904942024913189942197535952049035840293782211637774000286837214994129645615334060595644347658548017052522843768241771399944002451810004693308798671955481883520744453539092210731571571393025261465389847029971232074066086346840936424294756898524666247355646427542871224932717676964137529900850671128812905234027594094279300584669766057794796383865844292999067023106975501304761605945182141472414450827137617387140823019092614681695851778829498177517723275676669697798659988184952175246799203830596530188872717564422325007316874810248382962699809492198628003996377320338261704315861944177179818946821309985933069714461473417075859009412503236357162421610403483273821270079594918451462190980212199120012069777679198795547755466056167746846159232860925302996945722428677411559695806560846919523294441087301495916859317093719485142729651077958500000875479148898820509610329405507001948579709069912200180897466339024277056652795522640917402929353867579584082289346784579826354126320291588308743174418936343784227462756003544822037275613991017566446653312834541250613967390530485167838108721931788752975243002713572221405680195097304858891537384138387413291930304632052721316029517048742014328680843164201181612875874015423411562152624758554870041790310478357485201535716248807465230132692104949901042503700270874340815438777944540314703629014683649590847861680557679430301078512544619861333841268084864026201396785429361351850012568825575555730177994770594918001442457296669848765576732793571518707582911650099611910690486564930588231333734473558119865812134808303544917793911377252376056485209003269683320619258003696503990870012072990584210518052065234647407589345587263954314571535943729727474608680138733531884549111432676068253976286869104441541232496363437153116944672872737674869669461098452941170033974348188238487795050107511521568208378566383417624436499483974899785506641547327328626570203529327022088212525521809303845452539982914488863905912563484508753789397353140860254900823854466165625025503393292499189980486080300904285823955113830753035368084811284559861446358430844384840143097888792542090251057397952818181817698753214763564397996537707126703062613849323947712212483301391207537073700077975360777819486364494317535206600715187707059422503510917488953383672321651333573428859312667190216115293377083049766911436275905855407321831004935161299718029608403857272633697535300282233058409223590066681237677420427475459588764613981384758283189421658753388420312755365085051763155560937044501381273708867473076540159102449826815617089454854813616630500532356189214104532958887220368657750961483428247944105064991841463400693118935110119875519947611634884999128534317543122312997134519958448141936902843973610123046605654006941558752012061784290600345859913655967189315905947478336338976634675689884853440091708854177571439041250640420717663933419743519638796031771428225657811478561250497209866159861431017917594214342257720891871621461181583780994493412602438352263750800841645933271625618328355816830604252786996519596078537295934740564324183864651736370310826964142668419426660027304852721237547512773937374102391053874601246474109393353503697924402652224613207050586155372786765061897067520903593196034887047578301212560696927349384677348471290811536553879067739051568671602956778833823445019718426541987959275283038048046213062010036436166212804546395466658537279515647036677803926779916989011966489540413080673940372052725953482804181248681533132321999574105672247826556133700693587468216305691405495408942190937546154175126940916167626618202692889582123665172503800067253272304930135294008777645934275027641236985552470950285450271318923548360411543895957510334840940860928183983403581289772148809083786570026049813449943648953355910470187829132514571569856919379547417792002505008494182023610516962801014011241158102738256287142166836489167583284904426246766205592248744375477424623537679466707409753430910690045370688658253081761477479945090769508946575455517797136280575789631459507920332926749215097726640959065832824579141353235499178506306264628884088078223891826094143681564915356949834515494315336583077486020315714413469890979187210069864621993344754810990846895325558687827649802143540853035899402384052100617623038664583121132051643341719069493598648481151774969446592277100115708813197429034673697817483495854087418110580539844697670449720256865568333760926369681478941263532885906837787339665827729389065939494061171179503964841286053376624802841661169423373865452469750358573925564482403536728865260490473381736437690420792467335468364271708316474488105274064163891313346449723701244052986154668879282462503647996172403589840381801873576965729072697683696272364454675166127975360169126373267971405202324323167143397313576435282381142878062668679692782950587187693318503227652244724091078633481432518197060447139535134184515488609903296090700983748666131786400465258513333873559550462486677726096212363820525891564794794794328868511448300124206906404219328417635603949451147728442386936421399290785184136594416448313165008374369701270591068981756656784079482798971605717634408465503130223005131466172100540002226807524090601241565567865462834273879444059406207032251250508499136530750499607941051478859202619306053982119684273037686313092878157929775938628264218654241659934818203710223718048472038851659591860361600912701295291634336607915118004335139781047424947856133558565661270045471436100569081145616525696201982843325465360485539155394610838181213655245893595409817769657576430509773372573141641892366978684907324322647987274802050644740317931368143486240498548614872462893294119070393279864955265839212286887508562189814370629311745159865905780557762792572449724700826090563834324228007920438763633648387473344163532642031255757939700533271736138838620964670206996203250379051267635789416713110209791064384574793393687588581636866059446761701554623643646032389819950181684731830450366754618962574891052011612394697014518181180045927839580475434038563717725300998032982733365434757160291370068599486784014382038182231672244868034716682565632620409263597634076498894652897615074392481160247991220131540398801280290018693031836018045696556212937034061429109773532326484058803431102369010040487626347495736590659552019210972447091570853945472181193330453494363957724196580696340385477729660636589489063336560208452946236618268287127286045027459628572528287898518820659627466055427233267874717858365709110173895508346928611810799710242902766067434185674767838231665671645922144759453151814097986340747108833692128750496435116104409377805049281816766240729128052735456541933195539558898852653900870127444148149137010405593873400767037007616374252910791316550543617118455980580402803231749746786488308758806415157166000537583223178454207099709016082000563736687669193220588456748325349087244150588526510915657125410002738244893135771609980834516000703899346107282062772809248184095336129332142883257705413077120838407901434356512341402718030510553485211336738445570865871670899567943616452379643354299838321979969038372095211419050902033016771450543548047307026561774208384811659492608050146721739278453781170357342387242057004857182082417612307916722035244966050188461351661107741036268026594598411392296532086871361945224895524260936909548428413317381533699558491527984141246883699430565220162438655935078401304080642023822254733645563124262020697635382003565114636319327189472756329736500902232089095949036834113937074092288584818118678171612159344883647781926545838066643574654823037851682278503665543399504340899083276138275661586884219989707614091524276371741840611663515317691898030389028534932511683463656087898067843695033664042440029083916932135838561990936839540599200462366570279305319893489288460956661064470078512077136063920116291091774814855657231127247717046224875327728350452966662931025874689987230357340882141763110055001657619285998660532499443005586965615648937027624228733252458166682880823400581277159049828513099061942459336560546382755877374723995815269477675320544013358316005098689290049573265230630583008821349504624236287316983929539915431000411838626551395768651311027278680958787609712566520965714183908997552150307397664646930465967273539932855185903055200641384754905394666660894444847215496928204409666709200705995515230951007848626365689162046008067060190302171190122488283375440233140606334337001439306976803508882321450899530360540272349269534128352352375739142252422119879460979955792873655139304085221423915513338577667791940800289249555057476928915550595780055082152280737763761063830149677952766809829519602114763535119655320898060551337810526353742969669849467245677317129254859274293267072957393075704165698023458671896057681208792639196492854085615802342348907527927605342825746976401834213930721918245972462079181418975516872855401615002849293208926404447617858735622354309806278029688008512082372913307464253489410518036522897073423566875523575690329727878301832180530094212156899172570944820642729518637498790188090592538448428440790847092262764649281086936523644655038725185493356783346258376170600775301708940810463512033794426987053066919137563726961364900238029788045111310307503807274412857283356943487251594069800566285802477889864415410537915902280411373204486523666364223821762949658500858275925600631202860751659018383253397452755389394564966803636105428405774546091054617724979145625540989065243174259305840854118616983077664349667246073348932493040366139296902666638925075940114283174721603811615756317499147621592245000351031334040990886156944341699350450947298127340778860002321359137474128072793736479895832577012860089525687697947902194162275121580375298074357999252910283777185896329100766813986325762328208107975531420679925324178760149688990230982257610922498788934397622688639147326119291475779454934316857173497067924188962783839760728920072159181683617857073570607897208447128547654251728821909585347040274780535454296103135997486299936391843657560576635355447928393017837245554562272562307400222809053349899655228936689075352883302500027810947941440926678933477361032390303550602434401945237627697439900796921254485556086410784817307491142215778313777170436851294139761584343550063791141677069560701331793015034242731692582450705414871099590220507819936864091931437812518075825278208303297041625582743812959942857005054679290407923158693577381580006017259762334175438939057133277162975958356142785700417454539140890352276157874013953466500938612866757677785896833565503647504271021988632070659479054879122135876556824189135658525448528100395483251519256939579261026744716621340758741764639254578251502732036731592057419720471135005401937570908774246397537512048731833862524086045040967759929159096853333851261322505060738165115196087859768557432368320002083204509991790430326870564860234875779923860829018412860876024231337024691672465721896093368218886039020992869056224273506458923209865760876643033039703778636955239416176141234700739906583741254081267006141066213784262288458718922615880539302717406389574885640600745638269554109256645784725156880646260907397610536889998492300122155468412469131384975914695913620588090407205554791556580513479718596830524947827065212068267144726731072793155433385521595711420543418080079745348204719669347659827738181231706369836149840345872618550462123834040221807293236891943964857335000531729641198512328287075995198936326000202265432103974883489847333521643557009959406273085212507638047970313196499095152316917184311631560088175972048404492181250728363436305144893842785277313961707791607330564714238954773037934490142259125546088571337925869658512777355659064327855132375308444615758720016531473954884166990061795736030023633929008327043950665669830261242442749080062942493237508929766956139657104667048391589736861723174578100794980110116774222289225090086276413062637553327943004725541995256642891175811540404275173382626157118156387331839331983677253614597293469024579234247874993784663588894509190401039649013778868602811350116174765665683476227225112358380686953470903998698815742168229035970340480487065372008913828334183671703586012119844816434485659089326946943932976613848681553811428845310949167683279526672178289855700901584928602449462363030541919589024223879934763328931134442076307314093444592998251823830146936970468654034581903576367144880906745355449282098140849843364148435291350823823935462679168886003200465071986481661866024605309370665952890680715122326230013082393323821538381141027682494465468139476084319112901008413091689084598577758107018312416522533406764468634082816793033670524599770227774149932231658829052835310154040428486826668697952877721643804763102798244248379313190668070459579976929721093506230946928052504680908734095027126351048041760762913009151306547274041402098303211113086806091400940422254808398029249192340912640489247498442782750638821808596890113286211970564502524394526769696622405861995522574383702475080897060520771069063703516050013602857802943832480360529305070257941869103737113273967203560911258542322524045325827188200232824557568562459575316948553443501075097292049902840531184636319453627082612785193563618640110657110686226003608800869138844403840801297213104298233809597858978363509138974862582675472983498084126715135398877379143416825229853292380699418201932455245353078399594574492543391533747920113267606208455547801983754996681293570576449013809490700165775089642269816513786218626752848269138125073104388366652498458251767241144165573456640145112893690398288576573515323125701298115330026606322241359446385378038003561223644578294397018278207158561225309824293381334311093112003849386610167159403591098905615864752858602415625166305799029850837238048598808858464766098159974887479591481255288306357201157763530742274665516484985630753674002659129745526681583370822684149839386556685311545968511426745650388203686782088249919737098318038386748470857198989570112075701902052424449796129158905013900802617028454625254411455212706566809877861540415163910610513158475490075897826764404946676826978006026196497289629538816964347330491749693198592044417321135421545193032059355071925595170330513996706780123149615712784885273929966610070682032018440664293582398166740429741747907307534983186439596202885120261115599422163178993054999277567059848842028402912285569885396575699699462739933474227101667983562310486076237464036238155481638923368003576141265677672040258484750068588324627520949509093939187341515851610283782472241332053853557287765567285682334427450863708949137030279158216855494241838047379434224117929781191396605773720652600758000402250496246887288093354599837283550913707394172011961640650143589437559920539278617564965180097332424223006253385594661175755852296592456571324909510354433543025611795032423334424083499475790582255599247765228107746165920770986307826754097221077203257469251851400611175004951855195939540987417113833695322086986762025566357022538983087435446865302370516122934944974767512303007191154679227818580310237459817575423915153847752777153976351064515138069271768854726721892335824207168401754356667000117112556581620910227510167826185287423238156140444921794601414357084841410175901579990863803392044720034708728612915117779465496306772191309711731692733486994417461575626566436384858448034503267777180478963769568350141179900627203463549528569909139518933194504972712935692517195689438787774595614073121651231174965289997861543888715007251121179770520132061573596641692774540148019569674015550385122582205453218183259793151839050233264523787820961377418625063431758839968295256479833165887007762808458550518704482260688048474585406491669681476581282037140994975628886923019350829124224007215806555583716325892044740089460179386923798184164072033593551548728372078062597043981842018089075024985921975106660460613904138152638889857823905769347813170780930116514295492725263594858000158542526208005137181513119173076935505893519966419754819832952287798264071162059357833113541534577091060709959453902655800930770747680042287060583109448490854907543507745915182655757710586350238927649313816348901297544396078780947464041555453294368514752576881601391715476767323481528533033306631718718356919726333324423731684147308945223712867001623621314386900971038246313359831545727921894068980281817734328667248944648838427418459542122889246687234655867471943684272845065193243803303090812832189904506492258739167937041941399692260001094493398903788212446739856304256444271702287918187850115894004377601176494909783810305073335008309800071564780192025008154831444303829388610397010911995107039674117626958793091587560644544461303594508595585794265156508613974728589471575835316221007600583526248378298009478361298959697510103371642282931229422309589847765070618840121267947868088948916033679593039972711589973424655152261338600693296900078726023496770072210376431873016932120919833025413736461138027976306935426430747176146094162469895357524175902957891486725258212018516152099140428175579143087766990994301612421527911109700719047801374016648474506073929666720591244040205577480218861209090082308837343990514724958802605341987207166187039667752856373065183548017876475622783100544373810482968523443781943163391820697554163007156432437810358318757049035375253907248512699071647041866480305977850706009825502846105377828380246963580302662147480442281516541643843527090490867457648126970591490439829909908595580826312711798042979147698132702302492454957473075977842010722578586672780642189483873309321423709727402884491213830113961843091937311885673554378761789606419305799206092134873205571222690559608372822126598050879288351950150534330735899562917555712914169123253133943237379857338622843515413879050479977454537516084999546361751849853650499279443502556387214116750388985278997219627757544589042783424181172392958995387365646083755283648927582682802459979386573235860780990772290506731169688005713415372033552019721982314261801178854070018317781470182587047883291682098708121290577245431674872676055114583417109568203876313663543686736524709505275750855029547466067764079714902875076635378899585400915550386571458166903764686731281918418874170760700176601580318106723915467806205775885463545189918871040919450886187928739464011870841152699187657069842445452574179996934424008735471303916712884498300291257397170873280772800793934252058449884428222798561762496307390126633229467227070582600734741685765904485453149485010795157572261841583937382513512669224221967391572299083875210818912481654975407422194336733838412780227497074839873631773719585653460339969614031794252074308806354939012660794484447842235036692969519758413587535506459445342932701827134704414958331301462653561187752862130741671325081938544224067320877107668812960296807285382331790666062931768912226843723971586877045837669522922946761794263170848932809196637047267332814834958559425090081364487311821344490943289433631869692416495161457661044173463448656959346693949518576235479955293102705543925910204483064382195230783337786984405644223517389190881721424427293896240701766400899142372361469347348631865470026271582205067268096602741255535789590449884768606625347599151318669090914239135288067071487412652117113202754230672308343185462431944960518962913250357103611032849908168102103762152784802065576339397118147230769196687963480628125145523181971261581445457676269812916746257773915519556353816867328358174880377185309227185292676456756608241831205125412766309165606964359881683021571171938562105783410872875339974729584973546331683297167322900913104959062724501968812697019710740014906297998226680641744919358085843511763424297861289125004210762421691614816771531761386756755918785730841884582731679780245888297985103442961804026221318092647170650267325262081718270575347713598142456684917309039842352072332652483043975921193666741937712828815355155485811334562337688938964649399003882272811647462134111803932783310894399957207569622381394186796492132437452685903884291695072028746021060615330381473871074206940406520216185864963507276571148116186154377536754406456596017849648773434163863471591275421420365594550022040316700455726549935387858329885414895470028387284655700737556156569407929525192532594807611695260254241718727708322968400589012557021572378470413483649107338695807558305538642397848825505892046691822244374855711287509936066023875610562564321636144832759869822825070265303241803131097238572779797124735464486737571201569972573792267475211007008352024436623413099576048609415223262191475684906085976842120036690448975046354823129840770544821934423055376636703396286856661340495864438320711592585012120047424151628865774300746850889965244324368853486464667592697273287357983906686144009161821501262978499804751212820065983823985108473884972032183372623674103604999745411051554969074586883202958379840873880762250730128302001927736686889054819967578788505891771134208756894605994118741243878833616323699535993916910319170229150836341940428162607913923746701173606121524989686625394717541890557947298486126997521234596516341101161063114473514417039684267924647278245182355518056780654026045237194469270951175334501981206533206583777910363457240891996806014836203651775994851142287186262262724156110799458774676808408025700489998486460028396593849716963467378293936685144665129775332009956217821178779328565958793037288558603546913081310411979885860381148326078636946664659856258548205379091359833747290430885685519077628993287936989333125197533751660614640440575257005352347866396246984353274759020885694036866052497606987853229494811346444750238334650849270763642141206833167977164177571726479630063832382386738072217893871828205115927624806974304930205967760459465669089155510331860365403896440444216863695746367092989049930588408946238209315936405204716893664584483681508207286944545964444103656973491198343036394237111441646969452632011755798284878907105468447140154381921151512750739665348368088592669064421562133140304541448633034726050899125611689714251012441674683184501328788024640477214795972880937389049001287262934869151058786290785752236731494994180377421270061377371605776869068748874267028433283124460595280104889828677054514514198995513633895640883205578767748923907324251300897940218655630638172654541389128454648281522123030752123816743006803363168032648444773440706960267414563873036610412282423553222316574833062930135814226286059773577726564500951602050315869419349722678099872254774957143134965787815928656874364081838757298626254693650974776662931803175379728918017566823809439785109990738653311427180745830817443787366383516998804457111809115557934872701311029999598594417462505034196484857890817335196178379507230403116654532187281439230530910624064265854962262841087598276415736844599042842807682652677630823730273181280694410639531255790937526852541941397399774626156579868910747122125131305582154356139954084766507856302653379369574249132741267593766282794557327125594589971927421615047588381860108510838567032835552427619005015419891389123387706901351130618504665757305911094700642382212313713508464704292373080010446556739843500999574500792071328960193188523009843764085662632065032592542554281626028276929964645147960099831758431972514993390609066894756573366990823842272169992607341014952134847248914667084716924363074786061857282000765141400073240358102257239525092627291332561143254629300451361733697928354297450223645622241772509858519009505102734829574956329039615653425620467234858913264113667737991936564542002068670531734292381051601187743315423402518327634024019604393711356312872144942965466834534485256703052123635724135487446926603415927347667608535233889484951939228676267059258855995138419335890585748221456257838326384279475267547097616781934332604181627032542356127437709525498869224206873074387275190149469272478663171699191675204566125452320401351409847043732376430161666992294238920673424347042874595542040039651682125942491956655702799461172541398310625146676491934435544361448409332907410772000753819675370908375733492502339227889473481205036005058164005670172319213377965687031196334861709754464848060076719112723791144365823386701594357470482288107596192019014366977141453554917179811850214325065622992262462089284456085638650305295101156500511597269520311217374326520074291512361759131317616653878926693530183724444450031706255617844893313508851175471428205352642039856765668707557818883468994314463502029616708186962226786608271668393561160376832911403252030356300892164510602085129014520427470547403999348479747579517068202439520730667566956284392041229114171809460653845215579253099116438274287849994673760242809627462022506908916421596376005043589274450455910408428025075999047316260703209889112002217430764100323645123257683624472528229228593523042241537780441745892968817379825989082188555628534361657298187271249158705899786949091188823709631898070165778513449850230943795032421660513257397915669275975474948798060275995047536050831732731450866758470197043912384408652680425662207839183718752892311732984484890250523231454427219430074980785191081749965962069846412655154922473240075241026865990173093739201194179860349340362738105332178348431804669406550825207734114914837996823829447396519491555856109144172467562977193390468223260832947893913538864678413157668571269588069511567715155015096044929629464153338493694706974079053944008992216534942876161871756035561881467541319484493624280911088808258334532697984552000484670833802164265396746047419606016503573918907764793352573529047654206622693339192217374529845323266972784343894934464036953266163432674209597020609531519249086896382865295531396382662488248455950072850249267367052622273211963763124125384787979622321900673775010098141590507179635240404090173717468429923486205764801005125166971306495014679420048704972083148720149111428929028694854557831021801406288502950291360380823010212688549056469672117946799032868993653911724837683841810040563742809335640128980227266708395195919407607981767251452599794838833295951280236264034771889889637300447967274340100519887550997344983048310477011196477560510451168530953285458499389158976820159910338107673405031594224342321525478128407497157096959485635794690977704903442999537690538789599145299721981156055877982559316812367465083752223893511027393613834141930896049651492239755416374765185699577666234321413222664173415600168957774109280068537334405393864693747806963671651341065465982313482443853260371543247487436835766322902514136477758923398807914134496524167207901460999888523035478427028100262133972314732291796527634725259819623394793205682575044962306770088368081988547006203816699750410108853399665543282386379054811383942824455819165209873220921246850273925808865323254417212387251278750368656482556105454326068018113810291208372287850590975080204188158788909526459309426953228757652245252221231668564113647777959167594511425256118505135548727871198644771513191614632392510126386517703659871244544380118196203365783556521798794716782180882525280977284336271424230309631220064322327685221881260173658834180424638203207649066850561352658410090551971671684623395526058425458184579385881296508816791400071187187169293671967257760259601284386069577005282010540851896407725923667996678571182550630303057267289776907651941116947116381923906859863643950842626433027012723776059329166384122670623250229696321444016618042961848987319233575025680172713306897366684170645548703460654165012423877813240862261487930611423977592887727509060611405751933034436525952634274953384963099550227678447168986451779434969750761616205539677455724910113563210869232733855441228465401103846451762108581435887186619287605016925936091467777450240574278347737721073324478391847984999988423964426615037084412315987292187385775281339602155431558565206031117134757825667223856981177693563819399558612717100806249366443123324453384360984420114437496321800894665916245083729188264672812138498990972434843214045840064634357260746804558061885291693754100853614458779341231871856457262848024784771040295438378182369470919261468576503304563022165032559437115012524584504420754840171355983183824360688496827300438916278950488650814050720331957732778260537294122618226337165467168544060904929321394813997442686988782418434606288026710534878258899272429724798133932595412719134504746230328097396611339096039082024866237250224527089511208453718568764268973628088473799435596951470719810543740494868296473719153284497129943004270378580158636836341451912866316200233424237397412464063453031700673839514560684784770976882553754915223470811116116426249784464042943172714677583375642137735073555663446594081049384433667254602425685438883065991606265661338141327320584772913239263883777596629041958892192859207869005272216936401925356274221819589331580489709590247709782327638676784826826827347283888025065742204810898329765803104658053911029371953745743146574152405931827885818415286482817205523279778340492069548516411125727427554525146514708258039558971384476420532647476169784725934066827238488844434642244607363083455696115115136683080902419589777624033266753425799336229710613449469140724045307848263456672944229762180340489537991506454249104776826955553792528515596261349864616088191836557655111951853803104116548300288541134542161613440560157349745137969676435321230299221084180995752387210223169792282773966931663928168788748073579870158903766274978124008273808627586064577607027840798511922810020917320331085816018387527131335154441934089873924706948828209581147804899671419723571451738080051077948704212316207776513835731259416725746101108565692849087297328371091332443202300715189130917790948301762910483284391042273908195618433174337411518697651022186547379385669654168289034265068359831017213423955304827915345668776248876017920202147743271591844154548190539254236489783804727831082813727777771795392558230893976339211284065521750974072172999762655563173780733252922948622501416995663620221205242804844518437349913449047160322189347276427218672140254015771961732673871080720458213879765147122821365659720175621507439787123795975716399200443620088758773622921761714740891009901534586708479689446368843139925727724278105250200903888636434560863382046467994660543806557284369515518006475686349568447359379560045781998577912464343163729594755901914521616275209485575270199793236094261044800749989566734994149139217417323361112518365771812614716163116905815143335318358248555331571631306922349377223400940699463683235984928134411960758150345901248198870222042166337071612852773509185908506962032812805070674672538576940021026756128173027843303254795692458226458006686698611453383835880591515086339395310676595072809417192632778651413514613080460399914255582520564804805309309742678542674228542206008762732176709222512956635469200844703826938862322676799379967176601796069124123709377536078432537491167006898192865299780312009083606233419409746705801365341702188375381770396992671478382937282401725625518247028159680419483483676254250220703052913291923460871460789302088088792088673806782818482169194411049626066483968483303393718721982246540151787019602681415450061960488305657856546905951257561341586157818277674331577684172296337727520073141392510545079321394171757652163852832046111620557780468309003569873107283524223159890323422175811404950898156299224576598567639795018929251938951291459755592959676178692032762470694082590217086659218664262138395646492608611048157792518031543778658342795555774701807221855181824853690312068796345309152972054124068725451834720319785697624806347891970585567384674184996677777500927692939060766827114449364625014503180168822719269579608940733376438482635969709697695610467686254759039073443736743268211287062822336848765855334908304551818275737978030497145993228725404303112734992623647584271173292750859100103925049252283359385827821273806521768865916573274195988125385720873900092769733331405048434123149416041116112292839700136478167607831097319772604859555097748412507712366558097327373951695198446033135687607782401849531356125196566361021670123753827301982186253253822149764602897239467546835355101214402975396709563807318664513468690631374050805675186169226999347948724134913401877795619958234910274532520948472191877797973415212056132254240727923154311824364851066496990548676955987107808205967941467715102159385510648057099516096389767121593226129379548977400221989056615157788957048990776870156767572760604249937162341549993790861345818652175494179101790021838008387077063206292721126963106253428347083882079432695240762182511777256776368771011073296242764090226831152955147959440070762365129081794048571197020429530411291901740510557604689162043273359992521380096733836120600360010697299223601566225618561160461787357500567366841210111728063159399411103018478367304986416299312919897155679136668254757363670683139424052591691313180582685923780070548775236139927602305182147482141532973431593215282765941329967174605501240257683896075822877032649397724827285600086095764934236993077614381617878685429702085984199392920187662267186775877705316807863956038919709457634185702222576916380361642603912031681618973638970528972883257919722863425468531041613805273393594896133783529151591879085475866727235082497757771567126420507710245133576351669892387163386611328488080771863786501081560755627673227782048594219920268858259436577301327188929452428903167657112908835666137221097992695351729330005775060139121869680308316478785780085481170930693452404856540863643033048176605437071718928931994635181504966438337743142739986763690033141398177549830369830867089958736158864429301347404013199928039609196320051305267216051846138376803794467286176965147162497608241397572121103996071541313089637676413890546121308147650277562870664121733701888910653450274504835369508131154134173975779821781368797833599568020096229334947125974657454434685081504324730606677665397965670466415447254096885877904232079364089550828089444801539405231248447799651435686245738315430014569869273842669065893570393563692873589494151724080989479325958166110341421713613899827969466755504832665679935249634934117508905729291522519310046613637526348847886049215117811546700477518938569147902174508317448830265794557060855153472005433248332049210188561826850343949385779680159746628116541831074380878238818192953349218545445412618870753297476248112232840232192750517971758480033990534512707021609842958532942116913208610235748100160974945123890295278507958008079972215971436520294274632322969924251949155511688426151073800260404760606715539462121461261178059391611962439720540137706716241008424207146206894211626053641649637842801263399821184316940377835735580553488911399287625140508612853827833459982433214830741380273190719400806659853360638493307499971895142786885903453732804568067897504598197491857141213049315813341801684976015834967070464298330437761495359341396098349207117344648266132588263549339786856723409292352112662165923213999477152064692929279472204301767428515040918371518235919629756387524927466385525368861674689495429826342870068988766278076059291500443599059929566905810738855821430843284836599375514402652188239108701650474753917834866357459806793164203278025130554632928226648558066556065325173675942069369522965333734720974995596407956637165187760872622090127105492155533958778952687868041758679708600951024282679520004005153600608952130049770253690778731567838844411693203184104610415436305724789351780479975048394600429446450222308683114084811641554371474926082879665315785196787080393759693768756797192865211871649474770253005071132945814384263758719130703077787145976756963070202790173745877748187184319999780625667068133980815655758226479065579287505408904764337018510738775223522206711816945974491077774041687486663650696018665761403866763815197400582569753043314037828743322444086862638970853966680762482645696562691082362123904226352819376300411210230294181206243813877021558677022690087110339967844890481835356702654279633505276204256997744892826821172478582576399216069005320885849756848828456697919226908043171770748959008821151055986636806705030386760949220495254817655164234460871311667732415694069792894481437257158435991161794690606580205975583834948768587594311514445858589254224922558096837459203249280775633975407320136335918447638795395354297888736023922313304377370462452472491270813443271117975747913523128730075250346099809519674871390761744343798154120216492792817616921437688916037549629540437461021265379488475790104878024644435053696723368199279754892446241073606604485653343693081717348387070211466915578858159495222851283918015148268915358418867602628333277606590700677555534014992767492014842071061569423214550124281033468093135833223601066847234759600599818903891631362279611195552776766124729609899732534157246438068715239363538713649582082805653826806374349952241012667890449188918457734576483400131307409922060820470718017823487929152019249661353485458207504823107772575807661549416015604055768524191412926050583869107289969588772120142921830541328580639265139318295289114237968187738518084935461009629523546189786117570615549214649443675656764194386369567144600811838990648209284005965686410875213117764312372900770502214791900533930722383253234901339126192122252191180954951169864213682816995287430627188473095960308755406324656778505151467676992347117618788941838738199170811937535676604019077221975903574147088398898827328625452078415615294665942673678633375064047291610142381897233469642806537901196226836018839359018729335317021545120028407984521825200293580417371094702467352266221237004294305018404103195656422008364394997232017809236879400717990713384898067912889525503548964662521894376608482794020705063530584625858841529309922918077963045773797273487958307404803248288570502634919261724663740309561701175397440636637909907137609245223997841393657943216733257809663128090690122567033247271110581322750185854272503518269221048066683466808954090931537929433738509332680844395063837100586621490691855393956947069723141082811631998921099201458018314338090732846104461556364795046466821014569639740054912012369378007931896584986873566110682946553948543312507031192930989130077058820266256811357439392203138765889364199311865004772560405217912627831475952003825574353360756465418125854728727757159574384833540781664816154993944400160687447654776766580711728421848382104495269855800828565854926828028679036337666378249498065228339865035077376680624922428000399292204964557380769537798541342877246270890812280244349675885469973262769825605392358160643546156408457875378848914212606153049695586127808591582282578057590013601627458141646547606794463208702912501737924199692844352596272456909853233030878322994126071649791956258496855696222312583644471930782388362700466735825768342014585758186339268751634788466910008671695415274268506626690799943694075976162399702119534617277049341589237212877244205616748145314019055408601680909966253408730575404042646269736822586252895799024613463091009387918791303345436204329068136859136552526125618337447777356768747249995769119952501799172211637115782908820700056493261794596240131204320942497431372598021810941864526588222988564935436685661720296672613779213853951807554090315568032685302972955927843297405818066418876266205809218383679582890777400126710554068877327368650583185534224578553681683081473050119734318142976451932692203699559745053959669199114828323605053744668917454611602873085371156989799559983806282543612767529119724208408590762779313857027062085716565332649231148341204810693777377027002157906920246356350540285129050167635304030853792549870603052986539583934029197522005628530824122852180889755175581746254777388302472519433367266330612816915027532589842408672328609521846654335415285062304791483275949276762479176053668436408669987057258163924296825410222241328168124713501495957093886058954179254764289443851605280430570596919431058754893917409184099550017488910090412465917784103620585292163806110920798817752569879958822679728969171911087360480043926916762771703477947480272545637913448249856149801732839471772272058100237315049100661262867626166624601859004390936397285184725398779233260399468303308874315897345722931238036797864694686813195978862629617337150516290905382112337824466041708580400378846423731490777539073217400895246611826290379725748674503911955339825651659318808167856234535085722530833030341292333038159403373510878313764698076833400167936832832045580165750377880492012090807695835982721547341098401826594678309325592440957664691522130968995505661272046257409422802355477294494595021262307895089256737730027724504768920229233539669171075233708847736142211899496755831886239161156706975078976489571314654085662961851491023018078576195477609149980852642944761918758368999121298488960739376837383410804039842960568453539186561803933001507548714895731685794605839688307437147651976347721722665535463755439844451933468314261452058206222512190369634716010127935446226136599448888596630951434226564899980054218114987336166727160869232482492837551866374839254713581947841548307615653225462849832132675677180539638484955725064906612471832928116774353332528137922022097148636563295772979196326500722773966310281629499398491134199599257437309120821641926130429450402785120522316502371381439835002462946414421982381876412055490442606771493290038434557791704407444982308550980338300376942483098443330933307555339634620992962190732816534068152551178822546400454959489645991186649098010632337863600868591390914272666482233984324679444657739442409373499106074516430343567772731607312613205727377082107468264875589647437672600943525475088424073601053092816249629974184960960521875569180611439076714129478883925178711564953160588809001850311637644008166191419090012810594961562583744926715003750789243414102388984128610776845394773859455409454924661758613361554441891352563432480382615416851954678019442673204077899110809091327744717078487188150577690861460793591203781731890256584307482350664141741695156321290495024668239439843340929370912517570142144163694578819941352376287904769578981023889224783469475468159145098863409154393434987613009168038873351358820980394493780796621006978081468366919349922292061006177967258282333149504391689227723171316346366001065750017678990590303400096849401556000243394880129492838929751127264941538467360064316455670514644429726946797885792791531055061156159903020448990877414733455153847232484760575470985915446554978283967471117899275683318688199382390593235453485421564034186600677903299279002966151365915144752418272049853864946272713247670240090123412975831944196614565134841597675965929724924763462245550726646427644689240495323491346640251180403577780050622566861767473866657434945660129810549952185651742779241350812574505603017404603708053494176359993634251252724331041717929806508021045630529471390327079548759481999096359460938923551075872111664812773497761456559880203070441733040804045955097350805686432340564702639996603150571023830838446294677079314264129225764822639337371975727405167696574542477795086335130120714983649721135392848481931475819192635340885946441059331652812820373752658986340498768579053092105362981921572967050330830770119727441041705150751681097463611964337847962873631575537945337358188332841627367028967323830536453984678145025167445734766962557600941323378798233114278350388993138650975513230626421613148938941334673643610896593721908665504919306871809570320544439827860012212349628268585220107558914758219474533781175505504508722299183300831474202894462929971975141217662339881297825291176495524524038234946789467714564261661437125509411325638641094795959318068117191673232122838571285543393840842301519788061680013543052264009772841775480575040548356201879430920220491096110108044996079574430394564608401843546343438535391937391708016658767031454942278328530464637504820119046261093283482472644315793514026114851612295351531864525362919046436672876744759135777388024920372057213358446904212146355171165040479871697648832475803749442749293685942755881878646305858856237120254511803596427946348688756673267772614655634188607594128087137947975084803719856243752518605682913407555577299664269485232959667382429150778783796944755051856301733403269636212537289288004405116487110850716430011456032342141116188163035863436406300724187934324534364850274898362735605009641773769696690285436213023538986527917640717444214728083385669425922892749572465477102203040856762600986948720481916572173188159122960183276044001948786449329870526308652640572856106616481423990021790092444744333461384276405169552075342659629995302397538926870715070973639417486265845107637527645190533891438585061846354329364283221512911726449840278047926890684028403847132253735030350425827803795088775807030510473814284761467082805799357939358804238604897788576970997813149107257134069675197675434645760738651967957546286259221783669763131951749165857954609224216707981735839041446744885207055559872950975454844214207813690513091342191062488962761359403220797328086395656714826643501613392992136169731400507229754201633931263689501935862224644953724252037666116900643522912473947479173819312617950373529752913487952019787420755500043918466598969981694119512023629361591959726286628971784633844560982182598338890420030566784052310246978867978451927377908259808978951634692296364078734948664755779293668917418705872226993195415619177074483114551332689824159416576096903639780688945725507578483526283824658784267877751463805158679012352276312900278487033209891968673143540256188824544555545872606491307622307078668502614212074660342613462842884593379050762988803971379956288904305678279018028551472561411606927118329215591037909500940025398663705804277073140764556294023957753723596271528964048243079751449919749688290971124084252000666873528107138724812925708135207688117763897902465020513459870168854241192291353922951782248502673530496926081106722547729537072672933192439462694846913199230514218287476863763412473988875535946062032285734069164747292122767330448945596897122674131983216321419017137820826663879016899268207464102059450884519967182829256737620309508458624669862021432657975711132314074560979335225418074034224114037662666100883910603799982168704140925566316771522564811037011740477308061631796082216299657448331254277741257692177878966932093394048903213764548968096332263459572138017915660984877415641284669383268894009572567727454133587957791216706016694204864436161008977597555662589425754361354764326187699848597136479094279421471678572757522569334275125970832437522125666861377664558013233081226681019148614645114043185202517187407209936582915683586533048263669106682048465606522500827214022103836489766508418023249662712823288595305462937829872115233539979926647176028628305029354968892942797496743826430674624806274343998780406718729932209395116245463496519796741574721991007164213799786801956019131623256881914265879417752339510791748335847312912598506951423415983776482970573484707549299229513102114372729932667581106391469201111295775951208744053147483946657235800482732682876374112979949614517897249662347443200583323565608340480968201315436663136217792117026188066836593056560495879882887763050757764048631333627725688673930046370180550202578536623492982216374887839002382138075884681039240713166194563356976191649927026566148922198323163212430793251869389842353340916793187092128169811714859477731855358551219180507124130785218458010598706250697745964815696977235454191603386549257138431312819117686230358568439361979197130987904489297620841270526370691124698757824384271893083687517936308550136895897610557418539497861975915189402902659586017903150565510359127211918703917702540494674363852552317056980492406190072949942701266941925061660256623946004392533318993152386031157692442134096395229451502987723872299154446141152820626908383855647759456720207045815139103582507408697879357606237853448241755185296010987879225217152536046924939606524808912632517420585915582843260709570387915658490964826729575482385141391162082334028527182790985893805050326582501288342682456319208045172454436232820910704115130033139354907462038948560879446528238133066626270277992791559153920683105963854429461499057034978483389532378781369438957032663983611704753785544439166061013721313330971248902864162977342103108741130725449663270503794186018230611274276530934953942603126921104067358753989459212967649784487544108458064252031728074867384323415983724527677121890892481336356856688375138863236371576154960517651959027866292830675934209386125513896865643212911107135299438317509418067907165290430309059047096736612090814243868664715086734457541191323285963140651918183673470941143038768016058028857840769581332541032268629459509550220930977273470800403068349330109565708838575773558075171464410834849968452671529835153574712189247475516111958048840057915354464352255439920800116146335757289721917474866041649403635040182479319204741444070534588294301883619244129446575948460203495076378843169373212571413137989181747705694082495784703554140596599393888407232362372307892208560635905838814483323696618839483581925406991093427938573088948152906428959515701853288638530790187827264321591129648226418192881374704667320360389651057243132479327344387108148783243497043348974578449576035706145962077093262685643924313948088496407184655421272261247987140179818124778836340020243318475994232899604542178850428646971033970143524654592058540542067321276770861101276272826883373246526028875271945000026323512157250539574016941932948454440279231453220837923497426208845732019935618216312619101271202685821542717986549372740992565335618278392896510719752601023570174139621678018417983134623253495281167293354495557577082380526919292729408140325348845734951304645818298452198269252521511180034242447205086598619020169905256825120881740928592648861994239501257038928430990026956620304333800675141564590165077895478259841776374294347876146558806090811584712357737991377202130287622501188251948285876465361641557602500274679984139670141878957219995650227604575744613210020155209722872584934240962111020821614811866259606138081327620240620287691153564922074575488665085079077807895984695998234703555163135612097852117614370732336469411268584734065745452235895413749012943543892944668901084466612991906206525137245635473868475494384139906805809709932590777070311789739903516362060580473500876442684934000665208901375400519718566785369014437012535971869540199441039314820140958763624813356118494983711483632314503431181215947201147046104678069444378878580612840132981404027842581770634069175221277608819268287807088951553516426073342257008973102109367062851326019583893110590756261355348867526126076855085324298508113488014110231697887205459576983720900802130685517284888903110255966146781866151538980118404622309772898796050972976858611243864648083856253154814352769657328633150637056921776749886601301120184744115941923804615064049746816750294859995892267342784947051522031912467303985591625242563879907207477280312693351005003770945560424990911310621377200307066457634368028609451089087144802559135774802397834337041545474417337763496751743633687552372083650270728143257096280305522325622429300260286669526537163173695233450785370112581174822801179772361156223801551690115562137997315890904440021820918588493452580962538373647056234589091876697957937933264545126501302535566145362451000389816789356682721393960189940148035746557555251186159542563892213470540782640287754705250811741612217407637938943492310245739987691620454702940873169836875948357306043247249250951479717727344910366521577654843567442235580676473671338338924595290049122458584064974592068762547842277230279338309545548145956800866158147504213950283055548198421586824122672168669894011980973686510157518154631591907609607074772777785119042301189731884910197489437624584829714856401998671274366785769558530413325802338615240809379937638739138307111699996084103978922842210617608591297667872886967916234150617548058664630754207676441568162694705022769693587414753780686187320409830162284822222606818799246146626542174706267871759146848301234719019344480692812593899491997442736274675425938206542927157948528101813517713286049725385414702495313137013213582927554583808758034383535488309706922416011347651885432781408424980153042113368766066711405412895852930971848947253212395529162998624794955814023975761201335932240578446661101489484640138741605746500571953200318645046371138426171759109141255770998120386733194274829141952608263661815815037554304064918788098174267500040077462551227257733009188084811360359255096115996903519221290998296780379220714794836447177435189638684415067166877212135254583298918693827357467802403281994069627872965185090248780169464306824770438011690932790080208076693033977574183337980411407389085451863631845499344549980731900755300352651932032582415594877402060256684924133405681559043973571613881601859994134150083669790235467915255650936235884021715199081676790858131200392464500214899600671146003849327006774073364760439968367066649322270829458671016340009372207853318875489842973258317393119629005457854253788845559090035139377806826046261259390604055419399972500202225790317129824637283209397555252700671361532056550330653058725690690726343169709408682616970744210297345680458123072256964162680733318907450398447793343329993783818050725514483549273518577664239500949577545185938612655669545930705323844952801076890209730021552014426813142513488290100758500575910323643205252298132440301579313859449537665501793350458498892635204842158409462961757556367167444925878438822410473769117363221057969648163442112830783715114779856512969825574878605395663573623861867317427420641902788541306907357649561418902207005338740294638715660626210718733702609216468394678966289914176611632924817088668584467251356796055820986512844298144591197263445367978856605506348296937717058769733939963755728199526672782520856777717529210509485663076097368298379696295278714851345870513767135056599248168910699737077544439493063218205524258492785048572797632853640898439528759313089858711954779627105984321257009697557135638360672236295332349815293941126635335314698681151688096279278273420559183643931670010638665125727940921605195398671673346581269234489206878939626220238021236083553405819984013062224660419933250892441905105293550804484521582601517172070987362284843836050432310762564446471235670386826797834354968468266436101482984864586921213881083272392410636036817325058006767951654960531245821285724306153287876612429383783883388088121205937464753590118362922275327527879365123972121181230345203916960628332566800423877028575159054949358372513465140334265527294366276675707231105534656071157397011978671846124241700213627813366842484213889444920265532509964626094062103356195547093976731796455733045096825508247110474822929656421429804565309881595197560885231637524599290325722371076622513456780250204238079895355356106568520049776466219669277714063055441673242859321376327324297026653078209291054272332385192156453498792640341002580313355678999839875564864530038849127450450061732831766262869097682690343478762266064444389866849792694117249395112165063839215517069749516725892362366945011371281701952758614760729976692229702799389570267971944277587750056716138073650317727873624709460611084392980206032560329445618196094035929633894124254990562923970597775287501336826133860487636989676581109559063440409328679857391948001584609888242449104769972011871117344281436786631489111288523725622671607629621386849400544959841868136529548808332374755341261196649272197968690294445200427718263266946946550260330986715930963323745620140615095939717456824589677676817617720878699601729717837133625176679953136998669456868673099448920112117010584136094673700137532660237158492488573531932730181400269705079672589828591750317794491985786921902645356274763025039418423702696561487958026602293991825339616403032997248020617898489999486015358854440450019444075620203233397929999663926065784086804860352633014974601483821222537625125870792341274251670453696115566093580388663760095612146797128610178837871068396469482847849761060415890252106094459618916765551259005789043844561502756203303215418008874759129841692205459341482220774928437062206366391796035431397854934421836126795264045097399117020313922507202510773323186568904459516179522508073054964013591532640184098461532011080762765918618842579641244621726887788510418978544061145641684981766228089732736132725905520904286222454797551209925898731396129018574095653315450201218243246480764869363990832701316407606696255235617980544654003936005096486384707951075998949040186906085351512727899640221257495822414534480999789886656394017437373114121382888820348525583543541587191744976756662875817196729495196312278886674331501467756140088606029427670924974406327375403251692004200600843607783773913151718257951525474043729767057578197575608020775694180789071915658416240708056329280223120997811437704350386450244216473765277021133445452778230321187656873125860285526539505413263883560744415717044384605109428007013011757155985896766676427307447133950262175535067612146403083542206822451437600583897980579697365202091370524881353939198303486802948206155221571253246191097656195110066674228019353489558198648906833629174804253308772744073464628909754567887136772723837007341511286386963759036735582416793918049136503697262036452146384658976159678541643181179146730999920361253766503689420903305859052936116403400312795084742504436729281273396463405459400883644096961773629765375701180730561814219731796186590857080720481699673167888820066626615875606326288440565932494954381459489890290005691988858985822299740949341695565715854717524821070391941307150632101723512706308895535768764845661026162007619640852419223597306819967486120437874833319600537499798492058993550559710909348461253254564447526329913255831061181869364986701781401837977708733612675838039676958470015351271759801544011224767508920172813943712846814806554287115171855055786779641623093515548325586159855765420464889323895777691181059788392356867450133323704529342161417422205888528467969876058975580675806774767007408429520731707644643367227469841793636418425499527553659821515698474342137031750520516368205923991838623093983536185445844019953911084636295560414969936960560778767805562030298151755585489786665460820176921701838260230112135984573394849827483231703565503410098103015463931430082339869473526600336186811646305165431726157566932437994546183716362941644126293490535339806610395918471807464156482278585567228524540174698182883621919673262358476984594837622798222802896705933975923447370952872371035561541923865324062838618695427529441361270198321644426316561840353556216790989352618169930725864304937161105528432154591963388871019560362128271526055620829160338451143231003931157698361161156664972355995666932254384283225244260917420148105373127743843874296489392996878249331132491935232839868603234168025858908962801859555872733212825055547684432600817572109282623485673343552620925265626900780618494573117269411258415392901781142986585629953294747508603189295679701390402687674540415313483285964687599756110374993819134823772890808354065022958924730095008843287448169232438404586905981789942282772379256000967916619621821082414030960361413372362059177996081306676666437256224312377156066355175914712715840262367675488964932432308339899237049430813423406363634878530492965760980428134347181148134374932649570751958402658412376908203218018582986839645188596410943040083190850954406630743189030785150730246867429121677245212816636379875490119522382298982172004777088819735416277278065708367926370142923394782304376059752754661419034524066426573053214203031086011790211216739005743033232713493708341298587275906636869372380540770832041685927480097219756994605228458735918087190407548696939605632558324696892154870526203882008419092603431487269239286045238899665065677822152984205612078817708016907988209083598726686466105094229645450804413759811497413957053583271154536952947927399600920358437813246725005182303005741673975406867510341204582149389689737228151665298756351146304951402103638267261647684727208958380033822518473003404948115647921059088561403326945749364715350798547031296479859567525020962624375915171736089663230859611659985254945787614433778034649501173205589397103775488686359124592498849854329609346933264354302601767721650934498879383064136477379385918229104403188608720120360537220903142261479438674698693088614713932439715629629255100779846002305108462008283841142539158070717566870296274375364653823757844937738705852393184713242408906211530877846262470600375082690491532723902427927563783660202007832898524432786854259741460867564648594743808774169338981074378332377300431694090115772035722258449677755822602191432930737926393304079214210480072063905070440554212435574491196188781903861279328346901859451638406392267565571067741670748579341051012662013456054169708968574940180880210254681453502557101165436554798689725841142271961207900758957077659347562966750049020472723293745828972932037161504792290365391028830740342992870702973425281771218335536420370569487349216187540715981145465512641542294469003322806041119964332406179185462808312574974303086358767819985760075508760926885974965588094678122720212715487415160464517940015650457273056237068467666476318677113833361673737459521130965915007597240002095918574988340447312332226125150262541995295103090178378417558816961442681388958005870458251587415074686952684361718488086383250715182034450256983690484468589748462153890562305904240487029972926882607756627939143157822944031499852260905805984252051121001003822130186773238938979285559323670133301964464222067832096745727547121101350964097897770480632813945065563425071818133908814108482775553712765761979612829381841064742933568784640682785865095116854878340705363156540069225415931103374891953833592978167906708527917211962137906247139721564172707754492369589962581998941610159974251587598041190703173028974866223358072345539293095307857179481529980855541176601556619504263432154953557587342214452749872463928365803552288066893611602175196401475182594267069037568841908631600431521848085629689862996737378720796547498394320945236256324314337336267040095572160393404137469911889673962752777034247152698307190937078153984279025771592005943692722388545208010639676454051057674835295861720541814599738358181785170628040952827312151656200147198020237175323500821850950392472080785753946710122685115331396662636676636784209935874428931491869260494378749170702367461171527719983139286376328261538607039958067831686198740041343868626659525838791000850660821708674718671226736911780420020955488645991816924136714851859511376249205847422286948487511213718857215000146893290869459113426104751668217447869247623138821357394115558445838061406048596706114166068071884480561819644207591259920429097613488178065358644100495176624602108108972820431121102564620803918754161569833700691199555666903985838371672045623687233151464530797097740232938965787439441375632217978898115029560535451717669923516474352667218599964788194202600501160347538872709867824101853644004748008110003877206065993311000494250154438598825974703246691014224167668412015464598699591428214128918643894689195498004175338553379041240870657293403732921561311482632445567759299183887660418392397289809122947910288022189080003478246901051431177775700067301208609817510819789942754012338312821127229926761797064416009555163962236799290854176317641858470838539208512816698505350813924702529703336228242388619357736038110671670378876757766888089350930616170534713973727952841975200539888777503715093875580682459149232939868687234967124323990236931471960185378766906120822675658868942689724615446317481484469232872686732756720392581976396709354297941003004642116150798427710865737446017761604130122798395795047309407493069138487531415798288245887946036711952010427439084887268171243313415430954650460542681792935014608228295378593736140102507255429896830447318444359628750676980762483447476925681837951102011847922191767446992899198870801901966107466968223702462725887362014884743980412804738186169520883886684805609410074868604022753982762525242223243934037543721861560284623426129607912084969551863139099015126457304578341876504167341806752312770396925453902461831170505148419457885880804608133981511132361004052810265715153348985323237548614714151459454060148481276207381774556128951429805917621059021885007622790535185799059955855325891591235170716764423556248162881558783626707584671054207715987356525406387429492500075086631815707193177754221765563430666549991590258537846439641120297460401387065800616880611542206995607969966803760747346847828009854786939186817663154076267896290229995186147054123811005410832181674003905795734738432512190108441182788065761013009689345814014412413169458520557793371467742498658845217716508046421356305825769674157779496505019554405375940109755354024048635764875104607410626920722953798901744541139884749789477098375302900045555648947989662088142621492467196287382774192557222451590223157656986533005028362383100808801077892329826894072027629988538003821539438161715021457240049607464659409099565892909626479318525099775298039464709784558217357729911930164142043937915266053440735237340480149535673837831820818741642077839757571353003127865933422604889804952151146379973738429032163387446044635406859689187555732148614998534513357849360594661242353825346623308549633771502578089510577602300597897117045393763328638057866944560210491565146417169573101413784470555240141997838511155959484297941011202998470898493461017593581780910540075109751811396470723627483584495186826032060577308746554009865428036593782462822884747372312193527974428855769129600972500423702575333882883097724693798729277888099999613681712484376670766684350601525540036809640041549309464562369393320399602728161271741269206863675827743875105560996294221697404065123715356588591816576200427300544541078885116833758511063751420698136374945595919966019454758023184585470531158872737838891917843966074560231979597973000035425620467475913978573567417198692175474784223410486390701140638767760461343283713290629439756395758271007311734130246149286201038034219636016393896523944327692715580654535843999172405168928724681386357771729931818174071448255861640407283077544576717209281680993081300119831497184233166776584977892951901921076360505159864466277589751228974691091092055824181584545917974840480495981096836247359997432923996997982292649496266521596037916937026831657809216899067083837046882765940297339701153978914359072476307541708696781736248688497103530846184282325051065980178385891664088367337068866864911276995531412705902054031479210370244350536022262105135758331967167875354307255370385058303085726623906148960699858569754903193996536081896596760542628999711227271232919816019664709795900629188870721759810172394099921694429370742067604596684695467871043079781121363791939053470840004039587848541365275935152739788579639422088488372932801181985490607220924046448969458218652153247449155023678934472818441711708649594857132723645931034611038221213774155661841690375029822209233994633510954352235706090189000355142019536974658238153018783900922432134037348249402362033899311459403389978305451358657418568457025311022905539377586265027116749391400311413620935386443212383303648811408753843757376904794672369633005867161826689046892337428640038530161574866600613008842408420840469653958198359257884274886129046538778187792989735461224792443793593375305411223188887815679287683801417035465594308924050364236940460066530877753095277724868487091068765686830342598344051963258202171600175673159935047199487408809114996059125973484053612606458030419903282083187587977929013959737955742887613078167077627066604494820352197642185110475961853896479016648193566739098019998117757909622364158399627473568869200094069123655151880658225258501853813393344499674588601956794459206913775550387167969130788976033898025999774604957585017078688893859885150053431205234551486112245786899288693636552658924125347275423595505880620870457269715841822158989921213398214605875970116688243180653468403025637442663292008854545192443653521302574090806500480439488083110060444275054870243530744086793826133762450489094209567073389256277924834204296997719303542226677613886955107386822153170183247730258527592717824141249828637265126422117105784984869128870163132919799606804683151276586621399084186070450644894080882167324752094845295087952530839767185844846797445794961856986570815468817179678741756841191089691818712270512511783943844012811926766761400252879647080975241455803299551037921072163008203538815437358031522741738149308119734321902477043993837985962268468526284755512693438478895793197912255158254033474238618776366545729630471248087575572005704974988985148070025217879021080093170075638922173060880139399355483924145570046997111609053425451291675176958855025013880692989967382537994839642223126726143899353806309048729813604319276991618006972590843644351603267942496873765039861345521411757980046686539399290358202967874030121236913966605126307274754183434891509296994998834106738633103604726017985747254676623448960509044135019939438641139532899486909990564065518793355809660946115945101640933313130173106671169153210853491825249227751226805593338750821952301496637119729131900445648015483005610541826380445724018596776471557342791910676230761917364194659420889080290666140837910605152020557733275173889529721836470834099472715939425812943755660655075179636088565566159020567633035625622040768781119553905487065211648618676161901153078049243998471610338276215021321955946033377858335564165107502846735520384962278927566374106607028727431136624277898560977099114527189579846675411784106939093533946410245680402392544637991572456350918392134776640876325460342698075723901973247982394040103321739901301070065114194420524356596752723769300345016614873127170359737215360769798128895008981904435863820085122554873382043961654549586656151684009283208129798177539377998239080512486730999009325190608851895704156674532005521842704414596911521866377057962783685916655925244675708077326859063509332540942088158796062080474059767256715295044941403923407603514972371343924022638158559599355780750440783226499509628166012666219905830236940784576372067015882820621665162972334895838507109178094984971523858848217297889820346206095843796244277454399473463233433082474924839019097339310123455674321393049168567688563344823492317576310876367993908085200278956858193784407082720756672744679938644381451133871500731809605061202620676584003213577404603588709697288999733543948684956517023447488926040997258783037282465191573659608105354495616416942274663900846889226945371169529711097938876256804592866401775715306329593908242647704525036596670711506119638701826781276870382510117106611885672564672198042543617601815641457151497976915586029817348982387216522210734735568425823088177103100618109096761584345063354894565806812870561904781930392110611798621273107137340741963266319822663058920268801588646160052654896657470382428381411156328072432016976172629277964903961970776933790137643404586714543488814627293337655938387196157520695661633131326814770308029756976543816700153910279270182924119101687980710720505533893151051343916643237797698841530953739333562424126013653643986581308382604988362611591434768936025854002391174877480331293685942165390918488258976810050581631753974873555130045183940740181673743077913552476252151702184077218352320721248493552185004293007453205749669168733526955220447624546825742110668852882155028494869096288667518359886608106051133115593318343416526017946291705503989452969561067984496736841322847116701630197232968692401109657834647799464565543832498635801460521531784480691817460672908443875257519296635722582034327943104423807044294430685382371329804235950100688181894736037581894104266474252813157446769453007637095352607924655826559963061612450303090173511878926869462550119831662061556882923101521977638187834360426661956251333943628252776936920311183458474373326396303234182494879275444942030584967643551516665461200082612312726422465800679281943165627927311634331355997434436853276157501381076868133866943389133977705712948508501358024615612827567983830592789571994735277507162174424427199125956018798478885014538055486476029075966826926368033489629893531559421878803744994527770120156700592625779710328479199175008786856421524401769098587972314450965542232098101135895207838946488253535465462098684184209900143288322110968020515958561811823875144141274413161046746573630019849984071581953726307434699648517790617718475707288381011973236895096887196587274280421182837182972747447805548958314921035879202890991798600047416151099824978082872194563914457158622285676725569151449772391530395675710476020960642731581191943338526991018892970189313289951261110627366982706732696745100515894288704870065525351137016505105006692906384770771671773659523029521616224077914077368868447064674745121827176165664255656786988653404001621368284044926334614367981653256079410576801937644944882946577852872263046733688138007835408264152721015641880395312081090330722254522847450022772465840642563185692331133493073342562564877482925843968412647004408526342099261732155093937045466774703877859157098298465443323627443959177739404194862337417881119663937948998223943201777388100555278980156863774938409649933904146854760371381028935103458381716797501764995159182139426004461289660800365221504954679872276006329224112892260433365511110325865699586672398426264416187779323622956268970962025194334903902315697581869933559696635333942824971150046074647626960074077364506243151324213703948193604795470669296349214235804025871855479076075800113406043679290465816381828007946922495888354567994476875356900816190295554286727402674635473205762461559996776438272919254203665345357245419092667033760414218050307058541931264910594209685140082725764465031879667495661359304010933831061561336891078323938427874065883917078707670624517360773449011958596825666377009900523778260151303031819946756728486148835362437821850598492116122113834853672921062196203185987348930485644316426160916412471989714713022694761041443996223091107390742045651881807959549598762691441599631438755974110195953923734996857762275664385295217991618188617467284151275296123735125749734098192029354955704528385106883282044277135163788079501781897822322466473774652623569090624647918174580086863354883461280416920560103858000107246007575059821948297900526898406668684675475862875537483605756324101045107035324937805904173535545790338293777636815090237539229773778602525621121473772673072137384456433150152631098821316269837751087530273181655914303602799607381497253912621691824939378363193943230934326228281386142291986623798024157685102526295962928573558065733162903609977981193976127490238417215869317637707096289788931073965613702850243634222482375488618048206247686728026526776304741033686953060405776002558977779833422813503935556699719655544761023602575787562021369184198333762936587043437172478045272687241526830674238670771778047901567577659862784523003252860215878474301061387720601103513436999305870602319490699604899710304170145299161365014509709343661984982670801750538529597981538475491713331015618515255086852236527641928250247302080915209830739248495162733668298956625873187103730717860186497193564265415489747841223927756134156948946656866612983771226867908263820012875871815633331740975267069464618573654356184268759320670542998198893254020935564063218974252327489572731502937157889130877532900638597551367853350907631957368546857753815935728800367619230204483559597460087606664162277087142731699477390098488222608557471699395684838206448215655201832290184652920643794046001499141989052732532449237557368998586356107716095139256301312635496790997851740794623182995138784832995729286525751693960957620290969875402982204766440507947762121944666038144451086797358383772564825386029436806757344968769257817584758593198705087313148537112162006169698742197837758675416249242424216107929835041930309016331968513940561424506239006303519240666230050654556896697996624413463193062932598187301390368858257036874512665166187347517225913079065270070306109424396577327634397692996564248729165818170934107141889339957917349702279974541313459985321599764084809314336145824688139823317854863563455640363181693416167358151223304784534769933424520622595249140498602257587347815509635463133602183012404997104153060962312386109311543266003297162874802033669330125397768605918920554879333990612611269524120321745678029208361735260603853064539407515807907140286555346695074353199644266041729407350062222036266188007496790736866447014603848734384969085801003605428426585775707033606717209143805583415546089630403609805305977963645847049229606630667317957676485015240441897112803599381471469153327537927624643417221790073095350847709774950268886314982624505794888648262572820397626729517207743523553359337345490714588576247593671960222102360358948736082497478070108726764139253497222945197108836768687563077099140687192157839210501885513352623444223730720584207813523564259384955500191055052941875895675529560000760601335482584452305627450575488656760306785366405584203952943492484993849862917905558547490291131078864744707292613350352946480922750141521924629682125338829960929727069745445130687095047688919617914944661427864938516671924785649874802218654496145458472064412376042281300471916472170876356049033227497990585352064505586689058667832587210015878063605440958781460853284685318147617054814249126439840036460866944031265605817119210325112889252994349024980445331169280727914789305634493236624664275019128104556555584678383456992840467491992865626413460080432600543465564544883704722760363705552049390072782466903333819734695752568649623440509214455629851714451518969669855879789289309645066300047705628810680148764560974071487554592257548274663258603482653111182787329254922013598032644230814792915945681559523961281157707141039466767776905096386192418995462659234420205874944483883032801083738653137975303555442261841449620539459808898699563039900266764685907200147918820550779493064638422058850160044397200332587499861028293056957255972094675467258974819478679881737179743838848747850898907335286504298575980688366267129972541596231372372881270659901168030728355705087336957925849468172969291699005854367104234086979623639669024748036698921289578528708566704631536476224766712984915375970399799357797346544717754024876863396020987664800569395262931919181501249098056073309721476633774480758882269454859678409939511080767043663822464268194093376591835271449884308197277227209311234651215620401299506540951383533341110563065730064996312974009068182216838924175385807398007828687340407370741329294852458939660833246834883083219782596659326331193743431254371164333339715865827223292431269283250349698962970354453895683196152673852336398258529717672254786437397003630412773699694104162914003228265055487135504966651080520618580712770130977713870791444132620893360759909873302896524283927847835108513596111702026666479961353074109815085022795840158708698458120785240162349624771651788187819538861768277526412094598294625179401790552767906663118290817958888277029658369982720380717362230367485658896408847606143080902198625873164788101461507989719408272856554274283150771904061225107561876650172426425017196851295617809658224154113839919129936133540894968866976860153873664078013615049305521030712446370330728050631289831567160186755174385521325226319365707058434686949622415584832724149384079306087963131766751626263075189211957965086428240860549208051861256958340290520820873253038121774028842405683314593702993610634722925083074628472518358777435745540418118733995931092948736553277878022564735660728400769591100251724848847691403471456914483723566959460009134085772661676899812867654414577560695032249442069838283316304517211272103235248953753248707402036818160115927150829310771808059391903822003722705561498598507714029947144752212159451833438555451549705739521210701382052502050209861054613045414491030519777664516230352197681705321388665311239291244762919946021055715691378886456104030593391103819031777306846811863663946242947579745302884360269958694630521180298455514907626373515995451907625143627229608808147209768749774472432629529904426163659520343829224015743425274923309992185581205738105522236438111585285208898535582894806448790294087745025641476985021277417776139427393234423337199417493756783339337909475111131786507904745073074899430139951981742182553229634560298933783483498474764827313419135624563656116107148077511262784010521457253267289877919853727287283042643892798480509197674755327790768530394741592415644751138366352686471371071077092911414711202356764446392286881917797459710627046643652830161840809014539009097301725093208074031392107161420316439633246344929702702605411347067618169120819888508232801693813271471350586818540148417841331848853793608200897626149621130545841670694287530390857400252298438609774299067676712156537141825879083182165281940449877917770768200284141470768143643692656426569532540465841916765780208972762641650397134249430500933180327438869821262137415688310506605057594127930313559641752001837529082609313022768065613631214890738403947090040987746487557860061484970960960079922931102988151741814851155059935639270058643329326471969653501620593226051461447389822015421881793317248252670045025063456411164039075131195822040973104613808824224468961522227598489138984010149357371627877017118776418778492291672908821941342302977490736223572707671855029089911159920723598695784068252797749844122436685649905439544040199784422708241709179218048952929735420876873970279348838404503612577951106815433444635853833545064515827171207280333056929927783964624307825460392845445649384220342278440175085764872746875978066851446049882007447598477538106708388769164082940728664527924165912953800280691704018085397957663602167514001136055945046967513980519264362186038604749678294878830552113692726281675092345714716662772986422525640465267873943492655231841380238765950741815337105025148766617910403878385388502012906209859693361887903610770249708702455433608944069173658928566700285891270353587877222260201807191500279485720901351283111860041347979113984197586233677917373174103075383576837857470196194664877591571792573874287457002599406977481211221382790291458117642128399714570857265777531137243689834435360076583801541834603935334429429225279152023211891809956722255554595197771369171761818245204203306102858962303345798236759391591451240650024961728697424713926498203283545027827733125206603741624521880210619933180953480857917203966928909010510607191288469656335659921523898059703199787201321162407973049329458457366191438355856496639381002229812032959313566693133191371106480456894872712961811291606294182601000986562475927213437900620228422259397250424239218860441897943014895715916083482544720913366129543645246647430260417493407357219011483842641606115842118265012079397117417968677788606559745440217003196619591076383430492603250392340213968375704566475289152825042286275296927992856857672377520199475394063894336225224380007091557961550091959619401261224571019207555961169679415025703515863603215469526787150147278583631321469814413666131947308297335207822855321784313020175418842125786547712569059574972469748090431828902874487787460319852900954268134277370071679202223583629326322580703352719380229669504735970166121226411509317566238102972563907143742059281659122898961626693139293374780456198791372726290758865898275341909437568082379589649021760039453742680960349775991356398108634358758806723482081354259477336376565317549244142078289789739271164338523029246054042335630277398864649994103338132974152432157797664248411047912156141470477609304880849112671294091199977686889498160601852547451494440672260473257046176218545604345375601520616734110888203895363506003923981394678870501049238596677274790231821778204624030510922634750605711487768197492572917586333700896159739010625471157781105213970951459668446558466098707834925506460049566502520446660272276240835301284326826344125267083311297210878062319662951637558343260325161901582978580118728706790453875338342501627001635450523647591254955151824973418805033525726918359181929274632051537350071338300993829671664553933351835964456900460451344683191491749004966268867525760403990852897375632874991895061782468601174242150940805499541053954359438929395789410892048807463387441944820701007345192668713132549364164891741023094512317699806078466287848170550912784312903626542052422074817747837080402236292114999127981117202200131516269122739715210939841976267952054294123535594116721040926717963710315483824208620479789207024455909720329938888179963199845614276037415991215461619146260372694093054670007469581988458370794219287272483541849323118404799487219785725942677747739478009037764327148130689046946374022101480125062121536162226836139624472962942413221888097834561034621466780157933923001346551806169275518650883838124861994349727119590944393715238352309143386079082057247361846004955161499598687405500987094393776709271047965060921337715428486970621317821173326300884545165595868271475487597498939434222963813814853757434219662974190822906526836092470548842120396388535338324411677551362890347710200061419491787101995899013011925597362948210825479776169695560029894482133539262202819741392306713398448002263468969739151479693113966244185821458290432656178450511808510868668489171983288639226097107562363592151105569921088243203808029231321446419206745906534055767007047348534069278689547516182507364957453806723034971066997518546133915651195657177100442341303891802640226971379457538861460954372839873123788647623789360996660664923206271834661387804000960321303179864210081239405485412601251199790358637923923076508632895948988053762855131305177188346341258179284040957005063930054614350331374276438085283480343340634222414439506836336073595037865763719071191403640736015320856359600261734262616075681306727803927383576847359239886127035834271823473734898395749661415357113506020721224983804905557593013219392061607542755516345737919052263170086234760240136428181637265950554448010594035508378989348253724786610686146964401637536363562715107981498301906486159556500124000531655342377946707513114497761700442203356845952610053236924465261839641935076165923117146259291578097981402955955095635164038429034440433128649834760101978239350923188634618571290737572117349118332002997094942160771337943387400370919576196748959413920828009965537133812158094614201259880926134411197446897016667628787673954191208996496642377503110928776068639880291188984759492469081401813439213406553187052277827276943002645060852923985683762045406446088325108856988294760538430382514524192716187046467001376800028400899795453006634892002215212693113991740893707170368029999230943707340387136881062227233165059248952498348555223051946906363935007356086550068828373875562566682606047953261211277804010709305984064800594370008289203862663625849780431653775222865294976232203815794536327889632889234896099516501468069617189536465017471501357028993995971971842298038902556617445191618778920775540793858156199988358663304256883034908883092651050548012941661331172724498587326734685044272469920765954158571385907640856954470257515326322716250331378433343887323754153648180316507202523694550028578831766324291365615945800653793787361022766626781063154641625794827622463547396180930971837216784498312492210580390241581643612714469345220445630361694400353618816534418324112786212560566561015854350701947929978379115735149394787499742265866516014730091838870986579929700807058003398807000703487505396909072821349080286259849935096034823664558554980361778965698491407518593603194114905352514003715415833565401381656804385478724761336480187299992322879548426186366323347175555813252209525582443330583654137676621333714136702725683134123952572550106699018066328886042610872822354756837633346373496222510402996140627198405622453492689288479834280666377261274372078478938251356300056512125514041359508201432569166451289210658106678909665284099610959738062673001781399790640504096431828721053429358981093612920354252811821342959583434325121612948685607499607593443257462790910982395038565285807359366750654619101365765747664803003042056525226266421541037500481787146187569738200562385108509326957837701901024559032508780316450439489056239590217959726420654813393223907330170337952038755038222110090197065396416070319022084589897845080553000830764403444427176964410813071863438033968934857138428553930578540061599045785021615084914103917276868603396492800966291287937314785065127417352208416883266372217500640674406318012401369541121205698261679454830951998895676594903490104804549893599530091564449500019341460722628264905514377456309288413939755004159254060500433639298228407933404083785007234668293194359135513275687687012952772331988724256024408344508960949470474877139142221893644673274877217054727644006364798213263434520510788849053970537526996036953448642628690840844623456157803133311661377112442300391800032387143081816267070575648508956808334031912127686481870880670626189491449614418229184274327870993965856503984273323898712080370755594708488065958879136861413746761091883089985287427855328370536585395572712974554277923781918807398264095794062917152013309146453240512964780829975681876817579518464772882104691669337714708107458783157257392573151397798636280164667103567996574840955133410610022977080837107734545545173892127351983917742770626446721180558864715199557181765037268178721307466251892014216528388167471848050500708286436268855500734896949894262146275006036514695668757279257632895935426006064701041677732905259310654754071671921356757688594535249479198515309877154369539759354776975905221155311687733580959608332778506548170990236407195113334995063373219093779367913082627982715579269239272931415462147118885951584091739294544283541698461779698601175100029751575304936329208496785132985100983916588308151339864588035150034232267035486529120281586755833908852611653617342937716379653423175636774575454500478581936414780394310711693046033933082847573384533032773324055816770604677391424313584110321586346397383452763132894511804193827125491057500914831210816341449248599390925443212019964055125958267009698653418159204925979010034241497719529062459174251148204973256706482459216255728525738854438974539094566845919662935782680248476463597091588626275306132203168209369848694155828249380182674125579955711174994451450944719131770635855829234131561109906235985317653887945715170847923983339105201090193766943946117057393122216380657709425404079438586195820157599366404642916179973171794715385560519235155937216681362015203282869353599393120547029125394268211299678317739264388146408418776297874650170766901964400671493593628774940819902956683472722820425949395309860809110193004182660321156839439698318901483741805794476363746661942389588993284709045298496175007795332499592843650872157507127964224211479484977725048375540842276012005040567799314672974267984294276378094624189356189014739192870408339053258447837650217420354710526536840808902745431659385220361102385434169131928079652707183047361303525416446982975990052398292052261041078047659726082708092663515303398668670796588916617730886380827778617393105589488790883188002153089126885161142160594088126416069505541417310918619954688305271273680624823676785501086474724749494065473414731336720591388011383533117841789978580462585494675086919335552488369512664663664472905457512672311517394548508335186509745186560169624847421636265919195503344653922590047908602181575816619208804854660217827441399633693882632079925737692281110216015077592065007240415486396485310818828530224876561121793791644501706581941452850571594345804621738169920920796104648921113676059545932678836818424186476621369468182945979436700550415546400154335462986773563368940139366688927087087302092866828411312715494759834205037202267276243867708285884923938410233016315629372550187372065648713576605470881895289766274430947154151196106014858345369623640337600908038607415023378615796089965057874982350401777513945919074526258365046001971635582525710215787476430953813553089020222020388644992251186104378296910900455524138498664181828642117390059967440552402729447479673455137956362362448147232416199408543857760393358765351005366848781779331249821688244363877465311180233221092975756382420334126879225203636026251629809786669703922552401071695282616922372254345408005602219590788147164671274451840178999496001698978354267324335986839874960569651614262637693651977050563294114208411287902734891874010642565854683355934120114452716009633105831804950921138865267199444168138779298048412655384733038488973063232871821368549146366495455894334413863805596903701024392234096674654988342230103166607775102623443532235077373829838491064084900413876100188421006576548922413801762560301947270988583384358782654346499630018244526934278170240435699079413732240426623457052919416256711217514675219620229000514840055729354091652443120272619072796431201327060222787084482940648678473067445614359022289335487943206364087246340672634847427223378806919603987638465488523228169045815095681327615344013674660416306166646293319338167312230381900802849272941641155142135342577319066352384953904132772973315128912199449076005283546847687241981204071374852547191568454756106235047516202343235830045829261570666208786762467479971819203800526900232212811879792338417250841224679817945372348658630473769588076305488422122673349612894903551391858909399070472578288099483780071718798304745095666783133657113346408146361898053437606487188159136672222687402755311881958526027406935644768706340442789581409604315487917068284752089948855422459286437334471331494470711235182345324631469724506422673182543770738733902706155925569836022225914856803698997547641029671118921987466724135063310482275884838629254512946894280268893466121315216214205903427816368947761935566557094355088135598181112023091670654257879744574732172198636205773881527336127770324297740691824005967226265061414606622291838642806275699838945994472228259475007636767310171110980893411391233602235984271822258774870862674162186757894329920932043809671384503617447660031145732387662206845360801293852545133186512676643653360989706216021987963133444157201064114196685974889044421479100370972767089810609203288772619963782052358632602477132797225881119105197152113026884442152525252888756041902727157450676874154442510523309865464809596990977285452930031745088009238091235838071140631531258242901221095904033257444323906701298529534843738070294605324094986559361239901830628633318336636665433447470664376450163174620165696892038835499663898427102902789717712448561809707042521533586933444003752924140560056914670462298540022742002179667085461339376885376027815581926146943872641918459600152764408937884952242355633242846198213143756793457418739785474170037789368969788865777238125837860950604755033621063277408490647886925178488137802232116435686153210804525282591028402205195021239978605516899050634378600575819120141908636673980769964271082330467043903400555836976523878904457327434281932127400828209289658063052459070078854034622677116791337220703789396993992769831838201624642277553343228204163731310068791366953954329833002934606987719003516088612353386000232020136709451049438208168918788847656584502613166401538712948324394338365267566994152706462944128111974414695180077219297423730063367729407876491438286663035963920916909220534414836870562216998035600937519525886983664316632437624085296240559208847311449746810926219365591121029677294954633685326628140118928425423585501308707436894037663437231748899590192579059307209147460939783726656797044081914992566260214148355994050744777830430522791871129467044667067775942213127241015359122879124394301225352772440757473431057730365982778011224803633381256644422383590300090513065986313958021157030582352821196986849159919905240013919518331544857399173873432772060304201233376303619139819916952584977079890942998166431427591669635980947927519388388952451238297406773341852751642970489907127950791136515073886479904888572169851068182908512224094167824364252277184615898620823903624198870751837332476972895082731961798467797803160007525980710740156816181229548143208791555137042868109828487111601182950966041761524521940798236528266100574464845143022881341311109671843004719354046687624732379645231627745109351972241053429842795660518230871185346808933090549846999028431630340438625301233967673008685381932418143246211619876800597932416585272767264406389106889328262835612333374106822950594339001600002030880405308636851540118780409345183761816666770709765582091440732186052723271031550883373662647574132248618518366253720168042699202181193857123706015285417832142177075515655089300982459285531332449481684841406617892931320666194148244674412089511131648278956833129331556771706646669513576814707918690671129310015310656025337906452670863164876634944189546255490777710933901720545596454977576272184857800528007129267126245894608050638335261020971265100074954417014806706076288502605024126885306314573757976782596854426010421763664929853255249923686647438696368001236173451489699263908895192787690034574348089371074055828238393902782577076565825912688858162738111051712424019801191729894474493503738348163286319657695431193770399786626072035302011219316954112941766983365860085402626907097044348501229562090151040351895004332231696337155380188648205649758097908867987781403158051592934419079827797762934168572533372654090447674198669600473108078581598008731215270650979516544686634620172844418883323736443755808833541093615914462784167396048942468678199812348912434004689411010216903143912343094460504096985065109163573974212456391358759733000137177603804230631756042251276951292588889842958634334459277724954224120471499029392510549577334072752610158513043104710452155929604255784621354384141792672474288998500661090801746546393560807783555570626437676035283513708983420288957148795498976266868688553254619238035469249695716544911024286314188278520630038003106027402667382182259575437786751342740413888771607970586983845681770144889954752568377884745809735574311333709683747421834472115398479533587862499815259491869043439515272017845444163346545580655485473196925007109785243941732227350852840600046957385836103000555899827130976082123751871104492428407851586746432822087286117211304822459797332702903895637227273117672158573278465763266235169935554223301211797264969210886830484772980830493317658902779038805338610112385047130966245497658844907463944754701417873208349126666092079688720517828356071124843557552024479776340930447569231155219143208056218294111719550849484940048313438052933184262127948334855344323910080008988870688308087802453830477087242547027189302232031193461462136254075235140473186953007620644298466677386521512961924112189271607992477741739759790247958862175111771213676956199957125067210075617865993007747802429283987333418523946585253349695922749033833697545751088648801174878431417143751547918702845212930761959776563837565103298969387718520030004008264240468596522733900296982868148081954785192679086021003809343864389555098195241270881732759860452455466954900575737359026709190473815419593034417890610971636538176533225216401224295085316173387338285307888245336863525080961885694306966253564112496684746353075202870166325367893558609484289717332568530921581125808530721102689905530595361361991591173379347512511690954556916878268324912611591036061778553113073477536272618619675620897242787290565796812536211640729901702462521705167793945322759311192973023923867061372892758718529378855604734551976479628372858893436750210566224793131281131169484602841140773171748963287508692018258694663602025710291851417850096403410404145864864853629727281919680444807143439980210554389380496328944884897567880693427618483718207178110532337760768479148520524010218824083513301341950627483064233089885239252507961626151919147597989685159199364849516292939531891251238883622145967550198761263332498711955109109177912861671105774763417110615996568873019186040186700792649247041483804887661974530094868368371338230062850799822184432334184091439066238460482969717024058237566748064843064457520767868069153455441783729156533293365368330245291353220708853410429571020895802864010819749267243160335665794632399011614348154714300369934732433689179509671946479299929974906031434239413499438989027580479836084066378842764829315882272273844695410414870113438190757617589496128972064288017855721032846503120566013955700259508449038062863350448502977400879974426870294009938172417893176182670356946114561138455565652990643453782579607036300107596067072703539595394203219690150730261995284214139566257128434943292998641403212203050481381558150532548730540557497656029660924024505643134978413678437339597071491991336049964259339014420927713564713308397840048005719292943848895536160975988556595324118892718140465558368875029680929106737457361392435700765210542162461797491149965899010766240700250999719683617028364440145715711127254940828767264718821528456428735838482724993767489472509473467998182557060092715665821960248021241409286679226842570549599150658131642012123657173337168652883694567519205334725188113840666842419867553237767999138340054639927878176909406065170044487177459904404761658755499225498887990838009837219028735198803507240945281815275028564772811653735682063943049485754146459592765353609300417648968154434395104765761697788616855486659642602059317252946076249232590384556001644718754172075038825884697813775470026117454709310078343349965450361934832486946106936294304288033635230407920281258413999744829928550125106538798171823736278457283751017194864454554161835435773709029113308336202217242880100081391650863515833738767180108397116266356874873985692752008960644809381480315224767807546766033996678311914290711812943526325421111049731834570229111596235862440367869751751339652812491220098547179789016079821447503852172544079585842498772874514557707083783160951343331378045671223776857535794149725197327385110137881743829521234290620491917079052191055120102826411995680148981177034377846072432680478127151788172152685711897691797543802098905051114582133384802628835610415622492225138159353284830479464596847662946368605535443834501338744463581079234368304549439285467985379758949780344482220824410921162378865009074795957487451129010754742467657028124472681260791837948047170610094835845451987740935936799769298606063724005853928920854857593630971112678755554683752479660180020950643044637140717920313045600189030842212288393048695967951242564183757528827918119606269112399400377124262795443623726372275876596980918109528289552579600561093642923473516173500670192828398195113259889215200490596688186996020048782069506023289258910547744436666813159842958591329500798934583935509048861062109805387499674242803642254771774544168986149871224825437750520526370728428239589161778246887166023609178849736965097994753908503479139519933725382396681131473731030136534534568065961352134283590857296243978674618751961792835018196661054678178910899128438951609672034860286984341209524892808974550353314906653885818153423189671559177558243186220492448803860465199746790366348069321499830739478670467865509107016493561401342100696079282816569664865350739646583130969965194325803369672795555248386312239867665392201822438347828345115490154917101750813364153932186466863734146311156909001993596964821057577949079953533558430896100427449514289372678135049287955679629991485618690538339981878654292734173281940700401240761488990720889538473273861831915925760293337251953153006669903942035651574294919598670237775233374493762943286825446835125308925278567985850960012627471031640415365930585397808145321578276724212973483260281033117356003037387266967535364858304127656628727274204649045981946660460487629105914607556071540159995766284775336356830982088109827469369106664198269748917583448315481181474533939011011743320391688189034723307731178153532874896856241099456460125650639196935894970912491349567824793404175904113765823494864623385861442431547719247380656774785404236181014785832991575742710837081543243384003317890699260819784806121727668184764726582822878490236232298501908431744899044526083121478134810882162508825622241347067734219501534172662039130906000183090875791437147268156111849396800903808633061048709406070003009008163907725616896160059686954104955969941759581858283544036924472437677107749314932302565875821569479068289100006344052464737640532709498321621024287355288454026179224342965018419747567416909628016782173583379941485753612543525916406817467710373673204380875821037026971310530913991691490080169139357952977947724329708281677096376052588589949105503111277906247500708375671546153285990007386855916127889500323683024591172964437472058570220718008956465403563706592750778533740763526657121345299771277026120906146798576694148210533795573430708141203823975369815997911412007031735268743795767516403555448770251967997618214589572570301765900232630516281662141310223994295260320821730701065741816564580745205466564995155190164885424076609014575717005981485265433085302421413370562534130165305719056612834231677243386249967381394938805044629798050207798956040390730283583283405704455183592415121761772692534371530955403127944233294735199290775244491928846740528883882748882081332387518469125849282241509454563447365530871840860775568864673109734485817115191025129847250065847798234199130952561735563860149196349836361061624204342898327717419176217631478672339786199910988514456076664643440451254876041007113566197311898935389011719353390579867507561394080506204625560737323063879153554278732903232326066574011439451249145595729994275812400489529774370988430600580298456575970150483017700976020296577423283397571232454729975712688474466032879308994217018184616480585344157272826235222385055038533256444618915167797347877600364843674719386397000887667441313287569002631750572679622875725168401610698745006489788970594648746599940566785309204146565939250873360688281502538617138928242378354516989363036644466855249019360355515291881766001479832935006391226533546978862073754256530923708599801614185810398939909867147883148624441498588174518872317822895034945807151502532862823174623045926511362669497395631420904678983279688900562777858316818422677588630075545601075571493592889602704155847483213889669274546346167314834282698162674716371375754770918077420874377636293394510598778236729092624939241283288739711958811751330328181597433598163481318169204158865236478420593912349434184130045107197844959434484433677717212580861672333777727345270545998028870459631356033309290842333085674764870857492120114296157577337045615651189957736931884249593781414402207024424332990009204464437731018622139090423825511299565341672288414057275843042700843322504150638897427399424908758966074255852713085322805958019018340166236089643672287407126266977612706971009555886709869811593030092491636700770882719359200823889022793745345212463670004492979873792744419711214647054118761992961231477113010830665142899594272246869186317241217131210769708151533754167919522646599536465373533911029562406625281028686838409232843112448195342906091748914428858556482649011053786309681997312986342518780121464556546425328525495746394635277973667696263770593373602594390530216932660888030120543321903977699746923807812840536226787165413782423373204944667818122155762103366888730336019618502984358249529263014398723838745004972993452687124580317843197630938735147995032122129992360648881053600465380187881785566219255356190615096751644599713342242698615613538877041310606549869321084351757697024696785367407252147166168695171239480743716732838034229279627600145361524643510661633690439320556919970454033992213317494094853035963013227478933557413746704516674375150751215829675005513988309978074702987126401740897799739831285410459419148806812504016630917085699694849280860658940278093824879259541498677017875297210851120400770233788422487696474748562446425339333344208456476143358433618749124247243721256521173355348724957926294207406053400227852488080197221036094558025116625733874359521256898825305836805758945297267808662419864901553003759159082406305006312240858874366515262699663935525327008216799161036173902921154015029650995362767992241749858602324938252965491331382900328370642333916680655671536164419796582801218689495196550142038598512399154779389010147939368166806733338380594860663955972542834826057054684769392213315791151966081036652686650156944101568157304793431804153528884269933409968976223288788804687125146697087898103979167404000363372059997033621791224512229377269859255609257453971691101771781932972652791348295268589887721282049176982710862499968460159331459421587230715956140451568893573374998688284611317484821563870631401636769218018139158512630772801233470282559151988808769457392086724550726835709154173490913939057702484896087324472305681556655020968491358653161434290771884482636040869232505335235980020605064254477460760335584184189766854088108855789409569661739289295871418913223634981243381433618527675640488577288399212442454761348109013440731655824765241755156558826900344172470404901574800492938717793976362468810491174683956938723875957207564241191249470788318950146877650033158842903096940992049895592603500468685213505246574966236756806167692221492375097376290898606386307871631087095931379756783741675592582463717839612853862864703247898355048556463978563666659861338495524636502791709227300982430444612790746949670429284815964426503096417998327417921363727192133621766702867850874930636339720713554624310694252467238855496312439064556809734397873077309817920915448968063439452634921292423398932697573741440167106773959883336534671889996498201685312520014846220750107487917945073650803093427453915033731396545988678759586348715659445213017507732428962276671379163156214776895316533632518492246253137641529805433824922127175773441395314391844982369673330525591545841872238027479630964272323628352065264775578438377175650852990299183463487147724853759730576894064919955647911049334181093325418111177227676041560982557388411957822923749666611384507115230840086094649088055093765218695984911074785940870404722503747017474920896399688297261982679392876571689934770119731085407754768873502671497731692579373065298571151354547813127014286998154966226715849413473461751512205922372776183391334946588394210156188812070263922511161721513583931146149435363406895895806906499423176039750918133969695603383482262652378596765569338837324512268864148943563288118447122893431972936877822396881082884680951692502629931510581621874374743877357474288560149777793261735660353026979810601584013316207952011804475785613876106877661698464173460277216804444180062352513417982069839222777257114974893058571822480511561069912803077667138948719054777786903431434516141472904203035135088859323539554885372381673261137267256843639341805804714078709437156705291813339111341425961981924729116248337250138096075790996596081936038062382277840390813069327665552209470498845407818554262483957549950685648857771652900473703739955691307809380340486922603873005328682295803630546155269974141015813368840256020091234918798445774668669345324501352031107732797199513495106395041009969608972175158270551524771306406978584532030465310076066809711349369324876720347210942158434318063327873733051238867012907673377888597798199062937066437892828015086554033942410377214130367714931297155957181722326318632918978645641157497565155133550869089725235861977057897824657899530985611699730657010264946928056386462746362728656222458002702998342924992405963239777626365696703814514824608931259814266209345540310641750278451340376261055208668541168850670014855033228590279330441190486467710374331238830521050590629658221870613822239316859713751676809435245246258550737781521597604709858082694431191356816347146330789984578084193518356891224521126477301589025567592202841266379095355250135517547693417237693464755167394949966907994936204157299069136576392200608865443000919808316203281882146207270824008259384853100080412732726578068976905609675121600147225716052067623662105082603245516343684814508856408501141950972591441559416473355901875991283922141211904302402370137756388513539131232576090626766389919968149861273560827937925775610998081626107620917869097522733156823355109482741749883940512298565452215658810658890485158307953120390076841283903300134182956708905900726357014278987327633440067904075138257347577236703496948554065557840612507280074560365213938517467549004756625002300670195746461443243256934454910799319079031534623040517100263786026322907582728386687257250922610899631589525985746263418353951763244185126372800001866563311164315009272441478672302679670765830316452056708928693401897192075605437590192828327260184335380618017515970061252137293353518632257042875706035490874967213701696595628415342052383458834948424786830612621587553262416290452941215681144103458876018788888331238278116335480235908742733187079690913477025387580519403618392774075703224718862911929710650131529233532188789082833696592781284825977249017760912558548369979256359455993750836966907457139296939569389362337568421154376784021374184450687724720096782390554756491577183823345548436918637076868443109386861331254317627537112468415376584071463160086476026002561933980713486997258175181195717930642568319390975948558272310787723648844663915305875614747463928768208797646582486404067135661558690944325952375050995897430743739419036260445268197908665296032955043561062577740444014428629998389656285094870732312215361566643209114857287914263219832086293982543754552381434470684098477822326105610247562248601793124220370158177370587513211799781808417053925573233149162337741946860806245945911572212981165691521815219072924812285365238266832012685218749904851985714742595737137568095845582642838182766776581211448510918272596632529278797911751095511395995851807911947592733476526150323166850784863214641368272848502000438280394318405884544400933043131358240559611647842145036597760770825760232088287211665273518983163011631309731885758888339922976190594271713110756683194848524837557624442433553405991188850819458583846480367798275747168329585795804436782695462941575271724804738203009017069927855388003077524897560921534828491499462236791770767538511425290994406271680778530014933441078680370565838313356702288613867935766842747118056187387440736217607214488252924715376836137942513703377085226078730024326261725070890956434494486194660598894031142737633856903787229997299221751042336948221708242653373206160495471729056609816955862105894040735572290853467191930752327935819308344435676299150354536771523623345353755182689089626339300823297146340893774891849376311958877909382684990930265502742332001905139249631672244902812761507411468522506240901624455325783381670307811700367509302359343594235501007958149678256830911490295905141904186820099709130273667232126984031574135242079228018798069720600927007188660256350908821929963896941091216278839051411439570311282536129223400425303422030581324172054785980363896861084467872987077520096118698100231298017694571440619058861164028607367738861455743328313947336811662243097839298064137166608739717715708866348686741189211648130293609368848317932707693562443769731731035866667041245438225860472011887201306558404145671679695086105917771914307659642367094415850846455542032638583301862045134663185531630295333912384259036236522440859370182590005325670652993418033366759297629508875508118190043325639598615637968595565202761348365879469123913612942336257385489785857678852648053266546967727936276672095598125227437943084845746774807216196335754161605139578906152558748887219915236222816152429211664299557370100927422172402202769452669771150430333247211697349172912860990049025399710952988205734550837446505645195596985773666771349579378695533318110594180760301588781070013073698893436556045461071589442407085729470552907020071038380907211760117123362218448120352010782783702797015536723680990976181984873980402805105371870819659205354126361322537820182458803234075585041847438688073546953401043367203460722322370566004923874663288910692766819429737877958578781589544058269045656517210672478033523680595684136178809409034060739562237597769145247340790303033238758893523788025490277913940349464014738228867237459864589260428580438889731336912493573262490376830165123483794013758645029548022795456175753874051457537839438396526139722446459995421583945298506984433807624194616522752360516209874847828878555654148489578738093939121072922014545085606105045369249427188784224456122808854264294191633077270634613682135047269536794264128072582148101428784623449344327401621440402155592157013187563355300292103281857241924345207451314960275749767446442755037669730420196702396574881660050063262929006967285855260976774381500142336148077746298665431488249840103626704583122086187674573345368197206213781571016479171556300891291745174924333781706857028359950345075356472915609073195705373967572911611732194173157589853096472168815689836622839984841868177439205163208493268218617303819495533852812289776912524558262169785062872115680444199564747834973748286759979514900791056662949880433028316947449205851351929848769082022802396612096778355371673195975683314624648527769674623954352903588425899062970268874106935027617090446570089979558320621337602827593853524127330074405477605443682263298941043296073793929082398725319773516728832579816622072786246253464058430192812046807085672817294462424888037707079722955244918948125187473492406068942704196978220552420473588455411156812891056259592532486704614250251065565880451422863703541206087207459294904147251470663898519408171395219161883353505609722997815009356214043675750938327507905189703357218623398332928075184971912603283199985781039903466356360054054179121694843688347057752447947582155038925307414272181041670882887104632079700322529390749694800768365856394707752366900803098815988389387735772793985578911956374467305477562637142378978158091034831283741378787672107993099532032948274811757822055213021169120820926448600697212531862478731772097615260348594877004931773658268121368378081469718988041107382218913794577055529766949396790366085059484548154999038139164646123444875176587255390093311715325951209839409036432119596770294017002404859498784397520016584829000940346121157519522294745587194105332824544117683143841630734265164808841251997880187237277160357034217358370219205398382035402644286974900408541467030289301856261118205842166796403224429055863444718475890894884278173554120549953361762685288038609518493126365302376540656427940625433061233772604367610159670448459376820402096516190218704888645397667341343381204538347549405894647182790565108680439826835347563732962241312234274374712699396984203681383708000944493567001052605023232752909484705459557097266493769411387037486716518204760240192795166366771000949455965720664230256811729939973447744584216159235477338382776763579857971949006393863692024476127553634832656046178280345295398942854701358059662279533515394318426554077354272677266666943170996090452868583918865596247298354275911933897569686153084148294282393419706132139360571970074627260823362862006959030169016257346289241788776691895548075209547545570459545623493971288692829113263605546215678862345359540618024812049130950062533329325682561744992280982951619580179800006881697550872940406013181496528322750319067163257751739662205615926204291297470655920049990146885611019589232506016954767551640812785545584718439860816280201803869148582993684559453216904495297800909595827195585227468856035509256865623458912609714222036188968369744636438027514493135663746104128829063339701345505562916762756005120211746791771210064909588260932295441138362296615432244052171076202785885525809812111034990140215837698771857448726690013472485631450869131154923112605762679864689232446071308914961191989481894098850933847147433493010226196163357514745830399082913397107675659739922184648235979738057431303881794106781744800861649208787037017609048030454054496741030292777950339739958808380706323272518158139357146550777894320405286873996164190345045852150843180852043322255304406718685578808446556389080398728105523636000486790661572852304992741544832625281410772124123741636056079345821055808479053669330754570197936667140324325548145962968464100029359944083943351733230307975892254213579629945470593076473502377128941540955664681598046477877388516552311685928994200252461378648991895971862916230216271917946616803763214272287214341033076663866919336991889246402066214890194666070261845835723817881028132180634277542347200462074719889379656064184862059754796332786669755315578225780024511672182677855347374115453552916070337551578589735862364484692816441294679593325616724832154814766158455125412677666053471380926295667988138533362622122366656588934916493631241746700514172633605377519153076390710925306817150815649715359782355343624938382588401459695545707044563615149525547778852606871112873953297139315163018425616598011140695285658591124796313582224699180782610732277596916345579106559677650488783509454503191811533098309614673705016498965691439739851782691140920266888325995072616065512506188757333329927198693401020061094910686617998986520300979617768793017953362726527038979133544876709851690122170632584053459808841300285173803991310437252783313097092971952920011216321199498864307376160030264891938382188724260593039927048297996553584211840050502501265173725561059926375025084675473373871520742448725746967276602723578949736529060484040177351431534159020609129766517730399408582104889691775957668332150443309829738850588890083715073522191911020531223436425790531808790864522185302059175560186704835019621552666567285660817958831702533881158093995654426410558929222911487096276137106495960705340634461883576469139892852086361670612287430240256344459497829571642268081937358988542456710174181789810681322131857962954926036634501602631133576161143437493812908091151254563979401936901153907174576625021132189865965106807278793603865282763526670898539376443861345320581517564424592035796625523226228439764569762509558346153736538016021771854678075230725741038542763727309447277609629261515583595850194644553122357199853822123769012831366403393260912567405555187533667814594988757121893604610352781558161471700902738804758713767627075690856817767011855610169176624531856091021253347446399850073477722320414040236454979786444047523166310102582534518349399581711391357457034385804020756246826022596917969590379532567623021853882797951776053017611256131130693459465621193746972477373266525184387589261681878860108069879917803291215942182645251148424449865439173001918608614163281638923037469209141945755107009499776879666540395441555169306657984110306779272137141175725111735394282106103270826074078942963713869166139873719801300728654110089741701628417304796389919408245759718530477777777724846769425931046864352608990210266057232299474262939925402289843153271980290547698930903471798323052441130276782267786545489535417778983401001222315784348788842654787040389324434267283058482306492307249722623199500056461680830255992047925811920077421471708933341285383822902973459456068476434891758671733088920366791852863185566588909786909533972104850801407569995464487820570084027389950220384160987125260854434948579602521045204420249790372542145196213036721650688459259521731597299260025545416824487581451880367301729386984584110139541375172219972791831282471099404289038031844764382352051818208837868675201191484493573396485898546167542331684760784510903959567863996552695427916134332567951931993630442891600754953163598882110692290440787568647052210212719375006351820746274757959103864352759530670641906334071716590747218007171324746024722357429821078587460929354738117948446839787466683380730452117614976019664464710053388096550094953464546688935111303746280473904138666801871794009451431912277777838281542264599911138640263799336580128256408690916192465469899252123164035488681172743752574596742627822004734843278248685147615466815498666031365466802946836995387149634416671214843868230633436958058698794870122327955904588764116724084137826928044017352115611917072698793727010557126670903433625078922162897959768875656948613074319831793771460574235138527656433852852696768983860307419440046342103392230153066966679401277756183659767644179043625531259772574586931470145404180789120083096100841149378520603458841263526417121816819529745028629530648597794192268579714348669601584584561208085221102319079441049665957115542330503954056216601275252469147334632114034054251956438372483983422630738333981351343841119230873974794212665819212564666136161240084915849339313514726096784212139731323852425764810838187530816898978637750213164058475940053394846544324269237344115958519038734948354840380463846593302235721812325078731492082213775505727585216360852504315635325817180609500046468018096091780957642323404675981453859036216261839279510725599785454553912975498288489752403307267933774194247522880679762971052863453632261367481299157315201023898165875958444946702506083872235000947840872697442711954525579734213361032994056901819643276223349278031228492886786574250576070724877618534668694822179152055953161150766456508693221356077995399924899588683038673689795126496836120531421037815416941091956593085146547602546146564078821154441739181904719457322161262568356109031815022070140817204997256446469722209133739079987210500464388647228918099476228933305026723470512951070717717246275419418885226801497135812769865313237382863670968992815613019851334429803924179884336355063846657959083653188008522351892684245033415529038687791936213018791706535476715520804292813287911766619348921750690641124210866031729983477121951376799393388608057281288477248592852392964607589534063510943485582634178777223194603770393830114632554425819353833015051818477331922335680429569822369055024430698515044704572016080354734477447936870672827076501802313328385975728262426381347551436749403215281480810359935905333312513760120577289162596943678205520464770576844388244105798247175868458954158188503846851208276744445452945588093156232446504988632076473116967007935228114683870918536035832642685165548944323589525746858848898898868910778776283898388040822428543438926954121658160006168503530842386289190425956494525662110396215772626046973615980926966215722547508224369417603860117147536437497337605950626737455276385815768622719315502773334909398098252888439436669512890161249332863401886731306935314711141499923801994360123209307644381557370919948777341715053277617435509478883205053270445452975276441143259303818122444422421527352163534315966381938402513899143832683820196275373206937165457513208052735050283217571813760224903696606730151607617875923725865874093815485022652821652761767643130832706883083470637871233175850384715597827175217156404041921030153636571254103435077904783692347377567949232811487016761976169767930392299066727043918845901133254980795813081479213133246627880020885901780691122812303040607755666269684495161312053511525203647825765223543605743652028515120504954531364383499745448353799958864384860231760271746443192731574621508682579382484994328538247678841936437015658221178013631330261831128502492036100743409226858591034126068270472903161814106472740117062498471876174895880864882265563075019084847767814203777845247381716223227569160952476419649963056437205213357160430833797711234467697701798732916996895414817287685803150529989411453705436661140377906538184601921947413988027590683656580655876537764920464969232980270505448275659095040788292544113873625423114614175772777020368858776913325677029653017398451710117045580751516597483399204312606386170468180797056981743937964609199046873711228461924849818699297307065150061140163852262025402795922276466470413507552201637823585214555396043427880648561646910135252356051744912089629731648045569430035456210535187389015651681404262848958088654820383020355033468515473373907958656415736945270739086902525394740809674021584347378056770205531020527350487117090017179632379154427609115733592805272294182561259418423377418566988074955213042394630961650655850685590887160419565820402954195027251792123190245741519664360482496372311328251021552220671367699293526326695761423175532847515758642231954869107322962635688009913830798114623725106632286938248526488005887674636524263657109848904419295238126948988641646493020364553602134951859955848233183805951563236567452395750210226930329660920026837458327996628239599896297355433764398687317793694776696794938017550001750624729245867398234041479247903664972682088357817321294880603300224016694671998324158846785312840479388157047149368132735011638180298497619423159944650106051056523667281956827664845347791403437999106038093750521825408129864524083876298107504693652579312375932802885978513565121350739657893363605781708163011093628213153049332638675408228805803861645447370502919166848088531779204499924405728004112262489421359916155517578341312820817454525551128117783050832270117541681508203417962441545363195626206210829552885115495658160266422368613602734609051821757751893827185565048192728735889175857649332189825026251591777688338192493527405741753007791863852955140134465120244369652510548420331950008249060553567012508143229321601893003715354240754454949870336014354946809838400915310027733076912233110731596052636198424262304285964809924470129509578630865189103029180978334276614896930907575202568665937168328437436764447900407775196056005042781822416519424375102132694633483290300647276340600297286390043117603279653494977467509764776522461296944364955708527795679323219907199120345978660617106452188441587608499324754772647904878773539349912556386869824340040968883334449871615118052452355692979474647471500735970620097956846750752470577541758878147995637027369969391644811566815212691755753876405393366280299628462246843757486665296793720216769694386708938691228979482753651761401063876411353061158466398353016185615524691637600929781439324016346414174661431414737372203832412943685006375055333808196826874651039871510438466018490005735849055235641784849686157925719718932468886160862757095777211273254778714526858774438769120409691427587518844093269140773705354509642592674482278751302957595008639669387596221821002327636582215283853080623531190760342408921343983376978968145077859775064284890195556695998094867647025424159033621034641290537323089844610861239374822030557431891747903242323390118954675960015350015379807298200119206083936238983194000611116321133578373254071415216355828834659461166781875199394540755324007327088509894614917497923893854717201208676531177967379685226376198386342647537373469107448813068862498315840673420516116882160848240244218133747169878049572086816472604347911391433068319111772736131134112046494634720144028482139547748935674572869517421213159157383058321355714862173968635490556315510931134879237971863635705282765113237467528696894803876380120555663472146458259969724506942538106981835752425036069569344737403068891521972548930903858837803769531710292136338961527372433984029011226646069750008164664228676504318818810326783915770303786298296936026989261234341305966870891162325386150511309911472693765896940489374634934317007899016963672968689264599953577241230727664165098769337399627556209807413274698818096743865536524904557192520492430345387933287740050422481036317241493798118674552491519438907090126570396110174270394053933899476820117054712842301412062687658100751100155757811038701014665040689153784852236404055849071371484462698238093772449611560218509809728644739075175061459721740604447001334805899859202171904782189967714176081445103226488712356701709617353203098058287042185885545944114846069254808843063637584577839360736972100674060078920216841957832871823980710791425892218984721116149890710981691123370418847779175922479064674032387872643028474291234409050773987338225583753527929669507601677612598971094577901291629871116481720097113213663305514179928614613359153979356601515966130991477268886326553282002400102208875586188321837680907184693323849699408673389360840068214922491123605944282070264041911332703312774369235906303268190353815858671191271693975129098492147740305317768647457984781426436115532209292581619200300887624267570786317907741714998306323072027218059605394651893433781770190085895352096653584113436886891370622742608924990329549223562237260619967548274771607594264765540081952682588639662049448680366800823199128988333612427347502331863546168121729148254650812364096997204852979691804015763026613923993315916469431481151188327225587870713465875263090785902980667565858832169660248784637707537471633381473252889336859442888686106269894760258335268749306478991463488372944944427916433104997121711111376207313851371474791752950663669042338103731532810542146631786545744682552099789167619411463652889675339927488662802635371124440508890467337101741747124000717670470815855921674427326809703572235101949110834078097964162979230112334517888289078419524963003149300017708451171848613581465349728692673871326667291048038687411801457947781066654617355117264838609501642237768496711047026267547443295325231647843920718814741625716976835377993932103378377991155973499726298104391960766379468957496609184323192934690831496513353463979075651946021351872501262400141582344496337648907220923083718146401546302548398180573504235573972652907082303765573821068311123872928799791619103063747216476675011309377747987281209834477893002123945942982370450499692517791019727530785280770349160287477710708166220759039350276970724007984444236619820088498669614751282287603116352752997169744888190887422540853741090025910067964301432872948639121820229722685915587303871957013283948877493921358962775239673877221653232594964620673956771339942495968470366717285912274871178748594485355176245459797559901132053930889925251682512810455244338133332618057516773136339978415771223596396587444507909732087679620748514517914068468955211713579180974641417663730522408775778826583731059500112912001491211006600901907437649823111749659343884536034176840330202229996327967072229521722344911359933492816232635446371526223958252231682832558922178278268739956965580488990941058746030832406673817538525707226438884195441213821046916811912986362219964801485382055932956522427250355228989148682050506488680233157437517825353459258587131299949391792175111699320449697404664091772424098094779803290982818929689823885518399064708546908330032190444986216951574257081315252759414435782801802658556915935418031140817118423445514673729482674769616423250914913170799973698006337048591972066279576419441761911876527445307383628222495985976270326326572367896059471906219978215667977765141031707972851760818572657114895253792328328481492056196827747499117621205030406975532053012573830994551198365253174194786852768182947603891277757190234777916861724383052146980173059387651471624199435129735794627089688015778600390649330474266734190259010734580538878068476495900674569701962966057131367551343858091817973331426026022880396943476734698796439967556138649332625460411795967234067459392302415878662427265097629217052293324640278350882045997587938397742147206431896175725872706158891627414836704510504512185593540235180722625659524107832782933248597183879140075369841281788077053163343377459090299157590325797512803161719452950644008988787727902540085792069173164586990969501732841884152212656562805335633950029681465039532387564456625907853760769277617718348437803218520397589342401760698341649334215668729834627210744748256478062796460944816358232912963586995168516691673495525652953640889151964222231543457463991446244128708506622231857041385377470279549488555239387294523951499899290380840655180258848449217025715251590158310723454437388138583834674476699153016915504090789292709149024064843276657255285809071061224324923910458938273568661445562229191492311893759427250288299119572547973069134982880655850773670467537737331540086096176827632089274531822870042277226164863971475488460122430669931644552787409767203907500900414874209462014740474588099487165543187906707950957684517796072521948416283342254505078243145134102697042293209847057858236053846577710330284761715383960579398933119034868606224110554125444318870356914801714063273610706502154529732149105868621695379277818703016475801938283090326451579741244781090693762392849627060012082582774077127716394315955853570774589818735188016493428848808817228053240804351833146279948610538868604141045473234160902238865746882832402942736120565905698814254269505262125647386438554050199015080963928335785656753148933002103881766333539425530350844878654956043499909283985268612639166557334737332718679025233041851788252524797917173161173815490766784267273600684635968963244958470474754188780699573859014654010200332444428839172375719949430517301208182512167480227689337545363658620837567992121497948893500782499995619868355601030646228841502374690585664891357912099130304092236485868787948800832062682655658304767385100012152539171801056263593161851807558740419740669972734954874404710060901417224029198100610761307302370178952199728507618111904422230286178322853837398563134005103226975191130570080582179544099946903035613842121565145776775849564330674499498122205476628423579201251874323259135398614814075288107122353037548383738320425742561040639658864365463620092283219695103600613134688318831318641769175102228401853834569382665762270933019858699620356130313045685605233547752195471580335049778759613769513196775067988591544020289239102571217869174217991249272379502028929288131311889805063631365694863986875707649834961627119358622735097994606170809028968858919604762152917989502479152711721249286999432952966727614504553253020022505066028369280624060823191653086031734085677188823596657456672196623794821009140337981879520221711701169291141548680998875114787998521430746645939047115592518157718861191136186544266952779076234249696332333798731444853122078833891353355065533180694016672377719115893896882705500606079774276182838500826001013635328830164579965664937574679885830904868080785229940075940994374552154672421429886153027508738778365819813281940923421121594971581330608623743141308476440852682131472218322615805255985034816088398766317013588843801530089398951798720922809160404947067633027732717988189884219287333541524347741427725484515314832432201936542956244446029574401319316820178182171355055233852534970884034850448061300406766634414793570635507501623564156891295080354888532878193204392841254441832663356693134576299991459531611151975378712092929189081007692341840646356134525566151257654688211805513603851789151201952841346823857070920335562218312867472366392665978672430868749326552519800215080236325224996012339472519393971419588158674995336784234884253966178969765852569935044352689764951236177996861036488937684578395200933595628207625259996731383804534813697344543603935083812522136295618678476380824102268223143873970915485473857114738093173050236004723278024490244835427478854762629095712751362922255984701786405696051644001992033991641837908813280162897844631061315630926969258550396027849032272676405773512352211049223648675911338171158053178986876264225009841736994655936206202379823801602414277301156555968251522989706774846920450773693278944124944698187179071992201929754535566853277955414050039572792757631777293669959791738123819243016964123520567265102192437558999954837703016842871808758472291035764668292129146680135210599802010269416211795400843716978831371818911070098824343859391376915480139853702200358420801129505195306183071606402530526937626116090339390247865941769772206169349472646479846614624759053724304226258982103647537965108762040543761880344036108846521371745573760897185834160553184887208040851718355093331227327818188431068010904069630807092804245886759298833737096367510519173233026479787028671567951371789549498714684422793217695863212198416485661702161409622064237438774512946475345606292366691427681821623909982250645029290915673175238348289327198897383694444488618253949199132800529297053846682438007602332500133970519528607538366516937575255415515150600828028882919402736703081408016794275594852699665758444909214969557456445939782404077861677688070376985095062117112762826516793208439168572637343912188887722713471352652199950660081141061760632116355259246223387636809435324697281493244849688634720176540845995241933004176665425938169274049619706753216615961389598477127015152504806847501198058458307875947939702594897868813743639865028192951034226177321352889731949191031247056779755533446442126565461777749306543194823986206788092019185225655003965773663486880257152850300490642057456683794642899573630464788865484571169238019787197473475502390656537377331598883986931645496562000127046899801489921274593447647201438430049097984127413573581882078274180650400111078089055892021212939863635793706782173124660941219033341373520619302341078044432558339845949757930495890115766693093847522324302346719848241804763147733798392328941523590961824189050790172869087735469076690476218318852258791219357576912082368318894840104209846281853891363564101061342449606071390627460090565993043372434858165669283910307322118780022282272074979669772526687387687342417402873461782463644980188813830539923215726809202189488476108995669372828543086838918589201733044288016708865025452398359571605735647448788065956752609048457629684850169079949389624555317738870346383307380296340083787789996808913650043175581750141723712853627714356635451666873527821081514729618435062090859328576952701751957373101643101528231684250241181353169081087251190762972225154676833959585637794451500161427260745782221246618519479955387552196610392925283645867515756324736887193558338492505375888526013114688829870850355833561485881513040900224743418359997023740994698333159390940639200665641914011464787923950542302047270859502376431057827923036231682448384926786177017757305917134162269726186983886214233060180109060677558636791444613710031069986949147496793331712216274368544430535558221525498283195248303028022679679702960108778385765659900244796818834513731980744116122381149008566102488957459007026886363481032283416320501825317836720009764946134384816592738793732445707381194565295876809763660228611439420252256142640566186022851161752996195411564386542344131142835314597243423273489247586063429641016322970479593489861454401960968133223715429137275864627169865162896255216500368407287407568742444291045259519204741323151853672967452617846549428353772179869166401416283482293442972549331765843535104485880830064236667854475053377522969733405781687674620345927664377260229451984854625521634618328574972963857904073626622655739144954899542033146623156573341011712974989318409391235835548487000153864246786409997477112580265708493775550107828151707051342760725350010588341393090518386213041889370435473764337781389961383628389430024076773399167532702204689905857867493222954452182265372930612158028890118217936900919819885126495475810732791798462500338069418126296267419820173615877543544592972181716864474227799694788548716937039171540364111456402487776218467285203492187405843529072325737539634514727864128700737740890449408667648063799896660412142483117066875829820830532869238128905716866157347739835107689169080230079752165921542737764469224639862059727225829957683191882651661182764279764347063176205793170736553003528820600099690104219641019431322939911189821034137404141158858634208358379685970355948050500144895771641683157433428664736796699247236686382856874019055837426972408567094468180638850588985470021074457126620302191977775373337737521784473693783175254804833930282695640821623886276884278663815603869064972055996269301885424841074363415730828361405594352266355881235718159555788725469319954260057344103817497737166588059465429833797648253149481606098726736692934881692450102143284363936713582046343567534327477459084550998573947743033832850153422714041182939276990755826001692909884060072867305113174959558847428893584743926573247654050608862266098985892238480048250967555152478909707820984445676772499582592499671765514311901641223861410050971505904554877751413139265348501374224870900837304687525464342862505641018399951430088201984623254518695841529568660068667916062305185610913071873642150521637295103293645298447661086866199670631844596428012223715374363996971709662722204271479074460327388573895227961372729235615541097653889432547184598900489635384080341483049098035050400534094120798767585802832957638769209958384383540639930752651586276112114378363964042849356527899192031119718437248958727809358490469089291885316211711305649295751489566727679589697069715244819645852769571016736271107994383266056756627271669323138744468651241315113809315070899004923856221444034707544655830966453087287315535704560315951005281448107563931168968269243873191992128438723060729999806859420397207897709283229587279773515574769155587058755330535876665496328765539437225276786748155718294771871008212095104612914146122265644573734653746453573079861388475375572862641580987620708359418846763285350817207631333134213645220691613509579653309652483027852710073119191901877991189825482165432949214463715924089900466490793146749745784792853603135727806957492706719416832291007267527358429479131121942532393665854373111876701973473544946022319729859209803193152402577917700930814003166365445565752137715816002886411574180929733395045341329094641529195409326817093673260545949121437112120169715270188676174935499527445307064147939857460212795467938237614069562891949937790781777313731893163214228816682423147999197765939501100259835493138545330912869426276446678934075789002714047385917854252383339430455678851888313073654981735520113364456873867332604529898038678183872536191884415540674216446926141556758483077207548456614926385420180484608511509053489848064823940819558297036858968640984013300720621894727398582014136958564706503091079427436733423505385580406868107262357626501265706142505312072766393962705811229502457626891033677089991495511920823404909863004971653336370408688796461592368343748821120019212345340356764088262237418888715172226401048893822509501918683187626572609470409753878141517489367508258144571893330226891413895857055163941214060533158394765176546846835538694812810642906251335209474710828386263716103355163136111816065610228488010953853114791456672395256911241888763255738830224835770837065384815669001654929249913683217738232831675039518034219756902981955880446610765343346564383376836836574695817257302211959088253437616799475293530869721556483416572693737636542073327175143403374201540132270029433829347015876963281926148395687093548167297953881699250635814689939487854960362052472693091038467198842287932222460372162690446594409029174207303587686153619416619677245376239828527539123475027641629465110100972093121522334778410350867760666384869673521679315355102665675619243751043099170672721187219133466696394487488143101547716076649117738953651365087991420364413908315818898337451661872222385489050176750866352595371575360021791529983304589570491506351588069255709416930080159562904647579162817245308767281366734849487604126121370731105939626229448749319377335802898527493652423593140704879799471909891726907082702178827030616891860732446841140756722571067424306437191907378871266269796309663661234669807724246615768839208154323226362261344531564166986168802527218051220728860834156164394778521084566409251146627554260401043197237529210674895138204210488781372558694892458241209426403694523344800941593429498982777048649826892760768708966369574294866978120852203515663606535557299447345834791636845016871237376875877519551418761374457511766393036596842687602068668755082748640766191271997917041556136773019002341651854131819895468511216121942528524484616239279370925635112139689206756698621695745731830904256900918323430743508048087904429440829589358130448011452235649471700193511799153438422996145124826375668302562472265009613159682960301984255086073170250855157840527313226536510443630173578124872859603519434380939817996725567271753076434003900000684163704577634505315886696164568929781918205942957963956527483585336139781220107592183789739920994214595809955904836384610542251381918147477010702590886131477988979835155183970298742230576536313319127016049972891677398678416012613510053046290613715526119019874192751218964894762530164079695754101513306080054308428275377182184720335751528477156925568804190681321575924160439332056393464930472120350690427703789185616185311095524629051009754009506282072030760279025988609505753296754312474634685237726676526032998700443638720728500432357095981296985450612638047815659813941690147362689624314683743336350123572833471357597691949822364919703328441129849770939622144983570600514097049804623758749439600667989435383153782969935155632157771278211065636434477977050330722674562524030753406321964015026134781671141386015911029950475158556467716985682887389275575678361359192339920286037507155598107754066260439607225584918007356664051852223157292854367522484690930436165166664346290587016886529732729447755203586517965264857800214225295441053805207716957359600716862530622631433099540988577396167123149769712414132054417922392751464883832765784013222307017981853787231648519779723292545899870758377394749980353417059226449554274639225313828112654817112249712056996054198495654706051823585144902832023609386100292690611716753533190070410279390417867047094406864294893236688428590485262387978086443666701062810296232189120570317886739736821357610060949559517112895368112427933313960938312854499293112378254717245622460708133699830365638051209695479091187499146271534293667427257908059167586230042566177354926211072702496596096827834300326127031082567646321865340408089516047883000175449152679654952042770377135493774802922913635502620542370028948516904751999086260744797155263958728111153239460079712140643743361355130614132940701394406269980191482376279839508745702553679231386143798562526310483561450399120112010357695293366177091519672686862171224364989435999815768562457800968759431946571200383853198978910842787774703715893383914696049732698275193643489802879434101897078306675200197699551521162549746998508426827506692314198946146812359597484799804751691395358358573456150589541916417370951476650736551298108426960151284746640292548622380448912968552313880278734298240140617378720140226052119848558397130594300184347657316336130638223783285239563956660851048495350731376180546685868053317140017083391207532804949993204372235102090910227794487879332600924442825105609445430851005672709248706644277492040358851191737061809206110494668004822739134672774392471409058283001598432679172103723270084106877832778156870187464510609704658411592066967648580549298746601395079108144668804278838166616134081638912630379304740439368738678512936361263979734813240656503734631670747632301033977961447069950726072225086805596207003641649485431243920682784607022322825015364438551071495760104249570803677615291211703792200370950053661026433476695300634373240020184488740382686327941346584367246083681654674386160147854013213016806653465699444789936073807211434264028445710044060226368705348278693513367186847109660636849122434311706382841181712184401716201583271792424025279947702589910055414619515146027282156672946415153526109682450467694657315317731077764257642444458440660222458842383116787999923759503557181660263994497196614176196671512676616541012768832258237084283454462299695666097766308725493221620953673280183245782533579306704965947548692229578454502091406876679496241723687815922169379089490520604882146498612167446649672461407358740700272436491100959555255998524545699474143968124885123791032437060926224642702583765896168526268754912244652798505347536218396954546615858286387238318786386216472680634499483571081252364596896395594958070405072277945061488856140084055903242507340220183035638980455381950281427587168827113910040546179619107644430692626515261604252184356816833523244850858690885965672948343696310523164653073285745347106878420118339408271751328495194438436067620578294507613374049122407303571524130174159911662675955314035795539066891392495683531397655704498499204358867117999149524423917481695443134098028790712602529892623366004500894819849625296552230887647989184509391714658449380533926838093583881227600334669682933283032502577296270120377021925787345542290671639437917669960267819681010984524972012842551852696765223508424114840251952706480440314153060934771544327406782548273279930279333456764956882284003769140583151163725389257279092545928147111606937824775793421935909142045188885814503617697982503731023940757077439356044290350197645694073295756852957945446681511506484675382561410164402601697633735935163205845369542926048448845065575858457765441597119881320660975216342190142803958612325416580304412205750140591103056306782216499914354781404758905484239478603427086994179724856039040871988629347798891195341294790817520963009640186804614279223712130719143560834313429913864450257776465414329163275374584269655023152331695732175694303155398359512813282296013352535110637230522467673511880274491537184203269239704878776609988191070374636787758177953262657384382392253816866028305618129033691616285949968527011595055790999698576273587200579279764067396601348414370321756273386481708851730898734262523178935096140093486151063349537083809394173991227405005490096493913694746430692849237610774638961551271633817631880112567125065309105119560566121016628490075430607632930726277396311468305169827647879604912913686417847245053586115727200308944822941635765299601917230738492787303392005049328678847829895556077775191646102430497058571336858721828619250862008423657555720112146398420760248385620263183129346771070392087488142581440164611257229743789410875858277194783385784798652302671504527507547058527689445723827919767101895092335851765769965306474316008014097311546148994811286748334223706057960329099178842880678891806541445133151122052820013655726079550064962470313933877154801362526478121970248355640855546094495838984982620684836337533480340630375018748469343519163333028796011652128810148345856171565736734244226705687487723099568739977373922382978748971733550161366974416385599672889494878641746542600243471742859252795170073621838059935952303462444052625556277491192044157549725714547739126736706986382447555650813387669880813090567499941060137593644187469824902363605840500703702270476418279879513604731086155034554810966911575771411407531619194128569419650477587569707054132541575874040785276311847560452827446026825427273638418322503713213085993858470890291773388935967374587866847016860026462449118111234636480379926798571004520011416073801426200894032516604861133250160446222451470908107980193762855106709528280516130002459028216457743112490176764368607995000246034414451324185202645878662738609805762102367026298542343648842646350849723572413372620737074714321169431378848676500246974128374215804433588108453763275837426598513929641754861192626367265954464075968618113644481253883350071051100561617186121770246185251798702644529123180603913615514557601594250644589355429788889341988028543140538164892554629517764543047704133985692721066064813036659420716542002093811656579556854955578556112004253270603919137036733584524570967610725445053121978030886089289810244202571163308369947472165959521234771944992099066809977667821205044415519393613382787123414933335802499402553742769926228899143939661632133634300756230146381736769864110730849727934282150714036643304275171586260196063657351835399897298144562624118380088675892003051907944679875771681738107264511695480717379090793629228455969667096987549440190966350915016399141832879321501898554429802929892711722967732885414125076213350330490574539367280103991767197347510971394699991141970100518470623691041543246304607159307834736325941791533681554450750618138258380791352112809816588512633565325436144014289919857765836576796833058787479219827664728230014788230925216188778862589618011533911689779282659531382814168192843433846088702120555863543405562764846640895633120018992556956366982851908300117163014059006817670226916605535849903349447546793711108393048743075405886287205135952449663424111931860598949464382582588012858811158472823040606427353167003061285637195765167187406001235031106312408094601446974946403278249621466621943108070803909443273958543106105031266241418208523203303622024470484916709599008138854011053570397233202015387857225622386328829609359780016274909581330160860604907255395380666651138166699458247031082510090570428589179019207359439809125451375148371462905294444457469910502516186009520674356076566303639525781487897557297194752451517079461961303263605279323872213019193515732126754532402427181015528532205595027762253341505285071892979074300580466508536614467452445034397209403890826096728976360062345566420241912216578760771187763721726282875392029032104355268445600815472136686515108916954147004724856555871796200279481846190958855370806169753952702527700145309724998085414683960333577498345270721626255759830592142949835748239966446867087035217981606051575826352682745807717684292549866060883163239983001409722653067935064721654347330716212728091751846383410200391792222803366164550296354878592280239430048760339139692455669975652416095857555901753386683401416574565301702152024973529604302472146393399443452040578263334970329341491045752658013554961410893264683486144533617223737545941730162471524258800870705315975825569465918785994509754705835958114027081419872198392903723015668003744132749784529067219645220927346590848295050736155802192026836825588414104815687279392205628754740532111265017368484807398311127760457999126537812159953793295611053198105564383254868527700609819632397007725294055585950346524681832795991082517777796122593717426775486656449010872423120160452235146829809972544409278403495570715532139572863730630543166729254958646932478271981511959112923146131745713965089463361125195742131835187889960600758777583044702376084633536446234040348046640847389530088097579089598703368517521031890343418024093564194897574374526013547517008413295350391805716588273788226551812806713180635956322763390917509591719698883588003752043293485192141575772642431982270495914161512890273255707040334444040093714392072919893906835728963770194515521740456787114167536467523630724040629322494936157243247821016146209521911337559972971564279308883797397806455465315478637123106463350805876278959536190545838693271416110213462417722649642743368851739809443994909249243881410072485833414222900660275295433408242501343937102883284992858458824708187832177542449198801501394439705208067881412691794197210003509884880935407382570498792805699080967893083022342661145239341203391773906772179986734502068240273599699192848950335052511778254181508725547836673125668641889002376797676354334759998490999683176193479888879690996999954737739436814527969503414728275799224866407070861204541877712397373777810578446665323601888334163770072976567463361317894631003862135846948714411022779901804679871016629532714466198412683721332721253012671065076713141207443560321190397380349990969452408635810674194041340704880593738328267645390304270357902321375339897240510400817808954715517992921660276754428275696131751757523241971826393184199247708207488065072748658151484349911073638372206864186862590479265021652235536621763007040469663843480530025702013787338352832657359353787074223144255065168152573080719870099678635606085170167416192183729789051244564988445478059141523392405123523822961114647971540307711848324174267981214749981805870579807725483041485568264761747239229599071494963225024166089212660734148982730606013147694728560360528397794846841994195438150089405232534537611271102490308201259824960942620798377982343286017866521569288647479354399634452155973880273644758067955891243308586218117772884503437860953814611094012543956351542552969945522411558424470162804160383764667497203890439368011015454609042983417893825400295635273314429307789193750078623988072096254950252318137429542723892304568406799677573346870424515583674822021032943913648100478554312534313563352649545624810944005062178771817736804242874633615468647390983282033610266407331737768837082221068103840484074194755919217710073209041072419021376320962284091358985556261263908517627689741788208738239315228775322784145141476461924854872048192482526980533164703744164979950635122307767531641290079298208457364987951651274208298052508140790555931497031647950128907775592024175571161039768965050655481825959132491725090131804870276792343824425445916061983424422461284074228623767413787385044813308704071167620039218900037705810176896363816572818997052414957702577867153199310227226525348882091836358745407412853354233125070471011118990931992474118495572720515822552780925789966089881136598768186604148249484305933095683692817367967597553357528746553763297012054954004487411493665939806842969590287765894245692924622142797025907615927886219331993113507962720564755896157365492672215563841818856307387901117722657460026483536684964281837401588317235880091827726412229834195515125474291685499534633280852592367725949594309796320730792212010049388806845211856275366822566158961067418805453372115401502796211401246141974362919010532024072545638763631564087960978211805446024902555145495105746283693412560493035257988353587733147712584849233296782715593564681011233095308164512046399547366649963395583297993054844489189979451047019666730177294184825757356879563837488954502043187481555941620893190633233707475213092160926997302595602062067759891554702555744751802650647407489005843224890863517062014268548365455896568990146216534035164293830585805092052646163034516955247031025802901373420807541391845367497596057753271622614513182359480900526440800829743346155212202568513318805265810085450350373576850921376349763324432443194950371156492608402822491414997402569640269779057575684097248477103907929274126246470380043637650308038087537454920082763546559095623208124265210086095677426085074919080705118006747034961261827040097533610823044032968612258489469272755029907500322712201177305452186463726704400766146390645751386186251212254689678107694999342611931003731167184649012825922457893629156544745291237422798488479467319099362839730963523961751774797777921239687517924487486510908774363055563138569013588212754824631119845558910574789279415923475208457477995748180403085355005045797591324779007454017114186905063641418241430668370527442043830206283897856967877155983879443844163638650383104132818956407052583042189977503077945870472434820121111756888684723487998700233509962369696642922360523631978041667573245073346625167007766688054682655991838526342496664486212735058977886045507844880686490746163759593812930745969021717775024425020866294367634741341269298994594948005418731181315176624828868311022096151728308857052188299113216894929219837241039330950762544182350843443024763849294116567807472934789166149979820896576350286540796879892020893445146506505987356893125471297460026929263849576971340757072701222198901962830892310012173878955594536332473594829114878989831974441549507703231538861168430753555712914605269518542885188824342472935535509018837779335544582072038724749401239552107363411857961143950126052532237387230718803029233655317368828882457563016369930110264032090305490967546868295912033382667479823176453222736168051073937497982354516175323464664321558921256944978433995947059934580789504754597744092930292543992749994968024469148790129842284101843266962303399970020169518845476362814524237081356082741720582818479902543167156214038124418641319122545574803367783112459308911976779378009202069433943520376952838945011012901757594236029644653870135543577658990806407011392144192032815134356813377589247213817195883836823789772358488608807255311892658517422647820999864915506433493201505816332496253495782411739990887051355191464587917764265271491630349760186378781126369116464324564757315548060476090849597749078719783276165258429048266581134948392306881775339808792294560233980587418242759462762114584033058499382630182660195670503240048494072406992376141711317638636117674255721824147960295655311792713583689646568401309020740860853457374658127576662001734826607091100546866734245379889518392041470967986476882701402242810319118614920428017797478079910351331258026158728793266963043267181353595496266088935979594602556487369045010647611692009436366338623769487548417859062747367248625599991501249956543094235897051343081203107069681109155978562142101666770524635317759036664112815156749726151142765958140428731388516416897842496683527035976634179049572325590959874322334891574129720521093780803436732849916860664778660071359779050155451834136221623066109901630507747715524159865034392438307690735073880733879271231392400539215315535887163271729221024036395410566165699253238947630377848082488515269191224586509114262464489894011332007753827271302108442874433101802234841567571662977080526562516710702414137414980654615030971668540225781593028258641050537529648318840761881400668442423947135286551364247593678589019190426524675283595615563828970485885214490124720322059882739914477583657540838956843422487134739833079967462425695970867279420602291024778188774622921458625314539611917859670629201532085185910993537583507104726983088379368464200162647891023996337890712193148756453972992127804836987470441539094551963469237941047418608134716101307577946659147101745330691748156066341772184208560107367619862210952725154152225985850657298264652015259153933652774847953942180307845509504795883634488359543502609305901579446997654409646224327613337741929267902353789396550514090903185781097487462221422367037645937424164637181400186044699858920946196097959929990308267082264508058979963778352420354967381743095221760712606464657777949404420100477559306466722905464835464328389683289188312648439313469532787600428007963098503188548205935836675950412577136695051445670149999194459034403559599086539285021985077848574356792864110920147139608731230302607250927557446479830667527409997821628973947777538884986822128370440571496169450024657913895438444430601860987100597757900869542177510562183717100485309834367870801337861864765148815408718386847060773422971117718079127798845375078525019076905795787757600850251164788700382590854122656841962686051879347475153063914113529431692932365105049225064833433374007048972715198222105243321117761769365540217772545927203467081065148711282528024546134742616102070452970549128734805803252799238044160650168944533649728654989872158516415718975448881083191200374918088004873544010263746611738875029366778154840500615980240942234866875940668191569252701212801711066947997784745769810275968067028646489319278850360035970971728730896110247532324455063083805371853640116613852375655699477296353436968650323339261079724031320335994188306603239716735016442450029791692139715523848876115789845099967968095977044586638212457807121638215522799499062365987108655017636346508681418787196393852703674342677780818638688296926700588450808264287296313147753050732327899500779646898476713285974533629603379466705786615399659135302429363296163912256823594903766551471414326306421857207596977632464254187377470936432956285330148345795098285130616562469145372084991315062995534424882100560027770812426369584964739390674547463207095035483392463094145281310123097380199014613593231906123383389474915597677505508371352343771550084355044828791873741551544595459692066071750060228658665063842882741917321862769209904019711388767790359929616984249503883362523255235468194436833267466455541434044615576117550928533925036188869800689412795719461957633285371230007172551072822937486747691809946477491228424885862510170724620936074522473796018110047495578083913448921797307379353075280252641431772730297893373621778028100011928774902793191951745615209260205518534012373782209219291781441783289565112173484446359936385422013230307790677263132968879258998468291628393773110387955760146597825992617504659364577962764611752329673229478097323810643762787870901505242672675055180939713227403407096630322849617107817937648097521610095523263809499400214670769801767814971376318687071873001711243613534677072646360679924528483372014781899710452865581404961431714823523350383802285164957747589058041628707706861718618096201989537241637502289720353238176508765516797709399978298615063369360726784384670967947771597233441819433220154891548073172614672845221748094101855006362667507563640027181396205461914115227277844976620378667833058117218359692327748884388640529772049630213738294774753390287947945996830965508248764085468538793634449397025484156437569426816641282597474142836386139915979083211477002242557918609941861151087443917812009733299746512783562420473100106135545608825021946035110665582824508102189911297714851356966783361786243263393249947827034810196141743755368870140834960656578747450707906233254144994610504464127691083962350775088206159354099252564844030635599694670228064477899388581023813087703800209644695484962310312743414411011245371548285321830235643489979107000357709348773093563306154305175889345408400196966336849635765403638456015776269115359419631202868588214605533364253051887100007090296328113653512324281931350081090148933780073413597819669376243114482184500767010732982404798960483636977848542577378088940370950454428642907516609156592008297523600948339006546375404142054099421875564706543264932244989733652742991367083918512647258829086452986476551837053452600168246294999677110094686059827050206584617700031712817253782441647492597902074929267739749107080989966111861317944520033928359545062570128962692526686789977811347137195301632712336504105318792884342889817772793444079450262484562204901416124166815138914446029839041734523590144537759713816266776747020032390530646111565879192739937783782028040203306666480129141853195100222152554680093173218910336244319312629262101807410464009314715232119216062179671594666954335119494795179611605025541129428211497856575658119630629452194638484551430171689589055570217386412236905988252118044703034578297039517033054505140283675421730397743507171910459989499588971521958587014544659096935825090550419260775738788928101896544395019823390531613146321882658266712223839411533255999441120272750660250892859105884395905234469094655355254486422155175314202203301853374528513362513572492078958596923509312309620071573661160201639827107675921015866730098318357434898013545789919269545155075006214491817416018502677342008524964583613381446099154289992805856490802976354810494506940065584665983798296195207018574241029025152920273101683074319965611368138404531416281103676554078325059962692445382974969134306518833909212373262041528145056807149413252261675554827752033431214119258084834505209879749411151607582340564416669758614122595524714791105642132713808353184267432874155574734939638649315374356983907190412878321114793395274290941515442960065984438849520964676824916001380792004781636987708802674291256428387397989891046751425714036733888233714145605133535883186010713504322063228416549386114233516086009361504778385064752150817360813022537302849867296616410092232823403442547623290848450858559605673669555922699616214566281919716158229226084164100124432557023678400412583850881031550965968483303892244307559997886263340005194681013074232922468070218485525304917285703587962027227966392652343596069992612220217804443018213578602555629153570095295959674029744369374850030265502776152458776393614789788087296588074857674780009296777133891764971857638179928903366261410064417416236101470913333851924326297149848602287125391406450882325409076283477761468667670491112505486997608791488890922015758224949054688845501973101240542358529758003834770946186188664942247183789590553471617650497386074198508330572991904467619789548129481638061070401301636144308098110637577441949175499553296404051816051634762714889169822459784387441508538071320593990319004004840091390224529825167805432379686797980985408606548220430686981272211145738593406310623689450180654949020145708106364376406052921241338739149789411944151678638368010443007594195762688064346558868413273026529363407489296096101722990009658622436152375869896471792112716043716523362704451995623670555495887860841654037502091079246240192273111309469876152197508020064859276538802515785979325043476962906257281957403446708885875433273425375267223545876487568710163839785196804240998225941169663731440813875948132336118550739202505281996377699871217075169027006202427979728423049141773696167100084517631646377103359296470009539998586544081390838590174655873521412990699076921299798239975885397444470456636407236194892148800166782415061210317924831421762200629858366624309848785455695564734497405534268249362523349060194655268381386051613857044555671003670443350531249569365921155356435609371587481793902779874046127596664721033602857497576025162713189643880426150496560329723820063076096803634592471265632680755546608040338940686344263342085015243601778548889510836202107299925221742472141870528268840589637832551930000298685126989730553857250756924759646316103895222850775911610663420821316539700282082119813441714084973963122449478547247251274987514346858322012045568664254157558567121535120050761571905735824289079860120796008517641574380196401157840427377788386235854935967810450394183326300343589500258057424263950779511280364991364701311252074142439011428596698197689924669475224515179510173630387786479961381695514578682947942430136527016842750919310001438696674932104699571371582772677887894781550788080015956797315901291059993231258187655087784374274706036400504659233526941914426691658530322653746644371483403262108451453588184046942974946798698140561598391155334836374546093899720945541617628190463403792357015411051291724774499553870218619077106170687927109904870248948644674816752518009716623498770947159206976776985110587313796862286817603564424474505698244764525851364902681985553343496502184714204002439589178428089907267620535634820468793477764375476395132843950066169481726199877297555837946959014872955791700615278147174824068920281484951419238532232431620838471678712035579099893369217502174053280766765624709422875249945657429965416661427165203594346594401779119959648939900941131403905896884699980801784868001707541321697781483653164576833577869434171350484678491559976788696605028714571661316998158472735788134624529148837212812262194023004735111492062970400423858447767956102132145200053114948985245537585069478865247492224213525496344871465019929525333239672068300101455982780588090601386258524384529854369718913011075839482148830723220583579015776338713062368176618081425638648381786609174552704341617928375197516375209313138465467900832612590345589849017290851770430237438453654377394400708344041627355483282955360571874119595921212895350645425271142121891160400421388363407467516664475079553351366804384617618054597869424969331599821016284642416999736032573726497573609325048068010600079177368122621812887979641162774357577626102209949224181751241813048045052168173141484309941290556435515073578182950762599546374009031622359614400365696326793476262545699422830587811528926434574549140562548041369242562924574279330047121338336085316842388485078870810577145116124729340941041807922562050021304668367854501688085938284468711455888111341072856030572056114391218453488621878048505448745348368458236338608054212384026897576034282859330952057976982245911184376466337825533161898934653694562913492140222182935277832630729455042312446207692504360450196911251066402891752441784110040133588560738646102867867346111740970438882846654945798233101367654968783871492302066894168691075303071178005617847369619536602916610588729732224012177033339463946854479565677106048892508414111693390389992965272634611163990214120565375676902832428293780948150513801640552519178723793034784248761070907467695401189901959088877318856340313477365472704693100125868413740449574918197053134632270812035899161029962893289369600390289032831295502754242726019879906946019536851298399699786415519240108146834759296994352556264779521516245992019731184654765294930397378080169627041626691966796669381014997438194279672165642618492453952979477909955910652293334626333854174899097388531316683196561176632143889142829792248418289783178526874524113564317365477200165058344236605759813878508908542565040037473875735039940399250952047581231943337179167900258649544460390909104144883707798658752794036317101934885521015481084119887437532898766236904619771449088913909309640628839361992650864988438284656995525871183410324000982667671860522937248192406347379074707458874836873042191761649444341233559548728914267676417592808872332579152804931093473774593373811036577315187099534371307664875791108665862404763687738296467903812892868529291756919048385800813498360825792865403001449756103752639221530600731614184096257239973805011474367843697042217379815801408865948616112222707448939170744374782543773758979863354262237567666847052835468290721576747800109585918754789830561457432985179314639738728561748053808885464368989907852408079190432882992458365714977172550539421479109720342753305551338460322968188240704692329075239861684882918572231245270275724626962586577153811458703358166088357221781411330702677716129290841496596253612874577658944318970768014895398128303653632550017617653056954806080318525459855250791700905141099241891649014508677551500313992783992678624144660174760739999578992150930737712496496467431555755839170811236902689267455067551788347670943982216586486635677315918105905407032632451776158341215515297134869178647728112884584014727458158244321100335055306073828173664017359976756365700703528299266093668091105483580792120121942586875206766848283326190241800344898539528901153043758970844382732857807190460747151879311118577600018465236040770222000664217292427391501547159544969485218089652250065636683624081482433738256274446588190068420450891831553977465900370895162334650091725699208879223512332611175276544215624577904312642344487149990076132888600435573888391013069445684795512925851195780245593036197020824968412867287796320832487920924809044943868568902623435996821562415126128222828597879737616240425205503013143404095623621145412918052409737451759478685853749268308272264941610771097960471270590286530173188141640191439301807632747972737780357798738466380493768273732527438766252211052420090842185338722989306031572705311425696529739825112034957546406277508739454102202400199124595318624021181382501827085997552434455479399582729948300653224852555900181269334224930057591484443329932140223084652167948173792468346280323941032918690396586643617212519439001495155447966067876655702958333236087663917032994665340475290248125206756879550755350822008775559251714144197986824043136027262732232795838550195787195329969873283553015880784077940305512764248497972254003198578543153154377487316880418388607304113208277571787314671272977826698230209880710141386734663618767557920875420258324828911744388722895298854840153998387137896415938648913455245626353341075370632165329280844454793274232604014218600737182920799221634811015817334172880820793249093976026260951747032043325824651532090626058276948631508324690223643872607241606884167608673725594624815515423444229588512173204762560607805429278399746403510899551195709872974448757774259332341656299184477497466164104955515978832408660312609129807781052049345343039345327065374382259426087723725001063306017729361349079461394124648391910752464220519269183242211796427201779673619914685538620782151959814811578265946553048462397083266650534467411464038916266576998058886870779014201276690525818282529646158247965523037352946879956368642135719429555284832814320041516246281514667065406977951242687675885418782621015880225718727267305178927801986846887150997876080109581171339840146711331781719327328094360106725006283764550221009516523343406280367637492623838637635749735449280187632039762474175994468989644464350630569220625244232156417167106738581335598124373541987501829315989522184995677867968394204855270288187526383668139984536302601365805106969612937233610832366837566428539052874505422956138462281855955617099414447471523975455060427343886447182616980383924121149857279192528337741082062053793809404065303428729513565411122228209615079506210808656213254143625854096558273649558211754014960149250919133331264588126398937772923910693471910234212665927650136771360017571313761809236560047739096811683537932437592829831061066203282465572606435636480290372963194333805639881854659052352693201132220996669284955568446594736438690430547898225401008935868868536982993174106093347320515742717085894922804098741716708751018655577788007440827345490497426050970775734274684776178211797795488353225312807061248682979822256853482152952371395918009737691550549358646586675802319450248388811057443755616390227723644859342686378019934675180438771089902047715827113218766370075267656950688867813231934581642227176833493767094958980049806695152943353888516216368098525491399260102484754939333927830571160609660238748339754946054688632073903596502604311774475360017361644754561346272946090733247874474082753199581582539291478182195570687003264607875851293748900611927160550015747208378515552336029463881731728936221154709743187952245582483902516905657710365715503294980611041483562087798697997780886822501382068042122894195544868040575432566138797636837787730466309263952246823772656641099070382830750367615741553193759211257685172366847935845517618479485069645706216749291477207262304509880761616863708723169687281146437560006295590775533309681608621551828496918511600150495261764812719948988880198174526222979407613967953877567370594991400158942731975137348338745510551728789360655444847075538563969523450247632839630511393686154289176783926545709631566157168799530145095543075772341825524825284179858223259276363602786022401021563823142674862853852591135623980429502531707035265698884980835689264099640551569077216740004948117341899485569087115148857647589712861819865705939143062702870449797654518008839126247520158394206544909088268749150856500552662816380870359193976678919298632307566240125210285987211926260988304831037654196823493698628491612382715076147081010396871900935212429987336806537532246155926211119468364682527644729688818785059510371590814895082245522451014272438312637680417346042143466565769015044875712513993524472531114418211988003023402263352332434278412720233396128670315859910901541943114321156351719859560146381602822761137706666130790959730423782798440375850109743262337195433302443517130613458505045177230141914377724486741807225758608809511788369882889534912906980684718404752616585351247710543930446918782318180333322083963830824852981626333134964177415841303659373525512399115577928982832465224658031602710131999517182118469237759501814673607527369209088215917402452841359082814417710006214683914132505831070460283500321567833592880605465337856935002103651646410820137423679380960403954962199393534176479753942087889628932147763196269379275129550939777469099601844134712542086975845863635077104041394652296858615217435340864185513263570961338371552427430788496851676985387244202907919531779708682131460035020212211709695930393963187182881132942405738647597318395928335761534040825838317164399791146065206519892898405965733888343181742530176909897541586895804537599415043177523169462447529830247212783387320240064615414881569069001426051204327570394655913871700250606785087229796500314583977910668429495253309040553212443436565428839201463734031543417428151320471320353948600138486680673792265322859849357598902217658881403036486457399473862309037399197196902848657075173745878316914437254793071071759036506152286216751950475815712116462312331252917660233958877879913674189626312290456565236100040378200296514986624202358954876717693368671629395992739180028575411495720555127253193556235440247538468222845322810547560541369909840770388852499577710070762824210297314600158343065468541378012834882300188378712354776261187142140109272197887162620017366929819916472698102673883978506302060267709395098059985607342878569290441875527838914786687819721992688511820304381593945306895401250822991316477555377971498462966681531759229800605113252129809190029497334788746704354176559478536661769385454316096877173163090533070168375314894014162326638622370518319728118127782553645020400609231017248683450048657761338128440098448275164099586884852023443630701731591331031991590830585545629546989670880757758787046088144468156641968156491359322823690945581464254568727397710722559474734224167423308531714259777553387828513247222796541548316988929467032576970677818664384006244638155316147714528149997918076995899788537483672666333501495362089884078541598821455308392601995648838532162920916190410199234504094287022502961371365761329771889351536780892056860894348414193416139197167380414970731009942162178192103784881998091717703387661169803284651165151693590376174659872507054937834530873168049098833692832452648148366108274339570716547605059551335788830786467124401831109383575153373194405003332869553615402370224399036352615076867741179360362447769212263844447054743644954394858529599655651213798650066950476144519564023691128679084040666951679544695793442513602383034364296907935159875416788085992874730527409453093400713266388390771934123414985942877240092368004111017823667565795685722730677547415433312203969340914673153919675490690514858174796319095358980726105659258876495912801426838559297522330542442367957066698271474446924718740473743552221170712765503720667505198674540997181054172493421364594632610242188899319327643504475417888853235923073237068432992597780318818356116822017235105986026958720827128557246001884394254457030678966726378933718608975893172832522865586791527434122434118376629247185100865664718612907104022709762877122346352904353742801673221036168489300575328725215689563807108287399675173116879672366360293944054243995103268552285154962494569831858444288090416503053429486598270567981014851722942891206885834351971592413695335281049554696683910794749155582116581671957894202169573996647310899567567517566423370106176283507235818163827861400130542418072129830485022557091426461767984156922332304694454250489504541286061436059633261043800978098972291456813974119042655054973299616704287448185776885370377714947075180347993661161493859823011514336240835845950271442992544406492577126994696038475930490152870438896949683232320082344081971480764685554700892595152344798062143902030829258905677850683632294054888472786977522672941259779777616155407387983983753319815699352258732310816116029104795812687202801796803658087249068075107694872135626841223550916356406018839986853737835550145393894684892009744074888367339360542212796432632936989322055087544912193990471267902368041466339236955908261851175341350151681417708652177817796597767570186091287178345754602104748088658416686126053382919971424209796478528386896424552504607803858999547987140243829982607576307260632185735301196353107788651190783623079688014637259391643142886876981175095748145358437768467628103268850661888499164722940582887983328375752427381533738429640964482432232528290663481354521015989129923286340827579766313909521901082758623368959216090740853507204524230961452291128181814894880959549895313672695501243733048642477199821201782280500086757225599931295755334098148131586130813144100837682549400112565469870611325837034844719548466453200501714324913087766132003739291797624869039226261345898898026340150365258739539229513618598172195254449435693204256761838042088167796808871748805617453027410807580277321733252411226508122248096514160580756608333785461824894619611514746722071427268226016291641931019663114389308264354459564780764826557469452043703823405296893845523007640478284322919518472581774631981144052479193988926399240191448314561610471519274920657363563927504139815812477043830404248379911583661884472232667705935901195618218041991637053218920568697730117237630983813000532277436967651482657673601463391157153512244204405730944118880552284787894005374752110231636334537824649992039420418974568458055029524395058148173383703416686122091174432109143501761021437157482259617329051437833194326504872252374527996334742252818598471997981579522610709163992417097225532281770282059597581286476618346785013145559971421440888747236493617556178190448619320369113787933187995258762889336956276994047997601266357269483263074565842278904501657690731257275139223176181577832760430926193555414042338369750159640181451772060111951520818798442064210771418567750076887260773755807365376170149838505913449967344666135752731269059153557718913709380815818291049021468540012121983356694854125549532029337143226156589314704315057115389469510649450462311262583668677091244148795455380999377428364020429653352989988122578842154135416071062638870123943703166372563258615975631515053198433005191385615060521430417469638768899576443085229645193353311784218135663044517088991041647708432514035347059446459443976023922132293062666886891811433884059991028178903687114075830369785072190458525509410949586749564885844394130636634600127978810179702999866221231418279635815306338920614739329375426931152811586006766167430776404915876607667551089880395273307451796238604794684257231817913184600441055779665912098071090298371209599471011456991558585601113674954094267955963164738618158864926662954071234951641412519421644636655499036098512841391999864879533092626943686093622538202960117536256649190996393435576208052583609898937449989969944052681735981925179518774931469228166036983471588794505966761628894955690231998421119844508351953626642987152845943432734229187483252769755448431664086260401120519797086066083569561107696227666686143212543655999985671707911640256022049470802768508693153669938658024439378325759550019324924302219339851105666366450586687671586329995397196773655964424739104458493014915663980912904060406240364267941694312394699798266093324427340583441956486012427401313135135796278221135855274749528570941617099200624981529929565972056373999939002857242812136277602982165301283231077281685849710148959718106853067966176093369927311238788502322664274000027354316162743574647566640701673551400613239217665716814662810153689945537069559356118981475853406084564129756631157109439973458663597772190831622499498721250670268004197049727650369642961854935794017653477568054442824655776137448034480392673169139711650257554348410422701090899327456899109040058523391803225096609076817322356359506550371621579399206260874768131669205171622077906065015013444235224118374345221681335482144166508903716927034116517726747518601038278566413730917426554584748376460962251175348802419272264582578492131096242243118234847073306973277362899435121999908252643143989016722642813234647492660892834156687360423646089609103693189740142584273819981834760609238475480630133719483977683513976495195515393615591523410660788285223929004735492888321227643569760141923957142223567723784202119410963237284130640929316005863357235851193592385883586738433844422135664559362730808550373414289211871175009515228384637363456662525897172413794880613037610080879375822645032399706478150996294322916207377733263772166584149566535707697915509211651268728474363735217355429095829779179233369728300235575770570469911057712488092001115037090987776955788072328267043571310577536601766827473274351029609710835165144297114524517183795764148157395582648539618009517770296593953972256224597179592895281246920402747257157514071218301493855552991890093597643291999379380532054850583463861024014164633196975510174045226923872448194009055908078811637001731370045963354753418426481804009502721883491849078297442438843019135268633528329900525264315539439365350432709750457991440450047348251178734593661977783766577531830728111347646821237676487601816332868828743449386209020677680596342578537189093634856999132022709435762945099315510644647274801122494362653178715045413899794433009146362834933676725350042344713715949552096441202118789220371047676965925265357407193300516630075524228949798869432864605000925551357692208349691964044228611336391586457511773795401240983776530929392501828137099295163025880577014014304105589542194525759593631647031958808290442502614088990201112532869087825004402321796327789551275353204229095392669229757163305263259180799305428758640449585687049952569641221580981049936861664454078662763549997247883513507104409710736787168932099319132603454057161851558588417347125939239328641170109133870637476703778555697317283232182179957394218608459368300173601554490917867670256912113603510693225424668938307152326640418528170303142468377766484371158456514634023228316160608704609705198463545950055972072222303723615275814907077541491901071511111912289700986331178284197614464766292363586240769852429707021488806908035351131901870135362323643234179329528076855844956997331817222009173381113832232721838296092566184148450110802258312558749982829428638929766884773421753746624911495785930489649364099376841685077992116903406136283044361614812956949924920407395007799672776285426408132035580001169001770824193809430098089124674965660187080913544575942494633133414312346385472593217717426100530040929946592394577466313224444945937470067879231758109477691926676178397225351172010564261339325097210823573351713355793758084238665529510243016628068577636196212575341499789164324943250053680390816081434262111477700251892432379018022048128202467362203675082039721847921773447344579752209214756932528957300275971753080007894504092913717345150070379924701863274996293747797344126067285019964328782124636840424813611626321372748536629184304601841174165342475125742341127831579327295346476993561765985274620349995228733188162714987636562259067991525797065082469762895723929910704450217980240179201849473189887957090370305721390070170413462462324663281342497752311524200652033939698663715228520951755198775982385394561005118860379601140305812560730748373916275404000711176474820673976611579700886510676355537536863966457716824979093176204087833081956505901272769764199056835427071650397301365102156847708279831994901845573529354257954409644265891879047541297596928028448892865061311535493560296658646202025392651846475251499835758942142776831009798829817761786205950617459308949919469377544793289836435647656565787459182279460238554591740010574881224357680170225016804007547581519261945906451199580783014027047303506110675605383802551644750931534022332430448711300323023407295725932864518724292115843149206462653005365525825850884432992063603342171317947382225396795654870974387133729596254362892928498354548663483510223413869953425379152044805129019289564576026968112829427872442882061390814773985722331636640680434233708642404289318623615191825520387416759223055954374731221948245021491895798755367384924458823545897089361022068786513372559870812096040386732679240698839301748532431898180442262221919212577444350658540037906903126627166686858529635448047820613376093412733199288059527265956508045544171564375011827231156230861648681957341962525542141357697631729439719162610579516079891696265433395490783646434045224765049170364924700119146935868229030268751910452050788864052641521887613673031384929256477710900319291777559068033278451033770196348615348760295558220750642309438478415828424847794836373805254626531137769568301297131115796116065237728086224720429578837817052017177110251684618115107196444424846598043311206377775352387198199554100194298801069140113162794561402912021363420822002379662241432576888256668567717622247272406927409264716707808579408713254239072864980478855323537546228147368468059877693852834505734665582020785989756422863298004222410220456998822034008042502734126730923467419889249092337272833300841620316281312846150127415594446300318794106645802712016155452365262192714019102018002141655152489086859618079391890013928008848973062541275229124496541264915551657109804344181587624008997385769808618909403121976244190022558132399034761060585234073711920053241510430457940587783391862144931327244598808771089041727460015870753767853560486588822994893082382368880102272098417772546017421546612020938530300564778474807419547005086011899214650900731946951173627312023833499107173734501399591265906281224916815640760511644009487285055479423531940276033752324768836930275686889472799954435992890737374116983295159797776181766948460060637599168035397436790373898107666330456348260160947022780563090868591303631517112133767929984364679332702784653403774366891642229146171966299675062237516427433464069853312584769517549005278416752384821361586107516081174965043988671662001253950499006131502122010130865589539017215896292580177401005268091217037953703003767604571329044615384481891393052740157060384407857902323135879460183833625196102125069756704403015442987561074729488099037714763259781830640444210872038984696242833247311721318312679571445928264638725965149558916709740314405725744215671945489914315225904657113071508331404358769502732916926618313573063153102673719944200270383853497569052421932794776300381627961747669556749773047710310935203449617028502956789775760369301552531217306247124278297105903096996108724042891594834656646088992571636486756792623261227769729099134685511063741974326132400362833452529155675153375646310161588692239636746278668737127190438430409277581983336483932138121080794841269307533134225167847551679952479576344169769809964801872596251794947012482042821237087244470055129953691834560201678445991771224351400786182010409100087820250633574172322296608061012919957760842076356162741805033970393411554901493446031218517782035086026257896098615108027402835468648359752027212151661498931098552538732078517779600232645576112201918518042769857256497484542329276490401460687675622096553833124446318247480826741135110212342070713869505959571477790030591680647933466251412392618758547861453807830075469748723409030444857124610711429390972109463360895618496451734741288564867616074924913947462006904331383960458894865598633549347694935735991616696790121306387327591004714811277074949365403229400880609312752870470291066273537426110619630633574110630765992383853574762435626791622380338389511717830642005011383595354182055753899413080558326639424103505813128515232954902450618801045111359358495553722384138604719689916389283669818009655057659715363001335069713640964910930135039347420464571994983386267377339056155744412637811818619408361982034483622239058158033913740753230114185121621660324376978794824766339022113236211759725951099726906875430347921956216426450837484287203861380765439347172149505718062855834745300142059565877300960668008234226585850686903162334957962458485926090863418934094723077785516747209720322150273081637917433621589430137686896665711745743244298932987516960338793639381805930765078906080312827946549119887657351443549133979574867538784359125389283197669921816186333704761365871141591326046695659574452482784841247604427446579476110833018391023630845402672144322932936244713369396184475182704585146505321233473027482621723318955281155466149075051002928743566110028284934702124088090121716028624995132162788895616211286618971288094298711435768681182833624452296993301740568467830005033160799194493819098263222167551138088448233513882131557926872782813129647872403724535196109494836816038759859170404267009812059212873700429794287770964227391115620470774206612857437751652159718813464033382895435336280032253696114352886628151882325943614911696462468285220855182630821333742310266707955368068515094462107144125548245981254679916879403796158375923800792734277278081003096356437903733669193599469683872570193087474267271283506149267695676948819446163014103708928690440982769830070745233354344824620082534817381260338270547185223711193265544396341991423211797291403719739394576258198220252693841347086658026857375661492358049633034855951068158064931537900140655492741289377826244304983848276352861649466504860843044217920896932293562443180661331409680870554853865582489323937701220796935298130193186138985208896862352473823472401771758371572596344187966678234321053594654306711337953478913464121904204944085994325619552771239401722385871541532098819899244692250175926411931733120284654960802602805386442685600561799343428370204602910238420862139306397508859547826417517199752557302570942938494682249537701666348678923136526753731171206179858712112021844252552629454847546967137483210766065376405014904989467008422889512442340931089706684111197086861844545996613794278300308825368231683113658042911637729385328637383258991988831264272281171682169907030626465216038843046750342851689659183129529586749549621423020435792583763294697032818518364236343492976759798989792058613468341938147149575304883764737449294435985609748213667070336539077888229692989521925534556090729433609605076467955084746095647444815899383280305841578872626159279891337182631302238237823211605528992815822684187335140335558258230906834186483730016666321372395113574700005652744323821618930522986293544351844710504987407818409458495117336345123861021212834129694912680016963296550104092052504075797106246838960855561128944183354976517880645202558755836422916382832569133411868865372328565199618645141146633275522433335558641154240108630515193468792448841967206010994870885094745639192398144902104869013472905580417326231857880813884865113766513678757010696700615835841211315480212905533287723112850805133230592955544023529307727185303132706914443952997543512490577887260644705206087508882468747753860344065446861468824577438903936593956307195581745768025932596780319711784663825501722012843255600173522768108898150755164891871310614322849384985589090604457247490872632930043270412161647711387486463769452160983820571675062642147735594114174889323851674876821482033068548724101118579004058280744503734120996791736697291611104957332649584032465933072595117179265098124766215463837334691952415307066921439118227849409769746145224389135779533189160299108968413240198406071007091390417054242873562614693746083525568421822003440628669862697615667121056496977727881908101385908692523837024955183109095380325608912270322653031911925392773983819777519868509615098795964511595714139531528672157273425836141199523012904112708228613581287519232364336661994389245682386862035336852641919552934022309654200616467995076173538389235480291635478410395193376063011716277889756276421928409186952172782747594958360780407154397796959754222558342147807449457234692578697828189232951565380327847168116454496384373991044342955123747107774372462225369003286831308189368024406539571406551454849751693537225652692096551032461859408080262548144195200914618013440849290554016238791082124090207570731423292116855758449146618968897269925338182208943590515509857038464280218323000926788758683961451203286579546770575400205311778117462059344239146322394317846180401191881097981687170395170763877768079526600282516500822149731389840219731324609032577164538559772336897600725428780743906441820904269447702197782703856437649703935186797954755326291682738570066167799820565291464442151709512147893437958393987508561037981524101840975219483805961499262051322285474330773305743251341534044238649738844877324835277013688862417813410025421362516231836792562524510942796315485022906135087508930056747533716183014364633159415031551657922386582085698736826844073770543559597431139965205119877530095898780841567782800467727555880274196279871428207269908391393872354854246072138321340431956269474911516255913355561916576262444451646536341318519525428120917731343930019151346121129303534904416813916971075889609628835653848165915031825517959735544870018573862371722448452272677526098477549152266870359611677546896632142802225610694867897519462765352349458115881082081905327901679119822355408278630956293129307791286382757725029251639060939697225141542070393803800376446595603069103255415227624177496827597220140975625577111084249905539677966744165088116525702697142451389664059259746483671585702041990859005524425266851960275636365721337677436907731032934084825944096238884042966787565292590887602194591213577147193411162361988811248734384314293125954410303516439549742786757607932759399419218038895324794206632520587669362380959996387477671252963056948539791432912545727299446402161729546528908760964456133385624595971063320785493737192690469212958096713376848230966317768827654674032251563545215896755791101000425753198881779150267296121808032802087735460783718583215297416325473638065385847284880438592582745636736334233568454203131104352485089406570847417915662979206252246834510500656552353414838729944719341919052938481312217046803133296752283832051629751277711520930962387968931477959355347931027866755511352801157224328547584423529211242389502550240758381337552897628315203681301970205155062863537851754463119992820883093547748544876994597849734763306816220637342075116900640900597305843783646758627071861342226169055800294593515318554445378452708497537118824893417742832939119827962427205766700068407756797637861187031917201393401585772711674505029267974344165241447775652705756241344583729415434338705168024845218728808425118226552615454223404693137738909490434587435232852062165577520952680833444473075543856711463447774604678005530837834290231779704833851186824408180221089554679120298495797073555410209873479965784525971390211157795331307195873055915497401669772562904403517536928865854158960608417306354708681820894368714791276805015579305255656815159273874580217405990509781887978182418857094351318631757315302666497166074345002970800587123255270314559343326755029668946050554898121547627374782891648295870129955392627631717065113408839259344675678148857653476035537316908829307702962669538833730605454723621856449254766453988046362935125453781804028009616363952389496223490801790528306448754750824404861423686077008849386087714532633613159416430491538079906336743150151151758439283437901856998982584831869661554874744037043292218802358236569387516627798292417436665491006778444541491240651567639360304672739492819592695687624953910674348739461099462417899623182799028458115038074213242072361543079386207380561768094578007760367686343078732493510519853298829007578448917622278720196890071121149988168742476069031686611362594517484538696993807525484215885569870864463834132768089665904878025688753766384718199058552098098986440410411344170023595475911295387419674634759861431115294402364690608449287312110609895984912764632069455919526922001632561196941337834656321535923427949342347165967193660020839542876664517830480466654631606469630598521723912434842387791716925569170591196138342441756322803578061307092442348059608943920891700597975462122887059588985480037146367099702167866733760142167414056776320045220439230680542669522018826370479068935781389555750515100282614890882204544009495474720674786106391250941079169773471276597912570232469893535953382093393171264772562572274347769167332483742341116090748361145619181235488951769036157711501190884510194840802609321151890118991701639732277389719903737181223931231780944493820588340771333265919253349271426951851485574114663131680706945104565438464334887299826554728742946502326907932186728195680558022297483292174953483175847525873720193897265624025578982906980433436788886624262518578270841455436367089726971878914993237954363802271241172516295808616789611084881467739011436629491613615201169887442106441035738859802265445711606043577247088083529803108807747512709451328864234591158430911654228371685673048009025985074638342407312550450379453042967715790311580637161058948610682438274078495612785830816059266966871495898551014766181227483954135737952251603971477667539826852995204135144443489975920263406308108885654422667619141762291168048055479993846299692131151353128739521629466724953314219657578257064838463398707692587509806923181640224097578860494120671220787391612145786975043987811581134424772374575485052398271322093856483935374966474896453938933598646844993598896531309079265620262030152235288011203667062599086129217791640356268722419264379907084407228757243549847397535664519468563361770568627480458433316353597283399526636814794779454829093060797992882294729161793414478820266319961434319864106551297942709155689569950081964316022481166611526577282150835672455474050071422848171382419440791941295243440972148598836558420996323339984137360577509371750131441855669339788779111622853098448219590859220619376987435048477751502537208676855854683244884140918163095210041790403235326960998224078706590060632919931957508870678750753746676059956800239665356685825059368814501448979883194583243061654310455963419756962717224868807157926150837763425406301396163141212022049154696067767270661837542320275626612298526841082886774392063640872893662130167242860804897848412683369663360230569696484375114422705507309057369719213129733976072671345178279444594078487977867115228778755736656133380186528848422858852624487181664470661286998053298198415950730021185734181079331814008608135049435749445425547682910577676364423766195374007843085187896314036562615748076362138858445926923365609969720305121262865826880751497346891868242880781875970869815816007545793720105933411710644031686431824263391667809346288255786048180760149922826478780731344748985950187061064003100532259516031146826845195401613781114430245721789546539513014022952440954834317498569922950484004065501802053429794602896385698591725513362840069678943810267152862210450789181455534033866586442849510910461576679711733187421889237662313586613673985764735605842971818396839033194171232731373672553313241974605128861666190167037493393270355742788473433065026978180293328540879293459067650989551824928108001648304079117627053336707778213421030762388222430104756977886181929374802097441410675014048616526954598739882986285307498112040921695041664814513324048838511881216785632209593656176827705667552797728531283506270901318697478768604640892252893948512383565176088252125268127326983774030029505544166949259016418386808590917719210292201813784402622849812579766693553771560732106860815353915624570772403239885868853343376495932824674539603683495484197746176698068787141776451866439602016855646260975661856537295101699924034195068069802506438552683101364209844902073532099181413350110699620387463588405065146190526031466365856329321039020969836513439540738966386028451725984318166045353808709763014335894367870718805396810463813014747995468988293260636911148782372531893835921123791803852506435707032857553838515118454335982536193233888020761823027455321707447511802668148968622905871367361188429765017557142234515067436269419806931964596629779297012854222478840549019820420450417558527339837631470881589886366513862188600418726850327714355060691210274864555584032358492149740790538686299154411301785158715851700023992850872190405116014140100001774004131536754349371574008197981869837459016731956392862549441064397573536725759172492079401667415706841103614946368432353797049151683654331277484513111196132027355841666865314654305132899057270406431221844914959743041769172954105598538967187861048641729876216463421121549245168989550203492870356561993659523055739568358263919465449251325863823849643380119859460849378341152579915378281063876524431598091795324708410074918528652500716965360098818069386797595367069054512641865091844820852216597648106990042091518816426988930025703191513887683068455318635575676401412149901621907698001946769443369342828790288450458270106804743980640770898913937266143226471192794307019892705868425757156323967150345810913984972948353113228930024085128187812649901781845059010605209431564741529785476138587640908436865801585051743291604792088317081345020599784975069409142590427585644926509446168714865425743515137252909246972349116289614367417557839199057857719203574522817571334760191151783282611389972580053203379035362109524320164220207884547957341852297634539639896016088985626185786106085871467766981331572560942409829211501789321731353428712957216118372792949113080930705092392961155568119237960124588134474579244284437310506639161409789362872108094884773956160345063188708820077245290694050788688258832688522104054322279701527735896268909646373272104888152511381737503175840028204715163163968539799047585482281548911395037212616870019889327972227460368461961406819714930810648285856639700201043210540423619093507205783073532659476669062303598501533808608566088851711343161389006305452264055840454689989321840908890565820160024229034980747779463444408629082103126375296149423856313271361752759741065519517411461180300161784380617330281755735988882597674277661151042871533851944617696534352567242995601391089583130559476456851524702163513068688164275324747689658372138885313155611832171862123200993556920076349881865473189919037382583776856306738131610888773982208811548790587998647722573320751306535680189225061771459375416761652957382434456963206855469879571491513940129204026518789027474686785591483360177267257007945530217469719719131933344842466113776058822642112337177583268780200008370293395450623542324222964891907925138902907497883419612899249639872572117619970989122311755798767486931223497045898696248840495003689820734959301072767931254338962712030063834184974051722873706416307936785894316239682501170385619886966982489570783769171526351132071491115325217088402421125567804313814166636649002076659125714735194238008410438338501612574110028204676412926452789842581132045983982387357761101505710870061494865788811814826493626922816495766942526632298383504591626305884634669894616706927441124110884318817154695763375243985691326931273102995023718428453699797463481202450770242529756170435064076618553830068428777716885920759806534571178015620900999019331554696128044503014389117090370406842127211118548201014967875501441366329815190470399164228394422604997916879663209227114047586460423869922172895222698671413235515756845445254482713722637296068107952900985428797032423352415692487428776215292141022811903648706041545941235998312620408197282808073827075907772489290335790768755875239014175444136157354034609301910319610112522557707887824985775661112551426940195259369322720881316657732139650595965176800863408412790051670171106129170414320233952253759231833989129369297218886840261377586765661439560342081294552084074300888221195461627747445414441527560787213528869343169360350310749961445040157886116737876770803653843550153625099023248438591285246857100135110189754384944165264832543365101477057046086345952726486500549455878501721577397902900308182455526410553685121752060560868167364732042680323672810019613936829423121462904427376009733328258498786655126391109504822342020471773690580180136246411004815101210580742499675722561696588788432601011265728396900239346526585238849313311782480788970126785209102430079501368528951663199220351175228454924800481444568461998447134894528489737448782662013081459688968726448382260692489992859092167104645907433804342492849293370909479525929478464043671319266088790906012365757395491641648443923239395151970183771774260495408172569374250867027247663217342067802483167805243421468981604487787051080717253373627698803549178729306762099852824601067863772108201714085256242304928095828586484020864737649948428067700980141408534093399648940961594943695869520505463317298825854453377400055410043837697892951766997890534275050768821260021931246601721685090085993385578873031621032488552090890764787009817009207583373503005246498339649312275511512254671497491032171243952523109476400070592321063772776654687244410466154017160005781400855147161921868958412569421575832657080025748312195812792699042189603201980850845976906670694537883850673489642264863771835880449106400698748667352905399832023245706933716028897009597637231140998038454584269292331957152705711580625081913487945155011044264801684557733947586829463041097006688308229741613299926891349773871991336059985426612579442285896461295792380133754905765457686399144035506733650665855731434676650431657891447463117503363979675660447731089042638704687090138617965340088928209564207890155947492444765570102275015673429377433427755053993299554223638931984292539870770537381292047001277138930326041053855730887717721110203037127546283035288072704324878949908957912987980703303197866846330126464787357236021437423196482093540437040691415194164662513826149339836658307496391524088653713652496894705725248819390181976680615562733571040301466071584246105636827564852428222210802865565931422269195748351887065943981209346276491514017197934847467774763556723886916901113144239108905499510627046139236049918308287118324740948192695876942919868365282305156385703844538070536539031588725156907486071795920918110453843980197897568156470631043147859140834930848366944219303282490777897087367235943048219334899511972822031677527551084182284210405136196180977832742076603183015921702062669410219325690978042753585624617947777001352617239746124227744773944544787044798291448480778518059109205465127238954823871580974924688836003868568816269332595770331766991557703481016084455362811101171893771675884937563756963379250783145764420366603400288444622562800416019895914847557991524000039995446813101301846012713739191862030182783342574859892347504471037708041409446171023306729766528634226185497362834452705679615914609535129651380886221366430999371502358382871343429632218962479096569535444388570364106583348079596289504950141402451325789618158778236704318599285741636289319215050559686282167612577895396815585079171206611537130861221394910950124321021578824299199217682887977722561789864991079708960684672816436332531195635844482349376319814458214991630327512091262204891411503929523179000188491855768902203597961495743076330920569914222796770944674000336946632858580873073557415942959672928858779510707685753194006378569767559746951909397924622131095519824791954586097933282029749538356045265360997733011908565230654459133146371285089416335839998930049776463777791318261970409696599405141296069530674832886831134782846514206542518189357149838338503655481588037189662975026307873939881425676043502507401075711870656958238107715702894120389463293531552412999353443262829419107455220832575447687114316977435525146580149152005359518235279934215662040134037788321810707070133522212011316130910403097687592025227289351663198276488152615185715562961112500582158516829634975310065217513680504026391855009201659526824248575258390062609076270634085369129193084978776630611938950378007903457475588130903767319971566468709649654250354342494128220545411639274783307985473927094776082906134032916435219077241781752395454578687388267458413373262512022102476563446092008671961541942216980845346597843252591945248898254768141303769273694795754537072644920696929344809729759808966128756163711341401568362668375730116227623377401842321467967630586928737182161657899529061997224511392934689551779876137361695433262981361933356131160761423553785032394439409244307576180067728997552569240414960661348577515359564642009005887676934284376048407418776459797058010917148881616068817575609254034671514308443553499604609779148721973521551430563123680535417852541691311076133032702745612867953339854150715224332600677793520502458871772886559489649139232716305637766257642442747330940137548554539515285311139537182995237537084448047552239583375160436603819479334589127408789392438193816331142761648646386097470383232684948700973750120309262260727516213272278313315478873330621178990871261471170327387763875508751527094415867044720638442133161814207118650399406034114084736973538626054541277237790981383320867906404443963592460300840474668190188718155547490208315379204749743922353101269161689620569724454866726952293240283921555177017127046135297008802325399042910977169789811368805959413743182005562314137363156106679543879223306768890826784640490262252465079051165814615889659191291371560822521703372348380692096895694347537471660324397973418107691362836954871154695060915279905047446546352804438449633123083828694981958784673582275739101321130316374618499659556866272687148362827762968158175229680571087923033996036572058877111273020513347252939970328323889874444855763097669712357228720332026793824868950381043570334977160936839436160950389691846874147367658829178700991959277032530204270297223513890646985713928924727413359030261019131934589358099966181274875290051435864145379982127873898732494993747189838409559675090382683541876156625981767963877101324819401349791789466748124568091713074612212574852196197345418567716859746418942340184544304152646269404989138962439797614593631067453069077434735414225854792175616679581185636551951543212231964687279467027938461012994933383021404701272029969085841835792473638236046937569713119589780798486977732306631050928114198463381754990882700817673022729308765456871666380850594178538367365247199024899559127463145991630847309212556013059640836735270102018705468175207934281169884229311990931838193261998743734194461402010672959467555107047652712721885200161147837939187584827304558500991527646571432258098343802306034292451954667110025151010179026351862016243197121337648532608769096189671272862293825442754697830800763896781423670821406752675731440820274157246606443249381141799615379074708402503414534597979687206297657318517409138710774627949083389554982483501425811117639454790187750014789425053727540534721413587184954279636175488146021505165531956501291641331162581665013384780684565848744666131128614106233082422781596598912610970694028076127753085161701109582655196172230402952012071684299848355180947635059499850798162319234941744145391640860782034679570102643402807540135232026775787842258536168046097514899290832997690606137418568925162131625396892273503616432209694952079237701365769366122058519716565228698491645862483241495271887550094732094756967620277706198402912963300875346394749477205663340378480277900704530427619124655062385060465649921590233917113382499296188278328398854447582354034858229822404233416721189796757272990913203609918792377068974558024385670098844778458644455996864860783450795536639737091330978743491645108025505646023696023302268768480016504085300075185499846519033023792458490504982417188899236259919745031700892179540980392660159795779881039600429690578342942288761032168992586451631969024512526385994012303368983458381304337611503132298009890131624323053597329799705759317861013050501993464608335163877359266559779875718737784874698514302896937324573047162961140116896039511899641411363703584472725601163853835592953623462514050636706053864241774094290041016743894292714876279766166605864196189104174283617544321720447647106717188470647560312089275140126940759635978054969365902016007454066956848894750010879074762022174377571714659633867183801248892488579073413583465139998471564371858399362722060423373938447214243093001011449087900052531046431853201765796781040032095081972224584576241505571220646684479290302666767953921440609262984973337852304622420979326590360707641431501452444090470095183534922452639359915815101043019814335618292291719042957527489370119229996268651143127636420958881662206814152564319745581532800787362285587674737439622638512417899360382818586917203126514853998412355734198328327413677043080391902193121353086695884598356001086042041675460973368281623373204606458168078375088046312863045251122990699614349849133912343703411822629942714002133928504247193723200403412637380701874920018929730438829015357362289045543402530405276494190483938867515956971317250352201067617637827146807048896672372982746466957845489340916213700557893216873821041090623564569556900330018930184486225478060054201528835179499927274524366525601435487357909541347293705144877221165883327112506727346101502296078525148138874500875226186796071391213161783937569742781553937336059809202009337663971903867522596931529654432853214576928839128907134593499707729033048613991385513847891415936948104712856264420277232645846257081646191390678331644351880360319186997618063967158461435553597171929047411989232472366712273874938083374291339622960115657072999592273662291825908922883818248270291999778258181379294183091982294308136671052121605785433193154474567286754926585336295868253360039283112500640186099694213323592045144409064876497757543373622290973641924840478908097687834573159962715518947742521313440138554861721791232526398971870375825199187459813175355806229379474516709314253913615690553742221961312589331507352267050804258544162339222894787855004008050572772512514594576233919873585620533691523192428831487840760978299436597128053872600235498883377237468221897765236569775519061343362606012013949788009308582007162100845114376427373684949965158625595616550175835144790685005678942314136117323148099371704349675213840869246958796842415610695982420073144235506344511868504523760884107485745222950112235046538694410548222709869635157382332810862006400588062348442612308574508148917364632993581284837524228220880852036139615111724425621223444722478087405989294700336161729158002372959989667383329572493256680863466265629079665715821506020423423222397309933106173329334606900628297467659238515570452109479803027167451640130188489946845962445768144387206552907054387979062459093033203273757851676334971332904696420001024534567770501855558044453575499614379669721120228571254202423252866030047736831642970587576053611024549025330394364331119863809368326090437478158539877845866505059721329762434924077438174696118708025200579165598456874222340990029018154238167687285564961176881907956315352486766294664183957576187195711369290878095006285708160978985578026677130882017757488376018472023522375842991180447045933519378171550117879399067357903714888862388846128317845397619225348347706383459795094610907998809279882666162430946913979814350488940642851852031878150919154507055152659746055935039777828716070258155895115133364212633296663156981106930178450945977625421274047891572190628205632491715952678705603270442887130903436994548444780604167739706378393847363445614272637263546375741152813313905386735550560162420110244268596380347382638447737834663372608540757266014140519717860344381509209389256648047168993892656641004117762036900917537749849115324994867128952467201923779375974695370498883121022640486980476393089156542229860984328345564466905857366175212963773582077840895899923087590009063481100343258551610315470955344472613618398137850937607510856409538194428130134789178500746715111411301134148995740718796946116975008365098170157042572411480002084732286540772255324351854981691379985192663629062733005428412421069623886476106340764141832677924376872062767011457880384328771523288538470187355627492932602189884961757039250568457548576788688120000431524730035485961423571156425056550415885620427763811150983787349665014167021889940849710299885635360311304324004565160874568117829381311243967528925878587170511518406150364928194308931127974593267098268369585603439581738336886591708062832606259584625410164766230084223168197129010132166329865452085358723761369989578832535619169858468396471530888125214167047389114935136099772639929382418062303994573221840162755516460954406689270273986374700428735210980898705357241363769304091415006529521813148889758413545234272869792030090132861831031558633743612430302057454088759630809890903305792590872646979504245456108911572814271835916567078635946087341878770603271984541412678978611766147753470056186599536823635166268231525507327298287322212576529210639466997374328304909199667552768759600192265731472513358508693094116406698487119729280525780040895549412024886020017924923596508422516094634708833892750888524842513493608278917503088072968345535323803417408871003544758125517660532670984193440238665361422760855095399922230592885402924565593801413639817516620470525280741072270761643352855274082838260478294560810145240833205417338550523820675162010747811021022998521281013600069468785891315030652409495512796238147568832565847543377546135504904146917213556995751910035917324939351829975536469952749813255185310501264674552059312509354783293499861623546910666457703503056692551156087887645115462312359420812913585353539083796581990576234447501770277456381920765035651350013722382795273335284247349098118112355914690758215192110177089539154103697526688275071659498402910441812900991725794276104955571210122248069799091308360996877523793050671217044226260825526421309276966343192399839057258575661863876222203984113772100350079371557869284811455540764729313707231173977363155385135789953134868922180746004503859469532377084480180285720854121988798462101468823875158701167774007209926258533061018624808218626074948667087298672220317296898543752026077145506767104163568867507958554586931842071116077625474791456678945331182684895085009941923819599291335698321493843276885405670918050893987549534660483944279494544391923252268142425725564669736400592863177690505611794248937476428469153281349535240836062131365055173106720275862249229846111696299141934881648543643087135372115397502705087230686946728227769998898114789220545929695319350967810869286776915610524801439248082002484545745837577192077617192913840330738720548188845613658493632926702661068500802470329629927415768860031036566992343238836322482467014796982345021574576875927034255586877735235416316657257709402994694057832914204855362746097929143965183266405103393090271113194835183317453815273951849025734723354384005750017602255507217762121438965079747675031186824392398938852941379382763734696959830076205449228479039805009266152597193135927203385860955517156454478132140271325329382683400291409099810335465233940232021465580303201280837089381430982380404612641901855925908100547185995452651540688137310213092097026028842977374314112005591678493980252066994156930149567541029870803897469201107554185946069647270704046592978743747182211913598553619747634178825279443637274117937602251326568963988859251839873473679370350190123620632086853927724609023048863629940730779450899748215232707074176307788906355315710882218550187480112302073113171215359260059485249273579872523594061922364498498909287552856079308872365000360959336825949121692173158858864339636178334930821756309673615524144887010213250906171917703436880765452954463094293239661174114810140496300052458003257970231628702721433659542774464447542028601368113563815732078631618958269399503712400189366421238019028201600392370333379819218571971099108692747821994936016014462422269669818514515202399402514058909561324870774516046264651644712322649495794805407293920419250103852364010245904931651932198237711712727822396660419338982268992005478965714585109800691756347792557897002320414680403364066855482757413035536729045414818070199727431587385545342672790735982261909839801543523779836577829279381305884915799469512243447553191217752272655319998475114757774574484193138465587473583544537277840129238492702295813722157415640414556303596718314006029076033232364583455502994766565798225681716477275004421939012509078070749025732635804488599249735829213531728439865566044007015127934425661500992310364602973787795888128775417401981233455110094612143403678602835357895936691554247673591663642368635291478219218295999028778095581598370382857932753747450847961488859142911015434212516871340520702251571811703365474638624595906768146665124210936196000368236485118650300490070529493040006301290521097146702308506005660991371319854880823523550845886516737761578331229688773353090605316618851143103524634247982084357957196352772422371177575423784030896149267172049470706545029984627603624775495094090183397221744879867006301243358069977455595108324197913196864393305388534788928300730407507735298168481376851899700922481512715528283728607330099353661134793358353068365548822249314029771348901436587701808308177866099839811421462027731345430819302111632443261682554358617431817581875525921372311698718134832252537602340394342435537104599146473811730418135036183335070575655028384164944715456059757921531236257987106808860300714203359310799811886260587420757401706193301024513150706385158959468737930694988374307508832495286264642281840346995236840468028465285422481389350080041744732062749884975280284100931943335712403140378707650687563088467723033479565977890793826605982241475753099804010372602851626378142899294295748216358879065091943791928887143637180802032229217401303316070928291066222770757433133138939769582756895227952680978562475338170165161751798452292613771362260196111843850052977368675202344278617789090989725718473956936559662578636018160940638675513298131263465175347919155292600776264871066026691493383401071172512069716661052908150819556526731793524910010861983562107296832307886423203695199662915886397995482709196187103444656107437513999876349020417090293882910550298135542128858089717240992276842787570971647747329451819410081863887227214108659519203111678109773184957357089561449712144289226661177871076502753024151698538990860044033381613977108221044331068237999032866137946921824742914501270338954363569673897026263285626995768706647179173050495663457759090743764856502222528766037051417990429446291666789823624261323793171206827872793003797123836640173655719039384329334105065121868121684065068653961250908111677861650938956670416914706294150027581489176802582977823537704605587177791638578674391355336871307897166585994847195505218886222281311179695037714487483049689064147606954981244701069775609275818767540168926476054866361153542212418588844154980484134078727814469103565261092794684276833284323663190711757931560345380923852018762615117368506317139394379136389051594015236549056165643026902768485234936930027442745844859000958579391468192374870441197639645638250673038107006317363753678886424499757361950831913046977756060524835216341228942194121554313943338622073925451759751437581715694733841597164242708328315929058642086383208459295942926854914459071490471803045765558387744209572020581875282157477671812510901467931386900074055040013845766292712501630943263054153173364240910128173550007255390427793871142002641419863510550416572583330635572067885511960922951346775415009884674201460682261277215074281456072557583611690182451821528406917154703505122370072630587010219748360079093817780404831696287575974338834852927493744200891416427575705146564984212824958268777950423084003324611712984841657984065965949426310958070505589685930628179597649641934011923897754494853965071663010436892040058796034412622324458498864557187379134017611132020908116277827888437214915029612229925274741049871868118222414658963899216670213825742704615807139058734632618938652603246926041529393734168306090936784749470049889929394931335765403592773982427856080310794198343378176307523280946209981288464217244653742756159720649379749100941925280269609097530907779151472925348052476116759439447865348355908207248105000817119143406781095658493479961752029190671059831294425888206292584506420638592715839448811078975800114350382889767384986161146273216301915485474069067318739371775273195658201320170950323329837678798038254757483583775953482718581106957357598860194804783080520508744699139381146335486308506365059313461600375393685033519758867138898328345500583481883305960222018515790521726388961960013895675718934330575554150689030007842342585560302939922586254858294524439569655134281112625210744555738580571471852294511797443510739743011515044064486787801787634286064512179136437793848757813756727693322534463654338534846942257389245259722726524259077780625555615932128243971273813203356962081693686225592831519411163410999048082638081304174173790491595861160771647084896368400122628450945874235505964576980790234142399977527284850895414397335742580811911787386853168412969763430766587353212284480316401940437035487935822880263231259855264303911693076762926548553332369384728866187846384974340919412053068114173584890931180648993914159507338932998906093348727916335720549845610247497022710598111188630139346092006534025608586495937126557062386500385366118441624491591919523099223091851071697126991167878311306319482112429713656695939588666696317994341522199844977918600729963635567862972027392299184798857691621987237086524255228203141897797644919328804595570919733293554120318072353445649461276428038207496974438041460266157763536958832363848845962869380965918913876284921608997753425200989447677994576096152756497695294026746314769180917453855805298938107196791388823598586830057585380038732508906367201699995044348619596205847880862372407287913979018170945253595765944321447530936917970118298611068648603281920985815866133221139450770281802983122125970112784857982925991894111834677260874215095447070644228525309546619430910271936810210049239408026665526590851546795920237463717192912772830999763837242776537601618942126798151483202760600127133263214896731824077998579713198872136708611397635426751860576839557708866809974004760111723994141048860481880754327315344505776947719458928232391354512494214294583027797739361480159284953859916609146320800230240622256253659285912071017478418274441948490814799535719756709501239177375665182322677266860541459331872603340824769081006087774601654364880320200623999396113608472391776998701510981243982505834478414535488314448858382973387021103115567945319849128136125429880140623568173399103582597410543865282364552304520157816967725194899475309501239311268660547066045887472236841941707310919008386939778228165073282199288252326948387934420882339598932610041805923873188758628929328434291542850440947284462359579291731780332005578587843826765373114490262501349394426231496297148458972065019099613416677520486442401083004466441335883798994668253530657967716186082765614829967425549949037753352367345888601315989503129471609223223975010034549245393728822871655343347835924358887706074122095883019846728852164512757602073641481914789133748891210738213523926768786974652470325994416006796635918514140181252812037118131258070419305436275587880463458364797839166806674942134476879841669864124064648531196500249064468023242385087896375303277224584695108915948725781037441454191421430177112790665235613541463557806663285968702902940725164902852250103546897884892486312576451159502980971273346844842431095987904120143618367559687533391836567846606894402753764386814458209801350052299050609039905990140271142382409313340476744319459262319886373379903878107913803910985507575625644791046342610184517474961899938230791521730707200409420628381583472961082043465882281377157258892941864958635863745635099829470210728823134492579192092501559893026687018361262655870657270315381800316137877818743167631813320278136756943489317070214830346117117621172212098073735946646974477529170010432940122369272712088036445626420671989038352865282062027696191805976200397996758067997018196036925808429429245828255393067491256949048743077536435452228257708201299081270043471399784650766328922578475851547367088358352688165604033006024484031943409027744980073144579296548033562652578233684912802827660429667623381988983669224739291766246406821317594636155734499964296828191739791471433395402123348270069699152615917103951224857730982339706231191620151288921531424439975645224227595911787039437489669608603739691774179357544282334819941212917330147013386792480967314605520767946123035048533158059602959939343036907321961298818070054675637389567466308642731118204340179737342271519282550525892146690185567632208191270682606067104666082172973472764826707858543044759291771150475304784456838543193211964098223844032301733367719006110122014576775306884838706634548831610617919699841240346403049445942911990701404566947808287687327643176905092976706946985304633489872764187723234014546809908453912137138702884245085087326087700984092965727758359604325324553284181849137870236653424815152791581292288035985230163124330972384312967665232344998848355799267150783362998931624551091836155798973957941001035557980259019263358914302274042727062877309671924244454350258436209569548748224071102441377812557520253675577509298330335127247000875191667512644855088040795414661960682524335001218256911407918409497204916888168984508551650232542569617581446401178809712255917838911627567790704936991547178484335238314404800257620350871209052491729984753802573502250958858157973080128420917102546913387836243379153271061540459841643708708766826772693034065173970445325737451597182172218946936171991801846892665257538934394241157769045051365573375679042039723989272733891680964675389051388939045125838830110887767679906388702448736059963064341610139382053626792017550598218017352280564265444348256032652477682764505533355711595573612717358007423394012891698667263881497654518494216732525144640211468905577094153691020590339795422873197240434682398464901466017770339427495866897400323486662927557032508650740802624746772624480507818488111137191986567708969906317433764608613183889199027357761246670610065516279024534684404049569788755335199492619575793904460231602851541394789705261987107487413325802302467925032346515690887911924427670213030052373035212622279629767695263550903132000863406794055249018914670407671097755585614207184718189878107649134132435583655099340396234005352829275227902262790046762115032905599229289779003848565864331866319584580634384144208177843331393299966463941892038966285768226143550113984555385434866228280061293627329259981761470804644054966754379445418905120967839752537365567229967232282537943878680750348076715475313191930719044639342490211295518357462396124643350321277710049523109409526012175298573854678032695051763619700803202922117117114666321030488857114591895243961036931603132729329581446188394652640067655369138507289627757523583737184836620000813579922008973763549324818532955796885223138855156973349958387431680119976780185713622586575665227783396532100823973139777656944393458314129685219573496529948164984308575734207587125115210274025108741173823845914981928906570464026704120335469228104196823563040526140728036444042970604376193005098640922510783422976723106227942356915645573145035759705680151130396200505164954560854210558861737365709313257183182924975200329824458382874163107457365511984981012967211690477891524523119980576401110214052171963178076268778299360593087899932896675211310314187311125124170474808348211328288148705580478611675846447114159189403266912069341825433872126279423523216456140095956600075414662990125743944383019420094612718301160210055763328339357166546122662816936947993889943601842260881144430777855164688383611427615695067572250994962701727779795009673564436205150977885904060237855948167558137707233657243167731729456115000580685274571387801794424153699372450589603140867018243720800208135094038403650244232207181563541192549384310893094474962772308959038895327839729207217850980175570039825429642949619379099521573438851323320765070277277318998946378513600850396653688568424173598054858500865455026225042926178839869051083212694299775491698673499868490958017263304281334254538193391699281575303596831010817713591597107059143179851256418683664963060639600474634062083817056369326365096884105131817767460093377090604429074893596069979100496862246218043546885357392078840728446817225215541861583103195890180106066275718873272532304588102422085648444456701781298725418241266334895198409431035306566978171484143368863710097992150649172244442784720373800921002566130204069838348562728240988021576280808250215100931306641298723277216403283485409859294612337979330212433958602849242909840458659328086797996953869560457651099992145843191083076299352936451510897929737273087265358892528197130435757104713866562775063421259964281520304716601505777866424288337899439280079789184870798803286214041672858280673238939858020115058412798238863824575863703378420531551076703044275042213811390461979800791341411919559620596884869348993786235779573320768778060992055409361237449699541388703044388460214518863147730680513679227116924407833546767203474924360959037702743286066281624926884528944712814358001581021631631898244880345797828597007802045339631382697019953942236860144633536725686944653936626363959161000195585775745095367080331679602273099061348839542010588624193911066893682847439493986407284696385057893045943262974416150086999551758249424454202327644250673426738436403008692040184487310808434165205039451739830351930371133682490578112867668361440221942299637830522039920667144351555455811031663517415416678740451898528868255338084546569536159062937730176693740392110609626555213402344017338714975001421382658496803799134731205240194515811313953525925338375201580412158881986544916469800279814384964361150314400642032614216618205937556170461243868973038230012302215418666017608791853634767424451837891739496220019306298963991218840030893580801693051263383739055714722075564859702212904847137747318031948163998144070373931760709594247620231006690356749402513340378721569526688043066458526817931501801131196050368993396843125615862039563584815284992759732436914382295688607597471904930827867303863854984133613617371951890034197999469681451111187975422764309343581911981793222917816815758506043071905852601246531406057425138231685209415531236984284667448364013429384364717455582772480211222365766343907141259425170704240555385302505055112774439925334802414040251953489437999846286248723093209908979926010495028887336495019357971716795021558704104229410976519596704681707521879510378931918831799991523889843249698601209573576650601298040431347016382199199239764473830175115831235128700817714716658110795273783883051883154688707414960185872842926973413471531672923445692289648965295289719912040807875566969649454184125579706509891339314407960965774911310224162094863813861745271869230758666626781360165654880793464629265934944427372012765152150133316606679846148892509249357823069077909820578039070583779499022578503332893933464910105309369072887117763214288815878845465979427608394297269726003366806114973310602369380590155887376569563346203572759124363290216526947007977638150440262521099815752979017294838588850958715584264611065042838934631663025511145498984151004920918722572935471541764910972760935951553239049794961251274180267759071236397266096462570335019693810301822448657404963602395266328128731911097400665355108891321887595933878056302911605407633672844101732336995062450530874163157059821996646657956644711789772666355488792788910281973120015835164800816159810140055467172482286832801139471514419693303715446599071027121201474701889521424900601906129384504557529356376538384523827184583572000021464788302827777681745413485527490773308704408318949368950811820844284200812003946365734326240513695134359547510935487868588805527848032603199749800066939955546564366593113575125139661610935918389718686355176280805591546918605361271439632998820179330198341037451403536789364696642742901283359948578066985223490056307813775824936067266489659190538934465722328801051128363343221195099853690709943129241379178785231132300589151381576913489945202519423507229692667265817350108593839544891400872312000311328133324735274235911806063578287301587631426373816667132380113551137048968288944743711421421267117141315564066270251590038111585663132822991023405140755978890593477334530881482880219504190637700799517597366297400731976395475275607571430577674889832223622493654366126831170866673706810011394682186540492385103565501508073084326387383210170558401601333839753403629879976831140291458154710062994809404693679175998835091895279033547820143009668642580244820380121220399696220074975282044857780818050536549060116721992529312902809457554687932854013780423015522697838075396912689230252860322585594745262415293690884224474742403960190144201754116640186310834497538846520642566047570099079582047832437133362993009838135511611961606401304466153762976751165991868083654232357763575787807176227937023264079352120324981752885941951489753481401371244517693989288923579735205302395754554811798879750627057307313652403353997909456054716623735557758067965399877989663710213620531912594377218096264895506133582472653371897588735533718046630406587406532064329076468813225390342823957705656050269158922719298731399698568069767579477615142514093080819391924871567732564320251925122314974809511418498226279372484414202842619236289114112401838404026792657549175454304759360335467420086066185469517788662820843731361446787063656800709915068428845752514628664971055622359155907571371623824329201774162393221946731471637521336997674511949871253296866105428694663757626409340520616310442004269637059310848949983453153104507444192446868017969903002559768738968335084134679300396382901166672259047456167851676739519243269968628953067755435737468314085943566989430895378007952560097030879317169597703764112001563486340903045500591133212949484276050658298226770808886917506636847634084528646913229805765855506757866728826627339603378970500505610283479762013025213693546431420858147663691547641767745276726086281983041043061072732025635246065284357073665891087237549193722591845256828088910412897750248918525530198889271530515368666104385570337965910116144639349204903328748199447753315551683176673261014229678569757536520897104808487553800836656582074598916099795896653691795019488026482677433859843475541499440667728138245132381520877994114817348916616396810328373384982542702007136486558160405666020375557481703811317899392543538472449653119000432434822917375336796033763198526885670076906622719923291292716685248572137591313729146198389154432336100739531765583748344574797518846778629600996364539203180767389937888666651260511585076273460487924230153273094756801967402165360105822594463857466541799071795167377436673817540848820144889289719543178318300742370248550913571420189219517117343667328832092971589455270920496064121163494440948008339222770778480129790536675147676051546397930540216110251699448800959116811986751851046756021681536210824620610635831426792199736507937096728197095666546283490674162445730605161112440282555470646564303175875608031802786297693616342111174982001367410691108110943643643668225519522389122613438085664554132695262584052435838665811741099104109213806131016852678641770648369828325272539300075030763136849309611823021196199920251182971736612217933791504030216039385339626556286859112296624240910513813514876375024649300210743450533385513932806502472060943219206250926329414585704522377605307311821026652862545153468917645667274525018209509176623188858140257852683062450138099757509911156356899414741400853081872685560618264279876698365520242391910591551925571730359098351292473313978438914862026388879729221173405217225560300371337196489659903750942858212466237062464923712759143644979982326489796524923045607209981435941096166909555673922399824611610853286340488925849559639087559420181138838843799310802021010455870517205873661734717403968062850116387663694034367731890917417448790347820762804662039128903698821926096161700552741597732474138487020745098450286025650258361652724216506596240028903210146448792862108751985745835250950443442547046664183916720506635448109853550374271686314360322478416640654485973627005650278326889880984552934088517226978513376460203030796269844409279400922287163149173770939293778434053872618928378355320859106573471806449350786957967326482036581653544570566326844949928680078912112315901327062460587377976790465841239248493212925507298958331183781717058067928862972117548992924092328373906090823558977520128397428693600236856648659496556530097842087858060585223922190441899800321367525237478895330067606156770208746584957360902405149253759211827046155680779160018981485571319714456084250265430021316673076409140834536882242579257873798648829446538659849115613039444726595640441657699252047688140239149848089000821064986210356503627576128418005822069314960876538762737249049316915091958250374431627466516528544355728850107188589194586244532281333297584110484163415720537827066009655516358405180703994666475430331108711029471443649677168959820745111097435519732485694564779281358439109680955476993438544057458472572593139782050455290532719187112173789500545400016123110154670332445489259244274678789665236450576275188371721115580123798461000924396014015732172059135041114839001689129441873358085273497161827158476573629951573862375485984920073891238005997934710078631550554402984659589431079681212555388309861674877843180298383341998258783125453725686893345589710806389108658255536243809583558847155835071212960117953248705228585845048287704912514306206990258663413737241235174803121934649171249310826267522035963305272627091117619474923808989303364016144932546723293094654406393713344468327093468162519517186507801887070982450149713534774241045457083750313496434174467682589933402292306665074142598923211963602173428508668130514514668012265417274091962642058121863653947507646331144204804981577228254334051636549210115260561760423103761571539968426900494578787416781419516373690763699869921096100788640181996942554868867029355755346998462021272973862345730511186860457151892864493752206493605398899431216022023329395296411993304716478067452528099167735928249763865831228879453048829318452818924204654592422108682021951088077749562650782105037586497202744448621541062120801796219838673801986294757827499289408440629911711591655696513428351352509452281891428949017649125294539193043065098154452057144754760589534073631036693098214257420523889090638465930363052706320208356698194218650851527543594183756651644142785456187240930508657013689472236878984256008536682927542748950599806526413571950873024100813683742860870870472685818871945167479101371666716176888475121345356046751024749992028292671576466548093905999870841153559622584752426516091211695447567497772864628780090021230687424414062999085737598717295866060653792021397446545138855052591852927032250451740462803133846745092363646731627597365627452299636894154373964030587825473745386041757759597014302783516025072219661462552696514433623476009678369909819098599152375010050230401904631997908029710814402564020582871121289843921045286564201785483191850787417020524009342710515284891922063182804478000939657763163688030858057553367562131373421149589376757825722560218692527551957689079926058636327355965440574412789279501071701027503346236901368480632950167485793240763505332004888391011496942771087652598749910786632560687176129364292610250952512052845898221536400736632872784327112123323255117509243519066317111738235989655729965403878961127365992320123216338045859564422668547768682614011815725972472731962311484007922677473208736615573790988509901160324040272779335721591914960569879950076910650598073663667149834207238373242586015731283418526562753233153972963132312253332000330989885769195071835837399690374507520975593446766157494041805496556654494619137886148313835753000012407750281560623629610121064082883362184011997700293444166256734877715013541321426151793004120977237309277360235579354105801577178218176973245296715854182912916607301621403715052511489478516427855347920720571204824494389802457502537650167754002059626318744399541449695671875688000391103335002705150534519701740054446361930537936927450763273889802147973787948974491327572150726512490775291458138927928054875732676293642284787987158677075901421237071525231380141044024992061319539872207113219560928425106645889034336639600826366760722451100834405727031592572789751176265161096172077774464071417675142159186344777455025921567088523585203610439015392082760519493372596328540814831210807620947008402364757420945350402428150325116773843774345170783039860595073402945171949115523057190769862520099411348527340956158464544124956306709633244681934798449569348859043565242770543114954772443119073175065032587406074111860317600919135864892759857457006114201010662733572802599012006106509566021026224848685887950596439316209945355434949343030589382292768925497306101444517207460383192610414573004747816400843283628546729979483322589877460141352070525872742641619043660526625885337552208133327075341213115227437270092544224949222120485090146638709223698530192183480971044017971335842587895895883905064454552067201297517289433142927354860265525410933176347026721232142828721066329193934869459624753855444695059357193033526100126889663654731992344118178060172111324490759888190401681079202368854552084927688506397814847854930965349851853783296431154364880569044942319763521939182903939666735442817380853285317351484654755519228957742001503168157461506184393338367011502477235971652734925151569867907648537536447371715261676103684855746346146831626426515029813591343264538369297122139669899815945600954586123957444843697771137104940341147951005045114011039080823200904275501952181306696187070924776376710863498225854912469449824861951471132347205380837451868614335781202180038021859473680213573375143711365556587248869277539223369177236008313744687771587927021816759836421665018533185382668551839131687374652080024228761447973360016623698616560337248328791275511375948655197305518909098324409153199276317960751922105746484618736279597668140703815415630218420123328088789021518553038575737849684831369899306960731374084286624212867089539998973976603902470571335178553641624424209955090568235413400121111652392813199380373739186781017426169983367101989030972271923530604465638408531916277391913257497064807881831732172644758277448242133101660647084377888107104673676401903884181057957294077001480031180826760291870929739404034374354775586010401266365244839047985909917449647809933553930209110738508189096458971943288174000683617605104176779072799474291645913826397316776017713591344390533978012815115149183478577841693890916643153089169471206807683018662481229406375038715154579237087990070137484282042816666968247244693279433342536582897513933703801779529367734414422327272009999032039317409868070700796980712903808206918692664297871900330745902573303635944874474592241390321199333833784231484830904720326067339804116272023466857137524986314205574754099377052010292978657872679891048998161326606719826983190772075244157823378313998303574394757927107940183263552959232892153629360994782693470827320289259464299946249903212966543808956052422461651749546428103226502649675923819902425367331435794864477497495385698851912651931284020587383729918249993792867341649037257426362370280082538141073330289144670913766572558276586485943352493331533122304900429297010206484054817471568106656134854143042532412951045106440602780416413076664393513778396655464641325845783539331568859555661663382855252652196376312218357732085177526245746956736324024950141757316394272345801491610166285752484738148957182827236829275684630501915056760515145033843359701899992701243025296253895010172063159571145478220443410464180914738181820595575179566964677542455978475083066617206378644653833392959702871719826458001221826480886658385686532223429109780310904185627354222137614632622579835514204494673404375982949421716440475666447024663131876842501900827171250930623468749402201752470086187944395086489044758688849021648830234053359453084392987157654510712829735916566937599806556906407822642878160210895412957356486047288904541655072817257813484109405889868612128169139742272257152330388655302105237110818127875315541638365226688811258426443645238821710725454653476348559157875655424734126128060352235779457737098156355293014272119130794037072719131909839413227104384570664459762512942330955398267493291138584084185183708725625637229799598479533150860538684296811380501169202592089649890967598367097968712749840057321953081451179623967385472328926013198794108134671833766556599461595815487070511780189127229336970815636636480339511559963626781969492653818546017176157954419721628990159594085189108742914871351673245430227700617601537555406459452981345160648302343615748430441245357050410382113200309293386774096848084455412403481303517922831092939177374152030622829313591600631881325040470535129397121668750062368095993285348322749307453597679160465868696278111944961717359305106198761871389743524867119683112168398413114481927792869696706859469558718870433792418748169186809968688384761251789722263612936772414212633453161763300110473634669193275903020698060006379686715187903854510342119026420661798984347754439201860268783240481230963576920486714111621103073731371206246258348113131821654403047884274851042114515185291092052228402038498586873063222673900624723006340159526548096447873506247202540729733219543455768432542469422743073265694670766416528250771388157319013856554766205993253264204487020279889805854433747569984538053610388201449553646726693143309388043809724102383286569919671912912704013427208354817633423282243609095567809909673549849780560341354657010586934684909339197499408315410295806276479702396169290253270192219625102914009797348496458635070069328792688251025154010673694142053867890481674657047019370202708796313916581771167019011934487501942378434778959271179831535536945397383748490667215152626097726348634879947381508969943807266476682853373126267149111990872636791181543544519140045043883925742621912503453507737213823247780642578790061445728653412482266096368739157220283685402786703809066938304672637151923412417746464045726146569451504041338534088302820269307605924488139172488528921107218673477597479015530708092335739041496346709665485781462169818288605791834340449780893731365197606996715816461272285996307394453284608288793184914615769110642290334618513514478971283050568020966663168775137225589757220880651473612705002804869912065442437662648420170539280005097821399788650292142504782835727937533389677654885996650017895624477748285960753925581110714113976468602615933812869075540533856549603413512624751303482257008346953145022525088216042478840250248355293228778762545897107185628784723106676306964891594770841499012452884871106534599809587282611366357841916774436833276171476894349840081070169265890284701898708949649506435233099691087710196207537006807926789203940306016757591580290309393061416872030769842304490813460544870298797507088058648824077125192874501836616317000515817621497097835164576380309662145627222124923834194988120028417252834478077096350462706850535733507321934028134300486853494980806150584670635903054207490506179667360005200347303967429654317035136669651049540148650405069164192628117074687394060549109940456101994022847053302309218943802127834758418782743435583494799036862939802378774844949240038275002368348329658347471023374909205479252483484900632358916261387115022784354579430706719764981775049868975787892888645601879060173919631959347828046580998241599472213973221578441497578253337402623270300049320613059477426457329137213134816918432973854232138620114703717189833654771413654810873175158772989771447828942728664815528873108202392210031917774311280436324571769287948501879164371792147868978288332552359620175909177341702250678484288202709848492754175164358272912650775132429676552294469030075666547723523041651589045489970049293909441600096404017622199956786638601355382094295178038409383806705629136486711267142459612678699972175851348713717356652829741940225235074482102714892343725764148888920538139003194733909070077584283970678469064841759030157015598183597260069560820390038024421784668149510523285969041658617918446715957065759359682347248280246093763185872582837982643125328033748373619670104632975120429509346884924983765184549548424589642784652757854348943345104560654441030700798207324123057988555509928757651598550137292057008417250696729371587425259553899554209250605527052217047213966625505301562278083489671063981947394906691121906491428257821105525229391017211485512516971138136506996430348134227350759669506519061743533557463784186739338938034622822728133327703656978279671930188668924352402239422544886678098150887252637881120687952795672996198473706056011356439210009297249995056293766525589298382542010270171862976869799919996905851817644892756742065643459766345859729164318779297850573951840740806160899368255575520815459576600279454670171672831757582023445851422983456863844799311091623703228535835506023717359457022292201116355030823812897554479928243284642560062363659768721545394425879475022908038502634376564393563573379293267795117201741548674216798387457365999287538522212375493867923957667637172335007593940750832227094848116995512261132304269764515326292997725590136342968961148681493661760680708916398487415940250324882480552879557744643327545623232008041370024545979076887436378472654691150771936189827246724968182139258844267156796796561871539448849098028957127445645777975590683317710342068495548698158460923997324174074424299661621967994089165116264042637527621475589262901898055059057703300990003343173446496083710236861223203832916213785901633428833673617303852586867935707484951383607344115760440241221005558086736301169225915510844668812801405408004837255595609647431894721731715577622125223122115701607956330488016774610307686606578950251319416365986048486526410592800563282234297283829191369301118953413459929779443661659498726393650010662661863873445493409845164205591635985153826435399102387537627102229401593910572940329546316302911706534754875881992134777334610928770624015129942703563244632924065561013704103109255312150516267487882423721784033713513464672653579650145838832606648586215431934848014705435801337577410129038901446927388663094852116950731456706031323986653320184603895425640767675049184188983498233682718249277110265501574462159568733260691375092363251871957774833613985925255702491753376272328552039633183167838747868757719516889391178490274308069578712607348804001757878541772354432063289229317251155094681068825447451231218441013462423677083507564265853274945106503743190699915583604988105413258642936382135314436441587572299394405441965574479905030760510509071269750091063437408563786612918661289851787504386000250878645463138858117362376796772796084182913379923487790841370567575758090027043453722790989662677516198162041930590227210282863951526202780277639045635990632783562668894088894745041293656489551439902718878078354172685402747665369089848561716937326791636353817905816210629311247155055700661179194047403126147814320818790262396105238096230766880869040979141753883666188604790303926721867844835821736125493105128601850737030760567223596130020055652035609151476346936252018309065025318238298901615817734608025976727052114268164063004952392157659182989046520961444382046171055809579795993691876192950510466666285684053821799028061712265448162117043475314187264276396158185524937728996217512895707917087217865945175186344027378090452566843586364290715635135018003640716340319213956242791001717012427301213119744464643180874711752696870337721405525880960446906368345201767097777989863596695426263594706361162134481920793068652349437443872517126981346383214364646853771104199538997504309925782946476184905319411938307906163741655663526783425431638359345109185742686345080949627989147482438482649320577592437679557323134150573591129868336086200858763590588016974488977620081388499535057415752415972990396398460222147782987908168222945028633995196234208904078966268460476243557964777479250946519478507316372308435311134778029330644086465696398398977892305652055353141207878246688956291415776567663079720972357378496398248084566359235966804664943140913717574891857857324640258820942888106332672932009089492255128023142859391831075783172522466045630566999086357281087165012987284969307648399385223392706954763484541269829054519281801491530693330186607040077774347865345450832274789878019311397290460333707966951905267149656371066005536574516581454947203954119792609660415998653454838749151531132112542471047236392588971534724436513207886219350663666684344508875697925910153882241044319077102045296235251310236967963719625308040795841987777054270685485106794346407410749719372995918237007587789558866169592123394850821914297421633252798548176869862933842661643274826061885649630212067422444172578106929387982776761936329211288864458647331435856104677498925396867827248491662157660803201524416954955904861568112694285634399557045709437518731755117892453044329751178874818480602332870424348747856399067661948724751196663835755587473177235889439974632199132189792839610917896255590356932910789938951746943282513810754886419529990462066448678028785832822570789955489228665840001396415633625231137819856529776348684133682232594509502139889022455430708751212018530308785763632402124827340373567473353812248899557994111591963234546905310723302359033829917270953457392135154758816471542060055990967273357821795998836709492002192979445355284237752282008163833148257486144171881616688752634579251999290583916854690550123111167430461149845259692978306678220206968013712418563843004914063606426741709013355482479130296848487322434840168306667497395570616088077328147680812801767323180825071578236852485085758391755268596868467152008255063236532141894146805695698585191127186826055719918450431786484784412778189423580785718966878042664762084807328382225155654916404397840607694724588781262213561384114620080851122802051155441992828174536379854438593246404206545948429929551916126442544331592538979858331943397439724552606540979160093641127524143037131626693463886251017025154308617178452136002733854519324201231920108485389939755687304445910535416066054430244639816132453572327125744495017885467223353221843828038416993119693841046157399151559937757110652367250091558364627128113509026582365002147624536683325807662641049610950174706195896844293685706247868192334478179816639377474810789919224027561351535525382406533537066080584977188112546451913794889053056595297759933531933946865782183560788227774195695078537101693089850204109152771499545660616722839983601317154096065132672209756686551797078832595096441602583520199838422782953949398961434355726040378464892987946269143218217622454033541955304968856136562538601209979962578322999300730934097374399837391720130417032299161345309513994262015671420832309988051368431613128049199980715280915025849450274527342932093330637665428594673334523475336583182674373802645464175509752616069745668958423742523678289488173771737615514591952243407360172193546386647633308062463497609362372912028621596695735332430347322485861675878256907135852239084881406001372519706718355795670703294333019242310437363970458991119410518416686529011589108459808527741889304346494034698492286906881882552568416456668346912723572763588481725680856040270853498628904073742875039434043426183285681238567084807814175915448580080458290362916918122733300915077402380449716462546160588271256757556469178446092827574322559265964653607225402347221415097130372562284585545491056460725579979211689990199838968393423211137067982738763239398027954805761771025705322431938597698484262367310086609858939957782630733049157329164738600046654363060190038547294754422632093481567109086584270604632690354799351721568009109673053189289135674592346447963663662601686055998795675792862611707683234952173600025116398559697683234585386353411551478911536348185537541382758764091073028160536708024132985362797874556179527604174424539672704418020053874041072654239776219068142369788000095997846007658874410164103779120931304276998471064011646247589764415363078616423923346709032542549563528761426582644819808069518313537019930159074141288931789653486817136165149420083069129650218228200371785787220292196988332283148033350758306386139567862484374505782607009034280843195535780167113509055656730459868097515991293542612016099130847313138420193301518681533042077696413742217386785353869081540029045909021743713657609669114470350997371469749019201599199310964468614943737528300599977779970093667252418065773790291398057839168514352270019789528549456870307304202171683205301372972737926297830192752721962276582041387879664977971550900094854189621678414952988465583189713709465855340653419054758724326695482191712383043295209839863966752925159286290692230785701796914920010543440722532992459524603586301961069631504482092005481676881707960533219320544711781595011809119634228016625563754348938914871125717848501020699303011181421370940591526286196655153552841169799787671745820908950557605117798326492613662887994890719156216787024914629297879000871450089865260304672131933701130665915488319636585337237999147762018472989196781496094390680360048831767319144739104493535474045795771936688480056159405897782388168448850676365170315332463240560150884557517452678601418785724424042315151414830714591315120127786635725341709128118766347831962129852210300715384654790032219542220467747706376404444983949686335232324792399610706046129539190255492984711318781575896655956963743031017802779422330774975577655777417740749621343421262037585024623699046254864215946082899281528051895022336076811617034611505223108650745135105863826887266144760634617387051160634973233873267468789504525132259705711784547137071825259707857275324036921355867994819411145159669283273582641919762235252047527732252213437758824568356528333259454407516763970228809388508412811271815225035976873953371981628987018863359293053621618856834818876556185331789661455648413215168168633037951097861436131471148707781272954651805909528386500333081724479241558294704170055974287322615678363667653756524445351639717116006696829848084826892332187439147932097729711491473285966658708086205974484215769823554204680122776376363882831375373023638194041788304811721157340713001642766682172945157259004084924651456065561926573993253269269809362775437228241169812646267585291051028161966515419963189876443764141618480176568995705044898479819787261149596586458408850961645231650187451185830284417526995413200206420649659384956246562766975770516375607736185374914415171414203450195114158016725925834703455242322129818327383664555268888795992577997361674046187787823032169626094336244756358673322150067291427838451489847362080597745913161211285589198954785426164599072122622933704014523039508546377080450747189877790139812011081413533893626642213831938541111400772998483526225196772105350494623361777745114313760920638789232759350779231514787292703910709124357867047520113066778213691294963650680640749966424818086012733491166300182212323892762958536839600511494345154257011198797503254610643247235931083130349643828368315608807938885461697052834787607052991730217329979129415174052766498176551187358942124675687373390885158852066758283575605923473584116035631834757747722629760552629693455553034396645312804606432635013203752850231318463268215385159964638490437703547971880307224959522359364692619990678776306134789690478152762055089396594196551401282657712727542263025907166794739253239951499201057738203375119903486689880465791027159011121685272470635236249682872399017155121447367921849458799743444166550063185923041916088767867281897543693248903306415061964120737352202218918877622312936776927613049873807979190538444553672744852256709962684652975971688306562466465491902480157140756879484032774258619573645584992771683913138355593656183784514790174185286878673564528688154788950174131338475681264117148851597529542159574815599740894942930423718033287618717243629615957555865792733599810498789682339427909088615243622702577320418744041493112073112634858806974942394989762242930734880521969742610996676642804940686467255303405433616985299593047970200185194208117467289556040549114057118866369321453691130644762841740943395817715319431022543323663369687566880181129771316985612663354082148215609208020017011698464939057995446192232018105687033621316769923214028300513597802506302751492274149177160684649627103621707132876970701742831889239953474277286343166434857839543400567746031317804942235918771247578245803899290995694179195407763098453483135369554776268178539515683072036293427033565831218363940977433408991696110903483122909167434708595048794622034728923967089593376381970267521120714520095687176400400375534620058311447820588907472083804942999317794681794613349375388832725800323134151669296016232557946700136799452927575728228878965955662491515048251144972653855216553006443446280339919233220296246067523706340472299122027674689884133092745348153670257995502094401582610616359693882234022867439564036823941094264023314101637428383288776803756429877074633576266101800514050429456482995794471190565441397093249840650387325931964302712400029785167184056828930396258430752030552912771585021037477990665951682885467356806263917363124633342595065461110947628751798120264541612792475667838557222394821598323503800633199411669425407316673941027178382535614358330113034479733308444861042362031362286102958892685954536646472079010200180101822836574818334571140711691590009714392360816767587699427979995112940031400978319841538556821570250865927216220537517718214001931214768205143422178795980833236519638020376084931287337498739864526212923460942110965163096737058367085719189940003942050488855874300411572164857397117324078035007306654215310843804067411793922193521154311893664302828858408961891538938824083169208289535941464471735828039045009247846256106925174532269836069231317436376055942858602048614506526453573942026153305840269248571742749666228388662724144977337464058288890458784893770865908765659510790787061604583612481506522904420774973344794219696839995426378659312495031144346509074714985568717648089497120125490708673649200303781436571651684414621913991594113391932991555022682370465642125042237355450407785128912004148114479030471514766211177574351499951085898227561928437294524889732643804504202589232644277691008195863407348312492105056674670210484910076342501851890284650706909986059622602374485398211892808585095814312396084195269030267331398572413524648199609838092747128078050742997475249694631710069556623959165561377671299288483431313095630923275785494926603268776776724219306511001589207278730127248942218197383692806651857069875956504708951837322206343012396174013709034030939088076825587320597150247097440911817682230649225813476569627359580644606705549094412614102413151404981313328074562046828704891620813552706584037798126987657769462726029060638027846763878582598097645314343485792901100886439996142800316574415732870774601497024260345188605734711613938159325857754467269552012526502268951877429589708083146230357598102613369123625183066777806308947879306189098077225708875758410034296030992596170034155481226487761294235457399737477471988059386446608471498539890486833770932790051846485637243202910517153044233868916823783115764606543711563024472353796291600008265826689867906033098503801483008009559796278087113312304032947216902336604511753931003635239334561121839341566337581129576345085982665473573396810414742610169635630691353508463591008442012545734928075076851101085336633093405881704087967783095471011094108587614417550834017237418541713793895691544565922675106427753885041804766400475386865268901905597776038614495032118877813952705826547192794296924518338514705012437486738889530561017409064378690631833101050188744184813761405697604392827725059895305339215976885593839763722007812729168496702868437509269984504815021570496133046054014815988859877416318847650965822716034250595080825998272771444828354225048737069439508465202367535829222661886448229676490978121780620133315139342863119960896808659255889548801612322887405394173500496024126727785074825938926451508925976137840216787424286470647514074439465788931826589411766562715153670753711201200385654715727264802877461608366949286003589920630400592973321150179882988936540124133953212074371883163561299816569215934649659176044080045904364242552521276099333375280954687777157602508897462891439007778941812659364713623426569092875012913035786107440420464259605843782942533943096031924628061994503192466356742363998361391818789070219289599036631394675968176612724969274022157546352891297289677995263848402947483626947800700424671432445067703827900587359212725675645375396054707394247178736351864507607624589855393382826176185069321141886098580611720869952644873904895260645381563365087190767914859009795412910606463645496377995199473756142695672788067092845805118942624622114230931022374441987202417704184204944550725363720184231816945039469914639592426049146188659584613136994559060024678824753404127175670116574031572923466011852088313674794091642566672364420162720848662458942854739220919266973174112982807574690827273637157516125234277910850986098430734536940883954268523113111627804307933345321713631022071590621659991185367768650613653539371074904357536729223963208167106742906864306684325517680271279956405426462628847892743460751188721332561957562465735032604611577426236347438538720260809431375398950155787227262019597906235147344803825532961869549323616309969872140861251149183541801098407563830958680292579370396747923841220943250471833246399703465391522434253341180109102395973142963464319800443706589918697559981456985072934717943323480016179797195524631178627656484067360187778341948469409598602467590820389280217640344864964505741317011900042931034250601019915166981493568060266358202644674157955081997894520770122281651423995042035986093964895384298077291375909209059510284816659534815427270436772436573300128305989158369497837633008240206042788130486449993910318684035907017975514438556646424364300275112772057560159333360705013847673865223838435334164524985118045900705572523568603601595694642023757047794222001510332623145415829532747698525178397254650699366129694743947731590920236912124856367951128462188345952059646357452916543209128551342930766023460573892655009761139288340538696096714582858720685872789635757124542991025765257019888960030958473653029707449489616752582186554738066884268274663485309023776605836277474027388601746542791900508720745566666458534640963263452054009860637483550382054436324325085996514288040883401536909482971886045572820933472128055358073404555198485743712918819972585261884807930969993739641758534122727224787931341288626262270679401922001282371037976314231803573349426195187704300242800145205551962869769834449961398797772726908737016313221665673021423717926949611208771657330318907341642166286902850029910751688688993121739206800517622429016943406401106305655586629815138226051812299969003213950018937952763255684199886439282236525585825958815880511585142492907752061688197678181345428430092793805520220344656636782967787782686459406412640231089436318814936075701813901212607669484399319324460759635602913608406437030114125498000702450606310959977017031950728534828942629403398388055386032677597523543126885250242088989311040303610947774134597427197299115525549724039924021815399693749380729175741178185452270344072986685101715999795095469586172783260862566689038856988745677759168029637374769913599202499530555001965193950688340957023572930604461094332594493392959480380480100558475815318385236922937257268535846553118034280142395473159800062661211127826939332981812885035390641812426759192261437805667764601172780890401859937568155059088142915474413031426224075006112899824798900851882277355666363428799822607754512813498221389548469586514392910296300864334446255451569163634046346801266042205921201377330324453058207388355093307822680277114493585375535313755979685450133627282067273957114684799660361611026737840017970509261532124905718232480977349283479743150463170392098746407266436218584591540909454340867358525298357340043000256918047161237584049095154625010055834808366147905565648964003363682801204493990121054395297412821638367246922176069099223118751577717348791940117343462093343508773146842382733361339115705332971278440227328404456382223178772324031382054098430230928436707102342690998079265948927150373906153371810939731681989835852542199392775704478038142694847319922386322669316896480577205448926097673573980317373369158832155615073755306045656564887105748686802170849851232953620847865950784643322260450883923584562905987245424890234179653442182319946370565296243552307901823389806250318687539593718074020010256167101428262578321010616135352975315976746916484780085046528228527964344277488995156997236649505812985079846105387067335067896363980882713809968997932116090481935199532527271935947119209877174793227228729879008629390183588063685512379640220085287297648147438606164158646093234048966497489002914935641000922002130929030441656186701495499075517151108420826496723869490115689983997441043344797604287790117075278862636675168319882087485477022027402713737751793905219421210123192898982490573773355010988447327703759643619870301630825083780645529691062703409440579917949078908886130881110614961049984932828327686653533449032264349858224675686480939870783971586212605881969672273357863564629267958739892777623391767484810580092637775632396721337777396464916392072682027567760318062900131722786811235933759315279802130606938167125846707502273415251519713342629985279411900008226722915752790627522369406475309918496030369519528530700522500281117746905892348607858407951424903519554533852817243435413806059344677138240719762205314571049168964584029442467747409190798418547351909637438284861836862705412693596396638897833427617974562206089150664094331263745792034314149803901208940873695653338658521475547470941906869284567585943337762203811685844490783338180451681301576274865538210871282162777589591824872566130389755243814937856637808744704328757980101280645415958641473900013692890614274005515989830173753348200177365333006486395569868907367735571371088975146196950675382466539012590471465976189916134150922343170949997167909345337758403179761964536085301547876373293979672704774164745369849447611238744444702809045626241834145513656518009827211898945257570436836629044411404936321845927683670238866262235259484031101572057776809818046063527582857024192585052165207516396987090474781859112482532725133654889753339110116148856485372462199707607469920336154985718822899268074778365814095581513498907229837773280282217096860097649659508442842711308711840646711390712181285375084051383037286761225296342754736325739715360680221076860726213185920265905140630607232207892307697216944900232919922550346045995365171767257231827372594488831533666353217505699716905606565624414728241814463881258021411360906023148652803857061581343343382490209939844476457672866028616116999372348544402119680231406566816824199696596994629230914646805401256593123700847543892036301297210841074661607173289925304768886766906020261834261241442569661000197414719254306950502250009957331177535396514391263805074811284335999593286463136915272433862210372465008093525125215202304714894006593585819083147523375408937525492978480605624023324162890043297266571353870908213757592458579768803480467744126954520627661611664266668804560151074882123361520066092071521303756635876949994559738094326051911859676939130058822769482535883272253958873936358241546897920814455225668967545070021909984161971290340034739586199090924338948106459281669619366703625751603219623708617097016073894288687632212437493241628510011025697711672905105634528391936776217273146030920109267811583404305962229994031116007948023266988731178509609905881361334493171867294440133770658136621530681484777417927564546732872737571348438511258416129981337090691143760353966691705995829116343281955219537355119477659000729465250243874707746438228584367147608623205509452401146981396353013379418611977401303393098616917679301102740224139503105488534745170763269897154223411506807834150838148134130966121430531569026329226786047940603376228689730631591643778533818859920429232498164871335493138670433451280965813587037739870715749059656441473760270631002210709063426530280581980866706840665139008556653190605902814347246039828089036490465768858578291290953441028929533653933917849720791870865040252714567297009722938012628702704515027577343446073644834624187076897593329805282195906349632105230726434108849643341870905052850251994771445497166159918014281011602449828637586089711738830419694481587318252625953860629765547368190639279030399432375839978177963465443955839824907799522805309690753071788034710563778194217464347803873241674121831503290280538352276170960325385465752851869034761137227090733280717276853265957155936454150426534258222654628292512523578877281991465472577189365838876424426216812643929779668399335665867962452731693088650248745743020484070881119853903270652148438599705644729092833331893593724735127978978677006056997187470046508664189699199311155148260729698230412586920248823482862594622046828665550173368908780394488371888833508950745881782136507362099993239604474348827334690828037408065343137689724328871434484516858719981154786390713899527397981412323304739721677813381735827485294334415031875703119040927747763931260009787859220567018427964124750607645744136132617578496894384259563416577167581673211484870440077344820843202247358980353938016906852637437964225824142831800071111277000793872132627166889211109607300183373386855936440832382063586686741770472821476585733832276301295861215824665357387919209198964291542837361528273483225393018122429402379037200169895559178742236090463076154938497477071136017578799093419093687403549255201701876939135306760000707224903533676337387204140914512147300547961742849886349889494170419722391755332555450610564913556378279396951208082593421843978763162023429463900824646452247674331242789249842605079577570059819462334611980345031575159215214534662912348066793338114370636841788434695188957930185903896528562363526334221730482899215230727530251319761669871075255792822830240029992764279236661372818350302280777459638509994305178000467017735416288715162987173552113612602446526965681658423033901723694410701954822781313064722593147757550201863893003121401924920383287726893602218852964921496917740030035431776921723608360530826685604431894447588542348312173714015417179634531312099439965616889534654299268364223436841536903135771152832888162263847282514074660559715697757186484459617271593849130938161716449903199464366298032329833950968008069044821418964256556975581545731031143414741856038056510759181679401081647151743982415471856930200831641167868900029163406128944857706981663580826022422628881547128836861528644741868861066906318387412269606004819455081395851094440135781872378295170606682901357548996435376730233107197042860209739116657000027250313187171717024999005967824792181145941661644750991490001550636562368582163426194361951001794115632108941759395765156289563854619345810073138196936662629030363548881004503027133362794166414733042820566611611178099865144993728927850219031235644842436178753088422822304384848321678302977309330373470804919958895441041730030281663592234007866307983817531635994183008600913356378011313792887419393127777316526001838581696375134866276912974634645645044910118653284582400008446289753886445012296020173716015362833087843052113382882515752552587584158579989551616798950926745320446890197879840455849054173933214161519364688641434224985212129418534265845149191782951321874825980079474785744029521076206840387100110432898236071700240802779750393592220695359302828758238673973235642273180741634186785692961082122902209851872466596126931371329471507019076765387675266048716824629191441404332458217278933174103560481123384265883898126114071243985965892168762048526421220342246706382726793699326932571209197952800778944446084496498525020397365085991909394018525451055681999743356224797543064005403276861630550657817154539349090223988002188799581976320206378489716244170318464675042303549466572505790436464109098447948608381293869729232730565611479155832184231381989476928305244758386635776080024079977110624105424415804969352678868160796315455661692481427608135278864714950686303283089270919901178664100793183957772949318848606913006629815473218447151250140784787432814247793453734280046722629850488027219441311816581204496880039449531229943062700900697631176583738101682268198139972309249639185112498254786003676747740110040254753856523223695051967857598703016156843856537055159494373815739314666825030434860371009250798884301164688042882288566735529757429778001334451494982930102061220637522086708507410470656312463286769254647304783545536189822439847663948778073096799645030703926462834520792558360859736105713459464264886270568272710141519462068578040534950790332916278720078513528288089726194181680097264941279715998747476079050904272883224897210048475595079845556187056790847601859629759487262769879197045355813702327032476653880719469915281198024765706640623433646269462183720646303891603976277243644120802105621638124589807600892526879442866979417932582388080561692874063883800746290507605474522805231429054210619853356834572012697122349733418982033544921268390717316606762322167102726566807057214640498070683350883932423577334645946997169531418718701608686493520451175308240145391586096591502568233183557730864374689879593349238367614515204129262806832731919904416506237187902901107749823263079047523994709215925669342817399307570632687995188641641738115566175454196417417236746195316504462846766974477815929329520431943515546581323809646452797694687514922223497414460242280882285246625628326589564358425682623382431944657584240042986699436344820218679666674260068409665259881293446680204627350298340789129059584308905149134907381626125535456866381347092826062540309702619552601120904539378611698527096420878379806908623608831191370205461392340458867947799443855158169870239981772740567929264252177343594798688149763193031575414133426065461386863041900998005191838354250730725475506989956782548938047904222473054931690411345020366416134855885512568641185598267143071951868116906171280876897586650955559696690886067200404870713613573422451081720315882267651500504237497425968750833698974300448253993670901125752051728259236964474517800931413198776223677273267079846127497364973618705884338803460419370102590425238844716559835485949707228566182922807791876821940382528787742441968709542416162273800855683637457490335774299369718172190145323707535294831000295748790929913206440786653915333062560345473482611369994086409811289657363740224482152526688989290871230875121890810649206049803979643200132546614579488403659645264960892499756628224014011499337601732664366409460953801205676494389155107271843662749769920795197596611875523408543233570285162598565935172342065420217947122983927531132184274713066143391542612789748773405203494701009869131900130484390405613997743843859958199531057705247749796019630948570648630174616051692529085983232399056516486687184722466622801194214192977572943157867385100935545493432646066168818324711903145945816142789534000173762924294342111359964208920743189492263407740708270262276833088523918899478987784983908039483989378257497617763312412195824410055437970187308885642113962874238418080286080610763466472512837040885270252743050797737429388453734819935335517817924194726835791098994860042274279068187303351981706844662392067562053658305790332679016368583571742737432503012303694910555901500093331085221999654987444743064566303765409522835369588671814454074657217601595634888805589338962401057401258885421166899951222979363473194370931343271770106949848846430555981254639007177996384493991347990862758897001137291976069173691553061274465034726453129351223612320885519683332166329911503899192568385551843128840794730662233869974657605723954773635109005565553883368666618072160772786755686765169608928573258316218458632316527483097009387810834983273515490772944855932931694773161676566483388481745120126297700145852026078482126732157837112132709013427187657844323632148296687613234018361204983773982981475079869089128475514032170436040783389227405901797003931329863031043199283312242602894515454336027088206870872263131236727988308045417222298779691475394056653915633767290036527703909744555811534984519688389903473040495970569390691207781746996723071236301703204318044543193282623483374420874585302712721244180907033799872283812438401045072229943793003895567007902703374476167580091165510879073183148738105313985637969228315250646692528745723502322981031206978009282306283914853154613033393948926723439571389114610395265160098597125754485020736435592400421261245707061249113318148709010654180284871776075808200087267350099923777486012262656980830778526309595488573215854417345823814024063371667972355309107134803866125123559575856406492651228777689396566012132278966173970620871807209740129609519059322800772471078614503382975621700202200436150031473913539699410549805748164527561529708351914768447051536557530494697074480691678290077097871896186749046468015260708435040391181353993947192090711725428285191609336731769128889268066001522103565854660509442207486883510091286683150811407395814476252148049556236452193589210336340250709973796082731940293736465637568760770580079196403052628197197592210058146986486822365582207562314410717267288533933065577610260209542978773882027488005713025718528818937556384896420901105306701769327850741245580546071382577879541182079997651854389594744120097447462076903714968323779636485884692114395493945162716816005634205329871958294036567690321229024874051797055681070020426801738440584318741777531195364539605469886060310875517848580545320304241501151420627605146090545140180781521736323718201423858897013580596759138619933822930547725833158778236786446248902353500593342841105400856274475227479499584258773121395980056464031198146843954841559833245257909108275925749793339423161067790398435820629734612073781389574545701412771959660841748573947057600318549519456273423153450484940250002456004196589134754199903420720513437529492623266882631143301248093155851273781191189849155077052336925857688716380885916512708005284123689830290391486032824797839625098668059943516923430973735605501684546798742526753264117633323129929373038182970006762606641477232542818337039144664622729549270097794172306067517364538475319747645065067608339784745164687791644131788704128912865465290653692880207871881282400452860218078449888490824523208851094392059812244491965217311314118468333748201036509691020682886024602439803303151759491113084125587281583205417979132315788255615053983189489317497767415955716060913147703020878060689470557861291968738716390458730002527355375683916794496467965698497099889453337545672219806361326660772828646165755868105322511006285736626332683949313003363685528656939179552677186228166756796690711345552280063058291542269840425159796859933872665658679675131266829939706103779431575420712009513996485082250695179734981336753218795416514867636512590784688691094913025648057970417920413224953761532545182296858496960211978487411150989198311439563287463049586927049394545881915507633077782282546295522098541743681106797801547103712106279267835988594636821143952176264623913653145787547664674114024020612048413053634209977253338363335740857193020342233281055584011055893621243556992729168120581090630188747997221775681581569179762706862229197232065847166187020887137060911399195320389118320080349028348856658949554220835314289510724010464489228079926720411800731623158338099375172973211419941154112713964478020209747919790869768726249236332854784884956079401484583321575148204489052370048540603061657058632420960214059691920998396432277968963523781360203028444731351137735601092965564605565004961011493047113178970522252496619815507249249110169640468376707316429201848746193141420024856340253891359133414783113158389138053915406707058148834954898430102600823050991122924256889621050887282586543496772637741453653584220422589268722899773383120805275826104121440875348009662424321985871894968579766187932131801383061999614088696273490030715786702789178514453907568085375199283760844018861567641332842197537846950348424436325472356509406583596520679199610096774217868645797815055829736191723315487168387219763912697244987586515139604030913807027182826523916475243024369062363188219948974662490568210217210232657622648607043558030075801885256645035730608265580605362088364504635266292135482345289358218804137418802745044326390550644809014990659195622528228996871769949028968273824363737415017621879389495542185736529563032317085744155839965640084914509633640963703598450480554334787910051395037909473314234046533091178747409914695645988124496922340621224613778188405356438342109583527480900358927535107026046710018400978926395976961736418742666090463204327221907198853997956889935201893413013762107475936141355993761963372211296447185124060788621159748659744390394397781077275097757958535377454222068028854942989984598802649391883278999363933809396472986219706510929171604252440929890076197419046083722027165891637815838065690216203800357486180299583416630954277392229424371837828303039133386099809832074395225650818316154860689663648829390511625538465358921506973470966765646179514756852623956324886700576316419552890752183400830854293637479630326192764705036524009165022879629496427224054216088182381847809421600054844766692401943632471561529457111281600969564975545460995423123242645848268418811978098949922783543566567620664273797162983090857654062265921992542697711536072750412462978930723296694835634593707000263553506803526815601446163636247107899653383918624769923096736980709353777773129957223582125908434004978907095986289244888048141470565224185577937281090571014643658743544643818344515305082317614507181585958362865491844219975351827977253645601347270435715056967172623644502956931774906030734011573444280200456738662320396938228774404392320541618253314678391146626217929620610136842794100943670502328129368003809910066202972393933094224010496083580305218822073431506641999108846514907395835043799103817476978170352168787944404511329548828980973155004752146692719279971096973788271329516976854101860042131608345600417243548876805132574830820807834900340399157171810489051704204963724994915849217231732404972181072913415949248930205679166174624073232063394664906775667444727009949243403573574022424195882167777752854006064319533557175498023370216601832750437119320689404636737036286216207856910647203430707609643161083201749543146241415268836881625668374110412544728826053665123445075780046349912996687857380078872462426555019891618436322467739001315507348407737858107963264464025291032402476948305181109903646925702347251240530930383812761706627946696659652735983619900717504534128640402971918566271710109765011392603347991695965279691546066856001543194744966947265280116898362650923442904520261317918164791715588808415996799697740852576090288132643219725622910857941325908056884647948241908053587659671431961184730690034610935799620038120483589541245659538816036479273484690758254304603748435904625855387328337895635520254696044514364042245879137706423903549988093891484094846762565954120781501336795519962528585297710597638256835256364152445290553489944642475365516176696429893034900575164791605859482913096902358373036753897065888970631070300222036209048335184733942160811790083437060423938469633730430577480273816739322693208634964316032989593968850918886265426478478970575617122835874520632290305640045438606780977197405108065749970388402959331585059329463142658671001159855978373193717918923186374069688830051833309056773229959864038071714354880677137090002920678648836677569625646205046894431745136768248584000611840513779774815334138306580497431413786356703954147095579054733751235152177147163531582495247298234673194170020722821700470591389334984430067024099181519821086885292070463789294191448387946291544206610625994176019544593954836896839380094707707183041846187808435591663407972455845917577962832729878539194526560881267614188172334803092475906184358975904717738347459150938914589466307150228448188695771685860372494922001468734938985778647780151397931543267324096059179541959433570081428551585642097149184597780344385883820391016478692592278443913685813267141915063506634907597233420046268098873535446656595575384138587349767200998751073071213203656486759309047011877613153932415937245980551006730027113902140218649128981475180619429482079431631575757573184520795061938573450004256301273708081659498915580870137408455832237268410145624568987179868309872353303970181819321857627242306140771165723888056443387855831867836033068228321125012410121234569643024296003036815539430755789247808113964943774325560924178980106403750460546513625167263536230813660462301072108734059347675268177379750054507794362323444138761673608331635115608803706944234098762296813977598593120406969680046602128133781219710289253103939371485915491441493966743099623241886626667996827796150575550154749714919253321053119231599609240310798693530311502743306010544874210637605003903578285666513396888811856624565603088817098284476871224348864461402530903292877131646054257480521076617746766129550074984374821944624901711833125098403955811052267436174094243603511658728912721544353061518280262971913179817467016493268650661632681974904110900404645550457521512474146832129982992571860176559137585357366255142932611614520176042150348247965014686208545528774563365453775003347376729489704960752583509134857619381669745972232077844505979267383383771727955839671062907957580321053815698465843266486495418795890900528664110998856735153382199295971375807842479457490301457564171430227064824675962154803838321253022987147253434123372608763469229014458777357936470253614266064182915498432899274620864983847412652764957082947750281883737718553688546979723738480030888657373229593862434908135256759806025278942580861161211329997552575133618811227244964202155067109457752543579553796344810638475915324823854071039694783000483941286745154443753198926572693563748421999413130513107433870795830072033653012747940739914333113076510625797804020636391371827389829655904364566899920085499479664243292237800825852333174370202465587460974159574390559744122414616640490550555825725369425996672469076890991086096045831021787750125068370818620020476040613214137251472296776196971352659393402027561162847549408621709202404824277953462078646956275418597528814097250642172971607835390044361830720823569836239486068628949073617223145988192386994956874357370051584826565549165501665412163078950601823753706782196968721146931050728752933281909895122869981322056727319970398391221603176863000249539425906244850246222882199874681659992087147289426985421646625494538931989695271323492924648133565135176653382452961243342145131450821029054522720232150418926443803911885342841217643822082860474867716690781782802367756920650924710013855776651074764602857636925540345178012683701933846369873264864732620750947088496463325000177670882018704122767399793679082724635612810380104740649340324750414602988015900658496965294742022247797652838589628634711658692002350635304416795809946408634815840553580418866741900178650322111913202578209783259469540055692616683608322645650750368725671647724515741761176046582131440849064243575918998115441645779799140775710102509922880585351168569277492628209279008173743226961793165764331115676851316183514413259296348488626035087678050870984356093069297260334615847526105808392910918894955781307312190874450245133953528716082049445429294513265342887977947531782818974183259185120770442777996027444385103049639995159173530865275394688617481337854314994364518544563818331279646359261108970278459491115338586414220263139540661283675550603470176319483512631562423256108464482289501712450017561428164909112448231092802105309069413690510432174490185332660212047900490283550452412881270383187674690782416920561489782682868559739074946318426978693432333447285494710867407617183538390941542717860660580812479521301815992545937521287760850963966474111417626022638061832796088247477747891759031530318364572768701751654481695715384347739943808570053743235327966919120282028348855125747379893210271881407638447874633838044513267114305020743127034585611047452859444276053007292086013579656022503762559662738941100830771922111852575373313784029920304240233807402471613081224332205907954544237968795812714631491910860917570706109624773234497551805519720992316538829853031333501930762252004530387438408262661953164937701183178018628177998758953624514821868631368882306747444592814204257832069833509113112797682948139360334302194215548864110435657240058893792835374415646235253657076071550157503159696651347485519876340032842234943081733891945136564344039201566810290846368603421102746420053216559146678308982177840015753097237108536381703279493443667070336694033357319863973672696500033513706329994942118499212611466653634541516985253507479140230595221108210857649949563045233338255795048053897428954655536423256079763759427461852508104658631315072073397017201832014595333740257518808926588336659572792624778237128018602415941147421674427760122898016178039993385824140363884304819525389688402980225973603833416060197573411084650685736506078701305759123371241655238630458519816066230069491100004302298719222646193927391220385497581146235177255093754544367033493140899675812532474953752976512020081791669060943848964452454401483399151496633006853339208427160965297545993361855335947840029636872107422396875557364422822750944102925123063158521901897423542186506815950132212848713670046313458975181932023244132113341078882262538681672236272683889957811519145564256486423744868505626516445851804687435227121237514844957662536158799063988396316833069828064092086526746478878938569241719270239867097336821270109705342156264932835095143651307028345000292164417739948777323037468794652154466721741256872919651843074730085914904470738762436720042062115569319906669157619584718487523243096925280307989865464598440015003355027758592697393794385572215576786251629004306740092003321639647609052085450485308583085292758760855446478939597274009943808979521637410962979304956727592130819464533442633027301396999322192382602719108849262218635927769108994539648761885689515317742967410195178101112284360824419505847620332352527802554558032984920513886347617509874227587158840268442664547466468091036607306045774080946361692540712670197986107286002613131829691813317779941004259780670888898260293273100463162413098779362646492390621368482509675298466434202586886105679352993437389025627850450825702345005982901184155978669747383986954663247350881854612893842766748314095971238967327309833510246429124904728283712573866777925629860451496121032798200667576921608702576448983030579937485714901528141303982055048179553280405434194183857973740199417587196167643199966711125802221508260903606877788509871247203448844642827971155309294672867854611468426508606757954990391424298852609789090511619665865654609257518596851653131713424126747655236886855380757328293164427681203890096108589515620855367517700437358193496054870638596875810406769332282195278388843093649887989202520128643822865349970544046034825427848954346948776412004564604403287502266804143424085175475058991544392263895842259398825225461569555483132033850412279887824807306540771526369646423702681597589086646472639905970272383236517050109690316734856083614657386324375840638257505204368480188798596367531091272436755729452624530823600314072956682789412965250858980509580270015594002382017757454124909966142758930957084366222272855867247125255569072766907671370226873074014156846630677590291071693102992268086773580456827249741413577333371248736034783455004198787242805938723476667500230526168960758847713624908404851668018856932793696320718385204214682190179383058949101302592705479468521219118872803459984803605926137094331377669963063609866089715384352658185029855901512738026175253999796996335655852579887226394467718491377327919698973707686815106411536999414931749467590984341568928907113149434681301587218121442290239482683695289707599737615959123494947214230819713556534155492403059967227570823821745502653776103746754293017717048571936203121652264317898363306883869198164639825369898219379463794460932819668306254875662453161519471569305121200629748670133069891747960679275607447570138408422915484999179340528942989023913985333337424867801740320959174750170203984436371723914059394699026068117223197059692827378286487387765830927252771512683930705227562531769249473272454321259717504216099588198679452636317108501708965256353980955260297068618617540370427550632686781584514811791534454053310305405588734289234758240211661218636395550235952280070897048975331371122373879339004680616338857688520671901400580101041545649978673443503482151088038001245260932505861107081422613846228755190356795487294194426997140623786930977466759848608663448217225131818772715492253165081755021147495518236867679585234674429730803653856560165224343478287062146124904151300816919005324774907755644795387600715478874469751771672611211108355994594571570059831168166859013300469695740432552841881312604755442897263985786068764355114601563825765355633940723492286049046889432285954206719226807361957241718900264550695476427060720380421350919154102564430974732564752727639005257264158472174558929000427911042301040609605080859234489441029252151188663130800232693753348509559644806213062913221238550749430401460480305711531600667227147295463890609419987368994163305598210651099262203921096159996649824542974292063411234444346295716546138955099994755800311884256934256184434308470343903940837294477907100667233447001074203243930005255303196663666839519210345178383821286358362136858821907600881019104672861421963425330196515509621394917704800073900288165010206344251927677198008231552603818350107843924248669573017567581092001857819743894306656200642696344594124888295195709942055278356602277700779413138443115296260934901260454355463190631754973322650115361388438633964566849305337736332388758293920207422177307497878958804226714144397728785025942697776185661382352006818506194237343864442646098681656423329144381822186777374036465723595905295541369757229957992979136914782959155808808886666954561288695667445042701401839205094287253440971322974263019872688109564167971495692265189942657808386063073798824238845210462915164626368399731834483268561329067486025261001786358567991272139991752984385728474165385245880263695199742327207400736649396773091937716238510906234848622829729506159910139993367062466573238016472847449232372496768678599440410521429921305290425835437617147096248028817794880346570459414378599673288046698843322697583081850354628805427667050330958750033763003950461971066921465560129379736163966794842832565798994837796127233277013177797338626645006557495136612751128169524735444005137431373144633382433474497824550031791663054307262371040155524640716846264828772251931142873524957172711768479004571297345801638585444406065203269682885328256887214083234464713271688717277663433607351234011536014506366002294334195703753555932709636393513509156711429204014954859354266220608805966435711025094554128270059500809506705142723837924651885062708482673727935001948397676139008733720037330074432055484715956478405610595891124144902169572221111710492015130072003106883528643407704075422491336225705299115460446674868307729732560591164819010286961031576370201647902637220483944584594269440651516874540311441285888274515978329109678017216865595443436265140336044171839457167857076598499459648047671385530342845529964350391446971028993560337027534091120944148980579594778161667418713272749434074050905568397462485482950339153857498405088184424715222188126854251386557971149127851506199637929467509621028541614088437898505096734073590558359727643463980374684109053997363023596175619336028404584016999687033035757374781090335995547766774559262237212755327766051887926572767615476221272054789383942903973802842498350571791532059131050904970571813745229514456498044867718896663855131744994547175255765479115227555683903288508595580823032014934114924525976342168489665796078465567141227965309873113002434349400817517868510516693712829549165117165884664236901179423903628030866553403686960177025316306267582936335123395455476318754904961516658729090558488892741382932797500358538905108203509678210658634917794202820681058914921295593088055646253319401331106867699672245825765755151331198796296742359361987966504589514736231140562164213453038157389815271960334452975790162029941876268197743415706151538099957352762217101724417390621336629701127876681199920864438483893890722095173736702593217955165525035534506767594057004820529566684549286337557388418994341037583546105169907909477184953703159165562356232442849380585709699324701477875016399241140501883236651134553465198297926646281924595658057996757687829903045986861153849223280948041405783001047900585636077080779833190677461794397592553764409695285764017096814807234070844254520440582062508716743777299369929672341297852203294906027009210552745600645394771522925295830888966646449277118891524240418309606108784151706918054977015623811686780057918246249395670788426472382799771180380679042280272779542316949664676155245169014103587081400807003828113298382707397719442805982183052392595497679628023980090346547797643638537037566807547641655181611563268079143322605465754993001255756957493730801753236467415653559476475155408646710430777692861232839973142733106440250758540653012385092169637715418960939860898891306636861717311995904561966928929621802906822340661064904624528156016408594274355279263127154938704844517796185840696951638643931921452447568620800450051092571755539614983240351168152393932164347100778414861146150990673384166499080672939025161832189694307773841436425974595104907009151190431266220608470128894585997677461745464799158603502545363361757318608363414522734375915607552231187225305548512523807548068712224863568685718573932697695560174364866618338320279072013221826101524607803965545351940596362686342432277002967959627937930125549012439188681601682864562521093022256827385521486635467729446531896300596054961454992244800620257994991352010288758574822188751525933499684296861049676351904940131974885239168794266158248177280292705666239522531502447035673152532881166906555441395531860164917797587591649074028330512379348358935158618343165052376684088939303410562553591102003805461841154952579095037197182363229809524206327302273361981615129703174564640698724373148651383828652869276944486036887942952944915711650476555455446867867190356729508843069966479580912419641542500776473454811625399545377882880981262565133669246243119355841420954942427306262754239463472255842221269933269058841856869543840777952765305877914847241843995548368582694941757787481062623055406589223040311020645176278328437419660709354698749406252850173515456470465548221154971737087760503012349640347843744987563147162805650760468531898171025162684625159817733553848518066631406035032597578930295869549615705778956518204976400003751607861770331245771219844307280911704689736790082771265546765733172436167945783482629543350620625447007955978964244073822681086340036281860846945578883741753527175109156735357371364614763665211588368118726061221658019049256063752671212467388951919137516351565656581402287769980096830446743286139680597796058056444150328704755011571832471705294063603832251126720883837241488921037020865886548638942544290652550382983142372507389506719849668273690231232072507690260199318271271722028363712250229722091343742357361208373147488915381688192336690760240931939779905348299000347764000169685655240817404090987679011680704296281531499256638821216439347670339149238200841945941931010230372019149258639163161871815772226538670692956152157083622611140375371405372230870226663639364980414657601158592525668825374260891001720823450791621695171154428456241253807249376464332991611138319314717687518145162988948873546799133801374795176013818777087144591126430155279177469387218841144316458897979424688399139420401988306998661212241023302707420561384219196075800471713863591116362266928505256624602584406059616117241722542353884917111858708323484113585803133398154431697984826821192542658555230680443047566560801841422794449544738609355615598763814243336044626137870372523570738119777860992300390097137762261268858588589057471224251684406726848826003280880272270931656213061312522359257933839417970348019874161279619271661332813283726985249027018449603938643738675956441658234005531875300747745563060353511718131552000205400259872750936790258899253047001756809318703197463954545077729050794462734070475081619197558881948582386435340192652352572076616902670353185469069184109360003521052438626904509784142898323166684898219501078013028621540905118217447469713168153236926638645085008569310651232540631593059295705645583409301157505944677148644221801327989262179477555810733404133803351571976760411357590379862106766840261140891342439233629873865658710945078691531841930542640736008850961811836205729620975360025012201460923133455022314057843454192011161432336427872703799193406909262057841267633937777259401055173435718961379513660538303493500902200157913686552238165150382645252260108263567845139310703650620933302078602159900288575996003051658138574108288679327956781359699638826054371136787713631779171033474864577196420601515141266641352171581342105128492975214786636018439398690570009316840586557877882073706546282800015664526960977054857910268336216594766065788736576664757554845345620979479679591478921367292556741619380698126896994867541622401208967487411965060049103228715520865094197085598096923021354899787975326245693018220496376127394031313049335013242384911199092922693625314792052393850280891251737011127312004147024986270701314793777924459163069723806256728370958465365000547786329340138877295084642588097957524971465973440650733892753803438470051973573560886358410417409804502959203514624377895456307729364585644580183444163016127845635852471716841886366612489193509941056561882133879910482960412665300653272248629055404863893541638214131112144492909270206049774124631777093312782182603903773622900817973453494728002206258781004444544061572623929518271650259868365200857411420464884253309340197867387794405116769663880798287312548715951844505322879380234191987294368654756950404560346387507738187274825905200969258260119926809713886241388964951960874518125278240499069012480894527997259170552973790944400066072767889884842805446342173865033245170299823355521127593645783788830041071011651289855480916289479313839257780528368887491515859435177734076826672170366162846726879224504588330399621128191659984949506821501425310936649820938892254468175455037753695520002227013825798320122901471112123540844918231386544965189205399269760616697866871400376477225815162115100750749970094591195022545466936168910563547450483276930601113663028427546091729423542366508926617324981341724717331970513914685421892503989544348265134032919918365560849514429414154310929580026483806943578294273128731852194853742600392968322707116631957212970659616144874580328530384801446972307459687163703699821135153875110360271139681085837294651631386949475170887671206422249580521883318238006789502222170383490204394059178967517788259363994721191167613220824112596575922095137584684669662963310277074184987224196689245145961457273046725709499300042845627923320276141465716311955690327940086917882581435630989023307092357156919377170460445972548541087241309753173364316064736292990643240540576566777985082692601847713721421547236901743326314170895975661684081438988824749548041190524811291950092954996399508297270455119460300591208265661202426548777503336645166242701279272605219012635848079216590962661364939791496546353528781832600099235111537623995500986714741022696793666834029658316780161454998533691816462990605627104153000127306940795538495165874370749517664678348815278272607059446154907379710916033288068335267018576783712299323260818892806724267090907898201533552792479834955843982773606534515391289989848395169382738737109433431416353477283692475340934400862431028861624556211802065123544047830422669313098371346971099385873460872742935174167966230590659740975303768064754159755472363196523853373234514902285540215694058998476929406013117137464962801946185870417333204139930857420611033193680593342875904482758876154648817977296599942789585416875274976952667695856698674331347265249038611310301207771023823174724982565708476562856791211231245427331315656017273076471902112255461504502217282728013450266062903744428340953775881625261231894528025556709651679370414245961399669322793665015461732951769423298311595431452525591086126483444559510204040164812059280255226180637524767970067198690279583573528734503120888195078848189766884466736306466737228550462915219145613410477243787958755330214088026239794797190421885531652510850484401915768480105525209924112156468761041635517889850947442283633491249844918552478862130683266972458088273297261965878021654043439094471833197279567074225833906757299822899450286634428470176568343179091427684209055766112429117324276275044759162837865956273246855688382907724294088681947529026119188320647810630608430050014865212155191045898042464656612359690467071123635206009469257038864462191166336794170404569681085629821869026036488633801677781857506475547590188519426721615735190283586429698982579429984131353962025483185757593228441077197023574112290656207501034012189518545074744156413168783439218084414183653251965454411753849943460628163529971008085409180434241800134732961633175958513259153071362323873652663197253632076708162429027926105594957653203551539117058541956416941311124752685807850828117399271069189777123352848923537054420708428399547808140251140404370423516694782183221625470311205863222122760230972148331655521682629550223087132413108870864427257355808502860272400569955670302590919325692602859581703691707735060359500329505123159383114261167444179423633598949475603184915613380656508230412570622363856293418802731832041789094579757767223805300318948135823955942202200327706626858506133770219497298885850862660219278557516678128654199672548517680259887604455972077405506085865310331744325208607438370609010866421702234496680697169329248317144926826823507495619276271592396056242259563974281551242663390193797345105560815461478400464775123302089960977264683329524697645276031086200128492835994192824605298484720690564363739369195634590379332316123067512274202465361019922162731659101140410048173204343457841050226830315941423643262940868031641242737938314751513456448452404236098683507910096296649474626403586372511531351924388290160231985620103837690967287470404559990130888241999824695381641432449240002302475166525985352618880678432859620551299287843641053059458440109539770693870062216219419448729851179653941997225837867668849935479601593091784576491462888855323479363477311824648379771938643471254592272731927127041431988695781077448952750578841406839026259303339752606457981706120415523352836863542930841518684824519008849102813408653242163141299360233918789696287852985099579250885177667434738135174900174371984744872793456415113388774318714529338672770668254258432039780233343350570382181093309614785289982073779912885540319189289154966591599857311150723222032134693868667816272082243635893727476109533364227817496466407231164050445957562626048828580142137004741595568279071665563949230342728713041934815620202006516495795937668804253656840169556063169075628102031110629758773430167981559168165842254669561174354441346864144830282170196541735140648167263452068378756776316269440507691828559607421816884889750726472896410480942572111089160881617149970905723165821978475230231797227816285570725465748245717153353029148737977548803275126380510587435636034536501444190377170831288328976490341554532860380205709452458599236665739508786145104810207295133456891103423530413765823374786556728521670417849588093248806724087768884251996819150324641318032321859115239705522558163289014061884804713384315586158720567976119030376321370192008141183521563430645952309290149361681834261092818129350008002369231319237978778564832357578614819507933980835462547331401532693489679601436484229485669838470515310129678269805542737227201998213078950256128482018850068096385162180863677480336761716939721794996252463412274881799808618106510092198044921328875413421447741765305859135830657624749547244635577371141146409236650910842776006087958817837212101733174851754766786443630560008739067833578962495199565118997353584890452298061575252872076294602864405855478659410087323502313205677181835828012333674410015758961002017950194143289966500841371482523066631656266585256831953111176110450441080343691451815595079292526823951739053644752357534015762698316283004223203852911209521602385305950935059189156748729362225637139360177511039145195357780828098642842935591963569194847460308248146045095416917343876452890637600535228596851444486258258829017542553848936240953602673219579396849366430731649832900544122043131119951978036155729376782350520914072400741053282890778293733881837842323562461004642983779491536478614186481345577390646293582145191478405698178828861991212330833733132426582416836661129824905746820615877948722679632361895072803306310332017260339278626189748646561421052339790118696644998591460670545219697547521141785693477303660256397661938548658310481236604270986211168120599212305188942196156154160974844508321359233712898107597906388867068230756592317821529618457833590419324470548896775611022482555944770088960266802794348217128760068040164437906456348481671823360486470548789645466160666969947188366871477443054365152583006776339393318152084932386296111278429848085560504572006977562620773576541293379429786263439303084694782676527205602594751737819296182091067075075329141982899364496683930943758555324025531650211356416463068076113957853565286231194625727291483312329645874113654628486712743550473359464690101590693077379980575213441794976945838973335868997715842895683451872642357628313159970230904928210883874736206203470685002149229421684530859022403782918870288118230813512772454054602954208034782233142062538965457331513477105809658365599091881103539972497248752276186005627929565382370413307257366653690824239175026773975786061661919405383178266626482952356980808173181676235765747205592352898560828632666318411591946701916170257424958334318501991240226174864930788257435947686289161274682378847875373213527264901148632518207692611680376906642014706531563649783974423064502761470594839353023579372902332447718291460891247152332468641123684665796982528700292051994317656034580489686118238163852535703473027095876230913466803976689009514135741706345718876134652020715058764902939918782901343266063467104898761501967169190728795454320288223494950582319207223689251688758873244840117679191093874519350151368949485996277346694631055172084357766889519827317089847236599727069433289200110094743066437872373088834017552681996850137336654244677547084537736196052025300844318938769014950091508765261228193224678936165415282840296308089364229440678081507766869393459056039908521108275929779912205359364736972713391777870617176037571194258804994565780133834532005521247926616516296117432689614888569934487739764772395236916868183593759061936928461149914455506138908858680526480777839736749057941505896530641295428505362653639565207339125773945449301015917979617241821324171986108927089532313282937183101205601341790648755246725252592425617200957841358620858956761405283298411184858909261635627886903913998400587798856596625023982732106465754705226970996323797877298389914945689718015171658160265260078026069374218052420759852390400113696327184673093225659194449491780592341768105434856589764630440060651229326648896922232777699905937534223456798917890416508871212143831917461823757413418888138257584113619065115359705888430471901548323839689747012283718517824729122986592989122447717236447262513675758061849942062227789105041934890144089965678942088168193658781342435778035808471050539946914546712460460150434246874852983977407188572265879521456326327441116112725368721083930901311548296917945952221278372457915850621479061517079892313096742018564243857279258282202538472927861465603941257537466715456015613186177638645525991320065169141961553026443196323604394635464087047433657656122544443646247009789660191072810242867504998933646448076945291155118056719248357172728093903360030713057895106993783934695929220378469514323680220129716866561036117364573620618602447480057279566125017449610845264996266480706544032608301153966123031541061350265670152520455763814787541774749215037289835359361342376606438833091846932333369795281025110989050741346234097085364172313858771142040467455000164871372240880679014414567289422665898608256824907102192401426897229348570329042037780568398728770909648842757072998843175811410691472536627598709704107311892491509487899632161713376292630834047279016692797880219893845691459277951409132893176709276491265942339681928202890301728538253281105581304823758067566337203942673131222735727670565454203042228902225691859430334221498188815440797119484686765851967298039485344437488152969658345671935975241033274495581975342662330631146777200507568238274465675130092503892509479596500440552849760734856047650626519080472111272454216250034802403264069455075910811043813265686467308710982236091072018315934756621199920192342261572472482375029170676635061858771919347676081997468247954505806379842792962392298900576030286778634582966168756636059791296219088785908471876474889502927838149371533404303499360041695981261370864715916121339786664403489074233409835158710334083197157394293229416596718520046561174910153129298991879302051274712382266733076770805766425583070799966288200810898532782282865181942212677329274645947103856577811064324752651830355522486331936079909535812972109674652507680523064301530921419330073340802252704702926810010667305469306366803505509092407090761931070334101032149411804102534117585914315382440188375921223688711914241508561410337369587240436515024830650702023166403538900273228475314105494780898921162714579895572165161397908773628861380544922701187810681059184431225384117991049042620723549875338329509627980201182553318113156705765418427282172095198889635458359211941450562819967990306933560543067003184515073019559887796592830538795525014883701320848768051779721982514598864739745959856631520739057573685817676661718130713602629033634589161539474860175960217061500140825003960047122051380696310432672087130087478126439212565437185560255071021595001874068478768471622160402889634770260273375613963784482898637912413794742818752719998364585683202596903362655013431851164893433558578382212683439049789228824104832797401826261014332777026102096136411971468626123745246970786478672719309945948933176180988984650790701827998852183667749726522991116065571187261722995830814102065398178904231065898699216123046134368132180295947312954382068234222987101329418060363105607367568005092074599315606616020877000803178793296610748134447802521936067526063567089454797891990658358415725741407878263045662003914108668846467208249588949559825081424552146354381595648696877895697259624734620812370810178019236224453466932904804842132405698665185950263941908877734356262876310705531382572305154030188234766427994270015306941085604886994214264781859506771684702574319266578175254412872501442901981452318154413479392119169058165313659417696569046593614780901536073476236771708566889696211318259085987943836686819104337217528926803216225163335761596305578029060017150456293458324630642612860184168342392067372157836421652085110624197429227038066196004881983557896482474202668719955925432488814846527399477272840167614430385653974320778952821452054639475318188728236401826698328318767198425275480653960651629100911763377068757256227425911200891492432337920341467840939441744236845186795422935701481823280185653112949460545046459419395803161354051716953969450113982342744716739465774749034365694194535501558887453831600966905477780581199773997700077451738777600876679981378305388900792938443445149026452853618866008996406945243998375019492907158075522242779363267648267299632395712574351823109381367962921550119021185053522430202278990519455308597500220408053635542006127057927338136348053848922772662915532427413034599131815097509025837935311530924756546836050806639972872892715853842415055719641870026436708043563282043586892371971590350174337342971815126038128281431236306969700072677692727026521048723283449484244191266330592823763584013043236788413931427094085863208678200350163114097556001105321065320630736253260337439679853565479281113253950541653085693459744996433492846547929743226576341653704387364036632509619143126346758827690579058934344588210091533943804895720125932720131633416860139347010450971807546311405141442370718809596139367073657509650837399040104701992711762666662258459089743198083903489574063170337211591471228689794384389451941076258481994866592395255082612866585848460625531504381841377130260155387046165167593204369761217763168726477107290867936236079217570868707301043597360248710479216367668395688290368751431844755410068798251261386971029537707433019479878615836926674070881700312869096661241817215508790273241240895098239538407035228451358215003828673962775829362707754052631137503753709278341984537363443848861038700068311345586919747121267608357116358933222096725651634698331787405003875903710018871015940298735441115911444823019923509243389898375597464093133583976977776338636073703731722958516259917003418009708968923521803696403531320202205402191749391091519581595707818578780264509260260769355564107584156116404294811104967438690767572924784755345215827178457364831893024689084134483098515784605038163100300603466538642894817367908473253980389406308893511502704754252562258976008383946392957837937974754480975645711118923103836577446615597983611303746705548661007960930754453117491937284750119818846304605068138274912488097814118415064033762795179506944170425462132646588916611634217775154838895983715718213376293428386260903898105076278685802471280105464017216257390975326360945688373426388064250932259779004635653499545674632562244886929081197660467328501241331489089669960736077934056348461342957619290463488119245705999885296687889468028747548565319458573748867099546235393765590110951020427218705120968150179550932492293514486671152372723756992560871418313918581615865925709149876468144287367403575209144808930734816774565522985028564306838058634053338284538501404034656142815260083656059377088370894054513625305379716381731676940951623697100337588061921886132851527794720631675592940824989208786198606164369351216482474258436271260389061866906032884879476146498815411423131346859251924633090952350481335314143786563755869423053525563473485376165391431992295366221312289585301681712773313830217433589596038013615451481167978216027766041708204293745823997969018893178591148194866119555984790248435665412105942085153476947416800783146320877012515262798711765481880062216865763540142556434440224278389353235272327005354850376309746641927916978515788150057792004145647710807576084927006292474776929053003364696774778495512993017129517075395373237496410222563500845819052857916808062513833500636988752874380182460861507566254053201481744915874418852323902634487739699690863197370384945416095749096067544269835925283135130806660525071836028506311740990727106663121723625368678486142331136629950160879103491612676450324067424220311678135687759359427470859342754508302821572298515687564837122434667010043095878891159832136368766917755604492285244657068985381764556729419402266518545603248734508358754723722886402885834492030203478289566147350505156666674567812416027331155996754815833789068202636372777100125488721853286653671233456870067674245682653153126837945389636217469757950113014280164424133082894191971588026114733618776829308506827670521205800443659510187231771262496282554327426780079306537580008396788385603643685084862200905209471266671746213951911609969064339110140057710183067834449090802254151432650155018459880250704847504829755222805341572288630228543945623633202568013404416618463638211626620958233895333804437057994378726537641247309887132016983332081854028797752464988050809994415808826208908534004967276098033623855259509152267058169222718391276508585716053774543405664300781706436594391411523588406015108089311099258513033188697492730952470991157549570779638645436293301815615409479389596195532889159596515034489462243033533558200742231195788792488614182268820552471673820786532898547394036930086067091158822925803731190174818141336245597162204729880512638561505637338803836386620436664318436291217683592624102922816921297495830901067212902744501218728160482163085222067675883127465329087580669470268962683099991837460848426422115452453373266953818868250004258692949774790402201549892411155894654871250351516662666847802582380773140470960411106794143118413362699462296200474950981437983716843165874003186803381234412495361396543641041386303165751258991821919889162757148225912027297425905737775211356025770807739596951977830417784146710829612041159605992830951450762892270462705312056475072148589699816860302825685724137203772304731964433339364125842759365991523669066855092083622601888132389383794113655233116946404110367447418546023743999894773345028156792732655355355250838186156983891700427777103075965428679255194117831166794326473878837613233395391807640038666789958983588478851783661468830901646728019381247987059100384994748943605143583974500598627561778054391858394727092684968193276266971455071692078950100062384281722015665816179181026174755523017596102108032729228612534679294261546271552806645266068003712858188753574396834579120517261122011354012999352943470753573533982971903257087187151446271209424779954986211813712229430057942223869979694446017321070764803090628008517750366086653849716813456667106544011125340922711000816524298774492725246691577535721616911408229431481324574642535156970769888408755065276085839224038546196212628633488042460449948496376209987739338172573486108052136908103372419030486990508575478635191753384257799459968830181216203497435519984615905717673461375118909786779224219088939472815490029686007638311762700838916626693735557073780150647672934725369652014690018038492051983220440763054100626951798295028159982267929196114666909387857608546712425288879332760571054070532568997436722706994703193731144620121542898444814100535285816404563943321522475709479363012773585332532243084441403804077317292154746175108175625709972364901119522986503530316867751114860954359666397754291326398392262947266018822277633950939477041941546163499208095740713872670199987810245276606469060601719362344352625237683127325093065207771463416256948917885784197118816291006192605860023498186214788444589378797635423388776580138159392443284207085430997475418497812396327040676447049031598590259666754202280092870092888711934884967703313806483931594668056662769638327235288236363767100897932980102284064689603701259459220438105929545039315345840166208296004814674101445846715582280256453741181271671285272722141949658756549609212179422897552476641646398909420423477830874228705118538764197627746902547016599218475801791116229872022203318040491001813331377232716477685320875015267929721781283969259946834151142858872240312419321824136322632725578963553664553589476691422106753408354467615841031808623509630796122757961935078340914439727610101568399787557003364838579910896981688256951724540987662621402144670777227429799122037018118612543514704383275948170501697570344835625003915494956596503973976185468131704713361185763427287912008896099586400853847060710039239053736294361991661451477138491083911093339071099556313298802771123852256673742064626704655447876045585540773276456472164851470031703098055369022077655518170270826452674599538118184589963073579756639363223480173783837934309489696918740929171814191582024159024022018688289551381552862882623101937808632507744588610628897633467112736822007367646660948171048313526403979539944776276651839600723213108273934263212771194370523446742136398021775692481501081515764014489952119318615903207968872938329999949456869905836939263117399517036246232497708971724325615504917280942920059514159335192243167718237314499226795184732774964609748758307552062744382442863150223323233612054138594671121974722450705371329210527153602425841084559758292982547651593794755618953898395780090523680984666794187639291373806207340197520052105379942201287701486620767320577590406301162648882009231690898617908936014205036982640698617358313163944918497282778930622564779252408082260540803657020454518952367070342143422920080464752539401180109429067143734763776096469154718481765870966549451819126804660188274529612178647528169405800827132055430358932042746391054767455508368541488030440414054598742738668111571331926947414888055451804275112156545629647252700342343741108175532967658103253150441207514291734416286218826647996390203753103988418196654916774379871557700229277803406222387768100948868699109490426003071995494202103082448515986788912300861971006120370107151782984554871295778405408450006338265667184789831334952946408687094683108376321903447618209108335685087208917816569997721287035494153066975378471670432353437529938857743857687458743771147604029833754992271104435516242021893596440490479991192241682801132240286648402942434120387343401168206968354029041787206967155972119604269500794422868524437370708853508596938081832906890160131091950506910207008271754152793420248833695553328866808058819193553574824346775240560133936895869717690071851005346212787316744730719731444407305819679709446856930320734937807540692913114560301496795997544243638709351030858751094895255443986040753940979254707999058562940299115372121521632559527395392926161321302661454031381308912402270890614471783961636951694507981718739639216352286653789578449832001982424149752894685396991874446844712736421775409253674219783278611341116624767467215837518319991016533539558901991689671667777824392404117139751154733945000161223679349498357621919511584028227480967212143348357984312425317207682251094389453832766802282418139417923967245531814603145256145393681563380460282935378191921464409701697723567398457398913418204709981418155813627258483582909153085742516235764900817161903844004181628319278860423482744627358334999460535254920342577774343178557201441025809857138464225473042858165893816928776568595271609180492442590587471886885124505240058862342748430685852801023409536945895560674739529139667907214468938339149675601099644926372751324548058438413529683909264944487737637140139627352532022935248157248423289586540487540998215808139384921097050228380829636059020044602538938379337191801428170402000674766232297461729201816885578500642797124445682993433348635604390231533602778528123810929518254602179116061029730489407049519710210816367622681694180024466146790732341258246239811179032643000487675229120263541317543669098164771670579440607804253300196293733743089243164161937989828040438930799472351423184228598889556478210134692365556244280779734185617292219940820157338934234308843009379611403268960995967862313299844271925218617136576819862584876760160782390640736734849785730026363405301392289047222393586238762304422736642534873490426012577858486460746256403233596571320977449573749139742013777284859815976202350444796744366279371490887656331827406305047379544062884712797616000622662778338414166545507234956032593474891886198311524802040068482430326407940656607771108379213168669549312050410045741402175647790020636865647142044585841165031087653137958529154433990584102843777040841433852815961318796897057685835369569627319640250072078412419922941592892779185773644957024583635247563878486186059478679870412787846110660409457033287953919117637641455085554079991054608674070741824019177227957751476743940492222889056917753268839921536797578936328499987427004148536608623318507785465018095126272768040055682228186079820825655682658032680632383127620865982020193637852433272207100684736229389115446378619887183491642168786992286352175954732891091507413799132386959564483626044221188810024854963619531116616064882244164126969561278654453536645443688393346074813440396325032736123491149412729594661256264063570526841497069365542493495765677351635696122018129312282599609999430397800207640141555011475131030134421729395918234904023057450307718005646979459294105127996632284913121974851229314208639359974222210361267411247055568799306762497658349969723230922998412364541510409281295486668690652752890484013229611868496144499709416328817387721020314438963247275500672137326266717957689458038940635854990660923712784512804916410301070793906991494034280981488285545353013864261898151207737004268680067090175733861660660936421354277862559723717893798148205132722152964134796175191747515857854404268177634913373364573960215900273909810529241456362517285130608813341807206773183998412401263889699265837083584030563604954912317244097857383469237197047603590873723956916800996775903459194171682520089316476462075859382837204028797527689128619447610470584323420129762997433872558982630490305239948605608758610191246332285964522299589417860153948655867181747589415899172551341783396637550201009196835671226563608152977312673015675779150751265805300893584204141202340698780519009186190659666710486048715215303601263128910454945185606580573769128146384710223210770234422307964363808655531624281490053784363477908003674391526382568231672658832747631515230513359068310342740345627332251746592206475789375484798328298906688337490900869448387409759345805183616415730467909059190043885818390473720996128681024818571691637790372197664564591229790347241083624777117828180205007484336021202258095068704743140820846081087959674641897762076116779196070872351208166210209418134885950238378120724459904366068401054381150105787021148713388574145631479302213735929490875672991701911235270571801747108708952384854047013807694644486759758129922907177399297916610389658254997478559227874331056178255837842821813437684169872445085631457662997298539742636541404574744953242085355344886116985259811575320821426133774136786349473682764172889637189851247625118349626504597796851788050760008898499657255862593743829029792341747847981386091209893271436386938329871189989901106080983394527015965971595606439255348542869689109088897994099766823438280093426389589256262124655024967179715173466695886198506698989770110892174373838440154426909836248133888727848486954485085317523562074810233165358214330392978790053710102215437825965893739443698736598490046467779472835755653294491191732079432678335524807827759128690133852027054203528151632162356611375298117784392249284635562803347534238895191794508122313175637932579635134747122478497212886073227146264208182865920092841381437158965865796226580892653118776116499239214853277014802173998128096544808927267580437596043580258017859507007584492307292269163580963875991980499605735063739230345926176948717881644255588028111684549236926672922168144427885324098846004029923484060935822189179425640492663642141450024731201036816349512331347885284885913481484556028818486595458960844090748044829071757965157264726322060433924165610041074789766081948457464046454175320885693780716082124449691930473365128774888498884654670804177710664475564093459306115471488123243554625140219394527621010889134335326285155463685489382298105435430666524683615154157233364621584331326138382479189105844132137902793323500689860307073991757403461663955440560427442796291439300917980628159292131106582878369527290711601615397674041638222693289686051903044156245455964686684626559990800726341058882018951221660728070714136119761144551831466555031878017189285021598060069051036915038672718983627803069593650157917996782189511876126034259129802213090448771041857041470861401137943832242711294313046564078996707157799178741550492036158469931469492296150964728992405123645083466140336842366096649121000776191930617685358193736537067011145715859389059405491454801421171710798428866503013173561872363879371277492135707584396184657724079523619065087717661870903035675745783167751461111443208321168057845928777182012720403722034012200643419293749337360081599962553141364552903367052446032639672905097473578522484634618636362006890049162589881029064895098713304111444351033550822454870639633477734555948722309707408255312114726724768867923807874350535770040641274316517352418813460969939403723840049504710073041851676646314068743171862865979010011082978688907166216250914884636898717200623121624110915557818274947355140519129603699818787863917574550224531593798312317440001158442326409798938678470889213899986312870417326092311570279303005640172017085027532729579306465462238506567953518678542309107388537173231734326598778018051709738285579725903756403764153743406585743478346487675871702791423011455258657682799339532979874920572873251705924904870618229542160920713823796753380356961420177661680705271602465282691436169919912280848605806164591882307038058349583615983529447937186213652467787701139550561811439157765039399347012280160216729704937911100263070604385246874598398409480337181393880901314343430338776955028661475587445661949520085514259532734320847380292695844378389904790009210296416451092177387650046442593245509711394671880989215858198829067697602130754881475956724027743785935779754421314287576545410447136296053261055091290700586553134161923253502088989231301544688190301041217573103414170344888242955890122403430739171255373738948791781002873060336101097559332761074366561837151369103214327254811477822792939575667297487627782450740309370607719086234411548077247754502731362152116127440444788666075361781216170409552680811975810055259968682328605012208654317010251278956349045419983605626988314949953155343113265116154980163106648715976667353289211881860039019851247773747373137209924532315424324777197392597376688514466822773222722681836531708382849833213660364650716260475447936323710822578630469585590744308909937325079760722333731208599514593991310394278772665140153892942233638572418554576928858894816232980908984587706209526935002051011644711245984229931027625154043149846708669136456110579944864588076949235279560659220722686165547476305804862563760656977024277712705478248715859042672665005162895369723244610521120544861124936160690498948344487194639101159054470916150284992985087976664447240361625769298592297845005800734569571570220836328077624720373500024922063089044397524492897132230857708325753903448844555829464022535723400462167134936810750487473721741988771848437273943904543196179045146418986197002764527025964082707827230680940718393468894888699698241764904827322305635049518133285535121832338308733533109439265332854354195721545658624178517804969207898639053343187444147610611719883449842698163863272635729088934696330691744999242742866070248036563915445852916491375710169378249976619020407803670876137088027901937176761981567636915898022261479041282525279220106317635508037595351188685590717593886396957978292839425213891636050513432305204516649609922219640625316106715786660574176452568942442942125680556209046392192950795297331333176187778151012611578004563770645536500232075321829392558150150164665731556503833479349544800775068012917280178568229812631770296437616463731194579467327179718266328882689087226441085046486300473661348238034629318046927527406064695810949762115918191035235280167457394602077533334212337502510568273905035712638203683327097419328970174201364518158495636717687091429218736180469423294614321038666082433023515237813845271166250126591564885215352990366633297473337734888660614884211579491077853285966993449430101197463459066167505606484517618003836206197245906344294646437659560930405537557403854885469196643202740577152588998980007971560083694697232614631742697103353682155929818877349016008189613582392474249444922574755275442846760421712826124042600932077716891254835943187071585982857795851700172090830390337236425697133944731326208688541108001849784753216462874516088890102766178014685183916727569004728497753434753667461073043331204503954658723537435319539965838717698738221586345859026444987538947557553252854014056274996408816377771494157028735737614886766699407021294701176989285633542554607349207038568330725001231149950651557229405849105714518889653604161760488088229936314612958717814157022818734278028662871871849186511255226974841432151015144091511427698789614357433598516957203835518956517774460861201650353897370196003547353945206872551714449735076132500559782427901514385937285945160601792834645244108028254752195489029371721804015217478139917257937921971787732495620252462119308645096955946696390461651872321822497182608823194309252129616294005468127212736265057991306540803727133279239375805009059991002572713591081366035531953661841862262163654547459318774532196828294902432322172553246632370606877011640136291195038668909963891084533364791168223253958475744488734296068209605890359595722850650519292024234607281197427397974720564782271969466921395351214072271507797747606754429220796368437747598659383821166103467039127348338814800905484765588634091363152078127667253495931653699486189122429209662148157935725663036250635460082369148815003362548906140857498964344786308712007251264467237573932398499113420576814538873992674800153465346940192763976613695036014712210453950758534392707485232869874442286601019287974166746603880406765135696732559895475440476663272373562010180914472278480656235596989782187846481411956125391213637219476355095387986298883144308821620373349012581318892909232716081760879631989509632159608728099257936767538271661787573502334385121463720390096964546874286818708304245471887182136691388799537415898311785961636815942965386065471732437496936252049131599993775040855694103011889740425175352747206880768064298476867318347696895907819215129634868241036188008798095043832420420785542679276390646822061015691954265848544043166322965657001711437680418607485456052884739602251145333863295675768193976559764704718918834588472009797948993791084967275929432913178976155147945962757520431604043955953907244272901618796612725723206325907171980058106087447824700259303090235074118311859202797469729920525256513727245952065836108154579384057139399756241347678184179996839786748911879565450010660129343678622715816415010916015636364682714593329297392335011814534912692200100006165985584386501922259074371308598183529484035625345001443933179228871373648028900729448061914837383370663909130812537953409755665469429677009289531851824382739678410949103588874358807199802437978214500705658438401174724067375293746720245842674354865149660401155267688125921972931947502965962162658346554503936754292976364226366679295528142875031512816751287067365187438326699364610325985939894456365788683186483475972392358445304235536366767662401864057258657262030909509695416056198028020710508066084916602588660024194913952353576378834001866840886710442747810972784073915142379128608153469109523344642298119725559523433062194182035203108038259264946958614222786266809615501711568895152554077081535021012224662288629871849023568028238593345071260552464372244046581231312623104824503273007886456929787648979003138282538628510600807527119063552092765327671529809852540221405850462640907476034786521819711233809127626873381152528152881678650946568024905531425830634007546822414623082731676502279077960857856899807622362019881166065503045084453037732258443483197444872738550393547521327312770536583659501051733303002562683486719255904606485332728524771232372549199511447936087672177724263702613426279819942000253929308017212730667731713379998350213795403861541704412074719115788854224954264217632336196321110692921745410621086539451232141237880619651602102662578000097081579989467781077428522988580361211342181100175618138130567224682638929728212033106573135600528181131612467162287863895718655836690994458016317283557931170803550378124749764905909338931130201834212347987911850608016983607970016474801844379199232589043461469362599162352267312479051595964527264072520585048216925885494287136109823599158551565865412309201983906467935648017390054302027214842049033569006091743972504963639115787124106482075700665109010427482257415938860258302690068454373103848063589488282771049238970407097265667229396496614910423309307562621147014540607552453521049189412614100267618121116590638075353440736192730208878802280540629969659641012342279765533591381753482326565101920223828137608631966387713860508431420242665536252641828932803274761295898429187131857686637023301404757841811730866228383280463483329568639423515226147204393308391905081096051857207340221822286945976255508594017855634164977245916112963717600384002812029928203389950623029608689353307293803358716995259113207287865651239350306456250278769393323404674884378205399092785532044533530788005762606040362978346823532787791175347674838166190037706988187981316261760786748750538041489744486951609503709858311828783303510668578907514277414589824055642260084920836159222760427400764243691076414699130097001329986708300762602241942897379172414221887462830426156317275776746600690323581908423307178791608232795091306712975529674875837433178348075887003143315108703794540750887495246454378463331524440351773078877027267114725039771646684722303239855521341607904843777133603598644164113752794805647034391660825679001555392712480669118500692969632672266800788266241607359445256848972048906919478944732876774737594124451062983486716861580861244252900301898208114131655623591508299462033341071236999525992186748302615177854904460832146025137042343962047439288795534602580886910510675950799488775024016770857338139322212861618902149838244359275998171771906635821360407189455281053011955558454908227702522499554378354899655291963789519106390278892059641428011875443378307562846549394657655527247087891057314054307897815081532625246313298415661594748720470860080452678997233260739214435529329691863017899062175041230182224346201153261505817405661230628611994374286170226555529324299391470534438110546036764637157235032035951531549686571785551754844265929836324899140855853689098996545429859345900096752860113040360323079823707091969524453752505774426446495276908843883342843813135363139661975259543134207213959469850006573098005176899891471287602483392029861394159550006083701489550929395564167718775813558235391738409669501903795686611203525588300454004930855897496768263802543002728133534704021508529221885968138741689003658373547067377427447542972699284870905775709394863139388348458487840850295977668435215680240828822581764286141242047711833230129383848396580889430938230544231837461893021479268116490699854263922296415362173711144274624923371352007363662388707886265021198072654175559239239235914303194812572135337932206034315878712385720254283461233406171126208911531295641048201397105155913340878071062345650446772194419924553054983430474997135820484184666944730971691652468880929560635924307974708664782374159001693116866269188472808200007859530814108726571611631001047774783480495683943318457530071993355720067503871972005263660534180136702772799007175044404425567790794469722741673782184857078774405860715667339450847561186690825670484878281798258440818635611823545562164371088126034613065940950969196584454218852193212444899983603978945234325384117207068319859037360645645644929222812807951083637058584150988490302997494921535201636216592808021219801056104503396630425770982693576159981136314428045847292469163216078419141922146337570836819540116917401835886129054601090354457696896162005982213121701168201993361971122160621653670924349605798747891860824794654824495006663919550820888767823400193233497310389998835508157636208217762087529650612917954240802483928186385369177230972778061791312177030755224315041460138254268122632367755956019943476875134876678792212185097021858428020787174920882099677930822772295952834997437847157209991872885717270411230057331288431331803617459066606697925461752688278860737664540054206247037962585524012218312099430449490922134755276228738984020700428309228313989984032362410261366273101659097013585245835176537005173079751806884465483109516655915584187570983785859809537215722853055506402318549679170436907149664362662308224495664123149547648657661052350798042627973053288334654845570655981721492817579233795526271485418680353559619969641003897340652082018010034230711682572553615061746447289407437968291139221402604215389472329551284100289576288185110184122436516146615921282145002948292363894461492053667368969001745544483996597827179260909431613078628074349829646341855823985473808682388696947150982027606527329868980200876660297840591268605543547297700638908466435498223742688731471431077006817718927826236566763980907887729257883053615683282429633457196618459825473654797404720524700795119112933152587948383018053243709048800812335894069898824726386506407441279404385237523578159557687894188646793330042829001806249767572068533417269557875696431785260491358621988649024441716039300215111791497430406189073084159937242659927195637535931311743028996211240242298287569316889505966006361347047869044303491533496668130196267611715087256402309175710017467983117135517178354388307175277280931644176796238932679761132606768943341328198080610184143268304291081524546410157553845879385781475546064318569551573449707564118300622057980403773993256120443139652495263527282634616072143553420058258369514483196966651236349997543847835850272928163802439291144942002145753545050640364632568141676740977878429910179644053149897079792048375433383826456242966004506691080785065500414934936782927485216183957451400138050795662326124331049225172075750686838639236472938738490109373942957078391484422678730012219590340800363403943647981502883970549309297260200046982704754782785702822168805552092826647010419206723260839790071871530005482074180705573104876173178742672926531122134407429818471797044556460873143789182834446694203680355116908736634071140723511721127294394540823446082529273634806891398621695456283346972002313165974648681623642874787738149822949551101757633384239894654481823409979938786512284753214264711617393556870305131453864644821469140931855884086008177441827665727104830938442935422208736254147873582108890573262008008274589544431315790537321986939924389817483062356487326656222252669309556709456696918506212819562228588059855444422009156461562203188168578398431477650521682706272866773833471415036396212837426302248998579474314957862241773187840574255426358238839136278236472342348554809458084897941765040751746763858893278292116733382765232990156384716445259471009157868943914173341790453538619021936939601572433640604761024499820495503021317832785602557708644019599968211890662669928211223049759095268886485463167495546795523579956361094384974805104861199991426493639950030401487278797148511963498064966715286509441618863335358528608569649952611891883543521544854025295840781125662261296569733334819595912227683194886301828285676653949227159346914684676086653186167398298016101210383530895210295846068278338093663588146784960393657530891065748441207595150082556735890222232306896736393333224314515273711368321765257327588948378103671593513172720536531424180078250488836949021994819372630011379102889732844970997471429115464924154748309780814157168212083694076127851704405685113150315523726040229181947439819893344278027934044437306487449389207732288618282532299509735183640776693102366034696526743244758372681606885345091896853404164665852529339978473685478300869479851151365522737239634365163852100168106527726358384375145025143464126901447635909195505039727962119802748903602258606205273682909922417066378656967300495973194289240044549826732517807646006772830612818913103924466195543781414169394761023339874166388848593171943689672917761307778703530596320410828639212509678979003688920803645995002063831977211175305714224048316925535939853136546831322662806321439613783843117339715837711574019866744863279931837343534919028095569420874358426217638397526266411535362427830296102011305325147164967990516302453160950851971485057988678821750059388082225114436988317759453301990988750802668628341663537071040046866770634088437390907190843251559434368485380586224024230956972245506415237753538500965551109686278026140898768270274444037420388285151862601021651340615117856305623226350280982268371220584027234960200691473473644771812929595957020624018814324820263225083662977104969761925015292765531817114950231618869664035710456012278345206676897398353954006368161552529740368824784993167727145941405451317735869437407087819480755374639429004948117588677108020794195435054779699028380999821980885536919151993329515180655950004026091136840400242792392295560086060589060662963318607929176471934466299095492008728231147599296299492592028698297401904500249650028599580760414651838247423919015807476541870989048529881602991589601131001871127249594842439907795771985185045167022065685076770382003029500960757835208735393729778508467339543394334433830424434656713237337502226337167412313162028079840381757352548636308008114090232439164073317056538267896132965250569103964458555023753355090768390482222628439392407667555203631567519316156706039609497593497059132593034237012439873525526203438489742093617115566029945432641011203373528768152482785066246198104523072222236675904899677616374794453295731943986388549536662155217557262912962999447619366572002080530685952077315502091175881632918821998787456867934984389588835288523050225925561536250664388218595907200450385594591964408807268799460969601737315171577478459327102908295058003396493371614453538540620692960945612869979186315548396644421306371525614260535261080686342856410236208433210220265504123895490116326913545833492687894688821290710994034866943777441218749364879954707718502077781273798529722403765797370184314338323004658988161537639357346123679815619565507188372457314785720540545394491415679748954592476118933458148519581217949694635433367081525263854192376932284927969038186208421863351396509044911419989903961628188510117168427153503366330116079922338155918024411577068553874583073390600498311257313877195238359629731496295540783869332755373349618153238936514090332951679390913556206667681997863917907346929872301373022447342103597938757440510098745338871105059709424569224562731274225080314196384322590267078576616111389207703573515604794104276130707427275606969967127530712225714119470335733908810660102940929182445525446972985932188006008610707389937517006647037731041168350828281976217496728141719140004449851057128064471886118556826899542861456805810426229988000359785451272432903278801512865368431263081726016326844347027623543138601252424159395896570921096113838614450204559528595320227377452237725115418401533808186921468017908545608557383480883950107765845657412106882541474601077283442169230315387839326534273782207565434118610667550889531512927345554575552943831091644481816132345658356106704451270547359266381398527705937304929683837069851260153700112956484484730003016381906555259070593655797239984812579348358010255086830890708231642893911298457266114562012641958185536062593148471047079465047381439457074787248871965981015050883919399984859907638901567178551752912241011400890010153990412857280223047286391225334335456521747009835483167587945862171159854507788468864193671695759768239728799381870892127703525381657614893862763210825643399045689273974868662423536992671399403609614984668204361668244928046491289472863830311147656483022498602494702282025645233513409776331796079435344698007278583765003313759896367363779875040705241954799881905913007077013151960709137632735117008166082399871611642990264462891041984731308562433570446800092949285839186685351115640362793759387765257897280980041501123811162673082478675048939405874469148638285999221568082608115008052158117667344710200803073176223311557138058396143026881473338401695785966454819959220722427825904008005221730482183599178079155674989640873802214129412197616518969381731630235355866435215832454067105941420767784191931863871535601217720592390030128587689225268984097016641811584331064620059693042015853369822385477938217809457462966552611411398924589370385045448099826054801129645769528578727328589502617828110961915753794898221071338275529875748404791082541557651909923957878422594296227655563005979960833051073573208435770403831441531914965150988332092125310288587404909280463343050473380174782120529570388641647600573547006055529097503780368316706027981869985620557067854729473219807121876168161138442700596606447511462075678337163071999081986327592872542633589351048428536073510151494731315544844555535662537424342622385435342077733650426621031667422840778377179503036770557968555935311878172772402187745700667844366527265450167323988454647115724058607700638796796362421551649746938414099724726849429710982000587598183759512068762371473159599212439142386829936773970430113863244336153835015684964702985697823406779948840786806804357025489232272075394871076015659772992620990680239616612129549408280783210373818060986155064772971528536903219206701711094133135045516762207289074636615249934112763666684565331345991385894591471856015498584194007380129918460796118706205216571464157953140009962264074368313507080939097346854771361930034745877715345248735249449082542414232731156374927714090460064294165241374831262006069860793179935919134731288720402801740426144902136800468628976039152181775001245988161766702782347004948590401279951405736816473467628940659557361017453313015851574151869538239376685421372987293319468302195876484098315284029081558470572015229910651656361558055268956623614223737004877223568647187189816563918345646321842786252172864744329861089926969412549300385959097497791273652134797800935217402798214105722753021535144248764643852294310739654199128518078443707835385562088087340188609386537238588509111092391098834359710943919660796641506812355460781670356120600788137965342898424958830508807173188193029391562697888195474965615227279125862558835175061565324174852743764220169983131984563957239644270345958940780171050608162159159201175950801163413496043128438057287965348523038549958036859329411820114994724020560556680112203059115535757508615582116855072450387327591191628773116565712342245154872656347524763568571900408580110316849306251466478344916657978194957348419493220880809450386084917036279298079188102800112191777723441334738980771857997757656316755774149251979825000599171634437744328658089679132283478200900778989215436360916955356230611284119934708044342920625066393725417915018133904700802346760641021391376502638162472413805115477185111786164571769235550586841718056513588762599619920269394922505769726030834568632332868338125784547807114155340738368023973928541595835028879463837681634350154425663356369540272956686204972964573561959920233695235608082502251746245328518964873761176803838132516365466649050355359812871207329938838163743316392191110746040840341857567585131411709158538431905791021752061871516634563413568127664731819963645662197115652967449042244394295199757720128914743716273450503315136680458483246766376358082036545524045347393887251674406319442224326215929991971361984471639593230211316134335623917123861345782394762050242675493356420895217112689367861161765711206469409230370277473219474697965121880815178290981324432365958186256340749978315432940845675310030674461723578115689542095223852061948986222052178495239322691128021904962842784531559876631708980688719157419608188520265554316494280334197248022661942182281034428096109492482810357529402521782642956112231750939292272228891285737879041945905564062911967546447052564301073177788508953114846507481682059880589860176303129096187899414301841060519291879048437329006858403462531936564989285193784317998560559765643273741992939314967965633842229609215965528261044163558447751173939133691544328287586389758746400638357099124461700443207777234307595559301375391030393633971443955020935620340327102494864066269652158361240479274027485970841547738828477083104948549697090404769536961547117236502483017958114292034347304308604700740495641439396984289662981100480319928435696890112623826449354589509154696149147870291524538072050812770671811850326444166068254003260378187341813541508224416135193236651078053553192576949418246372431351203317703351727019758986431682957191209869068920839665799618326926037476752977801365982171141533944794748814407111737684530379280366806416136361742067994641695558594052281428795221168574857163572237686369560332704619367953105213710940486325252583124327888181352223906393851997631068727726705046078061641539332767674180420474830165220833649277185572756546216306517877774260364422683935286180412638212265251406615113189173805654899325775963939512782674083415188381208270531979270713767710831380369740109383333777983425277403274433618116698771715396177755600629726672328703163416008682884392529657956027491602789999359574865772683223090836221074336719025491972547681330394063825128797646194265783682315102707111383262915106226353339687421149731664586603937504755230021859094389081776629718887533192546178070164509317774200344477438875782154815698595348714110549643820224712154030757468534138980859059902995726285730705348070340281489666441509656531190323180147021538100897928162664022374843809383260340718321250613880572160219129828508705876555990920372445036314607163012876297904307686466922927994311833222774001476509298051543177751668276274242782282764258793571753367111763751949784077713456889350929928558943028569353473669502646004317507511936525110298101535264734280244688373777305609166839855059270859460481941019355901777975701749027061605583265368397907460631994654734929909043971466406964951759278583766993134294630997500276891696634151591024325218139632334183281726207605143656863422226012484229607088411199310734887418923413858140268798166899536990272755244745070465212010727442685845917072258181697404798840181797373260746315383817749782095330980270442416358371608531437586456725679303988349346829912935763887852703713472024708349886301894822477659036259447251026967501253305951467862781947820561814889327398675894168035029542468952052071910073080576933371449220190000190963280598152316407988241855747407681192503953554870017716549225764635474834139017415888234533675584314677240541636521609708229279208250636735362597692311868969441200931520186176059310373633282474213282713123309076938526673111679857183191823069451534642547061717821884714219990781742342350522962242117447752214030248216891930386074445454598619314402870290388849094142364687490399257428194173676361388950083603620478622519759042999448827854691706837870689325985538256465035652445165801340415109118840139713326399610131758950920135456279253229159225338828633391862511809106326712346956596836604773967420728694979593419306652479019884619883356247177082192402025189701512861807832684797083125687096798481162969069426852671149342661194988665996004296295750320526432809517274521964389856645174676281987049522836958550407567778004019125407727575993407002415990961893691274986843714166539358505841809552876767060833783746257081006752472694529128174037914632816023014913394774528505226964852587154443286509864338424566707493647847514298434845307436565137451241373106948816767542183368865283928303097111226291560187436097508714100720347000825945876026900434975501508906736640050933012570683887654377313121171066685922917660721260223443020317969037237617884678253201809825642984722627767381510798059769145796651410800642677667867741801829616289756019346825138126730449349301006505429751316398801179867208536340058465139188028907040314898594317387073533425996275296748992630953488211606904689770212780981486951721297054772565775499418073715259832181640027974750405778611750868172482604756770812294223631609667216955136528591612104682111736236237572121717734814749903438834112056007871242117779330791672781316075477175620562400171860128696023878869945827103109671913094760738888793038337879319730229673365440246819363198957940355394623236735778922661020275992635318376471768461007126932831701393859586063448468541438787625280990134981042951066909716445092263537531730845514442005421514517054858150509853440074693940070484451295457012475273012648342457005778827411272050790764224186865324323520491675713279670493101573683354155528397463661233205650826831109243903317628590674236397479849336482054077569683827201601987839077139529325187645643264324852381387496665217944514998124691227445236666259500306948270434745905475267756317392858617830942283947742429932333243687543720332971973866049098589573974070067177671985555016271916159046694014904623278270591623567166462341166920680462863216339579612894791207880084891388018757455622297698873600555677383559174406229897656692537907598863386822588815875970047643314987518797429449678158810718781057172718846568992028677988489020597733822958266701005482407796479480677415631701180289705069043579066232330126869644607138191184867487201372573611864031269464090095536589940790302873706399917493519224638928345981683700110863498994800318793711155380097881129928557110237087323894315910808890989473360658795510361111969960966323534240608696998674149019013182237385652570965942534809441257069425265288369633314333182369077610165152968773519830288237494546824828433180466806218429778140845072015781336300414688664593026931235984343938715872462527772413900240230652520342934344138777707460280684777495701372758145315977405365314913300638905883134681868650492043016522788637891524420243099811711304666038335154763595031168846808421232144015922710599344757121082763884813578749742845648198635758217564766313441445412770671118479152251481056869136273563912583753161983314935811743539211715343968217477253889524176865737216858903024714223908263093149939274690845683677642808440969358102586551897280260134788353103208532297652735176404978727430166907203225497889807700608356438776321797852412873936650694920016287566263932265547049559696287861640147166188008774600621298091369995792569285792139966620158659846710432959021899983550368503395549407251009461403387888416917873025852925006467626602984007017182552952904787233562600542332060913231002548687989352013454149114092875342279263920884055037859561727598551919952776915605188774718774773888637519008933277416394635369905614149776131595903321317194559830080586303282780381957312923573355251963421297224253897342502543673278575746144909710272011166116721616360162194211031917170747276898164132678300303029766062969381389041046725351780790410115704153163132783508929202654430371996670130474994548361222846110857665527794753859792671884920503427568165266654584441839287118743301308213449820598113341823155319023662480530113019427896034985112319519179691651943906506170661729813650583654629268600223858300412878434979003798178916358450037203070853001372322966744809496818708773046014554679980521827545953979292580612200775759727746263252839930545892085861869981863133727508433731462232977634143956598454455126980491610673679325530388466447658865481598365222152036908351264933217397224240313263429111973355197707987005328914015623271162689143982983075895065025511863364559977138591431663416692341809469847384869743792422262314088961615265553256213022193191917937469538064534304340427308114562456001605013251924317634262528083168079274297602155390675133525542774476441432547512271042909869065027589193470813799661565944378347355018948679753060055242895888735324770239845314168452907808032082387047381261136952217600149713181460138267667506412655305922105203106415183050707697097213708297338357364113466306094703865712154507862793707625501762711926937954055928365324616539990702982989785809034737663335591178686909074267797199258465306658184065996782637120677267615175186533117109361616991312765169935011463085633250880253406848218142797179818117733450555547771813132923031079171511001704936581700377621760462506918073330832300824252703171691743790569539845576685009145452376154315479065737184814063567787466396075287908899304305571118780668106454768086334434679544964862867568633756331987914318188853762255336173126795339082215440872871631287788629046851130582640085970867439466906066812775127286477867663386414520736083906114677872922278965505814899607927031902310307536136388198401302107652974679593132981521816295895229325886915993170924114729186653553464888016864201905365789181009259409753873081358042006826891458479997966773670089460961921978252790096367071095650200341922606068143181882565577269946441696559740164752053888034170110985646091395098282614263480340965502074398215123710625817245171599702884323396631253654802346738055548770472495785905829244353753706127660489242313898030884661436983201978833032484389961003231114248117542502071090974972538391716607112798701950752158621406588751959273587143846218360905791916090572432234132712114133437300056139405114714453409085166688155490864169365796310918220540867404375222354516601405401278491642301292562600312673476695138270487672676482888459168149412075072604645442574309087614011142586363052944580964572064596127214436957931012724824679970786613090796876293921523162716052775922236454166172667374504728629147777389122045097362506939375150283617460262751010915591596733106950706946928264868702131800595597808804875553392393581052022309791605506905936745223539738289272292659898598740575129547241565387938457918854064617215162394758660958048588928689114932474987683609691575915780550830900568675134063187805657328660689950895978495214340151338400032276482288582664494270433815439646044668048684169879863984456804461167649631614608809777263720094251479201604714669075292729325582508870458374784339518777797573715856682953908495179391491084247644665319575575732437905334604231223659222566514036259519664971267562985089256005271107569801829197024925263067524414717189531984994552505352214248945210335029589675589982855708192543488547182974629310043707667090541403044040021079672211159856581400885499068407786629514332459597997664370016773420384120053164555119057889240039793928981605870269192933834322210791474728077122878272299599281142020834626589174939546223208605491512305798909715095193594782950623019071126161765802876243370642859223252586823372615883417909497252275758380760093612212551262476221203222602098344023716614667103213737848538782360116622201174006516895353202356660150381215064297606476128899012809068013820026907085886954595475818518692270982443796477944722419031716427052966296180244209913638914671681741227564293493152724327680038070048887589777701169485747132991182514218484190153545546318077038026007351337809635683971426481573209071595720236475708273963589207376886757248746594795090278657820501930715634229961590074530793200752624374481344834999695809779248343430535683286133045043552569702099672007713453404043380872836082255374019959435650886426131851831535497433626338536652812008537013365014977552312067731638720786150195551974110088825983656050553501143433403488636067335369741989514020886839584809971593230305007557504349909230309481213868552185713506249415178320779770967334050249500980386058588450304675106089081669042400802573587995469655198132798948986323342634480143502009278807162292011911804877401568369847864861978505514427263518808020105671765496587624463946230935278713122361439546676947241332488110340263583349567430501857905118853986283799278364904880908619709698285751027684121730496274313926184042619257808683127393706658062754487625320035882266243135255816329310735119129943292982693982673075647909764212422428399365982232634347321081918701344043726201868737628989275654948934023529937701567629155619791248617440256651834674185738667226656531120027937493704486816379966475515302509185964316132696294289344552680046725587376946296829383902626248208682163103908138812619016282199397509002439273032779863335622342352723876100377060774443358374879395421778588921934334128768133955214847971421775712883001792498228054690462669111380467611867770775783022116294603498737005978847214048975055599435971931109073366174940527309627606432189721787220164311111700843198858544817454105075188025383561607868597256781872140374426636297531058080093478455525365616262943896859650247687324149743270314385734952155008329983983416238221598870343975591941742937296497367662459509574597829838583552538282377845652365354820217626133098348702480623091122554513582021259117232209238242429507753395949726615479617851311522768549242562970000657039344044371488958042141670477555687331626273687811650893875177760050626629849726207234290625337638624949883450279500435507043991682535672952267146678713338944454164759327259808913263476580857566332678711330218847844276057277339833343655874545537014561888766764266256802914322276521895687091711638362135180140255721411631328878999971898282486294740438631635388935350167686071906144510158272204175633890836285582674740165798267393839806142765831974182671537367823001226129946517846643993882151621374531611082845389932555072146452499468065238501167658182798568106541984224746167964391944789669253559730431902022804800438757158910526393673360649104769639514808993054392965604969914713573904254100957865739364588514461629843253462383431124627863840720406344276370780988296879934455201929907248957558291819677521990879293410102275080325337502067802664669828006227709447276200363447224999466124785911982956273217084252337562375802740484865339678346876844982899967871456055995493084749566733801192970881298325771545703352551387346546677831623451724101936565509199585958407054664193915268187820027732634080175134089054558167749660309205401047669034558329017582743286776896129844567713887999756455077102570332469631285185082018721989576946726492842262059129542864189427282994028090199905960342084348944939279870688857788927439167099419731388573077544244057041823489859949462717623555311161618655289613628933664876311890284782982607519975623123591508390753566585572609009555027023497244508909232387928559604604085850281493745562991218363099139344284877958224224798887972971203738219730730619963928826474573596105567594717379705888836153182608606568862685326239523946302317382826489986611940478606640623861672980091058066730019231346890982805344367199929472768858986666397852226366438298312993640495471660431837595278260148812093616919379754649777246943912334682282129559146943207941954663375908427572055018344887382398843264136885601260265412027781222372493356454650798652464727082601195589543314577556588416321220768475202007438422050683497739060755200302964058823938898568263417691699769087762213761738929029386367868427038400115274533784771681801370989747489460887597734149406077356269844424417223899655081166135364440811682399162668418944754117112538302160770085002058261352381271723515522961205310790817468313777090364214110911570590948115185186266673751183209164400268056904017002277241616881070127880396382717633023513853773890502419698533500054502542742008284194605229314156652579972475295055819786034746824150420527944655707168626555533720556929951807893014768355445667434794249674320537798529872363269638436691194138543723975451349679730115829218451222281689866504799932185371749428849903765457913601127529860548604485073004569644856752005536458231510235413926017782921094840282239838392549965446858278358960976798540815530334647134716311544302572808819916775808288380566858017460262006116273428739016220660309753039732352295827648177841705235768298732550597637020154557204347519487961371322988243561879048672010467224009275410439715437683455677710810505556027940290273454718237772851822804663146276556157944803280797158628516491713328742362831820966099949035420618351701435322280056277947746287889286671147659508033528554727823072712734757360809766955859186587442769456024398836513333794225888698323967838865608944056324211709601824141889727952736210049614825851717097673503807421858918835239743149424157727888265514197794242194461221229666888201399608647937855372742981931361718184618587852087740612729572968407932392798849664685608256942177604336596787299362280755284266641743615111865545334935979794666528618134684285359060680570844227245628970086143002083119801007446198596441949769694582674591673105027744046416984660798223823411036658035052511205606104808301305874921006238772478411398403094471835061096300193514747982395279994072054816833439577639655490842085512153462318248767712721789094948719639684445798105674502494004310663395361108426952307454494300184755420752651249789925384803026231906567326193267515894581642146271405189076912678405042909304111695462043255168602058484092917034555345588680558629650147047113424702010633039770251924146840195060366732266720610473029110688092692435329692266977325094429964165727436381543200125430537941331673504222348396857917166573591068940662976224647563629075292721655969580011643726264724442653218150906276240798580975906324665185341621381961179799652843643804516599530023755025933113017680420006677989527923944270333612460375313443216656678677618738542947317992088905063637055544921881042007346340790650942362893325297504704277973509496431235064701125137529808732159516102627873135439853168309231408572053443234474955397465984139031018198942534104512233284903143150146156500319660961881328280177305546411314700295916567438461633590353104676841314127661592526813536235795895732297887565074646162310839652244573856391773649933797201838079745871445630685009866722574152366167242657021573978854104229433565920161736532639125421499053964048452134322800307591431832879804309429490231413640654591849643732783134437183722402269631654439686316845967424376710244892067095715851039619609605782524931784957229973232298466095848897862748645658240709115340634031108489379793214789389242288227321024959818665668774482236754218666683622318757631996012672903664125420769316151674973338394657728698454130352578829667380965417596438595072693573626879688271166028150542134682186369273048737113366814766798816971383629208366573283996011037829959104479505363881295380303125427157235669608415018760498802660630036178300090153826453097654417331515296834390639325885920246233626310006314684971790808973187112928873911555002055172411471970877425895518360010418057775783419378116260432141107322321233235178833993701031182457920211417609007596354373079885867868671857162614566408887722390313035623575362775376270657440540034492452281025070933403194134444780077632334625663767276235045487094714837904961973942468031333360849958342838512500191849650684402871216008377468000196571211358888382370481762652088973461339457404650479731618013724205415304028513954757476474487623093530736797559736942243962489107961264716796430144673349973813858684035212399183812158379366381483957900624416224451297365232062661932193217827882427781458061988333814249841684988413416813203216417636541499693231322423889380377817798029779172343510981401724658431158169256961042831884118668275263218083897728435412911570069371106323891635116044603691988067770788946037022643576609087037029604344606094948005430043760592072849313177621193893321455619567820603306961042014379289725205218857812223876016494633162218624244455118033594536082169788811499403044871395644235507837327389043026907171014992837036425655804929326476882544202932723585969159130641514445212065424431061487326126733143604057995246470474993946384383671340072517422292109412990102394163209701028901667180316813588839611414082372618355983669524106425030056086585024788927375915090843706640941919855665532398273724979965940076876190309700850536450301190436977778464828478707611650327821931418367556544230098850581328849547054667369883895046616193601836106375614520505478370227277939253600848265873197334624965705662826126936755551298740653322318328982669390068691916622861480121290137550862400148976832716379088351211883358244508858896062885757354303818535681689663937308231545114685928206160104581155966604442765443009904220622484764148511125792741265248962251397733060140016146498991125561810128972472305392975103719042466781845302843923171267610767784421672663750749122028937802120138378300643095211667896588355626617112069653375292092976749724154829098059954764807309043042026391390255512884672628819991782819058471095713117445734166373527715847846500943332012495237455404350933293159893903959957163068484075016576059602755866218321681502961587409416087756016584677691486734119924968265578330799447108868765009753081584185913650773637991503431866278045908320096758682755817785775824589097660737250273104365265169930144355623725053106100662110563876507363855023984107696312562812369106414626442548764456684694898902900945399944078881049745047967386864603562626004978105987561652361686358611354158912766202582910064341554041937799764064816385749233350516141795804935685764296771153255921943263348565948297572731755168636132151214020516224127110860914711561650416052277791810394400985968579852792840532888973797252897683435893766414814673119353823348375461116701531644310059151564563430591520907017101730076896062079870828704564274440693630543208387005964894030127284875357445146749767601700253440504340368200074870543507916607810505820167186347111132253162773610412599583384305774664431736657481539057835688728537132121220410207245092576199334574857308750695064569906327190108559889897649890797094626029074923207253304087900425147138276636633390113742481411834953352937136091090376589027557193007010374890062852412544496396818414266929283779004995940311812725091543459512255298613698415371654129102927763499206951480348645752808606449547307635993129691343122532305794540435504731054641954000861019883757024500215978974069681147328686142338096184262411237377813302703025505458719011415628251225795885057377665528918356775235378281083817461963772653045909060659721645889498452570674609688775621102355427980802064926537463914714647836933175428796956802300677438791580382627653966912188721544712734510848551266785477867271048634205136762853897517954475539471913342523687060546997862984402405332990757641795383990678610983279358798776731183053772898404222002605678437286525603155839546156850002836880736642972318219883517411742853551219595283634174744112164238640972405686287977267601122740113673443207536554821137982974570872611991363248958829968358972988328884221816305732173474732352511376738095836243525430044797750260719273181028654201171420499945347550627891775915674793760994662607515372341906330156782445161972301853875510338585158391973395412724046338283708737968176122510552490533733649385420771466341895203441525011294302527280287025957656526203348693885779857878324544512182935759277594334644548026214538737913466868572002925740774147310125841514407467852781078391931736931801772050364626949543157849105219343655839289300843079514969775915808306352580091570378551946991344520844492495345787612971982939780189756060777765204274094068425271999030110825355346014835553577147289929922870344299144759288412774645072399536460721412891324545093289602675097874479137558199067017590294267957115658013707490393486090545140079154338514801811453502259652760825218495522653044634797849862597476744101565930387547584766597731380816064164557590450619460383507963508248153823558563045592718685559556313191142189703709748907049312235811545585514872264743099662399677714507675099462261504148027572477958661564852208168698977523247665421537838597042144119613526429626834975348502535961399000544631667654804738348363377525019149211696599727049942816976191343547140322329259575186151357991012230401941522663788659956801417172313614808421141833905728201779950884640082202866249824355100852733317934881575799660983547670626003435098452813472217012960000386358497694974001335880176766730290298494106249607567631844798326513858323694957510006338940093597822238117656023406811641095523156618178063757650672003385858926295423947767593006991167089461064312155171707865657361755598927595915658939892018883583583969772316713851778584305647188764924839239769413478223910751503216883242375158429401184446870231317513691791979625499456336392170863931995136522394593293520581060014927394424104268101297084080294108769924374746164689085793567692575585154062544654365779488741864464826847547190833223195995321113372650842625259936806586700871526416354112073648881558203448418183222037817049640657215748131428536471446098601510690690119217117888083950903822786290758330522502534604894693645744632213654523272817188906566070776688573163244443699401331166256431365761408170992933631545026760488717720511539614709128949628767219418507216191070572201720253375441284084495890260522652332724384202193968186601359710180258083228373859463581156413701602676681003136959358121484531186495279051634552629695483417551629688089708502024199200899243036824472872048414317209803614348940836213062767030933027741422331665731618774535878462008418037124441568309673710843459389890800757934351523009942666748339117793441336036011790273249248458114745167274956836601270937211911922047007501630221075171771814602913957073937009147034145721354981373520474846869182423860507590859941026581968951136386253742427518000618356833095414168587974673242954173722241636161092829550834660504190625163454341197381297814944818012537188115416250997253422965771886675058821977457755788878266065306581586377055296479521189604784401927269865448303210646037743378203194885499694683937007700331249407233237170343766485440772276902013173418240775629490989603732663447198745335654393143257781621183509204537707569926525521077868611407007343003665268689040815361586739314726746331777445225323826639469635826860748503438427598026954188093705656333292855032806368429595391408535126567244069696672258457505429246093877750442823242935339788559074870812289894110458337613667203500086412551009689255596179295310774016662871574301321330361628650829920985791141135616070677729781651908861860057025499306390513036203689330775090900491677065177541798486544485880210460902139054793853737186055729259301362467555582711648176344987714071051975405520013237128691875670613323564235857067499679964870029033275370093345763675203704362077111201120980297747737312437485168158061284459895561914099367106611289560408562106143522294674255183892908714501502349488575461366130258756960235956570272643593288671645973548240368918857016067285567370324421195178527927949876381932258799637850597745447880192989275255482184698605139704336633345067002042061887411687327116175129286572918049482006002129178535594994253343410644246868298015216826261535304324325715229020557620158823532912741431069997214307516130603587260635950470684772820490820688333963039205761996217800153142632421565659871527999094418639228045045163990439907997089373619778940580316457562386433504579579464530894188472654490136543456706349362558956595137259994608928935805087457692883160063390099233831186220311384376715251428968319130451552509511270753655101476759863768718430797435422893977404324515683764105541931614797617019243673163186137353140324881590244232133463964552896003904491325540078436981159710275139313602606451970918517408686570713258445082186945378760782043143387003473036145355675321384921656390358862451982575107529279742797079471897847337063839955604913451710852951980406222568064787740221451313783209312163538690882893588462583343804445042929192194827799387543769770932409873706742038205196883396841879119046827330805643443707676720302253652083365567149444577926433463890229207436651933804966989104924293401764023902865802624841136575889391625824542150276238519214060402507205272505705821968786985554889165397387638135672223086298088259727645713567006787762753333779061504378073552508306518808370266795998987043498201655358943812668145841447881906656688054715260081182927764275966366422965518912854404612541242779162104943027768046354870856683194984202161812749375777436359890205833701435424281176971354926732332182591721513728644445772877129943850773214249107302585443102847720891696970802724763638704610746008729795503341576573603916833311248275937622687992600613073899709276466313964920044142880254774171134239925484739430480132504065342516046893334048017149652158153626765781405768691902420986228344445895754364004019271960794132552158985224035724031384547696371556391995753149760570514525725908169135214990763030161480487648192550563123485519255333617774973771924018920822971825496033074375336089552298505401788848329985374262178894224081821922280026074998137633119678480076637974870575347369702838963706588120261428860940719875786047997065894205958884219506400737930734042508876370826642478958456461687170962204202356855523732500379329149676920792709031559096479429557380615819938644220539098649031152051098615906970029005249785904610138160449899138877704431861172552123429142619835514488419617498793245746260056431745375303761163717095475253764501351244051541344692293474833852913556894737099563922202554398788460065276276660266511971298265009348280816926098005913143644373272331140893817406520221234025634147973287734819933595505792329143716928387150010750683296264928604834721485954038692963070141991938612124885401998239809361235080801789520076768314627529024503596454089459349152221659648097986493322442875490630777610364839189494773507762460719563979449906974203729493623760351790560145827784528623217476552685848194589052890073418051470039996377610106237705615968844441754222395366079463119075067973087259206177019305179600422059122337290075552553192998663152299043113333140223879204006757846935487583016761943593470737571683716545930202500106783634989101325763389309013176329580790774957464834403436977580041295450702185784227312553311687494256909037626958753561492743873537386456734750946590075002114589872501938492957916338027544892604931709946927815013829372471289594358761575504521116978992871355502830375991410473341383857684549434375542900856453229240060820745732429708716635728506847194352836060141224267892230642214583313961177321103042016916870447665348275848654158962887954799039087369622959891806721235079043004665934874810921245474371893711435128096569746864799332237415728334009537132854595336486303789090800192807161682140730186009725520175592257790035641720285813733868227641604233292080669489937272103745294341877864882798453929333018935424329788741043247486852772553738377223385652288913050923474014788846230204216510477637935937452082025159727672428079815916824575531321194779154299879504004217904343778015953290980444476722937020183986923923319690711852415571441740349769189918614382847508413996543682832257572811454861713633432300941501072089080606213959228015671294365487490532221360658045827209261092256799977625599275936062974660527367653343005413917823528876807036225150446115330527445499307770284070451917269930067952735743904466316303540622752597606428572771853800039920783615182537768098289495615643519414164152632858692458913010250112807925739518466440409139119359183274880116789968690577212290698909627385460380472209728557952320092085755553268966848701861971512686550420025971729898459531406993754119440597181958894745540454711506350098738319658545043777926208455552913173777408129346395668542270757354069509337176023192646553687017815315924329261025116030098786441100353363644456428549046795619999301672937523780791992530288786796142648711690831593805582079057841061875112842596723628834986758479094294510361010076779473159306271462691534369338426424119716798923989355504578756154394801162251777624854119194357532057483984497578257481253107684888803443183979203271629909799873654526308315466998328973204699539677949769275083794318852541637091980330257499940198799891252197198823717825434218635740371699929114525222535506603704020616217819582509525862077323635080619994007114482896336103934869642130602902017415007759491352590185011250734847977863992638117932581721709133830591812948738776248690327710728856937867174404277944228534126046533908568256493421120742686487097637629591117934090013817809767223558982468975090352519539996081416078878705042124798677821302039619374736420025946980397825762854170132507034345844975546230857974022103316480926529703217219218159805135881041600409969329051065686994243425949917335461382906722427400183170213976820834187803501874871311420004766432854668057927798223891246769479226884414212329866482568652358704646977521936529087113897729777057009437790451366908749077832244288864885931387278660404924366963938972100500058490138200642223293195071670015166706656733023991313995057642721086186464062743854781415873515828849570021277959330569027434963724951425677129781526801531577494153310446451689087267169207176545389046836811228050294352931979571618908667098714047927648832534780106431111054291347949245012795685403882415571759577649000731476936199275219597251835215226774803774789934569734638263063948389089203293189009440600978687647656887079053424807107082712100225860464345220291362816152614173264164574353831822854528998152629795604970393737826078818976447925702338402747400582249449403534241601774995748623372592754163760175379058978578186995547728158854466781254563691900351055621133606065387789748130769316215265815135636247195319061952644378468632378515300163010396755573063329824102870500871868806512621020872886456764589853669565304845131766159966628085697916424323058921917214969440061386977365175266963297546312716325035431916306745037343683406712727881405631993687416757073095932331416477958549762256540648375350338502072912444521606297765261684208967201134179626956855229207504125466263604745842257212656951353724327576698564368978750164029327809366895474100695461500950086023682431029470705545771555139696677425458285375894750989967731626837365645089418360311304052966218163963660347259522953829162956427835925898974047657306823272015248301371061132207564397020834034017218888884743492233985494335197871718314550776537448200854029898927542491696151858535500746678038895402369772124692168418295247934097282514201912914006423642364465193870762087964409278605106356756430087371326276271786262119177904478883563911027252667280731634333720191981968043972614665444665791077087715227716249248062125118835499868636976577670536894487010492111680541440407032968151962097012708953070014636880220677599608297190118562656316182848768318159216711482962957949561712484324843886179335435810285637062093608629878342755217830560987128663601637295183569530688749341282273335996711410066496021422129048378493061965395875865117157212411610133267549869028844771532774112765405638638613477483184289073651615533217549978586862681545418803405510536819005360800587701388415243132943265384181803056040418070958816795064402162318262325137189399378753916046072342472702589060697950878146687013058728371268233224057835727136494912908556416771961158880604073678874327275970763603153422674250417863245034823765927703177268314903718392685841723652629102308325298081948585894267388450519800801833243139964814638933804756254828092261852206890303604939305578197681550265250903161383213936603351031552777343625527335096455494300041523303991348030228806781111953272645671631222757720760741431089435535406171185117244154248421967373702593232727751781957950059767056499607075656804650688353307804723448134186907876339331726782655905358953154188393760356505774860402730061662480255525778407056791793542799626797567156402235079359257530341892558870451450737699616456369162180960403068771409962962324325547793598629603837361406925943925647753952858078376342627793913266118806927127725344323449611655360484331368793570615417421539609653809090531617238015334978530847840591907885731593851851015051744348709140186539013963253514267055645086620498659800091444755340777278217723154916035533301063742626455159482149662096310508416221746561762153139772933523972263334886768271830584027154656838999529695238456214468234693334642562912774384709983765075626361054053645678853527248983657847826450483608532561851549736996070709052642247942540749192961598704253825039669718958058999057445358115418886847201445764912732169548569573329483022157603624884260140854164691015902526781970832755851582774416478527964323134988409397920774343172776448617359490772085957369030460028956720679949048664762123390887955620825431917347895305079718053984056659020850376117838378082207006514799224689892458029872136939429816212202141551856554990768223229963733217141456654946139411919787639436827930862760465534187778999599580600809746707360356259645600387851075134537686379885428180492961171790947885891781170131074755961204521611940962458108533099154823911571619073972099283530421466142095259448208612549005819169115867772300490495011983737456855446805143819752204118515462559881844399757644449130188550623446454461291484146721165210859040897803497237650962719494306463389495571371777012508848206238497985042965760895401140351073480173509291093988214053582526795546397160265215823347355790460330586038931011672483547184681922513309678429706908268180991555927027696681104474519883063684376904249744900578711574785910315276983388593797324868349695529551214445243742167923272774396166109395884627055860912394263998564943821838372097156941296884265947465365821357003298055245449118060837593322935769197898216813970248423297187980585586533759050529073673796321199981862133016625973988961339563295885404089860206845194268835918928660156233257296538270289271056227303824057422289066443256650893152266769910092042137520063763484888010934824820085216350794723297588837003863546685786369892783389845259351441694932227885858389154611313458105000515644042720709520987771211446317963046135739766744581923735784995104037232229300558559586189210475870020066080756431622371431687735866051835787667656067218160674676992701115389507945701620550303995188308343474339160547793209921724388062466112762512329665913408465916439398488107729347126991333084475823286622096165130295146320969259726209653445171410535519494998678379400759988651457863721527798564453463405488232979766190052325294305510337471914235630228448737348337561560868105277307078589822286594180692917920286181495763875942195646787990713794823329849390496131738219784590490907784596667514169888687712764375949422821545911514080896831997432262706823343950846323431308452085216016039354314667553009114961246482178070051327655814322764446937033564423157088414295138838001654993961862530360448606208178457272435567235015035202413941376970001612608450222967639406584313187874189708148280636385621752536291357321724263019865066259973075852207927428934192204115088453129896663360236894833979982763214269805100606873072190305737875559859078734677806896686210101497655292049286176770865643015338148284044271571135377832754686016214722697277988354594029382103460030443565027368393351865198542850194593843235608264252044345333108802248375013174032149325487008814770704689641838719810112331272612283864789521126918447027946104937526152207513480349635530805639781548105459594175590450730976592816020709605783227831156684589105513532597328501977960207059787617837728039417143703521557478533656586558516516311215694894042701208125112984706154739963964452059914827633493869101967872964712874636535164637727980103053888398276278998745527467154711944605352705471747644901501819688337759739121071949690798511630803440937137914873989815111003040929632076146961227858378955717744183110899143066985569508806160500394036457431785551652313329996808786807228307874640529602465937358852936736897247026431434988466900517707362323929252362732832974976623728050478226112738512964937105962066339125065870044215627503779628323110874386786113195426365128263856229473238100207359938777754604426721581122795501597837294230726692138046776696467349176187098872101028890742025907979487146475366685206882388407748201019848029573651999258892076492820914449938322194898833651396835633054280432536883550479330942667265472222519344224015545073715190417474725711834755984535845921026517398891483164325466414572187407560475812609491796886717129354709643218591595383244399368382173170261140454929034594355748452490362212003282992809842909437144880128038442336568030133225604235147679138756827919872939762859575337028167508409227954550243779193715951255930926884419114618893542678666383442982708104039265565462140152056374818013064110635982899719454560601324586682487771547953074200852154370719575865931839974286950838575022534914539306532408704283592794014877577342707990324286153154681263808386874440422681165691614342691282731544962471789704591902838057118585241297304267007326513460148863604305942570908676558907548582356678151330148190359351387842022332882087224706995788867979458031126141075574648118787374808489994852263767991120225460406733629715957764806960638452279444488769466292345668891160750359533683245766727356795225921863079305243427410731921286166270006968341752350940212810694627583694853261437790874666111475079483970948166318510397494282651495815945768485980677535140569825556016529138255161887388003040125539275802933922998700465564832839631610218539267673734246708495038178406058895825565647168915686909032494578159179272612567720939349343147001012979737247004834544026179225539562838656432791605774727779856756461295195855745860234761978129212556608121052250740580098960042156832325413032535096927594828173173349822172400073606718905053041574821344843224718655804556974324481341403359014485903335467288659394314708339963206492029352113778407419091673652302756825549136794694823373582435659018308050165364849554073787809997171232994970077327452255104520343604150128449502314575849607732613787479725708654899216604038028936184446044164672823208351931313188185420376362164972457243765337382676460961726001878984288031139390093331945697644331264074178435220664198948665777651849482609382142668100859567620130901072328312857844687753161080387444800863583553769414955975694284252549034138980107536552178785350205733789333724026323543462115304627156834471658726492240823642004849271368767925435450373692636135540554572015277565522089824802592428504246122434479289635162204529949941469492778631059073744062685486036230482668290024957868451947634316642203402962628420245505662950893052043721545940771916401554310985711728341139466692008616409009289260236024106764238985087292963112214257192424913586632861038374315843282393883433488456046820460968725979384998391739229266503822632256919589701544519603217318064188661858046792676829984555776478440410518179759405298831053134516984465028978090440724433715104170273391469335009345720661336454435444584823220385523503916200635302200108066182420666529082233964462969587554805363826860579114686076120098899495983476869244709941546796894351907938516627101093570843488609125671393261399946015140981327326272014542262598340425469769381327808883731243431078414676474684803205376837604866273391511839704025467291268919188826613346985415764854984560177735459081143894319603256265663379684369924419144901416734946080616297212420726894127930330708966578657401803516143031765747427113685206605772800753743940810040834626346944697741369463145279844968281126319338252912301696386415237605455580886179449507272987243719455051021880379291457976711632229269550831194151651126870340856880827657456862242191866143760241132285530701146338530586133307815706719523976678199998237149604711594761441846406275547562049674959488049216485926830966382606661359379855764130229425764564065662307562436304861921482902876101298618962521002551650495383998827820463242682270515189700957370949569040814557002943248606824296378118170632481952756003746256078684316767285444203702265205901890326065084177033300841863477474319290748787144918503590491788921698765130982005741081291131685027613101750237285809304894727836303003751648044457013398212566250251982128537292454415988604757342121315711268522008353067610527625159496239124241960602118797896270124090817990579401770038910356231009355110635157309196074170178626474875562377911244724850857638254516410086360409215493643212951205951515882116819305364027772639228839701423686649469662624747715215522293880823543460132895709689986559262847998784013781722015710607042289553403180207709968052368692791625282386739644395164693325842231718162120735150447102073799910064898051028998346247537602027767722410955025044636794348680180151036304034280875608865820479349551331764235668459201052971607659579317996998052785305749042168815378824469944545438748824436595361484469506649493124087218647048295427527483852902917058751857000438320865810841904714949041652698832359005202480758185554103265314314120992686368545810331341492802931226664152606904098203786364283378806771110759645010438984497342913482489345524549703766106892489660364679167837106658339430020047046356562462843604663557689641415624173975120309806703904707299292700945560215470858702750626429958671246375075799507897014318113878112097692356820083162394301895534270592649444239707189069531443280767129942438925977692959637295636382950987759523830405227195718606565493855980520933158086508081919061104647094000651279788113619153286813572256020018685025568848363383683098300432477976381821872046686239561164770623622401552205511119734856062863857239130324453392801708175088376152639512034844370789719362153026381495545606291297056609468610211211560278513368378408126476270875589509153966896159201705538720831419373631291880516286556979603227836272394964203058152292224223717418477053676549432409386337983557466567833553297761855463375218835966094577893267916126818777372588247172848467265489663290462924650078475016377516755455723478026379917315213329831232016350755457694618356785561298049880173537013305002595511383835777834088916607210820943347968359652447269345329090847056589209364656922475231595037429725044489005711060523121044366819673190671672900745094634670206748560990372187872282223243848228059579519720180650891004596099307793126632196570498883044634275062069936326041142005508025972951707751834455100692218946152597894223500296929036282149509935248731102968747290332137401953562187799428935634145444027199550724534294971051700501272494165369923502000909158992599250135040523443517459458741156661417784481932166794910603476999234825048154778224947792541416268765593651951488380536272946598253488014125544665703884333891704574954055127152237530938924243968691339444953416410411951133538829017463556318168760430107348780407820408647485198258647340149616415645831535094741146895264986333298144739734625044260636272184317568883214943278434393685608449785551883310525719576427579266124847676327607725511066337392605652407508721822631130317294933663921380487495017720715819974677038822985400182625219169034328371810267266032325193344360611422806699818264307572904415617276361584683280783439013320918559174726734547142858535517579023630579467116142213145434505786829711586090069985885122869596554473047885862332120890289442967563670177297156414479676579808781699347431327004031576460497383146687635130604110393554393586702097739228790088273753450527826751083965997472598438176396349251724589082988728447395116785331746610347854892215458300960100209444169972314648455112521665033739430037058462962304625101352836272451984529352963945989890904960188597654021515687773300030825703025297794946875214859332955864694362957700499321666330290220410640940478082418297407688990271117444137750623614000736825731907670863643173057893317566832335994860846229321185338185669604138130250016883925183504540840832773845522167494158497585600764039988681437086822357390677361500929737046329224641886391417012490301669041288143446491206655040943937750804259939156152806727727552108093227065057976591530533812484791343364831907850422831360612810767665064980760883907651680022616953226057227196427558515184605433371237247759255222345008230687013111005731358600204481466475775917564173957524784678400706683110257051222390939950794638217048506268521317837409628739432877525529644578291369012387355256748272711265386350220378817084388168061476200621659755278570228226151911882071607537230992970363742252697034550678162993238680642987494109948287066775867304965278184043627729639344831099245512009862709131884463083530184296989764368764964891029699676676372983107763206301810522506197235179069389910485756000004456536596731742540713808259669603278991507673759893471558207615403767203159362235708616140718288988728815852365676668145312024195091542405162425060217471004327309820330600981705835911789516559037210748042762101668201598651741742629070385006888925251942032938729526241902515883455088067024206723137069054258398604200850037979060459740855229984894267277179959639946336717190575290519802547432252854930893431428201429704894089928461984593472044946861072064386779115658415822720841916022861268352760639218530601304036966624211458910855282511246997631134099069409838023617382207641245065812571914397045393562972783080839905320667250669686597133576354244777198144038001715366655256409894960739378273895119916709055169585962694778178352305622960842837040658378947223257541300238555303726007859505172465758921225394486965707708850886666193655248151089832075394906966921480329125793832808489460715716026216966739787124207401697946880762508958541269290213862666352662698231230011008066516321168270199530701931325764555053644656587450974948782308935868850249825586060526748042319975101699318884931611645204156913993703234234348335347319968141656015643643020166724251120214277914483648537822925381297682829289067199069345444424806231565754385085553324792594034145304293793371939615108150708154332974857305357097984631372962344236097164240774182563412330065138117366068399322951868539633977695005411109881126103873275482340554231418201439261856842418861778350620333939689538963880177172794247749175582190079635192749574077184680478811424771030592666019648921343329116540467059877043299769776840479510373665685488743173746175353799803539395500672780130191038426909706273849140752260950810132120891003904378565662217300697784216968243112597694113427199043220965659708477346831438456970813089807213243173926896122920922521108171263018496929193863839834747470439867621409070412985711244052462371660656804698451057440424024614404906871243212284819090756098909325431661478938823704644341053684107056115193515734869714213638910836599710134066754775363941918954685537885441340786607639843245486483002216029671914891032790873220235256849904582631099666253396020108942328917126838975137419975670078111026006795912416800677449651344287216451196515944396131862592059735734562290569769928009448173114697733565011414577246025164578181899016893429125390810600582878043812101301118459053216486280830590915992801962092860090150029242918516901446474510206651820335030654304300703417184009304742510681420376475994695621231896859678401332649384101695458757069009060224881176179416945154814386706174958339895632433499013549718508535611965843132875598253524683748827084292388059559759214285981805897818974449673532666467052941909802195332630585858121871757107510089594272994362734479886012787054753670901573287643132362229728921183050500357979951366403982812539163324468601159795985937501300351773275338470587674909635936469442434546997194039240204916392380070910818120743110317441384059152964136077319554171400415045598371533520526399588375161749073021628567367205470754830485639537427618386089579179533512595476773052541735745861151751659373173989165832972608093439551357582368937558768882785090125085215535045735016309459642430827329988414052188176012573671662381096747525298429544069753096408690166793349434774299546700648329445734482271551999019942869229142996829113101788234367240736641870334402984143249986490978845068371335632019535945986917203280971896124407597452848056109232219109597846054757244979221518289841194396110508176223467370414626150143829479211676108083781064043840483308739118410674450169030096728084517757439917872118504387120816440108627774619236314789483581830083596356951123001017227800962155850711137510787397719825089312082865995530767468834811534086167812905346893359232222623176019993109141071763320448844986868413648841726949069245405452573014703533049722556321120939014888727552325965936007940613165222873759832858323738652878016283877368287079821617766254919368065621616413079862650834099358259835542811092107455334538566193063492716240868006744459003697952020724885290442823915650966600660337958918080612254024907995332630314515020051655956209190609999256824319493830517395529108121542469654192041696815938319364322865491219179780175255523319327468522276963179650954572727922890676857033258392117909767588809417397884472732867700952628989968789190989248378207485105870131442938963170475171229262271372958079536192645483295060150972242625029482630784607540722413353900774366575678356740352275958234642428209115647042343578124908049417507266470839392091429552459260447588418381596653596481215796482367356641347191182383164483216138445143518608755772292567407332663649694978623740144848125619676585779169287401016222460320688305423731116060543384499661211364868650872272951058973766211551058887684239939886741171414545917846021320273259658434274866364619570939014953933683156747091140917367022795857011434219797351453648472312797119714153193806663350754855238748965977665236028998354212764915990505628555230628010142580168098423885968596491880508263798927946941167697249372385385776060129594848987029653619191858951632956756082004387899567604407396636647738895256178172270492267528949420290236929488730899237898001781040066085585687789342521741732838943099227211423121421335175962408036033075307772323273151234622392723503927511527338451477303283235152258339842246487843283620984776980596143219965588012850345892191944631021355562748275482352020706762555011427961172599784869423182654270826529301909581123618234952582671138182786477582535573204649384141305130263297339261607994566098072708470452036711961669494876629835713608078757044041084788429537672107327676756258396916520926124645685751063891096248015500850773021262820749621212865564599348777252239049052841776134973672173169462516370180623814349719816576633155031299880922017332295819337298206473841145707175942871298021420870677906544550504662803867415874282478333479242170597686193059274074525220329120821367182598685460065341769896231616554121758508879614335549074166982508303695750478762649407529788470641036541968232333485890808747832464130993940616073932456015595583105828354725881668520523480932835608630439205286645881595497787828318603140076113167909226829595149341964392435302097111441399550550695501164088520815982714859509088656900702873392472546835731541794612729392426290024137244692570087613701972114176818922051273070864420981209597106145015913912737205617247107258170675322374770163527429577840413301903181474095735108374712421529392433512974121899654166699452090006722502412340846238565135838752726609221190706130796041846840759772175843943545484974383717576703038768186747437783995658858955973717673037234615728289190719984672330209295595040149515061971569611731345140092131777144130731280062329522129242876303628282912118789478338555435416710241482253744223874618729153307356501749531453189928835414433656789131313916382337215150251674635406195604878294652215380231017951814473552861583267508931282882555088125905166269770045504527537517605251337839172087664471705065736867541217389085490364847252870833216343257005747383751453244165566725617097053532589689207068602609230825419872299104135062443453815157209214170662962836117225748620989761073488951538494830067388227194624967168257452784098437601594169791131144338969299858853713116621502072085109563946637653803424669031248483110634792691389466675526827786656885818603835303287033738370947609638252166246203420653193639617459686589514003936974705881191059481133704692094152546291677409096805600042242373596987815062164218835219795853103064674190350924690804959557635074939874077264779932334494086958250509608036582221150845326268051162938763418465991708615127136800974238936402586191636228810981334000861956540607448667295358629682635098133631153911860215833185817697249980733750381628243869424409363976563530030499760268148517466576879777430759458548300153134214377858055449795453978045295658616879333158219131260438431141923112509875931641874265114520106396157124966205458404265841068185777449598444932574254844912983220770001144894265584275878174286058593120782618871848235321815254748232378095823285296883586263489259796173813227489706558946187728193349914610524379140011395130341437301467941760344316496685350663408046536348756804829988040150459728369526667176406137793877138169937747248421571012993181812054190069526418441584616606177778603372780496094561805671831357902719307845859945997444291932190748740224283983622511067036323415091365165784414423666506178218026517911895388004511063880992853751554548519033299249025896340670039370396391988359275150441339291347496499843213500393779560525217624164137138279360741456204574996178133740276304555827018545065180798749833853573835586249342504560326375470002918104437181465497597889012149387212141320097201955989495212932910680049397545128367355653316276309482447791621935246058023998370520106926495694734394999140704436221309000320597197356622229484981606457825608528916990283140803337156118422504664012133829007518867803801938710574388990981396112536511786295312657994614995579682123871764908176788152282269574387481828951839427408932944794451009875137047519522508368683822356838773450191627219925356952688663883910124459818804750315308882707144169266876904769273821615337678112363014343850811714821728170934510877190261852037617817090738318772915004438831080320810642905692245913608259510820293146932781433924952607268245143179820743450031541178733299080105389395683523988024942955086170272087337073396572589431923235347234868342745005522518488288044157497777748937213189421790216742994471968246805540785324529990166047060967133861116957243959997932539431398388356785673746942285519513336662768117540906373712756755775329667632754728720165934472753717835675114901143001789143909958316015543863035574327050176719004924353029359382204495066549780362126400176239937548400363370722642546127759155754670464573457443011696679971302690865845762281262600270514944861240828452811784618127516895842473658018000457118598631480888445088035055083994259283067264855580837974462393592730342521638916515669377160420229243199194934574570038559694425459637305125757572808328655048017064859708063407461098541661906617015313248204602772609338161691996723305062642377802359563992006625985777423217674718483195597784299911875030585375349654781375797386482615874963398730271257497077994795007988909411205296601719805880632563337850968019468320642867580658236798318600145722338629181042861230659196288894948034673700934844273973733144960313742191551157401924297087019981380354681540037430857449519337912531218316192815642025498089540819693230748708015164351081312078272844523553757176731634137994389520135530904423801958107644467703742914081242527173308573348453373725987817917822214908246241943791011616377179048265582058623609952613954549912631246828179418182304904651376381766291888611037963635611935539519714171718046298417721526981253770497518360366478909338903819262703152600924187219017395589511733884394455314667848519603237247496056116056601534140622692903919416089998296945789648820486253581126161941020641009762720186222069732406072347110733179762357824676737701822670361948930761829802692197159374001616483013993392820157363169089249960372751487383261461257747515955964751306432749678563049024845536442600999532039989574537177537382929474402064157192206062641836370986672234555605568283068947686497118407147298415943680653962119939605864160225721724013490542070206192905024334757922523221837986645862731426113092694173707187533152407207052136078168493822950876264151155781389895484099100033036453508254534410006282127439741631940593949889791176816657506094026009406060378044457782762693172073523637600160551268330291196154509649146975136571972498794755903444652039164751129361047511389599516810175234465020241465017132066814828188504052828547785447903062973557114718524065995617014674981259409917833479408256797917773486863081682921678128409013958673736014635230500742064156611039691182044543050639543656424381313301638349755813370175940623857984067430634526898484350731083564835175301052043020776710343342798591930591392751393056367621160372836384812437456423767808855668272290248262519312901697251890818025593219356412136448838858396825035761931731833517737883890896952525147253730307368952828317033353389294940412562335021578112593195809438121366943351878394872531193026345995190314640375669517903095303907144879702793139488914164299410614781114011952931090211364688331186056304430955250443521996656841288442409396711605528673751664811717404940361244890258034034589400221012162209587574815289764161761963662660328827379705506858824806454657033009736579549292754688069425987439593492869032233084170702300113140629108571680916073138872960710176941895682123966897653591772737310929077932309411885768462373011745247226542644558951575545780998071769339857229409742397604455965505996593080091894229543754933210102287210159619221775764100309175344430082244704189901210514465528799176019098977924394231357064148345535674317938527924553116354003887371339999142570324697172051360393164641007719533444543351660569495348880793688318943940145904352424921990773988163768673782687390227670426110514129927365276949986171276430800488463788744690426694525080750044265426292159800031997541642730699464062147603927453860072311507204036420075880777270784609663413381401797795260072642994758631009157581169859556435216433422205325878119336882372242214448490498208872176996423227948024770930351185023761253666375880372636949787635845963115421904815094834826406291834662570354585552462709365101150867717571453477594835637272333665464278442746837077112854120859019525716677405657897825744589372526282761919193292100007679626558768808086163281964610437141134130509799638564755014679064670115501010831462952120109220238735149518227358102474315728270112876606863544193435824411194748032097624820873126302418875070289251679882978026437058515337491528123205179248166106352682800029600959365003999595551999265080273808632016032220560955999883103775512808970553068278525370077916453281212773662921100656529070027665611170095846481205710063744990421784649884783713325314656512991156053841617899712111650211925221790486886654667888475978756342973188976535260584666425000963128160004362974387430608580595118961931400472674217356695127550079791402710753640671633450689839027970543247525603185264758468629279311149434931505040719148313952534411201381045435259592106484911796300182468919645167384541322639926656797705143300684735682961384815126127995334788851337868146516585851342237081644043742893919248011312180536499936249148692841122888242262863951558740384435497241321230335855878938216266942015297951735709460892681812009255393417442774207481309596713159420785793397544310264974639069795631162059400964326609109026736681770923439333141266923022808076307536486494901896579868510558705937592225656023321457983199948867688019822299413491415416893206361627729083220316784891664914504273233225792210970590197923369257101027253145247273694811178768358339309617389127959944233923874904880201559108339626185036435187582269620948326306119212018806128750803672684532165303026300554233017159388050351826203415927275217326263673117685012730448567750294140697860751134892483723692509818149804255558700769043998072571305787890317251983417664750831044538453255213543555847993555542648688213419252870740013957744794411412381286325414086100058962441463075423505582934776142311852878576348438740948085135411133783510466007323808670123187477631712823869504301578200871640807453292683039581496596866710037345041706085416990656173616936019450310957381348251166916297051726365012777945979198211980016023679453014018701149114373586662112488789499645325063072923641117960531171264651761161643170062713022208726141191985633443467921263336354862433838380237933949669500486782147920026166308239423414675181228307414467564490870688729690485999764542268334546687077850724136611032278968728424781931250045802207234395620884272904148772290073451993237512758368847128785176470628249407940933046237211813462239459988558119526626166462378738369271473770360399278518700767604548573961623302195750965202048495254200735231452292954500603819590841787371648294839358435024264309328573368690863685173984157876925383861867794346463255138679336352555573032141756485807393703985148378791434062963785963359667661575858957187430930063410115683023340569803419971408159881644257232157556581766598038743293501660220978895468285508036567801858235485284123823026916603954420605558179681590569712292080913342345560172795476142733563180302647546931598423151293459253303287952402666424970558857147870642106398753806422789234545914799007465365009694021035409841787939310451267505757933280233925939947940486416550723344031573099271010223285482412373066618781240608697409002981908155155219943954703065546432367446440854226286216477930963007373592668227165605394604285179458798093120334547721082931914483542602062616639306960309633330313881006743945854873250153057261224687887253289366009202350313863005436545533968405267261415634135988100610723531342825805988869796164239779946160993037522808489835602143021791975546135958048960944081857132211769005079075862382599119696134404742495412030476149471426289734283714785961324418630581407673579240908182167902542446364622837806091484678288129476312134764013420308608388455584929915164034389669959915340559103138459441017842861003225402672208719149010423646073891869986702731489222630236427928421081779812691907527523007893549181031961390607537214673403273679740857070469139074272550192908116239259181184915306194953337673626306687992647736534519253299609260893534355972993257894986907995294303214786396826797204099637528849632203792792402725013074417953156648539066946892785856863441329227708286561905778003168812113609568279508982943761830131082260945584609604438038240707280019283642629113278461962898907445503088656733665890065112980377127627438209779980231060724964779759404918796480425244375155946679726132246871030487187792040246361240925439120213956283300013621359561044672324080333653031319032079095907514785878669033340885956647602095482069387884420368363317960413133776524493134820125020911810255234230348628788108951025487692023282921845668938215778169742494727484233116602684292039312845497724232329089476155665347057509540724973576478556841850604723575251159338970430749476802807500775104227873282109834429307124917314587008400218119620993361895088632227171593034125344553645058926798658505073373595746807772547240612343887496941106276404693453174972548643298190329722342066893922730903432753245878375723233000430827321709894489254351702505334459356431299284036582691277876649273845146686800159152810227670525468051531944288660680145814641946849324817639958758940269093110932189907629707995736279331159409671859904695323896554406205343016425569001864471909554316320986415012869489376185665904561743440646131924140224680268737656557559474502732145916754945295409567123890692047279232946917251962600554558178696739586964490919799289029042381058393162019815273575750945748678575891917266993124750799060753953772293034738298732042956909337542080235375605443682791170848648329859230321951593856459117650910591072834263423736515821550508872444797372116573738121948167107463795424666749313974592176398488304178617738758168473024875418666991371362505481263782803319480528036945082517629818613973336801601997309443856100417983749207577282061962086515476363361657581594032692244291800269453383200647469976393770000156883582288724278932052049331155889267376497324858807396044635892472722715209947513145284242846967185494590333287422568355024140614415448812088880580436302819004618772746304939848546301589676021764179663722654691144109052410054076894648676341956163429701029724305901960997254852671666879517066376627100679944625936427156115065924823063827833820183588510956200094175420893318421387137393884430466752592764248670562962052493299515869113137361547719123373098829350030604656429967679392852445434332756854402227507303974048842848855763878275760825133490112765105712571481797764244705709448067810812429030012941350950846832796406498767441427251337691245353644387239999833124589246474221130026909038532018610747537302733116369681380586912535358162731575727163951160548598981202928928015438037943426263018768502092152909187074000779101157422406694912989835299124874111749925502016690269218377660840215708927599702207969837881907990655827213911960031742294879896911530054302954215531133689992665023648444443747304200312510381141308824261654600629952159212160160100544991843918820660123817178551951481621981896140854158281588962184970333598605637584748032876867280097489149088356979059874742869584105200934378833109381451012543058994547241561718853268527192805768629255158619925573666244341323320130018686882423591627801902814469852787401390566763128827124720418453622077382340933187654649936488747165259059183152835545726455929339996287392690202540337010576118747793998557584577983194946780522379051118668431359895566450130435870809670136485373220304921929774166163058563302324197490659509519957078365945880680166230828898673370026094409378889146648874511538771966647366895307195218190555386894749890689206579737503528840708929803693964985965580745608867824299556040954413064541572320939557377323181124387166951916328047292221676366362478099815954796641815541597270763185578994887541815221659024684094022880394773063269204584689729731446720718748949003498506466935880617970527800080465584637382773507981275524539510322791610149888124388086080097041400029711263555936144110117373085425602923515161517543122783808240129519889677372032002618745317804657879397928262910686160742739925039313626035267863679177319266998962214286116050870428061686373168566326334984114029004680215852866073704036006611964956375615179549031872770193945745443109219510595884566129565065677644266787421677657361796057349134057937190791818074104391742160401909786562205124877755470083992755068332955733453985697238594175568557075396955509293624314136328229556178325331601463409989885182787304203379816193871761108097940998615142847255112508684660169448833452628350418116164930748671203481345209105131406858724037618011220133813481588034292676881169556540397287158906264088004659993007052804480671604173479145347477406436880052225561197133711238407536228713566072834250707311039044608494368814728785862546582440443505961417469977679043545955408731248281304772183607725730713800042843819136218938204229592280114356744348757560837655878942913886693039463938085414312166457261671099543611668169711865558678192418777482708244405314617584862211007606438047914738889799898697079837760348350922616989004717233414028932366971017525437387321740109063546203184002024422561596245855139709241450696465419218700369203924373617543810421723033369878547847981328536027128782839076007401892083044879907165421072290053337121231210667224968934964683578002245949350252719238749788167603442371929401114967207742615737975518109249091015487986524301872807099349767886327795298865508125657503244442068796467863281885887923976263422259172371400582534370731179695288556870827830034733547188686819379868544197457426519024376805709730831663809512747594060943273822593766562696602279063666167709374304265540319192730025425162714742634619645365959646923259625612944502414916196012035601890036785318587370981497836673642060974216541249886567872652844904903975918632163137499693865650296069671165675983171124991655512386633861810017472757486342898278835973310344860229832151191599264240670621915557923502143194711193044179761350671173674247917177728131632225127614140283498565878635783664144970322786934487088233481075674460560454544754103583790405942547186861423236222796425991477206902302165698727069615940503589584300707822720861014994787910371272253752912867899105937547941531570500654297395019871023086553159990949623754345498256577724705707638106313863181758304328153052353628507421343542982812583068283865096251532142631450419520374324358154044166052357045580871555681449488082741084545292464988495942142683767383611245279141487823097911757815038515051717163780916537581786812438048034338407418847700333581479420586761412581501640484773727534983677309508129468319747004051112027997487517505953994783075712517219669612397809277455241367170595214892443402384543734989159919318796573549591490598770508478383420993242589509060290523992322586908721322232066689717468108027179376704627709080124551272857353725684400968989921325614737105025027580278722469248617266340952474494576933640546042255099159744509999720374196339331282263223281086298526027926554741884193517334510168462922058735911102478332839545640461114371928846440321736813339245573823486129813670759497483969308279446750216458002963244125256238233682758708272170991848367414924792039641236524389520257667435235181920078451017779185854561667420879086933992558299905934608484215755046619217489950168743973155378821705282240395697482139859397174866787345614608381553603252370181920672925990200655256221134138954383272838722958246688795476649916115005563307901267962850692314744056266493911619350555226633422657021623785675360460222631776112025046778761638805680676820797450405533852749010452045852959657402324528665306877240531469580053794398505449919746118147370494637039320481290320340259159761243805922099119737582967061843114843996396029132219485298920849800365738852381219197260568950030868108656455384939948942803909258209500877964639307546776383779556183648864064097979961217748936146585019306958614253560172361373852747791089799936942360980057103774663585309192551650113389808958747412555185522617156433438753705883553767879178590336874531252648388780395942291179569447980367980628083834250378596228969355263189480715144350964202036632428924997397964860277581344784593099596941101812314996501929526468398577438241407529878285377288026139779659847566153532712649231404136339740229963937901135291398817313508483444674220284480196685484633597775790042889384329079482862146009219895445241239984563468787187864064574534676430023585429575355944624357024564146162478965392928255662611817245057274486952599628584330659862244257916963778986048577965195884385036267969750646264313497411942918381439221073799870006442849354854648742765203211882934239844296135359390389019623919901869855746833564322116475303973225578037869476532563532863232856361212178630961600012957228946592494354212828056476614546287544155069746065955235750652999499875007455785584479627762874215179751030587418796708736878907194351794916643925397097324594606806433133367526284177878091951216657643158314500007329389612196175867870313901785054229095784413375359314649893837451907576564839709966156758097707033314910806949331672530759971599844997505020842880518934830727330606377938438577212956583504403776608298347824961625027469904213385414205441352417837053781080178777148405622915297958457250059236120802700141290702858446282189860525770153468479586067394583287332041743361379083593141005210665822271748235045210597212502651454226925811266596623304643504267575283838508287210162476465443120578151042909170496780014890882811730394461838736743151089271481509962672379185401661413379811907949975281062711890034932673259496976791794944987052381787642290832778050056127578234683767891273646895874530085194669939335375846025234916590450050078544881437261283706689510061338800998766521269624373243570294381145319379365524271979650173050485097260950257556057847053988600092907927444180127358406602365055891236840274017399656237385905659833096622940332583452214199314027371207076748924130492201484184128891964484381942144423289387129196666738059642959959907881249307158407617610132129751104893865278793213420292288689456107404522044809033777578053322902104740326642770101025387960077342659548444776596772790347586810883824921677038807430092132036534670120310581295824641319246497249002067651413873414963560079191730066095474687667037247473427663650898155586132238953197903506628095402940479993662005192040917456841031818113120718304583841536072755866321479408671887314779543213146118379590340739086792150851386528744819817204748665246448998959582311535843030389182474938707501916064442746579572967743077401787832486885556998635520490106853018896403352187725134884799338128956821249484881481733917868134172884143102478711481205881169917386404723995728706379167145200171403537691353446792174495177042782525651431231873586393953753258673286224727080987375783574949430921246287637786023503303299097914744236614040208652967527600464393189341222815814953077313093794159713561290051236269162698487319790417846770427261194112572341828755862850387482477661765761726069266387756811637182280154773964922544052508008483886946066724541535799351405374586254037982257208721708002896455877587770103394407614329621341220946487386856544289283804348202553962907606392969477258136018424437791035498950436812711872035825042978752270094712260432680216164756770011518711756360373056319039365357048996060094607295731246758792360597711932643767322715054390357404171254917216508892276722016786752381078806335226712294195167227601375873435486042151711805427568357921054387852538379087269730709727719135041475440884595023739703290497175662235633966104078151261258885649278253612571367323803726407707071987879503173843627930643060384552473861281464039698526600240796408655252601504649052506474547622495280478343357245592146360199979734806056456743845974297207021628248754514828247400164581948954590062460088499619686247740451767524244083325196184070253476784276218234286687584967752801454424984582384547509136000068859840229255741406360320343779364823814415282500319744279526769614264484120175558205011376341518035336032258819076660706948733483642287590675975571956510652979290993650496055539733293299546965178212193742035550069871567514365264238172347660733104511681966759171366380937344181019216683342039245332086323212251734903150486200412990484424415668900453294229564753650301107344614589410085068353186626640724854494541306714453907270204967731100484916435011032846184745064548557671887139718051570698324433106864687988218831111396128960046547644965138718551647505260283110001272420513483408493042255518420953849361064937242668978207191719353332315760519385292775363290075544171691174576596682709672891058256320089977105474514069030959747389232622476191141323033608712746290611393142908266281731774724561475456774728536275577247549851468567313097742590249786182247388375263719945620399146102545025075729158283244131323051885693733666501746384148458156604610704352257183872006741154629646186853058608662689115064266255902480196811049230044317383042257417744224208158192939671344388852643549195821558401763823632857500116134625707727183116017973440364533257281061714869232806295235699170529370780661945238216299581087807220846986600991735815973008101268421028925290847001026457883990660524080475947485337220733515302832469456368835972813706879297092900410414179777382733302961002995749815753193391968431566334163992437236397525336981963060411204747592314619474761492832933260643542944928404460422229243897401053733842468934006196551000539117892413113521994748701928137057918951991926628597715721962020557130554096751022517237505899049218477508012098191298931752040503164851450069057187489980285469051477442731239216129866801349457163557073783293699487084524094380680393700659285086672483293569425819776749972493646806230420759213795499650494252835712158007259805689167368755091437753378201067100968851951347587497094503708024725823917522455251359991560426645127241697671957980247261158797271499464224150634815638552848862940808544536039439953502746527375922551958294741426136993957062846763497243494070624725545196533494100776130955233127989295649087792566912206515753249085720236262955835536412787087283319910366103566380077346551381139327344609361486372157671957636867460594520812313761778194752910530730708447089964863996554668601793465382952835359468068044386848765111583925911118990566677600449483837808568830108995111010614295108575703029096179690060779313243027317745573040069245488851773076114464955672022402589933725378630775546757730617230437782159994960199474886909186593342828348304537149920932122547525298984601322946969332897727751464335820283652820594298921552304888293464989369101908500242167638918462591327605397343966623504708118972454549571083196200879896846165679934703829429230530799270415092740863586426027530478217577641952929332410360184750370783278825108325576427843769772892131033816451373247511692820740984983212304131307927948388865437515060869482203104354565633238120473288880744774953727548539399334271829610282929353968024074484260226868713801375168613067629374426745782308081771189785027781691363934429838558437578380641883905407878525054820769385710390823037105875107132874778388293991116411490574858383496320413601278914580934972960170239338709765191003123961245242929824312560322705946186573865768757844761817005009908916265302066979079352885936801516686423689180274424033971650981116978965060844977624120127150187424289343936541653589003314369470028287810621050160417655232231072251417053813059261654321681407257222988843436572509102184713220685645729914437058293942226147311334378802690833562781456756774512433266234316062258219334084608856406295519432616613818397574419933181609267454512957116780949011638307323975635148347593844259203909784835342487240843215941081188749183846351360814421193429240113279649226424278486665073966697597465942404498615160286722645893914418424252839646984968098159483592147466704426351806244140946666541755990327468086580109430720649485113321239333469834699400077179748107904904836475113271429066713121651787765349581715896179444856586198156196841195453756939320058465525633645451058075572570055125488046323334323608812778459400273079308948569976130422553837207112780179908805457760541983249904454896428292024478654967995075227668850782811456714158118858243876286132388617272673350047957429890056740351528703781178551337314076620695356624575997705281862251234836263154529350213624094616261183129762275055757581031930555632125462834122222582464930255047999032128433127599757697344663649184501476234571770843886957120614314172287206412705844636027006434372917135795872631086465078074595713610663285380292245099444873009532419848389741284295874529456771299059480211104571385540228775432904981336399934099588659867987190927593855674997931864666758859063779432024448533627308592659386198644918106765328155257168253385345085008244256469648858373540765677021130623094246611102210137357483779548415055304770659082218834039461487262888682814640131479593195955931386260315351839249965407576723382674848100516011089717776546828126942074854545554399607424171539995517219307415112210165493484214329041104902088984223606509430796367916010279986978137374573494261535997217863184136376570570311501305358928167098579467442963442137686544846300203498154242584757942007526604053522435410692977154443834446776217382266566608854313132936305119660978798174223303660241638386671408334188355190755623808467171728300415375464779644140102753096680401495193532483151193555747172548411939118216896242515701556178522662882909322756506271426706575437834547884534661742169400434162402131695466178693362660002931168423104067234554328649881903248920939745302932264475501428270575979481951956731730968273197042963016042017269588913594703386534049589963213715327526189797442804624263215485937655212910315235571375325023409460072591821272040810332188775333423307161113720376565927335615501848118010064786391096712202681563917771859729684761642754860405223426175145887743610642062706878361892413706281711481476984322510444278942835886309307712572872482817499384366497945904228344376122720564720335187338709814656625092115803208803881601819965421636433013224040145318333654988456455822500382660216352440223365236466445627447716752065798498442928928307821931717239131321398694032088718586532086079567737320863650657164717918497643011408001532636207879628285447477217601016236905716500240582729825256858120565632957248762748498981639741178427617746020095125262160323113107392243945009647694890999575563931252364757772671728213796667601796238086613073884820440155609010365830770686977029261602085778733192091296466991735301495595161750939230822456049134905077757441822675637089177656299109189582387208524345485254999064229477435552280723590235034794765433851819178417789379777255202387054041912550484937516516808309324547962423405274566437255097235258792952853042518510377307079924378245594549569147761324593697147053143571889885218984539529354844270781358637150334936941733859371283275774517393051843741673496378213701177326592287253177620028242165466935342051053883777852369966869142287563421329502484431216767054057652204474118200351237724489572681292000102279346329046717840768935639746932140057453654493714205875585550104658475621978729299967163654125759124904911063931602171529448315770959993797414377150362588551296964760294702825176531929490612944334749991167645508623184798856102707003985820749972187071906721229489435564104106494295710845145837919040027036115874589661752429356325219334706144108049683146397816597954657996650011919422724567361766738007080931789489033319293899300071937442065246759939031235887704698403281911561775371218426247213229196433614178934836881314695336014034927236313586736452893408615003182220720341984657526348977609182552726060111915884606165681526948453008500309401234696971924430725809091822952258042581100670810144872552519751641286659670086226636976266161400573937657613565878285501057338123780977123260885857956847867277337149175155791537025268780678063673611001501993432896824247602864332429778484835243116853275133695914061675181433824286857555416255386516322618505940997308294141538259732190796192423796126807243040810531814128013928354627271717887776170142886166913278118014825174158380982358884017619396353990761159296155262172970425277014170277395755466438316738971835779641298606712622047928187499590686038776058872791002773466936159250723853184627548110207916066206073629919645065339139635045441526504568536728516620940060389581068848184150630078450201593370754530233778204914246607142140944420181684508576912667325773519213408800854078885678042169172493775554742559413981536335876759290632938594473210755224676681204670376521764150993619895654380913598073459231899946772784025818316157501550160259147097943091368819721540321389308619198422078671720595227143047714402111294040857017816314586478461164723719632959557275449736494419874968285142397976311201240865142239923705560496696318724741559081110431608494414423361848171843766663358016142063585779557602526464462057287196443639934793182471140690918400034350367686630528649725214261060078607416168300062275131324358404578260346936874458976489952937324324888068170761142072769126046083631133119403022112431155128745870289069420156751243178270550093745142586315937956886760022973441691567349670759265924658365287729708021931842321031917644178073662765947022270987679522994375833913352992565154994229740877598881371841933431268746811647690428653830986659625580704588119099381775270666279904289367496371018099695222892418872546002717886867371689314475575006783325326284203531455732885795226358807597841968675436236281331754919785880959077270086629163712831679463216171082230484697637776037612991836135964600128548601490335001686249952838916318222224393702098936215327806070323799061768982365056177131360372499532103947949406011501867864607806459107328022764564759900535253055733763730428301977340115291448184333726811339412406928392772826154704327822881415872192727894401774481739685466143360427370872577149341244335827777834055100164158594021637490052365723920697094709146714738173872463543920556044589810624993325764299118051950709204460903666621474066744724902581264653949174493907518940323638980607000751444261711961918349360491116698769325521576200051836422366815695881852810435939182664338442307543846958439858060849345361471585732938758534226538129379236146500814054092646130327074779816187592661528492201277238019903941917826407784980687565348708743439090152908623500347433972085972305944905379384888555370939263107174139893384142431449063225735420707734493876204401586037569554021515507017085126530037265512804251125145020992971377179428449355155125211727101492004439920042708087244611341060329265834017547932783113799072264112386059522019706893062192030809089378313822246774013291798754617516889956124225628529192600028053189007119326954037459597717178130238459012122321106385649403678738451593733743987571639376704226642223422825976740907343194657292184903894844714126521929336575399823686807083590392383834252692113878986366716565488418754459011774115861010221529774240195729880477884698916064199622637091404350701942523409483299480842863403765538761895765158117736617062462603779104980679033644643501236956377577226326208661291219495520335245606790047220792169511751438413555746249958687377719500434150796483967169839349986263332538719612434872325544506768526852248451471963769561288586416359354416408652847188056051721721481769872748969834954149756039090985080756714407155567839438738419743848124044314098085522907248003323014347703038422918371153118952969391347681195288553847268426559035167721437867966583654186640110410576385999793151673041698185219301821287957770632745887470473035795891471154775883617599133610946351181192749525408051795510462912015084906838862775257654717475843043722849331834590035103679509573312081490342746700757040908257786446408652263166663938857581207784309555294446623304370346821678510702057985615467000621824964904387064848263772959021990473343405987334569902417198295220429486087838316220050848025457168583001711698434448855546699488929394574634295009634888283420410004620390784858939055733767948169255909714957041886244310813998592219014848608277972537050884120761005311304971360096955495395142435134804292983409710419474750346771671306095025344160471034735460352291411383977574992924575784842114265498152311695574362807776721976291469206999949547383412870231837619503909127731417428823323786787721046370479312704261729087555874181000602547164442541125804679938853424878528237381138866368862602452219280792071465878650755541974978473592332895420990945208693693288624185399588174223695613023187358501421232775723827830863730262824600307799697125316912827235631355325542933615227557860821152808375417727639335948398948097275764455466736721844722046393224276026244918849017200882342637766498861757164646263766577884016268720358351502509323811268041322452777462967011387113061768322443714934611559716391099108362268853888484703799982396604187954247350366358595213045168727098096789486558534092284428632494893600134220795596874096709211071968385655820530816048151902240856062148774123551023529985810792741892147236852036021217139951385141070793749025325435078599728841348391143495221986494832133049007460146435121254311259573947301142531184570914224080726122103063318725671793271681556092499890381373336696025752133484315489536188843620873127488867478118373984739313750077149269011462219615798047067514350509813352836419097590906144647292276621293702464705709087445010802723196986351702494172651803836732762891741863822149208539226376382907305941739639075495888658491681864917437762782872619196605059239247573883658722664935952438329786140437822828828173596312642574370611956801297356036342637793562761380375079094915631082381689226722417532900452534460786411592459780694424551128522554677483619188432270010311761280571701857424286897096241981719525271814876297571216543745198857947349857427454647126001164501275276345211573243641924291879294453154753041095699253112952240438629030342610540838704789599934039018289859593685352880801043152728940074910443977350626351792902757577469063599152850650253377776129972029734290135498493085278503441351959012244439241639897110084645462174502720200990473116955832386879505852321432639913403788381452707779186560286895068862514082911935765285995705165069151805685188919317731180819307359896165553319655820397707232280964679350838733944841701171588216799342941540453919954243462543425029432445952218748743511973841039220021564082949844058660141342361101875253305369203074390865151215177309233117649570753933155458509394237045426227392681703340165835668343481426363275584626032542176068630523625721871156103033825392943896313281833796955774760964032818454850895908458227052681700752814780237676941459139555786393384701613346390766126390496465739308344260217886770975365413285711647115018718312341749931168565649123933522104900285724958306866504997709203610688390325814729192253137346110556814402495625133789590047250106150571007572160962144556014721375616253875660510803174499544477711195811348433839077455100729988827306177139300856365835222902890617783681193751131411168053092824846851142394330911680378641769048990680944728889697104530089838445165785618632934514206692285306524025301361155987958169982788684148186948588366641218333889819724945731241416872822963314808876491179840678093637774635655594727679833078302624113105118657736801804871839478622979676681958670698066022387969415189122623568658872342704652877674515817346904691892398453332993879213632247839069884187286739782931859066268287558638049756134457500006325797120348731177287032642872977875623530175982499703865435942533553296503645539229817501414191593027419166937060634570090898355063197637697830761073831641755507902843141662588130649194259216621971408770786712588066920211450146581166134400582217377771762684762885717238725536148140511769902326468999816082005331459672804332788424002532587300413956873274443219366132895359974927855397167595774989884828714111596589322614198061065587289161346697425752008117626369258260862815447515203058849045306243899751051385253255447936227925309151962433807357961409138818709926120072174678850599008140714008496308428415519346484623065934153198930481281888073674129361024231578805847798282250118411114203001004564560833663066791453279657794002376362228286484513633967550863818242029656624008539627692971273541940894523447893693519180914405513252580615824773366334054931080949981256065459855645593059585238656505942104559546200335189342619983005672191140893005746655216002489044466581574809283632341644190129782129699558338054464773753201372626935212121436946275049838465236553437859705515108080867233349323773275732240960142028216823961499778345302688059166802374905256373353680890225994153377822630051422007067337752790686315468213904423259941370958457753654381618367477262302579164793006237976163737944788668924006434979126354466318204773666222824675888916911159257269676277975601015846775327420252435347077120732027390253905776495720089718491908560551907307091998411902737739627769339247863570364553276144842299365348314397789294540601205683361119030160406924087921409781056715340085511503842272775264414249676851107338105501004207442652068935423441571943565858292579206131550144014518241916335025762302353867131243429480755463572399718747038038099167341321359535750609374040154661801422085685601087836802260627558127076691387844052343972112136071071392232258713922875730068692556651514727710218493647606224551124943458809153562344055245622923357903669127687894118906554377508240842949140613044972293409925972250296242273898883389441810980939589549078339167397181081292428040244537393377401334149989086339897124394922655312802534673233145393508509480083022581889051921123612861466806954321654167122656481343202301991409786022202793686694815796167160873872133794241260857034505563322625996597777585398487269936865647160327150376457099755679128595818134066882484745126871688990345541260378969487416802397487434135119095551413849104301963197919192539529170162762152492271274844015776252367045118786770894915812451209676474870129362528468891220754464576029975102982678321098534372521320629289670401004094087991804822512471329036447453436323702258454327522864866332245750039670773275939005085586913834939734175607511233713342644208213419156834709478906213957964251827479509671155925080196839180683529150728010435887154740221911349569080510168108872989363164063096888679103357315157810108847714239850218938382371629899987209388185784172112520036883582682574467114261682643714323303455249785687855366032132612573606309255392563226501750505299396328961299084087891149618715608821857166622376604505300414542210245166967132649732076922384056908555216323989384995097107154116422724955230161104926407663952728028488431848531051708569253849199582953529893158598380578809951240245021240982141884834586561355095519453382098484229417812520497605838813205886488131549704880761598118259816374534462709531078640085664036986209410428375707749600143510445687815461115643695860063152704426751958044716532116488112810295088661108865898484307881068187815654081504560702611342253016529831570369353312116768428169206030827819625176203789771805783933651148848058367466701036966247363449191055694974416235920484201423271324904740003576171169040442840641972134741908597087679064401569852000926094518200347254686320197349465805773807834515651841001850588826358275484285685781903350256151884782827880052244981974125130490636417977442261469473894674718419878821502420516581639327893271283513401601092865626874705406307220358362781711926150883939746549801216502665811265037310995287425401378599730822726297520438445859226685638641191733143327966595462736423591983956403396408613038444368706894884135048749661207639525925857176635240344087470410521407064521017496512995175106183965959307167062762556756830715617693333143444747143207475463687509461143671605576592187366894159373558394138759130840477740019951164616472978409710600298631126475331052333093168950147637916112882672186561375019330391454444824514581364266605170911175893220914428087860544050706856977796333290180600661026348978698357220600055803802058045368620387718568649049704415615983857973121242704847326202137866077244540807006895065146977213310133401965767629740866742355349318275152525587995679092635477518032203912769239500382622467078598525342125838199266142500729147627548575416094091754183160897636210052095482252864195762294218674956844171508996645376266046306131902180088087193230362931941500203841921480497807840337606409893102598726673601603962220314350082305461931672906603582168047900541436419171004301928108312593333487609399319070468192325123601286541429941856828810795419048942580992486517117362622036808669213983994453212877306626003837776256420731718162398302981512598331762496565342741941723261195331446889711375528104876397965453584540771385691630559764169493119568329130231110831990931174556845016656313191681984458272976829947624519372329444483401736437640663086544636569765772184389155852500203397829761181375027168315712418770261047879851392239948922856174923854757263026444010394829948358134791416552144577107154268185065956870083929316693747935901286985668745898377043538571206187680440134189115367940823595746637674341526515784605367352187466897556953024887774694770506057829433784086704880509657452179807923153270287661657668250912635126434452022571445647707143715186903756669615419242846881728240058656436710195475383851316637691948318651934550633237498418171765091224661540627345333975423066286866549687191776728990726456040223052441042289525974671861699561036529531269067076518334365710012061788189582546903535372232960806616129629521658494494277821395830442363463906963243378812417396188607514766389651761124816174678710123899474725560929419366091188682879926292131474667685915934742010510723263140520819727046440053091656565462143809758296732732262290676460023437819089665330793388093135305264444494359708978247696156286088265908521367023819188099744149161069390774038066340119960828418013706962800714543694097793583134304454686921148498767347596559076751422341419234371247209502980706891460597274423580343469321090347370476955468432346455335331890073728713127076855674345550446688996574467333847626087419469257094180125688925457040747900095403592939575172715199969304738701065110110947817044164090609763647746308045999873854231978196740015866886712833160882251572167595929359590684126224124937862175618454396210731956577318185496099995043629746896390089797124739025913549717966825701047414177222912694435814323408584504327067141511341668427351068545856868457223479996077996901277476988292184267678173220548401836357763622170003979848593489405869428799612410769460036852013592394102470717323541790367907606421507935416671593337810876763664288027774056373545197760586544697570764200718674884181855767028289896960855045580654803340047682507414633935526492691085323071103913655889566345857102436710583170605813845334004627046789267241305130011417128118436245446360518340816829452581358871717880681501200453568643881314045835339153995984823977711799558741706155951759800764197182693677480159769822284043619331728412734347876781518494115473283398813487519607178878308755281189835391249853444255482701802745148804831832720302521309773379818012344213379260463469855950787835184653069917647843657992445862112641655145234287369247873943013007389683519515075586918363078076759913633089923942894678068658003736306853422026666546967634427561238560479334231074440288728903844090657939449830131093444466152854053634588989912775471206331107142518228889568899375243068781686441692702137955053847763911138914942353747485781721565442230877782359071999543164320361301734200709922644980609417455677568814209341299281436404097721196360991574341565995898935332393564887479173497643507781673408840203118009430530701438529320175227247337972721332020325537431993620113729431102556773762858598947610777381570304856649195858283756321309231158483102820265601301549758941342939144010084880832144045850105661943833738177194735315546306342916094582606596654707839641995183362232638566723713492513281824933441562473925630290166641844369918076362329985303996850331767175908076127563090104191252374357022327184270402818997392777836273254320001354932426558063701075352314869793101616932291298600192032180044585512717822759164631497376945155614839699445713719175258564683265281940912918047692062466676620242938779509780245044450212163322088445855652810693410074359230332817674836882425286468393889947106111324210714993849859867678749837768391090245295398900248082170183430473450045544371555938481632991874791653685005686977798759795007738268441567632358134810853086609420489665881947839729868693824025799364954172369984524912737323625331536863667208154084697281571176537361265672950183842728156835224277315957407700046877159132927567718266985774943837630237548351558839794296175793433207495443550527946823465657724889615077668782971574888402975389449055378644040765617663577716917218796047569888622371697120443641904960538800091246201382204494264977906870134144444962417313745344344252062689189311626818558633804772943704573315420618296087137122851277987034296700388293045913118760370510684794252070309892155502436818888043543536167088264616009357950118068574519715642272686899625987968436656450943228223436900883563209276303785891024575693993053537179145746824502737523466920594757660776687100344319218431501728796492718528787732061222862505500010415264960939902088770147121402933730983721264109596951130835236163795792102025321564189509025567619171317226629969704687675071020578339657032543595652256236521134541341852574115522165808094589717175480898373021424676540056542894048421966282442949884593585296629386194954064823806319983749918338365743068801355684378670157516627017532213520122302239620250765645993447977269494679823035293967420376019038697542749043276156965968843023952043693955507834261783175156681837292668517697305828962827639305726902989704502211623790598294254976753062550524454434461202766680846886379617493491774277495381668998422296479328147491372903798527060992556675867458749012108791152143668585613913278251054374372879758489068881236144945443145301572003457444325701601039930395096350076963641991419332638516710775445828732732825073871369664227644069590219781358825100747639892033344898896779294757745339295332239262378379965693502715121545982399675219473695242255516722386115229002873627389692635279268674991326751807451058094539947556969541168254758028349266642115436638659151893449422811278893305264823606478909839916828609330656348620426246148149858229393236857008309385278337912081095807989367661668603672379066808322805269205455398027900912669626208597785664333348158808934934465526976142077420717065898247095913004552844655558386159825209123014537537818507295551702055164352565296255968160065961316416523846999514303968348435710139942714158571221256509157619435244650061786774844610447888806683560037875634779996713307510267906487632699666458385378418946596259506285744422371489175099145466227645119323888728333462788896552872751562674763125248894896999686907378507201937648936883758614652025158309935741479378182481091010522474430867749121975600480165890221757513397776689331557895111457796112265734847511665873792594467513265675683019478032125723016869051493850315457242946444977874626294941690906258951756233514581594494475012551429511498970271348475857166508308996939358999664547693251675049766754543592992596484521356657976186967773570458971192582040680719853241453241417531880859425814563600884364640538377449420256603824993538584929267973469373908473697614882145738649438436021745737878508681164278972089497346977065812319179463303490314420736805085519606772025654246235957225249429598216069946357330572932484680113211108778793444656136476453897936959356950892533708266573840265124213583924326647912443661407226776239430521504915855744144051416873968553749284830463835623432883103007540750243529545613439964564697257866704400173835981477206609261431807542339711950259269699415336956312906607244644722781973542718851406190963236696148544161322659500422009165462080028516221067584609867378390516436173340411066040947981990281603759272956241188842587713515141993048183536567339768763745080384143649825728683021832395693818790145586886098647404759066642319612677244975045845194912441156039800057318410155147864143217970503551501188634856855253807303596666836609861657594154960444746454114813307033593804134555826442514157496483750683520114938041287690647746025953639512887768945951471683021554008261611087404714558171682497506174989976372494146866480582021839429300541408489744028686281891481538310016187525144259442879547886389065482174161082803586878674581528961762170405390821877389810462487742780018359028436260483510059089911707532672478376823584230455221511128317339096501246712854143323289470568411850115970867422359468442968165036812558158636852054319923464319217731020063072908131449776726595159818161500101972193614692222470585391294169551247480815523121790719505712353260072828743704282205957796425631793219421467160295286742123268619501533612978314827856431427469602841375259218642301087635313535228315900373412801801340750591133794412365601510743251607033951780635110289679726975228584119726028472483534797494242137039629848803045010462536630509687104430489203043225238678405690492485973493310734211492183378028764298600474321743408103654473512118309344643683159759397721293130619080746656204424695587592243301631581446596472175262628330477114887398773708726343654523501061689600781063225279416474689567278723358262240679727158679703142322635781842610205385785236788711043521420829954611431474221654072335155212683165916022782128939861313785429189335783667286277580195504449453818972699183562923273556169894053490448945113416955872381238498582660675256296299343493169995586076535478295649369483211103374850833150121076760783326962861078915672227896193773938382001978137595409449498468410883852257470708732490308161709873247670447960861879551122100273055528139819853176610337508071796066897624131964042227417592041559354018578415436424544472969262660790460592758316161322087120819182340662231425055866106784095444600131282704297314470060763989598009792957129970757187485950865962855506780127499806753053533207060786277881461648838494404942019023341425418248683537479476558302340006299087327215693528232161576892494968999093195872821228988378019381476560923244355328241934069241057065706439173765498933730512505232973936844229453040594715887900451682487869898082337692151716521072402278548172444780243550544643574287966241613611957084122634018991165027664167130646524246269624127658669805818898438738626004551248431307644501870150639545544733223257032626223646232780371001309725335184317893080926532567865758383795910756264456797149124845641611488800518819650660161178787717030500973999603055905995679644797043938576051267788563014558529342713635262269815855914466764972126779124277936175934988447217798204303722482682648304822619248139120670722958517408314757535257726660181111683108547238188311842905842926681464911014207128483715097713511270116307880900817180199427358995496495813762745847045795992730730451754516265125840718393915714371553961405475080193961008860153546732578505575889760955717467657989819182121918266222806723091856209876664311684135495523578711183808205521484815440378228606022682008127229169561355942390812258302796779164603574281213289781862332239942643621096357705357253701197047963027287024861325010989827866859321061362999449663990312093447259976216578414117932048603667844467743139589664479923407475529223709111674051850942644415516031526961407599152941700137228482336022469366234127863272476094058177153873934288151754971947802616917911043901758473174934895498745375264953159819871076868396364797006582345096374154059907576452149669141445136154535551687627070824267514275498438622565891776274046686140753261870572608039199117950396240930784356505126479843601859867731484071203311583725846045594023216343068867785508697111035568743439102451960604372855732467483259812290784213506083415502389095174427622572715893758508047410635337579830813486838374296180057093873043811725778219043644931078196812008454054718545698469894647902579098149290815368734231954531631142183348413173862148816241595492969654049555612844847699788704672375978149131941280530193320675449721378222849979504957958825567575470699703204260031905878165829829495127768616390574373163943720333598571259299435649946690630969997173512016444607345160136333786773216636689750500387582398054850907582286554304254735128335004090152002152809466750619030772485319522111518102614383523900387423762629849624784570651297196070294479665191804403984879012731239498230441851277723406075454268536693751139714869905630091869791952747262057905153391676233894867790508622759601752278950906401729128638899119002257467857183751818179532298459016994919821298603799419339071145035196805004357307921484352700322631115431378826971814507891248215917738912155225568514121715393524258115132416406779190933671711820066795443972941173353675307147508720433936465356390416342628524546487277546520702589438343639612952280405373922288547974298050633390022304261920378698863194150170393660429990104551815340312375596440064236995771180974651300317953572106968514449200531415002847075162245585446438019972228087630858878588243854249935954984191056832767123888434942284913676648412714303249963186769160143714814732454127795024141512378749891852588562394695365905724064174045920715526320596589623807542178753671749328427333926201609929153931185619865774990511544596291290588036936194283948234622269125468955151951510200183096582969268831761779459979265982435987741553651828779301205853396595260045121604603433101214584459020854271597833043976836218718801508173367816290238722324136133825520881525235691019147636994655145338348160875412365138964145202240915274245655159921206398954648028840871856928641527462476872162433534581948846827970627937005093634832753686164700817958255041174481440458361372029632660213938757609740387770006205204787408232545564409614820934521301799180851886341836545678802016644951749755600383529736167898721693829509857264957906020798789939674927916369336961311877768002925469908220655366479538930909534137810663114558753652540554501767223578256958086965152851690997622517766041306190644648304783199114145212413105863038625743463608713029845992055858593282851965822359403896018349640442144113547700323304908994849655310904366821004136968927578154554775886875851541399934554024027596855308855135130271696617522519750382103169565257956214255056384766241780977411868342183177999974626133605466266624873560084115436529924561850254540930549929276471267950937931927891075162842443306202504657820060604548924895482627976496619669053217127107620266965157608904414976817274447111127537245311546319278500739546649909706257415992598474244765998096917877467147106248145609878747409828472631145257324694942697472328425011502525378706306779768308536041434610140554158565143407977028639764596022755579623963861314702890902024022057627867256027784571067559704429021668041751200839824424260551879813829252187833785059935899881535046828629910018633150821744439629402431608278424715384281200262440819161677103681936503926841470881549627013512982497744253520844018315701211745530389649969690517380732096402231481653462616991918517027462876417774370909413724851388450658798690832308288078049278154237744067537772442375742464623994077284170571175555401872179679499921017884471802141168025121542636926640363139815677075196744313069001101288100500397169407397393039673051800465376042698727730115085048811147964038640799128219948243881001336851316699055298949981431078116621373723221232373349954340351968359134587366188257297944982538363215553736006100541064951444175353818955272510673167755610617892943623962357113316797973869094756218385009218171563000168647119796954422123016007232442091407945965828831018565511190146088039901481884287320623002633021859873010841109163302023097813633731654070259068167726121022020201693433999206600131719385138424848188621372207967376451945419888890051064718846198466290282011414048870785389452536188664271039768340338187579178170769341683582095819714962052977513208311117840937635123740081333150155623779543691876205502552200452334944781986338066823255234833382478396141019661280638677013730537129715684465155900356798086962973849839190781797067235804020472355569961020675993868658576164181519728853294026887070732763187303236958756820347666092586068899124663683919637453119418957679732395142429359912829783907263995904269282013878208237031401235105734153542388898099051483882369858051118758599662849149765009586591207549573660399765834987596539992041179620287002265561152444917897214098822356219473386891615883726832471806644619571472626915291028081688806498344263755492955899739517501558517390949721196223205462525030847968039076306846418365892386494497757208457879136482131747305557385827556498570863682486636468001245755153370524552166829736086042466999759427282529166693006604561445124591969830530623008833234539415252393499506370381784044602286898093484148342991451998484581833043961498367393042049582541024855584388473931172562174632725003441503723297973513786212123997065655360150405675962639814722877746255033779698540645530387868021692582400911035946488731517740143806725002147672901057989374426641422685092088284295419525748169554901866508509722082538846269448707109081137423596348070966421015389574576002466012302550120542993583821250667172677685677114094040422466432577857663789500347959529567184234042600510337188663649073249088891957251642499023407482012495131064509140321488415355624133549928689211946969870503330489352044725182204200891183127390283295859993819902563846088895620389441323064213284584837554352425104102561044833940428099357614180455626174964454772175700693469185315106441232484554291550876271127669353049223055124289496665000709690209232787882309016607788465241071497123030582595905137087856637093638401338312903421589913510200584667342311956642672353074032737976571634627818000760008243294544643643297598210249096578878736177953799850654862148061999999633092045105474046545120094604325234959635143729950103043275149353989290417226398999532382008230227050691029567429015578198335135907994840600780828375080073552839386647156735410148199687357591450908089829745391529665497559116621235302624726966127330396074719464818813105049801162613918101946165678186473876709677526138663895788259829570633853377046943794171630807387497282487690859405807642096876691958000655233777611278085940081839093064775752299870256671917038538113112948637337348492979960779128262895170314763917043007970567165749074895075834307422078998412870219311754852993861773920042268535696213972638143384921977711768800439605157185252331351534404260409279284892361212336527210507628048693431534766386566047517297058104108945535438408348226925204168208881897628214156546907697078148379590282031482749520862219607545904867738694878258121558455482932194964206379903436816635442349152076316315279123818426470999669754558930729443981203241232939320091802086572855079657381874044522001298174287846514393523564353264229556004593171851420694526112181490023570126911186229997252042620821433100290955108735857990033208396295844697134022560273038970207293467387426787529357793146178130441656079727190424191820683259253820488132996516751595934614570086804883347382465186443556546380697722812501387712495440447682328609955310279388372732939078199552947299497863272204396449565454884303667998925479011816811880602452114862930514069342061345124778187219301688049476706393463972553819876246454157021106972734091175476778032682793012029109564510996141975853883783339849772320390728076167594175477915473956322285117388683815831510602148012085181087375079059897805646310209135227645541150369339245512513558860924172532568727563922690242954895389063546573670274967295693273621062046279645340902375394792885828565149067786125286581106377464930940929531948476232197999046583690341592867608484224250034254034191915189439149236287097605923776832613710406798618813686044961579371171359739132969638916935033446543837790139134424486699034185719088017126347285179138899508935305431214297532031352515220630686043258437587545261905592788879909896623447926870229374086523749068967502522297432566494451114503916249782243028924516180475834172558718718255508135618904829404057408960751567249114555391094481588684599317262852312967909875458512567457309402307809834793324253220534872154082099440747324968932086255395911362969246950335820081006757173434867259489239076935682299355049454644150789281895008163774866009846481166094360180606081131027848591946743469541338545334106733403547243797567047109002768454299144706233032650089875529032375183133614723647168258720342052911919305824135304014199546924744655637101127153624194965732609903152544501337591812979071548948693156131949146835873668214685686583046231856355784737743992363019360976709962225307176989363994916854800777506801887885619494682233246858466787617489025675876545063923859651085636901552794432341724749153923083948294970453978786564568950111307888622554736344146424501034774550099470516748551920894942438476423321997337818550879122748879382817433051098796829990067672031636498454182358720135878466459059411752842884839793175706388075747038598314958996275269360545104610884130749717338560308123230417614679527793978166878555486106473425593732307894178312944223848355624781742553855266943085527066470196085766340906780945582633332882301691244424022442564331099798694141137464992086576148196611123288818793071871777608498994105834359155598409518219797046146003903467540316460861165866268953390420527425610176732850445773962447900710362169846490880820608021026417451955889591815969285678251396432706406519455762316789115518672765586039758353445833073650973747722696652908371957243822853038554712533651391352359661044742839209692821533086832995876000369720207212392038350738480205781309991858959932425290524802893739653723551015324946940107116624569912119898669022493672371622913538192288639036306080278021916650201989802541719214129597849677872127943747030507114167581637221702370030831429073076422011395381048838293517038346084219821876415311232460087347499021225229477533295751849582108444549983007019074632610402927664419207452294775537900942120012241547094990214276395180589213689551651303076513684860765080591962481801432022362423292214007448992304309351967820317471306384494012942641595492254236073029419484720805356116278847664921722964505019745203531980331978866822685239418706852044364082980340672181604038717866124285262853139337743696170137811066942642775576974654074073068010494533249880408529602201813221548910168168653166078307305199722967762724782668653981737596328971777250585782827096525047506292187832546074628128876940589987781968554626927081928003373590753792176879891682737727440800445309885795819837016441337337964627413242844971897167730761315876902281282214514480548682475571065446395660769396138731736133493435393925355270167706959015544142308285715982182245671214690077071783447303373907117504465977797559620995385177582534903595591274031193076729442287660938921398404286348958120841548234799571256972564182191843151230340482149420307110723341436035948525078552304004566243477566384882187031379026677614885838585585929887260319455397788800935211705599519251125490020349861327047058847178751643204774570244700327608809602331914510333680217772604539188127944656927778019160986394519156590258301475318572782739958240255238587651309046550385870377094988191206660392456799885991163745644469092994758747790554008151754498580296613409197752834062540097476099034394376993681325728315348155163030282285072021838101597979879810364715436980271059094021717153279570414156952971831169122976449567453289602155285806518246571338322451969513132870250060023737228083872548858893564365875341099516936524097363232546624199204966938669547730881215621567063868439117637990702441043605392693358307444193985557156019500918259026332791502840271326583596654493943690104948298448858933067468612036596238298981130220834662753223885095137466579200693644716362914369685379394396769373915833775361511605497260302718017682013874901737946301031898816066946796162542253992196066262258139155487613020468087380275180054060870768659926608501813824074478925472655797238139139869106092859840940606631296733387943598483172849618407673665067393095708666525240775763621002506327787409730741339302690820970939602855638028066464249265122178678933339825523714888274016223079499935443846834206036622081218199171669521896112070082448578014444277578896969553979407289854365325781193796312068969355414115342018456758914085520791560992625040591109294411555201281411015646963143670210510043709591431741328159955382012738297336760468690490652716053687505531405903754409713900168592828329426666577678986493516750127174843168090857578129661260565646084084463861463620778472211943290819064981219515754554985123231058079074539790468208091517975316513828320646042667904073500627560013340034307809837251931552490312921400749964428565010519524122860233635740906966945500599920146771683235524142259347270909528839929406194438153966954565806917670073141443697859817813318455112993536245431901934556933519296872811342742626148451400922283181798358476524121973700192407484393035697827581755640541573607212353795594239269466912690299496956090637102402126513389019877598029054593518210454426146726676524940399871354317408244217390643830662291734698753038047601524297169503556475271514436941136643183581445006743082026245495926159675046628957789610057366229442037783402835945990098385925869787214404150983944125670723039518068297763539162521344096409357964063402541267153672407710821220025648438231690054220386002435931512852670157612347484642579501168508035733336941858835903048593535500139984004165353288337724440151033803207297957148141185714077566018752024699447451079023974588837935684914059090541371656955615859726116776715739285398850537910421363807286599221527372480522180231007321183682405952323252746478897539054205832918958755501613556219158189934381329088670981396653569997215817433056972650439578642745246058780988483135732720241702524461941022964445289061393518249212631687832726296610200724068251654336975114463085448432739979367192374697567890187002361360280547729679461217235224451174414936421789788567945336358643440570015354269848918449093618294483502664215811095856431019255446320470272925511117240306572083173282817699528307575039044132277683511257866826613276725231489899030086250176525503461432308951704879510794479100220208577677290655311720674572934513104639483595057998614289760235087966879107223290205311884284083233048136593279800795528148599417154881032873390283947812663082542078493972993670759726809697046525350883988540501618214412762885400062182701722249002907345209764587398182140495961152267294717947576276572132352471025518060610237673022021068133559247762969356343736218753377247749937589797726137757536169549794404516003403335330295540698615670302690167233197457266845440553489731508159004215133398149510224689271930486084161476755337054079078568263856141189814041786955470578060139950760171202638640427217297118370262958444648171010060046491114332612261733592241499619310445670530332104384806967322141288528644159573387647061103025015769223784144819229251340483773646894016751062190586647313481620164892809690944210331120159132301106019364490042450672715541878824339464857776790902005873602687598085142306082373288745926897102832030755810956826129021851306696654761008959499449822235463588154915454431276300556540610267584080687546868573705928949414969975631627767704293163508721223196194127242244485814786188934710973717342186840462141253776434678128828798933184542401851208674762670830815701090965164143651606803742536556906067791263395063554664553606140380740909908250855005899848841458341528039549052132109960081323825642775751748164476069820846753474584530290775535184017568633957250639518620930477515357393921948955548239557769559261705602380226619449725902824320258489739293615127145196392908592581082645735455347768998625499024028918515888403214199434182203392273383497464575167094085554746775696499408559740509503478170092917228990725428515181294598522493105146475055832001281148825373274498886223316110960605040601580276849150879358819815132440512287638794349066069177943896704458174607739035237975125461546195556852968992148556736743877858561238993834990207436596940725326977846995562787971176377684236414495367054710930494866828751286097041521950274539575143999373384293096299287013689496002099672048320048014693595211188622729915375220832637697307422868260544157565025799528820523453405213803643264583043070211382862737881381635123388678460132664637359128595809518233155621846778417203559996178605894393347109615838209022639831303817781711340682844249567300391447303794684925064233500466357720002953388318806902313411045534490855125476850943342375390420358578248445282306666933445941265959720411439438946169356784309230986921877651799814816608519486507400880970372960766025619965008251768043757607134032530218743446557690550345309568526849142475479713495672485877686199965492717505448289699722340926956458471789614928668915884582320793538537840696988342003793354825596979263889122531444870936208062581204851373444102287056105232588164919628346630821102949948965326409046153257523974110897514778469989690127153121783433367387502078071560928730586922316436171921690662808605632617831398689792455248386857724161092354693319251209133819794529924344978010658959892275387618506625271023286665736396293704490342691231876970861128920401097982146516513707488192809793676450117141263267191457941531107838533787693636107433300310294970317440701681654521472296531383148266898182730301692612680252188457909584026498240870203076776216967547695241134549957147660972435638113362392097166364452339239018449378939451351463666063559386205718397670659397356036639649500299070907987614201842762743155098191052839341976207179326223533495775042446728343617460795799473421504568330005885220487587302766729459515531965095143664601443687690304960120269949555915230297964991127502286584623652860580728505755739847663870774903159214077947364590701915690539767118476254200658094765425210426289130563379898292740264404413589904671693734027759062052966477441788576822726459331795672769399094523841541123407947430326689339975891425031389391161807124056020850528042716537667442353753576934822885567815865078360364962092233150230018741955340182102996546429567950005601058193454237621620117604348566127780545971438825528983506243610634370998940820032524531832989641514232527639810549444644485332410599194958516351216258248250608959767066323148520158224322920473464957697081594221473758327700417292125078158066938657643553098776003558656116168331333378778774856733248096652570070782786922012478361873459958543463685673692518529387070427329308353217929472681623375718939342494311203930442437973370298993144885439633643173042067881241544170989017871572540557174887000987537809941881377005193058540872161258231250185235532801257626162279257203501168985723432630671174539128089391547372744771519817057472005247244527160095468377844100655783363871858656198960387656925251839503430825111827489010419156174780788881179598637429771138136408964937298230451955638589114345771905717437486525134832270496359651665398173734647125436858492325546054790170978467691536384940783356024071592597549457757094388975384326737167328551664011033692407050620787267478724113813994805742218820915230963471468441986817393876746404278363523759705917949120824016573595056671019252222144334683805343588679302691948656685117181860866350772037985796012941476368270961543594963570433506066009182616111345478380069188533515225847216471098820177084092803734888731077745416645424692835911078706237422637209147576385319684488867873608314849443875192069679812300342014324663499891264913795579130728831606198794212690283286462250999581754928197870643164296959834483288250177002831864927911424010807282935530360882352502918804029899232426041880050966703511758958132076347089697694391188850453673777934748098217006342640763117097974666688732577505923410068105082588816440468299085162446944783176790774370473830352850878472694775614725401757562316759281396804903767400862327148058740925516319335128295625673045918754158785597064523763487513133172827886403118501791224044685561987254083733082567776015975240283748931850505199124434786199933834611540249889576456058309842697827649228150527640481653256325953030089146682821772243067743039393206924183482900954575519829702255671888470016137955911988034237880531834596002945729933909151610985043179691397684815961729650400052092122557845706833996115585142263122772394647713986100135920403689591659289268709687940839146081516149290102912367133145539672597239316346682514425448388417820426717042814534775906704761412813168594419081583199807708763643284706059892945984149501315872271536309058012171646873598965443964260886768557901583472720080292957527973180608717052964665613081054993923017077673241183647007373968277642976355761493909887830927472981752795086183244568081090891883926276790115693672411386223797620128431682069999502834780917728688701095066021139292564451526063606670741103149257329040355321536820008598939963206618915769864277099322994995129252103344290958575626927457459782563605410822859661077187906041764409744870058194132654107246478872308051937663087998036720306939641544654206158960924978701472760095423910185990296650549971546376682669439812004139379497210341797235211694444351537375792595340824037638110014533227717260584817229076024403910228539757823052322243287378984081262806039842172404125942858046089043521069017429219117470791886886130517618554251116281165382380881436126176196357360243021768262164896400049284488864412484467215151050148599886901264191493644425213448955035848962792049885948313424646397504007556514170457143402340294423533259207194161541616390772563325113848826298063904925035927485056458153410688319267987321363588423873030124545801971504550941791275788541020530315243691969903400713086812640415224837753078328836424764921126378717224223551240839593363073682659309523240532340404308914508561812409073390558971479753974566375171549960431429956897479142423947522955506623206483782534206107510131918199350295267598360162939234676432306145386893007143494890189948767893432918356763784436567556783948219086169801329922331030861094530611943489019743100378584983685023070823504291080567278142075437583074129959235112217894238783495322586911946235027812474677727408312182636559549770248412275694708168686411182214120275382578452635827203621918400164753817904479061044833802378868951703724654894547301465995968409041992939023899594676693390903166926634938073411051801923362074637017038613547748754188117343730383130912497328307835216187944055590710148452561994946349075073533706821664599278925161246360096468966808631521519260200245474119591842482749714173037004822847102799911209508501813495075395131023108049063106143766064662051716542831010685809356331521082412629865034107107156107265572413207498918429464938718687876451862338189223592109582628139642412083320551681160545545746275999526202129992777408130927395458053658959194361623270351529812876341484137733724777789870476421998632755613598040977922560822804824286288913528503892026643734334640271716569382628828255131690293615535181002739798929516891465851835906064730154202228746807261364180669236671631533290687754641578954344689735540526540766643978233318086770386292823451339996424070567479530889241824181709224846336382269975616183964751222717769774884200495248729606594639522043718643744470689060081417582444466079806779999339527337217534545601624495579796199068513324193951534899507272489652128473930688725730582372245716682524366527803158873109326366624995565823764414436130295591498125201522547159461417715261155017115113608019150709950202022640307201613127403671370421752923518882657596235055212928216181583018315610537860622288400855540765305288460744986232904891852031690142107146717247874585326775224120464499229128763404839146496799007676931912902625898997886879860605722858147283718093658372441818305809550731084625949332487269236646837510768833972568077908884774550088867293001357945039655418385269885277375152710754372911314427281947755921380613628408069805466004280600399387838245171616245558292072737698221833369845745757643841574495771441233603097510373678517755639622540321558775244030615278331156513215551989883036934788006147602518799480172724894125236625747249829940963333397894140772180203206537461685052905892546836209189933487426139416546805459727971656593491757310605067942599330301511838870641569119461244195790405465702669372194544287057519534477912490774600971898216252470349832264356578831088498850796980706584453313144922198167404969985031823399419179224628190326387183112320350978718178835149241823572913099348894180325080702217535490240123776256966983341043326344314942891997444916787393220221538479728044453541798424155883970655347757766905932366413252233200445298459733444987782360493224020890795421740294734980410951378119959782537605856948925501746497035213316733751204969749699877153652170102507044045234011599837350150670218810046509611806886122146969582973323133024878090689090776097574487489557878099187179528364847864381014946912333936279242746808526744990747975575824979374086370969555990105592224326937865157409002608085976981904393451000934764012081334084201841097769959681998280818628458197331957623721289252751312425288827715418063482072548130701173753285977138198767943566841774121216661320363638161677128412967588415852430842619459503513681613914871829984952678588778508455234205740261055062816770976967775095613990736309215806391822200560921410015960145183633088630843002838407847723762377211968858199593873181510356512439805149524732947220809705350307516580201269025684329252192901081207811091542109821235676408371207648178844312167670958034058487989030517533241065236585791851650247607832460632972215746015408375622582431780012530561340445477015451951234105068161920349565090246499824440407672318846816304982523945548027868620394058002772297431985901004088941146321066871853078702848029908672771075042747724413121184676087171506822875030899232322679466544609547377343519542497289713827660882057055552734164294777791823582286804860445161971587615831671606669473954654658632081790767086189008560528059546831521850244024610965761448121923383959902917930807267541683434605460947156324404243811705223435874424435801424435596122964025442927599812257411119654868269234829935997599398126205731530677066796728700937053063142831082717593688179214816523599220298165605210818812410570567377820800486171006007230684183042205526206832601664298969622926873310206984692357745340028911612307735315152837157859132939775659484400198482879286057026149614037327760008861931791373052313487172420729930756341587464832292941526138853477639453790124682594122734471277989802490537184827575649323142454193098342131425807515381517324100791271171885624069223473188820494959104198466950312977829276611752240141116564815585933512724561201620673225934135243153453502812032928716916374992111309697845210175386264219402732369678221049688600729307822451268004699756663712907742316417201313539260323299406181715346227919556203004300506179266640710861236609341751412243027104047465085840293093276499104743810005608021387674885862353064646560168697836126763825911554524266466483440269774315929669761025581898385590111208064442716325112315146159344517412435252668083468345463760649839710983651350527695308621510489413180565586846191929157423660808169821478862260621311916941501770679263241109784778221997207488005663875328748591914779490197274253296227617949174624841717483010201431541456478732623835846718029588421750211821691795533750511582838277127122269700892977207866543672691894757359924449480864947989665646189123153924416958582541564248672548084701690909079679914051645972869124603382994356733454838955591491503289261032483261845530909875297829553500325662607088756866179908847328944449267855763167714636314017857421912403469462129954335802647772548442782687702535855662382666809584075419803737567640433770049271171310961463283090147480911613155157582946671906450327260669028385598748755633683861665550787693994555453754169637331077439847188050629409624061732972054592385469184783639522711207172463661925372564932819791433474918800123809367037540551087021993692239974290465917228089802057168276424506845553422473681640735272924553639812659923798531773433947912377127617572307475011642250556406599986359050677629625999011972531036257930398568027973439417255024853012205564246220668098519462933637401378007944098735219543751548680086446777981041655143935822242956592841292184996475848097545241992141710689769125925946680929490266744024143281055344279318900513580244902060691654908338994518148745056777421953856863986438602857337016425156006729723168520926249251782124538353709770188283315814285419005166739602247085104715347022322243926404507710803392165100698174031929564966787844648993647422409595849731946438940872428375978792339655989784280841178335184234585971923469177973603873495890586594500441811120745254778977105705791325098242414388065236186572866674015663661491602687527449589251039324868181038218713618656821779256913631789890143706021027765197616149282532300138079053985856459915643121752077970328092495539277998054529666253218977484203812426356966794439059376069519511271200157338849247767700419747474188602192879856666699765185049942001529804260335575740892416659253367631458695204374929937875078560895194236829303959241197322618025311832033448430320454106639645857449188504563754721118829343872065206821227542934920202775605979912877883904802522111950153370493013337030612213153105031104494309143877276387556987068718293694756040019499529797634435340210331067339723483066212989018417289283790992448237190544455378840590798462409381209250874192416974560053279747775698586408257661765580488950745721371653899622006795382977921773792975830547929588597308749452816272568954516196236320047561539384448895569278718439506049361104871197227539680508140605835229853749147071017747444942280079806943525793499539525764561568523237530414225534450834573087001613102553817853432850529387057156256843645852966707307634516917291815568202188393658699320754028325563974317177334208701641394391379791566036361514497183139553783098926465357237240470292779892002162075816592270483913105032591790976413616259884259814429112944164621904800556158778906584790486622536117649446636143277850537924721258620495693338226832777605691677596187637111108256368859768991570600256145862259242428802680215899527228753873170604744173482806684416589762424783143916730297602022709289847897430982208153804261428663562998704835375663686426170814590211195641525924602923130060452929427554947415334217554004236400429383789015594287251096007697240250192371731060113676285971192341983170496913053533760836737711213168731336270147277889738305973349348480473225823150465458928225266092651604915678363625401673416823504056441870415119749698040231727903847703441646678573553272378296607058394305900778211960384974049391853289763494274369994220084222497869232850870105496560409223797024930359070260960280720352514565502004026152637209724603096533650957452408345444123460220260675208357130656793759979626891745790710096332779921073470121194991718388469159322754513847681589853860318178072569400392984951020937188852249883916178135876004104860857463574599124214006861933398666331629207013570969200174606406834869484962011461917612747628664620066261213309550444233639302941403691525265324953115529659621826912860278712074801666283661106708583593945035709665377299756579211752310918378632123284325315434017775106852582157031714110282620975459615006450574110127273198052452214965115535676528858165178613368460566985873676175489072610729720458296427457693442017452933466814036383654564748144244661175211347342439384951929221656590477277974739812893074669571678012967914665179235796742015617607105322712280790409061118677602135272803738769597968970805172518596390683609193899877894823600680421480792953838163362387030921695188965132802260773665379204759238834978076788212943883428669740511408573927396103844948197246569148221585212031747202341718545016719096338400171150798902519369329092323587578500942698243002333258548641099466754957380167013751458921682206889113879132008718200303468536790463143494151979012918309102048791802298470917527696008021560110896796557912857916672901029572463924953995247686601999594129312563027336925831302948797940417471255348055403464624585898671910838340042160002908077430411373022430031008849691845077017519235627534485104421376975897870038290972217826831770322334761938473996057700353081835739061610537019350633707631312904347219093632979567205620270185405327688453109491532120239726979364900310141910244298685938941298475228249802904857827144088094108408992774062960832528768056709820840000004565367875564967435131873878552078264412130861769703704427930168816496037630565070001710907454542594594597760999898277636519099162156831650346291557303315081924321933916088920425633992556121102201034851969238566430442936324096795268352983234810026947024591486961405096039193153400232061406509050164128488913808631878219798153059516411611397250435437491385115169825275311834486367857082983893669177393950393962509124910279585738652622733666924749932806846863658847910786287335580794992317408440438255982381929946058536374431524523090572256519822161112290129942868924931807028627416408080034327712648668331445320091428866016790288853388252525848203796168096069776143764418735313707982861789975696142034225567986434648994400990621314187049442408296883460290684614306632796728722666290125514559374379565352346437392374711209163573759722961160743224539475261467886120261596996534590673412543462888301010553403186873368535461575797897304583523807811543359765622024480186838731549999909279771776404507393744324490543505681927385325636261264361983772431947176824145736193177369332661612092761429063321341086307027450777835254122774159693171421157580012196666999190577968627432357776798905957876983745123598107402212315246369336906170626646089968225981882357104158872048934553066828915786217498447983774421537759515660598654646044986882513324921124380396592622143582072385666543387835984933308121438057427194138208360537516285164082397556465643688399363108197210859452731958357351367785134199599548747462728729923715452032569556107722212078575302207735362157158848716375992733027655462747002632848253104218321026018444224960625576895951373100389977615555788528477725218960155093056705519411128867292055213542927229557221343295482032667515141577556502377345080049611111614293045713991647940842899312261487043633859608347779129393990425591734088882991228803993148518559899304911183369053163455480043212167881087493367847684536665502633870581603259219726076924996144017496275336206920125939799839396011317066632342768218599545956143959991565176194636663981024896815058549040079732501003196789076143827261156131569638294585963541791047750847140752615573110853846642864204180414679902740201701520349066414701983645960332832058264623085030093776134481873128577879927965423493378279680186901490221260454614061003808208345417083238807003730350727403287255605081395820945295503562149684005095279849313858143086187584114387681041271264154839013653606935462578115678177125640570493727972085042998795799452043712826975123997840909876962252522331857611710961236832256387983936065012790355781031359996443562165263931988385426519195214624391384632381053093341284860999697415541208071422330129282975664154220588954166129121833149401142188004687619319107649688275971984576211260754649926336723897508928804070473018021755667601595940242099544980995131752605084596805012898625327365175560250058588973575935760252860455394226788744264518745500622654128254101351711992246530738522904801232249068173610273109377292191728844056738440825424032431619289485490943139989399905639236107115675880065158875954227456146848170007770026741585135298396547777964372367509015585021599324924855302766582366842210777035336152379982490362605249941306935459900420395344013229237772905995762495611152588021611995026817856588173670818417071060933570252034643536973835959042484394211402821563511657853983906550646500121857809199276350750317869979397679823072333041905000165140584732553767352725677303727366418747568388477224986940219630173913470796187598961987849073564413109852029502054648658189162089075373698836676594709447994126249653556338921045578445653927291547204567183459962252897362399721138270250428703731117923072280106633436856762461689018643694438813506505789450951526742460739383434874103946819285788795365398281029643230464070361106593941204951412345237245984514893146480232590886401107423044070302900394363325817107055077204107780783372935083574618719938366339907678945513272016406543538191369527679762444537338585515968943566352289203403126842399009277190024692960524512855968602970313776948140647394759288490446155496452405803385222169401044164690488709018281646781850516686124932841117801408863549252340073231060942313230266136904208370909177145323300321275475558121146076262881981467418710928960709202128985369470341713478474244332343591038937043479179472100407031118813116557885514896377918913843758265559339649154106042528555441842313711625047600666713993262849459415895803766513733458362227168801414432948793795123475995433412940294356452844474570145356471638371307263407962229559012517237673199943105865055047206465905801871749576603189252665955051671521400578246996380180568397715244769839376986643898851389756417469634982485147613519926519052316173524615952821254624793813245331685903680311010528045458347359110498271461150698383983230705242487511837465483959946576342932459727236831218077778092944308323724776112419869893258220724453875581664168304842004481803603997334309492736684538191135394327277758975842361687855086111534457290694037045388231782357417010761936121613914072114708081686384614500295210220295322432045815555038206804979181736657130515726914758623393297832275029163119295537788538706468156506993341059648877674297512978379607797340357083902818860819995624074364715308695235741658290826951790110585456501106417031930798144417563198641551326927208796749776552281635918218832248337081170034645710850314260241963094217779702930878641970815952175236952335961145698002926586896575847338681526032604669633118689892598665624819031985602715150067262698443711403960431930065426421544337360098307416063510272133041208998853117896507637320923406033227948763363377207435819545534902977491434412808138606141458336073945009149423167119120680103661373874745832233758976968508561186933234910583115138807579822229811631730179378388502458991957957537189694320376440588556386065345644818384135134012818624623478922509554466176173277639429757851877066586732799450567050094304117585257136828397673069720604946313114396054342511922264436370005768193165597253211136749142168935009205763720529512229200806346085101113392346106098992085999097694556531239961747289598792962971688437054671168381339836907133599705534309771496906409100077949724448918484430220148614958310423502608098104863106381239207618651441451918465948784732189838873143886731987715781706189802618325877472569394749885785569241616973788187115417364824098891120194683252503133629348723571159954400350955208108339966212453361055061043056868962991619300369924303821569316443626514260190903544205135024031796538860351974798315631543716386402006938360018738287906143418424580742791445641314655494715376016786932413751183909539664793883867305736260106438836428742310891844664411274586275824827356855215187772485781870546161642571759393744613863044969173277024305625464872352825022805348189282671231282180662346291119411307483196925361931542297776545434505578753908681019001531357619071458010595718438032915593300048287409128065519045107286009312190156752237723524740906394691169364583883739108109072929140021872958874773331025168838284475629387179702515963703890562330382254427319105649338289010245306625639719969538006607348517986963696707546847611932537347910434574401582142845803740265936985104570169656465878559660156081026188669357715198595920170690185171768323833526063726070504198655376377494107261082693809584600579889504872099456685947861886539898372454425462143786119074055377228377206992029987846375284942382643050693007640097399169916166694202302983276912213402534321727284232050781487008452508119819092330817421883656218417926857525128832442456528816414773402668420857879418290924473683005730122981331339819422547137636025670762754603407658274411430512904999953671189929357164632887382373978463844699078789962016651431223774004509518965647827040027406144869163208682520214550441309690614531015758298275792157458762151998262418393214053770956816824221172738465888050109399695155180442684172923413892835034099589730260074633993700434469325508590690069236313938525221937482777660307194200155496000235885450355268904426642997472826416981526872061521790133188278529029967976084150792543239129844462727988459717254975686122543543790916707539129762171302195025953898959464789000565867612330653210143394256949374583547954206845447481564527008733398890261365616359503131201915647350037564795746977663900469683097543002818512637486031949737999242099920044700660489599528355014028122244582664677243531220689357868985301650494626523979734435397283805418131035015104126378436241732745019048015126759450467324247389254984464732859525392590894253217465053120436215450128492344068015388202609222729527650616356819972490464966886537731281736434810439568629013344410477200910535806955386148321098386904468572568732659304789701841647581064902863230562559600504978469665091041616131011577586244059361449980939901172192067323967222560687339290254069175230161374697093932267322745449493677323471829910926530708688002422378941065195749868386707023148400833630529095443425096173048610640452741046750654858953464243241515585150677345102191702510216858495090516818368202520897178584778505347207339241414619956521735014921830910246176301065193232375632647157958952951309889157930642646499323906945716357794513482418783186587808363016365814531304071080363469699219078997045958758074797351742979861455811537961210932458312764796530475864831768925545513382001751099010873951511564475990249097135774659467839952181342546453851003023230797739559920287178032180167420067491622169116312865246656238709539819349827327838296904215978382939951315732312484668295131574976712838653091104208271906494522456497856360783216510365088223962563738255096519641966919817091082234398654591531692851392027199555663918150157429928211312357767015999888804832346468621945641554897262339441452366214278659681853343142124660819644465346405495518890567013626151521476366410339090239138004025083376611480098379852218164062924416617750181699156523473263206612799668952227843866277931570936576725628464919840785500586868827031875387478826929121069035761130028952986172601980972612088037683662644095159433824382988868163703875478789553353593046298672963601446515343362761727333667451416977011101293610395842375948300026382770837128387865853188813561276638275209882315588283067296417408824938260167958967707129667478581776153052518748131354508656909097921317529852732904478335221395326690259768168746605327446614739249291022065131955494705506123042908076756030902723243705386379208204830949361789894003203917619847244235138631542503844279660300955001340354121076200627836002136778659579723590744782992027616686339558590668136934919296358263211527544975877285910478839241728967727506493807159970553215012618555916182115229584023511805323710202916203607156822129919166851805934154604226728872143056438490457818467220446770094048426406618692162410151947018786703826231344785857719782993954580873537767178303581439809980933146358327575840583885902938435133568523265546402757942043204131139387791054177886862135401861974577965105255579628453472863141922317652402000088611443275067851364281694383879378956292935315543968424672125578776793203325586210852759485335608071405453461114065274641315516869311309591362523712999359459658679257173440644062082151551407591555591996788127763730682313295425662134806330906632854937536763074378057991695417438127381280367251664589801046448870766844437445535665188049222782022859938206885848432425896612936863121224354160812559446910321502489342778568521391397423553049735175600170790710946953567773188790450151089566871254946609114861129877895907431702372728213278233786377572146468937836765364539261789733313012430969190884757610203370546307639713299391691727338941487176694244198132193880826796815776463867621572678672789501734249853664116788167465942560840693120179635483482992473234523085650442352897433549968282875564481608988620254124046904497976688002284579166277748207753413392805921708284169045923639780209728966370064830610365093700531383697179230115001203847467493881092137277490234743329276765805157695648084215605418474503540582318356541511294510311634865019934128783439388719125257588889138500079884033529364146384232870730664906781224694050616362615787882772175777917635974440906827319078893934195940159591014304961567448399308423332541732240862106389013873617185531543270964436944581552151247725028589510043439283339917583339905589317739734490633887817703157306925580514811101177050714111754356802151563520735396075928673021761265818585943165640171900265576123030718563981141149167362594459305582589683195326555739312089945878831485825596885532006948262053121370003608909486761275821105275698174842584613502674037842793749082142935610348847306892796419691761216151589072060491795980363171502893324744610651395595211926598635738672405253067228952851316740769221165792227066728876494290981171293137062319334540412841278842565246339180576242112401197194038119149237969990181059865823499288985756118890386757346917183351124926605942842670167324142372425781191372757018723398618880876433786868185169650086523419579553217628846123687539472884269481104144046653123884654664848014108157610115295827833758530448596303489502450564420064015282666681711429948312054474761103694522137519836029105184592573933678521116988412805679693860464221650869243821112604950307746450266753481059949493408677581461497630423230589418753062807156449526584867569985744433192950159719746586734271611862559358746315594403452952462840474438996133820837006177473381546023494642794653767828180325138536320526192003104697355449391316522815286295887568512616737648691766488758819906377241926832065011568239492368106833507298773622925655236574615575751723099265742659203851656370253309604139414048239012329921693599105429524729001487412701036375764456583513846295443163788263346257288110013631760107794113113849403167862992217211530040210605190178704645868752145577030052144608618595772847477982224358082155475820489807514694393936469644897162061921574374749391681986907824444213415613406771035779285670759153161708900143860522965499616617962026629193967951463720814740312192523736542073666582271380385304138833365130790164169118832855396497859521341627402318835462681112131673148891711752352272706132743943868450281126966763643676644650811733555302979553198048188329072655982775925877698666895490942620373689604855373135285933552974301930812433504398665766468128466475160864312743985365504142059772767624864840530880801663168261470065374670432177638712347766366211050420232357423543866374666373478100844245408447689392774916715276595613136641044029750376786317369842678669596501835654623645344430578660241661227749054910634358170167839343194102799202810599970096549112232312503070836715269840555339562991534993011840325418135801029671590103462435447260517141432550475077750832400026394296165480707933191253814246526089667712210464960055829515512737790122272453789006489443198817621076652345505452055595608578601945037510394257792635479059325469310860552244429647685204906949295184290390843692792184834042745573827528692720092110757117139248103258389602580523150917094342028416801294636177632515594424549833030851670587986610091620796486523835144256441704205161638889699935055308316470375722380038777197905843722175116521213397590680301916197489081705872444970087813016239299842313935262261350992991993699166397573618152684457831664015616349941479207717630677632104239874286816530059669404358349276583267047333461743817519090873108915834151821165381186710102577986935729780380549119880024607941862114884592986402317549462481525296082620349831178548348623940693601737362237439011176582893127955710251503330161740536212387462012461989001403746429412379665871630307707140181752268375264109183107441381593675426537895467327945496269275371991309920363224879964427012042533158219671451785956977744810071574205359887957528560633594230630939445834298118819035102720290543337033981968291620378107144256340223068831510909946290722488437389694872612121622426622451188185575713221358956897848687227035666743814483873786365109834640333048899514206797303787049347057514491004957637944446690782424561872995902319126958525611483422005807029213054377719250346651828452589899589191486806371998182482711965570583980423948299985173329896377475020847408641358701244724567315498849747993146212348544386354441310769228762775966758199191627873174202038987100485964315854976819464187706953513860001020391853260438153476232187698728802306395248943710103999077588186705408871215236521953270198611590265716615535997593814454768493292683580194089333874254349464807503102307753126130795072576534957883966309165053713402529513439857064647227595589662712523909880193035185311241083308073251342914919038995923389185192339495871491831770652979131114950692873127106079092780577991676730235080815966174954742557578390052764782155442235593452315962246952872510265375325954692109302198868195178662677312274881538686391508874214552425559039259665317825005468897726220844053615714184140845815971578841116267683657382818533828146743549152541246441974997328547627659761232978229722963493324526975864151400461786454154664492024663352169558673704401354833858986634936781972024997974387860607821962139919535799594358615287908109908183316792907410825360381636168842222550968169562411835219061223580280143653640024711892753062109103265335918340237811935959421649468861726160065734977877783068923419789906109134666516128308917143822715358119945152123287152669054933620861875959196857014364773863589912707132268713246626612485633754175972048438351671375149267636014371646084043597121999555747547431037162639099665307764235748627869280152907412934329035021615372720021089939391562664301421797680784361716374251273005738466165884135586250927036976495851479131857473349274637863215411908460332667418711201341051392965764361712534159216835255293662862583953160985112670367590508254999698628909046946051854758338718282959452162351638782182994545218863542623059319709682644802448664973316887667834446585908939108036991809724502698576335731309267501398588205714127365865993709008497250377108794193746216284807494020291174326004225867524139042720471100727800452487281540740057724917355992608384298067140741298366897033449137711377910491176454405858650863546894512501588672579970534338719342361531240477909460577231442932797258179252531061569689963448836143119518965214697921385625994368287728076125648927788931846694676008267133555937336959653029032800917646440707742808814530264555524282228203007419291683203852241659022091769391564774803612932364593623606200028953360752178303054476966226745584070630422942484239185478824854231338526673883629463341519584966917434242932822358563096488805510433051143963876064572349847513448651608193357741808231456211582354606955184360969961655855224331297518571378081488767168942476278316016077454128033375983400838865096393711220846467685107955440644709301543917302678512798385305406429326623920500471869013328510447230577780697979612685782969953153870352437575890541773562723789324918852598395158252747628974507771690852889116310246881222299476593986062192192976781859210868931453426745143934534315630315008341360745525931000640638698735881160475647016075170358178097151569127029133142677839813599983048158219050486545633810393135315285835276567981617987156437383593199671327151275569149018801708396906039283136842249595848164882865792276591853094429233685815403908711037712179297713434847903055817789037387680654545517102386957318642176326129321792796549440092729513852744740556596038010790937543625588387569891215440648502506146785415782961380899672590668531296780327725740201985984645330211887707552669222734175665016287485725567623776122549407777331040679776589266249711345094706400977303140937617858001312292595815870217305695973584026398579817115145711750047405617537848934053582113756241151127147304741834693762363548817863268527292276098727049422143174035348623727690080719476197396552511046924360596973924445925992096893159766150151881099262855069268635082150119901748455148018646029711833546716287090665649370463779381753780073015422761545152989339815924688355675604273618737852089589893930044231704621510176874750062691874793183964875862671509462894963161755669302239569966030342554080270736886009844187615430247097880441434151696155074183388737015044128472961253956339973308000879270619680296702320794348588721110685995467039963356999870663894089256942533255852990321214417125516686990275681102458905915590871994777529413778649751393735180509423436311338213897453656900281012410811083660477904281011929611849128258206844023772000149195696129288668486549431849181480547852185650622846357093892817798957516424936427642925294731409433414726605030294145274429312056012374740145376210662094819596240659399416111995219120082154902022126488257330990984985492633630575372313253770372220552779476443245079455452857179037458076279465990275428968612063744253673225294485841279330542141411063310460011247837273858198713358494986273475193298643052072103739060858428832886545283878588233002394391776891076061120015767050262016521057013566905695965198951444066340550845796946997249318634341667196328398145464999540320711633387216445583446135425628108989118481383147790142821488551093869341387228854629246850509928564411816217324252746855760080637615355761434217873826104766093861276301484687218515120051581755021958984256537489639973629850636433418969053412204346961881503797398674291123984063991843191514079607538951217951835462562760073416312215795009133800329877280711776792241072540272545452516311344288189723091891582246376974397261573252114219544538643001861246565529708522188205706133863740713593912092166799988420753782816515973726539514343933509134041882972774947682032147866429478672670869556879279537205184532408848431643779868563935121951311548891798861726835931318069917183653637964256902852688625770096989806100579602395635113234442526784539070007637108128551470350557433451011969472500999446384405604622219355367601738150832979115360348245723931097475979896000326901440313281048068217807705713379566833544505772222329095494516206898854707797190608507519307827941680175198331338826062037640101776215208667789893859656063755605900528275259687534976054924953197846013284677339686985770772179940678175886577765824276192576592217127025771368329097176158621068688793127520409457913901977585947686114317274502195101200735804485816114532736751433638864985729532036651443024097962336243474717114945016368152169131225890800365856459376526669111136656325046424652561668737425469663784908747175628387207998087408660819025738408096938066436234520136953278790449158823724613058697046743453375709115156167107565006612299264857366714268277576688587988608183136576900511731894212142988261787197413354256067199554101905864128887700742537226044797090468512857534531415579954689868570820291029923584177128018900711838732872872808520308463928112416946411115834119103029556827106857820482436765410249369993344256508149081849557555732895761952459723468623546637751108083120735582512959848310722851050492352017124888114333197818249317412619719419257297698910234905233508011603054561449367737172518738041415986239626497464017256241279770835592217932626829179261361756363223541138329265279248566058373154317285034963700097948188167017389086656206649680189320347760232166652347376105115060540514743228691480299907674947369747539413123955744967938774484335213157750223335974756168847258478432209027941551988788040075613475322571961531251765904803014711102273074935317993106220325673848555755767872444084900213550857417132789319133830036552402123361370254641349603261993509508564536529819561069746425051453736101642858813490943124767688445927376703529317887553594846636677467854988425845679208522568852021711193883900449602557505551173466560606649681786208597860581935251068833963804111123347209610533523004968529990460482890106736464572565239003505248961725351192317279873971791730267469631960968229327652161621704382017960350760463921993785063071137471188772959070959531249394968338249442962909363073765519077709252778858667664889116397069519070279287679706271182287929451693735841854584676948376721994041077669755233900310334997823742984700983738559656631132879008034318782775973045756334794508449448786175403068117507256575168137555925267001418830948917662913169498515476140283221151035242468385831379392396760569138525917074690379348703506718475090424189409531941279634370920264168516258581869712561026332017331436455708266643798430223108136551584246507038498760686236333038093707876104393191403157201609104889459634234989263562586643588212288055065127894991633243934515888154184517005809479952880366052795229182204785307355914679649072894317162266192961382501943996714784682773727557092517842732027185466054247063827701635482233390767755382273812910026295893810291322968799093930735398886073981428028567329026458535304861363248901971410047282857935785670239576426411743673639636099004290159936672179493072189100751311918988079753496421802748594096976683915624240616504613785073519928307785528071942240031131622772739300396900702341161703958862720304172986554234606877591183311613576834525270537623270256098353466110623814813899168202467627545255434369162548190235633957412069345044613711061988207556955602582721863275191152539975150995652427274669666282200264580671330233157267346586839312815960066979483371999045595972769742227867499052922755653401099481435864658961187064954753483846318436624888316320115440668181234109235310393752739965804854008783051078705884376157363335517510637701098230607688632991797728540366377525916937858068465014285662640440058011450711853831061275712308006137133624463071117584922555135637357764162413133509644871994570263211321648338021626928345878051747000072485361925611616786940879143100512264133636011211701687521045660947679987742513827320897715479360680051363395901876643698066554029415697745380266044302442802106105581003948079445840442971909222594398649783614769037381091780650781236693385629656433025978971003865731811654025667401343790358852001458701742942691341288742841323490299879467173864518393706440160989123341732203247177936890668565454221555777669670354228342134210813426635771037176147588972240228314726916706692949360621945531152555691122879002044872827647513669409359943329444345590937693337381115709989010941310371666461418426317436185862839188512742427099923593173415529919428206324162138951725081166614418449528973472946261939508141508417653541871629616210781202380421728310494483868062610274710767449021640556233994319391052384742042707732704004870729410289958120584207800910111529098132415246996636907494830655115974225880156697885434005635194385597211434503845851648005912062683006706458130556315325068247865122175889540284897252390840008739239235258239123643808306328449915917109668275278897308338831804626006766128282676972143941871155516946818867606635438903553208230719322610619359722400079493705169225614405405741639325495600978643931349780628413258389201501916525679225899627363486509782686187555907675941656051112800088700281794972407134736282818701149087530628619259717819778308848641275592755001154704121308327259548702966474259122899561219308458208995119940607654760798932372657159328924691678581891500813211446469245928095229955584834061628857829043416625844613903799220827608391285549106230242977321111666719192212826383922011549832071182282452308864925810184112504444851494766620252431111428937791799926572623923233172024002075287765515146004028148065323661002030357538349429880400650598503377100565376664682960035967555083180385476813882637747216582415545301856964032979246953955590798208446141748172659345896807344454310687206661170400130178399155308711598082604034317102481009626594995028690352079472788991516941341586428739209932306695447421380349719238155691375438221547099047620332780202477573931222031974542315734752948891649303517370186859746672467864121739472835557609631741239567354509400018406889082076609890738639718157565891756859610244911733216736325910878109017084789069051272090469034534862510107477974992804109688614146764075081460655421123622282844333668149823640624996216350425545892018222305742940095505689759421564473029136768900916462424450566407481020710159623810300485568274180088288180601158758350168460484404700132087804091292358977535918543692563794859861092949369817489102817707867447427400563779886802955801670054892077619836211547680946168210312378487577375110808380685127090321935833156770033674605386316638115811110904756340139161531911730671368622140071106128513978639155911965893191024417055329973638941222382631905442713968694917541068094221660218884061033509393314244526776001511307072844038514725152283730983037013406327486453710302821412964369539638840916515713897734677436242131420098847655044180658969627289518372302688875141187144693111911869338269962915762234100246223909565330020980342407868491319229199680271941826793578979378696651355727955486210040291542463752211255271083263183159074488533576389706952940656339985541599324701444716792516946432158167789970110538440114559287328633003431902302972188245279946737814637246548591914297508528119093487819478680658436777926159412562831848848552781513936049687059148475322281175561492925395443020225325850700610189473383840702400018176707640607298052810145776211962222108020059244019737720053002598641312936955364053970902064727255060637788173750245757201050527692510455268919720782044266947261780279341086779056198196117004657158036864644091783939626230072092901042982073369694297027791526174655263082681206609955684645436693972670007575436290177937754479488152972240682867553385806289896129864482303388797412701830761892165398522018301541877565068733296997736108093267599841775441497525930666208816778869595078516379026518165988935613668671836026571491622600087869418537493197377756742921514243005892266931412256296112386658266964696603041827016083682998802288857187316392708924279428696588770569072426745973734922860931268420830343267023618521233788626460044683710432474975215904480126084544920525974331230490371028005824798831647955167060972374517477519195641174097531387136076174201169620217137271414411063969681708318201879944492060402329829039450611923285008842634874605048195370658988917436901266681870460367850279210652369638823826625540231828418421864032918415059551117560404954368708633838525945218589156113877166462409162146671302856555126317268214118524525954361344589032836361783287814924948507001207770290824441335754629934236604486852637958824303589377266932968962247391288779628161233765012693921563715820517168884332858595224884015601770367964232978756858677231646667725532957063331463118604682998681948436715351693543997307014844104931081155779704659639502810653644105700681429605226977480991774250990591393698946215598958753469183500550371257878137117678367864107079397925914264529625208379714937545383509769206615045715863992583544877424626233730418104465863945035609807361054431771456531592987086470339192706623711298406579260998451443581526737572442885363172697674524496307343004379815444009356422839287534688587448269901683889704523540309788820279680624460244357738138560074100983542097308063599493375264860819607879711340716518371161121552820743991138335699509893725217662473045161966040059849687105043235336004801615151582631733676163143390765100719086929030146343622083436854615504868582045244990551649242503925568928494311417279029400626957997857881752350200007952443336751005628618064211696623804369546022633562465161726628906097534585615135142299019312074820063873617213191282472703862472835114445527710528545013058812440825788830549184668572578460017934125207373276516129916786124937854122571307885367874638982730437185433822545814618959812020641021089438309296171632285563502207402280347137432723550656875236408171396375035969709670334698503923931141147210953506737728876344554013944048506915100080983898931915011053524659075289096335826188316257343218735770119204481907208509615337462697520968904069615478878826309704053265793309714637104373063478693547789255294256797417270998314698213166628567047285837478757955553467540196553602559756840274332589471623119202123688881930213111287466408834034002432107203505179808583243000340211072635584443925617766036713018094844865544990095885647297027249389382447299563695031219186197719933434736173243693613034987618690320892632069830322488704656102559916037783423825422641151348130994203001482129540599653308134825040136764122679285768034992759151292423471264024137789454684899377245414101768639793504082291155534155404352906019038837415403348642637241709658539613176161814432693234130672347452552284402143102759528316910520762858118783970041651023289186188596857006093440679616793197714637351293305390051469058400886088228766422869190891450278970944507476838312592506475051273201091826371520268669209188504455807343651575631783879354272613785256450427737901938313970902459326093810048222137494100980123258715012925299256198999128245142166980527312243391495156493429803971038448948037215756346285233673657462090859494707653360690930584308019125470517932893927406398487369050312123940595157650177638951271673122406829700513841421852899955372489652246615571351576526880201762165719713979676687262139706337541065250832941291772664693217354680641585794868883172373869253360934130168323787384729586315036071091070037433682761923420752461363040128415282142228049810628949884209002209728594369046943687135956664258084322166338029634832186659400863667110185903548981326812594855802002021642311465445802747574668870216880768520292623402225453289546052233440542458335346069989504215402391279302342166763328938874682531462809164217846396601209870164483670503002373802774861174459034217917278576414476817437572608112669060965455877612656194332289273594428091759099937025467041476718753425299774262517659865794541371590231122916793438883167798044455828552606491604138650365294867807569800796787785300403190047277725303670865505309416307812524879353960187229890050802260910881813737218942240443991510039979030910875639528268910394180414421921787446060058999097492918973800985547411141162423111113558832796939556494709300869595037279391712538602594454425130936962339092608224527473400504631943682672323166838768284048071367551211495439795876511372981353214491564275927475649207392560252219973130663802186184625520113714783026539426328642283645979744978066049618889718690092376430920670482346427905851342681145626224615285414675509666171108693907514178764652564274720263453846425020442127211630975896298060511409117411232176209758732035574343848955645291460529611644270826259431812641758045245625711640380142871348059688341670504103899456701730639145588897549739812585758394079061287462905600690894935790598050770799216398933953465283975143756253362195811610538755804984831707410669404197074154821008234995434291000263892392962502442041393469211167741681582187912054033456087807323926383317384689381758538293997602399449343743617994447042015965813822673960479329106693178705085289569466414448727975069950541407118694773887274011813985092897145138380191128758386720715295623263123431667004148012878556831428997500616313899363554223545179559247768569947104823087282360953368184545196923990760569103988127206930497027438641537789625646352888022795808832118489028077267030289407689786418816669504632592531307300725000971766481633455615424659671138744429631578900863038211880990873894926138918904753210320180072393505540736668825491324104759815346391670110180085671339188840965020815457326184653312116783959833269784266249427308771287849790977253878494335396534945091431872734533398034858196889114361418533654703214351963039957726692073698004836463357919662150337391251810025608474305052655454753918644232722340301668072878912345361101667330937051166627550035881207988928312174788874534308459890746277937200736151789502641966490831899883449937897559183626056119411489138394093037882851841546316661440931043479443661258807542696533839928399347218928009795112321468913442576709333675638743722483796839415426596004851476769646744411985770844464040481744204021566103727854290312013743268748206539210710332411559889687477438440563696166026368240717364835621276913688741022476350566202015239760607182009006132109295904189961399772473330825924966645129256757282504156068971956002110761529994846611477817030406598097921304472917943314041352103245289003432191610764710737041846727561097423042503148842369697048045995629386950383616206312215732223492407708710608101730763983488829292405401780462441212039806005926984067339250553477249645440149879545362805485847236515075896663963175611816967372699267427083982783582033046327139002984611429530889391669396477047467557238017021988665602543155667092537680122282406358599204399512567957289074774261035097955048686023449928446673701656056226468266502317675580676506376264772114639557368426068164916747669488123251586368654603247122325876165019377531284659199172263386004452846812151321557553800110877296703907805147631818970452458099860467737948514308213971806402326739604139355016691403791814738686748621712665285831521238856807907854026643111635763945988407657988981750188222356242869677804849580222327340640098078613369870108938873226630420911190425280518807009502795884656988740428022012081934633758765635742455497807639250456405355733892478712716456885828642121078366938530525285919469463930160475808973126680209262371996201722678866386017501214354161535867522668789844320727465908982517590249301448621863815852375225454029806342613191785162608600635744646341439954487416033044497490731554966942281221480215676677116220555994142157286301169569940292924360843155639239455047270179251025441105151392989607391423780472439175532137170051659902659608571769771025428665496247587902386750194059502391978791743887236717987748373127493955507122054914824771389459590532028903208744773147349410618644161283092867607015993063821675628641854846801455892323348564048158499976555874837748232538770625542575929732515987667465381138861547512874630317254385701180295305745422033676312477747120725454459894911703934761353243375994797901713016675127817858326806354507707734094255767163130804501880589199259254937417500924480342042254035614145126462055983011639296585590783922564471117337539465352929050441489677095208936447206212504647128867098434394614408114809451844738103001322760811239616684233100492204109478133765013543653285726285687561750356530648525271711626429822592321054766607926731668520937495688946229988383303071968971519853056895210964549037500449718204592461723076885049382349001417531306136090256464341686090918925870464685466612741224397711127608490145254041287925567624345933788518922110556403129819426584718119348595117296495343222068218064105875431545623879997872370001015706852971719442996050382077592709939164810379272874937768814451496027705334335734791794348278857107591029574173502612698370607613946107839418611044661035362307571443929619070488878505784547448062353299269689974700519030945583308891075892001509477817767674618466954548339268235190317204752969489644134797648088372840531659842063706896808578723431162035299701439156493410761113819228833274011004459698310058327673088701213939207651463672607588311817681012748948939044878772757118583472799244131661506997119428142680406320332709663869186365001091526097421280995782509299499111268368133581414393387352236320537186593612516419453916016801012105875621914120486618695622445952339906126895960803210950749868076182770650138845199889001312993954028536582925949287300217690916117567195148692819722518659260779671057518784247583689488825658705804296097761082685251744398915118925398480320571942326992342184898312578648041862194151433366387015186851830411330787146749572308988557991492798139569746709805447851027821470530084643204411387356754029782856090802697929738425999286784972247481116125695623331752633664724696929111239512036036408011353814693930099549623534673180950445302080644338046723923290337617265923601316627052422632280222095527075700903587245408135304873589801066657623387206576693666016938128837180307233765847215294504862463046023399014312465297133199893193982538005775094065138892644479010394452201111559130469570922914707809619267072544198411890967522046104703641833677696987370620945669752827368036072823260928759080658608309117583764376501302750258869709948013512991478386555542118048992680560747191428456942967994487837728376579772071163931297137589941693342580271618717275547578372252907963433966277670117782804783027932147476408633773286379799554080439498944623778463701158620137488638568057432170650969821387126208244174886357694599727535297938466622187577455760858436338713580556211316429557225571202902677404972592312954136334299419145893370978971384258896969104240487824325654354692940145041498958785206026279626478610134281115297285246710726079010258136007359604330873232286919412144430385209248132041985043492833265367104237084832196284571276638372558812081127855587384900634901605854855841365156033928532223655614936978987025419116455080862201983751845381967560999702075885897222014755977051513117246164763750684928832596795472648300238548834917081434735683457564194421406848563178531782995017529126185847857312623106163880916570452157157998442328012809586668221077625918573229517348389010182767793818970178849977982670388250623547035825458429853620154907483405549648552764287314435616925941604276975271485959589284834716919841261247192561423442381279582015287676165923636520651275548907121298294628514404744984438625215542734921533550363438206856380607212660160388899972377556543225557723642006259215982992935342091905178580404804720443126217427232264261618006559962914623711939865673446970353028534017587671766477954218798474342467327700215699367019709521060477303952787158732703791436219884984605358130598821677221726190385456447362718964769736779716474469325161583033533791386171553796630068346874329692394386763947591704447021492868612740721413430058099837700648529191728665514668506855005787399744233930878218926143824661229500395723706838035191041765969533726417238121398591252300328824234591250886580284754884699007874772894840045710409609014519474362395223162530513661352272866380160750000694154987368119462460612669670580969255035819305080467510678052482686222288394773706830880520566425204830101811187961833660340033156397302923542110306700912450377175385270752644566506945273801520050938512244550362090532878233912445964128125303954277510543538314662670813668111586000719884884526076625307757783807800986445128283572223921107289179432184195336955182333667992895507460792695298514191991605258525752625068805209777176453604677537118234077606915504025279335458111415961176698359334363204955853718808617922796433843523819323169370768799028443121796827866405705538832931641638989744489333273921251122239266273310164863568501077535268771237865985738394472872635411423373390156710490566102054139723327828564375731732605495349585933335131982222576055614125526136600639697606271942349871766068224468854439907020706089641933416677168680910756048673755090361301577556327253663838616205957058242415237659983789230831428591668897553347031946479472646910894294804328066393786509541579548392901469088774237913265584407164854935996244670580807752471537262058366814682522189917463564094154754418173304257509650814032429245322722420682343141830136400475688199417531860881484503251635372466016204156018641929223905384100051493171312272278170784109202876458255053160817014670360427606806940187289928506608955793789734599048490865101250991296087334906479884309063769319565041526503641761159201271040345996674774639429384923034223562999518221173587519417633117764549256100680980710345322665379988293843040698771912184290854922102687329592434696980332370441942082406065081472084404133010152304129973362779764492884725096028766416578399847103484502858766639875893094984287882990519282043953661933757638532384700245605104756964771023485435683509973001830461315703505863188762864742150002007280216248478045051829145539089586887760600670124797750200414998001440755922314945886180115611293007015364508788110514988922321065894766509943356255746509877985466827885746419070749787902059076433017478433011180694698955687064259494687595511927365188442674565702378641012715785286085991771102990050789410187026238392510239182955860805096998021595400840678906439376556986811925070365310672684776637239356716303852047776374145839788446980826387955505154747856943488991654450369517868416734102727678809155362932530840221095905934328401592714455927360529648314861490230121488343912083800888023103884372428817980817135642677164685045405221662721050791716427500681419216171788077327282135348996429682905070967814579045999624814975106790005760991368560744235473694922236307574998820813944831976492765825994507092597444508762144889365449148966631977504918238924762412968440091753741293536876695620231973718636974874765858220949024607118820150728098997601135071150927003087888016188871180826212545645583850887307528240840148567904997290212548273164109111624284326139242022353779228587384949580382839083546564913637420566691530508802889049751962868116361531379064568416167384486408602021567033037267579565618955432738360692614439201898189660663252050712547575864008764210509373891370299092893822764765894234956974107504057805147029114311159634604404725862357056992514374624501135038692084717250518180764316902877495133095910145334692136901674207538775635586267173688186171697370381103185218674227285787265922074091332470615058905283927015375950694763672722044499045513762488868295529310387905771674383267649389903523645119041100772160549683769345164947548127852979765396114407943859959569429668570702546180032078412458625978535322927688835467054815554352904481876027613480490332007704211567646655133178808907609747766426170225650746069608190107878143153956648737163658696980172029549498126320735888294332495948852575520818520620525830202654644544034780259262058580091844834216184422492012367403090909934400446400870510193940743258719615964152068115355026250606878812640659421288588689261113385804060632147679742480969557368263013890642237708570211774011117747464168142143532673461149441114874125552303278713134053808920007673819060174571810502790127477176499925545652632488811122768944416588267816458372035783148573879431771310397737348863391371072267626762132708475445043158377807507578136447938727976824315089481373139257171168334524330546059688095246167731140039613517725019830496039562237155888473052127787734975158549328133210194026723041571763371802408192416309885334927167916899280320602967159563616514847385205383357133092911822766438195431367108959912404637892910833603024202676329526393080695991464953898179274052666001664314314163232833369365544682236186654935308503575045502173606051437806018359845314962377058097701695257886826107307007675477326371959944927369993887523963852502225223045794499532569213940288605263929051890745068545863031294228736137761378056083145148204959011354123439707414757046791080979037278645705810005230255257228689403562331636510734388304835158555462027583864466655327717287692265923723985786843733687426377410341025509380235558212970298328061019706558749724265590685489358220444971228954953608622528661794908150259525087318985770173721695633414252880297803094688668577041803911427670113581112212137095318292133666201178598979400294278391652222092972366283737195110545730897113289185790531150486075896382159386056211434886819134210898736718768298418548079640475442941309100615449226477022231853793057894673658556839636961263563803438264847015208632725574527104456710113835739361511782613490886215060694741295358590538417927525849327843368751020355042931156228747452290818360653015523150460730656394089878317452104688390740738030142539529679366949801452396113933188025240654703497778966520116637952915273262246592272712624637725942476909683199494114341512159878844266143352781411545635804991580182276557375080174376317832738901726545202500319856155734217548855166086760703927014785637404512616807719535527705908384018508218065475222810220281717087796653619490215615473720114144139366332202181148729946147408769813740891590137445734451659821650120817538470826971190241276100898968272599299986638221092116057666914208001354616876125670463925026466582746154918076367152576114438900870879193770890500965742797219239163281056910678710315181108655411856862719380638100263792928968039659421202985351663717124577881882065008136756758897863892532342969078060892161803590608877110714462713563248731455257143177391209964881442673607378544056736593652811255808972486795848269976788852795972026632072929250099581527198379527181026497770124955240209810962831763525030272041800855983265305427719866556732977982332211544501998621851669530827423345803183863113003247425962552411256981087134321971507563248069386547476204030917205293722666844192867194403010915526966090405013619195466850236897000530434343240655101645205435096415855929956276291506083032846609822326095305523441136565756092181831403814879010023633372201884066218585617177128489571713548456988517631009931005891655376547848441363488854587573215862503622740186484405377755109367429113335920738502740042892957994203565995245481714575794220978538199527621860986103604658616757142455361322690994713790206996183129632359668156093686434064893154597899176101548662707556529286018638092066358260695820132773321176585165050433177052818539573650090684095164558803352670361740682424363411107502457457508521860283117285967319618414508594989085692596570712797786840639587663350496097702124428682297544754388663727056378178051683280293072989683223817456430183693588799842980570030223885426234377267873710359560608018247683073557029637658846711446837128004749670548645065834869203401669304186037841699305613182141392543106025332119381398115021083879078539095445922188926584252218542038265692017415937856698513407828877111158987566050998553146049968963517328070029095339774884302428538641308376458379107991352742359708100857574127480003767331530995869673510300889075239130608384531038833163153477043922694422033768270015852747345147155539362067555402965024834799447102926256631546347004795537861324813939603928948462314065045310282281894304356539506388514128864032506246602830056213825655942673449625770313154432764270327720852257663739474185613304580417118045789822729402413395949402949864494362419524434156393234862541333978061185850983927588586901155104983636264871176733284539437580021036411040432684994421147126865964579470313354773410351086019920505262121688184121409562211530666072933178706265776654091266992558527512112335787503245224914869535807164743057719621646539665181029534079197268348081584657570763584650211899601449351408862288972138889160516200126997076741683317261946878362025430052321430638126686837179600915756942280819596718616705322920863973025229243015670869352048103789189766872319191378989851080618885510676976441176015979393335279757753488516222081961795359342569878121103354710008330518750985543898529636503220579683434594739842994525207087698457880834763386343063051686018946774066075057648674940357490076898775108829186465964666552044682537473192984778115773868132834886664773375881927352041661486233540797985852569850980388225998154025468872077657859172080641062533835152910182578075562197274306858915397450925710522445815208320581564215583605793910658167378080063576396138641523186600079138362505049289163534221125685204574345455796603076899393655378358834741373330971499849931943489236349387074165373271627880959906402404559200191743722580239170369702761557179914237713821837158104797339750374768932037613522158172165558604339570494140929246848696672269723126551160755965915232196455372160468356726207115339779988958922844697214623703741259193308928729933499207714823422941612590668871507663216463829761033531740108004837708466459982335153484094323198143690919063299338697094216945531710132653255970399373663263676663537347430243836312341651155930454870723974391941042723433782652548112353429748784476667649403509642492646130617955339527423860741457162516741602278785163093078279028434401457910367443164341532634774435072954395493158966567562873325077859739598089414260436843418480843201503440999390387919772884684459698880141414457047995093606839000405863306827613425352804830757743275376847017941468792860804464034927230428122344125439709933436620269258054328130793487336286308938362480514247556252046677910787016128618574790329902035526475973648184568682526856004231604785667490388556429342327775286074748977340650010261322321090678513841989286634509400768192686033907907718607690804915541585283525006931019998676497892413111989532534593898070541236150985069490834450909621779468796962362199254843626016217916181833879713146550947073897686569109085083538653372118414049845134909358271952354876488269318663041878856354187765214452220387885245288814829716073100293399244300929239440063649187786700926563842689138691081899968337801856476697037169340422872896259098145205376917343375936675905236879989548902100232891947393021701994048779259137307426091838454378960368414669032443870733241494864581717251043053665413671312956678469346975799203785180071325638270886847313741018113638930987971813006848963766749263102679914856199061841217671927961186719742393740959172407156923439762857999381449007624595706984130712463726510293889524812130737168740938456868277822846749022118860856035710291297195028087294516888908043756819296341819586342745320845744705376214826805366032971870652763381856731203863953731828518370577710022004735692931277019065054553347055196116764969665149289766651943768352775379991448949332597989399557156156955774823074266401176029216575580568457080065101452448087105748325576339700366614583358673570930108571322555694763923154017561654191128612722298836158850383990515630534659900333305195876075368544829766238696944675622108898897243815191371892076847454950133718152942311359014124610733832782942113057632223954848234362821584443924851537838356599205887624945285565626281193341353324179575980551957033893851004879193291420436581117406341800934063383885454557897205467531055543623447760598258915403272484452263942452828830170590446175838918977884341267792142652312630910935461485941594924751437089350658857553384328080974789058903298973187862376112402561332443222015083897566956847677836746181428412150993660599082489791245608362637291369036996197689114619901657664072760477316914438544773733033397438670561183975962696533395450390341159016117010367688973314681086295126593026578385373217587423242674968084862656416432979939574890636082363566578392041436445028410337450404793854288278166138383429721167036071949094060935047999691891918958174795773427298761102842268869760805048243923822850926882026660217710815614833958537383225018439164421444405199024810270530686572855032704096494021071535265962236247123917996302892088432233968810475541064821714784560782359519429988338916811044054434667259681698266266998370647293792531109448263074862955640164435312931680194462473056516782628590065787149843383989487679797305290062696641081343025437737807651533774430526600644400818926645756981033353433801958466197930477401101214900535517563342278546571268209716886610443620439184267359369814702672706865008973640551873478404056598626949648609000931778395286240435813796346157478148317015946347658835691593970025342900113357085897278430583168301285204773179157125890306368829767304736695557173306512789699035793951824429966043113704809079150164835496417531760714019414150698752557075394091149761904303628767489153338345231891150619304494206217599302117483351126404393036400437825149309640543491425548941772139615150734669002450633661427809591854235480691182307403527716675180720260834370241360424122236105467858446616491135493005923792415278757755400880300549471723278261373962093665693573883118488410191761698367291667294872195460909981881524072553272276556566156226096995326815968880472879826379697204677904317667686319960478299283064206133586782495743210234131786808161509923773164765948028006324127063278119747673740731549938230589055611281840833031407670215066859695274411857132129498315485109194126688071335753806157729035007318999422008254625137746855876583929686385980631850052885271081115106717354783999423019709950545281178332963282705387661331967196235595787179898888578012950614675793615428192207046045801624213034786531013453646774211204108267761311042919760940025207482561888340088475082918703233924530139835140708276672068427459690496070372269393339142094091341712666594677700859235474180193938879252233716410849273477678417196752905921531853520650212165264264077773687972632700601825309458172098104648693414402961802376694083079320986899138692940834307143096778207168969209524695700935074689345502807832915557319686837559461661224729492872546050359696069290238903603820072391625320807336062427298564622166084519657006491672718380684148779543029792671400629056291451068660693198626072689608155556716275797471361460429610809427397274296348047977944669418891217298036167904801674344613053421730553610602294376339223404652940276315470046342221040628709412117603419353165838310205644119046372816126990061739818430880822984370166919598887862408956655420111339434951036981495579568084106582475792505705281145616589758635891375706677119310041769801161866462389533840580146368025126155806963897962976108816065969455484515709790850441895122521863413503628981719669519398975906604211181636263296690911747872547287764077695932748072209074813565952132547276628693128416190434878350644142422792597786495770054506275273219778098025650656072997760826014762566269945111538925322843287422360633889162689925583705618682457971819742141422660152070692414759763121122438808039110289743482936085077756972596278557843290331508342901269627047306154858031059548578373980601937251106406386954653619020525279848647434997017810742410822438730194301448238346757590874370582445679820943298400193599537506288782404792013982558894973946408981857411147304552588732314063738087590271431198781402867819967892297693301845479112143461005192754729366484126368822580688935353028370696913616149938228589562877125450244159937231546559824375004382247329763673434672048167893823021346412640942856082982479523419149275984092979953365664168532593888183210657738952944215716713343800824999771239072200835087801293339480638926143632427121207726435546915079886158481391447102988097509762988495393664898309486822297402554354960329328025671446999513611681808247124525432286638112533323745296622909673370570447765371782789472313430916958578733784503436648377794401581978650381318960518784931884828923892262957055531825760885788974984741941617227377462915196078041101014141196940398985587065053110028554583844718923842404685920437982581444774284429561283932636314456889889625371383094811788989954948819406859282287555689743892817059242314290393680710768660220650891951207874183217342317220125054046900514074398383071701982979189986476739802087530869358742200271149953468166107596685992725644449152744262749482883626123869404349027353358641531519658175196556258560700501464644807436349107062654719120809080769264273262551434752052604309033965005835130485915375001244730745135398768603984884657226985971324854039041229230784586521746721434183584358297154581480803643855021387904387499932438312471643141998697606079114775049917309283162918086394660308812388380959948089266423697624625329405790226146759746314731674813525466396407275007291837261236818434527181654390576539489068024668574972021013779298263108402145476870625803358126661535166438785223377808043673568157731059475084254277666439110309594084698001004703770943666864844472689082261042750621137618181011800847316826118573940615762752186397463740345968399694665257032364365615358498445424490057167438098131092041084458222959566109215964576989315766529782345942098247632087825795000711283859893270824486192068116424870196531079086964797677517640575929912883859262381339522234864508551250437841817780175496144318044725970825461779371821769864516978584487628402497667907079403218040667510737818555782372337360716447409068353513816037805846172676580361910621039302723778137618882724658683663327135864210376250333717326315548508255929167758009059085706579371367564049550919702747137209869753634520416039198559389075532489594074635996250545922832943955478409901357244352715985201387189878358226382942736829160579184072498941125192588102222505831537043913110196700741621714099770522217521702527207746666650587838805898510616746774703958521499610041871421313093718228819337443786789157463623066029141722434645082380195908597454164905453999860816793616175218251539353472329796824481214269793779506844494769681640933472337691909237600352860986947318885468747297197394913405732053424644968017527464272614133397502241289776805459293692881458468906505083865785342997046079464992695785201271863587166821593977984187430653304853302164111268056800701632319178663737336142993896160081551507573871401833379003083509929285564165170705340260136410547388146598885280632690859926580008115528164278745146235274639968964127509653328996951057990455135075497491939751947412567508923321136937523943845013777057645737191665042951712849900073943459909897818131329434848059998383349864583441589052213488754630568597109096930132569830017949856888546600427324529570511427258129995453813265080684813132092862088358849435026326766431743491393268217933818564159477368488124835189069751422129154871432549369047115851260999048470895082553813312200283656052815586278118768315197672703910750820169574228551526448740834339942713693336987918462591525814279377880393245666393608565528801695324694468141139190505555746976594898817240938569438502243093804924387988405760651620598222924207579011764565881700973233436972989906937612529428288300261815654927328429727234033623175535223703011182517046344740184753034761968793050130235076972223429011690237831650197702953336416323757458470973905983157181558840827005122278099455007582699056979417811786506465168240184513056199315411644331572325504310364140697523238879587890714597512186351383739441025145271350218522435619093910297538806110725601283146808457828710408099571421220641905353236735515406834667559104639367963798831338006937329550606479832141281389862015284545817067136447724431237494638582373245458360436759628292407627209911510556637986997913220924142357348143283043450761355929073862392783828643940217348144431519525818037057910323261082301105760921148310236185728726113002587943269968855720297277651501145706706991063384710429937760009369993800992134139204600955973924681446404152580314250812745635083578743383915572222021600973163742779736599016738642673193146639911789299670521110839442224199145616843064055063314297167015710619956896143136469612433425372723013917903932233500092389599134481212985093290769644777036696049311060704280060265057432668168573234895826281034943301008489442042762498749112535407670893337048271228492302031780981689442157177857545519337676330850566343541424888441644662347496440607590897307799397913481441246662518029317434461965325961914893138348676543725241072419346115085269015447978315611981116325308908050981887508724128800739929996583692457127548096253311028631761087025943499896787939634964251884290824129424533597677714669592100286841491403636106865486226517007424929980312973136776113659914275499805489254334962268222491775284353348313712702352565474846514413854861791452974623810932307625852399651154493727630894514851167163371460994313340827636480226544053528009476924782215183696551401295490769936286887270991136202350328267425068026413455006289704273213084669217105745987484881111938804635680093624722524698825319218734570378234710565501640073599556754190098569636975235336314466301170993446144317836844100850886781850145840583685301413819074310825928023280488760324776242200622824384739176207355690947021959933099301601792261660014886251283274750844636767183792971391098274816504328180963749353437386667942238249742982981412675977413048375873340181149785095831556057823269880376938036151212872828868475534230799574914670106551596222561336410109171640278608503197094074161695005779770776174276786561879390237273135099392497635362793586924035448836012088135504107630946510592597097717229076294043036226331514476599518111952130473867311141232059620520745893080630333900222978259505617438126544210010281446453826657816517571283166571112673732559273245511639477327321476030790052686401670357463051035520016828456251612969548669426257806288751316540757033254059372492154879316253901444156163282240100088678324540253125570829729660811600898225674741712591893202549600657014867772007964031702224129163053018662845430285760640685958443904456119412065985683828092153805324274773222792333567888621154313215934290060003126639650510243333795637733645353825025118254031038446698576566800915075155726875051462656524729735769687296119266427973000888761474663012253961992904691467816351153390753894413882239751522710403300650290983730474661569389547584908771173657668501614565124518135411428593197484219763453331040024409564707620762941559411591451821032011398223750762688101487428617090638420121466896781213673714442410231265559822677330691878823913441638962810352480365829445556373749399380044872839384843372280844434533121190307078848003797945224270579487787856230506863430226433295647534838432527893739081746392609588550932280996635754665364352588516326677613616121166744310292594256590643796673214711186857135169538149443380180927635274471908509978799652245331106044751170298845949033713753079950974051644317930343943025362082509747636995536642789530968240569140666169874151396214928035086582630062875937208618505615465832563219954706867486789573606016302356847060699309202740520202515361525527231776865662705074342200327428386793131092101333275211816605908286917754855003192299440885633314529193289122714388823785981866701513591608909560162516401275563882466844032791085558779991875291635770575208099172377018692610135957470348403833351100244987836554153868466678796658798053901201215543325761160106872246655662503048679410161537942515690558412287853142721417120625777838395897962371750576541555861127608362273522810608308255667249367653606920006486676530438494367588271926112211155983482087191408047320311645608340136171613549427606482290522513037121047445369888446054527101832569044063259867103868863406461399750393481219844723712014363203395458693852532450236500250121382113500479630612716571672497961794308714117900841180301839671309780076747431129342275577511028087695378493236891713211321041083434880275999812463424598043873912721037695403497265179520640475685710465545741728788358864734053078822453516829717824097933766831115727344480634296020298839203119412906248719860160362682518866357555501491865588831230087782002554639764369639827797561143041574833056085131925606202261774670372813861571035780337300641612095310385503165254551644322532434867539087571050084447537388008098741691368831264488178019566398132505371859732569367646695647235198220890057939752927213155135482073682070607735238638266980444908895857628763906205516191668313013177342777914656754523372054934585793668494519841322102844949790397522811410090556167456832183731470666176228103590640761485085488670444422092384085297231177144822692435688530148722696952243432883180966934059959250047276690956469567395669895520559117277030253877279180022161478798026095419640899395609571004864375134306157145255273051781425259408149260914949793765193347643158469339611283097782187716923275833459821865424083266573578379578177787261844155850353893980495824428972063781065239399321752703628910772864975442358761597221978902115990827351222327182641561728072812515417278236722082512178008871872383137830642790172075109708012966915041594462585271113713845051712991291635699227446219081210193639629471891482090844745321750890760691711153440523873411563786140095897135419485713444795578109411021232990092932857691159703260840803078627601173495764200986496462841191565867540121116042843033586844904676881136803220170589017271393737313675349926323741883948699440815962357877180097051552459901603566647859470481959324179441270241674598956701890096918848221522849004335037025465473588442531776161941640338788704042579706362276187929957988642527732516202514344753227984380425335488584395188642683928174026855949038802167267233554411172300910292961110198359349403223128833623918251984749212972521122960248027178590480720343647510403622981246541621987276054771002379573772594810924979674243689979073845771427855896563568853869639638224654555578862173151329803825521001127536443618175966358101743336898451199047440991250739864324077397974514748540065262939198460450570780231776704141728965373711777474919265895404193871000704467419411392960590904626816792669658657739359775873027465728839600282256156150958810434286792120780536760817514815875385992986615150497627420419259252377949606225316003974574955042329276399314201220618257167840548222725693646008971054671245066206105628395710468746946560399084847881711940364791434261043877190722629512107745953865900371618143644664902600539969887135281635666009776499313098719110900370110355946497512444375867334800196822559790444616220851386251675755354330186094366005574975348057238217455971024973636001234042047544886650879955625310529141255843852690614815414321673811417412446881200981853004553033675906075409735265635397371183728122370956110137329181095345994257272585927370826343698531416662214345246359980513821719131257918799869651463092329552923367082602510047313097422822211666120277332642453980673897772496545263120960967806766833298475789332892828854230078349114388940525673361312043701683596938829805079243397512201276689127783149159451051864907432757744297413499959530731652754405788048939073027007726157926019666718710760569023640643064412296638448142183139832803528270014149054468930984362397877072522272142636769811662268887994894879155506954887156360881226955259890378938747000024291198354194265088008593628096212187678102452409806702824289566411841297677779653349923531364712183126047026149393700322784076944137595439276576851999791761309888106789765814163374427147642795673115476945834474890158041237967291739165146469440509402111216387292587026826084393579033091983846876948965922402320653110285389419357712673744063647723011092685371802546978123974514487460456558506781371086368231518692899088504100446845707092270733281860339452974037647471495758243385823411272129974049061917321127933056292143629980266310606746825236143336642669491214158549239564395274612946835372658600400842158872223487306401955712272381682823039778402041796523282831646281941131207956528189855908814909916418786307666435071150813385463618222570536515673013579541078017677052594196654373482185055261410677571746222342233661134412474435657624680615194904623276580443381941251129299970304068723694249902790852979233419752611349177299430567779431183421531848745386923663284336006349047680257592422177661026690929672796559699139057228244365136791763738024147819855611827889672679311787753849562529304926150239774141768945153475457978439946597976534289538751362414287716955856496460999267532700456004400147486542914336109605416231399272368710705183313490909143379354045760904109223372232986046637104706159870729252347848269802989237998951367986848070374141484916816567495613903591982413699707582136424489759655106305010549568955473722781652954760429884907138017951653695114352449174354389431159667264108902191837838236492309245618753990784339513057877006150499736479878061961479532055197983694213543625673355183928663301796576295964467584403732575676934640319136174924852859797196308181386706866928307314884242942138820251217672259270530322179368203833796054871672351116007668640269272924778634782647001926564176012738313887418269149708585923521115979323348627702566276544672494033803156205766033416869992891412903533431484452185391315922144961290914049561564382355295238206792580991453594198518116066534145720720589464108926822989673477427392137384128304754911380261660224080601069583604814825103311613582552993370053389351387679708592377991664655270131811266883087849171269000181006840712271367533954850478877150739806153714506525786976628189237519220227391968201493698831541895529136469640604559090579699807961136336352072322361023706444570579482864226137350744499957120883046505701994362124317131671104330471840786823884218877414703313095040605146966919550123221341264264049183412039733197827513188377035397749543205625929785601610243170248447783549623132410450539418275658932785650454089175905630023511680546948663686277899057199274287781012980324571032470997319566688986943234636835479202158713567353314032007989175872691477244813563004095371763409195870908253527836389356525193349640084916312172762293345931481972576782001507739483324781228095089144662598225510452466863468098459195817136646596162963870332808789878376989372799035578644564135843013104737410698335617427205959629790621085959737696101406206022186485847319873363800852959882507659316890485657093075573267930256385761847513541505072242104273735548817108442886727372634326128652461251260685049609642651259385609885965578031563011244706704384274231980315139494671013257988404782720999649731926647242965358543234186962983781480615303247388586600873086990555972986365634186356887244020196173150927446418630164542785309325237536461748232761279869062151087294925833353610459338162276870723244101914072915730584509871699340190627621758171149771003472189968758028670850708256769243703907000954562817534298989110279676726541579723838667903637250616017424604273927383066509212140918027531858992184879962955400344652963560634763705293659059336426963298548668289170341395663667134288603672637427084188927139189720209196977890871629568770273776931297362668932428776534887608545907535340002243005904553047189245042694636462866020222139735933961754190520093170476180230123589790558798345860697564108537094104513334747331205866511787356513770948581208649952590520293347449586750458878947876695133057099231177395289574676201412804018524920065842735618643578256888193987812130299369466738599052346567961393501139168017556534288751797105582863705772788412142857910190850143802335958030457245163635691052920865538826477812180182563241491830425941023546363929515321144378666521641397201657054302681204403765882273295408894097078912483609432342270048090075929144891415527003761817078973970782089170266653375352175014360951627573099921959107249641349545636684445933857265928102259719860783111686125611332286967745004850438203774506870536081318730588721956123055695851913682724229384858544384487582818400652888052545460357721205917546589740372475601086216293927935608260798093671519546084422393267080421322398933274202763976204683394637483670193301961675137265600399926767222541619342374660150916195155362378560319287545992940137230767547217322538959409527563813166111923616718180788714357766885135660773768144761561131531688675011288798195340577824949629932577729093624579781309356113161707908338409344101785991676318326036253606929104731390118771871798747767699796690871730478418987294507219960179284764307800933764582636114304244859116486768384726402261113527832372061130094840643005292633347015689906810106926496343177695894670133376821526130688858634332940133647510879507995717866871069250085137133119681282142092614204216089454156081206434960778350254541486877834873603934367671953672953610270734558221715709951071425681806052816561323317329737474133035974827083979729360765448827992473468103082134970890830762471881951818177237136482846032492233331707841025220635475951167008938280818275458968996051941764111635963109766243673778215063451650761095679243766275989568827508883572855202219247752178560545158971168192628099744906495477764195114008745486708898012703129738260687059818340180481386549504399325630068012227661038364765796528835744908527761305063361294041236826908174215967956708882163852816767906415594558399080807446647189680175730033504391536184815457575840568281515247925238116800759686815409240346220352230046250293274445581238658157420353799460416830636595018183907478253663063714446551990961815895972230965826089155043615026836234714939719004911866278891290950504747903529358475277057987073866298802941139074862880544532090789650508067981364298181885146901781903178246757488372762056196059019869283299559065848940844226793698601084849600346246049941076550436736069973095115400615872974376592328814817620469014705042638391120431838080788282020008457403677609403054676214161614110758714945834584683847313767049777245885524279099398353198464416902178743162896536011610187253436131723992485321741408360875434357760929842572202360642514954925901980884270479701275348537425367817541057561275628768547397897331547387865288577228005740149716896486440020664943590992249025025276545559201303203944436907528268060471630817236161053813647334597785399582700392406345482139696769272830495208500657905012832618985369520553172230622183603998378428385073750535599845654679665539197302628992833488072178520902294827022226922970876475758965563662276016879556289858281183068848847146851668031750050165318036656947479954457345043027121514218193200927281158811453603341867620000863070336903559876104531030499037366750822979743124098039912185698195956400403749364709505008519142388630451891353832674571416836172871222652764066017587361590495209602974777924025147107707406432360320778050700823744530334167073060017644343643110264991912152969666754345139039584708825198296144969307284090685303391479783311360949003947295412165371094712335312647920240668280120594021374063873372635054949955097102725673333746868517331310653751542327660520481744504120080800689427231872165182587817179773491321228464920641039613730655827677825893506585467967887995590500198693570759791014253636720071811263324200609838802948997847430082629112040991890517045153890171273667835745490332019522688930777671824926732816457372666533121917443315466408927371707296405311378431518183482187154053397354223753642689070987900001014830168524760364346057067991996996720062718757486323118397929033072391559686880632774758373033770830681760848033486853647341475816511057469255082525707230844715712015990887134970531389629240612877999979129759770436800704374154138903336811190904490268705669075107980981933610520041583888551601783962547621996925779946166581578012135740843068845728383955349151175217408878486781303206673099504105269022039721429754389539250316582470029344693102409208142949339924689165315931429713936165794815874191862634724983774258473160005624004246472021024052347988340740241731751246303467311142583298965161806267163914047126768045307952097188844369815676884341149369166454876885776384232839942019071899063131562332137850597948293051052773682947927183232560079034103247648101817927732818020236941920213601345229553844911778822019049737796717922264712676870743725746958130214329492941540100440901617806544130216510932198168969750272274844617475272415587101634165417285975343954236057507187372879496795043583679428487003788561526851730655138986873338574365165024050602417760994222943274963012577964688795889235467681732728670516029483685223260509495595038972883632491168408742165510491275771179845191775475126663801240992088820859003062163408282992596298896851285133756437188873053713371103831175669436908581311493402204430577012780706802873346338672630561308909300506590694579746563077296362409216700355932692290575955357785735030092422181273522340865427847072881284810171576331779103863093926406147354911837512450301112012418128699806937665164388294669981639038692857670236898215528361648124981357043365516669837854372811474016481520905520912554805454715975692280821937776711150722082300352277870644710347682297428837191951702944873884392886552352285938621764063560058033340961731244888285350147325400348597384789162606378859945736286285484361274284569537637185150996751494804381679370607400517925000042802426648856413411070239395456409313918870229336688962539738067465033784087612229147816912085931306981703312640728419492802709104162345541872536108361622692791122258289464648148587526466842935334059327023427936271656899334718368466426711585269275274217275551165198752551860742276709247623516700398094496514118521982544191695005822176876175530094886344136180763184451425687871378082530295317196569495188213480411787552937984923929991484699783607356801101110529490153007994308949268056158647305886949871694518890248432522206969734358023291101248394153781911507789944441628867793766524566567365309908350892168746669353251506099855549257237596212591281613342609736100926201745406995035049726042880559045569890261829108079245643916523060840311413978264317199755890350601986018603403289029904358017064397979414413949092076127795771961871790268983651892420869827082578305742143349516344071014981590705407106170269383289609933367457051622681672403581019359533619614230666761808941124980200714655746089401762043686909961759395787904545700435600621470467318712543309827691979399031809622579979198386086439365060029491335658424251815412769812684519799595152116002639109388489901146550677427197815278623007694391691122121173241986947645616815387539365735699893092653494808231644350802250698917347552654249139882808573203778305624061102944975885812205434493453706532315273768945729394093067100619078642461923142347473690997977445671491603790268880845105933100487171896926965622949847149517622292616967546362832605913329679904453898672542622803183489110757221999589559410720155962982318025883969997085400593725581046863117515308507401240756909663458375836938335821226066063714526007980525831362608060973131808685808077356378961105685526765532837455118516411439299520385738851024790240790552348676070103266566671754807932186690656388344616748300702456054407351301955784596094536894552575621349095655218977293844190378736745469171329535515157933427284630983441616007807306240377338512594438440261270775886202309619577155407993624885538669566739065029083508668697593063920345274823644873682409019762557308338404344749443817669729284890887437650235938102130308494489711594912182010546294313600754929157181802022589998217602447712536622549422486352942053349046052598049840751645764216233742558828457117698056076817025117282834715974813688984668054521084272637633791154619392572533914751371607882946251299980446380214058837371591645189634764055534915373081856963835071643867763968372361043968280652515995073663740343097442951964704976489948769956125338762940840792317690725876226914945351619185122716821813050805433002513779362171699902112627935794329628445666859204789820300278802858380103065115742435779299206365774481746041194397711318345089677669025025776200146657944675137008857143142061958675863600523308439860968914857787306724639255337892602089126985306432497922494543802232263378486163228803022450626076142133127191587048518784122668809613356848281857496388554261760350158936796247534496506143316804358737921728715275203292515930581640084572496340300434746378688912119497497667919718511822252916688247489991094766612275564357455480984150133973762329919516406657182597956996401470059950545801383702092039276744498171391721234831624263671737069407231608998644728019443750621840427376722731565476723904979963272272768407581193187298441833595454313634908591188661953898295565706513894563194076453568834607983638467335607285992883671047038423218034946990806916895427537804373010714749423460026110438835501037347893735915085494046116188453795888553240769527101913193274988763516833056383880638122027989067304805405312036883470520293358499869473392556791292669876842439149419120500018129683143505997973342202039907131794671902413069038106776855735654651826895801375715518977812979646213535802248243509198932992929109278067777873637387433088881633380979470981669895452531576772486197754497850158253832959167080391020514255278118658183061710944430082112618682568891116452027577034566726082748633185479871400967760211842741146218547999048053394066848810386462338497428684781375131556155091375550257450257741076643660375641891308769153747630594744481093604809295924279895899113538620257553545711083194389928177768827466222258228836568793501674189901083612416078805651144531305886412337118818030127752574640155939968771036562789917383779272530831762133288063068410482690185261465077145408196092576137705576665525672933936705339921577055607505996023318212469535292678247339278118902759166951167600094707894201331227210456553380634690317389756531198591448212778740746069359276330749761738172912695570503799039549134028038544286267942607049791328995970319540523050705043612592901548305957229719271579713023963429801085469242111996380952400405444768342388314440940765956178365708775494699024368715993403357664059751474739392564707826705633038379495554710752687659745708468776775453231664351981313570145450893908822883287079276825989561764842414763462744092246384491683483111566448273931451796987568764248904878403674971999841521049991420549692347893096697075344657621867511167857545755694175000602558461220431908705048186441692620255058832666027065058162287671267980270665745147885642027681823752565618411424921946273040733710278910993718382903093766842739369861695824909598440947140409039818085013199273524510853408961212307805863616575424692120145505955281740147473522815111320884595480242508700769973714138395347677838908053089201864705881262588132474800356639368450267470350363420754652933457378011328904819285460885506990216025267407738339314618075045962934951846934127719534362559565557334777789697527197145618932025778348272353148186344281851122485850520866547108376440703598189589317578224016183737868707003884375340597102045622426727540596297989940789622672180208592259263321070827197468362874272282642523048265662305021165897860889557536344311165399900416974937538387158541289152734282982872330896112565000307670497182812019730541854957258901789073180512495177741122082430265231493323538177664453861194892138656971068667111788977621705462415760799263067456363834725847258207629295533205070503532338629979410318760208154160168214780742717442237267452553002669080946690502740279140634757980737326249229593982125337729387136714088371140160475787556570058502306069309880121205194420661739531793191694543705043713247159214675722891520295777680199826065250441672297115594160988046104710902760372093223867708129394812139330436228959468834010306713796710052375508906813027375644029682595567547072203989767315731178436640541707305125877838747275104598626062166220047050033440540930917834409194741345865722175521094788282898513417568737345552738207182903520881745226112100419740011962545035617442408800564001906729153383403119759920712667926446154982235108215084898351370436306221455143834794758708736066864170133030273333434665863993125987531077152101178200505210756621662027073805474744153940130633803483938942222491994360941776132344833709593542064750247264082262981431158657454834238349738300567774505712873941118855708668030834105191479471010887683205832418661987993078895056843572526750224692742061723277894192715568035102126289489615739769186044075387071567861863216968225827971160605289731265571937862164378816169601522850421605684036920901310638403726816782690915457348795799852645090498514284018330630709691770471929159160745988589581621020895942122327222129958023416166383334408970048860608933408653066560205768882619553219354983166735567115565968904090048255116916558348203667115309267934309629163243681729607168784844829005623359029268796777052387340451295347265377084292020898223816758558100012552842294750256169312223595793957056617017910087036859539830617782052892104025017986483968955595258895988293507099844339686527707843560160234194891882170869613173675036260178637095038244445273539703417633718167427105313543458096344236762706853052138087297713635362955272974240191488791845757774755836372958737359872575744836795837787935379883992688654503068372514546022230058287644384038480764993305740465363239327527962900968313026768412822089329088673584299279065754055760589596174894341822623439799218341488517601496590161926388432364226727235367713603608357080277551927730142615684947740748637974418525077575408437675679820052463725553638101869833326828413949010053122936914766385873107763295450443986600132660031511277808728228767937297254330978785700123772466981111156992555363218811928847573772722085465992687766752069539330501146900905935342027661669152284514816840159819406384293864652725585916784415689268267495859108167477240281222211862796556671963294811543374963516031389352763012087697786373105507775706920893729235113977110828401037442306993477261303791649060426587321153689980235605312950155981159897754670121561027454517122505951503147111012526940238739179896392830399187448902756471858372683455828889500270184847700015324529627719495872071535481624514097662265033212389850252176991889121889508475697490156018430620338359405957690038698515544605736989217208281121741427034268460580779453485763076014978865501739751741159778825702235758823053319830786160916852502428143838231481119316519023119353616848776302303387102359762551456296780555231956765493375541774759116542039503687579751363335695992377690113114205972635463294185169896550698144097255499547040179799274291616793986915784582027102588934269748207127233677681112141355285943541711913954764043427877272177249781378234676574688121810433304855982332733197160215865110019598207531420922179712697943959274540146725297490817642019822878705953946890665178775961770863638461369224338528836288009804011840583825280526409594747913524556509441474121768383990272665159649029211922021328889281751972124101147065974956898858230511585533475151420146668039978221665373416141097302132176137302938826312243325368157569768457665782863758282932218481223217277984168743580761577790001955863171698708685171323539416516308705297374205032026089194422630497188414438509464181695086571405689047408795170876006688875451394659690286645881231333994803966098586169710582507419823875911745761492256952595432204455419494610427287387245185587084291046564420214414321187908557135695066568566671642913757721779100913591212394030567588999095748044277084321613278469628664840510485814848937279769929214150118712256622453105823110549808282710278040625003537207104221145639262971506983972324518632743968723959467175364010810324948407404444894484945564803596105704391063039815856753703832885231830238726032329805604447170856429317052171445840414869741162029964522446712581890535879002615709017811546287659850570682968809214696366778433204080000890903656520987288047781630609881736807238277840152804441568995041766629894293024068654087090008699609032307790494733966937864554941052290658818349164437807969458711481032751162679639731332534000460505183181706201545131445077733530587548636852892688088985454306227622334888653866057737359083812432270688351048922877968108741809332021367995393585930146380129027426039739357871725764936267658204601522528304965370604990673193908305092593236412850232716363166943851156709340111486310128135780869608869969687672693121056991583646164408664117642632828061442973333934757913132565381391120427332001636609506218550009186994709584646745279582552886132488041796852933996881214936070646062687515872623823311914363698110455553392995152615487527118687870380588615382112297641471458695662227217927108102661584038962204564402947838608922182484941592858679593937418129344670309726249887885276212564927557892492431921062811294214926671226293496723212851458329031158682996887492241529686011805531120641469963994524002112991098327652171959710335825847291328441628732403636318216431525909644685915157332922294811938136701965271565769197695804661212478913433555806138995247674003465187821777051394222113889827194528442219971480911224631775948327284864904116163307637991532957586690291045393468734390265390735679140901891018508142664880142510640410403047044269671179195006774515952207045863155043375784326079735867342141482259884758961045872942373504970594113029411931426849877469462747406235851806088306068027137321608267844490523773848501247735261842226108125658051614328409290253091405531403397950397095869409850773535408969943070637271973971887956989653231738978344489091028311759991604472962577710778055119637085309964377747745590693552745998971532770702549003462415414393782327133896827502204942668794066057377156660973577546335176158386301113026190820146335955239444260821405200565144434115683494719158209247512248434285571131003393248104837335972068182416314799607989003277681534479037528488023336811353997224616944747946123656377445894162935459821368078086760300569830520198521939235416056441450124055570429304959084334734799627930410443176142442993110209218820578142928328551183210858833721672121436788504522393409726041753854032824853176338121129259029629547290883524105794990518548300333349036003521981852056151822387787742395578836974068304428022722279767930586322463140559755043053103458540666400416569731374761935155749065349331762919813023166107127825137888058871739447000459835890728271726519449092893496409506016075034319829938317874755421528811388460471717572139966610797766471280850904440649250013499891122324383089315465543915422370180659398768884591845397015914314765982791381788464038554703648135765126441743288256171225977980186584322138744896664151956311390037330223095367568796281269455905568038225714290408852093122243369285361941258659725863428427959408939235197872715954443793986764119768801754064245208992222623707172763661449963058514756874268408645790180540565873568368625630258370790393215384081752082269875021271574068767831680940447839099460284786213711811356219317152767004616288168792099342113346384715133791208224596201013523315867363240762244053538797077234520875170730386069438400049775001400655704453565774209066502536211121602254790719234201259773270357532926342983837644636169761663332492721488335248661544750418321784856441960663826617277000269255838312037890820016724189488358722833016346266738434885370532445238293623223195313770491891232366656466071191563936540156155066044603850846657329441783290935373475460688304699266941531128065743586161078930073062200034676450590433937453005056011507567688274309846245554859055121878000139379063149494757143365755188041033218710125902711350281701236203073473163966283410796275167194897644042926354946281744360232752383950968403403386845513953726106252308681214023764251281825990336731738509218298250732595605563105876426293269120186842806536529531185338788831136968409837377766713167784847757534725938038109841184130247815104561282966247267325908506866460863891390952389334707824357162570045888404052787557193721439270408870701202783126903567970712319062167662602663172929513891439578208098606302982886300341304669808933983871203906485070163554662583788587273145751592843482010437949163881224059883597092677787823981365635909418941650766537901139994594786388644548384831420137260652220095631392176087656892747914261149829968475407821243607550736760361962889781543392903502066781045200370199420953510287251622657114222965496986002943603128396309458154858529586053277439164252011771285050633606968164351029984208204762508743963635427786509713440584709498033249700311659999945968100676129702773304488885116179354146336559400061368598527956085669470179784588681213698744253809984487003866613723909163235317159262536123523577404740930574752193408585289191236746153652271705225258555134916393951056453656808615563078395292921671447741287418048025124422984720139572146560062829126841704516182555438512839142538791898711493290830471845423467530850689913946444564448510086233203981695898820951876991224362447871978106810210367604446934742281356994380035976236025514909431705632861963876529284505931621293920299327085499063591874284398077775941611287903231863883051522878190027732910480284149444605750880426997616636122956848497113836707435373382632396542553408988281953873884379611046251575295474161777152354483040881763138762925042552233879765681937915952557491868426674420259817591797261615670489764147789613698454196036685626317522190883077745092420057503201745266792744572795895795388721508376404961778491050990120795806930600054912081393099039181529194810989265895263959557340811891233151514305637954329748507361046612800539566283421049028397379050819598406175024332319280726947446770139808096111976583690795836134539355882652738590343541233833186610728962130588598508716536217818641025519792299094387897731230806551286731736374602055937558968653561800924662241203730073298393307497401511460269676763569983430412866466865364640693148336397483257900280227072772719056176284563552523437880063358397843946822246113882607931765513478770535226977669947154866202294711366730072481037315056719556168249518436734899721704608745740185148929423451671068946972201912168829377148303817176871288915941197505978093273832365633859725658362444101539968856863795158366008120305854602681966127282010679130076707604857870314640316199057068562991973009686880707384634205517730476262120438244566453476631794065009647190137275336966516469681845178152878062664688426442919459432781633578856817210241977677413329390561018810159252692045546514485945991241752935022453811379938819373590279794724086982413186645093674856459961420575620639228828191824540711426156769149220245187028400563638360097544379498670304179417218985093768048692469390871441463838818272489641273473846566219724309697738308700223905998358454315928402226079574587017293261793066799922032095533643973308892362367317257187846896908660682159036501879915852678287605154802857746072303791053217574358248318218240123122758424747266806607491591722481725721322509120040849500758564129128352002084178700571197930943197008080506476918683303329190043968518579111539334492831690664376273522369752423936335131512370446279969889568345809726089765748088004606798212075426027419179351374893616486612485323387693428228382990945885777309325718388806980942916399196222218152288247655844751700840140698016760991633128992164727131008134022965364617296864724303423781491010718482694133399658540160755195940397088617228099692487564693781156998064195134469826299336733742751166198741418351795241651904002482885225122825815418248375370554263754898560767855141129476821444419718673410035173145319731145550190458667918173495251680202085898537949565603992498716004900869866027062314217535844340188486252934519429985995619707471359568989623077569658595149576521153193079991483869974763453307813938607770788052560075282036087103490704868859745372143966361810277201809995132288625385766163505481437663484269501467658184392796833396119547744064323549958080998603613259981440169770467894025869683209288293483369380033687612260404391182716574233189910672571564862261757881735103902071137441808877273084238152683393550463881831285784496931780859281800762278188393965209865050937758693511683702393756600991269586714306962816247949934829719230524246983051075952364121682320254171889948329577122004070411415416987347694028331601181976065808077805473757164592646221520105875729726664362158479886556072432588842850141368121232141562897988525961694501962211150181241614687429554881462450998272960707721580293546521436476807546771243988443849170931529562027079451526241530917793682491332978048548233125058245524646399625193443037067200200599538035907428820575549461959208648034360026019837984156890095917264846484302230428791852041592665982788763018828002807443886770392867685578594294055033568691530515366727738934865785187840106902697897336832088248727117329587063022559316256577887012088169203057715926312213181540410152327999108409069865302169661059376632992098178482999471118522631553815544262235466760509796987967205519538197416952599227452871205618862629351770326390389794080326385530947474440783408333112870512970747867746449119296224413239099165620828652517166108309740018540081122034189168918309826477007751782971630081748800905814617948775355501541616232684856719123491427184398983592847924510170804247696701465819410156160181046420914675375257915110974986327045111494711240719718327004646963543566426159822439324356567812081460067367527358957273922051129859438469016988038377102933070066434252682083451855447516947877513082729999175209170214350470549493768638860618389527093165015888458668778546155377482994460208940906971454244839279667801629559267435548520851780534304315124868432710709212932373268784820613866198076378483278987405820518259431380900770360128125351855210007570968926485972446364393710695693984275141451181494111446142823842987698794455376999607093788805636039384486030647310968375144319678488646537563186060946941709436190921611973284221919751190092857320488083489885551320679069098424780872852060849277701505342922634433037359660067771325719680222629963944429054674149912993128669593219951933817698164502800300102003900846442711959286358861403537124900297235359851435270013160349483674655268294613652410766937659051274190822637240614099833165669056447612356670110832244768159476345695906163875335084832993738637225042405699671491344013364136334678558578757460315080805474222869583636347160473535570192055042233564398294217163392970106112317023125365004805430460485360852964555191206213977749692914891105084068394573825383585406814644927322254334044856543380572154348414542407400365744158573515692815019947261254307591759182961900497433421744989680979065409546121913962433350200719647987529386670558286051952560032289848863444929005902083875109505337085843261161736656935925250137498719700140172418328480153908086339752230746555212324663269919670980821127457317174970075704131167227960799837110427857255341885186481592741982871771457932171842717694495577658980692097030791637302459524863723729509153762485927397991163965241239328073138971747358479044493640652853373744350172371497011883419982598361037570559208933036582220991510860310934463967929019428852626185380126404983695576882782248425415472547539131508758869296188824952481447215556200762234991072817035157641584419574371207268726339125815445577949734196333300452901401506641085997069602525474041461996562126264109351204891497149590321581619453389285134431159669612410196580970568848597971585988871429182976445909419808887500391255984428084113610330740897407123289227927273922070409836188955287291369590573954987470516039919126615933135330140063674731509277880886602418866143477387823528530923267282895459454974558111345041849165411242874961536445943744385706724830799437054127056077685495041815003673457403541471281184260497339321956962016499917679146418972102255316137631052111943656456328260673989489200750632034958674160151016569307155599086760489186345827026884501699574124441998546479952510843223157890158664648922219431382205306102309375988705614194006700620412577270926000654559171513873427181846447497756965070218000599104049045965677529034654948013990067716313298286673885342601211077380217279769401189583212318231375257521541784590992563852017955275804433157621134162341773683355481988539807725722553060386396822540829241347748319885216636492248929137130801926133903550799420759717043389988249532175297693874439320968554102478047310059205909969092001173055763834593947461137742403129927909906836670822544217591534995350764578808971125532399869222463104503151485070803914193746079217351350762289546101152685623423388575124318325607244180051274755917197994094779074499882220132159834919599408251851749441406686383316205302369044864241687608974708182401430468160468718499319229068692403357550044448622973732118285105691918899460457636966360202403302687537553912372622874320261207989966266901633033177631802377734632591821081011630845803049014298496052089909572309961871688544025880857292949460713846161036190945197204149676776701105413948454011454595898642635919539088966207553945656458125986460817950203977794049434212007722251963697596272630972446862924468850499426982557212709661632552364199543911446264620640602881308092022790643448034737158556761343960295679281853040286870570862309433004021391653368783079760691485792868108278040698366320730972762877826583217456474101825079845580700233535453502943105642114751595129204379363631588773965215336996434138862264275287459479834065032942958969086522119953267027726509622435769167382744956406179001515637771792497683258145395566127276185649012563748676749692218211037321681135670676818741312236340686103032279104484782756347236187278959502628751874227181226502910678975360873911138591337932578985909533069736792939376785905286406082471299173504149188606693175664079149276347750491617772296993302751179734078310505917512186061423024330628741814397098129272117342385955967325752433919031959249314766184807530877829838937541993956017129125548261029187661474339048904795591180957535241564014454458136873038246595280801463614650208744313055698283897088404875195419811471417025248536460672066648068981033049426666028642413315238877743312190398354125133985444771713117688712489690581313615081714008033093934863269184179078264083647760689367518157451318974253438857676744036236715709182237165729013698654224465584171100421760230445518478664781027170032938087290649728121308401796761659937886608402382605308404053684731831939249021838514051159777891565869628445205765692895276605626119452737450620460238432368828121231050330149198908742272778595358587808634696049574780403847501793150640099967889989156534484518363461120032425281098650821759673314055298761291312090468354855254301795631075334367932841635266850075876735476876461946153829654231633832547313102033916906453475417413754551382201963867807348358003341348140765556508438988470383598775759043964220250792561472154308925255001986779993132533877564232616348514203159546645486026448531137635159333836983229140476709671450486774283756174976333100296935155545165462874706868200651723754151018819142501716484804860524431985433793817861454353148798783058553939745066778452427999386965406557531660942902901942822379781429904292904968566434273104834991306631273547796918119447537558884507940277443748226367745977435070170374985518205154701340843916222996089926367479439316749293041103850019219972478993026579362322592296523562270612264513884046474236363694753993136175416662752637034572069004645585512482560319527899508423505759894767484431964209823624962010529309629411585389430643289468148619037799092772125305587298688105519639020563130950529163435315838204327925273329691153159321180591740596359596977844841080877053590885693367158270819333301588297246473957559836755792151109842231588464704530784830983435612602309767185909056219718844739609099234162599139188626639278870667821186700267883999320684893416220328338490909306668067030239206629253966014038337355781174403934369812513684625321331522357521283704999039628997610093663428912494069876843355565669851051348251782500211852892095654071755213190032126899827575057481806670926304453552366705753880325256016547606041137197798927070478067811911543174224191235946890570413159331723876044982168208355005123651172773546428754125105798285351822749832010387295227947209541843692272117463850921287204753830955184890731093516146150730232414113651497491106328902111715052024896121498779336052642269913838257043719119523481947818310403068954599745241992107406630686401098787798927768744288716712713616574091792720539938409115265983415035389288275527173705336016974403639107422823303459992461943473726354671937012293600864516647662430664339424924028744515456581344365065208010051324086644486376937799945096133750103625547499187806740833816971604207704428801661453553631421201454738635490817998957252543261801740644933290766905880885463661593988743213159657008266016316012384107829010231949054726649569970462685285259810749738088455318698096413568710162479370410408983246023542603507302124845523771524207173781646614868317639371242984202337152175684962296140320998208384972445797205246128593726877597800353656538013503875660701656707797138211953324070806757959728546630179571335205683170171877372152445507520635935788306418102749571146105342329789618589808255569527856396120329422878364447260408359844369893559545685746784434208408642422009394661354787026379375770366119947574140344493005227352750735260569750057787912710853532039591657253159641598427299264184908294100008966455726536621647451785751489230792781398636466183908163778191259150230471563693631159909959708585123901491713334350622943402833425508819594279074373888888022311792259833136954575559318072418660172634310180286195535767180808245191999577749023037352099870752511293137688981311991859416593993023475457616856200418848966787522072751768077654731566055170097387723458108676463158852739320792118191996363525586779861347939800390747268026122706635564158174014316394007826322249339787722426505967269295393633788660132154586977494032057274081677233192868802858781345019593952455244673402554615820577474303509396049193105882384017485425729302114081859919783431687037264271961971887228230419634931307788471334116107879699666876310434653797786367843406598294158606888032020323697293157436665635372010641578851233514567202677970502887469972618590341038887798388239894310984930753100851657892578952946220899333250576201567042321576851861735169003951311794307432456353682613866625520642650412592834827392715180065564080130267859229294531502086884754823195870431054831777623647399259080253660374710763669203585686707376858193116619781243643274475200190509006895208321724813629349164503136892189753238420831737693667789432234844165918493085027560917368996933890021838771904439121696300031669681089551319942465738028119283779323667053508756257870247119964055259466322465451779857334376557960842228684939930980118971835246798826053278901594933160182287991871665824309790014993682640234752491514239094861601412506679855004704642764829575177554739155579963495654777277763487598974357819053256745580156455246112563542903890556393345793933818177104830508556107459485021936982663599732593186549838081668829853043710508251189155172014375972425748265472889758853706516697656938843899627388783262418384777623493070594539037670340432221182745882640597998424619848612962869772292180682266334164490661506865191401063953842238481733259895046818726367075267264579176786424824534766350239543990264159362915852460115680934987690224375079029871456369858155344622293169708691422259574277154724132268001949997797191859706681859404393279817210489437960979996076875260326461249527212235990932748140413896950222024466353369558848358357657394891999032589322290257488670230737884983918292986203747929068403156310343119555755531079587549250552491017077975615201424563039896591436305853531708652883259197156476715075745560444036466907782701636187839693388032075102222765212753047305119341959577713430962635158095138364992559817803568934261442448213359821961366558807232891691613741784009321354892249963286015108255412205786230955564558292988068944892349189826531067436969596587756921397233281053803289163232545828208220205119991596731198415264394896106682222254991340547882803132974175636505647684323842277326546119717914637882576494064736948046369708011457121676459074087675059118029242850793267045960415876482728221823197752146193308006864192721120953542044697989670735577507675810014990552862379945912302467397969919540801829975661645419468894909213082506230659590540206996982596895198808050326258565599349349835894432910390223749119086860751031939777096567504824339408477853476935286061064088039662914251231684056706913279195817792082614136160296880421049023962251886817138800615298588925713359371632710015629139391278167179241582347085039461373891611744666861046960031030371950667002224104985992593969251692161776027247829271589045178330507197337531728899609979013743083287175750562331447423948898241289337273679595030669658097457512881633982140738845460634086233563367412419639069219058954971353574493864322610790457441169230618190477780397019309920443999526029613158986624310972378624756801812492482843595963158586279768580285665385559529962814850766824300138906422506041428914862467038268511893057223236346979327387051249850278073517515585791969172666312335451095907127726146618981104002701053283549243745463956469136052302786521352554690003851764851792261083667232795462964726650265178736522551674026852457241336210992549513607581535310283924335963534806448909929049638351675817626287515438275679007038181318538835110453751544482317033541526808543595258167140357543178800202266023381190389908741761623675927728693513372896372629746854678034164760939431234804767179389471483640882698983935367701650354055128109000658742804788039227599339480885341053816029429729415260854410145147780460741144061041356434836721406898734563612332309962319392221094939616023735998815128701547068318202157245204469654037953520376004998516186519876761029379854266648342902252594128780180632182133655106424325933986398357654547381446950328355735118283372165216009912748035015447706910852021389958791203632770455809608671463755818923097514978289847337103302388589616750093227529442013210329062842894969166932142467039160613493383328197471834373346808455933186434027062332766985483844466073647379280834344622707961694215320616156695974160318214196252040033874494475341157303823651610942344147603223955477959690400796636848509191191355446286832121577678120899385270238496611212927605504000681478546967269542603015056858668568990995768285859633303167389881632774332928050846679311407110204373962044634576096510828600719260289891974985006900872886757471254033704965207988201565790240512993318398030700501901570050498269330630687477182282159444450433393116031074362975138908147464239166805355583895702942169360138660247458878803867174344495599721540071645827737344564297521687786341316516878500779766661729769104560153819013901859313184517126188740346615109057368910347832525017738512218958591370527121669963072527385517649239776128547025945828369311920882353046945087937884211878156994588832818349024872602376534594022112531037612311608435324368014216873910877094809692381483667347356090337198324000817731228847006974565223429593688521792528782877361220462033127920430367446686514842102318817461095412079918083863976809342534896782591873612870187932450862758523363295030448881081899189561128465215296400973088859331957625705931729886580536268909868489415023775707504859053125359741403684548557021739280303172488271408696695148035917679975295048165566737571454427562975210731835879740481667724107405201496646005484149800802581087921086213397055572430915102129317648392895238491267128645294160394277672835882082428010594484812941780057570876634455195538384889083483517712487446029355447356708826294130904961012301730172777621640863420211393629071420774413148423736166107647841395239856625483167678304655926294071124535876014998326036062108346342396096115804845804791964215176149388140344011352034336637797588439604037072525373119209438036952031279694787713879097529376572168159962880485582987196990388696623077949366928943481954295436270449319596192187328190783665266621797678110449362349731318416149967833545877669491509072083754977691400917203848231796828687780402554379254131901136820899335060233209396868003342933501435276161526929717845397179074612634625544291431503169057102717333080083834596813523693803328890265002767578019919254158595825691496819683245074719275562929407909539883328273999705782029769935981420992151379261726171479950914043263901685251006493226312491886817449488185773954098339774251824502550782266390215270091338117264369125826610868940063151101084621074608595423095031233355565713329992443169028999275131246017473004340240769304821321865093769745530245488203455968128746927724370420218429741839866510012735424523020452973062214614652404598642368007937046403889398832212799769141019832100351987920674988412178338970098696459630372291169388033859055744543607694824121573561541658697155562833227990238866505812495214798086937492558709857282985957558050326547822781396377658386559308431498471524675187969296492557788064251013114351753998862799190169758651997256646806475465478049637459318665710443045484154632676238273261336273317778505035346894720560088842836428626223286066809944226893245959137193950221094709363118946826011853001970416198241241865818617800321298162161600970613082005368124408366744937751313092344012145382926724581978431107666593721805726992642469745415666367529576294557430675551913662418305755231110485355766428876569067056865855294799176491235471189215734563632902033785014308851263149217381893124333880804500036297323040061915060968275555003955563789631177430998856665643452026018557942870289527791603946387034776506981698949908252836154137929420562034484400328280224423766812029378258986108099053631122136616738874662477528721870004581603626887057669926589500643862975785175876662270059489304853831295376951043116415611606264835212752154879553762534294878360925132161951685276006312203878671590760463908261774398716736332595262774756903522989109230199663223635217299406750546358739875985160633604798074493340503508487914079674628441354309758819622931506740701242945654824037299710896904462179162158496431604022287405891390735400400292928324698871171654508311218472489009962428989815184809535185006577667731820268772543048862683435255446065570937198391538583463158996260212165615141353559101468090693150453115366630675092005631045195610662054775582000156848704239670739661215998809093850869606360895737240014406757695197612452263577215064091540293154965108905984684940868853974387146930542423978731497321608982613174283320327319040030036175446202105421365245663430771640221086664918352924194833230798746205445362644156533672108532193823690034886205555399217769176667947506635397496259395720053237969791123044533439546160323675738663976009618522469888538685576732582397451324894812266948103752976588736478527103673062386066513315712350536488725501039280935651960675374007312079446428259412832719555924206373789452185883743480076881683677092405500392895890950758703845155023790924345391218490781043073541978547800685364889168687633756825918866985470747136721480450710248314143038185475703306306567752242945001483834364270933757074295532142086300107482140498438451728904500541608811489505526803785835909477873855100200908845680381225336343622976449569443220806301292965809985185198595320810782394354105844469234486727585035571333187720736843953857397833415159229956408993398006032761787785285469338533273936302034774453460414831493999731639923340454863392281134524330646783735227773801910137836975361260193003204323002648941275190894358895796805724706303704579918009522627627978394126411465310682153949352448365232255238912995374095930213868944657654598876488287303140658628907667975095268976609504894715621057463197092015242451019238876840163020752476078734841226460538631616464176119524756331672174123205457408118962280395591015544120200706032635325518441806898127006469551994955245883325293790281646691028349587037944145786813742835421755844151865997078673258091326333063690404121637124666820479182976798882653406481221716815895326733486751570063429577308982692695557233639508266644681974234457162437616846787453670677824190637409206048081106128554349267622493679377166243550562163659746338634907701472093644497672448554148891805507655150177666302563077989203707623713547473645480049079556094340820552830085535955706461721767163053962056249475232422644338512078347713068865875137165906948953084281977327186623885229082334559774196334954325402308561877353441904645828618191321448105220227330189403259662349470985129842105857106999715411235150027414422889929013727342831243034377232834655930731716542720300998128761958752431808384336747892624583444458236550469342157558883340974609129585017205589044875638899965768530933741938659929316167667925844800411562206644173837893510813051666877391419303391930053244868070957312709340031072981672695536795118635643844802686854775214389661570960266166627538403508125170779987476124928904852426691619473857094265088536508198552595499060280435348822732005699787098274370561326987801471205549620351207891317292599245281472467364081531874808558176360342610032715234420186510286224007563116236677476013570132283113673516523371950948234599620159685591251407739546092323699649741527526831197896709202057955746803619688299845058131971863886929596576814996166768675243000346575031300054833143162610325346211513979873943439429162512149250397003376450429710775605194426023808798717116298250861315173768749232768780150232156335592247299814154593146851461104321289009645497738319262308109017818656976687356767893770354084184626468289367010637260562245545631619434268703320079924019448167542637931416285606641937276957095188028330811509153949801142399722313108839794350874391119996347502138123985980155297705087783198251527599323741311331341320231085204423484839720089172577345519776623292291532223743566960285262666272189998987189064035202445287407156236041936454690075453622112085371379046719411745360621981596518166206394715957071043138364214986360032871581596498778444587534952327278928095244934558941243804123318356544759551309578904846315658311812619018712635019553999535724510443280631992469239193867352124700310590808934824641182072353557441828226086116138781131183436745859287714615796113938493535281704063754924950564185843970881191721294402875685256767201577009665433155231419030324040017775637858973017996625014123499557431363323926256810927719316915183129452618868103586453554576439176248836619711452660723619895101018333132833736008933149512158958021277444065036656932619206669900052274581487587230291352972215125828152467726983326481809589367640365593659833722993296310494085120603058503115044258767709534790879156054116442343405104769034950867609080566713976039590619239550500756196573680236939093747047546734505880949942021577216867629443752103080353244054758418803106000784716487578862420107773898927983644025020883366291740619425553965242934560315956903828178816533459709096176943874452428068349688149582326769171493398082553122289482553910775543827309266282539291687126795825186800149041743721746260841032108029355704741604825812499864612996726651802556467429694049820280393335084704067994690438426944394393742543432227803261575884055372848743623008340129751095972992387094607780871307330828719399257686723542856142079965315525327493718083787022460219776918549428022051121213938019823038984548397263632050089843027998059731189866445588368069679839448145444166788630734794553255669327664601196609731149833668019523374728688150950807144493657852723315914769868806521616514859158961748141286017283137674595537263204359619451298584882224185740342195283205712470982063163761030466547995597137315622826416716173581135707746774156538557173146944433869332550905215908559793422482403102906660199665227298718545109128618981076537030217984359513412865639777509970346942597000184660042943728310536124249446706052423649506432180544781199894259744111345045418283328627158591569256189216640847316559963458081839600308038980266101500602912214128770347597038580452033144673672544011438474733597438969012069934631845963678849149871197413547949786659981057067253759969851144430093876148622277747650500017488729638315905861869467223828779666477463067734399694349582634025917437109060841883903628038579374157233152344875531031532337033561100957313218590153174692876653120118142335320234161156977307159035965682831991614908086989174794125174495191727358098177025472086664397753339036942236488766935721481634288971247510912075743975149338674070654861229726821152634959916108774787971916789057065188403941168957782427078393188750226041848362523433007758908145637259401422461529012438106978532405957696582987722630655625070521947613769471995049820031516886787747855103946568758042430862557827103427405701979386810911453478620115323549884817004045430659432979970509517607708759251398515510163735402187886638891425114706698090334793765013209626218778066578723140371696507231272223722014737077341558698272807679229897953231112122882234166837961747650866721192741788609758333340257486208804148999537110614352517890382508138728674983662575446445899487297943704418888277099603781841156490464733322088443353445304624144697515327508493787592402529461732212556242457351659399909298424392014752151015221653692957117084142368564484864016168247351688879039730232584389689773119794364727853284089197855942366109919227273189731643601160190472443134640816258712681549022728278317642787393551592163484883222617174015175273560278345884591145295279088820146554153931374208170442313608427324179133052534112974268126381087991184952118497882722873605917145566379649360964849403646759616823492255074256226974819277058800305003918799799227289215517163701982111485235264349276831600370323393419307755428684807182209014745773793893296214509792182730409139714075842670599579785696256752853690742312603468060367387767390772979110517111779940767821154112007803981414298123580993860824452100348729276545790832302244913740092686146583349595804164821514379418143831718859751914519351360325227009076144034734186081564718575967548911934996264635835740959085592181068042320121383532228614934860905953792285985716206691863893193180044659642202983744633252270617371298680356536615574629616839642933561896766293614052956087309028279561511529139494122531700801507058840239723451798858751648809373888139551906422864979012331574923981627904039016971100083266895576667429081215077718234488732793015712840338986249728529367728421089792929265657306639156675220642917789098368689119189038883842522474960704112129994422390408116324793239680315535254658839550743151938580347899425744305796923275853823744481471896922750987460042248243045842633741671262656885789710564318404473763448279550430815358030970968674979651439615446447525419892626488392736882683161334699675915152962842117418584382512741450875113412193835693183675049649999254889148763329340188388917404599669982613161887973280272410177213013499502894758918854638742413929823577666591488274235863140802564762339036334145704839630139068824335380414014926687474170474532097454712200438017466609528343524753485350290492266566278115018716586801453460062500744099978561276250026887537811519499807420567750011067240507547732857259079023922298860713605388216323394370141578602814261447363553068707474754369689976374599045767846051269713343750032044372348509343250602338492198306466718788258439391448046321663487852840736860346833881149143042624320668891074621349744258732242264542963428671436821102059516280444242006451726587529671351298413863182043122085865061168802567995678770265097990091647447938493770433593286483888244523250025146344590872227226865263055852138533086480289883749844303257586057509697835578212340839880080986902079112233640065608571315719711574898555379867499745992531864609411899935440108876930953933677633055586693108892993013666492314356443181745461904699681977950033813939298869130258855269920255890606577046122260797830594138274496903203634899432030840678852192152648359056544984583746657063295149554851763124924946599108262379535166223733770611304690057092197935469990631674188821285209233590118279119356462738951837781140285538945859662346365704684777453714039824255047705549439604421810931970391624208694144340025584847377144497776341636528427832659296587335467806127265844923684144130840803608780803962739868514443959195040952725861722326598584693008594749747469390832804624391155941341793055561968801833058866353245312074706465185539075612488191717264879179094149993831505671996052338831016809173584367132865619882555405609947546611998926752803965511101678856937855033674545406304823699933938390098069588577368479417313979572657803602205690789185233691215714806010358497520138138745935304093986998536597535623803138978298569718252570877623399289776630010525505912485198655640409008449199718382030571152892514460354382661153027468726553010046442375619291841855155364971479137689859252414483074835971099557250177183348892908990482688259713231099811578335332182787145226355085596060262659784980296883725703452914871296739831761166004150407384606381569337085099833516373271527362026780694131645010068744448744525310701463455464882480289904738772047074672529048043779205405931241840621484507410614048238066318143254959394083263878640291497102350566007421241821529698122983512703985567493485674943747018108303563948650820111233114939260140051021764543593886866150411418520463987133506349255447900565785288849434402968619463146692995111442115097691421094278007866600428456757980752554603075704333643751559155598476842916356875191507574429880436708313785038642875474941852122617818084469549681234609884271242433853192847276487193830488652425343458974378547949244937026804587369912372033285426102677359321036201048121268311398293136701767367251987015616622925524281005610630297253190704316340911681947582829895546880407324678794286115356726255788180795206581886602807403471137976670144837251989756775674385006893570545235539697659606286985258059963551091521211013911230845687602076493679133615940224137801089343198849828114189745460529371706637617241259026271066892616401826969607110063081251233037932094341145403081091942093423903326573009056662262403073963388396655353450280318460699970948866252059900237866007056325669847115047446721596647697323371161202675124805035891530725909992825446684930991655029126940781770786910866712322875217404017335892068305348114295627343666825401772045676745960993205193368121982007954548762172197366009197304800950675452421096231695175905262161661210112164988092353121249650947900853730363551922978906926813850765063285646398746649415567003154203979102097731922181617522728864672594522076065410384172739823529259412071176047526901269578093213837942397486691069708954967112710955801061128752339354112527454428226190414085254329331132253783185738199328564367820789609584222923597543554948850833521095337084275501151680719729958517938683739187921089148918671394780531714107718948866805102962753428072159317308974499786558316287456902884398881062602351273982804374032373091742412459500921041002679182811403722386158176626828923052161161525469470554652787628573457671120502321962044316173637818399423638344017569617411266101038432697420876820730554164833502601672633359862082101852211789923955256692398896306715271425817072799543176811711251978134072737635861256568259793437672591319164128140787122285807659215562406808586382389393231658763120178718743577788303086195565366234869816354679283401132125874078547008390515380324182844163105445673610028566711266577558612476944724293128429271038633583401786762791529956729740843908466405252835542722625826088159179913662517834033820272399529169270208688384445287187518872529575153472838021326304265893780111730965842772962453923489129052747095822165233275041127877347046541783331413920969871539088953347567837574338253495185830807233545999777845027928147622767720275095441782156370405455462657162768719812534332027319008524985128746601320760558806425253668626878939451100433656647676151256508914956999738105695558072338904142616000374891446471596929099596421383377947622367684180164765509212963463543768572968501278857496065662721558380324401821687855221811642658192966357076228292711986568839346520379041265793534054604488885762508685378085906557940177919300187849449032420129253646203105550690349055153295224691613627895398213886074484700022952075207889925720219661595587577591918044129460696236468168064367183340090945074057857424388063544632566604723905838489143681616256596162799790417580546287427446619571651859509204240791373134075623855027805741232159228390199543121485858194317948137796559444081035916757732083652505649216511936672243529029635154360701365935456500193869343171202900674602397826249427218203185351914282802662458392580471191128181354421681639519572546500000340465236807483756048495720984073416739925243695257613832040462633785434226624464068471883390563770881214833701381549357559900561357493956133162124925846414026560556434409062125589150775654933341735109888509031999061671563225559569423583286347671879971211671826670153701016318736526403125372708730368286668835273525554045311563043792697753555222587198726632888186763729787367269522974251898903015266108086924356379621818897101359559346701680821922077741003628501945348541889721487200230105660203341098187027772389807609911711056004926742373979762687012427428475958595051764783306694399648614975669131345979143090250343481412573211685154907330096574850913138756964866691301181730612602331699856596136068483280157745476792436967264961548577975225910943545936347525036758363902402326239711116225809949884177509078866045749560149154853034978688203762044798159462627934834903690616690807854954201392266444378706440999474395443968395595854477157949238843711076493130115050483250531547960510957214583140553219905296366257149958201247881399893325034446945760181848727645338600554734298347015058924106563341352040408738820522417277680798459185664635585383682325443021344891142838090015973637626482367169539594449862159829177439829056437350124668048331940546307603174655023605001295587808079850594459679771218280381336134239191636044723223067663078805073340059536540758768993547516614289250462810461609321024486803788061330880464341294653584713777527443639542592212268246863203534253135026347876927559779468825397808873736190792816318030876024162835037893014463335469133782180359055205183238019827141109216089831666796173505959021046214768219339696169477477173541424109406614355328271575777466890562446473150061445803489580018630454811983155387236991927092252805490386864496218640809889341735472339372299157464196760729679861443446012100487282980659518653185506839453593378128161284828485382459489586426582023122730238283622635258186476282412546949069684706458261190412761744193353948100128038134703365662796590598503798259794127010033086493647087674231226442889261610119046313967114848595304385482448017812348071191518803043111443597636614537157989565781395124160207793291528192460009933275953563934420115269096496967791288763900275081712049251339709646930898431185165047419762613526440124086650001344850595491767394256217415645204512763509882494489930086283052155496556579303685871079108613709145974148008464092426191667319747256436312833348347444344717106309858721039188426698570138820778612285329801227219199793317015928608279353886408341836503381892268560084331557741675860663262762829622832681297223229506008333209296538073655382568751678128157853975916312645736014101365288637390707794640533912794203009057016149405777054372949008781899254192705942669253254433770581871517126949453565444144127660609998684672963798130633539683390340188242501985243511022285555895511337155522872471314287592399139653693069903629417001466351949572637689781129516485919571340824704147420887984523659942190661260005032634183916760592124466880828446989881836122131076553588085848757156557892509943168958492714894667494136870783241331483298629302622321811891285592335357767240613290376655462560799940608874342598992920582470579534762396899953062143830969179430482829312271272463474485703732375448238148907365410776804308924455891561714121949116967540220960601123169635213236498550904042162438486122908109384015476265192057408733171795647728212403357281174270205971858166028992167487048247621026322966932423822313640007924389375754485037029345643129044045238313755875734536151856134502410181119052404267614908561761398402217148471091167400360032351160666563592045682062431740767835432733505412168178435126887473144573238792927025562057666638692329558262775361933513714826414417797847917467086871171546505611319614956419269389511538479650519309795741269562130008203049643769873154502551264471618304549969359143373823778553463832008967379008840726817577996076518625818189682613236017663369539430193464773173234361849031880394856669294115018045177376590614968886999551574688747325441055256338863063371564475389567602562127901969237581089409897643146434577614940290881132133441099716573164426546846921667032650485855745666604085210296276798836262001444748852295493641611142090640055822716360383430727810241153174008506530681814417753272080058488613652797271095525984402065219913470093944142012342463057501815953427304891441898052309293803781947197669311935499397434587963130682999538675978788282961549448322398198573773434843848771741381839831179282406508480297712273100074136324461127660952237250615888089888490950744415608049350157650186341342522071608684053778729580104732241180209536571285029771198351102556917831392193293249278880487112829901883228729973837504891283134581046188445596639089759877636162209663844239955192485485866624696736989438086832794570934564954291828238983251389616771116619692032006169577457369176744605645416490641859565619034291209783162046203725735900288470337397796942845660601202506790108155766827090059436230718655701544887634728920860219357113450855628259786186877148120192903394609772384636855314954467893449359455868617624615261401309905485763566206446163435048459014316739478249652244020263952302931320412860245028654708702171720114193988491535127993523758415597407075242327055850321260345653968041041031865222484640757815604034458878880993389210221721090229781215552607531215315782371496723000561628379949435369825460730999927068624542706164156852172283294961800457778745576977674243419933641972303953665825532782421179823977760243928391866131227745123061830449605871158143290383798487273857715939485032111632946362360058788769905519847269814826640200857397917867152916895975906806545248749943392587034768032604372657500531522396425005444387873170010106097255437168723122100622740808661262329731389099735233185880468411742602614648517647179277043162528701547922352600270306288153031931690384078618754738214594622455665189841639834847112247977433889777359188334270127971674499968194313273950267264837555366612858327455606074159201360679523429244015005605364128774410166656296451970476260241156417331175549213004699766258107247573245464830899767632780589441498159234775675979944308805677504442174953657228154535757987493444206220541966682113270923468653528882888961857499283985935847921186458446445749265409626727830260327872379654788503856911318874823167649178953340913890605982988290618799954653947259493838149042805091697913005274855300087802015298247910476064810620344302328854877345586960035236902364181385210752069300924422450174277924050656675196619912314836482433517035425825870362632310627946748199087665253434041712492984350335490425512093093356169002415734422880683969473946432976167316311645531096569643822476155299233617781187184059417022464399655017290772572148999561658427041328428846098890313994407328608395106582125263000328379460779404329465450269686337752505691823287688815886218126414986465990988622159668961642444381470972622199098542762393781374512349480735214606974627852623651657999687967612804904116239481086339528992239140109395984378060328791150588218564109858868744967007227609568974978749161769052079954490547487837208858718421011415322171641916222631659391470989008559785943402689604500961808391107566997221183254945922144578771826889758055141222714256011128449436262497335833144103183650395406321912357525115349002525033843909852109369424235383942725443704349530286628140084642012148248355989636422624312719402231473509005277062878979318175753547216716135983966043528953035827037718994510532396922384702327317606574952948218056363415004251142972227753169201095880562868474350641206328806934860282686789380832347786326883533078188780438912524965466155723349965342205209937273251449515538894715045135805183364012313017081545265339804693907648792765978381298467337748752007965029905681913018970438317277461497600225178560369830806189821150681893643822394183992203118427882058129630973082841989804651998720428848717960669132805080277783126763452805610223328675137335434623552397955144877510482038858711265451528282145091339001755311492397308171397638475007584456036450763494149840196819478600239127505548485876979993669208329635321542039784781144232534023013230938488330639136219862549403306002210421027110962089271464842806659649338844007759440540624230391962700905820894246130218536179260490848883250121543865349264342488186272017613525357721044552429644862249136715835497419362128080597130357657377844003172105729852363576529491913823308048160894764614176338604908214236308565101685463535321393183954466275874329458172780212846254554741722176111370388246496162774911527654971792016795204384333810414222851199281387459743058643336251405213035437971743488403014505285556561492822923471573069209266438919738607681094120133430746109423787526212433510779184054499791068992162746342174583839716275100986327657835727776287709464955252513309321800180873237638548797557724862940661551007266738822002298479802935203147632163096440599066113577529121087165722590522960527717501750101865258630892832279251591294297906975941631409228407263518293293322532086288910771872719868833838760273903196014855583874823283809884805119463167470964324376514987967484084133830638969504639232580289495305369658848726570999771518824038256227401450109528338771136566542310439257838697147229137139261606469095767519304237809621604536486506764002152495049739591264143549680883310430287998152648875664517151701109525364400057188758282921327721532235085161056803758403417408317287610855994484150870529345527798719527754917678443448673621040666180463203895411397205962549539002973168795536935486822418837697916373809018420900569822065760003802021570384571284790189809875229741801740577683905466175392084245355345977921048527881007678640290058889034978380127585773703697310827639178109554295471279922651289176716305609944838575312402206230902891082566857230678450591432763676619747181224849424891655485176493613447348425262453502339288187546703511053642026139408081778924247515880028913868266582421091791843906847750088292038515704292752598753241602317212134841299597431080712852974306931988809347346519122473295110506825977769895384638342654690011986404363188237684204009003430479479198746258252366007632714719786172169191898136240474993300544048188296618131823865615080525887770198028531311959651100303998520836643712779000029771722315359775338862621245105558713415687737802601421222401398298782357175399127293286406443760815981774066034131019930347531553227152915224236049366755282215677476568050078456657510269626112979995894151187284410002153956712360613573679635169064658008775533411709979179322895500118980409560671057970151355624038118010290929027533910851476412076745138161037337483642795923990575876274875653676108677227288832742940149041228140781782362680261089918881115522962223607048485062231512101680057845505875523605409104328068575551019034607072158327131384588301681820659875833809998325390214099461650539378640439398300790470591045505803889392711954302044175015452698925324666152565980740738856091129149436584258651349307033256959568087270323403193270084768045636113371268014186692054535482006803399913290285207285234736540641363663194622717614788071502761850654375498303855920661160665046606299296946327055621546999259769516096140348248082770052807683007948376436042691334862520666637152936951541785064866120001870967268426336085995447880807978495020341555738294737394295863213874600682183527631244419708830656658220448724068043237499898757717244320062885025605417228295945492195744434468451520842236794127954408075130074735723193480675207441637459297412758065206303941361426617847186681512187392058831317137317396280632766879271788870703159246502995228128825034314931105967361708094019112353118563829709442556827660847758765073297121035723860504028828724726094179177218980951263427008071273193733969641043309047605620823555389105140059685593792516179732181055815293549824144146763503578050691209561059546635829889619952836544154328941818592986541923534741647101080473412544701989415710457341880931966780692432299218617442726091397720478518058400877694045473275247930789538512615737544290500469522731096562078997837211824824516715099464158206406196022383149133612975189541827983712096473284611862223073915412532291971702537775445928738303015126723733060633759443403277077803488631588383860764507610931585728312661124407454654844856452661259514507049854995562356379701341845756081252722209681686330044175594753027960442595501626613877124822673386765484900097455236199585833956683634133513832091386969838998601243969519678191327837855011126244350140365458477316463629107375106728012604903966810008476930648427702491933040018816802697637123545285753298348465402609260744285519284002207765330242665033943576211114049858483800642576633611132648584753500692754559195326970520357378507498345617045350685026099878428711348550785773140806424432009288358491549079583113819272028091012057774709528817476654208826035952187168872215652499348717138856022796429416519182779844165352737452981915812590723703655087313201816982357598597957643963859047767644606066231310791366868823075464951046804729078401030786019593211005746590641475607393711287094550978135629365943795278209385480151245174497083675431784907356580767755125627363879599840194929606063956392730253240048405601027740627047500936190388715512737072586162208801587522024030967336154513384407506753591906426466515931672914704878803740896947539511267547194687778294889297219628790818997009712544405124946311251702130954994481673789597932590118328391517690740083341917196367890252668064730240523454859933515469543203475300115614527382537637961755453500528221564745424951471822769008444167490451013679921342134766916115149342754805488374396095118789743535819349455873794252062164993104776880040365991512364305289277792636330489034039548390295328047668869881057319308359527806751778819929891608633621337611921394326525258601439262989775993403411404680417972256711168672688574379982204537158372864008124448549602303613632465459083884696642507115495918846498570159835945916191011328460306089822530783105924343864695675390690625142123734328710655519408229793305223042008728002665431952514739008255098063244756105920940990087246076607491563007326927059998985699600238108990787982449660566917813515158653499639567823334568170327964435673515540190875734647768162986591731261850387190112147204532527569236567370839870218726586607004525664957533429154471247468615623578735159732416918341240084757911250933896928726882258733789965873816145218956005281843580858454111001985689934341961458094208603421252149466928485603793714195445978882191296099965522854135230064412270657203503799020297742512239174247659026944503529592942215824587084281682647524527230318366598000094688973110005813455570409648579300846982825581173925916061295045325664916999703399295523854698453647116624039843161307432894427545300457119913682910049107748495352139192882664089991708000540396654964625816705703084919356382468047903143697944213175680458592889046056431879752726976892061438815170292890334043209850993126366689784697120572690237418505127784991929470182119519650373748704827294681470216788239180206882094841060990269953078694151892897187859840113102098849799378183357156213763329351783763983464647344190881681933864713859590405655713748235913442302097783876434483764017342991402723105188434264443064280791925314673723718657006618976947980784921698043104229008587495324241881842709139243055922727784326637471547100969713327857713071393377633910813805674833358190584689128262158375882282911264676233686463969711751415260831163328780629993099186767219440786823032017254479486526081399631951772954000814749152003997087423996623342051501577556742064257863227495366886526281926602551443284778819836307539981062128042713561025318123825914146073269133387633510575863248211551700785222239518338326116919913423586502334133372700092626940006894165293051383551467268092390513603399910209502195727477562180951618739707028072633265785347288601733141592145132720280126763334396139113312488034905157474088603507165324843395384813875166594847245950647879954463412856977795945120404237224209476650248201316034622737522659159692021606136714279758383204550569707465778297190974484576202620858060605362880962883907609102953534525487578994976620143395970411819249434020672446636928278530219712316045259031566240683884918040092580705766473812553064463902201018756183960396027682937146324886293238760861714281663529884724257943173990485557227517607871853495306604980041116511133484874183059734828196197148639444845020094555301887761695558032994394136839080127751001518000565582882362054517574397413550130773170329293562188039980241269077535277611228608677501508014367916798229938091020553920382467319741538732561172619221659905006782817314146286474554346535077886980045608901605094528703939146313620232827281633089176035736336122476166754703860983158323446420626981846110739051616758244959160681381493516232501226490865956761612067365756221330248483610278004030161667406500464078019081159574213691243454254026123582558940232073927977118006446549090359979878003488762478251080703268462762631181247195511877634794787095856480119450766166680891926083778902566526763328165987286658798543576186974376546297531635437596872877308266214184475819700969964258765934558138044979770539281841570314422182246507035013798750713537180743989324514960480609760546014604289892881769319373686994743607344968480423314582873693091776236085702983777970836794538322819318196681920453674137489964194486929511373348115437460078137247853507082559004092558198896753260166305877607263668521152605697810494642383055087723328334311228512987313889988182962007186566595753566416326509401279311424120729217059195144489215422399732922878356194431747303848469497420422443836630288435563371608395020302542273247071735061008183714490025503808607565916250079269666960916950812050393717071611007026206203671986085116632093363800759714019556135107963106908767935070027846991080906821868164065954979898060213122502367129070919426875602009579369121253729013383149796633463718962522105861676470811027255987375832797938913438628149187497885030050470636378158647866840587374195006383119208472429344422265608213348800337008247316334078906639651771991165528231957046803776927298337113605087827803888546509853833306154236499120365412276178891795784964801275877783457573235393871148052729880666112447598324754349140617487248017628166353348812790462248922022867423131568894887156765081082244488692851569753238533763250714127981206433067355846175887297059823535669485277462491490969101953243295231336789050224295230760819574091749326845689244066282110564543092255331726280443298478914547618879642261993860494233674247428615614985669059868425863160373457130781203564056458391329837494912457800519669226832636296334077907491552437123316034704106106374701453106008889736555088502547696208581758222157799302070779563905190844320172200471063399567742954140613268479718672655734661833314272967208274458148246988855496546344426116985024245849735180336562969648912467283572564484638947772339284738166140700591904486276065671172034981240562683143075856492901288129728134829163713826230883976874666027410138691389422781533645994224284117207233782053921050577627850813426935327791654034686742415592374731083717655449057768405943665405193534595679660318338706850683654619963684619760732450796823141213947030520775277536037798245169839823991858815959745734221362225716956001042893629071086346406113659865134215529168237670980883861566968377534944265244094482197009437716612901705909618520236799035800909611314851202546069293061740554591086987940729289591801064628949939415073398599809432969702789051515666738700749619807891122319377085981751159007298410964362764489722814514544378167709242884983561537010174440877527425235119480213785199554544800943259604217023234159039084389331749331321119497736316580485546929667061002768880916481976242836266270991004812634650954087271691832161331809720737451589956147715144624130484353765062142855799639991818113344774833770911905076588857887255764253838393264025251230472962230471055156362492631620252921679998822346166576243899569248221631057167715421588221343209779462711778051533347280474970108400437445358705782112027358603293282613503548502773831015306747697812124501573916902568556010452818284751105272397216573753715340007695172803879093832171957905707695818597404500582873364439915815745483288378139870485622094726483718576536438793841015936770118886247542696526572728336724329474275614143513755542389667875900607578580524007210341271319873258308197585909567160240928446085119617401713588900533181100961339591914308388978004011597409149865949107305537860256222673032249005302370970856078374739878873267049820684324589585483955411657363679505592612204183784245075474629612126221582919488700487994016348643042742212630147258219463942866333074663299241855069257031188028806179199228300674066907307410083088132734984894329743481995859312149969427153028199038034900285913876974162372444520584081579088317946972047013631274481062620401227633574824751675135906531205671472319576125880256753915475762460785645554298725700827293895851643477850351826388686627403260414518503972897946781987037262031410097088761799362051664567868084232432544413271425381163652643685099608856383781533418103092254874733371708973371106867116326556703372532366534507947884062575174986691033816475224215684015203529548857293132071298171515413531307343139823825178826595188167430739732292408840116553397843700473781649205970448536926185118754954511962896784458691565018340900808591145169075520519565290643377360454870533269891218047586849205054600508437880603249256985614998012453335839507798921576195420121301043790967179982015626080530184896773525326709505916571576374256191639623384946568107806080952767077485728840408779106702234420713773347687339895497521115971676905844382132706486534574724813181218811999528684317982187228619199582631873625064245036211662123897205836586023816727320724173989858771470311068783787356623536088463593911076086887355636016377349749492837775850302497515969249362528416836864653852803179383485877613563162110163396598111836976906012615851442080503506674592012075788986556871780185396823850791112267739026972303004055001777628671044915019903134102972822876846587329777225656262841857715929232805731763156974389297210356133263991680193065662422415562439875511250224833884686941012271782777363125948176881388109181292528801237557581378028524164376574040481805039791627327290245250476587940845634099439977365612805488016359883492844518046901091934840200589830606243513585642232952844800879913280082913155375018485580146778559527644695119419723400006694032031317142634145048964214844729675927220163092267728976253123833565771251766027435702534867050146137237105649961277286339326263647800562528670246741390116070693538117969627650266008820337178391167967048902470084074743559400847874184332404011435718704302946024666607396494778545888471971503337184484292542068455787959254617363704015919057466077123333041261061460111887746932309759730201747224415038502082387872819708207786380596881989010746884771341990456417506094818350708209072370862665664236085579009814636776402787662470867300685215285780424497054993040952983478670019369300759547926872009334490204338227180443841952972656251849893952620477183663436645484622663528627768902088626634558567909998772943252871986831262759299197584568645094249865994315882831418813180411319744950605039892174625983285706779501083645813397286980004655456971230191118384694578402311429223277956540320230203979847956545242434027750157244407668202449004817785113961909508399537990272340992998606911435377049935606753908848689177233950820380708582031703542872802712528303683838653012814581175389476592076121583321416191955687374453777291910883525791063128723830830816060496223155478500490242968897875873287849973746315111140221321058841709959528335313463079324923881778832348025918738514365018478802311851688697495178123771100542909802651756554493961842744023073583822161823281611107628387441439314746510746929553543370304920723229966393806124296688278458831654965095176441598695220408134520128567666576274335602406750779782302197274665736279178210868154209486697570672167263611670864177980465624038260719194575592586938691102907474482538294330377642185827141350593295872940463724585957215610009249505013429619467072169527540373291094467462710041010120854382846316683164435170784928954311232922138794712439738041232069122235869802871829769420430742817958536153450818600862336157445355678737914529285896797145676851990284889269706357167841101992148343391610485161571029439794300718847864736680628583753992775285511219671009301413151645440583660058457442387918341869031440078042202944477545562337651834746431009337123083874604206847249318956530885482499696038853741523024680989705544711027659662285459696370281398713676525850249218095167922968494163925937090841004452610668169992225654419254813984965731299231451502732850037125710418969360461060485603939175385358908704521514862301349863414802492093961701681864576016381251150616641478865286359279923722445394599517863979988575986604528229632224637480738360597097383393270919365908945811095616782310088386843110892254257830043206718738712458886409249127144602538939243766734046040012960302936551069760286716542205837540705783026346829424363268232607476557300088864930808367991674623083087203287538652066459005629397599035390572881836770841488008499540254086840692042403529904234391211263823228129496576540446654838394504151252955745648514638657085502984366969552596803463874878386737290852326293538830290749098545130082673701232017662464158399447245108831898023494561385032232229939381661292409756764035314676222113328060448663866866432699427635598097385766040979577040918201762626105857529792734292910523222165000149577158025632933041131935864049327234973543803078014340448475300178131230700553354706327869374285415872539018494507276114636728098317998702184924449988343318504598591015136349960907568084572975740300684555128004166136053036855902237528545309999955487496069390470196428118426295983420444625822516611436277069313869173636513960234881078482674842608887058840208558916289152415747085612342248729743955478676113204966056574673880375128817314249245391335883742262383373899985452921857097037838156654728793271816177775622376651708323898828648845193991322583754914127698603546263804164792690436448509554887569296265073575731011400446913966815958374682840992586532440845173885220759057320586177688452996400773545370757724575574828052603668945053735158303357392044415679648627845310734809714877457815152524236662214737534642335574154846628502296816791724291672745112528318587474447534822262374905109457378109449823185175076112931352390291111326507377282781570677552032561958272409091111860897529845287610451097704576859193242134578537365152139046634281321264845953426384901420393672313381283387183492118604563365444307899439427360448364685459174964546207525529804958959865687861457592911838035645886626881402908365776849248021746258232109548714854209446814342344834834359504901095508326895734589926975579030890520944646801264127647688820773956025958511496009692470811190384779366506790742368019081044937629595580751843486175234742647492310210145863305818686274445245934825827600716274839376040191340745769304814781368142469972383268494457674234463365895615259106884706973493165962842760048884492401129020914572662694957390943592207675681225890647792455653793939637228563234255596717097367556429631643641591038627446285097895750127098066139034007771806812953623015242588088356974294456036976567060866129655409771777588287365134448048524796979934841038310142745629975836957035998160730128812373035563437175946257703357989930397934975245868863045176730435583071534373061426944993612666443054821632901762607603358212845080148023470111237084234437964729770179726850967357766006672295000408531786600666899149014234578865847810766708758417816145366293962738618656343185600822328665931754115386772988543907920477528858146158602222487385822190678046238782632731766760802369697429483568937745738966688772037959257086331184553572993759308975532116070171040719720170210945471841106796846276456060160282645389255651986875210394091968756955511541299282566486777778946060955074189661996986225919473007987711093517091209554544091660704565769768416108479184390982155832162947020235445605043807917380876280248247879377785568636515538853032334090025060693775460776469542674750205773420065321288018330658136500210664416138480280536615285204655720297687160386298757247450235741209166656719131817215589873752907549070410609759619780167699014008215111352652753524722846628794176659383787611397110856498479837119376859016947033470814214713861781235331445922870089012953654648783808472810826360389777035311217013175253291784199402885440170306775775869460540561089318026443960558356217200179777475091133556327717646756557002084118567678527605826091609720323555834295009252541573037715090692675403637431356562867717024242012024069264729236124810148955711956164058138970185426498336505947869586519281335001066954117718477936995341749235131392853926632887003041370840862215326155496213951395090804159719791134645502076656908600889639922823268333749134255320053067270229618716112502223660297830811255872541371972807979035720119110898181278535385979016377888532869774921477903215417270430317924704872051471165274553955616737658895874057071871865683400712915548764232847608404790590905057738632099410124218043809916913858271119835164105650474362427537506582736488211437144503914931000418151865950519616774676170731599194149566429902966131463886616344526000712452587116161969143445261345244725799138655662590611615539204900515110395461588494578671792873313496858214591411832213161645630926625219056367028592025246482746244095782576213432467959598299183964243049994890198643156562508757545413798734363028503033585507481327481113463453163164614500417789757802649534881165613434270104062292289212197876383986491807149620757672256729299315959263258173338254955175039237472865534223394275606303846570584753979138236557886253696078368496345828981088441617168569525199381991846373450316638482694100623030488066265554332430219988332099355305537987926538141557252568507925531479494101470377514696220160118457536534427074385275912260018909889414165479609356056172975179106599429322376471951915718284870466641017435962253891116562392589992711910052174678775109853476078067066568232571965239542930971726557676857954732325306681301298446745705215970770357977042720069796605010999118178698946197683381263892287208599819674265637716904279463199820597683568442646200042178407771792974215672196057375249952198196427632376993662188524187937575618986352090827847166664985403372148018591010922047638728848167555759203385092710130237375978241932432141655125600074965956699946541977208484386805995894132734523174347211602799608930369032156947749561045659794623840072664847969401764151083153071388468617269809201465443111030035409614537175536776413296701728307258346595970682340334237706999914149842967657888283218439337153537208970832305469606122500106697719702919516881646028534935996128684244259950374101020856633585610789512085123624010309830196196110375741070221204006266335523464113756295195000896466215241558801390353336591054205532819776572818507056037121547424712353244986955635955245848972459462709974481174548544715261693313587943610308696280617179085768449454222585855437047600440998437380889399613424284219526977441788511388138463745727865635408860841164784361744451083630113869440824738892248154421143778342135932845563313489490836969235357129376959926416810126976417246711246911542461046034705886655761337503532786032144381101457916311293626857541680735649684597270452615831036848585021882671636352820067408990633723555353224808881068029830930504020075282634924905644495700511483555447452022952831025243558208142067474756579859225966139329126534909683107459992810996401036512859466980644285534283361151827555556625880595374288251511622309419499643413015520234450394371214439430328364396275161225625945615579005499352982902389629558849168718271912674796252798136325950651301933016772197667360931368710948250763290650644775020799412668361238208856826111446428891611891192317143037026036736635023947349111736639583022613031453433077931413067697167201285894596805334634699523840695269491726083398667362792353464001677771265695504100432544775840959502271505943238450327216047738337778636828731832296632054499875190209737660842631549476006056638481225750084077913750414773523150774361892186805296866306743320074753998516738460069916899011485848173931544874492970769592476863046602724748980220151299072108079971340179945802344503263170409754570753310571643376908170524442086083873188037588401311585272016139427792165880955016622705833535715540875232869107054573833371256846037745428063418444562932525422058537472518230601593011592552172984935715808001947473161236975075316417537079782202972104416391709713509699533454605970273239936600094870767284675335565928855429936689340431318142442316981083362205907406851607600372135698396955131095578101892773037806260588411479485135257492944040894551851409489234509857874692099987811069700523516665953796468828841979380849006450934107553398370810190375244951414413944639542323482711026918173579247114756807919408516052787773264242325678877138731322121375715508084327820897455524208595038616363880529974906376128649030909989069017107488494442573179238151193872487355984400618107092818774412232908719621919350899350723332027247702570961609472971801590870250368138304213461172024677227756318649453450753217633206428455759464444978604365058279410584551889677785071538258068814960664578749404605729917251978873367627808252372139223217999139083338273706373074722810554222951384193580035137032534209278421306418096519057022357090980713685881150846188240936312504743999316058835973998468527934325817367816520096800230375055091310986326082889423669403277967746004887173894229893681237615618539778082369534038950457941994847947967163393919892161614097080347779839990778386642063367732824576893414827052592656489674096882392332838534014506525375120424733368612932123382462978352924130793844533076026500979585916988066975929901433390378107270828766865984464015644069569247433117896064152362590961966218918015042570521719429155933389280026888685749998281513565210168598257262082895062171402700570087713956950165213199149656254546937963925045238199352376358522949201513289740313058736911472443878780406338399230170808510448619266214245622676160782209633345636442291888509944429783930110872353562388769315782876709579980771449726815124249787094658961696908524181885607672749028529987956849569140562592866873682884449777577568564746408011369607249655239547837447419320873878762964911323793025348228828188968079896668707647038042901614107721175772392272485889806536436284654849150620826306973427958522443588034723879985237785718824287818597093094446392684218457594909774238340338179433366890054294161539705086731581486233001617307888542761998809305560230891897580517095877700322621310564786939265560642171989354652189578006861594933482146209822710170775864973387849286420373201887934962540472297255306704104426024153661839709789038429729323618628561307149039663539732771446062595081468796862688170160245815434346107680720864091993780977009044600159528039638199669658940105969144570566197804475841990988813526741505252209974863039352598223223039300468368664160924747408640355359322768095694988487186364918359530897006499950230801254412341930872230060250743666348749643398978130314814139561064910119173835043358809422572311181177355952764648661471873639962221492051094229372325814385941413215628686446964387425018682117170975322097323231432137181542711826311886474166104465396550729192772064271027534491407191944796038041081574125565250692688281390023976730646429443979329355651354023949148136376246291129800098997975499560118299117069098240367246002999843269854580724594463986915908527543049363416250009714463342356853905503515496354364773628600256828145476907608545698628549873216351792735070822176081046320003031667683510932000825071736795878981721969650942581226877457644117679835473503587005128546799716823760396996903092999040316878312808997782042161197102407494135758201104031613432768674998991410436269901041508673222534803667862746120292915313032889083789775192507508943297486783743426946272584300791923868777371123468074108820362568602131536468277051042088825258852425765177682617709664963700886201432327681991807451135348730335781367875589858491075571999698939996590530694566864372485584501059695415090758266859254235862656431495411082497732506104719039092262414207028251666267611893518525729956052434092515249260901351917904724254966826250059985712817487025656195198197122712680468757038123322457030529549533951504900008877136521560014991594183574453888361669515034963718486103679887514141948148093448577005880061853831279780082800742279230261652393860627959637969385679855144753519079304280460760427440144290701757413692687369209602613211272897638099103739118113253449699330274637615623570760022686834957484049148978107459212819282331790436112572948539650676760211551344264063388287370331967780858466344025380594414061480677965321552423285107014226213374775756412674281850864069297829473817462501427305097126743257249718863718798759713295607244126578542057024918515214465390897803388729728276348462775071687701556233193926296599605418236866290775644282990503765797492179626595453291962312745397759041615806502139565100506601116714017563719894073746737860802626669969535883967122539478117431392608148911075268316726071630461586569530417822634338306451887358350177155875110324607318850928246544590641851224120710147543663683852929088495051659725697282790039403027685210417445962988683357720237861221445250967258743165204589272928948798660176520586421174269005189968499620801458651252265976562709701965836986705771497259515958422513855098712668248106963968610690644038570665834917020930322927364299451983584153032620145794616881931577911889706373850537019858515135212778330483665897599086932132746032556260580410537954650767323568349051694884417932332059797293934639076598741306601572412139777942861968912792100122400629604811141186744170362569527153752931536299946307319664073359827955350644032665337133837546595175065259229786715710238107327161054058747229382554383519786952326419074874208841497429073913368163188222562394087509018881060513057988610934197421412213543698440990899853913639937061234249394020875687769284614692418133883802870261383349014820271143258025475702627367758147300703878093929782982782041385379827833488443515236080662959840627674949286507406549212485423118543778793216466002304396715534963784852189026544816783360841663400012489974713451172921282751432816940795391250050210561082443925701812180633978196022578745179736251979531210620027642861743106501267388259425897563768083176998470776149382202781286858574236057122326257507812300399751663137823693774691303027289008071773356071838817882191069240505677018319494304874973822174335520257576449595470341368637841058857873203622684712448234321411241239478076956399985291614264948416077955497853421201900649122903923581950545112432563452029775087041913236919590333319661450842699909704445997018156636844858642470203406970923484513154708160204910584891814850911246242088100407035996705463773990190283783498243213930956198199069988957269575229978277163502915401692486268437556523298824676363630735499222272197148644716465144357984594031725925902943800773443245106320977360664931372569432018167199814569101059561910431579862895864950680333518545950428575744162144147245072599034386257347909195542302871587552425333246723979749944431469587198296406300023998177976205263666403509286685280490667404765091889088714116124864799472810203907967054368911338144160591486014649657659976387392280173639535586027113758070282653572848669506325379693280695962113122462707387108191472305497340610679320938182276127305559722992872732152321388974874353919314708055882426297221218176260089793704624943061239541004920655961450880934468109110719129091211903502775436419325360645191952918233108838441207159004405351460229498761624349786322748319452470144768741250736780195108819921644896910369813576667890823240593144623964527556022222467553571871223545962262275229510234553806598258251658426616972245630091501711147600501478943599734922835899994062222147838208460602518737037033488178218679204033550403234900370592978565992153890317736229224171630069902930969159872717411269024793714631424772244000998865325140909652590432102169870682171411210680465237168517926532801396089819706305425466913887985593684303666537764626494856266146646458764392777066590550828253310487722125947404997442342669830580869989555163215671114045908210243008235359876757378989654889075731860822558094222358851408792777247028688709625289262146503040437718535724948740399397869292314794353370210971029750497591346604819192873107991763418189647054318331477871725683736768168473576838189721385891428394443531911487548451331660200273243622176190898220838018827453923342955638896062425811625359038855090807703936696619116752832393593868322827549234747263771261478236916481458139243733412853916742489023048632935413830205252935155003039908456619638765998191562404593128839885806732701724478430284544809809191327122920043784995195469718978315111080817548634184735793824030327356749362796452561344410591026464475738503083027643001161842216706613050190265574677969011501465202595986825120089526177979443385146785820273990840013188745115407401948621636214534893340551870428266668735522294040116966946421778833845915589612400635413753123698270555143156103647248271969345929263124265927041157106414797486561453771915852306699331386161551314430630431847464524806341791409340601300509045434678619123631788468515096654041040444661924585982030099395004974341013940942065404934195821514839301588933703007074696111672271263359678401714559860069500575069544465414219767262016688551674141529769849791414890675469044424972598117726547484853411875388135527680776745421042320887767447204011883651227872532488262463831103092560273283415813078393027319429496447530042926575606713306686732046093816534834487531757971010133334095217630401986846079952784999889791683528614449031916277213348669058729257682769306696426644224091007902507875084008128780459755575067070980739337802965305390238781727924830301552439742602768693408717207670183966684387497854664930289983967818016771955109442186106325630833771509525033691387961510346201699819115026249329374676182730893255655624715957717290249674795038818087723806164585820813942587446229976282913140566805286648780077603324289623374367635503664107579768149081518246499477919290184322357836571772486151160880995399646459533073298569668277845547810649224485614294165981301632324479495993215005281423282341078480009725121819939778325636720553759982149722929531774242011740169890246357141505224307728442061397737204060287547271937750483556038108548881118350802392115925992801170809709388539709001395637896956309681082921087485727260745326509784645721265409355434853341867106731303473077230042489641330767328863200375377145714272560613663658830773554426285658047195438320712165268939084023217378837334787147456109917298121946039847352315138128040804820403040017893841563079194835272147714444962257623508556713946139784868594179348572654732093756617832792290420433012187605226459030125839856289294386415748576905385849621262720099130939358413792073456139356137971174930464300575208177623627314112699701289158897469240730528786726777161968441308461656562868753621751785246213941132831691504848406091784115480436587496600144408233291836099174666387595999858086079321720271021009523703002525249637830566719094766018918027775674386220259411980879270465383417895022445099331052335209620138147913641583351634838389894397674961512085463356183777699609623976772624097211367723499797398470173939165125929957134054861851773158052297709253144347876909198189454473350767944656258204684991385402456071984291222783664785900842889628625119057963276803148700719653534693382906299696351616248926749575030910527271431375865409375887595195330140980806306390652309307480454730993260057185488860701217397893039480099644947689302388785936080497153949897736836504133405145783341374264620415804860461037772317543136779005661793877960749286275434240801027009042782425916833468216064767249235431416627487318991454125138875223123053056348571732006644892674318464727930499396358206043643484076109266453149964302503612280630525325535703659626855469820095104720687839706591244493277378852452472803362387064444877702221278481102815588393398149206333261099394643978079743659018858549052873611356358970602459001359506510935671197596347661399346782694450141940772512482194025883515589862307111723640955530300187551710699914142420746800486324119275901710555973096983646159972896496284022707987250351160081446288075730058227044818017763760252151340582429578283466041118621201630514753698445134579162424381816715385361591242108434448164808333567012094742792455963887338194459550514326296194305304717850211019015637315862336511863191063275532606611032249779304327256679400799727869668532694488633943220303206287444831222241863301209147256365650625365549934958560173029622968445976973487473893842711035351106754808173809608755907037920521194152188740987273055912844706766877391520044844129336740533792526061491920680935693093347029049584874367036866977189832772944504815423480376171678474842302672539461234579018000681195211038477188661377499387552177865370804683400890331158481839001364038051102464263296114138470763611882278701016641708412812955308198839295059539431414216019383443221460866348412030968318255500781979628047636705617461080008971140267147314519472704878252891545856387899700007117912590701620728805278256393643790702564115280944068906637531998698348380336252545322207858834694572581562173037234301696431153632604397558357820025319736080061498330757307228314338008197326300178764118618188292848805766930935104307903334708318189457566199991376528659072221164636963582899563065604024628454949707556659165611230754221219666084867773344897083350650107781068963791681624141975904046445886180250230856409309977171115193901819051536949581117324003686898684484571530953511276454058610691826188410105632136128148084613515610368779568316364887252314200712639140193641295876848495629023827877794420448413930569435352822938247124412847456858960827261868868134084243724296679148937596383120363144491837264809241179656772178037536615226387978120426605636834561141562583685573346761916452515430354328447236096612665050612322719895893260940112226128453448190658718317508705777874016032717895073205936512188609133212919950616228350414173160157446979442315481181153601083460357086112084337455867816121604665066393377176907622422025373708221964144588048905970904462553736394543388682596007571181926696648247403552579718952284134546570242722859865648939519062898511581669778211277744078883384885584922743642599885663206974209368851998464050379787187437124245329939066518860592506427416784717078330991114924910054436079893263764665630488984133328300561797666508478129664474572449412403909239711954840437909789029293305188145130141262916391191048704560981199794716162190106528752802935217138252063337870916804252925367071690213424571513892768892099138947363861858665719943078466335218409080545657664417952742403643468207791368320672779728428088194519725689673517909566269969482598192125924798985054939221940089226385514901609865172257724190188810741564570350676195982761911613748016904564213214253176502858732354419590451094137612665984131246247512151649995464476635583594070205505517581420510012275507488234347562233678471632676731491916756531915007205176831497066199994801018497322935257251204477187321359630139430551592483662178566522084317692122400204361147318395937850292279764584461978445027693194333407166202639765129814748541477824324176827667482887449401282202005200752836337981345298514736475240339160266482406180782340592022994014063970252767685262688853804057652727685182978446559646891759487251745630699804534020663848342983399115439315688593650361196097005712253836407958565114514067168985068035090583679894706479294706013987141977930278763750312543023452184796820735101293871390108052360446354257132639684543785609551002862711523144850036909447133639790131584886997177581444022067406879291154106705992229723491356509537527819934320031625616698238961139285206228608020249204169424679996207185293511582787793355038708047247895273568469687503723838693611697721417560592347099327596753063857648333629490687949314976356634279869266391282931834099078965910073719229992741227448207014793910578667729771563511482999598906116081498909351860919826680514841733572238818417167966942175758115935086675637486250375185618078348458253316456988882843875632330074494389724022087524306564226545170623556587977736960131788067303245446386386957230674759855844087639130250135716142496195347768706017382299867460195487125570956511716659831165783367429970645612055495755913084391339159659598631994762611665354665016073398078571258343710152195774315161873914070006690769039470837505652342116433528089045813816097897139767192450454730305305447380877993925423595286088744862055901757706483381470168387729803592210892228545786262608142650762913409340262478365185071652838178286215060858351286981751375060543978967212582981624886920805139307615326596986989307135343948550785985089683345587304913420678112789512889021533198931320684697862295207184747535886376248250712814879571489140723359930520821445886565223210195914024007330197437105455344201147730732365875389920137002457057940051789215350879975958723294673939246348302063707715417026751869451830923118321917004950187334012098797552580689577449476371520497730765418940921739554988000608368313849948754654506693460928897281204212298767461250875364246560716779052351916610547810169043732237431089219093877922727524345856887411279126276610098526640335017705298930893897281156239959220912747196158622596935195654386737614502189885559239818607850187622053658267953097866195873112394910690521444602291702900176111625125670328383920062349359197669659593149329879863925963877886469489592864924421237614122816379211426562745719351152733059967787561076889694595716396883324763050575764152087315551254363435778558669689233836829591135357989805892222698256950090995413127289899867765316667926151254533812509532086714489996601126850401074482487390981198853827714517842824569247806362310088835888460492213068591730686590280204957434280873465392899697049713397710716125155467599046333823118806570051706137173835008252336092054670254276221060829818409745830315032738552471712487352975642162738764788414651707620804532180499694707693268402717415794735709182685390616312405015069005372952160027262972453782185886948571994823311754925143526756727712244968287719122769039964537263304287476036831736232408870723311400142081823820253626121146531764990553654781020380539004088446446719292261098053330837305409140505173794668357307881069879654014756924311332228121122799490820067695535609768088623767419959729258963437480494222764529652248912794776675424183328636616462325340940594076373501151729764041179202593676065294219767784812894377651268271105274335595223657681917124241459285548179142009270244947482840157020803360823615101922614141886883340949743893439711935596660133896912416238015438526733109676021434615877153034488825907009432404889647798846269968551719230746336882749482138725978282696803150667189424424954537159191313604976881048473561337185872350849793327510019359555062031732059150112397232271985749063905730688842732814482671147961091978733495544521846013195628314105829808644812543169696179848746626423336746328263289377041569147356336775235450650706762728679269193383853137522680132628146351091352781004619744585129472962442384148795630317928274537211609778208081339779410962375849534065778720190395701160762734135218470003262103166244605144489452607833150372039343167174340128265684410638975149027694978337500111973097503293692852001997903557535622645162953511055824550118295345012395339323124676983224901341372380155704601177337878484865304161715679537585628170308132818103574265765069737897327365813601021882134381039099636092693469259524352421500126538849246157177443485861974573915665414869003207436971798664882449635802612102801349637363656151816071303785605638861740243831796268669122392541160283052975188440268481666846896836618354007929367911714512051426504893897317595884177455290853511579928583124550848143364085398551097593429440691797545396696536637462106998899010799133890947364717324574415146753992267312886376184529218433701395410796614695027680229030766454831266209186785360782395681757547222654507996234391693244221669517749408455719912202340821292695331952669201801642288383125768496530022699624350111425758425764206371827636501867992069827777236894225073397784010139664544418894119534774394351277608020599075365984031512404599969979689396804925776635486033555776922659394131260401112535672103673723867921238197896825071644698133182678695952011280203552132500935129463360169840133423173322860212400892266199706716328396595778365214665810731258305530866610671512595903033140935749320427807938797632832939946148465298076636622505869589550116841439582865862268618040031743445678589266731950138009763387767266404685371999987822253037159822215288915349656151286103776526054633380655208927896860855363791610194750341110717812247905034864126395091911772379213431677135203694194419276816563250159836475754264452404618558635764115701665771197093357421272068021220944395854076476871259837417244219939405650540616020908817355656933761299201957130714696449098970934208736087996001565390615840840869505954505514409715765644619484808264759415220746911173190659012001356995475542985827403598929611594138289738318765049292273601123380460054985704555927698910021984378139892673133056915608680283961167348548715363236140058545911152977482279801353972568645283542139322620054154250313490861381169959679204599090010861945856226000110084142587357363559795578602214608778487147611288923752404783679325143351066151517699607894583498909336241879223311649574286309545864184904091550377353821003274506366390591829556465521831685876686995766121526841624057583227233220186988799855222696785912016926692081351675494160475167558098633805315365226911980293357956589518703268792863031275893778588934151133280752538034365533507547246738577493603258351236478690837060928463276347075276286905653619281883887847878636237555606070642351069997343745662133030162028012412694988166030294834875206453292781738062715502698347526430317071596774068045744919755074998174956900494280868503940469460923066126456610868989500409083228593637233682840090449979011414553165477991151282932085176232085072346977720886691124257444323986420846743960852889708613388235772232823529158553706543061217929089879771172013719214027915119487842795085639959898944435457689423622153319194672089772537301410052220918381505195361883455187446504792103593536135221337917481035810062521910364537043268367727202659697791264983886996850324788015583934454859257464122322892728757273762417190687143799521167592146046303886373012822369547898486218865824377859998280018338602607630495140370188168463137371961948399137630265969389821137178780017169548381170032369785294226051992312352391450376701513348598692479608682173340148904903550414445685861167123051520637971738927645753715384963840315345366351249746801542086561231251634497444390150029435590185541679332518434783930080932952009379012188194021791359612259152065640614153291780160054327071098229266976477856895763405728383920801579245460273917247017741678326011104521034712582554633019339022109693112441687760842901765246199683992394857918561244848053631571559190978020461669080659637206749270555065423076581549641509536262372341275603296121348575833893804470438661039831353726671117602918533733915415120262210247302023303549301236280460517422984259677704857241499026172766768203302615740350812780287327114420517582555985203972620899778707683832510677349461363345283712132546996355001405337780457826940112260935364047786673029830895424604882842664488979049448162546774780828004847282566787069985475592077145982029811912268403491163409487342836048799660069765938440442975412064678447174205375587719502292734038909282677972064196126506151155627609581114079039714403614833183405572348840212067189268676582971386645602828446166333519135818753965583014849337231843230649357757691256122054343759372043330111935536242463762420956932734402046667773767773659418082848541864455013461287192940853109265522904835584861025173524525473370109684864693740266110708715487088230476802627494024008799872202199487605449818868256072509600485062434710901688051075392384438603889758238257628304844439321616187886421664664796467908021611304594659745784244388162128489131664635833447651773705024077291111641928019554803058466752168073243481729816325530034542548209719043877128589223547480203314059849915116547738101358634731572566227694126657996315265150720192993964337782279470477477979582049908652526026494219372222232392115625787249780316918460116005774535714810079663141027563848468731826715966207430503214131391262558785148085273496044657428423090296763997506014874929397021667364446466551332037145188758247119243237109437264211980853505804613460167810321780274443271635472743549149681783756972760360969711981440560336019386701066195400056329802398677374161067804278589650132254961701646905225159270242071948829859013820647828897245907113988873860066696335780787402073055831754399753778608402308334849897251465636929856328462192222241678424565022996503010894022891277593535461596742758515304531196169904220844813275758585834146475868950875342714776813172334347568022938674832004491386391284370269623536058011950838844029351242411221853527669042524818179657316665599911688632842789532224070408927986017330420983097945364191179462801316684355367415368578477005742600785836958406303962195190660195380308171785252061082503067415288251179709405106261737874536509835003675409369607873316419156475665458172065322759976750622389009047307424345386173892645401045910501565064105418007295973011025594077700970941518595646427638994926157382134990655296824573487087184306189545232129910359341156203153064281092765095489749938446410207508481208455341053650061553684670030397903852782376712617680953313627634759701963311098574183719355836045174682371494978535150613344808192243756218299359323404762485930438220442759061365701055431260271983773760083874773233094844778811308614335238585228643473133940650506014668140408774563518774752601349906529343589317086299112422077659014898599057626578584620723310687603292907204377559811849150069911179753110874982600270273097678201913774087244320768864496278033585507064487023934765689972620055918060409440522627079269083206410717985620074502164765959126632947437811149413242714325988282138260608602310557784005682732942269083232294395851298896779291065285780667924339229658223342095124328006756803502031117323676674675688985041189261921351657699135197517991641098739150741212676599329396380180164314360066231061132863726196597933578984254740138911408083238053642979058210173307395292526597573254936573769216453442871216912370812526771680249959940224303743623627868181258496731576822499418840766663043557936639606298452979201633249245962727742412286425417644779500779333916747401668865378430475155397378731589664490106538169208821935868285056583481221286684499743131010798373356130451191031498809042422376164219228643120747269265820263912277565948588339633984874094150728982986596784795557431893645821942829182369755013207767825635362327091578684340942615629747767248151846601056561083408234296876018498771667067469497323792812882718859776574006524381861552397967535910300830332698529334595202499916945189647249094474195349229282403024925221744265599633909175886443920474334170218531478086486391869966451324585160847487598059628097578338483969491186632026160450133090353089800611034260955290200631908717023571081497966787599329034722758829005956501130409209672370078727003558750666297163501948074309198474905026473140997585116114497976026259619313220182259495142144301688786847948163043022388849936771973775128396713204055453909913926696786450461474972536703914574866000400080468672046319406276784846966182060139235685560532484813087201280332974007623056350216260450889473139539463475394537717148895657154023941497693061879491266414429412090395736895829962869144147348019149409792429236707327038890316479478167505512300736453529501705899437487035592515692816122603108574812826085872576130767677652087883258542764187324659804298336985983188031268787146572944489052641100265623249717517305302239990649167233345545030302878197763492194310727955500230364769277324009280614385699573910237515766717508476775569226646554817348453720954202858786599917219476253681502716551921701473912393225071840496859799325416671361957830668755446982970856712616952956787003968061150877801744504456003592176828514655505303508775575862199134368923782587921761662085307634399638327147015689195957611028577945614270540290202137132075308260209583620565366804034205841546270216241610693282235971008207269911465404605241229943422494633138270169540053123601980120130888420090767215220726644429187333798216910244749217761555219093567113529122263742141934891507000898253788795982877828847101811281092174062859723024862543883198243456484501021356906606721403470456350359614438135187242205342337230715370625380707869278312172750122140714425565601051578377003015277440907288147697469322572244453133203259810985717158150260663296913212701530700986902260976912526854271124636866193401710195208211133348259280411532271412730928554267174259628195968264705951628858829482893240485109578503754940696402437459589587736900959939803564770650498824354268041196746150257283260525267308130413894853556990077361427715687932243399562280573586771686502016159158905858566095539774533284514611799826583590451967769188190808217302826945659314385943235865458159340089902097614297632070959291988764930984337419397953674467531098194388002263405658207129228997060877455673021892646417482840703831942720869807814034684581279346027574416493098465845809395068170000934165704925715449420577876428474073076292293672042395887248589078451638611155710331283658255049515405919396176201723568246128628556560209324482211779573263956590141223255525934401379038749254957784717349604383248117310812811779728282894742732417967873593020619617831801307379255239855614522299442909810772524122782723986950058502946788963826144019850466345960954948795276957292190997230789765360550519781939352692213780951211129003468392415923802580891169321093620154636542700946627299117467166248776424521657369171442447453615986565633904268746222073480788902538274316497756784655453955983545930247142452853530890271384678105879757182735993920932188200823217399956811804544161517021273605017668211217933886484541867207728846836758597479467061864879449317227452371605527415349802070033882725852588148553309222720944166451886825250415935995357599608334965063847019675880813403161148231604316012149938250394684286614179138939277274601419839295944289067207302798587079367722583599771466471642101867396239500423588206123531344907006004519462215388462139364101450515479500203696657933283144153651754437730375352406273288764947935761955493261396950748924161916968743027427578059055417624084409682960606639249152627541819037160165543418439617570426481887774538738538249525439734698526877987558725321038832108947840898279045463466994150317302148803543740536237580228954678740340270202809665703906237125967433370074879886349951082331915749901166623829213447625229424139772432469783337945499055353990166122108111681559918098838762680979667171171044964718743632028996532779210665063971529363643666078232799368012363207958656341269583402947964445752027433296842125676715950255483551385029077131989084952354564620302933232106242992838181867941935385004093712911757853262804342694972736126354047553477266614165956067804502279557618864491988647655473523488253700491398912657727530196123404338016922516409749412787237192107920579593933039500317567647751233065401066737048649918895266365903285283055319837660622431073022998930057991704754458612509502269356265450583579950211721827390607235370768579362582133153557406418811114438891673889374516921714924133750868022386444626986431941243521247188931635747355544951738362616955695369710955946632797668463307377259060014489036916045286958080371482259555310231372657899769756409090300078904094162448259770269610627255589271327565094125573390003289147512039109168873644676857851788977710644782222472610260000744267446543627474697916504015733628160605789686254060743164637703409072531045519879843027563278332319153094895310706987937635506264487540794062111569657757202152002442375645158608143597697575213120929780749474455585232414294537244854570866584193821790236878485463086324168865729860515469958234343429235327406504378352107248805712164675936614917526858887500480453919586192826187620940838191124655750363352618884198895522333455158986516500509553721192440509161932863110245850149541715257779820986452225713406333034169026262426399702050783609665725829773030717618142787716926502043094430650688568688528649826276844207225060694640676027416403810079931599216708193540878432131871580024367364027562170508858705792275515157669753653774977626358574638071622848694359807667402862294822917070182442358643714035699889065492429227373090144047387656905052929195379794710588167825081902530497421598662462896940782606274390933573162505167198439173274033560584437984594890969335606206084586788642501414259608525540469843958432292237626781196742038964970969327398686562374473641391170802997745118811775467647732310476246020203879601273794911884675694880365931496593932343703749239903946149080450437177129656103070242322936963196428304218561809371258011793579794384982878937825557907794465206091326319019507797751969881550875223826777391165837190399270012045222763974689618774512362152631207252938433684681022887445426338643248927298965728381797603559182216834792607776489346280630289662375828023003881852802107848330542137993638239773352239790169420614825850182816076614215737207494846048824176261843517846709229245722536201981111819405923279864814210750918349418507084464759083596502196087939771845480262478569756806425259319958822330143888091854390660543999415985553043841341485125069058650151119628159076666694792788922459407049388591951714121837816188795957313417232163936323117977251603053258589049495371109454130994091464136023395142501111804351682214870596891712395611237182440926287708707096680011634579944310835929405808001231947194166680278504944470661514526229743963226358214740327252835030271836276067254144663919252338687067333836901757207558108413287691781511153411017661263390788030055379224109688874979357546421816592537805745479794834187335176832311655859548414902389584474373260414878655221230518892523384811049107535281412227592450970469509111887973440533804285041599839927300137142544588109102060475235556424656797699051569255759378027148017633876467717385488959773607171861047746090048494666477317650780111715387653927613180068204498203243946263221222374459546062262890866358656161165118446625375840166237449670823403799076807341325149702462079366629666108752511485844772530904255418233717728482184578792955715709895482719554010945630728484810370891663176756661242739469928851720063969851188667119963354657502524252410656238536359278820260958739500463145051294656737493078528348090071470057983101306242443672892087430478785342639036783178813028082751321852201234619224977452076478109650775500484080790393766517841683476828663448979572133038906601859713172845387703219717662808706952744924869826345455029294582229169300280422920810397620881196222367347601826652571949891311432594863645067565533260695108077099477906607995685038061266575029376329672602045838593563009374078679145540278298832087181911576324872637279973672069389210523186825432154113526912994109372756626397007648981999115624302125361760577657592653857728484669372280210283057006965579565806103813773285871174383150552922292243368270675026400010554544336021796700489939759514026846319894806793235447961924115732665968930000659983241519608346392585120650536332534653381068794034669335439029927488959279715825658482044760378262421383176768215295905003774237403733458625357941095919921114341719463364953015605268659464529994054924560445274583364282665048213765333009557684080545549040855304044133676423531155750824069764320416778654640808042502122948210522764429473263824853399039038791713449416504841380020402032495580435659793231095022219915554086817130707583830954582063745187074297217360763026479114300777917384315787682329739950536676727042513707246063590358674710908728081933175020746367905384267574804966685573946432221650909006531909735768629093176923127549240481162089529513814879393043387604428714293276418845543790093126197318562590903557852322495230322907474128067575119137948577949233061599989146799838319743608690523222221974682124343642487140436894150974404483338214516350409432510913388493686530889721075257254558975460283311995292597613921438359911526496360445860421365391993020784601138466914499733498237149113061922220546388478525345108098843015324434124032537574755823656591974277674209338917996968998783865710406346703495399998883450205046090916077492452372096660674508206145649560688446131346398553353802987825645478888412877810513996278854996540025019780655526394964532485587421185317888166593899354052003188355336674094821305966861355842761439474701859387778626617199454550094722433886968506565656247230685261155343838733787235674902363252692273867515921902522165225379535832998469614706785133335660884826719415302608187248805297737834512348542090685132076330708052961524111001483538583980175052657791438909367164495321723097002198492256209077567258533083505995244366870162159663781679487095141505916922109620977237324857720386344787696569212400113908633163926532565508804525791989695597848920059412196040647502236593226155154709795727030993239385356144144539975359067736970112013612650477548420377653593301652155657570436328644179109946033577050952909698070602988914299254333366424908150135054267903608560839337966542319965519693606479071265427078553336680069318454465394118488865905666790795754789399952750911763008416573159627187802785783143412722535203579222982202348943213300847667047474409157340337966178384554260409579025726266393362225700991575952845082063297970786033294519093681671108598407436874817459342612522718540566378125580292441503022832306959586827463712474243941761580193737902420585853867730062007365221219198732344657703848579188115141118149506086071841213914404810008265636769460803362151626557026224512926569744161083539471652906103436974582607819825930395136306982066629812458534526770142225343912839671066514631801550186159123545575023839736971935048850827657194598138211470508689289340887079306484409139970783434550850296886475701805482143301493411790732342143826145763395353517894127464412579912913888590019700675427791958757038444023269484649915869146059577847962106429664620338641590004805734949827465945957502390321520967506523487327004737514110639275913927493039490093931086333321469252397534541513620575109590205184432205293033652271168189649915646321093421278274169381095773355567875969645933029303314471605648963195530855983436046940949729140774100748401132689970932106781330285711507556559132615178654691133155815975884689246262136399834627462677378127477821150591980657208381868370723229153674038503062702806397927302393926312773354997739366719880725540107468399728115346603639356989922153839627060772782478469591303341503141080847539389906525669226695109660800327699717618401279788654406750675453918499289114757411103606331422883092706016402346901818269490490388990553598221984325155305381675547316230840502469584929540885617163603709181549350233896071556093780180036312407682991147601618603812445675597778345129646862991075586915727335143278790316665102279816927005721722839046283746193865465986839878349645217792072971015869830655120937487602323995384821643674181328995335265653573294368639580288169394737002766504904795772605240303912897760163514871379796027204532908264832210844277326970624012656229480648157340199348052535555432755663077780337461654401659992128477491059803057080188951985810439732201301036215638282292701694810695725192962727511616052685501552284745541527714405941508335222755106147782158817314288718287454431014104453011499640223548156581373173183028791400588712709534865822957802461714238388402629030517837437776739081380701818857304902431134859750052517561385067162526080890924672646086884199217488502137159607124834503824548396256300776244005429854485800213500510726128506922375583729181760219516789331712478368867903723790634302532277356088730569776141585723169634340133032676991544035981744710672646322649676284701444170412096419580194647945785691890262112610541885652239925600162995057503302150673382218414702997575612925022615804020928923404874490272835332174860878139921854460770824018860713941001694475089676014144679924510617683400293273621105596693099804084853545196453238682200632968113306686484087674004631847217128549802653085196585071397673208042421839692469474501381923326085252041991191003353682126031086069277052234158080068016706547120142632211482115455604097814985939188404551849808986264066388446342833500504246765162256098075578513113428814967832285303161697052960454560407673400055044427986723424168240007949108697217306341393960513196913715496925218694942876378100903110383518440961263426575819881106298236717591807781713739028258650923673893095738401658521451903936138705458343627043305279167621633032802516601645240827239487644597149364956413950827687733290637342535575719295186015124766014045935881184513477087230178942752799246258834825327775712381950018592935750680765425387724873258984994235363970846190103343182017151337031934485820820950329567780087448579265680940143029108773574417960280484861521066663100490935795546581343544103970399259260166330692113761102648222191310970971665033586775262249669554734284235717412042108217795550474982804183119302938907001842972894863309877274568958303839266960670795518235285120673490928214337820765324289424704799256026961021528459884716990541693995298589011728111674655801860417777329440312438892124073975397443009584369400492316866984619506828103303201135301152213860780169619047175692783758927693813979545489682878401618875196597134338353095267470221055411030171921652878663043221373778106686516262958314522546303196765105628068012167406385685915945062731406306352761109795376490338789735550843935732320029711678800444042075662539353572749164567843136960510230260429093637249942358189999302809481754712761190872094398611977176168707339159432867076210798193910267241582552304141288764713227176626762225587014933074916968715835561880866553376420619477490853796058842796401844794227974475517689226694977947481862057454360237662643432119513380167422587939293747882092515452943110538201031522952412627304707549807218653957188867602498303926219912627957748906177872061328335288817388057927826163104639385685005824174741860705420835952658353944344696253238871898361574053753324788510647150141430282982616204397946102492463187452466854495916543353833164606714132146431103142719316166843001418993949140473616207065014048338972264662696457098647853693032225598354703961078300841354058878532772074453432454516742545783272475658519340025597306383767074778417635175228182189826913112009269302635247118506728713503053220952962311514116130737143965022901204053532769201600528853891824128709757801040831370688894495007310661089607449337938824078322678546200279119903489651570876670044461344502884148552615451157964531088168406237445175854044785789908918616413690032335234873256517507381874863573943682888897116905901833236376954122058516258579876475437008620567727879048933966697974105789554722687931458231644247329714133911632511894325307926110072977665064338335246981555721261688206108193504265027835321163432426117359438832007297867305578263410346815863601364624388440590897045341682137251361095486314208757247091550635902977001317360039601557986821954361271698040985731843583490191543170466110015852645765263144788816590734689675651840035796159648928343069403885952057296684968675871175047028405837113506157254058074240547523897154205365359484762552912325633980268072780754085682218766679578741308453994744621525429797963561094246246956432706021603849310315166564269505931882267497546493812486634791166683860984547340989994700562975215683247555041604208979543919785941607901366323727938521874425422284140613806286315035738464443487234160263376828917304195191479895412905188985732422663869981311337470918162844323641249437596991217233615244290210234547154515656444876667161649701694980660742019192607938545391979152683111971014999994190906261543657808273859477628628926534180133917578181699343849215899479189317559677410539947891747609678738822442705705935431786181215604781488171623474075203280092249241319609089859843850014702495965738037929259502240059022474936774416018152429738779483730600900768999465002775442912134424037123114578681053341326149521518841772860342363319693011398110348457312009402239411527896350015761413865009830844705996822203949732992080914988343909776721132227783796637096696353463160184565091515850627290433788311544111258732781309098232365415143599877199139714131003924891472737192663989849099167170049119116199013903672740429391732217701527736384877790064052134555578485316856098332078292457108274956321960436743410381217475589109148759424550616041810827390292629853919327189816082548268627375512182322293681646629941030207214455652546761184671374024717841269489339763763599650879952443027641641895908870106062293160761549795760916807116413909719793110096209127723330521113303341525954164144838138353607638194390745739154900571041525868936512389625209592915933545442781403934309044550672728491890503587619023245205746052158508631872645614215049558794776227987178690992772889998205857758768250172891854041159596312819872079697843556642562084133545667108005267072318715703382334284260895088907069931372630937610083677135987339982233208258535733450744035810380387722391495220322752321224674054957725899468072484343564474502888057650748877664029077944493591289867791970495828673182375975429921347444899598224294492227639705892564917148716492657169008494639098201889259038342626648482700229247480183887167574740306904962886629276598515900546533760423903987173354349734333924528111409675296751171108830197709301710866636624007486765539876853241388166172183498498198544772783710180129812873727655764381218570473718334963362422213045150967274380434974924163763879049025569153256878368430081340100186228463057822620827373698104477647155950501998862720731787098007336542892280348500173826991907969531902798820123818572651073810856000643778437253485875424048813069633866326171464177406152442954522481653054830191617680011462003686741369300682799098708415415919553282423961969801961866693192297571840772770755957616822576606422297363929393707813985414062058243907632129354289646218685956936561535788823609521322187261276983145936498492736220404372304125436689916483696516980754972693055880008191758629156934363503453737056598951128606541959262495759039485806582544801472958596898668061496980191100223442770730193843048579032814676724521143320171267843761538617434300419903560618938942197941820133600365934347986417374378150800558498439836641912719359305484772705106481867389655697387372004093811488389685457180803720441653391652123417842305664133512062193441013197436776443277261435615319124739690869347940284373210681971671942553887608111830146756225519675159221366796725677630685024267406923317881941401149676553159633462139779564040195532975972708156880349047467663775812146198306352096946391443251105224004153639129088091060072671856941875638757666848243905243872413833025623665418365200426328984527043549396767565259485115734184240178544387381217182887067038145044119448087062523278163783337721633411322422291399720606067084791912342366115827504189139484135412005701604309948251446759524711227021726939462250354058921024099877045524510122612888912981567284461298088835442549144966613120974642789763365180410972955358363199585297642047824491711627164229417555053022586842015331004302264997144641561450700459224413583154794720038969922092703166010760990290272346878525969586426940137453193323968410118334444540664822671755252179181883934140276470372920195497365675803121467232355740963969131330123763843287635027400203771684099217426280838043160161738687547661047538482317200706430583386073005554111947585108940185564691371004288371267320107093663878388558328035191050393576978416875711146471445291049761814151681707072755803130350273823983476472373071714729473168315086763119717468075336955091632172733307303123804515239503969711981222101814183821629195986772577063565810126206505089812475367501627376297685691222952474728560878604074363399322661546166502589886061479729816162646523993384155899392975297606297990762761250949527440327703723319625776176857583512809811153746121400338171657075306982593660263062933476483912130376419378869081510283008392823669169858837598164195863937218064302938768852150011917737140649550262348610780479097308995412140817233406846916373980772812290327959226678860902825626621444983692236522854692861051012591672133879217760089348135484097045114333691360409073297383517365898885810863857358012041838157300714554583065016650944926863003742754461295532787445467015978458366707249806863842405329066548435311196372935806745459267661781035083715195163835061173921949426287151483556792361104717425431146295670959052630401443243438950590471394817542949145564331664407206981994225948046833816151108710415517462212274898154703134037618239518688338291986282531579062168124217446335886720431908532965142617250470986894623375459485024704488387789402306192226664022406321470333947073686551413618846574376304211134387836584847299079199815879493301105294132430234283476398372977092277276183812095641582369141653770635882749553826682236428955660807697391806424112522267058697089649764687350153126578111608459696824343288434221315261517597418879222648928738090843382152433668063967360773186719635763199445636910274451575782357858701526433876121405221710915612937503622033234917918240158278596700992745256540692582710404277435611336768194380316337956066082004418496407899774770307122843805655369789046021237393731997444828576419545484812564217028586007025211630087713004473668627578087267834081525343569471973426912449037402070675169026143683826490399019250324874754686747484793853866899427638272269580095110444150065312878765455811792980919390375671107640778340938725198403513256633876487861203459865763861122758772869662248593917637524865226156346138127079139968812395730405558628264898782684549674061004275507573878971266218852584073076095974614320290283801572011605556068507302167831615977737887451477470924774549723662139662700428859348507684626884507002348759438980631234762248112037707116166204520914454334594167444291459632619930608540336468013198515865611827350935346361201656190197522146924278610189543994091231263065293850020104204676362764397623351630726843985242128803530779608471319488891994410582688080831721847659277524746473843686982882450508912653570407782253340164506036056375478009938259041285934765830017028895343076628027287142836204370982068358981422604975098411347490927217898386945891636342183804298992808329153581752940697532141473913163782307745593130688411810730748311187726828608520816135246832510722675822573681150711631816181298914701599257624015636405839579809316740832896960156846269297960365432954374458421575736260972434492917423072877368912926198678759659036720082910696052689584154238821917230508058104309893275039192083241654243849135268432141761597808751638840284456499138434288374334967953377122421598845813895685134247402880258688388290119556941682610743677198475212724961113069780580041117155951888704403743151035947037541648611536289304892403601349085983408629851406611337092710035031221043547065110013208584114733451960122723473428909609472914788330886047879921631000496488237147092048076247431743771973098663107856545270638892087770280439700533608355460766278493867487110856179207204904698775601475022440665933509723548078024866478864155604402654929970525847307860209590009891850870757336735348433572435558084462523899039379995964847113842639901254153259762941359580656388867992985290292485476793478725386957372265878192938249075560136655899648294716449548082780205706073857102293591047119430054033477837444587113557973058305799753680132326470419139213562945204891713759589121677242688288333749077951872532271228364173219821110340409922685422322581792202434623957016437594433731615212709176510054933279633622524532935528944920045681877116701576442997346029422463557299890166980767680326101958333381882564775918921756664380786571739126359853570372419594192807012403171278000852124197961772245655758715433654365678997602830721343900602537172827306674841028164034556394239405136940571847292023895422335131489567198739232492281412262246524834895437768045726982508624682713293916492915616808558725284508078712539962821314006255517919402090328850551154693548240765850304805057227343767184150410769203029032455147471382583362773601485774447485894419341738191160097274480458099458346621898696024048488183304857355898858478034984022682234524930264390724626382354552047632724197858942770300820693059778378296594728862243629063535453766667590914660788264773068294123713185284660922532270430484767363129284129848066383736333946598836051027241621993609225205561937752136392117370909501352122240727967798674017169989665741634192494643508929238422371928970348519821317994327734410280173256904405996577068965145371118691269849896769187040151517578945453605426098525870165546853363419593649149039473094270880187418312073448683721129482984650452615576817688360475420650594454072622813488931196524510686588214597236897928882755965076617500155407070042911634798018265735122061266400462083497575211254890393366334446491009776935933690680760271107901863447832663681860712757852648565981513562546939217995095294141586583296280112984394272491180678595227187741582019943624884468741269416907481959304110864926323104517859636897149431516581784298897285460978518039581911118321208923875797415902889497074972123311205299202351903003052316155231713449146566562512778524626491975308969304899846850742349096270935650989435890176339243171268793253630003346068736958436593635090060969017865804551328700924392639803880654240737042236299342885328864507747321226095522176611686477392087001002915642518607799671456263729683957053279331860007459340459982298172500533259038528942749166366620141181646452395639738722457062431075880859226559754963637363121903386093124538992104192313402620518260452546625589604922153169446570809789957108071031475515220753348862148730548100747331758903220711205322113538938112092952107568023308163732809857177301513065930377849063234159788558979936719522287255887782454942314671673804516773820408040533351670393355854482278886780543654653592535601291781306805127936128591255578278406460832064007443075335508233195961845707832236252777400322995364762440264049485348026205451862508698994351866508605729052796475294415813854879929740794686623475308241031958888094607105403079201518065393046045640546543174290425529527892440747424697091236694321087991535044666528664273358136385376992160145969633244477095788403586431322839418006917927215022009601432694660268205948026534686438927109767646516981093036112790173105891825666585331901170090247650271448328503011347845482845140794328503380363056498401692564568028076302455604232649491007258721035435657256003530352475526209138120292392668569414110798552055473100527361893122870390997650372007570898077799656644933268736178938246264326655149747948197437039350655149930700139174802443812044567606872346652624862588705089756876954765202809176485539446732893876908583990707208980073646923069887522802314249428391023280212009026165477246547822472445112211110517483968809415101384033910907918253794703360763308947545590495408421812910894168763400744155389803515741644079154690873110275035337651074027592758893089532363828838981914924297482501392081687196754300848173186372022947185892648052972886028135321327075075837540458463418009821808667773264842120146625151636787142276568611295727869781570928716239656404080596938870475945397893195893093292107824657139449667982030305267941226398344362258977669142857017482237177767624296099153194728806219372409402143678996836695139988135682590417141205719860564534734724381599393436378950209100231954587397103127019964558022259964558604548204284663031089202712837793774691998337361508530568446450429713631029086673583542500226363671983948476464736062870672272491663177317828923905857537821145259959307072250142401229336326607302339872296628714800947697541481168019240961612945357380109308386272543363013588137916319117612546965888289971379215073414631202272113900127804525301643593648958652848678637357937430648242134333712866878826554066958970597519624206001056934138291774729355448225068880868372172031681009533706372940063434576376015134927765829041512099036599159922365712757742930915874606686258177870118157273836238184924245833244456570354646744798102884269310600919508874410228403238880146311671379131783444609507721357892068501063792361582706561009026078608245690348584417269354860565439528267437015602351533242016518808499816080662506175278659351270387137429375233405950288350237336736478935354937535990044142134595071611339133912675188542900084993704546813386030482996883172393296783930282675872364829983188779810462938589344345829867505055898109933611056448341846618663429013688422838371577579070187101692567902747707261476375789930467459731399533215390586399332766523040150269063532898379554106832370820715771600187185935795776096336159843359215952354208765270420943081869158374228551661891885536986937869779240074321110933017633366677791322796585602128870712313683328198269846361231930608818135456521101701095130562287863356949101928021282748255630175140370919704495736762388830944764196884975730242569912915099747652674238700006209371788310773172484888254975075571680204743038169322087887817502338453552253634061010843565062738871886163772885579776676409824057813944376096562453638648184979689132177925485206899066416279170958313257444295742754826510282668407960842367738826853726552638559316787978423860414276171423781695454978084256077877171996856766181412583259765655703623447206726856788755839391068433411757100999729942669397642068263561843939242801738274546675583102152215358135995852549017321901871185346524560104358530260250493156607448325760608618089457887783804451296507136185437854742818251041032599250370505531078176072062342688063629578604854952921697090401542639278407968833986999543868058109049074092045859028526258109775974710623690886432702687412314909787092242931774647758736094937155139491712843940437456616433971773510529712163081594321587704552768218539653045169854102901497720135857411296596760049028431459507403799997146113344552212946549438899551634605150813339894555092175503901237095103405798803495781206583470737853419238339286547420790841990382537385981592820802281359792835613779021992350705919865693967975067363538165445082547504323259078526392268646833617824856904051153572530788923307648719263457148980073264188582537969867225870015925940728391552377063364142390798940012558068693909805666664999826632979133976243115977664232690351343352293941350633464697531997885052184938759003310676097921245766129273827524570014783561831068730102454507451091050251909286639902519855641660709282904374674295057546001916642915597401040277818282366610666385151088846572760290853050061630749357702643975613176720757714327487624471113363954024391786823027121876063470772868205013558115679237978418818942489041154228309183131032743074580287148858612851091491613495275523401317377657797035409006332730876836193383162975417672278711575607098501322503776585329895071212590176709316584574945738912938510802687274378668101517038925722787702951966245852221518730551445151268749343059036799921550175375490762483851954262122751530875223069439471336238477445377979747287612949452644966384891789149549428804483614164304692353701611378293172484768714389519728736937154042265139542973657687918961427849093260035428872843208215143512852155407855974544425547967580524395970646685065543857063873543405117709023785531849060546800771948971869349563105565004074571291988439054746443240135542603132474120077397767049846388365678196829611205958240988799027222901954012115419689102733574689996685492523023914284468250587439324269469128311592755971791265178954759395847166644138913048105831794241980712967618976029972148365261026504606375385117906798006626120318698399172053287212614857702172976326289999666793218990717822589177997324776186645082110937156977398973893720125118906091723051305687703309671798713303188309524420486182277563520723325191493754991615505132307256659326280408073614484395851539544708488953119482522615546979479613588205073876472191305245527967118576052336721813913089779631750009462031236749662858444465041464285533768870077361315860565560268158860339831335141280386200810954663793730085083557070682141566680692323516538180327031246664686337534660646540009374542364964540486987369779320075764163532377149308219943847183396239504534089991891559469015773090280885725854448705839026331957390738679210718979523504015052163487550776103121884786881099690252103701380008126509088479385988627499143376263058947374952394281670235846875707733512599802206315884771494429819372661739790356152245172186989254197046207156792224937640188946803533785497273736861038400508909077971369826117667447511347831497886002499388805948061185810528798288777396050646033332549066409502331392149516323022342105925090760948376248834756593567322017471307508930672287001320379719503365603587366587669728590582924989567999293727771616163968157925110652153581572483640013258431423877084506106179045232100152476637869037582920384905608349668724714139881294919875046003528910266832204906506965854682263661049248363825687377135044577610313242438646000822475083516212083538683484141061094640702507650184376333820363179519002880092048526114353481435282093970040440691373824926432546083063405006798275928872939831961419827338743037509164717589154132104385539846653317357284014006632655473480797630528916934766433505718557823380981196703088911815875222947828128714258449503687043146675249694664577887098504277326425665533708141800794640998061250865285096393617586874373052548953986657655340827870143145406688476328743671543404277940212904826935478128981588693095183902992556570830117375509625950438844791163296956380411896993610404731947538117663534486159162437680607953505738101410220102791999569715977081199553731837947642120764738551998028273999101228084396881570567415782191444479714532847650357013721728521397958709729186175578777409911966078402956594606336611893247612001695271894815742822274173987362690862215788520411613462627613453253702084992645081149863042862752136554472609313557771204646387994487359703695320489767664654822809059430815520607418995931607652138088405613602236494497261146025759752250263041336564611665580040342673996778389937241625131276139733585347811835791395374001586141067361814207529765066385190986802185147795369398240594663400111497246834019099909695604904853253700444867887536065549815942674334725379297964455726244029800699025622168573589901394030310055051259518083345145271969524210327061889424071380227099476981207280657514153524525248457996140268247370121262340841515875717434737233601732532901046684473353331911451655303395652169809776246538605846656319160465439267313305647973664804942258853678584425085695801354458951765770085688217209010854182174975088416718325713898772280588186053842796166221393560114529523353395466560169986935787967829402317530827331197683266359918004437394918204104023216964297867729803455912509721566756689522804030499191461341379210658797338805133890217895883533504712643471409473340173030281473840061184130016572768305446925729805684347615435833992080330997068504978827045970751673142220379626793637567925119810980429369290731169709149282690152427283633946357088835199215655145523020368578124487454171642615484218814282211495925363039239163971662217467737479266750391614168776246348355147565538314851572270146248827089483986587163254248012031698119122271728004763525051750350962093863637328368483550964840131366102666431911074415540653481688553471056327797498739483554935960712500081390384755119793328294948615809556331345454552947953805894711829834277195684019353975435824811526184612749376254668083619376713086522811233725339340048623085029554809060309112696041313350086285663071205487309956227114499713962387851129232433678332113763363338585128692974513837230385658047837205847837610915701055842465500522806839236386476145131867787370674606699748641188011542912692365444555681340228412501209445658261106095925985965227283500322439676730681860902099263102587435321544037849188099860729382801597312096749195216081831006201937022051771834844815830238151272910376882050945854783517178763437395500636279783658007956457790589354374860112447684108789041008969841198932223097124003364178253615308868249588705950188605985631771721086727048878795036262445689639121274314480842729255016547976164394269301848563768432935341276871555450360721885625378281172511246678796588408851441708951446313437472837539654591890028362894724067960623468900467556492718285838981648687752170067751592653886062111199346525988817231878665363672979517840859213854905184521845043406168027132311027653771025189708496143722299499276638302147400950434957955425129898646619710143589273078961991677244340699725778481198096810010983802520518358851853174095000620282528866977595160329354426163413230510961331547732360906047033773949695136156286108912815749942475077563860923216615175846143101714414906589978170646106222223955642318375152418256121053381119814569671810816974105998932672985501142278297432665650890886741187434591329125515225066856810870887750452555765314718689458630047722934142808146708818141590007109856325459639199148158142662327900772145343722812364645763762966752135653023916038894950252159043789495081165244733228398726619374052752109316225156918793918172765500194867000328458839646246486013330036826297689085249964675257028507022503639484695989092625806823036810823600294694182238496027146183685112382905705056974254456778274910713103356232087686582175535446060731631383638531180543202224312510480828192942137003239354145986502375423903157644442757919137907348040674686671509019019640711114250696240006992135509899506554864177466288252282571604196596093806983796750309215555707996346311292700797705182918172361623725697171329829651433980337416208972078807705128593878536090528524168891881072793157119033708732967321047229199865048434175445997299162004270161967875377869018118866954432167745962770892586891524520055233914597572860035023101364876615696098723516407130805841638982420501345024273917766465881876259592837465948226751091907058391099478533054818352576189535771023099612075797098893012691589421777024118307291621618462037715645723976832086067824696430093844417622854658818885787831801602072678973858206182030878606403879782486016468510047253562072142657569873693763814774208447900685195823944198855657259395202224446978319914671391193990358012296756401341884741389038725089913988568094701230581940640527703446099001458111246085185829218348822651550412250947990199705731975785135670149016189420819696224821902796617647444284485231065140458269853289064106043388555142928555174753734140921555425766646128346572431924072434491275559128914618662079458299426416154167287278772685094966901719655045489275138332206650429911721598770104600654616315741933529272330749934299731334692622068217413164885195596220934958797375041410560361241721924176201226254766339059557709092643536579037698670731405857973444705215473794470624873672369622450639241237047789274293077920420527991528186779550355918613379993508758979472474102085453665043081413076077673443061435175467508360509326428060083678097328602209184531127823111601574981147826313991751607398505318362637187447003592668376727693978640154251309282463540911766490043198749048067819178161277228917121662081865887021302127925301694078302261211848415653456724845814535042191384596465501597810615327446718875190609451574878190951203202055414702968493730155892754562359362564208537849009065121119323787691059782817704239713143319557024378155006165100544930412548957521137057322265521282109792165841278415745340027894350756691258896208568190223875237487994400487556272716412698603892793748732303511773266144836898428669075815883008993668640861076640071504158158119037386131322374010561297762618031370249565618441199066635686914064296107173641883764921021523871378253292158240446345792792298602850034872524466242553203955157480569600899311838221351462411119452433706509290524301965510117511415485712650342750923905780200778422108733814595205225527112754847402306119422006042008501399910243809006226128636702942417554938613047709407926591618781163899881135243979166299771705508098518746291364635639056613859197813168823015971919100627020263107336639753422993991217968069874798725702006599419965859696387017300390280539422301356467988860290663373947136649777057754126067239945416937678532769272446670980869006159148322987394494145891442448741320853792817925464408936500074717367016508701458765472200165979046639495857568308017662118545990579470902535002497890268768103865153982595076556157982062522818865517081990937727686384056152215939758517637210144241262781591297190125024396757835497405564570137124703568769440163625984793113033803639230928923213394752444690932241865159684898230081559585320174247118312312439988223194677754975440544776934017491914759513381477029892831731584019043038121563610225912295832419920225368944540360123936917437613005698898452000719364042780330858595271686323745644280396570766849434978349611961738262555970098118875028964954061969191133799983636535271465849802824456760975856540601949410750704165709288555566074957274683175618886958651608815964328387757485108358806150082558696703996572840584053659375914316296549248354744472110448671649276691648963613758784378585239553520575428844768103213186112378688721712114795876140895288764638791344902235916864915026039356834422637680106609713694397712686394496278199256227741249823958150814145059481669600247455602657339082029238362936610442345006803639535643239529455425686277673243826820446154065928434356029476601675829828126848491428654623471990733647473343406617859175775360002263346704657894499504070481335178693755199392893527141025633976066748053697251730820461001398751403083898959344617369916189492244732676130187749111045430120954405774848302745759474515901032778263294277521984049908461907930672783751894085726840407023542215314946437235710849944790715368402231095584581660204562518242796913499423075969464437004517219898018244809098250801425131047696616992820449441586665433790306708273253580545346463885274245946934573549068599583962861676195890500803114540068848793798594573199964297647225993297966564557778706492672927703203741252540359624072828858332019409326985320901015640989618291428964820290349391135094508863451676950875111950653868751034608202618231395569662416460460697279891252310803533926206695976322344440106867643424087315409248614206986793001570414635608182316436630346074904584447132584573419150610802128341431197514345185332711889975806788497019610994748653793518984062835535209884839493567934474665688619365271838572472142017104935093839561519731723021070701843257675558702167586347002547309218501271890090952119815400497432784566078400995485144420829948087701215115732363412537315725285138488677763778969729347244307995218194470839316690491588195060780599939682931763367424025101450121370296880912251210478765972147333679264975479664315277934134498422356582515271143367506985082255941139446765255132641310843548398968219205558001243308210057800370568065459098199349632815154994702111090338104102671247169615619445562503214752458617491136154701668890935167658006114307301076054348734182958040455855092285864147796969275903712317543583463328688976648937882276999929951375907415493231901605354456271977027872278683673830470829934757505946509327190004850613676037220894421899286326625217526214762668193403494492963712621691012462502751833294590575532672942859523381302445014595206154923730096202615609380845937018248472269630270196423704124305427550775708588844613396669146403464880459837541837673943111896112435235580511691937378408689648707267916954895564388092544008877215179330223299796883907302051990765979925915931925453913806163270151633138705606957141585463655312655019620508815080338276567309344005895223513938666036943292576016816249985617865185984613465817646069139364996931504725182653213499512786218916725346455054831501834886257332018745920575535045031467877629353996869411958759917034350089690427048744452364118706010107989534641166585930426772185645090218150928055610056634777152810101457583087949337719974677415036137204684080230322883158263351112552588831430083715112214886894347228104297106805318219307887001567903596627757474195798070027446544487275860296732604358943426398807253465473990445958048562158565292079186957406027531144144882686077447342919258307377527738069724129580116326777993158944065679187688557530403089489673001026195289988609420161367855102653973837090114136039886587787757249756473260192018586531460817340888024237973664294024304089320094766859074257213345678734684710630956372230150239673414041008273407278979698422672372670938616490550126660678647159127233489429709126768611956222294908314938273057372376725423462344406473332609656521992920611953244148930888103816763820755056841984217454418943625209577624216412168009511160882322156828990248725466728382861984730176080732219431044942317673672140484434750040288047909516354819453849894790150531972516080073894737306012882581079444301543037327543388903407013632147251983178845778045710674579617363115361040286679516452758077651136142366242480043523251795972807783070017800238833953718106291412024518332421871025681940472079292733900420672830857681318530884504014709379892892715548639272230338910824480880599845276395343100782324409477884947714606865788779751048782063019607640572909479963561876939416233534007655696665017666016359013375292981698607332918761811128799270981890495141162810867246229865447457806066482401972246632068256749549659116777847009295136865293262307808186212451489725553622903723480009362317875019912359919045592454078760310482897060125628004493167370082881903908915214798516074974233430763862351219058421554762307660316739558714625053315443452984621450189923769769623903801873021867206437018365976697335037130557333948237965315194182114874840765067028578658184639902721200240594264565421303518615551095779183876942281280895921437867916648837283106130292871238840046357897364279294135330742710676746336074126019502183717994403022930756317526742305830854401518260195099286399331047932916250013246256718791132897184324555534294320489211290068634448876644467642688341483170102290069885723844581308135811957212229938952447325472675577216554834352298186224833161627599680601861784145735044791078406483524726959309867536001192351600496420614459121493999432304710279658465872775738785715151875122272387374601596166243051154841947562079030486830226435127849041881369464663058913366657970475182810238877979282346823465090155076348965249970206314457879088810862115682879663754977749706704450362754038235860019918328701059950372298177035551513157373146391910640967737027029773227677189781134766189384144898434820899722447929746228435955768682147249051095000904416918158330857755332133952597191539637075302408767081252226181771833510957987533442498338299925312860943557456446321000848150492298509285750308181920025798427335877948657284106494275946516095231187667513270978968820292182718393380792900833344092100445905781306356379605333119239281576831406462925468854899426652272376413780028202942818468307396602975027274534827421833057946287438137952525981201136240710827463270276141898928995215369465186284937041875437764198580181948380791750472548784141755481683942523245262389894605830517433170254546370646989475340936225978891266501473250856198123921859457384847964366368363022230965956942052349107190012126694082667972518807572137380649738993268459490262898830732206773396364118584506900574983201619336125040569599766878362691585154368890409941028657406206864184387822168655585631704314570206494128476516279147584312610198827619908587839802252777938834065350912236969785101821565426602823563287829736263131654377743387505339508553457539560510061917766019949786217930875631774914488950143676908868904045750458862818238537919995913330351153914564702238705438150012142480871540472172961508149510036902060414251479143265930408093890030748579000701036775506109887216623894325235507654950599818161339512774679115940751941878274184373050032281310469586062522393366332659448788018951266334487053882000496201082568735345066548566675133698590380541709474043104986177967956581414250235399880508131014045536231859398074985216070556987213493428281684860554769911513651535613774307301343837301074024803699689637216779682074239970284441562464691237899549708229346174658963163183673481599352974728260978120704778459974602424183968742672593764584937481423573417348659316574661891306991274223719894865505421088075201538074327686377446702864445469544447013813002655748281583984577985828421481754794271679429323277599827560791340209870277169482261592856952147931378423486749417768552748297867371555169674618373263021622005401068132254452320390537941411578466079558073235250137447540366032674662008737559293751537629315529345063721034810864753130857863647594148783504181948282213740794760139439576573710975240874904964497162263326200882337733999760688483233529992836366937990769353005802852816446785599103477274956551109716855085270445660306166207980733381132523137515414386689691470588624095844319475608228020513531605991786866103133828026746895773360201101878192468403116105248295288314882988216844284693568145482921560792973039458168500592951241955301649736424222134581000724505441234042777473595529574438273196382682451296151443079033497071740046119368772451126142472915907561397347829489594880690165822436288274464114844321649074081847246763292387233797638073930929317714032692161548399466571406143504810132513970915068564855097732567157097454528947703782379006316034406599998653760944271381842707819457932678842014788019646306266141753117750039091386244498320852536319583360097952988200733755088403690277129981728486390524122185532642260333348238702529494492045282120779144908417538275666806905819802951631299035995524178367274764425103172172576958774603177701552069272602571215926639964880864728813080172584068941208847275847103193392936249258702951901447522218980914026931499074526395852698094079392063788401709009732208851361303678036695182341092604665902678326316272178893585310062108703888383692981241643385274810717728704920532611695202215833500600799403975989345064512517314238442379587820902098185208429175700658447553479499413128913120766559207294485124300781310683817323725203806936164361083452088723482524417475437983292684806952957745866961357908119575690868619420780507967389092026565756650899698231695407247743000032180776395101482699181226028109569327387431240680160865465514907632536334605175337179485087223485703558606549898006679912090782354358200281580658718129459045624177667762161677458295882278811411956024479653927146696127241516905104274916342293437340391887864041715759519511798718425191460664058359645297422005770651804713145823370407658978001516223538833029547235333860580411896787351101307805390424010933533740692488701829316635954931755247701097073186378345653221402859150241344471908817630117451495011775683062368606446775554033031596803135066804947430799669552244932631036722633425730441806664561834180844122345687042622399169945284116947838747866322774919306405205244686388571511485464634873502855898662682249659595321042617299579322494147285268830161588962758159088692080920504081590651872793373889850649955044928414327238919261708336548943728849583451758474986662696310913201096978051152881585867487215828132089754494101101331953426443554956044568181119938453843685382319728729105595443319601326636699671057556670798056592453485049614634695930893563301314167892194668554074339628865114750147219697048182304511255747300073605123893251481255514538536925184468289108513034355029046669056851170849406544225807517486151874998641470580568770560039141012165322261403261890124054868577072552680336750594131200709509253002281627499644237087609724752407701801566611709016062167387574921895300814265296115259045200886859866896565329927398551776277730672538835595856525691630628867240405707198907047400751030770268955328139311712972935467838450152494045435947900024168605730592899205925062610455420709742698507113951234231165242127115890181559525644350023666800176983681395002062495730304930153614999825274466943418354159130455069893597225111621177944626669780348780920151085593227087591076127354715625874999675443693029345619754300966993708589815661685436132846738216441015615466672734008895411369863626178844894685309346398725364213730351948570834541272726648445618911263194966728211519287934215778874068895031638920561675044252801469465116195555127790691199854398804729749268891267576822099088853698728183389098609635549569050650944863713752492832423407633735181438672555682436852753908062693413586765124660912510301556565125216479823799445542976120772199188285318059583833788450916122025125471633247733559169838173547603866053107277613672134913503683285834998885014015894419282112845481207868395795172005280625426623976612339677629299725742576366930813066025949225269952542679002945092709722936888701823135913263253569999576521592495797496914923129008481509211778453372810110310128761994608326412782725295229621343535262841470127383781783725350668167565367562769731036967864706949586053780270201552191705382518978951010566154761358256072796911924032425205230438278618540111493682859889834706265380682890116499437732200808178957325352766717354827444691520055613390009221414740835239918216555255004076610543536247446180128271964778715678868463078810196773447740190855619810082837698491470016992462150105559563419109125689323764240425834352156060025768101510442167024434951687448971161538966566890752542413355278140567754369326958657091075055336429800551523302454244786308935165711203514337499277428838804518108789259169317272775940582690681619510132639811086271427630105279614839208832595030445973273626121776121205967249088083841542980424208811812714799041202591182977576648487641746704543473633442129097333471468277651335290606202873269000806905813921513861176191046679372561234377014679241329215907179604832330275731600324509678645868372211334283843982942622117582721414268309440940647359229627105778358256492040316337787515002043772807401838206397584944061918703094683414908883680421951566648688444239851172489688601181110388449076559917126417153627916928252503666621231478138199962859982934635721008509565327959334817386544373001542056716967559646755499846211824725717779473511624481012043093817853970129496859496020874167119985830417479431405014547714126879941758393335304047307082587427236847549208084632396761000769654797391703065866896189211298659575148735149963412669104537436573565577382153285951018430903863525270653343247824713189215689275487554706579257975917087621071657953281973048400261488739755024548474397770381624122017971858785476719014585710138467009359933354151764102632415078960959546210103766594777864470360149731252060664850456909299170987752564776784017595935554175145193421924493035741560400303155478132191718608771206564129367646237750402183430129023799892728213787893886234977447151748827705181381405454596497353816198627852669306848495156205933625526104239943062921794262548818761664831679691169106632728390272131907338204906182049544457668485470889462913659687420965183954722867421743708784105391231226382996632367999146685463723245768277942649402751503571467902444999598187577384815743406063454143097132762866104203695002752373790957950783948007673608689213268541068281905395635629712029099671428166981424304555974898511212569180368534805067565449998521562049074870902901968557002714516513891106753491563233102401101916935706412602168872251910888385868783370755526094076716854237058845946539034252410379232090086014264250733237916801440361023699040766812694329441535434046219820490632013757162085010975541622655979152273012201581860038459975205160262699293722771034841056675706484079935804346667564328142466685012105265412321884740657785993098315575466660675819558861427599559494324887167392615794477544948272451606960552450427276068950863071175118408282344549049977703646681271695180503022361012727765429184927188057472166177093308270213876612454790684665324096794453155088240671451414113826209483987042118485379156690207182038625296903864320282763419731924634529437693441769080665144990366417858054299663837218120423797258615342643720744126687611348825720693263221495315643566006400529481651201144995258315106044082995058208881901199339824313265159396068147250561227417145626873391779603100651896715265396596736893845349534974021852957932476228303703129424130585407958056706941485294647289175558794562104955245441932045596750585207723161117675448097497078878091534424661256197897902027924485437033617189322825229976742337992311597778872394692884533250152573544135409929737412943371887278792432748781995290388211228523556042517656632214956277501217345025895578153506141796119247980668228004261342240560086511831813420717523857499233172889680240960027875813072436711913820884675136182196703383293145636033450028600832965388324587862699033235538489876940704375602098363226950354520577183590135324190699393951221216711023885381512766882467252837505746325161392550031588904384867189244518586936538905861620999059578004904185555113455283458316512804534480000453237654351001739959445453465890689271400400302414215433598554175143610665953335452647108545731449983875640574790882201381413983981087273131494327788155953691531798868988938478746930927607338837892354766021322442290949142137681256961048382570963663989394208622699000766325415092093500173002151777435835262539528264250334418746468064003994172621216111627704263862533878755821839662353676310558702453809203455982967975446493140595380241612153558409317430871168764714796705817052428234365762829269241699767260993018069033127205561512761660610379367226364196835723508596427253724622279681539425495021220355122695464504537036760026379927504767379897372248408630221305653046437905002771701066780853369959056313770584205946358833370542325181648419558251136716607792114941469557658168308669012903848482488281409648014762526108244917027433888293490776805548265862134884387545662661322173341438409588598837501986974371309941292139691190885871585710292253047315313258850644842645876497365268112037821694879932534131576194619936455481556237242041353869409219154378346096761869935359896416151338244910091626598511021485628407529128413495400384398432742992338477002392141908973475945437431700889037978212146342125575879874314998061263337913758508558466074166425596739030766919007016156016950675425517252235738568926081741878058998506920062261764562186742911339908678893553773247341089919371368007127444995062855273712966499177472294877916666592992495744310247270317965597259202839469911902827604575310835148473343511782384033447928451195016824270062902293302118308006573761955571186758317513864884143655483423891750842192009659796549156388092101783266048316384889252158713484413567000557834910805512644952456938218463345933650924153245786505039978065002151612947943441102681797974125274122186562690462365573787124496146043419963390347489427478831547837554208950862938168089120233072366659658788160496971118884215172209747186596840959468442014413938618720702914541067455534852781178555065199057051340999261798686600626032399828856708382468623889057124120075189896072611413225903962642848819805679838111052195421612411301951309627596873316069119423827320981867577002508281359429128248591359171821780388931826597586203308318763383857254047906691375631532908807097831329534329970192555640620367099367804462414763728325959032035241707104561691862551339761264938951798869552246216181045621430544702547289131325013845858700805298389815107397511678422554245976865993287241894756373515701869575680340881563297579522682390169210444041212093839659244868409218945804598658993663728218683916858501153358969411266924588757739769712396507469035195761069263245091923916010137969842902487565639902166011363027948882528435270875136349699413256619957416788584952251780798140621757133762249229202916564671588600162876982830886051302779207465649263183982159068777904992926513025658248594765971431292362254361235432878360212304606370688473885713633957432922308368114717063054719844730065939004017002582408096940233434837166070889778039772222224147005661908667734044524182155271079025011310908701824968708915644707159993502717611514531756635131317766770351882971287886420871475788702722546046166179604483951991418976979920457471589070126119270810350664093627935471529385190586596611686525724334556918783090274341828540623305153924850930002107464065974122065103858646983074113409093061577949547545686224134548898683238865081772562326019623981877780151923384442783740014481221608819299878992505767802799388250625977010289650880129780835398870921541807033368781522458019810084112445679268745437520867128041136130671941008737418463406764967706191027335607818838895607110875973043062681540362724494888485142631967978474060561113326440136146657975633750246690312038207906932068782781487019475949281086543070559023605012310436261302807051483837831617256623738414130468420728268253966065723351376587479259050202406783177668084442613089473101940926707025279839753360096741915573231983626322683883294768582385146945115394172250039713400483643481004014862455268083638504505420783081938218773004443478194856635531273713839940797973237743130463319209266254453628759134295019907049782967969892273757456866582666516636566123170744732229141416082806910252416932737159490895518112658958796461466452263750838351317799146426940229455991824226809916229040524067467418637822945420565954682361596622819651140104018593519356794507856065026884298738253331020342913465274618879058239672314200458633868857087081724490660088753242231883365215604841730703264669777103126633064293828219868786187918774419117810905409720089899934089447304011282342933386158331658728970907892813192568540897515914081315861220105504657346536700027804415193472906209921470275371171523182710636002625031269335992636188028323725800506033258578959363466002565355036886191590218749061811117072216319885884310517761251991773298929701312710902648006461823481428736098415869086635401155729794966233680104783090221182433012870670228863161985965031054977970715235655108261848451872614530383993232254103374757740980337620440016541744185156600243520535984440114218041601016383594401122205966965508281138063811133493791589670750282765525164185591848908867221657265203932560003806793110314838679592449675037087980799070985095934410798980300856222256536057900590019394949041121262067937931813796467924789857214772314818090410939755853558767850034381061679613157651683503429676745081890179282253902145950203355841426613306107229001553285366696589476842064395478942610343291748568984644834299770483268272964287738474677751236385429096611467108153557493939820372723685045635617029515576159742602237600913364235043907734389229738297383973103182897416331335658772453637095430832335669984875487645807213314822751844604187385815763098122661351802252064327764997041827734953290945998399884164731248164175570417724237978206848341562462135305851835985348097227598712789327012933443446854152193850369679912714499846146398331748207215175902826105521518383351605812967819807816951089565359701825570251035097306806205484792618963840670498895500197624462835826245440610592581908706112619673217142334940554637827124070758808915210585126312509819791138965777451819928776194631770389567874264605982176631107917410266868464272117190961966979458643476590513588412655431684607990987237416727731142718639732077613004630239349505455148155119473298630717616306861397189428811651527370123952739624356721220572335043748227146242740564165861563153658105768126230899116043617561182454410148582994083911172663011150697478514457496431864251138976361552509973669442826405450259459136363956228443463493533141133950213794270956437741363542899200713282783549340102595103918751972239441275406864958644191111102351954127926269728677081725779742994853189777359156911643818298074470815114568689847441028453726548775365282300557280311936223318653210649827277248305895371938502509055574222179682533700543407564929110947848907932076611360459601107710528996274522011588369706297327491534020243842839766460534424411680857498310776137953539560157548460340297519734337460622312998962365861504567482341551932439324024651816375438732345323158578706152015769028736757157901963689491280326973331607653260448034649395839609900869055478043951335810199322335537417125716590792362293182759319110197960268357684797229898571106387757186376221219780885489469676584075769330401013302979756863772272579581147366541603295414977498906437376653743462123862293077389367327847477928115235027790117287569141443536736208873885669501223064837777712198029329482083638544592110075567100648650477273951609282530924355093168889901788271269605113527023542244051616916890473306694192943770611000169151730735774220047331693868721751674075083042094958328871421802387187081697840091041151381555083892936659112833522009154644166523054353268669633853099166907203482337430381407691281228765109796511165466173986383125671703916990710795796767236623008437209166595219488600799958559077103680692565989583254551990959988455000953896472378645932739849469419130356310476076339253866925628004414575321500866434444597653650411679080288102758050731350809706051534674537263841884151217505121823033341646375656690347700605445899614728372361720206159916227207428390660497415764269433243372812467537680296407510428897783830915302045770314559449666435264381367259754151996227943082660155872517081601891594732994389372811573916166059370464053461055761387884967899126551603089198959241578464160183921768177227055080207840368249132478772601025294648369827119549295984591550749949777864048552236320204976512070696963318309067516144545101374114058624224996812259322495855280926928996337263589288423563739622731170515418716260148841347705673039797049303447627164406586397627766144828253738675075203002984283386251859183535396405678807587338709184701175275780628330559077595433505115288234462183820644639177084674895593074514935171267001678836151780597344990289164712058162129337704134002858396799084302662561357892511178751825708373097507199716188827788405270398480484309387384469319559961781911245290126880608283996887378497569748196141855676823268676673128402283536503222632500306002691232133862398339149569985301454649513668310336747797326763591273719284165764394760912223717809749419384201555128657474065953916197810733581799963159180214091419467368746416281551504971715240380265544471761962546337016297276764861425838162104671337496786452584845328742370416789450003187889906670840257905346240300191373253188413604003973178623926204830284560826839172947846811083523564151876473073775569143696304694728031891718161037477052168277081119937044967549479915194861903222140161445625782271722463667026533837694397496738903588733234233692338694990966075336273693103023397265052423728140586211964488311919100209815124732234760537022818603215607728914491018025487238404288974905737994685074507651845331606810136046782638438634229795685291577057118677470752745470604389465312361190606502283181814480248930097301813406753221012030254415543630062144393108655491415736361899123727988933060513694171481728600021751854761363546696778492298766972345085406790202828162444292671075546914659716185425757958427100659702617524244540925163167890236774854074991427507692885573725767467363697842609667977425847584189645895558900383685375471478244030881453815765926350794885466944350052241080835928839312539762839604873887647148953102793799042650295404121336459681958756054114309258332674740919728611324281127348892200803962774232626331192146897686774156975645198029385568986472334917602623533072915119085705444023421065540200260972365083812809094143636188329646306821183949060327737554759128152598424382394937090371617579720705682940319213028202380522515881618390353911458485222459693768720907254632045793255269301909595389073259599075078593150727782119591078296481055813642925869559248338897754448274982273061984699930574520974086397975550838063458901846120490622395884541853575690669399023451087009497737651079921678607501006408128421262142188103450613200223285241097289710597886415534156786421810807998591336123702487578758401573659304402036859702300275254635863982988610270815139641605085323211457376879742258162660896159481712443731772284906066520321893366385429125494795297427935002734039666555021450886769505578343326181132086194008255736985471025632602972366415133943120796758822112901735012282426459048298203449990046233652653484045159505547244817601599586252630433650756404380581022679803760535901190565156944520487513551617012328698965918405163185658764738918532109389147649701803402277056578946090136207006110514706897406599020722534690013527640862531612296974819495720539900073852797333092133236839892223250269494680455339571384430904957496077470574380384482519573293903706383100283464033192198365263990015235975891446414182413230174057009184771395047223902522658303384185612896738052864262659602169546736823117493407790999361104447462554124587924382408631085098613233939129999506333496744264608474803828756475183363244220911121709267395973107453174456172951192327678073663155479006359478795493523610095709213686809665749064127758919862246546765393236888052904475580642381843705556147580959455973533806324209778476743272539903266421628618002694186313784301500569988074322656984557290272365195580623451033666513626735323913182466524312433504910818839167864560364308613747670040380460585900968561313587267170814024188502175133146879549237242047210266020508501919137197672438165829188467036607259297973167993612039597534830380000612856827327794893895833080315428886376960204710463185310397030051367039955968982040804599324198861561067243510148889758983869860285716129980398500682349431045909819306322969127186917159687336341445774451309454633561939314776443434161017004238722873959661138357375892253723253473034463273321783679939002788633146520614832679993412195566101574069041059096392733615777162732656785094027996751030889757135658779549198749332403732068415753592550583027522050872485624505817027267099562875466809669339282292266995342591125370504446608115553249894242616885773849280584651246377015384648389751514999518451366873927949017914233507659523652464457270014689213877569423624596430422714410115167859545169923709971036371810718735649957150763409320690501892059195381782054326531721694838155982224651917754417005904992213167133088935840951208332670500162455857272045683060963300315989923896790200434359883046530259147285723629685019283566431000692060271800810309384484656718149566696937647155104003986033227820728398247933203850565700067223755129325208063187186047097351527328825692438494366364768345924850155334029390790383743815896234528975555593327346760484159170462703036940775149268426860912506215176172339174099714617274091400881918750012330612093758467141528379166003629614611558699483922195275052137018332877530451248437341711273666279339124484026387362885086255808830895652454532215994872984010461127650533152057000014612318331454337983770636014881768499458363467745215350107956702355448548890792889392822193216467887781977661279995617226608260632126756458870163600814098901735342419776160999325056910220394054028788665114928748483874015656312349996557514015169739501719884052765533052254721016056386678837796416458911158073160843507719103763975100394559695558249728932176802726515007576641414732243732033539315366414429598612517782945662754634154664990810376698792053506436207948325634427527286252291151894037033602068973455267607205231140749286288627246169980668159280860967872692233315743622247573714901807777089876558067198425199208329400878728270378727554600361055707691607126100489572033713392501833897047957500568379312104067772672704165576934414628848977802450942227329669933265973802878504855709875744478831051933341524375812914252694248433940426742821695343236592986895756459910547731049726479039075560171739158718152120803416853621046113691902744685823832848634480144128803362171118114135064052394438017729561352587380896684940455588265702741715484935414502068735946565268497830256795652953915885612341458301461520065010548174233321246353413666428282334024806499140073002666121390026051571184223024181139683209049600321793977414265370437271664586384001714030245791302918915219005632651013338282249191625743946500219733175681220608905905752774243772675102385067685708038315565511460819725818892331676747972819717207582291350162207521954981659366288098472047052933167694833386906455609152160916297786575611795567104102253140106082221261536628402510600814286465948504467436627588585356673813250045851035073020546927666453741845753469942068992486169469025255943522638149006569144632644096703171666166101814270084490816936442228164013498281284920202361380517766525515501317083473883028195436759566308555555376898658531760831932247156863744699729705371087154681771505713598678826428582291460233040990670231127088218332598288857329801798424955129750774743551046474330335845903076725059603191525251025353392829546754976453467778108928029818655862639821262912408698270112893509964600450852198324553740371827636774555433201402980353679734604894262567632906707189478537933252914545331072156694731603656221161073496905211681802353289476349448564647176418910115492729185207587938142883522994340825997491489739982339467556898851899664675932992088215608764240842713567605258249599902062624751295122256276280290252868759992435327971142984202643849543637586381657058661126865205450547061350299299025141290124997881908431494215312018269987024882810656919389717402051634088297866993878155269807074659740493994330499973803587127342995269205191664031751414872404839177866465973677749635330267872147172995816632387077253853330181029717492300211386085914527470394791201854973193494046846236544362757337049538451455045351249667733384989604228880041851616301693061145422520354299220134560476607984373267413669656202871557592549751616518881503170595001315770665523844736887562221920990101741014740322153691437742285368900173463197940819846471816026958059274488642377532261373773767269387572901807400210986962317324048098580601194199567123292308342117169591143444477954907806891597507133758023158240317029070873087911947562276542137274215753585065175645130689313751566539217600420881131743217548030768370478326350096549665427888600690265063832609097932494001253601994838195154161981425304221393955611335569505795610140941932860381074430435269883507700219018041963323858160040328442636809607698633610295624971710934022755950474149964282548939422480429931977015131729379759432676035020705246881507633540698055428097360034717657961312722112821937539369821299787560887515183474746245201346458140063374685708210126032212020102935566023739438117431947752989148259964090004226353782620566991025738449699185691510611261599622005962980722766920684633445137726514398190964802945402547662509547709969191604997841466678098086405895926808683371413909754451548036480588326554635035747617336558440234739403643851847122644854621460427607532250138410925436220399478965234552142734923418058819987940200976553358310189945547981335713536296941816300775393466058377630620736537867180425144415038485247210080564249354909726584270169549059279697877959527442104791730946975649868813179624450455442320407181053395395300839195684407571938134315314815846490372976703371764727162999686240300998431449328202574946797390277065006684673900194389044839166596796323693784962079823328377088625625624273201959603444448850232311717585993518481848170831387419257652461937062608111982635178450557413794657138805787978460415979661620587086860510455940649508685439935704877175828284668678175845131100817894539923330998838514683794483495734379698595271696647365866080339785434855627356895859949764013099173708505343852254866394256029250362112420282907787421803850142609640004337268776436816664089819008803590149937069157518867503991632432799529712429270789753029870645683594585775161404554095728208426450156108073177302719831863842731016933737361397147564606601323760677553191810395051470906042448929639625547048790601101475350462141006269615815559809644387085641735301340244376018825437060008487914142338416255465759948884736855191932518754538218437333045727086803001177617600179216759356562425939733685167461374553437769685201004110490944873456010099323317854982834862006343071642288508864365930596402147506222143583733568058010753661617468980738476358266461898121952898338679310418952639728600373331298810763226583980717919186266831301310992908171047880269542111047012750967895339673402583080468663877417606991097144379410216670930033706962416217975596763522493928587665401194994933584838090310640308507946269004538355673496386331210439044375297165889370567764009496815043956095981639913196816475603062460504207269897356765125867058225526974894261422462247934353394399672098475691125006808288096724488335495292451618619420580559332038991180681738636704593812441128628159567717675223848998767830339300434629814646511146485931889208067629947669700551512529262290429909576718769176080948058597606452132623721547141437190220247875840101210282894393690033055866766686301312478742761744099374923654987483100110697636787646270995816804380891228212742744755920970870247700725573278350244119087565069130599816699751734082542413944000868480694760234483342634984467950818159924862426301935317566130352948590242875276607901439112627885665827257363017144594378380354295802328351527107235420563937489342103721150001700216563524131596406632466613459140208681950025387616602716573748865511537452005939246602135419377315691949638146295824130209298644470338916423957237755416970313911256176803528838812483818642656046358564310973683418568728477210348690731667565832392387065026455861902002788121166625526641544042069015779142412486710122452092169292779902711774393365984826696863883366346401877899498182834824682073387547142389986408620421350749803701343853240919964072036132624595311705853039583404932710049134233555694598528024774367541351544342192469219320241912960805757222715611824983458770836239748105708766213834000932604134894130266535006933850540741698879365764492288200174173663731887540027808134541736338961688458006919036945406184887306063059431690407229244378981875624603209372890073011942487486985491625594288647372766578337556104508026332507802601864919828957288581189717226647982671189645032072449792514054832343246997963322862607554940819483414986366874070600142157422468901264896966682205410754761760186935580670216419170905230513545270909172818850402405384401461974100128557904838340201825684836705127819163627178956997486280332252959057997398189309235321756995757848425311683759354526343591072729536929944663454234465718327480427716154822334525721447645923543803146417897110571676727822325742968019638977187644183310217951980315115651745979476768935851102656110184584661132302564343067007499715794961683477456018518040819604825917258013028435166967734081487677212698459754528725259543175742045233887537966501803372056283956630522901809647848236486160878187273450878380022223206424690047299289657675730165454777253292464572735761234701734558907032153237543112449436809259885941991241281148088029691076249103383754801676519622719949222914026878671803260558508995369002789081722948064933089881989295303613786608963233842062997493064696501930888813436450083572827683719860064857220783134250961316106908356578599345308144613850119776360967371694352703278477417304321070591205940370886027061036332823359630815665721155772504136863126237773266501714137581831762783760731712222054242007480863864162689241420099562334281872285592385214355200686581861589714372798646896151747872873157759385990394864927071406190720624674449203557465683251101190698687207252002775450651421946862999246000531940085745643005383052785072253213330633593183043547105522194631649937350956282059771975332202327165000544828960685751077207364047763814525021655294682783419175210590132763765053384289092802198335875969915761809684440878055922807865119739347412889215199508258379154608073126274627294007240663824811470313384125396144794267627972645462016241617768861065851036954560337868480748937302000391668600787395509579848458487453178400152375574599065561537970801758099639357873357071612505795918398822290204201360247980053634336688209252108713215768232035555596355241752010325993119071069212783556257359444625234016085475726519579698518883191919013112445692778699553100786715150190069068747603322685281883433520077107260370508594289619029865882693255678037870300860875838183271806129000204791315517613771022897483180722549389721992782408280036284565350611727377334337222366309229406767761673468943024124493516776860795425908116185286873443216632526830570002557123635901869259412130064447503197248294846589644061403893914810405671514405829988468424243116849525423695457851653841049196003533481100910207877067237228395197624526658763314300890062230323736757724285746977115524735636918962119836002596230101039956821642491140353376360160037533729067238552774717614522715981606532901533879706562083429319265001324984668372118799378964749911797483219639690184218341476142938352504901459430884698565734160340807007261227383220703159909988448813391505880188583813649230998086125329244394929488690224314161251375137547646572879486240503558265262836952569234222895287116051397453611312030202345129853920062723156368535089221555516787841190417886803680223962672983353759604362572395109589913861707182345702180428987756495522682487707844577040665890325719662638485863804940304157311147198258756966190808093491892710770548003830125569273088384010524218985465324975775329267911372068243582889530376443968881328244032070453222000654673951853030711174764311558672083185273145432964996313330196073683031635017969988361155980447011433854379958636448826848169538038150597501946030911302550129151898432773009220484585638901450409896949599167394545531070913123938976355220491528285829798045139978116873630035805852753326358399835080658117536960669663533911704396019072308733340092538842598947815995157583652326856407149105158637579313571317633531933929399116283805575696864430138486027627026879407649370581863539197017836497998124258401606491451566835389284272854337087147292381057997518470623138752652194597464260555586605594239803203907158408068294150651825667978261192143767682559718961773133592056063338818568188736198065427040019436262526499354515100389546966382073756632909380905033137086585360748782733702342611167128798578317730312481298996719245005171811857555261574627826877867936360836365487778964084835988442013542527197694817581254208900460044241810218508816400263154251765724314906806045822597901680765198927463299556119442487056142404867563341697313993752514653302531185990611042419896399610040685267880586197585244069559205868039248095657265520084478626793358537274327554991108856903886160429432989778806315683002924629563183286456999732390946994215321819348844623389633386318920134834437955762311708040843492332568995839396977760806151231200930384806736858522442402049306643031764108752307399716708511268530276754227346707501530433621386249093887273458235033087165943726216060446906581213080883999460256649092653948502188987501410802552702110236809480128839463248973812732408355868868972800601352127180824133429286953406386346689110468683474195921080447072575556615167543361507632587874814665250296883379480811692910861895310686752297741076916302587522061701809976647662436316290064831835219286296074228253900527368530382425494867776255180433491993032834371841175392310951632155171981507794387502107270457126059733069264083298130644621799536615830771317011999033159998794538220311667968759031553893093283222068053558652459525466947481825159600025179672891057403322716644661629075108097427526397767252958387536056783877545568860736170085037308672945677668062434538947865764537227068282772693389885477237780982248613563150650647861196774794827652142443937567613099798644414314873451540638565145801218761796426582952924718099410562932537190763114906472334197023362595830720151545206749549124178860293667889552214502983418376364611534742888124594755724578542557127420701748001931470800251505447156997339298317074076912530059274588418538324952466328054774695351350321046964994900324892937210711259846791323156833886479050065303921630326290808196222887629143416984554008654719882418142213259923742833521271269097139661474209277351215072613805188215196318901066127304877256969185362045433250352676903273492155170198774724749970631766728543353027406015367398590423404062551313888895916467629417082010402472834686441840950109203709834532422184344699389295597181084971267393991732172254093832501091221608065367617298658253842235078668111986385633644887268059486841387760898615162013404215082795158049863548089727279307776712513689062023437290096887739487106060037585060635905983897386542263776417198119695328649435614771394531593467201838432813876931547472124677186656614368993425257249976170417164605863158467494249205843257286741637454728805409447280551440321110926628886915609317646208125137486228636006120090036940242390178248515241539198464050558855182425182218818442186207151064971540728962522715488501454757946200745266441583446480020283224514737535511729865691552244750812172910216047101593953297205079736329891318046027644907829198001650965228390614346344458719147180924945715535698762597607768618754186345746977481230992341487876731138387420674816077473496778325349755858577292737291962422541125248243647683227125108996150710993969384642707150185034143591139060487223234886984978287695193832251587616201092418387620923065433849931259510190088494061839273228597883361768739125212248423016549276386182841587683530591098027404356075267825143548495660023036767964293521104274833971630163994711404043724896296445545751239326133384348848700818072090731144676255431543063083740834470360412947028792330659430904394072477116732502087500113672651733319912079782951412540184402874235326910109836251895815390542871356908939599480604434150758042065814706635039298203097904121407067084496549768467890553383492199546403235372590101754792333752183097778255732369755218326615722151999990615584919343190621184022698941724080811301573155010291841175097483383463493116047189221778319583419793656378138753430134986038002647096150587416402385410971044481073313466321131107221050692443828087856466627402656756166144965580958523956891457523295673030717128374055865222881999008593512544176272631498132815731591374442413453535991803198564310692256325256213075749234943589096900102338430172729858048225009563842088271363061656204491338646949641055995314323968584787075524050783698980325149032004686521718764038520571121587870614931594284378643609452579097288838762828594377569982635750013726479819325638399049120589367086573979773965682465135323259832257754566464301998617376680190090024421253119639697245058196617205758423861980537364035128059854065056892655755478029978687402075621729662747854540933514631594421263641663510993777132704781490272753290652593062891926408523953874006835270016442602167038516820515534127872235465968898343573819058434623676850560633722332383492152572057884312132456317851100082862861204572958470448202083614304187899153196657173904796827907167300706528023251029796551222150625942826780067259816026954314811549153831071227570976672167333030349129237129255721872836690942837529969888784532736615612238323252040607835426459475494835820237223958198545208783536521434235858648249098017134168914941401581155414999452720806377089559071350345461405246529705044050640479728779456383173560823340767258321528099294195642863828451842989627842250254887316775695229442798904240207144601547039461762440776181895085187923521980074692908234871943232785839655701715987363915076219984141589204125468549045415305075619860349381417660127749882097811227295420018294128809640818180119197327954470358924526055166156225856862171127642834199020560641889600004276986662820847566213928128920388665396825392803667069753612154541943760369338281071749119153534319700299683750619583733544386088794669626069332439788416128580703550956956490137019808259273607760808019553743545004863731452701822722713866395676946513929998525097748161490791924019321765906642457169020268572849491407642479914268000833425498795930485926343405527171195078983031925386360662802352493621804807210727254729974784537049556913109448592556093009468722009066058862376592030512950528915619814980711086375788967834923460493574575758859132141972479256031680483254370024100475208128756125462911360625238019081275671830093190354107679184665217276861888452301299779007679903989531383385024009521840123134298097419759643792704525119617152924799835111946208498365748386041772412793157021197184892060576495584846280785433217352294635781561886887409146305845781073017183090565779863266503649416102542833632415162984914907076917247140094682670591458126287389145521648565765606084285270951902995447518594878372228292474345131532704673273281658465193969749006824764264452875432932116596890501739888190579053937289270087805978525736107277116781901090125888212294757842363185915409648834490388810908072066141430711130322630961137543272513367714453029546259429027067842279279843232209353825648591171079043651644765620439859831727327124833779512767975662412138954453152932710105664884762400964546845619902402592648137581086130305722986315914419802558368565931109217950919878506640443828163951829463776178082340098724695858986233670962332391916942491999754724070266339304783712181735030041240542153314224478903506823428937663283387049474202244094839154521393456637803065406067816003779129859067717344455332541170762115642313062702569363577117585187541792716969254524596403151590017765559672925177442990720091349027982984716780847785472371306874769528460749566317927513844859179095680848379180353165576941312753804726891393356771941155200531047016625154206370775171977036843846291344111047732493394414695054901571920844297025973299745315545027493436902685634901859165191284537664588682380218657509455102748877899649647250498399740547923547101973170448463101156516730704568060944335479628517408808544456924520325709977523522523015762969627888162555934750543940472402699756545452260759279394857871594556267954339427560217889960363337839286973097419977655737629102111752985846325826326215372155529023448815216371506852940320165514240789757540783639881308419227411478916491369644714859817864420992484622698262338600070637484048629974856951984570764120080348479719164474438778967094015652052655677193971338813149905579288514372531107754026444103003925008704721980348201857358498960229725975165913727684826580689956804087144593180144342985020438752569160751472862491983787667474019576764409371570323445263531165604539290168325325895145463967983589956586632213159761638781499363459247280877122755049861249828968461997898396736495825405106505649463620812121274623513241877873229470103225288051452701077658364025026295886225245076166531877060178048124051236435630653786136471674075999224049190563106567926686621206831504549253302403342538195995488259374617245514691286587578910108594565673326092423024635376114199916392552486994940971007148960967586439627509609995475776533201425934779819165305062514763942496151884507696955270572662591593616344122083808462517679717242938475104094999595055777402514731520601678510969109286570910047882003472297807521311662487312049077197312304973590946727786644438749638135853277819155100051517684395410089802428784967399501342124434995932985216419324895705676333903698820276305513640053353769671812066707234262467541877385526800603907826015699366869817647011420502684574841066289419265744829383803243623797493710013844046699654337694085770159081687571792579077885624478865084883830179824461655078438847029484712063364818826947453688419508723418813384793367222902270810565660525195670827674993202444214313135561298285686871097605870330291887851217196852090182733945965383733423934663408726728003259686430039458439735333807212558711484191931037578880335686128438102506595879303016288855756172262664796649273025434638137294879111563067430628589228079361236258021717069023106356271217945297742372196883139568111037205167674426077817321789552701789277435467696760006197325393659166646381679462977797997834547789715879093744752455461225228091595731127317756860953347670509255128448332588137383867199380041147718328825140079476751682729121139171462165134589755916573018889684548647700586147632533719219715601810549777112903648675101736074629544158449763875343726719000404202529742359146617888014549005992932887903084322179804610011957744757867254089867489087647388843632749926581338366372563860387180657234681994920708888646353666307153737059747882344482259628793494200983503908760486261915411957593285429533006244226923894299592677536468884885293961182153210061449277009301289097121897612418596877628841607404980784329722785174975063533004987084731906753950209925378338204272770289981286823273602269742066890280376346687377851578245542060229017990668876233466246576485688419938565396957454889344442718602801501840121487021147413288024805354335080160658143108309787170944088003726168287129311311141201919052242232577442658292023375649720674086116309772900622756777161251690659734751381089638879091348681944497267168433261564659654200045230442893765915486189218961278934780275670132381328381839434319168422644127393761793341776312800744726933382818229070237846022920638445798263689595288690210831261355951730252454436788739568077454759311449984426327456139816166793834251317565605204434069798645378400819546816172174041442171237793123475322440801390890156776578901638461148600041807899335801057784664263289749184926035447551529796988630261442488485684563896219865175909712435008052969248079570471764294898319187636115549135006492333001266547167429375294819809925288243777377092406083824822196388218025143718586364247088757823181022311251230456246183113728968203028259311613674924383655264408274006985042196026563439022112336726777375341710347981966412939945164513687711723190132190385575261088622690867700432088458240234460738455258813449438216512929478247310591102204945496212154281055950765987695634610065956461496681960703209601706036558486856713924881739326231581832726035783198989032709068793597802794010782110422017275680722158263307104208331175055394916328915421418839147789497894784286892155644153069372103106452559361084685458133327047789602889932610863335930389823178045029821772635602626101226152808281649265583675479614836709229814051173858025662683552337078437024649354426622876428614337939999687499880029569336056949343049669880103699988183708913375912939975858441240688999937075347252572528589151883012172587214345470940942599400572442517927263886948745269361525062037256672595276877638400022153431601212211269671686475945469996670809790883033826974763360334486413457086799872411158609690116181605568796328635258440276321511649900237831244796729206023893457861745513479456647898597604880526610536836719238957206247230148061903486631395087190732124067061314041005367499360609785721688472663887142099352817546329325873063422008213345830349722915225798806617929676957837785693585967615792019386756894033167557970745821820324048776988630778637234499464516508504157895437151509805906138452924972790171942007952099485278233547703268546913195227945125070549968342732899824278961079747220306250907378744220017428438982720495012510600767219356321448876178433969716797357548346544073807996054386591941830768972535691738996838346142660030417260356479029511096455602851047536439541251249711640943048775791081710092797649133743502289634338642285704788040580649850296171891009494706800825886946330809636674651261583687919060478438039949015878590898550396155400789986734896350669434703747664104083331045383863653104390206100810137707901369986607848685730660157607332859500559116337427007969409867911001807327894631828884133073857618001927246802386553781840623042184190499747825269228716589602925604588268144886788380739053768259888194577915826865236955861980467982414992719121927340396914824171964601690586461642335796177671783482709345194459023858687924160373232396815376879805661066462574383410778429385583574968183136645126345085173511279029149279451768792690810122234959046683578579670122399624296099401470941992843906528712959819893304396387252672466158781968398989883280442300105052093226129229677314125201699989387615391082721170387241308231520743792367065006875746264045750001691129257088682177288328988831826492087013447011962343120108634382224181029210510472174873719219261972809890248851952949716052052682522194610394288089387348070778143377547178227144715731788254175860914526729997961137914001818912575069706935572963153268819823076853373358942270201325181232903128447793019639827963829706792854218857975446133886089143147177800875547479537519681536993060635628292685377057380606596862875144820013693454882303988829498161670088919607336285120385579923138565100380877293566457664394312182091342058016599161411678562238309311789504310021938472225224647822154286566759996681329786484874342979816624390672904817897082329263320605318314807779456338725977552256834592978561346412944501136719390705594847579317408630343943400913372378690936954058427459904616919409536371130764342347254573527160104004314888043703020932388769126130782835298501760472503633662036104746602996913174889651388590790872873004929462270689183631296048562689769427116585100582418940446963057306059670040444934886329589611384437034313173298478363591201527107267460151930661906223358845149984154119202274355273161623901219928908859582168655322522028114607457797168410937689121995733565951642649288627128336107053575521371634837346454727872098967096435877293167970297405831177618047899778107140993605757164893461124159264562567483257713922719687650163837846940628715604489040480328100938856905571137956828755492514062803471823588278989306871259691307510378674244319980308694075178952441951065345802945902222877381959310787912799429834167635205595935289082890261157132921795840549884969048444578007938556381777080678798958547941369071407895708194689772192342284787730483429120827881817797040298370881034361088633803163600366344695087737484187019819851548933956723059580967156887976420410792409132975829745906969751076472283772724045473663033176840737078927359621834242625301127412508943997452777118868465964365531075017105263795012238315160969001117037226928976362375143187355699569969120139975036477965352965570931415378302381343645414919207397775523505042189129160852257302176958292170423537082360407278886973826513117561486976945943308268348530326724317393110527974806222623895489915794547157286267834912738979659575173999902585226052145132951867684483013482042172155487028730263515707738667674680311044422318331418049560325288488147555270418558069668423731873675616965508981819525600949866548087764278990340921279341178946658799214880282921961228398533265337969238652857568417210151697067963297173606604939501491494815950457843376687056103013927512057117149599282355964409429127593353117149363166985762328009308941928869143735627956558327524157204386271743004995402842993814309080619204589087170325217468701903739466142779505075073269700068932416304020898693145363315517394126211420776119606911827966531288852757162126496378746355874093894053516191397282221821408107498805874004023512905763064408088410636841974632589263743303283864241499644007029325270015647157475076547443064895343288371627964512163070460591176654575212325096426022250983078828154302254758152460836601429338978037344532191783470620402713292031788510520633989760766039331000441082622811720730395345516841360363531637428037876863377928634592141025112302141351879505690456401116781602230017936087841398939332240196591202185381847478747811560185672153235259884471549496469172710112176924309165610315246881433587178551057724205050852180711155823764750366535997112505434786472311022361600492364815368019773298250964055383114765579737306803733809796014544855182889488288252020527992239817955831971662227636541762581956308402486178016414971852804838693294679950807017593886802856588391713532360238061369451873148195265989709132349058745234348186299517046627809686933947421831058995552641359432762452119829138325063447736259516442544395721424168911917180458029123599826936108080552239669036474583270817295881246430259917201365889893100462666823643568985092660757677883639878167865750248344813788225708301612477897382350693846419981288045325038570186717274808198790226221338587306777675581932733662913533089257413080087337063080528497457292247027491333660173526540240466683159468661343573886969133412434742578690617051514995005944698100323331195219704329643839067875920683648959960249814522154293329724196767666973594278532948782960055010312733154502830451086293249825135597512477878041372718723885067689017277372572285042009936863601045531723849173902654529855736481881375998561872641351062193918761714882486829434066915498276708819652220984148413681494111008791872694267141813623509682626421815690197161999760061823965229468566275131002822402082734945213664649233726981341827589392469873639481175668045639883900771922218005360654824017675980570482012465038819450523582686181488400404783861474907260669702741588426823792433508108066596797233995167961572186117107086538175405555366671846580338680199484197005611908656819818385666466356742557302082184945808062872686020450550342611827331988814643869099609102174071439282808251294074420711742448689737514177847235270784651666581756598175917175711312731333445773890793677980382656328479903422386946035712702153757833129092104949064109306714028263451331976015249482529041686888839088992477444145589741923714414511180812371679995447368757110201404820391819606878088323112298080627737645027851531040758533587638506988746887401241461359543763166872483125985286794614467149295276282472358750623736141742246105729905861255524236917703851253146650910017741282226718457931477597561691524292286395262723498445617991754370250755979054667152092810713152792431659125567947499508917940576744021402662642326759478947894683813769217614504237752320944985294038809315762805907349031761155161870709130712108472541756169204106224111753087746222219723609298849571848696126554531192363822258674981250475570232771388131990835422055637035834179540071321862666274783842207549517057192668571945947305729773740191730979048611498394521392480477141628751946124738290533037294537223000495103184507959055208698284204516270717329548528290831949919483630740627810675962480959362236900742727321723065672942449646014477103329142485540036369146357174232002626145915574749702054664868009414408704393042218098874616731598664041125299139266038634008240462464453281675911589523894253458642016134932304555707614457261781795125781899099901175141771732696161913179064577061346630257739788191764543714662656405318142240980895786645340116996865882777298467954632204375474891027021151904613540751532619852934150569762063451543817724838447051944797910081227887898233874000361360699363392137955250809256283176986359221338614162789140796333964977153880488510686213206681642991367995702405582970186109338979525670467803801955419738522356891721576632024618607763517803501313817038696932540516979820532460820879502521438606658472867162322181110269678429362117556983743702711883392586018577563298064301030118448506926358017032907849264489706292566245887073052856406578432053658534353461290902419671380165712581904681208603750182543264798399200236381331312973900229612998551574261510549569033818481403881711425299415134308125772238030057106307935042856859866033066413392583961563492691144480340163952885383947765590401815411299525053053107377820179627541529737034996331231836464684721411707422088350355848185324618623943620672787299086370436771158529201831619042114298069702800689747264691281427921580596961139772232101969312897622423760142044433212143471676215003796412080495954936151799513783165362115113870870564010820201592361392999688438103754076100777693754039374393621124593041662023820315289176869478129630447566323202106377715167572348958820913822212259140028162723628488009669075155341033082533386084027757720639096886161850218585278754337889789128302070478178292400183129748627098646890588976857078421480048754295205523279726095832387165006658739935045773019095101881583350194396514304727584141326475942436972223508578106403995860632933493492827962142332815907562108365430141251546422688016560951705752450117514010356335430815968065413118800266711552745534457011583137865500922429368734757698573346420820801105265953486675032265865119837586544301287464025460063843600617420777214954780389873314329821827681414931809730485403450649675516685568161634977556961392347883788689090871058533295995275741185902691417474879330222512965225288147740050159517515969334143592046883138654660621549530505528095195101221744931103132063676455804710300680091243582393625667100956861185882939707237871606798648825813023326895391650765040477599478666561283248666049869992239005147301847658554132329443411506146453934895335277839525802138202612873276277833212277430322950406763391595768133122110474964999163252574352464007565709774015363841356332013438353549131357852576343637661299647112685524110799667459231518853556668539280509135447739119793263776434523311631846413285783097987178373313995105347277844768801270762924019684193615411221432034136537221390471944172544044070870857816218684491695950409771157167667909088893620286552044456075439356019040887045758516628396561766772611851039914706452731527109435975022765573730542506767614735528598431116749878038621120996496702362800215004068755153223402235491666029995188684035901827365571479243005265851902540867512938262576521237772768670838899741440871920862230382790778933927278298327475115712889965430386094747666462503680430112775425871957478358379493352202026126366109454858819676610492937802141899086683048945438167426230982454439947171727794983002700510155166975964743841098673829304227359005335341383723821956409608710666318401658582504757669439256251563088872711062543439082721659453082646326629539869767089960277049905745341925103624928040568954144674451059516128090534663413827225363876168428688220765863037057550294720741525031064459972590042068673881355026402924426083051816028867623924280897823504031137557950773064610606538105372960255005542694797228857991883340572303190114055603897254358622608035349902418009454969515632048225490559858131600771966874765093025902475237393766798502260050448267944370709290881604430013521607043153821905375748907810244148537343087029034354757701509381408438384504565926609157144618573413016678960297043315648185384130502614601203327664682335610960801512886088565686864292714786893528823348042423091778787399695251937519413128362244579724747039192899856268229849473866731201471876399873353505438168763687389206386921034131147425902160426122825909526631083917542898955992870381536368095685141372604868631363828696295293296250066790026955184427336780680219993606141248887540225439383195356335507018147070812335485157804942540902444664211248877674215144279849478109870737449088087295911460218471484064956872719540988379415033228712537915011820555471350153245342449667553624263080938779479943958123222415015346871025178640668749990122887855992659836571458593911639062043488640378788640207248047434225949830830373617946294402167142479083189296845187251280199808229966165327853640288341257320261268678153517234068879756075696083965939197182684439291263812039602459788099526883203787205818839961656420463471833751528512026400705015936869242707394138449115983019410442755386749110553533254205965173679536974488588799786600560216392607260551719724229498597976419720575022355595710129579106987077442372114872611713983257854519193252198444251857256851656390948724316386400849809026569135579442200375483317867201871874827568482289428287986340423339487893269629096024565905101526617941671020075182484457929658850401343587163103257460106277349238883522559112306678110490448048071206766234180994821178978365770229304244882708468076982006110840452241812688085342920450233836993548758495495091722423677222783085620399348054103877112626282138128283357580765136739639223538207202787027898402887962452445551035619546670560130425740218964394203302303136582727811438084784481649787244952896976518018130640119630548052154626881257187642758600911301551778947039400097330584405634750402736971645066963083667048030233978724517066147710677909250047172737066698514194043086935394220196921400516541801790347936970458816041559193449358675745045925960748920748304306501776333720183565441315610438366207651595715346110480105864335435609103781330095199096955882136687555409886055943776838898756149169204447067505575698472150153765334140026349773098006028586546142097073211822844483464899052611023704478661168961737376395889021824055546523380021524537039585274661669184248983769716369906645999693846398310523109201066870102712862696541847300485171406029126777986452340530087197852906153298004306733687862944127157946038496805146141859633088815635378035703974692935159970099480136102285232121748575223827736244868123210233932322635145077628577787212095715212565491916888261413669589650019326715434743558543329163200742911414713695776881562067208601734388217210047830899777787911684596546184000309716524272689873898334536394812550585493643074679859480377826181292829993872904542454366226546562231968923489800264355324259194197966625806789090035450899360362588091607972538147147423288185318054697513659200602194617735334585054845141969720199380746980210938175138439979661177326713671311841125016875831073949703140143003199976711868192318983451226188755140274888098670473818740794620362850032562020091049305743246740939156809352618684482683041166560232903113091541247778202313229945436675736137132699375700386545030224805676722405919587676593764589261845263112011294033383861867774729565290324712313013004621171417930866629475924799545059172551990812679654554383191114004479703269405761554793062491320695237828720856126286601147582587193351718895715098544139118202294741191690168968938547248595553739632591021046700415702267044212076849826591593561625522035259593745438860140042019273931169503683136837678894054137564901489800222649272218292551125370506495584805401531890821092865692011779153841402101484651111029127685504323797358519127765520801968927893197431289995284678319992825705066008818764348092670726734279989702808636849322276131895872227314797783607576920770773820891820984749463324680604079744550154004612861699945831445871977078281757361790299262749435945736290958082208252301700753426036563932096586609639943584182563298575795824153176388622520363306832118819323796480840075712511352536634423928080196392423799543042380789506355885109870979457220740092608530631667804118633645732995596254680622421536565203333902944608687365746802191152788512351629186217592886170435713873067188403729304907590400294947105491911822849654198016826268551052945666513874585603006055327936767925443108886411015640106724598225558402897673586606104769659094209967563155877499383408609469908121061266188046134275288204920958759243208778487966373332554872875274270804927437836184987775308444509426643942530567212551619997620059039101030912133340442811291006942009152577247044130301617590177933645065668469197075605134546950304755589267009564961766960196769764310286735426279388366807254257815924960312852103498338041227672058128123925682697926089002680248662846968105052873924351322640633511322268530281516798315554171183528754377891506392396874635325874217967132119995102881349879923256003708234408226840849297914595263014012220190964985400328957731991125247735494089795366120391626559959384921694151784002646908540584617151015136152635573952870931194999864389552101231061808022279146805985483199426607506726684879541230023400457723070742396892089680331426899845318017710528428578009077632643593641216187162381630714724185392324941767375116739805131254474449953828634695832862621853984266732147669045153498716203368230755999728067119878860847250036240355727639632635766012509808886578097011436561030836539194641440784957655410707340416977229771784689052822063044870054094822800227392880051183142913982039871395870501068192139041247802632568481778421515951095138058851461719495265248231969175175088156341801409810250023110666272256666481080603063438223280850857926818751358731920151250447147189359468530269753962698378867022073947545353425639548541246080897600053588915071184228294995815011083432704996254335716175368934846727274756055564878188272270639569654240083414015629833156702410430001349264043937102481228420892346512495935755653320979310827702380944958456444986319585204251433268643782582489534653690268859568542075810640627233266420475520797446575501622036982389777039758379903885650720565883903865206087503254519969516770322008035642647526963420385108611443748020516844707740650817367696695376529983584224554479426763327519708228034724303333312291628198538673361040830234820622828090406328717659750878834670654276717054434434147106437923375584284950188997595433006918603965457806951096561185839761949214638321433975190270554424214476871800178589220828735450348742051366555260952211965121951925113140041967420365178200220805080200542257459733358754266642758887545475646158136126232469052453783931677957541557089398737628232835709460779603266783049515480702510817106324656522670397772291525701784767833775759504332670050624211363624886815537951974823093791081166855884198990377704973430508430091200167074636271441246422238825485490219889450547699874323013693601056363460368674853970344467537770155468689054492112235418436497006596816087554028207555681138243809475573708212173307423307365128650116400708936805657796559800122600173517646457359292087945270327606749418074959496536621084802626373558977501571985466236556082222654102714272839130519086189421733652306211720216520332697178494299285619613526099832021258120064784228796971131706044971624234087866762667364196227976917305282894905863689995380642764875158212924566965002610446246337837814191084625380791689795896883505352500992968048537767805723000653822254670259605615371031104801064978116932487210616071375039207193316361597731995018258706834090796053410604255508749621602762943858535080629738595511911677210168876855430628684481851335370523645258749876584735297868396884298218792202859777482737937080184643061040133497175162453395520411117262115868193559298278306508410699779654435727592149847618949506688362867357030496805451252012804387333000129621980833031431751285776238773862181991541330514165058591597880883159932793850526607246292631218529173283266921183204572525658354153708406795803131509767221321181169319502668596628992140878067376734418132536747810547358588351065092816102142680003831583021329495198232048102726298830707376109320958292272285548661289607832813937525738671984041246474703062661448384381547037616394676331083575230811592342438582125550778403160778157685372275580812369421876951142553955301697207850330847780837501798954659526509221238668664024980638814670792464638343155003106016523733498777461896971614061070781856166165869652241443315593786611654322527669804983007121502891373954019730315137364311440394488498051430398244256086186135292527404770727290381272252310874136927743762290541401745534752627971192157584756993257829576809020977047740885152713898300985611157397470338130314719620259888413851096081034313492004138922688379074665757190840275760279728481361966782908022870074075566501001472002465674218250170581868872914552553395774817636267964668775705856253804996169871132657333527908060061580928984658859635496306656321302445602340056428767215008815486206210693108923695215566098826339873193095887650477986660021368641358844928136227157361874592311146209528784419024857840608272699804275676353902915711664061640052150925081154422273228673791754253868056593724725911635680960314575207946270559147434750032853826018862895512654554541693781534017937155128294960753527780017526327409003873994355606201961269324097435915132864519006277837962256390075368281003293337538526304914365892087927038043224175611897063242282302606083129729739422787015413122029085683355629586548998461297190269842810515895095899620518739584490995614599245529578161005996733651073238220806767117499205269840583776231153939930229843746428668354757855088233595922673371911935474600042420265039792143808940047825645426345144378737176261566425795109033051394377315865941979120998424599304436562510544456163848543598765323455553876492514999248018639382571650912730271274955336176809930664351837779844885754974269351261119239989499575291159705722764633871635038894267167766125705936060591247516429516435294823082999532455118689038574026219559141999869240059602490066495308157370024878811792519181667047624900988569306657702802470397296313135927131606383595352189792310573199415468710338744252075301144235184959892579304781623088729783172714752398477952973202626941250165593547388670227732052155298502626324444300987362596040394664501962054946711538666968221512177754283552385575677287735365273996544923058366052360844224351490016054714475716051220100047129616649894957397546205326878940975251146381773017760829733241263396889364394913211709316980869312516457151754181927906152187787324422387949991963090643425437038496774740140308690919046343125830004570604382921726370747859454493780492431783406973606306156281952001992315608675952859257717031694573870934372747477493266763456084967196515982856520916098961638848394908303762294553654549490667213663519901759726636709346545977598162795481470706928068488386302130066389982661282532307523482279047799416236720427570407349877025929152200033612856508698070650031281694456603770747027909726392481880176014473847422850850325561481365634083897266592107319202988082160996724267316698831975537201464974655437454660031939527684768475336156068505923841749244148711221301842498638309471688830098710347853140651222057861273677126412038744411282455020782043124345898029370713666005101718336551550160156659129990611412814815284221216382868172828052013047470827851330347273999807473961082335128400370687416608659923702803602931704756197561511820847419035862050030421941704698137528901636498554029926157844853341368040375108318869496092567933689786378951605828392293161104718642764860736020394867899952907955400965677816293508869987791853698059436552298939899247829605615617099747375172853500386382706303919793613085024834744877917909119822614293974604931799961749769660996671263506716742059126981128585875611972965347037646181501811178884507153297133077988814383058194552945240097655136958767231242243799030071801380349284055108562279135131131207818060408905487314452929928878197402342930671017086075977746365830965272667652620642832685544793539549127677667068587541307382355688259601520541390073582635692680031828157861402023105994071057970310313027792754330659009092723927661681865690098851035922922632155390457619450018296330671141073312029469549665088012729930104899428791803137432826918181539284020986444012178131472129028670699594655876623384591805668485317311987842911074709795772588702443510157472292024504603501116043714034282632791637207764785922695759559548119878965457555841733344130323036864254889818837561596022750423320855327440257498169081468800480472842947785977199493699083656380861728779964120595888641114157312494407941670453724060131073132293685850658388547092883901667294555614974349489531825076628243964317017773062884139693963147807676410667754879845115391520000865508380188739157295275868709282933847452044545530958269164198192193693260710038214364375084492696733802317979924937433566586864503287911525593847195942737680393459214786735760269672926624714224859558095191798586512407974567099142723974486786840667720100619932946254353637756460253561790188173341511257660218777212825017761566396424449465612207928824736042459856982430094685017253395448773563071792370508989016402212997534464187055411123894307725775281798016854232959226669631083956962344961561476088900319492647044560616681424485046970308872429699460197723340894344625377042511915241334991550265280559538904790528891618129530349371282928888968924404121813579026586145633222164443572970723670810153608833116642952141680801793492010133727655009221678871364030796941817889111514851132971767612998379840600466171374941095165611055023438883111896425623522376464813169718879495075663335166744665762883773959866837925613783961789727064056900663716856108834235588797882571204481644316972729556646912286475589464242994194789147469031984132239986107519606289111058286945357788462538577062117885328619005609731651171688600527657312763647522639184113928453736936342747570320508360022233996965398755333623391316340406783647340030316471674542240097962526765126228873437420144743576729247338958415002976095296064532703219573199336866299091965190284860807648478521409173702779049981763050287155438333947527957439195344187215765226115638658462862447503763732514083526743014236514045615416151798882950633698533636213072926576042945052152238107676766679143013708535806872878251716668743813548557098732636923844529083562019510549317526277281896977096689606215936915585965326076492208900638987144059313398836483311490197392685436452200387297555843259439655213772108369424762093163304954726373919179414659521204917447184944066834697799480403332940502051808512434521446946417949881634471140733373332472044687939435733151406166200357836834195651036318336954925605291297666395102391251503605478747183994807217278873931231851766900912447467897811633257222294625020600825329697895903608206657393043989427676591227259369650157093474821602040286367686061244263009444110241526452742694509434570457057577358995446159653580042755777694993609991557785542733226669452470994405135889309341461969687872862848873230651566701322256539104861254322533383384783172076654523976995926676460023225082698848835698847475211225460494316720249027990290683406425989062910084115551308652261709962225976107883018311905327372874924441916159968258146633288442518485109628983393440732533366167302244347716615544641356003606937267730393888251663713172088145299850429453200199917953305693146828825950660471984476584369353555814767119134444196377966942473259541966914318765722471073684671185392255113683005220164860355322419781218580420342945620945260744371501414932121319671280040189794994962193050182713056335194265238454434407620622026779029449615229544898595154356261090152681287559842246349166023996792950014202130317307446946896053537128778302161389922367676896398607868117995139248433290307989478529117479173484330859879700514727390379021435487832404784036939657583129180687115583424199043573754868339918625277215215750204467357536634656237806959163688983047794452339772532267449273421719218031718145357698232298041195691163834826465816592070548376162254411024145108565537198297694474175724381406692345989775192814326246118282881987436749476527782024717061920527975079716885459399905878950706693116007520403189125664468042575419292016379276059639461342532276567074498791420583077554226090387280122601728394961308999553467343929826605988026541312890536081931367187239947874275253036502297920885707287091997735537890979254034897814772469603382920404068080009496694175464471458490203573281866799227147006002672173994551790001972376977264684312376757523627039101340010822658935286492134782184321343282070291578265538061816999443993718077525335386219883250906460631671121194791057506282008465371165633236426068833723585577600566333953643351818414925072400936965866681852442845357434275242525661602039531518304407550007311486520781708016860965083235773099499650276602236148516162570465065818326891915042084178758828516939813850929446670781472130941493861742186235229764085201839792368690346623827951232954222591067383314168383964632492920761922193056643743005264512017871517490765083884743465092234505801294598602391376417524760006306251025440648709826796429884384303043872451267479272571723792250260452241568124562618716403751211541340017260500939023565349339817096173415698860270073751166807448265866540390008381315293597348698545643982020667098810389468088247524300554949087382042612878956808902723658128834770583348682877056827436550066727791075414274734987772128222204730260956790220616804950598820955274019905866396682998414012278692783816110703381677096527821744390436929856162281853638143476504996167978985411269354489997214039944179119232940924187152969594292196179163186938368709231428487951444936994020051422434190177427250482711969597042464780941617132254386430396515585734609384307300019281164471301963017266831100044143412940265354504709894166221407779473157408271835592548325785807889466221542334535316434789922970832051553953887178281999395311907277166944058020858739733432361853553209688848735063344141801607502767139235802106996234253236861456979056934193928316923107818087798638959085397252502916226564947821943663627299950626308806054844377977248770940363182597528284583736949316831520781647184896455752833034427212428272204902253865163132855248347766400917206535605165399102261401440081631248414580613720670935045162885238976135888246126418895864717515961969879555590377599474723976422523481364994590737690106622006718236201851462301806246598934413297391884041819747350961546251277960446340855080496135625602753961667998361765888718390315807830734732706865423714640868564197876629552761860986440615748066247618363127576434560959857365257436848308820051216044764112854121375876428172750764484169831512543285110403207591009475634231233425243117559812277747942035282851072907922360832862766682993603237721620169310617472596453998636572081705387558602924747971547324795726213976212671620753508211411762784973719972364058473194038107859452665064193299159174721518517409287757562642320072179812937758797827345743012224106194712391511449361088884556075255467277351168972010375724692246438444116476906693606428067819065020109735358681232318138423062917028199522904204645062144356634659396301571837536848363604570602789772825950732741213070937161352921228762472581752765182005407060964854379482534569725975504831635119689935787832427129014763024475398939142769597297361903710505000465444936613520181063302495790396375101708024200362455783994298882208384814901558082787074356735142163200539066625549011071332735951154767358526501205891643643292584874417668047656827995406051891106885190955313311666713186622269802321286432049704310019082056976463351776993667899766341869586183854715185510206193001907876360980677819224101866975415984182445408462196204389986929903375058713225352930544042094070940957084857722512065728008817531123066062067576111874612036546018986356506034115536199963795756215776500325090070364505043730241807679611377519989941267467428435873143259428285992906459887297607303072800115609214169977322414050063515540832721557293615585987339991171361513140342537647637445629105884117175113444261610181144206400023613959570611123465179293655932707378306933446373312552026180001348389327823146356688534936526460587507872912114394490401088766318935632410290091047229760601500739760662510949003196178968521765391390396603245810022669312806809030093467472331968246672521959140378673894347296432413235924890515213410685792386696490334533462584288050866426355103181239791267879278361688587912037465753752964090109494023606229926532508522754396632415485581273438550447279181039906507282204393371114285863875925580517219260853850845240866184049692816938686590997095624630618812678477609144183051838274938593837455892510871341465587663860280582436176144857820059068145651407653393139787225402656216589412845306147019726328204864688056102958042581148505856466532994643329045813074246392875585429412600780323165275191484546593638856383955640311224578451244339755763080577964878135530566421450492974988293505687527472489660177656728008938849713873537650313842840186021550862259817158636413630258531601414163065418358311240578531794194135580722838264888021642600250904408703801864920914255399769243072071643066296272410297887321206717216323436332036252688062435676113757615152042751987565137339393528790703372232472791719116556254846496997116438482792756848501096339311625327177824908281153320805123731595425756030917343978655680449530860710746125783320826218633317245248488660293352139573027329355751140757632007183809620962741390133174845027020806514816119948286603025556716185799599197453242561880258357224429066374245284927456734308023142973861949964411102295403713406412781864246171181554628183354131793150952391039860906522234279859138286176509313729733613888670730278919251765204544371453772800989981653572326558941453252831346975696435689514843644951699041415991364769257219227867442938472479732345334216251683865540917098436819006160828002368698960111811764865557492511931459565426933448535933625299215952492547239720880567420094585984711640276958476270110217826868826825172762426316462053654573874799891726405262130996585058786222210002834252122529101049657491533825980318139827646895788370005108182928227059956906562432755431763353455892094173579738504695036918762851817682276538801049402845592882290806124977692050451632040129259699817992047096282501201907982360253242381271129876780575713851215412821188215566169569575179593422782576620821783159941515218955627807288036891015002231732830284179377900277861802536755718961474630699913776139731896247804195451716682217628015402063205560026960761566904676843864982188924584149468126409641740854810213641328476715133503874957218464110077412474121356818196658232321016225630573924977438492180726435601010899752146045477222950901167779752038779040765294488632516122741000368359084403454240777932659388413824629035988199706392581228254041552467097820382055681788327761356968913580645405855402766335924986279408572436709523274790264913189548051835266773381951942068892719790134603168720295776843267332349487628280255280631514770413524995407791965635612047060664458454192757627457673729650344757482251332631738679270492839803203584685605043183613534843728515306006077756352842876310912037269038041214294952637563290729904268687473164546690894613262201807135676916366442961334125116697346097186462642188992671135108830444385367624896220687765343522892195974623045994736638906110716902287940335064070712014146993954612682999289375478810627081275675739436633744817617216659270294773914738341436232366899265449009013621764107061644040773902959323346465811648129407922649595599677396919201197031721879975655683247320828372773187577920246055471799997477237294425648410331040469775527578675556091297562172990439311769463814364758693822624289442600305451179852320034792088558764302904821211405515989562226113540065895396838687355122188239098830087765205562509759076280704061016049412184729280981431898609242441997789823667873577723050841415032111711048184931041204587803525535493131227805886210408929338091551696806759751862849067100465454777998543779076309270966073475169323811710544846567102312413086030235421464884308232416035834728083208538791489245683177431573280919803201990060754816108049822546005118528064619768876076034569341958961962404360637335129299559268709734956352625906925257123286762504520678195611283229557635437132111534600832519080374624301390193739922828664561319833515446671369875118661413991331786912932324795508550677597167749858705856316657262534601794807848190253789925017047037203130312877832512380643193336379527995732586359948432076995558668519688442876808204545019041918636310261229427601985633921350708976748524900979066317472202587507409599307789007035266252481835977035604421831833490510973581434061694225508207562001124493079780659165297702449398915454469258293561518090309375701911219319273080439620390263440350474444167069342705738362090371722385432383370080101610771784191848240343730994095045961012734017286710769541327107102263761786981321055700137366562454377819935825622378969713358131132704701258985389194192132112452361356326391190803143122586907701209127310841979681852824124887659758329488421952887378987992381367891078033670027419633779513601362231599390445788213286758051100619114264201186785074291147024056329268501440596951557399025163308479625383979692194399965775735705739167735946158813340300556408301582463950395815932131612861005800443565100738719198159034790779161312658238508729866518639418330435221975845876979524721793094875055900015245158412456256828840907574610320015703893087791323942909863675834182193602070413119537272060478821281555444965931281420770326349708903901748067374781403555000350257356148698417176663807024462846910763431912350733454615611373930257247960347575267876500889516645436006029542443888705308623521360990032144855598757141825311951887853128674593727722876218629138241850238675188684249332924782008179346772900644924580711950115770969212092852059873147349121087928482144460748323512012500002128166445538053180430330173329069618379812738523059990607218147486064027420029302008656494841765390926606468928630019700468740453509784294394790413573794721369892184759458341252970877226880022975550022279351910986251390305772190886498100947200218537145697494833408695693789082243876562406224319340460788237514475312971990495855492935750399351302029698588401760506610517532660400601736326359819291843305280658945986543218266880391352361672051078458715227414092647408046309366828301460842650159492135385445806135370875029930421563850043906114048076114168499550380501786655135611140662946357348880660120987227091571156917715545331949263810571816121842111650532192890583448192053263042111673641791463747087485799855765139802196179681774243324513300615000621090131303932443596018689775667142491561481351144371816641668806007414804569836813082853844350610193849849549327691073623639108051629868370524352271100472460773242313106654640068475243275148755717603322437226666088668543255836007585790037989261124267921653215419697822196457457095010613188731980959925692143030608269748565289951699184814091616192358678533744660127697795283020732317922970431054142193998092663216226788423116481086340572774704515769748651464398437990871037096645063074371721806764360528924387835505062703886413072754902701398248761651187225542418852057426878099475983345211112934226072845207899211158802991557202795521631403566655656282957535331754192659219944938974845008401238900463073056218579009138157380439938613323502300447801994925963264626347143604289911402047850296973452308784282940323635402828290363230713096193849721382621033725444869545686955803387068767502610974162726831734481170748532587906351085706606576570842187633836524996579554212124475453086207100872982732495282951889348188880505054283934637524605629694891590925630057668996335802010312869486729737325863556193072181627387780732228563731061581959652929970697424464113113100198299024987961685545059783870918497289416822433610158014186240292971077150268912368835918279415895264022251351983298973659777655851479758623379699754815733702959078469898657667510907610719641417482882340830086461083367898910659094799127354912396954015322781851776516640841566313568741862755545353544919600196981247830139612442261000142464984162056746824573189151110049171773663309114603124871903856927799104342251880370687114964233164094170498386559835186597386889676113416477750628990914401044871111087521321470243312454265620180223825973791485966266271081861636340371914216397205423986036402087769561183302894102988310632516293341919944614660404586603222888361190400936232318203907286378484160468300152301901598821959472426706544913357078956101786448398248801311014538791587130060996934175101275515867201252392969308268483596554541223655375506652677874143026498283587732922293152473333913333673560576265864938734638505453099381108649306465139680064729339964033343342429563723298333798991123852613147824382314279130761945276696108887971933483554153273103014932277546641403319488978618493426246903636453398695115842053910700604995109632482142424751931253705220489463917195925821833192978656991797655020323343331923420636599729889382620497905731700406842277969999088596291421178385291762672769142716432927495770838230192687086852094750712312287903809686718699681558237366361191805890922180074403844440440268820759621502440552176844685325991424590517139457651500703637501597225302105183754344351458112441534735847884962130223278351088266489937533576398690967668014186214943200802171725100038606203440172458541644383685329167124616245426335858371784510839690523300529275546923782351411507558313189817166652873469024654053460557455290960966451346413454670017125574610215419976767205267851924687515415587406636663531125965396045447272181356048422062300769632628246493289285995132704259178278153155898397298259223547393384342494023357176034545155890315571640917909906454717048385317198856248306753353260151123932990900474626258077031382102951345034337662567114486766776822737390626370706779161204897309530380961366421020225675263172588340268970364257581940926129952762235764054009268877593426290220326672902353544311482666482849348176789104152078258074736272338126295409206356693084480440986123005114235584656152197706400916043064514652205463206349879319081821057519462800579831159009565397771990516989416031851097152763610981424519080891864527418808660099874382043810726337242610133452356438332048864410443190190358727686051802506051105630569454560848135563916015522921273378712014857916639326406226058527971566808985724245892253230729571170576015553311595749565201076534676970191109836475350673568944676698330434096900938876275290489887494305915863353155032187892241085558303231921486302905008557583809244033842165130246164955790081589497956118978522160077282631164126772771269964948862197379481632753669212260922403416054752728841108281857009363421362051520398936594311045170416832066620145845570823704813617964990904406345276370215939435192710680891403532067483298889183299091612375311404773154697857528633958810148994281242480763485588944513175676165911702867293361671256284766492468882134949352746871242456132366779973177415223094456286127345459990185976060584817848354840759679041451015404093496092264782718248656649268313427671433100686779802295819389214206017883202555018806950606625651719067141644908759280254527065143333073684762202410798043610772283688610817186745701521789021123730565614118558325047042025847436197853199035375060324019669261509529225188780298924320245136577828788952338352420222051482060636366851694749845884096487917470032270840623200872784845918554840786919059264119986056984850076427515358404798117816208193733480016892805751604934377568020885523626406467897484696707360967773954986184890426634055060714960306416694397694094078601455137887613719732041933659399233105298440625263234161109052965953091797925549680722840662453957887118038039403082665173433264159035614396179512025169710222653302155496466837915027192245104148775172135071566431006412448938049565664063496167591795861144469135253458280233283444341161073096898622655768216813211814760062010296846238562644432859482344541671796109911991571992101364006533352426609761394440197421032920691582324614773851666705358586487724730586641442832312594823346875146509614314636887880160222523307156285646473788554381865224149226031744518170868712647594974262400014113408872994910211685885682984914256250711832908305920633128193251432586770740784413605088623838054674951895260826582532479112137959503678716911835249885622003537724722019180281230802730075196090172983250027938032715569956554767600930208982781789518080573355685962018715875067087005911411889756966519477522768300621897805086139969119284967222742763820694625554268269587388746143534230019975165028023168143841375529672540961895248746327333636259993046393384511847656173140475219198089204562956120923069214982661693303543864237465140488833023559001272813943623506163300325346431483628662798443042398119281186045217874522810217700207915782873762098550231443619239476450640054396632375167462856563496183121866297939211327557532771893673665291607759000135406342779626509254028477608040370007762127508837801580659650491890310422342856493659276650064749822506861532643877085040577207125767558476547908485462823825381562888898287496189806630577443377544840978715620361338330714885860639233903528668241371219567111641248644312379501079856320918884741403955781183778571480465510392989486696521681082037356194626723146622958797128034203858990067548739399262686846270699594801618035089243828574971554255794359808592788402683431121833381700285898838136903696678745539091218524674574197108811171929571224563501248414991669499860722167103524354560447648897614327402339399258768205619730836246784998157331744157850574720073151911042367804097019532492484295812673108706771334502561433362568817955090971383214295730963010246638808529531284319783605498989885229638405598163624569819614834341149221816450108190941171594910364120814014061729486992916053270631798136926037656598036744092430930196237126786916457860639779193628272439138386790010707988246936109084228330985543245803553874546796761130740247030756430615232485723509777293822764272670078772964026275259515407673303546913773881928523842895671461024238539769869132060344075686268721550942011313883014526432946592540285212191700148849571465295432731388700189529502291202131813186577349718052111279897293161030630203871009529200810911153016088637153598541299016839811556617292617308936488699980037066611298888245149338584771473497838003532152078340314620474921963589141428955860195431375133665764985051854311628252921781612834918192652999737476880233116618637675720675297205522044808304221210333939984682932963253531056422618954067387009628015444348611215622706703975755700952421442204237728364995762107968186897504359609314567445035108761375792908831570817835822561338763986107210830596513671028413870137631833823103537003439045915708895433068544843056273555509536885506361632662138630590012504349088632736921452409277241951515107949423916987196286446065049886411328394538104370869455447404600290373113103342365897235764174432712092457794600837226735145271278653235376772827983298510328883103013963056316598945501357928019399571106330858301656969631263967095754066564739267161743835985724674372427390097814453002578822771114156914723037473931614380652647373232115620875658302840753029601348020018687255085951715197554785137009013519677027844171365611749859849151134013154694282286923746204222975414343777570762997124894554739537519446614590152139582193442509807348061882477961551661622010725171635679868633204264556217926490762822795124104924459848490650798620059594534932046689403244663879481151587945634942530361606425042603870250222065786587112634570456634945337670346622700190962051634490664462147535658525372611773572779836265895822477007015793330368785476882988089438617763794430237407925430970713490276094264611026693682142830470593132793699134392937206651840456521279093385531605139099326851719069980692766135999409174959060457803411262046122890295277729956861309758431603706906652881053242577180298829079614880339457830504286566546297381826655433771778114240321054388834293907630366528607424366279492781117646294605864669226581319060388685738733038755531877481944085420527967491848732834276962639093650860582853641364251586388839455166382617097416063874932100216248565080912888343918751084738635525475900159227552705794649646234544659525662510278663496525319000481208982197912334046067903673867685708110122873948724830582454062888133682803080201866839283151444532397873637092685978252480421800881989847165776356627799324113539601374644084449858037490088794246805443419919285845859781581477175434111634966082593063443437586694715814166762675477676920481330184652684912026377445777761130465914586983808204042801501785606286660482477912542001931577401215408944719018503816222025704161834094515744015894212309593262735749044788690950156527289514713582839499455305195339465990226355683583025329068748987033678411565376697593483077240154417546199358932637472626465390396339455156229690580282532525432536041629365060996696613883957966795665445427218318001519170732379246757847416713676085804354241414180206814367576572167088690128519429608717399484384365743335552379635187611165433525093762187495767211565642567941299708444564281458905176005588060936663524376396683253766682766075527933082338592358443739451982357470724145064476073790519052545461731241441115116847067174821390011690735037618945391180308527046645038403774129010609397800688208527679644121796082464244109872107985727079821665325509255136397675936920344756654431860778265959024669527146508235656882109720055624864772618712396821257419670234036117559435943041146863328209019509207190810788493980795637133960574494231417464145706638453613596482734587929193099857715805435515645000025904815048581080598884189283827228449249988365287729849132390515619107968511522475109825893945572094114264597931348998928837062349172254199575124502336132485549080610392489788907600100116623740694495350567317459308147013514234456875995422589467927661067061043851223981115359598629170753164862594968664587733009752794985715442459556939721006532045388482977001778183452921480522431765308336934507377484309862910667597075461385438330518637227099418970409416828424400467612119841577066396109464558424793792922492934778638448793093006965623342068184491037982777937579246181130064702195150269468080797874997261382394060119350260693497410563528956548354731958712015263518270668006126189589556917379850703295663572307479358947122355911065345699094589760766087462898538534361737561771474330174690710957765452664869547198750181602527548415172389723079950804164585994625777743780901874758279190180993528354572634755690587340729534771134189751150652968438486685486442645696319062160776219911529507512640522445658227496422537228073552544498876988700766164505001102697333393427446049806738551461156820411154461933936647068797162920865104827498960321963737893142138780746555909324818046633330772704953177488437145669935720597708156806389508396530634963193676234915609666262036310536660251694636165543391338434569126281255358605190150169727419316944753305559575109730192110274914563047680782706529877525431125035485002597851269640858980547307052801578700107841353280309583346572607277814927485222859051222144086439139106228721895545765813827641767108500458252253604754765274821648182533938488682266784925481344385768938434822212602014374326692538509270624748461564726733559654912542037263169243502838987603291480634702652593738406127680741576159993528997068207672100261454585117239314805273004785338648146303030900424295030011606803243513387599771869740231423884869562052709136508174816929290820768312649795494045063174897125330753555281638741593879178371435507963951979314933650053171813527774555886047766037026671759315340781437251385257870627418823793871694822374272912897563427978135655471659977901098758990276248245226910558927961573721429473801903804556693717598820907903208924114555164868406914194209203139876359935839057281953296750835661611258158908550065370570037157018955317547531183048664446057846538679467390656362991798434090972557861247296280301263517751219548899970449822292235699061429659732181226284494703073740189535965624196482780466699176930169883249141880458028043999813794113121002276747630131874749617019496291675648075509222071868455613834552684061083796558604900975657035291046600689698582711247461672720429586474686331445057451554970526206385800290104639021673067677121002658825529546524639931442280523182412695925057492815764054302586985939534477884184822994636729582276784424297524132458708673517908015810334931182263767706515361559783751936564263983887032388593682493082409050296065238634943531009843059158535935596675395780846018899913565062612934528709146012573542778826397848601932156463820069911383144380809324021895494547419710172477696881071586454124130211836004798442052326861360020090409852752626981257557919213207330822395223465772377099030928603934633909218212095825125185007520595546279714331442409617308208641208435314521578231975949579537396481108091135389922507120152615026984049956526840901328124578334094245111724528287134219213995330823484486546347168345392049550610774710888841468171340182651584404385492015166068497863373315402871792223370320602174675872028614332845089278632678265136060354652404555444986288096137966884996750128256422065703661194615208001431062278335468985393987559804276941908481249671962928043091035836260383211658559665768713930434873346672479796213078896191325753834445528667120447168821929986867801737151015144174032910466527604787410837138978733704714693011096108859474093165414474779517887512267413265067401758190502122304395319193580534848519688925289518928134723548384847297839387090947747522330041748533007791137404235843670413885337598703484196506972165140926959049388203595016747608869814166473995997690991653192670539055031409306014972099493293058745109401219184153584654789443013521188848419685532962138176543800909461050082153488378033605795467002999519890060866948007891467351391689635857768673998393878771114732124545183250675151364575526926504142298909682034730592302629021754008740006084061066340736756776806234657797915929889885904841524805062400572777923671506618907181672737376540609223209126810082337071274511299845228893556428546561071380360615777842029145368585992992885383709186287052922548018111134055539565371697875344687608150018763476411162373829685978832138803538349299756053240520668319459866991842707922330921078038077634996706346597990046108357260469645550896731726971170332614312001018014140023918770459542780311731488272674978515683552236414751151432925385457696941423824503220520861035809515118228921282266024960371735768116113637246874499972610258193310161686817230033921817280301156307141125453874866718214784320229941409339356164893636501808042111514620793667251919713672582446644443637659781083975093466716886307940860124925478927037066406187420349068657673504605766801620289746230678615874239674186368987690864543225010905489744342098559179069112372430019460827812328253255085079644758844706723743992121603803510068735793609154529993851639006808388943658760032185002668270245197211434782812053323811097674105191506865807184653072198900083649984588912465763442396170034980549912995845483022100261870319433886688513659940767112182779800193999314557077584556938689265759130124201905131199922569747486461941252602789108552236670834586973941315104122116910646505043238720569217795998453950499317940424273099842156504089933472216250772514596189748449734470207833628536098709102250782520447195144697307497065176724138614042333091042571411010808041690584286441142266151288508963831062507676859815666293469287525395008754671194176321643543779995247265532962655826728260408198443515954703185203934889843356006464370566570358329349427583607297026837773167260251631319659698252468376007548164108987873574103315594737253771381639295354052114825691285030395792161240709894530755549481167204009840221337008487668144030570022249881138334722101132948013779637899582914319366116713500340072474506575544766507380747274042536204149931785462403060897836719808817880979895375295516247179506584407265184361451868301792386866155460935154471011998441492714928765037791747542653932005033154898374789388209406988103180305365530594646430506371404767591839897737618115727710614126289618675855973822188538901416344719192460651730751978380244566056119985254261012204490280973590968835291819690131274090054927948141615467231311282985944553740990760290548879559463635545289950295104657248414451973461701972751628786039348259632736619011753498089220179819807426427975394930436319230477289039835483558864041540063367569628700722994864076058067428977480307097305234482663770304110100978946384931581194152314259937901388573625793687796162669683163512659277156211986834061656472094428954813667052148489747629697234998688459122937773470134847727050759762619103877683835686881665785839722468318511180847285577116936917904606199804741694441489938475514051875148908715453407348680815660563115628015591932042331425575028768545425115129195031646403458885393898953035679115500467688078738789681614098588847577324271988048819503460670069043138991079959652544692858378913101132507562623303719845814955857553050190936207285633350259594770559145485943549271067987472408010245572917364419203803084349287448781178864733346905326675993441826815867464244770177709173608572450542078307810653503167642577056400378272590814985489571386676363351746000213998949655083706077512695799150355088295991495323410651346996112288217850044032747057066956573022094706621251237679090164758638450901029455598504134551061759177913206267516448128010067929464625027844317430464439941989171459408828459019518017165504005907548630241624742349096530243847184435827708610433344309670527469412059581072890434736358268202604825160468432439606067962986091640416162706226414552068994774179088276398402213626065284039580247229448667176845285059041000670822244225790359379309441393653490994003907201930454879072956583372929661394760152153024224183088835613450043735223592113190856119553574439133880074720620839135124641278647523402717602358128059867965547699169665432198596625292797111770365839211449429115120175751702073107067126260678727194126640168220844254922643718112457260167460506597557598571582718254917599298125897221513884149437531549158253538245825219869758873953426265292675751800000504819028587474076669060162109702278320503684192457980539564668566175184467510493234526809648703152508219103406176280074367422518916613831915475409365639911397264402416271066157578436946683545860934996958217587510947973214372567063968028284207851723413448719256016745605404108981460152519003816148281729088396764384926975083944720092325458154250085297940636846842452202937728450455436935257532720921598833544403846693379935978737155376039525425002207765375420309416983142023352474778606490877600668760538383616633494174993456475184357058011448417151976316816448511539478132131011968497250053377502891948538640843817456776230741433256079134817255105358369496056555289049558274451721807846610978008582780290522865254951132958787679379519813338139373230469276932763405650898263489096422699871250459877772542285301177124767583902369924434046706142174865279633945115537467482655490992760653907093382230112362728115786611952593588132456383246910949144330706129525351355836951076313227852788729431983767021749518379375142678095586484820828563232972965640498356990953086305219320920737012412394825672050853353049149535528577874903250371872008140773635209652776951766269058889646513460444974109708856829080788012068274031122875743899955782293406472330232970995839842596301465401051612437772724169242623262450505173675117098927231107429908375073625830562997676403483159225160318620402561608003910361016109548115883759439766363971533860770038200492305649074877185969054989029342957117127681646130144523727545805272223987233570148882964208252293113837174870354496902577903634716347735064516280877258825582516780492169843143177447569820023390503684054265047117605305894419751591836496076515079778362860166597088868981028228958713878653856062295884545538596651364755664042425070096691774087888520941702840959864715892645386419909899140525886677955171967029702244475225605588255388564130823967491960917726159425769544618868527003758093935335385129736781266927713679346516058621400835564961071343268417165967091396649803152038586615072976278075394759996652086269007273813966888386574405823314625826640726605190277964109302781719559596067761419541495491143099921340892598139388610232877820201751922954633752564707384798340114450079494730646355019350338419302212286342061504068967896542020471327814369216608694753362645608125482449413457618415046917858698132592199074223051336009014616454582819537658627045517304605537074642367977130253051486108343041217199829623782706340314301803201398732828323295772679515868217654292302652559269826136072503738853776057251222984321161118842883845044870741914900620318006007792088361815596992249207432305747536599072031565192818678281708876712591349245072523262549923968805892731923251326977079101050872641259588275191960757373262566422195892966138293440588601975805337385188459649867948444014732806000651038330183870035845345741969736633606040681439930605225185291337532782878342630229476306771935631754383859513583225726698440348695559625040345364231794057199738491153216973975849504392825042154055744839551693076562458954408303180155120537867898576179120744987572220300740794424617379531869117711061424274920694619244411811359045419081632372705128589158576703553868185959120271231313261916227413843284087866304311133821791093117455770252397975340197139677726476318874435854341196930225988895032073447424779180749814871336040596680451896507244083037713475178252318250919517662263824449694968897100338760451990938277253244672370672063416872706592119152426666970090574230814747219683304195334018125605376249222117586352026098727193255169555648242198703715815905867745961751368513156364441379578310003339915469953161095986904462923308368892175803442315995385808495197655482761947596373238574031008866132664869186004101745506912641009406948337704567358003657715339610776441271571767522131137628924592756689510315568217812402181758435301513228597879252167828874549109013516504414718897202627203551532083175026523454293911279704074432080048624941771394677386692457716139639970429718225280913945532968455840632625729970349117840906790285594503703120688011053187992953293689521269349807652720552729369980096247575094789383510343357045897723966704022744739854204822765890939167473459903582268065121059967076659194989025773960989400609215949290254769418592214558380948583893507720400283347312821470055250803224425449161692781189700632869292404204156631042855725507145463199057205034980285721555299866622049393882061412766962264284980113615266870603242764269676274162188187125945410423285386688463081151009204131027602433560728769550908863309497532230084298717265034658918556608430597199001077638138227778102957504785896804380639206844112463567940113558427077099299487096256668005709518545367369255462381235285197551957118420579191654733537404068409519504390108083556056735465977835888135911211664162538806737890715489258291934268878994303403382834502114373542180079607838226661996069542133941919921677340650241882221114606913393982830797604064345246456694324230052348520084036686942176414244200092698242021682632532192585053974481965833487585691864732887856589388123996544657720419039328235084384492984716222477702443586278712853184608520706635560019501587130623042207872507748933228275504021311996051325492395371371627491325288812561871222084303325147038425472671487678135787536548104792344329437266620004197173425059573669527476016012113817910766246840177362486311792987176562938820223250740088485716616075204488446026635862697633098326319335169697418221462543017251799423644803188962729222966748540807504130339698305740706988409182906348188306362851193540116677370254625092892328909813792975633784991732444742535206389351425982323639889644759200908087150975778618182650662692172855471902388904466536401570629018914466075638047509324315008942462828585295284132911572807339138325277525975482382643447145299621068338045688885638437167912709082381191011856892622188123940108144099892019628399627502080078703595691684236131176404681199372637590161275744461946495657690323221270415793775432114374365302679394779310880506502983168256791276045803477073360332766797233574056400072579877223906933842584335446249024485630832171944584475492715541270273995066039357596440006103078712679650147168018626529870816426399035863811373223093614132528215850707505717454688507361542201972415094999316479834066349030014924109455878037010287134808793400466928463057942966081264569093962629292019075751671841054571971012361830759880573657273689246729959718953651090430740808867986119185962026597127894954191678700783441984188100086454034939975620327006079803326116201285049359593970509675615225558776254653946469745785503368850069955030068521596969112714012873783860928625073605530749215589972176568069626766408795091527428789133979316653615647685287403870793109159887325170043253884289630171802275027058158421703200191508071196736363742023321723982527545462319514813199461533423531631264983090753076713431423929340436197677029906330042301651891631672977680799572266887460850483763716691263623951564908776545593027182166754152289768505355307117068464974769113019004911133350780320187535377402118804747713923491999528783669884056146397928696796155146256639643161266087686663335089195555722916956252478970719138496240349073467001883555504120334990246304594749328526638975789595096702141932289391208415495589201232128104211207431257954073024515821562751508845732670652898720683095163873826326684357292771324110345560731979109758520199644154930014507701049938066369916827868974204260742545684512280830221304148073565966232827205925784199008319746277230361247404872764445112248503704994496563360954321726369457107364285917958006554233628901161636041320842746520989327743965312921411732314743915319008919111960650099576872206169916396730686895719462602425988589002922957800202329157119450830142926378643658960486018438159004294679338610216993978392081851738824513359694081248043321094942568901053194225262251790488986266038228759129776162643044286204249845997586436327650697623565516548013609057513247479284975072558636718618471328841767071306982530480427044234160894698401007726697513192694204923854912550378945827858104307978176841727418372281070081082108036855790624146549590389130731334673299379646440087108218041483873291807869320321548945661418283531158262365220839257085345192530898850817494757080108257252217796456979057629556988813688893575713932064820514208276977672468107573529735893440041919196521220367592183987750396853512366531532071274987291495859677967297446895715531231312490856186547642523814872814066581730694951875927618764378306156999438290476373182819079737088666839223573380413366583479343653905558096639025560752874607895724882931323452331512974702562668676502581596187651358854276515979674357880591047184506021644469194292035764791960827834076574512170539091982832082363873720842224363651364957429404486185600779202534861735894652606520556997488768732073642270925491243023651675844893824921877870145674958657223500682449031096189207500882809383665827750354134548932107603780173224605363028145317603736477387494162727210588614950850264331684944009131264270464916964250707373669954625766561796039034941415388363757626435246577422699199642771314029789970409960686494040496632251722535445238565226572156364039047092263765946890378475376081731598448421025015337152596371659571296064201341693806903979673078087597481956202795589055674445843496066249488411669543529099100634174724118175328702954538379570066898921142942198411788279685980316679169903841381133559506328496145415017386446683874499603216478482733436392068056104534338306711074454509269086823630089295827149450413205465508261786404283681379657549454007785356403516091729946033073676407408131329341009154198148514515287522768762626386026201335947288277063115807792253590941539398130499181873694339713578290825917045076050896235239988841268046230366410926958879605210951230070746965833011596921577901333556554681210400084512059815170411649100534012307769641555935247257954576167662463520720362015908156086038289303449783030813242652752168378966238356527725598466403827037735239702584496853325021320174477815437104202977249744817950228223849354762425620889941143641267581962314619960201742411244328145782386289311351627887054670087534138076425537328870497361492094400648124225392353493200620836214865624748730796961511342691125231226462813353504157672730852422934979921908491294483151383100544391247434701892405885488458836804957497817052345909383358030514669655074016049728640341607902549748317816919293292069201843439746351124055189845023325460088648127888279352768387302675022339815646881678781374597379857731508720859894121444984113546892287140281847039843834607003689288850452986008404537379865137251027501860120574488730679635914714218400100156207518332251541023827072709691749321077508773106260462130161826573683717798412428995171706319532151812732662680076470855304646472929374666654274994762889205989344595065198949343155402555586869642714772391478789981889431244612271569706595646154290782505479219396156115075365357900726133656697190890972946821134152142001578492464331124355630665369598488177705401130236679718004185696235661474063741546898496730301407401889607657670774361405994085158816250830025898576059766852785247958641800817510661986257416762320263585475059454694764582062686840273475688707874926213292886406754300130067100691656571891512184600147783615155586347199399265861511275495230618976441727369554938528694088794150124333150746783612773191300674780374136063171188176457869139449747471482271192434067128564646634969155373691782058633928671977197947712864499040516731794085001463876341209108678389978569657711354948827747837238283162937896580745723249666959620645314490307598702632531664379996065194535611787124103199072648554987818415484948853168508855699762168857635669459898172818714633906036506580313791119817420117305414086457482573813758301411439737260397670117735050383069955695857158682142468798794115882483283860351420050934044950200728257596644086183575848181554039327925765451297251306252370288543833112700491887418617021855153655166798973342250702166637014713897956899835921191557593680681715419852256717272603358820026600108412103091071741187757871565353216925251892337382093130398605120650465072215219737574332432243228676354923998182388538114582668840880048392672550257752177373439519358556604558343928729907073520510397469806730296316949885452741929150733996760175187131553549423055272235816363156232790706025714514435881113015412668158025664427396920801372277964291909031871787734384640551076128233822831252119654212618359571497249530149672121656617435886447370016765575199139653298819782498327798434742599350912613196512408844210988876027626033506185624789586114270031115985767831077100589950331957902044646661664528270144486280155671104054886947554226888753564488998377395494934883268778493875154768201562138066362504778559394042728411325798423367415552719028165710547090897222276681682659688520842866820612683299565248957720831986522744947562203416497767669610879529244858485601268132744288395411255488342163899312732722236396144275345845918031362585393150352594213031608024649506191899436527869240284533162562708779642699245612639346110387309785994098226335384744437444675664668515978081445439541599692055595923241802391875052979957615786859290127464413946222921059524920871679400274001197119915507943301769727942715784130394158665004322350055344336767494383490924852355477143377000832618779264368459671286093185235256135954709114596521245325985120478281397638373406268295742854261117475047697878264932876765184936370228365285513217248204459248658661903791301362390856477247061915467198875037227347511555143230270957830838260566362956808186686677516065289091633321803028583617662592418359385696152768741968449024480998689829672516644091242078208691691401728320216712663346359033482169474357905378314412212299098594120721569740064027999991349984660164809912216369018070692730480735887805288119597470607383441890217313562923641787159780089239922778868301926842076160665700797840343668724086269753698666612347658247779223514807540895790790938769910450333710331741665533826069363696678563379328116783972557080568407764075413326480152970200583651457315950824833135119504754642555020582394933728462457224996590277953450391731736083573970539467280528450469360111042941993074976957963421218654320645575077356694866830338068049232955095404926861435464302384623076993407614918306560003942357494537375418942368915092572167801192245773118897984778033959117161025109050755663124252038293779310362302534616634073415689920198404920438549191090024587106778705738788144423961709910277378016158637260209586767097604588556127929245543736716213815862633134421949351052013390100594107417342926592667214831559101536927628313510737412302407287119364897196009490239970405266880445947297087392697249097914313219430092893834242952640713819679715454853195657578418228284433543771749836554176003503278305607002153693540732429331118567716229832865722522075231603886633643459683699018047182454173052344437044178229452708418948776844771057808920753667278804901447667983721240828359488102479765123293209987738846879383529641610268338705706603131672932416644693985891557583205885788321718292060479116016157348443908957774627887682513030155172271438876238193265414148564270901915577546073477407977140122939634453284081100986360347894632516135883186786821290838050792997321806837324471355450763745372023327623143624866111610382111272481290023666162736925855823052354385151736016958520410267813939541149637716675292627513198642626631790597771215083823273871330871262733432295933768883225064791163762276599190257618325199879214393723080692347607031285442321727423817326496134097000343522208955089747829031827597500233922593276213692832436765171552616219811675112070542630471648011459235798882538735708540626044186158458407564645855263592122823145504962152523826409990052609933617973528967138959934225601630619918016100284262803590434749358787993692805055429627858454688619993019840495629669340826185266108492114192706291520423814126260012776588746411013580252919348600782853557342517809172518647595220244456238102056681031988822061157254549257433291146383722028696907545944716684710070380859746168546718563758037885005569379874631268510906116177378012859233858589296247398372738809412334093909444279718985679124140271246466187183411124949961848249601133229968556304379875971666880620658966999818155043888453514609798373066634519173743435535002477832639705907460310267320309067720538306759424695826381877208536061773808517848658475749625378356240799523054851054782551143378746024662334212480742747138414620526581331986765825804574263934012686045648890809109191965495356133443612424350273706607660676487778402783381461367179205976488841540120636588760261488452955937526756306379429884601655022088596188432855211083778592585202671380983454035698725699800925637563429257876021054779239805986831921241408417342601844463723430880688978669589315398750743004423064444091472887264989753442176296017171107545844333796464307657785216306359337173254541849487577094720733795284355033648402492528181202821174907710593832575145149910023042863831967068275422117074030552963900316107692240260718054973483974321078687730739145723089526782127841184549524330225944176643796250739596024136668274072897963796453190653013955831252750630045882851360304154141732375611409822470983442083821893833421836975790889914926312617117945721041841485663930817091780648449460939673882556609365655803938813878512322394673594267950659769272164779578613687650858086555998335559269731257613042451182438196094655113803981908924219484032854646380761819493459381163525643414740928255555604686762448751424969828658629711290123367336564994207639813075339760693830108985043454415898566897010228420610777530204616720906469456251062780443515121368951790480292466925122867350031390529366398057279797734460716999130105397233438882331211945240598163076395906286416797521250152295704843920229008315788609030879769659991932787624974676465003902915729686997704259016359679349306834532288164618492636512890008855215502776411609010405636055389524024630466200165348859831665291025295350461664065334076356928586487327748248684005888683910699207409520774888629476302834438769433406125530225299989280890006789249383234648538472993570275498743467897658841128346390281976506082879597712040149031200318554133375299084823920858957786639915991508898157713171898304991230877899405982741170906539100189447176424498534670373013232356865223513380971319071714724785484201631584848200237583064258238801534126281005371900511419581630774357555206867670413712882071235943404186255669030594024257431988366236273137816428343323917617589076100082456116829651007162146209537144588025907483949446553351320219696527903047666559113209272642063727559699151073247567195106556719457192428529323938583594552719908509920689687780136280396525451377644252803570926648916675852950270960591688795945889312712802761136883931904581836356069591094278338295143417817099691931826710442601574747986285634964772447189176771486248747307944286852439258957199339624159712360050836031032126393347639966456740923319372857661897785692452198937887113696863855047360580472692738473424592172813612668518398532130368171203100742591404211246544204679623024055268684423029020073564265270943777937055663942950274508622050213881657027829381717823309692064860347339171375085461230618692727536785790189212606315145611887320522260650299093271428318792238550340705856369000883027978813543478723934971856664458688882178799001199767978056462579722913594607740687786236404763584308719538529029058233305040885542084462684604031894582585546919162452117405750922122818304354571549871040777959753297677178553837333747492269649099838436923230779323070486742804676147529918416153156840245703605816197534767397516396860623747370250145816420279260166924868031191826724652804122238485132908621982598637488467022912033930240581843058299442741239294253854058712034103962205996180357435907487802899591116360420504213980964084576311552713180771194155041034321689903528383647655905478125110083699855533721322002592835815647287474245616628517916414343152912391480421337272864242639174955526819976772245432791704925211725080728517409117028149070744414209220440705123587336189197686854561995048032678531330444901890417832039289505575044619799005361667971787597875993861809222519604726891823035956798219682716798496100838726819892253129673073185281002814420186600314125923447287554843271005131043395495029009316694228893225631005336940562099463991975580721072946212890258363318640545822194915052960091059002015607455102988943670459526400387587400773524140329884555977690827683043247797096122555882656991394744245929991798521845004439408788817053007878724541940521608812680429639605889829916383530668455376036007100808780262174914431409978015399723221553542044077267379063751413356809206158715898069900582180362147518164454712403755267374333338214073013861289764185654591838261609850487836774327120754299648186219092175279799266321770115623213982004154940785389296366794824401806276860314782629968560958886488741710064126115010406659007876376024940176931098323217272022480204027344293682706541323311502868705105837692526185596657572711770522672576574202239216611305783925547176380195584367619439809668845946389845276458215001445153236806762480719812847420090403358562970826046544784034944179470252900438123307743729829171122778928476550535447777104556410693936625510048266087502084994337871565905678305289757555551290705627788155651872434574444636138682593463450492236980635239493194848950115060303902480483743752335619585843406300590518453716721356063669105581788447864633784474872720533307657911813687660536077539782141394110858102438219197524645237092742145399722121514854705696573838892701829484441043878422900974098161949034933677087005082361116835985568416554161482279995012702002654471327426164346784922507070862628573113445743213002007860510093453633084641083171490322613727535846466957847425469823096711316229198449738177803220361757946457896354254518311854293209178086608121180591329406121731848528536552850963148588575983634312775891726000548274577474762799320664473005338485820789978905502358518509496880451607649878232820507536727957378424039615562843453325586784107335993285256611204446194895493433186331520202613428488406050903911099652545101130565874695637831817588224277960650008105341044789447462272964518835971713026951787999518190163766216175947038759049013133292982389584613455980668502177323026053527460278047100843282490888885289161303017430385262666156668947865684661297968159713499711338667717142691831292018456967684767951460368804295883417941997276892220881041131135870060142823574123320485803722303770016261477768777010202648796852041170438851823996700853375168663928828546463338111175185845200729107034189200915040260205571281670082791567682117061070522700102207924367809089861238120699078791314096084453308800417100148101151320977680329209055840643197799850102874068049524325556545798892318952986142251176018831998681322965920590466046418410129873992042552851877815173141134968765148801675138921621901155778830284339521766082114845434988222283850537291584693702357125074588665145660337035069166584527550628975592229840534450743890638724630752948877151809821458031865239644008657829274006624910634452546613004377864016431052989558338453419780737903804835071558156833521526865293471661745053617248429256216333778880470345538123692108414189618120182827359435907681585018102277877523163611142544685687210244303275749714592413491281336196917772523922079076071622550320046034150765684215410468976341888817908218487289321296134580455434513095544431062235033601487400014563623494359226706550532069058700109977940022355306953173415759733443196784333776658214168982838221098944158208747029405467925882367391755108558525272482361296845493717416717194704317416225983794443825103318252899173906347571543914675069796664554098137710868122328009932525372572762233213582767808066508349000872393754331526681706023534665516245200282180327735894097241826153186416307069447214823654976522856808970395083783360895137727982911158127289363820145088146898013286127384133985399542818169249714412310615740801266603808266599929248284098680551332464517749200439735516198350906672849390687994794189177278859522551329435928381003216624475056774495513229134289791957960221599523041791858815007628478527105859953361347219889040831338326665939902812100093776959253471073673321218215294000958456700773356023907346060494783900846791554997146578698354541831150026777141838730731212149235199749834645208560966179597387709643433195734006230307717671412714500655048241423825576695244674330660006223626058756777444293263577131800353571485999546082223945148920389281303481149299112793344256060350531768210005447975816245043181940211770251788711402293973937175140198627322732752266705975504568715237474757333415257189964700465529623047673434635566265918344030268419522997803927525145134098142144216894867948364188135581771823484509712313445468794789876006846515654781753579155108559136972165048782258348072210440969203702124034197252796069570094287613433231542216997594423968874364490849442711685702205486306401729119211183925192994854365355198189434504065420843832316632839164133669208050878741538193012272996001953133821397085123130767187893881765241247767806741361648567440419420979701882252905593909679679795401926376238458861832210134858249166392120659069393945028648623436174755568177961615810842034596340224082950196100306922775856622993482597786402744107440650310000072068584793012568927545633997296049366876954158716696335674847597878191664079128112776547635257624123133797410210002321957419255579757648275960249447830732978551809815181540494966080417516667890329141646823846044802161680906703059809126884833884065203756055419020477788036734279062911654525336952382243820704245475020622174865601246784359666542487547685535612580920933502108550227451316814756444594982412429798950394040486575093023133358486100094606695248067779380674968983933832810982999960849734779944612800327436475030522745298609809772273262110521546749198053712418912186655381724795885469311765003357315840373331046878100914294989845419467565645708431066694133069764601410406139463724543633452519744127620425485284035143226342868027179988418248705655941397299352475087876841688075461978933221075001577986409215953310533718243106016930768458391601780159845095555746495640260543893609475396643371192532926019604086863321126039376028870065787963720184181295716302362677612739363275887203513377858302111943286016761669326848899754975394831481924656097270816037294796287044913763938052326132128447210708853945001954215399742931360837243578109073279385211288953782527940906022720760584135176167696880810239372378621793011887091142591167872779888751398004694744988223652336152290593184405778435884425067217841720346625558990397670339332533735105352037702433288841257400860417113585457989763120913656596816150656148620971303094672377743670096674740578151586653572886887791153914313709330875504569915982673876695270776303782799319037495342351446579018043493129803821217889084665175743555486835230082161188297557493364718590173058055965857726698583055688143689387688177194567375778558653279456458678229340086985146596167263174070375449102372390289308660606466669541920115230992638270643110913439110695361143990598636961397370405137202625636482320748997029505371676072226470728472263156296684128182065270747270082647051509088757876894740674436077023019207456228458511456544691328431862838831292863256256707995721179650990593795350322602926401389601076804467892153930029437696644613420433643572845641578700503435294871193972418739939437768866452410752687405373826346010270126835526984081925663114613158483378256534645344369415607130345788445510883051665705091633896457902938764958247533446380493609920939601467054315172922932202453674838084365442239803169255193582380176078631678269616742528886183074621379610500528848794106044118545460311614769039738361460264273114850372699699838443101963464090157944681126466965134014200389835495437566923766479494936133715918334126549812709215848568880826418405228085248058938812607137819575878962579395611310511087757571010109549658019706735726277386236108888142336052461366348156988599206709601588375778901208400978890061280647985984400953390019555121538135595735010199494309465747777080208647813003581134924096041956781995889677309405649779649746172671060312818827290435767607910961750354073727955830026431230178576180777000521123294737872132358824127900999290812284024700914944976109595468934786068712437788064895723893099126018835425949700379300950939697312803303633394359974731486224030625158448222956649958063731470742941826717497355124326552109377328580851559989094750125342082577553844748070409183841944806690235278107562856922813982478989213429147322948860007434926529289205598252939898824874926732932754247615867375226350693433762973063410523875657612693934544668756227800234243487892606314731574845730089617295551500319686431082186979843136008284169653668349054740243555396837413970303972124077492247197607214652464337867046848959277299962487090450374464608475099953736903071753222092707079640612746135620818518921391385135260779003745977895428690981352514846287847755556085135460105326513829670239005881893376377871861950969794494723702284127930603850112041007131944105866833066986559250447321737820240296662252270780192338627220988590026531375709874780201430779554790282005099387364297941546187937360941681466668120000140962087867531936089020850450477137639716090036445992472231216593242950356261795739809385800961417182547565808667294077904143068611418814644524829141156124241573978664920604573083846544690701195343069506932056107948274754420286975486492130758540765986616938427162134286065027207916878000384654237100221950532638945114400564312223355277492484332570685983941020941327137127190564081569589057610009709891377846735599445419073782046213176921992636216758314046631248461652729592255064950184435154610701312007853216159674612494702232114851107852423112583405428767306682220085456269085414820491739737751525080563872149215334340793137662662831683881039542193103366442813814403208882763788124416155000056951009077687425325639877899477975107468214739496385250277168703191096795906190438942094800657697717592754536453173628163139737646395050878537724467751614958198693108187835552790162018119603271811631284485495013701694831032070782055138601593573496828834982454630892446442462086610386436804349698410719560545868927671427651332133850265845234706191995344586357658766527764341029832249762714972710756867881663704979540415234936891155327856526012756389464570558019492183406221270302202465406225998193650795997428853986384866376750510062610559136537325479524393238879868348829625786622023731134101910133051248217415334540276697597476195499386823561144895033074208409733560799144374845801967004067277167370831827228467811109542327931333140975213395281771681571663850452820786235528109036521283780563314459010982658559221862781702516210065421216835118495876714747905905831978714046328314903657564936804303084571847376982619016692404182672413784511122598759690721963767487170875681872587109951762089666884060997270936375047121615178907566808274152290775858899772158235696428916313684916382844400319206906308733078927802754643321085412514615532622856263215299101824680855032858835885556352756921053070103402870545442728396192804841519157750199098603704541138491362892916052395026136522556990476946551534379527922760995855057606541113736790221792126932337580062240776011076249905600823534794987537862215621196842554740056274972500416974545468575455504053289364234793364373878963460216226583928561870919514079214748877950295588318218768701078614411086789471478560099947800425527905212042202573270417239390839018579116345703346148735404199876380399529276054618576992395574439105164440584552012900032657215014202563335979252044029619998324178895729732005600439809261783117056045582382139831749983756097578413428629088982863382980194054129060580678408612531318431925642683343569070499562101833178595745275122355898053239950531119953110211962688998408733917211215898386193522840109708888335703492477827572620033713510863498526445411599371807093166609791442758041588491438584227008278652661259872767889695090868699885966375648100849958895494130126047214871065336992738318303624559933372681829579351924519810028175204788745107563649427922244651155520712700457431456565449301613011939386783578694924873241403946621855377125772319154305314431048606090502938478216603956090643721853540949271846836702789117726120727877175604264141582906031172704754280000554021963222003397479558488581110139006494888575610914124391299386048091477496158929259811956491769823945544297086482247655248457088132990812937932580331804890662568147630089041150834366768776746295748261819821139523035071980994739844981262394888211048871534752214631238103167903650642552739847465263649619194449941400266841724391282014779094695620829226539902529157480058061688897248753138941677082471534801296201851967146046144025982858575224578760906400371884697760510857818622391831359629454099559456762901690827154457087692302160090136938950007567817657076711823405887214298917303682114070866945546468791676899781771102681754155540547055488792781263734631144943450102128842560142152821053408432659215158158325807473446025335556191956032258572331149236319470488575519735700493540121044450153194678245100275086822326969363109889905143291962801847949024817795382530210976795230873337216672317061307460168212415212968543220105337493365882589503687142282421953555383787646851013176534511920282053173697430543638194424269766722473405108786333392996644319649060879881622990540477932270281107777346860577321793534930009967262376409259961734061163557774405937002973202655748397691287733747012837881848246160363923475100426976039802035296319576621696915846913342081128095245058573570858795908752928560098738265579872134675997300528426222033167892833585279062530328188753433828798214571216499976092127836740234592897414335974708132354281751415687510826947265940011946285384941869610523022865708436995406546998312691897223426540052085724382339876626859270600348261026766950190170324207151855015817948443859943194606898932945474476485876976818055715378778535542554462094455060634412665072934699689015791152360123711858015792403151442805661891725531161198741016660171238115051024411461023601992617859800304462758402887032859111948582412786504044041067370078878921682289318024046043734895480605895853855651314857799063321398194815357645448766015478074118327364647812519185999476447433773123819996341989431010912119815793016221001330118993747249780160140790166248528578737629257995657691441197546263754647939420014715960945483172256964132977767602234330164329680000222880151419521965609364716969386417504254986338653242239962793950072425248483078545995423248729734981741036151021782629503885661600643856182938059156790731238315069175412317531586116581380904955420041737902992900932036943631999222677564181595706281574445217364786067182848589986319472624005818675898439695505649537417068932198615125321704878644944883662455871557746730891189827750880287914158617885585676346548149074877027738309420647843220161697413419890663347380672142712127121193378509146190805561211828246091116048837440941779323159262175299879919539850278087801476167464839686262674361836890445292953182243808318772485230501953908476458729688680843836930000330401117868782872603021435136959685838034119325874723378354279335341756405165253930971283260932154200174358890984223954766989974496513384076118645320708424592540249580484436500870942226688016921212438627975624920000264814583646650485586027648608570206815624609260401409862809855764105960235801059165680450428918961581388638782582855777816572913074884054256238515233225634917973225402643515669694718661891358785463493926493278524081921416829470888536897829218511571217623866626530373017165833413152007409512563885839022287272021088900087518786530276209530563868721912219496538939741906976087538173629577539156733798368931413282052190275995862266690435526592612124990307070780137359840027808558998872817860330330103803284650968262885615476241543775542602227154703686299255742210063278525266262116881815426995946395575089037367430072369323614207461666503435263236681754812115157673599945428186366328853294297799376095321170765319627003280356137659255321199562651979769618542744682403394043294085061231982413620765945356641331746400038568338360006479059027396438854450174814270166530667903161614788017459959459678337953529328563765966910511148637789795177199396863782824725582104525884583820980746248792295819903688770012338332736310842458471997384166436634616469660005168765651308698229344857875454438017883635956233055188495887316598635543596650310163778326097600854696866687730618435514172238388533782124334650401073428529836829486421697781164934920302733875005569524424120216280625851284680303122788646022886833647515333649649125435667652275327599860386113633917431766301207140142069788142317176797692960067675768381706178412120122677385027957713408694460894247068876804196205573619986031548928096167197579132643925608454792427330294461972108393699412858943777766875117116731165767954919819947706693626433075306101763738174978855985580486121027694754817621209418729642357753468635932899258246100278334502679961708326551780286905651761263352460364145053333783978348371808491390100239539037430923664560805844367189651436530338095684614564174192937203039226553381370745222169563612236141125647862291228187099593926023655321095102841796572034686300181403171644802748728351251974403823787334134829081415299248746153537960304923917360810569835068316637012135106543985885654528452841161065847506208483230466914798131633321129597146471566445853863840823012902457519685710555341842538365218300073592124882483141198322149660585938172306155128260211305560423213866738181479918279669871155511439498263969910557823121843895979286199707898768707480778748813974399368756423404503287208128975877992825991681074282077118419318897476674356457917928248847487326882595458924600307180496105477897748906859498977265522691871503538598819072173243398600005695225828111969239280286256678276756088879151578361998897808869883446740389893161304802549363441451922223043499518306339779593665960073475222056334608012298197330386708790991023261032172958260749102063703018221834691207085060374218300865269798690861064468969589138656440387892621371769026449029642010599053897006999493788794502879881145624356725311476988370681127420485722148587411723251673558051243008609707868933384246046791300004072649313173945214306211687677322615407408148599555712157591690748555468493617217303869923331715344181288215342594827782782206148522141390638014236893791036205144940583453947015139603320363057663588091622248701928386324390015991968386751336033166807929776420256288112440140385248472578347496200183911422692713178576416977142686398982607159927605467756301368861460045557332790954888380155535486420041761555766511055712582445830913891253689774609320123568001745220895606812499681038928277460070587610357148565013840442260873371545106765998150830362333560878801418739446819923839365280934414633803489157746565969579365796645855468254858079098221910518403296636069462002479857768000690422828530143357811024153878465704090430183158537324569244046176168154115589274469633420688172181951238113054655878878344633635384891556754638113228327585452534253851753091000311830006439372484734018029587037069727455014064417989268185457826573104993571676019550380373590709239664613385598480931725512237106792827719036904269553069695414405276529526736997642853957904451525236664291392049774912051054195597730631748053746183415014073410322179737671620867050469024486130513455033662321728477942100063394287786832820202920495828197483351859897951190210052146599624674109527501358142682927162581405728243778825532386684740274706073034557396513811501930099385199168795533983872078423455036911447532610383258071182239537924127012311173337204829787789227454910611447933581919843869998114196264919640986388900007008218902246533548494067539109961628371588550365730645970250363508538558290787116897800670375693519469653247275164985536058005645361757052508396702663927578698898200723644227596443184770744913637811168072585850862893397606205768808975058543077636679374259480949307401993166737534274525206616072932747459593529257628985995092308819819466947992986374372395477504285008037235419913606448072122381454554410883736733239588428049698129231484798957906436575970535047422552709525812072462282452794481162943776436133387935444761059849989788825467165603356137519727502347743283852742565144878963526815686612937503287877154629697721741745843310738426860621592492498148292011881251990383062016712205535491490877914455573131632820966718638093956186013160716192582291094857534564085159350863961638007248784124245237144792883479614100987728059842187454865190186956632915995548894246224504196020381427230414279354018227301060243306189268447959376440901754132988986415775952975770189966786125631709449560511011070139705670205770330521574239971377878346755315629104782443071798873723773767443645887153872490972728858733274479118306297207379398483577658672637144501218742127405881782472577394436251636218874395680130571034346179452789618709995539143877971676553261410987024111390885051555720105020730730384599206781555698231024002850419310592533349240584418190559691901583891034461200577235979327182767835211008182560063933709101186795243404593679583351080923793274161361518340540550342473155570126524553319365966730140485809987837590635657085536107213712489846809311887043269427535800171644706650191188357306044045366673071380808342460192435407477842700316234254327668156904800431655968434000731921452108547199177740478448463054063500794568012690461404520461579242509578829107392499983471506530990676961542394937845551563379568569987325514253764254100622175587647529353604855311538511183161510482460912694790851478454374314094297470850290374245790293376568996637820232566009608460141989215371662436730589368864090228053384808908324582803107411889374097582511725799434315465533213443854622180931677293477932957668357868422153186505919001773612117691276086756787035325413980228817869467680128479879948720839631889524090792893848336514902893283254768282739524270427212312637571004240541780245226826868228815308347534646849612928419422868954942761066733361352003176913539356688426481096787167853139962900259130326149685251627174798578291821720600495992215589087383547493880119816253287269300696314883967122521139365653980284250035465150798994189147277299834966749907600915799856522561058260810409982923100854476319709902022841618670870428385205201559281499736449152322228531493736640237758901589369606999252581153297471114291839327477047078376512625542300402241905500101160401311827907834437062375621757072552807027399745140393960052947442412407458689789560239713192945522036011700214192653225554069437540808178455307952068774059610399035379633890062254944217954166153956139416106023256036339536360707457252384042689837456904175487605179177407240120323091904329464851448916733251632530581367864820146995353163098451992876486898838438453338975475043141258713867997725657777499374754943160182576449976681032953389058637362581293287387597491081925440669141940532101367541670245193440704783044509531498976499671599867353405433000846658100853732450809916522059704833024552405767391363496467254588949519452312491264630959318497713366516612096735507487671260910677796888994008270036441210676302847405530375676809117371149510355339487132406316502844556306066199007576828293191888526698634341351807771117577392310537670177380469345006922883571391742262472388039463993861497192032297620201288966418176961594405416692049870781563208212663937161044076728794004256337521672728268225016534330797087976789913012813887178304685186784530245734835361036317532048613855806492653442277773047015577662784301298388799622102848792277626123361374842448180781269834678821848258978419518491187444530193089776664975744796366427400927863526898387871373362387898482320743602426158457938075474619054015738166330763455321949324945479301519644226581252558196184857049480864918880122397042770857612119167932158255374640130542787509060669859416101603202109068304445300893381121590678948470263749466713577918089120693654891853089942478936397540444209047254603246087056818421435895031156044759886739997569327579676511400208083980656537070530577264861700864424449732812351014447746030904757509008173537079945083181787408301307846514087397454506515801146680671218566044964127061045336214396282145282521235212500491049174325118400461070920788348361310179782371483192606492765118304748500854849630464569124246322504270947058231283270760791153833163119764805677608465587738816607770061820885847495272399743149708083566515512597601607636049056977071882749627139417536652569847046351334307376996887764691269886665837089682413421555343520453370807160788319320241676767647704006243024716527411658211707595966010204610396577391707978722870517819830605757732910580280610209775912379385874542174157645248450391552134433084012498403225226265891778867327452858896298969167918157609353618429291785930282116759672143075869382961736717687330755035395387636364672630070474022808377567921484855708632541896969692187666942728234638742590945328424288695479280817403540583426999458158495909587567713750677517607539986199994039448665003320548611023573345474832734696449439845291657211604955189041290656428090698204032768989704815532704232441415417978272305365267935817744254032193328161336115538291973366878142278092635184515275159120364936707660809624810154284124372479504132241830138150482833738194121628003120167924682607419710542767188236376267938179659373726947310625872670034879930497373664742907009186916089117548824161997728813888400608702039442841328512395209437919420266505859693883381255986777580308809253942148446610709426223793514028604844190775638552344180673498258855143617275855173998517348441970419375720942705698564229036087221022899461620878769830333751650407667329897756886793815940190997275343587943563421770750086105232566139724756930103045823419732953124262139219874934331918701483713075381186795887825195848417740790296002381141573721952258936503108611931022104130108098372299936792005389615989713095504829725174120353964682636182197897689609283177921235479239433820743211393570796631848177974139330956755763464850998988607743180476806299230152431672775188476477530497233064793237183590789280357839382021685903094189425967181777879837737418582944778197569707599697916232068944241695222166120598420548877715448018809533195185542162383381816274662346320882181825170171543625431297060286678382463694960152097323742820528053982262642766456244664509239603317504452333309102542225164132132083272333627764893867156900186966013446327341925325320274579355388542040326305059362685161856065484347743939501479524802904721054943432854612818290938116870376367075814645412282869086709757757151712379059002636133333029795204966627668978247537494851883617849306760039378398137857231238707320397122864646534879776001776722759461233970186234842806297983063294346686413432195851063643738767577013038640308556521415075732402517855035147029062712442540048923456923808274459572508865835084070942880217725357464497145299441440167191418090509652077430652761985070094934700407691218151623868848631172371631009465120853332109828491932900903544736395106916541862347670350344441224375442584414354415111843921874904917616550726173773975416745699484631523465358819538909395419168648942298817985925891353865647017238314693639037813851151104116146632325905725966865945148808850328292430186921216241712253794411314669237168367994830666578669083005206843117500074832620356202138318302122564532481644186775220084764878955353133008866318510197714024026353686694879163469593197150752251131735634047680707789610077531440045450229598794961011350873225669443598677876161425054952503389324575924935882095630035545863366282634459104905045694421957711234100293540389415626127238401960610135128071508467538456038477496856606238538363713845735087110720438272795990978912333214853636826057314713361549365678255554588720256366743388451735024869703855636744371876148457099466295948438474615786396408983916910139219976948078330454804223691233562034512130779602170712864672090259942342765821625566577849099704125411189117631702770854319884747736489027338831640776600696927439043550525000876828771209915657370631657562641356776217569535162250173420080767903618842325485489008237288835819070300932761417588668891803885864045558726511176831530268585555445174295609884287940839895575758656354463261244078668772047901515557884118396973063059773773979365906029328386574793201434506986347749565745537523082958807200987506681131819777568015366151962622370106590591662171467732049508565350537760863537319896522980567687359861911368212833556932709560322865920446221765136347032163143415104588030179777619321693943262787804392420363219615626658943899674556792900439460704720358616452794839688680127110007782703019770974255826030663442768127621473627997460916993446294634832788042889803110813568812922451403023537966862779156701732529024100225717392260625414395733156113040680566338208997391927302720971116985976584573788622002808064189678079730793623368278675235665906462700232202421981132752665852328135672812002943818662296070937681278804621633327732487722423498514946236001495918888180542401161985921365094858974669689033538432006806562786977004805025447640413380357925475199381858530365450681317775968955998403174070004354535321822457229337438060737193735844491921253367863128179891156228148907491699836273935912965148608580277781071055500587407343743877557065049042434940143061042490369816577910922742441068128184864957678976328859936216112239078316869749573231051748669729768006363348547976678704559966609327975836948029313779950457552118470235943670787358940169160256187575499521228758790610502731683633140928162394709294842543208897052751774735025077057660543351059813094564235280803136576869311100457556947365158177102063741288105237069146146520291255124646017381352117337055359088227710539436074478823797002690405695324259102511922698699193581040080823892901496201818088159763486584044097230233037237084965262814926731382044931199223563398646919415176559605726104711382185634113463270729830023181848656711087876416041588400474076939874423574460962438800965447195184182437774102444205716112351946213098027652235684080554805273021237745199049105346017224093165632412761519927031337727632054361371029761311150271891739181899888702596243088200631290323682118954587719823671179948273772735586890535570001537555869247464757069115871223807243365482345736322481685440684609218143036809123659503140226275570244889663758479937749799883627342448634811040478342393713755731088882106537108430230538856519939215008371370587279483054988732874880219270654628867399479092107882119067085783224313539302999569863138092673892088241892685344240728795576676674283031145525703880713165939211575877678185854656673708977193246245624350530918375040747112085319194825066448009534620820706415678236050997405436868961896863080379953742842282633688817419249766837614125640022762058826463045556424374936068858767288439117042651939591672166669332578888813157609195734073056673639603306442438110398665635216424017840355367726265918480596202474339750144130142211948200043738925223515586454420021112349790247106216062221702629254575791605064751779521464104218130841841666381547670325495527092113826311141534990187414893333791159422660194891386629454108364941344754300765332616315677819413719400664451337341847346622954320269294638258452743060220020903837831205900322580726924310032131723728947410874983652048201896689498351896592205138698103837537351589795109483444891392039379120523726319179419477517790440857591947235484119314460057580127385838335135958998155758883789851080309810380017150338107266889134668120938826853545371503513524003561218683428664062810144583964492621004447824355705160708308672315271552064778134722210137791742175001314459922713212628239667169418824727164750388042612143766019025908786372040881861480108639217815879886369210323346765216482174804131608669903371878902467270142825748076371983500701210760869303360860219020332177038954967085940787373571178832096591194613084257778164573438451575659594290894643555608721601894358950615870097834380378608412221428151692240161457515473108548230248276015486382107834526525894577300487606565408630630169010149403817069611130985954884353408866636062060106572561295448981624973008245686397039675355225468790059448356649922435104994182408923093461644364661078333322688919278015383693931852429439041452716491557592998090761023358304804216843171346539850498565689664434419930395797832918733693129348297397793597485158982800251169071665817506825656004457124358263279477240651137191445727835835776020604634747614710020256907495290919822765713731783574461213459450611663328434537805541889131669004140994251635920083674902187936728011158235663755890262509788654175738291767384942310513601828585923287209287066515667750992327095680801099531909906464788137399903073996474933496424291961919034376957845039089897894677869176440568843575586646525660472219275926796853035882150810752753440652933034848625380617425924226196763979623490626786612015480966560872812202201743107061881048508122807809618657177974985122529373797145426140375272528054472514470054177093998095598876046103187625626987213522036276771817818719545361932152328552112360854058094823455351438089798138179088890659610144973169256533326787537925085479748538837668475040757736895108025989584589233882419275330895039825658392638421866273914326327534797494327532270762751631110498931284396141340973078070411329097327763132193390810121684305002777629684641043345110562504621437910065744575120192095212320312706599000928300066137397560096937501918486375648116444957675168427083198769072183896141688264072390060335370109907770901493145739152608155151356115168131967957995211255474705533314994236372435822968963215167260367699111591908019599749589744637412993476099484625386968238438476900039402499625360353705348629455491311993688876850147305597545727943264870418408201157360620515362818533363938153386104616082098952058574434563991294316719253742299311041410417179296096231706873308902122959688031895054794763196584951676684351291301794669942249609638068649550280040927841696668912498127878762964034672457366355826336383565611243713524182931992107707501904112419587836413839215971301294746155197440501416162234850471343662997180409981480875512389057701033059347438793663601847424607550913311654357465613856007217725168231190212014720750058370766447462294098532350659079799848267393555473186553662499583499562214569466498930698679778955881791106875953014943450178252509204948592262764619160828693933423779440719948440046074280906675993375094612244597573994548221451456392968706877608805351710379723077580447945599234478685090185776507091914936072603021403027991907866906009043349066643254108142476987389984832430901436683357104788605694600292448194965770873427400151980097872818654574894437786942293558570906281222023712862859318651137967880020779544008487348418420148101693637386142368549319708555926281841841686540414176704658526445597720530926321968925927244780959058004531245843880554618236295611414362052295108209861315548381579245703868618974236661868854278546189817583920485660404141862455236864433211576346654696817801096342701866249073232120345700292657497105339852964646636429145244760616604173971991477594009541164453021228810461580832098731886000979619520199174437497243016636104961458723226229008139681974833818738638088433835552324771355462750277607888773005596561157054822937626384300920648926544680549653127878156722673500618241138396622847139584934403709835436731988074379290583187997561929510084020095252749909360080545155120542464123975785135107839029199902001559573747685055078671661892828111552980814492908094734159159810489212051540397136229568081180304665480049540911578833829351454722030213013808435738410721205796550198527857723295412147952080135878537071904168598932007964342446503985924205998888726643519270169293024655164785885552590750782070847813707796731445859410836642670734231226655172365912975545107339715573472961172784381551795959081849578007345674074750813371476891534448702883113748631826922440586150225900360865954181371392680748170171731595101334027049006241631317778021843392023482377023801877813703382043675432533370725480362926374677581883516134966320139790050066597323647285813351514030059644485944152227760936842512194593669256436843667745940029179253183319474376653765258374906523981120953988399686438086861297140372891348934853943297377945290935212688248315627921009161861131426939724752573117791685754484101112037015378701578229345838094864146675427954244915189981400836513310451753133393205093876964415529084621582761410740270269115697193133911825871608784958736224256698698416166117752837934921084817173696323498327553537282829098349629087854299862295217570830304759830976526939303502111073602862308414249635574168979869589133640463458494786889433297273904071430102407921111738603803774797541130872529243367934139976343186726356053591259748066496666457102974934891092797490752265103669688400063206240467773775566724904971157560531463821029906447140092301499203243865901894320881875455435847141930628946671428693170129912740472520235581568584265283278022504790242927551899839272265303404716554659359485230491904309545215571900927687424618911183663369466305426033634579534500031284989600883065957354840029155198134134954264458997630897556581706986044993595045917754292229924920611311779968054833987677762916676280875882790048201689791164808491859014596307102836414934934045710836173765709801028548056588882416437049107496795395893011651591793559563395836296528637054816128799177192197615708938293133547564990662033435186336148410441439484387619857194837109326934950184415070234507711123318759240725686071600527387923068645050137536790377538846684917264898453477286465003735098783207638266318630936000239821352679015395560878510172057555030546869096494974874686780226361462306339703242192730417331808466602991860310415914556451653462329877743886305198091449192770738856976408036922404793574519260014046796950912188803796980106512807696816324561099429121014334172405470522540840159628549100658051905920850742427828602477520814141711105786883703454586468153550342973080790051879354193134440589361336967729680826607620433785047276858581268842705136604782308776160956235885978975066685940068693107630428658864855486156048250395746571137997702928493649357881772463987960664298468378405174199840276264731193027584573189987270183139724929094568800171433428632534611863938428516254874775584290470354230760629031834184484608988054459880636725495811526492248515950066542732930030439310615460338578705387846530648008677122314004830735484294540419531611543128929245393428778228243018876020441219298222355255466499513110612433357869757569399773071846733608782758791962887436655216084652451421543367382275019479446538670636946608023854127338330630154584293686529116815788796468712667826168802568002644639210233499668032466903640953635878473205186873073580955518198353647237118539232652613693641600100820619089395666359988912141122951587112709601450167229826144667764080295518966956050558414858114746659412108702234436476686768670130063934257124586248563223138167795896197389683246431621289795456897809083942427456689713130945360360909049182414652136199391817172380919735154073890484235909526066726738154128867657131663980976789974385348312258310483985841707450702688219110922948920574776200602939297052760849329232532492307179839800877067048369752348923267843492092018491026786132888169743758345082755982158802507677514729050295483001359991768008084360493690734847311464967282762106150421452239173957590856844665364001313057680482603856337446461541966106810414888227220662597076249183688371763915554353568737171571206858427605685391421198314976112544864373241580680822869831808688406774734432455802970521677917412347148521372012367389386440244136987213561473860757072998013565088500683185476596524771633250679671031384209705744999103127594060883676082836343354499190217241591735679918330767618992286641751727074976697146466012635253254841833563326596073802519380050829344853947594126531386791625761603637379366681272418553182084357950055101370884440939433173350796451412796235900536216816548801763730250606785555170507149019357863722486474950944893108906322343808036057779920977080768893996422157842298039219409440104848636799363687423668246557120887774754443150378848985098813893035847304289108509938307924943945837475646247354690631933184547653129279205178635965787261074957433608884852444339686183232293900504968927542095123221035870236673128823527082302657482787860172720705527342703270062708411168657052957850706161694284921362870984361297736204935428106447318176275020791872963640038278497759149030703506921565985489361423093159930047564315615037372941465003644723312536412183774739792307970833003541501062653125365836349023824531826887418740704679098084226287230166551792809248253409661901771098707124721918853993809022720608845777933332833872379068450962745860842056504035364148948518759811844041948453644734289460468579508867880047625649933373555114244183836682987529634953355243370486288383174172762185597032427180942270999599126594946290541061684016534095976642106596777516424518343596754999078865472233979627984618359617057476128267157435458666428943964093114970792369356398501798261597777748616095840679064607544428361203922100624940437675065796508157152100784772654254438380438015530133089759616603603189286413301748693610540672187626902688585232277045365024435299793485439901275903232538468708472462859987465694007323667498508917399159587794462561717277102562418432272342289124972722778871032656156683569240477166630318410361886793511800883489200043992603034886564037435289862295434828564787665827203222461531556824706776115778071823687432415264057262380720647350194544124725341034685313487720529623957994003190616272355534210445510085022320063340036918978770121466906557626918473397419230067222300368045652833032805158769315915192859620062116703897216386481993072776840291386223943958857797172032306089662615175671351571978711345201980061502218171818605124269585365605342237722847270546210034101197804369214866928607094323935571845811444597722287433140544457297002280654172321192219898773858489436712219114480095253408744009432262113924519342518295977507056429754497641939263996356650830578050685936434567398406848541853183591126562112981407198644073634949835696215755520426215629201431373866360081339180663605643755019575857248940661041322675015698718550459121195767461142259825873534474560358739146553577024111226989414657849698757412978258253981606262563116570738896437586041241136478559227326284233460872558835298785498826959879989821966520023230611031708250431997816502214860818964590578943345021385070690447083314872541481515014510445018724976965243184617368521560095489234312023296093282614145321774124245187945348657744120039546810605181544665995584098054739154352115053039837857078721052061825623610525343218246193688496836781749865734089344214678302686616159446559080222657259123532703270710091841401681253960604298064965901153939361485502858439365572690279154481579545618759465254565923566417499015667802730095018561385385897021024251964410390082230865731685074665254695868779791707031667199852999925235682914784537479260738087802795257090231213643189228243881177872658430750953684923078627242069742835986995160096115995269140870643464275900547430310802693077138218176756896144775082311705547573027104859959767358998328494578568660042497804920089508412196560461964967569935141132859962415446190590510966169561161244469738498874284137574031873338408737091058567954167199893172337640713914523693629327850651584031630645716918229138865833177277599652195899703691781846134500085252536359260468783259377261695808151651481411269929623493694351074568740288030180076537933247285821782111403189137887051124913131446436513061833362082008049826564307150044989441348085348408912825551936458723445756945995217836655350746021509307581973635192711812100685877410734685028609771323875645001591792845520899048751741716608616680504229111986810160614249970085277431773264675628764673244795249508739377713156152683732986313561944168844826712120954184798790755553621008728613643068826501665591695827726026049187956082625583505276116573066503708098208413310680385373665842630066285650046476022330179345539187842739782924237682366098430311020050379871026777326987818967963553994576472331936852210058237587340488239827519995616496213695878932071339747649580309678331192375411871264143851340650405944608344249225251800510525600161988146899564549037755568378387831933124345859402970937206305947599021728266660951341549046154582874288726314146917020616469282060326449041585387931112342598001841028665347649916641155817774240093023903033099716062754468592952271588998550381367840714534445474329238883331586621332099918992614976496415768838497474293564212921758973143257213081036934195000462252434193854924626017148072401275914749285976582385176767917583503777532557831056366289466264012188298356997089918974327359439889306711778116873714291442616030684385278870259825876852825001083457209214742336399198463992191081744978317203696822127675101651146050539029845058151280453768107283647992616563517880513185283665239439936294208531295340480420710358184866858843619765462466805704879331651139278441396962722210249527457856977324126911161535487873599074560719618760027786245813832764692232021427573276498940952163067625051930577358860539697833452242784602826858765520377067688037746983390976537021378974105274363360458042463862883405480325305349830744796209916317082676215735547178092144654220439517931171457872849647155284663200479340581942152075336776874528513566667909810056384287109142406316720310497418195873403282618963277478623924973755172031811609273678507967756854736247538342357565440159500160042825642235106794838169335326970796323041118494928813866026777067126969741645011994116464528106865249420739602408745888444285853234785923258884568485832088955647697201178080519455876239521185151511275664706520875004305429937702435147343510622004157250635942313527007289913503251500837807120367820843394903785980110480241014636536076574058397354009164854503041859240027719826034957880392530259122934459155679030236219425502940840049844792396733525097669979804686585453973728013326204101954201607440951331628613706305443959880221464303949971562563649420427358684738320124913619598990132295316012370639671746865713112868299807128903161006723626306509876532206791764706252907063481891816999890173175878335158912697775025224443405541019219848976185831460378640644261848882566936343424769650089347533897599600618347639052118978552576510328091772638622962965021037228618486413348426871153148021250704988739122593112294784139811494880178372711552179546968495955410375497136069846879374572111025420370473241323205733945539663184238928373725390776789065354922787010931056134156038939583738141163590317274520952418534808196680092085326458692574960107249173418935217185231970311221629393012655810496685541212004638290014846920291575611488585369967835015921555196973089998346923428319923170352475585811645065713287641201401571421985121413838943733018436159787119134745675627975256805996040315690142767437370164889443333078998916111435000838718638326689551455831622305863568669097026254880186795045708250262973625951623866730701393431251870218468278513358057475468160264956888440032361180552834060582609531394518035257174822796870065442201718213111320105534629006267486205094036042422319998797888870243467190255689454102225635863147667434684340700315780162884324299785638693045790539008300855228036862469901222202777194774620107401589431557908993621437598759265530919736926930084206558414617912896205567315401882328054281824523199152335916686220871104179885636223239483355490092225327575400265679915227849672666794641140364480570973895066019886248641769318880330995205204051690438195873520721306668040571255551740047455451588859245052760283287770701689615094690583304278109170093107079525659995082272194567931478231294231872315893766308071916354402438328178197531603896188392314869749551025523892435990712241107972504374574536393231514201169467611793884754432849743515214325179863310105561456881401605771320642770153331119046749368774562264516498738715237180299455759610471676926072361810833144704469563152419418074636996977984893534200655616995900926977155316744859071805705533605761606804418924269466401887190824084658775459584344680515056560185276776871696292775903273399019694028770738369957259297046505939957835375482161495531372809549886845151816162691935424968789229856653773910883610158737142495093671378092252487425714775177759149348460811311121613097307632468532199067428625005562537513654021873248310333028504731102674521792190213873199677363649346683579385929032192463479663323345691659510592483908909125631644300344188422144470769551230449065321921082992950626185600807554077425035432071881149018065486690726150602794077203886846965770571605524106262389693753554787898058678727801574837991062522154459070122093115147022430376668563632528233751424316510194600116285958052421519378983122910701489567962506625776178252414427904193111499612687476735617229147150077484881784141869815312691203724498757633307272636316064307262695672519344267575153269666864431402782727866310171135025385999814382572312049112552328853895701269320946638068331436806835170045811822916398100950607398649409789706557027135456030350283238182467528700917547232001404853926009676717481735132365067435477880914158803692566279509818990890839564415154627374337662138465396590883905127640663710590617883385172124653947355923773429217730397795747123423214719313989552645416975837400687241808555356597727553458582943050970385267810584029294333751543833782115646667858969060136100203484523457314725593418972035870514537439644287777316514580413299929945037557183863135830082867880153443288562029728146781712033332084373184701237494444825306544518746655891217129995181307712135217067826765401495375867256122886811675972765611329320098714017028616695710505473710872130333529435288501403833652405918788985732188512250862917681344921253611186352576073286742317782894599484372434601085150780673517591892004257540827384777579501714742929540297230525655009874406744885102884531857584360307031801050434687686254274491225765182991098501187106240268213023356415736480967099017889680791295927172543927424002881534450098325620961162946257878052555974573123939575149965174430046434528602420696250544244022831256695543738936723169093793659232027012756416989303185082760267992162747643724248468654890952248166241302601548748254953610687350345912494530816857144594738605504616705766588925010805389639572913672898911173040456663849842413639787525114740749160513377698585152037582130011025171738105022726578711420436396946878006218811738113069743965226694615918650090078649864024148418699830639787431012136823623939901144316894540302136451528451967159888036974976407995392384768355663976950567123211718443185608766581250381968015565446783792619767704572784977839774706914126693355261896562230658590613670273398772738321039319339747094547291831107348061397805284646127304422990548093544655233201136450954299538332314236874114125402946577752550971393846144423913393269620602116479862998158843806273233550782133697402552017234670167906393607052276271344089338095506193192844071753376854183869049446653246613240869201254216558118662659114483612580061480796550324635535165666112384778593524693444834132951234048288880475817326986389054283110614919910479320831043865442085138048571967103706702976847849854010767639934985258377574294514479704949443173471917856119802712093445782082790581549336841309367408142326178881222284468145430601030143237763126675264223087972879931065257152923680931541060400409586327537499448426108646918720567362751856904894213759981837697152825348788210029581070602422153515478937597407946324911624645146908761681688509273772773043163562339666100394615717956963590306660880718197110646854385833429904098762542606707375328674804230000448820380023233433326548879315236528123632639636407841122611175059465895666474419957743341826443311359930352147327783933798392185428625218837659038190311296817792023711345122147224089969764221367877075824528975135378584195412976259670798793693357263464222764920882084773863890886716498688208799094916056487858001925037969907202833084011813069739663044992015014861186567248911682597724038976385400999902452780575747123699503084459449032500281704242607215118625729983336146203617339816259469731899998265791985387670396267375290855670704497984861814247207163983472730483473914703527530665854738053098096275515268864213576739681279749254927016137980646907850354562251158114477517476357720271568550790316315150656345108243955184855614322559136704789299568817944700348380183057338910463495033688967776768508823638220617329618914788652082225898276118330109287113719993866397803059163654027500852164857444626733963426455243343929295084336759773981659493927138737248806173434173900636553140829364857083760619840306156193892268276522882075433256254754833595761972820802754717342837622250583258137623922052353789659377328348781995429072355512691008104356127245359492828252323479715039876489740622838136197590025398712025899771841530846885235480854347854568607305337489409987297672508648895450099170267370382856102661208797426351451843419972881904579422828141438935960628566249796785081795474201373809428636847935763049864231694982769194009107803122517180948731794696781408298027073682332042893566426772578502042889208042385921213874783876097286440634014783366852992181433337332939622451525361391831776783849827838019136483913878137964402481904067145719206088442508918358416214403925283120795434326254411600660116784303417652821037539097595445155321933361405083978129116781125336857347628641584424868482691899451078605812075014361469388527754457366923906562231059308052212098263053140962148839310648698157142382895495758505348423053921138845088239624268777844264787878740888796963657642283081207745722802347672764217113219495831322148587162533980205959962208741663957320296579187551475788850311831515850362706340925265040059292005105089370551672489989334206249663784131216314392988891478278291637773805862965581651094929412137478398913452630694681744347334444218706471611185788513558742079520810381609298938508589966862321920883344157330809105241204193046741823305681272634462006825121057623545002873071171193351130003863919043496158436363611585629029410336476182993465205151810844149045609997150764102127635887580486821503230780125601600803897683992866795997931146290349553165831948422822789986421209196775840032024516714392257041983853962361393106359836352874944847173737115282777485839736008547621241090818841254906088115452097141247719988207590817132441674772444267399173783184887128331920612536264141367309441824648361212478673471035973404291689860908598134860743448825742908868964289707630718032310095609141920317664896569157021587684665589980750671766363466371829888825018263820351392959695085633996794790129583700645290721172376804079919059007710649879628853344860031992553107046868444772873834075278159633828936254205255133552193017174812280440130315896743326161280666334343074227333828065421702358620857608957922283400929540541335765315379642573938995644069681969523893069546603059002430309024116798336566126104298526126562989110994913881089532683538308513862451659916954028088110709869507339213198921859052313427088003395288262968703058777088674666108384204747382583870820000701946816570211972980261197515616024493161969700326665016475990159942405466343404431475522637866898436483962103749085170561970186347686597064971313012993565178033918030544765638562080508421546912549540386882738052587529340989824136301886991022682184497758035339812186252272145275830835304859839740870289893332504873918041234805501247166219559038482913829176316841686241314329716050330821022398207065489161728624262558611651154914868742588936655378299239981302717605107262441175205604680315901738456192613585975585021232766819932006407829242620145544737926727306589624074056963493266389566347902830797515519370791394751432983756768480816797531570472778505665294043568199824412252326977052266266976428423301337200609224584903987747347951393171004615139159997546972621142275626567582831641132452204624534906192668943667080304375070178249413414153862686600753393843768444939406927262176061647780271311950837531048899800277834946881190352631082375759030527474425100257394347449425792666790756223257194110541530817645001608084107036867084516583102627699641178478510496482458686872945091616592749395201288360724824940544143244976638021819972590858361618033625074639205371632385488460594256049903773764433381474247239993265176302155465019342992226563085294744325011857953836945603421618510132740083718089371867559041252291411763709313824866264000773040874270897215530910198374278815694583226779620674149200979177482478712136507863456635331439030121787118459543470148939798553607644840985072202866748792244505202922567787866167158378615303562644829630524168432611985961916702468710372175702711874640800363124684531177359924180140532540027045189952142410638486973515829296549366123025097494591168284984782589224230446087262693433499343625463788407653331012751143205255622091840632348060654362141648375072781907992936732408742410376596148767812625569934775718883519754089307173844116381927039663593807739015335120428773157610334359492703780317898760701710817393511184556049573095343862077067381377134858330946332239443214272157697534928675180473784215294484580461268546939938337008918564986676424285748537616349310559746563429464423769943794536231391781856933864175113984404857294892762398213947475391144818073409429826771460988280071161983593155592421996184330902374855965192584444468367323341493707071221794585837113468632464039715808660500345904857032406648242281143154431689181314157857571345497784100214101283154592412279279255405379342150307379504673634751798234203136534351425162599736181410827569298969485189287242980437132212764810258381195943365476907846868584387963817150654819610311555124514136539005581697997359316854555635886885551125569149198809467026584435947541929004345596835881685624193616968642224600999691260625894567021459584471313135442816778128425596986724750455735035284445217055175933474213273972312357484118706363448645445877907439404436220989414642730668926578327290844938911233274198112577097721270585141848815746700449396031178928403086058306904255152624406717728704004058409823062635865787356613453332993676379004530295422586271786731496579146957456266134716166067649563054420515352854367212688018194621098230905955699060318456183791665134909183771965703684380869732955937093662547247879694502818451257684842962635420432955587949569367331347289527616833600232031724486166235137315014729433681647848423897843113619365988756182448685502610055862044588163809370203821187282008929437358235735865949446533320211935916348744646583014647478980927149498408263939798809555946049863850509745310844351201689585251762632361087951429926000904160052722014584073483474066477005690835519024449030372503084494237827299571335140827079163122479405485261075989490131036816265988104176054139724570571178904324528152740049809713844575660104472296543183112609718506610387265592754963001914203138399188129415664440367060192736059001612541367606157893960282554942689035536571640349186178574640714142786772258865421386042716175578579975597506659286408948788107518607062272936319316513019336558997344164350370277098676820491928840874607548809138348530221433024067659734872055573714673545969058694405863130620410602617148698855593713270638786466580512665822859837995321537678216507907117892202524687601209942877269842518505869450707625325989065081008299392344311447669168562518195802481836216413795775565891873141314123100149134469168199885807976495690312341988946184656476897881096114285523131217026228325954561987534197502473383694167445904078967553659696355755322097621846488390536121887935664662189378798629642021139965621875244985004417294271232539009553941255917193486994785318184300256396043743478335655968256037212763281398701317050790606175425423444468053689007991879546275794661500837862861163545777458374301011866812034763193868312739255203134096526966901501531617177603796630296137455924057579793113820616387922232371411609408861174562041707038332341214268525221818173115189597562815388233679602530576789484573844695865799125077553907507251559024383728476334567445731249364628328681541987619345834891869161626255497964799757519052080091096157440054033443410586097942157538273947645986772271878873347414966232048714945679329408187687527125232325080564757759452418244375841604419994866562615280338095842658352794247502015974323218698506148892767247238597835387253979426677738128077466267713233642744328783168924700611863071798314962745214405339302717811303175380321504249608426932625507529840384447297205701431416118340472746801605376477821626787207937337279094898827737606266480985688879327492128305066016021990238034720407918088204722214004351175935659670799869191257546772416813542156070309434572421478035763729634352322289309057451124822039686446215264267151919611818537540250035900653325370862104240211542503972956715472683459924774023547661740995881835696515283820926095909556821684101771930934561075407577175974054984560250830774152770899338100323617904516456434930591049958326774014143048805628955986820131800373639607884361784223731843096480777875266249528371775443824111069526028637474241385828850564359645876769954488389641096125993857358593698635422184787875848090563786804000907136589234129332901826066373209915804256689075143209086923094578445279639279014416483698450591522729360884944751461972696263646968317733848042872388435105321860153610749236320984347385912882979950649292085960834106205607275919736495866037326068453003563102320187958226421256795991945894924969116476873129630120059128423528510757166934286079947902472591496032584958156222342044957160732454969781727049582712201673597672133621400124135839130798676593716870621887036851633386926917873629133710205967478520561254846969326724036715480943234281297218095173046791813200056293893988729536926345458700823059481550831845675012576796146319612647552310417995983367479748432605306876865022524041910736301332281794499623302258940903897989848465093976557747755906882121096418237561216510641661529346538564822312166201603562345471329091862616749269418374871257381703853620995956878992382506395594762874326033837208089821728542656679540048219660372044473203626221734487562123275402941875697578468103648490541837456893100340880505242562954752372604161992159553704689203036502052403534518492730389125165451493313793383418265618706934048993203712323343194500011643603707856655819941806771121177679703357722653988137986650667745175642854854308555286397459228739190948966105596261539549346734946946282781471028559703112395881673809516231786159888724062819203093196995166932510948736741091050164495720851259149106865761401957432662516169425399795910649564037428669227346498228020097414193152750631803440774575912187743748446252447215262497802960135353444436907230374143444834892880906787787208005293867998018914935065929220562655379951672404558758504120736749099685340408549727367497201964089693790258971387313844127358118631225732872106298540150445449065479612630247297251428752140497901944910188849997043693180978950316144583889384035255668214309022342659532524438084796122727281213794857266307750346308746725296495987993256526228417211955501371019415609538663947410592669723534238235376447697650956143388964819627970529708349038531958239169640811199805011284112563211789791431266293479909481443892271618875760703642361925640361536572523384555179994753844832345233587070717381545657401318192702375154857061922526301118335144732177492518305921293919708844986652640038590954472711920340228611868396650605701078457511979330407368393720671748217871372504311983359244405302949593913812570930567841761007571564995780436002776982124648616076706145384544620272259122132561529245929220794274712580022470550093239434832635905112082396978219962620373883881249209056069634332587566687646867971396426279671231462428231790665889404889372015466564985481867706849234736352608636331552503474685774944881184644677227435318890607621200104192392613974237786471504538435808368030954249687165601975110053003798345833328079560227551748128241173417199375960781125926291462236412195558150472690724642987492743598161010046583471406356685025008180805821575345370395300688581482942727823035875672759280700926885461068579171659377767444319527761043047825516448434926132202343513001649692880180255552957264922681894873154635845529461633220833439292182086594855628933294562738414678394085630061457716043729839981037159846565899792382601974958171540291571799890689613806645200221495920629274415138561172227418978897241439650288297442792164432147950131399970547041332972401575217049412967855223324500374533143583889808604559872790593349369016194916547028558691617698286758328722834047070959631748659888367286478642819701338416852546077043751260504037325473660711672028176241874802084635226045874411705633115229751210347420145269483613619358742272295341177930724643814827068564209797897663362292270531773844668653074223545841372693615734098597223925004421892184543708258494740668497820503124571796780306421242955414953439352405407999641127669687471098047439892632299277980900238231756676504272750300342619976744693380534130612113683906882590218055544696164021936704498980924379009746493059584383726768415055189012756082381463256740102821258094559960386383329366195740959390518208677581572573393382952001741436864069449820306602414903373012504063112296660504483023420920554278734402578112479880827814407149173391218637443687393615087555603788271331488769420023490352286844957013690840207898802920815379054594681959132810379548236988127167092278615963406709660639930964004828383750816716181751889118406714686556325982156226793740729307548766193696075996213173791066100516108331925944389314569477923390609429812637369194142941215712847417520428718285115942109274898383242745832443096035670731234985813310274393751564147223172661287750253235884330163610401674801978896866017077711002478719802894642773893379043689069743637340754585211011984900600908823097196641430060674476532367117557773246841973725346143677588252972048728920060324338807135302304970225063782210037201163254390180374757710083019988361487893216887274071762383319614636068105482502119352153762556398825712078300440130198591694354521896525727892572063184501819906185721234803013270834255342042395345866311958892843094429586714914293441864335689184808336317991915334015413648230879888362125864949623976266051092986120525033730919171294631583715529420210511014513495767112028647282704537694740787724204868464878890232562256666965051571492811840816801626460103427326785629091994528515660530930562379781083722814705799348453821252351931983043517662357834413808397822849551176988825375175282137600021384498102458972525464071266001749311505521510799191611142202429674256777124056034276545216394360710392388381986007777307051969472089050432725798176424397909000550262333063342821866410955518198239417674859183093659049680918571397834131158002637992755698940737259775229494709293232227306605287476781960425560570025152630420998312733815182900249615976699364715827234019922427841128581170960445734686269139860204137126288350580265586907078365159432859388377099438681975679684964876577592137770465712327648899583991210437125732161873530950583243641388430036949206574380689020605116017037060230829900986685259821536300274349342545334426189828075637642048883425387909893181713823468587151033217998281714838898069221132779684205960566099315773678888901800222333449821379689702986929957448339062539692247033384347872565994954658132301820791169935432283427879993902528823563579270846492010841707523832319639163308639320631467337913708621696644166235593892377194090423896920590735792440908755045319432454792134841841241431499147523810404551003886242754422826088297968616948936953255303338622474832062308422035768470898634122832868758529478202653653231236677263094807204127192254613183253490185170792626523825440726031266637473542812399690209551901121019176685314607570468797460327070588687775771601457854959383604646116971011972357251490381755049284836835633228632212636196836607625853492021864606450074857375749146151756113343822437397696307742343627881737516419021529615204147234716664450879890742554791026031796409888938875967965162263020566133207680038013515309832916154535302291182132729629447445553010941528782904067444474835739830245913343254103808809553788460852630072447255349664047257778798366183365082512928350200892461939325955867061128340604583471753768942765913298988469963460921879228825889780335634348381059984476434993845832455405247848045470125250235310885273557387748581002535488432306226780767373942137049732023581562123969077930613181601629512214778990085426245943985033836473603642692733271417524115036141970411004563630910200468152726381920247765299909598945817067183983143781830880964566100545350071663914568668597014571427415661656166819537476029893445369425514010334528711817661777212287065062058051907330215503657021086518289135777250843736083773399682517051590167556794586856965366094425901666618271777573941051641906904411269691259232373812325213028084207488975419894449289791399406244961246627707560662856132485564267025393593048238672234452924455384346396408749684596377162125261435253560084679033166284761266132818115073433637831191138021039779563817133017116263055528882120978710188088630456198734633880339187803470095271969077916530083014792359070543164128911854006487763397565830390464181207287754815561061747571037115650340217701530413322469681162707989950906910353858713654625238389784654355904089655294678546096513303580553002963466653498546541237055116140346573331410923781377151432018401078191092903831080239412612780153711714260798784988639936686952597909343923325345011401714106059656252537908993480266386729745860434758827577653732330723683169890631961122484573235563125355233611821458722711070042424584643731573716570775542987351760007449526262375929139350541437097054979666782631924200807550401688344971995763181999936126512105164714255917034456018137135740399004444234421851043980268275628972077942083115270655487956710162430571822036834826347059824343338315871833696524704235807780966960172640521700542063903569635783107227652391735467479401801854209732483180390155159248512652706787213418015446206815114594957405390908764615111514707304039693545559513836191192844176176801716986633265971419487499918042861926026399726908700828952646201087494782513525512449757628908061504883680432583080347597900851690956665118371274991144863138287887577784531991804691759164359097372988808222578204207108801979064203875171467899004272039864655765433919045906587243791189110223108018758060279147411042652706152851508230186889586608722067242395233637894794360253196025044471424096675349118764906219351088612661543421162066524566462150430159819778138753565404197726562227925204941291489831759983966471529746651949403828622067508345936951052439419824321032018937233675758595164358216209580684814359098328175846340422295156308910380717805872620311082746638994360835394707821496148675568832858073718803999488242645731323738620255798506411871756088161469785814927183703004349779474171430562066662845871693501686471616336339501615630686096079144285101121728317860397092796042003046789718218267922703217027692190341660422646247213429026015058196612539306606383284173235596426864701987255332147354321603460284673092704389172811638453669454366432315028924726438253323262030314610202153718297146409717669141144420985105569103430032148652151153535694087077029041913013608114090694152510080492276126523963691506836937178612686286554726373400814166063775662022372068298863809686968349288337562578438657300512929506542507896701062079932072544364640235306383360176189588557093369625219829287303570791639338938964795754628673046889187707733669748479342338256968762050606199770704900149179644223563269482549184342414045938017366614223163572004564778156583837283618018430080179792701079012816399713786378402459648115575085579102536664543821314941011174390355497934275779548076082288506898990499219659628678377519014789554552639935607472210867701100597957986977806106996490197034994485420460356246932597550813816650361184463421530532161386093242179246052671889358436826825325697393113914888438855778962811046788412669050095993878197198998913138461864668380366701925807312678287533021467817068189731364759624593642278412235666094440509841331659321282761032968710070465330857524745854609407685522760799412996502950667274927492859586113584235444139999790599902839453146747835385755142215356748930639177752719528701442113300756189506787548027294099520313828153956529584619960212667061543996548716359181523315628415815640754143393975393498592974247332232060933623232490855341525569752662932926732171248741135853414567377117135988136232008691709346385317625223207115707390807017857912276281851629009034096617124092517001250770302081205302949305271375296785923995365135917010085975193468880728623309629903968068102517330674515041103615470301390681692780810771268847100477103702149757491917955596992604824523186782787586694495901681387555995682922982405282128440773370848589126381233814095267784289729384947972229320378216998167119433976759505041137344163640611439776390737932127245357985031909220808613037145796070247555470504935610772260595200024655884953225583810644854651297861573405674858048079352448267882633851991967813243714273860096788932501074738001583721153513762262957518791357665667816877947043319836108507781786822454840552687444080623481269657339405623497352427687772723929880179342555923594475738166621916962042191667934173977447811518836884365294493668126147336552338973153180341662330496354098038387991847114539822089243481665263579275901267358115832513626710739511750092394771686640131430649561853469378525625817652261411679998752456087876909993966797007018218194836800790734504806859750572315815327680463844055630424696608353243574841578605070522103953912690925073755880083561512474648503654047456653642402703283814879057496159060877074556596690801965513289981434790735664763403123914326683983716641983294078353089317180714425565623402780993088035527586109465780408016037625409066163655238829718986366619827153487415514266405083601961822227332070188373917383159790588654492276709893097167603107841375459055915624433300628539750565774362216826756510518693346905482476028990342835670430675945600676285351398235948855170907056348555463082986044724944572909660634866119077271406799428870350667752514715066833332573240741852422391601473861050966626412314826596319406391369446343649586428583827434174651695162968501105373978441887109869810642198555964793493476164509797679666031772318286150159049793965682275691208279374960256452063324818100310859937196946141769747520443825942700528540492009478799092671121193762313456954869712449382779445865003680857381433436423800654484467378383244182014696324586765813253178949597619031980374899304691229927838485191805462394790324558628295542201348888137277204113679243730104842179797756330413812875990084970363510794606059228339937417430330854416312432251081539983686638268966910040693838862982888045156683800935912840823047562205496739412030761888996097517451676088576090621191968839303515017462307837950390644880699242869430439742186977809467941519485357181621079937107506743690864528548132633058897265366265166045770986559758996692557189109949006652617405556341262249249766536449663245185885252094932415817009553286879196339884856645081698762012649625801752909669590293793295362740979239377128905604893834510972540402970213739127699193129061921855563362684488825304443993692591607627910786401023712320468069388829801469631784945303573763130046896510190556002684680657298904961781489914626613516322842881783564425519911965478027672336466263268535958989082087912333958774411336207511306348190693164307771173472469455613584237416297074955831306045078059694223646055894041433111771245090341019484509754655548918340501928231267033740221312352921368701383903072804941463580755995445135236437756241827240247448098787154666761386883616072726499456161696392494136209311656384803416367194338242942252744876219675794072586797116701081268242770082392547916842723020865905255254693861915065049814354267309163342393315302788738402007159980339499138198051404180142934766512666334029484749142870299869642796708618378636383216444039729043609991137407760500433035935597381885922620660297415865819800810214214618766516906936680343598806367056531202017796335503848157779339233211980079932085903515081184080368302850582587156437910161270357724793322192042270872761446943521190333548924164813796300099768230258750700678076593750120370030905081006180981942687699032281949306104428516776738575758732381672588781078588958133419834863180076722701027088224491910699151111024814960588793840707447046915696162251598114649152033865989854195495310698849639041256475729487457263579229321638629376898028265510085504931819121903315330920180443574809675236880152130286902269043893896471820276607530906892531816091906574515944845216814009810713595589912504004021221516525519299847612096814816131491760581376988953105849266102193447908707140447417062502991841748366254919776726421295526239246705614701818168416598701526061990817690584670449841903862317484688795231102747917396850315070302384745754764886608344463868455832831693059285998970224120624302356432300975837648370624285285883653347979523735529845949229311394920332020023446544912913106647288983817287599660104011194845634675378942157937447292689537077410186776223921836482624025864482373648392312636479961547876983562482289004397920143061532234882915657460899508100664347101836702241257844404530897441051820096562268021515579947007245162044765155698287389018190655562218846797934024457311908909101210970187512744155693378376465711954521675026982465726932837559669582354248831206186208898308925404521736896061507911710057580747692113585000844372939596593860203914299487348400030603372120190768071850604563889654141288370176610524220130276647798657803238565046103376787103481420870322778457461666438405528874136329340406052809198260493514655192197083331243303441279888669231659933314264189167652546859414290729703286579495218258896460995259940583487667624128673873196012144148268461726829425118590280893562174881212092697412190433468257936241656701453998604124808108462595668206305838651706235084925454583735008190408720623447500878396353316319492102092559810431065611376407816886162649342266161140937277513844209224275801278639305956807795515089884295180825206686763905412753777683827167482917589266565730949077018445082677791599961632434127283149538477418820012844571894162658762317279608217049573326829570671970014596645766634514781581227579700847261464480143519337813444685999887457062113840918243571472934517303370431612649032274258268874979263300174642421638751288360959577662899518985588699078842520268465229898862848154106812986202963204392341392353475249855680893214081695604151616477510964984520102396873647555783124281491731764197454142766048835349808842113131384390287460077726221425600485864381663733966662775157386665558723242855116285075893863432867751675725427271122148146174965595669362830371827756583878691124625807314587790359858870581191850626426231362517757849535178532515673442470656907089379735711579924300760314737956639340568728528925287404848549503183580159322899289579343932737710329553589192535604082288472385238856949451629435264996825018518029201042293593956859286728775739465884637346708783591297648278140225039893792088741923846289159768482470696621366131917545995642133257843578501968130360739472551908525538147581909911131285023379561761196801558677102655515510858895545784638892358072343978974894781644495954172087763825932927563713333639516878453675156763896719331856199849759634404148880821648592978999039421808256179160221098523228785327976788871741371819109955223053218496502457941443247001715493940997487895491286334302106221524605058014896558132203994681619987054912101247337481553836170853929196861709966300890662005805001274201939864761248720905067197477958837276344915747449069653925124510219000873535950506701503835301818937195963848310244722544619151530901338729998143014695421290547239760489765324642880783902101253816652584831316303426357390355592430191983437367827442844261255321868074352246755880950114794213180524806852472824696670444467426884328716744103016628927420385106276455657879712681513495730674478781998559263381408494186697358429108455903643354741420643703316304241891858344633962997641786061540565131739645106328307035815936851773895171316909630631775531168998403845870790523588908045500412541633739310153973071740716494509866856430316606896826017112876121037139588403340736455463794459238098912462798427721469890840544979388104606613813640555427073108571239453750575719149815752160100914518750338805952921921552346130444872589565243991100182211373744457022195147136768458469763450078156807322053093639020391127399123004863709351759467693287236216422139258269289381451173255870703434653226862992931461968648727979487597171806942062239628098202441147821253703110722531721684128898438510122957595206092325277129544861512736845976295187164946016229786213787607166586005286664056451410224316128977682698467838554813131067742582030578998692880095302139544956104688752247226933341005516644183331693420170891727945139374944905897990774983254302617672089075172823048989753961465248968074565017983104421305635796313622674358372432042544459680906571091717088092814184500262126980184151921899761228740607190431672746771454128293579135927772482249509283623978235266488254053505509284480207453945479952864216052908895914440441137160750514390722573947550009271637330637609277211715815164729903275348756507316836128062553072549059240727474702137230501230743417872724777821007672407175089441943948396721448328533882499074404979601958981580245068819322564407864562352300529849347382472360065315171463766472205923401479412823190505727140055893401486400821582829703626155667833188681461893926509379462302050998483911759400490178191280797170706669445621019740698323879250705161826327632999010914740220457079746575350735514728118099281099624943446215329710683668304084487884491088434258819786192337617815701091644311582968407812701733710082122411594886841608309662182591855031826859075902215380711627279543477554568071180021121697489384352715156383810339611210937339271401709411909136290618883776833405276227241325806003508529696133971565053068374350106494433360154135209134909486481950789200998646631092125298166276201754314633042826234131705937121771350956132243408070593780713336560253794064068635016428373054913864596826817190015463325626801270459220225747649458822757896115056871310500126680256141651328898392161819341973895999674538935207176848102962462410939575300275159595397507969778998107944525533082073608806833292203194947001627992333396605964267689964221811166412271229553252502166487274315735772825607731659684314422134789134683120903379753403230154272742746135565713445937423685649339300247771490018346539894300335065116478334882058086899043815111649621083976853695659204176731301067207725350717672702485872672499085936595343747660407785386114785448536506021352212089891721050387967004404771090200028265100176343692658684835800524773934245903408702287488038649538739556237502762439657785151188923840454968580669372130832539889597392320497222022375059522445737294144236410477724709346757224862552732904149845376920087770073386521804479056427131046939294199290457917743331377014117948655388823873575904368435038015623622740746599257259211157918622953105853009176993956705730677572436103372143488549824366918291151181645639151779237542050359758048201150096272013713462524246951614561665822847188493518059094651158304222358141779770547705156432571619409012919702503957497061550858023311298286461076004825565843479606167994188629426785773919063303252120090750136670222572297189184090899695186880724732297807167990694027412371018756973631692847463029174453293830450655307871717341226432378814050534884953861319316237413225039835047399976893603381276384632021515390869710628351105016029611312450348588066281817976707905339279478770207566699040766831205497840842931626750852312528567929527097176872821867215719366655193675901837146060006078959094551346668639002723521568828399289407775835675861788977054551159809205389438025421262856252831304035803949978506852188728949216340655689033759500455543175225707059249290412028076592489351822914677248525423317899941329873367917851395169246725494042161385147681730999093357391967118824642169752468758431022047589536060168922571702137395569303971768250011109537374020515431061743519415828190771951634023818072356815058247066543892612336992888251900992472826340332678927755182317437660314245143528521280313494768460666324262743799407326069515674278485360447731544420827768175836447381356066652696259802471263255631179723571567202485434584693886423612526405154124357764486099030769783105521607268253967599935924064301261801305415729045098824245170560475988562363839733716615102554896992014857864239462531457553007924060113039200857569291670718053550711572009934521584765690861381668972191059168690688568308380530255640068830394371553851578234094357893053337183405027188255210723987757593316411238381288223623775685166265022067708252628475238517225788126644622366620087410983228168024807430755453518263634905311381825002447142526209463574362154946049151322355053444093771745788469467482709804013341586989217990624043937800239359414732231613705255932758008663115284096746755366751658360608155804947113345857229261165479281825659247282634137104698902764300502903251994512809622710247033636921973436151019486345157498124259361070055886056974188471291860150107910517259736107965405647312050984362268440947063252077535814968511865257113574626891538113666847413012124950372056215909335903268448798831038166396964989107699347286536468189378811181226402706745332743806266372487479046380922783306117332635957458920447566074445696684919608488914079007234494521282347838939386999688323184872946905970309036401590491937716809798194160905267823406123923236232099135199046297862443396416076923635288433880415963745961906370005932886875995855997871071718143899686013233735629802761453712430427506334146232966820655002056686906557186235267555154195509800888369515249750449008865158982446330721841377934980996624281557999847707577028481297089853465794459185717261428791030406228846252661200886911305251440180271778566473945661663501448285335668761721187174903369058602733945010778410621107837018483756314913464757133737419491893893085572194876254219643097538204766111384181833229420940670567606139853435844258276375847217188770836294760997829168392453620114069883407151449622570272154282890814727692082863832887786975715032947369732628710425192690417756889022610373876467181101796784783683063344875308557525542515559923447494632441611240274354883738033018579136805884489348774845015202945116509447404308735725232998547585579442274918187423712722514443961024318788311479286841573629399441710879915068078257300080369959957151056108965730127963235494131537510011729083062145679318905916258402481341257674385144791750403985343841640072992501398440126928481902327699456792111938488280066465586212822617103701959957408498340569668145126509737068635163577465766704959288905495927481024370962359177128607606875084681399353775104046927835406494184736169008930804914829387053748396817077703317129381966893045781850926543016869128741317953111859081629792921170393766879576238463413277594299589178208087398858756580240095476325294024758443385178568937796751232016299968675664815604952219366041598982591564824585381691378180524874089383674536395653320838204788945012987371917278229612691080211707122282368691566587237056852196140628687285302528129178694430995664863679470866561679313033144932911423835857924654362668968337784155484624163088618803325022592442119435522817802427171061337152981106931746619417914983988878892549722880260604242549803723142899343075969761578485265120143518998608412335186727627883957602769406498082749484903366385469036294622552327728360430692237476659904455902912242076105824661668116002530073390517908901493361286959507106976283041636371847374956799208492102186173322576257130989253984336034996551724120422112084489443642640575263541814824369973115991151158607732389097784535477201020888954997356663533397166163475903659530328216595421853954600157424508458719791634366520436532082400035917983127474643646447622153974859605667317725851664284848928009497009125265741925691060584347834318663958421795243643149356049841532006154806428353380316213334135566601466344306874606322640058751819422625299856240622677772059895003244846466313873703931314335264562624962933177169156105949341221507564084840509889816090057535143352087022281847787822311394273251150409252748056367591473184199804764212768270483146544588319683381272709139530123784185148089225232775024125653753751139557083676381469076360682076266293744396083604821316282526056603788055597036402858883576094712351410977756311167911263854849797074733831956093945388469740615410664781743669351547230146846869692805548043341716309468271216717121826715321762103058176788462052182446358308742464621653193587580969936090786736588691940660212343545267399922529925269849148598507567479328136132281112736124724578763733268155320642409023234604202722391487609959959962123887461851343957730479204183405489206395902807803288206643091080383113442356064412852597140246087041831268412737409734935558052403731162702511610943232134917078024901557951404730135462501546382663311756641020476306949154778714807278310255652718681005153484583818074838435825164566796214465790841437649552112807201122642768758888148535999563105237391113639019047041159813217528234212452996311033127221935202757713929535302670374625004395182439037077150378172798695604296565916349826921168266552794774150233057596722386659534285527505636753325814245492020904230892345016818569189251500276135805974134178157748387824937314794291227983235305522279849437607647246815698878412851259610542421115806126420120596531966023467012425611325867917050819491650844406686379261038127548218503949660455055598778544412580520133029910540009633264721819244876128539854307151507324482314240467328754165665174707466395715637688767724661879964168499573475240498748699514863588700992573430568887279581998918659028414625654570696232421409587280483667441208429437042447635939470563770583506989948209000899975315674037107277035844097679547969727637205531273738354135359065136001683651367898076460494123644700763606982412961204112986377643913578687418116368258401004066997798315498478834131978031843385043113924413105695073655022457929223231681071307853369809553883394287207633205403735801322412210805904443208338769559165830965038073132002889253157267909027579940571460153667660614767028252549725689710675395781346263761866606728272093918389430532683736653663783765723544734180069541230095086653644681539211357132715631226548386449296927532231295805259460379954563469293181790977342042256024820139509520852970708059769513304595919790147335146723231975713275135580282271864673477547201059535270855917539397752810142258428337416040414734746806621721333717185104623888292771850166290135295564913464995638763038196004044501449648426850966360080376806935686412254112863774451616325900033065959646977410363491721085250001175706408599636166330810607609986586573724610763477792629517212376565881854327775454485702761438501328709478685000259171111559362345807920056006286181129564794798685215360189823317054006650053025106160160573309230134665715847059048879932337420237949349360579844526423573968521877201809589252138721162048912936399268912919570551849400967197238770887595905223108061140962673281977711468772409403274180032574205181493484755356086270145905897380484324138611693190734976394361192364686895183932159220618699573413153914197636802724479175660133160505890510364762619359619591044775289725196551799456163992782685951448317839312860542706784449144075008495885273954968076584989469576386482107644774889986097209521764297200179083280458454614237747718837452720017413105016811099155223055201959616926556358808398840179554200543777404636101298269972794609296152262003255766533204696325654272435439680718884072473769082837601431699132176272057552068606664579341138020086695058721977413521532420525304520164168363896612971026867410808778674341260357000897170676149192882369879368193300838526045171720857020913104007329768382668025085037252654924689209106661869679669721034190888531260775113944291384460871050544696094954896348837609605885824492482791402475230108903786795371196776650957227329739396687285607685744823036603335531007167903613312915048492562126734310335057484013884357943517873678126178033365720231579116004472279623701503553668118570747959090272786569103156485358992739161783904079576449196815332604617755925608312966660200441643830054325681368869135502230472362669272670152437365238412429983740351040333585229057517939245349485580271883590828700626383040959134465348468601495521628408308149403011070640447201751474838595756337322473241189568602085857320489557833290147371322587478020407305975182938446895363794600048081106058623673220975175796285466904583371334038847944981480806998451186806166853410968374676203981507969324547348187239031874699854010347455130415112095568480511987227607916203389856337635508889022922371554840519621250431117218928277538478895326449327527103922491628894878602322130973509862416140107216347409780271396226441185889554690166464025362624944126992085658916289503028606236768079016357552915496243534285283509078246060057899663406425943732568943310507407921028489683602389483846453560333571252541998694546870598142230164291993842445160580896888560531739349651679292656976255432797260755075094543350694699079343994145012010467135551809729077549709802515856251299131715566367480548174606462772698786097274914330808090216998689296659507166541309302955674650925995742118785974404390723978161708180180385898899922251770402707504093272229294232076745594602406732621009084121688852388838472749651519835863021498931725589216997860770318841101826667871159740722456554882802940660220387162027361203860519052050888534733293182928635456493781034357480077518629571231843854018410868818596851554864690394042123803965573834630465953916525893605681236236998656988419017010030988236784684788891418404610568591920434342870187076244182271210378448394635389056064838195536821702157131139729014020207686636225716676788017987427954487107251876473705778229529151062117579543315741415158121407341037973846238666716996423549330804273149439748399123698788689369601007361879315271154332091427180474469741723100650602290827055060332659695068734700837234386739571134445243950110493924906716405348473509099649167404016986885987723290039398754382104545918633943582780931847383262471699997203978861513525263049853191562808620259497539776285351621783914697419853644703502222900778736982568758159960414746553473416031856178853337684915259201123675469296197383777985921969269647869430627198652899017288447538878858643763067040456758213164707377544240338551286076208714198406049507180814293550704026751730470687566359626058996883655245730227471499893007673483813885627129894892036764562151767544436399053033118210120434272304910352289438741697942055978267147746686593930889522935744316750994917536056167932908484572986912313636001331372615031763908555860251522746297168045492710174885060213114325192641487655829126728529224393041083501815287787033315821391643450752027456526355052686319877698764995795802386738625530908097196974298172040555994015086921255361568274557621680782479601816639022429356398520225111473039248682411016422247924261647209549808147701356748089886035462584817830582899908801936201570545836273879222009672633275184408803020441207043446541287080723993449654451946491192994561784728729881509537168012540503662995801968922902047217409886810225989712962284738147088043162300354760233775738437675291910718459628593679931794225347541884549686043717887062817129510450625098345103171596981513685348171750741575473611465947721173005903010622782446260079671951203397465894394538951446710256553182261704146424021572249596871339512911586756527417970478847333399962636770190946281960596801441037188368580243618985784394559316816721781412070049843634590536376629654333813623774355463147835067938425580202756894328278742396446685534163187822537396002759523158496499542840174275626952917489311172921728122475271781608184472296197193848205620101019148887848074374315284027656913242670800152204906224900351198928591565047010445970827387007630941838122116615240421149245601614782049234581807414917417780484852457590174216636078129138561967503561551841187279154309768663248823166162938709493384213449732894332427627993990541890551065264615654614719454384712562258351905346430248004861852811231176202803195094814271470590086203414274776742298638334689556928431190195239404743394238672287546986413929346457594067762920119680416099717561661185638081451742286593270509841100783396489361033212346435215263217114180352598042565539327184573447579290786694462546630254243768685062271613034628129191850750787293869628148667209613965392257098526513734120519791901303216013337898422557337157334055318421084942404027782106278279328991238416290575443872382450403921034753202509102211654643652282008115843725538996008600102739705000623505852963094780969011920092281093474405056789774669823834297111108868100185192310443378159722813529203341822702091157379134270479763005581206350799362519814165906810656853622314037956353763588328244201702149760916618189387238471130285223350462056229947158430060868004730283561496901934323903624071168176155485055267220108461162616263649698878366830098830705105626927385031166019840285417663209235208392258107284722377207230489781710129846217241489556271023893682429757322587963370934699193279063278524143772366161181584280097676170217519177507294024250829958162051985172830085306809807920422883090939438679559456190177185395849472844738686136970770420193647433244990741091089750965413972072745171787382641395209993615536831082019576763726064367412250446742375214159077763036838620425504700419405988937901953626729196113760129235861464755993051525187913478141825884926726024780634477771511467142273418558811900339017288256494422239918041102886414136467232477303534701820758206404988930088705247510972556052684019331723981034690647758708899635372595874387535070248364658122932058540041170386960088675383640647446524651938811008811942580981880782021204940737332841699264824493294569477104226463996240881219909116098939834832379756053548279587203025291934945874853581204193712945698266221850999768102111572987017318761025512145799913336219740555757844017172340091491795193834683372953924963346860053164260295734056458138422457963641923808775982509705061144146056299040930164209893374887549374601848482235144785688037554418491135836634700871399956088956410609471373663158056652202400853741432136124813013099950579839401794530803772499216963553168672309731646575857558318406962590706636414861855381745139310992845260063442278639883870193093963754875667828587520145144027050329122007522367831486669691430563848698803634217337125797030105681426839136001299819920980784636506786351044893888180276531240347087777978127828720668956105185606346586487328242987543983363098352725202392090155465006056339673124805750824754942500099544962343001040194493598577317439385360740276536395741086204700425921690101941440542526965866204051654271247215668741412381106544182809384304503495975317241738080831679364540030120830763849133339245558173895770104759261380116081035502028597895729808634138295659422465999366642856330221922882236116939106279376705405568132982368978883469749962049503029302338333780457355284388772647399564501978449010880444984881029781848621229366313450342743505772245137290403646142354420557071141589001561871284878033666318706499158702214829123599555780534498868300465733457568854962028561566375869576400932528066016687768983678262193445391594901512805730762713045323901142099092359176769291824944413075693808878361815931180926421407692356290363225345141749373870568209156025910489682063735794208757548648967863699510532644868232280599634633461020394142720403218067078061472038519242735971555264860095637349713656818652236799215582480616968132076606648461379737347529958584308333344742281399225300114527450201140849407710707776505578233665673741714690650160933241442773556964475413021519988801348974012105172215893403727300967994169956717427373777699483825831525536318752928219132431612911085635212848199507549449669669198566726377771817303149179910451132851800551198015627256073281838477966563526479439469477381270498221353023946184533813816456192556299104946366527417115206722660779431051630945086681613420611080211235512626618013353481533187936685021864605982506482089749960502790808956331024693898312729664452682758883173046476852695322137528550679460397692871123866843883515975729196980103757169027033142793959090345798911204483480775137327591581901445794305247209659234710747555902072054931260104273419639504141597000203063527182888416287854224846069881776781253755998186048768697046004011109135194598825689478878075796864262082722153317981883071901606477848858963228042118967284083088020385216248384803504789486798005027438427229834128677723563630366727182296643503082161966144500017506474462823513480675911000126613251555136525676910412362392719732377740604299165744132727542041404652352686166112540658141943489922119095060574985931807351159572722044122885227689445816048653571947363562047608465727709035708958087395785341195279694043606009664977371258244325475668944787997154027999296470734588248904232228358480094967126096305321263489846625035896517080988405391596927539873508818095918689962380232715192091359630293929921570472219458532982863508345351084671853873466991587656135018880021352995113338994474565206016116440059205281479485558968078433126564404833591858581169897841544938630035102910020877934959322473087297444203651982856584655768205696680978205751190651491207099443924780704195775948877638129700473544476358802483863373684088956102783260017066780122420727860079113683618524221703875640423268905193956799449496634005910367346105271488576963753963599425146948989886790246989943379441570912776319663511306138612164309913363588789517760295678576968260259949861964230254579088913819909859155462870504950343925024265992342707918099673725605374503826956622303981993621080231794573158692040235736764138166731007888911177236816429163340656534107131185894002638636197928856903059330057149647730467807938167324933683432264632343606107398258685953965311186483347629770584296627422804508454037516522046021515336327525891998643745311651086818901647141048151023339846137789577748892681357867546004674120206283298302613762849631403700805619011514946939328455984606398918345791200972544618325375247055466847175919647738374901283574337537759465291188420973931649132580404444560957682453245777475604924842224206198553563778542670781761446163656679099058879858784528052844513751249746718195798085634752034513534239247401582153559150536182274404160419302853012047322437011774808993353403363467222057650291570790377511375841785516079058888113371222687437845194939282160940971425290249416297912686627574131435312328010954435190639896384939010031081097435816901531542431793373232268613697921082159229123219453842674890189805115112944702032052540313149829203030143178380557099634386046521266382031894438858357125410198112326108633971913512465869386180930746242926587613816473374102821812627677227705260619305102079172986694863719399603549925485105627332204754422075041866675320845514179451480637045059656888856466491851962232946851851101134808027693922487354296336107713240233500412684644942461087197386664836162642900854534803927898751050081942403291917188194496143036633751475764351532808383510873902333179293386482598841569244514873905867076025819110660158648567428638664460445826865232399031684998752093326702715869197700862840728673172705998110412248578167737426595163369734147005249725816596883498543436090877079060583254315461624231622668020154680054453931482518334385627821574143175215762493185365070096046603216982994507706647653922075601664284393271147203825100865660368432052880716466081674700166878937354597343750029627037351543977113840935098155201679394398259550903193884846327308883361351472123901336637310386590874334335006518396607829349699687622006392851703576111010648032480756080115194997807200767890642773023866944289272714822806783088611300198936763212157264959309753220229783438930202050262025613618123518366910416220241041257198295539942004657333889782447102781168720719153906785217583686575012006177464039386186994906074352566186721313304799481944043640178829377078981615461274011543931716141203365244583364552626555323689213720935839071848362456742792547013181004184753147875480721476832835200065480499028504218151402403155505046897588570619524903025039399807777333977758654823595537638289426621034103124473577101198779582798585002963000976154238832032920722210831603646939524380891412633677202900944996359140658480014662032890439992067400835104195801919735855516240692663785576441518006878330729955949848543189903360646470525400495691026707374718342114528802650265402520108734811757316824252424654847538649856481689768299639697127676611860634320866913429662102327052889094130845095790901821870339568438025012256878763484017315956110492156325760018076563332289664830918925352476713806155582313241225333109961112575204535118567970446254307184218021188034543960655832059128949010538659233903082986634365662467295442701188734323146934950049992313874809900073675450613923946556243914851832177790494882487070554520196061341685766790072261706753125133221108819932670032923252717991833879808124104178374297129507829001127371476105558529445533453401430095202948930843775010276459323674076855968165860851465732676804223109631300546617967571188665373775433540060459246291754581677537907143841263131680103631957443727058442651009431310094080475223255326139283586452970779181095296404139338609519127088415349099809158065552502584477366805725349820016790792621300867071075060168779109114005542342446768685232812085921783594572169084205118228568252002134014405865483519659962881015130412344632187470560361862830340332025829519868010165788022612282546985601565128921498712109343664473642055851847350780229127126623758974843598260197826769855512085402912358113212808902906205786209119093228616720161379970902574682737499970509706019607876969037707108411832489770279829562125520964768200673251468529095116432449949396332962014542116128811922006131534043129490648800267045573212711924442242785809508947298778999142457958605764407885446987705222340103233347128801868587037577264913579226195422734961697640394921285596002638271721768278069845018618465295214478496100856837256478535208534177308704179294614746741339738416735422198935562540087752734397423199577615360576831298626867312979479552182125074264030213054668654453023039250376721407711527782313706525402511157446583868965941820717499186350100695372179195760220015069966791046918632323346485016231671297831924841537620996958549296188144063327473149040815698623368246346699740136113567732155011946428387276483088720118838830335356295252419096094700527088494412071270143353669457642884105821764409430079443687366291666940637629663684967822283839086877246587252641583766516950567175475206678938783161738831755246656418360516727262307736827910878692886980446182455940147200071770649854686652730860272725026876527501921883713170615153037903073252612959592660977567260132318723715822605515627292410746025383407998096417179438999274435697317960897372561335727779547921361814069450294058609626668249971322234002711621187035127268598007548905364137989596560832123963554962735588092662437438027777410224498463511496324320113429126297252907266589628487333791879432033603507330503477181367294766260730019678308848930589025566302013307616030610058666256982482389281306974178534709915987422203515948081399788422768884067931661066296251500965948680595930633237779308623761597189579098572314308582603616373868636694402931460508613602647601341422639817180122515395321730088783320167702311066581843255284139919861456774557066794163652743014979748180362858581763494198539686930862812937213400851687235749524432644279067244542595803035148836321807953323544314449002197783363608763955251003096795432675751150029058694769535912039151659756574856161547437755324860265935010217461926467704477558285331499052115340460977954380469457013742229043022958746239077885434831048118582506982974105915909262770255107833408349127338354116721941047519253160519787692202724979525921893171732701622727036649301607721386142247662879401949300739358723740854998859636406776583843637650990137867406180448728261211086153291769767161095802639631717079243871227372598839598058104080550918643039634835906851303189393470092995284117748812456398832336365942514292501378788174194423153333613374573796482690113420827337831374345332265945698596632145704445527845286170442022714597205300668651069032779500736796162142409853053856281380660305028528616592715961998779333033904217630304054399307126735953281045840251220014119241191773684259779131580843289418406916953551857124232085092542592892560002924705315800562057289658289207760636918353381479574200980968005965919143583371937974404197086278333889422527814196281868536485083237654509710061796144087489811529490725759062127332161456166044445288756102349474821346497411554245926446954017415713884337779724883774999415229668678291768758442044741500227850824686482732121268458483079071783860639074059370444071681785471314009109318570808345319908072663854753725398612798828556634921977806565017757322698800936070501902316855278900947803341871094719986621381073381046284748672330664868546066401029791119803902003276787644417235020446522840593058103990775062262850862568165429706593696526039309993003354383635929723925190006290827498459794331740757845265979258825163771365432146589472652920597118762558029288215937501355620609215744736791197037060461634018444166892819532726834002240864238552277077912190267398204182189699871718079820156215693515692241810641224684785247679355127938179067046943891622583487716098036896769775041500472821953183678387055659056007816791650720358240763879094825157018285433362137843343074215084773803781685255925779256427100161062095253230642052847171244943548259094717312851901656259821984480084829496360921853507733435239234429312929418952308987673112424004091817517810667187568188306641327710384635576697617992423542098119418625381873105920758181417472810695431575471790039827774783773714798066829029633091154860462830155627827175858547516305163242020722235500827515656417945532310897084021276717374925335799633626435115467380873921090824850084854758750884438352486357475978519981054448000761299158677910450438441303653930022770595474152345250157908414775685109721404297821709457840663724463453392981915468317023824036594677183560507335922922865084751081799890724736101763695838340128772291850831278092766092683460746304378883741906815834302476294639169814586101273029508202170088945975429219627943904624875146410970915992346638891549228336108558656552398625454446696201434236212702201854155599051602311717798355557252421733151339020669777931398524801250357212788357056693206487587021771858922486741871310896779393782364773677269591007018806871737719056595451837638913369448025170806347522699467916602153128168570772022296030949964733478741109335681062941953787269458454409565574036288490576660788733661032418131829976286571888057839276078693546389497487929471377193907522102103654261662334400518938944830598113747475187287017298730524458188572455219487057477126445791581429253741624670542554532421096261666308833393551871942254995645522400585642351639058457733167619781551401055706160557473891465224259342145108609534488047100431576781586513573819769316964935462317893251907931658119495983800477932855609413686944675499203959244159769843060743988001964401786706777849486279406400978681040867333259704933702977470136830142188185178733811601441961448493584239425462913626626990865133896505662152293376558467685358197238134731440127974208926855789478114122922499147649888646484549334245435490369536208490488791309615900729207785680627133321991555797532016915822234462282488970360980474270394058712334492524071301281492797938080756561521287547067718368915205690665795496936128206310411038176930987283944600485095710227406859088970671410626408582043593169917165515847482983708189525767821481458013812903687791940784026718016204451584335004066622456629194615393322396314295557165398375713114405182934110948965976088671757280224950961458974494318216236856731333513890898498363120672388243423863849730670428298619939189305547779421021082695706347477315855003307894642688932686726916499446253466811503933780490034155982226251091186943067923284388426272296453863806396988942436943484558616433917812418453450870145021642581291184208220264499755347460104617711911600891995591099954214085543486252129391737801259837124666589762861043310820388472879425670118966961190601433505307058580407722727654173022145706579858012015308622327013995823297502968666142865980514022780163916405568855390257969751131623767321074354829253153008557101154726301522016935853092120602873061522058402734005806633021856001870774651924273752509398191291748699491548537661736490182613605925734829226227516760436436852264395253689728179929349282014883671096619064732386692749887211642742392051121348207725327005239231337420636581880779985166592793853225610790178179346919884272248505744344316554819795032825841627379075042563356843047769105606800104350402874625222317960207259399245553647895281481128219914708576506693158542882358209765042559685132750851006540460610030805475591677204590380120387742660737196200173092203534692689485740147390173687712416854692118412272679377389347515866563834970080510862577917768203732390760957694011589367786729599497682763491945746614418189224899177881862041003031240973832304050458242130508678087187822347845155188996002735195407049401475526932189961988563742477047986077948163512586527368008933174689572284773453689482137903482611511958721516634199332015671864662201395751607579187434015306263131035650191985888514042529295558876222383092935961443762259266630855825909906220837342754748874412635964878161692723428360006860220115187869070156858521272854838707007565857881244927667956983892110192096125625245779138151818961250643894924399073158187750768771010223438497605204314161592274256043331858660264331594938215014908259310784559626856331287108984510405909377022174926814930033171028076718138464895782574471503977189092549065435469968532356034641038254173355648209762240512748604153179073473283581458714901921794323527445969215840093557625894005107739537645649855798011140693406696269903278387223115852403834747570467141018013973507223210405787265031890769481930974838048345033241127113728500490490632534172715256328647911853155971626232752966636050091268734827786232429582342844071466190539390440135561129178712236401925895508981530246276190690548245554980401873532991169766993308892896116586217434052369812176569512682446917268869237941788707338244155664686156694344757382109260154043250982650687090326531178291641393671380146585001310838813530562075773811070723412792900594869803656757160150132559790480224422843629710589314752811770150688276673311767814355336211079940154899799065306326519152512124315277140935227812071558540270052680625584545868081569323021311387678811316389267181469244677673474217217520665836890794786998067083646972331882467301198346828889339202346619947747046417509034293298780501035159839469662213725556605388462421984545401681288622260773428813319917716950342809262826375703467367062305416750353778580728000909424498936409614579936809902879399774908738210290739850529362109700272899997933558995447634567319822800652163175986562764289025114076724498542480838691628920565201635449638088571537682438589928688754652386713510066096367604529363951923635266596457573131844104776853447965106097478448330642710608209197328638476605456056564889847796469927088166267267185559209718820755510695045996847459463748470498801269326491331034788186901825788161373950319534190140897094305780780126988482820045276246532057313044039021286911925177951059298660440526311527326655906102011685056599713705559423379808258620894392189677310746070351510596641738981953861821766944826793709170850190631091946737975339749454643467494737576447282857236833405387207840061983375790894890916237037093270828014829019142843625689591678244997414458778735993785458151260072892814907498944727600702164043322761846913301343172454235535398475118474061260435828156895119753283339058605564802819365943951419070283869707592476930512875831787637934175630551462909499621024919813499743480867937394747721668467415527616665369138024751591355324616549091281783308768640626518496983567354089405409049907720272182274792909968876348399143196210075272144756394035645524304207010862479644205466024133005077584354746239026392164687211936520674339557201263143530674383445346054183555993379610316598897870392816672598459085527344739763756714493347897177850569222780893464884402927465756477074556828206839755774203756666707141389593620922387187693420348126129184414562646833046274300623133731025457138621221630280630041741210359598239747158876564580256176303269950114690061303035300751473202939658563712872651847201410649411620972422950505234472169632649446391177217503309917748577838728685735050927199799019280029873701882596993687469089366781436415006114000225505567013769118542959958426675271314836894557023909976588721501229902799197517252966555239615577837913259640308940355347304736504714267258568538410973415310260819385935645347865107199019339766153756778572894317788680987565280602242546235599695687366127138663166370486512910170148568466404164454086998953695526651687384699124328730287408144150106278490640310478647772617404713023141911670378971543870830830914825716103900315967168242312582199307827621727118917729927164168478678371728560746831453512804010318650582157825103520620753440092291598175803602360898760721630932814721795769792306408032797612071987364795267880429766514400045053820841136075820319651267567959631430237726491979947887480167584077667547821102068189169875207950476590718949364388690400871361995123501170414764434086958521295602826269527260847556462623483591916527328539282651173726032558316717070854475592162737891061521200657554538132213834950442644316212084339469109100529972463049551346629097870516582183263242273321793413329427720096233633053368234129616057610806581334536325997077580546850966520239559623830477927319696020907359292547011449442092490230655261616783871823330904223809413813745909371909564255039168569951802544108929724512932608039802809047151413259034488507005673757303250156723880402093634985397431821140548335579280171930470931652755005578724431598528574875457808592586879878771314356729729810649064698066802946117124629304130202274154638626916283270412335617404372675517694444472186057069601930632357765934217029838347448004072313449822736826111576579517819545271879175763821645504578844725149459288474119814797557091688260228956168963838860077247298976234669797380154958198778912268970321481931978314802353135386654040283402354386401348201330588326825668690047779542140303123327379542474847197149052292126061563719282462192772678791553519567542629854970247645277162904123011709062342242465930537518249160298052262912161612746031367348527303144296151070932861997244249137880333110655668656149842952579622549400675089400761737130752967001099667323553420373340314235406649171645601490239147360541179844008790756049313503436096677778830882950486704483184460889191619828304322482559640368026962416177731019001217380296628603133635632283553140926126592211134065290775317978328299833252604311320597067437646050090437004904014081039336172170546867094454975261000248238656270513341981318720666115917050624365870052352246759325046314240538342074222245797907536873668980525974509204420776104612442558126848430428610245905575480020183830367395349609610055104007858294435177732494970821414506927166434514278345193377505172361738301831818620634401660860976346927284475431877027018000282591163369374245966150848281935985815005888635353699703666511891992236104017158492361903680912393477333529983750478843849143542498566257684548526080248463239162237981260736102042868016075642178003034530013171538444201057043848035082395043829484107393611224372596326462128405076343025774956513924653134405872191652036587312965800791231947699391461030168975195994647529766949019080701424989794762550558579081283054728294297751078150042016580320778860942655742339618213211722652885825612059121568260245149786198321032607102927274916845163143842257925457781009975474802360865627922740039736757542818983405348208590436994217937628680173500789215353638304458779557998522578877205262228502466487750599377933907345032896399390643807697200186943511465735419791321137283981416836037820576826656304255047756975967466503876160339106722653473417108286436202634136846430210477489846684853372102432983745562621876504724372575706945325245504102899066719215950850028598018865990726872393234508817397996515803974893499793512458352095759990154544875943572870384910356358144445381260980991339623767224572944032200121275687290192753187441809279228815165564431921529777092646776475175916764989092659224503880997452417475708904718871125288121909679699051446553915319879755137580855332367808064251265022978577359936246709707439451651368862397505446886131032865914240562195636224456153137426929735568524322958291479444378706898552831488725573392065862078553258742376319612893519789707706622657020550746181480511814407079743255226764552127035848541879976785133448473993052158154348909217900031492146742604123386243014015139951921370338022668744698961324256695790796433297305210148166604760511988462576986882921864890238824688674264727844156611837965708932107222565806419826819382121323036804256246012588551193682513551394301641428187632929082695496057994952175665710584459520772973019825864639495758153150341595201053138251139848714864816290398144063249915437605323783279742148939745136901481856575440113517610545291411308844744693541513010377328339191437831095401328289532254836318999420684269239573762894059338204378326424633285905346443152741281734185369144860930780545671496296434748695884784416210803585490200706796945851102791512006236004740260696233686830097356445091531123960554155455594626439545573487508152373045587717944202781370781768766587030207923397796380967888248713793109048275045978153354034805953811890330130568412459501323867738248336605966310353945179423076500580437064645163649903693556232298568513797298024011391471120692650660392110540642776042743673887523203479669732691538230433342619704259024132185557384751838904378685392285926888851763557301517084329975697426878647369696626685482419198980173263585282025091979863024396349503117162367558971284101879054130451292138643300636329517551637399097481618629782481320992219090494490145283764737516905088507742327997653648367579330239632150403112971275795779907186498594839076054346426173306189797039843431020633086789269311060978137271012879736580195946789998777472432993948220236809916285282657169166051193484110062407309514952887089411125409072906424829272272005737773607487446687771370543331743806445556946515183654288753305579552190747997502155975162797426240451578686873141740738181423975578333401089624244566605059298813054329955997342533448584485293409283230080137734068571531263397062953791306579778144948510090034110667778822412596094262599404530242098850427465484056686970719883288468570296506241918216838015495174880663359766290867468083197855173754476759632546818726768577543017761199167496882600783141057838279959484581908003940298496636814181315509006001361459764813077862954074535597446149260145196266469673072802784885713419892013557883669815038130547960811599569172128639506352372758673817806917213880330828088161993174955538860228892816977968915601034617356972441771593076681011085150504425548261893356577291749532778115787847742985252119610614889825004370661844776211515268946841832101838253193439594889895332662973925733930161504300366185866328760431315370138845501157186479323683926624560141319019682167946931047777692542484435685707706368112115140100483549834573851117987096003148403448862787776374719831654277396999424577077926126625470255565141345751396710494898343756532999235658614542657265055753647796011855441152237985384753100204888050486067107010979442968797373646187587144541807401595368395995880462475837887216719005270947871957700297433247423802092671871339836966078238479058820528115755952464361590425951335136418612835683007493403482195802660933933852117545918858560177517040357990013636640297277777835643811597115831265563823236515745911794565443773146236140604580525749468714785969685866740392495633070816614584404336940636847682218260786124948960516692448946481900461540523255754822024751438678352237716524509493438163202856938904703273765864683850199204517379120918600616017040472973995312798472729026931347448910290815637969739738218949812692162695178598427081088359258218258496308670090373448206508540718012244657429256556753030163910332392865916286677714380298405669215678340335062734450565720955725400550228865962901451371938559442651791047108367813401322447286008972645438059878693540625351023674229249898950970311206785228399926965666350481921416382128459410942892546162429823373988610718893717244364539831824295329485443850538945345877218824535327490582280766037780685940565576695509689301864468855017808722572570528611115564603838296040202817305279986690282994479218052252316056061190828385917048004568513764943897920930871288052325879007209437276490658692817684847823394585017213613041761410470081436233715540626006432842878864683345975882277245330778217726930692356279539007845637486325181966346987599518971630176008725032576449171332005370790531392901462377412354237087866150790599196892433185111869028477247433282885973352681223574136876139131175930626520058501740153654987919044748139126384767388132799481247525596583712506824109264754227691301482910563870088042623611292876203347429148745022571800110214474898064956078376477486488450644649448379535489861680227258544015189224544209991489907815830131669995391476437269020387967416576366700148620620813535943013544740654884391494054066477463181317385369795266351490376766109101659044978572671026441936789331490827168052903483554502862170505921280097866852379821327394999252834707844139118883818361275314621864101029567768025258875337178111439751343213603480697139448986561023535871103134303979262591036849007586067226477840530167800566908584699285699902012511783036069638344142817407805728212517687276701490158039463258401050204909293144274743904017889874403049869168713289667189084262263669576457222879012195194650411291700237735809765648630096171279981802172594200805548531467438993956650643492251829271905731739480793606355540205217021836617424050995648637102232960836571201709970984694849354822494727113808497785562760800650667399259241306298107185052543072295822659755473475739354579399151470026880910759313177531512913926110596152951321604311300791175240986287278746267021798767456325447362749367825616326548106273841741836162959237373496249252808989125588048504795596482862474483853885233342701531773693116983408833048461700590395720903353722324828811061721582685669217576277170331397128785390406435668055364368986172516832670056439191989899398954015884583246731856292775953674571300364598153752824839757865886361506593751742127387273825174089190329442683252802015540580994692305710873525066208811899533015967271251791515727334350145196239019747169624926749479549575093560700869050516880026696680113386215502130047811639516241689598710674189691377953926795645876081919724790455776906407168472219435798741255502898875076410456979045434718347786762413775842337142037697570335038381918642835522480043379317671382431155214739760320125369720641617479132921095141954568945927084260051621124948605616585904997557913225079176468953358265748671063507261422860220374595117593724307627090368460124020091032190182745654376823905126280453444148671702728322210252012625107792004450650655711142444297351067632219720201792102008178993931611627438545610680681861811799239183908486971391953146496465996974462785144327714349159749632386450938590311593583567416047101195417575802000758211702288748527871570054770593666159899548959623003757738283390856596034082865438956998985709480652279653488181624967316194106452254591869232772064334862121045389786011503979369800924487593408093518401154447095419499069147231709220748495536300866507794722245876249145983630955935099326179465533211866690801837907717447985106858700812397322362509004493253199403307439656576742550577267690702525293594445451331431264284274031466360140324041057143164278232614514442127919928385204361151567493617386371231204528418439977819903406266398744741396301781006769854078646734511203153553722870140791143374564003196736173644610276943879710832492933890503111302518737864858300194253955712705363274311445954620174529905309011724543173054176655323342096169036555533274441977170750013321769227936111399954996402431542003626351000655687376818309890140940705044446385608636527697513803060990746434393695897140362774724023470339082731310541366162173938485607918165768402073726518584157515688324547859431631340541008458852435012513236081348233500815436575328103386128172496423476299471191315772925806885358264275374458938775388947532144274782474812746799181309958854641213933367912029048097166683496896049122707871726374045461698994526756501324556344650254142701922315033090121291841894534532519978068940511280550183167563692623764712633436590229065024625966794732711117982419972689654538144809826802673388645939325552843823776051505830657253924765531598638152146673884501603054345951201610684641211605392815290573166485435903370313092316107151478597805489557425449572741514334690424047713438808424878610010149324897344058326827055001924011681759023530855283566166172374399027623705552872425951751562838574459797721358570282632912223029614033338087739155194838223898257284837016619988290367696117212637024226000868622876048485033332505499311104874003122117955643479125876381362573193730594449377231026489239623529384681762939863895983431886957706919751803836459286482825122574765265297297122950433930999513020927092376453868700623597807174738523446688596073932881608436427832127998483594011427515818632134608488974967826455080599433253615182354982208682243531528661915229699483275579278778097982839748437413967158295642587215775782858050834441054598775661602466523594188298013069568026951982398230111783487593657178926065560834523716659009885789814691367530965984309929240653772120778236171824784855763625110183910535294696226270555822127710465780203128364828686782217450881968155513878689237283940598830862344271683627499848229167915302906974931718611028689534009225032212690260994566095659344131908462827788551765978950173010231517884649550256879895491236006094254124823784846598144087732754185717911743453631201704111786910356877432716286155358939121355077787737473658372668206350836766993599271660151308179481765651076440839813437385046594824981319099766784693109198580824592915222391474499591188929665176214615868311519167348390422083384335118790505348435521691972977988655283605449467523072873502399804637058194821034329143969917084362548181998527948243615237978261516451407082266166383464191974231476871509664432318539919605123062161507115735950445679797921851363285347681235255766763809737160911274759488887983421207907616367084105265885910156493926532606012485949483555434988282169870919021891590202416663439337824506570271541540157197092288555580663189347117741600434934179506654876745002681726395838934708853294751283572462700296339527453371488906760968188632892883220938372551578204393305701889807871522278165945700571299871294560803908570243575021634225207130782340116867417860607484079395134763103442083840156993809618614886388866942119893024236631689390077033891208968937133903502929838359803525055118056364767468249526076316783631568042090373761408363775896303631320986363546717165663565527721426334931303273924821163114693218436115190917928381929867126020217069924842861904498338369313381636142618169264501652536064381959889827010012648992150219900139013601427463847793663752091892823667695496064440608745037183837229530406064509728680053205447932651101070089134783774160148309498555104246138969379290385767304914387183846040169030276603237969940046916107369516159436448209540143036353310115376168337322470515266538155482929854289262011594849312477082839966735793881733942123771845196205261410241269499367834498330420686349958071477281220671075763339587299395474767013392363637908499338712821514641135281164775752764518009993535045354839772786131566468471262331386988450838575558711772975581676088331753515600858291310835464717078729045993245569444720823074395269364872005646782848452165514091089062233672192541329908966883526836708083608836396216552524876084877091658694131296110967197108936891192836383867964080346504368924570902444113101942317484160406845103764541935384900409874683687995149026747409264201710816108796368225767244276328108139515813281190744403344753831167858057747547200473077878409328550442870152427409928100252117097488191685270888130315389424896578821400868962878119315987329679325054163787301165966873234611431269289462771120354136063322603553409604466288060961633778818455382335045831856856725679947086553569108863991603589941523554472878561588342011687891232074832191405110092578979987133996738616464584466109098074637454083967955613858565386348675633566997397379985139011495153155907325740681818997021269868117103638054318381651656224695110748354269566771015954064093050251742123386079438645757298350230007710127658153410269444075867377812541864355622417883344038241748737887238285860263170647267262379198336626038918717471135775987747800315163906944435021322820938675790495496346826203049375705937418942393948971058986913571606845747617684282393605585750241534749324687856795810599021345508181833473158948318207528461952746967556655379531167325434035622238331028989721851865235473421290830520891594815770858884547477945211570142153693547151495616948620892015632564637324036496755195380872631227181151414088823153121139825265956334588139496975833793465568182523292433972047787879487194961323217967004888414916262979364541568713705886481181749935433797316503407048407118851296371856434497091763810823474399091000188283288463588902482148233978230781565943999859047271123382069396618086019073834648998727072964659521999748132741376614387824520804569988241267910419566546754657960344892956114666974623317476819859830053038481683970662880156945363976599060262061665517927663294909730457854030394735745470862973777514176475904499109017548052660550114949434946662552014813492351735128117372601896254377896307994111813211028209701238905384473155722035067524185148852624666308410675598904359644351655438459517840448865972497552528830171205551545522541760527862949183243754032119548445273412096737082382759384277585392862273643655665626135908943649260032741052052979882240737362581327162176609873505851674287019909962372946883946260333583293312224889077404557892632519787622158819679091128905703084578173469051509835988820372588259151554268417304740031443772560191263972371747018432635810468555382725361390471167145071965662441603162382720318459733025122675711575780009202310550042051823139098694866355004282160844429403691833605320947734873221072590797323230726122264459985887247226288062368366636341246728737697760969460823451463996501779329835016450460348427620314887213594910173154546249469996851000925273067557268713026757290399135680571571546650052548520478154141099513192857386874999609461449519980495197005122045791521609522271029404602027639342745706624036657106524136030935996130248219752591318080611451108909279263941481380402435459475298929349128563559264531072566830478912425212289965270008983404757295269227660225560695168044732990259991688031770873872243199902621801840919495515133973306887839386356435908437980048983579176904057582159678687313321670335233651684848599194421216081758380635922358269108500816908285533984297715857276690557987693544906197179614696627880879957468076046581813053354621379979898843552515709313387785105284480031317883212563632743060551057050972466807741455016313043609866042432194540753190040213011155044769050612441681015058114535962677677425025726440884115309664058142619432370391195444693383911127732024950756331254812267739509452631135505351205443586878654884970582145673514804757395213213708173544801015554729558924055205491472720460575938121024217563341133683595721880951615341900166245800827786909293328852676491948624951818102150357659496678604384975141445052843457831510848230242732309632644082648877179038512442213216535401802577683400591213485165411114851613961659088592512005383604757439391800759210507280407307131875955409069921039138216491126036717647824804719132190248620595081764536486176509066311526562657874267257606966242751899088250928856479926549063132061318202807431057373522286624467554567306777279046985715433556846183016228264278438955540500594523117278982962258858770705782657413115908051037798912362448578588883179240407749442697204064899588781873813788383952957634598899102126563683375978217526778514227099530127100796396177621345097197949455785269361895018316641508078749106510252328812538353670418357611235940863171008607728836886550063355817261662093973964985537092934169554579192712653657323028472847717201796920148611000147325597301216624240318308481291543146248929375530784358359173977494519026969926995966326275238582984205964582947626544423668770602139429062039527854734161890233521000564795639852107663246101178531437152796201956069759976663056376778711590748964898577184126731320517232794158165970308854911312664814883853251290504220507601433826741770603871327413829131114194360087610421521392270977558390015019396767783224497490352897717160984860182036591626487199320590789602656804081632173416779661620123569796019619166968911312330996075061302184188559964294173381622459583972261147756060488435396963033367192859021476253491432062461411738422116571493659285080824296130095346893781576962478661105679126465232899940359970183249749774626782124875613752711816696136770150219471482010320958427434041239388272556915423222298101635018748083205020573127662816262675000760361778783539413147953687560059194525777376972456819894138708740783650472928626138503967242025526227424618829418929459804549857453543812304623839283239436686622641333192810074886326698994602319799691578666256648844203082832482583971619518718336775008791235751800564695952383127816849130420819261460486064049719756923530600308373806347199778170168733174964897471557829285617367634185786284827223704894021515081331836860272422038395437974183841845994159854033393864357742605623574832454758704582292441319527631504878326229253486162709599378194542911456567210821117131829573499331843602296417135905548493372261590415107091634208314921675673836251017959095573067712058723381902932713953367696212675322366564418405065320051739653945158068290370009411925762998541635917148237266901136294659439889032305196243211611906779421413824411241687879937930747168853869101067361057126618490700715996943276892044426276492624528690154004679906930567456516456636377570804555184417071056039794700397295649993259444897398694145269065349222818412374033057937203092460669612628603453087479992851566385664520711248758696449220478680240244323920562796463302386961563244791041168146576936833301264575173529609797392114415283149528041552695814282096969954942724625432285672102815035290251659757576922127322200340817618125264649654599383387580325000333241544788796545682672080540296581875077526020179989978702721540006245546604182381246285230219212147731279716044006055336799034634903228622831280622688851823292711743481257320612242818578422412318687161764961812509391381208157654739481612194776539735219923223900485112630012285179711858724613169119621460926348924542000328466748863296155546153055006091971104067221721624389022862960582687736644160427626408991279580944389477969745239679859587451843732134094181858100842045403724302493505610920035178281487348897324621822653911973932474796798256568946075701618741371334165671371905337954631531208462747023036331406009113937498405196494244822364033073151256484991932864267651273907947994928413373911576237333440672840188447533589251961144026008416050966124776166420587113072566653042002608063937103443098356738198855677521672895639478424605569424286162404836432050924299269461205076382446359128873512632976045081938733218779683211814071884691116448020165092365242006890890940899151383030845303428446149869710975274911360963810455739257468213426801048813446412637473783102340771488808092140029971237732785742471099276360502970128357546299455579691343782389188259461372415126797843867211619901046601269714622487336459592493077899294929686473302479746155615678214706249256233366987871781508414371233157294584685389548164387840090339580824728714603370130898311765844887024311161531525887157404528035880401979876247076027431495544984341830702000672117391219326299748731667729125414487721377074270482958036671213985723657510370823076272080171968668423196548531734793923138440893158145745992208693721459763294968020055087567374704102906117943023844512798435190381055471821415006281251872388466540457374453412106676504481674772474931177334239891314610335524908371238648525976409832617016313132666202563344961914802722999074700061816028407544870155310488028436494565808216410752192254522849606294520347282355308416579006738684740237395161725849241573075891322913386614174185117376481764924869344305436888010668457323355483341687502734369674681042767750952079943279073014248549347750429486343658030898925192725525248711820557832472876245239926248650091272157817761782446712395548065017399051962311445654288827500698420507103286795210205118479118080110234868115717184899664246569745639860788634686898930401242887808811711192025017201129766852251965101451916401949181225658070276579544692966526185583788785945022771940040708228613369430637171066397251204863480727826316169360174065033715056619008722897379742611764852561398903457250469384205187006304114994652910943997871000934430737292844891901274326445555212069630701437161926081674557111743510621322272288071559181423028661152580708780698583290606788954972253779712282885979769491494942014063394425311535660607302675732908417593410633400889425727039064137154712082778916762326941604297205843734154784769442092640749679450692562946216151523454214257807989557659040535525778606591345639851128332836119001077200533056102068389137153378870318424288689644058127893408313496525078330144364374197333932771205075937502829717347989719950288849918493787966080107257659094804950741750350973410042433944983905644482660496549862499061225277280662027101673533078303584422577198463007350465395309976986192171668882156842827130299809062764890824420008125683624608967092008140425959945427143380760224256608242133800672795995358765030798430759031047857281097821684062867485953535648561922083100726424077010978849343406634358130552131210236003082657873953971031634827104204987441552512111921697246989232145101401804657138993436911587409527692852395015119104234593711118350659605538934200646055304954978471458123050341107261424702608903859331580914120648219775244274163654414599509747156451927964556889575576861034521840883787805744979362644822933649815420753119607171355216380130557136404236593765149106672535551274368995395218470214133249480687370968779018373542970704773897858742857304275217794358116884773363842564490776505778548506341496845883420531758879138773878584996114066124142886563430860816502357262252684434533225931461679408651945625408403403203316010853480155818265412842248355111359277871997675051906305592869506192911965179671428219030775004182774992414187408447885328061683490236266568990945017968627305273826612289123245939756775162485583619150265785802758547737685060706063243884214359046579756319235691075128273215460036666449214089637210260147950221944304561266896500139437406804958097143007591952368071760059291737313251950148518250433614233464627808875639927171110195932385923674121732222211200803392641112351071921115505951128492404013857266222727934012475903137406614060726788803540023246120831706166712691723682126153225326547096238898778279799705755283579211432103032108202472447787500547604650831820203806069539822775159301780622472133830598695674801921665794474595691313631400102878811878617232522170060736092694038698450365057302169313493583083276458180113122395839521776178006628483974140167836070091624683144006963133106996456049324249433685110262446427156452686374288303528612811268517427487007300764725275105444100304664481081328491236393979174227894182835409250826759832211386506985086823329984798250292699786112985310463455276263456617254627617971252651981016763832258184694672841422001986553907139274061834801133144615120776780671471291176397431506176726679506127690318216685974178730069409643279248791874596696790502335526631346338658576083921605089749278079798477132440364487538879430054068641731312437630524940985948090868183121075019370267100364993846213811044088382044575831191292784593381200430468659522698775132244340552648348817104982623126985261663848679066508724288720043012310950376058985997160864965640682769819915195153471413153930472272460526395683327902842274782496472696063915711446219826454675200639076885329864376910015152145271196225271799034129932533818492379221642408037499224092809032519900732984446199983333901195384520281128913153850172613663945030540416803962494081690101950822348257853138061570735226496776140826230885798409278588114539010095045229850821353919865786389822084912300505075429503841166076533424540338368696309267489712413556979967054041565395113041927197394507397731069203203539000604103821145497573904494664419205283002183519945061533605260082948472139637946383957127191778867546457647651431316160471568187763842589227997042427918435857171599267350975520177507451446308191656325813354965089144097220561599840819058102594118957962665588537591283155267816271837132493683206923078350731219521183645696522020373097740445219919048372066361022290968524411833882736060220166783149620447265315754462413780056193708656048969768810413045969054552558560135789119897344111520033041088679307124426316836163433669886829337246913048518733021896268241353155653581547449353615650647188776394406255300355755691364096050378272550284069391516656587936594735282239388026193420494389594993852235028922793462632541498121209846998849892595969108498893078111484312616025000323587553137711817446417014200515074631119190114070603366664577523845275029965503110309487844446696514757370026183137658387908965817907396238937034184546393840201250004333408850269304440421050067211926878229344806899079671003758774510794638619519179252967193113786644076266801024998675587033463830837970566090518277480515062403822345760656085143732145364538998851284271030168156330119520757895159444039751200088237572797679233750891517030733307127231334693395762377765772751500437627620880371490829103334651006752711878343126299485804141251766861468719095951765044529472868483682003134179678566720937150840193600776056953147620389175411922887740786171620668039046076561766061097095499017767476081031232752618425295554981959093194369176166968225303765388432733199389074807940335599586284877575157391326843877777906587802333326063422767859740210802225113381444960685795524000109978793277851078755274156738516961646345728505241689101159059248109639564187134075278508523915012056687527791981363081159039868662319254833250283590781020402354301285348818484098646270685754034297343649991450567443053222509591195776933625980779104453071322612472999236332212177002572845190867303658843635213723932570036696714923818466545884023574480047908478907416708068036731614407540353579826289829091881502711387888047374470687343324299810581224819011410291575132130779133281529970101171889941874426943946401026445726953546366387884866188161556359248368555512042970514908338158605932768089645566639651883414540456810753862175956325769406814031619005061755534130835414947987592717700062587225705564812207956591152804961690041551315249755193584614776003700088953415466304598446874308692345712933449622573121336150670708709063310728322039536395123150936987823821194640512484635258060806017731891592546083607418970253825406847234867475614696891533037332733998025393344416210243569690378612312953628799747298771888853408822504137640078271755905530311920030595884289595949689820410447820404381690939433892974175983312920484881955240638430235671518957447727814500862089750703725927473914369770622805651483577467546131480618585191376976436556134982711568854520627867240518604782779558509287381172842422973507976995022794924229568887359247503964997868116509383239478903917615107953752613361005206426715804318235421813987541448272099506936353554151708199680811141591594786212771404131468863515037810451139288991984418321301456641282012130118092796287458468845491701100145746302622459661216568871216205477652745343247829809918227732170245282716459168831753192992465866537271827804832567130527920217714589146319914883749348582314136791576252330812601134494414081985187776866679281407119356656200920993960255061202301949938988586416159181310788034474509029591207779847688753988984632436111556459908397463088471867333523569162122913502983034350639275538300968092719343963811516005243679287634275891829292123292371565324517443650908414871981187710100843933178599061078314297618156247496903412300163843904275322743756642798886743009982612162799554524083439803117268459367832426913146130607360795862469935139382098016727794948412972522995347161553318294987813127844968991050582496975121296076570176371800293485763757983367021152355597264732174397843990315676034182705629085035020674051115670906979971449070296118150226619055837387791126235011994647988163009030146460890775695577331636732960931937394125955808311174471577836467292552692474558345483274143361316292243596725199226949111104437824586924254155421057961155604754342218658197036027244838898911180970800897656006494704223310850349254308170041307319021663687615465223343806636737449960979073582739406742881682731961132958677330079026829374732605539571193101475926835533515831489619327957189641747068707510244110326254151785294489005682556031594157118480606823258839143262702755166421565071010720727894962604774559565857677732998595242108931814594884574953351695091642012836687738329625604183624132554345018720509390868928861324985585357112870471118629815153980417276369121520887478233659652652388048448005743042757997762516456085709710688763604530971940610258026077575651216149582331923842332756983488927885944041999895714492870911562092980963681955732032975798392033564231493853001134410550855708393476803148619039233916106410889394204225155475666945478396581445100366103916049072470591447964339342709950425710518090318942838075483942546238735546847719989344201926308963574511396600387108800860325224140600634040905822625733624345508163986498160093270031383771283325885476825693313866666467332663622044784892733665611262500041440889936655557988284476774514559948248564629677539092622050450497835203271491812446593557292043371190887182175728150062701347628645767554754624500516898313260795591756721258072060861669081794234537928949223601558378420040937548429518241915067804485257754422822366250450427671010225693331442306848712644000435348819150244978098941118014319017316561229928610586707451209079316215007833689381615690005864834679572627874577911260696166372383050120694010310283104962757268188747766577219485101826942019200394806097205972779816047483544119170485927194979924662657251403767363893034887426094130877809840097151559642527466314165570718144094051897291165233250918578036052204651315969859323174178669810376568510334851504807990132174875859444226869791286630394575271197585626283375765587806107133974952311209283040038189674256496720828855595185021289245084594083269922767727949035716074254202702011414393398536762597944882281148302204577786439332538462163041210005423126052309496802227342903629999863160341020880809426322887161664855502439058935481148617946188912670879298168158118807118533957802082096528275361973934314617401781231931258241969905051524237104897919976188571295014833521349311338213525099690269355099089210081486329549732483131081865092509329732062539439848800892740296820761345137840182573328574387149635852009162907285805797169142537017242516673598677058830896795311497273308143475201934440309134487442880283686226221631861128355960541832033254043577607171868417644523161156598285495123702162269107217508350243572370387390395322937079611241092415208488952626734999020431004683151169588274136578011069017952124514396947581128796488998628253135437359693649332383295602170388857390162330500010148641795460815828309698348899495838974138259095374916095270973870033282391111672673857240162196075087891913270001089414292494053890709122934232126325552890968155443271344821265371862712588642423328835390850763904643379832722962634654097030232847382853911866766664168808879065837872629554824080607676554848146917555478451553563408752093816024149139585803643613734646556359819299070793734355041180459558632034893251085987909212470583013781288169262073550547779465810114256274448268329447345228532934514644264033433917330237880194110813807438938611509541414173016774949101964462113100028185968593291114033538936571806269738085980139683951534305961326850808274156734743773503337350074137336998585015317048821268893198489061198672717944731930441472611705300163120813144673753152984350829485379588908108452689554804253868669052728086636619192571243958184907718287185117756894890314538869609999811575694987307980834194408703036378523828642175542946878420756393907034703313529971464772028092075161271409987772347575566163023394217738963475586997922813871429249487488023658514060541002997929005723585373238941205003718522491373984160086790533688114229883595544974022252493998608638174846760265489883142931666789391349580117876557205273937871441351308342551995582036990902550241089754792725861572435606324319185761726423234348904054336139936963909613124291247398042269451836489688289431129219293684754581858117369324499084466101268476201121039494011934386461174750381644812519724541439608792957325533878097509188572926809857579859808672479706054377384462351739617899414212309343366566764007884286792119588036136190035232113395193969401934523470680357258268203887519732973900384067785745738856799624140731788575158707759144289497578919282673133453341771653640791243168767898460590488687131854547474304785565928950699166349889427297630875200442926750578717721931650782422518912930264083257129336028585392991030630548249494380151657756298635002931459376738098278186768003689981673728880724889511849757786994656675791031303660584483987599290812031451582291579276817322109216015482234555173531929012689721641982617517577416526189607717155518672826958066456832997214392028394948939546007359203075518269252669762836821151496501578731610543764252522498028609363851760825706745500892228375532995162062616631331028292634686360552188183481343088370094621611107813323236073689762407223538500136159844867165009553702250038456188048223278531580359133509905614564961650089948268615323904765111511512990184137463500332297741734102599886836889552999938638154486064870258381912419420181448794954969734740315986591753395220503894348899074174212568326435729069429639177090855023812123438060457990247914586515560155640166202787075334663433913817807469281712848594710110594206475755679910384307570534465741994924025036905463746411278335525110521108994305775323569053393910973864414655831981639261944853401158155981648450526417908231994434753613006576378367221976033491115602063382818309410284573182662081351092515143557130939587829325322467303285489612437121458013405398284847027327116044515920709486910039857283097251478925320522372083762792979466347437890230033943559231050645743099469289867597957771857468472124686934926206218598414880697265698306702779403713724796299593892599961391975405784842170476545479055030937189100352343564472544025016376607497787700796186066839457675466851082630364421601782182035164631093162369550189606991944543760342636679427214632248556251881797394362784209076176276733284899933754829568685449026813702656834935676680901065453216040446372830547405057201984741728977908006731676604044064479082815676190954067144158994132406818783071633503605526446776993588843062351561953436639725504250010236990078393914970371425108911458358972376708207606926725062440559494963571019486633073982329486146930017905470202099131973666781501143557415184169893642782206936033448530843336614660959363925494025928000810762926614190590936127001498266010558782613062119533567617575267262943484857190719665786734632940623188958062200368955189360465266731403356565045013729557199719425880009934000583573773994612071299261165464549176537310669462214961171353848106443359124286103659050761725785421451700405065556235844466529555515028170294089156555541791290265791774870430617923576833928438645385034083162152886962818339845422163423205387435399060834277474403063539707488916343487431365391884169701285705040863356616348814536543692758691687229726491870677462510632321977991179519168249795702162419452320525041313884734335377038884348596229106457777051913028324028768644863615485276452335898091436181233438982055527485269245969124685387607533921805365479657485941075652463064971306484967169850859877228690295205471720244095446204853497526174598502589720333258340876432099722208773561632008862667945689790571516398296886658988901646775564759768157399915766430176880492650962826941419965638607452507578643641693470038284152393577286246380478612231015271139908370085540835234119785145152318216639984964263172882457407972137512554757521385652545312664956832067487703607125271372111627979467271845499580340919199138924587727791471841476724154961488911211825650249623286137072253289305795411319007526440197507731520824680773064524902609175150922861024330943632791066204768936030533118988783611181713085726754592776889153811420454572146375967227309292387531608064494961752819267783091657806877670089076592949263958209358616946049768718808844266593906342075611191217888160764377305241620214444259877354008687634858903647295488492821059248204591372837089034481940359355665150349483808007618516517975056348838336977823833989369067788901534357854715033387160863112479087919774530447922924879781415273840125351615298711536372453460616118571518262318514878600045316439824047445611317564901024612945333713924247451177115285791576740080160348154175159809082335068465799063159945551604742285700453269827450700790095718467378587985625767201738648898733815827960507552377952199448716203099584077079134254192240514267137282847961057587926807400126303432461367808375234352223963071814176743983777046365082962696694920745539464552362527667740279431992677189426073282205537115257991992321169241468202932458529734932759706843386050349987743804757277438568012409540500040432801103545773754663815005714185735704059235323783537977503081571960848013938604912356970933321921564873319302430407056413431709069807726963175802444361110200376040864103965366528686795146042831102466570940421337718399981348276884345122817360569206197678945215398899873907531832126346682211533694210205419094451620769503375621566136531592144996068254899561452941086950187093459698334974225182792148378371742729608230448778663567687578560651693779466595541200650734627166366562144961107282158123835578858520760486080304736016356947084803652294929672291408525950253734993953453943418178759737003558082583592938435554075230655108351584712134092378095600032465413767970246310296508978921046419402210529952824426973426425857751897698069896292056591470097695400097889941797613800253881831376198234167451112012845505066082883926796248654103561466511914916194400941816507774453489344997474407731449692006165403720710347248997148736159038260555319032930877074247194508243907223035874499851100626735382682294416208236797040456251289100407339470256204284977529625954685955129429328371910657889513503617145396849848920322301073173417379576102318638814040636116071872912942315823010182916730960191756389699431799083392477126592630735485942899736659444307174683023761077377931050860832603448333787915577320229616200399323439185201155751153172730822650271856249166846428273736869169267502627705998886028754848985749838953890234858780728760105206573462987067509865341011361929050095097273401679356739287598721403045552950926719367897645013692338892939915770357028039549085568216525352647911407434641575433327077602506335803948034780973028298825250976358593286044510758302770559197179542693694136943558461947577262628541944823549054924155178093880481653360643162096119559697094599140216585473417556700790699437887574368626232295733260785074923277960657747719612766846679407473600493984593244665233684349807062876206094631617990774553263332637287996695973383843589255062252318395631607997000923487715418218949619007583488071292953855895181585443183113248379109735926847181044502221925760066214771600577049532677616120628653753583259562237403409671166442923130723167450999309063055113043171429841522852791759089839212239755906668386213864188867175760581386658480549153211299973314874552990957483147175175026339754826529004720349411904006793704348921419842380558666328392310299235984650077987884605896813391285475700507329875880533459607373898210836741041721154300680135473078712235533341137599441515823160012452497404108543327067763038152812741984025359219459183772945882036568037576254201849543518444806793309361733149420239181373348295443340111408369140485375984285950950007890537987104834323574661201876493525950222401164299900177842041245748263092408547537218447973353679600831481707203847039832080907726241503922380274201378062595612514909804410555759085274240982206397506328800232801406898768068638682399173785480857567308429536045144948982063781928307128409256951791086005008940513443569614085301257801598058853763253948155421060230776412370517471813320389530335192015330280931982765672904987538786312407327680478110632260646290289955210400633369557352694686507977028720895015271659320728404017550646221184169736722410981286234875881330418528304162692956905692556851260219143614153885224469940883962809960529964840354949627078806236259874718640348858578196350484260938060396554119106889557092766635208803628470506765115048041112493945314768275559890050644076214589167762627666638003883899511570161347926091768258538653182811143522325469142879728900274858652883372172188036788889856065157622649142969438019539717984360954068956624971276493677570868106907133782499064802438878599575818162166095525838851703109953431137125806695704399830309147277906049727794581304897181634970730264645187725690651030575745890078283532747280427610465787157356459896439869815429139662393265107251303364888462113395125720076534010392866132645509898919666193168314332072908141907556855389044217498763501941198996305168334843999517173925129826987145884451043576394517187321890096302390044815079433731220596118566627119362249839823889004531863408755112003727656858610684938288829043627477471252324067615677512086706098557855396998137202474230404546051827209558273794662602848832436714678236326489415924354807319578326898112143919281505685410379328321503436194234239547623024939076030168849215620185701529557049265542431281341423826385323230102681323934971002226853511651853419877247730541216616919055872113671242387721762255378217629744061947782503836801515878603994399008224562234202046488761358779589150621380169924067312476538066405781190372160910455647002801536494487594682700423787336707224181702708875001043140233848698930775235410771519950538807398717191051426946679514291401709273306871852536333795941825949974843631167943148219209527266170600255836258425804381419360187644360367602240922563595273570789865867613398824263864550074009972724953396775435653626066406497670690773387671120572630019891626897004222693170304200953763304423403232084854953456924999513842738804139480851066459195842938667865091710494294597242642087048123373679303163548160204379263396624114622561799195632195890203056575143504255855114054735800173010750109289730525952460027379328139354030478939625458873945191707445978654366944561555068763530180053717849393288346899501389838970207554292703123119955840311712370691540027192794208516014217284857196389270392919898884460491509173572393830120628265370685835276538767649751792842453617739151655182773461308909398137723297935516983035852042163418839879582159884376629327217121508684426816651473493361269060521507090642633758027930665380083359802268808352872952161189907494751158725961371117942261340948475219452067369574357886112293285253057299954656960064132983481705816465661362295080166183768900646130451813766261775184340316740669331572332248904045864808922441711634871077631576276346837602812939044224504072571489803752298063075893082405929365713593389238747069306366662919333011764474657449688263970039783892704158291868946947639219524260092161062086119150741536943579843460886251832783643935807261992033662607064041133032054894668768246121620229974476544764796500041247557664163561922516813296812082797544016917704315464219048295779827708527104952549240471839317573625593514497707229525773141911036189744399139327540298679369836822971461125039867433184994675590705564599358866974276567299815709525695377796163642329811513691685562881008616844006009077990807328107158008101813615835467649169043118180951921905210179261364545494556834467154021810424480050598263340458928214116925355712909376034888440139266216745048688353800970648706273865763986048281237746929647588967088372017428498620373378809770260279584086378770462869303883041733116527964345437292553164298313237543697285905405039769605640820080183524606404623702725330405627828843260488592329873852167517183477120495097209286506508326566404259506303092282517085661850093216620762983562934766708362571700802935631063543069817783528639525871495898781558566470522353619850442160159818868011331433640504157893388593825597970663141717119328009768248583491103255977549482027590179264302329068901270682720719968639817326814082399699687097763781605770813076909990461949885056887737872183577835162093780498554958226783044300571072217609120092285653259643933466303237086359737949634035118304425189173943307448994781886341944033668455753243925032847917683109618913105323356133608860343821308592446476235158119221393177597374798496902607942440095326952172054538973904087569824185407343271116208348860383363479576932293923840967352263629016897698794753081797134401213089511778187709004208811136176896928534829139277344737168804173021532522317758382820338727907388235517004260982044542888284504514148765085620497897923229740749576358282368484281086390358257438972339283752121238236059194058608605589095805069848865723359404665312537001072081460507145276282365518078403727459251586625117966326479713269897398764924074279341415860747435850906513718541408814581031954536191132631706321823552268884557530409513922922317464379341783275728979718517899333792950106891473871387098323948177424724347183523514574154628820857966417651326272589153739115243745445370380625839695590109687305796351878105871105642929234330665657543239758757701029867929746155435976780537610853031358204881869745750031547268190111834378797605461255870249706313321084930028693299445666800269488498862505807636271209966938296255253009854558933528313806152447779064242705517111277834590042490959237916591186711436524983048815747855978359967983943866426828961929422607268702493630549260389808441113780967101866055050063413346078108341439774909288720636782805752955362718133861296192876352727228053332755343301496396150565110864218177246625239031787547353193401892189459836277409664374471342310639205738748292821627196224659655845680021078516931659979014510148922354411534358421868995248504859377084973270009949960082845944087064394733089454132619960632986767069114792197786495878437903052967624887410146727428920073210246694001304442409184782454205453567788212164346602004322014844830225568123681599347697736688435612781487592121650651779164587836841885694809692459368613529889546544716621235320482995027916909931388537366661536302051422029940245090826740413360343069126853961055830545392742360602521901771720751938693336790414419111228613356339400688282376712483198956962536389823286151664816865265108250697770479608205022208891944262408020243734173480190628221028683447070000180003806868395117557278717680807924440839340769502277283868048966344104990410933547720979501109965249422209094626540197524771471372900253164015245050224528131401976662245564560337719707835118861123578680822702947651214809649405246674933684256330661088328303734327407810716758623601404032434190253351539949501627134809797637341853882521146365853658909685817889244185206849654428259043927455608237772920068553919741423197740968757600899967551689702492809598534249621583287518531634880695571830968061941787237255877677571406591719420711560805290268859943484721602245937570156616104989123698954145681756132256327561154404175267710617776280079637367489892408402356246791390870820858383145000003154262934699544462055912038100131799651436000044600497447155722743308521995813286356889339966106467106547114979232623364636071727850825906123317492546051318914670497253269649127432488800729935733640867049632361703742375781566584388792548518654181991201943896288639829983857816923299776051294923323177523847164039039582529926824522133382110403339013174803930924716730359130815390246614581596795041359416232666905909458864980990861833443465553685939316859564264399994511064505938863801829598725207381272109101935253078764332786521188962344880973820081758267269008577833631891144722080257143017116366749395570670771350711340152861537123703720030886781348416634676292743003043294890839021129317007957705791509116257640819309933252858734643591956475253617456399837917092091583461687347410530656957003510040560711913242855751623297976623390648202183264251329753319655962437373907543333726139905547423678932946251550890965302786931363066762437339977124437815130935125415693384168400281718586642071312370979365676334639834186570509034791773180259121987076864799034279354635539835026095869852334772665111665439036111882663934497641223224901771657984739426215884346748289092923825865994244611712701634835068757912285695072180339821939986861149671700369975834909323390723355476897476134117877998492382210124093539531230420287070546347652699272428630403534344811091429407460418774462187743460880326180546870959244733391176427521603247417942383322504436241820694326081093749722775776359560827635029001874284211976644878985427315716673185005385577994918382650443186820340882450604334294742075752841156337527462558349132228673912319904161793694003358242113343376450864642197707788900714491413381063716536219368270515452725317599891550157054389434410241878861152199420130360736973614181327464385216255444159298885369467648173894089248638117993480071546143136350552123844014847122342307892481089227645107518488879605646435545840788396834758555254221038867835569129078377780833682892909191810265793909210511247254207005784788207889441841736309521649803628683026020514289192649464573687837085825240529587080598029937397921616414977112622127340798346182805494268120670160971317089900138703876497351795919215233040265085608073651539700238050749950737501445965303868249717702470907162294209032689366790322505630719764332788090251859209337827361404353830325159170292433518577790638734151829669064647073673780750143379438409626407269401320788344601168440646588488661468261487188497567561741270731610673548192681487663441634786269880144927357474907370890588344783007459156592514647969791058809398421580000832681786886892464075695037193178146387240900278130248518338577432989711617318450869502098893044068102634691103390666846305965751313992731219335936270113410081825505224722080796355464221760947260460694650360049091524227097569932319026715922233314513822776029162315122627757445694595747679286641176782006625457310372802942082712329829705742424605984441060166631967562468347533359809932731226671288883716043477416298618537217926457599971090037858561059632419564806179084775516494941739106980178373374331075861001331596144191462058081681910822256259696418874078566774356440970466003612066164959083529175271292887283518958384495834029361132601450499366104835754148496313726807223924450468622431314584347366294487894767750751860450474767950659960945753933978650578033495009294275353065880480086985486968033643591987314491448357641622246188090002350308788517120465240811127484501914032910823173154126496440888939886344347246874032044005945629597729803602298387370500577685598054861622057768053016958856664273713789590822272000042001588879462502087470078802909793438734937530566493018751511557462473305981893040701454768015814778184648069381792300887561057489907344014192367154733061339936913146262984477961034766977617884850981674738678495530899950608413615612675633859808060808824562540002658865952243569364724309635559736197276654927077110067094748565724549366382416308292377150105418209921560423998880621590970909463665764991359180328819894477656256879713774961702743308884059902186490302320071153097955459062761970656104566567505149653125194470878215983403804057747746677587939829810842309793242584889376492882621600840581339741342678423781975596973891678022721720994472511456497000805397691833765713938808805283185252561629103971297444193754499979030304686904882411013803950855688486198014362211352725218586516790703423181580133980497599654704519364813687101518104862949149238473682791754126687098294841999567376307341302921365000052974277670822313603755022387613621034380834343651421737107834473001648509433021027705196425956040196432510690598795844478459531525564326186716948177009850299413478099076238037520782098884041579093318899872980533378099311018856995594922293897172744441982955438812563085634756057408023379051360522818522480159989213281724723198736809833277499143367070041384959698827281975946358577065091081916225178934744233438145464089129258393946695080619764501166666982089846559841252529305495823974110946809505742601807451693746503729337515680954213987602136260617777956141544142409826003192490517414406991999716318248733324246937757324760828423141397563326543994970545803495982785271502549217542958316269328991160352994008783891051753827172186485018689777805457032491007504190778341435954731772309127466695007187236728808082659814281913556273897425888981695369644568689241971039977211254909959797280626762845513068826247351311766297843270376938843536675919424145561369266385403521497201085924607852383469543629554940296446155296417599738738019762401059925870966839604697731730876306826739278108183995098527662090193497180873592659940690756955568505821474762448118446218717965328292241657503492235870916711202928015606646744653090066982132677002463434797111623405592822340365876818656116584452427031869039700840969139676610701914645426509717302611227823789108580404273646090206837821781314598947271029767090789536940341004024794111405512456252278436350943841967967737949068867601052463685930963469450779769480695535389459367368369185509187459199238886323245552446994010254211915480682044529316619131526459453306069881110101118284172556273049832239559520194181335964453162894720646219691660610370612251333537926557818970058724168573455058660168162278835353200270619357719274442471736397269087030257938875564218107352909203783311573838675750580228205240182667239900083284131959880527177952148678776271099377184885288522187310007328973524045951834395301313022237736101305950226203994726245648778172767543984328821790659146609933231274000450740392220503958570058461252139370116407987685404651390844902239899663656803678676339494393887769576502305125754334314335266297546429172638981887939864838274903021425690217037677082070969972813335526714778661561570920561309826852701357754885426534255929483096082421484960512022813056746101313464819907815366963350441306285904975072543208030821062797906789108576728688473753358193854681775271840719968448206694373293163003217797332768571808581658067391508631710042791460213216653529272398967219407065975690095584851099635705067603839005964241039913929027657777761514649181274945614230951718466584012572613925997553641397173147053787366670161349667143384420218837083071358294204656265393376760571151973284876570884829009420763242981022085281635506242969412343424134457804288422950254532858535893947827607172738067225362348397320614433617908823794476117923857490398971900251057121692934174216038315921170938203921338234767798335306296598762384532680210322800387149351892714668991796242147260646544409437439324463415911156412415192980911705436533636016391112051098691298302906083449321975062025472131614827644184085243843840029063478029767736858861590846707561076816497972861331082842611797182765434388882485686929496926314586662311620226034928529762608727585039897121790781281866221081602491774284249692559950269951280251992282901711320901771097190023327957867410436901406891865658410327806932889195148997634768079577002343338407375494991493274343667789304859543899814412790985302227655009908316565910865435362252900900763362205597977167515883299752106302743206807493481643655630731052515527347918003327724428047149942523717207551580796640975261404406387406016738271632087021407751852560594677836323869746860791043040834270942991014182485113320263802974355215575065968882505633360409950468082198728365941526252472604227058840827183238210680656483612326386598176928660262061132422560833473665278448590425244940468027389391288949919639680423225194707768688425074603976415100788967664129458811942424870629180371919055181569530964405843891492549435455941722046758832066872422315058803155929753658015823139357172237463551256376002690450699977266941069158402772238402996391583502738330811401552889092874681126179562327752646834557183827890791430470626855907122633437426432873073010439927179586757455167378794518270932455859213203187217477212006837793966411651703558523849512984387291611053232440394142725393670669319113824599920228609514867964937196059103115872980436586072841207360746867039728476678070370608056847720437994290092700930643343409746525032054654777586094147435581574669070173443181051991267594886890639968497210922282813304870749774004309700387111854761557406704172044080978664529173931712522613364151802107450869324202643062798066978564501143796379411440511609081981442339432174945689017340075484009959873668796292030409201575245468924749722178150468981389256883972689580873713149124635135735405039904996675934030577249920204965526306152841853785201488603405095550496683163414741366964845504785451196245475184631418478341090972124561837835810360784234427650732162267913076968053630403251871670470339502949993365280269120284852208036957382727722882041298215970005755909982496937598439693386029804748987928269370149740404814142171296070700429028755282672470115322226181869775986133379569759340983073645229197973936854163057602161197829202896586430721567067800078410902901489259692915895743086127771094275394308211651436534849453700934905994145555180052905937397284654881323630690783338156128547278142769209450427789483113097160444780921062409291909247134428134407693151733265007392330015429379240141773935836035601325164757310919052892751453891767040295607533757726906533136171914698361987347725586784043200286381722565995127239164805729935172331356387470049584736990816580666447090778516142370274179396730045537068421142556710447374699895374162336122585720760036894169232655385761077016657602016460813463360997115991498189429721632702457225781328879270163339406496833570476645101568749237242390563252411678380192774931410346310613229384182102116678580304553239189761336806341998865270753318345363371457737856987072454647619205247891696703791110707378449048816208026954777044656659374085173080269995801940721812363284371428806093488134101751251353299314803807907856435889718874530625966145386374948797963493717384586309854720832749656497624122461742420068357011166345246270557641634297858224144810221149915660849076653491527193485444849802839045436083787151822342855888617342297130972602454218541610531917505436781886304324816312082031571177896089932742135792695469493364042400823533690859722874225884645000684476299328342964487845303044889321067652841733604638426632185395268864047977249041598075503306522995242128142236229039798084805709863927298500693533216147954379066047301198940804690233114355491771540189619616822326619291827969085937894802911204309964167251033275215272417938434768680376108317001376882118592566941482864759015991349451120590048854956642577553586649290277060159367580508298300083130425548531003030622862537468450057323406898485872246063195454295906026142693771364551536701132370171197266148265486887217471221856611658764705087651888834060970573665266595433717901621890044673930642884353586842503442200742419249072341269795179352886391849271344473678392024841925018861885267932104206081585730059362397091028838297949794726725488213219478870455909168416556816410710629047813338734140450275522604982206823690969714356846383848750460859157486912175144409131514056127616637757249331491004650850609159091681378984543016924159925260391768334369353277816327237645069470680363922589333429661038158982740844417171117469923401109459186238271963314302452041712543184367905407106603018338989119290342057779862688189032080833884710883803640448522341974154737725602844199158858203023719022282289594998430187529674943070256097176110365038172503390121112377767188246967643514467937757700568023501023436769170442576756456602955447934754559236024681773695325224482033719771233172684720805257199310812642789170062717985656294195659691819089150545959261708266940696846926960525717011012186931933577213719291446028772588847300395297247457956817217785698276803348264174304001741085525031260580136669547115171531617650307173869095009576069724125029406477445502207490902693937632295398495730332438604103104433393775094329909764766797016463485200791928579883632067817551013454886363409247080509572029604525281594630305084509859507460560956384697202817361600370274207533547844706862587177364710937828638754266832620178470374211626238223322356516218409951444948783175797082536069545440004598297033306016590359925418371334632947620878831990338021643326659912362984888335072164126725357040399145164313654487313029451559719195908548394079799993464328672428302740141973932750201188453039748427994302600074052660151065028844533000084356660409092458020367455698353972911026917283493865256576031650359833131097856128621221439292848905078856692858664171430779052990586157052809868506095640960487527492933538670944130497221777744707682288351123848684068511753056075801110483948107217004176805219990611573136923267326941882734166047325258919634075945784492598157707607118646430649665409596996928512374306147008509325893167502891652257983104241315109031865671170183523975823153123287083612964858481250531024928732139567789309979429244185391553031276801771763432418681529155158365742036417462181254972172794043932386857423096183280813110040492020866326455454731469105393006979013076490187186322373091974604783628196436937129080796467858533289157610362939735461452682002166160555427639681285384381781628221628260247994590806417868462876269937162490904926898673443473633708759688274573887568306048022716765428715245929644426832839929198068877261242201146262692230838864075387941444803807773490685200814005536641949065665813499629144887736714786414209822786019724732073566920864530657706373589562543509554022824610862308669336939839941968806738517880041229031434943971872581403875822744597399846878287851204878768091724979126414979233743190330396000464125873180625181972541848071510818199704996106548783813862429170833077202961971047636274828615648510937929762238758533148426788157950551109422124970139748770236842355349253258467680164164874006379757244537908295902688544822422422305134578092453558598822141259879327594485156030482018928969974493163039801647125103117637529663592540529290605231557044907243049621748027457619854352700956836945138228971285015993625288628249508982925331232256942110903066845932917585968754593386960536026759461291931410856681200415730552692566569556583002497526769678177656532335502419691853888095984359609384824114511173508701134670089926480330821971485448554815866398908900739796330575748364786097778831757579404713426997556138047519124555559004782570446916259869887603214777523267059015622846868359604499738847347637890058196169142507132390072600092119198181797476468532312240362336245248344455839064605612974791055200950265319435672808674950255037219230317403821638078424340214033997997825107081493899984154356598791728107829893937587359237708856690228035581696984604432528938662779001575799054802620912671971941454917031064816634384857067154763220568234316921299749032430074336700939509401227948608178736947468633496710717860053157710097419745185666938693223756116784488089530302910966563812841773791840339275162730076282709992529639152985053526008480939252586824887448668027963030844780302345899144872675059218308533128830545444467357949124399668620190115835673415924047717107526865640114555780135533910211709630282129457590390676686035342445074582407922238991014365680869189037780408900780212443610907072119891838448373597500634477154564316232783320790975184250114525877972164179617754570434671657431765542180568903854933735374508837091897869997740986514192564719798432449044722282086912996741894410470987810957659321566095468609381629808569852418395034604942820432358431217989041135892312526630003248095229039224270868630680880053408784736794293277167483682688263504637641909594369833436426086270584587830201147066001307706669532430830433012883363697727678945901288820467294396827050064328097909266325214869214605382731688830138540315806271409728561481930427456424288790742082582680269930136883883912869234883489677523487559815350993322758469451075961646248029458762563579993500213859313679769957064786902753395360746087730194444420383088433789108634565774165167077876672537648927398020494336974858862841380831472721622287043284746744332292692638102532673968324868909640583735623342574535392801369612969095577884324722662418485189023164095558288814180004464822175260264356385258946855553176323629449144325217337603746468272573914452982939826773312929383906028760453738668652026177936301594618701989139629673101112908735817238000032578083977874117982144137893395901681695867703833514526946497565921820651240842899766997552216851522080174134587175351364224978296964340422136789489498320746400043974497735925233993800361368145616373509306412155168109229947284913293669672673359612902530421273935926805743325293377565295155700461912777798832178951772048165378531723044526084029216788274477285558013181645580577354174375108671794925348070410806713287470149730452329222386779251056014369911940073939244682145251200490932644204841507324531170942221042588813675979044765484368993432958188632218672595156696182668784581725510473582310319122500673699596788852712367693588300938461913553062040969197724437359813273107712061738629412498206172731740586725902977329562609059016609359159920536528952019344639711326999903086003831952295396707268232971559010307751331616427535315367685692567766557997213288350887000610329174307629358084408848053671434684152628862080227263771704238536995385661730353689782757207386854466023094746104694477729125835272821971128054290284538417906226549676594393114657553069678466885700934947062541535590952926044270123897143905006132176971873819745275993445839269302639920526486998933821363736548035331679881992149719514318630239899255770591155079175160621821071302578650771067194589117974288818641143234232866635733085962469283340766807251278748970756852255126125254836094468794148754086258832607166438639171247634614573021896829298237555382594882751754354253330570913875798037403019244919018250175063115676851778207058070728023857060205667071827405832946702694567823492887593776604421436711516632104039011762221653317319061763125590409826771517450324331771071130204199523397067483409135765471975337562741805657573469708795954817120037009445374992205319533622445708494163299856918023251903111839427036507904415791151960795832858881348015120512216722258067074016128836518683914844958153211060519405608313995072058018189982034915793044437353623211763335790088230132894981368201001849141386777198432134825065332399266320603404756707688127682431692269414681632818888230757256125210187123011266421936055001446947304089500349700181432605482446945779896179128082802095597954379694570640785244070109850289686838015093357509433573394174389009912202973021423064779634332127461113708339045417173541261364052377543202905050879769627104693081565202984278372407496169872058845092948703808701348432118393256581772872340141300112307390408807121644765223717293515899143092901891746006857157758818912423962430292450760872734724314225834467441261003504885288934614519448460857933248193945204782547434038009808343072012308490563705413232973747957838712244818615717576493726185787275496591432301484984606212887095183733241075624404837280274754670660674931979436464693933297008989902754949316506776058904633474917120073214406504055962062480353092173577836700680292669658975992304862802689094652047969626343551045673148207792798477804755498337465666863094569266769263672898024256845446016586875583752681056023039096279688325156263715711636892806767447665280973208817925314026087737233218189490358062150577439316220072206704381651210031629102553951810821072649005404768824468031694438886612161015139674996623523546049486336384829867590491528578438153813900075053790486756778521117534975263522783382991055248171845323349177173457709690412441931811272677813832424582999810638007886915772126212084629155374073958935302328086060387878479485153053245841710376631191525374131697329665432654781569926269222000686615662147824741964561451719425181731857712340287215010146758505159007175496563863699899160268482515125731234870152712552795560585983355044534462900240298225088946394623782750370545952876671042787635359238186983245482684172482144143531503225603977180390104481096623576735176426807557511865501167690638274938815610477618065348942498836090141435728441593695677485323814676386735212335360469049968643403088896313611545836724764565491926188331199734371230105250508435549797871360273823040037501331605649648574913587423338168991119486486540399185223576500708138758027943199422162989313442290107348985120932334925452519542211405225982235140362155543213267744776036100812276095211810029200917981303700688652784646583499833854683018496103524259335056803689029103876013317046079149558673960154230092966069570618821504689693531569435243910535832025293418864268838191380011128344416335895447011257467440972916802578592706945666239561143449735913580069798482945035035287334866881262775747624258334733407956752127303504036073419551033102957533576950216061782984769321810062531107181142275846692447700262872793644425747755369422831433540798415155775740090553636845825673166258614305980390355383269294407866716729768134841947993231123637951964056677246549521767282902890032561403611743883840267212719746518773219131996797328897529595308935255212493359872091825911520715796719759299138393474084579423725293648273339337306682502393012281457740385593940732875577531501246206178158438605727444311940766802788030227159842477498377318059371404254436137736749252739609285030233276848693031498381390035915915915112896411731443919468981662007691965356846213370900149169993497769329188731043165158775813001937721184664002515093212026717229501695764196906173790969145757120640723366788360812316229108354707404425576679502365599167850678771112632336707608518228779547525414779242725604379254987068745577809088672856130034324996862638605151382306381110749577315871671838957671445815020534814496466071599519794691745307270155435441361575297379876158705102411118251944541967063195100528993463300395931441611061554772679609817696281705089006490545779917076615860535440503805983058090727830881208608363377233215731396512720152808793683613278728212506864373051669414072480549831619041952398447922445126232028622728702480532917742744945848274012592745582880291573327580519458596269023096844475925620452915071415643605908460260703357521475059671351822786242334442096646965690363981116795816231520748998453889062603269077302725702745132222601680412959819616345846049496750803352576925439554387512504846277792007948062908149957126558247203335818487578669998499633944053871357905839496369709866114373131604701656961613195525939878045666910562742217956111940922444636437940915619900359121892760090458980863017262821467582612987652719880013145565687764577227324836370571351528309784592966832805302144636706812387742655569436005598409056019190027669732016724448368336619488517874146435981074679152230030127625156040691292202653522419610045000413067767564161026853336619735533758007719969417258512785416160640182095628917287959911670327325960650438457679755784955108305452529590833911849803649015430973488674190549886274467666501813697834519698725829003508740751243294148747675454071510436025082572538907211727851196071360708706414315644209074941098525069376620759018124621742470046937723449987578378532378326938173245182616044850904285770348691048130746386316882668957401279326913250325370503384641182903607187226146028262302570026960945964917700468228550610636475658463306478784896110001210698307910775857186357632893694288566744232193314977851656199244677258754431999341217877817003021949649810815436411209196556534262576081716998081167679528779769715386123487199764227953729922625013228165756509264498113352311231848842175966669337298360052051076576811962111482140836317630132882461546015072148867505797135078735863996376407781612827104404910579604576286992545029839017222146543791924575626769783039618350110423648938562707397411621399053724172715733793408996419114683268751062856210186841603370391121459863442438228988982901994204687488134606507217225984793066045714371946190220774762800715373707311205097337352965801187546807540774294841194839975656814200108615985840679046279643565104375724868941072495372072050462405780144509760551025788404473599380874186075550314614111549767159610107074801969188064462054441722224895998148426835920651517982076875804701008579576420113592604327789342647198754778633299930268061412351886685389358494271606684819513773988140801713305475557050457430456990494417116703849657276526999569377861143773010318260519721907986875132935967724858283643280744945108895997834781496053516626607030042379139018340253957382190752405594562754720752370572070131994195571675574628662001501495831130050016056794242274891129099916478166156173866793340253575803535136062621227281023216341746106942069276686891000730463163752006501856052953768568288320214087553142822647693066803675027242192643631133010421876798238978118851243406579948078485574687261957345779671596884275246608622065168110262647954164051187794588235984749951114565166473831910845968548479144011707781940767820602637999462419928047010634637605190299624832667077258060751137709491904518156722907438580817347899262382017660254873902913691954111973251658935420103333827524509057657841248270236635201890800807003941289919455271356545666652937860166115371916009753994245160754763565633046333960441720930671593920699323124253925814577925326541099419131993708499167608468675948758821608712796658389666105118450000060988233190921416008929581938788534503127854586007546379182693306518511390575704593292743558778298945546210278989140716277619629881099983681019459786822847252058771623730438844117425234371364587878724164440000045588821352174736575267946190936664268077734166686059246406945323505794603967275384741738891814232530916367620801084703263927765971017134459170171043570011570068282178193226144511718164089955989970722994668186016787462171721613825333000512158079534937445989153981086110013361526239166590654320467262395648070639395646302217108238794156057016495615778902286045456877187683661767292196706385423392751440048799666760710702490558625099285746368500775445867260176708633910172074071942145920259394083970681315508825069806865118213363862544171560954752317248726105143127889198448146197047513295465385757789286843757530700735319375243919590239068868254280679004529506100162630692806842704948563962080050030582805524604672517355064290229207320451283007648890551447407155481455231037127595945215200415145599060043592140582491373419741724234509764912284989201141698971564866953393576432750569583696216683548340670902429913600201690840495772389291968610781203108212766711181128316921327781893497570159268394888289987625076846784735714397813924217538117539804198747357767878176025431053030950682142998389376152560772330393696679667711980272623479408434896619962531673457227257805708867953838239207464670684337696170769385725569766719896258436439334141294330987624376300089906880747424098593170478953947402649286056449968002326522129396716588385041274608047474600744843404015881494167075627173423509626770351674685327217141098997142172385032562132678807830417416066414177583505155379851400111980670388922762382991728511624707872297532517590777527071412429179393843296015491684798845727409988409646924873462063414191590550980678503804762923904195748893396988384702895914918088419337054255866004849740430026575474665588285227049520628047449378511750278636951932519502881215478857938516941263952957247260495562525795507171000843737573443198323007870791343609506999939916954450482437149347952042289150351163496279845821811696554878053281067017108090878213352346112752264392753326424880488085511726540936506443313375583647156986063557012818374561272731871428452188290438240177079634726955305138832589001663808888342758054525587407777332601895825656152853986551471132228911389519399210337850292555931047402906721116894372431130786000187483931995901325109558023929297812700815356021195436033983841007242362267711092577776249433948847274118171206626370387053098722433157045065958561817716080105289418517898837664938441605747621525595726170787197821618908605508780925326376208892502253197240855230120494450056674923629783788941686863978900971829283004753582048456258714832601892496338242059280574345353344161692858447571353085743516248311066062047714377770121621841435828108339349651107321472052274239613885826530883742876446710065967232732920075362142890290199122187608409148657280752380822804035049019148618381247169566743081350123346167328131913338581332131427245025849414372931219774207989646784146074925651957940854256364985910797024997303138998604534080381368085146448346702455423214719102459911899124621715223823367285798911749145125164531739748478458855586373855313150677772133724224273659765793907511395610303494238157407007594796839656476463054716035196379100556666899422946406169233597592915544253839846481941555980701567270143086169926633835446384881333400557532641976385772410002142567549770264994609107101108858837003761588369819419277284740837749986091797214535708365367243260321566207241580838882409511959774353198456965118131475073429539599905431052357602855317325818172889788708847173900599956072575579543354473240785166885043726797837370607113643680075209004996269260033599977446176908706259404702741458065551292295841858072263845219136074615533681915582438573987147569470866685619061230651482196104606732473990283444402822727290745738925274699024659228192889399964416522967333718989828135947532289127312409565093145419326592691203345422736650759838514090104318003053168279657830595631322317917831790434623113676421430346730420234364658596817591904468970786324730709565844389501157819399924753701660452068575271000932537316726407147284185220932499019757331843009039844880270394678327311210066799516874004266645718375946759602085368770426445967687766751428582086173906816748251874946182614466567833325403727637036458815011343000217997657064558984626880266404771421635210779315621011466798745193862554692881806123171079856674825529318246827091359100146723880699019954258213802973044990786229074262106555693307609821019989769845799237151381555601512330838345825718735880459353244991310937608252977904010157945746389265150556878438302414198091332429332142591911775539889142432146732775657533967785332242927439732738260764575243719930071985939477059922449646947156629963105809563582481541847508676427298867025827018034007906720557949903385569993618733719015569443333846955293409494368641079888294961893465600893224252453763895056130150115657650105501385131472506149166631928055081471297146788866975769898167698117847534274743501185480067418856052411603692260964880561711202873981132618879055871339841928096414209295604251206597643063773947636672964789924658459733444544391112458607433138200427608367091505700507150070365008838033620017346099218148059085339155047423032224141971845505252917023132031224736366695921823377787335360746187648095030828373958563662356207083272740262178276659565672427285481060143515597380870457711925349258090009753840609058676371395412404433933437519327587224270598556073878752112296946923659393366218076978381503444416385579166898922837477848630106698056526110522255891073354210518531325832925013088526142278923850383914681561218431494505007657911748741493836254820320819103572014930311721071416091073045726906115942465986773550653758270422774703223957688881200072688116148940828752590729173005815283099835607129349568656239415233968933421378897086541322406102813561437422764537062589469538748714754319906109622972617092420445966391764413129303606474873433033918406177272295996381503324456181209018163218302922159514733012937953641364752219878263027406603343671509654652704840382450529966081515893864660975794913178323842908376608025894568897433838810120551282191925950693466851118133425622988906276520837737145895128605283859996364554306154315835106293777487272993220649931433960272561276968659094454315032796207938302450244652480668979724439301100765298361798973059265723361264277959216661072815725373696512418345022322598081032624030030051202245734668981779461030083088803339347876370187109141085322480088450231584535702767133654754322953230908943565205516679123974379864222562505044859568338710705915103997138862644169935292007639332524804095474601055284799631500206939959990411118419230358773735497307451999353975989311282751422998450906277212683102877975343152286082414263673115305621642721069517140069878951639217855090708391202108471940702275165724834127216724617725195047218164418168652606640063074852912658125175459999833294903904398555903618036256718493862633439992034617034680802236219232122515642005893880017725787180816191201662758188765135801885098817121100090163754434326463433485137828247252873764329549164290957420816139195549052156747270715739979527209502137530724619288432606410506984263788748393650656262782096027819739475040264749439519015651856273350424682357666473825324570745306875092212768277918704073403796187744118952986753489753409963235166548812384868472911380910237624387808583496814563316183277396126755785708311137749996695840433662501876477007253220576286694489513028940215226585610279589133812534890078565624521497609435135103231111574688555405527224996434380124611195440345152168553454056320209845172126342338727226555097240655835293202372688447785116935982021970931747871550973793825039238987922268525155035050314779498068983599484886585814770261872529564533219546251858276944605644967432656265355743605745188555775805979994648825509144033815773795121090833975839976601595895324046104182104953913259522549514164584167804316367979178164870583260310874763935163654116356197563393260567866445258977396721395782862946069089955065068467575825506970376270682429548128172291874252397277543805697577029465735215003573988287967467985431451777594240608583547854292362776294634177864069794466271375871131870221159102831365313904125711262971193996248153765244754646134740853596501623387062511942486316903518854797645305422314842400308396518046997025775472318239140915244687384341301483480100785636572518295740613052587028640998210804213491348171028612170164044793861090439681618866791886786949710411530191331519306151200562347674896432074559966617686987998487810664865014373718898612160502385383187168259224283612522417070460553238591426575972733039940406162801347407542480284055807549790893134728316945214137252496032157596935524795031157661381085214790355150198470567155168365071083437578963934289456034214090402942666071342358543526217601453357369784755738273223392274370227636452333003197852744311209795335079579414628843389796452724915899719926257007396716135357803072521792871478840665672242973485345693380503152161118207764805882606978485988049490251240914729565675028242915238793122340027089680884826764400372379402628869222475010936941371266940541844175226651804394591851924912065288784922739636789719300139109121934112344645975766449348106635963366318954290365763978405221865643135369130110368481957542936212430082233352150631983316765992485425094017545714534324025377174301002153364536966931025471915170642083047975517568926944631377191541139714519215748741501507956309186086804936179705337576427353173857271592068675111796560585578943996927894434543415197628045968209114066274849796567173087587486218763254699463641064398542244823870861811163322668958050171121833446587613312428268803198231917716216451612248280401453776711459821591793345487996730948201272292924063106109385544409645965831594016622406323674517275784805181496595659772963825080051255617528097153435850653391855060156829273669650576268936380557881854360662739290502177112479708382761714898022484497046882514781787976730992552976047826719372654483091659572154580428156627170455698137493944077202801409094538326773220273664938210073327281182281510945558007554897089186446915528193495389659898186001186101578650099230409189033596147325996119351853856460769239554480071276938054249581911923951746204866781081064659708905540604448048421383035912890158484402738752439243617789099015492437555256600416874987054490072791024604862876658494403192814998896367867043739582488489697596390343715044544027691050703751708706511277377281232241999121789880272379612316965932499554946706547772003361445836982446794236132784052828108032099384448875017030202319074255933886686762195030012466874927728572857329638311056369122185548703173930310843111244581661250077478190327623314134669287596816851271317209284384564733572976694693314001486250932196737095921449686161196932786815345345236291246970873940831214022802378906497450156865220785058020448405977645597866593708553276349462838793499354625674754744594596616810262339027683282528041900502549103695234739261409364673816497892417283815681848245228913435882660359114266416617882799425035219271774689639445374011831129512913105671010022347160056781043044993626101668497821843276806790991293323246134134543501030643614918960728757207026102211778086321949256732952003276357546255333118730539648421999993782592798860775464692479406242766141920163408236799514058728412108312839727467516184953259766630983822361716076291275223144390994789796236610245156709966953792230668678085680553658018883972952013242695292119085565958254606039748401969360081587100457340738653243434692933696988821819383498883063811967459355678851162798248142539585416077390297565332185227374216899651951902239012131998174340057711793075099385690165705397515937768245654227215320455128296097438878159034027011617788609204029641256687604777574742838024830799350516233704373704107539211727738830049044771337694162254118917322780044718326868176773927806374019795134318344694238070897080573828109169107208654096072126187789691562942054940204719644357093706466512659318081772342748760730446089087381399257426266701572487829754615905587832176603200904160660022400972037830364177904968411581828878370047316527100257915678158917914818309473731783858963166928508050465289406691943109471554632029220252039010122587502691760483653112561074220084842330385225773653909848380078935573588348657246102381554117917448276877972119475339718890453537547027245443021205257320951642571744868841160918521768118517594293097452174255952456191182916306997974278785490311215024775356102536166889269945843297077310763082999773985895859781607407832180783497185195226364137276266198599922123141836040771129067464295776271239005657063450366695974702621524233541823917809034685357489354728586238650466022625404558276285989994791857904116538783743649212027485376799959852799066829471075680044974517407775379960840878873017157273317419291350253921254692137400253804017938091771498238479466158060632676877731070688752178900152016748330422355824623335703937211677736229039062016795926419461203476319363103158337585516625260689647850592842353505164596832719014747132126188678776346913395840351850208706069678459711095850700686789498479667660682793305430335996026498188982582925185936189411234039237467161069466313682393115614284479418480695140295686320546954795037278614335850341256788014233273911755166588899901955761411404994810011749862288451785448722829601459636176387130531841805209607374637825410421191554351378208785668777329200616104933526921358789280709812441078659420696214831807231846386987050372739170653526215442903417410715187952991354376562291022645784654160907011696097246529555978928475957936570705560822214641100282235393369440504011536654423683758548843480346374791448931541843047275865434898713276395028481398578096065038173951926530697544978870220063863615284963954783866718878894910959485807955039075425097431287064296541368124282884302283100556973841236620366903564875593808374030113158443941013353358971582566980453781732347195233673466729519650949457883384603787610961093471337142650498614455705166859164427465005351890548693824055362090661835576715283308678075483656526435918785013481971860743634574800273662451370570811640503821283685855527079720741700486056617667764808594544734109006549323705554734504399070130342349870144369999402000553818469723902287374608870543765617688694093504989999724453215664956797771615699248053229503749071180461937578813697831414697939336069549266791026930415017723130537299000546451544715047675923362338015112191547830874521829883077029548609429877790194952153523525613338013896573973883691757332447577096222093375281865079271843788186053974533926947578860194471226858008194378943802939907197004029021919539466760215458411573682746318057412055198308202818941441352711688057362934091205891327748931796332209969715314681262551912691934522867570814514569429075700470952564782373081177150907009447379634328750368248420102754453740563972464955642264701687330694791730386045184098484866214867963160683015255318151073071424232143791577002813043180373790023909595321500556082886641859060510806014883604937345899917096409342313362087067295423148770418025074979688257149680505601751507208706982120159920222912269352350750917877664597925189650765723208788827691080120968841921849675938186492833436372442099998235725845768599390747941971050612320777961205401091384452850054423759928886743977345709366647621877147461129838078066784537857142418651196099353891033739005406123780720484030491205396184406786015161979068142216997510337723795977657712415202301072159322049816643575940350441201834680971153914942331148929623302495418735312570904959580205146135449837957443420771269097788639830538596573506424513423569219386574107006476353906547616931567255992192834832712956880263521479994198278748750240276192639496346823817093069789268496496669634514728758435452423615450208291099790616314885032382143464232512402371660018016408535350731193250756643034251914680806262734814146844575297292054337696688673863360628422604184434914292833086442949752475953949460275895029550507989916144829193917282565230555551888391801026178106558357480830358528591133028089855027862090005701594579528300363723818158353215874980545919665508713043613706755863661869383282257165685835417129087822468222080410483320885998454408080860398290069534408887807989587042953694120078834780105672559385081029597671264482305908886492603202584381045607297747565461481040428696605070801279705780068191142432293566755427606309467471603602344611919904829741117345240279473335311935375955202583780782994575983564998370127922635724058156686796222415837580273405290146643062865849178916239026719106188381754390646022570746194858270364041996165410696056286931932208420922426593806138566481121615505190800404193438038603605758275886048378725920136168995084725864176414366790626410960228704570380104631528794977206020954914433968215084525164709961293440223188205311068687528866840971502971467402296074185813063710897488549979977567179323154056265166542781697664467146239047315292494674645957229045510081802881364070295612995681923068414567134464520107614777247584837914441228967313388885585548208713639695107558640356697019042094403929145426115167270503452417000940266739433735294237034893968661241623853562717368753514118807174777451167630637985293452337593498894226154125999237954199245826630264387607733763693142200324998181402302103857366571757219970910539121929888417103019780639925259729102987435309900605225667059787646684599330596077948985086978624623707833782819637309870971203959870810935700865991878076468344157631344077374300041703360856329202864622070755020630298363165223121110569530564880603275460120139392701898316625193938794801876055023717894654273715217628685551595491143565400553423406497499154054985050436782132278920752996697209014466256977280016265040346792507470148579850829101667367489837111036021330780434835125100113313988709186267629374461584834103773161837036638313289696034465757539213969164731244221509218561610256922409908467975732721914427736018976546296120825833384656274873652723768648906678517397903234269515337293401089568770486289937367205608545952666894305338732401094493446014619032331850963705404462510206791280798310536115176394612313647174090574291763179224962491378969461440193374310845960260955798879109648724142625346043334892850555889921072301907568464599156819584197322775648180300300931197455479573768239254309199328144956211104508799253098465665040142479202718336081088119150081476721697807958966597929901058423815728537205615232326876975657525774673632147560751063085795227937146314843541753636881029063382047411934637690954594893593951711077795771700967826011381064615364007678500278054820530728278176463245027162524523387084098077051606572747690041767576565458968701119351200483192278160372433512983929813362806492226202878651201420724562589252443896565428112142460029595600722142645052532031635516377894308998091207372315235474667924910945654370687249906088828537739661624217443639629435640727606338812377565180737684746579900253010897907605508744849181143231390156512350393024501863231437751833768136690924656850245842111681793978398999850804255473053608063947554637217199610622548064525934984638064199931160176807310425846310648251997389130694660683208133550710791496276413707626596839166962208411507963803511821948768588349952890913206522634051832130302071089916362867151211845190788250131220032007394138170704449382289410372063941937371078451009374201621458777499144437192725545017310127740772855074851247764745382789884358613538396154514002531473750031832572050487291764574001992711859798366270143812621775316849421145546584140040066385486750719685285387016004795409334778188878098765067466154770001164754804394951277154740750384138115754633031431880694422403328746482086872575620602577703404175057516177544245123820387960882910893632023392919744239737304235541853006254900751054312399816054771981007174360272909003626648143061302731480776243258636851643959549508791434407702898600916073393733711044952085349858284643592560298589969544738132723587118125485917546246732976165273932866074603548557507496153967013304231753414291703507533080799369707857904003694923883375091466955503616432723228397914385408693890550701844972027743028682624179213251620797864083390978034528190020508587120172436534839917141822498880499807060105908043900676567778333707715786215409407276907034105302481842417409535287988147034364991768163284441898412824477100102915608009146160428209442870130917996483430097967224124325594009780158215876503547724802851290785160245681715246886600508694747605590277900048113021847495155022327842179129842054527322129631346802243250971263579653318326073917163680547337534700967382711135057139567351664514138290721087073527347688266292982706474626537219041837880341479573336142571495895700631780191937705788464993280321446362877859136895765146878437128597563408604634399029655341705667150655550898483147309153213462410889433133286757306773437390168709795104004332292302552295394479476345556486901971784557196101692883178684648981946527676419215448673204917971115140356123475927406239547904170808852511834675715130867615698408947190713810366860110113308579380368059019312555966435217610469461298178838888995043987057208859615226364050600114085206290967699603588234531337697666395765715087692151865118465765147152789453610825588042996611899351930093004163979888328669730579183730170951319207709195630494791901496549836980449873919684243947787936891402746885927710806044792186877071794675673894150890163108179263125175947317863351555275422099495939861432467655775471040081230153399902496117007428949913111524480210458710019087748494200157855026337937026633739786034851165155789761641826630398706873693907942816641038478564301725228521684800403806210785046151242283543457447646052183985329346989642183033174492478745000856392621207536622988291942538535045044956571241508273183888000033404460765932312943435071933774915591008323297998281889564168912248779589462840254985147084532152129552764422673509581664717748942107728717283349525469316003682020833084857252958907777139734976051050071765111222108699576558124338758970304659043522774368151207077777208790265200148492360122948007752006839462032053213274623818500226246791075595949831907502593998894341717497665476905828198266200358127756360262751475606336414868397035492895321217154247259715147627815700526202989273479586670275742835983170423941567327541380633623272183093029612884874283728054240215297633940923859396764001549623405959427768599879303383711416533907340388202328711177656410127851652123162692664880794838626078917490494482498569158038039593518900421862090111744978320409715447142464714392389191065453667681722548129633003479780392778409437612636513674121930551178136340912912091320167738844365953960361055128247833251226416804844373312407066294720160347037217599952837511921433464103259070135729048906553196984184206707483959933334339611633892085293998518341200516654527771537107041666635861079528969870323607989837998763127107622685559299452686772204843868567485166281302215423211639338032382337679784670871749709381782923016955279703813852587829612130920273392267293946590770752657765041079566332414732077669752014415948069068969403412005114287562964099175633288836062860133614378335132580058822444192739514132439025158407321511812039831605448132994106016870278727764384585591238519411270409775121452315802950348985065925486465428972554632380367699226101005168539126311280403869761213009357763174809138888625236600067274641888953477639278396399085498969312222502155552000969771878651612798229870597027032772015446993488039860169563511816013167144479197947285401708301476915256225956565101375352285682926605228738316827260742399597760850394472324778991862919767573451445440678356997207883141340498053708097038075634408338054006608835496163073566533246862430936240993100242440350853685388092463388536700202673409678686806439214329130257690277972447791465537888203773416213662617917384796015778564404363092068949853000166713733731405457417551634781620583130457344392187117882221578538652784496647852534570809053694349824470334634904082198959118459317388293489071206126414356817244487706894595129013502972502006570016006658037103935070841944196386423878434176745938029321483233593799924443333213024950969644182719365287077006465770050964643364090577740615445825686184316915476566857495856853772967923301410891046593655788319707933111087438581929517541687590686772067563657409143467417702620527688775974910613938814654342138538331856205760816150063868304941887595344053849111576154116943887502463124967005827705266746087809672044408204903549796685185640507061898649257053150841401908449733749278629300895105948673619990495581920702670516086775670751267552912407995311817871875842270771399755224540940613611911736023741256934904473533081795393372984517545116183280121189734555255229340771879930180982536903725035179618319587333100218608614628549779383774781936807203024624381311208937057813647724199892266524991628109559593958326707182682377321733923845383684052446671168714891961190231857360143986367859526676299225052410897173516052751357453716607910562851388048142512385336131424435270681327364895961269088501976658052612509017696635657348267724649701528856149474266856934015641871139850501179401381707632003333406529493349917106008411492744323645129227417485740842987010820918132526064584232319169622149160256446236188440351510895479460932536044745490105282079453226176093305189147288712355945234202872976855236634536320408203026340097120068872775850632702784170417890994891124776682335705304613697141914737689667043004502866036195933261917119890233579558885138808700849315047761987721520104449340619002886033392058953277810594898613548420126649480652111336367636412066457284077233341831502530381917617956855568375040511906090252649894741546967393805031029105982893642474587470016118705083038162873598458671263499181770684929016153185099021063102320326856627173876260662601522611736067109141317476587041286776113164198843636919952544300948273634955954462398779982041039367768304598110345871171204682415363717019449357107784347957833499433669915330764350194665392371908227093900900786820508019161322863745647647354458812644982484165692617332633241430784455432754090585907441012282621114238006740935183912608340067706519629042836888026478459675719948916778634516923899176906728497369207438759309727674361594782511210678365802203998953484290484672596165570102299027223665888348009651009404848365614156620590880580406077734417865655650598190023320585872135345981998325299268806466201740610260170166393490619974029700038667008769498292028586525398870640484526414841559949412857241803160635135713454519281107940715602339115709690300874101032959124620599870175220365149617984397177483716716262194572265914259553423956321577421940582212226920450144126853922888687417023998318679549540791190590584040573708956732765691654490670161189168199741853260455153151074679940208823103564817893146885304416963036186712583102130800867308411019991642885694051047010573691974884117857670854431789258011467432223200665752607226816274245649044452835988500797293247034082834235894473446732985494956369135768310216408283926223908877439977018467386630059426863886860047103575892451291377116954384989871346718790953084409409278209259377106723615072478045123642578985382655808365408550993060075081145026246337180753986914483993671164053519951015399527062254553949884888140479507233249105353227568541949283512176100723231277610145176987559130911345774796373214905267559653055715483255514270217396296281806787387121807090218959014401849574354195543879338103222536310851931399973433177899511578001279914300447514852671820248519270176684315674408805903296730222811297307980875810266947729810976340551270186419036953093612521117047980157362239842216068851097807852126360703260281292183680806441049165036195506378616130672962698115884713761695990853424437225996023054038284393634862464644730139036918887029520089659258381871213954670705525768636788312889546477248320262075711559245648220390317406641233012105789737438760256221422782461513647728076003955112642342955130823089275391329535663267452229999412298116392161640079410501156950352975250242199657656066707489884687972568334158941160295936349098858745385353962304700139923600560941295985760565500040909571149137712534469595102165780409141853189482180045866397791432874277945691719059010409988234995091437260839174817502947785449056941226429132548922705185548968152922323001258452608946938246454367152864772165855766793136905027046587845579755123843074347667828311838003251560973511401956841794055979269962797545813278853383927543140129321540980005312030853215377317136977962854005078898300157275245083856236716285369661523174897171700417067957959709380592665578341652538836550265736723929347436127560892095708659638139648076711450952006902724859611470530356267015636050208482945277647541177653581953175197574399937579479425811117112577594760559059317072422135520298765447136536423922327989641991163157082314546944768120231834022007587570537215384871095120907861569463712367513798342432575354085440690220610856873199741811051322268568995281138322680963678398302047745243830908246455098719781138471788472996800208549656661152169397164145932485312429533220797751657316727807603280579626386410045075816637558021800215139286557183720806786217755861039585104178063988632400882633292956038599679901478378868322221886051853884887607490851979343822703389129803418871262394983467624627111443070695587660301630906374671551136174069011499944047992776352229441196207461813276923361648447610532393569121776143686289633634706832530727604392114725004846780218643699998279933365211081923731806288167065560002293677413342797702156609496549189776321812290423811272797985081817747554563608423267352539672467015149522744398768045337439919230591372601137250019863472376901360467971729646746299467208351314050164101370665414593143669766057394831664043138356867757217320483695794924890959723918068202450402869056826738265209630886352850527574443267007091259153311238107631535432551482454097599841399915176024873362635929422114415996968535283007461027180576001209340490200301396949467877734703215504279012933056653951298779231080968432825442094973390302039188912323694706738110813013001923610944371450218893706732019086156051408183074689096842413317397785274953688684984623487242623847183492800153314931600228888606470764312893646398158746413634379482528837279102113705164521229505222716744060645449744605013965227608892434551584864402229777217210363015597471354373499900682462619323157637808188405656218025534682459326741168872134070915506807961736547814808084271382930466141514128106200726091117763920347368842347060631803499123725605671211857936869064938859800718132094517334838902882279920765590270898058435765360434783466320651190544977867174665205245007351161795715404681674737356900965530919703838304994154452892307866603149420987941125553906917384284857454149653897839619846861722988897883739409300807416391342617438076813694645087014470116080216923227537884758752312218086351701431631048285508995182409991738630745570353213872011975108409728249363806048478037163394669202806049805684497713094807141746420381349031652480175037937232971799023782398034099853535604262186985480432153991784726934577006970737456771699909014378913466384252657564370557804127381895341891223582925347788398055708093413399553034046481180005272866880504023583791775156997546848991307097244938534454097824073424980611038327805185067651249351307784102355879659252810779396715973684375322000541418254827278304438954823531963224034475397295641264174107877717783461703878860557023546694070994743465310162105227473637607154457670914307363540072860041898467818254689127913763922687995321845495808564888596664933012885297396209743725381639604016222798579304674129164789426196484934989153722421147453548231998211775015967395939963909431626988157580050301794087698281963070897430303166931031420698515856064352798409615405685510632481927511167057887387779718394122574942807189946257664832626474778097671896195951526999676539980547627219540998565306950806400823292873262162704261029485335070913148242717208226703295561241729768552905168537617867112588773330717075464560370812894958855177771962020474263659908021386951834732167258839215356244130572322974813095742696633646859015609549831768126571849290071056142331320871553302612680152513806054792877665595715771678970738313634182870492745540740208933071491919911175216331864438137116535556290554515823720832849197774883590331307228964585310361615869055876165606983911602768005491441927645412507001558774873035200508346904261181515669737188026950985691838345169532206469366442579144860750882795401985430993876023295622240743001426995121471602752794780396234005227517102926851326031792458222323135505516040596385431530209763300243877006675222968629171939783927952137228633846197762173114295331303260472585912151217495416697147101180919037299836241143139947198378009133291800156350205846060055217552043155852785000730800905673740042507164385933782473976024530359987131210927698697658219130639974170215807127219617810494185454801933129884780042944949118969993359645589252454703134109345964191265340397093619984280406843965688520735756525103009357902566484395300258591562483463600318555291314899875276405612467812081170525861970534016137093640278975463408880294466134373971679667531476035564152546641779600117877226791442777198499736935349938399785782751463780102054198285572019773543036079787715718836329270992762528712318821345912781280405199767566454782331260168156844105005862279356409389652958802396384077635038134996830055235329703655531694639607538095441996387126705768306557019952571630364954793093455665532803270410727706702853640101950835027512425518105291842834896237405104782023578999950560854625394939714753643328036032028632891082617549658597917846278218102502297650025682788562161117385278182410057848681818370988538648138942549091956498589466330485034354137470488734244784433294943662643964862635437716799035088449739975135426226556053794784694286717991801074823131884322140397390120086082922996377659733465358387450152181546876904058886564651334623279542741719178944807338044988542785149605959406662779459942967967635893895821746304337000064090796560974075149584929581340089148002960164661138267068243168402650177788230983419515511389101961220367997499372442401049164177252018459780084075903814866415798505910134414831363659084709646032416789307060673308227048145776362965987422813220134683826337786094520515354171092967828666196767933683072493611536072236321431406386853413603456811653488461295626460253967306479751467787011199875813920817984137200887077808766900136182533507983586153155569608182599906481719910645918277617259904774328241846129033467925220711632893086113262221082695133986813450928193573977534738972909526298386051387022114100397350001996654644512535091783219160199118782748894651548715961017261780749261920227951891392547022705163367415656930887738757457271070759919256248574496637589189982596291393139814887305929468507636650384598022341237517381816498693348665209076764139806527459420847614074097300718588614240742417208037544967760024945266845484657206594718347167633328220704817200287139555028413985168379099493484518245540093213817986870885364500726317111653552847396006757833256201083013820283829542302783827480313634102015314442735623722624897082784764978213851724925629075967623883044948575359838902767454143218536741050869748967585172678766100361539431740682496664862918750657477571340466388102742620265565868674728498171587820151804442498750117893923244913730340039085196481543928283902060792333743544628825433936910633435554854188828347998013329079246244012316985504228495186522116245396554414548197751845191341938984696482531982918237161487164528638440384422202245881374586870626048963495020536155915821629754059889633946473229579711276446132210928828217132513247611721685871485079663256009134934381850363984148918465727386561316601222137622159303204277808536682128680289265672240027472920244053520214403134545920814712803706231162853287810106980288428839472214969879813335676661083323954749373571555760758541820983827651136471561981325728478465375909493965355533776861814404022904655267968458345874627993871815356491170729656742749963484262746754158861190629280856949395553672710938551308375963148460449562152034101471981859956638178643031142738193099807732710521564301456889914372527581280336700459872689352665795892392696325518885797051177025879250061815508629738418064921622108995233344897321122372160919416216624060422368845472377169534533346610672386907939024882102342653768500613179006446647292645810671369988636370312271261370640821296099617713399133337523623749772782819589948154974774625121668224359552838874204903145323153137378615536952603034523735641078736005592082231463390529342758457560549262533725475927517489155326456449247540684908703455088604928665083215931580686463258571864260010754743082153986977815919828843432642666565263627407358924413559439094771170534713871619412808717332603793714416984882748143912012114987837745129659264689890014786972971222935450777922836672253697234181374142422449456657716978320888355481463106617633579347398939593263912210783492766846721331859175372103369516700036105741740724352433997849522307637408848855433671382585351651221053499345817456420345250827680793217943218368206369266508015580670228318520300204986388754361498702120681710248638145774759409034454386559483116126952381870190274389358970046213957017471633078438580208884603520609092852533621938706773423695326301529206851315438558198708116179613794557030862065125911400689342646845102394246668871650373782024713581488206011278504248551108504602435913378445501635710677387404219595356271849948967176868521207324851475902234994564841000578532932269959106574249290400647808421254283470061273192173533221468811550431210402133876925751913668604789611708131400374376703631493900704544988971810377269887028108694777933791279607215502247264514612412526450400385931206215910512817808587067490240402891270886205028316131693747102453424311376295458192236092203864594204398962334472350692626434960578218916997776953635487255121650981538556060285950646278244847433635679107571458573620228088167912961449426667959548677713146938128586300976597958086919298448507189818299345503733961803528982334303507984147863042041055816746663862702821305745810042777779794598042227393265484218023066965453565717167803547155480316577315578102438148728460173434414546376570803518141936544669409016954975987043649031311328289395472307962551149376678917201623996935740705273723247191164482004979955933104945631569129656893323948825892623388168655230166034746485695129747203165974253928827663772091671682752160906724948747344614556429328974122991327708483724980759774222239149600991973477548494384188771930714666363212910238749884227685388148616696477727881824642558090627617657017811358700840626083667861738398771130455366125869120497647226802833046349561441536584882604085621988563022549825329265197713143906882421169679458790714878601189230546618578111383051338548536207411999382199726792707762150475192232446261216646201782309507606071242961413749265911362150684232808814910120268869088056181758840508894649007864641937409314206718201944268792270480503248350437577326604937128157442810122094363894862926815337355736468094408160785734561885519487411612239318386282324818444141036747831512090686503363692121530319919365587025458996256076287897094795559544602109478710956768429874670073859649364332096333713566330269249816907146799689524594246134897855425867271934524604528026054102865048027177043704390935439906703983089584245121927584125748066832174804637660179785224309520992292823438563531594191003993203303733277787001845016660869135609617663087281664800689286736351784398283397643282992367859347760874230575658163613370863667011671913931389033791192306270914942731725530115441650414297402620973357414776464054634325440379377729095812934674536144210823246623070088917081417932196481228786180652239997469626206980717359851719737163372948622234895704824896974962606592165773644003632667191345884903112715711218111423767889556274296954152899851208953453672401039093201368890173220646094167554194531504751387242287762388122667618313519573954577088003015473078826949935266503338319262291328520773547880837046827944118879368502091392985164342167131469136706380085277869749603363241939459191639922047234973898620544155781002641707314429613835512474580711279460746767522288326117734885687718420651208324596128626010418518540103442678501112961016025816799615857350558153644352065917253507097878261983812049570474192149914046156641855399214097342519176372528111205988475862761394548917905277345853595816803291486529389645832404948858392671991671721414533373730948628839198563926194663158352985707642841098032554017993768020002163630004536861337563437608217903983500231274109401118187897008969180035085231894103860407660452466089641946373523351060618082236931042861330564303188739223785720236025480819529967444849155347348391366887667460670341526784663164835574536207512901923090465686292547793885139427073010026367558627781278588918649239681324511022449246319723192984820557896925820373152152615334985920929633224354285254935011432279602124214656312127470696386954689142773078430290388962165656031276728252548600324315687876631917073760341824067659568726404699812337739629062996641957358724946057313842300895042482863697919635582913695745163328943579627320219924664330749972024285303971352958423461198447666824376450321428624894294354067563725611697415536619694175731508627805927970648005744145247802771375612608886790211609111564094549384424577461982878920994020677549769824591957069992729830677552234836347441677454316949163602854701190249976679438167065471705700779459438173384604947780341638395863556840725528983324758189992353197491368851722455584218351134135181041991143343913128674244455900825167440861663466460297597854417953771149784456138438860467711958068205396983746027835634150592605198654051143559107895864816460108961968363688343189799486231541359713998768594017724433287362866745473423889221035103520376715870554000890142745185573425543902856156802348750960369012847000416714068498905289850241213179812331619270531341505596609343522272504504505890460882326563889063603949490410698809989448736145120351087742464540856377151979336549650046906102685108714657886538454687319738275572648379374658358034633045421981742409045844516583878725003775405362572325955893365887087035780791231315044233890707999311715632111229499120751194849650161530314755169536794877938522157447600519673923278129561719821499968404589315002356743902492432016196498772923113856591827469895368149971990326573383404399882354843259808474907044372046654603258879767650118927713215655350882357329526837091344769950131759183812674143664798000743925408738301334765950500367281348374277862979324135018563095327478128219935231766189503012911842057827504877929218716287545288505728129446508109564361243652485935619463385905691157160461459810684923839979966111862754558582558639953377913527891643324333765281319966156264546296919826926411628029894614321348917695700244945438394513500144355552573051539475399206680533752298147401779247089346079502809722725872570750005208414672844806134113296715333807604672252057224108888963889794710153612911576912025523584599420200424761555718401232668298133921627520140626801771900083568558888617229332244066785490815241514162231036010425371739248434171197652565236189565977956198591404835886564534050041795904983658882196307932025954170423596990580488723727374546459141305487973459558839228511053201189263801404807576574343044932397601584819108703682614560023558882844170667602057702951046413038811620962068343519659201988291725992415497282607735169210206153782733983157780422047609681680269728491239994024253675678184755473990500414847331135282704536867880053720644053880896760276163764018977026425368689582973749109619330193192372050159674565228055810257260524566527759677232917842844727988591780223715322480674536815387634130240901877942535283445523213604016217443806281794017725863611125349390350025299856157772628484794503537611480619349331505560474494070359783458297495087151278623440344955478294546946458955799305127057509061031554631298319882059764837195758926421604335575945912769965910758979712956253042041393143538219977326531115695623555213744253498867057378229676894556932124567778704009369396087362058822192740183397925885678372938815164851283834465589344021139493760860233130828510576026418528958615140518170597076978126896405118062280206368179404181489080109699166970433943504079861421162920770961915781678132061243335648104349772926795414864474104734178137591374227386582989985986128441796313103682875792784614625777137761710681645096593090786748700924893433064269398504585353611379267981089622276867808248425579932521320291359989109441236861966525980995369886370646024525644866492679664284380625006249667249976669399831586394639093039940664275861665814367178738015513913518558984003083074765346161082898938876264380660376716334939041980821465774845245330089635561811953161532897182709241141253332850463416532173033998234196211547351713391309657685834952504382691133287565150551503479779715764721830340435723813261577973131659691907833267882702044551737766211401373288485705819711128251892523182215031469326881249087362511683278158929990061126902075585041282844141402575543370220091555753955426912576883642631698891305721775060534622007256362718240666239452488952025786180609434490799759184025232390815222152376282348965484779583658159727859678047567876762026210399554450239074253489227963061520413145607162707263549656746549093513263663782142361562766334932927089383412592104493765951012399339771724899563984076279777025396175992313001481817937569387293636217979617996628169297764029939291821488804055317175898319572006952948461907553877020652160895522635325770340710899890016764070383407428087218488308198344735390331213456051373059738015795743363262147943792449308607087014520102339293715029688161079616809065017061329028934821105085889797616750807959297074279116922384337518343107721898045097525795601208863896185551502399425623857524210536625057140129686666756315911121668630256247682898988867613395029310547745734874607822088809344601068600122975633643484400948787908853646363001998639756426585323312981522331628510688277832783016410934570575066337201650137882445237068962382779076561630824804065787694915960887543540517362533656932558284210132047628612395176154059539575217997880155147928446858599141787664145015936153090578193551074601649400202760021588975298438248818195662366277314345987861889187499809349725746514260483943001173684976704521441747191213146966873252338008251577223160358453327209758453743094943547964912599114506871297946657607098814960138560476764203941612625973678512598811249555997104522050404048370265923989547880147748999556405443012495118583875162693893286410411061003965057833532512026044867364896750204708671082926754323422776084705129078257611257251765210609521114087703770713728624256903754463689019558706711797711028609346440413491342063869795368264059011593440905199724842001835698279015749483587119815795915068533691517674105749174808873428129214360825639344308625581563648910086718176607758969421145597090098670533456240459747242555833687073031581908303925213068626409443080719793496445536374782714237414360862047777089162784350204698707472594079948468153363801262954469780343325781256117851288780794556203732587386788357017963665064640424290853111229511530044340890620636531296602434131233048539222003943816623986733978170187803678968755517550821147746606677672026665853345984257646599779334396651703875237568600630815420789110174124362955396286519908998814286208663967617903667837200370493628238645576858388502181981911529837709449298974332207345274713585537658539963686090429628050729339383784562361523648354708636533807486335938798850748325591087902379024124382219602612082105566678311077857347383969501317081930873069366911529906744433683168104754837434743406280635305839948031373712717157415684222153996678032274947759974607162738185680491405523346525217935176847138962311585938889527875057143492806690439661349714059828258861025811321217210913552881958831257408836853950879616121067077334222339240730281768555784916077824950404604869411254020161042777085682370514988918731257549802747994680957085414674890430047130326629071679560262665593607895254599529744740159770319906557354667654366727720496816177512657855582052114900041882322328698054737092436265965732190758048542655456422363713029430309009424006528024997828814433119779605684718650395549758405117821914145995397086807848723598132699763859845223621716419728394383398599484364012316587559775478319502544724536066518772041431111591462420481870315277344977120566596957964727193877501075230453828234135820955752887967941491912062073216661984931987238356551378417671216950315498015998219125715088234212782259293506350707875583696078351451162466240057119668700361135979838686022184376094895605101669415041097810098942256786978444265972967629730932722681805304854839281317867076521952600362306513351008282726704754832260069717503040637581745923954717864650837352338574292835179061092234203367257229899072697904676871325404938130186561574388172888444638892846484696940088639049586916542036786023886063037926624009320706361037218667102496223608676690454383003393781968673957583283985054995518727717606276807467797013937759045515990459639778226450694033970934802006039813322472667904276537830998111073971213607731418505227538419888652361990314642303990515595017238852971565843437965115178381249845910603976113032461737196219166396366259203690173359210473805447914132255207506959778088279594852129744568352705044632544336914894654635762726617525815746404418232097114046588758909532776968213002401908412863196257254819368633418944836246345515021776151797153316810917638348969538909203644651083022468250349872225739802811177414455032748579270216490798474470010229116342050511266533061739654438347681355953488197812772851548283057325923164522721080309377391274219389126707553884942521429590195377747112704422234025531249153519297680005880339947378430277117588615566272347934049358961822067461606435766502927889753287173206138496613405110755378418071489640789177052490452742336297390655108823950517369857773002503621070738290092588299229438418072509850054321023010543226994903090319729605500209021309401728165773785577995728808184301369176902779343213906360392304746737738396169561155022147563014872352891990721968694854948452403148897636474437069342135338157206472072632809441863931409501841618879383257887127677372442570105078046771907810168189565243610508879276586054005835945920431835948559491254625453518578582035085536456609263294671458414092460757044109847679574218350492748006231348706033775216519120791844557316596266803491939080887274189612715682030613501109679836254086686554443019808967703926075890191986534678526976113565873749971069787887435768351132219140036466409384585454729325604247450612947956429179665413139943306104314294640428582445581706898576383546190449950693711140756275871455419323859682374197853340867402235527077522801857860931786912161510878833098943834428758513666735369778235659473273900913115592969977397889713205454746584930590603153197103333634742175196239569043028131166996548719543846208735920601633989705530481461458567289920872468655118921219948643869316816153904580774965619059006910836334430580078078180054521081445044431377103045111137652818569055882863912166596757438322687169712389167567974808895596793304127504489892442675833714845911482874537069728774791342604320658208613243756724357234410365940546923650937683403090206563642422911062366119389245050953565209209697842446767659438862897925411779177216849064025986086865217272386515784979349788559372491660238692323150390490541065110479929457210418200756975251761316734582993312831337032341170099891175997530048267022016665355590518376469838707348935804186682745860048564781207953505667498889641071358071578432878324607394898407737805768643642430141867210076992827676736802683533409382173613884777961258071172427245596407724294742270136045190426119186805044944646117703990814597217382753754034000258351933167201293946287185817024322912901102751683012295139857900907086960599784765352626525432109532812860239201419685268476161217498782209871094185191501662826767231267275506786072493394910918634375594769964844099513893975504290112756000422188398721861582941421228218739852011900931831146845715826878540178560112506402482591157001551421150962782359273826809629046639192756527970854257548714207143580450602972993241000575343806749640689289706529373033642973078829520824880760163686149852426672460013347304753398771844074467973520336022847708285261137938707578553498088376048152326051361981249608669615468875183759677213804612213004953341651948055773846508140888902663356517778062008613374869395950655529931457003227718456970350218195782995661716010654295216461657673297662194771307266207974916505171794058502942067418400573022300580002877740427512281492793895489892702158541834149566929344119635194828881534197714691164627062209085887251862356686517021225628961496496938461694973979505957496432036341249834785524738843964421993791758776690509034781153309635731294697638508938482771621644462016916762278273167908714139845283763744374673671750647829648854938040219452041585437933788599625673717610607707236883550954321466820590745747272196290863382062641114989871097260307515213310921409272346507518153246676451812016513662720625002922974334490307767376777720829038573939251246189760260254163568179085212968959273847629404387761980068977893546933591388120585737148193720812896279432081917727464993855213972431991918053571948183665838070860579703231824643389404363712890643409644499008912679088909558376458927765221085959733764685253057885408788670470519671315004278286780007260572426223195700971529179664801216840982767529522912815596013967901426523992818445323739912152837837403525063989700573800211160123245002495972518891212293265778502044084120721234674524050380296498637493137465534307841105730910148979888372698437178807565178705450912631138059939608406492418471247194400409712522444946261230358091644504948178769435749593720896019201471224911728244224339192303772512814558779304668442221130809834171895229240996311662331566120860990925847761985801603683221797936695926603119788734275639324294596572887609638451014779819024240844822972383576382510745348196102993654939086906999738413606679292629186439324573103351075295504576613653829336167691199999005420484215740733511297132003852674365255979965796642446291701914212722233277327228509844278008310644529816450338130696612736949571159354326715547491380385280727486540621105689347305922918592204775952739808650847801075701657017309984411507173423078850203501183606366333941676872756645398035635813752123451948181353232663946520845541507285496830402573103376087371464902751960806124049920124632644547701308489964287237776563273993314200638620848595845903060713600420368660998206958225805406919717080289677392917027064119304135796627293876755645088760734565480319195023643565683309209560271153744498568525119831668223173634032541103947840341077286779073970115324575771662620488796142897369222032577300050311120961858332693383393599551575990211706379035709794632849925769147239292115245643757109047839426175208294133984729782157658009324298459028182804970744845506899843453241824424346398496476310016290885938786801550747940662772041457034648715489061990580900446195149082895222266911413439782884870702336311918230230435379337127194098218749149677783335302512551069518435151009754536559118701340000780596547066086790598593711615179854795699085931154035448815672271155666850916447952383901497344317536895508321473204326758786380661307940200489344255900665834507391566547383936584627908068375518342705704404574359557695938859699302932941715079553460538794317415853757016504592181951883021772578271720877014904093072047301503158277982350044443704033425731295364275511352738335912128514574953087172440089611557857048304304332246656293659046968724842820016095800455163054420924143939909466148437377499911169570883431868996395297133497051566750088439557957504581149854110120187777599018054992172854878636309594516980242639457716636891206887005633981888851305910398562420619472602788326127333763114949172730580185925393241909422979595948647669800444350288203030669333350295013292189424264970695013238695068591800601773731804618888950485887988902210673741170259584848516247289640115433578131296620751611676158429783766235054947528219843920441171653696505960143736779418572148501596780708038869183388343487230492831404387720425345650309400808223857884087685198842960209308918469715259130676117573470492448941102884318368694086781282106614879229826497145567628779485530113668153893586345884401883411455902603512691730726067099508188848474383481962972968069641957168340253799316510625770645542838112117039706677201419616019566725505563981730993631259597158396088398327207019968734488703524835409020653624428820108080159547162225079571195337807799521417541272740809525937490479961817551701253635324404691744478239671389947089321167029008221198133931819761042630548435901336868307414968541536508831675659603482393078868484084931465251309061977360081744841895271345200606366293045654756152927389033502612908848569695754865735848746204811265410877268313132619434999211683189012099802726666232087988517148484690222422969902848314053654127471330385395311582714341562441674084411775250491115996177081478974334588104590333906520041711766487466806585615877216367907349876611695996637148603900527040522482881065991053581738170040505483269808074785062247124321150757326510565689384556306304114613290588136920489561272608152568866004940828050692789402670023610347396607720179970366570152074597418008853066580615113195545983530118753675667940393282312442175062587582255234498466365261560379625528155961413405308184920694617529485106295025779863925016213843427480216643869905066667860339620614897465367369510627458824473149438662039593496715976352629963605960831277024829485393163378854343120210723533506286313723330382853770691436375139274019312239850620880352457378492269258688714309685443445377441786346890906372821144883468976050537241797994076730668158215159104630229598655982079392798047118541745886823173151980892611340648480593274790824326357582404361347541495957177497235812263810848384759448357959324665507203798996932526820539487860116954620546556413995160146297910538860411439169190312558599783387349373131611046781483539845573647918545824798709979576145005453879085800269877826373439449659795942193243715138433271108587459768015295482012907823770059242358398152398281984426230758486163720142995274031024555351947623908336763495565894783174555135798250111807993414962766947804874176964499152692072522490361291186209143144568423780328058268622770809357717219214640882051512500654680985121648753377958383011446180554874119873326015663873318879970192120092990797083018690120247046568087769817713286508736783084783612644224035515608985396988060470623477974911855326828084943137519633715302561707192230215934362645414885766106014579694016639463775215198425824463497352213111819335182617033225240009257563938731735145555157770445118140199717998456933818685978712877645181677027180809873893940706957439513499182327437689791503054590225107093621173419684240477049804539810299489363469639498010041869887576123075114834748247200155777481136518732900703198144739276614314481418153610741164733625120620023630463768423152542018990303217762075314444418647162367188080921858075700226356677573818531302755595295574312686737150049268766417563462063373597572138624056438109707627696172706823178226201771744164563329500400940585113159794610338464239138857053370687832459581635004583850750613006003510300298972224570020855254015513651728175504208352757533188255063295223060905826843808771115722349925318671110820743535159064690865124637656417064441419533332554821988252631228725299842238589710614010852403905081320319926197618322110777483266245586676243300403770485652192234634530450809721217591100136865870488457246853692747009632819288618166618073201640359396367522384553410103211618872205585245990216005421167138196213826364363033510673527128932495913412784972388058609317637952926988462781567340831500030486055866328487308716926296343408213401863242515615776078971432368180020673895581063831824212444154700581399496080692215098667113276988215313098068461928783715534456363031414422480171663632765335117957623674225468327621023883744353033088294369782398364897641120605247913908898842518251694136561057296255454245762322165661040756653810403010520502067651760075126736322291582294455680537016864898935263241539402963469701252333314973488883516228848073373204714025132034116694984182182418640256064600110063912220921499524913346047442880767945708419601397939824952036488997244744505947982102777140464589829360695141607806701244534286985815127610843593622931454701684642545328042449760488469877931964852223156838525681073302793665859145841360659111442412039168752003557937687825853693875830472275529133186163512761448178028491181823911642130557621707602295567702673673990653132010136804949147261216894935928014804788863614854888711136821685580565138933263307772350007280470507304504418035885815399973269555942691911804309877749197884538058331552176394276100985735190542864619209385540577984808663730568234186704191779811950799917400598584513297172622934166882256536936071039171101377293760839803655494106663509108164054436444693462209937286462400050558609130672731073497947468355477231474416546432512328743615589375734081330297866882901200266939076535969056764595935987859259196126890861703161963950598023726659870189284579264626607082820031953460628309217153939880903950358374819154554227655966503401754239736412336636776040043120313600097631940514184884331584546603747331060301618740974063401218706380809797897613677565713062595984561211881369930128480555217894475501382667433589045070252360690147660688645336928684867102320748161748691297319822973237059454667243918540945204773548554691674397496557856273952258115353392974140222970950703570876616208925468434003724037542529677807530945885249549277500161601464893928782424519875146816536343742465927632457764873635628602602818095711315321951821216929720760054154750582766107899384947962632392874063611612097769065129973027348657568073103703242976806312983517866486371122930199763740109423712211293493570618738759293150997367584260279697381710659426447162296867009127573008000600450751544117278236066383552914594533140264189982903890059386314701859758385601050560429039736642003028607615518095545022332799763231378884696471331984939071639220850679228027774009394061863770873520861987028370490480068278025963027114813659428955990715602661410218818974866276522268891578307313935634558679385348163753097080408649752402824188817896330994289808723201812229299335978833509614697509890304825787069569215049215766371763226701396796863766682627656456692941408193571355520411095447967312881124997207523158350027632014035602581802528137306638840876902422216331147917257269986039622216120956284453479582095665867308059741049080122159855859231589070851641946484488292317081119634810571873179065911025999588213433934869085249656189930857234113832648175762160853628709511002840970955325365091303533166892845626188044810403803089857981454353802916246906086624494444313288978969620123413441738038546777737446233153494941005536109828555409700614421601699356936868918706638698600999610730430868139741800442837118372992982073081799202451543789341099844330461026648654319802009938912525602879426889986036562468984487700375520708158968884866473680170478045353841465525457544554297137122313904216232983807765478722562134850147954128596047546866780032791713692035035993987663244358862897404501430999411462052246000096839513465944650175488633628944411581962108874379096863434832428341579919233066728974825042879765595227331873450751136305931488877079560841917951213474051761183601688502395688598820020555479213357501541085135824806734989532463442993998630276666611171460582093404383989331935460051372652049171195955410805288441075727618466202773271435225746712657182956281205045546699067995344151484373799447361489270242598805682271849984205419838831276978112253738021464808151674475993892077774624587801431747186723690148504286048561271118081736130427835109219050039657547030869397265482187563844843931458094607098879150898728070393326193773545185865810780682996124260685580225857619989102157314249263518898458823211028884889925650324990981817087768599829325062021266949343652943168210895234391653884170538478519728623090409955939000963160227460793298900041946811581078605757227058692125944282658383058375021213080022031969000400328076401712423191022994792242828326214626809957644207120175215944893348298399447707237884373388167659879908938143430542528366032253423353968685393169669693135758150215762895643318702572120334652663787649986770961121096618948405360262718930227214673031958881975865441186154368549340635681813940667670029963573164689678689354708529089800744151052735596860179220966307057229801993374523994679216731914351542890663202996235309011231684579830236316617543465873090971203131039514876835793532573406146317048237041852848153245224899523266931198166087313004990488280439601940864295510099302133309678476584105544231485481822757211851799007520545931441925773686402970826931614560739730117505890190590310923308270933748830036947635385564041101581597432943486051272099648840086332366491121450929317901905202513505169085106258965151248997843670487713009102639151066239159847905218477004728449180319955122677692365710013563120397421283831722820978274812411614460257131636599656393751085074749566791186601963508347764781261782333703665979249011545756264121291759755549341068638917616783879275293986558334828934944930452579872553628662310249782227727524831090470979402424433805406806624845117194009400976251355548354955690032097057800558871839997169654789221248921487177270427318733482031596964460526935211425986790606889329446244791383810822411812004058784504449210418881793417025692922326120669164396271017017627532648707301146695146427639970565501467782350003699256383890844831836278373372263159770131347329117976524852615501526432377250302583443885310935642482308345385848088999908695762008120994331460937632160488249524129659066782934662641418705803501330163753792140835347218379046812824652990014996381761118437241461498877911019118358474956942242509582824778374747089190240325308679979210641675354672747224685454733741382097253768276522231858630389286052252555253829375080356570910048138054619194532007131619363020684785549907604630357650478947209635455496179512326955505772469767253340999554891333562068952130678081052605658848268155477850571580301893680702096820224660002530189718710285371763587604767619675045994168670516802227588607980279597884679986302164162974142581954290675030903933820257252463697693325924405045367590701101183145707933988485166618734974546913468598736186036806111826710392621228921122342044678107671541562330592074612537575634095314956328507130246606056885347206023315873302766150132811121429473179785880494216853175798181220305158897219857997303585492230864691999156113858151571198896138501037766324882280369427794704486262681774219760078739973258377127640887705408687554980260264351712684585225975899709247508676962191815867176586499704860951524589705297716752190488253299373763386608571043864659752645343229109255380938170456959216847121473962439456418579485601786757459055896521122712025928037110707387108251243973790725327465285419822343555460890420428060969895339138503385856474829935340201862301018605818237988103280260452224795974748412530948541959531278403941907989367415825287443863215698567338680489126981715238432002466718134213280321439163437994644637998855919579593343160606022621699605031656107363439496137743176171120529833254346018743635172245351714086080114155597099231033956413658149844859399603756114673792399288169217405349555900283096418835565225775976397479170205399401640916891369988555638430347457151153882977730848190295724662545224574580521251614460764173550536740796622829440118869528011021522072806280199616682151557493796007786557675734738839564018543414491762339242516213888098623937754327351004286012253800931180666633444836172294352752712402404419854722820652830521626411479127266262736981280723545376971085982672041091797309146330399006784652471599333588743458671930915299866297916995638557814581558818423929066789092869369589245155360159345807174955319080115113644870917935038484181552021076617316966437551437278212227443120569089935975180921484447393609799320526962254048812458998453657255574740362986547137258658333725757039763989652494588443602867566606978899628455226842439074260286802757871455407298128051525020639583853875932987895325111384675667151112343270944402534983358038554997332633540188582528037479885741298881104347056260466827832989544302764742797754742024442431682976126004677144248005426895258608221161855813744148958010082574724267283528048622422952447650035101991815300527817393969216510731063896669666122454720635933714769661480974182148020539832265604446775228753455457020053863430568344672986549538114654078823846540447885777535356919489959256415911525029633938327530532509938390843353402938502105694734492529435438343785530401384972700283291804520965074901282044707137949187378338795462135105176945735395853451004798321768557798455912439964297004229884318435574529998746985076274517050227419771899780798863448122253403541192994365283636896831530411064279173831626738331742826164710901524940332762656611785390882331982747741905241988705519310705145601971910532437789227782812844836337950682123219995384677081935212112580372931870074070637817361655068764922462655074405021964264375450757448040744453915860033941667724965044452521375514827877469632564382014111964571780614154849432395521173337935927852222838125587711682465691991705905011116995965025742687735660120149593195730230453298465494981755470275253602823035197440289402899082355251951030078213427138297948474607550017477842163112315499363842244054718263223932850829413753863292167942995746980312127524401478462498482295867007824262401883963907920369265953161842458861884814114765956082795067659168427704990876232138066506810520179127112413570027034455671309625997046347844414598308332703208794931320717513354893991314816967670371596360812966986835131832259900376962138980875265560703624612807463452374187581270902889764018470351712121076557753948348562527807951557158232119378479736606333519169612254510597445844109675760519996203808860494356784509178370811900925666568119173052127185113518505165045904869890119340781628871249778871692084237439211706444666565010687021172735954966937005611247574750424846989912032159821024081524014834151641252908333267325789087437438426987340914203417462700312129657514129348060778972471470806045805904750381762629838850872670369632866930850231023570151311351493687191002614086987584552150305369530852502292999473804462522778982305391602109057176836444575763586639665289834962016489304707660048271664040439660320540506805715471061177408548718763805837979224568998067241445583937425518470277384833105783460719753944817014300543316455121362897970568707416098440237440146508842283089283492136043495057396515920038562043034998040850959413800478923943708284514534985047355345612633789099439181712043106447712339443182087243352989305790597367553767983640398164189344673992867809620496815556005664686158849652188270178037675058544140610633905373614180394508603973744573347140224788492022807506042863217327305908551913954280181337298143382753272526922678834648292095992089407168628751330463111401284147565493800678092467174825542262661346039150536768315219595787154206396677322765871840642961122378114871716490887159802950352966899524013641347551345255341303698164383107363501088997399013511039226890278014473599645717300636247501739274350169303704598489775078033266189426366238240071952018732607919037778350813314674351579208923106232966755292347891271012372420384181099908122070088595808640931428930587714780835621183229559711247646253713144070996749005426952844957496104453086726344190046774232518189164231070004132187585806920916422427323425189944866472895938727926001367307140472196742881284546569526582870382245378378480034010168428202906208584627884598743448719235471497536940195173382997535274755971269627776736923159077384680099459392207776867557178592866867764070258480207490397840256597838698043470999659835644876033987603253792005042995909795851696650647259872417145739839355155301078785529620308201804078920188253340796670916637641213419707540585274455233069866943935124714435845725907483830016555110672040548708829442578228900795355990141389853205203931984997513087231263223778446064180014301982063877844233058504143478461452097892970336377968275151691171831056140691812860303739977509579667197966409576840619135923450845823127853315361956679851983946716847298961687988132597250537676481621426786606350757528371087164044012639302782637809642126433982155233003015514450256656070261395724943783992871964956638594181163931794568930716985457600406158866704182530848850349382176735425414938462996460886040163255608592708636117432909754636278179217831637608443370950653085382895405770236186003895858131276659149887062558550848808185987757392715638193771072369359677666988132103342603686512979935738191979769574123638641772694473876126517326077175989677143193640887787318255547610787348626477786537697984985285688156607462352665078058640493829312271233376578251622289426693138489028959714646910791536197716824878712664131846429011296563965972815825921031036820371693920345892337523092159419591292577461047596374479702176001274216060678265437181222992554915651954956739171236455786826662850954235862934812027940550134971652589456965385187907966066919537212274830477551884357699655477877068215496909076737521652987776405376882938548971621630096268561970276516120470687514494355543817311209897232358415167149687073991589918189287339150866487448019536056254454292303070120229486101278604216607458695884169868013996869883603009776229614196698845841039104358373629885951371472936253507179233852496394494263695959258429719201844822002532775914855216095946376901715415257894205713073822411140324738034241724390558337974069886706435790338720593414371474764081130727911180140468781396150606386593027006570050664802011768838132503335960003280364655472068826747548796273326110327050454594531234590609268620840052998003942452954663586407437383881469725582445125898669804143443267422426270909803104611736751456729487753813855536568387094214204741785188848647101024259399086033018548217587620914239307065787999958376710932172329166525215151076211635538623950978986493984876113747053840329495461120045521477920711815043944165458575098557552298135769611314020097889511942743894216197073559763112911124385741897290082509370921475041929014688582938094905886391001987437520516426906565519439592421588388211439840384857951993527621250470339483410816672892408463836433880917132633462036196341036877404772814966107688929986068635912465777939244511938117124493175025573161095358999342781067647875928288059116286707514040061289253850168843608897206365826799420504403837136375613416541028672949263205816129628958122572697039921715977794530619252058816694930328767699917344743650044254492133619191172243029524525502202363278995561508965411008418904381122923665279425017381646254926929287119487469752830264186135263910986529748392633415089392433326889153137848855126532168641111448242237600542268472278932466647072814640847281907052743074859287619840986914484052042875921998770277957284219985106520860310923829872538766546113401688286138677621237817576345270175101156137315856024025134654547443340468351590197203360415865931188873384864170185222057602742831552086803007205757632562941792607723865949469907254355212406775600610820429063086772442580304119810949809534506010376583747955662547401981223712488782001120324313130550803284371672335694206964831575407669752562936692680055860971664111410022776453006053763645161426622813835894334928692174846619272881700062704057639264489958885114193110761260651201158694335077304577437698018706134059835328659254865869245763395345782548218690608026293654325325868194686060190381406423675819307445391381842795423890026112443713855437164376263316479472449171130195050127606321703992022185556322435446142664236541373218783279284432643345029499626661500974325032905721758920191687774456109871100317554854208055768200850595690493928743108293836307989880105430066556774744670002463165735868372429629781922747304410919396076572171050636214476271501041001363837198406318645231214781092117684595674760975281840027570258948137042601910920816164703492827477304726772621586017764237845418070706604658502133611477982527814812108992902653994953949336913895007809164457228630225150466278416681887450675551793378764264140583732919212759783160682911164072681071356214207743989071392786105037937998765379451354846509360304241449969814148305564181385100738790900792012911841209484146268889874093007127327773224032967532307299206231919405199476538278932931655879072738042467639523770463769258565207320631312110211740392185200181839541723807423552397348018061125518218944047866265590020525985028126634779991115162367456376485397186190472812199961557148011840891045747228774680384391746211381255485775383374972822660770525840067818558988688115352556241036128581752612498286979550349504967971072075328922425405178100497613398389733320742464013492277047130190273528416939178753116571547360630042442564566094131388877673293787354697272067300211947258044732310525225474642887870816337671055596418341899626449853127775197484295412245626264647019818808043331221477828217277573172398752369772583689316416713737667749350952611999832825773855651004844375152254315895517453764864439698131698488531060196182021797776469916009566086870705389920607592461420554588892223590025393784667834838183129160136975463867506504689303370228841537443298087912286496098075929943017782215111306360948512812538069504750786384352344465729836474587842587796134109102508434391503773744045171382474404315142633221685535892510648028938175856439327324371931954152420608056605837366223265048842088512636852835178280710079511419820312487948320964841485699710451226763474948688187460143368807068057847869820550470239772023203455871954318666314853925689542752016849213892727600859980229778061428141881347061549394029142228914137274885551683909024946251321674349624124331120078269470312954589280294090080417804792692094807928862135726219842191902847368555949839022660237104446374987364167018272625807979252911445309563285467299068296441459375775385043926881796750075819949538984710778053195229826598108202490367195316330968141805380151306085458187140027215605638392915786001019040550623758566140386703775990085963208509887157830891133078632700106462060960864116220946037765782445483315587486592578872094656409733019261741292800344141056755525032024512908540816763690848190706308677952500790115824618241091689779201112727680461500277452085209295734720430081835183741417432674547855915148767829696100334461575623090100037652162008878541286325373218601398065902481407936360407793477244197245823730538031013388769664688537625562053949749953349165666626508663340015577989989354298141763180060812452942907649949081537361912416853937000362327182565331143882648839179341495237908749272881883187898043920520573537363016024690814961261114039758317262289380881351838691748427246676962828918379115302370183300329293741125777552258792000721562698727041884715607822279974927920553048642889884734046156903552754877046453974547523289708634749137373689029542647540357139838895420326317890270297371403928923809511844751218563488119851165693193857150682526795717833555136724217926959961669234202072510122422223554318442371178057060002406156796759980169671475936589837573980631484853894144505844159619567901842394602879081034348899605926816534039108555417001255551484596037053397682403277532912918566119674376653142268489567089122418009180865953395437776820833393542080941570027578688935986725820832185422839000284031357407613153747525259994033563243492059704105960067221100322297956544832229019839160971083158487955963236261400193213324194861209380262380865512733011596228966503253567197954009071462477159146689190986234235944179500651058175882424862745486844360795114573449522807660260994753985033181751904381929693778758237275318363044396651081629985263628957770230312937277390764236494034671216768194833796735958415873613995502119536259505711303113076741041077486332963390761852354340830604460000142367526292285480194981791956625051426081049099529962645121681481777105946614250484260653935129673852556081863712153147008823902843287590608618477994039087698760029256538887876758576586207750014591077382942398334286147729257494770134988084617316486203680258764778948208140535499795726702796478801358377091901856876100359361282483029679478911059267531229943054789699564943903987531169316190473613865988089965405634062383614576431553391458411681466400443009816955393549810225954865170728036828727271718440763928005065868076264011497476133363728813640102216532921929930366595274682612413510493705985319770332633546371154341617181443487505228783910620607631502967251954997567144027330753162871767441388101330259752992331628779918335335879349581180598999791839078810286022860570752898731648235347387992021423839732442268009540305902261494570174775756972060203241950383359165030000628916959851652067798543924916836645043345120573651141044541129226564059907912255444472084864139088225612141163886454381686670903764026956804080451147863440066145348099349088686654236859324845746127614064239617046767981658379073981029451735553637891563996744267977605491865248187968617596834636115990893496417419050375673680196214555853410232119399653586762308568364592541637054216753016371260054596061045305989276895820300487415749031973606343985316670980922813477892626524461443079322591747911246474740219286255972260236440191641422946688333291254259061580705175157077274608676090054877882063688504116712779991717372338787520522615271781624603530811379424659448770525131424081986254239380993762685430181576483804300170757336887039562146427798160536585864483500910611857738555974786175440493760801553713982428561229449031644971888937066359149552475913931138120724987240278754516809130293938577227619703103614212095887739760993835277377408692989571982857282401087607569549222952495320843293101450736821708052821487657524195272966697612968115155463103594014651863183757248148064262052274478156934624171674036354585110193361530097822980199127883358608646786478538753108324991059387405494819350468011603430931526841026143450609581268909677052253071323500917232884343856089998191500655442691373615623349822361667815635538847731792041756074364769630057646364596839817635031879904666970214974324349624987832237665041615318908153593131836847065827528197088087108021177664956793014088102967525790481841092844470958466886245760913959635902596284686846484826682790356705386533257771108364576363735185162152450257752820862470712966415918105166867238887848103017137492514047946706770663704247183326384948166116659130024829987439465819806636550250820647370569943596352312256807335318720095921549017193684805929984081819107205596947089863531312916142806282106042962196813141480766646482706007570956194673668671675384791612775899131419085990059501368540180921211870292810987188670353938354546253781135577383029082262848651131639668620542305576469637311785860344685497082931964594493148764148187537624331874820274712875892745888642590100711738265735488877526812928867450792800904943753095570529478073191530464167200279017096174754538851799518709913635526392894638868100593168539640754682238108009199018728627849374596498467147411753421228913313362088217685456017542226855830553637257165632829151841900509421546169113921950236652763242295064719275560532085379963348335285776811603467931197931864065989205914436359235050680517931020720601528036812846017056655129334094726154672366692947743469025016775871969597341828441666970266122340213292340045612449058756431650880480107448411405007260086676340332106010073948351325631526499439785755971465624568734110295928356433456948009014462898147298353588443721733647443773258861862213875528029944069479428502825813301057292367144248403733129003685669189083707738266971878127316133108324674271903778179557930540232149067959020841145051254770191499170124993097080186830898642486863403311699834919298866643555974902417886710789153859736292637070136127651735830965245811817977345287559804488153131839187130355617544980789070777720653032180018343620482005892748587244555582235504986868329712802761524967827194491553450111102659212581533812053619819260336247058444189229751544932462481209979604632037966927659487287666345139236282195482872302264451921012642525960962696872705506840488104643553013006148474320690587413897754972954056976760266641376553438021347118502222383615246109892364691859751776014004203565585263816924441709447815078217156245328256761641678001130881977221064300335982252863003593705309766838953062755847445074982691452873025546241793644490817767998333617904068520328975540965769058202889977138735274177528970893023891417284824495940566513888719525820992204490425222556722377382987582608233015590730330675291413004932289946585797857884930534325852270550533726205241628547901218022717131930810003142105491756520998042429414853228099113654697975712773391249502567531326256826118095699554009381984929647014033705221286075057460973223244004423940628128490541125713632081437487665991281784106247726071685245116385068834156111943176933281094113371267730636039139558566275113812374542366159197597473227026345056135210355140369829941947373152877101542203421364857951038322818388848782257725915598343329859052527164708254699089829715823537893412340705871023495201576368766075794695980535158761172964076030839007756047010544606716200693513850751294300721593558429811463219620052140867740036306720963179932228664691038337721468839091419038581819728648651647757786715623047397291141538996878027115546330641028528219116888304194723749274144316769750275781170231250978583802149455822786009255685486609850891726836816830681066501446879559508600448736366309505097867180303820399506949522737871096569751209699465215086643923867699390940371269668168315260498780657444611271517954228689509938488145116653064378166011977157698350626305854401560328057551738415122660077415171197530847959636751928466863485852638284662183909733334918966673035834135347252015544389683161808008134198726835150796037358976951138933927668263186274229728448169465031949480461980740884868366748407148072567371244371764707616009054295440506525717194927660076164194183666355354895907194488127770247159990172726696131149766321799578537550292527527224076798371863934998861975119450015937799953711045209728081861197404095203977988606273388037511021348678205492466125085491810036912188004994868599872524714308351153040705310537003244186989878704001584051155001409829311329070483484701220414695171106780888345726570761107020814993942221512508009904860334887542238311384617145843039704194644369971614574757201331898760506960061051201554832051186159733640196542530383168291806358090847382933022876117716071803118096866704662891096324697087991641160869634258068647287089650660259313442716618488246945885922364000198119619746696440030147822213064933586909048698334425975383972499576324189088628859664394935843519797795940282406533324522704155317934308953370187653088523365593525782889023433682659562431376967784704227689811151391517720068599678932610614494161710139189301125475783416074991255375083624305705439639235954916476839198838776803073315392805852442690965427213541474900934623015336222097713525468871617506893312750381778904166707165582222832261799207152911081465810134621221539895940699259089873817054054055338398531416436205759813057381108883024906997777585799282673288853657847069088907211695923028207404592119345375935367874962495686657715898476912290624584059980084396563042602428516080100628078492890775581649655947598398238295946743802318949662630464300580587603210994236022307644346438118672047448500898940295509048458258209136484092242410471932666359017097423006042887758729864143715372420725201773820355794134905740361385787601210659375658803420996883321153949794751612154587792440187093605653336243975959551191294270192456995847510903402087265895683825076889334264727805465026542414372310786036794863038799946724285690575727534481588338384786953189759890947070041541547441203827200360376280780728432584953819337939553704655148370309499885522567744943867481991886342439011473691390224484616273524057876830510239591552180802321656543759546780551460764565198468770255956544413007464976492588114415140815104853316316108971527030238465837749237947688933457389170826153542804245829137315273458330334772318485460278777431208107541951593994231910344411465548286621287546072461144157669659113050308100569221918986566566307091390892172616351194700359750054434722605143290332357280129241548084667537198486944707885313941776267231698528054120441839954816597019628689419565672654220414855915884321711397282232465964526755264773600618732797187249315059198425081135454440178392872550310397900718130695774712835183228297734621597042769182437647594802463321438100943422156573483237611964282435310209683758957687817974762417982652368912995788307996207205930750149907109205108584401417343588313463218248355654192256718952173460409588341448928426848120921439027334478390064497923844308414134665042537300546527370979738876846740419310152117672160310920955205991673180999583399859710905681453725428796950510224278516874161295955534138382121935747336824510188129438687496892301977556174126660905416142901095828781108995438948962861952386100895904119871725746556271674298909295633336360841166662308793005822386485185855642045989150947623655228264222666904249873441221415604527256025816625413408050098181693936599886765147555376960523482199740615323061643045505878356626766715379192488161298987920261968083165067373601169760844597168623754265551121476012919516876140627403119157117848676389535787851319520850700643936499518199485150837015548036805131264989793089557690449497910366739391133142058473742628056711344779787396709997956565904697237122283289802594694916823832024263415933253228807783900533883912015939287826700329249602054276337795972719552551822330904181346604234544052251923897167120900738129595693046806011602865153597770052067288577384393490482694422103964825159677215097309535635532578225908200699954624522953969674139619486719516564358906569142759055857468832255695208820319330305452664909590762661919536412936525200718356310758178310810089730376502939815450905307117736540720097776323885965040543016762273008000834903602844304836874320748709630117449330880966857242466142785815545400594303876212998476516039046776369803639094868710301960253063310825546611081507229071205153666539115859173444514077085955850253265950781266746060422772405452324000221168306215987281650531637521150576913146723257543993179778804100930376880957483359879657395349881736741758718095084574653007932585359392245099665380282223116643654220127841866304627154282567783707269729853658230395738618417261395118677943002587739454276868194855829213285522127577973379067864892734216555428268183564218212081084322562776057172717337333127467812590115379628696968470547961171575023555447384690264769693127667541354009906612907431104435027238452605093735985560767112761784972234126454345206302175544632479390038513957102326552434821092960822952839102833582437711933655971471681216799288049436326790987514417337696742423814355751314680871759039074900024181960887415305426957687699224731106919071687190852496381246743954693748533568752998571194150248647010681607453316547320561663113015382854571247963616094261074890906180021606964726541264553138354006644606681430147390099651431830381404513932034921082310951483269592469500732064331046480572771891913083128807778711300096245788799230696866725939898744706001505193912272628116310264155520628428303708275906680001864591177191583899519598788048932809163149142848886470871891170559456500782047092791027517441797568421713340167068684067127620617964978267547025331054107016287018967894483266742283920336818858567079828322600099873167365628906156923214207940072793606149977390858188155145945997322921348308342365596028595442182503646855270917614068070341010861044413783306490693058256619929823961869946212918850832725414907686536020176411606549030014942537033228627562724877689347365090221098093574121387112435730175956944564079229721787537663508573081528922698312984848880687399976576038044473042484594091993025334358698394761992080549893318799938315948266528979101904874166235873188167516775542563421571425010809728225708597399451724272425354279159517866963782193290843332277604876595349347542005707371733630443983410538390737458663971053187518853458944091244579826787803975043865985891015446595942655691200660097004859990322925894291450518269101969460677305352205342114115065077380437684871302174644338260450532829287471292215420809008624906294364037565345804519328710212780309658907937778405579047761624079476987056305212010930400726828848991110463059796153843106715453677488643179235295302471460904211208468939045937437881604347114397091887629796741527004760259083439114893726962293725275080207862816750219047222394093233289425302873322856050021283800995108832005544261113026491119643864965640897296658625417591479348455960432461935798223093280139903321203550836000861008822085770116509203984763176531087103750197862327861503926380925278599124339451087379791861746515795583727519735862578359374185011104942580550899247871477383916760495497362743606701902559408802507366689682528364347720629341619054237395351876385362274741163124608167739754040336662963547354876423045451715321465310993687978409897673097911394131936599789805766281560162437488526617098269106881250505282168932050749178084722766574227103473950975862573840871362698795107293694787884434871739695919841306198629178614804359904115536535863184204045114507211320976916283781295190382318376792888460743868049073257679508474262714183481561970552330113482178041744298417941951739125729153544721120143642377558729691135260860122179378293370854311030960991437477186716069552187993477223754343945237276452563978770173619152033025099365871823856362461202097716387833725124292725041364821755732681536476705124258449780698028704940899463598596927889588869257658121133477651877757109480639865669581272009120700590055917537167533854914535953323442847026567448836836562569096877155062020705506395506569468757211535218911135671421605583013969756807046489112400590253688855216872855382635763208239911840101811408634619987296405722838313397776144178140374783204903648925453688094502332697497794744531037467650640326458462388836707576801924264060130776498152356065533808483827736464109267556556224315940369074884055618714607152242140493201937383655225519993918896636680222165990430519442841718100511134098433960044156003596090786692734040156751110420829467587500579062714298024731061999158421947972193717436452294807095251740175153462045907492421711627212524140474162229021494473043680627170528393412347175152294941265969542036168507457099597826460912643459150293105951742249013876602330735145478502312418173013137351692925564515781973018504524418746770485637125449235441561115871560196387193410587307152146642907421676175228005032639606043636629129127548558634957669224050274338700141802137727386213884211827572917361156598591096711470849636509529995106920935388267324139258685102903211534293016945581565608863440522113591787039754610788615776270955123959550215547696904266091715676998328947986426637435659454452125139150132933848152837313044467138593254977470114252043539109124284481282912727824135195202254851223463919774226003632898888851166867476067022011693400279332199554548690701211587494177008504686615789374476275312603043372943347537130358838136619641581967772157957218192049954830827733793106994421177231995193487095246997799627497190871130970560392226732795799343332681262085061519520160034047016638051037158696364797177663163521758213435550381725678054640495366647726711021734175953616249077555567600257576784760931062821247102375864659424697304606600681273166468906251649620592317332782377445464860392786468154600073608773217265241358869296256931808215954593467886539987961391771029862611921154713174824806887037853493606396715298751636556329272624033405363094754133932284204530630113723479360151457445356426672073620266558585056784474298177776553601081920685968500287997928825608569043162824990698269162974717999501406224304766832536335714305199702246853318392493344088231016825005255525586647839950438878068554183142606328196884266302007457708836636305591955257049381762209986098874399973491448295579461783079147525554290540440592272811648409733870045637987135170643445982139227224305044274410847672491805980367952748088870857110574312034529406726757541516754213901463434436463330782554687786803774684220690098669517754776532175694017613302456407851795314621345283439725888568554020652786478074389624438791282455517878758146222528180436429104764200863231693455846484668995043787132858646687910705170705415000958257538536793435984709282379421814575885182530122363187111416885073039382828729947911752461041477156071856715566067959498847322516942410114892683123907402845699967634689687052114969751515386578859732241156918456003610405029096002455100328335028947025425338210874345462717101327505820119557446436971156314327455018524242724570055354001851315892245347338042882954737019396414473182497333192895423342313692641529589346744286483358281671086744854180516009261894805613999365093644042798971690032547540174768953768575843144641731106641711080798845506701406577199531902634216405795518884621254364558939620068779650433378069333775396019885892622937901999506533339205426770495221308388805751576284598685723556222033512264578888426969467745575078468568147928925994785389934447555453712870018601948047768083102664928304159479359985680592155644942491093726061153206055832843122349904684627983787617771187544580073093407209220821096648411325910848385087307901122534444467651055819908179952398374361990887902711814770655981992436983659227915308070788267827831166285299410657969216726492777908407867859057048172162999804394506543055510035675966237384470005563796994963335928333885637597165262097992662842094245660319416951753288379441737242051513748567665789752017680823656034488104341096947896050394168522820882446795016540583527070976364383743067081104239887585300197860685852540709807274514417634436291989153018246700722360635346199288059387978324592947260003755276273429599965316417972508493255271383196880533565917071829419819255295053143013860082588780293294581006205212972860628189567725570005378998056287472979352234387119297638910171483067312784189448894231311028984656669834860488167315574396229162336617897379028386343718216933436415919330292130281388337289833588423616763990666845875032610514541700673549748194367771059832801428221954353531760916327184306132785738445521665575512326426766398225539759685902808938546165517569933394634947187424124829584967255255634899786792199293141707891841979254021802683180719612073003831772946097124298228156668211951021038570339398000559017838549416036764464533528660872377300786612486345956670735423202657520248909381937799667080819861012542816645074305826639682655174129166476388339396467275301911961761336639397656792674164042475335411825784800253308193846429056858396505818075490680319207357344138313319452722180721209329159080854839487300361917022822895469941134502767354008876962470246816165492265558668781376743485480684093584214035049086673929141261849632892334328592907172285181121899771611043596282064233291321933880468293717145566878968150434412707357563144175808477847308898808172794958459461712840631394028684762567486310468067100534565125753186123332244683889344397038182886704942005734913219756614736097910278609507375440479170524025129733956653909359142715612804700615521722191064212370385234881733528523166393326023186147982945288456563959585709615165297540469959427889284484292268659051245905128946784809150422144442718347238554989884848952688934240609546349662676646894858918962771075257172691017400741956706370377057293939267240615476410956447134592392947367347728368878735990415582801303728852731780845116220676037552792364782157858853917952224186200632229194925393889265442827236717913539323538295158914009641736515537498180526934343031115645228235866916491387420453037822262897958443841889167342401401643663553212772408134091394189126681864509143996306599542884114480620325075695385890512460360737769795525196758888957652359687631821141500574737224516100036715721897784331124336663978710513557506374130176514823535622546019692693947118415256812677729125949840822871739808632802663687032561550364240292500330318535412154471097896317924880457834480186772801469993305684886349004513177105386797475102945298815265161646863512681962209303152145862068571775622759082181509916002309896111441111787416655378284643099097529677519101594765736728633296960993685824618000472764698818558731448364163331050708312588807251796023986888641310200726477333845145702715118801847691648782092698189680127514651181515804029231777857332767843618143204819275045835132035727869266629835397313464104301693525033756383321333261592732909398369116491113654330978192076763275312173354609096604734840668203926715484353674497923797139161809581607331197400244907012737446905605908553973173435310556418004307549296344987386419594556514648343777170171478767877504191064022052653066075660223126551471403296637265076476792163538552821071400120947830103183078754574233908489483468124213185295042624649524065094962064075508252909839788922822273155030249132383963264742745776977109405307304130497503523164825748930922508207567872747074947419205796876750503503215602306113966983485870652522236583526399752943440979985468085308256008510084539085846265157823502266828976288562717897049892591875802307591028657058548733904476195046899009889803871782762559914212920092244396189766880084061456960427623256030735128897416008523982585096691494191729501887480248627153529562168631790136356031822220924278132108861478506180348042187736687867075465230516082220637609527852860208101632452340963102465517801796101969530243462631670036762626143181758446331239057111809736080172967013316712898897426160975659575656817098330493388888299850576534649385201030064287837497529127208657273817560235983874098192346477951486004545697916708394042920789827599092981120599130564069563443137103913060258058247082231760488282110887529610709650391322107228762458600825530885826259962971992681573322596876529017752402744118880075736516091166165715338495802736621082567016761180767474674704512724710981914483182506536275280235073870773246680848200192243563602080410840119312716080946584534589761895044951750857010848059929594839332513291745789081327857622010012930770198278768737095283704085274059920583384510531684503125230679851089648574444665918277449606171970080022053026390865509874102141161542725875446816366079102156564212711958863219348774919700800597264150971689461476073353471512586994400251630830074767984985867673465285672469173505929768028119096221687244547006079098165074469750929112727190396434313024965558391815360066485346549281974531690659304667257872579940527637882442493677775295777398772906805847936000742721565626377607504643663349844832683334792862198314757230151176833905373936331025092300215268985703382588672661361888567636409625819634959261869777419652834998699399431320913569952710569545985782035890378283824291583516398763206931128493126714871565721218535658533876222259139375597717213285177656895206649082798190534017031851153395327687731595448379820136000150415433798163477704961300804416265776954896155769958871900532816220729983182216450847926103020643929069753430441559813884556727819826854116669636414525124293107614757840024485330433463016207208949284567990035296278645465003771436998368183606635268633811521651748749982365267845808704511694800925411575506983877176912755458749715881446091832023208096705008270085056663634652790497654308830457631433251272598886738655928912782576947398164092793970016647496873630130913380909648855343738241214766552535422538228202842232235668234447852556447225264570020664266152838440809162291752835132329523524749810126435140784601204994305792649206197937842002150785827494510718065807440877396211763082807586153295270236394857856034254916387714592574461847612941547903413748763388682544660520006704787268047368083342343189648711754028856180996266054678841266317603380140432456894870491674014719673436031110396072732522897727370131404391003771884440053156804934000992360072308152555140481618849534668468896215628417101143058378396943729890096360869397211567608481293617534220622039610855984536628704022844612114878124829486545734871810228052155840463740225004212811993902587398108498687704589299877659584206397282641241343176033197334806594469785562105605801908699262467938364197601975879611163363711327448672626108527028839344268665166201330685931439621069395030583540589007614847969850468625659138091338868204608117867606132700796272724713242398220322510458429160458254214566428065440953364511850748034615896478159441277992093611339166293490754427857374591648105945028414742270364066985410935768171134968182103180075292194339272487659409495155658241575395313568941771725829713987730087253673600650967156311033315196195683713748390193892278941967147551096797630061409621912556298442630880022908851915613118335267242385308766571096670679363793278990314112594017839404008592023510719424454748887123571550348963694789946702885556682517327489685689742596826885878723146341977142733106036699874046130203118103330039714286570435516310299991900079887161803914498485856990571901001853809268439072680622402272911400105359735490435249633230249282823359346535816628112243323342012008516963915514256729588809302515503069191417367619471594662849294518988628475452707847538950084032136087691197371909592185119652798600925405366263266956168641968561439778780132395780073916470715758766392395657539621188285002940505822292438631796720199521798342866021714443838586336646502244531037986828272884220620773530034678095966942271793711240045160112853602656228614505815836112073049270278237576431238563763787496103156490930166799291511638540890634743233570130932811683524221953804903757374526932179572497022309873170547510714274900230889590429682489152450799234087701662597986472959722374788645259684284297278303507788611687221379046189054111494413909960419208279738010601419161871350319288950025821014211781571734221341941666476821183866690181004830049715594949988990123972788060984421313331628617345477141673330309004571036478184508827579313847285213105584931272757135740830472536885040908141744534088993815234129439740685138935294841779765351158614338461758475398034649088683499473934565455662232100769441318545010164512254366026432143077485619690528569296363791896104526521783827495987334323382610827943669260924608403784433956771920074383473493046088219944567251184866965888471229843768572776595958304718884930445609540525027215381878717194171587186156621430167991913050460506945357587455940637081584661233548564415092821680358572193190414718272215033406745273209266761774690176773380886203912838738462371531908730070234741170376155554614953243018809975935432791493788888507334521005347024412688987327793561711791375152546945759507899280018442405914378846980586901953380355275410414434663788452029991693023350011668677105792041049621467427194765629617518390410433164755952116647560903180423895838951171630397635817508671519002402600424532067722719169970763293644634234936096298267812355892617341320316855995389024679853224713849413918076818058796130289713160964414694666681257142791393109063337559141620495272993941302281583838823801977954003474644161539050456847639883776189447951540980863375284581973925581193375311781690705038896770920994827649887605939890487501778417322135849612290586261082290801367761916445177099559325061993552385502322962613084729423173521707424464267542379611600280697030096010505082383765256891294785664284838960791283051897838535088584271079929588562929879296488025311827399186556539714059218768654121054766011859600359664860789117006257420172789723606118629675187980893421692528734536492399423251589679039396737492416934561838157602706322230144644529358314310421551945138542643125238949303699101121075206844418151808087886921584760991715721543261345697023467020555237003004592054584398224066491998585630991637885154494033875815863326935036262752975799099102261208212219215530378065740058271625419782479711175788698799561244813323093376019420557836240887928021346646140146416384291617833885423641439810920774496013074453059702289651626790173979446891323129623683509030861694915165895511963127373778703864274136828654512304910245979634310604285099286975090190744372025742692669868175914954338821283424240028632486511134192267280536051828105167189706722636053344500529879744491582501826370693142908498603730298893233010574745500055906295022315331434771655732790929704387627501093454996162685614045160247521400653177970450145070474009338926640854241531391358647246496710301477625942479707798801923661066199297302148271617784364179798932613249389220496782357729599227253040205653934965278815125299137982316305623054988895544754326166776053506629084519978856442249180156329410757649107634201591310993797726154565287599509807325896929945052259284212359480133783294937794293435160551222612924743696200161911549034496540470328369677141185927839259405083905035016590776250978562076886949973557186767624750237803028031848409137852967978568465892356601617708146551937847688740043615720718790676189914203631247588215667895472388022315559143106830557950225249474786383908607461938937726930736416791140137857870203349191214168475536723006114824777747895647353940636756566271737365673963168785089158994709572505001237793230365521782935252712961905843941914513513689581903130887164144237062043278983541976359038453996951421948783312572085805794159404147656985328858766738222890634574368942340468630689589351942763312459388174443243254961755801586773808347317159614398599374440401902750846735843937472343326264815739166685588869109588171062233924086817057570158340198809620743821570851073388192346296842471778822059057866639647337544518752886235593638926677324094518929037241945261285404656820674904617084039828159134790121713401003572886777751860522857736655858744696281163426981346874827411607086314960896878963808939480611323450076919649344169054288343346297800344810969207580720717086467624919519989423319691912905700865417894912923189285656316898420179918375372530157403883669295619594588256143543813353603898249298693744662037775207515104495352214456773319312064605929261793762788090811462776424845782153190087144832787294518815381436420862591954187057986767100629928427118575879269563154822853479872860120695112057086364404409674337589321696807274833681069906295155270168628920747455710639995195457887554803864798688393701620103106863706532148524597499920938375670800907551513471258373077584739441401454924129221390209409339041181823899440223326178545144395603450816473184462155445157876761661036614519314534669627505528853533781261089879103200833827844931829620272590121703372587109737834672327873884229526512397251043112488538865377183500374960247989841950084239863287844490281846722618023501757966669435920977582410986010577345960910223124316457459868576304004618999893003478168296046527169922170995024458075209625226461988911832831659340550385506449402858613410923456090736844816927042289153754665996644796121107246383533021249338336814999934047606240499597145816291903018410229985275490999505282516888485986106320842078261575332609412997333170002252202882920369638791676849618575196743368178226218278566014188538157018003831840294868268534497224875704940322355693844170293397994079121737375015222584027493066660947478880045353032944822820477058269043535628071338922759309881626167567621022632877985688769651721985949411148546648760395362943211427702386340078872419097981080173739051699841644486413039594617052192091721592154701784610625602444506616332170642014122397922240254825879006561130372628363962284377491319819091894150670284806914163772939558286375869364236296288199205866637165152571557949999292835609837998046827666843148401686868068390613806937724948332575334272566076105486649443332425588940016885386225942530052799105991222110178128157314404510221122903615315139435973020298688497883071530859044689953946934953723882979416678871571413438515066694618725149036887779511483775863049197734465037336293898849016806684102282400567743795169172092347372306515811800074779950182873322336194567542767415605832291007930214602794690679898384551622441071473485118445203412346346328596845814696388663175968125580443393526744668428553385568460652833481770128376393616903774995864394432222330922928637767233825779240534070290922026202214153319363139293451982516670542486201724324342848579920362163708305950316950608520034228632668336073721183643613473011481631908023790186633181226350093755118033950962785676192373371516393495513090838177190307941033678631099468223727090745755599048609410605315100370882543323319966363506791299365716632597972901980725156091834562161223663779644787136549295232895251360133265828619878264387829267150470307402769218028949174141232980726106985326963336074531688172081576188651491481576567253698558571120821715227191380560390746572931208134839056536877589912309629011298034443976643403380507328039893537464912753686484326266135236725647869571326769253211330532628102769860195987650273349063027783840061758527036992335237810734531957774224330370987327231694174078542042231450636400765622465094355133980052205028192921479716707609126365000590369581574968625107301051408278412265781900122959992689478016482822954738927821848877428210929568350300738669766864046489466927542403068254667244794371652790668193015902548032184874996013472811340637638352314482026693688607637925938874294214859679527395408150530448397821124894147207018960830317234825243969167422775891186535696968429273893858052169134033827517611535520430881450265716240980658747295682922124161845129493904417706702743540874692068597333780209586274878172547134570021253926698486210290997628653946366446689039788468097395680727765000632543042712573954755471464967484744427552148709553374821667340703364164567626017102507993580507807493884358903381778855396061186198537970870097637420641844332648634726930255065003201218042246557925981630773837123636021819494458782649786582577706173432989473428608887965341943810466577534856269508689685389427555738247770435610228986160744981542382979077447269106375063507576444823925352862286166095656122088401978848086654204000176818306835999105696032007075031622684958849018447934898833154694000227991562368472307567398549942746892406051894675951956748013576890298985119026648149974769222513521387491458785369908461596500437950023692378698829982212683039264564341296022567114250969834364654709915920749710172741818603796968401073496476725366978716376533002251340091409239843286523356826131885782117445332843457094709981684378730214013471514706796527345208250197783616862310211618190950639745189495896051248909129000082009546829620598261001252670495039335530326084997949151148021399194425733383137452558412407666785621642441190621938008647435795488406684881121123870354244638997225231732120863043377453377804480443797447483022143313580496026229798340261398759957731261010787414321696890068688226522401839233095361101919500847683282517921369115767796112916236287614273620374412533305284520964236316500954266210880008400053003174544897178844477877484095181457528787620836727871994462209621460386436385361472148182058838530681811898714781640738137491777588922744345929402370016584633881907150737874801400425960021543443130398802651700293437959125561060520014149131330937336017771817689865338045238002898178378405236015602924769613651845990366366228725314797854282213449776005395209949134061459184804346404253658356990217947819250580672409896600072288060572101219133623158379751335282530817765999919674877822857675227001845705319266185528313939684969160570476745793228844521343804542668473992841089658695583909798754435689319960597947489382738937484650276186533958871939848973239728767785486867154244501044614487401465977409872620377665758416477038670800010279053032149507031313483029264735049870136889986996186091386113172771388934004796149068156373710549092003416370300150039300213077821339153337762725290200594568716174304484060557944424316597522804753517373018005037090113542916863231332907900767042446589502315333526681394509143083800568403363841403998191267219500154001182235303033626319014300040985376534300523171206614543507100462631238404105334679511688862483569907058374959723767666398462552630793543352893135632809981662582696095548980072836517636236406822902384192163293877038566109341998973214836468492886204970995159859628123342744567593305187000429406395421408081563278614515321460394436573439540025090048490899156444341646167449585619094580973754482921968813431487244670837826712103451924734350479370888797555468720282558500403369472323027545143413815630269121895299024100282732101361894556587109776949469692801363949582640840439175893840021485665849142452198348351505364891176052175889419447779534643261510628376367079382577211153808280443823656259546197292569261548772794803040807108327987875511863091571712089421817054667160192654684648479726512575203591847575366553123478119083423817561399675413916525667738035699738914980393305052044181253853920915594841647962970659362783387325646757656151415661554178392984286640502728539409095347359570834322244439696801755462006311081666915770790831007118756178053176733789677802048759551097670798488122901560813359225865044208418065320147995815706440087605673775065443836151581619508904735645401494502698576238461799734300568186889562978656185482600439713041245247624221842435274364044695637046438705509191400585675694315377136226258054740361247601787420310891165359135496128365138010086025295976893122803308359830068576121964908274395530107602138778479115913549615607269569303274353825733510569391654481450577141409521961431144569060491224060296966927885988867807530027782841429796089293199671607534013290981267026354584427670824289361062522802567073401538478169872366024634328882988257928979585798014458465808347351570170142396944378313403895069660101782294403019173623735034841998646539632486324057945027333701380190392938429683057180694810568019110893428849169501843486772528417201882369023997142080874668164882030564588145542425510223792163891617174805706625395224648578485511344742293282274853783206603211916898150657491740617630954604330241789550414808180632230278233352828446874493980642045039205925521021002051561378879309085844907483894215728021662197077198304499939041239036212246393581259546234479548856903839913992864048049281694774559826196020805045368301432801693032081992622009482730049006948153270947117513920508537818747026535712302863186210649572609411363436756142448606725585328636413389211045745577257274107760666448389794576737873720987896299041743173307551451182517935198575060697499517075222269475734710961094380137083404542583175625267286852714759704860388151176063099296365390615955147343982998683956526076663581888310636755459020810541570539852589790949318734764263226900011022705289308814807250566041170074597750596582092016449159863988133932380259948837302942018558656739001585341731888079661217563139310029468984588727254976097633399488446480489113047024756240112827782961674778942129813744012446768878064330371338835866219719908659336379675704541726487077657873161957627181727386627579578618117637740845932239515361010999849457204143429886007163432306560092069318726255255172274179541371548059837205313761224460703144501697178520107979827744740113946828095781417377527543904365944805067744813392013891374064442038682840820892952101955098391943362786196830384881756955742436236363510855166342529265099611691110095881505978489938138178294835906145425981552005914900689319181102872956934947367418527343121804787579988348760714023142543280637864787568513285538242245995637965609712824065758448489087658661951681861363755202305285355694696293029599084232929288974852922473030500280454024716451232541149618107608612756022544745936111861025849445037922986283683064127169589242173392385502252910851738225386495528091206040456011548105082418119248138242404620871145708546672796718958856754381454950766346662369255626019785285038381330223513043256202270969253245823642331403769560787224969414604246111497920473821404057864391511183563928518201016542511041352873368983031139824892325484482273113615220424266008683097822458626440182426342438254961656124715325658793046825847566135867849650629028658593848023821712331601650801239603135721683353150205936082536923678282835964897005188731143700912829298667106385892572204916460080128292019567618002013942819234271522612991161641147836207347685062723842280313298505999065787114439995731107435612658359268583210768393137053940278006938421073678193991621480673546757577938512894458327277592336168088141614636638357770110281355821519157232913543584574121507378540492180514322114515849947136599305563961443559174506944103791291743360560095768610741357238314589761113438497140033766607251505108172932594479754698549078017514355065357899618912277956142499941547607923233003480661815902401446648331690896837790118999805997561368037921811363515860946123967187138518777832762439997242338956278360866644305621298808289896863649148149552327910127020490826716140503716655565663273967825086566278736484829446367124217880436059716788328282826301740296709811749515711039910840978796552396203692172737467492487529965658645459393201062714600346395284001047446042004049823247000059606964508164748517959735691017347176788965690290887635303978574216727037939188312670064179072138073176614003723470457602718584514250362569723620792824612691807557002766030966038353338594281718688740116788197672951875201875671674231664352143481283729643369749516334401362135527731739339506052074903347466295083972066216555915993235240758134386156964231888340028868418863346416536183638053208683596121985907648495765043837499308215641919721441769693033169022555316153236903600912062497174572408466585967808069212857545792686402836888920330706945811506668827484858712099177125299013308012804400365719503626017393317333721578992745559683467803095042009373164160782537680860196523301993881572035529789907561681805171490020374769090352044179405274502113832605014138720649595839390620826756539714614808970579600005507691206974566562102400534572414421646476934095680541411473574396157526607069552942338184922129685226725288793289724767957436935733187646296434538495733440089109140309960791219804276104148555732288253028476073512870554511264781997846616903081820157295152175212866052619259688936385550296236268595679614251806860216336707140421603150918289244313094712956309454702785444236862743411576600686462929281958410900717210614166166938170261435200073725856086900997113234603858427768461246282554281092042428387297023115959330530312655553594916101102626998370244563960917050218367007708653811175097222187871983260018524979973128078516408119181406382642639377728459212616550134271745712111104641760765609833061329229445328467745477341519433198371981368226808168981625984073371501668235859859276932317210089311936147677532204177582262189049387272549453982536235958403557908454537999386503095224269413270408259745832480598601209758817951824288474359479357320698009760485278708002191053009247905240380288225842521188795969530081428967615335148387584007296793094630738137925280046575415891309786036464368106267642215425217353737402818560737996192415132381425991422475060342306904947430876941811073951045307387696282745035558019869939502191018525431242512574986615781160653160420995615457566822805204929126820882835790890732757316254066526494021411738762335651655845367458258545751713750416085988975600741043187136327166559556189849126815161220105377033143833862047039271959582706409002600960149612506296262557774533502536184861086978112821488857763648694349988118114526327740912614998086419141456190788146978996547637462923604686950968310579923294542091266341651263992652489529304573266738335476568656352945723392892061951554820259130042751000383282903087861349604066521829897678623896856702152072193280804803322890116176850976677046922295713482287050199454715412565008124873295883855882708450683611059733490207260523393067625463949352027870064016590924430739090142010627948137413621107484832091695483318365487516693147925422543113143594215221373949237469776260235837901182579162852500458284665095812630645650378916438777720864015108721494985199749548545423571593288611988956059852585923239198301745199231855250018446466295697098269880036593997428007848518146633264458827969152444022746299536215430490909282530435588824904925474234266444815734502544778196868358771350982293533144443049132598829961867391273888441739511419559380098510895461547979831913288652210629016328974272025622187327542013162946124892131156066178473698334747255183132254440694066461476011555859820621054261048549150924458869687240517870385478948795153748389978433289870532950433067072872247222977599183016265909319207712217626371397797559953839021711755407357707500723669377126469936168224814165964225242736573744647912377048225964635690379588755909765905976329812682150371193798555906626578252168610321332490042507573727615275130166705120283590728486444663528758433832950875317374001384444803663709432372648231864345447936022365462146111133986910966228725450056188107178054019264594577591875185000326222712536777549911663652910172952919042355859817479564331035114670836548385187645119881237449080470462621123442471105941773985047217214563310656006236525620786604084195418067862525437891142239251193126250718915737883507773433515395651082378356926250913576604708685413926477663543242463640855917814110563233554235991339911477971648853529054512126559788522530139957832991773686191225037772741293042385826408397545514117828685409842601617975731254352132030452491111222974641119511727668909985648973630008357265272371837842462032265543548798229980276850757927116473739312817581163726446215810828198870244847808381540822606274985255062946435364169975403844672398377337750061576727865064968073970800681456822994658139659600315140484289193136150822250042804149083726424940898042073784298326031262933714916182381191810450064693205176448177532790596368684659692618790792330457564147310361364861509339580950716451437184831238500861080864485140762828821363443670152250780121950865232893584260178671023889215261825399824540506343085750970078682176455563925071556448469016010746275890139852028789773035853146892891122367232044492099771101121474487051592311586107295545949609228131617374757470301437961197221365680201170068880879924044346479529502006023415677346154574281181257808847640915280128023267830211535065080881664822737670197769846820055762908616439911250179334535817354789561512560749090582325890555260708749327332983285824369537194880110290287655272936060787741913866176016808443880870845736071041303557382698296815307876256615136995482917695771136150332233664719560416901526217242863157088759605930585122438588019328208426064262931533500041627102516962330658379456925218285554085668670650446423126934478619119693195635190877819658814189940548960264975625778682752908378886487053138150061042236671864027490901405679853000382024267238489485550628462147645062862373762013188296927326843727288697673053901407005951178734308180603599739705256612618440055960050673901170889236382719913405571658112636457018592919831629473410400119578195910668151351614955175941335578273915991712703008888712130262541360943314989255238695822926570211944654670760915167439853767332848786434226054331346429754037790677577847430950519682607790283305450343049928831512738889786172103800810599609078093298930461652428984345098503510822415185869635505887415832301076737587894173343648607385163851523924418007070844267286223392196222517442660822518037273660172336862283590128396277923592468830088905292167511698112422143865011901018547812735427661349428859155350446499345232211077955656553946006432475283349294767349648188233131281098870843573896647821223962623952965038554013308476769391135088086085236477380901201843650847601509568588897386535287964898934118490040536681240670064265357449158735946211606504769850071149897476106845285822269754078669151729364090134872547349782868318889151097579271185176172172154190410514254810943891271193473408016124428765539569399311999286474491173405767580303044589043347951787823604417895161964255175498983060443981076263386341654243737349222559994749744629376112066065561541445489612978497865189962589121709225716939397181952528540314573328863073214197099172126199416550381254630370636060944690433308284576230663696735983235444275466904331885640583825016958022148776649420167675506105341798681944812191582358292541174662557057334738278932383523082138220737346891939314339394972822961021908951008209738532204371545320133423720489281345623600862206945968269712128159316635966758310291618954653105273674998213001087331554127066148450694937868081218885516278165642741506650150084352555456085440194320971800225250751767556575008258948951881452379026134535042278534211382946866424041238229923303264148921587111772762118304573026316336600042161437890349452754349922328039669322290643980929040731872150402378444331821330505098448801870755915574458625800059293519452854038106334114530326603737935759459346847721502789556632831210303621621249648176846936223899454180372480194996118724639624889604893186979997239057547262504748567503872771094536005935145294306334195488888441757698827802214274328551936538943892116662040798677550640373029059093088662244896210333612685220492786865743235991128308114579932098389200100496149986732080817405635307743135203467409641208555124117934552315503481027465207866780428177607275475917562679326873680001785107338367193035164859277051001908636208696608064432022469124334120867359771847302180556499935201870830529738082695892843778543442901415657531396392361221225506634356094023024952930080287842971376428160882746758404169742350838444517570145453828393653336554050951902681851159471615245769923506519263128648413495118229324089004534501975724644504058332347635006108421589811412964506689251227252928236992270008643550946480731648420612967117019682862244536823551900065472053735049489744728226792484078703922171275996464193265791367416614999929917095714163359177876731065028732052664724324812744747776067253006513685675717020841407350825115529040587039296035149666617617754634395594609131608774729185230805290392012820814162099772831026170823792316973324222095036771193892677826044933573224048914497729187672081366067474285649888544349871927089778649285865271510628340548704469580071246992617364198382130677088242325519755792956950306783501087567746795021068753022329099473422308934347469755027860327036372461515298797473881864824781197993837940933431096757384274686011292860706882541806903899056896419464629976747256586561040520916544597951872513811247660321054800676824860307619633737640070948194300016488467622168169555543331954424651617880927228741573456203285597307044258476009241105001358748286752214024717672416264450205484011390287981333846099877999788262621209952131168208628974416610323257953954625200651017287156132912644412370062464485884091958864353322357836627485125643022627446215973797054742546246741325699938534512280068171487208431630360508272195798188482816824992129544764437486313953551512843631750579091932686715433815188161145889643633440312674783947891827189577542969140100377659959319650756905536448686865463258692587230067033785875335406908107645810732689831393812468962075234775353878235732841687152488366662411753886867302644337972529892584745842594519468212245495237570910996932451623095257000915977640769704410007051112413592576077580815856211706310207277372886110007149861943909369010316710919717428161941938023612685627943344873626760465645538273952288413010340394850578638656890969732386320790968845022819148665919433927764420828402250157582080211211974694663664766328066066621522298174858354831914095513399473890318761545166395840307549185396423567658798776680294976532271425880806188738702912995202161051514975085477267982416273091397886530629561270320498264450915133829119953138019386779167379041401759504386937528002389611868520716486499289380375141654276948765886912146808589202490037256615432814564717377824690240837447443117172498207046816187061884599478594341942658425605698367545487475861978161700064353515118411008425747423030424178091844808276238352193857715785101536854478471296194296478591348020998631536729599773246107598139025931230121628596981544337201829658104064232378375353643421986097712411007416527548158551127267170670245973288101837690781230426327672498083235350229934027601192198717362089051358793394603814653167957682090799861100044834931767388423333736823580497347128649413566583781682766252391522368272680761822350582811932012147617010940446009183552209763610484838418105373578922366547654085260415339812160657864781000744421769540642943288783107996724181615582908646725269168164477359639213661005789849990733384122395021724260966605765902807975542783517000142533193447568119815610529432251200063558659420442070601698985982664160691583991596653200007926495394174878208373308667709826074026380502457452293633483082135388124993404643778968178355779086424154193293988489904547540684796614814129898563553598763011436858388726112980746353210110183624951949971727862523618933094617978813251238998140503835466479937656504794507116533428844762315744995441985390045991727997212655944583851199106894771070691417900936915671232911586510578479788412497092350245342421106542477667727682349113676876671347057056878239921311256623924892010476478250729452286848791065467831442989482147172270685773419589815788713137198295754686259330655172022567187210422334300471950200555249264690744581399295610546189676504940810153450353934108203392703919234698309007185371408026925488146929462463900355591501258948247861185890648850306979576609096802570223260266137621495858906389849068938992717154575143711864202626075297547229744600085253800784899271275927671174768860955844722962614200108838100913104836720615050136476495081346488147169237224327667397934480689596044839214525696352500692895442828517498446854103700882786810297617719508218584297358696943132753370492161491678856175145938186476352512803252644035128771546318718367854319630995016437918969102208780971795341095661038778610077358391001163103977272408086952024899885844747043276477456055593203088522684256970921116160056894436186775669750408832145258917450060315354224527614050884422042264202145587277448438651096088699171012044171872141759182281259770694754002969900627337530473940357951898842763744617288250870462051254687825925710207111059650282249949291364573678016726428369604994303622191983980628556610754725698677792523218814127390128622822863497808009482245503618737199914508481615304331369732046687202773198622483568714297573903087888070488308350787793250279402725738800092578771351253256249445850441165845884801987856192168485672378885672026560733432773719837958668073443508439262271051293843744695077448437068311276899282134754869795120697331807712382823355300712169622227714707482675531875709427267670590040728138663537099032242093159008781810432973373051605242349012206663313533093071218031270516749617639634394178400446926320734793256192898049701532027299613686490061253878739563353955982532719057607077093469293603707129229003332399935990114067370314854159237682076724789780883729109896806354264557808534984401691837891479846283479643584716483750260506875284347955067637392765482790619804194312962907278080735205312828612081545363688365999986385060814056487171033808349492239609370141289773660417577931874227391409059523345208264727923886993334095094291560892289631484755529863322814425942462967971448203715711183389296872736583903401316154837566322281214319770707804874768545693439880847203580743126692726110114845091156374974458669841535074886680460638691575989567839174136863527929393161991777510546921297777486638897835543445768700939005769655112914988026372190660355553998405812252225190652630035955306949535583831645362056960065251793869875265096104351169801913407834551574070292273318974648255448172426562078725576410487922269866684795242723601670262633471668066421102577441453988853212234455769952687895006193578436427974188822493618604085975336435302690480526487809684791152702434232877793920754733098754153751585125787706855816857047170921428039324337516456682502401644377536556155601041265619977293073330736826444347701133906642033853453296871237844884993078955645345401204686317014933667338419588256410221321480040899636613559339359139683887316937399582117886426715297213964006232875657726852361835795357950808716568138130904748976045079692291102541020184570576226153022158642585375125765556504054570851237601129954454875728604628144606824389402185425392536344872018194166325402222092782140261644152242711009433337999381260846936574026671836289003570772369955261003624849402735817362454002087969680508352524480791688469411214552721044974761492562640621671447225130843713107495886635692921534263190228072556152157339959080389316220383186700610362542254364457889196703215393856405586465214466428851652446418309401244789814496651830689525776137817137525013100100343524012940490543229398910242396975511265464944651053132071664106058659598044342562562289724086985402935036472630051637006435140348624762321214156838106510984130381346203945310212727245124201779346682941604196281898382223836368664821112297513052809838880726277119463372091834715374120978668075682442628118312040227360695945907837254408824315858046532780671422800863934478718578510644496372143044814778957438294386913463941230552856830205934354394359450307385196435975590949281347729824297470202694072141233563238184368683349887241925000943931295761453404860484012044891978469274941198101984261725735812230883789090361168824415731406752015964701565639621351676752570016717570719371819791703685658643300495026038736739556254953784230553513660331014665861170778748856272426099841265535183698180185355930349896056476316583679793904343897879927742700190154153719182714646515036966464073292862519951925918771860693679155097183899950171275852892174204804802419268025454795169762173303111858946372368978123662712697252160147858456745858784782871440826504028879329521997216299530005180048821420548453191214444871380539829664573253373617895720187633965750658081807169592997176866861349395553058950299002834399114923598576530594678655220112267814223519995995295800707459161006456899824685921123963257580075456245540160628114245455916707262995260067618215050618688818165344987225338450990998125534647488873253937667249637769816301751745643478676815580859573627678092372609512947681665948956639515491375943042777003709233816508363097465137647048637718376021028153151518576853127553867904704870968766661300699934487628091994625660570296131776135897270353379469572234855292463147873295415838868172397622470075320659467649379274848974115176820304933797740780512670629133732289616227309894964550611079013244631220955589893478435244560754542451073619603556166141246082774370896905160935618039200503222408072281724084937539401559404796406698324558198926858488466158445463148675359153625009549861202649070864971248332213951452909683911941953219643219420308540577264691292421729161764300088905875704094653488790393873099710645022550965826226694978305304576777513227268287749016293690422115632170045063222218712996782751021036680006018396324490260596282171228963767095228696716384482030869923959480317938390836526334259377731311032639292440550472576859469599879101950422111031760645244718687407653334727527955541717882679941821006665751922000274952638835904114470045475195246565229963469713313979733027843140121067040225182706309040724882828059348482336109699541732821402451849564719047466127412918491681518241581197486943357219267119963171134225425358845256592803441881697587808840556554675933276929415485897028092540522343205175835094240192482363094896745253183589506154297086231269341256540175017879959711802917619304596739065235623968484326880674424236481786313710609598463609350454928933464273551369950557518682625443017703419298652391963479907053516395038853472878446650821051802798430463230081276238715377272507132473681866712027892698698203018355741930390910651633760194688488635297378417358106024514964088589859361911617008199708138006127489133752246128404567288994779342168873185691007311056546823031245619107206788843603889863764195738072175632640079695319519250646876490543833792290280755327912020603190100636348979079601427795713036530886590159208831525387542665978180476590020118196551266074177075794327702145510665199569203194678429699531681184394577196645893575623336056417089036702338308368581173258563074126667295105456975822828792236854542289782358498439743172755663931180411390778843572929124137256361717262893581345435153765679687228688177610257758124681641785557344485662414475615972541184541517868447586299970273868182397144092288339256474307897296699907382834954710301068588621535896521611131642848871156280874289488925453946990430783861326854543486351639901949693545145160439992853302193945764337314930881854734080836335109603071436850884832844852815206185267654738031069219023878455249519042381628115264924998188953523806511761729632966047750997375308317369747906429523849258417669275690742032818953932736928051880743136069262317751816137165938961113182934164923485742726596981480363419168687541701286547752931920543274900140735531833850330360813211071891190666015140808098757551897674649209673835339967558039513273120628809445731477617721108074359277738357472753898423272296662271707000556744534748793432498738997211299587358326591675043327897323210810476836837451308490013011816510295151297713461296976223796401517241576444663373448098934289605957066291550042492585075315654194252584926573864167292039569895653729934993217409731265270386527190050005929629449288762331464146543092743793759565970225893272804075399552056592796603013221055946209682112845656664051545523458827540353919444349493680460428759425268081314865069824261678262406225879005446161052668457382096399677707642754486115278475071271500536723919516562902759987781573643084312180039756851934773167378814859433674383608067460762780431855503153891213909050325775152231545076497445704341169561743286897579834144104159058215383647407582997759611486074807603274697792898162600905732547846976251899602332964141727580251458108578591217785705894066579539251759494848512622064963084639090336157623869063320450743082493546311509447219085629092138407021085163303632909966611708349361362210859235702829505048157368136663921237039285921318740808711057567607186247739887181757362594442143460159298064270395086394067629889776132855908754647584005093593388866200161732235750568025861927143972433583471154568933813179224705975858982652087638708545708242658137450014048411580340367010239642827174096967552694808226549617575645179018126328815197463434059803543459949911607880635671305912942724688742984660303806284408418727644787738160559726925457458629107644192155892211836600694358667897486910576360181944075227262756378011443340089989043960987293597022613638935195117955835583143724761824760598949281796953692069021321477185802249529817816678208059987079038532039490913003002648782375133679067574630300893340408113086830350142521676676196452371147560818714553195412758878732117690950222981580977890583251381814307986624099992486293780059556668368552284419559150236702589866291984033993414123837188932054131687570982283487407497117195426374740378372519875183528516960945764536282683277615347439712082326701167137405409212200244184311574812895367047653478194093782587431410314884962398823944485505278288787711460462092607744737513155434262230048326261870071877583649881566754019391792674513850296871589824406832682343965634770287716474779784899697056422012779846438063243096398149647342230702983527219875843199680011141883159642713517245098652474824773576429834618494586061494550683756525266020068145350544737338399704522579686986853629677896086500600333100893648587900128370591708085160829587443425511312642980724129172162263155769296744949702792538115883706646727785976262327004298340908762439806425728367604117357189720368471931451684339752217205297394736637856279835561894170926999328305070120497153949651975749154700008745782764051447740737747428804052862925404332067187768796818862672206992400956747657374447349380551310450505030321837321134185977385718827825907107825449830050068312278209989172117773115272720253041337618443369057676131980436740801007795975941247460191607401315659907830439634571362950138114681513900008283912042347853507579438042146870635373291958948475653360153414267813133990167032791081092885947833617889455948254851376632365941687909297903131623439447130424545157570697148706397140744377106211046723617131967367736390683027834040267022281977598677286960893417879279260550917915797692393868737105112953735791650285372746269490917664780704255427844303883765533627005976464750743962385137197140133741522733772834042255898044858828412531121912283704735678653545418277703582520419124568535800967110764013172110873932572071743594057731351232776174827646333703009302351415182911149737853157223771070192836060648606135866867088954809649882510908357309788024363426174789597254439551550047051275399195529971816668115395237214895705765630954266664952656088616848169765886536624226143611999458680999977620236862965911148189689940514323620376893400326258883815801070889912006324987649295243530875399899226216916467483102269238846558826424693674177303525164018036829966824864473780332546879555407338861394805933337177199540497038591599647160912922739360041020227299793877418500466396806876952348167013743972491022165515586906980676480034188868325674036712909426499702001609732475676350381383038582337384288243522370411111015881538112807130270303956886258432666445462803648372087306356604150858562606265136444396664583749639786505749418611700912467604714301789285055710463948828328490420356368243342804879137931818989801689597666590482748677779167984543184229192809933919779433872427272988492598829868220777143635842433915261825290776663016615735318743188192575050248981081843779496922102771386990377883632592519746295446065878579792895275245904907526047847434112107369868144396767701270102123883676075403731473594310175606062983560178614058920503214229802553801648154638800111525590662092094053436607917001168021217356184484273619525704373738022539716110341413230080758364411830631236342787894119354849403688082678605582529742771114805881812012645078040142866509821363768008781598883735375024022197890581535403305083514845787232401113689265580042273417646932192444023060265934637467636274121611515331361571290886628259513477391879279732724037525774829473060774929130921027715444327629915423833720556778567695649290562236382277021039632737704325988782174663374541854692173506658404466036670776172728015174746390866444289727555183349196930821382491697246110547595527819670901289673238183078444162640158757000877389296137150748776190808347138994114881139559245616579116573234691230820489015889391283951646914151866742067796851302525946836261525228584458987560740766623675138784648282720485583980779981114985283330664466044987274316092667384121214900206665164123930524580046374430473540110741283808599516567402149471680670117209554428904331137345695988945780472935018964183668164105552657272015153622811284666707289316697451815734817723051204984922851611581473038505099987146317951301361258391804398872586786088513262127728704544709984231396273083386194899105019337925997718502899059005505060512584952926807670216812409628199338187033598313486731322125458418430363818521420270314688710866125969359055514099844691096082350969136833649475489342792003533694950035471081645485177088193911072749279405918315910754316494577350287358203954071580715593847462973056775433525900794120535748422616243240118966999914630067727966246924979399918237882364774010839587012488167556040601626730380624827004926775524557384767683229375941067224485649115923902386665831993840137945805455105194829887879748413647863256114977930256890216846029238332937279504421317561990489742233384645224585179539630377231151361734310092359616572998025304403673762407126718218018969410416789467810453463351268508616773810408313085617090222681309003836553353576185603971453421007951955679116127638114498709471501507619856780245910427405835642577882595952524439909705387947433679333402930158171170116160487759870564420923308401273193557620287401621976357806738836550337384495249698510266954731928960937316252436130165031014560701042084745342347055401752049641887321296678158632316707061112633792736449923548009812786560884528825262511437278531852064725445643869518143378174149796900013782881545927184037512392244143596443394667641699034848426316325046528670608347714831313780882133507366463880737546155461654882123667754414269174065738261405412415096545683644204046445533178522035613471575682082708364341497818542102979783525081586018928140232464267311182815924316181899483955046287837777651008656141714871172897996526662240557454244984951192122718788918382199389230751906592049956100935110518797431577707405390183107016306473039662231820762072484981532358825995225015391525489654728419518787269301936370277857756073972947216769825026964900596893039090346774153597235879874340072856722140053356365803226054793853347125005898428515133863996196524246412530490498467860359761211563903707018977880287077350584203770380500628463399907055581670161098059033857136869928066410672145393027428047809782510554807258176402401607919629855305569604933517048127144718047118757376845295766184120384794661922962399975319207234910001870774890736741102199527563159034507132513441407866715043299142713467806085727976874181532217993058075714545810626198775848423949278512641070261433933973186094426389598601317436624935537023725626655592542861822340513922866507835690711740278072741463247447423201101952112499128478331556335281938516226127229597619939928696126209201872123688650307596475175485419791799716871801033733541320813751301748285575342291746371308952444689082421859914657493944805554638859699107853908176208256330427119069713739917200660200099734701948417324583487882840758540970849228590888885640472263666078395909158539758156001392441237493355102520381288816587419713282356168906581884393566717778709036669461334785774417145702693728156641760341928127245333013947007934943890484487846622346737723331759099669280721380886915763652011487883694008704811022479491573243151647866188494651362205364730329956812540830979544406119140111780383539934064644995781277678233609572967515278167084543404391812137947622226930546646321490395522009076669848661429351624887600648643517355932079752500791460519429667922735622972611647770121194066284296849404820757406598012659092509968933587740498430781833113798122601079489330284342174012208154662129376383605428971418218455884941293064430579912962134167975949813240562390672129142020801938252042300415547324243936558645195150418445258389995460080053151111519590485350661584582402229753077320166064948292923230475063264290401304504024492146129140213049798305264488980256766377529352584368647820875181565759875785512300469259289770339550656531429582903743554591861607924939438252954186902636813599996740091590081542774679219847616173079809467065105943298675047048019590184802737827403352715760885456379420835928221548501441331481614295407601978420045117557518914394671668811540076179024450288486661316162344345936275948455466425034666365911394031241389383623113797019360905468610365823341756420117387567848572294856331876586746045705339922914190647830030529710369224461712940042446705478394602027768168907224313303267214815607540811450795701370748448427039745285282466822557812501185010732027298255347675936553394964221042634064153864028019269380584684347002533496876937958470816292029019972688226625681374519846702168508709758547623452555298952402218097153127074906627254691089155224585313003381802623943499647959565251504594457320617546725427952099614616636133112575633852926484300812670858307256449584422682190964107612171333560027349564849926272844001492346421169616848079642803987677594908631072937251293921872555508378371015898397564703335538281556441550013390747233622279595404162151607691399252303355254997081890142654847868839718559242099707398571965101109936104169240520163200424068727408045226711122073848331355528494583423080857262984444238620889918183942483568199998037701623291234108319607898595241394745189230298459190884139562503134392227936956356045193540708976924059102983239207033291060435401383683774394707234024893787185108169105399448974022918438680106856951426519291131564755839797412441714897644616100258299435053816899772566023924779374935516053526833564050864449894438605402645282671281811112891091176907022619243144190318965699515044597887800198571061190818589438272341055483570911836922311410679412745317876488573865319948059196838821422580367099411535671290113295987762084831961395543731339698917823305750261509671553850153432034943281571586623398237378067011308431513287613715884548826057357912359133844109041370828141687623414767412256796859445886798229113906755423958212946048801511462762597529614496054899348069612739126217647303560683602514422286669685593343713641070715452276838226522156060634290540638145430147778241401634603759613392850384294593663223703240420147181099953798600257403801481619637097279782334813301693367250408271789461605735091423947143902245814234652160809523808041458293390562381888948116198422269497989676168742048431845996773311012984361942317863561559285529937417848459245359547203094360306441314728299819750184273388722683265735995680780134911384418391206900929423482467382566622902972482630237494561074175971449050092611427182109430095231135278749506022300601384608903317359804167301988061757385551670932367866182134324874337184621499948045774647626742093048325720948199525194505775050632846891386774206787275758449620644111003547797472655713868912709890367133342303455107356845330022513815388472899457962028740813660328474540771052891880319489529930579567819150538888568757919008581573916786981556313098201192351359196242774234938224229903003698376304110725208890159760213180157884926807846302507496714495571083615076389660891442502107981984390310999928506861095508251291748704058093770890326002173467192785868449983059477576398216703530942160832279549377561699919481943724318734005205473769926465419111207069896833129363967263931451169130466039161056968716418612575873016587767663892820926107392493869939500963616714900410317447343951093866238043757422474818269725361528381123517365585002865618968860549648881481813750792088003662573224263074480553472718222490360231649514274973692356252491744493604151601381344349375164331782184901726736001672571223869754284645688301789266426439493065428226212368727695461095774511421395457664088423193301034302312205517090503768735482594575426932411602085092316731234765048131233716831018503854167621071315298643005730133833540820149139391100169044131115960655138619951567870765785163127463688060727476954727268971857986439741901792460293858573593391052238083130368228050838585535833339209510421386503583766118456721703097698753968809136789113650115375518897920429947115806379996698316078055680578759924721721545535835477807365325740501328011707111997249492189187864179851275116114189144843902332118095781130393522794751970102446019393409203927454793616680817800521321625379406842761331558748767640384033297323851063858749085493950068613304681012093525813741387613669975226794241946654671506284282360159755578884330918664977491259652026351107383548282292951830675436784040359676564442775805394541117964109500264877800301314960056793617203162841721483839225471745906691099178906233693728559579294564466612553004208652943692042158258606412931427795625255445630018342175421023221044651441304688356480466991492325900315312061123606868387663777074359647613402227421524723889510959618091202053131598718588792016306555095759904587323062178069014324359484748599346513236070320420199142187356746366727463413111047703413297678692317754391847137300323057928862380257428486143687459262175775709620807128659020826914075466822419269866547026910228285075411298513277074318313314702525174897579773104902384353195366780508360382761743906897513521663980175212966404752761769145174688466846209025747324216742648280252275087105283713628109200721677238652565843274889100607629024007804345965579446810430290084395984913735053469022785032258024530459018998233547649623925804633416676018224171495119639095307032035575710498422217963905292208135579309930731294081492100001704513015720371996587313472286779156358404473405651682068307669831793628764897275781960884336186326509758140133531820180648251979356004525833857848365548389311428361321919072637727510637367712917068586845052101255732268670836102574736092404472062485508560979518694683756639892577910324274156985443678755901196867566291805833707336190755173847130295995625379477337090755006502845680485010752143921801189888633957289341234094756021837245422584772733893386217634624824921336524347115044037536174572960025502579200340681242861306162296281027613214549425321344092612863200872019176324316831807003277526470756231048451905947778671439797135817976730875958199882086196499141027797349893293448160544990636142871308289753358290438341270416491957373544111697727292685573647937625828427817202032040310115168317242375769577311623861696347911823723232823454893619593061614715593113264395051388222026310707892901762310002208247774627386858975956409624885412473713298598049708266445860838746328723267763998178467463054702257116608134505953443579893331297483488657990569996827507665232736012176331545696580517581243184053288855267892899755692483752210071428478432202572085020379859058691862489420848604185716534932828465983175590367189190085961634237873452320293007635879033306799199245943115877779396972261531697087772559583951326691754883624400111381844842199388207145400428705491197490414360051972259452657142717319606285456484205430734674235855551588569574470321341598349408068534563892695384269577427050349348530522178641043067246628685529677749132669838760555924626888630046076789980628275036297894409259101121733989840871344313453741128700910384795492726414198158194161015125846391665504106920253318587627667066323821424238575887973773050858734798313261299212764258945525377846902004444778161689293206726733111465874187930641492977717944508176936265920931036559236787641702052597136364496071814564016562935298460224986879136882170139564514949845428369073144379174662023315275005958686570955269312203029933204810224097910153967501328090379685335480041429474301603617050350348666542528315134486119595374935355643647712079431840647886744649502755031914076532866841636651401433706508198387032030672648859298167306981206650395850068484599195174278040477977767264662625809465876088747149469104192730405662824272451923485264090917095017388549180247342216837425078269439071155912288308103251575524157493916612719072790344814380913283890493183276664872385665943140506170303797934793279645996388795451302231164251440267162903915077286326684326859931931617573539051554145277734260296042931032232988290948844898905984299914303615547560301181097927271422522765039895687813598856249449783049260786190886118210594801778594251768707692658799673683027508022392178421354804670926386720483520899116372016525876549040810238611833452026645086575902598735642873501078268853038955477867737253326000439735594590667818467585452076845331298586400929428637739829270969279624109335868234608842632601361575163113708689237540761948958152354240444041168833462055922958148041117820265968872819587172600559700029145077260946334200376438166312154890366319291323374189006867015140502460888960834968907577286766256011847411181666679370597370995767435641003293062751194328938538424585365391345383872789528711206419845621563519210891412802843736053240840110774328596293830949992866632060063467238737559389001682884376472268191888557535792035049296480673962085110195954508203700060767614512184404807671112099429074592965328189478180134215583219677635944400818612232598810123008875659801189226531627281890048677423901129236364927291622524695214763712222687072707210801765538529047986680250968231412307810064659640129160850368925728275073245491756936628423751588023458748656585314412422491089184616682729927249807082671349825361518560453571345028716011898893961660080934119504545753622833022644629883208249490421246291865109851979740178470820472829582001805383041329908263692719481391173154452768707643867010569100803398332594566655324156750876822387575560083989591397249742535907163224193569616068865038722151871486007043175833021748519373186578292280634425996391799495685535459735225288071593442021867273255912290781580129768986835443043878564952852397263245287161355692889465064635827376917037607617670822731039141027465001866158999018034112279560726716225429170310300994773877748332123399264709375896581520555339565784326154215105680889780949546216687495106370616638434273883651635956138799290093304650980864148672524304137051924249797350259014885317127154835791385434201126027576375774852680893922020442408951717395265540750538426018643390433034518320219987231167340427457325149052469241362808523378845123073472503395323240905601796726545829014460462079677587142908760022431659432532459455601955129981149126523781919595835448970765858020812582878146250818353308774402722926882916638286786751763662337660900381766292396456154192008846604563910688520421596979171423393527585410853896142437793490016259958193970404921605881748362277587622595545687636986652683131027344093832009859938295059562897287658297120366986524680857100959512342720648414710183528064418168248691554056844821864398456600256747428664815718793453181094433494204210214732670946347462964916749863749675359514525127439539596697722259822495557315138102181952978037232748728931127719252947191502290091599523181780095374402119801540656171096273331294747936728917149009317559665520816823836778392094961004311187775999430044135281683179848717689327387330498128341152769853548558511837489150477365876597629407107417325522707616424576672399263433723020914319950926787374647199591203043837496786428339369799137465790557325150802547958653603297231859062275336454900454047747400127862536983478370391043018299687964002149132877356698606205452793055093356496188901344898565680758737492859464235851296316439666722335068352978909803229433831602756755744374354165703916748044107780028413033684379342584804095320516843349402159861820476274211965321462724478001394926939869785053135937550864082578115091427313761531903366844531001142388947309767856690892437282893336709629079388152022084766916465934795027399395908083938629289562104654837142675178400750532600567731502902070981048577435328833870406772282953028998777636750366211738266978641447357364891259786056590268550713670824747974945700097124006079360632163707276470628196606630636190087918052912796050674210220575170417848227271042026765120632767870787933354456083060716502901146923671230437901687891670535710422266032206249433698617508374291824802203722485566288487331518119367086709651947057390198449930412306491849198396428845712635841498172044547491862709889629910359337542107330225211882309911100707689758559422371846203091278013355248293304844452118767550151706056364575180407592931721792147725153695380696756228201710023750434610705171450114863716599177626170857701510517196031940449365489813051071108592465880828635684622180020723074901624684235335078577105176421699547699966682257875523134932797015215810198507462934916309054832929096572485809856385620549200530340173724207699575558441343930193153902721350541097035950804507167764074834635578217117366430169605834870694701924603217843390872543454228182994503454253238935452856568939099768261979560832385334421699376660203809042734168522124949684838920421586228413959328649794998558522034676530806247954724425820952603405226540454245763038192038494811245981685277792591239613906282084108035143137598122992069399763785401625578044786329067114456455671238775261252874355924948093335345939702853155312784865255621959456887055519106711063326125943927053661483862767876090267702237512548121208933810042758381471170221462896275323877384831771829942554470702144695975955570071062569857492901748258740487528260774887641673796389862462144727846758505369082804604934141321276670735292929164849519187386463505471639774880014177592151416647147235186377920826923264983818090408296071953477372993178732108259573513785380781984194046820902241707466088212622304199360262956054225239248265676225836265025877640823365730612455313174757051657004869709037391502025803814751949798458148019523888928374339035214045684000774713741046203212191998778693620659185135557559401830025269971565925193338340771065185297335940884283165584869598122912060250758074481001894189083042547740338865923775307686214231499880113175044512796513871914119558123133762546376982995232926911484062866923942893296877455595210214951098185729509046455846835777470475412721065993270330462517869744004014940888487861127370758743987068389079126315691415632300976308112923890521731240718179431977690141547107759042822551224503885931553092660649272972460925754923206543300232765150182645795912543104760968299358314959897105545654218877294750989594739401448944209786172177213001237592512946857091078330351016948570050663302029525279613521692071965964317999998525832708856836754590353706784767422853964226378644219208731341897693444372452218566157047196668210054095970009913445250905284192907243426249031259046688813790534870196562736105711645207308777483537957197556680328873872284055715227059093680756786193063226976273342004280362293582742131070859379283513452169555916999975039708516262500505842349876741388814084936529911667084803122436825704280650571411724701999233441380997349755746811419826418501064224490838462476822384348307141312066967913665808654106131588999113251719589443514717045574996205325155896297747148827062884752604964330032162033246703715692274333836219083930237533745310603415716119385044276551054902532756300300129720596870654444969368513068680536819645785640784154513943527332108291075503769727230241703829767674609091001927459031505702855690804633833184441723677342518541517507261334632294460413548518592860745585413120140266194405098857026569480516034798551340079483310611582047360900012250935714875157368656243270923890783001812923494277392311654746976620375228080236183479116037688136363310588772633715714951499765608733445505424077474334364150651038581204074469557177577515895230833362609121117075695640627178524862749662362329788376999288065063053325785155605725690578914662465589033529246353364483933533213654126033396436008821086043709380096781848377427019813160332321425620995337535199514705104734923087406190708766063151139252225564446852558606823237456048461787246100834791301935456195490412327309273740197736234080093676777139058169096538822279596081075228886717692143561713054921000746612287823857543639231603763573672543705344702543254033588025357493710434315495755945216662100869866862986705211416630672966482003749198471845141147473637555250429700702155888577987373202457464043773346621244303940375125156381094147499175314274190432020523359584326089418766382626019874788131553551057109914887069239556240016623685291050854380859810124272887481011019515371542019631189894712773518919515041462134085150721308835017160941446057830009542315123702444442510452215866644534178314369258676885145066550134300356004787620362043014633136727314826202152474887574292434718226366908762913335618253224454853357165022433420383622842216349157359066230634136831279683044801402939016820702400108663325547659209715335967083390401802826047368926584566198118938758142486984605515209621254757593984930579302284226300196508143068752290645939825528055284574484640271781577690787293008677823647512236086809547711780966378617207244706702165743258019630609414942989621501329871444947503831764830303089808993162141749054070223955647686983187655774421489194563451468474634589199093039303684666956746180236943156071402677722726505651288669386734767072328895192033401796973647241138019160795578308146334484739444899147997513911830318704947012113799597737218614035770958352106342201493023666064381446511716129160414285255604787808605004861306216212209507765495136024314291905388342668684571620113293737909790313994839487985526891866591978083404448953104579402393692337533433515910588083969293849850591909216026262812979576714204343666228350827633244197036299022327390658637435497331457817107091125511132551074947771807599338932362172250408587773004560228625312751725217503475039958718407456337330200971666742725452569616140848013775341514853946743005863000506136679406146264718048842895674326764707696294052103972336957629631627506760163660525389605116767889997862715081388652024540641230369787853300160998006922751776985583955414262253473764561520225004780083571083782285466253270150440634129983326539963077530715556749565041974515217863084019165150524429533395267413432060139640976975298763006939440960477716085108487983706759801819467954829070113503140856051909968491829493405138676261639012925434745924779961246526959372930972299923200454825038066520842720508098006442418884713622022770623831680238447965945161286322222188363191370076987711925013309983741733638362450865546586653926089212387115398410198493283969542438042112091919056834803226547700272384418062312645788036012022166675539854486661531187021656960944518108113530141897881670651159903720741325610050136012744209172492279238155638853501106788134413646069377760668951980065944893898980878142403415073945032351535049452015698363451047971951316906710778887220834362630693129966366103821907859585730684232044221791217180052103437817057099540212606021762508720311998649998777324645498573280263484249749707134573083354883821121933765459664430500213895359885173527757985952361403893422422106153862417542678750773265688249468843061268358326940870650192900293224768106898840782714615667765248841947825296974526176942804080050658299025557186618342083643308968310813021872247942462154107471585450457498899202712007457545888313177239503334437424076735664404251253276300995123630166527873224739459969489877926268241056604760423801411004356328626683246771058703277843489685917773923564656541927114929752288279631591033285403790192592153917098008206714506272710732847474646617062972683902602458978700705064473382356068219991398253213903485859072712424139283290293409316427419963703255604128946229153295800814797397301804186886581785040712888926025956782136356272910228278980843459912161340879803209237065023965050391282067003732414527092105929632894711622734956054278768481086685282335731972651249867576306717036446976500161467488048939751834026372649435321935092015931761989914635642191277102929198124945327547927265077407898556711645751689406328192684211976893783349253636538562252317668504025621915979238065413279394304837621085505826806258507102118826470673756651465678127504136774823418840394975981221084837636699073030000291096279298093558058153796177310437584544936255972005594054075974438927136750937512391685114524816202107573521159555030658815413571537703386125813469194864251692303424087488370259663821662574755696044545490230798432139815903907149190401580147288197783782878498185194534280669678482194699574980084907131808555611521976369881271609329552893060718418633784597293303843794159189929020937064201854985550788222487422825793491098571648461085032237773200812854786689376432760081721408484398079306749729409681761337865856597135458943665202160266607386384312386913153268149035524988767085882001358978946799693919532757153476884715874876517875524409957416934531664941160814165355857421716046253121925279288960450125495857164791639597590682551201063030436625852595895978058691652494554619589237050267353497132030078249469661113624315743906840122167726382510228230061728841707895587430028306616600284374256229042689871758671237060254672094443903051851373515115068607684539403308832982178802926648155277643359362403702053052525481395184454266839935071012283186990117436250994942640046162180625251888241662870647265370075078434677510935921205314797183526674953818074299378418582361776225718253284837134533160530596260809942776244691544124351924922258951500774663802878379360659344630284224126137174528908791095765834446036337664016332572255836278563955079980609448973345510586154276136308088618431915609820687774417905958777856259890730054089726298453401538049162011061785748081292524530590754281832477717971221588165393858505555781002348397234179346281298561592473062542699349420565973414100172805308612718246626142816976301812008640710930446769653291372168289309565411989670679256844001973310442218637025754213152010908055666013133460469316822991777369955460148061217810261994827032745576652323307192479937531786623425847257668246655402061216272491720312978305584935845865161430761814650718443477352079872340115807583431058792427493165698997552712101607490131505904606015505282423361228271165307420182696753844041046587671679105700963242960889997217137940092363560046494475101472209476694562643402595400157598298074235417264636367504894547841013820592413350232316483394852000994780489072999784900954321593444093862767908589181318418594916965298003603483379982707188644253264460011799905125348364541917184862117397600171348996993908702146746620167734577935667060283566626507422146569496089542432897018283802091880916068699927184797577970755241747190278978446699626206666847942455126384277559575906449071488463340541713576197100133346129162598037759576501008295816093766555510225072605387342235820052721342520710793877313974041167777650820681194809030827826386490260111718733821526244486104526817588766105102383018053933748710825313222588714620171216439865997303070821805686043162945819221863382333975825581098850266455262092900288394671217165566827109485613496466215182681079788577696827765712414673110837509047712338308240495650220315929657037297650725787468477137315429497545859150550708697742462101499783764209238153369657113741753992645882308106439281315313027560652276924558050953232670467455682261499510578723760689426816929282897305173376891136048411921933644477441055995798577362545674281329973540918525529304715107799516698967818091807425714246364070258567236463563258419040674655723798226090872691509086322215370550582725011453299490157763030184514219941899360609076558843554092089759265628112152369223713681616183435276785933953472766577273993961917496116581458927384569140014895256319727661414591128855534161063893601309772136628262113612450799929403553410655674036072321940148675770813819330940830078878571331179097365278819573617813908700822308586686770377585832684319711216994785298898897621243635183997657404788126605419066349981840364842239691271220243378452033261311260739925195865030085327058839814259999241244999230238574050431438563971599854510766367238640729200826568736958591361286724900711418460546199849507670195137211606178813563853010527602539741749780379217864810581057256253451153550634459093389579933025427771426373384343022750466427502444314520883496809531361147156496171742612749133326212240132520338422254544289935836821756238845059097888459285645337922800482722873269384811895145342833839590447752091950145831183522030265137231272754789257211489626609264847715818866656619615337669222266437009534813195137193749974856126899804375976751589113441182489418707576044188024357127098805967818502442958636660274787911210902233751321176630253506094578729558618115583302663896800237072514688615286603548890066849761057606155128482720591114217567361095120765103399937068369667925204344351307796226055156426133708425568476838850527464461841061742906771864085682978031879333930899476660824606479051493775475751412788902792238957447961696206369866848863606665206433222828585518153017713508529973360311432080689902455718518405295657386296451368226406357213161118848169807615962171377907857238824570515432020594070735214188665641903561151978227841039984974817356942500190388185756957034524389040434878690486508406228392962575033471745530779107359305450581039366665729071787744688104177699193423148168742436939951018390064309200992991529682458678648096530612412023415115957840716498419365785471423882471614892769885724701763967369078475630678365331063729808850335816165982335266098720633389423289102667902115949480904219407788204994736665128000407988656453205988083751488179422510722979651648273533995751837456158837328833778484627992132058901070046475346270669691713256093756404370058540376961993810162076652738905698579779397167210188039751524354793034012844877657955554044489736140024719861770779946920087912008830566478517392713319396625487096832756298311731462966652748285076365690337453558941658616798127007769555335427378264678391189874892231723095025175428300116616547492856109597273989215772448983729307907400310010585624617284952085374303963930454819964016599216689174214194829348272758241333888719660213271977552250158840575135932659472267216020826609316391598036809954171665649702581239120205952156364444524533824398275304101870842998698384443878998324400507054996675848608632360166923885556485795289992614781135321796185294018667581584186126803405880023408613770932251421599968383311643082432778954729706289524372748102027675559758436371601554528199782913230456473930454951352523824767010838190879740510032025566197099597488119941309313577812341840091381213959322565567636087123110267221577825945853475085818900208888170854797280228746544364871564139122553981609494729250731413937626436015747126397976299806071910550428354581592329200797247949824380408355089243103549763007736965726349750910588781446858439117797126250222453910149635890129330339957461419915750321967572495668769080962563467075407346388702937646080205841862741008999361783279458316613074196876737242657811778466833644219721507926671451409596899226790473642601064438765500690277907057940818857088207511339734092582430678135814755538425690200214033139990340770816467617848441933873967362546107526089119402395492326388034144974157863845380939028771481747931301876541025887762479409930163743004037290308518142719612103783084689255153883480130048979465781437976452669636536162624983312178106261393832293085419392068642042602296148817422947821196422385617095648516797522516552987304710727436869960015580404082229945851293355219391538877796232689623580518450603361384352483497491774817504436622759228674568344580078536521738612472934758615892859790006840194974798454119726095001453811836947200239484580966619146555559416000867000511203829680548277586946791842188894715463983770956693694744556223233282827077199035196317560303573386727030913764593221607321070288989919246567786620492322707536086473755286390293005884662344681095887262861050888651038493233901767522855088651884682535018275902074636464535698868315838939933499194356036683512702571621262724944121622843710479931000290502730621906880169771308861649247546181299219255278713132670552053831149694426362625427295580753872601530971403308614176963861164799466672579177513018355705069413283682564319369123321969215349028450484220051941525184459997444099987735548351227596425232500863117957102285653038284021899447621207099912843147704127183122948185929863093180209084169289844572205410222937689232768960531105810233333682013768369612412371757330244215691736058166823083863523845955268501367715806730990744004577935602823981506714348835511127711456930648093278461638252827771089198620015526155842545354643219470034196167948336098927145431472889688837820852920997222285862403432725445596074985895334126589017561697932270984327320991225013303549531765940719489737790831698773800286713386317216990883632287453725313746022713804527291870251363351449967086334328426728837920761916030009519498828241306112992444957209753352014633245217395170279548511253277223094718176695734943333506215129258958951731403679379660022144555894516926173435223061352481996364078842056213111387916545332489972676137963113372791959680606630627484274070259148412797446389890957287623006866227804502478331074908706107276665281475756041374122947309069451451008016063985647759534671409867025889334968119326054358892928741772739545085163603621969265177448406313138203747465008793202465380435178078578831477271793125827807090716170913176486793029651776525552938150154911789504943548517221773914006908469290787918380910931197560622311234266592195525944886926995610749568536564585846190558040789095066639627252168462995588032069682615920032499499634241265002291710119806550460391931684519950605057417384730215831249309954946529699210008713476730197081185282440186545496205110697395445238908764602005266778568459541589284755440801939392237396125409558719073938435498320776466034852705388138281666197032198319936200208499631167437046983565340403294878973055608282140296336801038900185335037223384185234366733660420263251821906853928273580816159396730910678007539479777293548757349961808666408663832776327933793283667816323044453853819792762207366329440822364795928706582964755086140419464224838763200921093152326006493699109987278420253038580091443141490717399652360951515568960474768310037264711068326014673425551150903948179194600014394398676428953539479694834711031901510104414362557146953285093995961825887346944544030114037938811517761769385713274858881551353839752585206405000942012106530630005155589644266939460800167712555574917037214834685967303798346301661014806047831998320991792182937397425165839532386982935494355534791641866256607037790536359465865398983148166360210281118405308939838012532495787916797417060196299414109911749462372621808443483769036330695942560364555541484407192653145665544682928672209878130250787686379221839409960912262689333629200129301603171448598040855740123438079819980547758814311924094756512971700498641871742690443482423413562724080160931152981286298788680120657254314253314408558899088750792936576310554527354051466728616356957085882958596747812375513268797355225014819928360085525971285757092394575915519394469668199887015448116788313995401087674159968027031182309035640129048266321582032871322123977261146833089210374327127598267535444826381555008474989738672227552768722952499812253443860742061686683298414740518436962906824102432517808241470867156212110529620462959269717306398655888007693968379431811046544061155868444270824325416183087598196044557273552144689714251497247679966016741036967061025003121853377723094145736204147360543693810029956832736375457125854242703173949849769542392921042219994495194179700949945953231223306777873792494069637540916594482633695078051517446737762824863691653817785203016199545431241029937753446505327139604721485125407545844006652113804561172893283861275375774104756779670104134256123124312160802074805058826094658439855662759455359136035257732870548390255670506799234188044981292494560305790157010107824441518159445498492035047979844222413155463455965860517098740955532573695284579870627014281701723660993892653973019739212399596240778160407353570453653788346095313472260191226182588810777968792122702998655184093800573258266486877234020179140886887618269673025864409154132906101612470257044015756926470111826275510572656727994984066220731180179332634494496254644904804920179536435501005823463000987384520103476788382661600950974318085193847248115938280692989925595149316718838066610630835130367842471149523851972733243744853568972277992239695933401800012064114092788841064521193026823734546774398942898949359446391986025772987894744384688619156621267071665430245542039475636668346746078581485266936778827517752084645593004681328712166426113369867498898799645187896804283702795292184966107811049848657054814692525037861999022716811675198653803243631709363393357615587307094959532219292733102346978474991581058648424781320857948507383741993775675063520719390094787749790924531686075199237141149931190175234273732575653957927947672217674026579655364886969383910293349560414361462703331111185613781944546048770678812422542693950523269606986667764104218530659100983008807281682609286147431378054143492428821288260324999435605498626814043315022308328719643905133630024706400084216293742061415234314115171410938756426088585912600454052297820547558918694172962355118456056256189224559082644490036642147110447002698578809813907614511790241153317384193986164985929103898196362728774656083112799240864812098897504505532835776925130730556275794763748040159928744855020474937799753476621266041717548139393426135602460235304472345574664786492710558923738502164634995666043959120314812218582597629468134910808942947160204279022122127314801587529940913653095776619736114637612548063803889005064276016066908945609449342750761851422334506168414926780428000162785282995179912750867153291915651592146968750712734697813670047444460236248620764301526352760203407890794537703473394584471080210860579189925023133028196611401668243167862897511669949513949060844191087992735059978457612421660207072946146709041766914459838065718341762643540646119075657080378530636016147265740876303913059915853071690188427576101122955732774971415860418352383164905493606029570887513389664962367040453457184702340658127031603657859926347741727685820565888967372951942842740279985157819754073809895668404128843220286870203483947281700320826872568829811429027011446049077689154768359219228931208119994719138515573877617622800636118925353572115277702433853975084278313667160129967760025177662856220928126098306537433731975997811631415516478534628518358636799453318036991890090572068804228054544397075539222985241471067810467962417595121863791441344215870229941239961823957378449455955536526984825362385643189851914480846736119112585707208223083806739277448183223091913242419431351499435597560273582780346489203658643286211977963662307906830704995306322438732618225468939283837558725247023350850073599325351595221061247324963692751700501182564491715601607563112731209944320596028972585465305759006023687265702848839573070753652678963728853697967347464073505803561624264473334232366632370293281555511932171578520558772765208032552895887386804013607149129103873731934934863241249880619682643700685579620375079230037421524181309945399042280081463804251782904200852757085724607741936830424928528292693056792554874786895844883371220318889992315683650433542656444049847485298894210470758720233315856574053130085556919076794862103866396234421513440154440376151885430886472606392009753792512392571877315576645207722027688046814606266573096088885598899571320923116434281280334772799054173305927060297325175793079912211607545078705973193062196195009501320462280822396939385466997871433242587641487713464176381864963542039914054740319890317752622398198192652934815776098667947484967413868156263523820488840081589145932324894424412869747457231799077495855991378580410629883149837922315371210114792022398377264101007556565655372691194463795436909012177635565222179628176263445086070566092197411028892818127464749307187779733867039965971617096878550444785145235931454678383372351585387115165081363659156843093562131836523916504922932474078715002960789539005142474146296569702825849539557823522868940087898849100150901666456697180129776545481496066108666941332767577117930186516025011892683393618505367441841806353231976779245618108263769327686566628768954239268240779191651759629071378118667642333386186277527982962468336760260125995434423422417708146802217586393839691461369517828391108317235998327613677776868444796138647224926637220905744671491855895535909228460795710307524391232600279563708983879328135529560504431693860729096672022321210398331042258338215726002677004281682764460403718870879046058648506805004151431043649257860934854495430881406893377421716443242102924823125465043468841212799103783112439026797020063270983348718354270071375605273031733570850610589143461188809568516591721376020403575235621231278447135989856163775652795189892665247677485907135226666278031920178942894926553578946369548911140471685557190394417956043159532359510909118865657774866003326898876461082942066996559781792923716848345989604792336736181896898031882217733694879788002070089730172121606314404779266214757473120330905188210383553628531465402172191789326187406160226159492850119940160641633525067244384350405549688246969400006242855614741021094319112611399858463548799400261460984203868780799282289609847449064270918923958966705164827943244933745612942044521336406479839898492089055009447954990704598988441432101117838448904488089998466925734182524085265012673255334609024751173875821884668227823087088032916516044455246007407665210386880944862224022399920095222591295464296828073180943931852557465543256938963101976188002194126520616824947365672220959574049130022682554083530796742304839366777447161522184246866405337507507584736010308408014339405143637565911030379667753264721413630259392088261566061550474969292922123042464506041774181401791429093046348343669934971684276368888315163498129126666303560572323467247384449375424074521193870673533905559503327647238158257771348265090721840072977575036850217302170935630959873825988584205247568064942601461962707152242493120710778406605664081670251351003236381363339826524357596208615762086387383037091358262159765438735060951978073629586889284187272053121978017065243914102767106128654069302635916783689693145667118589803914011596088720544598587128336266638331353549316666224339467747216020854521429015464940114778565034162516413793172615788598626129119758118131444847023836812327537250257671662785526271598089687040944967948448799440058270050180948066706955577070281287437861368013145067116377574515401503665633488599811963356706763092176744037176030387944278353550401376119237534586105979875753286363007534577778765065285732792264362428084354349371091888346963284450583046736908582426105012589689498486508502891905976702363928194056847697992902311475898188867618525619410133478401113650425278426107618256884441315206514782345272072092499487364197026403064877008056872270077896505160972930970360696512753964840372475168919871113521653473914141821243327817277641195028364771468531791119452316867851475394647282709975306315290586248608631800521675620569933399257923872071513427413555863338334792175377994719744260202020917165154535368562498421428714383422684074723177069012059707500841747562748369988571334221430278131515726237369239844927311687602271549806517480793287699340500647994125281630069248042951252343350414684293670306051381919466118185694559753443462535602988988513037114811906293911720269560090236456481722923410002368991635118783963870492468424226713547252887009817160940934504158936184959739082748778078262694318403100850512787217198110555243320228034695929246039400178612462672438714058659080876206522834968696634528864616880998837157404972016024213826228280291973211632231118383146065763634355385714874951929282392382234951415426230017091466826411580653570659831295741579347160471211818518937863442932690532685731293209409147994723500324580633557912121509867809968752362012253970692442782147973908496143786319903157407580172830426523200768237750453290833412337623022117103766825524655280350632200520620215052434676522793794338860710207767702010100058703243240858115377235404671808433701426190215238207055234891928033803000346807412860221203021016752529107812942932882693946057699338881101174503410584977404862193811577220404482770328942913277908341055198944836201907557527277990178313211420220407444620596055985807527957997551466221527040495102373419320887300429556392350553217425775782230927977180407345734404842557853068129748468794251532911430443073691021862792969435551220491423089534606794839314414077968780288883993941858348580302595533838295152393767600442306972757659470094881737785136631936735799855501939948322869906084337437449789674504736042504083332152181212428633123794760953991658794233997306318744269049739463222335708537915217571036246471244497992870932659951325402288251307783162217942415574514723956152805667891415255894410167918835136584126389503186488926196693807777863000932108109958325350684967037974250516964660361356542857960533251553000959029365630297972515248191321557235221479016744136783922025038836447927366344663302950084165792224692705637898832779072689647167119484023408947770869982425121177430988808820670291937002393038719096691951033108558258355633488016686112322352684615703989291850074783649748965784244359990783448327162314377512320413343250959284730503908091341230218154098871569246706241778796448605730829352731349162546895413760218286785676045886203891898927997017786880952396255271129938199720166678446438665680085429935194380629980701127938228727674034653394614995557493043896565336943299117943674519625525901244143608322531471240009093992185037420209471320328713291304507727025485248740214941910197576164246698398061651155978085828268186290207366188045863874668440393261313462178898694297716189675552321861356276741777284545011819905819597372050427383134693889907399386322738665784912422714060311288757534373142089383822233783410242229150907262884431653303040390896171145244110172264858410564879402695341218981271446304228502514092938440049537325970642995341423501470603254951732640806774819159538608169271829081786469568785323421650174099326742890074449905918091410430576847132518499590069841401037128120558288626285843628460931970071714423615653349858332344300771376655270703848990111065722188050627450829777595455408256395026905254384309021712775124672011629950841040510505845717353798690187020011295855617003033857925869574578759775548238559788061335080500379910595754624264192378745216343386210959619664553707520140075635540702846268700603537898785526362223355385708557764663677842609989905222029866275651341856865501730233668795628998967850189371410763138731684513786582043141561264471617973940486946760782140386215164853605978744480278604787497077578442005154687074660519346523614705307715265603925341139038478999156013024349464419325497271722454057121509822100037253930622136221481658713710484478692624817329333648972360160361984969160027802137274128460630713181862641621103448328928001240362978728520561842786073113326133884307995657286065850834323331967973169761183205533475472188018590578982645767767229765202118691254968021261128855315751781146987893889266576337530578764253691547494355781580808031814909956709164990186942107612462970766956191620900824687612460170719375775892161401184525127681533261483579629926498713253232094385676310664965905253920742782618565503294328195822709923501392543178044124784227006655033623423750203870276974874938483539661921175692654725501742465814367564043000975910104303875610970430176046416254311090185740599921456428326248063760474496814760026560158895548039024473448910447657138301482940611375324918937429668510516392746885463248563322362271973031093343282403514239512978006396249943205386552453408536887902455524683840028753811085945511080094047023361138106331251499011317909218852320142518944427781408760850709832027442650110360483167971045235315690585883574071391766704482617246545623562159330050323640545301008279976466737469039468508253205566620019932630295735605489525280614996155756350063777095732738505709185537858972564750535120452705421134044926140191734156874626552013141795653440957853790961057594950194346846098467699170998920760564111343610244705529532573651668260397579273881337640891863393000544102046254933007057069639022337323378055830159141408981161479177420619213574445539922139559595650762098010019665503130137403951473863228554344323071849863141832378678289937591209628164674924349824965860048584154713289087235530122969401651408944911073729385717790169175386362506279402184544998403203594775671435042721965630831272875017822227711665817877167792822447389599041511649003802322075034911252140148231480372792962105083309327408451208182240320778587623955369253050133023142932375356028520858512211842131681174445580608421152142061323418179493107690618375981845569530447853684073195614772518322758714648545708491650811497034340223254685635262709171577735209892086881208828187091184697496690059012164842940628049251556554691001776009711759506733156143444745726637952967714387119270820488772485093425273839333357658028483436270700320483200180055996981594149706769370570821764588174984725595269855419836979637499734059794467347883254629302107403011444325688635774665623956055770971006492577908886657899989080836641221417360391385825218636410855550242329537270573914448061859009529335157769789145988264883582384508901416154326419624189992075265830772513196469754508236682139188047505791747336368048859974602976788617665948126192680662788574852664929102279117169756474915497410826767592477448642233535554664006560596847485354182398106344093749205800373344329724307965921484865747007405411085966411326666924891309212952417441029002722702603756758358074580532698143104512243009861219599953544918816926296704733743517933154050167046484213544449010093959064023531618483248814379895958329870245900356453282820547684517932574370708209279831747683458197659294190017626622201915151561182799819937903903751764374528891173851496671711886073783645300103205995072254500857105067529778633039258682575709510022455464352288925605687621809336361965398997624514489606127127560065608913751070494963267454619976162913338173533799048856326392747694699833919035339450134176557187443626659145249390853730679056353079009457817781013246262996442994409434772827490406636359989318747101857092336978865812697393385164616692233610574308240122171962629226039145458203914057101620509786915224040945625338859582274896554845498352987659794088194558449973610226999863003169710379667417731911308927280185110589501155663078176823097944337999539700852627344038651221173389297174842335794130072754061919312253270658929194064683020795359805663840542228904633245186223359200990179242929402578231439030101837438546008961428598863513752545311050084863557246248975923268038471519922495243386167815671550802800620671091033275204985105137355424054817269342547191949623975064928697340124512358580660213770443472142630288818321765861234925283951360089023218891799707501791249109965256554411011197987073759540997654359554019270796407658175596499288972842766440419523329031531992165041158916844127398148829547239220441108973002240220128805587128881550555807191756876804380545396263940998144298687241422287750834402086004684411718545113177064116340167747136303633103078524170399094633061177295945453196289168192333057456206166405550041166443816757891946065376993264879583001473872398302237315888709282648934827029788814327855424392260555959631631076187020086824804415505587752611377626155150357223324420302073292319743231485393350908864806348368106408908835818552139046588716535973507670410877369409163386531758820241059394465696663145529795921627503501558888819927184464056582807662687654710174813008503902442851042026528210294934005392011479365626171365752125771046834423901453954813824235294080748212930660971128816821393790642316375953185427796842009922183532487634078516173886452585980554659458334556194744177219444471598744936898521583441724215749234619831637696521479763278953759681527289245746765484857325780347236826620835091999522005020639494538107671277301375981580036148695193435859388598971536442618654269476787552884306035979641116361576828963184493366098263724017058778683804788412926585906308246307313888031142100712104895289854554251325758170045351030112562616133555724434044671077068991207248363293891740863806589880879124655737151285051459380400600990841335584056702625882322614284311287624251964946836956697686058097587111755438322827442697827910073504969659921611463969334358766717463732743893425565226278326194616602982352898161741190348978057685348487699019439290572918916712204902211584889018084289768540141606515004801087765521869119705130773228210468400385387507236031499279315100398893868520537389596352856483107017422838439699831672795635409197141533328298881171234713910197958741796741727999804635021383030532359645567036003335109312411762987568693481748095437936371964400422237696572451827780751465714719099012735405692895926990038671509562276921061482957999984459597245184897773168751016247185769391743799651127743912384215857064714073609483947788901993031340410666831130255381011219670873946735864113454772450208977750484126132067697321227064663855337630380770598198470044982779713115519886865418426294662964298431243739322515652034256132840432327595803844356816615607943963956661933198298617591460742578426111415284026239318477273114553296849888665515213046767594251897024796709905591592993189162927117835239483119485123832775377218854501800994604165769416265285697663839300581356365750419618425754913701532125445801389214182250628902651639295904284938917818092124090125812264168392678532250637405921179135815574601544886244242188711031281179312149458554836974615078045715999129277530064460563034295255410531580535048842117670238851064816391074161678491916029559619087812269656984092829539573589459220128792264250715858066949939531729445858693908997308836019609564771173145360135463487907692742200707280216776691490195691563131362528388254453633697497777681513924406937588133868252425143845561199986095029101217556261038311789809658304077826778441681189612392630690354749520582934413641030201542074419440130039440505415477104416653959866811077889629949510035205698034759789930143868245781816972651043807580530462615408719399878557617375374288069488140815681442652972906590968752630378299427553836935783043117301205358558212692318298634301154605611375159344595037224951363413231517080965863303951394560966499831531440596985743175424176256059653911240464776264447135828479574121032324976232229205355648245225934652908140780933066608458514418556189947959672670019607946825609131027816704860748748166551841664484327720102972590190878192414073093828503692559671240239408214484813113756988239629760160509813560755553178503036588767789437655375290655895611886871712855040803988034750930674350414719583909076895909939663084270089237640210161166736228137125474281106580927193259802813591431367397289022462525553099588677949316568981056936474706947028832684275371907730127994698101193157637991242877563026329788334418639370250750428215458223185897478053645332614741803781976135230523670602165552353587791559699685967171774230223213318759245998590496363802460200132665035289004679776841292980598760495385446482237706590213764862119177374155181937159749040801002204690963083513422438331245729454145217326386702573697395787901845753267505466730740416118722214007724469352728803089956639993622148891880497805583874899306954781812910437522862076223417223087241438298555071441715281206264432269777217826267716497851118938331237279029384967426424327596178309402861162012210483864074559286761731859194047979574605714956653097491797393400513572093536668488422783184119180907678469224993648835111281959374274892278732227588670075513106703842510876499507523119252838310660582577706566947767624091829499941007907545720743715706232404115962110766418972423700952703296827473505562459753527167821150395870075549869024526005974558137138015477452747570740194891291617073244552861851868612137960065166271353704050934637538403348830035081262229326624313413753231494393108228260011402501518007842900129167356651125053323861113176788509410194939555384333630590395386407935526791664142612453641114401112548954738627200865973331324642812349162310509624961102337581930941227350252622511906442220831963759108301853546332874898441038847268613527075536964682531498296122042180161652340248762671475205804915667359020999065356234513841914286691716804158719711190623790419522340966237449387293290004475908834111009878822582558072028779131353039200478238101781067948646045475531600304328157584834658702111723595123734241350657184537482165434705479370257605632988892522043230680139663637258281125203148422562474324443842585735684069882975949252008098506834386664898047603973577237038708346897402505134614450041753545722896564455054890673382701821611924605091431315542971613883871773062018897402289156420989213167378179630037538880029261328894295572399333463308760090936599903492280984648562570454934319710186050948242240606337565802034304757274331700169770149562069573758687769419407180265629554140092429196431780309638486971790307878327236761593074760379246334337619902116467087073428987309184175206733836025559910000985332021487579851470825735083520881119477878746213664886886366626520090424725327580958456178363239972009740727774421018261211225980571573744166694400382542431360878859733306928711652254776100570280559484473340239511038996353215711074913416259112311686276795419308214322313534861434512215526739780484027917306789983817799054315956662372236010892524353961906660594945364048246703308714777065416534733811963880637096726560827547893434549691615678548498911907772336244812697663650591445352239044103271449677775159214323440370088229301644716195157765882735297087848949484289787572916643311559570498425398635660462144607324475538417633473256567837588563084339258195420517693520313878938336036196254737816697317394985432030506686327828634922179466984723382012727264348154574439009547446403594630587729904477655923487025444173189407657893046304713506353774837243850378207102164021731089107527885638749740738204826661566818636545034961483647305981873176019415108879890090376850360918860185511310356519966449969941122964979982093687151942786025428532782308324953396513057247835746353285210262494718255760572257758976748762436050158173049077750316105940970910728690867562603804098652936509969659526216157090174046223418530013312603521934608279490339639620831009612375193928603260140065215043270845391196344420160944971545666327922451992432962061012622417925479902081211266256134415887782431689779785009008934081621720736903130349127662887616610947060123243169661484325981321404105195261582620706053308161630110525640305024539101782944162202664806988326626215094284599290967504251325817196420834621640108086929509997787675068645936620832817942506553636842417191683308554562424921846091787956087283591282388355156235811038923238768541018514299110901441483569026478990562072406012845255146410054824779969639546799373616115829162576874344191472230908692819569336887557625970823450198521923954783612433384202496692289780387549901142963136522935084477163813278238310588172993533343451217803732707049711589197721955589702094174752495122910559309039390527265505736101539329034930781225633458274791778460316743845001922205107362142197645984822168493291764087717837080273935570760165390627750065188596808734477240058722038292148848886352745315698433667991220209161332414115289422263908919210414792123533636258171531435208335881897995338245972925380798304990303630942105833429393990573677436333517738133480661932487558286342773389975942044586195601623302886239229737007833444378452551973603961311335979668639034210814610915483542405342140041873346355116271910498619126933332451621620026350483868739601106380837782339007624920271590590241737990878093807881047006842401611019067518750053579943454217059514676554678091175794003952991828415968281775019051270380244169046388071809595099253210437632650215181936620942692315684490078270668510652347000311427562789532590637076047867062556884323650867638192008218753815948197405351960253718244885403006238973451610298617563882795166759810481898903655168235714552225862869014109620090885807496791372512141821346569505305561179884381484933441888657734128861298575334966002613168079760968611458289720470716773300027414397332858334667901857834104918596828266496419402081922630080918587230054785843491410895828077867736601062895917525845965801157903021860850507643866369568049335464004637316653427956694370613775225061053616865109533223513855031011857208545961900469997698017032389805982927646136889461632415023700305459996749697371973661003217701239803096572377664989623537318129482998431923506524774745702269476022869621606621423661442869362413332659766809656725944042844037918062427403696040024771927573031971633473102755908149337633990759408759776557848061497310489625207658258330652531781358625757270140514644486823810182238145107784664610536585654697946077746763320056717450871873987531065170657003166032100344723040279682335540239305490586863133600069702759972068507440726952956310110962542721926999403559205926117892680904992168099174565595773884692381420614322416125689873104388273758821259122926699825650174583055980597819759859567810211028798926630900808971219925190649705308091019873545484894472629743491861561933391463829237258555157004724810596232712894883574316794454076786242517524816305429852000581644726985740140784354068564622950249527286769995314983553504379595018461286856565201001868824495285821677371584912769096850817934833118615702476577019020513763692239383015949034062042312242185743282828645190890190153749068491457604513632746884152435506486285747664500026602190777365152888115646518978978919830048332407203128937246631272491316023573998334133508709777833319078893614205370923250711282669027054314379231284676773358460319285504371274017180999173204215284687750012001258587814057595738323501142618255929503708521717610418528028158306951313726230518075656147544622340223056114639452452572436962748951935599684369695337762007669781379885852405886591738029712064126826258610608339813295003714920297757600141502592142732337737658336863829517418793601979045009710802336646864099247384949924005231358501884197270020565819738706743307009131882741659443679460299520819815423414814395647383488743854909273288079935695143350142444061111286691467952997309849328843631392802102794731936634564273461251532623624676518170760211400038981307303291115433752123325173801026995208625814256952391052851357407949733155547508641167634399507224009366468569614798965998835125278783954587762001507695160687589669791880609191698963258652657805926255874831832812408966094201516258230165709371846072573389137067034403183571631598903372340348990097137104291493248989012969371133919293736955765693539979871036287336028872666980663955903097036732112002391374974378521960498185331246362638735252757994692167595456194099489725098868630217372721329227040053032771225454096637404691819483624157299924206974551003010012559386528616419460205689458966741377520553965405375568107485513477376849351141413715253038197805188631744068594099108535153958981679775817161237024322461012514876340896110621319789653745685082867336919635116254005312599884327386101936724682080716662324289570753152996582770540179973949069835381522519605020229991347028156692280023865734518192142801034907302856562504093755332493828106066979530698225122750966733845473077545668368446873783164454710805571550952338530662846869303468295519813787797684902068243606062021309953429567317134262330953956396987714039936867289938082363803986828946707574293742413867843429712258015845194458274917162963746608102355375093981527507318788281055406326233554653302015429080297688470196498079502967499370013263088299101073466167572813264933708071790174395223917972664042345380760483467542060098774177414966787786037656422286216180882842389027551496232135985233787564186806682912944113042379454883957293057876903354219517759842911370914597084325420511989313007459532190155391466100033925661190573540657329332651876458960930364713535353411388294973433417340322789303641247801197504705577198866165431735836826743812938322250061853103089594371552192221001891170842039976752488206515411952085030756566745964040990198269618254740336587073932901433542568362546805547693063220767345070669171772014454839291233926670555300795069956572737357019437073216297545156324984430103368378543657880599860242511209500663354510216646209648253033558859996381011406854018227594485597306521855832704260062558589494190649640943526360702117170852063845758415366662748806047935747942495802771358330577677923674222155484569453342561716722502852778661672900167477641940642402447387086870535059066503303700720596563674213722931601442150971480604877690036219935821223634887420815763422077287845285717693054072214752338732674189320826851753884465640451682500842234272981284365838931825191078484149941301200041671564134477520433467047492899349710526724460447868993720464724441207580394312317585926814272750073317682405983301517931528347020406908501141784741157773386125092235842594814574141583646876870764823092369981925491113749703068534882297305548890615595903272550219551888650202114531812899372648900300927231006950486715633993196436515138771994483523068391468235649358143264484964821560922053859836396284575396532820735576144633510017515821627236982716126062839059837480044175366614785614588813776196076220813420223246006668696859466661929686267044522322137339410818915848967180128677757534067001424247963814108278476425053136622969165708545536701309763421850009601409931254754360150323767084030256806936196045220464985443317056239885548806381747268895964981287117036256464333614424715070896926877507995749997225111265829600717581260891304553040903607060713230524616356401632003312389522233422250472687598497305764671533499915097035187720736699407533030872231537045598318952480811861409986738142506219950637271426708267928649826998911770755870071709418681739573946630798746099749957704845359370896269404442883362950082300798928991494133460119268992748544558312788380187676054121028528385100223167864179647306619595732472658489725852701905451912536670613470655108604266634162632675535899272774495666918686795846693112449980222235239097716808074368402209224686490680173769212389073239063904181056276360659648408736921348606876188905286749331370585335161734470643007927644289985155101858352306893997673567651003887531709735804788690789173762727151334382624870937224681335848796570511087269077610080899359838070884684828033481514857816046328334193497521824738250468745721310270628883014476807449307737264466365447592305869495589584097687283486534870943224216828272523345219794839277645657328016944154754132393369624227444201007506883269014826299626120904348147487674610634388879674773918629912613781671330123983303351752512993478970382829797050553482916790796844616973134082473539768769865309382614444754396246918037474915254040055174007011223510384027559107697474465043192948463051338203475816066530410709783197153970380837154982525215352770488576105497898769119409598949595809579690386241228404986341574003850632953093912294327923740884663522227606623300293136276469357121188549158658820460571716320301633034399822609655013450097744819822839498088739286939886860409904542872802664668175061453914883169080867585268691974286227161314931683439314581932439277333644823807982510909218741307149529743967060749471508831108226423962782432750743925647818784150972506056996151954192948429699919592677187834454117331010908465726277762076474469974122515598666096285178370238221105514402932423739166834927684685190876961023628827931212986023446684722152962089990665868494705804125872872472215448420058698943967878411286160824538934695091379343076804697893985285052284189279467981284642974643392876162468699171011473138356108209517958269116072452085749519065049637187405579838310767065518364596904489105412271774277824733318410195618312664283188257881699635399557635998543455189992282001522064524661049787148365129622525197097873186928658856099328838672586347523582476897669388440782861474287509537128139474673307257051039690638904830633232512652133383832011314352540043819439728285919257735708420412200614319447915187140090876293988344105605838212435351129184487442204781332141320230673125097337203267161523451313040154236238661721450739219517818868756973234512235662868607201030806307620003966599142703154762835889891949163623855926326056818561589676934551821454474172005350786359703259564009435861908857767664347708790909456051165800576475258887873401150056212471991199485400340526321461192413689893502254184014420371228279544487587388896941106466357668662158921230450482174422773668848252407511515662146432506214770901442816992308696058053445392741065357862521595692406790940435467155933498989240184365254224192533090709564151016373964850227911794693992249571776732956974895226041149548756803927175905843741210219846425910421933497588542165322988919873629807098702607739894712198540154137056435445154745647288861584392741132147944645702798475423317621009351884576656181092001586241610567988456461887330412321920017292067168974423935130535910958684446182212070042511928712365672373247521799855666658290477672122598224917836036175734019706521446480076779630483574569333388948807509894931697145838639706353916950530909436387635648055612654186589340781561752685803112605286605696614319883831654846516738232024825258961510302874724022662504334339075835361113391844484052713604380348407347899871835726477692723564394768749150094647267115741724232475838406597796644832870200115269004711141439385721509364175375695444631610887113539563887354876410546588240932531180728463307029701884781523666193415770266359656346288389567605889003173371392559776306001302592217289215213707378552727995730571100035494142239906177546878733997294715760484701089943781316731498310221693600998446793641419799364494669673393171344139351944443694477369703837512280541489907996151453264195771963058640217334546249340281414030366730153670581700265297615727373525995676483399601592018625977202258019039387567808176028357424508985189627456715537469078513159993422567885389362111542685835124581843447698439754639219728891056641481007435706386323470708338873728199200285260982775444710164161891266434357264829522012312535845455818435582529061317963251493816348360816171573200049618750651550012922415051976645096935856254414458639593957315101916921587506124709868987461100902332828379852069862091950817254088293309982868258310345329449676582585161665137340292400758475494669756222400623938208591954733953877926733322313286851239774505221373195921939379705540399887094566271735877336715038351894010152164561269356969947437503311474685637914656806070840840433808887211574590242869081266431171571611744552859990934687044492224743848571532802854676166173570414723664446666571975985944514186922527793179711443330070688264145062002040977323532228694217362909245220681770912045875289117735571077678113818129032631866325190102600849075620065815920890596758021601514545822890965984444002733156604888705080230223122457015160069256121542159495361144874552390080198507360012299515563017940047391792281363069742715748656005970025777704142303150923918930352070600170392021998383005974832069258996889842775749143200433037011280071860505286497309447484713819575089051475593173755876410533158190441292484212738664427005677748798955613997738446476590990781620348859686146537978550245451803937381871576124908916816685428206556463543993141793711689666527026895536121939887875598101130349008393837574863258275608675445027874283590997024844494153448291609626782489129483635878296099937431445339795255974790150613958421572714417283713366697252391101214751889934234802709172538995289168944544308654722117694445085864327965107120735897111977419339638705309900152584321891072408532572509085672837846632437788124822118608507362945726795798443926033919139332528735270722987066774159411868964207883645705059655389850647369657020475408913127890424267961085821362111767888539898563063007334123552348968782012505840798063116085633867943524999553406321664650537026318501912559188766313747555046618267481773930163552335166536093966631880291316110533834057500619880151165366976156568749167518573745888105038114988690620871875436475034192107215723653481213997509296346934522170746432108183599598097413245600963891732799648102405383216299516526453976939379508045346773302239007499608094521148907510386674237180483417516117029378146227334059116636935866071205920898557711456035180224374563127813871001198363189739290906570145357217317213780244905214757066548842909212759372488379210319914005473764597170974144700466856513359713462727113739111380567847799903164878909279106732118263293492656723064528015006960970216488182201733613077713862238704714788347367404426679546981026667361057602629452808349549894478361366138676793113597312107763222114632153321317476969243190225191707817904927164498920062551432256362607057029228511643087102499625826986292782398624813418938980074763398526889733858495737053203699140438639090744189731687037485956823850041713323934127711660816214690988497808969452475118057406870018449386624496140412204455303756363435410198506580587529045302268033239889118163412983197076233253809383462780020184384441902624147879316629626209909864636469245505169433401705339710095381988662950346938256739124462680608058947009262223389941152796817186971070759278808308315781923713438817901650373957317878582290043112630884264987991129873887254220516809568100898248433366572654161871585378169427008919493446417302056096182840283684074172633311647586607007820855053512131316301606036648415740727821452333690091663817795575279384219059278210346378699673449967888942144505698254532801316864397271344547307990095282697141035315485679640343981587230237267781887248250050302904724121682763578466483715100576161001181397006343086023978241042250235683042140158447612758040430354757756141842495286063024728079668005151255386420262548161262500720332016770997584402255593050144955409875602486360443890290063552967209177082758489397532156074358310668003946955099847963615169462468640386015150943246231832290965721982627929909247244669818603995392423889241587347134044705375914403121170078903034038932582162454840120305415940204123740583295425106094993695447109336612602765243708449983150494827835204264624214665898029645307002703563807183941325659134046305908950504656489640727878680500309236933765307570123530212655702594361732198556557766602258825353502594271642980382656126144568315439276101748297181971586150373772310089960987418454605563530926877057340786689540600347416716763756707218251451625377608050185580844099992112124220735219162049077440645010349205103835133774571211685326599550368641816516368636411566930591892610003722427301771294338168064782004562348914949801136925830666002239915754895893770391582227949315242813038888952950347577023213143494047533133378531247361748491940767850152175284897576683452443485183017169511351485506064584714942731710378930938584261159872956642916464328624154752765710474727140430692612623532452458784901155329560087860669940421663035212279923948771185201964269917539263961017976125726098863556459280640020564299453244325335291168622729544993836849206085281623551264334914283393130564418660771728638360674108566612191277147244265575303952212203735791440731188059612095605710213681453469360538962534424211698085196296125813663603833291954892567252502211759875014453403720547623664389698984896504181846695200919393244110809091114034031690142540824850197805170028397547553995642305884824310195209451284324967084564885476872439689178598201321774366050460225730808792240341117162141505908685375722259871943479075692388900378109159943896713966220019328175665613380376096154380278665070776738903326367930975970543964016255521859053286171599250495017908871411851253653579166199270942161307574482707719084050510625009572296866325153063289947866127337723468392487520205945115238227347405540715162729397221726213823949878733238369553441108643720536477786629758925827178649734492847212798064166812985365904384403889465307959382678024738987551778143932728879481848116395905596163508109523427907097181019886443424028302095767182027678859752946713995104400161215226716021284298143560273965926278968557390851149015336994056876353012147134656906846645060567413620640305846080965183261560245584851826468203416235598978086553731885032369042209537185551546767951449083070623478966157267015413550837073252925840449596027007265077001749664196663609654777285377326299478029982765305635665246507496306453341146417432494206000769583388443697725891456935058123577296222396783914509351490887192748510024931411653340938120519718855968368900814085612882859239838397617244540581208792056868439185016127873742252420022566059849573625867194744850945452963376815908902566610016678297964901532395292603647356469947748724286670899589833554698450462476701906192600138587613795268611235923687170338076272763360518218824528809415893339540587297115344850139403610628954560126460174898324181860702864506550170672686612914039838249323860515198840580265933419721206934525373385064837950780933672896646950307799104242770733570623329617084395377584705364919417451432903966555538655289319516929295505972119385556375155602719215195650395167157520934756763214480235594712571124059089930983733043583849953217945639303988818430390457718029916353230847649081332422357804872946299790066062058366300509818342417316151120117404352174627462257616672671700184969854935051036605088811095003029693039157171048046565880534001476263280130529167410119052690437286236127174279505556859013410379577753069107402607836309786677173947050425404848389722443099439765292236192171303048885451532207347521077696856891482045243871121791960718759375059762099604498756441102572551787735433758347373393672353041466549132862090380676752819027758775793239928504964173496508538253157524674356901081304573208479899408207559471535875876153896397474760988898562123606007148029837621543477064304795225729400729268911885371757236617722976827666001289270924774887773464937939112252309069608512820568987627645237461436351617868394849851852419522356503782736610233434066497289192621485646796640373858828487206760367230470940350645356331699401157846101112488375772624066846234795438382747427731740407803660338567313395317056532281186981660861276200941600212311130397415855744583693408746401831495772026432916769868547288407708577146175020980042169251954810791548070606960263073798613473790792991690058399165455939953525148225764275157428254612137118786879806613331623635052200946702545559145369225740998315363161186319563092999276019681503451360470991815891290759613666370675208107081480517197750745602514077774455985614432582544544396961150599181915338333466711587558356465748615195682755988793833866683464981840053155450372715583427582742108372411743794868707054745989724468702863770425478671068347794693047375364183554201571928649326636112767896603055857111478005322464781380563824220344144349734963465469647446903128747602141745770549678753738297739851032416403963713951359778844068884348869557548133011302523289286849877063920516190662091589849571676523194957481364495944944256370941819719859684798434843219513767104714349570058914437431616479324578142784205164281025144826290552802114172453892253715458478383312751302236473643067352534639619706465599824967824521034669662362038452843633522944788913200546582314141140420508468827293602443099833783297338224821037714484999950561954992786138946144872140568672717845244277617186670515615818619698623430160961172364738241010611809385827331890716242291879253473599090131577805292193272477765392118868401024997410807313262379008405853386908259831819608037542412845553322400005164305893263062028968874967245177131284765349747810146545766592685626528792425078731348547853970850512054484656386287484279273759676468781731933425209249408161974632305366559379992905051291714386403183836802277836856251416792319383955051757408746164256644238291656872666568200639261666987053767294057731954314263058766506269784191802048058882057871178668692623473814515146445819821169563722567363692572220286768217374998238819593155553472195921071982661151811338518197855036025629207891031628009892923960679500006066301212270376517103259971268840225602913118163226804931110542567526895159641093495233372373887325235145003134231454779702484514779100037899600778642379831173393195362258666403446423420645072281092047704540856062666724714883173221443397895730276794642058708778511587317836854152112815511607954274571788106227176746706177264907637745167074946878313330043608345433332332895445109686857231814899891887959526987952618822618935037464935548900559466313086635634349510758559954630843060247763331458526535351192732340670665605889907357983412026752270953264156189854368940900683014467141284832840105735074787814732645772955978689945930499669019503689002057143950268460149148183909685792772799948856089442874913332022667660151888686334554702534680680791054415575516768701902509377607159787037390134743918694462874152106611829961646103788557166082524799582802031573476389719993375418762966554513466843134068330099675198391686357771247051744978814619553582281093618776926512971141870201171040068522459033407704310674302043865352625166588605333333545227280224319216868964051346873534250797777323557251265214306877520830266056229988558822912594037734116327445376224486506890666727858245835667338291883972640262581659006719920684312858383811122206838511463774369742743505883922783251795799823002886690496034985742000371961269015014816293025820428834175799472514473793453530388471160913526183268172298741948042325506931783650175508023185071297863480991151169990512836286103250761487095367856624392898607020303969265905067477163681840392275744632143461103679870046584106115795548873270114260359878785132968806695765284744478654681489490714417063064691168835007729003937147988682182289076331422359481297823629480684969457035496702822863973672964767312920135972021325078124102125831538192533747239865352823867781974422024082234855761948352584715430552929737234976564222848200740712196609419953095811020032787134865991189249056366831211346236432559660025448548281368574313766250680897119952945337715532922970568166900672110493908470771159548458177779684104438791797054725252132585238964462298664533459579453003697363357683238556062724750356092044917818780775536341218763019545289963040440058777113677443092028987708307545671132593529856411441645660221624600284401464556415478502358802161324608257446046066132826652695035129491893139056313718915631821663226297375950947128917259451794129493432084815959945687646566118991824315276032242302650613471624422361014781501973318299965672012555394982675082997692091852226431876372241897952058030780280082144937189065940468358930706686527766876654208958663864268559627044967885707820603734201179552793108380941259185936802283693146475988909228530442932420718665456476739873621912754716969823212603729230209231582774589443008265954234160515586280999548870569908971110536226625379087808831824231331107891291452306046217919269952143016784967882305589089632786245543720442806082018322203535388293298519723893178954320217090511380878692623793027134953722625785711614472221081572319191502343895696102359130458325443709699425948157720051279102941528915252754553991771420100690783875481008806957455982036291282625765267087927205118862023128405600510989208450842144601562036771112508114479497721816234115420107528605486151850392392811824080010522048842503656066660939651016056631996592173128537215454710878807389098280398094625457880993653724549633008445406953681972271553739804761019560174613995606961325810710677639803265548628984838128297875015181869606507513736447805854806363377277920026240919142045852031667683279178062446613573965534909885638826699825894793747417619679547462693192895561931396445731475399816484454096083967878091775473395313321516806461192731939810828155164360458555967608332743966277300519442340223449240819021355485703416382265653416693521272708599165079957794933446669348790512254485412287057419009171203718340462900278719950679868108509815922024002686275322153235229815890696830585929163401161658402389904228144387200889885800036073909104867026852398800455370168327652016850167216573194654837678470174279815729940126975347280411578134532326169637248791908595394601793856814846265354414757622578686949180798041619921349504577257273715091056982367918280433380242577957571647583397180293505816330279016260365011247945398511788189979576768914917289925925301070818865433089364779742445788179041240331456937078632971315131071168197093989638734566445158282291636224749784516085490268374798155745071042419358448427514620569601281418402836393563410328116880962829692464501464523630130762894544910319142351080819371934630394568080394623571386962008762657083923434421380335476206572690112467557450156496167444189880159897746761230310201334723662423576343767145632247035614890594623296821517426919770769043486199328994561777034327307602226955170244949490894122775894133902998537857519764718727209493911765334029118533942807023957646304228548791582148470540087537241365768207253514839085167114806839268372466534242538976079450406627114677793756573545205953145366475136702627254744962002853425453308725484390217159640524887143142695501998497745195327405443557188687372006891054581055417580236013779977638968745055088301614167981056886972231606396243749961970876365270817151575357572421849384185136822209743760716092764624054893139647588802621736758765071118688858778505817678759695153472028560354066925727674720900205841922157247919872980582190968582326959307879993771837268940243819144924691357777989651039875775597423305427339868535063623496715318178872057529448049739051008216863974074880340409433478087144088914774920244616383314430313078334832766658737724715174178695518945372867146897540188543626497533499427362680766364771151355838455569352710997111337121886183787085233479747418147056037576589961069412666933105725628224513768011339136732853761050473809971231841228918479191570540890830047327165349607632333708090775368827396761343739480525551616153860627871551561050747150909489980237210366968811702753953314352948116760209195024475539267000618658869612318361983066048687695835028481534095589696367824698979508882445167196491458928440603629063628393123399904599099108604712160134262049623455669562385333146626999533573690306798380527726926076503624774496828335221565572475882829366733536491310407895014228119010290600539375981240977927083772095986936542747479394859475150976507557087755680590273754455080139387818010705372434542531696238931271283494902933653248561906810916533948978083226108086521957309268333120001966382117883006753920002094777206689727525775436908388561746179133587368158240601472363052704728484568203257888834795753930763739380307405264702280300680808336078470836631761901166359562600839517702791131735581751434063414514550606799648131034794729981015751014738691961940752549503225087578816017841335471025167086535533216789269960719662680139741499946140917068758878182753386456936601325945261522928082190538157335015478389891376736114270914746454193526470068281141253689054417376695132605294160509527578904142472360606587044929664447817869154450272970244293126679742174578912334505053617140718271339807166559836674064424277471951715481879270137360926701214831246539252450412416515794000529303400966406706708212620810262462968027707788464467115860434861157612558665127867747564206826066543931886184921415528658529611741612717147978890915824209367146785008147353616485720444614243000524160233447802601352889741889218843979550735111322894043401986643347284110834275171626218112725642931482340300883033871820406035959584416722227931589667335439684358759413150466804938815712010242221117972713805507072100322502019852325984287983730055673374656068888259335153611742162062280050980206863808027332145608582250516860452901867722370947992618347361073149312837230248373658458994759502452756066031639099437393970158945138807574630960386361922367142897539291447229616650024669249737329373543080390080848726494275649829911217979031309932854864689890049659347948494300721225132475228858842958805073530273988066598708925000050895069349890798114433890146410801096045451698476858318486486648949530815195134327038519069749840459501654008982233043621106736113798136379370590768940748087547197764159039342133163100873113575738075125680900149581357416092131853659426096440301356047691869620423020353059934275991455132228683249395632365964104948108985582909665653430294524137503607683021371383538548121431686066783049390291079625639892038868333166693478596474054605210359786537039030196236117174676748567354143408301785540930329403507912983381089025993702066538119139683497050795388530652030215482893810828721152313298139857786180867514922516624033095146507304153738229622398563792806772678482248131808581366721643848216733505971784572375130862434085953478502531552682645932212328305225498237496163445861366508472680638637453384762549628279634709236502778496778065735732426114746891491475606278475668160062956309425181918976470156513420698150992252015184775364991404124723237612938332582028286476310308592289185792995358979620601345283300739385808328426487567852129029597072653836363918509343472990885902593127723255045467474186090681053082569288976893898887773528679328873857700462094919759122061698547074696372815097460178325163139226914270572517886527573935457573570322115996324655438017708108940439936119754584260399434491767084470885060132816560668375434644816334391583324783723725689963489130713787558237876690829248886101252651053900814576439472562713188502048899724059266979231938547425490295744078073546391913704157537061406387661071303262719491480827102633824615516735643989749223208209373526367589516870852354959703944719708765097386276829107746018014291950112809162388655297534439450387682109854279752095795490075650430328440158286720900668393363799549393484870296174364102730007434386601785338706668233487745959370395890093443294189042402733707735533506637571411432552499291906936370899465645048111703005620005108231255809183361605779753366062220909676019885177052771640245208675639485496485764181141598509503371651253157444007166375498742778941915877507076381735078569118001737545579873310159060797329331837987479517990787814681330033351990946173991496040266821350855702321705390511784691604149142009153036062750603116157608175150831662704574499117742368136927882556119587125201169394527114818239463416243405252247532731237286243014388123774600336992398495910825939924959620278173100443013609335588784966602065003313231635355803641512809739641932083566114670913285173430022122689276515431345287991378104852835217185628947485805833776685903927899686106400878656932171935558671876603648449266522493145877155693647121988953922385838244487196867203243897760049729187996979719898298193333062805265549103571413966179608848668821826751655120902142543024760636789324833132877085959740894704207307742178650332187521996236613753034560109125963583591151076935735389312140864906028928855980391993292183940423859461557618847074608603806238418634120606833116652686777220224790003792315709267864896087055120854951887107591290212712502206130613173091083247926161895154116243367505028634747240890393340956836481102691788881639941989173451736160596138088053266163244886939125235934202157587560525740091638333513119748320009250903774894502033458996702441975723607360047877693401938122843042882630106070542635571498230839421080813279388927672428657993226648952416430924981821750513722278434221900285465580556267825675597074095534522294500537695782951832839136961706367421069001431986880729012014287070265322445981827852061851182004783756299657746546008569381423723006244860951906953523693963124892749444854601867566349809287124490736066719748546453174386418435650667222582349704809331755323612898867546260187811108873451379248835741520207837503882131386765290424430734933714547541916260792346674111773469724206345556789052595681713535664875154935192304536857448687655757610995495383653899558854211204467113828178587003179729816778909719956417283741305363181538664286783050271872164853294486898885866781600382743888158926559744237464339580000936894297967388939002058975894790749443385364633716288595099569073130549328586819157757587459344530070121515099647348698094664133071123291405099633329923040260412587194820884193858693253175341976946442607744670955198683044732262391379666548378377691338672318159020652002589194995594991326698574327913924548856570068870956285870451230597388033532932207035568809925044310749020034099577926900181698166102925841868181383555488399601990307216021584972032987717861812171621050016701650036206137772208909287632149655104933318430891044652095586732711653604525381019783080616739259535155355553094521999550309367202043306868592759072411640927378891775957357559663351840471803011793431156795733871211768369189825805198523850190913688093833399935487992233144869154847613730401003602701449311943593906407556618544115709133164509547547889090305481804810484921951537310788818165694421363060081589211308140023619509553952335497629203562582040877859256232735347261281280838703003262220770101954167971193039904032335509498433221841382648088801181572671770680552147062671132214643419935004813257231653329040948844820550355689499719730155907481404475002506726686813496720622529693534171469656921286595698271118240475373668699640383854371535853292954352932682189100212811387047217519527676851646238189728418631803990818143310491239697211651477616509391301028063529229261512621030361014537018976182596720332795390818009499522860286818858841759924436135229449114364533169187848068300120616975110406329838156982298122819864491366712996742992558605329230122124072653694478541964469264991394725907300427380880111272537240879431786197950441021108522079124274465127089413070373028514081779628100433286995531281930146014941523263789271111587727813159707796483917123841895544781144782656416309985637327973588676544345079926113750763907452003148441749852111746529603122004207582167467475037822461696268568549479579634619277153416005867071726265696189403681129727761744974898585972943650188038208184767142702237299275541922094310990056478815280903799061105034576716183026751837421552982996501248418484574337275404486468148321150869889841704678940048831922600036529153282261626087806590743054121486604775266695709582040150269986804183431116297977641684867407382586522148595889467324090591945018435411730530484811996947502641676136035673425131325894984196986985459342596320365093380802214109198581054367616168273116181669994244829071034178057472432165463620408745899808871770546641909360774384400873592842233983764999870828122193951212054181638513088662557881407805829293344972785480701196344551240341694116915165417416410880097675909907912472153646961067586944282478913336011181058997997272423225314167316788581411919522131735481877469711151122986832746657194771319309602653152116125605246635178881300710914689200968332026823583933882663885322046765344126041515380103583909219239978194781542080565112498402642936795208601363457618559874140397123589102834622205399942554922597391463530044640544849147587268126911781528289470304436874957448519357769467998383920293739459727329654925650896104206384989327258964416991051020297867555432996312075142696434681201744064284251859428742518052509814534146857736660092767985940998508774493518005343781728710589549634394736126696608778158771213541672850354167575438144235748863059408291978405789788727129653462006915860584628583167410642871826757931056714144546891749436141601083956840007481543272891153523163617550601935081770598170370015948168961529496712712272541122757655655425925949566583430373981453318688338681561169810794570563375681680585245305679474427264621706379993289026539651870592363160363627317237255307863664152786209488425539809716792534609797526982638997912431332094944363907652124038052793188454438454611527588996524638123330505448357181393831721688744941885922452151682710434739288255891424051368296510091952476176629525615186609612423352951912096785045708222136443947608424371249328875786309802334142357854189812553711247865657220811235347669918890664624312025682506508343436649845158231713202637749925906398002287834847530285979898889566851903384309752478861075535128409776984037486465894916546485118765110283136374092911272071144248665339023837628266754078976644800226802886337389454277347212164758242537185043919340672013423328576211825847734783926744387124455945114215713328193430575619000726796092515640117096321106416397681276262225576729146561449343353226009064059519233945554478559911292477220494855032028572422716668283684086960345724792755796437827825369433319610352594328038594124835969134394593784153451067492738968080689689699107818253555754899958261877745613676273639008777819566520604115063693514280642926874423123008199578396924749576913883201993679592132903614926875442129002663246219546670488212619095034831554149682911192508856220856560608618146978462645370554333518830539120650181933263601546856501673422905784584486647299737191714074490162790606987093497977726306826195718466788549375350953324275762591057866182024613324127213754720521121018445499006035538595082723476005923126958492085510079748474448093767132918376414691194553563825193256552223636770824798793104760990166162007379610771698137690627233503966816936635016078807505932457266719076378827398785646445457580333872837128590751726312451575002735079763905344727083554014188125313406381449304104292263116700425460292120041769606882013293606075456181258351573568426004415110826060073494970888229289491465048109279966198942873486195761131539206083821059456805675671596657598159011560981932681399639873231453287158321576500033496768755391402126467719453609027915201560891231657067954633039675939197408268742385901689115004751351805938593434479198633313465112858432205811014927176838714986985996800202576119565618409780794539622490037823117804440114804574701947195718912648875983043683926353733321347267391096942801265925044205044101252220835480502622779688410557448121377944552764276487790886547323182001469197308506496010350381477682356383816220197986535171544403023232232809345294764757269552624250182115033860556745895699905516798871053160238753706250344461090861582068553936163543229637917411097633872724470316157937836783068138746870745296894915556818625926246951125468132603396350540254189663660635861586548599393069298929596843888345277878644060503817322028524123460212859224272954074360490752219791828836939182506522982406903679860140744372428616938810904774115275549340794015207814134875245588924397700832148618571074046381107183693338327825263745781453161748119847942278009140343505273055315992033439170249279308911391586351496612764681989283654810528030739915073466588305583214957963785797733455895644561073727024254762260475839695502639748979545464132094363021568046357562228150254760257124531181983450251863220126130582173640335831551306298567407791679116746121548607496190013090161156388824625563467482659903251512917797333573513584713704080998599631110320498931232092668338615000812210933772534244515429940923022004180094933346165396239829374467660904345556439644845651983531414988471816973477062166205246154805503667917859399204137366551498587630030070482864610831681483984506806832380217518231453050766865301512309503312751838250818513509693095086526538029700987260305772419915276479339812838173430456509473095790856458443455788814873127996281145328665585794146888431014137274187752909665520829162846131206056843918052326926441783723609996952639149854763051632701531204003653225713805567183419511720060641169677997899041138877466266631346603593651627762124945287545483118295497937563174016143472589512619966042462053039252049462097306732734286008191474769855703278372457677521228404965378930046779828621672689655252336716126085252991330002753319945972977904412541323983732606440386737825942730680289825967071945202504387162694461227144287660194834920699751865762712134166624157884249624651374703531266019927254978689090299744550306923885575026686326466502815526029622267712466865257699419044955935726530564701711448883413351761066911893251248008187673814457709570619358918526297903924355409254321790887782853203564055872966080236049688202157422424470791479199807341127528351089250564376330479286256523764460816181452754686808054506983960787117522085609670757828769725107047743038991650820924442281463386552290023887504639849677276375071751506137166541563457696473375853577656760024513617818591251015758463730491879331645617853033366191177716275895837486705327592880316480945928933176106753592134112952307656520439500702887749574801688273698620682415971589559326968593742135920628101875927152671345665963369641482813505018837457132564335620570159095667483754393646541582297727537832393945725259863821022898222520618927112372552920244518534534749021149826684430263886884620419642783535664514280835153227608559386541820777078997160877914740034347930475695366694084468463855464127782534761824287535117215004363741311620538602775979470968657461933458143618294136032735914314694599856713539591439083185909142485171257043166300989090620685193312925681176313590983821053733963686740952368766619724988735100572110204213706918514491594246224891750855589822285052990029122858604870340986560646320781663938879233440266620218336520942584433831672515814432952997965236271652349777506283145151429179928991423637622572247999849961281315852264866543100620691885740123271815080477355957323659117037680991214128938760825345357629794336774938769689639635748115623978889940023971933506806588994825277355178804289978569975157986394550822943985350254015994233595562558504046763953217315948931865790250545437631068875852613208476683860568519471589293904942890450530965060625331927014966140108758191645825889819691355779472834142238415445626568675965084186400778319389289478143784568796521331061533753456720116528346572175674595288584307765622219572946337327464220588879839529553174663726517771431728776932872223967448392019778664136258920442105525850466924129580039482382134654797910568181567597583935411117020037609971776907428945234225809385858880252042816556559535220525738943019795173176612003354546740908626370205569414085847221738706416087784344185325502153101566266716930565060639201127780142158416786220953389981541918304378085704585301165775516012780130366096095564660589933644788791143031227307345916047617957026773867805842962584132948104521126269726920452073680159570756275636687555171747625106701394842465695062438293614704947100874007932361821617821714738243553594570605163320327303645071923043906649690946716574937552953147598970708126439270839903356986405917555677773447882015153761248502765552460140389097529544710413837863276383380517773321940644063026003245360304977709466133552045183911053286302193549904750833855976251092821132635305003896569783139838617221991204642801531567543453623044711321742923743703334936909448809767415424452311231070539830547044546279517862920438552615943382196135076367726348215459903971005924538688509700718833475230473978066450935204058820955134145875266402202928978076751951945537933290862183741238610238733814746549563013887732980160570942369614033326397332978598123745959305115836342593874382613098551254928340903428751078668321115239895043184384101629150203836602429249840048825424495126459636534302187305433808910804818212860363880453227914765091376038489208335930202512328023932600292813979154402949613391245182857994486413181973067428226991476861134211441601340550247144374356401282428633187139784658652033043017676178532702803481336575921813718943370281080260939446373097855922898030549518949756862980755270387882005543086275309015282740997151250094468359580161724824758698275457760318471684470536300577549185938424810779854898215017312773777668370752439938136581679471152763694120054263642082654924585373843383504570316552968057571327129950981435767472967144349606338622351783475810846811921303807871507963483845558648625349627896165448841045929825361314909422833743296266265902299320855476454911947387306936353261901025769637971745453904010142991419426827002558988328967539473212240941421725311445948852853651547857755860367264132699482886391383182846560454771252047346563346774235894628881512009000990819102482789358375873128374443577897206145944835455175167796349030029840927387604965720075418338914259761691490627766960733514742468712538887184431166936277534136132056038812925826457160641339314985355386241376929449213712716312995592111302864342728869700362815025058472691869447616691765093844216867491811188758218730892721466301676474451502354360542888202265654455476321122785506757570566982666360828351265595896985143902109634483584791753591967521906495875681242894299788194742118394765937479962156023600461891326451538930462910031449542968216630657567723064995180595462356339349812109596902875235730475660595907353907338610403735321991596436405176274065707767737875135508225869837991177281246502161980072201421808508704774592652083077894541526308776355170466887657512533514191571786538051055788101905034799580632218579573750852251874013210925272216086081344493044721272230194105442839425354976330426467543642304128244752825695072996976909808814847508370324417478437943590799755823753323787521376611392424793802395039207110804073147735411369285892855923870566730287985997936385795578772193028528270317921202521460457282821648693964435620675788245031073181689761444530354781837504774804840646075439786400715233908853098799351444524140935202938251755639421492943632354379604055375475389690820528304792669917987642688660351238515043306072537650872692139627855026073629032507407753264466545601389674117139750925346588596106514022097392420340932718752567470908947445197285542331407523195167391664479621916889871020582595511813731343199086450207415665582150855110602716251187032607450557368514399220705850181308863053973314710641158403587053911244300918335340647197883732063129181225198223984632720954002540133128002806855312859152424795180226839800350095875181119277325254112660933637645548593030659039527026684769011953566613899863765177805549944677555124711539231791557801857619127898971077611413345576690871236089986882284936240398971384992228794943005214054287659459021558285666567624459892946604942018466932380949124329794803028382863679431676997839822236904855524998860255902154188720402299068804091435618771734497072517509350670063048251514086983696113222294256805198505446157404678451361410462605147584474443550242278724052751423215369753876406919318800168364302782265032138470695995707644476525732690374207270380162255665281259968273501553310263873227181316202394138809243452338320260074447222768874020982123133538574062350294254528433175323236946616192595731896349994899759239205107246870349597179168282621813497158260205966682919305486750977951559449834643432125316933990117818907304771636924643200335292523780108748365094348979658309709522433602090449815450631769562252680505068055663499734929573844420170384832910366873241912626063271173081480206384602740560736726644496812105713862968037067819610904263440413973501859217349039325086298377434438116301639684312555559017295898690194646429297622000528041725487866488748101322353186518404623107208732800712508452484808965752557007314977530280700625057836882498571415480514827231593091389987400872212584067784618360624433118048735261504300373402986855662276503752035928870895376253802664276941925941951120138514041693764975969151553331913781825846969278549085918151860623546974061602230543356597053881527015652528377510275989580492730968857281985059090330148496598786379345956973392418467796189465433570943990818204978277691765520083770427222186788305249123496656140776775131714406733847251229337079367851631521141624129850742983697045709683340299896566143839466831187055710553821892980376925608418960771551061658342977455758655393928224490862440852999956448706450673319436652952897527234723173806781075495974818913167010099283524005964367758151752419477623418003171912396579909985785483207781645725889189966274770334524187731474980729771303804631706467776133406142581354382012792378615480271768374454371236122164528425243509394470704709471466911568907288718040647510926811446747356755076872483715201253538072325406667680730073241809416406275451430820128315395504703846936398356965298474503714070274664092158195963906048116637049365384634203137238804710400732205749822231012381583670212371342182921239786794157767177743894342921475414907512023421788653645206730176373060606846376377164065714360100349388475504420984079403908709680825586617790080261059386776293314426599460154803660657469085641386248497824048510979278587086431851296724808197786346993836433823910945162447073305332524843660003811448164319590178500015848047736234857205106195901789664247902168516616233849535478277501773919455722214429012619216288588142537069267372681742322549074524595323567580658031625369280954539024046434937165194183294273160948354372159397340566203008645728845648414484650558377437735470804032474964013136167548374355245656284786041286915921161817970202269516886340230479513340770058564713701303014439284006526282210682408775252887210522725386063606762717336090234687716154223957759068384317516985130252659300576577229872701777476573610053161464630749261011061695268732213658009594543879302634403178357007311386961361310732883028667898867217645673799469281754883673566752273311851471564962705165814934072100829638624070248410185637679806059579370159155710673757414421993504856647294366052578319495291667474355154167464394702353909908011259280684638966478301250457252494550653091896509360133287913295401348946315025811372413787158464846263609331725671575977253465779625412452241251255700937655711300788059708009609889886063674011442317067190747455698264982500040291475492819044988044581254524173305229909274241241509267258960243964022348697139514367548876256933825192182567251545611134551820492788335562361737589191823259654185444368238404687955950908598147389405241862279036019422230903540206998448221964123542177882017275092216019347757834064713822630614411675747006006926991418567494061606928973531012245644027340374470435679350843380164650919770409976375955853528978565791533721454311806563379020763058809913238525736157097045452456163047392487562215238109768622623186772652519689864748623249522789752057122564077509070771630607468728113236880955877637253294847513762182335395675350449975259262994271686094326681840639113311580725891439088006840516837196277212667318111472254716415284814863723716602175987299422330705419903153435627939992272540476574647331263320686453236585454764093085504586082862277921769053181918185497663465790404476271085214394577038789619251844076707357842425856121179210059221494323042349453432592690710403315897611488053449192856325025158923914796170009232104181020150862804641680328778819310621222012136391653310414919033433089836831458652836012477813685971680578007667706823349789001894670389871322944502056209128466649539760117074485635771681744428745860926584509405106895566755616740359632432577983942397980518486024612012715171418064509220514783255452896101660647198679757265004871652735537918382388977050791063898592693407888860336582660709734783768235524619653377729116715382974992668242432889862972049569392221334307999112221393414507277588433792363944387594426749808749704240662678237132517658872101004331275186626469878251019063408875006774223937233616857171527830549790092269827409817224063913876385487030257363872980340579285339788709967324820279289982043156154745833543592325761448454718094943528643256497097126585466154113653008500444853477503859661406929345686216050211382781875330144201517581247194072828463679162271799752463546084690238256610449914380240643468468122893113860949315416225110827881456179866223230034676947222491467464054730957939358712045227527039754402014482420132952880839407434464574391369910564473753271302699312923564514510688934987746445322173860231599442043022423621164399251197036616105604757036531524097228730848360319810267698305804435305167578077285636318408195837222500221138853781871873755117687276351905121847785540127296236214373225504529170280984610243990061330067320066054446698523536855459152742305642017585106647563108077961597441397819915640058932904924878541266495381519596454884411742673358573542949751149354336176138601264109755563012858453483332993502275817516316860170754605039532787133331185275536972147921723379744548313615858384253755168482391287431686572484933488829283214562867803873882237462879608288109732143113302541101502937657082160662570314411175543712591393254262991742218805836310727877083169782137564252933032078291396862829176235756177071106319584682103003551435385772592335351181623676827745368179782258192841778477111944250472464762738605332607196811901918717919755782851923166279787535882341444155217297536929283814475733514114419389224091872187575806777696673384878137537774831894782224229099143498345970997294500096895744867496462096761501108955677775878465899905989555519072417401377402086497774328126926685225181632915330570461953713696670804177540728674220387167029073579974168966113501068274946260812785449383642581443437910303118449981238435501879101726273851570664926092487958931365252229517919601735632484482616844194441962691990523360979625577695440596149642785598730897737177395561806627261239838785499171185407325660999452288623446662899408589173695804573491329111173011323124541649351142611431115713841184174192384740420384139366131820468555239120937165927228903975855032887827164723174694470189173990759572486799235940478936637615596965575024024430664418019261112603873605356229170953489043103977913310865774094341085660801720734888965410310055235835556834271117504548651417837069239277722217358398702799934577471373672111925558588210570124501587203604442176731294899493757921685606087988860118004751177560758602700779809451698458280479775355303145615256803279519095950441357067714162907188421427303762031098647753941934110989514075979939660481234659470084906976724943839237478133170058234795556733525010285707083917779732483309457750346923260241040089110549772020575875370370891304338730140340425512937873797497087975400248704616214093897324569835025996708864535839191331497317615308290108274181772917884795571859076039266035525382044167100056560047836573139816313574979322890839161847098471750140885188651035276388984492356344502156362425034399914845532575813948032404875343566542918790247429696460589539384554174789578075724927626261989106964468786816566789690973631915089615087777538681953188886287414100834263948091013462333695392861977757683193557366093238340506711547864652502320433005020331780465510851755734239654271309169716630397277393900476015056064465331461540537149289322684228007581584184061223727859196117730243694725697613981831029785306035668447017070809402869646603304232880448708033752287382861285808015073776487648447729607291007885661640128304661116857100672853226459724882303516883799375982220051635598467087155784976705648681037721844543954050089996612574735112354400629163370600803379322489302264403993720155945486141684103950402367162446304302198011659782799959632416629593554329482741971119686931397112941269717938845449468482167456114658390451511176297664560130306559863932526116474115228755830860174887452177390952122572129395487379141791376686921906184254171400174526233577035823681881874555576598949639375975539352622998675266734006313524401906328041787348030761443242842161894921234352190984886695214387092198089241130402819006442300981361824541896076120267061365893573917324372989070100941670293449638973854003393942662862322835930447362377957689361969097904559207859353580571374451817553011196811654894819737705878638331662410172567733182182609635171539853300544399353781872096430320226858351588906238824711023885731465620174513892789098713089716350304991717028548443094690319564437697627943370868868157178375663980630770830315679474524059907169603827194459263640387226659363549948525492278153000053009198593567671017281710367979303491713943952269148701499440374607015082246789950867756219380891536354524345073992901686158861777118071692137449902778715268252459543752802740277993937413190170597221551932153449712764264184882510902070520443906322759742250627216588903588029954604132325260813524023319648671743518172219157717510151517012749105220583902535232864373370245279978434827748183107668057259553858382356758229468768094600441708910330969456213809400255605989133816379015825208267383214154918344710386204650300489991572725814935680216234727844504335793947440321694487745861276317657699195045870563789062439996807527868123708753093372712169095990127991298201854114983382642652289669496137249409239715180764306570942842337438136007792286835558087546393422933729847832702559780530302773046624415304131181515352611874105540913276053673401443654597507517887305631335065098284997940909870553653046067693185362327939680994552795581914089573045715785225583992977647877092920990919610111593716851301610157762364286484034495228325543137731587554647357022632741377870798712419802308045469609469943563777647338876224601955118441263651431377720375755881930327777691000395632042336456987726759838277941206328477661194869825625280416883028353493566727964501941192780049237970383708614351777096282524104017636043468256103270993036504546492554244710127840686539814834918066848871131415687949679062538814172705900962355635326772550351791991255525691566542502901582866476963342800740747906356366428518018045100859143632178739362973679319287650721889962631466562750329989920761579606556143506772225815063545332097357160864962450007596341388356452742402876124772675412191389509539859007566827606012964102904063883011960383609873119480409904949436783069700637495247752993924075714708419509975055685981396563449211702985154609879757506896253418583993355595759852966387499656189604668646960242483436011844829231501371048308092612884348383781046764973418782565482333466532187173604804591016569272276441895685586293662464374853304001158969545385216499137590697460157518896381545814992253966393935488838870829686781660357277321097500971562917000443994709916993112335630549921451462344926073752889686444775468001182403148987637045063075467500329476140342463185494841889154806116579891987471803761221545080576762502250527969940141300593148181061711709845478106280272120835301212364974601942381586173069619645598760925780634881337793543527809673212684217997685158366778551411848820612991233716816851882152965595241360827569712500698399092099088571791134025728621832247754785921224923561749828426972583306764623292930190249699303142710141654379565064825521904756455271560074738276393940867839359931624471428342719857625349572170182178201563773145264117460616977337040997287832267940310464190808340515554683895982991166654574159979545143566538783062413168708630725443636190186972087416000874029017772361161648439362316858453289382095411708411152809517827552362591291568691418804614813754083187312202371074666525137789135771404832461431965559837057910545198375522011815760118058505573195027594931064902151879678969539463920681645111800390487000100306051355647592737470055411470462172079823026772362144863151731380427517512086350646472981823087751668052539620659609238945810073986865194673177385310877896711894113869048848927378157783082482033359828409826342607113606170149792507209457388658230945904138604242959806901368124991360116775012451198841190982201343418127564184786964704053786253355997225448925698586465242961431032576694580363466797784728384918140007249769263012238646967315038609791667690844829194186149136244259979319715476635129955577394031988104486468062117835794686758951464442940624992679380344822592745183471082028588184999616831050228595247002975036880419675634519749110084226117669647838424319222859776156182320723366802949841786619224832812359128901730199857594427773112266924633354827114705970653829564068159002799201282180528036023498804573713497160910549086715028406679200325465919857732534465164567832191932689785718144236549352921641610023797246773012448665721178479857180878952065759616790603594495980143331871424281380532347336843354623228673567057965606784153583576239474526235266167679086184736639871667333322208231615821793368766646866762482134031652050351290116092413542087390228151743370537954468935909911199253806795301804197083209279922531130018071060345134138608634775967965491171505853001977800898280023859534157754135412898886498501751553651737762200643974355209517230876983187497426962687056951807452871971048026251408087790025772795435982098834070940718251853653033318664981719786978586582792178209633417054128517099609829955488339544288810087097979516757782188288839459754295465625234769779295105230717541011416480770241800160013245012710981340515585376303211021371857308875113742377212430220831315459547656235705814651252150884081668779517091084737379036694930782106992075006803279032190423815632091835217723382293488067226822625162833019950256669002535225716860541883126665822782646399149243807370452852640295529498315703959827503999482401989370558007612227374162491632757865310353063243340282898257629681018739109510081204087833879997067051440410414209288061399710056161057283759836783377702623708506193105733895575029779969936718453032201173935037014386294366669856090171953261513246288857614717462123284798297177285096623342668559084521726375927765640484459761361448045035050657191481847008900313263892650279562668358763316388631854048619387362853079060084147446098063083638496478682511668826939975057082217057996450183177765915894217403826538611886548524446837674745277869870470808752666885510393409956749155271124036390239741976178807700343573036641611962781238458462973215285303106042030359789330401203082317830953249015948664347940856298707680266759866740251269629906575923132422813805071801476919523198233847243080264375049471861927226835125112517930186954174293777414322576820591191790720873231082268095508358441417881739555153612092946480374735200068235861407552155888202532033343037612827764764412604656450744051876257469860528645275440370186251749209111634197975632510260056878293556051111324837594959251364670379276202378441366781134236910994824388519344001872601064386405103719229694872795309669791555468433187780018892619938826041835150652115276509489551744812341723008533493713309255847039323580623466288316347016970830677484115283982947345361236972062456555037966813971654721960422467652119444882449162627396263219125231281640674549020061281260648872285153180948317984232159261569092269520778817510959231747778142692375330690111363520826434029627225119523747077704912116335587822221403340644002041392689606920893301087470862570650721979006565872472773303231366737979053586766734175828744254655118325171536623061210021722137389389289707270741099423963134936805679430088898218057859457728441950146544928962843879885487800297017494270784093105384820801510683142924065119909229119200429474171950044815070400991689817969508380445447790821326805909186367033460421177327876173110130980687709484442927784992752374253306892469972981657807396739695734044960931393024282810293929224179975680470146531843980114718491969998175902251262884919099381333898440685914779639245338940260589537159407531135976119820253454745615378418125355496116374339733400280414365386396536459350997982676233473530119590450604931113401413914107575045258027350218281243113493948819867721297941309876684772173551238811931591240286646475742366030936222137151814685429672110509275458208679747361458332027508155861852937738783229740091564385890180503812578975806262954427526458567696687631894689952210747168045855622287886177330524527647470778643493150757042175353289703989765255124047720721154011245015246152875399750376148066270298451963224313388066306759813224971438554475893376736726103186902390260861335132819463842842663102496144317929306764311567070616288232849377101745733372135582958313956115149318653324314956542282951370520397281716543148772895293749316981111099336410250291661176966290689849913011173996783379245022965057658380409958381639071454616703922637274018914902689458041731410341532491316452832040503580952030692198651505811301813749180851346488808679530650792357281688999113751404484037538195901202763679171016008662091820053766057421606033029949850288482960626794831983041684331732732755851204833254498514983017547585623357367019940931577177094875689447971988459436861949445279260165983667470125475757333762111095382331419489794491243169422211635481302786353783482111501296924353585237005575482498265057940812044973538240218006534570984563164663616999364892511154089247063177871957688459966071755751660011803495452671786020419528431062682950392683984969468975984623775268340175400704960649021584746974245211218932767289171178499385995685838298876767850152527009055485954457881238880294561937398711178347810093950653243473571350655430689269096346682175947660176152831112582489697871596188634881028842518236707624082290133152192730061261412340904038481948025708773736789692481915979791468470448906480753853177079763949021290218690461865937264945098925349486004849426720298129005267240656088817985891127714048563446843456649565530567459295421592800631654704094092426673002567084851406504009321899826556466215796907145228618784224463706089321363857729945680276406344354752111907125899639032657649861838891739212496108574959629810522264948999807419010841620412861196354439550172349057972088425486322389089311064270249061665174646347011733173123831565347489772993234779414921832424240578650178331158202938266336186633512077266865048195451074121090779307643602838188363006126616241141281999076515245965190436443724711941944494169285237956387046141035616665422635064699358131269211027983434427971189810154537773393382552725358040937476131587575236426854354798261858031022935002891867128493931511084289656832250042151974031091506291947743060413180643314281027106644989324785165448942151097402000786707257580127687253269561704216886609006010651622666463608472145779311079054488953814913876528437014697002193638347037360979490689818878218609377129773711863347897507737737189906207276761950861975966109092540820910448794686013446526321489541808229837792303325244373335017876077663384520402153024181791090440101015166454959505671045103164018499185572933468993275576002957832408904473600089424559250304493174757884950990848171801923981354320185219808901699391522507414188386260247948987635618712283872851173168658857800194884190456608573950085114372403266005038429667250244182452763156092310801524507215563654204245799911407349358497310068681440155826271515382449403637780484265666801525661663547933769566599639340051056029688707200816978095126228868162417256947704702936656667171212491168305050519676249494531655438886400844305514360096469483361140689339823627485271260333709760761417066556563019957805518755390663822786179981647351127734810215439454927309996889214035899453805815592278405520649418945605595899127719995219089512963716199841220165482528057082659631397582930032878544539837633303855285193165558111442786713913866550310100670342941093689824665344663694997883353046488481503981374435335105075585331452538917281653710158181921993749810799607230775040546710915469468455403628774210005588798740332704902120540413924958724194573182363000632201625435584881422832418894536806441218493621240417361687227883269621981230347124228058129021138819110890488740910179418084965729017711884367725120937663158212247364155767482296894545833201196681763744109597828585655983871229668682122875802836110758836954895571868056890368171808341689586149148961104361481382097101697507289977762804257240323005195589878552758205663106885873763224390028260704028073045365371286505010135261496612884661970620787927978409454627239484097795486705255925182159466161515545180295089312915564974447754155155057501390812432006712332041905745809448562604698121346728437752545716073924726438711476604806386026469839776553133020759613021287911420209701551496510719486676918593563706531466856810851391814299445421284336948153888329827475665142149927201742645742133880135423924216389254626881927282236661549552824121175750344814444202670591908354560038686530693037917123483825239576946769765955018956668941095564697183721440521002417118821830569125363580613051609580682748633867104324265488488128550203272248794020005770707958959017297150650547105522581268147953858648027391008367416005943269947945343880693646162618518502301728120349919241596688981726995200715397238773461807026754589714282295752834144534602550814619848431153626099538006921806169070120310167951104423124173183762569066924084102161526187874165651033425298256182578825064171568183123269749885661001158483856257024425849124136602620019368737152709195569537699405706849713868511064115397597183879803272389831417926668661844608921414843426525069288082119019029880853059480353530589113349158860228090133431099110856320605002347412155928812196641491570270541982072320559939737567984184229590576706394678203876217054314307818610575676220778563378832648689192635709994120278274449710860010100657095190660530441719524153348798582211138044574204677300066282797867319432646603639000080699121210603293271436546556242770333543750655079486007410250662188410460920699237524172408864667668377493554954671433763771701217967703830508070541273328474572003199388282511071323342418635478359473554630382474052526373717139620470746944957715079683013327661808376666536927881726525285789724504520681300462341339274374173349290838216653627168986278531345499715367135777886072470370594666459938282005973762808594574070443283429512703282026311397350659390379819050243936940741119667288415813047951106144943942629488888141814647299808697068906558057511374939094433785890709126610799594807521477649938613869568055211308500255110039444938359802350562136063112839946463655047899569510714815413785188256583292479078995491662557271182164764682506470763170676648890033067109245566804713239077114225026600822422445049927965293467643077864806512627337065917514041002231701726070808860633339729978971095770018583445529516805293974400100132171168511555991373829154824869082874781967794689066621069996459111144140478984336536758771801009828894842300724479729546390697440056125382202957829138362508061106952554210416606518076913498070969326912545179784986424079558965599051296419250663257391838732485742327321747795733046573309412128723580429906473431131681481647152639427250196453614246249641713857978916104034224241437638316684715704144989269900226119868019029949812192398375586109611816947294620801744236315652964416037897238581368460001263465736191940595323549419320553173533792512021789380659192425883983868312285037913644599625849961341768796244740217185979076181230387385337324327985587631618779340251898137996606837894287249595600761950923554302523745273837777494040242052432617616224289243423646921098065339482636397788684346558765149823230753945590731625511212537975001733176035581329394272179986133247167506513536147786213435618135612890781496482975400672556272240787220631581808383935997364335934423145163679990506457003091728763668530525882615834473935794278773740137701082552079763751956855510723155944146201365189317612360057844421935316742329044676006670989548902792904734122588129160893621788454575241153631289677772030407124087497226819083685348159008534653420872964857127747127865266974050484373024170865990073996636838501566897434814201879928920771140508680497368189506137466592144858432918090482509595758203825127628235520947201088853163320943476585873177364783339894563933669035915240009987482632504310474816854592559352196892882878738856836096334748985655835669419779488876281592677366956821148119404209421936104609466005377719411103001197494617917198221271346481318981824283743767660690269187197955943685220827088500007314123546052369715066050527002654070934845342656026437431073982326625436549493982660902118067114117130586622717528915357076736063562617869289719665388626528073101118888502449076256235343625669755372805292792258414288755019577005709919988456827285069308628639247479242441705693323194356127094889253938725669445462993119961606926985972298460729574622835106317826090947115845305175786969286173489468742692161242012868003899409666703424210809253779637168150989031756833511815216406901490201048847775273873958767264212807339795264443478051048873116201580691617837610245259814050248221170336601187143180868174248288263361348794767193074156808377994264566746840680565385227725287638228489993731314479469606024240175722838761677574648336628821109249861566158340467047085391279661218922357095860615423972223726504031037285972722748666968619764489977649559922921025759099284026506420544354216388015174267193822243392446688005066880673675614768158593170927266048353630083357720591385306794583046347505841319997107986269172256258692767362383568098291662086227330217765578535967306142268062632749656331441627780806303794058388347874660088640286875436594013010433159613989532965762593585922414747544742438627509426668382313199135688930240985544668929759361202487164327752719660758185773972640495871450217435434853186805617877983024725551638321053387622952389060723452032902292531168078343533045619697503050023526066244104104409609488491191109767479855691367109352449409891874856280090583568975242488956561903423328727771694549985495198472657930966858647090778576738395406029430641476165200101899959774751438902182072366820985360073206885069206593431447731309231709948238580745527637990929885800301577123088590522059155929004499375880301690459444382913376416305244209445514598032087636130830520295271235360831782184022419833898193531439096094048980256073088238039087326199765771379393545765072101708200763180574239896276579162290707022077855287819233319475063653232418756555084663713277797266055806206447891431123638963633243732933340253957027177932943122006228576068425791626233896531237631899140274667212149556454498104395080262887253900500332856852148843936917017873158515800047518904920768012538847667990186901974529438684050505200522041321079379908526144461691474978714140089097614282857754551451715304029603818175520721844931740914733898948216681712313978082658865739573252197124632968699528841371315573978193752166792215143904817030797501129226685484120938187925894420400901062679792134239179026348449127585829937293879629098220252433625895756423497346722720682336000418242371588577433218677135641142228396747469801178797888989479698382273317075031100636885648960989131661877885815137132355275036134861118068617858542461946738672247070499589083979725189559196982586771336818529615936937781439818168796853351425385247441078851441465679663941510012142708898028617665874339768272337201473754628023340357251180813251896210454065274734424665072127234046603094642237276902201399383891460212755736631867479108742693829642107354448152476683568776137952447755872783529871030130696358224363634477453117199312090082073744465838026244644321634644791298000882110384690374852713374645764182673673320191108062241498042784022351121848021115564169217640073592770014836878163789782555837201669471310349820992116075790926630905488760537972131857196800464379500676746642951953033567011927430850461536782190536131589538403226222225427217648826107593349221377365383673324182656342922352877628286367795785294672940100050912218341899216709718097048433149196473664125905981885791016623275742700690113233626341760831649987183990142044048864508888841511649535627789021082543496068882212163888652873555644522322365777177393368668134446484037488933523293957316215389438153173009018378280165213835143088013280936673363398870252872216015097995564327548439811640973438113792014034286511016508550062660112456211052206606291169697198251622282711994605333728964822102003348003132599373794428335150036258339566932440723229654188212651082311655900238518527063439554171898544345804092184023051188042540804912553906626643263731951965288839820351320640686852616663587774251516489931759564463458380326270606172121945256367983210735380207610147522194818137214614831577357337661356749058836666731474952856995267676768201406528710245768872016808778083406132501849579634528174809878680052053311742966236498044507364410202765990828164770699801261330365955229538633329581089191859468920117058647572418096628166029685902706833857730955007553347894348437015934622528161543996884178367120401857881573040039395746580037115538900501266436588255613484432080470200378899141764920816324671756820564961274253420894414661630013309710602150466559549934985340413209419461987254281278652609073960962264425511176543051340336404728941414270010901372686105523860105229772580906426182782549763601486869633920713010502455427719492770938719970256363487321475902229144920448714647264278583029020543010782947607392071405356341421172276171917146092560314552403887972385903518507104695534133233235476456586892051269341184991040727211330980552048246323121318683283218994346931295123047634278253643582946988154560252084250378055349999576441082570616526479313707629943362216749869512898144568665838620854241278410901018350277978080191686727246305398670804258625917184153786778397408173623530431431499608271197885724959221309159875002309109110402189658018033081724855095125053662432812430160535399167595282178054873790921988562774430052143062541685591728278027986643775206673286950111219747819094727963818677842407268342349848946981931133666045227828685247003715531133261158609346825364421591896413336115483160376705865160405895525571808559327215333777778565564855786640737949627679058293415008670714268672605126583426208291294315888275534152968832205883583737856202649043430785111360868911541993500647393291162779454551445036882642137155929215611791232307131852384279000910141943379258316994152996195855682586960376536790241779526214196645703723511057602731714459608813158753793923844107995580163497648629745610803744633483952216939286770798114151652050075055242695512827588853956579952103752827523701849797186720230335134390787232922744596800325836588796574626458948398935518870785069569662982091483205065424781527799891651951320427349488984117939589797516052287843004037768548702837607610125759043655336454947539407340735809313813766983517135393293590398496191880177978521907210187036805694717957933493266129969784165021331900674509663739645297642151774170074761234774883773350857719142556812701185685935311487344208060484004179531057511397815882216782773646480959693222831456377806070519352109812242227603255884615005085000286103243700753216603208870734242456923644426264967086907785266609594325042892268756347980519872368865749520167855479494525621487368720100609660208021298841160330738652051025218619884188242902226459965404789900820700996538007455455679445760260026857339466769569632039520593977818592690156407238218474478513534695406057693394506277354954468575679230060970970347336398654287732709465273109477229291118140209669006660564645295727420985894872670273179525094742842202684910687608295910149845329202550323689606503102943295628812279563407996221393383727348968134649986118676769870101627057599864757314359817056861911155186424067377014263439632959114973090451368821378499946474603179502935412457561474142186662371097114896135867268522317059046255897642488811481671355942624090960210495509005987255826950025194292002143250228403195752057100906976871073304530122035339653306792467736816503095962430599453328035005121432618038037829211371124894880797400656784225792727254230144512768017594195693484661918938041758550543414804446415593668766863274427115734730212946512891152859402129225156499334965200620175543035373900370700716557153652388003199493384578146911946994194390370877794251559802733916061934362542898863753356757481710416090580847754950009415913242183469725572735781395867412851747692926179484739431405753442171529948238967785890713812088418221271297749762932346646218138674413379472475430495736370935793416155298780384109180173542849574725737924324628844947419736183668721355974176071584880299884098295203189814838789956753260781774881861606324857251501250918056378188195172099307618570904503067731082537692108700366798206695580876642483501921004496104814468076407624850020446789333711148680681658718905993988984549296400397837383138656397332923397704247616704021538456149685225488218131573331120125686765903746932236576307059683760131298479450048621370274135923081049600936112582238636057560475278227778269700510548081749579972177901868908326370772474069083468946819976141871856591460251959156694875291202147082492049524252771722167066909276240140091981993303610554562314075764362283578363910745307271048929223039367298605240144628693643121824013545065677631567499981890243211031177512411977387643431597650585555979675050463500769892022412345930187961466289664688755701761720320869537813043030397908183688305866157384381517667868418633552389199814102115589261588608211523733095587218686432749387101193267295658945097143274375550923599222620681816716428297074050423637775569094821340490994522449517511743771826984429150188354529450228540003495526983269401379109937345733177405558020513034779736078661526649091684238205365215392264501330615161954945606003349108327237278996753804780698324155582262241174565167228976765667444882966828599479091258445807973616914132702836347419675378330682209959775238936494630871691525302721851061653960314360843184593672498765898960198772096946380900488812800413928176424805078390023490982176359330028649817795806868689368882117370496585335040716149366861335805984029979008944101454447403401047759181299283161822156232094342698388901517497183412815690272606415053670170827180015705043050101108376322528628925051809191121076883220688516664426063762198546819963286566162840750458239206409387399948897359643920938884451655389631765071599441643044478171413280058812964561674113839322984518550253773483281082046457294688227176444913258846479270749671572593088606812198153078514788530484599813080757365487944757077858910396436926628895519518980947273309418073820741580068485201754589816214953765723789007381244767596471409138437623056227681978309174155379331415941575839975279883081469983020149162747333276261422315515593075804875152453931229483450889493642631811499047637867049485113829078419323056951512907660766189858181266801591774478484872678467726370951343106348719105268030171987532056707391981209029589780622430686167978928053149615931042663811661225177218629125077793479174857947054050575405046587248132761700781510431860345197633464535346830240010514953171954966262402147341273250799319680498639091148930456543984364870795436324460849958331404904482386447318533488084983171564230863032324261628463466644495776752007551689836375487088330516445907244392169855356286001395043607572331092722157456790587572184711371305440736962999769022609620467800591436304934548254440554010278851898046784544485021083963135951694043238204633876615861960156405937161814189124600629490089642426328453394608946354999510928904244951917548165408226109203243915459949022117321674327000041739752472847666063163194093085622377760408562634819571125616904502330069105868016791310462491655529262517724427845938380661687438003561470809082008293753961192845301578974054094848076384723539485781012716041174006868680589421346758804728732449134093320070834283725117982903265438469341579686075417097800649147216952658922936950037337901974184984683961145702994059879199354713615801196344978454116246082670033788593113109040073351473667597773865143457073263045601782036024742198280265539733783815614418796475111888362440241925394183099418694275178641848536450277007665194105191577421369679333556518975766408786788774539903945227199285872997484610740722205773328066283606686815105228756908696995719928632186586552150355615843947548951250492911256941631988816494644094634925283123798066448280196947852651863532273908937026304952056135955653672091259781172885763956375816310911572791868876335493541580485329525918078126076377097995333592377532304391527970420610461832593923970467737747739278618543404905041826653668260891258876964396340333984017107811572816568534580761238260426442845292281303537659571448861943628346655208628780433473346024898926690640078502300499077845546307193689512043551073987844007713434080075329393152307139215453249922384783461148786438368849911868938433153368477016698320929293943239312128377557591782574746825669317149787418300535624467687990449301785994930839670453955009956239026211244913042256527243461688792744684393305814292591961930378933869185719703431729856316572912310521851523993312329588578979559423441779924969337700422186304806759527213274647807512367319717520549914417316997293412865331108174892656956793427074566853917971004822932255586485693372998349940238510710358347856614426203246515586488518155044404434972981326183191087444188378181483036212562653969071327194501098918755850576955006775086822749187669514452987903953395351882395727919777223458237817975613652913814981578454252422701084143114234686824835630960372505240918500440993128239875780557455018671034431524741120376706239971388482116878738900086449039604011157762555927825660759362873691948030357716790061959308757369900089887026059955321120217586148172715854576770100973277511025142647336771617459365018024690063927541900825130764500945807638694107088352867771394524613828353834794323078571730539540147875766396281451945851015059388312910407613000601434403738473750375885671722856918223005625186205066414546538218930171001107059654410099100658885695343887750595209242265762826562183421936712371406783660104936980138418452249664430928879291249583887948552123617512683292583361356291256291501376917884163222053001615730783285689249605361408425705651544212747104259947476672428144179103948257449164131659532977303773614163374180948850743715098892098784541828965483160205877615114665548231432452700147571176109564944861009277642718300832808885635645563901003181885001462497124459565733827500015995252478139074291807499402948104846013326760217665051414559682382112513322364542556323246914368005807364080233669858918410853397125153014011470530962940109233364155976438770710944508792477324654547574462346996937761361671837703792962794688726194375465046208557798681728556935950428530052178781528076902959954618254886590165739182985554911645606948942553757570538275811446837835257713447667514206155848529570448172892118619384246130455893755052381693573902261809333262160113300187893989928988548119927910091271185269714190461340523243438151144123684053005694341675219820193874890336539014229630906747524202517021032909725628814284439800795003312235711113036244045855982564189284121049680053943652714994206673393466958349052262308354512013170452716164716598513474548296676778049935586849965709646023502888405264663813522072913198514577123380206637548326576242162686680526345843917061064756125679237300102843351309355212840908751340781118093465514900292090945365344073671627020077363140683735477982278374875792162127429737530211556329150682257177393590391203687280453958795604037748557224692781352340821865514115286701476721375459306948727535969706900657624502824332987699949220559382317262804756106769103143294288960385464090372350252972680728504129705966216401753475849197757103301548389919250622303340827744916499011077267856514576176063014862724457495604054248542353751081477232767248750070191546917510780335195980650599155370116934799462763665967407538128500442782213066809623098679913496436977130370284000999445759554797918503726110832823473275052283889971186184416820844991085304651049215156517108994815587739010813658627015360497748239235929605086212874798865453253760991125718551901653972126074905093824150183004896305703238427432326372207070312775787558934627518675324791767572419718617689736694665065610490623587378866068970169081772423334093553633398612847557981042288175724285739086235737170340897465294356295226603882653432736880259801519090446215498683458363287303596452038429287674548054053317892126053405610796664635988294218593481032534170048216923367614291917439514841407704879368702624588017817904896872202667353055955551909444505977770535980543027787379921076017504864941936512708566252545535233229352081288587739887542045104806773135633835122065884892081294825772381388974851642614224124402419501203573115939773382271550571598630202506229166464785180824765499765622627219713689778044860749970340385086160800808583406593296011486531064952720086463155666640697972499126500824448297144471101883300039627118875076579468538409411972176991619976093612259174014739791240698842973845341482453457911392103055188579292596139133692972829573477029369497716951089206704291321089500094307320862063238500479612662171144709409919483674300271217224335958396231038921500734227276358438718523867587997138690818799217761474626125037149698448553040633439394778523296384866282651371605816997931196201299491037518260139857168317956743686204699208271541888549136671517148192732000492041107462040220823416456522704193076191480230491841356317387040712478423204561756969739720107213536184276464420588475080422878496255984667589087641526747356278868322023209726076246945377777410887799087265238989895467866589038229887469787349841057646337646210964224728654259669443463696343036815365186145661269174470190292494073962207643362670590835104844375311949567633569797210456101665819493353929509256042604143222276096946269442511520296446296055568176380140670037343024058016936774095297428730849734796945359947438237616155867833641782141895982108681831308324529305580137840689548910872806755404674833346584858311547744398248333758004853026153709627084390654221371326061541942065227047474326292204714579725358912693876141981419557380337941274330196712547918997801367517430789631449048083259847133885871383321710090107956135089093245351252586489678152784435651957771983017175154513536810714827109545261510515238715938654140199447131585000125021241201276846714656435933985275528761953940170996120807669685378439641142249133710227383242801806260779038018590984372306725174486351564913063896717500292143712386712806761297434450188722821037035615676848014535355507059116065961745890221593722434816324787263410921322843038051099250344994894431923459836900887702431527978818752294254528815923221337281223275254932003726561604348538628495661878066628127969078337189385547767611328596069046443958212104865879156690204264506848156351918933298165148969679847076875956779109419620762227690501601569477837838398916563745107804976162400010319176070868625587977825477448959185631600431616161496708753737917718650255329810523967221996454187014957240945290016943095443739201604869608758732083849814301982237329370202441241584440508475797150118063090822306556110819623501581132127038713718808324097294374726506067760651476691655852506755770950573049713543035313188663552070463281945251343486032430874259116826554060416763937471805862955512887820332058937728219817772322491579380060962163224421197199912630717144479589757439747499357156242845238457820587371317768614051785456949272324957202708176522935975556115106520960306158162647363916686753222531017845778796910192719166556505353938662623928315590902680211151626871055835161887175211534489367859480225666693153702565309202837420239955118910507229380410738714755196148817716324584854563844793552123111696093569238413774028953886127885861730833884087740054089632743596397990789730035417134948278151575171159186393639533485931171178442438105253613826082724672680146409420588217316061341812102526700034925399407559979531895982839389862940390726287124871774000256856569939323031309764027955295105265120628684863060704713160319855864091143566941936140440702881043635978781468918472968818588409885530238248448877712460855817067303048315346537020851956028662327765881820020219796140526627026427420375567609054427575812272656120305289998871666346225178654666565365265410311489918266630096785567224803008930889242053890566148689940144113244491715004037197532903217639301530526043724895446734169129023278275900913277156127856966832683446896756170746458893447208390873761238050146318076480503718124612073696253402804736235289069416485089636513773712197767775306989208040304031761720663186497702519633105835741351683908170493167285268605686932015078174964995426879248772141884225212031803032420911388424838255008900646233392278804617200788609487085748179149661904323305723250924996398166940032022100091046959338767186090394759613260295377053961893063479847753719708114819376216846519258620938014166190534473843172897504618206466220820982378604437098828487708479820977419601925658829063769661996727855214432510154632892722962125627467798157967580511922506362274852848981548755815424916618798708235103533702346497968408743765879880517100910477492461172612575204779817864497067853719152151636225225584051588235512956004393665741656843155679476950947284002950497561036056589907324247051098774383780789070552522507948524889224817587617758228013405492873068587361287895561483559180325610738381772566813567828024359621648901855430744688051801298982001375068289337931968471259936805505678018005816014630124274577665653115361157336387083644980156295184563768495744392818910335763045207644491102742201599010556127380769886833569253650463683277413272491002357972176951146639409604182792998375874823482296218806700333248921455193361391042219625555777442726192213074489697501462611979541271139316219838852371946471430450140714315468131893483681397360858434050764085842611726827773867529893037894131495121042742806048026635925767148601822502042165370808325954295186058386414765561468601231902923915697767296640528383681435613350778720857024129661186370180785659270154994880954656103310002282023991968360507166827033492487849990288818698921143857698973663660285184769008069374603525002707442548856635530250534676890019080847949795461474916068460351515077669392557484994082012352242518641848711118029805392467388599680053301514619682209569523540939389331265460529478212729479334591906322820958311203440980704409798523256977174643652415347784331360323433526420256399629428570143794959691133976259886731907321069810380578337221684297148848558472790891143736913384008211030063633831960806878115819293202630593408574665275395661424312716214873841855319198771557892390245921238915585736582105883142752220758074585857010950051646703589621453949334156012938725086868850056686582171607931000674271656310496667754372390766647639320821592553489589462729746119754347182126182502486870425231886475338426131298970863780300772472758713592346012958885491569099972810309487065968491414993692413861292464293948375957865649552877754640892658189077943729408021780600340175662649778538714982619565323050719356756313274655297279257060461055802875180981679294483836095016631437660755138319954995631822315895327968324600616111249747186492077442119936985760541179313991862541982165439065904317296241578313201536958247644150114697710878099979336139839081915231606340955118738495714269705054926288532706202961274637215793181978461754923901344621543218718931158502991571330965400875983751343985483127080313169324573434122427481062034461278706142598820517204743835774164878770967262254209481119709269043109331359171914928345656409120274848909579050549970146476539972026779371510266886668665255731901116909738457181705247471113481117332845190291184303064906582965875992728637002024610410240942604721982648721436636650691432975138362953669667977568748225286649161527703486046378424940040476543834911161459868337618790258480070304505708924818739983437034454412385906786099900469445876936898826697107250658060074854388537365795812188702844901912197832871608313763255805809107609612960312427390484760199162655494433199505941415265652206757897068733932188230959839038000495965750975183185106352221439734616218544535257932941735621999048060841554971649227753335546099758057554412131953257358226393067893192687061097609421524108796313285387749880311288739039044161072071918279695377126077662522023495602914679966065199315535483728050901624263675301597789010576985580530384723992505292699378435823587787557091235616274894810607505910852704465800110499416421102180133433461478564010645617282261999629578071387446446055694742167272223797113514515399448734474505291938649967583560567752487796748522774085967500616947393506960146025043968478725655789888296590817449051051517932498932569612479922848425223571474652739260078922444919727637511693455737743939266975134580191484262247592636290568646813425333631743647521630948670088107005354135404481874747098885735659331211530735888700021142737628023612211382077775547696339025921589687691116051932638995182519833827776927786133955446152065837589331161323924977447390046005303109801321596420468105191240672724285018498641228656169516176938967548618413141815653160509213411495462093700000544489134236868623246754930230067658202590812143178364442014518283816131133707903016490457937024418671394495957197265505228101670688765530709853501104287543704814513391537280732303960137559701193864332724527198460294662563208175906411726049839996711034552577651427314961335176187579088593412289379575306225080564993436822753745391477173719421672689461506812914593818024676488231128987631056148922303516212678138915168236065131239999758129056388929403774492868610953720062887459891720815683801313901576843169375911478546836087168205516388891924044988923364527721607687898702967218613236669813627420773133875095397260531289694700127588251042532294328223351466942748931377852487806983642079365999083396498326836810241282247852225147069042618060219871770903946472000645238008845625026232013031585645035526173957581183283500934010402995773533091183818295172481247990498764114031395099635187995243879559865934616884054199197476321096559213323148241937159739452463713369410194078191002543743315858049830949548067663973019266120696603354454326767051730649687320386563402357920862698202564073699382455713901743501033852780737913152337748183007155831221872366630791505333572056261310936235892842608047114245879801851673032083111164649200306968119218455184320286122946710202900877268955955959871768716883239716226728882440348490242771455509026966858067351423054037665336384266305866326104331476796572531322676843689441782097371526088054048758933045985849891126152489841839705525210646990385357554571417540167986241946716800842125300148357652418271475282569439330603910219366185752438516832965888217667669078545084176786521166169406165531821066730379858146288631794342894174157620284250103817729601632204114499271502196118043262254974587252930704702415452886178645611600890727023868684948411560140758557132527780760395177838697845443977996517218323890861597946689518839246985785883555571308005242888293262715515672029706450015986238678472407704593521015977797205238451172370541691901292821761828783999054797641839467120837186542352974350718316626462961657033896362434393152459132484180751563823037030551283330713441638558565795120249392441476006477475013758370336817047307532697426106038809307317777785387287302220196597849415621069817098591830125591155949284649936359929127826850715553175915670267951266743217718500494293066292098067848724449815976568125847974074807128647360843996899132839910629263448661748545451078858823699578266385990871522591503630738214212966465845499830724129591073563613877558147232093631050907985628416760817625293765317722260868401834838191772299554349992998801135965897023499807553472293080429371928372815891561605648407990997747915339504005206194804830698575081366197483255073412338189676075730508872720794610071383231697429379826985686366406257393741018328557033494417325489804206086240719541315933445818812147361139005626957676633289540047351253780866201456872380553267124025115842305681558751224043195148263572977268757675044056821315960124406384535102343669734993836574428562527552347973397616956250801427354177832957821672346876769131774749892362861908816398128541858588963110149981817187188283146349218706222965671365206720410524971907031561284068907772744731485503664636312179890057259392888722304737807696261636142128231872950161597496118607688321368688990224457524015537601203175014340134659163203811260154196241438027481685530188011322407736571375776288485129913288032265472338866443787730879551977901435796251722414888369569864661692941810510477338662753240395310572454659398486708128559915462317931453926363893677819211923549224571005724430224007343632601232469396532507055553157490090716564232230565746780359385661244309621550496253005171661849325638169672150067268930162073742250892486410636516785269433289936016123581492983628144379916687053016223504295783479865050621174174642881487005824510505367152515775013743169434791354666380877914948457258937371908177819090770370323334410267180199498806187540786567437763003018723780731763886340095781413093674955793477852195737022663463530604554122443723058583790899111248345051364404379848929850903102690652311144161996319697808286565241574502198409417363675238296561365605976623272844897946359047653588434839611758769153562046195066444528368105724932034067522943547351709941532758018996224270478699253587031865849339085552937899216215497146618581911355587443045769571560785651892419268179756530095558092250375681509354057140091151216689387913722034420873113865603917191097375942073896947469810962485857751867120389941216881787877518797825396958092326884050143256257180035000382560889480815987858794101493274365537790243901771131451462555076603513266592229339660734121814866844473730334971879024774769994210470530279574892266465941560338307264252398330231064749944737363068219874974282523044358611608122440842962096495610482617887789782377729854781895260142749735887523537165062315636304440389492767208386009727707682922479304827892980172004995494991607701246532184353326130932716986534811664750482520351186986642252063056855837557823752637869164660241626340181955271986341289563549173309825266656343068308912233711195675200863116314736022282099572451239526504760521479896929726425643923518536011234640267818447012387430927918595645137310330723441995693227315379312004523463317251323036872582273085111759066498753583064673875769118967596382115115272706408460477773028298329001578665908439739703392643564013558019681877614073076623013883499733762483681483099256687434926090293370134923099869888239369357383075812486013869944204153691670110093803382019961147132879190978331493523405270184858076371757713831790658992683725139485257251965167525109382632674060250890881858850147506384838936356987737125507405943039013277043702637159419631943726712027507981386289905933215669342839568020617747789508251070321049790251412730648413375768941535184137498791697632531399234897225970746140160232670396391657933568757654251210495751852400084589710127399148315720755850931919126355276093409852683599839003585917031800238624537522856129215295476498006838387905517461956027588377116785778709682295870527885954453058056489888830512266636452598031221130901878668190084341947588141469685256846393490984079290077503939153858613184467535300006808218863761532953609242031688210720895938275745061493035655552319862563479086166849223852920081182858505997158434989981566171560433994636237807837542088689794859424386293335734420926120063660746323549989566353861563922807380970423573038213277349403910498239448137891368501176651871138716557433013414678368640868696143163067456653577190391114159957484342907944285538452379797253122400140104487550595522366539404959320977130645461350144017054920396308861374050992257292767383177204323790049161873387444480020519729102394917238560698036254848104765805422756141568842090500563078313560459494121366897695844656957199810743432989138321499625846263253610806756191796427638428534886807068182252772242193557391084771471668670759596397668659949099205709733939955257297340985751335402642398965069978538367467154275348030902235215895376534750011752571599668485184939875572622086117807429109352804135797646992380483839467464386492579817579328416244533496315722607528499377094856430616585897289111982569095524746627798647825041588457601128485606394351819933499914197405609624091860862170209261637915782405751654022434900003762027860131280469537585617539296795758761401991577930426601328024556696258961225840868201518031703155417371646084176333087419512282081557840409014586777570540811615102915575206173937500580856739897296199568645534901599293959925907144815139464908886165177208544678255784048505405283266846913262439731293695105929075400601996503535803709496468733588018508143918185033843689364125277399064922076258950460533722161427575479635790010290737590034701618483106127984932357067956579812009229087666482963684007085574285789436455797886694090114448619181320962673632223852038077837923066490600811918215832082110919571191903985533343828267102705461327329474131309169146923341438621571355147087975772854970938874581653408890274273875961637913037836825529930947564159461797675340561594930317213405046350550994125289612222305891680119613299035351653174455529843426595504441424212810130939179755695202369512839266832102876556165916808519825262830595015337216982240386797231751430636268418853815205896223758682092577454753600724292492455526363965578041549511840221718909269993425378144892080250329735298865615363230002341124412481950327005441591706282313351543059554868760517979599038477651984435600739272768426735132635487089471852747348710993861994710051073853501772737583924996091629230694402050867997199467481320084453186940904764738292850715875507845440231494035140409191163430205504443020743516346909233643407701636899432842328438816241627780157986762262780364784803212645770536144795314213692660312956525520538303142093883796707017224772706886370511568697377421313829692031290543310630307284695395092727419982363558365893088768137294389157226385273546846650269222310891307572863711504410432771253040981959712037769656640681625217360550341747741535463846929396505966238352126720232080112765861448595251836166956117351627491266100575752836313680935245219496728035990119850205669318849719816464461188878614473903591548736323797701338297026291166894795780068394934499799358960996524541283815659401223313864845647784588887795087841363720018901527896814064176020953158508458835888389682394629517624646241386396397511704943086722411535262829946511483604389972147248773598056608952877741626774261027327989548425411006123422998893380547106478931592919697208170507135420292884507270153455583659727679133618013012909840393019589413201074410583536405060508211867168414987559299395630496372338575744346151970288102820322362689899877905990274174692198981702165541857784040146883437589591632746904481652085598298947831601371481669809859364781718857614476808399838612309449645450095640992572848135094701940811592003672248344098307409276234799766219091406882176733368237016641135304294755824069719944170679987935876352763407218348937959104447577393456223471635093572675501426026817798621726831137183126967646309367764416823364748731187720267440769049134285316767974248198655902194149155903881155519318380486590684946703949688600256608761285802224329848853764723158313470212370540803138946360930091524528327603977830970816561648531498494530216768355804691425596027061002425537997312628942395795124423392983741667715704078140332116696914045240081779913566116911784219805505078357881867156644595847683623823877713306757602293980160363146617829124056502624166974996499455288452170061612754605262372885449514427242388848158066480872801111626607949045321713379815904020155931266241847015668663576074209688793707192926584394870042618727346482425475599861461660748399216190274345326521684519057811184525611269211098600564634577939183001445521833979716609647146374007587999898777118380258751604521605623801853087613414187862856231579855535160227087542948630175051172557673326447595420846784401371742763770935493424086546108545620940439562124934056883362503269849953093999155078732633365670813143102508102237186661621266416822876394276963167702542170599081904284616600141157866056337319549048625563733759163182183045844259484899230258808113914959421386694855765308667979093927988427807267318014067936269613253125112031678281267390676346607669421660894275449945078221811527057097994215078746219057980983871526828815991145881347450813944551275624945356485482844738217312704108007185362234339716560754946691487818630066426259087455409688421786808753255290747270032107019052719984686635869183073744581590953994148879190648918327096312601671349478808300851953262063619939113506167029561847946908497296319482710033549749081056679039436594169905936877192220658763495246310775267494505676805881294087968439037836744716387812999677804542285973155526815442257825302539592187670931548111562817350593679781720316792888393836589376957055047393253951857102455187813246648975991193537735358510101765640204589986003337101787130301421553647176026081929084451677597790926995019387681170752376451542829821145786543948305164435106861543698720885966040815082468357404247711324297439979621673285565597878951011652369208606383271992161791898620927790857965184576764244757590422688584482828744156690594994064428452211635206071518433559631763707150086683170481667561403268565223887847937340260524138892106063278238198260061711117934322568447696712216741072774693426628319961612662630763763625164647138419708840227842066483833184773178898203347150458177632043718711209196126130066615960063062675314412082656455269171054492443859969603557172747049235469456883506784144792604629747385502453049922648560209627454451846851947624131357256338460788320741601244755082338047464391511783926137111805152931087464109790484053281979237112723803606560851039927167838043377085781476683443823993547276705418926908230796583907397229396865240494163769459162393415931012871502300172048522948906565029133939634743440730328323105958548558074263088175870376764494340162664144797522130134722470484764951504724281804942448520325950923850047298649988820915575231575194707847403882272568093441325150577039303475310924319400394664180187596204666670849426197463298935146144412233465171349798330679169777676332284482499118119027929338689712517466711644054295391771040750224500919601830814540851130702550839919895451063673986035843634698773809509632625900449857565269611682697797708520871754945636111811122705110817743869620909621327830671859048095952181482640652637420290729925211338364884816070814252887978003274648325269066826733516097429462102133174754780147413705698602932931662081387462478712287543479791711030029916612093802214788759811386870303839221009232430427752502610066872999383075429109022250333109393159723010735669675183482152023298795868449997525155471361021873262332099908554982201656858303144872640667093648732770558582287790182304843841327666482529479825450336889911992594124164660530414320749100232710459677767926994022774632454910953022148616556426262442358063289053434585086319874562714464365517359083252403089780613688055133693170809257751993789972381267592158742653490284636970744548206913061349632480621467885550438229787195095526804787511550663090120742151916334021996307213415387850908740653805919204798487173092199426839457846557520407256023625777567376408272588803293048102215791010013495303937879619480337871085321182843719572382657951833560126201255673059468881693475570768946262364614755341116138052637648495041487181520934535470141497653824572988915743502366486293945391648598610448880384604102979921205653481524852011951009383638325039203137473234899966133229622330874669244563073341317715456946371619312476392896319849131762649437264120944389733982904372993126804219954157058909462867212233970216123839526865422298194788391075902582944134361853086592224047762965151721912641538756880336135159469622962487703201948766248322191855087467320174538225256547084834936288445892403911261125480658378094965146603137488774587162059037145660628029007368306416524079437591685903074831281121388011048902812432170398160902820863241049131771853857232448581385293317356555227931204518134809155724802201102064633769739110350915262521825885203993725479835732789044730249603058692942039198724632611240911524337773123921463261056222210616423352835556899105384230930076250442106004468205255401561905066916010483252997308571218971139634756350836017127546731930419005809715344881304063488358115574510718625291556561736907878317714597748532642527425811489510043777232913931802356325082444002157772063073250684834958702750026403487271790389767729462837291098588878652925655303224874480915359749809586486597858698967708436011295465701982354821826765408525214992813560908392642049026025662066877183659110124832759524525321065613841637753536765886245071067905054487196920099622136843814997760475368187417312042828379611862825096236814738192275380530303318098602270181747317399144111040974293236436268368795833898907892787394563348048003290761781184910711637629373658378475326113395662261708191673467648684735113949739593769755823249365467042609874323792343950859833975275085076252915109808658603720734173823117706293069492629363229783882527203319717978397408200769347425610204690883767753809640865702869808004097571889267176336582568755028175403658051411490234451610629009027460865628582018897593070620863536081283896657156146826957218194433582850852055433290066827498298517297110494568884949770669925459619561160580674484918880015173938025753608765245914270359520337382659233820835166300881781282678458789035009766632806102600082441388557597087289476499030424380022619626594190418322615926454182973296703743685114766208267927465131744130303762444689143528742184255844857141271128186233558310206034947881990207815138681396393412415025065602955773989509968834983269730044223144190927678526288999364199574378186896480577228135618728431652683330220771308205225228055765404592811375860250757725196987655610486464000981711104487668509312017388376754093033748112220061337334898291276760360553703678564434090952838679267743257267698524702592255284871023125692528984212062296060867483808092669931941310400282505189516608016550082250566964151271244727163741473744481639916564935318400456872318438330685885643465674308971314750303939111622633074470288581295784383832660494120915843274045579145016953537077277827197595737414526650719676056647543769831140198230583490734915353252046197840198740260680415337676394517604960481042822198237312688597812699183714243488957954632734225880615348606994292427432597150039735609553026525574847452493387296661535675896413318143948781920905294738814793863862166480495376702396071801233249089567090157971923431075023381772153558950859703072585176989151214459738932387017700714556443980779534493565168105366825604387435081177981402843891376405583399378495086964619994282885308650199081469453124951012651146399419183728610707254320953740760279193798218808197188252012840794489745704431773510910707585224604405869122384720394846586213564531024756915405370586844340103870332796933886452764685252417242117300394768225367424190326170277613791216273454813703634900121569183270178018877964057325263110487082880539715686194507652545573796368861328585005208145689820033749393112852583941670201348940208121049734821085287827406830246575372021421913884330044227129288811110360715369349930892474665528458168735668692179750647565006111179655873933439641140563258556447197951066509800346417210016973788604799040897286649072710338682136182718766560974556703253139810400351103494348424888489866088634942659463778166941420028611273505095523723947160364490308194092203152721632361080140407458314334965962593088353723426527374087296162088363397498719110326021328940390230332860133164193725804549607212404415514037845370461987068760918328531661210705973115215185159263212197196634198510755839009357200848204632081661631493060452982450593898803259787705289610235108647845808191754374803887947320127500414273826705171993985771844969533290046810847639392674374748640817150087225240025041994876336718950011574203683081111065137988252037803626154027083448697658585204335471191183354526864709809290140263280901117387847418149699150109873930792987395775292125667205890481787884167320325779710203667641178686784783588113359566930352448344462237495947119005004700501029346715178619832292166896745174395656249335433183665787861067078710604474756864959479276913918245657791974091192926452682569879071248681742054379550013972028912799904744754331676830698426027383718209193627057883441541994033106348440418848974064767868412393902959348855880701695802791866840970402057308628981157396929454638044658862546179337865658788743125555672654134748996014950699216566521324566729739844889011660070344348993755134916132990400797123244751090299226051460406362687600552214594711079693590416356929893970888481124569615983318340852563451847213213337570204937761143802737146239231974422356345114592688807934427667047713521225484556851168743237931953475671064435499188790668205808496428866832687296950462105255994276412023683814525020478941892490632999535155517459173451169131246390504121822242799298035317768895393297461752728901943505005539024953453294123844111731265372695954681277331451311033763385422177141819628110268636607124929752477584248489370998099088084083057745006638618317615994126217240036580169668601831467907982031325242205960532975095218612427844155632585158624516055764037764563542675847238785950992648157943264892855153434446202524033676116211819426842410700182743705346251364888346621084405771316076423892075262456314193979256583159391942536092136029415221397691551951404823763366036608915787001313309565008312015446545038872891461611988964371529884006506637969652422577152091354929075639012920589768016296604316119330321674001021253460145001002148659734927789376088052195521946626001857494996383734137432111414541468973598931808707702935880690129428037482441831238553774832910050575429303019570278404147946686303877586692829640893828118798681566154140145255292986314506508799167538089698306114779276557662861398531890481043597716354892328938234545896683085112717451123975506959061889959847799420877979578761025964373706637248994994481409798815328758169112015616076572186425341639832995087829295914080586111342897740918913167147833890963124384826587152972291677303065916340962851099748063107514339333631564658981528963283928467143440755646610057665440900133448780579643995801076004063758265767208639213422072306990229617090826428553204104945663979413998356220611325986867482509269310334131104586945860574218988390117814644341589473405909501854686987621091428332186887724189279308738102117331235656901750223012839405348685544361301522750850183056479902791588742860973182978605032181890884249506001412763662155413555117467566749734456196722303650061122210655998439762371955460184984889563936132765719097311288969260170610586050704788882187321845496425264389116700628237906793117344130958202645516919929324297975676701400925188765677483622788353785426682158626883559716188359229269134191316947502538777994928467666840394736122752708706709488267706667157805041699620934059280150423908121956396840696319703593398500539237392162292521186074658266865892619132994221289544561781307728034033124515191206203598734873963330417020246622617422574996523375531020547209582496543898834996710718537992017854209760553214138222392377245465981402690922896147755362834807085281585917777784061947481457197210064716182259598500339847506019287934431956825393083769133992964547362231345456773427367932814295760408358220263394677403074804732283839390723637068223907132263704200218892278586677211317960902291938978053269532349311335673014893635628485467908723214605192911114080081607266678717473611011433601823652676320731384668409269265656291468520154165301661609621597700439455246128565265242411504054154309038978669030976164696977734100616992892299857576135330709439623438436735756436338112281443565812096038764450729658889129763207504425879543954952495943660003139448641305903445380502474110172906529070965982436273451250906225991029372425884765635785065246170992068844687648592220936431050126730651150833722579619640970630912996457835794962873613429856409571237586759418032770101187913907896111945069858603309403951541204860144369428323967542971674817161183682307678415194696090996366252779366756850597860840211880141283140874886554532044974572897099764489496152735700665466293630685156263385332575698082221626864670302862118170070868964212772910912801614530950451970553442879770427979577994776280439900958663617834855521736321794138935246234735509400227118410493079815938006074524812073193233099544294832957448079728781158432540911791260555132346272040123681854485265178702623275182789744968036525863620085726649418281818081875200155840108278641988908021723788948083618630699493123440916619950894953373648456421425368134515026176309218467103791391079208298505832185696999149853614082167949901902822809406554179422327976905297168241708453219489015405301142273103420870352955670723935910902536224820699328875529484081302660233809020603614115460948061538236729353699544128269808190584849999107247007601792883295600994441981646061477782793719356780337169524852921419943231581626556290952762465312697208202598523350888455157065738932969016141365198457058965489164386293211111068392938022211522034831065686049068734164610227125043345073705884552948404485294125508309792980126286128670572530637950339487466568570030947099949714557870921228716466968456604584245512358622967432850429245002063223761889242076708436371130902112084613831880801171689770651309102286121171087010009372454965842798944308283003881008108031510879286176237236853774373194976778879412918477546728486952263247645567521641220250920377730798895387659537339293683197275461441449301065075864110762884215679613085900217820626945987199945764693157519578014545910425614018692040926900568955552875065209266356724425487777381707473036704533799609026412376304617515401746387257028594082070647640248065014344053458734643583899731547080930566916245217130002763197688510128259555280480080692439470476024610537511146601345289423385664560532405080903443711713276996986332623274595684421248810469606502322438903024547113616135734071596602957586944905410938035747121864420929843571634936470367872830519750848179737201305898119976106374873992874977304853312171809590529224359102527910529241771605349708865298989292784061445966623597075766097458848564688027945064840031814068726666512257414675571747964594578712751962064521196400347942815331369955222559298238148929150921292444014261964988892758766147266688148386510847013017735846840822867862316484235556147171123401358836693822080327128493226500992148494548897453867541875508692719772097957795507482544672275604128033676506384885727816349700702019662998393399005906313286341262249659096587724772365766856709098322605991015890458449899299325237740278574393401950508225912626064922078344525352881594806558771801099585915642603138253109179204825832503439061011737439973657729235002971464709329327587109656009171891197945858392541544565851672242776604105747827906103171039293417072092138341532970234228182735374750008586805528764538908117504299224628749620730741263118950963107500018226278620159414242861561632140030129111006277709076611940257980732231837009622558509904607170316000744665179551488142189909747238172442813508264346893841346460676591938606755223115049229418572943577894828751394856968347139163220558373306405939520916157432157341019264576167360324080264079488923145622116126308826468119087991142370420183743343741082917446426051882123512466774057733439350002221272100332364378389425334479924946568618396799798042282626497477208956205348428903405947373922588446725604390570572197068050146858697166244832032978882379973179002529743349934295110968741522995044349788287618536427900307369845071102380213358630244605334000924149008194603105422001077997652801445499510495299598851116749467483843865964882702252052417859389921189584150395609083178060200849915885494264812971585100628716870971678492207506786800579841067440485176836655677784865234299593679880067092256819243552499484296947530300027678411882447875783476245294020018343178155937900134182367207834801790521864126613179974296388783461618140795202258202993911845558451383801302615297644162912313591755666896322218096282279041444654882322898582341998699573472722971380610426421930997290154192628626455361428384252152902851089323238698636019817365712403940086220491940782158372875302142432671332468132980534792933605908632528982309112698521867363533782823689790450751960451064600882967643993838243729010899963217147244947697594130285067811225060316612905238267712579188902580451028322619016035377089588174401430431687708654052565590245177373041005383558057436588417879633177479827129435143594427619455351758263989303678173519618792864501891634806345759027219698015395070781839928531406093410744169586579445171264511167547760776987893552964046477649595087400452934940453563863942299757751463095373730301435347886941326572420131847302734978772667350578356128085415942208323817645960038804591933167960721509347494645411626509320319034805331631424507201255042725689550110216554154758385187769671525751601753581650652132067316616032977684195769698051417948206714339337292817450273262933916271795421076617954221641295456227336949913017758515654381854725708985297131939544558093318598244656379686183271299919814054513186261973105095463189241840298747657663997335395842323314244745409388475319014220140661082644567000017458226156684343370024754099865766086733926142122566165221710538964083592987184545069135907695922583671079096920354930210449577058020209394252892672533729062817723542586719326614156655453032119421806225193088693437308833399562421510792096429190655362029255410433859288625937421960876786255894613454788471917680456886399684127591407050567652252553724781414788241616015407697874988043332816255451941558245515650936490552802300644203697602558338922727954449514165415852096967084938627213809358021087788209038092412722070232399758254346610001048675750568393231777224493854956843389739791461455543280800953635735057734151334893516747699451330942937974771952990281776942638620030708863708155438259345585370105870626846502067555708950371814192982832451259314961173879814852045904701511031527043359645182314648763931441651761367232502847253870958185627522747564316558626952832670218087679523345000036568896038711634166026761568241672175353933832947058639106840125910762099103012033506693456502783666816083254312973767651708949411154613742090631142934027584749610017233476563175774474644425592642341145182796331979966834286761368901631464076824910657108847829995457912925774927382312437097554943035852365800512266719000182326984890840831364574213000214444694548778979442669164047982119224359150807043392486612184394501306140980007534958795222987112308935066190442217900945197441706201123366723279018102012894601059778186679420392373648622091345920365474260714095299116741137984581592110343661165893446675433770452791588536035981225535910279540200035176251479195549440055415456032337716898474959458740371626925777454198612801628813964112150169166733115804892799322615035638281604941909980834182924526883245019739686341968315213577551822712176505501837302122977508994494132581056381424922559382422946363774962210192251991829170238581640144648109753059306015889780374652343643954379873244773178548402264339472661282322475701122366866511691902408871046151913291955305449943486378306508179782444628577420238380270828488856274579530188508856660628451598278545275711844428659535744246987194519927217438553064112317807486823426971639723675965242106288579216103281557254266112018736946009985401954991697299250535700837993393677439787644008739744228394847329523110630909527392904470502889884291772718012091622472182088912893222927753726821319979508090659945766103408555456339363048410051366670763463545187127668335515710979869143083764098053498539170764990194610950048538369799091933652461188742931639085530105336795787666666941630993260030642423702666669441270839573481444539787853632165269735757429050735204636278745956377051496764257995413885179456272468423005910746345868523920406559231442718760317167922108193343536624600352205232264106047551024348788780538197130190644383025669877012910090620058075804650119500221390275588757803366891018972722010984559848307107781223494167523212694536222502039535812322479157628845638941397411894020504261845234269834992709552912582063008693636861063478844125533962027498607036431920589239814537471610765559714405877814136248797912161883237132788753275904493115177044297489072804007540431496862669121607478422765963813424310264894083231888470508668544895084129968527411185871727678190690993631085715761675000172913117957810426189615197531597364463916273788900532533507677855094386831024465485521759107832386594451540997772375544794801222883672847620722467532278819868441867059820508189215374158286374478271133947328800338387351099552528837631515632207279772423469301793789095135204672073884460254277935996315374213170624498959238266487359492270843613375350022800624851024479157929881436004936837170275811540190471001015104961890683673631989745125496163270270276929037393807607023456953696585867230697436508090506064657064925968105118073614813590815829633851420243673548842419000309050236552172973587579823713736955248984016640226308261824099072980369418484539811087929238456436533245269969097033648862293213943866634560723029333917006405052160472986859719945376677761760143888938441383529408295849066828922440948508439601718257994456827025924758847940078396779807599715456495175173516218843613467927457331160074379204087073266204694975503057325438008498911057603797458685114675408757661375632018180210273259438569831589422846151243988762904659710628924365969040988048615560775648103685616142843995365255677205055763198057718059897534410134167938123035593253004976391494354583498644391365266312904727898049501727248916601489696007600343836909681766311357063760609444686724872425790271576875445268358036930854290539569271497455540130317453529763816619266823456771320487078504165525857068757064998111686686473950957714696221638279210018150765674785478458096049300972007145688979246657228677496844511286049060692843838892488032665692589227294391919737743795473848737093420592752324492117870172038840199506884806332732831457265491257343288582806043478582073662015149644159125062071152446135091701235548219449968435593753745210835563967877902207015417894442942216679572434809970617967293164685425394889514672453789670806387484747269596127155047431929211039048692795990574456031946114952319371243231798997019066614116934317198403590657754484727863809308338661751696852141230764147093071190654733072406382901893190354796051134224754798170590220762444346971066907132201766075786322339655330289231962761150295405228434139171292114573248774430468662299024354086362700068119315472644879745974389479443276821946971594747523928544399915890547782737909449194726547309182686998010058639284711003918403387827879475119913909930542594158616766192383894796223053060934762043682720057703021080209154086229896730212683674664560753236864891767468641391765096798332117092660713007654289901636053037008825107724175746405655013807626290075262062690991961646896948417656293205206816261025878915784974259956058322537224645306293131723138072985347510132787158015553886183401301087413756385231581900648098625984026411464182791788286060947653905168268745514216038611403934538660595366238996850932716363024267222307798810603154409613793731184708062229756477566204193619255427279064168498453947495457900585825313924260540966164702468004003967324626937677936538732588481142640256795125544218040953966859028339188806850364757756039641525579165395742194289861991754547131872363124900234419741106134865509947275563727859138209430225720521933955429585122808198008414608684066934014286522623652989406082668822766381213326494418317492059457874558434454872632386392136046096955095425943797426561675357981705874570933258179762908723533391484710604667721036200271842664192942339419257135151556520002522938238065147019412054339284090013265011780985103339318691081450152219477918243816533777136506688399437187061837237060827659719057729657882766347137094451326734691967835289383540905756244147989655173686015727999942939907250049888653955027709778980206393956324400839619548924899115426617778592734912913066755205070073435542288446557560212634233900802513180929054989983395460650936228930662579008046856888833153412282429517461546589640061398303875914279819500897560254195511415609464665741787119886208027643810975662847022943796211295031512189617057542320348370598885897224873855573837628222032280565344650538023194089885390432650773783079473578742017459313429150638362379342840054678544612950412136908249343917435322836716608821228491565376603978719202407167109992040677357285056081153453438145643049873800255627381613197622369574557011815637357088514266446183212064582533701939989608070583341779264976239542304705070209034395583300910132947224816989686934697112747811864600515446683138020319927872983611868288600591727458083068825440713361727280606492867182736369876504254575373000453353332281632680166066562329441693517679870449121544506705668063680724011649048070859730219896789388302475059129527590058753839911181311503180173896584763917452822101107486344168203782242002366364486644189269889513773497351210683117651475959636696728669662014718936213319371235290332112310695750136124269779922953381115682282510400556262123906652401735492454326148100905653625536136246472019740837040769749013323130255024508657451563782656006954608114396492625555618352023540747893364170255110965871750485372491439707870899570691741704975858722777537702398615023481074040711657089187967040638721133009286243835409391013180788071515341737359906584193664483759648364849890460427953818799295645941871991421420172661289281557875958790530450088235926219690451942415715471186055381808943716424871809092665716003265170785723827887369084862372544313149843600165942628768404380126935181907508501042517007548182137997457892628922509550505261809795799719130119347759791424594688925660718636743345855841725161505634418002212026491818141421237885950807003424881411802189399256666061520459009659846454742436710542698754041096792522968170344103029350326642533601485100826358813388840388675426586121219831780884377877919095725709228952229261729232020177604456751997072961942486599073906156027410257399773486988508332409797716529414770580909381411481559252509906509264011632130550807764645471597757202030752610844735430547442062883453675366150662630144202591781627377812150230107605136059550564769092976201088518361234935894529301572119058190670818316046468694250128547695553962312493712282884915818641037889647242852767499036503394040071821456785936804866517733337958550145899239133217304498224343747004091120515359659376037857192684079549785358888537211696954610365983347899953943022381714140305298539775016054007195708369680308559910630444770399001146748295983833825286439469770528775208192485271487032209759945241213644007709236495519448800635221726961537101795619868385141917663938589328840155368364480743623275428211565063034240536234403501154737145194537135213930794579463997769794780436053939602139512471681638003690824008234250889132806396789968420429272511545070504183792807829063671875733853368513766985133155717239675367199597066455317369314768280663607123273407793298779045480584908866373718462505731551214930326447696935152998249426563857279778939991942229470880286865638762537860060456045132732876164329236411967102530088925177766990843353710316395898770690328465082486836623267244594757158769262593517357448113891250092506942763870868286725845469920052389552691991331695295156213306380898587979243550724683151262305210698956441535846559844420918865332095713429177056259619646479029128855148729442631790890996655118967111706109767325766766398916935149119570851341567463487395715922980111376741511391849774748444429242175563172300155380610755229668676473341488092672476015405549455812107205268615689015786221078253664935716871698599288129570493367209255764080813059838827438503042266845371420986706773961147329254237997141111821340475920071090253021706807003754977391313879607229581306418183974384920515493317631502016169435459981814088571793750727270835288960830953693733440219454067958459630943230836523533596279992748575634949101010572666602016973433551689753344325777079691885698989254948523906628677389906686140336338021538041547415819320132481021694463544633612360314774888812328009745896968751207269587082189379921960838026516245088256711243044603923116627210719916471590457084481504083047295800157883927181946691884578647082323122579383779748057035300028624985491663964901386062891630651775285833730337148122115278041188510382678332976378408872674196758891024347362207272265307670232400921396648683250491658703873900752304597146966206650938960618274554936413547018815632381085837334913746430376523187895101912514044423268280720416290159425225850603690595933336588721896426389693589449010010194803865630754941064068551800086702207417355955603229503189344420789545883042340469657055399567488000802793904531826354625963090086091889388831185026181016755601304846030367519095287826955022765728374193522212140734255798517140059773679219637951631637061959030947570487666636219132795899112796785281196993319245023072531721926187298376702655686933653609135517510897240427384303897290617272993479101935470461067666319021705703830421258501873209936659914543623101597566831948293904927263167064614862863616788998553864920918197098863621933132682164690324580083658499600595685148792205119719506006271304838153316622699649421324140191667853473098507549469851349360444790860689203517766205543286228749001272556119846961142285610684768449620514139080113728824098711477214131398424520912571980509990862019906653656534228011000068360512398280548279527600531475809543633619191271903964623162704237299098199730793804444298477937296647339958717104935985553885989185578379452368316113826096168267429232463540086845240588522965929187604579291758401909133540173473204578611685383559650627752575880178450115463152969439226528686721272959198063173101552283588402484484874626797012862941454547877504153837449923245145483188347190544295746005153324139276535609316290129180580022420067813598003713592927444444197163222302535167557825439627121959715744841093154804693785445460942102622983968851583351767168791060955037389606569714854741621385405240098145756361167752531589406319970413217821995912749568973852935164768315760908857382258192744352868259720526611694789939714622113293379123486058427760872084247027790339192982096758848023540201543655679504545645187442042513443347442694121457941079274361626783253645301605593988611374631829878775759779180076081635063247580253101115794035398615330829244433357399835879474807832584605149212702660825203727401860384890871023634360332676270783520788281334452434995653880415559320816635231149804601400859161433587079535470040246878779976531366187412484884997008594041140110442391408841161349609261245061097715260427829841621146297353177069001930012550540316286552220537201219398318970308795224605529356054943316021422611512510063075463243901368708419824829615393782395835250440995526684649056737057832268019010914283577087851543580766051075426191678034003335457034743480399532355785361940447386896552928603013205523833082990106039235079492527736941082618774421202718224557158844637776529334046530962329981721387071289661629722289760007472667484167858689178178384140022996962334951734093791882867148628895380262285634395039616049527935858226232021014444163586477360857292901567809890252212245782254236615637020179955026594529888580554318062084903231084590259921014197983717737290292766088076480564410015588798736379553861536120874386018525547381615626589647901041441041262453542936927130246068493657379064264545609346328265058525915595249492221893729161381171591613292489532444189781473634825427085784176899259360432400445344150332078406771265985449023037134961146796631407421992321970073793980985356085627680984159938091679965756022081193613398310480444976166190455131162866504487056824907384705514216033112118680572907350626227692751432856948794957519256505358536562560140021557769646311184670444099702740163746004028838883873947323296176739533303417512759822254907155887540041339870592585781720427320949351979811538679911399325571372545899936599706259438783818215643312616666157273002129076213396843967368469866220685367001453408268302278369865388382968682457762064978372908998166335683606476782710153997985702744723234875894592654991527769087516958625721593444932709774906921448808801395809970896804178730954995419135816865433920862304824982728297818048908896231858423221731886592683939782336771750058550869811982772421673136995854284382617844150794627658088167513095131441476318997382433267824884949662091788223607618733846220427166594308562078921344404452303549595400111948187914282341913108980820007309563824871321498326495891743755595574323174228650495777684851286068227035348452176184367013818357034805244504043122535395821980898522250005302576846237217240894104635076629542597591896365779737367176819448955178702475848179467844096371456118160019462975131247829710781734874599130317767107382607315148445531234077265968773541134676811112252582758019528313183108221252874186948832224128492371953509716581851907355760807734398531759286056999295858574983819769980487858678523907683453499819405695056643904056450366175501026170126562305979281805804307529448526811333851700117912913150310549633994117430641899819953543098428912626691847360489969530827255575981174300318341451428797080618809575321348320005141015944691295557646853256322399052985918592212830304920342266206626547472901255787181387307865849834426722256970561081833600211524993293434206956363540136739938277062580616121361107118160381107528301465259207343834775508896746345152367561301579524862799064394749674922539136183833891755855137662089421452959928171857625431212365175872019106368811560187568019742281104416070032305189452964013217475788931644368346839950868483565959437306868693207439833983706973917662334314517476946160417532711880439399096658823242989985744228279862693675485187698587027551497225800303278724916968207223475701685538922474322457789668557645014910698553869959630026867061575895804515260477881120521333862550057942793469365281224888913527962294900750442359173841099020842097595072382652357295355834559613011889142490041589658892591155510289712011655389187936761878169591226533541827748062135231045400335270080028476155597215469677319828605613044190812752638303180301737865238720647611001512728830797814930200198332213809959911044889548820875311505381121569689175995546707528623443047660862351003037025081583394256859682344851841720455254856189522146421391998395816501171600889230975757252558384921266961639068211772056672880347469018955938033670746336868767303588289344000279582870948280824564210719644638641632975513435861947869188416408509230527593705986199650761775187226379487142128307948830269132799610393931902523444488798147167973235540238726487542769023050445162873934848347287506518219964082870881252006731680719871660451876953693243656910413434333775296805796653747424894411102775431608885677497462272561946620142196421256171755369856147672552938900807346280795780028381095797660110250447287797881748859082444363225680487626690757307894908906509277445436437423023438979922135466910578223139458957776865192099383884755595899427752720926681055631576173509294140899127985572590612598335031851990153787265634786217239808624494318401237863157666090603370657414144063495250612064520121625955254250266714738505297851869851992032647345765636806915391896133458835509157813993245758652363527851661222341619064834328184654565918973923688045258245607295372413995884523496964122716338654808905173672226663400924564539369963504136935334379006854557473270584546667820444105480439830322792440261678463527056809321408435965912129178406014772840195427527584050433442274440029694874672780366615520708515061041449870248907077580105751681860221200350992019963223747449816601789154418505918392702578375940731223455719412548345657581608641368374711698754074038692175582778065077429520934402338131663155863552334012905820135947217250251702459405571399300608568034738138216269032230638025221592685738532130836141756394489552249430099794755779893125045336169579261465557211479440157581071463676293582310904747703660086731126210119489525920881260686822860831339906426478886039164092286292028821752690437851866836344289256679005228386684275282813448972075113429829833354902361809416131530583192808059267525325024307059641229232417513602335992169736941416821246211277418200617170493942554005452109041483079804658372196270795477789238979250343140195962627694501833364376084144299416144581756902951432480120577795724109362721651171735125723459566752565501656780648483773602468700564685951453591597295149925556409716602904567296636720242464546863641040088157704580534967669077765601457499783129701500358746303898870553434299274450965283160164432885894421810743886236551773303696072691865072679939294579791557074094999025895835372895945533169247264957123828415102525419102171307323341404007684810847805985466199172950397629674473384752951397943617159046937134371558035863215625748037813788017583073664594627625385487911831095132410083766710245205376846824104492660654898385970631691016045403092101415657999811952520067695994851422933867568012565692241316123952310095336787550184687650507484722567124294995740849129426286624352846150088842632855727955378700349380109566700228531382883236906652051991885988700972985978878559538780590937428828227291781253495878731410568034621708593994780535130939548809246453714675475158542316779744279247839686379928425513314114587219890078431768608066442741396426690366850518918361579747730345327331658343679293540409938562932257687517045573327723817383239538223990584237785828956182410688792043162847948944512269572452602643658138021477889229935613495116205458718335399636513383409784980088433964891324111628695171154633194187895318606433268386918152687653616354301018548828597378008932405579569874791229417693950314283967790113413955424533614800110737563950159842568118682819232009479380175487824156764339813422699650213075243085954965152258144396903558394959084219777278016010952473611135315282500271345867119950915245715441330621735261417063563169234928451284339852584017951062375333222089813488221874405990559539103391022894271721135065198170151593893727893915174088823378182878159508701719176298234987904309820693997267487953158945913717086723999633362839367507404229188789158202114715265277250883192988784539371934643597279065712545513272535618572049796874764086732842034569645707539494007472764807195707772036194365383621458013410848555267075752769022096694826735307117603942093816940852641905284911003033542576865559152107865841001708489290327260269140807103525805475531839727965916192623252522139864933618300310216489811491808899581040720337161832018967776077006331242978263971963551719392027959936126119108449235484727446613063707824189454289857815638063235650022705690131372181900883551870760069704466272269367846657658145266958903927190839169945932231466833644328407535090358808696789980632080961898744166651247958958388747960528525231344409943554297792639337749579974852524358583952132284487292142972336262213535705484318653685911390646550284528528519498634114379627733320641885177899314577758363059881280733867364474929023846928263732562913746776351582391918989665804249769844743363357860418901925411347389828604229707853389603349286305394884428826544982011089082596982293844152441283061431465222252354947472600332310477901748557912612956380406293386073484146439609720696246247169942753977950529195827474473535472546356617175748813506400241733285596351148845023966594984600931282663461240254806809818681404768174424248122144864372885597657743055452927850262137822709768469250953575359779558412988945481189505835836109495268251269509927882162942176811284114775046761550702742985270384066003924848436806431468457987461451579128848916107862320862153870441917626075602829204070096090665542718157743908746577975631615235943455589301506055277088047663040316354797604910774779928252227865930886138403572086197160853476294246524071619763594674478725187953134161786274390794160996662333773539049962513590192224405600403075246565655916528469656683096497281200975268179033933375791577080961355982819892033789509925911844004985342281932873258513614950119989303547652484882404818527945990965391930693820635881386562674214128779692171828266862723734791818002832481708564770567547743998047433931085707277046843652000001024957553402347736765195618486536322885156028046234555170912270419563335440328014420693841476224784669092461421893991045602746204062434315596239090584930229667039384047314695076209976407252212498655312218694389751324851986833357662015604443414451547426917123954714515087263786816311361982363328514560878571974054554817830220297208915196650657387147664711710713952868645379098191503081600719526442011262820773736270765392260055196802475859641446218262175907461108646470210975602743759892199293304777282361739089201835306803313873739291158250735536333834015808353451056695114405311582939795016830737999811498289299489601781570121024325346586447777656700414692608544513740310038735730820005427798031559711157107692634772803789104178785751740887634503519371196656751020053298755793767410874745708368649293299513255586376547864777830030377562980720537788227083676812108454544136340550662416412574232181727171184499275397801898529848481731558236836584337424021691891878037262245142491818450094657101957612865073998460938723506374331651454271525394409973084566471532720463196553053302678884827792735597103019515067775413576893034739705350696182373459309321004676371113396923987059006928602852315295654562788857961535221494978341197158596075038869527550002336885344066774804280881878287652904116695511777955817080052195307668022707052803799517944221138084961146329404856648545587677782390541667786095925490415764470658126961203426018897543901526341137297244074287497159692601023737165781090108788247400611806078869629170753189865791716823739823059109280973996557656801540310484343345329291856730965121820900490612502939420543667188228279800939447813355111175179952742891408824508344773307420223552453810762453935159857255905093479356124482484978562517032267695105992278746502116580563162167229353076097536040549899603132637219077713270275238979020587681432629238721978632963125794661577494828193814831854464367990909801598928996047756278404336964160649576022381362016642261237692119663428054608737976304062293743547846695782565060634487285749440955666816811124456540132521530323592131233048826529627871161361442469108480513510582669400719008853617123006964657452566560814755113496019209276061748307234778935202941863328564220755762184707898245171891955617944495465362374678505287600189109844266673934412896019611514529658985138977799480230667667363980611968891921479570319131942225325988734586389003348871481473556838517897863379065844272620207399893538400875780941682572102079976638410584714589190707015681746860800498991076402015769511918192121366714219069648278369975780535451501693932979072092213664143876053492561300515910504420679476596379678025203239165066618910246058664946088313959881549747175474944152569439232047573376093971243168751869198205912226525008853648480241984520342038788304590878042139142230293384047806704984583697578199585657384304958283458806494866640592646321089505906449597551565900532158176107147686789734577228091405252897634715684410094141946276297915578470872318069397120466048611458795139694427713985008880984187919342557181958778858952762166789567997140081767334015062600894028992707915834323468950884099577514666424314479890332300403295350369770441198232675397249689949780683301069762306626491664407317694873781542357717573390424396726528075025357963290674089626016526713959250567310711841021585493642753358253891835648342114394458755573154103385842469433089300744470820084941923410037230896378464930013261596655000208951698775732707387146569889968133858902796051736306756730858202116983686769775107902658274434381224168213290883790263181742444148220231960632246381582892719127471247704283396919177989031667836170024893613120792496485621680946286653541852324068113979286327649340240445391381213853681825200115867215823942202799018451375755694144534704696201926407710981026816867380715422255013719679595134179778955071559235225140148189186793875018375076706226195328585548614634188458796525840978669876013596384675457765312006040467782688553550203658597395337973463505084311181423384589728549638325575665340752566090725408070282361226048219443161288728818770330377225891769880244739745411302190038752285643732132528663204716382552956893523127645139630939915576100509733748797319544410697308940243049518589326836027207542888283579525915016501943467446003853304938667839641762163378403066268922039671079871739327571018680281063498023600011991761473930223558997716716064459805339885785037154765797571376633273896360462560780030474713240310492871690469158943745367109679652010876436711001637991931040418104652405593252590614912579379146662334266385316919428432061583185982242353740753928681709171689040074706849897241621891890879504345228597875517847995400950428956072399289376323962847438821963877649879950233821152324116516334982092791284819118457764601345724771945001359829190111127925897118203264972540442447652582012776684621342175061439482246274989084619651560867673034089514315827056865717410103696751018889907455544433504926390142614229998637101333512176914568461288299154793017899330278391196077306176097862376233518099467472817663596907954121672039747321646737741425405333916223012583865137517901102977891338396127332045074377658167740338303146725492919133490601690060274845452304109518704221145148211405198159154240406174272598488729603747446338393667902699885489082250160686702529761735812761135725594793531124227652814809042139999520059059452918927599984938860575630217888312901141557761772613989902446697059150164496537790582184021356774384327420549200220175237531294263211132945091414764134408230513371401301973456272720379601796874248045874858063326113720440872062263511734170062745601120827181070539021687035415017937965379392375381135365939549519351763504752621339486578074175638978167136866973608571538602220683295264004335799546379707723545039005096300062265506628824196436735609346552728720009869723347354598724160108266684555666046828986972135932287783580983621080643099440734522892590815618726677113088907873192546306089213843786518676011293024055532537165308456454840325134853603028031511005768059774823608616335379067498293197425819055246827037707387553569174785582262001617624387529560462244528373970046801269030502397740390785321584826111076160188555202543166198153241679288380034298485186020783965956581805840995785920677474690983229160956591750663903245273522586693103721500354354685144981426231131523241509083841064918555094924686191389229384375991195024529693031606117232074876812158318548491482295968644362940507229478795676288062833908244985467872750477850630821610052296321951293944744579029821219798466788106105941152496873389682883076012026648972035686729657834949471767378971182522607788777666337825533784972562783019534431654345584906997241424336904745764153354430340743072123166111332624446834892704719498872636753958572023816697326584321988494000520217788879853364793599840141902593959042245574946982855641407263693021176975522732035361569342208341427891425180831708273057990069392547637294359744739990005459204929601395643646800129491340893400619667603607114485931531630051030669297870536954974929727330742736389325717447095072492684392825806381042900824245141184977092879177144449400913686474232225748339440373054923169690102139133936904091954521218618188616511698471572612027271281110665176012535120232012548364184819150551947770011034260380487299609993369709018649823102526886511775535676063632683222007770562634309444628903388829600641432431233871094201913595140444744495662938783631163737979982987538150882103770890909719558310207322247891651013011541051791056805123176398710810924882884558789439489203492371473231274783103289852822896960168490275495879414684219714073877358214853804348813368892465704101215757109218974158084128034393443818657807219324044341858425037481352532765992972000002076051068126432054064722437853379209482799711054890691660984859531731187010639095049614405698251621573448788101364030662943382173093136719310492521619888019363753178543218332791550608995800470309818796102067979161790493546876919925730941620078019086644053458336865755892533667031600876586910730863555264058724473065479260989659817692761972827310384484120098257506839432826338587663931591384341522394464608894528719505841269993031583947924453181764772113922333164403217470532204983619812782020168067771919383700601472932772904829949823199178149492044795138668665001059758670950603229479086903286940067159165608139063629831171230969624390282813840471155262158364981597514707873326577457879034003293550285774072548818318867535361032316514691658589142342017975681075991517188063668062845270451325123139727907651432082555016466918867860356476125850812090686458229402276251999579897201444667592230430560689171841772819968705568156534348788211174667799142986193376190514939569420480046994825650876758131427245664738082714269021697274589640505963717192820270839409453464843022975230974523937467915326795371635658125721650163348558121569689380070950936254271695405282952364118780512090468123846491896616951216390825890167199413680577116015356911795028068204616485496284188648243421529560317414652530793093937071384229378024398019487793026850352339965529899852333287043196346354487405507415866422963061984695967959776991191527169354867716361438627152038703998708703868172206872020865623339154958274162486639072443713156610765252763251099626223762270144491374626962589576779932296571447649273757957272908505202073484489452150797291660400700365449625193476861170145923755849722701990476287190048102091749893698479885747197763423053472348100307618794726620041209766719909034969767013617277269881369887578955175044343840736086687731890009305018486097325967272697332116558713661774696570150306209073779249856151192754278782242285714517283312853880183525421603191869452278926602524006702775475395150237984363174374226412320322172947741496209366991836654531149421146664462568036108663641879004792629494772655428117897865301368716341760623110770261357159971626300046070516506155337286576992406772048227426605948832549180539693646142769898977693323823621130413299926911579114961331135959735510165265093616232583251849735436436865613611621241909710629760109573713657227582935164234327771237942348421011287401489940967248540148766003527029333173729035066665730254106355420254772219760834916824877332170522585879856272463678305185005178992728425702807842745955098102691672334131556700537911361808340193718424695003976753048208982423297716574148463540694048993998705579865275944176761423604366499232867363898844197947699697908007301132521211645411493515205702317278076176787210120026496778578823310150937638222444944928409574983975999236056409595673811141210108592021206021248380297495858814496317095471995541785552546566105322962894382082076143281565135624154410987704184499736707297767977678821196455219522636323601494399608922963217923518159139381646651376362857102478585671826809730803570552082700189155517111146054818007057782265423224738259848473123898471343895451129683534021256466759062647289437089825711792433319472204303035132721644389699451487709826364576828753158033082349190571438677455045558845919890667201597869947686293176440027142674121390131262204392600390015320061116497228380739261878851850254197483754553666052639716674100660080770701180966466459576227481945872779210108758968515533185706673191966512652168001280211253171004589829232321696123756990064252465902950037258560454144236314290541246490398994763689728174641745562735101169128797545041568554332342312069515954552344487113213298071654492292679427605184605500377258237796227313580307008718819561730287544701055176769714558412859639709215582505231545983605069077206827957910341605489539706239824175947198956402490202139930013717103988575020094526294078328594659050068871453098964502417106014589692782794301739422071864223290234284897383850908038008292726094846896850136592198372317777130218536164593173307520263196177064083783737735124521245069673170508646026892506770943991901158025180034510231627134364927125078933438297251822369443569685152087295631909639303592296787985318321597994186693721582176133204099040983053094571316187174058778703942291941563246024192533663033494148551853088086361658647821372584316658151766754791603449388687920107468019200508931456807285884190170983271403378084086413338129215529070120408987139811519961957575856494967309531955506501913922365107397343685658286123078970119131084047548664190755942791499717210207114113142086648766504836601933245262555596814033138214321140999154986524029943015293296269962737354927425474251861083707487161166777122142013718501541564607981120412845385918286834694350513207638270688042431494011565229746712946989769596925128626297069001282912037634307365660756429428891110535126104579315062374823725189962415290040531287971454273529768872803893757466024723182792650905212520874058644742594279085000947073169951745591681196908962864678776334408925935973882593833704328613383484383062609855552677418777658494397417391070704945575627410074860460806681350555641374939016487474749240625603107965013764429591607639277296282295447486679893741459481916309659490355920917241728352592679953727808153657908147155972149903258651001763480940189421903473427232558427276852849849264775455696015756713749077172150910319630622842357396873316154348007842444343424025471171084550728607449839869723928793140395678664383897496102355864574292707375719554430022966795610635072155244786501238009548023960592662515681455253540758861691165390285008243679991652373435108394697760532678107594812751237906973167276401296497099647500490205651035010528795955387470258496121529100225745584951188768039434269496707560468292323257619397808330854164100153235313171809985868782387367845026345177708250992420214605724802683355578828186312807679512419826724305321037750714141978780070392320030311243478691925738863053722040172751462326134427153549001590842289248406613287220700120103398965461496426733688747599530920805779946846323633968210906633359515969843144024133059452544771141682048545372951326430667017278288244996421480455133542464536168943248474278334019324505756660623324419170312207569098667456478238438130711063209284863685014573046565746079607456590610373036196172158395833647719443990013382634035438920378962356911414685605062222374468517409373097574253402738104647471297251899580466604278108427992032352243145885764526352272871808327571808055285596813640064837507348492006072930831687510556636449188930904733586834736222599103254545467646644494460776735026086645769789091753489730149290476156458512170353545774584155447550659614932369412233731559190532997906018445426804209111574241487942054096940368449329206667042710399018676107429313817789937665705396845396301685592577065235397362113393470332325601308147923339335813927263646301098269522001683440392928721509439233471352337266485118407975005168487863231066672928083957373715041173155778964712714489144909049023224999949733213989836002826087743441217200583047421739024356446070679431746215323897868644034314574262876614497316169921993894239370113175530157767887810479094158535136083377417602308978303527463110119023630278001048447594215211746811824084336500090775699870028480916507717283414380299255230405118448438987917186697004294911945060150449397437929290847472148594684115466793657775061113658246414904001635274642084552765569947152141898100642424782523882858979349918555279249061832805004575730428798200296436037052773549139106719905062157291477733865663129578996088627514107461490946271029963643480315634426932752264968833616175500786785710041944494054042705701772519895329042075127447172980946808606994991597057122326383919243207179397848298644427520697129525393404173718170752141758313236456084446029296064348104616863166760157789547064508049273948171923483233957823301670762521993752219917468184295029622527651540909399085711814665559960493792224030090717030774057036364169920955097568567122713176572380182566679713707392268651431118008796296972235049219037815809325311735933718033162882722413879826897917774484245373331023771882408195091969524154881676241248144759904815995084121409141333851813624509245561667154647846818410425021229492527291162270298491489990311676218490568348623867557713463006455546897186149187335731384603435807505128319807146364987001529293001396627865793261021037325240926640620883055634917709222167295509560478460751252318391942911630204824548413198941004251734462126507444608420050879085599781752787701991012541953146516327612283952764213460682599352106121309171010669699550078921418960516988861503594827287680470220575220170651922123888676128894277500696524789507807772537536323502651590101685275571764475341353541171437541014513198234229921918986344170395153843126448466752459542556760396352269183545878606913335635025710129173895112277412552614461764362281741783641883434672569333801266740509853040659881815651917372960149033141941161656094680469149021580825276644005690356052033587337351331816133329328657329083483914662091301926498060025991027653490522438091152613926430148227015396981876968751314272445844533743654087937245922990359613394075390725685551337284214534398563977433733082601815105079786178577958347860886717395387886175261252533497071753783298702285472038102587798461920537063841059755770064267628637555025210711740988609815701022553665853232179190213816750320809729452539106294219185137739766756456192862908851494501324183609590652644768949756405112375301271891001161037587271027807426334605379523215179910213513840513838476410404781643916425741083772881748470102132110919000808117336387689156633445240818633907037297507027154152283622975683649409286871694979022641309298617244763160520547585929348222003844657307355935020036407828906051157242299024082390330419205828422977823144682946343772806178820804362236070831216812687464593373711821483494657155009595074031278539174515698176645343421671099472178640728240449160859003191342019378480133948532195327195537504647202384606780609605579686338468693478562614095116247899414968484483981554536965909859561182453268605143206917585369941183459829418882527884812374359026373863072137702102328200938097916159009140573347687569831758207567923277471667495942453417589873922045454538129976747385362991200915574145477843281879674927559244454128902740016036793856870094924151555811155798852294686129459031018719561654861607381591809492885373758294177799186874036661145665543339331178965331888366806961521648104271256157873587566725287653183830765883457486217883150929560125340494364959521925049209791242358612493043425709312253750213488097742764634623416798653233714515495464177772335731616578942944396611863480509457712532271186068366757051528188999049603321488271277993435380602785644958795008083054502793577155828001581811141515234416306181074019697038305455220085258726061936883127878682479844918889357377493645730291489083381694026685955185141526900642409922162697723756387997535677970345231123690604370162011784248429665602400126827110364435747264135626387589053341297471210707149715777000678294316613910585890823249991353622820673669552288966334983951396681644510339823121537278458286781677750145334046939151180231501602905169001535058094408691831633900927943922569576510268633638558445798625312103082014133588883244468385632627456263247224362522886842501188355867850879739167288859869563728780527646179318228744252300131808658152362807320135450603449043318880528016497947015037469493249811704838748044412588897548690214791370855581369653862319101276376222908332765613863577216957195772775181277584839829078366588118771979557343812320468325397622571345717512617156963794011559704061301266898365642344265045978760298694314419798560191558014088687334512775925670567418200581223727484550833215435751487679834175141257405576716639140928422886437257452392852528692644844388538461098404558699033593381837291081967969604313915391722324520918358793504547984085365638616952877173024028027079909310287128261033247540845564404209133530926768459121169873720592657945677110581762843443876264971633087522215054924122451610693989731231805969610365381551732317039761532645655921549451011360780467899683449995634784851299523133794731677177768544926672984945576553681122484298695860507993068594377831311327301705704592658734050855959662619676356479763695978255695978938960118594203830692170606825714664871973852866712358096874853739805287857899788319220343955119843627119456782501822648288256213802123316430828820996556241352459980668936472612044179430077306876820613109014003146528825240838923056932355166982496982679822463702298365209554233211138392595421411275972226098837654554332885801209218455434710714247588239331854797585647643803389790949782585632711160156172871743310823353422179233307970956711289202925846749775031122076795896905815328807820904464334961891218133099581342586513242376641696196236121621188955771369137076234818399483354270868578289785479632973068307158498119615501218484819853207384427554721752761227608543044122258399003026297231491272669135903227653779333197302635013332956703395727441541727982624537041333034284425173758032769439266812216861977971771732580680889309712362149829173340473041131587740361082107205771205405622326464127735222928878002687768007940975633049800009509373019127900014803135643009029133002334947086626239855340119721519461057381012679439698054256202963744876768379353587452611852125052639398103320142394358238933492710648679516281536157291087138340625586015841277171036145196635726010290241550848994273235799981627978657028067311940409413826635868436946736850676806541409095639952304428802130167218840800341810931381996658509805009384792742278003444155189660461871846801844094843767241855247816946563231496722361291103230646997893552234537347678822726857815271833722846052931870428002388568517714634840499461936190038586490666424890586886154727087878065146435710544489752846815961470289498817287989039313286705171001512611451254119803808977965489779345602773272694761011442869397533544114779231611702811986819868890634518929413636773615024320087084732432740703755385266384838487767600256982466317781557043016328487467948592136018386697482675803210350075719431650960240120044639950634064406571367014468950288537173584601162809241862049673857299644179275966064878582052441330418561742871076236907053077324943035107727376745930085068965917834022375938720530185701287863000430893851679303966963117056160714017623432711383688682370991026461594089630478641971585920989540080871752762441250765440711694379148287203001392125821324122599402445637587356241348032907214772524117619721927573110494687727691638413032939152988619771651503434751657517282063302612820474229721679191254800758054192808710983748493945105806142956650682216859342975349994906622023754740780726115591070565579471810079774130139724300461006849135059650867388231688511125789258000584724606741170024953954778736290468557673529911881183864229325154815989726853818588869301383043761819347345226630750382831743342214929313356607925740574998266833161646545364268382243249986346912674011872565945320861845139549678341310812969318442119997616552058355457723755723783290993099085253079401761569165253231475320336222838564261634948124574844683289538095505992383532965648986792794509958656670255452518188333578972331191838602960875112075219382785429760896753671214267315214466562436003964096796746724370300754898091659779143919399141321332728575429333625047974278884359222998077028259530362039753934762388717688413342920256443123744229237368587873610507481193381973686091601996282429699860089163586328844080983173874182874607563294264229275862081047969276517661513277584041829750419133509656598408860658950814259975712134785182817869309696799950167035288838330818579475427184957609624992628701420706501569871349595585539492380231465612550943979355795693200818484201396529989699710488325044493976228356701504605768151449132444694811382187331276115264169125713001137819135332583829278849519657536510987061332283673025852924972976715052516581049663436311362447923448519763480869950726103950312976695722332122790198612401433605189420895370333542263991087557013794087574307008315823559491420226980315888763881680155761127181440007871901691288703920335833426594736363383338394385381048214027998901543770816503510639818327715914858719175082154540991164833279622773658293046403220400739839236670959598787346709605771618757740685323856573579014454740936500318932763463820632320794911665532991587124179662055206977115299819131516807214893765338074381676548925806780764005244210255201746415309096375242701475112034396213346193703450492646379923099359753614333085218685069469455279467689190431002863153363544499345975406616486277821836819267643159508611044558539227843338321674780363470480226975250389813179149844060216414583012058790309932255747488350733873505019131274633659319285562853180337742807156935294534869691340908253575512981608722690343106892395609203481314931166823531615061077039408289114174645859608653699267929358032051303048233728328651432640025412835790078208849619168305903364645672802708199048736758461589332114435097990484943988998709679918372408916925683110447296598494267994035836122518634906033711606491593898185893279509125819513608594062663231121182906138350671786204733779137738843019300207266932127281502642578277685576646988062278561334498831816961960633759067094177980072649883385406703406408929995496531828641921116469290331582657603330448389401603384255110324225474486733240728544710760945480644042944845680513214005827813564187917407460885672055799596315208458345670739714437223690167616760387383449592526732111721514239530457156711443156790597262103823764963177380639285631205553226846091785396210111106949923825340702796455711211108196273010950825984437270840540649850792092755658634623290679166307985327079308335649433464262604417791589923133513160470401604457425396609092970222636044008020373063070969533107107058570922696049599484495558794504610812881083720180245356817339841704353998708428238083281271968826058220007728858991757969602494342367760905677179705546719198165052367393082892651352186602252390629382175861042301408999830209020144687502619074631018570938199833651524719574800209553366765387056196176837305360331898786527342475399084426669829594104062316286478925074968425254244891941936709752962993488719122176190560244305896445427154819541244021470220352767467255078956808430256237994641277553791699234109297448867789554271341923010582385005932295899046664033393894528029027372031768547734206213871068606848072634549666701941345142963634933149279510811571678660429961337491481953797187809356907989662761907762706993020196125023277825539227225918894466081928453141362936992549299771010740959748764090964806075484859988670862300801284150745420625340627434174929486693875946141992660384322569865582648007850650659271927726131707800644797477273545284174672431768144121121160073317563262542498445777048422357198011944011855891218503891209038852434847839388407393538126492937772653651531473637278405541147950285177300359943264341735594676385420687019935625549484548772137344281576161313616188074431542020424079582576563681663388914686841693202442131728006214076657362198178133639555408425481996613058327270225388437059802372647313923522943493907970729143457900324665822039117003244589680994644864653604803688090078547787371888041063710248050428156989809211318167481421553308597537105376847368676057669217126702823495647068357775175261322409796792724185916019973211792045266413843626818640819460557192719615775975347905429977045879603420190273880410987977325377745810410468787281627719252689884850008942585488397808024161139356860126147860039678364020702751641413566260774627042445940559270388603834988954756643140674424445228200716852170029374464668450585633057272683067927784845016383610940101602540239653634308848273104235301509624046080135996642770418436435386356555342726172614555395699002344273914888715213743638625536420074881439169911463692975974876157871134312285246503970382516681655700081930173702898427092238895132559465551330440677303302747916246109202666674047462037872417285502934626972715473623225081407902051863174500733940647713375320134716794528507219350337465693872650337691068770387361078361490645832689477694458656134997657202733211613479035338647199339497123430579164764199737081788800503528798604742007262996883697023363606130620009343702701275193797422702021130326796270034728359264128048096187476834089489448923265969649497591903972415964352272221530896284789531292867960323875205676023124667616770490598768814820878207370785208349359309473176894770468421544511119020996201711228272996340490979851632631251859388197284726802859488828171924880339390491206184753482962823586822969355168470928754746144693290168121086416273600797289929893364583909593635627896094205571563445162187156559835769335303415339355918147060824764425878207446410595304598451405759514619354348135067571570768740561158364466817654957202864239696824270226189169676525585741745460317559352483114485409912968954071309854838541956751654247529150051664147709714037334285439472854065949745907301142500854811885158031763186411100974788366772834234486722033752858595681271386451181449425578696143651620393849107014622440793477179377068289492029675706457392133383540893954395805277483680835456701398441675520372032673076856240269897703945088635600497840930511466032984613623127610961911113390029942906826527514877411960062886114807713053935764111079366360900290869890437029999975338696864804530274438026738853556325302718385541542765464291133622600769659312143771845711528762517247667219146179727989009331498959080438177839960785041904001367093544247179124835073585312282267954120783238605986863209016870098470813699031258715836483391750949935637478265938526341295918333254027850410364059652229326406600132484762378648892774320032120561839581247326989779330169475917146793916581416169300883963158943976415294365789504183041942459395619811592846494789302639390867616902395704574452890568076212520687651857493599167288649421493146206527207000910998677612026796325618391228635623903625152683367054963236438237650746543209539465369700614426851536593481840745523633600441227844679628133161972629390467558794679215668431849941952318127817939595864643026881632248099923558907231772036927990280787724966706754173391357356648748894144302888737347883965947401773103860259558088247378071363536432450132266586232593511810870142556713163273982903657592091251604397821291732400336393531713684996208336453900617776167568738335686174901806740603951569113087871613076474081275248509372620377663550271353582986651023478480324628188793300339932388103694090688341197674506960015663460075151180131890592417688438089851883997236923444110552509417351585614467420831566759674379564013265763485169838468422396689483713187636676740720958221680579106052904063899251076536743824560982219271899162452462037874216612367873121769091994420299992942244779171157018213242581196420947627683023931333655306195699770022918797868187049280624882406400425178682974289960800540626691568037743249359945052876987823156670452021401382729611235548414305755919865938560435604281598121309785972573303348749758648130387737226378109226148035268321612183863786328284989484174121259113616252172938115017666921546775473174084212684015321488517499372618126424447529114823688743466471610284722793936396452219032564431252303016617838085061712919371376104913560920268425644540128301274148388133791943068301079661312146468048600540045824460802342946936780247638727451892234186630235812599879776370313256996192724233840641394294357527358462430060568478452055140166002875157414650867884892241822438714207694420710072667885886806516803530600638384875318919270689939529591429379259052478915905235060851486957087772584001746879697878824634620813958469719893861179517163814848552096443222871918695370023482470614612888864869474319831177290664594954948420200829228985443175647421513266978849744451273487384988850885972355689874293386240227977376791460940583775246007702939776596257148796139699107165884782527827814047307221687715095705707827025150477729129232368605855386768173365834309472789349190982852205932186067672447815280750935761856102204390290429305830165465004064580464121732347067019192831655099638590996567062355340419644365910273835475358773013476087629954810132167301845883848772794684367313399379184226896587319874034805377900775624617188994318404917090587072601214520852730219421402322203948546226505247018508074996915582906664939963788419695472123222940006084515033765579047609492295191827876703288959876652401429016406966580042938230312465125214745687037520105937407293456645426342880324649230543277005358290370878008550210564252182559320554456255644795437628104851272644051163591755823795793155387992537115924128534362815789658885797528787739320654771670359879366572972729189125751385284486572051600180523667313929897280793755055627116234619614395038510192694132909551722130779543057021234594705051124663233320295770511663266643798002886008179582894421567537244841979786048954125685084675559453243158692243436674303706147730836401497139120822271817935936189444901040976498555455275921211057711003858951828965317210587453935161583997953792605401471368394262256131573448672717195355642596857709400328195949997829397349844643622945437162749669899980140592927476958120805531252903610011075825255084617394529890574816107955218929112844042778130082528017339560799579966770041315818268982485552715818863780020276978093110441972704021920587957586295693580650930781664400424763449016139926473390979930802172915008102041732080941663852976728603734935227929705516198473995292083773538132523174891706811404738392967281685392753904994273233425598616751377431581150995160272562373951182069462467654554165372738787175059003170879656571876643148608278299982784671376285780390449520934149726538930057794113709149091090800550393249419866500759124818575916074556757146810351125310941543695935917888373884493347267075383460184721325071481118974158080717278999767261696595907646843598975177073314354246249638762482647180725069292742904033262357354500634861818042274110238810227335985580472241668806859745423130700170302843103194328182122982053801032041036653997101278024307529552216640737826738919722518390749631362443827517053743367125199114881708176890995796000321008970486260941757295753189504112368236220012490704811724960246183419823511037191095809181792060550967627921115418470144570535416197634605889716604288179925818547637726050793213425314513023926411029366019752903400315045570574754485726801335414250653765761100149897686316862139991445602787963809640965443013879965102818997083706499993615268634969791098144506502321160057802038201455704205651076184890968724324390445248157017494405071364870315716950858175277500233293052856714519656742438087269534674918600509475073800182708705988168697736664809561135575455031132875345338025693350735214328644868282959591168877521953408546295005349627594839062132656143194824851020696209135405867041888925726160267778870302733382800928400493534057005004335523885803849453358912009130006543972669434281720008479940466280226953815192462666493036012042937291069126269708052121737347529892526961564701333152473950414843545117518777562755758156174901278365573490454801468743929405836190725451705205670049816821978020148857731345045280951977896829667170853385600043379528289783083191371321638593743512107640955793657858901119675285196239440027630457044971876200997339346380514793000397796441091394699051275970301982125831638989462545283362703653805697977598967665688409031036730051154183220286882548663772879502660917409970334525102315759408121589708004647626597674196923262246026090375478233448471597217351098629759650940728760343545620750250565996721911377808783503770142768644178295549403645746507190852802132887811866981633622173323008663043348937815839798980581215561686298859638601399389688570531899278747738503903071099286600514030991811389689896769885441100408391580551966437714248325048814656780074177198858060755034654668870988990242693226267563875017854581480536455899610567284054386587192567939936082075288549156516250046927177883874687415153904133812950078259467734411320456462775267264786869203349487174664845360776564263150873385517600855148630135345257530862568118343167713765424570232560612254696151559379577582647714958858927264268686713821299776680645325933055851771552690360072548057151429528637407691434847398197238682878924543048212332767267899960607718076693889910128536071796421967735592205964861052950389968414384056003378563805840396838857947628066827165659470520654262587967000722552454400328261702985214781969446519927263558335143261128102556585520246194317115354986648191321300786923026815023711671316805614847012087027069153275950810387127180927461980459465814819524337487883466558859757515675768521855897731009631273699182923960716676091270780079721134718333056163906246179182074640482013259706152061936157521720393539264320667015843338189940671553862802163193472922599613972572619839146281635592007196655379534775902285812650878476914589681723052764560350498014106073585033127177040484504239396213028439062249453134162554798781035590824961646595542392297439292714474379019632101255505692872430556072231569039017840670273857366913980250039419576775523178508523210940539774007469542594152219022243136542485222968281040050351536348396975828351238874444528615861166118582631156772528276086954107261230994419256032899261691126975171860894672257478292842710498511708419958589384137705919485485069570417562508495174998327073281128957948150799576259924715585080672357232394397162627423824313199399289037236160024178081786849760021840971005081611632396357053309413789944665951188404570273919648856398595513781467319776241171033079684800933403240341196117268969236773436225073624712877444550405878439150631946640560230686436038775522514192710133683413653350035183849578012858284345870677652781589346136785118201223180481994306208941735532245557272522238884435611680192483712268130281364304963589868080951608284309216417943728850489361636189264998062034904710714649149029415900522904290298864073126461036330313257155777622628493353031195319202615405733875223096782016269233735591908978341949400729117323058249832171169169970470845390131122737688157592182683007457065934908399824611305838189168594878483912056484744362961381904580073267859195044364339539067837687765561903708448590278082084417332183455148912505049593534328605159926770885881654981078309838275742267808248912904301953429506382437974466941550100552033973845875843279173632885517006187876338400913542052387000053757040563209309350752611120494675570103660515775159932675319558449888726673764140547854787816746639291307824042612063944731268609139228698368569655278228688676763595112232963640505476699748592628356294671965887444487815788912323623402693976312764116711640883822880619457175583480312435965278635748482036922459511480335752522474693093088141775685538253986562530562890038035337529461953830928442583740678152189539243764198847441370855683851214717413986554818380058817927186859307345708888813494662848263278369724461239840711141424302567651902976218887356607625731433746623709643396999923925360702292838499845856261955032548740634050245875201543170571627541862324969092076911623134796042756907319387640805559630718051624229735099037506863065126371114742972940704685125358372768748334587418783368087837006613014907427996670785176306598212287218033721885488292900085468899359678245276338610250861366325304455892767675837237368582906796646467151259458253455386027326823567075181914283593275933627483111850330206271017425749389769355433038783821397017131866847183168822445265905301952382461899231089216149401223603341661791705460876978170947945006137262646073113341526003736397294578503379081320033107433480629060493545873279294847390734285801523675670496449455269625908660626628016451163477675730707661365995156383003601055449466443136037789102500932673215004331075867944030395075729869914623399178901107490510933616400013872106234256882928002462549644773173521447639768575134502083191210124344717859138501591150301183046515865033189218013160169742618058530613385628901761564972280690727453851126603163658610344290620543257857344527492987147985530164018963664882329781085160948587784973391337952998739686660142173219373129006721677624805352511983311951763212390566618879483692613703911128572503998222009962370137507031501735203944921223278705582959203028310639244417988088733875186029509353787712919352956491618100289494688125761108048848587114325394166802580799657244583053585938995657771895588573508435136830791784696370553630440168917741375621511806226925398493079654650767657285527100519436892922509849315160541323068954563852996014899559407157141584937566529954102251535474518546250897431277116312139780754883518588589901828635610729921601839352759608941871337837479905174383731253930966097813558301597363472453693291781753040501244418154650330743236672067560910234232711131517636022587336857337234010403540898450171112889557608704285404922160450523052196024272545637121645166452890752419787692425183155238663615733635056318742529745814558419260893435741731354260471898062732013430366748770004385898490644480222858780079122801947490893394620278981903200775526665937399706586366935372340161271224639707918069765895016478297970495896706805104008106764099116782709883131726618689586589403910623003130520955705110201207963018826234278576809868294148797293236587293245296167127827797665590209230421995509159142734826179117959529059467998402086525503075990001488793720471792679805243247522948328830460758394194293815415895986449141279426991420964207263816495870376643789739218626592183964072104088916636306301310277329802397369003079775543281358638875759586125062251246847670339685258445438103005749707187207445561936893239197389993633456714425953395510939308311859220374421606709207698944894319846299387077235084494722667548552244044800877664884557478601912544215798487475021454343182076837169768638353567074708190827710778582744772922929465837970519091691968277491190855225694000087354003080481416429991818956150859020365498196684340840981549965568116879436634973447200236047759237614349084110053592088598978790435576957359283175589830993249385148934715639507535031167668083689813590402915614903754796677045361962068509870911556432050017415346380179486428825007515159403053653126689354621452966855079767005880400345604050431812831261461891214282282653527202609094049367957173577237373468956594305611450707966449548275875622500605466887494979137222278450599458650625093528218673263411394106389673965703399910561851486153719424836425573366374832612192243385991633286248861255731183509791991950024024761295348464737662255059191470406050428655888148556294934794360782126812586708817324677442604361317546909113444126653851867109445040758417004821165532064791373743642986632157276469460948396283676720185982553567600270819961737020410261938384307260338373222247401928884741864143142769946434582116051448873134513717617963916429041302609052277395788278522183359103390061114739602401170121674876956689308231955818276437598850404668328495133508272990935398167395291762475592273284571739491547580908812934795133756280756420898197209950334552311347812593661085423080394497099026383534238163291127544678709510441326297498227997414937626925521808100652533729163713310923525770587206891837954063022743450654049527731060731980716329250969274665389641946351041142793782794815540307441605524498787511733171865262076424810959035048471118076981915610592121274156101754497656013432376502828480878363457579963721777723543249882311040573561286348293966745218480014229809454587136918412615219060379942787175239112351702963280787220670525632568162943173706929147926225926538322536848144178322677963084283872324720854931555222122454479645263097935632729172251556987451784008344208097832655205409751188059236461594743934542040757654528739136969249308114742780858566689836296806098740418692716153903154632560291723353766949391707958129373381789314125954735001114977160329115389203871159395332022866054055204226630424099172764896247336848846291635029177355318358226750450356634576609786532300311221222371801200764770153263614539875924933245466417847536205614333665125037412597503194589282361137834086443198417471700313772470476006789997674718700721420642674067538839049226862587903564405923421986281072239256993202555114522565286593395585527950127459863643327006073198416126570988870533013112546793648460105309813208062637928979874689345262976622186495621328624465500919005013814549084641687804270645345576828210552895104258360213626844580160743944265853967487036992534632378474307740021435158613486344861498935035693711584638401870689533122606117267877555995202691984124744563914796955055954028787401092694603569603250035781933566306972602492261257656511108838582045915902291385158161011646561100584701820407751254960375218676568086446412716735523317177356847699329033152938281381274166727559150384405601166684105114725119837563719404138435303962090432737792190882065165601326851722573045670944837272092995486452139813093785232209227543162297699810248851461968808970922922314720872357851065471022624412640118757527845386986208885454964272732138372716482455213658898641348322369781136049833158858040633547830671290336383868687375748490780363442801645247716653729215573559892976394374060518936012744448389371458957417193713526053415956728370169828013228626015952709505206476119617061011104523050918785556680551775958728261265145386925853599516017372796439161070480578718406904045052901470975701275035816213247072802130417643975258755793208126874839461026063356998681138364163447281439962477481965847693086379259135325453853610202541933131050256082469229630387193768729330309770820606931449084388556977645341691444349217276251032648839677185483626165938695456561420104115885597425595260830585964869868168336166700034912519420598587039315837479979153422094030197608992386255375960417319267065440115940567777556494429510215081150245162586857062321663329034543436440886101259681405610712083012694277584256349411441712130924183228606002613155227850665686644926184206607706261438444700318045651801214047795028175430444110851900163885232987751790099924684550396857260974213217236482909694198278428237192046183683834727446864151999736719192726150719246401556532073190557966386635186281442464516844454576337248141183847330592017791483279406962945199418077063931645288102532057156690007628556228405132468107376042342505237747042830336667933294627308943443144603608014474179793504576107107741308636420955208117030016193190836675707526471034493448318648476528539139149357986150311845276099082252804228516218829846597940123612937629555181736623244858275305006804305772507608318833020031241475821360961543929212606201537061312819520209739619338014568797566187976992658282337335240240033703405720940897894146731858938672345016142894069577524656524065109545396371651922455580675253686420264012595727610070076722764510744791184328388206084685664634194805708407197877895681967366140415693631354913017423340616685796545217370843137119638132361665109117116358470174615881699708571251680136929922645947051748261004489138361148523442789259811435185711941944324475611642188944151977451654278675683141931566032891402785261241602266519432506445725447804885578504368167058983537557009774573471647288284322660921513821716094333650104441288478175382432468794850815646738494895173688835450080558933856685349813116490053847898871255742059168389239447559748850705927463457603465380615130868701648031895415439410120500044358569547294610873356835641292849737696280453677396952632704162866873537953419227848460003095682526506670787172396236381475085078178446180942002321620235235022354447239698607014614147188167718001267274454491765561541126018286267724535428974417249176703485426630849468923807208127452729014599149409859048469886021820181967576123260004549697713112041564543998317546003882902711190564568719048075799460599820269674481711073327590909974650403960277453348986408388228148943095762843881331755834796804381685510127610624091177941281070284453495092081850503838679801563526137488882330022230699592832360859851771955311932047775590237357681274815855149818059599035249906678928893878712711344329300842206185961406137923270794156905446428873525894635249267303950912704728153643136068806368996258473010817006639748064592992994139156517495041318481558052795810028732666297248929912153598387329478724019137002360503065231491690431996974510537329996217057422285337013950363724391737421892188356211833946164923302019653290491158185510709464274917961759323059687714588834843209728000307102636163182190827875330683390465770884748368086622018673470010290778420500731746992921839171914750680775476815237653631146554444734535968813459294553460162365715999706454337687762811472436699290115129396082024497966460779724747431357048714975845832667838736237518923822804605833564948725490337057365656216459384523806688127172605226628828560428081805914165170047960081009606717268588045847132190555564177243730676862302040415444323834030683089689162001936526274579638334856898120158907748646446750759349184098010495483085686842612702648774006783298772622486535692276834030901023334464490490531927070228279973247824051284910693361851291650589664542823924699967226816246244497708791491751595420911399724334548979500890635644698826619419521982621524515923209465175152388978187891322042403224772689292161792395529092930993960135269717222579791432756656421760264435163636122190546426028749217110723180048821081670120489267714447093197343213440665249903360294128471025476403463215223141635430733301303529597168782216652255473614679822679224529015257904823470210988547948346589655915765395795782457284695872388149376567332034698090904306558232962884384189146303815892131556214579777008439848816614738402202651342508141451041719493201708043500820661493314552197847525513437616985452532726602082874120074452675587127920866297760664221187008630917925770410299570852753711078588528088108063596520822182024398980869941195556298629467818886965615463716651236383743940375139060740333800361409339544258601925970164657909182268449547587605545220298978243640779821330540542086541922505575534459966590995346341181194600693501032333718212515623637267129527085762550774762674843917876254773224790919328638045322593540548564940055854823977024947483444665179339837252390907945471554827371882123516545131593831169067468934923975293057303118771898023998268005464949413041845084104688221069356664050791567118958090204464367524515269728535903156140229260283010451697888169944911754677532050016862095926232308255105127470335264626726522203358162170727126804426912194504837049692001075783955847361444980439248516901417867703281816783916854085466064094975199806345213107878954852699613698136292162336294094180978685098809728011633070864162447032693871067550462003736054019643753034721927122134216630318916633512668688907499491240141021446082541378378121874719698082170368439718696144108711870160316248092242115918477650835539517070798900546876583365415377897274076501583229108261664334477446045082512649714750519427864990234042767580111594671586011120223577711359001724980418706408192709920221613961925478204672553102879346612088297297900775619963465576421689312695196545904783633051397237398843152960857003597973785291809154303116736047698179306303831277733595589859796750834467383024024046604933766829922310671761493496128263428834950053472146368839484142241451078998887772523931470568746907957123918607083898206813543134211034012724220665094630428457748183987827386580458924866269470380511571869195846830795058724444881572756699672211340929341538934577434331021091338909931069111103574259864102615399908987986715987670924398375533559188804672974594254230789207179031457502639466163889428216093476953813397104999104242696042336156762127331562739797137923468947202738486465277870104263949796580098600611829550638124533794844820234304341868360600174775102684358489108610605747759246265357079083522150782183662106121214965682013357332924066036570545998693032095593696083953641213518365379898809588133489452686880543270590347919430022470767212940289651432201777044143324375539963284890224608948012215190014468067765974527607680343147264412859620390003861777026736071219037817510637483972825130552189352873147880243464391389356172836024224926812696364358464558273072053119777579123518218317285432162928194652722760551123813288541873391503542424368454121232248355949157579881833127356608844962786320225156848252768407373224599584054971072163156843011056395587969124597135535473373208396639316782224984126501376956956615264047913961242511386057917958591434054324136272693827436014437322903127885014483482840166911008258218167719350537900961529565287326823072647411634693488978107125821575486578116903741580519790025247898318351413415395509147572306138456564744717141186301531100329294650902537168654973011068435952966035929145572142124887932022289858430002698107089395343593509317290774519487262399014095153174681267502161885078327906242815116485310139930943417581341548270897065118003779087171100733855709266336994093115361065254057231046530491447709672575755145749014961672427727862997286204382720185761518679499010586194674825946533202306796137119887575646804218484576838323106025009168463698305678620668281075700635771498148873003380251903724243815813208750886062457246062158979187690411188958231430799893998336158743595647588511010490564400897597759191269511655317349365222907058350336772621871554130350308647254968313493832442068934047137618823919049672124143665075860249065788652237602081398232685832508383724359842162576687174428886243106165617148864190178120585111210342101892567396853951802443858102905139310053092873490639015423014061004609771208603376766993985410506961982449912674821970900369798754654076343407400238627776771798134588074474907470056200145604382839333594794975716321740317938298031383187985664152360690667780939841691939041716895837006610234575622075656592512854945720255152917054715307209755256855163469794253771127981665908366828631690005634531783291485116377467021432290762969866252625329003099969499938068141803599687126566870770480021222260505007652041880554185418397391232015586501695724576648193551983416513435011539897059044825507061431477139927292755601699953505778547297769957425640932792089468052694436446478095556390814264510768662454518108799848338377660410581352438391584964212354081655582114748456356301161136514502616700797387597817267882852948969118805983548036823294891547810144081524586059997425473793967803914322087360139554914141595133233229560261825823254854279393368344627161446400297284389563765096751789162340033518888884612859826578135306075929475971128025398960519969884573625088736613909688135628686158568342670772349805627842774992147152970251754443161678521793470836790184670393698983205700073141303625758974713673633400617661320192399576084795921068671134943202253549985463898483558229775961519058971674212983406937201525434389257694445810539266201187418717857696932751976061181481814577304939555904015602419662131022134420274309900375883154166805801853906887171333669557482625738278061790072426306253336266740768822264301567262733323636536061066263040172003047645903256126694133833367058268872852987236332409302410735021668188538462365197546890530263385843004506587833579248933198041935171541099659112099818241431243534416826394348280926210322014985689756269809718356278805709048133320629949614369951271991546291494357076913617159802159172123719520513065327809114702614626820748028877791958431609377478602271106871232307992821681608636869564020070035482110654369664810521442723978325546330389606043635342334187774823228528034884726992528739656914312331319029322817393135467767782726313872356988091868445665149195573003215784615625757651220260211589356520515941994566926126926364590549861787629767071479735920534612358490251837338181069759881554930563926278967147989320344599404908566750693137101252226572767567138396601988158009196128097713799953513280545902374096581017577331201047922983345202254833499247351991624373725796178950378818468247210139449903997289260627109727778184635668034010562487202774662671332791650371511876942388230697530329320944986802481886958147716185648043872358261962745556028396027532491129864351925765291711600012559746747162945469774158285714311868018988309286458951542324402044254329382809692605594068863878667670643118988927993943084447335363032104333041773535545880728094150377358897714770942959111152539448561130925254659042406490795473798091872154277628891380573200788779835249636938300502395998120688240305015274050444856655574111003287767348024052732345727993399142346180272601237059049124978630167592404452136608083964955086869675719959696403584250225449407813680409386076681325958693686010211593094540100148745652235563425505412431642127967875440643358210260585864750228819705883917143726851127558737611905943176422877057265530134653312366292707809954913962132118037331005707003440183250739731090426382255644214110782240075936876056685425735876847869475624384079517449831737293565569960990078126681288294738152402811735016365241587403613549422257720709873433749138001097048336343974826156811495665805077670699642213208296114468455619116743968523416739789931106150648195530281948546880450641287216422712884533197599716796360188728550193761100730987456095791995115536250644758139993490923193555872837269135770419042996656772787971029378907126460078725851344643436419124669738699867495433483608338618654533353106168397837840848719070344869099041847840608539883292687622096723042460422007735007526412010778564652827486994681399265077737318932062306512856141597065706735897903388653386646436863623826461062318804951770828639835117315306942206660303005841690456916401448358819967993036218329252054902180604830170995576019702241658033596289459689780631574219447799449495797789969329735329082587050914384104033000523522093281678816383447882485291622056489583787354569072966739954801757849004657627437801111796896531236063792293803149890701601449083116888922523832559611811369777251128976111550152162250043620742198305447876800553022461914941790001837763393943354409738065027249887495300326863760746394884873355266055274438922705751329425925772674405458997562473728888256150225092849615921031956155262542715578451964570044528116788725773256424410335243111680623480379531935602840907896560742885130030169032465855669903977975036344548225744775098284184626640891128278759539688182971776222835746602456113968267048054032892311541223885958437706374692236882920723867319760202968218499248005838503954297209248397013182018494818226907506582806233574009845696111001035343973135870114411056949471066785151876251159889078218018969897989640283892306435203830805217185697346985292522662267575162989827336222643851866658292586102848908626878372360988049506567140735602352694546095320978253191407653682871023998699139600965579329432754519077090112569344927547171512862084384877039371317685920834952036158537694440354375297763549717375719829253693016346486824045128258454213127630446364097413051114115129945300607262326177816750979694081406666626656664593877075477774848990272480449091320139534212946337455267697399442367201661563447469413312340738231586190821739709580529049314736090966315029775423476115535609662492780459786240804184176161152737535142943399743127093638630486089061458980301736754825777757768121392578974565953147970730008291567306655578353575861497561705023281232759471570048601652093859324698788471494175663336123813058386635105531306332762737736973004373263510606560714957270070870213661859353563224720361788038915885954173835845865489936916945389889380875523096815830865198037025520949089959402383365522158086806625339585361263916591251293879471849146244236568176496450641190847934550919142511927814161174820513476814517266093453329108509055585147862712261618027408737825143467989072686226202504327619060155841723341916704820303284540481805206026309313813843107927211675435044729444130987153717417883053634105071339442274597903521676288177234085653431493642626383913953369185572290702791931358710459044486929460638898461484370663924756752290950644668168550182565964575070167370513031979702668761915129483654514859403035417022632966556283782274626325410351129923158957350685314999798062425918613607221969195252376634666077661403145632435643723141766955629101072575042058261961258681865772347573664729317356568316518514264577690813839546853426558795712749140542479758710446919729431362008833890317260294777073965350635618611455227371112635893656389272201665515710739933829941464612233467986645056661875180163592570434580268667121735085815826309835631623944790144132547951263867695051344572162748253885134624420577973271799921907901728836613241671381787276095955266389909531442387467295897750274613932363303861030692333597458340394698709257655651548810986783885218518190021259202453675926227330379375871765984381101035287697893937686769930955310753802853260749026974283217959822760020147324190747705297594689814984543691950605631541173434697776829359389597210573734808459997370404925288385350105403699156602884221776212645384272542767302892462599564023785484260249503243199182965198152385367996280791996930177079091440537776307445922177969966678175456793984503290649939090197167134157767024962384244901199116340103869377746012050379488538906294851086774485228623394220461776498737489810078915102074470917045280706206982724713267156332752571416635902606871301531747908664389173553543048657074623424662942737785509309004883928685083650389094584825796437649201656542586079351683178264470541467911274093488483080355661841612027786906221610435762824724133581132138080621531403511486896626808192535001003399561532817143610869939832618122345951357967463461139175764469694519664469412969078853848219275517146506974874289348001245752510583459880972012161873913934598003839547517339475293821595157564821510658397959035819465011140648523078512625557109868914595984408830037695871345933570219951776180166779203882283816023374554880234336448125521357423938539486298606545108453661963563809292679497473517103247802324510221835032507670510767541201697205914381953223333537068619526673477127164952223868827733089732259612828843870545487157048311502818250348646825050525824213378534262945586214528008340993631684890330913164632162551620297753659080564549552555690607283688509787113941249731395410263120156097809577561882737359476066171653755839190485563614432390145133815717197647120347188757219576705563356656826368154672498616136662916508664045858676607991596737845581860626346007372764907810378204599657701185005437610985422734788160069070092524683363130257125539244688105009156705615640570199823076634885745063125156575238818105916476862743830217649699677704160489803455215332993874000375931539277322908935852797239005368279660960434213613573761887767313943097589195282560838622878433095142323913171734319863697839155842262141782750033849276836541302958034320744395068108683491926382199146759897048741653019080407534815670517641559123055759279461512070797836580056080819577318362676357974023690733873679990261325715250615815554676454289260686028857785238153007431188273187481160686755488385101941052637667721278838807547340593773304263317727581188909259415044034631048450934858505207422478291670819607743599443008379801501750091080623184644270020154222505294509776518637461662760359403670014779570421596385012030935027942067502875515574603919029775498045695531499247728757135584560827232694622343138182365662093554690060631607378268081349690946098317967322563038872776682138494574012341243402113458120730602315815028364789601585226976257620588221786564823020175735532778962106673240388139193814854942989150921983954127839632718033996417107596561951007600532152189397031708978639360505689166731647838951805324823405099099044507631506981496352982186219344927231904011451744165517624406295340706183824808973348022377200319374199028266857055651233912654091399619226079715046046396942711220320943102580249764712471394137400599806116835494478038908094685442910401092191485838963774853003338744218609763544808736484009552489961257859734679703418799590363905616484388102893933837165357225801686228941190478491666975664607521634239889613192709615255764836321714951188130517911272181870939485956595904523946861449752876336669104682343097061466971608390726038154145678173173862135149213985472393219589734836367123298891749874594767533169915701083830963468809388802012226805356445201941919892898219854174427318699262613851929154852345493634696271343645862445969745978802066235705723722933796520728314373377125538888743127497925380112178741531123368850890818303731723833855106380222928526427804784179407323754292135909684460347928049264374811156777141919707278184950707634586505286128758774689019091838601708338954578483169603114990732493641162493262646415012614458078105686923273233552065525981779077831169756046372204496892386061227055957734465957339003188634158597310050102994962427350242698573645010075670521767234969790152516458734764908101299846649397716516531997016849702779536414380961980571361816094936193511510666614354500127149363698262028898681954536496744423509540765304929693466836838425738009463046298168160071477245974243028800741970727847413795221435335595596890963503006870858394973855996236989174545310887372122889480330230736512480164181734254295742399772797000756129254968693115481975784097775375121693485559327589308896928466515163391661168886654958191759408252878895381546535765678174747877312371611148301371644240479199737493695392443425690878274310482146695731235724847780332339904540623926030033539729841825870820478980031085180674564926682042449053532414093454442009079688404522773671992968435596562883554011610332125824333268495046037659768520404605408834860734309997900599124667495585461091411712561232982559832209455265232107298073426335711875951655325433966107109811475956808203570030566526289589429618356671565107607561744347692028618536121653530046799383755153839512267113681316739635085827927959165806547705083739408992746933565952994511090482441440415083535821881967527918687885052668961484464970372396322841454023401342267966299895207945609651986640866868626854868762896141026874289882416275450476148662355765428582208055531836700724943324738309646838419826779048241143845142335849602690983125948247925328894023986248812116332061413493707264499655549195272252395159983045478210600696905736795324269737082526237861664749093760731063319964238779053979867420919489728408059238443830993199019147146975439934987132115974010991020016613156615226662584727774873085233810759553933336918138525439892125714834025403000170925072876411173719587071651740161331606123684223751962553887106147314479101433919911017538783595977115237267914907882219689421484517573729507286887241205162909570590410040896521138357096464660499936353244559067154972751923160364528292181094099603339621474912667280644171138261068853452530045500780571856675375132528899516938426014294140060623958069684763821196283340873963352347172014860138096624949534765743812417655743511892763549494998892672995512991095612430636440196093945049257943734491170779569708299335559165149725410361419086877564331297350141724381254160580467478853186110657857371382947783826124265723341005473906117432615762656616291045531110671869579414863520655512275274823092959453281840470805305475309691938610989240692203395503661339876592658218938265052204998480910652569000193007728033297373898931794112007531823286098418970928168073987389951404705045905595769740544273567827846779382998649260148229118447960706158045020602918007748773648703967762497530693602621674573859747699844746613448196233088614308321654679926501606212948972581336205686038596428782839515331365393608183126247426317604967608771927972851294672928024769296756128541634911709782194227173237862605283455173355100748773042346839600948932651344860696438188843686389519730617194254631406180554382115000824757621412577296750688428404742847273126295540610371191461273821245121176771689671878954399732282063008832774048471348921015878108026423470919703831296320971599549487072569040068004951191254701339244957157667591995711097719401939100474274924367017113951864199396209549100574406538149636399608337619747846727084349540995229325762107162611499489296336538156479720285930666747499009123766663388650865328611974461108016528773504586991769083258971893540932391561242680170958338294426090141493133603858504918593035297742063787958428740162570810398875431455970310438196501050231095922324375873968688407926583454494909872368819507102400338544783452809868434383499932883251178812643648470546638438499140976725205603407763704238722354899980027078222611004545876537339936269532290637024987510591902378686651139843626872266850470285822005910649636085563228999162204693498581147901952755729333094449628751960579456414131006166231871055421937174995637301959745930390084280238647123072038246919096427735690139959157792946228477348838384033024751521753038138839669852945959402257107847686454526303365350435791229034838227788138741487113583175936311882239056023105878375912391459749491783252917307361695421314651888910605185130736149353421145169411194864833567562534039878018935125950931537821367441604164543193141048491316140250585385802905950290451125820708020983883005136669756099640415935600755212175703664641793476468563236876951436134430105933965243892507356829297816875999583587909556009413381252873800317581348462435383593788673466056410068368437234887038680902248494548874114473008321720247376309273710896355119139217228378834513185857281982826622064640696495764572863958956513207062194830427564317488772327671336526136854882060708010007085447807189743327166360125642952285987305144767222716272234814684827176072226713458612327597022846495906006523172395491673297296115054279261304626677520427988167550229236850790713595209385354697536016216419399413537811251602634489768957768262921989644748542696213513649101382764805394136511218409181675946280991448588944503601108895774412630223717824817914270691933104114720337340703276937812926003071487146517529496150499670822312878254210880137379542996281783833630152444245851581576166266434239075076013280694942222827751391777413047791634780582641567416157151866386078414931648366421122276520658059567336000978422722079494979622633330833793745840069977141306162903379884082113458118653030823827162885835363260135580616431543954038213311835356324570530916820496484125959031634064301802225819078146245538565066600511748507826896494793935166338916653708853254063091697539426942971804913809873236644725340978373586310637821270710380219431799440249238215543204489987687111867191441879225410210209918031359420576995876091869134342170679781617252590518960240055602377375765978723309218736010633488717451988682114390408024086851915669085282085870399026664538229013705651357493302884258783853107268453920897866383494176300530460266826010980165217445386126917577659003795257166155199796521361636009583063845403344353051353765318897580069716407695894885211613178042287274760069605664430898852854233098743546712858424870358387281721003538930683343142163696027778243894475813300650691509479626907572383792411028285256265525101471358903804813097283671142243759714699943110099131961085741418606686545921297808383195885491238098924765084396033979631119488544412191645261509283938314244483257493972428777232458264132019803346390580305544234700849373662699876117495061502025911680422321819651643954689430300089703094937654286012332486919899977315689953651051506647228789556889100494613478128104164793659125687304460661697837546980796124104448019964618545361316741558321005048090302880451519082115996092781530816345654590649617795378801190523316325551752083369218942979079160409459501602161485602611380500230783283983418643802875467383982823698789572039106796280297197350055231337079120791684906806197850410986427494588545392316275992036268865369259351959883218082246650902489719383855393424793933761234243450250459840305740669910744449424676221298425639429902898899070503691829615747331621662234032863296275704348727750260898405034203417660788436054778770241722665247051231744666381024963285056405590310519800429283339493055502341272655603479200607224641735673059291423280378228379732720011611671411186537005653540787926163140349297201868482327501643943658601947217011307947985284757526554418548256149896014744925121031082756687230698735740279892101404749810138539901795233096574028243262745488636099266399380316527079680813897092345763830212059535138260970935847140827448550044281940155771496084183907019623190933734569871178295831570855758774462547665884479295641472416211915669020351018332833134738504459621160944139904483837721613538323912491764877203386909957245603527244293318797964749601568109203468062648712223785605338551558862969237666990532521341122113180047029740196084071635513912893354829981132665457092085436317925466994402408089779994755234581283358878850680384803966176901731646548689843343562982107122453758440447390840501892519462738475906325055493439310602669844602583271258041760247715264020943989699387950408085753294048417407716675662937352331174098199955258316395479201198130063472080956092952486913769222679845853048352609348704436021044692055529409789883840754093971709435694671454955874538854859739625503954182665596456815895107349159679297903820254912371341082933288263423437283975031196908703416655402543582753548398464578557044035942043310571006312471459152444399252668673282833429780436204893686855854604997124884216407890732486381949446441240250568825366091120598262683425384329401752608067562254141145547844214291101780954915821551080105138060258723063296951711533942751101819275927032144486905981906106817821960736358503251008103972077216836189035187672916984101246263493615445078495370768463490264843111219357622935490772312202184941136923749046814858564446839168020891329094986543865374885482371184142701002625814237840254958826823364486496733968169565197933971888536336784988018082066934133366461663487661626081155552284932983299920828307898275845516688949816455991875435139627033482907393973707638425971881964549921677558254473778738935570317539084546532430084905578736391988772760816386319131633321047270049624467283516033911336122549266940927433039958741574471436249608846561803980581962636992916658478954439298081300958209735320256622315713722100725049686796157760978328402777946180675573580083547991176189523597098422511201151571533410143836478261907976792618796515669873610095312622358977855086187314683657008826444946488521636584846703881681682450902752267510558850438989743491747207539992588431908133551982742627944821573371347084367444613328271502476372040363400635693168193815340655557576226244616895780233445654048811686396679767950025023793565312232390590237725143257818176802517700640695089382335980664361692417442963597334920627042842656930058326772335450105357486639140674244228171469640098130983547840640926646379359251951651306257733579262212167479382301947531716627046465986864347171140286385206538874337804481711521752900204043496341580648147468764937101267715018732344643980916576184039220500634906073514034930030891377328218111510261748527884600516864956662167348369341904515904048092416363283061576050713685820129723928384053840353334319549477441223223138978497151447856063911660946820005339620678123874716323928459607176041178381297924511946028097666900546006602987126209866734044993983277292136527540279974117459206622670851958948926117042181257278676259694950732989419877704295995354706539376622534653198934274827155692228066869707114221798065892612042809936802291409701151304036788347173647217587679524626109433694328453822012384371802007293730726581386683625649811582100335909021965236387832451729825942028299946514740861826598232935847110826897496583225336080744701235166952522346200221529015450683262683560380742965387487121151933873492930719299940063903130592405948093965347328050870066062629099116628441006351619257030048799941120455922777014774128444653681656022479596591416335481242081277982348956531349359427419918449433668916127908987477671303263143689018757232310834199881269973467753863728301538155760693772268750515728063831508255820809984671270264186325852885128276355382163988523239266515070424906072632996139333035125699129886483133929683918253429623386322055296608934559624563802223917679265764428043079427871999734529790954450585885909809584286420999318094622422534794584936043157997031428760258734693211428361383477295714144851262569926407633796142416178970846848992352287229198213287818952414988553572064254345353084106902234867659112151702285605666428381348935143279708377076563979647878309634110162131185856134930881473711191239967461170693589411155413726115420698630070579712662479074323202201177122962201514055179302106049034074498527455376606295473221636852471624934016872093098622847090636192533597125810990144601032400747381834174351974852803142359034292543811917768281811021271756227835728371490452477310820092503460651887419108889642777116368642822351150844169782579855644164911394696090807745871614595333355706367198898011796198940157974741766959591548470822953519701712012888507806505574698607318336127663016953746819837771691995098007790120175187419344569440882817356412941370321542958610623498348910569853694658634364569197651088653562285864941455828355629428881591198913218507531920865050837816239834549316207082158746918988503822454198126112159966018383741529359647670424208013187140060112774580509911599827255914581877103259050379354473777588413555452581861368005161912891498742305496144272889787292604428599969038456977340043015505654745340506565463938404035511722204960840841347063797241767836459785664408370130093498582235187481443306301000758348833878664952366512967617908144264713779003816510680998487002027526329673884738045345422839597937607035665064048389134929730505945836093530987510796969006024667383009917050659173538000532761902161312001210969844608363099459417152584593840446483455997210164883459244920425935252366618335998865251447956325461117744563636355070666243672142758293743205303602533623829917169825575875390270911552498937966853883918116361810718883057041552547476785081714224450365291762342877783882075732901053864435540413474579903360988393545887646533874854540588637687584386936721403306980334866126796318445125473331286546587565225123544597271467645289535301435115517029715808234511444502542361880823585058973958220958709042237082661566334905514959904387669141218840026486472306854223934630558637612270916767367159783257992276904556936759954278635805026831220189571397430382174604899674945358360098361177690375743520916675766313069655835101111008658736421873482381105436041616539793135126698717499604058248397137497751434617718814010413061974628027349047754672866926042285465980325558869907267283723923077267499034273679624715179132582026791777618480612700434520877685762156913581095383511906310410494015385200653781918453479354910916590443388618977447110228874407763003314324933901191122264820389293539004973871967191456230239856413474050613433171473201293534053040440904530402721843817237480217898117954972085427625490871270239785778483837596697659461567872215258215665978220421742279488042749030735506583871232158389645640655015376662984796316373014116717478389539326402234096690915098432837171610316619466126039961715219733264141444131545941873666642589793364390661949081221303471009880120569608033551544089815808015124826488003871856093250843925267460578859727697595376003865194643625436406754807403735061197007816851887004669835962242996250874602950673038117561083557536802008069461429779900192704114312376498090577100141134120569008416758659261617786872710017907245701500408592157554010293730096312631122385301040787334520902695518686942295826481102032602050030742050547955008055904221699045722384793671929291609894933078545944540585468109913773181481960500059257533957311758823747131702728156699965204526738522369370641125603348688501889093141583722171946151240147553812226925229081587011292323467367983762090616375416388884473894987280109686017151922583144210502739810396344515749157914334072624959173777716813822513609521860268541338570049954869646523593454703679861824130935671662676778109445247859541282158104262017177811771290396003667746189028999964532106517789814397603220528129576340349184666619760530291722943405382879322663937662596479154513189683838913037726734242259933508742796180944022870485931145587207991722774092872865814489188473951887395693128221060711781233238160149913641022213852849004184385776411569815063736927947399858151055277993094397797934600504171725835011451985581751453746087965169002535572959213969221342373077514239123896018219032825414094771248351405343790293330664682909619613734463779297769215629836287602862928817259203416752785937369471872156453611309021154592621124495938607126088475730754322972867462673392977629727882611948326994781672312025907744282633152172527409862627930975859092951481998205062834289689053485227658337890027082073242505344372430991062315273893314272484062742025250575934468180528234077266158057900579067176364017951868064788015347112576561119336466726565996641209718280797863276968097608833658379802228629348032828544657114547722145729339693214774906159020986808892682241963610919497468323656752249567330914946058745079805724072894294422124065159986170337596936372304186301808695125056598669945888247434706695202903982589202961289998938944809544121255981122069007322465811744062226172366967695383181048617127854255159021926818645183795564099535582472854251103270348657120143004199183917580083153884723975529903370915367817358891646000129379421723869515579218462638101673306617746103354179983376988268235378561057950414180221190759481735629961803549477667089297249136670775362393084608170013284367671017440054374904252449416825654011329938600920748537646746525817377783420874566066787258729869696023842286701098965415684180641897381782959734381535961282752225505258992096836933354941260094679526774185994086897505222880577040396314036139176186966918801091118743498160072011846858775295168351931377997323522639717417531544294302028867722066487511089549038957834185994501800941830600867808125020160006269945434563384436103311840360086188084625162513261178077969826077539064571613466842202314204915533968976174500575174621337368874432092867514581018110886027193261643015718724791036726377221980878376086773842876011890090713966035275626635773721938480013812741662054942672807540909966253693678164641940755185013545760518267248524096246308877920688673745166490355131524102458715662121252624220683831903022070338128202558863992065853754467272457496092849977122635410033582035280397550158600272493387188515778450248084726468963360440415833254665680459704338410477147962330590998870016944757557694845933090165273748993246448634165172737111826881616598661702017452059560140885201175300328371061216951544303251807720326856591098212799439710497834069660191033431861660106147343607103271770672549590693792636928038787744225296527132359691926347950446916041711290596142901192999275335605297684853571319357395396290883689812137622753964147130833344675900139497453426474884264137298904386970488305952459788205778891259977805554387993660976075628327560935400308724607810041654256070737327227713347472556154384773702928574169155623708787049963504863409270788557405556376002723967976274258965306438727243006972674590394229455278555519846959349960163145588541269202067245537640392296568802731125942432623543783697623196382046783799000225942327735261817380697616327325626493897061130912171738068009332778687841258278886915573869770421807971666672443737411962970230089398346869218890137405618662546054186046607373098131595380928469552705240444243980661528752384764203748552504106028049402223612869966847367164304604503517181986225470842578594457386272243657522226118661241258025899422924147747257175196831909889555925420840860669303025652063943474236276790513117663761439801905103989740997041960404162416188298755371397581461446761339491634827469938100310284947579759911558332150185784275794764805896352950747227489828852814741881901155207534364457919437149642542276095503536311843783021296203110256735431801752502418250294937786127273337460730558627168055108676536525321062808624125700171145659626830868154465755966348443713408983735048249287595964290165605757739372035076109819067230872494127274753383147122515458346596405665985640570613809749672462340407654815630894184258825136549961104726178481971110511703556101315482397658173299677209665525836493807762438910847130454424917841420689073839668295437891889664355429014565036671373142908947411473202563807881356771167107437185456802920422907868006461242662081317365614169343612530071113115657187700116021039660950026063515350176570856101668610944263629476320518950397726077979683462220624070805498029567988317487210334839464756801074656285962226291656671274058220706425343002229901856498263356293834842443029027369366607577520396995808217884983681074142692026454023879937356187064967282867026916863172800731370338886975193467156558425077335311944675271121082010758105979125030894874187838618026293780509052044427428677657916353999003994988382514610618502879810172911724638582312329017218464280733848434726967137274863680886895904474535235058037244608943927234630777029719969376281324706098939927391909415395214464098952819960861855596640572444981496891951242579229477286473501074215259502635907561481033191438907078365838515080942183969624442928955562948503990073381512005009911873163091011386971774341846073783164222621294925156125895577509631931003000343103533500038041323374548998633345435268227680125133499853851071114232805696466869751368632528843325189108331669449679148347824831959950015973305743367039718789785830752264166857294525669312309239193740190096194729285453710915596374450021422418460067112002155453423882914440612494702812811855320588136315353981839653769471330077737110423296069494850163054903426528614974935577447845685351882879651141783132795779677873381999458633103547429736286309848732714179820492290839375617676595172005715513213608783581357002484295858669839644362889619720157939559226787267023392058016705280897662036660102801958703848529526013231219438377335119282898926309765609372563763606525522939975659251539152994950990876949944715077979677296548647676081326091405335573623469397393355512856544944560650000665804948245242670143675848191077613028502830075453652722967118419123778333136468592428410139963522364205024159271401512161870290692558344405496861880827869628139349390459027475666705578924142331141556277335984796060680516841054153582119837892626574983192111080734301565375609948862570133821126282984221424332779372608795671589120597877878499166781399212052971067982514300396499492444511706976018033497608963816334050401469594224958514776848516861039898883297902277928055140937241866438457579215566239083041803957969142658110305004508572753119468315179764685763830726191342241976635230956493441365717438595979365251595336372389996362262070138277683542758602398725387618285387055442174214113246614573521533086984336970666433027163197936724974264028103829110081481551800356805096203238212204515958305734904939018120136807854319072938050804125695814813922290213185303321463298744266302741906951236966104282833593940386189288160957970596956073215170759456933500259389384973684522537784221026220078606698976406400100899941847443723180784991389731239795161454229596955512015634586666443720480342138404779377772693161758385764875876319305466027465419867060614497293355818908343174363823893781897683531195274472661755104225994019734301326638763506674395539843858451559036655437009240707542283281037250812631860418451298166524633306675294636815243507150797265294216517540654906091941161954152718415344813729386443182122574658998294614691438160135644359951486107590782712219000749712447271180102898657352437336511470918784953349766944479824907441188533304905201515569606834555256694414896093182272822689462956964003392558859825813144951435680409622243482504388784976408946118310766516135632371430517503976720007474126341133889201054662929659587152880550745574750360871435828782726199703806563506290627025845827456431880289187757285558999656171682668231734767860541972718718126630081142908867152977542533300823204150157638120729627240363772077043442073145724123501057774953266464352294865961634704005207990488182754157957610269303154267708913753704541766807312346105047703595087665657400326576935192001884167639388797858916821241803428417453066972903565399883395680437591703758755809227425244250508675394000118095027605225554940777164713469191928587912525866972546713877821728837322493268722795901089377524793664754500462430860982562847571317157321414148523065861253304929301247534750902532295779860199361792792788126020601549048742840540085914155723704043972376308497583303016513541380391530930735804209710149473310585358257773005959624170164502298527382621566997838715711861687578288254194780596366953459229301876117727929925980139806376026256466103843677663600656295097499010021024614726748145326637780321460541597164469832823948575751123787648251475677168219068767764527461423322989188629562373313546393167167793184990076562215805153064087437802232700933312840788951559174445531038149659977654200307686504806194885567864767658634092865333641930423113981041156447367718706584276694939728999755442154994816223995436715030125267256586620543396733538250570694129449967547108710309184963071324878125100168338269030219601370600939852127870708810692675516654025918728883729382949178642263721194783253117269473820550271491334466997124917996622014448399204622329939912422140714728637815659175268408253065746692405531413508815545147767610190667629304320699772299612952059984504507255658661771512903891338375291385494704944515766927234460074295971285389637112002971408667352065935269168578798918037381177183373015034049438379894640668798445922553823804288017843949465882083707328497644364278212614535388802427015969221405728477815401929660417136290276812238018768309723962657202397641468394351571231269286706183577197414616730466531229833152308858717080847901662578600403669954107551687813193872884361970626645185369146357970101254483569377610552540540769333756972903603352782329057117633714231058197860490810658390303799063590228889860489729911702324956900507218026758228563352217154346539194733586831580906351551069106866971038954108195314785737617426414930301125658946192214336774869089070995957304334776555199030291931485592252601097901564271822808054318145169765793410061830433289779407111546981070409963684788753208531887985342357469913654750059574294702664560574543714781613048727620098650639021649449203887584417653222639552073886820903698107394636173093827490613887680400123543742293369168833163195087381124692885199011729831334456561044365912191123774965330334267212481175481162986268928557562428895017765871171517351125141645705498136327718727160587200663507604189623176517470003666781167132078613992806571623302283288178707078262985281162073732273275177683455533617544361943872082506037589021179016494785732983739149017704419265800628330787852325449608150932345174694431504601548472284751383299621934521252879496646324790581187589378201218803901821861577660079472704703141313539718195585912730048958297197399336931442420948607223025356976324017626903847598484483314133591629198080154799341746161569738840929993308573285611616218892653834793362729744844183795241870609004265248130981747041133808581390116448536315425588368466642438417646544572520897609158006372043848242288304710256497021419106777457046025025733692649000578662587755680249671864154660469324571360720138305533658793655039621609677143481370242232973590855619546109324023262275344891688266954381102225680995321278816765796687409174251705364850807456985657922027418189781159778286146217617369364638103125982631076714860323227456394487979648867059167154840154682705463233168852666375414142888180208750722098520408946708728677754934716252976856870567668008249196647075310545079097199865672722326237821273414413548964710865663461835233338223015681503784649133435945210915612434860977860495731028476057023646214756549064343722313813190137505736558918789020583864504767284864583951483170733722585830344309719616156348077707249034962740592921919949447015669133663430562025475487558686565519971838445723793474555020491783592725138721996080420484923542035417834504151360636807482446557980624642314979819985185763318146967414477389806915100015525741435418391891120945129283628720200699186453979382424559770573346754694100322067095088936840162114813569446084423552065488323715741253655596690340688174505848810713764583775803680430171171772395855834915979877530606275006410198492293104073555906522716793602903129877910722048445222764706582125593427801528722169298978299808596313892786597012546559391756673523816146366769856024623363044698846588902206883645100746435206642830893453409488415966568395968918820817320068092593504820578014234058555318089560241869579712301850903296063030654119586408165070427202575461639122481266986603466705330043239318202865140843095517619636537963831456125753431127744770237964493002779366881649070688445905960851968585037271520211356794583318644239546912268013585803088544951502208985114941198078715805069767188185337341524800319654108819649843024335336382405560550240418260880620627642886532866074381973021348840799207896627734180359222834095096043795893632025269103147876171522730463150928938170636408712292689523127178133427113469143927752974814986153426965164219332934250892042774815963438902988006465363185337859597116379330079636186812152358766129526367379422059080058910506863804111189009912739148613914723358582154587916479405184667720627613106511174258789010827776577830172095123887947261956398938586064043285798492644882532216834702788223797038323988433143351422833701085851949266266884714240486780504279719449505398795103748558396357839225369801775627286615930763302146937129720794027325542987088545657595147654868591351455891466577807916276914064917421911698860793540935741991442182332001359375698880935568825113368922192802959227905312056481492603733678345960348882918820852227838723020906693589138815686421576849459811543595562296136607165260993953338983306214354544393826281452655781642634247154969305381522012375860284657812904892701708759166911107577241918528420286049377837026464805142178923186057282433569801429725939145210552106368048305468091115956537796000389222191679617461040575731357940980013101833207004339353679355893731729508524243596258952740453094763992794574379219427069782308111822695454486340905649644335651103436270859903977917996902489777184836356083557218159667875555997090206629058628659909494131493426153131909021299815618316231319877658333269010144265573016802422249012892096228630962215388050731889555363011550440705907270954073917100699834607789499991785237951560066018798885089945431383394234166229049190223433643589992016851439526394772688744771447503469324834424926605547417303901764401760825240084289663364407566626077114689053314065869258813226979882619740277214284238154332586935242594669846942809284482022159505481702556765630734977276540846216001546521968856580367690585814718285233479880559968812435151803990240303198418046857123224125067141854162294599602479701820927224103104748258453104440405663010977409641133613695471981525119080993636618030726879046736947362450822014134211884482125981370399564216093159568716895366437186021354352222722950066687997199588887580089467187158809911969888585127889618467311794603525781422296387327411933129835018054041104706938345656841043305884808827780797872968703965336997392804471195253666230216044232870644621795139189164598269272161189825077012900976173628520132757982384318446559378094554502695439451408925297099389772088598125530185901025806628338770148394975707316223919764735724996931476809695046896926444338494624867214863067548536693050593329526320617264102719822663756535589271062760151661424849862780868211850621528476269512706019216597887648551215769780999611989758891210167109364863006809329969287137082925794981185816445030483699271793098612848879863333518818761067910893917227140587857604318634538923015298190973083835564745243022475866840879794700690417261314745244537618813558755905236388100632749085142488139091299689045129489236392786398771975202193497531260500733084133365560079756435210178017234347537322346392303587247639863606409129534786899037636951718908651267594841624103992037147153400987151595373411919766125036686713258187935065266329563435745475785030152754603565661095850092770588210475023275749097659800900687780078333094257795535227261735310813045737878997921152278937913505598989465912429646980379570654351922096554184708375151640472470027394089462915159414671151088806519065225865742322422027195387378652305726149250477271422647048425513179282939385536430673833349316816580762938525069599493121562172515198192263125368492280617923397435774427529636277996303036993943023376607658915905197561022987643429998847205113502107480780717450719099761113448783336685145279047154543403171276911577087893580926398127607984576971866367553776224347820050995057252547949701632448619870102220758414109666142198819993461049182585913058314835770695396344074308071536277349902987281029262376989645714969421733050533328430260738895085072945018653015749803393417777399585103020779837663623049897052817921382013081266095817982267882222855323224933711242308888275527437867664245183436982864021793463634499249063381428912855452264196205250442467211571509245370045839513744052395400215270575814420342519635692366909127909130641651944210191031896674564898709360818477846944554787245139726650970000292653374662729051989578807325089803684493443884996635511417854677239759429752382319926105509868748032444347703511985823471875589040641841500352085905696673656389295976814661755251911293414939805231409906455041400332766762302986204764613309309277484780533775582640501768628592370094597632020528628226243875314528784902619896354511119169812882978137614789463168313597074896504554751053268062948501755283383840728637902996478927952932473889740202706176919127922103830278448000881539900623341459312051429311516394004389346454662547812916579135488799149764162998099146758426280986415078989884771927768308452777041232601022293827190155097094861313624931715392237685475649925617590401601636297722371188889893984127125874970616007684449267959714622078150066116139768618376156048988285140597347621284695754627830454406785181248420366764393290106626350281276756146200353067572532991725349461834951342446663258646719047444512602599255456383488089844056608337568591216927810286119425472519601872036923320210906233170215550226708235971706183465671933069199946439896464867960782157937911075612854616239468772911916233319622010040430588970499036705103630410109578009437643373874385026376288848853605170273894779832361020978051302659791484258390699412603885954772419932550088703803423335839815281504740222764934400554162189064621785231346751315283630053356230391768494973935586275338743540168677679402680983913377756018967724275542189689428142273823168865374084075276791371666945782969053152320218360111175720437045072214268925371286322358559501048298332344474196806251391981833414528985093035210652484894138120750238278909676694874874328142747063984168372616546384803527440383953014760973567388995466325492590786288180010176361082126763486470847050603901155981653834130937927407268892836172679626899257053349873125372421620031468763780448893830878797429170128268308309251715517806281649960115915357540079837090889783354969688212290583830897356513010833691465709121365551856545351685514321703101425768672853127949922007685593333968399860501361891055979638431555207131406087270458965742889441898635456576426123991883080949557742417862628946216532998597306487926335952697088919816974582195099968764276006535003512400293204329274029149849106433317464171219869026864991247965890642204853937387297494666329359459050290318767359296383165733274204063138180212575624701065186437222736566378212233399743754580653161483175107300756431085703986338397351279982125691168864883446661578607267913618700456495067730071284829315934566176219387990005232483541700729220888267335039167273858270095453656373166205517254521839752654469145509640959413596863307000172041562900907691709532285678219454350601985073589527206720929057219279685644098637194784779916885996260056188342628771046748488881477368789204880812534375411697002405129870777555361002424240595983243931165887523799127149686999943458913603161604043837436594249485120526401706738742402607227089772244836141266764286498804533977064845416772231778945579647599324920953395044281241921056531951451722778922032028131746570048187179477212893877743431054396555002178015174414050601814750227038110820935968922648990289932131305141759765798609246145676622168933208457501885068493105932553939226645861588073386270618184648701774537679037820244835357172680298263135331073338211468471353739065038775675723849284717974952554222585319760229615588254995193700690177352273860507141615518915680204281370594692789588389014607452522113702415160613028154652350028165003363737861700041204889814636106851406245481969936877109652007695507353174319947089291686780173067777079633826963082552254951531894156610398766012314591970574545155642636990967877113390829830441194441844343112066583406084948774637735514240981245561603644442767074965016996463814835909219342697031726176579882824259992461964800325983855721005551667579151142312783572287594335298177486844189358509705975569229032813991437566891411472151102215845740070501787351160347153201643643015352403897435582686113543104861404648832413817331506141673782960545550632986764921005317064633060933820467916918099388020412103489690307056922596277930969886551690344845019738776679559408541071910200041802516339710183827157615278856269422647856132906383288687009216325907906190095685579706615708267612639552067661387835165813888311927110845129483277681179611503816810357901311210032864254400965239344646893669969423868583464066375730014433074039128005749186258528596408138136621604423276307240682890376968209528587325777584974278725546458846793629512925109261170819485643006434462620703791416187038685819712280033385358952600777219619454700602484413569725293789412730148627768848637610128711948144835581175121789077868107520998317175281946512501178877712707381533201694425410074606533427048215272853841999972841730852694314010078816680482248492205597897432509319908800569015724276600372574823646840712901441740831782963981217761263705825673648426394069031698297555188869021459148799483760802646196970556396825355805042840487763619490715016743008309049414497822094508795076907888544968130156434798700051068884756776905880699445866260165309355307576188642018577957423679002321990608663355478370903545350993934153762915715353618452968142619659642226699830811973077892244706311270885276823363687471725800516833340534898060062181281731507856746154469763225524265380071798139221870315111218602509141730922217929162436799378301040120198839386047890328887566201348464390729933683798415788916329904337725215054026860083260902207963245121470586618230921967967628174330277320139006173965868372218789034457252968347900846855878525929882707083260049911416650657946819397455753651055622208480978056196139156743357466761331893216711653907279989386424446642077069133492517589853266547137292866252365132265195855905130316092520044500348840839926434801162204273359096892737619971882855505747414935133486219556632231547263954623114206172434184882420112501444831582847986850230739873797958485571293634326991106769827054383424851323315010334233954364290923726059350269666791763096149662478125369062098121492436373148310844659100116190877193970628982230587433438017208691834827925335105154629041447314776036693695825867409688004389847373413034309465306821278727194242771124873723909590296812986927145685306581978213921345691854925670492637125846554732267091897867827290702305303582694228733703094824720704630750560388985938992074268419276268141183062189050855810350541436325427378565259303953716570249184153764767892062211338565738774720256911298952674976659830487934468583338777061206619830137381292512913473819270337416127091135099048224534455449534583956941524285007553983258815561770556834611790059775595396076655770759070433042696551720130726736663549278298948386459698169184977763296222070538085189497221294153705538360832848442190098727027729349098552242316710566861630978845847265426727593144081236558725911267906272923944054771995850863386145143964806492639917019775768431015156679789461169594549781275995112097197939992397926923924078880155919727317689193131108231997241129035746951176862644657622432482124862547331709630252710895564401739981578016321436172714385407916439406815726066099030181544010255635584190009037916407768189841040643375640167779600847833043453607448415431072794676646866288618093816540849896132509742246282175208201774973917759426553130067972399335263842537425964546607458203547612893881338861039948915661106043869629059016214584355412857036824994065062115566668255182011762550728187325639668350129682155917553210613129058260965285251867959321593089751516179320688827464304865664287713715517664992227658517631074519910729434332241357488476391266224149453869412772002296587950789164668056205298381932236947561834215190240692187653499458602509511622191724921551657956545631326451780491455347699230741118610257027674582750615465473403207791747084955507753220270005575146020701360741304536216419973683941428149141960536082280195408793050693839050349637682070667383380581858440660540507347912382848913803249531271974734739861008807489551429218072596665052746903216648240288570559526732886416055455953508643060892068081851935557903177834693828907600316887751415639561177732923247026728021543304699491816821713020859027688682567440694531964496556655535007525176373559929401560218660295404436360317584081857440718471832436924378809815685349066915600893223865533345751371068029618554749893606013375955432289288456844106222019520080463524781789875720927671561410137144030698394877774671737058465228715302936035155731029122537539960137516042017019501649363475240850181549492511005313239737544343516039907613243897502152004316371463395295724355312991836500237367872920609153483504084822014042742062117123056271799224730369738933010543602676732564995590647398499528275275930629058576674910996333448448414267201835698086525021275707718098575677211953686659893808329832968991965336707736439452129585256904002837588545982990871146764640585406748615145109755167632083237188460522188119107605947221467843222353779485203322713771296471005819999123631615108875095659573340436186546111776113983553705113355395583168472342054615492369529674018882005496395411060725517542169797388606683926697437426211200640147843862121442805826801496492950402721245662811105284762229180176465542039524116102690074307474625612577768127176964250742618012376580179023222672609543223079612370638926199667696849816119861647382966479982624687343416944345994480126871086363371867027553777574634269787559468694228332115452758316368783071204357173457024855194712502386233378441468659339657251964845412664970496934058623192274799467813666105362613726525744082419868472598347071508677890348218493640685780899377755373390118148593040050623720258783990211625546067816530152237417417539960832657179058533064890607144632422456458049337056341242795870800165481441460984642864108443485860426324207873048040715234100550833806717746261987095077460952997306281484103759785254373695309018898440463625103224844199555469971703911769732643859370086312464154577726520420255763448552906121538612071404548268522646137069647707835508990634704291677107884612371176896438597323100522932306354840253990757926281509963235222415669511205751545913549894385317601925794103800310435133527190118873436000994861590856070620714424699891826185761669674707515044689455098384014348476779246188008651873323597809877977496369724672038786253114880974825218879631107002877580389810085203175860496652338618073147728933669767962238692992357101052993362236840974211596169387796045768732538392854712710997706217588401896571715884222520039453941370208762075162055639413526573500899539188428614352117441801614627838150980818789112846301873998290462291249917192218505722019152748247520379277862498562782108650505410729791368057191458917774656475897919502111339753364426491448720608920925544730073887485867551204184606654946304468976717383863188499174359652283403339896598297393729561196898276676964138533155134187136030594799237382046767636115574635985331120952509854780315321049251464344258487167843906437737243451100385955406174893315720733996021219158630585198074259222095960689818296119765228604089517249992202653739327272929084919485770824455763519444708391340449959831055930882762914785340968741758107408817032689810991265775633337572473018719867405826372911456177074957989608592118814614190266286172709976143502730542022171148509682438796806550938578377591887986606290511661149767179990260695477569469962462907075949108609463631292733083618391631759275737916420493009852328217156117984132308039661105523152727584033742569685168337617787982495526129691584818552095631905083852306795588128299836693320522254773277916621510521697496799165793254105686273447534731158140580619932143953707441485852138453261032251038454285899541017415646755879445810291349701095379119513372039124789576497766585760478254557956512874546652993345578372971974133401464376641148220205801831865127399431600525007344292615293390586211962540397407788448492244966754938606086137152334250391368836835764821298515768656291658811807390244560117231094406698288543975146605660033064293084026479229258325541216536451966214190183960245012405522766888445519668110841518096270133801512394550588488507308436944950862968170907181629092400754756888314124423632537599179299716170384382494680777818473183709404268252718421532371917456956542036041032030016433522129271907769442638505867729750541785945913323779519482225803784088338828916628358260659667685752729887313326902657556734591151982955099982561488538563262958274915178470768170559864461154169429923042118697934557719253255863206095143889943287834657565160466217423502358427910597166933986335251280277794995440875430569886860736633524199110327571700712287122629587525555816247428517016104659790210515230900070591612961237934795470085946098497949606278793252035793404436210355622984204976854398636712244589626641282423238370868416996092857103794363128498487007676644295181087912799177484120061579012055646313252162184762450471268654249192877656223221288698986168613881508106111851087813968632649696942340606864470560152705476076893815797971511191704457901711197154757258743084613894010183811043272542692657744291329692086056495564927544080355928552458184188399182569738576881769280864433407743141016570844566495953250051868374564187054355084934247982593147594227267381554945392356026793434434760605399447599957505895689474366300757676321988697305970624335252744444994266893609171593945398749544307025864079350444086889994937189692901518970907063032943478526887505080415236393380991337898921888243388086444774668895381626409850546657489937515480957188243547834954079519340099004011626148960424374486602853654174229484959958867085545660923696213844260516515635348633037045192402418504503930561709883874429962292199266584288197614383272503225883475623798715734113906732775889905172583471436871212954457648082826917132224571108108733425538688879140003908906283860209185417845797307787009976645422732121661740285453428598175269439288271537444701935311199965458910963086206490750375213801171749990999920526522221927921784710198720570044963242028830212630561289080471868073274523991118069731698722187062692935430250358300041686522668072147158575047037575071798816548523151022769604707215035508863199125143696572171630492398149704862203611846685789650970628712479655671323953146485391699021751419405131040320830889705395671089600090115872152404165570413409058237097420200234773043816934134808616086690101794769460849750335443103876171786593356277073205536077631558466678711970100223916296275941775594410075762480732380863977398523696178357716271052977790346766306347790521486545395009683609910357883699537356554573400959385340842786227812573557973063752798598052194510742214224902136466390348792592485678894389372330538598675811154505189851405101319076979428612075384030302202259980724056175767197272993779552804222403584730504902942043740415110403390009846555973713063083133666633162686531499674681050758963970796319077480831228805761010435367366416070114055512865178942921650107991311431037608118883200550758200425528393212067796650520775921812764472410805571889469257420938444848187802134336380125103253676955021452477695627003188363317667325609910924924192066553970347726471251915487553807925699840820935187473882257928735562409703502642700757729717895095227771992325945985851140348373907832836846116711264203934348457832263619809672050709432488921309711753246888351894729674193292958773320290015450630416621068079570684107474076817501298809631221761975785576821148112032208856377490551361944725530111464058117635285890557323849609127947717412083923160628265664371012527414769372909289479737082632701267420865721835790698529340759821430292739313924748799833759320789599726322570724260107558793771670432126326142592390515057630262490700332455962781221875216774968829392220642629899772314395655400279711579968512159642495370706850191626366927395902513795714617215238249171385405483519322778803423258507358206033869682049276683358433062841438298362271646127906352635834176732894877772689862278365604131800718907466019588422552291549749147835440460113009463745511889805101034264127524835334314713733440157733338708857779951400175020586487898612387817611657449591737212472770239123078422022649437054129866633244693888544560405162403564791341240676789375811035770653048022188207493934842170119664748191042655697839992936381488158349291861656776260030741348180158132435034303607781616355446062553310528645248938217374418598932740146627987134690214764913478335236313321547073358318384601725481442230896307913561429522912176884958290864363708638029110970321304558965595698534394366383649776390107459059919687482280735565519435577148328325143263183364294105983062331199845909659447457278075488719863353427944813425637207632444693614391269541419849431322609999229384211001381346821743859319968735860729879829130755208152151484743824189202277098120957017181304834100700936392575471409463861898825169842515138444051558935781113020353694340286481210117322962744913711987122948327329824251378463068084465371849235154257709184724571607533968222150651058759826469875399077109837076323571925097874169941633024301773795346966999057047970888646216883518411473204870027749626492365079420248636264589946373305124948368963461959656159994939586124948505363220256814944120560834444193082494881224756629849290292578974155937481802831262242793971099712713309164737527201573913685415367208384278563457753355119673535738446821609101990254826680235094792182247220329143431567592917171627123224260728967478339850784700058178619804520272861593425772528682500600655644087564756794685896075848449797742164281885528482819782255728518061983536394634643637162405132768022921304123862214730129415485156889252406524601845900017546431465082712191434675914935516969904304557889388101672665295975423688346472276889104530772472660619990097391858240673464505811317652551649666897007544371008306365891975133433640114028004778429151432098646519167454750697814167590375208096470686948344685611076164645467569437937346188129697723518255213973624225266356255385035768460958448427138228579797005924997759478296519780485784269000070970957715336445142260523734839980293463111372464032479925595907781689752891171971604869544799716058708722520185932937269375306785491288822842820879149509042544329386063607257030926953910063115967164330179431042510875912135608529138292426809229043344971380406654173569380240143785683085256573065086091222566860197893608446849507493013059351546299256344347272054480070407136355042245519705345751435429848637784069414246537457926134171750525118055980984050614736855398572454324561350224553766919411505625851573869966791236810279449422740477052459205162775614373127567456271359098016109063017714245103276722001343842081579767942427790781909912047869480714862960564645362246124849106164918099482257958464423389874995849394598374229712374628798673090442131821429570799377578003394485413388792537774393107186505327160006487603050971798880082085502580529760793077670242889609367774767988431810882406100650356224655317230645093919559623123462477736002086040200449790655097625091048971290687229062951093096891796092161703713772271914919624610549927305143881405383253031920440545018507982599134410562852197917659257087100233835451968929774226401116178562417836601297425356623941731284107502323598536933827604542163686086331206451877620842963436888822955051617582778951369093244909997045717331780091165244721479396224492113887961395366453309009324512728306618027855678055151317715833567015574521900973313994238859534624560587590519838886148841996690864644078332610332318112689350233817221400106166013716597495017379165287499064205344633193372633888056766909952109920484053248325112364959992354890604297627908019716384544158491540705309801619242882609426705134197039783904638337948743798128643375708099382314983233430637368905887343041987471557283443448414806845812572545750711476702653974418431584210880951089921020853230219841854117209284909236358069585754000597881192690079756889107312528326429268396986550564963099328366867160158686805975450841645162839945194653922444110793234595119509250213182171976036606130402766975780071856811483045656186941972070540288889884852048815068431489956165062164785508655203546788303556560857269088688372850825664628840308050287723599699189710472498733787459376859550177078272438684293718559143938709270678125148404033742315986060294964623025049999494006995984572143569374660840307031772964193018353054721921128232065781389288303821920726758494431917587240856230894646210113029858536645568916188050222412522640720888680141008608782578012021223966342581214318555856933247977586685246241483671884737913694804098403899258099821169792769697557776239732719761001035841405581811463991534746827093827216717432666307432268462549719620454540385050510961750305837356853252612351694352683561374077200400645937031966298260403518034040005373948309634319929855230281819287055992045888474236571894059652066951266650297580376864154593884132697202028627383094291344131502423927010233847889106200136169212718038291056938825588232994528083126810980871728555066281218319272142704510325502079125492370695687748926906819838075046895439862701946848822200655629043400252456617795530725073890587243095915889737203118677844848135467953631982430597317173094534498523512614198769039717535421391216846903747667616188201076575366241748601884465545404295181342087303123402842678086307531120801385221198667948800226082556315653605868635457149791854411031528912738066748966462771905761554856322158267491480901017708849726035043892749077642219054201836498420703746207144870055934903630934499972373439255013236418910745027197139147925741297060804625666230512237956149575815067456954795916474310039311381265996509013199676778206536778859145036229936664072302183153970007479253778026083687625957187943010160394021288244685932801236016207604707588789130309398449513657478187278035547939146766190289479492263502357870051076028907425774261211175269716548099424978303197433724087984004523017490792514356224109298812982892050326340391387947198960545811651615558564212397451474584394139563379812408212877234930146290021426473085690926794968486942560111014697949065889441059532941826561210449108786726556258825709635417412999561900845508616036788203089410397540671260470996113096405677206527603936923684202281046089213563425421230239895397948927960265019147993153261568321725194243589185184560622471165361345803327194247264682284916178024107257132189598259854438684945395681896031657153318720030413152808032706085095542050352677446484679140922744635773902867405953648264551742132855572545636211321320892200930725151826152625827154932463110978541619453657918059164556957037629461724125073032610022969095723430198936577132792587028883968986192195156434506351196859488496258812416214365248438542177638804456191411125765280727850867164250654633794471882057644354281186742013522761895009239762542238606586418717179708862242905375487568921922186594850159586660116856823014802399987951167610468167579557029686735961100764389324101802632853777292023571382438041682564479811897588512763499437024908910023074979131734729756906746113470163974284924580673632890455767908776943368811540572092085050612022494826618095109775256970291135127762401093669634083102412317686185916869683356958410395419833075309771379131064123568947935080689658034855044741340134490531060845787217191347628625640253656868182655552705500764506597591312735833503973864068090687215330054468083143141563964297791878073094800837197753138673311053911666319458342056547539598615159500548225531039151482147273020705074561761473629167279368777804515746619254528299496566745443970871131158601978052621500783376636563872425027246447192887035727344985435006212001140162695976681352552372453065359336829972828791690538830532406071570613464194239270483866567122816030735353367104859929974159911177825143774148539566510385661555821035762652131746752524781293166003130564719738757417291984975385294944073381680331297053195096984884723312157268545585243809466874522982021857360792330254400271100295596311095007973675618308925837430869189032436574146656756838404596683524877462513075703901124619534532171451522107010769295761552347708728598915610938277416248961784097781637977874986426106016565604430496627456848226885055730257363783005505484049332620251123521494684553473732967482961318969257167073489573613287520000822708957182108942465699697734564531863150180656143056869946002519003774240116647300762754943052077563096582321787686606788452765138791348858846076680636956159206697266126931714716881902267706649404028366255199346352253809918322188040788164413889861145674914033442007562872044840728111945667103775298570382449947302166803825394323305205475163886697533987994315702194715310672646799710812794487222700702009728766962352262081944589597154880225735873913659990026316157985810050125290336495956047565621451649082766269538045284989214412912006446533428256185115414880311255823472157710214824113427785656589117969709568586436001573836221328811913618276563001340564808535984208746557716508308672557075391643658941953013536815414642331290489084959536642374960548518134876373166513184119991409835404022084931078817813510974782633440966743853406047258891576907632545086304559308860658781684941267553976466807001184761998918836094390841178507262787997834415117347560881396861417514179117617947949474816871626132681292393921267143818806754184516583487384016566762372818992983908840002826089090248115824559488442226345419474188221214645194615524515143689716776887957325485238759150404029143485760189762962440838708604985797738066228435417008286975995154748212119363427620458879476992363567361876852301492779838704357293921698323797277073054095914683191440593431115453831114290864931136046643287830072117892930443626124199417820104576623110070335203604516944032856280845016833281566528886653474454759716866140577268156186800105468958945915771808796271960159074112068445491814304375774391198585009397477636698815157278935903776557764572502191683741024450726078430433999109744219016515429356425921842128182026717334818399956051320815506894797762061121046393366788854150369024382668463069254947276028933899513657097670559599076652850954315233184028465701878248153094864792830579972472252901923567448234722738522333104053402768487472418020935798789203873922275765581168888240731994418739645811969573594369039778364383390534667805043640062162349208060901905097483163282428649018883875035442517365505515873693605013952861690400689538563179875085162796432806644764348150039566237478953913247607527319007798580746773688830009423411259417195883250373537713445720534362316971313989377842950658014116422411649172791279059132375875268737409336253310456079834238027410278826187581475285428555216289939488199348719916090306493246910935592482303286617802400277420726076462072417893475987379390596627192535605705903054658196354944059603733185339327516277669778869424454137428961665585834844039596081998445110284076419436721283227251362990336265580649352381324129527923131942318449508375885156702944224020260798432867180779616703700019616110503276779610826239477869957297739661285059514164173855267103866181834476478221143933826358408359740563575483389673944922984501481850208748520233115779746402439536619391364679224406364434596832366030358791620922961201065244643622156445805801861641248277242465657294107176620978032587434778356854028689572504107249757808409134406526639174771557527266979179272228197545121561583909067383569407976343768341817289044360105174042492873635399221667765815930541721367641248454021706435403678430302099947143054223290972972092377874120987437767150455169128500837795700061899869377955371777212812536031734311919465630808833384754193490227738345932671342704554537748541089446320240932789743884702063661088308773784896752186511681245179390663184530948575501845594331279832022591034823472843213674474283899230706857455947293562196790660560296356438170268868465252551817644934841431652728190426593170337149199703418750884686778438689037418398576480767960290178587019879261052308819535835845694508100622825346933250415091920415068942533202592092158152209380235160323618999111594330062644290727225808769172619545117520457633778393886447111426608308846110202508940535502906413784035587903476314010016155054935739059802943272048561156128691736178399776579631202446148594566177000085232354601922996673180978766282585358713196339747796622074718471880684762088779419447267160980982944547744161278586795861122615245217168624013114716110534147768379858389142720314845397789073815342697266317832694575566943370118509135226116775644108357666293831588215865480887948533568396634576849981381625808407221574874141223409834685998279135640834830245498798863223804257008598193287956807667301671331714474859823791096132135670189782837409262672382118725565644767483794419711497369278221982498305296587112866458042069471536956822011127089584138127602032128532787702819141980466090351177500968666801310590831623995991560668298113204419709849045577391032146703709479162456461951751412147057935965890606119439749737585414415000109803806164882155573619736408481151279156274272175434407732178005766990024136382842303557200843434554871095093187618391815694007069975240383309302898661866883111192353824674218469579436624571442665731327674538494443196816799186095795192543061514793101962043463555291312105747775549671785778097496706871366036088879477279060838851382278031122170305247151985393427174463341713721229005951099995107556743753134661468699476048752965392630930052229252751292849673962586157228727420205496915304942439686825246203867354643832139088768011135578072705356722700703882929250848963121587048012245585377464419845740711038837494963494646214939623160688812492775449128672670144858904959981916115020444029526901699715751050268196281988566582557197114631671753567632258116763407414180418265903444520361706910446567790662695960416926952238089680664412463461589513850646084626327386026575201090289194907321386683819067013605718551538034172402969695576485352861459965518255114992386528632204444075939543619711584455711890362415245423811796305002653898868583284642672217482893605252143943286789010091076873059161380374950952854965513687277786148354766655311630120006706325938849124839336472955418029766658983403166021627883759913833486239372679808684813540540211106704876253132966926124249663132328599454420020604815816777318872741184060247236010590433087231984966755504282946901488772884210291983099814254028693819020123243270069842741324614454505662471507753791840443508779512727517087152508555772958306794228837431191261704417630850596770457976585293424184846434347993442948350927246373740502798263324800349415871384736013473901223335877267729829546795599696438295959471687796566037115905205170138097871761419047707256399575061855140548399424201193146043752793915910709411874384636661958270811191814883964920803514683134980772811276700196925979645751505010250771504008971016346124324617102004188558376677554019127757871815334459208854442672518293129369254481570093526659315645372198087390601395707074259629536093149268100898281613654938444476514444872849308234949916522615223934923629710805676463683565283755552867923654413441727326827468955180198287249448089541433941359971596063518580999994292602249729282336471757289852915462529979068462188766235380988740900793026844847937442506423974305461327241589894875330524992719093131648513515885291436743937256650243321871547498661924004083576871197112738284285853302024524496719897589393549648426714463359098395358517304442811085050524299907018451015479589811962303776310880044900682054675133130993566217350504008895977807324839576599220381728237679646928423806221271105311457571436293617140123108850146263839373355122652955481811242465889791828299218241172938569220392704652520577464549718601095708653359227306187342258678677450552483489489306173986770957216270893620423218797171983770224215474902576531187252598484894087916036421603804911412132600753616309334313256685267744918513227761626217639193480286797996365160966353214673811728193109507380799069132154170031827198488756747974884327307502375207847760161940107154381574814212649692987161453506665758409840309796181997295530441713242002055523618813905929669404518980441907166463666330136305239993634502540664485626722571311037389571931140699588910334932406271063037175031659666812975970652344032556139039396437374212345605759911870846122117000847376963758937252593876168127967522575608228671252404279236140651774391445263570764797536997465299033945817612677783642327804269625244934278667052161094516475987519476309589884314331879878957189221910353876224407854994150971199881081802541064538471977575951971129090610001150726428645787152446150144655926896907135525044679013138740453990639629055511044553255272696197100651813601714500196467078460788477123910227326060846036113548955068457757402012106295117065144402547471648159621787450606015907510452824771013282055984106404784140279358610789725775178329053650125745640905955658680329934342813136740402630993762548737045710576608335974946849872910905819821379541719947864224549115862424871639198194273593387193889956036619359157362679549068929938175755938923833946789119076426021377057656862060857318424837168600373018666216010318024138433891816634901943049037887237844339149851084231572807607270842219664994571782728160500756136115472882090130913177932891251081859144566457018721283837362745136219673634067529784918414840943253256434618340763384822556625577503001074711195385027616346628739372215934364788401041183777225690340448077847909849144689479008966207356046201296245830367619869709635765479052429765742391581035532801932240942650104731458983773422842120758786016226047840979274357596967393513571129898619301533742035535417767653509879338822281848881369203724100829653532389803130191332169607045399319012031350653627041504577851400563272534439773363307006722530849099588879948584710046545423993663797659552664963761458682858407433698945616795535745504367793659557479794823481657973470131354119049046881713258921336817696091746466347522614434282643674314830501886485230953430608710569332470793384019932529609580869381669539190519018915027353313431528758308987452369900209374456681687195072102215306110112554925383957095126924631978538560794176465851816457720639111227927890979799527710533411795325392244246749157756620302315344029019267626213002363993903998889696004123568941017162288997005569506067845290687222178217398201522445276860470056269679654934478608795454010281247177622794553320765966495737376275508674907461467705601710073365466039542826201765250819852245130868085355262037006073996367281626445949398876635846979061877552672323963788019985523058511196672917231564712831500066310516322625314012119081913994856228100300531242041443300762498378995713456951665359436488070501937448647274554051788214720082842493082763144640341050684604512201104155376952927317280758463243923588761402740446585711984060297377552574431012202428001286889993392426493230175002812875415355736962880218990428170753814535207533178891654884076180728455163896091241715950919612094255177267222491685193766776591633109594906862649405409572358264884647906997812434426981821462266862762100193457198581132601246813660413163012304938748520376919077023839016430562667227181135896999960319803637508615098965643410336223688144834657595327053481612323983806782071837890799179639732238687062893939370011341745715549957593545640597464452011745204837294503637637662525132168167217133382852559853805368714410612975340009207705259207825634782955249072369963684062395291866348377268176785558282667438821624841153118408549019608955505389323747769831924500598784036015439314545829102035026332399127660083789519456973808858769050896236720831249765907875765755422420800421102726096697496856730348075380955224086124172097436000256711632096048290241529483444301952651773318360233185223009315445729033435317766935195728433599776390392159986397864016036827629435483348844201934638843104779450721989467408547416563849337769726331777924956466835826548536087791531068010226530518597315452709608381547620765858901606611857665129069844993062749797072839822867762290768993720686534248605472983306025046318306991397981576911638780560024615276029782493926498499313138707335059495769277689123684036629738137517744261790469925491147396325011296316756530964727200809530396162200998273201893411348308444327403756161151415587824457292090284761846309743722624764975274572265238788085292851420650806550001151438741702509998571022307746950502411179596713699445569088935762427016175363634659064495342844528593929316331936518255369510128533840100481498668637180833853976787920823836268218481980590045964090422114603657348155205867291125543803565569696862518271563157194945362382874334161166903133038765405189354583599011707499188129527160615117840395240837808734348552571773652371162052231306152075088699747174870935153857338604721183005994059693107142882702548217170305225749269657289980751235647930025812626635574578703886295323974001326161900793707251987139242116228349924339252989254206891508446261785206298711616731442963252444500335955301995548933545755285978269291562652368728622080298699457279447846426442646840831481313951118282695828354048051137725022818548954677572035343085506214330400858820326280911387739467888123615415036204795640586092498777325594561802556817414587468598973794261068109747927461773744459174451892484008465996567446677791758817078748462854529786037636180535853344866279606181831998038602294039541905179402599361815175215001346703887539525860622423122056573241824223685332304819854011836110005262857365144182648007248309131657310156950214794570588764842717161805932317217996788993400089163656505943971999658025876439817558215672159908141793540867279637540958518964942918288666805469630763243134027027016207997048494673011160215120190241844241970241585755279671086122530786142760297254514080255500422309037371018655293925165338330970794111304236051288146732917674772118106373156344384445210795283284134456007942150621550501116848140925519853875873667058492760960009294421669192458405953552726976850333130606155167943321809606103248044112589801697412188073856442756509955756675126112637973248472683570437373497130288532961128337796030084630406415378631511530332270944956020654308624521465317544555818865578247387861537716072098531142365333693303411735590097582334799478693302638670152343425567795287645512727834467147711941429397997615052299563531196518988832113744954267419880323172227822781505787121170207423019303680903578229297022834996585872727235480062402520510069301670494349058044417427929380604275423066889891518470741547020529803712933943671647461847241275009795055525138908660021953967792555031832868448408226634404986396995085186193735005927482513636442814217565187354718949451178544049739960075968735683570952572423607142443134111831175020263870067526472223096140499394568775573588753280505197547751219784358811653796555333942291135288320269426959924874982461781274698698199484561654849087138232380663215031905752226521727230321325751132486796900233293160718758230301188412199321293601767359214563802787103483266706885423830043048668927264495190946224979009940886986265390856936946135935988853335427925515115728899284539426371205608625450772200983194420250775700042225933488670416105942916811608566532069002384570796271397184338348285183160920333898500107990433906190495239028027639667729384074358488844608362283855904533826385712509859430384539609291103386750716509589438325327474695473117425990721504409842702578336523696767410109613197220323061768700686488274599176155878297951346921918713655036753390265179668176215150978325128359038156739690517212828836627699331246737530678704775925111336121768742440298069669983767325679300817275820907676631958032243069017908411434070240572553413881920932398148737865934423557027949198143144020167128748213227984921465223554862213511192556011725722751341521074779898624210843330967987267522383428812873274174193432604086690450056619960009750505906206181572516948678797323644042520359835389071842487228785395613691395756518441618022256923058583995068068524462535020368044517778211068989884998477492524277652207765315838960980702863919480984938882619242494640782650822425133927076031694864842096739029475932132030172822442142350720219166088379853480946604125102766539972338935241746073333647853775669081370567524518106562528330495541073565935416377153018290745504532703126158144258146286570352482396177733441264323464102278172253395170521695747064848155692626079096642784621936513551108225820947896361799210448941981748696057664111295577732655341575719582598422564220708049412189164185068043457830088194717842525202759448260221560713232343714402056880539172030835174873688737608519641881791147259218067732005185097894554798369445493139093981481287022090653577485500285994280920071540053682925566909101124037043869742087403773120601539542170935203838519786622753872384686759014829438145368602901727442074601823837343456264848825236512704544841718310239094999842039416014647945047299937943318376625021428260104213010790830157190727213898253982668549693472702289148769189869456867350867856546755432191414054748338780169369417471159044458897962626554565081432198819906779034259848317034167051566438316254762671986285657625669088004783783595290734891646610715191742349630318083668265780510895568972922452787199008544624898187654323795805685508477835425648278117192411296639126948418492732884275276318278366020544295845528350892949314801616803964066161795348457616908475319242416062735285964001673754899118390282777637766546554542994542232095601771728129841673251171064334828324224360450429488195620383144328227771211988177053812814657401685034547471860806865791679785220366596461966664723474572791254842692414556935249988003612794632006710645135609180259259185839085292850843183000506752669768561549410817661625764724907025962513224904053451837528301581232025767330603339763975091691749249008405961019087888632491686889538873424249265819677045850564056243672657542401078932373944079813088012023138983495398788634566996251149353667387834961027970700175695197921996697114614354569600568511042595318423636061919207945349891306492681019111258407031417176904147757479384825030572090650415668341225815680501480811478564106805518116319317727607259000488591736959218832538585109402907545319620516843489395948322265165516553854780055985245677252929450216242243428499627204893447143494101958267307838006620158053586445639354075451198639434050722951091752067786021097194051451315968389401802034927306772543790346529842424737645826682542926338327413346469519993032682834085674992171435798097090686387679452024639802236028970729364123167553150495282029445138633607888766911235315687847006128669204896027943305745280656435920953634610736070579893736432515666841701992990037524091325175273774005195790883857835482954830755719528903761196210417422121281560306056801589338592368944205163616982341634165685788517305797718477663233978410882803835391884845424679243091272335325122687064064515597620456706538654204717023514700178067189287941293891802442769294614453651650860286642860570452771414095366112563405698221981648358822180336903920341339707422546102934829117105592629904558969341082926894791170366618683669390267480657379059482341501770312092801635288991100049472962189512410668978820886078817202528215546348802990738174987257981637521800844227772673596553977063785366508354001029898520573139886435312735908071129979852420423457089223931457459900275099742656264216091084500660165544268167248659397939806078353571272249994887900331421402915915639082337645373171334596523668174561200427426121176667481494076274438852360229363537436873810171149275551788302156225827779206074842981268995742283641988564293765494485476346518932221365636931388849247547196675950792433624630793977385206614259940091028621606733098329978041846909212775906695435085598878532500609734830185198018515792380197782949960260586396154950575256077447291236783364593110413636046138069522581992078619942567212543000521265536941630874541373088077117719280947640855556625067040054554336182820006868954753464391989897852874303346807758715759401594909254752733934237262957492422282656771301985415316516282215175679901082423107629967928463888951985364473380979930734589939830827795416874008499014148152301854456198613610626870654668813567373739968301922503482968824723145486066748157407417799841527107245931590411550384487711120961325041945236486727371790774892028747788229620547595000279775682407219853868367702468152198318900879439300242273936627240325156391113459993333919593970568223335398497253040332084016582455099106403356537043231035088498398311351492267604584831316993115418512911896455083513067991886724400056076589696961377263755401415815184178700157631880210814511652156731680779388791272494446299969679570741410144965377893072966219850791373081408494579014885313837701383510965565409639177058022143970335325755035488305047721819423158576220527114137081195775048622624810086212256578318201016834849223391725800515617467579034328814581369703953334699624514715602176753518059643281626709917512782344478481581290896883921796133529733128335532329475369847384722327481852767618914071489959090619430045676496330319863947251473694789353256737472799948574948372800655429430781702113912800856134000724133507942574697054351898556466781382633084855737766195743868576949138740849063467082159072446610720800376091056158203782193655614065991675689907430618102922372478202030999196444602145906006813776382925230722210879883475779365189390678577659062347696834635901559199173530493312465406408528720424272259721955684680994100373085232475462507745054392474651447856911092045044618369492257285727098455074340380565992646758692028133637721690859535828801972121123172512610709112954617020189250134681765105319288746212551615311925568596097961031112080763488865562605990779486681984882339236039759400150148802747977964885496957814106327304289920398740552171177743650807389156147743223407031420258503414604037529719678451348953588059597515252139806685225225629162105145617543561671919858071702519908318439648990021328737387396035546346723153954308714117996372326929341444200506520915156348742561127798709898954678333359703338644412229773289335020976791675328500629920316064185907097020404914109776991782127905464064112228467008933789247200929105886280221178929692371700871702184882132230256894742357266760270996149417659779082293714148777041216549871263509216492828305915032249509392526746547576341375212320598815391966902118099837801869003394864125703208743335305484151312847816393737079773782663371949834216954975798385715198823587012118041507327066531963771613067307112637140540821911910320978140464019431110484640199582077685187931127394754318044371517373930795094822477232973170154510317272242271262965699314828143856771851021187006157491843840122800663982417468241888987358178982794626505495367758273579211086922381105597985575595464675444332719552721407076852913447201804901034326267735669331260338888398011842352690021661764129355906673765407121307878605574746237842451737859199004055551828215822774514534061171464513073280462865466831195357485219345921347277998245744889394660353011037367554230464687929955309748069973112318114479695261772085714482601198860350788608089304129410633492470587749657211121153437073814586407374662648129784613987032326868764069428334658095024240149322069589847740618658574276051657354075302917064514505241128402924755472909895238849153962913470848029241430213184886847376423199900583136033167831225824380945397428435560754223221071764813202605252896779750720577794820138417237424016494462614745438493428574740741391292615686950366807966873329201691888980114664123489816582010056408844034094992793034683950120526066575009070666677120196561442443223958368435401549355813021655894523302405468456604980140850594601769276211028524997806810900066871917927256178263131958255643558361701582006729000335310957116881166928763267318856376410573842383327684064183013373013779828911783158756388236186121496138441657528319856833636514349568182362514169857459918803536731213697069514827525902913101409888106977098569214499265402225046772154887165638697201814626090132651471903279025464176728481052487032708839671105491612816043313371685159058676378711399933360910973067425454171154054061263964019458749267027309035151541943756322303787787382829074262318249344173788965790333574653611545169869341448332953449745054926299443221510615554687983468922242820874807564839181545681701121507967128826490777482782322271265249607969378336206768697302789655602941530277347937298489463577496312207731872162077669301113251196412091079779812264688163061731995402437349450579021252466997440883026370263103947291740809145800975524247145350116938922345943804855285428250578920914735476504367453185120957588097680293711265951609448280429536633200638733870977845379829605286751441187022820499724954607468345296130115970313238816074909614253830008152377027515949836723523420596736615319203584059410821458153807936648272638675585515641955630886834716628891065722302384053592251121582790299607304486448814605582544891498974094647862164363708761560253414367497473633762927214420177111265229181592069385597716241214939974951590241268358529394508919113683842680879058644038793655701631368012866771634916755414812909605335391414964648474832040636122620100152862063546875250477706411340083983269569505695409993008037330113342984022601673839993322013813581161402867125253615059216926453247739883132467258551514944814417464448661999559247449209179507671525766950767963681589047204809530185068213241939839243070401660555674805987491704543216742768854832333053533217422806025816037431108682294118447759838369426723353818006890241086607858797303169384759861322070663176224208075683340512185800872156876714260560900706426723029129339196809799681623360024531249530149985335062991261843478772364596751164613188766480541129149611637182731244366648475009268081027395693626958257315319707923719908645822492198667208110155151879377454811122281024468143689592488114237979214489006840256255977902914603448093741618809296244674163696354219139086909298131374880523252014436379625503795606303288904017516212332165359183835539768855520566866097596591312874619486047032735893503578814106634972143387079026667629955946900823382862917438130607597128628003892766023284221222325056110662016008177681827647410700825949272357202483272163171697496408567602390133016700835628355975850265356733904529446715600589180979546785210496182881695701791523009789999215918354132070325209838518785562463570778462981025188576739699506576828748059671466184557813435374629691162020324771436368904931185790144760561602033578933536195616227971536703978268856708165000805721784457875622967882628894958023729951050384898595287565854396791385873534693352451621060923069022172470582424252451651914473775017296601263751549947485129122224961087490792560775824596430210841177956358595554653706769267560699140117499522602175185137900505278176210028542490722521626532261693811899865915088779172485254547959915840859128945260319478285474259861508648012324533786267553719834571849335778228617097079756558759747268351963508835926754615056714284950719031519976750518352808753938546913590276044988751414340387524298251233271789456131937423296912089095267594102062988857752953689549696957606596978219029199646113180930812660234693691726569843743641504212617875711686624846466590834311534116104343213714917998676450427107062762424936342105782902360579578412757875220325402639116448215911253953092483134605220662331004574606027107839097698799231698305850422261405595833460984710532601385252645454590928858967650025220488694786370800823247216370271072531199953182432680821579091065946606505578013293601660940172331208067340192453764454527677752750623918548696972703197916651077197586064833043149006569411322222460491006275792622825601531332311569856406985173601697139954080236479735586101333669405681757620948055851166553726659540801434648086257599882567086042681761104009985519721144957054154719452671819400134970412366813684191240140795782944171135976455826786107801185117744657697293041100930075985962097813728050433272510429714942036028759862039451477807842688293339853848616312910346677175744742814088362511641460787906593957195578989231183445477094859730290131276780016335582825830830913415330980468881491156361012942364986914899167069861258237376753124863978210173658819762484253706109298692984621303466794830844739217020427869499720557187168717552604650745327362161731481758238768925125828037718037944972364575531968145052220409974792080759809897208358033203633281987883158343633111808863677819434990247413895379974236075762005124175842564862416732055886588123681378540604072106025011753632612836412019445016967699027820398409461251230088541032414376546694213502497662910662383450044797136692025194941337144973013920414304413068051574850287286413965952847018447615135880672654635134765285162495832893905095308092423325231566632700827588352592368177314994954533852531723094562129933613256647386161333058647959190367726494033397052716168857984332537781095948980277456754537463015955797879650487296918392616459304728420842835546697839146044430678917688775218519122727738813110526318444069771098338277308759796147295052488550256483156775761421768851527514752354318540222505383483162852569280790891132709408459641523857966781896065049787778001652773144968316926279147839629999231912616320788772266743993054335158998223513992892275510243763612030666660920600381050510237840813678089074092806865405825107986820639769187639651800485833060802746534355829302829191264560776999749308587303224850197594429035463066543972171116772892162886038020897509146528221150047533830857541056289434159058465928697808453709694668387732398924542026538034170185596521825286360340543338953320300885054694815559988864389419262860486765010252234250211179217267687985120600965967546128206298900392353411518034871756862466630616469261221320265617425089390006521082446469357794260072162444879333002076572750378610386418615906110559101162623517648975135085803383255782408152634472436900365220956646246014170592784226207229081558619063771008387153211153074890092657407729614662352945784623157603565068791143637029771565868123596675752343731890956783186223210983839424363397033745390884808272519178189991054841011982788011359868989810267409844260157068792984151891923674897717585668621800491140583011467157591459403228223940740253159177549373230019258093080250162241138041834585704826879316259679205952994831795404470938361719063042500660005923676688790407379937961697054063240709524126534312772335555106932895789019582510663682821556445665850918096431392704581630547434608598721640130555520361251818506561216292396902395477998997828065505123106172715093837402392961709163457649087848893093980247559070193736766257244388721214673750285874836484379516666286918012889833618485396245622182992420490496686046190501657076051026758975707790890101984624044421943367333896549167174607483984838134201611112559180668849694697697977180095096802181533444671253203934433248105901139880462592992056634019224284867759863845658479984335196925540177268462489364144288005652015581420745792686190651831314217597407390777945526609343117541217248176832558655813565578302526440049867495106739602941106681905092949431775699773949762758696017498531783045799830331542179202228500631703049102044094688382836198476381567014410449855583035250104057044775905466853641678170548922623326913466323778581117638726281924587274207818466235505481775104187800816003256459804432924194405177307198725223469042497695388040890082309669923343684724026849238866377809374129700558737120605061346653272265354107720017090635209103921588700041124204871292093139845579978895314644593043526360883082156660484539239482924030488559449117524005904660887959919161593934954525441781384857371986470535974640537069370397494831364268727470535819135344875101661554743851583360147922786461828509031316259238731666450095776243441748386110729657391029622033747191625079028038484928234472419935797748085637229468592385069130108357346982114770682844502518882038951242845830832191710538423937660704164726769536640189453163976158802973124625935541524625414974652055818986528328248058864629885677764469931374405640166202954865560989817700443494189234711072625385884089864697404141094618833287920088604520011209200773104352004363781455721917463085855644977570368044001579691504100906992013047631721223490642472645493966676319481301243033684231407886690056825239654168390063203008070035754419735149695557268674313001095819907118714091651985003096981523356334543420924390264375342534124788990225852612994460679251780871397375706195960053404076343457902884425850031055574561714564604784337242405320272332575616262736134115102537623982624595669225259154051960247818738476667536314354143750970406867789306580608910470531623304992728138839742176217576388540033111819176794305154288518269105666309798069972196122222062019384676454247556849358009473123486527156789167878897288387367020331093325257212744765874736420221466686544008042389888176262307808097007031556264504525053751217656401925158130422979715799929342533135736403057932000238281969050554018962599753599805341879376516865480415589977472203342100312631197767941780107906838571169814972443295468292996008835145157750308807854465141371590684574217810877751280476778489903331538441195129545478193824737482324332805158249799957874431913062067842632906584121052726221244864769479090409497829461691034103148670972632363171500906556315156960119348572717027180085790502357817152899937665155243535609075330883759223576201849857502540225979527350712043656923472550762524945949755375144738132112965590595811526930160014033210417827406209591291189868834368512491372914641333721443722052920062148790574826441357412749812468467627486025185396301813171710263365057801982085230875000409306544431893180156009393248371956466723506579514888315222703473548317509150695829249433057095527416996135154822909978045137850091667488432627940794015867426847725898603285553563433134317878935021553597426833466263339319458355902303064358667995164506502237974956775727608425942623709408566634086991624700372221471468030529323284529056356635925879237886202524948000985788509694316942703250400480226786125674992542268415761959346542886988012046513904768226934685549593223596758755414107162900221219004853182819288658268814680285827184391392071707068707698510623788062938584304506259485582397561896283906661446983247894621764044856247829890451728389878289220028251694031128828275811452398349983424769932387562889888851603670668512842372999988215801088120599572523860938339153463674210064815551314688555069554280406879227021950308799539226103912597235809437537013996230186798793925880161363359655173468970746775413724937872245883128389089339120682219212854864870515316971581312359236970216282516005796769314134445664952365987285165663281121396257926610637338154107587991694849622978263938330610603579782636562398796254254450916591337663325498856346448160410745466689980842984239627855574432694805680786180672114423221219432378491114179288822226908574698072096769361103481803560746305775306988595884726064302688335984038332646798931068969195168230395382455945185848291628844059740372822890035285565570608732739550916433010178209372440126939989601266460503075312413931387854160982775154516022181755064138362540148596594873787052956429692828865125333716113411410692914755595006577934098085838315061338716475856074768904753895200378233325025077269102292368842022442619911815160919131280794165561330781999001192093870250353819664148163257675917006212114245730192264952774998932241168183214086756818554732326236496034135797937627127261141038873531830671001315027289572823851786366082122758942164044241881323751361024049900921583773650239509638316871266699452655100972578224246450099185843948684875058797086582276061174876520326593782553658881711455694208999722375396050978631606763029999786949755698918489617048102761235682072875191037760857198339171874242681002102605948513983435297069653239854640218880665701622632994807291301149269886899784586427395182186774496254708192583282789911437299848273084144094350942408250586234814311953684448700507456625240650833920309150197957635331977767705095056231477012278794246377417179586899543781914500770241477519878493227105217057168683472260165162925175715413468297987836575192618602397076786149153995679655188576949199808833096595937742838023185449897328075154509252532784735735450841787406440139974130742910809180473004013991601050469099827572845876902267019152160050364368011739549304129468472790103530632368746185502081972888243091118379211918800588464848141584711166298404717037629488824187341782309294735892125737572651196912113290832687993170248211770612023034853079773791745934954924719462780874104206631083285600166759952197532228758668213794431190966713028474994619223705784426597386111461629293890427528808980052766206009540612468811491461430642044637511245999679402846174714332192054061091687473763592170062284387334433084314387081792046880250748043784059419007055643514472554632511746762812573433504607900188854150388323651082186616631234006234695467320731767988201948939819718192403677161451832286122624333274374492171609554159979893676614559021191651963492975072159593397991606407066213257660938551093436004131202474028111923495702431304310032088665578623615954761024128155003264687014112911866917429989103603746386022106772682417657059284442569984290647462333178773610676473132626408141019501010350857077147541635766428023798785345461629452467280072956518818501082084295961477514885040160081688359584030462089095797773952031857181406466689201916465887003157855070813209991862882581363517623537758542103823295947361948499378157812499303416069765437652489044520064223465508806602757653940574416689731558084756898551240566814333629880115151977438284945217988659078761129953209340610703404797204343181589157951992543156481636969887924644019646915985586982708491261173162011740142022574566316930110923906755522333769875592072355375256125519612207007140440153642759997888422431446227903834813882437745115903390771997780347554693329725495630830325621956363473150714923157331894854301952039323890244766096997000957320424844227537376599862104230130611351998443986321327673881114322222451442280596901738380763853486378967712662454451740979995074653064866691121019802159531359779301515313315798463742155116673251936630548049092301394661566036855276254165895874335791736075093468245170514928814291126447662606615766020425400072544094842435046899444103749071500501005724169867394283387267013559616406853869058049126297702357687714456375212192297524259657426378175023002438375512236052254928162023132211364101658451504726920993024551855863006919169493428940437600229668489463290311769145422859852134234639661461143048158204069817378049470326536369047973566214649257397437152384870823511182455950159598603186659511565904119081042722808134784969488468778310282506219473949131765604986066625768863663205741416298850904828746453615758623576995150363798852599417512929937083181679815548644165096426857890021962227525779009271193005418057980287885889167289116741831094962422619950157651460393795365722304610016660693834057356517557289683054116150272680856148785696160349565573108600598765189294394866538655674013388932101378931232055372292155681020098392574014617119771932423158223595362351070487215602699450450180729249632906767541046346735189515657008299266268935787494055747462721151923142714697933815461065098567866620130795746416051347776592113675164811137211459759076952378475900316711210068249257163741048091751693992784441637213353623725071063955287258298232064006207762545461946919534646504413868523769642863348913069638067760677522945995739858757689315564639066236832098600951871820391932455448927697570073242332452486031505942357829319459279904217080040483340248392089018644847412863457484538369919930039773484291474615600184399870891577048677378914358533749214833720339029450700426332191653458121049140120433340556766001925809061984809461461623680017745354407166914640177368476019633787921595294127057072916383586739035562831203545779024569929620295190320878722651587196899722673971854035728100904003463422900709618718760650639510506119639360030433683762436375663210530145791521658715824763699314023841870952847420284454799659181780282031966413641450263478622367035107472702080746027425930757677397968147096543270059235047865739268960065785573351313717457925672003218411759852627339612778343848054171810949548101662692144686142324001794178934617078186934611327549095483507084273435774834510338159943490551374414297844264029495767160733014488254564453116925752312329078685899871129612746109930403098487737580975831467600150214470998619224982945230212316598283678602996187238657008588112961133447969748482462788867742795562727459514207469754457146860407754047154220736980981112069985882380141681982776888006675957909295708350703417652195102232274948167971965782027733411801151032759030385219605890076088089464225499665317561670056505771632051839299309418768511796614787711264146543588823484885385341854625325339631949863211893996811684254552866796482899348002257603132991156697480271333461612675648704856191318118089121882130502282164667784967953005673740511998667738566802591217530403480278061362324557430670792149187290439480353559966406591001246744079460761210457563555361294204396782065704860388198863360147189273948330025172913584962516206618638615926847378043473783119415187889154567644645434083572521371660260294398346539678876531265766670994989768937458669622743209126472055999936112417740168855407096479327760792867251750914410019270938614203995953373493969331492959257499946711064285090684548415532275723218334650883412493072520521754672798135862437547930907123344424418478342739514186084637661603129545533812288174741962358308575126881346139198130491967180371511290139825684634648879699408238880771066471640091837781792099915748478153238452767594560475475558004694596395942355251492542280388012534282431865938255733014674669387157278170839921408056890258591222839603924853803614148563590686256457488133068503677918758784002458659474190051864393022230317969631872210122968595213725820586207283958985368923272120967010965930451871250123562435345061040893242804759529246118393431116107768572036828690462071426064165635089208292723330847886580630897070765125023086378128615606036106009296392691196310939633351549975123313013984627172364504657406282193413361204854102125191891422167406821235213019801584241004296884964558990551260135393439519491079511335338049441670435049910717655922501222856140825735110060320321499616270182595353386745540842725472415189621363871103500758733155079368035263168005884492341234326015967777335857162697042996566547240568466255196181383578200295792175479017929059618848747515863006565300910162238147022207185763922833562294847156177599088495975875538460918751686879912852395814247160252599619132001799217455621777801930998986842243522037982488714567541145966233448332257647074471752302961781249487085011874471315691990641751121118955875584718647687462521822800803746578414074326056178631794270655309298951467674126665944959131479471382309805668052867661564501971326248555762062977569806783646774221719604807645175767273910081675815606535706525623729926164424223481202905500689682406152922356919978650528719760297873161974699141738097443941840922007268922239655261203763328092761212926311274457566864836845731422361040979250915104007911746743860506677306005634358537066308774749734492783228898542238085879253933999874268973062721248110014625879685093425524902179743247031643801228919117727238705699478997431888706713313420121497949812177035288350246597769695021240661531457364708082018398248023748707878386321050621710893544622510059046958790833611527604074362876040055449174172643328660237997742242706556205000732615894502994037476020155334690403488205624936325047767261759833321260564466344851852242328667094177252898458993309445116244366645719420149185792671008831132739384670514774596493005752084819233014028121628472927784963664274920015009460573680066751464301659638736819592094864237520918043012438751565577576057979061390158001656271137689796182974434001597007950386277421839912663484354803299286966113909569591996016142502375283345637372608390311879789341161851538739587014826920212593833531406444173698743110070301073283971423022047184639809623501277599069067285778147358882544551633710157039183300478949158089514372727173212257256232184292821881411217994889666692776038386600623687402723794472058074915531283484561154475729241033047719913533162567398893759797857914213572203630143276112529467559537750503331557403587468541589824021072589302585275495289678743612553804737858230303893522671033889109349188600273216656579867398273465607407399952043889738476026266374754992570995716154897743091048633294460997273471386132923297526484281626980507734124765684834513082061245335780254864701680733407619652258602075485790076158476898237080886594654616074792252068154601966468232451764355254291968381988335443565166423924802249252061403960816294638641699259618524843989998554920446626404845467046300565954021674174534306261604436825049255765608666499157756036893400635648269161030975146665870852466580160302067285365658961112591849550037911555492706511333584776099169456132584499184143693682250895895417063437353841572381569638653090499295536087449792599583600702308692181106761256351419187236191323236467956593230057074220043347417168654038455646949870600124818817240804427990677658897048566858207760507642256635831439760741401493473274361461588721565538565952683844735126303354846836921168677241104418244810726413764979073165878253887443991697127113666617758478206494617976309909284703873689713839891598804757567498878742229458154479961893727747889916539152113131901507047027175395656368054548567483194453390560299144986636817477503412781755754712153678407352008249898484983072693476606776844715313725152998228896562637489758323452625170570431721770187472513966716349268783565724888883762287546812258258557147363903216019574681203350455826120659312685497362784411690542281636056672434203817191430309532726574696184539393390411572955789410198492430036992284478007961115759834493117481942318555234861554507166424677481444832654975976205327560370027376111833862005675797676759025343840008761951436016560106010679407355128332662148256576838407497753522402500218847108075910519847332170829802745255808372856478998209214082458472359316911478288801118904542367136734587342989883953973757492475144541798218202743203107141451494740100345598650295835789109486213435455913702852243819223042821381777766811401375485309723878459394630305780539239066885135440795677192317437745643766555003278802874262690903032961102113873726436783020553661747151135245627578907578144249926494040549003020529823831431392721337157369369513707516891579503895504783307472687632033085038813031542443247266838289624648533094778786146087571887617528482372749935561669125194222967237733722069785228722008352888318596315105119320112303165031892258724436803433013581893176818057873673035056239214312199104336992124500479769914095862524966084899851812297920146060974543825600908244277030468115508046202073219741203501154114077748328506567087817448492246838583289930731900129993144252906005396637087960487809652481750540502557991136385757139660054838278637381281230141828240140481527154031250389125122711069177153321065051787154317461926671964448128893898317993028343685966170067897379260479639053375652419525412140175934515747025160939850824057804594626236876544011584901413016483107418746332070750001509416371921063158740840408843283631151287766409647416710626223331527960726454577607975440066759037906450734745644736280418459804856756980627355690078996984056011766537324104977601522680126265108641788799756932148173055746162272644065641066132689408047248423400799054708648028850351417781405947709121139857119531898539864141674096181765697356309289516583145932109865827478561398537672383567354687854885456512422352624258553110504102826294417700582116164547320240504487680430616308997955712322321153878071656346997083562664079581515262629515307492016339403743477447994008785211588492323492831686626084802544678897531879146909313473502036522622147868011494156065806089474733944342574608906348337031190016485905518669642234223801065927063285686716299815329974680349251473245524710528654530985854972214886733976497596052279643701260039682031943925930025329493907780799416104744351062781885152690417764012392733406068189822094843907447959850234540404169301290266086307403289672684792691719934855107953690104053141364211876709283535533709949333446938068455791244249932129296100653619800136128442850539698957589519849894489112390031245668751061560105633868208230964458004474329264567920351877942743697286325996609393496878702596823798893676337557006781774972310543850645177181348320740824090894139821094796721705362128392950061846672293782111875580361455714019707725507775195606156278583181238776202491639360459141838481882128915077796075072417991241953153622942579413563733728659478615059462933081145051384669619790909637674178519003943293428909578186903539696806734179598945457798839247660945806467290941065603539317988019973731634515346428143491871865450404395389868985984790808509436379735307135319187284530043690631995119809559932513170086702715685624962971333075952499449010978294016329600167017937368923118784132719621303263603416847249273115769775438188236667474075177691512070679966643986996741841350731157933092835019697752270619269081980441552002136483217535268386556401442285262374260868750142988549326729930945385897749991234388028135865016572360209790059938529753574000856515486302639186708425497055618088953546368732195267469615215892105032051466060296636359405195901606690226091221741624330267923674119495658644216436555753729034360615182892371559734295001697539862874310661852013259084009524374510050248773499791967254284457833953239390180377309046662953454399291121160677537676435277503467640189656113258210135191118573522260316479953755610354467848791982674698915723206112608575139603840971802963117400457935626955943221599514405032582253684991652012195879749903837178087588649157253587559400490230520235447747620384822984567692019808633385351035827211184674415718031273670149294217175894728345864115297761534442178266249214834749048909649075453733995655815802603724112589028703868279621160493699605848355101999361779843116852396746278563571219453908303465830934715101236159177846302256150354458554216197663154118536991108046880221728518622835447922984836007135963787514151561949720891704835864044206050795935366317849052195822649331394472071936560531786842701323401232993665358377032890743461196822670862120510299709527384412312210460052679845992114755914049701823877794695457276848328116500594278435988185440715489559770221303723549986761289934660027963836505599555195165203762969741431639171621230163119962183939184448936751820280598226206992809902519003850468830288878932995674018765875754940398656658336500846443063479974794573159053746494532767794653456670489553046286298142508154940473606004536992572063246811755214377816107976940772248098595699788107673591158592042333165270978475450589769862319939349280345885476175951116077358443636286273878693689612608780428949842405185509249686051923200613217150884861779991708956460542206389626491220204188449086286857571012805045140021729373286885351316713967753535672016369978390431923058811227937996631774146552937622864964419449269198936876142400530088196893132030128622722283773774321126513664078061121128657011022681182127638537267723165506512491324285441267041765079563626473788427138832961352078003150509210568116393839573569898272799171178300978638993522048665856232104410167211007912428612432608134890109659645888218824824426777451351488060237425920018036257014907609303900336315318530429597603133116688186951444509162380125118394196801480589807412246129452547039503939811626762983550806633358604185229796700307237995564371583248735587199514190762761594635481198553700097425409434416874511823912913778440193562428860937678460531696847769106566835779320774042428009266352785310999048899638258390127375144810092556960441644662906662973876919223070881661102836747975476056234622464941978889643024881284922255388286213817437410516250446428374822608703807106942505256977614089700316040069583883978252017725356847165545726472042328444048336596575700047115624310190729414109681016782472496534290094990619142560763259502913714052495811975896939900505138721392130988476559078413486189558489319061578414649512840980576746973884970421717180037759340798756640185798582922006198310552441989155834828953646092903349904318841808744184453693313813525814945455905636085249487080028526301341870832411775361284483526130361009266694491163113891663494905710882656378181765730532055906317759156114731333149919073340876737593616305619731716900373920284527639812816595929515479894017759638637850612577765200400293671211235469289697146488183467072622170327804974393159299090683265063149780068843644817311108274986970457815953775684039116987626096434153289306415484293455689895761511927122093850907297757385422403118415142356829869035316531496530097862062977536037279687353050776493433352353471185514897308834088690496404606964910019099612454803722816614313168340429567472991335248379458030090016627468597691953892984984025926516410686946833283398660424166338879282653090446327396794910220113114123974199187387653535474030121201277957082297078808086143498926771183846429413614461425563208860916124099461655827201576339396787136790818658699239848374473388367675833180132488069865294530877416672609195820513930033942879410114011357307606683657277262459666803458086974363970498488045791849517950569394507048268251407323794345537281527242637849854902550255748298240018282255776190630445876775483930811486737962640373951377801698421640914496579136599231351997128823149663309807901275426726058833452326292272988982156502829798235060672031431693909980652287790641016018670637982309348073224809640205875280809420236454712921906115188746135413021398710147786877198431136809773886593210874567120390735626668085458980451059854742023671505654343152319876402454849279312823650990853066677275564598910754567614107880417002835502452354923054135375239071906189361548054426727956169667260173765989782571026742389822147540332084423799014218004807732755345465794123179581806832255399440840592420007308740521338717628503861309396703733745097067249510683114376599296064284015863997722913155361222459815534973487808404118345134297637369716729156267386645710822368825538841806745659658205651853032515334791676328711304900043187808256281734719165204765954654411182142900630518501485162340700958493754711514653488947615452854589326656319742697909398452720078406321820669409183211026524498497521093300882723318561714387809961996021159721655819891872555605760192589133539016640750242581379685989029238233940918799578185926782364808928909526625477942820543472071219455594841761647532177277960735500025269854763702464493127807268511824265064747639835345704835232415316067391030078997373615690704279063840548484858104782453162692587422558837463479891321017363268082468452260377255891876836874829668324166257829212916692546862259009220810243411824183471842719226454379282893006362367910869709075835790498889764154912179975015359145046218292201425125100469061956738697794739909051050368806501955642823012285850038488267524246879335700589197408166919682244634730066020582667328881858139116710478683560443885992705724773420881110257626689102270307652816046952911452150185587083095421218459877106773668714345351566778582986885257724527655802111372732704463474391913994784497435025180502848442275918491594187476808300574344508535529190026911060808795056036438761973176199661183989796403011475016490112587894244140047239734413680641276559835855646508224142563018274458299657922069354990082240944655153005029389826983325295190885209460848695301947207621406002833164162705969743184592027128453600931723765413631879994304806958991360304306034617239130899323373323392999651236551781358325270807545158124567390831938648187088188925768890272301628089010782924405304453796186745899337272543120273513953188355292183849905137731361830311042506732967889283972034834976094798336899447800392273465990015285079382267731538649391372911907096560979703265497028566238340763575960575768181536312301718435780916319375653051477160353685446698502937304429941062163806833166713034547715829240864644702768764136869673525702946799102931277136791383832568886160370890166978926011749803315344665584839591555054218506212030578590018752121783030111987512731002339495250488286155736862082581866496581661178572981766157215525037966562171525641660170479181064301673031040515421725215966978256508190516243873157956308431777222206911637101884633372098912122332614022158048099712148425001570871312188912647314913408574051124878532524961109658265700475325840115208311049659604729073070246584398516887896144929903747936555966514963776433822952699444393829888264934607235974850600671305485091802393531579004565302213287761761465873831131687175619475099325648083896215615975708994482003103921395304575185995793593561698200157223955140569019385887492452720095912293148089359239192467551613914261205183477308696839592798932999421818146285200686964159852017503346903775758650899841050209967703584328959045052544201083492752852099273811537103800285397972267801263579031359515402553923246135357298645658160842476677179725238450490073787237694582319537990260531064844284273366714339466150841398667567543290820653130975160183619185734603950611314389194069957354277218338748667602521469273472751086163651984027076850914951325112156614930219898171727373849650539981794224837120600011921227071497992038496762364072886539984391609412317137099637922006924570234915733472219770778067429870152936075161154174241837290524403702936397129185037216880836783709647177640839754107941785827950619499632711123844993917077305909970159101018171780064997806750737569523454210450236494581566669013796462590103735077207319550707347802139238951347699092679502328672292496427140827287034645169318465780448356647129972741548419921968698673878875843361178621476970057084162367056464579384653632873414675849246856143189451436818355925276848423397841415095829912597604343436016717404109671126238561074971780057481735216849132579072520133582219006259522708779854313337713581437469015497103575089115404388294530569029855312868292192998646568261098842770232980502545258140293174167484697475335564306213517545400448453888881314068406145608729787207193959829707112968296261192761163078840593356001480627677286001590224017248283060288714318256370838894226403306381463159676194829427888442027841756265990360629925401296002611006311871927175680694954504196088034546309259478529321051771217114620750877073452792076814617815178845047136652218605145162052194440624128726103514900673200451986720710091559884015331968552378428218072385024514334303369571495834608466341043997420336425242151910523453950591109319065059041407107668053967282522211625177186024946809096512423769106560052898548550314543928373202919828467863902313169338386659302300341767036639104718293101436708407465360815068661659534505925100399640618197694487088183996297797248952047068144654087645787366882600846747530176200253312867159414998234139977887349089094505797981623989281128061269664403249324870706663836108437251464786334648759640978301102834113682808652156906730462397588176733524928135192469705671240034633475953083819040264510706410412160477204623160485123470319653668077113330927862573022507791919576428760096410870450369126578809756895605630738008411234407117255900630301086480169292034884499665188682635839099122273612365903523275577576167313611501806028743291407460036549972437569541331210637140919082945110539022256902158037438774875375303254702433454939398085239530786610710537114785316171366297795033751015780313463309428606370027452548174701955814682439349971707490424506105999335209174803085867773057270857376516789402203305820874169258749028050734886909702645590921764427915415341346861227838242449513281932093710113378331479784869993629638453202676738479889433993526747487221194224151252325640205129150250855733211549321832895426714754684106685272408496077727108867442467638428966171077474037865001666866794474444944746963025829781467461955509695879791583298234927493003892694655218917188433793277681739595270691165888429995505307182424224164298992415521823982618610679055204905963948130695797249863646694904065355239301757003621426718945516198443863083180076013108564636860227444870489340392867096429564866787000722910648508997854547866506038324137113328418024952145995739159648850367838872260030688112747656866582412505993911978352850281061430270445640628123313482281826950365213113829757477052362165239568234696105168307374213209719702032093178293855050458582947475957183033934550311696290304532372204394305621736977124914208102803722703547269617172389485685728814325686712698355582394935274713924177026982861306812449093380696546855923246782682665425450443939933474687255242608884490284578619143085229621741712071376465480686937998045962862787635244078394438413645654318646614372679612971853212126184382644327829313648845148694338064852100662741244260341928354984148316876152932226890230776518653839015174135940165432064806702497135299623995077521061590787422957108213206749870739714550288167554099316580136135301542177043413184941766967332789836455347410693181014444718079917253800246241365313371471891403441651161712459373266646869312258894524439673524067432271165932530438688776735173830326063539026508775344987181643611768465582958312836632549687245230148331144941936079944604897866262719081527455590703330699376388669689936548572898196310355173265165732065009169300544385589164617769119686899376737935879742319371550538514758393840732627023943038728500753189646511776207267075075095742469654391884961186260173330600082970443102835010528416031983794794037879728301649303115652311790194473527930081727384052389915152800116541314098011126259612111914336289564342876521330640811200017024126725487953524768679494358347223861135416445378014727926399171293739007538927756327292072372780301270433166300452120384051740744939331024695259905222900149404756926186243068645303382562210451193601301613613916217463810797591351642867117078640158270978004090787497391605427443338437675102342698168272788136424492651643064483605112422634023303557002276031668464854145526326439772584338035331709892545857520769784123748465517904032415557428051572376263575357812259352492262997467773996823742171636358852210479372941113616534824795340029214122458705840427602326962322653640855040462803624035840993606821927014008122591059312648594042852615223287048941208964564012883651560769642221586791704179479524876642161934581962745698628003591733295129550758639641486582727845850096187526161244555012103622485595746785643195303336046192718469187787645774208875230582268428552847571117508081948688205640654566552568514253079390772246506446671529063673000303922669983577226535114530856442393070175987842293159119671851024405918685675406052886674860498116695212873430790402707720971015266511216531841176224263521146950488113036249221188299403488682071760214978274540595672360101108551564145286385228673050713944572602937798182473555245312097488631895401899373701968334625096806873604551161463860101855843454631315018045779050005074766088665280355325854281664783682114551959226554336921300152385893412156661619038355124249703149105036359025390855038138423789871968452488712851409122069679628324840749679554419784545742703835427520399256267579226683957979876880017386684503629784047680285613784926226602323923294177774108373806532764751889182322174145140758332535274924453439732712242693311310123643553331668208667548246920151404064168161125220177704125765160856136090556360994733095309524952679397660329446553978844083827372274034831424585435031905073132927658383372554896714381124282264178759072563432067337353564714091625720545602008934578938513261865823729561354877559358907292384081419958754935784479198219235196152268764190226975676521974256221843616096807587294828200144505288297327332324501646919766707994949704189587957467909273524598524212824807762469659477576259216009565420393809128237681547227341607877363259854350465480996828998281179593833590939888634630089123412304488619901232722560715560332394989905258265727434406329300263224633176525217108673225774346486476993852447582495127119233719988601160239475115539798811673451586728283699580861785682406158846357406329210004604825469591130430364643726069407518143513171601034456413368821569620212651662041251775876719162545916538711960813387820257188521192948812481265591294818887831290625603113108002778254629166885475004670014795927186910724352135533579787310993241366738439161938130548904010886935247874856296553725355503993261250427717350810591729004192295048907743907816682351882975712268080045823820142832481179461443747360692510658185520861121108414470015943650685701977864923131942086509716333463215932768004756791319903127198246724508222952251448215921488458810519324944364211345739237867230800644085362368934111536296239536657160326554671152564691974148654418296761718279160027440072635336057325388558438036575769620149918720228980828581222588741367137500145689209909080745705370922514717918231783934361819820783446514345416151343557490411428990761991017268796121945956055834696748923562297104952478695222438342542970420540554999396929552120128551144443652119127783544469889199316536402902340729512500967279739259457397137458865706349034197958225124003776274866989676398973169246964350228412532043401318715786805328284996448972699418424352379490321824959425229807476873876767691632827681124159343855037791043213808701437094563668241586208194492988129549523758675581285694085542449522794690299433279211439041388748025692074696242468340912709876801031725624938387119302119797333025517155557064902262216402480241795974675906221998046846534770348635458372193249515026272196902228971508579485165056036090593438510414081192685410409223128778090527862426219067703011335434658468045116098540293131098364893562071158387534854962787978458634982775517260805522473707618351661142417306088148242968300232762945849126865836861992347264849565246518343802102740972191293049180068424807595568370042446312288440222948386611748506176186479203065531567271207420333791814987381731473838208512101873784608108850307970985261065113049282819550813087932242088900575200226468711875495257230917754930817044913339521449160864984888003591777088541872581494740728961860670485273298548367042632512807576485436167341802842678695013710892950931878513889186702694262551621376056225271112885821156016292828579191719737391862751685900396468595515640206476462907255705142106451903914048051358622226999435225835447523652217811349601730888168892414514508838423248877157422279489843128920723004404438620513158159273630847882383411494516575554672731045526596452845899941534072360555720724963517350100530824215213874909995576157506181856794473945157136411906252694306480191866393674203348037057491323608169912864034580705211208699416336468103370555891918272256163260794282098705120802831898307626805470190592653133287597462255911482081108018509718443641582681037712336243275811593036072597655413398105148051633339576273143864454091667428207969466222066528209972492322400425033068375308062941007246562611399440685057954702539543151547440122304770353460641907925414405967460367188319839534863895061293508181100530410302410948799134873807161845554214260473618753291391214046335723272425803856628407137785288816679334271722378972864122065151153728869703241860968464403655216198768434856834690600794543608640921425693766795369497707228852865391936163259258695542369155432404179928443211548034532231774236100081373497050026566205706326057184478333700238535826975562126587851178339127828536546725951640721309084588938095114764205204927844098196888341439437337651411867190088317409474366960203191363786581344494740966088888556229551383872080214574959158799234233822660287871334336249941616129467475303096651972548928169007368902136280764411423810667706125253992429764624015554297134248481933250024828630103874649244921746310194840738710117218699988495435444746648451124382618767213596579016973153151766668016653824792573659962043412014340811889137198259115202975700937754215100305077172116233558445105384625071005080750179006838747945663017049636419228712616403918564426734632962305557012637181541988662773206883747544574072219274634069013153807720406868991572693834931196486308396281355364650564825399263744328347670646216767039771413536428124665806069840836319807835859088281112687200225993587150475770410607346990719979932210204744554754775474319110627042349643034945021559962466097975697313492526571662358380252658326606084737954923829270509396663701715368329392553948043690665662185908136691044853496619324019689608940031283487075449254836674190398475461944724665477064189238986023859982693518963815319224982622119125091071238250295265030801466040964231719425237869312222490478130098921822030297575778633123473096589739346713198888897342078173358118371577864257297000650648163864006026020202010382265913908230213852242308620151472771867628845621332295722292334575396218249908631567465189068521198782257460591836210821887322753471439160323423777758577226972447314991754003261594024648765386841350696566955609366058367491913003580633242215947804936704731591247477886267918546651385217607232353972223609397907940618538214782185635055174191104666228299752207451274500528660608547629503733181699035802135421636975709329279965438775091726877439302946895310267822721849878876409011025010924724488909756948115749674267327518732282608185431231806949784004409793439365328260378411068514938699558734921949775777177448888768915458129615704059742409070440357738201815358585860599160939278249710733687780122350276457045216059046680065234359407983873632098753318094441708563200183239024983496228124997678285065764773737905480607141641201364689776951428021917876207411708348412909479705040267342705399451711239121781047758571571787418442454030962129738602709177982831382914234014934504548710334262512744055631283903856443631319943869727268540670682823622702019539476910108231860247307743703754017499027329291360904223106337858761130890872202903694570020885519022578072405070531998015587318009221168942055322329755706289573501081661793797257272768410647979070366975499120812369156100372770465710495089369435276014416260885021038221059568231495491649984982432521793115622781020711363731384918891052252762180545539958102528273906907396229454460734091452932291664445200708135969861931499083596102844218782869716215345687859057805570790709308865284188009604519000222245593430752843882138250096593382290216265847152749288810297035353528727607632095685314039852261670129572083128366865956128470437651065099456737819423423312793281442870834545229029475979328484139929435464180653282992789169866725544226513630091764212364612505636760398091928089257575633194510154106931177602078666187815330831875810272450501127218202810765491466146031633670608689741164147500465296320951936981882072338731563822332613033135792737372920061628468652021520851801050470623569443763193589160019333120300410160174607935139996205964415264094359090682679210987654397420927316507327425995011351564816689386447657495664910623115739382450080154562277046616626959816613338749028980109667410915333574906588461140413293745007701210246888663914229188597941160873434361919614951289027925549842638104749226654580270241783695452990827302475933426751888674399307549645555916153094957805816183240766349746721683768072739102201296528318561796066676620142548373980579808746479718339686851908390033673477199521516906248088557037249524491002039437944980552270879395112856449305328909125181531974833744464380097204165527822037033400225984651498079366287950090494812946665103969736029557945359739459173123681130453862762112489139564041790597596270517352026067775168893940466152652887457670117356779702141366436852599278196925591084480611008477021402686094867282576291048539408049317585813782515132128501167107743513979137995920788595856179851463664885718115039456231612362306965850341912325159323908853858798450133076977929241844060410077607009607582237290168501348273821180027302779890864673793677873484088263514508040421163016318268443650542937633286216497805472182560536231564776939826610497299144503772790650468031943303411021321193675658964948940950931371434535489754827279508056493021238028175420669919598353142466666052157818923332939200374262416171252021645221372548953809139284178659053810790961399111008936915870297161520975364209269155286635352952176366226139364502546676880248047489090749538203601408654923686843172884365824121589464707848584860533249880273563241740314017718549711439977441470385926871190398909864863425996090572230132400512404774949053198080353425463679208748930517206913957814978837830404363146059388180448944184743506845165807526928077920017402829045352539540608148111204259661530265076941065690678209446341493360187214423963869276746782454121051873138743529967862981851245706229046371714864395934268848981727328764179228530192319133481607220275103595525990386732711532409021238262375890200662830684851449525401456497458471630758980143141959309808821289389403518195765995643396350914760249007984430189947113823727597400212507896663210401446218380862352258661039773901518491673770364424216167460408372043816655077065566853248225355987264614955185461186206679377364800696860739309282911113315107931354652403439162827287592956057005026146495192860549114168475555279301863432245389899857123864112134243219618023895369294006709184362417068302850416160180789466948968740224225379237828933442004869666769956249455331207738798019055054880302433746004428296670764327631827302688426789879906757847655126753543639477036651917253980028723838240532540234312561883791050151684065281557320202847137674859918651436844863769275053043778826702941550590288053379856436841052824150983148490775374784662329246012155073885793378263399241840371900786265160309597023033926723831469657406786274437458942506400418093366038857411106518327373629310545230590003340122863802496921481661398021358865558455424734835682616821329427774107070975566047433158545088529355975774194443489476921662231981017976677890231132768825672082615637546742972765401476792427969564202449981187065394488982884371573311501767904633061676699985310440839577187111430212608395844272447483224970916580760164765497761272940547301185766438230870484581285225969122001673770673779435123483592699272497092913862856508800235012043301727526629055155271592541596717822206021651028286431090711022546265908070821702351803528052924378796827481632420689554114296489181815048770876249804643977908762554755425462516471934470982406760184914099277571424870267221330970281095946477115513810507660005737228102826762880051677358880107545569816100695086485599010060015978881735679611577910813216392433721792108154074874029033641910900857031387855956218442987703927449814387576022084661556036060355544527746366051444325523941008211849547714426558745441088259653382113414446098628553494430676094151297565755634718765761828010747679166489977666773674913872429201543649079771292349234660006422551235542837592110138763793651909835609064040232044213481631970760760981574477876447902528672052832021546823730542716145108171764326401220259107359286603493322911057917516490402911523146749891437520363287463381352944609765609729598111949542837924542868806453868995022426384176747618395631293157223058207499644269957723551138390626752775237544307513514542331837217200415970202865955385274045480884906018201946992370028753786856361219807843380634848670649057835745787069297544286307577453957735624514421452718591479203546239759545342419952420835968020490802692407536622528361941579702549478186009333166486008351575224318459112397427032991989691690520693586119426193259186751665689522766153014265006799339992777250463089119572329366478566349404526714115924028299043596065128320320664109396885016897985920026946306042819249228684452191565106637531391940192732938224484141459456403589155361102834407674789846731115642486088443792905285849402132858493163967683619301990209644977408201779299063016696432447781220334612925579548568053672818354732844019471655998083813956428630412013860532621790964696696268582004494502204364108169736177063399800722299538132028956997379698142630235905102260592626145816640103570752613578641924793539937548620469625337937676268198983896490147577682628175552190033235530479092409633604605414388376860132925430785102747630213404874419950855246562206716890171511342233060176343301735717423533714904721405540531629742351633121197734401616961188600916775256959226645120498797194670845754938072241775365538118699959544883313583019308207271220310724408170913867827100035884463772827933287063586667104929946693862269769115705161091141655300266758242413990933034761877756294587684774566211961728871304142123182989202831475841794061745197738103832207321026755115154362025683620528424604878183133462937189496609372699549856514037282721753050483499234247006293885412104040199454668110565273236215789816112510775430968722716507228838636427827449997558177994694498620932285853953270961152734745939632824524421159234797430833416878726896284720104571774881733270246575392987469731292103082874966424694296009050222695418106244952870874710581161082189675879993704740119542203521178425691781556520451144683174739275081382969862149690933777583439608516777689472091964997069256008475636467374360519385082201220589142718345303201287789424433365689164696701161215661593158208098229043541902775015491287261586094997228434291336543752867252575048431937448722282590625284270649649344669091135685800755291566373162436544207906215817848890278658465230879535729419597628084653961524106674515389904526614618514418247151159006562608490434797613690712530615333818528671935406744695543463502830794098157195612047599067648829868519624055304498672557605394050939055025620817036691695752800083511973448413775166418578966157934941907867752562928526825113621338923157565178717510321425201625733329369741039734523707473399200116173842449150699725145218653736991023291643835651290220083531640831445188813280772752327329666287633195202020228567459407691826104425952358053333584071873255292028704727256543120223337785040281600214963005607312254913940957964262902039685258444313299692341704378382787997012140563395694440027095150888511934229379364214230347778806457512542613569444736979578186346583587588376164585387073913714943919341236803236804287304129882357109656486264045978460085293076292554659809347748652912358870600903391503500130610239444218744435749101774094405040368324568356272388192596395188553759826317412963381468923696415319494607922392141848018001070728150395940662863102555011616537107651682087824726039162466328499076534060189554398492585872145598461920515487034451805937884022980411327696557682121077880788998428932486427845105718469788356083120568611506964954327935174111109632433345641913388797646230399346980994429628043842936893961761366690039555843028150076575611475061533475193496991414381350669750003562141419265973658481611362859381480824311752399317676913988166914757475250626091301310425368995889207295133687869855256025538035413177380235083115083695177433110880837319091822648989520597845934243459474367359826194594054121339659363883731453317604680611531602297514360517986921164243236883083571936851890835551282141522335406173077237260680984015486785692706709856630293027731415413786063811305657472045982132117044517289157960949437511453404134224376066619951834654661984796011532075364667666190172017194416932943048723460976826582641955379258757136092826983023341337503826091301609186467680505662688227785856718558689738557773331319619640826204185505766831201465197197639198174070153088369526352785198488773050820651510873610356383570159861908296463108641305874269217817845146510288336836660650158301400875763264280772873482305223377685883504155002382840215201038096803481733973019204891751734751247252816371925974231976349231203031627280400474639171083283967556480829555887810655299556400595705235891044083148750373607638691026268502104878171320111107204429161155004794170096047113690412517201300454570277472207762870053085107583936289799763923309277028959193020863879955299172491963161184375927636452303979611521085777547107606517426274670679541487040691093726050287080063492246964690502198836473348985010190425351488896674212745462479689065263549208716512711556896550286364953052131055774098873804591625669466928158661057875129735124773004792085632433495296844410927682015136368138675656042145861833527386737837679256553127483389879376829355189104288925080099768355998759269004978672956705062623842865427275621941794794061977919358541594533225197549277261626464059572250236173376775875616323343580833374825868650914920856432746737015553177175713184307918387045185073065888338905505614993957471951603670890271508654894243351023761388498857617967162202247009366158483272130163878229757008828090436054069493457951369680965031824234730825363069412620504786528642104870324083427569873061848728003824305525561416420671463342845372643052280622923413579144211277708359930022868305584678021290664034143617881780245061801946411122465201314051723062754300209634881631023132694154907612808660962790325103245682091387138103372311680655698375722584079467500188163429974807586143227424487798153391622653738210856680955442524910086421495277179967340188673955695813194563818869165947573184613589509561588376234195874136953904342482246945221697502625241213761908765666963985367531942387457068409738823624665635680288020168665792226275517214429898008966824561216838426043187949247053955777851930716062934073172777512077967843638232688197728866908656098678833971813755674887092326220803645810219189992940073369560421088650512636743302418347693220335719518933466342484403712187636403502787811473381030473420139381628583650026206027293659487176855938040261257721397042580503990205708302696313319082343630234894727122142044283223722539646689901235695523377823468985506940820650757564596631388685146529080426372897116791055740995209139499494835465989386352641919581708698587185047570393970280544294258485897990814300889175598004153099232787095843813949950837547673403766272358527168308176773476505028004787199136891813751392043076378503645472465225932073133526831246456857286314915861165042474792171876295680937412381760937205816717517584255206873934157847011256930061840592102399324181386602819010235860655922736596859933822660969727366830201602067112010233604280807445212869627067584636118775031252704825606886874918487992937691388889383752467313148474976946649917029993906198006728640207547429234670906470167919759608573359082370474435529342736627936032563612666119834251450919849088333806981791780324295034370391923127028101642503863229897606486622500282516329606685021833970346339613185012806804707231071354263728719288330251350649321516029716596391256010955775514098886089093731166185963104664925980335791326681301676592521905325038877282964034271388934534622836857896481608482826111694140649567150669271516578638548068308589954686913933494761007401455787698934278023305122893122283558097096316850651117544021783350567084990056124272578041333595488411002291165978307435639922395872115260265473105421760652512814967379382665318566574875149197753722492107567955443296909618365543684139390968559325708625159564872794452123651636180518374755428622978094536865189636945926856709856832654499533908571548105377818563395834645327388351086402127381218510015506328642021427451667854569143499992821438265646395137383007663847945056016896486969165604729619741138475983081168363459254540962582869634783259337932481591165016796654149315885066003288068371901431800788511429160673513129113775248871701700274942918040697212745554594164017654036632020679697314053508167907798770735298737955268482544707421889216565850223487265240882857479996707209713028956461636460288628192883468236599286248608985059643275783969890862999983118648878705211696191562668379601542794807298768809728478379872582332473152902318710974419474299058883110564726977069833973480656673944110091630264222375019567544672543153679781768895953038806722726448981391679707351109689954815718820447386318425925823150687415357035242392618676399267813768808567430395426203040552652251635361714928309734626813927961496562077244787570465199171459920389119628883669328834996242324154221350576277900325596365728735916596063423201932019671292486343959554304974204980319497217150939612699501421974115503369437331731593587599392951905132966164784435365031658410079313619351436646868686875380907484986304231275146818539273223307816417711459070305594410177374332247539989627579006342278399523109803708416691652071528589611771782385774713318189151635434866401058974330502051716260146285431899312953839262889574663060346304915072979956190391056730127361310672917842594488997532198406304277509404083925213617013299340009221183207632458446265449411616721365243589551323331083204050035855408308900269743796874600658706085185849650003999801016908898346841622430970070233221774984782301142715360936528535743362835755036743763309013458219023161956078189204806453796367481490617671693493946881626972579325044312652784730215082027715258562102338754923777973540700910449410757564331659294060344198068654608353829368284510862231610806729274663781498309944217440904179919303464405979820272026913405562837745111476231934724046140387972222565132898704003443118954702798535949194965629702024108103294417203787325911835098334189994595585523302909858513102881761952665590158124640268751571462122334503744754192677453491333649201816781575432088858101633330575285619687135238462838336020055892623609225747250004164955545512352745350273345446930844865431477139591511994792767969715289301625662659259470989519000303493299210698731450123885508182666003412226745905217172720290296409889836563186577993876155178516287169781510565868897778641842332137363197628712723416896296691899226424809183977043807758961757490506637864305887557119502041110735131566452127619727352359407719642669025116272830893330765296669259883298136521639562037619373541192581597314022595100059077306002923022202454596244365010763014069275300594503945540738853479462551774843055021108060727748390170236621665032171285480577448510178835629809256518256329503523333848749623737136288647034761090888507443350266281177832018155120163402207300462525807786961349114040790250282468477363425626958099374633761466039932302724904749008399693788666720124403915351060084617597492485606790801630689482093794901174794332799840361101286016195241769927510002413936495430810578319522049322075373525416340262087960806238767426688391774354103717476507740060563925140593464285491245751005419866595610311872738511429421841074033213591645743448620254632001062980732648001196955350385644573078477073818597891846587462486464221875101410578372624913378255041677270482406019065996919614283367230828614327627057201591806199483307404668712153491759574133877501614485054189314397771159813065460656003094825111694571227100068412955282750808547206493229262270879386348541832941769241198921570988650220479287985488588517158956411658531359845604491538787764755352449543955503161550729163532266927909002692025395368590495473672773309989103809330649620220837186164243257978258048989973876889301930988367981251116412101849420615663315540580592402772701468712120307324882089575820705775144961066323650156392494950450334171465507227329684200530696656647042144314020647253221542355413545765631626637901651464482555880118673890133299750192287843309932989949549926413299236723014725635034816871144558343837716550115574504076604056800472114255505634301051862668137499608554431515338569151957534639375827392276674816076554423481261562515564341763997538230051928079614229803727216106493384171249078997918552399543902125048478611946808967015895948784670850938959529405268178367722709773399658630759634015855065371903509754514518217834597910236322680286966086284136514308727464744360925774453487524157128274555609369569408157995223310123118640524561658186610986720340953952427805303339467107882765402479414469524699957283127568698654551523708876002437343808277867939354336709141853254382227024512124564488756748018978385318479866670188977125958608562455801404567160356711964565327097383177910560559937458787771490932804063843253014516163829583557288217837875920075664188873364969235896250948023430907801401540247484514781395425136932260057861932024767029977202209819695222532448274244313776204819781486376143283537334578058229330019106181720270477081131892394429573194165014002168844247122604835893670770390816982365193630210966437852488724879932889990330772157769096332942279535872057897300804084920244833496932684787403221527104715936608687864409226178227118499946838343867414501140270938490501894292649279062736917289317501112672470845301079797545008325287314065398083134308678679020420596284092740458092344650267675825576550438392484983639378078947518977482831284033550877865945344719000256818683883354529381844985957627704998996245216451164582818452745097053182008133120376817870818556128282756578046876633537507633774660792044931376959524518401622590381227643531930153379001366050501322236811031486184459758620951024063000067367651527577526390976667390788957376372145683430258354163250922221640376282002585425920645864284400329619283720579840069746514831398980186588344151828769989842797560200641807772033326289731419473143010090081300626399851597725644363415300473159426681887306014289559412062572619563020698090418464155941597861605596106080126626548305026097297857853795552830557500381518688189282956800892450277815650552459329591385297868027891635777485382517896528258249363944328518020327055146488859044007193241523373531075970236821313752595589861322648302052679369012601178917394736794672275709170393425555272775623869837319902659665630516402349618181627948124434263066967736292688673877651447417572164352462564552469981802442430265226394809502055605072468859832368932517886294346383659661068896748409709451375394365336092457139410764017031570791997209062754415043101001873788928362654465191114079989947469474535590008922734973062974735544653566304068873837358256576338021403428060431480564738862948907310485660887309847912346647466081411719826566424902998808955682772557144242676387756178887088337866050746733309868179056577524283491699777728322504457433729170728356990948959622012221072258773231273670728326626518938415788056416330079409633459050202624463081943707454123626388290731874390136834671031039270531143549234746611621576517363134905716156519103965595239287138184035629230214847218215568384953275697822479710783137605655289264552174030589987065149020886680634848085069507648330232655322979450616612642482702941278321252871779733135764881439887630741487288482663504584208004277834430371111415947793140952708533791015483394714672121565577952317973995744253493382763030596352779600583877041475317849756545184903106524108181420615405150708304633957602374455541847305396526813083588448720248089347217441279190228110956010699451188522363944658108674090694183121725053747749313433517467528195137827078959891905233204828771902445670897759427233397529145262062512086962974857847969264646105341570540028130900448634512608274339221141835799437212244183727524185810581195058958195619501371185435002865427212764492987371340524664436802452434169195898457932857776129773168081192173288835054855964334519414724421366283169730124228509131531733691458633641803526378125924830631653733116136908688894686626774014924453721136563491747509009994033532520275477980630547837313216681075342082909623189401282310254976001301626927946651385786739877133069064375614763485235265859754786344627129781390123515914687513065236497417372930628956394406581004998271910977128134987442218181762849073668404712034099247604172808678506734281654686823095971124069300884706411749244814721610705687731654650586518846113633158682536014611296729086734123288005133712626247626045068566607098135969548740013890504049317245321853559959381794775768365244593417381742763749658549017790739759151125813588656598655500484887831911913606814769348944721971401237949875416996149554712635935310738223146992024755107459374237038120635829142874252116425910278293343340918733858514879974321799118801016004766845321984553519286136723803402478912787336768804446042843265853634788950443410017810671909103973481938520108834734591145136657406145948019903662065491579373665546658536818096340879302404454321364880276925957135394897457509251876821071098199068730530298464684780254995387763791587419174755715949478231348466724663722999448492516713818971576220450117903957667676256345633184439549766995351590224146083903121553912053213631540454606910542830517797927046970097698186400373282726900295140399832600917599162340520560010208205248110498635871307502557744863172104605432404945108610956612047682394636773380635138930659621141782164327734068044978394235927545307878222882845450871086017489349977565874491131131177849764036642179763668605219547803140781120709074405026984371735036987496125195148338278012248331605979090561568158386088677079590403895128266721645104350969188419127643769851548292953777253713688399991981647592813843076786085243915274533213901687964325698752338200082965096132889975328654193795726857561443074502955224290517566374354673115354321127026047059631679726630672850467352277808893788335387082953172178082105766816148529693967054156528690097351158574934497337792916830471242668086324663291389622669344879948756828688385506597619454060524834531003350651328324131670808968496567189812468242152032120035710424451622489701249683310953458928883254149842994298551917328319840669064451331179029857189855295726338989824555621865307196252532052534675581015576680670412139733002456693718480051742570834322819454946195164831473363200766138364266711221137960578386318392403119527756952956177188920339858998129528357017482558325043975145103704434386677311830976207296792221862649872371912161439297559642163805445980990810027339948513364571631426980844724730646567171365304277990776879731184279676791995623510607917083322699023000598335983788832775303666280732312866239322277300012541285343133995166959236599437012566826223443058286363023511581556787530386399617243518276888974118971128719470320608842652467266290577734519653596257947728502872323508237698667789401304212432764595069915725006527716226866185936861913112325116501846441297784200788826079211932422536994681165295129973104880705539059808783473384239569069359243574182197971741840360429849047262892998357903598194060729579583618518378390869544911818560180417982965893593329896308675350229594471074244002133759061321955042969291174616065915144261026829786065422797376858416168934842221340831019419611487267917521521368827467036745207296542052622764027608917280562261288611734683565472636886056956504985150282326526934483096720951850439557417149862781988641175305476508026912875267927619161528789448191766478451674827476435519506349039631529694953913226643532734087913416807982243124479022666946906904771816154759010498286899432617200598233762352834017085948288252280317811299751526723240799685591728522591508861216559474104486612268531284644469374962356903079335018110062212511616908751759818415973725701158601815782292057539168573338666946310627761978788610077958598399617938403910156263599146094419396469626266500272356026824292495953074705472912708915387552809561962313807009786996397013124558641588231066493258758123840441688106299904548315652224463320812344670398326181702146245795976179487238447760561487922384579862749600871521297640059908601703527377158122418197510344008387807622018844182573763803837005864893616111115609749333143992640572368688910537585086068190107966004882879037756863657580164518707288213256582544136642766674547848197208575085546496754948401272974504278272470721880597466217954587271005384025167556977439972957359460071902486128353139608178656385520419803829381845439363128942066140753815433290944576433284042079370600969293531464407042256466704531904085320431022689449619806205773507517078497680942862662076010092331634803883552435498258987208004934940870584324541806828396447121115494385647268709851593250936039669972109738464688500612906043600185112594385503267521597835103046831604594534769693501226970728404057812052378335699680158500868275381556326086631635643966728613808416372183804251571670946863337181005052827712275499716877236164620643907596551595157622914464001693776654623027101836160608076424003995981632914021100654124418280846771537385825577757485455863048520636065001957029324716797839146314313154439967458074634471402982234633728020412962535510670436356765158177417430508669769161079160850264686796409039663213184436263049459638623914594578395158350235900275411401672664414086995008492166293743896980806473418657574081674936113365441536138654764543300511453250969872115136789682842081012869232492562435488537586287603742668840948596680567339488491942746406150011550259892074072492963088437273452296155384493116902275064153712586498906295695687323338977054031465051494805970055881485779023363377355002323306158727353107177643219550961627805202016867789109186862459136156923372764754540043681589537017632904284605061352870003312897663979522372492792983422271165030325466395875039985908325923736498450707271499945456036604444135125996076848624264329437405141073236525160565493466701534840828804162672022980254535965975902422559546297008090724929406389763897312006956863860408356956499814109981416873096618017806199769207031269762005549938023731553044461059076904877701043462387227909921527424002151058437642664495645276065152953211882826461366171350117297873377149877778705707799695700388170442290499919224708270904292992822239719800719096365453970475664622266320133308760578052200302156974437233530835716097219638203955220414606037221909935113485969514582187556897395312653705276363581035722472484305640212360603759596803220952857990925426518156450755976661787871318608345829442842602462485029460309551827048691988223435400448758155103229559479437356208887881024539357359776885195877957650490602998347699478262778114535404597436465696855362214644939684367616059737581449608652993739533929503627084796266899591217766699916476188696371248919735513684671431967003273918501634234383600485662883328936938225290161637865801495100113544648382289328020498936332115082214515728192898493357032106447104149194787482506700699030202797122020063464176465808140800909473969066832212691345958546523548670282532296311684790042806677996754469870819197909594190822631649254185019456530091501515681745320809952511060198999393427419056474422546330188209450949635250403464547636956897629469790544822780362915044195137194528388467693833399991831437866035886064302550846687758203398680414301657160850058428399898288308731772411128351518779357864633161082822780033274267884248644717282009237650402701766069444366767859215524750662243198158573280363797046116649026035481914445917792075364323616733639166022485819596342131443303921491668403343608819494007596898494043951566218116383131254774532198192094857283641852320749403012058902668339935768284399533835575667243244318231707215590443088998148498993882329331632760017317576200013766441405410590116496693410672249792623682004533495733683495733463967563971993201376349923297581211450672639285876891158063478967571596761824200725648778893441132433063564754222092408251921503971166518588318961291754847780506095036625082587874628865143014636485967614271728728171529127710210779333296854879331925957155680125468797563404181182793517038857316408999712137098853592741938082241103379096201468980862389648715605886796768274498952673788766462043825299589036153069019925510189541493665309189388135500305444681413480529163246629661381690856652172774417904750443182732844206436393778733072579657202466936814634846236437044382486476970957888426259280210223077648850522265360000886833312672650592923091899866665293517322084884190958813220640205914303737090806534297127320288991093568684249011124113904332261679165759499661760024098612680102987407483685790463985697408102605087799181908134869760363603285330990386109485495365179830969319347515062816987037361309667028426891367202104060050551387645263274304679008347624011973376633351007346273587403983635569275128937712972646817176232977743231493619078734392783101528674178117809962021369880018788202892356543673771346891648333694770360651618758185644712623283204142390780366996247511322858856158297876844498744977199057023385963012420620567178641008465196369461631895211387287908010113783459274508420211970853296404827496201724871519290355455831322430086170533432139389978942205024729792472630829962733008536584761431617970480621973590262632903184316686961581880279259141403081675159817436268542116556642841541727374521873118757847391815929628959906243547212087224633817959046629325790073499508676673432772148846810235895781456611105735778877853507743500276072669298629789594846378229261340092114390212004624636461742767700509890401347879381091207869089508820444403624335336844423372009494719930704429823678115695858411160820138797540784563568441478871315888311875002741715930099974930498276886825069762908111197077141819072334215645637784385510194945304328838058146047290327286615464134581895105447507780086248560523845368228308999749065049926521288873207697189605028547424408240173664661054904638683645083096388341500004511606353767735771818599748619878859407420170620982392395919433572918737685675926485919667534072391773661566266171593219600287842771261600380155059596540989964642838021287301931973150814958248369820016842724626893976314594213639932798565983947815172667292656692149088682473349656160985045387771241650425670852063935120325645786163598753944671926516369638997102399811493191618168561757953024691100665767957298476686602861268442998369599620492988629770251297293115086900216566903786165750964577536958835492733045525029595416394349175925914573492413714606447146152983550496108819357590968971353571709879467130536733942295231877557132202983616489996192023934473151584659383258330071945141450154815593004771180690037800469636280781045771234975018424562439495460940121123867935723512073174539605613964099039386096498255317518604158158667169485140228164396720899304561850020661552640988479565813316597787035496548099676800590324828282456350372593232872179961556190518160783787957344258292491822540441762574506161858216725031665994766261556053553513079461243401194407262221032858639455040629652561416230437860592415017716581144413552787648057024634089412734814322542275818298288948349749938030191559097852887058162417693182532959661217117588368527891461857476630208870837559466861486397685712755806985351216248782291497445284381773734500774074422229498679325383481176713750536373563671178470396418295921138719341056750719058455746105605293993498974211013935328664023503446345573557620198897285619785112096698883245483413028831553467249608526978936294281005462531635239369410139308398951091359992241946876750917861416648690227673842586587241745490843421149907877112261403253903663513608350100107323824972162516971419376489325254372588133777238413716499317030304869762024537366806678584073826445938814623259979927371719380315789671125854215664587822344998581712793915183396480440372470243455593292080336475417307321003412492337475976676101154330447122944190327894325522354461648462257986882594476813206536842830098831016109362440207953524400129089932283903263242166056124857142978537327761629194127232220385715970678170417167460216782297489899682583371689496249379129715000849291171761369432791580824004177324747008431895057153206555047665859964314630285369145891420926569713917343426225533528929243621778438778135977536189821936369604235563641838087732686573298424981254260107422286143607708002646333553331340167271797040963819604555911933443771828289113045466467184121600105692325151604529190459703294874804175287701530374597970693823418338264132293080870222921645255211956546774019788855063799253556585086275537659562233792514701069944744444298413660128644478707250802421067085684089068470438707390756778087776806806546585568920854962506322048885052872426197147769425105412194436479609144531767566909106163001026772907773747764316143161587781458420070349648761742960805333843745710255372955289808614112040414322622145809253335336152363268104346230969892878909460216577439771049202496722255946169474453131594329103270785145997974494296150331465220953210715131042671063412445897275444943180576134007401157816092415794033998846705563006638434491460593267950305181867961115681681959337153737053435461167726919702618138049440579029244545346901521035341272474007913106912674380402292022412252748797500026075105918566100663763357438968988616247962523423135205328505691094080869940800833538731538656311159982121925501897951595802574202485415858813859139223842957798660137691216232891848554502952419466245324446376179817789141777450368122573607475299591490949810241557554084931181730163829009577947029042973616408074873123469773121595082658543400740974574300495788498967819813244867203439280309443352292018771991357472187542517638273709926127011336129917300082237454773470950335198403959692117444321412188419116804442458443603202822275216105860441680549682253245025257020850694198410968982409509091368469592999014522337560631497532211496328553708350550939093671339425493734602505019678491149931233380527867115088400148012210234850339483223049006256706237458443580701641461368016644447533710373069667276411445598542475845348090436895400756328571468835700533346595482679868351203176684361671659741187957741562551658938322858767652117895712468646327842488442771503988562713192337291446572059735982391677835210134711510715792915290670571317857643090704195967984199867040416578317040012628844021295881434112169738159419100888610892944198151640229416430859919993607989551029241145947012369740332699276291664593631779853514794839947727882324086255297594763516550556773016074315227405440561063283411784775769173759868906988975442826516253058809041899558349216297429430887860546195671686794793779098155945076691825956765038197667337884060759924787004031044130610523177497569339893169933344392828129720267348876478181812152965720558952895406379982826926755556733664999297764260878634726962440867629065144302514751579342930192945578707471370923920942684498419924000061406997039813020496898779581766548646509451277807578280481847769716487485392056689901184634493131967051885695699773807020607072337163248029786762429357107489401109898080767548319870966849336287801087184583097599238031180788051363323503806986741841009864996003117615461608993955641767515259391760251231081178262729455594150303681699306828309852864519435694703569316744418403844085332730092713496338336696151090228360777345706494177749069964075325582150806699065238882514403148733840135384140272909157145444022152044777815205210423689933123723465584488245365355644842912114785643750498509576586133147854647900630199830729289219426530134744971782868750697353238495385125978031078754401347350863216915087257735241574442357069608385457945890537630795952345851040041243886826119040007236253279237227234840791017251304774123409547298066946249331651743840037615741763628709529758757501851169322415440310022400281544832115166461812805137985972388904968858134546668688745991326546070014351483390117103462917404157257838866281926102337647992265783887110178613042638319833738488062295747292581600717644597933825564297704252480090958297690352005970078945905670292150283462482253052591392648677147596792619268748240715936454121413736031928488326694418018029824231129892360730628378264698764279566916277258140696033934771650902646147188887645272809081435217085426406474759951195449804928935242888966979885461263460098004720152867746038999410633882318011718144187342088994723412713843840007589118627971307965814692124763255596552924544580204689465552893471164884709979208504098655323981759161360368585517754521750298725944342943081214420226821581718601542902173211672250655339616012243052431363731701833186827507750180453630667169167621204442535506199989873381623020002993454746251111140780559034993061691345859348513784920180877384602633524066649594705746913921082576260459730814588759830875240782285027291136328224948664080406681287208107870211603441877397285573618361085390630490445841254551492127324617780324986111203136752472541666320494145775682957732270178876885300641217625889569920561277870675885538109428153803514200530119516040723175253012196353943736038451207394941251399182466465848609561875913153944180908454094180510895679402381060995884440708755020497555002287928034855040937552089971209618915502016499408936552900342861558568721430408922055633625697181315606892545885677012719981722154321078258725543599874641445783577188937808910549901697125595381599133172443645617036033537408908255347199292174333447295700755893100467673800176947610164355975407380824831380951833299161365865584483006922105826192440473846489035926626090484433056907002377651388987096893410282352301902682896483827981244078133089353491385119420234008822885856135863669909776489234364588289359746510445190612981589595463588325467883533822937702338063302292933532997821931849634051715536608268163395761577766209521991968636850406199404217907667601631401453345970190178766350659796671639217686095988132736660166541795838470363282942781605469226259643222955922143091456998773782721328684087411143917569894496418027019263169652225205406706432329418229274928482352227016713432707920563370129715205194655892482068139188643573323443440722842516639794616307198962780340523313118087306781467348257425049805133041872913818844776465265557701930557551285420634204117653749471464504068204751557527295625964280350146671741980381513971900653734431863055321267057264631161627692360216298388586609818419995181632223603059128799531655837664243560404437611362004163391447586924962311340565535686823127061063895004751041136437031150697993673526324850564438296186322574520060151150135172980643111685012955718669838938043328873804477576861088226022296990034936886201505974910922380790652693010385365327184000750025110562940177939638259108259440722492037630231436528203541838246353619527632122684099269190399616436696852392811921271352941965063817166749879642965340821651019795119715353375463272816284187481491615435587856857867158431688895134546421387140279098957786049991014535214106492005651989003302039446280742583030001072700786197642947676772507998755862091662061080630675785860313491484168774169339012959344888913072949545657360651990849051949435611046256011528333579717918908914123040628650098209167895702730678053165521519429246700337113735615048311143267850885408057130566488813657883292011084088670611764986027243106686677735598094533274241278759655869080313506171806195797917636193379769150372664652626537658458429239490280449854022028204278202224459377778470517788663634312449519248020996339722621113165801926800393717286237464452606680248257963909538893631456901526529476699067547832682809160683384399313254073502260352182768293783510914767690535917919233094323865968574568899822408042161106339879823051275993147787944531012599453502869081948083040655221799236570963165250818247410442929292047681355616451638458817739251076995755342879472160417917776294130756181344723844187660156372536769573117751289645763121061358160471401957489528471523184055627880716898716392610635846303257228329022707347136763565460197330927683773842721321251457256796789253137221434569224479825732060863720929330206526070409925580576876702976764407672426344494171653660736931675438170444554994498081864718397558072474696771942882414590311540235782131899391577383018559391477725059058455070220534358430661928585272502059372051297806242743083973352387862272845376173463891609653729323092699544743786281845475785138040433817506473916745888747175546018664716851503138792462818568747746380587335943970197541814363510744430995164297607715535400879706069929622911095318395674054140726032404986219761032623056072610218295107475212561724947305884129991342408136422196561707667257972445487254808318506027997359535228933866116069880789264837817644190525603837691403736428457877760554126605174218723270513722170299544130717595008666130719611879735515679280342448896883882905848886257154918266302221526424023178365863776164738887326888694477641517189176674966204572820599648215118587469091642219602040077870822584985127094298801829687403921975691676313476901495140905350650919863015859067574437793629454268024229944592193399799230079848887218485439238439034149804804248918696447516496500746937220588816522264808423102929695197082849976985276549376840545301660349938018219553051138476268699040609781869758771158450701024052028514216183201379569533130399557452559601594741393495052447267550290590091560989095301579242612145216329154309419419942901446598758114024770441022256445379166412362753713341026786304014781761877715214184267167715087658148378176427218318625053003988051227787771719013953689746251108912043077947423449419531312412389311391365713370208232177563411577615901013296834776923298108170914327914889893438289379108057373536360655365477769433265766485571324068100860472732052964353675052348834403446901901759743339172836985605242612782651396252665021657458082789517992162608806227645564997886547986977600055902757686421791065070898002145037376997116854102008207823559034245729652884232769130617549278409303313375119003930671958648849799356760746776338969684073637623845616695816474298994433193758133677004478448297628941457146596483460094282441283638430397468290064575706638539731848699759472452854639532831344528872410210822409882229562175227234359027397096845097503463506722670623873913101850331747763838449352963621359576190998932151211783416567062415751051387024175776564508678375894179127030434920570079548399021502582911756188622786889892130101805952321107659102422933843711698108609174864116508352830228348951750360830940830595246389520010181476850812045790799198738478374221105670702734229481234448303848905368896244283949090797557977867447403573467475137982620205795521893745858507364448874671383111265972033665304006683885511846844365333133958231270561188414845515617401080877378669341654291491964935939035827674108654309094904021056852826184421668937949003702080490982952586993961670055272442018115452360388380049093971177472317861611568374987355492624846259709044210313589608891120522536639226578939858235754994106147049246048251716211480032474207941870657170325382596786912851703099818532497411669756602116507177494756264329697890073976251643433215752174953418664598191272918696566792796196081406097446018896840222630542483692597734499480609091255890745262333779657374690651411037154494392031094535557178032257602289811256260604919462215282337636517846926235062638051199874454594905445914070820680544179894385535027183104420537129582839013924878332958122280066270627214848339465493905063800706659779919292944755766296520810133809828611866079030885337939986591395221582970461136063283385400628002940523658702044191060112985774202849038112500158013179333138551382236870607680245601036767029525801872375713048342130005515362071884942088159669583978229798984091449727971953288188117002197959149425495027597184505512509781795078797546434569475214878290790316297804845728597664288708498171166850225246615060588674151182937690337389564473475732037863866884084212390343573099537936264458280121518268652323472771267595343547735191568840766885364906137489969967713749326763725179769254877545748847843546933598387917885504943084388993450247168078860468385432724669109943425481354849283313305250294956135385379272322758629970688181398751999373247317366188137982041393922787407181216246720517698323480726394114252291396325598467348174949750681411043056456546110504605180025964341775256233627125995677868351961248470370417516221630478642374461530141838700223621562340783401691815574998008547276508262216604798612826305807239535353944117823519540547089548102506709294772538202981169720615319028463868053803717610547492022431258243506844343772072995921520061024388927346322793743744602940947270142327255649304979069524044052064787431921577301888669568311521446116294043296576213696929667531600744395839353964781875604458628832594178140427749964831933382088703182567026715159740945262433115156478170823615659851026781817154599201734690480719448040975855693090909362374227688006130609304349171397509121745641314684528316722095693338530225250657385739167921101541747191903674151232704309990037425392786585606226085966705329827090323662589490341528582620460016399891817809162449324444688596102113753267644156726974614391902232001095522232797095083355343753227807404072817549824640848894584210633088547993216897885537058060984434051555610364537168321640087012336120419577373507706329751819879689309984231565070387266028198825106992866066319412130705243647208940493177687448827970060473688841815464168035683027369369967272139415120239275288072676176731295385941503057529228780940913101557788105470017709592751531169312986477805466973000863528906236442928482258715375323578876987729471354469039894423153777326674931805682676450238774090916324520312931211526408317811589946977881506434549812390015182451377313709226889586472004059407832325667315014945601461867690237185049599143689149853909593838239219488236139597638040816141258861118225652629179242862033628565941025491895771555746300792245443996718266584503492070156709011109036163338028922201926052987832954357643683052344014085739980317125168305973404845303300465645365959155303189024193701126143402556010183660729142381378609486936353809509597621372812190902000509240010891950750244664073227868160845851737799892101310408285056086770225029154710517710290190286058497636512919086043552065140242589301619471926316694806097049318461512394412724848801525812598975159881456019542450426970717415024631125750296177286997238945850937748713140435564223682463822481631260414827059143629894906460216893120316087652156613053856574228771217556439369499931127654999592204637193372029871708543267017859033094143718819469300298793200965030648489656902114539618206515843860293063952458970790132871951266187459900928431511040737182319617657015971779561523574971265775599545107157021250998847270927085414148202992112451215076567240899405538486782359081291222789580107257296656163867279602586567911513207318197380913708383104452721323453909993041718466664148691568255845955797655341787339548395109958176401613397680035885196015313086570286542660056414204842067319225373637255199297910220275396532583363211341223224969159452654416049221918689841997461322250101254321702166374353253094728371954530661640281397290703959143468658230498954619281364581686225228292839585927978795044896927910461655685778661580001811936746613856779996542938635608935811972622384048506436764026022695139086964130729037078338007708734336958588959917078528156254215075648892486556349289771705141443845494758325198625186832217352631203335286821280901279886615436412490349918144790124478548397767496982585934429716902724681149223314529308734192612615197851654626650536313911319976736119166390515414858937042344164081151736525432765760390230878638371842742027206284418068734978613115830075697876748568493328673252029753262950371840544727096795109865967794930857061530324842548144829214868151714498858973184225991373233444141410274526405474751586720440374632711543126262617980694226892703998868663615479135333691280607211344944268185923601564074009168264533121024041276019087212296441205661412129602940446707410004886561766380282750010163000474979708153628541904393028629835410738658298559180236764454033974655274527038948113900240518080676371109224953446749663431642540073453056370890926634443824363163597613812250866281973942334533922241282672558450990169067007517776752626925473153662969703760739718933541133417820855207333779337377517145688873572494331245204122664417433870697917905497141871163547429486373328927014480787441646240864529265200158793013717986733356149577626557034791681760761411085029857935526165593802582401861029821734521899706212606529379835453002786442512547128046200941119954829657032070485886088554843240216816514026962624672487523436371786120704359854218494754445665191877297389237434512843434530943473989871296630104991197328355215008261583960326184102738574044887341281569461347726688851680434118193959790270410538991839446942427628979432222520148646428604363345680734596261385247404189626978037675784910018815513948017436613794176527514531137384239575077532172008369189027084249240746670234833017930456358065013431189199018336197941712342298233521138578029789825304088657719988737603313758846943481983054740388024590492428819583409718015868638045640333879057339392690579829294781164260510704797975867749211372080982750918634935501115764535387715735962099469933183676318134567227267600441214686375402852763864436839436331584270447982020322408063806492068425571224511877212556596338266277891815192108425690016648811799951772142488948097099845827755505214955209337417927971383805351082700989297297907405011025058586306695347532426057072978115099316508207539155905240226691450844806761147712287559442470368611780115908661110369709242679200697161399559936436629800675344399300086854584244436540597681047472902141043235296940557856117341303338959185838237662172636088022887925606221713645265292270912363544172879740349238141697549992665982091814051621665580674509782501121500270573548876750280732171343650685330442431394499600117330335216513757241565124388858096963996852799798622944339565666540017317965534274418733649988710397265242585993562859931115478062064074127781396687861406609861763214011285055951898940982667397444464683582788528246121366184536923448857145454032191031115002244052671994745411508262093238560418322059734060667746897999028739880990743935376783080381700957929144651269623862424288322458785660173903882332253284412829529062161055616238837157486937676964276056604936538977037004929688638567314759072702463893526522920009480963124236096893795341987648810569765942462898348659979812836015216681534954004378903081132140637047538386322153915904169127268316987801499312323421194656571978750690460949999526005785656927644594035038854406624971537126306782072662984960927841154468849337405477484859851120244203786723260359067851035574063965584590946151980745620839771606541711420062331668403533700398328559370665307818021577571949764523680091847475715745806830669597475552206972839696135829961999194457113028653657578934787353411067795354036731495646836595457233278488186529631212792212624644191429803093375655786216493922704042920664706857178413975296548328164256701053927048821470890511632511352323395648273683803609023134005026123027873733149254545034049449669256049336539925955317099851316479066770953351944561923723462930053833620888144596233688271464631356383223441583309454649238443636776380947205818650388792451725739117951503244033890143320295193894902446582041008474017553065718192087371987136227785381829387486211032594644596984560404133580535593034688198560278999018556260378011396541596271527478438094885944472256472099839136397243291793122307010195102123593681796661803701334447826350361926241691153380394646084513641546040868313994280067115442725100011367127895775687844905817907370363932702509851639404970277422636594929818340101414296084470632132804038853050133431331843631472469857899788617279161713296384520086930922367387018301740540530419217353153510177463983709080814951053144281074649721659270037557168317197903148156471400217290915402267796766416892268505844623321418605071687517088708045104478384393268478490397075247211604369148735093036622543555948264603817352699950254974747111921655340187447308623972384968251796551200014298852334492128750466655244254610357492011148055327808461324470596239241536280681936418960723721154346846221172890842418803292467715071863840854824325158163160891200280931123694653378262970263695147847368867255133925183878845253757657417086318789273803635422907689409464579828649381153903926355348714102631501335785391238804795718608580051488127380617613955548926573426761701046231881503578271419549211526900062115192134906455934990431688413805777885744926577322545054552062885093573960025424538488635003093466414008550570789034391723973275960216046036285868308504291845370450468133578164042644012287362331265779217600812468960624264025454975630195773068401923831472373001916572424956570052121148982342829556953545961630270951139881844074267320629326328994072114877301734331348471838781582541272674930187795627811422438674591415063839360313021827713662706034545155251070003880641975040767952911055949825608703492337725430529794797915900670169894088037873386196492164015834797202507654634373656112672036914049444756310059593702717391995761536604962868783003461760236338117148767350064447267801300223967275584805876676712776273251684405620762175821791053400081921588717317203162783838930047026170032553865949012686575646680193000380949709465807110622540376353688768476792037635703308330226157605997392199455707449597850767521069457914829257474539697030963354872970289430577629878847472779679815382679281008816450031705580471862948018837906874526522371932051479016337704416383665913645845413495029953692591241086874134365423078236214780804664241044246191918921371580421965758376664069974180692200357322643781826799669759585997003370465891594954503609915707974208811242374367633158090358342229571160589690444858385518826364500078021696725125154702651737165267398983209805930061698521829983817314424698614367742008363520087177491190901238079179850026821775848552766848777235804098418870283296574760670098245180662142429585822428711015052055997436693757289801923594942188284072762174529198371582405183060983589180960496971142627454755177690633481479660075360183104404053539098898700890317560880743307253590543148388826478856614003090191234226179892600772452575290634953237986040246402670476795618693878355242859086828615630857346827767200840980643411326963896388238194086275559760342094439584932412130709155820688689389927150614303112348896891553909653920951728383106199245244825884698035831427665057790522649791057279148518581935748844907817546916901779926390747572106973582685810922860339705246285167489713342449882273427461344870057156914787905354253936432395374002704413129508386215155781878647010468891049340261883492118693043110288391987854725265117638531758600159852518409914551930605189464736869493400008516608599007951121507327934710385855103968194532372004386331401928141210957290674283348761503281732227119167742039487199923092374011938670796358345007837009432242333227976557752842019345274612966502501584010314788894587548127501699294125347030006105982830070892523426467702054015369349710050365771621489333545077069869074203272936915978567857374692819101156318915981678136862723635997655363355334028704239733767038805413940242900999286062485525039770743979202990334101875518692552338063394091543336337159474268555236496337839334721962473666023233054861746718305104533606062574061269908215182612575019460220269244401612237791824837608526959871612052091562700500057629876948968962535098293653198525954546725028081925185832390462097825311232395173657879834849796145729209046899235222429220672721419628474454481038460835349901960512781325103905645850829053738982833349845654491419882009386724293190711009843655209345172451747299151738988044759699310543269136981468786769114483109938141243547463268905643627254619501484887452220873248071290946015191907256765328938257917337209750718221322471455686570904135844874523615522214008734906418526712744566968187827605565733891921709224033677399624956823783920495170129908180248584059007475132894784465895598583838353389659675521536721116446162688479265504606639271779184704225221351015858741946989087626596463302080984313796477111978184140072954724419535226996922367642153079084262644001983867825079474941314103606691693142460590376975819823691671838843826794369915988231114017192614912602631355465927264264187167234623853939080731153396770255318133073966573869251357861228300428821892492104547705034469849580934778196284082051181038353880977121698743202967932606073827693242386692883266759845116593015229372822620887011859492395437063529128274237465111754511226093785966378435842289225935833587907023298184731835344963551157450777545028543847635608242582893982898929904934021781755634687719686708756484187248350546254054050374958108978684086059587720202240099551602369821406958974002217655854076318399296532280329069595963266336971935663653983376760700116496865832693591662296089191801015856878223333406853663908218142746315482739932443045141614733660857873178618593295929098535417975814939595010645683612893322168491546316049143619773825223824141265942265707466875962402454599167006702567689449073093303799028237989295162980856366728084568688880381956692189071879634066881233290548718164535341869081880569372353588807056450220158669633884091938207419637145621375894591034803784324146575887061810342054437055163214123684646189085669825668309256292158451672321667421537498763914727781768575286216657112473849799279991169123351094868025026051781722362556674630490558575057978462640588589275924188172873582602051193377628463098892872057598028775979768720006551201499338327767352169728902789733854471514604535831991278828036694125716905279337171237499318108878032773898333508647177633460221827079512105775902489587895281402311644850524124699713067146323155176992823896967186794339996018838099900264933859712965557067929372649734718839383609643635263178624539543403563623442007368947405964077107140163134641336924801125611099754552173130793310642983181045058407478112813947179836931006531149170702512338833880557792144157898051246531037441466208548624730866171439688745368538219051998072560028096669291840331529868886563177796189846885801516016409452460784411343929842926305522258614906866132467916419548129332116855815801465142792480573953312499718631815693063120383219183651024841653992518636868223108272385849673999711778638264672965995614471848053011015351936908996170139510781694974243306636561521847716663149828563024312740390502071385402703764049200162706558363959451977659491737932436695947014158605761170455251978924199714442942481533695431065176216272739366246244990345919696327965327271739344114433212254007700096754749961338606021265281050344308618718805286913691350840925723842485822277433150662390839411262319283834681488616009734669154381292250958735101101177837812197877809279096201328157133618646952727415221960437797329733004236281553692857739656905725163186482635864862152445542576949628948848000850176321488130658632600416645115195153209370908379074863400419451953001482888823786051200286943165943780061754038098825274456551017164746898212574119525917622857662712194527475944002274881967452074182032744644303036027495883379338510262447886334986133239047485674727769755822433427028849019521631815018107175213767945420789959577874782545982481127827786312432707794004079290224814943213443105052432876723815864635714900765214068199054603003492599840201868137568443096193751445446204943621877565414068276007368827268769020048556128447116748731732493363539074709307935306048375285105045627573533904145250112711171605838475513714821630350359873412830682683550504737006893242385097196322192028996384047151478225459140650169889750326372378121806486345548509390086827953846705307943107181593674519547829390765130975107497831570809636695765158631313826443829484234569189712045222200348797032883488491727796803244177671868241604656837702771181768407321918619510174188737519725194260328443303341256787589960551489589022098534652800032813617865353340351971122434154648227879987035264838909145624920580864592107379189270275675984779310257276378734704160208599874547288346416719495200375462280432055363271815027835597560922880873649635508724571442317268020071465685107659462626534521340946716650412327204784598678397502430440826734386806156721647030603160077682500367120293801659542817126083318500387694144752301097327048564822563569640837232433606794099325808496061809903960228557654518569756480919652029899641403089080662668604600858917095051949020128555659177682173346810702598341065529514846669857975400926955022348106992362538495268688570535283537719389007675776395527933435651137677604376129618905432227967933299079631053394437161115738837739041142705541241156333859950649448318186721808198170027491116829338305260953518828048299055250625035903335889740248980701828253175671898239915008510516469784938205992298744578267515858394783009804091484591189931046742355739040862863151898305395038998070300591722427967972692523994977630211928760220835195090278552794511075977500868363152074519578423808466353380985170389146313281721852106158949282377576545118072620649091936167029860530003610026616769411791279975311847343680283275258678922992980241263031485937524373208766212222185930915253004685258224228876030112721498129706370776456902914278675792471608426739902386248628757435614313872075701876468514090660880396998950751933670708878080021566422799316530661759671559303809662082312672047189712985151557865063819229235080632705267213693983397906233614922146843178233656688060216884649606879846954174502637490572178635822838839455383017793733261609834601268943016295616977070873363219288270519890519591571098154764071470950851223373308795737523948140343200628697667722331600057180579435825210168269036429759270542451765750435083091165196293964521703808371267742338849504164428841391513566392337098687964493981271584415847190624250636442031114639487400032640860287485219223250930254719103060353056799440155461104578791264705264593548472564004015797884534743878429591848750496698708043029413117575605607813110971207898252133621232386607481617044665283888529413852784519230332541467185361835308691524177258760861190307759128151789666121286594241252997328288480648872437919575127965609576707920221486931950458055357754246652897864325826018808829249587031223666646205815258737788436171594307424370174769259541885353764793262784312273418189911386943620677164084255091551296505740440606735885839842663376707409237601245200500228445505170598744474024957783430244813757204035742560529590914805095728375503917923240881501227225690671879467362047059867875234896172152962246271399957847850766061194078865216824888237062205366770986378290753352523398865555423120251321056128834072957786361276834302935969819965714715493836286360708380071443384129197435713667001722815800870043205406184396729441105757065925233543267539419818034613203980347119002128507350677839495994994948810434338821090226360502049022210497125075622332894311170910233143953150558454887524976441765071375519381747350074115428127057086336785983007703040287366349728199827837690575364202843943290902973146100702562600368976706655540871450909580669895777383752719938016808329620010479128544834327167539975423753259032158958030583466453763215725795580882425242297763159491342789654621844604625262672381871664674667748769758064779983361357856741153937081213428326210769657783105710611132995656161353625799535754036658635999086198484965605303253461274615424511234829277013532536958210220547302441177130676070145487890309733144210386767472746148261431840342865149209128943332893994835799931401254945435931482403836825589846442330893272024879838230216774938841678633578421972929645148207413858048824545567051030655921494340227576950378947841322051303473405623037424246408372909902333400917654111033841682847126949820048742885466354221532107273512779845896366546272150494170837889171164599776596258611271229308792846359291531254572286456722573842145414516275037701765480997272326742539547924557951778606010767886160406281823778099710274836270553545711539111745752256517779473856697876439018965294088808047972561844372068515600961029139117129242485725667204972395402842349380960584688995559011305755028115060524650622964517009309799313931690273798290606291137166082326587127933661717317549115920950576870609397030852572477875696830195729550679435801829686844396321046903253930428072742653706321118989455644164155538346257628923105471599596363312283550619781383738848927829075775382574152478246680274837519299392097838153513631202680174157178191725200452766612619886805415225075176649202117924514831392381942555563273931918836919550395328311434729715793169675981491312500964396939517092172713517133845860293197649335460556351401237677349483670209577857183068206246665786678340762488834939810631626427871622005660280093328137708508288880874567303647849897545474474349077913405758304757507876226049823898543917067226492036196231565979894603426725016892319607707429784439395602146650793663247400315837510053062353137966671927095159677911525374006258645362648150241777803463532206116345641655144500530954166845856690819686886486066276503394891663690044464953810680954909296205702918744645689085670368444178382307456719688750509918943375346219146680558000739232170448643323710504732389316452813881118542216186594410044639534164598708961661275433956941474842655241353992368916853739256029730208566802782169992719653127299782678648930922874825268846212362995294374819140166566625483635766101368121275379542840645290113988367658221414078120434636210762853916699191184076222419947704220480326059577665439338965549002084802978112864831516060435067168658164992932030054845971585589501300863719682174162950256918181079731780466100570931211589159506864546723149347393432591376270762162925292063689491873646791399303491551377731117378071528526986141908540043091340742549271186971671892805131473681601914360498033237663434580538688810513361078693806307239347537266251006643679749191393985424231834050963610495037780041040002671449240958225920478248530294756419587228216778863526559936569048837268049761244691995345282278305651042715475483516435143052837975477078104113120697853434550223610855856515665327041326460190283405151547627167092437957055365156998383101747109328605606529323882504087114499726759744984467256564624335853201978812256980056318621237062150011628239582392127573139970950608095991205349802020366718023351504462374388896584853975792082986316428143207589288765498444409639357004128539701156274372327438474890956116633440814567708066571231711198460402504863895089462448510781121695276735307414095555908693068718614458768655004125504046983103585496236213488023248864893923645390517097796705059112266214504956679180510853792079129878270579322778592339984713225071191451003886937190902992115152150276529507205823261986244108223824301291377760436309915122116247108665232766675439896700974403969655861528831779008677255719468642911948331972148355371334411306084901950547991612695776922248359360991987312636449967235162243027969534868594155844918996392257408218197384899646258855014253466571558653834296802341413816742651294456559287226520674618909826618333274727068331533259025941936235880043081666348820805387568407997581520840044129001490150391410003964150057925178562988750356378674351351963648838195064900302879282802722417356425651028737403059401106828299550645351032603081965377077407846830492870929491681196513277616235771973385205506010423111758407381829636649348749119981015264741078583258112342352938872997821223014417480313016117790906125508237247061329094202180685963695913223249051574961724008311032381356124861338853628386702574476974416685996838360082631397642923511228958641915914113972706694266026249535322205630090697895659292837421133047519274161624617866495850901701835146015084313196195835356837682421148078250512954529573175525632290371778488768552569563029777084707376786275708250598183621772549395883561369666882042632586423440875593026427454946497702459819006101219599078402507728181530775273303525476276967083355869535931929378830831596670343654532444032978987750867315381631686827653775862211937239096451628856340415287823933899699411086903524553496268130431945206967444679169445091663614452693926607825631828472659317918153370858431479199191741122394661020093514235723929952003807627669333612532340541848482433140954518233119977458882122009219526535045604738540740021374895220667518931344987173696814318327938684441617234651143210483236773459174537070496821578734133542552530735632127644369565508695363522816921142475084111263037424518038355838131650194192062583299278462144185677668628776502526071654014414549991030842017497576613114077717681176102666437693410965330980376206855894671353865977628949516220468629796211738722067171580201232921721881194401908601087243479420156744797159348347829459809986442394373044843315451318321893640935583313782404581920989251397127149647151281133245358867360103795886799088584952897299277501607911849046595809741220318886314779455654512494058822193268430093257816113505730091263553108968539470808538633169229251475248310973686577581825882470399071964007246894422301980213125832381568851697619476961281945578432980671464108608833941048999343588356600721543684880928400189348444004939148292430319754259295043590013223633166768055310044848470002823264966513271102231181489930337104773347116155290915876835883994227382574303130435018625504319046687501110323646451668181768792454660303588378414338945080158272725087193891694196591985090090746559243034561421950243502151336275724859394385489258782846236336145138684392547282101044885386393035419377140584334232371370156110426497897143414009500767658106118282601712542741221381993058623134032998087619519320122957249185160377275538987384673369642900932064513413183034554697608793828371323612828640285469441140815050888674400933848034444585097124632634639055039212180289734994579339862550456437298644046199776098609918913388539650557089016198178349111303705237458046754586011613488905829376192685651458113110786677240511897439615306950753795205208709339991720229606085095932682215150069111950637460204401631057985670113841095544643898862126667067926277658095521603390402410503179146460646736933537888150630790652724364932929877617548864733862486563143161965907354105562328674301782803459174394631703929625744559617113397071458873930379161372714505632377463510916870479042226884907994623737759371746423013861626588793376518336909899034200118060453240264726947687119383148146778396982469159748295098271899639273419621331922352685684495761379974583419685602928009369074468887065415149797088311952187420733192666466119084175596590845274299806956509673652104777320791180649273629822023560093431583686551572017641446556681665822381869128273905263177289509906800580867002433417789290092088984747659945886696153861195204686054672360953798392312296565513550941224658747833056959027955781019242323043847782801060161854501288711100997981117540707120178916198004887563024525141643583910753466376016153137357429204414482587938971439328294116753067552364419971436290992902535288260857870166156981015499414170679764091223235663316002922280114168007583319850300919201167175874752176638421168542423323207855386539652896309153391647636383515338482682053502635370882408853252523704621078809147019941296921006182908974738295479112280210906890560836994615869469349359658544917815721249296756444641100995579029633867228223625048532215346834635505883079623706555621071035325609974237392391048778464756970213527373530969478998780824614292121278245656340388200712767356826356959262213607295331387166952611414586603100209008987583211214842502213957034699766106764231775818010046151497814199745872135155446297700271074661310288444369785524584767138058546387772877770944990265557662742923484782126133973854878481170634024616669256933919604976565682928432704039592354089005651107093308504018965540183742545402762837628104476312426975966855368189630766511879314171840760836186279817560578354096477468708274332695815813796796035438117062254813971259235894849844680076503199963768033252113294127582173271341039456115931033951681676261891907070368126174553978615647441943862314380845072247970305917867439599351469110670771645521280427555725524703392705314937402245430932748881925454449959409399720719390448027367647233743425995332570887268085598295835248235630029172039112710942451841180976267431947988761349398223053062750802923277882210434912007359553941825972788032161092919175247172247081935841259945902569730364172230141529667449791852824581420367066658320503675459509347533784478426188212969016076868681173342294296965069170000841484049227960167273196163173606988304995669990038326949987500982806213129946290890658959737332267778130103461464983915299369939743020446642292378613029411587728914047131858704194825920328860032973171157175887412707345652249201109605917707173475520206217410750834259839421639499669209560853664342490237378876299012910476909305877783950354387707556812552931081280199962619293438197748756751494034211030291917541667213962357248662224425312889252847156456025708050677386206030780609617531185086038814666964075029263266281850381618983612727907060277150335328876512808475412725881382702465265041507704175998918983140927362347340972907598415226370696449634134456888167003469365474754283455776014088137032644347656588289075126832961516806182213229171194763275189413899588535271407991414747213686885752262374433102129658842751533634096540666172287403058235554175912028809015074676762847674113342607773036283490691461442971766093277446032379180033219822134663794281330298283466169532897485632425063834934346138906912655273765445929416450158645909457251107690686471020090489983741564552515592185082721463998470111454279436719803990240349731044899267687029874651196304647960348560891123392758128756687401304961673903879576685680234795455538541080908421439670910436841508792606135466403226254839627291976342378695475471789818232805312208280837115381132366172426632607985117070612549664267130193845782475287958061895951479816446988949416953509077436628095549763072509825815304239857647658013582535492610631942123990825971400427050443648096892732242182434018230801366464005987248408324361994794384917349479857755813486217429422082819837318278330347266469322291371222637929316847718456564466306888038110184443325222407245605601605535880743335105535812240285821466442149155410562157437782545648573183179132343565023040606308513218852795749111216917568499593300120807099604426525898603983679597597968214708454380910561135388229854992219910453279029310955711966064006899028695947121798152547705434798225620193294195883800183478074678712557604588959224449194490291075255224606346820525773814085696222116830710521530238395001844419047602195450893622481881644348705004778257699513949506589888919104820162897958115727754247211775716222763197600330968218472751593969278104313873485817949922070759233149480812124240296286555983454528617331132337680908902220876534024848100080408683208670245856521962144902600768498252046765743948498094761277361103729724972770362545104235392417644795811960569632630930965321620737897230888094646729127901886372657445238863584751523841691668597227504569730665351881577158318634236979903772207912232395960697567361895987989227837547324479870581145732840806394294463482488257807553857887499234931131717226415486208036532894868220052667291878420938390886314696568216797056458366803223467013228405463858479095695244510285907759247962271431425575101035174188405722756719021357359931215593598994121171657346562064719514384898176573855403555868227288514760730964815895786964799628152658234338344583051900626794461285497719530823512804467038629331869234403735870699009469033452754370766163532620016528456934580569634930202961491485764809429571923923680711067787575703536278067563015676388138140401724131009791357204638273154442041728168791342582625242436427878978457128254780101153558022195384824500753896002975164311147091239465633460013132719437462062903732263253646220083109298453618568674913226996975127797823266360832149735921647635812885710352419196956446683409149301134682727085503204295609976782068612595634951088029095171971219095238362594431944921785623037534607705906116700413457015958644822008806970134818085454133986305937376713427809573475411955183112521437516079743010038005522473657017550369448382431832213970485840775595930448487886530028090323730450581115943256852281465256138908676265370741485448269501104150205245653700438423218786906995260007066841208468800328262360590824598048993696933344851795193419894406385149472762684177452297105878671298771366917893492149875892148236350908016771446250545778220858996792642755749422965387903983468767522908779533229408196128112780627359513730465723657073123461949371901869629903867989056475593358050638597343913697345446036199705369980944208591698273336109920571659930774366089596625649930997347498212779358052743274754834257905100288381806332879328147005192276373003984067784881915979250360749482852523400402257204794863334822825137132532580618336858501195072546862050612938346321529997756911308757781197533641714620656284094442230743989372011916490152614566288181413052921286749047397393219185165339535041910520806140038214222818921480025713264588700523429357437504215342441889777033677042550234511386342191274329971193910945975816895581505545697697078162204486988674369560500574184265614927105596203753187043050594130633155004218849096135881149955733287795275979462231089105346705740533545561827048061118190723242174571661529618691829533889228979262484395187697588797501326497220376941656072685323105826878177994935277873298282525009717071320474695846563419485348554549792803435720645545276673595647216938141000145104164279996930982755715073244828290420272621302693353410778564660699834897867206381042410252541712842162855472987112684095782293499057147692650126728524217101904775075793546357872621774193939100467463731375206669163376342999635686459273251234459880688341354833909941567535321180419152811567180450930048233194290224692600956198067856762330884074490079350046441535419377052413194961755694764721895902348017447374199387086448838975472120414714120057180378433436184458480126609014333838802922032588854450412800180363812324594518985215958206754395083476994241999858813563765801644328579487378309091950085940881601720912012513915669915490902082743267422360900118070437814534867137232171113609711589269248599914431364709485128265460527390332443878257628254664127984271766430025393157132238125899758095131928553116310266197430621186545111700760933362862243332386026433847523479782288738704821592153650745295508799985719923822602381262898742778648875018935306314977484962704885959000021977846225386202634173608285499701214776132644535430632998290924550834530968453951306501012687322955080290643368768319121428206800748380985868805128074642557538538088802305083736668767745932211602891195367310865589206867763829947765687520297719844812570449639647180032080620005277308934432149090878303534897856024113864102300957996612376185003841304741464167134458357091424260029906899644740436763710219229360638105767444891401333213053182188810202698785058745103239476074861930205455182505041982112316766843108796731643984448133167702575485734074302197674896446798689892582819841501246450307669922096400780911044242895513679274699208531959108557593658965251223581104130481196587704376796885093601331808734809792633162137482901866702482166828341846088521188274560343102625445037087498118008317955465157766330395272434024029211132828524036307537659290623874601845920241230807063506658153611642216262338519219088850495720653613098752981777046747296582700906840715225290891814522196135940546117777683486974624084907217373571452648814618648222242517380538001822856668327698150108100343170513215075173198943075955770029285883719308107760326934208521843923768755639586695799273055025629201770571456577087107781833606466573617479850524889276298735764822963965371106081420543239223155876911834619368481840903630537750297822101834999468509073636689380110022813872461728611764981514101185336771087223073923144901003858732962619268741447774373869106747297873256395120288234651644397429494869440470395669964527593510916971926124705862626804419663936868140555436224986005702652038807665988370018880301061957728752922713737918359912661295986758274832094026089777406621963742238174337879756991871100964042610738458963257114353656630852620735274292466823264168125303970026389343403797795772639831646681434837598706734914632499327806918439989711945620079035297623242028310491965552398046847436762563286749621409923379037704023303070385771684535550469273642353523382545750119313921795201616816369042872549967531352742825989495111436459246506159906347479820271530149648415369578370731208154734935725779501553043259911153709950144290296199649998026793907415384667063450980004390929024315696431009091661324184026452996506013202334845943766365582076566358749325153071913381580259657750542862921588021104555345152632076535466815241628466182526182538290183024525302363198042082434885721811924488467730146282650338871483679194229606130092892205294017822313011934781849805022353286025429270206589017562071994958486827165727754779949896003332705578025467182755886829321839510180276819849091879500435321876497190497771628408538354295596775563022084298927914626844080401581860215469434127560270616426242550668399922372706681106931110335108639099297879258823448101728373243665426646833804648657062919138296318573807248135055255315909053957975378594205758392624412281702538940380809532856458034904723695818561929831287432616726727000713570012047815500842094632405642356275804016674804165002530275867672619575304351767013896452878591632868864189289343882356389907397954937961260408842128023476611850692528072650701496224903057034232784641004744669838630549475975561665685020960199747055671654740877235134458349678692856511933304061281542079614689386144273291730167674161371756997421412260271466762843105236561953731667675252395135488327914629423686029511157431496946835486238798674507634608307221425900892196632778718945253671061694548688320050212621871091053929561447075853025555895195785116881605312150781864698272383973849356275169028072776543606750384608868955496832026536626510324915297226574774989163453075068153690612797129796887030376973341739805636497306205259728152603577253669791755572536064775216659545661662115467630841303612378845903131554298607688677931237074968126434377589100631435984923946383401787280871438605309028257003921298760917872638353445570423587621417192865266415345811340976641854095263964543458129249185852752198260297050817165545734332968994513190519562558226076390001576546322791826035333250895553780053420027774114153021317244438840206751848297517894439371648337045338576584500180195932497694741479779099287406302478235390722027421313973199199668306407531656704244404526059579149394345179147231768310431489654857536100762998601411682312939021959668225723322848078942089142849998435657377719669447124361624495077940836809795211843439034392186354161481998049801820990363647196316461858605195695624459814907253756941198675774600584224363592478746018507379757275913865333644668755670315874968076308580694826059026889952097637304729197027763952290508597227741867240862759764340745775938886552036698199363490720226409813998360495401066016701946554466317819512805837498340298493226502235479098099613833155303649514161784790941778747216299716932661324344044464137581609048123333814083922449705313008209264757478108741092046250253718762160534031177907821945792560745431853304663183288695994404235102242079340861205784813887800767852350375053654823617154235683659122996813692720415148038350953219205078649513691085399989425782308119349087578159677630798907625664917788190072581145059329732953598379997656091472103352899390523280065072351359200718535738179397477309690965091490263224848051717329520856041604818290172862397914395397815641566203149775406582021668671143162691911243181448454924147559218625700746431439390469373717409883213735824428932313415297516767495322215881796223101902740758492061740463902131801008353321895879979791741442738018556836707253808174066270603471220506493994925568301776430665994084815971635003720010776823805872955223674929156946356134787714710468985151820638362679719724159099742406067886669952192960788813737130757600441791659819517637581195821396290883932274871328961998137971301539637763846203497193649969832151365266991561249402017373612273729770951106081464261996060500715246485758158660158170742331896256666828285905141902708080082186603281278509575132021113922133170742215278042520779573405090463458111323957497491101626588806085942419164743807947198812736085922270977093781078441858439172384050448274870056322638657290264163820579213289379952939255591204803878423064642059579061707060200972319502120540717582569784348610536297912869937584810717056610085974163599518582790887635241050035407186000564441714921191455306905897591325161224247885206345579221746402195613546428315836154505056814010251237980490680756735249248050961146936576214031228247945503202055503825134556639181790856623011122161805863925188628947300068686634513367022274931928396365218246371041786127915184083108416270359660455883789151870900427454727053352024991687266580132244996696036820795021158791349071608935197223353766931745513741548691154564420619525796765698610566985260474565442429815330695651475687369218525111116754901944683692731362238317099777936970700255490076749362859467300051310580390221855596970333401089862595033280571744058215387931132379171873162025421425184344402572843535838010711629654638362598833536391511641551500359273567345143489519012194430748470428237974162667093434943313806473538764661758900658026374430420103100535273826370500191103205527105534499358181805448451432881581300915344378284182219684758141088127624940627511479596923777811490394638654583089411583968459179880876016030297883042094623342458128096407298214318144033922904097045360713488945254634025130882063630331668916933764454843287137508299102363829470705073236999814374713052849494552731367684153633753432121167421677922874066580358577816876861742414634285639353611888979632774265438928062285198203939337746213441500700827071922715736988356007676049459770653654341135437240286990294038180174124016794298353653672950983168978152752858884354259925954829974792936834347543445577701800319634910427716155549999957906646041320051952905060690107289207733377992154407731919324952679597518147183253494321817669565311496407113944069372539422415333184750509488203497920230529300044489377533604152538006507499326950694832754311863163323066916711873659204565960769189368348797200581649880862811167535423610282360150899254569760074883738595001040197653304478617498443227304511212514377946451615645174257904146329958901601312213410265256771968768255735896431661514309501671871166288757935843069247509284332896508758068768116382096474473088660772947331076485971812234165251624903005151252424623401494784315788959900295515279299879557698314750212466289093018118447780511583024690332510637158171364056670842189456159204489781863476777695812527826625922913446228090237064604123061235823094583511721878269629524833502883208792917860043114999429150962756531748450566066107207789917769467596583944328607794585641466231509906565258977772962185461074641201310833992129811314746108924985222845009803349957814011677754427556321893370374916936141948195598628220552735572238862212820190087150542982888398222339750441805153980114428848077096127001301310354804590495594660264428077273907119717438274756504051706682211612652795197596158132673902524997112532010554207776533725308233006665257873626701537463700247593769868761606530273724776832563472293705590873472998006702747024102167309407960134318808711044113959350222163550095540782120047583165069719341452443830528400643553419583694698616872948820945776215578991465951117682528021392358916973071280268407133729397970105140664628162383872575977233213821478684258743297302007044389708207971672491049977977281157541197836037990463479124077324766891292513488414722070085177263810497064858146067554581429050749705194864525849270532668637914998066475892686181658594500786596977969012932119122243049300315741733752593088130727170161443640445928353694514823723035019455931974618586436775552168793166524758814023099688464109253314724401308338618239505358481330282469984610031801271978478916964010632262904520134231138791356586572101402513733473772818212581564324159711399062045034374382482792028551022014768373191017434240400931921683966383589295573540715130574539343005259348820819894589868552720796396067548024868015215207075949975708875994327953481962134175009270971807469801058694846653122871036650774704244559587843533670468404600214720334773386489236622449502587543344086584708390138310413978519991512087715515078641210013068247540190645600366151787157165649998096799190401348508723593268762055968208674891282722882352030440286835472544153016312768880670960549666770820446059101288412950397154470897422872468036344097421432718442716329537794968203306682996776595551809678144608379227690175151020660887066420444155122171004220018665769626371571756785136376948124591358776561008905090756667704303581235041509300023778723255912837152775482487372146283667027089510740793226165976696751705256898694329670132822311668955580101426583079979256569108285431821099070700867374750031038795755552704109952126325739822119604750606814841150895949721181740691566803767014492001923691470792416951471992698009205676654392235414253913216037259239382154445969919963797782516733820902568596395483302090030846831560874135096963197740340411698520802561822637073730586126776450419843664246959150006551822528843041739531318762212852693336498221286086681082849070208113605240288897520258504392731909031675699369763276759036728779909855450829977956739962364764825692257689634961909373417830316111739275084682772782501725329389352919773621914602702557240265499338101985066199986134807439324095840844965649637509743346175860672337870827196535063463691533822705473675161922371403504241621194112134875818732997515007095480587547620832109468074037993892625726795059747280678751455954548298954816003803775154545397454991577905883969477030102163216946599213722036844501985478455534567296206173494224763412101079014665930711448036994361199793838303080804757133854996559532719551338117286554390314753857071450946787227703909104392223026143389604095712567369951179932093883213876535020439075874813699107936873830606313563029890179925831123190419067786110723882303138942168763921372946930226917434925105316247838802447196897324869389434701756106060674691193577876016295834763097961546191743068470386969287876828283540209381295783851027972966854475872887796696747155705025540291758995376256806773577180270239237494229445863672455041321875299280415875752546185892807579271077181403748014594657046601487901159224087305311292641378296892725256672488878173436433763611295684918085354030778697652339881925081590334219167442731626676770905066971009157899738513966110644601907048531518904592947505368813164680560752343098690706522816836777804414847246834285069602471091771559750703441932498440982480836861589212787203133921082310980433358689528344587402507372561277911609066620273965384249579374906078745913897805182461465559266296135126660622389491808969289682622784006939772806778953769798558237210621310820766905423443890805796338094640948947628278419081350339798499605195788629599808105280574892576852840646329558974402218390059343746672491670375394707911937308281561222803392069248611559367645258702168628624211163577037891998976252300220065968452757601749857098244214744090927574947209494716712311614686486477328970453263143691787075849229826385039105430877128346444108512879788073040489853087981100290738143195722834439913451229557925013784259305417754499521940400340309374660186260445263341354431135735786430699322300090197619242638434586191557694638316144541031720483729169476144545866984759353921015928608231631533063011909149986782695221731906566889958111138657095956006571182521614719030854740086532745082194021915807733156888894743547063330889528710169429485701362349928926923799892510497628799470174618785039079714111391174733202374810078864556171658313724201339051204211757855237964685090453415396174909738533194021490478175548952956555351337471776985644994163412993650902079445981699457288303722772388202223636388503903991775652002941241072222744955457819960305565985542411435049421747700703112061451854613508010223824902817247634901157701737562077046609614975238077811138776886942461349767759131544516378366949816438536778425088416628532320219639743503832272479814772085033958342571434631837652997765181984744482005123572048722896419728065268264508255278347782359497436711797404031628689978909478038547315887608924724853981425134527122124583583853907636564511537250386888924204874523934684546552208153594071791544110593672021385834889098561917602847022435137331888263008790228631431429367856746795391351780918221676841680599503076183509038701607458700986731941626585784855161389733914272930296204121850231031044934864843878112560266080715977473509625188165998915976959824281006289737117059681660854362421374443586686338337170035328029780644058598527896085823369401210134389574810419250142449779166557113541319872128968389125827826538985034472947591028447521244983149092455519664107982937455768559302522511259840032092813521679603602051176944117261606026526470506299358146823400172177027729132105291047482298675521113446351833229743828402749360523028615281059301563289024956176912541123063157577643717062983650692304134184715209896026233812516793945853269562194179767688693811342255735264911059574698324142172573632273690130961332775727541913385082945312095632504067342066020704624342553608281450878967588536873471536002235106028452646415831740913386040772973343744335432200422592417818864465101018166763262012076602489982899868176391029448219128002675273372494534947652133255329016112508234501593918777183298662377285001090645953951012198007541754983550742648495383340006859428349644334351730589536159264369987775758510791539613482673637004796558226470109337169286814315098401913873067526366784301899333442690236448597637486717951327720024495121877846814494297622387368406834756588746649644084373925329101657672544205624458674322906818924014766821980145606805166320301944845492088848745858056562721607109294658675093517402781619569299657340168716001419808306514613383924801355735266376073026117735490503723524724489711346412555357108965604637000003505943131148382516025619776596725510295781711689314373562885305612966951343602147861586011455632923927984439279820712739434820407999160211679626419600263341371252807186831140402894248669684572322718864318493484622757773782972187392465447478613518349402022570273538855919961269287678332682276570153152654425883419859784124301617647742777359511981228545954697808837310822810785964588054561438564072010669197510499979065686232934941458824860508604635310333565023478927631358465471061849216365404157543015518143479439847832851993441427947025606012400571793765237288264894219613359583356384499811304762708058630050613096737349690520627475096731315604146839712433676687550287347936606391393761479136761782017565483251281234519063650563872650641218597806064336247852237650873377911014853891751924719742837566688819640954335148412502447283608949019626675542990363234757506991154721508266547904106832928808865893616567617656842636541331991919207458776170503640464261357378050409722699166682215395307286647244785252902934216698975769730590410637514606659489967449191832039022052700105182254664804809788156724642611339589567753882292698043627158823411241111404126553428202107331637172849266739828067607301709150543587047205261584528375601963440928358860820944169009070362054739600123901222813440313864001480754657442519412926251495431345567431460599973229319738117241151898844145099610072993856389463383883728100116211058230046671235919568306085968509586982514822949202154012797216704088544909760583234504678298793289835440583992493356941727067874748317929621166882248684650746695536856707556702366854230225863825039657725010995536103192570914129650544562748330818905522595918161397806063470291657184921638341699908412152693421681896834044190157582189259420266521023451386712397723800084106391985784667434293919339117277119658897673526241768148980614202728608233540409598385258623617286657858542389249373918911051859131977288672010991772501715820399778624662972007444437830113846941986695052227101385573665336656021908483241084747609003136432120626707206628599117086791332129959784130155627156571189413134295351280020676795260176907203191038743472239245120030286954809421717043028630636001835937272358186213259484675854010881658603761331786622374880011227068922360078601368839008062952847811889749626098629783087329728899080829879850021395682753551250805226585564422228122331565352320451928581781641576703890840433674943846753014719856465297419160708821536338982285723260983771584562681003933910782698275587008190782481972041802752510793929852059123968009425210188947812051594780919990098373974240312208599660623598149377087892247765289264876783816221627026988478690448975310995437141198223434699146965944837562780394100145719603965967148118389208483121901286068780155243136180462827319961982355116506765701513918812839768571405440122325224803351599161722646505795361965778791749955326151655048143689370302640296099009061585927980998442878775479731855131210513203011096436918341497840608450285627700503841630682003932089699663082237461153911469561689976357875639691218068110151142215888638345519892116095913427185880394435833728245979520326028287890530504579906494148960837017131867546099474289038008966839412882591660968690781516897394043320055387839731713074391441002398482840923101471657814694063128823687248825519425912327799797191673689959038955788969780644339716053249126493887530897949424226305314639660622717127713266420837159791947560539692221072347274824045874874790966617578075317165422191691898404064346001319076718644583868922467618682477085705481109469060076124474843390616374398090578164925928339935119319836264203805045041137072255895921753299282245821052200511598654706626344550623422735573292787966732430159016655301884792603811140187124924226095899608731581254158561706900403216757405391476052352068750147336751993263222250398820575853217891779929312597247981413773510919683933201151728987223707960060061417967806802608690848758585691756107960558995563996758601179982685911702511749921474202768670258281407781909261004495779153664936417584006148144493475409698154934313065990819090076753609226135159226960027269903886460376631921813888487097541796208488994528732975318975933099572975254207123715332081855913259342416728202219087544971972115025596275910053196502647515161112888154006324918596658220608798563129715112161597523426936759009769022326014706462986088531394279698848208988154955173182030146136854620834959404707111486544842879196806645661633964446477659804803959080444607880567249375997028601481367248919482484749447351479615997797565699091533126101621574790629791933921379854498411045336461993796288502095224725859499493083123364057539276815947853265046557658005605737131181829528640776953334583780665274464439765593108539633417691716126052757936743505103332584228113376359227566066760446972167664054058355568288848718413210156734325875687368847051403031499201511044313804849219951788211372453714114357344581065754005092530345017002577093331300876956976183285135323570044649053116939628536368166888512556031638415686789871717463409606999467563509260627399155781010474689018488444460845725590860444643889702446162533521007274542184399786266074423898049829756733179097143171571869522590529116187244274367040343229437099228885834084552883905203205737346853459062696913065663689598720888959444126307420106264500628673207247892423419980941512855897421862483893832684305666420951723255397271966131065634697353939667117256735009650149356296516426028947725522967035309381483999691872558052726025139394174731902745233678173547272395976365779157775772494554186862739873442472209771454978788267469365531889099605636990612013358417293206273098364819176527217218830270589127952675112227851978441816886391154262071035047844241701882763940234155255572624109375593141129653215399426342057154698523184053016789557042295604936578577222367648257090323987575373412257884617541137980499880114421096841880696327259186347070466163263276405899066598322978518082791141309897427778684818621595614307557750273889517104855334490906024057307394905209525804347038721401778209826623551060655498098430315084477480717669742085891240399498746769278758481963070015637914914092648311848460950208432794820398165105854949228001444464463224717866508997570409892211228562278829507423295679962002149479722950148683129516993453740688541002080570257482918141418669502857791236955619231852686254479198123630590846159816557300056956285855508329034177981263922129279900941771732400142766991435718077278555986752522370609674089779774641387259230262487974468303736759620815063074925186920422147818098897988672753927202494761204134168245524412668865457913100943702481350174455826209673365467382179530824679056918698137911026635290604349129445349858871312297499246533060988272170638778140775609938142040617073575470614492519720881920083544610856806951285250875507955638792277080803571530375886262190342264174895116215707561392457825542944403582758569965123218179091592055028917197645205005348533396742053422544731632561133568438926180093612066946685086947130569691280089952477642262483746578516586556900413203450186946092959252615553716700089124960093659603145326330741881817005644368344869937201358333881580077625640112980819594292116842371598736312402869767187904104299782614012040540668638531684114494410301090590447421609108115619301435266693842888990089589787324277513575072241871563771580990611052633107813227207410092384375273629687263501588771254084174606100707705258072558242668138992187974783286597778699813304893136194521814970961475766960386350829505214432973361662870872164087800913415774136825660620712110351140910104003354621011605066945791439471032460465602437172279179727397558667815560815541587768453315011775301024672517132555306211456294347992425816839307753068551143655707494849234635278512499132420258415425318539526087358737375328935035488032069958457357450000252116452501098868744100142030908312851593575781207299638274249737100477283105951964852001874422587063782372922049956773950858672258279561996496743181235285033459644112099715862405780613902828108415504109123450440894669569915224284950033852565141255652756916736821966288670321957637488495461794109824863407531977605480744076947159761193505193033040524142537209553747839728212440594799703794390977242927365954295696235255508920552285701959884056179340824585964361440710298147551952870797431203060095964242084219221162291279771212527159580227072653452581559113696394469782548324158343419557488180626605578421899298666333236402848042218390104102385745867603961778883908242000000170834470257139673661624763558369708273418368059757820017810207332881551114264639812892459578936572496775245451626724057308945211486790309477321340024440413209131031933240534362310588766608029904356882526398525879291893565255102050641414263155594431267465888151569511503905926436580136900586857359656393505784856655908126322291320406874641114343898572590554310918019189312965327681111462455043339279604902114121362467074869783941256282274065414553021452834635241908195239006593832968916578225373598158231349897235014284570146492850608684832951357689653428205197094297518847810758422246835783030897661826475905572942274034003254972278856968025095180509362293115461717032407959324970420323525017351122019534433574045787392767317149624285653356496009012364063469006406004208748724256176438105730225592720288145663449158624716760180855895575391931306589896826420662877640444065153586123350629861762217380991068053511435380837500543983286771727770250102405000102732994320758856335127403041414939926898114071708121289292148546722650563573208941788291610013390463599726302779355820338481738489048533257484868869555331427925601086705265786537684362538550737238609762796788263022083685599357296786569250256954540576309751199606101985769512500729323062129132371611417504865736722997921212931466293342722607916423453175612322639724403942440642107084835672484547388970735931509796719322004622954609793207683661734213160870959968106415067616933765644654926148925359550033758201765392171333148023148022782434616590496770610448495245547920159828159052461838419911221243528976161630083815999316554960453111203806999858119015467730525268903725564942230169314070739861298774910034383933655391185867392994724001234563038934495629115857001284291630530181842018261233342097314918536036396550533840707792599421897155828297989959600473274048568000340464367436524205057783761548257390911169794291331089147804415016649723540846035792950407532417409956837454799121612116412324224324944030691510299344654455813894524567331322525716852907007715876109329869849445397890372629016032080545981958584736792437262446063096419835038533480281459922496996325010114354780145995197548246456066756431221099765875741064978540289069254435187893754343486847589601427321453470230877418276888192187827697252240087993014060735217090843843046498392724448278852330201875184234807438459833589127572155276948191929379911142864543955238754212438651871310695554571064195150940967247486480402519438697404668053755875068887434112843852134339202331859776744957481548254151727222892356172436671006768617095818288401877238002066952781845175303406831945277198165151606955044383290177041377164836440365788937147244688090172658539881961630916493835344381593293059304784131931884530819251711221778526256318423488902941451708317360028674134482891439687312339986876358573726159881399355518134091958001217396952322263440665027382357222756270577287624205121802056235214859883178290630503884247582630334760809043125186098432432060096320684662412871938945315756422694849083440147067422138380236448713796729825683419432450808596782747001524764808894660510255136039042449580744037177729398766525514748012251374392599963817698929797751171004343859012285232853578853104800753862744884925048054802423615433394439894293906230336827593653231326505436378000966806159126960262662951992284125303478420035548995272507450355749701645057212367018073797385201015314450442657791482056849215327795402184890732179269059678577290616351903145233145753566913902120001518525048419873657599011205769778811245202737860515599240320234228491969349697550065912305112132025402425506316268098269067459512218961108149039002394877351373549825503771925875394519812170488823514195315482369566999661026390026309843291572232039227437322637205656385758953719779475193284854676485840271398628329244101322002401374703227073606434060771770110271206604607651404444932816924695592552990658200577074295476915978891911796576152275325276641931127902147262884490357173781315443402902536207110354804210890474327159550706308152542605642350375667392264178270066730519411253820490834539139540550605807142435934761631672363975208029349762709885080957559891306739080116263448146949926387440833564226993941742629997239172831263976745057023305181172238086600426295983088312810640307555791712957051396251243593610952442531408877765036223274090110855818035701768128393472477384874586372544095116465250961474041722758785349161619623901971491536219311401768171512669773559165533861557989129404331903844572896370208876691540204917280749582692867201536354929650915039966560511569781602549596669474166232095626521056092449815227150542401831846059883438679423597862035921615728372062883205336606510333779987817145003514944757807723699699244295296429309500742353504655118928975006911808975354030244086731081784862561818157902191464323948388125839121187772047748413088170487459382290129684270077886211457221241847984711161404483428652931763035566247681890495754072595753889071800973915620214427655648498421208471862846063452045060242898282362879662661001774590570549077364329776220835996258143641917541878970658157638074340854177112039775760003232743501424507244478725221366817001767016241688894106132551630629822531015565082931284328150899243831998193588683442753669746965560496785189246990638078565861524427052259781709234256203837690892926282683134801413696670584421818442383952932015910184744778548698442583686619511567958435750084563561173010838823920271633695569433159388382690584229329720115744953727739150204729881001556613713010274429475668407825898344719165565557710523412197158909709626507510042727630417069181986533280417313703090561691926753662799563226962639998870666635976123761090554511069800651250125296348274630939298411912717486448168716165444797123067447307599276882116479281965223960615401399588085480067943204524574319809021205112925929303389688712918839110401394968265212821742633891379547909048814541692514151432852769946519968012752605117169765851840685681653095307670749166220530197946167906952329430434428001438309231330834413498916282689496965522579267787372450637914831137774343295834368004729617415556024646927644830122254180793112990639757270393963434659029349204232328586109972292105421556001770649620296168847769671259537832205532214448913644042148078706091744033081518722182916054670113413261395112522885665585385717789578792325233260670956953911308737510409757891282693405124592344925334286307286978908458049029684210458100470172881106679243278335326666026317949526844359427472035582178512564920930199777770046601727025332647975307071363004484449785890567132413386485550563287053490060976072743791920528600243887957360610339960412051419256394982803725606283570156480605098491145859816867862694764647730772276294742055870967629787132438849522474594436724081218837904020173240313677000711516230762211598291603997085577967762291088221789109677527791189595406858587229567843370037191935564602099724910678516471054697816636674476503882618542220470175545834168054131958907075618938026478073482067266623131126891057153635148955219562308584918444953837666226098931831020599429692381643237908629267992335342241287486385230637420722195165718804545708450475299252951929573146037488034169347870006393477373115612399090466443849336796604772014478452351245354163717538675613242732521662297857358332616235839045478017372712589522161650606779942533964788683139404127276142386704902236511880160262800310414643038400532616320165975553392027841352215122441041757032653445432374426185386780972904592038415568868532637026594304860531915204340153864963111232639955767234273738350440841074633246913593752808622239515692665008263912446271205591795542743602132122518498446088759864200052290935585838933933128984844258168613623707359163819888970234309604483344074893948564441041380799457085836603433131119384056199016112845468001424580067421905683138297959934052107518445886147841554652507313377681515599546116856623531114962170174294624880765789581170682372363824762773399439926186020870685804884725200063249851648469488712253176338213615649203845680240880317367756351541940268945772784538919900100163519914332012631220555065817355609281180087595568172173821961578197363007485450310791769564005310566407970614937943055267930753844997301756927958186874455528051784725759097972342845907095779883757504588623971721526333996077351792319307654281929479740157720494793960768554724757462589595915231286783358550394003062080892552049698523013914706241777226252598841834415646141852261716143656519501797735073927135209935273437648059572547620550786665570143770485251489445203264236327909859330367956083594979055696790346122982415291942070745333157737242630455296052046824740479662499310213858841609008150808976369908638958098805359519359905161741408472255036926539945314876588400261350940325544847060924666840018729850951639308948038722840368092413155627087467940383811024951518512168984909518018674060847405131784080462337541957166593705956283597877065933380993324914049727188942113854462094231686046106593096419275373709293638089871958611237013835265871262386428838867338403269794972063458266561992080420186652899347316280368647530942012028430967115882210563805097635578733829086824678800488663988619620034818462029693565306485456250597702093816725311334301469795095081844159497335918383963173413783229245795193382486335692931935876620776458772347941177993838930018780312353076518848947590754838870036835749490608136219857532673763763922333674777743072506413943167780574562124044963537171297422286781660508646376588318231391106492038247728433963380100205552306711200501054255003990326772180042149758760614218970305128078697463103769664612069148178007879863034358539544721709230996973345218195746431672496135457939105477960751522329081890688205205662163770715283276732967453231466281083744330980673709306694509282574408251175436807196165754284478436293270865546206968681614187574504154774303438856788784177101454300285212252797659521353828617509126367550920610271253180717011294198656883426894740310985337826330563152486494067588263337246988282894411975333314494335520388883361331181309014495743027998634671739889272128705011587810556193347040171383098706609757835334730772280730539157445618189492790697388124675897146647585855521534682099215746442075860763396292385794706091650933643102694675323455151234423324812681323225899884355309235231318978312386422602083323077087314627895766952166709511740865236660205815549894657463228225326619970980270152505302685066310734744014095377089868097161235887163348625374167663628615488662960195371382398053755422946814497690047016782895721662003323970580525195389935673627268889959587081088725141142545778969830361544115393455946965478198281408992667385313153823938226121379260585839608741526894067522101049911540128421576395079883888124871171835678421190263747981431157622359631993025653828082257709853849526369888081097826619835986541234378664533426529623887628018979567975236014129832235853283579199947438770715796561884943133780752306920566088178767222324723797111914235646074590660055811739133466243688865283683027192695173242434958618436564310232040795237107853940579988214684018436759175223954594958095825364324743483167849085743357729407475879240329293091754847847979794522249830032845255296903209538050354579572920701004889253150291108480675919482923477503473011515999654517482889721599397333265428763178524332382086131267516718518737597029912217722194911603573723630626316696145248006727740321718673164598312984081331109482576932306001816301234974853410170755931260273174826105244371779977344110151415717168169778095118659236092401254739119862112431024275292009619727976043814707345640171285478029282962484032996251928859476589703396728628133667834144521121583200528796272770003971284672792325853706988084861713530978741030905774135023083052889809257301909722467430367727646598906198022261731846772303640927051963517600402757248464350006783435907024844041127899969425067016148498542334243288129382564849092886808524755146020450215520639510334821622128049878347961689900190220483970929402252874958720637757511385693506892323564011853030115543353454283694698752509009362482546652917676766949467185893132641036760402765593076908569342335851693195717081033063234988569645714802056924292592225080249128245073785360868514006079277954619794368841199611549483695943435197518019323279206206247404754231668517568897728294668062285947105837485089963816074500933169444233650161839292151558796003041002971651255639525148451309042473014664528568968033670155421941213937345424753947886932591025465657207478655325208369076788560793311229563327343721271303547044127727900840560439866202971573744134382486889192191161826486972912932267308713386435390333042367031767781771951996097010193099124225598704664412781316181537902290389183370412040359303819999287851870327056522743046236096906540478114344094539666581508774340878118530272322941827927359732968698966688315493922490444765729053489607976118989024748761291462575400972088317707002610657564937393463396584812005897381259201811592760604761414550777082235484714820363578532195394318186544026441321209644806354476126389492307447696771887256571647117611003569331114590722873090662487683761924043068318113177855601374943455743132627256187036879657678803022461982743769222536084839025019036248858449318334345747774429697667613384891556365813327178680678126243284936869815095732990579947148301428721487465079910471028509758552050811287623126527160857688405596968802760275381897033644074141744364300393991475334159390412169777146292139607751916395215634012482039025585970116911231956033378950508009472120753882902054434239362466277781092433219661518543524081303377498396929166153140803030778954698842259354231839443976041022768011699526243755611050334786332092590415945991107736242994080163469766695154513066379947227975466022041300578559702950977831974183042034735544871775993276544782120731861708392261735882949273802564571370442150261649823080600777545593392805797539448197631663995584279967918065928538915832165524238552012088597408996823817048673153485804458308399459761382017372058876931181320242914509026756613124352970464031785697879652366328043209706466842855085533096968991652091987125915538658214149851546101181167797220573482806661226933671371908463831922114231900068686815537722702545151858301552570750526190310070597704974130910509239980375966962659307055933012882411167069991471036575038479583462356761799329539498326417230874853286485331138359147939066173137828935617201549414701661829068167025469750187689205032087442098653094723711857605601066279595035121353875836780958420248524481725372890521320252161211611047467423117634717399355478113157034671790215901709026996770231955760390293173469161760451384065638883427620612319958918032962641987421581866217270790295549521537659765037673365171122899796737581684150761097990807018450613268229318415193933770477519589686882819188047770516927536334440389400365258380599705026004755815516283442914350258820329395802605267893764758874106058982747751838340686683117435302123120854695539514910003872873019160053839118894669178563882821611404787242616469492049895454294329773995246833398108590366946186520256957774977740026934681968377313744623715809519989646945623797240130779662475343625720926451922612753254126345140792038612939617708819210387226510668489903439967944831184324388731463790303379550880485496600461396393484986280576859285757076901534895821115701569027981935647382667995922100101306823390977850041823291414059133238932677501325909062518337841293048938736022832944653819918756462228400796224683571725494037409871235850916488436628076910989086329602127813365401274818973938587713019560074953322996788267072283934012020814424723232417173705265575453817693114563018366058509870376134803028598058631996816667985545721410883084991917264751797954947119341292778893150302248017803116023464184841313194671625702655019602427279758573034536908306543291465489128196702806359253329033388533579307277604703365212486992962007269447378682378623852748423628577911314013006569199491599362902804981923561163891973589316881603364117574065051645901715406775429319826545607995556957643173782306949396246727185394939789011033219091365093237267115296843615677701580572245865548021865464109917994788901720872749622240827755932840730354999854647422196250418419874071726045814105815711036714854002168760576146896353887350127228834714648413829928435756122064073402594784160532760560059368996078507769789062345110008055594481480963320560675317151052499904625589010722447616486951190508439522012149800434475003083786381850432375825015581675615838938255558399355706825923408531171897379971662971222192478043267891808725617106289824690477715848953225991397174900351547971112184558592566591194142033022981853771577653940950032687960592092426773765078015469745608438229048156793589147069375785719990236634100046120659728128373625869216677882847604438007909997723159802964246417994119012025849636129156759164787235152940097119241907608532190530284324787507670842663165624983606062709742986072852650577821775581201731631565752754683097784019894303197646842976028748659679514973412324543609167759456478375518067254577376704272924536962354181219388257717493397078526434955007179301100589504499732761058476454762672684507380642343086886330058232287008599982555152115029967712427579973647257306133731382678490958646348663951616126958175849453656644298929331087901506351116833204651720587673974952821746771586683591306557073658109653784579803422198314245902436258273469262127642058731847652220465643959109257963655767763254995997949832494879162614800690521903889832630838971239173834583819034274650890687131500599744176974391331257992903705330809233964184551540851411855515664109113528834969057350959249705081779968771964688599902248199876106466810705377200532895504484275468184345488045595227020437872673494655026532570486158048711311840324618329667567604058269105781335693012740132102260722060652202897297059525082385350157569317140386106355753946462097132597204547796518347556984977965085149538354435128974614818164855848259200956738001025745825595163305592610475967753406028286428868796156737510262644083630759286389538345610510497460939424341963549659721156918855492341198565847316036266964360328186445567341720483869383668130340158597467906113117300052835096366266510312963714135476373465935458148934259673954639742122357936003216820106389826249825962327099535163122038640059994502662569326306198471815710902030682734981607368596770699585436309201757084516442619388754903451646919465520942356358881968705573052477980736965036162309302414863309406478151875376359349973702458617413597927514809763253504584297915353571551690151598811865149289733673070435921589771287009299579644416063505456914496536432421546761151067307571777245235315493817632076435450301925816942478795229957324883059167480684342797671650926215178446019355711163421333916915888434141997637503774871219582735077656249936218990770115673139514165278498080862373515174580324468613750865225001603759803252446409783838964008641394478286041395891296030251726232996721113405717637448358622840647952629365927362969138572200277537505784586740760182381600226931283277508706035944537595223269267422179856229753158135805060067044232432409304100326660607576527628063060091876295446823687047341986385399137892366439259069028523352717588621876636245912310831871821752833781707844615213808862843786892699149692604699457279934051505739024520568493105664694843384672215763625946823469484839636906384406969478911745748963864688452208924552723937489708944958223898604923124283549384663819856005128389399238098889370992321298916690778376684643989953645885610660435064110841090286663211389043886794696515971756835050656493488757261177576012612095492417421003969650414770637365830126062653525659005126220363664786025265849416436321732909306411484655887042098840152185195419760112904065397796262818815418517044143079900089587614066538609739725692331962644044775878425195008420233556057098749594473234675281693879433472672870310732999576423091676177316418530904236843335999602637553211829241088787574592465847268610217844662790341787050077743286088064605298828573766074101777068340194595294400882989328359788018978728535176707652681489692012570609359520373599531536080404716399176044541119107883661796144950954795705304030329939239384125275590184346745800705339798400897354770588537658528408482031845989516118988426367241924830259811774202939130668302236869468309399833328868228015567095487415664681646276668763304907939050212013548255937078492306668018825767517275176032335249164525802087723032975846963541684557777297598983521567358587071046677832949431395327635519039616621248372493163466078538386999275696892558966755749865231520734884354124818496882103532229929945593660415136406735495138322362460391660913668969868882111479339424345182308376454548160029433382885911669767244700617735220285755234739838195698718598517096891000365296084177807976596896429895333714020326062977229656286068591338967331469698464518690819972961975245329685009337677965780494763367705426931600498712510418922020163134444519899474045700581461562742092468101573986792478965253786268262415059178021518841239318814299676260035449885760544807764191212246338141493075812461383272750483263345322966724135735029455464344400789508834862954060816636768945356369288333694882930862241004086271715179210090084502747259991432205664578885297116665096695051420468756442498133807508906649638616832945790523781504561765949181580762599682834010482834202365421399794452102638735078709733178242788402924250408559892868626096371096764438504414172357794776780164750020605955813121029525755652326955900446410380013564799765377518736991972808187974956081544955319190438071073981815138764270071155263917500645796080901567230003048194310822307779526356045481268401617331639747510404575118613081865136776256784872355895802618311021612224303115076692940364153410444576141761345735394424120628638043137492523348212621020208555542289519896192666950961553718830119163780447923044825198127589892336044517068697858031496011991742830589726387544605417166034805464585300312681241444239920079121826566544594160020149061745686124420345677683545605541521450581949384216658738406548260069445338646137760916248395356757218174598291196642499440644281208390230730761412142105833758570856926363936602227867482450699903908199780643631286720469721981972175414233715402815602887015707163883482566449272331115087719174839834162005960067354766286496797137028640285931429624164364791951532677858925177741181750057304105129192348139430540067359282103244093775447874064723831629935484370864611422887440132387290008692105795111220853232056550517545887239742888663858919637364018625848263282340030597127099356775085976479634141488413815787478070093720811476689816189026720097856789023423116160811538557068152606623306653599279261601486676083418243795724406341629846776818638103276338283047937393489238813199935191831440143101392152700431093727030473566591557892125576219391619211768057525974818725716292358640374110251622113669872653025391319635416024896096057198697387282801986176716990408437633313586600832353008696991517211557151348991147379531010296345943999698830002902586267803042966322822407503340346695970698120570714604434123571871358628241437298720860632138873772952247771642268148314010925186428418120672881411327874845036788839778635937321861583255782460572394857657094929873974064889360836882165245080673414474485665254685117872849526696076206799208317250725789195022183635152606622409822592012923707387361745806296316639624285663758963001596719478875756402685759803576278038463754499424894273530922736794593063151868456987712005932862865307690647998977605571548947885670557479696738516041638610088625100620127335055893417202910252746621708013977583104474893891196063858017330798448408808393303648083440647430096802127126103315495903643193549182000413650525879856252534722464422253116135989488032240239377358751382221149586985343524491494401984408777460805572777479768138154077547730820272539078620951403709480198112553749416124922502691463847718943642789947397999914677608911733364055082195916326755156895899716041942967100545313968280253880542954868510471279086129094803676124833195788783148978891084186132873937822080223974713723327821830890627207612736073977594161214060602028998556170494619623394292271440770138942230692852206227476990945227964033370202788636590269732338851744896022425701793474526817014194652155201451521803755457908641994437268657892259559487293832463707644260969999006511100176970069435396744223159234963178531717972922095524410482086114311265639478168436650618629128610258806874509895618897753816802771125017453264114051084385047733457346861443631477209168165927362498945104931792114720915590030830299184005721683620385803512361700811717901422378704386538290850255729208908475141230559821832637927288446514297473253669774222517863879196499620994994901915059531682170974365551043952395099279248269624420389718628084251320331435872986684516353752462805843253309388211482817575293830725375735828958722979400583328653569113026986761112505621522200692567049218577903901540834254021515805454641539622427901365592953317572510141376133997400090827346526256080256726981654982811472867313742610428194631576918498123830685850519109252603569371902449638019395540654376605125490303482179972050148178231594771403303660861388746740144510731029775943044958630624453341477474844561157791738793131534275824816103755373609984098231649510269806330926512608779450885472470857699946484092737589020682127129321771047108627456255054075089588303564198979701802598863902032091412498548573011987319947060216002175475585378831026084153113798462992506111875580483367702061042742661685346677617640634262065645922679111387148923871124432170662225330320638143331600158842476965210865280034937946058451336033269668579637700792342977037127204003337932347978682724963250296888984009269816351137594471653519239434979660206727527864826569145693737400927458436603590517889327143173193430559759639610716936730895556373576661884168350911737575472062712440442501371880350686099715780306334016971135022174625676629727009393940139193442324691161378400763340775375859696228476471021285250002744607656998371562810234339036012887771652648844157607757769832254203214332439248281017863485212510039342286011735600425599607622622875879937396477660759493246327959512630503388698775228805043120033366989531707347594854512693348640676543040843843147133317279680394487865750988699940139098561694749747541626221778165276699230264417813595353560817052271122957220775636218790212340118375921507625194395349811262059732756191010629364862767485080207733610479663297139679122822653277751157756250414557307762876647262705837465449677520185877520534839959114200558490533020111188625979270234764043066249356894407427383792976572162924452713793801155636456021805054224682048091142669205906221154073771201181151453166111811332491992413173597809774010737334258687920729058135877612465241940348102356953400666304548504767620309415935577602232410089469905488745365502176392959632616075971846590708953919397497252567177829111938749004953597432339529096336775510609587098094331024291101962239584394228291170012908824450136184586555373282109729899724198982140863150731209160035518673971243494835114464319761560696330843022398694294411886477995277059245270451135136311100963933103459778200925843038305372145059885820463530663978829346461339801773838707979311339988619026531398186554471448625646842519599395701965749757868874639357782890137252950679698935322508116330227294564712714498644915702729156306091222311067599739484022098869481913702465095491764358150389245764610769818336253564877956969350222588769942585700628890402760749722236415595331103254978863439925829818470395079777905958440715244256704056941900538177930229569905217742784363104771226965520684775836952200782964598372480542466976562622410417109810081835825195065272801901838559436602462558520834918895084975076257381639347379102529478149379111449532324469729681823417695091276619400840087512517635404740053471289969583924383597511125655544190592448659821049138648200849770463448520171534114546996173119643951637840602631351208843350451385888264370481428237235058295863245822217985464777816325672781906975686482165694652309297109108365707363719114690929448428665902907759480534709284906784594993262972176668444948556781244874228013698341930456435159955971960752784184476259345636066985795793292883619077844587535072940153831148519883287160095417993272225185666448322887583817114582607283031596239701764821097357595607265342660239316590230405288997236879311329924692001744796858761479927863993529374874809665926722864595013275501711830982634549821692994379874346498332213966229390484038492301823831990121573410171607166187737469147725448764460849082335783960579861739981339365415669097155515367553839353491015402411519909340999717048204745179929904096358035841778095072153232593689903126306613583337596093284905957910482218365986594901531700746354673534056401033065606401598416823451209351725843341729885334130426116468576042929189430582120952011985831397124219486308276490804541283093779386353661341084432025954876386381797302477099747613734480578492438452867853706705267650711859655053075507247538524056665479243325708513194194948497026857076991023339601340480358723990470593240654924877556976834471645047490060209675416433308908232091033227509421706426264464226303383823013432825649207512574045500665821156941645075431381673698775807952339485814717271518359424971373345165746777085739006302518506630919607489229510895253851933184382216048993089720653500740675265148920971046613134337969537881263392813062488910910427640860509177475896798411463803074343131439678717673534769572458810632970583776754820064374056845059421815955262111086493023063664777088179055932811083138442092409959322655588173940293863211493116823470966213784032750845768548629432079030495060793438084763097770765116777765215252668506325518713132573756607880164631919714820611167349137421790003195265795338762450899567222727010246975404954178635826755565208468581242079926387373046261635935948244236724123426925236616119987219468258645778827829773699665166602748207498428489542282646218867663023056682242727002425272802903226823600112995263922782445813292335381932760306654442980269393257453773921830343543693470099403486620402784561586156772624647771415464201990609070739485102633761686567036281359080267482926074916033049624616269486192521912327968323088128870471988646656197621317819572147720236763979998108892959963229100370891814805379239342731699136295092163102082412548694867302248646785511783869433282745457298286113339842181778410150841191764657724223164108781981142431979988047047554008985937895002526283847761582202595145769899399022062507358782227720743266504706442357772945063339917746619063020092965943591309699180024456184159199096410557289099992577865529972548744367475047034240790757126926852949573420055116455510694931973301551650525741052055439274976190565837533354699770632294740426478165670412821507906964979280323850373012697044517001803080117231385776715081543561451562852831127683616178565105790464663353376357176642491018150171114402737208043637749760636687520194916117473315727924787235014910964871042343912462694233491224795800480450066861662707706221887570714567489624025636169163796203775680904654026904087924235612145297258756340426609032089115974136905563007643451854692716831023684473889170277847810345160571706904736433699634531310515878291849573758361240355339338522174417310855223363580083143801750609787654648384292057538112088184480874780978541091473882027939763431220760696795541530947373270243960628705205576853909652407025663364790210594171249274784629556325521476290196830969144055776653452797591811544029576050253726705860740434991343343656158261167768317478701185630524243832477615990517603969162626966131140986554464879355968775183713514524524500357999806259176761319256881578912820335901911056948743734451130671789396880740018349823821950920254167952451019583937536341059353119398582391478890838748522850233965839436231470017045293955557937018195122747515306492083948403469208272471712599883018832732444887750993988935943655356873356809542429010106137731740899469323698186287051726259335908667172203447697209793102016168130136420005074660236189160883071287640898434475589985225473609469506606943385068632577092668120952356737488292808211876178019359556906416134744513107513910166398925049905783203780692653981323860591367471368493512736985463065713695564993522255822926101246434757446828285923850573766498228379027022529722818721921805768206561611334093387821724917891692073528414915270455126186985560178744477102123438246110537299029210533151239005142502959418719560391222119811107889380586584872738520467356552804216315755120067439033814365439794326886750637778984585401824557135531994258260570757765414485735212372240774994854933595813118775214597423328830560146951677195373306593968676831335026140178694173000685228818144953957404252972619250643756907789958040221990022933920303159925047068853940156562395495269559553994299626468518659518252051324437036275595233736854754110684327390000876713759339737082297296299147481294185177173680958172074810530218540097757768728413194000146997640272523571506225586750728240977043670034466760615473487941375925726978743309185294152502188266490991013443116955053521483296778476361097721399732275980911301764639568711487828574622439147744277964887566430529343985776975323241216571824829987424191867496951743023464018097991401299628194988117451071599885080488720465215091425814187158304088266635528509141892770865933751170969292806650453988807071521276804994343224398684026382966967834624657435116306416159694026194850890230492878008534542167720161101405233902377192101881817051481508958281883242503326199703402527645053737963408196003527074760583662716132939811027389321506934246652528885294393540532898972061524172052791571120543164403410691199044968221809408685640939865814964783367666015690404399965936159098155881935146500950158882163340544662923826570711810181358289204294174252210098058352655061533441418426754139067227153906274184898071608075487757316315791807380439644717918000959077643665866589324302367578898716042405383786938044832308751305387092855125138842936688511745037889961968439596777209765954590575639511742330931908029748288547477130429767700786210697938434137009330037719859226861802706149720990760162298034749236960905718059402591888983934386339114375147737690217162695010587028356573421386949392160977093636248680960369490399980275134149998376579589926006825196626692874482338883252882882610803887428622194963998491966793142290456871413319731935274300386776273649366118278965910504623832608246032873694504286412160271247150115780997451166910574968730711746725627398679550501706519262718906660550657960928737810601658965711950584687411417230450961374860071595092008089944442447618617605070833357281934481686555612314670880200469324718678983300574107196407373725631568908781410055029781863244581354533361805419738424515296469993804146842945624621060443834710386938542316836459597494477098935693965798384436110165569092727853745442071084603578731921828211923267229983834703309621546066173718335003853404286742730864696856196274956358840107439919342588902343928340638777719956443933877481537142481287334844568573777322754952405564250037537696088155591562927111011505501664623949983475418328516197136242894353133929224508905526252608812445332931187480838632784632329251455863794577289626197726072123435593531211009570723403676587386407795026281931569166966441732576035365438605690417468269460987563500508936817850850703096117206698478402176505540571864382914606686118975121729655563607382413157804359748959096077186915818976677041568213560475045191048593495578572043720459804508218953688969562844432823935947426155814069845297368519081431491974451210099462791159350238027030730875129763105437466307313604286962690173071478846629006775598705094408605785032394433668670255819970501883131273849168301624824552474229277406293135187792856023609816449583235053105591312403174277755310416917053504579849612191077227481742704906951103436562599441978275955074573659771820369407058170289347979844902166654171354402841160535289525356483990224311070288037348318990842339321067212876107219713523036607263472671854688450519937952687762546594531938474196118565412736474061592337433373524473549106182682141278128060753606443819032084675087088934820005121076541872088893530033990971088936567554053007066984045346266687197373392210595795534869203897236909881411678897959565839640600769199616193563831440924282757436918548577599235651253766193770708161794063515147721462304735308647896646951408502122023892297996935508983975093847476509383324218305018792321525663114098021906953892563711288728219364341650095882673550635754578192674099361119622289213483069991129803250819212429584663176287439104550673779342672143555121608419508345459449032900212076282431315753948747916884585011447141687691117306772489306552116961109067204334907131828470232171178481343540236009042154719693109755178190521036891421824862510919661972248521868413294107103910463066265179104012177012429381544013698023310159302983067769095272263559545238913522206297278876006084850423690309567865406093583906377147050352728716793647022087337651992564635594138866734327981063992610050971768627293896300087113679490148555187378390356522975998604375353122016740475483355441281853083416780343941896906173397614348998454657483960853802418129284777982455070957918048964901819802171035125818563439200383282057410146072523961671175053636137132970997515225826560142112103117964352085974104215525749376492296957796186814053111145617502118488763393332524307111077019627220166670212206653592019875587504328715035763983150251170074710138099296345028723970565664385437848025583892988367211341076099221429434663458378291380743527456855782293138075219218675137516117076209405526202942764467132018096769049329686282744526063624195459601848394026271224590763666634155479114820143473331194401483930179896606925287839935661808853791172580096641736097276021358355743242698711442463528206032629881421781785266919817747418321511910726745674881637413557223236557101240590200802973799294782960797629543709862413017736416268917311435917758558146536134111726806401080485274241518519906087330081498036231081086180213247077895729610831150288182722434503303761502769811745497307706377841664518551549109719814410106069153548286953138838515611206502218508057268686120559543470406127690849416234809802191869325182104639536012600107944632059424844019346105621845853232747178453434845564472445732343735634991963753382265389598723308263574820525016754491961721165422498861186359071746515948088111262833393453259076870887530568167404630096611653132850724241699400412908040900567628313506881721439731886878603083647597015710344762083141560688534259003772472550866722099201671408939380927991133838038283796241787170375128257478817704269038307691936155950217186246658115467117800101000139096109138895842355050302994888078446959827829388401975249303466791299130007536200764645747995660909394318049125028613427500733931567065515132982062137140993270222389419695756727162518800620626353570935248539140462268822655201938515643385576713791285250806636999523295553550918406474960239371257886472637199566979970282465225519695453630114379296504369615311516325788369897145214521350930649408835155819425231312579244515961908320137026818497128928630585857600764875775712003409368285939421898842331268414440987344634552550151235146190502327364195922668523416423872982809300550244657705161653021698401926247218208892576990471431183931894233479972111282472302435166069379962807590138168846241993182904778681570927889948637837044283460687364382416143802618068130725612314878048230153453678938714562418627076384175882542289506250288792108572191763431325555146897691118398179266580847158537231059555664474078046077571999372638836864780124122050127497262304035614336390545246094090140219972817622380186370361168138475325782094898879400214761293014872635266760235921534188306632920351166789694817531524619717419313122963815673530482830148424997313119674859331146451193574889151886584401067982789431030256494069191756084743038252950085686201331439865195387136354981622814463814580675247659474378702185424264806714812191927702217471032486239529943723282207929422963674845543587661876639978528068424937303823953423655010304588884073685775974164815544517763322422549169206779723378912011164777340558953976563975945692226240528200530359206842512603376884887581788380387221006020530914377028110547928326931377168836482641386585128946252166704905602199213283128385731672230593587626470580325016885283566332990528132767209380635647342192357754535587659295816658373902776376425375094924315079771461739609686507367347916293648952811352133338390644087485927948801609669775389148605818183359231855776483188668024729908490796634151832256099504226366716663747965431481137198412247639318974168506474963615955284309855231659077351463547027127535614059875849726304341546582713657740922382244140670656432204409514384566462121712878883283567724038333170632238395120239836821648983309613279591125689033269297903769910746021620201551876800630277414969383319180588670782533563883429424870942229192671186352059480579496850410391155989650863925820473210550970697796129255269960769788016232936726304507070806768817127101665146823459373121333838768312828689757424985386958066483863022042241039586931809301795082161042115303641154763092634597068978187247560641718940433598291001544300654801475859984948074010071818663991967864582120119206541218104301113379137515939306390146768271131762451452935788994847409847659320236349500999328616736554614414203406941036310363213273595856169903440265385125366244092581810375871885168300702611170475959904213329235126348682392585316395450629231080026403238469795983997674194425227759757830581671281298461585198968228427359703515265885174767679916677151519117793259987860625100189232869273895345010552770302276421757373648112628166992284358591060464270737559209153130652601600765636838226657547958151680755559795505575805108948548403324513158899305488054327252262534565935662722532194106604142186526941824447959676283106987390245977624655559731136369466526862830909603597642058090053660159813955914393943325044459959451170985628404204019877287298609279730281379332474864289124920276250947398542639669351614368531090310893922193946551475006756695953128075586071730253288890800979156798432061720218586255159170247864058594042636229613018030499091321100215268352510274525935795117167742020262307252769674804380720046295872208556352570004084230727401566163362159881450031495116713345186070158230544785681989208242029677391521505818056287621390115554108416838030860183759336761377692931792088552961895150492633329912401756122098820017916534798796209499133923620452035820360043114215905077871181198747451555631829823059497321641417915752181240303505670733564983771789248498883784963842412002353357226785988875942210758304442199363181364513523443792672673644081087283780380402340931069487028073750830807047023765336605203846219940769568175637749394870832893725557316929641497962101496381867260241525178472974958035902341692712134683794546411124783792198815301267446112854482591825945195699536216408177485178144387768615388505375528296369400797030876447755200458428245868487255235534153561425052575936984470242289440340242663458493109943120877980062714217011905070636596715365395783003465005072818440374239191299848770029326801680561111281409637075423559724267689740720639252631658093766226122734806013928452779254629162707388001696205698754139978718452931045999878574420248599266046095462894627341693734444288956252715461976610152332054220434610801930385928494228731809270973714785890997550531567039975307779724996639603221600287878575407525380666362387266146287343901803596117384426924984292321193140586816034224833520803388125581615578686075326231766198562439720069511599106883002268869544325316446971605923641970958586529971811658481113075485454941652922598834372672658663144859778664683809212220128634462378427748147131292123259333436281949721915882247439635707408691858903913737642377896836932810615118292325490379632143517258261921898628771532728812445087705583151605393701843927082731883772452684349885261625444827814290193075460481989886516098881274236344324652428895310070032386364441691171610319639296830860496233551009604519803242879328449480242665316453835081175351835657596793965094322226124606149368901217433404414907108471242256673951649091548516095785100296958349490602933587122706441988047874392103697252861103459120880576071408193627675554667122552980950687297077045528029133122666470758646793079546898736665006863923479668443346497842370125841743156220952518332704453149618574481440003861298370792860354604533643226189585681659522646979721010255468061905094080470045844671272635489887159748738992078881572696074181336750233473990408213047735105980604535270200595210493844511559517311883357661713861888500045396890472334452910964904983036126117685535089309848013027807910086158307733375211315095603020286305578201803680151150359652908406936976170516586675500143368255434074040481778079040507198845623865124979049026100823796616506436457733617032593100271354558522235116765529450659854158452302299611839517192612919709390529115310099852682462138778207843421722148692781146090917252355521981136215079010986175466318887115473925157598313288437130489274903909050432727879658225250597493240099093682767142888053614238547947997316594677774050258853111623471975589810905672504410390599732996184727498207327332021367013821868927308686455159403030219176254035511591604693606068967811657010171393204883478449252063897061093281759521301720171777135590752615780253865041253396764831365222424195018439726659596709297911890840191355305367992779510969881551835178518745043197480532730102576903374344962056353207987872955890442052549988657237808197415711720709568320036944327295682956011742629910950092715861056962306743042942814293862256645551669317742720796317904935358867041155908183685420771387447996037421841606035600929523866072871396863822838934027316594338187380711167548997367297749129973129325424287455071189515942554622618003552328624454378745804311377127086535647455127368489727911658428854284544507549943704643378828769261896345324949275345959224212669425971762474013503026528257900366827596867747140285101838809432684275847499155894441932675246729389162914754958018949789185352188452417149881108786011574911188213421623517543622283505733828826438993689973475843264825102929105466199827685688638298439854275872641385028281253398116657297597409273983297990183199638417766077083009088379234293279772627897793992410304485043399902499207946729805482250401006239050531916139222513970730428916598454678724938638269321069955624044678533546954206060898823490831274200360046859758273427770669791001799800023754414208641313402092791072234327546616186188519469872659263508925014996425754703449372587383114369563700496648271880276609291936498830821666480338110926985082792335297009962859563665288654213641653616700936559605055195124536885906732037752484489207927533541127174348031197594608911236040412913254789875468848166459097297620283391067835021476021664283162117874975561455991280406747411926935800613370433150601356831256399941997599464631747678084259554210535612582793924501792709600715502686648283994539922189153530775119262610517061762584384767379709486063083314188649133969950672991419856315600895814418618073801310587222079781530864997346580394321875086569067975581256231265690765966499968912082560082917951126866244378887629403055011576234588976544891861613648810556965624892985615021822239452169847491912939557005853217214307105699755016483599404789494217380372701955867878689934128909227392193478791786247058265362521821705018791157004024488504578069625376928276758951872772272729161202732788595235056515104547804467872936247115159389530354077244945361980035811196631276815202396472988242991044728019983831744007103435192945432851564871119665282668500920153159321208646882426786913610492969983052045297982611990682354990000983027976462879098349902595615879639867296158363294110184163178296227061308592170928849264102734158915593963059033064998412583304067134671806002799455603308208479623579947575893014331837146311175757468192517613105108529652964203394978110681121022049388180229172858708707339580284674675953882324211746232311021160830594109028875547192737416791341289321969108925401574241535888216689939593367769902474314294020176608157593417339413028476745150147986701203842114572946329298699809251584768222657802716664224882066532477660773829458042230591975231941146672981152367471476744207110920953063828400964786396581584142596834584910103076309974986736623379835076358327012139397229546422930887673179532217323179699016148115682386054922510109059383204095813835989908261183747107219413818659235773409892877049257550853864901448981660424193920725046290520356248254216987346460448013360971705450890314741038537815264604736282221195503740215973563530567635461591302715707099495661608468250144032303298305711643802694385739821716522195258015702542266465529263643435026909675426711888113226276992178446758989686395323959822533574583231775422182792136348821118165393092977854913607913575048170474484492737538771448448575058546161280808065370218809815526939150860351946948882620299494965495579929840056736140269796720246685407277041409956300667117753096132688099269207817600051993412644366795416993263388456522324567863340542269330772928049743339130571234612398102955071981664446860996895264891753080015250426709749843138314952372306977846968930792053024758954931473477400592529235943729856880116044543993288910865513128492641517363746240455736218384220904843512708903138799495215197016103562507884240772606704968204361392899589011706678815205426741056193538371089773373250059464859345573861705199532353428803469852687672656857436405631141634555527771436691480092800287374357517714171523845198903934932383875696670806371103117861097725521159498328889568158460501338342020785548908444696497874238080175549617348912885053185821584683549519157846357877574091923805282637297029647659842582345764388503497830189226506736474624162864587950964631926294564965624625738132565036752600219632077632144885555506563799849855090540431413083850286729572185070367461949295658077524355342741348759219682404545181827438444438928684129558639457223114058411588888979282605560204734194314234444180276075558049171590996239014968391534274852379622552393879743793811419695215505678705618617383454902636591004586352069696056671290927579415700348680966381548532217302810894623483344238027594022531520026397956867825083454042505836074727947593479155409783661151953134474313647279842532433736101209608196384982532671167026796318579930034326993878524193541364679176321077001780924185192614723828037699384097704586551112456016444595332553374940317546081756659916312195963677007768792410321721915836906559456777834338963183652180807320917453710782769709695915300486928490938256455709669937230671268844761028738550379330860967690442673269704382788929166802088457138723365090823978021162888794112081540784327803018914927647847051408030502414732998043896555251477322698856917846786514734646853265609703866061432945634678938650923167979081823687665781578982028124724977271750089185217352606688220126479663306906143636076011192358437287527731522817820767222592329847924607503360653105745577939495106727186215447134918028133862958723997047792669192131869186386928534871876115964379289759314292535626041963958026074503272114612517042239947836473599322792358031502213024019259710850055164125003431912741434276739011477380654418085437855211234462088420534053491026555437125411195894130637340821803556600998219548593378358958953709928898568871734432202701882702405679883999674452810727470303792111900877493916000767085229137781419117250695702984690220722549084300951949076215677261560292381835699137607838069194898372159266544575812895229894199214590466550977182923730128185921056088489377673834328618349479405427702598214051635399761008432473694212215775846587116150950094880510689714401256084557373039029847738622360525191220508380406815097975541767619532202984114384416851028630863134181650003225305474728152628601736904904992927979555271120277258965705290967881099384128551653474921979379349115440085480629093905152579489715301606677235843589924033221038931420959572018938474081015775655786245766551942511051874666006823225211004379672916145872846342468999210718796526458253003064063015976799426059847959213182543247639318993702507118085960083044748875377062543152347607787585363123834235719005168092454797341054164559084147136189807556761223252704384235897752966462633839082801421194967353669878835522721014289578493819920648271891421621440540777930124552153087426705485896202769280111900171134687592003977925581771105956760950989064358335583083122057541297585910083080429385224033902902482743639254044607304690483783776842844376243710203182458687593564922456257964045570584283815772632829026083669009952465154376704050911241178805862698320881456608062534976538450423531559940103133726045864352100291211924993227376540597082963943408401970415678856422416331701987031037873082337672842325629882209811690188176914838181858228095117373059732672328480428243114184039360470839568518637357476729843448935078413899833626179915978957015207491823552059737548847912479012927106510372840499181739097669466993794298841677869981639269697844113120609902488332264933737087107869312669484665371300408206205563068949258536897264538261187484895479922494147975004534935753165808592903304811812943822845933185838194075082211704118322482652329413574477917695228142442518507553535707635570092852876763785895976542349258204505623041011566338382578936465560167434706870295706283276214261869157136709480140303129416883668281606837407115365632085136632878189220329839984339778189779735839770687541151938267426464288644794973921230198009034163711267972406736592965414726955650206833526337724952488267914900084899454145343750339018928581502260513280855480787227272470393075351460027711910325511597402020807922403640368846771927746026413488501458725129956510512689048567781294283155529011897330990966902356213772846441108366784393450412029141727785256259671402790036688690371318762342634998321622743584721492912758750818648739956462934610053376087647792817563408847031882421099865723189042552728989030122433439511371662630548854082237335092863732153887958091940237130760912216909929839703691800794808684580336456581461799673058092570689245422713002264765769199711820117536461313892512485556006748231606421229774349148149890694664588086268239814861068841946720422028603792905797542548874677768748750342569654605613570615834945326087153491268546172772318282374084903372563475817147011010830971368283795546106261792721204401216334142981314843988874920713093614424448662934778086630767141079946208957280352574398259433395205041097672168428738204308498841635395780399382909605996221607722981642600106729570219925203893580623726947320393341733443960383250215823646972553016896251447655723488408252620562480096529679782087441901667803169475052405167991066150882776838601800439630984880585326071181247869989258404493477060053700915118081253920655122268269493227956405138296574331392769305449501686350337906370250720381772978560312134622919699372192914016134898295419055794411819413341419447225436327281948132798429940599110510546614008754962612240881665228001396795491488469634712076098753079467409199497388036231043931229630130455762677567518174126362328953177150042352813521509274789844566291231775801264777931402567419879596862179156222481536444776903171928677085678832119823227255810179111196520104310511875398038151286410690492177790974268024654046734418545296079587311269794086518908328405649446495650771896347496490831255583079549874492224979136368500535283381364237410654885355056834324427984995407361211213629026432488545134651728353712938166886343053109752460393343512543415129217360934583919105483246814898111781767260658536708781023519630573415167358830468166886868756895350612535367313244799273160149358039062642496746320820548412962664597347680757503237028285959786881669759654750345250447461635508906930312070947958050096061778133554308268506176044958056002447613539975535460302656785836880877625463036044729612872535594321572270724468879305050109949751979107768674670325203162817552945094333032380463932960492797821376939329541353024541174856634342918892753171155261378325131979737387399351089195065649997343785954841689566209540338994190345609601837327956059540626328924507739478207994051252836752636448081997477546852314250403940687518896383996475604332934743672410240336004796899802904149692454819672691275850450634057282503580129146056919221147491906068131595283454104454252598884872163666336355725912981950916915432974303938219377300864707441504878684762973537330629374439876851435923191693628714054997946963201517765731804690662141806670667577525232247633581066551770178494698743787926663837755395543108789975820117433855475620327472065269012528891231204530902244433847637228334604355754201981634221045468217060127474146659530334311845692391336642172328136415168518691771214801986035486540170619955588363330246005814016528582503361175257852613411953247294844652293280213031600930405065345920131671065440070254894080924562043437836357572183911683936988190791555608645595073651970396535736685596530626728742793262171257377288502533690770184483806115930196100767576322405607394545719875996627160039451594034578523147604365536304725793525529875841233733939400546427656173232444631240140570975781469943703453515060072167614206923710823809537213470789255039166260608007183129182346079647641516352382712142576771506459079324569154742864951124018028306431919777553675250161757977571574227692072274949000224795820486959876329406769084067163417172100115754085619565116680434348628790960525994713229724481151876443231737475474462600948152541911025151787471252024632991782330220944092270840536972974709163538386397041736453092784148778346651432865594801939372140947716690608381298433112342673550932225284651566991749325097307559881445174152203013659667964979459809881620464764403422020961940661423296821600448645354252359836115711229940428417551954086675038997693977405187478024484572431122698162028906433571561892112399871312862058729354476272298897943731547438883015676989422503401937832591883783755832007051390547985035577392382133174437854689985266877005069071379078531363575409010953526362023556190144515430656350491170667100951574903431237546630479720417363825320381821394650862475704482869238093768646697104358266613421518168025452571198430961935997869416841372797907903350350542262108221532735671217371435012168301416879273453931637899487498256621175130639553792007581658557504122620642140182196752065544611037824909856965565716923376444904345759720190207065839981009093488060020050363130576378666309030248700757319209296019471020721684713581972712183282209131520775024769190598789005400271259187776837267806347145768336379656626278779662254630538403580902258470151197564766685090257497239665666376372641612170031910294013013824765653785985477509745007760444855638928700612572105410145933516130824323838931879816286071568368157291060552393273353157846962259315967778630145495200434859119644944791763664526706610119038260232801353729901836184235608834326149605382961902567450991169671557666170343437377515892551440627254440763856145632723947950161006217617898495663862056740670098202868558171834877741817348336000562980175656763895218863769992836178433474145183980766208903909989683500584595854645823756103763318960361650725928971517133842785553826695105685184495990689855676309986073893034825805552446587745313040637738432675485961470130861305345127533325644013766971580880004819356052389570824634123739608059930076643917434148056199060083924426363665129425627664654761081988832601876386501212053830480799672937848979665977320553789706110829549401862712026966487461261670250823283941566622178324088303095708696453025319506689184986636179740574023781289832734465130510667716306553385285524787353675731123687577158506659480508095894145738383344818185940082044941793609409797566195935994387313362344235903474706399021087727367597125719398847372684361403684359085797466728802215455655805977498877234127618664190367680163978894934646829529256807776737770458641322932936054117595018622256662152366296571992666951788959629685805865273559507588972392253980738490087404420208846623725719697425368189614780053302445919674338741985631861332512611061443821862114391644081683147330421907864385842831900309518374562235139140310033724885683981630021205516583757405777491369318151040465158638219071610392152122412466576002057834438754466687352804439493230673277088926011154772334153299739357645534520912982508363561938494864112257225354257077244988669804629304981896418259094762120724391251967816100687785478718479723105300282499406387025556895180721207003000896415006284124338174001548475561304692726150171485660892711868791996511281265542934958991630113074406418878329309183367231128239958932163588808414733728629387304372438272501591001474730171099129753444133083628734828659823983410674340183778533334311415572308392621917442048545374491714803558132951252070358383792974601887004754980349686510167377298285702330362165322581038746790663307941198785130160173104452345779754598006310486155844052538632402110528321100328150962142058051958975623366645927091329162683765799924172614487812457619124543185944337969788963382379168024107029703351590698168120697882707211152575779654493143451657318876175557970104375549793553473319426868341179009085430996609508466833119705102864871227138566819743129448855432871030231496240583431939212308482678746069702108392985185391655835598833561698166111916340838316475343680497920245747087684063056995662655495698857152476813162730816132260039452178955176282207401887800160471833663197060250883178265387045353801108586587229970893603541199137900131730276298902110486977585716813860105696711982682081771508728306857311920358242975232364023669231811326627725428667172236201976707130036691273771819712159764806864927320589339447706835857920374761415428526470062543588471599180387326771085812487115646614162500957338122787514885394447457589056506151029524349751195698116949204552905059836173386299199540365042868430100081735987483658037838282729916038273716668529711829114281473972596145281821250643383645544485455254073839395890686709957329293849833209849056081360025093022252301930527611495742529851481144262908441254218064525746453899371596833741282370427020429717288175377960740902039841645257230680864721967852287635123782528583602619537575196834677106653445984404447925037656010033009086577929131642861667698637839497813256547091259116505708563404265716352494290357016368931929170021954766188972214123318935741522752766920084903417216737040725971688810885910627237261647382394760355339276281815949360324675513695956371948782254086950567306169109661421494129301404035806437150368982257179757071930161402557086403618368130878676328483892647897358758739740268139883011505188903400521261529868862066314986742192542079602543695982451661052717482323924184017566725603227775155814459615886371477643281193935137616267556722615492283648298610439093621437428872781769927559696157923394718162898070481800071674805827097917134206482496599066519361709178161055119876945760519195137813418634175061345520423517207178296661661017019976337374933132018385736479151747707505226418177868361905547871699575328804106714754924944661364769613766004376852852620699590436672872741900903479488981528989244502694135448122015278380865725875584238763916963329033093970201648994658363550347808187072504281201828866440929426308653477915141049432323386694320139694775871985719081843013517162707134152212811210784210245398280169415398456931780314403467175566821505726103140416168757379273086969131463285708594607204070727562111548841295060101240450239665928608184788453453169769439284672277450762040089196279090589560170826118518400280140233579793092990993481296334869304377189312703020683240174474875799905239359172003281227459894740665377051728036877789687032832532236412202643820173794912528773687099407169528749101497578429879091997020775637223975672367401292037890291607213950238835749440059727398784393897964037294449581937246030554240222510582420164205196505630159918735317723332346680974570005474412991776053677265646577932047648627817304134024643709638117727884861985874438039565910564015419673785348840691015397142092775850084074053892893431039040077821379203675623428582412027189407211381258085713952700149594111587382627700655687653632916974247417009918754573267765279058547451354934808766599051573525825324966026949401026661357971779632031002095764561746020512380964552158171183362294442527700075951197824021571712722755301660538582748882407930588684833968688875021236523584419177335369805829835743993795744717964487791843005064854644569725117816997915307639677229801164985143173879413294466754664448945164794407559873670602319841429735640061180423204705360630466969502331258446243739658076856056306838200993857143727525713081721461943901256372435095086358428196378142621897019511122503045885102121010108070798663527865834778526455783151021269311621363385026887464478819211063195157600171141877950087444161744307460891998891511891325432368468110876534208530012807146935756960870151155463405567536562046565328615905013021440580803833892819053166056781641492394014591061557849984085999630494197489756442099127727105276847143412510883177253120287445217289339295452988440871448074681447810380190849703901819837246422663866619505689697496110689877280295349434113490119888756080908851547354342740256781385054307460273220917862961525592723049768830087244805964797522250626079040203872785378466192288196166678319255275225801446155176669544161114426551469516207661750305143616905095406096984966759277657315845397577456554645414528958489908008307702495423980465787376519005742061817559313758102342903442102672180330244826234562935159273843242682987502859338991301433452772495532711833000745812937611530121805989584764431709647029524864979783582957241125047696340714878786448730781962335801583297582794292808652024157557779328120201084144394659517125552229178894491491988871114445088370110639341694352242755006987940652272162134226834740393995152277086914106856954701631171377847492235300933030229950339398491736812972209281340373731758560213291874485271836241189385517844453631725756884603823330461947476227754775987805905534097271767189862344975243802447896759203189351081343800386158716927023668238605622827077375860554170683795901059646940820637351607366839796435081087373530244284210955975677942537453184526728560335752019510433549595990189646153361298712173540320594307411729357778759165675508824520295964892528940951670916795511949973983689968474137199960352191940802634373541546409401398276214784586621233693705515909477758618104142514958729977393295998183848508838121031460200386801728573096295952129578259028485930898040592841788158364487878135867852842950596928636290707341716545168704709246060200452269846307744673877325395283110606108908559865597198521467881678514817934391943626044797567370955687016392969130914746983188808351808028327617229834740512716131045323429265162248799990335942261694781067026631324067390908732310478272904380413008064032423378626720858708407713790646707377710931642582529522653281849083154214233882240721257078707969979459061632454738383391903878387768447529999231814449175919302764584578094067641612407807119095185477000659055628833983869517384844111272312826822826351546899301108510543794300512240540423721960760332657258432143059347847367301264360572648636409385141244994320006653339267208679808207488542383894717902207304179895728885262016016428234822131030755051818787635513322198786809298747098969334746310513375304346392536845657346075902628712874909041672553511920412398231773906571537784202847125347674012766574992288645892751520779037941414161404040175094553564245706183572832436933693136570574907608892236065716070301187294274563729767460999099123993069290952492196493746271851069888413906143545334009730092284270621130865274971083541319098175057382151817065404447119687287900766642299261136986087994886844872464366073520760982876114619170224582573163808037922675111164233251400119218520043209383752601200420818887835206845727734616540021448068762701076127060862850583998667368856425271972322898592302766220848389898629987102214452765121267654407256342455771862728601030832339550210071369172622037725010052037645093091141924810358844299271077987716915413778196980370809586114270325595286390022225326309984052915454590024532899996213808277178825928335731329207826730937421090796946457095328915918613058465324661199601005628097901898466429051239949445488265338255879517964086800274588297037100726455431071570530947503922898139496623553263041377490250410021956563255420173524008316910659368955291150501420365235744995635459893761737599917535104722957143661351560045375431967812999015003977505725932426779755387880756530619015814432705957531917012298322907614844600197013848877830428378400886898274441645477513073269334609825220780493389637234259284049052647778135596007103137903029384374419055748179859729575676578168382591384962991038225973364828074300703439952704337809919138443327225561990303498584904438928990089158196165003354559170526105254798598381480277248653018088776144355266470333355309425896143268345140101861710839435026758192064233116203303150105865881853872653615673664574624161425190863945816545385629788380286022659881540627516662142282008811428167226258669113316486679907372039233448638945077816723388962338387177420510147387160836809846588721665422013052094744478683657638363213131792429437588563477278254659399661521937463202545193389180122810394537940309187965472621225308593078315461238048931870015281449534948711410363505797060948411566845671117633006060348540667622407826571816962591416998423231462733229761948778429624826145702378389248566077837035725707088902678041475633099755131548603349862439006992495062429532707905419627174610736511121161745151626031474333639638588945111680614949743738284619768258261469833301360605546014944047332596382680345387907298217216527268191521273650472427539977211098889535648753743284955926842218255853085882298053374730889187440715187662115359610722389345471455441195168717731986804685499767737110835988152287198634427736410034633669402928134238153754427838092743777662751647661990548872254859054795089682281353731385473982578070856966562046262348062920760089849544339079193873289213348021667235030236443536951651567772235473023499629078109287258975508260074806575847536912070741968659227423878010054067152361880694277843192466032229690492041413883821612981208196906990285587150073747873805466646351765141205544723378057657658474254267629924971462328200630366590115922437279807593417638982540772062675245905809032000395909792715511691427198823598727721833918328194260413414661362941932376630675681671942381801100728561537329968390389502012631284650095521122626928945120860511081954969494996239338562778555432674125907325551545516818360988419369147999515908865737777628163066869664618068554375798681533630492180293203584132805928145908147529909995284529656532193185441863874246171516576685175696628248798489539773210558420252939278163519300850676593947145403399876841678756680445027742850427526352031942394149788356943867817611669593981059429059411038149852593532192500136017734434079677692109016855817980146365735059319245247690749871260883986184213672722721515937064131490802094426572035659683705396204842367183168956493247975598280234456844816527440549674249880379843184537261550305340270574367969958287450729805783861508217567672965031380645307072063420801240757343103134434617698616372862111374103591165299929482813392746852511114560581918094817664477635247703471121850343977146039867212352572755462531734332052488397883172894367921940760949203090827930005365424316744385363731457322680434477222533941569951475428212684988762119293339424307404850283370073748939746076233360779363072234206207923904154028891127801518052823040243465652142060537972486501666661095288992990469759527548389886426805691127398787705221911469272183285640017534724096856589913693463577183889023603676418683530961415424416176717717545879771194071410476883588350252831268499952954210314801777624096852504548197715585739824446533826430197037219455403596409435112674325518190776530292853609409292223628455607265295092490290510248105848360510811518236565396355385534783301079829903414458675909902999525084140272975035377107853884166014367019749448065027632958964913550914463036549694411414596511528077176808116887899004298017611617209582283511090100461199754305524085914351919899993005650119735438460938505841255847159462650344808226022846092415989910478368538318427008776705251926468379569056189782929303483211762581197987205837494359303509604184768624720263880379742328865008708577925248842992101055337394808448220444576080953660797671690837598108864080483423909700024658082480826528778731368361839801677463353650910232879024437143773916621635298182618832608090237918273345360275803515957841558643578614622175660540172969290080250703647059862936081653132186599048693981378489257192185757706676919301417165251234670314455891660057677655485631762947382841373973502872536935896936351173063328242444539446712905777885901839052737902151683446395821372207546693786582593560766274443173574567295314791147822260778238033838189558887466520017649899782619395055723168282425097052605912444724117907150136671648138551772985443853895326648100482543448171863604122660833197858717215296937942455892885207845075237366269643669498635107759161715599921579190026833802109238175548798478189546503545883587154354028901908744454477239319704270239898325663057640028926669423513446306070334342235011453355570835173318064450067656007356192089397121761742522747200171381447530642349449072876217993927706073278639052640285263456830924158528182948029749049349776034129854257910925163069102939150160726311362849696770734045688882642606305460671400564131698317920919772777197819497260865492576070822460841843595394438018942908817218066934587463108065027698055218177243863004652905942928393083947849584968542987486087904023083632485428399410071969529297310566547699542672035464754200658406789563558321503523478848750283328303356193941992515679518289752992139891767938598814370570866921315732060702746901237150389657702339747830758133023267590140388305439418297057219145385743674208676574530838948420362835327832953052106169498353173193027047180652550798961520044678327815428484705317488884305033118012970166268218220413036044800370865951762628942900620396569055018320188989947515027460231451281604309163784292186824992480270814242914946150354699072254716696586717379496105013300993211057585437548551669248686453192492923428139998406336538368922025637809816524645572460620195019752225817136607429165097889253297608615597215003509502219698397148896022110893160748365460836657406829235278452025581423092727182561325815112775867587576388609319626924455570602297445273489862410894379290415428983062959834357157879781478213371740741162692371636753758672824476799542450225776996583533428360417944569188311261558849619043429564300258438344473255728616369991132156334641298171127793516497567814752401468699889805434460252286182067839587216801859777911976584474313606292780644669992571954558003493227534083549801998222165598472980874681933753148565607520555332702923439604309044826261440582871318095550109818866065472241047781475919680318084678588056114681654627505278780163626028048572054401929620819545189842160685094751488558255212613302441465870372475105819043339834614836341866304440087898942807189412208572805709676005717774655710302020779660418427496304218607621742980045322158598920809872626405129570079690704900356035947811666056582468942870822045645383585228096464907520018222103536380708946417673145240738426069155077657204895143577970129006193030344551381983147766269075464827863152266123250951137276779580568359547352161400510657009369969947014954968247710146938257471898471692757137170804994053380602107426458871187722184455692035334277301084316588746869142370108954528061509410302219281306592545873737775953446992878921887722161138713104331070696735335025346702403793033997877077340089934702261798571185888284067612512333801505803016873331321988653190866015235125628499876077846526472213082506792564448372324974299848365246228738314178865853217964844944468476694077675677406833042768744112282230321412665298509646555674432294028012316377310047291422980385533012059148091720381533608692652869522649953175082996297684178799610232347806924242802520377579159160755340003428802380233883551215745911170840944811335291006145227316148407816801519420698076472331248475196438267523345354952858979158105963037397991533990135176863724868071166221756233810336647264561738983734091197202573982167352587383223886267959009843016924111759043577508182465020213411597978370326054513811747694811242674885798102070266378632383508068995344740235789644622635788382066883007940382841418615708168625424278433734615060318046065046816060862905220050946738381711864865160002191826872999017991378717499670207055902669107254436859934975505509919722446575726432799813526763559948214459736539546766546843671728867124607188268365576698895697657221812061950670336310430622682083381700833044345188390215805993089815113881578910024307700502852653305346214506846325454067080903143120766785749115317344030863298505727148926933929396673445814195963847609008731257724029015155192178936308686129300781534289858547609014151892569448747558555561540412432951160519758260331406448362980832415545795421876596914863650618843512283692461111333123646127750600070932549372596954284653158385056054846601556811539623358213591593823298246455767986659640128879298771841609872190665294878044196406561851565305966006089575565275790234217538147755797897869752025246859553479733934055759197666916664357715429053908927705732273820491891634216887491733875555250522283206544831679655825245719991907984909902469352574430214251529487357598861752886843362561746468858442960946004469881770328040334245065941764417484665880824693806258496868281708002185643174269000656896613359711074143075494701364389086810665753116180429367947151034952892325472962253698696607499811648118870544764666837437480492288840422032650473268000654502661172564785447856085639811587960108556564246222211476590319288308500853200872621231459644137346799400497203237277455348825484078423680529682272222852284689465512266760450668018253908440719562505062016347683605207694054049463891572139414491404285579036846990396950058205672012682089228763576345463388169486258134221651267953058517178370860067804964505072372636335287384323813088139753169170032493816221689780849160378751892247958470833786062858279201901386857085172816395022582276414026103416801105646587929860466767889700598928362691808780415705301506420272926432968541199204853505593083158872800225849240001136428242651225443629744845148572999424784198157576210288095490143976699631337190278056180700806350044696840832645867183745203859512697822112676546518612376070733622718787382196923051952471699460154879095540791852559186675650284957789841190028106538244188395594827370579482233242791948976475832228320532911102828057498931593261079262258756914007828229162895908730066489079630346542370795221684857360663438843654126820579942367682067222544388389597177455882814078959986027009133081975655966501214471254107436512066233639013567047613607150251060026721642372394991539280637887992162319485169851467354230725268049207231630491645983754863606464102859176144647138960725384944724566493954270254750624175653199550177472525823054630263647351519371775612462996560277740574436309536453029921746394140125141580277716688765720600960012840831006295661500524991463181374431585992192368240346551700850417141633072238148392085699340924126196788440332254104584133711409044632966926532340234338738241157947949399367742438958395780382292077166278819844595097325171999830709205942123339755509783169210651986263653152387069695323088282512936545556087097397661322073493671240343088200892935564822404405007749457240744583432084992323159027651406132208864224324368448543540490920920415817688985044626395455212615881541351559645230709094287608717491291040293062130595447615534193599402734647484026164278906576954130670683368231371675276873655279993086385962604072439681961454014799177241367660080113630347921233304511790482353049758360958610662030835858062259164162510017255171042205217465664759325118099074056907239472012399683607222930581250446887426710930140850206913060903774367269732935994521032126470703551191640933119832657723086338341660800173524861602188565305447651613444082777533463955845283439480096001457740052384506064082241133650949675650678612542432721391031632567041983101033993019558913292775850879079308742651608141364694998367519951405005445209156135329873500227012897452086324371850215962962336581391793262704805726938743069187437306522119894167781481348705312042047555489643186997457746892605291450564339964015733470713055145770378485952355675204702705889979885863267668529496143520893103153712498745472167733352093523342418528544432562144947266891429368207380042043055019037767873583386061629458920469848268326898202714786824090915648940504022672564053073152463465163925168000665667484536262257011091243642708458121294797111212198024615840156034968511694650548891249805257374700303665940514811342255240206638410722958143860068578714385211557292250190803042259367965243108822637041159324409820603907589418580107366944504394422545279795642499922750493146755737779322542524854955258827782511574755824004346806562404500778164095562245382973557836228604500373977311196084629859214972372121785496367524795820056823468668780937073620708940553351496409814870618323077083638413987436170574010329819470955992869990501937967460894189410188993652685131118026768880771722212196847462560175907425342759014987016269646369073475754258083158359709981282702325300964249397731220899320207833008804327952141271900837503923760582902160328059718692187054348481761169212904496219409710987690088218518485708107596966187175316092534439604689842113080614783551252815217826588714023325870149816544808731257260749866195122977431533269685863689839078597583516801100315331449771387689593321746279164084225881098271596639934744782215846749019024904481907490123171269733847694936747253722225669795995486816415085858207934214266422255291456363669063780557614755844188873748791192701477391756577053858868135231305767755157376365483093920927383801804569351531248442607018813351459631485537689160502680416520032510526856482690973205699201891527495019051364217953218028031364488956294653202808492314282861468077694040475901507487431616393852945758360493148019807869579511747151665339507847133516051548658693048542923349868774977413569548610441250366949396912584125004918172094624189460012011802924346610592823094850964245588156735928521384979167623812316703208896077342487357435867488989004267013858130546111102582249036159922538196668266710768112101172040301926019530087957302872947586770861370376266606001247033569930757027088130779091429741276220804510912828905114037386646657372566577766073678296892233904651185783890146474623293571929679012615063807173145467916450691549574226949444782739285143814832982546027843215728351983443843394184909185551795775362179920118968751832494094047698936477970820511033655007779174048914035559213172443718462039006090499003758421391143633319167156354377556490946775470250494923785592709314981498904086903652954757291821017537616614277875833221362568620742019537202964872154037915860362224162747161437498420857997226683062545091814527028148105483588575080575390406237670882548919959835500891468796871202024744179316199712968964265398006871585021791395786505633796577466439880622397145780905478200633966813881246092795015008268607370355192530673912369771081765027236330343791297360776762016802168646602031492524400180489214606908156331062869493643238292270372428412865608119363818087223226259010223829316777687787517751909311378833765588987160573629871492763742916235300004067058095918241655795327868203922789015557554758451476312078658437668525032294084314063489565274601924173997771118589239834939718625164680070546954429750878358618354885820151299802095082863107380049626693120457122957623356330042167222330333626152413112748929991544394033441668221446368472673769221658681886408378312990609147386939951488476639002037404016540040392827948591292466885714256289592399664469690775736089167427284228804912543681939181101857684513216741623379091701495693987526759811126889246637229914511087714557402107820369544356731496940895362494405506563442313749152613014938933383458606739712556318738794527306115803108543097041913013846079832078775611757901684882072749057557812163280361578645817634749945633896895429599650148916259082990288421294663812288962055136753055247864245806012430745765007943010499494483361325773331825598289063090312615929657693646921043360850581589880968983003910265883382195528217621128541952806341745947885272604608018776836740392261439149364211758290107509433508006046539646602565995790078317988004501314752588707296067982929785839306183881956149786644986984951942075380060492958952108456079892251609420164661550444406893370888512928890401749039046023639018143436776673459247621894414881759610817382076780872543910385344361607969668427665837812708578259855664459986468296388510236401956826559882987541360800156660499570738854629416421030684825612326633185987515004176042720889874405042161588968144753479960560521663152710002913533359270725268611237254241497029662202277519804308294355241396256308667965274859692256010950670620014433710082367537609789169787054106498605723736395480458964551395946348330665049493106726237755250746904677480763816289809961757356939897519173004431532063172154161911621444195705520654098505361336224583477886007444592766710557027766627563108894619770094920931331383550174898443243923106168203543943761252486306929268143392668439782246418711932028426430317754043654990363741720024384554633831950515779275218422174952954286176246050157782983480845199778192188960228746132759480913757339129070101193044545245533905811395360559834506211260470628177503979681157032813684425870414517149173951461827492924729337120477198251347848589590315072644036377780813642943725653948363925901402445556387512505127928863545752976433540078748158139819003033168830506751573272386531752445180591775969828024908217091245953496845382228906363200248240478302249222632869281144731024909274303531353469065713869195504877022578884197231708562273773113098088244856492176916380401023206651143225614833120968151297759002548250585791693987378725912976993871034158265235945649739688584237148777278370033611897898506154735666092682216785267405391592514393080335219628102898214955578554851025959285495530346053366995673549655019793008117519620108078286902753624175469546181233438646382403013216558845110843009142300731298241235720918404999773603256032669105371189623631800676356894512988887025288391855128526258338609165602987215607635751429312581767470991080883316611457395116537992201651338852784400653079296054073792486028813553537049086932309522438599937995247822898436187774305300459745695395901917276004384950497567511683050236261224754991074523810639504260795841921225870242980979783043692678149024529586462993593491561230525228661126253833156019775813376878443109477857305190367040455090057686946479544709666656027446559140026570970057401798589714800469178290709459047283098292869181543307279948719526475438216778256320586750990507712263880474707789959011421435934588548053761468185534887311614650747419534381706437807492611818652075641821157003458737021090349445528472858497905150257238556846941084104749701208609669890804821635522136294235597890921860078344371361569477574647911812645428498787050763433202534817761227248166402028828479595925460406982058666431143936598438734609270789758614935134755526061499155346883617643027239228840118633709800498130127552739870628302133994837161670382017945808298207512319392897892511820794482077280684726056759242555400678746512589587205400958060839943606764087833654421276353445481228760304593059662658560904534143387677859911532394880753771641173614407753772972802540698752203555312811960040822712877388076124381312340326556401365603387090510400404438360353491311806360259794056201212356507039129314882448581716897152150238706572383287532573721508052749572226956091349396727222139413632004481022594285214803543241432435533069774951507398035885810618376681827789211791092806599594426694673935764663577750396878638094947755321075193888945133113748776157578625587131413466693170228638960415099062651122032768098652196388405348820294346353098296344824948718905542654191569098264057040581470489386880156539553906032559969588684236685885280949838694978504585486811383045919494999141159877236176621451629476471189490369608818420030127916027414928555065084571774963489833442523662176507559067507633295106607319052375074856742872471100033232047248581705579634073368574388552265669487455096386850356885553568770988911878042978198455882933153837725192806268091466551082738450686307799073354924622526527429293629300841102873574354948030965705382724749017832991020565048618766057501863973803239525951369356926152232570288495364728209855684712753006677558804080358078859759829097733815235698448610133972886464519426978023172056273568969873664654819905540886718381323356101722235990277094665203037077476759294255502191893809608659460968839638577688909474350337336120603989616522140622008810888058890037765606068986081007718694120066059070017021389688145136797668125228904094329162911272247136697195520298405136793210611118193772733850237899036531790368193969088095839273034820041089160142319748194753428768391261845369408392059476101668896801894274811193695441865761856771693802014050879728255174843237844899625702971329453708106047943557010312340365394726386730626948033084846844317138669847965183635388644038138295495477828174163308600606787597852085340964580717596674131360982213148720878478074734891650894418316379276181186179577661299536836400834433660106188730594753622335307093689675171706452813870965625994114848204976239871249240749447023768453273789336022999524457662955320931995435162807098962155918065036906884581175865795382445268266546585906947854413743947675247112639561787230455150267730347132295239996080360121669835017495542704032483491988544357018927383116037171397701944004001026055193077071144343795082826808958935201105431277097675428607896999090537158326289476842982067151996784518311030847496050299339154239508782624241191070996937166100099337987036390898530789281488089063720992784167270293127641160890584303752409819439896462658902008572911498860219521154231025440072552898090347895115070976250815680808515584846128406740926534940450274742853521497676556177868810374595428663898934868570516812649647250619592272693771850061416103509956956200330729835219207053961201813525611475396204693929660533829595035914162443336330666154663459151381809783357301471893843858213828122658689242172743158191525750994996373987942319195391817036867583194431021078045463437556943734656884474698341189805663367972791601229161318955292129072434858156077257326405717490959963094525651812934144445727448749696083505488973215973890756644943303194161586320012651080691704580529021056269378386154656445718386578145326553673048642123659877353702588973393278624146829548482591413960647731280254080732745163910534294971739767054775512245507849412367863262845129397954438778506610078524894055188498944975872864575366482886877385059583219434821839721335672154041010459088761207870378829779748986011242913875405375511410418057299401218381614811721438474893252627560699463442082381744007678968271142202437236123748014232908992347944773268883899184288808786170149180603046924539132218648080395788363813264160655062768010143319908042113425809044876344423690050924491791591472236377463152319087170020735387176679276310689892475820837687414436722417463288981008655983869377767985594114097354779041025129356477225565664196355061041439300389991013527676657341640329042779491041177923859472403232143979468245193642894394654570971196586667776833423742017608599570299789675761917268581936450278276423848807133027154707342674688112702143249561705378434231509460759401872831177887470912704276834479537382282859876328540054896968655807572302863086761423675023054286986145924071809975791826365184365500273118116016666806055976053013034030059108698542407590892741893160724776225445830412151055799061193254489562634724838739482160484092011115367774856310648685730998751483387277053752702738152211603980861733726825290302014450394160710512224567961945270230268627769963071927934156971086889790360043571851478981034856170135946061865384733995208332019264036500729178386219375417602544939902569502550082118884364460315436675483825759293287292100309337984276399588876083911522722209767619124864024146864676566747224831064226427743764265174318983178616823242166382594992833386231996946526487400549599332140870712977534804267052546880195064954168511726432398872798149682026362755046178961067665283663724527168856582125830622259148458049076204078314611789371649891979056488332877145423199212116966389134220008734349877527022218639383676347238743039737277864045901149681092113912280963332156136569877514397138059756669739484785265209386258724302607860328462849243125805711062393829218091416417965956527786682582946103051831678625415914938278243681177684556560840939659648306339195202985064702466998850226220474899188915862946725122623831973092347555939789930807623946705450637580174129782575450344347279188643741190218423587873309393984537694180665766524925463273198820540977965297464382188439670724803464043481501075297729577962432107598591528112606197896306697763285051059385372957888567781983890181247065253822817365944645270852184663276167754529108865545368921025004993671626339553658425300680434332755822607037003273008831655378735057400921793239552978573991343748214115096105587443493578451438381741482364378244778854022189858723383119155206047387953161475914409344127080661839063864996647655932119275543710674950271764884120400987877344848243327426124634675921963717919253954177889164161511789500604346164009852644047406784683618984689850850812057953933174898525217228166125804327944514022927625066974723877731817130087467649847443231139804230436538777181588400146880975132123993153806947328408187523202918322502890410082781646629128385427892747294084374148592455092153309708830190368927999251583917347683584647795609858227575186020307697040773205175705724067388671548847649980851808387964634002506757181776328567832840542235058613878910871844958189032520571539284160167277826986276308967319876259479097299573265146508355061450870380063126650538440777879882042121222869836074517682961824479858904294723094085219822519454134021879963820037253428441042130680150736484645376187439397596205973190471737655241582078995762662931778686925826750396576640923078497182203167700847284171514986457119818388425643229375307833325049164368538736061631391919787905524145881355201779339122209485550771698026828584210893084122094515219930770679690004320505959637942195908544740865826459677048667501207322374735399252128987317191149868137161337718194554560172020591118599658273095586363580045244079454806481633577169864075474103386470989641576319655870701594035497836425794147078597115715339232321945545900613651687919841704581064573214642258077012075798891312156930726123996854565827193024364944547911971581711075239741776955696752843657599543381231726164967038156481616257034063556799166878933054932576382064367102289893373401779058199927075602049973804008170697267088880105792111614690551328595745776262125331259532713863876767101132484163067911663620553576472726644230694226818855484887344405276673794440276699995649725079640698329268210630766872992285921980960690083160203296272748243207656764446262911917678072973194347081105889076046277201602175383068279754549206651528753944446741156632300537296627610246971903627742256602288545529715035020052126312276584895512291692533900118014194693992598165313455101356475673982448697238381213624264659068297019082867049808890815809633784704274467190821166239688029501705546080588252930812034038208245033414201301192303577237826486347263378643613988793067245266783630261843794581917518174310574028625477730595497037473630879837003711316284545980743700058132309692173447754054666150064501558110909823618305332669228714468534221990761636484392521321055942096755570581136987881174341169257987147393624990585692916607817665225111235573810836060714949167100628719260338517612974886208671391972179251527785587955906365275361975829015363783189377520677765064675641794201570288482239676905530303650321049572565533271151302923064733060462169973199573776869900336031319892336782566232520832273999240757274398480096544349570920811621985023666866904547870530681174019956150108024413514554422243683388740319831979615976087889151933311334022098324246809090640613201600051354344395014179447376996737630098581140273394708553838235584156500716524822813398860918906673820731571662895830678823464863242461074776481894957782668635999172424389464861729221297794170541054591869469398234559713682103120737325537325282339421623412944530240180115096999511449856866146994448371995874999592345183379567671380633706390807082793921211384424016495206295809250749975532035398512504433798853450899021964727956287780236810767243919311214183740279191834009625044938916207171198574962162700464577346483222060649929581200427679624145683201973771792955706164549057225278843262978090994873304712896643720862215871728807821140326332871338603249687673239279811412120961823973268493807609829980551412862876876343445500197822258474638278524044865829066905481359129390862228189850905931753269796828042979902458977457191333181453604728735885759097684272343970388572509280032054222712430997327148175812660008036722895809617194626717911414105658673171629083104893505981807953451450317610715237985908345706280372436458917967651578867687649449747057277903783050952947324742634632895854983537468944276455594033065489155304040145458377288407251552352903723544964721454630227180492665674145236938314559814162278770669730295462790373052319733629846055656062120828744423776934805404698774767300869767266439710712919862407092465814898883912843946945159428643998838764554531821090501052304690433834468787978755043387861357901008085668366654867879833514179887561399480452293979642628398332903045262067451485807767920558433599585334643801858476575739935850485696139396699693384376831093222122979225302892487353625729656220678233820853590993606129802995479912441883292411008797475430379276418506674308031114645626434239057019748952233703861236157693698028630360706644144139078181433218542659172156501760959652277176586336725666941738321035248962360389855596554230477435765369183150792451121825882799011099156651662744688971785461936541902839497097487519945076858119563642757636073979967172691614428530942070952437135669999581799862127354607849059801235060894385061223241436297579490010730701731729382914295941821124983635626034358486020150664326610761357722776548425277239870774986955821505884169800991563221253051402266959006498295881322641488390385451976903104333444694004906594104677002552756545695881564203364031481166693123272225396019740724846813937660709523189916960741391377741966571455482752214949061165166922129274736221666397010319527261969962197684570303471549655248277277951244457456669193552232916816514534175206516561466530688889013477495453636159715839996379620069440039435137269862878260576486568322931627519799087852576001904580927308501040669066025518896541184885235832753428628387921613652461219404516689222187162665615299566449757933423333579278198559363219860208441150410984264749485625395255501417932641498564378478067322465962616549678705859072591621304140542778021402006604390968530430419632214846233294553362880370390513719645050057761191169978002855699043227521119236710737856665850760102213519316743631863856496929490861168974404738783005107201079487246840930614984014318257194822482638281561786920725218290566141081525999911480753717537565965167955533484698501938074804241345989065289998134391889929721546839689065313342815247810224895196646018573943557469286866415467398888826590441299719578994619933658450421068023317412722604175870252965278984799784954363022087452910823958059582901369444007384904563920140544074125756407554866593239833879687974502860327097254334159153005989112452513259811923694839906717132844018066607034323096859724231737513799087670746945749650041018305269403618258605635148399795824887596186716896536782497379118346205598595153987398689836849950327363163473517316166137875926221909348033727933787355934827032136562889404270662278196510696114992977891732030118163357786940852862167026841684772645005749586096553936368735959573937928883109594395882313598722064984264291694674952167744762829370451501059575340920030874695324658789363240703958213225182729682610815085611305255369626808223328540864044506538130964518959853323647319464725696014971672858952471149177318436988521068208657671821819682186107151240998436687005549309516734160434036564704786074669303913030186098119764919676533864191116692043867639396822069141954051584055489633484142408274457367809634690682389089888429994455692211142141722695897136222974471722728174031559660928854855774902998621352031968290700788614883412477311946038747292036606367506776059996981518925942888546940546315076926891377882745415860537167363490987993778974024032308195843853797246134920404460332350779142421366795981114577116038942410899896258357300188394691989956808387411583605670849204238041637647995554139793738875166445509267390564239024691324938262462565977670597849614579411788738485469979859532149197688442802873746780844056836492658997677451739215712324422717598354953572913027857703683038240470668796149134568082817685058186334038174010152374021329288841691739035778125571262766080203367078545481161560035155619201394129696507489020972158960625884624965691281061027187012445853811344838533926118885668015449486910285573624688621865668245609883850159735125036098769308151781399342191701719474823393384833498092684592276751170630109061765122196409469327639847143869959665379809482663913906843246174759012704915311917135109990040761742117923451996724347554625812381634179601720374066141585335566171351873979965818486918994406926120050310573825558178406898615238809501813041714994135907026322643371310919157680939148715836515040888246586635140639172848821712444712858704992804988643887222232475051690861552888592367386012734933817079604371787905093227911664366140519449978554210253390521009575155095986887037075220968396578945206312041276606484949892417013074943529760951552130337346237617700467586595517828206744891473832963777512525292075033135799221146367633041858936491163724130065779934735680186482139536576707560585865785039315556571967581846581219006580254494489071253804439472765546346856997187782253081451712438952837965600207933242926442025178028241475815165135898555420042488545005945023428389767975054198772932144645554511923447924410087258902904574477568854877395696462311740721150122233745564729068496323950946575518233899470561731901252459892679693440839171213574056473743910435322177025470284885426504454919277818737248077826771275434205091848379246884217694434191086723559706063772429324287911645800422829622376682573823230226600879859422778095129130736986092563968398113194753642975284990532105905797706949142614905272063044185717918537698831841688012871356620061177928589028707419636399402440593814178413895955427916219469702598876020123735773359810723153062819491310152947126683040111209193464456619816075119773575680585710657448975119227170472418115015492357684046619055796170991030463754719161901751952170637937005983493321020504862058213777019655069184836130779988708916919163862304176516162903909236664339036027552340394731808461383811649112436130880867595378072277136133377852445513869848410749191541446287958178567045474063252063958620403844202115015971497067396400304879432670160146466125322278743324015815127720398106373017724160481116674561926367029626615807728156062164377603904000563711750737263364755996446791256767407833933560652686785190528946581445362905809089627099701118693050810872096720294537622383095717090229885606815978499889255851198136652474694302935873549187580775455826790759283444153234698317409795296131333148853551507686027396232997063252963962346506063990305688046918897593063439139912776954245617841977708158884104883966262511057171083722630771846055075565168401489296822876474711586580829926479391743449838239589845511417663749370694342135263760769794922500183575013027455246127352131561723608084108302780310134137541069214689483159068714949076129304757719897948689511029333225832704966258713805962797088290424564092994527269575168071599228035135695038033404099677291879737083225762765408557292437738968657016105512331069117963602798281903116644026729208869333272348794816638830823025570341090363759731301705629144221449418885756568919094835151171381488816601747007543225610437993708739514437973802639668460787320265389881101566859509501321715408126686102973225238697904356491911921832161785518810672156615840322995445901658323273617024980766800153673168354189433840082751422727225056350841733658730829300793522758940607778666992252288216517014535923920303667189445127774137438503855029768187484250347832231125952160445889594971801809523493503725230190654699718448864831173495260076910432946345078895752161132253437992181780218937004234406087260114542441386300606995715137424889332054415537063978408635890403465771731611756918764013198432141471787488937963668546753253860860405954225184023084810726267388189803672190263100051350637558103621126593200709846598788471848373110362197345295137893724929851174842258923201149586799282505321496350401444311158105567474766858767466448994729158314841119013688154334593023195112736716270972197640630662643426793342847781516589050349380826465459315070853782665564257985309610937395162627045187701011479071059329003791946604058687790555993961948763815654085823043926116714977756177093133223348027445240085384128402858698261955589710125631945544588547613326314890474207793791529111684242263025760774114224689798674462938469494538914186441462123402524718028473560293117236290506353126771300138730622131787330219416275947319517439941108902396774777096461723820845692148633607095325289092745717700730074722704522950942929706443800866641578101488419586633607570147519327737208492006320402417379486430386599410270767079643398877757175961546584614516695744426814243689308559636315671848304091068482780730993447634645409991380592799300336507911649079248983733452943970704824928933279663343248263967759207175253835686693966389835226580772963336258364557901869675175845096985883907954345834307116634549474426984440702594982853851010197053080005337058941610723575277036889469213046009075059455304988245338785163508593319844542422408155033177762102554910677209872943439299964004042913541309810773714617551377754853386806806653013716746766837445449740230989256733654813897511870560276206532532779568499936488125289518063211907403210475704581373589194022101079528837180347359858376289878922178371512049526196615547866991319811727730853634400773767578769491072304324026871769003583502876968582644709972027663266508332526288253104703231923831920753838037594025261768288077322309310705812460934647995125073940037273840877292943186564714007893758145384978312999341012371769320163219702942881876113800112719984274390303992214975633484448546197503702458839853325460197089390359151666292408847596656125662710605287381187757983912722853609840123116366921070106565998162317533972689584398683931149014415428623181069029175535035849757874227281804955559011305995380423046377280659692231299453228110623384455330580468843674903830019165099576985307595872039335517229759248208897567664242252122194578774811214515911836495839423052126732305395030785226536577948637185504890827424990067342310962023263675756306810393342982646948375742658623269197092793345470932372387982165677174411101097556197977664088916587755261896797915047175222642363215429509710796181781024999304629392121692252573113957129626157498947733102936440129172754966035356377831356391587784612389283023141085994884745132093650101338629401726398833294908113680488627381995989923528822818797572367903823981174614521811496353576922500148946878295369041589378180557970155084569392186068974323653772312674275647814639996418330632750366573860906635417385811884993985333994027199958406975106106771690442543622748872967786674056059816126145950872407975866867856495600275645556717062792703838930637801307132771494485403704525068687974451507088346855312872938097323269315269604418856375524314099988627804249801114213352817372003971148666743069902471301265011553464623524547051330886572504798019493147453775992828028462064425238521820806151251508950860381687423100726116949466962709290078457579908252140978525654975370308280004806080628506046728618279881701690911913599906322023966372829525811411240807087551420068916270874651655772320885835157180024093642063275685077162240842281538493824747694460323701471530586242175044997602313170311876661617819374915122105185496907510504176398488564058811698959880225722654721959022766441442668040391939027273208702451353903196493067896573468286895186204850167543317457589458025539149869302341030803982440311104176373941503852362036611418146843250444933966599588780253010139783731079119067853759086487467355083580723409343492242245879174723624251906871512335636794152043247862428152484740365728027483516906759063120150759107729718718893246808471307899131609153676205572794214091403735314541627657285634592549020544329226619166280851837177465705965221107794763794605959957843663089655118099631406775972172244640881563761279109199604221760849556178973490909037554894966969205416572112878606510064242020511469456645503791022585324250160951740872521553196357265602029202910715378792215281799494405951114703261005379731027237779585741719332897808833492481621909839454001083875599377933479606589265118774713384119534445221916318819510538630595037390992426496528043174203671846693350423377637293660837594786484969527827879553849040838324251949685094024295693833016164845306093010721542617016441366012092587326647647264934781294891736436544469350617742255680959859103824757738079094224983254284333341625187739652045386503420818828277652555519812516536275653197643196057537453928041704458428127278765729553820591835509735944375118135671658099404706782483641046233110396212064203362632728487998539801633638680712274177627102859138384152999821538604001807733594105631583065505886786980549661615422811524383688159832872405364500580695535172081230360009338872763492871603830051124285595762700722252817859910020956871581397211603615591280308646383466235493549399263054497501800564352910485154023947722507656916347286821370112090707664269076410320594459145666844940998808164070721444898835371333310766331681446978098840966323678228939668927834762361630157758311823623037939779131102162667713571882342062189068709250273905281497277740861084428791743258525825587585861489023247401072451515458446711246007382085925968098648952511286792399273765452980580507729469410718367747765153917365896736795236655187139706309653667166987346214262027731309503330469622164844595575172316228951971162985434224306773457728925347750650179460813942183985311683267640707973454585744016246061091866457008089741280501121273716284613000927409807917618307652572447943712314887844752971062107110471217883499901067366175813519352828206208953705995811102597215114376905095628514741284558057514154533363153232616291643727335620842824313097456822783584655334961300368402188788292244328065395043209690661635521716078062911491334372364225024633399161734583783489592156993744912901586813643147319624100915528386510260221567655203385672695763817618667500135945589908427547138577254849303264987631192962421293322767055126696982633851975159305386411392584971336972888766592215706599473264647267871848646887262766135933489836045780377404831524602683895348942858642836903717634258306477001449304637214258232463461543124878793495243838457865908402232961463819461089394210618843999536978229494707039374852057617290537191900114461689707552826267520907544293688639008604911462208088090141134735123373281470040880041217755742654494139404714672331570815409960626774679295662301132903670502605620423503153337399494345956654706216766828202310351582250422736865455804032813574433396271827816326814041150539619204117511260777762468070822701781426605420432686931753633661837675898655402455506020960267027796467095902459304373416610170032884319389975306880105105295883569675413089903441070607181282444937140291160721628753083276511974392779220073189402117830990990935161570141329280231889343020229874872424744192090741663975948137146899501679953913421043186625995866531756535986213768038913544536124325155479614782154025229733321291616307598582925542593358747575867359536726403218554082380584330253155656454285537540814173836871529494224399856772985221992803571060884956879377810309215981058030651544187674691095653588616463764490076147124357371621135204420063799312536448479290208297062022068467545173868162968590490376147576597582113636983352205255729339908095028237853688391992509230612499087765348421956951187241111785519261230081490751254878104011097142355023685583797104067210924794360772336977825715433381323591554184090898198822316247237132987704905948777672032312814456851510982236239853128381553498756365693756462817106016994392534581290653836989383209843106977217871368727663721164867462140877770900698234879378113342267643640251509028968220444971320190037598627956366178696023819341928496300138727562425798163040822923942313466796538426302770496147328521218073228732470257073498713938989238161131052106696682767950929759130708672197482504899138308404325495631970209857288441325715554618790915615574588633718944136396190680851597781452391599312834671654036711693418474488112973415817906332671870118982621646372464977287236228998576182109426381324853475803809305547165850355143058593043864350984478892118769110526491526971993553364050621538790162270001940767197540290011484289446285115842539057217708215857753228367552232694401694121048935521399048434584172737982923278760931678844926552794232311301394954784339683687802794629687820670743853835695797499539045219336345956898021208735411813811705287942333979018979654568840757623947385610638016591960086597497751734104212758381497543765181798755230272951788104536320451157099663330690345674176486756086673879315768571930433530808772404093989937531425096823532706805695112262994000808748476071748714069181274592110700834770662961538760646687443333936037599281838030705469643820592054952108110084351971209950207982197755932502783353553850426681499714542987706515784967484534872151179420457936961307470584669761195491977354580860618217759212731642746633717718515280545753718473527471208822215618094038083974709266798387595503092302182479729979597200315286894967906479432618959248301044167567494884580354605852999910451808232154318961197749198698932920788227532289465837014064123020286739003646079044998985305969363616929625854587910870166067719511480191779319341998459462219948081496047476255659538271284419913226769204995082150453884810246439704627200678116489933446019515257108692685410957132099905953187570139673515877641349803152801040363440150741340267835452867706230445994547864686838812023706141781460745184937325870870663534633325101746768547305081100816249372042096639947373051400110273550827353148843784866251187082038921922234375400919150884123844343100496036872404682264236292148165472569992277071788809445970372196544744748156818557565864258118216881877249710953794973237572657842945556596477240278984531713452231729183561592881426183926211711183349124392773954500118681313079100248618962687692799304021356345310378667701531711990204848739806074325271857764451159075449997129258146175370834203197063071669206070704204962095802164536623560186209407558397739881921994185592001802158686967188308230204476266400849825919840483208478317664382309753951045007356862317478221074512125838692667784141100857240591295478706270631638559742014285434336467028625916123236165174961685255291010520780130941524530223188810256372768017489423089548380644446272346261976398938502410374459501840565445160306063843704914324630228604756033986689713600524962479161961736607583340587503396117678596089490177478236790229910598135122364838098828537918655193576793183349192124673099719559826739770468380823876201061033460193972907229108535682315631128339618851870178469353812050333807962883581232633045730971019785353097511106316743114836459419668313283618572486769164412582144544822166403275864504049515702586293535017026282371592471491775142956053511894131614916607597680931633741215573980197254475479252066471812682782706072916303350379358852045694343337513712344228249916419633190832332200248016929728746859841032078086697933098673819676520526791178772751572048851819746693548767515644364182410518922913400084082171003925239649856329550155060373194994481331683159588414162146658776452670102660267402896053680982642772986296711439052735991589516184854540098495690706756248917971874965169050804711076704628742632226985195967523681215599308581719166988085941658409596323821674718006894645178193586479800640054473845068621115716997186724293493799383526022335684457793319712358110743508100439804694835473158528585465794949504192250257629031768605403612143752141336234140978972511494854176668188706918272176194688727029619359286446241079674747084526351068219274695885154839302586779193884915321205439832451029687994232366734305968485716089944499787258675903871510212734023110404606948913622361760195498800277939277343499743083227672889992958761437800536156260197300418859914438067375564165726777846235015388745279259475202498941086395608032935770459239629154102125582175907083860477450720135538393081314609794793024979896973545923109003308563533912562452768840314239691540208263942422472717150682826665159039256052006180709926572177795658407510537157915206221074008024965622750290108127435644822845033616379646195668239040908387607806962602482044244603027864228952795317538022839363520861888558036913782736403736389032800353235662641890864948100173958074652009030264636384005041809695330356965469500427998631044874526026040868040769037848676767242489508061019439218441221013976014789475976271184764777049054474589033059901089409845282182833482006060110944639807847588348242767735751457816295398492762423532070840300005484156190065253717964230714096706934494437267489064620717999915848826711653797489489737928431178322120376493263797866443493951052998368573641521159089464741581205450454251256317432122523968848011646974739337817398653059571929173583280038529326330661356164923989336031757191172692593035609509411499038917004712996018656776047616568465691087143709563331360410985471102152447498600102628375819029586770896440324022969850202114778688298976633038810654826157263077949001414419937901409757732478374073828467509145259589363773680782748273106184548683700313494211836780701284046001791863096776902629860491651531616894553399934887048613703778682202170821720913534399906142220630547351700079686922017681576178237893922430753779570306159874363287378306202741212341042204771442069307768891251770424950541271595222061774990638079152335923955533304203740014986506928747767358121049760439569412278706353594304557672845204013864950493188196500813055418312176776078594779743124659425504791522495679565856837689951420851748175372515314575408902696114029160507799532597655449684445382606406237838400960232234842448338283232932474146929639563967607600368216136962236607143834800941269440339860080459067238374035970579892523276427703125154639033612327942622350285435718411363687738154238099035168914972733023973050439762759351031184473169831613391067112252162572628883543504175115948614910905776948192623892358008934714629265816903103563883929036647186824213252847225349664033313471127710081991608265384026346949341951339462523615354599844533310162183128322598948708104067708272479769901030189288312694940506133939118090470668174514742067004770903384341204655146039547370980012436603118338443054642939482623980701166161918927286362692317085647006054109109045411615489239279687909288146977921704740472055576644627587197593305063651002030428996641331116597016220565695451347938716089628835752927674070939274961093443723694508606072227845331837140426007010092420443072354199086550851822468790419737902280030480883939715003434503261433374141663742360500602592600849265902022991872203908952277706781947418050963540654732494918959643683078766836565753298487184010837129547959507385838820671266601707164444600690942485621375064170816044392543817127237201768855876124638452555628607320996229900121369696226802554507785909356516247123372671840058667716637023760150423249681855552210377619058740884551429044365545087729294235039000423212854874457310557636117882012472868132708926174610032537777639202915459798186476879185989658914928081712493618863178252327726758217177504062905665406822027710629283902348735554249883282760387201905399287536951571549638225599674641691178599504978795954620099080283219202939020894634100488536077344113632130994485579792071739540053309406164659451398123621102833857928190883457163468778148912060119342863326595531835822618272727465063107690189358924386525629954441444504412934796046658257207864011396061838367685223595734416850255387335690831763506324555396728320761552722658561735967862121185619851244594753119227701412456211996811486716155191425957880058946258215364685959734344851054365086257377543376772357468854621236325274866409911552852969143191296044279334719135555656345364647795035073527402990115784171057695575071243972143818797415501975487145758110645992497034493672204966489661686729444261923805429068141558572543234582563235813870055069283622056503328156749749899149161184435442466415230543535489588184700601864968594204936538858157717217373730168076491190552025913932467015977100156633870772182574505415840256439697045418660438094958632669299597796638811078791955854074428219650147997309807208671290078281323493475291534769485206564789303938941206478629608901553069871362716745459043120372031250425024005265135533587884328904036808360528365545851329559126557731295882375812501989884647288253028724222915230754722817476514070262924010184967058173419681269630919112765075844189967591698245628408236103070694440894027426307191893648685380662959052119755141074249530425014399046060462382234454290963543580200349982880564604210801438907729708208533374441099798941326260813163020158875344290776998864624555197673252247185958448803018972418214262608824496007777058765063321793037064685252397220573827649686288762563440317864052699181175402756118812450002512373272137364386622933102244339127799813288328775249003720178630058680339491793717706442413130199173384735736696367202014045486738515951220372860588731220499086426052056589185211030823747922173692982062006983846483681023145209705315339090843870580481838662249540038800787704393749630341161108809163033783206210397541255870232413213414068816718514090378672717266323811702210347264858124580370218944598738461317973207589942437506412688179716216936932602470254314179973179327942395897615581276216922543416498823938871336259368062562606106705259511912474340767612241516384073490447595658823020593430569993551402917836776504107320757319653593590910559642754034612700402120146801912670338302991630999127317786839902873211101641142319722345378936146842498979477324969128868186520877839830454772310489208003817634959280094366811778138518051020636008659773258055967923522543492276552582372559455821744328185785856920271553039238877331831701419780404208902707855175440119033740019419025332492966764425806628960479480406749325315313111748020005763870801185085506930392711525367268902001163446325970640742903989493022259820981414344139478839413644374553280524272147616239601625703510174243386952649094067572005141792008383637797311677849998424621274849922638172132509924035865979153559439618917426099043789468212528985493196963391929845674156492497594560465379422753541861967057279033231854580947346556982727747704137175461181828632388075624502812715561247618331241907192964843266552730486193024883760551277582428166266704289956934736466410365537691949810252308675605181602349735273733385492810249545998165634356941491249816965331320213172064748699611285457736024023435232680223791408579832220456837167757757490744826662669432622580527871497511018686047433588112412638420805985169901980466790656284913834805229444147725959613566600557042547775152987534278447782666745673633119770840181262014755177896749651623757704743926843193712854860427466204697509944849874603568308920334281489294738735929729912443908385511312439808545897862165722045061026827045480991930967246968650009300232031015270914795630020991395165536899846670322765881605634560142010152572883169023273134109180632355559498839265978071816794161475052011945510428375264234874107469215316091828342013391018812145355721010678974251899378028473884220516061233999419519901916075188496104169054644889477173146749252283307928851508577566867255409877246395180700159830546255795727077536432097543238467783689949459484960971937862215373245041817014213799475812546871318334086486774207439254423047184946183157368033709006716549816839225098450547481784601709332414218932710386859620490910157998823891784501513867786288509694935632080697210992275236690108826963771960245542904543907227218008272492599604632787499166405069612430171106872976341106770035713952139174606359286140008314034130955843512912075117505403936947772372943982524349708391860837641504356380475110016364357751409710796952241964959597331610546647978515766117725250864178470269103970808971303711590517182828878088112080134820566972198242042082807223672054980341374314264303177519539078728143364477860389976620101816362805978340688256250191946235717299855694113797893358264330056271929613312548612859619623906661961267035044817688071049929834384404666707532159611756286257935221385256330890765121686862228863836774549705146946333350335778473817932161362013780390478969194836108745564869931891760090529130147957424225480038119379971676894793339860843512946926031968049001537270596779959169044516398031426783769914495835210656438479548905401518545487249150400692954533253156193284530159953276905117140033579797625422710029832348472341870975916161093468439555627950958146097553019019536798587092279343732891027162806879629990750861190797125692525904744727788313873228784081426974337028195487731927849260733341788389486486477204104564011712155094183549482062183596662183151986532404122735972391098192506279351862683692479219931935743919743258646002255534583782022378457769807733977175198544504947482793263744720293772058310430280551278837213791572319984055306786798293296385460198366425563568140173153027707889495666746695536302620144893535950683642169070086878609424345370775467553819722881045073228176395053424005823321066100662308830278579851152346498816052297163435159193290371692761433028306252976597492969545264608342229611127251557553492075204149012996438419953076975545281011512035117678718310781660214457267607113074625664454557524419101061275216171111486785202462525873940407333266966379455944805613239454363634754278169996622757852398539755367669340159365909361088862786881764185437759095080150874653249549496138423560229237757162044487370685136332873448734950692284560512810474438246905285367519045821868078334864940229111802305996556706549054936127548881660988193262991971709016037792676241279214671712935485360187740465485656863608825090907334462056044113775052593879537144562326823392780524212859459093805178654958290665592609373730695946763403183456885189587821320418061923568039678537864158141229027325467819421559694854796574399606346684511826243314159680991289504653770213625750017707607506626638468983333538232023576899725419359574375271487463835901717074216684660550091120751822093962830578808239493703537062539418747940187971904826735295815872928401737710195503867701484685849746733924772609097069326840028437011310508670921273438447693359906559729866412586316243923140461383642300162884947289466848917990941836014886193508834832143062742125816652980209069123911420976112727628228191879921692984311591709534197027831215517224541630656972323715292927662732956518453419911764198891984624017686778798306411342438248257275268345725694599494222443497935523630957057069103461950383270580471114114208266750465104982700919734136880188263787032565188201815809785809932857812291178815145868953188695265349278956726219348175986370703206883571499291739935516672013253969743202769683273486302900820292608117617315074378987775843888816679897960123891583631819460008042702190973412746959653755990404049183273646869937398694417540119932109211720423998334973691583316967968646013656068242185684946895815639826722544392871068403704487219893461380515675315344743790113644782777366235097902132037256806406934596780965285497884421939828891665894838796217172052708859762383352281846729157429138908944095635375408599380013960468613399818005816628058352679651647782439468281494521307850615217924760157093952266520337625674449936048475606089943726181223648612767694595695698797600708345883823995003866791436670611569820279278145194214863983739551770190466190307901567650025628403717564237435249169661346409528749077954919518586868180827681485507479622958126278977936384895645713030399147763092399804870428730559694789701456643500979802644731255363689371444478647942828420469153358463984443819689798922718267663505865639546172831462162729705296198452787303479181866503283273151832455643865759995166069752424541497833207772555349014964661054846627417522975778989053987738186557481818260923766918882862205590432048345163095808965745260381590327149704862426416635791890332901179500993482839736754131296315615158180884472885601199590535206458230685520495405301222100232839914107809137025785833349944296435405150197498181491922439431941854810384990599923404076201904025273133653541463174231667032110529498658427931750090553366583032212812401765943253451091669112851857731601038295652563284922066229698232005953849147083720308768305707414768889220294171788982856091243837285848101008224076936328403058313569449117068287555345141888118203112122410785423083468285669251158157882431620659691036265519099986973746275264567284602614485322217901206171248376526760413367745473028637911342892426127547123437813916401631509257165196119653353071428171403164024336184163363241880464098609048870754548330242591358875383779233245574095482175470710237792232382630833795961923938150505221265197322538080669529739477891963532861947153421787477396988947969414928543774712217969716001615285189368073600149867579938507116772475765632840268165378737013830987477528464519546472945981170936119634836443133832269739607163083352479430359595181819763571808510892338901252664758539564307814760288152442804978411843841910724053532864965901811686207978384147815263023692305884498772536899748781888564812807520425289223378981354779347345866410008465639904453173571131349585824014727227113937287073049931637024531118346802954946723198416168569406059986964882232276733221152083081263205336351884298435203385659948977055968981861868323743967599973069377821982119249270370443425886538742295666501247218313474704457003263130651688169731326386375684856763358183782324245806331538188831761538727154147615701979263659688299375066811861786447315434505129887175171456304921981834249958710048407834314099438380156845569158683299260686154274988554041901596167168375869259025283151272150056836534196325772117581383402251116271775080011945219089559986704381348756231360916676809876436148448108852818646567213805796351238419210397916307777388462068136689721434033306331072472691471534790371823530595377340368802469611855820918255196098900253896641471949765699408672340979939933505878158838278326427073457929087165049922412235999049767441162392504969689693078188483408895876334613933223071177371836979488905332130419434748582681508144922249158936955421407154140726050853394798205620734155730522688716132679283095471542725084833342107759358318568785421821937006304992914550232222698576498346825369409169268018169550993328725368154527509332278588754049781952793112724436561953014609515090788226335060574154548272421999017010982056687212669025416467037061197706479213612302924686308477246333059211579288872903737368902309657726585244189444344688869333125284849673755494458666566945219601023238319332296490334885782461028434362804172410701616396300180114193172083965117199815500778882607872326232251267813978924743746049995384084041450114167879141402446430878733319863698868594693625485488684511944966631681754912207489392425941166021789824731810053618992207738651494548770462539291272927682182728241988991407226991351354682313606753212207519273602338408803458648437009827124786055496066286880969608246167365820826065459416996157695399350338021200030256326427288155654045900433563688054289189445935748571513723579912199299747339390887704554876461714435260593592931964944108607658501777460072809533344820427703157198416477728380942530077873634696181032113483345767458487883635619379105561895973715127660133502420152252441403361643504925880084818860579978889978657152001718868555615591571497600001787416937353423806644824813658126965165829930413555606804047214564269318543910325437432844360976134694794778928839847650944751624489936415752273267932985135756731577524058787156629718826901865081404871046747946855580782574707836989385866451024370229862580995072015888744090607471321573665050790070404985874285775665178280046368885111055759902095495925066828075838747061599617981973846027123531640488374546692002433642840149451951439792897332045984695080711236873262009782078733839667146160905625927423478285768883043916222804675281697914919464643099618288600223146464415868709222498190672518357076683723617149168024010613710654314513985992611145845308406589951900716048137934539654775389379513960359377903996328775263648529407798217223199917950356279380813875417282335975182514879193814446989298366867157029579533364821839673783709616065840773540186186695151641388753053947583506551949643547539996046588549762806910289728903906440585850900246312956158026583733492214548936361751413098629971949815843706948172344974816040703514332821191170333325945150672207664906844777589103597404327365144513143432636936054433322964186054646491247490841786180791812196493801325498442701686494713816544538769618881501018006572815691791968137464808809515567075176257439426508847367782079023721260741768413221970088315870658702744441246997221667494013140652556171048756340248533241451006548082234780489802241604162874206674317518068422590007472018057106858654107502229619574232942342341162736768705371261895511995120704500777086931810857016544376168560203286518653006181478486969290154254485156449870893338931274416573931683781970234469387376077230105122579645823074781221749423106377804374764512711367243917961884260959764930220627033584522139281262261172967362844744308239618711316103500961117611571132184507919837610724475330521668278377011587813604697380203959333920326630868843090335610994283515628356081858263328418617081480235326945436625921345191780349908496554062245856267625127557898159895702568956502095222923940673114402902613575885896237962940139981932981829078806158561343799603651861560678526333103962426214584112312492367118862152764191649482399043147967585764871372281080289916819479116506008585437039362196258506629928395316682632961453158449788139105406831378192793958405854596281488528725094258410238742799466757985939148965115534275419617461575371966580010147459544666468157055011422621113179378444294201973909532719110376259825255915713138065222197432026043422514919792569228258084018970003378696723372629900287967574602221651531728572590157569981613946696429781076794171910037110495818075400984577775278206666048108371557507912741700107067967163928606117104770893134008026452519257520377477779035896901153478728742372636827088310783298562854738801316182230289765977655762047082764794238010611567966433773720909016777812089511556226343338238302561268726805837306910904527245313813870157978603327339147967117972559461423932412333042271736060814112873132637298313315322433740861715679093840803520253104091283934513730908856402235471354649694473101909457328595987672406720692244582081979842406762097063064605086051754381343616843558547965262760582644025827092416168337620206831610669877034375860904059585870342191215302849006174262451573057578964120076508107063608668484649066185374809003954411888706018793550039543956003272906172814787328594336189196481137969966761065588734530002911106814228219276297053720387016317580240464242872251933507193411032453388779333650265719761425289529868131932886834090142588453778845901930291691867354139062499345801422777453904948509989268810474957498891375720271570717521024982678051298938459977886392229432139654071194624394017109508696151452005489664391839393826492198220057668137777325650162948606157571290123280069460198730356847719592417594435680975011824454611034690874932804724855265774774531199691360283827708747732617042244937241627313326838091317146455396630281807922594594474923984722560243683663075198175565440387298739792288740079941866347237539051336695776791184322273189826780149031906783242801885900219370177882292223321926826774574667429717045370956137897227892444280785631802721764657890352769251457010457277099942552827180335621456828427432857874651072381350822818633926171637654897067325679664236436039852132377614081219313771303177611603021067046632232852752188750926772018247114735025546723805170580438851177703595239554352253385141760470645033656386336016193485251661576404968003544562963471305480667316040182507031995928362608879537472507396314454249891653083909169996728178832626237698695403705290253086150671675363601781114828206979292336889724972257478498460797386410805683690901718837818971843090845615551751129697001326543531391630185499219472963151096936640522296798207803191478277463673610639992003877535107409301950661149957963191382268691033064602323925528558590652328068284398628296659807540323623273986074346278246553050542668274550004712894161571534034825687061046366178529532330354424013973383345730884644372111977103297413997922379248963273781920049342589300234611517744990107903714969099272511437843628507303357355678497923586810420967823782308280797159160742157499978271026888681661694002764000180001492537582399741620308206743565603364730599105772442321639966557528678086345788663671235907479147977291128834769693883037214247377135582041431087182751517248398794309041114148363135902967334275152553920643598536749738475646660516503528976303216224745201848712361174097689260254157649704144730146988508196659401277146249709712500520604000163180626472474657629418405326455186055588111535885988927621562411477894394552233219764625588847099095727143151230220502594926430141573846645865976040121786940076861318848677844099492696050649631727480862814653115842041456823477212609141854373053643017632277315909580694779594264755199239524145429498590541974016806970469409949592187489679147524120665837472858150815024599637746511211150050080566164999540543287905988759125781431577645432684181343755793049569024706883649847139626487373266771331390085362696814064087994127470686381381472493302946433620071660330236972902567028989017072605609321840331449870856050277117205423056478536079519391699379806453356808978118018261794921888282588436468791532371752889721832139434141476258990144498317748133173356575544905721460206144055362670140387264556731699874838218100848718173835989111062565837199607064845071139149609296226201561586041190174154045486659065668469774805669039688298621795893217175696017374185820640257458739557819663234350485742101847846977024667131087613812326001476288474378390707689341284421322179104503797695636726491920222538960790563174478837058113496968224642857473676817109533366725631009167156276553021711298129348949203018759682941726688006807536443603426602435836200867346826047586407819755561287007818729239510388966867332275134575795948739088311586377514606677633738029200334668994928990499851759365734680380579824964706046302172313126400270182171907188316841823834773810595265191387824559631859219305310294738919369340993215907570826461960821085876185786756598037650115793180332241341063384670308517555112669647539597683507038255807356263318853316792111513791463395933045674489778810571254146183878870597586620747543681046484457921066178366218197008513529945491535362663809243294438165649768789052943930950023027777421116464771876271442214352081842602714945483224483680201083318733187323040845317506781271940342741939578430998844810663778942461360434960211719193240766286124612961327194476374712752452616657138937884296793489427470862686006515830456684996285704873834207089486846394922530748512399012131040290343045311597784587338943437570725893309628541843555962416697419895349080381846896604811073477554223594491890480695182838051123068645750409128804267143943112829478017817236839565262065543793609143522770944351973626834181988538425005896049247603283304099677862743083609415680835658824460662427031055300687963727083073657200679781353986413068113699607006123875524878433048085532227446364355418093991164399764921918386966818432261092533878474223462711699764925882810037729955391332915480023383614800752809005508888981054786189592473351632103006854431920233922721587821975356988652953918351605960411583986125120577970322703789511939580540678175099778695295164708442946392855388028808354847020929261204970981437241957081552925266273933743050712166671908121804975701962723413889126171095707194306636568386657635991352521165960123364716781565942307742013216080869739568289455784557357139942543774374967316376509262260400561402967308896987179503504838555426325300412226870842585673291392559497188245532512147919075589579862376512707982025952946755825116961727272423070386982400294968882390659057900846198791882996217943620596803279668858389406105091560117221149493948459544071658362559428904060647427872481950973663410032194964803294635219307919794913305789635089235636146166416297274837168683935972871831227440914230292113585091080712951300970790204385619432329333795029898482704078992158906115451557878299018123311266343413531262542183779790213927064628276766221825153142660075844090384640145609261691638578790294006951391855439557786254483789540980985164803397751019285890028149839646478545940382431433462744573791792708451501408498478798227494435392798380394162285883516413973779413121609010807725381742627708298854489727190099513981238511230043944288789759297609149967349451133774048752467229672507283518250773558969556259390124202206867494728847836530852042419642862707316895537352704462443089866415738191883232709199447499345881341102873885672459329823557193953011677347505141720651350951472452616255366657042960775141896208432897401010239615460109932239705467099871005349008329950169742999724077466708137649662845604170538781165422831759623649185461033274282275630105302724675844327014255961414691867965203359997722543418900745097216953452514621997815936279613524801277671806484104589045678270522823732890852053576039741344420185688022478481174056835622135725632697090993973685145353958387656910160975368204253814329927074673855797819189084112335960680387232358615106098004239942621458144820139916201001833098710895604479209379254864091274090873276430152692538351572914118579870519655520566524635986033605953164738340640987887041205725619858749647230310097160354065250184000461871597447354940879517232412677198851744755596004150281003610408397320230739561804841833536573719963662883487590552712931240420987754258548002752698017482304138498176033843695388968626037780562979574355123966575585715381465234863916857399893626213978003730731896874469734687147110766585447638069877981450152088879920072998293954605593178121027875522442846096122831511919093430560325325069158444481901665069680212976406464981012937354869708544131756015510274129584925091665893567947524439982922055619679953884738859397895999682793373409475039820714921553398103975879526971830483826215860190403688563606134690832473614372550983299651886243124371060247270483585124943933523707701007829828440872353902816305289477119650165702780116965364715464655023572187000862762410877740092103369334862060165411633548844177177901664508512003064599456852995082619161379054996969992246586916286294272585748183998069804206545705648943430085607943541338924708470451694001254067736671608838800487652396319850931717062277757290190628545901089167007641045029367679727493776325283267339125193118582999914651830519672208537614978540589236989868071654388015983125700171364118111695074284833546348137208005218935502288656757767216629093843238995193062058460898163324837678580079028144406659330304257910016203165329479430051018179786278280249768340061369840702908945747076336187016359111021855201838372025014307070376511423002249786491296547973999421058668309242004047112171145506872920290778726120703122587556569497269135031942378668384899666368460494044935172553015353807039394059814035882765611398639512890470476802195026928325611311495425820090925140638408202586915366293945851231320999785209913987570164526897949298156128770591706872539629432094306101904497709918315984932343414842297919965487647983760283534635583061251895186427337554373690650353605047486671315228276216026453855249547518000799131060699729448555838922854318703688514616858057637010379330016989513429828824079380599546854282055646471994394692829038279110698415691295485731612207945970120093261377431187117557239764089811878689861244131082682028713749420486266923952886185313971422657925896186423321156054063785564265897823474851259514198992247493178710596004268305865258503008470211684180057345466921123910279178445328882549849183034263405637509857542061803756862451368108201337914561323738291468795753787855019542960611074395847857563794779705760990134995412976235662291577618816807341155001751836672037311252681871023169373121014141395900392281943858793332259094018356419033223759801376346499235166746927935852686615850532090884109026135246241690813874204197762676919236113595029197623047607974337883999739852869889424021906748791523168092800978777847248770374019052968817135178712070632850648301646599212162716830350215049910753492925276627455679791193443914117621412145931218151870186742921138837503772031121624896277129796715079961592339292703321815312417276540413339500297726687266524309212109517907755167014237822839095521972560925392324912952272582885608254120316946974309271748718089572611118247536327828647571096760743232259750162275590092736572318087170993638359538759438375677984536403432831220599409923386289296836281673778626984755591342291382538586546157717834025894289618682610645666271569661371771101560534461486849179857209417215419711501000335076875041484444384198357404418551764585743782421371365463078856054596149336089303187679151793009999336954511967152375329736583858599887740942450932265144986246554520560874778077924135310023642584553291487677056542087278799129250487868137605872443389330684993670928540835584334360969373131463408189404703829932934082196707131777185693151370628496563164207325261471338104940212213167599795911567613700808807465772490673542401013853722825527131137542729970686977118848825735795053920859102584257930438503462542238702275811512128175025871915783816773372791213555531321542548938959014201108682756025619272304724494347426482068998972721233478968171152358933473174887017991571089440070412735859654208120990578527852295641261140589290273790138128279079251372982335119596960880689234006980852860083038818215615328869526667481992896869999988596575560749863007821023896625128658439103087363300011979047705976941389672160649000063996566201345039483604964693710699059237665348818785295375179760201343577096585816192683682657106585530741938741283773543668679802459828604581302016816213945325342054767743357998973813419177028480309107510399347028610731262453643123995141237418550242244676847417239906730741685343087827800008965356435464073057291193369818681878494009150899029577953855309192062166752899020619375521817751967002493612020027335980548127431229625705116026369891079346624473142066614952952884857436428274022005737002631946362282156701139047356518229705936413464531778697092367977896183774516681325497130762759579086328629561064281938305113928794185498609294397938968515137162757719285413351840362849142182929094951609902986608547143483508937220841748564389989588311341759844199337790139067073944413188632924695994126216833613710975903950878990872464804453950138174727661465700790096575750599980834306279000209361232920347369848119209067404050697559709955350252648053292157818957356245343225969715984746958535201377741291543147571023091927865864771328299688920456433854738227173151916106572106009910014811640169233559663770822218317204580376577833076779360392989641967689274818401258554808482513642859765150094913098867010846596812180216539624893437086827227012024822874550052506371691161560197165448746901288022677296761391110385450758010927467422178982750609749703723523207715367727828685897536564379011281053513605366900949060520896400785355945994710476495406374798117532361327905896162680055236926883022140216480211214024985947510871920696688181872097256678076049762899982783422830557066139876629901656008830478702164776394954669956068902674106436956084125091816559691300125036423032863881630250819815569090748349573516266466114025690450635891968323496665424376070715721692346201220389551868314225791562300548346992212320546324141342400707296575314280248864805364940237842753433727440582664863177799743306516438482019407772236278284482802387864850269489655570602019100727540438955449707709180479929433365008228985986131172565228072506530449395071041266664412500444688766669678762305978675913989389356370435394016954899033588972572635923684066245471093135527815734414307522562397237430610376902522867365927910361551566781681519613094659383420837242757316770952815371706564687498812429487541654316283229174625362166694152081875396097927233215000531676930908539462586534384335720526449261973376313849073767349177997706783047975177097589132653439414082683342505469728668682347299023982695014082803902578454360427429103565498668267899600636597993211020967415199979848117398224350803115468351625029210268054306611393583162216992238641604732610468880022078409468912738597065916693415915954968851683904076937438934966253981897795364676612615782848025413009024553831059848180855496239863955476108774732587882010379988571574254770240736639514557907672798849602970914278135354184685879916662193740066269182032134819112949323764457029060040511349260681300452641097480969906570387483436368643931198944972334978358498543131232420499906258129298469502449079201170592151686491107981819162706597355058436172768299020108108250862646461242355078947675778077703374664204082516027391265771282507376817673973250857293180144022231587701336941945603229397210423094384546734748368170462985522287837310608523615930853011221847940620351338547872285676861313337427123079911034039268642761769608792509088496472414565595224295310440482899427199945102653581972171990711430163698044268458349613244229916933407905985151033888371871881050768976763281109048728288360241990858462810998636149185712833480591527539085999727695102852376571291070724454117694449020629113754328057611286495616727857233527377577018322645071998024346270267831586169990803384970718398360090644295112585614294580817361694012337770057265841454612776052159299574475226159326507964668565144067638026517495668468147548715585068735155082239554130796530165302065762935899994061955149779726229467392211355656988492039155879918255987397125275791491571502141479366986507106813815672496026524481122624474596325735790657495021967302525013203746303452541265998118603372331051918055433001086151203561465422176577192060906294144620751369144853629813891686011885777909151522426380368839932567939453448070706865102266954187772706943197587134191588610472873768251857483901147120036050054994039617828094675868971483346256100940074345789576155732753039374665405959021394696612726079893855274259454971630895540828701205852273943823055567512140480611564700301329279350539001949835100719670978028130824214446741283756564852255904540423427936009623570440344136496152493872333033638074808588680821097167849824263389927861950928060661024819336675460888452416761332998033399670124171283766952978793759482496186237895590580748074656535878420355192455231198166955074453796934049010901497385490690388194122423263477143100012837511300970283388039090151714413104499486104645040559675298004315081657927914135829620469246308938511869376303545782036360109182720119146537779213527982653129002088413775758584433544883303708431133186508251646809259398418444083614482003375719441852382822001982796426981807448875079191986056844357093703123909794981319984991368854300265424052351321764490705890541440827605935538689218201880682770669418435427246715626410610528881287408972392570840220787368045030786733513959947215794695836905173857280817721181887671113344012709588404523170449657257481130459539807538829737867200624343474733951906775689710434241521190906291733418955357074441268328229740251776557482549112420241307167752991251137307397106791394558565848861476134232627692530486553314768020075868129963885171993353687194892162223268506889608233171046115478756780843974881188470715259840307631072059097728564163063040409452144888791312706687580702096654759049895724625470811249876849158852434656823526319635181407573549452257764789851108496900705120005203988359203074542620299503998201878107696519205943772341047139208942419345161011027979670640415852938561909375485444754634626413703695375874840559600345420259946030423503639058047516566133535757015842584911555709011715960504905085663095608631813507359939669286149985822775440620374799603813542695636420199487338341036906514820194694331219281662022575181693064744165304762896086000906724344198499869051863166704003100199152889980042616556562312549937962324322782907860685426751951602288600642602837962510042900561328938705243416019830285666916487698293913960152038989246375022116689510291389706313493024508930785987860599787040128847671652595354846606050961817345828725585607065727496117250316797708285589281953792625129322480986689148342885633444266823540617433898303984922206843075620794620441934249597670164429208878678917991273531871726637301373645588918873722397882028026867333557507682857526581219562883760624501852425729633385112558479034634780647897280088362304961253009418932581202597730075428312878323571411896467202786398014443705584225410025600704825841068008666692593757932740322930406621047027285092441114129330395676889545684204395283897888306764630120095493299985488524529149226773986885333205538478632657807812102635939971224247257140908933694159620734004919414658227494197380900245330379236447058550733947085722319075048737590425985368174117377128593583237097564399495237428287464330458937736595583426982907147009759076263436197084129415289648716043299149622289514376071718960841880926679618020281500431839109110917276139683374398361705748847298633038278759900351703856394514388585041047348832412919843123972768843966879328452333738619384590288715624005725843512980127153923847861913575386681854693872086257389382214758809883057044243036756511354612116349114835138153841762891113168027365280766484908293007938491728506955890322108306332251530265934856632810205857519708851711374606214002209738021212493993142253406767689996010016099633265993342903713498227562550360084464122297647746663384770927808604495777721789235324023567123341241131284763955424906167035005581544842316937565220310666826208535128270814579352167421112760409404398586086002181742512118595382623548726192523274284778235538720760886029404874602546544877575878594366934220557737226151140798497426075398876178103017890314915542182337763419583509885089908941767142420073428205154262719211966314852873779635266282534456556548118643727270429800717146535772800977575873016377491505890050429292058567727964773617705899416039076553191929487252363749773856926059030133264681966215946753985450897642408892653412772000773158184025739283356634891017601723640735736330387253320257723294681026807863030977334364564939802937132877147020989361743677605927592780414691860801845589576462595967388965959463192465770715275434392745316360398164233100392539283184200900412488920980790480225138341365722864202690227581069522108984103260769092044872206337986862848052676881084359539736258243331641983988327842991441971800169200712941779568232225266604279085762858816706557140004723982678577823641139534242520130196138557728805041363956058566681733971441230642574583054603716344082269514392003827439114800963134086646093022715134925779547146710945670664934086740357063181856876778784231904686271095123345958437901290831810615868045830145554401441807198013403807828149700232596298072684470634489360438665156947944214620542187226243962985418850420874453282568027292981304105754097398514797954379378429948369852828342303829332363129123115317230953799410015444008953459330491828725928939297615318020116654609971399195146161208216651532941696323579937330083570934312140186360851604726808969399651964731588504374093546947054817820999227310072949135820448207821098673352670574075271829189192095006834611955596586847601484997394015942622739231428533821163958554703374026407974283208755331876246468851595863442614025550550047109484131351690567921007356509689430606153022961493825260644746423612306777362579816670167726816093069226136960159673476051986127221171251893997694298428013551623051918872690633963308229488716101147892601736903638666378851820168951609168169380321503750403858943943645950845833300015384478943636743306279313290688153715563187544401654302809837208593170351217642655940701737353335732655032752404635359246819037421916520471244116139469293095094209483738503891880995156772196865833365582891888076094858589800733530880452420584751001474941899826778972696698082612653368394983889619804697363549783007026929283453124011193002042522575194300639065710443188747541678193680903428876090855001867609624334795604036227894983296952705384793523951551008640497577361561770586825259844330055980225522168618915839184144782196097371519293018421861617986379233763725711165057027576753802808578761910569679205151093785193032775296367275389973974105223996601354272713139055802555982043262664685559179097623041810264005466574753497262388837505005662813930899801019889315309616053615854186333052434204366999939049700205359195790725677645501214328910398104606944251375410828619039670485080404122793456897943531453164779704248054733340357854990682277357077556103560496570255039518040540983004098815925779668023866588051165917066168357186178076654649759079659040765668101831281865937970919790810650209655849308986469800171114281485047537925049156117532274056050867330403937789454442438112272585336947393258555325854326421367953648474833916364472329341179614013904239491055513214529628351451010984245022106203604707593694926863584211249910776999169342483904689912501182389454071161610192653861663312513744541421616094487647999979730189422743015526935389522801185990611802462451495421520425236514486873797950394398909164838479569647770698948880752414122119020869661847048817500053978338313403735156813384808625873143930818089131409104981511050055739467181882873424754300134406365890839172214798205619394633837789820233221874645366960248729267383796148019599097724378917101320045676096551884622305483312357386343427413417282281885205522821731737430398211792373631630483224092429945782347508645711942487144366734261830875051290882920899052823826881096595797787355328829363602279972451812501104123577333993381200654151755362342683350617463034783120242977355320845518408931116455505844585874227833522667999488612330483878639109238832506524400538248128552463656048108665894088051611766397413527221740742965217571730089877913280280863691802618084779532075219924588836752174436989418173493958958827590215310624450060737368130608169331369634491624747689911489217810450997732626721001004722773606169184243014797522578012799605099684974900248988258032154656975697759023284201042483558289803425604515107897046306765290485263984164145962610073547448830024818173879563619890429017880342964664195379331971795187509386080707900702619470823491085311266859370538898981793260608462950137015258065531933049534221054772477656215223712030082018179595742558051631931306511475099208456045528220706559823180646515636053322202785927753899782978610194784420220860440493049674944066344426054582208869986765020854754065933913819227408230510120629311133156332194868493932479229640840633270000761308691248127631668736058591389108703859934255681168126558053481013378596320452102429927499066747517627995715568546186501693558587583099765192938092547713572103039821956162655244768472038140716718435617254792202469654818301124197074170864030483052606762547380871635287748518440776546315468201624135904970840277134088635592707627705515513430211355081913737965380898347406775624200058548825518716613588496120977579315325040363217607822036292455896886355175000853015409641198191769631738904785105233310528197863664333348905907052605030241989022753692573811370689857501004655096052734632406645109981000102432644430911609994089636854337000987099407973755535139245100509767177719375133285868435650555033040019676894959973807049838126051182396155074352345256608470561489215229418544563312345794863243312423094799967775882678918271069797762400162942503093490944012641094906273943432506371693077574719683370014937188274775366548031548340669563417303438815576280990827128757891413497008921466980812147120764029043753019529085765235442416666488012788920022323923279195162463382232567899535267448273234509508258389182395040066637002222432125323256167569314111777687971197849567051489039754007258793256886145156775728199901508575778015934199613598374281230914135336546836766681371116094027004679636168227682158705702338618942916326174874645789120965976293573275727530904248087635995105053782277202914346242992302667342302011863650273921311293051469891330339599884879462249003909657674645473973121672440227074617845799432618217646384874895400808379068348218051689680486493897655563287723022932331709143722754783712943872111592220872462641335202904379638827171355058500438397275904527432545640522883689148451105230395588343111821002630308323715286461278376636012582500283408477816230698833015697683076838846529644318940642757184873445625291709318175214407309166263732523409765578541063646862062457784278853727600335720847167513917932511859492064992461032567072877690598543261885835091883179543187516554348403181544130881626603304641020245386365599364884985359289285681089295316492390012571875015193452007363484937491438124951483872056770666286336428471506057681671636266294537918548484034075310811037517518956055140157342474698352228117527829356610111051849320546218697768707795248350210761289208528192771775605060344711790037614296421475366351699174745817698379720624298685806653459466782624453198679579905151462043142118065381443605953818874704524514977967000229450617614293199717635915334790981084260575619035451926676619200165789330366627798617646979034524596045262049573126413016863894800876751285400604346248185909730392055707792134753293093196105202464447618846248159064927417142543716165814934502657390920908359246239871722084372505285684763256638369190301462037661453337452720964098911612753291051238876103449645432433057794239570035578578191125801942993321791848493430570150224542103097617862567729282864878529053878269773777286995426492559074998829220803462667931466946915024591953625291238525541300329055693333324832798767524762082866941055428855467628127212143552886162994617641228687715581393013000884570229063613177190150119241927584126788386177031836509572089752157515478865511979092778279292712039356626202205168159806897887530363321025762779028369814649401849150017640877090900629656269736820276107485664372721886466455884996138402221900456192596038599256614546839627568503018994732045218877202279564454840173489325956767096759299938155490128137561672619424979003199777927009188885970781261006694074786981775010598465160264031292544582763853016378384586927182875100975253148545325288256393231996781691976083265250333898944997925082953021368079766557862204408066630584651091421566244011751149669908104638032302566492715887483038712721867870847407138049644677795675344025560046023738516174791458463142082260144057381557891169454628500983687082658424873512257104192863394935913797985436315811007706355616806908557442950232241130996572155568534906320000236528426750311100382174600210313184564194788333352914784981009317680687370126345922638561935258458621727416610202016125878142267850251496132838797637423256148974543827424539088589228733824491472184820126171328285308231997585590910218149484752463925609780276432478638406509065583572213112704953386760670334216811931379880561196390045723274533674667313245226997554343545731977363399134485685558247787957227823948214627846886906305550368117476166596309562210704150774021421304849854912182695149910811948648684372597287153370784062188390984556312058824577997216300141831810809046447799294977564563355568577445719486009017720021631820660713007776504836295344179660517039244915397818507909637605567085556681606163247167000733737591593669072178692147790699232491156065738948915389217050050239912283533166810764303284970356416134909411660729082124439982215238035330474493202829492736482415776574323410217942231536904055946399631724004967601372778124117200987067411136083994446404422008396059439364844127925431233163141494083684835491603748154612450953523400432075782151197492129967536980205564618757425620709370409685789185008266984254730865546378068793805934184920690361612497769372290763834698839283618620009836481193411251963013799098052459691328827283125785218094385817319358141072721785902313291308646710322643580913722142240613879030338561700441393960716651155544215778522602933385253587344059962265471978238170751400053667501377734082230036615023270938701825553328910053234202306451424814738781483398452873839533336876913030202169444678839971347966529453447374726931868649360826297047408297125864771589884914724081162006836374567328333988847052045517598216632776335620512946528886756761674130138778338356040692778055963355609089007790137780552449189377568562248137024582230854493395323540289177531713806562809525220309070843332173420130305121817505446216800008079860404590559619905350137216763058289996070006147857599581196325081418098013947086130350586794667990508287691342031021796345563722603748363228721967310964372216565879987792845870083209952644794199212419099511421786119230018942947469279509050397225105096465030847534677476801869245691340115759221147155754885214159719726325364747071683705841830117034443719340518007894710234583222033041492740447133072197029914299341412124302386434633594267247495217820963540046949779884401565413965582232113478850969243261014921348616879877310121132516406541968978109829913831991196895608066443643279631831801226667639918729113242019695575460793663822954521035098174144454312515302575695836408091389315503189000088979779879620934315266608637100461254101458669637406331435633661606175440053710600797953440461484997432918678179339739334384483999809337952748286238684203807481312098076253103144013096544216645449347920262011098058382113342382744169233801119419165562792969265240205655874306086593387234794325139170407439688456675290135905067339875776216512712050999295158559145143566978822367084714899263522523328488681389333549540135400147771293765418720841279550858733955360418901400340294677360091363429574738456046447644574769061566502531166290518619482160802213004748870759831500927260692329209487552348004614607247788398561270386490881426554914657460974935493561299245904500184024216092904062991342704582473302001673615078719525959973287530411851191747789308835193046403399945533407094790255628201892585852720070625436780901095169074264772456329101114486089646918500385254847063129868822751612843330113134376626619225362478795429714364945746479339533588165187009524765825991755856169004951032730854358047903802042020255259121081249930172388589117250834195892366585766953805232566361115185629873812125105308166630834195794890893583121467992234529724382107043828914959171668831456798735668489805347274336826550483011326311850533949989992397452571004349325181027228802068339545390900923490324225253199820138022671601420104116184462267932367854127120907071413292431266842228482614154962661879438822855221801492374277808054310411379566598777526816153444046602391223778321156944196495582007812904399595281851464780483040884747124931722844748721860333175848803293743892964977826825595095329140718863565341323810040988537284799816987971090818002651346522015394719417748700651101564587902828676783720838154714590107716262894593465796504769185060651242905287571187390921637998695016904634192674328109102524345311950283197007522055606243216113545799729131357211423884737359958991930307622292317733525958763185873423632677840505957416812104402156576214325896357774025750095116701705844443071465638695863298033610747575136747512523784284551801933488815353417890551349666924334686840617264212083217833854644842045637619041220727869580649735942821454312304355414422690504935290805197218055227494829323150038606767760602210041655112585897024991339600674432462116246903225580463939090634709566456904146159455357788994248701452982448974216974081269466615235442235614992621996255804600440033580652070247513661081358233113294095256780839976420865041733299408306548523881813073622197728723012061096330999495855071198188989462887946022009551506412426327349272946121916850973347091987966441480660723108891089764700018824214958628659489240049405798912651065342726240829258487556215801031808000170419796576588107655747985605422229078677940117847312054455154669280858326894904942675902463534518516388815864298682111369692566679386989382747432072491799583434510994991338027878492319505572851983372046466710340741626368090445861432114181813920848823075852141823587445540076648234912646925845716775795460668958439192183909800001916592394683856037154587233475014943545443139486580400830289842526629477377311421991520669682099425447677046830691399724179160530902571123821164494740457201649112822986010223068533336829515183076085741062380671967028542668606180036675597854050766615163838725433027855920912351067474215806971933696714514077498438245597133769011695027426710992237613207822761533710680415633084160010767414192849678611155908961029044812269508751343516864856323494913493545051172959920847394467388775728576340782297606105654693463481589856789030683723884499665768838251151598016366301937292051578166457020491145568829182264547754511023803066354587323016661602622234655789620491008050621748002402203829008246745540571158867404473482527821014574933764025363347281972630234047769577070600005569401923290904502092269293773663194477674182132830807283673528939131277711730814049586412254575676426454110769384617647502955982023267404279529192372425047073366195470414484745929717563217893287514613088683270546415251076430403682404502012845043317858703400647814327282469565169095851036268687720428978041366912637347392812513269627416680865636935104145710122704015093689419297125353968865693533978832442267760015252827577064585724810513214635312067007184276028859466913300612415690328133704537665729629987953580176224762474231610229808717573166475661642884575734237586199929996637678836384059698863192384322377926272407193444282727381218083993352475232004571688018290274580360481986673069233504699250000510234331659737251407159909804980005204373895094514289837424776325335951725174405318785266957553004152238493351962783221489889818872212459569285800267643328022133412739351444500821204578480820084943287222315710729428831113412749358872991801655264872152545452145482191455755840586824279729593494534418322659687802740953977708417399205256290025727704208530777640334925573770250623451874226545135282103608530080034816130948156475018049439330139694662201436393720218521577014392557033395119308930271121430166863463628233658921995055085992180698509795920423164737461795726286028005949121799760461907340935938249455777634413917292475437959365896572792895476837287639113075147827876307542068042859361661997844935884436134393065252776440789160668300686501512663253330318178253383011250687170148842267198966870549975345448659728830330359275813976060585841508360446288111671669555316282458712246339143639109211864908758255111895630375649049663354865167962049941296014175923929739156882523950869777467958170938642360038266272804924605575697269587859267008344947140876627007744182368990726607670386246716213810170238163187758950705574885761977369787715486898239502393964461192210754703931496262330197598664153557129235469101180131109076278069799512442959820053415796824458938054651491005613461768652604178008228454650390255248270459841729092451883822274209385550213131953459840092030946426452413000633139246144924018662178231227675025647092994635799749016998972845219382830837603103470666551616686476506379087087301102952780087948837044366770550501030751544436388460100312269921149269886812535621224242398246119117339713052630833278041803362446208268154373827959428477644378781128337146512506007706755219558755907513229962489422971013569285466287851632155351363833087648086420861169326455427168974329873853369683674319247668993742981554464473827551288242165915662064832576094218481821741147875153889553064276904965142535085498323572845329142431592917247417537411620333671945134841103010890970596442353806543130950697793755098700601219436814889972023668307369752725151487739964396132934122138401834226631260057854712860271148557679585778953820414697621858181747485933428544706699458606944756514732439699017724677214545243359170650576157288688242406628197774291849500814481829128446291838381862230294014287763524843466856733256872518704745882067851611567162800107768952870959165510988552582871320748662394390538732260458296566490540856245811968844945871331102476457148730774668674083489162358714311564639234447937867774296519592861798633521730340877869250403044731189482170720945689240506656277135535910785673691905407056281390389145070325423372057538030323520615223785483310544665962808979819212545064578636785403985066848815117342997945780458981126799199366577341204970152082246176932668575501240526048215739137310802179826113015322868375469667121049902974873533166884477070007273441751338641183309039318046261172910202993405186189876854322783651509614270646631552702814731885101451049541107980585892350325135950240248747464321109902568204769865939958514360925715811792482256468742478646197403981947473488518475188778259746724470409798340907022105455856728335480056914602083942994088866006975481531875416467687178770156126322098383640573393406489909869254455449745196942283307975218976920096241812064724076982581139570460463979938258958042167285170270861655935824450930757173791041913410913950571179130980078934291060918544186842444059871890434414447559173583080176874349564183394435320035043097345671021474175384184856872353046299241455047135075562389302791909487322524801693122997461122319331372799698448927836174217398272503123526181051446993562441555380747126057855112013439288198125127613488346152496800668103004764409669443502648127631739415241325695426044153468598559884620377144615478869023674781249081533011277634668652671108821983849352664407472998582531105578626645064910868973362476696253245456743724906248501787598635106696431182992152234569549915304382701976275824187954340034297051003294545595607796879613703375013805619136843052940838059936204567679165424570962145456130465074850721248617128302716793122304822782058379868838972762265349866862345910290245262486884496863815231074547720310045756042054698693787841600408829925418093298357169553660120437949296490898977309855145846640044942002789207328679000602875821392649062510410986632515454477877344631301043543114356295926698794515824506115419710262772349291104078571890719048435778087856548807857651887789119173616889166310113172405459085436003510587133271073120004688424375379975164812090433585431163276131833461194147689252443581119793727926040816343662032261167939465135324295738982561611745608948568991114277116145174328851648677797561048908768856717586066312657197950924817641038731083994544038449741434352740331530181168107843594343311138573865758037134643081393901304618155725257412287627497662159759330462374225279283412533245111760643012215217469914768456483197158114880885777158789502386430020066400094414805290472532982040960692665215034362869478499463924497785340371297765581327673074231177412965592227058702357787009862880591280186891534469628999080170459675342989087236105792870090759366885165816994903416410918579214308411155972085600467594579259206648260248112178024663047283756704219889245115045190588690574976180894616181987910748093844227355347545971725797098008908170613826447979079242519448655904768917228744363501788463251936242907043455268958460568250220044031695811913745895088265058692554048085148820868372404706561192370956348901276843664945666927912766817275328275820856454036084556368364736674647256402257488369976132294042469949638576580041982025583427847036364841658250634089251960920725731584847579039526254606885601680734588427067218722472717009921917547696721004252894516479109478333138288537022433647935323886414388293065515959761245659718917693178357321615488553125987105650628281196574404417663037239681021871224624400151952671892032660489326774667856756615511150847455110749926104946360823103872690768755631654831780208130624576300609208680338412265462211669576525503991467312054826677963880978431389252382241084655660921171686925222784409701134479734412766358155118915246553943192995064623121929229492001592387571089040816494372534017356226885538412374856988071472545904147386816723765640463039856966209667149515572116203710100042849729704146362909567024343777833110306927442245120669219493962643349569195637033758754890088019896585680485457784204200931286811898767952347061352807901854365873912930895010326682167937808942686876973757030920387006049989204273193117380716863769109742647166943409802617040396150615367187982411292057549022632739421332047784657318998788583079975628071102254873836692555020329659194064137794630884678398033900009457239559807522756603035847563027448907094422778331468460032330784494178252407474970707127560894590609683611216872298927252307704172635708527830304021627272415585161275796244993806867797778359988062764806091138625145254865219606368617715183181899273105497610287019417082070952888595727932205883132599809996111792827822712151655605387160670690574685212906701062125675718381324033707879979412255747028605169822655409294424470832049938162587254330825305965781823256075187974114406516820306040501107742355089378208296971479601296320088359594498383786454168299424343124243543975916964139882756776234432528590268212426134651908718325440929695808426229292978748259562035195001305317575985452078498251077671964200354135860189185836910617862439563562607624466054213198262431046255431949010621150466751319952480026203805139285526940934037632241381381235542178025496340501765405575395481143799630256478260772910441697856807662509429599191404127077299282128793862326826806435635556129218218154407320858838310291816454816936387315833595104892937234011075658663897684090653572823989063494676371709054056302318236941968763993417608123054573119471936645578029041009329905336951490836689665556110593518845818206643414626791701656922473901440069147701167801537706358454287949353010929333298894188079677534077328764252027841073715124094856788630371751479739758089493312913277829818848116958223015344838122673595608648033494837047454755362051528434591869531897733775942947956776395478993289888858615735121609981292574248742551655119997664641288542354842813494829745108570028067084811786717651564584932309703905953703564485035341682484178473829347016244941591118769048624417066408558685753924626884704808392961286153628212423561559531505672190806686530259706111617801849243545941127746518244893442113592279489135353073523766830379992707906322994975766442323282898408276390910591567704885356361237241102305817587682822232717809318316505745034955718355555040493149817953811413271106186659200219614974124124641740519846131205723541279983649439536010346775427784086379611892810739444653037288977140966891317045634761887978531700584539860669755353793341464832769804976431047238240766789698386901359022784046912126648316576336725033312366504260910707329930575991863643053442312336348033981512662978145983646492454254534473654899970906345287952812790238891396625268436540614618557918234115903476984882247047736271872642623988143464524371111075886681499351663707394098332029270857483655553993313932127604832613282473561680468879592109275021198311353807459835747645157995514719168590614501144554106281926321770522137234768134529684203331915698460166149827196921298385149239390257237888285380613640574840480432050486440686021935750707371396039281087222376021063918454163423754881838998680553958482898499022738017752350697771289669607625031292706333676853800797448856429538800751051373275678240345318233253300609679118090914242342407711127425868150886489172955079461357425098384498758070481621382160219448534679710227796742106099971706774895378346810085943002648133654723156158149931355658493958382841323655158970009424111012537450586495919183196717591281392926228380333098858232406963519191449659703485669035191319911218668389197241686533937534732234255532428862227059682238660283101227787013585028591707316824860692038060283919373051115098594147563960313186048055472909706471433066854008930952139260252339854588418738682422983585033085441548332929493355200872396809633771932134190464084074493421440212548565882589709450077362360927923951543533663164591597610985573183335072328748295199722117804260423468210825508916165674275550367339855398987444855972857488551350298931417416512765835381841254083664291012922427636544760723213249980639803876987379865686217342032962179463257855429501439401841133168256157636423226273648828830677276872700353233458928218726669133514344871484563660361911414900067448867558285254072360154927912767489035048293822076888331297735422255270368326633298717889998631077375037488406528185412300094047996929694711611343774528313108808564175642262171591777064249861386753505245940695122614131286439485321790340484369795469000102193337461015175931395883953523240154434861149385974354476664420055992483722664976942100029136503671184342132636497277071337397787040188630089237804692764620317119451750141604709792011179746885342923652945909554422361656323748889498517747718795936870772891631175413636915262045351653020702504681010903216503596586737653886393306664030705162023834344270382079114411820715343240626698074729200776405433714796587930425008326168320361267205773231438340587334417962754283330617384820261031101561457937463441528782537967505003390734559219401248036696036385424846423479437729431163827151452930784300975999000034463145926757190998824760236551807067030674346369606071931322966060388116111918708740312227176434466078148028785947091158692086653973768410381976874667023463310761280770413711256304368480750241097859048524806305020134978991939317381210327750687670030669781199555005770052435190106710672394385911393095013606820522617734083597441808170134366058679878178626707098341523325067802537251016633082578037416677789670446509273414012153954822811520020509696795525311050647348859516602332924320117276819170540205726650084515091413245475889186623686638696530035800106567609222583201134859252618652509498985941099878602660649540641236813321804895123829242788753878273735675177611742898990748390839887504895641321588018628706665863780236059366451095619384874275889898749917486010195792282026347339518307786760697576570634527842107394506389642905221951216101208249780999478739523275678435789870228232428743778353542360034128690596527627339547735812463143925208465421146325526167953946767946468040795505380208214281711963830326921571850705852908414814421433176271184159855430239574388372041951574164971235899681340579380992456629578592513047756863688477118428015799271775893694071584240116777224623235545725258263181259186875609425255578125269391232344813751244597106090803922066217855429724778894853824024153779499374790719599363992855895425604048051365074709042855474561492669587538946098432885493534026402142741742208432067500876404791571191321116664645779698356254437476752571399066114623851710845489313663847550585101348719722782922533726514677083663075967332530472936874559341083830427399984718609440463699809514999619617001787119847506158850289602334845881982423032304862438998646686171277830890164290829000056509498612869284079945565248874557250620597818854795132079123168193523452657093204995710280909515152141875218664567592065306498127404230647713027133130088648917524948012390234772713391930729455207499796419923331515854177988269717917253602536686720705724333554406247390155526017275702589422090655876166000407428395852981703555326007431276208784946484732795673669178801209188802731991371877982883914113749222620657235475842855421168179960584299194244210235692925027945448699535649559300799985427731148191556756899144445596028758936082956726259956374054838439838085055527635747979894052985746286286173084470182743669315810297769674298934011495690554587625630202968485287358928327015800008839959759077709000525988676528887090184077168909758342442552465978555250063623499308082793459035667211692930840701545188402860564145887547799600418504612099292098140213972880982897599032917595825297537849440107965188968931491878358830898324780614716978323551921351274664420132857502236965771311309587106797158830409089521649242698193989016027906564361177036414648926803801607590430591733070948419263792424436025718385769294172260912724519177172953940368739106682568953570579179692488516309363285822023841536267442540578614980302087909251496429873546341202584925407315754821420646376839884889313093309380715370352459612940326490425081194210496331306554012044180611927796703939063342279011307264135052380089225828463979259525055357151927367867961397465897401978112188843242784575990265933186962281206242858095111513256648356126702062494177502612343874866051123451190969758385782273294631789937710590684150941465189789740704749852345599150751886581694078075312767858074821235945432508493970468120446399805056534620216924187595990495419654048694263676636441119768531415907171060569222776348856787029163916751135636693857183566982431081336724444716345055536141689918314525253052880099568504146191332411001346171726819029188702696658528555843312830878469714707521966686552042742681955980119520260025318019140036720883295037492487812188587718071229254367027122483712653085096885431746402095564938996714862552677876269302562504189995184232200063564340124070731467614621288082462935864159867939261289519188550098253137073454318542376397508062782440060514467693158205460113586656922408184942368915413919789065995450769291739592080230605370411345234999897927937113716012089894001401428182971998107702230578075514003701722557039116321074023690356068296386008065905287370930083806278994999052185624268099392083763915803168400327896253449703931799798326310013783098350794707691213658548204542408872785646553455262556507103384124711131615134081206193348777600576357099492988965969622155997277613037187654618574740757113843552174687187212507570492996972933804826720355546832654261018143915218341777442195896621626848738921059736401805005059715442135782027245639762001711142585271155556292882922778860732288303577499457413137820686640963630668885738286826755154636166118154024001232357848440239643351076177454070645717450028474566362198136083353249512757934520956538728611957993839018673369767006418505546840025433150515773335494346790179865753249156891821914890506520910415598514356475152085390643126605159183637043159596706898067576517014342082646090133791532715628292141520432401112102979910901166385138216734400845834517595620532592467154865630517972349063772683423705986177942503392100638659888615434186781023657286575345000939955617238072849196069500661894355348477693343313027730372850290585396606345498122330746809037823880362009372274760801618236710030016294869657160887190796302013914490143344055389634595420370562597197523516814765956368878564488230526887344163377085722992103565934341083191805235017674823259138259560985895184437688498250730565676031778931880977820209524602091056355993834113454779260362097479536426647008549365224759739909636424887900100118865694590076516160792676874296321450935262671797710313789788863477190528965658850707779579319199990606507088796555199252169954425750703102386866364760381281190462578510421025385319610469366740638926361570677020845609456875664643225282529494919809531854079975392882857227041829179377313510677496426647032892075098193488269521406952029051423973575256650550371822455134295960862375242232576755151079780204038092502593107126633828663981864155359297839280819837909373516717732337031083616762653721120194281823786517213633599379513219406091828635009846478997198178642827305915128722892947429432801608085350965962826958758846512717013313218815920652350764735625833922740436013730296532339890117216026549584404525981863322302158142262529648950378334781524473129508164055447796552438561261247401749806058989507945021274947226098360251794821869835697076089059771212136994857594106856382712323571892719983312355352421607496332414726541091866925822072888228475996303074575712661304001664164867793510759156775676707406858957940076682453033402229696618371882437464297282895933196649426743422683352361305987940872424664241304827543978414577804840392509271159807214385928874143938182496579863559867511512718507442635842941116085866016218397916615841731194480454595659687613310710302807085316295965018093103792468483377788640171506465365381918801241788087470739335799544528415604738605057642401442154329825797684549735171780918132878821571183656561349414938096056841729499995721150738804503545540400388939552388484802775529977928067522606320600406584704391114345834862525394779706242809386116619220862909923722719773251765618315251261562607415670676643502699565556580673469965486972978196057406076478044012829511514328045408744049824026627160404031448704855551467188116119350072272016945938188151385460795463156015375100132807707886308205766330492122109789838957147441773369064114827083291697544808021998405674389202795539166059798858666169251119499803019789631858135609924076088884585151719837984692339774466663470128628034891242715247927159091504651403991212535867998047217402685831775639100940874263513598997828923062336940825902907636225133384047753474057469829410050457800402863493359384561697904052795747578186140969017768245148446496566072003329474284945039394358601193378471195617161877166026928155878355687274562151154725598611833996724617003910025879409312924997937605623540839411602066172204187470343991719907686219348092196168962185064751613268765866967381370372429646145315252775304245008477694322350578015462391294515802617477674123615360714506135930155957043006151494157123236429713473918250643608074136649596937023480490456649745707963820127043729004860056718196986133492789455197208839088821744724602533173161516547864998963143376571718039155937978089812474214471886877970401787932703815656589179191273803700281333506953081179422877440781000797964855461935686725153734207948545011519417702960232515151561261081121284764468756242596201332226216142565810922778280686487626312790160557768154014485141469796500336883199807893756174855336894293297410913264787870599008101164607510610527398439637278664544764912376713623843085837174060566351485521798228155144404572352078492634900941037877217881657108042773992525579520487452994701924852687153442509183143085103511018327926059866248105782511356734249023372096734595900196513765811070806711717020585777053945826629521709408824426470754664327373927867083093468371019660012078608582938195346413345242646238287814160621538636927733104684196500784084007700778970760150307745510571631864445981647374875840000017122668648414542547625875566109910375520343798484154440124498201678593293531168160326004535606646545804250245722667582123270575532114891647849415723238452200297100529773773175420389672981793967797112104304562209648564661357051415130770166225197326946229652972251133013118610144935995744925662480293703364477416976954535656526782633491874903071809975793934069282038210510179443032939086663165927979712671590646084958022824214484001142340159762366304611671631659154907958147071706104267835786217536066835523557527429366626539545206556001701486710370634194299366878206295602897582248274571938447302051694458529179982106009474084589681983640846681220406467569992069934051188971012405372847388981685387243477798548653689122401624960108972654554668724196488667986501058885330608118565124742426441233662845374496553319916555022203204052099677432782684775498396780279723185734267733628658512049399228532650189804393863688151125886725717549180096223495253992583427496730720413769127640873096775071049714894208281808944021266897563827654333190538656025854535720192873694420988202254255015258279280219669527564437009195879896217702822529079366276992218009377564447676407952778294915096202647364606814348197979197764542574858095601374718134022609109974326283930057272025778223598850623338963789625133055474440529218608429062542452277027262534721304803729721147498866362838297147005884202607557381612518161492158793544204357389639227079027637074264654014323824873933157557919915524756730288728316407267582524100781817165834127455321476984351674241069776496027433169404775221593918769415121954010844897064068521521287461168307288747801688779161901415294117139144000497332549500909664628314878678265152269357859840727870062098443807828741416267384472535655551500227623973611901222920411513232162861475194779320891453225207637111095683167607833982095732986290665311611098714543116186869733407329966451738530778949860468229669793008230593475746242666398576317205869190405991704090602120524242197261426904681673323489253623322192026047255741432581422580201883891964543710264065342861267486463847338030027124455384803914538592196678991588350326143916759914110146201555101787889988883724265045984026241804277084128546811954075851729241018481094357395791470991236112131982076104360272344677378356703276587139194173865155567432460103753011550790477342516649749696613473119805166011640055689020208550773328802347702589836269732755785568155038342252997513490815266263329097659394013109583912369236534917753718120269852677967041932267095542236432136917281955894056740062054278427758609035877339807238985231063737053458679281256812746144543897580785128869194220376162689658124835776268742196466607729728589420136417262832207465719384179787610512041591360937145425389044737580638692009405783242046746621153454967880417475277151337602867053290638396637111262617074875293951184782439722261607288293772628213839968175278112698639509814019851568172438541042748301351616017454295967773815841537824545959584149864635432547683626273906581619136719818816541430558525974546177481797753856956511008214290489417912552158916838190350700064516391821073007244421649188831796021956378219004490719561134473777475462917669603399571930732809903290880593279399625862566285586057313803101278831253966767485686526773849612050465568154108896231178833865005036696309370418847942533843928666366523374513984584021332792381901613172950276997791646221223877787060211922352973471855916585806677823740002730288294005676255603413207119977452319659390945146260872051560941654789437830519987073769658267394135941286128021713905719866529756018968847828806629986012141883945380046365363556764765444137540308805188064789667400860284377725627084803854098703623859883045897055228253799232799227922233283804956968389058079779679440520049224796396788376808808424187898263677637861270512782176587363839720900788820027308033330423125328463465573024592792529445877280028661830229553421390354141639950463005671613223669804133198509013224474571241026715068683164962754808425649184543858478490535353723734957774934567019566331890355966432348805543554921841485881349111160181150863774728414512682966534019221246840263401526697071660665207883587270097599024225068501241748158851675071208883841233268972910714172234094692796729713843405531371241379991773645236838719400626263833589538107195384656419912770810615734105235861682778620417646332219296576400304465504578534437858148826721955820050861968745801901667429633895898608083277725804548831053038577819658509271409099027451822510957827653088540423302527956998716864278322584489475548369463361362044807488759696806815640995118278666181945219074616797352797889779619603060769775734829470042448227911540532351853938277029404825206751664116535794526050485905714367954548759140910421448743429600326658379804062966027388124375959107084452598816690081866743471770831253748013711040385390314912714313655091002251129869691377905029790039541598071945603766733597473079208155467714821656388291519731119944111536542980158952950544784136452323636684779966928638046202484496876473313495794724632950743437874953650971052871757371498116966191149934667182891797916084453313914266836984910629481376452911905672245351634330107309545971096290511121163144427079521878576596336660207978694359545309762433434500289919383835401953327205325865391956157663065923887316090442271664067496417717019373971530797888588328336931619279673055427249495287698484930077584222241401113938567655722284374714615598957875592975467446541012959593738849029780371063834936002693120274858361128410805260950100416347202573115286335981405335318885165086997049482554220128490790507947943554958265406564413323221339761537028295513434052897443210261651010250234561527356890587339465709614080715162081291473029739146066107449552050426886065125617736124192411836638744240552981950892595553154063553429975307987384809843366426818148811191646486825552303900325997258604682363683152712946709336873529546868499299887064097157777113823208838146984091396416248238257928355115221339822362964892379565549573313576201250785800753728980619678019901133889933927918196261156027753061762321363791843924766243381883938898076914033902838812786862090256587120276378094822201564354874524926547040052531022716667170006850644220594786480670401443636679615175137913461982629428275352450307814294426104643231922823693780002487250110373320701671453206394010267405355631223198671457130070583489923831559920872925227171469703412779633615223312429304634659447923107590908370235789766709342219680973095005566411937645651513843253600376038134761452600398420549060205806768642251070327758459840545452781712980544742618147638075486741733321139111079932262097393778664974957165759838596682356961442050369389048526600204646137644001782223662443110471030311489692911874287023877472957258439868902246810872621188020910449672360017256460395394672111353881313704561650960154776641425081882024449698893544100086453669116364052912816959786190930544911218832635916788070388461202764329676323231733388232051522691477143339927538583097558965319897292468274213415101505396687144510420643986621510750573486294522516521717382991692803462148948314264221753061566159738152835401415775908450161740226863181849674862773853963610996646921143290990550808157131322456090818971653243585605532521649463038997782559414678170323744302205159240934581297741622256648393847404731088841944205180341077453123140165547278343618334057295505524313345921441154633105440271656741163342511935441105312518973619928583798405833066243319843151786865540992360153626847937114558055885861391927760583771117823601069917689711636184699826566384046687801378173292704480641795668830566811429272888322651499574687789455278606307101910633281661285681690781256699256935006264426572098685855456740684518701906598325960311788505129081512139529091379858330954768950004547939728568635058904546412095061546605931379106651776394211260969543396216228949798411001199442338436441075886808665235697868148466030051724298240319648292455905860737593937499316292544288736274286574284425169302033667769747357062213888236631096518735011909756778480527584368681690384463639432425551446541333531814478922114014598262371346313816138078672494981733593174334586198942976119517303162148252931683507341312414149814382518313679001118678031467569031155713639896643440181055424901559778200568782176134483002513444821196406866487627733837156103878938256033331912305170130913948430562280133726197220192566946176839010406281609573672555271190333660856975645100265463942831977233401419885394896924080016226912117054740710162035032306972147621882449604434683426485590436903066697671286422541715472868141990552466833833175627225233846745831567104009456902920914449163828822651513970100587162498021889708860874731008258448232694160882332712876284200726620124664451339337494371802565119734379564297748892007628050762015738854889317816873467852476745159884820736531886694813254010094165504135774114726225604127029667450187624087314800256846292896152224844706112933210764582651962359082091572530590624266321522848188639709802683523761957811294687133727217509145794242274589911179836865387173631737691731746363910197763154322446452252397529554044825089008612360555700428268577850656351620126261349349914840759551073482287683860522647242256454784056016853368012140842086112206329101971968298356799743206955461056252856333041114524075401819179320012960337027710522548372502916499482107602760382069547190391660241447607303152454067185185779930890721054943182519256742531829427023631420824355709934059488372634017189804446086177199460837899388771170635521302340420879665443767305495396292795366331623091090823575688029813382411571225944209389106303544035956999633410143776164382354084171485544590119849259088304055900529668532653964468699387758238290027067696717099632734010747242943397797018686462428608381538465210181679172575309643552747089370752194147035787672296326966525292857887575963824528132120871232585677588098993765805524564383936249363357201078462275662765260553935050051154263971039863327093479960377949233890514879006507128073556747980276585472200909643561614678664003216759211544737868069680748862983101712053597417235922626577724088133032275709165133289466850558299812956994322197723834435031090743205345488054327629843099215883052491303095409917081893989188401191268867914047738434884631440470896083097168410207254721951179156189890593760444055413863831219097743191572009659866682627786310297575021486985592415064302070299080399974915648741550212297370781941570972664945093472515965917096801118836243220719816985536706091813859009747474951248531187449209748838425397659997340472261701904987386878601928288759943082608486319287441062756441475295183549263713883238770446470633409682287621311575628365783744129038979948497663577398876830020184352464712600184764766968655253757197684793822916817974250902801436587703449814642839021181303125386025754421093463222374259653442895849264047849289755838282727684071012345947302922128358887831871647865544537558030486305303925449325888436682263486832638735400133176006061402157903409874155856241013260410890420135775868043594600783947401340840975822979045728678634345913674442922542381489073483850573422686319963456011580012751282170324505780009358358985006264524764027019982495804467219143657117839205319981010502851486343247815178907244728036358790389221778905563032677183893712529323965221278993217493289845824575395967828100567076403920095369124825100498835481218192583959398211435026657190791146059559511330510785457081905139158308699005471060445997195762413347018888962571189796067611064660156101650641120626399863366732260256744543530962621247002778531054655270829025738716365530897984435890017170278614269048590738463445838708827843238585757140830603178119439819943913863629498636370194250571629024483916077042817815998783060220710189413899756691711054540928046098614554917607051649132065253700423802970242809243780828411957827463379240549828484488263939742064320315122293590491070655625404455586490446823078930431478281272024236956375129735168016272396681044848278708683915453544715015155462531085818984344995045033299685183872962709235260169276013726130107676173888640356994320760826748464200693721191132473499832673595148475274652765718794953582547498663784895821545570772303627755339556320307782366248488905400583178045506076738554924119727701288256952348308035658614121651875238979574852963362612273812443697247253807049213671296811756727537837471978639208167664552419566024825520100763114580840673626170896651311711664813672277068458472030544969952815925459964385983084602818346859514976603724408891468995908115909272295341812932377657607179735795312533218587778704556568009949171197263145384957986631959434421440261931894478901117378437111394013303230193536171977656558446561981700356047422670516874963561635127821892803282250528199403115784706300761678186763377003229765516269580954052675523113516087740245552590617802048323063895588301119503784926251738417372513130697067007470551587818160340789911250204639549892420363763688601499669455970972712509325957996074302714980207591964312909379465736424604898704449703531184982405913993856632530741496721274686342764601942212479643132692291739618542654884626745702128572926973939682411944655331637752353459241233790972583015670965272441704138121364302674466773634103168264765629108378859157205557863637840724232335063028632423456615120031756275152747463359939435463269607284266741908486199318227387251636368112818821148497376158602960667870521733351394862403439911776468282955439685624509477973147586559327318325308996262054682947166759000327733045087071467285483502725942065899171868229040988218379930234635760983895816224449234525667117006572483758996342336841383126713111879491763042018187968519867988415910272056688693172464220891374176515215575617622571083306494185609253928628177348833242076616027510896928817930956150027625264066196329034883164881074889509858568735055160788752164893857510429056762212579598323371275387426137965185708638600838520388508167954867373215050437502575271796177921609550570014282284041291082567960065306560497317481760432483573480015996241100239673029010616617280503828656461104076841931555694018630503947953805368268878286406725787154532198732454226762103061748858799359938087708583343307284122739874530376966190628081065557551372895183175210871118640568538011955378457137864409222895324350682420477249082322436404216296275321337488431848936354696393222854350028021775582614716194915624715024767426125008997010892825673917145801150309082530554927232976465901982979905035673604400179670102657641028950170151747369145208245286113935095484184352687627153798623583968227614647475046928786246114454949854785934107437650160638129890839211324230987991558854958462631116749872696281953812485751665319324338302934771824722672414388298693980229834985158975132762155965062465448723775392952629154354055523228538137908912773070867782705839589183976891214842212760652286744361879081667982195106063330415166891696981740624028435839507347497478651567478565266419458149041350501670703762858255127500738250759998838524046207283385012492254738205829001077715837143509985162136110116677150488798350674555540320901542747190739950804475677707062298971091300497895529374417232222914969945149927215759951633276087355469278785791784574718379740241274463464231395374210675673362222056254227292991841549388600045949508839244572565566267588589565283107716872389825722553145375695794276569139146309237451305269303677637732531318892830628915346133999496420285068249456499197565630858928380207723320767786927508514505679253341060584705557239668246609767988509772451500088042182724789871543572210377961788262191305716648809516860415359233658451489389102997837961615818651839118711347836543195808645307984835689679190876805505230434334041753101236018287336324170884769834687635856495319627286094633367869275549669673487510497574037041304100221195273299805626829437992856395440867524393937885239035091893651722197111788411404520095874370484629381999094724871907306360427418310456150107408754782680812658841681123956415514039725844479693007427886109084772180966998571963809431314440938936160116172695168967469302568230966184308980777742845385586657989568520743006141801120453020679868727093770002064699220713346585160795761786631351812614291057940324007656497763024203325991018000741639686911878536866646541045215789369276758849805716851966154232470501444792894892792929765744881951572515093790805885478515643019229683642720421035313803614156452104161028731914199931624911273089039876672270841996579062119121128567016202778538506175884960867104209297608071923389333616715132523097098452401198255464737517686317334348190148743141244741994876622964941681120513360144383888092992372719949027431823629015039665639192576557837938205157264359513622118927873375855893536795652837914053199335506655901452633878883762723486552820553127768235088678698474081910383380123220276494269061238427304580260692485603624115704876544026256781756756142568434475593318802204627298026644693238412372379689741318093571515722826621582008984409431103097625286510590050999781929735820295416493237784805319510959997747469635771181677300373395532201122905725054357181407357990422677490966796791573553968054704810004555350131971901826073525740037577269045277461597745590873710272672311167498448700868998371623372275993009394524491417617259872324156651190551047751139756564503376038212421239349518084108674339246862304655618994202591217574340744186811748207258646019644497796665459086125178760002020585792962741578170345631415288822627019286302452481857807434725329423148782862334123228233478056378255907763297639037124114356697713017664272815543259595367424493149292118869604720219574483552022861915766096519465491944221626260084337207574471373059497861080103462732332729508231893934911865471076778819510333249354275866922281411213531504085977125524806882765477984461929604165780420247253822524961880399153839289662266784042826840435553341068208787193874445027420937614483997565108641685413427375520779715776902859184566569195629879136360621229631754108061872432407939162489256155910992369429388516357854988294135346850159946869695990342055958935194798759268612664541475902024139890925184120170925861350410781244435563774049496919962074556507038492368238817041414388615079152955571444047249505817579142034657793103650466348687717083276922538617892035252580393879228564321369018611225903445168707282578884682381075721878038746855404078580158170129135502791798016184247188359369681024295489345797022731906794756850488434721408840564727768822912491396376218878695180631901107612405412716118824427224352183662023371824610013616395267181337084050133107524746347329196867951244287653496533197782615794642616151172684582468777139823503000265128826099150699041707157028857658622188787903970180245033909356405148639946621908418138272482731345329556426079209908885605540146592008047274348545810199236922320512674249569387462701218976981328632364406041185653334281728888553342091562857673117834925374304901658453714560053045058960108966731411987123584887620736078257645183237724203448419974656653163885413630997040034404167762156692398415096091860529322530057747845749368863362694436888254354192865521255426567820340382882353507219698598493034174445861019711922185768688812574610165855590388460868837819231177297100496019962033402275795079723974785283275291177453306517405328959755928142842295978153505794369896403778237118234491879820864455177265046610534354169081109263276932558691376363342145401048877337139613674702541089307793825856685816552984241110946915376395898257772023236596459688833712520154286509466110882394940601743588583202178281466502882751734052484140477604946010778974953233936535144036228091228068374261900847128192056658595186242470591909563923962173653514824152574203489288250692547683924650087829541528514419974918418901517587442938806355180633099836781045463428496846569176285923679891595826393147962830305726127174085186553764922897013137518814484976576157979627281547949915538763733848503709516713397941393795181066090139669173172969481025671124082954118243187708012710379486748046864656271482352022539720245770367488755581867935906177450115409948672659357372361531656334699254874487801345687881348543860685418666650037167636203752615585621532955031911924893460447983593794998614413751878463827466673129303444385418311400526278730704115857587718783544908299551524479803127658835824614186313351457443552439571771801962052371770082461958662189664025748978040036026079183769583873486783659739006158902784376163327607821603412737429149583852632788070414454715273672027418403386345611222089145529211481423278191134821189144855985297983605285729251432729515810483631050393555095714180351137408638514219783976082484616039070514223752771726961704832958896142731990819544829262702141659441627072474219112764159150687238654526851880757340702003060614880006220127197891284227493367447070556313523140329047119566879073662549523705414930449526244158004492451492778550119833052105673692456655558109627978464199707772177984119088692198136993744231526425270610779618705581479343182698186764213539961957137848773064545748909062124682130541880153516484164683025798229814404660409359469512492043360978659302076059414624661809597266613059984600774190338555352967636661657065553520258085218580400652813052699308454316522235038636585881898349189330031861318700657566959380752360006646159006699357839854845751415620371223950717718500126245254381673489575047777687624546871433950441929321669816597032510630504497081387872941173578298397472688292254881713245547817315588977601841634014256073731601268070438909373160944106597117693216237387387534409007845604145757438453119822684606167818288000476752738872236101693851408298629552817595312425090357450993605340012182860879530203934288548453074481895442408208862342020496351455009352269348632297484744318295260446798271433429358564427714955833811633824236249821982123649417483386612015048925077510062716996290956148297150646854130178210152294070846254741934960817793319704279631925346935660328332966071786573385727576517143224870705002066357143686294753919012780454687742817397449906575504872748872246452598061971269617427301744131874452256591418790340296759004208745307260797721724871726100874944113804328293837726845923936551070183288685099333506618595448267379632908659218256964492712785997215073137149242573416712791919148320893519391425795802701273494129094160857246817338712844148865752627325255769154238128080679491993545929936681119164689226843028098316272780389360896781029804766875905792590264758281055935538329311039095720260097695010067685747581023762476052040661320979723761982360092735503216343536667339227408230017697726138479047263395297682736435251641933643741168516404876803287567953070789933093035530330222457255807559321313009313108112205525151795453724460554317421640156647889665262784031297721512251294506725228447933497233529995973784714199827144347716072641447932739331904155280184381926083066323481273079743116203213063677779230100366999137655791358448803723167453838288711075259494984168773021647899720019182806963475064188838308468121018226781684942646274931970078734686136720124383270138153060746112152989393089555369187770889603716139073408134588607809603911613473458047602671822054894445039866692591412488045517466079246594109999012592169656573908397295930864687535138896971045858243195589706896304384354810538440944731327545271500187333973590603841337801146128040895432530421201079965747791801948829199537593371844219995703541631134669471832637199594889775105124614250895481255360782956796317560678770760971570969809718907557981863646043344774320319443605269345072880751428321521160452012729298575538318571546271195849039906270073782347981840924001519858286753521885061385248874945068455521996613878446119632749332016317158093528326811380583043977461324511765061387642880556104597379320700882750046322815888418511228974234999328421244757885442631676637646342543226935925070165858047588183942676086412336677974749178658932111539740819511967582497433255674036520260620555976346684461204985931495087388714304033995701529480165305129113665229786911684277562180344884807079584073997325467578886954825399040143490674197631174390293703716889340469156992620865669068861321893715873923863465865767264419343007817894207289114174022482976120867842776225198962366472544977787353642601832189097805314570319990275120787813742619166722843373204775856260220913769270408338748427186156681240464518355270505275843634291034989055253016401416965865341272007122198890223402364816491156355184747949808696727642951818823852415085247809132565420891811053783645987840602138897044711098921334790275666576095608663608918181191636607488642415730033055494964566947297792039421049005681163788323792306198097153909410804831879680290752860847400194025904942634973132823682531698393924307284218418161106643922006136334560124174417013485391574154252828247729194580782851243615096608528050578844471864714816860721192298594118192566440353407058852776276124307652149522730195769027508611064917471838811773916775160370170645242351025824263192740389385797022740347304815157974943010780109404965857840272656440198191791010617224169122416116407153240921947790556276523676495359044293766621778808017563027516554537351433855191472819102786282482136052328893523225594237204924175690322151565929535806491506802500270861208000952093614392965453308427455732410315843719820053395703134842657795075919644136483929283232141316599652265742891502161697993510637731970274634860655178009266456205627536807217961091338104493677345001294705608014558780930245544259891162849957353506355356510659719336769076357064451524018935343643254095893532651501255384404258325154975035775729935105146637312789278221974157736614760007467438639186478092964081559709597873110332461952969354354497946602032351084118709411159630648979062083999706306483704144271632358336952839955342428183521817228606286406738312586954362592786053089893708313146872562211252738419669311857453290519901896409936430665064850322177818114844671726276306476383543463707996866182598236765331875639483158419034521093342224467239886391241150881901403029293289260510426248462515226972496281026213924814849067000769699356978556484948065898174367632306097490685061578847741973572740444061547963992955480795406536839885791310538842415967564989979055315496730712971432428052059807362344058747840191333275564167295549671718248265063068635679643391472405436398892512783685762621252077482750955866642038326606016333407265283206385276986112576448522302360218031996182403508532122116321620871786431749176985128192922445744580503758520120916875370321729474245488684110402843165142341212916279613899768440084544953807167017344957737674798402103904663021116874911908065206325676643525162992625793560453859988777061612661549368006074565107863471667356954040011940676734360919676193543807823038264322286231101445166450885807085745028471722375984706221356274898442114222741737332317756155385542673436134662819476329555938045975746380837054179469927185398178190763480678561559758729466862856309828040145551073744878209158593705720640703395964846679157549414292112319876717337362865467995830498916558312096904688132054825474012673806812420331096332644824417593872334976022717056036266060186643806542982334887313065734898058939646752106927352542266469588281032261042147751377238714915026742444454354024303314951377847966555727537883098906765979759239215749955350025234510190690380530336238008496027392441860488131346807766347641499875345531260390447867975841835520033986678713056142900062191263291738470916548014824328748505998100024742106128797728575320020814512507765021642706648596143571059299673002091166442438865862531926186507352652038919096523995736140562960011189270384240345870675374145550473254590670736830931679749144011485951990828174564181739059767491036831467188316633122270612017809051308038146825585909564645379347924030662310030785412920285448384065581805137054930123398145659604363223227778279791724525630135283402195726582798329649323810756964353980646941916341965359514392457539301678487815353755170619164790755129577271381061990491172430640965904686423783695671457798312530650700524998234819045470644093223221362972639906411511400615128279010898310017180252003061605043494643546327900130236949226839213931639845674444317901845691013752531329694128519313473485210283080077001423839116213012324770651874061363551653150608927131030350004221802982529726558321235257598340700607496254367618927676527203802309359524430972714977532479383824218704975440729339862670757459792975675480545798543220610623878571582476198459557392271257832247295923826592432882287251122162968111990227197227954991301560090288389816896086958231917256592071878645176232840933182759051074397315988478254237486740774590778549523664043601389937051376660824945859028060280347700682568956384265354614770418503667210814913670204928533913571643725937805430158167660400718630541066810684149296053286439630681027620384057072635792807965989855389476638078106177151670049802865582307055466159904624733877015536709917189782543172219917326456019585895884920673121192298384251416617862169059619572797760880875290005323410206448851611413186204688981903612694359716801147615119602983277317675717509851292506836584599922566690975173692385392972326753180459989790601803125811452523945536428716647645305105794502257549792973772554628691265089720634829358578286732116275572278537882591839790436982075014162520143858834707940602718216346898894709513175762982406178683097050042064346409775579746465293573243088241520024035948594622063069900023898461935103254796312468780434949625619959390679960339526936886031012235023814871708775884905914746472357955284228250983184311017387936880593386448366016864955810679215698850943397563862276234810007220995451594747294150251299064220735056277540396764521615104061638286029889582853549703327633177971128898588220038483955726762978989525991920534435243429919610086308490762863613097259799177941213001908167029040540395876220749582757401549104426853428868501516084553863118605971112802328966382765484845813164570761830288985092361996224102481541576202024390837975380467919407696859186893443682532108506303204860062931346567949926122742415839784469800478827196561171532296803626911393091599329491062493343829218911672042152352966463928942570678981557812980836612438307303499439023305203703581798455443162989219409211702274776310450824844352240771401032486598629585894553636938170617188511649820913507418707309672448433062445203922676333694613241724823283612793131236534949146886837828833244706168180359578153718514632378487130327030490328549532873979420309819359831996484200039072094769570654387715971811696830572491632873125079765532775609266564764545253501784501553519406464037824274052901435263167812513243617887745874264105048410787992463456399623270299211179312185476703540349387220330020392037437747084119452554053233911259344668698167934312397731648272417054588334414705070288470331157240665802603359302666445127340650062368462283730492206233459740265575982025644671026313164491613382537704055857783094957645456390806664608249697459802640466115963807645734587624055772476267770331392219089752401554814187867875731251361621666108590525940902358371804342344258680706902290244780847338458727568315464450587690703403827943003662952871016133694978689480526303493512356416099612140576546169196279667210378773433189142141284284979255373410191439161687176662225546270859998042406981303146870505415961009854321366747610443475723498752731697559686410553684355947866625873740064146469402637104649647033965600884116142698117012319129165714797372763426884502891603236479466059985679271009469391342099345385264223036816081077528815298207774475667206611162726626724610738779490423990222593060271822666139879972174912748542212681495227772828973469294034569780291527408349455794251678086325891913257827284604590026426942090241426461173228134717369583937011439504632482330233967533589710956614390126791603372333584314275613287501805339116121301164960205977279902088060424656669150306074267791094392485351775960348112386186957111845107427839348535455855239451402248172092849624760291796146525985174043491383033205223032323666647808223760127354790699960901850078385978461037775158666795651467890851151688863739352033487628389655928641523611446522119713223936434104333840371953181041373488553660845825886385695271754877200210625955752662596202637842243940435206263487978108279028600532107787075392468639773160634522960825895486104638719054973004981899098050309385238683719388477510022497744545704667847462322930744162007867365586710876439424050174914680284503541596229784755553438713515371695289091560089412539353725337724233152351223838475732142264605970807533249312227579039436997277395835420966740533506796811768106874013934215268254527134508019317082804188210608383846381659550018322331168918640081834403698477477085239054938321730979781675585465986511853030754335356228018951460679167719271507065354170873854257463257075072893154962914614755283372333111172930609241551278375212586332683838818910886659310032503741633510967485462714281970409248525337616679631116693204480986814652134728879920053299575241741796175236200204622297178069164866265868753214674162796446547202271179811412785103182950169174060163374231476653626322834292815185288013609587873139274967193525345978560958576226229270690579183164710319477352000014170331020803245074500978258676018905402811902623336801325759950324704503378421859649348047653462746861527456451420696249644962265044532952042822500182998467005009437443710789313604909679591359149278496533243220342610292153213784823784577079550600841571907562544305429296269199412764577367303132999374492435682583188365889937176398656717313539476108877280167929056833897137724548057178642464338781189129230414428934741717236100059399475014084722288518248157441973692166332037262369719430614217861284172908835291137017209254697148563642536490283103957763355722891098559529806796455585596196082986981703867825365230249394700480012949977139666384234401654877318032858448745773241996213004918441590233479580050284297287147501679363209023681793651574899547649511726299855746183168105296620884265632331332473109763000625976837088240696190624364242385172538277321656192754212253356783785984626496351404770167343720261344677683440281827093661590127612243394801800529943653897413084057767520513396073137713480488538034047872585347020587734387727020301275837738060603846619807062550673664228474895333516240348552866546254116078606145824545587559560963131434909154826433369023490538977021671147669889317203052879372854993096707230588838187300123643655625671422907071522903270829483942365925007540584767423152730681974793969563517006512670698179660717207370657584700339779645467564222544133754420662321266392128457023312315587491158331718474240140336898028226112601183627128550915060820441568977578966206106141606050434339926236934331380904873128936741284466845356320069796367828442849845714396219287295263220677873010871542419582311991889547256047747646737388367990500895015445540545166915295223140349189089922563989579101055622454845027847370668237758922001318498905218886358356896084577141055895824393329978148652565412217767965082116201505533492546477440411066558008535146305666550755802228557253625909268832653618580189126011717455827447036571673354295159586627844491153559943231491105153870773548669662161557792558907383753260876885831457219656626537384556372896975673068459037239855599044548831537317495061403670168908353881366380953492643999666499659166693237944204771063668307994526229598443001948190022642201633213283386559555094030551638841741596419197214617306550564437153055025273137572901271570746232185565438810078390821085390700565357279230547309993247195144752237229493390061628750300001417064552855085439393141878856609198520718397876847715552715059980230525289853678768707461946973384757144600688509976865980668856526205397620691278135349973642383262323899020074063535587763388333740916028569148600040485806153218350840149769133827714992792491918557728207157036176462017991639701240395858673968372863646172008899184473622889800501620754860129633022338662098539821673484251646425960956575372423378555427467254345902846188835723133118686648952186004384405951040769634448547224046931572633150031751683477198511884412974477215558285467710317403118138696863744743967049821089576338162966891361057009027779908447215405863366197567375836899364370615799782671482120570964053105840998509738058449446552412271454790192175656722972875416196642335449611908438191602021446854918174444965825127657849382892674635076116968529721482887353238601856526468659884101405863054761007233159111582967192492317210332128048085121676002358933854509366732381988498925793373958013080412250232704548376578083645103649264566250364695366031362505979934928981562785708190472287219814437510553882538499141876603449456596326833549065287848081075000090577747200729485327708681546080472481131868504884486020996021690591263199235287342052544040373227239241139082836084122869223397350444800143990976145933085625620065551927271580423415558861354896019773247480433620478095420500911430458046102455822611574862436829865662776932016595397807069940723322979288253176129365457301586742655735184725025278374472716646270215542592775890568865071005437002272616845794599158864350968726902043578754601274079050503331064286572918645792862261184636025825890771064574976968458283360325342728483339806116069193094654926662476268934380704986901727197380277572544807430320492375093523338166018074524983619263325581282847269926629059849573363981378853523807344951925562252387392838078886427511843294197999186100929487520530356884322339894424190951604992606155106724677915271988714219001976989222057665468108208802299932476182189578365641038659069959762844873661356519223546811562610991945076447942078552017210610717756614263223563253654470879777964301027119902444917773985184796237015663458927093477340083635514281489324482552327430409585101597467224963767457665816811159249630892681066276476846321717976065428776748202855842857158305329172335361638687587067387028323174086471886132927805762949815463880049450295741572629652763884648205825506254549204053273842588704028582068062663846105209511066341315513121218994607699071660939695115846871225172476732386554243688396641079291550342462975014476527194310197591939037811558146235545955661133379551880919179844796638637790179136245248348924746941987714646601040299798270137801703241794398489214554682932585504528553164810648930486757615704504849191197322997313855690262628676482596680473197060867944506869031748834020473648721053940913997872493004226761209744131284329098990853489731300701003653888706070435035225270358151918365585252827495496306370387042494056720685836666900126962475266387875724162363323780679734379563346856921010878276756714392495611251404883602885598923951766719018097260154369717233229368685652121647292093922342609799987000031069839556708781659703528951282047786455669106748716985434181107670524305177714058611719935909668395369128918919123653733961219344238399451690026477818953856215824613066611806138075403252384347895750091490650139797800260460401707138899714957690995327333493835053457016246382211519413805084587750581559009112458060792399042453984629213488211316674607790360542950079060690595745121044528302531547305822167007246185891166266948883083840050528260141994061840827989048400606532627472578482059808226526229499106725795032160642676204089112081189264280605131868204231433004198933301818100967958500433125111289775043015010376212803260525821791124563634412388006614784144678190764842116005243883325260849887716923076839013087481073500816562239577886875012497923951485396864925122010654988621099963781075228606455320371985264025963141716811247674482112887123861471980599490611126536115309293842554563046780600749677644998315794915003240997982077233103407333550068545267076756714467504937813839118508706322848030663913406636263660042650208631388753700170164303447235517218824199878231139390461274688530183795331263955758456774069018831055308676514086575177711319429162591605848333190687492450076661137684126615920438388415046493168926314360547147832959920179169887990730301349588495763036205467848825362057702665143684034889521403846338591357060357860448827890376909605258611693730208836060644611550840920255740890392710222021955032722205679416589437020907034766311094831627039214242196928417159628064492276566052144453199456474910654261624576259164336253895657958392137869911411132860939101485101127594250612913993187448053102106151799323932327538851046566033727190005821499486043636767841800640896940785613640044129293407414730260882129643326553149635318626797969154310395980405902783841597726943926953406392491559321275440795751258509572151017278311345529446440568655296492653204729271199240663989416053799377665075561893946731448658347622763743976820573314477087587345992386117178922629955518626660462219499833501279021634354473513757056873455756290955240116720113944534287964115012747351449524064782185176290886254365968928490951400677683693272235810574116244500289973239956720923758470333864236635122066165458236687001294722755682555394422604480587642735896049161649752699760614601420712848616048530870730850635555940047644317300562880197903362547265862087001004743005616437671435560555416151721665778763439067836718843193899467031828212206025297141969636040508430557431992085117625475875707776447641862469206793065839642224783925242982649299288538350542300948121906141677636472758015944549721482630913193670184743100691829994782816482628699718363681336335225312443984815543376115673624235577645386240434015970350244926259353938012480271682647983419562054592659263208735850853060266879749191807960583485479619085190899922191319589848911000955670621136445847602385474024710994906946887573873026208817094695398122671710841030369538397137300951513618526012435541785342033247083113144677064066669266115571650975351703496095121695425471326694581235386429347616548188713915565473504165558591698763276431994283494752800615372697087849372162767508080134111229738282459417144682564402616763856329305795865622367045534634731683057209817764809609030933762356394160492591215453944806780690477736514155335365603885720789225572792501793267464802693848897831089743458996672425553075480418094530831036448714070575127784365385593501112166854622506172216478556680944754628588294205728714512841318767687424571085980387142530373746110353445127271933333475097824478393272422504996420342621244742348297171260789860421067253924187344091016111639733607580378813580301818072717861362244094167406484866633186518174026193090529093941808638472335269666627648856352359690317463580524897316092338696017522975228078845867568995709988180299005504587855405259433971929324618951106517481829711845518749540346033769166956587937470275308546699071890508380751576011756300998708871471444473999088575210982535217427597179871688788843936051353714872047892494883681787460515194987502003351276937743022075979502486995314636778133516796945565571245196985693453459326290280427494130420013479374011700619797099807848316719679892669191665790858515973246841730977613739900603871605549319721254955813809681153377304438774377361946224579197375039477484334656920422718724467608936264712649473301415364271271248628949840401152756633956664363665520368578141957462070843116375271430163750500990753795686818890416986717147957341211766851040703498079383912228361345025279346029801501374134250028979582973063854839008036284505511951965234378407284495945411208984648556296419303090785258584708373076766792186997741241218518313178052817618451209414957252665379421456061830081868647695556533837922399593636436817494121648721444090539661158670990167249087709169614343967680418907693730489041539713469337437779265757396971927662755287446274703389860908813506613154297535188257355621841379314452529773553289733116208316438120701622484686334680675211887460616771443016352698716146618665044888874708943257602565896095858126343292900708813510809146020583921547549829969699646392908557290411796001978676249324039282838794608971700155614938954711165053367555867477568838698742508441942465499224876920914394195602566506384865263467440916084247556675927249034363828041611081121217586094979977801194419448702831987970787319840945996405286449433004128078186750216377969395220006472606890975555874829901170030704117594016756535143923258087963493419358500239098875995676824380097587436951127617526086449947533378803917312759238707421578665619204796438705745294707991413557937068868996814590659047744241680851617782793701121471573876418665405422881765634607310573536183515457529511363606620871686217148803035449097892341959529937188686419311022188275968670742763534442610760212239199239235441007290032057017636994921966670817497969716724727914622565045350440992607916500804283924418134462850320600802916075782182361608452327562523269312608428233860573129480112723756651051181699727974399132734675045078128127504204725467932706998897990665313849478161545177880217650190317053681403042138360803762317693186164258919757266747545064973327489520015447957790011545485918841542027147378006082423335903188412474805870471297594219502808428861946861441133282746712323370969445492165133716685583103541414225694963924384621766467109994335173682623351557827092980222914030317128733278890026650579861034246022939137004651746630708813589731710082143863993739803162417601177686063772090699195038375025335546310329731175845385598164523730807862509608037605937671070293891156315306133710235839091131632854181051464048788280416530617426069549476050195884259571763439354919136863858094332483729342569040152037888993202774955605823523776624067708460431934285071936413099947168806517451951808233038673743581281417705234510225036257067279425244607875903922628910343254705679571223098952756799879391562686941640602543343913581919193704260303545508289209043640759088659962249509552291320612487274347315758085677141497794118333290760373251940766557691413318748465569826765074983413304989042869458055820671729585269365322504345023148686471754495062232305539771625038306656958151346090038317958684546710822806564434396757277791193721720891470849128207226193876637669637158190494835390190640238618599346115646813961757756149624528456218120705566305451871677627069842857084169007841584187686769715990942994211830408247622545334771077611131048347758143670567137349280864421183789024963022350565261973327714980248929298443169937860133416330154000116050650010510702124954577640377807581555156579639069087136534524619548720118273869488054329035324144443660686964411076313468284533597375433586371070894420797827937526723175942282866442302947535404133836846648837291997327445997240673217455953168511977497978950681200710181801284424459375236812226907109810384466779790489311197539400515839313119926106074074513261206819213363342467835712987822352390618158295950277785654137639670404009071909546508634373589120813642861201238891306510260564894785334137392641792572303073423054470186083054801691501817779201828299305468671024083904137468089151865518257911072500181586695547521171940543857785098225797953886465384054349417283975769465586454013020862898467705926806353750485735425177314145315898064535501192445766746020271687673254381758561238046721823348290017735106411687549033015554571195495655021488976509898761343113050789873845848755028519450329867877497280135938866012621045646774873162631008444681962405449090637384100047015879733287061305766237604971500096839506569555030023620526713039304491393731386138395592828654627388117320808955235790245734966266856717068613578941315925672229221807941751222328939474085040964772056073431601073265352433236526865067461001338994844624472434587506352936374144528596550364607645333386050341756973208338020754691758161146839756651691217989414312924174685882576029243915440511509645543879944775635142863370456756044469795616108009726126287290547865206948859843842741733995589977639756144414331627347193084083502534059976854289262674536771541503403794684962490145005305496192160673759200019534797615791363004929718421420078163145007733480849946838989131926484189463823918472705083284376062943989973211554835746362560692486005308066748302162988175255974830209560212644023658277194901691969294214494651676943915059201201079466207023326835326331815608452685400242370575857319955225582322662933264756616258712643561463523172205972076334041814014722979826343821124591488733472117995563224461993710897049468294302130650180456379192791274146227324615073860961691809567271868780708523600656446051355812984043355929064379586814283109043468004427048198550572733904725035309277724478694303522785034186622540727944836910352917595172149709509839363153007706977535321132355205324567371842274775646981876594284383803580858524295218264310884949966546512175791713119970789315126458721641266038701174280107437913587978397165522094797716551779682870743789574519547940553125344908594995636959722080374033530648803459714560932949489517166209173015548071097235441942875898145627680411846129573091405516720361630851863429209121677796157347833036264050629169455999948078109630776468416278751615316675438288544006343406728632298474595858303566255861764406327839214991063138367430645180543121850159072364965178530056718242389892311526509939183261158388872225069219379005822542571848114034241663752555107832746151095494053434522221673407157405230503850579049879043220246723713979180348185170899150591854586312206341339657700834419157725757590505648272752475371535116079680786226408823861217206608241964656428501131007697029496819875789581700770269360527187971715591563736830878442057613072803156788563445330999901051535878873878928643371260474872946743951730144677383086829753765994755232438507335818457889329274191401022954186865171566485847899865334988697526257683883907006807653303069558475395708224911150687585554348034604823291384341954382527271645375422756822659982594659630315660194035101316570458318701219639561694888827081665837567144359305008980362946117911552303247258994974242587488997689616429570424548250830380943031410139051535458962163220526861138601817359654913009076218822424537908019801114847738001301946636253145306956445042489525119718128328831084444074757053372981159629231578646349962404581245228562600829927208134639032305193290917622345527858224284968201577526265683800416729799770128374341549106319043867315143655646845295901300550629726205274950050722118829613830955282570912345374282710435382711938072505944848767492448509118185868456084750919952683394135795425000250064696908169091551901577756986492564721347492261941925804758742913457978951224068788013346234743011763076656992252513884441407523683582748124858081442221587405436084795003228194188208677817386205802706749156260673677506369819148830351249288208692415991753114402308468785302873643893853333870441877309926007042763439744032797090030744866794623615936595270091759132270796323505302355774775005936037575554915771784147977676527074878653644323731724398965991491077959397975432990051100505560580942472546026735652756922099080449022614746910268365823174142782402684440815389088620092136475599840007957151815793681636142420622306688920207934274967810272900176198733188413931921080694878437328062221794261869967103215917306471485346295127691716044191324824078048277095112516232757724873721284354789617580663070272752371394859295996926585268594632182515264197487025297145404530079702297517443475390284674088480252792511199791398966368944221968164961089796546507916036661295702788311841814213115573808385869115442056664524023940600155943661062159373319683906134819258380387328633822770402392782352308505403463995411648853126842815298564129835712657595226566402058122185433817357123144436572533662375463816731755875690857364611962496758510897677833549942478333502205535174961205819857103669285355832441150809588739983053435514860586857511531537508439565087265321067769688093472705975507914998329484597273059214363664678897462573222062266810027739585756930295720116850247942951236792221380041359241362686714910069131288622452770392487435074472601972154248705182543765319913868126102660305616916178263459405650175917148962933814211682437440021270618030171810736679097802921125446887246794691512388912582790503434435947981175374655291882149149911099129035718743367031961180148212377119161068480933888893065583854113140519734203624859428837013673593586133287729787581771950491170903968379997789557829074385390464771616601566503992932744382152901520663856615136240849666636892857795377088805200541436615560718306347411091947808819858361776633703953727854194777005728728508121690309566457507656694936861985598146757810298892935305398119682246053526101098341278396582775813063519413118140088734265391860009118376771738635978131543907910275940225135106725739955712021849707176009111908321795012954169972505897969852503082213120504421001183678460286030941520899131217934313942847994406901525449671194760010247520764409342371427261231811805413191361585242595414011958860994674861915046048586592986380302009421772877743370714598166350358853539566456043014509323415158009063675380183352672135506104607068585191745088844744929927711656283446783907122455471668137223033813024859396891103181915084282109867063263426439488295548718567270346216956924424933038504740271869466798655716522253529536154850902628468161513302042622852631066275915824450261307119520496667943832380528337559805703953834372849087999657670190605915081035762617295027724762700694745955140715835032857624739942604076496108314809808449288604781041298824715245676570020477353820209436447901874724335692119552749693242384853773064167834114321763679675626522980359789412280912436314675986762075965942042384562841266896188157591611048290794520913737295433189474952750350432956011531647029417920128301792590367673611448840424577111013358147244814982988676307717018787077396079167231779454025892067652765016344192793697360408312811273227799742318400980644594468464066191906858577600488650156132812904945672410022971199209012184700623419555584963188537337921765603890401367053828026343804735525869025882661041356734922397014119885438671058998180724769896109396324185496353692806002225132660116285974608522874971120443783807807669174453993257860286158363687661247564491444457564089269868648431724872216169728456186964602925246079611781365911640593077372269478871628391596738121357077740278253012155927254066003359481222764566428775901273854129106150117591619683328394820375212544482804590051923680905413459528431586521185418618187674653592033381946044695139155872838601904059059774238894763792607832955162667018377172420001389911105633688453408498326243097331095353498386129751460961525267623861515284787460835053053023623929233760856319527257167502632756864587280956313304460871584223341609497021577770106716734110837956799727675029598541955635114143381911201860502009707650278797546687721671214641036217278414049645352559144206411531839801388308733297336506124609250872425382702001958841781786396695303086461565707312930170780172581813418188781475473126871705987104777845185137817601594441878063359714533514240860599965918102567126183921341341171572437226945684226920934898007201677760282540137666859085046386510327563334520208772894232677114083544231073918552415075682710808309010299396747060607558899972924943349797140380065836883347471377455733419878881701561661619257966045658220690058222923538289580184752021462567004069456693115316147029966579779050337872236978089717259115316405407583132676241868415059790500906789619150833737553705373595256933040026338166778335205883961822572078496113530163743217322174405054628897481617203746340235774733737621388985357322635002797804643940754895582392131083861252664754643694535201339874227363608003760493082756774682161436037270481102715445242711197324028737441890045303000363970662189672241141963367098765473173468854854953113896731646976737273429720955881474795835788108484059448631089541020516859107780776091825407460018147894097764843915727583139091130944093112947602932355942596566724813843428506838041726681904524077731682863482144898276546928371794044681328644556735914413653884023462121257486052669916405127429419875852837707771549257834697984877124032864220375422565559983084145599052415247093429684237650651593214359038954193805540520512374311619996086060600399860766223528014061566559643157695097693913408855377284758608799953338034280613091414184147159220597964925577762738268600545288031685852785083164038474018837119126673407915623836543583285504967758464064795412549573085929870783572341797144393405307079826277870290554645909180891382434260952691548936915365916641747044288767054324150218208277251132824779298464848115757331089307905385807508062747789668550585412734868027139104573440814075290047234573764511453757140691203044397180574660624732114021752487382117783370195005449280727396219726545927312280117137645984338679133085781299949197882057912795484426742909763564542171827748747216780911836628718489480719459340515148941990805232607821894287637236723752864444048394063404326176100255877610152324351085258174765126479327229111463970198297776050942242447381161531999786719017745032877124449843418572714760799084510649020964700873935208186017384446109893891778943438515843498952414383598198287637717498310305544753102367525069903421800209853839324302214546262163682932906584798985025222540060463848769299372746752952175380875390273311272328422066187525670213138373459259698251776517760777275050025423074166031211960625339574050813365041891608964646794146067274359243511769731320651255003145941896988500540689385114814134029042671335067307002473865543489736626758358211103400833255181800531792868111774558014771304413307871208963940623972643522855152725938494999355742643435194047409675915200912687431246112435659287465469015503566406427962583162456062380290154429555183414853143336665708062844224041749474314552587407946386072944603816926809787452664573440813571802218517699738051673249549288492481350426489330736015130119933673659028881915487266502370024028478962328861796982933442273678592861689811153417754035589508414971108335894889245945774832068395869386309488324751495547695421659623533570385822499674270254305937420273439602134365855645667044961629155838619894983917316078695326923110276837702191695371189942618344447580013154039872631649440466410348083697410379304344904429683898394175291815235051213424137188905247425418864319023919817624463337666516499094709014997000757352294243301746088063731556025439709403628909252556499417204018119335038640176001337580349541322920640532321136439582951843121619822862652766075398629432859381219428845124717267951808049570198656834359901743235103327363221737141576062349552366611247304861626740131484425140203247411770967113359422883221699239689742442901761567277059888460151384733125336747426646337225482784999877483834518973200184499039745023247861927039951552273566347915805422467203303772925764748747974559117590870944782875750241277087252372830644739580186271237871537370995157118058254010756293622832686691573329043313165078315467753869286117586030062353356635642540792631361075155072444902576529436542318645034036635208659605598766015204499009054167617065579049657008828246495573920524699426861362296759228087507583479256263153122103685383609632656047674823277628833407783211698398020798630357355934209983568906725621650751693859729238942062216276193169618244193816893307395304607411581480125972099054866777289009513846715546091329487396824928321534161870044740890014521356061782453364275478240169329549026654509901455713398890740428825851278457054010382927436698756231252107283630091588766580198372159031775209791123236743831628090290187949704331879284696276616397544929853988102137409427422328967007872989402115481482399730190069430361794291385057500106799938211355973504464067041747283670015550247983849479234580032288812088740772290774829290090404824816441787719677535769175628172019507848268415771983553445669832914387563605920320951193615171484225566310360220964128430667021694622857751600694819096377878061940748119547174272173931791485075253859375641121691331307405859658853751018060458187664330578334902048147701729308132599782363061110655313358563009701174651431131718451384631551165968326123620815564167635781542710367917295304480998406114718775107731891139626386890814928536885265622008331230021021081746474201130144525141714957163838983056042506271383906723818384404688597997590279871507535447777960200928397382618486155523688728311846797450220358159829639836164370783921625608438003394930199453742565914616924142148084493144909980710840742513510977217734247159610260644943666536929965201669515966783036806912824721483144753754203080875474781134982082805431365489393444314682556692025961918567236337637163921498290206271381189950043364056074106928431563632022694798852464866506846169157523495753572642190435370037949766913674687608975967040372790497797199561834109474817812614262424274619349264401042580350330493264692803233503772778153523979658854301222182529020096043857733842239748944440976811141647907958856514604050512576785889431591575595945831007017713319030542310622986409428687799785425524953587793946880343196367345446591747623029149007807257623100360091847867228468066812464383232549169921985676456478193435630509507037235890890694808387183260410970795686978068866642650028573510364378973762468383683482338081885675618021990498213091947591689534406170572908328975438097897510114840317194485202175494507755151835183577089592815297709716859210673155309514095101272841816634754855068478349108846148419358200221872727095132564432818840581797474417527415779486285432030760241739914975419642365061589070085781870869269052000305729324334127536173782061182458463648378665757744793807597252841167160622191656245144738514779415587224977904271502755016599239145410818436797221810415334623501474837515342469508211402681730777696463408715974884887151264106694181026087085786470051768646153948673035427536685812833223448886557878738908800347109028961079417737835512770624917725975836260728048658530186286416305269406153255550178381185829423094695111198742224661143900779389644237538398559454810134139343215946105093241713162355766746289819834357418404352820437050501155897988336357407750060409751721802444412705247567667604571059210628880208536909620859464123962387064019756669310291202082298257896598288748551410441742252781910794366299642149846475260910939702592864899315335499968314723026301660214847006257625241943802316019138257261363887936657309845047754554546164034045981175765637770353343911011129267038683330336783772924173047420211528440814720246365136859944611466043698538983993422391315982154409614757793010762349091277692357654744114808688313731166493073533928278456763587687020921301420004497526754584748191334767808619978268054344532540391698498627768792682154694383630409062946021412902746514911837908798604195187244996323121188228075297804300858206047748138827509874225469612939143903270566452212111370533068633648738977737544145230904749718497738040919310356090580257356965972118105588725835958600456675062425325231557834756026361822007742252977286337157083383521781558401016890212643205887587234129528156455462993078186407434512063881553104052636483580407389492118306687463904017324336142771325774287413368606883679246400988087774320612484483858177470895232534435213025327735759604762690785471406690930480276118092423493039241368699100979893431475795782971902305032770837920209500176415656479345083668716021802202718233567765311956080896574710309930682198759842909852290315624118019331248362573754752135990022086862135296252922495053648703716728872828124800475419544733771729012168030379715703342676780093564242230067016004249553850194746274033651499618397602374280665189392887801980841382257174530900531996609850626351908028449677642453498459723688756937132061995705440775875117491569671567156536875665461841745235827243804502681566357801186340723436086198797142843295859522146207452270578336283687340832958416395067515351882411287201674633986761526415109671148048088268013054447487506313869198989896614926957190234525461005856919990094958945091057421547988436288205220059749996035778680642609601161316744739541106454499967263185454487454410617988283356397775378614551401510782959090448766540297338252049285809023920520635685512980763399671362346855120668973438499309575981201439749340413915019823804261545113504450945719226208011398251940627123407193786821851580107470021900847202239702259578295863728230771149067761014321046190650268114343244112495230238807840719076632471838404012251509801454187055558721558395903786829156979688482870883979107318559045515283957727575041825196141224051673051456086963630788574526967773082158086930750099249474776078629387228425717838664548922407548299256264078637451413780035674227737648985971422328941613828592470463356188356154418358238414616084166950751955403958871820171905097619128747443723181074244459426107877571921970011863258561521961411482185865914593991611043750549378305034301486947341397488561315291770255989211236734921517945605031524383433877123483892816081805174903294080437399648188861850984748613146750481047610236185271113851352547571134076897802449372840540354570411329053711102997133805965082985641028050748806139474560983144309539967488743100804469798369066020743630502199960666570601647283373693719573136371942463532374241709689178739385842325220000215873770986599612431737796141910172209099208751592934706835154659132049875008096022953049167173566996088079332853456123501008264211199473202262447412048124808545959383179910483048756574190812257016013166555535702134350259392315345806174657741158395545193681289096678075435380513451693628673094003181988629860188785424722899909502761689379687321097088806749704605241433805738376520144035154676279003596935650706766501349539970949328288209632934744347837616035196886693889386981640637073905170846392469300901084601584773673278560225260313553866094488435957233932435372654254151630633363152620999329758090027511931148208571976698351156218396884232148436371340240395479293482075469690104575910162806246410224755983890510910757383018818550953458507096300021739741123657439709139268762625305168710434850049828934581629861400460732226532425220607855437321563605472592798751143596207218074161178654341455595134967180931898271568119590075984206422559724554239485649340260173974403243304569529286643860457729138409394323274297650521029628808257435457638830376758485879922950711070290358517188052158967247093980307569903941396591576392460641203579820232952597970324323382502426072741807441251515516684729078797994634428871357963803062287361571482024670694347774701487243635070404761863798165568868789127729693043396479635997072615484476522400228041864579867210423789116802386988288629036199085415674332100452608547015057435363957242340852743777395764317079422058119857963004129276964321724806334851637662540121858844287284992527454625490426428109004979216517646533109389275971703615802640280137534467237217375347134057655033196275727695719292642894747286136970787243147024050076844892428711746277367191777533547596844075686393590982140035535330090615668530722438593650574281682401970408969218913561272533356671568532818121014108238974593158973442483724396438338515417285371330962597483981309988950824642644426065765950948484586771540314919480632883529688397954759706542701142143099005618819904258626689035138614817464515543287791185653785578709579163454117171787727077211666291318956237736190529826898236642101082274375627779011781317288843259604916080106091446536590119517778565079912646010458568769154484551427971410897014280216331042321791814494787950082550212924966036563931846384332658981880740570938672341756235974798165978012065019956016749956910267981033811901175131421185720478978492485236897279627319410662464088782022261469365979144956341785701237106720473160520904313538932929273005337667857693609047417849416513640500707713438817873361587366422263946356409057404958406610497932287419099697907352194090610303199870072166440608249823833674814177378761494266501112307835263643627905612366831860074696857639913707060639824172467874885943162256731301052996481854017379805625782649881890388444091849007105439215265534916555303460120217469981924526826316081224587958431930332416743929600795476094560661737454136237096226593964373299668308241754481911952422171251660242583112841335663475093407734625488775044184365578776060429149376590876733383151055884374219236534845546967478460993664298754357534435220864626318586377140055121258893594623724237877142410130844363738336952937424429768236638015023034501456241492696090060811885150226012159418487937042627076759910089732827833865814589819782855992597958395141259153170375657627657452327336727688003202765961097018010241634899770299645821783040582441569808083208624878568263720585566367983260521312185117177913317729136600756803483579692727745944274238469611785687419979533096155495857088256332885722136233908983068586403952932217486946824776938212561384209466642575965862516175060205180788770766096527018931264889219541880588644728969340625999869588145587931259885883430509713134375833949119703483371855113705110829231546249747538894306694691240259858570283479750601110857124558960692000402215901699119363130147389168253873597720037841284925897198562564177902419585464396663723467216212445488724142291932363682401483271738278315793255558835624547103578300945690946841547491430696472656160239131932586454547721632203347738891653414652616613537975140346813524011939189996495981905663477740209232678946442568697713228040665630388019153174175127530386554202158615353311247059079784550574034620773419403626475270085257791817761249188770051712987533267634824668584820407439869178149280560275217864908872778517824305087934810007138131272881394965358757501487480016889317153956769233597214260045103696983192963922963235291568973271987138623690281154051545018780560090883014137935022502218761399224521455775927564513588715385344404944570725772908272107344288621308062466851157739827159016194315262406164301683985990496539817993255560597318905223036001777590161969177601238172619465808586560418309487426859965960069640958570436705564670473243942113664782209978041792135604660660161442930006548296280350459210875051059359252804838073441407576356292490146983502701176120254812288769392469431788224358814686478202617941339197222927132238132681391423008504713025472385105656539055130207620164007938422363601367637895758316401256316840899538483819464895530312065379399040020028271558110135064915048063370103997122420316789619791330650945228919024983865306710336284123384395565535997924445683241704803380701599611216334734061374471040281644697316286290049466385212647703226860770923602527963376748445819140697693955370784267045377609250525673502638066905610265134896269807405019110298828631617188086785894483426678554623949086353314616552199537890685888848996662189017789719617775703351383449731078531507382567455762258358556739654613408277645030516490078546508347641399752887484992401156522025672424272859323925911674794951705809951219048008298690478715344238697336381743707409828290731598292594224538623381218033961382634865346808575460623931451815426407717523280196960101652545836154094283373700864436584592951426039023970834190499689815122283390814196119559168194622532305531652533211954578982223996391512424103733966610523391357952182010238094305148334302273343094552600818297559561753430611696847252857683605679576134764698828879415677180690492747072391035615380153394735555801262657716538807509066221192310261408043639719635241297537657572990035661775558406177375096284240485243283830183673163508526821909304059028421679451325172728619555009686253728825252389478041243441507211117186368952739395122396472902453486072251288109204155230943410796101033769040676800167974065832622465294210812349093821779316538173731832411633317922370678927256551577189020276138349732759997669676430481310132785254661404943137932587798147991173315930023014518468803422719197951338831954653023173585798527383895038727360872782573928852117385446606310172181136786561091658350636738007927509648440632884059335818875755526102729280259805601417149961000642019828598650210313859159626860758417512456450489747215209647797711187988897564399178708482962188124223596953306720748178178672189873326387153535426696953891135928329435702960594670737074920576395705431661388127983138922580601097029101779812963167736480290624720789123575377182309814796659535364873409329356152810326812812568999394602908430012175785658456269498011992375422590295692815217154870438000095709153215525948135941218687551753120143811775973542118260052929430693142260213411430348596839467941787413735573590652564149448427673365827944227562718581734151123625815787435087635698446867990819928120644309339908844301091862327282631084522476945454178273852134011261282450754568212342955140370441447217176005065373941527023507214727373454090421331755639286328829702555676260869714699270815615163567247932334053213516229961307836259974493259263252280086373646309628186762568660562201978741850474868090779853634041369283599796261105257813257506703185020440863101613870494598968751811856192659982027416395843281577542262562181349780284846837835331257794844572721944526827738380487076734735276706146702067151190040594843823847552708205012091518508115996623085399855287442946914391554968201050796251966022981922046888880221722935544586651691946697726175428130806639109615804386232760159456171280068721325040212851149893280547902524975524010232621502488861778498124992555749710699182164553098581430895114494148424119301504042393022586413174336910602078350708120850155172023455954753837323175079225374732220770390181173082095141695123396072655102478255337897126518838226662619102734281608346120732158841131704342475887474004342314560609320914394321692432646357848872683284762868920382830476558049312921494868143036497076240434663041849764141250413676915549218107574799989157137529254257144213851957957782604428296777672568042353752601946564910636692865583913783120142817246263312957244795491564553348554521163194409100566368815902479933458571695681003237687792171764073183918281078107664833754833553727342063191811928474264626520257026343639493191574190944453084156798107208629239641532336411825539979679517846633107026338584960788997103526475808708769343543647805374227876193397156381083187725616978655315088676195167553198203400521664845978099461116581637968623928395147146212981046887316792222399832034721145061799341759620985091102622669883324834473790648576389901878446274911421429198512616957117042013393856723717132379309283851699909179382655218740757569825636548130726428613526683947424384749741200634351322154452004613600538835212285851219585861443131703538704591731110020272133540022804676720526805348747781855856391315314087362662852269567013052589030913791015702816647974524121230117050802916479090061984629195345928092065978813791543589626896629724171194230026643982184535694576441241241619033167854972888697850245279665894523348556396980344004007754494060478062513678750914090478325080264798865213926944627878372581159902527250940053834505824008165331980469468025420710878015794728494359712221700887942784802550507653528129341421971997793962681766526247874005842328313933992712432998776823483208633372792668861466086728643755118979730408294730975828575651771604759771814843542118185379572019264259701295288442183590498892761268767900310849514044728284765219712727865413668760308292802440476721599777705311449226835760770966612021685817778143791094643304312946533025417204290814343804254767351877809201744252500179663707345812561445398956444964733395934406516821396480928938460796538861048386243781067458265926457942228893155498044890825148056023490509258671655408886288881585985989506410917506979777802020837544789862320766791562665886870791804538269215232772765501279605757367228625754385747252983048023896990777940378927613103476846751365132625539726696265584405687827891859704723360204462266691397035562569257556816172183902862702187451863102020428136755367110080627651133149355818906090291690288423759735568372980473386981919793587130439683931220188306184792810613038759765891590163944878665181122719336515578294735147312633055633990658473274479505181331926133350683507859502657551815436934602992657972171392931318582683196558312020771264858200416444046899906098712515151054738777548449148309341271887155316672254798010243756753649302428009255848294835508641821523357648412782796575855019867821562056738819843254158803338405177375224997272652818901712515886239173766345122993208998536842899890915791873221550792851686461377999341166411952486943377274567574213142540595280447592111851645125057862518978603494816827078696010719871070236569474963297680398887373156833266441338504390215524351667617508893852527022389652276819860250310984844219647622088892392275434018256031556518910013173668790297596762509349844531974149561865767963370614624854571529051049516658322000069063563741588409872454457868599983664069444446361292967304272251411360820736787244841423043305690000261659142798523856780812172599346445174680874550165813153900975058732997717355990874500531268021755300150961818705584508261968114994506021048478632136211067034423009187304813046371797558574646233533893431819809707642396216425439175135199317651907550625041974206579967369608864274610059356638374957065978077485217737552655047592055973686950030945394819513601752860977679425321827858355685643484654753509271913139292099121862515324336649892912146510664459742962963576092896891477501286634876725443925072112717688338490895694895743676964078910585476962148697938691851187008143301542088714755201943849168005987544838799227157562938985062152300565991415657810463817345819453190745255344440743839797957975962849192190251407942656090192592408729743448011505998773235656180025314602233740751736709770500496883440030575490698900741907265666774821247993662864392089319460534646864490445213625390495521233900668962644596287831878264746842694808550202214056946351810262412863823408400409944201386603600638482043041856277866711781905099446662682015944473142566746568068978424426034473455479620136550635631495219812796926306245111981050006819618947419870483051240814072745846431969761528013154689733469279181746605889437415487052953889805467486977086488030314111119641420812272970713775598975124719489623885338575297434061367396504064193253961018958189797129844214645510717507182616331760832962513158640355579536119495489474434451255193847012340971617140128438359883218250178219920276878590611080821313947859112345078270974722093291542576615238495083830561303081530968218494579595359603947319766508966751860008747096194291594826382196262262629229678296081260058316396867659599375113483957137050575488836623727641130744128605970584698940070155660793297667089188296353422543650099194594058958557489822125408132148627591250613046731094964088303462255631957569711103222646386361287750725474173317490744416909347391630457740658463063717359354482560441719696148288749281908549199307026140806068383727957110221923466155104275597570022182591362317240938374028060994018751587945888419013563948557718593437266272748000660993925828725974735376635758428891330145395983066448145223490688574035049482709190865166981228266609716203359018223860993540677654051352266964452235019390531133181942502138999909695068338273168647254771270866864757580455236331344866826417906496853325830843160913524364943290403974596794725692314662517536580033248426930322543284464213751994285538390225600625521204445391730479874330961399563878337039838868045977381180309828483936835656312505956631544517719009003023115551566562599917314775128471129335839787741333816381009608551465215635400447177736958056818657327688046916657422848001529358199912186103620876743989865257554603746973373714099339323593392906786782658615695762441291079033909725062627652876323082493737148889128919933641491031917311545405561462182090745509825381647678866663196058920332279873047008107956152366118294823616025225622349790100818480049069834607054821388195184911363971349496334353403598984397526446284818338763712778798738670698530300459989322025008273842221204962778457129757042204675235886654206095712640210687488706733575179639935641288017546577238123322527531613519176066410162001016961405376818130830969880817836740552735695573498719629137712233394577314558545791546199292570652696437678302135357412533897302503866150573393514489870539274253106171627906749727887612010568609490198180850593185698359550148742390898822198839257255124718571024643056860263753011621939088818076501239667441849749602811956869727234874858429440841578874636113553164147156338667822903873786591589261380671583349935565239469168714784228994711866651643843476178956029506317129135839390960025817816622712368201928204868503696212799024343226817036529531054180471664511257656564609765084614677241962256183874337660568732109429842946664600131030095406059122662391442620598903196216984851711766813100114815509359854801727182956263562953328134464178353791209858956422586518671436392760742242819110426122769874991302524971181417432407198498366433881800475622186891462036103405902534093700471120511808573498406195232050477723624953029504838544169290474838431132532466719962284724791852428873056923235563799348698284280337115395586165200389357414905117707830126890008602160786057917066155915399839257805730897730427910142191520069011689444654997763291074344252669018098213003557100796027323157705207350125006708765153626637502374848308223707806227387181261288228411827624124685676725549087933455440405490774947152132854373720076017268533141478179177488041976462041824070179773257022344824539881254601691611684825697204571818703459215469130881517375284737797558534949430532706332267547728348672360367559791366073515023018241619836320562509049085249307217184539931727508527277525951931255746714791301879567236922172308581657895574264476445482075251078704926929091102156613314315294102332506017656067456425463605564393440227095547416293055684775499698139479436068099545445236703922966657485958820864517708505581430502535212939489590683536473125266847350235694547067762742950169480243008220524600597153987670106204750915105313409504770781736380670980117933885799069745251956730593330510514165786658381088687160954393966689681935376650371215866027560746379157326001366872364939467613966015710772602542430170643716496521438970592284317032482403856096477810514128808619217692102730827462690447842406980000202060673356060166935067297364761080638001441050444131323670737427866212713801929183263220577338190230893653928509438562290784028189411120373981588333675472316281042617308619240600353956648354133563520706691203434742999762395520917189856771948627100802912452633837674395778193383671157804822931881689548668378504986922777358905184320824438648540117066764372575255227557361266591019447188429750702619267606150411238788342704785046651821751745485457790916485856214970996585732749926842344555758248074969123922465113129554551987436261231163192111848530052528629409078449386152021262288899514373430014952634655751898724370870065099182262662029529721858132994756398516593166354749776179632618969311943872646764104296951693972199909163098652929088674759841252926460780151846162825984255144014842466969705476068277183455423114778463706532137731136631148159912197495401899826690245541619060143523236559809745695396200674568094672973025947245709900777805619067148224722214820113762342161257292474954701019482245027037960238437750641468463826048519467893140491406874984268853026437926061624016278002149994954243278970237842304077119227795781708399283227419753267222528974339242070434346674155806981287476661763473592420215230104503659478271217305893017556026473091433608537918992144015748210381025388609000818719057701412404317997726826422918212750990377760406978115995372129816029546318096420851942057294280349404664668894678340238024323730566771176052989173307194466575974017804560053082096548402647290089204736747615681710273509787248544902783827791456874116623752406379556911121211663149039817840425582733792768593032292058774418781680077354799430788017643729262119453539461069507838438825691976031597907825875852771244243288055021211299604286658672767471790517463762526900432967239047734805518195648042856599414108713933389415171061774049747200440337538318457307332972224365772466329181336644255632240475116499765507563891131350947671408844936106340608398764895699162926925854494266744603849267272606907097555542479785423453587295151276933404557761702381568514453548019202933790256496435330361930177952957197080625186917347110166197674870539236569285030001272104084951451430264710737205032631532413042181997152576796030055606647717739434522917164132407165296860929193878967242470195300565539962626140309347615028909672886839211429631593974872374224297337653086951888098779124168973938514925805950575832701854018005645985078601085665750923395249184706380928176963500552571861498373215792156550591494787739858231987285212195172885044222236247882395831791581825731122219028908717176732380343707249136990682125492423916605944029838472837801082828349632566283657677791557630296793320514753208338613470644253643091778047266993668613393194978133206568914982825934368873245195589564371806948409736962288183063154618446611378064086924758658333311252016793185153048109880704709342188940523481040451592408165713283006362667177119687809771834242689363716349363810401529453937580792791143372154685877888181429348070599163189728588305374389528182289957483356966530411598696697976026942708426926979557918842887060000026974180275986776214112458619976104749798087401231378205850145126324277555425240607347289407090784644912147821610630511951327732332123044063368439474323011374718673477940055948131481489578158809352434663256631120299234916677276081104187145782513869460069994180328128851187893338178646710840639875197201676182113169814563499916933802308273809741524435547853096537064753392849967457695773768972601971178916355454749624604721133666899599079883112715344169159166610724733032632439551106467561928557077336090245393230260907157455299698607715132783207182386408727065187194318536171425552285004755662333491439777407304966099469896212123146075755932183816956168924758795273844304018980613035719593314571764163009152635282881719141220961909589979125133319631582275182945158290858094931535938656191854472092739185849483170748697047227932322290138459290845005431707982911158529046194689022802459889798811972677511424041213787445270969327553243910819526363924683658773956516186032210883847454326969241048014486707327429102723648309841798976456914378964915456942350448594807051069967299079648982836060011952069069444887578292210723648303822813621265524135659038838377326678938244753091802339626234573446520261944431589816422884201382186702005769610719653211972809633903504449693901755473392500619312649581682850358983752920806661310914505508840464272489021616577264155835819591288688258868773400728616497124568075455372100637820234312797397461032232727865242295023155693993008149325710710008504198955879949883458422241535646185619605239909284648420289741618346931982228093436642929358304302792151637826836003946085203992179319994314425424912070428078677354793381984766366690176143143684948938511628769924969979181038042936321661671712369584632244371856196416314428910851753306462709344498984277021152185871610164488050113973987705172336033544020997687425944045201040333420577773637026787910336006237608483958250662200075532148990690047812679689407756725604809530314608813204946159455163222872992640842817815973837345505641250427332525545525665294239254244193052963568474478101189201239353108946116491737532921091676872623394974672486111240056565272978261169576219240443541473136844100023843822877390078260550160764771345518729881560842107210241125414239504665029808817858559002050449664479501221530653320562483092760116448780437898469061390020774293761174454359742399134938552602032435649570249995360167673416128370064816516017090212632859138377475747757001791814221465249360494782959013190062385012636823188444055012769104994302097428399888408711942036360031254340474306617747480120627000036538459482378842992347011808273825690468416593639359304725437078339960009800737492876226548859302642024438539816946859830709736684550069785445576198621066953003457974970838805657150414003797171553033418543392308719849599869889726934563962482548787010954258764389600876099515809935479684742683814583166449154717770074256594785888511975787247201344584422606852794273959055706561372079839034631545093697495152709983598694606697186099821357296543428058270260192336284258837548913286673033020010421854630461332321218447540784477034210898937329624104345662519167558650176082135002196482834103002106694627810626760086435017095284850814885092179994228629951159835925831639334007674232362772443963102695719108014803542086126510984758929726808418256174682049939268856771421472243351974525190948028216166379088580273982309408985118207775485681098367287585983373185456347827443262742914891252964231800117267194169117401360206929720880128765270575455393192638444540275226031058478595993181130875960291956922801104478907666523618894695205396141182774764896274677448793142839509940755631781711455786382860837607385528931013808297768366640018401695847125334404419720367057455150189594475323068609230558463391503435106303462630232276883632487169921945112482851849327384279231899105495895140752117419780725253424976177951958275466925601686365180107988200533168193420240264673544585945613718507693917237087943981384391997138482111003876971717082210437211038168199074066096118530967790172889016049991336830687978292133003408454831908433132390360285019157227215183401243630270217276032795908915342755902489697890496597454699299658982240989693396866466278976575542480790312528421670708575187768467217824284833831278408163247437814174111172211673172353654553684703800603248514674633757459763540417714904436386427815799219842061281756230457914664484749316396259345339764863660973114621404118615534421173583910189417926214976388373935227010304211618807131368708417229227562497577846056721635916297176291946963946898648533378064091543437967663970068199394533501534417900662235910408824368324491458136959263443600460794859297219568433591448500438263002826062559377535756591723576575204602305964802745997478590032025318278949215883766837308316321395857030775190051066165841364160244457566687735110764361878634882305991273122202545079576065717073904900421223244243670176470900900337109072096120741244647721451258850743779119623978275374124877772123660407718498959114737632744092259513426009771278912598868940756173540570033014998464293715315067579742125251662733588901311474768146387987626852517314011334201757739469363302717437366666879235027600741662853802012228129647478650423184615859217025429877214549292641294343638723975737641628197556486324503047992234382492862461078946915019570249254898485430287560098903675447928285054512663648484026713798628017190953819410974195359842953762181663795910104115185308727791156431611561863242643980617582562804973717409993690007983714795092769855611176648064753242657970483744455129321186885119503142207754452958198697190272447272516634473486361393996124553635261451709583372052207608291572448094406103108891604330385436863306045712077548857671169667847665587951135739068817015575419982228861479110251721866121623712736602042511442913772612439424220586753624688680209250880155584996602517093300764750964388048180547954735816858626311627154501694798288012156840009251786601376455588922305558195801007310639936735848606873516847788366472105245507302735406071359555093019506835081858034886393116545171991098113148061729364243487697883697109452204858018215880699308015932213661070521787018553917469965850325574460752382337448859513239686224250695156324962830489109383647496433244240040308402572538624824033094093834686359920960447578141108029993682254576740512754694897104526337166507908810871380974995059228858469564356277812428678143394197859940104433041112870145300011642663335946661111426613511802046005402342145322546250129556143878643767555561411974572955548170028153500694583757923716262930521398951794944441906397579749410028343866359351837511229823248417177608209459401262143288426870316931591418014121225335295255938576756056465432345804118253036547404502802502273156146978205991223915300752857396306318277563924594881779421325350830340370946504700908106146710646621848371880511534354348472522743265177345104354634593663184458282651584281378422391781019586751291409103430923522176912299087058353900258830925758028033357040204018056109424084342315879235221373759526955302689488948597154562478890693608405902264798748558572982316770843885444035928998386557145746330739872542849686922055884084905001531469480317803933463212131698562728745169803413549118760539156195660267908747119153222557391188896860356182223808473670705466774923940520544957276010667068840442188505369716249663035639389770730272069984873038952115889718431690488348419788535422698528526808226316343811320859999842065812496682586735341990918454237020942800587963752367197130500920843531134719814554595716059298351051819129642760407216768293906392905937673083542688274346736711003763242137047383035110070921720008855382476183501828124997052864700242906536773412650897252976815235553679261877611779137707039640717986421824116291359643056911709274001224266734507190940533695586998876459729813523772247021064875392422506288916910442176516226473179637835952401576305302774514681770056019282556777163528821317196564893195623738145594411509497337299713806896628929137541745196581011386952029609328093044203988825292721203266524828502822728509632335528593794359442654654307804818769068420227811009466026797321830738346829794493360399270795975057482580772047580292062114706740814391154107367158493992428251581742944401378224772845541669986423875872944925245277061024179521528591885153352933821550024237427978236133095559460207658698165657909218260562361630696741029328473215470850109160406905246088051780378439917027832491203542892163446791606434946362009865021533891437013977231925593191621360494449651472348641076763388867576705520613376691934129534467879871821928595183486121777307739177299148344720711805987837074358853483332150947111503787952335283772130179461574129394205914595937500406362509132471305583955892815689459419872215034241771309886402856085661112475120712746686607483295105824074070183322007078513378858815752687779740793045474472294905678464044114011850454653169715894601671329399336269515820899817398939051236275967964812765333058901010713503020526031198421670561345547056003546976206985769116795920563850699521067412985193000438220077056745736069117946557483088627184663964156082144790243863109268889675205433523782895378110079399190636143151227806780401270258334572295077638843238522546085733129764942426425353537625955164300496972070853013948190862448149425354887100752331765789418636661418615140561116210944639867093586229466589343792759127893593070095902674139844336465676577516912629121502655851362194894825502511267953700565682184051904903792395239133787326164881283904980602278669032612708427341742348957813168259379423208698022553326600665549180651462117086810933343434923099899311797635968585764086893331846749161277483100859264834414245132261545527460180978813528946723265621615135644746919607258931589140099409070517378891652680604341373405843558944335983726854455680660870799011164287860041606960149365763866697412864861305730643894916243478260477029006912206590595291443466340104332806440556067115933061880863417271468455041162577937307384410661497247071661548254791032130707451514472096387610547875053800584222856153306685003589225243992364958184478666391518583241076787337782116574680404160583556366325033846274007516503632840836575062493328505031947056143389787296018961616000762982316515684192765115716896251416917114675119532538759076887717390110630645531227100086501734696919568952593358323158101304611994262917981534441764105153087608637886043937195298212578691227705326249020167911899365120232204537193256813806240503141951582902666985944049626628721132178000985751099285100568267800755742312317339174597231585774020942420052410840401063932221209343379698393679315332253579128678855530211752827987621865491639773075890636962783423591944550181153508727482251110558450649605180887658098851273140074249959953201688038116611492817871019419495143646288624849356485109449404789033464385093346386384981314444166423028844419158376961900687326538872988363536078214709352202209278561159877606675895885362564465721192848390437791083780984065089595795315893436070654276184459183123668422759387776248690144476945739294284411073018165410829580738894891711538427432935738621146096312890333055574136807676052956811572966970374010917370698795042495104981004245122400856319877659276819966949168003419227311913426734189569728512955227050740933207356198557247165516112197843321188661232203617081699594478914902970222326472986114573722034228147626382093550696560644940789858225017082780241233860795416446411735072713979580367456208579461123302545107001216597346692666632939154060729715078862849833607487830555045480076026946283631432035551888622935788378452668165724780342374969966444308555673281055056684267726663966205158796231732436059468306766440860570662143517761346118183766318846581367816418978592645770818125730968386277584091742511120077857641909544424797428151543552873910792947631232462272848892490077774060277657694785889534640643015553270574700211907989553647519776796473707248533854192099831341643953227988144838107965618204439268396380586831489045791315539308975011007761033433267548206100991594963011403423541202508062485121079318513237069729914228280189235928674706636878453513966374403754658673888511210227436134767734881982993966138061936823894740104965555865592601364931766451668292957742090010778742587326138817519876786052919481114588751618482339987296080723217859133793382042035329070649015274598491072409654976889168443392813707058602803020675642999912322132491520282564429591490691605145428062129148565782508141711467236858445940762040060059359627383946447921144551620207852942464768548228976718531029340012992173042927943764143607338544047487496677444456284441700080686447885545726894292478005581187094266601261088064239522409514334203396329715767549280732375927920039147818918067823540110374690434568325302493010357550952564889631979051076695353742806383216267334270451699642996560216922913462129920930785788903363708186819371509368866505534356345487704368549810645455202722742048265098481744116971397499139720620694213210387285970328534700284046302449138913461871529055079797291459267296080941261781639831935477840074156321624286240855457421291165476787908376850217064555906612281146836879481850620126095784134020497099714603378391641061044082467094798444823884771082887560799118154461440252049999117761559687688736048150677112365036413644551528678225114876260979988837655208788729622076406338196262484132953109220883796708735732196385247322267926844538385313139623030269202578314935065306616945858043156731684385435520958382805150885052203222841289928540067068014912038553061058989422392836494170551666143264774256342042775638343548413353372650543300317449876783611183796631889769141518474837688725194041764696387423832071595070026259886631011482537256532062693402188915055603596781999562069212013176356151580425738337440221657650231219208306308765665440787501884046116088500909888270224230688070221492679215300813158056526341345760408887625477653632114975502447997406853903541606417740973822343191880774091887078801946360522561918104757035291633918899131827469507589240491958615684190152571824821722527450397664135392374810762976423378440099679249791038144112405342084170679867813606073719167129829630237609832694526384176675547367757500206095991544335460314911238230176210280117357655265330089073324948033789805209334390065072716272178838196626775328471150062253775574229324122662684042221337428901351210919566496485072320861173466845733704979367052542583454538234028466279090213640642922903408479271323206113518793197078587758544884971089800630702530665900228793283090787579724679129996857948180774437169720141070095221825346830492826916911591872695768180305032651578541236685687128892587509582256457942061561923746696515505108384934962994302644374151067885788005799922288023767964208091767133453998699776723989228214756530208036969285907038739855476986147079839005133630209457640156044588479897305672872802648201161340174208867968824132247977512938914787333823981576970111835627533145826555555368423402240933228664711413742179485318468180907000959482611445069829350172016096947349916359458031106157359234533406372087111291898234813166368460207886697869179842466435093056211162740236206470829881321053417527504010919561658410147709231940272069260472996217610895204373447326680960469514929248926089533843859670440122170538400697131055331961069150413508672379044412718541803594328252162721892582165452240724277779058074310082775706639684256395899907202287739842369317298677381392374106622924218072428670704805756646366726019993067897605085113793345437450207683437397862199440005722415842042739713850653936406896521773559526102188771253358813806400313077312756461411810669286125404571399047464325957018667169117483924381967628527569576238065938941726341973407968835923893557754763587353174093784398795478180807846683419049055059299206944369010434592107334980175161606880133654373082341218637096792658795836536393560822863758772722886794813754080550492567386478494723018488249770127437623268926896528220210086532836664461964678902298729333623377259925086541870568373104107681573568189427366464331317564347679637368200015010253313264133304276753405167170167375973661310240130571263446016021221341068522040708638795951225518394468319694373776489763810739126127236906311656408372544438693269512342234304822474068311348179683690047354188146441976945526812185510510502188580075864116124381672644435378388248461747837792069958578366859335889703435436099617131676801940471947336297152523576973606813053198917064085256006355895058727656631803651230324646810935414639368302996665725663107998366901676181916306028521426925773366679981072703534421482696580925080160871990629012473815978047358148035846231484078978169552908393320029850574850207562670099379968382173167073791243698094947199835477084167441085734262699952782505597982869106663389652244028948609339946261821729280688899391587487726473266676204392593128055384337977512172963787361783997419613056604457344686877351218544901524964203467029197351062245815624046106444749562497146729815631793267913907874826884743687695511911967444305026270028617951060892165725792722229347421651911618111186551564051899773577410180273311860068229296852639662186859157215591752621009479161975225269791902643424842343384728104369667617112898131655677370111051670322557110268532736257717371370405336903362298879834878966089308437974636422521078677459117533173655010219906293577285937472541860767822014458572433918455358809018413605771742668606091784503174612400899543563727800565013661761844514770040300703811310399266578205137446002193491888338901158134185039370881018024175210606290020912665131163267986269307333970485486048388238855213035532003564480689693989384466716998846168963687204339971916946453354238227268261187816002831052433218223677070118891642948133328130009161900666433280385706958861368291380707014874399878631100996150227532914586209748380954876329936690849415282328520608722620661374597313697403787286739013042722854845918445528542012900987120534720096971173761735137344743191935728803653975838869493628273283280362601734468599848218234573073868904364632522175008893731922238182050557114342961462353728932551209044561899203735167075613469306843983551657410753991345656393459294835775907407303978230004012970781674731875084590443499978501393787762128172948392613270733077965557243084919275555602635885553381733140848153391709516181679032049177130362576941830259344416852007252902132359350787072781531669618211790822395925619509111984071207957371166901725249388358752033126183602545414466481345617777724869680863431669970007623510853925645926890738908239335094429013971560205763839038154749004923967327972709468881661306518877069622142769618973204460798911736889120341035609246527942430851273001972077775475873200320256328880823702569859173584311547875750838638273491041964636940015948499488091045063383240895491245730638618637738734216526945873716004653297972787065755309524516488884572902163492585311505197618938554031998825024583956089380649103051606503637673265567525545917340639127001300389550291308175031855196194362101652390500688435333465733750589157280086462128852042661805337671442303734654745088032691195249919335711037760534735028749233637447110949616383598914237113044155322793587211067391416192688051223779325915710400812613619983384539609495894754385213305460663663201964621349469090662336047509840205869549726319284413211227517288189303036435716925943681268583706540157204357807972030562061114919953644252575980064145956774421307596687205061440398657709270013726258914034067081859162093308803710615475359322866721466239592082374997641629714776426315350543849715357753412989526581918383084698088029256349804214593988008233299638021685462315195920192362416775301471034293890035402889922474007132100630526527335756290230467523432849746945972148383064084985743820759962740464424207133440443708928709441278647510940971523702462433143043746668591198291507464003844793778229412356884721268283453098871783531985879720797104523997176413549778061675393581072513890262930323429808480862820993795899298798151688242890507880883859469246416096385719997061421892003910159837984734903973510738264896001681640598731074888247744066415454090661551880896967247496858911613355500376190755313094124367943222832018228065019926281566757114690948493272107179571984880607695622119587643720162943543307622469801118788684248239282732470186681996924192423538350726441220220887508436407424404379353005194272939852687844077067799003800777997124424324705586922169292799128760010757069812767552122656642377724203101850400176453908303566997998586360520001748050224775061890939270743238802239874561817783931709901413999290314416854935338171962855289365148946420644673326664876947005406890297256774775412426168140264924927723506349809089047539042935228947960966656435621448679153474520449040726517547006962937157144320281757744370096547568432076171221884856052122527931068787433257897812590313279017264190290123490726046900651813372141110874661580753890796128672973817668074454501946031217107416209258786924445712658922417717728210099527644450355208649690152955721960982874802378203086999198360206389096492541903310749566223830147474493490216472053125461531863005383273256294276010020215757211048226074350110872818626901290799546468272952479667850471356383715119338157167247697759857660083667619792560595174266771475758470272733905975647603487318544628477924978450542948003003308241086602333561834889273048709341869161464398088954479152890963190608602507159513666596573675669496676244914987528913213041898344356661431979893765734072762453166194192600129332684129176984015339069243329284390027473876616442473710753446024283566673451972633502259588388617684183230706397849296308316051802429015256255334778078532288794978109394333778506476949040585491802599634882267115798169078629817962903028388743059761672495083875850632921341772015949490734924440918213346211270019967383009177947241952503178800579511922672165384940288987102472203569965499319447026895078646111084297803677125722978106521806078528605096853902131070716637834444018017130318699023164755302723097733292758619407988186156236242050722939567475787294040921345621078353623599225473868847293242930798839966420719763009432212078045484416398226272928610455472359890881947969594698041326170774259838734772250908749603407611465253319004159275445463661224856843437106440234692604334355306017375309815060014155094656866448097885183757351215057426892942392601784845378200510012293962208860871530435403491714678247350942135017966185624072489668977944309570468954442412309990584638274848367672409251125786397515300497049640739727758287219599301439217486801644138733229553155386663788682349931903400473715293718473223792842052239477170923528985054310369853736097198790153092136613646609037801959203914060735757056434318847395981880115183535222807453839792110131423296531968407576034244543843408235569484451692990022553110277272125043234450697276283501364480953539094044207393427876113578402202269247463014448021056226974227551501302849919262169191114700663518478188576207340637683403937260334472945039576720638163702228241954444717266075786476284743259770529550115066569962162947157601310124792404490358959956721756781694625554708448989151401456925684221204569871724031375711892053700097675454332682805134574491529532739680347091354644274986678556230974167623887636587181063444891647297633767189398206196639283223362794028720203942887628456591974290646886008780695056902863101380717950824999011751428808207034428487020299960306667799893687000341311981349804083836639926714114945195602489464512528546566890909556289593758325421751220644610551875244986210406516133791328372845082155790456108183366172264688473862687252872250215215832966239071190292190137430655075333641307230063210686730657644937434433553479917270741187840312517652290432494343409532925815051128716618950354479361631770519020323537052694093079122578728363699704878465759565936206008204623743745744491882921794382952704562187193946477268794284589331366429200130499981159621540979507521470839524866566567763016350750141490548716780066281712447888151989424635273053340442024497639744139980566763190464984115358697581484222505845521266116363326141915040530387419154806843854981747303592623336556210036761412227307219651990856114583888919708483738987895289618953697956800857404426017354476621617465008636677165263618327024718279699613009630465623885443161246154278488073046860514173843277827116753670176256701760239351167037747564019784922532977633323447325048335719800905417559224542938895742804965960070496768353276408957648078751216615910180636671717142382894241110471536323924667128573532774494370246810421527497290129448574519740138991743559297622341709870840764706003956524477534576260961410741313248790588546692242927011060147872392649907745891644940788826099584719136086103670639176679083894600603938252147234653666689277950764492147604627276450713067162998741029497937547334503848424932369254647645455299158848973958267830329642083135458403803159450416559213518019248007446601159767552886901571366845555338794836343314955527941350674472295413300887406218061087475839124686476323935612213222210319039375205282949936312387300140283190529066631650590357679621465308092673552294567792242853678109639435759333110414101700588479452346308644479297180957712629055418997555464649766741150982318285603519699341077495727233722871278086481170251459120839681036030562016007604086963587854509003579317224541733830610055537392152167539340975767502460549966025626790070956353013327451174573236353465490920127321177249818331452818300738471857572794901812913007300552729823274500243940368413657681963378524975641032951486404676455395125148406929084149293038010586209397225347406729431559032635626670913741849423407969538642531283815077572644184635130618634338959090715269724602580964510126636990434344338857975318855180488199237396728407713056947320255532463772438808971636270678294835716100810383848700978592643734764063163112689822963570262484785938702608483693217981044126555531764019469123886423214283800583854310216027071159976759718481288003296085558281367443916953519524991342157038557830836834390152032295285483312484820910172125800855368753783585078910626626934129682349493715766195603087571374588053741217904777239643663209875378776893771155544469292468510755930770930661754501751241956437239789785457144585714620097508713772965873342183994847235388108649831055713041781759206820393133757927080783452605166385232167736632648432626034795479539560617474911776251365948636573937421794274296318401551675670631713471546324698682899947226328655291337661397693631241002778881426335163332967353950518915168908794090009894902013074913249464063879735510189788526885619283839340354355704529330940866220381701837825827945675591287359690329436246450944801453053673226360836063616292627768941548194479796605048415638479608342873447872541882490822600642000484246268489887256231025102708592164145949034492948471441667476796195675999191133556564255686189497834373641898352061186795676380258796600389132213196084586820796801225804447759568206777028336521393838851827135428896367336563115129052889212450267722888236960935914574296091822176761666016262025594513111320524692229972277364401508261781937926732530703966760537346926617758360876672744883997336732021936427814679128697068960366840604639609982507687063669833271576597363785627419337160214220466546439321697337125341686914525923958422447813838435204004385862387240789241829427553807473026900532927884116538114807390643134098285995914904368955230298466299044030677102133314134905423816031558471806674993577509792190864650236259454981813646392554795779668329706050466613665417640507395413973081475801255886000383982640166846256439909466267391054245219554634237183022566375190829745271164939512815654390975977625819162309887350794262171713660147168462432609437160002895258235515657202739048558098218998294289730245575032122991471449551803987120979652327917102779281312204719607866187358564853666818303995917609466744553227529697128473317447625185933026612421371857586046241758340890314434683628875386603319618986017936947060439642087568088176897587029225416579982746520942633298293929970766980283691116402000106330543786035622521471418252211954300331406010535823929182959071631770325020893138715304176564084645685700639141974897941419071093043951128288563726068586309362138597134882315491830430292304336718098986486715459318158752201022112694797894574862536753353317420027760708033308491320377686578956983806410632895916845690346657787237754488084404385582807169424971736052250813181184193905886144991313036172156839740962250955890281395689954128374069760892718953699999543176796755588418332986439071946702908634035970270287535551239768161126761090764862817049110295406746624827088948034786532483608564340449632125440089240804939800626985238176996968533720093700147010274435289777960971311776179281955704467191546013734330975377682714654361381253497513623795312657216182907639798431891756455468914635643370287601729796231754720145569809085512540099660604915085420762676480565943426462662966709270122808395976166001145755510490815977139543652000091811661372176550620162420888413049837222064884582599730826169881884710321578373208102054564404821214718961189966713974501555995847526381755686109692074741826937961124190967762250334321938721442874152634297006525534667850203254778419196336337722414848216092789121514272807763583712752723582775992605824378725133071334469464215583636265865967262616250880733541662402044049578928387108394834119183088101562836397843647180059884872715979318088549519244167967538817457313755264288632026733284943197457672707670212710434868696369231054360172215322236488866358720533269136585054138041459425439650833526727391871556708920269531597331933467431096692158339493939932214251002462237416251638995726194844706414814080457585721488783647822128712930974890392392242546883866028317858737651706945505062837315683095114174031332012847484469204762481842086839988142701655924392326820096841998948777164165163771782557136031189556447877895697541523525321236951701557394170093579135982023641593789761402992475819724125090631617397569623114249653539328092246000931842126796632155066543132673112089843148426566270222667742762352385848652963003339154604517118883318315598643579723897226108606328789828397215037401883014192745720300332377034667639031559516036291991517783737851454497908004580575941814901745597695761628403832103986349589235423749880693460516057928211629340967018996927283617069777171522917046604123730371070383173493051628599982690048787901420991683803848819236178426603054128365807505355458072683957366065100567139734805279437680115765917012855558659137287041959876614825782078264589398209556888706726739567549484786200327477826045880815030290887647553884569674330179013577550742923404313208625396850721374706809424503981381222753602971633882271353954908220135983792127444414207524578861156206292321952710325483454702728907842466672792305041710326488928852667571545685492177291791063625926506349149648914477811964462348442194356719241124588484302900051500715844714195738791349446835894860739055460239926702995350008440348886592094594589986521106804840366647107595107552695026492697430025260542336413666571069053626304272213632979591169720908102299849825865652415862677913955080288147628375568957414363568626164096156736158133791643149445734063161645263765206001140283528790784554168099254824898182027774320362791969122767945225534055896703990664295560338076650856418659120321510651322535380380739056779436603931624844756960889226197389163933639899051906313268578265162399876368565225515098602509396210178483756449330332425396302559003428671177174985193051404738048784029011973220273919777508702813662322527660329177195572585904219535508351162813780738639179600072631424768616101559811825579629420236429404863962601176317026864573755389538212810392693595802164523010734713204981737928217221425823102021402686208445145142373141201663744807422385473165897966630185357379465236286789690669552395736545107006940090588265549701984975687593235246830245240660790282247026923659499602959726812324283968981132762584907587589825253777817750526690334743769479328134902574841701422135543977079416292929378956781675424062321327579926112798829541442568043784422090688766416127160176392326631864950658724387657569800812927694654133630076439298854099084287506654933269604747423032862752617803564701019959811363711742266039190989811557703061037510412181988840281296399616959858418607012520471326574193024657398273441745962849809645615978373309983055858979006849866136727362692511914256010692004460038459968892076877722505138057806603751220478020576031024997368445977052972607730554834672097264405943934611372332163175140675495113851220339430352213017129305774584782007701874789675644752293967172061588966955086229551190986133608132729832140724933272585025844224052503010651748101614351508802168926293551323344406688106546908425358122442739830670128248344752798767521040726176162756756141888607086743219281543599989808990631018184137948327564332557429457643726058634239270667176748986673771538869030291297478436361086769778483979705509654378758142616358990547756350227725630678640444594319572413344422449425297373778897010249748915839713977994957900651182448337398153267047515370304423126550878769689809075299117762839816894639857608941065828885532295644973323325486543030927981831454534191362740739619860200105431479748875511765448453120654628061246382794242863918241255868875239543526948615901926591691284909950125605230635298280654754514829388346183532931813433018459904514343319113170202058004414538630217597388391881170028678804128960969668732580137658492011055211867755421562202946662249482534815882997827476470389207794373387866892677591230152333000162402254994450368240490872658998132166009879934301698149216049891221999237942348600549024785529980681368991889124259788052305872291010806074410375328973198598926246180629586227214603303690865819559719578477541049071566181767450371801508838449042711684987000055459181356647633436620333911491937062993120337052578028601996509641845213204188786425208844799890084715470778013705522011103124133962377940095090924974450253395568256518997184305587135722988872100631179504985227983843600184590900638330406658055441856929898975094516030226957806583078875481916833316627469374814945087371421376518180671101053571132774422278127373543065368895864157454392790185553058050039296881208029205122128646268129144000408486739331491276239184690613062697588127575218319283833440605761604693221625812096850774972603375655669218941380808533442639020696880647700443858786163374282093080404207456672070678401844257338520419132191045402470094839898418082297672725082578282997604265010541954218230243642832741856601687975424382732154240171237381080416508500366425254326475039379278228938807980066057622536163436322407307066501716598957290922766562750506163160401652045825844444503579535790056144937063081715748365764229220282728190921787276528013755069195679072865837975473307735999428443718207066326532005037496619452227107502719344827717763628892092246400670083365436168562302356178988507396635313868968874729204531575902872611800590030956088403628429950617425449033156749282193811390305276451669327066954316936264328608687912610407262240814924787058186845768799342885436177654875633289994031758289402323857382049041878033047293746428448363860993462943857857368232645178919423492642996424859242256862311809324945649544371302709903691956599841801413565887218899791696608103498950973019127284292484091374852973908830985169588910446198029060067918342989389709549831210614785440181246797969184977397382027210510651437870028637500691862014936353337525346581166332462077311821826959112600728088268547653168843088912851237125420535985764383614862310934933818608355509502892028277086649286242279424696342002733601099297764446076614357326362128943286149456261580239070926038776662275948329794397777085315696246735684245215112856787983375484530723073442622420151286263878377871031234883827628602370401279771367801226753123481287095692452132011477272330034729709623927332524818377147929580699766133995785755506847244430324355421014837207074382811771041389141991672731550514519550935163840945644122450137259655787272184766155520603353301365585238407400653592405111564022667346419419550325498634321808928659643154991445057797584194792864532325459546908142824764635966823316066227904934030469815139062393180780880785157929632666892195140325779382422776872670574630568252215622586030177572089640143949821075747408056194894907917681769645231132716085134288458206123925338881610325365084231243629601530455841929232045495586582428668934096767921499113961022509639389938264454578376569780075240433018570954351105635987496072911243485315352882304157139446264706321893152321108096979539630132764134188307230152169448961219059120946863107584525320215961216817758853905929368202038593173109706503567942579878437428071584579330293150284050093774777492153666883967491949954479673651601275488761115236004694243266994835020969379681648560613041753158129390647147859543854390790480460640420255724187931786473522949706821919943920529398101319880052576103521843611750565204903341221538240725632830127611781964052205163070714722546776769344996370814612953556536263303092711121313285976594700527167265003318042175398157366824231871960380440159941574781557220534803532284673347336565739464974540679523258036370316131450261872311343494454424987421703970156001438044160412484976028335605906662682203249909316119145812342273310712342506119546443401039742922053684582629528407394174725802867401618421532730421535744346355697225492781163294493771334883459916312739032341274381808822466204425204489082654989265582289170902056511608331300378667334428574973505670889876455704276991501350980423902814664154973602147449988485512696710035957986007159071378683382509767039334960358115341867084854181953863771842889028605589929577224567960518866433192061624707176338282571388370580593671577802144416078771237213405004654797056475861237618547068792746730327932366932710640618232690327968239445789540443537043523035343680302998819976880555855329098646936008195245806816899001453471744366911145659634394432053077657153903722802295752510079102530413853831054164545459094832201068270057569665295288076593092315607364925457699166991131765083056992654029712454194401398422213191873848662250879084211740097901129464680811051865923470927358834567928832241553586336942824471754243663643285316884476910059050685929619406485355510794173622236026933502582309590522295680017224517079306675860837630825561114855606377555888260089451086441001407308209220692524439268324989355058352440104014378418648146562466831038252940890594816775277111774365749974104723523107481455598349204731875165316924033044003298300970662959027931148216054315485056754231627639364755107207775419187657890490528018312327135705231176806304815034243221870397201297320919663162499091143139325275552541647621056913797188969788918729248049813363931556177126714157414859059854341310534024988516055758337067513551316046238874331584205678543091869478341494575594997143757201896918591472799448077941134720324881195558413326200728597065651552112755100277043425893771369596525475918792751500233795605487654127032161270600371705134347185051597963857704413372593243620355334741448819611652478000411169382859006311431826686789661878589746925688120273312285511991864624183317828475852548721178150000451649018380370766782768916141405382568487706079253700573879373570091060684244800595774549925724780383629806127140307362871462074937915266781498621868217960785075943829869581327693747848966235789590857463733464198135751016307226754642639649370919293793214816153089184023045949303496933682427596004016200432375821889949667183086964172757048609537354087531641136908185705888184473106800810611450445605967676456004425196261854003383753876950542253227771272156143183533298157330151684786314580409896008947641455176761432435958035107551066782495953113123832954331113338538198802771142720186501977247480661945545492949343209839954376818245473788294324996195710176010967950678500698907501989798514589317958804407938941523186708277668053649089716051915982055552195310807149144959241711774273285955929586615886231351370605104819419419876238787174961828466825833708627007175267822531493020185649694073574296984589424462221316348714786264282391803586760792241439170888705822165315766938366209919605386545563288206828065938168796971518905881341239446796965372674112339726860074892995800791680480961341953042634824206163288915295820875578975876509928921247044541950567645227840080394847301828964927958083984835996755257129901944666853017315137766018683840876071973128989791607922666728503481576233004783327141047358866834490139778514494340413181988656905969687627423243157260565037469549260916219558459510146672936078133519336350545521643184565073514908842242047905163471737803081603481045787694983573095179259022275071814423784031610178578365368682715780379274016625504756081102077288759368926940491903546271171022464587936619471771505873670549949223348746301789410997469709343382457562307278918459551671683808341728349186533167100982477367644030140159913728208432792316635106363560718846233482445381939622040400591375709074623368841084627127743775503766763609873246028565252960214253374106539182278975820978624149407187089529462210871391221272617729785312220538883160722027758303545567237602731801318367248798248387426331043585307764842310882645441566762704452535812743917821915459066027278675921945411889720540601781102965633508166182058165401428795643886509154091893671851776395419957376634342485542478402143182709264451267407951191325677948145722961317873013201341545986708455723740933533196451040090827297652761743930401977463184111691541697226092193212923918746505019030046443802934141678183014099441355677802978424392512214933413443524084293892107226594412735859388820556524351716366786706198446836728442934710912050578289883959523459077081383557076541515800380002619977744556293359199043562016188505473370628361858092242455971701842026266162398556763365778126681773714750562971937008205518601888906944824804065436222930273058558671639798120445500117092366928274600921692159346478481267721745100910345832110434269081109461871510776646454329549163316799562408106646562303807415145795257084474146607508108396667179597566199481939246402845504941042295840657218912900891901853607277859536448050257105551454997713324414888474072120651252250408308680825323225913767988442557005438387608228691242942552598957897728952537212896639662492388309229880806680010518301923570151248686172999343585507784379617176388880187998801276581517018910959333334165128627746599515777522906933878427509820306049125130545770934559507451168586573007820886438091795328214562141756782784356383410335182087679943855123246801174296370922042892566306497476495938092697596267643949640352732803829197140056714191738997990516960651710922536859429005648719620813771811053504059738192355709662619377688092646663885805435026290592851460784193487813297052788516951832316345958162465114651628462689529424752030846378136721826762244770538052681971340574420522731178308923814897693168588210835029066292373938247975716935392279646279923893959605863924685268979478079694577992398311036842507380086062804367266004777639901090712646761533301786384565584644194865734593061690477996624334434249384116548287819394197221290054761076114214076128204191467110625440402459540468131914091673258622496591918519117543835367104601031441223849877617065099312988401497339906903812457310047449421714799000419700570872288874658639368650206587146337481436312315885632721711866361603581569692913913488863932277969473780816821859220658279007112659538085846331279076828147125338216847383121825752857378167741761526643528255700947649090195994444589996360997218240662721109018141889493063652114427655615551981150916521404724706699370623945705617552097455059578045484224136533204115801410433478192764058201674805013757981703121431945687022639398211618243490068716474006132942650767831584983961956999224738153156787189722386857476887073499570695633396446639308856198752783355677771433532168221292950564413866166871341540641889340178587410395245059257539593226941593917139378624818455073392086478819573081985173163265553220610987214974287152751840832231117203190001182864748270018176461201275880607846350295661581641559652159567873419341655616266319789237844911564153945832409578191003942158161510704562670038827774097722328283344559203892679580053108478055263469660308806896550050403000315721826737618943727749877758717970431442965250080826936827632354927833895174492651478099968594056360705093750131566003293495323711058128085432123844954112018911336189290100411896129518504557176733402524756044606251506825573875328327684471023563313873296084919268857935737718509179912647559741991067578267472161305737425791416019187305547834477080838432649735143835101156986778319013209597595091410474397084618544976803002921538132459452946190186956168289374778280892026358814319927843375613344793711394565200192976723556301645987305631010904844854120091407167588241889801430573301540302229336962441231055281763333950143392302676717597137635660216277549811805624378019363956848957272982554266594793966627294857659691425851786370288310716609444232009188176405479706842059326590463964559265881267331141167407885481985649741307838209023088170004114079061854215212439005205820539732164036409122020102137033423503196044607515968242149458662717053266801095589467828279493149087215953549692873959685298679445394104609953304547717077208003620399644475497010255880243151737095410689746901802611079221568907346743819481342492156051289164259456311219908394655694385595619458732994263160665392844763746834344219101191259539734323457350053044580185648901661111931784373805424743808325954264887773852483339272477264908255223383688004853230873817793660356792552469358305646686580725857190124355394564516337985106881931393603214614834677486443936285880180591874121570378792631870932587318540235236197060932176577288495357559973049348356494833164071853943079506904240439890852914826808605142018569343688915663146520239817556542544566105633634862522054294430899552102671276972789511105745471609010695028540014301273640599194804776102428633860901601402314429750931982952898883864921877405301942247727790969522610556437440088694549305909927559399783563477427674615310925836095436888986989204859924665136474704343317090220809779811278887868920424513067933140881613514670931947177369764576515504562077092402852477468944160524655960622148162635767457256561305380194256206562679335155066029499009707776599903864764758454101860635010709267382256674626042948551037475580790836476371859604885734268808683687981728698052542250532062814315813667405247985890865617193165011065169542838090394324648447276900939161355717604746991534945291093411605673489622237522487716896320189135776860280057550780190628443228189267352507569554754414396255196652891241322890724245386490548774416543083543859984764570038639348437050766974472479476143760982025955979343341657204540731273653561177008730880058732319141728964608467861612735511068077335080283961744951997725150436017631675274661643807183739938350253411428643626955532356624715771633910291970601636437744738950346358855995423439592068113960518248852273131734334421720042073310725116060415063659891220454779002178147002011095424692346265220057615128078973754853181635334698884724662940544279880411191994178484500707446407260133594371514775037014284546060136650200308443648974319827669387965646712214639762726668524384383022224747958483867577807305690913075502983468943075081211050647305918615905437975990151879937484474933359853319957141423672811857093280444518857835202353202138838072272013443296858684770305670272127021243191667632050707927786310082653429581222944890446239528076341327778867569711630706680497899916729373214339384375085151530650879223129111622011915126472475115175324637789050878541419603787587606699369149798312900929810325983242604482687758292224649975196395018493004700807673031887544789228423477864878354060359537706966903353265513777588782261371267598010430052511516339997044958619612801410236548875657294625100476508360158193672233515862843222821314737088923416459840834821602681657038675107174120517882182049876167334952641275131367408268098577273683794058645495766635891260754596935828679718668563303254211190986089663965547275601571808244168722169189107821665099519804141671274262989270289031289145290215339777354940396077521753930330447921948392666215639725106739878725283967222364746922005889376182874396384656200644768158517298679170362459991772038748573567748439768594984495837263858657408273286467179484464191876243648259523937406986200516499243128065297613176900419940794496618769507984466505617602576894783276789763137545763778610782441326472790511470547768064362044846037421670058690322497682664944150195456422483863133965993259458066218504057222492454709752681258992287263138005956187272473254870805895828784643981813033003055059777358349299787593717394259434841451053097866064187138473144929245920200616112169244643745420792945450559794631061195423233155996064848160914373120530297281718064106839242326677597907540865356367479165962738126065658967342688863770715808614224298107516895493591817841891758454576203106970232041836168654717558151337142727886504919957247530076824314798138521670096112308119267485717237953423101262764240927989529698607852412394185412419121622945705010596465134093637322004502482457900657991909764357469106029318288614141947648422824914767824557384762648423632974694418026149567838200248967863814251793026138105536302523913872430181167785035741010866117634096655845390490847252341309233325665994935604542761994655980824806802227022370181744288804374142824742527519646613523517597991739692237947117231028371643353502264165572477182331936440425448446893112289928867663217632135152076991615182309411152672082412677014094200909997423627756748062605273442863499703548879460969560376849505624365619457149961056470841625948469252501985412058128188401624824552368367864398244187533900353054951275792591551816991786384446102516303494348033824965314538205214630426987821000467335860809902581818741880584407300477358501858223967180322511233697797892895429164191881567007131445268543014163556784726844655497897196442872803256117013005447113303492239016736566617539154203110560504531592988999721032532520888199707487610627036532394227442722733080557006350211233101077651235970821900014968472570220412266111234912310337944145473234011868733819025264744381823183899371595056743754006124191126153688136166543976091900033940834389892522885333319595866308531516157106317216442667735968311897786071105598610153954134688105136906079444429798522177208039629538560175376394683497692914291516889019085722840900091108669341638962846245582836749731211716205120490908984893064370850867211700648554435227798145262827493154217105534697921488728649915462254664274556727140438911888278785897474880220461185376909542901942488822903294156979493265703043945197662299230058209172762469147820680891194981042114234121405994412537765005428589722990481433649216386433062247828404139086256334811560266399051902800513366101344584485588069522750444228128034563747762021351403202339476162593142971889827701560233436129374137506801454677896814688965567986974296950957035341325315878793353799107746806741325155320112631397660741520873537709817105067089664519983002789032781091485982000069511447760772995772945412905970828155823055919985786329319069696723475501298509396543036986690801576656945180943479562333527111347975430917848163602768212018315918919105667930145401652336083038720139077203467773175721041001284141889505056654862400081140797509626202480080183830411860569379762888944713169269494279477346984617527172237393099589095335689970868418745140371912950495267634388417797991352480275591116362441757611436302782388186872854419932644596039080512972042889047404088914748071599112716784688295818208936363401616168969744107984400395362591520396314954900317504868946095644718287573347706837105842282802468707319630385535811872001893619191964573207054911153355753527010346157189550531681727111474984419108288400843104399209339993413506466546638899912354748509062253335075247253910944660897722700506257919075152219019087225790700506477955962856338276667439038719387694807326616276691393155633075976633749794807539885155682194485722056162061135226266930371338851605947790137385646146672216667167208127793745018390475193723899952813067184597364122032290306598202556847185207292992799190624931036199558728547282176581608550497980979976635494123497952109711490044173726142410789245992309561143002520682224795506998693150780046068948407685585267059636486938888818103452180158492056027304663467877661656883694351867472363820340662475712943785232623053487882804519397239647521976535726835263880807541743492458400813039339582145304138701148571177404060261437807909817966199030720465694216299366069014257760680324143559887105179931798716856287308546203543796421407952760106051632920606862734886531718117977819295962784181790353691042746357613333097010892054188207145467631893591711159688463080991816757004357971892272313512345131468022349451135986752187479235989326012186999435491566084760687030134226188401049090458127962072270862450508639795783436211163670391374227407304596756326341246500904872097077927115886856941287081540663076182355682241669681969703427209306762509013792124688705213712351606733904013644622021746492101805900260897254829545188207812742577099078511809944923757565805718809863774568518688002917623904594019547667524999969062519654965494824503726700733867670132443869688400169692040662696391875730077829779646735103407390689487383095588925388823380375111984849589144796172062233213162582691940413899874370937365382444073060494515512846982151035680402623590365590290365562567619475288977894638215711050077176076703073596625608455708355262368513062954919510957714507642544307113559343167601611198935146579594692418073374059971096064758366095605993621852420645324961444704604644545164515414022375314138321426971248662341562203214426203865260285693034719765237539394748549827276679454942493023546811476260294511718395232794608563090680830974057784957082098359634112706221255228902460281553091826262493951456871089915838004637571487169206938956930863457172384788422150527295824724657722153626263848331335515508606483864389855862866868308665668275662021194194340974883491697437299360971852450141466977771661333284439503227135772901677887148531762703858111596759626142675074478660930627732346628453732947341965117141925936495839736790554311421541994987624322862573058735178164739845987551705655671082420020732921144429242950417437575171556782969329728006453893460168408571310357541640056225547352362367765635903658134182865849923944137212705904294353076991720514491550750695653260726818540431090634252311817198600396309511863568491084268769437753894235774451163580660606116330910455277823085295186096023493695485434903606631825948185047309057440291522215621957866588372806474832418718073483013079018979909808624451213316078002657522589315679575713064393429360307235444731210141393495259084956547568721408267182015337549214172056343136491218320894621155256218140622924455440573321391783963568086945105234457906754338127457487516520097009604030726296162294871776328420345735694987557705664594964003395155276204677828445793940404884867586712182217741849502721993353869398861502191278563068776703226772420988778413731687508933482958071768961401522132705710034457340281911016238732858923151852187448085450556670454523496190691675107444785401700068768925024136887367524259237231359361572787822788452694318283716094376783958089177033606352666988665977081535164216078935912517222825574582900375008639194416169575783731601290856433949948927911308999706647202949016225454718053886974106192697572510256793602724246040952005444341880423255983654047717572887482717220540479165710782556985491623395507278282742033472706385442103137158918772119507425747397889443762704712043367202640504366788131081580190119016270116426061864026293999473817870650491079636683019826702404069495889607363269497031221362806800525728866573326535292919619611989816632894380852555805844654494912235660448746651103206242010600968144228802086012476543882810602939707520076060063177209036588581650065746987170185204327339207766477368354651076626264556433411041268651289652009117729526022798209686603967824360073965310693256764576058545861297338238909208756486977893647134774367702301122645591661046113928093279749499570017524355885225563214172291960717580757926431277843924606582852321448479160949886465556377060511265523000241852960704661212305904888485789543818661172936326044544911650986753039842106447834786347272662638431393802741554488473908833681634488654563874199505367887200979303380958278430385779106654091819003805011504800554319433777853808977388843688498795829002117149837373671706386946394505664566459228731975219215249762140249003490733924161237233769531803252504537923620982279393829888971999911710091973105704567087402911115556376997030799501679596695933516767095116160849558363216289475146257822009847301609076953743573565719828563124583764709828506742052577462160066169794655857353396604725839899602029146112856915325829553708544496823197377020443748969724943019161113787961957062167078230622332777601652570138496147508115127274118927026924315417192616759626214971134430422022999403068162333481925361681835989973127169771087472040801154900031132259278350488214568901503208274268871823107672776279136936546201178905663441118783701763787624994994818357878505869224753349903120536161529820908485326338188273219044055113656442936371866644016735210560270776298974118905717237025379015656960298843202901345745128808384027789765754086620465166941758715127096126058846221970823862841773862239309294379454935379479621027842684081889724356451356557066554129976465459598946703381931237930160563424730817981136205089211756890521018352742026161478259549520513492720967551156112390316975199476727698305816452730353074117621690759390018342535598415334471123010071401224933635025228630432674786388062162289658813453625575028189998019135256707377312555977141690774687473324242957046100777849234077756544820689523128158468976993160500311026438577723941242616941046587361147325458335129713769900350835635376140860529396379883072008644171116276303895587535146718738809910331664738664487303313304645964284178794670237423532804356183974362291407001346237772721575113571648788509444258349121398515034369259246321009539424203197671492400930367689127326189691622649639359986502214617492565430704104912518987791579270310251148551830926040287987927603666043196015677833224966997347487764361609238805142306229895349159660714368634150859571924093902121354373109987531418363096074082455226038656057052877131306617552726846074470160870068964080947094972391957240129781334093883461059499813467312862623885298207674594357907446263865731521957327205621602016405334411027643847404733158612583024733413353936512483511450462744420860546535688085356748886603245215529057561650589378154677350314936959047073512895793815319932989774456006198108093875174674347762890335260350333056868230626988187710085357832576544815269177804217709103970661633034605124732566812374205194738693597627259220564121983942853699954740888812162519339702517205547011160157335868401135494876752502281959767237086137848533791154287756130253533337253505355935470778809145550630048358987211910057654223233857237400888533867717249512042974533073287959808426910317247888610862190966273633470857974746815306738011590230539724410178109314622081878543172047471961550682225452867714120214984601835316147211363822214624712635128211762057030436646091503039769286946812910242080433481475994191515150189117267207734457812284894655271374576003176579488955298878279134094126966298171180636797905740991552938459234803390428333481624563027817388999006378883633763724499740373060994702998078475640244627370076844933233706794583643902728578254292899993698208378274651121834687224716208236301939369908242618290760276125648200746679735323659567180415088419678902438274058124351837858611266467022619311702599380512641671097742122926865877766712064151620172080688800139837596560186223079487521037656559016544113489374951103223467551348014523254482317220441867698776608554871443371707045905044058855786230702671989340634606908924421446788337958482040638368413738864126758463485756945500388892032928159901705649297720210578738804102569106471181177062495597392416413077962894963368267279420519199888812211403319465319234803374074951887421249133070614097325001174533277394498521705822710959482287585993075848844542387328029132735677788253764519912536700597918696398867038890130457211843580565488578862708103730589162918918022666691779100267471908031968768383987450473358886313081058684489612554396852083962497046498873716965589649161635395130024101509656241737002651833410996537040691836346852291925711288864424720941549004094480600241055255010021580966114062783954021171491471367900590295333048027433510578008592705161762781114293214991290752165747795575650582634096995047478510911823494701830280371487729823874400621661046323104625255010026231991572546329772895201415101359325229345814095086624746945250248832469048450726950137103112284489327274451792056269112185042536302271834982488543207798221578188108061732122663261203653843209019168301646150374786292129861390286077923875822183411581974034619307475119985366261911896286717349507902219616448543062842032364056138246483634284974574003632197559394871795041963818651493530146483499731636174968973741418995112667071489850952971412803230784020506254545116482689982363344463426963682880302275132497983155661486626756146671142610245967962296436013299787453599599302232836353863181186253424204468206226651596255944110326874542868329275276089727054561444886051581654329588932855137498616608362486042538621078595236948319996633001884188731060306457754268527256353186752763273950688054881104854045905982312111842785159188847452800750921097674830686139074512585817255039008267505877189938672817269855451662217110878555849993053684254578040066538774080970795021247262366541734953464505668929733169927278820895269433050013591544073049886811830570634236311661351147858774794775832555234285059909014160349657380598054531486651291175812707136149031822735517116883067077120258437738821468354009580329369768657928403308821480004852772210616833835058855419513491279025029888218794282291437460673055684442860179700967971798007241929096346365965083494260242311578701516694777514659455115898318669547489457738037727204690542862558397908018072477216426954432314615631433163225570913721659199063170329266511349641915368787058572982576525008773835697620454740340392922726990815272041932935991768008457948511958718756445410824457611039002512804861647839497656409690370087905133405215665301517055601161402401620445473305969910143936118382672957065580908702637791785446617490345592476688042821433058126483247903935356290296027880037868615983124008855326329142780023592264955503712808515491702264283528276850087169309872592943204266766402087184860622718797557628175551158969009202200033275262957196270800411782319070168967081911958960802140155125339849420030242210070685441837344235392295731746571434288612372527524803715926302966771629014252932439817119546856601717057875076168217574916930741379548903026402752438795889701910157302140295699666576073583763113108232880211384559698464433852805569840794137817351680537625104838378795666706050199704193579505180387480701898279419562745721756627941919122960831477777171535779591061674846421739092082591676133352298999542527406454961819732294317182093988139526729281910548838339519398133717751966559509790445873772453959454993037442374019133337362135195783621070425470589396342357850017063426430430241047001557391565484882747056422612968771315305532629348110930768332048898055312714835387024380550055808757758162139905376689264109123045682702579717457030619648679952175849563564001858912204019721475671776504652027011171154490889620026359791950079693899730039373445396973972107990664565279771577292064908148243981852094176788182768564661013237143216144779497136388030766086261277630257778832508834071561163846184511842420408671604647701380897461773444022133773881132447284586391194736938658089292132084780995090666213597202760822419401220368386113399172118537473270497587361575335178487934133120524571958567668973217951412195470905624026913455289585589332807119598060374982595006015032932680490355885884002702272241268228743339174409787608237630149927523440230372956617308783401289259588396714250525059374088140959373967966754461637730753548647650342423709273832223744392760718947031646620016176062255696473174555787801597486764492000530484195171247112188701132271509314101487996630804517989493224508977830585327346143896962443015281751722303660395530102360209360633145422107479249594982454476858467690245451300233876374180077827989013316639036993629306558768870245848049579728253224243699224845416105974749797089553331740922564835376797083835044289950554332760009978729080519573584095897318483305860400625199031471734180479169426487688273455766768892529994948371057054127581690593387632875837809690222835734798264654617284819234763847840068906682643684392251653786948727605148719637949159471050665715539857865970814564620656967804800506897312414516498790017204778706462562098221733993745394223282277272677710995181942999237081013353990926051157705120664063402517509396014057373574855869623068441570362346316801458887148628675178287756886009842935897312013117038225603203147358112566214042770091477916773852267421410817485640638234007861092837272388400960248793255007860549318488451718454335099325001740144304934258859086222713789261019926240929088037065430967191141990892050803590102958445729848664664929319080500150721502397208409389246020063827775949684621461232310329790161133550825227565198220800902680988208608988458098808461967146069477016391764790680265232004071065012889030479972419130005429145866663672061640235583433702049403807654238831893348097506327713431688968355764688890730134265215001231397512828171797568028991212657992434132723509209248835169472834438992187774372061200530015872957354355662378907981677535874856236655362705728261674252000871163064017440414260247748700706361002665275371298067503826846989230394624130727255540957780007610059566781126548188673271732286428028295619614428571129912584642182482086653519912225759110502271028468580419005199540611060745990948630695506160003697471384758009851914392803625786333849148333823174861208002535226142369327228198953386759910690875329238892949081013074740946589720625805878057640704724062718870331618444888686749145027887203678869688126422675729756765362068525915952010593624574865480468388889075423641482021705874442149822954272774767819528894426791174049983536311573893838409727935395166429295572697951476073548313735512023199067688302202822423701751321164764686940909073034950568052454755989683437842102340279975041002185372483083959588227108740384036397478618374643279044422690650810887993228325428828071257233489850301286690043348501412891613911684311415483742151992654376797731781866312777391815605604572609610449701282342083433522472931243346534341869906709608389058544961250911417074390038350441209239064411065445133918615224721854374209461424414524250278836054789085612395288751115786660988958958206712051799264959221038718333962359582326427734434835448636395108073759127095646291499829380206060674167578127845436881934581452123370212871225652968746257089295872589514314361233141266778203846869563431540994379312049581746755291833695112405353592807043877683905026526499579492041362315756090977035793813616273679735762137879129657992090608347860028882553366767877519576683684505909450927099097206157266370664782618036707724484011889216545067756345171077166054793584078498043326727473589309392524952079456750267710734091178697198337210594961509629559829492241995732364682199787891662593874145934298131744639945640645004313633459764413489428780992667242315265564467939819730572619519551953757671654015643261178484109700819353512317620622586457011345811627934138656627714615456524689610813686482585926255761198390491684624924099574513086890916097125709775709083856609966044287717750015651871712861694330289238606782223092211958953820986378839159386394884744179894245987410748171633286894533167602226241571103447737293214837109417947745565102222493828556849707682894969586838907826329015746024360038229212225790132306027454916775357167611745365039056496139220298142528236982483428614316840845253331321039609254849771153277742735922771744107199154491637244511935514950383997379390998277823277795652626915774762284504257650533804261041083579575908643504564688196800713900303005159608987751907413188814969229440890285030001534981953373640901519219328585416690506817197775620588133553814980598847767659253358934908466562028542731778054639561445091265909788293611977383350717971241264427154247787505048430087946699696971845290675738575663600889823724232087479678035091857456455437718617017295730338120240652332232286960043696529229166806160122626919162335744550334102570037120384968907147330659472223184154013347267386065885711791463032343243612159483924256282642086184233116530300276853627311510360050684803634523160014710471146487018136477454663133479658745514688575033663025458999500253759986622266155384816361799005291102816771596709571419911916845440675553194796339834647818345856289569266049640933926473175948836870515046537517087876187489655912020486183660555178923063945631693616180780496461842855207313613666128074392908416521812897104286072524341534176260534008445152964754255372044320269985085301707006058109688790986220878344010279772963051621691194197711087246614373136905419748511131412441665385409364997874118117640326897130479514357723648500782991648425243957514020208063106007143031365461347766190608423551184814349633749482949515110043775872613968894222446858273491731329205500984336418440205108239016577165010514239859197845712730124948409823389900604165027688042908079625974194877428640417445881554923970995287721969065475539939853567884543991944971603934697059222662912069180337281239314065226716303200870863194202161649034231235811459764323859612634734593190980851822242949806837638451756905890288068864067906758900361714687545244946090607895449658543104021397582793473599453369367105090355041064547660719045832629581900022551971827267615202058261911399536065574212019959966332994366472225216294051687461127541367564732700904247229760188142183600303867484084291978970800978224595530158059144102381418951555066464828095862703315303697904634235928493937413849147864021014249033596109526212055644877539015020789840951922833582081825362162568098033683099954269494640708725889068854652483056219962611963377486103161573893400960149306912775175501537185313814197548768167898726918579385747217307960651776627583101234108406525585656912569807676114738453520036171800828339736429326641285806919113288365880748652240027953687381006254918337432358556734384498125969919742814876810681056412788655095943557915708904578048839864993534643794137777321414657324328393541020470286205188181008364433975089344695302066454839205457134511080504030999005606974381573596385325388377317758911194663881967829797629172176648173027743053908745985180185502277743612567668291338281788150768185705848225928192765827190330418783497247842609823315430805462233191557819583824885318658640208639473396167330581178941683302900669284893124966358342462190004233227169748201418313694469071378844652027474931895556100691360438484861879159770933247013158061379365944234775501887225472269641271747617288292302262642887683038689511695871622049630869807888835213876354831621219477610456337862151442407516591103091937788166161979411049212185801672863450692486643311134283867974478622058996492377592430347318137718408999580666949558493460479122728600197376204618704808497006385955286719634482968538469670891119291174633894191723210159831790656123575982619802819763180065561463959361398851167632844754272174697851944041252993733919021117668497662103902066944625830165103111784662420389766021263629334195905133994930877455048271212107172811561928331647937151536612038135209194365223327197094707719152120146873824191459298025952158647479438195794283301125031786359201004962273721040233344466633224301313573345640936699019334717796388418293117803735697835137098081361504512886824469852240984115791705833005756262100557931813245413650370143552839112782003045612804797077115445381797978688941189227487856571465879595880903569978551095618957278279432006204247946166338181095019188435204087287402908723266312671673793030862087663590324126880085603354379227569979320000109522279267430330234152221304361847511327498827258054927669240762622966705253613300923614337048175857641601308752710441447512398791157340402949088627458688337069062587320697093607189615149118706166692309266884976592783784731145656543964294165907567520231966119564245313070435609751897023547879150987166465818155119066233621544770414861762632838685008738361988545346317776443198001184814359610781953447448111116099331780568188484075904349583990078566167933451014851056985279701078023588167039386371991114534765676495702727369889922556287995459211466090414464660426191493370710532262373316331285317742465967681994707815660434769139970504954529434498648884640335241094933200225733335719072906683906496682274186229681141094150342335205419911758885071995682826552239524431193820767909301719285330393728494362013093096494900345679335258542193075435004188683792748306200040887383814360223031290871362661299591148102781001166921446575231915891999411550276005714732510192571775058136420337334700122627024709586087505138937872363615067415750550891684580663049956719424569924534445897426509878605215617937495139422814656581797462207147250420645693277131003855848009955751702299851999951883235094696731878152742814145009505407449750129727861244096794983045401945123091037240190650242322507948662024051522708376460629747936424816534351608345350201315301869170940742213809345430099819957724330813514270036458861218492339045207257607371734553563632244995356226316416433381118742121895291560572140915306359090887193422728310208065294382306327811259789702878648031571387492862883077010366382590993252311048056237268373330085582561316286598237892719173345281881344882358826097805892500869771560033067274388360275199040311583502213389191312296280057824580297565825768027739039002744708371476630366590687199467660274945803039191971099759042756874165948042485814473077487844852084194067774771555945392738505919491580632353920291718889546333563636232607930685324733791970638807448016687690718611730622178175480582910906758536730799883590883458309727076453835624715751884686136395982149248009738081533124106412197794128246200778905538753162545018725171378329720246569817479921626185109350388736115836883271779849992317517666407337501775353509770339075274423269768561919809047737359592661375448516336370970432123326984064600292766529044663721183286057544636516884473444962328449065172519986553694047260860081060879226201567896256471226119645061752102784155362926090129677246057058904766782886132517321865559211479615935592038482344689501963692674731280163946696088752303202674169503323893211355704589153191775278004941321914678788947214422918387827315230394512006172247988930020180048477227479130146457609935570541900839355299218758601024897638917246353783210064657219887507905803009980163381462535302037581574389945869588540158066830053027300731753875187822535799037276731136914830685815408631468247272661864525462937823487846508169868187698877804222793642562385326520780760990474544122166011503681300528640770479665396590184460634911064515506918929684608502642204350708418951288828738693379690275015438038711689334419778321265397130937818204801330070388246635080872949832358479128904136333585769011255814092041840194835863929383028224727932490530698825596501197855828656667805944702812178528237532619975315346340057165852736774956026462815803321151724265298996126056808657173717370577809131949344216805375302673011561097797545849091200113415173989775188655997095891932821560009406033139064755990919925571193030282144516606081905567972841672484288589214575484058014377850242269045750266680152087746755388586123389738813418445432479910408085604036284689717275727576990005159418384449169987038891280994488078014717682011530195052591934577662670621124928084185785108682606620631357326938061852972888515354617988104303023396833739158482644531740940232866747900637386864320564906189426894930529079012892374075531865391336606087593605116313534741849948323401081038278990562694516279707721398629293409950085728514741585398469526874979468187414287124937380447640677907700673868389771722097544477398898250912759776457242415715134573039743913120309929209120935690551119588495654775238287448749589665463661344680612742186558249951566207581385319998252299654842043595902667082644111494058123740730047852346938119583809422735950785000655887828927968920514294840455480847186874765931668367700440253600959953292222401812144428412790829818079474732064521547696934997341464246449936505719761744300702951386523578641974517995115113761670991941800814388520268261861696722850596160085516228454682377940135111446755533219994368967572396651007775204504975770726058044779876092700298301293071014993990331941075358259403328214127214826195312930773971780220784196079090186238786009431598908035743230105130246538129047671991047263753571356198686568353665407969693797137932459839147642229578888603173216313299473038415039843732969058196074903665378401955244871131515414002469314582039046314063208046500109169909264587242398927495482066839636612715330746899690597881988607703019104933624943927570527972575298128838110907914486518228012241861830695595364058521726617657398932377116939726237804520289847812135689205220856693295663532100085766330744030017022927718396951717560690594960404964826889513601945397604819755867976891190740443277979297530762582897997196722105198580913925974481846179147177105490222710064837032991546746931228368724826889408220096204986084514312269514956709362946850956498922683834523334747057512014415433439871931097607236690117887942996055614273217459271509128619998779936659604799189951175023684621695877083277298162971146800029370621635784666096187957055456242389800130501620336531921164665189840836387208134328365984862527646644191923149563412062790171610508614116790632415312171325806197013407231613510223324827741597099972688046129046972974868948383568676168231160206331969538941040483455176483344695592849683474546136406261128392463800466888903791548917611190803369294249340104583279724405772151053057081425357635771565535986765014037472510630917555588302609040894706311954006904515876520850235048383153075892058766541810931660016413803008430435483742268324771456100646711506310591513770098567955853940613051696647560626004750530661666543038705091388684359365192627587313205873539693742202166127695955118885883736014936056916272085518715488801442031526568393364852785843257566682967762956263816555825316366302187975546378037266528258487851170548246399207284770411041150031235849458829131870165248894087219151897845233160588159650726397556399476642547970529661206732781468918231975888188092193789888559864745200453666203818621351368445990525745139970659526991439461835713013580487737217946625458276620169650128757352391383121951296758390189699418444444497561299539395553627610112579729857877424222048179667590060025188428332003622419448885295097589746095189711890463310876209977484698552244505582941382458761299981499348199447460374531445135878942026484893217213779847448865089767807819595696893618124449790091815210600216429686502514739619239078692011385427032329509161797905211369956147561014160154899746475634507253702775158672348422715253434698283253727536219792534192837593013860266401196572241303773444657659016778116658790689179639543634886790904072670084840093650519923028626420700573168339578248473570251693783700925246337713508093317248247658366947449236539228180624074489038793997567875220289232788501516057246487450326664907905480158174599441485888872686043577832206637231550459780343229582497866125892104969902644588634540406505621841233752420961943326152847109121343642059863665924482609863303803660406142574865791659335955002232598040427105702632336706610907885666748789283847087228763883393782660401186307861153905681880405931428896487345243108798710056666265528675925975331159079209815440182174389575070594474527430118462495777471734270513472519440429571603441960670214748113487631527343664082681460937218369515293257445653870615499052260626039491858931121018502492274254175138104402181077628735193543092353251455259793812744229428221922365930990983365713907194484657751250067273709385371735721136814272488476313401899251698039766274146021915108342313096790918616904419619134098707808790267230702895209373928838247315973304837533407736572004127257905634618267911688818585741074332861737843263173993409057951894614797455266671478477750409861887968338716115152037819700075810754230989596607850310306853852102120721449063394045142592337903346056206642024538795358157232531623293529435636045470126232623308693657674949873074322290970127493597798180957195149836348268789745014223337147482736138106412718272732577894747063656224456948681028885192332742009197037828725962395133402486763610317792098070701537133776997349029162560180425162283176605057452332556155850022784893768319846045997523658962843525923845251373622312925912109876249167929512143202526539589226219141126042682993965114902124686942857232790153077137598470261878156426268851907473141558940315823169992210508479115213350266851931997557953360810724583567261962757001121246516463116576599089076853112159355977125855924353025869456000392031199221225914278697337707267856089002146017366616141895238956694716765391246342201435029723513155421169417212195687981579126938429169721072300946190943530492128029798160296781248436016721272488007672286296849199132994878294639794527225783242630297921900372631940410288377533325950441603770035549747421022165563475324732578811602258523976213423694880304526221361631248509996543958928314035561831979786128677126681095334317730646882008980899325543772174333293991065918363478446851526598862469225641036239055869175092413277125336880894284489302333199456376571819370137469889274875524681508313356653300250259869595344561807489993252483413208003440962681438559856482612634236171076190556574688512222791916726588177533875074251011142396755474070542469531970595343567493156099612664724128615557699297106511606587092804622562986925063618672357995432509244555611363850444544409463077470984372890376555259640389944973048329290154015529655453662802303196136637445066721508500265305224767280785427141777171955182088769926266718528398488662386352748257614847559364776908706314892110776111502565757180896258383332307806987097654293993622051943335463130512859045451102370411988441609700527925004500509183094460767723201264925417447850273923808679994032860155224569433814379192501200816695203482767089580834504138983978574078634082194667988435720150021433479497927591035287375498086889195781171912133429187129440193139044058718069153868716763016040349314205397036878879388530230807457244037633410160906622388266443411147852885386440703919121861378581334086683500189457043033568387626746655288473792821553514523650099265733541271811610587288933139525546448302139122471637298938680988898882696505728456392250654644626563404925283645563612720624547919228453102933111668699144800762580031511426172878914048737678374577429482478595299193727836431009912085965958139755757392417675699755724046188394027500511931976698458195542332581355048185670881832003021025104834424647672671222006506231898303728832128284018144419108300312429426199980229726318739414519434824736586599303923174393098663309052681823322667153106868861753041880841946282676091056293814391027574509050382590462417533876325631028504616128817226995280966872283244941818270105467691395345507713645360066185636595409082169113637275132047612376009721577948242232139457343428292695398500424083709232187882716037911681695173913038380197512708256463231042128765076592456583498327270014384235650245416440077660546788718256099215963887512845288904520842493240988159859659552227523527288186680359709466297095145144534544469707250479748687201258112394632097190655894733308922645378703721104989151589749450272013745280235152388685817959968559664046443964255075147347826726997832433557742718404598005774267536583205521449751361144361763937994136278376453353642008902455575199348789685217554246219219960652748198423693817303489738788338633576053406050068567625478728466523195725237028094970870933233444632132745947361332942664081247658482478840919334604948193355854857664594046624872783253600062088671131054196040674425315873913840153795816113315651614077491772205044556598396243274031489948817575595558293143080912553324467200517728939702712095236600336051564658673136342969628353130039234950506426723850970395253741733138223883124226625175612601027734785519668966982499576771011837583620621154089940078495680953021609765547817839919691648067662369694159055437462634041092245401519245642530128440742981731987349762453538602842910181026744073817633364907752943599109269432279393906363834518538871392208056895538047935666840382962874598738237647546169062160368320501881157768405564082673182822252233522116394411716580906067616324615336851587969931154564432828990238827529157506238478828059653300937487005560318997664676509485420516042153164823941831846799050099045822892451954421002680650084998409843381264109798684102004996613716301796042141353082049698693887916562843560366653708228399962008667195412873750311686770760717595064629734014304341539889954808648129256563986953068858158671009106334082929912630536539235388090788420844982253996806472430242258474081900612661328346882251426520939072134313927239003775920971513634480725713559164551872061252618647629720675513497228388065098797266494364927978852800842241865198450356732961398367715451212452692685941661671686036183042455480821654568615193462736687798061413532264110276463379801809268744412335737333970575210799914555435592749221093141907718337765096434367276996680972613061065082680179056370131053445583985426165594813540027680025234569615305284849680214950623945342417067590994517290231680722537551223109432579329219210331171070437788580972311226391820754234801749890029487492391314584723321304137792735364049141148056342453792502818536167408254143908410882795128621835356080569071785215361154705622327956697515860388163742252191061421106267019352562283556200595408466703706397172487042321475070131547329288550039218119484881810065363657073728982791475864627386796271716364193064695265599211813656915789621834505232277264021077272974956897602704889392430306694006119946077101665027793920741946646018378187483704040129819780568433200718119018453370697367882024356222776885909880084400806960071250250586428779823066815967011699665944763742382396986706859537432506143535425072194574196545018901270519007496180111152127826432427393181335899257738546265358758738438877930798985950893860215038555632519299635707615189249227733458241482230006836314346929274091210347830994805573740346560169909230613962109716087450201951916691410928052482649900497836511021769642935425963271672331382865160515937222948534261678619907416209558770787284328145872504909091136337575808591495552972326086275922795063819173496113360052544747613201507446631440104918041964483997765090586109687631273560527667650798060720246981401191974795748812147186778091426293901130705637869901630826324600498715104109259437039137757140956111150369100840940252273872218694710213196726527166331983219935022348168832661613140656465848597623625907363908836305990818827101574414985882078244107491025295513140239238750406370082797350110803924352234636142791957275971434911278586569288686377375906186675693887209810208943259920124362035350383676964490279097677916651337885916862474573823869454852763708660417329378427117691139179815761694806505164510272750889684373537562372570573731380994629949510661789092035807636447937804743478568418843762956869018866403063875857250196987688670421709261986225877653616943614643724304884982971846956216939050107190452369272560630364570558912932202314581891079452659903586226966129191791486961111171017004505704003729977223523958111134777468131766189203675017287084722080078605525060398092920951709173817932945875524125721400733292160450644492554863012079890682873487156444219837134126142452024575622132336078657248575743291032500701098476581634568768898325162502839714340687432565733158096850213329489282864170454557699029413694887862742166111814820696946656897565793482313985139199156405259643480270149615830531033899464093028328088231295092634127386238725051017082866026495704463341883859331267447265567597751720524858243659369208433917645407470668552618283030673062444049558185076870510944264627031419312942409365947276691742739366258671093892467276907774442168893246386826261766158552244164614757208330348035592394412735794744138011128444295516124626008644419752295784810820194413378108064592453847117746862084688026643605771015259678010089598168480135215998546013558953686301289326120174100177676330785145983879735263905328492715627742617125320492625691182605667669777242637351921886764623778452237047554244795952492997883776627387683982549127525132940525415825206875860844004837103461537186160548216489163781194913150770217898188877130473465332324736700717060821693021780871858179302695818796748904764817057454818794392996948850239217941157866952022807900174621754079456201142514405566820984674031288995565486464354587071074970277889371295267008008809240395036574750382338109741241551427939521669670666183436791696809770279857863484233933604671244347000917564306341364560105628891451839594765410829959524161973973811016701287046894460680435907600671866112159234737213826016389415596739707708786707726598717053137668798251972371264062586555581545822345131761258738685023472483870683540022919654939264275397626141989519142179637375979442065781588597310874500047985487739689443840966547192720940502444747992359725606251497586619021522112783006082731686071884503491184465122373071833049695314775904044613933768767487833460155968461646657335647192572478490124920283320742606737249465404883357327936697454582819052614855794366118007392829309315682900516600822264881111938233535249749247575296489752459063483057088520128255894788832697041213870524428354429866398502504283090584779349183362265904618935260562081985179904704345732560100456852738110589369117955959746356402379150224505701143026562651620778918923092711761675493385942562940713913854712670708731414953173889979492297426332034535491882107570124194468402423643105664130908770486491121882695177061394113161702830561658856600530364599335403916136529594040535535974320853393861490884249385235660747717518455019284571219542149516081895493365116305576703195962050332375677557408265601884761870782997251829219570532889464692219170337487027415940930334320195893560319728613212734142848847186843755704664655840482735325690509521311800321450113431206102266489258518259879530675532329255888246426038767560855510799851152401912807823301854946883780489180298127011220791402658079835070069901732488445208920543588410036522085336527263649688312342406473980397274124215700041506532159234639278777070330271995131815153031999095213735374000782127443607061536400577266632973472997948582287369126221744754839014433005790093020284840277830784413161815618098554394542221572452857042468437668992867534067918346952931623966302682054239549542827884893796044592379048650908525199479708055198930532273785023603634318030257508467084442761059521434777057352353968762343936816019218947556625647890815669605120027702509875591364340547104943785877249670943357069289016808500229019915715259006155102351742944865493896995523254356650462373251683724347342996103846473460971594183171649556698154190176364847623958339614042998130695644189962509220877746572690911131058515076562844768371644294750853624757871708636098380067071988621524034627382284797939415487598056874498853548540697316037257101888169277317389988244838977932540195891995912239205278365530456072667828248180928133953482676718324344054008218019746152057942058133500680909959518552258439408707777340422489311758021139823766058679692940878944160856399530567400095450766813411013794447193750220958227067208941236294181861708719835876867229818109026624726440225275884209614948439645928698677896693514694340854881817760690614632575398911064087597318028763176587663832554160764899845170934856627480539274650728958384178609206128345336245838266743520071807911416797394146706430912750467993384246714744060605283450582567775686306890443271201705137306493242023264292790538030075014446399865827347331720332155296655578931014075721185635126408291164236848914870751449684148178505868446797370446364698768542255583711339914550097796095528504633269693184066832719317122630407313438662176935303905267458626377651160557887677551969107206556227348333339951288131877911693442758424398232684468910968363485972884518423225898690453665245469717173497896507530742666123581175803050373296071769760857999035652179167231832514693758332872918656748957625130481612938341781425109320066010773257106809363444146234001756329999846784482917862687278824492247706914054318041325861333815268473139632317463763114434877781460817189861502071992928094665622727612694938645213933711557628191710865713006118207148975743819921692530223679984464468565687904442217367851833992725293465779425986039675575307136196309978466570431447692961652060760342424305629629078705965030412017768689755813383246919937276712174377161767397685752367795508731633432013908319558135629508652881477623399330869661198873052635340632149074585656869857398386540688993469551442582386077440529086499702571517671975431257602017242379709056621002834736511184896346607621646461161201609675235503831158416481058728556205816751773261565152050394133990659422712549297921491454109732269270163646774167204164135778554764399477120466125652329589936029185451147812220500663962550648386878156647069628371156821017979354406797669133493541956881357256075234030930909788810857112031989993975349885005974300825097223306574047025642378575495024411729157834493130577569011463575296310320318349383251098454239058350533425670333188033268790520960501778835688865073464254773763677836325581065166775223268735641186739292856080044267475822087039590499394241039538191822229724067701666030379068810286313598853949944169662348720848674496567828889603928939949937624686915238563048991880491428884246006755355115150852087470492368251221076846133380920059522439910396222633237847594620211241248039738336931605711239258305550726758992949777678953350677958707085874254634891883447715397830633457917402222999643846558224781242957362264595045936838423067567449686854319476170576779302013170165202265307802340548241770344667720774883166065271660008127454950080882223551942294253280733986242480111435103866030755990665268024784466432884774986282698279818855933628720027264624354279864294286602371927976319882513671538155254543777717938240463773293824257655302351268499835214800092990341954900822547505668204872950657433604713007398565313779846339588694820396325724102950910990054476172956083019290964643563430226119831727877853211159641837962006784197599181673170717541498001214134357566748787591584638343661312320040196561020486342179553906801415948143051975052904624780797767817226078588060435869909954735045483380342015794486589402088702662542903094313370004510194053385278632886054726635236235573983124922792877036763756524487670192363493044577677840264890901119815101192396498595331157467262824189294337453956823875010425632918258974469288305009942288804253170346765651289453030000631459640705539674741299549352640679992425638241085243408015812897994087178005441027686106494439767887234384358114889399866491245709402035500074631268438350507679150224134496716990240743918099087982439288684017361658636635851570669060882900000987259069090316435170646646701751047132844429845123605653770947440186338369091067426908481225143598257550672669738002587540719668375895164173158313039096054657825703273099436138603534676177480157638435154537839221649726346899869671797369091823024614821727374326892592581666741312954878408502629337094712013711026787326879537305229268642836118979505020761942192186744585471429186495588256371819693435765030814232328802982816928532352986928510749504499602076021754648604312360994667011592935817173693432280274013447286986987348992023406176822252876601466790903363528995634134834938714271185344603408745245332313633553096388926078959220601954815753989057137299912457514060886494762713373504918933012925244122341204312827219306367814686552391646843233973514664906510671958302239578625575845162473330688578037320874093581804004749768873189336122935370414219603236933096434472791382286949804177740889807758736802222641084552360272485668626550375267110547142825625304991564798258330942619972210484714014777637545546875473347162902160026292663714525340384145832698590483913793705989050361255078070629088247854420512617552440772578793606220842581367410167679662302990307946881371343784991693987852038529774442305993078496685231346260498306752960188141827846286218592219867101051716265179448940831695122771285431188986967723124005888420974374934363906658883598740913269971599367340906402493539957356522233628833611714268064748557280713711242146285017691153974820208614479049548356725692231291602718863466174102736544421615626024545229748231548621408752558915159628475221545296361191615830361818900170227230103075744470654585470883762425927703882500527597489402569681461992171513342036917716756282736523334513898892519983847248458125416152312886563221468392340632166327691254556343763693407646289227172229708351304220847711953849768470859539771364744562758814449368427316110182812595369120959107264880986985479928506649132961570010422029717236713896041599055961228674043550662932689100863619624174221880721326513710248902423646583621053335962490905104243229221271266426466040799643983388142049640556404279352030244736252593765899974253585505846321246443523247464276624281655091136772125214685691819436712015853521112366773162756461664569054289171850928568469090040020459048404357426456285988530947817711537249337301065348992560124476286973470449549614677647062337983387972105333376186105904051602632543345702768764027859381453819250507418384153521210687416803928950877007444189091872334384984633858696944891003756890137740063675678029782796124112832873630026300758160596230306480491702709381774236823770901812381415398225499705999786493996100107724735042035613141571837880144138100130026386747148831133845643708402421702291192060993662886514668184042235629199558499943142402330656436041378431553645737388548410562965394581329638512862182063513008999700836395788456597243540431237577555295103711916196333910647771188809218792783736237874249071806391727549379789857772085853137524848043554415426048712438531877793418415918452807941557964560457164302519850756735941074800008032677003762772939972684110667286487589236482948900606158017189576539826919883046149771943037501942231714214638926547553165445049566369396565856995693520353555199776397251416521312493681784302520352960330224569788491769163265848440635537101474145277561738827597559885762649782237542484362724524934730899073421396255220694371305907082354168981205710104888066528553687603486326003104786972493972914841283633729752134300067528422487126617259152665075843529554766934347576628788020970849482485042609991538778433454329118250235871086790503381991168072898914342175182744498360284644709912680565134609004035026422200835332851708497093100393911292183013295447115318753939550814945247679679622708617123753087306844665587699728694412477337978498330478045954621159056421762012918706384421925448365239639445857309407576626321344943931885749196368368710084168030634234872662418792213479871779891854826760341877377534762761493439198969534043268697761428672811183601426469134953793442849496354728871079615499773300252026521669614144672154760415893865433810929943312195222317661432203837898364275538542553789531428123985505804941034772875055640002798769194212651845402337512591766340675644224299676794252157058137091886968479843943270964357408633591851980663879229585457552231203703060641779495354375507731068919470767935994497415160646668783604412308679053273204909030801268114772891212011903051644932731510362994529848657718193535804508661453273670751137102454311789636025773983475179712895016860697362385187518923161677710693771777880244194295714338201500521224522182187117659548944683181654928361850219314123130179381387985528434145301563817175827843273562137594170312922792877562172048641747086405287615823832227952512581935046739397258154849419491297561953007918335937595793159218614820405186718066117851837171766043412189760926590512935716707042985551567988231047795274543755758478706302941488555126054786579164796446767283362929188523945916435554234992790234725599731155753226415680766706667342326101995882630634717850460893659674605244146905247359693957915175967302944133439178254543223314476585652540086350132650018954852670598181787186758385693241447925185065951410827785144683916991390917129351998204867527619819708455782096821364647855618690623485978566163287745184585135368054969674951537153214441159040211262284689134991099860499177834083635464444331814750319428927165512028893072014495905748368654990479858284757128734060422720680544437724917578266771530426736391040020534087894571243115888269586929604629990362914241878590022677042629129548928306372930018892847569560998096063781950679015322716317750848990559491555179576418004304393803631306866322304746367013948104630738349580992709196925351560483604522087204414321805210372863288179905817801168491741642933953283820089029838453010179431228576886189927446487798390050820318142919439908529680209138847046490108624867531951663046360670454148851478459695213825517170404189858350822508066345623616508491225439098932477686418504844162214640831383954227406821409902155335688167788959428879467139437679586259570060179425542488550175169591710714750116595026050777316545758665180410325421504805757568504057158777944462856412485078928885108695931148388242970203555192260146084136896797931314077623085452831179403884522511552115638974693999075560357351835793484697684969162116010778994905932370381366568182046480191664410413631998394202520542335482123401717929001999988927935581430102900904522708006899884566472313931079146833811580230484151576954248185746729244787140824410529217003456755560481048244453757473276071195519265642822623034125808803010090226788340494600462831721249967862378368499953054844442010528700338347274606260263514135098195018236164419501981215106750367237860667954431457872947585754894524374800000534025164180865116651477432547714946040703673409367134361420378200085184183954778936540139144179231531182376893066870076752881712000072749182880963937559225211242762621473739838501030233382075528180984604462808176495301313215962171329203753042127241133615306894080274129490472512317405514782524509298884127600575120473679215593363388724163159381781798621159536350586131563476493455065984567306266703473397177598781433820209066913658876792285862827446752657075219900741849256045131486742413924914520481433236075043075395208366438390522475610202828472578715646991023572054547375576679629494681299415120888191191611499686088204696416710125037531773244707749994737829400105609262558224083734009840936364309851116740852263337194766453938042125337070748955080296763081964387216597994302960664968145746061396513158289389522579753167281781242885246272039726943534358975184592946223130193888789027192421861366453311059235166644978256205909632326919630062120614495696114730128853671305036958590833125940312522116738368431073587202808955824143891803349226588918666624150874328340985890211271426949699816830979888378425383215279760945252259635796129835239070120630759118201751393916448888036182415542281545694568880822685055689409237889296868603786187903192203198728352890455673574960108591838908492054740517755246665157103141508789696607639031414731611896276314376749203613394909991104436199474028029041116762209867339792890440464627112689416077094025829555818326898247146370026266095250566490389825049001969647012505194856814388440498494226138537329900453543172733157173365090757141853115739321798618363035687922698854501437178849578227375127008239506823924810030643079905800117241243260723787391123122707945451630778789415784666708102507622525271821920946309482207090164047007167448574449798531646904789989724423722503748803777375158351674550004283339908694709687262896494879044959987059666421011053090455249267745626440939018198615738896965689933760327299472637586010652867282886074873015054174479989448899377559898827060374805515342639537948835999689439958488864953186933474599407265457558526944721185839416651951106208236246586657127187712956409649064579910945898671496554604233230185826154091107154663719856424622593576765622064043483328657212571262474424856839598751385853073419980396489581335132248164664896862622118525755514510354214395352426367527780291432221183164395626827658332681404110019926621144289772247022260154700667456693277793912471555624508960326381061933968878775212339247610865418029659740035162611785457685925713067541952692773095339786368878061818284319743414598310437668345852291835148534218448166125913190521613901974058277341687189110530558307659623149186181186727753453107937471397786591672163554435804665993294200470372192444979989216732714734149676170953823388705308790944415035819753445371988730528546841059172069610671475500591924323232352933217438712914176101516853021435266132125009144404491824681384047498849872652506044410524596097229708246938613997515216254975489892215114455669481239855077169468182756895664002420732267909352769446477854367127761030143507937133623714416888395847506926845010546742873254816042297453416123954471670954370719304990117409936728244352748167291895612941774237843271053923595681628805322183209457312467280103292691443586428110447672933265030076039765115853033355983688224899480983535709364657263584191100795278647861677640627497374532420770363353745923407696916906238132537431541997474197554208917238623146187014552281714519328426655690786650309630446526837063278427132230957540952074613907271599037376527833319700927711889785702734397586287130183834490145601276308810152436983303026333478738995632024591693712586866205522631425589490430941242493950775110782454358885786049488458894562269345479095121772333832360075647256354673352317632668591890161381046546937008287575393199875935727987172478498093318575713609977419635086703161294674736475154787379259122862062540987558029668434147568369647174373397807039276217882373465568901841978355078608930111746496105679288611175443540007400308447640008972265803485202922722123633184713887549513011257529641868028673803735781003368969560111006997939852874454828516682014088759046773715482389649609067367192146142988087327643029858938475312286160198673955898388467757447233347218870643406526961294864884374011942188013442538108341236346815752652952543237179744546166987295662405919706600156557649397236096762454615137386901727982387554159359142643600973229458292836641351097540087131395960733410247427106713274320025147134550879637304406518481009967224237836947576530750133445042297157995040172827483943080793244001940280956014023145259683801788069502107410545591590840426929994111885363248446634294008572790389700142520844344506174378298447046847688571826402654562911742887256171643913838956587530155927600433921678054834386098183021287775876946688879658821100818741491777358360550924831235048889988209354853633107748248126268236697120945718151413059277849356683154545033868942054080728395095972299484477276507800260009413294301152877010745633791891737859437599544501870651586011761767078190189273526834888613367794961741984774171275161409617013118550597986425411842514655743561504372827316843890155293599660887719141001060498420299940604133663136807798762250872426609459199093485130746130060853261844647267293710609536392611642461590724045752947376106657943845338748680082284533636340856693526329540360414599340563086137134523539385044764664396255676975826742132698645733256962994151643389742471158878002461391323067028629980232706202251160156694013559957606607003797614802109183284722797030265279229671877115111765678160828878237686641264545398878485112868923204596446748530232946593342413250065598573829607303053508051942662716892857229639953341948812787062683461923813402444563722607149836315734300614444852722106877836825013448811636301412968857174250748999460546442104301609311328410515296768680726234467547778599582139923318640212492624713182096317059931262319344779579823931953779656151404676971465744699663812379988479396536698501338259584438509860314290699876438875729587530723199336734347408996635157886608284094531025981701497465963507443488536189757159097815169803137786398189240090081913736655280638150348984009246221041340972379900632932415804879497694835962379743915587283021176120508775322691263982960903896738604694418121356146095072355243017095992472645369632952139064964092801831463347022863895172876584688732326198723669442653347906336081575189828111044663064185849358324427429599295746764361186520794597858409009555984417429571541873213863284978996433242770721620814859846429631170467880389230296187794408132625194864201177285039051969132378472823252104202370058146801170025542650590100398919488292009591283093997895295843484823986169682297395734200388617394676595164183046946585931861000146209886499208372186993686421246144613194317440222287415247988116261124314170729006999219242963877461914494942975518554611027319620282535237632672619556389050131535072350288316968121248834592052010091753215078323139962233802688635092478161356515829897735187655366568658021331840188950867784377526297596286691841729993090907380624649083983000109268351923963251746960454153722052178375892723818721502727736790824435259144714847434328441292446415603985475693259671982288746677629108643271542882251928957877025661414770074735164191554414248770344285651687835293737815650165044871893753852738266655199617860405252243478890913415912949802659132728168677532130203058629674275673325960793092015809584541768256101117348752685750707989721086835893651419616340617563743812815053950831758497980734090542621751760749513632750172588071135687656046225886714437359771916887881179038430865718383648091987180892306680235453040520947213195982060553212935370828115583225451910380279808665919032312766466794769484394657934719790769138589502068762542435181209167225893717445622127017297389815612440932878349289228672863141245259130081817495466609390697011559282752620459270444802421987298680975477797390319851612358026624457075874807743613993742781322327280543663578333926821171033907082390749794091480574766865345818160400970590257896761510919760978536551827626006398816322651519755065980987259160436799163039667761146002508166157879909693486638315224191090320704728165671153119452260742259820025580853004256152312045806687448884258353746607412598326054182482088873701771614465540359569620415761755165664139071604562754582381077772844241602035313016285867284835839241822956025059875799089210738634228623780295104802652605252441705949147282167213250043756064333697936036329828315856198531129870292643383773058981574860639296130960633756908076551129165323793552047526331293553636152022713239512831447420310033425741979762904301708811338653306160522089370717746774978910984214083744638777407290541475623661054933199443370287400541325971635272814343291340495447199039729659814614379822852616219424679281945517294330730230210403291527114085101261388579148186069792786451282782051418031753069514584149628214457591296316701603405632429791663978052627933511028894857510297300255584781036928962446946847675146683502479863894834506078957046842227442627455783364054915983942827989990028024205355704652166799064858405558654282794456435089998508918603145292510803361160920866178445390708818168071627727908595399162506904766697989380343994703485672119409463276370873965275059970365388729658053375209500849359550003099991659330010002959400040230650846176746379230006086889534551831433279666937571564643567278756345396661900898825915960167974635085355384678507614518180845083237310046657850003918149088838597451706939555199488601888769240237561688840565361641741366019761197921374632427167930792138899247440598238578242866070826870962121832364464164523779927264017214577191509372435167645062982085806818333682111199981563683010045810402410788021865434442989430118478515424184962993682043733890084485875262334010966868408759684760165593608847689042048467849933888214381774553869222899796918547469999125355732355162873769193945654251736635980911708117761451864133838166941142798784965025469437676523385449532683909546955163079753317267036499496094779363647366875128887087726649745548648081020061165042215036991130206811165628987656846914358497633360212377975620038543860124596789916880736979795899077069213352129053038966767639066901953686727869048219951859547054433635813744858849678101104057285950876414586248232451612980670799158696616467729881246012655168507472429708633375233732396552560392962118473858413502091824860919820033227255755654792693126117674498719389626814861694420723321662009203066003373398275562957696684127037704684854363503180991585344564917988962828686375876388281454508731152658189790035405112976948201223075709482431930573948765070064689943112754366345134390928093497080687731592829572851626531306134927918422031218548253039276315094463438226311417202983974728124880502296900086612532221399553558597250981392093884429267809899404865807792192878875139631932492100009226618757259950329789168888693498478205914509478440011732155736523922604290943049836461607198497591705212913695122931160493976442273171836755710001555881938497434339044438564675530935472945232386021739011225728557836831853667138050104982298358573170669311937739253449997163232073103582598741642407541855950305539338135822020345736964043195755180346316004001808289245873758541746406769015497063777776916095533379155558934911471487102545938581517538822599871947030274159763205132447684058146010018464082973515573892966322693252070402002326228984811153681781976002364021008043550702806901162201753314346206098742861617152218510519981560967333020826818249266997125359820160422237607389147826791925941930939088194257870178799036889580693646728570126535033305886913726335705969603236259364619012270244428054009774058630128923132889279216419850581364544745264768445279048667409543905860481014172416456195615717425586037136046655720807952891143532084623626995090305152236101465388121440093758080956255061804517536836797221549371031993060073363596575680766733927786520765740662154655662586292531310275103125440542837403787210533357113364547281404044250310817795707785330152463595932681650339669311389979361297434291912120140151817790265893322119709024121304011773972163962374989573459407148189662916673221066255002290103517132820251373937066979505198730630108726097230097941360805829724368288507455311804244207261856230952786816038759167470751479936720450389523213434467793001737858410749703243423573392660039317094096442718550464323019644291979476441995036084180318099040794124762926883731628209978397039493997719878973612801042452041375539213906381441670929025451115171726987586966463538233081084868534090204741165136342717790117745577111791799140008912925036588622271298848024494970167897643679015655990820355975281864699298206906051143372597979023839299981204907363335933475557204444681330053171468303703898993146872477776723280069372742183923048051590228387395655553610936811127895508812279402167613381467505744762460355594112430118808843474993364539493522781749664535227538468372237763700511528126995475760443081894461706029670629106966938372860946776026514378696881260811623590011782730449256334616980758536334819451967445573216161867063009522800805392219274781996350244265091071511784515167576101550367847108707634222836435524841928015587382833209536911559453270157947850014580506210556866966151848765461383804316335155967602546285649925936031803941186820952569102440150314091336582348850265976897385348208577897767697367050893121863531776226682318016788480083909600467193376822694300297120966003831135760325899225655096563788032159378960966553299243130348847796610897993121043054866936898017644749656481474884382720607239654604389605197352321391091783224841024433016403894879343766352839638793690360433861828058701206806338968934565823599681375417577392088190798702338728470509728911528127160315442507176432389323757164607830761789166293585641738265547050281019696832207340714068057626052394631513996283525828638430836111444723870458956827789453770345544858395059315432580490657944401508372631427440184871244488672539741633023802549112473658604357621243413904531964206096220634740400792747760157299698792078395750435893400326186810491114797814875895860566222777248002877680691698191475810306847418056199576069139624615923183833322264455323323040413251106326652490816826090718762582392066900357192682918606614525297257982307840081563358346851340083071709521918899439959329812026389077679654340214216504016754991605151577130000057103630441948221271188661372310824725110220456513091136869237214906978513421401643332413853309180523593599903307149595221624656434443356501723829071082295198979885801372435395033713995631084526284547344160011712993770963096504248917912495204652583506128807009254840052222537881260511091623401790116291652472026229131060764145543019211767804801023661482189336628168755680474800290493837403630681944416528730961514952637553492991041061085018922857613535148763103923057415710371426515405471972733192404082348758654222893220740988525016906855390843972245173381297875365622158549269520176458908482931120790146307192811847920196903350270431653436625643127612064008493335512576352433642002780900956390863159106936244640463377702333782163681369341616310326794947869400225743319966137551543706919328942423726197836821197671109680190264957586098140684153037270560661519736617314088327488347848570321139742068648112203004428853170104858531912261800236145970793855646486840647671628118423717627746374309197200460842671103302815014469080841473718985324251994495807174062709681532227660860240212111684656844009531515388304720338495284727835760938692228258723262072667569169207150329654811359971403874263381553535281479410364980068660358333907302887549931480029840289678275971099401191120752499891246680055368698537871526469542679858970668678611159718570923208593373653122868269391946413949522472465689333711988483101626203235746678707148267888145086849319966595558117226165081629513304853408521361684478740467847015237508849941554166969211960228685273907472563114439460296969830716217349445790986706478781126330136729817551988260488922571810081910084659359733940664954596636584705274884126127985425268062370524853944331251147244162641922345498325178283138936075848324616379818003297507312305342841648040293907854858661063585066655481213931980406798566956451971707152926925971260708604291279041626328762231444192907065320359319940406667971811664932298848783333469417008137383923472804467813192439668157458373205894026877837934577623569660785479820304800567269716008442208645715897506532495593118568138370985353669446877556012655745132826194018732851920053565917848097098607298135936527448395666192747529725193727692406890794914700802548879569668678362538234588328277372367267811655496646811810787681558522205022293231353649030890954038741329736733665508696028060953149585986785716427688969931164498144508291382076674404902698919507699270464169440251280169451766322181840066097025791091960420711274133401578047526908834888407373502747334907584282890189755561516436121296936678514785356469763847510082666122576049530424380943570598153092580490944420811713012322581360488333237328313075038205674259545115144987017847798279349344368958496071645343324415712160009772452181014919200899223628026240264524304445327950138865817885524203329305131725214994764734783158588944483964226225681379789943286172206469603708099175659217755440513227396709637714749350535279270988559855528892072857494317316541372808653527724836260082917141447283576202057922204111463268786681203162631474324760625680519337703608669278260245255750120931272167583124652079866659364720956973713190326417730431390841178626728004099308511191523215829422090335596500224908777945973278168238314357940774536693248182464758746676566685084163057391111905815664118821661823352110618970171893010775148225932680246998635273115608345736128316156190944766179942860973921281768425187642680664751780528567600336558618058491936084416742665145784334285108147046390122482138291628865236803098316324674235484199078532305193360472548229476181918389096159467635632992147917993821559587574361188523748806785069522303359231451206433430481233685352868394538262609443074809301684234804237796849514200902905405024960507105696166835256469676061608449665444214820736498127240897178954744680701938392096405625234350605042646537769841912255674008671277663720549479797540217064216634864264109246998263775577146767011518802603962968207473325021277670175490746719308537035054599699824959633451469090760560141570373276716958373246165397341401820082635903053292379692330452334047539849945252214918121529160877658004659552278877256438489468151936193366720089707661123514309571944521562536635176673201509429003120146495827030240414703149790182082937171696429989360104858967749695587291864797868335532489915289346364887990570183968406744239484306658606459170429570580464429455896368012077542132055766819091233918011654670726002285309665822017723785783741620299976902652785621740911661724756957572837447108655144001061823183388268346560903079644942367743492052676404027052538477266833676781358905655100753964766052360011415738582494380298261207666264317323911358712824778423669963682618417904950330359894470944872453034838512485171051331777136916682192426639547730535111248600989805554498502449954519846634430246550778427532409121819354883136488675082175224881094507408879444687458948563200702810941068159459354016658527246613939887261648310781529229916417748965298096345936184937022370068830219000656236110151343974396558549528508372786991585900187553461323039342467578639308154968515338007430149823817382494414584872201577417624973959202600504683280197758071713638375692537125595889933393180200580644152221699987519726915350663605180804333444440928001918604209707325899059576377274309791216866060306309876008457896047407931925815806780771243351413925318688593275705150893181592152892819301939802213183147751092934652766931362543859084679222168172110582061703079608431372967499615073467515811516561388174907738748239211448563846334541990356742606415701608157432377271972630808678523936807005185904363845092598979020813931484904972995548834449549375185250153233964278656436931323834121224181894884006150989685245193539165293206748019424664285706240389113458747007245675420391983608390429992971765930601866445163370041646761186109588568480545717275587880249600599370263551377399209214272086009689172464644810945752949284635113047408229800937582938709207909108560132202425482390552321922737415596652860090869427430835285902122372375845484554134083507294630687995208192588899083952835553386767921328778688486292820179704486729030329671648248221014889725306730424522795877546289842848798622500143629317269475306781352262924733425720934904018548505798964681604308636782339377033329546854311357611785193690441518559997027085795686268200911881561545448005860247767063784905021588034665879778053519721699656557587560139402384176852966482080606185469016081186157167789197658052323015804833648861703995495788964696228212093872226066198487788099346193688294753754094942470076874143470653952220691386092185364915567855900503504410632855135108897530476997561836397166895681952423381587595123659717008179324016858910418260736972123756788089296740299255931771123373120151775005409711483300619795751294592503951063349007462031912388511571742414750679762373652144202391966938279311710000856394813021119407420616575050032970111532105667388001069571922350081155481083671721331431061547344652886395608700063448626759489840161115436861403185537255031997733581823827325637063136378609721536643328654741507217562242536566885253489719350867442904299868591894060519569973146273860644461911472209453881237698712832217682837134636048008268301481664748679435755136440262334322381249282085934873050659309617737041486150395763982550809281828747870170741644268394605544745901029450050761885531763271187911868390035565576081021398966621726532344707894949686912120021074803613860938244474942502414631126147531066711087809493450836665416249971013646835099016404916168568929087155152375048345148869825932074917327472252020450395721027700993603717591798665039707725238393149263733513592213481524513437782564679497020527069575772957064227420676392523200520759213008637483958517286101332221480407768017750791771869521481736049218874950179293554588935848001590621483179073514461668660910519797101626725938336899825007450216519058313876351609836035141028744208364966927203824135382914802305627159402679951535636703418732387084407543273086175939451988395550730853546038047309023592041264404639923386878325451509729357788050513881875605058415890470445926684236680096545133280347779142031956425230450104547423771222917397425743722810724579722011172632186904185556713771146426240213983777497770659633994985198419160176830575533538343537730876390731202066724245714646234225983438757481063517925005680915016780378508575958963342970270541658642685290358458489897540332322831230369383873399930769127829312439714355520295179563444069572915985661502699539757297811625025633611636337418524577094461066987549629532991919425736448877650887433132377566031072752586261747525889340577963672598794006352366260789184322446052619650229447507376154895246863141526926438355042379076796572115597162319087230513408437626252982951612417587695607365505068278398703438742127874587334052222640955374391927387323219516950441707260221531554468049243989254123420908111642856673259018452679599709175144779621900188240414204275551957838672780256481129080773901425987278359348182641306037955802528540258896608558182546915912528383899294350369491539478774804162251098319834497440649461311661461836958607920144370491156285139227468475841088910747977122235959943654293510741285848853794107405718684673440180882302118140375061712811732197023265106713960230747089646961617765455249325905041471368461200723250777885501294289410382154195278167608443281486712597416556698758512943738530760755599768751190280869995117087625555081195132162109716484459792749406982907426166568470192999380419076222894845175253120291748518490186136709766827868037398469248166277570587608167474224132958699196376712348047616382256348982224515512887542604801990154810866360403864518633157364617237679083381501636917626748707713009463510929675811071700221804357534709942988322617713314947405637984037624298058807228360194754051758859902662825616115474652174418996644934265634724926848416996678581913229458253684950701503159777440945953620974226326842127746591588313687215691634983414485318417113347785258695592918142364510957764034350323002688024591293096095062669928229074224170482851409106408462580540174680391949560077395051755345378885913344421098440500750219625216600603286965266914787813276949443619026940896920145585654588833968109778521909059863914684952736100931285285026843071803964448854125071963561501789682713554616667198970970864243882610907193547796777960149206042055067057965900042545007361379404653628166314679181462494950197603778486298906639816141249152962204841757215838967729642340410824262977473422008436491652351011549436719258219080506686810757801317432688267419385420111621395577538076681711847365420068393706255662317347235621213693791452900361094034085093301544025481037447664565027009873924239013696579959569706158467052919114960665130067755745887171094784211625573279039705130496744726673982062156037304079808675523476832892723214034323820045428824303862291836374322025327504947391489579959787328253576752477180427559010856578795209987947988563056758314844050398340614869290520327038237382487658810707320679928920645253066626655802869008189206724371818722614853188339010062338778931874835532541600464241522457002858453367682340825959415540632703994461160399112341598715189999422276640297972433428365760961537862238285760192083789461982212981472789283185795713622960960234126197398939734864802699964128251509061432451622960538215648507699633289105244204290288311123939243695454802929070439064338140421456364750522375444938902205232860167258655714337260982199484801449790427198023713593319454482678587322268040025809724270474400009713363031562611728721571817269244939560705955290050996777993405208326987046249832508787055940115387212149830422519354174135656809004338490807698868584050807292105189144668799834429785401030297637134583548817001626569726528828097023745067800942699194881986782431111532295241834122651048570526331831130948305171585597786522183845680043216050880067287653601796625669670420501951504823635194425661755506172390269269210648488409389891823754051587120621839596903370831736406473907256099723938452808144914441495573381866354129125470957086434180855645226231266231786634596075664963392399673342645599967986457106503761360198741743643079116690721304934214771384183351100025667802111518166607956488698588052944964858312498535860846528755656793073796917101908960339624470959766812558278120736993403602789777677696447858478497622893440709205292432484492814199772626814675770123007063204219426792708053385609044546904609187292170711036151717220536079691200765305687923727335570961285195123143012136456912824923902311534331821216713987488250486351081859926542250252607539297061131670207266787839635898776449647117032922570802433872389697174341374309283625430176902441157322887768393519546744837803450730689411992382080261355059285586197913613237404394473997003526301757527535128554756438202820177630165159343158534253982894516096079369264641976880579772644252404543734122680166565633934151231711000788748776095318838342552518766688442985660163918579335494988944706314377108458083368599877956893147036453074976861138955309972901746499467663726090827721044115755495601745387279699476569225956536811338766458261558044803199431762488573124677387024744380276402999211996524916332250125500994354086405196160703478122238497152837226278393098569899710198394395383531160954846613951816503484586055566519786445013115657764299475187166098768446357981279874201553507337510186012104789466419661627926334199357192758008642834051618183515465159335089596168466035806157217730410988645167877786549649130362428164089850390728756112499980307680840265144572584667415935659406820822217930403018963088015377035796263674322019736206387998528409834429534555022623535701852379064266259966463153424155527560845773165316680274473992966310961859176440798038623340566957318380482389659235732586528199037862947124408268188242827403172478801368538105820879409158173360136928524873885580049833310352250438994809948155246090888944393232924737874848086994462876740968996115621077050555430237563678785306618389504821606461630030424934447075021938435759812731578067298486474953342154828944802421423471291083553399831699470266308492333654773567329499375976400280742884291874491339702680820366711867565427406743342154873630228677959081133466920241139514183842938802873805307064472120678183758831394061346320867291877294731825487765681554102142982471002196084185459477874130939740133407737445878486713930676828271728529276480816492497447100718509368994242635416682914124969800796610354215785809684153757055303525735327493415875479121794116137394265820346609018209416072361755388794223552022038297267523478567662730271829674527575462488397528986991096925663061753746005676383352589708317381368903717068033745701013194140920651855286744885964883246989877579340952114102911594222807156370057797915045991977997249194766868507237692928018007665569069444787561190131051587963211852025277004605972313584819235387144217559397649989862307697186872048751128636144988197871907660377088630190613021191541710025402407937734134446836619863096482807880322354653195921398456399798290255504796796383917934237761036147748911802677319688072792172318076692136525281527132704111341036401547676174710422644251482003479094468248115429230912443060192515513765676901324094516603535381222765456146236104412067817668468062893441373810644815421639199164808518913012332939642671802087935960185645909079072125513074210630324961864326492252824953133163180479676175163259881912783227604185214178971039711709822594605137684300838416968717609412132939609859844007660294706429822411842240473158953959317488868181047679231207349615180390839360850734786562946667273982502222996851056582754608241763451849279694027070240654782092972742918557236513817006795571256677738150786430636405360750648755720330406541460435339823735738894721004909079608503145292433787942137959276694494569275249109316521057011278004202738689973155260178460278639181248123309515117367135901372920015564065401546485074908236514493585585055988455402952795392561121777681758697151289894034338477718969494134960765197718149591109373283595384087590895008914435182226869736228357283118382422106247055313035261652737164011975179336799822973653580492248622916230493692356127926568852645126567734553259393708293421588860500706392407130965974335125605099364140940532139569942444924566359210715375968700617274749869039290609192313546587202092452636488184275510774915166042149069932701057759409423022098116061265086659309846684093754563841084512850723208174724150869262013535828064103363527682271466468131478306435607873268954305331346460145063378910991130869204648733654158604408332869593343984077846412555683417106158377206760768023105781949361784956513461616246017687993111757249881506878217501074232876684700581838242678867418201474768198027140778553589953622430694421331050829379698555525350526320358835201202013281350832997953565995883625870354475507345599122862086209465763949182966358725831246070369229466821959863042914642768017175374174964154813120945799874889056834202230721999173153605321940366428523621053045482274189420289208798681974892442700187381216988724963337413329922994843893741268845965022403524723786123496441408848875366151418331895795061040665278268698940249427224390807533214782858902040692035761454999848741682354323396808082746643048117608529844670618079635393442431598337022971350790846650500130055853749725522133674414718078307558051072718630343057831566331651091268745162110480761713414880748372508598214135922026396782369544431689094177935265911113121469694325653839566430752128936511373052824436076378796615612640039460364804630768911477818573424185689594151477981687996044952858682705267921592493469649960671618273989527527865850496509245308952679819573783964974062085692110824078141163197369277085069455006887757350604859111419862145100734910211702673160681199589384107157917614506676443035198147381589894684629410064020753265951946736333434901892194748084916350070381235678016978466842924328995948774803023213690830876629190684036759633382458374074468983251240540853748739509700328747326104129824081535274822398425227568874220771464359741971990714922800392634582747938847813771422544493180442514729865338911989673267843192110490891458966051712381778309213756553320417459931276151028628100731897620257234296850252390572709182250707629281140719878907691520870674123987118999848743176371191114853892615436542651439165838954802190155429001540976411852190072516945892966692016355096784819234660153817147109036448117679080289181478160778248510790800121262586860273113431099383497813520950622394652604977477052026578014973776467307839717119076377883793527439224759675620942168115873726399355124494928633572225534674090834077350823730431582958905638505666558194490592531990609110906227166701124965756480776932062167042796416361080534193959619166038359940822157324903243981419584925035260787580173459928239545612779895197313092969974298086728884640438192811858318751631807571947129552883370533288081606238373605386665296096367485362881426801507606306712967272933298447102572648659705188845211004194163355240048034448991689053096391014195984391934234059349780899751703629130641937323991324749877388903130254756920414817260365366319932043759420257614666727431216303509244625872846111204230750416580758713385414383443078330243624181318147966569699210129491857148226085721697974348348372244435758931356963746203229151993475190911398317169882656281410264893585797812076638971786983004509589744133116182902249866229527646069472551556048296924665597172313692460965032383546881907030691697528123666982305324552695241169347603572757711362628814035572235538183609971203062684127720929102576955357725594274916837569899627295340512917188740523169723040905546649848977431908870257188640309736075253816740960628975461386844226627642633073113117720483982926059036971215653201801163409112105071839024025714771403289988044131478480283259213803312460680526880500563359902609349348997391314415476567891019284786496026754301244957877847511676588165047682102297011934025073436624533622396409919778633460777086818828127108181916386633234936121384419341495887052337941495835774130457759768048047290682072851859053074048844825845032332967758208902487684023089879005344627426787742440147729660184591764694651916632557535397840383267032144386435084205553116002448484415774826456297558362295512552911144909144987822622659529389830795423614060546946097486514711882316591127593585989362919259274099613713632587331379319416705999860084692540221400582234681936051191810320579633654915462631158450963580182202850895377517612048944414836414534646920265967602694232778971509770474015554446393031118888898449898797139818475825863998980885305614654410495686783704557560604442262583896082110836261586431412132923627877495591441212274497737949769804100041910306044198421601460429904640070076129492477657361638164028356283604419639714459033883494118707490376150264799371731914549868598456952023061666738624620515465101826459267985891406426890479550357248846003770461575484613870194078726208555920978807135017300631810459640273733423198870077245086200389178632016919783073454870557828433018587402768682283563430879828689552832384028770228123735705400775851720989115289975195388889034029316632435966299530009399875634212812361805023071759158705779982074851657079794426742694141008630610119878089494103540872989257076328397630217064721804292024760948365855074206596143296193855007951815567208480199683953256224964932579103695697594305344904527999193251562160169625742846422734823841596638358772594310406911557491056288537461347561561735781166219537462124900952801520226216009325010577474098090592816040514732774839006315719954951177793919476383842128762084127741937904246519547350293283047152777484509903114492957562542940751202932300976566544573279332128275935128473100120102316005347722355975167080782137828022610601217232936233615128185856707342333996817254285262971493540463697206129812292668767475989951365693640665912633494450475253485284109226326637245943256845699424124140974871618495201206708695273219909751213256991168162102316788788348069608582336160110279037890125135942256619471729459226517074981980295361938055150195602264548117735890969486107820550513748220212733429922438161386017650606129165945622104421496952307392528976303890105657692414712030453221285656390623193744725538943965880309610127297634677267393429149528588932074233659276565945133316333623722958441979001791653297399622025544098164664784195115588699542825815455312446020522008839830717344066747165106952284081818205651354212483408168293692880786438232479430458930298401526258633488150654314866423229067121872612791564355162118253699614938528412219768347493808044947499207580816478856800451940708984679886572659327715858664062321219365472237856281015576379429907694589209757233739811046940931625335132352573025936661893274084753465990613647263063206805177919406005225997014106160535863154532888101468506755420118353730730670147914001561461639872014189066993254407268042884899801714313189052335406784035665190115601757397698413838086783613125368548977259452563807218762963102176898432363185881626668884153001175670619125449611322868231362667266921519071833283917334464867668514939559807280524790290212578495184988949485393758245502253775664211853994520837647084172632902825648341609799623333245306645432171479507572881333656472358877684150913228355351465101814967254868823062579947063933759813914366369492576769798082386320112910924588563916086582720202082077671028150226238136955905520870220409386847871347165891853135829814880667536599737223826866288825642542357713362996223636534346236892492471863520054434215306867060865230442744067538698731555492375540519078640474818278403110269211567421064551132432263485410152855016630296292069404370780098981408836314913027689211337556317977552026128769330925341961803636807685396630283409114833359737081688875775497871215757368586053195410182867894521851494942814144907678114286603991596123119469782469625024435226275023237769824102533749654567859205020847526847885863582006782806016285546005111903207726316041247638339616881959589135462516184936226108381698254322443685489746168048237532190661833692889056287465042249320432855621646022079579295449322072934711381305855457836820060735183708655067784959627473523312382375413928872101429621837841165075248564326728100448500087854814574319343687948857696154456935876892196637421626025120916609158513590822105876697651689389420285391344065386203909748528596382207142320831159431235966164539792261728729104814928742056748275213560547719660814846687492387777784812619731526016297078595288999193749558945697239215211554190404099508560007401499157442475562404526245154330008313161611032669625009362974880352076265443376395488282980319900138795837356230809643608709335079378624785815830206059643314872929081709129322420591800428762689841040307765752393903597360825489183230830586339292492830403724890390710570724216569324394745693027702081457547176301146827920001313118461192154986144051001104910422785431579110658431806211747816942866542528677476525645197143018037966719089029332890868435874058096062116600133801855192047882980674852456493750726206135912243105540468467487796534734056267406057572217789774874909940986758429355979915553716273384544280065805501260225693905228350167924180519479515155223574616761583447192220801153538146412223835099233388913416194751479200618213253850848912256646766280729789447113062806054485556949239339011766628946821319285377125117229418415658422806057493001734924154086654459431156688669875670918356791845047247281526772223408483524306873488087306242088139310586538482159914958963886588120880438698288030978959141897826282145669421634004273517743945204184161088002837750610150393647884594971090632944333792390813594148710168241140924446583859586834561977573046401511135308071967995041409203680249267152398995540572204269059752434102635043202824512172842372162608182005658320863260455431450412299125517141606215394685438948422837455158458487758074780987708973664901124680581252144119003784174544857715101328882349114720292301348141090878787722820408492507207578084597668949981396216957663220764949146270780533116394624664865198697677412691679628364777133498923812786394173177753504425269192332398445806793579254051418471023081096067068473262824415220758859353106467745668908890288974584580747340528625467567908855162232434172715010606514148271875744277695011133993610082053213382145156919017739898324360435548162133604467406496531362940906152737194633410495751493833556765932200387127453862280469798515829239416863109940580818970589338935048763508493895514688617800988952468232823015218369393922288064203273647480304802380432721749125742979090488102672836589370081178787094425991700069351061107281997291388699697372403043689149466154866463827507958909898383931322613184937203144685641028613873769911209745896335438466365984312645575275515049892003806249740738772257327808242190493471717159296910303845100522197906793401988849092085958298669040555682874014142975874641941682979275946151880572649719578115329034813803492400832065285571759949102184988596510094229203764979796556315220189155652029565778648718438373925887733829402824506447302731292332255760817610006761392967836204732692415686068231398847476874584087691250704685721408857429269807690839155711864317597138229420563042207480074750004654511667870027679067823342980497217947966864926436553715593172018830251051144487858955850680802295803240824372970349305927223863668224973605205124034627184877507277416447098440837214605193617920809721957189705004560593477114080528674105776091673296807911879709971262573803145148722548522619599384738966413273794904497091120092512535400869775605929103754442741229906617647370141092230498087856096238371238244832806675151943748558771710454679881969219199294338482242639239964514704322616991095994548681298906273359536059872548927896288287873253346343844239946634460141328127993752525259519828695114997016772935913982619107653683212775826566248817234245115727664076035644842765864675402557304360333602883546102163045943334556158697432680665705200267416425424627690993593476910188454318045060422803883956417047928064918024305403495421069391641023102846727768485639764192487480234511235507756895635341228365003421682728118417088292986638174210545890138090316980279947222681783731664195953613510961143394759847264813909560031183032090155220316421168791296277273940719562074885363132021046004353076609806378581091283325193508914591726746052437132955560993501310060380571617543520830541372656133018096505408311016020881758651570835361746436598781097476469761262167350010958118268597648523361733997401227754907842726626803493460725412179165741996902280299322657057886127097172081427978846222984282891610335184552038155882357168663122244129025803742792746023377709567432930929165776930559399503897613952147959247752328464310472780551117926888961877930626725948833482060892038035183232031019869731651677726495066046733909221252524917307887047509575101602235828862177307560488328686669880090091374707211122333154298075184638374619257426523446333570418953065604065357871961090315939421602304913371383325437151514705806650777692269570537347065941390579813075093910404467406164444176778275098564479502521273165750645519789969301745334188031115276851578607425247175513094325443999707824114303956988951729139084819741737322512618066929486531300672476988566760012907230229678345104586859305695557788465422093738426798267685047644585169933064678504072880528034327372721601891229063631283003629554154751680604618253966863614724316375928461359819299059020473089311545200268963340401023872622243518536956645454413929696955702494555421577564331049874135472685728307834957923197771366323286174538537061924887679020550536900600459915023613052950891604409276693283508828306958962840348239357031735495100287468178539955784108629736526649380949938776229356926732466858801704154453828672275011444505027776949033543866889585795772698204034682073232125566508117377855258481028151032248454176348980533088037060346642924446567654817921091727318552512708715006940748015801196029858146000756623337161562961193137261378749715344894560612759391618263768321479303268398155541974785497103981085108368009724319040238172277769371612048616463258519977228406780348049474400881597190066426643058580125030655703353290815204779844132850936064079213870070435222697342457499340402825323919203678791839697818931570647350775286230890703128321206639226431328147344980620873800121709080321333228396214871910269154127252481582842383621527801019326519246819632437868303119745970724894517112371535897241921922819183110242522126397458422216343202983324541128392274175295990006619183656028652094374278338633330187551882964334342141703853979762506850887278485933032938112014342408646538369863866057435701959087720306914230715177827972752765283423672367259026821974867400648171039449885324335784398091298005015768971446626166796222539967794963899755515977723441901542514000937040462956107515997605821522971405553330223559671487016391314613943514353490470373349871238683996842530257881104196963634980234071097759941941370431621204428607695817002676689984042927442015084495233145742900843691406072996768489487033479971843633340548867085846702438242692447168939202000923641852423227872413491789255927533821496021325149500713582528191381046316827929412625912205773887273039027698173324449666881328869081190360825907502759898356141196103791711177143774444299668680573135856944111928256141107898739595088465713133734820474163489779208519870651038161564359252137306779374295045016471692718288160613270200036689677743465976833226654122359154396839395383656136526864868372986849968842929492840113874852923862731126698287167027184811365756149055832330820437395497906222631240211606254031629332210998687379701677582645987543388360621546427775375296699501256498124611798623684665371319106533963286283447566160447264238518147319045047721964681030865565480421840247025652975152508177114837794914651677456093346344544801623833039452904188490538962951751859181330870819355918308828872444366993349510841090758926981603307446218615227539773293254401183076929507092230191833753731753521596723630999605340671605880205428822960017074193241846425832572640169228803739812812787362738075935337403893790482543176575000729635190539746076029352405336053408034178620266664015631868102421240205860403665168277066694832214797163993476604419763346386529135396808721924950234367362449587517430223988548647633287836368906667810189386195801941363490152936025689152052037313706839359043102034078161879763145081697235120776354233657017157555547021109918860725714780093162283681782936520904615339297300415808733222319666702644636983751762183930472106043699368802605959857095499759330259847791029358521691620408105712502774934884258873276715359763048843966230595593594873954160719919698839165671715071614867653527341379239759060679242634551580580147126199158319946543113205197354726338404821493489988682323405384853687877832006320768334454352237047675389305676801736905656773548328517950395658271366335384161234434772237043840480241685359539987881613034774071309523674921175078968345003362705014695016511311688859652981436876913244886697320866913923318500977680891209750222773739162905968272961400234162527404924140307344363829474099146402129515287029111750923537483567450185684998324604289461266529922456002778047242517884448848004773320383695376403807863809883308302857755742018946047531674415029346393380109399656095382055623416076040777272680763281680151551678487426476392934551752330197323781005834919134622832045056318516675629760027333291979739192768414772583932793622926907800113948186029611891192873743360773783915327929007303334626004363133959369474545982222682992072114223499351985952014986768152966171538942629670865054893312151491903583645499721074549868682676625215752471343377332849258503911557756199388522012929897677395593244244916693892454841438115628552647210667986202382920984309872020835013551908080575290790452273106922331708694019111788280792659686031149944181617029166689041262806406056194329314775763804142316856872982812449136801934261718415578975173524853210285314314367021475824352281884609658537072991739308911027653675092985489171571347466441277363798869745772019672569162986346747947712787971544747392132669158482406950261566442009292264065954177129913670076564245696156578261909198889249977187059184597005793410527094293266223057719558067771356078633372920203342885636590295382069954559746501934870389732635206138013321038152553402787108239218245777144493190182490719426879464097260866370212952575261653773977442566261371299824767224667324243218222641699343283040234585920368664897406585293399746579887775432297919057725962387238069093837942575183445847926944680679388405481308738832956998566279185079678984683900600111971432682098905234408054154424297229408092573193686855698095030825367157875957501091452241373831718683407931481720915298608707308300509971771041173202424610338931579072023022422659624328625751753716324641067906029085399587843055258332358546824954677282403192621264722304352482168287552703318217555271956171485258661976513670266901733335811419726328297951584693328613525322034499905358475009684101908611822991767251551045095146763452380266591464610270005699835505977849111654289973089348996040856356115307422024886502174857598659765054379166935706304377761285848790270980257416135675703506461573998991783621983160811826813233065735709908720007677179451319310032958311482834483115895611631221826548052377659739402482044020619727774612494972313585009764586043785885306676453095660892347509863294697892933635630084538129541985384676328676588115472750030009983700680847555016276036770802867985117251378423669864941145228825869713171598534523656413972314455391831590331656517427540774609091678597829401989674729506283815450164109660805111323985371392258750015686706953143681242969035402976002074123018242683427454709605113322493079415468267794345801531330909577225157183875481586186102102580030647252356685332672408950404098596994399429880654487273041526620009665266078804353201279900658362722798490174638306171095041906468414645473863236185921428112744177025848819647729260770856181820801618683607839936770670830042738814170610532537619502363564508664116611766341901911462553611416693815870676867277347244605215305845333670837379303809853274529982749185998359191977884437804625897273333707344211609698382882556237343816765138084211607211667713453737542440897164191245265540019710418885598801046982681823938648270037027813433879900532190808695821311256331490129866865386459950174464782003132336493842370964807441167171244131052197224937387237754726385456445085752517035669451175278404794899603745645570210062979578293544867022241044116068700530794070115953101740064437876198550369969113920301184659465316891887456253506535734740250461344858933932868446662665409524150607962775197114712728886241616095282601295655559290721239940711187754676348161383855078876083425536179233561179238138825118480350464929772452394628660804009703244582379613491928410857336473224315217077030293129126489903269155028107538239919885144282910532104958885160811368443081594890803865930695006483591208118578947143071250532198273801486216157424141928331585234428049860253213514929380165297244202238368452865643114622491124111568141761256415463573378968997930040387857179318768946389737396625970126264741631389372455702713449090108446480446591708265217026750826006061578762479844616218256576574229559489160070589026473879164652308696660306376677990829956816152418500263042540075873490794248769888084311461138127620533525653816292602403884359630060220385274509757654543832465165222166024359439952763022782427958953331485101943543595145147799307076397078745872256456202565379019141210317429963530530769200668741696869933332872682449586146369531036420349662517239967807798894552038972170294485050753779299677930266546142597657526028626522632400201403338450515828918383671413413150845149057272526948433814701365921093506538558369033970687145219968392100615145433921182248802254563863676243834909269706285357420413098799926734682162057229351567270415160101405203751521320447919841164377952256814904079943578454799626810812099199557285557757711250478108129811213080991784862356100342912739656469048301853291612409560631708532622420179815176212307621247251010771947818087096242484838337068601467648874285335372047079168015729662494531745289072872041367569029649886610000291818143204234536594339875624994806190889772467935502934418699089153871010943304920444652928655828320907633727795517569289397079008501058902698385482950483414557437293148042771845201443461943586601849836709773767202561352837391451839633495205718525786081066373052763377677880674985358617121980474107727202752787904094754951273213370248234542829000123619296484247439688183838227831561937392643962478708786857853800137584587326267798661778442083381207080670407414629396689301892993933456685063780119567320295178018218404197523759056114415691413677690929713332664344501179332661715615386314000882836716803685594958466224125702841307535662932287133499606243282272714927784974800925109596574916461013073474164004454153593444958426368615836135079265018147217115155979163542700755545352497091515126848399200082719362760207114466697275539686772166116125279117639712838859795880405525890475908694798182317296905990071723657762382579911508318323894790554147552862100146166440190557671257176647997194011393457944754463611713047608522346253379253170542556152620410823572479402401223799931469978745654064620212799147958161470134305519626379655994965570683315608292297817716085424109029007709558956896522394369754024166412331974821560125642572720386005755835242772798682953689002216388478567040991432356169783971690467776663654314757614217150237295536530680160585973444036066904038190040823556745092411985181078578790168675902672655138737329280932959116246775025544539279483153328273579240694327124308272059647389237846469141680518640353760479374552078463124631052357024096569358717979314815754413623344740142330618966116079297605494550788342616599017240269334712422056756181786727084841800883278250318675317311433645811515492091626123150610893004077473092128354809628465638049094478823882541691236903202796361011975387070516679197162534902290002836831917866323858674150864544051332810029298988791193099564709578970024602273168872824082229485917013080568498967224393491169062677837692966196161187136377353279480870260825333641039081703312133267562213073932810649504755090592764410916437032215906233164384359126783448117901384723874952300033483823066999505533950921064856297554174320394554528581804687099843921109788233906748608282379623833323592183870303966490052182348160271014574644942282106944993918431861327354847513110698319561473114297184537055700973492292609978256773990402629729499790556905577443611491144001961429161541467208025380100212774086697914052557529032844677826945785422078134297433115171682100374362074392504462616420606897198168634911891411182704443507440680777266700869954420639599199048390493286044305897297053488751346071057251241019481007409775040155978163114536613892429295417243694006900949322911104188339826292754886073531282126503021706175377889017973236661524484062489894251960907151557755773940035249201672134544778887082764999715134582354484534524569486653846698987728392491400196978965675397511056550331708342953827517706309230460854080286549434019903205514898691090148156761987477927625910938821984100723826928260716938857451745994909753492169328759753309786748022325875644423018020250922341936843348255377503588696143708293167081672676893413912628880510459108789163382944628814046140339258651977279858933676113828342134833254222340961782384580799998287827533316191297654858408238412792745819203926517473903837188055316162900638572299738360735785001754249191209605368157675071097765906173802538062202062805503530711246652729939799404162548214470476124727121445610227445931905634024851678880223611593899349902154119098106944221183788583861015401163967441744375685924112054424924221666057199820702257153200345816874673452302172301036521779757973842986508564779093884859935791814091338602377615871392406722196985311819637353889019777883619080360562285819046739494997182211617281932817319116452775107807142987917278703664736234092576188292413152622239817915096637705014452203034064477342617075430655930106814212584553374136219445705872571772333452428357751106371780886677808110616458699855906205877302472454705644830510979387144788218941453304903445543649483853968590248868459844285910169598357338798040189638090650838719717438517033908064515336208774174066514435076351855317569347352983052218639550147956590075639778120997879173455520082273213432368688103135859442908529133459708635891140805224167214709911710826645108508845763772738656414136947458869553409908555996515858871772557220325900347029922810584478709506722154289577536739664933973531987058810445081671528588450185673727341531891055039254370265189128636199851834724663218638802910888111167189275987740660064542408561794679650773780940071311099189454621850490320572497323208138667186924533782059746934102644435972213515799598649935554007853694923855302480303792282132587379736428743105417448412927674307632053216552432290444007829680681500806189625412237469220298887775076358556945944337091999561473203902841198356876969278541688029516109307946850955763696876001509643544420787234141192237431592057715093065903724041537753366420326637533783379262824963861047212621126096707895447943261395130638566036726784050144796072800151021465693113166836998130605198253645439812777371516054861339265553229120114521729195638030028564116127187167911379407788007010831123847851287580912073192876534312037105209376345861988412616232958031112628618191992842640304974271161260656017322659384038665894817668475075015634467642451568663581490649224700050678396533548287416752542645230250970365497564521219342664946803606389978642643141441498431535724887801226035113019642980610455891405977588220303733152780519574868380794828733830930496702853734969246965412673823813689205322851405287447427818606646935583528671616197574081466937560092696582627336614996048076286410960176148456636720963234518380881731213539972860853190430844681849845779145957022109368531054658307039303725362201595818234939574175582319284053584834760052252494904578237543447884098138533846570089159368840455257114700127736360757317062384361404583361075885106719027881324094297952689786179822913033962542405564339494521553908932712912256287522229257611956835349689081208043015704370973258386031241782192604157723261080759271945763759305008898829395812101872838614298297203165928734652828162470368350974348077056526465561193696591748658875041142665107373474392201825687937958624913305977540509985125167471230757097155834747014830415891985721728604645902837667634073533698706045500968032506957090749426878240369182807795130348061949090162879593685024586959291902173320473746030835493579923454939081809710316236035607903245689179784358811699688944215378641453549776978618697853758891332221525229421876247899010943103311781238199389994047144089748918603192739488670776789793345414545055188238135430964617937817115045379443141509608472090015107367193394409615640243029491041967129066738946165424590555812977802475458957227683579420297246709633952090959955600571269075111000539107180884920010369498801626034017389034406235094183055682246400202648612034350361311792689031509768422390769701763743870637029348900066180265183760082378080603337060317657756893694919003529718769206413523110107552124902188194439358987205175604351237039184657842128407939936323158390074842628919191980074717302946763021623821478381991376048203842599250833283626292530884359335958443183424946314659433431611395410003835827693688119608387362688321524869073880870459068863785716450693417929366349511366940952379484746889087345911554429385749730707705472316426188656376660155944380286177505687799252252200341226258810226027460889562090673484871746727414657217657639584190528708300847219466090292550670841585817274762192043356835547517034739752834255085820401684887148725008206585233989852027045696254245080326636183186445587738452840419451164394537636302658644995202977175714795929191858025811317494006754138933113818900122736779744939304168201817834279935362503265657987999683066221945706157359008799871880806541884530907319854023223699165853149876417756329429073595034361445263773284845947446188903484408032071626575831453778151857409912527628957969264242928139787874441000992544489097908425422075060422338770650924999132944326882043483687896394788175655238552671432076792610570360612269202913864466090038975096886174654170461067203735246298284887697522458350671929618630028729542420903821356412433037620310576909927238136023702867079164345538628308771563235514241449043097434975599091551777093944366181832778201194436786146520944228337225014724256164986939734023111349902240171325906601991492433258334365627810757196058221677782043586591811723282476897059602491073756471064735183710573599184248232040811894219812742342259044770894896290246966092837993126246052667518686267878812859493118124653399501834856428161314058966471781994968231545107415265537693252784072982533084231058645691578117674494932912454985555213943713884710168233679596817616699784877896149877084351082742895583881949821807982255293407180505836247318852297181025795176321108577147828451119752905797512854037055046389633241135875044553518474099068297075146016367982117475408721793040592252926339438194999810779340932443439073830150658252149996494634305158290785061696589206223617696529256972921865621418048438149510751358836964325232090760204664216280705079098766536438312731595564488218424045140799413652203007264535964502365614069635084647048125628641710862254389475240544087009149140588953684143320218303559566989393231053068057409168626366284399548393620408219102179955098268116939365124233183357274836306401654892137183195775963806206685658019212145657621759373589978919326877794924802996929060884583347975220265805820723602066625604982147263423858857173162422692576707215381659140336124499988572881990949176027621732394786544402103618741804973008623486293185123599991462937073382204653384072147756014386305576228267721543033907867654169242314700114445422092659614413847102833329559824935762146050953696077394939008159009370602971237807251478523379780804760831154701634123834048978938816027945148459222799766853053004240507631150814890525006300592967131119586214221494930969950149337406410586126883669813215789148654695620509069828075024933205027793817492987549918932321091624112818339882891138902097079725201491502149527365429883573598640156987852880263581133349707646154178931256063980601905359699432190566956803107254803243104473495895423838250973855989053677521791704306322149330988621037565161439912449275705491879003739900331278401202750852926646646419265224770950236395024727368796745362284335827146838616931909254899305287538198713077876263136287064676207385586528137237744387249232032960409146936921119457975029792030072085455934654486263504248684297416600856081752672866279302311557376785974175258226460552045556719047348857056038288599369335788020444471239506166919972697221620093353086808238801622814829564081620865742542416752162614420498983676551063928686170176002725062487826097612893827910759790140771628507750355289186987134103305307653146195074731095351704236346610710439521372763896061094306061855058481882805273336981722298295346411640536272045760222972900803870747752977919288937083311580699366931051308770054664344261400241527620162313931599551426303593762592691637809248662770667249318601583234050933531080419201849365434481141712744889245172924919771901273069461607936184713632199203775782120542947533733258896387504972887835422777223989155852282199438751850338770550500014938331849153341520123562620073493868690431005620459714994085534221475720545659185472845903082118046186635917879971760846436015863730669064009534174483756955426678065918852035711627958424805753558425933198929481222174644995263951455735723720316233958972044875857703844800627674701081961764252023512837781312338844793523524639196345775175526530215615322386171949584069233307408946011405994942740384954330616781061240018101863083246055968712118491234948960315157279650134042442952387120508863771653312835781030661112812982031245575130034653578975727398994430984821290832606355648955002021559978362205076749318282513429914346184699983108997299355594768403206650966052328170797008324247823151698224372649633305415079313159096668573215121002672247932587113311943531160111308685458420720992299383799255858880611946828765378380747939606015024561911308657682855817177938861266869754222792600373120284829252852955648795206317450971022757578396577704909098125199900693590283741787642622945968901783807438753065757206986874624584826839425002445060876980680349750875099242506041571241913656693906840867686534671816247188508409855347127071473662291724861715491631001908219291511865178064664688822836545097984944692204918348248600835028954334901698313220825001858778270824476603807278806326826944252150756666406349433087279041057263027431556594382037710966553013930643435080435586116071346317857559514964530023234948261466589185722358199665676588054632583349576334680157646551523199559110085682981609201745661280064809055727901956382426508961546032964796069217481862261351160759995318599840300597336635620667724405404029230979063159014533744897210158389125196351341393563280026237075206954028312540321660750503777520499504800522886817409392983059838006712310202996476173158788876919537444906213436253005069079262888480338890200642952635680867503733288206278923962990599505357231533460456509396461029976280247051558376575580655573851835087214878315950044163564935876879111066762948072662673864386431474124808600540190061402431392755214742849426224696253900925296731235794403101096095694164719110906043016131167352455339799004680158127939357078394726617986712751259436624471632741747113314516409653353149860174840249882583117872366931634105643269422495331873387325209295056327880709383134296389207963106925492815904196142609769688805324580330593536487331483429002288668794695257778338225888745898949180560616881912469135133739588873506950933972598140610149833531817897513746870851930556728830192583010518727139475803584535113823361716861449611049630323953595453651182798043098486147314484713044312133721443129766928843651987651271434001906707548026096722756812650719739429535162378325523326309927101270506785729684513102462204891038277611490852849633304030632483531667475647944929130237286749197668731733851172440403579423945323973132061130237499763704984378374177565341407885460525821832140021182455749492576194235451582564826756896100395935060385139454947567350285187412921176119663088166225210256872556740956990265038677153763045165960991760491040352341968594984820866547722293432206579567425597189540423231132850038342586226666963379107818727101056180309634501901087092200716734327422110827511834025716858464323693426327518048670287873465153074781382972157640998245637351080101820990844474661109365115421374709791889199645212672668338355405437396021819194929138464094919697287081848330360183061671770435367778380864375037701572043909439030998371555969719655823479037195687940137774048281460810366012264525407710508569121258873856172990183602876193425996067526494766046508295266690110097305945208139474201273074051012757955180971655526529130924784577923603917402135038347644340959833754905024000028056428259944561086348320452013236036058415235261453993563712539187133680578231902445436128432668236555417067812215957924050255971025116567268792905530536803416391174614465742342246902783136748780795257906386333449714982829283822210533140615959526778269236179213725084374972894408490501200284671527504342142919984013873899424664155067482312088994240738156429388242729271663657313567936435721248962543760303477095002625818878772298254307156204778454570272244621831378483217492866993748150419945886708552448265305335010324754661463062088301201804432264400142584253816444317761730604767381349697430547034882648912160552525120582117659975698075078709372453947024474125977327183433174726568396630056358254256064947050011213862503728549457844864142905059822997376047577400526112097281103908662166674423919495253837263036718158198619599374869627585150645712786152241930514850890576090531819445436671615654579966920070653220918589075158587761305092724478035504820301941537352130976496916192022659920047445381577191959439175867582650109331515109162225334273865972944685584431291714845973486106342954636960153927287024311604551816219977334244123742569142272133272504361458336244726164527283010094229060639509379996174303224905765161738666437895327503400949515369966498259071383452701082440825440382459424178429988424853649167582904319241597137666827852654760578926340371355888156804023182878383572006924931560387968703957462804407396918689696432806306811165017616183445425831314292549071717238313937115221481816671959976789656223034574246601026383899795098635144869949797527329343430106681289531168764296200481953777072138465005145658906782218712652712148692202360513771646968531406620151745157488186825039688179445924510376907804337072070568918229173560234333421258259146359259382058641282127361491196371095411155168042011850746478676616816953278937932910482444942994211013935385234745060753715553929105109324586252417172330682368784753598655434629862096237928790642813544757467413659237273911994190411207033594829851782854556150170836523039813981720466272110849219705977116775253964485188959656109329461464748855887207883480595435314530101255964678246181551967598784927820219302762428835551451059823864166322475657452545516477566784343540409354772369913025484088451728163947407100626359210403566568611934606642016012037485844348725651572991498486633341692788718884309163148754388752833800584148360298189964801584470250028370034791722789479322121942649592072770358674570044699174811475058048938441574465166532384721573166808129550941447762492605990509012001301269659677740495122023171810097422912783020663012600236706912251575248439748251550738332982656874747527180357343390987585471664259018816591570626662665526844694189307754658405752379156715701937602909931234896972582155235466202383433677844684881680673319032602378132873576232539532482653660644027238026710404033139004877074967134060954141649062488373028231039080689823440510609231099176110855969819901649920699879567758498337060480452300127891996176532013705938602223750594585474639659654905055844443182434258228877744626110231956825374506562410293689580340399291862326724458972266500201360292685161740585823206394212057260909620738871682874503320436072757574077616959756514107100069218093510078593509439263383505540440555861772879202445568733097629418999147969398741889889908750747386387187767150408236681106713764699175870301864569128465844686403810451614262003735673325079004841637287735513696373840863499276799702830911541607067205730081648834153977532198002888982015786968217983109680591820973781280670380579132407802319437650386531373561928568917306463435244675457590410937522576003200104183693901531000470730248086852557967999099089215303310207077819098562430804950997903846435189693911422959554674721635351357553783190459490856601417679203734259702489925423218862612342899424712719053810267831809403104560061398600030312925559405900155044561041503331040318747712382853203836248377278307519379857776510223197630234277251123484922419671530401185963753609048667232019241258034775192480612528188189214586424611467541158784975515460167874347545181984412733251783914832193663097098990103982003112138448051872786967033628011968924936983437296088636984523418128314336689300581538148307553616115895290085763649602033538976611361141734860196962126350529965744510923437376544560035225237646299042352941865656046501669867113499147530825888399869805949966674694290821894904918846468096554189392489852698685559602281529525070154580666462654032003236597566123377960200159164658749015162514894418748603067286335762162847767922614908138053069937958968620706803074201100486913388165877243956956015188250114478070455275639233287944084806121789008938150642482979108294284732881038150038259220647969222522724785779597286900736488126897533369096489831618882204235893217076233419703503038150295532269109427026393485468237947219183236517843470394263247720830572382803897729789833507577967367158226866637967083144962122660436561441336067368120575672300117103470646975476190875715339431165680784860972102832533849244226999506655135061556109340990743375335761830670777606398061847535825915938988841879562126245009922397255328554940464170810025750326909352086498583573763883568067734144161073652076544702306804821868394025038913958245276648614508662124684108678479651027101513061684921636425528889501195801670522459413533302352709781152040638508210733382754581195997281699244013415169557263640259957220280023743172858492420041920916012965141316888042954023733441221709170858708217912628677745505176453136759659546617374735644815902804025204725356436567878392343291730732915371371947803704184459828380033372672132108658083427087555423075751996978916435832918865490373474314118754611740480045260395165849718970893441231360592684049794927564176105613367687229815970625133641580441800662483238325850076443715210595894604063067524922110991160584396524714547130489085716599673263440529590442503092691158343927079124691439063454289067578266570445275213669471317129487241105643735259641802159349833504301368419617483843012864210935244292380799855739195952264618702424349270281503013264679569201557185781932141586190139922204361294993313873897075885689116044266046035756416330186384717011639885385691295921545143876056832062934281032078944508708194256487594039590731199658635513666687147526818186097135678765760576020932239182275921696108360675854184062631848741771972212291623051443999028068245864352562231480173568081794240848727100945534236469468663117602161376288201304213100868056888457673686773817615535428005940996468328695851842240763021357642809649722817693624967306337126582016874146499702722659810048040299016754151655791300582925842357561028123901200356097527958949957744730290110457184123145199497629198938657636123697813719290532297384093059268368763113965923795367831304908891033800485270657474244816581897285835399481200298502967929232610366747870335467871602714283812597394428912422043658692614951870461490640856002141926042352664887173674347197582365708081282900205414395414452370243678075891834052328490510136242989008221025950249297708663783689014702618057947635451186262686089883359139485272862150170903044648928727991084303106598508660105569380244321748127832920800794231863607760531484070613885841615019395770935408771045410861404354422826411522822839450189426446782024691918293833896285983343016970392649300244837337321388255331740370400133958221417244464293085988404965884867180412165697453271352708880888099676390329500301963856824908261089208855090401831407948325170839968334856861465304586367741607765308321553889613349799944087558655177353911594734465038090946264074105413397181097791013674676783820675616191007491965114655790482905203105974005130259041545329565290913356162860079160981080444480775855824802139614377848723433872478140275758861640514401002122498730053394514348715082494768752660392977990941043358978835282274159380157778089060094287297703603396175374095434627159276511549674091901468462527657372497670873463194787389192573732730455758935854483935779050568918636595807086754563908812620431366553207762585706485974992832497907696571912693934826508181502600241649822485141089731658574235902136328161259231799174543020063487322992155820486849165052360617697337678783789641361244160801131832166993819002351789017996376519728136191564754523831760708770430552577429052443308983221661482315492493174742188786491218295327541095100375624130706608004331252644061212087726276939538471081107384259924409814663537962962801896881164795367058835342987379244189110826512347652719695476703146953611484764233006290229009539524877816835628125031621303169848324403820373155659039936354919401547210450223453380295851338599537562235426117498683668116145149564614743477755545855546306352843967410997272755150562219132773198565614160020291512115721964051543052209416548766441689775907772520623111024135954362305654499927517969215345522620336213185135600178945633781581198950539991641018723503705240109737524577833664401233171743732521440490319346514668262013601270857813231598182575284329208938004915248909655590299751681523369195173240187069319408558123440554795553420911427972926375299507470028923469289856487260033777929366185084634859354449147098070724718862491648104665846213544157782323399805775118200129654149861700089874827007244587460270602955403821970233827058057843895314992238835312175564645740153026409097877120516257968737241415907148844673892452597022092514655954198303562977534711555827541364224931798971256293150442636598361913123150483353066686981602419760168615694688106579553397550092125106414759269291086173909966965738596246649231065317853660942378115820080342328767895394263117500782640984909093457568775995156349805217410299157948383254583234281461612747631370397882425174676959473064836297978916533353951626102132176734706974561627333416778754046649729834850841517640476555384511421805148757264019867518345962447636436273072230687122834201827415669323872026682642389268455754305821252039083614618284702686414616106216177720139760160550740174594293181882512377829490097751822858829364221193522196672030883930181483941476476196517403558907967121405579126738487012577924745068736812621930239591463357879695533478781878196496294049471485064859608071596242068568052749287273583722599763733977899704474107051213195380425792512140825752536096031688345230925363875903300033746195554132913861433957519398024333609111879494419844975755844292672864288989511683697457912770502458544777946293134935360377635805717035436908691624652396424763952789317473513505435163821611939072881068625341870969024186212411915931534250699962550865056213601074863143012492759694941736535536478359134759819991869247877175948522576359888797095264386450966502473544650602858149826747017479346400214207300982314283638407185464283219848738044272016669339299639147962557075093229874501155374429491709596091952630656360067558836400392756908167115711407187028983977494681817209540233103734021909219286370746975738156933700270263870494235449155506860387722817418206721692109396605610878233856619558691813305129685566054973466983823084935448804859724011148266017987635946694322136180235464215476520619164852652094831506955002678767955512163123687308782736231800069775778846698149153882989808054974635518707637843390758106607382631884887480125729878041512535346476327130147164880467381858473113892144449797829050508893716235670804722681595017426549064720972292071829362791486206716065743872110943156692587378933645603080623118387760378119981630624614807664177437324199250694990001916409578849744125833374669250709296398742365015385328813195637916699411838452659331719628198412138896239686741107498657602046869831965465413474214150193311535412059303726693199105421435848861203627119463818850288091633033480346574803350836139797873100672924170063003994575881430567546614217319591498251667765131492640831093936787705440868288393567405240123249215442242242913447936040663828565507318986624401657698245775700011454271505603883699447036874697002288089977348489911108559392606763805429843458301891005826973141238820785490861150258077640363935955913294338132977000241155235908521947602255143983500917031753177856808165438936684131016689284980092440185032779887700154916288922106464554046179372491411930503296891516799116671807016688923921227194396964341707345373388455480764573217355802364612251965257943173579471640339522948217033708961467464413462851003570978964321598069415215938451285084266081057810880208464548975764973034596715842034753667597655719303002405246679146908266449602912692997873564179936641654315140632813294315047754782965133605985635801382502801037579735880561053310011739068565513694160628351054197297155562737811198581998274506587055107446602241110749508695138655694104963036427707574303938680505514947880294631380736213069337405163259755456287188698995919605202617089232633698953976374573145994029464958205315010782075705268363185912249034614534862511186700110099379350503679736929075578006457671690886086271807635540728101453067510007795834976572399726810647538945626766300465384936997646043634399092249547824276211644665042547021614171694313110549856125507603393894735181934511716573989880789698179079399912980119650736747227302601848099444006668449160203890297583460382807358155519138960421757607156728515932631710572821688581639087319346015969625178830715699051125323281471590269437132174988548798345039658416228396596525656693469800741493529639068921791772618422394107487681938729277670343940182950694046958701636413369290860948981228922825068923573789076624558479770675759940343816872929008692122871557911975012873842339513859449463826883175381277946289927437186717062587811141957401213362097859666207122832993486926775852859643602083509771940002518725436760701506961745046747309967024145779018465977147999539023377954606005763443542354552092296875865362426020853549524297198726628080798770704624071073033116985491646511357946747560158424033822946958614251355558312534138942001494232391982216267105966411906379772213494473772459810924893474903485316898435918000729065173953155114256645745774532931218259724517668291939946452952365247346630970451570629924009185495861620448938676391223112264587274961097431986610888761145842663055587216854792925549984269843146707716026869867016297834705124798820165994971220751233716287966145766746617526015055208231664655009340293044994562551062769059691770072159780999560415446229545776157838428248428083677375135567484078739331299005520294845234678527570688907291810769146202743860613220730050151382791364474499754744412103213444713280194475127518517873987841350757725172557812976294591734952332403168528996929925905851560768959437084977161824362617523160913322132552991779780136114583257682255202003759574995833935778193854640521861302230614958904397015584534823152663279737321832020169154500983951189018783774094234353206604705429172173532220311896286225109292952855406483896897368275805517191768975555396779141752241814519345983851553528088586684323096760721840795727061050694908855221018996743996666801722831989969747674356714090621341964572104414558682761932753538400066921678783786178178800828184108012020007708324680284167536312090976300442129817505154952499957808556212925612495444340085179983413842852284408445468695859975782221685855642648051780568335473186800015176828599300422317426022347125573568908054562152288203161101169718582324848635828328057030900147203360008774200924527718356472599005075352929841690236690314379553005314068226993283928061043262558194869256486427395395653390027372999593445076221684972226465324755102846322210462082398875948824478997846133189316436925028483453839657903558321160134756759551976126632096603375568046053124149686782096379994452087237416650174736221065659139694231348132533419395802609341701334984810272992342372018485377253653482917945624635317579820098573219882042895454065092392632335480473426944434229770796748384831079480667132850212644547775379903166723694139270114545961088322048199999085797474650950085304333858435991109643137209799960808689064179773628665752483164748198562730167872316792136591659712373196529174925738734947988825221514736724466703590001799967744414780524912959292367020105147960150269346176044531336038569413363836364147713351205733763924399701243487166448144545684891716970449839796619435395293684528454828776438965258273985871348317737530777394596018440000742211882610108756158012731145041442409334914839915425253873649578003553040163263358228168804010914048170708730560073425530670996586499480084741493804607467172696447224074225122869278498063102336715733837303592020872093451522345384966397611005406380502424682330468625453916923098717790986136817050727075810285245594651674093683140147858465383789141965145434214776623364831940180239500334504386922228101870422455091523989347595517940931968330410073372656992658337031851420780252103662633260891325321529965808970152749120755507007847228361639956293726735611138788568303075010885771011889859997298349184936160257358032129817104036795712011436792301864200057883500904209616274762584868858815492171416244425841237578675249010990461019435665351133480699835877818131355888884823157411627509950115920475673307238303382755625348559311130176336293261484004106599154883132759105967362016996097648224923315859597484326340967038903869866750842713985395500419585154072563774306591943416961264286459270730354255658591021537171984001460880568602616628119292563996713886868936529956021536535961511959776405388541816297618240541072087606835893526497169601465573386378772450563045925021929923480786708207882202209272470826194164313275086998963913510454019070240260233943170779170892458875998617655654062956937169553859186523625785116924822162424889345893410363161531926865290565171752649734445379112692900849105795490703824483776062562518361410126268331141998076664355924076838748233341919271972099090272425662012604778889241441802061309505638349432604861181820953088767534211401241712894902179205071749896360233065951206169508626002057804743982229237213109920088991510066193564254882155371739145763619512961002137984825518526462619078298427878311123506458622101534292763106030576103903447869441352620118037834717767136464503885721021371480699001383396630562373008703649148038706178110358757219942088021528475805120236316271014081237887353927291558226288097624198975396746250749452615966734323050953265433922942550639328758494905418954819785840269361348236771187852516790349134413055268331617007186450420111311148754964036221904595486506909354910583104696513054091293719424307419694922897051714625151486745788491514184956756573152286847716801869077704349650700426162131026140712636679992317591607173841278454761094121512542191202781594877115542666665104721877726778456771177720899159472421944331014873840536540399726472948140042589943812561493689272181767584339644586745544770983610038861812818646674977493151902585351630506134445469705462709670006670427194092520387673403423455520545701686347086544248496410416500661087664937609626487496944789730441100301160837303242360897666392337935700096109635805525668673273303505799680717733774340565804576589021850978660708314474706753070823652387793938232535234205954752411522473949612485977420107456695194398850887060268358424358958156433347296386907092330737088032089798119225119954230345223637134656516609763708518360875068724376616099514016384406048286888374351459099762460156525052328137577621932503117534920912431697146939721988536305431482747727583496421506341617630639002965855695034923462062235794194143282925747272653307823150008750509805838942324838282407104516561383908588347963411616211722896850622994016378301411534057204910751723491424614276108150338883332054259295758208469772183396450035902820767436282071872736201292728776805747579885638701663606546124433310760235247177893170522564341413120422473342515203579333326497514312611865200491091606746390813355777542446243104708214047957781287470364991619708625818912864193349568920297287256637018659025766049352067738606955830836348911589451475649279032650601522950909417036408462005217892130464093883858609368789103553221447051016198259980511727194894981188780171491964931444109058655708721547795593779217578541104635591779541466655740012594401736159621737989395428936245741837872964203777684095238468330202970104667219495297385028758818650796805909324015952415549067825947438451408987909884129037519944354053718504284635163412689565649971737348935062866574662788673011705951696367742514360850087028723128550384890574389923521532559766128330692253948187142659206194659052643256256345452006477350673102907053658449648271681751370741346918047851394404920621572989901861093665887977349648697970779397336222828284591214121511376585668954227990233447689557475597127612198986848328728089404766775834603231179650114616271708011491881410932459120942277042491755512489401210206968494798742845933134017616577591536189674417417728913079623784981292345677968174257480483564722606495916776166080169344301262019118097649397554687123898961793531316694195755438709943526384231369010100534027138771854050152170899848763718315052317229079522575282698615758506458472639913722056926365682839413810697958420720000940031112745161871869201501933338090214510492375208822990063140593589202934640769032329875943121677115866325663732646604256160624122793937263207361409643898088487083301339895245832889799358217257512147348996433889911643849717524275603819650673750677196286664341542174061341177105345108646970961330516644299826655929936682364791196718099458658767965127840124274011454272496438821893049923286200671969302323337976077892727199452482899031560996736362312158654689803795700456298272020839858871238962242752394613893382909665135184153713116271722942557533540386522505287835402404480768357912880272953781213569693156367279508032277847699149950397594994107614161931939222632281279039538598327408894855704027425277138571118664839367526992791681110312322571539869955467751790072431783417645024093238452279417735974808213119142412754980554033352784330503870364612551265104431850562597088308479126797710916908196607675285715927783680202140214642652380508671304630126934540836408880569795075237223081519202475599560842631207319982081945042035582562245163768531170924139313170355631252725816902887553228435474088999819901948978601874194653790970512138793511984254012302940371738580263436769266506211050955939949678876225291278706555295648608649687483464929981883032767163574213676196099639689773868328457489533751952648856145377716569263269076944143445943112824824264919924659281445407894151653953163521781803904074357043976684053793051326667064466156855868145045280817973105059539158147952785324734512265936348020693902883986929252880026489225526732787498531690511017174251890084260673888644102730556294205891534890355827363783650834131574916112787545728900979178934161535155597292342077977340343242822449250775507229045507514362291171870550123729474080435972113075390863237273821941627782186612864172355696955122711188959664007022030275739072189514788377904608367682513883727269934328224883863448108737967713968634284113283946274210750096907392380899076361909629102543685847041439589156135496004588371691720959002595398997397557608439573015972975194549511039110516128166203366355361606272764289418219742385152935016873204999681221284291474764475102113013824585868617462524875499904669151920313808534617210635037920841323051722572446411617154843647542533576062827526026999009180360712756081869867604296286360459241188612366876613330588454381854609264087790412511861767285849157194497124473903164182018248694348203553723106037579067385604906885017618403833496019683290049145723523559295791564942274561008470710103936516651050982496513710110136050491751660865176428561451299587537113683057206772667433676290724816860247875218035118246531488191271212809779781241692898997434206790805945683995209597120706581210090228123656714633175308057397602255539174278425752380546661467761499179623025690307129889276739777863190202568322625808379813712772426250980589836973438094603331017158796912075190762799824438135713749836786752321666991460701212847223058262923441864846554816315771355631731586218102433479722231088387235390421933992453332987884789320554015554133775188580427617301185782572774429328504306211800140986273252457213883893574368580066157718684949488940992889802094057596584507373101750660725664290183959283752928638709346073399012717472162428157757839056214389846692712472722571799986572854402960300205316296582123892236202554154927012098206293816676960890444832043631497485693236238599216920233767053823775382878869206270334585963332868082891944192263631242242126913270713286283635370063743810810450486395052289543098520399700218204055383954353311588744543228682441371804142197378248987085791608380200182720058476342572139822581627574367724124174340545084851054382995896717273580284804236215476081516716076722106379121283547816759565024064521450096380346670602740251029469252283082240799604940929256216620055736418585661674434115211412583459052993220498863079939728710236825603276391877172888934319920663900363100297015177147334310195095910757068208511495202719815247125018679777271607121797575430709675936983028054675835438449205020237513085334607934767777962977415969838827471409329828881336009829308001498685737236241158340690008473524406469406951200974063432600742290399430930622797518341235496268359596400233935774350774417808223854252681243077233585276256844807631203660741944809406665936661431578230049585137673166416471480554939471107266510664255711886684177546431215251662420416207647791818682436431262255088160104395063125707237042278334450981606895237612563809441479682204829721984217440437370364806892049314434252207156076604158955876912268980975065390869067031149874530171148531175564298047364610494406513874314709344742462794554277883757050657002193305429484878506394547188557630847497972454290036430206517916281353032706347178146898146053742991009744863407942275680683452171281083523795226875341556619201602391404148925044209002411295890583012456742084670071316264976953513399483024614240376794721258902336908879966064336835803944351560811439808763352805518497253292482822967930355196634382746699255512365954760525546352264456979435604535917974556108968713432153874101268291718102767327660022245576189155403068180065332213316156528164180707546114925401852513684851853525410574034680716544026364762564924516473624500632118463004998029205590458202393319827285321874410884233354046708745473492293584961550088741853766433007460729400360601112804886500434748044094531716068973565684022574555528750987898575787967368164263048194834481880117423784691083233423908846859040341483532476378640942361546118624187266697727232259549059965846317304311755213375868019665695959938293724741393496975832724202492597794819338916467992982491381541090963301883864369020437748439547339452258546967382020911003323236004496557690234522405749603251574006118568632125283452700575653003643538245961468711343417812904291081089947346869574659220265569440845858714482719934221618054028341342107586455807236109554430899199594377804774716144793965724825677846033991444070430162531470198117237215852577219125765736357564267337045105329893671660686829203745069538106579969320513629979094801601252425340411834610076659863575207036843680628172265827420739288268776231708371056502938956468706338192432289348135780645616751861854452617386827745014457492504408823212408069400691276149096437724681218600941563298038015589416472710197701845643230277617672084600290485666695932785083295821660838397439768906452105541521857029557023335464027640022289909643558715366077678060845626246100640477518602088713531900745754810715676505332538423615840483538884631060984977193791472523123648191571997284854639262781040971753429948352058602750526695744625933669015306627052454244888518144217210977867413631507405256042731424695706580845609718136720988978863271032617746642753416888462207768245150593647913878873240132679068030241277632491713748522270623619445050182384600167089923798957707260233136116193854377086589217084291693700781329234781355327317559888406103216668655748607135071126479451011733238479925205695016312114290243275743128307387465150284837612459758856999666072547230616368123422738505535740196468996538507633353745547718455072812971478621493019680421831821491102643639877519502974044421896753434337555177009050173032090666201295039462946817091686231824472636445572085812699832085838909631444427469626473749459696119404099122588988356206401805762797538751707308174002573086755450364586261026852773977687255974605330682745350849321960551050914080667203482629561910270890538704158809614542341197876667924740980125752675382322231550439717024224413572940973509334920444041602871470390189638625891895709564559502023489734160486610582758902367425505688884656955900281609704395704654847409139507155773371210780200461813210631062095196058050844963777678238975987832462570485322810691772333549691527785850266548144770280623586210157890719524008668823508328521445219722688167637651047473540693925441722665089109594077372661618510118581538860710690602125784251136950106489694913545331971663428983761833302100271620992206057518664118301544261512912571456617620104166095917571128037805371401904129342214415391015294437942812943489009631514289359962154752248732797124467908934881127197532602482462318537346631976883709240115247142626425346280082745527264833659352292902798661414532302351068797630559254213874137251337061958476229522816907379696925161661738519954339054585472154133021245879068237757584848652622324712507273697816283307132265106094290489040039034228630092761374589449170050395695281622280420152387910757162824658549363746395665538897731568472791175344109047110863778453251175198075990075603264210028136814697756612061306378749484608424068896814928641603386810287173931196179166368770249752722462775471601098539490243120260881618222435502858272007374625112443875326675735418354430196491312570348462853585992786797806541452598387026860832092092439281369342076718862601339647334565008204216395967325448930575277245105393012110573364714767329124189319657839674735726239901933761410296842909065081326305398200579515026110928928306325542155724549521491744562639224468650378585363834278965101837622382831495790654768849077932618319117877798230221959352400743138792410420657262156324015286385423389611528746909442902715981315176178594417704769820366723063983033081671166167037440000496145924821102250294251544071403755626221194636613156073349269810131990613652657081199735807072870119142372498616268232792093710214234117935493314696928099582325200611717744090530577271957183479866947212314913528095036646708240198200323143895800731523962084085402719492079741481386979361569450748131980664322147050120526775384286813248822376304200536898063335818217468111007974034095711835732421264710385065029084940893455305447798593760218902352256081681570120300673819551423996380414011982926536821225576436589775847310991905722639226289585798773820818278899323423010895119983349573074987524466547275734404722304701309381869794579857031924324106535532465309180392451475853024016164445904014436651279418866646022237555940103335940494350545818618348065743897557494996000999606186697633811580275411394379377581665909976694021567744414116432930423081565823735373888379828749911519192328946732276855177376547680760535803185591184847942757917987521945206491969933268517561202585977624973114213331027220383788039010524206361284831739673852157521912191729268649004800780189252909977121963517417260143032546683832681314745939191286270673539956256165643690497710812734685002718421452741889070730164420765151625096777631065142070690738315961528487962607702332036137886550405066698365365231801383818501707152932548766582957211489725678857412388720376952109314063143164453301968047807525998659560608199339436344328975391234602262307458972918860152280598233098784127898061002824484799632871215317107389328774931353575602986447245034198873113874364581367621667031613096716567964025096323893259839876991885019336244819625460087839805295490140644671231052518512770465448495394553865400777300858849268408149379485245194683674169862483812010696465339500788248384840926035212539948158945982992779815493114804006029271153058102802027351535101769988679794037617673098261948180199721852333023910700610333839004096884718577279635746598337658856503975208804835106977630149391947224473582883319408679958202447102494274321438649789904234400281496353441280797344933827417852264096952900522656618848028273249038713191332782677881598607072829493942788155012206693537271363268502841808292237412600531300010413143608804079051794443478738143937621443139039333373206020916727389424833407580169498594885673245247413439188865561601516128524261696255081482320544747205072828198067973168738741054918968865298861641347625926925501691831587586179307407731544802139363112976073623376163344082662848417789124325140307689860307329449282141175373699927623045788946010272012502729899445775829909624490064513847243697640047587436030710767625123680462499723685565191947596318557090811600283716427138241090265382578037731145132239934033023438327438792804233293781600887779928501859150812587977459974710176748316274263108181172775704120976608646830682403161700664699623618932854784995020418947459320896739246300823598057791829684930919387868462264652407710097484287830259197021937733469254001404582901421164182011307921300405308379430070793453248605955499176578475850753832676767252326627539752171773485005121284217876689505200524305245615979955908199159161570551034074473002496162932977134992802450174436219007635609681751767619208247660266727871449942130128397293932280724719586695403821545472305207193593934052826276960518717285896014277375784360950997487533482763941663160020342645579706132359367584660537098225800974317711259071955509172000760773427732304505533110867536714891845136202101086632587551361448640040824310745992921131633810574596971197973227993393424943220592806399527258492654307206731456609024272097452964565032870204626793305620470680060556078278507419499864907324937324664428313480658912676606159558815808663050678746296309085031546757350975167898088378059157909657288524355342617019261200669597254488185062086554335406750865830652849898881265973449809910445466205077046497126325637888186556951251700326651678279764588044681117684073198304898240023872366788504829359713239261655866174723743698784627839209343620962746575047882196661196373567549891841351817220074385841867500084345916689623931380671241928391309089677304624658407394319049042792195245007369948444196632097139947010913205283314940882115531776575099622224213401532323890799861179854178431816402836312583514006420836216312206982382549914632358805457515603806643866695217782956382175613802468526131747802671538356020090142885549570611549298111733438461313164747737106130624596387026709550151404034188826746420550932216106907036101268031557010076163232480625469037108255665126068548529326737679496807089084211538928821401677927408836437791822647174203661792934139707470154058831795749308650003900458343577028277010896452968526071341649748289628219583308623511034157884945275438958705595320686635052508812080300739636534362724318884309644848834584339150928165459316070521322639789028615745539875102518265934813263077909277050613973164597367141842993371411113402330750643003404993261574284709027574198827493074356092535833175805012504050402807402517856886015445843317445518653957781761302192098381744832579272538545187946809903644662044818718395719784072123600442257000166608466735199798005977252645293002919728776431008874586839785107827186848622087015838224530691241586797843259600021884388132408472526724405068385724707156646422868235161416565738212658583587725015474068311628748188542385800599201106003131878910052259688584310554958042320982346607193677902468886667919138747360309917465227269064707924640076747729518104046761391698558909275106729513042465105206563069977679848368530377758764909907073196677363327840942442539736642963415427196294022319021567980547268339002969003142832539545447055959607978207874065570498796794861733554179419970524130300756392354566374302470585837884709996919881475588123499209869764002468076321845674349016237696246783827502909208431746973285011349692667686532804969219753245425006467587016988540726951132679294523774456461024306957311742825199609369779738842046533604631301570810736248101521816626911542045999932344110655143567147156963856663759856245412172388909539873868351401409295898473214138953468834278959856238204630450382404007880461938466733124731900320285899035336549026534605926248022527816099601488391156209691716498936536553456969907406614500447090053921784921933310679657135538620225171449791279076640556138996400535556329780056259572984478935221892829765052306243263222886791144144484967340874346221163023937886931885989264730639836121314896409768601036745109963211042381071358077763388949640167744920375920204377099204306782173526432944800288201022440534160943508623167715885101566038701802914602352774280862774971717478608533964546667218588180974320513920810531455854530915899214726149521051052771761184904220030253090889546689866636581668042994047225232549294920653029364136863552462724426035608327811653224902286084423294218728411628331129294047605031290276263671010029271412814416154856372711892613196984655540756905505043502176203324266529683840154145484567217138343606699108817113619028874368133800910894251983367270873844502072396337964605676535421063207428947824384349665448289785389920253357126715143046195557586589440763255362548330829683841912507406307970970607977299636649467407934339886602558065060353838713458316842865888406460876031300089954682330387856450953379675650321641578794353660168163236562158572333757012574406213522692716150614249668071905125705200769286568520635650708803320640003342903039384653585671919760651845547935002416391759959713585291008857986577272310273900763270651203645151239351145942045782381986965942568785794467812198138033751663233769190480376644632044793926083778450863019023021405683093682459055197838379678180493316008346160751896934262391502236306301881786916491412852955746172827454686426274988947474689146490433673917140021807120319501736432073282252237264202053104472868674119598595555546779950373948209741779926982663291559923218279327759775664700715903192874566942519597485730813115888300661288130021116307041156507927648705245222816539266788572238857359427752599034789165710168069571016525465931940949035201624569106912150465138343741885791839557378590252904580788804456603024628547996108488185154815692097314145008949685468920788035829645493248370114656333599505717506755837476145885327495913806019333161383692609943243151943391231934578002993276176115334964680665285143664593662001528761733875179621208176105532412158207148424917804882551894493560995258757751460592321577858764088052695545314042558923964754367859121612780017734911034241991552541215775020025771538691935122714092945631701820032609872547453149186032547523019272616836045334011531871782421738477221286431759232417713326073314729467457035207647666078660511758890045156129913802754976104286246511735220874697132207317760813557457607564211338539896069348691224193668752653594775646202138559527852987177024993855954450287582267715311610479394075853972811046311828745618514292520586027042360908734804189727663177852890744641242327862368665867475739256415436853864442013490689694249010796252406978907347201835044148601420712723668400148316647734935691527491522125339033306332260658813305317277525974485789314281828444644472305021867498535604694405447924024814219800360914447659962347760630563792274985616513159551494358528818520404360014509213462205612868995411812924843263041191823450118786323076799435132051785859774715686344812613544783125227906119962040221361898738667585382527876240689762724044420278587353854442065322145733293677753003040741867071400419084743790166847847390125382018071697361761503147897631314117669669346108272423236651586227347011758395781340131302477370146918024998461666273383222715371076641540196429016170598570175904261320658789657029308118916054686738797339386284636925075554078121453297130470893206679458905958536337253259352086794537673870169583870817916017427171193279796055751785668493495855244554488864118640589946398642467550763474671313758429239597617601032583268317564413009320795911011914001092544635878625074701859149147265720517761849505484984782902345664891075450663171103772518813347262053210315182388269752198379416979724276356671917846069784045753846738004727869057426024150336364789528460016584538110592991235092906960221652889669682638869148974389989466979724966035060727849976396949332946225554860960528016632102582956606292266155016828884844106386623485881282599335529838517298173750804009904117233078512558210591343933466064058055062193747858590591323439733389581578954613412154118300232370322467475509087306203258523620692436457516778517034610373074266005143218252261775109916826461602355337578792373628581086026216817084049444608051773031857243888772800905119708135161098081306494621152268960514158529306543188783548474625072736138405241127531669131845872750061952979819385945069667326710647962128541725407926982169145823427548687496098560272284105526315841683269376446543567481799572407520018030523793287370584054962843972156344322100969468972607892703924625401235407269102071095737298715417009857312988222416409091889026104299100028245605241761203643859009011602463701803848106706877027471730635704468114221721672974936545495129429192931683852517555888670340852133572435537576233096845957700820333033571235179202713941362242997504006058793782184561376271995813884063551660433021058335540652605592727993031359517305867787350022933454577948698226467006520428427576914716525423613478298093567138158657476761301119007871805670082899829894227033986436068349345645457424698001062494751566411530991601456555964652393361425893622696585732216863152818651517725455846367945995384912213524688359038039970429931414052348802724773424120392187733510195832672379182904660284344824951938914945335051105206882982956286537667902091535266610112583107311083065220408411244350265449435859095205747348962857228832093464677812406039734529632483265992211515140514851444685439102856451398354511449047254634472191264964723666511300533982627156210181833094754683169221159604351447256199973267542752485115495245311666475353828300016145496487127091672631251234286380984970896558532460984195866965496797018635581962105128182567780001412350780748332371251926081591581279487634572393148864898643144561242987973243524801558021937111313892595413865460137665332536781711304673624987021750026069653058559770033924648181532481043037773724307074390478058604204975435721171149209028492274513408114099963949672903615819149583274734066901387686612829966754124845048309833734316453917596099524853458796783015787139073223847509603080836652401670642581295002941290420666401341817986796331656408242094683218620111574924369839150599057061421201932949444749386724843228890921606195449239777449537662269136960696981467554941014195234884557519332467144424500440191543966792358394041410654438826577524998762326944241615514162171251785308887052847578415430635334829074912522712903531477665919701853479225093803856780646522027892685354636736922610555037225829304079856926911225129437931378154352102813216863075823610725347990398921261903907586699989601392182106821928228623384620489000996121566229691948126997761719250467114613816114603029657033415157778595252419746441109906371678989804167483559839383025028154412862883901513614901343751954313351269350474826902997292246830413958585483387177340080386427954681672567687926935897085508917770392487047843173371486950763449757277239805101900028445177575942539612198433179410646794281527351776820206202981641384863435519328476452971725357020324312352447993426463177905431299048843504829015452557974383763975118293356090148557687107232799311962644559521038800669556908891206625865151611890882860466925130192480590252463759535910695727214061694880761016329325979345926210210445250195831163357035835289670555300644689996937937708162566860995823312316376036392977178231018057142979367615981520223741701720029029343333225935301536160365120061710174317013687576757246701780867369422592365685214737343976541943678924196732342006710487351864172736992514336468269548867011237568789264513753588207213309814790317134723453778290539095100693840505740853607691762874975567791392779036754740674600364473651732971742198079817749232682725429163728220570158538546071083322092507491292606562630707220632472031878897993037690758007877830915495515782899263042074817787753241953068906645969879085046032718686764054318206166984040072272325409263479862525472290836287684088685077452367214903385842780369637404879028584344595151178289637747260801707241888316588144256280102683680641682373717509511326040423197202964635258281359207760622851638274844448742565126336336611873906327301837216166858826689429603657536694962373976168837115207108094122679346098834094171424076256792396644295781347732354476671049192261425714798726078848551238676847279311011067123622087050489372662365946155017041716988796507300756672384636870447142816448214346649004194760724000091021310183995039477453374311004168303760773143656000737826735589851891416005225732495858198096662942190093134407082266500458969833289752893460850089084593102596290897602340558788715253727135865011584006123355029207781912682968538718373790110560123382448454197989598934041364460434304018753718878683203927182280634244831389974491500838940665129211115961864329968616967022852816062625535613781383258348975267753315788401942559806546093329457930923093656872708812876749923041245292977440787514643316795431417391920515341869351035993481386400741401557341567509000788642939828973760802724901893824809302972412320244924140188908718120792424241509683466037071818855796395655106929585180545347552527325752806601429705313272906612642718709376990749775068117925408681884304072389769453247529767751704905246193472264022441052133541706100709699791628364762173600341460287489090768551298696718551161891894160961156245806707769862926526719987408591207380126133580471524753950026514993213313763700449734019103781054034988913052205539348477002501163030569360582303421510627714448649837667641128305286701052575490691782963365801509054037624188066470185963113910623200999954062655036377196567438422013578044661997856728507315692077195580042645069503267034074168064884399155391680554642673002499087738261622735565592594208744358878817469490478076985132281214962140012451563402166457348791052145398855442617874658053608821008866110069588671065324821246191040970447695265468187769105829704236552912790610067102021768758445091095456460756594373139723262137492103230758979806773670104608281257774589801752475460424566291888329653831203033699527513212420902084908555080015219782834503698109447454976515656567014461196555401977889000199855765862169582284862150647499140110655558423509728701412232365561811317257571875571787522753288415446515869991127108656224529900800153577511667597805413538188876938842924521483011278815132948798296667061359894619476354707251806275098431581916907886647919902484805123801327109387490234933398190753842815885825789995930215946915156958715013530315038934610395983182034782940787237848314614681654229240316665918177327018659888870328164556109422436200640561432857485932373276584105670580074321010605524449430424988914378322097002840733378320774178320997185173656836060834814520945456857825021938954343711118135592476743594296991601200515483965751418437025643609535056007328500811751915689551847143582392543224241961224420371832478728490856872519663477018646317449119633296792447127784842345119158918266969017140569728935395930880476810518624952377925963837738808337551183519090801971893257115826074772393963116990184788696443944619395977463918677913840296334312641828456817312353646528181500444153725773938629676674242002928896143035532594583041843224381732732430774812228293545631957238800395701316392346734875984413786817253472970036522990920606842637363901602302570905376958842815477143437420179009864833576996797822748125396137048778604904169853595560957669873481015192134853070125554106681610869468141157179420981288093309765522346810835388470497204859569441935791679958441975224259309110146250531493394788316132884323310779985169195422899511073514452539455331745796950747822435922110539038720278062258388654932460619955597813650691147399227129452356524658117766517244415471332075119992925077946384715694453181813837744200801883419584587899220102755273306291402366002065325864111461158513621443827427304110100596643851245098063922334086629298436098634359373645679841390318525583052710569990739262085736715374310142226118785446029958237736433818247689416019676648675758742726607057830570628745368087962091530917436510755707156523112273742955416479945831109360856035603848729924543164443554320577447874938387881133970744547276944382996227685528158524946624493302963880756693367166862929000019766290399462984712417451224561809100455690382612412510704588364832081193738981787620079162726384241799873004624760685068133363197404789400881331344018697121159890402376193187552816741552425144067372597320434034143658764023410506796643221104598568300760046405504424038397082134472083799113712338260149615828135252523451411377764485476203137823363801440057098305755412463841345454163543628727094727713484795788432440994633244634503663384079309362737774425628510300600292214876122388134437475540851616462439114843186447605809801623520650203996139716014428500597307553618792616017713000708602293000231035782265549745913293212523711027094903847452207501575332648081309067526157845097636024964004284568984072640760747186780566705876394378919303489107202750367883036178202831851081427183016555451735860126273728245851406934083308450004180443741530012206727797466027826772836013014115348395797838254462487113404572544217532982067676343037763504276198434157096348223411247914302935944641917599185769187558301451506677661076620803084166203781823634112201194385330839795753095779445576853258889756288543446258032719664942637706785696739611937303668021086220144188393621362877762649280728457837084341669754272906897811289101192020284392617492202116917090723001562076448529596533437447182508514304849804224593706006883248690271110019161313962029393391158512102293672646058777924852632912438713679782253459644880290438463956413980995619489037213662572447873570833667348494886637919314055869661217133003028475830687256597049515612181618817572777121853818501940317317750839580938163087774588709965676477197628190616595720101222526680072381205253910634814067015597815193591446428588746858309813520260495076309180070569682639341699492481122558023338194804874637570076796093927394615790287186808429522305255129909659666420669676913116561741882105957196152808315755461576401721450233301865114253537065711832323193232219031746745207931385856935228121423583669040438685673369521703643412738260930105817283585237313581909848663676052799714280626571129332723706022900574698229655195103413740303868887168886417497067852999112179129535797832510475923388091464816492145647827453756890756550837473204511257782229846822525384514263466879531484116361890806924157036029690472835459838981960792331430458733407592011340155449667136109401404217328767734018209318436172953470823285773628376347029983387622119569574237528497259926519375777117198026908007560059621257705303131169223901517830705168133168975628524455756124631270414508767961417356696238289782602025040649712255919405178573937066188990181983707082948857579610791876735982496225295179536724507035496201890514123754689264950634730947348759954790578905160629753599880806852114388557360008211392080786203784120955052516070665992705914285071754201297187476075607747376874693960563524509274295639658033210716131375945155925455074004078821930974116842967435852597628096787203785068756382852933487132862514311370149918473455284816575530202418056696057660817415178254778071971015409123384214132066209166852384830987099682869474876753036920168689698717000907341996285935031482982479886058256223077073250414075155509850154694157674322308943848784167751593364959645971159467796068615206062878922316837374969482747376603896259621674405034273837797559660317274030235066686545695272715322989038915750644177418950198644278526293533313916718842246219509081929960582361561650314202282940796753959523691144989806924710469547669965556388987999879772077992875300999476973820174676281412908550901635971575897190836956741531898053194852254484135699682949334419166936536181689254580032405761127683298778108362318817203739179302940609834204657782599146982916156087809259501636853594715385144850261978843601793634823710003122437292581684368205027084303485254778560914218592139404331614680658114608983146241316326602834711321244413931695404550815151399659781657914364864570405372717543203988202285837989098211601493268336636000469996008381512577129482749975368422280214103581924176869361992509720361604744002279223363640841211184436866775348339165599393749990047763263165150149238775187888772998683669633848277749090938232152010111040450728724716661539072538096333489923534043826301013128667365171695239463982750635239749818984921167123522191424257895122751492595839273104728068276256309394130023048312614998352410775913672596480078900934653912069481237345315131206435242370680149398625884516765371520315418191076189649296067929301700175512984841776098597002776968057830179883434226782737721354365157517208391732320347325673234244612977354935886838931764625881696821978179876698710030200079664675491361360839989224959180444406149628402936270839525203228654863875895565238532401322830236710136718777909738047078828620993787258244470880140577720463311281656343554111693515548445603749261399001365127397140567507266124337482479139547018817613473773257963955258578748624442658784587673552290913226905085321437792209608521878052677107906411335828791664158951262923843042732890479393119016082815469117305505489849971188995307958297522661547429080179802874844283815787413668191220123550468720927898847005560019001020262140374670956353026123349953413054331156215673974320830665955987769797568235958863939517366728514095365609526861393795243353068526750606832316250514682263687878864362536106563889933352093546576668676166982780587186995478985904626106288198849877628543529339009124044753753505358804264545657258312602598813010212559379742684225604544393643698841972566610431828041575336827546986456192545165182616683858376829981153314531453550584690849055298830424803545265520082084854495141567627403056790920872117861195363217118293404269925568213918464798054958041992932691527145582435454866702652344698167501870761736873244313009357404710529112121793496706830484515015833471653121536331665244704816050390828607364792576320634170937113736383249004020286455247043491890241310686271602413166807388771386005638250774768394657441553918635743200671085303850053301153687650238139571622606339045217284057262229095233344168896085008867057251925363076387145195548215869484263422390642578458828137581935090913052870616856431787762437269708458990835106369517077711584042312755042047327889317449377712477587109669506954404179275787403596322888024698781854221311653448827426829162692576424726679267491417921736671547347969479541092781230512414632284241934702204340319341219708711799557848886041884115117438142226001125103611182736377022189752949306367839608458586962834828378911988767392045217412441623051624988103690228109520903385525232909346171930886281594551023455208015785004980855405683784803573386272053178112588174738601244977866403888341531022758405434270496667517250869557254343188140478537524335223789453118250232524963702791357709706842218296741148642552795050246842900586218865153021888842493238087295062635501384325325214636503400024428965059301908123386180579125380055571480797025992444670899144254280264247378011433082020506369791713298604647389657966431053975764864426920905864747000239665024800350773045464255773532128289113317274741478807827142266134170351940970746027988885495002343786401501730708139838099912037021617559221618168420331198256561996490425653980795024107427799760148844739795356422690590091753997198221193493063127469879043407110105678620172671475413990944981757721069100374448097683784939944690786580384131374117241123785917918100098583499740370827559061993233236526145105861049569543246262281684212398222187819732228475450573426628961187340813659321525442053384118211516997050918778380004231561461086437591523489441598872843533633895153604300251110444311641648886908639835495859611172817966011026886900554208830070022357711923347932279709195990064024134754888801916326807425201368979736642608052842247588538177444138257397711050492262332670707386492311031718456897472345361525080244069725736883663545934834895845576108005870507916998329416065409742206224924255924242574877890983132548244821020380797795591832641401283746789356683390345133096959467108602164498747262574766158604225568519297062298407224210076683974623537243981783081321186578842609792293253448210162135475010740238191857337686852098642531437295007592315734275973162241817661225707532721606619837643885836979712974247505601572619515165749162035859953908974752617335667504475622267012482415083656240502693375680216919250818956124310156892281555439757929268173520666358070111800011486653694418731691824014827293769643241431155239957989300871238321085598190334703667384366664937572696180939900865646712883903356938796881915971939287233354591052442000455130217571408022677395196309793541368212370736106162547662305989372219870497956554854400657303434055937455885032115689801179759036686002263989661969043750642153757526761148984593691739910906061917997117771270398195895061497030899702055860213797013800647705723122857254100915687409509719246657127834452726018779661515499632966025778883808219153226026013559911278416125393559603888814013045904849875066936559330859928893561626422770392170545182751085722878784422932076323336624419532693874720953434863064852231239967387501775326640826565336801527410621550850130229357297622958791823832272142091878832370207386081096807199141763223411003110966349870000226625239935864143718653611667471021028011618173257712417596699475978694112315755574274504556095251312229813842367991673129251025130713619682656418918272463725444724754491560140941524769200476393698666427804951375367847819408219078018194216528205837795169582241284762957717987113049684410012511425351340303107048119671512533416888146576443689307406275917241762832739170409649066160184211396849189281415664138829054356626177093269628953793341094426438950540625115418354807737289138024579836875875866717949371588408046136808331791904681480641175716900925489622330245427047198725159856953376974769084362252442417700032264652898441131501165532792989457399822671079115240753421223903686085349803148640157076060268757635575380391430069806265481451996384357127903294820581302069827352974015072109960428606410475031474611057668777926228861783283107167224293877605368767924187093675539080436473054150659102772055011594931687775138175252878131486520479043890945241389983426124997172527070781910405029449396263911698794270687068040968820776115438001690044659241272028341641344998435439897087016327770423030446903669709785762364577330201276570174339292147852580254020327632724911823079490943386114850416380460292333439126621823805801587661043557986144362658185322043540117910111069454172142977218198303364442379164074684107678494060047244147590465434745483506767254934479309411006759309278344328915129263152430688204651063414013737747796005676452335538251900589544934203574649252516105708051418617807209990370855654262354509706612542108755182315900034123425749498563004499973906323884927013990095181891022281707966835830485641674912156253293799711809377659671617501617923678743716407363285269948641296434807239992946372032283578893524404720699382505107778748056208827647028463850375765311196128691285258119760831631817638749276675065989599766170541562750249029761308671039612013416495874624424335893063232286748234508321954019353661478501347734127899500046092900032699302544369353380212721267669594376163900520513913096032106230523558323858966187387721162463581617460222050355345223758253623859987549645368537519522862783068075565745852298931053638604399079466001418609374197708365619087140671120286926757709820508429907726553653592144727298350962107272276041779220140357712913272112000729718398405654341157335153568102683631106567889599157383238052291260425049119824733177296452782620039857494869972150800032674548970138493685580444198448940442899132724536966029533149792917964818778706207187387155789555606619816885055360658703547054554756760066476690248207965376862910583100269848592964896229464931697909221022700654895600685028637568684528598913398950397093847930879013426582150238727745375392732483015932755781901863379447023967880264494737976630641030349542416183389668540997758612150572012185261040600762822746269564365731601063946299727982917528600768715715034202043346508572424414624840098468592246131331183419189569757005853792441999346670591442334996219577299069198671253657588640248495588420803561552811694530772238456091059232176491300334238123896911448022648956248579785493944391847755837047137144368544884925061366325477414973432058207353926531132244936146315610928414188500460921894358967752970796507917648968567929073933152499772196990900077983285974074051217754186113451554506204929475637697394640430258387047225610533603492107617549682130864026200581495143584033487278152609127973125551905698752440206107805317654511783577729405870729647763697515276900160095356160360900870439290103332554774413862655312579924213271960864269661142088721925082029047699980578535661158137492019854576469275903742575621503950779055856934066570746403898162781616796206547724028808200512765647479266664931569146686550548119531243880828270656031904042478130324078311087102019597661057829575964570926914944924801699402871748479129521041263242011870350672963068665048708919575331201014333249563683856268265802268564831720282265372679155774060627255358286353535599420750004268372279372272870734758299311540188609972125356524477547240346244616621049148854557676446312234852382607965742129667115973509123831958568464602090460816475715534165331928801178258419876338284262541976156679536550617570091260261974787091323336760803401409797627421250198663999374516314927034435696063749964251590754020632472806032118420697938715167005003977185576555557693831503826931160959163959665244858250640169532857137487570361453037763348774619476182596058012648786103247111335358334924403256754773444148346653471558024261557981581303129027505749606834470623009034963430569413636334304157602182519056677647320188687856044606794563907236334809816253124276949685894361754220270531823786818541651582855629586338240263154788786982023631612400315494878852000644370859312818530096695062117121382008576169410261267307856763649851896711849106530609816206410012927309513249282622981795623463117433163257185082048857568665465502793002748127123020351800691416356264131556562151918978817093727240555878549474004307525913734042020158423727180953780720587387674470629615120870359168626326317528040169719787170432792982914811059251581760858751436516954419318788675649767139559355847676453204380679881305982756955408450933927768261673513748707986279569380077934017534271478691915222027761400053575619087887542074269783042879270318566159409017959584154698493159136577981588242266492507445036678437745093513416763662296311098864467336325959859566440168646319762249236076701448524205713366980355601689058906825414385595022323163216217596836612706762711607572658253955263951830897739075090280705330288091285708680477873092675899465639073821926037806816257136244697846333492160994712334554659775576273934726804182200801903958856682957638065629973271801937468002416144063667516726091717604586375643601486336281121968692380375515248058708264829446296653210329223545255742454558687289351655767896000704706601430763189642042470888906118926573616752937843501975494914644727097780600641275276284298639568829675108684044248855844932529424915726558686800516940578884047627241582278645679244218115259644942830762329134350201650003222666019885333798956187933243006612408926228527938184399138427557731714747757130233824805675180262049705526921495802805278195867069679295142353012250079922899733550143131007318979865481307005920245500681761513905214349891543888123259242767837759664418495438697591004775795791890453469153747760062612165532049189070579735396552410281983838640702030853277405122117950597574149508254642214485314498149680238988538007707513931851491839213233559214842157799061326538212853037690296477886825166384699384043399827248960680396266397268984466626888739304776363850201458513175228439315192020777520136735283645250346698645988610262898377950570205438562864602369557579462728346892022537271052667087516248419505280727338870651331819511546140386622094104751069063410773398300777363918138793476190980123236706447479332291702644032477991595958941570274765417186448990426260133622194952968222659271757042383517281978875794192661066539633499013730646979781279442158320272286290017398843046237214783477852929454222337959015222600043309113386156913044355647641603327531355395912299991253519478233616000524264721175187696653187366215465328090021408017661442620681978567642758636791388823150568411285474346770810632824164795144645146730712919952859297049522182619752542882544394935918654065608980962496325231494252154837923564352159665726148372389460153313870951495888621467426108765188514126944600201064139880315488600001909383012532970102213507682243214285592916980928219163340905568481475911558201600013095613468327914746970232684134634171381710799662637493864328799681976164034397387191888738489527322000484700847938331922929624852048992243059499406929268399240959573728531489414758207940596502421519102188523585585534590581767336584601444908157795771300644997556618942266512569760216098462250062861659738423505244834220404059307640523772283115738811939370694684805293008935284504738065501170821228025816530099517265464364821080123524679217180741679124403664834111150283000349896460949419731770301102113076538464645744498482817842164350383920139271791248399254553363184054722645290652037291282226670106335660577995256500768355291439051543710481413134949948935254141410236037236342311141107266347338709480570762768364175973406607955966347598948729842106393835473754816883188130604472046089324670979015280466697255043307937010066826650199599213001727572143295325983083005767658594705604670344114968059023029626588833880808859842618356080788981342093769747584429554668209712323327979687557682230255441381473631352608545139780487274987000618130899205896458223231320977406285683940572464190959751840533809232556029459913301658098659920616744953191934165718523762898304986053181057833911289831250668118768679938674734577863104416129290707429216355333435690307177339127435394976787358231990612928868583610379381808751417102349396359425641801229731516623475432561494481503357729290801498118062101883850320192784653329111381645585585395224206723752328598987703950900495866001780348827088253252139210780386324587438849717953063266506052238842478177586621269588631456861868637230041408482803625532950988294509724936755701956557847812140067642668289864173603627004185428107061895733682213302151052655708607914227555409239169206287620070432132599952815098506765875563855144176406484884731957907703171218640857194470274142648718817506461880896207987721019666662198247642269992447285410467318532850143439642900852544150782949914771284922083368644868016585344091370411236380572134857059923752193490795859235681048211716813124886382976126686745118538993459569743713465104932460297424590788582219868953566365292826228149804043736082067178835254957010852075119974748809274614351876412221577408650586994595368105793736403273568441176399096867747702289645642614962021541235730678366091690110977359352032139651468453411715412706840171425562025239174429622099203534107363370987899953553970897500087672748359153047030538155556458616422860883317418053291874063233138465750864753701940091450358715560378548936285883753859011386395921319352289593198187057063354151775912929121731390720151935392665501299301052031519642336810241447274799877548565166598047505816838022466039959225295719868924593692507891543825476407667476101836220987048227535490725619002062455201653656937553890559961448261791715801639598449585777094102081701025506901312389864557200642102082419801189109312956729565362998540797441579159985863095219127618408708297893416666543435682796089881878214560467182122991414633849575623417413392840129125790276314799775537533937159255398109762886986233301403427632829978862074349206637428354679346276102851231725850463084903552643679492395685571646904817881741095321744829883461373823235033917015751336075568212771555609453843503722181119875327803636950718477609228500919876398330183793570740347588172354305868473095397834576169892989868599745395721306912046152722622344459402602237286519360597185083162461396921042882169305888702328256995401871878992318996487267425803006632124820058952567434222871777649417171403885630903750213534064632235941441414874414575268803784505320108597061952518670214423138252645424423163509071053630699712276960146951488943778561690630847346965675941208423038485390826905086439444229430435706423390409840073632298185598567383661608113246448545036968995594181851840771677807653243981613889416055495899008737277866053772148935142382928203932193326529042906900539114223834805076369410535120832137693387114310423116589350967344042025961275802140648320382085118381469488331903774711800280633461273764013566797241812324980016992716685803615141100330650532311467818169096944046567861913890377820567269958507467339477854579243053362888067705686946549750220345003290145602727902603428942350855301018014397109320302681229096706479831785514656754504156928585363620825537234456698223850034898144990030688063308529667469186104551899094989794512450268369439645226158930333112884084590225388544060980948765323106922260245928106056420939485080751059941211566652705972585928095347035277557875092148194710681287863531792694414889482879166000759239546144414310558129492502207872824147960723054213870941312037533799037074815970790330461346955014448447957149690066803509810533893436972723083418629712838253049429408839526230022450407294309736702366728027311061480541821568259985587012265620645207588318236805441854316660665576118615322627771306052962867291693113806475245335423523411384240127195525630429634722784592644619055268706449672392117285898450840789070203900751097552633414770676512545126171900974735266995398731115897130157923251801440604578914763883816549316759086218118657640383840505996677373979871063136081554862858251438718679759450828256679386396994079811390111349378421286039655318050385272449638974156830309555644048361847052392020478089183677363943989272564868668142215522296652962137868424475159372192881166433790905554434792268981827108746390660396270089634561444576356450347405081620325892815748525239319736571918582877065797463941407171119441575845832151375649570548044879533573765584787281722992832203572053042256019303684969062943481259118680474863006378072859525498800128866445157868464478062102460330592292258757434674541033363014529563182334752390572583676259107043997453736671739538007068043801843833199494559650283212040193046680427818761789220052654770593262736248949862307052129491359290669815901744238934649183990503113482649321008724231327010673823846690183191658872543694940723533269556872499445814860916147554760483841058773864953381895380274739527861329858589517459479054839787705219227101741995724201138246466712955381477198550951437424861434947364668423350896115333660521273788686974140187948763280990484976001230814346903384263948767613669477575982430497025237590533037463256689533611863932658478696252726559790638263865135743990112743650305841873074803328413150652539080865859817282697574772498050060587216247979669523233139854509707044861255519057365542536599573580338650880721316078098623959952253391791976494611854526616815248135426929307501932304630412917699726505760933012784294721382664937940883282441223651490382846075733702594037296139537835736973364307291636837691670504719054419922622513060614914304489544115405798387695909611953954618790876391823768640997312382095891248986419940773939329347032841295852394104620139207522307449751752810090127937128305024395863953455858442198554093708102434632104891527378610265463369927396176180757896204488953175676590095531296271300797637971986654891103337696235770453657552767586656048826128520919226005213682869999716893824567037550270791465059414971154888485441975867224098992526470241040801438190537310518569390343873227919070201634404280975684013362506412744657679847004025844923227733401370425978433641984855294199845868849036450474719430092905467624624849773692247069660747711952222421030223712942079238402361691030879867660223228565044416387968105448197096863180680035508470619408171878893448149895173746899074428298121823530964582016151970433377158682579157246497092591302034123914018761601180526793558805148777603157328709009762194003674742874538277307662137213386208769536684731136248158261319717401179875647019997155584942367766666305335064744078312104996853939172087190404461212626059803185170391761463662401120294403761902684581232483857146985463027861241398154195145473131211875534466384345339656252978433036825795295691810567117468979020615869788613928106613506997734165649501612659529844153313559253119423905648866424406234556879462791428830259309670836194126950326376167004049112894072480904618074341350843352313393603836021368106027162156589413645436883537359620615280925313423309377835778587966331299467546662885697104449991898708407121892883416558149989151230379136009707974930329931749987365153329887912295066238537247237378049489415285595916810138134614986836544487839458874311966879285368398625726705103621379822583453669846599868622595436562659545781315456052952391631941673942344725498278074996352336870030591191302293137622408196987272187913069012005946302981260829578001733363720450388728238302145580757192650745504329552938612335327544259098279225869134002482037940593494710747371746898133496222041174135949249926123816370446236833924818357692372181185822503842839624582041410572438357745188893941904023076764761201013413169531405748735062108035266429764924110381533696565788385008668888477875764663140213051634109489346270908527902259100740525036506479787141018249314589046256442100854291505287943386866659001804649787768041027353057036298059551373378164963527223310195042619164680651519070324536240940408366337763562214706699670233261196497538763093980145845841960508472015955054948872959269867715167169048746174346696554644981240645722278992046721842363397627265227064885945011140985967700353200424024017752478870479908641341302349634268683428989480672326515438986120555436383201744691695016034855484088923671050238026706635050122575862464450124280821829662203445825601442550636918966370639093731061406465144623605448465346586526070987632938602184693023727150484609043299658438932984947416793785658662108484980470648574184204189956538001005908474070612597652691038622769739574984819229913501884522041728730574220862821802012816696846197810120095561696008953786553094349274492897611314595375076179159195592920489912436182693332803963545407836389009890298348717160598673917548338525875837387292332786385797267209394697321252133392337536147731433069868629951461862934896418776034358574517164500639173707034019992385818991939945782245707471273208440038319214262941453291253342596992079238972007334163866680260377756025494932647794002721444546206716280732296613749027181907843769798001430374040498880183760356869236370342796800512022353794130066429791023974793789091184839706749996740211436024663881671978671017327226028280434714684527388541323566886006035541736976485159365989481289219120077042685146146073264632656690626964973913194899299225480585096985786822366827063408823475488211387882631219081602836529626527118637486536112968047385344921406383196781627028095188332649918430915131982362935688607610436441235569037255402726920705746091309071489628557374196816051585417075349888019176036350464271699433781074363703917230328169720719619361183808788058658138218920101226784303444796314412177217253015620077450310152220173214862082276942735390235500081571694609468241987289914998718800828313232742090386793333601083501809865076864767767999913637931147539020297836945148055513799751130942954374937020637999852702795885592526301670803796470727676945857257611248952146541614192542118520907811395623576558706737065379070215157756756526337703800799509103773480075146658792221516124849275415979224095064381214343918621117617443969354894155810055423405456617964105723860031195748150934996022916415669353018170343611771550642318279700020397033019507553333988976816629460044924745647283414067184582311695616526981185061134513992429730102223971847473424637855484427966064933038335417726068822669850942345632827850739032976746932335322731847363093859485416765010701907557422706717948892316669797804624310086943467456477459117435932722639234799423932906091579797625544284195578476924596885855116755434930543501153753692459879847541638235887772301174324017474144285631264582787629506484207144335076509399950769837739937601537510885319408492514116747364273669064202917946119782906712882364038581819957133958908636433709276472953491569524785854156115804255896437760164969614107726296311217111121725896327427137296221357798461299656212633290984742618041969499528366132665674135536563613953487671646692748531397398753470459232783099236484128504532439145835834464717484455915816773517089526656235178100083859481274576030513798249921826134908451894912299531724218828092118476024267195541855498614746855530014136662142964669861369082853153485892923972940903762364496065275802882968721548783424663663131063232795797117815021321447351091908659484999020410381581983011704000047851956439099282287988570464683421258989347734431440546857419653785188947811721852280786410148768097833589803922403279344273897513289628056379164327787550169051207472790758295508134894750037147628627496533526307300043959247616242461168332378914553011664418450496509610002190759283535699369512954187898330891836492087426021117019563758956388450232539523665434746114200943375828234955287221843488990982987709445611951457509906292538485615872868708562997088769785660901289250611630455419995012459921870199611152537251395951026973225326580162812182431066925127010432616758308955488395330614463633950007962124615438817881408600001602077282042223060198850324913432296545291712461455677425369679548035240068018228446655584333608845373579277367627895056332020084682094776077936778281813387400059809611894164688465396524666513767724151342446242818960700980547796999625335656485179859975865359724912590048235182419019728199192914603304711973749335314255814324572233620302651906089803764296985129098583801316719483766019289749843441616861469300764938163397681136470465463814662303028013831673646988563072323990485803472292565524883855314463511489275107568241143651083163966416662037426661254929913193456199224256016577005895995785950857279483442594473556877866847493044920871677378645513402589977568284291262717652771835113075545909944900802500579121280947805663402645609502069697772719517719865827907327703845997406947013690141011922754227349604835449149182976985990446058292302017804499874444504654753584215128728888378151402819930149978789287642736172794034939878845633096435963368867029069697127468689259097906891999591167115950197874779178704524844775191356220525833520632417763634298147006128696425582514143743135379426423801507706230353241148708691144052903824538684838041438897094610940264259618995765468706133030441104458564879956448584128088070345772983833877447858600974909180223956296712467399946838318426186965156436195285525456860586669194721450823904752928732566981209208968441840702491915189387478781540105310001122871005275484357699302862815178892377432562705224911465726981872329065238577796125109253383447907846832152923737773813309528290545294208227297092804464831249885307888962410018137986083853014490007360483718026794054748190143961629434013309960754254344965518627187043613007705109400982880979710833441118756137762176671325523266876256292857743036608298294624219262163428833502161674496282749628469987649103108597808008145721079133416586454046137143892217570009832805732792229771252318433154846799275717945793670811889529955250317614600879629631481770779658422120842911816103719863729041011960194402705010548467005547688788914207343753661787949247005936247950744196573700823443202090084421646818273381895810325083913810983096502158598846735852522661828871969644205301768848964067154618268239799436053945701934517890297168303576098730394680456624353924043999327009360610717337341647388974814181802728596332334813427430136768188348937006924608905197376124497513697889752051216610874512714468644584203402392715456609194242988435324820275090431235176783256285332801897835509970721900024492073217017555438789017179681495492996827775573470976348082946718382225498015876435115582830490262426959202373563180738664867995890182237886347159923146796882928638092250946237528538682515690692319293882987338718379172451976942392038995245991128586579030755425794747593868097907784404599435554342497678633442717055676761762024550565401175254356849520866853197083257832633188480236130657925695901343178753706067618925366615874403485857442687959771308827477295738809994743705709378615031660478955688632451697716186783818984347424936915216173777531958759696106182071430883243068615917434646944575446209439708873055410283039803255286571275895509509219594263136238212220948570111241713703384250247790225026280308470079131095078262692541705206582875623329929112407475350556519114738287836802454448429168632448351050430806876476761176264186383277699542942744676759349260810841381727365304880752947286934542187027712252597290647688521497724430902234936664454373484442461576630027987631128162409592420192582145647362046003107792585552417219424810820599734060579853875068508854682468067826506938519399010139567075890766805585235694719247686477828819098169021173444836562680341512891721969900298099183835737059309799140881639656074403415974771242966413875045321976943868165957895903714778897577441058354974155103564591474627339847077316644375147744488843408974986575955308921702157970094710415895309564064838404693195322137269341474708985874805327326506703716086218729418111492803274402023771686063453878999083300274171082832644196743486034757219096172078807275456573512558940119750824171023736637309938046907268232785923642860193468910589928977528377700940919131358308035835736071375269186496593004661855731727496799616856201636788601227847824552734847780438011616547667785346335044120028940184232305929361775420481279041835657802800322315270641923818829018551362488901651675622094879338398963033464563606216024042224562204505322972343569368926302824170865496368418573940576045727931836857105340998467120927691520656294873918012664576897186182932251692804055013727390239785821951331754894737931444512629974313319409563906114816962820378819663023399515926658496006428182864285801809718572538771269518944785191587584389545958795390652078258688581433501953505483761437797527690954180081591156144438976765423076115847247374668252794850926128127963064118898314436907684247005634228840005141171209521749335807673036127583997792451094980767098535848942393939674688058797164807337847270571512642730066957662214404469907224230287158971404149136018967420315732535139948896758443602289515195871302635867817041292987881218210312735196960629179754270354716646974985249962552389021725636133589852865743782828612019652922688285928913611052032720376933358413159192841207974012893134178983494361163665410094177829068997237093795394989480704914496533606040037396202143435744241416572122102699308621537494802442407032248897985416060161019065357953745442864243184259243189746456859321336844030026241257107374074446871359059943787012594046081924943656302708094881541392105030872478553056309323976491934763399665545552979977830944555185086469648179412991410136653203677197257447920051458720913181010152234991097330998364598584266377722473950174286328702870014039947913581639027574017823286426190378931321613769366154774474740697092364847218536913709451213992863717732836241833159895719674135838449104900524115030679361978696480508826283692471968833860214528697265195895791660059769697447537119494054901340595459347248718103819608468515269037576609348809527557963569163626450593212672067908341405232178189017999081052300212242301897814367974515913434272979452691989914377405182043882454389507307595136371073757719232663184060849402701792927742761511501271456621087050808360925342535251291280177340845293065445011993946359207995166861446835114364189131098666251469777548801414959984600057091732231407875445670756396744831224052817695086421913831230018762896998457820697241956899790430019073264566537549151925803489160349100749354384898411290832139076112513012031184908320347787360493468062962855731557647322558739443852088450935146310805280231514013528155406454873324279668582462898211951729809723628169207466929242982220266042613436175121348206915490486657236099445209815492547907679499567192526423195251207252462549194378588201876712160408045969188804482654743406497529465620970853151636508841393955442812601665947004064937828923756112214949558684842314944146916872510694189636236510273693346045149765259219628456472281502928526979501326261786469262248496764894719023763626397896135986802440608382908772737752054663750637554399690750509699124946793846861033508920102264712861234986287446993481395770512152825865006102509517153380253206318008762036837285482588605010262313699209359130139788961264491198723425555819159094650410648075399226811463897100255891701962502897424814367068856289418548743542587637192556970796666432795868423252450579786350702152243112522549062159898417850782516025224070065677493998347398809441683117775269535926220559736147442112964168429212187098863646437354546492174892372652460026155972092379667243076700149001361933440318019125692603488561407720769357997081170311088931213528863413595810886781287751924496677343137273308822748249482473903949475431014427438656122181396618370744255302705293652160102440573740324936975535385869750710639507155074966482510852642041319122418466869607075705217458417657750944762967325652877245116469403215770628541328742505817077740430179516952099763188592781993953848860075475686675745315431368755881421969446474111363201252125495430360316634114954336855236069352541043556073522412432480338298300027969812755632920694017310625600315711394232037200115084551856525567410262368484296041016648944698223823820011257498352203917599946318498389567514598703682392831609218910224319628370953636128972025373591908468421554251196841678671432701199289596456673679942852846288723187341325465012678338257897480789709920073848525814963117147174392690453343998719498250249304060612824787660430687088562904221790604635812692836446750757861302536382363196937906958811289410075618952438197761541994493224391401758165748401884153338047492611664324948969401618383189179900333048136669635349460322599853806583705126196371504616222880562953425352253757140248556785179083452025180844824545326328031712625418618537002110848674160493424520539035947352545209007186822055438081000678775746319442812066003655372340619374867341557820149252682903858179269991557237662089472996615206226269637352268971538824043691142988249695299312014191120261278928091819027595361924652139683105208057879139225996033178117837451216585316071583750730997113512822712867813871335335502526511313618918356232560454132148853152391050952504196624866795439760476779534302781752319238006664552583824195901165500401131729458634111236677989147097502404304151504735962403186277117145976220724478299978164437744466926842011941115501071952116526493491793009886491892881713234286003606068287174104014657576731702965107281029980815009273237895988258733083455209659708725372518933478081056850305091687399911747969021416663610574057503755665615097627528482986050112029043511612516368233877925477915363090330924288200627216037368459085058800418791118376262552249744623354206015858323856903523299302281812770663160012253304137504172313650099546803008453377025223738123986643637650385991295265224775301199359572521253389632383908215651808058754345022202859423767818771677599291977462156473401512965024422476626368400839650750385085833595779695790561645090745794116127069805543039910218451982818178317461738790986530968751481682162131999365076266053952232372772516004969789063363392344703509713355725718565040089475183722250480132899368876140651483147096132504999181581255477428192334172631524894746899497221092609276437624852029160732651661961047515000695042265853382923993825311891976073148570252697146968908501006720545968183758799841608162492287139481900246574425852757848870105388503096535314548785831373550321839331239580286756077994561597608226409844136286001378607884243746363069059705275140461398823935881982930051921726385635213669911336826956954499674961228252966263026958372408663102761298509306120954267347994938245814770440352135525540251380158913511225451291131469357962502040405674288562987663132175217792484054548666061200765605800665782133490517334513635497597686738480038668622494889508110765080342385354063990140679453901227949504839898907177998808491488099770629022332433400184887868801004776095382173329773488058044172674637627589415251379577310577454761665596874431519630543921523086820729098748391167402063801856019825112492107085281940070412077763584830178027940614940321052163657638713204073502416435726190632734109814678915890461648049197174129104868386861875789793345720640371127684140738211792177235864849307359746514077666264659710366069567759517849801373394725630735231520658629006555260343323707948575895857646195402095921826094911294752475307571171887051970534007401544661130513436920604720148274824598427138650631379760876039274175703466778413438495632807638391701257796424154233107482006254861159487911518835430869037516870798059275414034018557723341521287793352635803135904778866052614383756987286147001690846611318341764455478464641760560296970480274100681144286418244570111414457898306832116199463707146274443496329719590487026744617158803072788522401241665657038061971479865845988581849965598705913022487924144881322601355326640827350477763852679348361637444642464373220265651275227053626968678788448717836090830249820172749076668339885350495578989507949026888577624676254042759025741017154252343540696584474540742258751721799831397701314789463833793195072008822169290181300682837766550806674375569468541225240760177717130534458207422419453293099145473877403199366298714066868658472636290947027406146911296076376336229611088503715350612468554931662285947387328949293829999989048935101384355636893906991782404014297766996826562319677870526376607173744216354922206391636812431777395964169394713216033302825286507479722762954892433074883864548304469778264998946305049174880923844233116360987800606952116810225382284687732080335850079830088975446893079954545498941057178377339751149700135681757228179797125238006323059768610776804045990529142969640931765933648881919875754476544805816483511856982121723371013790277922043962040563289742143638371313480718021517532380126982440343340213059413610528383307319009148126819234102257110046611625496931207701988928598360790365986766158486379451766762161341695281408744216193849244981367147891488284413804442169068944423358229364960480455144417751803016341487505011899053303806382560206586347440253544945532396821797395483658471284162452542541475629416540640189293102799322472325080416446272088972817433674054890470850902273611418449965089519652532643141402271757114321951121942911516004616604684549611295774718031014145837097139809533981862074812863168749774680468693010068480080755795336935740015854090323382847906238970615918961120595234573564039833078994830183653006499485601172128087726677039282038261511247016839239108375754674346223155475365655427024128433187249502979471819792521877039943044302135859329474992080885483329330642793747530068762581553495781490743472034924470087999544537605301662760651336003831949167907155906266345363061270588808843916699405777374967815256020054775076495402963486084897788585026065291671814265967927283840623126104683641515250609224510311239571742523844020237954133359295936727180185762468905913151401950213163242366200458752621562038423147229137141778871533778919372633610719493250918771657360045111941750144142095989969942431311156638402011503282026981368428202040479328197769054039459281598043076903691321191860075181553564271740269005753061866873716185936657544166385821367140959263067916590378507959691404827489469410550674530463873534504688180670362521649690094872877320646246153006473441933011444494499086230818554789745918667040675295363806053966023066878567333362445696680063583738673895361593002839422629680366946586208138880710629541335312361439922123513233685081931611448465263761595445221133112250234826800532457192726249348152444658637645087340190497444351611110903300048396309407125189460019611736269505246666117823416033546583695339638485216543617472357548176843758889896495002423652150306401751311708884565750114347495031685294251314266507658867711065577232371577275796191889085932838595395083133891513210978808248080107943045759053489088298774532134277065873990703773650436961308804486684534112507190661846000658670618690708302961381536036955204583907005411477325044003789674824307912713921439999887499562366889279842890240732983711769439881328211734732922778544331043553671891846814482574686343568459767609148622055115317047324287809374634090839288878087824529222144681408213538189136383867003480191913131317846679738640839651788083761994504955407616776793452830193548041989014577204515643653297389963954545373410779326916771773674731693324566200143585616702778079136012220008347098935644399347650367872116928706197688749683763679801875631024582859537736919030812118659072975426924199699616914441446791280200047910253559786757608988292169394485684053540034588509822569654279190200641711987488732760361651999936468952941017952302886195464025239849933428928861311696481220399891258155243178057937478325709604017651112128410005338355641560372137371543064636262200151355642753584086218079787740460914464808484130554621844671269832681935208453410512567868195500420335366652668824595120333943541347565629627263249808868769294463129259764241092586159701214531818728063147967193972270668742149031951876100063788252691811760677507388585393331508649829557934038725549414729395218265952487705950708422841417324477225938233855237180708872862093279481978807185293004139661362139485264910798963159795135603348608224360809946042256138659311881589859527105015948333151537505413765472457158590493043011802821561163306691922552025142571963741921765576567972464830321337124592473337648386494039833699649741873043409184980247928432229867214911129605454669119695934359446236876243189763590553619174673205114788966846368912971919763481193460948005509907714111160081910503377423313726362072950044884014789279436445743436182758742161977290914176423939548470959847386395383534885115927121280763424397156054731366015399726606253171958761163857143352421662151885122025834106173670402968771165752028325283134230645378680324871665648614227474998364603344924782896982128779177174339329413924195431217176670978391874913817214275190934417834387934420737124348618616748557848782177822147793415656617144000804172861936611822121019402266674699137534212310992047601405449184028937489243965528823836021816321146251871065638260188542495904607355622366019882494847277432148398894214127929527860956162353724997479198304264940707393357903857197165454479206537271970470677263907640757098209118717353328723152622356635148404896907770302885450398040295648347093819533973590337635120365915061415109061186840636156520415761320109098273019782316383293243835539458758548514288180197158340414697213951372857904198186336013141312114311751399735140130866147852426579215152330105786959482030058054458651066549150849451482993288490583666808581728215641526919147910543919703896289376418893134207026555825526894793548781893817065180998917603853096751290756575279018160763568575200403703607679864680886301445801736005873840945487100759818106811442250280071361010428951887075934885629576512509543194037554568075889562998163496149199521608971540409806040602420618681870854282273715703030008326232314394052218607677436636373267430487370797689843865430961258103065734386899778839146733625686427179465738534168033721743542084883191721874965683779310689180034638557492747736869968626988416095602589021800467449426693398616798032250986446039783009214363678438785879508284772023222529296823502050208582839795928980744161903637442807770238293826744497770228126701826787062373864711290508886383006753781709819408622861945894938321192312673472777002116093820869042508783503035904521614638159284420410454408602843137818579924204572473898867332184395995079752813562156981418042127047011802154450553766733136609316241113637928994130508314958729630206614759268177548657701279896111158558665771913926401718460080360848461082549155834318387041896874179146636990983381147931331713258098773653362069974010034358995206059686847128123388298164948028791578784181736809538771191954737626194902710877657101265401039245089509590157568624354648068757637887194253008777513332682145551463755465716506406023158860310846783313735374801081391210876233723232043811860951701379897486921714346093832030109301968121991694261390487836680392710458577957876496208720504351367735903827353063687862726763829726445625262801862194534036035730319427207535593883650231274192310747280544253363554496643495027465134711785464531534551252611994137257253939176190877351913691309702842169810867595011620849099824035735011748923111242430221574943585588163127803133405633131847031089517210641267703476355504399401309921830345870193685075369959082865778065696118789572567615264480203312662779274479849092041160091347442147024336168424185519569617286576653179936989888604059618780636010869702881919924231731451516512152819495250419051565597273387300444815854830839198555783012466921496109592405769028242047768119920980857646737786891616651405246738613878000195639471221489154956585566277480646063934120796732535493774138976837665033178927460277070725742957476887633932476318828674338226708274608683750212181238916154910626348424741125380267317871775211014725241994498143858597081558568236017998905564917005380426535042159772328949358681020857081725818406611066515240266454934878005362666856470643863368715452317206702381932926765376785309318917462034396326853738335605793140069006945413581756760903264187084849429380041493360740769180411875452839671840712455146879780759755133795408072780959154179368275677344577449479537935055009760572671192733487815075853893132745435618517648131303174955126016083417726823998335703980804163154814110572474594416807286430092147789986627551649466311814604173284866825081118972355195014823915406598980841556422177392005722634234814792154050116733204458729978010127929886859260169001905565664815523343505375401061902406789844117627071712784833568294563079480503138562546241460795289014451030025366821245260052698693733406262284681913904507912021659553717038407806743937667112593699568356366924486241753746179575785150915253868467774199680437232200644944656509495505974931231896490594557360012213415599616173713789063680161620427651575529656557077933564302685275087570947736978459861104693050055934801334691345448009063555039573960262112836000219073917468414563063460910006711738179270282864797148301715286686017639548984247961226682804245524283767930582140229438513374500687583838028370143532421248283476438720172836015956826060641888541375907999410746919584084711491296596381430723200526513730075530182146360934890733701077500183211197397199460768123491951536521478175260021546430816260527616450231921932258455779489122460229587375471976658357573196212288795097813157480798006978486851087619895221801925276360699817245266640601990290043526793429391905524182973110785434512445977948941908599590652118159715278691267850757391625678697970499865726948773529948574317086289545975572736670860407622283093860398772368548944204082918698763690308131627424065576856453708785126075442869861164996377323060457887686846575046555460372766903979293963244032372522405872127229920311763117856641079905486487990925343841683634323318246372094143195214026632055891490312295941673087173112617121461389366455674994353358222451531494887929544825380638702544414571014303840564485786213325544528628295516951535589021083825549994645804931155877012829732928316211582315141104612468773029378423278611469157061824460265489229052644238793748838676449746557067398159560942041492374397514266594036102827594955805803901588507690576441760385556219218707729165875423819407383224258204599604655620798106784692272343071903162868253672055086112370421748124064799201783072041832460288993672260112641902755298363609189970464827595859156758829981020782485191697322804583976647530446824350457861692965645984688807727189067061399369063999302379891813123569242170375169477885138385398536696541002608038065275042104179297667431840752260989657499483156000543388652312832880605232365714448984302902718042319152723736868174722154282608361473445224101498713800144101888544091511187254485386484551218600864163558017754481747241696365149288019191256446468889607855918670608002850675745691351419493685396662829757647685858176222352114619775777831507084609760314476476892209717823583144584229064342378150319087298709108079918444206299742503927226718723481913862476344352514844687840681832682133403809874895982935274214784511168757251906608746868007316640841162900641691518860504180945547326118712581373998477734441842988635140910909722904870855925880746948772949095526697267744480076012793931636406263729776084699782628762646277072311342345445179795727046367537468757926787684749730472375671333861572437222076406416154949570853760490296994711484384056357369104649797137916148238736429717042329691615384404975805701726400391229998923782744785024990900519928369152192718561823604626423746070232742132543887743571423056904538779123379629260459724010448508314019763426490525846064710453090528620373044281898275741801707671832973164089129878141486382720530497981714079847457328288367959438263445969954829500857782908246492739164156480636281246440920213941836003438020154125128539474046030440860771429795729978953194551310833430239111215214400066093904945475686054040810114350110047859396714151014317890528504817356238744310460261420474570623632231391288460305609933387675273252075484820359447317204774938381368553208304876314465485394594029426327251357623834104219312750115136087509533338499508683658922920607496173904718190278197669299864113428663872987580174798629371038833304476266951759635230412179309541219135423621756618581493528165252972585812721686390168895033001471248867767051154043107268143910910460317732128821588979606527938473784271890507536361439001808150152691905842322583744047820058720858828356418436053974145468033012483471434125075643083608928223265145473115758497362325942052194555618339040091493872597211291657333682333295510914018247223679159734400540100452802117305751945534575089143254812463670904811647619792475973758167325326863720003975857104312686098794038456155044389504915973407203845933589516193002830626135813197700350782119558793914682611974031246379626827472684078978569123245936014315901600977458260596911496607703786671050637180838878004464254194050509182093199048393052673030626118433039760455603220561672454160967575425064542571242686773262127781403265696005798069038248601637525967450819039290494298139031414722445095885729782147122394587240289424807694937619913294954929287211175327028003380394674184205586707744394602669349513913270983857945177637042761755659716335757893564835025707384952708348713078664222865492823352484535848227972607853274464952075122322239257189817664752839741749865971984125336435161532756977473807429713018511138382039844983805730620752622739089464907866225344714265868189822481358938840402163580661214015457715233050857316943581386858959357480153583418884453273551961191064391574852310521865248565442400777727599291006624928002701409494948836823890739397696472934409337536628553251148214192227195558589664947375193068568052227000930133496201343195288595602719478194036110747185654011371065805882164262808567452827846342932278199462619262902711915561759839134830542140848918326854765889805927481543173674650611425347030023840693807292693456129845735692962832489184755464661074028706657486387309688833506295484451732364861903744708838220365529895458155500184537036963299270143452145997934718224122788086923982000544439416194905365551521062528555238822061821573875260973653535065540970838077781064182819638532416111780870143017335773409521904195768025708487318994445554247636202016269719563336108222753112228852874603748684363650778789571126356942129199821347893401281713499565595625530739780381498754651715106034376984166493724677717490598918423136807671390508476940685409435149129401698071562576466976617546184663213097664993115960535327534298133965278957446544361879153022047534991257062178280171584617841824684643649197966260714283555538862741028193438924187742406430404976581706429520444336243957677217950293328032343823619043097071181076405494102456790071266856423884288384928835395931704910418882540341663633540988643359351159027180647491829337216932634451560488925136094322325293617135786665658391419637068958886122103375952566397519655901569844561438143683557393329542999774910624378155644171994124370710731660450303346125307384429862508084943009432431048473459142758765788513296015393216554521322385596943744307836170526623589873326713033937598880822400529467999292845018716814192560561641224522923150647339618303017038418296131337691237287136394465152553483718192225706759392837926089817387332120270666347991996765114931207180886529590562594314956066611757798834798346003484846463717814637933146254568345949700015894762740566799391703341401227198333205768780903931241735464853209230007135622396469628206192269201159145934961664422644424523950633370083560673868813264875486968157530027515929633406063320334510491600106068980668957333847920397860695274504727350029743410866432930368357334512992797988781945252405449906940980840674061329709314669171404260155038548573828669624553156304553130141791637288640513376273179336276675203126025677049507330572127336382597520454961630618898929012693212027028472656023842411350535825434928052556131722442738035724874128407218187263893452540649205888267587205462145651095564594006102320679019799630825180464098030479104003382955266675957888607727087984638556121272659364428841645678499559336396506539631139879920498353569376688348059098938004412642721882667048585004661447741700075006431028007727511133183265299186239655960701192742044489980243479384957408348715032684628467356542303038153349127137333383980845022655026201779077777534122942794683647792564619509912429871798144949135504680198199982643334595199529567934525897404213475952829616783277016361950253124142930838018957663023933571602110374494019202499964666577712366413841111289105329170970819942254332976682201045382013809004882952586278424449520893994855778725327589248354081729851399284044309777751848319051731000073765627233380297756314324844083390018502316742062411817412700924220603913704201568819478624049904707753418138760535627847800819556660495996907591169006696639056995529589028018509826099379924580103396113618348458928939077558096707263173388363501447537921269031117597740580919737754163779833074183301538516110823778069975378497506366724306458124658912366094222871163590882954608936167719594282689048568212519984702135967335394008817463892637131204700761156081412555266875392898253880173218480289794560825982709568946542974718372695274295035647120285138756791856881334671226642728938883991060647553529476159113921054023456892697228732765080668831588229921438406993205339176611179253021752169081249883353339821902564898133998021275795390905532622306965350835367891791214619131295607901667592678713368173453116063980873410355380773775977871096428997509162787051897256066411179364003700855184340795822808787019365301036151074678935931799695064149640968084875287923624079685233439979728390001119224078296552348009060210154143611404589535215946595682004853771600636794796677523744304742913999058312841902498016424233118989409294198661849510608986045158123774354408506926280042609711921135130433345451685804310027928517481251204784848383543720123194673375348772907380825454740026282068950135291212844825965574596163715820119120621776383745897077840184054297940376797261433010434485972299009704647699976116973407957688758121344571086747840642978270899411407417258714127660178826674113173019826125296409318488373788933177380894198784630327693957024645968078855161596757101189155622522634750984512999787266291716035958594356765872192876128341801718178707112706777298199599376834345256514853703254572416672155966434466344592835632381455842688613276667452893255213346056548136946449701875937165993845064014228159770958017488753030275021444971146815632794987511647981249372500179409528445914245878138402869547811802162179335102623887797725597928409844943025628162091171248493866363557892161539986369004972116121943875718354714729474529761805408369958351466086821259403332079455341736799071037672135497845937025717459429929078719994232802390715757783004154263532331158243130439009980562043300930879857214132160407211086550266551231907938816842081943908200018468961378436741813242277614458209569888152455662310929991720913507479442105879934544434219847156164715957648489306452355616363642487885587170129965036900414045122662972520924088718223170008911556194726433793621330685004833919531075937912875392673841821731143668321119718121364789539906901335453283530240024986410421065721457301405701509577042937573480569703580852926348049628281733224573643286683941893057972333345074499836174552307599784040618887572926816674351413967290169532842960526742805411671364650499159767357043950110122813762731598988066916396328745750991704721735280834024916347031200228241851583827583591995316962309453517474427072999814945105245409840382498939649388736444709015664832649680245559817642212046939581746897557912512621721170148296096318216135674680510570884994884600977041258626392706958024125876809631620124689279980314239757676883277401817867183038919764852036701816518306998863076244501867427035257221784894839985762439876994500566521758249513973734135189090910379500301718535861137896543854366177586571868872141913685631128116670811866144602584410571003537584492675867801434979067409332726449554114948873267572110814878725775246877304898091722842643802185707284616010117420466809307223867152093365856949622868412253240089013927555093388381321559318181376978352760222840229749669728633695917424350428848681264170698671801048285774593612914306858743446578597764540239766390592219014919675410694239526992898121999823647392786408685186623081152396400630768495228046567186314006865195186279711903003154926685671621782481618432673797816657856967830480957134416706450285703183754974354199273187821900456407476552282963231257618512944417468418848882057156857548563227527219708584612735656897853091381439079282614043810421325795948577096995489749641945101954470056419489432165639539875286106602329315530553284931216246346582581409859762463250082992217763572658731692437365535226198630437303941945603986463083185458319423944476574044052923683372879695680407688783741586697163995954917008861376843885448666659282274950808148132542593508738276920737540634001115814230624741142760551947234751562752562330588908733759722671023853777233993492903865906771954633209522795012765297414295616294609817381712050501050595104274062432237030530445760483900684197242997860758664386821887248928614037218475745969474383281560664155096938063751956790339359064358408317684206117834671306045015652942903914663786781746334306642672409218795568800378960305449943955270644164850031809601953749371477923797602670591814445213669329993016997838407764570635775228833605580408793223367969246874070313004895586018212264035001764300048091936721146778606211011103232542192939147650807417052868976895037619079360492901761542973847796558698478431719617487166995710334342280513993185329692809767796361910302564216302291474295962839754404396228578381642450873196965802393759154764894090772008322771985677576835579813296206783619580054009667473624292025345253267255310075053603251821957729565652719398769279776560614667354373626416717359883856528899841704082410335408000964987809903214365122786749439829720515319356813682593971638426974456341943291467215874318497789990034805155008512430170833725671856804360138890987025069520655975518042155240238620355629140005864190416114610730038252650388724044468114190745492784550668213410554740457963289036393068339006261872043743589217753928206324144463797780227010559657020424931397456683097865496552403323503586943024755439179028238200287314102700749497927677227796233628260452835744589190985512931947846628597316104215556912069188056791843708932797669866336969447239816731029497953311418895187128646887919221004982290643163258641497314430108884824026342280159497902552763103004048877543948791817118392073295952943729596481515443646743725305206543418214897794818361136491686729553157964104708604842651969177774826602518749557836141200758796179230408479712697579909597018468679040350554530432846271819988110545582078943912107185013147250515572644433430500670598377411304473050882155159665004378779942817889889327418562104984912071910301198809859236335490459292923550318306160732567290658621161017153727729061060891387179737360913547028062092857559193303142375457528911215279440208735239878410662373152817788609101640766310804293473523573827039975208044798837535089011043528714086132040319991988048802563017537059528372492305737955771696889884272852941159575182048958947864120730072574773120901736389974715609404429991386171541727117274620582589783563839333912510413117392082483743575095815100141282744685579680320786302045448244836261528259832946281233166084500894307769234269713203275933698814454934094425730051897270195029567891094684759962131701436611144150976790826664787108353090693347641077463955715067123126154913042162048635791367768609420154724702445580154764884279778236784943912301091219917243551764923883270045266974855250285493786065506878854652248333876354742919043306102235804180036174445902136244375207983814371518900878974260621530098203152578870585154589838832561349119112845845466169368624280764249336214975844582289518999644672488107036623906779301097902279127051379464470306498403245382217211534340152862105747023625059375470776481503372983567411657370260079689418216421252892236785082672064187481837858615351610175721655810577719342395323273102462804656478487922665465373950294907384659962318939065495432199115904385090071654586791462708678255021219263745327733815019781861297317323027976834870646019615744753373374499119513141568999478473896036070430096887026618417604634906530236537798462639550548423785969331088813852880298538553309819470113048190128195010204853346288161278557401793662875806407329959120700338751534190098584017304114300641159516545704002240421362711725603979445746696384906038337644571648730594644464575546494919855156846941504919135826038457149123523917881804886635347875354837939075682838934651026198922756202732327339441860694175268033640227823791087307980627490789283914489882493323477212912651232401038559068955284275908331858614732327656912438136759420592412441201743014163360215711487468933342737230814698342855405517287948807846082085943071066681630288194863390417869738938472406498064736997291411200357432193058791237852246530820801316513840425112086315071527537137974676087743966117827226155849600770479243193649372455093681156346940275408619958076059431162165290279132744656443118406063900134518559837639008629651927671348976188985352690077274043663100401995860245617122895403428284589325239333524979041679303148240473641335605654829877923564933345835257704962652232969854284640500084540760159758465178247702849326605586105239881475622990818885715681955816297611787723030879624546926395080215845422374459934245337370930741226384374076980714494197687011324836599843304138339509139068021981285865585656756662090055612013239852894956338766159137448566694651232078771109439379304910602254548566125833237684705668693330377833389218744239236059842954761610866360434141089801373462585953304055434111289933743025960211890341367001809413066399289630342429996345025113362378345643449673527682584723788982422494746712834473493782292112814943756413966824624740252502540496016350273866309308925238192637253389978292024629278554683110651418655362844625913616467868648008841530550167285509107945139419927444127091431833136916781568207543738301215985247420657900372369476080397154868604005912298225241526151699830460986442267494445227905879942865866031483859043791425225770414857346552432162982670671880090330939059903402206648450362371433035989287429181915589032793665338245872268317734437384264260788244767960070459223421348252421454612359394754895053520522373802707386386082775545090758330684095085861494514411292327045298784051571349290803266947960804064389244630530263359759470140229906510240579616309969112831579972543510760507089922236977420025462946272531411071492150022220822932475937973078442839157684111109291832160165471348603288375572852062079578644000777700801981644839502188801687553160254982163754458136913188004571208891728014560673758970250948742524951644859596378059650699694236656935500468215351218164055208120138166733150216318120181075268348228385593243859789118638127337909610102431080323603449682509873553768490961003425572491648089991216626025049189977422686312996135158096845509816407838882688814217993905715691927524967764495590835068827542390721766200377099401545445823013621667249203504216577219888772704583138697881758265288565128227664969340184443410751547787356729364970150152916666406985368620082744996296582726253067748062552424978618209862103788787360032342647803154049554349735173688978635885594099710314580866831559003612908750927453380641485193868332504873817404801035599529444377461952068837593060366005599552735161736671212496411292584516278790018468524629425409880304956715067849650882722748854982157056434770072645224845735316754322019352318772048421379930644356447999923853638917040336283831915215979057946816904119444167057280185854387241305740074746031733776061875363465528897959405456302904262883898596878821304183237867663185779903900139057006918760762289839097092721996236924108880747829461356945648782465206892567848506583168000625287523907640934877546492173148179444976433046966647252126108119237425535734970033729015211487736697653138660068628126082468349223295591251514083779442986822321526049855822853662858087644627753312103319830856715036193969298662954488494590669737264250287376699046300341124481018548392216848320804244646608449639682446354805101234716670351490361265639322108562791600377743900834982265632008736276685175786441816133945414603512817023336548824888565682727162416103220960029407500180765457366708460054517430962997975994213607296428377824676527799768566900293883958736451596242093363347710439724580112341555069678260382682253559636256051558611255244948526951646820586241376048340210062303476796716320320748938879830193574133962514172173923878688485155329232721886450297298706119756070671484607494524665556777662170239529576452448344320511913117835370083073408354630796269991293426912635765057897539337066023080027970995339539030662371399989430828004220547239376960314503568302713616813052727846461071507079671439293683905434275567381352082360772777675774201344018009532817786212873297509266336310150385438486807461311603315051933045985472730179468716145101809298472385854610291343713281901421864455727814760476631346943966298524258503476149197492006853695279505024968343701489681883720347485925987187156039612715008982074421476876014945860306671712355133608024927500622968057062421570397933189665382519469723694869920882073095237117662937761233673093786052411422519876602610811382692783015938328485373328321394039782225105457560649638649759817827827601503205374767772718916897783137730789123244214477472461112157546646289860150473673469559705777098969350468912516186503395408030193201916038088175445787805204623266900828081343580925064499621419831862161785431189971733937130120510100219414656241010274953653615324678649200374857846890078566795804333231067494973287571309835386253378616679486110250655940504190152777308056224595414474669400437069518404780098829111116832486701660831179846605100956799674849375554833126022369900572313217747545681241858865976441451374137340009797262275264563505624128712042452994624933127540404902136052499122589424044150159190323294089523773042581962004466654736904557068548917176824476447544387401613441742014577795265995629850991105435226975758836921743533993413035885176828611186823906045360565051515115899544150684698772528623470169661893214419982889549527287320361322773752898030380775281568041204845403851430711215928453220887471558900576659972875988847544824838386046151147071962027061889823756491162724588580406432454978017986554420356720775029384443196815122658102551348505865721872773615795867995434012988763370035804236563683403019130505512777362898805671475034929232397882632231304939875384001590964075124905458513888612874372990153922773032503209214404855288599691734626274805387552625388099089712586764144032694028006057466433797723233455543476705624924009404488247515929533217627167123340869454393455631474032196424041460768764570763285418268448914963567353919195185996835241601845110176566441550234852174389862016907979413178189888776873677975063098769780650109728141206956332675569363777992184217146884727621968774983650023126389726208812752265052488573374545205538215969886608027247761009210340605694310935323192759687137405843036159597369053801395202960401246111120183310594529334998824385254742785954780721213759646498840439602882546688373165815048896957771920277456793504839753704171296221055604699620831420050112093810648316343842852414433959168310737036754971995165929403365481937713452697130466730532297447635481694468347783838734111859322718899671005203120976341433521405947287123157436170693638397184438368981946651504408278112065933789968169181982541999800627531899309871031020625550270816277214129789862920580060547609372509092561834837553257677399861932236729423153091808294631442037211777901328497739130694603160578002985407511240078551981542311021905315545838931937121331551420532625986097770886012294825091826030282977770284594828863132772332039213573579357089129920928598367353262838935363671158367597588490591700376092089682662552553880687769307510119237697502954689961859712795198698171849304143513658903009305114549279954673960087423799201439759846230985223996689008202295211201876551548154852570266779366938443306656181200542618915324177240083464937365230392496023107650873349615260307257862121357793118102659563321079330754283003239489726830864650772014174554288274504155125983276032452195089723059890798536706595406809387743262423082089140765730020748303484420951376058218514250058085389714826853885810994532149625633841585010688363800428749975390923810315582304007782677347763048002081089526707012563631731792912267295016349384192088402189754535525175414517577371808433536576145920423894711240587624013923377716716452970143155253741081323462454177027397455281886260722702179182829912048008012787623074303147514087729946180604555442642384050167885282213154454666430727797546958139724183729925684453630348127561959207744403122016963627918083437965017770621642756132969195688482459046729142380843241573661937064702032548166061185072137698207513269030751927033647370594298575813702959216698807799175945441642550300507738090367869288783140265995735509094357375939441845814025404516695716418909334654616787093342395995220006738938815128777420542955176251982989036561246987057991041262345684565897373497821663354659923949833568927008589675646127406975313446557117576643203648199943604470531358469507604549124137109791793727958198504906173794524695579468830031171373882061656132977018906068045654682003505923060640223808213084889679070163711806683167911733596275515881332587771052093719928094871813751668230505716198128535769532642646932253856013683827470475337850834467675803453270605515732780415203677272859675350944914230482548108667810983042434981020728167154813783368146103749286123592089836519786831975956777966528288888255200999417650527507920866735096299043796427564720715645537139009495428394145899032594319702598825629180621393527251912894819850462992328333130354232781118464981971660626939340082134642323764888088726819409101562406135655742415778867347904481611126764200695471749551196860406140049077531566264046623140823714297814587376871898463908124790990813900558455477017249143372379690671705585148171975327369040759746833097751759977474447647636566896188590498976317891704220663869617839289436024242322759414296847095676918092941510297089131137902453974890732173293750817290249718942615901280485648879808374377222983605843483325737933266991054952885592726275891446114301275089051766407019062971685049669364518555208127149163755086126570475406066724655072391909674236086376190173786121074864494567356725423316106681043544828522664214944912607993331286236121332088724971568967315702040009394712822604057054271242774052470218828019782441213927330055107913804265057817323463382883692338605926422492898327003892134310324982843501188001516501250597194979770085775299998235075712234168499407429716151889232770967987560291844147029080804893837945772079861130009200358298517967230742501567402829238392805901380155783338573728325261383356733102161237623434889634547252635963679572212973780402951970115826223982937149990766204004729081207776931221681071221263981818457588164637697928298611184168423442654362090111220559226435340029940697246962602207217523310896655992123500713105913874304005535085785849514790265484019685160715977741889745044983592336483782500368574172911530526330632571263819282795638661722905066606273560600730134384299664818261527916985225983262704022747508596383334747578601137382489196877693344134327929273950607727783341931468712145276457789173431811016309812541227671733408070245356852529850250003341028142246276658824293837103992373269309879989875840502633975708663765600004463312330445540385662999240028255223655953018396783608887927757580687031684962415752839996485380331127296495564598296364773972468289529600955875424305929496622565289974832205247911486636596954676277863681695844735518331747399472406603491825415544345907522882862676139657430232853286611427553020129646887648217084189626254903885079882578413501257563441805244184818735157617148014903376699403041185462402579524023165203327050850606267557742737139796985296475168579728206046060100849283074066951816289826631456132361495498589136429508567150159898706559119033995109480369468715913005052064339285840476535230446578876452968765521155836686405522170638836519847175825559735228515843876042576459394322474690831470525743006673788588231213056212404705619370904658204066849883288251348083830392728002635043700755527875428043729543534317507484485768187601565105748389876502852986766147129020351781323802722411597999715037160233457668022218060788427566361105818673690075425811690451908821585240567239728455647468770439342458820954013087424226021506807225317026525228745870094654113861089478583309207221011396626358924625791416082304573266901963922079394043761455824236995626603245639407982431437006407235314014783353161402651033993691668691983954625140187086495210227092135803879498227255043284437606206266865932218229713453272467788527728306239019618144652812413941108329679750959238141921878753884859687973560062207451543755232848624483081511861983799645954849351196959874201681797335263314087419487843770956486558275471204396914823347401886862878376994154619906312109621500619087053843700261503763367524546720839803837206832149193209100458004060990959606862682164805932387196046063423100560683538998656922873899624003209521052915188461739838414128342629818712401193717491432120456915407825340254142789249054889941613151704244377178206198846904896939553454753859301857189095787343338426952208881127517857634121036845234886354337617969622680436073702751568244286893151712629300326574253196205488585640995418058350368754370228930249573548294714191368597718841929889270820243244010746306467496219528475776906587364965846351248174438421063838172787708745049511765567490087664665144743401603091206022136868219789593171363482374026437627502517837564341504727762734729488966195372764154718211840980570860477136319055739041414269187009662133816623799639777083223259065994213304355631609367763617586976818623776117453188575508885926770144651120871016263846164671364486777345601892581846396470624704694020924813622050567035114180905268893225954462446210065703535060960753636055063370890223176935596721003599957022724716467288659156228929511733984250493306239686811671285430590014374009736588317113651707124968074519483288380225196106005171762539551263847361773712648570816787799127123156907999079436862671470956490028065868370463318447128562082255728509854288902867025610927152087959060709056775030801418445689415695141534935320811254210388620797265147512218880382802617684405394720167788092229479694215143378806618888665395372005397918694431781174601087100122938967216139320479139419386799362461115799420816521915302313751123905248748296625836708754551359737026607426339686497543121275297177856714110130471772442663811592965279347604812513499031316298727460109961442437063728849968584972041499733093222291090082234088538505616104573754913276783358884317716094702993746034803519371395559941812744842397157604182248792141910516741396212697004950603336105802287127702713286706541757271156054378504865790728675556921451820017567830109948241078051971074484300514726098506138113947389202246745810666235563197828200806128653731473714808259046137029712190092535058028428562079106519849450339896973507281070739378551797194835791317426676354053418438181331920135840104452226842492928774959420316703708663967903491941309668901085881708040755281157781098608062097405272789207786523914251429209766402332162387608617178318169472183106718696088755217281116308847082650341138351991671925218721278074974471077462519075463269859803293758995201550131654250249225372732929837831821729231649782221518585684119838451965990545218832080357256117559138671233541347852835194428985294413106589438635590096404158291776279020701477759668848671052249819514853475217114978195432644530690633007974697421921699261555169899565708412779442694517780967800535187613028140627080248979623723865324293294261102867650444159629398737835819204730231049240437051681572832587164079443649068293576272496038070141236573085787765342503606591453116787511762646796673837139250380499725582409447875609965928148696825510777164685040694015987724377980545885372155512510756616710743479153455620854619964166654883463489451283274181655477234226264981684418425000048393732791865104274752874599292710325299991401143391030275256953125575998920980988347172395639933073345488688169832105934407479326619718721569805132338961182675664772336518816166068299612760071167364756853615294055303784519064982006907056584878056362991279657192533449118695044987301305364718557836583498984013081359126649170721404515721066955446490396423857453750524131894409050623988482636508601045558287535729655379588540818886987045825817641909677126661558398973326002365372903245538064042340026272036296625986510806197426964144163278076764135006467442806760419767911782508058355629309230333394815951317775159633065222416116714558904749421747515382852457298258567938221802588316028490659486561062450433230577822326719245311759246261684679509836513878894956323443723945780934639226073566550808209787800513478966365411119936508365797003245092848245079244187398605416975007968935093493205268767254987472805108259202486552204418179757139600151190071024854394507196101032695194090994795152513823803094224489703610836225070605008790946087794075365495563691693281913102946964583601653118858850596820235924281060925726106603177354911184455361732930266426150398885730901919387357062816148491354420283412631191684462544105867281270266592774995972581988689281652501076722772204903746997066628609573277318959341524747216593098688873259921540994585834754966160857441564013490971693519333283088136756737671426879022081546807945083621224818803482805766218338769826212537025949557154814523385537699892767456244365072909624997666317761809530490890946160648114579636135473110725124540268971181373584526998729876598360484206355520786321567186230004905583823291587386189297206517916389419427016889054197249715330968724573640165862365880341105010630659600376810632510476930767036346953015915899310749414764465275610250617072903286684646226221551122764197299250640850814445912489708987398530832333638865956445122204312697891498033391283782349913448967497279831437493038552156575606934000342608342600676187493517396574561315608470172098963053231647213258922283358819721924346677089516955076189214863436528174085119123728126177279174753528593563947710793218543824630088926189728598749098318017844569195295719893097744273888276816714347709939951717636167615657031022525653538417468387358543468435939447381178109966221943480412008364483209060368375468816938657730015759301388521023555438699611100156995158059588623656336730639300297979660967275380720054870237570231722640010105424327088863870690752189070543248970959880956879813643533819579936343628837638848298644247714979540385113900281777761961461312929114388949655478139144686118582202724603201726544673217007895632484801972390631046683395061368971696370373698843590728984830225441671891555165830536266898400700236653036221822230430620544685333642546921399586323655840263066532892161727351051108776972295121257731529636808265014809692103034070753164681389934371462034329531444862724245928580578766254247560551518717633864512545660852556811897407751205543119079318678441038951892910847033170890066454158218404379210466873658434905201330018777081970004215245555153409396865319812698580319455015583446780371013870935096048885650307060860529933486808231216663598789294194834089714778386069637858580873209953878420180132408659198824988436633067340836348934578875288952078873215265502656705121704311531462763287831213460838608804891478710633700468535035168602555235206686139701530511334347718210132461591800608647019924293416683311958636532855869726221695910467819690674333207817181534493819797492190844278157082647742469605230983550623002529879917712937416006335363530349705081228008022300569194664630462607278648957265983095187674857212158593727501859414192132350924651197153886042438729248520006856968673466278058407926110063418037279855078758836352937678055177552459883574594852849382103566135751625913104391949377894990475752249110575925513032376287908554187496376967319036988900864081438847759755003756102904309819955093703856465375613276074324585462762446918699650282997167501953493199074395095836689172139570159271532828372848337631954966349710605371460972198467335826417983388392354937034138423588189378238549202611408630277869370412502322210849842599224814941451734028416897620966064783960405332775219283619892874947444226608485239856388840880614751714420741882563054663422501181704967865474149241096620746856369499314214576769087503021531209303647039233057812977541382583672905089884652156348051606881931793670093077671301057143568473158640943334981223284237843881744103084219126030744045367118191385721705621030240950483314207626761505497759399751531173936865648312252531823782246513899452623443296254107123494015878113123558675333900576606062397041856472673644951132860951481719258115742968907532571519831374917676630838820882544651580896568561545785790971423517025013666286832862878498790067172201782975795212183384049154287560578409305977769119421049104547998399504229814146014743330454030617583244166141362439649096814576049075866299947077408143291443179179313242408461584029361891480509526758670891154423487417072806197742717716972721623079320292837200999241709461730131988596035396187703334468981771483922147512867259867927098569759270979320743886081073430543390833028890926011267964892410288900973153291898551840441089572635729673189028023486175782830060616771473869045623735687442108126608464755985266823602062717541918107222013488275326643367109918407476473224534379592161579300636321073445594761588118066309150377985886177919963671226070980643004238527695184432262293577655396576839371100261249732713507588888122774995660232647721899376067150951224221260015947520681427320325131379819707291604338612373529397947100384277508613799137250264972443151154103738730471764199897526897260139461845800677213243807698740106780892024273124696349604623114281004056157425151633547992307540152285623617045917662565814764215374319311872848517444144441418681937799010906823464325851433767660971300634808524630864088541901558195346774412900799087110090221323581095527849953074569357487009920238825940028304589483760362708361539912473658897149431803401665137298844238393714944490604812337260030957835829133511549578565048529179232423647674711256547573658745970343166835785638378874651434479592088753607212931842447541686743645947735800654092568049537797388072728917589701141571101483013295195653655135320601352214105851161304675570846629983667399304750479212965896944951472603307743467173714965881822974647747935457006623703086347716608315587287313919741396093246551557865342275850776791329752586251152040689725125894158024146150793245350245660853876194491791342966938418906954110354550930521291914594581338436005150996487692173600518403269914808181146379444881838062323312469491081551722521679080927509678460691365326331988780787020095582755618966502436681748391459041475142477137485185417060744594312172343048658698397653426385382340859335249200975438941933914922678760255241876912074508398116624044164796848674317676303044058165243216127311132735464113136516175278304914777010171846096113405030283121928899248205541417726067821903355479522191929373844658888950473016711876301867764061671863171361194760274670867030441296671301092739054290007930898031418999078283660952966154786729752815805644906697980226676239060495777895595713681904543171607624676591293495409933590790284575980001868384844686318993563993373663467724934391051573452560984466343013127550452141353490280368491575541895911475396165309396386142069347844637979817862665497350029804278345071296778834834567081711796324731878422463466971201531640628135599243455427683740502508194364716433552742729717308608648029149781024595525046663618748876390346676203659744083982527923468590065930315366812408424214002012995145146404891046633663093721178822431534128826137706751033701891989700607769637850013272213969940479163451853162484940682313006702924772701943455642306373916011454227624967584150958038124379883170442590581289672437158042350562061348748973381288827948507750455942422010394401134072759369943944501247786602899608342713082377259582641166461091401867261243481041159748962824254729488750089593957870219606412764094830929538636274628090971728636543216919615379996437471086380431842823225359496040350494816431851206275821468536750207064735034644584273585443271590025067213200713829656385674434422396704592275142602655989193560273498615223334338934163781193162195782262881165430000303254401445509609975972280234909160395419846001573427638771078978936807636152997756793370748174088418749545314501014777006325896741540852060018163830049264762824035001152344413452293478310888687106541604204589617254738136735690064526048279279745471860702571170492202735975369099507566488979607665547965821721322301665333990501250039927792275820911841235476247553450838277007104619319862995091008809036871986515535420444313020252108849026308376766099801732872154202256219577561749767697384231233459422863361725931603582517410226506572650342507245436773074710936200167336761978149915933751334671313263949031834517797931269799760969270409004888163551561921748610145750329593290987350750025051677821059286396718651365043815612767364656251102768973183716486943550853295405087447692824265541810639525475222189264953345600914926173415204215155686304651420050360396795823628358739443689447657068026432937097603109900753324594410259275769043636100430450091016866594353052498779260693758015651556718900919682725887999427313686204479809819827099773920302511130082632539893516771928936170910941871677328465616946264892967937991806910844630398508782281422272282124901522569759120900923866822461448716077341463340835769336682986530670092317188127431613241331711823417532797447704104554107069879850007564838008176034761716691576868492633332251735194836427713910877447595215465952448864285012337921415372085151406909430266716280558906575021048764817997703939276782473149000914019281412129378048006139235022173924510393832432951511187228597196444184607202312760558215051983636449743313784943090796283835495741802508347564847409789332614588738343993060372688594417218208785349698225964120244958813798817746830116443293371094057880039699771670928876309188699510107513792706485715842258568386368736416025947343009803171669471911086182105219675397708354604768414158146917898731403943114666525007965113890307930579953080065155839508384031351972053835311759173636554771388506983145086217431595336075922196799165908374432498289207398249302803898918019286856646900742143749417181488901669934442807945099702665897827685727020973841460743602201648097444935424177888390568522837352126861340389125772833826392390215370276838173930865864978518533471284499619129881538329123817455189921273018708420638313989594173814853584500053753015619160955757082995909068538136809385183159764022596573729476590175745884291615130958220831355844647441134774311343627438225171061600770362171000283240407678062280383375471451713073219274645928443146335890060283745422695518508163052342488689803400694476934593191613581335222052283779357143547696351342851260182158156173985122744533979393671186065447122817407124614454232734566410470398061309660191248693130468792407396600359593919428161570441439438224394028369044863373193092363594387178944095687072237415533799130404925172830238970544172745337826537394518016602843594995990395161499785235961670687689915780144434259535477914100872389268500513628985518670965519402048066016846612998125291546764423649225578850743845688976399015543912162371854056269361812734969051381318899568174111610494648241817387379416776561448706008720651467470942309666061227609846845930180419927743308488884291631125659649539329767224299526411555257539516010699953747865331783540318604299109991727572362023634768839677567040188873857706989845016978479924355749268392257067508887203976122185176193143422411477778332166425874448645676427136762329805730588935821343236646658322286402735449764945362640184111786047121988952382807753105568451179442742646971478624609368746546229581239419916498955670850178961879095383140597181386122682216577318516163211665265202589573065178744527317779221426857822829099610452062324896366711532313002190394603552995200130121183923309502156870195710047181923157388181097307208417691301197584887232456263221486587682732680756703125525216768555917039335851698407431173838398348787497360261899741447246318572874589015203305815551552242935969889871837108025074053058099471883058768931309566671988477078120889431402619866463205859029546259732269424599049369943839567658127278602502441472786384689201239215938694745484877345778942363886934407614916243636936154325810662807929269017082099699368691939302152802748336300278641261729715927338179013449107558461102386414080274919320169966659540120465784947471481110831899985806694335051815866040028973154285851505201631355944078298096876946926609019638160586623570885610748988384793008520303223779689038660574870482806098727938695591404452053093551597267991755162138630860244206551358474484236391669233952935131351262515735366947180093384249010632103172323322819902866802403765037386324071749026725911542369386771030982979491709332100053162842053213147978236972867669194716368975618606466982847782598912517794750269169793054902843039962507310295845738756409080977187239288715179741584136231699426787522202263733133109688670634034757422256665644570948274965500657044056494082902104620556901376642686567361346681488019934424464186655333032840056162624056618631399305972458192391701501076718340819984773137009004129425415867849114962721967639755406776503278558562867256639301450351681127968819451810136886300299538237091364233827376852569823802154416125410119614084246074636751951732362014031127150999712511042453902146178325228861517792395995157910634320406400544422939702655420296904300661977486618509336007498069670685944522348333340431012885615229173573572905265176835248617967648697234139294753054047680459073289465321557295257152462763723530127438846316546385903661078078050500959442044778622069917974968926678761612233368296255128862844555319019964328063333538245267232024056097901985136878677999202236528490547435906896040576586375273305350464985280068035335551554502145481877184443754271629919434225221262003383174914125632253455344561284720765940468332622438505156730558645089266242185146631398083745550172460433459903917527862781434412029629567962326315939952782629994991570061716314650364975375557205653395832623523818523172125453180852555780188129408060420429367991000721870855558883942861635727540840121298201100307311165515807205095213524348081826491564375528107165227262503425601660711226107046752631754652087716152263153183732354816686972869588924014663707078829437615369486186587678521277722567739362108959898635539577375348381999556860665216279185216776901878852808388651565704539694327936737071698573760619270817738875404736644217466794518034447623252377631934057999408690173116220180241926535362000307543181454252152599824211430395129130076797278230811419629348217172939464285356202644860268987100214813999878797678115210240020212957498507974992831667238210198654863811576978685871276991049000031489810108642837819644708848580625631700062457090917158290102167514217734897980117313006853498071387205220895069344145818395255659426973895266924597001511398492223994663596629517943668858510216959971352127370188549465836989665258242807247359981136993008259345955916711806374398091785553364139803630259248182686577513933765860794078466896619555766421936103727146603217308943255832232346361461764380401643943981311039274027944065451590727117459132417957292225693812184605324176418468950748340739305330929670574510677343418224383090883834414851009817163881518087318395235329020044239726996714914019358612957208115347566743177408789080358710725320118388739969283506167538706957649881952352361434133867815925844229307627480119485707015264568551036767503463786168965150185243173667089030007454197116848860156521046997151330875411984082988062689125610419933897553157729568915154556520800786379648672829254122064093874174727697762936865175678177872461394405508739597157090848786063934091748610464835461633216795505295103560932232239378753092331395363102297164100912261674137271197255165076806609893229397439248730877163133234553673334767898889755517367788363360641912734090847117572914548743775836175236872303385467233518717306825765121655343858987701893054117301013114927440861258833601564476728930037126476006987220269100580669279587951543784706099403826267635423927087638993010939213495188310696650581665829282055032855759911744044992475324885924598664217190231442272133903097925457979277226313419741576955146076336534198251022479593658240026488737219900978880760315637603471642542840449384671708388358564511347590092270580782316711012500394245007954660147860424375488825885570843424661950007340842461182657768351243501446823455668735469753732752365288215304721237929981560827479499455788792369701245860361377271062493997087226349893521037351894369529676976209528270437262931386223947598518320688412184387933347263765377428104175571358440815829390144148705710187435220499043221703552830207672712014324875376679907203782242865225702710626770622521004729578702557461893355900012931629702481037201635637385583515869007296279612520510149653882756410596453007635949416887623624784936325983223169252922294301159943644049483465408348015659361876916262799522938875739065875839003673451701729308530115790979802082667587765519268239460531911729337228463108110924843798007034815567948550285650228746286563282743093975071268765921181195152541737210854978084425259386245566745945929093284547136839120747681456133166996198426905133734922123673846510908189069322042376191201000425032008247326120961125272212243768465125271078308464858618073336544580471999276073503270609804680225488321796085083118547952553900756594514968224215361291541933062099994145881497477377659557721518683620004134191247928112908774367917668369879406427829311080338995807516491755791265392078089695500638852375446238118682405976306331761675231029930991441591028114269878806262805763061250020852250886477506343398629483766984059529329547227529741949890455254516861842116352920378474451565142411110049586934936207513655842925867932038766633002355769498807316950171771275313243175217422063981945546391753478918344078887976621991534425240982862556326939726722441896080026998986244889100702634861100573614825188759757854577868342199074791932134500613163701772622753588247456310185921302635781778088851703528518840265275131413073651185169635251643364350438335461246671538811480981810474893801246006094090992814517728700984712101154853840718013932613386058337518333154222515875772920037677404734477355904747833472919569905175246562847370085754336501351473919444189199207947550837411342556860912855879083270092116866599025643474875938305865157581369257888500443851664785868896476455889959909487465416733199853254638077642998795563918792691928869637149316852231571778274591021028509305345317128665916693822721266345781156134840232438735239046651411973720707224801292795396381666804360130512538596606761748013406025351569055643556981310600777954539225927570892369673097918678553763471192617336727828417004433960023001357625071513402739710143094594574531649484626138173799026697812690328321502837284361316991768285962575131992285529689324039076911141157041750715180495175729724527915780972023849396888105679557089118088359609893622773985875350323801882160241793132310774864827110258259702524431651228281764686274510357574064099531726247253575033663126474141660976971472510017859355702877615868532854296918339391234202334912344698742644950730964451362865503354579920572581993258615674384107927582649869451784641393184911343808047861658182854035812693812077649016604050831710674219850245516920992824413387350452444161438417437088152742393684929046015084481576766411975285940791992162819984378646271456396891777585771159492564097445193691804005653482886450080375197646900254711412783533942430953575512717896708951519072504432428096418304902072600322085590964060334254300323161420751247156335531436319916740156234129733641365696143149438686859326951856384589227671392995132712795160033391617051330252564698787450687842301659223139283157922502052687802916907875429308563532806554446389769718714264797102844000315322081966509155640654263870883111492852345722443112292847722279352179111349423409760153352030994406735249560918842890774670469771878690212219154276817030375095958706861412585113566062226961171368111640486981729951717390647560454544383373535894183443653889247087939337102475883922049415876772348051703052715334525774064234323728748499827731253247959745507800173142381130633279871457658486868731272316517294119049417147314180320570000701659210614497730664153488564547053069572659573879358475049361973122672604248803846200223764851504986756832138639643060258240996386068146188364723608209602458959210726969575502481260609461188924860321572332001844202735918849341770873418205161436749662456096269350446293912063128684072810604869396190958059155177412571635291638374641918484695041831176501341557946244274660429060691889885971514185204419821637517580479207066914749260757277389859434012646513817537447171014677389350288080254667909380085967475139813446436791019445065833284032010789642955450746798777609465336069308721556295833927996325765017025556898317797105139170170294121780467926565555071949464177572511797547121692020656330681700480698523131867637001286377981519577817777835222839922457093740857122066940806009014756700146837774762529842528198399812350846191095731077531013480308285162868389630674207319316766125159423243665248010468668810546172463624260577824678891785470060217781174284069188900748097616643864695741936035833105657901975813741566507482575426635665541992652379502814796086469222618339022237855862020528849392362644265190179240928131149062350734640536934121181179927325008609968661399853418858278590600194217990198251760750729732492833058433281279086215634996809500263401111921557189294800858058087201594512822047383054810528628909180043680205217993907660439403641742845500654020772321601696999342966357868565813004849944524879963133232555966199633693588089641709943561592386288204841010504112020981824391513149987198755242839309870778316860352547251234829075351274535638541859417827574981881301924380113370667506486659265754521919920997133149557125793906355820964696288395238639867771161131663882969776331847229413607072039307367982536651384784347616996730637010959657080292139799933686481423217531540068537787443280440790099218507804598340976432297087185363046204632606922730222612847872634695706166518665963545271242901245838898031252038144577513792410785203369887525754799410153529364872336299931501859598013177217192753938364400963744456763304501547716381091404930600388310143697486060773488631676182978174391908821021823734045833191381207558799160262760705203561835052751992167108433020719146996748538746908018760831640004179940030023166618352199091942445484772250747743240268062017312364688037501476154704410336987849160680037156927586750512008908206826374967322502272702671693839606356488396518602889424154131701844327042746402701339441096036519088069146834854335792844895936639012697866143121912432394765582806240410981772382066910694782612791200318361067847247702995259840985452222378592052341955268880962494132130581861128861240799216608044422206710667509032052044978848073874426448396319122396341092124023970054526935127864596123693243377944633165368483236376024672878410420989972389920958437501559423168217903034855190464586602987121243776405944248535384894791945233602855821251857492843980246834843514209964975589337946142724626449151200912567406609195547619450187809724685921762765091609224094951255984049559253883660270070127185835136772158749399137147867862343138755057402346213482193251167954899550869812110181513253779032195996237350782201093223314923245503637258433707489428706496966958653654657549312268756884486915759420480911557916078347433328081819613743382854003259842293847617315677270263798495645197018104817189044116943979569019774611726798296761078177222022347741001331321040879530195166355584860749150155250515682259797594965268055340632316232319261985034572781311783807467884043121191417172245172867367330723827382467031241489064044167686249850524996150790598378465738353530834116634701134292934880338283699619467737730188932969418178822127067845826945389130796479938625894304946707604561949898640018270157800332472022856141442170622926310241658266050918220509024040237644011199026054058300898635081210895855280523393034519536963733617255119492958596174505270473733610247501151962513078140737567829666961150900285887043434766725374530504832988326640052522547297119757962798714413170011380871412866443243767225376740491625269197142686104326993879453161994310167255255487363593081336921780787979757343043149109330278541401652516482597525100403536426797616356096780867807767549111641282479296141001360661962854190732575649662743174602393753879650503222025199755152862103949989748571955665130122771407243683494387742872657805115750891503022876666174743039436459684128654513301674969575277639297702964117750699095102266345987091140962257651633250767321059489596935373452545445643612938750150168470912836823646125493510687265670425577662863145087154559730148966813433691905586754713850329649236532100734809447612924063268049772480530085873396957399057936234888844914318002530977675510540279823617005169070161962641356820126308000375739403007568674362574363547706280490892920480795971914208454160819259864377602776762015260299451216339468535680290343636520052458813898619244884533399555435344870538921799517192313090092634129707652149110478949458617991404775861754865466032955836185856182419727176736535571113151933209000940705769561320446776807707782229125678899495401824299086831808752226641190527842250332987588826662710438893877703024133461757033676171328473264076290225166772479612614415841181856630583145327702229110859920813518218121982939082413760077193069507857002846231900477240373021419224458735404020824057946114474697722732545195330557230614360512727257061667054114365250150021728311484086047888063508301741716413427522022372763475701732238007133937778333411805297158258693892481084503107097045768075449526753529011033168495623573593478797113047348297131278931514303189302152518802101825856796385455367206679525399335193056049452907941708872319823674847264792673870425767246351245723235133025388622446509867639173380915756574631679458183379099558664628456783120705035426140077684178353915445258795244217806610208132506285195005905948604674013536774330485086928684686457663722920022139798885432915146542942537588151356644580674424266482218519529994082073815726770425423183422750025781390884135758892495498252516469315772858310779772352338368690339091802799315720737708673994392405421675153658512682013638448777811600350267446534667897424016416228881680910484480611717015186528595320552035624560269724518584500480983324121336347284950192193508363818194879521433864132674930667890822795847553918893341852630842438326840059466724317384153813375627998599868036842516631727783078429499732016013167575030346201284793783176477827303288517024307942999832218188931166010853599367262056611082078714946431335078290990297172310779033857218101507879668302724257452389102088495859456805926651074309750426123618435558093783048808161635314332675941490566896561761001302239860530567880084497127873606166342796830943665174855346661658499599906541114545784331423365542608277954243855439219771507400262021295045408225124996267343951371498981997143161885557178131666672870635501810226536626417417350992623793678604876628285584562290503548093396093756816558971759603367638478851178958222283556176265914597460734003842749186874339346288344090628130257660089119690768247246223608607854290388318069927861531900983264740431960808744404617946996382244128071506708050056891737749131184839131621916035913554266080241157822166161472767155361189751040702456029880968327880642397900595171701641639185795861632174014577017480657103368312484635673384125097707124126445774051276872064158625902489235447917377280324622731071953405389944056144232937550472474221698399457320700051599717510282699582994031707669084380915052824518479742685453336607973146983138612525028136644851333668636096464150016989997685833782660364543561787053822626721869120726462015733421165367181800837755840515612282874731852755501179899409374215360991454817858059610019320256283758267639811389037794446029516825271382717484735996481219987391090327782914590705277555733556907217561946723285789072751941822227675834901939032504874784882001106125770293666849476901077241590422050227145829470879337763594463748918884750064961379906663004851616585675658492234270979004667848349832476387182925222430834953643078660130993442663810808536912040065270961943382982998055626573678926422640676447926584821039339159837756256375232221453374974279346745113495816894210341959972052288410311467211668305800226387423035771471045643031685489330187934686545382527122713846321881965977224359437648212185839157762493075784974293357882282143645911228691019279623710204520052027022679215021568053605892644154570731137795055926049417866617490960763451071601024508296316479516371111355909865538701628072705243225676951806541390552038982344999900401874223042970121548509111753629736180142433115389254853701162619858463336190559277027410928366317269251690245852637880692538507730439154890065921037104811867876148906050948332766309922113334894628742053879098955376982494448291380106972585342123246575162402114430517249267377780905805617458409525622564335985084820149412466312404805560702730152785352867222240066442086471613380281284955942297030318298538141010632535914905915612419988577666999260212992683668507099308362811501807029950980803126128501722893835237054924636512663848444156777050897365673233312048413101258876155266317439777444291147065443737404699448277110881062583634840928594612333321819317057814045219515048974742124840488727226626547829936269943985472834663963310621467041019260079290676386726211914611983037063466299855852212432757832077647507150619591974985360025481974986981292891854202841785617146292639007989330687708885625915565339739971542293542116521069209946602100747865810074696609273011080757061042645810463422062654860197165348288403845808313218448556493414631980259511797615400442127356900475249934978584457107680876691053048897037509898592562481293878359128309290235313501557264245543914452974709240917841392369119909296253371954818188023566913236314763287873097775338275105169299402660895807928042803983179450001423493207767413464148969802343689265684104894859925143498076710852107723434712537984388072171224954396719564113025929115557194730938833067401874767618253652440158206176306459829522488289072003809900368131070434496030249965638227614935563947466709056711204037608070519675122545300898370802538781535523251973432363729513277875087682430792614202538994971304489903517095390047505875342939555877937070186716328587666192457036351200962117062701344248481018408237936501576652642663558659673435057856379372420723240083972935579486943278495644728731550707062943371322769138687864507786194995037856544739249564850883658159826179980359318596708056010101970372751768503256160475729623360805259971687389886258003709448425546332682619697820859074547496322427264655624495869203282944036894470246772188850443278030732382278134060834636341533887178003577251291967288189179398859917416418776911865280070114145533409506263078939789834897121592552207498638963023501799100629713189064561759092795353667574634875459087473668164342559871992400856817298685439717610867170956676583553224398374204018213865994315166929505447914532799335073770948548280302500821520311521130300216311605514184113542869672162006428319931135060415476459314993193834154514896341709338481224222617361755276200543548627070260690973448701794270393389339922331288454524682784576453497190279511732512464157220758386127352830152187321733579807668518049158031834062178749117108118557547859369270166948447071566538806469718045131547037168064881073029393920312611650712795695135888805040569374905576394341344674518907560371063498860610890461202034486259646064372076994086399258722120785967990921605238075513909995638915549914290600250032528356011449627788755268148550994031684717843247120756534245837258682101709843476787780116692393900242082567794166781424843825224265750044284562463048207308297974104591134875050136335265844497465494395785324721591000172867754063349279921319982515403447744016300286416847477881892411764420317248284415086597711935969684853428269143637470779905780411573310162080508954865684082027268187708096959928404824952111923285186845170184658978890898420301354580247229359085232211385961825813618946856886501116707326468881535000440918957449148228322365777421530049365813059364066727090278179713058880015200633199150152988316529394404308013832377728076743020430214959442792438564195726450216811081894273118026751529685011102563782785754165144155565144210357369573394098726305811344488422406244155499113353087915760067547529542718686036225133228642630884876006851273968457864413869867113421105819624868130172778761197160489890084550726628985502084137015130701442028255394387794729556122811402064375329274712828653210975922210924005283180370837489545524217467649099927130645552800297504611981699745016701472643238687180294640881313850024020002480399070383355666949921666658966442899198380895106386902817095768722702072010952525318229462396988377382264484347590151371362999450515332771106569255411886473444510210128687857939639962648627456549668958493951394546338972223413012737968983316302987483849014299233287234316106832390293816364575942772724964591684042328383697011346461665234440905049417753723064472828036178090845232038662803340996002694358240154852307454817442496958263940666953065696377467809308755882171733297178023116493437342312487653279579766729369241838076372378185572672425445683824694521470059079475870726696145847119177334093604234851317606631486170344545631988299883719088870353103087142416611052186832632544530887000162197294984757657519428807727146694490161100678483974391546324542419369767699142376174426116106749471934940942886864249645294507888228390843454275458732682795029579270793222369846848879560988944373127155480695146161055160108358433251890767514840304029193234884329662167083749137824604179012619789019359557119515039140831979728521981784330601315323352582549191311353865426449214497437341966272386630086057527993050178358263983922733621075933420143375463077211887616732131967198172626349957391398066078866105107186179871146329935945261863831913081055426237560352448154932640976449379007606801498978288467271987877415336398949940933576560153213061528858317641562892579002845058059623961423462407876356775619039777781672769568589950457160320776402679595340989818237099765138981799150577002599535050932039567279548980125652175846499721011398604162282337582229459132722184892115655910850346437504310111834801269432118547252115272801139689800916957616385368724423462711309521380634018985563012159067936838880213296156793640508164341611826316604220471203188135929723517551004340699596125025698039686882600251535411808547920735754023533005601422564380250404181574259548693822867257346586962342446371811374969012942030077407593368800063722910736355589435111185493913245420059242606534184049665051124266355455749509121100193042028283608877424894421806887776710841727201435138533558863471658513468923115194551063911532344815828410499397342850582507835540437777497084082964930138335163292044860778326434524781803711218157087764271078343715113807663070618368484562646759839467320227485391365356253123492439462556405219189491330439398291852628543748540788020516991944331196616959617081338088662713423589192042832444812327649322478118718157178738025901624682260344073604172888508896581099422103278777277783292403249202587393253169122762520184560162525728441343365628312293466065168475772829952932370319423205478102119227205548648151898263568164798387982850781236539665042404959994119815223133618189751849425443364012472941617827714365086859907330299452541748941574191806972525551602253515264618800460645113242622923242841307106495527637141388904244691086689385796338716950607073756915857475857014008786939276140164794792070637909557487538419396114544385799996102245465016689950266573754434752184052612631798297197627692149848624462465860584538579580229672244035417107994251385138124296379331903556499956768854900213314824524831609469517736201960860666507599997230403026814589059076482101051527335788347510604383431982179283451607851672705029169928342939617624557829822750645663220389104403923824351013280009208355035957239105421073624808065691938322574437103559803983854689728522130181474704247247952550469825475321718884851066254671982287798279309741037637078332977743647105934695009729308284302641105004758658011015289368167098416457233118728904238132266728216228749104460043543252913105890302253581048919961121005897918092806171376513936469782784729824672182185699370751549203783984287398642211030173372402295530267990982468188171120801211991025971531163151259530072538595374720250802051336865714642610113823627159102523287317827807074641824544774170589190889327151929921812096440680542536501758471762547685692180498603283905210114085349431026946987279493940694684148312891524143054780994982208520368475024752857811978437160936507494351279931269757911442658279167930748703399135632256067747051247239846042134358660721546230474025963764593559465410874748001425755587723522795840970640831923750278255201536784706967441673300768156411882471284242586311350220037101087936841168157106695377149501164377249232929487677708473733829264061992499278083521803261387968861880477413322944468605996007565222315383779338700480868071652021634163203029016445605211133368224557708082640065982526267947973416659703357687453359701176732682098820551255908075517780147045996395725956907290658429554327428122586590666953582435495742589937990528434170656095621802655829891074622829961146782844842466071347749152093410717686892170161039788631282272798666806361147646424945312526388703666304572088368474212000774478131093798733735506174493398266278061705487742944474608919819814686397064117158767373158924299163978401393594455125673701016900556719623073847584554197722425443940427341736139849657596089007767680916527151770474914755331593364100387577745751072651304508395915851965689588385877063352959700751992309533149352213582865436141656949501379596736555232183762853117781943111581883565991977663757987455724391236194688140255222785687017464749760391386879616991829692873337745174670324169514392539044618964392088957789775131804179078059393307282741492821693814253831498946942792203215529125752819572228504976565960522002394463782616969267675725494977418431291957623814120180014106620813872542822595109733867475160664352867837481313110057051588547620379899728871831584973835510095574880732779592809907157342904386334504409954637552020609282214816472185132833302539566744443097227522017539728631517050534517007060130480964868600326015664722474270003306331309200154761561816221070285850110896108662406981406433867141444397909872277315323274625605447958662172860072145352069015539147661721245444895229816858002643444344090399202243191161362646704864511253966848985189526551578632117831861746217320024825418958183115756908210195410846317794787994985082251452724062555683135949231403963475377422494722366241914585341616287628157045296575393739960375055285181774450874981221521981120289497511986295472121296368558099456172536550711034572187654628870575901986854062703081857861312777344465145574280832472267554340876230802267490115843209033215571467091919504066597580127035312811568063742265529357947887456162494020907277078075262931953481721459844709666372241464553101082508584619037862765792759704419308925019684569223453977081115861408733602648463708620166206633039578003142114953683696317079817859241508065253831702123720480102859616990810019987942728706822252441741423283311924706320134755428142257710000557443563686246411697312064053744353241238135078491247375637073588401992193995005579312254201935326788721744921476849809904804712418552640869201100487154852676698104093439477823287963118514019861652804927066673472796310973376210652525054499872649479140513388207818598687467793614688502521192156952849466737817616810440381232571206622244901953036901309792980725933386152934081307357608803051965604583069472721522633027729347491327950574721138437087817930793350388549599199909308523551331432052544466052682867823367436275988166056220962512902885639728377985303574089844085552467504629475269939601953186630282078382926527810596120809918790896892600029554804353565383443259647563334162941966734314030846828234513216977291898330219257349612775265944418254503731817604809312061396324872469293428711878431667472520161110211302341942374546295100132550121968031553921885425740312656538038971134736522851862228631870775223480403238339730609069879514399843931971043855463632833260166335783927652720427520727181816279258938881568827413996502942789303407709181198262532751921851410716499835399520904221379852905202481826374054382289925874073326878242704591338846850418045101833480722220979939298374035905573703279064108285306398404842879445473392729895002403083319067262239150903066769020126749988746177966740271724185175195439044999034626317370417514243049523824784660427799831182590437552136796317004388135943953514393264322143850902480363790229740330258560699260917691741149046708715987695002462410196048217786747496261177105960812162718475796904125228810028461106768843396899085136501710633716119572855327256178767801302718821146189302966283459318377628472309028497241807756658554123440562174317405084746891882083494734487450285224606692404283010552546014734771771397398005307533956749236615934392251851464619123954631810798336825316424095707498344814035529111172988370956660485823002577247944625974865365738705509138954598102009056909674562030001830709526766248592845341525946285066805566626675398159770073625307843278073934359081256027652629354040375315919660891136342662120247409652728283918949509560509022259315235850956409715434580767260683452779780883884711068529645130083643053832476357838362162415012829581440400331270505026647421778521457795270126814741591569245785181974456577083447412760325554489603948413284713786578461331669717849598486405107162479006360034588270286723708214830372732133317250956349334625546380809837432357364540562446906285179614812683352116360613791776982768920906611786436805109568533660742552186629802706927391234178791488343402041609867189286042466895836278901355518607168349758638231194262247435509340622794777601164401699710600273133097061344252436875909407626039528820431369850092993291689084718674009529587207105552689828694928102567793508793069584358228648625416560487625198788836651967989408291571575201406268723995311441004929201477287238337913680463153737370148747624048345892024644156163074228897121204860289591294337703110727155747941407194321344752747179758484196495862039226897694368669504259577892015464146788308087057778023366159960628362574357271029773745051331162747038709681800790924969055997116670087679355883304168425131673085249216122183417866767710480406380625552092130648140183448545554984922605657140602757594478708984248778490298563930104293211640219660505685902348745901192195256763758893506713555720833753903580855074952035764759544838967963611111746595104511848110976303258149541039938181336486449966024803035546221570412424517610433726101934268582188826722920965717516812433180466445193933019145828728757258851560823628787384230880274361654308226781681396321045851880502512185653334673472359847142326817536055022659813117905450786524971666747901114832189675924164552652017329058338295431190535253390607287865007974479032337458993213590470057173542929911842475267245548351435821985861485719112912946428296620671106642800771937010166364364723214630318253452207907561854806912925167736442408839675857048560880406319369874719631991815773066134643387818270939402011596626959642855115255888676179701495263922459256178714335157365380367945335631135159288316793661171331673060304790431482277240878556238105491564062901595179349439796697389467065706998467244466113720814464855976684095742557625702119745934079731025114020083215069878538472406454908562937264260616384440962964635089300914351260490706418452221188212115555242699891884702721165927021226490793544831452769875499989460592216221993242952196475755798435855876403752102253606545355530429476358389969608180386968417678791411225042334165826293000939253296815608517994715235782344794730742612168116815388227644660752687356362465843063571750288266071509443165058940665718404081234070387116828363334577494896851522446103525119022035138433272349982987262964690912112755004253221264107759149843229185638417124629362333066099697871323710681582853644604998072519645160662123558996090809537867971986986584011228870099532301925491282396921443737556957574168544706156507077404217796418571606406259260710680308028030506486021945078726354486025690308740366525050457060734771563344796034385677299859251492868287613242610805064406767904490630759218928781303037229226743137239737715308192615413793148419496722271867005652130084825100594897199132150970313000604884892858521881173054771208316811283229721389098433213742967614064396376083368720755505539891360116074058426336351798101375470898304772559339907821016000842427561531490580883949110566126728939871389168831311777439922686735287410173579566935908712193820239477330511545911966035763922898885011061616053487159268282736796403019737574653015731063719774360850804040818986494475050913271529761968568390686388397410502657397616566405425422043492005832440260406424280573034867047676742885901991913256511986026591432948306864340119100357951900656349148624197581028436313134341372755484016922040274540017224834847973975521049321508561579667361374154716037643105994080357857214345295134558720742139869543991779277080210012693658728155271711536659475914152555450275597360893317442761396560653939508293707694172746498204696325511644637305295101860410403295609443384921579445398716598998075365426245020643635992212010477045162982818687046763992849352491195095158164210142316346084921041746792814321308512486727987438549707788124009915561243358614088397223400563731611857759706120555107100278275273960351520860522046842547296224514576694193006790921032547252263525906330051557878451318184587055086622468188576505236575131136884766182249943955203907674979492716125430405969294392017277706134888690839285244514604582034936323251876738831737198618714215154357139323305602542712138638332887545951696119743456286806928220209516617753614052436552284092530959307059517959556061253440070301413188801221049561412077538242605590967161050449012151027953675492462019043336340570179670407264667360403914242133123094498544575664498156092212011652801276703984066598435769586700668410796540743440303354092262370915518590401407781950151413022069250515977904239707791337096698070006322931313319047859351233839428195902665418573675991257558901769588591121142902795418049083042813115569738554451303179502286956753776761415641345105323810875771954935957105638223253602360125155091107763064982153058382277356386867367749204606846194683453550151305412951564206683197702022226644662212448021526993100584047074183130529734259755325610872439433623595048363931527032119189934182508754883589666802713520441893701772291676686717488682968105702214025567635201946842219432820063027081483129856679085896697654562252494512728169994970214677213596092557743743139911631555020253090379256213020126765141596406453084034729214457416033738706631753736164645977542264154901938491609725148418796035538122115098981927100362873866091566072412136088497116525678365306715951228496084238510403709275208716941081658829986006729161430716964478984769900758807140494273489951893212630724606236279631652133144081581818871779733876794995162885476593978770685473138028891892611481393881647030311175858891467885432214309691578250067779465791890840925389285730913868188078715642103419293296486470276542060403688059523524286224306392235602571744598392479824419409571461910621035017631298731113318077872816342543917800253352369191497360389014186627858902155855017490864430264377629756678174404667252615403273442697124614353763495894301578555464077140975306798407748662268910981017244797749370476513987366701048906819590825175181380365795801940653657702824422454235295882994354938151461051348216561129134219515216940259551863387042095168958209821328092507730835421396009990248507418246925435160200578913119361879307316027348106746211489633473391148312205178475074220951759599995357394495438328922777704721606806464070359234597495214120255242876897691238738262071096769779370961822128979187978210997356918104854077275392149581460300583288049696663018648706541515547432089387977370420689197801229872491363019445659971191083807312332850773628587191947992667558678270705611643788901000143544416169335544460589179291181178412507653850303673821519423241687071023473755531678419743966744621099612901182929870477472413564512184468196535325012752411646764087620585965987194166303528053514523840274848827413057717359232649180657347299263287228772741771154652276255698852363983842832701606357872564253659700361383774973563941713532415769182919298109172381066338748871683305637099258905538135637757013412644808190672870328189676206715482016407853369015903771762597538454766623396162689746620017889313064153095290535772405071755539759860874450223657908130780564716153220981876396800481051309026441229341418166717056554337827970574561813854395782208854662528409458687216550723539633846247549313261904836461813592260099994121012634336000117415510437687204419952589681711380814885703923918687824305120472663086402506928514945608069630315885312383185588138809986022112366862420363502279462151132735036801011745998956555221093850678304212366980381908185498395937327331343370900323444675015805580505829394879990231830947845413048211183200000139750213038810701175140267045214535430618726407055770998150891469679299128019282255059670482229778471653854763848749075261357458748478952846696059809437771495491421800830323264231822936322234200582796190293594137751451268254643412058501705460605774914466622837779515670431322988014633885937186444328609017913357786519466261472049261571111617307216382811687928208729415382366724805128269808155956720207366960781191408920995345852030360509947476425644698609626652768347945580080446103614795802801320550545687450651571306049623143005326502363194417142526292679045197139646726456618582340304179246446339657505796423909345231790710123698510251328761209138887099249975816804462363484260922345331711579803307017779244422921139141841729019711621114943606378486053441641716246496461567389017494199897640800650011119338955467913204323495306825370285225499386905884136520003156171479184019406900589496195607649733196382577632921554328986065346720442036699434918639682582867846876491551591704260859274712505723770773973163549462073505131838044427399067743268282705764937102468063351058924697289603627121634540094866304251462599185793749782123689845779265012716785531249549581291233076764332927848297099213740550130635305945775924779842227271514872168305652442889911794874403433841119374666299414860963972334184649799489328072444658738393654438534946164068150166941087945320852081209463627559698729853657550564767359837209447724534611820920256460469351657812402190028975309621190666564545974675275777448672875114902122656553704158186448390819081732726817722554686145553987548271197176554537594385635115773329283811933924783887487039312120443538263122572587056574868454415197419279445484768656667614574796176064885873182723708288792485532218352479645733116604196022843981715188460481837988223347503474109843279580609324569713247504454733005446652993965325923106553362101172819064496874330531409839521107296815152861176808147581823978166983078392616825183462172196961355633563885541698298924508512267639718670209375036539583054277431193647541399005975462484880397448308877109471471436531560794638821677493079936033480733380838250267026982437152501529091809709637891412820380664179216147267242668284352197315062482794953315970264690473181122678591601530023109686302910052485394413648434264051720993464579150619295949165538603320539669020685356666585956432664186666173166456190584067704140240544582986224784505220026651787355617606847905039544175243734762574996278899482696704749568869720623535419491311960630306170208771955453148322966153569866091908290366184375795433185806374828623790828088779435057171097043010644668471388268109017161351067497817051321234086850042287052439717888922205208990929169884864161656988117723176703605610918111280700783714473900018095146343410041317707305572886829642964993645345097910669770142784439959050215692520383072407587742463950797961411697318958300817989426056345357660107180860786025114662611890239722345003784660226826161458964188224272861586246704804596310963309600727086419945913356898165479203813211360706421020017114603938512225115992865318145141591311390949845276899925623696384400927038662621857987641818426286556323730359761870733154900568425549130869317964080121337723623780047789314250241278908313090912207752089612990955807855122218581058934110780400096423303807450710107797474487381386654693909579844522159903862781804954859823243540582989102405147178616320118769581576193677240863541346948594432634231135627786832453787861909975144812029405072575520404198420180221325659687464117213168788056534056999666446112092523457815941336780098299370250382321313622632723036147135573162543383644951014004858087418067990499089223278108328215303057050958476765512883088690120303881640507755660681352296322388968364357869607553420255365226083001929124364931412578395623427802277070131684100192371097843088660109252816901913074909742460681775182318463864923890550096215620013426580349268963716221283373569682028791927454539122439702199031441580584165714495965388190681186303656632028359996518769272273860028308490911632397753229328366439407471767430406155704648241374743275052436485982213658550947355095783112539923069103390274706554680571260784785235637404472499653300318854546553510441510373969199715548989887645664116446632387009548869271645973546125191849037845720092565917619410132873748363502874155663021885480003274200905621170479697715163539047443320886629224754574612462565940799844532703241977159619791851093559566734903862464035091207271545256185984954771027942554747773045885632735975446901769814195388113300590637524917655861950092565972820008397498150719744585463121730488143740458042412560523167224999271432883456560063509016968686932694896666651984307496769110481756529885783144390812452587866391944393955362551366341573273921569461728270694152549878053452752639432171229610172132580809571617460594961344767719133764360529881634601018598399604919282335246550651291854808767895955831308732732555881308421639735218279270927517699455264451586395138554887197379757471017327424974822580072132124100775259492706562633870098778815476386683558263418119227978033952789906629308621001551065267647428976276328038018597203724302258106052720892955147283038350227887785255059453766956833554067290008712242713311375391784981072252524250337201570312480840938273469421746362920075402963095225181689880115629877922347570654807320684927261270061648634661807134009935098975110504083768152350307582284473784464887279912937347635870049803107080374299201497452320481372374215216576176848781764406539157494262640063903891377841181026021776372793545566033660864663989130818435725169886598693021634481486855017854079333828274936414186503325902553610127507852932940022856760432513795757484176255388895486383103663932849426205719447861361932986101726253194810001071509354534426374068162092327679982886319504725559412641590975404435367221226682057438229564904253593967512719349147986587315352059147707758857283445228942859456849035515028688722192175734443653197401845546689914737756847897853985060123698298418015018931761470606819163537928584777822331913448251796500584863416557830075098997288745713752670031388632667262232433549937282302958257633928533740397950422881294072544552544351124663126214833822969094620403513205224207125510770708252371285006106533809869868442833362982391871870019783536463134931095035704771176452139640325039876363790707099823021393654713296378304727113306080356560672776313614713959974873767729882717805359753944317282683602615514852527204592549871028256047712027739899410234862818831256873574384928730126319695080422452729836042243983501838641670339669572721785389086600319490333430333039697154687761083032430940039670804517501702242277057866225466688440450820630603697580850811817286309744236178788698557029892301849722647945989981959512897726678307682822934249598281761048256490954679636155914040241286378615736031382786137383926097846462612420571830459111184407476834513986571985166919671912364897762224287506997527502511635381935074636002913032571498132146058735463622312060269319350727147834997275450836145135237413469811657114719732206046533777573356697985394066907055932861618407126990140338482260727288057128457899459377749107412905055771865107785681327083463806772183322363871042176474930001730837564775611389354366307511570315899029607177907746271621106021937227994132442259199498101102932290614077907830667306166050292727658144031696181245371966628133399384160930825034122705032795787726306149184575592786886346792026935401337634380320321321346501559112868453189097369294438007080462802280240438839296809775281786467796919075643638042434160138018893506098437093458371305182816846158293287382159256635223580174024418850352556842443514448583987517235943800573892370640288065592678968092402309102662713673353953869225010835613889907450483957487902794259275855900775248205246516965600434022633325169121000844491994474447574328554660975706502622491703064133519871271228411055979418420506523553486303920463267856691117777694962217889209148539563522472258737630760041407860745611347974414841680083667884541924556448549953279814392895665857314632722511453059168565250404057311605229500448980299672049410441125059915692976351340680330689999706051940593817043584562630289106660119309499425818393307680033343362609564415218203889297646672714302324944729114124564829028731137789143546466551417289197844822003758317392914987152463201140648731531477709851114326343338535393182835889288022737029913442600723541903575188326308130309646952735361749597726585838013837347006083987506631966833872380957044181536933867811227133899869040887966377879493738894702300147104474634631330391010090792201927518872255481141385251741482090314556901490477568102640246219087407732972971373005345401797622658264333650000311516764154076555078463105044682231158782920607911237433608382682560093386188919121674391778520459034033278467186368108825596508631897908239281890576473732662217335949071382314781935936547821470176037620621261059444317557325259379798322489084198906731907642428422517604505147110415088250220189323009887246641689556559476898055403244756446704813988188201478803059387134099898898276315713957984073239714103949970216478958109575304248389221309663622611509552850902645257682265115280925535003132000759197084201124162893858099690732671657227535939990137030937323048394112652389634436943945626839425424127451344043555170980050585484195434892450155421598207253419675144694081216689114221858362563451676720384349404022981378496108866673266959963981504226343006026467626310051017176117059577288712669044533469154896802590803953419801612460619331599594572318435992205069401602010353848082140044187647092243734712699283125528732825984324682436038292006686555467907097796613480035385442294664816197088589330630167026370992012647365886866696828127445224417718883375714924424782539103066628025274708174997932349900675490385055842778194467038682159519480745487785286583204440056883244597821184061632539125154027188493311922148349306713596941257504541334718836782156908246343389043689437897794613739076083791137346476508644980034931901874357241016636133798279606464013818354807592613158173840375453787300806646264767155568596950189233261680410074299624107087430763222275786283540267034670261523665348622243685325822287908287302258931120735790064111638275329051970749631235040538849587737216970672504381899387348665696454237650453661673751500852513865116848090743339178876404618410393190974124034184831373679405202311399352160935563070104148354996324208856578992980746805588832370664558782857280846927674696327852849943238763148042482511903126679831355475540813517101093670059846589547437123851047041100300170089468002290056690345139926648037077610969032165024331013393731360230839545969398120994916652464855965667930632066495417105779987876779660866397013006266150139203573330268352640223875498108726483041294271791400267550801761760287296815339122469856639565491865403844492879177283793154867227770398306573149443517557472080158660989564575254122555026005346213821455745976278252479153385519699687146610099067457939897211042969153831218887066651444150691426201130265700664977641059779755125008429545744947758821099024315312563840367986733881467425655050697142915526017309050205098432820511741679653655489517904548823794508292991041093464628711560028266454768200997110653776733174103611375012255048837674914286637033850679271207671657579678147869273511495830631051774126634174681438014781880712159206786369449488032336224623083506772522724309507914014625442934094518744058265491097031880901029792389503930997871003850252918795862176819753474954853823041596327966344036907585449606714482804861166149387706194492812162568761064054061140272823503005438978935815773781436850631538884656266887165318892990324677294501380507222300072606616537348238650425276743364776259348480549807198213634796588637950783889925594524616418956483827112367480826595747763192516631410389586296728503192553065451141723516967707046465964763267144907321282383936129108873646574962729214940549564568240687374421549252829795212005116893500755739532434367857026490433546022036423301565539157180201739835295926257097893596082183475084543053287610975623083971591518984239191046662005194365857306354820428804677313529802149226531287270639987647581166194901323034153220343946533013950059959549905085473792319793809413454853151912900255004346606764698272135834352046572928711229001377286915182219403813605572856484951773911969335831471445784547053945628187134753904614387100484076837761860889404957396130308183186585287706942819860440336224587521207128367954646783018936418674227759887250521695018869999562496909824283327848928522660791006709665231569351335177614851666691156919190964139831322745034403741341991041353769704695002929185669210575305348498949138639378280764117035540526168586872402283885102735838212841748199740006674022744927134287988305403153569497200705201202919420934766377925640238197129016646851367266088548805249175444858760733869110455432241781682845238077989035980237899346819059630368020233431088764628634361002632711156602204016134369177869459261960302842628707742191143689978667438406903609775882992762884570467693740568112261135933303614229045801112751865171084930005938148028899186107893313588692860645951122557848624960709248213861637332900276418734457025607513812737372867104753242469212271369618648503026362605961230624937035932956501709202573705659632731595726625913087675688254733962832514840451873185333996482300543320768206892055217211312525839157071380543291812770087911113536677133938048600585999564368121016753464364068161509375521238701069914740088367778424264856925442942567970194582217475881654430432791175153803738425426502443201267655033145351581086667557711442006044728199393909821682876091704035366592976067333083977227602447178660966482990581994871973208539856421164596481725329778168347825545056488762935642363247557510199231861397082849177745558075694282241073906109089209886491626650443081260056232877098975745580159012486588207375727690100774463506437514139250190928952983718003754164022402105924139910376229664304111099693682979081389868925238117934190716223785727155306994705740229547369037142744481252370021089470241420518580411482645911629232223988430691827870914184922940323233319277062410414071092070149312037106153931596590450531117474351843453920762771523381979880382162509945386574474771166030935975769733745735619232994915411536815953703538750127982316156744718745690626855809939598042881186832108102016922085123387846267254827875817776342175821621602121458416645039696615996992150423931624181284129737752599365733338316060583357582032353262369898621981587168756543766987864424123773876832467141583169400122312189788770583855306094804255480438953261525475271560309747608596892751554963863366258067571941213466997003578663054600724330710642413720985509418272098607198870210404315414081943631407400705765937757517190403713774571823853118359428227440361453785533519948520145430337135012319042376942691207435184262561456987727892600327074348111137139232695836460181981245239793063142329499796239392459661420052864671212302894952939804991124306045950892384255517442598504367818491294063429250697276830429782071773226282156195009213015164463845589340786919639387596488390517466058048900182950639916548123552612260975147107035814975431759858312232597483541484005283884559673647267697512560042215153603559972873400546592826095115981760379229863363886112798001428613855818672615962803977979588642000258378640337494350751022136788489210736504428979386193176061324805543003737174081984018264389494043980176891374350633711249098713785713166199607387412488390871801386195573787564079860485436421603286340891217969915439648268118328334592145895723405472985897847919748810941123190458709691379787433831791583612163956092577628844576015163407839399756697175921034120791847766226720523151119767535539032160521908154620050461273704869884526544261289011823738829921346532782385093196646811992056244043294983177933813282284772967059460088233393991524533548768536648702261377126430724456640387265325009458494558322598217187115274424995665624446623705460330713667439246131955131767999703264772087950764532381317725759624348675828043879769722610528751001124904926443213356633095735590880789689853928644812061939731521818203531035375066575785804265661644363551791371236837074159416098912190806413060973286373624905782441672334467879658387593567086854885598856636094104093881492337984107650570071323885293975049175995438935926612206743131929025071060032663832811807318520401012513834222361216791648995796337905199045992657172012638689169058837817540818679968126586967800044721085556514938950639168238803134916184442190445387263071834619691325779732822721133660400141394761653772994671509259851707667600218846479482012358691388150100432752331350806234261544452819296013788030430735430092668556253625322225474537396870582309977970634988060976969255364199214186124888291281336603705269894632101064926203611504958001349001773872260268789961952055405988302653770882238845079865528212766500345117181851840161266178444790189418766656764830331766916510227746995353838679337181748958881870106837584169099697974205804964497994696490854080608232524719169443675435395402267773287240275803007917488577210627581991724300687760667129848056914751074441827656848546216066986110263764001971661182734320200632640553742980574337334213554154201635620507255307028423227728779898602957078162257259041517080385217768938358931409480097786745310050852351447286006049073274427782996261454666359003268998115518700988755506048638780048556154227279148247880965280354579909315656293146445770262165009558233352522105546695145325567685998892782338510889498321045814960210364688238984541473752260554137993184588196620818556147873361477520424324733594596462911885202145692768524540045135806656131953111087586743562720679941058004435619315799369704308997344425116541865499282982485399005232189999904131269327386014066486998597103178695233763073390175580534488794454195846835921058648548582879672627981870979560548047149369483657327250214663744963673537472426642997468814375087330409133105925952730128482480151425345609704059861130166435200427199893472222162478624935680154776031531207914375520240785259464840907548679563516356026823114500647502008893981482879729965817906263869553203161256794641317854573657863662226250333095006724853534255975549496721951384680656361008015208618158315524472691521584097241868170700731981271536502237018548510001355415986936741911670757923648565037433444681545249697575685861926232918261931229866298911578681942048623395890838677360930335875698602789989104288635115640709496527724678114573512164407347367790274755217051860268498016008254729773539861658643580230447903908778989023239565943151755927777101375128690801007872927680453021577718399662464748575348912114978917800798753340190712288773733815569695172767842667892551591902915158451957538099416924951624893142702110120463787097967600553144880012921594206281587104968758319298220583648039757997686102715585574418278180026109633697297399077600308264282164704702467491560337864324531724713736684734689902377441982299496939907670300911483819470728362486535747103527536017679031543003780853368182713465132718499576898413428446774528610704348920094136949042546247726213956411178619133783479587109785236017806320424501733204864502507512549589055937863395408055826234772076054820567299326644641965646582116386929305673640810771278332751581122651091087924471032957460416141784606486138577860944546532413137520987918216331249952438803037462344983554556311035931640124286537696040564373582563684181237633511573775405237111504366368575901929516491935990475635895017777822894764208503512543684200130104594455086132847760718194085358387116969233968373839175529125035690763624621805604120020658054739376267916880685882212683956396021851605518540442355424237341572246102961287396074070523089099068438554685390144568964819321586711757597995291425832159691658519016851507539146946964500016677351618182726873965282749715791957236912984164706846069998677999407105497920155137384588764774561090646927055444866370501826102369078640533241924417498333795625534788766596998559486864501012211240148012338809288241234341307695419871915102278815986660290723331421857089589412127569554865534648905150138797152623789416605748317343444321721455372723055697668680281160865918028243778668982139890542605219120171810549164902607396047811842550900764430848138718733095200551775517846069638459713990676827561109011462722312584273208729740572533277961477951890704939239819802749864558697675072028733931303207902585148672962859415819056602706615769608188747042950972280974068535594773462964479585675744696091050263417045897055839962914150493729118664740126906994523813273362920554082343633609479233988581710082761202669838591716541479780151789855218475467131084064155396270144457291366487982281175237728232399068435653515388721303279455991149008380709029754008786718770986843946921295385394212111150991575187435784814489963988042572796666230735697555985870694536692370094737510673444710806100089529929511820571656581936695112503901518702501367442321164342969200154413101376705207886769625157556334106870150484297006651631443813806439515516378683283658268422438697242255299804258047438539081424635779283705074300404789674927873614538868523299697793201534120392662816215498228423962334686381208914116604162392939651328782033151150070538484535368382673941780292517477015832861269736411441233909741467251113358699971708000931124717883598857600412542449783963800459043480479334695042116498658397515527742021283781491360180590735976006067587685840225822336649097386860203221379893570192318153083352652463790688150171598316589003050239808964605200349671232772071742185938445687167751258786982458365648551755102508428804443995675933135320315262576476498657764217029622246143200484592303288203496672056548824002466853523062914902373592349713603389006931342426028667898345412506868642100477584046916005619869375268242703352056231884062611424119228348304988765891297435735580912617875515381732060483228132061764004680766286521660476754364134126871795294851493304898191218273525354343877005404082210810521462143727496722052360327145289132013208553994993768799681189615847934261958618995661856206034188356790986343508025729923371785030606333278789347127511606611848552079565772039196203114390812761588700370432113435456290707824811999838062890837514804804245980951468061351411884429060257255482198534063229956869669897505137687105068240612744932530507216472810219474225818504995539246669910638565754730319691174165820644613003528651440785469154888502030912777410716147102713687634357734055846801220238339383780177747651043572576024461339318613475253849229579245929639765009187292947453789397635529457925499704374103043587941336071508708247018705927388772905783257921376216429881110238592986169269052051947556107901472143367865014604849002451660348807539336387196325670499557993805656506396229264454621851584356990332412841691916444494183541971890430738554238548128046031354951998247022542596393777517812908534768458091336745784715895377876812781578235122803787581520439280441364358922263966798517071120622123532911057551541350501737718139788061775714940511624250455144479525673585102252685009391904746619483618371340031683010788672311543399785519899081632437784907613541970174504639357668688234105528721699353280658179572094101404394255169544437469863323235871139584518491839590545108707537437045745991187888831222069049946821650970966152258807979413199091587553486900112287682946420358379118592084435727811399766767273879253661294922572517949280410842757627329882299909384415491679349985707989825227544014975251002112257118416033598026813876437682842346243214565348937339416155190088587616781547503941834679523094339281123299579798126099236517432469587802250375442836940787260822295504203163068529936575053785418665971437289381662540575758190536072922466449046679624306410333122257810343301528669103936113986776907500303264024615631400233960308415700736223358369765097131159235702643420405995409214277690546228928946695364556452732628328847453210905059798723159955803475726571463091150715602225277392915169722721882147641455366263973126384135547915462192442130140373123743391815893217113780032725578637212477656504941482859230454803548325366965985979651677414742063723897620005185984156483841593990282904387837800205257825341642260145519339703838030900418555302027954185240097670148882442861021285539026195313933492597328043463661993059465627734433175390287403840485339086753557506053199096199821004871764330474550229552353561320347691810840507799385497285148636202566584095313812908917587732463033136461179570518662371762660656790805688930996673630761202938813616792555775514713079175728116109587605854569647592567262396478971258514990025290413029448058674289206192867167025451951664138444891697119014248297462196486351350069160677765549638893126853099994051452793114369273279742344903360269667712504557179479043572000551292710586675555060064802266384062921959716635748092021744392196790001313598535818336814026991223289710608395057146216835608184432790416716778121867490192635637929764335385206923903996925064351894304624285081208218847863246768424894966317309061874188617055819731650913059511222254979930617627993172481639012869488993945642340749517213821865613869657579193051978013624397352762150853084669721988047919413282997090749067819556608950553915720841301056498280293361162605758311595614611333683907760757069257337623586916919864163729105360537860995198117919965951640250762877041136660406546937094399306302825770917565875476606087699319307099724672581047980680638168807688865168873723301784417052013956390769281044789095110354947191382434732071967446087738285751089800031886998168447668968286047357578395813735932242313888815954660133745854294257417245104338090568405920487042303306859402508974745195863297453861941446899348995084531225872718910526929320816020924278414125129849330830002899664602501434201818453681735689299942255564303585604301422993433735102013845607670302525493099368258307739108008135026322675542415380234953143090277348863789092274078779411987024224464059672990977101428025735526521501169522723823005009064903031061721165555493288633878148051713432681182352828460022128881873667748184617277284775538655078025832097645790832584554453323604667937891939919755400059076256785892059897005508764682939647780891048227851026727361280812892262352684832777654227490123068215560822247603722261978697550433929560267639204717503090524733884577016516017938545584556763977405195991519311652270258418300560960920198206614697566192946204868963832107536662209709230171408277119033964210207753022458252802712780902199226877471331220410088346660078413518636618454818986428950468878692369509295649854668169779118479585220333979981277995525637925669022540951784573298239112840925296303506025925264340218769495798201453476074794255848202469762654311407815052392459998201308032057945838248690003048524164957202304425929849985504838035538630638912656791606528471806205161373210242090129787263427378720806103725137421037373868550720799816967062243161229689759197215212953670744161320890590412409991259577517882261351280853953976335893412311397350188291678213533585399722793746949387269187872852401686040968301723609239946256357281468555561226974835146835413022973315493187803113790304657794259687753559391098748647008942653267211082637401511918138753733997523596919240277335085758086312023799476269933335791638136543512501935685962977957825265563223347422945684737492568531226187947340894550231813415297922581998168735547553699041852167741848158597819749255673744226330149420262917407864537414202745575833435528021400100219366367718137491258985851322081952269873698137602215518282011721256913458555045939760085437698965290492224886236677238790066394408983605619317476636251583518029419997221831225381957486448164232851390680085787970283928860918539547129251049173608404036922680437033855681888535175562092151592400801938438789071510896973086438715132677228296540667181989049088103267784789481106366475631180904081942356580440524919142754853011001573183119194724291363505448450596400532907381742162393556295720150533982644407455455985799369092021717294449015179247887301612691425046097583429966709745210116000750413811108633143387369327348663033124979844715012734822370344613850320358414287643632887591761079319809474285391435419409694532013957718378434204407189661979012777914130385484744506790751845924902124799949031678646078673575588887374154628092576377203308836187585295643885196425803139751309930321935455208866137695345712321590870818227369758726913933018804360585661091809564515231331236595026734472330288646452908232798230077958343117021767403846156076508541355765408404401854174210729586488878463070267850997650368517590468247419116448346938306551227272578607648367053611488995239175729739962146764991556839703482203034309740129079279431080763939243230954146466160811875040148789409026998912053994288895991692375054170553370845279702372930635208271689728039531619276647246089085137977005890736713127887941609679108021858180938931106777208548251653719852091945232275707342442674962568481632115485708201903571088691320232059944871542074082356569531094080830731231176863691850779249205690086403621227927754143769606773322763430428756724800275802066770066245562543887029396816226106531855109986654435509201417420108660641361849989509219362190266997078604725437446636659570164748254016225519737216782769387801611059044561550380310991019846584344947781957431089392598899680808556200437346972304689279968523409605111125751263909027223495456636996741617084179367108285307321884060295289975717102970502462021718914060600037188198751771488764170249165960776609252654927647012371621535818842349505786157097479298822621379804013065277712805156059325422273121747043517011219588533060275559487257407073752410313768929500988744194165169808892277993178129542827889110792454683050891344320550081501523875875439374479559702605858688200270451750989678436990235782290798332402670040139168156517969820687789880032630915687621505605499028030703770273740198456793190196975014892452071487307051810976387477623370170956673945668728276817775429926929900666835882669858673920297752862425717318003186982902058015791235157860298968490510141732678465693214251764435195361967831044812629061364945057437104647905461584491081806900432128799717014486320981040613496842596877878180464229668588746406012936059620017172372461482940534664941217147088675424813323860660910341935841480115455768841583720403143226221045531808560590096469870870779170813334911154279190421810158678756361450076038457094940930547620722444443863288709583817946632009009676829080730609437164860330040279021448294194108984396994605470549821245850838571986739194598261444931009612618186982283885155271236254260561991474645241848871843482042578867503537425779696869129464301877992089400769102609599011255319319756676105825060389895237897651433065545610192518877565243344362794567154254530237656028009314737871068036241157487955833852855373452021282744459058570660327289013949211956863804768371918191522459398154241588642273051489308613691121588382858221640355752685020843251497160152360098138996468324768586016922066516957164741736787878427449299563383325761807685223720858206443137952925417210585162809623588170212330570427517055005132191235464776836796953703148068567162218065129006380715987696956415478092922756083151338145303136496654675432392947803091637838769731525358602152220853219044745262178132745855419628588255513029344504538540105178973809957655567522786912539175300794133258115172292263698408421908562381729144868018574982746099756452689989266659341250755199020294758537052823757560897578529911979869535953265613674965633969101082503788122567051810960215441508258430503959398795277138005962111914105799495556533226177388194174018959514537850744383932294283993660797326645475925658243746530999460163094655865689970325979606834647791492335067933439232646220178358789114749802587635548759447445594856375690191322455314200546641555971802415081032268318741872315542547787753263789495183564478725972473277479411447682745647675224713120167201647276688795331032979644813969811912952837340304780544235762449537664836182172229270521289390763901006650629083431710932413889474112763288054180144503557977423938917071037331752617447625154038944239245286464588883502899171560055291876949896174915009588305091033347200801172100718953416951914645994393154719387894601758090634187349739294079840599182629847696336842628783264107620679876232252288328762017552487950313637329700632409064263835988189084325663577756318630592882769436787258145486009017645070100110055048354702138917094528473357951857523418732811440923583933931385882533246232959638063332770725971223281895268411334709469475332731881739018064557702467301625156077611800241396523853820972999656371967443050503109161439264534522952617970967089955243535971352951594896859092900940111082831879518103383310314104799062424738416023186726799546302879209459313760568367113457410881846287279559469336038606408403545415563626547421343079945646322634577448636422219243169550950697268212179059029170457364388845379874896696606230265336428078379409014546424530013116274654576710317120545456983517685490925468531468238471369251475656825400804626190092331335454581151119743400088695225454231765183423740035799523197938245994172381657506602170096365785733628850274382497883777108632475352437879358370190648049973323406469044188011370217663811649355628006010071820524206280191503099844349165527807536173709759508456161781075558435772667168971679160885758385206508276393368810002025192079764599105914104121225231850134323780159774459636814332982204052077682641541900521100696796690523228958771810269061792002101789863115832765913245200426931894839429329492948286167547241797926484572628850319897071506380958749746332047785340139330176571544872617526515813682638347551383039902636444505543789800081984600848193911001697608535938206861420508825066206796331908949236869381023546465477543770967716164858768994317747064440197602407696659815374140072162562126408046578255317170081107753924186183921072266108187149123630987718808224728463944147276319829333920028678984438469214541129602219131138818894495588404172504393812804929038947719952680972422080532844695590220386530512718035937956999830741070738184372546401945563526731637364590699988544293694338931224334806893973025733495032506180128798547846077899682693751141783865110229490160386681144010307374866018487835889040647697075471636762954658652400593786936522175889095568458025099327701918826424138337780044940601737738184520661559384441083888544677369682263870106938594697172835539259122917145506344190149873123728986386665445687558609964206729534060445503675190149271463818361267577123971176582546636190802425236005297922524431425602426085736989030036859808786982280704450604735236632262300216192921867556198099761156748018777688493028413970641719394371171913188499945969805350145913107902927767577018993598532359008893247630546900440505735452479314944965088044220216257255086285635606503890395266905650648848774402500385517026225785378584543615987367318515316515110529819759449245945761459071665921830150510226043170428725364607291094760530402644068598767613892718864794921937616902375022419963149239112802812958864833883017252060683599069004812604963943194288414765010263382979101788850031682218522314854807063457238540697179002808179778719271270025042332376526973271756545475632676191209676913364634330530572190175639285866370301755898727888287047711573332606025263914783293747362659342524457331960010380463824073297406073213643390196543907983170122088846937415959406825374319431276842282729298231864977129417534589886060550061931641090947064009754073787463248872275739605696383559721879593453608240764552707780785738857013757829348832465455677457380424609927498191665685677212145999564604302071381246712591626746825080677737186187397786697532979639135524932307078016929248208916500507421240039709458236660395529188567492675514693739064293823415358777081194945939764311378085093689968954874654996807907538865923687092349095001804911593965741671384585011613025516703390846677761531080822300512655899503935202245581428629208507187828682114963862094205275797466656365845146568179981466769711702232231012938165305208435834369172445153690879803500391470151787864804145053268120218427563817254454891027563494331353672673845000710230799461499508015749319981105999331676342705338182686800126454267268412158450126480068054544726204560369763733164143746830980807990733629028737005133487605237847460303128674036055527094797299762546216568134208587388707931382343671406955994438403457610785379344785407872492727207261468091417165581746655685595213029355897362059875191869869372201228220611945636960101368030824580251335153802510794779419848178876490554311659264197921246605297629463698223163804281875773565586892234410448733357524302241289482756603286189735822491011056361411396789280262222484561775042989386774805421065387671257262038313267730748837277279229735683895757329245351346240027700078178385933978269343287110604914719931969131240631231988881536027613490313720368698953108600241962969649895272709526761810887049773877495445664915184985885350753491604103805310826703806401816509859304217852458305520369595478875842595885060968432532977123534055283905651567094702344684538694372264646416004770007066767517441297445298627657944839499235586557817497859461145973753018368912488415840618016525788674153806043202788768959012078876551487655115976269739360617155581362851034343873494535945189130279282560357842268419576804354570668725941624274079072579991791529956999254631415347010029028807795512365335990002799828600040326870303867195907596630894891935822843772278088084055459500694806349590344362734157791731275464197270023435449910597199571027414945477790913921687033100731065226530385268634297451216757568387867862293533068004647928082136852255660972243801629455397213019644884202552516011395580401082408101509959914609223309792955216972053617380496726067297768298351022764502474166997574534708312584742535070498764787566425383958487903409188711886950837165569297277224630351828678688386136855776410250498845712587504523031943301895180643271900492230011289356964100149447886415758570194325915415232815649627485841903527566376869616072318625780034881935495765257107611916455718139752064989140950057104832147054422945167599106117683632819160039837605603016774180740791509086056884362395165301928871227320091429720315684742330414114225498030711583738835808091284768618001716443963942397793733304558448842929431254531629560506730410037405762543374726371713069210696769633018806868240704004670222021130236891697406464414141034462425199659894192901347007220917352038482595394254045998682412014035235927113271424023459675321108888099358587215125358782717216227914675018842861981581364313192783504196385932270734128683604448200905733382050285630988713876560039488652862184027569861088891167654147521558849341492869345650293463164308417860530487821604135796403977562606883958701891007069171306652746197193215077899191224993815953302204747430513833649503320692516047957457291168677738606044853717738241017724738058214964857202628627337278348186173337634644434708842420082004627495101025144334203917749589385412165490950966289795143054224587245620802733855944227382383170473942717561480331287382194205221925356677824182929273389650996113797666630197575507393956818447993670419797985394056328044682719374329157224997290064407728249265375741979756921746479570295130769116695205319513504494020736145249755787151442141281040273509153527490941930216707140842774303210748299368069297045023626221396109175093789379515059918139768758341208773502587360855005778940067205138709839451003608468903942770706403122118892490585129383211490644107074386041633472130739952072076402280098258193402375086476851863916067974089364735612595020557234230958184013741883134581684418240050235956042730050885708185696052537629006817887055969595962639463448348045549750825769660818746871876719031540809592913488970819260717154845829798555331239060344141030426793866743490231077647219433631522888929290178848665016555905322917979035445135605281734993153865136572504798308961099394762367164616564750993641466489083220726158544842025788680417919657464042463418518804139061923609147756534181462317589136517198515894725128231190509316468003294872167497349898022195594369130657739382087213189623991372599435583947128654395402528920420874623100855384618797998046215180787485451579626628659119965953453652757595900082314957772942430653988582263301627312817730225399766973914140344838668694895258829800574943164893734744170340350919847799124451041040272566789769774986058321248853929834730590321171773486034455594019572941807846953440842287615771229582704961980338791585960594384379362928824744627276390619108080324981077959088191673696243412631308088173104657602118870581709192170788521312012764498094066457165180834751933327012852743232748526978231705934848021805640293117538039720464011648316423199359756532716246699917843437894289978350891078661007982630829623141116110697606843493086471207160467110833536259144975159827331678266845092790211474120102761201999269814758395332335194629406592263452514315632383317036735027554826599642802992881482385522172769314185995367685130036689763872542288639146351904468170090939167299426009614796774641581445319972707615074661005217117441990481390552177210817379834624315630663188774535198479147821793845129803081092406245650984979364104158611058069851536145311547711935306908478165409432862393741732864492552740725450147346690977882740203794714336715065692275363237352833442503038042073096321070771087236670788481438431032721148085689545721248040438284208531506883441308584923486295524199309661890912447062904178098382525312813226399140032932162497893424062395190766323810676708470125163398091498218210420242902127323784124481280497712738753398304081175787862523423268370047013291458509255243213886224840813886780434729091136029360896120314213887007159742894063759320169416921178659084465079470346154152944257631221624187937258394073057185819775026098018471445577413365499749885757664759491218554576017086620154549034234978248770541417471534411521596025717202675467582658184067117364964826225693955857322494539769026335353734983598687701384161917135308098716735118648667078843644814176831787605564927944225115957407021291111122814543852038870009683124819544604325354411608279077010825005152334503227707736038313481217125324027581035801985321151186439649152552275558464756580898095336883301595304954891105212000645193727802935903991271452009411081971197787452765753522600711635606570401808903810095494802772121190244635516371488216909519282666777916622179600170265303841081068759821290247092828943038539001061395242160149934987738594285448239533503641851866561513880593108247163692793952071093709343276879475411586896419184359072922462747010517240807508819986607884431087033686790424675636042248873088783774300715216333229403605406440773283661673295132754124805485796875663809407737147957163705705735742363410450203721560321379447168672953267799984985057001201271030934394893057627606884806327004463518532704731607137057196009904807815616481253303942017482381696034347946137775688150062813227230754005229549344885667560940124531640313645764405077750236484776726481238566141103378485689431770036170013798688624210362492751086642551033680284839646551684746614975210465667030753011584255854371671708360990153924040529501907401375230734635088666912380710420212230297737098232250748387252266400286612968057001998927180767506412772749660486148235187694067570955037084633084692797202358525384125938026937921785144206096295104920772302842701724775761613800385959989627522732899248834741120990417321552763629753334148805309636265351324037889181326741898131822312192160717641948718754700384988662168986190216818045224061860413751405395485751905012945048733803364460324287440767219190334324277439493739863403630639631949189299492843724111627491623975232880786188540118868490887577634324300385715706448066504253118550632562369800247562826582368934953886555763891102113769765521233082168341174681200743251846846279533464625464906787932969286877116004719214119510242293483165436815211630533109759904804408001628525079002690641814514385195661594276675988869039760831887025769127740386229472111312666709180047901891203550549126575618355904708862206841474948884755521143934962092286186479658447706541169476240016564648494531911513874719275631342169396246502305095501440028306879381250671654307770197821945973597213113315525032167783069759655336831573536668417691816999496944297998583033978240178887853394960908799650598381677667425781126252396167323325624041063214835072642220448370900003536785202077943366943850850692943830571130091726104718869866068009715904948064614140490594901187710806296013531846567099354569605920462908089657901359490449582890821275604105568907923978959410922893793035007078760230016506818478721160913996265896267132303144161916779097842476456896561705841687863872593361228088803328811782794614468545947354530810188955568907296783843583569558263483023968054365510839982035919346848551748339490574380136611689356965731038756163380923224092983635304364865832417092522218792702618343380607314372306568377061392021845579703269473885564873511306987828734994603269062581781160478006333383152958875852609770722174663240733207488234778603029225865673671169426337733762614752364836869506748852262759613407630288049700665136126410418837506519296484195130232070671299173301132132819543682587226905702069491790867626514191638666042772754317880257422641866250735874271094647022484790080950176519741188141884902748230920323328486398454818278270938439378934518661488951903496604723003000879588579029522201715386357707949539445488478927713235770048879907826891796977252727323956526097447059017332728700582654731639052475419087211760930204918837434471178083892695573917338698701957790234943220492440981986299663971890669835318786496111240282806010210770316975904257436610614931474640736405017542246514208666595692147185357947752747009226362602945889828681751444627005463144773730152539327161596849188892793568709793039974133899043982839188672627786353225630589591114004314321674657796975106751559823341419618423030530198113651948498162415098714887018675616572580987670303436376667272169044478113584755249235587928239472390100618387696834923835710540818462198094293848693973210479764676544240983896473307419572441097215738822457429165019627350953004674246500377348145157067313386696860615119712345049817494403445556785092389145329248436816326014085294862325491528870868235302713380951218317045165554433328818118817705503147673617304859936523251543336262480010104665733740372426778204997981946631618121692035330804204022405064189585921136973174603430524984598661312328408935041541062169110209721361159847877308204939796481936976965215333713441755010897601338653137774278342041253782236317242750250071019700275567907202802092985997772923489990767134241557839492704690388798173849627056874980396599022717466289398348766722605995618108182022086146088242847674522947676673964406087162236327577514262064753853291678648642109449235195136689036655346936320927923775532155044916286310791121497752133171353336459833850257197159566053126901877102946457747216534270806206055186397987882838206139767401946358854786619483073669413177835334908253588806378236362435174887348989895106512724228972735940089422914720392923546909214754561438070262338560542123120321170559191058395470728677275661992563491436133540484488371008948526971863386008805605593543514796249546090877894214033400372186995081093344906910160596744159676103918946914337390048972052622179806662048257904495233816306614470333036013473107359296957083847500547162840803383788635393732722805460964452505816961740991655706140378424918620306846700074071418745146063454475499585440089622205643292833424756898476424643253953619170517843120953648149954932121619956382450177969142629023513466200756433290694002663423980564996882386853164457752371831691367337150836048074995597878364334366708034220875300887978408908529106601137738753011096465518763926115662984073060193965638266554065762368584281094333248514069913686406892940032907674516431021668773190339655218282684927476824180152362904694702059295114517672439051130647410103791349509266847718789024158690720865522218803695092308428691288723648590545130252926359833588529184417982091507743366952179089928762645901413736902416231921716354197796451858982687788234482670198586873660065816014643477192856204686733773293729335058204417329366243351125519874310110741221903430620323077579892053176409400523838839820715404144378325106508832558787586875917746389111746949422598760211913044064544554122170636347766705205040022623584073189477340087735153468242138681371590786032927375231955699987846163864088857054804761069565357356454711952546906084201340972484375729812593558634540062865190307961490991693655158412489696296061763661807040415957845091508887592834137276935789256077530638319908204872203383750565280430457571420729945174016843195167773777459963397822870939037153071203322714543341558987656793876997245378761130339780792868622956040938301438696544024991554906312739539182925225162815113165038191302911770163963260351413625439953124574796715793175040041856730477616182152349133960782289279618054108111458907389960481248013382558580266763599492497642860585438922729970608816173083251008384514520096781276315735778193280671860344892083141217253850415364114858926397422926493535412708443789098139901819272244264755882636351249439678286301837296689388251931102361564359146167376157092807825898684791436501888094332605269208677462962490701191568447554207643573717356376103355019211741643433045973149157789189106956555445410346493043656608856760852415956838271301079052232918609952606025863281485791079648285330965310051831094716382987802922688892057477987996373334802950784045096287149195973141832065346107655310054980382654270700877108394793078098268228776047197322086832070676742073476961408609445830974838858796522757798892205598412847481242433522160051579347629149486830423262271965735090479410183681451377149674587780792223926184415118333449973544641988545227084505081144439695820856283372835239501961000409634502618568508838042810450082395258126712673186235306289583579408864205134259577788352395087093975070341221507737477915835647582323324735937743008498318630006286325984818058856393834751678918871056993240994817995730560798173648902317250347138611110974275119543867150847842688002952176063348923621473712425603835798189616436417877550614406056195231252065067075450627737585724641166252915945014429269760529403380956920779031494510178155630321218808836717267003810270714398647295688755449828489566118846953392166392854620025485320600119464911490943026043609780479644567746245066687999082920692224093555301149054089996752957482409246831239790812371884520988190160088481753711572974061550822326165859595111707318004113357201581335279651170700021857789248629400677692587545092770559532193174236854804253620210219208647814106656256678670922518592211337216875484546541990869625388053886239007176541131796887283335177125830376570858122507516873835695604444042823738703785269858754748048019705645662002888516119828852474738423035227223404802925739828895384672242300695892556881108389943540265697485231437345509219025601276629759857598560094350036924362610333700355626927884396966911458216436058220339837350148749161923300574321254783512695879994430887256354624526711317904047756235705964863358625612093320300606985029681007620821900362773726312701187347087616212093432306951498003933755106775246813668981934355497304719342438130780946258414912028740478219613956499065176774026766341368629919183558342825836951415760888340796002038931768328184895252947277570306200691676551875670792479789243944566761653732996285287569233948976944625131861125593472305284044830121315012767428391129315191314915666272922452314522018827481191060932225389396547629472993006450249381467040605159122564000401484478880861548380281218572017341825453891113604221293929995092746640643757445993235140426873271788572534592286262850729499386329102563139376323096274402889472365263816226883252633264802800416577873358241269731202769493598171756646920908465176173998399575077075334629310532383704309692359795780069801095002819316226323483026030510447669787694462459144749287391117905479661543751481875833392090453622303141161480579940468039284584701100732514914784593937730935499547819629857789552694523962785689551904374106971587173995640903058848349722011985272190194812212326046243959754792180596472574301500923922457865232970971724337508548394300348889134479796078405686721661215604145251363196987475964372883055401989708333925468593655111948797491651272447413067719063640253978573261819976835377596080227387258486878028450019553397183620409190890302222125443658527012066007215301654628598190028443472225173324153976857067838792967361554254061180535157367297843954728210084047487081625098125906809046974355703716156249957560778742484469223466379852618804757264541199036629528456284883910187294438792333751872677061211430491168589666975524022200741571245547381004988561325438778652294524102570807079901035944166669279713858888559662447078991837403675161585208507784141158652430464534442073078133567541400047251357630272016909342776670874649206572030778873043557044801877742208891020526148326871032407510331478804396983013682585047967411693834109040225727350363903119791243891355568355992168625604685622059881408266763940328997640927419676529841289638094656249732992226636997499970395041436977082093526243243894574954506863389007856692175220387758812965292591779491273813318962300921219977860930818893434319440906364818251397202427735414694800374159629036234503307980429987449302988593583853551738210894772810854823081765417734633964908238182675153050486187329994260112445961917248408663114563348092095540848662338771254394913524379719847343414269593718524033688808087200238827615780621541573873566813498442623129058907650407697168485865753754659444474967326399036085097628652354343910400042056014247772471833473879124219343491551664042760994161991712813048055863617814079862478932560412017341939146491384254107264477149193815701998523015930748800605522816682617835367021299904120119845473434270888626316384349408289664596255539932646657134084133005557119774130231491708267848387833174201494756742411075425888381461735711300071189329536600623701541058869046570726769641597684927845119943664522137804176572823710542521304908610445897229403677476273300157843211055174528958104020626374734001847538748035133442187470245330577698674914977402079358363300916452769642493653794318155830168435273153159563038737035155088849999151218231881416926374069110442042116850459320458265638244081862989531309963346314128802779358058997800657146247003575318648524315537986875478821402875919004451413304522530875270125301615918008322470367051902079649760404892473022250706474682657116039870469550695399558267091987760596987586087759303842417708858748269746722347708532094057887052129789655258055351117360012647927583324619377048283788740317967419060350006353537041919273879663690532668032246065871772950114096396078718081169998937740737471325992622389436131857380338979572342709570909905675393349344044496209885210590667401481067170303268044599205736096555248290873418024070647781980815488836398426117715961456314138665370724669451736025963858233383175408819883372940644133420740780250783504278001990217849254683026283793393201970766050574926619554128819927156599209874358823162378093784894236427840860164511746737798936722790472719393832274969163213788507634726083099574935324515725065354332499571380361231681233085443536605177433163877002189228304485003287581765143639878890603523487971738763565062799406167433091626626724795522096583596569427122742309803397379167534595583279785242798527054178216140924453799558973748837871136835509792679837788330003901318775716351409101111981750764291231739573237375867858795186172438702956753472416135845232221577076630322876311320177649965481827685698389019249652975183404625969165081315296882266306841654956189723691763114414055124099876533311686544518288353882076440559039733058515989372777968092580457643408710140631862756968356934983213261045790590608489041822472524279006245564432775295022918806162510533312679364004110680644425815941957556108505430237389145673439206257370638308432539831420671795663096955257946878100910797484436344154614592659898948271523714905979145527509861137402129218527498093530848101494549226343360769998203260720477440040523094369816284126828022634034271277316440684419173846324104636506570556303041099170884278357994452280657777367956685009578445028306639839374293808653012427764231861214434371922870075523356523144729666068489880540687290595562856565630749050474434078638007950883980081789783616616933285333436552003627149881760157379004364130692695820788212378121785671200775072502964904034552460546505716712618064238772590060336680309559474718166668683525386076643895746400871789436429514843514280783779317223054230094868292178181111077508477596199932911242614225009826411430873587678110838190758028852123026623230378189800130922570294203574603772781546133250743065620517089267571409476518664651425983371220882826605594821492253345873876840690800299036449105935113426187181658870518684474863640175957579520184587134780703334189633094213764097740334930135040826760802495133363560793160364620644047550355554023276239153475645699554496360348360807454721048381865767994900815620129251333473931735835389061141287740942240697666275593759866490625313254509394976516136400996057727350748683507100998651885318332834290260549934486027385749986607592647132891533167731169642382446215842114273768641925261575055984242064386653437909822270091141587072435689210555116471973646825897302802226299776440717967904383466781737895559791775164981097645132552490409017779382717465667088808405054906079621156182289927355168089479309065130823396057005955406267246420916359417388979304656789239876989377424997450897988724212771524044571827791662995088335343414371056158525246077835311630199374395770999939779987102093869687004562659002352564167954982079425603258507767934473867359948044614874708497669636203672290358979248921191495887837819279381011219259307009071765421631243528543936551485319403619266904918306051544573472126341276050506065325808846691457978814576906266266005874414716999031578012897320584978596759033927886229834789056637908698759717464392642548675391966563072205875730007468731316862531503279781452184520306589168840739322511984419148693412950135386319242078106436493862126737577822996876127334427756074451931416179157232211106926199393424739622979156531894765623498316599076495862408874380469394654675081926665164358611675428636594028521316679671339979583645732866606374602648025702468773750201358733577691614251404564003898116928415943566577425890218727150508727954015036731834889656378808109826496350023764061382962750767245387446116068481944872014502329607093775216157655233545557131609835381646250350574645290081898965583715535440507052438928184444001772398057242845868034283512521380708970183058867378434941779090871632681520948911660781189795798892644379370015980717811237302764971702591794091738856679700686738536135916360450027579383971721005247557972675528037152256740365565648375942579941820405953851086506966011138288699501780053904536214021455534877688843788131942096696693166424022416594846827309788311743979052304349332414878360158952295223831461782151040578969463539207248172712694836761378022725047308119122779810807132077216047209422421542350115803201095791199803187055952836893684925546922785140869918116218664264021648040558522272096429667208864537259045882251437124351210190180897428852591147793545423499647167403344276529426490466722814395853969411446019192125002828493575213533253783224586219621852652892972318131344816379150631523744551692889502784747364763843903407469474890202034931134278674655892723288176108091276883907302237547984117278822475676510678337193973302565747266429556155190770179920543162891363938132571128949992994086907615483544349607358808377087577806789199800872907214144594655046704204942755301936372323632276175676046390625516818456958975189079706958096044745303157776928206426552549123545985915085849455180611967924504039745623019592971753805816826462584707298606036335497637480668534551817389312438893873230713989946378822970239729767960960922825633194866936175831828036225806913073039658988674746082227156777940335902088031588570350125519038312603008820375845494007757535631853883433345281739257446454428315434155765280818589446449077896157007450669836585358620061465710060621449183153378065370257848083919409026213051659997269978180908120204848804785280359287015874591487174684786774259134950965310328224728962497892945380988156261328313110013976918935657816552882186172559353782131718078765791473458633486847785869830160303874060024820277556471421076013533756917236914115662828819671358148044123941683387038376559902485557289642632974921928311127893878834914957129140789091305498422434452527502284889051125726761658019868916785887825672059397992605305622428825003429445777168384366322393437515084433074800177634864491771194581173599794811825834845206742030120772526247725830769584075282221689646024420985832875631373855518089389610273595796560042691814579850584896949527005355596664208088396556254823759246178512819927662146476629322912102044903224594909147197998671072446607841213039596661372598862132692393709504607083255839941462717985103853188369829178272251044479788532196829444503829329044115596890227208448647922877541010185054333575873534101028246657069010899647621489858971955636212010430835039452420858377369891580595213892197691848682662100233313559058166609440810624921345402671865325193101423602144183323647004898622807089761851390942817859274623039206383320890882338478348566412351028628789828313452071598404240429494044343020604295625876475462539609011069478670278066313131037957424935468625258370702191530947590460245846303936760139893861344644137552581107122414066157419648954950388509679230965765824488921882726415279694981904250453770147019018158561195668727181150033538114121761452054426875762867399098862528324810375237595455419746243068142088117632215667361340132823599788694889471395186169132152132673979669493790190394384012996772499577321842751024692429707726810016694540957754380863067388914170853044985532115719695821586798065692549780993669212497436173583031171110789649783866643819848437169066146211719586592696700993955762397917033039696681719427274136483058590914314414504367335073689305428678093512335318566861030707143042037497938667732370271726268709603895797572283955342306712503791197902780418203962727102771142041430605630982989253986739711302364168183632466331021021954035165184656987976920546838383722895609195118292232419718037523577152432404188172666763657111650275417161532437449980998965553534997556003889363766109109991688141598178451500983921567814278578898466983653103659197953863400645726770878648604971020210741807862159554486876071619712389701206260854001382678614070165013427970257987638747079053513582823453843350697851199505615940522246418130477803221312526823091647062196246986203459360580829019495247597044740833415681959514841514035080955690256299853410530818763800378554930176438962067722793375454646179888514709510278047041891834419442672113178109209614510992572422725873838058368004090245785210570770981184403354447054562538193898495499021152015862991753761148724403086551029027069103900929378632954531331414522441590074583915735447255854552735818654996214796642306943323231524756745323970533515457143611121471011369281438172505751379604521016021252087078582628259403277800834554061193036313403359086917115267711726213188172032146526015159258982375869323857185140583495277532340669631796084639448489999741234089152352659095956188317381838940958623819866058033411735315953275665779616669663548832170825390441240784670143374389124616079971498056534691960528477129496594526542455067642701501722957330112080272701149681770239985553706941765495776390064531012060924407467054469990069329956547737320063909340975768117564445111834196777476403142377585855976904685978366096994596326482184580919779315104104436505676612135588948037904456554751236497648612536865802994072725491873849262187677025411917342659440272919700915746191608085732511615513283113382329372826951725483638753364443118589999348798896693230707130933682921464352060767719332461844693714013647753694773375224831577822589395938992407961012968750563953711204439980538480011693742319718072397817703865846920406183233956292240443919415611448523120841577440732944016763915649619686928685274593195914097179243531213235702100993191546210720327566081150729663413641502056460877273486584028734537734410777941947814415079666252269453071828960747619035591403198869878530221279706083726043938930892571654466322199830017352519308181443542939074610948550760893197846897485951793816966428233668910824533036826304198634835959179623693154520761432575537737369612055316635265932263233443182337763782636104229868197454953469112522408929313379064401998560454904126048033883468843932093682467962885288323629212331996629519949883171466565263951684806480560182463221716293902786141313232788535430114733971089426911289490538824249772361847048149992844474263469084954241323158253641305914887079711617127022845186484230114173040443391019579959414551703511394748709442515170718899624809750727981415576512899209697063389480529747336959072995201728010740059095178468214599317867096542282435268027792936035404393684222611855320434366516045541269222158616901432474540354812327134516252814063198725738863348688465089444771911107236224613209088081430720343716747110996024913871919778971360460317963841347771541658778082249919641518707316275257571190073807371713771338413287582449066427033191854688305148309994634674487848605545826044885589584858880701644679119392604165135533649288461995469211204346075392293875000310526699453645591489773002019722820786992719223768974438441295681594178239507754490891346793786456547235498601104691206529798474074190434077234595566142967525074228193478344761536811265621083591698420722929845473956340136087809625182298846782070975549924657651291880287670072766160686192660858832127985526488350931481946774364081107330956573199017219196118720879465375940070689934578502617220027673674673729728739795310496647480613176193453769329965868240507512585772449879598975215403688007639601101998510446555161178300663245637112366285271205932496623548949046390960011462036137069772255510612963279911744754320456842293738027978210827700786103514180271923270260289544563338061902438528607883215853877747389855595092159453466793917191744368378748883344043702824648880416287835968754900206250130209740573986405349183746117918636631236204891468702941469209210200429842743004356460233055501369392277613526760135708475521355361025634967249572554099637205478443020353026296606606783018730189572827045573445831238633123356158582941152433447236588257473409974421680774332386492688235189892946773182108524628019203102542154671702686491988534886895336717384172407137514621759929126935000326219387048662923485787408147934047122630200487508347442070036928374578995586247385720092106066379189734591328468504652372523343903981963789375071193967247856716703645691070871529522884592108845861596306262246329130826001135045041990746769108017698010775355459891718194742770797243840854296351187318895169150764473104243297250664220811093287331139735763527712325404794882912107383302556060489424140324957125069631981876517495556372388750561528973105141855236300881376384003984870956467406117279469975713753266041576592269665054715148963032940832445543188379753416611362625421880111933756541603747897915501242532431941761101278309077915338191061632330856388031258377145557679932653520265255235699377661671048060470203821116508248545445964561435187590322649272297723894766962944719948905345345127585676008096605327205643730223298362337119718111980342018739848176247070728539600739332430633762411481768605975624771120427807153882383624985405752938437399582181298424881306559878616711982303565818088047696656069649514341240658918114184629592052096802999642831499356329969230024575533281497987520075744668429448879338827664680600045377392148991101488186747753608242924643790472049215371684919469448373738051811495409302025913428441967237894297815941649837254285985395868829505706536105093938842470800228189601711116375800973782999769881206592666343206360098047172164120078738588777711690459709879939890471449800866941344686005866801882272724947693180812099070736709401493586520501386828395246943119931660131422258395763613782193359859566020438213137019590459453535155631480070154998003174706274202657984768526998052548682949882737510242357336121654331589858319385213148466883668232330147489794720388285675249800084284668788057315808126608223098213504960762844315326661880181769816763978171361225732743798066536873042950106706735003111319737727473030680877491303767567455598647011466642549403794604886900632751725435947371614175549358258756761611385070452735390650053601135566019599924131329464699574133800573326410415171655302703619844008524167442113071882035670128597674627996890212352247779854303144826590095609374204484045985056518354188659870561132579573464959029679435656265567523783261595579001652311623360388099140272259226358545528004250889091674366016463597227133189348288962636452089080883231067664226583813684574922174393448771340197052440711296089421526114257852359818018513813159656238764742244289515364145494262162606659887049312984671125777217729909326363465837677871699673755965753373594301999063673023463074489264483090106919526236307100836640936899835979846057540413336473787540782836245842308130483448774992459756900189615383870060891072411873071184108280477558301390477810125590636331796603242648137857683033858733107120585033858365151364955844515492918784184645875636563128147686117079057465709078449771781156215267085123070344966662964419184213421741299643091561485342543985438396636892217278855970426859733823024572876161154784865488149644873156764241313253671964587453695395593880319826996810388086031822139568315842673114605556926736751105818434663975745945081695286713176065494671291752550177139185852814302315012772463513792703405738717935497393802779703842083019546767227424023169125590010651205056123379305639429940424485162512852934525388713619973234277243286343720943753805636742757640249780943473744191707126000132492486654172964310668541901218637587280550197975044595666735135396581366854294407312103297146565094194425041684034447904948710391955872370785137865354666940377907236926309280033335149672569335840326297564474725947792482056582631886573069524225755513832394738528888721459219764431763564847869493152657660235270402819943228082071918261667110432468173347332317289285946176957386296191400500700128202992783055892802543561545573268866394751993675395748364882677688471643104108011933595098898772313807666539885504780760685027932196902477295396685479767596132580851496175412775309114692513953546494896378523118782781428027706129509029744468786425672752115326647394026550415950809910875941877596275751395590088289596635270563891166912114337419860323859042556405595450783575532347669062533376572624909345415619377128921118818984639765378256166312979099709329380189350791741532773718919151706160787327874819708748783842446236025089020529487677406951749018610698247067933473121603499052916707786015450303729248176316954394113501253858067521188327076211023920455238182046382567034036613259214078587720777714489294539173091685054490543325699396309125302332016981522039034560222347014341947233140279707774785563548027369804070568445265351118746207370457579548530132644217045722002954754562010196725904047068562080977720167706091005514595091657955164215105185917812014476623127048171667410589780643024843333739187769595731815990418013175121269215954547584215818228021182629967676506433076156678805490267605323985269605726690538699564413859197943962054861003489300577165308899841743029542703490840764605730716368214809927968917418418752097877356660759219507999400087994863703818698008276644322552006898415394648885541000777885075265592849510099081278516473845899150914685056251994200342968193302359427811655730339697712476105574185288859482837040926209664053523071387684481187390243623022431861571284193067628826722563324265140606793733768552764752544568618053791969792694069170861065695012952754088820712915899005904519556543194728917659307488559830690683403346866872600943700771083328293151436186943164273404893681029247318068372359106752848220432360267667685970914890964228518695172573837645786488011589305257260960777439753363980633701423936265532577964536521808624734473825800416524739653299064981394684418268545001987464794538651651656561991907839378355221917125778442214989980562440632293286658345743549991883249038858853713712104824391749576648522949593903711384963636246069830789172716031122922679976425243194272877726775052327185709442976976037505159508551913511073127912045735263008272615076689882828940995663571019861610309559980135179068014508448692291703597098848962633986860854807174411471812277370823821138296476782691823949344217004245711199251405383473652528856975056540337869159697859171118587969553304674571432255898978078718301710213651210799143762405047211506416255710971420089015455929577048766724227811153007929786128537911049822721856078396100917808636594637613470673465454425302393390442278649373636483286974852638593677075132292712203459618391954208735700335842325147776659357949289007863083093667071040397666342651223761875929241006643652754582530132702964415130262047521462984066404077538649496495397136271187607149745956811444406908400121629383542409320004641405907690411307441471275637905105735141415023104503575718995395062030313059117610811654569520654638870282368731385320209348430473548608517324625524369496213472026508279492214588623572636260464885356496816097752079079348103562309859744847594014867097125414182990596020892631265397289703565651192360076383771368763267733749156855709336007847186591719325083774901934062421608848386388910368026180922328579301888041446280544024157312942060210617109413397533615792559634854414578587567782793046848470528155821271577952013416676813973951734561654959298612133304932626486617034418751832451676372146762348995683727199475178606806084720707369375376769819956711931409213817459578958089990646372937789225191012696226747592488782581926528148312465899297333279157735064896906813822244080594284983856891922090629732526020460448994401437042134366403927770742463222556655190059174859959451921149233843752381108626287945277654757425024677852737263683619410660392781808959267933376523555151464142220652221209862243462937407008248874752405196985812254928889322038641433312508507898053347518051443182807998981777841064018631831305927637911381527976810744965877637500664441251987813346776273453204956726653951508829102739042686513835187217659718606569863328297789640327107727677355773991256725065102261665518412671373045955567666931694061365579577070737211850457858155078210751629048121581450551596283822216259026957017196462459537659750788108992496131105685809880899560079967683899335968836779767083074897168896955307077151360581564890812528756952789830858281994643346083338935272687193270976558569532171388793828821933616241959800078680145177103155708445374437301372685644042470782904950497559052801588418990860436733917756133742880420459894043719384137884457749077076268223979447193595324205476453668441798153247083327206334362308984066312312540106239611363129657269092333558768690332144820561549289660455976821682465538643203423366725565113039576803791364295447003574305320315758388711694978491935985388312979313194113713866492659252680855480073796769783406754725217504622514071357347154260783273692619065250975339064746595142943392401634929398628903063467882375743070931278391508114942796276407604731271341670470380613835146887133348560763936149368822479409457914218936446750430009259100188911782422887715542729844799267758366014073611988522957566934606396318783652976917725989820192872948157541070600441853744754380177197626634751508636801516646218417621121209100046562245046959387245378308877423288937743679151125392281324860213229888766464508842269259954107905720241495934065396508716402139975773277184692540310468512230844919417287325042805532306461371345114160533567581656419765488565705221555468717267179721320805517966123501312718898978266330458775705066974382582712751022595167148120934595158824567507206569708312222505352666398389910150029819162114205369839678627943531971117517442322993029137827348761977322962085857171332103215841900314376037284869017593179784207010797014949170578183768193327788476716557266868931814939366970874308850157001706834555997735359197822983364198207702448503427410786021409434197854237601349415695893474223096712715602111533731659942064976557806255165243034101652695535993223695270640070559499017055162976735595065895174999685609099712424200590370728034880297567697037957169623442057514133772685082851534177353640521423508547896847075857776861590524460997372702453360568909817317642593800024502389921167050705580057220599735535151339144319855814710958196935924115691198741937667855875098905252545809184436086202429801175802036379019342855307254847789628238571162430844297042828298584022170431342653264021699457526949951269051890362510878445055954953860040908260096066709288895724498204124097189041261948397085847124591253943217030965169289297658008264110314928036009166341235553565898433846119388863550456570997883940349030931406654691655796443856957323023284502826221253046817195925266754020158017680709408775316684943292544758544552357234205172846864050622153550871029652801275507469078997506509021061470481246581408792010704369260365239354747950409442968569871662952480314602191795923130221527171932214049092981437212483444524878166877968768671951970274215710700931498407510175020028936443385216581912998798258321970223343373214648542664960817846932710813169038463529203460786875621263259588378039006868291317019072148683019518486543341640564580086283230184441363236471627399519050162246894708850423755067102959594016316585753214535517080541668191674514705984140572772823991807003880665848117438236821444623308919202493438564954712225814520189251382073393037521115878070668311036301891727143773393548096707302551402574583086299503507768061938193428557642658795798868328328874672046709223397228258703532528149068157502728834001159892553777307275307788099260819122911525911454612074054576464014183448970241178407675328820240884467163979653804143162886742218592638719899111613394302278666460378120404858354161048410485748656186194197031671808343231164803835414902874172681391460489814664608707871474657039452795665615661075286303424968640919706082806899898023609465619136462258495997310213548874813900924171996899582541465703561923714673528717014931405335969830317841649735703831562913008845328378488729902141169482882501308855378544766739015665932750638328088304025520081428410199742239520896455487918930189248731810069059070902960331372053290187183530822635136506923346201359314753727401921690361121239838851458129372618693037823267820827102965953298434784234889393280211515498279367499842919604216103443232154925351783315500698553177998738308678476086155066422594034791576248858000366267319025122764076938680061072437613038006143890340960480380505925223494701084122291666081854122607358293129654257568194087091003100898750743612293900143303255994666293715954220237149401301039335855553720936825018998630458201125235287390401917170256085759217919348054719809023285224512441548150336521820508040104776049067173271142989148490405258894671437237922265552784650205872866844980857874206462106501424360671675743774291130519431090605874475354293097087866372745590325532507866130746048622706265318677899501318298452850935087477234591157568858329416360151680186811907342400062002997347448282922248225933467669537261442854366240330984421151254381384366715028500122752732978757948285729334560731574785565258785992772807540450414431802955685154997486512959223216975657105818443949698650596945020103701024290894392458109215409182690197900250720024517159263641456086595845456158468059844264866251141474016474304611036572538670449928303073615493691181012928111760746788156983862815073868653485504465551142152036471587784977672118346695615884452521254909908698271759666921643658263965924992121940920278186519486991751798858877238361178371064032449463748106950467056604262941762801825922378124053821410811209731370352439543616229096636767850720006476322514298114765005602769429186267685977528364720729788557358025617445048757743192718155828528000785888222697688809343746118263324327457589485731350910857092210966359236940086376789202389288622872109261752380645121060199805714724124044169534865980599196348169573167127372924073360689774759522469639677440403440012287732695544670067540863224057790543363657399116890727718515892450591970905012922509244947826374481298649437210624700289349177942703512610883342784352569126248593790488767107502756973550841919520672495395217488766590081292172761918479815256443214519779356013366283391167768368785329724058389301776385794563411994520850793398801101344637229642376908108883347616356835008276238620616601651275480542254344207989932217844709325728576903210186813068542045969064242892482939167061483461091682841133485815873363068513322221756999926171129956998311871658988153476401400498177074921905363582608235182869580757622062960160910025520046775258824139967053763599410125685449020507543558688483092046553329354386986316041718884379049228179860165653908876594144622091828155179452488230035010895068875754580362119886646210822114894559034252005013952699282875772885190029994782658393138193358943280852782993634997798439544831211295151623322330854217511485748987584766102241007376197174109576386597366388942363322311833920625380785137124389644651082158048918166365373282769454781100703147794470221717102151076393511705495534426600504498943561759466788482724414735782603223067395632379109290614430300435220942900243670741008842262436359300916939051880628680880539315823624063889699737276348701312328946315616926975982593736347151788803580527467077067315730463498159728587237897618370122598022027940014854126408541799272331088373202750273101340639824338048227093172653759709008614517070949696583860301464600632733868535230222221988322749460243938097036652362747622447788160624714571134014693628788537088142826656206117652195156420088003473156071054525597884779525905905878660520019202179682866357603414976377033902023378822292720786304490590395810093846966892762798137950819106547803104668903259925297626584016531167355339761789203853074870096627747746255395485775801355481059816428276133882921196070319092812700386872633522045827496953027380205096809764638786516537106675715099456336231067806988383399781511131254346306358673535975666739404746690072808547656588521916408797038301591863581949883837826082174583764828309650273997145682858385085663804407014822292862756814890833837477967176603748313218951101561768798280630745283194219364999858109465183823431541579347736121175603382626971779133808852703838624048552221110098160445618092032455081356337341254651058373191473254630872814822951181704555884885362949054443742749100467545727815084131419725026729449425220911816600410871788879269863694908074182588981118886099178223490165256749742303182269683168200339868375770501039119649732173897239894774759895142458280914267289079435516209313304939037034244619453490759251549852038711118689049133074065294140178854689310177178978308117356970594187696030358747524017447332419491292793054703673859720109480267509551834455729215445739071584155843764638627875937552553685523318177408187331052629597411695668618197582951321235275844848013458871012602570637092928863443731863689063851310817650677579452711727552304992855926950653308638685933002942216575926910847386299427988969454163573296405083870724311470862632837881567148433864595390362493755473616262529094899541379353703194963795443687968079661598751041545534149265300341120653423311581049926088166640720405285354085091327090688711364402917979312388139185405429756964704277700839224144859104431260419431985938325496542307042140146415219266021664507208391363350118180363364727423999172584762652830467145888897411892557067904980563957185107539559125947941313763965513066563491152107843975738036837607341674144785474310964855825023769737334200113189961709047575612807274709594101773102118715714180747984332143126638647928006851530603344972415185243676350854041435199265300083170215132149846210715965170824268409916395942537015999781845744307385449412495150112455206305466407564751346042321499866359504406710367525762991473864149724246889988814314108658577135874108263143269581862022443762537176906557103749433075176271986511214336500493090357652027663950568354936823160951044476337827570178982262115370612576423201933442381992142683632766862403795083982703370659777104353504527612105394703821997674786264467799394223879565191045272732918599977996158979255250085646165383501643865325683450299427998232370279388387274706897177260782200904510846567901892463031914852897027666795535415175105154338247467291608581692277530992106874937185658003209287526186985784252649240424601640844697975093828463561192378029073878475999248095675733886005657733159852414655955836316031833122823150180688920515610239038800722244542432810540829875485831561044235560920578383292929853282007815760951380253069122909169003127499201928448034856102821873869379721932352115737641765931537355295960707993271713779869802986508632456060068853236310558721521175966408135556047210628314769200748957749001748095945850593339236700674954816331722138232066596135897875939480856623041869300594147899050525927469359887290854329652020609917470527802773702665192771439293884198393276905653801740978081178139764784754370931542763721216577022222696944809079787772845127518761204742865707253426615856920348128319971484453578259084068085715097979343535546762106167314079844633603967836970570648771649650043313144731464607007571262032246686055822461672557803416464128680722452118160298002593973880599559676099433392590167075472152357930125726394718771376202497762012611412277999138754570571272133616701301859496790551614128804328085875223034990947653266294909215092447469219073645862955939002245286319713832368777732460066211529871015863923081190770387124561152400659315594170773500059492179723242502741361346503728047691074368745348216481592405979167886335449782423065079802311771089621691661357466924102910450842272367521296133837891247550047707295683635271607362412672951970378606371593257874220009956239680504254914507859094962744276360429023640769970549892213178262010967702104386511594894009055293234522094838180252025906446623925464305985507533426771938006588637975105422020487628215460953575528812715140664468585499180183660950200398451207435090867903316930647076849158933246248735249809184025569091345974786783619401385952488170245263806786352436585191540600716316619717809480110090521581983229397885530442676531426894299103914286307679981566656714290109686474027771601997039939815842594402140267435359615210653387881738155543791931360901541881198808481269169781242826477994878606138872486810740326131630408268196191499747420878768537391878154224450313141046233166754168030831807303700574933890568946168079432211477689422432267522536836231067795498312707206783520611078210335793980495659746591067212835945727995266442443443842200434513849156160264050487931781331067358963547476963975872208223978993431407132800266116072166157338992965584088126358000710275133502925416886667492559079196983400418067158631315686589887912170674458091100850082168824179375956153621572491506383467823208127318019627027045320717273198921698801816947203507942873536968793245801158273054739141364141671543818666415154607624785329218300942021037584360438265077403175359876440356498971031960436638969825023122967760201424379023189324702701122619572697053154105578142432737477545054794264383264038558125010647157990726178346344989345944225060808316276971434894114541080532061985809559891323526042486412804458409782184055060912195581552623983256152187576377267718218898675424017409311821373841611344695691194169574619567150394958885218375072772586001748054891358424629007479778661461209936360810388452779027335077682041853376064651031901135178624862646384234263052994890354581165776359976480228311325829730166548309874345386842367841725309172388529434879083506316225827433103995711722915325456484998132405090731154414286111795060455052587627022335597057571310169071075111021172289843502764231360114399426187473348874448587710803914068279152278499172182554049035831621997495882239331543478431288414024049266154658306769337849073531311849409085819491679202649035756792290574419878605442579548649789618423113200493349074835904317643427845973052832837120162900021947030595508127698528956031412180445080512497751554133317073611610992592765496890948340325858731513175050786943815113536077359047757476843988441528444401090649188941333188821517337679691008133466539995160145153249319403757490500581543354161768864144292902265343248685970277478099195732970535165705270773774835503421504157859370122662796222544987459025101481550705236756587303328133275080357335894376107540059864925915068280536379320826029256951404645243901358019576456142651929481466785860159660206487981309337008979132174015957933335142372653385369760875223676817699863922670821127010735024017803816850064224775898907061016751817704721441651220421023451377004273866491416621754174909180746708209758928774789024463838816389102867736443217505393622320478429832371245860538339064683126964418884286568152163280510970105111736093421136863634660990582451922038865220798975540595594737533037793992241182959499649268819269406612532605350954986711258210604704402901771693188068158672245320015729278199143687593498066416377441450865518116772274717475056225970277856539092122482377790872323359998902398373889781332381914947538172352449714604159731937566726572252602909144736849805883909959732026954222611124754341799847009750500270789709094108606040907974709351995199563442112026528327798905116530653961351607961608918905615034602301105449876957043368930822005985634839868332155370791413208126914275747910143684471461249021605031455934492342013354808345745202693370621444960351832919082673178646697160479272763539074097217023409538608571191848569511446564864412597680748805923197385060493692701357240545606003876678123718718366511339354605832379870793119414320127537375466484555488801149401093178149367839382376516915570902087447163958442071334232881848549158974420159156471310828862346573596471540385038637571798534998693179379451121707704681297353705449765588768541357880658757294441458654016755937870114192835861721254384360390226716771442387318399239903657714532721153837422298627462955747129270438091846123046449360932184144045964921308213913577541876385783883385013073030127122063250658315819766219168520253882035885361472392308709207485311167116252365012362590380683087769965258101697019263566018130321175039397264566963428132431647762939732235670026672513004821361597857217385343928980990961106138686010410437463056034345520785349330836014127038181975077282241671467995474934548780544360836965804177869545005601120220764222974943863274197974660522779564304040703318645718470094337836631687050758959348352924878528713712008888302693176052130496680408483678483274940893952528129725841590162459334230347710405211629104519223895354260922707194856997614225086868140075100553857184094394020878730187594573226518694331606399245845187162391082216227500958559463315292190096749849662303619216867612484499642526830671449918395477330528344742425195235808545550401910599470738209444082732357930691039408783735847275698119909380051676435489320677497109821648147023626888112919642696516021962647923367774358883351550547471230431672026593621312410625316630498440679139301320375425063099099344988352234296276216371574010102137690643428798976619227723455618216811305770458201489807350143430510557057410282785903756678428420506080090339609384373889253274903658356089629235869959931683516186041490394129646479193836759920646857007694312639145776817678844962458579344886820781479029505295401075916060239951249958044618338454446370734957067293134211021688959881330855568241633869056612084003859245747890538277310413575982695335857823628160093375121635297682473905710766682660997700282846959751250824365654797725796717824178128353923498391337338254282732315672773615923628149251386525155246869938085076750266101021202264387954404705031991383890431925831013828986106409613852550638560285925379942492915781498708338270306181061076427288405137520244071825244693369240636808192499818972745015796723561173730287300820543713319334010935768815556645223853147823530805258351761703303998287579487555151586001513439746908743400258395851332662499423266354628888812555454151606727512864526456020569333813339378010873538585786325363668239389616913851038783224834352253947889982995367131701846700349774207071382459229646057634332470395507313700876850158596782836025270700878180959908845707511567974390968381326259588369576978303242326370420323148830644729191063354767508281845749293021975865470676630471073017351442575185900958581822836533700430957815304022600734638983120574223778364750374115750281456788207253587593295099606107867133711844224455317854118842085856200217444308288350811818995458278832485634616365255445950031744912858567816201018101819805947141917608919353202034909859347506998956622263065494913563777260559036364244414807236413350785443024348163908962144190759309044980343717199520387736929435596589132667104975968531686819782774588258158835423515709994063231673860090437689822631091010234702372836545331999551214094456214157471073451736354737724086510264962354914066465691560801376991760004219888127452536140276999345002669109097264666755907450312063471357083524205740359794009864969862800024846496228443254222102114865978838204770898930003177549992414556879441642275519607767141957509014171727670583118089362131515439988809269152272279550448660423806216129605119843384354689498331531268699756977514443847178926112812608733026192069492958001490346725696905203675704609511058472304201866505073197540929038733288641238126320231161771806524480174527754011627946023429942573881777815387942801864306353187132549427757793051079210508723611234097728970018138290878134881619416757761008662006079726297349991868738322278232106536513992882055604082107764148990512825206611114510731839987796621366037813855495360813312282565643137674673725262706209291203678564606449143160726973029257854624088061697211430804833151997406042319237312899743981736619163026626258175157513899775308634066067725794777433112705671095476871796898344162761520642138536540895312172532401370235163457924540192600418685811789346542627277919791750668712487387066762938150568611586720803798264207354358705252947817874296169393167289717675033477016876981921454709518133308512347528166523192963287640489719503680353614010671363130223756804841681154305743261996196810277257781247380696869431662901105591044078610757614236287085683153431312251276296442733171310020153475171965691123328940600674121747323277342214314550655599682680850923425669381748944068711937351019782585910198407747848860330593642740497029845056586625777840716582227666623402567101722890563941172637665975405326430078386509227349459158830038383099161081324921382505431331570133732533405011290357962842805569443568426659530158193892379756930257267246154074877931463206098803866187108770678254970140321017952603651702592731406348394257777718313563546144712317049451284557558025454026655405380562354692177089924651525505040337266076767956406976304229325257270319606388835817302080094335587135076259315868077132012075215116275958441815222412571873384522327334736996147658773505267782590691283427905076654072340804347832294474580826545010857469512489125941116534923457993052857218670690082464797237182561624436150878021240641120727385740535201202566869509988756338800402190202917038614560219918578623842822724568494168060649906532881481051894906370890332073261761250097566743055599402610193178633208741416211428729424126455947831342172827551148894786252161317756138728022217925175878423425288510936327214687768170381333237506185212388385506098644312287294671385745531180652629447947979099345657672295579649336041026412774822106025209510376462058202392685400067579229713520543965335721196120465027258955709071861670653357330588629326839090935937943745175701830335543016256699927145840250622732976054387505315730118776624786846750656235704365951374150912762474964282117945297027320468490590837171581511491963275620220788540501658254176095996617231694266354635977347077652149554017063719550677784817714620736353049721241073048082332711593991715113676294884788072861253356151938057362551072568783843490951072426361632294868090693921905477718520909935262434113172474119771404104075391251351167236026335210707332230393571025921090069366928605882588219931413530689788383977676155879437067036949213341526467583648399267125223225898306953707155289560074184973746673782631481891459792374262383255438152606478111925906379813276005021855923459561476050736740088463252131637474408488705519436700225399085975171702028059261574565346167888427901698749831839206575593321805649190979643023852597721184912891718771618681789234183764374461477340573910856863800929846363607490181709706401610325460575727214259847485801823859304892958484125349462180856740128418688767039225550074625806790314839912314629970091559885159517379478781783404936356429577306239388745879558519625834447703666224133137150902179532764083639614549003030306122590357714138860479648482573991985943120294651623403615999839560366418177576843889388619466180632950790683611506335672418194711657310150299052062529078878946060017778796039831498642544965558285152808995180984445755882614034171649679874418180194312777186014488322407815379173879800838246469658385298386350312968951397030153738439373670541549250897706667863563320702099474973136761104037126488966050614952803597941837857718833985810469189666054355284870848144206281091668555777296052060963945041405061194527698017096877487394522629891220526270728354391370913710568931252212337899329629956432629691036811397489207791787205516491966856304103779295446528882283076409949411765880826419881538928696036824597051879155197960394163939977249392582769090818517636752654372542771006926265788238469370801581430450307490547006624624980138477679786258093094647512717558927421213433410193807233256492248978787261482992070448836557263808876460920285714065322629390543676956367776069945737476655734719701346433109667839267495085857906349659144128498477958463964941360164560186618902272276276708576614310078907208877288059080466713302738490323257196357471234131634953262721003453296641978894583043512387625736759483451497117378588473213951537816769538300347040171761158874544479198930508538911369332208196453547204765635779128878778361099442163437394551588334067361833325413605143880720737826128321412037758960212282113284270775963148486577731644336595303999671546417047378468446740843114636650558495073091413735954970728440333420734021495227595018821051667965465584261207913724543816465076861297478978844202918984379639018032088629732908866884082946434155095480435915225068793320321648009116193370597862995889746435502552309397142654894968383489925107050475293198536773057430978745112234809070010229164387833131165937335224793850733960102339671821133347538163828518657678895341527712380375450176624042811847664889466908884463211312362834591572912053101534123903808002554504480219911297174308229442799621514337391963148471209295406958977461146873264773391122543229501718246864796156506474823175159322934227227783857642705918968602083013602629877025481712143940396389018117871387378229527348992805472856072453508038936118784273386942433560319816906582287542137728508088884551993562015675513033918381878154983142816399817703403745170696331342002280108894597656529093920935337476382611661599582983225736837977464817207046749783065655383382117518412689774608347701818796660949931522169986985298067992728101771194411508932521020356652725948521852284599979132859021403162579814724461136249562764439424735787827399112470253023778546485967403751538796063978565698719112866832742646186893569066143258034567299041457603647196429871298356782076988691857772406992708546653696354739916882504674492297209495002301634058871113623258507594652606149546262820499326576435241120650157548746042555082280244190428863808371546357924777960425268365174560420241487449832562902013695933450792256762960684813547737556744001587648240328778985389710469881390165879962708191621185116795077271951437740707409367901088602606388822706241795695638517265488374050287236900070824962720493109991929083899460479616253902644775735025586099385389941209495038806947227470876385592967600884376442986640268841348664733779774325913023509343139502959710308094587419709202173781812082496309560337511945658153083272378641733877776302423619878610801305544698589455039312568294515982530910800316785111698922230865316711042804168629719332636887328285910241206763752499997945143698442138804412817571810379484321358319124359192232072138332031565940824564919944700774044183680411823128303560276085471841701956062076410548477092204877739450099205724130187905143390569481672815156336674570082487777702787849344695992228756028727179727938883906515553666645665991529305303602093132753771235582072353025638521245782544294446787412852065784327553454224024489730565693576387538762608477705307157169977087621557342129774178219652568180691611515547935472720534353142916216531432114111881629752853420896880374460325607284736379194444071438634846465076684325188279621615846832548437648812428737941577597280860570418751084270858851917050329948520366750977669104802457356946245254708465135660094860392857351246698799577901477646549998998666427936403834129818993199879682827605772080049449506566179102140126229901802790991168316690754210786072350646165130441316807671950191333937397378606538166537489036843369800134398632962740118964064845584651363907614364305857176526575525681176413284526281141663036176538051276308881035750540449645210776576837286802663432693026109069530372726468370012519015130254588781591455482964841516357577055472678114603873569781029012160163392337865640637078033268641085490467637358896944298929741516235726580062354552550101581620751517618988555835079209013863252043263076653914058488709846085403917957607759399475007437274313536772415858466969271032472310095442883723102218305796656975367158670307409877430057983249364471971268386477906184384151501839096998605064716894294542238919089704475701692432114251537305098128160506251606765579876684768641298951176532617782740441211332951920537968508124030292920933369969508450673228504806501459936398652830487286645880427065124134448650684508461147693823527337650080990020905070686795542783386545287478620220391195304302242913656032830448641832227906810066595925953918703869748469190005228697942830105732959120646588062794436817912913435055509716271805098872217178797287971185082968119399946874157292584321160787547446204273778458311637261684325392259943998474304913854349417808617120210626200111986479381441227628750628189876734615918523171064443618572572464166337674901194778330567554625325931798106331745617881231708174557902961764844483579954201325753754056297719602421260587163717387378130845211699399097569463281941110241380635623838130790344731598723015796450279947253519772052043681679040458912505284615745827686039407507008193908586350078561014703230654970643586504563139483549430481990247319073808342394206398064021042551732079033543696287040977262031046767917631238278942963835571869149739755983667492946284684070706442995982301794046676631414444923511964073928565383809733521356384453570904730249248164996319467608256120062257491030615749340971260328768023098900160415348574719445879975955021062630142170077380111619508373093053382600351784510345077046204145509385294496324683684330284217210057918733355220380931603794120376835151715551490811726926144814366799955078000001779943732809219741919918743066777252908943442350144856061401208578127773562505297980924878664339231901285262324441029477782375159691181825567397345677607504446778524638671695150811248018207649326437706544816317849491265316781915782719398948014167231069817194765895310720047620036151193605000615332995006259403390362121291670926724477569347364250068548669216608134905442436211753644476678120141842382436097921413088632421909950434820271166095609175162206913030387329859562774010243939353490032198558057459170711694565714232817446789747724656898783844185898022839254370636489685456978778882565221883803365349499109659535678308889188929603683000672873786349149762926209009021653229834889100321225053243998100079363385832199981024855717941758909461498817153255399273990566955325738634257049172689234469344990251855613229006723738845722992179103675056559743631981468762644164184915937663169779104307994439554810692432488186807466936487655973555887456776812659986771777206489153004464497246830085716055478482388874300909568648483087106064311638081537287518281368188320466886326683517569429735627521783710673053076541148536893953823608161418463544619547556265496152693070121119260080856673829608612573720030447341172264452722222801907157044768976739522012144422437591700507933570567001204633696433669682025323125918169849905650989782223292821262251254843069732635421027305280462571848210527485162038335561743076207623527860829693190040298792442546803822774562763406588403507525411055279465883228735757893598759653165720466908709211526118216137085009916964710247811837520651601886955883809395117694399039984740530148755619000666163148553708563636961060063039544039804031885762073357620838738583863845311023710411071054603572778028592620490101968950598315762888868641397120945592425252348387737911879590613447949666957883465495664923585783531683653026248829230441934614838295164186419792904447021390149221853150236583689415041967627506029988033881713536739509830373020581021623493038129363077148905975183520320293720630979988532846983575749994578981944043926941953473259929500526705921083026664541679969953143074678619700376192818237793034467552431326778505042266005614856712199567798681700775225918006749596111042807146735980838484764536339704791626506562929398893526311352226459346038904368142059750144789518443583585544892147664498778911709492108988702767966425570110904729288926932488756202156531724849299543170802255153833289698909543536159667078382200350954518553877665511833429259795836143556173427587865316513756873454725933073276192860007164718004584148974144483720718353125712900904203094939695993395141552338921254620083972237658637948211978669456025553591361203016364379435602043168920600293457948437340392992493643161714254185419388619482133865046115062384980353325700967031804251369919685165304679531554457448307729242109207186163610655736763270994414694153059872979673514529533754033771754228760702584432619905556336160848365382341386601293052448684644131478403661063786601454549570982683269598578962330770148501670406462085130631134254740683482341416784849478372531028361774852463910128591353920254767308781249602528869397276748189891634788936917730305309941063077984702181537559122993236371428677279516540989236698833577897019428003148090121971277056876783447798171162143194131435240611604235274465584950762611562164437518230959488279148714888494288508105660131360861629798350409752709174702285130483899119523260383726951932753880541305822334065314417118089143741961760088453185407758601433211689656437088188998141141305377635436757803642084173800230782325006447113615295518472101748301355277793427795767292365649769429692772782312570838675683501323239662849622448816182531061654044293843091120595717146397138057252312658422664377153120352633071536462377222217118292371045482233471366402092209279352951540144670565154433131519170406182859453168789607932028405937348329397028158629982293304876575227173904311395976621925298515084280782530681018231536715420071821751903996244547702733585369425800913130687895484771022833252423264042252380104528301399553472114690934371526330747151418017898078711866429164976238924925125414216286241782717445417332551787919505132996113719157787477748859547449642138169433423784977595631614019586316895702110333439313575252502389872976613935045843101806260833585365801135442723576283752489869358828470055607622757889498390969105032223564865230551172041678019834816776998859308516258323132247878697856423631215421528167692800208694014458371873444837564671103176746983439783467671139663387667460423886446311627732384317844188205589429876276583721993341757112096694426019071674935922153824783686971848135897179657087162089952987385905851814767103131377434850428387631245917211242413024083172347423139183194340765956322893531810946075509592797530582245490399363863023134460903395304671234840033603592133598734602930570650586836095927379132895578966596024099865275937536175553152265708429764036469665678764421743855885700058770983567560400122405278617151281404116816431379167385482106304355956481598300246590316480621936405618330137239620633040844130051168301958258319373846865812286950012439207562664091755688421236446645410736114860718453949548979114764895678010940500585250580703240737457674461806923724850862633656327039312741704021132718681626657917200301332350826650046705618325097746277790170108064714573787038352439590608552094226678540146703274995497445817554594716915634668095010410130009347553666876865130473985848367838247963879090994171025361443443074083528141182640254033212854235008732521659211329888576859350790252096732860533577466629817817085467527958698132069952845512085398136645305213498056248294458888632216184718016534529093910446277011357989715079842932942989296166768016166611908660338501282820874438820340332144738524630229197437701467070629453997532111591424478463727983691699811846132986361667886355427378539810341228880921030627906506334942109585842908072033189397660003104833114537829482847869135327137900512191925923752475180976107227827887364654473969582332193294682342707643050142016244142410793955829097923995968949979712381090075460288528459061039042386839889792548038938491203406602892241138503283886905862724348006064588783968619906561989586400532178420789369189182948540075629110776063889121303674925500877946921671493295462417096719054579433892540447227753600352105589313957396266054859958560296183211048619644827728604368202138325681623763485586486569156140009851895331546262287745983028569325920068650518145536880937524589315832044427189540178972958680618398404982510682409024123456317645209833579503104775008117737127255204889258856510720980367030939127449152045535031095824344966653699240607605838310863083469874976559699173575933866707148511210747226209489882636707357008274116841077804743277596885834256493606158796522067234521028191566595123673494680124941286657965103984589738495457721815651333025103593293976136658070527955697153773088091450386225683885925797672651177816312370885000448613768677364561000626831920351315182355528726108636031087551805335072574598279596375483150887867756471479780383599536185398060646787690449924867926903928424973108661810348011360670443004492241535316191148893391735805959935752143521113746243889863611103438300503181940562395319240493121959685798798896530779087449497353365037482664880933436935711268670373227371511704295683920489378496915569459667682320286742516247400986781181300115021559327671594183610550072781589443864946768483768739812135019991889853436147850646805113062241435362050673499150213514612741265209421332988346362616229375885799627240054976243714624744010532301177646575321900823599228525542241270948091493137245973546594021811732130627572706464127606164949418606913794116069830853347886431348926832406496498308624773672286552054209471580623599789391561541652863061188094174500599094532570242913114279873288049927476688628810925938926669286495588474204012012603536279836958325886150370326358515725892085302381642198388867961148483653533722788772999808078500663121144057161377637481285515181843139964685040442191894696144005840828533249834115859622282254744838352958893862999277969748032572451845295651807522045962162928591704533929289661545143664469227913544900012491176308038889951662193802905867511939262825495467280535154028326909086839785606504433276429269683839819155569792991202118474710334757962811625920279092970801460900161540053955343671195625274996525940047282797876370860024744132494017398640670099987551655753671398861587380683858732269487156346812949354425440544904897964731454454949478230787726224244099028138226367404434013411800117479642071973523314689646977838008035308987054120874681197330706406281169359946104355093966170046570630916939614178094259224968867473827694873119552523464658027670743546395257525884442681982973183318886678690339323813381356572294282676540935765583973666850142557906079198533060886804835008258248602778433231831832366583132554031379142436575661428008066129256110604126444708121563373783522976630540358387146080253291458609582802213686688438065328452142785295856302383169974812190553210843763237278879630977251246880438385228370817306052775129681123847450389756195445704184835174905041535437757874193958555630525224160450614190801795150526362009493538698311718946634268368601702539767956220405049682415345101478022909309171285169372170408997403625070672590262892881258595259472631739005823991171207032556854269949942816091064884069697406441816761958414588309930174461097632386138759034438609536192794563220572374724883151519136562366800054999558003130913581591030655275219331444605613767422457880832756599850133922543347809973527049192180213932537688611263795238553846764613668903285643669445473061964083067438892678079615767608528250010352271185229619242581480404635495148313577667609870423741278729821052130861745162897692106664257693361611578439628319915626921600071224231222454843914179171410403954151826195348308994020986632886930025003188904833361021285360758221463608821685408880658024123577262183890330975422275174606601134684691898062887212027531102739593550745156806205950823656693219128043801617833203827852080613023423296322061614998644970659348129133951547333971774844516219824387965679441718512057055203398459451423931673886107096261183272303838239593491636008545644152600972124293323665126872939730377909711994889016945427032458260306905888992433260300082209307307567246340025795371292576251545930707137233488826685202564387813577006665552326715434654815571009511174395796649642031672777480497067112996710275980374928812918122758327293072785281333076087545936509689011503509897874047873999149151307316823606966760210854976936105979872002469088881159314242520532233861764318919413363211849772684316249800799301261251590636676954144243979938028274492841443932920535864352245169243844546879908063792278730772661875064940766517232595023754960008595397405037989488882549513946962087635166941772741815580429003713998644654350770904581122294219548052481900011494974521548082334251609494005490394605997009239777481009019181446943715940784773948024500888107577762790889365010993098724167283226559973820070282164629583663720346739894408158763467945230295698102303037497950954140268138900821709632974676894236502875631422839328427715282238889798633133554292935432446197814689832756958184044544278465110301441729848239174585149351498590648650343738493960097603084378241993330318822117645247717434010175879858188490308945613447171259132157340261289355699648130990143757417974780224425623470500349714726721813182009045234654749874323743458728644960841749838603795828556115572655360041620561485212266499141245842632701594442536435005792669912088706440839244462621057369777227872248620312467607672924036979835969734819172406792384331002582339460567874201571452231681096612834594487190158917387229044386684960911366061213008481150485635832746015155168407658241975331272863583871134257694558576447609718779153131510361075557847136086519899030750724972717470475809188742379413523443801638736286720761280617501521593890641865699369057225930103307203153142441260082309440673489971037874823110479561885645704188185108456514376749297594948957844641343627212842941681588662531668154545369940117484240610029186952258768546578860199062189317645798830642234947095943359432988384928090733490171891505076321377103504509742242121388239943216735692335052572571081075068304183021403808614872375566087454226917949944460973203017888928451478203468302365950877517803787445378408798033720550145869304847617006277562988263574112612015560845699877539627693241121504088830794055881948571210200600859837721371628154841010522033395831412923934142602431801604903865229683600810358271322359489366746393240855530555383193011883800908583190189376351011052014329986496747015759292579015418834803662896167748799518998630305724214336660468384229093909918794636349659976467691422794126430784793413679086927905872971162789311243733761160150579364590552519723870134534347965710510768664788902084770876242001462403456977655735272636623267300287186272934098210986078387788243481587367238064414050250848766335167714461774430357898500561957641153268083378540023449692794980954658457401739920920761161252815943643891399295389409215389390586273397232522613254069367600204225129116347478487923128131391179801948803438151148963325293699469442117385809296164997379738229700029447796317728396541778038872014762999177819183338157469392559119585499064716057784460069354325359352099179717620287280979513191298547223499455822666366338446154476035774056888193265671907537343533948194422744547752031192070389090941742142820556912745264054937916963128253149600719094130787482922895386303329294621405248864893293958740314746577691140136374757278985475853521463095735517995681526918157475757968423988456715351253335389966609241645053398978196510064142533346915448112684400962021526641111505824887631568338451377352807901897800158718646200024784402545189377944628754431703802949822403324194352915755000663869012948420011856031097420533317701080867669871558902221870571929557702537389062569038132129821867618583389214814432737535371562740710919330818267778556316346266397273515895971082059689989115956024580881344801221250070758323228541588739204244816878873175221020426769961843416513249285709522910985494888516668754345912690527418790730290361067153053530992094929765181362903565150148143702916353216303262826762826327209703807621026640693907891380117540720818506676126677580256886445490244869281624606966939118496035909233358750310243234695404580516940810569700167201349104873312094742070175393642025668197887926979040555873886137665000637387950150214309566686276296962666386694925074513331529126688847832544013255516101490383401484300529558930243611977219875581413914405158783543513488682754352166255519826797758299938920841269442935046025310396158220508042387399514547600586340326564555307746016319412063950585846085523041476227095356341636167357207168145071305285017290072608825652689832301005168508324357478882362338144109270117913456382428146760310105454730036653494376595097140227810514227021519639626709049231819164219235714905574020325053181327761935767319519197204701064813478385215315260137195827905979702227836421000783128563570938708904116985586002613172752491487121766338320937525527874244315270830796089943030399839140242570627389499731514918476914574630257350856516148423621832953267011096060417674680855093489364112654421937225194436423632137857674011869279902965723521323430061039313100199783021243103907583218439077146841741675459205306055575085074495958175385309704143254631071233856191145575325510360060503148836667903470231161909778293646793911825416810313226577732198191547812466462532452957386128836823894808269504453121756551642109756715252041585915628538016244556809686609783821293580866049955178445192481139194610374985921111967435872320574909385479003710396862385371058919559943260192690836310499415014371163410130262626835169554497625087678899025987767329501355696237769845614548230090448979276552607849695821690779482064179512770812773202730886392569227314656163708856023920068430115446164903819825623352244632762899687967241801820384144891404391817550554250626729507829654795539229597011752794184070561352267076621331567714087533182498710489742591085645153086502398246159174633759612680554083121070207476653203798704381778755481691030971442025711473190497059309225626770297194009733908824409501449612373498292627345870961112774810448597955737641173258891773124356571524372298691449344716284936808672668678842661212769265193848045728255272292964624747581090919878157883841420766516732173859348274080900135738406612692119317390923117066434736238167392671716710798129876102004641281999006579105706979911415630373521598425910582289319335500593612094038690834190975166868930557829314351152814439554805345278958961393754653763920081395769237859563323935847715407901390480495045079746654544138893397026729363154032556848173023905934189653825711511952660083165329195542148185757043589091579409463113700231728748992566225040597641211492253297672707341486589712289275262256171009645936061770395846604429752802000025746027112940764816315875366467855195916058781620418127714213060381122855710830953008804450034924470075822542161608515675004592016208950033994447304634185328530369432884205626321040617166077647690800103762907484272991212374692763244516498074639827248455460033856650650555255724841401254487614177527260708110165845560643022530252591313591770962324511314676742127562463894121591304425788539207348857858725635023446079978616023728196095275930428063986852692601604182539655515802012759265932724172883116206108746491793748107409305104962973817884953690635281981543102235329835387058715784911472765540787443310478678048923733706122378564287522475508135625456407265430117337376280006353415191311493691342089384907371868318790439797951907713817143996372287024922517048442103193729146816487323501574426416085744849264107468902068072908274076546445029361825217349086965230921688367675747330508982083904180521918004533170988051062949902331002457287432518964526939183125999541244750858635686393387902303496658576044304958722076159070411530082044896545066785106142634102313424187719140427832604942393484760088393429218114205031110733929767845058965126443357680363845935042651468273462075254752429376774737473390092138256404720332195587906955400425528451073740894907343165658244323888488744836225787538069098393979862709144558176159464777416846264650063029758396765257785058795446559752900034203921748170230732748007656237644338427473072416427871714310177541762555815652600535368438986894578230229527747106610570570765232865270450709375793303374260443033572549901594350180442860554701634651408136761072925395491734196752820114079630902933521790252001312277314880654688986555271864176568601451037913217776571788277801919867224452994880092031587331899839678722829447376383581462645765407223904653912639850911495083819354446193226184457604289752720229658079863723614008296310492700298235141227003487135907396928612742889307263819975264574583629053937243397171976800195503948426081752191004790490438235984258688107389957510515848593557899546590409194522292426657455515258739414931933665440235192846901711732876395528848910077709616033712572413990464629029383312685022427824903893457664020573825008544435609318950389508442716757138970652304835716867345712173132270938990152861344914227615794563717914348798942864435586351065128642200389984099073489890884694040324317121132942894046862936117706338251751460785697569782186646913419110067862175567608016295789656094274698814435087101116059084196965374956405218584388433999912047502870169411183917910650336913752586863532519283096172538849470285500241304349783162003103971842653888168949927935302093939478748772193836273726310343595427886264000348490837944339895835146834267975808369894133186195840595242622696860111695573318324658519328709088691583108016871062214271138022212047911511968119983549356825108099602089681281220885714846923439098150302370118436083925395696413308322589304360604957709129114874918975680772445550838285319938410735961185137657340512251107432512183417005736612384839176561884155856110480588077415106922924122089554819552882187960056097559931665590792803183971498622415937090593116477499895418833196291758020906831817054344429573757471781245458517410477659180343180470080147766059125319629721521046370530848622688487815779972197936753306105603631922912555949707513717448473431371969484545849311560700674974250690623169332984490783385417603327161731672588156693131042556236471343123595792551631721639596125709826801090824827437010959176153085461521305667736944301821627981755839750241964327304727360305666246528460250050149885508440292572995200618282115726448276074872435454965692359038028341682641884998323483049900577665413043520403103081442366772606087507369405525065303218109454369458720756433770899495243903831218440294727154534754059135639147639822443649430545170161471738006218786601118072158579333424413504914987868056294334578692455474958991350240909739777757912219123859674600445362448863447752325097850320474290531234919199991029017487787887096253353901884176551552588521020554643447757858342115805355185447343549634595931455996660451008017016789897405806221319879244290008002550668835570150773218051137932208928699083523333097584392985122437495890161843547305599047231782259972156244656682356126914354939509805112342608521374373060404204620724847970101556313847935861372748711459861230674205571574212245598893718017475825651113364114931178945220298251234642052405089725460410797236288772416878735088357718538863107714392223425770634120444411346582721223964815885028845662458260827912947752207117774972049353129047541844466480332699818959395153672314704590428460018092524736013493180159697507210507463610622430503836991650565930320328424833203489121928520068855791328944295661004813866163551446014148238666457858692842989978969515094334613112985946011531084413595367361585074728709299487221681288073340815583263596553719259557253033676269762634926201846491225148181589159675189617724084695640731102416728075150265234098850805226253496188210879413306669628946004388415739383452319260003936585450019428515999005200533229360499592723282675447003475290937638516353559309840980745346954922977429637728748546937297208166807851776518413561037665126087801498579525097106304828587910280768686478444297169782302863994332464154456455904382757002693985361206751282381260630824106992589214258559298971008064958022947774273729928143649470920513169789766381105965095036508322133185468598608166042547784000896702227996833526707509147418048578372711929508685561946491986867294849626987151976920588074178591239809923808561353346036155669261622794557691134299562634289760898228389313386831635756551684064953849435463864683293893796280266844862047476096351924589039808002869898323800195968133279684963592689585454218059943625414064537401639416098616146122114069719014424770856352365899645860901662230329032076617863198686717085011755684939805905239707104830447003615151733955202897646412807888324648294577505175007289660914254605426144324116363694538637470840185423780235707748567161400907746281661207942707122842461060098391527399512966310213045440915979176471801714434510808942719969200040680845077814502900259819280126328544329267202942202855384212425722726933184363824650481325751626210452884906853580840885152817706004171923239434964088424760949960878212306211887970074389421156900948603751868068370088536917137255612915915623445547686885954499433508480864946836595196419779925087424835842822674801267740076176726718738920108281670998836925784910077751076364841729937323749357700509873206938122559784617967093266300664485390557407545288238704052680996257218776655380825470428968338269917622618226413511444858361326684975086917949989981917572643605357007023079494470460678970246918480913955781286072947277516896545463664339579311176757626290508592802446910938688066032262077091393987405334070182969069208543311967511733406326041306875794749068015022663306681573241184716814562534716654325242143333375608196906459864944955524232576817509233027295657917768307135958211486564917394541915481734074462127555621651213634591122643105770703977011827879440413471685646555389664927753093439091953086798068700471389994081114087875492238372547459848875261450510895800564720512041437771723896247832469802634055763266310536018551333253822653063267428618909343665940476179454944102560984801535206224601545356136579790843083636026271985137742554582722242165363714585960896391167333242914466917979725561937426795384041731875704596545852128788685826934802723804945037445441164814022644121424793200905118781871516201241363481825593983757830112527022932504618677709584624831771027530915394596252126611867230107107018572767618668094879890235080667158753625708769273012258968356201633974232667645696702920425015630213647250539379484203099450454639363251324202457977213201977700563406058244615644237105289222182534814287101621572193940772848452883897527763229914764210432594772558082025257159750654476306418785951525965738949722901294693599512571107495298112631523094727300517148112976241745480614994086759830864865702635655075872038027068594871011315267801326983285530503226426630739143256744032570279534947665476262399268155382276353760463032588888006194016384928723688747964471609199590862440489217500141087118140711572589880021334700670864647317945519073125991399855327320530276752178300510695300989564866725168286467210759965456683141017924483104763959654773366657856328322972762540959081385960637153915649668861216164259418696831057030491013186665075296374263728734917122517403876129555955774150954655618078038138641601786759171131105222553194893299218176701257670009885329301911385190220091948439796333964328067242454047612784511338260163206538629227524727614609463054595028603775359333669700414895688039430634231734356539510047568528601351329775000189211642639244850241462761860517374270446357299798589863922282438155002248860047283841550329977968503339861277660618198888002208164961882777932044546626833538945268967424382761621833534682385527518290948241939331459272577888540259821252318105154544026566871401591236316715088962139660764173128146426894014278090439671022030300287434590446561437357407833604563071331391651012712075041829764104165839208429402769428300379218192858755727331469385898584589883686158015719833752283406739439049184379004967312710068574476116937475542370212497707542871875029941696252059629474217253336461441203364845031707914706470953758829579991816185209632320778336687541046091548188678814575146813064566109375807126234709888596349662777605959865295036950383784038306149714940070833903114360561505896392118323856322753985519746271408485911127379619093322315527344807515845147343522684060660757976319433004620001104173702646133580715809647934343237203379507313700426297536656005597957674924355699521591040233385143941149763595471293324171338720559781759665519677694594507977559854121217624707938877403933998052473273882655747869631314727235012298264056014055585677205911751516070204001727593356837965391968107981767396940488754776797479398258814612233040751948060723130302901087549374757642801657546497317743847493405961426581725300006279074002317864587174913546422168318852523634365208570995167204260356175456439634684010981572340309129613641623896960412909903493631269155169715669372819348858770923513174728135936700767008628617414169023915077435678322018769102140752267466325131869207950011029227932822567639570879048877223858068112681445933614120324130921545787303933736933190669357256148991831735992041507251192315223019147909689632892124411240461202253993550803062890972013775594573347664564281082236307849986854801257565313095572393021189339449303950659823756401362272546413763565661972723036117735781240994268073314445908494808960398999662645898756660864233030973047322146943365856462908170023097528764033157168524474995640977655577672045649393796582696664539955401613833953557886727824220924945904725813048873481192274069437089001771400419669583267657124758868716046000310248916942218609777001563787464755137389890656414272476814494012820708206604653519065107856875890070978920025420278644497633489820731684282632474282137107153802976079484407761802947984582857922883085117094887885099295557204400204129886276987863204942448388230179859600177887702657987357148353236872915736821015687797893191128036689074020460587790106878768457758765785718098831541984385933464004756071086645684413234002007074728354827050473853666091775238077934000842325806871820298271591115015012221381214085793307427928339345611922956725344325097388906312527046441279353021052071381354474081174144288447830782618741555422303546764504491181982013556094212768003261891888716820236264220258806252647665162157089832216426157173297638055746945211012945546587798800869144672008324782155441947624116333581734166554653924298744229838188603337168593323002487364986217533665140993154781728912358169191628544261453988252739831119471357691464350209050744500225117062740848922607686382988509997208626609056554201153950962973397606475331833789854638489464977615171553887421926369211207184292223519041863577719903725043746299322627851933226047522819991730057406342860053819472866776684513277533881129408217449158530101535788557159458284499384808552032524917214132126878948515169733731560512526070755686465828914207715504595401608224990703699694856349353542010465654922964963912984790030012277079699026270061210154229773041814757444700823118943688587046698475862216652874724794472091970999778560499602203231646980298123640027814820885311794909886867771720564085553036144396708554099828271006699761658239657773457694627505537075718836404598821886172708584679940808554479115628827816923640126959251907704738957459336154493141432680322650006787887182465222706331927533809905819333124863448735346453128340072327184834872594246977345978675537096253024878543688020804157675823183841832480599153921564513908567155352708438653252828473994774468586509112861139767850730148815255084882122365750449168998237151263568325586321052034809052138534645188194562312481185185084190410020418091896194017504585885819966879840977089854406641427118603103057561677346022241708338423653371529353141843082678662794446080394204971540967760448902518482160290829269069850213394217304355381015448606376617092430262233084576173542385764435021421108414801286516015745411574376324573610549898069865164210449343914677300096213235432047094730975614272563325978723330214637702913355101221182081321277221314388382120925518932187152173246247502172274360248271539134170277662363948760736934809803581349327299276544814739263474530413137451057958688326891085854417925244928010875170873976289779761261958366531404952099906734882334816784189166996809187496576171793880010698442729823737868226603674847083928879318872852935506736517554792982513762040119587622034991470863027553327633122566208090685294756827673056208667730312637367891986049978284086242685267077177271122662804048431015177390917701692581380569565677658229756762990155344428145694913606937596328698257712588718238084712850380589098696086465361308222900303510121241387098366068807420547412146774811796649819079843603389536208508312066370206457519828130818914546796461670834093682777260882369488807672458913707845243665080678225839807150728214200931372586085100174273234904203215536268574959158208067095134029235411679399252705068030850277773111318413674788705118287763709728583044527787653817564167211525886450929601472088610454735464437014357339295567662438070592796110588453927881310646443592908705143680700942176937072075137009356047160184712331577455325297806434978609998377391348431354356385792859251973079285386561307423701408088239426815842599988893098429592066141542023920524793273111843505551661412015009137907850905136380409937867977769488462433301424209281346982519690766001880962511672114893701017973941279249573302542109488865323533221122725143235885523429461874519433518429245512488517618017428781208772753780245264930039330733607555403597401668604118051742970788062168385168860661410919400770929105984752672625550997427662657334212060626302161689923366537811195393373030613116089438246909191341585448542887798894372362973568025338832319114166791091116366384989827820948658502769915998199569475076111005924948109518902428915820455710656824480846836608091238193622481126464433222803504556348039097763939666352841556965425384820608401541679264607862483667495255993325945261381156539786614527808580258961394682157511436366967008952747845566026698398378122711893971672124288855524822770305779383999790308434931092176020028551300364275765228618260995107112076214014170379823629060884026192592551297549820047765968585705802306715915807728963388621845408117765825691281002310593766920902523033871937537963631992043746694232221851232632329204792927531292447834061687814386730141361177601902294600139751417484555611381290161034042686243922536858222914850180005718119540777952265396640924255708318899530291547305165483925451744368812725864476660229413396584717457363980916859076300918436131465103002278480632636310950953944300337060084122383529139368341487272516509636656937639648149254263124494408604674683310896949625882596305979522709949219793260134512541571806050067883546935215804744080820166049813143230190026134797264295357693677447493376877096585609009302732416654797704746531494172055637638223444379306493673843345741617756681924700191793190480489377395137231621226362760562274173718258946499474609310689084441717160072849702363745582645243610800167837241765355464652749746170555001528264055809338595961903135856620741351655718627810090545191210744526307658649466943126543111753008492154949970931367157532075287417902837577830122571022853952526193496774475020879238632828375547602577764317344470585497881502002378643739457369648694658282232071299658794336768824752012204169652401150168869645695704721602796350313380294376205444112449156137103487663753017599222148031416625525547204599228250048436949266987282561453434550333067812879083343230677760811519670406481126199333297831192259477775487487556022162538723903474283791840970370608523278552046593091325197635210113520375021664807995786244221222961475548848249566602531886998827276918660000209949678396410082231002526662812111965023625055367819253491930881212949862943990738083336625671786735746537609425917316996896423724088218841399489443997550046880582495316965806001084761062012717741291238273396565228321362701433883626976949686727469580088671235454481127583804717812705140208801739911300535405852986592999308499293138185772901117085503359673180518276737263781432799062557312660787353596984915039134572576999430607823159594874706271780884914715648898145106671665331142830689664821056101659934512394931368426832029410196112061484273889194566009037374057152413520871058941288907410453843417659808317771854503557543205063534653124364623331280514171828487614789086363893448347500143587645493508629409747040685152557974711289570946089075486624274326888812324482449320848145132904106804544419388267280683906571472298987581648408467771878543217351511051815480120664979847204315358549424069171405851275695841685763356400340851680510408481592814044227113898497168616678413441204066343464342977312937847781362573803892790346285420359962045244782866126150370935693761085618505424499879511201590120803122516075308568600736399503853009714688337211048625097594668586283696962048248039447751835101784744611579579067067295119883656429977337768531269051613068714699876713627713138400618280960195521649991523254594992336243901598557089595210437337312376553926625760508109769749477595056850272563216701241022536951557517734467962344835320690413846548560666722540526224119957290895098230048041183336959251337286239814711236849601587935164146576362566110434630146015613890634087929956898680612377185315644006858636268970825210585762837418672274954193748007889638483643600733534144002761627948989479873592126413278356570029913321058274156289086941559921170363259049669037729123503801052779812213676437303643374517549359789867181116601661386294180647865653519665013312581503727376907149096530303115827676662601229032917703479926675718285039495384712413175085342839883925627318863798445804262606979172597248469136627449450861469881669980388163574090944877691895474084487937944575207901173273393274543493491869359351768020603546534463285397708578879590572156980268555619837420929731199675920610466134022060061353989332592764803530488744120028275734707648894807681013186999071696265420365491098016221932600755202166032894878775736439182549610864209097488394249623256963301777856279240240806830439835799278644217959764444167055999547621794686461173913264159055505767534638880045468047414962973246205292843237090940965635866584786541283084254797052190108340168165973514868447277542007211745231772464090859272534651211319607853465768643438586760879766683769212793841239315133280998306327043114889338737527571418095418065777347513394113682868661156523336174634798729026562932960313195957759751001761635420190350938482109802974364501902779836749963444110723547110167023933840663643620263867666261905773481212858056556605825181577659933725870695562713652907614745374898722256849710687004012732698471896532125965962401703310176339485377340640991615358148596939046750772137117077637211109827044873719097619475719947242796738860510912141534505830888817969297890667202301257916951288518628305760545557412564606873910972412138471927872883544977052791071836633528091911579935499240069939888234974532727907622734566778889421485810832814034557571491482623435355315984232275170380002263936331409703200964249324019340561215707511874033802204334224712882015276748016119708428470593408083798481873784381046335422048321225530236975102506113625769488187368873921304911341900884204687749683646865331745167982953232675266927401839463018926977606719713004110731281409919292270592718085050170692309423131911780256373295195143310658859344304490290863016993682439506667235165242147563581577679476617144725225424566642863802892293473275738277440604263528801524408451828814710489716524297105131835623022656619687971218665779968931606030105023219119031203635656727584052589665706959004571459571081980677282714035609989097520241989794992231191384225665907066576624135083448696400548136020690588741794216687107620065767230341714995355630241452240978118443783153236433643146397026313302169299220734628054783152286306180220847172332742087181821092458130314964600129413956602170671766534839031248598896203037364181947887038481001716685090834869485473998438696220926734370412174991972908360947936785213536061489048174199529431473251129342498382135972063244614607678954111978491170295898211201119491675542287674276204534440055888454277784646809551007612072538048253252592588926074118316170944527653951759295396393228405480650717222637470039018596498534911610700786581751100447374036900635797362020976166081417885113887586308939122541614884846240733419723016291155975639321938051075785620721692443677279495163492259534941769658863328463625144903945655175175835001013116744615071513096059070074998367797402415115139795961197444799945052698678115026565495337983096057874706128981462171996626434625690055243294531651036081331432254050018475920546911243942253579399787398365263533692871121211757112478011154895941996102171716824193132827484200873527902277453684413326859381107603920209165437700170663138723689251790029825884230768477167911545706146260896470342949168384936505167048697404033895937239122979354046026838063184839442002357936163670066162995038693145397458095239749971055603980869061481455733501218031732404766689707583587263063810796802192550877238705963667256901435390020687865965121892263608675717828121002491993816814419911988026615035259825827795316963489620279335949949955091978227586857313925997211780949252697182499467248635250737524680965634354113435121185515738068730860685500923397754564841932298557559795423719388089786874257477670201631397846590378209806283555085548361474941525062134817848430296878808656666727038417700897487769311145494376750918662186965613058876121055981331817281242242762089957280025429326023801234742544195708060919231750033646314841683900457383401253316224129052881450436606569746377424610710367943652531007510611587893421305301521334620211851755245748624062740181563159498141352590910911993339722873773794733006163913265781032702629720842822868069011388543652456895930948215622726790823215353295654908187892568491912183543452738097397887515689073743627305782165008809646963226494364232500159758245385459711323964250939547877969415374996905749542166488723912853737352188988382141147081608860215734521232637961012346525171146169737334488796638290781437181787382566865860366899647537674891148874354365012893172647986881985242513625697928928557132803665514448597493350661943249252434025012965479217952621249184725386476083208361587307607720379064084953860905714191856197389295361462957395275940739190098269251364735672497470883695740055708492498748874721732422195860970447645894794648226189578943977988342651951396680547360789656885551243037345534042187187604381455000536798132909457430398525010657832535429867213493667051337848819475737617439617435633702430689710703125947235024740655687338307150079494448152910916251773313731721729344831630313270092747505210856713039179323708529826592275604520805977967781101709490390137844078467292503207434759682267931429581599437382891357747584021398171025894882948759853387745584943925023551028063017644192414802326007708728796740678135545983489466465843359841910322129990427882135768328087549237205624873730167412588421254743031262511355065545802112847251272729595448761131411630871522450564413757575191592860914293570712405284755137794538835687328076523286898781726915718194942044157081119999444680662468899616954275601906604395347259299203797311865860354176304926391984965273016506005262443874822559838245153872115432984312553801226791179237071240326176806034627874008738990063751485583010681680128158746178888394525683456886565251601163921172033930261052268808219774708664591583675858327389803638925109578693967657494896940245999768092111528219916649732560354520947928855029800372961015504804947693140143610993207592764446312795574218063398028646957446068946795664241014891024255136263880672897461919531473707894962443537444967511515172838486677783620037130175974627394821857799369741995918770459239419402551471097414924499871015774767944185529870614199524095901904028649961823981002996392465817173641161184195298430510235559057968179057032635586757172692178928024431762229057533629946553630112506166493401057992587326979007229362226145642166878084791397737003791755811068287707012245201478461964811198326247287434602233691774123864605953812407671856913172470784290695543340771705279090952405656695198001469081844280219865929541884176096942825900431747510185732924499568623646955398693461668705401688560651824388749491962228042924021900498787613636461852571671941008232642046998410756060369487670229259493587999183026781557620677375744761823180234385707293684701844594922033355988055710724305942489111753988757279264445283766446220178646542084233280199250645173011493729181871489807083047379673499736877482481004534219723569440737423403342193065580689024282492963432635033205162005402101881683213769048392523097476797051957866518437762344351456133775045043233602167001136478532425162557714087642582979992645233301629294535718360547486518427744383961698574094634549700807221824813178774822939695351635930646533192957331552639495539215749285574717234762505642350030109850137224542300163656096510186631405701947347264341701945826579286556362484751997365381938512270346330162537120399965416692960322989393964081453743939720656351356869846174650629384008505811558265191272161393023597779014375407037155727565026492590162159091451460468257205195834795146922961495509007301438606748322883218560565405817059842628015274515167860513645092656514041047565909426272193331040427579556407197809619002127138813309090806220854149868937309997408222878714141744417954505504542259667807116241083686958450794013465661601621875041437585310104009100887525555445014546409400997298899888957374612155251145576566212438137194233058962079270006835751134460464901978360250053107698295751977427138564652097461542747842724026368691122448113465894336545391173847135262331388478827994280800400335842173758001393156943594241691514219745041939416905879367832984215413471830077600397072303739217314425857672084817378580382815164641480209521498955794269453779952385543864982046255694667893662259618124968758738958203496645167161267420923732438599173754232665836254717605813900313499431139043168540078708522320233809963647519304305681789993288579547374000609319782177722953644316958725850976928466781453006102963924322969619377962577763455825557649456928754463981327611035596491187027848101575801238443209446143355385022762670214173842733808299088533244701917555625574776883664913157309401208462935494949830047421779791593983638143412150577039443695113416129714445134337437243256646391149749162209642080945256544678711458608939738939850050527078074851492938533219309755742103318806442610755316227481298278283641889978509114178849890303153827028219716596803083544150363401548391165045283703956347690482498597572616093786411580374856674111235995111183864413124347786262651702449801189199599170629538499398950698487733110567257513275855803303599516816035626117352699906328405031167512549791258224066593538105895855130054295535723923196135444940338885297696972638136221959110748374264708086707784081073814445115749436608370883535246205514274934263053923530152941486478667376142975569857452589535378512480920757145509924023115228527293520973148934557735700295299292903195996002358585178447984725611757338203193683939661962095655653058145806754835430095058795823175263736925533130004388406508640421045335681127581018089171041435121946393538840739870440528311529172350421563341606092212166263132964910761706497755462381027626660985180230894873331613664864992602905761818282051494053071792480757606804382760416006664484835631040405908242198374795846224472483687313558103841204930027623009896723631675960838374141083866744264845722388696983111829969101536256964604192961085552385486715137239861801626209533036552077143639227517111577746877009251273433096023411176884679252305719353993795030711397682518971834658037552049631959942272562359459679008812281458694824814825748677809419956623829589821426181459465975081666403807858576998143030771713432046117960065450961838755013515426400570084831433290601944190531877072097987872364010272670631082545763229660471393121743068522925764202017290216186238852202382454388998564896805608529824099626734635852712246056372521725803805221250632676332234001552771687828251214620156793932544351193371454066044968129096053019989207552291004764599985067574004323394798488672620734169066087346885934120276720653515702517162040339328396786287420901801256674847593706127502853178202080959357511285876866053737617328718150455693285846599377750277112050587681174909653079205433609944352853831753501955290848606787368936484606834740283415176131203466841939017836172297822419124203940976208675073818873585529870654110248750301071400760345673860799367074272843846541702552269284036363092289694962223447876619308718811580886298096715165280227236520115832441554955407427737504686616141827043026676536408743786644310344297967959262735311768445903359923224659354910237536567503107788035354871276917621567607258694384015340597534572113712764850932819660815061607286959913996051126099584274063090351808146106891070802747787791570756470935278658635910218582516772939155240562328896353874911553542264998661595711970521604823034511691530199919804479517755181396296565027300435596509268859212957561171246595691781817836375030093291311184476033290401528670346835833400750946451168202063842802328270979453872103014045856887602572319366236158680076563247053620775721323357644022198294063962897757583780164627643960765934410167586954914983224278337999415379519757571215693702595725410873098851477814895241436649120056723669868632168683065544321478038118031197092330347939711396982179986083631370217811875599766809714879077187384231353328319067249725157268138212408096645712650236858500287791275360996778998592649380020161242115556922684635952213024996524081119881896838477981790563172117745921038848513331500821842111730561340979922625602731081301133338090868358788387387350795181842462986368748043204316774683701392058632621450602388910887083318842538522638159520606400986055435378857780606274610288407248427335329843974896192305459239589502242685805692489829401322408709560537548963793326659466353631296873198129632122016447907910381745116546625548850290155084012836984741484683343726386837761621773367197575844676051185563589640859601841152557983685959805883698023772996128631337787607358453342436760145110679425827438284972628430059937729781783329775382543632923995267553584141385969405420115314694308303804842050424910050298584064505605943309199878246082912755015653665258293210492234356606667459876760124776664263985904180224179073220298085050281814479212148416319252012823058616983526559573290074860682591336440452582794418160297902399412649116647296067729779360780855837462686578618378263752238043732842447686124125893569874077188444420686941198277538466499740537372232248158554878349789328308569262445454758753890164595861692925037469678224147693578411612051987838381445685172308921754437196121943527404497417982576852836314268428271900024532131183250809944999847134793615119920218306500371482525409545370366383111705513967809785090789688275644106738065530224160659739246580429096121219297923053118266616640440544637477967046311100254070432678369718532034187688668652888887213133504453632975629973498602143398046290209349166269959356353559501998220878053070964997070174956579989261745848143162610422783929832771827467140665253114417233627005973489284608732555549557085200509153519171171966260706563607090321603962022093744726013518623980274101082883516939930930089931249299912864732867110852021924245808237998092992451383575302386752974937798781019044294368555459262469069824025478099849080610974327589884452178616695461017208835373174733562962669154330335952628413444628909957553642803637006969722580949095745321434537546942289654348251552441357239342110949598381666136658777587738270865559486354185682615333220184933797466413426666025638445349896417167950390044537611771792723719332006943083552878053139228118983263005913957808926933996575423038601874292562509512530852355036178438401096521181311596732711299091440451774910350536745673533280948467623039602834259349414808748644735563295286059506110184376757959327559108558843203252157861552042603854872178609957907232546727698256501116566698168834819188893617434176845408672379374968000656571326904494252287202196979448005523313861617548743345059363384784490227359424835315214282756017306539407047610207426983075108155562496491274169096754874995636344907336892997239283806628564516063008414092871451301485226812833624760795749033790792429421891797333798644507964015597498971878030064625354343098295436115228976006480196332277689582045185278514266618996244343743128574326105150917650502031089401123060399357887154778835175133534844894321942586323747740894096309462277946274336249468559755682942088185753501553505003730849019754533026655649982250989880941685204206951683720524398883684510991084951952152468041761341109221689256921754278886144917824414497245130041391242346300021625685255924354779386272984966974437208375657297425691076967744236092571359356254318301451315974292800795776223573810417205302726375488002857533188097819672038147132356113707401054538848006017128140974897161825796883842744162820326971833951525904182170917671242876482786742547025997766547229941147952023371697076895069520910316646329128003611495012472412958005181638437171973037597392349214576230211637188394700874184668395429109278061490568166908362938508481852985587446568545276954895571947602209858895472553426202496098360255869514742648541152052102581967999726808063745028781757926333099664724086744294767347339991698503701147290179341346604426122895982276756426925747302534160470030809664482863977877455124695462350935968959723392220355429893955723677309551733334231091483300083138823008542597197967580671273677671268107742635272259738755092093651014053433760443197872869206774152031202599698621529727891702402940865997729070046312700316526507378315687829640458292102336975289484754348458962023232096229162742248223416663911152675685168793841099343653195409699140663746356611457662895183811123470427935768025489795974232925865597527674980770058274262925916014512093439369838629025671487580594316370199776346935840816129089637506461243429163481798181009453795959108569804083434712714592068440601701610211434544770925887476280951710959900405208642188677128268095112516239427583983373792098192773148230303697236852307712311010360709936803068810630607173233041476946321924528560492466652633669299839998710837205063023028721981376788796293932039951927890373905484193314983100107428087786979393723338762631651526455448502421477670001890995977944465406824110392935226815944965425804204009368311754715972028455388402390459335567024142287919169917499569488448889569636430110140885735277738659399133745484435206727407914390261335807899948029668557395218874277326559472327978243332051476681425442283651293927042243323248293323571781464854101419585549960753554082530369892219831821139932459901577063355657115860765805556726240800244547377521034742728929834324273722039279418704639996383935219810153069689330289291655749780322143240179888530312355466561010368011785930642804761685780112558644122987948656185528371633432679141133357207671473117913496590554283101819517414552077538788203846318188773769554383421904003111680536044552396324308097500553911953225371562464529421750366910018956586267764062810696135856936793809194904513743972467961267493911619318036605117211157921667620880313323559787849949438238261165648658326174856820978589502898118390387069387218574722695259551812492234644812028657224591635441447460146918234420349559809995749194159360560812970105951975375770122659147351264422635651858510132911950749686746928022173613647238393353862521729744021664864085546212314341689989420041314469291367185819210461013044134303917206939216301268774953757292915308070396198079729163919642811091414319625838457525716692513303323838275278477095289702635684579501764084970753567553505576235473612547733505749202143859807086987889599529748887329368452427166109836718688153036793330596270094964584616812736203454229876684831332664999549259716409837947125268521334542208335903741443594371620071725615717034406920874063362035770894528931794486216367466726005411458608973548844278644277599114143410201548791914731778392353815550409476755420553739508966233682816199954538761299238192332937865726769738713603015428289207306065993332105562181155092378789679262149157647766096277265653343817101168114750208718083836148965975281262903391238118501835507076523709145388929249301478449700159172939732158245680894667188299474497496700307713979915081509588497864593236260328147334826330687854958644613308438070284558188030714969653812720486347254196808168320522767710115101243054951909425078959304181190595616936946307705703376024958772768368492343351777420654199905329330484831917811046028128769466821081274869985252800183451163949322499092582855778117642801846755496370234453925487558338777309476741829692572892692963570609488518920709707563277506139242063988526933640523471909986004830995474975213872778938727516887962487739898966626817121753606821465085044982573674434128893155122527889475743698983487500872759045599072289572995283124196705574931821207885322611779614266436563824620857586071613233267091676326605093560776332695565486011458077962253523359388460051538003333870949015528442435155227672512679626733118119509107319328469368369836514762627305896121324971915675620678216452877741869823428423238359035934452125066637216703443166049443770178931114576786759115553772694736826405301135150795503003280149214329956237043752368439988369453164166615614625020492078028941813350004501691951816333329214194021153029522059028454522802317021033582486251601141340845563438383566259794526412680932949266015938165947160427566880959186102699603690739749211531887262662754981796310947987936703946509644689731408951687482103093739317630853087010428535108866429565294963084235773463956772667147808563845999039201401279894951461583117725852230298846626336792251356955287099283906692475577691407698024504460534658718242782827673963066120746501258288398014627248780399182964172555278063965700952355347229143649490638061822699237277836546351080656117046814224853942818994507354966508380893756479405773169351208754939667339018620576685799126606223380660688682660095975042069814630911886275810337271897564698816011334827325102864449065333883345409393785949972862225403800057395340118021402046850846221094900463157454691431666265736029418735917237983580075132127384347579545246174712042332617903879192907034762802190269814887152195606337412626400139495610483724518973095087175495778315500253165587272620834806909276975374166033605038999378077977895209015489722620416975332442302082814283952043618179846471863355342570680603093225592398893497968146341440317870350657654665461791807652761138303115933995539484574432924856901051423971503791976613743109647832465936178243756031783133650249527859840994743766220902759389860208299777043674576256330828407797464744836679906480080234112365597615011080078092909963500370605871365057728871351676973037446349207603705201702223983773960825311620611958430596866159865523103696203693342485200645397834178947748199408380967345399812790426219105711186910003644904743684479411488651086170604461778460924263530068867457034677453179891719499119150392296383055866581088934468146810045612380800557742650028583451040263295633322893100773696061106684135355801611900443998070022777467875990057403579659422222884901495559850081373087525327513421805363249583953429715130131162271999816005309114190897075897048521008018997833852034412733113062165637147114143761443260489405031400734253850040956451501044315989532059587088640927337959989675928677505225051929032955929303409456134311793570714750846448687732742325564322641662760610199076772964063314287395533206008417805429557809783954663782622282057854879859877590685406740849882398607028814925924927998230591363249151742434506870479587803643510706513028275554895886008788598203172027069734549480358391505463854097116188337203280560231510076772846014451752872583569163629496293408275192621070385677290858969517171553029230981821005423684741537025407206438606668819383468250749696402430170329973992805260040043816902463448336769914356374660723491911729031479978547646232385503640673397492841952282378209250066446569639347454058774643260102289876868812260442002489933361042821133892525142700756166943342363121706351594450840262458735919058928731240026445347436602639785938125477722591402096763181002942897329883096712880997565794365696580874027141681926686341486637061581700375377295847781781010009771483015689465069912568790641815146900209366139555609133051390008525587005299763963203615871104048423813441174712015701822502530512334720171001279573810595960134452895313593072199758881840365884346310864287907808351684690094368539068784127262782836599077361724239211308977178519205717910595644230055352201567603732452723996839403095005373023092645213641568963589475783395060577591820940346656272333640291465908278495696878938722216798189375989169161671680940264090099301014740055986996619533449927610015404747549515981976199495847052274697869895481970946849675444234390434623472072436369973569073206699258598091812827424977054526718836126847251135506968876118601159954871977817403329449943849379011254191821196554180326293388470324689505423901227549278961451716367003732220476725307290283132132748339814774275457258028223250359676957211029760398332622023858197114861696183667422866639947443089402206629599857735309037537388756770821860228016164378681712422813646018519200968336391343259654571392762991869238288083344395298056125874316515682428121202823761318231797352164544929568280395461637873899333800261521132759500087166842426654580198221992336751887719914693719643461336568648871228557510623960723350383309435462445199761734097755571948864368738304060267160046034155563920361089753237974480960929990324776898190271493942464427711391336054408423188249927885132652992019711128202108615881496725812455042337689506958249710663145598597902957557533480475332663040114224176287270044897526723872852111608886345728798112826180687407425436346945614654611531182711555413699984212610869119459059438994866576199399230326624028702830629005176416483586455573803796629884116206202438016545042408650256487829333665505754802870609165452370292320111496424492886603952611509965644202908477897397903857044063515070767860454274097263224087666065590893255484089361707265991477727950719658065440456988363276220291737365881526632550842881296531014084478204266260188615857703253769102367088931918326028191014930000476167090293317377091140393935527394412156224710999291171415824425403659761589411849609300401206285566031064370664020153639305173398931069570423423899881589682936489027735258457437892500313104162577751909787007620541106059372031477832703295068662972047070466458637344196058543494073046247578892680344042201589625817563482069686970101118310970634203458237829710478371845487291131033328062921459061798094988424784823004033505780447673819402738924987469087478122320765933092990735622631365024290377104706040556662499798763857330741473709417243962484454216578624804569208638744283467817506866718882857684549082579208711089342408016191357494720176299602500404333140996929496106076639274039893476999195787913719549291603768624294764739837213951584339416951643645136624331907434825719083148616772198154956374991551825538083642500227953230898221311532880665939222836901000331385396451712745110319241651813054250102193278431183181832625491830196833366567034197825863624641970324078168773771600430228470064785216730382436352256201713080786870028218586360873970453903347575024223153354496227834311258932034900463499341244627569199836124602604415351043330728221080347148093225972780663104625936984912565366065296703488516547622765059630098890257925822395919020043231866181032225546360001580987363103916164378530083015974990719691669658217024012722357517109457550328787952203271751522106542303851015381011614531369409407194895004508805425962468540199468976581555185063665147813254923614480607221204219044650163388644611435510230052061272370538328617790399328353369402145804688097390481256097185611787657077473762609558460947641195948912580254747607585007297026772582775092450166195925168694441882076663200940818390182141598386955360400417305310823176443742351784524161294499191592779081805739472720432208808000886904935162632067042035174253819375294932573564514759389488530947199002749696208674833476295323406980607074214121322017640591903264535883619942318628893115335345853423854169417001510308939394909511893846382191693941628956908728410403608982605581660103845925823145061800490167120959478075077656031996606514783446351963639926554804770181705023592062374767864340292042593525345062575161385885954308588980367780328715699240358497230991324366463267129192295093711561373347874184195311574905676138511955000139532734140980529346497011556317977274994990389711762647400118051434558331718370578531773558701807725446241721359456043723264768275994434371594922109060045094879402070824041902518133611641245682613632979638022963532385820851801483689098918354379777036880450871401602744229169887790530494192660643263741847599719385587190788302253702135697989996648593974154637664876116966833596913626748135074459977469596509654360175645504332082168899762091125171681828960851241801516726331030150930099372517648751929723240697316071633566989709178768090039325265292581612668267904630443457817086959373193463253674631494546670482541647899427165168956380374937790183013110645052123589208840157791291022651724900047004883961885325236677819217832741219520132024506020733879756978663685316066615485071760606291497947125366078506754343804158920388318042352132850048973407042972620048118346834259321891803890997777201589504981212509441447010925362880727924063375180791942768083620952684766252142103503314986910063676359087785322133392465656750494017671221072777905986430314520850088378395579192529631346196512475088545993051084953421561258461357640215526560963507417730839062846877239636561151185919489817312409971316697739594886060629261063017399160764890780971180464514679209096197002487781061185708805105574110182545709191637752353991623644088982914496747958190075418761085788547556909363813283573843145709499587285133232252698583314872525332126672807914425738484418426110630902381715224679423202858064727828741217826999011177815662970294896501473779305351395433349264572544871033176756016734557071405736022831310175848279879760697438303098697474322934820528969662547727405823415537920372770205056793917428926274680527557760949156824209328262436716688172483940471265832315883580677351521302154661841033385276672378913909836865656833181592099145758801920157026906160435094931207030448098194065652612234481985389877160725085463888868022512535238341006305675478690511791146709421561710978922343940953659834530104658889548285298136496934389546449186276381010751367571578275275568656658861973450236870592449623184315994611179616353544440666053908613800129741848244342722157180041024788751490553311643539613655293277547038837866487495339611315872473045228740534430624219157981608466891957058603348906141584429644929106234693887443338680404547537800948624116853703645301012725837065298144835709119859929398263095999225731660087135096839004258028343367956589288397786417030844878248874392181633498103007405506200080251719356080746665864209250490376150600386408483741195817934912007915413685963142137790247762191767289558142300078268106136923727123037629600150279963400378353913552911318629611981420502308346299533694965896551147091153386897159921477880921967803377349372271368815412009912253616445768799610055128409165138561079017891394985914793259411790708485123205815094779576731816843736342963612617782925169877654133599034196769638203472836966725329041101188266508564235825474769574446187360558958041533506071170487653942537225971352618817304033346347251764358570992719610228261646660746830341011748321871726206824798684747425209253349914324870865259440668697887004762091532660281901642265113362226957948025551703961428064371582343298274645991867363269995105786429582905405940404682790583918469344720713950498964551370862916256708525079609681444367131169104463179602092724143661062232465650743122101885647398920902394742417479556095929823332255679645621972553227120986528036352811238270219474786861572389865886731073457704858836169019813594926918377774038550732788593005086006649030798099804182853514063064893965160528299421917648284949868940037165229021590513758015590757885299723375213188736007568904205338397291650267474678137102717648561440779923501371202496033381366991643089803183266892868258683718345573169252718199318779402907709434436890346304893896203446175266978756602656943419847225835665654577373441816115230800784277901233413984855112523570171253259947045917347310798433436014184393661955339703086110369592345998400631511696665526641079256629107617913645201894085988927657757504474802578632810316769087518951100855430502567119663946701397452623974824958193000105229497444658788342352200000614153426733515817305281021344066258902193115891327538804563250861740221795305503379234761691389801963673219011128952791836256931964891210857666381201264513206675959821514051549835256921137283889234226613523160572114415817004480762125334633828622051714567384736848836035957518756610850375324354273194361204274961138558393208566791190784837720969216883609440063980110704655265190240110116016505639465854010418429368838775658918137225961690770313058071435357697084454629228862489326333725921594054208603017080144603631638372601268737960575689712645992993602680379247717973934592228099947976659563414943303071120249511000684368468693012645469632135437491416703652217542006810486267973657393338683966947440192625448436813841187688076766307770809661902207477830086433714009272709223167534626438847354301234025702874189661309254507815159365592011108469822538438352781406787143292107177912965688015021631186059669334501523707604032932914783200427189969007898859448536695483360220077008292115477644643449609751634512170291628519392910148616340628545837310864938682826808228254436931344066226477682538884034155226528347912723538674344921629548719584247869486962930496845125211426420227917171935210776909717773020982475151580339923713090210856948647203183968720394706584356853216700682555037598984987166933122088026094259267569338113417030645596685299259637708959790633465392871997840632075376757146004534535221451798575493824157290677927618720343985335919743402210133187105152090343634370113347078864261457139460407384533773268071380655335090507386385515263154314213825209292569488238408303567173921389488870956957514710848234947079017496463806817757347504331705974218566258169391349338224663060398355450505684525785618554938128562120702197835368822651670719147221741528730914332964575279028133117148126599664574334387720626334451098808162100111577943617615527402110257234945467607337712564246610295992793258622485077920264337246206233913950959317877721368880211842319516631585393801838289363182212598780530628330565512666869608322037175517818694429339859912346110148607102489026226437662438835046952820491171368734631405866552945477873524694045367258584594446898411133874580603116217403231496428217063728674294647867092193588000246498125116272791872940672040941367372503981431790601276720092542970037251492540814719763804985429874011760594720145962624601649573993493367769188453856014400750285344505882758962212354062069974579256259555777081232786119249495750632609985276364690370185995891904498017015230719889313129380089910041896067577909960580079318004606312038051454862485228634168905303045496580854907125998321339333003156461822722346968563085753226065155727298105121842527265599006973317183540770098883671154291809482827963645662573315721593738799072143105164827928284720064817351863155672151682002898423526840788713204006320934476788732183977042069110035367689234386046084894016557560821041725568666497668572616621101676942177721294521788671193500667474468457629332822020885314935035652804667767742727354834378059589913673986526852800927015127783763615721403055956073234666049989942751802128092936901030801810767449700274820543315717999291315611181546019901043607366917034043077890384481589158177494006838415301477719542677035505421181506264584210141366865029077595857926737915032748657776429777470589100344099031027782136452141537133997974486396330002420043244700623175012987838943506804118938442473605108075140341962736593596352276838753537464727146570048626514935553905571089289866894643270966533376920717980496255524758035906226076517544045850043010065322417483787140608447128792786647134261394246767443560536040618882890099878992375087994834764407758571740315982997885538641220660772544030477200263193215357754769426291844090853352877090255708001527483873484937142022384442074682061138571729753415699061133715252457148252619448572231307922552434683605071861884550433743015447431041054020429197614056943823505234443258469929489689666872107792179390002691083962273873643428786882666027398146455121179395862268121856645552165116425969934638664450854127857022241606183040018210928048565888654373017818673293814293280263698244914419777554963055168793682456993460527648770710866979881854363882068858509167153439986239309862101171765943764595105446279296200566054787293635409341029640681701663882696759884837687576813769794269113938965746057811146581444251339448612245515887935802162096290195755297731458724182131504415248842870091495150808499105445937064309036867095311975466724610437005227912279004040724615069865775846035294173119722260734570464287651607586371422582092590541900547139311790858947224931576307952628102639354400653226102330968319674881199205527411537266744261208891466962517216758662204397682364290466647722781380793240948482098519917979362946613433221096614311299127139382814969560857211146150014606379294107003898032964452516331735391699373731009509292330156204874849790680678091900636872273143435679363452442403915599398458436593427909829099797462697480793933456029926701217377673797586366112228880760724611832880272676764654158376468005566981633699137943638028103588572866303966393282965549574883311994583631431461488536481175030167053383689392134042326871420127515217816197913464003986591240256098991051827897959173063392523253226859710286872491432793200651348324915413604954392059260432398038747153943237349972356824389949966502538262959919516728101667153205257656038877214370744671427778450916125902096316368818419302490398652940945140492276002013619315866099025986660303044985866487363635587278540491454084795934510552214786770944675174558182559143162746644654257605183022652004445072878622992344666804876860609953562307495510594385761229096484744621725319794223609513078914605037438400942081969805351842753831625953127564166794723862853824133826800840896420262021665531127709730581504394915375436332579729434626335168170928347883694309741547058633980643666578802794861728393093525903222901611978962672274914410328396236427483795243570373379646057416931591105957207538587091289263063687129558293083006636233903805886097982164323657288373137666100805260098726247935033613607866804038903720344177419934403390941291626515516141856952790363852502415569514380876975187425451661361139915205285114088014781053708862738030481306138984805689637342791449833236469152569223972309568992412028505696715103961549611383105115711929500648653261151192402494009127949620840204993050354969944526644888523942144290223350315072493135114020870825856311910902886000233627091373243962435650011079364331133879533279902226537629677471112044639089467609300704141836533460502641120717314566336698928305031999852605322650462616835796298873270990878606460264885270047017959932206187415424706273689850666387515433444833055602340148870629571230184323504241031683223978633685081575000055999620138370145036812055703197840744295106009306374552475547068429580489395325570477956427638515890503672512151962954580788487440637837206803631775087566192907442511894251508802278473217268457633604731919985387237450435774305271968151899154850334484149802959674230379407514881009637529809476991653280076104538954502775662496136209165526638232946691979473405556178470250778114975835441198780894954842043226924441781844082897166269095380310858245488372921353304261924597139536535428219552178679411023457632332382104154658703844162112719300007928647554521001809485162916712093711304238217517193988342640229320336544126949133136539423997866383417207224448968148766643354715553715663967674360420629263227749660278153820731079434159710171222041726982881538320088834139447272746783063596554986779440389700311923251269497429176108342053790979667386727470387192088060014810595870730434886733777078138794872593002643864605572806443023169130767209111178921725784457486805917291551470947947166281193215769127709925958505240723396536707996656379633390628642477964312805511952339736182634586564928266829094031108361332526702810753484690662331201353083037201490764472222769889029788149085898898636250688032202255577165056084162789261866220000013177337698451625577641301781524685567076315184896886029565700832674512248991048744704606978152291121305668078329246124340703874053386659285851277395187602535539789163341809405106966939587248599038473172971909860897745535047400584647285269203788854675774048189617422031642974480825209000964447892401162683903662718830704781894303578361343895493774604536682207889094959722537844096018771261072463693491093706548528610180356677009927433789861054006037039377696605710735249472941818004582312478761716045129470007360801568841506215747559966487377924806650997252915532810951460968075961510726505589020185899807878483266045116030353645748110896142034873125791622661853393617502098008265503965898257467579653961003689069630553935158000298840186265793896528264760131565012555437788903238448083556868500751786021239401758343366263466502240527298873140408483680992297485245921621493848718877317696457758974442994002988436370087931163201169203995680400989195933007967447068980407908500016815286515925285863948344935370356460762881575544642724225539518159095397219780250991671913831615984709509813240881905381714717769159755402697892350718711890399994248543298316593394669440486278971258804906656518730369699355388069462921691505575723438819167226750924327113470084337053214940730599128954452975743929783266414895449709328469316392600869614364856708279361663741076454927949480047041837972387051380323982215758216562213717363545310235258221216830310482560169452056224038104533769555130676867101508876790194365413054773880017269276372106606191868041244217917502209024832050356370815987331466057150433274792251528049833772609323368241265813048481141762590688967104740597847465558773582169209087674150201280625421631196421775704400294758817860658749034566986860852652595169321676186246282056822479124856957246182999391813912134973550910873374180042083916009604635292457376276857863569471131223624434501382567194131427613712079532901433881107001848184017346924246172844163556792052303273002329734779496384593665106176766151612184189144094250076466612391844530813638827770073670288610069520095808330996247903452974261870295894770201326705706053204007513368914911367734154827403258514106622287964326259462584383108787302806428442272931106093242657923403193463607869441995914096249607883067169745912129510818258037062967876850152557513058729018342146354144334761348112061648173050289409893630944373906393157720340137717003762364096818581083222860004466689323766836728406626448165023817238002120369826587383637048504923586469748966695102286228352547074546469875137726679125615517541345743903561771953774477535231608784227101780827817089224629251731905756324262808500197243180521173579514966216873731873568790333822439565382312697834988458870186672806268685824343981741960128797088899687586408669471379912539928397681192295038172461516558249178119352412272412459447277717757711153018808064780621865877187309637996310449261399321221396366971217542689887343992071152786163197005654064693493036471815801899701688209364580105870414689903239402796014850649386263090628041222978952167170799404731168934480000201006388130154161164573392870846097309540680047259720147300056477533274464087189983599598106520786040997350635440554087187122454389288829355317564556468163595927671457043475689298545053539318826188334793325169220721257517419371115641714527037818503155827100036985068506955226515000239706867026078365002981238664857650850536071858063171261453565541100826790002578562117042416268660965505686535793032934819342171057910839658789607433264210623409681373172250003761768410235550580972033053326485486273504927051556464071870060231763428457553920769478628163129853496224113109937373148831868745845203117772575111175810850600754072780023876434121753692551223067583429929021479376764921588045073639579020410356377342517457238834408520908009799173128697393425058616611820595607569129844888156795249896500681355834111421221239822493266274537258952452190190040308758509862133763162093103868742693424595976166365563597369222060844121415425408437152529286698234362035213552079806957694120101036749765818842549385199877171203707360442193661151240737895409768975899472741419555632869121410520286575785342317197435741647056429518858429932122927623783641945779241028108016559892256164799932788228339488889559862028297663540950034400101748773213969792996964634039668283239047168637021255253746117318924453240437410007326273758079344803441360737772605936713321969633166448728167499234612895005959270484583013355977265167054267568424756776927663022006596912070863743200539910491774995279847997921475087184701782816785535254989101604415064562233947871661948836592798233724714028295766638540581280160396465421168610111715358790827320295123123281668725717597713853234629864916395468171853747977642204855376747869583816322452531957059428773784939903698210219812452527780642778635297373206210080139252400311556789186811193039066398054637273007480767313537530478060849114026251860392529251645897158256527600561672181987652068702465019516318957388934374799096141474161959406744999135193274018627816975859511401213161079498415898799778240025718975692635842663722633882728612447044294220644060421332354684988299904200515007708338397877244538423528613871480417400053931627131291999430715744068436749039802117974325852652804278934860975827277816957506965557932199438704593505325950302889246471110724875272290766955177439617537845259485052079595090861038657775984887025752754817702648558634299906123522143961497720355343292399361421086446426062544501120248850117043806773660722751397328149205944113032494931771737598224125090388453481212686070229604553513364658658279172796183180348205210875810727484579527409153668366123357024403737352925968749119977896929865771948769583963317119000788263249399186685568585971993453895083501416010217868105301963398846171388509164588526444440045548451271503830745602402669458585207273236982600586882883007112626096124590251026109669533445403607617114152530223333016967448153806833326389767300431379633991560612390841228855459482572869675583668069405031781159821709250116351601822381322319655805862409330100505412230183081612849957903905729257025748403719684459951801687213412689499801183505749109509592859223582474622831608721872785045577113061579717778101572539875215903526547452741246698811861260484711614878442222184653265533516472253496995714859347991572078819040154606246948492545833722594128909250719901549403928358102192542776084050375174020290507391601776691010996167409053460728495469186845153747129484840833983550069580337858061770760374857461335892177958659754384122451462539866994872852673348936477264445535450622729853649372561435212603009655152981051923060845263694282715053162228081414081345807692374339348166856870978876477631936661037031955731429710830308536386268145255048387175889407655698004773035619980877714933871888914544553233887733124632386216763956248778707088868465069306351182023847597162256924644396403507234758593996040488527697292254591216808503628444732210946597583634957557967897511410580654945167488674476705468206086352470812552929467900318131140810389019661267024245480686384818841795697929333520119884497673066862993211096305251895424630712322859291316251884409613014922697026975506673647931589395432057962659905609215962016164846462283676496503617916956799054665319490289605819755175439492925362110517076319152695253402011957876486704590964632273375685473756392926598756060172216489487261187402704920970127789749269484661245354246401007511863713701663521649816782157304159595213145790701876867066636461922364371871370413045813932265640210472716323148073652493742913466367703539413686727661563123373453072256004708631625818225665944577972917476428354734344509908619126871047709358199221777398010865486205359692999916546800846607436780682839918677861684501499119849371923018026031044686147997056227643587289597217853907793382173945694511276493426805431781805670193716749331380639875230318479314104695407548618917891030736696158533355159984913021449200348257897187929219552768471919020122691711380778443366508497294901953125889615855577227822447896226554631657404515428686760156712068613770765407373586539666395635390740709816728892891823030269335128173089153182523218378660341158442306040325711361524561675593253776758636782905287218905802520156823274318673334382401520277522357410563307192414217374253356447524052149903616561077879872797133669007862743432170402286293543645400387031419658114257181741732560073221185060091394442633208859120620210943573020930383418202337685825505401069263808011205433679588891925011675962542150279655113440615624960007552251296023548939224309050251438646122266336004618399134426482641858913254965169102278539908378929404510749368073690702626131416689353725502174648578607600863504323933742440942074507635675740096511386491021543549058655666048687489325614772569012145574978906991318387187654369444527593427393577275460526790174682864246251908419856633006213346637957785585781847778045255471796799513706210009269110965019508238182750735909192735117173180645594111591668357361762396426066761488863802206708016069915057229422385893738475492639982184481763809403974196418005563321323653791233555321496905995999443162018591528500029290044111804878784418230040822582246422357501339863093371744943968349628123899434686641931946625544420323077653645475756091665045750386999196612987162097484703085385522259344444685798412273150623497143531760892535824356148526490427220630403962395592789081907668925908803462303551789331799884601706257438036472865511854778365796795529994554711930760462461012151050054918744512291567765945667401918423134960878411901216945700469617152582166799177985993654778129831897728814804678959756794664870465022570026311668410495248973101478179261236181397926022422002202795372871591985835967474941204534842540947440745944891625518127865999635272737721091202451726873995223006395023367794090928478269733601104419590193489332758958482358084879993313355131705712373664564967076744311397449685458425976471918890302978695434920600774180038107878285173877025434314901371645625047844926246381687427588298690804165673981240360549513738297821735603294311294698891484029297189204484007615828742690677872236533635454274509112564818927407279869663077737403994933122515916547163867620172588493641997084022800750361028294367642262223383907628849027278432302400634203015366778565165994814265774855144557900504235116771145748928716472839240670707189544742907139931384091227112085232154045738964621033173379056554676650090289401807174212872169560521509688764576756644790564948906864498423451820506867012718237510538408293056296713151601965556921654062427034265018197321639718792259470946741435838434112621016811047036829288062429312865127871666306910423477343009189461099476283338405037045520918517440717419175369153635438869210641293160615161458816351059074491068046515926930952581639945051713100882944431884808918874296966055373797373239594901596060025820217873195099224094077337008771880978156324290889112006430670033902339910458965940564887782045354092605094702826415307628265287778990448190727936647616871593462317335760955657282390939092542346666825954104584754255861486211941669634493451886178064780237857571736855338071565928527349480895725946890675183701090230945191104886503603109641948234222023548564326359139438785679706561466063635748732898811233401366979734734872820568000984868254706732380907689433643508379890748226216219383968324834681751421321058622770990197456996076520818701407365056281853305451229289506144396611080943862743957552552384964043065122365892352790866890503793278757997742224722854197621067173116818834509602841086316715632801199157150816953259359710419408239139032053946431864272989005297133610087621563794328852071486760908022954808262015472716710189326042833265333387710667714794211709233134892915066905093799273340219072231451314028682359087450001575829968853421441185959105660400934346994262369989426839940869665654414885527632533821441554879969095978747421465531512927987668680305264926665445217430003307592414913021965731410032291638499138661288319708559592504201982240083113057322590281348766496013945329302896119292969010282013531556457153125483677407226826365680091631120389667492797659087377355389785973134045745560335034077021852888290802605966605753182687143432609402477071456360788508247529018483770780026015041665988986347611532125920178734775090899129236941846875827479760799495222557352282880196569722312941019588031474924867851486977460714691289084596634982608508060948293843695433344191335441029274357207515134588812504595364818200220161447703896964000848649240045261377573996159604521595776985333400038951408198652342036353264522275627487650073068125720017285432857683840077597910008677480677368360580612139100040768987582985342694750510448085438418417815047006184252790314555379622891385122258587818763032429043600346915778939293080455097511755957032679204260112088671212218980649078631508197871437184946634287419458806239739078292036832761464600056204633764391694000598608843366980796024230824092511465228782582896666844520191274186987120347666073797765014059348305153514309729378033719288817758226121359464837602218913607533975937815564980203211026053345412660805808607986437036325685710302689958466178379015183919335944943839815598178110775784883631670842246895616666364566833949105495063538400365367393248049867081791912935864868901639068609005798402123947839970842574943390022615219689855625795345311504156266127787535104895593765507578261571745668336631331092260545120817204601988175490049412615480285077309093996669393184855883027784764992851989781208324453823921682300681023332527217578529288579002642774121741538787359913053825232378297673416235841764776931613931733017082334013255888058477756502357953296490604779563362404669689908030793999994042945966044779629504525272802359806739759715652239503920292755831333145141729786082722272595124684551115659553665228339288754770356336120523587912831171643921122578031931900722374324572385704704578633573856911582085536830157816406920849511362780491662455994639850706067845106500960654247267250703597387185819689264650234433553627629199992744124462859227878113516057619890215832320075906010901651113107525291435134918264710619624996745564047018945596116987271498774889517395697560774438498844806828678784562198980313011381095292374206331348040117389600329859709254447981856149647997480723870563642956458341364632262296232239571720265865774934863897235977388376116587299831560325681116983036082047328666216731649819679698335717445023260711292842527254947315424264296070685605879463489376140537989163022825541350570570027548144361671242024183919752480485106404815462799600718086030043216794230554964167658499079374096162983997719400934098262046375640385061263756603208446678960355290124033505257424404859870614444208195716179917567555032320151769842846492706735747230766245704482884416117342716782025884126293315237994745617279718922663484009676081487259093513115128634805034705162144476967036320525167451692486762479004700961284840258840667148367506488686094945465982249609723235128289175138125763398884087658171658693247987155724282226091405421853070601747135455110639353360828479796699732920926361162337047659204959121597110175393018499801595969252876508898360322140856878118113762446652061584307360459293661121955810308549245815649358154582003470995748800055952264004432278693158120895310715197589119665473331857066979004216712224733143823975056681007453628896924529119620120624016086817334403481728717723656124952946885952932609285982106377934991162729274080316162919247565095030025123224112988844077463711034667233892874180263551943934062581065508188579115274412136529377746095641385684666320102721870922055178391960122759183631865219001965130294180797897216857063634715527364206829836386653608792042570830142046409061739900295647085690493327154988834954329456708155978303913833704734666554256552426218319636190550858496227170984943508830650040160083926591839729965932397576252774275449030319198286966821607986591187191330487814057859517272372094972521621474165292912421501077266041092719734606287812162833589452514231413227813491214136535509039465531763054192251106826830350054122077484158677199985272597990677102322000149212338154211205045725501804918218650687929485779500051874334916010745184398304605759848154731018502216301246183453471724141160311345001783030640888801240919673646188918466895964304730671381292201846520848951964084636746427868871088056441400384366361217653409303947319723333338508240556043299646987729567346581080386621796935915084143292992839610090447005425436795649338181789486287078367714191983267825401527216567897507314024163297702259570513807672488272631667414353876243827329784042778221003888094436481495055556357666858354301226416172596840904151190635361359562160643807731071108351167727233104495903125375692933406087571905760648039860374844669951958324918759010570701653619553719293617982775629062079234538635310708354418115455811111829689649700067627741718979645679816088929799434740017958297129745061556042312678472432099868184151199821512097950865057064289769755583938172920677872383341780782792274553393746477247176644891797254822754659281314329044275545236939426711316351650052835561649402876125494400593437341285540957274145744837612682065541216436484731381841295675895480133552507033402516166114294931037928025813869325098222861252420616484238248604996425278567336293076007665583255394206156199930307343182860402431968486777092753199211448001637418078122993070827547347586510589946700085013148643064397951336544359048148711384610081247501241436082506562048384830482735589701009406453353799818653931249637037629626963054163331698917990191493768320860427337889895436011583287194805474832079569238143842796240265026480112898246558769193049985873562612586788658730777200706742879843770568278380064675647769562575927613576740289071453878155075982741332510108981013020347212363479402827207999711367877999019462001166634845679239462488480254874857865212061063469911655269811744454384279045848092749320311753796995310956696859442736922854260818993449387042761868876345044217796790168567013928389151006396361854673224716631264791944019074735897820635536833629138996384895176075016107381183968735693263255883413805414211397679159150496154022044991409859952959220059006805521457122109957166868102487820317904514502545218206132055861095610448955866891271238393809336163267187578906907726850965917792297299026696134881002347165974326598305859757244020390036423822241310600662639617857987383492057426821593622610373960024976479854572447043523455882393283560608273823156620894368898100741087351135922827750366222483607293409530248040896014451671148515524044883689918864317251471360279802905131584575273576315696686424695864834332297109432242594705374131230927690818078826361440889890322505379608224717740678584875938853337294676272917842659104264226835183883482448840040909761689947631763308559419928637366544208047973240021078784347450485519007114687530304138446006080586106329223033621136325453183156671364413729074024383583087601469242575409072489109440652000229594616109330431381411733055047498465058133444857124006990909072727271948292738977443449892765841566362264837735722706233574042494492345169610393996588444459159307084778101751407753302707264420856080695575716543346729014573015126447723721138799438953581438875264305426344389578553291926016459847418592569407442960175369437775663275014115770030881112511235581848908592057944677478907474606481075480960514091171470584929989190388637926322854290937233173185907406278363406901229013277347783729622146941789404280931237706760480133180960637571607201667235769997344310678732099233670004930349624692857019832883135482724374400373952652275137830520842807334695923145605510496078775747505441165651692266512159000763703156063385702750948078264356419379689685132129835930624080540136585988831135788596097940903563348062810757115040079671640724234327172752906046242193326291961356770299500165264472335677611152305025101991541185780026315461863468157478253363024955427737019345246299661493323738401313282122821187520122441338903304332079504266163219036957445909796001279072644568823196847542397266258331335814191616018071557765004703775691563453275993509155517565521740536933563775703163733100151067882910039627381992448630888952395199264091835423934053466197857089495531708703993154775958747403903363626359914944842247763540471114620266172330423017325613844787393299762432279437127659244464251867307926393178068574693741444507233875980859130417035216038424182898954794396326429473951486981480286999653663741123605859803445741445686860855333942480740872959176815681940238420933045896163238876713325110333519393317222834434557484501504134644173211675967735900891897139100609595248977202872995469011498602095276368627732330828105164784433632755811581150593555642008248820591616484507500944244765644905175872398102427146524971650184056766160149876514104251957027991222367423242112809687606363360773429512743269110372568628281516380375761006082780134078121846929389344227491560150724571328771305438118196211461985061082257132341771736838581481856949054206727639591922553540315125795004019590781120873150367040296771012176001317111098722051187884119869891117229940146556009982660475100529088774695091943241730173043860386027730641630749080118769310516270578843055011594217833175126034364658543621121613969295559314559299815605677214003444423354573729443556828014533602562464226347709007481445850205225400429414815639953332729098896474921327881077502897136008283876639908162571996996690531181066273132193730721717195742822751102444155866379512053709682826258873712218198298828637142585087411655533860884831238568588121508259767329912929674873548364667758338300894272393293559837053381948130319036549963309423785933989712076722464084946474184822940052556103298439708405098691049800398795353618196281974631544395228440394409147184042429937412681744588236204282243932942893621832297026864344295461860561984810247134410806237628973087044418697714930320334375636810522888864610719112158140878444209231960994742396027080275943755351214714193208989247520654229071558869314084325317335194523468598172741555796045668842898726344341799854197754095872695013067451613588731975802888054867829909251012249891887897613729378292301342983696357249208688479917834843566207642897831143872752419521875156794645619061970218410068412837613499988598692483275649915030315967382530717548113167149394870686311348287244109255685976868300476306072700474593078040772446811237997476666903895399055851557197725993941978535039945357621924909933697761175255962418735764008427029923142034479638935788333850061585539252421747750848888026264659488877294332914406760774259564026433101794729108384550140681408595529736977564467171778551658235879307311976051404407322618419534853879272952640640124394295467985820613778373228204339362396946522249128922242574245210111001375004259283953465704367858942795075494889108657716416504656476848640480111709516136826564443362076852744048359065004702343501618226676117131788696957083321724134151600895522586806096554836146702031008152815788774666050208034879086231942202664987657506350356764161144156816298515140153562277036094009319610361087474223475165970275197671656651136368870176895680890700626457202135262648324095860948820205043493418676651819483577689906069789331507280135130527994519299769343825814038059255578375695974620545718768481670181531149686587592854272175308285270830601697245822795438262755694186283220947975646532411627847476808668754380211616113983287792103123883251709091112529669127147953241061833074737241164498793642383206683125043844421299088904977467198112877736058025953588493922603023619650086656876031015409246690137634260283028380004380780763806283014564427319077700386540325420232766519329641992945983959667535899118083897167308401096919378389812379481213630258968651455303965250636306876596086048719998982904163671285110618985319489942193876482240383402720537821996549551025771876926219207124569354420483243765057939948563950691126423959108378865369139390666840699343439182607075848914016638309558393585329630094995364567396068259173711525781840013228150774636476809676335030580208356960275543026080262149681151232743359783305947995987534125618880036846297670716254980034325831231466184448262687045702838875011712175206902538191026649449305949191240977469968259817827722981836087908007041560060929640631870003698577826769981230883799442009449097169058314657213070762282844238531427394260342862908425079111486190579183727133120549118595698284257669579848472750024602652798377738415374342770167809176493605396744038635380043896615475698899324084389234322541623103631869627190909809675854814282181082703342511845391720509267376147922927079545395464182723904245988672399540276197087360681841577958247715354025276754955530795085042176148592019616967394740464580820340022137948203152534865204690734448601434637126673015259346440070991670659614712534706177278045051343407188543013642950411933672315171610178148696683104514959757126037337796649527775153082020525972244727830273783942989205415274428872707858953663708352962982115456899422247550443233729806356164765220294190845157341010932329255206064580205201702673630197410278879681504540846957866916593289117845255218800920388867278972398298176607021022893176570536726576518514771895641373755239609451707584541512422698067321933610865575598800025764847366679833083681853212030882876095462753423291716700585520810381323902986527704437560976638418442971364424243519274814498103823540861831593916233232571411750745846931751100149792231154635155127968973351413433939678104055973877183324920822653903350441266856717430207516096965079688868047596483500692570297359570859965504315565977433769804173268409900521718500516358644128956245053724103909425876451349412440910123333720971223155548443916996395731569226429939269872453942023177589728144063604792495379218305181932981838177267097836432037841182680862453486917301677284736710141579122068578498640105228445669892102538152188668672220153445126538068459886068403566635783465888431667112393242146958063999190457305933076057918523698426199228146884525737137990900151041570667313672125349692387873480437896795001786795913662968725831263853436861824534913140319876286595062726809858488565947413086667169463418948604190839065406461750911686259113770475012958314262597515489139409151378177214056305377374730524392896384507253389495450443175733719945841921019342683338993131444082008230728823699153964195713272115269403486254698769842957807893931073756629077509969546551698368922898751086921229736674193167128587789484986900228693675858159595583266340744246856394731187586917411577044581810467131341876292504340154794934381039408514029802270187984976238896632336120849465612029402579083169979464048134059468500657035315925004879867139080050253879057108350660438025107901035070286306975856004573650091155964161948269400227718196915148613321157186223157323578626581150130702716514321310511975652708335312805130081551030599200535624028405568774905194148677167389675244679120987844758889477687352927543094865148972169729589555350828069890748844692166654887807297353816159691231713492988117086763413890880692374530994687298264651661025714525329598561572940814174664271655352878332475292591658510602652521568036960963705793556722994495099558215345115811994283336875309073704781187195405063798700380990529165593305083062221051239130650785710852180093812313675242087444041426757504457701235412126708458897426535392553074318880796003467660565771508272862460190895956254264463304773611956350885498864194194541501530759901225082136894131239110414369037382915615761601935921413819276560313856843977840956340209375983168109732597207212320970455528018648820564809035919058981848074114277537103811273750709308118179166359041205308536272353474380680595906344183418743407245300081130665363109552017063570875385987394558984993850863063318601367148716281011184656233916282668202615555873156461693053896830390939941306012912381977781995361053264607469976637675482931224421509389953218881663855033152110603440083749081584741582729101815457310836843462062435933551754109671390998770421259523125856667796319416041749584847223485500896467326439502985309346447391165486362464533163707626590497618230836122907057814575762164254680908336319041446825322833599641699965006114545474569884710420900823917947054542665979931919965488307689258151218334364689945590364321565363113077455352745939863687704122007793490332406248965164630157083895170057907033459379574027707594003720320548999075320458903369234671611723783865762347911816936693313934220563360138577821729671946761251080320538222455728886438387368106758980488666147006371923736768296861224425253048456261421147044287457438495191074282949098610768695179915916468713036314514250542765390096378867712149122367297032379814628306724765693539535318442525386680778872101664838380423483346779031760219203282944233994735960801907212994857777881697151391869475876489562627765756691665532908924896710707974759639380722155355402256764322614929249301151609507500918407067838928951275030166733723500190474614165754372174055640554376283391229423569239353588181949270170029820892627744308614399281906232151378350437980969281846864307944708979770168603307068356275215090650194865210222385500986060963418534049030889428860440690074722168307160194194367712502422072332825061839970177989228501978986949190400047529228235943643746038014522563155541540545338209214355247301176224888803065558849783631565337242388369414403888039168756238768875270463834367364792578988468350608792197489182697443947652774202203122498744396932085522878083190144246242138697079006690235983021162634550225351075056754679012223414370156276117405369880334106699803722297820916382419462143761103291922201589176429339555077570787253560724141215924452195300529480976732552439574476730660134782255461057194873285241270733302010661684559058452980178868628243642443053609685763161663486518203013752802140848522304904164397870733431278225812029081676722159731369882269619272081960580141423748857879264414695043087308998897266960150263516606100733742299696639045497765009555038417337364356234442949290849906570436797417310706250252093367889098687073352925985513849351484816869513899962308296309939085048782609274260021247926328309025845441412228737892634502896351276303298573849383346566619781438820122235302628948630554256835596129072432540773843804527664910417792921399740990621471760124333462772155436531727842385441447908245193644790893810352652977348048650026498328310024128972238452493076905111100461799230142525532788809307556463705290650713627240860196597741159925073639059939654446208539548183081473024941800020832029564539890619025649324257099803009755778720114597823758026926999892304008794712385943225058734101009308946814521067417340637266208746005185877946727534981073358673218081807557958604146559997139288022151769740888741810045454133047511492556351212024608976297041934846091537487190944710188260578906877702370235184167683283120183440008779460482175405583474192080945630026637403381044592738474595523450230476421391388769721608508465350698382011017409416415518990864360036359380579809871678965074407161488622179041116179672728399959202813363916204367913218965376986247466368656067769371743708824059422980626013822005643101489018617329426010731519585755905126252499151996385928522989266544392601341470295550708472812201896342686114370125658286812103879413485236424831564253154092381889852051340022953446624634593283910799320850137406746405987785109976900860608364874747895199544320275077042437012891624307041933129275880207133273744434559293465149493005959846126307614989732725027447547013332022909198964066765267574996564863312412014257281997406179764762729099946959464966652912869050555586382439714745046453416543279046488358170070698404840014355537906302464659488816324220989303483017937096716436459124572584609019441635978781063722055029593244308162772087546606334904139014398666679733659920624688771351715641418733312024139217392511218640102640110385973614431176041407020737363190640603193289969846694136178312963332643720305992207062098159217451178846111819838615763191838615571955637620985925077571102874374428455814194241553479634059621834036480821320300454732990158098407060771600153784678000291458140149960717221845061088742673150495728902943897028213688879631943299856937244789158226056910692945884826881259108509452206301314902565705099128844982271548282523568789296664457770483207725680185389203780504400315871097644612074129582868318592611425952869966932194596242836277515459073666611064318761815124324968807517849547491718066630778918258693145781012515343407478051401803317176893678101273989034282858776946304609688750753259772855940274074665844874032487434656627369343094784145103863749082901794011535495859837488462931312890844849016807991830704389361832920525398742902778585193052770655607165224088337170457324572588539703048820747815387806335850692570515896533754776455625510434856903754954250007501879794900763869354861658407591664813501076826403880679251396917823463273696983034796793529374195121350447878797086048180973463030526020889470251698997618168970111421695209165551220069332879862777117181512208190625986318880642575362049768773198826645069617211068552366652959194807287088493615653417390198984678449011312426193726709458788069725213192190807352311372563642537012537571196511352745035046638651672719984634008875577029652327298274332897209563022039619672796702250000626703415832551328740581506591232375371525132147290063633583313042660192131387165408795298737831906094960361837424676858774221796793210623048417963592193966035142873825965385310666395524186072941890886857720607835830011220755184926062172496422393589371988510335025970117684652153998700271235330517190289139437506383588758812579678320709605616897289249237305424491350054379653420778044194279244493894347230807148180929313073210116809403702537268629757588210383470624369580069618963459347897592666551961188227929214822943324316952495146516957385257604333581816641867962066776273566547854769348053990600888162707592279370927448885663927308483236945328169191072304861057551272745961406141941710261080534979140833247879214358540336981377848716743418356387606526990298428468157399906186753064987063933261220776561757115631197301895495287844352620267071350791208944714977786880580845310041741149884573673416898209485984199370222504283302635726026859104010491660084691603252946722912975755117501363107350033425832279476834264687369816329762170180573798872595360874133398598526504067496789416357954301125761052156289461376065338418617376967304246693334545463446122425344680941943846287659554658973828900164965355157508263568546702589084852835955327528686621030639164919181288469617458669708617197952348491334298194162200788160578855149520841942680036989018330671695673074505532830145580539812141319626550429975732206223803088524662989750032660751004252495523129011065746745535422012126983121609959837196805947742864866730506240854186596187640015112082817866431784624978913024555066679309657573051587733750368711353488511358062067949847727551990134869933987558099823138773256878254792698958104976185736838911562336284898239270074640145289162816012000569862658943002982413813131187024953490256677032581304689212572611168269884978260864870071387731060340268691125636126937959553603914984351997174403695398432152638256716494158700408394731420965688128171629497577965299485488196547166477388798210414865414248990792308313587533477556453162527648530507331118402489522293483169963618106211011879221238643141609387977229649980713791504894838592902189195730382200906999145858294868381014467345058142740812603816010198594175626599188500546080769017005528904140293130473107581630585114478574587591161481842818270786620343811839120642697014751425087543027856748428031359520958056385223367721193374365345688058813497005404290451909816075834623792507785266643052739492944274708978663292278703273896396237614684883594254825724295006455123807585255508282891151745691713655608694764286953761236612650932259987663919194606644961913849671184467793463630104402272938781264083511338099943936819140031460274370573227893151432853477995709664703943838689468141055224645764985601191059234316152226085219154778940630893547694174727825862860505704962301100446061639713493753414180374594177625841282568211192269949928867590551963685216644333595121529366709606056924576451983387689558929106828290214746413776890993623581520706094016314405037620529185297179769566035425245556582351535362463794323520368007953585333841887836826674573866979205869665621607337928038089587252021416488215162081469121920042972954944088773303585826105695821826949792320276092466690089664227306157759844939247876046034633585639988995453538719946268384340427183604875359782442616297687119621098918627418000121162555341294486310510818680831452517748183615076965124176395135792703521138202645110892845322793090364332671625034407153358316806746566445321002435076734419441008427995250085885618033899010302698259085410893068507793588366907004759369613628519850166799152920599654665760805775160747363421815138857021414483649113792677183537379985090576027629425916902838063247813089493529383531064489521907217274676131260869551458738176973559447006625044838864199236084708221746073095076958076035631662579374379021457965025377577967437640112139969054513628562198380729388539418068468864816168736431140981252530857136753370041819024458089044874042922730221218162392360920748798166040659201775964900000367115535650234513642262648927611943042005436634138492041514594030173378934450283510947787934125606059523039999869289492635013320770892205137261066020131803597087910467280406636732288265159113070627750141673009339590026398450472638746152371160432482412729004615484507761795880537717682742772415271545949656418038870248090699394607885852543760435721486650263225771976471587191692143151427084458065758485870104619985070940618483199556283672236656495472097440670299566329375744246601129587323357258557528023559822888970989091416478774190601034208584395315376839271425166777593077257378305468795368570215839640583154999022977960371844181469028574832207590668268502135033079113194203679794357049781266298188709516258976692455097158532470388531063617767252482588389252051136612131697931641700307847075878230736493808219256394536242774127759372165642063607911231644731932897752638033140608950225968010517026976376897071368767429215631851245888836543619143149233068491704068449529188252477688360514944164190957828426081607172315951236452147099507354425723981591060107067849989979494538151703612701760477036405123836847443150376248637670613153758994602048628535065506682111009777029044922504292274796519491458746508895086918827581549397716845564240948017961613900432308335904031026531549741876847013768752835034672375623374754654415516315253305546644908270422431794224475956218988105197060863424401182177096014125463432405178316430358730869829771579782407607212287550283767131782864333898553545661495235615383966581758759378158480517216459153666766950461616752082645671208334218785744070815758077035997008940056622395174748312682947402867697946438506102066160386251750444880512239336770491061659265538179002158104720906240723267427265329584501673879063158826371852444030920760052803075115886132014630719717496454801046960182725173282620602241229751231165758709641396229136245566034076514865507451184108842401391050831528580384890938010067937217247692119338136698108630546746280740302849936625491606069135682694889006468588074920301133610133599115003036085629645385135321674166286280789250041916537828401302460480539434218839139969826052471551406757711289452336865968561500824208012929476040965472433013981841312569191304171560977794483980680705125725507440896357185866005499577578252448748226265196327549973699307942885796594793314562929844633161222933856721733524619584232339493437739015499081887590441929142417245152444437520199013443542351066282342400466444114131046363496755694598169844290580140082332364550874696164269679777268087780339143227353743364634071018909387224852877173972677536062407857521056326854123183447309032285795140166112151257978579314632887282319964616468294002040722720553473697795627835609426688274211166247756883908409103031439915918630409593995226005086692230233410152104568899103074251303836132925918742161717928367112268320529792586132373623889424901213539135064113448294264029646830890617323687932322574423433263895390250268869782466429209044633101198315029715689143089066959893569476706622592286768664758436250193751138323128417740329398155009236847427409018692912450015366780558389664219588167819152261785672487000963438602148687631112981792898290569969398787084679012467330472680282303427226022045890721181355796894139946499993018122553863565919536161944839070814519452052446293722489643236508463257805020289077256670004185520883059271513457497829702830351936958596350189958823970378978664425732882195209615911310805030147768375183671331376435157548386916611674937625512835928230388997173271688308609918843763204178306957148890032135959387561975262155344455574105253472213389483804582820170807686473969670612724336291014898579249261422459530698322771815385143988674966013558456540845363814864754327390061040945445389888789961591270983552309872009069681153162195285038109226187731402387279872953231455615845729463898797686789970399052355858184912492099928242107417489234275239659755530723853600564010131199708919533954383265007667168846478868429818206916366244425598288617860872530459719257855424039039844107831762779531980117930742160041514164239174562011640767693877929795184658217942599876825012360973556082190187858196445400187668345723496672061240403430412320069042400044781723855474343777745001225675398216561455285065118375976600515716523180823335155884019706466267823971896791990007471682319897915125033718164887151880774956783577768540462662052152607172684219425241624769554576474549569334039619772309920901999871581594192123507285327482911069763683342982035774538575188079763611337580207314019801592228675008688407335717217108413229383415108905379559719921863439637141610380139491363811461770811530428442603731727695456828095052138910316066777887493458079466499702769860992905769342196593081449012610785771440359169205494069566674855727938872863149287042541892014077827449811277104658612426725542826151166965442788933665264085629747313116157831891431967878414757225365362835681042559051139393707200524031357575300152353888905201210123250891735851440478463357586355437408611033172531887910474735306743000309660785811173066646104433578373524379382400200958679553831489907990381716214041812147523205093131261339375874388895864367040584355909396983750141218156576305428498083979835060182350382895978602092159916567673711872364036433733799922622663340433447899643033251479552080477427846864285682832021366582074205788162490149315858603757781749571898574183749799624385077982876291103315869312460198947476147246880432094525265494969534703605600337142967185202260416979405035311772513974008910950463835779974121303516325904018279494905675101322950428481772776892462534620184824000568151469432665624002916138170743370441439217034283170778124596487237508207072133400770996757115903443399379825987478515648515680244384532956113327612507170046684951038823497347516039611204731134654760344473550441858393441790464828126940892884263587094550861953025900930357523317788037968527223742710537177970860856821512970357468474889181897415237265102745921230074761221060636898212344891157031685477129807447679681266399696962100728124633045196692684209218574289666216591493335149943381855801101052006217181372361724448334183273706973815699482677466086152432622444234598264172915439589913758807623488615177653456208910854730144442511475908064362487096888013160878572077379961299431578138190096859117491517341022481466434590017898565861455540977775639004173748330795082999271022356002711760286711285063080072570247692236413253786843608761078595647887028400746971171682685853164229390250576240276588212199196666583396003908891017143924028186331165481808884475639552764444406472759703930263159735727717969494817277991009920804939183500762668491830529489790848186642144121365427540736299880635320935520954769831836015243958848372139862314650939872359842136246583150906227264968802620077015543365191533939508975720764310715480084772481141250151084327995615272633823034483505547220477171510438431335778662916182487241277716078936172329462166616345252361348144815985650059021395946944521551115600978685580454200398500103737683176449551747604814700942313030701841382248355916172168736579406622653776921967377125042766189773658818212713278434228819131222846203925461437600626637046942545142310329608199399245222385755652215521727301273175163382175564832977129981705317079320075255022790344329927063339080275974979428227868131428755451982454405212939813319281964836040447190546515855753279786573999102072430923814738680035452469183361854436413336047674136464848820771416484552016199520721086299947471764894767290037907088013274875969484977878410743176848761031914579784751147827610653219048765126043188705681382783189423370462061642106528227631459306701881001048050396044078271546726493093144860726544770765260217420357980936752396470303110741327270961628168357809294561300925573766239046289798950171050263729892766636945376026336667223120628372589632095662053502884145380818641998980318370515580290021076956263986074414984495710656475135723100400455512804747920614159361583079376656585270198657006313638106669576791128531937276018000405492581902729175252114838079006833193558318576320883069697420757348507325393616584058166886318313693089242825714556682980315114034445967968109003577589421039386650564134619512825826871124568361544110423813004283816953118998871952042176758188841837134724954948899831951956844204754220179558295985755816343706684566931052980058758486620435849447866506504780230793604706099403944339828931815997238242254200065986492979438451461277894028805987548702636428795695277374726442413972213498589778470080316803542393607303816764864740404866517188282784567098534605819053534297106147092044114621663615296556083459107524031284956913726724317420295117317154048683755895657007765985633597529837191265551397904423725888587084809880711643703245608444014746592684641909144253822282490230890201358717833262495239266126367609275992431650276047908243473503859680707226211566755463269396055957552989540891169063748840695967804433269236582709722742262418917310491456386842503544146834453277958646969337072450808290288012850081723734509800610516368669610513292942773365750632289632681387778847605961059092206176519455955476542855622073956655662527800905089418962773013620723818660966116578370214999519947216165206634353105301405349959819536021107517193815584811875978839106665395167134998207991635533191649557104303650568552814530275399845368131987841077063169807929645403043394640967325097351099045650325229944320622044341839420119958560944412958204146355876606780224763684564255650096101008296092720745737083421947430640847180704670558096219868563876608133739527850683005834808327163331185658429324660884465457693491910772550377370407958435230998813436188483365466068234919133852465989527616429546012637431960964181182009740222372042532029161498060264667040295391508461501741319991563688495495999539220884141306493907593454518080071472448303653490410352901869910513567843026967654607467764092226998027054450737579514743952695773773886420595506891462660389997753297723997603520774882653308722073440902320569703415808737379509530570013372779587920136624667434791599672210633870908323594502438410261042336813980356486673106824537749651126101916691668493072427760710892181202424378813589589288549488395458351982135466925289923428488759434372108041435664026822492444791286380679006965713274868297831850636684914945875986555518310047415722135777415675085956728899743220722170076367891218806474839770969605291000733687444234051342537810708584566137786181595775910495139102988144910529260963659721898034072246842442616084698978101443444481397443981631711309591928616264612202002569429749337687687387405723822746183291630885844053636609225188332113037801411466958180222514234133736426721081750083890809888865969815282143643773005066059115992253346257163405143706123529811797680432992578424993228965153470198826525632225538397255979660417770974081115458987011793140525185407687813952708647286906300468930401433410745863847552772938201819686434961446005452809738194034688420888974150884146443435444952541041941002937808466082073348073707800750579545323771703211017837610905252277729804072934855492149963959326946131917285334273719925633541731475957189754013769171398742354401819764539807745749835342614374708313844440542056828260779856090948645009692970169347798665570797959266207308084071600720801426287538978709564863911755958249532685329723146621861165124687847808537537886309942707263517303279845265227436579197015269728907402021513469028275674085841599155420068036447284029567204771184021376656369510396721238932815639913497201486484856433067937015904861341003622380450061120920957789770718383199121229336536691149513749004859495252793465889370578349833913882004023221851191151505610565351076707256282713807635883964030584060437853036041401305723370138340104272229178120747879328703049384064047168962890023382846071133436719558192062120385534344517976546171072089503921320643133944140423553045462068164162164331049718545119332571307100686286329217286246666643848141534008225467313390590074218286358603431561371121481606466572931420831035210700361616630897288015767336229660590472596185928316878224159823297100810296171553079914083929522502672024201364143079383837787624812771141779318455161856198491384143821120893606891238537851528130558972859589331714382892666595091924250419540834373732368979655705124348564233851708511531673447261719766757515285741952489201177929725367343579367934408529605719271819859939214122110724390806043212605956184662264926632990793940365805999948780706817239420799197239441877556548930978290232155538151016721873459812471353309795967201895977785082374299487482480398741421821410290662166217445772334155574724768414337949884884263914345768547500089053957392833029672570331868152300255306682988771451548383362820867557806979544129831828288921380119858183049859517175659317798530047325906500764527616298828101877056394250272246972851840240235517993542532392348660912001430464644021558395680772391383221494808431670031120079712654834932434481636268108885679739107467028601609580425073159779423932026644647584364548337741783791751047555690179840627015971348090953706333263879820418491601840525718139372275248655472602108136213266642808609691017087391170705794020532683383747980467507726381036163061993426438964637592309078215968371054338205313086285771206526301947126973468903290735125287958987875466703990967102095551561608430731044905003663588573100631057023347670142298348757024879627950373872099840792064700700015658384183331032635479478301001264285857998865144238695299544703474745571519228345334208668124046923555324795482588449029055862872025995547602367558345082464927953278552494949715235299577715651182961655334052345786642832847251264449268825833936484013138171562817962383219855171103225900465468260522499205380507607509682216672363728206229805301892424949177744497057256682032576019737305030542132995775522309520320920513164964919692800935957653096712655008763284222127104962660022496464327145257920374134248885259465262051113770952248508914285361180271210860202560679265102591935566271723208329563877174311689755859400195975918121823032913802719992299944380075717693405353108036886632606206330396442320513172490431600968854076996927260938878453908094249462644912176864547961289970279710815228424572094373049616027751232179793283246481380279932769336090020806796754816230644327591430334137013929372110864008282415403963206931807072370618544738274060835291308459881506890092425501896942083312059289202065097584777868154051743774910980168708432439619836437344543203008930754333905235360687441311264810271379966576372735021424783888118532713715635665453482632560242030898494670306606579718804555864028894900296552341057128388466453442951861567878762506973506893450026985510773825657868115757557045984248946609189224373671736126855387594962088460936249227096983116404366463977302056614583703202259555946302368552038836041613489946565418864549848001625218093567127801082193741138875874452550356474886012719630952322420912687880049744104025816998501328442421750114436157726968370868762405695305146153884351298402659004722135901728566931899910500115961748401501681972948692855829225998577839799254213461556855373433099086021501747718855816086140741119036674221634738015182794805646236342031144069208798695706361430570333500369960167836403624503163032911775856563278593636276719573972636942082125278596271177332078647829490858788162267978737865646931012833275533086743450852005420831900921600617431136785858824476200004187702144178035947304469030009742825102519385745283947453312797597097561103905360689036990141340912909865395222925725677816552327929564845565611541789835772062612446762710718333997147590066703746341877443197434259058005605582831410120300219630935812549652538112221891942109823013745047298581885060938427387456273473572172493141506645536166549908092193752538070840368097105580567012858620446576108300307321069040365962678982480995706361829791940443055453755901386636899720625435813883614468921522303434055725477401115748929067728368738961749875656471149013179432360041581612067997122849136848551963958669760586763899885537805843669031056090769173173138925456117874158059943620605757497795127762920923616518333823139787393301433670769571971807893124136862837286217250302733844572374673211796124355435258079052578546400140512993966867036445738010534275088228242854880083340171740547119962149078750108382769235635745807931360725233189270468023455357129677064013207055582669419434719800753258033348621957653180332661808965100892842465489318110843838368811975152523782421939769947800188049666308777757318029372857762840851230110517403378561134534083736021577459828376606531262819700245664391411107910799572843956309035853385708718834931518026920517322513184705331404694752596658549313528949079807417006861024570833418666737197297206887275041978919281547176613326260532703098771586880174919524976430378194010119251119432481362344108287090019379926902202248297899836003527521063982746715546878398793794749395856921475117224101132234719602098297842758332079249943054537372939483580823313791242646253952472831570964818882346585560482873439916745547508949755049148566040034513571587426088916791790982662503722697329615298671930803189257965149824209503817043422784535162239135604977580883810080314667854716600974250500590798453624529958920937581082254045080361700831043972391797788433527329925718686780883096430403003357450409521042783078489498907018954078881141964554154374208479150209024266365307134329038985787634613085800124868983072858568188656502580363271575289644290440630405774709658240944095048071593971254533935855557941469272280367756941801251667448885463902447223755972945323914917858818004539874451981219881948846228486708859334524118364204902045361932269990956329738842598108814097187610640588598443081349729398509553905705400454265512379022137628864870266358421879498512967668310153846618127451879378734408079449973453683047098604796134778985635267006447564927686764407905067020738700115684204956120186781087954087501384107692893044081936571579739012508210910317624443119306292178954216300081155344057087088256591732891028611534880831537680435724612502489906062445218165990516479749985706519865210624083548600777721808875207847124550621161907044074775497783873585435464434179516339554457290161311944333429799906937807339481904887715574907894931254987997527207231068573263867721033838542941079978851438367504171152536171681181257151169496620453579937269719979338057971242948920819000041563995511695299758983310978493411555418398582363777842547613540560311927155559094408664291333171381966097868336646932020026022441210827750324176077104107041257841490858645904319937700559279396767461241473839980435915275212885367349824270790785379153080390357287902836232065035555389517515099081042441537541839985952291638091762686965825876688204387741782836154916076806090202899443575449267084820956834059349085330002432822344649987664443419756174872401811053368966399704954987948899646778635206985717302437494326791706312756443620555700712037375016696425276825478705058161431841446302875479809574068143718819725447032571669873110765366136682414653858818913622286469101363156923841805899117918074727520323282143369838590691102262797155876261601504763049363434174995537970823431487562177720342360525680885562787188041505763960207692994931054266914336952580998415018805346884937949708780760029777513362932662852316502476848436476763429735475594672521190476682929844145421492539381143380528621451305476672265650534596401444182997457561281578817958533296598746404848973271702963689785569443249487045787845335242720367893214749940184943701687230058050457024623071896635166545888803403454599618943051829569866683187789669446069525749501542146870051692739732411678894827689759888161015729559270091210222718134640556467357978493672197421678075231701826242509100378293771056988285390559884819556390189535450378482330641307754353527528969682469394628081847783628322575257898714236057284819873715956897559758325100466656046820280835454071296448097660807001072143162369773116643118553208093549559210110422485384879979814544792148277337270076115664334264770244976020536068244279311073002106004108116382309340827160141669562572688364718212365507231501109993565224960190289924122396434897174344088827739184167259602289722681865170638736347581317802516970400656130392305524319595044516826024128668869726309535649359848809677126875797272330917429643085522374405014281598374959067073575464643386389450387059017297895114635191368852302032663219001042175213830713967851146144648514420603836251146790629282280031434708578424254391395103353458524313417156050614223626299939424740498642655260656687826608127313745580312772348679120944069120413909022228688480642756523350864796906350640718426188876557635941178442708235218357218175468237819722755144550176133921958858868645444949297678271579885803794059104742004927333043091160168649500399206479899448565511703858570580529090882426908634819136285468983155069055523851804301193357575465894328477139159132044124791837095281461193691295606346394535323813048493214035363562511977151742666338208433565271237060055831811911350263436159648845157643572299263940639530051990686050253623157264598963896678664587968794354798528818015879889542451874162190046336580415933449411021587731183957246534582100203419770678280933727405814566907448984969242774531659651861347726434572857642821216477553932731782168903438967997649534390759645768757159093566085284573405149372384064454531086570055883410469411686427823839749862570762135213847539960616350135060139862241865224714815133670382886741044145378468603363003760669272591893574367587739348277032295048782534826976834340342023612655626366139338194334159960676471701452110776221537571538316810731704726804000851239789506190853731441858654972036379450407540404214987819440633433872122371372438579364602327953455232473300734236295228868150739534240224777651235395992410803843415918967586979835930125066416280830781258556591798132937403791660943609081133997828585038326909030269071264318295860096296332272355146192269524425766788505515161071226068504291468475193146149541376279051259732304075890439797960510457286210905222398944920233428605863510021178813402082305957928640630886633714923713022654485602029228481470899613682811891593864313175948443731042000033469337614045626087775753080555136861935291015763052924850239002638066710171753265235003127078252679894853571025992601810373204342876755102832489127149646387739666321710338025062207764194916158607297683112119281089863646188384606146866012887826741385541387229577291166782167421349810110274365361648514718213762970258265324209965707587947228762601693646825997917972970573409714496642014689812628630482142409655665314499032507216301991308004841184412563781477972003057920090317147659401757056489344793160376502424198012377481488158684564199034945228531451862647446311693541072363086221768719395153866662452457962296740324424074174818996508082171976100774457297658748650468530528504364871650985541582417948119378051794205533055937132033562773630080470024053297932899637714922824830976597576523629487385240797504721926247339712636636623545907524267631397317387046671463382148097915836420982035754592878782770217962544769046788381417298785430456692613150119905691531995004614232805063637321632300583698915212802962721174929887149444302941347068303002085520150520843921509593991246321837800494357735544904687444729720195611460815595042384953716554691304694898937077748012231446615865739353813148882735736610450581694982186469344505131444999540089880129094555496004622651358477896048293855109865072343774556366030071344806946317032087785115604551414048814690377818170298537981890468298653491652002629949092395354593632050846421634291657395739543606242649718781896730796042669383619562112621036012215915516910378151561195452162458105730934940345878096339133102694510133886218269177577079255937314086238088137324406891303236173184592982836105964415345849978549534277308673152723099026240605638842552006864327188601120433244211827791859795242621870022496697921715632310666247403669053462567037579156058846093426640224695338756877361472544726799656000912460426944212132540288450999648776183319703845315371976419115604945423017814671866323678890763946930337253381198442782860080070021531428067911980105112199520551496455277247916715711992102126124444094285460863864995589458737121286658747817456874006546209445271284481226989912876159700585743559777895604164755241940594813590445251253236288773133448047902598755890062538416078873758770465884177827096249040254708029997849459615791971620115779886518279157361990147954099785560934216988502297909705116404803628138961030822837438233656417678182019039288675845287122696975118308501089087715646855968735376291333397687293688633746549595287112529625903500758883027999004574436491028494881202625194235431033519131809999350680802697537035708216739010178534821456564314953123200672248074768361015862956015200109949919409796967983127478607714411768799036882142009084800062427223366952485941587712239337093141599174872773729926735144317965687327809389377765524160391529762695543833091398658760001872003460055196029415606972851846357696060650215759286802074241893471843862338053854063608309824431536150429205021169294014642590281337447072419407370429701183627517359484643878258633575867696101304072014395484851849527673805936121463982938224199316271004815617904184200224538972916539147641899903209110546035476605744072753551993881290866741081746104387043724091289778587839037854557325211770028611911772558975315180852157668901998638942563648733491956251891062951027040625690946988828025273564411839087059725755547071060415133418955803670513554215479683430251551097613289367404860317652326192419120813181764246180678956275166629109865634860687615675049931973128852503995794583860214436720902603533359884438926676649181762991267791841875671072346288975571563185604890630741022124298069716397799009821623341786336536465261992667068747276999668828538379798390415250037718667030375657764323576017837953901136029225849068493410788705429048685727046946337212616830158124314037191544877656426521431852868746124496900751004407508124352578617109365671554899130185898752843681026596272434849039391552177440197048981929283549580840297346295850903829790309183155423403507600282453756586900608193545762409293341641426639478697891294742326385365311830524671696945772214076072134057337871936147860454642681156384622824953702479679775779458293393481204459440521037131500436870551367795547505389844041747140645365406763816920483714741208877993929889096377657166840931709308589987232037553028424498742096636650837039164253104003572133462888154945269415961143033594201158368413614852839587241488691515328815373584634562568808505317727912328734021689942059580705641166323970783355886116922686740695580801338038067487565679520384663641591187919646177974030201055556662065932135217734047723360440178516988311057536766455003622175999643020403386088679646516097639369065243460091633564830964827660909517359456330374029710784371277749131517739835211648118288080289959783875477484625744178954017617918905598857354295581994160881964329036451788721767812339931450041687387215017057552382473291067479631773801183429940899448951400051340054121448472187087914985646818596297546032005185059632008212471722427370072249925318426805890935678562610820746080801416239074755002978905910799696523116183695223265530939291204366996291203782785532624914868085117787030885633194063759534447642790208675335321728658644122546491447652523953804613826654987655577422553512956738027808674659705715939060728444211340628897290325144359970292522383939408795125411739239517742198781714439721294717220124144426402713584463331372304024415543480521689660619435744108118100532132472642122004826792271384859331270803168711257835584476409130809688119160998269549134387649739302541549289775667353993732813880547385532523697241533370391789031339445716174684388927762241249263278152070456243880510210470198634995394397728483233823319691813265807888861948162729538996048270264765177897102507087357276737549968432976590253997345990139576488525248680766080352130836819355022821269258418363750847832371929923283190504955395368695153498601054977913541882554174510278721078882526763314803753313131871222198404995048386355451814273135039184098156488746269640752717765685060282011249264870325888268616850678773913753098985918603563514819641024125230516057875243568376558220313891378135826854741165221172452308367513892364529397097546151639095924639948481096645991352800110177500143713705124357522142966094330752232725434733414717037003937954139672441856650525958711714496832338869423128174958734428786063059352020171102934563153206818853271639755348346239304156314536177694804661000389147702019791225875964744532698444525274740618746010399323807813054891085699094396423311848727541934807330292866141137608804018885898512689265993551932234851716451311300081674082319472362157355321536421685408859004311933991417935448676999057416388771979039022199772957895701110434706155198225722974299408133144119980244377754089357411160852782803685927172984415247832856581714876637639805478754865049344425430492461093084216909924418760524307430472744936562928448383325976848769060195796127965612862247219787030118098861805260668823742800510314575765633035516374406600132891517662956189549109750972873319537514537171951463865739808580887374580278812089572595129852894862888424404719401254707601856803865667371199757776463522932892393329599855774466159157869959067461200901726549622379798493408007775059907659076241256672923537263993728924073576312617072893495017230664194405805680592004062950123055621276139539956247303523638176610649585421815129653896383416663960022561800121384046688066316086967148624805768824673569181112841027976413182010150926147080994119566262479847731360130138118519659107348413782629103427066688497634511841411067597840433412561258596923826335773335427627471745240645575070259480988290060169957350971506493534097946038477786538735900494926867146799019926637629587103803568592333896053818080574909375075284555558247148663913509170591754539181836578756974520871113036767900155469786920026821336819488657011715328244321513581333254827620097674729256615756048610994162275779056885893127684479505407830102594805507904629863827572354226838411073620561463879792558864124383623028341516460294733045605833184433108550811435779910502167428081137817251125606167783468738597148592203377800851923277449490689400655563704788391813063494033994865170440852607822087610367436714024876008614341845291906413544551743174535013259499973487729705877276145600045437289984263303370707086635917879045342324423364040105673726213800523674224800413696081585771127957958156144103388085100929810894383959435812365785396280597278303905946387113380814649999440639058673242615962706631702010225235264935297282650129162478091972821926317911801364900311365169738423831171787927291696962524697128500224011342198364529503263772369526258982598926758961475489998944817019541878627224357459266028985207429048557230363992768951599934402006013813674362081934597756148018007319115385660967080194405599879875341189764453900331646749783751316970023115539664861570369439538817200509428045879742225489157356222502011266280226128998186303413847453187180889697022850745947382477538263006719580089619739878782418868572276501790440279826419065432932531323438502477853646132764178812105575212984430080677298577523705791470087093062261645321525468348837943581081280972553894032977178478951708230063741661116558125324240746154417144920658466175734296410728081638595835269739926111149235709360057079546919913503509629561777585908996098358696331645989169051098561454279687607031416838636962880447947866648128317965612771570195973190578846256845189022654140053493565812942135601631122504271969046313415794237923682882183961776883682307149165345675596353619709801376914991020675479732648611989419054516763906799556738578428660647901883645313173623061750791356422970379890165241855767134489751821141270682871152452189589551708865258585371001775752990263921172908344253376818784806261718497250294173964118317367627882393187796627410387882768730081382329255771408797677385361912904271646960260882604044312045000744774124667463575977692659682852509966872212668699502333514670636395220490472498674337089801268880041686772392400562289109383586180201547335610604476262885642608128409660876605236768125913292714636854094454172664878399833382414792155173254822842436247269844947557670705213008778072833378921780307120798694556574732837605597933295629956546855632413964348766748933882146337582546608593052781666321792022899216672598027037819848733190349071624777910589768676971787736120692132058328964070868173925122636825187055429874902386726530578567849707619830757404663311690618174628278331205023189674271813259110465976756297688081535610613592284578989498497138471724289584256331737539682973100160110202128557956053234608483105924291259051654642272954354218182292732993063976093272915743474994891901035528810755414699905497113009647104375386602573935794393920878074650027381500137205866087152964865068027888022181128715956773821585168780696135824911621498032199088031272164140210262537294340347545944113738915434336752627084919244776928432157909508792165497302191218206897614752811566507880338062641049320408850946133927026849997281397158516559536253435875351893497472824746393606546342945516088446559699292913422997084901321680448069425114317123469030581230610291636591214383043635141483274958627596185756887801400235907592151952224499159613082027668120634492121468178860169895983109488014034931219019129801599490461064080374133823295860193596060076267056973560574990672705821011927682414366049863386154657148131698142028150722082672417358365380717078053008103485297661546400253262795726370792860444597746420391403886822384178782008816869755390187402881578759935797742038001853484739877035067763810399547061748702338181170912420858690523785475266500252253608500711603454271460236635262283143791377970209084175463223227496749520465616131390944563212229972373526994886085069810673392934342729073613521488526196083345814841640830929172966828800262416306351634307640332390352995924769666446563334951887143572981924138047356060737311817240781723604932195557193788415567703298700567692254064806450807037549297400653434814193167549479048313788514100986221718649318697765781979050595350240776148174016303922321874940051763316627714686759058433839258414165979711904306565645292550214973836854608078605616352354351835262862172337795963587398546648435102135768124028338745604951040604723982229941893943530653423330083374585796670445317141259738430643985544044108731145786687642493291107574581927101495695704823933932509471217906217012050644225891269375517915359007315988540600405848532196047175975506346969627486738972302427624730788118110916665939229721177195361188467469523868355829500089839909570308790594826770597493193814835393701598857425025987840706085503308176102498027478189277573010420833893981725060853514597829750385998695599509416773457593487516634201019898726744057062416280031602612318202617624172195713833889326030324000819907679797231084067030017657797553813538611376262346737212935275930366493386963873772652749660717092140157281691302910873501087528224609275140953958467955868490620155550110968133413236971297711294525160415974190263826991264052808705800917108363184449724799695079727198940832393583970252750947057005811242703704205089538153516354443815343236535306078068628554253466939931264970357477625421474497342351413718808893170675401140959303770015721926071748218781936780277554520050017405515396050074102544802128694463656837244091382977701382114408240012286258292693382591088042225053921550758575381779986426449261959615467034739400612696730156174010972561888527965214243269656990189671557271356718211215298650181122526201070939995993121129753009603536709900859653479510146527477948561587678509133834976075457424127748797528128052111900863203838990435230506050484577385122752248622254457999533902434125541810614315114913182391246646540900894275278083788184552398791127043266759624409841189166145936804762457508469068143466265005769646336890759666692037745477496763718719259667418948947238606437506196441646011419089784987042622016273680396413705565764744814477650399265379988752345022659726715193729586972608739396771477770487541784582999755874733629407510719721308144268110356420427767157434880338775662861975953084839575192370985560201043104069405725693157250912450714229838502211357381813977386912259658993309900832684248521725761249560140070520499597479581431220868116181283742366891038091178758073847240731749797218204942470751006756033875129323775831889020603027096582730607124766964603857931531777120904522564586212334570235311992732667558275539363240517596390146469614959669306897000184808878451909877873384312993515920562219193718987818837844531079566986744989618208699168391698308576078424798086530290268111784012187932657832759288188278460151418496237645610102956474877016179315323313885731606209435604171101484927739262501353392381924063322526285825954562763841637804379298918650812583681178150078287211692252635787709639524996576180824815232549590529935832001844285766605445943888642882928319279571250494859099386838135709548056056255348612970746784090650421120425397441966819649807389556535356780868412963094885556002124567430990028670634494482538549056122057194573495571137655645000047027438942291137673409196531153799047468328080192481113949583606249466412629972284559359157097218068359660514971944798974493969812815472499385364782352959966370136781727992798032710756494569257787041444198530554351291004949669504540651898963986008552649975873005712590305849945842437042527276439113364132449440383737770053178105673746582562143021703323021765901209390217170768218693433189953458694556690070001213037506978976518231991102480504511817201994094431416383577653694733540575289990851083001881208033051421908043103979946911813638013709992999751519369906654813150288134101148315381337942994530432261337722299996051829478265413312761723795455162842090044328879373334319050819403667230050725876943696981583062854244891867668915633682576270130255336667814389935858447067166867900936303949184177363212663050139223495932987578349958475351128663147061185728817283949924930815535136840466916041381897906327772066731270895934775461929241774749665684142277942583223630159439740395011978337829372109601473670966595470967941562513376270508187264640094623137040642777809710352525138592526752727156846445611870193639595437511515106008193277831641870216311894714831051986038894599743486338934674664700110471782028564102616780335575888107572690033744183346237237004405278883248845538142401664901049223278654328461126455425280300041059466954952370785981448611133004254795825836279999966445063370019383298837187975281133634274185569652867291104098577232636177534829371452269278826041926474220959425996308931315610578077435996422741953430602322642243603151839923904129691038895010033660523337533019006093641820124210087574390480439100286643952607976612826590329375965269051503640098615349632205479451270905962246016046611213514977042488538177829416110339100059729733123232829408402580822776930523286901855263257227754061855993941024547199101686560200255020197611495492223381477737283687381880753645560499136892153079559133630350311713445641655256242613091652767020647427649544728112028285581416608307304535141017745005375674037783876359419548029376691755219975245205727620855238849067040124134956333644482167008139184951371608520814568108634294431921602913237057117825372747927557531453915026168989717256388270196335225344284795726710263813475575673666786029910453597479757471569336863244649774781750588558251068172844116090893166253962773574879076095380986764547424654570761368689193712266242415254122338930703198436295861152208314887117173075588354648532360503022228470052327376121708420403475465850484610088493627934146736937128308174594687772038820706824425005248331350060234085002955758959248254465719603680785575962650339914962446753872560629911321760626118005676152611049072250863804495325366738370515029784386942308086886457791470047342394835074961421612523641056731088117325867622100833722974253375670951213527958469317747013934273707710925912808800340012135237829352702570998530739821089560258762431265030727194213514840573914539817548424829362645124331825099464451267959565114184321354726260011774480876235416349278089315436508436070566538240434529336952921767806344254625365409977166076685975057205789911775067130966984357165553338273867966046522087475323096014854911285896808391590057467517047515433065883195563388976587555276921804071904634617931396101860939523055425582337918862656719294150199817165917521354670647021902064347794466062897761109153799661439620225162816740539215716199766184785837368112781996370389251023312560538389731470047918815636652686522823235316341086682436527134978495254515253815356009960312867116541572138122902524193560866922384229177403009928977900903463246415584815491030933616473699849143816117173782747702553315181105707106195153402589126145967827643080198535976205781056088299444450302608447857607919105014259671521688081195739969201653018884480100242993775842561054287064114688208053788994896026041012096086063274236804407003184407629829012925687670239045768785786388155562696366088866688588357257995663972741002846400688554279357029108132520754405844921932846205165642349004046403146022009265712490723915229127288638849965224318417303011775784877193343116957983994735191034604252574851149398115406758377246755593320996692735168829086526801406280728945465165311611006863581798540965329863870101473122797821594858164651547325624105164404043801970268112105069406210061588985061906855437814382466211997474490076938469300142373954050350952535654300502562765587068793006750541139013645728727784758806015701875396160956117875177588430560341103318981294633275813930952353843663357803109906530635527392669072539806782918484070691965562660146138096892521251567541496278994678584441462011361587321203383512249084602206062917288745449053371321008067622132330641970954402526343763185308400799674243980135984468173336594678242130339174054607870929409154843112544018881090348090379924802801072576806813459626459322269702707235909824398412020744790127438643293910399544130280654701161461741241760527721266734594926559359192358009188512095091152439611272252465737820151894642134342802113331335802602541400038896045665107064553979879044268821094558883771378604841894356479246607202174356928109367005869529143414087860307036110040983664695948477818778682261492373433164556048595511699759224070894279461023063957745023295229420346549398626823313879456536685052372565853835444421137238801829786629295691944043867321027773979328162425648550021051618833081360017824102046280154267091893112919002664832857352955536662079533317403490933428409050682718501985390609362321801236699901921143583083529448492749813089664254526412183386104832841511742783451219387154959080053098426391479612400764754922172198016579927820047849712894020255237355262440361836018984940611035790331456400203180257181352865944241520662877964634211453030968528072877527637968604058817218898752448944814308632466935626166724572806355287755688518957867872756272529027974510759839673776205572008329155049835233303135144531970192071649738765170846801643964336925972539481575539052196738988828543021786392691149050173590699222406740709646506561905115998497932116658586057928810028147738054686883783155899847817467257547622298039920605020694320686571071301465277554628490984163127277679885497642081271320674230613116251367328527755641849832741686918986710124705232105976251357051136391567409271675716712334023259706164487370021253143694316317166365557304106400940353198119084559895508164373937740095658760924920611908343753183122834270150099360341366740316277214902120777506960692035745672939661331211596128471521396287095038797000253807295356164731554215038889425949156032945367110314324164177583477326298803327574308829335221883622823773748368619556224842510659518718366965331215562566121285469937592964757518776996573062177123520921299130754385040412530444410235745942253239900833525884344098396210955598089317258972742540865034802373160716054104294217124362310147069229913127817415126669558651926826208049993094875611583023800053462588529720078152319644071678062108298700049243646620517495821128575539531961963594214219523396752939356189432367126969711450057738684747526275292478348713765814450229346581899857975911922337429855573043476435457652238813912988346640871239710714648779879552776499471796552826450147348153329320979203424511788568305619637128736002321157276471434267312972228170203629635123279701271771261043997434792953380035936365141123152035369859189337540067097283522736328530915288148696661535454654125975259548165094746228037088051708144724968325101109316317215698635832920533414500557364611866130267952392091370293980620090334230790146267427982568956058535182583206229909667555951663628591238414004611879786576492782158177620257800130810395700324221752900810645084669213328873195907885774623884470695926490440739720397145283098833596143926456490996286052071026460355917582900913695242447149244218406597007147485705932186077191609869111543609784567435922334185872372191359170787742855732863707881660176287894032167040951419417431186056555402830041875545313641395536943522741481148312368482446290053208599127731411880044212634494049524749417332537478276262730350512863022796285761099020325302982024058043384191248924960423706213200114513600815343452437530881283501574145399698153489553005254533277083321631409935560993991823598125180698339535151059650606571128512776823768144956116703746382906849753378504419834293005768874410106638911705780556095158365332223281361205916202928553424547399029961995734878279328418025077201998823116381272585593378599158070655090450844122305846136269583848223577258906236218646780694057562768438123586979483810334571145973208871941998422108023839378890897975724227165564025956073534176346740134667618566184837574373745701549744308204781706628235731777492284654026731908126664214637784051459417638067529725409425595404764054363331682882093022919408463044146077584369381900693357003663249145736298872703137022054182870289042719599709920006671525607352252440970622581910117979072814963381045088919774785753697164251725890881999676006338694392458525940448814918038218069108013334049150258877858447176340843606720585804197705551307835634139961960594180471138175314984596765953636446657485705719077913694927639713453856256350870831154154790142895091068944915455366238515205187929266290654621266745923788670591968302207317703741929926368984336579020184179534010082179655362388046314491423902830261017720514446590217544381884749013631214952495277273566064902709884575521280313369892639862902300674417365341738647546254970864111225635904957674546598117982691319250507775075358397368660159659319251583863087646947906775444080633487344379424363435611906954673373196811198550712170891371118177427008592252025687850965441154267638295054778988290756696236766046103683159527280318928061726050795813106121333716019984462521759678688545805257564659229968393745109018120583659330959360814633049068247971982718009574889582455165292236827538546060860014919340956159674548811929553917217953557871482788519419192573067284497861786827563616320242015339345733356620399428708862524032744498677822948846076804716076921896578040279583374717876584778423608802739788952327087978164602324426400569166971984283067410182136323458499824582514062477487502066815641228899743020957789637549075796756259524620181547824657771168510405166828276105939401040797150962269617622185756415045501742344602722455515036711979958294041521715372472137405772052170699470111991756980376740396773847113902387125689749005009830732696887460168813502941159684415777829955702179729263851787526932238708424384622132356468367823450627706835482695291105746770343682148322782147612691209840129273238216487117663526208140743442333878028063445876594162183319401137960364301136294684322022412635296968014846590011004672117595635561336745028087297228398947795868102136918811768591079287218733991892421996711472883720311300359928667473232538214997838176941176106406596938114400117106963229158127238219352151473978742335945276541354016146035409783497789337703218437543813090188223647713014962820923599105832707907213732241404264218896887135427210915368118627976846298339276353859315477802233810445625091244695189500711320862561230124163708068480879781910367284276119966419638743319531957797284767444315341466670747252827367447496626465288241306986154277995187047628000569188526148360559815755753200482491694217780671221036629049074903058269916824811148104294848979456769015418626196758975769251582482258107793189976526970980301695748938757228793509002680501375581080152861603626218014731985133975078807072411854866606972470997945466500790769978096194351938925330416948226524192390697833617416864832104888528045080413242477721581097086982063896708680817276549196904733596492845173161928629448243119574661663015617616459872284711911957010963167251854730574646187503431007746124624718713223446708025828823818542481906162686153430277008050558804606945224784939639088827583518277043249564407782147314028486608718490398017123103593620401506179853852088927851192972096419139151006450105176847508773873044567922317185708462503542847679267888038290939076911813405966696950098670439768023442971201666769949798866527647129355940096877917117654797376241568483343739997225061253590468674449923602569356813187725271381733571470823666801413414706730106540700781391407863792713147338928598253402921138810347344540853338228014218478301313124526550541977960801131047277902769080100100324546786688696245331575863645463175158425958086781450645349037887485594399288551312426651420282971924929114981544808738015338830992803936604254688779982523370695143071664795846325902530756502547081382134368418619615709275867464052849189437758167815845535373376937957693971444650955041435158651294699700727072672221763127316706478960794332069783239793968341928608114187043052954581024522095515637799258987963013299404540611267592898252215272834035651915070516319022581993396338322062491227982974959175005873220771784870065042075982969434184396320887041134695347044732846733295400230641838538272183522205828589675937084332706939529440281978469676586560519054521256215052401248495659057287745292341633717918027619299026470678724499634886425348752185511149160564058867226915732206244737298971280633148001271359880947014487314602764240478292029784449106151052593001893932357282331023443971753797383744209753673049128516325464301031827795683891310999105451519714178151322325297727326110741050783323427508778422174644134012562005028353843089264032976940864597681385941547396855627223682556157116381283172014262405687853591880229953100642742807661082776639390330637460467370462543039399427765383089886294917021617058059821494543165466934957068531516936887082961707969965299872763274247930504470699939371929598477591092666196321284961391220579802751848995150210752266820066444313353661780891765483232024943199198760241231483269013975063411640467062504386587983336325422321531251186705059036150527902463209158160031699088014494197315412328962864649911470970727014242340172689166762004870274051459360891786344986853496457883781744156280351188740262287984024646094217129402841384862921242894231240441616642914605192064011399256232164740081148630818577745145713174362333903193535606346335876568033553190332130171844229069809472352966507595134385599597872670146747067080431159979097543180038886857249964074514661996518582827251851024918663339839594388720093703021754593276155577970540821689122970611537262414609934138806277607432692416380237131285780715556505131703784692950006141640351501744390326276629539769462534662617814798007040102492300650311996234778074853921633942997597598624358064877798754418917809884433004896028085181961323427194939828416522565870839981678521139727779993448402123714930899149076633380862694049056061485545486526531332612292107569295507347064011602851541806218057267515673468021472040128687108707525695727349905819126237829391877993430788806359794078900160621235707765216516647709551578573373330289064179205014623981190352445848581110049633915527337736867582746716620786421619076167758829021773574880871237463667792931328358577312983133895901420623059496453469657263392008887611300659731096247244014957364045112091267987012878229012895694159447762264252363815416893202766390869617665272596632990819413040339674974090969124843836473345682210536481161151289359930678999418206973511140556892551497137852274810562281006912544998221270188586590516365960719258136067316663705533339721597581914858510429054341246431774296736414833413726868933546658169141445176123053205560344645794095886094097282718513396321467490945328661579561433121253178545016870151119013885536768442615740063538527978962914567033517151316545311321718222735473422898097054553792501034670134170626452868656340505934059316340133508129006474120516146222454209491964594350307280254652055775236181198513780140468175884114501461118918942716090698416421197707553132839479607145674621426854243098459916873666075648690503410660773736834362181478104162670446310662383998676776098495162948410738847535030090860331546670856007461654476628081624490724699732567909639113741191739170460454380154972829743618870330282755524464026985367936497050091410239316411485971259463681206828531238670103974018849465613788297289412661077944825501770137306392945119550850621356812170845317180195012333928327810706397327840163510702442497934068990890069773907050030333238681178338014899672716600478076639811876331261157835434486033508104387222178299032087270674347189492260011019702937643697457124643112540707331663832433252255446110070765527389365184015035630671655414849349458423057532412664639181378124349446304129369255171088294310248833732802564270845952138956616092676160905461146381607551654246924280128734645217838040630528259089836345956810460370338778325468068392912513999822499378130984537675014480976530894362564480774369927812087926726683399493828420235199936239075471281794503698187278791247163500539491942333546068474790960917725641337467420777419062959033164226992403880780816186990683852155725673930704856799078059878889606406274484899249714606935113838026025014164620174288902947656798686998709084162840452572079252139677756379069600354205760384868296902891012587011501225697515735091729110705234516627574205513524650231316232273241972052879096037413419756690979561319757437843288987915933575633911218380997816890851800975103698345199908373807684929938468175775151722363771079452157370174426018856486573597260875888421929844989369425139923090042844148596369810474449056442452292820470067384540985795203608446390704170358088702172970979695736962847313162204683172682228617749255780193289077200116647077762988979722810453474791246411157475466973742028102043666390229678614339831999722596551737535407138945571570238109717684215296819848788852235936786377363850688253748215291616076398373178429159717027979631496681046815088035298849672421226909275151270816136982578441974954407044246616952194331510256959686327566577661534376264259638610663334277632006300495801340504661263543921294517132222757831178182602445321576594609378675859157208099556611311524806684057017354503399232492163688792508129389757669105318303494865098605328142503714972565930972653840551931193298669554130995799654878154051849273196306933604563977328662763170186325801106568354502897245615561172151260771062319874582117140879440910984946216177907810251101645409875073970973693829909963334841411717991625928740496829929437712388834614464940797359491858338646030233008552344896306910090033065993382163299334070789060102214215926307808795436883401952035313431412233325037265899647386865564782987585615568404282454352417121219174827958744230718135867609985237609338594575664011554906468498299487666408440837602277282207941283062311714913330951046538866899265082552065979162223769681019118061051809793222470225861479740133984978212866591867615554098352524093878744524125725274150571604270108929443310673437886697926543525210522582512890213550899514881399698461288494560364095643522871827676436445923514094117830328055424023485200155954653480125610517187259156083013749151497013257070005811726938487280853737672285663400538315532904957497747351683262732579909647680914698773842915066945090591118899929479763654134087120856333188236586386340541026303114737129427887438858588484955756482509959553641955140451990245117542077155330501736972686141521204505857311623805227776251249386532381506344262786702138532852702340905004879753204926402468358608295511986068342035366189652359913495917398621345128733580228090657591608110224246508601644788936842904662070010595077727468466732076406770797058143413454407535728824313223317004954271124614945229928374521946218470338365240057998210867666154795160224038918725940674673743118196089816077249547562342855061110810158863694740921716866388617259434604369962037434574052421342316584093399733579667141043209275006412907219535984435030826276101899224713838019146164011905315106637455993755924839667493743840180410728206736334798537319262233925082324793219045264332548870326660832171755795789372306194535147302216961989948708994590076882126684951672883574302289074520458998404473891141985977232917403749085002754560907138949365794136739125361758018852598830151382296741584915818023675647139224860936990395911144778777917848782744890098839789511476217697993530245697575091486402104302031606803419553978735939659058521736037546301617971037055914980945987739433969763406581870921295861038839083239947516740203715701034869105596375745800271484602678510828876743061863340840259764063051534645270692083964335425623181573022422482295316726577866419889976546197895116183019559667731486217964058606717444003937857250158557448513146199062250507556459092752392253841396290505955823488492126604940008983306143894705138217490124429004965969543500190887355709916498372884511233118910799813073546831754145717433232077179167165091941285597638460355265541767288890033031519953614234028142584947597576511098911493565977375213397471079899259839026654358919232462827048992912965859608822967950069986169515038299221816424880278214357055874733152263273674559564307937247333554803190463786860479938172240419960455266883697187701825833042002562506700507283580851336856341285184350388360863578950816638883582897699495058943832772678252321602468751997444730444426759838169610163216568670700826523699329987675668778907912418333905257015346732790541184072151502415063103603834032363776816395833309115356382364307665862270623697336949417152935433999512594874009081418067980483110491105642964894205183267423884610267660741518335201476348492056852442912240948377583231609574016255843845317692028473845798735583916499613416525159512487376933979551491358198011097965738703077232909347974337749528501754042609707476212262765667184505951450346604937840511267187123570853091031850833385549614792051226248752063110081497106528203351311175504752019106519587405676481880310639689820077002438898997045594989214954424008019904925727494781019132333423891563061100604688824558264342034757714277494509299372664058005203260473122405431774494864443805534103159709995499124713886057069081707290890275896610634728617022972822839049742811282062812150942649369528598047291889855088098101134735319600303981956018105078527607219345551308073811595398059859348263976902217975749459155868522391524995334227618634590363746056231456897937029766370224693160191096797708942638239966488865716866474252155966024513723642069308896413462566265085367056093283975568394172083696187632614819030257682167421074772908975177437730844481838104549635809437542866017855126435858735208754619921700091528195136610639509189372242560021017800227159176129092991112719873597731415321727530612913948384832554280654193771372417936136499186562029750742994438536775375482673968036718625423451695404517208125411225880110409450514723215660231511378627181013512894082327995931389177220843594802428687960153321312778462770498122875314764362861683916256352857180618548347401249257521319867690168075992532855925463367877449886062218608425973942658992306706796581067981307833407542073045556576608506883805088754334149839784279438875570653121247088974424747831673010859187154586472764596546795142660231047336888169686684931874691112815176223651936524225606866505266860454797309632287542697252684517610749023578693887841123960869713936781427666162532380354259068869156289074750940844474379264431198395515918253883023267070966000137480720426338613667269023006236557518616584920746921171980466194444452348412631941638035491605932037195973764655726165837496544547959390181497246366954262365739706410296887283653700046594001525095525383717509322528306031371228312752968010204263577204088693864037433899430584666981317834637000944575636740755841150235169466067509772407314296800040708101701888889806253174033561880767636635617234397013450878244831742873332625654599162869156434247916510366887072575128196123961121867255145930997327077964964980975938863994859073088546323403611920741130967297297149786487349651340803472485471600757928449665403240318041510942450664743696032128073202029434349493101386019976776419318181544309679942670076365685696023518090938275901704385455568066222541727519231207052407248486029785885431528376844781560122138128743160095371855440863374742871425084282776385586984015143696384352735013088867775800438019647488224463262970887468422349676124789609972194338607993591947530156845476490952834146793907887649774508541157810584853578109137833094390844839601994727125397045927094018845158613241622842512332410440998090893270881199383190032505999034501688175643839023478250554013545908019875136078038920208638586690580081923036869791034914459805890774317333777193028581031414759542154183138962058856754839073443516299695069763566633178669299225476497089427224415372544370419078824260909733881693539710362848752916853714034525607036377391505413445938140973423952913083567198195569345624202409627483989147299535035184888625177384764977984791796539613968923897272109776464415900401992075406656063978163183320581794278389146610850581861588706834904231539856004446119222893111119299563646018725436966360345974398902344539861400935498849191673173544000320431024141489116664745454540005824910434687284821868253530946185297791246851609348752830486413224719869617182632695475367341784013936432349255169431726598830229168012788404978654688892936747246091701698454236993748291438029567387236629186127602283598417321488228552951983197207712843913332532020260535564643094117578902747177801065245948187900733566529577342297753073099487801345766696690749855545592370288635046973754000077531875133790887561766743050528380755210162473792602395002474363452650701091417376097581595582544050029512261066718269555469622340153388065860501191795344301306280235730706624651892883982536690732091895830784531458915489954780199562862220891708774856419935521504255338854677575935099357807648927712893555403506147676504788604366134617449422878836510527252774039125464898736374036969525837414775085765956153155287808259038188589461898219230910278594430450338039741767647873852015177505227284860601690222927564556979799822372531805249254968728978857883548771529079639200683468428822166774737814288709315131222219483334328247835517986055354991277953318047220489716758702685644131788508884480988139111729728379760261025934750137872860314225222138526737419917266937860405476689715028065255047404217407683230790349784300084783289735438224794177346478260970822211365648004937067695425866555834669739412606758561996220195359991164264112778083611234988510279095636663530952709412945016113715647222310732718727350223434385121203269993019611384511954514269697999720261920932557489044043489618740179722295869169240826556003326567619092565591397246169551092938800829375822639520684121524031555080902476214546743790667678924150200728482678841736636997323044738983781486040403273762178455205045385654464911846438512032470179190838886424074530086845587147027104452244463965835806209835547278394711315788232283516828175537684538436875168470858957006295848051445573193488555693107735614880790710759553730537722060006999609026030827808724405329670974093456986453650062456333836039815941105941231337738332798284881271374413490451725753465145737776374377090405651790983868037187021418494070288344810023258558427828122375627682613506295803985520490200067445148634152185812310950823960037946779139189474158196077237293262474322541734062556309165864313516544023422600363255043664210151250217377781276117178640919950279515536678170351775961976061165359482243913901468351167926219698020806166702175022147297330964383982192621170085006504016578164703052256327105244479675746140439605895037840456796024874022006104125025927524238114673624822854032427537486897263953824544170058522169804338559992124253870129236834732861653645324437000764028529733672589620543046940916283907888417478520694108181735342313327142240261802378135846321584235455273357342812020272156249123242157724371482205198958611554130181890068289901941016039437004803691164952365475890766730906115218294191856209680196326854808876005691135871899532044735836518060309622603809638886023489341952815316334258842823331396839193804319584018008810760024084124118070864777527528860211951205636274535278711649138421866412296127989715451752535682598482387067614910331078008305768278501248813815998964031087369439405333750143547237912990193280956545337213839111076760208237109423312007899160636262148766610241238005535422306296730148806311845646547520136335992403985225844632616119050472515229796866066022739661432110290324093908048293445265447917713480284005100977040669003275242066167748181782991961629891336871903828120518206254082119316034599039417614396973846799890513486798247488236201857366623289106491551563370685855835721916917668533937885730072327301407207299311649343059555389372908185565406211631100618664897378295867560167344537432378984093584821808889135436963323725226880035101702367738934766214848319868788867568589795950309222356367910712162739562739756737651711555933468061130772369926094050628880202839437949834857898078857011392947198347304913774364137173351643092330049154431367744852680533588411138012813400252573999227996324540131683561664713838159280182744233687200754341864380414795768615792304453893494905538834540684173364299345186096348210027384182325160766530707421619878799845183775429916381840989662352576434953506513406575651840498357878514715248978634977877739138294513003498186125399606642538911652587412200173458731847458188784175703738701183225765009565650541696075569022178236809532936286394950379967752763837753499223373842427850012355676556375190781230645105893301860601841834946641636818874985988618132582962369189820853195210623573957756374788949233739392582700396930824893201254201371095520171188412027520522460049847615669985363401529088706098804457056685479915947751780182581028187153473719467736565132020126145415033013093493893240021295034683669615389361261424754947808256994405068597032929601573249575429539009419260313827645830312717603320795240349330398630070452491310551919346969420115632435087827628896693650331931402938487625182813046095245239918932660929775239426436134244120063600498769597964065031735185583420667393239228015815503582001301816489165073910146855071329662009389074598319395306487011542332317953210783816288013265618917818728751436983374250696177159662347830796681827279594190179512857359566905919541893022552954579004997638698298341786706963669881117947953698470192397206041719017519377905917864727750244624685949923737194615505940133857324860547761460555477501016251562442849497715136966195600640689467136484419795030525688294487020541861356319456036544684122121455649190980606548113977450386436772191854675134867066509252065322534073729803772046293597324459683856454678372406509415955887996526958739825059834234813414064051581106750192628717708915226171958653578036247157199823665287620875895299583122440600431581360818599873805490048662506283470524727086627496479717019014600576674144229787576028689086626919076007381524268381940521939055974641744506306523336336013440978612977880043412262712217859833592427765949787634728839336653737347838762794348038975243866608807722641409134749702930971567061536364052260872385147948589535768831569807621737411026669881318134321722586878265873853096017121257140377120688957121976123402321665167940534480525114739385331865418932743141317948999532163075740641810669389788382258094892030188602895898049100503360694882753291131847627487903491444799292422874122258157011501598581256815606629752434197747554828735406754511316816133663862869472875514109269796898956561487693153418372460607451223374138254204210136007167462306145741548641392249942146582048227934186120445032273127883452519297544382777989158024474275003933393593698262815419947346669451878339967889919338032953256010631563867715055667719109517578330942371067882200165371656274786781567231284864051535908600929435360447853251868493998337462745112511769521558365311223191653093962780169089299714566748893149233456441646308889355916487488261667608883190431647195247924085938599554567830517571762121724394386660464684009213190116129009347275998391276049628313286230681714091213750798308099473319825260821758385314154088198774234164004082906707358173611968543335261377923018857075347883434631133170564404462961042024400033766681413626000575690452748758297945559152578785918054821111602237844370570847173018550985782010936703765287781337906578041647416500041551964946898436311327960268548606230993083551885435880693873537500337131929839092504196167027216449438006426263465718260516659560165471090741526184558230254093850614451674282768398048896640383245113571532017990946791892463620262808363194352422740992282962630084318458989422011079040748872471420157257723865291318707374388703682726207862771829490845233077021766721934920225197349233067300874715228236237933353149438079924586652689628091641214382194898006370334747226178937613969171574592247937504122343369036278433116382156908715821124421993542215502900087646515101573789993867049061003088993969398186739948070593749509002756743195219384513037999458485914021063623816916018114437275185892677230109570153002939329475777877076812225372279976374772651869219917573687056036713553346133020896645803527436716431605723241396329562440164642823734929471760373235997210461940153271254160282453589488013707195436304119021659305565309288333584619595624888326974937015995986592458422881773437235972375593213481790150521447085909616398339746161672637833445157681146218607557087408293794000873142990761634599358472075414149719771251356803180664003263562695306983019663655526257579085831890246284740157679821145081647686230971861875391469060633839546717753338556760923065942231709625590602163848286604580576182200624279593932416779050484141570384403071488552949552817217856748645105967134032844794545581914101497624982245415780457438859610385277160774455896779384502453966297536169679309331374900637723454714389338675112909999937747453246904961753850346376080545649555759449232656529126999296521343236170361353317013245198610594350056289879994138098371568076254401802260120684299099888018262520066979446116774880910529496709937010142527159075810390253371309718946420480090616669547731775417330035375838834096312253122837269164652428352499611225491648769952051007005684163316939353920775131804537476029120724138577352942347613767109349594566024114166807883825646010868956473025304934768533399891394072564667149164740490201091209951319036868528130732007436585334220761655740733555904537924247535449850729065247229485136052793365435987685226733451733493623727793329834454314273133634396433135005619330357249282973974588645869972920589978587744762634957055392912233161092153376311662112641342987741904067150098358624308576633757906214264422138809077537892792223292155271189094169494005253942793359169105261145521488982710337932181533071451254643067730876034782400254917326765425573712273973224330989972419268908867254353320306125493006905115934517425616266543249899457716604306191740021606999926188756201153922099643319811492304448853233279625769474232152785755467101312158804908586073461444355074999079333016585991771790044476302306618479470025594702102482782708099480678802226790954075174735619551098759968176132709854369466777083910573350807494400663386985162527000704329767879381815916471012885769069183773397779639585153821144292053563005991574443802370818836170864114571510581579178141982097448981547007500724222296153306995394823122152467317762125335304828630926624750337503785202421303205938244087150562073222980548707421322850369619376161438971992626947856531508620798615277314374035810915534105591265006961779347772895101107374039520804131682510255489523895847344203397422057604309410285052389138159087925716254277684186530431405448594854652970605650295888682105429440417163422560064768853817099388740783356418583191001436547700864238592071296655392794105775993074107377669642191476712188780080378619066517622234118099947724652906877746725182087532816643607972114025366157790293591969093358239014747927390390341172853534869192881938727468914340094214741588162992892300775091912197698206679549652253556646910035221428796787327139384100507789896091405311824262106933267664858065467123930694597832524221886571839514948957759348065375593802896386893664916664914272822418148446909568859881706323687367279745082895482407281717138683528234518866857681903029459191892505947057702352173057583134299515802421923167526346978373918781147482013686075948002534910060086194158022905283591491312090624962557122981765379283126219456481686440656965848857612121817720536037716460394735574326197813742523811578998584594657706892812239758240399802163425199670205106205700795766731896834230300496639581728234514025346550073267840775863678700425773748180648905728174409326274341797460237852367971884432641463822364712061253436299019544118326762164820611962086346373042446856419537832292096730334001958022302211759362233709385839966399953802302744733687538504066095594283990191973276425022696460340056749558699630043417250001063892314151493131478800452594939116102906932839107352544155360389854117560248135094297654475847493075159438795391985101370040007713828992498071910750358981144686562608142318731317752099077229096633847845888065972890826403893832387181198950168113890870470683367874354052423815917784599496966842111377363191361389913221208119037414992270102090032258064501675731288906042496525477655589493951669242520413796393724512195738169028600769637772253674645348666060694280482148464519179769371088891482933077921833301840313174516916215527718305510693123020086943408816066265416166044479168574825612476706123119693561517130561062118327919445866373695242927566053897171428203641824773436068336252033392775412818654015607548211390723412420378222490591414305602906383767564738384456696673516022968527439054625512230492817472781634482192639714255536743702999744195221893556499832088947039952629941061025132834669736239428107152205833502316534584871546856067028805315272632583594605369780650488855798988604837808602072031488505145094031389603978469218745999430160335073914188922467256571676454226137094953670250955036431915966277072582387915148025678924124422870937236644909364033256041642549614726338850821490259498096162915509325670104750513702926461890419488414104309062929839209159882368571626624738530592521154596601377237852873718362120273299982277867336363194512622421488822793143430774013918553569077999338298499917892849402447665535307843350533816376440448118478834868548057704415828097521639202381155450540472045756846889931774026612806856314798396409324070414095215483726928939405087227938190292314089297121698854243582947266287866240558660944753565952858194840776931721619673385159479714725560731729732601921149781660184213712238339834435062195867015086953248746185576933682024776579298884222096405864720604300651696844238772686244414911230926592101277639992549942136376079942860506415943516996903595064949930626676999646474992654342454325651143303292571729670411766109607346630404951667596409662325025294455838249050714656284061150996346954139149137073238311977747638364113036337806054736549919245123652998083431090556809973534667809510532898519005123740068482117353287776825188750941235403276639106124581879524321572350897509936585560864573110710333005547515058679065956948729750935176027906598956601584672803629500051106031926748465772223293634023394160542487013270451507229490700060070043107418589377624430031821251566588826401598903838612823811865066681656050881684582491435263160501587964866127095877550788547875046175182852046979993353572230909295385887681883372317985447974749332318241390883355396524595766318108688514854708797466509239643119099947203508147261952447454034450439947541891570585723285533565973366326996496289951266889538282339859797163245102041100574057203200989213534411034831003779461842912634563438084024316831897482243183556034126819135546032794051323866082474995298032209543586383896813418257495673807888025770492967912735486262795411490443515015901328028710497686806721079435147771760423134274552418495425366717239251316931253256377974107685058639474544479459318606152319667385033027285980385510841090756945437857008858824248619667945917180259195279627840605304978803060121799565160530454822164497513196068222904891074430537398194251622448305016011855528195062478821927544025630878760055177206378457872197479775986462681921767060048228093013861288515964217245378932020735071385668120425792066649536222894041413616832065210989410314007002963622132590563669129083897939615404565803519100854477253137948459828574342783148638415643109554214773449058762540797751384442513863197142212572309279435428200028094834815971432432250763009951672059842955635635210837730183591733295397670895580482487056456291924402898526772267863930571458796598945291206821781125423676594601861525149046633407529399596526967274068377199792958105701396380024883666582172412943955576741726405531508340931216537456032327223292994531132613786992673479618946682701003435732272304342131485612328883694333893245078193473830399699533373307967711659544834357282695624435809027177285337198498340787692565685774948315924569552375273590033339192295789449728316138465287306305002933140218113182794993681625117133954180107438607340068619516076690048142707490358569272452925775206933181883031189110956139079330996680953470617435436204684479967955844100085209437116424960679810239848584736572683143926943092474549195751001622879995554973950270794395859304627120503105546797806379748170487944625887574994000951406847195463877115499752057175778701843452670778335494709179008754909412052905663138899366289956170275463268383401243226116303834727403024091380125678003192357228631566351872921650362716042928499898054691896066928132199304427612160346737445098905245582449647746564878020634508910878886146702848247874271179169315767660030799233842177305315424847729841929214209620061096759395423175781799311643591988404569086969431111027102806447381007195606324240038924510055166411625450236693739285221444344500458793827516296437867655085515983023518828848653673584316081880064710033042861484348787130852595035459848116114204762449898329607141218134663572543939787505346866299623202724799122805328079706291984818900515898392728565031316247474637253665623171225564543412509310099428097516991321696168613377955379228022691868541870130533770521845422806385980873746734059767821032219535050096818501264663162882472808752682754919903687945398655149376335438737726589147366768608577528018731194984238333877081730344854839017716049383791808392226623822966323482408374979479468663088000339472659491218970115894247769237698599958236199644588650275821438244379623467204104435240975901059962355023094121798747943038505504064156484220899620064256457629572348980125715135175586056373386211115939428889233296840110733123496246633557960558755242282398062380010195741266317932024956509182371178257177008308147765846870551606690820687551596761917726707344153820931202185398205840561083210005380721679292831180026643704783390968517155473343438890031780973550080109517620659748371104556387493473646891217816140855390280156924166436238991195623645384155690746512006539231971465487482702531995067437715171407754330320409108357909086761035523346916518745952750534756416257158982804065493446703315399819802754439656539532949497689284185996745804729336851133933766608179014591152388438956020566625338485322142852782010783438816632075848967030291608552153783080620396928006061912267342225902216648452216840939420344030379617144379701755203140687222851507094621257176902466566352370606584303539238886274574406535040792437891233405659260444498047501684794540611595817992376264630160751470045670348260808881632425998716831368239869679483333372681540415022854330628133640920683393534236555444188848757746724395014071828915132915982496557298605416204970895782006965364867581793370685111018312135791439544136481868312696335002865784248166086132423186907059298334976564415775737208178397290500301428748220339050557896808799087233481237515328486524283756081826102883391759370213315825483383531948231393129909725047953251133978430488868978962176278595302633477283909941270793209385140150507485055746979658663696059240567663675931896247853437498222161806336784965709009936621674088694860637964093961301913140042102693630115733577789339375678172472414831395799904876260199714689898581178025325455653360492653266853148450339443116985681238826397839589421471858626013508169761408885460882430742144527161102554764934126657316930690451579140772486748277994883393786866369252207702844442554376337269350458500226049377258134795553780618516247005499055049099661602361618238665408612165430387778706084900503355952485245645650307342046775981303456325012331857628275508903853541578975375232999369448786281130335782307952647506833887674808648901965994375555571302047332318167050015217306927888206172725573693748209278610682783818687794848681203842984051477976564592484829737606943047325045051732200009144847902961804329420785510774528042831927295177903247094487014539640300313029462383858207462292954153261123262252421189630132356979365324493705938698483727977900907834572345145910252810362851385712547719744638509784837143502326832214498362017181729228996652986020432848248678445737643463396863926451367712662431347610932924719926578406258445331751166321728647892104337126704553105696833936240019924035996663461940779354881442886506278449552466626565250125675011666703209851909668330233482241084980733250737362716924416608936186849952764920500370958978787367508994940996035034393492703559831474044364537075230958497889937391671425577135888797134632396392174917934711293909628726935385249658832286830762444146540501651455369213920086363981786595189967017171647210596919243908191518098080354373067325456249674097328051079955483262879475866938843437098991478524127064456820081282813050160136696938989450809027916993939698855353801976330196441673104408617847272777461484165837125725816875813469928751553956528815921168066978486731446033777741778851603534153034306119401304595790119715134509336063765769889133493619510737419422917863431588107485680981103633560180647733626752762122690375030550699817450226195575629337246545935126849636282677934613605726575030901306260921174253175367153417278699410762800039712891368713754321502830743549865485174047784879388253888139111046553215206268424972737721599188264645539321197587233273280883452467009163834294274496330864762543195906663247613123469857996023114200154942255221678168022877086087251438227636187776026908855016446052302607588501049187417781397482478506553637741893028533701334688778044610759724462320293814397022204977337530678177986007142931689169579642935286068357666996926829957971451449857906661612553988133918548923717982743919970600974167302718492609439959268803944650595928281969497276812732474390322066926357941690318919445584435631639854566521343193502679701747641301165358332728015446748198345785901862676441684046714048821294158589247602440448299132672146061429708511796352037912173444013965482240970882033169677072149973942611918381430086572118548189965756827978785595027621359525932105345320192380872103936929472210095431760407772924699277485353552122304369318570740750890927471623026993341035945508475993324007588164064938856449767588670977872783696664077470349533986090977680285061131615028651539325114784749810586088475618788691779466912072317293601173271769865829663007022359161087403924840633909418021503175212080641066769926256151629040630019862268614276780101251539228338436914144240967627587655462954986006958733672867771926780318728551959478750631575709022978805960668753281867022143967656811127726123401495020231965598045006037491052444941957688225370432982119824216026228279244745165102178090916223569899307148520125103245980727902006139597974457572070411284202715357955918324491677758489628440158093218618076149217204740641591627817665909284122257977593146175814059413114590156516534982654053488313810035017197753913970776674624390942181760886170770323490176258390037971348681494007862945748862277903617577398181782063547914938364742211693422734164916764441978647693036889521488698812529997264478693851020984911002410216973148924841154611477216986610871976677849619650822927196407341040895019891824124032409749389773986892638468035900518974165601733545523458045262163456341393266416200572790982515645773067965664821089171627870546080412497178606563767637898703214353409119022638369368017897124990362465324052060509685510719243146272040469188996417597254580389057060605937953438091314107672735444400634158992949521781383070774979683981028943506860376759652851482081312922324056996271613324546628295228952559699340530458034934305529033924221853772678065075500583041086837103883361449914527903206752215611964036219147600090193859097191710483070225352659063147409869687876037031125127895495751399791644040015951982012708788531895492689163203994528043989060316589206975415531617896494367504041367750853185911722189928057207610058396815460785800894468388697455914851289359097300405004224858610115889654696417393558390430085608578754260170556228714276421873185195704840767697295063328636928531898606302659221953079074915445725396803239228777721252712657451141886469816572817194842521271961630241928945892399776066157448407351395248585511935789983082265983861218925805417553417745502524908867489631448629943653967914580609696636130887953412527358468321200509984384508514631190592656764365469515446197246009049062386608829790128971738734362323817978801684986862835785348368512335930062184077380666319434433184083903499328998616523991752686527391785938925135948486039117343206921677646436216443139034818126475923118103970233995998368172575180350995484143555749335148744305515440947905394224879024599838651094957025050143077121879702073673919637298870003460918652639315271718346185289149716424349946348638862967547577867318352948989028583151620942078842877027624594609928839857336950734166911672543888337853096172801188694729898001465935954787651739000894999737037814863242799847424193528251428331223051116435739430375617717703166768608904419074751631817100205751019630853793733926955267774098993779112837743594795050449631832292407773536578115931368344361615215250545510179258659936415884688550284267491976478015778986305357878651916073782755677488923218697357592236717873149779590150393876828242350545810439056820083101399529837188285793170636142833460618468193574761003578396150336259213440798727302801095157438165478335875139866384513660976864835309084786810178835829175178019321618796397796453692558232741275406488863188560937253909211276364280673962348919638668834608125640171005115323362303552078711482304751310414250092787249613090537553985841779768598000046421428469710623871375979656769907977343891717346630327091825758410475293441409506173068030875903080585769614478839872386916022344326839391159300133690984379684789588672557195805684527751040048620324182356573643016809545071621144759625842996132817737817101311105764900013137996613803794225213636477392600038348453146057374286484632633082596820043310784305269060721676921566857620893698056137026991079584781918264686323293556864749832265374857683079802331541714083957226247210471036233843248903975663073271237681486582712746461856374519785328559891648019345327408622760348705281936195527543083714697335878255967181926453168984455888424246739561896790402858180951099706474156963872196930132931891313518129907025949938123414976278838526291549566094374585870473961319202406087151141728652076931180199376733009116723938909493065407028047532024944980900663248812506785705261268820117941535648552843166233339280648723206033102758790259742938081452598020461808793838816376983248215896185449506544196724122025085138109946861070278812012012598608851429402130896700115035327115742772143882520882225919060018434695679577137853727581984396854242392797953978684241431731828512281729309553082246334865748339273268867399422752329851123613931324074448222470441141964621226613884723858755936571378213053813755817182524953948162842967070649748352001122860141793259414315558193009255877159320687903822041130373445851719534229663074720987274359808538525313358904833167606168302306828463193435561507578163655958916260094118183601805390417506670757908709263659995807372141857016893691334006125930343554634959072870904019136269771655032425201224569738561954742970229369623970962857268056097071559032570551255485235167280614664174571466136757718643278031841990914447944838810209465528012047009485317071020359747394579518308364743779867773303641460513245283988433184022197658958923502163187045550500391531204124226918159152263728721549691342721364112292239758964574562562283421280477269535610655615827438787518984980986371871336015070723088640196520122206277515257713913213741183122968620871090800051919138044614271293028587978458255345171964240533584341020505982900264589522750598750914842203739024690320530975059159199602587968721835284295406916573473515954462508896854841939879216568580491232270122638482170888636515358678090498428336543437638797714374155827499094656750313344803140406303424222184061203988889628845155129282032790680329540714136426815404650725548164527507590510367231915464499912813566160988202441527507863158078598458619093343665561056525878571635637295983629287094791854212578097087784422633813256155973767729213784607353056516100307027762097355585408768574478459464720873992504852264502176744962014987476769710481760488993938472343031302998832941083683155450481707825124199154422376900614322030566256731381414092822026793385086163845587058276129860895785978438534203197467903877154554986296822063180047640963377164177001864398500079607563127592622901740001155765807225908402873764490698152046281724144749155422804562463876760574184586935198459880515978875165835302039177107502995087567319650934134191674066753108954806508824580068910711232227059627924786558142456044210058238159588422470319677657581336389641738976483266600075801169367126783952533571845234996050726006579183084474336621537381575837063572690715344277845946640581361102802077734162203998619290975212416601515239231877260175333485810189253285117006299416396482296744298050492581428400541273874480061850294363617871421099636832316175020235925328280435503213766923248282241392703284055491761974158063333589473585985252633993560097063176660548717386809311125418621716498896049426606671218559378651134027979320844464951489648720030445794093559525229563195159495786627707311487886330958259683861312071926256353301431281531888530182487612565841269820377512169284542061804690351443535156828527255727085396766774296696082062088174917429790692054657572327297624845447341408741583930789886110429078287164717023134681794026620813321352997974515513563855696084609416066563716021391168562551369569015738760969349396404131152193945391475541579193524943622592490578355208870175998748724063814204005225244599814965062798651643474030975201774533169185990432827053128126013527685295840452982259015560187671274370724702153029668435263211582920459323521535979154780979103493903865864474671496261130176200984362698165179078210347205696497072139861553351022634995336928484593923603809924143908270314601925229958172334757320202257606739502302306988844334875224157743935958440447958603214624743766707638011846606245873805588615655734461831090549710357677359776283845514569666735076848926258010188163194225298526965399422458444963887048305917302916577235203518783890806966259603281613285303009511843987848956514838960811588591728477772023205741078027390342922314793825797140212962483760067455471365131100459447537379748684037016983176292155103039358029028972525740408677986905307159656577061547660348749923985560286088415671933990106043549502764632306201137999908602871318991880545227926212048137384435399234336518888733273545448235516875935536840066032317078023834547863831187544069423416516189902016525553853876747944539088954435804907370563420910400499280810605312680024771262013185337145374198425243017325735193205976643548383702210219844803740802613801773124196475661672043411023353069967618605737476477907201993302995460231747256925003987463048775986039417640230895482980825852887236369021977152673930971808660117771880338198072688961211312058763361697205701051815725754693057059880408190431443207467695025605160748809697336193689736421523420366277506903919337238855771019266478503144111572315287273750075193011950097368589898875385431134455299212931870863929936960920256033268609020226044478916548975259746449113301143411021860976212236386648973178788366038328261610326071316732460086803451923093913026596953757583078426275261185746990205050914940869032522763785225065594628567131331822613138823210940596452111947541449441638924689785414609636216232343608676601917846577241278260109309930495024397649223850456688111965691423000838609819967211295153197032768601534424158740088026438114336884457491977967315509789715690749870933117807507886471355561780511650390224851642809673127830711265630764040510811270209530241428256585876231579408290309311125399644079575153861658727549329766944326224544092839840670149787782122361601072732739244074567324860926395126442911139437312507324684717464702199196112166663570519401105953695273439581539656053867006875167905293621387513315266545105883554486223343936027719639790813758611025230610373765115551419544748319613898644445812865470787281442600378610096493125461525910144917046379030041545782650725726814879241450552021356523251197549010799158095111285592498641721949134536733286169750964617428045748397348952989941805237954372476818969500148673892763627633368263245947650178586946743594596899818842289617898280470178410887734907379200621647226802653126256016949243197251323605686399757745887012981230263747578064736252589512054097646693338947015389592250520838395777706943457887751314200593640276917248671781932652554868082139407158183925531549752441138242468328336190295186479807707020670480209241282300218491897548259090854822870332657940891883382598885711615885534057652948316461939039500760383942610611882640480495543816159557193463361577901491470639558540802635255868774322898552585333328921232892017780720995188324546951722244886852319010095165383693438918099532634567322142309012103130810382247591071782090310146088545303074264123347875512832766944946680905236922168295978150745352711112637725931514215764457884018980745911435189388144765110184468518819408922947499589252193551754969629689639632658840016646221094915026044061396499915960650021514554745439178450568159237715636016709812632925053650919113965475548344362464095947335458566772757589601368629728760334681120952100296824989686619644254885491666964583388321418837652673518452321714069016237841780729911978111207175178625565975934619067176207294890760837757253456411249386929751660792824027223756883645316288006993542330048457685320859812320144054909871600588043464025794484638068259915094059841817573789217069487438097953141953266190977785144448745434859231191676307312361354577462314703698159550122712287381146380999760255789204240909491124353152901970725456080174907466354293617918298777291652782839039239125247404824020522105858233229475672521597256234111628028336202734727926688607958792510352281501744659519632631838574890880243082163610335295452027851731788063092503399069643643923156314914704645360718683857943489868171422837941832103068309279813268059109450090917091380685655133457333249778695537728396577612091491219793443349790229175120420564506040424995484883800107730714733809340667642329551758462341120938567024059547180476754828308356734244258745449460362987555622948506353647832464818017452126144149978927086335873537574425143294393175749099354265793032303889757451858356228912748600516214574796393035194546509264943093585686763622257099781822062925894499281061568391164072476284712731549389158451694497737021553780079550109366492211039977462750106049540636830900020866292415893375423851777063426257896142470689329139035775764703733620917586652096717008983577515302126353695688257782863769738735683212990060528010203069877117951767345395666738068606673014903066156409566212627204567607495902721591520198094640161923201595072557050679142605700283986602922262986908920523803371887632076188574731984074605849560314580707636954085325879691626730117044334214821983563915010761302272311496144916476381423017830171672147694656928406771068101973762156836540908163096167991047627478787100833777239043581031591459600293942898610940562948704622962293395202356942908187336683918306572265563121489964090073682489506701255820816198148655837357087422348514304682821112790150316010437308624880467992269896505574080165818208722414880780874445470077876637388340228402561652301359345270222097725248970136177706824818667312645806346304791441379912890274437169422330282791104502260888108911957402531515464834933985670566201909986420239359862573501577654016269815501140282826755572305672206377225110208887907926324425645910068271632257865298541005862913700448185275246772128568438438084832607651881115203580963468408985574945403103112529193366446042920659701161685317185782581277104429701203719097543170543451362179596677591811454276508874026326140316456884106149604887370052583257073772120418800139611207851711832875791032688049886665348310261130682819674431721299964080647374288903084981128188316471515016317502406922156041225211156319168793241439681809908133572225773890172585743551729850519355461582868208915975885254616481211159809019167942647596958165428806791203011861397950698488523223653644483781776657954230695827683372643083220623583013907043251573388575630113717886958988530051781748846050840585338393397080760199426311057487187043985775365097633591321368978032150039939050787625643435467129860192292003139924514582505572171861141814148738461985602199548345589418820989923858676777025873744453321081211290726141221752230349131842661368846818854789307660079323315817110053418761119429080438410139521673439153363997724748949018004223458460696330219368726564458285444845832962484239552638081657439574966174732465481440907489059267911545176318351389781811605434368815183813132554390212191685834669741838244965660733923667319134296892322615999620971481711766489313463508378298794973227978028732182416200053722077263046809501498029105872578034306979125070203828417831009518314128461349877502757970788870622788186946381047100813411429416628103462228068646989347017445054330978810552296200058577660332248084935912041306886995263132086021779461360449401436406150506257357567584794347317133915913718576559197372374264050574285348758632883400457736077162941110025575180621392247995631322150661715692661440829371856393704667231653553014033024669123740323957685887399163264275453833211306282164632197119729419897729328688848241074864071293958566920407860205474951000334637450909340805744538502844421927599010776494886253576635412264631303003439430003107140876636096101044662114421680912276389718661957859697635175104692602559887048840055535876653149573758445235618868604227429971026428050323913177183175719722448783912254861213924863819411794333744353721098475237668166653134327983261629709650476460427822589425773168941469625716131080550693561578872372920945061688048426222469061991584105682797748875713689907322797541079124645858343530640279326382004566480398685810745708780784348073822550483640478148110787133062755944449115038530134785742664539676403298898709089130589013523351521027054110331171179332294759515735245628644070774061786868484850599101371142095473502912011059128750811332696800813208734735322540616587111912359162009897281689729212817445259928930872360208960306541274923176000042803673410046219774199993627987927108112675454774679652633759708975808464623713776089866304780553218853348177417394749817508763098004381236999668228521592160548214611662975180024756624010625458291887584477372924833208714882759727186660029320070622377779488577065227399994526886037509972810975171853733916043677511152582569856916151576448708871188125228886341595743581435437978406516786442936270646331647717850100315237211131764405436952240983555250193490370923318867968380277913811398881231685505318432867808520702834041776915035993486181926846655180713950318048427903618206035516857249271703703637499363233544914734983499302347135028049075360278225109267853821522759043783467308142846476911700607941117958314804539800019884449551991976851138080677309498049676608950039159428072853848295537646359880048163188234103381550357937608078149703542150455901219841648602643906084237036240802837823725856250702175920086951916833814982482369260823634151698610469502971382059051978992539030973264623544570876322855137277376295997057617412124499478305160618770450804464843831882440474626661659355421461506552512579683659682137305683360395036457641252847532075065687713270150470496106231196866392499800375509299348596664609270333007598850867190443058935278907939467038785981994946398943141891286962827329667653132911996565337514230999455713210354048907475345668716571159431413578475085990836701375758525758271529080018380913404993460550461651444904560781048388567581015312097247920298374216528746616506644041258340334275988038178345098895531343832243701725576450975704383382910768267075445691427724559687494825081324631803684416990257368977921196063421487172375396743501304442598904019142868743436875239856667552681004090203895370920893091092568190108776311032506118519631645836577923664109874876201739441101365094887689278567996744778087219579833482424156149001730400567971885516408639440381454478639961307306774229374182839678435076701333323771770661954722329992821060951638130191176705269005484185399083616369427227917926502264092901871027103871895899590496014122777711847765907735526672977002631620530599769047480154487213506292828370222133229078394795073858559379270883653793383511388322716180031939394670202304719432646531705717251814985165135676613458316302723411108781864867322008305896032547385628650565912005537710982350506848015971761044867709068317199707361642444581322077677009814892017056819727129276291005845311124013123618862879747884149236018826661980147606061077998966388783578548651351523303742563648847447803626757131689173705140398333926377659485059647472712968501695191495007713840750626994572032454078912568318932200595228309819801635782910617919943637861591709990570580518581637551819922520141101837698615741656981726646805179546571535456969287103383164238200814078227991879461923412811950669088474784627852340114689554307914781634879485841185681668788458946356289976660453977070970432133108479490335599625276742343533001696519016327858913792558183663204371248096856355134504212288704043977761513975319148726188749518850068885512573637502245016207512677629432177419596264706562244400908752075993558138817358058617234910603148958593500189473975314046922602995884827839624047735596122416791161492539616701665322024869331284587223059364529706608895660655441131303110022081093608238342898646897507313427284300514912435660215448325442739132070556592186115568673485476701047558923729999400016904925964160524839058323321018626508548204338839340937573280084773631348957295300935885658559324644204501825272517796337856384249068079047911408401463676415129951212794398798032302149191764894106528374857396183605420199629315383333685274607485298497930724112289224704315427539231766828109817699888057895681274569735163214998688901474650632733758189326420322912121579652111637013800496458274436633036294658538296589674564567420501123039506658571964745046804383881805000580159845064107451500214796341584281571645202577961591457338877808873545589668368715533743325588628448893580504724689510239015975099516133470283505113262505180596593996582368199580824600068796576266035282761595352489971621455541003992641710401767623620218037078514196156424327312014482514935392489499249920453295021311273665838664831252201956723359149175378697708995470977316376985034159611875275177369216415039487451857700453519025318515128507497592131436695433104331452626524631153146019326493931973562609239466134295632257771533061445831037459705618720387272313006215178306326970526484512092739003014112285595264221377822430735970357599279956575484873486188696514731028126964496089353053828867078026924711097644007527852784148621525919861311680134632126641700452267482984668294611341078175070872543318307324533780211724261589510081093246414681982720926475604551087816341422803722544484492412692438908954672998738670544512927839932865706047626363502954575511682674845749203738229960324173903695736315627936286619316170953775645616965288825153936935330519372770888723069873606139944494587425599595257181775295449261187663164944934267520389096732627996994360237456161605015276057984996384263193946001155400185020669709093261789377073934161631997046248876535610411085892579616250869713165305367293220900603447600329157282216544421924075909484055902114938359073472172798369219178577689277761510667170518374764897553709136124453252596413934230496866166567936800949759870387880887709625023088864964791334804601881376671939509434016067122737694605059987335903394977954184876289006144311764871725707856693351196381755076961563388676705295847082860211864189503750820598156192842900652366415320434604267351455953569715995206449418200800877855269745320973953915714568981222398829511940527626289890300821095683147758874899024831409338492544157637783797812714021422936447741316661037909594156830722241354072481861688412393940666249853469790302315296371595503301250406309092541296747973833814316082237293570767383017971303095602585993602601079991885893433655293539902601748036710645701203305691470147205880761302896314731932368698057884189421387544942721416430204409679013004445972356035709917610671202272872748752412027592221587885659557384806598703618441363081232682644053666539262069501931920263543201818374808945050114804458018622008637826968671117471170470502764947786669124204014283796432106371620123879631768693508833068097240952102790359320645734352283980159392657199575860424964322943028265777133589965960958954937441588011870858904833084260486418940564932001357890674882475848766412778715754376893783912455057970418002674587038348378265647428389697564775212999162659967625651861171723812242617768950184368070562416822500374767592312056810695984597110973977966072936446768395837477748711755702095078439015200597633509747155268678959677143586478886882695023271274499392861384894436276342554715814153936924171900425245721506037818957101783566336784853965092298241248350662291777337067870651012615869282400655460357110819131872131305646517443654482359239278369681952085846290441915551480481526312164320848774764907116476145896780544653829065654449375890242889977275198876126909721753564169474933319636008391315843748901843606348203738688809773401653081718814425844410657915812610366574696593617413745700236857578986864338418424655412046138279995648915903510448560640149347097125576006820075641080691210148246055181876960613425378919955288238327980286400454420142040828428839681513119174156070693073148187382866932558263344937792034700664921082653783315330858993154443066962164478045773527792208940945316543660762248700972540072951059163113569208305237554700809379472989476499259141637174747822727104997104961997590426142455018583350578852014952559752433592122903733013307845519602578838152430118461067416985769978857718796280486668933149389318086767066196912801986980379859442901943228280894429900315892212266493926146080849238314191908655270205834886137383468888782327545516648122011886440643793029611894224120095172158359291745025726536491068752981764901810062092720173184854089985086686827085934117684270567621790150073853511132699139133108602576087191136041261476242570248329148866503987585592833705747373526285364313619388850151707230053781594197991893421109818117128100628951190485971909968579517856119310083184773169179268424380238852418050762771956307080297450804512514764350969644930128889481451305946222158613359092831167627878658770117015536829779061295094384862327671068929123047670207029719024066474630392682760220355905268223576532634726685958926189111089083930270106661000662788784271179871007702083706520660185034959315451178383105950879939990846089780517785110315299692801354709834160270850029280101621506465960390612223350745853413184108023555054633655231865396452727274001478835691857200093612415075630396550084056374281068999977599485539408209784939421527052379465642150448213331015233975494352046122522843873836706200483374911797306919851546524490413148856066634986139519232192978998743274716050207626275544807232872510056818775468684633652009981129183400376883120048300761649340856718658472354745551284963661095808899081871031431706218591738193166242926327362962877347134226959825088608548688629155908021539955157393110558735403528948953633540100022867476617639935605764939135113521289404722517162218622382340406584554497899549557347400312057346755719237847817631190870135249131389443227972630737319188090368009992840233999949854810768590734619354059562368204273764309694082311554771812462041588764898224828429830995476406889225655558978048427334714956156426071990929469567989158418733138819195435954630277569221152062870316451020492266927393949658157618830669072189340340773284550045696345682229734899800630435288572410642384474622720630181802327585766418900599658566101460578689760988271679652089694051112005586769647358536074888405669626014270430263713506538699919457550307955218168058653105352233391080627212290261697898599220742515227233034065894322502526366036202176630880120691957787629282560690707546100084166264714376223929420392710947813658672102941093222185449357623561630042967846620395871036058694122702344918269843882991592008180781573850834046573358469115455578001503376094042226115773187237942042641162198921825508122647898613859169706114872880278803963746718744075213204264994716981905264369548035210312001770213519137168619799110859948855978863955356605595223599764517333653847478764345937155213682139717307912182321212638408738763976680994963148077333131724227014573703293843853179373807718876995100850393478659522433705376503830516540484110484203119536516889388015498548298115098800988849681181298856603716160068841395018092208973978619406375932184308872980461246942278212848860582855209964834098993387656824268199762398395170630476403982283576272783802976242137783232540339454199652869881447308000930253795890503809031073651783165583874766177466086715711862963150792531741174990922607421192118363213963919030109058580084802264890736741580698812868196929067651999364537247123384609122083588811859849976415513178166180860818443497096729989692324087795112710412242260781149192980202962853973293506026819067709059259673708059632952204360300432344921406030495670497647250079497132898709581029416644958634419483833049874403634486006584154285505194364910498990550205456410779139114265808650915685933299464652389308143362487741687003627438760003501769657508362886004180850813408180074831867368675419488140032944206794413041643812990765544454357513118761629918758417090543369498265884688943788250104709232227815963209258300673022974353299243236133635067366679395816622925019243757112161400891518223404071496084634676820421026645396055497131175087693637348298158628745054049172284151070649501341334700586058685298794965359918679049841524874557749354225768056014004803673736989760257427473442991472193603210361215442497207494785146896656019301964886075865187976322629872161282082039397338373501929906905356299140188711963686907858606811088335620774747948822589199079223720450692602722474276807405378565680496718484393320875526496878248122157965585295052507339029859318161136625261491278762541110805589480699662027147334476650352856590774328275985564103078321294360119035927356975288930481217260122034928426801456774691504960910539990239849499783733506511045330061866357101337514744377627723875392491819374123770779078205553195282316317832228867791935173472673081798336439699946576385192441251850356940507367483519978304947574292680324946979988044925281555248771854513293543145295870560679648538387446064852562026334379876127431756416879217665486474487933844829684763472357536637262670458604330000485311145992025289448148144736102023988274814777144408461659523913921712231045241316850077952951257426719002668092943293677557673588817012791391427392624183651454943682852549561432382503263331022024974126436659904653639424421787523004107467665871442901799633302493990421857364924397276901745133169642124954276843388825101843338256206273724581834283611774889583619868479206243646604305274947758387945062023563132710048792412374720701388936452951770815368780134562731221577183659880917484213545315761644829784683088733137028595509386799873231399979565017520915770538523633159690529563356075731337878554457696773602494270049488245856486546789410141516717678466079679346519899772054817401055997559161606264340197867642251060394582381449226436618520978612790735502008947995183034571254585438850317515435034492402492906201495732558063318091843952294343995430212846386115596304733012866089326697541440225667758946562675002339179436702785464347630461043369849952190101533677460043684904309653293858731162416761999479067141987041927852451656631267985688825615000984868502768291248771793225189296188947165704286698448319573701644202562181955291794273332787475112574199090486932116385311636034957884267930860118308144772041646547347122002362779918631478501964560386856836230589865822600927824789906298124229672874286452636620951489648041126182665140409919539105311093392204684260334086939120799083920857470860720060174711198747304794133786422331596437967970617790515853368263620210250805003799806980134510951485105348598925314058588381494261952238857265414144781188834293533425802101425731471968719088206853506312558218531923378803439520795409359441922234774928783466092550606337088927743271333801500058683101265902340099853109809537891115541338729368967277973379832214991007997861430604180170836152655971836906424154096756547971845751024047885549754904663069596949842415052253043667914567161572744644816559048645935273571222029727077578584048858088548059287393556185645314714915439220056852756070342977682967447947473293541836928771626685942858647198534760952593924610919673748348314137307406857086690776166832591027323110899520220080906066454977391031126015392037846401339710397414541511562559628013611017164840983862021271802579865508402357867368538899614208197809671815112033735270848879312879471815637554717280532898067536167361715388225836197927422036378407285498619808917277395041470160399648936688557501815217268484338761358271163577037535712772043487098097500780855973381162250125927733090725403667654278195208485160370474650294269227575330554752671655688364147961071278701299997476097802367401978124215983615071298439698039369915450138502792435648890751220362594574792617541976994947870831983748958971579667412345331272521681805515574922353545819086196277801384810956527592379962041099574082078271412573610802896935215169503531768941332022702382951845819965495716477296793702949233237777175762365391335543017248384546754086692372245818371842678807852633128809316277382475769196235403425773903073930794242113443393400179949225555851917627476742719685623387205448889269147116440524966210625077423327278240361493293951883297026662449486506358608443390243195187704618957094690376879499918887580677079728933978896747724808057907596718308169741646379734945224321210264587001119498636295554842834574702050431202229336515060873342104159848791925108230513360297382861529246114575291191888715149177699511502342567817281140569903087970134457365984267508042540641372930324736550189471921848305171947791868899531077928806745525301485958943160289092435565789386068662554178759813791574262049363623493291465608030502946489023318949913402500228636367805432433624378188244810198680939579810865113058178261227840283800771051779769038109858892421291541386155243693836473754222569286407445653517102895144233795905441799523029135582359163051068516962276074831284061128897663290676676709364539188531491333841824441864498500128652096600023947044757294255955536562157651956382696055854968976034281039064641666044444885264985555288228629479847276135474073310623801320706460091135208539810382916524289628012741323985886453157869592331158325161636827289695128941902461482311428843681752282211169054126151493948945425165121367728236794676528634832962952533566267093585350737393485439730385032690916747257835333498313963752158525665485818065213510612876141862716807302416907547873116694744341662259818867618906590803605086604513348738907858462545774753963715150248997845579799115583677616213395406298480300354475092868546502064226044336724529726477906940062352476463407215165592990866986073082620993493944185149163884132652708830979467576233109061630851132764310419606692434630496306586399582893074356985600042396883760082346371289193213510830440798047095255460405011566643186200656350795923290650065949733384750381399344792990657173221102321325058370577732264357905173061986438304273983360553281333599777718487415966547723754333343419571262129108976031737436205057431564139011341412167157865299524604664403341178047063198824348010993938551860687813532700657100003922446961122093970147870869682485929239998830789170753254866422648848081235777360468727356347786194472626725813639915736393901485206905497731592840325175720954274188811037475683496328890864961953334488615319652883781069152116904921760161550282310493996565481870070771311222008349264478602658135808810678664046394886199476574507877244547874845359382583478226458517214412547531035077819609379186182619737969638184410862814741029616460355022961756490757252987220349527501829750773622908797956896189980552567111420558422550315898355432118750685120810406154111182640397148194588434626925646200796094969987923238124795912319930709788231032431235321340629677215504098469605023300183768037789648927061188453536027525993163058804502638540125851732421156071564331643649864956507963971234503711619138964858402908019562415604358696347433205533287311892173938490315810605143715369168862060455061058576391463098744105276794456611621301566659468041786847151029184800277633443094166987306227553114426255310331062925403917651703282464822343396692387397906091609856856223373701301888200966286403499198343193561169069824791539732805544695981593294504282746475466640468905579238298235423491229019597555158538691095173551917001826580327880921020693983295059614239442419155035352189843192226570652872957977482127074726082016063134889715020186339260828860966272559972071320324426593144559712701120960983842821884220381397728128592518600374033809236883136983476021445788517957168136011193457798586818468470502394305992459158532386889003572717652396894265401505939845599356336390375055307114610992293271983514456035881860351238288370994595891286651687310022543276169676063848265966965296398143462179875414586565362613200941315476329146947340578771425784298609226923947178461652633223845096629873421117576610806645984062994207791420133046447787152141365423983240127569452725913471182959467281012780367663749494724991900595320951714752383664370872989083420849238953621198188092197137921849569182621207163091566782901208520273280770252275160725999914562381242120348894870149162864775539579452744969869402940974920345635614905492066616878524485341295097840864067070277604078609401837780878890922011708014598705389684652699196179808792521004688369447361552674395502757677207632296786009721501939424383418084642865905551638260692152622281734786323535715382852599618689580823337053399133281155805033726651696358492003670639813371696127595074986578901651884119750412300853093711467451571180575629031411403896302954386095569113386603605238400929402599745215436209507656958763637889290309588965693080913165178511178595739126669815744809353604120990513023907423700777891443328557116432319477020937652281788187289857098058205775940035476487318803380166441378999657395108948456338074985876979966066805765159563707890803593484606022665624044896869351663874369251743458827174632939483029042832222129432617031240745831996362277700502573094727270562415639288299116736198477566541046262378896396364708795560077555112984932681128042787865178816305275643335978559128088243514663328375561384138689695793071939314017713975616831562413364319920945210119551835533075585101525041782499280971809930398601366483920966603353655639967158589367056303366220541979740218541767241692641436056803582474889830292551872859395061438800483070132468594392080183111605030917870526825481117758304041489928878000237781386538811928595386374614971288291988893609799252094791206251002823243266490884071873324055868468741179119406401443324910696844428440429249447372043752032241446776191421316705883768475413178280369459317261668278245641390035544094638250629354927887260708454449316354068285715718325045769320869774014820036829666226111136812900337267115207569894583928851913149294280691026381449561670121398626173961148177046577252262659056685847495357633420707368129363581547037987313900819402384935622620669632781327381274657585727967896546836819086978039053287958791141385952978347753278134422577104525371366687755712846996125006461990822178262221735592976651469373221098246550105531713697364826335864039076364689792526864879055140240431945179802119519205920812079461195734807732280679823861809295078427804586539926891083783743775122855913871312530359357394938832214557629556900763633292615794422130809679716095762641541515315324691802911555317514987508547945252785668842693830342012859443481856060094757323199350110957294107580197220519870714667390913506308211566052971894655651302901485781900311219163174174368475524652429378361202529480866285901056309453164652949364770043834913708142449256082807619284919432713414867038783773262204148725578231838405489019583168462670072570929965198691963775425535873920305290694293083255471234022549776597068180237769384745244217502183434043573406934967836782341749268212297939622281244255583889811242195936193930887349208176017560797269509903383971332609260889805022243750456342928560416600776889489026025961825288250712234109021784054243162484234452017923264624804545077409992803966871523013568229211278876030938254313195468990908806978890190397896413353151017585096936292289154393913648575864327630909553867973719617805642584148719489395983154009705631545998655617748959441849465957787059360384105922930429578696056249637281631652346138533235728905402543107301651988221841775021105597563440917394441885121080265453060636914889018521896817519443953844457815850126135489387259103149344997490380994968617348231356011862110519840444361859275790417204313049187377717482942580672888523798057232644757169000789403835248094231463683851727421395967324996840109845592387085166740427076084393511881510956979891242579790383129586961862138912628678311345300716759711447776867441708120352219081250330459403878291876379178317232442669795277545091969374304205291876072200044667874314927783834075744545591821643630750158587079492370157581310991562131932862660190867056627836872241386863221640898559145078197220719433086951250287849012102545387675619547212189786010857560956655714235043094192718874286315639081632685365336269802292313745934253438377385995126390493668830061688883896154919794629181723556847395699189733685620442899326128311655131604069321333218964930271074630858771746241944153764796253147013364455388742347494406678775424772754373665158073131392296401561001246627418369869870216038164280451821529914797266531729002880229837131181838795869148342562856582806426221022025550942672613918212146783919478853842963487278992141563936974018273756650543742956342972370163028378167671354381779953692224887714293770389264902444078584674625650947625596481833394965562215200647704064211692120668477753642307154502573777128445636543555322741388606959196865881374624478785889404542988532778720571258491451199383750775834967029935311700332404211381431583265696942544676107679832027547511284919901333542050338044316326058743762127111012983015074566632764973282601776584203057400725977523328665031918479014294599469864055305341054799304282969947520240894727337036610748792203660752657471153584463627261461352214930687967537508646314012135502452898203452647437439104791376636765908334113426360925572808158754770824883342868888124350973186719746671882123099504902217244732626283714438468494882171849121204865676342441227431719396002399389484249672839177922005640409642493264485394531920175511140772266951328339374642892337415138516488466597024965990684617713498843701318426243334965733570604922884985787946917556183554719879936611164839734386939160180003769346198998448000721679677694536274858291414269181495043446513640547710561047543973992479626160754942303643057948123262472366925543692684814219717592456073059424732916956563648435510138422885509553821786816770806871325313708901279761110987738122177421903283610206197014147785706892844917067772482452405153248952351565841753418938723353720742042598675050912368334772960698761254607403722998799424654925978948967370585897934158619483607137543591551864817622706939597938151128645607541172378126285297369520382350781025315637899863174643740878639742017680766845792460181135277901456033184374569679722054947635419770585483481323164392903652305611381368677214982808245162676067519781689276312577289733575905178897740472832200209789242919626035017124111830873092135426807403466299469150831359898936267819797937265101803876528057494439437213196369563379054876623341286932578516329707708685714212200578318134693474333255870289697125813281300014640803096770352677118584062224606788432564862066988199779034295851611908421992230886824722686347473721123072166358506406449862507140869748434454202962533563495632724369819270454768342242673863012955242005405993323374930499173770155830917090141111358095345820581646024384958620334675616550936306202123942340171969790308891833368666496282954565798549980873800570452377271646245329475996553344155325685901169123544309995778123816383312604006554742849515609398322591880436746904311513238672889772191473501221605779986927539271165323575992036363578513473901194331435839880765242386936709582992861422838315876266830601773547810540643294588340841836401305706922116167613684208024930360492334474479533636849446293306673176139159459860293450919698493168836883595209492838133045747062963222566452964225606249152827867969752826906728337900600675298097792009146547516430820188801782098673795809422700454367970976812237578564682083779026895177298178208615334044019448541237825137965960509625703329714537365626628914604516345626714373951036979029226595836900360845477853313144899664580011700656501554661487305748321500351674200991168763650010000454629429872573384409757679439715083326836613963906603644918645445817076266578002991043254215252161819238679398642069891311673300345272152708847114342130437684854267443960263941880460910687138522450370370026199937525868776009381344159176114297615766483012648069605963986520588206763673264053790590180413336936623144126956547227011209123519902547989393920923446419542824985674663030087004065840292619398246627765051418567345183006950133207148385001710410120709566439928065341683345550796964243686348804727657590771589946937266543653087976804462152472632232417036224240321739981950705381859988764978648419208225769668540261105376312245307348668549853353131937477309619173472447638437586980876704833017242753276841876268262890031654110129034772236963174607629042057770769574512441668354109099735161093519416058178903639890515249985381160404834748581817245136199430634338275221914307700419474806284628770636282476520986889418541289124934389340424413946605971799376607091556375786076056252772444515155176808449607646412615603013761246589113068531282937092331057898917992247931220898391635778106385940389240506832342722482289622975068721207575475057636462945240898431666793542820905303055425853363646224846854781164721251450830620293398064259024866370057975728438130956577138762111846646001144253390982655076692076084931075692612670029602200799152601634038291739138548018038007787501371722623371944273809192790290636190723967630614101201943499463422275241119457682650143902204658664467831619184581277259458981394971011001692259947566959702724896292601282121593213100020703047870133933614705848029244525971717859971052891409840888868342936952210541655782329374746407404408400804432745575812901490912432329321373986957088341225182884845772631774481462113870686957386456142566158819634053799942389403200468996519805629594588282485198883816586792082844387359801380649942952454136142061439061989617782609102030993425737477554328218509220697864848404511215472773749295532962698675419709278264452354661839197874324124569535096019692596784190879234049993779781326475356187147843309688323907983590241904746917813760174796931242726136834645251642510887598648205536137037074092646900734543436180941805747103120336539127415596832644219413275992116046598155921766669544022136431483503310215077519554926789984878911983434622083383273228065483012778570649757264605853182694626625382656086836119001834382864893578262392080773469546540974131012581072351015764449776071977396406393979049728529816019415929008745459481412736289621642301416271972945368076610258377060979978238517400142558064194066773229162462635317030642380134918643903438894396748478312716634185790698816405333612426404423771279224973913305527905206047309283435747780521871444363426167532288653053815412272846216965091588253017054460955352953584005068444550944341586350012947709257942878530744044537724588628222288355325180275418661846791810029094937901056810150920124471153386871127328091199000268618054939879430572891813711378296421323396052056127150620313755988790141400639608957224834037696592576862903645543943733814910741020730347466054280308687641040223365610561446421647597396653028571635301674607099440690135805424002874552128416369932769134929607123483917224496564121645611986512420444930020819126480502069749889313690472713989464761983886937098063581111932959678154712618375063203286329482527017461778617883752307545191273693251660514155655762371412689300440537369230187268300186876881004789131705844631895224559635792899915839426852290708988099971506429151533717593014201486046226996423938374126270536877216179215379702265737883778588257083855086345360837814403573077104473743837337543899496098124195814062912200409120562766944087913573248853557892327409851215328898815317790026742935320407181993419904307485848580391224652661368103573553722335844328330255220015971221995517310431439243844784994677379046770637897086476373447197421443303198532345670806367076659780131809418737229518845810008501531397565019429679482952439383972205903987771144907847339196415304456436126571709902809331367279066840572840245607607256690989528791940816181643702992197573662219015096010853772277995273168882031304956301474974538174556174352975822764996793239556574688661687412032291441677851687300173547023393013814062693134924847438698885399495286413581970544096070261679508155166103166611137592582477706588058511642731814531073244664144004189205518868482651727679533052156988591763278331421909782752323002910411037029011046111658698885322952772136363678083380735498277000126687187307378427605309969209977646375985772136718800558973531809481324144942832337441310274628693487120408044357790843432072984215259904157477751669909929495824982677150179359279783794138464410105486272603955051395851698696109992218696321676098175632308179763617315443946975656843250727852888596959714667696508259240918382496092161009915603679766325262125760143986102469776118477010477685546866778183813273265176094682174709269515685944707050548763329568004022719853329584842014195415976447297517385055337470264522083832295058711062148018558141080820699255208378133647601898321208820873443427724979939712410480839584772604471041943853488512745505185031013811550481061755514985325151172473779437136392275026612114202088244694099788806888899993091058597927459866003874732547188271296381076660005027712923544832019181469697646061531422232480566434719748726874338945880858096170027933452013507568756483069135924782626673369885187637016885077490909794218238421965723994957300624133668940500755099872339673112619427063555562814005505246435382435950130392550220109074188004650189943674887631078480435993951020123215913599758193633875932904645481360336682364791713563500057978186208495294781540334427543772217313414167911102462270037866477791845828034133611413804834259842693661905751273806176040377478445420571395359683728606584366143883850031312763535276064589139563147238073653873553174886735966576503507988061327477975683963517767644496525891917338727023825619046534769198856212788695151805708350606361909344614376432243213328879510661748113251548513757591025079498773006011108468425675331383843066249115272527932124561228021191737708514472902008718754316589381676808771503665735263550783574149911769693668276545242645705752172300586887404168598760537135960964956008121635078099319341325759855536723972337875354493770919398583957105598305541860885806434987050668930857867721319565120306866108874148214317038879981151350952162387023331017559805391203688392804315535490160912550237778286867181646013090275064850951150506236038762193421124805819134290300837266235527869585602974006875041427954452269635398637994613291958435273482390808603898668358716742488575713555672897125074740795394739606271637878013912088031104780252408001964082177357249817995974919197465766886386398669664293806275577383515179075967658675882912158624426565094133767657031678267637508089852207511051659597912683715951634052249023851340098097523744364682682441456176196348997803493822259163267960563938537780138399283498795511569877428526107866897153278649241881881648613252672089364353927191866491868513663047956801807029819521395891672003644823606954321486146350169916943104938962092939256639412583539802375031284997229187619491153771862001758833834237030905503835799314382159346487786137574493744255344500095144282801068000632412756840007384904234282136597855918362041011770310874930472531951388100835567703963421532718855177542767359002307330156237736386553251169401918932718550632035506324739935426745773078325396963737216805956908930629520012541850744486518402263732977970849386681072993764630996828199900281088446698460051650112979883571501602509259016061145513057313545437108653088123698311770567850816810721184629209854719694198043552209097139206050681842385455256393615619343694071509146160440189563743702614425011594950989643681868115880618596128950472962415837532785617759461638001118727905533845496591171874538432049715528443060322280491234294855677310015293125191887960590096805102081004180829037486128795682440141541577571377977099590824941393242853316203647957993501479481254583187834177388034329741946098737765456255675910269674044578748655811189202175743265220955436811695117207249700343294993562363090651760255726972927660651058054516296651506858608200817495194028699192426604982252341171338873614192129616116330384176193818980728261707042618470325126318991630820641005914060926001943630617639883394631733524356177443974441479677099530821269489931546779197625281127714535954936828379305123969443728297292822037388288589180751491956818676899234649090514979296426663567756850703672434275365581489461970779824479088458689855696876247130991709143622294354256349349087273126445629213251788153740811675490611534204715850833843502008094693814376360301835100989665045637823021772144576408262537882035983551823207919896976761800675773043227110245634114692572243435939659195178727030858081599228691027120869093752655097775965526515118204254248064699608122369714803873682910968868420041133691831355527120548346673540747384236061634878846948056196121335443180535252242038291184205238205325566407915060174888220657948453536759634066795474786591259764093739364218258583706137284249920453930781367314062331451017623392242436595697310145916310348463788552397117687318771038486695807994110724395147580376923627766639906486301817240591947344082588950407067830485847939307084513397445370953467795773537927553247786083659258002984194144167033443628305283258121034878602683172328896635761152695568493447412324392656471254011691778915654250888914270687952939610738293843959109950246600916119166689287320649275098272685624638776510767252152274180072062100639260754461869357976448046825283099726554803087130817635987340694958217196607677582712654910389062212226697578569995802920036742869361811246469833538527157750174515866921115677098278800863595403673948538051216206983748127762847131146753701396931826816078067567303233537108893271439369288573587686411592889222582613498537230426825731469438278967069540637701410451745785155115295353669541659328189233934933894126634225633022393762272991356645051191962511134100464841825006774833036594604446055553888261892163255663552514505990409161715102601536255660321415204478718235608887820069673298805192197556524223878509478651972663158449952872750622988716622077305030022170522762743769942836919900143706311851809119564400791174282392148992290382409867248908444516988877847256341656902556771180641311543812536110495215108536005977958126433250448635674672149296522267516174114696695614002200944808660735534252157766899803985037640363434707427654923890773800708057598764587713938529413895606852499112367592096836074786057174212740620990757695077406812893255072505287068879370160338413458259888548018905265075073476776407703945289975000308220323344359829065895908073803003679934826204938707960184772484172618105592605241510740744372960318015492636386953105199183088218288440806032636002774260796305140402219141081611745164489225441795128436970471074311553131479280371478197114488555571261156631499541044358832677643199393617707234619586195478824585986361781498536512105517390923894315775493704676693512360738802855113928987075578542395582667687731938297070328132572724872662875051416136003695140462157758169228958007158860798031154059776662232117416371356977208514524153184707731573411063412132253505943804918538767159804730323570401669562310509119945674443851284494422599619745605325832697945453186761447374931845701537710154460936790943312632478805349391673173549613501504047733037317775440777260908644754552100482624932514196037268210127950502378958850539719710434687728452057639998661070231729932852699410978344140266891626327880430220888005089408502256613907126638823378081413486712059246147656432967310647157861293988137654419964328730796832806907851138047048264546419884635820544574887632846041388551370652399400297621210896885694946590928264686873764511335174523339613560062548947303505810959437752087827138192425771783667501456102902472433199283277505172214535379684236579573138321982970408942806694533415788678901061925424201223765496150116400153824737541269191391289389354435725984660242917335789876981791495150190225996854995495903189943493291790647342529967673951962597124588826657672437809058018609184140513310414080475908087963201491764070766178335997184989199867814421807561923484686837900833111156796372083924169188953067398019517501414071291837890769853412033970672180091255386097105917724085242066021320388857833475867291206691481484765029550939561865182952882892971950656245714393462967147673211852653362157201514900884276141140493798543607084659939094388637058620723117621663201808584565473816502149549412219836337842020153233347991540292052881597358338497721707831221856826935768937867928132085485054158685858510189536386253022956079668108144222666565684287182284997855919459676483989363923690623181824726852525506651965564208050899166094941707006113051567808780354779034024863543519371934541783433776997427197675366700030625955322503052967823420277985985771023053837134003959097715554066911984586474534184113698747530608705447943812824781519643642904575441433357289486923902822291831313123261474510698294402504415614155553891579299504603063412917477629476839260979791919913411293813593955098579697488556870295909134534111872204485175373463769738581549222656156185051499324630585912512426180529526415433493142969428286313240965926648309874914202575520198224623771458477476677511322054083869631376583813466217669377131982892438206614444723034143075361898359151133121628239449362310409358336565742801633591960033993445088109798435120276307665897000485575025203520208351273562515665569488244821053531709704502670944013602537497351077002311957788907075708766575911556529620514252237460498130573980753505574104703548212011118652243979218561627322808465018960808590832085440288577354030655871391338166116682960931623538644017875965328129856293643659755654230221714431122152824614571747637960828956076896681442726754542617189102572953639786395512445640072829829650383772967355735449040098405537375198648428933968570095626298738434611603991199015375074293077422145109855455508920279030006952711776092959793887079534356070292320031027953379480552660746499143830517923511050819041897209975745966871590065712339983210636844208412415673300544075642760271231675506255857403684731047327709923193190741675048583942032031032906281993747861604970690231026878445171652755228397948261301303145546130836674986375640396227012151893680359033798192994962326980911601587549091192066227838399461345398763370312701179282150220259968747506371355003474869882776240729962386848089615076636143738935768613393288591128576426970213243741852339913895123317800123519497192154013182180011570324387791057840156188751312888631174096863795081327440013681489225077864258124574615347311247181302423605906817498152120260688399963474472240253420729695428020218965610588171913100221521453289660125885937786454181505728377003500642865032420489481383009420903683349315661362040946857638935035757132267934721264478396789863552148684211462098175089512975725696057700729980108353626473458548489323803236702887333712715251372079777038558979054178716149685558223844725670862522928093644245099555098703463286064698678614903932002691958222292198194018230660862207708046266751532355808055618438580856417286345001663732536539385001002609892680566855599432619088143979908910737371314785157378506033224915031034791157477551360942830447290418931249473038684253371155702762450220777840317288913731741305987593453076520426231624805872073282283936387101496781219811802669755388079029121196101523510433122628842281206066786780715595103620710570511970800836957235770979325760869810269063600855264606217439317296694819218658853230429282196271088919648268781419220671416225190213404324053974157671181477056748593693462926128946544800433510838213194078430528901895378607542488618648413517839770728401928886667467067794748330674608039996479825547300358272570821485165807634288866251566133702147064480840532428582532929206222360161717006807320857023955885150353562830511668367239980635621898218052717640801508530044739320852563215693175379580848361850606196500836410917358408138276800714899120231339278530429226190961755519745773282030200963392730257704214865566982927356717383549060187107666091832720114868879665432523736013930092867517759179079392757343172795130346802923185032851564447714847137875500082595952303756093157773165505945890827759361030938983121883197329996617300549728134586132355729341847153771917925473551175825722625859982097386223774578550953559823047703390686170005895067438510803417206453327832615290220128334497821319977005824067250768959959553962741090926392525756462946267981557473228489153726599117147226651716775288908914446923128412232370859918511358281833001477733189224061845262050261566312242751186132309974402553147023587852214143549989581607860508590056481100073074851232625350186713159683648800203328973853094852538284934926871220971654780087389149557871810233009674489730533140121677026585081973213477705095801810184447922671690597284208013917562173344123949370660829685581618852744719384691324879127046822444969734320512990547197768301407278497128665823132484765097594470391689438610267693111889291409784647040903248379307499180094935758417740088558016614721775537402169192999416396788939012998627866639134358109880151676301050282652033947605020827481829352527944002705791835505707414822003074343196691722019279027530199857591614867919721773857714546344645353948222925773268981641686847997502813458322090412167400594619612102413843621916288566432472015298578437564060304100840226990845830170171619767712260496198260158170134285355237811332491668069710806897437695512054945764838350840343567673485381935092094455836488748717019565962380393102015736064499335563185166811533094142965966067105398147450756065563404445943348067062564765620110564632765029483008852408178382648653624575027523236907855534126658984744906240045123214160371152046209856231288131220254260006295179448570263780682903373845790685909410895093170722517540953681191299280831858938446979074486917008114305051544442725414717042070518464855439599493197580296142038640941797733874662187555397029117334668608162728720744334416376561477413471534425244949977775991241399339413582688826762310350128063649911939498751378574877030543629144384971552659430429604422444977644315875229473463558241503375528135640419953349381580568755197315904493914520887546625813113014202260815602486928215290166202256937751195068587730233299256798521488969205078878597409996673691947663032746028254330542144374882035204329702649250740814690430184141935636891728154836475625020069681480630882658921123212618230520420941875345803281048962071391988231900229176394269338312667351108124194259373341835048430268324608262686510237414212920959150266070283817562121261792120805432722378094108790021886632355698762899720325475470024950847621635950196950106442449401382112289336542895406175819902259506889451814159498811202830946596650055817007972744352080723804478168970112688797253093527423531666789178121978738889027786859015325048616251478433233092122708735076276295655539884961590306722125320531553663739353266000998376937701612768448343908224225723643902321920638824264130972409677725287336110528962206601744025205700142877160784335233576954289345505947062432905262513778222944342071278760741742523251240158232194036322757355636781727613875293356884389743786814675338654174901306201207324371450486144761359356431790235702934254089657352547292344801554004860540896803643143554670828485354218410190470361386297853014927875986347783996602259398772335114865674758831214224806543216856214644617539285363490596654319526154091074450270456711975941166425133048375951892112299363338257232383512417737329542269228711472328766030048888539086069022422456019843965616056439616901315404227503602320631625666501833793064416972675278374960057454077987650284444071919055910131718407517859451416133700748840298328701750374960209287272395781333830430710404062288458087791357445158939999700059994052674873502318295389403960134728220366237195574532046299494832419751448340676367014639611530315212881888289386238994793715091801402810774789829797016293618454586690667983846154943680076302971352253930073584076530549274369451265083272433718035132014783915456177830079977048723281441799999341377284954380166191206879672055058052146287599592570266502264128299913583998068617179879635308062335515980415650589121617899017798586747291235415263197860377634680480071920070067035179672472861037284565917052840732157656895332465514567704132602514312945644685383783451932125501395622231574606731371270416897928855306286572634233741333058094616060224045773630650151417497622187084077587779524451989079030095147318587666741407521026066485347722760858267437795503534029261225653026357029631742356946987925340307387886318598299047312163047991978762364494199523548979597670078886803503698977885320640180385430694048779771942608830884393386731441061003566845990006580124739896626092299366282578214191807544245678849832209940580831404668926848509706512231751293335082670854780436537904599173726343439829879548829298157341459611031763155466003991625899185279033725842909451557984755828902222872944222360448807307308423755220972199308006352667606026569781995340098778740263977000407866178409674507504528133881626431112366937171547853757632209437744460311583626858603716177116589046837178203972019348283457229603207154701907675681422508241592420387184607663524975701451248548442244479519249537687026370731854631227430025571975753594415019846235177990089602046503502158362575881821948158286155914598843153663827088470714342981041854673339966132166996299969467810298429246445581185684426252473071556765779110552326489345563466941340443606701731923012597514001648560914629109777671967762618946060402715620379070038413812866829521590517016887917304517780251262521543302753014040064457787740333427159557151835232737614154757394805274139027683851958284433498565859083793056964730765808713373030174927031339110501135591975336072857100184725449728170686995011315317751375050787279779589218063936986860710076895109553802641115654797911481682952842973508281928166252760279616661003163640163592144279548743405659059457587034717559559659491029995097535631424213538875840458099496381653237862089826260907413301650556007167120868375812981988758504426315153416173014039353834150850098025955211388874583918557614914852389440098307093487386473453693471586697732882152653846905410270968076877860019596505565610550705473275359875343887358688870079251146014410438148851714944216529911151645161017828457386728735902674558346539084514649985397529546172084593682050407457611724009978121825007237150976112343550028980043037410391460773775928395620844539483499745887637499849395344462705430455837942904388385926862518158502020516536286196527043804652051652141992475654059582284462304552955199635023321018617334790077688926330545186577766074422463478129244695896881193620565130415762145348262012756820258238636164143415023768388224380138897794082144636679257988317382371255066546970704706177736914381694955226219312774782447017732475561359463669697062204260254012058107800090381034304408136940076770684745354498226790066540319045798105607438871836793555395535299758016006639242852324668764141788127963841133980416166047673351001914208924816173163338464910694749210811545131167180550776420792748134672901180039311584974840428176258952990966275486612473215902517040168264486787691360064540132522501621982170828154154810559033660893864609021006452648862179100335289595857601380719001708754410440189814472675620610730099672690852635451397616523624111651555576364885757029763547422919667040622970000970350595541325433392062243942141438533297199351190628931653423967542387212558142302209445385059016437374326671332566058117675710597784405298758058739392385397151152414394352779799400260506724495866832248126304392383089986084499455591897782852291730871294773073429670007504058052279416666576275801936341856810834197321068082684348248031049925240412862450420327410930489633172838075175563874487540186333834091818036828697195707631792919607524904241340246026440413144476236424546078603076346933220225987051040681720356538298652154083374979175210675627370101377979447906351030792504163607200519563339453203188151529062079396728208467367003754215458905365538694098264525290528322305790388478928327021152909454090551945934593708398945483661456047396630370860106930431220719770509335303600889217216602753991692598384773202192828244107062418265209253052249697418537331980896773440854358582389921875002333532173886772220155259127938168633240275589532897916787969005151808177874336425244748905217741600060414583478791245604032632072970473245146184215269014163426466246460784578559823639600389049647425672690684190294951468799239485917774955048901656609449637723833573274280043686192719248293244294073237935946881362651234955271106163031292679666730991615579858701687807702241846655469945408022269300091442845789405951707811491911335188114539991729448144155769206000772810894734600354520394553748620019228971426493521128921437960951564925295051865411428152253755547883374499455680620064743310850495195457239647549641281736381360796868092219260256739020228185731957096922474356706217538578397851759649351001964273775684495121325333020388183515871716786537491494237964506169545394874129057146852691351673836228440375762056482114586788036783273601004150902962596323439444846798520672722401033285676455530502986650434124886709107347198176059205789309548640328274058459098141110603068518733756997875702335205903276657618754029195691597837531396497261748440938201626392115453645331920050948052776999146572766991156939748773177243923416899679337311154752888020877355584933015217432909315958772677205889885794516046507538527123901100623643266150927984103189517430033696537932032211750586373534881956476830907459833297302138604038136894192660588489346757306785569925363454295464691900330440792489137400313287998326220096858016261470677541491856262878481118871241216181088525013288074015622578772162626709741351767230755955495764740797878750924998126901297330722992254961136308288288944495178954664627322764176419175420160349027670819677885175200834403680195564641595214788244999120353783983311758942322748567659669741947571279504190384665298406006743468639512567540375314815876667511383465701394853492542563720802749649159154962833839147959076850488653211102232309945334909564976023933882830784186031083910976397962305547384200461172816694001938720344816619145973578071454570068107195880913087439675222854121337461501994389667553501182592357064404722911473568817213892937063308639255412944955994662219599339878885873163142755811396097218673841667332444908262941482937446606172607271335056920472654678396092079051755844445410432640775966361118409575812055786433840585381004159762654562505071341505634059390729477548930314164731597102478567483045748504958389718384281455550678938727589149534056030173392050278994718274909061144203954925344098926592414578769028260289617413714999223703236645021825776701245352719287501449651796717799065020269649562189640110844865184698827675479139178018407107270135658747711018549456678770900214151685790021990342211441143785967096811848233885710721328875427637384175028312190878183071859683250720041413075815915261541875876072590663077777792169378566578842668902633563708884400857236595395867022175239416775723629692793901465411713585347403000629034645875399468489833882299270118335275799662361081027140783362345969603237415222934256535350664366319809116019193525075557174428554415110832024659633618919721509488646438431820732694377575995449747414795129194517416870451729744557817353702217861286684799370393325153215538974556696704804568224322106691796330435037019933089583223234135299661580904138846345881380218696831555830822144222367456014458685808049568180031469563315068357325477223396911524068990786589824566224170477387398350659882870847964026456710701242878877601192011992727574643068201068450329419503499076965788117024848900093005946446086335688687287578507470273380219313671269945440707398513246552313759371654263711888664384250219642755111635169527923554042227528141622899405352004400533115165856042159769506269800288477983236479109340695385239781991467156840055003784377175990471191958589423189548009089951220582480554304338816636342124231706606644674670768753534691577888021741414661742485552589766025415032491714651605792795413026435014102660179130233625026008736717697175928381399768003633156288929326164595071354051080340770776469113384539116395150860372263774274201021530124989341851572313746786990445276420745556795647675313004777077332881653173972036088869626691497995320021482310207230456789993332265117993097119969038224370849652370607387825693553057954342219138039588908249012591077496815977756070205010427301361083922986755745992801793841391134002090764526846642065255361600640272450249718763436453671102208558181074427347164027916027949872895821404392580455457421052365965109106951099749828716052583183556717685010474872483643228426427484903884121384680343009172054914968631266958600846378866626565463845502562218620080025159289566231220802336005519208779848343362214140685773106803061411080319682131506506433040889027006359470214988354492419063494755746512695243613582569669834487320255903119577391141324452444686803285593969259663175011505255422277095569811403029658692425528546082642380154321921942431619298583585415827997514034228922426620623285357436360295430762421765238206923945439859263600937930522287177636819967409779397567816867140452037576211282304416065728721995050373055571226521693406889985732877711531850869583236317169844535131616840738632385266885822596629448039048584684374901223943148641486930382445349973119053478011121931167523471323882527857320112210591971956344946246692526777630730911932586400534452513186131890958421362980300978085240467685021326314365249891142894457963066768851914517562650069347941008831691988268881076730862702838381802351555771858758182184368378056951217210320670565105556600889022913921881235108506154585500320923601259070506603815733650954938302135919371146342315663845674818428794760533659038559850319965666669009615398770383149337115857448371110601082239413039258324456932021587783957911108954913146806856712724181869519391195386394879438622000398284746465052933353268862564326617176343277767419579235330051674965599273188451076796449429933292672794280601197161042185388143222382908790633144593022646048562439579089583218510314185201738983833975312705384329140018620663594471360808072795803866146552852257522630622503150294455546635114460446008616428300250406955652519570620195919570078417557642161258814813678769109099836087486189529722387923680610878967092183855558892965984675909768873858236916303992587437836232069560514030972140068261266344068417382985945125230519457587425187540465860188730865254200970391053160764486397286766907544795575338050718202040318159630651387319968690199565993973542217907454115626896175607368077929670258732567783868465002110976475488561992017553922501799632900793832062808224675326632319972670380568867661726944600846215465747116740258427438892680926555450620671542788292547892456464039773062057464822228137868789571278545506723804071850267195794257536599998348651990105588218624915526476757075956648180421049042884193016665852147455337642726584418152035462799202669830403644957176142921724427952963746752848232034924404727653261526548214550896137471674680285398494858846882796953739810270926006919055310966166927515758394354647623642998486196824799409061201423568003664665746101316742820293133379271886418763706275831157969684579692011292356264040410063288097527283969608690519068781868442567689397977932001774070024705569270323242521334357433087023597674771492255693701709544240669248205148708630986622165471214157081473657545142592183597626349323342997227243470198619184559272402101487265268099889759594140801143133216367159429081717129475955734438276322528847502542141479535362935255473423534060801841163633717711820029979947840209686140592440158710878227482121984605727996615350649335621418698190894185586957950991306866939923465678707217364072463217779124753002913940747738795574606959771761475340910409928500043445892733615244479955586090967324744722222166157895499835430083021893096999022025374635355655419951877934610541521935299019627896513334390289796417882631269002505434418211129239504196524794355824612003847857079986345140918532932517414251950298169371694714108240541976672642617407363119694185649478634112490765770534540715758693104223935997705258126736683994787405925184444258739980909234321309827812416732497539317749853067056025617837012500117150357206310043214821888156781045658407457031946117588912551662389754661408732787993571962003603417749411641206013250905802732069246603635352034076571978793819085775369563242652313411960749844313626118998353893788788497552909392785187246730261637576473880740015631663678380133491762680652068642788025711098683911979120839722457439635043633168189871385553279582824456049222350194794226913646616119100154394461996925929895444763903257858681451463039838409340130406813345486255394919025096401914905636107670989292753449173279226594031109710765570321801487827793136486407451898739670994693210527229369622272589035080641700795490840578236112125365415316968879249860195005899153747689381497561493478893706072041292320202524646178872351566062184372438340281363339833412706688391488082498311965826484994916530245456277726062365272867681705036086624445963745455803440054878148266129078618438910451417160395617483537858215424335249202802178097556868188280552034716362716933844417068964554008730050838820762519866504820810904918835859889974418581379056409347574540581667754468146271918043920042074073532203098954736060898006063215029555384839772925249146439214528362577297166290420757095755110012465221890184260730966908488924395376825372213608539251113147809025745148356393161591804307653489506071597871854422070960135368223959341868147030477099877919435046230113624664105331121126282615259696026083337191860531891235322750546353951953638792786538244501355220975433432852882515482175197798730373936829148294596739535421021742553953570505323639870930994324359374857024640087568804843669003134849417528927742578432703482947551165162752846432306771326833791543224382997280148806652376069185398838375045401940813901716489601116653012978216533084459722555880573148612972865471198421129452840877319226426979547564218871599009723271892055356801014098359359482848343747756467072046198600529840511240977594306554735271279487367879484430571334220272199615461931403016726282591211228957086844266143707779629213207230711514170030718203971171197569236140748292352756351308858461859063309419867767621263013335131413147778853401193850499910448148521119235097048851614849393790781920405744617881671682195073942173707808006259081073540130756318542808512589303900503429236427465232146342240841886918205730839615407121011011051121714762683033283654888790441060711219634625971820261735062162312153624885617766515044524373146825999404797343824606969989026259252248797693561099191206463865196370810915710874332743751333583356467709540861774565518519138067753282041028756920480606334806442606510492459714237857434604432135803967281581486038488105384537928440615045928211566807254847135727683338480559198125557499945123959201882039450427521539567161233775826571917221496937616531599172607520059724249645928196325159603640656174182325129498053885758707411148494068162779122128527555382738856844966285210039405598558783243235663242337069939992488596088591136839919269436216320927897715787591966988915604738680925168917074017903982477421381475747055015719899206663004427887751433981203509073746251599001768242136494464371719657798980098805892125252345059141092823258657100922588261362660349829007008800931052693689195774568099591413031417247618125870097322202359305446649525534378986099418335183786082632496385111793059009710123805703397833569909539111032342351865958126961213176521188542973491356267687348671564727581198794124100227159157179725728452750271609105679466455366203540738841657836660859356887689003327331374016774045367034561668165370237339431576315404660325556931298348817352313914373951865195564920644308460365359540917368902461788295896980203383534416446029610127377078346614949186378272309306819402560616648736762270060742470966361333273809365028969083969042893334961339514733783991173181964454450229392034117243821239713482954547272440970423887733305432990517471600470174294864786638845257725895307803862685301161529881003945416286410188875754365813838034259396976136231072536033628067046292580342491159748135789577858842086456977374133998960930940302581066370813099928234101159981679509889928683059108002311818741745872978076928170003775687538836592125991127715017340051180039830073528810187790280548728428898908562327218579045816736260242449005597532720158737995014833646616964485848500780877228306250357317062763116772755232583611094954537834590019146730435185182165841730377964028116475814092285066404092303635762945240635438486391201907153952854082521347500442012877284268781386242293271294809978572830649015474141241188811407043629287493077857768442752599831203635026701173002132714402256734247756695888663345259811366078828796701030588255852295938434183732734789328177495315509168139003573235098526763614704201458561295632235609972342820042552374097799853473144107870159481196123048414481306788166166703507424679118489997997876524654859977801588813584944720984868641944509720162406087662196744329604929128871636546839921823087135216592618497301646908564152489889225842967310316808379650216295213451183607407152011782450600826653835020364827196943491319419980122390859930792127119728511536278752963330172616232874597178315871276033986858416355340473788193232858095917104776424881843959573722889555804044972434632269043577698832074837863985180702255935395652186568776521728416090940964466938002811571091780900006119039342730543848729506278704194558263087966607137135344473551132504755016050288366409432087809883187731853941131440806876672503352072308481433925092205962653207923816615349899706038013550372968233415386003079019238622689024649120932144561415743862734682206773500249314756145371490188989709354424861895991146353322804478776602537111022447781029099153037363011682559128480120299971728373893252783702825535944820569277962769996015420051245968701405860334885977174041886966401568572505374711603070573791442157434795259249231542327790622007007125542467546336539833733455249475790054706361439272375669337636456163492538959537561170970449935345918840690135721243527909681695210367042919499494518927264727637984486653306882194320222615497295895414617063135605056233519041571553024560441221589033685264773025936221013031027402680949297056431062633958900204310128528605619981576205320880727303400916409176956978269455769879821899861137883472846708842161116557527462260365451807582105203047858196276700118742981027921452311405729330034794189072452184286641169364745387925269918438229998463072840438764045978533792460806114839776354774940811013318694803202540938768799929742995579868656082617406926161504934860314473874413252709690592107885106568468630379897901219008593106883824335728224720206538667998486510200975392253090195358434767272904223324420257192810094891297938416955509096180439824260951326467527905949486063480174530969220652537567143053631272327551210434539290404470261551907546802790015362705987976326742434586481422090444386490296783996069187485483221778062518454335871987531727405234340892815033599284700541697281093492019303581167265601065892639877159219837912127759276792847224631282252371516980818645439003125303140240967684277384677616031357910613046073851043216375511568048971299064985924203620626305303099870715505366367415332462672604712930261139559004876772211436325097546693261616493259858313342907176831569022110977599297363463641139281498830035326371275309256463787159188104504623667416725717199235326093959054944204952373109367588832259593835564694086707053154653600412490595367102380866184684026571633243037279402908922035471550636635060033561500134464040247600933125872588869870536250910240944079940704451691663190686529484652382888841668647029169578514903712818958541615992026706120766486772091608104388738040909124912250530352800959819737877920271640318313832794114356715929721913057320202939484921588109634708017504961767390234719640668963043394315757459156339796691729077167236906899518489483775844248060312476515259708100571898059626867529172082036642305627804117600636037194475851402877086741256183668566631749137195947537595297612562258738745286642933121651682766864464426577042684890259819032477587251948949241145254988621105827381472678136194329141568468349018553098680687297263596658220941857292429556969177612819251228633557187177350058734741606282465735320150587777013381429515209048307658489476903793165726865701029936940357929431121883368502945370837794371394277811704368961016922527069348582075855411906381307863290731718513760727993240923568456657213712008063377972215061262210808169372614069761231721035965581117148548856259860412627441597054209566778621239465127142260623947487627710301524147180025448546603191588755407683309312879842848099375746069083698192567043267975756713713572973562194051575018775290635303822109387875984060697922375643405915883451970265220509996171996371649278248736807404020395210504820766361701523290590816731969261638647256160790620517323660253433742489954346567975875157923188348802393172087036750684048476413473334189260556961685314284294477975140053998016064191933717452902417642224526461411656614144710352877796367350099226660424015918326126566768333228640095443148607076874005080411868837687990539384234695821554522146703875483989471429674466355318088846810279946172600930143323841480228194976684558268207272572747455918027058453258936387633523222315795093413307156073889801833474056040244279046952818219677607216276151169477616744069803097591825384646737762049009753836646081071976551297231628943616781892288820557837666512653045264857287676887568013823291316214231603478696261651158865847168377230657211058483728803058013450119577855971193038932147920293536481800093183530129763505427043984648836528555818334471446663524111333832578144680128052379290150643748247043530015210224820610234596693257928707909456478121318058701356916552841251150799549969702688381347434592160063972587074617644214730514266044245089942001897872259347344883705486014309143586423091332986398501418715786856539722284540458142790912053384994078650604111878646458433476786832612040867004802652374572693883308068427766087204419739739453217728240503579141077526436051795043100248242840508527372195289831624445008672215228504624706565420871903219789779816542587827602967766617357568791837105807160025350860824367469879541435113009720728279554040507597960943667167492423089022635379164665388525097247552860781570947447205168745575103214984198921848552953161085170780111232665840885659997385404152547196994851537064545919492835760719225049448909437899060794352702439481191349597647109976253422374012052147952677956141912830874328686236366522328168823122599382699784566785485635626310206255748474124807955954283244142566194764771751349913426505441465732478952294218101807590723444718687211616540556704062763292529267106710599531472820020911616281509890471940035056047257551325363204538296099339434407590219921373835784232095326244308013632975496259196683968885738681443405547697151589761501957678727201890192106741983198564667203893966064416830117823907729274616149787736914616282277828196598782707601462648453717214143249103533901335706870855202210505511822611566683109185689487799710677265882939970048266463615586751460256815297667884643008501234251517167591844326253983708503934450052195673061641786288163322185704655129981810891232469520915210811382327848992507157778070129686813485876091738505829669230182756481355819219370522420997480280486646425891072312859294164191021017292761947043338816834729856469641678664907655810932104071276585335151393775178039578957278637851903950163383563551453491500906896925110364524435738900454390176487424208959256342880213386679603096193421062799046623217310538086902305681696523533154608289799406753807143336775022966634278515286538583761227288356418671087256864583168888910880471354237032482727551238290742415355452063488007798808129602962703036246087190120273892776520211609544796480890724300250743911405957215865677298663352110396442411646385532599923564413730965966241240439206747008607944189995825667976391848334191812240432016836837215513578840841857197289131293058590491073588378284668434566372090194052756511525746866643542417287454024019319262857398296665423812856557725577907114405423594463737340760862940163800552179459079246848756714862643442711946530408555483564815930248309729647585632923147836553332995668857625872791839808803512537495097328493921502768759768724927732842673112119008428192575686603737155800106453344599055727532566402501834981347097128035145565888016550307322750399529989976287246758262493945384790403192244104673723223866831658917451091421277742578349071669626094105362361352940784010466905738342579381457568256853291557968095836679076418745235282565994192522542158142398256900788460994576722839657967256990971487067920348970752335224389349251861641911780669012834751680530144144465209707794872267613785859188174557366406417048815470964125706383664828493821595475901059933703459406804159218387212537737920244449067777604045612858555096309162408333805676972029189464342387836809182168212468027819538886416497862098103461768619184876649859326282480913099633614290189522096780734594965475517723469342272038930883592615830336176153101904564834026711449453662061737929316273861374178684913499377665274285802932493889315442632761961298220133214153195895761399839811380965352962564417319879887991006156538169305494526185067501256220224900359546764764167100929858813205625686986289608557227020341926096491900323942834517653381791030543350245649522232796816501645934346270057499210535579304751158588224106357325913798308605087186974545939446021374873319285935819662086179820041863097669540241187748469325687058401399904448714441056957363352584041787772722560059374044258915560937866738880201565628164839961964798309123351454046131181902928617888874489638552441876704305329948863411676172627472563814032043711029639461712930964441515917406162839127854375859547001543962053479798854917594585790798621717462438458728235671568780161823197969388668779669365021120925519589134158763208313087991093703644445689761079840177496383334537529995079755196671613140815515180296030413925354993144852214432039572162281508979515891337997136454650236450235278720907007011186934614939840550141652991033786005111494807955831509072597259476008551380692433838340678268048375630557594901097847944383308963055545898941801512105499070499689993445321039357174781787704713230970516345773883386176000199776258220361247934072988587414494373359035692488564803400887263373747180842396882137558443825230595374411223433183890752128290428776661523840725274018118305794996144094265397678382456642675023425209899869983859414507539837141551729256520705895038058493062712439730613030590079831202001388552950288315046432750962293213261325813483189047274844057770077286453445531273884617896749662093437190501378760603074898300452656841572459018165881302834434356189145453668173466085040972614377061600765515125280484302169240368958548717822046228540636084117518413393071033243663858530214869072809167185783393198218630496452462076657483947667583949595269877942643636005423087819524961922696191346965866311222958685606459869114872199011006265026196567158895383928316958339841930682357763214056638629190003751914141850349883002149151855440567873045255296188805926799955639981456749642825732244487867791963797527238028018590632010121254573324425479720910996147078484785838891828889859127392383507610625126524949197784818849681891322435934112814245204521657554357339027220028588297305812613281960656950854149163241411418918713334646493247038213059858793996449004563135413891153004451507541476165056869690507501634804685322044767532817196693767681420728762017291863994975511170467458430577667053287896258159786720275448312654326079893420846122920518725958296000621962839719980945675055678866712259889058423825045679645648604570904958906745614405814588520459228567920295363776786960815154348502954435923250317856923298514008518437199055808287320606124999355646528066464330026013761231700344444008125408497492098715908065923370768123533890050566542306689824066788773541172825608076277296049991227134233792374962040578874398757950774540174167334150717910248304869654990990100611490211409367189029849182202221987540515263316333670674210508199987677065220927010529771253798766917175040806397105648425017310633164838024259366190321536752896994739739502704132197220690448059603973262575655374314732018432802642152857741488307137819393961381620698140903243068094467580076159601335822384575481504536687550952435465950785266213029187737794048786200219956171044391898731026698380073131380255872772874181041816445534308445932647245108344405541290806411049174582145160613343652506438914209864342529173733563431826155713258424414318950192859700225503181026048710605770922266740235079479135934998615947222499328472862450670103756642090365484333378311176829150239156049628317275173607168067565455216056510311273740511817097796079248942936698678011923004468878854261464144892305675365534179058842782249282279380895605850178590991388366769961855833186383047595585774529118782990010334763714632583161741034641091741645902232941317297868094583791062002637929681956655502823174519165848211172564010922111821581100323007471890078443279125562471332139710893547484859924212401533977618649819443111789393108950087669193371354753342220186338139156243532773646915922950537194597366364160710006575568961903869910392045604774503020272213575953006336931825287304262091818935416204206552288095503671807726937213972509694098659321410756824425470521956358692921655562017061490134142525354388487276548441208526496699846916916055035998212469265893379647598185660582199770466482180712701491031110195749756118216794287592348800873259290108205896563700568548750197483032241954420355666782888270907727157284032305422406556562798734782833647380358621654815828128263714350984515901891004699502479753429615270188799232978432336363364153523429056566877869086729241211931774587265825808681706865232697621032374053421668838948889338794945764912927683247234296086040851656910428859492663469565773222718561439178717364751502072108048182846288556587167347504557666950495696983835575160658010786517284154148322899239913148516240482595962692073080234954126574795173692938178240528452171800154367396712598326284561429560828870032056005287460152490269209022681991611093258650379872169696427229327834665051021515073800952185651520516110288775471905085201885626980006303485044408891521359597567514359165687366116238437089535726685113947244122240998223417877134492844721494025119419526361455547281458021710538426889288125172646276286108158320305779515745736742489029069564630377215801117912093359115375097302055805012026935744240373574998468002113668610827717677294536338076099432928268987758006154491885587678043376301567140784486105992008307844667636852588134027689620071128415494079579272142215304997283225153655282002544588478120744363691048224544316406041725769083283055021710976405000412992997880123863417361487921474363674827293876640971757963724598156354726988265841364026950620152655666231108242975071196878056746330734062524836167380981345998437935581520796404382447422777249517583085720046769175395779607877358521935820678964839850870815955887646827098670298316219920115719378531451285518413160929070864184689656545566127512068132606500424918942250369051772283398395381186956245496749007489210862909031205867807616888972211682197000074037076437519641790322910536238880938881918955174628108986426277928472597460029109452789591036412700573575398059354777647452618821115812114578520064384763432725377375003165222298499168283102970598610505442166348956347132787509686713510431972642260482300499085035021514747929912003331417057023287955858820454451576311130334427582614525980585494358988327928848765572182312353418063904436373174858984011864393994266609750899804429709442821044783247814015784283729969296176188648364523845901264440509223168806932600454121298446878747464882472543827404864106115993264021459827707185131460691223292201598704132608715802130047770561030223658411134308291151053234645581126319470666116443475771167928685307091170225870670294171627996758325283854026546501882485425647237026433520295445530401297360838846968285996045776504602985498277046056511239052991119270327230721440750221899745274451773302485541950469787224630625645324187235156485220907082608313917726324615895932945933975988775094160573989946801788379406404669031391197652084842712724991019475907657559314245861576997501378015942891216696291312918801581135743421521767918065308143084821866162446300260345205384756223347398401514944321098058575729753857127456390786034663258652739164803456803480902024298251617496732175665811563537860489780666146660404247570602587369821159933376293486478616783600994567953348967189845748926857268075987828461046147226538761873676530019843923599147298155623799036916008428553586608971383221995455366877538532472845434563725489816523018490658904303146193593168821025736792332152671372749317247921542706026198460219566732505177267281239650947412257350773944964352528067271109482200278002925511793896613968240467808814329600919313697813103633641295399688752467400770778653149632208814772624906893545408303220910203353261241779242836985168947696834184934246245623497710220423155593423882805120940372087446884173852318841709788105989998334546743394442988172634743692729713270444224104204763337072552587355271353539021810565129222702643188772522527223175625159390778983718588710839555975021756408326091991644344045603339834497929898794636144872728474458725646969791325790788704453333354898845280531813630960971468903203710789925243781725745603153249317484971580102861180394945944861150662752499748677065998520703834210095560155452347100644335917486360329575248775518044395449871959852536063935013336067585347645455139764581594300719523837993581099188612111326236823292347116958913912279866466835987405312185169577336774799934007888915376362655849455040279130149123983143672127689933463234909009315162332811990270675561798186891630765951834615725177738985311160986639603996044176080044478853208604629197337431687068929175871511804531529191865957792708093123554048773986416646370241918825093863112903980082347891642721872103506799701036983106623317897455238527201724743508766293301318913883688911229410225307617127385380476126309011341894349153270968377030631479347181680139716004279648019326917098216936584429343706812028474846398531577903709520736069412446929064633794526463353999454881664852205981515544799647773108021819860758367106497028337297298337165021447465235703416527954150270649386734627234736463033627638195836764873601294039209657025359388064170947845191271206074732638014364025683449801996183269705895575105415196252021697984369889774602228359561935539434979615700886153936390632871595196767894058449919450042315075565734788311446661700928125974401732762896473911713715444209935622676601144009344236737520646263542036191426135487355459895687682991772744609872543276178700416291158105340519526027215687818586899259134729841287060671049450061079562762550692861679142092831024153332365501483240652960154543020344259989220599633092961766129773745643398361534300841587463675189198003875942273149996535344708155567575688622227621932566850298042642978325064316601405877202621392844776859218392509948828690111593364220658927730433919284907114779238361905822485569294681664659743432663126153611188465832761559906690447918841804815376109406893145680539519902789417655915216141522553019126404744088111935127795598444321133356885863646547195545450773186187797221211219164741141760503619087718789872838639550586183312986073729820444910597026028701711061667054693487387054680422365519326004025039132833590135704155106291559474735842626167155436700702206451373043722344258512659576623308965680233778392805230666046899560059943696541011099160608410060385152151208183431323493244474629289639345166859142694504417606903174515701448612717850438027472771013648918971945794101379047177824901284671936153239988452089874461710987694212217553863988571166261655292589981923615354869242650826244208897878957288911235480245825676220536044634119416183570877844158570926388715675332613130136133420248768913058604459918772445123920301249492791187233960781650318546854044403635074857435259415199023332506854618371016381807741234624846553717149472225587343380298151043529371882914073708144489537148648932292748848223752612025658019809957277200347386434677601924605751072058069053660622610213689314126785375764927480530615262451216127618204017623630867890137299124751953019071716544289059059579815064439865029474259767135409723867716051190992224034890091373379920518114158832036077284513860575610561888492128451346203416720193150870026396584725915113973486321810629151390656980449789414291384105485842080230423935470589492611748470368686621114659081750152802893377380864150900188792358630698889472781834498737518280699540878188842073742087678122515597057162875751883187212260986814184965753461909249444971406062431670060619985776176919379238306285698139938368458995711838725316246790050643692491287545971004882208705003762115574681903477913345143933674691904848984149218453974959072895244022088369835361746879733991291929540867129383921474459594026142668258605344346095514973012463685030328646036057958319132944810508899501329481447719619415673110684558231506337167316297169778607810226465861431163050657315933779857045873550088538229577478175423160137898083880448358449217310594038147114932319878715606647924493437766715476298530737246513212914151583938057156925843768290336566554015562327231187903249215043042644592668824531056841063886938544587986374604138719186154016579439300269987662087548922127412032479078366250571288104335113649134424451427667198961191712269727539453139741827796102287675673337706838363048932986047795050380941304881027354147392492691353357544834191512247471913986178366317761487198659791178018961390681811249047240462255527024758796311439741271891441730611193937167631057419739924464349158302916223614788867993444787387608773641874175374049444135185204023832945131911466416612910800888465169162795383209134135927828379918806988029293301498372873317695868139894119348780866562377120729862034041174521256174590401520345669544536080002449700779175874770844365838190537056841305948989542590217196262185069793896323379320160876112455471035617945370906252008871322660360900516061114544238455956054567535715049650296381684193627439084404401324204983133974421772580370876380185622774942157467522728906689137764436238962841652651744358399165670635644756232490828513851492847230045195183135176615545122867673374731717670200606996233860855910905441331549958094669960865304079176435244082905213754122726048648079775940437807820416807226767347269275638724693710537061823674671375749363676494250055851594305218967125525519447398088100589132223668849214689057973986981608191947948373235093408668060168773471194533681067359999974175352108953923714290979769530893880141551744664707651237364323855376358610348324450641153003601411742017340448464542440999087055951399841764293064508592339346285615717732533818753579270210134874801840259418244808499247031950695419586145552215327700221852789690700981814875918404705800501130312197806482930285251054921749970746470714621401434815891557605068943733928503775576454011550081330614860733494135635215635859566482037648652309758378870946809575814869230932017596816565948188847322941946613291359279712678839169568319948092103152747352119454431141108197737165486602532864107789604360159936341408762191339981362658600962624987698459228132290275930142829957787880938404889807031247008225723244849223979935695649796625485966166408566433280842491926964880331228471109016321190544803676348975561662292639243119870935550205389563294048420725269138123574769929073697344093659306904634796000898222878821005291924640477920027919484742283953649185040207951556236328653092989060932757367642672185355385515497222649577215293235754655524960586635102942998701066583637147012826555712420362184238256606384981023573658061184124113016029640045208835686032451993984427136786387802726764397679418935181865674631501306818074812868059998162227439918079197074505050086796358859283964728533333758069915227418257907723727947627796168146483794065594255583801384070471028537422617962011500878514323079779125186502017253315775262483393234587999714578163403761048130052063810009447946332861324477902566679063823911834631435331091465072197339365523891776475189281194678071073493945038814121872180190274153704175838006706635931604473490243122742435503981508236169918921216730388243481508660290115751172048214945442322586773637651842205491879904879616862462878647181493484191796001278181339093984257560201457350194809865122249864587449499292529752524751273316595159736538300408471469503723763744824757687709116638499267650775407969633314672064597166483764455510240707435128854782473362258344346702261594292477541697275106461526402949367520774378345927435487945098911031730320162565532697591952400477153435422310710018678743964471114442584670099840467962585499109817614010805997527631360664662801937996297018917567992742403590735467799166612063901703381201900211995634449788877464650350719221139011153830973106947745619156068697540021296023609643717825046034647250420629639879923931443665528677518230403380741292635070333560450905301934129327002244440868858458830189575810522357998557172631011969316468917800822420105441020222649920907140645366998927529375229944790186694282212320992900430358988014699936572045366905062968769881471875011908872995322977453852478019038406549685761896410412345044359341394983442632960433013897837807334431932609668825029034987783803406897464380493306560427217205677849309583927986389804976218548755031511074983154792605706566485806404154425571947271498820992680638666732098141871987463750394395189183108366193358096003263027613380826864358314697600632463815899544253327433519013194863968445024111604520687209527045944369813907027807456427955919247952514312549880537970756225930552904787829318027051596690887586188771135036771049137398894974961030895006727175976874173618305777648179115377008108034251357286976240417865354172378741739804033378869926935515420160843246527825304174360326052914428208517790886025456231611315291776714999146517288133004078419682265646123374917586825477168220691874725548867329365232800803927229440313084403765461664466912917414137127826771091620136399606512712530950452660588873082673014911150355964783384730460500895822560019331260417042397653663884265555071625391040236390481200528281744299621171366144655341097036119895299736371684349145882167741549561729078526377699978450140442977863346353983075355797314517080324499218120439567370884046883213632465260783805551369482852395228411533761885616039036052947707263468913849240543322906007158278774010663137489465753775874847801292825663979303758574314102838648992470298961418075528363457949244467457211737642556804605398434271637627372808598653477454239338722366048458990952054544258212368168516169625135111050704889710083203817049899373118364958255549158970771261354819721775072186552043937696577339088426815502282851351719659684887377150289207582719350508188801576768080196334032549161601896041354857089160137113570332466874519456667664573614123858426690608293238129741124698312584216656303336360828105735140798611081387630415165147091665790910417894038939468613678736875787423600961636390148894381074403154555600337135548965777857616675533517658172161055187372693767176620438239597607279735338871035508182691103658514317529551398378500504094002368201856980854169501782041361778842705338511199322344526947305591042155134421484003317192353203613707496565031943693857515786946845556738847557485214281178642291448021721206639084358022191766291118679088900252942967481078299352030018773769773076386319480934727927411224719964944901699707718730479460758283813001395655207241085108899465142843804424998899795150330215155834357190234000047790145090026536286711473439804505753442569541878335199828288852384393344182726949476625109663710184127687198516525591222830056227724102421443414073333944509909572976114210492896834257685307033828600417759451596642942205229951142920742822839694687873244750001231445390403874838471435554476920183447943414518239631825165772064175837996415823186384787458431451706382424114012438743464888255746237333862144525064656647988366326784064908156876004359968591339012809984583117635067300684842298841326000670150047763926323089866998639640325397747107237438509004392702455791614868910766466740402240549211804977300858887235937678726653533304758668732074387088494925082382080593930545041435934311503756999076033907662218068465859630428452469592343898514970733822187998454711567907625618696113621564462164603106157638573905052043903018927743712555360273881906572799602564931213858985445579634831263615069520472003929603966767050561505640202444233045501939050971351688953384097018031788642253073046571155857342456609473409988971504787771468648846015270857248435958530556282626074095204981710393914998919585222784850459113541520617467452013976564508265690895888185837075985370144879823959501568097422680667530968530600028647608264264350535928683192468442562021483740689544081879095593724357000271332983552949730758731096299475605105147361828739001573890043515776225364401543256201801659820097699088529162087493488048621911029628626198112951114891600462601757600428314473765354388399225646003485054833652162034414110098246318788182621564627232206005868057127143377126670986138506581776151666520874329289606203710009206587892983090599669870153973587154271447705387184435561136486769996468838798882217764417431598449705743106102625308078665534874437860682106547010353137144217797566203786693982717752968148682916541579765748421974080365837629098763133043405200717515765640090131452592337494764536858835023369651576228319541036304215368200846015090453876746317703164456521134123380147491900097923010673125751695351313312111195687543193470253240312227539970512693059339543040932296163543768703891956700956920143712203505520440219940532758879224722250431892222988142430206196442368395093451854083669244692789844691382861752907264917796177682463305405109680654157743332498514602027493022475355870888119782164902154748727148077240948454031347692473744459094141850460372032512326841812045236246882674615295223037142232504967826710817719237145781087930428536100343698965236168630897028519494076540268923527664109400617116625457436061383135561150307731313236839817142912498446414416585313673061319246092757849706578234728573381824933285560841319597006574394988795304418454485958101147093332120683573284645735325356411979266515675812903284855014293878104391880994720842174047384687608437593037760980708972815683251234812664580891688561324664453394976051751183316161213996195288269341185156630625436815787287456540679696470307170380978876665981928860500531424158240657757403960058287310890246847995662069659133424396170830072276057071202450836944572952737751928076424881148045217215417442015693623736100264411642652965552814152017688241962206683406116115067954892015679650063156921897387863825435255541537078049582564945887647889619794894393971397291960931635605297341314826595816811447053597887233236484661934737213990071674477528981176348927337944444207333839762381355310606172448158750268770324069990385271481489972372878414077368167765619186265179698892312491240127297771912766052186160567828406091751599525863470208836939881998202262911518831081790316883111468355433675294255953517692074629440435299473453080117504374443342905205700288336025428010749459131880046176377619773753125041792039474599037157977113655962797389289255123309317500060947203440461281464135064078076644704732736148768873723850203968615552768395492259770109029212741723031182965095201306662629910917204634408305468387879053447568270174599654426747197884567782131963930213358421542733907576724066008454104791761023652003970236143642857501029494639770047137321453787144771640804508294380910356839630312291608464561758843169890031138166862503275837642522464525634945815929461393896373718240434671733240699055654358764516643582345568220661565805284584069507200980531385103978527804347594547114102341318054508071287063142233714772030444841038846841783496257337350057795289145693332771184032800523202167848818521674774060639173871332326734261068742562017704675396801421888280956204239694420372084136155923567703202581901961619850983778383654230779972767633545943112435590207066071165474956803913355360178644452188323228512240391196534759085248991086086401823264993529708811161442701764111965930736766262810050620341088958074173397139439975786643607154911060721327258893159903081890215479099454792978754337845618583307824221923934635444360579678027087196044856308841278669076301230164082515636905062136051056431225220634726189638667646676630483022629243743916575960222258928715908951767905661299571667398272566754635605824350677532706294089959799477954683548692678331088166398134870591971177585442586247620672398749584725576847218353022190490993216584233119842373560059936276884725937080577826719720739622788260532790273174940071208387282639095427532361410427609713501338357906595242385174697779380182798504589634882433685204288542536732420458718028479975830453062158892154730323748337780850951205731141606300741135272259521714442509701207012263039571576186730242844034604109088570080239875727478260993976458585269982267431796072287033498455005210007334947732345671209821738391344999220314194224433940785173434894408990772430057081812175909642565675347465572125311908315241340905616795343543750745125423496871383744725448477423982464471527533881466935165430965267666717704413468184076974652615848249942195885608300993372009359583704946247535772729947424398400640016471202947008386519244361582083157949131688402631053341961428218504534208315092024383016312236742461080413084546748429226798324986796477798213775498820016182341731179322210035313265721191865845289015902896199374956981997333048324066081479385964047728056413273106548913593898635697408684106068155177246345516791828170823847847279761688232507384370717913562726151689933934602423642652736060700153851672322666825265829370996974990301370671637605833472151190093598303577437995824058012962843330838537132786281587273424634615004782944696848402187649087046113426103943383718806768125500908736200802026481512647438378654764645467466097532518544901371047355356973447991860141171699421480270382507887659820344282802610596195255758737732538930319611093098006023138534491712800236914112631881324657834271446398877222219242095994573236919614120746547734837787802674420841521804065425125451439583327233798155276229915988485407947437071408589517776877882256897195491559881546109617455250912868541979128762214982330408658857388102013064974176049330403362069502060040518356358173957124650915061365302817676783436252065524079529014090867969636208418150983526903897105340753596326159057452198892405126617099677481299868809728741363372105795519529630001046773799495308538742306591750405131322744503176221492235914567722188921812428319242946820352300854887415431821839650358864363869007951279512943303415820225053055773739332252685869573630506029504833833625917573534547173262129650756181148588319035250805130346715857315536693439863384647026616028541983515400068730806716620635943611882583882558601202777461597333889867658648900185322959806153459241814219457117891738860470794774098105579734337159221404810650162789162381221338065579630136360627996060479161744841015553653570646101792311313009794395525666920225784249143484622189442689037472590322552780194102381055840865676377759896954573248306457997824074972479946947555956481110251995397295171920847831640130998566777275657500096872510181079623580901557646911594145791471225123419971343447069616498197556627049175032549610969305821803253691412439354381116223679631478012754625878561671059954137901655536877587104063094651392350328537611977497601873584716042932408426239308771465922356899340897299229203649285458688754227837140575682382320696458809263244650284337912540092326938708783485518663329127601461962992108421660774889127089102440799755314137275758128558690643207703352568319303840735344771942391057258932196603567116303739974753377292130638423692341730486740151933497861185221434894653274857299249297704845982229827066086098067962773862163126072464672145040269124868055738244700637831352173926421832444372621311952017793181606103412645589278603667374703833212072312089090390078128130721526003267305229624228248955199687383115521309462980177377368692989630491603399204467001373033011720681157226035991257937024118380157010979303546318053167418541643278127968593022459313862192349132844929349074605370692633193470778893536418007382686378986379312783794455834349759007267811392371371061392209621075596776583033009751987512141084341366371553866933658255555293592174276239424245457560534206813577265233457057311733532254796019646419809141009240722103711921408074325888556337775103078712491995132031552646750279906710007020890707620627631859249510876993947560581626849619093293140605400675960276339248173201453354336585467736857346373691456674924435558739183067038351623355310322379293952342370278475092488748591317892742133626025202732812013660146324269189613664849130479488817563724408679099647889018995470824320747354414940595994602361055337635698096492024677785870327040413023889708164684560748388271400208359168233672692399757835319828210348573944376865916209991803065121733269776732858451426542289701859630053007667001474360931614759286492376290037094511590373968863639164885983923175248994366978091167996932825004850493337925949388853977410259610446937166554844179850307991538208871629984633950275013040889022756422217340719316991462943627115119189675093031951800375151438652960030545883263058533354485841667258817855932040329679667334869867615939250846550826991966264391116943941663834686127344028592978179713344229469947853994776500993585000456315065158860945269313683945141611171803466962037304021256294349485480177377452725500719384539286721692341568833218537184441837416914531670131777216399939632425321947081709743973404886340094552865170293736958048134629302915564532768072532007782786892782241934434379721090337018018182189690534647472899631390171815505936446983476257490677225672107917033116926344119678397723784945001668514149698110824242537132561200900964632178333110291706861757730367189804578067158995889400317581678309290809402132557652931528264392536897601593291443481448089419449123232479871034863391239590566969555799754065058708965566570469204486933553461453727878787761289018796894166145260354539968642891546469090861616829170877073814976976111565448529883521048298235405295128265868616370449141375055471939775999120862712899658911948801064845047938307879504718714405020475022057165566323193348396465643668627331166107213141023657883816174177917469298346267005117054526274977443690740558588340636644862478024667102325471400282988566973948308342367549940678989906925655728729530189239653807449290114975577431679338206884083994971006961409135067746758190475890435202887042692980681543893620087908000388705848534123109165096086254868210254985885290098477934730053953401182819882983458973390891651569288638637769505095360864393717930597934616077328417583034081243736132251780969353840530250973117005892837890052679580709531936787022193041796516668053995126641180733903842057191888208927136008117306141277501434964933395714221687914715742137591352216830540622651164396029053180322330851429973326028811829896383241020736783603307658208935800260458412174200735576687112734185442780779804218670300408609100350320006096126420938065197122907582678332116481401949982977326417616426183886960242049753923559347950616015978605327810393130611351163674101768588780605352900071356523099676017084373681673914761163502503848375319919647129932840079829319616893751932426261954803506392700037918310235322728956645189932831447178653326050840681082417460308242113113099468695860918762180324905557153193630415792453148369009095579878516674820052164142594029465425948880733421752418193481112637015798763754507057901018297680968443883217041685514445423031534658069486883305083745920377633455324185455625922737580823057748191133384960546229041364082128102424136806400262633698265310291559733642557659629243582865684968857696814996120083293668355365417092265588925038855455471885409943679428063040953374110195593196103334798588693799559190254344898958979532295401507411288242046640203172301569272849852421972750638584118190056962233390795458333894462377995925607660678038033301134578605673591778213188456157502661322175784798475568454457372799183499622683654603858209405672662698744860931676523233468665348231357322727400731291480503335112334807117585005326894052869184909818223454978771779539414925864119236750850350716034067100738386756215756769903131804256576682318893179983795017059935031738818967378993332121942353091949682363587531983933643764288581754953571175814620042677244157435339153688387132286862319712736179625650083707261340791235136183925810513211148768278521259606277470502949438752879549597380743884254462791985529950356858400258879435505621863178686611931305104701084908046922617749026583331050430286144724055660488256183760194560788625479928304526645684155637786109503969219287755485121520370077358123453841095321848333181603218309946657917688479364872728917316537435563140958350769812120789320947563324239617618402365724364547430231585803765402317606073854056075252567731774709917205807322625209334386904858641275641485186419650385018030154612398801785732546818089700479056979163044960051188051195202794337698838269639675037709945674726700329843431260530703228370421155397900181387083966378098440720537537695625319039982096950318373502178774801855855288355400701542387771443620724536381996904313738635848459972979092644228234810103995518600556832198500102767340807716231014752685909280498805440063188269063984273027313411798888868513645112089085590644749813636571321190382547998754744284225405529662623638515377438087418687839662071253724165415035111501207011010782362194723863446537063963304700414940383438446091323016528153042952102983116214169667703351527713221357926038555104626360867557715115571341526397044997151340552317284444640524011650311493717150720797273588917090974021822713027055197988138906571876224270477427819942101126509121126378678592760963384889304863051934073175730079880844679975569141958215813066845205367642279480053288066209026756488891810125276218635833231634755379258453146427807212948638615175511542891471228202580643104955885907865583522080405029269512720785304943012375167914298924067957539554154252243996134015164284310681603491554178705684571428006481157144822002744538943224835626109649712538919849601590034414506778274550468999040241890339692788259354409031332892008952448683251201632301992680667289483153898623460193075552822549032394929294851579476269949090827398459051133887937465738692093890392016274311586728060703523238776434322833616309178551896471731279165226051292979169217419218856178274239855904739326906898322220271543947587871324223584282742911672493210522812937762901279177610880967161268246978192717372326709479507155369773730461630660092621228711580298939510361332867209909499150981388911871231125676210353029415137542001531426588604789418560918005059009440009263103464073431781864881568740761456541157963997446874193918924056613552661915390483262055875041228650455117442724627658678203830972899356593932713872076771608882543379372837414295450665986382703908938919954154269709904389407451388995539059470674811197202773166656989472340009121844508634961854064373985519536669231325444472600491012511389984224194076133273036618315028441636989858186375691397450143719325627534693473886270408673719610782978219093432206005317366587497748841293451988355880650223919708623239232121507001555702231886217723429761321373719441710260721837081779509032478597901949324907041092789896664599770515385049131344303937535079642823803088635065847213468005129191239228283666813166022209706427730153305749885760881549074130071676077914378820710896399608011343442922113010540332612935833182714673740344515978023763528944987227630046764700361217139966731791779061424691808984231353402790462342590667619601559923202894731983783400557058249096407719919968446959582707787137755452149699003178451080979026942485526147437103847506528630324591756358257146754929311045347923511232595111356234736904384980569003928080913900809509823784567902311470860585266620920283370010886390160811108706167145283208997405998357356803754741349189719851584541073508026043631620144807185766173596072632492585792840540835608260849929788517357672673654880866156829399783792449378423315851711164010054368611378745651037488855437491133669720765817654939190979038860385939972854392980112931846109560444247505353901419741666915568963332333795736551162879311487981491866071798599085206952432729059544510975022174092961866257466970920655969702868364632043248542921264652577131301759836663509754929882378582189113186461272736013671972458040171220918555077370437779019545761591298307325514020216593968052445936158021559541806847103260471278674385633338156327267554384016304581076942665378301521461677398937845770872427870122613011715952917496022450866973097348201257813082753090973196132956776356970553835025327875188135835756301520734837174471903480500819814862792095385652393296213863935596075468138329969488124021623758797531715863561526737613488311012573085130380549402092456709263533858858330101635553458666830271416873812691977706028905308392808975565727427126409553418700215321770916319059672242568793677966654772789252686830441801793999016762280938145962737241234161024671327527218519713254136313402556930577854201594736662248759572442598546281799546675075474245701799002792103327989369567612378992513967670905825305627416356724544387654063336649929385703000319255641495404155852641045808539220571969192597834920438791396561399662126630077095305111942982827209356517738697107255933060763370661468233459035206716458443483055328102183690090590899098590886338948187672286454609938788223688646030919127955264143605337225109321129458895789747489036823709303957946559009186610661416310569479764258879978929838291215918860099533851500091767685534974441292794054051901837683723110210901309564287940246934929638251410582463962669325519801018251929413768617924082055504775157900298587217001339261111280147467657366060920552495173035881723317304157306805427390800750200073569034655836715159513743860530160864169533489753930650583422650926183068036812149474735764115008218695730748664807443865942555924843427566282165088728218123186018098525675466166912095037992957558388783423852466256569018874328724459595419519074730202640670310068472325684958526981458612002563310420682018507790579140001316150238505496269608012696499194764768013061841152957756432816807347437594972199748519558888905864639405479287433188742871735449613017916762111323199937387459519231131504428755483823107112577745635951420256202907808401563566400449966502153091274109308922416893395688466210950034304200806805410810809951892673100009784398705694942003457968074589055184995040291154289047794425908702756406628667682048223121893800883703399756349824167064993836957988084378676185527860226450860645370627325695112152754123400983180955833230540863826410846410662098423253475908635582002157610944521807484271490785528505515650874001134771323264414772871019304568884618936436152023458989402583939546147841047098206009848062780018107816985222591693159615784801756764955576732223507778895436118787006372346245020845203082097155545236746043972611874929730932310818763313536688132399590562032499099968566430834194008741129229519940267287023634641589924457072804132636861236166792372296919188241917491177813507970321079144083063286280065893935634288598379247616295721396729469540408782494033214581043499709928779019044555847529188166136731939718098319475223388493958635913139976803799899037443952827528653716899978723955347058447634029318108629341779090343548455374027625756026754157234369857610202776394779769597379792827915239713574258700578509699471428578270413980922310357555420820593879239662490218142354421378983814291841968797628935328664565074394426484579772582200416900106456725075098412570265763545013400501049857399229152756827770609009751573917293196425715723165933457545564225352103958055571416572693850987285548707192406708013592514923606127838971897573783524346595969201972572384382220841489217170841431158850074757000948185474807507993614328566827584525210525556795831018377073093316105117084244424273565558008608052979531203196805304250564130033579855717435826711781716472454684375207261232995515266781221381001496078173988489626953573572612716032632080482819306286184635959974875289839125336762612537099840811278722690379476748355263388852703170361662514007775059502817386599336149515443503001664483375816376926718735890558523335424876410335359007305506260496584485773516698650389906037073358868022098794794890386921972385886389491085676614653537970463071763202688778974997510633903847950123439394027188120499039934519007176317267270694373564699203290063186952288146413044717823762480641684132861443382143153247737812358343043347260025113254318028615460593983141376669441390060447462771939338439140135476670471117697733212703904473869506392218011153977634916116557054098949508689471879309196587608506872620356894467023563752739152453242578115598336116357041502824935547117792973547095015164217491058046617846923510506460641502342582196885795321954556814365591515370180837416263636149491946547768282117783557388712614679966375617656346818914759222985391000032608458044230279060620517554565748857268850908496453421119471645447494798649159773819443089971565358441224036945848375087702071208229003228715393253770658034571677904334471872293132012401971185313205213870964621182701451168413587505608282992022655842898739168223951319291548185032457907782007492760524648496254110656036699602567855392049715579002267254307422797783579963190703964949002321597586023520040046148506952836115850313150415380842026709049280831399245562942787961411019224792318929020490606356128824871596843029915395353286600793890525040441080079239083758992818688057623186489619082284403321993771020943107662317499431155850857233342309767110942732932264305790967284419195561709736511534446964531459637334343246741561054710631351378650282936375620083552423016604936545355970296060244724009513841705158699310393623608613813110075386419696136528988653002925936941005141895231827706453550188419206641368854479314275476675558681349508584342093099665638880622823244765162017930567097997643339029416777724520835062965689070810071858375424760343823386675844097754082632233695813740431807116357902543071017936718195338724508589295739408894254169708612594903844310855836082914412071224458427029670409150320040592181580934940451650164674255179895832907701376505732278484144587335289641808982284170335736961722665323248078774578073524816280619316887979488870364669507104479914618875314202015397534864068694882949719650387575271276702857702096941615634861072376030797067388682929813732417060879090190083822665976002786441904704411735201202127149791494051568721534251718917521939071674938825048241217042351240013913038948085415077432219884642427658315824257546286998118476291418049051190595939488924994142196962679537640886609864778746831742896024725181103752427055834510483097142311960522484784868831652372710315011763241401409154443717873157891802483153403545166552576778090925442731551090757374417560620548760562271874938493373503694301593235836237102210175299782261740317419197305732764897446958902744880762473920649210971053063723106457141485286149070179285743687677905558928897304027430817447412984562951402419729531499409800148840451251925582622974561534631906457178447338770122536032902299662572470991951314827150572346252189974696183921620673986867464276008631660908327301219718689503027215375621519124209805402602763868110874651388554393846726943582011260299923486882616621191992127376858120548254598483411786711900851115481334066321403364633098340332299890042856165750406763700703414301166615246447005430966736390607596572464437035472567442171229144046266527157624104238625598990694271925663557309437294291162321202065869340133594438862711620735139588699000370164540544653768198851920614072485347318673453239513927474957785134008618332962326050438216312355926402962746348016390683054232972845586961801933854209038259530883881290181855839232962138076118253818483057560072267885170300813318924392925821831196668970615598567647687615097773274031492509033288054525666329266282186368866805154693734248859824940797685700780973997809310909381689436248270984367033876412771802585059515966174167670955116838638211315360697075131025761856056422868601021986405303842231076580584538166974352350501582701801344415898404836138461868519096847339469431721637325656169655717876673309964827442910477578385157218378061588972768090410007088849291065849271423572895426040602106464102339617445299652329820358785212379675273366978281513248429256997915005612487548657760414508601427391990358505030458532478712001229716896270791989797159940536476369236228485706911887046809690561997045161119994812834253400545914274438316474770382746110942709225040220184411681516629172139263569127156231945691703175491157671739172316870138903360193190659339600187384776428142254368576112482049221253792971666677310882869886706414443814183712781910895396409475363381104087942439452874845676541154823833512708089442555233293484377145889714519920763277743299690678986264316656300854163237339595971978685890720629318801544069218980096421975493907824129765508991437487688186667598315629269022419809721557241268014048999907117396564147925145039763510456908233694257181997973324572749720864482768383809589997564335439134308890763794419459930753597777498727972703842915852140833282236641578129030512587450999684868770806577259891419785720264106460674820984300832397067887848025493234182323315945549991041927816505221326258652476391985096296054505349738646193413059643756798247051783957176635700393570990648737525771612545604588639905501916069476351343891317270192760910541893050729612451206193507761509754936795502892819057141173267704367919621954697590416824487555695096917487243021629032986915345153529779840559234634643357942215861386979088877242014673344656486066172419139268861643789819164700444288487538464110610296784151959143295715939519626444546717638596858707282436956906778077389447386324848118609771889263466679259761541823946237002473139762584172943603316299711504292981654584455158724500559825523069731131951406335128153465354392676895567374584150650606858240393348899879887291124393595051986855251577388693857180009272365013627579844717910894135649137327379803993488936846470555093899389313389877244280324336844698777799580717560285648760719933423546602826087099620020755795744969842320549812883661873021917584390409014159459254483766912320442525252273175440309737144497701707290844605291270046930575735236324592616668409849434391575952812308896439501292604832752398603407358934898859375194130468074105653648637106391715252173257417373083249368421640489815847339657153269824104206080839860418054896007962317629359327674752232420385070533192268918311424057371860539494848221932358856112806219144150266459584667318813672665520234372230162465759639146913549744202217894099893393490263309319607127914736819846193652623676238666197448641130426401452022988029794842602494473326893476256467921332877775218101548929845823580270406822962539733406472499265848024790899968577875652679018571904710528920809977026753820581237380884408323744737286331044495413386660641795011144950873391658032272964109849354410720766115568073599662827782629617687197376782183764786082116491118643647771120780537620810054323631512856309939948268546174529957746013424675294794481700904697313023516272230279037229577151724288269170991830719775257620765379677628114110782336282958634973674662896828589215713657690067010972025447260686691565298105590335985095010551833155963229438670257427605260119575075796569872790804135096863349748483976882698557033691387619618945283920626240613867778448383008487083127921589544085165983272771490317818734419387195780623288347305674380440154564216791287877032723142302850603609795065606236346824048874986348769743978349953885556844320691347657248635240042602050233158496233066388734074699291756285721251650256210931983335136896163482095762941279161017545965642675531453891467791706787293247099508000750502011612916303979095174822006776161595543681913011289416107036678288880208935149617186906678288465485691404218075510690575800765930012771257503213437984741071269260626551626284388993640128236491034606403568865754847527343870104437125138863446428908024450267852223225316223525117538781529743108763198521607563825429116566572010316485596176230186606708031786590169445389823966914436749090496862240044491589199202385448799398649893942025006203699179529949708454885651519934324598831969310619772272309864991755049220897617254093388054351297219519749205694303346802741263736861652561115921271938014054739946300483940059097143179470162048538825513147775133279855950870571287304877025039093157743622353184974069526246130202289953798791597820293956070304979764723810608602515011690872939869814445784717209106756408663439566447608378655793639151520992323568496872323164069125705840687906503616968025202441983389067301170154922590721065618938921987837777691230139433576988373585331625632288166730870165897302962107106716747407012425572276168644167666582571035243397122578474995034876715453557512149263942584094290139476651178560000491123851367436305074336238178037927307398973132958589497981851850814755117678868336824595191198287502751926982455344174756213163693200451220282791376365252945128447229596752699588893267676076546770270303743048713749825222227852227901004918651349797834343668554766420568181371265904179772116781537740916350196425780904011612062706851382591589289831804565750284348056962857434057364565131850064853329284900478483109099128901944535677596204851449055431104300800300288441651402395997453110688992076361194199803581885902012505529551147432069530207410720531753196976269609812537216749876958197399318351636989800508327296166123410811873718887326677747269634565314427783180800193057144836738553544678156388199748265080129172462360776078124126481473305458303498552824622777527880615979742445824384088289393615733213557287545276854229172943396152422433284652136186182493746234669669173875697755642185801077149190405762741141352508052061856868006231821994778054163397638783535107118268842386418582123770608969564273758550671919227367300162086342021278117314646836940724557775064180635991753251806356002687342464212667151499941936418629220417389870513389345357287898329973009083537754289082891531365735023824186760816289026543696622351882167341762872147222250542909266886972677058660916945342452612808728055881732599425984016343010499187643370414633899040937484533617496082511985397461981480121532085235148540935317014039072366233975099420540802803299820956412525792191997568493944205848517606127264581284184549347606083118198815329196741013037859566484070836119708740732723113932244056461623104284409294000596960510657113933614137741531758414097998538978850788760777133367314244620471504450937628958287429155890715269911360072907854549666248944451200875378737620244517850422989656521540549900980312930049173917951883493654460531934267117107554355703540491324126734879018541659075144377674314768339474121201538909615992084085584516615286684780566246704239492169625587272277795113559839543186691537547210354310071777910724170605193599668934677705956271158856201622727410106157838844313205938997389630349916095026236094429312349078141725979176853976893806345348132621624813622627130111180270101865187316845563473911838109208953629792745546182418132742360868372678591210317301668973934945027111773413589443310283960295576147536097159528911180011130535550810343470472455140143978264346373908892944291473784767676790724229758342158216044826239097190278443165263976327135633709419915269830069069411854388776055978259456509356290966840926480271702220278484823550734884693791158486145461530720649500114948584955348633378960161121739468911051871865026443582365713387440402597061892073197088974858351562154191332109166123283269009747840354137409003377600352126369601900327276405420591272434789423853488167442554047591342997832158981123172571057660583425739353476805176241600793763646073474001132661904918464143567276081958864317114642065000869734750254652578941061757287353433125032282724241694735491275598970150103732915876643449739874311348703029234520982014325754261490402501417112823264028453391949878763733996662932185768413797381429691268965882995033369377868326657351543303643714212338362897755146940550358214969679563867536342052652856975547400131176355758630486240293419395534942278319098761381375126724887679518965565722270772017928177921104383955270949180030502514497665852740438409447150206449608708724743376718815796531835886271454124764392885507488993672831345088949902299151792253944648601548302926694028136199021292419557418392478837594609002326238885910975827853818560063993002802648028180874418853818367226904941100564252748482844876246083574693294473877607362389488716099469233438285352992275629246319646806090237182994667470247135264825282397133890982735190268235405306660518888646521610040018716318985941821558516199198159898085479879792766830514336319503475881401715070700062783209296590805158625083980284071741763369774776596247041391433508832305209145814498196838259616946922636298653266768204940603767290288654485840926477225572456222715903653930290099172333692213976191654991914598497891111940341652949391480765028440531543125904027216604820458539223817043518420787371332283525140379589404094155942516753536942458359269899056082090817979881653712567745203155732630685068164302565482467268335972959233471171747032977007676536678177708933938059877880682373982747208964151761840228327684914892837021035641604753385452604041446469958882772308733129004660972993688385160424114093283865524768031453185241070008742584672421294917163090671330860726394155616661779750551478256362285160423997678141940899603887262812457657161946781468293183327204080835113947348844814230762330779017977508758372184220855598313899506615551279691511404178175944212864896936971223879423633292244557339314276496757042881469440208932013244133809853741340270385602540382754455456321602467436995201148354130997819675008753013865849606093051306384994488906981026060107257841749755957319187227027527562757855817502843063809339720731392315111579972669184075413786461947489269771549469055371012878590890015542132977176677869032161371757010551377964911799245533247902373964507432256006024408148278462289829518153779681114950064789534463132369481225124089309207105539480180837442174566383997192402910542218779461839326346575237309682599975430306692643489608608643894047906372724717181586061664719878377790357840108609373953516354036138233905582061520349282101738088557243231277630368976975536480708709030158072727798327845201407132200798992974666646082952729072192553615361309586938326375542047442743301206671669655465874876424942468394003153556974240242574290178953053562468179958727029716529953199566931657888426063608659652787998723203010758100947328219086190336119116093559998791834857583315883706032675248789998373778936961825617880894301198189827312642326032590761349754923818073313774629577714774621742759496371863730233148364593969065782572640198477263946563607997914941047281919071025141079077835394057726429271111246398536621259931439469295257527096230484176955867718131890625728000626338021095122205612601457204034684402711905646188587702068374390494126052654167439443956466369207614962344715270093068811323133914334881633406732633088849976884775499843108759348443490610872649354803812583758155660308262946386692284999802171867834716134866568001993395523438323418644252810696402763126574280836020148427386369603621039400214864850725145480709182372171099031784377978542238914518105501349664670807109986619789652974787649905000281892730074960352488324481744721197655621060037895476815240817809404456086662353419410339901080611578818838138544096502890837151290739879622699103937471733210464802269983088981377456794205784866535188529785169366621406282602050018634491056385262396837492306769969516529036094080964134344193914611196302206165454964568370346078101420617188987164138534461288331277473582162404144531908093203200123748789749526083289792264221157859320139315908525372632313198310013457744035505685429331899118244182676304782965308490735923268596435012238097391102405358906119725620264627981608734573092347739481577990783673004097569852378410285142738541023573396888855076744308440003017324636486838881262073748391040680480912273035176046660875255616072760253667945560518254999226828788706652879628785574223987384524277726303631249204540499182950967782058108463700222732156908956570090531885184805499651854506315721646056598718181088714390108876149321612388244716297902568012425086256925983547871739598405592244960970899733731124014768207311955562253346437199654062139392291961318907593719110803688546399576247196954690873303732503030251881469775469822641490347078578534780246282070218795755069760168673108943646628556101248937124380705079794412417072216233032145025201521216545072915056803262565819236731506183808593550241955881307828174406353062349540427166399526815268952841062906029511844151544965852593647138232868586307188274470648809782934633855000532188762233215457890563351663057810006081753029049721880661138597364395442491699000140779370127247782472224803230192271364543428385066891529490594019529868145988965915415903783309116093211053527603390073570358213405302823889775682788003934551058430156158164331032057781998865737432047703732197564552475588685281956319308842777313572247007184294598952763333136323156678989211592171104180150496574528266025921054277440458555404222327277096029926739317336368190801912841032829668877349623660243873898082432472936229495955578356352136625874264069181852243078167240439637116059484424222921091473605687448194410194199961861751663882316476014791170322499561341912717594406543363529946336136032929003593498201404219511283867041789595933096366382568299071600188262901233976846296303544992404273062334519800050576123847559530620044789750357501431403245885612653305164994460811735836756992710570721739080578856219531185757993272420961416021663220121428535289233938022127766437757561893947847923051599579881894845068289984821790921821985369108966885226870556818850246053092969145139513819303134470441288786981888948399189915110301168206996057741046663535829795470987748360670232913427231643394644399055741927756724246161646616047142972087717117516635340424753941282392779970733722098286062039970783370144071557117023609026425734281581973260041174490288659376030010377116752135192007522233787319997067414807492556531430534507435993476200746651972262977415447494527520405724677203251328111948998730318968810517042560348217686086738503681351765018148715035628299400665630608092579849544331920406653246650327485933535709673147591149868554089898759886523359576186064645579420391374697303987700901434753096833803249511525622401603965266257258883359103321617906656423315280935906559909531782458126373442707869382290059758442226455828446548977216857161404414434470703034516612971485664671246912669512532373827485344235648096167022398021895060999256551108411975986992817671036312835517291644858324442112444335333314721931463840423814663373225027012796698362071965411486924185105852540778877059192107943955277836833229083384580701101690821393856974528430844628908932157070084989979532536475047633132600034592196505183128806405123145063936562475596600894035755700386663144868500675097056529366205616486724792531238919584665442696282090576148037951010451860677567607647470886921530132858694327535993878513668410593078915157327180134854195135091018629884485746695127890604811511231924453702139966850907371022636411716740733835722863855590247908546350282753523744649197824455376173927024313358506318587284960240833232679290344556316701205327350244772453691692127561997777043332715905461690264963718367169085533196003116847734948303813108275744268311258463251566704029114822623437657529940825501519945132923777405722807283517964617389048141757299875105903735875293307723819116915879557536531081566625039804554580850803333644257433403191318145865385791253941308875009190820326022820339628602382915390295494813903525841268268189104098479274640576289313533529111480713547008518026183189726184023473051306618299572022970651638849700843691027206821607184367398182196427599439128207123319808292700252344031714803024920152448885886133119841797308264153266985890749224231335846787023003244643703506538692604895038041170515980512007839374775977136721236690474048604961668765615473534051238588994663935207577070141143652049066984699947956635786466948759243079031585833366045919866060344343662120504053591699395279058845385555701475013419956983125177899226425039183202522543383760616869908958741568700821017936310296471689751152138934099041759287832672063615727576117088396576204723253164742050200983931320817775386935333760824597901726551507884594127642774565106717338060309283002771850546364355205867023675009233288124200647509049337509337099906092157552302078987990819982972505874678694697586192569884637498588239372916629649212810988610398030095606310046099547914594647624612339137664261235485220983476969992003542250981487719129656481533970784007818258490964116453707930961366293226068665011239400061704631884863689704819138406699170053888755643945125706140924895378788825812547016215103075337251632190728480456871131590730493463529590631213204597107473970340076915674310511622476022491298289762365566058444476819179728519452453884473345587590547729922762576197114461909205048839879166137556786285596488636118020776852166876917617689909381961416351814466076010252436893011946867525248470834660117482272000468849231811256419847762994567874744314548623818948378600323232711123727296604132687653969496326220992669325975507856624430411682976009398034676074971476006694546450099290392055791155936814913163330862393507797777640278509840451232211392493535078463689714953705800535344596230471481752598488380840573631057374869698902932870016705323049012163745138719233464976276266325582357030549571410382054298645813908953387369646472791717375474114166933034222174822442112739667239873719968432371042879318928296202377319546476244588217419068281870523069614685205495184984029827091548498323520890591471334455219531800056034876461702011095800654881359848623423261996801293765408304788917178474899480568172631088727349670900269701876720132596768163431443114859957280412244576312179231908281643315240169820140904317492577325794197025395655718762610170887745969542431234131859051463267671271924250997537643702736034493270739318870293197826313088570476878862234075317213036938976030087977771218427110182713010649284068145725993389774643727754108035043028785591146403174666583354524205436168466224470000954812422849738376525650189635246091728213141172793444034386612084402086406774383593602287572258938167080211924581399527417178608457007709159480843461553527267472796208533745918640332465680177191154773234169407563246783072134765504494565782064370065428412446049389449429639006857060803355167337101914415391824512306426878120799769548516654850059548917473623561811483441228229111612664706869435555487458936210557249307835695834427253284459156255892713270746697126634406389699622536367669858795440057015173524904125654232900898794215091744592366646756488151930473618012931831613224339860446386481082986047838726994098010321737217423899559065374278827836331679988254527413430947256549261291209157444631469722472412445531400171784860451299302814431617928475730008401379127041987563230191409248425928988237273715334474840490602995023081860340905647536621575954876946988357160015264670558316465897335378852351454457514817108776524783550493903640530457376042062606136249299101324830134263286913167353697459160273897629352699644533864737476725034020153906777345685390478800201198291944479762798453565649099259533309408607610702411138671361515552657701343307869310621056330575414529609124287752608391457197921558685434272229413276072231241672407280650475559554814134541015906714265832558687714285096862784504078881930742312177001722911291229845689585995767294986948828702580851851872715526263127854706038523707663393463989158197154820212946948234096590978685224661535945485665084816419791832801606560853081289923975071395315466394131373189468581183930931002980099569855311750879487761604748275813437110762269954773340771594390235407555839835283871350910300741300454996303249075648755422860424237731129866369155916519027317688056329440573884486519682879359295143566566239451364226940744024499134896445086744629663378700167813359668899715068119064652938015611760739632760978873333651387554407972086328921731010426914065019273139084323616231270429002914975728030242700265001554301360210004503823205740840400066865823714876956106344104369130159787435346248842958724840822430908225113215922271288352570144478789067110968515501627611820722784765101020045365612196474088238416633008681147491600677707784740231559282392802940443435064959245935271633073722951577394258470023727514370857884694313356891621089651429728942302911650152442457118746885173682915135090992232345493251867200614940494730433452862865570645771607640218295006157690320224072194114044686357830238281666501300214971768052300470807607676329196276649298069695566716071458638260117480436279636387679796929695057112146935161833452922192974644053734369446143926542226030288078170157473652768300874995779717271159862923914445699265854669297376995056565003272399382052190962286598322498854528218618666643840382391298596747181107837859829628800745959332280370818271475028321040161056224769556200068100099198040618234613193083138751453180504553264539261812192065998343033116873886561988931699003550181381756198701331442098708027863795375532087085705528078792661500639046271134484025458974929619724383212290957428288957936774406999987103148002127767551152633880624126403191648535494397540903461869455997579670588906963674678786254531180532801869450330625618428458639028984438783722963401481568846203748893646622838609662230790898514012040494150256797618058127363552284823015542271802745964392233644948371332668863386410789709738926449643657398598289649263243034289365617054210626679940873224781504636729323722932534579971120220235271059778459153544778610296314652078985356557388914980109389727684568214639099617090840979225054222518188139184350235813134190534317846311503576385197338279755707905778733319061836153585511067269985335269482994160925183923630904145876513453476973336849121631354553240500055913570265648027625641749971724793374480764970156413561512875440813623780460309568990285678161286496929496330354426406408044269503829748739977629414221708125283486372474478740328730452207494760415105337447385745666981284841402446750146032061226192818582840585521904018985518114541196392159349387147984297139463848500271018280484156027517308416994556623224034129700122485063703528252654693862028482667393565608936653389766132894359629824888806057096226032413771353660306247489078440422043856910672945528861639114216294855729053506348774279178310775119906886163537714594948836864916231823517984932127874135235286948642475150097623377430085912065636060085721749510774843955893526885156104034973549032371299728543524816324157942495758438680247669464693113058227812417870336008435371803821234441085453102602791004887686608901468956718802403225613370439210255926847722397270727220184285581954634405033277441893999084050696200417764564375557229745870956247212825559021006550678962720079970591342507787042674586924247767625764356122064886803228037386828104481198836441922692692441256073872635438189924503162356257125636877780501519308574838215171087837214267598601371196096640642467055646669837222464070561054580503343458931763284799644027408958124555056159501580004354427407183630144959515323812642942572433827230172104138099895929196738435059224849013953576370056702264805154308536415102745265130984914945951199545685599516535252631666684993237985835340541391934425488355740310519594162626284086353657460808558907747721958708360294756052887706093645327375414690783164987092020072657238429001329863999301961345693878575129090476431310537337281725497568993888480013649104111585628800539863935287974258310374000936726274024446579767083214694514378755190774475426781179925923790947387863871404670839052663853690843860133967631040974528893581554464304693485719763089138597023302005820890857725178968773036175636983466699272098764990450227686758391469638281491683329673778667326762742535275966425353592448006263215280386455779388523852314248375430608170822560436231554476553284954643161622495387697560878551381882639714613655792054962273989764843169329502835882174423329407660037516260474242288113584269651410762426201847212487690169335501834278563169751485752983491659792833184283045085584290289456834941113167155206442868165144499722722974391682984751542039602636354256201571342847496468694295502040483216747153762409058853965722814450023310319746191473278762676812834354838159889830953832511811379890210151704341142293790487410388755688968654107442644305391684781209337965357062265280319470205002627953391600029010136295011163557189720895487498196868238762912075921261685984109440640552128121213623376867801647199827108576122221974597112505279849629997013413545094606887869438311840587625181160780130757609865196835318963700451745102623954907232936442761596397363054060274316724268859085299705617670977123786706368531334275972641265871195132908864569225263864087380926120150071971238637891131855707495915127356822742089270356974238106684756691834576069411979097311796819704544315184787056676230957145555609947856519062300413333928827303112398905346820093636475573649149413143692700174074555691701913396154467446316097886348115407618826939674614055816538655318259521357271381640947123909699646097670659890084376807071984247695418927219704896944654328622557325046847871546745889861394255183690073569019651595371897844703761195316674539249161673501311923016671772050033659732133577889510442907420590114499892911876228136152077456455795951223685549642769561769542557167123256173790165791016871638979685267004260485259624338033489618322966915299902509738247281066398709916814912720811413783220775521602596588061606871702065500878015744196908067731090178895869442937537537210429060352883655278788187411827483051109274384183741043385514758993827239124846423049578759979272578667025022965156741446987435565740970601332672810228234360585821079527153958266278106233081529480897564310868134181685145428494673115109623181091013627430843373625451781977608279884998678106105908458177340158646295543575827942962380251980931992809756393345609169369821844579180810173461821097975536071602402564658854656210506974229867806963732358225165702022000583477259485882937326115662299224178423054077504286138578804860786709945149194629123600252982749073611096385045838146453163247965653507210604321337985500101002460043957237480096526678846104776625354351929409442040892975092549325788485997262337796559352465642429653983811652120894897504867914001059815063925371892451284900083876003011210088074124252416560661046182136683487904889073799823507798637467370699849615027050181119805921690314093828568916450535870866387946456607155779068412352636223738155223923165353601787836209589331797045965945824586322402276271512951592607881393443503021168015349534721472825120881644174531856716973788034087617986483840665013453605231248619782810595857529079566855374410589085813004489942689811413408951766839341743648712427554918353186087297964411986665931649486779270895680098420180879214101356509199626572460910451085977554822892598023511735024676664202260407482543287807408794469418445734389773309581188336405590066293241025839203306316673256400085397181219224154997369890393194492520084616112882122455229906855474550924318382169283137154152625634908447203865055559660055764922260003930284918935366343753487119154734579606081904058296924039801899886198460547912380380898554373003552728005379617380569997741007957463318190617438941199225681988828180447272071379541056700189891386997014087877442169489181097525272831432646143182959616244605828795699768537866552776635955102162929811558290851009532588091442706901353610324806605437919797229173226071495230821800404141526573943311265785368243235393973349036243966233424187996198186004270533960184937872636406915004366108248085597708774890908698262964117738279268223137015167319477282443136311364663396935274690425996671976451940593652893074484116355098085268082095674228487149529883616912977742309533217976325169671225244496920400807390349019722580868063349701563324550513608273972615067468186653530199624193990971573164885545749447250293731969012280349669506975447648894693347948713366487366836238598979605076653340104423505626085192359403029482714220568196033412703306380016931455425861328918415654852729559808423329327156314030805255952457320555815148153989981645582657446098119683778051495966941378031057808944135988836798348194141062379940267877924985453653976647920483908267995322366287987337283595453409014430875425985431199133194646192013084654456110548679252788828141984817831630500723227343513995774994525803323559211359861639920142398882085240778314758119472597710705573081707906616146872459169958623595780169565621673641560055664521120029873450464027748119026787963241462066021882950748699014327636285051073635696758809040702273014024867591328703686964192615382840170660892625921244739108632898304576408441110919274827198664372953218345557857317759199777454279291753634717861320079607453594787035794760011188278691928257973845644738140145104673021649332585628364651759417610851010248981933102622034548486580873577061695056632239759871582099700981034308479171136147527240308847539093708306665852077191690565891022463712188933763333928003052452075669084902022306640998799274140073041687831096560247620656347117186571291594481274877761634042111234472315431490342794586811191642904033582284390391940563068005706565507462776993764292926514129614656198228556212654172036275410859859470117047285904909617959570793621202461194146164714769850224568164147012235362329232955563909352381914117426670219667867552939972098913466591327245917155538607959083185405069950230608059282857484719581813505233267991981026101034836537171215987164000286232555331300214239622301347543989726685169077469963771977925113325420949349258520793151386698446228218192141166800067819284157012884231172378849302430511714895697210500574743544627687941440760166484443323964074810827761448572307263416859906512681816029242826749678339019808469292956355237323408005755485967090125983702654376429506174806625234576852255203582586636869166607336441986199831159844464442395874664759320817131321193522225996350634840230183271362840176160428814853924134025453046817538490494470604324183122524707686093448146652636622062276878404463738652041667609750088621958608460855023990740028164316891130670521318230023812100943379773067643257106382296199621699066949236211664336485911705266597605581175878272439572765172457816264178844177271865205285966401146148803119058556351096588149235554177411595641065439482724282306644917450712057029557064299462503759696612703338345095252579485224291282987301837433235798103445139389342883707332406504546027671987045258035628767688865134973890641277198586808340336086709260616031924941095450821723662223339057418679812455513270322977778788726452171758264764817112968177244074333683009180124281884071799608755455589032526812071326133754558478870995084181419012240341142161942444042634016541325011350522211933106404897494111403011374414062109384586098949434315240607336291906859456975999571617842962860179113696235716801383542744500178126083069558082365618263237145034300363006433167930856789255108109469673991057170644037143623908022523776675468482936768787951803218865052436744773591222183838065989369074227968178240586153848303956109076135984979682026436510475244076998480437367776724347846699653183820228715202924772763195910336583199991525175749422156333006143164209633983727747794458116551800748189100773848634376527765751074118781544088044577841652210409589192864107344062272494556792575864023545347836384466969726711840507261880588353531193664846454078895814408697815004564361553246619088147640443280351554718136221373523202925333660340920756196017858107283421686697022888847593094785414113117477086276654257703580884444330985826978838122131820324339553667042791336240042285023109405890093512329457798649044899334361038702559556220079120741483048626786224161799599373939696247094828350003270385962501913832316888739469147673820138817439109399667337507132987835381070721506340136514238933587950967190173542455577319462152540801994437500810096436453313810361552807050293286304598322438101278224998544846989849990909790913733689918574862076056821828536697560464948486059098796854687555918410999596320178267458352398321583930283449615546758313911336313050263537440864615137373231956319350342794478774840890380753441930108718213204974435072954628847835376369792866663189300183729998605333105469806818203603497916323559556267893048278941025855342139751343758912570632195362770022745660552308493913215538671741172666015193256962585405967290809060459111351900927311803271626022353009183059880212204528677801794180078849825481228355598396206691251444389164833537528037645995074075853561264715606920428647599396115347366846059758029672282319603271248543604299004850859863057043390407498526886820883389108570849598798600005362350705850449771004738982498032636889888274563913803249984619201047000402683124564411793913220405671203906803363286659823987375578424829989657954444560721736877962909485158184646595120634823664391703603583486317418479167420794916684603430670030218359998239436193652594077283815186241835694497762666408527418670804680350734781009318647487851677029874624370330608788366980407037897946072733335376016572893910455654688929811182323928164943755996348739245751672667274919254243873052541124623489301938366729997511629613706673258562761666811030472252804691167547435598715444645118935335978133072171205480145544865931698070030879227641282804363296336459581827339292417272927424324206863313632946139890864927580451813578812460495760410642345785861767697442916563952284334053845203893138108541696409749821590899236946528428080793053553646964761079203106813710975726106393840636000734704773431727268981164371854570708203441818274864817928148745765480179086358870858878715794313306331549767230093590278734701977969266846025351597994151258313180289031941056942369995983637524498833339517727006241406253838308727012410505263698422220891299737703799679017362446723148060162848413942622435927879361872075295430469902000391900542798811636661388679862613031592208210915746798519131877294503962562035262645599448031243556316652338159473218165779907811180985076438917469628439762239942056408034774934020565711324117804748562661471205119486371818489537671279783840812740239849860292426800583694230343789946876755325139113949137512144406253143746011527741288647219383516960623247033964992825464329375348762466700325842719676315505030587705983663938783689305227821157393273832402536365588799615905739838353132158809775308806170380979169375420939436872064420257277162977587480449305336664761332794857403091185858152647004927266059193513135269494361445325225047528526062164670698003088474033016959937557474330472676164323316058855585207046016197353746002752638125598068186226227524439307847469229083174540843252981321158652057880393065862334945474946490745947882593010763491637500926759201653002785268818232133334417326505367818836841240131915182369266286768709022400865272643390175061052841449831282792521761234048413535870981613691961416470495201604492611062649773263702750324053737840277750540359309091347406834497007277349057554163608616955790305098101553333297766643006929805192088763620219979217418053119957474246575053258647340265556872750557289107042647149126135966805673856912931748898209248413916662512762468105464893679955151764311444612615864172878774228847135055571912196654172095294169462784178734846217997904220641264535750751290991017250168863773641088206149015994907190186629485513875996216394913153181102899072237282974109722720024980440896244294674276012761532013746902700904121418281002316380433467679847756877959549958655415570143461947208848574537014930513364854181470182930074831025594437518614188147818259854405050206323009550134106275987635544017545835525845416258567974507119315245315948435520637451872628133106179069529568583737622384134117471964887209800122056295374883285041778701670364839698049868255919356819080949466247519919472579181080322252438428887548713907875086123262499318687426867948258677802605499450162587777565320691597035864323153518405551516208287610912785467635831998866244465304481046889400104479841530448324369244477461530288027448956160104013905019936798178912063056849839014380331673532938757763296198645879154331932165817211781365272177835907508628746053853239217775697543332259851919230481148891912049805776606401357519028868503258422745187887089740341968017005244993437686213115935993855678971937958388863754631954171557330203191058683559924265526309728215872288718523022289985133616883391838336476274813859104981383926244439968868708704088885071685709760757018707438188616477437776520977693119140465841683846245066686253653469542479005308603940417853444299948659499825281279382795022436719417096686877772347414702170428630406228256293601319957389526880138025888086123997089758524548112781192414382284576505560163671157414014180293830651309084496964512066142174069899923979534376221279254301796275728194352680076411974891411070177800496659000602481229705586408288106438113652323020366610025379465682252065242989010181491200532686021205175985542610668446895903926105049439817435221727707515699347449290639926666554016663487127143125090821028541517545168544963425187467686033541472300265317168472964199826235864282374462735866632546388731861698202439120601715939380539655792325326972310375932208601228563769828120426576116870909061110301113757441505429042149683641708386176669347309747974754084976509337208129145078186284593776758894367458807384968546016963962395672636532516347202656965907772210017104349720886358971655577356501961469234840790748181735538806406998921013359657714131180755800477330743845291109651347602323519107192271926156353225852392294013251628697809747568861756242746320393542025161347294320494070468841933866317820462760158733587073612285209121278016871495520456564787150965732452543615544774370122750803152487190440150934960297184170452993819850317333300147429399135214920263480003253563781605803330493879615143083865976144688896488543233696426531748102055627427884915126449473862354772533561484345466271879814837706301141517023023174885436805959005489536200475925104633520108196236689925734279063701243390754116917461153508177447839876718729606549485529166217052211865019536397421282043848101631134981316633522203276757246585710452802964582991039509783228378475408145049382456304491900012889096754607475683528926536451024732699939754189475983266392830499545025383441597227605534780378679442028436187526127383037719333547672056674484038132167657934055146645291467292347217168800625865672487342208288367765853033265180187097218941408057954203348033980278712037234119470326071079711694135594102069443470539420367655493276110922847987998658413030891250880205425873595299292437200203521357352944751726303400243729422114687263626761707259063142895371112901683466318936610559968241911289610485255458233095832141818698399312329444176156180867090494081708390827387188687622312924222863891704921112677753423874911121205660474524437605801854398610601753595153056292318826887288088030569908161171900748671684022243553858938003553123743926127306818544159509304063319953120530937005138458044976638280549665282945375155188650966202754442916579135815946714312286031672550083754186068649450968685928142697306773228617004750031493054809646047812838333336218690391674289482093536689873320778577766706046260574748696605126631680308217147726431500210928622597805498659572367622171369607328258342027438042642248042528497366424808417632267223284031311066792292279470836407659926202958524481553394273328600901613501152584882484937941220105297009087742565569433912470848796295776126438429741811200148851384476674045903837008486633628952424093540940252796042993725022382224275273099337575192873956822349203672005597604929290771007233727566955064347360881051665132363352613534057294395247670919298143011795804162748292797817043857293890598648505990180201958554699891167186570566919679558768939282138216474247143174431674034067599075797654925541466220455831768174630228774346476428061830104120545067652570652529732514639303315391534027135570059649676434619123314849606073730778516555640344404774658074594270473426723265017842066768822747187165996979999241978449568069449589457351676408884452340527719710925021635252575141620187612043682758284916363230443214871294918392812393929942097693682353590734598859691671528045896108635260540679940468884535694075731294140097921775164256409689778721590263161234845266775293018762567214820355180209257055590034000324450682841157374915607505297206464864136947713815086251632642783838445903114868368349499344217719751465772469460571525248347205283017672887744629506876364691140940520816665135302767820831341122032835396889121392972685908537969465075007487699845793541714252774410744116331789101361952064948133813798896560122256837240750271410646368520887345479728453195874191465835530193851864437057495398176034666154028754909642803731027344550834945480655836903989619963130493371058413477409554416808207307066914343578728245978127573940475241041121694348462731177498473944866481158532534108495812367214514427087814216464878634810127632862785008209438101458598882961046590270870514785701535862502755491452627839827089823716464614726258568188234951948750588785674119925997285692063048908697205809212412123260925622186891043147346692954353178671778911667143370020356005824616735294727452413379356416486209063081753319434251140022655578304088135031561220432244926350003284689955688297171175176221986814823771670487135320280723141411675134710519221752177536075436875761590536932812354309252382940959238847167653372158035156332788276184956503115865016868781711477159803549615946072774366611337220425714719032204027570038843993621856264564130399839435537737238524364558974288312102270423726163335705275090381400622158527106156312741671245407466369277797744827512591086314699163413071803968640602530415278234590606608363112594007824934097219028228882633759319700821847968587636497645461715823156741046016270141972592341548884718645891513784437792444775281078724099721133041064474650823000725972696155540077887856522538218686885615107137089550330803789736855059324999491954333419780385900701046684430879324564476760636732313218283347847143046789266361179508161016239887862027337701021576386867249123030615868565452084892648096579800196565005043864179679576972278629026984025162593710515670196380804702448685373531625125598229407073672344490330369475821242172150460732499250523075496448807871912850234406214959968592229403613734834671654045990413770489796517796238503874323668410431285286002308076672154667520998851763928306426982788453910843873514352947199883482840444751849423135549420136503072523860467694025808351963099413014603532531133435848483733090039511419123950494179870320769418626417617317624470686451977380923299179840145058441453110157182852438323297417401756025829122623772102119196518303950143626839225932491672588623858074723101697438512313430204230405015139826350695491304610120266349667417192094323158701061119278808374877398110359635635880783162041538745110928798707092589896851338333584025211769228256239346646773275870539104944520683446283931696761023343771656613270503527454594967504078245614961342016230290982027028489076702687778215332143512747645670479444191828712792891147883469534499156525406455886602967928875880404791148719572419848514113295172550582554583777303232633074890182903415351261808006682602558955997690465769790957248792412372747521724196418922699402120963830222575370397969296351275586608559221581521314304920968057864470439356144105463767591143099611879464280746531878628165928269149582453939849468974145365238979548108698068925310144156681083906372334327400062485178531306592353360348261031641851932735871785635980847614807760539061025277917448830466806561267286097622731484550159591125193627367304028362784860622775811263513608761988601637558615753851730318510599583222914466419815252951560432376272466539991086020241922646047689950247558167024728597204075789558461135855471545163489150708554893435303188535115038123614164743171419797851088249122272445476354171342462587132543550066446074603191005418570745225690675807771724406267041049760671609767816012856385477279419648665744474180503003620139165735977645079419832554097191552556725290216247997489103051869540141666153613218627666287997064092639363451387993723154351794186824340869054201682170609150046800036707911702383702187262629325220806263835226546650820222259530674354710345123908769904853398021163038833186083103236400171361084289288502895795759674587727802866687918050480401735935380013522622844316961400699740056864524507269513325074826894753174926472902054287064369590582153289773346560414955615150035287802403857150747253818170258641158112437641844402059111050068749587611248163861853014109485039807635193720769652692310588701931248924457331220326730402948929187320178517220351351112624331921663983713760412394513865705379935938711575054695381688792511057225366615558564275557105762502120697414950350461679827773863005657065970510324248589846223698857451521567377738520649134442709135959311602927072088907684522602123937267269060409312271102301579560280995665323178271639852314585901544416298427441650055100412865265113356324486115979494578709017256026195708851475986137825752797957450577675894376077443796065394552523077671466824839315085949471692623458421794428639779743920379674024125574106386225142443168330473626535948701889999362807711570329173125712355758554223175737101873355287068089794390392358123201712508187393938223625146693125780723579928238748484853742203349139171578608583781647444707189420612875709248464921740982392376488144899421109108614111233458011272183206767385273212471472552817176434592835411278962857207952941504903761292934002817340834849467384054183810025418704663803006094310749468758536642313412621635689597339941516893633146626866034542543541081116823131256486771559861235216135682584860637913803107167120807581892340240036205920472573739360990087801937827045421099188340869459555124768510671110526137473456263100712019962980310533857357050019832379420691381438813392435438663361479212063723194692931881853722561560867040546193044402751560722274677266613036410282947002185501572821820315970027656783664454282494088672017888093122632228961925791148817825590252405150412872854262718981060678097919841455010387572209716335873550820986076505703199054594328462987514192571097414669104560906547618010205104297672551243413361817135671336579612490941872426274592523137229516437087015978449910879309606479782056799788723582234195472806405827590531213375388406421105409806175899961238777964184896579303751531747333806951867106909463263324108490157643585437509135432287999282870306582619365871996358106750082764373882371038641412687895740050960807341035261982872313531633190067694504130231812096834387741601369755359083412514139579589361561522057775513995274282702157557072968392027242054639002227569250214098349399989605940369047539662679875231551296126308452981027771669802776841655460148620333726687013338608822063596793241730485245500004244729464856709236308564326051899327666548260106009296641754208925276594793568217566775772695903116504527688496557758503932405256357034416002996009769495580910222039783401148138280113001286487949095098617459320457938073998407871732076313362831348759359679913483607674753067850715091424370349354342401867048125428067125808553479314408432244662440522114579014666531136170437191838350569702544091815532204288101268940125081782561169298334326537721964747876101729387513431734792815718907322981111284442725839034831977342542891214496759639593709283620070912611541765577156701245325186294044757774525610300538253234852834126206367956053156902202950521281918172778950325516299692059557763503437102412928345738665176216479513968404362991246230565125634413558249222486645029849387437469645397958148789634174176209345688067440176639084843839324666869523001775222160773769807726179641418329940578735029906653319611978079802877873305784366932200468919871428152722848505360391424045540958988852834542284826795002607278447292503132258414415633820179325547935448653962632130182619859298569921424317696983624767921039758528873918018070316817796251105074815600784904656286722023850119677748160606327314131757505527471607286133802964006583781294096784712909954901708000632705849021902085247209519523254279365618098293267123648548852801289659172683714231918774831547499180141363335183100671622673839569873899915404944317804920050118974781886216808470934603233113067283840120053235854753422339367484834409076658968271382112855371236350140665381721307165567411690992127310635136171880985994989922249612430143576914118723310459166576626316754845041022465331064024661977126997116586240622637916783734309612261963153808840010121931327158722325860873916434828801755930102137106903159077095993629438472265335972773118258310483573434840142510417875958926626543675010840307496948343476061710804863910495983308562490664512663349613220155673862290475963901938316223040487024959902181852375236640089637083835292640865093876374283439853392342829300706398874816258337404051950402355207192464137780143804614574578676055163910341393149393440599483547752914176542642790198272631897374548570394465555855758260800331482862959005420313106365892839655609010066140191796467403757423155545430062240860948016349315719162976086683174867471437750290318534997627855438544886428437688775353198873592917261762767443344025680458308269906182415801319803334197652923829499607648042814970418237037653308926777388830706512415681953577641003368015345909835671768332184599362578612576272123839871995608731948668291840722296319255096446735332139973829737791519134946711888840157335170828948186540409556947159975076314329015892906351110939111336743748892385276808453666428825384093926984235260362276283723344341785919358745020951360085968585559358675135815808648928132508371725882482694314231397672632353961188414946412309862220177824213493397848795677439451028665763573141731212998207991938031104453880892400753018743166124744140830996386217701746051308524249889087005913539178095091267814892392803789941268025883129517715316905970944737807982582254584456203399917911856303410022777011145945563098363343743113322040891027942748166162108023100579904549949035957511561147274059545541412765969557025385330911584088158280097905153513412638186385573157373072106372298235863326285213522487577379578926794260965379759989966687198524344088372621724393137004867473180455931444394329605352706105075878849944954674253316736995740894067904537028614846938373745509383012325810247838074238051804602923999762440614079278243147550544254445040921174555069290614015891194887088233196042332408774018562041784864559972023884584649611484246358681599352998214927427753843633224374264111793403666059738405143000403289245647970679341593379133928647404630641792648070739284957970953842443934608436634673494024909823337729698928794203218510077001668265135434952899401192869991012096585096410031951998537769826780231816248766412069157542631805610734954590159335665641354437091769862263894762704992569040900438167156979713273543304424207372776133436323183136871845704103553629384249661361883835204476925642540330941354121083652304714069583564867497572094004322850380685774381951372604534957518330375494980373886650223400307039040073311968817870697609469619880927126177880286447576891768213494085449057673374236080685760462424758995743955282912436242173128529973493903760781779558211466705844676711666554658131644774664000054229368299013044935906697433940583584489644844265239515676061597085742827065127690339126411589629110195470033716583039176142637625778804397941151535651859745274364551731747900696135402863158083989966003590863605584779078109071694429865282503271716369706705880193599662182555704383448020364821479741840733895765908855437709483670276329643811485443340027272769691370046377211219435840684748998564022783569600102379572609535143081420969722116270174665383486286515930977650107915826413318119797715742413393773820919602188270047393008031311525842951374584676677457040325997248324526730122246247376263589539270294278103473268477512925391471275962529507162516706457909185681627181177687058069277888565972990871881424162516436681632802719330744882416936371669858120007155395036134676340591285900738397043547372788044115575799242514895452440301630885444472864023465133464761120065836701377371232043516210228487249101401416929871109420926460824048216311523454115452024090177611428255539461423764269554900527465283896651073761344871763669847586629059661243641890858471380186195966457186940748164512298991882500330732535413926902253182052816838396712516833967210664408380991024229893971243942884318767459925568815754937300862379087547466443288297565401302409605524937050969652542078764423915616038646326288057475302489802887210982033826737966714602991386092277271110294076395510183748054229259314568875292644613114804304430253014417477254866830891198834847820025867736082522479927247975182639935800199754970958755493155593933705348810048644527749952413540065932690153968514060206797962847644477556702807595647880193579576351921515011096555101184102881457512449992507328607816142894848467643219477359148100256756939153213017884278309461404697862003584530201998855177266498019038234308015606772792849331792483095631852934425813006439280645367948347608294884671237413640951200776964350975711350638444692288317389929167806908922186052663479540271851648043781822179138592847326723127265414524964413009827093757109261749411449028995467243752113281425731229108545070236380189580261682386773677849273750639083309363558711875969035244837018482297992816816408583011532413046988213422520578532869440459514903559069731745929870041032577831325087285718058308841552560462161626573159051310916116126385033753406139663544037548902820181173231445691794305335678423703230677684562512476539304753686248987332051176808423620133031516198125741248401123027576809895958085487593507067386923000816981399421343594505490608021080603701013380688504957985480655138727363922882590296986308031480510325321767022247732132754080590790433103916952881660658403661975828987872054221583369194865407582218467975205016316505459257301382870716153263126432032872682901618871395077472569589039192330836349036703425514045482213494478912902295295810304977271773314684961985325039756989835468393597792544408147285150497478995196926257082764356698744466042609069911438011673124992821347101376847782976994839263497576047491996743175556325425364814070376792817852969968351494488977048303778433435142529192876775169385535419497781660424560831359160429862266485074915975298142550533957628897703873296492515733960227092855595637371792816088415675270521254190903338942804069177935305137093488102835209938023704032264644484884393049730218222651120492337503083095674657885628892063795879119581838347677833204430518793162828985421426556501534226156897540416196420618293159249964023381693928310391981227828979168743547978054950594118099878056573600682581664204420888199288051038584738937117924279527123988264901409050584372960726195513385700698178981800539502612256600555827840088387897765623725604986975631149210576809370489526989893011242631305123270267928189820531578651759661627668347467026301083343106670871119494148153140808048565431515619884065435232284874227904723062374198040896809882162164151591337859043079231069774797963195135272779955648647033611750187965770001314229358838162729228400710372045883480894297671699677913457913845214764564349223894697362075016184170780219602837905578971627102732310463132490944477388683105202928369884750703037003104719107054736430338691711110740783421218242710439005567446140831663564365058748941667053773321500021113159227633993201925117746394634781374538384627691197772839331861594339099575511515033625213232670844841116473861716818752864127379949922384505311057671115314867676655183814345401469805196371977038904462988711912726758834559011657289009329436633610066538766946032742857523329456924504692290139792381971286754649149961298505844349746357626673903998866452305314671182870403684836207759366712459016208800163500236590665966187996124913898235674167937715743493215300923020602793216604689268885555376344776644424994044195918987727663436158973563883367871218500712275341582449767222619343051120536602867877533629763330729950245906112852869134857138755542949273021553685622470443046851374742982456838805029605858869088742192967827533899224111979161779426128028871004724475547722153004793411768391312655594726002707553638395610688387534729003870428935713523300123232944762426687065230102171645310828828962050772993540677856017552403957262453816102560937726427012763789591662725730308981969570660499631443200678294685994679047022951823449105797159041842050158732329949499598738398762183848431591693129691911820289965753493080005695751904506401264499423679673810217809277839239425758968069494982070474459529390584935046139285623636368677446827885488502750127952918476552983090388136652689308099425238083012724692574368636530956454821983066004314298144328059601137697128714399447636941295747222692468473736815371509042036922372329267203944332436383833254210140277433128194701317410567689075996822191150984231138456878639605329084912578380415584758199330176476492204144570634478779906716871307072903142945609912867093299800334329052860520817729766117481272463416604797205533437697091892176140172775949781666030431536451210937966843256721327437410803542631982171575460208018416448872157153843896319312252684405191106796466050336948517350513307990012105598193441963801429496867564601863844462134074359021081487346809077882601148722517926515868082472054730422356455966110349587735602952828150286005072136689780393649930022107076883109735056713955696384843877682163105806930898806698148593621463682757060331155862438627346669122698447016750851298795871633828272356647216634035649575482622257633104291759425605039552996802212945183507836530098037865259217444426537507099632852122862426559429621279314433208093123096710295541952110449993255377758014463996171401872853708185754022072270121910062214958529478478450933625701493949795555327110894358673690856751286091774835172767093834846381992741265342559972409699325035565914009744637675780042521616003606413597583755172368001135212559744685406000959821026250442198228725089971112814964226746763767032329105007307793733249087698558135244986733188822304389958958353150281496925748779959631299177063033196355288779579143590183151655377756031431218120357561845305358799217861830709951198177236596091332735165376536938445363270466184620023479026055793229259960935577227358933728984138107330905155716959257969646473770304806761807537700449705316275964520429907197002267931020090994973613945862783622333356099320803852750139062247566899952892554192887656528012157639329731644641371087384620686667833497179592747993583489307561746297732116892806791328619671498657805570095038268179338222493686342089875655820176087171499652277709278973198468679794629679568131126580349234024053598725956228050317570088985610328320511549976412503140770173813510029608992494841481560319153305142252169205013368008836941072609322464580108795696465902639276048483435404324020762605438200575685132421769290468172174837239199785521816144635879917764630773107556296108318056539524705320049361692591534867171288915725198366837645872706278874874278249769467425555410154646968636423128113662300758392380954773444653486341320118850480522042585813545297189177778294979235259804728483266650728964789867219364121281897767492927130251919960678219125733781789844554223182212863698269465369640105518181907388987989743619220008414292513086119250722476032351507684499868419313886349226039215655703672413662554710022871170513471899800833420176132699119764482564669682905053766784539048423435509913796236307228856078202788767330465701946123729969040131173847789664379998550928559778696720839948227104462636126869481781663248460109223202119427123549719941168293417836300919252757830876406527834964142238611543085581660536331928339413163577869917726896110344135697873936429234933586392390487273615947767253794812781045733934954059957600238593704500797927552002727540166689076426124161751191982876080222161354246235332582688617820468638416620268267435210683154780776178311243238570468597115361220751291768580842631117864570784513101720885219358437078461570068727510272113652976445880366099589826325297750262643933927910309697889270247860536980149963557726377728999802173277954434040942580945224300492146486752414258689593754310878764553996306099116215542226948867927367707773549850551562280525635693907850324722405176100379870068082774899762978691020599732691412657281100907783317755488359961832759323388362363060165118400429858888220996251602681228525151644683624403984523762807549618574945916449303761858160338226779599925138308414499320386432632220500284979308286529171739405369017799821245784692149686923745864102061033139258571516388976740036303478499222648392653597742379472959517451758216075269875058716477023759547556469165252143048945757663415187664753386809765880071439701918949180009399038684302239328867927078071902829367034792381535383747537679190432671649786941409689372000366214885114930191107948255946822054888697625916930441721607511134534989455756546570500945801899099276880693384202342603061703846056128152041124195284556531761023269742381402987160946953708380887558665182432625640713838034608067264759810373486987049132420276525973420835358132061117831290989862217041917771182884721716931346736576863498066390901093703109065891077022668600167941277182822174140115020500754486892308763739852944738999801396727525018155100580940266809273395979905019761049358576720851161202242450413711585220801464184964855101615040931457495331527779778655990425342292751232547410914667924706381381819662164893321730638987909572799199427014467637197686777713634326905492964086528573429696322233936100855515595450495952530358996300272577814503814102856130250738489362770205031040505711557145841346681819490556225185134887510463518950122860289171420264450033791406401823041982428573697553835574123666136428726765270638767962117887633709792688077838573718555999951742086645053712897543971369980957986523198705286775930323149728271352574557577529230201826151346721157573837232708250904713549931907312995832989312820208468867942391014351877292882893027624014419695470460702672035132467505036347476702726518428317649724725954182464716921950943746985816601848537765352364317772665912032957741121458991255764680162793034435453011727174096948347267539724623483808597843259861172543436321189985912268643148057553737064997706279356420664834753127465716649071341886629542884378320577429705792362671655038334079451676721460314110319991780944795603412947430169562316820229267280565172974189432358258353057677753702383774122516050676384353674378662430845871701018554588121747904894341273189557580436946543902886570122171633089483606638628817212373406932154802797103335544702592532948070559061962735169809428316673272105027557121668100747562922966791886703701278374107218226872224941959939717534437119517051508768363225383262446623961311432417235080577571365564367072837314097268414330102770898559166116825179732456762432407557740623170202121206142055259594114898175109430969841445826624085557963994032887949142186474728365170137470551339742060818274536015393776948990089581051260565577621064746368856369627308731985284974267244678058256304444786673441720884534453127702717578125003193621979945733555164246860787685132574921116018832952741478824824586834746641019659076831895558144256418184117098240307216129175995561362361092635171782876552116347218271397893295446682270871526475120364220507790478112048794644347737327866043932419197963510974036667028573710982508960076740823695904116841146723070936960264343250425958567007095464813582841570226511329259189199951833061519165916037425664419188857620810421241339283411746803859938993630170517405790386804862426174389486251714375189748066840580493721653127156909197832785325478503425494088199532500392228390685015004928332118525594741871293131017086557802217049153427971970573553974950147305204657606888301363413557428631268701636485287560642669798606532418579465052521443489318823375995349082300254258443272654093376012141373406721381247645643329008089887608938711391711146427293570576355400558055988157095842811855972728923030836849328890658011032689769535158771035480571018905613780646920569468134735515090065468624262557889152834779218126508108852417912520839461729433780503477569541584733265360359856341457333173460732071194446961463890278101256655059465111233118508840696620339413401476362409333502945720521690447859612975493029598461153586593128841232515789074649107747527652714071680371634055466808849916725662208282885357060643045355370512293070379310877928140726147725204646377233950141248381498549703981238902220502274861315091931592060185431352805492885829434174264971664009052180066316926964889298100735497122505500489987335773483768443411211791378369028916162285524160746971852638176392562521589121039842672991023645630648002648506400369566012475116044760099679419652095834062353326670430084094443350534734486219053405957824928284150304972118701598595877370735055231969889094413890911547087830751576041297166914014570871032048414425445138760998269198034293648227467301878266626535922502098951219098370365432839780733278926360907845880044237621752789762818344768402798964819048917317211579072906872224241628440874503655272275997281994154189985965918706194137995506719501940887619037246398751386815210767766109404092669142086486103143242283388462504397980292842675462007717506807902018596764700386883760642378982588275100550720145631332884140172251882817091145457975506399861697271057101905156044645617010300095114672113854677769803748182699773589350480364213487834328601899206893598511370063436219249208049202638964764946388120632802389808686095460914036494084545804876659342679577093859292994584234836407910853688821424665350338204753710265921681095757520833220255619020418828053798245413763400823380406644245421245779068514040960821018999330819189551876183109843437172806775135356783227065717368255238769735846102632838394998526999830256349839557780226305094340001668989356928901815041718744321489053907177998392299654354362427870781532289163537349456995545083136405194637708847805837438660496516330044434769506909612671342287613650600904561697056790566045663469463787498840719430890458397229414665321475728801684341768662228616326664164636569525870615074941805938071415612514169191317865999812765168484685136508586642982732394544207929694212586671366532504025718019908289329333399400688954360795775085130806470878492972568753646934544705080920160017012007977340453235861498749430304898420298817283862707639883858063649238227423010602871025902527419070676108344096400872518376529605945139489680084452999560954199406195448521988992365015479347680990192537960888144682651536277380051564410291040608653820570959230563422597482388318110022560838822185789985158757863339411064829104450979771306796900063748013482462770485301808107622882306157807525173007414624089957395841640866445650567871681561567062330153147537829519005350174945372097099054661471671161765691708817325869091352509080907330289395120499483213579630135376822186208429943937310786636494984083175699411678764451981758059671097738314345740144999352476158185368262595412382576636348216615014379852214133757825942166692021936454082782565999949823941511732974751907122715278644382462076424754714327603029624415635655435305002883186180717348917198985487131766241118598633773826882561923180946164486500493755492827682620200908214816381362208264679044552970532712594092014836824041618768048274200435604076502611838386268058324595935754778497707652445011926967258505359208849549927559675280341384455328065522684669130686864319186382752161661695116303079543085323749831383505838780542029553264319004232950856520234053083543105125910896860411311600969372458784439950837600619246747233652878638751149233929319458696009362990424997365327887555670953752776885371485820790775640831994133253506672335193785295302441657700755044678856150897291681289497679281946707011572572754803999198962803403163575648470164981106192931825007605719827220253063270321387631338794560375747221930085714318608867580788844018321247685544564324047606860055375655604993198634519438701144219611706785169017419378456252339285436927127881088746781955442883404484760127360408454781273119658583063007039529323711319585672302567789057594913835823552119515681451548683296601701090032710637797201592750267426680424144079414188648878858306882792920383042776185876999524253650691405325421107572533017416155864255391800670051385400650012722943093149342824450112388425344196656758577183065230392965612900168134774983201699028685360780799229327838655329327438396891542923382504975895751310783796245150966892970310845571775406332041761000702747613071149244760528924585291391726947989457468394434724811047381212053882067716059180945764731638969949197926629219035208121964813373328436608140446741890735449586929003469736418664946728911924990163159170370276725921986236965892150557735691396308258635605805738394622587077027456808810470174143076356389478841819486393840094342435371427707064079826476199940839485912589841060556012129445843840533336083576213889188741852824995153391391199980386406418276825551135566232709010333308419381300004085384619633581827245784907213303342509625762634356615040943511250355063845124545891211954946723609605424527563632830574907309886029100400415301287497160804574616123746683718112505927273251452245464031249192368022361914336151756155201506717738519732835433770995090431280425536232577937007507358512042177017255714374448422004821233833507681326622875862160477613631159600491385233827711592203886942700176736163193155572003383109379033303134494281652881898916235195270185268354025126343976871316056090771608178911357437582616878601582178072121941168683445941045287728686678965405493019740811557234733667698549460508710926419139382476575498497692974006414910346707153872644380556229953825505853004142875177152921933118992358604381146656094982728087867180621133202693576964806568816718251496142319707520343860247674606270235966655756257831015378731355525556845390608431314663793540464940407938425876452361116427517045204571817375713906588708029512934163113790751103391240462986743366922770938083515760252713843033635333340996359865638814242183439008050920555699563980717180265253913471894177422712189798058837233895406981678967581861609423221827613369966662064242787560875721574122054921071875052658109894283995311953230936472218849500049408808503792438523278556872001776824865034851639990067439730658505010141752462259672668305400738769036512332952786002577436134205599627860958248294924978589933345833777660338431152873843594902758032277120166183877913017116477308447352705921018365506382752653019461252760380982204859915376187070062512451843257584980910713498320171573266188792791488968146280091468595291699939345875331052202041893090308383280363946360231537935337893058651171549180310893188652384133116527030239095904169979396257909043794725091717480943982104860029568361836018722156868207959186091103040191154352299172176222423545579098096555590865362310303961421455117428568703966982352311811036851351915078672090384115481820094354917776089588019686346391005933116955584233450138062708100203372706227402832089939257094709756298999076372260849962844629864611780199162903428473945181153692987945515978807846489135337528644785285472298179615066629705471570805178840784596030714666765579649941382391938004991152575657764516748232767179109347405559791993714408438989761749357288930989690393203665719219119235148537121749332504913389074409773280819056573716785931259713079014571820577297006954937024193008649807541856609014641574654692268710445741124184416169203067591799045443339813795483211633557950464998860002972030961624659189644548934590149558301707867986555877222062735526493490411391649609944005015016145907330747841794700009262166886057597451109296238683316929371737419138147175336652686210663566753743686065793234801301679941414594218399036904505956745745426681093055684146812934341429699115740066291681298533882783836068460869998452448277178947031125226034684503131944274752551710280731923653918520475106989241896741229092249181556929665698784394243310253080971557570155413974179913497681179400655555471336099412565729937246405067475622769916317994385462498058064757664532190352120816749338435646543293839270770324187198540163975541121842920340091491077351501907460583513449264618214040882746725859340192023298543669548969444666627513423363143397218712017482097526862930986639498757426719298983227185386556300675512786792335981629843912120669454977783269451008082309352300843529281615981766750535815373535720812651048585413957704466634367194770464677760001825776503512516240227650759251221572781973126964809701620159923288236058706104194894939412510977990395999969456923404284885189493017562170346923504886967992799326560056020336725054037657196878557675183064216387947769827416917685807866070922197669352205256930497094922060262092397220276347058368070639273799113163300221348050975243521938793335744038702594730610851305451334510168996135826640218037177331173434457732692585908740240147236059495967324281649599127136636487520752079820811829462634481943421498986207088423336285005607418410906117275360400334396631550820497299658299475432721193218596160428025693947229021856094520069771809138278468966500091704253372657176450488629049566673332719187092281599489023421929275654700975323739068525413988131384236073764083152702381029142192651120574821546748636599862434330748326414919507787111339916734148163106548530793611550378738157140548201783299614891940241724878148913822188998610906756508922552900399469943091770187584720598670659687059215170160018353946456442452963290343921178573543874097631470676242348997158511850369824194972402828391464627349781845025814634806939066306354054985604750083155147618375478268682794800052605259126792558673426482374085386801024031772077567372469065749978325704864360422135155451223744164659770604631878606435638780804051637013295701027326380550702192765895313626461087231734900785139520925679039014932370648013477906389287259653907544734179583164802890968886239302403187497838474262345283449976537801091352250075883899801225829768151344482613468846297486800042703971220354740650142675581752849519837534405277117053711050936060437366751453275517311418834944993480727310725309786684140863879165665918379416754386225060818158542372021204157053104232136543281145656224957200239179727340263473964221701985751274957321431730885387694968072005220605812370552116314004186986416374341996312109552230457270369092794257736183016008549220873088717389878524756513822075172929989649192687112658396149577104901392609243623424074412434534642316560847703200331006819980189690228509203859600702180553258585407285452052840876207347622425575152992575846013063305818168751049127212781920040440069898264379009745474273964594878225763412282159078567589379890269923814719128989521305308853974893250731934373533846545544858570281152375350830772631989508590506689273194119422036784649381577998071065296210585030312309827304002992725118576221075546788236085213705687520898700678371573119563058359892055206703300097416436135913332219325361533376012433592844954041700717595840522963419876508485728430642644728573841637271562093012331361971454763754984343977693894737148446079227526190224797140159261862523636606462149300156374395096252221444200918190762655535724983137594146594650525929855482032625864673764784561420437770623503210649252327327256582816930579648768640697547048495037964084011759008049154543748627502013318794277888441870527712369351359873379378536879436756608163883201528066870487191705918697267025513047705318879838338186301571430001099323618156401415678469965336129498365153894427118559979883930048290535299319018791524653120482884935181840204473931124238917963299100617535963211272657066749879374049944546625484581153866576871581307555744713500847604057516276409788616663467936779720621758048911821635721929856547786738430582223006736219360983286562703133819642382963518753795529845117259050089518790907369010065386441777821977769842044807547920447652757812240093752195170875379326226928783790472496535650184707576335018564559906402558710919224298736312271948226587192555080398898645736507476496715932774327375837338086646142426014897661577551848521908454409944321106949815193779211676772726883011631742642437248369676397967922712216332283316413731748577276291715902841075386195166099235466169982515069632371880759132539382960329206828941044736469787428178260834359672322613071389709711183630232659714189853611173824493538816762096763826151561908637886775882854347314850202188563263184345438379529804450330801046296026402582451188836226716911765047284237178727490161963520369130323155646153640403958451217769146528047698406762754001192181313704003263929641920173177641913468368550580607575804774039436279564683661740036946088334682576603864909933489869209575929425349482256044895736174273861568842198514430578972635833444741912144966281727196445503123292520192850919936627381380680960371286673813600387386863463548926524517566402258861117418954165560315301687457296201091343166798690671802587757352325138461600951907764367730218940198775440196850418875736439012691627273168762382147530457638124313466864870276387999173441817179270324119622301111485263652829618764989277991180556637618424758617236975200657297783508335623120600307767877735491884745956551814420002817242131209474024387033692008033127107953983091058703381872029963450746265710531566996427803112214129364127092169071052908746470635796106411907962405777963018277289468371966704785825523990275036096026256605894167577897434385340203882626239939590052311965134401991024099970646251369029097313550905341330109446707876877871167627572039908511210653948614863430483252303515498512997793465890809047590446782103010414822573884353002772251540165012644925396947687813149870377443809678570700809328281946145590067557282143682576111024306769611487287292277087118276672695486032012337115635527296451725237953892367169506773980296152996164886916460824809284813514609726363763741999019565941097074966766429520525758278494376393284883998292327472609873762851340422342797054394506202027156364971822603279143562481317790763508679783850207476477853873492143620042354944975590929232288264183802667131735602349117872134284669066716807809656437273505836230032231195159831199236231927355764163976185711973500731802309340727509166198424467680867202792347632740142295667446961974866665244066382267415204852348727488957060962667224728076705977729051668346227969765498020577329677315508241578607821787445047862885942647926957333383396420041292617846742608972065649555991823311921765069932968533469334158810084315081883336355783819613415742099160928425512987519274961544945470451354343608462194756500611576309549135346969845084574963546651243747530525407222372001567254704998513827156335185729455473330797021667813192384096738178904633301965978160933704379786258458465481435727893842720238948683100630597385793006669295942378895177973427229814751447883195300592449453743369954735690859341223207702655532057902629276097057579113729388823650591473351796309003761565394099624679250449031668856317441372099355627881757211548540579400243327147097180441846491441140904920355345394101001584245153220369746578962622878515705551417183719697349935257206032793593919150838080063956240154839598311714445884716334032186339212071130533211547440707430334868772859229410713798476587830634625532033582129952208988061503084810184256360367885698355146219694340253181007690673020061282881078450037053147665243177224385264976542896288349796527267474812690247850280910890989440869928649613244812523037452041286290961505299161780570406531881417626609142144856593788732246757479994343343671237243833053377023766642764828204159790294396705779662992666602504397755736902627506692234110531090084568596622916561835015366246947532305318920854470321671993857599157672612971940284139304458577974470626685049046151811466179497931873104521320845544162700950649104673131850623417714188957498716401733529334690970200449943260484396690874327131216914101025453843205681029347438709638667445534125631757587465035201517124555147947014821046993344426934773127977446105322460751069683354219760765743279659058270859221934951963317635293452973196146557044394207336835302618092896827262723211792440689722824914269577582253043369330454083693539749869244055394778097990364926134451905621026391613201462485403455144352891757038653062617998177536495240778524239177404968308353627659799902904985884350927668619984402145435972253978244229147657944763761995174165494490966820358642981619970560575642787431940625975742199775869316481820045100066728371633397620352919509117843871961006338235421562052713561078477292070342416200409852415754435263018275096335451150968437256151147090699493935006117978016243315458210668945032136152568485025483760453533127274874178995417259864028046869179892380497106158902427736857307848827027153775217338650582138844985961532026327242565669422607526770089051416063588670688607927092642725201771649907271517219539983849120812909035862880189626841257717736412237118753286044210691631613608669225333560782187010453251581065751505281112354956410475640023768271824853509039358030296401051689013106676026789077989071368649493806847604043551796884843648418439219097723618859904064351384602732083273262163457181933676280646535256616224021497043543509526078714274439980834406628322356934415526811722799331603635294183581266867721476735383644758959977601358308287401164634421867537322966026383955417538479805955255249598163872084658491167504176189918863562978860464535398633925145011720338915809905324486749675993339151907652385703406173587559354573495971498626510134152346155287332362833129977129851517715373553279430329925970549491753998303082261694709926866537926892015267468735266909399263657689933655442702609633263461419239373786742223750930323528765927713600136808869071420472897375454977619800385146319885946672175130350773434494319055363924339370477910020303148985516801762621766388046814147026104364761401723323094981920478752433818434395422090235988107954943138223068986707262562965928414937536493876051860470975448185101992816130567203075215626124407504424718237430447778289858648551009844968566274032221424224879260328969890308157751371219604494103418511560431337138823347866433718872683601943240155091872650572976829316640574712195315028824504126899400175006046446717255861091412207089057458074782578496977302264106282172270211062671664324648952823399346544594169941621521933335998258595903493675189397908596712148961385652062846889904583565088125528857281746721035771789456312943980020486139358006072258367652290765203589332847445931222728334415438585287374428747126538928892673393967912631546700513461426130530415417129751615216404136497295870042982973523288000046799440973449878317936408181812147496553025522639646108582430158646096540642848859574773039041898904323797917545343904419987323209912229757980831881231612199026901161120370981899878226524749292663935018355665924739691090140962429798005516992042724786648155299708107557188474916077165544177222187514186056318125046950557955352176052855666056311833367928546730509625242195393954076049510642658402903853868882790651551161498497377990164539537430341716754704837249534123452521150608276825194999650294949393615206451983840730528454147628296540558674652650342768014917171078623216936369796414963750470990716580259283201050484124887291843108460291433308562356392805705783127567007589742428656092252429297505470425886873769533792068471527597116151510440183156158669993945229681223063103325925535555504937195983881804703211842536024505510948796653224592382871379371276672375816676036108779402784486536336347419700262719283680811710611731173131334901454552434556964664109438414380980149677329601627578248212931330209406149232062859299811977357089026315322229302276445632535717948224298219891268103246056499624064794833531638038934230478148750136575947023986309767460911722647151901879705891161859687817503916950711977020916753972699640452508653568584891365824728776365261322241355334476370125624388663644774705017722198981953049623841691571187310722428931261025295552760054491032382637263293476743374012199198421840196683980525052803344689022483144048850705014859392346414558644313775205678592120544167443729200294372730078485000294515636527933672714250765515671362840031710484876353345424296699926406745474148487628175949257635960245115504348805395455030295735245938349870565607686879276683352099525385713041827412673412098838635637761233956970014819504000103038678921309649805746028469846582056014544657392967572717398039094745540359934306338706892847510918194606655166891281039771601743673574107790238171836206486602277798978238322332626977830719475790451083878166546435926930842161420771227723561633755390643424362855169563670716392387065802968678424140847627320658884411164687924716700992378226368779305786551893920310601358163948502453766489617596216494317726846357398860913078896281437177419395143167035909384192411965894429219863816394486169082490273717799840285359681989160963440585422937757271648503196319784662384814424304948231118149866820538765859313658838173234980470945219331767306575488048588981293572950890637000984767508654557229833676891653199497578479032042982485187334166417991182740262070223803944384145108641121814919331798095961465834403754713891249353268130070540320831997890252082599012493131139958805558630145552084327131272654047796829254859439019916815867128813062545727868036731302630501012983017146623919906369195263000522467863743811178236683483574899959174642217923811115783961366305922058156620940424483670555860462395253364736368932716538656830474857922837731006408448494611302252474539193148991637350569210230605605234067517862683633787596480499843035545571810971026340568860556362315799658295386714462288920321060206032749353231970262212964020275522164738363239189988184224493242981859950666977326958749115996814813431280223443527866305801537472881116185889603884941031367036789817359528545541011997356387350998023425627230153680019819717578401130821555737724431383267098432758658747825336908731556867719620088636423695931563918816505264151773658547219103523874365988108118259541271804614776835917951386381660539460962172559180766544984488098742765076699335589633367966896170320309951537014445429310548165353055739989392682195577271990229694484645380862424597377145506864617597789769798127749433338325898563438305990683001962254356849485650160035729815926898769159302651523908455050463162455782783989582546959930039083923512425682412982841229543975577532627260203050201307851402848618562751175057727993725137142870765514253997009873327894630546932306452557940131801244784913901562854894876032716961210747720773400064941921789993223118307199409844799121246545346667645825583196891839857451652326401919059462988321219633596501943401842008075895993676894755752975288809653046124954965128484034413873415699770330775989147305076297948859226545283607264873289890091375755838201595863396862775571444944928585529698998815301117454875995456145508584970216919046485528567135189273762320927635012392738380293644037466974765091755157641229372659332058711177069313517760362507729224597593983839856849542780310402535150481301664731180709983116420050769801741505707484247656198421771984028739351772155447982310606346332915645051909762231841075617648522478125698267706772466654655727025399943370516845918273309960054320980835261804259342114938864744975335629737751965683244345546985707123725508711858585543266408190444928009940948830204005875748555309145708512030292594396132631298177107615417117187057721756927174475796921635006128761248543651675786102191747952992344068514501277007475835216287846909597729270806519087073554340886683254050974335871105986887233804665530455803156907771641859001295719466095887022935234644653196415015253013677107961036117673035788876670701775577793543615555037551783435769335051907002169780141468074075066690659646214361264425543119627670344851234759023722269135704907643020672233732177261210382773547406696488197940133995106432542652602552416907868439351696445043489459872647082033934893591006303447707783873287832733024069278069748462552612214842750026524558841195109436611325479676199489334137681959838481557254732923505506620394665604823086685334130681823483113026212143545855112819236530386699294520982247431877745627701718521801054851201462934180177261977363131180401644559844654238803987636184881187675871766379287848094613163357071280001958062132813968659131651359128322584402885296371770788374411972245309503437464569295193252189117601700769767953676826618456597827698375901525730369808077588333853774029531217531140463048970380531590286658322930975608771096356216321173961937348734241595743500387855557147548997470522405725422727910472304374506164702332403553160518334091551429036962868013490902179591598048308251998649887436013216804003138996072492695131431452803659511136902936065480310857909237152730700291622095113942784729995383346493574140402615749319402786041655823677205728608185415132182890726780863414253403362808231242298233189912422962014463668298869942285356121064958970825543643577075370839324717518144212948388939759393200585457642680576248493086049005694864667207964998603612085381787116512140917041056610111679159312564812284446469988920998302532337567988390382943283994621557617226080080659272517993880704887765003634510808177784962445373606193240926754163072920089595305956153169013360240056500455478583596311932446142168678462557866337665172870781564362208015310403953405578203849176580709525893616076262362495610677209322324486978058958250882279903757761816887980774176814425902628940118059420890287807079893603319928769023718654670492815803451463289860221424546105585827629758990461344482684209852467631661659786401271528060521279765471494440242431883837379105262935477460488026955483114660111880510681383001069286011016829720707541048495903700005751174030895528888520814054281879776140772336373325638187350405530421449360362204016895384624985527527119033875029107194255484065744963745193634769764391211681839711432670456511503314876746118176476923452233393827408284672831783759418894131733121212924765405956833688337244519940811402651091581814423629708732499306659359340524871112819278593451454393125077856539232287090364831969756527495999108233935598172167125553219978424691248789443471446186020191017483191495412553462129791077912307923273696980899517918410235215383854838357856600649403105650948041598507736719391275905785954112956814314586341080478529178442305032099937737052405323291112271874488595683312982142009268597958432987338420444961396259706784833181885771313864556685202077156549639953863187863529052474533522807426529144367137385597086926094040263329674445517564330829643031981307142636845470735140242982459645442892120559800305212110289020294324386116919115936118373486439202797660343020483449345566370897122290611799832209342888582575188189126760383391830208884311615025640782456216009576760603501498101820492991414063297793980671779021748630307593096690509486654411699862844286232499889449589651410652987746947443046024072651348464840429150149785602954425512342606857294989985252163761830478098972073951596189444965199246433497172961346167863168051949837943977012827234431351722208848161221958090545235939809063377985758441953976783042084308889165918260072627095297997658248146945892497563341199110957806356972357578234530369380886724935029780393595188177642321475184044093261327747350068839673412741803664593935735621474125658794667587992735076701635357100272550736037264720120718164818560154737761155930083532966355880922684698826586519852014948754450159589079070885663792792630107304214141230299048434535342084344985163585014711284626112996444311649655101842972446911055157978743553657724054807210630677833711629446930992919776441780827736709520435248624636338090855691285954907648657033107315704876389165531124071364637185328760751778694220101386153538918146568178887511495799637572491160787703107186964476693427759533108041001246478409519005440020337052481188771622912070664409100578995948491137332690183689083624421444150231003979411411032733377477900557067296631313203222711005198951146506309331719522874587578036686746897024703586723057073370591235474587701811211359911912351525577625132544239738677567783515961783072795925350621944507409206843452014798229134883607002988945655685144339759515808096071805011303753506768133658202685599563057830910384423616932444684850084176935779446084186253826128674450413368524931389190767187892977300740920639114556816275270461003484743926478445963216201510732362517827557914474321824622229191898374490417330912594715395908885851613838254475193407933224770213320272660686033072232700711033646464605884792808553637143263785921668550307776233834121603313048989950372365938739319840091770764836143793004591064445782451133342918500448204978097534866442233779751604564546542279909825850981722278885783447582239709392808830387048768439430367630734553489772189155535968288684512597143718567110868581653539279870360856541476255492577504885528500971340210925501130873707837858762019247367236719225877874591106299907122913463837669624946738311964015327566072320213395066919650757629343369075110766820143470407390820963623325227962903234110148991887062173570143602875940349564393926029785373253477856486369212205518247560974630439976041717956104598995852643929787150161351520627697590011033571518458895451640804611062406750375106782741215082264134619853220548819958722723256726477119759975659340038000656774898258373851148709018629931518956739642220854789276635720167266499195841499085993255884149634692615783945462325626022487614242438688586206478803104765871654680165903941961171731714661265965118086383035155715071935328168717874575823937524809702206530416709827262171132496567901450350030078562928912086584552444158047506449010589670151305191819970838726964414042662435768255505365269687243366954048851246150209933489740258552371519012961278527100071872914112725184095622482595791598528088897403304471520230781526918633429152403662866438589331179143068878395014233548741579234063791836348220397669131095453428436068807875976537006052614051700385183398588297476272786580766008049935957831767663364045121980164256937307447338438164336764359859723040939322128645891728249355430248158305307139111012485053676841033814928539655632889677675259370303674760981819713550862787519633484214986847474393250727879412161601324326866403905799113262171431692815928862743041419093813654479108352127335814269253530534390365815871200169791656899721756895743297105355468641271873684005223423396266363057615066264100864822409937394812786964737631801045992094715244282448137460182979080591366725500624961198795997854828082523424341657464746965822073624389764599617910371655045881908298760732310889186382111456375355719779445846056472708557744761160643092200698004947879459646066751542903371574898907016884491377099827711497847636237810854386212690441403221728863999632007625939976428800828271386245725228434109277919799076107065789952401600803845651862445402615422209288765609158772037518029291914190587274084244020628946899129805660201647454750570515164288455342225290016325725188814199458700176989823882071174367916022896589082097522783531557381522276972023058942012735833982723507263077067490287572557923831188658853725313166109017441966325403664530361339547953581018171735210450420807592387591185425990148112501234036296645192661935894606172012494985000051471533656320725761317740738567552467561124281710545246675317399334837278643524472983711368712052746417246085263837274066606175811767905098330282719303267722349068579070058204161499323605055785280859313263334061850508776385485411960569172662976905683607821084052428819844310143052247323989189099944949321046211972483599413401790528331279500126849899359846924182263690756406962516583706505259136678170935036096418247807641455246090900136397423419237011061408668048977111246016402719613923209680407505942816244820318315361972117275201672361780554887418869818729748869641691002313198104670692514606754425324363869697548928468345356943731572628114872329987263780977659117740722770245339968065005748631307017447292058987381165377910280650547302921673443509248103265323759523898684597646454628981801366275134651460076187487155546139961465261510487727017788823401900530102046795770197684217305718838510775241743590792047644303878068716345611073779615329839892444274018590214123706728163487941953281184144013407907326638834621117472546293574731030442754588551153066090001508728861194706271516079639446922622519632970755859706910681448425035264447650683080962184117232768680200857192820048905728502138076613957756772863707763896906418096335698302513139939639044479614101272242340240001506791600054103136132251982389354101943658037423827840253543972490175488136785510910464721697550675416155256155148527152371035328051323226762496150499341548146988656088012933166428173819032962609375781093418581849342909915057709929374796350169268009378607649364775730931514988432261874854360522437324183064030971684769291831146646297383439337467304371659008791252127264690687904222964510066250922316006388119952798267373351556774803521766430835956312391807621369289013541355127390198959038044102781664028418235217957185128695806534690491923396704107631463219370986987588541040544327102708613611477267223758024242915871485063550144308492449493409852999091810303844292361576101325736907737772144011746448772830225869057165297203712171074780584648170436205818665145623972288522210671594020150346951505010980663699714818679171466528095124197144447617954407154378619505096115340238124380425980674161502097537615026070508987389602631612718694929969252197578082439257809980420948582728187315401579271656099743988887201909463042398435348465209869676501337227002210305408134651044001799863784468481876994078619385048816911239849869245846156643563155705013494974169597171179322091637889292953022559442158229044288342007058636929222470140242792291320396712379072276004580441414382706613960698235713844309163676458206639675865751593283496760838539492365477690639316684909486689421075353820948487928361238026315432571759046939311387201936640312069172014769423648366596786829752258795781789455167878299087792268981106628836111071103248339472497408234066037041533514878314700552842353241498215933257149768816478043274969279898783872816372486267987185969878665165131496781183640582839482137349800236878859126742294951144697033961957090490014555696413795993493163684541836936253019257615597757247596082838534279342150034627509310677121183605449102430261561986993934396958513350107051595741756171339767542280869880310231690093729876606183806511689911130173241594998354528988402174129703468700689769218008105749967237854354394633175488852294639131275658392744398112051961034799475177003858856379203816221378213201241193513488326585043239117395808658992327869760473220350182153436697589046788358601138035175133446256945326240534336079585909384016442223095308246541695696215279693330398405663368743617452005279737343624411051272719488740604016987098321737828270906057835853909394097324923314457800900038025740369400375521280742859316777890761004893585287269843094103704074417444260075221903214000273369991851922708894350117034968419187976738881785100841539460788525196825798567641290804406378265902149333903181214751592129877572204448300504201053467488270550678368196385211179133638944780779368467192673551234381633934977144415982147441055555042137476718942948668154493139542575523514222753316664570667011526705881946255942055054401558626726192372619834590575909363468216963289272123312996700773941249106593756983702741433722755637449069766671331477466047799430712680519489197462718721097852371747874465605690276770649283317595433372059307242157875592092203567981164575442116064507107658225704880559754702082553270724989351690254716875810103568564571404638268152737706725216782057876842889831773050245621277726329272680414210541896513265525539939936392371176994332413977907771664375495567340020460700960652736508226309842513742042475133429207426549652357502948904383390266429421420173936118146575261487157800276668294935056517525981961357695421160665434168216222374017453754183238117733244414306343491472219613380890382548119665652249756646574481100425270428533396141444739537100909193782334764227508160781181441142674309670759593844056627167894368855048588926447466632499900617485799739950112347115714375283230956292547832380814415253064952048532625960874801524567170398832642813938246311246726092626671604430410094813195503240725851148774199799782808355207859010226042724474605660899472372202551536817019808018145480475917330343303105261005546291414619067302336446231405757473914472169107063845999852932036581319415362384041543745510724674861717574647669031362143552174869116746863519271879501419544879432798073261898675341100154334654367087224586123854375831737198659613289401773510734578128527963631962609199183384607146878725782084641330837641996517076403637916772689760966762780364031221382144067776874930799819215603919237871258871654394377337936624833564296123623789652019799423570815403267376195080415510004900434948493107821532735614257483151399587765905175427341729420334716552425310810495148749289000007159082475575251737044827112608471513177429146679013784009477581085573338076036544834262557915987196553978608984273249163158861777930531255125325626215431093672249148924962252482980991708785230307750339962776927517989469772261038887364521196854723146941184216952043567143909791540841919802588535621436616935462371546607215624283510405713591609257685286073864059838200231470103172299879874409608884352867610591958024404557608612885977513855891458295232587526953189654751077802046264461533607681853639891023835230883557606847700367697235606324513542504558562542961619428957119328364586286979469889206845892790531101381458828125721445978509093423352064351604514698364210682147590084401363385722498182604498687169896823894643494724976848641821509811065349883238433948175561220912995524061348292032730665360098948558289074761975646249810657673171724286971416998062432951469768669632759636629963327995584461019731598811380708042149747279010770279636390783924131371526991302818839239183988229473976374619800138589818214174029101450587283490484695118562501923841224047095806990696736052936613367135357539109695839194511725603429254579800197068540604438101252597840191711270067917698564413519711531100915713081675962973634199101918539961454496398166555001888511260334230730466616280329170104815238373239919431233140838272702037149335352427396890054856781432181970182694152582520468551912868335698741092301082803004862782703696618086417402909885768574583817956256099118241036612622154829946899597744186293866887375157948356224304652889929763995380238105296834622445449099239146749181071551054034857571806139672085366573708183629982621656019900807684226214416331548670730310356357262588921347736009622245237807066405401754408646030384505859039718922292286173439177506870081246477959727856369179213647195862950249700785701553763396722122306762435389785669939763267735294031533076770567369248512206892383937097381486379482698657047898315579077953666906596690067276299671291148009825253590845148984759764079872309161594989869448778854893999053450294153985449766142059791411844839500492512016672462407311988911966746278159133613633441590562683790227861418781616816829841138899204495407903626602078446315447282226217549342093207236627553624453446003209148346992829265461150588525145493889378260142716089219145572918405408812500014405098270043689396797622791109170634115035391710799457184255828897326686858390330611980106598298344106402567754064465823511261259791406784170484442608390533071539126875086348714423557321193832543011334227893378430297829997928201478239299101768935848161722593707952004461178077552130477784765187928334378124861601802099690719032111222144952427897632235289166789434735004851879163922337012288237569920557616300515055455483342936466861585620024104539337485493640291225416218548575721399748945497874555778944659118131591030438494474910599787008763257648901886423610017189694963357359749948418797549208722653440187400158375598488000554322626950956103762673040842305249707060177447517092703353912903841952161371392140996201323363810085954040148595514773809177190476322611291599796198025828553287952699260367734672725948734191830781691293200920316818608770829362109798809764896942536842109136047258374159048403644845112878073807451307314972226067302863686410593244489340692802894519500872455091214240636330133977524320001787879212371853312202062492144617784515641241908773690721756025678357555983498109707854809169266658898765363994215723829871143076143621342937396498384559078244261355045526438815561395757550516003548281338925888168562762980670661352000060480052069839175428964270312634803178445798518278469939781935141530452844573704297290473369252004467518504772275173816555048283091906514426207093079969371748774676893794619294259462040747872698778194992503000017701174917066598184139577008279577510504532685335305407472507429228009725525420830027161301969480993167405103173253055627517413081876345280981921735507472438783459469818184745002918094300342067955192495286424551094940739041723172261690152769391738307625489350270919600235557498089196402851874432907584499522394147341228086668623992832774663819470939466346452470227376734674339079067320152825145066364935473181462338864706390077468943143725148294267494937013480318821853833374731802889970352534966971692209651723720231858595567879377233379368779999416272300091068128912782125669569220531194056466419823629114820037478807690936533481977163855670378046015850240906149533226846791879116292008123709685085232972432161801930392390586391657604410133670311054279884828089500713873339664756575721470247622504248315913316515193312214596352197472575239120858818277445599523381346610997436822270904693178780300578593314378211108767056217038726580288480512973050397227466507148198246986358895151636193570478299729320449263898393378965687521992201012935703253152368073552067475968712237308127246977648356497810931508032872066355750217518239352036194501899109445967782268659206760556045434879616554525918388420903602234645573685361171499702703152448971934495521118977942585899212432981097943021267685728142106605974334525747544074059750261951194230855831295840591441658068024726091515418146961407899946770863080746713917054326742361455917606658138634441944880966569589451052034127414245411054213390591406764965675644482197913302550021145365880812245141793582711702857627747992447591202745182291886511497340269487503122706348721624954375148930051415734098302930345644804917584752243845322797152402033884209646317123209328699413892667025778367666070088858857795652592456294679299351190624475070905451095032460876566402452622818952814206772139300156697799172723859525538701488283400774097039136480499222698957170473857239908514805396734816523890236814185738934821110616846068066810178011129092306737164910123111375686402963292405897561844868129935373207512303195642737506185179044899956274229819498751572102676657831368342296900044968060883644368598751742546204279568971266023035893817137596236431539640761688164199641600472356248756923287812699934260729494504465543050468309859050454940479050915530379695946525225751079767036173853988446594245998139180675823410450254058845837195281384567436447634347704392083788436641190616757485142673062843829309186688516057902586205068342381131463182699905343599590079890779064914706369877795168273326782083100478412162005109176028014252667662666211347918128828177627594274664910567733092051368577875743061557073879628367230681646998724242362930135279565450940827143076655779219667947014296910154496690341307151329279272781747289667610975109931366187618276713667218013485779944285878220784218711090519519001243172609145850463469786772357512785765453411843683516206123328915813894389430945972006543829699976255184266419189227861663606179177736454002696448567938384468048353772003191053879535201534725511911971351302421854030249085691799452221490576545839100213545121452117148837222550306455282824742314349775670228693413333860465040927856772555065650754313910465882909278295338328614497483167382350156868231526173962654371025372727606762796232101758625369760749097948656407762237021314123160776581219162013575124746404631944013989404770148313207202566615484651848741606922455185182813349156573737233668511982839315573223389162794400321627989377687784007277850137547634701598793522641592069147221279972544079977631641953119236755992867899075035868426346722721938293991444967174330401443076091993929432784516570225701086134541265596922301098201893191013592001405497735638054478066478553798562437663981755800623387563871828240113801874666598877331974512743878673992845582746524715404296996134369470205014592690607450932392349460021140705127773115076923813939491137049742360342484573598634137817357067511567740227986471792862998684347729797502585851412699470256339904292092092922739978468125976606223678133707592384809787018678309232266190683672144450637398616099640960162417568721661060020643909427176468802451344833756856162058354569403039353725685817095651402023275792223477849642788351603098623358450959574103675158430419377151989229054550970428045977390759713738357691291430491474505609996694857709757723857451105231071396769311192211177943214040717561391206259758156418637479210782599999445762438484842971062529697881483043802774498248158144265367343953256394458033157902773748498802988182360885411835455182569170369873164366508368497902861782296993029410557000359782832463769371099978811758032232794822518370831629777264889778062968701713986170318138525391693901478223443699524562854470246630820756988792359809432401931304159629815641891455174001239308104314264209556927077251768067842804549104470566258261151757169299160442832851998814995021949899432923462563561117850824994371317288974197801828650791324128019616611245867867136714180702582329949055848063727235340823112793843551062829565016614118670308295714463827997592682233333686079044628580810127909860156377786109017179250754101578622007295819663154398865191077821460126065374910310575416480957609230438065059359642187567694727099972009480559950379587511413226462617956516878868220417915005634386164234887344477007334171132037912525616179053314367814586417520470191703571627563008773132033077551585670982442589060882111825853973964061266790641164925928357931886659869154187599238763303556680518845335645271468334117848379821042188732664442928833716711443745899709174582117300059952633098316728261145331263296631411452090741090018791918598848424877116680386746591581625597765887578608286581227601603247960136723530252334968076791284311727222116106954781738193391793518751025239938790498952148920203597877311835769982653701660751817767884778537816093066292668115591071773161583128706963938018458023602917244629822757321122401011848017346857631123916510210731800409770544608792573631422274037576389662604409568197345966688206096589894707107103905782666035976301028697322405859426444451657560455680965615054698326401677435531375491670086324395899957671809533089714764529684607036937137822333969852087402626403799037804213188385581302423827044852983808072258089410487405279887704669758233149902268662682072076497573575770510312646647928430166692625546989971546759694108562233619400606635096674350583524175560584478343916303739951024216646065352862168673043085635250449007208140744642751284427934877567763690455878424146697702086401150892286912211649124841075632690174186479555616422502624057639124480632921821651901972411447171962559884913186323505413088388865405686904181777284524655685606229201259697103657140222211559727993222573832539748428512594613369261311908259943064075788255674870456076358142507057333028103745824540177570697454598994277649449147888625868313137430750522328980529055032837321005570735943716847890648388613734072712095863196576480590147336311142114667850468099373803656591641523414933037069121319313423679787478296182410722900980612686851489945421904702953914163446531404915819452955207369399055344847641404888712489737568434778826466050898643299249919657790966550611930163384997685448786138234704948541751525027298477075871325529708207491985442350147760103401693535591004100530149438932383609947736828891752829266362825279991970269418334264221004773499982719445255579885787010958645941237462401224577868587771247624817781428118645993529544955782951073987086086338220274360426060276772315240910114908918385431048770526623148973061553368604575092096888648102525646970838524382850390795435340502505989834045613510237045085104575681582771931849602170272158738630053803812487139263021566732981302640318428123155288445361241285490192257190986175551499522434145437300579701617053215148211748026392720837232843488504041571291869350214481084076408710563560639890955491808798265419915952602625636843795539503567636727884727914869022655999610606091303880701192117317395464096302929756565060497464994806531620040324341975589799760254426925342817478017561336005874062861093548175282717732107652000738503841626667316122199257021506695266512842194916407404079790159812691132662911735290904864147362407228674147626256928480626652297578723390369202001147308159965788814714384756896074891061229041366664825428391154584609743527933139261897391547877783553228354152431274662612467988742360353077878806280320641372971743705260962213931973321685129748094324656091662657527979102853027662156493395596405917750479833031242431466785517920861740844876875894635825952417007177822227688776712557501846607763584448638426796180663697908936927645680659769242601188736037775634847222062218386352334330429829216581645374558716304296083689684773202307338659410638591331887519320567065464888778026393341066373170874628299438885940474546453940826846286691157406120301688535254548439942629454140399640651270454754622267925222988694950768788431428302229111189769292529822200524549223914705685893882219600759950474079002851325057167098741519983488559995424947417578437082586376363809697437452116713904653081860437724584576760708373441440730350870188335584327012443367074353319651146749156742907585139147990515352852565543854259401850950707731271183283182307419186958316766035580025215581484400790599064288271851072873362748880495039737582682128411013566576803784633337605769253272686861233532855509355258021778270018225835207016827741712134179590630186922875071313575844435216632175154523282033166706370544399148103804377277357063768407566794687440668730345598896193532700667588103750525475773105518870626858912999479965682864153720639528993476394974808628375683965215435131900568469950237580238355309005085806186018371647729220099421377665247873527315726501844959345184039209201572665390660260128788892343460933509793055987499218843670207032969711455749171407128802860778287191011226899158890646999468812455820601308726842247696630336566399682750797862261085281531103968932469627065605855794032760643989501962093975532864084429488268178529374697288675989493452201540331222597720248270080540571189873288709994720048865249107901460992940178941748584134867282933850573235279069066825029671121355695712282208963068149840178538639371925153013531777283406059667913024782348890936195660833354605395394450752666984323815521049177107394047088645668971366200956004503300032051984143026256813723993569433207620143255805411795444767882194062908451002081468303305808542663567204733811087716134852641526444000012542903799519704729678044728971157968327727543259389334009164743098879212734290123352046907929623618692179210073952496784393526377673054486745462887550945595672780600154291253012279279053623580482521385170675330368331198380056988926592189367908508652658727813506011016234770357895411062950113122286983007502278074506520331398003921494493638137526464306973632798980103912538170606871495527702642880603170973951060765892153089191207637502242382096210616676114062434913485027070166174167167781612928236650797700376408957743256807923675355516039042122864294275047263142707408033447454544345841830238387273270946456110935746530376070246556368383041038878335589243407837905228736843369172801233547768494126264523723456550536551191775998044281499993638644369617440822573344566273636667293587034649425690654813916461220050448206384913154522592031295535968932889349535937997118875467246597629033093692066478589501871609317466982481674063590055333788794031835086372250122294905354173953776415718301890716376372311354346821135622850896066330201646305212986417259582707187397757718963258978615979681294180915988165324414546903394617740312908072515633275729029007820223610138376944662630982196531641907789606759299013479615253118225182184321263256725132336844621757255130353956605961058889982640365851973469029774513226131886736291433160553413894677839868932696217485297531334631820938780982609424546582042185774972998045263000789744818822249941989134934608090465249460114856036481607974677723815757004630280589226477921805382917439238388875505691594254194076320470280232040794033312709078580102809270339318536322455536250841124191529010309892284623647833798105140401252750552982282625468975749933278827457400381464863553686596727706990178615322379212465455690834378714318871658470466023084499047924629130511336399779901163743097605592087571665022731571530629566873317723767984784558990302909318947945369183894910520413668868284191610617550170733711952281378694188258228266121316611258176955024080541418227950094376303866651095104966810957317137749260824259332594139104681373000278171814680696887204443196231868041297481358269182669815311828343750884191303320476398261273959250861177682468453393642920493319696714237918601643146713171231806043021750657652885132828520903707776429688396918642457513088606012217567998032439046123071707461946007110678466814124209515667273957797131013297702626715281108712220763128838665507542611014061956371918421888894071646241540814707196982359547717047647639357594876187963822653547024179501504080461601141343615360075528110405426315736317739213278013702547408762018308600100212797950300053964661641024931091839411452039645568981773362679181523340085726229681643027180014561162357480210463788353324634654567061456283372986991246197313524563316096727720908850475578773566101339835169640026074667801998547667801824596375146912660366421696032043227526108831893751043352016454651752817405550511733849341937582787211662215047848703519056867286111019374218330571303555426283461762814520737905906971418315900879226990409704862726424733209984324160821957280248450569207616014639767126516378909758803324414376659443802372386091343270309082211597912393840930385260638545991376397891227150365011152295109904835652984631977266842891198860013593950824363843736843913160422630085312014266765650933730367449129515779200733195244338428330419395683851034124940977857470721017406265348770834877242185485043441531953259051985722668332679834267450448704022697159979486271608991301241976833195589123604560326913174264391887180899903251294853468877388868469365520264038459257901006736722938719034444993745317853992958262393192051820759993451922094464158949207832264344862173253258123384129023695432864183821555206948097480774459229195159316710742762596063136654050710900764901811428450106135260077155207168978996809722752360239032362543326523980464951345387628138191470915909646557643852552234840288619745292219275475529327708935267683666288323747262399408708343631183548089250030175206421022237679639615873170406593827119626042764097898514538541523083368270981898446017655724226357372626943601978945841531257313368439664030962183719456443799146358163320626354767913502246239379812122040671618770161855920500481316048899461970408526857320319701099345249547758604899169745012553459908359939385458743402690332952828831925894015823300114637079862091997394065076407801286571954344635025731834216565874181925067992784470584416606752901496748456538573594722372546335811170668203567390280521458494839133943542295944716992869595502835236367941654057936813001388676113178948108618405691889536505439569701044264135280596916108570952835159613243987375623047389775491402746846258536505785033501681450448545286247159482911417489442859353661222386811614767851421814164544422804107962421100967571438673549008319079356318460498183997441573699384644348199574420549229596001888712807363214034835349641373284879362075753318702448416814610768789205532434033520399933418196881966571500042589318613732634543803273838448317333336472595158934837884071868238712207166533568748945252523018473185453512119640120813857458059220176609496135252209540265529030432514238973525919736222966857995361574754837337700725165013050645053301830639134699029786754490755915554182372765840767985256307231859018375770214179349357664287589966615925673400770574486812569326043398940993601697458802720822479438019337145382264477465347188398836506318057684513458332659092151673615357683417626796721427509327859331054707957356526173858233472964057148583198531947403989433479654922048660772524029131274471948864350928540550151187961323244391826634306266872299367925247996031727563645706704827712061588775631634325533454619731533149790676673741488344056394215730837525067782625275978480525720116155463815940341634310640899214783013549764585480836997534042259080692766151388092362268839074960494739577617698400552708048778764861566663419503291651736309286890586141964724265435530416631416089037245803673527133043869760959801836447187180312852012517865405448887492749336553471054406509138172094729309292103521608626288026183877231784218963253283444675565351807474132002909758971240679704164279037794858473070119626919469707320906645100287224415478722555501750493508703036305854101005384906017779957245932080267654086793531715365319566328161583865557013892842290438872895385060656785243679087595174938385408155372381965957515988607549313950641566421349987779103435864749765125122612254373847309750003889616650740172173832257352280579534609395576567249674352317855100561180057471827599395311002224338753095451248023714671128054368580756177014023519250139326019642287874757951416269161297320887742304025015612454817653831446939847591563945226171437890786043258249638331629125668774190491140626415330745460103677821515204488813413275925605795242533208863615282865259176640942609678403787871968563441904377945353722297143536986810067428170356431958110843620096693328357764682986737320586718839524374788779308710773151642042048014495050112053938166650789601768893184086514961485545196306684979725096255312649008238208367871394952320136169579983399534837341790066365344885875239854633318201627454040227255332418228407617261049858694080644898140646344296545665930052838320080751682778945848258609786649346904225288547097005251014015462472770162250821849679273711369098063904668592882603374858407097623680051428085793000611087816574525099669242105321860550642156176845893961428162917214396321341832579179117051777061545030599194969790874454602135682493681248301393610804107386119056494270883101569216293302972419334079592184309051935868593760015046149461940541762992771146355820329291321746683304016771825381997138163259920160106155450738547997342383440774021534200859931447349428935461774507891460610169100980389026820887669412552242717004067936322745380060430898239258355386150315453307276821807177463739846110086888792268311211550439113388320213269712285576789187287113318176028120472317195107382646209326784076554685555453077678784062125645061792566041335243533991729571964724794537292729452758960660160387990803934879901157564364117260313279463329898445209273818862133558077093697268984856827244964054310255449216482754560449536463632551994186982218238740410318150767551007335847218154881017077514916896828560993114851827879674165375666025372159226360689911036332624792173181436687408151018373501014455634854561698097489257432290872539705253968054681872719424774678137239242827793751479819522472820986496264394830939582339813733896179529745520996717496051568763559264687199171158445953124653394737432946394801318937282322640567838876422326245141250431625605287666883924293899833746755692445450886926343778110252104622736295622833246924765757478810585978109708655697059375204393628961537253465663326511534129860478436953300013366268563599663732678669071507819298260924644697554203504878545631675509001537979445870686019455308807603852158509558483877438981724317367556142239753127256711876945414375389604647655965558068075572563606505615857779704419469675454530217202491497172446245921573161147003638143812195855494422459124780740839698293303345170172250899621254415302661635764641678124759008474855790109950975906335954956944192558129695075397578629182678501674777889637286585830353376471131495414821349191086339052568189331217166416814996814167180147283708067381125905685562122860586050631568684972048017763435884819405630902541633884755620564742360670794958019829611149337133815200047885928205279609586191704535808334479464558175271464650621579610354499045653205968060303581892775841155188872050863714748880969319685694325591047180453683925076032110685537877645443529535830438116912908175514597629224344331288941121677912350676481347215121294282965631084987862021501184514539887148933106013806592144689819462697937461454795855675196146764007765339813518210930878363290343165652429272120556268766301448208281633256816745604565601050326246851329796531032843527304432034100690983698285066688552623549464693794949975300548861195660610692811633988485287174870096149863543084708840720719782975829148878048822396626685510115154914957499181205345734192345023740455439083161706032924438496534192960481048945586552312672156819178630866131139358169668182172612463100341997073709469635487766531723117021737630788358653769358431033605796514823749552388351499600176664841128931992028897278342909762291953680936456560474002951611761510807969255292057019009524827766985819207406737327331674658379543929086155838862836125749207795355137598729127212502695959872936718402486495114270699977552668408784491154943996755013616163580331717210156356689224620584580942965552555906575128759908501806725580359126467751950132665889427476252564385888863491542567815580046874166079008281091635708997177396611574990965202606073975433809319546824627134976849955092829345759910323780010441673853314878959431968244582364133312163666898765377102909991508983150257959235523158390395313083008957884477269807170322423817586979659470292115158964874430366011265714927739712490987117355312717817970730898801705207291331954483095306802321327494264446715202118858736086656605544987237064946425012375536910901507806281868594192576396979729337762611169390347802243331241901623360853573463023662570859678216950105718401701692672069139443494312562351049242536624431849750052399906070246735200407953199519714745196834899269850962116869143064574108586045909207781216881971492474577428545971741171300594922738909090448265300099466284196172101548487666506057737183714842695300975400706023801055668199810105000116779396393251222262412238441244276277423914674608264359775055763481150060618364954963760888037681554076057833855097909074141822891420674849321057054075375665581901606559828450385650599016959572673152460896364150043134043504914086416868062735933016403311055680384707785387689923996163702657890136643313394430532560183394086743693752389509968942325880707474970116092995493732366534718943084106193859996398217046717049173090085499568157184331975382023963524109505625584408712429530616701996628463746835286415869709511820797917758469195342801809407129689207936701978935377429113065781376305981478205052296906887655493052337109940691656325361217774658485344000039180953842571323112191309200365354726911069241740677634826097743884353708280229290072549762417042089771150123756824671123794165301170521192939542627327038973714524098952554942868625132207624909943270322896461445719056720915670460638353748363000654816035258961271888836664598751897343159480041777155689073204139030520692369058897240397558984638977752959657199004046256397672200122968073899120814700629320628527037017187329880137173715875373186824989807397276483310989247818523769991467271774684260261849309210419890691013726125854116558870368441277299336686332468415340402969870758485336298765873023112396328540049872994372495386743453725810266045053291589884139632796884848061507334283986543694455096797319288220588049075901471654775447089385907926423398801001656369389041619688148408843681038956891548432718218811694708035280059670771514505565347178642067802190646294414375635100260066324280536675838732101522454727903121214293992120787820695414141498096304561243384695940443171678458467867926764467748975623020700234996570968157533332596490543145497911887617603431487447651275478836670801911057831533548433356179369913083201417621558365020128609821014148664683268525223480829444710594726317554274168429137195157129365713101631750084219695181687670359810670774211403350412131924163789558815221502229958876513791024394000181353838369499805163173465271961136979859263788804174544008361351690082327575389075096470361986577529266259530209978709318447044772976325195002293019162109472344594679587919830979571889717788859646750654994119489054491944431259207531939068925927810827095893226382909821756488501413571990534159913762792474761277826500756944790503797672625226487202590138670513108038520340596994996459804488407156018827285515743622417447473460058852726371704064708454313804404575152938718458739790762465149972283282019755209937240737075803912252571019469357933851746322066794575461639895105860728096504238875373398456692124499320930016925281339124564592081890626929503373837948867864162197411389002954245962783171146281074681825639702321039064385371802630942054226257137357425004454030242832434135335706154705588350078362104453935888730695383037232470503020258600425184026806148988311251791608666412643722356266929167253751851604052406148045853867264525882788260100434076611873979679583249537213560796975270077394012266121044638821737330955348885848461602213024761531378393353770392734881552410891806072893628791084322135002675117410539834400254085201723685575856166116220615222683523652120895390119325048673401021433375165600814026676298033482720710620309550925625702214286526454338691655708919998890754864893622486365652088682504515061369204486343726602600436554753297287141881369653938181946195584973768227731293697258034900890053441419455976181590400663709626914986793188196145802790575429178222515117788967931293191019302280525489758755530290108011661908254852118902054714943228492467541478078377779154985581777856177688460347965030768758514184306091535841114090264781149941668991857166133717301644341399347387923260388299657224961408630020392608153223363072319424109570366633272825146061845885592052290337766101549651704278976809147923698768968158867515608610519545473464065023364996472525632781185906625235027183496990969399138079113017848141630742802700549652053757449257266794770416137764332559085609070679161529122577320879629587510306371087045512789086052541485913739673756985113328671216880702176185023083431650558512254155525690301567613229463433200525311357492044978307345164088688321283237628973813316183678865497965145040974765130622606349347220406613535066903113468974338417296650337095187913467008911343262133556056790684112771391463820739382835695306295300856383819006844721834167036238417172044567203907100242278857532122942548159001211387093946992148588411237860253009816982984532485187947758063158670034438336049874748517953825693599028358549353950870417538665807995570522764207673109765403574301930351588632995989076144240714158711147199874501629716894062847091900412468962991121156027297566582107903135156623567173008194365322207496114316512925532086229989986250898283451509941054745741743591612596310476489570411380883418608627845613619730789459505737797737333476674287445549556137135782948103143359994068896067582413359179980114230890254377942240980780061256344571000059168952351152887029638429754144893268049438211385831293108351208296093035151803646434133219575617140750300942502620797525032919962157008038487850031122772266919378688320086444093644100913349205561911626505159783909880298573078294459333785532685206427143349648357975376256221844754013020963454106723304508255246706268529292374971752892503205296124431057402624083787844350152712264069867562098421495344438517220043661133933543475906812369929998740947404411408260991788413888662958679977596721067821803159315957627736173457022656831185087813794804268002384242811760755831035681261233070191569573590850183739014997479252113597748986495101876415455382673711434208711966053321267890800946740289669398146455968508106564309043445054247407976079557174564637076605774363211568444477708641457993627733737618600890141914110366753996412894943456273030998502722879248367234471728639184179442852965265477416336532515030680661425960012310844209494320407281181098746262460396861634288342421847957726406311658213089506500830166192758329059000199727942832344886265786663678152177433667684266818100984194038176959175304481834743034576209353002564874496291022925856913849249943842928454621220349972323704709846173364415613654100282888261760285079207502898279779681827723319875791513638002986290215489607045261763644852558560545308006277203900986859376634432094176937147346109025395984701887503872086361634226537023053699855470853076326355107632263064480393354253065716794377510535692208630847904788135798992986641313194734753326112410028243492541860629868005247162837545672436294432488487051967081198156281510391546276664575466236954203393511676014776426492111930597550326359349003124962358627599897276958406518482931279602731860897655167887683372084801994429214588946478137636758841449154691921784059838746190963937753498493728566540786878060241140009822560036410214665432827024731713979855504143112781098259114841112506343530132384024902748546085904843235852743776511270660411072725124348938353254811094680690224974823106372969634301523434218018755457915399319271938656002912972555847466839948037198287330242035672487735369589609259922715323652178460661975790178055645822707301370795482312274415247616538643109903439174063323523672027608385678033189018880950344952316648513546498448812958360450742499770800420545116878492120370498117589166832676406227189056853442886369414632014105756348376876937830214191056864832177654120941604395576782977268545657231078336832670379300531531192414816673217558922903201114668281194798388394298698696932894060675756072257767857738175829471889005436794543072258578189230183073378099436577114152561973999321797165163153484349619184153381152525552713059499439190886581210333937804013334765490946118480171935324702598051585266258350660612012626600834158109281617804086038853091780928408729774241465899433041597731446397879937925718194232843229161269685552047039408690255356980079203038248666149595013096490213870743859630837767986135569258756188221379102622734156799417857845669761129087490774365451983541154385820699592760292440108917511250720801422985679652563873226927838975742840862198372252702346537056185430987473305545007038767304936222809333665360167505251557746002528705351985517227881967673118870843848946370792453210285207182511647137154422773100291326013532731932608750030623414378865315081562351278243626251679299749429485130619960682429873327290368988317316592400266710247166595947099743691267343898678275334284173754792578039544109729570858322120540053552538754149804702767774298511713172497744605373967516756067326091045643095622876222334327044600048314481646747185540155008231571388617820756796912715823543107836843876905942459145558607609164031977301852487835218571810172421273913995190789120182590972750415693376890503131952705455854510558794993681766158363712649428208889888438240567995758890929336198125223230452446380578815113586125694548881066097226658683655865294854967301420194997143776962362939842764761402375061182237936342306705091677204777629683099752594919499222470267670704294707529883897455047757842010597746911754892625764862650278678333447424604529125447894968922017658985029736544074953125159321373121226125500435700124173223162425203077783287119986198803472153159291403660202410597616194073944883736108184348568741622539865222862423148482254804215532547210020286284377763904045477198486377881323488705515698970835416498525489141991020508774940054734462994414564534541596151117856886347770123214400918883015568942933487785441326906887586151825820620816361622287747945828846950348174608546229502468546754777312732967179938881252652992275839846576088934460920552562045487696030629475926907880753946186508120089801943431473361264166231215052931999909068083294936322008904584796890992457046488061326288925471587452936128786583505173965360870780338521314043314414613356832094102422130530316552409601712026356507305401654690289637533453090993869047570691341952536193687736579074882192502385543254976149342328784675560802450768714830613876698376478603033237220774586062651990019104364996873967867757307271717670517538524665074705383093383961091605903805112645316795594669895360577398988378921769237279319278282394364377572167623268963503640583488945514039261438363660748859354228090903186028384089509081092353455329063071669235257538433805549609488554427762095733058791016428885017822745803049080668208890780286345199551080439349859477805295834133565807207716817272528664781117334589249583165329407383395957744726998248352517146343591615853240904660315931055846550151254303502509009360884776916335514126238166850234108020220231609707643564423450639475985734661699019711445312000742899039715755526876598274417706050135758479580138673585724926283098320679890151428518844167927967452833563030028457874261288109211562039474227640301121598994639872054220192431803171671095836069734211329687990156048895718842512528752789001269051626254994480204279305071477700705429138705461370171751243428223305610568694844200690164503563121691077572117320180577562342657543434315188550388788209090727520068540299372148358045428145505130134650754315571583241980719061000400553918267875750095295472479736542640962711935506293774358965889862706086096529332158478192334176745345175497701860018022086644148000408803461415633685736800134672510451393938032209756500401718855135763368505958275257568216306830741316476394865685241604142130946017051283256401744576942774952530524438967619765215485297065842002877524524813805409649779483068742973556507942481933805715672078284168999358778612085439010020185989798870333827257817785342684914346394956409212103109882248503940171314325547068703676752986164882467513964817670979747085973977263642721564080995809543277037080552715387856170973885050911811280342135278102528386209220473232241978853584064695091611158268004410297482145812636166523611332845937576394637806547914591563971338585965464856741067629939797353403968365287067048357351219332158414253502921396130490216012114784529669647957231051854132447995518865380849436220794013299188157581950147443326309996356120636946671920034184197760439513613405949574266815502337756128850844431938988166708898019157678348107913413301130083869211417575098253804843916462505820936691160770466077576466927047400540722613793175409485811004501452683413433707624671449259958350607652452063713063363541432213436365639267563165138874606052020541917225305626257434309683495622525405971877809706964677040094562985642617883600696049272564672151906276474132988993799392948277451531027098708156611698336630227586835109579374831533723121789361128064461922545088966650419769452721852435742048825804086689279465307178116250963618021947902158111561453051623164489219332921266157864424881825098769990207818540730285800405697016631435659839568124290662267750750229539223760899768261481106796738074232358691544705207012918514121695263612293472648224048026641826652959707153566447992330063160047965195823872186990449518968844444395923551140425838713699752596167502606195599522902625642690049779087218131976704586776341568731860729668950507260808531303683926519194262109046061250404671741277370995827281823338321733763100157365978534770401621915111712827680617476993518395371039094277663164243121804529518095643118802290130085743477224670501237735091153501722559172973161241847041623339752256210416862482678416517558938806107326073937861095090153439545086250027368494106551645487485572358481485452729382031959222688715120391731765834857319472725034888337955497522546702868144733674247533623303686304670812085905684089368118492473439858223915099721973910533319786026904759769003240789750061125120337106411731895055114261802716306497825198439066044593963085580316230284262165553010803647732269770026952230261536452896323413913548679357965326412879774099365359252429150997600699086658986669505307713150585037911630526063964161510508117334587569767726672279522620076905154685030551429909513295417405946752047083574957226886967338618682122684974447069287146010528749351105927275906996997962157959669855989304205617394788831255271510318087736265064810174133405391911487677388399764477311640946236671985087733935116885253986411302647196218326039937822693507973618790835611285474802792971174469626857178925108855781983612195828887269427240998616667643235401654172433730304219376165952490169394041137014902532002495048815122835214379121689801221837599575490374183842667160894361709074424264698075853693476846638007730852125262333883822098797306062379660868494017096742249819022434061640815584903543178842518020946919784715670055711250476528391576853320099234232928163084884832624204952827472079921990514418918484965495469157750982473125377407531013358926342334424598222977290561135349036691490415656270296569288798752509463590679103654521580819201044947291480944605946193285486313534968977377786224425253095685049688713413937569447968161542107057916417544758577091122369061438119889707710474733071903499217874821280316643893740016702937085191711422043836990224994099413717879531238698536299897489018091198944489484701481588699435325658903617175090121690589130927190560743661119900394988171382598614892350159010681843641616805416063664097189157220647766855903939783718534498968392183090999180884567362084006780405522369179191100055795813664086398541286675813426460927680321544935571568340225879243296192493992980159484495725872428659712706208256665795123967159128613060483730725291013249576006524884063835171992517831820214359854613313742499962372937729851155100626322670273905196625401671821373714005979280837599110742576145587392154128834554892709507583871461998112356461766215164166150809783513629397327162448057212946920131860112089241535568893069792372401221197262627684218908858088637317874750822803396364585795265148223270241062676888079876185594378728108571201206351288821368390608511492705599230650222164386518309164709021400886686143247393883977233672929568687110397480054179208659459725406864132876219522133516958904851644683873089311118393701734363946109452950653895040136635839467964541216026478202660391189988142443521443356484460109382556963277357316740839276340295428479023589177852392388128910145589116181739112424693934448128930108908341945620405994500195604767832416734492225453232385598893141106295647935740674223674668639322481981656132284307903936994668297005866875372410891036092941096741272058707401684593434528834241204287407907870062389065235582681731510618322495718452528870422573609172100021603907959683827511759774407473028947912848773628331149238090037152147641301802827285790114043509181549986673112928643134299830766840884182205312490105937702201959121545058184573916055032384920889023784810972712637545748928252206785486690108965855416069628374501973287572222869444353749987633445879427042096883446081183246417270157034359041652091157268131103861439733738763543207096283432178961395764841335501171617358244130618835221797524343539303302960855751803499686098216023156350099846505147403072174261245306100503191429751588919892127594175954601741169439548053679442380444762153774741656102227101934777619355962283872014732554805722232187779984575024583880074213338158582461019891483729367311563958895726828722397227910368290157721662796078597172172115821140646948766532912839707137686895572449496869549712160159800403363437595555959770535863041830662775702779514579913927755784663877366914712287837323194226607812956132049520611608757034613055386822062921511527605808118729727560017431891291720612606813052346472486526901367386576509022520300047968545567933727526490514410141783785612724366949345333099152140048521943263933142093505115214902957673859839142245478348709868895258292238234709656500126240527857898836715721644200311880044466982020547280888491789981537503290825904607401360137041235098995126221187444644083298902257781263165799550060335671913991859385371308763564690414625361079085246222787534506736355749381613545425265287917637846301571772900248982640827141898311637804149021204119983547404506293931615883370328379407253936523900637900804440548159438100759982654461076810620576494374673988889908423781235783222821778013843185075710209166439364483709069967806224394709535908390944095120067448885039259743413944592637956304552533585469068327750894339099345263357355668472705051370590089185542409964493513192277583447024225520454213757100537700369963771087067485811233571792271578132036487450921610385102953788676564205581984924695884555865940177205935616007779784401346092671966525653838342536899186634421157772964844680482715570381136461535203729544276466562416382272129741744639016954790893535046891481999111188178387403621219396367681957178310006213810997314024363266109390908745360435728977561781850395157830749001918639636441752519467331804009031197876173875331829273016602698969006737962843269463147662033636522384975742833892976340618967742264847160362110085249078808917112052049576558365572393081761209645090636537566673656548672873374227804434368126910459420979941497108394641873182987132416346154970335719998358146909500069822335595427173425645890345691475227582160605721577711927126071503784343650240610626700439264233580051140506082550757924430284548697211273067204929177311047576925672544279908807327073615312048536844423373275316039678445550160315671931930244451627870217232241934320166620397523659320384814844959117974014292967461989761589281438257892622038991825526115138524405183775026051877687603922167160019560432077847429968481315980183556642081353878043079665884783410251906471373317888458232900808822662769418972969306778577994593043941287606746227405960390473413519071580315638626186379235316769915760545582623809178699224029410027745178487645708660871050336979448117249989640183763269190421443517116775377468274961124831221653700839198514461121243276123161732710251619800185488676888473293676278828332894885916052067137866784011196806621956834363489998620555413044294706531508076915926143823158667720411665235775632537266461385722080868019060059383812321538986596280618597306269922782399856230362158913078160167343781204962497847066763695641600800676982939035435821360268341269115009833004026585610553392130911897778175099979712638974901656414148281766595547214598449953723291378072439864504425653066853965013805080785250835149049171242873299378115305060669604283980348434283797768288055792601203432445083544499525897227685723541018968911919534113039302755621687523137269054011599443831363090059648533741745440773673844487766583296236526773899435781940660721388997524451005316334175378943397408268313340282794328212390289986837895413887987117245771548177616702622782608242988260048380066612877116823193389259744397741452555941499087350239743490772045782965320253218646806772419032713103052837874697861615106106051016604716526619121768009656819479057482066786915489997792855596351490911774191875996491416099744233892452769992143660861061114219455048130636752930320038287769841996201157495108067970843797227417034092859137303675204535108278214827709976927836800468658110673398300311716288231457377518391969938632508981760297254005615758408463230392840874257955870967176694783394962533604691857501051469224379405232416071090847976288624795233463048169931716696827305357457817480723588482239218675682376096501851113338460260605135960919890762629183311549884745275227561494082913576161667020715832510542349358986884028437079887134449073396912306705783432424553573401122308971965429948607940942635776117492622205299047775298433033966627581962878669308807844045244499516037053335154950943574477799168720790768557460128266501104072421816340440762427978840459683965979251745744075208386266177179667015238737169645637663857546086743194092510872501820748086206747976650441155423894831200450620897233784300570037170283417449923872639414497410305236756540559295643676597925377125705976325277272129167254700823272370969539229374239279648867186645006802701116271162926475108271992727313557934225750449198521604473089637534752688938797392286824257167827518904083470253307302145337708620882578466699391472593647790671102503928411450182058279794923965024270602101008629638481259469525111422941875006347129663535432322683108241262025072437087096271058046651691574272651961457199228884521495716582533067717337561720115164342430386595336189944670071320564986775271937196211159828268575580851527174921480770741789659044284121109966151228869410740290065135386883654402475725746628664169840668367252938510524224091525059850772481804408165612952755381276334237971581511180564064242286137792681334099522032873099518100154083951113223482825016751700579062789906751729274352456910776361558649487949987284342741813797094725365200550502409098587027079242935345093741441562917388692070733299972550786160506305600005390946903132590486633627007256652992473362304745025052087630197987197501300746548671894018803134998620505315920904273281374326680521482757877081601739478581969186512193364815576290457646005415188276458887840262004456486452250985586030139974301761891496769080756695578486962906995536308499765688188978815510379327440222724941337165055160534944822389624974138442842597441145343164181750541336690810022290876133779685485503650689254651734650401087036036030597808793028530855593329693104348246670678429093812637555404721844450812741092147352700881227481443609674555365988045610898579250108343926890514192320744521332548172492781494816267306124907907292751195467393377388597475038956809980695716384213374992145070682426693509727925664530619385561147322028192840475835748662924857271521354517842126699418127039312575647528187519423334121562784156752607567581187712293013088862112852338193365669560016594387195248058599759677697507026431618929809577796493829009528524865418795543448286049072367672832604111553142306898211829173409277703278095991157103949903070379057210318285699550970310763318997794642870041090335902994426307252918402635941972624322321956540504540789975528964453874962800958381020306237339999591775521734613939751210620704355311208546236805656831184907094978193732957115978528766839072019843089522375181718545795227678415120128129715305241317506613683754752249818195459151364851355923259639261744303870127322618251456194471394996884194758539490158540505632771032359742312880259506791719939744471892430265438780867084348526546058932351104460126798572626861352554788022813742251004511023596412572721670889666530502106194235549084547579595338041318715119233940906941187769420711445931948261604219849526143801747297023646113766266704391283912669959042138952742265068952934258415704900181099156745850068576717024295769149224031862762285353331190995913448940749782688598543457681850290412263155601435618316847379463887422095165826355083116335575408902483598216075607734410015747039142133986352282836068131069378020660097463461706200582857063370292738771925149929919200681261999664927630404176909917276043799767866356435251132982905114411584610624998760417321272645068751179898973673355165064821205834773898125830207558540536831332185446356258202336168706605225526677752545530172393589132533685429927268665683348070875341407688960100661025128696032904902750167916087839487155578357172128893833926744289185212167306886461091236614423066093033935543235391760856965851201202113304886886384919679876137048178614022083051555114193463018612846235586267669737239767695553523407674334120821256146814061229409540440928202975744089719113787843306501232397403169302226685868260092086019434528016606344851600115530356220941577167489499655775720906919084731624651703887263358347796809044956585634200557062353678666619781145988195829559191398853519442707491674158939278561596370637242593352613700365028119842564807797759133079510681475205490219162810828476696302212440110955390667219003866729552276881805631923048592241504314097870793880093987395056084597992593055100854952294022734619442085992595538469131442508084757004407989346882353241192902196732662317532564520984988063465762312176649490454600999243312785979859409586424877050340479594613767332473904079042535453913342240725453566153005751288919228678333247826721673681143782297605115734263719391231122257250047741717078559879938498280189382962823439227082165656603707970867699798778384717932081239386668645414259228814068982785058303600461371883714923650111781434475222041187707985215185507560834170943617917808227987001847220911674572073518508904002403275304545390955108312317577009307448264065401471842850891291465657107176577047364062073657156836723026898903716476236164038328735723108500566230402273469132528144323842663746849704858221350893438837107217899250226473679788771692972281937990168781389366935176605072703105939222642185207497270171319216893702361598011010814022662384407125995040745755842643866091879394878578159427196335097298168437593897310751177474278599773397782202404325522029793876318664104571885318071602058451684288696390895192383713946291914419924930464270138509013915093596762927675029496902226747154950244696595314880064221604349364254954672711265577333513144784984098208805578876443333006386622712304187618865997994180049919082871688445878236199670613828723267984876117008239939249977575044700373088529435951086834486984806122425383364580015897884562901691031931731077040702121496688325895003942201099172312858214290026793328113869829971279866520502868330926866124139309458451577678967422361865846664841714426988268890576375246528554127635424128986220575053528523732308848188868525154736086219492102874897218629557895344140990926333043904599890484717056794361122055863195577239019082628587133733249562774803971570773643949139488560842150861196561399752075922685718974583087891196004383861111422090291831694727612353266749724681116495920363355713850505380227162236352834044988210070344953459718756245549940788422688780285479253523765100259540207467203065569248217755049788056380946566432821382273701096859238987607467784895230842682172900395317731033433209273629342225000853858070370301641263651422690319794481586079572288382949439439907984342554518886344623889285417584811807999168783516688800626361613411879745179190966132583957076933302544956130298388343150698937166526846496580868347941845615962467872355552623616265561493102860531655569256658772102993412330006846740604202523093894271282663947693005936384970703502314071320678585456058232207908307372064578682854497072586771672925671942612365465096935327362687968399159797785374523595064652077914885476920582159638352870369927033263643439688640715143701664246628039244905738871218311805210425629936396121755453111903652098819114327287565866266557286997037204043787730541392194738429113363659304563995870011562505502790791240104489228709545229892574836416810601674580858231337447108334586321993790478485123538913151755949467251783518884749493845180023605955895771364326743219048345139137987919285687932847640836506921269357524986574168707938234723099909003061805254113847391285664107521686830917156029291978325920195007154104816853604853739282608641564914614331090787884748829752346663757754520714957770136689519301569315265782888226553724544753901509641458538208537239010266789214312961752865341708535908647399196227456190674611461732186398469489842789343662393706095163295606533692908266475477853841157225060901705462375844377277841610960354234423420700350609448049743030375431290728165786798083611090490651688636216983073459631509745464497098563594810038050180020916191426042418121976646910428882048474856764149162601676483604708252010048134003860877553688926545130560196406904827075674805579634614525251533567932758646963574954495676426025895307182258627463752687306836782157527227190124224367163601927474216430722453828700171505080669870889983698492428879246215625885282273884031891532814232205103665454314317502466855474840341870250508171568021659531139970843668551029662372211359504166016582370631373086430410178214790040289319344543245016030998145896357774181988927083393994984974453450485205570615781719193612601560594613664908833388733042929493142788850316061629111104832494184856422146608282535348013086141782355686796017573287533572058903967094814225598386925950641355233135431882684491511274647144352308828990103937045425968359183260069160951978681440032056015078024936443604967902269217249752777417199552589049001600760799581733641804284410936988687641587528892733058861266459058549881144496551156092473528135266856088205524554065448584307123136470634825493790265687364492932664410570371692994493012633678146293278071652352009061575439925058021531516564630451228938800475790455320811763034478077845756179043665345207633350645001407725206293252275887351467838031479013005178247496429901225928034628155140627626837819003034231955631419435770181632712762878321740379498485227015194640199505069551358453990048904445783490792338499357477110215475024811300518431713063884470988751834065083289078991755619163922003298135722805552560762426415145634699946035428652497958164978275859980974054095548027725764815350792123690735682691035386874557303474687236865257969550012662430289612544358907947974803260913711211309251651627743832709593443858842378370655195927091122733308302689500162683958780072649945654286871503321759653098596929352074447940627699517401109282574122371117415733339647700659875514269156491143883700988424862334993128314571413344354520716468326116866257809227799427584939520668260455919295074092346360371729262020048876990140615458602646620357825760477264140555780912923288630606981170159650714099589690835715424833418238093746108434171613119946790296192716561875691980820466190625747432682734943579436780414812064063984851711926161334146394925432925026676963658253239639819525768179821871505513517253833502292957533912567404383503916902660820483464509438642176998713351700305757360154343101483939867325977531814394977293275724789661539197576992183730247485113772101840454497556218840920139427665641829448825954460234607549169875703810931318822458675625290979542835903596761878259033752494910657200150283483602767073029563464484471106114641652107054111781982564528004334203372897969594816337784320941319503970841784695551636979079002817681403044625320065390394056150295244616072853006080105887397474596402160824545898647181923443272627224808686537031918704912369114699438142712586846775271103406346454301229721621715746939310122608884133080716158176027285011063170207586384678994927906357712041876323867808290655060119408819480817523518099239480330896645566963688611343006688017115687574448069354401180045018435152191983325331092223769183413194914645108763958680190819154651686257677372079001746566357902625538785530063975552840240115197528844014453097614660798072010032962345357689293615322792176421309548026819930238145084149879800630329748797431076630594668355733077662828093333123440426861824101200057573325943424082021394632833101982885722101504999335494087777694822922303890241241387487691061590881545215897047621955423755483850296543976728231720222500845170052182577431543089524806289475635694568534548619965088748003408546068632092557380655795537172457889477186336859650679600456083976670087086863277812912307380713574018937555123081593440123770710750583458199784758387694992297906206018145086542670103749690918540436335443452084520514631209950433114187957472525802793135756907351123615845577515603687783416438162140252254172912607386712739604605426940407253844464453985203451499310216226516138597192885197494772611483978348377215541231176530053613031975712799914998119907569149543246454330836516709827420216049849760468102674002600325131408561512977056410564077417568761084499825759210084341942847634069163629183529656803756278728341941855802038847179520362645643660455310557167636867408483081672079629497762353168785950576040413999189140094734814869903242203056977209465921436270683614279534393304445813277658939669288151969401107237349702421861302256746789700606327055262520484557867572602489458668470122754953965654112301720823702523855710657260374789260514084183698624546827522865906199989964601072309835698238612905747509835922064477451338221027778052003797455165233325166214212603569346244987315440232766903072482417878078029446028870456931317152274561078743534094736390309670529369353743401540605793736495962097941911597895401148932494687110402520967296634707722342679845187194710282923896263833311874419292531967020521622906337352790678380643593562630609067193381453318342002117720467784873037440147131222544605694283474827760579198916360317835578649653490764556750127694865047224648497023978508229515360937554169504822682902396041476519685357068477378324854644109407434194346846262697785590578218246873723115191396548300145706752949588391410049580395013670694160660682290006413437379890312314369668376877829363784091620129817570657663405195216158483313048393483303523076158596105139727042852326918939216563260594408840801540504451243628099579345259216653289827647355953033886561581140694545151418587081453649015156171906703222182276960516996441829196121569607262517535398693516077272748126771168548031544306194006751266894720244375616156365982733626438442667536224139510332613354963605214280608826617526403978284705770573170942301611499189353579726400906861286702620902936473298830831428387533537121873161367330085786906125327352180430321516320194646254912015163787800066583358688378430804167646419851887475387850627029229296489242860012868889353369882608628212184042502781958773940664556586517642547968278339266004389800012945142149747108945836547208192853167563482864688404713981558910932065040198960896672851879871966836331317124442832074662167912661234929313149935976439172688769483615179677589104423353894377787661598973188557342705026124535129095949860315049712608980158251401464774327815333084855703006024801338315107516652331099869603220339848036685366023129431140873537944082856061381337480390668554053538387444400640213129972305537483004094544165548324500899786189162059084112857370833330370020598047611572901057582647025609808386151840566323803348874645272744343849529638440257707773324554856920773533287663776034706646838895517056141259044862416306260064730696065431702461997137683496626135394249657965773583346875166182195339476173392508113064916439701238522011001215553048234777328143783222936960682508346165600851413746929393071699422929726833151012332998833621515403336922943056552319558711920292856197041564706791752931544950349044490513370926349499910662058775149427778171333947516241103876776265218663228003240274706943887878646961024805891128695220128793795730452004069227358159181885494134920534683930087850660505564413167059653675935439294458194359304597106342605205807024018986316293424747347065944914883160447048407635556142456418284734131961406079936540432080866321562171557758986348965463517816796407851192049426146527497202155333572568306523307345079362146566547059824807598757427756357975937512527103510507794873344838478089146051457066666312614542660753905414726800961695098881921732829035959087563391460738571593506741727579235964328443098701640295792116303169744895797161450003330691731425793645155742513730846617176513032816728381308202535120267957341420490474938512454032219928610212001194570347922311321403420602505952795107671630486279039216046819847019426855746464701212681397476164456488538871711813017811851741226054710203700593666274047588187944795340626899522358478766447058523979993239676618246323072421650295840827437145790813457143521385282487717956514075934342751263058902035823928898214601164368189078393378386724402774771823304508587155094284511729411956650452109531007714945053489686808812939610983503676257659853799056336167108000431172079614872119535771610190282250782960358018643878037181362896040307093262803287971092440168349933810698381725413305837143207934894799836163562976737199391761951804657186837815548288327655372815710636795319021196748240551485609598696076509825670756625114548603545653848981443237868731402280598662206155090024565244375481023536479117752053148658518074430492081803371478952436397973391376113410612026941329080405942538560919854404554152573435477140307880542501020476883844251419696461819758356531955033902784417409346294102352589455853447216749782856640783667510414196209652943403156470548628456213777326364881374870859652032949593251933575095653489078186616716218413550511113782057888321664946168261417849766194188014169757698333915740890954045548207937526983768546353163926569232129309004643188260829665809769979045744144620137658543743387311802972357220198985599755522415860727396760046940807486939278012418196089579462492944679815845629682603812237487036725023058594980794044849696231327426471527024350871592719127655772711162568082267646497090073651088222647839773583231296864702606069466523932268327829616826801296390045803842644872516896090127631784732400683141716464345534655265086756369665114519626529971625490549221746230461911679729861667603419430103489556513882721233194798033247575056095026287100462624697534961444968093914362482049098133393721845224305900250958018727992103926912306576836046931020310174150347407464669909098456829481107048071677597627903047811183297077603816199943228665829359152058965539089234208737541613877614568230069014450606055048172065253331062703475015707376060637947617178128019901935620349188973834221208809864499233059535305991732587124670207490633181691015426302599250097286033624311225238814970502574453291007336980364132659404006562182182856334210557189865813017242329303978391686360498198285178857152781263300325372964243701183912970361582999036424504285148663410533325990028127690821015895232999147154017937442558333834473751005746781441871356786115338593860094791295365566407508731972912144748678108053854945922710286872110815442169870295544678483686634927135618753120451457759288742333729245467927278720329992782676427541942857679867928577320714236579744026959646965799653240939213891373152637535859134094090059464191988452716006242802070441284185447883951521882142571569974765504204625862757177493112183603158913603934270251895971271983078615203307733968398854821600490167181315935706491204437556453274365371993131650305045737387411539954590078634610704946633648922569151355538093283228799581087483181917825751057894523997501204652792428475037980730093589497827492414279378423565438494524747991278150332175999372088698538613748702236290676829586277832687836644699355135843425526180362171125880697100417913614587641322988936477634900570358608043617337234414838327422845414191998966503378084818343595891524711216732135192465191948602490948832363315620032924957390458658628494775018430690594433001896721044128387070077788578156385021250911721843347242466624105262099410199372735331192723169546020677274220123464190899863857586796991093490278855343745044218731902997401010317197839262123715460399885954935587843597444573599897210448513894551494892485872853557194188924839025240274837235509448653522760990435350942401883339276935692029184151880761750971036076733854050017887918314083354498869681305988045307791615107300599054944336095340571285417188434112390247825494250665222446320005345636392358658541817454375256627442573098168211971053021094292653464710992873108932229441600713102481917734864951485841506815019315741782755331769683760104322696809881282682803052355429901576829230622584732542792415477110840549650624621921889398445354728953217546519555877353345323611076188604874769721670205397048489893860704792181526110372840587101666362880379612457435549988321408993380602957016033676121171744577232888268743111079906492425632848825925913186829728030483301965314065082720927162604565291658649913763529202460597416055386030458526577423321000166335062974176022154751938046448003329456245990152119815255564458377577311275531251231839156138020271274065245927636738894424423306252825955367885840232333229054542859577848577521369891023576846759925864540107214034196436416806499896692470360023364284897908411878200912336598088673650591475624554691982093097776306915293640998163216338473285914730372060271051981105726986097495019612853610745459719085723856598728782560976596569045455643751320396570840750670884926799680605585943164760003706943082397746312067765085718486093895946623080981140364793479214523619718790092197830081224146914405777041963247624547476501818034725444905764132221191977983627813978258354045919868428014403085450318172709365844464218361338699300093697233429298260425536498196405411278393096477668599722592415183248246129265723156131299850215294452353893174207129504950173007404256541437504841223762949819939878784371756219867814620267406112327377336079471466131428144498415923053344479632549358108632623235753468332634713190585425731290357679578843887292776721437104211673417508149857010405419318980155322397057670654835193750125767957984967910656490258635101563353352876883374640470849058761879868762185065848379449669353315890706631579267160208671879465895141405998882200750716610191241076924104950168841727589436330611677723218379852335068198845756638898600545044432654863134613173218236909485011715866444125141688516834112979176367936597077564687669910171206638803789853848066401368300159221777083123110455566297495894589913885127782576264431026004756482126771996398714866951301193832025209167777745143470513894919309246378079393491420158367055647304790788669450140078675810972036242350724646138508645252892625746516563045637182371307971748454587155374044772935073985410035590653903892190847034563725681494977044360707956680896523304768247970815007501105632929114106785348915691226670078210878939226717810171408301768500923034069631732225576529611965051385160663500901291724040226774392693276017438724696979779913282082803635655094504162124224152336138072459804236553330338871805164574010359257726032713836800583295183505515042921495105065740028747181159876476911646109060045329452004884983191082034210659656878659736290063281427238885063858580201704136078891888614886123503396543013072266904134334132904865258113944178646859236291868529347895580736092690224873760250885930850192424926286382444984488133200408571401343013832502766159461955985990857147028325672301770639501185935775055605732277769237528131320611215942438449363577065336836642610600748074522408271515955767808667850349413246471443794647266263739588851826953293260133684271790399935493464614032672032967809901599851224848101622280875960981983909629584417496881051309157023785878088153794635050765771631237693638576007190022762684244418787512280943136185425219757367898136979156997728736482144320310509744525850933223035297312442983659564609895048634808969287353012049099498728723577473442825835695840500086424604171105955769592518287813152342470316441425147614943084519131586416749413275277163009460196748698576384965262727080066979230658765007062635707103428440443664275831691016405670696721582195413235220034510000828793453539930193452132923936765281879686104072887273255729564864575112413362875438645551259559340968894050065066205909552435899463512351803307255333173000009303314157600479174758967877656413860125973225780163760653852530217541494916930741955367467923490311162273293691008076640911346956726067745586680357931010867447999075793240256145144738675764689288615056832940006047863186950258819826519555197097399370740961650005453224426865896656452597143342691710279833126661409861162296680260588279377711032017785547943958018180395042171174159067369778417322671021545913061489589601958973845514962164742559365147024526022488180591189800138128008010307782962009877426891348233032259398566022406754438860484173045232995922241724259559786567365096216553059430535039483418383895032314505737034928712807580076334906715566529897785462366556746086012796542046393664463120957821793148155613800253624612322094420228992690593217912081375984217511541212047419417328230147314736723683194941954989732050613999753589608039556107234662005198306399780725174188799943868627683243356306698686607772775065904350198149138580030813007969867953761806480274728018295092143077144371632436720064869129995546337578272388771218069645266130156501561156924003060588811843826685176179575326357857712182614456410599090726824892548743027072142905916080676052580409252780940620002864561782570171735848681269392218012184412095183957544999027658020006495082400593507381683370784712982020498827438740858316146628055658430161863458082245732362142362282707717106460299474460792387180808349886828837974676577186899737134593287854408222174755253530194478205069130953165019542275113387758385783182205521045609805344343799252165280179684813621101071902004353364352117123395868765428093848064009832626275992053323289495923932200244278548873474601909669371096957751423272629171050755847224970881926128222093485207605974911847774860851910418248072840407536790231573364307225082589607356001599538281904360906295840978809930260981585020474009142053203924957174405565635733338486126032613244024951558848346704512650202059645585243167171215149754499946813459668744290055203115304653651112241306389581988484448928875648537954019534573793531793123115627027410552538953060043976151200644485090898849088926187688064288563971271272689539089104754381762525474123239374416355787800527875022416146662405232379008884685054644333856045617576231344503118312161150291781350316885180335113660996369396979323796125331818951524589045175226067119416361119380088594974012674787640924661355663935632769492266284426409946341611775721701138687901915618548111562218972594361244651994698728864734692341105984022480426556888882670701818988293149073808162567138243916616814422211679857198882069271314899094549746895902222606801692217975055752545239517094872558323121378405929321975338713544127282317586803298536070504464154183374331757057552096153456226733553548803172435076477948608186637729944442749511083469182015827484211145149994617199169134262439542405940471831684064598167847108547765934520390283154267924481545632925869723697964148934829104438081772619477981708374214490793053486972807857584425265105156898739841344208065266219458858571459972154224636220880370257076244740904443309300043812743192386602344525155602226270772164865807349400865564682901268522397294311602570015005250542855092919852282438170558810040379646678133261963919696751045957909107366581809426623525913531033908152964215338873041409981474058618443374447773605508234848548525212828306094331251153831657171095735948495925789147322549296631612922749881759341180338575619355169125925342178290668758516268145361879889158139557666806668654364870972717228883844091082776198985119194960523352483204359252085431310711200652584750439404642419524193433768862804053703601014927235080307893101015898802107484312319379168725366165693879398949928879744527277441652191522432149807308091755719626718836385471990208640899714008074857736410175063039300424810462477345950670981200565738267737187478318934187293159992175400208443018552829714514945267958976757581783413543465470817167974872767622202181796707527275104085042414164790773741174128715883056084548024601288685559836160158405390120193096271940060553625322652973692544409997467054632561664903374057993863766254596063516717214857039530110656345712101118130912233257200331040680592666308417699215997745608718657894066124514710249207147327123961468047319607845659630333080459570994741093360994373761556889406861044440598382027221298349212997409780984108016936380864645707155160525582802548951329728862986419926623375616125649446519929670156760204026704291441246335619937700437868934936185041351793633964062543191605832640515574416782921449773632389851166918263821045871586849426406113019355799609497920405470242800615664469574313363918147919760782074695610180677906473625119923580225829729257074741543139223731132618765835066683655480640325565288705323176231136761455352683864638861315801122884685507910320154237795499332496750893088524870244609816991675602024697543951098032820150171215920824979183242304362730309228045685837121744595754449011392937394548747496882979278036045050687595075116294113828669960119894820556796037324946071583701689816654252904464298063195662382286953797137528442394949114179081989170447576748165140686660509786495418933936755520746176712833392670477530738387950489140441662646927041890161985216876068531682283368322119150445499799861781404164296577780998498606931216813991465869259915541666221133099065183916115847908346615122193756983786286909190170820347333001216433001237130940514067266052685006391527507997242595165811711505093747623147513694107186452434678457649243918174933665914579278687658294107387539064994280175723142360414481574607388381933292256381234212252120672485209991269812061880781945599271269912655934552585694456560262430652480994385533967575928922956321396702330866374441326489092264568518295990850549881787314134148628960163014084454266813097118406865055529337909958630146917273831439495155034385708801163129626044789842089384863247709983548413568608006980244268510919653001956397939094481781169580735572924800139943343267967526591344836353773532341117849343017532479214866062003832886316055871720655187252513187699413640767618752283519873789316908723188764478641113975030338831889162782125211446914312264332849877561790841910451935000833157765924333330800126973600280211520441212190997896587283624395253399522336417329040930779495998566263692429072867870849726594896038949172901749951629224586344238928413971506452165496233066973674366407744393924925660306814891575827418822722398447089300368555224729940992407165398327457241121415385666495081920713417658174497127746379942684528697038938780885146432763770311076774027495234276453514160754430459076257221250825665195858725610461427668875680871939390284674719362836009424008648631515897590018489764862626641473690592056271412685867096171113279001980072952991715230738301369090264086571635184307412576252055504988508269676120143134666336819979992311497326471495821507670391571692426724250065361158715884907751321876933246070706319175213647744797104835010965278257436668321703749362333690348568583760524272044447536260240858140111314486284897433727042537724383379358001664018159689108590231865610193833468305723896142042981281403272289534269797671455211467790878094403164929042698953939102439861480212004112601387533604301846803119946023866412695079255386824710555811991581237263315388340177664503028500972411362715807008906637794341217651924494551900141431890498854556119748067024161708285809808985482356937770036529883375859953657083770946241805213458085925088357088584301242769104097133596711179043831649292448845794563891759922098937742328882609269794197918993871424256033889489244237405552325722239048961648269440559268727154043081482263407511536131924586207471710454324532517157705085795197910874733652643272341943360729899430699147643757265486313906479245471421444528388947469891380750155565196542548587833885056335342612028396580306434627019207809007760571916883931989170858967530379945195630624409960460477296290664375900681191093002379577956540500591594360897276133266182407955463352747705865335379277502042286766378078039460972072596355755985022224122558712169369649386175338549165180503194053477914590765754199928499650819732040452879568743797303640322806076338241155350369098156105121529269414406502896110648646740781671373776211706770200335742795859340751281106065592995737482769045637030006739194193701361245507053953777440270495392195003099499074367999113971745405912936270180818934974942715478183927580783995712845803014792003447577661231147190066080870170218297816569985081082361457583051659266489071047543519763972704697566550327002141923730256848931400442240835739366380176768667031715430151278012859923208176359492381014041508345160368602363750389213082872341425420080892509058407100907956067182826345659616423026302804235601303102575285442488157816950670747057446116933644858900963381032737710906734501137948009021635713585602999460058055604562288205194450800676230916030541031024432519418340898455715890401925321742974711752931426391128923446024229168073146222975012653450938540763766669168308982230333757877486265545206370776213881569991513638810785330045654156731971161665283024316277495426512635657915719032842978838941434103805159998840498037112519246795507144103373631703876323101507327796339286457940973346571807564260035314546786225774004091844570566899254094944115982830983786546675315205884353914366931945910844405891851896844862230682535940298007102953629580278722204774313679812075868154457992676920462645207705349778565579002347285245060040798698219970607335768388181581659039425155394100408106316972583596515901840008038207954005170020892829576618423482283544648131410808181817361276727028445779535220759981645330641476444483634973908108458275672056740981411100802949831794798782348956195447765294807124968346497637920480031786463943822823212908821076096304578144459888179144095300895067274129236589824944995958473821584175915470481861884067531995673724739765414900201874521479838176241811779421108997930593610106730235354213539087617207697563034301774752621630175851679959380616530984351023126490339107585082636982430762637086672416161360387183647604322784273391190067450285887035760636096464167408193545695264720540442214230279159406127583057728380877054003845399938458283980630756473171328054382037914220703115285641105339730008331095511317491682286056960762573413968263223763320108990090945178101479488271908273335505065849695302035063324105908933777956547932925975767287484292298941019558328020999949351603521048983564127973627805147888779251736116484066085549358709887398796804299797417126768273436829738473531515707777760364106859923462200024293777921029905999297665570806422169162440766623216589887983952550951183701081793202528008863321122756433015243777284300026048194603207298251804001953045721494959891585126934319177512891026182626760228206961691498492091842079981982545223919780546716143347548122952505689652246633182482983202639077241960829272655480682230529097069306210791167663903651137682340288406451712244372379879644057791085523341514784464594852879316589038525205339579133629141692952914959731015565474833805272981704146938392488065700615124022777680650886193125559434306379092145564796038950843761227635064036772643438134306140766601798780029200891556351012551739024816586964266094627461055731155645338191173699083085133000196192710710964322721030559767244359890557044364273972634009168087346622923990784775879341414779378518701068105756407904724528748602136397855265565044373305550992391999369190333872157442531746907171168226808623804266308656124363650494333306680769128462675205311662289940304932336592895367475643472295231923853010797916379865960177923101056296157079871116797068519808559889291990651245913073540314560214996122184048723001942549845404204049063836901325642330748305897728089717559122277091168905210183832410069050799960071007710151603306287687513402611937429704460138630662529881754498180627864062351515069484740949233152081590698729435541179214693564016804486523121345394086151400745888299463791998957201463476679285593192015680189554014667939591144339983822417393855116342876854031362685326383151954425564450159834001970456254754346575642471627743905124002277078234420683523038561214327039235370774891016809171130531898404150858051032883738471285587406711821195059692029925278359323587416764207459330816915637438962154011207899359385230213329499523219868012337677388063407542229341922614957025155764621868114047389358144504387928837233185686041552448775545690086495306207717572905044185070550389399506791020687879882119890802787547433694200230541154288228018615333949029253066763032665737872476409632494123479023701603736181592747477231549066577804855006806822413578752150973669614270756472017741364250146076893711523347145030590952468971524483071174153415314115854805359573311204175289468256665032330010914483196845340331449300240960538695832335746197942790174794289059383396890122184863426537826488384018119272930422824630780386027263857813707691422232784027934591158780438837767336485341648460980978891623213061999219242781531236296975090963565916457008374962853197726233159870523376667121572600664129481586504620270537129619313185326256152969321538355683698807737479818972188016197119378397179391416903853531283225323541246524282643979704292277628855502226844962685282656201825305423963569999153793438130074600250575105788101300540765784554627840492916953175774302755152208613988560211855536274666561957639338254324372772754593743654210424022951964843939577059223794329384660202996095850260980033824727716045410624130656623612817537320329993023943623108879988297584258976658528069484781523786986095646172878679188847964455601590782107991789567137691876127307297387766728000987819530811438548115246538242624367398940858238430449590886259983708495483608598789776116348311479120738955258356470560837855775547761774029946740390072069306157194743728428514217613652734493805940702374121150674670664871454635722800893931987962181653226462633937379947579723427453744905249140104581101159612524416965043606113292960866128748235735541239898737366582251014129612087482552683098035201066527498649347682491817461169924438574016906385638917464393794396942916509516566576801233551411374035879880911332522075390269818000985564050216231645507628505273477116135913011601670984116756499865768588527567638726356425939665240334832466186644510179193248913186668233093383066401592726661166472026532724180657317624958298042746413209028496952925156906177963933648205928232235161721757366912096930519927901937548634045619438212329062516250149235746661393483979829578090108664492608425398913798074163937789055020465532747567217838201677068271534482754667651985253395140152730766757121402233286966122880228633927944048193616914441123399969141881278370101647072267265510074128171349737701357238571823507799507765880347424034932197099266528560128301416446356410319224644613142940446550470809073646747462073799271771580103816803692976071978135715501660378763685776206593043674546231977396752817621139707155661800005348896537414394326163523080655785398251289910829748973118875571747631237533509884668932822890984120157091455932304779659782454148432122383840649381588367446397878747520746933515445437770112484364385860022020105755045161550557628209031782666878980241099567857484573420626786874280685659993222888716491987336949809958191404691185822226661708109377316604160085606235614945820731851652843287967011170504069949469427091960919784451100075694532201978744361781072816109163836554247438427800718471195528489269363851416534151989967815656797811211134170415332285677893145838282927284545513055254825725105425232726320083694199613140889205663097043057190484922158823992212316826909836566484518280207214599574176697416629305169424488687685909293847345696313724363830281691035870332381115648026932879707167558414638330464082916733144632421524565263828689729738137053547211034895128021566396682633983153455087160884588548974421468067039025361275329203358263286859273646134967947965760485307416330961630352919846031154992252514373516059573290288901989402251387237291750168304131795146282679980662210996455530450174021287499892812195054963377701334601054401397455602578096729787429910871052001741110509503966764014566114979677863398546061136725546809156756841873521565117687043204934461346060698328143212372099435980074231760462779633380915255657530718764442209679391172754306874464147647143320533182415321629561122562042347982504936106185460700339969011767612654185111561779525980373465690540153655753666433144259377783070051668435066520286038834961718884137425285987272506264440154550836477605292434721199167955165396654589752936001095620553587362288035168072646889826105357645895707532036131014336559102837705460700873400887241480839244665783785938905251547217143849727779528607801191812195595252762675499975011217045049229716377359980385256814900290924334416836388769721341974374771865896415383550753015277129934221299162256280127396479431997281120164896688127377309691277730378832747262369033962929578774435666300662241596109468507885281292997734036826766897587193413585970157572492284520663985123157662792692755735534035310828995155251594302035248214419330580269750831246851419153715352965553287589798312463714899041980671234988335763336942729053366735601348345740396626468059711822302332409603959262378781975770214033984807301256638434723525612580127381758200155501452345657361060632364440945673841958221972932655465911567830097035028399898778128258783703363417692826334525501087084246900733195738454426019677099706486152618673645298312929858182387205866997403214305364792231998969381588557740643566251943550505718935569635634450236960792927907542774852005852709917301333379991558940753466258081724621909379468418859072846829694675209386885869205000556164701368020150751759958933795825364354336940446284602774462310181603535892662767245687838654663818757182347974038127439204031015167936603559575921933406729391584163225329078511493498763944334396712462697230612714499987780894821480527791332099249648189981259624755170326666225655592749571461502242586455350939861710551058766480309536863548663391895151582419927394752666134479236070882456238360462341043740581853372218705395327550218347969329992749421720532712227789320307367335375704198675321318521500378003541515924519725966322191242551367351491726808376534775404870120947355352180813701365034227844693009181016321490076235955007936979202725234080919469144242947156584295978085349736256007073231303528417849433978963237704484722373553226229078438571210585088910162988405123412407197972099067079014424797451389308958879011932536211592613069665986468971842564265425179495907893212125665655365789344537875015873828494590778425699896621278323665010138654450240790424939566412092276155596624501928916532455630606770176647074274318519313003304529901494133906633546935603275981200786687295525603553929210530437731561088639008447207697295032515568642262355320193301123003956711390035006033587974989712955489435619920024617639173392927797443926985691190137724681729996558936713765491884161001429621275611967017028039659397618146161230742866334129185604366265166142183880475342771505828636894552647962594318641782759477939039385355370585026521873179459276331747187129064401146576003755315623099441046679759969633490405837446936580093460843081521144576463694017227016493363802833986825686597719853262694689443140795482226572778115874546310582366484386292422205386871139615439286784446237830882392294760435780197039250361202055977359935376708087460136383559430095318510828283224439427544156774032942113441290341528177803790639445537778880431784214486940592160033628730186705821821222271573238013563676235594044652674794580861108597274005271765472252233919994316899929909730490276714226739711396276970663445347613745465957612792976622317729434944723449094936105314428802254159549900298780629730393990516605953745376854978549366768088813152163852381991123000661561013553810380528673774731312485302059647246429862798021844617720631433400729432729003479280575763211164873660922832100132209987288437498513505292519038094157589761246941042080258919820946039900057407890829779139103649674325940125054520979456322046879830622507039445532826450577648473798601524347277673234470789968506896398244123929010055883740105374797792173640182976933563693505267735056574516049713043665012924553181726086875881654570469089921406023561192764493777345687375066409635258259595684266647186604349404946207993723680841086895151754868813642990882571473545470273382387364153707788264255555562154702425200600495456816132076552343348787621568346231475295030129278909495116742966010138395526668385975891876514278403798484590852535655081371856862899039491029127934375956087990061799655915251338635523664838512386486487007177619923909910938461331667631204533656518950399512281670036031213541405748000993989557360458135855502494363969284571312050768549554153826490367838847987950171999682990572040103304148856938182420431750427829124136765426932721925377764092926362150801162454101270881774794796138163483385259329803106901191643551284806506161008028156372595168695996143665814350194402631867363670284507935775355463234959233603408917739404124808697145959337794123731973358989955665427419388522121450671691232133891815757076366573547539094491714990414842848209964694478692253078262958705303149424461640861309646692363898875839159495340369788347932400495392023581871733731704933856119707589390367338328896565786957911766120367297578703773223468495649974234030259347056390763752474878547610547993877029903728629364812383856563511713970428701913799125683156157759533912312080635409367720268343264646739131712427997564172929470240878906066015410509396114024133769213645825965356551502729415017607852545143004163266847323949292395442982998238144573913850075503244354032584779620326191235103273053473588753643301444154339846178118169344313976392697373879015076317713292283089701997653845775438151442752599719422385081375424732352675779206550972474802465006954868274103070945271824819353479006307713376643653379866836397245918895696825025684143286433953145922003815150327025773638379845517636787903750991020963864353155921823572011547651335728893517731410834876578938482896651574476999603329518244504549528432338983839555592463351785753881383454567366701217072999823426350473120528123216222818578190759257723956195969362017438780939304154088699182322761116036553503603461833413206154148334947767546861710180276047946000035124353873329704850498224298502513697552107026276388599411387072384719907420936640877425317247092233152801114110986438913380652455166844783516852231503705658801460914637609534709012788423289578533499125599160181488197808583065343720036652088999081736804939176144040937094166447829002588918287066218163118545227137439199604920050452724668291690673644434119037622180296594979431902013865352472050425980302176223916376448139999156456885021227063630879358135102434877320941507168610740703769804602693212732596105209256061239806136606865875284750947831751010967226049933295923632016191336264966366712649834481423565305832403979189894774157089448420238350539767362250573031549650739635585936974872852370945026500922582504338449559335043644747013393868386804986883344774762759587036582108759251968249775134780843647350689896578984998443722725906532956038853181277468467682537815997567761152928867706570026623477794821199594214213511483788564258906455076476738906267038562651733555957189794450558460237912487304070983414192533593278107404669772632170102282221529125755944632250986223097425995936302688668422855423503031135232279413198853471811490168153991993430146904785986904201693324665730883279268570047512557093031337258341772347157058044666917144859853898236790441736363655094893907125538502249197640276189122414972874965383435382879771485166128099167256174641579345320302998196476556787679797879596435654527558748008561015451638328397671359446598144322260865836638595207373599090645358940793805606902498730487640892338988998678614865824376388415790676278393102743273253697126522345588255680186550637451925223817213736016379644854558561017336073615214591069393713472455770171105423508739935400702377401202046226437386994634682937204202491280439373539874104283824722571388931721898623943307424339857099852133488775856223361008641794036684028868468396918954857517796998180514312478171130831894363932166952272500165719349249953473765085993673185568350540451664130331794851653683225226576412302870250527046835677510842657218333974710721102429741935793223324541400397396304854716914516027887997856999174135696259672664186501236520707317970210782652525512458580932726870418199640596344819870523472507676452441416527737486933616271255363616447878769946290708451815114901467164010459812029396874397107065595047017082457489835994878801931414524407317132672521536052220772527069873159593496002626705409499125286581599191778000538147773696344377961766206046795929724207483710487007041496352235663716367970239575800726331664097554555627919212881696697414270817819261482930965959096233584467178053212921072890639949376786648125341638790742754629425782819733592775669865134898893132747891364326135951497052294160801394345277946200067849696952732353421680252703640430808252264646818036360983409423630461441594841989224515149352242086996480446989092625503381554854940195969576954716525237535987581579274534591853260738051732097391177127857984238037354849681156510736787021157249011527982990300951880796743391560770066945970750152274604250739114592911227487709031907432042167945289675387913068385263450300174116672339313324796617705964467408239383916501630155944891621185984129731827049976612198947874378839989903905947946050268730342849040284919343693367392342113357370897001654099818643633016380794864255793501106700967127399578617877267189978605117666178869425520606435395837741639781946800776051548087199340287272853121611139188673949037158772652402835492004133284180682963831557249558435943924306641063963347037343575270568492674374784006683225084695864840358329784539209660512280170898242537310619026118532515312786878531025748663612667111945549045371665521648149864625660541913685892541740555692874136893994418509641323058553403279682383288852968092153499046969393589615638935672033644711912324259326850618749518056601596889099714811759836590590112307820131993038226076099241888396085125547729383504268551005868025462375452245003979533574561932989051949591174823332642977300301040894804696552380293313408956478246218160339499024803759086544812579569001787254262702205930663774771875790442163224935766906085887087386157688155738435359683123718410542445591357641043352830246051621900099311924224755454387583866527669588380604400723124363650502238342189165408482858752319813067744242289283491185589628732868282666190311586092474478377068535945077524238967887556646849178093947531223417500919951888917005174137324859281966307362789041278337595725660355502034425939458521467347314236482296440254235327198428018266383168044651928985919541457371991168116841953124614518611596336454094558471211114356573077746299336431526452185763668532996933655478075282962220594079141538741892701021730601819578500110626148663643982705582351742957308660756062009199688738945866413265413927456010948762648133626881883917051756736770620521257899153738972506834475903747558246164633328952156769749096824182418674636903950371140884323054516079778867069409836295165432364262731063167897920012323588406438248141542745485495292668387521209892696108007196499685396047192536015943677064480039301261795871269389902248074373253565686022581330461674195261999620681376134124994849389697712498674231878432703350895008353832216033035092889298739726994017174862196784671054745148823496527166381773831156945204094395082785930337097600848690478960223863134771983893843532241491060935616667515380335870623652466121285598759838738515052887859756918901231126358474566777639958661571352477546213443442425096138534188676565343963853672028565753085782264141895583498735804530185089358071216324895654250056247914429373140093624637546166956714109372282737471412585917589716868518474783818844453712598474677546786568238112948044551371805292035187178547309975310405757797640658242816662702174437119281752933172519792669366419964094765246573617273505963576023827696214795697814624382837318965687631407274252649212560530274021064095467448416570659452352381605544042250130443462952804271543632348435820926343078645470132999403665956018719263291598050293023768474379814828009831101479536530873793195091663145300657871267132069462700513898010788934334220961181404537272672540472692430298615297744542265443947991841116313507469828752020890940351754926325730054695531737090973890546862840783309057149249539907104923118578217790101279899651359369184412341716941825360392622184637533613046002822553252588252409681293845756611012578225694619107382126365186701926432239791164332871657471973747654388516004489414961270671636884614841226500109135434987348144199530061136160499374599234973323945275671907723751861068917078445516572410146154667515562796980791625091056985742453453343380468073562601797138346008231470813573980850396107881139428878055477226915636690864835652139179875564300213323757514852842342129224723136177635011679217138749390488260363232991365169073632133517173057798410069205080514893928492302170404452960913385215241459617184873789594791579464242855237820121928001603929000043102272173566460675922288970588726373459859652630021429668901623420089743292159521726025079521835307407583413848542369145146731440186482304216067543746084110946531855698457642101701114498924782632246588338962774140291043553114394598143201742274496936641857497258671429613177887039638112765120422338060763045268971177141134984442481952246104777234287771329770838781881436144520131647231449857830125140005630481088877704694596727382225526762975757055722787407194172121243550983018385455776634500487358577893742944145937374025166984890922212180962544558248406041440997415101599140385472911291023555107735222066002196209343403681997745125914157471038378617851835188012538602723979502263360177886719909874971149918177022125091516316473787450376084299419556943577840189137296596613125076522002138093100121878963285644641230259508831014741087335991167276612269189308375765839140248072563065268199368659654481310889398619131665059621343608890671245633508808934197444816812706536126329496991520393550772094474753232414498527330385922879640485710647423337598304340855665588384495165265010482515371116183108950786618402507683738433018214870263117875989247634961597827170173167186168955798881263736609514773761008839703981013935555043274624592441529403775047284852909531251771273110801835094683137208511126538298159386244668661861260203422848121063240666118276261657548307385157510965407130363491712036247379318247226536685187220277730172097926298336102869723340230393232545743549713242489090706037533817238773512864086282393449530379974153711511765587168380892595918797111660818125954270813465026521992766429966365844780752055623059691255133796832918754896566093962626650445111856790227105267366030068593196861911422993384783036939220025670011445693142989987194046100893329877434115305977338965623595471810220695860157398690638420799859797000283616669171924497116205804176784182999004954674790626886166731611177147406476704392409820100746058441811300613648142673295022367480788864350521057161984646322014343060812343814447126912370316906199940844746106236744810359583263352658196348915287635404287430960394227427953893556362545271656649161355393473286814716951577986503644806672093329383618855764801956863391154790475734386835325534810861840904612660027026922126100075680170460545926070779891842180806394115475667297660686368967067637714556559608619837891872829352460300576346439694035660171703052304357176754969905649277724339190595284766298277235069557103249246336513058544877939471875624073337061401516874685534007799159490839995894647224596929582989839340064991191880846793390773224037276329490292642479728338889409881891465505764886648287798660263160877505567729412550766234577505354585814825833829350325822017145212024765869162920290424610728274945844174308505501889071088890698191782067372389288159407736377174572348941080647942556121197271742928518211871170060418417894474061168411982562963089894939840267691478095252016659010505592982413816213570641126485144064840662829880384560643163029282879184573127951477810362091409457267295886318764655083538355555289077828705590868253120026339099073473784569940169344752566450921148884219873340677766431402679123761381150408110060830248411918363800871656233887044181477143986167438534085031914689034964741415674048413483166832734854911591473577038145294524048253760039772890902351751008200066984209361176928690898994598054047163422460993154894012016202497243198924653365602385629457933355276767221195279685474112842938218725929522597465988646594186799699591616736706541848941805223174984036546238584170846766552748617442377811745267893006809042972789704613129796387110858035983530667387870501896508282746792684723400546669479264310420345702333972661355971893757167508815063808969344058376248481453149606347940869300847436751855097210588557166503148087255036160264060016869205800329114989083425315598609395776977206453371982634762073239314029151334907496051700210728160354183233373902989617810799058471357499311124581500428590098811103818425591208780458661147662092276392669573296166925480783551555231863842797287510042402377820417301706404637317870555197257718568656097424819854989191896599802464243046045037004821185339078848007849298735693283182486393818679347833464550676007771750570739956525960929100282475996284927979891334902300342467179469165431167048714259315722677005105092960981219520404581922642538602402540927058092457608528678564259260425178395453285129230019931758078058592858134223287012775818752704672169635869735677578767996008764373466695130175100935954257879591361372850797683960011266802125509881810975971421070746694124033782782999833831327574966625238807023237452464996232189557800057154483867508001806855463261518050458316805383981227401147127308550861442928297320190822058845700238398481510953474603684795286875521981851536852774383470130745085990651347009072471336606040383530695628844740054722295496281445775678382979194910306522138120296581640284768871211311322505453292059993097664526389212188985695142476601028037732868387242714885281610435960035961378696778944308884736810935263835748651500370484110946850248512257450413155822921740417385292272869188056023513683927570850237488060650083042222820426207665284552227191429183651812062290956512581934702823907699859843987212961353396540438833567431647250349374417929607121141534229240745456970477930168477419136578809498158706453267892162371925740230887122593616592828621436531577661951717222739960296296083535647158705305672331112444097440172388536141127411693517877785402609144192787976844409938378924926425290576289467685921102250169193351484251260696522192461430036609757113877557169800458277370369777867843709864733176254300789098121366583620103217074611564618085831701234501593417178665558738451014968068564205763398998998877741854829667969142382191732704649823324642061010470315812759381007199370643906377227391071238025404348484859089930390123733291529673386155186619794023277350590647899907374449759363279072499658299771916425974337930966742949262290620668909351209000436498720304593160513670022549147402107836155862291728775367865243456079531121325144025352260470996685352124799110851621041643769813065274935146669327940958766512621920578071359341574040597275964685106357079568712035771928060372996723815652788467756587311826898492301709830834822240654490802244883371722428695476928505147527502669526840891810037293295251116272801692405761125683401545176579639726341048591971270938481884633692865383001979013466322686228275571824991401718540298036639992157661479467434283553214431497021963511596779298249073253172656602083518562860787073103976622790545323547697672038001001474197248898519391319578181631842468625799059342206963260086997250542357686345691574987451062803041528599860358178694044857137367516443010353898786045514907735382343898855760485621785542500178549987990743834048404754028406544612880536758858090269001093886953357161594596768320921938179395646113817084456764288696078616231359030814504154059660554772036254967531563201078966003512052235416555605452808859243761998365911748454287252231334674207172345382668338908247607053119936120549290464453678308021316974637635597848222539239691486912367807679140534607866059224705469841888701900995680731527811422048697408233621813213540235957968036467383812674921847618089757917399806630130583462041062513463699008461800915318585096711503731713933292236485706078967694915284071026443614746368591976213181820863204327580385679094700857661791761549848461534647307683414583635324328192752935515299201539038313266095822412478825210997192756441963396629814880863035866485550532309910561366589458955147419834788050200739260563888795041052184256891057612284014319351070188885959082428458654494483283852173871865161095352264710181676234407963852180832528165667811834624834266171155134920722613958891157769505853868713203058715901600857644892227652043727000006058452418550196967616716207993428615665106925634361674528301162974159779394542667202983476257503757883661844298378406936232285581258227337242689444205584013980660790362135589692732413329576582867780838141555734650032896251173739200856434532561387135242453005726083691667668794801078739939140536972752872303240919494085016595587468370638310102977588825574197922212399791316459857886688863579034868726622601606325956054407362726806774025358421197422543013653584623123324544590877447272511563470358952042507801601373235564759735719637248673279248874448251672080865656987484720525896238863576539335181379934965669089017257738379951719280407374169309996772056296079109579176634935333028863078987753354513691228467738058805496165670941559262751144009424774897328520787910115279272485688812239986657687226704596512820020736355683920486434194866202667172921357110848749078355966953898331488917306798557254317960016110049030857858586081519110532528399067564872147433268597248443248357368344312520069249460710666425574962051851606318387115400188386539479766016002538091825921326286259504278837333676024781225156252132886052069798582178280485516357015044110426862743418415449390082030131211673752641528298568875914831032508868828897236889429518478268217455496341852366545279594249973587715263375330024369869606720978757643067984884433253225986262872484462905647268319442644127359054819428399750754352867708924618869476775253766765363729806837018152917988524275142979906256541227062262873597225925872342627636255057084348733521932924656995856557037917768732725736738209767348540478833866353493001758890350508896647310178971930191183665121895899792744899869411291103057824385465902356378935980799520447549233678205790425928223786589659254161643159094705999576507163368936668012069753554430809059903582544284352193105706134165203077197035614848266508554343684784007572911933560053517021963781102350969480441794722774264674105374789526799460058433783739799790873703939939449985271062159459991967366835014030699811716301624591907579869745386109880572741212247628632972828534810197682599104252778104218019721370229703306113270687328127582349763562128596553196823100116093021828274349505767399911788334668607197671619226798301128005982370397456359595993248660448802101030826781394968865659787051320820559497017729341156487642181324052449230814985414740618900751589749721782943639550674138320720941946617782825858325918877509899682850175491699953199238647865397920302058497294192391962370476363675205188203714626998179222443150403043920697693658822797507132669406065528454418568731922398875427394103633584162992476697365959537383749040200352806080217770393069662491997470114804250372935481559787264244771588787907280049951900334729352591944837058262898810198867507248933337828463598358272512975945630404236065013944485302858244214424080576942065934860178526490871882186601590416471889159785780243529757856707288493763514269913656857176481321472984916221690258402134506712883956162661301356183318444232175837315355396560381451836735488887969179208739697603401067547373812610825802221170572914740621165548638838683025857485640261433842108291562234785693475396594077720808032298120560588452968455907262435153471452258353163588855190983370918965463495598975495708070157825344551398983539196863995250820198930415020656752327323310342188123130644159471866376799120261899927430720570914254607835034747968582658628598189804878253677921925891736053043050970635962852410925869461492170973955047261725396781842003891629134380131264470839738424465573802005861620621826036381022840602577424918233812057647741466700595711587059732855875780164196406922600370759972908155724791889002907388631464449631020835793168338513512040141860406326049317019175008381714344942978352836870695539779330514209604836481545042072967462902190532749211344087694745318436016281647240805924894109937235385296285610256334252862489403267533578812049580607959070632805563978339903035586699226957894056632249634943950135775357122019906426736991341077109738330892370304836093185228224833852671557024435264543273919552762906627264325127045845977795557592002987113004904205661213236879931348962056005186264912871325290169162032471913603511581361935660688566693098277045789652694500232790040516041897977193008851891718904310742690514479348869184234379066354341916860019575266295785534412947812698105936819787408728450919021622608858375223922302297457653126950743496777470250763356948981123213209652922626352231475557814536732610914666473156441615591281814851167164926796422275661032385672850795428358544641182562982213872899532707044244117754734940883731763736944836209387759073242867963185971051879586951284613327357912897572364207297914104717242788139423719527508938032691030490521869038985440454407777573408156107105079868012496762392865735644661844993457590817840385864624969896731801497219363029965076164978896880445595661331569264193026479868765313517902125854105328405314094850281949488550146587809404533140650019982114298808533739861897383983804402537971292846534118460866661284383312739222037751025376441402494108728962073746915087135299305408104650971922999686613887353225430451002678754928992179322348516912684452884076401302796610059545856246255422966315394256809055434875763820031151267891238346284046781712544991042945359594260747908162396444076461661012929936559641788017611543669904982224716917534900562555210063673708925850695896537914205170562141051306362784565283004272062348420377001312523190015787207612830184754510855482235476111096674230271021070408852456905325997329584675356074921804752075656973841368084548435790823155438973139968117971520914357729946925635200125748037457469183473843654032059253392429292998977749338693715285303218637453087378856941222763008989879636373760657990828548640368709213802413304175534243912915397316655945279913314662991960561327406063314780575489702081042061943593428738232624227514884046031379928568230596471474618978966038640118733465260614495048805549091851818360674236088768044811066512329857873849418529589159417454725669095951319013688198474162683951170290269511354440164269741323322123238000103425268768796133714466525856776872630641173206616458966430404056663421909589065748563851420838675179785298993539523929712349139617767975431815747975265401385031671720490565953769600091114290934223032697743882681096656840109490508519942087970121519476812067512509087271424449489449393170103322822634989790209697085566590608953981706387671464052592436672800407493706575616565094583554304678083985274114666057054424429430869890508715318765342913035537634161812255390154105730816883840525763177026524665945204877197116488969847463673470419902838515951616239494593009692541907398218332158198993628491297615776507649613868652020396877011426107660669313323351257788117030447495283022110807556166442750724758863528132586839517013544602003226876096004852999263473005383533802263858786394383857826781149281912149564934261473699418813970624224992144036839797734526035935111561696798950689307443444266679051569697307299024347161350608016484790928416899278792627485056406344424064999285316330401817931187988968858118538217799448684722893842290105623413841831156208090569880567298319426419746543666080057201751795111867382561828773600151479764731174784449106393097377687708599444645589938283028924226350367923370772630354809873007743533910302706058293765239320864414885581347573175288215945617674011394878417311453489840175526832151876700751949656357484469326354580670394925933876876177528532308752248329606242820703578555117674686728703468507282486411985307840814602916961698898690126229956483747073052512429930663892742925628665800112782262447258439883957393321773919426040081206886584357814622468786495847859635263976614238232664965858773335952012678183570402153689364074274535932732329125179148511845728130611064226810479619557924947714259395258628506689697084141531095544286523160163136993737479333550606126845731597180652839482516264044375152362111758706745391196550655665264478098197548221870801687583594351075309716811240706411114122581658631955174108184567076614655452766681939855086657018241104121181102210999139145808860981939891250574746072925151152252622769963170829536867250100306524877081860624524836541451997377028101005192683214734997760474135570733592384623916146830534654847655975689948687312187452381370059766527764562212203270217232508126254086868498462159722262771263684260704673799764098245107756821638565910572176734757223422393130792633181739673881930174011351635650549092563095462731790897172860169909609178706817542162597101814305281301692513250813006217462124211451545671718399835128450881793883095168887548486013464068989992863541666828690714635826717044796944976815456190252246862880736464966668118959897420006157293098889546716570646732211364093281189858402362111160785260035394067248907497467923680225683594820431061900631119857660359497559204998627115601927540885826015759375930174583603684623777093810301504252510110449161497054514621313310751526634175450207988404921031016716380873381182581207257492977840911116380934116089632072205621229410298028092815883487583766526311115501518580695966641916291638150436017140660932113991280845550305147971567546729291775758719745506924363729532183400654442353763959873139806544017491300671380505180618268745160755576949732491914672964127972128480092694422009013132412908462991076664701669136754645106313861560212526552754935093370226338924201906624834749203226281607954693090648548245566563917838563206623572756193307863105476567233489964498040080485749642841720866909061042017443308021938684061200093542382432904210490495996881298621752570437348042421846933778201428057044135789197578375987604870340433244186476206104120996835573231408206600053059851017912776594144817164309618376179145117196877468231006860063144220600621151829363037681534411362021889535762311247457918502374371887624715494120475177545163887944991216570911658341670917764485644618820568498130940943732625634787672588038011240322422876969311000935097717249973253258386996948794052200122577663424271881379356490972933424788568182389535403381516643596114164545773066801395872521299423895447808307848252729605075191138255695684075544321458456164359855254982654972045405678423567210697403769129923216460367889947871545418162579688650911147770367665160603582470052773667536791868740576579561033799985483025989187789934526894909043613175172978751395256925510848164736068266473693690783090973388572493985752804539802000334457674550919226450145189683197378314366456736544530740525552747350363427284650380969019784798965405574337128059076482950198960723669849775496877122657772902459587818511874927947843960674625258286752755288681128162754148948466331077205722238010849422897245669481748427132776371651953085971677659276138045714847401632200464496883184213152319587715237481306412892347161468386697941874805814666543593453463971111641447971192575277930389049522071328332209987849253827982780295005565094618114953601068704207523252895064476117801650548335056950599073659196793336632808739311296016738387141874661089816831421222504784713259380454477506839252257750777227085443856951316565220104027957937177766052158406752432675898909849361458897471438799753950545367428232281035139523710602150657168509600509776417713811950297018462798594072263054438094229298406065910955167199622159968025807133047376490261799267107692930277989325589828141128884860997782865966663914117821290003183571444784157554053651978636680332548307960333457707641438700971207714442624769193085388447957319186360381406290815517553490033913200483135470533168708570589620714866852221137895740207312509513876149986502247097465045905901041570859912957998290297947484331636899522088490288481321024538583120777123742773651336636086300748542945080959424091383074983378212160095846286104198400604420148124639707735046886960827107286072495939132071089128626728211505153391441318854490172204229332592399163887772542767821950217367232658774379577056921053702456667732102458866465960846902015947648238400968258289419611050332370521392752685335695853895050750241415894340149898287865145646161157110898040182560041282127135299207969224099868802239089042702620514788530033482813876282335616202463839028843427769844270063241183902375456055369381312207636778694620347508737683277879772922315372782656455337990373289254134485586107626583094687914686991601215538471322103007689128568395056431942041996581560354589679576604279500090966973677476740277400617423310174719936089604757482669590396477536105762017827660093967601399052725171464326330175662714315190864772223947652253740110990576001661928139917162336555840962860829201204921354655070571668967149846056878908860365763354223231203046120629075917985003343888728269118728749362095676568040452239507467598769522934586866912951657134492152476887662215051447128940558130948478109242905629502154960040213636667783377513510522730903466250579424800106205376185771871348397752329146166822182240613683207199008955273807363500012200175553243401310851256389441243066512138264565236064005161216088936229938918157150186938851540014531551125028640372956268844036591214124199631724733442094201476326667900989841126356818169381940594803546732366763594161794942010384027606128820797163963073804023375477584141796430433257355909251286729264820976457369766991844250997844290219906424990119291105961563826114062317059938077000477939957436484807887123209863049672883141376990242239368693469963884893515747010082743159039050335777664607761313176705995520679056027432251878728366858806306112601438327758605434951078798547526756848595372433476973784670144789102534587990601610942001023229811534749487422827059890024939697712671029516586316124113639951598839577395055078895308305005466808997437303870847831570770310810130084261512052304134265066327184143953225488508994434091080401318654426405259347961373170423157883842286766868328591416458937760782726779565666373400622629327680266565089060925186895801365243139380689769826817845308529061859691313180759106087260518890469443571885508204622905800894893516683199025781465688037550513893995709087041049886417081015726593586568160870167190687397228181351090922007824419889943707368650846275059211667687169343153105833438671150353850835177781654227621306418603737094890975084768724959288906210029704864470583601669850277142719975349138017148616874130215797716877064622861609944042857354175098108118755724943282063115105419907564127189244588892476857503268745904832322780200950759722312638427814951471415915803754506781570278234963282621474646687967690062313876091257057520355673716180033198335817025188452207365996606102898135231871764140492524782379771425725147009973429615200530889882955565801600301079173600171884467268323422345986697352710571072868849387830572913852096947723468296882640341806214264570003373036503131916192791630878760420015748784142076111611170067473937476803258707057549939905731222499217516153751308163600356400044816870519075757916428792422943956806811815075126646820463642150132256186560328807353330959426759700546531349261336234798215080136034552015165767162978017875002915868873627656093919525110968021043579814267430594785912479179043684071839712521395993453357400169360644040243532351243375940746186323361826984673026117170984660093162590698024397099492041347299689933691570333992206147437607998043006232577949163342855148229218632408451554107951781137576627329449367333910073075290250777108942822755159224798677791909459264658960289719037513030889913449079127117857517686788288408871471372346609582037447702171004332286818874034367128791968648431883844090519953073874558309704579628524639458433283490129896158210205628248408100985187137148931322676910271618638149748133909048281900145869335479043129990135259651141848181294186558382638056122845929672175298028934009847442801024955634833440222889488859721848545332815177560178553928931752325510426224237732457196937807450984709285735708829754940615239141906917937065911400073300991038137239080662817124101653609567530577207680193269874737744556136914322162944981948188800846940363674771833332664965776389896929019910708462180177800619553152980394460891254419421796754366257655426291135607862113367485503853533730139194359968132859218380198862798636644339022180209079001226925587388728457213988066549085375689236298808135706860625523779848237050009823514414642144085611159109371680148671243910830023289513882658324435418545208058449464707379878484380084589075432497389363173485608416466899562348638225354392481075614616219514348526050688861462233529402296961576706898111835843401110963635318622098762435943786467718332258465204653824551321984109589590963471238393297197786914830955741254639888033818037080388925014869673822157105456526470232910702461473193870324515260237356600728327682107322769722571525803814761810692426428394029513373583927617687110539539899318502060064596731593456079131715712887194617734254869449260138254669001226877868267506738564943823067631027443594394084300906017439011293261328872960416219856281588729598964228267091431655403414403131287694058537416414449434637391867319870663681147535406297243090176636910272935214697008905220739282446167935806634611621728245626017070171527258388269854885543164918150888963145235095077646076728093190624638717184228226322763162930549139326243830722695425980446258646827545206813900750044558313915125899673281175772990667281714706144535246228566758071223674285643039521243481202378492983636087270426841427300152413192294740825971879838108839319426730574793531558810964501870809029695769772926303935712289023079459787170712116710115737954429793457385943371317562553638372779458926092018903419026581650912599758788935409350977471490953052163706143531717026755671143813232421753451672526587589613366609809065507789642438704460044512897435522779707763762870968282735324498090447331154668867215384617777091744323440805364833648794272079764722293205898759956309860205078778824352928707186619276781834862574067865483537269117631039185012633575080432115540303161643536009441613985566461281936041441868943376633524177953243893325746112616156935170756039281450673582744787017341628921760755235179802548825344451611491972293961409027732133212761971985830327285681147414422958066709742886158605035986972695052950716573967162380450106925359274884568368459155067266725412405491991377843488072478180051063231202233737454505309822544971876732387900596611627815324760133262615013912190598147053190125244671591402000979739649859809351203375861448288552408993274659026260509281526379566782015251017762626313168684968612580013528084235586397307671191605204161900570828440015605590365534164157496804122446956174535748931900525607489472444484621149582764743278214015367133970764117942169505480679067253779878751866595091856832772442531567392599065472374045100449216996846157034240194481415602456835851060214670634039829946446926201578643241797754938219240682979199712543267819569884679226889426421548512684457384838734884370579654986470708336869425703953609493303392448348426406400159084122669122814026756063372756311922549462294491407456860307787697674900275751753146995924914644458226857225269443843311044951779061173998063655512611091392410756280572672953285052525257346954587563938800248679108344584926378111866313074170495817349983290221937804925032034907130987970871591755714753439560631216951194611664777402779023105521862946960953416226469135826068881963181327560321093940173908550069302581634091129201451584080287893299392205367337407743247754429653598391113362576226054879095248550339549256480978877501630954163069341667554411509402221208607889313199137286893832265016330066459135390066083505448298328268736192009546759298989521502074327657949397214746707419256669277321326944133739517329417517003821882582224788478581734193605262336083050859541289755480958314116435352788373628785736687334825669558594359689513906833988730660050253408738240003115500359102534628495787221975611163536633358266554600978777563368216805654312350576788191622952715429500830057620303010799716687643578143243870424041575573130123902900551408024909693427594367575607129697568865931059662738307020032721591510527500809609397809586305935184280539517911815072966369795447638191279263603299418408966319820804519147687443012336694532577814051241102510815842946186430178447057178656308729364574747578203397470479627234799650976601781245098437475363501903218417540499866834690507731107423489643760149060453754368206454286648816787596694982766786020308859035310405071362920480729005796778209381755090483645421790657059993560227012821866751980184990750517936138236927913458576350730012741761270858750073737123448374175952183614216228844663243809589758969657655118383455919680273536836358103079156760011573612212836790649863090115737440667190385124229978984037818999830266484547611629821992287789557759231096844146250444020353660118503725087633873531534380938097105941627834964295514963759240140454020096913428982188458251356896892613322985888885136491229154848791361354581561525004233880280235715313317935349484548417301558047324336001361530495702309114044523806927590488257147540445836739548266747697307419909072935855754544073429691841639259370133714995150392330272217440290270681883168062607690080559564767754850011946299881074823733182797909475719420289844721829934162778571350950270579503762856210130602012084915569649539728384821156285688607067347488185420219089400441912843241170113811999998762809154531847134706243234048272684520392423211854917501148818205670176143835824746346855149033594588448534763943176885350296295833360638119100692310951168633653619545175625148121841868406284938892786386325483964357839867056485944406506257416127373462866655896761999927504471850203847857827065681500415003631674169350458552688917425366249327435483068547574758357053786059777239254426190057515004838677783517084603486146017740223703582495714150471796722825610558843126337842421891292168014766776903489324615296091897958393694163937818433524876216535786720366178032638846943993930249748277506214393592522018874932087169041279213566416361569460226916948337520391432335808073660478860516272094632266225902731752877121195286365769230322751287963030181602984209883232603874935679657439438767679213352218345834238839707621002789681111628439106141701701044610345986144234715468418932306292650254096312213442001805680878442764323007216479059903493104497586108687072677303869155745136642765884865781786178980810956910582338786617726516143784400108849692470320466596683984066949889632467226490622937413911013546812807483621449642738203089243990638893878332773316594579504383081528649575166733711083205947426655749373817556208714644848291855233454269058148074728009624240821002163854354241597206568464999231629190392656338208898156138377442547622475906940230087939727162799689167004556070801750546076730240631527668365193700869621469219724565487841031818687377298955101317469296715179239391343259827604732254419738448278688651103719780450879709770023352848880602504933196434785133493158497629154041597859349670805081680474624418629248165719274329411423603627318432984833058101966749953214071785477110976610154105730430143163810262816259171238172717813084346692471939670393493101195613658530285239305878297574112320397044503980615538646858478303386546572263385271717365699883976285568406971663505147270176405167667577855137382136708543991975894035873449666051142781849130421123625766848014153956096541250603902588510732587143452397248251284047123593860664090212108672935100684076014720702886978099590103762420136039518202072711874932234391928331898777183892137464039374403246368233501546584973137819617665527945565472805842346527354194910115672706139264346958942138639920410007671207340121777300821533055707656225383498469297907710680946562258642615343968720471800076384280145227730503611323784182823522302199598076017703785436851569295550302331437263508197963877735815346452538408092135832353555203499456877481634812381639922195631215922573987199581965293238156283048791859648374435864255965913367296261696261131982117594492131740750838808517583542304408406849307517727474726117975979029403617772610160071477246746960059361829414505763620096611970198601981639050016443031930120665904562775326703859225995764531684781419789537376585611492001732785247394111461649885371133511501983589197846442849612444401063630521387600606189028462432082486066989899555602023873774773764971425172451704860119476421813748644524972297090010864570726395677481509745081602360605164004883539643688507897759348482141755014303896524029670314075398078335760132972457290856427763662575669418632137289708691360588972776507060182654522765083088828588328272581804126181323491297686434622757061019720222432475068764209079889462807976138308198629282672956014334538193241104392502100242896195815979248219301038831395536640462585040346191804762249776823747084158893666567725870301753897053034925054140190068549251678540182833838550216859543792029097982947551687876369567858747697188442527282657712197527756863483182165323623495557468025841949220741790683413431660990655317555945650002625247758468067260855558355787795841611522081868174274549137052624774056606561265829696842920808821945408526959615311992864278968284140627128390575804913140108093405809762498760322911297719278924441217152395454799800714545264641411028410411719510505826349152108330055627482763132080201355308026571417633013325211322507131968206308800144291697908848767424126844768091911639779869153706112223576979322782963117797773071987222332509415527743944906103810569482709960214853551909303050964613645271338347567215878613199868022054653982766421660084234275808233270327016886246735075185097151914972294336945165212851117451160122019344573140945817643846226488364211148617294560459267530762721309030222630368234846792696783043105830781557545850882538735366301728409715485969323562719042435732570168789179522565486363716202594745427838370596890934078926028089623462124231813906350165027296987156603214231021185662539710926220901105991214389948022702974448318774288310220909158851901644751002402841297881147485051743890212788117140096260159632299578534095676472949349915844773715287654698729303499196469781220442880468364090517540106671523627626706501714061802622325800197914500575647885378753921139093730765633067124009399376700531844925868771444115840783986844644581134886317136902268637056269564666733683933056410997292832007373319033638390019926883646818006202266883061638419822938086873819220370564220122459868162572493297063842503912012191157237671450266734906759867984770933729626771712598714455831386811327353889695367397089165911222462378539364996481367345362619824002908255128667386109012285712947769885957664638974918497893234786120181044249736996567778523434876191063167814073742571089980010648176352043266775830508954696253290457764934193059816681957850570974765561467424887511166303941635783088540169141592834479551681063601511858628127306170410225467830689934772847348763093046251599480744078212160946646981181559533887399410415100301048411360893026781618102402383635404791124198574916699615144080587689093917081279693416130271788225399286800901722096579398030071123607327962981159252530063751614946988825831711273230336332418839550255579805883291036983548567548757225569312228382691339648018682294374625355709656585471567179245797159612526387803294689386677779815383005990675066844235959598305165897444622590344593779068702116693300946677882126051210904109523751776364993909023746593177685734935568440296435712420224985906669721958105481288875708880189573925279864245954901929458808217497817210522096273638582093461357698889517479924361342744796819805367254588545496577032058237230895901133688349296033659443201149424700068140828412325043216122840011633970432584752134361897352669410001548969322707116208937773734816224034409353435851355130878398032737183313982830803589982372561616133785314103947236402134528454180424967546655641146756585367936199607803355089349735801836837144052183661891568433989669137087085931620710775096001200496102383953870083021959208958929254063164550215372905188644552396979308026141079343765515584702057546881283378232533709373378141824374349412543562885437079435370688927182833032016456808831022060831880713434355919088665892785408182642526771779187401101058927351594785074083786391374328354388276023034776440390995180127954644294700385866234239337198071319498492418113426074592751181838064403194735719471913216464321760840798699675742246792590033231103420125668965041338705728987228342005420126492373275069040880332027188417300112502810287062916586620809251603690134991932522044482163001729904088566187178206878706612662703360461668511359739130669843748896313998633210770502495120987545428514870128148639931041461146074916506646670514276620186574582980290607992093206427387100084653040003445984623268563347557723885688346475995185326184952189752739380926917120589676607885217069780763665457779899683342883678565136790154490045514146771811267923422162190921388113113515767461313570850281818965863282407296602852888902719637390261686833951945230594178204116727586581139191854740564389171592747295372506674654295436617603496546389206170386750395316322366331709979048455690969111640602858481997536726449999684476624095726283826994773653266618764903355218111752753241131800018871767035624349397008604345841071383163675545940522550450410136429861481599809901553796184922332833399956378338043873236097308561828605912696743670916521995236835166625483238781029596482365823902551697063594137739740899616914919905866351805900345714226688876956821941716589783379119992966928225066992472820538189633054423840309214700254072425644100832535877559266643353844669055545570365883561310418900061811409957499988738488219269502090897271602210450924805245065098859433412060011172197660261857023889736305850800497961456611873496322441909849355551140546983697735129314739207152273911421536346261282501598459612470803678768193212079995435048149504109469553605667354601448984936872201910586506055858946960965625146801640266116681835994989332454842542336815426033867947807849877897693654412886693486728366929113213967054806993972983181726207184319460835190957255412309090472109175014859819142173910404571407674081154172917938815343845228307137046489752998724983186944322689786751388922227080586952125038768670055318738514461558160460183391863746768592331509381687684940052648110269874783175186451604441078856051735444268729190494664678480118399438322703479730441219484792375906425543717032561590038391149406738133454689186729680007569306389180504105848967729070055001816977072415844810435143176408292908754598495843326748095026205974495845638487605898025002161117354785053537050752911473457655415086164474922000963274417865617962397528026475441957662498103941126772152488933492759272276327357718775944246704762984285829402151883953789894719953567874451792979183481461098302215544504539144642432068389480643437765654596081550484081268693059480302790831717249931695353383763582112583177270562283108561437984304931771931054590367495226882371563886051333814217252458543724151655012736422897762919064535260467447184569203681530222560114546860188112765279562871084164630651831185954783388441764328796199301379654268866490818397833082456212762621055981697439159265955906661292694725900536481046915691962738947908900530323203877359777555974764930465666748627548953331438605692838140179978715816310609576503777687618513731406055208005019044271508744223334536428122908579813791500907037540778843687577136395482247792669319379192512024889507555209849052578281509126936866513910892141564163821605739220372225215584405377536453189359786850408915378063240063970302304833805199187881397938157729870883805495613907602817114962182245049113942414374534172150925135575595303815405281788335814160394622008235853910318246055943126470573147926563032465124511233812706165911752373874672033725794069293944861173377511043131650981957661907781355178108602836333222472957876665091803076136706689945282191922984938431181192087879525103819130780197997182529605038360834837758105256757107515454457982924488030988246810382139973350785033938055921433531930257511276019582891192851996233560123905536033003926844762507309188513997687261070939206786729048890126050117970002058871636955227096716693519625218363182530236533678046766428262312790212227076111653535455185657378910000449501648706212928789044681317738014643612051612795931254239016620348433733071977754323656559236235705026013006143964538790037092285994647497497677448696983822636468238845255256555364385875604373420577527485454357426105173399263614156980389189999963671722578038597918822095469711176073474538728591420852256426712461121957963766999059724656137758759104900568936603915981967227483871536582525127648019526325389818063995750135749434705587173884495981467781649952842134631072113721356094493619857505643487495690634838245695542713010964042303280845601095579713506905367888407781159531304447382551013492372587768408452128272887105433705479789041762342066354411622479514861372473873226646043327673130749536745222815903685093801636964004745833593780039902627771661749058353406263093666609792020676745886914284364840637020438273796180121573309711303486635600735236467486970316323549025586038199138794924902005867126390882874877087044115750911097039663507274893419383730713682058576569099603493698810774612950462963430620873821122401288590950430823127013848921450861448794980255823766828818148458099371559216751955346277697988675696667702817039809155626897846652872249617165259713463960271338946917198800771036494463458502796409906189177306935247452081563536294927837210972919277405639904114632575994352507277264168409558522097776530952941223929907352324757409464633138510299655221418134688380808915113935924216578437607596688315314869926222099287576072157965579281170448926945832474901690931307409623200980138154504099136225463724103274923234631880467555651989288679447560684124336786163688581020754129111008114761176979975716323116022650516848263818930974813074282933322750665129254188567944783323183385390198834774059827559405980997798823002604718756468583302574429116166751862452837124185879146955038078042117620964992912066108980179547744579486377164640018530188464497366858405657427303723223017999122827990668905671911827659628649714881119885666914486355058972667162183201183499325213004602030165377195952462883931243993728452837712893094028612630488639125918387930515721592795627359798610856127280083987264957288955774531867294732598105428366578648562675420197117835722686138798813934976760628871671783868017192529567968546216214174097942278473227893478652741992942667608440187982673015539422298777501498093005754639606467402560087770024961318241573290508259536313824864507729285145056924755842133068925372465172455934279906266449425169882948109682465798343818585461050752366657803493466001246023136796340833505727717572464950625290525815450639569804836805304613992720721659341179696470019878614392115297987724645694152642264568315714783510446050634086361871877378138581580262852168073532048868153026515903091857256509402895665073999116713381768932728616667272195225299039913276038752668851798774416393961252964404559198901997279141580303129000162848436789994986656437227836371377155299345570094322309025364977628395801679609843358492828172108757486458812386548970604492710765208117422523473292077521931625393621812062079448024913531466463503960793381104496574341043966232009748366871321566781551945752703266760235603719440188773208875421645723258322185845250875097222189847117353086332913750764121554587998869822649682915216534705045967463029012159519635349847172683061852604445851938957163945028610466591259034038051806647842788026406828285726148590917077273924156786773208323026947247921035758121386504813982884630772045165268815099067299025101283954075148226183986319469891991527942446511330464866629159579589413945887820755187780640633530834347177894235615399529888813177746949567581347630474847273688440489061438964402262198902258284824116729340668834051954881388482565028974479588363830023634336686298108904007504957282483171009082074722660756161577601350244065521379905651059844432888599435816195819079933666280686664904316677164315820538469740800878435902933299448958606347402038915252738525910810732525287169798675766256789645666373119008684909910328558935695493876990231250007733845766981632348485290203979866283833537548841916396209906889968938676745508838604871784700944459959907493137113998151587621057173439548380380347130747474148452753848337106366494828708111958934460785783537970174553913627868361954102155648433999814718801548931331904430903688196113848763184391192614194471702209636637834775386402913920088090972592835747203890867453949066564915287550398760311466210813854693011060757580699824268962909873192026962406544513488753371955598619085904570943617373965729916435279611340109237021413385937892374472942888145172555273979330394279185389588607886966622545099532972142035446802652285759683679671933249459322880984543874573026265919063912702318976731168793025864662660135630075559968957163531095098831044249710820506634891683371275893352192666989901388045968798098179062641399572220834963697449517984360594942294822306483987798654579902132461362586111740818974518736288431452910348733622687623932127322569925461936683954872074891052591960597586845331213445460763079630829584155246980292329824285332879611616320282675688447798370324501270445616321786846525983399770374498489416432131472550717922561290087651057967822180265600162260155462428691932667655579576973233521598629922130643639844698072109366825270639168065377680695332268025447947154789699701040090553307562316544750673384459205282668691324087696314546985549032048918391084816186350828886394102051621608501128527212433947922608545612369179113956371041827282707444443955660725753693416553663368502675982339044182218591241638359981612633049633940482651849297215729274789343854146492556684869260623761311559293636879383766123789403498483524748410395216595268750387655753534199570868594619762822821905449198557223691446941450635262106495236350645288982567884051622822423358254301553607827492902092838891653377733593644749158671990552789189137212860317486244822179890580558813221720925330328542521306152063855011829637946886258065894940790077152815940113172751992312530077219752681131690038211666035268021181807967370924057085344013119783194100335227647204938091721906676552289868493421303533163575468041598892426295763588778256314989299988825843053524215626459222701927038082857409674800736856536305025194743936177886560443272197982715093108312943422193848870590873934625863833999566001200035128894567451526238812749661441414447814430617937199694031571313661098092203490724155545940799625927970827543646056121582899059375661362619892126615725637270132047422709296980973120556427694512308158372978378773378310786421546127726220133109472867223665740336083545890305550606239703978532337205153616446551672384915103690283482549098881859721572205425755378408666030319395063567925793003203434402253032935791433426620988291505309378097896929421748138641141126911188964112719162487787405909408357092930905248539181365371480101685489803327237222405761334485853392581470068269404063319682188214474860270431756916470558530580392311952118103896417253075203441299881502122185511941173032576578760909456497043257750891471086460679807597541459233458565648497928422001875636144325080345416451904470048618803415208857858758393014955370307807739418231368756898658897994930647657325330455466501114751420433941132963402660097656705770511053117262620057081372163801435289258788879913769347150956572295578666656099527118385407556944209497563929265578453492977389887823513389215688548604265112389638101300196911228466803861798781777761856760580903242470627087917830127909268741377203232585195237447434415440752613916299647962953463333885894526170631773720393048583803063883267028324955996810025401741515119295446842905456170984536211472354381864407209534926122956247803010138316344009841374317988585223490153807965243153067986270825053074214533963136385983738090100700540978808782596192465870039388825185497539656836100618163919500532136444069786007778385030895150448337351023161627705591905881333383502302596077416478300927335191279937504564880576751757748879576995701256287834738938276874329163004743729154413687578752194382172568212347221652764409004696218338693880025824057062409722433768862922090001092613170206070972232070261349367090242905403262734970250432377580545779365083380209467104251660652070613338612137279750754700787308579600813763115675319315838791927855066268540977831078809124414105276810776706891315940288830333060561632233177103113368557535227642320746023189958961665132735530835979348230190645775559677334630177652607140167846014721586495454213252903077348267939800209510679166704005270081071927569061877633328583300883978168478565164883250806533388066082191279300462668024083430130416414500326165931151937525431636105371781071838651438292560695736420992916039152068338886046062131643591196769164844145963915349953958139309388385222740498256497005899451587728037920122188537669878531237181223082601550405258321385211976587719252061855697546621008998339021817460322593372475906140656981969582082137373899249752919623724776637408662393001775578604020494190725370751397991360725727230125126600177650350704860380652381844804004536270818611440891594236160159117179773815443116781634859757234584484963390471263100650548355396674814322363138929970580077284695891598761502149124562845757189638888179066881993093043127664717626675916646375287047567528861564436978542435551044764527136452912887743252991273078805817263757165658865095526589347017592365937315774044825510144218318372530077218616359272212167803172097730457682359568556533360949589585042394924620320422321398398411049964256726881957932011492929350478399623877033930513615713603304446382754245095218182458522364239649801918350250225976928629861391058920021777254494250195622637255685743850410282801460755210163144108975688225723726145330898568707178937764380984528215278842627437136917251638676149280452388177675895583165284616298755046339414567761673229651184023266987201281905847671728079581265441519093524392107949717727415939306878994917353786121199741477100372554094089302722056510548939934964891110138168057267156205040934410370304419519805063822762833225607209914308141295001980484707058479418728404629141845387072450573052379836919283689848012213563796233628625785664244452726372328429937292698958659490660328165582772606940681048461875541312911104298078141398321220447349604499094104875742557503427299630651071710085671520806469452774709682058673341270194359513976771337978265378871169974369204496126197422210281101771217215552678331658522728889238000486283931323790728244141362129857265622964457353074183837342248125689292800504586281211642222129480971483509111779847737694940676632668191745306047159268871927019667644226075386460246190359862759623590742563828263260768006870138102733777515060419036167244779226980275761694633400219276943539189591835298973266985974776379435702234758323191373171264467604266437307357470320777983631972931342398187966943746194169231769548611294447662136283431277880480522306507136044764010449314786499785048188411107434673886346858502431963379548337116622847487396881376636769781670779275211343057104180920449168685469227129592011104354360212193699349763384566181191258967104365998200136982306691060167904214009991893354831163136928893687874837194254948142398454019968333541158070978401585022162108645479963747947963818906785675202192158908928599288164506249627633183014238051445329500985016625575821096554797013757396729648773663334046213204340142196843994505612743161885564191216333634492202610781659862711256312148380665293744067211881197805501675306803036969257774615526675025654833405495849583588476722707451429591042072817126127749774014772104889562435625395312244559329980591660052617736636217172810415623117965768051985911745233154388160763533948399031256674337482241602280651033371786504276489204909154168553151067072183160647477472670359397286241847470574930987392098669413090706984042641614970416099459193706274400788135248391575468752180010555872626669660981908204420795619567637367343243712230793912148314514307766482765481785478961314294521877829255555387650216053285747562628780819454703034203953413569016152942888972703047307018309329351665836460277257141173044023566113726337823939533390720087766854965820213870255579050846496578489763377071357992729704876828839509582745626820233679915429166745849053811568266262563434543716016762982262876613692808401234783225845523335651613273302845666804822777631159900010126434803760364368244743612687608876432024998336452110036429034314706205875567796346599067464679834402481500926562465680479781271541996396422859192935541187779558707457683392396835857691323553041124565050349571567102729825707899976576642085691302218054544405075649623553205586486388016306129819584504404667640687565404358599812340138312566622116590708523375888647631582074804021911626404946462897504372336054311648283123586096733374106398805473970787615017481593807591599487133775765143171262142751355512733629951738214155344558273070845317150333433603284872817671955183375722235185543039458093552828637351516086307414167765317078810926756933467565461942314401632528291366022609992098600973608386296792899942175575961759490504834931785097013760446473137678752860065612846476641555495590530528025361033799412776459268448262640756277142039368107330200310221827791263174516212587956761341222131973090434659438246259053368039460607035110063964056473876306121825319142346954985524860977716322435173432441475896769525254472986490505278651421603281313438395987354280579395463567091900222323736326657448199914359424279238720142437007190385424261663517641928151307802848636226905505215005112795097214528121270846527413373327094491828380240825679656554365776595840104478327980541001976920958402431383845320917291147084399390509343734667773986733638833241409724230012603559575531685110398421578596086201679694441820573759602056775895149301637723210141436882753429801274082459876357034332922308203334944779949117644826904781984995416721983838299706109640863161117510096380785954763545921091094301280318971471643012144213763494279958499943435222467968292510705094710007030693803934102152969215084261968598219746765385600274865308381828263347918120283432404569584600062109800732066728113338328421169541778394497029987454292327382806762770745926256525841594442966835026938306469100512928939475081044362115790911515659127062960007931469707411680052436650336593568933177057333133354973385125639459698038832620386082534657986944611602598100002216709108165073762333211177871144212521652508054944981688922960158654556406057314990127833825831918977152514429767852252953368540764205041147574878543550318359310733680128795498088821025488711688146865384475508732758692007041190135422208116632216818663607703762690827388684132150838686682865170907436303923598665192407487367695722565525517813695487584061161134544452751252647330395134075885652247060712530214405820841573934765196767534895433357268249318914286289138330590168807037107749876733659815165074796072973222603304227878901436709080978172392315358362490139819113711205841480364796268454907005749005723339790189764634098717208494751904682295618935427167470100765931841223134925213145955520973342858065769748891798987889955136052671656265819388050445631951910473408484892478716930264452700490591506026037766926971439897487774609803610104528869130548107066309275612094280073694903707067997979127916767084940923720930766994941791547834433543160673285248779264286657935221484303034529689878108416377169446346734165570975630936892896355353720529437835481677549144165543907436222042501873037506468137467862374901411555338628477215041551230026433351844244898217336287111720548193293182488005913288045232658393183113872684264858467071512099215728881272069537902901504113695291386462764470464834860352783249261392020100739181348554955471976313841030336861846110541618153862152566212289863124591628821348706755437452108124540388746158490946083627264706239685958705080968917516295158054211427648223485261202357948703884456540195900778856607963779255410374044986835501354426593484669330510470771664560349246778086655611863349976903055295482070814568902430616525435473789353343596139877800866011978065911814031585431353989869359170671872892107144672620622102135170284918781949050430989168206312177324396917732119975045778060900276977139452497026835545178803922447389245434804344936097417200662854771232576273665066020894157286076001247924814626973404827204210605363664093838975000766295182953211928237306777063076164526920494637764512398858593369387572758442702958869561114629634521418767035240036875212397753071659044937251654054059299199121067987519135167827916381295102615677978989747692241686787617063876117415557836361425167372437948546485532787044858975424603015714380061863764093699554231175319478603807166615121688384575140062517649729298744015537697434832726492037992722568455847953767392240453917950563014621815183594370177470263213635556992410189776754781786939956509584655260045793854579060047203137751877019789767393857837251626860014960685379229562999683060713359158696619159702503108203125128691417970511467554093336589879554747241866638924912650036960173788577192490017102736218714633151889212297750661884076915259820059671768494793109090420676316775892292830529005346668172905614246907196230574945122691014257347370444958434186358094475958526428737071975430181862986283880029472431626016348400800785504472717606091388075366319755726926820416199674457251372272469426693342918835629285860012316241220252431323564140092635042091878900069346443274326141392478760198976903231690962593818452021351066601091879195231939863039451687815826835272902685453969957512715673600168461900921605845319011758010282523934982891228846934560452480315347328502451050635263932729308600143256990033365744628947582889221288268395140312207216970221429916140102400031110296219705056750538288154561667963634702884856112209611099747699239040944922928270269331581742159487581567660079475767174098892385505775626112023962233601099554820777611853892661108762688553434539930282005090781012566448678377427666351273918046801764218625039059165986222129974764233195203881175210517463408324430119526667634002901431276994591242639845914716120565659752248063465689320830425735339142468349796949486577221605142637819131533433255587480373258977120213168251289984916521475995667254570823904702863554731738346679482967484130079818518062507748919379359398990576823613911749439780876102729639633506913092191678345038406438409924126615539773052983121419180825752887964223126030977389308174676667806342501853637512360529374038772640284420443143210089903077820416761672160145772861182141050409986856086664571057761975565845147522653637308946206428577385440768350600523680629982845478820460405215750618004289202017825510362081293146384826535336675500834718064735861751683543174893495653596769235456232039191719649045846170824330578175064539256481248970104302578525000141200289900832201559242071628131503272171185494776515925334459679711165133410243735546336485952224138567904038094760761520365596035648012162636654162631766947680545918493268497022225206037444260470071458107561004524630301335694062702849854846476710649751345659851101626550251386899513080940174632245423888317188053155077086886415565597661131440422395164051918994827671436039261681417583759628698594431629020644670621553854689798898610441479435401417665304124897382097878362490052111343689588280798190419230031133466477198309898144887026927857887076723744254369316634334757191680268773087631457237801267767958760349916867241793630399352476540824130546724481539269468777285674851697008916516000671770867324422166287532851716646609671455992134287608304017500470756342310896398700410642810697836851805039237887917225718597890046121720667471632960199898608905142746034299335219052260958232539522182247859515811002587303084560555728316452135312161352318012596030658526107842056391463463642089108859701386814481578533535119376533026222450759701474502265272496859815064870587449436398072531175413910982405236767509579525180726933483489562163012600975274912596658024806541961461664865706134351485857659502546618576666533923512709043416751964032899775215102647885033964161033598845514916386909675392604394878383324516100909565507833577521254662116449493130359892999968277808497736300887009894435122986422659083485937714067933684870453393123537449374327383434033535992494353254419363536808175752278940111029363154237610224580485927737887146375105627415410929081881844595017805380028516691011381777588466578327134806827105103228192077782951731094249231513649663544667501545254924316386142212809435321340046705662292233265130847975371814156228176264364963870244344942406974913560467612176092336608185996056002008836094694139768683776319494850404475982230300153698732392420434238077201126416897006667799798583394601086421828255153220078129842967902685464597736143993212568722839657824830620688645696025396248312930044002440569244955075348712163125104740731229045550908437030557648775677666475677132025528328222303864580992487552782224312051836676045108911074981042218127038452223187082570520859121577238173258491368448171573014753563337892424067321765541461473254934179146455271812862200794243718341090833690890623663618102588658051829852324392384166084542082565856030665473745831494339449795237041082066386996454534921377239806567371011705773455917617798635531787751737719675157723404364953077051522265078530530779428347460401227536149350859247681159508595073537827286572284141936397986059030488917324504062944734551744959061001484399501348220491691711870350397661387705649811149208541445685581473782824755498208705951327493689962567851820525403044530548558940867822102279347067400059068145174745901576334756121783504820889563736512722006093551482247752940859932632843961235057582850687227346917004715409830514617659830935166520934236936634627257472334873983163781483616737654324072295958354586680208472239779732888675161218361336331566814696699445903102292866021778142015709829398143717241628889214992945287441737884291278618762279633901976747394969854647167419852497369162680237716205540985783652883480699298030723274164017471768238296936522839305944870937063865274691695388516856147794905742738060006126093595129503108385516900695588459555954754917940891725432186858907046322559618555432218883321682054923704445091163687444922954482370248372704943891135400294960198084618256268384724861359613319922865778352723556248820130255186134550884706314259351405345000766344333945599270577191013938678365806491784274535023506027800715199983771007663325334500703679773404251320250071998964681563673108397663810775996511461003103418438641827758524728239655929731038455026500380409113170761446863311205542077491837283736348245743886695317348273291303637190826766220807131185510542555806866633031946757294406493884826576982443879828158524618498552323263507045296399171097507512186426332223441713870988500048958318985359627615977019647677952376557006615095944360150624940877414716947303224938715819858564735757190898901152759185069116468224990461156349547176729119563299954048052196545567112916147740800795252209580238173825216900485244319413164083317821615568110843490201961018200901525271813338002143819878403062510666478568022159794660318556355336593792433583423252615480239699110352879589183075059959118439392603955900114976268867732279769545687390547137205273230066166114077797856488039067532283335246111736732631735260456657202668078532560924233035346166706323408228865079980759184393251499760635811722701008106038508991667093934661061511136666966623658239466957490648523552079074453647152026105499890723608199584845538998487632311826408244512036580451610058804790676645885812352479314512905850289147772426392736413862677597747469229669940896987747499191604253654566967686798026766895555205823448382022989141533989782704527604969804822992152477595935175863132335698178534644938927282650653923112599158745222164535731451921436662136227044833371135817401137689195462782061318013827760966983964071711407349406004579904026869095442978209670797898192841188295224652244013223089912906003923797315283853293453446186889247585916241878983237235338188186625891899395255637271294319766308745188069622179468154726437330861755260354819733823697567172317624859438820772513755451766660554062742020893631138095255339671264318089072193360249483932879595594292133816907331900769583271574806908432680898331295255432589275955039854647574254189751226021287445092710087928462045077772044520261613119635703275086800443856932131541688537301599880813236734929471584390397479119039774063956219521267998630570069262082114651232302653391822717022570131069101259717560494246648310397019161861690091693780721005113397132343228194113444374009206924101757784606955651202773200174484673637914215221773830205268108653878655998618309312541995588810178616997802191335877505498761841877380322959854315764621062449929658489164078323664009563318553883822983432863989476738817939587822375645150932805764679466935288799481115078919476758228182299792775211640239355444059742011470196596865267391501536463354473952337848364046868664877933635622815597297458461322505067664530333235373914060761423480767367042148604949076333132418890585348813086075948757024227243064688129172852413888104343913670030649342038580460445393259853910195037104494780028913242710982961451671821420559679529740755265631205363239137233099541591666195425105198529691721041505166901371749187587366391262712452174323840450091522581948553164508839173202721292837795520112148949767797113295920669862318930222163576161259003175135149153001016493514919509976948596262868753951242243400221459203963858426047358777410114472849045178178747367716933798892634851168462992662736677242029454394075369463544991468576296240176764788091925726695927772347182211377262396581895430276773272608776784165901477972719063002505011050320360311667800448307284354692497664933518061923534134836649448369541078502960398055100761879531827843477657975524663508773520343906490760218172990039717372995350232152188521602009326866019460508818770606013717542238907789110404623317650994718254804342121067077198341801518656098103620360151370115298787854664175140770216373374354662411106774417410185260051112782400697329336410945732413863331267537874274201860523346841670907234349577919665874113227244405484371546983087374838997090570097626957873061632394318688351844534599746937593714139966329662431500619332813746378537995551540449897142855435171080668291709119732667288156026823809569658496333347723171687894316628815636997726018087230232171842271039344751998249742806767117632806002171215666342808851376673292697173174050140892522316554679429132949648197711738268169688428457170313015438982638524864899254062518812556197081645566691101083477113227128225783062040416762081813498543131146915023351296693465056417258490669526665246312024398046179294504400109693791008965318478130107418718656063041226495043421114486720253753200957239836502617748240169865714717975191419408232326325356109944779862555251303658657003860289565069709295811157704327025997507730777465969960652457583617405180662165506294805382790872443992398147023126633252756870043025549156915347657276331634082659555268905648001492029979377323149182786085117915561687269056861818780447964971720385491925705054896359844909640320631509347700583297552105949474568691142607382372902427291912158876338715544791780659319980918856457145606210529414966839467862006821370991414402155233941135418227202162285142041944719037055290638606730866471931007899595337175247544154544758344201169331302876952091710056543838485643033571351868032958631134420114397856342971691834839878863956483933195489184027031691623428007596139560180956228753863899590644275578676353417633420401256841985817775122034373811070747298915388014853809445862574555728923755716767468375709990572458828620666012276967730700253512257290079806340690547787116094394654470102783027145079987754353822002691925306468582530735336292013166343339574217535066327917549514086779636846844124887652043663336253317921275373782911156077566039627005676509090697075632700447292372060812332418583251192334473398470766547002898152990057794674450613101088533651968122135731089368212968381861223725205058593096104729877068113684429927746200153486420525438863288220497642201481935207429630474733792421987201731192418826527450384936235659774825733332287197260210461653701333601289769009705413526368627118302621082192047894720193106571186994648433509314586561091415160895592370047610322033805219650628535640906287529291955576081852754270437936709876931327180637950964476034587412335893606472025223084926778670753774131453651874322315865410913670056519296520309896743697579058037716268786142700539244779220473557003569761437755758690338115661893071396001159596078194091142551884478525477402937254076375774126097659340163552609803095037325680403589095801451731742483164454650574994587131860017877443542606289968664820463648659548336212800873974292858396241804374429411301238660944060379462096592101015557055396211678614006121461484382480173055267361980257752567466564437807961720792918041544507244717493243841345361160666914401975801478554976731731471041077599219305556451388576267041651706901263136434549640022300579484752034384212834813276362361652283615233859776411499654013282028821420645973180345079262069976806769634175277359773908988754536492591704567746455993842589537084594127898456586887108481663305749777264336493833958915943167890475993981074111112314761152654551982481568656150547970154742077411286950147101856934559944945434208273480859466906719371370491376246484449425211242312033151812705308729691175954153609188903672065338683136205701770310365026540184164178326178770545201630710866518214831618955413241854271586422017564473404231569956302910967733590584455413851641581195679916500106463001887636500008459938193611856606463929457798136764497612246139409723873184811662203192065776544183669540156696819788242505276486708515725992245255228167119860401878084368302428464500151287390833983012986964968144681460735204354097630906200383751302221823112170013604517585158434881685747533861270799378748244942192833306942922116142477753572461727470309690202523902405743675776641119747484432718293769766246906977257206421046171655146158639355175988064814507005119569398283360772194141408090892938038214237452390745004838510285947132472194775240319614909829837648431526387849059402567453441357916290196924854210694695298252599854164282157148202150738751009512462854014657367096678963784061451561697015858539086913721997360645394290057506648500985840883360426775062147130269422985597434320726996958273061653783835400813234746219854631531312188250696435563775721295574768797453780074408050348542715013714102793100850917581686839484068370847208745282603666454018301690241315181291837191597406101529611847507352770337913470474090461911736102985808368261210201870272507498631132598532615434334488162519058835979547529163250726477205286008946691907331847592343603213978130570105504223521281308913365812297689086822811977790468200220509743469821759807932169955195761818874201281800991460018369931809480622923747896741087955287117258272047858643123704887746642417071960161816083367574386683795565580630071496827327124083678333641170880039254126655047215721673260779386464561055419102141130787484215203855083246780841494011807288764782507033658707005047185868065769299037632883493104836552134910421243596329925056174142814439876318347215380369111667746443159982817622385107976873994902804192752600824968991095472756781074603543489235088338121209754199679502959750965438006725876002770583027643871860293131060961003471387518179068636906616051604910889740866368301383443560330161965127088108062573196797144220632525123545125566658112076247559890362872826279943251952226191373457727281493384348257166985735563581900005244446898697356297995995587164129766513221762303236672899535403600910774728085444691078507433041444871455031817143351144112871644170485022927949598760014031407825279175187501394876998878051256931038904742225899941081703716418683822415236700207642872222724617307220645555524766328055498952004720106864816048125754578448046842941508493306153232274626649907952056656118080939347751407918019608924472397618081772381639928918113664691377990707162169938534711438344668791689407517495611882564972392993498290861133443534802989579847679559836465883432457166832522304394410428049984874440309918534493643836752455303612189216704713792541951881034511842511541973786221406962488178427178931208391674954005456033528882656821693991258559713797836662392210022184561569200742511836839402195898583919811651999887824001700976870343062103751844949271161159973554808304745621948909407493676557075413396179429452255511302701122398219378572199403799653936592252491548700244524976400893017332740671779523830910700461230443304374561651211199710043539931290395064997218308153854141826107849301389384439367548670909606394583706666746733875978272591271350060187154429916369011522750880565382586842337449782397917830687414204884929012536640665977746276295619951219947087872928185314745791449608141759332699427464527369283839818960372637751894975457171432952178371493581632226480984282821854504039742971130206128432092967575805889599045975048233060343612671171589712251491306167414793569455499832669426179544938056890844024057355610276240343775303150245056185528910920595849266437159103407590246095240836645192004152639851924995160588563288978564485213998934769306513444798959223702562874345357133724857273105239894339617362297681245850224740048623878277510515961577192481526387398818898544783022282391656782427876302698196747804953909857225295693039315359324329795660841946794930105998807885089194815966654992777784365021663233826717013754325436747667285188988120422263837465812516685651035419161672883757079448789071464173180264553586876549556699408651800208277150215775123870093426521765012558313092769818170479656586825326853656732431556980904037768854417428865251815844289150302394605729475478171818179460297129287269978818822980605289785399782557654088770938131495275766982795429736187564282435479910568817173836131793605949730376728303016404715542418151688197859262064272046495074679765002552150418212102292412899185738504373422417407975509905653425265179253203645171165075766775367897918344096405108928796408483921839714098393329993038597531635274082121001815826824542632557773973070066417022108014886582488953064766078511663926106589039636371481022525158759741678615107449037619964447891002476198713005790100178342873233711170829248323731791248248454941730139852638157376096067618283478327319839996066533675408179430325898813863961167091520125173993220144521907754737331415434814880405488612701769202903540906816834250185985872334963733883347245455528871356212986145777035677326664298707295747982675122606811949500211675616746621368801517538807674916204952031150532461082490530473767677711644181780138245370732500933169226997434369077173376489493935162217276301905428664132029846544504431777839195056889883909266398351214406777614442323207231711928621543061512288234808790989465490462904424532700653748457973489248752714187673378482948705893195387680103145238383933341066888250190893085240090069339896037762652142561451226629912695969630320164720063623221545988441670932770416595422459615631863703519006191098195196005934805056326281848482098068159867913326466329969833972336983328056045535459509998440843368715851527131421521920525550187912309803661750589561410213547332796263536396169491721977165049456520292575688445126751760215142498766331922027280406226401387185262359524139885016159326151835945241212953749316742077159097103820434940450313493542592832354202965027870753590757903826963633983315510078520593628617238649972632470004039552805752118535545403631876221072021067266674939763254686580706274323933527186469232197734277214171820461885883387550073622531879324182694856996779306252067221529335416688199082168166497845093231349835299597806529056530417141236707345703034983568548305557786019328713169581254135371883783025341117433039753629392114707028909001108522830923273352147400461023416860738637285757852437128903152851157995401670245246229268750856812591947365296990279308028377562341836282521602690867030450406538585409426541125466401881644085182852841566847041541162690618366153363815142045914927106626042716843438869292805668877379975953121466081701194681888964615722155507378798706468035488164736412392822487696432107651949284899046074090530721628187173293907316319314804407359580996656719872146626330800205620757158439757790324952064689737408644625402905212375659004675696217928802042097256330758788567227829116002256191952839590164195090947909867967320473266564288141481328757307884615295929671406186658560069424548468267296271551665377051485114234164949514136813516498864687312779724617138184837626753440855529869803506977610628147279598815368129645519025404410287787023473988364413572712917213049134751547329563147207565561783592885279648752707462773206965683054886163590327112862145396023638684614126109168375021463176377536243288672631278434835653576515715013515525498591139812423022949545812090575842298730102889568969036517803599062144743380427902814683853432045370908284378991284768996431323695994281982564434647909876020791768544641694306406959694893261327880369144524433519408586063424437022273549197257736342061011043096910175791571119725834083830125579708348532525432701540348537289881697294652654300007709544458476111182032771608967527122163163387551653785442276021950401983679136460398979383321417170121694793042468028354377278210403300465059570789144754248752617597639042249644176934882317816519099190311911673471323586375327298761588005575181743956360991292891174190296407402540970644713898823636471495075039275861312844945965227173902616533978329139930920576846295546755050205721286162247462094576499264416195898929933090182029733126368889241789286382965837737597470904918578403046360422819324722563770024246152536321947349323532508479207250926343132640204644558934437940997631805211541042308672716695788133416839938891712450114270536793741108777282365457897275787769560424465864122410573278769900423026631727893328847435140192220614612251760865780609028619914504856241202814343947232496569305877037394970506627451007398746812750933568591361092358620655518072425142046597909506934235542433765173200430012517895436518943510827964173258352155531452856886903816256052431835575111029682103475456710990747934934541655404731853751432598956426811780197463294995631549988644875155141890909450632770113389720471857329185774355229005628251181901097195885783478169272871359172328065940034592131370043529522038697899863805974493161998970701929948923180303934787318120446202653628170569855523562581816833655041540251216040909235894488402683091600130786597223030615765388230416381974918033812626684549279408628579693039526282467192674377089541606052164578387621506136344678417846158041358342849141100385104642375131739445255857363534406089543652529630493799960487423102537216572926098344153574958316325752775881254169045834378150706797709335878561459950752410003316188898520954173359295417262375778175442583480787769898411432384667919913403539810797698328821821662292898393391245803424243604511657429365426063810199898421826057166431505292126290477773216981745475481269278503237127783241736753274917594277574949549389065613623017361301190664564419298079530182767200861542169169247568840882356493185590388266625694270039659034955834455088821783919710410789150308662316383097326301544150189897906053520229529431277107414156668868835470377608450977558289647670865024519183091190768315106317511866399013841584208553912228437506085566414065289452570657362869379222325855645170668615460794881972981761843456634078685160675909008918073758407367101904224182929669212935281565147008281690800608689821978994547345902538075732168045742630463404893280626655857106779793818928972756743954541639966977900500208241317601521085820224678010561578887178351881111718422528923688462980117397622729721760326015185721814537704515877606432498596979717316757672576416533309440005635887004595706483135779433681694347439128198082663318102450239793334786080444291169291068172499189082993080350648579077471437700919230384329480127514340897419093224184031355494610014405971987265760250966125978650734015654000832905892088226511611883445381342395549766838761550591000739524082881330981753705654567613063466987893895607733727228664643699746657653267107371233454965989919321712688035887243425027336263079318684340122064803326649992574946926189332684022944615453764260332816001387869884678409403402172769914393328946536625495452593151114988042175101637765589828594370989734522371128489127032094353061771799300517508446830130312534423927894073047786348135411078635998172101009847840955233612031026717059035183173539098512303089897612789325757808903237414620394910882370553426357520552635391245089425602749409968517874250545381306722989971030123976768595853905977425062580501410522819419531172088396353187500993104249544043225695645692016198342467890633894974297869184130647578369234214652942500448982431965996892658899521405942880509587354024640706242778397020768655810942990577466844169182472275926709333140961624912484720477723855022707449022342406912481656213908315209610997165674811081589418685614995811999478371972074464903872142659307811330062384900520213893523345958525167888704501604955798031568632726834787064140005734285440212940782647159348775706781585873347059869825007038195931093447332617701679236996897117450205855447392022224531071196143264453017799704735366478205079141675633796986637012256671490105009543075273073305311492657206601563386057698399780540172933630013214589777589761244075831567085361457013918366607769072500482272934100233475336055152434176359038106847121571896284566096640732705125278102231479703523575293777792801240331871510864157258073201202958912343724928656986772302732819902245467814136927051206417052099984518622571559599591328211738540043629081276049130603221700091193622034467869702184338669474441635698779536191501388414445296108450834822903940405842754573995371962399795289168161121712611183372241217584301619328182135540562739046328488237659359603033341669625691527428804397155779695872363105188033578126701999665221277288202079927155596265579206250380064635727837764664871521523950624217151729031303257942852796903927896577022511708251167722955206148470001861477320778179570324009628610056101924328224486827787492671917032848810684369908842353531252063633618693354989716956894357948698318229271435269190481689248730703143919426293725559525861735210656566123800708076417180139781431542269318031158843393146714560085093002931068278061797330183720224553701569814336329018546635608463636238554133103200534377212760413549074015548117470806270399654511459991929592553297360350394494479557895664456135725284341337446362128753661304613824159020068676950940489641166786133886423273911417783071207122549642858621181136249143910151451816043544348717039488106679417754053347115538570952636127798740202624860704687450613775619834228985983412049716432964667340641616261014575664197896225209603333295029674606830050574582084307543891528619501191796384243550685764218636254855428015482297876046660442875839909584206139854248696719501062107585025973174368703915697716811630589580007139258074591205566036176001607209764093189736855188770263126786297980410033363473131358362039538085482787062557455312887465099111365257550792361510930739798931023302204980676112902222184834583762799357532935557465582218390025187151909265532391550890031089514273472478957690971669824148486004490202638140906653895595771710589459117858588744378169726855393172461059479876428239014098752556574479404160082497546549362756054409509605444044663372253590705879547628615022588824847310213553334237313432977587384572924513344290375630089231985689210540683169902718009302876199210448403802572591734925095684684150932593185562506236486477569413648768878557397972220919928198662971790464539482008282416217569557245376881389433833253409726307612401909387493578727699825639079371621164662546932582793024376899731077674824421936222310985627886964843983376398864954502334377048536226129676041949473775293302031510628018952973714093855589644487638392470268759674528686309963484081051767308018977389576027437509574196929991151906714168899186405757785504048142514705130487641488032169346136527305180535020096081147395567602139725467032356823785976100948832297230815968214972176802734398667405904440060242074717719274275557176690192595792467036527428826394513549358574827404503079487785873847862547035248324819474531908134970485490954450380087796888640075531063599281465895158536097312072706492228739905763901760839976957713723488619122010968278044027294362869353587600339380368451812814130039848774117535168534427971071242484669359380803536456889486220381556835113831019023930537311205545787749842003574137876714999249184294987910666621451207617889124204475855284127384425216734304511979311031215081562521668977160579396025964896977639517405869595959761420537939915920116507619353399880985447705136785906228682198544903146842149517909725201336424399481199603687305965553204263635261496657346121873258749855495494104905777439366130127752246729095211587457243096687623776116856870255929745766048210551528459043139198243249800589700290908901385058399858636561788519643778165348690887441558753043476930306690153812975256128891966457449983439978932555152998416660241256948659911328996059622845411062322563400066381635486937071676193901924415368453411924969471611263931769450932576333299487018515293747085520736163637248005083627011587456932263371244277283865568581726693325691227899029604102632266367883141039297065922820624198543516755239266455000868620372396799906210968128309316044831391886843420009124869356692910991648802409553102734995130715234432052073246345453101167451909655574798561166563799289754576774880172155676506151315485393838178124066591509379703333897302806860734647384048841013753674125052365402749066639599823394822927815800703951435788206826419983338342599375389697169589661790076895452060184513029735432181633614295195732184820431657863088479894537645835399692922477182823496008904693278754354491253981155561153433554313151341835155149221679604591744010069858040466244712907596158137799814642270401820367092840645954642069656567220593566433832365826970475581490943160759917089734585529252760467314064038793037617730939497256912052928328716240275838694451715803775334785448176887887977270714137066686933062097584360929834179251630257026382363112325918623927372816208493621689475339439621967405256898957159222922289638468536518712550689815440020261501866305765115234247264956636507882905745189190752941965587831212288508218588823355787181664565660412699837996241698811494554226685608264171329633233861269842940103947027265001231638042781401098782914909253570390332125933569279709563018709598786245226615857298799682673928532296166869355301983725086334752001641580094376856674278816907644103900664920912146360468043156847754630073704924394039434018416182204647794423530213814992751604031036140707667871263679243361134141856973365266767929797050813386800021268172513701420966557055481495679103580111326030196769976345371403742386143383351311493901281427675102266247111602114532044711757221366291766588942046993811967211513658790004158241561107743841740511924838747181593399704989468861466624063519524440333140241535683565067845821658677771056809177934399562138182186242951811984643850579086992238362906449123787744341560712169689319076545129663596117760951191618074333961249732787562358724692819269763613195564529398963388664426759493087549863421468405221158944736124972028762683045386640190358045394415479970661791374965662303926233945680365014762278885905541740061878189079597485584584143178408684423097155385822932498132678980871249186810189501330286825912163775988889488297766385880483259313317749715981563792091006094755611891080761646055599110590044058335714974767120383655057411045350262176633356065330861785773312195310754691245953243099003087056249377190596090673449421515386624762540618640196538426131895301796724276246104841705574375296597296202297331506899317291123107929773619013202150101594056028496697346293631327054691605141279717491363330461416670339970159045119774241658632496507091279593253662235812977465604079227917223234585662875681565443595632268132100214966765802692058646894009859941958279394683996256185868890279637407552719187690008750326512024064101349997597683202957302794129618742856457101616003890498399695812883503289512133154703653967760060976525050745573258740551067231944695769211630273764687264347340405447426967907210692352074561420796267371839796099628484143035087367823460023532410625423015540142108674946684640440760434239078459330785878650113189451964632107861666130806384220343634347371572227308514926915292559143713903191654391362619960001285407488436651466610335474014728516155345903809905248633439731610909029992978070840870029587546569672420740536468815958338852516599389494672201375158685463149739309330910248784751351489542138675216869311991974048811366328401284676548995802767698153707963645906676996901871046072187573169613407084154148763296391039960118357693174263024198295885546560134999140162254984548294708613930703415946635790263540352773962685504857611377934094649206189044213855445509805367492837147602114119024134828944505513051491032562330924994463943818995253917762116204151274575655463297578192002888265066051303771647906103077966322138391089283391496392664931056421356357646132230591068819555111314200439053461629218633954355731054538765403499166596876522652454503808813921773534145029375526543958465601161308803953538734242792166966610317545348020101740935691343469747695226480703188877919908320246505598795138910483248608735751452833783160843000077651274464853258843601488410426910308783660260778212033690784172555867695407810854889437998968980609153905387770182975380212828796181041900893268611151623875869281995919777467949300922167932529725650921269446800584932536652531000834297361277330456635521750433223920611668645059371584797433970167845976340221227067164559059562177332807530755007316938138782444529678765764384684005564367332444780763173421593324329895246680222458202068274458533043585028632024588570665648932256816964789824015978654237558425182427890481738165572130462952112578732117430466558049603806969294108612213642097773562230616433957140172861004756792532612702418944406625394205194266684142181658442633710659163376618141160654834280566425983054971223506659325213880233035118364519036034766456675762590442119283587139427877810678953359055514480473146288803952187068293371057410083694323075402722500703847825420092535713118482556686286254630660690648459987142514363739986161345953947818062585883916724915129631187795762177927372310909132646237838385067080299300147343218085462946725944481566054210747754829163454469726106159390948596503906584039976828780364118136298362285859117245198453545678244539436387166363966339956456513550825116930366854828535505605056519632852239740806843280978252598638757772482829602151297562099235682010813932765949946735051789078851817600641733157662130443856204875695091315473008322817157087660303001165730152549498862757277388644871543836439155967366457531907974030670011767049491288851989833935815466353702592185177703484174405498184602491567975090468210743524728656639375800260829894023402796569513762662677236900868887252140726920056382443173486692737454291212406242204277334648906053842519364192275842435299637319176754376691485651634134567517388340611432272093719560297182493862766070365654322262246792745754813668565027904868218218638950259494952199463079661783576977547870827989606671580728189113439684227165733411484172989837154983937031541532163559710068818172486361800079714560439886115889067222205621599490700833494068137844793311795359244610760017063030583815607036248630575107635926408740549353269666133406886269513246195239351884893320914570653900301424253912266763725817916479175608642312598536104577478761843679307211473490706679140461582412916335334458195456212288410357652713574128223064517067175489238081540824551005656022542867242429897799927658019528875556292420678119228568300882874883296362866461309653067796479544897200479498693611731112435232344611025487499136375534794727974762325990014206530816312836139276577627438730718193417361552224181480043553981054939691248380603854778667385950598532486179321000273375909384476817387301188930926106331132392798933232176114375031734859677764517654330171354673122301170410026295710627863310352815918207271602404616083371784261983818792711934801635099423494136657636861609343929776678934913522349356378792681296582119691053018319145644782588296776293721681900186034043721443564024529956976663710852391295561168418962649964028915767120851215450836052762450190676239284623266534832606723891268160836873545292409028715539459016895941624086313146398733899550555939964935951742230462123634092308457258121462271482417415280473595086236378578888767123453084654147372070105434530591267177955191245242835390931773949240466682340930916045818361618981901083036994679611344239996706498313073757097155082299311293533967175161440654127972875179252058490155414113902378118717059084001465723506252215447663082314413149488782968401235381096753871774577846115661233479612256869442656106349359485356800795134295052206257729538933005947082089091534053986555186794472595734455804405710787668591242314754569173084981493755453745552195620624217330512284639734560939941996372391048628226779368957441925628056252520269293188267941436062054109522202205040951136635311475219324359694747886065196208999837305413472816693511392645146799376369702727921980002897509640225875109807058387534296712110674392944199229724536231415217681330769862951456000177471705090991028412946709559039479578388287221407838303304380277324787843143284088377301524232407266918524784165780089373440703132080053722486487248610710457934397315724073356658013845369675915089954017155382794671918204511540946342600367279583495854340877430225793360066531662914117981869337825489354016193876559687283068156837871261528362625858598005379328207120030906028140840785349919668838034915899629072428238037986190577279655870430993622465968143462095603427541850331597959839215852277981708515058810562849376945838311385513843441436772887471328649291134718400437482397579654627913384928348676401795815601452669665679679943695189472159022169464766360340433685657031527798226657784289227258666167824797397554996571344227529703376287732704238497404605864160972248349823299447277053020151202873501618979687057293769362245646553111324432320498948715411457713456539967091052153811450359460889093832594441585665279058799881411373929677214184576076055281758599671073394326100364350184062916581051831089382417009227153712370853816043849382231134536837318756201694998140183165056249654553442150001457692827497824027885736810120505252144896305778119608050859388148255959361147183539345685941533548311707749153041905862808526927155258532501722211024428837400867350705131196310032016948528221421130647812235651034758996680707379747556215037429841673178649224792514895583453266905213358745218426581782066052188636282048970969226141542715406539541827580619115371862817044668081281469810605673608081068406694290048728564090797975058218747627733035161487925521713494264506358537547984002462569107772050701344340709817632147216305981913679784691894157009885213222040596419128566713168290614196062854430631084181357365090147342320736060165092313345587672206047259680016439902281431713394053430328713746696249305262330870552036726911280179586956889134973287407959935154526344147228632600399365286124419686880791686690348389963248958629782569540742342510547334919977891845987564578683907523677152497066414410332140303969461258316642112806214881525033798090526929027801751053814093255266916086892823545855191009176364779206614421553387026865413898292959999708951883296723621630113167301271533667230156922447035434483337603653227978097068686237668650224540320217851013165585036075112509546289551949551022657543348672312706475902918798193042304189983926962287768061298282383206131025116475327193148525875242966122803837556045497722694538970040337334962928029595698192580669181695877874402770495520904608442285979774406214189031793819559502166460971864689561297857474568115021416712742500142306915675581356662559822202302353653471208593086833378157123902288477146357006853348003030630259622076135940295490766990769448525484943958957612613182981283070711561250404422401621049444059429570506016753003235719914385476287660372156766904228340722623686036607810648631967741503843912503485290420503828216920311491337083528815307787913119660164157595734020530862600281468098034016494367409383486500953711512188623607441127796288736717181258723198394254456242789928910580656291364780026407402729867252261990811269525712833926683776400637194881747856739585807682739442942295303636908952533201990067766170773973703817535292291728517033815005379978206106922001462988106251291190433296286356668954103350275544865927134893115688070606582409701051564732690543116071178476254197170023787774120119478701632575171484746867224300843220821800289345421886773085202084948185656143479563790437886519881560107779823130288371683049819415065988905059849598021520666640715762402971637398451383543648755962709509290487054637829260633579561662880148385105406280171512062020372195030523927355513501632740374619134249353291780354640196631056181940696902964091009667997214177875180899185102869481757464491230882293602661973875054025241608461861449620664883270406744917576671479078304099082751305947413022064427796388921550723528756415267443876633215722890750615391613249693171558565158317871836613013119021398853552768140039566817828050441567582974467080689216292554788825312966751652392331536031120278815248103138295478395233138932187582600602264977909897060628087380657519784078590636622630544016470349571409932467964882412802447675225080275634665552705815418241886244317869902381490260037200508245314976926693445809255283434408171867712471088626043815088565203054714662067273255627492200422876581580918009482395709233247639436175149414496163595963824060588907252858178970557118145392531834903571897089022201567637369383600810908464135577497981017345529393561252225265046196946043516992663951070590274513588021592873609206111861441724214190827355249378411520769087987119103057262382605867485897263815444583609065606730379577364174427232210906283845042456399214492052796610798543975731284522951005768608083346575875511152410903865754595862967033375661100086786877484356242591428210407177117620578072463376376639972346164294238112674780815976170284824224185667632509389022139929098883828890786658851319922232429974657191236214722107098360752015896434792946756297093046582923591203717077076732249839725190122291595443894666305411578107003317580018364009925595470412983365129218966304912080567394081263583179343114072143111078537723852865291551704029343387319824889487086917002676072357304103073580036274669044589450436483775764439211861354761862918783167432763644963316527557945924789818249644997079056035729620184342494973293798792822838596393350420583054388252857589849501802951941998432397000202352567027429341648489571716943036389970950381730176788592945841853707662164221738779928019868959088191160621647773026677965541163838656528677236733035923691158094090011609366713288175042379926469565905682011285714343857909417278682667431498972305744036111024373142134990089632238491981945348284099917678243307192576685519843618168524887287669096798069516047219296388348898879776696294470101645874338250199545670249431888337309161258758661466889700928520070825646986675779996314346079214341626122185936486344657567828280548997868683795150017321411826085308622785009384820115864872904834428772365747988462517816659395045368651918513994736724823810526276273312838579351426703549240918882317432794829602692636412275422222928357276115588788812588616976281332184311837518573227961634856958040624829563981827992758896887788133007588864572467180161300192742397212455826894694397377652638430219969573767916901004159986224361147611875152515824063978956040961319775234688469619064977864999820740662916861130650381720665563808424689477795098082439032697804387492034995642045880727493408221697482036155682138499829478833929491554093550384446493465696974726013748179428355636588275732881044865497923290229468662069344402051847036449938277009437003211903394655056402869172774686890180106098243444774772517789167289601129199046444407968038371384302464614131048551420680629207934957605696257423275348252809836358693572156891016105014203668467953680503120967985927870743429311398815421887410910833160191408352598519168113851659871454431005427996191001108083575259384715199598028451008552657792191142093474998348180736650848469188270828567140801735990003896890825038924105358675170084137054258819569867313274664248880262683214601050962449529393070088572360036403772512508174090922598670721356977810674841842504290511737907238512775880917941483841626500834769861373400683514503674105096855946197712443528741593875731207600300825078840820633228380551887956618103057998829918925505665653814566236630738716836767628147293039955637888985512478395712021085746221989940381790132956461761428910071529652133607815252059068435358759300055512997452888146581220825279045650328808729914953512461167588765111761433980133493895988890942108504832882427438358864978687386511848157806700723008867236640704286297795045919789994829141817504017811866010362137895596847499519843355731691288453143881548482152263282261779866733338743842718163668580192140470253466826283939981339440059199466084368829688501037855838716828667119512949271601502868503205742439267722569678348798110030994431589274013712077986389509425765923668379356828044382665839604631744144587594180108424899202304343596147975223616684540170883146964599045717216825645953095465871128362002542402839662062166622364050365935610807525131401997951572685621998702199459339307209396268918903048512359712574869851189060236540152939960552356959230361861854092468312137100216454852472074125553996759443611834444260622929404624214098167342571537656016386127560128523052787975471995289223127054702643961022137254381476941624911052824812101638805114363928666121904973708192083758394345051350227675210920900647574414868040586885123672991711020015707770081903114455444671615287900464531877599799588840433921764077448897389643830531798848392753775994016468282017395454724936644688648029915440183784486837427650325135036441486849326498329737582460358345638421839676447522732929787655904014072325670390117009307300648745658410525562323910385608291281264816419794213535895396338986036308277172228721120526499080578525106920987184033346254786761185752210213388763802470250056164242152575937178215217188692835161001770569513135977553275193463829267885689887944253386771591658319931536405021102747031785807492004698072892678045223366829573746376512452764903886798977174984061190702680429753742243285029679926709012471816642232680129508075512692042789695518085858268642473786988868219650188911555024612935812766494335686085709991875263329580832199400284783242379712655194369794807694163261722508080576679714717026981514905814031131955964821385121368180997772369466504436944792153584706089562033768122007643804336616350233417168167355703941790667222753290090380557895680716544579735146030901171706217907827322795438605873294409028944796557884351226485457359976879226322710788659556952225905757096341723215103553869828344668962264846438610192629122945129618598063765838245755630925882214701687029207708617763210054011726789556577142620846428795838754635491448426984504796787845881703959426266018641354476688729799671420072843465904650253655348182243605486267752947009292022858239395780334039504616838302948385098393238359251884643875649807478513740671545873707617704807319881742438639893355474565997673012501791566052865662109120125554874577373362997231177956728403084011022797914211367309351295518169086975615587614213422556408761402914612244488921214627662746667842198218815681149343727695485309314805982925483726601691719265052105052905606410921123721450915073292195217897416206946571334199913772921147069287664453347522945226479891070726497976670406474948560380214443787142694537043039644933137053398350625050425535123502903328154165938333541092792527355521374297495346518702936782524159702474211316443688305137555624787808890745620236208095388787636148978109807919831556982238236008455973991126561735233977195201479453079618958992106344902888239451312598243530289675180714175475341982709009441450715577238108720915365471738965390886984390024441355120150524314887302669178560527634858453516129409575164656257545200748539364901578458768023830596701567723202742431561434742997418329671465014424802205541488676315604463679954009961599618174028811142976728242052026189589649368600085507774372243424198980140488828400026408535657753431287161943465883777920967510402412449493462186383311490414106119615961243907155922497775178179693773948641579375693977717240592345569482585190897643877894569067279355468941335115087232705331649192156345337971727531221725355662916887343339971864756040447238205392843264359659218139279918088589982265143801673196466225148233559930014029909247058311116596197647339871317336774322161095060301104671079069839635457232707002932588774342745407502496497115659918187917525938278410502353222658273119260770817779016385563191531903400352120667691317645142166223849506326854817704783711426206831561975335792246212420970678334834147117454654416679998553104463818910413048806007749977911964131797503234941447276429947499010498670164898026787372012751067594802403522470016483792503073860751376439698558315347400436865872669015857313288237894745117688282221691173542334866062345556994387927255723846891836393138896873574347422786955433745122687345626211652460870223245663289058344273144864090998447814211151715228538270249344783485191049768220694997282755148615894506392906204677435610222783251290954635800580867829497953327997455671540953751956771558789716434437353435100095390303820141660416695062896718276610429346140235455604002527213452000643183966206163934974573807981887979582951746295330745796119472183749385643958723536042395654340727288773694612938832289398025343971667356276575568817893317962963166562676267838484444679554131739305246231085108481480061966246230251043415901820863963779575302984626230158842435113233859490224734773033689634107673340025560150239851181463111822619541808095250843221444142432568689383464516881678581909921696306015710520194290700712583515020325322275708867838517774631930820193061243293073532063912471636158272195148835962555748493045728150334150284784432967238857332141467172276740758835578749764433656415070314233931035920467778894588940200315276552441523329726338243394680401566488788861533166097966415845500694245330892160510153072900692477928239447932335272738548375540249845172260977032410868485184768579974253687235081540707354574162783516746060988081808462650954423931311465766419666834956850742137757179371922090611234116267132990409510060431324951843344101537377060385647250460385032342098578209052631388305875310030208849683788934408682530709448684791892456138809542615401696824437327691926961172291694493971058267498724717607529420289942025693442951536763985386309479427137178784261525129055474836100263840938210281388448190800678951006438213461538734069793608915647186663989558049708221890791637016183662182675992852111372189167429467078878420193040340246932506543830737339224630490520943639289646615473003589834669467713692619611354746111393708634233453498328865606263786325720378027853328865669992709787451903828062407504021096705472125986497131291441108619363646450406117260203913226043571469961788278060668483397285421365261168740107509631814987186426619407959601766278726389755460948980108652281104370025163768778485187380234284021824169854570480103310005800944886631735418990788828115262419791537443213120751898953640791827882801106874160715470609667820341034494360646630154487473118461838014333992054542584289553493647258955320367835736047573508465595507108649595060301782902860377150716341403441516537232145083378812343185445191777376119749830565647523975429615394321497754070511005228515527866601341036716763648759169912949917881713928967240916073646267504225005201812707818339565966327671701645672968041603253886987332245858791012579011635980208974809044915473935845856116463801521171404711020560447127540037120225512393842993342822484937573364684350873712675823975153018947488823663352708203051128449184831507540661888276109846465835828129870227985949130919636319768842386657431402466666368545394439465265866673131691613760594890656565959189311879648344747630798093400976315060374976708132318756954542970515056013867420486759967454385670035539537387757030632963530837921989009234648267661618644591985451246937008238835122783007824099651006231545284845794048997404889118570055846234449537390511673100097401543985225131170170797199306241020547468773644829477812357947277119647602888270431484557924681050774337983861118046584965259540453055510132907038549306389292076101440465549960720828026210330740223460646229743233563939609311722259630667142676620217033857275734222637957308074256765610811442228975353529745108551694263973886159815063589601964842366727956928972077221661065984335641363168366574700805447442337232194626900689469554313861320210040144119458551237235317947118121005496083485993105011677415649170330562532563675662495368082909471075384439600539684329552023516858215987533862604265579286035221204931921564955325557064414657196163761202138632187639927809774412674812914287878678707454879015822225479455766088527327036570296980117141605900119624969437663171981825589222597853597976419439162318985153459979466253430313977832799411024386745260328319257883135129929041204259385626056927082336339822095437064837815290674768638064986446503652513649164497236439514687579024492140082124902634266980072494260171793082468109506814514496013290779632820658164422798426895548452039705394869322160235656631335577507354715859165008230616680844396773341647793583146898312508886663925234599605073674293468089405429452022728837556160799946993091994667854644864778298365216690091378981085408276833787502784937791202950386535274986223254887696598456608355343215636702518747629279817449629231243735481601033835149726357879625762716757797168684598741032245228527927643531921014091326665311311495151334763938279677709771012621282082619867914618230646450139881769844659601078695781058391364593949528168241743052799719910214725731559305978799954647725893520322685022586441826180819517136362916680184839346425104545759835615696252732408010844642186042446823116955213589320198297575606305820933417312565243877338029024110180707135977788402123034104671547222035903365799130574373203026881576070800523609347921893464257382208035210055639786065667283476402594222074366258131226194497930866054300015938160018174535481090511809363753688901609818282482659267048229965422497142767961967712448152144080556894447571144758704722814500207844621485560502388713112015736330187381810112020826457712944083730296502722423686094784857686683292672413826061479787865148108468365021734531441837184454769951461280948503956813901640974123980959960715492179882640544603670122025464767058304896589491891530703992893443904490628971456863853384805570984623399335202142961432560553278022200503104413229161765471041774195582292317414383062389417476206968750831854211974242228707114979482908549437279541104188470733701033750509284847090721024744635275840946432993579419932246200494958792685892091392716895576958684011354088861942858959362633886200308609941469273955715915469501346014985976304441384911958116594246026761205632557914731535688271209207775544794239855008708995487276832839652810396700835651913066939838939125436776787980440928187165010867048253232485176306779040147381790161244855527613375123187637929818752910734776886559699039032458947660267035370021451097536859599223686795498257989107035042716897515694638936996265699543685818036356447725293435617232429881836769310179288483162337086356115795636842315569708207800589711697197832321376996682015553578361374380328977726730547742965518808505545324115113966812818370063354679012582880088439079803482103175396166928196868360488612247210753091610024120045379617183866123578746949457345892876091988107016809956163494374595208919571011994523895657204234045614473074112040642657859733550621522034642831815538467709199961409654597830235539216392681240638169191893195297938235154974225785074876007185921925258157715143539462874614119605188273786977942863388953281866707563936345501687428537718453510240858563725345560070499833554363894263444971264296698014700762937952177264281038082353577776533720179476847601406663272863160768277691604581127813668894772381234780180826684135837018881102388017576886732815216236524913796181341394041452871308703310823355205509650949060253832338400773413903592809880576894672924242128418821815896957501349929171188503970130273919174450122768752457387828637592840239360725577282714990334898044463639817810279179053389422889769103540193871007646761195681203581861169177744831637824873053661374118258998195270483323803483777322905976231204272538469782772344963948958702244639961315053668791297884524523834100640798415794989732532855062867174032100644344675585538638177443495401841020912280330722115463913328594659573852967786407581404831683098130068957795485718314014968715553809988933817888993070118786262839362451391166347082587430816300351784066470658970472837189083385247665625407439230300940591392793476218364465536251200177381928111675550711541670187242915366753486815644364095500069766889700293055230673060318175102180005850455409384608762945277482452097191518073953521953302654297131585351516598710461421451691161312931056613749557123875712747555467731029898378502945038390318145825328883898812780460264248142531678587356241040488699720068617026420336980156973224879467680892031737499577491193920453542370503680290164297196598795930588458265656640443415438109737102374473710877953634228855675825266894539820167070108373303904261849133814777933089688436368057385268395486075873922843613153686204867000998557971520952838456079969519733878434614069655093659959142307291907279098927800408784173939186179756345665935198999408657699655396224520569101114233656638874334345904365328877073414168328749268839227964386563781335910349215873140480468181524301698716107388605308965416435234273368970679881435750308879031235346508288060085719955340709682760153654909281844724797633780811788135076462122418973631036316135408949063555578660498374978695689556616090516703838694103888199449954693324548858045335640908647527835127309888640436073457242960560227528654549454618571174648988846803858908641699373868390377141646379953264255641903324988353357856388288105122679886057480902470403293592022399938165885563679916555399959028159975554833717219672844210936550350510957623229972962737990290924930238168430924588108891076574881447779099700601004023780665438797818646172147686070302930357553932751050023221906949422842359019829839701023084845734903436224793540998597239264319134644296172289938670938577002632301712462516455274063007837605058593983078535890653929739367298841120162405295627705567658378362262024671951011658985168015749625432562897122411973666449975536691051023350288503802421643358422633644348373452751912994777728047535589756337066852984981860858864083554733926879712676884110833230630459348013492375475435587887518476822085313158091946203908087264620774351658043951021578014630412764425070463022246129474588294032197098135743658276248470701939055319954102654151327746864613710553738968013833623988676369016435345094236449108778906410987019478226932221914492709593424526501076935971057039866753055485347795861814771765280637081916246203626840398963905023953149340980724155761758669741084643842970545116320590479619528436635393794899681760909826720026261120281470223398633572718126507154805728664475027288729535464342861280007819338105460132063567214436498305851206995090721901226653579427553121418079275023316787691355062336906916534337403736856868380256053891555453233458236282972243121664911874982662835925038716992745296528446657478016036233594881232018883507362468355972758894127247979067100553737085786187247625448152178120027802713192198284726233998553203767387096451456531864092840279012119123973204941468547952114180836851446615872204414134949149411035399873148416073465541140013352036314967695316223742999949954487781856361976395469729939568151312722807452264847976096541168813988043435294059463164536699122779460304444886258416121550194620657895455689346387459507160248862237112070924398630073503464457400590136110844034996572540838473485844455402507486885776916435583362796038070760650602242767838806140772747287220513604490423181322782803078789402866358900490677279068530338989619895379720453103800761970206984547227057116515243412476171071968026227262773477354223812158421373298081283980831602148299999006206591297876204862502618107592427838350605726659762751538513305496855665889726440797041828501443720725623945026531257181173039982615246488153907792297009897837261438051101427888754211428395908085112988875838127089305284893431685163828155377593301054646766072443985853165644446985665224698291471487019196055148255589817448250188729789329202165993703791284462544314757879121797350789205865585278348393986329956206057398198868157609034905162702600576861112959764547921918061104031589623831818793758498759710389779528813540806160117218519280636278499117904776241372495288668047354959280803435166217409849869713453822895306754238178063421069239660934973687022934918313167290702490909844619998452989596956960840908174566621021096036028965795331368061953626572449569965849669732593436058749427576254447455193508036062782393583297033377688830030797243489100907225070260872219455988860709877517707511079249710872367210885300993910405597366597533328997724584204372245633303423161935373236817573999876930434560708721257763691703030067162780937133216971557016216705550831850850242188550369065829484540198105887927103882137696698714403698237688275998725458058433222262688702426834630581283113054867302749890574184737171767847188591219428257807527296676432852760619630721794084889884699324367827050016310041207491978316985294848085320501973591728575757895556484635143738910518990414327612737245568311107032993224526427807171713108651999820101150013178933069638583688234997082809823171626472298094342076916729075805694376525552941995399994643310578224938095623477254907604160840200253529426382023975249799097028380989128530569707770027952193642655770442343677650209757271303681302814135955275529513469523250831607024705802731591176287652802502024404374576784625434349432073372294955189949676912887522601543713739290248620623720203450291978794954607308409699032674680791288460411276854017105633293319715128121205378766014611329395235136564450576815556448077701353597560063882716039098714966825145384738663001616542928723657216522343724359370642328980863029532183630573966254325371318847510271108075146565698597267962423089849305329954277670952543095471102007494240189249064284416386890218408493102579926768484408807187595317063690287015339660334465845059473868833153987964455498551260035379462260214454015182369040328558483504387199524325656286912494554957684509534560219388914100912647542558143885236765190544996564118178874689115116831929956633727555565473190210215798236208566558427504111533231990438303494358859714415442421801732964430691383592065874720246094763169173308617126133557555056486778007674648461326385936052094601254067816429989007244896353221051889023303573873421126277827041673698257969544211080817274665756815907427147175947561635990790812229617546430955498051880029959940455420930124463394227396827979236069962580767124528703321459257551108327021552138217931916294904993420297308158214685370888113571300042979888006027500111808843756392482198604343205123074573664782873727977341325047614423975940462459841583335532370780925720797512164310566691017829943000946047963758824136713719413754270324560083883256778324157588975823959715231514985305570712403891864416377948610224589078114774278672487355680389205412879097617057853647579650671022494947306938275051985364391892684259149799862171164002517769491397509055738868988024765907588486430209735875507043576556610397813673946576943023463141916101268143885113184244955071794343603605411569684065083317859902885914233615172896911411939424478115545316254887279240150935716627630142661691227770570094390220875917515962171556148638131805358238916689215248737445322537334846020845911477773866341540916183118441084938526890276495586060172265509233270000201077380674753796213304046988418430920426216486393673440198205714645843641982333126891874240168459844004838412028014893379215968012751686762338854215942413957635952698702698189913521747905971493790525289383012714995056189926987394224633325175938899820554377812619544281088855994768202002175200867022684808979728976275134200538668746657767922489546597002651166194149493608396955864013627224401592631841009244485339095448349122919859673442486069116891598705926908462167306103251806578283581526334795407905149023222453513079340307999601015694133194314473996829457170583673682199509728330181564581682550430728678328310344484868895782382260311790319155938455773178624095335472028012671907497999968515479196010654204085401226274285557299008510686254394201403486067162859421711622523795209318192933508656266546337155834778488893831170603826466946506823336301392246607761309158010991442573291046806416846533348239190966452567088560238362062688208192973424192838481843324165012652313032237988899777612954256680843587661120386370265151815587781239978494063124267330707403279096632742459763787937641863265307806389857898892872714689591460772360213697962425397298218350192611276940312569028257256362636730699291762596961370263592731515885461351119228513381526333178215673230050979669105433340317463381405481285854077144559222559368085413430784259160402725576779529035038695293129193144470283759262788837483357719293460731082879325040580968158606257401264394104562478087100251170733513584363847742879724168261673261279841675663821136284289465742369824456591164501475533778390876763424814162903501836603014941808682665407722206229971368809572212411752283802427800392308128735489543252170188007878408384482012043738752374634362500170144745702186035063691822555007200798440534405063845097926284428098270967412003821874734974173876912257143176856453002247623385474913396954944069010046517656168764931825642595491557701967854557380892030458831756152880467075602652552818894115649127552833837913341158082538828947389547273449335940609659709348070841990682710896647212952958536518624343586015233579842615844981708582573845290941565145948118142163707757525330543672623701228152392192548237455905952312478407922006042020298890801647655185467712816642247303760417857362996174671707064229934418149715781086542000647473920180925360370121647653618273478501000399447116927239648218663142813323605209496867790636833364455752861524789826443565535824820344181105597116464728799575110666702968576456743421336252448055215220284620627847587404520084939514583459166771298638825320452293298155349695637316327497450266831344974365159218113309276145940113812196069737520320228064826387326392595676232785093160147234808391532932860049166843564520067834757336267070056161888622725687250063035464061602183799379379222002576143255719016978498343700742158799803060190176197822474126953024744094275116012977286786889534173195612993272740308583176480104800531502283380739547930847030453557832975588932391670807707711240515116908158469840666663143641583768403661943785590773084257030059007733981252957338848930699370402581960499504503976293008008111255969416428991065249742260009129906240417557508233332579101278714081019639286276421240341581848212085739227287244672905574009144169978837919412224957072106412073192527368138805628933330067949074469026830921013284390348012631807802142300461587602260961394683342253197663732616233228813939912273756097004668493453745059060320032671931363737572756015249488566005636650332387269308878150390694596155038120627330451086882101666593441503816098991761814143181149747619786220984404756190472185866634950685370949360158166966107486517933058494337970055068452731281727894510260728976481272320101014048136623847284458745258968676904470249019134511990089721808537154366523334361409845770222379272475421846366384241327963463620722068935792815540960212036497904527051758310486424489902058897644543727438772068632912099248641475718773685256091252745707006083162736443913315458879422551329437840389593694360539291880571934645731664468385517624768913524840205010096945059500551785972887687395996213901364940901759417933875192662408023789413490107884333618352871007563053504081196940530958969937549962292759957414020742915300923382224156962790252589296903026544889206991699760328418183130047146939687946407217878997995438787695789568270601893266656380476684496146161867974338601367139447492447351369232662052380797557123617035451163840380938621706113589007292763593652675907874879721683215822235762021253243934542429356646259944218230440596703921800969127866457307505399687527664330641317720603105686546583616841148275224521141056374577165824750334585800644379901345722481427228390752387116034753523116044137790953662899159736224924674426975334158208790532566456399881081972785125868141097704947402755594478805968993678772426232015080998773199881698356231253196919420351034442702039309664936371006353731222327691148072554662179205507889950487409797128530288493453211937949080104300802963079449463558485183883441109975922436395789159477595999256257138743971900776782047198454752485249157873283637848166454740492301760548918797756165420102055411853720601267180647228896710215318614356077362475983749523068084865219398931068583130104457034257912914976810002441525675476147395559415249122702236868577786098972332606133981938319295655564553345937426539926451746757594230010564432773923227337832083321393965118096979507288451900989552914825214816917057017825060106708289335163161311656820989297955013023715021039952514762725126068709996884104688003464760387606791394888628828381602208608433324918749097791136345144978326328313651402130198990436995671162908790942028777491010373656913245033240910910497306768162547471276652031658552378573834753139950567504783307387964024688754286010815163219803513886784344996264380295472650844266158072936856681486524155588683793039235216538318133397559174718268643877270049869646977104817993822110979228725568227125031814923111415267678813561302807127799069879822449743874841891202155665928769861666440407893808482344282273539762591924533130095978712917198644925836341632745221030569889814123086511708813383571937759521408941447369240939569666747221534975746465839568215281781398578163143239720843578839851219667636214905565114399347354422148857997586233663582715317264650242865798567985707865331659713884860029099320775421202841955880842157639246669523032028716680771470701411110568944426671096659664157081966882676459934472863607816496358972211359873932902320557072174819512149582072942163796569396812822454925714531815136003053423876339409611352882076310456219774817416088925641357522984939186026779656601776908656220763140340187113774743923409068512158171614413636989241181697870138892467564557855097702240011845157976555531267201129148808931825244800266119620417453212218810256780831808831185551975866164356435692159551893621897685808707580662804524231629113332116824752680314628383229549433601977129618751861610728694470896915490389113279384696702270183797314992726459737219676069494655467657264983227621075042337761592337962502299228770743166866950155201303420590533792351947191165599739091600689449652610766792629712276170661288114223557541574088994676009334020794596320770284131299974294779851316754849028537628802198587561507918541830435919200996061154151873828943053819028843674609675537511429101098463950309477669751153212839843127936855417464503190177015496078243662702601967737585999058392914970560718490527449335267025921335275531617580674455665220970348180392339724608243791466001633197845618851382837630719863832505919538586472968860812419815487280055289475994148272315777193233988464532304819958264679652723051906346253828368274308904281076002422302640525866336366628817563707405049181978245416329547456706124853000445951809379847182397148808107613298678088785730991594031134695010050253232288531172072403368520084539220550707319381510490415787553417328323050990645995953787731715706070010544167451891903357407146840326610588137503091924062469235246045153451406779011340928532442013799126039489516616930819095142994303333176182032307636929821639637885675758226263795683149692263891013833183514004417309158781736411350611503816356303689121332320872640065214631548079414368833635144800705260772803481061022033751081899557691980200944086568610873117294209529712371702835277357572743778307209646628770768701876024559233928028382280949522797689184033133850287095481979736061017363695287026537357300060652253943295930951630571825617558326204645970834436013486995314709907525000222682778776953111784546309104015286621767099894874515305100325311792731771867424719333411932685596496193727729214510455780409958870149643735136873326075835097010433287452774642884158279871577044968656528214397268656134760718369880886364726383365215098449529294371858045886584480148173755507172660001764705086788276298811784912981689369069732236499229170863295629348994266284967574877143454632462937554214485264325476520052715514040830254798268736526089109783983725897234854548794850461084908093404438021807838234778706834693436255844381910457612755722541237054717046579956851765463035764050929438927861591501491657256878855502764051364633414120938761614592076611178595820619863106508882568575865425562456521239323390612950644972055257007574916611717544507531067602017588011711699919984234593058220746335834148082599768018045950143041932476216560806129034423013137478349158589576054298315238212560898776662054913589253983542231873377163181395158401148391290054654482351688469577518755368116694805307971442336951211377332632710077909741784942811567764586448845738235792375948436096867484491598783323557703737546553098087359254546238964616701338488125941954313527814578957564051662566378045609404022616683198186825571844152833007312382924910871344308117223311336007571904032934481184647407347582614819748085951050911986751562646068928979230626719820465530971882074548613242815151792348547228888387631776919056078930438629686165436106335459887941118484779262249660722421415486924083528174070349049787314639763571355805257858481713838411677643160701304631686150912517680473258490412134844292148699140680671724085218525037435191332925247489126017000714456446021168761061614074994526878200339695454844836487145933397949315481937026091565430572847459686971741451172366525991809806667714564010724321828321944503625291751598085505970537273249126712521076028319628928133055485829770291855622912346470325564394024486785489775838278102845492809405640388756926998315842713866442865673238883385978661906672211631566457992026725418539703945817405969576824173357584383827797031887009866251192974968714403344337646292071890723014382008889997636895512251696763758226185699708477885067100450574660595171822862829180911548900857919716239809447236782578624239256826525246525712175051721783830046238022354516446976680437761510190390875028438799751771696373009696672669639703838217866860677829080614264246874578764620675932460344909231631879577367193588499471159735936983714085893388481487466609605047886091022916177624666404998754247352946014801832046936236655073020119368124936369904835646114101120488546187682682361123688921853346576788500324184525403211685319629596002759437022051635351596941477726800477639906636468976636547844571797944006141944576757536008104704038769619176149209760809927678580773480888580422942004143794709661943291950156669033047597501582627804476842099075015115460687097680535596656930585927507371930183396007442042531606847232338834124949285977292377345507683801181921052731155714546906742335152606168517152110797235937619532251439376994746213871723526811165406093156691610542518389594153391479931018153913807480258290252308734050890464774519078420435009664413708976475258904980767465703103134698258590395119608808910766336573678152340916818324671380164675808247261181194413607732789668513728468031036289693668553231469641339501727656625231524794770125808875241546943996383428045813389636174828569167948044298727755486664483789879506258082828306735793304007878422686834686951457591412704654896145390563869735415796804621714530580278748152924467709970159437559980075744362397489553656666291809693514133078376900698267297892106937427814758565498808112782152390334892352440570743285689079565367363938934586052774430272344409248443495635672711608210011633648723531075880883236654006054260198541028474206818518074235856246958182283691178290410357911733217803617099538340097569180363377628442465480692707317788276282581246542713019951118461554161015367665140073333216722376207616181349185834233252823040276082884515350564291552049093012481666423467526300803435619215017752081273132449129048834895848418511202954119527045918920246506888458850102703063482511398581612215637243064786017711220031866940884080991633184639458117005370717366563215870752310736036685775199453186297669688868517511398212901065107884412112370574357649512539989721816854637707007912467592030230815294299278501378314596932455286907791218583744489428972202077722064386786461217967193053592483652292306442151759983376357277775225828988758017133601955228773458558468660145286492857830054042505477788750835364534878122413248860816410944276005466515859672456317368138826023584221794009760511782160812892726514320039550871043301639746291984355318917304232057188490349584216847699073396212589764959126639357978702059296594736491407369245103783274481368005329329781761739395786839079111063256601333824272222663766263946399459344058260153336422854065907512571280448174108096231791074204332797866503722890261680982557723142366244789004245990422791712734313925769781135674940609928386670744991628751784148794968065014362736449075115750106901271673865534396749733163536904942316867870940051112482302830434547290460618285578255874704249362065975041306088178480128552538488071265663074172468222916288416336536216941270051341948447298994954755810436943253838484301722977888540878293065568350758502838622596374017908323841319933811277876245256486378232263693861373167694151914484587363073365777224858300035778820032432959978603981144442049075879510366730449800776314423569984371668626956489400772905686751322397773466809816752843507407275359802796845112327571184853913939836590773098125221495808356907657851449567529937126562858077342570035589451163263559173981515974682740966666282291104899633809959820469738175125398969119827185623472219680501522486033963639894903386299013522915959421799311679403962648227129525927500067527919543535343047015577714683578111019469137627958260011279981745181406935702852745914746078320143914480130473600433608377789956110381518512925143038068929959137009978218470702357471794936072433319649325000604534777014339039664714542534336743720474888457752767251789152318901501855646982651995385556089072292546585628124500328601844468358247648557027516926490277659652742452112285843107211619797851058502593831365558068976094552735277413338670356774566448419174608681028775392051791957562332322921645786865012626665270921165411978438151496643889413460233530336067589430657111391921787991829075272568524939326687530780642864062722000643572497422170307434009865597407101139530255706763485455075796623261069764343984621032304643485912114218561428691063289072937691948519075255412303232308242173881769126352336700533835092703187947548208800787752399662705755308258913221593792092087285393371000941715652711229581914771468922379538747869812872161929832128611707817211723808931498373144262394924354879479061188187829256706082793647134247683686083119141564119684962270276690352249364468109791061513852809273142163763369455935424636003193807288149902945884864829601414271901592600158060936884725940030824219469050483788778842221986877709047421582156247698790127778651663249296719756420273276983022557660462464512785619682162523686746794558107929056278316102248674395955570307026025337771226458651515485793488637535846148992553143884748032935054226394845609624426360953116740897935645383140130573873167379277703432569550568353430232133100883616087389868516046086211777736454696023222117115160128713154845555248498274116031490055743458392886166213380726477718252848470844099290297635842295450935663446385876017821684806405377532953973990611048833136069110670619139685392519616556304500768863689149771958733512905868592045514692756854791894623406215340410975763094340088138114463114927670430235567534845861897434835375925111865153722572038702931449794500978177534428481691561072829060001468194133347919988637359795436667446482105217327871185147982291767338581153524063149664114185195639883059354285329172865081632777964752019482839605797336141678129297146491808818906910090357991297276197664229708087732798171777664142015522764009664557121540226414714250071329309832446518196370465293638512905805603528436640587143464082245901718705639741739023899975584192500328106123935120834117989556368217188803234321753509677671710511422525837475974426343755297656435347959871072099365549599201656976686330058985066293588717153323716375218164959089583366305768627893494067116410352595896314422210872272817744172080698846599874897619436138552224218237673123172236828910025501906552519998209960533300892839672697256012718599697189535605768919406049680345404771233277782946039831520695234842366794420271566589812193138650000530393992301359966520669903425091846223516089209783151620767720537552025470722118912378877508699317929858903836952924582869073140909310287949272386237257573879053504469032091552646147589536405800014802025502458481977880291547398556978618918176620453176954191547962237867474889470422709266422850214252450819224957378803045967671627471450983178884026920015389579090151142497032870935732433097488041825177998698509843673358543196143220844283640957606983376601435167430566315057236958156803780861992891946866338790327113526553160101106623324592132138901717808849917780954002079087390231237349606729163507474153398322600376976087070971091473874885939338337552441704089882784417659660593113284361810771662543824960580622164204457201045982600933124352163281832147119989582826831118495801095365793432092197610906794778754709049845322213062429761908603860303237047252498116975973410473469205560424868771829341777183295872762719639466061007103973519789459987739315101589776260941842302693949136668699361316810381476089101909945499059360241071740252354119209156189079324475621329388276390846187630372601009287715933049894614513754787168093749102258717641268449809237541785547755251624795141030831082351889079919399158125123014201753572196332476487739168674079385808222327033637930735755108422221422295701636462097735484820447060373157601136437816986274937523828572032970280587239914015359798073627894783896487563542915882013672402496348511623371708816971880984841077157832095401104655853172641420222818117065548996849751262896589712326446294627658677045269935194277552356638925726362363804420153718146997508433959502826466320619444658419411460173876505652734837813763417152115365707385573889402153233098662850162709962630795270367508640392459413055306034075376639605618655815652388064467022159896029889534730948020992145427601398334068010610731973020698312419023114037792123987691044664594629269443588577755623832125572228845700147875572582462919353837585022484625887532057956362513492683899150592543847235806392800544667473002914046393860520733602010060364269358078095420405197397621353603455250350540584498528404862068713043436514027636222546320568129358608053089749960826625441375404960296841663180500426373925415450516767871308793092346714168459917342983878563078657084627277295901770135992657293991158681365866044213018966180355902617019302556904256553516615379962734217344281872092212179268310862397480904386920648611699217558976508022732286352239655872564414185077283388098854860755415343250339881684170792787878608845699813161499952068904465165838729136945237798589890846070296471078724914797436446998595077321884745602364871988028601312899008275505055352866890464054710785183241353814727608444636001900728410986486407933157060376166375671934553589028244763812882544898587683632054089462497414350454703146028164568736562453259562184295600106742089898733414538421076540661092846456570582221307862276033022576192894948617093504976418942196158487346584285419138989654797249392895104627041958070317516900470566120755756434536989545811138290985926749656314504176277107991011540599808179720404382285288071310717518629997836772801346337624590354339790760747940750640551935837812828740685919156693145096450606027360718269743613644365570724123059000298459933427977856349645503533862610158478133983520769244797810650940093825067649418079060313560427044582196246909982075596469432339795418398228065590342560048521907380046560902405584238351064975920758582774258878388177885208880129712084571800258621309990262375990961742405388583898378822828820566256958076983930798858979295221751942479895062621145560950312532101222784667456002151909076146120941115939937435564016362107694306882216450376048340332153905579289642963168583509331108776818321246480388859449485994404522128386808170293804503325289201113920004951171011803481198856240838413184717469821302121796794212961113525047182060602694486430270497087602907450071065739485239463423616821306894527997244503012803212857199175733900146328236634599525027876166290025316500319248293380806479592193591453369165347814002800010741704960149689675544211561757308243702792174497805420638436779717862347295661090387684079868963877436375591118311253312142176506500853010977763091401215904153846397635117590219949942957740782398845822292206110086387850065142862244151957638935047264560014471645872018012446626297183147840317035348346585857994964483354919555106726256243573112585727287484932184163117599792593213208061354917732689609623342541374948757601591775839304930788171860270240662007170194503590161206358768402858301988991284859426949817419465122267064714670719570751387228918652318887731073227577582268797420584395353021802554598649681681288052211289228999153957859059784496025151272569093601623115709171669842850647110302048638214386264724092044509514832123335470636634493458457081365700579828891237907559450562665889134548835843869364285702582921912370839870510081819176328566223608803846316211354743092328878871369809985308846149211799076011734451419404739412445997766402631847662354434236286048807901563389858638224176996096218535712309080433174998232780482167808945687300065203761547202312464619535706813248430717072684263518367164240384311426958672193571138924998356886415828661925119180045877838780811668803159970742937611732642018970315473221603885869792645229037106992007369195066271670517200662583384605139394767063160246205684650883679875428354544165190426071189379268582796210229713322067760787288810162679147205626512408441256196692306359234407501521558874078466255418742686574088578907918442821901711358411443270294706492385049667645046298245986840748352060791920463590857164194963496609492955013094604932563165352224310208732513702729662520070922745649374899572695200252694729293624069556367415493959190080588377971527708129544771077976594182036169499331112827870683332131711831138881065047589639929842672346221600892915934465507817650297408551914599786232221065195278878780482508613513514255996930281897215688070086838350343094967789116050555347016586857768472210292037065857891323956425666616334084825242544165713510415669511749284801243160540300354909246684885627841725407504586310260827637289239305376475847135022562056353722052301635691857245555880471641919590510738255784562791513745356913386330863141502144783688754748524437808780058104085910208129887263181160163688222759288799875362222703398501519427520563163794893281748340452908621502259414480849032810019817076971709729155957346619630981959520578218190144702171830094954643958607194963446042403268007913330943859979352445583627445621130546132313308547513629702310037829248807769994907958677555074483928556531993467101696999481991653565609425323934954995846463745002510917104366983794035395253309300678419928757505239618592323326750412440419472961035863165612391643970220867277166336282735713611633903292987702644580457746197728025324329218199047796078851676421979563115479586086337150108589894614480664300344538943441975682073815972858598300380727888856278630244384541422184746638468571425626657903469574301050882790731707869847112990914101758675308193461607569338581919303460793212112033860822447966350744773914992806255407238828295573754772435278344432156421968870237985083194954523302766753595508294644785416997031960463845705794446861782120155146946596747656854996783900826340662947707935594458779129101658182198278814170225370842756020115855279372827415487927283487246268015105368550537975439273755356679567970776204887863765704092996045611145922678431427374087649804335523874889961153336961198123225353774353073915362677817593972264509397929660763429850712925360276083597512853451423347974039623681021218474257420356836779631950455569764746424168493670327683003957432131960190386432881126328736209025231123774405868302287167647754971770960890450925792656583647812123338192026653103407473985698747831815697124909789804442514761262642282557302393814267965566384142757290041298841454166888546792215852486293396626056560157125911254615788790490514472822307448716577762308539984312403449500157252423821866890740304451248906510409003570027210977141694640160798200231369828200322890116145717185573468601818376710486686353569363809764401548940813542866209347349758644841746192836224212619864368934704881640685015414362459526438853412028341202642421385205180753676815455720139782235434049598248457183796975317103050725631667186039307073202719228659711186903893898674443275583077192779680210696432835704612978971511991370402207428424766884206768227735182122991098857071385811903023589453457442183762688272066704827653526709435234160789802963274484040732175422153934457221644382024904204711378409109142308018720631615904162193834316582825836931476928599868541280547074696226954035394286451171507364765372352303079809326877257992151759337089124119023880151346843946960000922084815288304019317786679257519408361116211313834273074209662290708023934922042530760267347465662453726932566644100246900139391437154076075242282711804720736170230355818458985594067880296183211078578086155032572214868369112599887284249594787855549616852229485795769969748240398708459299180916017545353749245224576998023819090577871689344201185022436717649815078184854960015388139161524490254904736648541677175948810515823261121607466259725534317294122717360819662813505327468211411376381079489241549213397344404753357995311088267220547542057898520154328350197355009581248534794065567839038422158481210835526831858735416424740590673982718723933200355420744846377589008811620689635259255652965952926971479460720147882668465163817479514102593198384571937376245062400712142419141227789281757351812227853310602701793488624749107988947461807429521011435353061979987552519860199741756675038955036147018571299251999866396945056159230976050770152164767209636929723849668505183860890721206135459447168609979528823951347887746645503341987256692239099554213864998822075896789468371118761837713415683228293254280659636629970235197011643361928050836371609301199217159645328270833404123403358856055635654052159275630528515751844179965141925646763036903708642219198511649284460149376200651571591682112886784648210696295384452630853134344818133496937103973233841394229469387415328640274347009982832888540569414291318639298159838413055994878057243613755652327945576603244555187941528606498620730294597866341321509347475706913615307335500206015352283724089777530721295597786469463363844015661987223155654033559390322411009894805233737222746857919283767124781407071635542878514096749083607302398269184087749610990885878686835536185452118543248445229127018779971959998025524564791611896259049680570269928687686659890479935968641998411367774117582736801642728481724422239010502479789992419108494790256284580539118273218306500415358576721779661786657834635033789843955751176570920746114545696196700159697402407541128997587316849125237644962952313772675172411450510094834471515231160742096341339906648960299939624619056806360521208101506396383723746846262778069033683764242332061852432330099910930063276570418456269038159457631661364489920271246266638871498018580331487889374586682199078546131432022899733463045053394723092292465063116075868326562561626400197225717446941036654427592563028121680092476037700024189998699263243073384711555062960420567999782309532166958887407880575121200750814679731734969369585551155905672168429845862654231630177783877115427586045459972580775824790786375408356126368363105783926365500534793618313297004330017072465605277220854357737280780784171888253070534992229514411782152062865519901987681943326526744025309158065219290202716689032263746187631251507662587360361802085516593792618367509286608161098248464986808194099777502554285981522830063275155408378507157499323089182795419601251501823037514824116775967120586816000407399140812529590196282926686165226953167990446213038843508781183781364030154805530901142154793839336370301378470936651572396558092502801586102710343721103264843305751692840372496900340999627398795772812662438770509589228521681808698385460392783891141378351198849119460465855124227087524727136814294973249782607933473085265766337753517480565383173349348923587545410684103833547293226969600785551134075280764286718841934944200220712542345344385593952362454610016683184261926527112456134749031237633285314514662686509919950224885522974826359935440100221865841578961719612359632460006011046545799928074572900472834393509163935251706546981602597118766106104170751303302956019110631194379493377334207422864992522422179004431768468670829842142362145076558387860337744130175875019941174145537926579511609937599979173020339387733487676061169345433823566775933986925793332625165193568014612776099380199471321527438888623985552026765527106115343739462953112628800132135986968983991527535019390318247627690296751722799288053230590541871940316835339628643037944769500715063814876564523641330908181082224364134831175980704596323229016888741604213231587461141915463448441756606760818928130239550413839427871006623480819740543960256729264933379440780372002493746995480707455467251606049647862405663229172695157189625470817616212466018123499361783641060924823273700534426898217500153208942822237396048973752352763331439631889120895543456924778302105383695631199449911774721363185872636053926933529347053004119843080051178275791991692430520927021906532006271112242193508264112956449968037027560966916523254138610150967799537881101100842494435829169346676906911529214315627921817512813180733016487190115585453958867901455443801753189058761304048156587998368881482458440004715056272275588791113573321945585361413122427447418366508486056795378678758006720745543870645191120530262080464566283905741425853701807406659409935454459392920040039084542452133702741780391667973032158235215212248113492401024213891801407716195980793841119893706094994013930883540287940827637710353944155879973948901713697414191917358960763436130611731874161384572522677481452984950962117234283290963886659726266819569320382981198189064372615430540431961718182989391060889536607519202842961137604196648149492111985875518116982419273526626226498382077068704321864339747620209681808275845092295252001805472407697148172098007517899399912459725274747431814878895046704854312494199336134599894515283826207662341611678561607993831542298253647113559401963113713850568015184128244046376552757868534572612223422789845857037915143865178004279923730650875057159420792481361534018910293096459341265259143384094534580397988792634250302575996405746582936870935038454287770915225321342408731337596443629806541977369216996447760818692187547890511193925451551649145711243019021099786767344481585832863955545481747841244252517605681253495727656040048357488540701134487806656118274430969423530316970993959403351487190761678383746056349358710947067330716895655582598169265018910726599384424440104251329762566169908699108976001675072621213262170874332640218769394499006354209275727387067743197140430497815691207467993438879455399450580174296388133141259239519389658415566754389312678408128038142628944105468422456974164215445441500214336619098996064743697888629975114814334261971525969842787130059101631013517063476965126448322833847619209627023554321728727233234555447958581251593599537737634920536767756668360690044512566961801972989850408924225576389053495539857704669181345562345032741608072027300253438388374388582506740363676432865584481493560750843150650518922836720641439055570354124680088736952977934723815574874519881346378468145632010775288097627896898383339711442163589134183211397771800104881598077018622560397066626855590845660982853830280721455246447023463394065622681690660757950226416376494194690410970760510803778373027266451881196387260898483934989598728352864052442781362337467607157171149560450598992722907312373894001059330452814278103730936760109460886971933921594566756620551542607093154972099885626852571011555267215057981075653241196469614284878654958549581860131960486903172094059411714324978920738090939406055881788554701028994397726766604048309506412215956059683830468380270481300107944608881807173971091347030114229816504538341292624248487506311524337076796116460004055983521138803003221165384963699467041948130935528429312366326073270486087751132633723600395859491591662491647060309798670174084635535390442087274986478223997795695988839251662789883934468682968369595650428915537131694441343700252969347924854008752424909452914664884345762508764038133960565803929207936384922499109737200745237745607201003069618285241783884806879829886672807309648612814277001413014884788439845809157201930983530766139808587096970939627515984517980963367092620938206091801483205181094770906104943779111091308098637681522878216457425018168508850953394424659629849575766205294918869158485692427839642120537128643396108119291711739241752066714160333429185207264442874462829107661997202115638482690495027534137682832862004583265546906223703208803795479050404279865941929173423637177892539803704970475019819784925294270624860817521889580841793355248308249976477357091384643766774384842783935770336369543053917223167296298414294172412530625414420062009693912166334090429145657433469892875358563429429043301817188384950293645405897936910195831259496569644523133490113833639211943210192676371151769565257646341236287007544033075635784515347410232729853648889585474186995149096130087382326472392337400552553705530775606428049341666606812613483130606474979146538091590520411889129615531593007260279239332041229044901894943448137667337060399396935251608571293041949086527245502671545504631777307952964992201945040242977099993499316841648307530564451169860059387321827651679488029701625537001976825288540333903505914224681154934090291767612755941233925561155261078809953034471674438196400109982130001693125412783170644941444230841612558076366345601335982360021264454453747209987777619763351245609244600508988727412382159127604806057359182002244493622850199406330724722213665323636850447096700214586403359083522390199509663814774377718995121041829136287838882587626056400679469539940987884654617519000881118160173720593721676645957530004327576003139813467064143752552523602754733860700302069471931358579692077241426860204328958913787199390063995268033506232230216286147895777669555851017556636460204130857598562167655438550350454939188826323358551022219012168971965948421031798398808567024394207694705171365294026566994766574605415560980781651235522947062439406791026262332048444400440750379231329693974236910214037091892005422063834077725540575537532515678075994733292528036953665560513753216446793496704670320295264311877324072498313512090578500057664261941089675865718138702419749861752065151162089814697270713671326117782462267583279521521365680596536888561646144247536191262642219803496639610257021287019545046852373399559721777349775704091136774758648006552579381868670741056563624774073348936770945124862057837951500096203289390753046015669116154514799637179284886353277880028497610019305457285740038109332580052978000687051680421271408812826482294637824005717199838749097904597317106884516542014710763361194012691183864498755616420560510159475321423959351805313354852882366953358318347389818927687072347228601138747740866210821583425410693140103237044084290756482732174332049515294805879674168403791846613410250701104495585955193487547798473644537699310394862723649779220105790945604628367398922188126442123826748977470449401216895282510790125873576054383089065213538664110351360174872611250561813877657149588363165070486733044497788585598700585519275529155705149370946532214761120047489477819264031208974386603479915538526039114570398489123945189857956826586125954345066682871237929798006764933896449012102289305374426219153906007965073733870216781241984685891784417873234450470022044670242462141041874782525107412593268666399301448546201508680367901951648785321686716831412555570178019332867119111339480551740867392917502099196800800947538982312843687360725649383610606306732100077733017381591445516389528933634177624532055227107145714581831520161465573912795318418483051921228919420229931289153141064902415646728305331012920073946287622844321293149335308402005190712095423867604612882937125433703586278130640080438170763993697479601823070021552140930029248079635712883903385070688345637579096163083367818181147867174441621780857400475137526379649186231275156198470324300301582856538175964636017102126259935633976333511773780979431668290866004084479444418806668177084425954314399929723096385872618162215936436850438834335301523283485363474009448392253796813480454024415832605084726547955480871811226819372209134029680925410540470387976828160683930060815730965855595564582318717258959012129037634441117798973315909559726712526444412719260636585061424367299004525038244989780899249391580717241201654907724500222850610174023490540761880252099383617382627491298294052220691848380267858042381259794242552735576687004316290973249741204032161621966965289113183129740637454884020067841818516227586764062849953162035370738999815031575606089152676895530605283645347678609596785404101633038592035026046363359417149413825999125887657028707842711286997891226541406891530833393146071398075659538805116489835825074290877180190733820534390589983111732435204796390472821111075611287970148238120774834941110473651487981806996351818905835591524637599094093626905535113914855308361568114581262335554506811491404138567723437657340762875045754427361621108840269064057427312337508667727693903497380029079394159909342909483065550813200494484673225885472322090336980662501239000187703263557864774169603682979838296063786463619460006335418499843709650247401268181810493614299315655499170584874033764861282262626062545035356174166756485298725752958967703975432208355417611833191354996954945709900426508979042520460758479560743563656140521676325257939385965899676231310340279820387317420143255548920893932208957728550720526081451712419407770305813982154696243851923979398171344955162362548533820566318310288435964885502949187006994790866895058920717623481614598876921699541072607469045842006981619875251419134244108166288257510491487207336856387036135332827351349316257810387403012209974514320763627199457405600886645956693478942126653349081438673940290756552777423525658134083281533346086974842758920093662803386530244906793947027985167591290452988140163856618446558449452895001095513101058127188545388129432644856823671146690677951999225874051022877210343737860213639747040289037183403015118245532710546929311342060743309472344190239454974463520056835862758603651791213368094016507621140473922835056916716543807149020729576152621552765991156390630387709556697021856404235949489787150082963990321918298435403708703414422475157883210661229834951488425623512663730109657723778273532168951810495566047031787255382614450252289772517218327936513395086880869812144653022893540886968188084124381034076304589649954926761158208413810668965138919604666709383286119211111920185923532892067925900031699172466234386632341916721637893128907663193666390683434864086239947953427839895925084829872899209281493884551500969799025203552282800462339250027508193509990738358540972160831098162308272754629502500764841262242837442808172271751217945903403261283028470146791165315366251631551015933406976314076692331164883455754632195928779646667875824814419903403438865289257591237659219870655803139054982821957519772249041995982381187724420077664083357093243753115195300851342132723388744598385322528680470130624629541083760502567780554066374345472008813419422571913713906866764969886757502468498129327211696865863076151281997685609506112637156850296967972394048881047277897843961023547048326125954237253365573412574837033557752002299420578754723938894891683048492840182542805113999525471643597642966072237659971601954595812704970100636554904260862812429131573927448823591620992084706736077472559279299166077500311158441477597449603983700307851732522613701303780136363572952268353597057202691297552938997392062438226171003396457216613304463730648665372031357902370975723836248723767234721472856874909141200384494772094748302923211912777540995612272105193507224238252837510179858637490313179964099092314332256788057568862780704963797820443702750610355018277948401044297646630801516412432179871866914100313544120578439911651793621879755457844545723798761466510827751495025630602819357591467426177954698827728144915797128297458601639255490894955860987192383441780793352744551875198246474871292406805274103529662335443100905919809346000458462104292168390832751886167512626691725875339255704488969293401089904327658419046651907245874296810908039797945176294048581744557834413397418534823653200702742703131494957645095000644556976844159217108427684875458792556259189115237390750307448674574244358503356987825612724624281415881545438731250631836023731586740886580534232726750427473726814260922835174890188185908199642797974184166784552017953993628035439135165044891625860106756788554771195202555390867540502495401004744198365022169757949630606888272973819468519760212311439933767905858041717209078504037229125163490700424500037533980904825400677954729027067299702267511251457449617069385370698886625472391059335674873163002648955235186759091834403198481092533474222272657102011696823607145617716190803060101551883663373352256186242838689857730113579286895004263932466042605313331216261105085438996883948101275373923693024557769750730858761389712598762028460314155245287743718671333270990702578854406151163590272340304463905998793517443875707641940277635800001243697395171150198145207354917236895403167319252407739393996897586337991846924368723669382159119660124968434015823591697693507501168498696861607090874082642952003816686932153622433819379975713378050696010899093515579301757859427775404594547631951918192244585377133866896758595692145053146178821810671430467303433554923995635471269030159752424413666838208657093000411209112555347451213012258776374352612173699120030581770392829817010195773524863344383597159225490882569582295528502066899106031552581856237660703466928110258909006873204766994427828490311269710113917813835917649272506663415787080172639110384323388869139478271191769188761854862446748601009236652504602294556361923341630995432605897590989517948225165258909440775436992818569023059338825404314981081121686151607468392821908020352931632178354782319874517356894397632243378152319522915169128082489029598151117763611425311227309251607602900769476521039969700301692047819702404763091563595885050170365650863615654896364468889253109039038771566435765933388716083322191299447704214416161156455222037598900884975562756091281278318953555487217922396614914214289628757250954943713419709420342904383638757835949487654292824018941215145136075979456126644479868224163412578921328926600087265893123706044303317936829615120823422147975189119786991497186013301845609458197412467997210986229927711678211591296987704741561751007935180482978990167387906998258105263149273688197114654866771269222447840618413188659151477548257511536961867058698662817036110548279806722915755393888242929843192091775150428847989425598249952171804932727638644861778154415585140580068827044839028492184947716544217569795588910934355878302964750888875269499694350146805513660638155676511750696482207859861576848520551664104289669741533258197158942804420961685078045543934834327766383826666033894154147625934060482743993023932408153950935463442014806096710768782580047636123332560406948544154630608543697900660753346696115226421905471846971406437890307033773946114341878447925028104971630798570455673671870304418378307427999060425659778181351631868457825696176414988450517582600634310321162452670271288117395288186930857390955603816645094762070051955158488091597938425436401662267127425132736392290840848434474064798405544139699732873783314947363105322793223643513472490143796139952122748740423372711427626131568823814218459775003732297435599992559154568631396067045478461567655112915627241725671034225155580612653784667845146723735392031547603234236655956504230695185071267697510171377992090653593382662637410090797566580696203090133593575899979947509755164983143593621177344616536374257001143513605765058173566652631269159975639677200453841821389395816789854983889401764372164380530056570435417859547712194359566112247828613015614517697939351411831699361116124841023638609446082168518204185521601933843291638649591257498823066579842227702214861228787370392620590433823355653206674542540403518374239630748676459467817806376272454824870054216906404237187000390670586770906257633678680173678859657154240331924914071339430355865806012696237306060214548658667551912969700933050717407597111115864126329933033970464718012045887874256385721394870990153927791416428926820468180563616947634989966749483012733628592802069959933692932724912026044150971900669293134648289959281310915416008315563090710173295760104217352746214901137898673297769656240780593451333667924340512317549241651730014297458288076507968938188833980864089951705645519919083201986753531384111716048810132158628177437740924944111836656179044060858837072032756015443174138683063866813917140308907605068357434912897971270818653317082050050869973187277964950129295161946047543848876726824508838422228523684931946162739502159949575628144877347772981251829999918759377850251286607756354064268216030284204770753330937551051423911381595766862244193931756333916917934785049429918302383757484664619258897259294113967074140774242974735300732077697055553314532529693990509453200165038898306615972975044451482648518923230808354625118541427220129836412516018894170329008859966874421293978540847300313852875089024438040160891152306901190375213478513669312296346283078334153824181646194023095016372790542372396282581949634797220083552362486132691719827839905778386554544241749446259667477802042707564701994863908110801226572094994372005665637992945306773972314699897184036479424891026159906130525134157681807624106130983548917046545835077834270216767621941122612910166426638000044335781564850805897791410312118223545981551548997349657946346264888345228672192618792307770189823497251208598775221195015174084754467841524902579853020795236918257416278116416994104979154448896590994860766505035536534962522783635811295741626049600264376588325649500334912525741085483429083326513017359226903212853775462877336054252304976007997686213141500037887693519696792232958173273630892834647757611644641711129030198378222229197690289915777593609204356320119230004514875590914994928550616493042817133341869175076428300588734352785457673600180422109076286220324904417690436898794207790813657054977100977020230703652427307699334907167561444880239412584360044579219885436428436782292937545364229795211252490161576482526103730220639978231930568017093325656982159073106347261527856598243362657328642691569680415309732160204076012376424767884021220461621366661851088862474818925669859023490857845929463704366225105548107229437475138110990355571367776623654420902357174958005960038850390564383774313220404506744434723563041338943515337320822261271594061442670555729978772449250392143085952415747954157083562473835103057936466449270163020574179452145777686128331950573252765095644935937433833282969612088521993367767499983418649627032863470769566316137427210975958988808773951760896975484210281842060411205764407516126518692610523513215090043347453012082881802583776979712201482778360154628453086221634531858998325623143719009545882977168404575713570336965354964928901182938866182919946843796399251616943512656058334065481886616371334328077857914117090207391653731873489023569476640278036546599969157220467848084277475570543875729168435216579890684529297756032146301946903426437598099166262546078016260485922368443047380566767770864836578098073464689652866092945806200105752263381045972509866146749200786459683900880142700945337351670741550060562440923838541749166371329296443444992229850531873682477412622338687206302617528716859489333446922910245080751251354221659851803043145540116925341041552053260477513795526496388683295899238816826131556731871334753559040339822359376843613745103988799143851425343119256055630303677867565513438161611782459621496024292207944937555885824203942670297888051529286265153458090260975657844183609099976813955231481093360206516298246995847785354164711431542153277445629160110402837685912622267388005917382015139700532602048689740132552731824827069162651076555065239198797589350385233484748370441772644804696900465487318468822658213617883613800542090478320005476680927589152105716230139577043656770210791736008869232616556236091238361160112219389087584987138694305243062348203991253819023709005037409448196548171871218272583875126306081425297089988328569870648509349123349461356811420235262504357118901971749514974598876044993231602104069554597709240632497774211326771085232043741497099969020190652042110713148837722075158185840141382447567989693219897666780262239314179476810841295152265390202525618873904983352664150571824379905557817915825874093375612440722547684908009731281695721445497012519335546610786484067963141516279741604381668095255851919838757828985834312083381546964568215900800398911074746381461533193717644773353865111871471772969899716612908101632192640083933271922623068975086480544172911731771409244218254970765487729739489645382139599349348815211794824759955855171577663901122233183209538135040068625805803390480058785184104472117695601919444409403126232961909232991661449721449313027749335469954595435591196338361930912829486139017452250436333003603093407377447049659178556486843435052912035878133762587675785206452175502790488956748983392223651937685243370855629042175415793632216393271841833489515825506482171074948279613665927837655095799616327683109267885783055391427910807735291045628350140051540375260934972650820352568125734698160693305727189037053142878092588421368761308017816231843153777056463675841128846591886815011081972418374963022353385124222598197225616430476277599972426740763804422976226005054810890131776253127896937222979473814330087126526072800533046694150053037385311755090848459442378468128445112159806414859709397239183681415591185003648849243079645813146952446493354645275950887340548908181787018638592890790600949826795462110351004809027301747446684766753514850932510997351607135454292248886785028477782624269490001033603145320160136422603094625302047839040384709470804613957090869551835953141259929458791118429666112939551456935630754029784835459266704942077538160250712181800391468359332402141989012067765030059607121478033616331236623605218701284608022570711711213055975564185295470296760994682348877112589537042594963934738973253281228060081884154201928867142020134132278030188680057750277988949117188188007773008168443747056134898687465859111140001360779821657053289071585193742792484424314786230943133070628580949869929530828886470263388612563940998690283310622258093440518964948281315881688889416061076385599675505848748471063485560743289859135105152229935180549785804658781628987810029024639273569964298359291835522554212026150335054594470058015577130426567137158876997133660269698781575453319929152535150940851283402091609175321657651814272716608194503305038654492093573942387021161975932431138920448489181786493464209217345717487856267615751970875747049215700619138384359823071422499337413261858633258087500501477243447871275362415567154521664601964586313583423379374406955929542461742033554391026286500228474872719395989938010578100426090252251271865022201084130171237232833877834099941543771337433140456205605025766331574245243625719152844867799459280579759477147369186909132852992226467519616527045008010752266065757771372587149706944347143891282823079962322034531660086364378537900026610865472889091219536693222557553903824966071200627234502091225218966910747095374108857060827094444122290889125609536900158553113185963324877667102786916329481185744224015735570512783193797512840780525532270692725098744083829909904238608952118507649976270557321998242143601012018311204805534108719073774922163819718130737038587502961293026952213882743540288556276537944084953519870812809710207135385576927054795898813118237932315164911283728047762705376148281672971756288062237512469885660864468222260945834082669605969192593011851317929320631019960060313400984376479238785974339980626875855089422999845494924978450765684485865139392445634925431906504716437316171583597012799178431313625511397248503368013574729174089373647263566815400567230131839712012196491089749629796006050442809405424434318392492571327489156938814792270476204140385679380906703956202102560947073824227578029357473805087105008549609494234055869264866730679986053567129919416419750967208584305573910018788577656121457710060789301587769263413877772308717348117559816376501266330860476775689973409736110118982611695584950927186731419732096484695654515882368714859574202592906989525750796212286017758489196744720532598137744866414441153971160816804856631868945647477040856829931886150255128928512384619190881946315793871106138948345654316307599193916512892594405522649138691552164274352292469639780746915736726058539971482827440435349548146694015134138915321789800214289376362967234741573748672004874924500036453434216085905677518622833887384200376982036041950751770268319521707061971399691259046196667079598044121693819288694437359856573373861151988251047710372826247763517118569507931012755751377492686344506410820671135928826119947907827614925161646138334147023104437413570866855378530396963178375715072946712074831818919050405797549099438331302339337841047668038750936788274852690384504926831893920616954714209716154996275018900319789044193105588082103556460439921655341168908026824477915518443144269569438135243436718084031340898227716450465505416737440182494542534908181703856476792912436058273985138904159648436130663752442777972751949965341505603864777735365063787872182039478191648355606112587995937401903953155690977292746958404347816879467852554457870992387077576106074691046368479179222121410704841208196192149800770876891026699980318968355377174328819471565213973246746766206488692804797655164040890894267253084936788648658940794056984334658006844419961313132894621671711274873743087637870492049394905500358581296647240417943166397567759613945967396660264045971658317450282049754430478307204162750815323209085666943289026928827278135167131512035362137452295885124501446070809330887103066320897066706580866726183980529650671811352778365774462698945704023317840700707317044350179473876414441387302562793217328654119035296642024480644337633560514465801691155440535483554197968839023419941363539797845233612749557439885149290596723117628518672977539835307526939041314612372864666341705301335187405364335134748411551397072203556339027969420286199417108276347298132492428923422836215303753587473780276924061548262881253513026023337524402166323495921045163707285194162299697671458698888165233097210721922873359869768168011177153454302227413986520722314787562829669080249096725122961975966207215209530574658525945078487428808994041173783519818905658680060795469628155522788283572294496522035093438704893722318635488734535804851121699914500681284111532861961135660855703415315294524351104839418200397578548283222766301679346086795309100746294468281835144936402109955685239092607830861860804293421688734150408394830288765987444421897198830072464984847593627602577053500150670767887795052907436141183990147540479015012508786046003130533845485485631187353349592027686054970156557445921765377626103289548596127055091720725538857850647419693601773742966285180207853253963678041472868174552785157382702055771339988976350321610286595530577696289129647973491248351134749539258331901109449000983452765976729994984620708145543400089818670786500541720558265055687730088655491647463244572323804807943080066013571960051855285354373117947031650794302709718055122878249025455643857308857502971895142953572171626456933023284814654881448895008939433739090802544939273366446045649939791960889589946379253096116035197610895581812671374899055338818983103193543658467332785530459448951790517985264111382114536283495362469250828408834282806219863625131456578187911465350506630804000168609424918828051144310350915033053304114668577640606671522984232209980779089676568370444066479548650313307967063099621202597526983817944924805427867924716132545524407745669021724920624130936685535373962335758444575778523529420534995192231720486189515652084147242870064513777632030091844524920090773892898515777324246908910485121390124422281531181513261963475529493696771902977245164110994937392739082200141837724404155741468387462151233273506274195627821990658299732588036729255393439830842740861783198833991772779705669950165585155690442021425339208861710743990477504692022086645183902419522459553512963049168022656910713677833172926052704010235531459316178263849401449268066872959834915196598948662567535904348308307952030609417211308881414516217348285040201739752557145612414258295400671344126584494868577752427847690744648511085931598411388072958113932436445339341801907495329600848292635233134846646847657629484063518239825612657098499301331343199768720996897580679034881410810894515661155291611188857990292960845551504246480330519263584291000342320760955264043866367019880653017354221882190860972701345851029335951368929313525470028524497428956057810918507834900329116695056346919123537092398961152800278633648704465809164801215155019056930995916194273477720413558609013884186511498826616690508750610497171530568244216881141092989345814326193135812429479020650793125156022198723922778104129833084866923169220570634050972131827937767112371465219829131086536614005808883075733018523782661220068952209755252701234949334475887125432263602323103846752925660507908981580287446714706619163720023569430119880707786760229411698518946296316580765139347453650351477588682545398564242722209623670449854060906811221945323749510572950316181148763135237031195665673746828598598378814459583959311122645422542373923852781035606164403638712501164181713181655177466059721082473196950095331702357868060118221842343260228043089887555784446462659416667485148683832130153201853666290425042164662567289874278550771801940992427582814819779240158585619404774548663693312400012260773915627028245690893171458187262163203180174024790238811242671918184980054356831834581725882245128999880216673601530334813629765811548357258072362597579464402710358647196418991208745904907417156448946267307912530115866288933655755214314288472761963121870072477958225717858638398397395643738883089510022981012147239261269605436303138860124741221742062966551805401749380233737339101712571700482358726213485293773828101848653345881261440623767012078888058822174848319068151306597965670507198243619122225972706701341224070291159217825761288109634933512687138907756262020663964476851896792386315811742799879603184103372259739217806020335547848849627762322407953939381831485842832347066428660001594890163506634558242839197530974182429392830558800975488028073121792526284348151045415349976006697810118241991617151108392026507430037310701464881410767968202733370389166687485310850342929114584993669814665660602406947638904897260228721099660101735335361471054544529317627285701396856919444380331399314838223498052939571270175200323659231475629790166387173554551305866778850493811663513034551207010977792033906049035234244398810664026512902935388551908429667265330603628004151557709285776617634829985544509341982480627461769836200931349833825773725666680700743072594359714339179128089378477562704182822479306381943857630733555074976321949759972972969593296903094583179643319171708894616648137274673976490534160557939225567475981775559800812067608580767350863627442092068096792955452723197265055221686281269815894439322991657872411533785208445532398587213324077636347922036152977325087521050012997318686095037393202579218699691632682884562746443487552233111833225821910658465733354536392380459721333232645169221486990165471179071217216318251683513383957338170812936649497493607110996169969442878014175098075168269849275596248900654675374708636217466020168575118858490510416517923100145309416306219090226207311103842316731147773239091318879013595252454131832552722583490638625515874001145502397196125114263251749476972771598858234387171817348938670114864732989057880233809428309191779670856257489316375412222680305720531573747958624956396595026151149418751607324872245831636760808275208824661618403102018512006069528218575036848673466122660275190447067734413280546701926552994013948081275439599576147046203931509289353532986855285176073041203183638294267046813283959786877927409895636152825610701901441906408932275876659556491458144591703791641267241276106610291401055095148824064986975007026017692436314072291334811775256412721056305888035265606842809864703256418470369684199361215557150479632281487924344313288031172655412810116256104761470919242307041736304375635018135206056855378675883491363367302119894426467835604652591828532275852569768213542547525398885264892145204865243250366595797082119225774150950856457736205840213340094877524982587358450457724046790740838864621444058012595925115292842635761555528400471323061472288421596154205961530619476421875004628296033848872380180846447257137534942079900208970968592950015697798823612428830433312737948181203168340458887190932576166537410292148668830960568648663415737784001473308808517453772520072781613826232264218757973962845215457317526695951377348054546785229685185608050350527370902589543280324491037646699871647612895224345454040422792583187414078587025196927121310062673549920887038000851281628684925369957504593579517212893253548451070933167465077228434064438949443205694050797756211899911803694704613421479461269369117698703513722310565440354177265614145473712038878297435949176828068354602157561189125617189658318783838842408638494999808866829332262384920924969222287361559442942574684276434754650149983560818906128341088694661664898613692896593063331047018161075577641535735093164162414777829532990899865053449864294285856911283758691063945289613994824419633678465541278115092874443082374029969772817817445712544466530494869470153919291977965195670003491126491505699337877268785383953922569988661202112658769861929440735834190563370923628979740335121495035870833795568601518990502246886753279700783642373425436846465412136516487186397582949705225872835838647480685319419842596356872810556850798747716730018734085256625029785500291267658790911106538585417605121427220450859729897928883544695562595843602438231105688820932742484970696184754273426840460311619226935661711995081610686113036483023852244152220020618805450708612180779464089480212124446225364113417434565077616236544886291167113560586843348831671142143545159319672382112287376097874374195369866132524769098277687096515786512414304327873932648127617700223180010105867600604112710753679197472853513745624425026736550796208935779548153313027383242896184722291290915033782991075306451245205228239349153879554378719679213034910152825130589384029513961907601571784600375202706815655135589967135313158623434407878001460592392291741569451599974746183847265834461833987911104555858928327708884282425658888784867248823728226542659329628118603741337051933277830575702069059976908830533124526722998840081381006150222107021905638792059491347703124811843391555403247500019891818646228766026159896285748792846442765868945074653261294629194104010807573351153014882293404461910683539289569564707607429044435124914993526324501758813908488066386884305098380933771208544332908058717696520143047850195696904322052177587318220650253741652453440236108064510727540978442008796502452421370350343770162140299950513562970068351581939926458899978336809103157163322150938435284794785758507856252574603844908062670338061350084322218570926124264631245036882586710223764586188044659573833780925194469960169055386725875255574258280762133231300485604971411540321290859731173194018065353721343120454348480234293494306366710159531090783669098918447780089360650745573422312728270516739329695253754145106720335355110296446823483934529525570046186572667887311891961356773685832356312907466592351436777817193133035526545685796558945716893122685850236336760962137606852454170229802143165231366744289360382222022538150860286552225963917819993847227495351692155435734809261097429848528735856304139718345212684101319757879782664194050525175826480154949646931588049284177690188960144967145241693849515171411534161595932844269188030789734602415587965365442367149117418765099077480209592299214550454626900330371360866980264972462076136655437610339059021208830103545639051558066271837471806463718421002230150880518616418053506065520548385871721513907729492730131060947863312238415627754483110205217795942905590702259389906493299422530806086920294214922004730580823150732969372049043897180187462712346742751107528085297996562172169407027112748485075779578592205383279511401811124704965343554844637660234121187610466602354424628236245066671019992546924892295638484595956984067350235830219639567107472541186779538015499318140049119604907092682711199674082215126329855755881468291116662211774573393853099071782249560174948167745866704693998685485471210538988846719966390102069173888719507946219885299341139992282604282248286386079681241710044778783613152586807081175125613926908024711286029888757953421470640740393590350110943019112122281295156122777449171341376524155040464244833905018191604045578432096970809789104242106375961327128687947603996313327084525516967865133827558236924913020047728261936013497244044969636082415589364935478037890829419265047414242479496520178648385298068740092143673813754192437139939263195057536135217132276702108479184022291514195987920406670005116510282107590495811180391935370703879503609240401870067253956559397099114368947594588529593610369733771978791087949900476829038818556546476791837123607657256612806493079020537234901059632353770808406261284984595498446155066948166945470659559081170845410555829976651600034575946677768394016739970329956638313262802000468518965270309050225422032567051893988463922616726928157799186226149199967677066437202826608424674793573086358931301572683660350110917262009274275208758732576050132309906790618532045220793231283482197489022887655907459594929538825597965373618895222787397717880719761821482403262659257678100737611614413734440351619586325537328383610800144439370019247614956165823952949948811250182334895842805467618530741010891664947798399240495199436384961385140966649865079536466626249114500687953069027496104935120098059664166293719815825612626423943558788016578968210845099283124131818674482033182534380447856724366854223016456014492478658942594793483183176640540561962472906676597752269103927720338496789796213541494683209882396776850594518691375617770987260166723154170432675869365798604632576159019414068217974396585600814150410055564760920735903462419739120099009244818865352768367509342978330033768375761909386417661495374660776711715103891745742327925692468050512146357798278675484894194980897287263029885242399756128165774342127702718819173949349851779119415585120432003184999445824923053854882880332636319744369888703391296618845114099885393950545156194502725221254193134322703942778808500466996789406774129898878743996582148400685718223106496796657074068666383309599199602569392418543470880295282352555703296517426241336256771414147232875795412148921959742797545291724612769832123800786109873611687834099888865654047737544158049454331791273934559336419779395444859793061654829904896144053251843758786360010756842345741403334548314017535657546572253272991809428230382924823754844470146067326276419406627043044828988920443765130044839256230404068746867239658390594429848042633311526275134959835190282161366804112509073822023880995656358291824156071561169459796302833219102197889089242154069645272106981170294805419812408486690047418482057303939459691713165466005192267766756502352113988944661687369356069832590310858556887611261854112275748136720847240788738966831252441319595900822035786324843222971081137366990976269155686383872446849356057256110684050616814209477654497295272297861468783975693902837471203890441057005315363089792615119645643422554728375692412899513216044955210821242847872589934043178354885954959023594914185335434566919733568639927971949365606110877541516914713682020738045141415044730147005930257891964675206447643792473720720870287874395723270616680848577994810037411596393280573575267448832489647027197277313500676790463875296913496712379223200566041425007044252329113073954509256398623724183852721409046220159117247153564462866310706054140750663731192712482332177483285663523657225885533071832880939846053143981230813941196510243172509558963341096184789669575865449850954647392106145314499401986417874016519824597772604789934534424281467014467856796311449872512882654142584334759878547462283418013222393017735577832525636994880141948695634587596908366069374608838407140530538547937452850043791462395254604527824840223608910836076531088127147804489317056986095092572690693009189964626602474230211853859282534516287140657089996398943589548339124944893837727338026773200237811345560847778978134792329343085449180640256929137850759564918675925923571730799959178527112968693097249105655063772124427699794468414042205598070595181254193559736757537519498367085086975813258340562225437400585470746462897278877396493433679471290286996525451053965573966140490463218556252674871993777582791080591189640139248659200450033670645312589274378345451610141091000243699137940242246441890044641779000789388259491214183918129397105944968129677216070690576511403915448387179424494862574509389550484025941331063510176494611853458308997278398811633391612405681653962274335718134095745343920159978836882770353362848570065791751844570011858619046134794240394868241649187616514089569214322264568872491019767809638668514183670970921989746692992723064653420165174045562673782740054576307714412294603843048028816184463398903091263197453167242911622782801781131171243736937040115786523866879066290517546624090583533575968039893190509132460998334685198719131367587171957439066635647201072184528888054522814112204704289216388447758710784926314262320012820914116701967636402854377925092459737339979816953925606272084729450953605906299367250811944002028663332589564595289153386570534391057484943917733512310058447587855404927034090141559526990969850484402880852795973881456557678620565193416283531309550520948925874730854215913993950362681903974985263355708738384180565883403183969041833857700821172021319133804938461016665832487941237624493982214400985278319397972745913968979307855235541821418986425195996766893760971071325583769283419184396766763571100661419099882489552085234957454716163780183396951353770209677969225267629220215695298175907615214730281794287960108815140362581883782048999106440996077839353232034984598625117107548524984210208088429570719992593640389806004858886642161591089193937483733216953212962178128536938965406076362690798731164447418962671530785278391140190346350501039483879983891262112144910915629572826857370869846474492913971653228555787501305671271667003249615049642975985658368524768953104645770396531835748875525297518100525815855520507221139241042689053999373045243584520430002958217546573119019562615843762733016300897818041635626745222774082447181580769990861242600444860078744434377566349655929529285224488663290819125265791797056192286489550987607360936101743491214270839693823910158220587311305151656605352968470689857380769190605983266045824775202397766918529507191031873375114262210926722967485676971067571214793256089211896885284719622391088570103934829648069093107405277635390402356527121665784067619596230764321387656407229647393595695826997600496049954454833213580342429079414327469911955130818245500892654126814000449834289152927671333098944817384027907450324465049351254667502388027284627336434491195130280760109581028695131154488253174380768506845608167029656030367534856492483433652941592575486041711923503590667353809440216267376471165725849880342339860094938953667358332309628132147896887896980469459930293166095273733959412497130680455413406822603663845430846134740935943543338459123625103561710367172914820741660741373964346873786040763986707865054981431866575209616267939978539081553818496234278789263710023150108511976936459591480096741532989517457524195553783977513289960034882334446391323957343316509711766117199715859764672499432821439911433054148083736691822741863846137866341515465856307023573965491319782469217483884736464723288482997196079543116824529367601820244019032161534130317339297535355071053028858760492795877800806943125393094814601204129705063625691692862071911944917507393460028389069848633215122308268021672846302816430458567862717581452399539440101973773271203910180999744527483593577433096839796921932140851255487857587446867268668456168274624692262186165380511654743286403332140713291373059897004277947439360442536567946809655620752333948938009681562944238212667800624212430127561458533744107452609292535081343854831090769504785767995877813536685597283309799969381532800378196256844280677524792297970702116653714395421723078774938942005632282945502334914733499843077060372578226614014748237905860329678541199470284367093889993711356557034339926244840162554016799201336979717075860901138596626537155350166117685658605721507554990769424823844622961621781319077747154374598765415662759270262331571150523509452689676999603367055000193958173542789722106007642796630657205853996086534058210893047396608009781225729124798639297147250438220519694888294864077854599917918119282792566712679685530429750322238429198758009777200970823540617764152301059302983908521881980045938730814827854204172375982898087447715710856657826783565020560345911019201495170109468346368446533688176040267314382878184318018737292773380042027577657364331959992703992825816715921138874065735596624167538317773930899687458476851728121525398956419153219382947834896987568994007135335361128351709140787010374042150563122894767943550133519015063612561774810816689914934615393846155935196416534749240486491767691801487265416222913560924311151128328361622762622753169587612581801744832231286840631639693661448079921938413049103479377375307994760510483112822077489572548128420980980858764675286547169619213692329051050285725953112172174510463399190837534164303012309516087495251449252026766259386047465008620433172587744211282851156296191288000140129627931496520999247673408805900536716968031290738887835108770673387134371495216262569864556673029507547950744508237215844773420487091260231463166959417788933484629843931363518093526832278448624207879458366845990546330052885569924140554832259188825267923591806275170057624023084335127333360811089085061508528701473613625770037477564616967597632169819224499746275371461510772988623879737278157932131418492438271869143201658996234112462599132924198818567040432239417424054487946689895941021066441598904616005164363844303550389174756688327840600525286111808479330777271847255358864939412656806629302919972885393862660058367289608344487906872017282211961510300525065145785089061368633995485491039083972261105800098754878330656715414741348383260125344232918273485472999636370578334132518052408834651945633766717982019683884257209034063764754119244322116646956356817766845700499328865810601890413754178344243981849176799798343287639875918908901626270873465373141781172958720919450874561727507621105800901240845970158586133055588259106158311797497376732031820065202754641739661906923730179283200838627122953875527478415253474001891007795692010718417137476313831904081614070278866023736495639068348403915613320060180031820190250635504998357387001649572998947343815797780954149693450972089775498129858689009393787611060624983848911907345465129060047807185693392861161233049948967193687169963581326748546680573199381957944427922955890998399750747024527208612940296582481483136111203538800254408582026748028622995810263284227313154604787719045088438047898618816795001241446106711780062431521188008745865044862276251037687182874125974889053760891817572416319660677435141037310829860204261641694159607523459927137627535062099377157511411589673850120064206866443429162001260500772185182854410673042578063635026036573225221054086428193178970844534027656278634750817065518865677645606408660210241747099111979229171271701443842565247164358975277574964850124732607039011706839374582597894292661514903260909133422182730170560429957402191299302084237800281099739420442294449871976938460550354971500773956476179494637411290912301824326604846637634619163696419744256081948086004748191854917653727171983166083508556589781536994391824078968462963210516456946357411184695503805990454514211735201733127546576582678459505012560370028876927931253925037508540555483213330301938747681243334152185914903958101437535655772057207328147275615237680469299417445313702675888982873549686616104806858244652170275171583766935258409505468748533963164633317277685399797559347288077513188332870397804121041714306106725713436314155725221646543618948736664039313685294124725690602720615558110491964468679151777699860462658188213094207904146570721071812462031926498380059336551828437850336114278748260083204610412870436876743436036132852812211474257291912992854083745349391476706877673756593744722433895821386143044362906133234384324598195740258722724209523216663395814186252753997203525041938718982844215804899294336969638128873367433519767406867098583016440854722850166598531320961201050706148053646909142564189360424394836437161169396029437922233004317787096142246187582805613242906165047481088237250416013242735536625129660910585522316944445057159128225495233432442506587865049557038445057251447251844552753023205011485089759353478343276840988452108184317097000275037381223720840952344247344826368322764800345613987275181935483877753480828799838538152091176956474150186121425575216589976928328192671259002136112963835817283417358445342703322224207294755530004348781201965337059446329362397255959403286436429892961769843045829077821744311655891922728483568169212806164260986570866079161109210514166492563255113209213957242863273170291491242332904850872646789703719589886687284431700585834856657085169672089588745029050539962020373877814632680814592954556581956054145754969099509484102237335904847961474340723515745828296053676360823928689232702395448850950406231311429707998231599478584204157047201404953362736034010192376520118437138474940355115154781450374920065022337917073523981044284245311212013813122272699876520976919368514096216919500066615834726433753255041123258661252763618572560263893698489294318220704815639112561848465156973903328084959358518355240905541091617008705352718315229463455680533280463650057516417758534216639431537564340127681287589018342144757267612095404646812140671828767867865459288104646057290060249175265049506133543249986795021536764083683440095883747131390921951267752881276035283527351208684301951087304969780504562115392199319740730974249144268315784604825553455330781390093922291823529507338113081854903612217325596933943032818750333380877902530713291444300534214204039562117983098865116674865490409403022324798757994576822838556374569746960216204915966030226890211477801098022511840976761860204317815521286157965255168973566081383451997042972787220709856822876589390171898620410487059332739980163208248887817552869679561572673696550117783901614630310323602842774092095731219745770223936410849258200409440366999162074693341373931132195036103613362711173632562364000259947659198033799010648399841328041325067634727399116694021265708651087106341176113206948077003160856511278232274186412041571419610110165705600501393075500367443339252261667874703548481138610960047394431088369594558380512613614190679393379994273980934668764526413985578165158805856705731029917423958690938317064748208267499414309162019756726785065366486275533850757700160642009957134875869636598883172894757189212763733107215289517543935164345164413580936752731626554648231510239907092482217208153678805700480498456105865847508603173525612676869177149589080838205345946177276848630523259378804486909150329804320954776370568142440702294073084245389249997515258455549388750617748223731217034611720702851624238671744916981759286477775220897729358445631466043427302071601687064530698921792082234929203186077798607746818723129682814253639431445539699895262417427217031304038218298074379067267802278737994617898091861113710086965113473014677815825516428781974587869772536871709554705276525607033713913267300025446488083034851933740329596153936004532724279105864618199780356103875732873505726481273211370796730114102515161445105624502652088120006895219923083947277298544813354901122530401212686117445366685951131760430731657402721817893539890347040166196748612473227940250190858254821639865904724876501545443849754645484960896561366744153275471934649170173854437740080594222500651294219180555879014316629267568603631702820953514425730962979046854735841468918433512117187203711098512144594820327645153440442873498871626023774714898326649461067062544588822098401605691383786679874576250608691035031625959810896686683653978550596860150949728853886005961961332688027791473802598893623319642043754240624074168564357157880185624127636256077350375028101759987454698462492336302103451463698420329638314447968081600962230665317067149920675092158347110689984971580953519407606629759757709930077083299573535322416240111340113531753781801631374052368336226450486124372391763900166436642225949758834370010362370044162397411891768360274947755747484591805298796879987409883289513973602683556371565908552836409313870339990523457036730985335817822121597341620897583492804244142013468567964535738778584752025302778361507513659296560582126773571872089181117110547873121848837444632338976564065866523866592664122971875285522950696972862989233442823758386868531771052835431189855599321064663651302398857096674490114242834249827169958579637556029510995461404535328619468501309365263997822595787593987897236720994967370604997634647125323243631035137657057615432734963873482428556917482291924952286319706872717935776213546816806961326583736798493621495704294124395532293848381199324901175818647159355624766320556115162460579822671661536092641626759419060892259169050589688708372010235329396248678964802158100474070383378472902447265636396500404023032628903836177617077266103070648699249532306889071633576905440935960620129419798295470399545002062283437886051628662022130719696489536058193277300247730001532503992287957892277592202634857908186775891613423894625624037823646974594124918215991669800128738130526713150176204157500057557748658529485722191484005130642868746482385621412856362233695778582916580031819685257777082940453822967941471500330839711505908308081673087151360421173089577481867262773524958010289195463897689386221332459854003129361990942381550840018970500289776568695745921049283141826577856602242488989954604380225638687049342730021922971168832531498057960798395060910826908229755815233079426513107085715181478188255310998441220915687640206296977429153922188225310988438309708082996463894487578439826088162883085257657635576227355813736928186967019657319593498683172550832388750030126184870380235449969527450007306274758381383345535351972842646381736071940020044397566701239806113360139061402228178019804141114408295117153882348496859646264297089884943407695272186170724234742514818872125843230666706658605378374426541905808352724544499898898120406083164992781379734451513569559536082235560682388297096787316168096750997205822888415588817317101332233812286747814490770887423658375830931016979266481686076183952866846787006286088305573292865209501097480969503032808976098469806115386195828805704200760689748587714760355088175215902856903913363289577335198899998410752391983003578246236686073653592316316900479505326477619750080866795064566750415076724097976060068043228465436514982353750398036370469614302062909823677552268175950626070701700815310477691301317002385502424827559265970540947781019421756411451399717138285811065228949377010786387018055478362943574442673939648631520453372161812313792779763718960930532165801494266469030547460549172676766657558881524762111320915681114008831923853130092754195039644854665723267976836627684726306619738769980505318500003524560723141045446525258665864681103352839990618684098033836597202246126600325557518365134155873638300062598373047532697880523531230073007627923029851448157845600487305550387357261491200652320775686923329207371993755924743803793488051166062876849498186823572075454658953308691527315048105707945061902154550990233068374433367438887346200541771372681058724519167020853200743987914914218414664758459045196837985899388127683272030663286596152937246114421121734654658009819076432786111590683050065744445028563400868346453474927594892411873937661006502987950699504449408355195369523554728248637947611093215331906395030960681927029331055480386170547663871474350732798752530269283670346234314731436926138248152441802111748107829049458826200587514767241012306908979078228658168235829545483555234175882572710341937972611647627242152523844204388937915597801475173375919367524376287641739678074478760329295988757560277236966782817267608393101216242995050569213128266589997135749986122645235698424142663178003158434217230133840309024818242542869388852601574791866506186926536869352274108034245845093594491218740371951323757469421799826124785188196042020996454173522939855684837135619122914807388171205977299923315978163623189125014358181680337646589161299289796873191283140655297277775259477702912703485723670568212714819155329379449583600902056663644418991364669555664135173701220660879511493694636705018329291663764416098242590092086206166732658600884876591747154767585395956380596057996542405315650840746459398381672773991379371648706982031718205996625497992259645126295538968003276428794301930621875867003795482666954863416929849691845089206918783809130510124482105433736296240553315124289752903466565487238429735025998071761045241421171845709170465527703547130183558657606398295031240565407191174273900013213487034090156451324312424652508705379439099950218094884462408695053812818738773621852933506294104861001535205461512947468202510051037428486226426181319725569374350269401690938738335442986153659047377704995674639519559819258285942562191129699593916517507109878760548259189847760210796079338398195996560206269097060777630694715907158024933373198555053717869229515384837556999265629751937664535502997122153330176381408435093706119827020281180176509380527166714934612277021698864502087221436550583919644115529554573110318413302608979868197836030691152827925125556574197113620582182747766598962899134559148730863309577238470448387465233643563649879728737275468151748371793339072301087243112344422609654243832572934053051076926045918305280054845263790091111517445233577354873751843804956214706518217426519867350348049338260786259455734641054211953595194233829250241456932633313274347568375175320292954472559241588872920524711680775870926957704941853980350472642276999231241084494815324125528198232258124831193378462563835015957905565101418049770633464750110359031336696821743796765529918436720931700788605444140795343541122478002176662707366662293168358864086214356532478712265812915122334209682559284497489261881131007398205135627416855687711800177260264583876732402433929738192530459883718090119969019876050764175009584426259112854146036452794899323774656334614258281340501670352681248219154833372366695913073736480171041268060856375372143815952455842672889688880696870826270832922411101753920443439684620052422125820461165055517905607091206649602256927260337513681058536113612467940234904810956207447946029511024265094749960933732419330285073817639557086079911695289109049825976316839040902805841222589813582765847810404156131800405006914722055368269683873532556181123900657277147596378441907243430620667020436012527651025501188209182528433350268050627068728429580232064973892117019136681773645945927439865106421731088281795878946571417586643552459914915794944393035754858404815414487773672586436329125540999657893722910458203797698027938057734893889327467373945537066126147652755273808912431341579251996012184919116014313976859431728444619783387980028463532863366003404569972445932926044667959239582370849235836333673776901549710183095926657659448072459304065885613871175568442566789542137686760522090911165633926938694664127064674287332242629538991952303898320629062008784050239369276066690825121051167773314952571025181589573411601328410864164329399767352426504942161001328494258810910011555007217299407110406541821358386940089572023553417895414154467989429394284136772857480613171605621773023407362087275426289204026523559668694646250757481129683406161811981918503005742289382661233599879743842829894448879328412742289997430088772940085554038485082966634742437106835561204377442505602469723555987740893786531425267534700296751711367719395036830599981159393629192589619861454256633917946880040437594433514460380401739250529289720303983897347212429015437987779763816331395005073039028467679555129639786416480608975035679583179146937943913778314578710684766196802007172113496711178180256449626223461558740837035088900678416655470839039097442950313144069351637556632760687237281130933104056642579288586602447662111300745036218360168134433349022714109629906029456009012599618575674724200469906335997143179252780215261418511647631008610354362832492982090228123072407024690430149920559948671140507938437198268046845181445157385640167214607735385815762637720425383382841778999297396993553419903349616652025423651950061160081215171668995998731929255596972640110447779159964105716430587261163837115210630806132772929107577032333455712192714913246508067173255680670752518053339461572663079965989520352976456997261701968381094377518432026249050612922455129290183976787909102038643432539899773577236156079024123703563355767591833168240841711460451289709619859293690385176001880532418169938308711097316803223465757322311367205275184283871020701539543270776135036341359418294042193033612414968007767748786186500924576854362751963808682217939649120834311168200457903310511717994679936327517873504932150101522186297531668662440910281649283699889836268456096379434379428642682929715016047771117148506888261959681759597045987844944532576515890776511863603959425184000005850598817099886956045967941527779211858389249353447867449230708392272235143071753835430097968161295757975566250436703447369988609205526505754376135268737335160725743516307853330881477602354913072746031829512438854002305459545933965534761681835115840971431262952155848854151110277723540165865657121747136502496753770310212776381495360982727360954509178480367001254538822110711194428387972883138359896196138287715397531633934885737400175994431908463613288514514469420509648732836831684463749922973706629581214988414423123193145479635176890044949127713936349049280276017039834670819001798219010915103859738448236781612356307938241290691236345729381963286111770675195571513487021218906231153565843061199916471036332010591358167946097968456230129036404712593631605458512320070093622515266111855820820123120210785423062470294820852020318326727211445150815276727448396267496721741092701960985799219936289530578195837740276247424660770045773684416273984664687895516450222878451909499751665389672702449080691768399184142515324887680948752433123040238931776847567279312057216871636066017176518997391034134292314259868668047550290796663081019887207038619968991524345794085568071787618162060514379191973835569593120834603626755570390840592552970362464354266610804158925419557442316349508849283963913597159881217339904279984207190041412550240191448069019461542126774497378136679851228582483612741659797502731726858543334844677787997267158053464645387679905108207696114983340806445848934591311617073544252857967697286732105975894506890054116362016442099615598444355169912132382758285553178794000798419984419678388504266903239986179393927263717991978852340913735514116516111202336034335935713530447025321755577079547385719569742220319500817246353091495282958970798172615244739457309491723449971101999655378366932948331765270122178122567849478897127246632741443688244411628330676611438155945867202351072271741258777867348148234789805810300311602500364687412239888037856656265273620291194791031359071388650433998894285760877462305549837716428016300714997338038200208210574453637268399050455811972247205583989637113170948642240753347707384137149080265281942542424896977693305929478622210397532121629334459057335816496466746166704564826110301367673492370648469431600003326935160656179640613315332085406670740860109299884740094627210584376596009402152375391150238220711668349325714779879629973640476153920788541696194851517738575853487648389342657310812092393729616037988361093929669367857545319195396090043772810715253332633699756207314787077247130723083047782640634641222409663757257280610256999683359684228465665333179117448739456502570692346429280930749242714485091977022984964997377454116351624314980788394488296086393747634014825866969947068993758855710585410732183471392430459045490911808748979196175061988869943601606862082637838093775408819779333713217606778303854459881992577546777289429517420953986329889840892839597273751712890914733371149253571514587743315784350296637175052289143245328065347971000580081926636482916241295779939701642216697096692087727578722071821764829899574620415421936677079696467301708260500879224575586965184294557932269644378091225456266450665433338426252990944915334432825635139264253439341110803284999464012162341818546177552384747573080965412125028185146402031217638523828278521632122246329537369682781975970442110811171719468713094899581374313854111696178321469153102535515383490320529286398558118025362907362450608781631031089679104170700541721590906567117257792020685171797114379495106933009159918872950045019225201298186280161560302443723626062044201767971263876466749770170801831056299989250470714022597551456546779121609496781858626975355533366353617424742349774711689852304945285444577774991850894538142597216080888273742075397390653956687037783891519951971803202007761009983598518601067890648215420254464127199732271121650367575031465455143106219834978986154869747358716267809273123681584547450935946763852525283955321979145564632307993203523542050449642548950799445023793358900381400443199350592399250218966531719344894416869480815037702834411681514765159957003698366479837195458959968676947429639525900783344670614376311060544425621620482767474146565881274549800327801011566078226366637980865316559206807893342861481967574548262212061869758473164040724807689364562301936495491373597272257916500790669133003048841788572499993275841499531281901751443534897115739660563745571493032799100929213955444950656489834958458656909896545660975429093269358821232499127104776023345511946570584437970888666647431079209324270307719529024310897423986376039615351582927793046686809806431307419569644992311569165211110327096303283101562050353322463178516353362848672055092348618229393089986575712703961374284796260346316867073946356860548168310925161686154787148450041483659778369828857925970743196687919926494029388922313904226063076818033780256585792549461025048183168524632240690789441102053995890137634702648509795171640066119818725638457340506215113603403129515615494553451345528015271459205288989075664911911391003931187529938776075858877022217907138881778673881437478879267095113105506436227815971089442085375684231361139316343074925676776818203033199281977333343537589412864687833093324250107926729850187215435447673297655925357149587634643100380696071976036473120688581567315660214115768645400844258518076093227456692485537821998487312999885830590874325250698888700289421780539799738641248239432490182081948862674278063684912153856106795469359185885265996705106017587292817228318257484017812531203401777610601845981939040329144823038513918145132335315149819161674498973319258788351127071943247753489897539315473180685867302577294615564108314172246627179093165326699228780645003922103044510394624554701702223116548671054965001983260176184415424328803354877780430234046029679733498758114164875451195868484942686963498039724383108682430196187702974553697074459410280893124059608737153887320197286087097964089303455737383846674852223614566992909572497602091743297374513818528206110839726320812715532775470512389204855915291441169947082463762071346384471888127367887611311649078831342336279498908392528480016629002196579235898796998962020095301590364646264357781813402106707474609751993545171024961004744293204546004030564620505487559262580291230139519689839205356678646199049672890015046004161707133543247157905162228368575648711916258243817695527978243425465894214504076538983916723571170841127659638350393583908621017885805688494655591749292207259278563860648543589340285590331878257726440212718358823671607540799016625704637002535082128284272997062868884254212623625178715287237077913755310575821630391687084303214535539278881647490821696944978401052283118790612924862870788414296864930974717036824658669610145881875670575576502601592291183432249541963262398757490838676678065239669896030573301758028303764276745847633983072323624273668504974918521911567478565282045619562009887756482380700111435980377956346215097468883164346429777888436208075476522224710610418342150761559704388268958589727774033152058433728239935175109615022134716457451574736240506447352683765688164545805554124534575339300074234788191822960535799227083566450651089316445927659556546983581551346063553389475859200082845712223289126585658896540837421759478168684259514232788671097291508200991643854143956734740599106732837312128920753298023141439302767834664542100245929422789649688775897650174263134646370987953872315673161716256569886105510814056970984699775136167628716002776150849019299293942396539870860659929917022278810907626547640969735259215399098767511241697158606385438414198536663111704462713776987139075633714351497631611412009497447761955668721975811939416602809806929119676459966151227348411283474921163733242422621299953743318074166080638822080377167855253546988252625507393500007022392837728941493774142602593665755836273848883861949861748344104925070608017590869467773573248603554522684621723132734763115593502990063401702939991784807770270197231391395095971081569203561157365379976837796484967482218793292162016211260050433461431556058194731424475474720321232203930081768666508160519903698877225286310943350716351948796920070914425173259928003194174480427463416665305327756557903476236609849941719938013651208638543669963761705415120903643558327527776639105024913519523485805977332286458373759730986692097221396340983143136655854224440232306026699485022440608996680874218058402539454320008447462416465241502980212194423050207502948599119062734385142907909192317947049277046394665284044401555257439366578668345154682947161456409331314941188962044358790726189193443481739214981889750110314925617448966836061114570737466091264512456026591356943002843068920509479685265901949343907014283500006188270152535622033946675659015888599140678741978841705077172004982810408341349543540206397728306871859435688018697442090302242887325874498957110794693653590087351013201914051987056846779653575966967781417078311111481915263203591436571410725378526877005786571936967016853523493281368254024361794429586603319706695550500115525872892595251931046272307435538072766035722586963937884752012040890090193710115457824055007686434012847029451945107069177722931613182553082916975223442204927620087313716360670686387446794917978922371207772889510575209054265817071984601662016516666158864737184992122516307130959367294783772276040182802843456491442666377999130125664626880824740711236069735773067664845338620766828910087876131869453599013645150728791064618102807675698666938866082356787091931238261143754082028486039448141137503141480690266554341525576644925503986149926995534250568276394387065185641883584106193957513190994066955804309131255434134937513791437966326291643105072772176195579915239865121965155358282668078637639912827350578306087595653933626846901541168436088272446078050690208230192399021883674622719434359427533559523586515529018441532126078599541961844045445419316594470444055157073333062791562819379188988962553697000512786025081844567849585118812765793063265762121785839575478126573956170176379668597782255474856870813204059226592223772058044798931714352088732128410077209495732466372345751387489919098893289220217405007453190473499593748021478136924186715091464377873100205742914721729414608210431366287430453990550271567111844362533740751404749986881171449298521381459822020661048282459638979522764505444753389808191394343356868327204556268112712446035460666076510385872966515839711685440503526350545186682184526226369244718962844347715600983557755322620423211378949340370965681540423012005353956057527936238992252225442055413471632890720541991886381679838725358236059413417966338267050658681549882320000952014656515977093392104442732592344714296183034407390800078767851881895998941704226251038512048410989636838687640171530724652645860430424632285112027320171710126189592248379955501003908783015852463497991436920750633607973568184386707808114464401075949311687943511020072443328344030522635580371277731727074675783457742384196427231905072767525451699499516845663685483410540099546009233691118332007396374084239077794543581265413999024491226136775939481785558662969787857468140841595035201772415075071231037284288434976277785153501300378776728977788947157430659893433589272535803730323863217576631085839002810958248746901612754819600498737067846317061829750551526585919692758443937959477077989741232595487463582799259443373862856255280886618583180417357480182187187803783970004857127725990290451607712338045130173799730783464439523846093776282090542067426239692184220503987260422449837812995310026196543191134329647220162325385308248779455258598074822025778782492201372260293252450691468080348986111639237027909661472267582218383974774386237346945928332280378221057221399146861330466853263070257973599443675269764526406220916701069031309006308875207468047388330648674438195957669361507076532007406630699329746186458045899301879555851247287983433830570812915139973109064016431778508535410471531321175305403368927529557742055965864002688505723222548472443825221489586268518405119061751876268900192280153596586863219486974562231438252484816462456801896709968414422470194182962048722721174102548969244050676179442579112744628111422087963644482643731103101804113965782496478353204174521416193988888152003064800007664940845018928046684827726728960687899912756582653926469272143871119883110155951358368916611478262836905506943959482860985846787288552982132977684333547863702169583469608350827811536695196468558740539815260093993346520349533192938628019999694514361828443667589341560938308455281102013169496416615260981871628364218504265802563272045471765943316223129099197787102597478603361621738976557443745404614497793491204982506343634896469089661389614358796755743984661905353689107300693431413795203248119011440324482411659703116312978482253432976668163499476705476894273842841624931773929081160481087413959115384190489406208376098051402899841873082871959885635583860767002996239583023538826963447938639180978315932222598406384540432545476698596471143292306449905536406518039315671852984363105007889740136094235813495785644616024525137301928517140148782545531063961893257375071559263614659933088701803236693645940353356639507077296751148947894588353101838253590312896254461287822846382625428414549175739462113604174830030515405322818529380596341773387394724316924922961622633352636145757127659281526744575332759952783787358253977607295556295851636673951641039574970720126753118241579704284327110606698536035948678625672678747169976656490990338476181064726613421041116472981433062492542339016492581905240940424514722496376343749182285588318129782546055341438074076303161374490279737301562832589826363928595688252554894073186133829374306803697407447117198763183772059671906500746480062123147819390510082208080113459980175928631160209463764504675165791228449311688686922570313297081897151292031518800129918264936440070647931821408116972781081171731648694939274099511548057890619407385163260882460466151740735220856033768031162070501906581224107039771732420958925691024253866335451689628788581628808226998194265343140643975132807674135573368069751057096350727781953277305270904529792918488808484431591257749479868989838992411466267911656551241505050978910873907481023426546783187968930930681493674809761583088514931516939036753409334866386303095060842181977724133225469858923353056124690454419088582990656152748795461348986885682516956463365733554952515189162916539174468436026409138137608597083614957468593655827652966402691353988328362600344292624867531895033408013297725613841010011662384577014453945490511309167639785164364989934911081103595444306436939997561878362562313519317480771042455804743646298941455159934334659221865298470957357895925581734822113412488565146377543233609614173260031680734893345158165379123455976887147336649898937596040263160241792775597409642650040634713827997536515951667934618314690210784177168485685158625568881350618267704392970547163941747332257946038850521794493353619096882072214840164768825106126771328480160180375532057446318467407830046690408121989889957611669886975976746127393111504908601620527940175228644385995772104327763231790655788022806019412745333132032432743430198977436170466780721883216523379713977412653414008060586456203314485357805765397317060236597155898696281346293807749389831647886546564197923541593529672885478822050630457888986009969309898681537432601935806733525378785372413367788548500633851459043697132221667797454436735584497125600887213681618952323723524883954969673733021786281980669058614256224402483102395173780149818488498185326364904426613274464097105564685155264184232295679604143436141329346071164456904184990305037978813008865956819584220995080025218951156934164662149732003007387217023603508861194071076607949763063493464685261112966066592190364086284767342669173654144088288794330842287898495377816722857678911364517702391571840732597159191014495111599054134900370519272700371680192398265756437277605023120813527097393189811357831300921952142658173203513469394547303581101489047229957269209189022049264186896030977333828704664864077465831435816390534931041070933663003495343447078398502297291386943841249873311187607007744967516409613271794899879099031609687335854148079268580013237267412124598846671754132488838611573943743069167032072391018963830069881410201018744556494097586641434598626610124244516080120821656053774246173882836477265549762242835387224363604934259492087907613591963894632158729749046208971594149493216373088010843310772585514930922985273511289108224607121131658908662910669339306041864805373874818116037638160296529158917333324084525596022319274660396199141086360465634261232083803759473452197187541451730420228178298138721883441945027531716122718804449284823806840735861532844755168263042947653381617033156198037503448902686233484618587881790706651443262400531757700256383582333618509680536815678305633169306703058026779519296623304464744297456647887866181952594380595140479735502033630094796777648873819314806518384654754354713497889314331521500499400983526115170909706622980629916206284689214848732470572969145027623467080929764655041961664420205483221908033320584929306153810122577678573421944207942577100260829340335508336823973121909735122448898602316085788378642780095376751819899765230061431139030127518827499394355705183180358771565256969543645784497389918539380294454605852692184539491291020998640374980884199108124826614221927730201729822420026507242551876544784175640380037520429851352661375958688379593540659968718582251581805372947285044680302257796845447634107397569242359031254412096018791663723863050067025531307482430001271693935987799663254850459352714287082419697204205625232765644683530138026659045282869274555311162080986410714676001444129562897593415737774784204099080964395009940984754266814953071210393627927039059179780871659586270826932011901067380443510372360833206346086197921988570679879659894649039740856893345182470087297560712342007633834896607560679783014900972995119133711023132963928898449528651424865605178254890679173245750823236511242061546378674866531373375378765733371925292134060402088130057223410201075815792770691115712325668461889578915110928502575574083433869905185508340818470023921171885361934935584831551303937556237650334635151880664619814407983922909848577610894695320800514984212357700775704719881497995863402797700747481745152058462531294402612041699165448769818634045271246576193620376406255401536217444235988543903145076983972821897946608401507601588868044125028513903243782655894478576047075348857224036662842739943878188164985604820289170295727289427896408993549937540437096161048526005761847498861270536494609639924488276049721622993905894251789223088838049253716121826045469199759017699100013854960035318442299172911362945289622276147987965192981917081179731444883682816135779055344927891071316863621356563636918376181594290992107739402609806983870068450242516894992740185909768428002461709726706025527989115020642084750573714708454223216588443265388035741446223389935045734332065690745891657581073770116072021309742636888945860344066824988693974394666029466373359940134534801353168843122362418618185335827388924179548451603823124475616395841939479439588722601995598422109716929896471205092612324779138877871880795960782826235138303559790483493296053252555560201095531324559918773249428470520295504838143243113936248068735974613900966319524324509243890268095118172651233266846858138221803852312506815743909590787558581635108753605588015826707295919759141297618732104377464605866517861894112454787987907253034232567736020183203354640720096619206313150237019152637208179010230744720375261665915366729230303758707481928766982815459440328625093297177714840830244979982571399043923286105844743879924499737213646621099427628722853957833892942465448044215308742103401277255403270821828432099123426820478505648216527341768453912328834373663048150938551718609018613898839019310210311629102033025677636660203428133010128714850001050299506052040384273573633407009860658832239693399176825664224382047360594682008461966492824336829998069431005990640367046786578348826592782303774331446143535273560451884895677971081560176140116757274451041245210066353932058206796836114281337887018227036921092889799956283487498308538186979302285535039799372209620061094145421779701914151137031739409421760585435272549443821553210784958170973373899698346054853424404805282204825272661839189415388079145899216323668069838446382826846432721491241103423348841204575334794302659983344271786071371207405462234687317294549141490101727844050854946031021221714720858344002201485179814643717696253602943153150739008335473304140408410263632817390678451474873166467976973018806705674396564436322248680783523914254368867725672185896144522126903604360049555768462692782101962369988101699730831291386715529783262915409647893717561200098117216794101800344840384096244827108571974528576602355168311876144167079755559625514607983779811706840228055484698331039188776046721586557624259332028192865993568213693687780534521331191904362832489421373986620286165936336711726713195773591274468848303101953586515134601815963548335758251130141821966223641049661113264364861363744550313109917797587303896611169250233181718627361681009329037169556905277760911370853091146745177849985248260894520711144255486471220047214928458178466999212500470802378597252315458512564520586970885184168853209386286904451593905676686132694494192686174201362426743096918932343305022275227965327436310489980803645288782386691057037100040095482331505447101995773600764134100779948780669185900118428788960846363927883237489496540065231398866470245458059795690752716454590270626893829019108883207125842318601129465216073971384995488802026795958697612342864645844744267748076289520022521382389270618751906836292725937234823463122350582454270824924328051606470419382975701188420988000135978645942490049042270889499684951247752194383198484174696551674623423365656352994002408525862595170862193644980737879998358957147033087570393910637707015264480546723476706564783425771527471106627789689779824829109172219392382414402721072614380100565924628426505268261478852302132016233678144676360122997368418929082212494954818702197642489530877137224455388794895547445308771809152030761894156237749861543916029971936625742008260804586010356420977647028068407517550749301908040317001373795875580940213035506473702406102882522881215687964507891182329899454837643287260392390205635294935174762658331635578053486089203093173630861358879901691143390864474227627227342147539318080592079159023652768461086348156052807527173245006021078536726678993938524354855343958794953678236120309399988158799771107983909695301001795745889955635636457233694003814845924585809031948238082495890043362822744306500467194971071989772921787492050472743361152604661794094914182969257939877871805693871822390389614878956683538350407387188564541236976797814778979088710426256309823308368420645579247142951270284155299538599225303297875672803014356277352167111712918678418153922201903091250351447213394408626966429986918706719255966562307809715791778875023083379946775736352741550351893080176272346571642829227831643958606480622984918499010085721645258881993453227557231800204321513659910280977934143977799839806452160954780458234399153407065658658308412712612295683137167136169011474296184930569951623680859262736392250000306619860438356266127245060557095244518788030331682372619247090742620218127354047160530665824962525054010752974421536424726895778255444995969113480526837034365084816662923027288571056351612924028043429067398895837935104650190659352070382392336993033001596879195121581243263650300743741641828810305310121831684685863555406105829293692812578590045766835959546648496794576859307836881603618104888896373703584655007642498599982494526056786974033905243206962876390047089177019430567585696411068927819676409655273318149228033193677580242881019420680366186384882353856724202463779276911206170572890340110080298709298234966392824810098288759285011576295344896017649634107102281825821831625672190247872425926436784259871671969691471079835283520807926521566640972721887483965983530069639672792060936168850686607854215516338865039409854259677453137606360703805868781875365526489906937059711475087625340294589483953225710016798971901496390438887830406708983813058882362628880042292772852126781417645804493371073413343431731978164375857595462274994429740375044951441900184074978361376342489637030284393646634349181293822871012724807599613365761263566349679121426914180255033008530726102804875909876513224627324622709260398381960680414310295325407475819046097539346875884441913494717953718102054109344896903436293539110910535370339489842622416276313897531034583756043869615271643698005457572396783073102300131005455882859601832185874272038143619593272924921141874582528614279259509187984041689207630013527670142644676928289061634688816979163572634715801835952772578474997266538138238616033185957493011701893291650444082123820961259531835561896343844966021848872118643393797057642252910206343704297438691148771912632139263647496516325916553578870432136875743936554606611507370578620443333006437032137114710703902035768861676163027247178360150012238507025511681315395357595555354852376546818158515004659702531080404979722107052551035192218132688111575387457947590027110682545534930339439588507860301543585631838744689729093912295197776847833075083602846084831676571344358850509001522483288738987773668213565896458245592527077556515378253088846335646135537610774731160136332807811661990361580659026344486212711184923570295743276387306279514313786457420492134952733093685387349035030686957566540246279135354095390168038606468666632258290206542257295792901739358087329713221604047339677494182209572939230821047793252509538904665504146218963333557630350780431283454901872988279681151006920484268246065961594675757518903260813730335968592862188485816315536900486442812551762901100619671204925962296580630205808991670988358759929098644510481347226183785666266611288453558554714284742725819933965770197779982148729800227189668550538358559176543465680138702523602399981255999979978132491446808452183988372022957313291846182829333730204769613775567970825961893749622468140300306340237610748297598813175604092843126902413096985640739086529439084543781541400163215580480919480094045923427444546927661305956986709242092452546496828101637710112652652482828338488807005834248549921428755513485155985714988867525802319043204382576682203509622242029241901670508557668098091647828787432950683348971065972447675428451950669456924191769014549389678502249279526420808920029628060267339817918595645907750911191037015967596435002373205659374316562387909255317295308961835864584976102144349591523788030245411382624130528966199717605963699019298461472371969803109528030409961657632654564981958708867385391041044760938855511506869719949875844995036507157412571872358230611530266709238886703734427877030702406907746142911507775579103229306579882989153135624098296043343599069944063049446169301860727954995456926683114167712119445031395794866241530492117458594986290197269272052721824235492608517448601901942429921166851925766752890044160367814522341561415574228107372883509650880420969692505994045644862477002629454920521533811232307694314428244840120705503045429034803033021435930508453430021021845640351553066719236003588132271667362365572438390346070094512036989987480831816252785331588558853397724283715970970348253824220297051420322407620398954666246606930917698088462954002968175409085030122952300649512092077374364076505666539356996939361050337411108928063501365529876818127224819805986886228413324927746521631528143809005328699855907602391639069328956253382489055928036764000171879068258256691874321643295501911617799120361657806119618857282496878600258618440087326364019173034644435538758958043030064946983795929645178084649263379704869120016579446144889207731786731843019444085727823897131804229997645230160675980901627487556994755223960970690095545333664956007496765499041621643073005547973754150466691499692542118469691501256967551736590329153314718350442581806427098332985346184640621886337331435023257715939878564752006425108392300064652723247218514829540013528935308777645102576508044353016979205733433737997698368056447543992142278219364948570593401235171930290581727669278780116206380637479094410871180361909978893867940570345623872387749116535022469680428605261063331344373237997769879611049980357622661145757728322642530061776602812888630853678591874386685897250980294956955277310303842811847378134649945108669307542465919177310164352011995310719104194415870601162412721071702998721541178346498059869603567659497299742279306437964035633546970937480047478659989008945390850299257303816489650284750427905494746428602204011771019039875051770594120681337830241131507229521816592076334408486646525086593387392518589397281319370740422708356461414864389918929129046341745988044503238251320178342683810013776759197022367057625315789124780370875186993251399495759902059453235809126894370096451575479161868900092371112960576966716440248352997257101874906377077801595095281152373084834853648128413057123045897644129637514579815878954808881591775979607283374978640702568478240130081666141800121926450270794975189157455369796382220216734032028430613101144530729918096816886975229912952214401860999539691508894282561796975422703006637223586535106484304275960774640294445381838129342361303838967460645470939629868404260705813273693175607182021338791195695712692649362256678263968302948012826636714955805245714464359035922032438605922280966384076933129838769781006874376215629600024390342285285445689089475924191726164121755832413773751038812706481441506587153583754138135347942080850124834523863098278698202970026598729884641208742544011200395382097982652205230895615469743109897649317353136828235528547214367736130817053805853732643256013546699314550893257210428855408632552728311482341144534069130671713799298298844397708319190901352956635250658171462775367962376134937174865965175194572801122480979937340924702036392681851162393813479657837860218550836493483036523995843601596721679518479062550509478686448398881750454484231255383775426560464263052569660636814399121653090925650643933711714339831430181346183623117321711424704661285373846399239233858557707986423057862427804281086876756170952122415664108984993775845360942973783943247604854634417436029619959988843251084763048845822288993869158342753200813004435700170424713802077660727257241772449233174474177419660656903317144223364427053219840734744607514151492111779488061271917084830813728481227877214440820587345891310519675740227240410694410102508411335847195267341703753674550158747730400565725299854083985061572818419591881139298918080165771115739194723214094714487859762056237513463297888701300168912683683657658945079286349437182446961611729389303597789126401943299897221318508025222845952410983267994668552269593932413040966077899102479771805332219419990868577035004843596493211096546425252034014884530528976789382698083927488376726730876202161221380440086379811172148441428037482351006894485753261547709993183804615378471789347494156344048977368100361650461438806816249387022265727543668413199599748065781421974586555709148162106908462610821277977054926524189062879306649680617570600519450743293096449284445724107225361256490919997192951611862530500579221722323763503718961724829896362063222407084033991077336914971640041071564912328974731695393467368815847105193269254052372061668291864027583816801496843083510131197377325074489514762661425008647699447436593889825304254087931783035191855031182380498973934860260072445798190137581860845960737742210171972063435393056779498076654566803866146988980357265129733023017526131309657891150820495703522560446210119554898168832471543634834741314519421478108012670005070426977693086225996010192244571523932334997608911312149238514013356796698315775714519157285302249485247917054670584616375398234220320294964925209405767621617901150680181793588474629102602137802657531727794769470945547097800241154112280283676383387663920234675250564735667228814531123880743906779217627191161584501790835816422781501416464291456238620787687552829344051833456558500410575502229482316142759408035458920662137843264263181142852267787012452965079997568442684030169473247411652341416407754253260694929962559140519304912740988702723820905369617237812201814111050120948156921890803378811751032504681040969888682448633772105546767040966742180543496807460609531731555865766483884404426601853480871922700720968294248106418348875372898741220048671911868076462663045878379405440699177247007990662754372715588508069360662769196874173989895809892314560295703487831227217620692844405344623105049825158813810520310061910857261410085925708377637808910327646734025231609420956413071093658778039182313152225393003283212765949120745234733871854502767296516373532349723546343062088875518475876311228772930419759753240666019833136579391096514821554681604115584629503150702000750495612047476073323879100584712574434380643730944174888768128825173781551772293965732238372616847608327912800711146774720678706505494962073920606974644097669380446508443653325639907199282299357569344746884403711825156561307715815428938482999249159961210554672428803717966528814072689887863903972590234742345912663386016493014740928429874288847016633538339651087070591727519423586118040782791005919968277451174302674078609171377521914770992968163313912356738952443330483428838621210984573610897687207044514920582959847582798902657440086923994783210665490182474552842796167016294933459175539751134022370110893990408821270777738798082664278311062465641622123488201531936072213917155476020199681384580436481699853074874652507006912151892780904559799107869921623239708473818555142777972933976542847091619545674499489467926953587751134285559829304237697144517101450493185058898332857762922438917078437785786055528763259667292707047113987986892438599903709196169905528108274662543211070818546383124760602292298748337705348602691093460591128028368992456717042438222952310338504600759704350233881140525640152096038052493327129311040639211157860401214739861941205178821984054386355224037356711080443920625945129545177983070604558915662048457075738686895796055606746111965508303029925230975525034854976517793826732484238274435829157549664575080905628799974588564566831448901909375273551584355227316234320058977946993583779612263484194800167252048891987179421497326250709356618566843174301445152616199180398526773349282084427623836028400088226352943389587466420612964491729959655594346103637528097935546160659200962350487353702297895296335737974251780359459863057565677014791054205665126453342511815930687939351674856232978837625886419815636496713976557947204110845860665522007528997329098637674490278792188132051391857174505018144045053677746013175886088336235729624812250197919005716157730381825048479221466844752624149171528878748473371255537449388583114038902590583712574647236489997162872773379879090621574474661832410200750616520271804379414007907830232616512999479473958683581130126726502847791540175685474782253664605602177765981033853370639850253558931977320142187224780135974666812225220189091317742342354269905040870667761451885814571432101677203219180077985396286543063911917075892720096444202233781672702712062487177176564120175914175898246596504797699639073658929235238206551540644859719108527964716951599644895338904523875128557040913671259828467364848750704571798653938592363326316405151167389527964379372675467643251392759428646877412075582657069889853221173794966504570923169681861743645554992335176463104665973888961079975192221975977464113967975902821393544863353896446516042281147281211997324114932603236972895636130576397102380745073779217995917119421729253345966895260756740200327709221143258094861431545214999693100349556933255114330776073351707188178270926420760853400706989973565289952760069125261040240399519554020100772091212280193278336968664588886362238442870765704915613100052486062762983644786435184997538746846444796570154790242185890900024220512350199214176739019113136302314552810297442746845680853797584423494327421064166215010347351650351357704071797997340612078133026758046917530641524344418496513921771210915783578195302660163090678908334659593010631665453073861124707267691372357606126281093656218842794469665635878758340441386675355949961631733361620021012731071566517034712166251573526768454114490810374807343018958953147953531874511061431981606052701393042625260598184083681954744535668232824449160093166489479294337398980669147068992859491637029016917114120745334592528164649848895319829959570345801088198580162539084459808158084901208830320140204911601968807439345416621688456383818433102940369772269233298606016022453616997953156572653232878316499765685072884081231708879730347027801170818757938467223768244055504998957253372120805137659133229613812005041633590613842332651652370879563753918216559568033415699356691821397762811919596820732884056270178992478703339104254917475366245091158682025467393161497266441739747515765350369420451942783056547277317268709406177036603592243208104163126481701996259019351826869708620309236319069300030390688313230726981795268073147095923718028953219578521138317969403779309921651701798649632626587431535765327372116155417880577159881446565741706475301692569701915536207702939699158144903414403788489850697877848536813223205972959275996753519848966934916404474383179178596600858211155501751358893095598315184809075407363059123707828084577336348239854993685184933357182646532442749274312769457928977334389250497850189376359925551071331569767424904865368506472949365577168734274173165514840552838009251140906257290813573321663335191508010220337456283704995101756014042533609079754551167274919437264170442692626939243199596425765391924874037888010679666071526120904262876854644752314190841832836648230309398826098316946699253575175673333584760543336132914852774678903036189488987650209975944926304063041411076145561343272469953749083738145984768265420996056533741458586433430094811722008839665286828913321300747578928888568219930952429446163337656539029029743127747917179307000151897323675357634873071207496516289193647809350643939837029807820963242258972670534999792171353071437450297048375841918297904236085253121197865824235918109265367673647351984556812448525323164237336515332519242719267487063849048827750834388564396677733083469639198248229590781073281837851814822214836666653497116932303814133357975983567152869795842727267136846483628910957683952888566257938978083750231203849248248604736165202057178830304973679166204203626512108815787023215136601823609671129258872689042006654077157784392715773987343467077733764035075085008951018076292417478442391186243635479133477347523764857600967411365342702938092620218391559067150613584595448692842985245942152381786520236197934705570887689931791778656834080344027271484432747180772453559574450660672097231722815778567387326828719191674067343233390375221486959202114226361559144139989816342038326937699825725106509090927754615106648009214283056897122938973582697857447444786023907136773577451072829688242879087350447961179392660835673986765164130669828701313651314034726202932614854396464855526478225889932463373685341305810796652683026511430398242040639149908112075390008963915398090815826383219633916552827108859546868032346441578279437355622751722512788336215555964590290089673912986192643935653165083465296575975174072745529223649359079010981221551460262692596868422815026619702930333947700288027522008478204400100237634134160333286923221081591006839406654023708416155054774749693293452785514937385233467103607573133819609942828815589738126908568148827484772802581751657720645596821964784977071454117982492005847332447511315455071515720794571534468037686931882297322668832819839870327555519218605952745237329244889839777225939588359706015424012453113839036750131930800518144577168689562736558440968079113461045798609342215923576333172807636696988594470399279273863366606886825344378875541242652052835703697155669193528352775475347918533201899996903821868307016678226394106976313715078680937029346223102957752315900835149861152517759003994158635899708950069982745760427298237473375682799511643733933709903434570709452319790321377049825633606852412569530339512820522123544908081946436332675288035899436715897870245459881588126572824175294278581995917515606756653361631598856434862875480169171849514894534454413786132835103662505674796034480582808434346088702095949092206842404263315542380003508278492725403680951893865889382130708119563789770797404816073930836343133647715047223332362109323828715521629169164606449206413589335017373236100378550805906297669799007902587012266343008760902853596253891793826107908055377182608912187674489594996579708041220091968082464843651977286337182675894613476963834382329181131731712053349396096099620741437793442377848730223453598361464037633421086157705597614921265506510082573693509214031672752727850132302505255757582226308560609876103698239897680678119251522796035095055478912092053989833821525131821476144598407815943909026247175769292390920203932481695545672488919022932630799195837830727219848230690201302156592836256566776742457805995748698087570271931333195304866305092665253358600762507409063637074392608351241290973315858180517864629320316297534413132661722819000768956732918072043051695086523373532055563873012221675482331236869293769290458119632283680626459668729595991266878889830990885468756670041443929350666948631337297402292556100886628601254860908208513804063600298477293779259776303097075928153232611188437347407372853325453346039310572048406242196156568494632407895136415486165635430044910870632752930889155200729252817329842268530906002330025491417148535738530904966258796738492070015999201009618298707369550348627874660963357504881912410703017058848671696131497800680853186495492317412697854669724002809341626799870404033203328860465124341488432922514770991344522714620338982384811811525759692635242577999279696603588769795341493513576712314755163564242665737807645168644148892523318583014930018421511353254827946291711811567671570952889921878227935669628361102755763989238211155079934717029464363972103425903771890534824677582185574889627360676701820270561858684639684779103203466083816757710609545269252264855876027325912640582208598233532913479229482799919873143041027489530247416421211189517819804521452039617957228438930692731668252397252083196064103538016076196096650415929032091455113739680663041381946526210197881165816420824067487881436722253366280892535186130128389077675707218204808858204128697738504095597092088749657527322625801456106065908009870359006815222845287735265418103454195799367532044891848354959850234773649704747807219669365752060566041818240043209823491585577260017464689319065564554046955072060902916901767516291572646983252461283743870506131714419873131858451991273096468558432735946409823228889764384558159205778241925940320844401625775058258871459905717501580487915149200917090177642912478141873609209754590175206498036046830231510645444512997935847211336536692033788561188147146208518086976301952737826823126260086539858489987188265895445333167428811822657118645203354438891844863124927869085603487929397538859366008880329919209496591453702469562205015695927630769644386740209384277540595172184121245926868085326137283682624114854529985293662996040295563301523800619280988881571417321994564143205873378833998310027368446947755966809649383560012147037837088211283067999736594865435036559681523340075382798292323234013787444929573397274518038383944094889067065223377602009848851589547294174532699142695867972225908040996195396897943424502762865794778768782679540179167298899447998704745413624685509826939736027411868986345634992858611177062578861344863793134037719609325172979531126259620415747388250256514340222845322458899463311166040348124866098838797163665268903712919606466502324473218354271131383391819723605947538000495893919895855713652373343457849784185437582466579239643107704757773964626095518155252416053059905962575946133734846624378266654952224102255362219006442251166732815756233715167825040808987312256913411787493814807782047710102052311039185973072755737793248820233880497610103410838771532912896729458551467553448500656429268319988501970599510469323072533141880574404364005612412198327873526822111711690277849599097622487890767624979584737418154953303277434575542670253912901162466236533756191832356510456301786482632980193003842645807595934145226086305215337437243442900597263453467845361263075838490810882342412958447354429830808333376622289352952199627919092883323905249088970893124556675611955724975272575685289916017857870424102007342552207230489780331901560654264886788413241610876442040889901444541064027412350805638886908064935792341814637628434475512707459900784727942506856271795103836665016999360845863124338024626163191539431390270426444456399744238104017873053472046452240819196760685589501667521912685062235985599644847988697119894179101462804543758505110319105709234424263517161335841301258310354126371338902567240498366812199089611016281837818355957863286401734479743913624990331673937420183048909626807052441108772937971198205952827379387002267351199805305681513550345030872649434187594950999559212796568127969233982612354490214671896750879582208503806841214060776540977793635964689708091712122315593315181610016754388598757039251065361912509070349857258347966236513375591309628954812379774811008958161319227672335600905665399559238879144476699908039961991334477994276024810676249301487181192162902626075337163440850733305214030319548879196217581880631310855573817750433031288693656259300567066738991283501982962724529564752793554736116190635835310695942566226790772490662204757738255772566905328433967299428700929576569429603488314389831422008941076955338756419209228579756614581615622267658265560197663899130721484724755928125887933260004522915929667979770804588937779950685237952444248184011705041250515933909343267549233550719335109235775209301206056256523763167014401662924395554368102482803523769025886049698736331645083067677003079687910774660848987858280231958896295900047382126048518829575268544045763271365860739241053234897017036674841457375354730438589631891453879492460257416948513625366059211101329341019952724561852974008838661091309942668795274040739700072767570342601947506510759444639643864482004158098505827062692198211568350334351215733054039846451495671364135247324449740928095346310652513203456802691716923236668497445589016541718525586334607175073804276735367347950105944963568220361108701171455890324242336027630011008714629964049146430608394386619930415564781143514711336705561832903680411753429773307447644513925594667851474998566444046311299867618420875407411203423245285174747870977098528175797003016245819892576300933224736621109550489880555899405150419883863035577192834700968264194424186645846994165280153552960998590266636677457817371839480259458216982977226649565060136889591459677522046802159472338148003791319917797124057137290318264901004462269023208610202412333628207865055159442869694733795892012597171934160873961941169471125039134576952698157183890576636169762257985293136190058964727275045251837693544964635814677273511433896059096603857386487373444402060508477286045840916402333127377732780289087509824641651999771321925011205514623543045498741347711430046521815291251769288526701609826586479586697046107017638837267952641400756554705843084839044161228501899054305294704232719178060322066228968065380184340644093469460952100149024406362076951082388605657533393192321283614122052912642240290553703717539937950394671497580786491961953845105995427173441566647678080764703506814875210957177451211660763885781031351021454763470837613575922469495312879519456817503792463183965156297744975813633725306985150178625692074448225286774848965624675502807131027581333301566820764956431212408657755745470425372951651463977047542416321078811804957652807066347599839954875090567407727180219398147037151138510997665088458888287547535943783556047368129447527096421943040340442742944232612050992054648946472672842787185882426433410789081082560118641879920099324675868132821813975044882368520556481122397694816626497278485770981118743732237361160529098193327679685870180568622176527104172328737820529361195840744061583204167568157166875432571738275634735745389993417177411869042206644875935468623102319873314697274865399874237882719403108297309960656184627686446767347277596645436522811045815123359310515628081071746337433146137498617565316791969592444629964694600307447146053384395097371732265550487006922125176106147347243516029184999762071926159859715201132367782591233960821240300045608590353702266576961882693934275953626876661680613913285606178855399736082281447766446001414829712437882337134003780206081604245978397754524534943279587145297350268073971432317211699031257063935425220437333386003301897168472571026824742948721278299232628997184935655133995245279433526903366107899305054625845465484058928735564768777324859236633791169251074427165338593974752130235037712078390740129530423189439583391574990345719898876651406197688455949737629103292164209396150552284527786898778902399850991888989740640872304267941378902584657318482676592720408965096264746695310096309117264416847110864114149655268801856220998348976355357921568053428456073786816128794429123630865431041905883708281077540027455725166651581947880309055404036194554406759402017015293547480147143799626075543304615600029869565987347044451414199805318625531816906460985198279851501851184979663309569991196932905348770606406656563078825213977574176645576019475473928682186210702574132578983461214826847907735131532599198320218564338153278064641055510895458332212116264361482682429594623699954504623033158922049338451151998254113068177903356291119869012518961599870119754789840261813404110098716661310034802387126830792612741569841940482084498434222727572796676374647422874220962014118517242918426503665482035238053044946230128528807458771797053864923230231079296893399627998280335746566888363990929146326143205091816777645777344093386324343047012779235253382503422350134589002222594863978567205135142200993229730267901692556107749544061328326633926492679084543557657618492650786476688477331829384420639058736220941088160937985181045443634312939608641230320519717292931260785876886324591931181946348127280658251925895092733223683185618497534923137150993826468474662445837111164747569107480234769314442967066932113519838408388076853860418831655932183324924410683657732936712451218720826082021551274182840906519955801593854517397455636012138939502342580921267645896420576982835341963818704360931532643683609199615659747305514008306788366210471301287329059619066606862989702714927440117377668502798146566736772600672877311173947421712961386413405522450136987184203391147836292541150712396456662372088072249549783535017087305539523102806592046323275668683235350195081770676343767820562822586146705706727312092738630920525405608103635904652196345429366419876062334375553452626123037109304584194759856848309312164448752163003873370888549112166290285464728096636263445413317610906924949669000416662018678966780618454056382260096767488099358610454699657533978782004550076879661603218623668819883818206339534115561810957699517792362210624520489667189362913166994101157375511493636798592292823492122977665919707295663885590206262382266091160006438348552961618149805976314819824172183393102451412617507497227208388212099939031670525589592909844950236233659616541871065518427481653663965899970303484396937471635651090369138102767409598709846553220085363129909140059298343994078057269944643133330798195316604948757438400673376379054461374237771911856807780068656216550797826462066059343004174484334886086366662208879824945583789546341427591064744434002984967898179439234961134750907221162965600538376208145011640069779214795255162206835746098318481655111125114840290035141729217234067810273240671304618908559492077908430898220353707128434801418892894060761957344235664462983123332010938792326394714255984249897250764847547567408975722020142378697072182306871581328116313581091107830348604963316372613402833694719400273317684297553508420559895256575639886996896111893486469876564716606190756478443818925335925557293676139392252967355798595226587172576553928488673921718289804038887612035741158229020686156587762756977842905030370798533167023173219468928517143797339861852322107733119524169041386775703699351644601381671131733172504991429160613810446197259985676283239233226441114766067057440389211663468194051204127376481489646346872816813530216299550402710773875772358639011564621070245022789768482048344280876290128467633678933414382281963853845491456388781307389226224794256885592633118831272151507905799884880389140800914593158480180972847878677090191978526563513023381685259436623024592193266980402677835664693303930826413549292071804892613472620996059510651504036807298391839148680478336568597614185180030613593600609568956524648432183436203655262515733169505678145186106427955391898227813958645648050524665775467941579301131351665092395093379793664215245631821319527942930820389076483313532521152703400349492803083674515941938907490941888586684744315683112903602966545855725580475346208223458929815707546622750163055138490483688839675212565537329682940657796902016522900161398366386540670830293934359687591933437416229439406468708161781101131010129989858255955997685552492987742339674397457911156087874393621583003662730980657089607929063229679634992963570975782175934523069153417127672647169197014662345904652291740422871348203634996789210939945039389595317612642514029949256917447696645526500400967230147355628303681694574766293162467543641887949245440619995070838612098574416173708108470198344284015980854833396959484959663041348327484021611194700684720916641813137294305103422511592214962317178121365729198309037619088335431738799439331305479854582432669604166443945253986683802089712433956268001719577422774896543542505461438858545829429484307422216337848558574205563293506184325798484157870548441556934113062801417109532626760033649717389077932233200062624145474716001642837319237171307612166685928252133151635336173907164128268857044260907638372158701227168392563729237162861367086688315184187860508366038331666350824166818508888688271634326642254390488473920428802315854009967658049846612334102076323393232019254162601448753254445813436347056752794873768966347043992661537526356234447943269203240187347027208498496530772734059624217389163709723384960982987530415600528061195716371057728849153433783862899254676307634079204178703556020593219184882378102938154736355654076965750158331600113677208208115102840230968952773598991735821713246323298344995912258338710982259072461948462277145259784612800956388653924799221671728265523198649446419731423866890450515908644606478786189676706126642508415805600790196363085529060598469176487317964056328215921224807962358625604072713463918254571674800571430714473820957319595574039184696223144889008579505117305023963329619487064861258053571782987122985251059340168565427182350672141855681963295025247473197970823927682756351320297964460765299518634659830314366299278301053211080694971165234561634546949449182350657359157550629868383793545867975346062477212483329071935859347187964177132292276838397182194337030878196119926188672609265115651810207311717792108548231097799650211059077080928297352251042048991815297069105868559351132112410858984770586426131182645309990173534443511480477792993019538764630728814007954647167429687977026260876900624540173480782136760823835122033574573622391521926786801487164456133753951365042716814089154778141763350484972767018148383401208643637074862970112011055077387281532281192546576443228263905813652666481448690007160421539756229541595479693649012111185952452878878571102057782791987170780337674122205377788709912944566918575391862743259071629976841370539177294460095565907632588898188101175639968691349630383127891364493960033172020567441607318629339677419616833940281235295803510264589381578806268054481718072058303392746825140080349340008772664155562121874884970682039878072980286393799521441019975430649521355759406055708594314147972700563958801276992502295620694684192665786085053916760996966916692290364540706039800292650448196935845208186946200762596541784641907641160879617764570269035194343493712484817658661813675127354025019287270897495521857682439025950851369017539179094835767374852090284450479194787271682372157022214699580683092841324839833497497392773577530386598267800964341518496160496584014972018157291105803960481445928774336713627371285136509749735685211596726896789422915338192502334157830133627242489871488877070004718167656399900022456330435129400862983412106366225758012196535424634839728367930965711347633486811907974962281764034850402572037813079969656307891884274665351467078291205901705957878677725880640892576222639727151736421363495670727885877369359876716908596089365280911482287481372594320416888768274641615623188695047754791079702780819276645992429568459815750584876802821977196339037217081875754379443001718268100466669263712827123992849215503733797566723886787213975358806481690877343273407782155990180210511772873616571618578219753678894230631144462008073964458142839159121941629877579815587821464589908747949227113937014497266092409050860336998034669825580916370971596585715218175919504387688450060615845118253126785035345189181478339374847032520087168670257950131620108768443738620689211821842468081357657823152244263237139112496744286482760597232237676684508773244467061478396734173332397505639343248423564660388792136452962018735044039792247931457386723170378281992994120126124373780739769508467792360689047752356635848209768466266996182599503419465335173827497673747560853012613409559252734085333227314476667293811695650103600242748790576107367996268886021451906863118882447298701171494848360864101082097857357041617765889154528693583112242477951424354610469629626452772916802197377398493732008553946360683474843825946915877090818955041670945944187302547692891536579952817141169717083355731952194091743970276182686381799798995376063892858524075946299925990541643590532211983720713044594101380073803093256596646997990146145590911199598774362425424939932552056062080690418149068532623056367292252929216697750402689697342718590537637167950771199172695000945990147329439705331405445830294408684181170551058724316246576703284139577968728140207321800191279471168282849089272226386430605484949324423404459038261586719084423965046396649243516158169974462290856432449069265339420207154438615742339052196193181020470261267421922655724652976919999335913460222108351739947464547296165370804571808612798248117472557340808736628439857216894262581401022794270521152223890452852842191026030057432486524571494744842276952417455402808541760881524354200924715662693679448192354669438923860197459371189554759047719277100076187082648257278941412305686441616373138694797970272683830290724413572869254979485766911651262743473822412511644253903859901079018645011097498990107821973081413551704900400177738224905860518379520173506538029844101186389075254010963392628905511385334322238076068125577221821097277461433135930345487807436302067346400441243343795137312683553371607996552269656204220503209324170996855325163449641515715318906799487961651933739503422851016860255457211170973783742861130551898664178434024777570509315888755309866620350495322872774405508282178593071727497634916609712847789396916303960241061780139157580380405943403465147802861182885228068935168949745961372106585929476472411992201179600618310813406184702738524154787370879793053147745298052579792469962872424043513607310611899407269035615395647026884185788902786835767288373992874302401937120792089377614102192098089407340216263729521056209843785127124428611901278656906860341716667808689156802843787035449693439292700668900782461962141138443245207239138644145416041223586455086211793673205967684962944309610588194057482157781479229721441622962605928872933678025279456715566860636147775337987963252353327286251695415602656810644421198380149782064437531380773072797047129257359027146660221783123525108007759383227431666228523754974233302198763617654304624622550867174464798548325605869719819242120815197398470291477563445439806089738647672245462724364124685589449973957998908195472913332208747792763048940712246786959946172200387268266257640242986207270231097614497490082388712928095052629403470219206991761211613607406306350615302934909075068715774822294404895928066351178345123765327668720702171867455033223256684600998296256257335128142967799261487039917682029774506166523169076425389133813641981771806004809453858484529373565085466078880436349098937263133802835971696558744767142273616870575509683209702588420738920453109145225193570212852383264421377880690749567878132904166258514517875504298480737653959482542429485292712692592942829091796164151076333583266647839614954935327766603148600043523246007017607724763970493645761264528795899083000185290857536427680017122425701213521978642994145255003356830589693808076739929230676564373229291550825784078445835726658317873658526000224883733290744052412298648956929739532031787809638038783098110071817878763273109534260262614682188715568072036717640598760479416386857192295467645295033302082224963278644792933380714256593334365755866266320055316166780508509763649529439743995660288666636649270222967109233866229077648343021919121016554511791778362749623842971599654241478907714103095049388501928014706419121490549906112579680413919025509521947643102523479536095778466039732974138268500868091077843824851066600131841607106870683822414745858129705735572344947690648290773875524435931093990042070721315712589527632383619868122228597217418592572867779492414702885685703717345690516817652493545140591502132234672123856449689079286796755884769174010557211256252923831405329904071467846020537738427821210058291156676029265190671016300784335898784291856127290822188363807191927294701273682362119486494114495642610918306826912978957684806161068154812195035549192189659447902836162140900591056904462242537850073723360297413486984786095571513808134814353180601982778239934146798412024810242562404625681895424329437595145674025590732865796157037888518371225056279059184536338067652109661338189145360018720222822400511702160747184014768381082861186988528267868065229416606267261081910601163871625489615294865390301774748544089886136464540225667761081536400665136185735006222353188040759354104564914760864069275193704282681610964890202156688624948261399979269375929919341169365333242693665513346730108494888246944121520241407339410129506643115824795700738568871939979441117593638562725734767121337544045958060231486636283924519588013826992758821826648583356796430455137874711057654789257848361361163094160180033984631339971056945817584238355703412087180001310427955722958691288142905656024033068313135541513007381091622306158026070468530792161353913768174408142453816105849191867534742247550667528316581941116802600903325660400638587119217588339168447018249826534195187817340121571754876047757493256101682368642939160224829155140954074594793774533426325919471179231459531608504871162070638505674428420829177400546332011492895525598488792153482960698862510077645903744956605156091353583142427222519238358389678182575766177838686534581076582586026764366747264856710951713931444422215416492130133419389899452286528220500919874719888727664571327280978059892032429669051268050444010169792015112867557301089491507960041971395468366646829215302074844918772322728732906430320585680560255725129883436813712553306955813059437734179116378063783317051379114448880635301306762736212877271915445464596130899940434400703797215468140297230645593891099179952872742363850513973328238648956542773930913586732365089983484088190796787130912616365541214810043124566541355990018802416641231884141820846224200510506335159824457396404063418099446907016533998822471276556697170697096214139228422096144011298475016199338589418465377865416790069474166393858779511435426765223221523072052090336330026207798244557517503281699971290605949484989875484244826000085600224829836576110650306831031144010706457173534792200569423757959289195261841423240777397683664476748961593039556436911440934748030171148392747779251901479832466108747949381545596349370878533314220545745283677436291251974245818313601222822912191287375177608187400944109972481010853837061275097696736444147201319253912441490521485940625644504486139137669253350852817637339891645455635871632828440802778677024326254524769860396232116120100811783580155777782074548243952872604520968840409084542658945665570500676922324914342425214899011073910976692549896281588661777291711901494142510609390494397043609043678641174103469710627689259762246531091282679880943308676346133252248984412140907914865949483225348517661785747681102407812621948098119085343598741405071437960843149046972098455864579126247580890395582754197229721308844291447897935887767753629152992979554478714285771289201556376393604950448399156659363791316780675491783921041331478178523018628867960603159527163634655803486788148046501563920769460527308847392017410710261256099125468483066427164728570295166964530952500906330138002747326046594177154029554942903073155914188389869957396769940588085769291604804301708627446962056513646812904992170716321662778687787873307200201581882629179483779967231272894916449916775392987374257089847429609333816363966144321014072747787896512387782936427707520205658661761086673160440211167271256945417515766616791859076421720321506941843785056566836742253948647392734764157864591304120991686100522493838882297707503025477680777960718969263242174243598103439399669941219147325147111364513687095384238552738079134906520522689454239891287352095174423660559822737423774603589630025515380678910407679877162209556247373650562175738519852161250138041166438235117661194566302473226921303200193212720067159584917060805414776563674283350904376411435280093580091710031505573887861020288402440856874103611215774349427583293485376504775696962056016282701069039594073997889006012083896288412112434089983908174886889182427233205345065258129361082160188757666221097437912673712138161574153371134096858366624133072393356097888157161892081126720259773456431856984240102483250199431981093409856416487247438880619294977911231188903074587458663918059478374596711012914533298139726401832878129177813787157144438409140591110526696915279215234214734376289894596875772921446645490532769988997267366811462577240886865944485154296933171636746034542103331694969855656838215714853890250793091269863864048855880412223497614986549724549414619191185839075870729521990929557925143072664880023443316369537952869128471900740939975017260515652427860819709637664636670438945934421796193729012159005719554099309533984022780707020968537529630362005481612285836711750816686807283482578757894032664199597997509838025353966322803137209848007395911445276172818618776388686360036261653202926115814150460304867644206529016583358515866177356257448876488063979143479415607040068997723053017157160827151442642120632031642807729003691304116391092942786579222698390416391554314481445033540119345784533177667013052117668113365199566119906349521819215873685851006446295382816821337302218216285596357212827382664367426328566746695272640247119241291544719136941788873027049616447471110816052171708947807238398059181729790352622705069234101625624393743151191516578552479444853703872840181783253727207629028385072265548506703131114740466558410414946104339312509041484230322244617777868887430573732306467216159951336099449235349510101456040137578647108167873096887524705472475673806327031001738026972199124132804704262053608739320509314791807196200166964012732984766438363455889729996479789835095066416220965747421554108560976243084091284431825404483439566051662712412111318868218655012178062055100176774518257540510979555040312286371540231589299447375359200674907981707734045642943303135102087853516690282172002488433316864055030112845757934247770359616110479176157664017942408029370097947459839305808235857400591736890588301717371008516874630304271141082461765608565605194559708857935674366621250748570078127875827216866205313712243508304124244918247607404946565065665678980559051216791717281429768516339974998691374588704950747357788076077845110107015703735067523439255327826179933472888979914168082094837989403973240707956583613029065562035903053330689026261760276372600140886134357783890803851262851498233460762601745825460841631557800169536357381905535981563025783959264880104163183910590521293225480434262188556280833905182764843571283928828461469565523973864725382815055345946046642361044727170875170876618877331548766966498700773928916690354125930010988246413002780670300590279048217829850762690277373287851421123492598511632001340591040856684960811606138286092108181553492364033822015945898706777891512576640564429882339437575563073369281923490401991208237434483009734425889675688550666137853384738445855960251715569589301874110684193003527466031605136334636410434514062295110856364653843930401796786333143694186958519184639232975607618716124045869283942498102360843126111058910056048953793512168887383653436991072903094594026254502683795068809830087985991913369751214611007967358260966061910514417428181588083002060038435350066149117639091558426656605300364949349104717170861257829645405112639212952234348076494314489424996649726971523242599110752965149329711299283535355727730330560091035205660127303425332353787738089255493720452666784532552001764984620229200180138682133041793466054252997788208723326214150441750764679788728909713455117489969845435655789745795209020312081214278093277359651734765144444678557414197167979928129225615310317315025750875734393478292796258976171660529410300200787258993078525340331647763309221744201121956935680199687383106405900682367645858306717869956426757163412831836602186361225285464735162049207428144853267661750572481899959570193161204980788892182092364772303857529154885156501390957561580830403807251598094042994516635298379587348554565194270596259320650809247481526829477906176835994300422178308547164910865650806629780280104022805517370516455150119758838660684977505440446037132837437481836147464323449851512248346129060272980547853041115741169114293454212249903332421101430300968546499039502267202739284066329269342028017689338286990673758281396704061797784986994051567190374126396814453496552711725057595973669667735366439337209467573417754801818983849576253243073584489888415282117867834529345261533955456674882808164876048008002909504866299658324869665537412662320123715043644338823300495272351701360543245149319865317260898308367317830470141177767354522462177877839862957697858001113383813363609974192450965928141303747297295685109627045784208700305876076363774767649687936634257818170866545774088630409880625440861696286789930676331791159967665113129595060592017091545390728640322237002950706058510491813749171828827649978249354437376253599823332688467600137150954552210069917703532431886003629830472193265513823509798104855074826518676974320732940300499176750587271825091238231255872130024971997307722950562105081453733528432820681870556940447325904294264785641166541337629458644326919495458377377382840846805401181337243216104271365467509472844455818472590540435771803144715666086800731123478053520660240482570487999603578973740156652197843534646457362070383181665859146693285905895310560367456871382665177397987857901357985414751227942930616234636734808243785824526610745380050919737003385452267693887264571338036370714479458650309217442728043116326433307025292313672239942629973624073417424078739128347603624098282268707200196449037434758208732445503024880035272539748650110720479408662622496207150012843726010858851925234000220421515305211627665866631741868113335184797342835795962477536534743638664037318002368709705354555091329430365114720235597060962947550239346330702111459159606843260283038034475438992030079452018147893983276005676944854124653909303600956264150026331410854199887326518613108519358925049870404119942103655599142106825587734329003938687271849645735641058834611281193407775353004679830394881777676454263222845609838611238625795726427071119372877974373197426968327093828155667858761335479308381120275432976340508174021380848688117283781715224831782883948638814766236586298385823400613731398258522986484624048282159374506935220481074727646105613476796414355174916828392487013099249289871151748187726879465639593733908814154898446680002290907053099391272252806026127150396697066665191463463606605503736875276540428355954627721119544076274318877629902177062145014180936711600914876035758661501275691782650384498184546122961468440582318920663278327545446033645540456424278006857823123236821250203117667029151895393585239414686900824526356859330870063732003991797936400973419227628792510652989200171600719649043123823749249798369511817195921048712717727637305808054658938997749213121557307042168260479855861782649809702045220363727309186711691408612470639635521552093206247368912396663624850975890956220910002300391148557127230179601247900153437752576246439989690418254006863781417314272150223448886731836118744672218213156873193760421687097681382721058964516516106891739806998282077924946773204662575824056182564385027072819011433839282522235577886820851099121315551403389417232739828227396273985069442098716688464260125149200996764350940249202720506070641718794062951752873620974367052755179508434921851628240342954821878541122909020785004884352041692581212209653349415019945824064216216631640096802427463272663884264702037018034288237349200444541898949692539495243666027402632246154881239726404448772179493469422610653654411538505096189590442224141697403548261095855038747150959173377278889908796990622906707158952727348057455722709685090422067627245575323125774114816963315188739974682484865614882564940783290767625597385944831656851711399185153713581902910895524527374589309726005994567885418471125199609639272258857842743497957994032196118719432560729407204050973816668392275175757430643520533031607045228806453696594038238575412456804314432388265987356785785151736954208327690207766428801758063705970236875898623032275791963690219099444595029987868064959498465534223254535429767727638513434183455344054513248437742336819126794640609511326721981787134167113339276146797937260830658257287607206760740739436693418306019555783646150950208384901566838903407340696454596341093716880440859596487168240044436270118038779380237762542577697038639478860701453920056805728661553254467632350954126757666916683768059845572454968389410169566581445909170491823142689228139316466161697341854871826563876337920276842306703136664950473074260196863586458730544627889901996115424333445106892785566929853959636827631293949272870110158492510184325479972371703089813123664651921936167635097578346726864177277624048832964839519690080430455276370540289134211831593839091266336516660707003386620930499250400565122719018109330037698471236125393207059502377015813558516686855961627597254944182197024762318707876472559439060889904818441508044970789879262542414845190850685927446938779353807204091915508391659510766573367015986444212494534038028661343247966002940382145173237875642581883198310491264379005660385665273415444599294501485949993100070186061322915860650131638536654685775115368800269838840233343547842372410697936610704714983422784769460841172892454795538629414757179745814692617882170755000707781258077795375510587305278695442277076480425226901358811029773316357356667787870055872400916112805984814257693162176557350223923123568436903788685998683700044408007859519498802633490565299937376959177342192023223340516911724784046090122916555328871863941085530984250767469305788942445147570360779007236983017663436312879292339981394583306274158071992974793618255740380343134632180160348703115690007960140046198482642272376309759641595340103685436156578791256063803104537862032318619932297388086594914863510877661746940049723509886567459233787189528640622796061401528935760831894158097470395718037543355548576086226381204469255556614982828612628800283819461698505941808352764840722923873941981448942351959662547364331109051797093303034331786281483910234594209030751750908375779295664414590604497307016772698670559436903181670351964661198664404231168966529331402066165431296831247148509866382887794391792226096567205391659380337389238575180395016181451681498681040528630116815400100248237515457537263324739541560699773406673812521745590975587032498611729936499568614224626489187359843696800243030395801426473299527589131125827295570732424053447840273749562030922997966974123171872584305278514448744208762695560306711079471039503739246945627758700410420383722383686382335258901937763259747918371416796379343275383802147537082506275524137250619692920618897144253899361222542705978909898321656007286102605338381364865995301812801328875596398147064085225132763942250398733626869612154210049660381455151955098189436184972185310535793512893302906868574130085276661256976329858863901744589665103053628594306450721968689539941229922017899004190755870708991453083339222784878322207783186962988854397355069393288593538470634214084775612603859592701479292080651397062355289207360687469849098942510582153792959942773292853579334659739911672572978439740017600870145779764247132792756964479968731587708181381958121665460465059164896652990047326945641849174864857645004608874501011242773480545761003805202545380524990677836514701542716857220416870596022610264802435257716940435087016667272134674226653961709091720032937279107207483437470721679824617659513791884391108350260728771256713871312949262304578191645104542626630868600094822720246391587176235165996106203966759440703540257630638272255565905288355747218975586847171077521900932594507815034869568097077153868769914965094537134747108620226135346407481034707566596323515272405917353542070557174639052564354488974876686315514192350850525124059699257872270589136192018694759320587149949542854056604376120723121046931211726161086234346279748333340073404785524710068137878717846095469953568953349415026268134494729607615033854270104874959753035071529716429069975382168469870218756067709211543798477063192861291248995680957447378502818546743665517977802310661164404824747323382004532416649618540728239355107902815960319413909519159947467069745807138257293268462044691121409846655605723287350978681804921216105858858842669996832665942185561291465264980353785969367677414377797206303313168583583753153132755088705521110462878505930804778906979252665055944252132216752087480238765030151164627009797803508671937724093464795608120693566219948978726494642524991159246171405746185781006071871442854179197653053207538799629209824226035276693342398726928138062149236271978207678666603711143519792572331666266009560460621547790412814295689228591642426557036942285982744442133024074133023653370386127584897498771341833133450637770238847248411954550340870451023186117820393682003573634303233920671394624785401624988311158718856663464607178979445154075618392330989461055731353419477643743449959807237720392620578999415261967068775659269964085708597023808859741350415953137190157752570131109770804256074512007490869904068424295226414746791620915918135494307815728148522926066115518107305808547241991702513169797087755340074101089948346741070969876230496000323727493711530712346158455452277359925758098485111359880228156194579884585870790187437708246960366063013461722884575916051365119443639074271387640071340859961680613818773344060665111167257646098511720716793156848506049405149323958920528671982677647678137450902088427115311184621262089194278583428366448389306600036006684968702965005211090890577702717497640999596351095128474414252233586184188290513959939040692380284179164299453454502949154732996405216740611358208445004276131127375376741027608257366320090705638936636865484867842074997963216744733302272167683040721008215402933856521095903249584718301402426155226164194318839671780975668187155440185366641152393456746965737947813853395032474935530385966580751691936813723284336940455498592234917961624925241907133703352900052260670946899647047191152423460573485565853769355340827633717205547777819480697928303926775761236347918216079601626929879565092619219524238404888057462033721050231190567211241920703655086494631187851508182534328781891734479367613594763257745912601153938524255561607579258572262206874413111725737212246340622096387131254250824299907057327201871872045024093607923451379158003455154886918718288867822074208460659407993658572130365791532800623210017742035810520162431108924589263055187564817463607838874475763177913570194105704617578377131635916911100657033459412892853749743864917187201353195143899664953264310642649506349256881060566398339304790653665218468239210824294369171611087131794766409424507580739950908585044713476694092175976589791307553917482329670051975292087831287398017956934562195412452852424777592983834162659124322615788291807657981668863397639293059548873406036713554803794828339289485106889012598089967722437892232628767266190238991040698830438890697152588105046410471454035128503465684766515432379183822609425927333227756039158632900795896403364858332873792203459132033588120204568552935223254796725156374650782583853898441026200373952406450103350324437422907985168545124465340768696332589018471412343985404629098150062413175560192939446913918269079068841883848563191477600555338391783678471979285830694607267516309035768497872808222583316660578586829806021621174746910067044701824401499964088668199337673968853919660167227712213508708308193971476159994180371057370419640310664929885670204704074265238924389356912804188157789062519080016237856581089177310462778143925179105329415005236730905397886425587293324786398340515531259993533535459372500638110925241792838373527110352466966983563751252531204834846719143909773136660961171761061877416664528440682058563911303902249363577232423726975287728275415806268713420908586582808634218849316411807278878056792360324738469090148067224577964540058373688933158267499916145133081160633504548799032084756726796828403741184272487292856944404608858360068533722880710714879153663764049490288073437120734535527013796629410599826129072885843114106508588281471196211071330260570621906848350495514600992391319384055038016219385375103013912256691808090802953113391653070100318510463012815324410260740652273680872719805397828107422772313908637881522009176336995016326510256159929191394802652312084145762792855140546661914637671132722438572356975310161333703522003109055292397700037248648211296699175348316496235064137264413466109325206854183798085438872503245514824461031323324776342508145402040728864786578612970861981362057922595201418321683067414043827578538203571260740569342450296290619019139528084228880768916510155379615482699949582361642773643853407652801505927250063443818671146576136417538037520766342999811077220453196407246155277091538884132506622150704351891125270176966198975964778130575185774677378826575245484557810985257399911905264493359838659267793460336983192752711908061939331154058826922524479956536338647553344752614384218875803333928918261646309164452844316509857342992136822368312908127375509326839878068636027214243640135494647511045207096211282007068645278316105187026169199826143040793449918207401032218185099935516229268557890467193264715565609113449824465378568378604178014332682934517301293866337891184249987653503678286283776981951500497386804620220439430070974368118825572229226517250268271815014631852725894838852256368476184208731492421062183259422187809462141793804955426940516067214130224907101587745605211633812246082321196636035101498832133303095739961300312740052644026360270424415149687181808555499366719329637410303984452770245340513452044562633897589339107587641178955115329650032236291348874734070384606596075773276685898053909775659157815509252553013528605059677164007287287694153962693180291448538264159842199365513954084921917947615018904746524151347925609477803465918010949335737231921325129675161387932541786802508911927576982736149409749233609277572385626796566662045330970999452728182659325727051740175642232718630307209977286986163998304032420484629913568748738569432174472732166731676502469243627856505223160198275846741062467715524537078473007710404759614527805157213474807658746274844134508029584620759362743167885690839627310503732685416292679418356629165078334732028448108110221390811508954852486741395501614400545102923409464161504303992572831385997660773832715380763512849057106547125345534925486451993584143620344373963653156933239068547557733059984397543004653018338324310461481894122090832671324335206703350682417840271065041816470969604331174274240672530625161974727062235541102899201536301417140501183073866938096463228356172565671961076942025373826761311994301582004440249089650801145578797874708634698896605163320506860845784504441789705934784643151312849483556166377302206868237717025922545560224450815214485637373144784528477608851512763453415390348245359686521106831216659457806751081446731893737102347920780524895410574201696254998946617809671256871877703167535774545379963154313060771810089940043626701504520591116253923448657573734423246153865928610197840533444152318219771459649272176027717823147065178626054109613597457316011107232017073560818689005579733739337021818976339191489538696136261233500837578383179498468698841012426178991493101560191702497093251019042685920270870120102299659795765606687975132564918083749383752136797552826539457310087446918320402830633987583342011296786048966857646728722964136885829489337742807008787334298803848635728236612240562498582373621869538995862124434754090127407975303165287267267491916859009558057371129229260937619879043933039937128450895505655079833170367952997506682380196432025489352047618125766171632674655476394280215635117489429320423362498473981109856059665487833203589948137909416613918674920249688207279233855566461774735435348743485174843010854566175346265126450016220554413256606219118237134462819732579350046363335836736976854874147800494166661533025272613680697800380810514925403261147827636733344208961585549076838259805796089621526592090440308789797186817090527377940662481038033733700554208374773517678143776569011803696869788953123586341690920753109772424876594770930641309678313571107506562732119377013052385951861228342624257927536112158939225481647062253593338201567555396256789583417571480100384956385235620874958193039774465529048439438305401247525595978457803280054516525626997813187072196076963433799641829972424343278799241009405580540392026392446363056915433356451222286063538051432910178493387903349099050162346227291324907545058686287962416732988320388374022665927404592308747737872035078481697444522886555986484943861271308876707428100925287059908833659704493983673486477018888598457507699802983479527473498352449988208142284487317761864247268649547096375263648783258686423124940913270377627625112873441423814229181126963798937512425839470080521470208483312656599369502487267023731762328931480167188370610102149009721711436855819268328207119267464673830360210512410123077158409005745899556510041576806292182237045646735449497965334641526360034797859868123799220986996355046666286049836282668871451503216759495595005412024428716545435025963099173200169790183816968465985823570120126349767606358828292365216941555576369669445501341294881768350973312781439954303370661177521227331639974228364373425240068430994332560276430136621596298160292940426191844192727827118994070685642848182029596984292208477143446017116964438672285823035766427589188909317788984291182175283515387862176172031156608597579513486581292028471272722136458383819261041062919511511894605372093985693426811577094202268376472378541453478735362976212258106464302462061250290535218036831789590948901284377993990314334675025004981931177257465432747602584599471926133411043745855587723894063917594806975567722550653076851846774056774635791443512040550737677567456373325895234701194429322546504051464574928542798305165578139811561069969156663289154809552163955666055763267140566230020991330076261785293090260604398278239198945260491297539554267517446795825653551326548663768860304718940148678121086363650774721478914022642666849980554614473281849347634822903032366631883118126657386526519878776969956223280267639162482893571341124261645376728011318181503116059303637192855245498599038381058287100721967884452582435751674869731235878337885238925799802786596055622014361092361672737631696867823610914725548441865382546938332549933478407357439101936786730461631938174224991637498463538565105055473326677484963122802936818057964146580476491583067577895584330090105390739582488330721753819308163411012986251080045232955121929840721041181825194598135242639830880632619649208867726182120184415136063929955573148050040243288214725469283454933006693101460019417555104406429595691717459913769070378070371110168104963806169547788937832995065176344423755678317054063905185734462796113072012587658150353737738865043068425674136549936891366548247572817352234354084669592808018009240195464279536094224918970754783568567741089394064726695270998446900344894378696135501728695201837296541011467598622257637467943478967195100537975869854611620519631249277596699851810071416840819182501986088697399262544004521184945351693753940375229501132222454552007017942208552035903560984611864769449523523623544776607312954080038280733851973361653831450301875656488551431365821641578013735293185195648362183138192880835190065167853757526903397019227138972486254009764831334758900856826082124759021256428323760115655286909277265302779315987697448033127913140311259250653589010732081344051749870286213685153241416581451899137180141675261344022652861139200703183135517288958693319405430790599931782697347714867659766955595118893389280955877845766357876723008360254685199190303411539308723006088813078091660320265525166993856523102762923560748120844784779142161434588024707930216941585475940732900710919895500070225054404327120230412642758990684514513639841699747952064539203914346978177535448028899348466964243036935588628607723748326029889595496713294501353991447818783700367386539263984790139602521569963697578203636567129341954951094160112249882798365515739031632741260612727636989560389118245360580250747129536984729412932882996410634660962618717610236093402217294609446833289760088587865374647516441933238842662351709462675853192192189915620819214179171429654033630647274579926244736763281091145301537694397757022203282682713720626558324942781231451892208720180398525626917658569500019142529605005508735781445240748027020873236842540942538411949576820335114663606034913390653539065019379275524633049087268492075134006565565730735838140333645511981707733424562458101632015190756610432322930170678667864926038694431021407647159519617007332779380843654670709853667314972419973146687697177788238494364697167648462701686271252741031569185827283802696787104288740713187850602766495992847229098673486106690533357086151937709454665701466323466696813613925974003624216536051313431234538942825670285517817082134738118946300252160509292653581587116629165855879899589882665614187116746350791073407168572182199829713582075762042278400888505743490038478268795516839306665946061753353248603013675927025969573942724077541815922457697840955452593439762421879625562727571889563971481657062772067032735237089968810742281766209918826939441141897205407310350224669124862455796326672544053449222350991398272639052103447576524749991448812440542172272810870990594935988780295387569582888350521137524770868504958112803812993714070669993196493070813961665346993810761905637955686349623849613271066424435445627599657007630736172258645035358723291765916706043983016623300067298486539511874244354051637776084187368147359948866341484043092224194206733621006107380346048080091421610739002322883138462546889512664593706898466943026427328683678464749970240016004305921212592424170161082423277832901932898937013877857926044639470807049351744595990490777816087653810875123239743810296335078289557143613899055752091872641726198386242490235874719364168410271583022975069610233833392450489416284138969218277816217338205592619981359861744491038101209665314381078190867160897641610599749299683163051925094487889961643947654434506399860548072107686331534201582805935709830187583095158135125901754962678958668063431381741477537491536471183060028222748263652050077360107785817546820916994291175649634918530643947061447759082148098480024511515489307064893301044754721159732593215731295128967703073497969399174905230839077146920974892117807948651531969383094748343480984847848383064447847335640108173514005741045694693505399888387870171365488373447515984767494782898988464164118563209808598060135190520558344148076048684561428003849753457293475126243359578504713415675775524629306544844603934137487328033810842558247814579465258417306397752500984936776472527131598622291636427799307165249319313072528099297183543293867708361700373409150314688132380423433575595076416149475888635552913443357448224333750973846663921733037461010642933349075121758725207289571091941262760250222499730592305112058342990444180666032132895653915952043836538833881825570991066160900856730727629027299527673219609051448384939586376415141052816240598506006615586258541394938226331419509165072616086249237011703406610088581312756266678057777138677874002997266380636201389361551073571258323641812738685076491710777088602276058822206079254154643256190858085157733710892582176619110690496403639309879215119045190209948180073138736361055050375570954211543188039577788358249211360494155480907683209747403238447943798535726158572399633020133197361578031763908076031810939371635120981382890294416240406871176199692351376347535577835757161197741750922243987413766457420774354671383023792226794678790458489148613377519115806859558818695021311451874040897325468536722031267813899187767949917778422288773256343047175927425632458482470070529382468323328519017763477613591332994772355861091434264324474148353230377556830566432467436979488845624410801461764600641578527103727334511832604529193462227511941419043155587048505159469578281081131784131377248578011699897841419026870356538814972173679177794109965928979077566318583462930398728041171096232559639344237395623478635642341582623804723560217406843070724053474798083984442973572480656000558379921878497959167619571527791360820386301377085563764876799848924202460291369054839693986141532795914051685405363992686712931872074375165174881223790854252861345854929946998807775765430192738524333666634987564524769180156618496198082510749963707318465609366700650047243077820443868330017236612845590308033208885753167800045869936517715689337404664783560031215975185563253665667400718613648323933985162171035922474597951199888640259178535837498135377840800201410902030182800864261239418496276489389708272965755927867566227291042028750324058967435892160299166930574770017231429064238051890201483106657947346494614272070830123766256281934978807293802157597206140567270750675221860279148636296993052049632093490549035681561984280353214234262289114013115712169837410095472260724459580768503209313905984078664602644756591629793095027365342018115442442708488999671619882266622729357494907819771638328425975062815939813461012462961619793534197532057846994084211436531112400460305010824280416348914636236437383786625661154432997148892308096253931979282838188579599894710465731799078929960169614770955496567350852538162991501281974546434705383327905376087005313237189288250043541086866448913114866947051134083490115019707267798239930221260642121963378405128686283025398399561404071206358629884180677583518749074084478202527813451008317761585940425836619222061063827804411257928089255181405298227700061766263802750833005698575412110581749539395118895639130055042800966697771954673520092138034828513715686469929967082115946184650267080328559153232990099697332071205958314919246436296995556195845140843465050731474458112548930715136069280172784251675918257261672711237120761332442520239453958863005883278765197554717753649377878844477244235467855973273631418067820455663773813096770964562692424122670801580385005631482728706283568926410846384821396014020337620637028509458430742344142194383958513363602584151972870696999444238563816795997475813516909606489108647488242407356218040958958515871288081662027695749667994611287569563318014940668695907200819717687028619932057581097858015741113160644583300274373469104148744736354626107960140100750582962749238286739335777577535074690947855999557448301444516727887187262910604803068537244466436402221529935054925735605970890530495242079008510016484690293986401138862369044385481323818861277340636524173729764409828949635278405175385996165680635816002088545066042333183209320275253500503027811602433377101576793337132283709045782207401574041415691602832578685662124129662388688483439632805296671413112188749229638119393465534922400047006611723419927773181015985568439105894757614608498462440970146418753026976028261788429615674203343694466650110372608471189656757897099307598956732873946089672135575953945003958973802405720377676636988789002795674145345677852321296151376717170373468488802643355139698531375746490463923340653032275881258715407062050180014627340313569595671324643318588891428199885433423312282755350104363991973394179063938706445028703493000505559280852279557967832882152604976659778726061916019501168004237205864929814157271665921111612921738482623945603849425480653819458369927101422413620491173001902128844056118327866339684225159934389559499020314227521251143086645127980682576423870432635617545489046104272605638371108765292429933497272814820278619021078790417060373254397249969465191821540161308955045643107771612432238141308368500397823959721260563405455520299338350695664592669037460809897046936333341371960676031596525412263026128208536828859726759943603475067283877676167107230575042222696934345352012264945214283659604435582218934404734080810506628588058441420119933854605444596092304558876662787419071683545924501724974079472473633170553019146722663641804499042769147175886803297322314529456689795729962663434740020047127829814741841169297989624666697852912379060458495609209875799293258104167307774419740090181161083280825788368424540146181456520223433162835579841373101041181252100125459976140222020636270316040914184147915783500002241689643700361254846550192505375698615641257144291098252995542723666941241002837651223116017499751989812313062418476159144459109012212199076369145640904023301284911784976225193188848798719847748788275510079726391850890707003517836627621834492372228035852637112913799993374572118504292489698854534672347986598454476282669994666357853919534087185496143819517240128811594191638926209845843545516618928443135682499315931853335625200219521883417090247900210330856327421037607818171095432070348188876972058366292887871444095884083750310228192082967505708795867283698845934252954758814710394127353437574043677266304132915335753434483882902312401763581394213139731669408067092797545261800185141840773276383265313532856765958556448538734234799063214293383911040470153290266344703414716465944242983223677061689427817887470077640856539268036717294645286656337703033878166320496779082856145602634852894191474403214510828239613791364519827449086199627417265070125288506512219982565501223104890411559036590821847915605957418431286584649907140186394621302292580972718706051564760775251734672158064717974883669464758594767732696184798421799966716617258462858059539541453183839708907345073778828488593903200851298194112066010691188101799945855021908365226675695850661351577683877078203866746924225018898031010515264091089535786513231253136422425980529735646633661729209703845852167782843784564285947071287327697912884345580538999068061566149707087337091612895535729162011521209462524863176026010904006566793392317348226096324996060166028697939629649813693039293070626294475211770459162067846047718317657860247939524112650697080106349199049594178139683746351855994316551396459882541253828537869608780578107461199788223833295332434114683456850350284845360626298034517481717752936160117531336815688047703627334435948498474208093701318627645594780842075056359259813049737900308157222814528687255794912805928861750850835542577681708042468695281753012189391045951764479179769232451019136990312562251012043195173692348030891212464106588754680113297371265984363491391886322475920021743244720370674948239381289787189073490232843515897229187918818746435249446961659001375584430114453328924936470148187992632607945315567996395064578706030941224503349362060986801306676137537536326536577079258846865605423720185435851513944535382185083687453635757414555727800138525788948517504859979309525012541641378902535538218209459823902175458157319740298346701537822612599557795107018560803303166144826537693996000051705118901176872761025148280325789937391854959655644349298786227440188760578054822345461252180944895358339114013698009904505875210044432468972251016981180421941880854218408248720589848775909116246097438762595482868530224047953753428268370634978624773552023166283365661799219503963640592828817791751389612465462735947312101204783290357821888191749750244983377263477441227641215530854667363943108643203244841881535405620845757189259475697372237439741504813413750099418078754544869152487406998012470078522094242393733369361372103015296389843877940560598330833811615057578199258588481307063595359798425601184011388639628295944304543464407787059330123353177091204486111660901352264440643246547208516678672929270776064544897017406196109492814058613492592268656390946804123480952035206184342210652270865169482545406429681897640857748843607218469387997793756423423082816302065720824605655126765579209407807210552280651672407968750580701487302790468812613920185281467024287306379529467515877342802126818843917683245257464325147546273779492279050274806079431147026946166375680160006825934229737693223006838195318762633457422802851882495196264563854560435896603255964325925259080865214824166186053410989816577603397198252306707601681356423542403829389975551544142750665351029372052399393832986956877722643908155344606196730467517687156346249007270715562394350712518206380666891246806790267458865225135496165211007556445198726765891810256839721563830592149870841734619764179491553868264979668282732137990074318783628476093445161948384735904664632691271991426870083099227261679374755056343180717349123186876631645851240563333565001296716328416933194571505491764379912289287872645843890838091304250024080271529439212244951133847757072954209079279318099885513001456531656147255640647451450466322715848143376301792380837332312825150055554437257302887613892026916324712935729724148913415206627491677420723379285571505685511135893067786373401764231524652799908207863211711095979234346983243623825452521612641150928009633295222679593967623420458324510807628868116675196138074902835935738131919187838025120681254206376972814238973384680534300509182405436090002612802776660921931899729871896515846815505960940523824098101775752321172074158855054763158623594177868847046189177064394416373410377177677239423962108758005373046192194145651030306767579537838849600259005007749928887259791172456419863698948866141817887721365239055774035830029622610033478876042410842392418494420562285256964914756946418864397464429700334937397105769294659324158475488669422376730844553592127691605900382602462093287149975546789432034895849330884501200609921808382704467273428715751301187162115392091673716611574039582786855276637711679468593136773667234864852575498206226358651635878633845617471723091325589964596202894281197719404250994218707702977598478739121615685679537448217127120485452904656130321241812409497261705270107592307020892714420979811067116461732178390408459901870572992738377161158197964693791702321184189076344103670434948146288440706269074374140364713068016527444180282762023766130316504616053401665738816239328533141370815728716224564762463606805729203742662375178319633224787609241329919129845402476746276731631780851366943111153253080940703314961938234233350501326064655786401296271489927282502399910387290174226473030869343440350444459509355451813131294187070665605523905470547620752065018833871263422497472951615975074207963035542816403033506923196392964668632521088062936947989484964263661077160227120584838649751037458255443343170266018483529741464439474200942424276384282151496379264655031168515262397809017524313520548327200056251112272137111539352547228544827311160763020046578724982936843419894356455268956561433382770255716338976613837654225714541318316265170640242110148856335460737624146248425894338317022865810979504208187688881280130085485891212215163748327693896258143958166807638342132572253057315580414833749359717014964102758514233688128778742876203217980862652878014248168137473221607170491126897777126716480300440389509595749728148812105635787639802774427266680199277010216890771697309738772196262671300295322343557895026285317167785492004252144625145109727362892081915755456235232668791769476286408245810411762087459028154344832071851098562730669044367851443584595830752996147793590156876485156747541939310978228218175647587101090235383826688877344507284425501556693372439490044497151387580548086478919942791815100178269636004345833372203955200331254464311117644287265334943512963129783396804371008904907886701565306553914380100080744115578050496232728691642548186612937668797396611305349944651737396215298103690303989478320173676438774046464622845228334541155974274716105044533692701961151128712575470578450634704000551677775013558109193620136203396830502865188530779825100732831857491616666084643303725393121677820662629865647330457362854370683714965682244495003121521123792426528253858253012296940323374054526506544262151026332640610674229117352513361671811158506481063034745603138149405414064535489745519882692254754228107339644378955652286097404499031657577030964081706284612836872316911745486419425629688014884577482676416191278698559115261210034016332916225912145581495914343850633308389606418824565942226471528325321799337015626818644135933282188401827823036552774672124048421114046262982731151030881424882140887069235595861477629530896357484201276522465885345796510161458854063410631028826398037088721536827786376056740357461884210488247005532248977947283099765073054480571176134999169348642636573024792205778767428102353143804349096776011986623889359418364299922841793802250873688295205592994408446164943072867203423458872180092016063127955929220299748035341240330638470531496872505878325957602218489441985547471856224683484278229818171709108143402626512107629463749750203523920744797757914972828798674365964268354920934256811878848707282501345194259270711236358649733261506335986047146711602779347070365927162911152305409575592906383000643572184289040402963581407276858274220877205740350053302702727307180307951329146877324279049618029960031036226336210289774004737260641540229107500560678081841890641669225907008887384350632037525656726958637631396503833647490878084016148286526465559865948760543677829905120775643281128514383885151729868156009698151461510043554811424394220940429443607052764357770317540956286151222277020518695108699406117917000213603100948162950933616873175802175374168489461831137565132414819932894380170622540058588938154691147606907792756562900332348240861842727521591455980046975613660324434571926752693875798539729055733643430221211084221841009504935681984423617947744643739733899164890153245932772916654393858070480806322154113949677543153640132376688927433109258289572603733482526474775770601687552427626976350511683800530330590689341737279525914745513423797963179698161348742657109609316266533651363523789987481590297356457388148872615954425926366725345106650732671108629913024975382666047497154901433020849989077262822310202291793123225209961670512899864007031001803260170804808616805851566315050474506848553303668649926933617639243184104563979015307412030171591744831102026788424624629221482322530368012869043066375944336906062776505567008538528145954427031842368789048690486347482047367270827404652780241907826221034593812875587247816126683278494882879216368700268519616739533530313029274153433940564523525102992557500966938052289513195996557306030759197533465489023917789324992237150593741564168030844363317728908747505722849187337519942548092873736842553533199047160182699781572440105622230072729130596946885412920550372617622486811998396483419657905064375688304629747005547630122908466441526225837799476669787450961686811363130470674361975722171301393846903688308078705189368513545633019821475816462048361842962626542559130961500280871476984122446149797308825956701920466515325272516569631881862916980731248075693122525244768517773357535075650323398958659225697839360672103322829837927583399975026344140006572715711087220151611530851065127070346958802599032139220948021687362749097926953529544388103430113186634337867463320778917427311316055742421844016068600238861302985772876403884458603487296430948907476430743667870093085006498948254103415057101186886889681580718323812585053990065890246006065781854607803633773333666022972591284150366394898935154419363402963050972641459733040684834082949296626666314288546003273570412415348500183042805233966670268155976540233232193472784253549313940195669281958528686412299690136815073262444719110668149031531934797387562617649783228057893067027175877570526402261465243850686034367972617123340811038603401905404590409408309426494514651635008714331217109076421157178123451634351675552626312065255483001484588271831755244827810149737590784218032465751939980663516341333911872305264385822254810806485712531634498646940691506795063778603907842172392384383804208248292101035327759200121827180842124809851878690033773822059738949463220359495955249875989656309223593227451920039112174404412321727713242229967139002173397709414001428698088411636669097633155759572559369561408801852508243951531265365250589701445642051727638001672848237709662020066730073978841003170519883784093094047960667410711238209204648455707545901013004008756278701410237878086025295126512765212131865296701910197461260328830570357949201053805155264753916403003986354481370906454670502310999732442207284018666885901747418930507328213217593341910951965054960586421455506315780320884518285701169235804686530388131290734796286388745465808294664863626188126599283184184882795048932829953799930728984734120478070678006209765350643127005800795259409142622965010211345023416558692136859606614734857982679253975984448009511509190509362158776662649003097750693623846071886202021960764249694103774764161316655847115234542168736582421148031788807068604556444959022627691461304719574147941297223316016633163779148972395142713353375019580595924819390238574029011549100007687978774250505075053892490799276473771162010673868277311461362976823587244119879119179575982180934793438103863451397114551067924330143942567310826251196118937477952649924291885464998113023639914905234727243955878010542624192047336124327591220587204276902284207120878401559234482121804445697985233895996790291740775133763340987969089491046828097969854840179414418286766709857005875697434657617990116188707694633230558800089375621073255990730905561864932526448310741656957085280827338671095205519044109641039420121760510814126518916352225909387349138295798535122471963667987984511284716661027045796795453091144777203397910538070773430444426205735616663487000221023217412866219418043581991729086775071731097829309205261326998706590615385912341762106215417475756828962458765397655614476025031013133811232029676516296765453176892723159123911519375001238775128862526331951038660943607340305941792491322888399039753570350690930992514331937842147465611826525753506533266843731557217249774904859232195195272677660155712100974093774175355039994778112985639110000470054836625247359607468257145545196187999045535723788058099308760697424046954889580933541573743058604162154118629264726040041685127739653422647195573529375542230905777487943908718933406569720551392047512423333989920256205241206877017818318435099969365735299747621641426912479835986715063711606200292143024845937050895491335418128382336464336047457788586964488420309867252532900760210604465557669804847255379447620683022219316273098570073575884408869078096629035291558361777305291475187321421709087829613622403651906531974349311333369175893659693812225402860969595237962998230313454680951636402328452762005204469747369957320998647996327341266483965442830586093908987757475607599929627657319569513591481068694353669901176573634875046616302596570563521224179130216128505259615078779226682847681410560509879308988465156100826151850530071368679641788936405938308795052293344797756489810801945990689049184786216828635198766447942493434632639183974986990674654404890485099812310136312109485682716233748491549734991716143278843186417637621065682060503963043439277026440744762981671283454754762167366445917912048955572228056752475877798369978442549957905019985189783995159877550907686166409273999307465593048019273177426978264169040058100970680505262077317332213931306829011981922218565117639074576789214409036019982872128536311180020213875006964632417233834668651706531038428312337861660769443802471768457533056754956741270304473956040015926240817646612335970558452337237144754191083430379922270475535591125395291608440062016588006452220775077283021349946638805326265111884636844733496714162868079862723978225865276778146130108441195595295114941925082575451733026437647817713025448710214072348072304190029858488649204917914723377449715658395246391257796180106006750567772172330785419154329239726165820588343840868156173373730478657342779511831149392094200189478118421916182249071673855707568142687105271460033708572213754517569985517005191305189047299092706873013906997135510008286921796412048583912488834047723798592995798781668778003696006257295812921252362958188988094737272503645960258656113395134838565234969885685059015235159468056611539727439760896413815217279378117645984214368966607411405385866492406585290745244975133346102253681450493979177802589846913057824632814380136615274180708487754193632499383805843928456724495490604209032767213312191657413971442508817645096153731338647102858157096192101613742357278015089170177393330781732559848364740657733486236327013786035849008282790745637052723298399003568088904067425885446774633577554414929034468971941082720856745675682688702484657628321657773080372736228436611705406331107484244201626315880444583020465388512791804844772980559189293425197810963390980925553164507060830042033523466433412665586029628967400963399467410273577881725052188627524867811171272890929979489961626087742065080226731911649463570046346906201298211548361862335910990055809599308720440534570718244482096232698616745795808618325598644649091277872814751665968282126498840857876137809200626184489630880532484741354575016975826249213352717324010493953015939081285039720037400041836809914111224990112043786532245871551621949479307108978050426884252691610366806101850386857649344568793761399044700641206749409659242595072580420801000649508363710430284349548359625997173532225639756755143742003635371554202108250287355758267061885833947995788550053543321695722882581199227681439938212502847635299022957682669284783699473584867096873683553004954377725592477758162724439000218699752073723647219818581467036693604885896416767100402195192521897011298779063316791428204366102556805374651854584650781048291897604999175559678309478963542527141462776264043934774817018442215538869804123403102638759260562369952230809793090211280833635679988807291721568910142131443162877605509832802651476473640489808071679181971145544976673544609424214691125304018290548454685280700645463387042519982067826470408892615729857359532652145055688065682269576706891864909747155748232545034899022134583961773017512901139467365108793960001534809492059552751220121483374321687288022360312737080871452249137611530952594353295417187526749865774766617562763506342160042547119024870742490698093319226930358202563646757309253962839862599259444313280751632653672243961396839760935832321372791531427371818189729251417513243518569761548590457697799043443026494168649911806898552155131378074943505967815926256947888493684382021664996748523151919528909797665359237003176477258568417354239146946715061655327200462986381301517434279831838282272796988821289479369952528659315358595678957290001563139183171667974300143915295524572781489228082977354453940189516542312843997258498706613865033541118045153802066876473763825116551830144397437143153228887402024929000772214238437585433245911257709382056888567956531424464015830574714072166199941521748870948275670167682354962185890037128162080588502586558485411238428417218977007541550488011088127667140036019731376514220412398373598935575265476276911177819356344953011958993638335019562389607885775849068626891911971551945153473578409239973686230844885475883611462584045322486101199531337971857107737873904782589225860041810184597079029542642057170566887329341786760438804998877000556047035673158667015952085655215479653752679611517583769512392862170445397655975278627614218041737561224155929031796526313908451050580030367467963014782528985031719353876525761742643999008522913633854350213973773037753025230941185148987228598056622126022315528908861615501747214691353626792888408251174179120155751466549626071192275708212543135205367296692488432243066637480388697582567229525605431428124958888473544479114336807056855206487715533416427565148153740152246753014148236179557354520240272312933257409955936677630583787676553379044741710319791528700633993745272448215422780242669399569895548275443432558039721688644527353194488410767365657652136285406369954368995311684084360986149549117923224285296864716479045294202634445693916354182098280768411327276004963979445186111923125383779178967682908444564733697266118850215609452960654451156549632105052870054438381945911158984823154659423415720791701152627962337238069405312258790315275995083372480644961781042180545806943507212270098440771942463972078130142323196895212198207129307583610678804738181994046033236849745137385353053186397152583102683583758427144835806517353817203332909971107520198301015447358302607012516294006817102870203960948595295459406739469244313681919549017259804425001196557417112839644124480440112529044478734150386730551413513696368980442232959740146767118573165724014483221756954192581277650488834330778112541086076704770185007697678906251028449111699257689307008091537155117035549580566391651026373046149071527634455517562728849665921318856041084486431684009146999231500777500616865036309719936587009592427575168335792956703381794798638175432726605796609921601409930503783316239492124502947510914235923758874539276797883728840961122436437016635121377827758796225562010129711387432761322285613160497993234686004990132718281358123846692523408624755982005997255297414916694828773493427674257590394276041198204546779544530044746095263719246165783690235260681027843819607889438112350741351700928018602021656627299565455190180901356517514702671774991413074046322535155360544497436009255796097958874409257342355404070024890193158242001728283244146253239306705545955022987625962447705821235432071229284888550862488269744920202091758059893494826493219368645609706213193634333950738997191489239701173339886848321573083004194680311486193884616157804524358039547297469111138478744545645418895644204148532315859405515975183719698354784566695222426791481286448552827522883786590972415831881078639855796422724951160799072111021340897028541889345965682560603765392045712848171969955875635747408469990609034814771986569922244572783703706301427866238094321656963464341589901304159832255047050860507588921120763983615545719177110235369261970064445346741105570648357765294427973914676094092402039103183972725659457536142514002499423182930246413877654762607792771737979558939562182937148058735884724683003375030469396652927602837544554495885766230097450305441457526429976878193809530798252856043173959596557522578501716397021213376252304634924314625234631173841942364237488208632419070122109095135719145650279103459675672628029512350898925149821599149939506495335572624930026717228595036860599957891031249208243441663300548000663439147615660983723303836766394802931667187771691493011536735435115302154924116936139227067983170432631951980142724338619181548916667095806847429666722226363946665022822520405215849977167905293808153108722247561258512848433650496202368805686230098590182461105787419575086700445602562645803362114258204893678144432440990088310737941175889425280567491567335228756867161341038970267573001262950592094097853828212652693555324794748762129550475972730670088267663892256155287208291546098253439047908217040221473309486658154294106909515858987947833070493164122184204871481207051428144584180564451102511731074192614278750606343318244799067887986659804219497962304464406669187226878114573609710123933062038079346940442621087743504519413819286493501480378978446404147282084095062297624854754155591811031415481092550249872620988648314059389051379074523246244219101402294467128352676557572903479427863647933742875115069134625490410721170149639233067427960862344016740206227204820106270459807744428038783605334905766726858981650510636360535662536410310534814229490706671764433217895986682155515799913723224305272904740392821692841430465099678218428286342260740514566694867586313252563228999509389410311672218269903295403178437999453853609775791964303554609992944035608889365771682119054799383118218179755089663413265639536831955836165692923091235524099778906013882576187445668646966320554671783286490237612472061588169287315856617758414329780387864966902307081058457574248603505135370010401680882235894573072054886295829890603738306186712395965942619803442725377674141922811764665300693119600899075101731288579808623837096118403492309444283205880256640527480127352342842735547574433067531879082920246582700970849204622275724323726379014026162614370031827509481568671128284041043446960193103155179354273303323278872198800778600024320413842476537993308374718611577551284891089901555150400558647562642798845100461295177380072475550137007407117222688670170081191880792726964450119425790089094380781459409755324627236173775640218982878782081960042289846064576366227419347031545216069041827838731722508740159664767823809095129552813060743889759787292242140815720411829546280692895017668227535320942572355306949305328773396718955127523783058508916818972670944061681048406180139513573527357025734592145343999588113041989387251062568211065362678969343711075563859979463750204764749345454834403497194996970024474881936623050720889013788885795319681268276140388641373518134912370931323397355563358079518585205065641584437352378676854987683269827930162981923266052923051276759227927758503503052765221322331926737108361635962811587052509378982318894794992099695858674362992918555788905570107474955102376394786667828931581653079605331989977501455394824471418537405779763074337474342056445743986869301523899319177321819033826867749025139967728580350036248538486441182158688863582946408478038080160039447489380352826234318269327047524217068644871610485341614911033363967504090501913614113129829516913341616472988241587807315522526743619177869469527304792194017551912368135311756013874970932708330780128266702319405340542563703919755907510098079954387534646442566812364587405613658088389728116438349722533980015415372262696591102158492116178503102255212156247887420659850730366139551046190166808487543995070976549572033042855282269788546861382855636249527385414603580173860758316185992028241748931232530632733449593281171231195492210535754479168214621418950889440571716435681541647596068912980235368310418451201760953666944720914575203031404261510464447505228460362896613292007497093122675790651621057178390690144454704470987199142976631914341315302162448812561338101579897850527072688998889043562493114638228581841532995432304287401507976763482007584329394218093056724983214347937887622286267653229643251075672589934751459990892354129469617361073814972019436969495099255225971828342505735179284482561380884404365615053125073197554034696582501131058959881844763182329773621209653367419486789366882157060878129378518796882096452927502809290717909888015319382515629629173161920149666457332977818300658476622206730378244938458909567222853229496566777547321318194866888563140246796635049844934648992077657685394510630623752389966970791101835335109200852959572343419121104483251064015026832853065925688714520710835064437199027635275275770699907302778239712803936039611414734326037884218986709406817144948527039706331798024360260106224722152597295902988323193363428036202818365596463882510033014515584209542406168279513109439042793970804885224297842429404769262989841566551990995520170248175696799830152190393809847666088689130330341270741460916903994071696712360461240432304945330792904335350203969852631627360372919572331660993358331008638919346822564293390696988468421218587243265679247980060286404308446370074855780239480076972888022285500527862906876871549464787870172692377247934483041924537325654400814175002830354558471868943195754900376597930322566494774352166243036268317874058496975241381726082864515471354715474734968020905237844212600483838146622164222936059759091570902971983515665180777239559044017358074800513823676889013286512649253713522700349993880359992309760619091664375309191828905463336081404608516012715222992655593609606306466022176403316709348886833401868078225982982187654542805244363034798288898909761999885547725996829283506263672434184715903733661156335512808085640683624568357761317282867730985659714900165893740068820728698498542824559994418941207422289624589932292047295723741496296986988413495472649770810863776348949747026537437219212980070196261344150607522563472547711969756498016179777397871283273241053665564258888074137984668263098790190798828567030872011969956397499491049036710628100088252478789812391727876087166364826954178195704134031013368048589522654124504330373250654651104094166717532698903684636434830789568759393244911650272086884022926293728763645976736163269136453940889124242247362877377769034136294588940299206747808520056226393516942162149083294750101407962973657432642438024566935603437111289743942573584949901444770375204074126878687429505598880321065012654438570793533280894558601225943288383064798459708348006932359506915036681728940411916562395373112842713397650254047211687501168388253921422072097408095338142486082122673319440438730068749678174209115223653946990484210555847051336162045044195103283525906889225294651425014594575090670380169094432147533736530864268521576843788844167572924851152238618119344620425221083324982161578215793436099910950340404015874498406389557923229975349184138210975400989515828999782461266962816740176626640574090558506884832777928364415939060807272101100205884162970050923735231351254888250149824160746755984665681122777283483225222288785592699152815410412950459260848820604149880992775552942468284657258223366420776565102414381930694539560133429274977860533421017374616212823341151048297792628456742652363387464707931629996765753118481664930937938016878723998174227136775741985629000664746620887658931795425510134579103020529028374900254337593282146706027368498275493586647200546610683747035916405687925745081905809016046679808867236237068799741659440568408302479773509771162332109532659917880872328069370143953720029526874373669015835967463348739926039697773815736744628273562522928922333171841252351080677358087364708091439678835188093104792270442868150506436286798747356366606819251521652073759669128450306209269466149512040334708660397299709356378957237987405660917636919547600931724746203936885791513338554615587689832137876734909825980370300950481066514376308585426667848892067881359488462618839925921570795734153209162062006038618466862055272661026506189817641387519843183429299938118289829724989877396726511245328973452055123095202126795194098080147941363158942120306193975579544412538518072041759760299314569692799244193531351894708998203206502286101537021218038848796692517005853062008477777289299860634761317114566294596005656722974371854134134554272855973750575864715192264134451589200205828763691361406957021134932218478973352808970062097763510940317177970185874234829853074963272550226886391203592559919174800764282350195303693791382133684886970643455352982181375891106561160022366612254939219197901965372092667536444609828106571610771718582410793333299035737903259141784536437552915896703062542454984015705639494318131536258301939484046149286652126806162685008859503516137202688532045170433363854022050972787753564183095550033291871021249823126579308337768263045274791215918703534725435235388897604263010209050040539652592055292144494627777453792521017588574021148414080647811490403093531561052141357169613761967197235794631483588545448795126478419272508590738730873498948520543785593120604497282439739342571751855902267165866688092997200192190428166487134911506441509476629815351673321714898971162802378541599895533011629161269426191216224172379201267071266192059882617789256081151071335179637159508510923144555195919337071877766107723498041845836561988642052853006343124405563369521913231773319594576032720202729861694229716980242046642629306564714615498837466026362779518466668134615667774599352397264917687859104126725770414303207267449391993564726761902462559706921684469303716113323891546839262416372898935588459233636875123708649722375324976165812635464941780179034869366716358301339875418679098045100105192749818742262004847304507891720703159153038939617617616842690263281988434701026420873325929061840418803899844984652992068043059864166165559087917753600792127189007204729471545242212671076745181894171749863935450310812342619865157253867646999679523555459467903092871296978904246448256562480380921343888218742805774061142790377540791854448082902908051335108041521871589895410992124152786856507881925194453050759635848283196595067025118196183365614711861564935512601679781869331089967255058633552135429402620689851270049545659587180615684789356302265299657326959201111237090847426201742478319850277601753810735313355657770990624579816059864637015545374211653442208066710534943297572532371090139986055310581405858802216271801804965098584765626474563609598559634421695349017076749313223634617783501907737434758985245087187996981187717464807507529916251043912179915874730001422627040319196522502656015184924077113315809362343255130953096095271049543216538699486098046352792240898666315810016208625307959476306961378635899942795019299854320376738237177770387443398984554995833537320605039987285664629765733615065706957328469856817057041347252112306281665934297105571057993984223266568434551434383369958102909742456756971443055696880617285089167377698045729917294061836443668384850327210260333977605086737904723775870953087232526215539594483628359960673610329510857946023066808243733772032921963423117671463658916672792020425094874302112764992264969539347813011352560147860556332021640751923452278991010758612134881867695363595308116534251809087466483927448862145101670758507484620048944810883127885740764160139425308697920108035817815352169806457614320717687196972029534253395246885283388409799819188494772375600732526745313227908575087750194585758324183377809144821834088346855473959592181782133662572200345068009924380511113164348996797850186758119789249281202648860786896922051024607867740131742837523133248966689647634736935416352691823744666596569254231603154694316924237414793545540275077214759839309717253463619962164166404438494756613439843161099159660260010396426669501844864671134832552703845558060831438880863705922855790500752456229876592675105298850317827950343693765734103785983541073591461968296390682334280608548482809309369291320436836702666848378291493043776073721952093666861401969407323441984949135953596082660605579332526862150207679273277238888903285139465166504122950666944340566356836788280087852329399680860705503220607112312250691685549833508905781084904163740858615772695696409462844047262615577332116174247151335436799551371565708337649588701641727601210754998407080591206148445554499657413527041445042876444197674034822784973650600363183158753121332599437970793730874258561478319672073525935351912144054042452988267997506778437743304905205446950563764463597765858819235852818026168171301610387059033653104334715745054875361181412520090046086046415383110482769705520681432099260360111228390695543447478284146655789439844956866699390244614846722837445485420797911143530739430126890924129679109192590588826623230177022823087498273759296358183139830618212177115464159036915996230434961166227029389075700622783212772585607790099379238519191404540532310778145345907840445521378609465908109894627630849482934345919587333252073446879437393746370753017821027344222968568417777138238453767625770901307105158086633756227345587322619643004207889396160928719013214012977572202518818096319552014041302559662471585137454374291096728584442276213335857517096561157593538967476527292665277768980386604084944021812209862192944455192135388904781352517971073522981865426524427566274919647503104033880569986154718583404711416385722801753182219192076178332220178303817503636916026173706681600000251120210190714744318424172133855368416115837983565118333172794262152600861429535540100124274097742473632029668289527275246642038424954487833000028937079972058031596625203195005717817481357120568972209731956776217013116555491711108042814073064981940984656548958069088684969990162460398578485940831610202837504540677213275636551926523412423668165800513872870332640734231440079074861630828524173576402723297917535276150494096826410503238829730409534504326078106749187674669022011669833059255254038484242703515180481180750114586813260083454475773998270741463305780770262929775071463605533970151719438685272379748135780511254278819009116683022556195962328624122660208255004742677837001765600122910360048904377540505584254918885823462616500148906561732114688553246997188260965343922817473302936341019875249544622571093400848487310708896640583800114717879225437901943031544142582588431674137619407021846993385480414242011201742595390857530121843206105446981026593884435472080021320126517873901974572108034002984062710968867220560033552524959937141462190542314559424226421381584870821374655056476824146861190356701266845036167542840724701332813151167465605291754728314689283184712826950974695631506642198725875579264786947425643886127880147894092340547901986346311063613809665524424559679474176271857817434510419541223309222483644246694218357956038253078904179835903920302851807863606150234610300251478054180587387021700154673590794796920162323886565997364157454398358969736912967172129663571131982423786796013063307752060474744882485781752400740570493526831474154254012939079962708069612584510430966916282843018683113995985229090805621235572220921488362008927548497891896022351729459872542779124601397963887101247972612615811491606814085928807604619889400115457769226354900390421639627025848535306046974709375931252463481574917626909159880963268188295005509696924742214891454191978024654280883732616203777152308701233497623427748179997695086485639792319053669178956793914200339104815535270245531612269704602778753345913083454735171554650150638051014926172335497028937403393630723089576420291223579178858706404664015398442566118254187500280629203428644615630775603614462269469433387649001560071340132372348235889022499660775170922775859873318381054648620018121934961076886136935163295470151877376582620456722084227798010942287329526280338246689946553894930208750725772666072158685311332624044563976774345483951377188730514188703365969568881792422192906602647042286388189302090525304248344016241149131718990242459936782425452185255116423946779028936852852786445543557917373846686553779388014285030514704933102313883091064011128983688670417328690235166535150018812484036718983580004692609849497730541422867374797679861176043169795322414131622417348140477682839462266652895234105065920955677011479715872648555872092277051478217465491648603240416798858996008767371737059980700716523284544742708454282419025524437855217120996880685137083709846435014964089591552631633555309768518724214316688876423628724533268574831853285987856389428294961549910659396101014717459856401610319030695300409742826545613658728479287534208287011265557384603952594142054511809147053707393107988456104333437248380650203135374211830954101869690116541661755409432445107157347866092590909493942521241462321973341890481246073863754648606865118318374744718373758797874076979174094741422738315237120617264697023619695296861151055590417718507648031529942247359394805451593269532926799956580221311712326850118645990258111606924650754159239168333925817143112206319705266895938605813724874581818400220134813793293570432405533781729619103607696308699122179786693511130247260110445510571778838940019574774224144825326261921187984660295264330621529506543696257448888428155676224813863480204658884726655050190345037419590269598384810448270887523249205727927398802729416472081798351514083963058029082619933240430681670342766730502606487735905507457406089423758779715368233075482893916710194949861929272277247429614983321473824591728841091590889492056750274056548985740958616123783620683888373096023186186459403624624182810775627343474128420807685562988682319290867062092711352225228997833034181816075382728630062870960380526928884571796337206576892378092187871469633924904820686349753753785077732014356644962831938250970548707865092326160491913700341942176783697443925367829056614536066189868742488296249860886949442325594446226932234068077905074006953221344498104810349133701498947939288279543183276169474201045805992190739688770114405203671985986641308728044943859727396434232178378417709295432244796281915183151106865979952630077208528631928737906705302020026647487261633784621474929052960099048668567409963572022517751993505835780592497497648328855199843687738566819130827296458634917023128446148424203428491920282927558553182225293082672091197290846813099913838248957570750395552966221424969954598227248334842244775894177028027050070077146867149360181136935435314945103831440222533959680843777198034976238003755126374537730666051724558695818193499261652311112739712879759801932155815501092830626590675284908019925983913257945583319045954436800248049465207006150596606455491992975332744535538848464053026494772872847981265222523776596932716637240918673298474844564826506513080320108653851324569961959349301084115857283377083119139207806311728904787948171750299131081983907391243114452208814201359496523542790168716295943753386660502650012642025432483455799226637370116441269283677016565798766716219920813991428467409318658447604507801367940670304921550491167791932452336705299715067726996328255793987650447542749182745083609433415638658928436809371060522164406952761945071434980983606503764317154436671037807035059788529444981995173776479442254984819800746079067588636761083854871070260811151268029915578849280661738115431044384246644797370837993110809778484354322304568925506746683352740669634564933070495786283711453442949236501892932846806764489056174625894714354183733427010866463255347835826018812060279461365241652269496787313711374145461450991249672042928553188581061893698929551546902971930472766094616187450890928689964878481130062136806734544947174977339249581092643963357927197440076974947590201486943045007527731554195063013787245331576305673118035670459362211611457477354612977229448194657784600487046138478203510516112124432287667676096623773634198043478689128160054933955832478309982114338424012742617294585303679110405923784973713603364752792299498357754388861269519705977467022448402935047777268752161593658041338016716403413151998101319493439120444234418882909609574426733778340035107139115550844367064113212978806973924280390465547661661480216735068826257892738859436014549986134971415180367774400729310678973084525408773737042611465312827965816853496865719903551579999226886713332038964988282796381598436043163618610087558894957683285509381663627895943986084422551165905081540209937463786400143913200089803764814188925214288682039589177093730513000575613696321850194106127627820348708560263805208794292895510016380749440209756014343268908233231760807458106538590602986173245451871470930681232605941276569110297894412212907962885074097940906035666013294229201232603163712873829125827790855357137036084528539526530646142948293674263781079958183320116195600177949135733058931412130772081128417678514259241976332760630254222010549045370418647768399138878158031529808926611193012324630634281687201812700801517177345636247736769144386833395825427050206382224864068883470742277148716337127858397348420037269159133120224329070858828554443703167998094868087230334775565357120226580639195189120097706257399741846559169276478538215422069509246222928473481587764083804756778004908876865228039183228464863069707044565378049766754928739590910493859775827936309955105408180929804444540174212184809454858632904451538766930972682208930302791137921789991787634609243840996432579316991481288643152184837380302707998287519054979537730657427654730127880487831502519341543587893364805952845406812045364717079367469120835256550084736069345234216623308568997710818147528929448057784982457583397208340462571908034744762109408152110449758874120899949782647089784532757140127509178879146850366823742025543384450816440125929497446868902909582786879702704579155957966349994874817764479678217347945791118301090766522192004472422545316690462737716098920284547773254585124766592286211732112998314948321044653633898881635774427735931118539850431387398393519256499185645384406202095124198949197719556718503557039804133116914394815257448025303162181871462546838594273662355221894647164263884147056021712561696600120260047250003081487040693617888499230972305497913540431252522036895459476937711909365060421386902859709271745649062896080137061604009679738402130857476259354030569370126138465156528871848912313627843850144710522230255202564569948053887541256472288737230324459328334507557408412069410587770702536455288195859538164020418152761265697794284828091837195592909884306241911831661513175698187872940740523019826235589798669993780387898120502713082599902938332409072492137193550397234661326088816802789156870602531277037037212234251173328354253162334515161521888295810381611194641149322744516938998513593427870936729389879316284101623016563544914769858024558552725211399071241004347493422264048518803473501671315157922872037133289792799462235087471483217759050076098507101337358830935382234624102380904331716530743097802825379198353827665559949453535363756229058776727182326772306076334304735689954908206312009967545496995663233483514359495589767276338101094369259317894345633606434375120660022553543322184179583617539513177619896263585037483415581684527812836105669552072799396115510767183134458857128210433460989199020877746963691392565191872438224306072964701538809603883758663228575942272215497645822798694687241856327814782901302296028409035450043530658777133365199858554430644544367958037010383244505329353031334084880839590751161969709730861540742574084589261996044315194164097553541015460711012574767366664107051796651710600030117359922931114614153036080627442737017995141992370222738490505758769755680709280167300072012754472240895615470519642048428735140429337607265417084718816614056878787185732529308748994159064807198509032866361954275302479352067136604470436504989755855768842891192690525243153518829203033590510201182362444455472737206274235292959981139188418406905573620003418383243296343660830895004350207383671083262483407275449052060158461154015288881028382128613289506369091679652299126812686290339919727576765862306297664974017687378839876186598728530865596930569620728385858358471987092923377492132531995908456076533315469426014045871388272717015058135317793219891796699927938442484089642840930386097331174343466471452920863668902139507959692950966590811167128817919953310783857210056129672124825131399250062407059890909226208182345259318212062555890974233470280139664752481167895421819987299287616007896640634990314358832697699202619089670905109978407152897393169753423136190419315066865604652732880424724324033153491953058053793006400751999181150816871231326368927992948700892814741810965547305777425236239475836176697394837696744401734557950622430491932496394623620692936384081041212516308813987230951173411746360170896685546673791754465808527604807094853227604899046095672501128071837098306489679540372604038957425264841553582489132933817776932020266243058351565865455194175573697986469169659651772497264207875343117949533822653213968680642817003852071711734660527381097521989655427365089407693917201606670455107165290966737639539516123977008325074317342625001335497299794393719663935352723406985523295910273310944412951361402938869193382916123350292980722625095606654562784193966984475173819175601435518161498421360606032214452944277093882963500433844181300530638478597347731750707940272021769874077651484383608453557934739776796303748452135058233388708748509924629456352872326362261930816496677646762976748705616254129158553682630910532376108572900642327372530112216757098708401463469143541799112145518725906641927026281754078223405657396606043282350040258170763050010459048757424526519220728762778123582724353081665535845911185291745717977866231751687032513688367971692385522960801107833194905305055786294112076015842927646374685973904265952671549253598238533056711416231267059252699494084113381694039883581223655065293382162942492101475982530465775276508721409927987573540597801560181109035929056986617698347554323163150664364741125594715166831560799761495764044312392088196478722537048566826061945486767672548999987545249947414250360282411908193588630149500414208103958985132739089994045422413347980702414881158901100035621758831276008870497869839181758547971304526610018868770053432967080177036838207628277634065529582554181385812574114911667222491775297610985621961322897203521473168677675308961273799113174446488162760022523548912361544819421167717144789275774597580653353782506065528610127662101615158433066704022787446315686412025605872194385818594972380816256422246242377935925932131660016734913672780941588275916220660553593143702763146827068160930902757525787352517150600064169180054576725999406965745838611921556252018217631685441013386732908771087408065014222557467903239867790541188750170432893773309875371144237362897511932391689809139198097508748257927832397821345207600950122552268275692934684751170491595447302334262404125092749273783459471751499449229205852572270344060441451978804532817516124865621718107717517206803310359094278212856045064434528586964151648968650788367182316785103269869332248959609852482719414447045317469944309630944343237430296194473638561915481399536144254978831773414753461984349616628057245065755744980174044135760127611195083766311680098350342145958149021981624283547189126845629082008586675640789152988043492859212661919193395856409568396167933111253553870119293845596209462225748773980589073072309162606155318023707321795848656108456449691421278445272045563258721479904228178123947124552285193229543362325808753719305444046397289186798882137338376290812939305099863363933281312010297825164043921636950041832613587117506701773001096247770018567156472898207350857968271601618456207028151968291228392646535987777965333682720821761439633321662610729431531372725213092579295725517840078621566958622241515965401629234560531762314006824041268166247387349085745487458195703056965053338462544314215308730113029608371082945064103983654971973119693352328332298258114899851262799531268425587087013112674951773537784200235007477417597851264602786227393914813797392022069056151723249338146561019413360525169659603417170438719793379311938338313352218594391655673744871573530811164206353422857529162847044552353430086973580700374609861892788027727552099853629194847402448242761831614159933623338853034181686176168299910945276899017829097812470676078917214343521672146957678869377598112910783044461471135585485331463628144709146563576348655029788283549738396682142755787969599763928658321232072706132549116323606191973296320497514794307218581851639655478731683897935620989226807770095441292652599777734135558378714818903668944954636643789430859107488807196693909285677853119713190251095330912122041309381664348254150503993247772749002403447836245473375378533782343917076422447445014807713389291178888800467705398111609580227413360840567538386599132135548636010222232580658253036851656692722357913571796963929863101254092743392007692743704795661234445400873409130404618736687238681421549605601395115967620917625118528760265727551176339153522085596480675710558446050400358689284562103476880508915298533910424783420069496417798871086775480449849014139352467529553790255177626574013494190971878767923498826866468049838342386643447172375139678031390364902872206278363461036486911653164230014789658510636766389249357819575184074887267520402158543652082206327923801788423125018710816425553490930966404824382276644311634589093504231789293229752771083305972202934504464993698260910792434247028050975443824907963935768532153389489330985004883332550605720126482980372968657101739763193034594659408886702212630400761998744018847892368311179924430695300712435229417915237056343066205786393029957510509789427014482423084808161495646854438305752801288269350727834353947380661022300534138128370334534568284972537820283135839610737206272964010786498254925621528241026860554994534755547347620116398797313155906446230812326224360719647261888856238444714427561607082059555486537116453701648651857961957075926968937192202405829229888096393579568044180033715372008502573281593350262858980437383095841346025213252674075299596619461098937260734613441604218512197041546389281390432133455717063418347721566129268609155220787091902916390027192841245819883705962203848467711359279454097414333197413337923678579423949499701114653043510830369316448399405406435895953221999969932364488031684889647264568233838820862177963952998560246869118339427888466469815202918164446655182887021167809552115028905844624901894430528134018080230333115553932961467018714599572647243614156667568742757006941767923655855407439503595913754881314226959199211003030191827110131667332933422764222840872030755529398643622484280116214515570200317205359228017245821704595953280144706257159203932221051653099087977287691844964716085263418203267080292500985768593495511891597219983333348369809539715653760303919392232166942781963461683313034815106641800076829334379173504064105159385071172945513500115568984756240071580099769925648455687291967275939272906835748033003829669126883193181585166408299863560358695555907774227483079165436522243205506095492393640214648434722773326517157740231028717846551788274756749310907503544678378501667598236472560046031898492112514514332915730183725848143317358733634245206546284356147972292142533814849824239798062040422880646102558763844712304891005944702957348921706929414503238361585200039227771853058905455274322486143095849217797266684913509419051458301013029475280462943200417662266077985720519301521694391360558444834487853890657774428206683907875081108534507455385034412331833820279597402435848533360479927436352259341923386399706913946070312100154500777623665337849399188041887306076241496913310736034746073054602259121563893311505380318038910695025357839544726785515850415640966127826556556298826982186599895283250279838691598785265120684778956789175130080824266042556934620735791762935369121204496471436797619400893816996176244432493498457508228014710023681390834219210546580648112293938348209966484926424303760804767634400251334519298318607280587999771429906989260791766549780753619741912581504924460934797996348572820386486417916878075949170299169839337410453757042075853533741096684708851378383256494696918598202197450047882615403137016476682460833653631053628606627272642401826792167876214135833668935344501041200512869998194091792859921097984312603745807639745707895775553040682863017508366117518441452853510592573925257082471388087596518760059000692662886512278134469066299723050076372652482206902254234140167145318246729700907817753794235058941295607311648371294063005072533797047557996485376519622049077883754258229808157209955636948573047653075279681590251604719802532413121420459234527310217539204172936383432093562784924729847398362881635033243020247972523866516695076224890932913653181768787089265987551615434590263411397278740027187523509412074332302552444026744888754901737492072258841324380416921690991783850161593116863344605667079546747124674902981156112193057417092504354682886981246770041279172533610373701351306095712687160072895066258466694069072462549103670876707467365709056467208398960794008844889886791332425762863509857013706681814924289291785811486211987385747070390767095331121588858899184568545946226516776541522127724972724881552327336105999124680599678852683367161011064886674687318108070553473164867968511861243929050153549661952300269216278269887713963958645842633444271117065512503161500489181311293196480823599046910206965692713869243149741973564404123428292104974636829460674657939921802530269659387114248291215245113927068039507593904812630004756011763985684803416071900119881557252200215023050425930595977648908558746881787833057932998845471169848936117749936363772134792280063617811369793635807352470534407814473868395924156224493919831685672346061016385335838070573424575030806127040116334773079529946971655522678845596544420010728880534141902783287801381597062000043155936274519041937770040833821967560095786646465357928193566052384286163915623511881176178647767382529955721087723770521272293117425949619486230933223778307126350795168662163344499335914053017509952627667649724966817613924286025516321753845624380774499481991863174560112892753717296242127685854570833003223783124704375980064483337829467625710139123424465600254038341362301697358284731395326889886330618628787872347697133963425335694637096225946292804472258975200079643481639858851750244774051186770197543165793936136240893000389285268880678170984384869741555752819588370102998552583285915716559357938040381231056144972154251792533020738596352266451274809999981339475503435797054553764408727299145864709274307052482763212650438638521972691216574298930938131538819061898062821258124279827645214992249185833042924104899249974561011381215277855747084424534977175821744170318620286186815351967094101364953791514012429591068041672867255816365900040560814864686138051931201773621138031505178485378698713219277820432362006773018122949080908279155354487370959403759447297664029099016827815668413426230949777059932662728851338759853518660803033644025664146625496703750615357071668003339948234225074262635002793041847881381011392010584200743819033475301031208835319954213339357927665416800873999778352647675705206829609468508997700329430863974850718442316025283945502339038345126300062967805458249161891517321274959277609024662221391132957077859853123310029039518225655426756313898536440679504276393319909715671975064969103489816095513362714531082822661194595742331644550430296899054567329084431527175983456015927892116714287149313737956736456693324520585935102193722202463039068111621775940441482658449635775153558017120616282943147916469018538100901696967872750158776176634406739944819508705935984427550651027006873670027566696617650468792922736732680077501901586548846703326918457821238784418028498969548237665012678013472842728852495656856342527744296924267591989863926335214890736367516558678530217140192551542211668486158863064723594233394186360197053748768512404139504726590139740943792874808654112041345099705611467624078129938197902149790733374837379137031560689666612420697952828712654524862469284880293244543474132383152085132483167553280417601064644924903457229178823659018601557777681466946468448566622425030580679726460979729596556597996133256561102429203625519883960418936150506259956270435034088632846394608124570722275121538208215442029439820891674358387698709624615409680816464904742455990173761584261496533332871781447775327087081550729839558684792795841803103454675132344002846377736639193339834737012787388327587129612462637981488836420639038626106023818290264808206000405681815718876548579334028486571474357526346755054152664050771786182014903138554842958901450581629290257354360440041984119574083226246347564169702746382918691666864619386383091639920679236151839789993666064956207084895569482698658311993186995129155389148782619539503426335218729202161677775316338759618921800876268221847331342290142948052544485239040021321765247721760973902078609090329623993743744272328390491594245269013513350774289884663822877807142863155512721489465306562742591915711649549891188201175818632186147915313555461583466741354609030425754576694392872770864800133099781718336960531854968936503347469758744026547442989857348124729627875920780944741837535050610663471531677342991532633128974314172061649262427379202533826085345476757020849018412329060194995750182540062866094539346622773004703639517657158605225364693920439500663666520796297421907944539935859894089350096656841074496880679719306940351094143781114747214818749471741738003211928927482845830395805274256029297677355356942283537096915852373553473138394550231057085099662270672476520365006619243043748483618308541735101285511743924725341196725048731834280633277079270113889747047258904042675432240127962220056868815013513723260505560668354130109733442735273992680425563443413173083264147956194523592716045607685686554560767084074563519181069595088011445959708510298850333709162288700614866143266597746586902170006226887536296001694942487078574318903854882089847558689345029795261395465017371306599809896671112190773223174610607853534906819587709403506056152958027639628506122800509524868144506914302271676979225253836181065084695894193399450897984342860045288758806832066523801804071494533244816190847805932691634745002551722706934487544908974952689793897158993844210337732154001618499595261504475408112867323937779893215541325404473214760569079280818915747831395334158313818532571622143045271185104867975696751547261751498477041874318856082668015864962321439232747724303726849413527953020171291560887433829137811345367765467111079205771334011719908915088513278870345891772847843187557546308561248647463286984049276005442984367875477626709551530841335213888781360619686700136843634327611847773937812704811715870518510077196987325291176455636312245061971878493973892330628246950616363777180484550503945138824164971071542655204664893253419461228116059866077666088831372842097435742971866493881259799286430838237086043673546049449941473749662368895913474200434846980199724726702936964653406145545415377205116540098264453715614153803923338195391603505831980627402819356376807030026442412361955102288705521015352215966587333626840827508008096678610512204613232745156027820481594036035738256440703400659250536904319502931693357944824718633857591576614509724736619666072361917039925505287826051504856528915573616024592126722633236905394655853979764372044216571613245812583502845579303894173092123663929843008539751266884745582716529549061492614059275554508182014548136910575596608514799142539966727850283137419950150002848295748804735120228523279658182675683407293948190274159904981365157279642160785461293277838707603401579702986789483386139491113572192393060479008117214962594485311880300799548233771735685984318040242279700020545887878904835811827234650111242173825035955563104400177205933525978535247231852086408239767309202667327412836721863590216200075091902414908621163336943247071427906099096280682751071326441271146682466185532013850362002966931584470191155035066207681327718776875309934707965435922818263987582559574239140161275117381588617514838900503434822174909611095923972719855545676507091842367180625262687932391449647606693896338198057282480843704762922337617945308960749062411418949308285599239443041361027786779567177005776165555086651286147577169922215033441199089814621192536844088244873394022862120661460418755038587463549252401795567890968232769812600642778769097144128104031505525667935896323412736798213694599612279097869978110025536258857965851848247579490313970975087086959043794930503711507964316597622963830029347569244983313382993366687186356533554825459474110346841146065622153137982038368977569029719981694955124626800195415000361206519935396702999256437090667766292634531093276153253088455384997925046050206543508282653343984546225043137434293354863500827808077623268153217998127619895844319233168266921950510287295494511124038626774204073746728743125242512060987738767026444103538791847942074419720634611509802311023186617875091822306260496125468384752204175913688826011354305032755757537767674386355113315673326559154563650001877921367224899532395351305919676766019217324070490918945028028872932487155276221463909546505471250372768122329658754958071830243768907811107704155234970372786217457696514499848371688775876408635584362199719474645825287700366865182379598872305312473416449762627664454395798124567107712207777306044922303835654509645248067981786088969652326654018385939446232913113038324389664941296004742823094182049405702853699769028800855781908382770527980967949492037369426010173995507557957833784150720932440257380333536079472520362415284885819109368453891990433547484767226298400310427278333100844084197829847446829623607959640320753356783958360359196774857171409016390473974533276426612967514008341611282338587084225713393029538269302425827961441012808640535055446279890587005527309519561668752050857804548350247450107705340588616667976706001531506676673958512562610394542280357454057309625167837277868954384900215225848090055185419199747457912724978798596724460086790215705610730266362362746766889407931698366084634296698772913623807270865928568571627606704973538645960895758597541093023604667744174017169056933199595548555076804919703530253067862414911586387425017993284047635246594435513319691747614020792284932468186465305545585841992362543469206933180872944286563191615680400364870334881028687233803515123411157378174137608108797665376095480725268064993033695981362131019024355247019101748229211046796957498555369806158194839206789480545843075106661380042817444369186091271343064425183477078803264547154551659407574707911649420629577781724649832303145556695573886534667137454817179320243042239808652561786932309704743960305084850187401636408641831735222661766804820361676584873610919951388943224536231581538229308142297130097923607659342950460181684244605194785186046473972694785418670512279842019249256892012864738264161558170457996192561316787260556506435955286505061155951001490963312348817475162732204092874409778706470992088536617814030230812781860399721476539430760449786440190108422371752656619058728225366925499319346159535697957895485228615356718621372313855273487475397967091773067060782617549722199534228677155226102865000267290650398667716973557176926356665631799896860852781209202733322583500893129202275798685566453245074683725254712568821966066117486138093362040494332349065358510089244764501270401652291933304941711233076627253551397968058126783263987086349235571639339113071976329899436868842701312746347531016233178116866548220672513596905528103633698353953111134861740235925657977020929119138240416604257044054960690824546725353817755530859871420208711064822667099837827252886979625678518777596865748887233344488593333637118809615383867826371675579821437277044148282779701126425175909028072159872971622645239734986167938287071248124036281779337953605232608606389324211749422447267142665503176759204758473978149210527823146664675959148266755516754024607160936260495774016070007185748514499547573649490903808747404768214591307192428775239571717849581520360858491484823073528100513913279402897076878959960888771453384156176794341802007700949965014651506694161803204403592075057556952396037263042993917525951703813469005581022730355925523635752396699807285923175782435154085569383482544873149928682599249951073077241596266687691667771454254026462179473080055848134627608211232938129553570072408016693576916139000725957242828259145935666945386367783598580214559587294250656271977008343278638345136152820420573446838231826142402169750885279772023634890688037611656165630534187470264767314745966626177508763439976739123112509935961244532769122239968352023063407906043131146975607115212480017204357325577634413619949011288183543163450311912795541691182888936590625289833209878694177925186276914251002728890153258396006310583914327756739123445279370301828016199977830396076660583126966145438818626725795601027388318342460724221340340192163583242588712399615535827486311326879156290036841745709089437375610655805799094389804515378844350569216720889443859322418297712158427344778731743211003830109225640537151535168425373718844177552558869622161506808112541296404283629377111982670889950042890588156658314768276423264928724389043324253980009020273652280702032634928286657262295786330353372732186996865787814137860948762235666367426118183006171406587782281920167465372784380390805683179356521611915252510302638342469823452191296784668031184893454146818066640385446763969726522794705356670062688688596883204795290307643327953325067648252102151019725697702766047338032933742322336968047424857361551698813512198970159967844346130632897463352005521311179864412183178304420226695351802956980966126030320881914159218026539892416262781371650908567338141318619378805068903017748128754280530479118643270871287109682871498153070524398410308246553133049842446196961035736979807313747400885324054668835003290751908375166882216260816999409576497846908734477608266555593380721877636141189651290895235501560051191902904034266127985157763032310437999904871209454595253815077972986604880648590432773890485766557776227136860261648677407693584707412495170183039710841313389060468920787601833789036084094440185057782606575397089937345298855425958764045397289964048265694581321051097396878124546032722023175208969164398998181893787027660562067807919391974898605550686118209303952004070471257351913453527787507441953872818650756032283429539779193400323393605476074323775014731868613716562097963004864706466721633418620050514078317199448407217111902157689992044411868254928589967093810303631440447590343872805927271368691935520567326559056636715047673434666784716468471527462848507566515002600648601089546186550587802556442028422235433450913581880766057532168569230359599346823219044276191470575571474895490932231271402141172225653021820196132262591525694471438972692601958857714150808234120633714043185122871735994612498615504856683083633174375203668258153489892103968372138330959785950225770542099924832312610920150951489171028125174439140966049737610240331486680926141346980394880352618319696391394975685745079531583149368551084911625504380846924793297032433365427928654340870474066154788845095047463345945652404728660290542511918855119435024977599672762898598599549750502960866926574957224310234409270155839509027138441301053163116598808485242989768521249005616469668173871859896646200398565489964640839932934966928701915963724456621961410681876433279853975414100693079110978436014305446892690606717572942039014496213259422717440616356463652221587366163971628245926071089255410180960855316960564891895518175001441327515549185491958146143797238486206794252390835659976287665967644342353121504964462144055192337084404482670926532763088644125810893950314696335435849723540225483097483011450862137757009699613756615863062341608661199686774400017780963165358990179441002021636242794519238575403041198755509230232542498540358872870464918412975727830018739821300000590647732941770518093527415305988846719166885368680403491067262031460483623000659776279202751812882918748214930898290350081744084051286285092525242252144706945236614365319581179640412128293967400523523694024283423928432542233161417950495880261400655373354122624454031814665264709288411734157148720359355921545238102577511448005282824769655015188030738854019169645187067859770398820648421630244693242228872758580930125353463576473393786878898270708071710465349086715037274492568617617437476016719261315902465261097574293889592159888584228195163696357416165684975879962274660334200495367629580676037934479733624177721653136230845548349879920061055014506996649270260994934440155195949871613885006492741093971400213253262498093949738837617180128137509548963897707635488937854958977213377085110778271902657652254044241166445445153397262169122183431759872538046622453129579745713531491260929653515172567397368897420232087676468051590842058822526967457438119445512306494533138256937269640751328596716727401445467953951380096197119260572529372453841006130975479815394258778170846510126195520909901583683235654628677274187066717242403370250440992731634049554382574640620156395910175354747350079764929913591223265875815228847543532418942449086413577273320657041030592798125468371941652208240772303912001923337276713519220479395245235107428886613792415781976924412320029373994158108319063839449439259074057973414835751252155612369430366224345518925966144137125367930279649547400716420611128066877176338232207895502339791062731398892097373698993545681998876915807873321639850362713521722539821266530005595300208783647872368227140568625173725824690655989479022859405360426614515290024649889524887020482452613171218161259839314848839939479324822805882863412190753641949542391911621854723528121943497991646414338688307328655791640670750936988038529323207717112614732986971026779699126708154142036272173578480207534116788443247332091166753364556450164260456452247601668547652446091601193166342812968637316807769045619280403340856612718141268528388646129788972420529432386712735352011351649815929144316326513067098062794486265849950813306968377670280877014516946182430762046560501731897177972380559919807291041022795239297881628296929320039332980063764343627732645407680036597969737175642775603416165377887233497706338929923855606640581653337665236862266278237222118029987563522304940254619087737194394725907207390368962534693664483403752874817891909509404822252851808421702855386587998624021197073055854993183251564828859914525435217301639376907630099021859229740999379485946434974687973322996058280986641129131907562600903858159086217394805013366341135483147433101767754279345338261358468727990125478929795782601988637024689211571795119033765058450978627130198316136155247141324221053358123805038222737181827666414045392462549725680512376938561336123037829874753809179613826475779932755222355737788213475447075587696398378627945704975309347845981256187639634648526031914839083920986815710044553579538224100978073446728533754663796896124620180001512695745990327857755340605635196952566008642220228863456431421793031227510434004943807110904376159346781487180413350843420432297308748519080995322646109542826335724285350412182681914907591932725101521191577790604241195737085299761104526669847263305662187421500524886105665390181463167748538179784844037374392824604242927499398989964575144591622140492432366895945107972047252414708818171170894865253644865153930090928681661390594648614955035352630525054900611263981980005825683754662318316906677588236923513337630113325813456162025266437071136282602187042321203647605568152896714195636145825048196266595044958709432413307409981284585057097033379186088327134273948836111792626947246832286519641989838870130470460561410578489919117299879779705357796550628041951965224837875844098483334055943420491894758264442869492934235169704833598140617314761079425844836124760820949722079292258003912753411460766433251859342370814981582616035641402390637433905304655219643748138888442681087076142847956402976688042320248664717910032940355774815799474091465910512912263484347337069595437747204653972957085362204693780384061027327074323797694242574349723044734121831783282947070335899693988148688486534996466145526702556960470211335185937580396875552177152185291904478976974289309159471887276120507464709861875877504952505674119235856266459827148822046313842963657350403028351015303243301110453541854694215946711545007706447403872062097407944595138781639717035568057078662280291283951218678776578098067136085703803441395354644373281060763676951145710636960627698342514516868411826312216463177605637039385287758818306115445024229268849208918373389099336448600197290959908300769917838039340256515766250189215590982010568496274017815834590795142733899158609836379235124466950756628013622532242786331758322284934485736064829568772608062661994265637151422463725478532536025883240179319806775961318541038580070021235793059741985908090923447918008790560991784441146171809633710667678192212336295024722285958599558214787523409247652194436799163074993552388201670843496524149949380211951602311672232826816906146207335757500125763679240701619698740192754346569573891410744288937291355541600888314830613435354018200470277907341249169116053446491994372617295364049572001042751811237438296567414736344298514825212058290479258102326267883544793984621488923849426269636744212538984003628008404730563070122202643461191426770993972536845679221261741536266689166167059362059540361335119730873417716902684042539112097519492671964838485417970316787747186912254153566478004060788219108270149366756802003264880040703489783059272744375448298650411993533086934642514940676935640802452176051123604682695232341081064634296372437722793052467167078585108670098326526613744897200996284721338886160923511227092624306926416368662942898840262852266575456574131912717332228026510280908053810295970347542474027811778042812997563427631596954288256572595421310648804927050870428085309096201246349701472348364396334149973529995032258898145242385506094731900232083371861689843650889894677114529888579643417132760252620041076892613513864097745082737561266069193418210591899208720077753076125146012124936965163078627848236204307786818253598111226720227968124758287021507993200497780432670158692850190384107065566125102855985080291195931022074381177294447641471858924060501536194929155984446460853517274865252380169581048112546846778174850142739457808508745622468263216877501478125625339063025056881212617974498750287676564960617524813059128297189504799149357164223353514130885287388972500347191606528115486094673473550299714928836990682885313320631318759638475039827280149101132954780163158958658738944425512894020221009928755366153078034951002492216787708812187392703939793573828548762343305598906528027094113834583396664648993130146374188921099401531602473852294333380915544100827113250949833481495079117234918338830711411507431969151330464656680972208093339802120395755708376830121497595103427235118442568724492084534333285996704092898581470387954074405449638834194782666551450317559929601019904530548838520690416868138007616005228832567044476780894303640921721481393036533366808170429100271849634725164917786564425492868502672224552178443361613298286711473647543814605596989596769925574536960787934652589888590108260853000127256901624776482707238697828513254206551842270816678235322051967631315493114643238444894647124766169365114383596015239050957184417948236976112165275274812146314372638914222263531052394981886588849663131414627940872372850013073605924325858288583782683932334097423497983611151344690542510475591048221989870008419916040082902972925020415008470190953334163665904426513774569174971475135079762000329807344187104154150952959632093430440149798473894117457066894307947316712547410451516325228705027381194956738431229323066186498515693949010594333491011019223821408434318046646035744277068272863496597974688328028143502366022561026673687992187797890086319839108242510289588014336808945697034591212105751173747449381261685827953512523753474806419703531294640165425326254035956693894749469069217803177076464871963223859030929459696171025471582140757450153257079113782963001975682671113710886341166297999535499535467309935809235932077805471360825263402254027744120577231998728391695595473824407585576806891026764589731193918378377106687926825457545985063755369059577165847872408194655061695364090741081428576092619579955096292919290422266072790120732308261372812031484618760194542668132166617252274221873785809107111658532850789008930856110786966841488023923555893672736721693609419883631032142437253109585427630753344468446037109753514364458294130041040786502859834416109776166605015915281552966514960905019241682914577062959909965957270749824241677420886518810503442163812850159983965288875100138860029826144574823397149506720057704771253649911097061344694127759598798552620449562708060610264463952859536794176105908786379400570538858123553712678695261752201570394794310939098086721552646920278261445859646274607704241792989201723033475170631876468421132538330275528406440812057249829089556402037077297581478357519539751474162244240432770484406672188885538754078282940540182258886903536451965242911192203290772835289247420491259639157307196721527511855617500858976488723646943988890160683303031373318911085528919249108159058909708999855079904572667122676733515817488978756806792877081976033692743975917368776118158069853524099826759797395968145769584863616590858176989739442895488530334942048191895025491085908455187692604676732442937541544249040180243469232225661805958996909906771269103319936180966351237721051462726719779638982158560874135280942922873103849282021072622464574688568070892017244909890737224286196710912528360565740672497516426363856908866608750566700402471042039739427574625914104393208698866665037083502877255510913083555008349332230768924947253112063654510095515699324740858289318345629927261725771207699396349525408165070506023467843777965752753008537676512946069891843903576897170492445044680453761933158940461223023733908590739286787100164369143450729422198390597018922046789364206810985971867074583513880682425648641983799924072490521571234597878704279741175531600517185731311906436193938864291891092513027152476128381645048878329410305480324326749816710360286136411661597510168456018220652123288775593091285471439093385027726994641705884764476091934398754912855749762152685395728173382953573080580847852735339299959470369831475982395857371188776961787319943381062244529629745484556219984527515666543821327234262665571696153225185519900737838023422059107816544587300801708884031018580415947329954930365703114014589754604905474153779901608279554606923631800936895321551935026432419602434085225975663466901344786924520144173875201988219455045909789438101633481179991025866264637565509757249936387297867679520544882178196572248355487416459603370108861222278712278130292247864502996471799450818519582785917591486941661206965423219725808829871223813625473744784061576098383605925577744256950700517005898162343556322125662339537994683700962541087991361831984514288860017373882909951898495700830924009770842067506258743800953530347671778362411967070924153141019734439280893627172813867789162040827896208376953449082341475783413797772241076513836729221516696036954340259140410398982406022430483135146465277268968458959362832068614375740941909958559374517550583607488902693995522801051629167706747096818075672367034971097049237795942194540426862879153898186892716368475247289126394649303059720019615042602005660706765716278555819380383399775913935415615214850512798208709192375645955417487428575969182006783324876833915609504397150636844705110644818164178826216928595733221532083731075260791273512578769815327388382249343174972910209687720582411511409985443590428847746864122557993783021148561561679782235661430233712858355164877675131877626457595846867345788066670893270998920742931423902216850288642473075759587493826439649251616742917622211176051455707156669765245095102388985722064526190749022856754144224787548620669310761551301440472866857953202818989066594001958115380517723541114905180162322291600552603240163679636958621164586014116114222240338115191669867732872523420336153845546259528763083533837050804718630371559369822328816607633548001471958337137816081440155571669150311574921493305563152482170143888358335458698179712666218347538317414844347616535940200245120444614436960184774297332427903239993329803796574865132461169308459420871110960297312387218180114074447271464546671254069189530473873795058681368979704359744377025640605853523288683623948358532510063130890655140723159136718027193415124457836698324970225445581112123559998542334112174496395872809747305830117518812598004619001913979825471431600492486023186012285035385005700920900739347416393204172765817602732139867997783891071514307906033827249279286636984987170124059083021830228459790377215348093306908194614143133493292117815865544684892705912959872377272829485765314468508223641366840063538896284815148597579415434618469916111050629443466786613036902937728539196135857524265890713401661455097707509473298524939537099718387070333696435882686366285368950008120192545543046223366104268808687233127157583310015049595197730909693278360776576577053452257312516358296188165690137278625196371384883096227336588147174694424881310346337355961529098600788046014691877583257232964402598277514891566635176892151174530290501303545867789912809454780563495570933304315619861085999679599056086731144449038991526607660901682502232803091408265467136846986190712953190203587311191184826656826119545018102093439066220352323197202343132203575308180848952980533910106144561093164578276515520020515935881170186475740243007503077095088273580261836427110852043581101350848054835235927617340161091707190481126328709025042154457009181920968209088011978608370486900183744186247581113121881810994633939046642350352790551533877455999764867444648109189276823034460608020342911697648361939848577900520784608062986239052580351960462107691547629593816375551982685886179100263842585163894185048073842275080155913557160558060387660661500217529755337248178528751459381271015313069435313973461439539774564161540342966714704111920193670484887481209981599313670538735274354532662216518193135911940730512936302497160921827263555467921263374795500607758456195776824683886949979060203422845835636076145104931675495584372664923968346473616595162241677132026356475037759362852679548607757140446024294406448028805496442254243707230671206716844634519606416448651302771135352949458407482382951485108952925710459388102326033131595552303664487063994655591194534075814584867197662894473846416861643225770372471856046071595352166036007647798262297570593318395825703656182101911644187818388962360255358279045542586014943809284473600278438112979524948301578437436145645289075475107094537835276911456411476294726672209921663284027870062614761158621789586486087631408387588842710740300641098531538351594479243102348854396383451863043543503472619208466305426075650383259131292607295849324375233424481794384456247317551066153201196192623797058283993085172577351686045296599345230925617215224273414048627058232812526332845162496820460791713591117273994895817032558022039436368164292366892768922091669686908826239597068477858446183771979188958555952533002925962215383642133516969404926064476671161779644702032817924369224987936615455914589374518201990411264982684631787148091998463842358500325766015879837134024267594310359449440403230519657167604242566936707049498707615193633098070997271071152904387096642083880167092230670095088511160288609779048736077497338350576237389830794773910029512271865064280557174097714532118313256975304629774277518662967974314549311413012315274341082906442610481694850796195139033031208982263026620557054708131171586747752183213302980221069291918520574755689091782077127096627479294567829755583073691298451710696954249188257632369091350806117030957462536999839810919111726190733626458549472344028965096390466215533207326527142707695892905421469080539988985068048463876552470605933763935972905148502562368199033198905851587405552760924449076567629718769087957916846546454332510751648235854789609064115124342708921662373538561231778103065071282456855026496102120281625258775305539589317862273479933377663900662501623490674548227481847743240963631910397213236651532743457165751407375080593742578132288131982918172887591027832821610228403290990142685291079645980278889101407820882306758669720948869117833570394638197879186138267192312484520876183603032112312058855343641063856012041955991645020358353245638475110950219908054188471476203318293957097601664391346731245527342595079879920357417662714042188316451459816347759452241766134633759560270995304160802092656320309316486687791336384064697772769961032617742123094930085462178524193570992947728728411004320558436961014612056655917005967234467575719887945898834452153186797004132111245617811474080800094896106539448430030279113301331377550612101770802396368218718091516233505720090628958239261377782970021549371414399676468239409307567850990442307076423115803218366886613061594150853408062165437977216372982138132227455911749529523319307766227236772851837243617854844916983053963109730799324332744193162833259144058149866017683238762905211918885262172809956517949605921668148176116258446292486795287660974181119716882718492334084050789149344881349177727038868773718801556275473860441633852962115067426123291447819858289416810169478569648740387993029412806124681360383839881715643001995408066696991695522859043564193788529625233514582583259756551426215262502785025081045949549698689362990063833927497415146708941994283553508895665317912206977219296034354768960974992074217994669635723131589264702634766154085588018266005469483128483734586167183016864129459409602972409687341149620696229141198813364714172672595243151228151090979383057989105921067701164650243348876661733872005277642588357539129300121927618739063980008393657305018413801069503029562623934604343199205413965178071776448810785226704787352547110173349892523358759902170904569320733598861518153603550396768050922762068868929378055357834946879491343647389507788949890459539169641836121044025493037498758423328622093099983322986592333815248354681128581943187191007235834155957569318567077099751043233295007091927178830428019250085077439051033516984046531789378800689238085479366329989173518796040262915956143976370488709726553613413078693976260061906102854823235603553618549816681601102827454032231280650586271225479408163462358484026539203626446405102020858678989069117180362528924435213625909586026249104113641425659297262608555081123507208475138051810869277232337920827255214775970063944259999616257248184748496801616995365228925133305889258483917091615884936813073239732907318765647294366356320781246109734521691068981512360452394198267366908452374702415245728746663931991943050244586071334849780766070790830497854310789301599851413361013630024516948393262765051406526047070463066354065921706061451499200950715037322161920734471970347723557243142968377854974478230228727479981633284165774028955814866868323332013409173428088160474308236041667365241074484854807418748241009340691219899024458929396512131191156820018722275931552498861246787528327524780533898776064834106365904374067000501362547976886183624799028649046995789682143081586361981613586673357237527585984393223538489888540896804153613297086836640301254682269079608477374080729905747559970764517910107362745024423136501285405359357222606142867871604997972269703689321628455725021691019217523433613499012497678503448468272857294915241887710585073301918536980054231690448272360061107407391633155457911902778103031044100703304642220947575023322462566110408474009860781283513020189236191359382664186018414924056272201229950709516841532380168417303844588538945610764421813966387092255159903390304689001185737493381208450767895812092697392050667077679031454776425636849154132345990898299759237527748772627150121276337694800132773368305254223190328598000479343147547761534583565074954767107820772816173934102978286681171160899565838857895223820580693363943591669172014697216695092832278075195835515525409311200044195891663311352494891248512187164671418431715299139979175698528215097970325725750032601140763784866771018330474669145834842641758432296027046186292704178604445803217165332821285710866256153182610873351155291334031051379645320263022526645809931520488404100239623539868376097871636197993971297495098439851522147970053788545474181269238163902729377806877762488507270164047131191109831723182425601734238714007200142056934872838153126844672643386091788761944500296679484766523308912530168560732612588779450925367413778435836408398674353614620040791037382915877784363368934593123883508011233508170721114895450593853177253290997956192823827431314023149049008227667816109264442675093263181290617037800346099992404786705804878599299802293599488109470137986990061276692376785127249078852985465696119614794089238597013679973032786191218084338699997627594757494166355257390108903640801132410267618234381659495083649410427296321872805995898981980178550671933498618981116159969685778778002467058164424228725303521303376834131558726847491006477214532138205707377356720197854970250572821923523695976414363536360781108432948805074839298925790480821711897946376961901983117353143065987446002126402845894477242090135656583840315533559236488907341446671822642659766853532433212071744828223409758744648948845599012406520332759837783525718495285848182887376656989420488497919837588874709064490771657080204254836881244321606106797961903232788655645385603366855766801428304690915507126977878324449439999631554504154387421852812241731275049358387792719417100453018005837306002473478713822722889246282895940595800597942150876158436441074191737816878373014099763557367894297090412327776169364788859219572902128815062288321613353201942023954432748729799157136580999192063334536804363003075533835927283472533565299686594303230285643208741947521882835939043365459477293987814681510581049557528786224006175589365013247893743433841946771027949092212449718770166256728365133134555660905827119500317157445758057689388285023824638267094983783719170722784464113682085164617178802066201120608251515459015730158499912237742724640855140368936566696283801598480679516361454494759780494517218707106144145355810750336704942732433143985211190346041191160907801972825977583202156349900694402173015276742695686136071715383656390541713150549455861147609971837238744730102357488152262163903075316024667147855244185125954397443996907519344097686152145358424561518282327718399372782363942767734530733975634217760322583550064127391846643968379199089582930106940528648203305163158032002700182669087516003722609605898657491076970653134122969372927708458559848000763674230361035455906873184764943679122701878865439987363793435775134021087897218708323211495020270064408278499658887284689082856083253511660419431626482771907270698669788875542467607523673867666729286169792373679051252992512646211139522818608779353268395740341348354595437253204596162359935203827275336457540009151988659780979591149187118784630573950285885973746976173236758964046316262355028515877920271773797948263310856378711546004026978441009063120440483954067108571693846465958199229630296880507481602588630746711247017850213511820525170464099799207813032210973056753978182729640505380828524113658565659807108629430088614802471309867812123947786478904429709052631704819614984590990725863135730151213939462905584814201364160644457270869222964283952104875443450907296305376577654139631902586393021360798771586686527891019927818672170536889016055347660542188033940552299135604153524578936488997049107302646198039319869850530424259392910059297701176568954213275271798363806352286186039182153994099618694535099136743433374905479434934441225263129594837523380564022921366094082381587341268935919334913882800161169230241402354751387437212317648770380512967579582267406169542682821516350600004276995846279777228394391364517322482792489964704896466814465491657106191639709753349938404163748544917193664078512607429930482921363138471517788974173159016259540456337772591865545150897532923395386106266704614264317071910490901316555925408389351925867798650184842427034193918910857080735099813592781540532952609685514039361636419787318496584173623182159770008239169243315388339525032170500258009281897239044801751797450381952571056919536480725863005573197209012953211405531065385124730295647846486674383098281864404750526942260664090285634021245169020788361653201411198026332487499662163921647866630360151111121157704993250713989648388010624667927543372181164264264618281827957169543753883840688784540935556819197089815027123283893227366350484130950349834512142760244437749030288518143967067217499097236546759509447109941472148674467797499749816445470759501614726918620642487264354924432483256547766881354566163712934136117283393021104157696173992462927663602905152139315399875230880931995940080717719811789819953186714319542699551271644346242598620215903690210149742933144147104825851754424893129870542259206965696599993011072501005423636903649819126868588556438615503935390004483158334902139554146080891712119182473066703535633524775513137285239816558714592627848055559057934950126740890016683706075082119630854941740887480967803287659538692440069425701933249858982766146508186746633548217913926128873888871405519652556557147046974555545211049776668553595922446813492477719576489994104536062740353244179863131711956366204535413156843492454648834651274489853984729729716976116566852844564011760947168819492295109893517122709047580045311370926267413934848582170137432469401428857531250517881190662964337682415992156340946343166903790929779853032696804722386913155978774618235242943504414252583961647939091076183084830412218229519766242235290739831378797537304813972962604806913408242290166643234348767852483537032286772881628471151681166787502191251376570764017220624809235790000794948905769225056224138413464143324546140648704338303889676267198598177653464691979349312407947716021328437070060681293532321153288758897865907160259046299079017542850765520683698965013445258375840631394476642489336676407082691789031849654625077350634065779378191198153454810873406622155686968804922147003387794896132770529876607105995427888563211555003413632486314425023494717182085868637566953163039852280334116032741987378830687431216275631220468502172469850176327179575283417054181326071157445456499123035684287277335362165894965156138237125116520272297535919202550698348245211596193715483158751454350872317323357439994961551617313702807084272183157409437117587348758753743464472076252118718833110162941421380940773041064419319638005797016253004727673997979531836575062163149417677419779156487305066514246932640747335076828451405099052480158834920761092959203074329032544800069342257857329780852278856669813683998471227140596465331830012913922646835330960874001784972452630423361070358042957790226104281657549999936095436195530317946771051513187354487629375225105950924011702487265828654333669652663019318252205550717842021984797692955077847707494116343344701523188339024557171205177586822946610717221359196576422409856416868267495221176225839647776142926196465960375487696004038040415530699727091190548398400953732239955295285278481525080291279213558448096285246501866067323631153706687810138871794122454698457878471938078895544972437321267929412190458274968388619525716796520375766100409860484737027487349038621171506727000931521642562187190613242707226493338657466985700041498254208645758397433923287540803318337253547235357643798959885031432276561180780800531446367210348002763084459814052832318552974633583068700075362310187356889324897730236056065126249113595296296613507092706768301869374411737889826687110808793464056882597276738165095602654048810187561443829729050284606346909916893792773177966764653239830397248227076872082989014120390293475482256780324019096240354024171473291493055220193854696264473899458491185214509640455344937882849553293218737300715824935491895288312820771877065653092920479411421920562649011894500805015435906259172803911802993144286094943134115347461405533729661002346114035149826079907753352656691705433382857294451282560494223689076894924195699441554000731976371866211028382337501534871934407342678415565324773394454102564386773283683549809062809588789085934989611056449110678912056186832826011043015953664645655120090754478845468917431855627889976750817780961138470344692450199218616136679121497568580800779869784645141591336651331707918563242832413165379294300341651853953114550482319871966234459737501335382538559752163053137415860998515111175019271594291811805655536546307871301495069945135115483602473828593642869726263635902798949321007409415615314521474671237888308165221208514914244062217342300152050808423196420728759816506382537001374302218371633028161991051187639565535697144570614531796182035754830873720123508203386005702501895285919551809604552471248305176072558042183861378733246379377617332354605802404880701910618814977283134741552919286278950235727043943870745567498280628379072065423040164545009059985033292674630107555202457186999102399414915941433441787508657356649340358272068056176898844863857222936421940583967312301914565318591538733939274674119811040835708205071507735524715932005952513737718061095688425876304790924332224757682644226787723798300400381207817986520342456402287598386146660387371044098997055183560449141425233061897014742631929399858246268438824140019453734281248906129030789255422322697478283645995627043443037777255257775738353607374540212456217045403513922405570945500995055587703628410266584912747800501790128919021608279613358088508947920709738358177412031576541113568100665419782486350657342781671756512137396439712132481758590777425735740229199254050407643595405854458850251827901704901123718255925619745758137061728718722436349335330570795057735333421705921715420064893209328740249252854788763829024610774112215848956740273300723658348568903979307507655576377030344252210019745567222161944130106035102798206302016312464099037920366808911245308995994472421907416489642062100391898274005942646062211246853295557191025782708745298557839794897047246907596871348753009961879599044707888985011510148124643961930391081581384237525522380342872431296731393362792930411020624674142167649320657481611543016007397860152178716880880592258535687768466683851467319962310471045036917337664255361283498153888077278085606375068541275057659051220661563997986100177846928712038915628498315829180837193376725355168686883617133609094618606389747520651679582540681925129180449948984248272004818593812821958220149030689532865676705137948283559729207724958535563700396351800723437201401435669939570685948690716878521656214909862619493281611103956180030634693844262450736863882078649775343706602417991682755125111309038262790429937987080096901076310571980779437340650246139366911812680250662739628248716938660985362150013921104889414727672493224266868868564042705470122966966746102365317469991395751168245183602292622653207119661849705919638917943892659330543080260905137254899543834813601448713220843324293227174109451701603000281700180443581255651181580156109214965327824301821283712114403569597368329830162368884024702029373238139975104210220314551863166736789870031973834605042744932786919929698048562223870834401355515461728825597144625440420523012461544188537432789519203454057875395212869477631392574167218084352416515949625930974664596092270858922776083077008199238157232261676151789316864478500111219875120060033752237279607650643434215483318708587932550121258790745834630358827360971667157429480317687373066757797508230886575736704990574328520633614754043113685408474822859300684910738187019055060701671658161434883294886386565694215059735298377145227253395705279570014599923715740396543499586725984668197037282264280056575415915222140374399819762681336501591850218392968022980566766453114929926440025006946459745594532871940587008586469368455914472669373725368055025862485761342982822467334089388361580114742788427228214088539303198884198608956290714309850761575969661413649860287907716583383411619774297124968964208092385865649657289689667419816508834738479800364319316959170873655185481889520721085625757026766060753498459589857577939625664740993520794603202706475718855752897065350110456727333320707773964475903972977725988249832541160522720880795481250019077863192209418330981474656917886948088588223929950043389769778138362946439866344113773667329074971829667785263968179666762985703474015492332249588831580243929303315759446248647388370036772501506953676154574337446221525214493260697066955262798880680729726664974004401787790849102463260292318959684141299113340851556746148993958110139009127431540851771313770088973074634245703772034811057872029813164513261903781312983162231444681910591142405343246436152825608559061492073508684445381905289942316733751813828965491757423637862680159423272324703096194448619078252274022166195304735873585033363421518279316093578113855657939923609140154376398444754931475001258834093161599316438091963512391741000878484251605705832895663137045644761734265700093000934542462779340098027181775952189955504312139377573484635495275513917720780884457135032113244285739216708854449190210469447499326093555506365905620325925452022151480898758361768275421578703314803847688627168614989683273574010471119264060598154541045782646977802789884997510517400505793868138979392697055021493527279855082733580986822049746379677089764651244137376926832875367247527449898051462747391211022947626410590927018253331327840898509124864400240950414492307708573981700190445131530282905058584199661277647859752178924978097536063755187168549619042946023970770859010382375056859480853001148435612072950608379311658152738941492270545024229771262750803357467988010776899174671038844428982915144178311881747939752501719375599803128963650868149825295228599162979160065025463856431067703027038303725582019834772690247290857952683350625505109205198356551321310140978698148206012048041503047923363148509644836378018708737304823476111232162188706421740306283294005284585684453653308212228140701192860960898486853276917751425251805422786251314506152045072080013367366666700414249773041212527958373562775528322421143447688319333895777659350828321690271950224400150219657357296142640085681007748834300760897203636842369433125968358337984780081181206300003549412963913708901945304436164250396705230549677503424088836059666274904089298460747469656900117891474314830657148963733712942014627229032324271930006193409542746422893243431421721076477910207025335794360729476684440335287479793084134605536451569148212425630889754814773129060783098531203259521714532764742096633259263725105511409749270809945609256322877694295892897413062293762464803676242842167123319531529683094907766961154072213336275775304071963634455488780649899897845919962853592160784163239834816753948429387628790462378144479943852296329118293530392092151805628847676962263502815120272132225668459821802359784457749018407783566535033863280917535376948003354924706812472751854918259275767285746601092436826184978441898552248612804177538268315332536713895602789450188715415710567612598810026495644541821113583065863870111307815919890650356797247325283024790722304079444401381707943680657982609535300464389181156292622922685959159426911188929915076778571045546451096917276141501529308801822392447600282469965658478888144324205625900484346594663299715479235851435299064391647147180525327597656824862656100035285002010127248367705682305972833551686095226396241348281605896544562031435634911506343517424683567133322296049426611460911105433931484473159311114916920771502917249316128049497906834143057937295152881139525935150957952303555883094592571358579392357393960575699829468365653851629568119160555301430473052624272521533327680721889447394660132115369836317352648191021981826637995988200837697661090623967998827343716723938871240146560069915333312402592234880417383583734866418428252319486344895739355685531534777292557771368951487967480894113916061705702929295518732094944269526087362696855643310516985052280479043388756082585270761010572544256346434560269698410385981525152860069801782786714096730212885200035994682750405994106487711261622357673246654701386116618629776293891675736484230656629495703123838661969049429724020311412408547374794514421964485730827835164353120716031574588260853613319259823075049161602912342279038171155940900884093056077937528531106564543451480264070228776750825543194406867372748559383179448019507113645578298661332370603759971990539000527299297471774570754957847680773982120299309328733748536024913543126340239915499854168183554584676127418276270946697222003826798751609955301324311572855030975748810786562803012293067538293600539840867261583855002645247984434339644924826178998017090119847872354525632844076937105074214186324307044643583242197370547229546958896801292803653472352061507613153336130547979664302320871739219626625941441576656452768637363559626490481519103199276837767393870434719025631348823500376606021183834492705669819870603519193832257608398221315564163863571936996992595764593523457325064054823591423147194591737629852866346252983944795225847629356364545657099916629273813815866723930273889453201014185842945033360469920611032772846398088728284369053477383387145898380927520750243729636364861430674398867149941066163534352579524906078171756306073957293403501914618753893812449566136573180041765937143478982370900883789453834074455785757380195947448184683896594624659395864398011745361246271549478470410568940213820529943939668889150754263947602036265231077532824105820576618484085960064247739330482529227891218174618513591779373846996783428309064341866639239609909556954941706501851256497703203211830444177613913962772204745215425645176597660012984041484560278191864532710121701371360026114077713300544726671836838888202489411213792510044783619894830996162909348507951437049287013051147087485804242778901069446183899933864118305715057460472819469666929250805677562544109139912542281638817173408140201439882057989978009762972098205063712452714081953828634123968221772500786304637633762797516792475191408618036312444212271203308583856985560404551182033329978872522936403500343057650825056866996634110947882137933369841539708947514876093189821583516102212590198374761224029230666563242586521407465505122708527583315499040371941140592014009333023735583198584997238381191353171097935081941410959948106911130077208708170450115276401844974438442893423450982123331677451654901106960448192440453403299514069664581207524103609284468783683362387838912108701019043925010497345892321825253507389086345237970941380783852529831225984087805010040934704455354370537521792267765007458031071929891219573689445787247500418530194689503070776594984594596058682411229795945490569071366269994014715353196095668653821108269817014606472224423312443999226569746171142800328863879908899293611355218232541341393825205740788716654021175880354370518260823954041291209360829721376816232575125440698122443272800541069313198691063703780620676896790065682999594574171823903588857905113669112817646449045063310111249772764316118476657764194355033175030249920261597533424010734057165357169352034621858482911283728350028863650328440100976989312850691598623281198450897510481115770179406146494569075161245324141967335185866101906311682562362019003924898549127409054125831217497014367477678310037825931406944961894504134567481388017356689026136212245320321722107985104179156153596259812768683084820150968161313262589768780653100696586303757628589715127538172452464309541673614667093594295135079036865169638745594665851587338244890616592450671757285687202352739558502484934724142285228418085514093048725413814739371650918045958437856234418601244536065296903678875785117987836218254247620986791227431924976324967013034245424723013868768934689667704104255286503760031682557921688745551508616186569694795342677377846641106673652145213212924777105331378299374693395297787987709619331567169844181681664570970952794661627513304308461129075981622439568248985610164307841577891263498319983751203030534960576988274101658028768901879918431079985690414668472719476723444184324429535038118139697650694271129768627512324102157599614204201219785448950105833454520729778467230702973371619653903387952119974098173652102252619841291612492707723573443158228959459550179397971399519021101273682004075046003309144406194368813858892708965574014097270526818588672310050153307321917451956842508813026381461974215504996174047338384287865872692819295136295333668321667013614564146353522242827242241366211384944601044722095785408152379223190658441527912476915909165130759919070501244173038813907780511184144745053929309428575336507365171489279594957489231437460585228744627488098763792110730947937711474082871855382857361038499110946607894997219746462324536119931062039251766038184546360608338693641898390022437512902924399865275154336858514235239157927969429612294132326955084203423939339105947945667747551304855031298842924916415154020631411248754019187233016607944363217528209654839819813205366679012018911957824862431396736523585139561413327565415047348933384150270354680829611868826094040507802560585328371203085120043765286682046681540596404072082908676640649372629327049683738697065896798675073028944693814909995759801903576879385995515177558471269178076765305980375159044292839776154293256344330644842348556044415911516013355667385746146078952129682394294780162824473493583541026050107872477656722693273455970742697685178628055784243816426371929448482221418322067944849212769566192177038162896848311782345704129638344890759687453905740567864864647816476341588313299233191344865051738412679051292279641023050676049269819539190694961261507555801459718224391458184970912040763258261282472942785468538306952955392859932490509461530546834688455373814871228676988401694809901726810521631179522606937632345512792569150333055265812730029063813485283563722163619162956808803641115864278259250469903798125918945840186390163639148089126409133455507521291409925674849701030023878954268442657906898647292264278577914357617965967348060438281021541977133574050643450803919888165479743492895077100622334315644321040475797573225663917490702653578068312953085661087073078446704985201106613747961003890374690473971531833781035199481202102314795337601569366221812034640221738016772180117198989837961636769237386009142155901342287385393670218703197491918324418680451890806533395051188312183527318440083407977580264747252406675220729393369636347487271990762170960758252066329459789219537565259976755773870523033797236776089178351123802286619967941852311497105281276887423302861141986198284312296682833472118517556358162619290207485626802013566735484918370138412115578472550813206905794948601714764995042851034551388596191020783690441364882640713451097401833875099605701147408435623904966562359278740217488962573076907877091371298540097333483084897345966711310714474409138885439368464827320349257800356156223927178959348952477719625497247419024879371313808518829650852474836175268559092959334101116159315016686611392283647006797756771338246198106240311321466324976052375270914449579339029238363565506956775251030541251987669240822546835279587116318872116799020843018487778635863373433712068329905820807404112519416499607822474957125690802844661267030062024367417132843223812063357922561751342971580900512346152237012855083292963926728266886067434229390162352470279394877102958035071226564468667614719439069342875777356856258622363342339689570691189958699795619338890694669012630284830602850829829905341149023561511097480917156091990974836626238394767546183544604617279053554635711623213094947941961578033939954490126173496188458031267884230014792576707969892250207517700820236768123422713700102898999754283900145407959436191400021924578275128073733491801645327551107410875848893187363433131261198191438617001859600248134870568364688552512839401709151551967629138339867494109603507232878399846595903580399356688845535860858795593156089840125186898568336466804536002391375748104418990464450620600164016111249390713955195356665954157103343545556596033699830686040580650001747078138922354674893051233403760773866357512979745846047880152650493670344167348713552174066329745873641716863734608624104531620565427655910250636566567056809799410575658340572796471633836799710007517824518962292056807115535206868666841723544175651193302116807608792441648010494758339884662188615488406720941156235787695016918112436867069323513821007213521445545938700597825725763708818291365133366663169419646033587665937841738570156395271295198532792411605462983373859625560755328926778728021457468381026607773957383680033925432343723847191416823069175938061324769509475035076381409975583062834831675089523341240006429918462102765982950711282824224394693854186319530189660491314579842109476364846272410622089750148004950318865360116278774063632307767953457530784791612638924849078057779083108238198984045030211568548298015519846697932159310509342527898693846010617818676184090364361150154439413679257375734622162316503390621553323707199496747148826504904365268398960360810059368354113108212075484792395236043057775542070324016538414398836607650707222763954325565562487701878883109483620459343057416169563092033988359136933013830214264934733003965090558793397124830517815178327267009813764119283164625547616792282435484193062491628829161151724145322719112519583691824371416705380186678209846008499355342803652292480348054756315395579186212777147365017065960109924468934603206494322147623841236061760495969034523185769800362074656760531045952647734017194748657065782809206270327144653402120127989470443025006970067093872739656180462589554844229095137711323965157327405788667549582763263053218119668013978704276348520654453873153467326296572438184407277351319514408273217792680108282379429528233073678820093838838503689387282784083092516112591015791851770218957250979032630692957001445844313110345379635200939242572359750128046609949319834964224770479064666786962727973827415376297690996162029858038300822560843322111377929126906159298639998107331213229300145293127424233960534488467187799064366239094249048131967659912690642934929155276828641094466854746432617692577411713696279125223724553429135678635697909827988553054861377428836374443641791542971164296000875414671034656251999179884464707524020047240486036885828916265309972386255195876783980952118268277610208822337810524219041211797651102184525721785432883275276883109097695291240133708665830406156955877786917710082622837151132866196838830018705591430592734085538388912149278078942276196233603251656300993922204089662281676794161310837593036375392972507113294974143189501223246087060856734357503335326082490165590133497465751077630441738490944777383392238828877577198091954629580638157986955007273150273409786609094094349413712319405670019031831797533554767922096290126399806596135563219437045924056796629619850363713966171421842545501402121256756703813701776103029531030157791581780511457597035144520345940369086452007167244367469489631396433689548765210715927216100687975539298026875272341941611070572425655743219653181541365964785917864226452168784903901870881768639474173667493300628216957582016383309172818370126920626199961297423899180146976556322279935617437552132433943680372601321254054879085423531032250183932009041530572811595776812070364661110833189194501550952962055146550659793649281405391981964707323200736640356823123610398493428394231288253238175018642209466817273808939733640358824843597890191391554469424760231256579203086347376072532549302090035064778999211131000224857727014954622624642644972326763813775380357495610769310934059893892476281905845725718531478858245359133227831056679672642191128986458193221287625256373206945824724409173486470377308471543686184314928033555768194037292194223152632149161914900002620488203242866394518803484259543025354757500796873445432751416373257860148191760722281115111750980777319131608426969485358097591227910042148530499076516413714043720387561100846291803458767967995572867238126771254161754122100411698805878426298891980437239817950097265120063123053469992215157251614941086280470813540550229075679014909623804233417677429880464198706704477803754806343684949439202669060573127634626351239899202613194009878924522905426477708487403036223730779517380297670461628256165109324119509067363091237769183978738064283268884214689037112854135336078600422772095408364826436849258143294626702394485637595881818503160368533193064087093799816784847656128178601363663470974323456791589381393872357709376574439542421564244706524037001594331131399992461899651089080927345970959530385323167767887116621180420034890104575298214912610090300118760076573884827239238515260101032848828946607014487370081847433502214015784401581775095771526598235613174711848736683218504027840214398344341458096899019143712142034093975369612701860831853932321727956537161490298563564981788076721912319571175349575881936166659248204409767841586501151536792257646944254299488521140297667862009644084528562507982881735268652118721907551529205802572640179969008951883213792849082309029488462145013447861346123757293935510115109791926557635855390190180387636385397210994322176807961541564511865385177195891954384259470580368264607021027838981613397476039766966182760760890956219750024975017222128614209718497163621842303482163694709062875424240285148889093585059033919510727489331140933590210805113450906829586245721789279448952383903831667949146091879126384964550971370169862621328302106776942628322213171677631048512933192716815772534285662571345966751350722872499680665729323581540236916926848535351542482607948207133114134131043535164723650123067407400408716986461214239728953628622525273446340461626204374325364636739834129192552413718494207031157369180327826370402557573338196018483205370584734745880825843057133066046862551268733900441684085766606840483704606851426974722384134011207921771664103782249816013816570780379907626278301887854729600284173026919634874898836118067665213087581399734565556396682401440557054779838299497388241533207122451668866736284091216765849757361697460167084342182494229850823347821608521464640039745983281102141548148292593057528907097764144527459263321136809264874549422800586465538099357906385357933388225688066692998375722390774242392416405898377411459537750583056850056490675646580998520624243005079018280689179526191650127031849773605288749077549770788459274792414896019453943849347890951589053667488274718754113345986846134568192568430417699422960084515337134497213437832177167907871494692723734764030241207633844131667003280417513368076320638746204330416777489619642458876450669407124509308347995368281632338162049511564349489249002419692071680334906384927241946336173794818119411169057861517437046175221895210028767948430569137849357949928650003479436633134738526291922430625707338613469166928062494423661004263178626136343778375099369575916370328564703781368637083943714787238458308085996240353042940803138811614770513364754377092594768068716812697205197389753391511751656078579518246964853210015540199494136567884112904487932101200477471735697359580904847728332440240613296776314951433960371998852205886235217162383455877939874260497263674363786883964248930241881562668130944542534369065469097953728354059745301181776431989906685054170742947940667039820462128507609520929422758978922527618647887429370281887030465209521767001157554851305099899810742379279925407721703785562887957925114455801860093969620042534053476387304686221474672137266004153387017591006373312709192120265232036045282267389857252806299955308241033201200118776240774767947767782860853894322506775036877412037023843820538653826536945149731395162291466992711701217411866492982981526162405715513833324950514457052724922884155801026135343375898600171159206699629168384011466179305373338382658865638914072356884612679812356990076355067410945201921350241067910454743615373994698672648714538078597864824701579008362641122231640461799497775076396894099315531614224243185906162135490702285654769609717506380024082175474962913574978118707718441875635859561373765907218195373868334801655805778891441475296320082189849763639352919153140005912846320747314253092178279016339236874777066630730858276860283487759406400409941768571667762037898986524456195537065338875402846661374445401582119156050934939248949834315619881120791323842067103200350250423686532701232173104559123536784085971934843270184980942564953265098216861528058469887274374593876644378438034592720036045197547308304477644047308837095350821179784365110130473370943528866808020747827766148412379062160305259795053077150391073653316834031753667261434442793622012496494506363132074585506984486165442380955884258257233914310888606178028393638396210435552943222267252662268791195383806194316451413160706884662262514283172806243882290122360509525116209068972715460859626471095649077623920237173678865599980933988699713538294170293952769867308041232890966800227569437538207858868746322809946725571684975809893978166540356341226617778538369647594722209448092091204290228305489561691136854955547519490825254281266020762398831587492698453610122388290799426526991627253309129498764610532132327009106645279308589925132841730944182472612446081251986004177635492650724003838045008856768251922823305651478409460719295973527103143866874846136726121471066682489157895475035868697323964513187114519385119105857891012091474850987180279187636318391665994643481103363706436392225577967324600600842269910357153382073737357659423458931863595463572995259982059256901323154363495759653925559046911688365708934460341957918268563347535552156680031335647577664485918927165733884195276096649057245679912036496717714040651907782454974100056234175987086582654642118965285844139304687108638453556616814275761907540883212508693735885613911011387307766948020970280276425759997420369319561783960209756020821400289871693490363707682127270438462301717866043797694582367635919922009236129572447288616295923518230840761608502669346969710345307808775313685376242095682789169032197324019845989299323227638685068277070141405136605610554364708785454835299019348224776503752799735041517375172837531964832559105298461938283558432433212314548994352940992410204137160773205741866464787883685184616534174464364565352018005452941115863887177092496880481265393817959067829422048906111550244064526364567683833955334513903887869839877278566978758931934036110184699260039678167183303244898085062119541758622779789967867188768841251383276184686094594660489996204583278413762868877230819744709918958746864986380509190188887868955734222023462149840474330462303558150136641273617568982929097455354748520193907916855829040149451529660981908895231410539106781910297065701077433246952557914206245596662754915570635074176000711004866632332098819434917600327346832710845518804546755170593570776627751044709016970701411916869711200769250555476269606212267376127844520150190138893918780959492172908763732870409472757839267409467067225739043299439499677227191153427861597836164211539472518417258405489671340142616330497476748812317917977033586749772859951584173115370514837453914190967906082514301052536949182884573863623972598394818747684282539449923122633586819594342235977305630521657566650408655457901277128167389816748481233861498779736951121177271492588474945626228670495966582374230443930970266590333304292019179181517900445574403736844074083199225005552699608466153728056561427563206139523543544258909433228128805036046308223411863529201175976339274216928517196158239181096117608175600241102642586303744409544306324289680982242084022825408380049006977361952665242360179612390485742731980358973796847680393579159390289900703839062579150458414981402478744735348581068102665672485440293240126962262071621009764669999836412034569360639255933653903174168354751416307646865311947976525788670794278582114713236309319992638262778864763252099618978813525381224146936951520668442161483403431184412525515944083505012147595203787855143467083257427765980493285262470088098264190873825272427758597304732105688839798767173139323929194624594937330863689082413220671562710759347334616964388315854779449849088267589450546137163273264419111143118682230974066651768239198321560252483294689457171657830847079947250197785052805198700697640873274163178278554178856408994280268031165951208041892427685166392423970341660621295864292743820189800144115871743937288150557273559762893752122464523223488297345565762866224999737405411110578055424061675017172197030713350599186387179715302256810009574567642955038162465463755148688785453773628026328390746034835027279140284056565806216824856728099654414555909022327586472077893597955751971294441451607510203799668064187876589381363155209115164296515000618528582860649760855869822774814987782051662739420831150584113306237224475524899209936012354006253269598081881654132735748286970739215253730379287011481422186329103019096452787969238953809763223965572412158490754740274854605405523812615645191543706231603260796276222382898147742103157798529076017457659004125379030975762708835047887908684078591198697871962590893543288661927125984860284494969910137120503309381364169390242510685112660087584850262309869120430672504338605698727310320204211654140388501323638379875993200726815226381435337512082206852541057396883365206854143152172851701516174947508148211934183942055005953829764472020765583513513854939898426847953225485820127455923589539862422282245731597277541617931033522947843887534014478467995334849850538252130461965007940904779900934127973863831372335730338489917096422611960518620659041184283903323305650426308067522873927310437045059076035016958705776120420641271082741037326741736099690165381813050137951427239194894674155654318362297330147726287186810259303030588392054300354793690205658025783049703157000622530740281273008309237559224974850122265499021745688693218001828357557435803778328594760648486955060430991545535866350435771892120560821352411449620577036769355860460749395444236537619630542166105084350387210741896306887638314466524177178736268346664752683940095773358651784075682064853643692005975507952437278613067239607345834715552296393613253581625178177456724387068102505048385669921496039063059936599087393748663170004058873920929466706346517625540869726001617392108085674379987701517397494803957897466270201399285771580444850507372807234942182638123202290421589883057380367259980502414130966475417060492604746073548318040061557946189991060515559934559271336147660621022658486581398114158531868351162988036049312414615511459477572466588955110897950276768341939551804937320623638909326466564459118764683697440275036240260467101998986152392448302962664086806228656472545383709871443640562069681074158619226990012492560601033876293555839500884632607760130320013829855672668220650493258491709882641469899770139452128830080147184999345361221144133580108213171154789507389461055222349678779643762806514634778460658056603709208782416915691315318158481582746309505262732215695311798511091456561426882950015035336299770803257567173247875140966699791949767017011890431660634861999830026112926252455440840223475494161147696880821180238123405275578908179638999373187618432909448149118766947456201027153327309949178114717976051013385634237595666571406783663964208196101891316408778783138708057417204724325652429504693843790642178833787376115244482530415758450669483453119585894514624938877133135323673479695566212543083343001138982425062919645049519550029788454620715194302098960376943565625189194963235001625980566284398030505245514635398751192271703842922270630907407351349979210336429760693203757495287309584320668106099437771588799547205612649119525001657860798907258490113590064360675999222836112119587838470741726954050562854588228269576958560686241645891033082534765767354394352944294999017312422033948720355906524636251239741539183987677153079003277987110571326571823834077311601463264332038162732870208162041379795560892412680761890333258850077057713525984834781809484988805008333476653873290044668155037866201304094231281928309930387863894317413713405968506802184904287456382163899214766795496796180621385181607973615869345910719802364681296820118326919872735944144911650234506537070997067997784765216034225002406992086364011585716233919453761430286212195632594242967787505232102608997928540018606231961450083220774500618625410595709308619872943814909328727958036497217130409525833462809178963719746409593978829094236051649486946409343912566875174775558345632406827958058702611361869741452903146210912596926265855544226226351538776302524735885589799633285765768756525207500479566927864318543566854712061774635768904467763016811748523591393924462233312807742978556593094759599831729985903922094576132214343546405571813791763636072103261122363102968147829782765987448896763664788289845221349161192196916575663012374815342621012672792134519922480766666891750665023401683923438598194906909431017299850642883680820483438917766971511547562905024981231062520087596757425691558664534889757135509481369865189859848038591132157769471294144782371378959481502148613907569576835066350851050450512968628968523673425757480053264542246841264059597822650487110789181351543820370853817492176716299537448969533633948282306210179604057780735116784293357372721226606070192704228624250191221906693002972473080194710097988882435098530043426764196997357972410786833252577096476772612808479633528018206264764427666533027893557977212951890927434583464145432079752114275972894704037813258406844929156946361731908079160633726335390225311212196569875516113566247256231812813822606104993754458667918719039516369643123479926000531155610027605260109110632058167500043247336307372520296112382939939318373879463131223576797909421513720164510797868140339663104116829936340782081174321666234746596266382262863197686904178919832493532886246813777617689443520549134480424723906079194377462188287922448787732340797852042886482262690857700668349236599856523228503205883831272022928869490611567737392610742725809355705265830385783260392097911592778007583542711232844650226715931227390061625130719883532620167258831160570954267659156271038802907647517960235940758821895025186349800104513940585442530327297586028537532532151026079334414171918957212311390227490696747357717308239216271150013989999689565031563057223955630578857857162547580429826710175879112767512720055220056461110850707140503844084358364915050608385756988554085949323907538751847570030530001244499322075124946891294006831790426108216007708157295875393702138463139920395272409462006308919510573141648009762731392220516832052448450643367893164597201354323421732454162369663268306323747378035176983533391034605756010606182275720357152791997682769007192887111519659411054215267205852612177154188157030124307923089778915439055866130734581677867767845950741890225127997051981303983957280173097480099462485243795192941023718551340350719754348744429517443624011222243052222966876636915423200980496010893417510381943961385303001273764363330232578403224934700988705359332995591495670650040022694670124499429364456622898362901907282052961057113940473741286031386240030052987475683247143737008527317345859341682338295029785488412588297653039870424577633688076445559551621333624208055037602679728219465924253858381519649802489211811922468536032356260908348201677027604389515667724595011217371359680917823088175648089692799925746429877842542195268088306612374396649746288928153848783817903353757183469599057927002675640240345561281971198637780266378154817905407620553708813147072776983186364308763019653609835318829763632225040003308291380620072671088028633971116078024233334490767729699985935603666287251078461800777758036748304992659366448345802911439187883495660865599147078392418991307280638419395759528894959806614918182259613306467222433228107194443375689210744793916002075238510562591912861752531760693147459987795760320302565948651016328101017198072603606754392713844788830470015439865685068570334124273807284836556856456010885049759267419604491548062938811458335480062010205700750489639361476316608393991184363603193175194255901064711722140646179731707739228149191101357910696189318807498982025453571454805282091287165239501399387814745038799049411223414612219214292048436931294069369907044320021951084974000118416714253299590457839306221139037947982737375597853451956717839229072345253489929872059908076335055880246129435862032421833973876823202186562133688387443264271098565562915853699471977895734466950443338120410225146873927800971516284019830916607629434559018142742187591331083460784411275342439521797789349484057925573809715381975411479473822559304618317869480421770331367678040108646237347534343606189498076264303930684556583856308436868914506229736414208939273935542820241834411439043275560339195461290109399584989241333492224220778865953436170685249944210407177663573429892056772400991717823643539836240440738376977763233337269617440227032147900326569539620767221639625494186161933157481895046362587405490338729105562767705070630396089152949571907473623570219663873498185729923983391721298912171539478516491782136342877841960061412377275899907462452225627703748780006787908861522236500498694003738486224759695201813319670291077869904595853007288284071356419523446881439825099476392989726866094243460402433525420567449224997890009004809572188070875435696253258394087164991195118814536083302061413922850667615495167089927668987174497116637275390156840186898584825035467658450475955415937407641724306048570530105100989729092809072681383525976865518424728549199132184537823058140753839380208452391318299356383199234732797991862621326350269446642317063183000909984997314108058708793933850842426351497440552897250671027849062902532601726836764462647907199391845928597806199170132308168844405341215510960092730054004908336261126539138935888554454780259095284049338635026983994280207584699883463620109943526488493346201541671546364891970970435904245640250287810616457068374117936712658328180182702357876448640847675847982250252666484674451541223433545457978533053691834514643938751360059600888257154897218300654574123402643094901941102573735410769458375941354098099397106830218419275525058680595939689739061831477258400858959686896126020242200021349784049301891951395838155411028763832664667862313556418417148262245601085342375127516307113546906986831056738990809607691833396842168633405359603307061435533858371102447424135006831019033794176483207733816732860916919718866058075075918943313252679246130720538389835113493291480254843900801966100400259918110295367568625637925570842565229803792789224814014346601570996819205613702198939261588698084323942402830532964492696711387102070489279702996847352407426750268547378274184739511280523917480931457152641176294398038330038851638093579044399451618593263160474630668819079048414491091811766144490376509426839267602088401640961404912979180952039681536916679004901039783436410327031878570124672912847964015210946465376477822037095312809354724251629301220040641811258686438255824830853101599359635950842368608803477862956554232697976607586885447902461218456755548672313196882827507050850177922993524673809843062977469107761461058606436172065463880209191219777370854826265368978563871687320702283741909288517878562163617990892450688637911774507931882362543135273487706154427636372520631378322107057631498427476288897986325430495444320747365270069876713043265557243340827922939626838280940956550265741472288215035140030842900121545073269535234303873716359266323584821156116091357287321060976051519784240076211188713190701648823541569026038760876774266883173658187809572891737953108877892913608224532473613174549898817891877550235566663091652281995097306759682047301862180376950799436717309955291396516860598282538252140729166935204848441947733924691732807910329815748588001050066621942862212624851249918825439119010731689933030871514987297308887557631007828299197650126729694703955021646047405493783495659939971057666319228791102226498332502868611676402344574610287556228093692700624770409156980375711518012434812584945097019622184675550715771974998395365113675739038158134757267534361099362918855331774629977660697839405272373257439393197366013521243822499271404549480884812891122426084410927423318371840185471006519346836746290256750338420307622775849128682720329048939388965585754476288128480719057663851004479362208395498286436836271689449871765853624706016249185188804443849781533466942152208493078340206601584138008955865661051623674233892531961961617713809695560539289239601077380478659472128462790700732709731241754805668870872579581402235556102486521376961824944080883019753561421896153986926877476275723982707251443971894183744648217223096125940228992703014786603112273870496418844428801355053485824420516648633786457431014851491917909288008115436370002615221163934061216448209286065854975548430222986735455880638421990999375656104350028556277583037321512336716851924263420480309672017122685319569322305546432947035080565038104234234654979251653675938521732018094530369734035001645800116162868870307035759613873206731888246832522197596312826854506669253196576281728904958648790324976524414463678515377687106497134767655561715735330233414796166752110737920416517584747085050469883659089097655774379726551051896931803091877151764644529980449068914216453462829581106921857769446617105309861957043031267172461208967500262460340299074122258442526338705113416066475639718113864188423879324479329520653912851998071527813390282316375757071219682891617806453413836009455665771114510983081306641519737638344451613517024969903067851405596457988803572558008795617843249182191245321642674098801590018391090448572595840806009298639222058554160046114509025782669121869146966784747453120418604881135641186030712608036685092191081639719663457543761681070811652465695463063284867058433684547626043887649292907979734610511461295782627239178621689914465465182085752895741157863334965551009026086341343626066531987692024362665888096394128129923370698829437392181088530955728401766512775668651362128314498007810799218803289898740618477550085782144951063458440302081503024648915845736745026057729303444552111742467689070086324822100412220547423668711692131373873964124899783978731067003122286538883267055857893642080970000515378141601112389223490863741615570011395711773526574200425185487545464925063599643895192029897882408865188809994171415048945664107290244952452908182446706771264128756662136675072683070931576201760169337646715662746579088546560532884015589477024258071578391905116071913576596889698002429453931161148000037453615818815697547087005367847822019172032877992104994162738377302876824691863981594462425911856653256525251242388744382077355229959378284221543994813707102954716295958171154955537584269901745147442726266364054984630484307951812201571246363504014351812032856933048834468393219572943347267841055516443946630568306083621157129097519357544588872280873951936454023904283674052419681638961176336527298383307645222445419932960924119024308070250100726474149672869773016161186065196807220100219301684605921522978114102771987535160199296967209826069921198978668665634654931638967654985352901700588268289250096890214349191517608408333661726211099132083511358057315445370349852672712360565915006288585529020351395305931079082268958961990297116354506711113066347331888168250927078197444710362069136111499617809989905865420507148244721400325769994594513201975006531141698682382388281230128645086565166600400017582900659158762021595314668102854690141674223728731030917372686967471938041769772796318679491991637671086247700992498463969588911857054715489134794284637301787655550955845274204371388309149659139095582012893988004865145781510344234303704789105853113627597514210072407639955421562205925829652008908034051278472537083431163690922330754834601380627917015783118024070291502652101205870108404314238148581722026592372000088608862321732376347262135284801373851295058723421084974783251736953947502782109728642205907540444149304449515591636637892482004017096994638959703135752075417563983636059888853403243911053711094649910229219088936419479484763124989205520442917000451608705968629488289628737581972966769288973074151785335422852904241309299570539455282240638446533085403216921092139892566660937572235808003508771376042859460185270493986119345190617670456125840591033060427047219081422310302972049011613386521300231104883674977924733096459975964940265348278558188485740637645816506001462019488805137333264541837710796252467021258877697087866829639249130911848741217695322765434748295210019051461463849461363811663755194535682702769211883136452829233280542566245293859062402969994586114424753707097149067280814598215803780334946951471525186603742271871541269836399960469068680728102139015056769661679857828713598473010951244452731692223095078091967103288597865165621386662820841026481188995832811002258935971844898104823038691121082448248801903180773361764872778381816573218228597021601566507145428436932616751594321355470216568196955332315639370453731728153372573226482625020332707953766270982794391725086520486739687461228080996510367250375445042798722734505610987311227686520522127544976150371130903526709885451214132158431609999487609032941172483080881987757619762977660557952887444349028204299696997572584918484459463193784798749089629473171467282137189125076750239587029872266558032024603015699013342138916081381121405083544249385836433509035550425327067144728707651228871297596676995983123900954609611641994595056240319326169516050711314293356418416319648438512652171266692253228566345459468819793359705795745339894571556240937992607347791958281637217861797240631843661813109907086973076443760476902840898870816306142383136979007135695118201336989157892836275674104885759862162556346230791469141570685935309369027811758498507906643160649845704154577755721304698429622882856569462116534957511622479215878817458779488505096957001270091762310591852743458437881046872316070983481468597056536411994882025686793360551236303302036017022133368218046485210852941582503995325497772288011417693276812572086908746041256379675073692847990759632877593103262070184787690812445932482102956963379033606765062018335632620912272610234276571651865393354980753419784820047600791929999867440283835340505168202508265290623090709668437919364628393742247662170497211199661488165718881292063322763941356680510668109839752763519027767163064700335926037310311816869861318960313534873833246515145939024264987294503312992289997585264833609541914876592969195346604709975283162340288539589241813282972930767571880171192207858542048853905384647202311400021053291873420946068379371695261199516225817484648617396037380177140155323390691769642200290651412364883484813108585692324264689682576696687545460733134958181749426141166018272854339946895178512636646039114914235125428738311877540253913060108565725738812884636003507897462424401135605435815739910759663096066344887055792712534196805642689796408264522154844261909102468953256068004507927366560704106946895641412943295375609254472569093613747221185268463338564600590045688112767859060999450479735301726505675006546755028920824936672279629411418244425941022258429815487629598843049807730758941773888621857721806475315402317783481766792064028301396724645404909029873776463229532314632558398358201244097968725748979833746682166144025988060892736979654042940400577501317614800932000845089479288513328069374019595832393576512480287283410089558796556686650004114759560205207970271424344503516476539935019843940848883403420331878402190040438726181564861349455133297976765425455668096433170208876358758984523138919982296558523954446603145754676896495172079866695894835465223161242982039773923237269279142788337042191346722620708808079753856600886793122459543248716233392605088898144866803814366652671894809682195822447089354160012293371544251434555111896248267263446110333592863207015442499109005901435152735425385807971093881940692427978293378315074946834544524604462565822154139349198944968368052473544695897567274272283150068526049291350264523569779354754530782735069838473729786081480025905899368628344622071628043103901758296367580001380202323061551038326659513893757966967157108851162817861382595574535531682975137963029644833000662984112332483205911841602014746416478997388437466909173148973040638363525282718402461119159716555747277795589601105098341076443466846155622118518395853206407837713298065004347926411330911641881252428691377355141347609834539903515010850401912301471186731187907699133440378042817685658447910818441360254608144742611369902323581988382808498907467527431553456400580632064373557289021255360362923161416779762517273850438405610479302823870087448633405206521936225715701762093456951435857851598237283839661388109653096950594625042066274926989600319614811723136480628215123799236936305762405239195048764532973158789067792259155307622635431542092535068515469053141707800139483739704976819872016943930334165651715748385327487275389988435690369784636944059481525570933683802679332814726814839541036133892067891840414464307723839420583635983114930909523090482024934499480085672602504861819258412482950624725358523906758229772640323251115435105534885579854541157421705453287185039096505680229933199516432879608602673553301886211310677612484711394689127475846835966286310872010146080689832739586887480868066173524109069566149385738113716944165202226975623867644520292629458146884011082495344287017408146977029508950213079890140007473411655481419484927279506448124675727355989778247335988912451831142342660000252826086864699886152086362988996086701576738169664417398236798564297833752993131505734128390739619300947105398305654770081870403244690691844272247642332450596792979605062530142073643356844708073615349933081561230802225258067658564662771996609313388389622981302844676481772343725227984587303862815441550429352924664699962529664022973809461557656472873663406947418919360671461520568417220872977494342692114983020073425119100474318019131346316115782275685065260728367315712371928986094117562885499237310775402728142040387287110871538182972594821099402971811339043367531672572391042656264045414388571648681293798769051142790697251635848042933382725792140507634648400739436657014842739749310062412776837708372313257620533824621051248539931858439817091834789955329218264278145229525771621350709172491374830998579872424544763363937889641118452523783344116181128388142239219821105987022510464921433783906868111295349761621806931616863786860006081352572027767038375807334006300509399143541081699631557973612517104849622209790055210378504349455197781188756676896190598444196695468110680340912453040573392331929702779707351236866316922094363868392407592942602334687407924566445062137903495762649530128702057220813456443866776418521359793660669731204692410123034819475236117736394354242833886975319933967568743316128299506229910047452864373013367764084017402105112084192617499141825298258239757700544802926271022151611385799926342897361045712786237887892176857491725093736583656522868963062892383336895709733290367300542585273505050415475597232893853394002815009940366237841520482865122923641252955532174452776033623357595214200726354396063567004609651318342320880445764384776075414509517375669302884947226145508036096581997825125626031776812892240063420615112330330034916425904296450814775320390707256595700142254486596006035315908586256039440284678584392243359851277540369214218039634173569606188649321321197493177088132470303717266850510846493597824611287811749152192478772959682258483046526290734290317080257202855069838201458256789831105429018277909344532869226693920550414563965935403548869813745694500922330205711830219194038092470880942691352418353069781826072899578820040108745189469287742852241383882345323753125575340855924965493353204213770707397873095812513681057137883078444983722178134657150199229360617920287131491182661462544480010321925367057548527178955619500387687963948144163497516738251242502468062346474227849561495851584275465059064657150666422467952881376765652069591177394014602220490030756561191724603663461550884930079581317043334653915594824340077889914569168944061760577862426552041532798801568249526908788227852929116590459519142245369212048662025992211346925281739031777523333259937133116470804038650260150246617031138078264302513939448883290334705961236976565519775630882604681853637995956208362200745694867959727624927609099473223930798053772976416707227840745396407480221250722922835010792691012681258585370848808891229533283303394655391660590034695569170926229796123784043115922009442218669325296825260805184927278868530830788061752293347007607226778854259064302496823311502962350220348616713938909722473085214898357764566256177728878905557906647985863565286680477911912454294242541606507544672251673485906270655968886895211875085706854396497704338555581461421412248824642752130024678645055976973761716790676834947821336955422434619785621319779682605822950509582128754106074968519015888913586424707415213036629018888478204203339889200653187293597726185841676607251154647738714687585780942037035874049435501097850841540775382751896402870245947012527343694680953436624746081114829971016442619441918082085477863742509314112948704862788354892738751807107049672850032845014494578777825368450091168166101702154340274094127107763505602540028744365291543860880363036577319394765994088997206951365407038587003731358911842120930275001642867143060523627315866210119449300922780884301653574029201953931208650876440617756057644970324356639422787255794644378351779972325952889541558072697754373851178328414348089522938200431810363402818209528388221806857418082673349090619302292822370210959078726784167475266102852023800148851723040642101293073674278362871515840692473844911852874683038125405552443185918568661675883204820589836419569079996943743684104715789790973392780291779506842040816674213261043477029273132413663395952453833066344028978567349428994035680311370120356643433458363451429974910676885896777285800315270584814353915845013726211516311758088929605663672560682157355610566822364173084182214301443859820196909176743585651514689508642702579302928199327048420722677336023987980599134997357437696402795271215304248128236533229212735834724311188168574220846454742017709537458308426110613298941873016288909329535291360928719098009247287145814841765751343956638247951285045587457955287727062355373630654688639469868783064681249436355754273736724742153088251374271018440017299530895653254356378955887662454076980324460631329841278913424560804510217441955140074206205329184762652016309503068927569574019857596603720401838557948707021089642849647748344565715192223916701863169533915649391634008683462529589964846998938134197920496096892150293444622462125242335902450980290375109666243530030117430396931670926882569156611090241018819107061259968838738857471547319426476244367876923085845146004585850148109692960055612226694428190402974466747332108582760737036727529393432423237297951776849093732704677682583958951408518214845571811512808294440359013949311682407967985014162466830705497806014530319124465423714923193657622607490796452411361244227248298385579990184526990163921740018473807852952441150598089998241656858546630829887906193540550114541693682190217480486610082869570535798279264855774772288834431835135512408983895923900282897543335390373436445082040267464350827916603685087866192131079937577450777230888764117592036874979283752096063290318734716967946682165335522568169083784646996557963396642046715601342868046431378467324797779302192601108651387271122755029486610408139336717708933739363143805988778377340335730186476523631398776806490414425028487994698255292507790784969012046442194297415816894593501103698010220674544566380344029056716824147559268657001377322438157568926614958872333070011877193162043027521148067616672509707074774968843455842700984841081295697100659627865478815484050150479561138349107366701831788667263740214331197450750592844652667438753520400711115080458296919672269875698096806796091215061096307986874493836902481560371607932910426593374487298517010407897222031222322292219481085079306717776894028419219333429288844655770424389031900333759232054091950873831153118138622731129325009650733900061884494824377781097363788426820607699913631458894418702217446376004052944270211719417045988758967772285203799660197096672895999552487052408434590994409247334889627174899445795824340775647297735649276095386077917751387621004597016829416734993198069514361088818562805222823613219361048016000949051896727582521840221236991174644254539697256927472044790911924571286763300389837872478112436172328901612889282558957685630972752700032830306221114872443854744884910323896989794062451861027514510856007109908223003282129987494619382806849591620300982989074657437962570795117086763114203203411885962518081219360686080713570263197447700401725683758155327605477349469738684909952712994308042900096500772367193237710626433881000202568722751013799675161149338934152198043476417819676437471467445524018324886118339229749633514396053741452681222815486968257466495630155709587839279038532747429163376492693300509918971526603681717175293690840188501868891635260033097916776324525330536683916651491261400108816733640721343197312013537838140899428713315886080371198852024763424670167386759152005859850041111945547855824560764937840342909605998459572453483672255624256727228985414480370380352851755301271444793262131239582598087235659021669803504844627138032529450804710753124306062324865473181311887633383721711178945347373832189401571032699819983049105096172032624352312725283569554776949416538297609801855845553287308128987795421345782538890274364532378830491415414307842232959132469720179226413677289180699971783646099991586665569819074055810386921225347560428429861797105350953368223482299226725318526323589528487889747425166166757722718361116982052041649899978181960061137468145455697002915375053907711678483222155112799303744206884091492417292771046006205114257632486229829231931260184506608268809076969255792368711485839469028151606588159548558077951208012710644374947466831533112667520343765622926483465357249725273747976212155264122643804036078315249065170522079303152911656963242695561543656228203980630321290521994419062479301633663657302951801491845361672038110051185239889038241981986794463043420370910615283200656930102740813876636416956793526768237902496373923435891694757047432419726940409736446882806224117084209247404403963515498368743101124363208324479321745586635935103141398353308464375125378115118043863009330745096037544027094044648728360554928302168254286598747504567246921647227169662517836259572874378614374829008399250930037746391297900945495786489614152489612118045524022520055035550413354692248048588030272052722801805153521813006660155487176319161284475361354868175006911387305522237795954507700832920464842462502819111507893748473619506163444520849208513622460491490031472889339866066088904293316897516757600118374764059289193702092719461577743095914440282175648928739084622336169949767584958809435623995369922364171647678680924389636554393613912062091835877025978942662330227879007489683612237801463352884344388807215710655862277580098830137461831362209783985288500904079784854846337661466457825081797070623330801312326672604829076889278530193831796324550055805521118413062274226194091760857867313928499832354148619365067919499429287136544416245526871048632557181261526969286387783351495942336425201008315472647756421096821782377408506611888208242039435852165598218309149880807981679056293938913439222233003166217560448954270600637020721321615742444722746234304304743141865009043063807024235307996817281212855860816810147253070125519889901105747083187312988049779029576464358559976903329572661224819141183827468729883156971477281297633221784789538030170150067993276242037486267459757577409462833291148255681825505189966101508114364973671125550751699512992894544377739312522834591211738045787124095069229008565292399731798547156788633727183139377828324335238739578805195530991346203700772308314101758645953361013104319089753911352814000444417217862831818201520093721601953457986256680400798043137257987711914925653979379500737932559301283536501957239123243730764524490304468996826421549922519534593398245768479619277771902850468889699907364460535873138524754370906038540542600497450326802298296069919320770712287657497099394000367588373124842603014763653071817340861376007823914333503101152208649883876114350550960328198055255634180935863190612463645815005686101503113676227698311397693210125897481239211275508369557326273308287927623334080223321107065322297813234203708821802179098271284293597636694521243727450387512366468124497944994770378736144712420761717028110700426506358463271832629905781957004385377685630740539400867928730692493816581675921832883103279480527016569683012897702144234918076089150578401060837523507760427753623889662325524428047738123017924249827118937638014096812975775112858725648440636068241116065478967865785440557286011225232541996346917473083271730728191764384481205174308063933336159294473991576413174549541265069053481338141301736001651192569297435143683937005287242875082668488436078335500583835187144868785754923104244148233458690759137510519314552750380929356756341760554122384042379133636816411963368010795847700114933754735280930937855274216617981689518847463609159475165712747126350619812728379421066705419097068553132465897493566605372228245241697781479286257378845088442632408104393510452977610385751995872025034994750469484305234532657233613362311420779118276499091356297071687287751555114991730336014727669588772005420018651631584557734638652578124041627346710849785855985173010087837335272690081701622860445673135723633127277819274835955392739242986551183960187100782050637414196492446045400730261540065491853024603392053751922497095775685538034948409995380695814806881371095587141118938648911697653584172793495061818869534668193055821326621673102431870851847684879945211900325720803791837302779530802574034407290185044026916466452093299377587232361653180641627455627722311930969097234621067659512989739902519226311680515017455175585764297411291916393607196239969791612514730910596908397396936485994090413931995325223683585701031071902292968628395325128507840225135757009208043895448964111357723169624798162138747869680124822812805913677831454714755699980984153145616262901201642584547624429248158527919045176884483905729007625471479121663228882742995931345519627344955182931988794102305708870228145471082160809670254403691260729509098154820932487664864304738001301828566736569735778328424214647213308858496033888089930622808999265173070925336197614895808824694179663357608856727136296873827933101309647696023954863563635880892409099952856707893546456678519121920612940901825150086131710770083972669001333025832778801550797374267609767407027324937428914290993056273374106990234847984750245388267731923310035914161693901170740413003123995080811401857338524788725579599107203428139456885164520453985053358307755866003936608591166416355865045355513913334040932587326801221870444121038952651877131870490657279134556637350487177385619548899774278190752199774291716182101284130704056227169299368687321674245641015232117021272680992642332076309344962198605517077299942419077920930667258588570919005256146580693310357990971173112092715715301986557561300046829538867828358696936495288720696296996650323230277271329622993357443577215774939752492043620418888529448719259936224680147499408954902423630534752321578399757961315972722793252843379800375989605793010122058208256911909897564561193961519728478763668774956236060816244948519419866089526968966080720126003950444689878847125714832899662701020177996611334109383244537357221947115440480512673111322118718338648448655450848229742833139745321949775517596467318427277073715656910860469755910276615150040754075151151646956031229322568252972451786586085408809119992768568049467846370988593595479438675328161150017472163022468583523440380115868699038700024730315256213971961096167120407910660822647939987139655675885616553668621297905333334066877325960489639307097954184174250483105586425552316617222153436501806624284340423448013382962240113075719128182790826933170735302350585116138393768719854585900132196937525603563990675428361932472059848210549669383125857744691855758665701759691839895510112549559287237186797964707618318126712264739445487358086556847651798130763784602543715787545851903581511659188062997366753933420324667336584758983362345035518713001277401985252964570122667355099282286090935507131922433492876225265796723552887672242822047532026704325550009812934338196569501398974635761307940999260515369806075035448520199668594786072231581301189921630921341417690460862721358102560207408876067669543585879921915085804934949552818879597608870585823875091830583919829712374000099846053031867693245092597594944170513648733857271102135622849922662230072789361043061927090530010231990576288851262894977389509065801861772653709480372739484406814654038094050089978340253202564887510282279553901863176924674215382116478960945962718970973199593761971201540677475226399142031215194359387512561531934641169396586032111529013658618780582555125144086422124746132666298185890530705453206918274760503133736206907642297535928759039081481536395396124412102434395864775092835239620361535093498561627902289536788359886059800819785499953130232693403664782744521458917871021293080293745820558856618422749551946667729174206549421663498363642768335391591423105381813421505250611309088349784738363690811929724952654081418859692785075361281095608004624814159608487221642832573295511893862873763663075047063120756657806948172241733167105203416689123121450312721848224347206084927741508602674297353960595503568038108705129591006088696770040105139976296857191269321356290802359801733411746085832077092676527318512523779787436302453943310487492427706629320568445902266621234679397026300776817870064477931842558654395941916915641949002300358661867403032720079201741938824059385072273556039105694662289138308636074511665866978794057568644467416987117128016730887502966503679323584707273772641290300570420049056096139278447286928940996716431402825871072897363348310988711980856711189904652640253404158898569419758260515486671778067387578252552346960138243093235396160187089314801623159240590905666454320163636135930070716994318757394754750571403182603104967172373076981611674131207164365921076605750939817634754242651843203155015795790010434345326908493194538351358344137563105771039492157285291195640154225622217493455166348754524749942314386916870632022097406438535252152409611186166524523606622659568946040307318959511896626406295261961038692815447212058702951678995035367195877830346336475397273171350551706008754010140148684732094650094161004408336102394849090930151385002062237305132053192914592613747675787674224717671570508125451784943160017909797537293793752504289162057653755441385025501566994952579553392256228926151594574555533732561180384799034083006623382473484403635895165849175030880313192870634542632794331419726819917137000254210876718346622944849726800008614337428142962361399939593669656371028065984179181518670696750226217786946869585582955821996173963300703181132863526846079447034271773695955413568134114539221907017243932532573708371688892899929084087357204438878801288066830613767998033912355655624649913056914789195230314712582528842946799203978062201068098431466510270096784427225287315779408762931133138744530680441995630628644275699445110280807262640600664170572072185984934663486871562122010205379565094797892005715931110983290642329527570516626913688555085777599684029612370145756364226780480054617695760228361289893418720848465497673558749721774485103293859064607181919141816635454055441939536462900378769934421334339439006880166225680446988248241218739853239964602377747595910488933352796689153158376957110389911225393525228949148460153995533946854829818177943330745547354834803609692387849626365116386764140432500100907714240198125423800108680030992384901087505168948009968375522992392019821339027173603013144116549431966999647430724109953322431212552713796121684972989434607735537487190037928822628905107194007958920138813620522614777012032462663593734173124321646669736452946063162157734394696062683790291611755420516312709065121346987797540957553821570694601730192217535402361064605369670559987412255800077671838691676424090768433242939049525525067525817903216910256024878679312883652215810716186184074371094658206335016274915664617302413595384496485474155419736898057405675145707143881911854077794091548801168576205835405720045860517311748610007357802930332464387653526162937044064155417171053818218257037718884269977382831583021546210750252082520748272608516950695092963727508736658909084074846615498870900240931330820747243004603454816133837852849579649404010502305774443144464899229358023284253853492445232514711051185032938021430947435357281414732465741417220895484228887513667099426107420551200445326789363662835991025330291901687357874541930317554361738504056679366560168167853307144187102072973118294767603776858445938282964596745142064127287178031349746953401199531676282474475943847282297542061640811298593240183400288484957776091806208390178885689748837079915781442660715346687093884854637116717206141110441445542403244794327983889268245845686912924325143417955309491691829046777613621737290698200487617149497496787490133718479111979808076578176675946100678768854639187571897216878254016042538723593259138739513149923592579951155052843957221679236914793711416245629142729544546098690969763223234538582156524467108482800680405662771751449732631629212631212822093942488671711084992452862013535077030922068454415151523893766038529533732326317482605260402230583788984314151453021444799150626950036760181325507705423342241780954407141057973594377044485843752367987581135736749414255441527187815737302213958606145735208093397356244835307943061988302022455056238751154935477734998959775333727854899933153519413087347298380241206466011416178770773618218349469377892857253405663504139652759941995076194415475779261188923957880708860394128278723108828201406576938751885064710078818337078462861098876093775998830295237178203443566917905988779596460350032893339933736315713120849372192510523186770694574952276563082794686670481515061193452080400265344852536747174791540692600905120851911060875146192511363587393713008893289200225756370882770503946687797566496937613251621439027067404385209176004248057422074483736654223288321895964538556365049183548058774173367949669444074591487431346250428591911203598886577494723678757464625402752992578123717369056591880330738107375892183551309832861071260238450744063452590919906396418850717964082401288811170110746936628962698440016133733665829672986144139338301145840155089002463592890610729393117444561721487091008982764880578218529637649982489466053836682483915505152000993325512795967168751735361078218649680418723099279436640294596423806129714295737994475893295026877710436706905504571108817246938334082242439696455003186809443183167722556230597797389420504015812151625855694298198442913781994000676450216451717147270387584886237878840537130605343775298340922730934009532814439090926650948582641977495941653276985584462223851121321984539136466295734434039538438106116620795704965661420123909798274402617299080705946856814321745467844317605027998108440078327108859327898626887272588833853530662510645542044651582232310034983745892217189520955290673486945957319885980852473949628831047345419281893448823799245490815167106721076781060578237548077061466047210760127312845244531230464254706271869589002016233995848212422901607005876736574299676942026980845982487136771766305581566023632535541998099923819735230516488979622424548719921508257161737979480718090979144448076355100544815158378069488598519485979312780024036417088498919782154134203565409421986829531475919812718575824484040850172513192244283284812228854236605374363271291760234296815175282141944383721282743404330892670994423684410745270934139446697044121321373052757227713826583445629523048582676249613359413516701459820229258901165366770319034790017420194456639993633568795061568945362337070558410896492560749342150056982574841664345373542947041491012074767813351093942825196491719659930436554858896260696252219122250955940019626029637602341803555576594575979156176959663279037471879923755485237366233890965566148227751312501798243117578735783516085988712121809428823113885122805470756538501049592774436373847052345662384181565604562491200967668406661473400088286836301690280924101055290796293981337738105929747743912893367660302029309582260121508776234687093307560700671470983056542563414556087256098583008130231359178620990200668977647870106388635657378358836765434450009999753127080961937701549523553148973205078200216210320268070972566089879346115749202688576417657332481952841162789224719967735297087161902676137524221604090480685451441244407364752313380243356111186894770027394325758296565978947668822260802760685441625167998589040776680673139449569271972663406324590052134833191141631220262925406335331724811976498888513223125004339095434338255483842106458187068289033839494864235518011840914050115436710044974296465857718585285490747538517661469463834243911416955491421171152495089567453244943360432315418022732113696668739791771309911850323695503270334166215582934414203249623448565261132949913075253658948977178076733403698450073046112585029146767127139479418821971099609693790902854210710774842466389997802219948025542137767947881589930169649091993801594307169599431198338924703420391835331167191679461680360232099485456301727890144563700570663791869550565315702040463527604691266371257796398997236722752309021584030332582221342121032457176485808036146096686486834131424624764492672052175143446510139930961974878549532107303005023247523723640898577371277767254982528654354206158840710787310614442648420694087423037945766244122912933830350138382502184655154984426561809134073154491458827400998493643628510843675904676752374219419357588596983830754554924039392124593061703288425294680917271624526592985534650893785482481800111383709411486380386958468966721068143250601126412432646141145437829034420523315119028136377937683448385706073806872948952545875122123238958564133327748294029552468142285491687402390715622768922976098706902137709563316630180687235997970577611921680303512704728859238900580908730913289633864260443020809798282643669602638754215628536000481573891458834260863864211307950394097334557219863964552735826067733121426994089465843082641154540310334735241433834118225111247333837790826984453143754862406984275459096099559175225313358932880826322718617412133356057316866388585748205788547130143995753396556317210362118617907831805739340606871764952155367151450088901079721599614544562605063487533101878979475139130171732187190359163270498526521321137570719639842432702748308294872747141846643100461619776554647330374452733553915850667774762616050381926772462111013632827837508209750033962497602286868473065693924471834579640774620778802706389837334404289618687775928871016728446373590387214011057005523963334406147390875116245840122487543365620701608548658853400393848060932995788012047401837348741217119436121904597094282938236108114538008466041743746927461574300779484501656292082276748115932107089125927545749274675870905451917056048394694196830524658386005304947086621626579937964380076085282385290128817141268888840536717309568506525597946870251790970987157069921072550281095719341900427904903290647518856405976216677309822363956765068034562756187165014909889168563444939875520701464248955811775035655294855710515601011195575321188809956577382950667272147605535658103506569043225689890659949868093838301737026061434664862837399954570293608213882624780175084019054144868700198959059762463010599023152165827966539018536709082803595637673203238893766033576483404572449191253691573279896094801707866798024207810074644570232413777262340538620312454185495825082828809577758104787313118280434894516568683646194433374418194841767445065110369092234485028309690463487742253826297626352337628761620384748530095293981113299141314164986683545429827016459583615626535735494873703535729736972545978955588991993092877092495040225592576203758802063489639364908116198105746902892994584984216563063832902140075653786413937910021927481492663300361478864003648770639144973285571104320594584172607214449136453405949400523710927595220596414379046892140560511595815493847012896584587284984819870809860618319357227572646024495678679758160464997063527458247796118810144890902880109101341225041869562089007827276021294872390601433114169878790364586692614390787737670605150591652714937770401945048239701141082825448859556199783747373001702752590065961306965874685081166279620482635780320515995768375402357838187577840291240656647177871619865676552124945794156592723252388241168504015981258298161233662918713614135745298541731832352582299279102617247795862846819832921027255936199331868034298005221263614701843987024821662251876057723654305789584578029382063686063132537038486867962005745882160382333616739140681748567292545149853880459703025334152941230004701827627261701448522320085704129932245761969057191254418785548797790658042841927952495710241791677896384624346753580930631848183874950385426483995677338074437156568342690918045365796048803296872922054299880979005052881939588111805209789253250966146940520788850734283936471550719403888921480747162779745243717764016486750146739570223757983152383545503375453050268736112207459218221716065476959780882235411418394531017766907868577153636951094947401974873682652739235852178187963229465260547287052414619955813473279712338884019462602511190096745920843667383191150689589161248283898519014012418197779589633822057222907946890895622952374727131997923449384273128252571097311955588299399698096547706465808581823795304204834109816125357198252754749073259328157647200879320346407815317581232665418678479693784674494105218701769507971382359700385681197376744911214388206974356243558020223891610713993771612386364580864502056096627720151648807561125803728957618230813636390968633593446052479736620409220717497550175660481766003086533007113750057696944835628757944971756066454596467002305071589127608872997312693173371403391733948692041082037204907483189611382154264240241910718808504794184613422913514294063363199712512645058068610357264397599783913774377149749002308832100059797190674479788882931412690028790125128999645711105142359719961395539489570778828573454069890783408888750192395645863391407600748144116988127063763751490744791970995252654410049627767805488743594164625001272878286357236631387653480913336967640810183304260689239234883141488128610925842855233029764382203876006977565802070540592674746842815441776847267862315107167371854242647155046105600631299617166328921706467127921161400319444001413006535101706415856520338682042481439720236233069607775046568923502633936173873623089152210018904292064720061523022448602997185260335922491328039373321841607379892084253107070466478278586155975032980994124057809104399998174204321726659575752346308145699152322148127291459079710064557621927508557216330074733221747389712378315510919035043935535880397897571837195484499178614384295063018626533608837379532132472849770727842019286660336869127557349869389474635400114646613785069229899551129343058501252618122460981459441064096959451237157894446951060787301118652190625508772429324593676848494767672304905478116029154482639251899927346296459325757018947804555876791838487890420284543601405916672092253145021967294496365890488507452875542107876472479738154278649380017187261018571035853709064372850165749642250385419842547463332029469584365695830101124288055332827342992606805256842034446042098808603100380381026452901044632765769041423067622214828268397195222302727210498821581535470746227142254705231329858969785270520517861003343975030881398559235753457987556150879947466209566092075780603015929935456120826342638772907754629660376859747521974588644202101850239621696661658362886573085740581918192151129663493234232076207091650565102838382058301286266408913201487844451559984718558358292146914099801745567685217696674975764431863743510502103099896118575298798383723439911146216319657458742972683340333235127174148264665990460243793130817915351607428416069285129676673170994917760291461370376698302361295534246876016528261827847224293453604796101900024211221200147801654798466727824503427370367067357781047521885269029119061245237237776988201135611364298009736858995128920549828019715033014228792989116496136734028551941179003817247078273211088010724776517891671715619290190139354707495183664184118770364200524482923020598258145639389099177991321724420100250041835715868298798165521747039909484961504747717029878681839023232827998560738005805674127558967768931730855289008107187216104465452193135143871573309886285020664677840476887301805914006552637805328894024194001053069385376113723954783278722133431322698363195141016324628843580294570629216009691493483244915515243917632736498028073401016874901063407593953444671174913406029672447150369087246962100326862760493763622027782193296128652024133407339311906904110210459172791150133500534255827529395663400289409882940180815849076644450734018131793257555281812810496632299781982349325856323793188247294337434534432157737362770382156724150569739345914526433314661311182490722879503181239718993989971693417222607434225701666338099026911444142059799657084113305306293411234370495782685576118221817798795737789135860174144211978500237473737789996680670433019059089198293449505891135097935250494990598888026596122783136207502097514541698376374865449225651934897568603710657026264710154243291427718263438426088744381191947270361363259690852800099198199507717525567804452882070144883933434811535474214660148108499818486695732245983437509475160092149704228787424013381779749065738202909589643441541130421112954000791322054223413812266386570487553523350771463546694710305403198311255794890251597220764496637440829914084319583152434288772462794984394825353347758851571521392874732082994038708342066043940881476611587373013628265533640296190255383453015027327178801754193191708055988276454571555853996170971814325262267018037460446119881978365215052498774328435417616555280905015299463807531438991529991747372863807826669362463881653101706849405703076580206914254997562183605647542139752577024334278494405128316700179934956260440919814648891652551726684424738579091235021448964995555997115609987394355294060611097755140892639739135952415215653976925716292454511853558615027466801012626912260907672498434910781130474750432342786167912176679066208519901448504528182526002524647968499259078354467279467475434567582141400249322420285938072124243358408092421563074743354250401588879523774510750097246428065467368357248940723363656118465430372930675138204779909410095950424108012790331031292282574579383484892630063580996510242176277665099139472743534244524319031233748834271591764139461961646318028510699452983895413886288124518927673191969290587764939802556072135557613754126630938583943575154736952380050991376137871622761870984841031170444007345190906750859523947003083138956044206104396704546269706732965096904212190320565355730445222860954378955810375081822871181023926909085763381962300447746719484538682584529497757730337831594282915396673299177651166026456615384520148490551519498047198651045584099120879914698006190685816009412533134093446831615921893130127554388772379892072935794475306535062168337378554753876405139440181988738802259604486905642375107758795619902259344972809075590488243296273833916695798168002796517881146532695184774623435538829061420773184479843008971787706079802146820676351194582490515697456676688419963940134357303399408338004131340652889034119449126017508448201292297973233085355286230143981431323317652353398155784171544243072232557190963454724480017270271394845126813872401823041195409428602444996080509468814816607318329802841459783908231161288014540063942658419725267820762761299561725122468351371352189131594167812147331729907518814276550192403698153812528690485203018500251998111758337969168896002115136594603667241371084975560949530973159487321226881077476698097874193251172486807686649602981260547310819307803226383882789894967058785957540204503959498464112517145515309781799057852462001075411585093005287865974498702900323829575865495390642640771383049028695421836535607248870001968949065259510501937127403351235111251032322910522297064870199777343568798615219281903951926052772549222306004345477606232239069909534929550959137460167481332915549282768027081973154132091751464657667677930718649999841533742221097391721612819711259455404474944302290959398060116694826961241480602459374239809181446985581766626900940003770970910134651533899944873655058615903748668425569904743415511261797670782191110304088439433534243120889925174491387126395537009018027353523380323307443474742085314414650372530133947161062726623890504800793504266934164567866040087113957647289031015628502243973595290947200617645726630306569083862277266092198030800014579964851135112584881917918588245386119505215540631166801680677647415306359954276921508221143153222127445448274921761611808033917234541972779214224314122048012651126696812322663274765589850501723681321138971042014215402247356150493738556514947099186617365625437478269537785959671123881956440332752654114317009455880279516441901715787910650338306983068770289679224016625863740031076899733247024217727813208188951885586050027743508989244088393969100292995806567106324010868890174380235817706010276270046067234820369224005227273894953922710083208795741450459953307725208357268946760682073445781077661538007763590298320241789869212872049625971457638407499220800788605018424992571726443372112211267750726804740427047424030032357998860899890182516540177554239291423657507246366972784876819042425346461043509665280405415239545502358609482633375676868666933397414660587461095323629909940056671955437063930554193900634235214271186819481443910803057836414094707706927275485747970199261929953302023651043667029847585829926282543341684626555496878313560512941305396705663261374769584525608325192218235497035979663578848026158762009240705925277150807255659663746614837976685845769121016000319985873597984941288690759599712350831914700778198182936886311197397217900134081004593916298019486871447013954220727391353637529345187621015231631155206091095805076339134515497085847708747627207909824438614517224388581854584389190450474494800708205022729098670651241362202167598485647042723123424093214380191576508327725312850144761456288378135278893667133280082883945487955382191639466693589565107451908098548071184005361382280073867618319152569862717309252313490696923972788468632670601176982816206231415127334442026483456549426138696233210864322258199532237657846250860190718216376272020153879990115764465700438167911618541413258850970573220682655783597029787329517314237226064461162472025110366704861692576124640459062792219035895438292891249663709082237192918070515768479848003634798328980453460954756850549251797434452947166055913914946122494890762407072334851231924943673196373054143696039865759759518949761425042550598215113393970947419199006906308588877794969622922111781101617484542697938534107877121488985945229508409951647752512969693523999790542263327830318974186474236733013039955648529620590515886536609578810032437390364001731016171821880384761833846721952891940510386870240239196234583742130682592930768641378712397872631924259357725794993291596774326202558337946524812546875347101950988382692155058115670213414171482804171374983075393694634307530892557395403129889993489196124480000611211484168193396670032572399674981866870313804422814229244008316528183513595877914428083462771364172965237547760750405481694963168411545180894702811705992007257312444325389164574600853654427795212704005159411840770740887855385779562684584931145127238778164132848359682275920110138695743486453353311198262836839854824911051683101633356187758245796828051841566826607144985694267461039573741078577163699269282527719362304069800932766806423792600705623761406355483705973129709325686118658351442153118355869292736212827711060876250804840391902523246623831921663024226641523743317899186641019644819784154138256545535132375403609971503133294741219059113424753069622311720854689708416093483635745929988310831473484531026111931265464477505228856730466336228018958743753489199074885428899958784715537857299091117356497906818865741627405901291945417282014907921844210879473085714553379455307177330836994158224792186771321610092905385499657088410690754731226688325709110795039433925773896481164688489427690771187285103810490005644112933347659933489393889657464926634405760727226980879973352635267861092520191084444319538887481232802369793528977827713902881003309264229885434574916511983022214573745579338773477009640418083149549068738580711766652586532593146407583235592472536391526596522807185230485164211672985764176240949213916842043639891452548439015822475937821378458854951773967026249152173907226637838589694359351371147807784697039853678288703944891594480211257713484471323931315351773079801101652420306315601056770673015996149692008007457452557222676963545949632025294647099429737776676733605323463084124442821073755899945462930991595446162342813027486890177889933830896896752378992988865582881964170335482046319235105544460228653486551160427828388380833877593480137395494636244261765436055316693140245030398182899729229566588309639904629385455090386662588727828967186888196815941865151610885724451239045482520437017673660627122643398842536128676169548465253602814736517115236080410100567754326833951432578373230348778145424593727278385519212785190607833224926792128409020224954160742977472811142826151954848961698757577991439610360693795022590972383701592518767911178779415598360070260876698123860484461868111623220543493532671707390651437035672247202219507806568259727069216976151495800343122600473616546654352387886526592305465194804358140265335333789155545254026170078412776026562840055739153069674228159125678977543212795600613473953113200646001812766499861141154656912823709714822649512463196699182183747709794336434866376775481781655329838192455537774034851802591943742765833582623443196313673771141319655604890451669532211658937368478560694197469357548241118531086264360373361330236453302464451253129913669715627915124133321140675837348716027856824763042510084728627682250290141713559291431559637504570765635520547769938087061706200729858132012070954135953080605734578629723590586247929519874483355761175008910741189002499707852803479131022484026723903405921458016852100444042207625423731567253241561696026809578183283055356203020667072792145762447452429442492182106637500689583990181153557250379325604068414305601352935254199352187980221560117640101409463008016775546843227551276694267007582497854657817051210423853783528904777749784869835750535934186157703004509651450191153449836678385943825719769244420705473189373380581960903172674447137163070909877556957711037653262242434088039874352790223889645324749050392895896463642422514597422776518334250201129169345323918836122800405235654322609628935317002553499545666701648019014775277643032655126852421355311553272636496906963861673213698288826492771724969248516224412328685193497714181024081572286162664438405265167947750626692440464730188880042511412158885816603077200698175940935845022341389574258855209527519848001928767474121287245593725029623224282491507603578405892323830761409896853961740461540242914423353121853507510808163019192831808417739230268905932899830802662472491389212682261245478825846378694402744773327425462115652198404138704642836553068030464060330027468766899786968501871589690787863422576964995903343251570491224592951167129579650233389866276389447423071829451506607008654428301550612301083808535765335713869952238347687449354888564287015799888161304233055759682330287052639987456459127687493550752744680940654530333547393041746969633864397322022035785000576147481788815346195799357486687316022107696112055349889390088323713268900056539702556397056451972371830173759251128370359078512364420970198548314676676071123813801442447943808783511363080400677347670087713412316725118105859056232257246004202186969412602155035317745833744796644143059345307458419379486297301027136789281918478576890128858268732499996369853725393562872010902461424070991293425213621175719867984710513354971483774273356161250693043090286338829329325802207075839558212886199624386412284496349396681335341995413863880357570089690329877822882085273390314821785548271552760555762301817629484924280075228375673801040411684349157342478695518646103297862578467773415315769735643276270727015201183074368837486036991064156711987468153652952921237905144315803839805804981863694202037902509124657428194553965757061774221778773884901700807618401540345662937380958483130343623456359396821929361971027618096617516695381442979774378592773589699994262328426944852964586039354615145617866564177933917986216203800402697408927661092509038473626653481729723794891863894705421187201516341771524993947178018737137396120461291104303595522850966011877204448209402563191137051211154705872407199816473195512735119847433941054895859147295853951651885902961538054831596992727798006700439162868386043007711272778622568979927457631188518581746723594596940412555295341823883604721086372066600387201187689302972114956926066465917938704843161139781986012103950838537497986016615967905363834470893546530824281707393140171615444074806621398968164354442404628160666865776142212671946702486823538125108007045419510341201062880326416679391026812904207163292542548091388930969189189861004911154666964085899811489630153896122752290002990425934704307797284336518893807286102293459326629410330870763662796138622961250150395589543813807632981101524938372712286276126270634896826880053422211598517940626642851234052727821885466186056564200731642639947135111222859665960279452028387984065953454508325237144689180306780042005536999333016249175862144952539924367188098334266289353245861260244780357352032683899795478294430813777489093435213683586518810023548151041787344085876328247712463805670547632871271784434185136007046523756275493652968099534745715025579886887128071848949674004538947145507385351621857212942938143410216720223532130209918747464791659994564690604310167100255134618284853978572621859370443750922462936218986109853984669280130259766465069176424507003613908987148237583023724959504950176137869488927204324626034528667281071046502978578388290128574578123169444587168534988980464411718271793442139103033205985788285466923481712582326818322159613639066818428679005080041109305595386922326335578247861870931891196729580825177447945942728564050826649208841345914976639401824525287592643026891410580412940379009702404258386474690536245621511309389817836969642958330441541087081546769910947958040863676943250426540986140833292567006409949414110855399583351552187491222272015539293594849542603356666263307608941619075678778379118936912151502853840748838606603450865127618116063361068228385315754359003533003455724385110452765083362050429826307249439968276535563643488381860967400021394679434286019597479232647972663887848761365555446301537634148877212418126326237810278864654158681331700440808686611037067217105015946263121451797279156506222758264729730721037285461809817317684158432477061628116511100781337714303031398097813478739331625104783320550530658880162839523355233354969783558466233888748830919668810644964156716676721085609686522265141262759158574275509159777593520282797978867298516092344203789145163283262365055293519297401072258443872813971029472724938447672128997699136351082457540403877656972479116806467130160910375262283845415735004206108947950700924199363844932841477421311613180579301602899395662411935711667951387086061792694531037264356536834153899042565871653493787153925292568980822574527581533511039470682946572271210326160692590954856665269719980148217470444634447970347445290466940119329774107796827217441230318717952338714358578693864307669790598833549657816445762935520803888968137596808875672931148067367971720630077759963695464473875324064710091552837976636619811552509347680785903770168050102593787400239789541477566124809622355763616676486482151053172420173801605051467113070129688159988635193366370981975045276725085212459065663315800173381860105197508001250319402040028442016304493263435343500756204349140743996958438001726440755816058665238070346413133409854800663438701921011900077879444524934897287103980289410825535129236544350944640680469234187654237633446114330336903627995063321894457583288284594373429242529613598481370381377413220066974202749721347564874768556351822993513476434445876234051148754663552761989678501755526747773080987344296267988619928696445838345771445356422670008482783218503898051023173405780815914234261519419296560492638542854266421442018607461372542429995435193015644998193733658178214256240302600245135352568359295503025751923317063109805602964727313812068535206655762696706513486539937297426546403901098857921304412664348818607399887600616598689295484381091872280687388257955145205997488251908821273357191713196200400692674656011115976906557906990018386324279294897136711158488710822754408285898686088237507239017483127177478245454351618373523017951808823927496387672754714809504342230526272231982238343813527304651535199560150754553022133057151460552250464475158320767908490999052137401655443348329818785590186143689494511361921774208434765837518237340434113754709736974747157254103724596808133369439550201760040892074254167017318696577668697388482412509191377301538642303494730738224725796963931039743588237013595335915974542268632088457850480453592246509253355988264786370534971196139941081615017561175215228997672839014850964666392701958148202018857937409930286087103432641976877918818900172844639567249356894713741106782323917593660005607922800022665325008934594042464723636930200465081717216208949331154239184677218476823802870647759167662623032016908868745306186609704633568216533582487108150868440376500613979464261419800898694483183238645613194878186183744778748994410667078736831939303683769433895031821870903958273413142574118222320264123030563620306123945071068944977440739823133956657191806181057503228970013398105474343909961203417115379502348802056964934769688941629150859990527409912082184281142060552459914675579593803219629552086752190091989114591660139701734491853127474321202638557293155331044084005734197445520112896086252395478252840095675389970616909354475944308532679790421635211452488869394761533650250507949504974323087763376558136898565634512755602421587964971361977698011109127473280059440126054861027244430149896577043955484892592485160021433624492468952213971723557790055206312603452748502753762436884621224865299277301460811314721114931616143786181178450770549313286041742411600374754591779193248078319625080112367405229593568043311637812177570293285174549949685173492595736959667848302520665366796363384941175252034827723546794519007698002564163490322124055054827825882519157974344549783344003292219545185062753048216655169080768505576359035672666120855266376851571657073568412614092869572063324532907905979103754569530300972466895981723332027095426271197290108166864759809747858105838756944794065464379808010838854491684770042970636471251060613321524517210122048630172112538189776805197012314799316737951426902597758293429219656172793818915059541555946948859578868030719248793416508447012492032381204126598453776550379611694423452215883352339758959626252631085101074630909704035121139457169420292656699499219627836443737792997361492544013115101682390771035989538890419658570906327114150354568875998427961127779393673723834896672828306956963965057796509752114408731324608900950511193721178210249997219431138078715665701336165115738247453106019156590322169291233768084965519016651891073783859133005652560357895915901151782348883593578906665261073269192627043344369702727171434326271693492501568484212545698096648486712733138376432378790535989097113279447918827143166559011360972470603767129513111425828011725347101845141078566723563808130935134049022003117202822960967738008917942524581367541749360524565754768169935439742323229285386721016883723774339826783482456146421810529369371048968465362748422175868553545472173261090597159400549509325552646200891416716159617575581405538904201958558584690015659040652152519186025289218128107742479220814463518198817172500281513093577646149189659595161282463566902973220507266474441934289354660633426697307268113692985910245914870833189986649658917412368053757036932406570718792062668916830531556831813811422494658181609117851323834233355877799044144351170753384993235131169057032900306025227881773780060863274662568747316016978052581337062432175339169258191022621333996439970567377855397009448425529400558931895316738259435757952386382695864798407245458881926657542722137012756213939702266742553211236511674838908196682619397576495144006291116810058702409480632049519485837949201045536893210757883129861788337664804757375227657528186006350224489913141850256844285915454838504118910961718110644478014104444137504206134406933543855933859073621560618304611202890846397397473062082289515236845430936405315774540880049109287034071772084633509090629661443664866249705498986598480536906594827776663715574327729823029578237705975575394576371849852303179584405621457893889376362060403037663428547483531862121372103364729457009360411605282844350231804231759093213054091524093668449721057580291844659753607176765251629593327642389804595863509239905249524269334949847625072227108775305551120976213092757935129579860470045704389352830179997285918392317613580204419392412612274213116127521693936787240451461400307029045736578715958011182688081682531937055572468856929414919921329052121603367273161546059600401881831253080439793783774003570829055888832497962341760969584983832402233959638381803986517794023205834169075320023029162219724543311356683026359448878626605275629115989927147046999804702013805340236623427123635948674220732756502564604418694916628029077041685207459984469683050733111116198765602075457726873581941241751010907289483818915330713055648747432403064612736174960091661872168156688656308121565882462040296925024601356242152574765756786028041037950452200081551222371041330438898180898677749495570297121192186460807871612866120432627597469685344432009384169980420782511927833786544345669802947554174124094929124697759130204456621336612799712024465063139562097199026294236390016070910779466862316456251574990877508974014465860739669439375915602480781848612144735057748442761896050316873750650890588307759801427311579178065685781825389779857678125133152572354128696977864433229284236370136635875224194697781814781556418247254129896973862506428605514727107313955036025690237972714912105901987175296857745901076962753311587489995611906265703114006097414306803770664808010138005399414034765294022725352488790634792672375630550467469509079096905559630520410011953730006427368535617374002366661331945534851573442973201588354372639168852735205451719997260378729991758039853916640589039968695154672651179993941838892406777667455312062793045894308891011256508030152353401941322447117836054198224941865787751381661388944975485547320921849080694545542417699526619167749763731910204950534560301829273660886148830878762446313310061485409553847434268352553937425398326765798729661843914583489473135575467405817824025478836508827419048871885610180939132005935008316009653537015397590520130006986556989912636746343316550780131361404940452613537043958875750042044598589024364656627475505800403630690638243136223189976583394779832059654593266553359828611596923701782464666515436170605301860872521071653725589663652532662201500925848042915137619470177885746705763182779550197875088329066929593992176972132673240392931578086326314588113871364449530007444250506388937722624199677501247330004573134951751488489440457716391580072064001528072030045988228250137884461865903069781994735583420866488711107002006182711825023122577057272857365467156537764377551699565215069663218641557053669042723413060502456425449265526517922470338077124351809878429467075269196758261730294166887432444836459196635427877247096474224736702445590935731616257509500068575259889631828956570822033452305091774683313101249655796088260782167393306905071176740846947820697163023844433039313867665755659207943531030959855549003951335092518865125791486216913510120552306216731317019708703812086767797351722257518110319256936638681327104288412081727931802037387059095270645317883512654566547552443531405099112110628344452365123681951345308659364422004855866327509154257371416423596585260830524361149752867993320971639422144199624931546345044669469671315078708073058591664324758962849195261514583771419515988903060921579215695642496299072615359199830570797550839658753889518764457356937265091444883477410557980365356752147231938291351212940410195510074752789041319313283326089361309402342283976007245677687556187432042234983717554428605932361224528299420014728272551239151851822637367908027050222594723858815147364875155580353434243014897209768397473491159198606401763614404826027729301505736990256941293723202696386704637196869619419713649999368713123434825331486968610098082724899287679623993101177230933131076579709975844751610838072732412306207971587139864589009507938699358992594936799471722667040193632221875128278977494564243420462342707347398842368843107746172093592041628636348017445304767376245673430482482317321541070389978995581811788329983612553524121254833474271047389835540409390490596923514761218623726409122564558289431907607503049746005071409254716938154211287833405647416950600287117499103731145578814948236070332954657223605800372496198432541424260309765327720714766130786834464026740392487741172599682655690936311422599643321125866112858106999637747926751224844838295836370115276784748512433826299135037152101126228351822224955445188525825199037465213363061289564269487545589912334687661015123283681173808211424381324132783996296239259423714762544219806164893303111805226848027913089694786925077792870666871971221077327490388519860892759477153956083695150900880789885906095792404094238299657957816794751383896780885036163841110390556164444570828571616511512914994806946447908232136852700283657929339016120861172804765710399362106632001323279523039720189533533131033574399292857825366252008784755417327314883784135698374626091839177330776305893174046033962766453799440423118208829389122779257620686841210195526922311565125635566143345081397697291580638202615343014913126572808839383579149874178295369225734537169101966926736037334099849000279503452860273851052342641241882803716358225409831802104611139974984472372509974603422970311985350584180460366109733564170909631975663836501270307810563819469416256614405582867345188540438916910588537759766059125819943673565418878941054201846539410784886589227073969348123773783945175933473942545147855095961977212979941684800860525387504946820629327928137005308377690323242690452946747275784817399830736480736809598636866880468139495487290965008640060953776644854760652872938254191614672796666137532166712538450751865600442012621528997214796280481349766625158562577325273177239732682258482477923149022826770834963303823862706251019477732143203366484093405667710677111007874112435603455807502689398462152886582810028310856132438380698597714261986336738188893871509963734550319327627887770491694320088175760803913010919313813471796867543194816500349848331598279044933244047529648061386211404961606914896741960224502534806724289863459508097517907510410326385361767114136747147601089671652130395578641767348068072807557796505038316759171823562644186292340167491528025809574934204852107721489607484512278142421531198790764717358489515770297471716336669204105673890083811766553461070523285804562155257393326683679898749325364400998987597807878591767493040689638768902087177893422427295983768580599298299100519352928322216221631395160305555217406094554071261068582513577756872708990219472529842889806037655140269340927630230686615494753890395192186924079255874947067556495111638354219747852639843956638287196775335106291527845445689828888670510477939239723408273465416631195230501374309562502598788998254919212050524795572792090484375412769345545386483200134624543233249113905739117045824009899377446922453584505747033679285022841335549810526909945330098369613609469763060180275904939521376483123770145653158505725267083893787120156000258371683448904904662191500138265400152340031465523583936481159279997417852492559346679167158680918780292079765933337495077992357589350484504021035468447594426881058661903391412680062481567950806486369088559186058028264149054036149692871335916408270887970346782680193458764365410202699626887471522793392788741456376376890165745806225323469863907366641463000642303513193499069724922613766016025274959625513112963406964657544353940435136952284117236702424288288165260045243752973571981848944525485803332766591547626736012452905879115315936168261223550280721398018301391102309225807745807502021307421414089692903786939443850340135968376862172746205805421699236903163407811347537678880856783038840150622969027504596111725636048492829249649071081742221454176558426836852086409488154271478917854803945598595331979657930833135011921155815606520800740699072231455451698717975553194434511653049659192367036612344950722389011186498357974857334591243767402948484689844509630971097195428812120411672957741733233937608059139628921031370035742909260859165361497303547593128167457414978640094213642811262861765803414997115145898580772204509698075934555338391304584193779662056059985484077056639704891209254928192594990143945203117730561918349679090016531581156439516977700355241368125946445794019664748343291114698035209021258483352579547780926746368951425744210952211289620560280183680329459082732332021256851769236086647579762852569552531311434774043012664218783624847299166522596853000879034538165695199330488299941146965359461263996693437490460062349380787884612064009265250444954743185740746277082905793402897278793512161584781920110316382740204586887047238882197481479588936268686902139256532813791241411928276504922289204397413001277684344102234846064311563176152390809255945270098753771541821776969469275758930741703950911861592549445852176696003690907606492728749219117861124831618338010398744513629168545418956200646460483583833996295697037780368773895099680307369742698491379478374907147480321573748918406549896658560807177077434969923366434328490372115362749393873482363180845231798340744336042960557662132027928902199443642386907598808032450424311935371904607585980857299955545593764960341890970574936497134310013890633438360856821823987332209140769146135289913230625604863576582813154547504248339135501310046089221285135098022210635139689526138220840773621932595678580710529233544657989349671973320505734901391306939150762726394830695042921221088976651761233515307672265840560596145348399114629810823391777521267978640189916489276649984597796527817263224369598881635004598897751448099232807033109430600093076375801480458952565915682429695544957235041521221575597587032304952466635336707461466294223692315191654944894226941774637719716527541990898555051964815464620344410904447572001168640023765994962276825626327876922225337579498357461848222737194007916981089171796130337466750559510078134051007385672082522584292651887660111725961560185919720164460068142430338079601841462257904225122268755336587723217432796582878983699971277267816095645957016701481975230840985342910297886987771787079302638207176844720869249810436983774712058860406262057138278431010173070408722667459456700045948777477007707733167029357005031038871299176708498286612614022813415903840058540128863611495152051863616009964671181085064542712854930648561086787062749415119663266841171222805674718435197164004239680619636150954523945966603843007034460460853663244986848332439245678021287243965616131325760146302346947916791645839548853673774771836974218057335329206392952566435601187724926014719841421566314530934209602273419599236175896816138084625912959522949013383827304850222157648026872155223060483856302326585393636049245653808782767030712978353416016534215054624376965367310259991098605742714122158019689915898646223648286627866918819490697603104110448188240444695501202789918468224761992119513155759068961108852290091852933213162583940021777822838482564152479016646002506618931593858152249238567135386262233034661088181303044402103110474981760591080035838568232057125590598522177712039627521468506290448490163866208770390541465463013005088167416840779612236672564519060380728965262244699190789817281768575407836715708616363260690173348435775805002209958856081986472105281934104321349528258596522594947613803817201937333002914864012571450042355903835156481809718981589417253126193046884299155513371066185309642189781712768545511277150673707913762615239258653722169066542014513920225991255204079653479604074116979575662552467300280903242004849399714207120790976441507081122411572491957608511721190909967149137928361476096334316325318490037047948718531562096955412794379641593171494789676338123208320766454313416320331651102021544371525158153807164084053809906011277615552512127681541528167049566037151502994272925690188745120754518953944021017356616472989507403346776865528072718040924156030530376152966554881362596615177363152938710513371349456281552129506366952389601634502558305544286301097668699304450922949218047779349641252458193214109294377611807546074951522751461435553827909793650219697774360142511620879288911062367396983893172683011142802165846725505274946692146984892739577920783154780528493015267555275959636275561769142443584323795609851112032286297532830583323998865132252876170705606326144726152584633540784886721317033669726785698966370838935495526896510956605760492767895245509188188819296050279338781009468143015998142720661082397677767652333226298078327516857715750063338028134233948388276175056204882905386012872010657984711911251588806446608448066412768600843228072535857843738592254305564051518345961753070919916087072035670883007878341332479608004599749492142913098974582384855687284113918567946722715763427412258006727150384287566263518818008783056721085540962060400635771285993184469009043788943647406169784908042506347635884537488018339158255389213670173200625591279659871962052535666297354736384166968692231507163938441750370821749750873725306324683475498547387561435837245391317006433077017811660325563745336647313110759266806657393480345013840788426025535142407114024196946798425893366261240885935012232949964473164876046082359039044671837243976741092153096774360485644633931242627734576330898240663298729829946613292740421754954648914080603454514191944499515255006004756410100286484324155848246262874287663740273664552042074779333583234817275232417632258646920052737400905005487691634946086611132187059588591358594074674988403369876980728407787091463087590563824300306661511858999534466260637598819959597327936379919490924850038482520630881773657231019858151674840216856353404744546895329204192104995412959869933544231909069518387820159449984155095331971168746704515372361705469848516401933189232428572163498670338571599376588082247196390196352893173675335512079439710484153035296410843480078907508416006578196476556322522053209211890036757337016865341948637154189114615024038606788956701029112043795728961082282931337742767333854068656647578080786261590237043410891170985539108970302296874427410101869934430345770989582738944425315393085231245337917912485434815125436167465004541952808638346406934115680697123198349990517865557448607563644917697968345597329767827759064222617170776044023678334533846980700626159896162849764056615112619099448624304925963269462105921423581303121226695940157727298538594925034321609053934410906781702741134626295911196663934338837586709294582987289405340268386650157841361196308199679047907297016929877492329083853489347671494686729914131242616775936909315443039243555405632594084723033758596589091755517916309830286574214466853311635815720093848623422947482269459808610846120062797182146040266004824115848633988408047732856436000357549083271299301382838425302289251504179329641154864565937587087787707609755515600749983050266576449117652355702037595209390421468105746647637356133195946346489797478477581724838012210640141462735415154299441818070898500652502951914520082732448513734808030569690516657582463248299354365531712081830820157999584477863040012001129286349933120253145046416338132419484823741463147214923911997304230183010172681499826390566833083654025047769372002074282706788787065184385381891549527685656754171682800917263671390784676153462023911438152405617032240462918473893891361021931900898974743639905721860980231162287017820059935625990117926785589966989183859013268709022176798592181278633782925741617505648564100281280400141224316343823055087391882958977978555090969747042680544882810668113412552858153526242156387225684094687382268173848446969563514336639387437225589525341621044820372380094330121903214227723690299149989225967668365764151146421983317565432392706283146652538942466840808745630546594882671150613953293377275868681755420534801358133753213977612884834579254520777962221923312016292164117021455341048015767571903389641665784212244411379568611676326933165498979121779574753224106497029232714519184652203480702337001352944242882040769236608990372232572941261832734279877886604687368858742643316044897380966430383737749890059728124656398858456495503891061301501620942266871637156615637991027917879882538230843564931932652699914102144027970012270091367121593875614885088158816968948818543830012571310821286752516946335298955514638580785606017933941840427523711690489216963316565633556511701470814331700553479850514841290556655638899643842488073035146521120886986138275754491532999864296703417150743834602631380322576653630484344516791925833959582280152101990391243771581191027487793983934256205984331242646052497884165697636673683666669155348905800752676549158060073468414940667130933072338583092398775856825546853162223262534920257197973908358841801615914924708633434645286418105006480308762178845547592963464883274139838394284781199544113720446701491653596477427517987177080177482695052278146965978026561560349003594674175431958021336221366063600031063648864948020199743923508364420239566547584929171540433206766642855146378429906735958680636994414396171257409637200321316568154362433018231404689029708435210760646549160022537534466868089763898856598816778233732808181056128123358208295640597819202293413059109626594842128126820357153752515497711895646842442918076568191122737651615360382000956406780980263624435479764835124571706726250145600811786731849138301663341889709038598977220094233053049621242214567523875508127599521945551422564709355027421760390757647385581534897867934403104908933057524601044905430611656429015080642230331384881837919744422315510526706910490534526218695313510027274110218947958304688938374833938012916362439231975484470352117751222260790610436342193963680354343819914659927607236025025024085211098644886866094342327081625495709298025979714248346657230058385540470398206881895993772118620133953310743600254264234935863126890244215019994643483007219139266320475651040187026109851069556716055687070120620848918698735468684820895597395238824564214066643419652865826680615523367397443271683546111701681694566189613153377410130744592421981648112567964641228350409255925218329987914607635356024185294539622434391606905135300437165773362885694024302776720782061574839994963989273080915859968983787351542293356701251794022479158206001658634925351759680005033127225800716122417341156543822985771156995774285422863394248902749354599790470149042737786403424887374678858564082311312610463312850284089947218895572918370929650675349825418101502971377491330384433220480967796439785102199216103107858434086756429123362973035783511089409474468626913644796798193857499175917540437985443435316319380166314503622873446515389666545643952387366927644248409676639220136555040782570441044910461618480116330016866153307778049912875265971707114899246268758180962649057271779543148081241006247605456456342517277705894109357579718395837242908340783229102206404559954369407458179759231133781392160546718788327558674530522060952859604698307261611616789446350432056571254003290680153115099134735557746500714810024421533404884730606444480644368174128597730881097165391643268224564722170611966638102279648929716299764086477179341217786281539995065484133236459856761472802651855474529686392374377477975227834340276933520786833298214290633102011957202138520626284965487282523476478008143263978926550664653251524299605503127036387059692499765595753628889767952389230589816009158969644450199757134959365824286731688785509603045388419308127121448099924750250354489930549090215089540372292222358345763065338729213359307534209776063215103923911791475960744383523812197849724457068037261174031584357731338028376296396299594424372728206753006914291755459300112354362976195488373130946593497925235413467307188857304855214573911240692156851601848113893802257924097883470589514117390679842432816554517108758575984200221900037456548738513170378046039961856301275239931679545811528042135652463308025226731378931403696531936791905453113044110441830319787664154465817668220939294585093601613449617995514122196382023530035810706376319850658989589084772742824968299713490974221127611327703674054655154282312254325334259992030355786195960842110399340386785144565693277308500627762296928519253877719985582134759819929079670821203250389579179184086795101720932283423623422844217889407880964639291289572495678044657022143032635330287745432197998609966246099457018817809153899693075602284684168399849450173454914569055626197826086326160946940741176973857492801270455067441994579242035964950912314659283907411709337701062461810358571909570439590675826911772677165732248177866320625469896600831971509436073595184527688240843913118157487419972298446924945052981950482381121752835343231778423243093687320751730096155747333056979546347381522790618284008941071012548060830040973211561282239012433564311962313928413097178130433039130837293939230851174227961484495062099617724548313240440102990561120566536993885678962425583204156916322362705394554010261561496707901418160517821968397530144795981451082090297759373180102049372987109793887016016481948597218552372298365727064491134377057406526431302847171267062524917844076991010171707105565526842789788939424597222334972961389259683647898829029137018831707248878287234776758783453786437225947034649933511224997967414580883810814987695906883221332595047292125226936771092806554938784729991189075342688475498604355234279890461123952312542335375351743427540167354461116204263171637330894062500426325630195428746206432304914883566444375141324423864628888478872989150742269792995025742488931158861277545550012970033516933625100272910671170821597506670578634006035597962864123791497919599462679223998241407542434350926464072421495264999223670756512521283435382442848660823683006133911501440210169114465519369590207971073749562145424818531915665572900429922532396585249203768324547040497675311284553776767260343550595251126247080128216055283906234857076220512679824703246093651949141216146555673597006465012064813966388241119928760010525687231480547520112073999480276670632384477989142047465009080665468445860926503905752040534770320350576422170847133984446669720607213180069354833773670346834648241810659818777676063756652814579497043125323737859847431912525820574698534398149096204494626480213117661962852553052794235565778033055517866466475542891205845158264530249628087532483589058538060307744984302559056129280113795739394290747876065774082312014505962360780424016888132114643980492168424391401632849522419288855274401370178150046852813545390502154888871241344122928640007505935013459825155849647355674554762502661859692989620799114663300064942382251710733820281059528766823392232691847598502309215329277658443066094337311864623328571524428775503934287605428874534280291384546644005403083983568338091247423414950466497675908895934481737415127525373667163274842037065530018376864985399363713843656497175952943726887230624716469979911041116151895584192067123482191169760942969983431628130157512405014624380263378093697577471688815252424443057292288815476965023473860847262733965733778436784209215673727086885168709719861080785867478984447288121729182797917123999636610413752515618938274377375295984790071829610546375096768204710180914233414699115023138096908945022441406792715059499383837404650423123726480396827328122780764006505444868161832914335428537828802587359348929447728338993615625529138082489712498764652876769435766920305084863567060901682034806650896425971107294416593130908236934732925869531106856376564280308081279924071147428924755907769907574996705357578182155100242212537025994654588408255408946768260126851830234844696653642943976859407350869069696996113189191930760022661775697129260916240783376342214445968615235174711207451735766899851547183865959243444318542232975254634012290783918267423936241082834307490039047013857672344577376246598986337385239486963215083074752655955633888515915413154643114635788121876055852717277102523750373353162655743585975859343946231277992134794006329936813451688972561330579399179661246621355697592494971228112854436206295909109543583841202523765279753076976955663869186408790009299704094392895134984090449224725002856736496954989974175811985401071330872611552481880049459075008461325967765625484483135869897889258189144560864160344059727312336891053118283442061472280638228464473002430948564641386989439760749289364027390165409882578249296444863756743242379702094477910789065338267673355896261171390350825362322351989327615545887814711404612640345096676300113363935760671675884884040686762513272681995960060659035187855827195032336697566921720698718882562118999132339069485656060677758489287772456775059866926427975931367623715342239164631112950849261778259565008402738998076130327039086451429583007559859846924804554430257195141221532146746709025124123121501048574901770993881562610438840841100704737293469177616475874152900596121875344184408008560703690592834847613071550478941093575976944488085417099058505480565313924037413301955113365934972997699697412335035317861931089290488323553600972573550773598546180453468537551544038121824913409974589141339094936030156875930858277171054379621153838326493621396943817729472145630616196327715915664880580066977029244441494634842210727661558592122576724123904927036855432096741541152355541194748752641981947936918522470289269669335364840317358444369969876528789921130187471720289711485516141831258522507386636783929300735420341386335271322445896962621459692123198060270106418375970220101686207689792663284896694841388436977469028946319916587289366193946376450228814496682661851737731694200176471113844531969008483916367042897863528194969344758817979101492639981356594287774003891676482038550436545451695945788898191677803789653616703034831719064945902824313291722048492655267707163482509047800475891415508518348992696480430494535405576956000226270602482692397934870573886180331535742807864431576899354331589634545386576753570035278050512791125256531628038262881475759399105989519518266616010197360090333436379419658056254911401558727264627642940496501076192356481438584874952784707542129789089882705387579174461644930854623412145938113152871760675504144111156315893907125451274640799759934928012416816266196548081513286365156296437660899578644422916975732484756750612430788766290149567113941509284609603748334913258968792927418338721897207656544891200105510522192908912619375938792212231596910288588693213524367735651663364672925238127968788786968347712847699970763845134517866551928030918516089790839677991846753962388333887617264025011278246815314767954344184149911133851808060141825251784337471936194537373478563202773112705763123013102221018952938708510293382831829836811060545704702752512964397901856429275089448621043153149884305477452903891690762184854174721278285514290456929926018504840193229852775924196467561227434427856842200901873360028709003616443967578629536121944025781190305054220132129153128588284329142968469071181519719495423950888773450478253129741729806392609350433688645798817770207637351764329820432064976094262651300668450310167730334185177217123583416140850906183446477281283863611559453869395049028820773039245538533531836878824884914722178827131490455524109988658731919467583009954746586951691805319987697306431830731849649034583707335752082512618228785202743442048148318422176313324788434767594647329372558902677971204327195511550611148802610277186306873747465288872973049506835906470092426925133905451112336826435956364541949328783663886644384753063886081979417026082765351152625348338255650797693685293899123678299490676308127255567269644050503256622010190003167629341876146595970943111248238648755031113863299404601347057752272658851892791857509860319357737099727845838601038485875206977631929509049399592081556458957712369839555726231185439471642094902930010065317315451331224527997712008001230625737648761803989764011702174925664764463236730225804912818714321149948276339283412130315100074387099606190894681213554269907046159039467738560893947936279910543252193472202740913343439625075204574332492453700208366297194537200062772271999390408874759606763270431717222666579996777895478330761551328158265635441036453581763903343521023895683002480811200919746334839060015161828569825270407096561277926222967124655377712297426959297897516901883523402107850808293340441577099149617939770260228409236939656989229753460457813690025534153858211050332424742548105109867289468215073560400326294330192557317341119161574271284316077555647053868705081031498557739151429640592543814175953859805583431239566005195157079533229273898596947642658728639092305036301501703630262494022227146641630052063723306546598573568618038624084973747413976801362867701049797314149656758533374723798712497315579488920606140166502471858918681832260323969431883375388717803930928406040287313247022479027186758093442196510712374759226670253695711703294175521813730515570946510690813634872340063733360326481492097813439921198983633574732428835192677975768434523345608076913237577239009772069606485676157037392177651279925143630405288255091792146597642998541585395370117423858572506526902829030289519459628128869938603767595335064942747298072117386916554315596965950796784514236878660455118616581157107091075032398831786969096018472544029259262295313314791731310351685226178902641139035726566531730494380010681652672322964749569919337247384105924489768558091634289670500998430991944527485455149070237896669156455680911335055159296504569394687246294218401905080873747252717819976058692971959945919376155043686477008688458778511737446594517159610901816717676536682907825101691735849518244184677610642348099771455193422790273928477688571608487714357131014695119958514473876045241370458543765612088796696697238098944116552452848290701979734997590727347107631496978426120032476988762837345170941737291655221371222187009336279294515839485419308640360132155839549314243204534387767907012836518903620045121883429951025505042108977962281693874399043841090234969209635306226793353270223202180242215031308893911530978554099686273307168194580569202834406770005832935240172513516746528321176994667288895611943176793276156906359183525816679419915939215501304645853478228333744727849307934917967822415954641552636434605206845793413755661239481779533030272770288931450335395671546083830564608880254471563727511888084188063481601597342991756752209945035325855191597534992165116302120765017404241913968397275981006647239036989136589802313741523047372801877942866886821172346265184915258540239526070319645381891326445853758194599327374160706165650595945030459949549293285542528634670753312925637191796949163320793700519903774550567514483424034788590603971000933100437638625715091706129302979779975802808933145795928857567262268763354544722190125824875844847100959845532933462168390796891782061764833804894489497115369451304374869190107595542120680816967600847264543928091293261902506779496093299616595785772530302305631319754720475761616914010105302951485851463181350722021771141714228676333600376489229906566184819778326343283292485711962609818702554069433402601853876254464130737519969882360394263211844097702524717809561046331202681991996324595545426235253808871032407358560664637806621362544906288406067822913549513896429883974475533634431861028044394533910291038740666468761014847620350147827383546973267327015889249077854086030281786140554038806112199855589201936275091097809468761685710620997842260948518309376328937640119440455468947640885522174042525590325631545127013027877645599151017583578729095104332279294339026016158968712109034284061184161588815538415730715493878910641210177090220769507568005505187732818617735340443458872977390896953179092726547765247333691765061010565266736649000725465611602509511578723546156144776257328824512845631976533649581928063204871351977512573988129179745534061110659067563199825219644057481289515822104377718348772713756975079622132857013448465331193065729527700150086418236621620163195825861628712863470626566969100384287470800628075290934222086545336754892482640640698052004734974918704668281635121478369247817579212564409059002198848791785295621790239065163102233777078344281256458134492096996508793094435028349743715452826206191649245588487463628610815715538446472358179105602856905680321831784192082066449583909016040599943664618205576915357711241328995488803194641640124007263810744025817709859734346403718855401869837880956385207920870778295503034956757926766398630096753811684858664477950755207143682192472829280015913365224727482223174412165388621720166056856931609181940792512234605821421843590992733515420311405168643717703211775621138385933961162133531643093142528058781870651401191233533452992082992204747973102054126695121930086253167283200144943635269110353406413323528739350932064222989555814992717059109772082605086877586854306540852238807890810056327474420719985045962762070437019297221887402355218264209328671390820302269957597619608503440840873630122743110058940514776890209257408349373740467803560811757348442069927365151285831332338766516994557646147559468292505085933044809322603769634555455397442023920917365457671196659411855793608897126183628325122272947135104785437834422349661171798785920126410812244536237386766651194132350787847061352300038686484852286401057315832192574544632904830184907653421477169379604341583577208371743537341805765647250581282794405437407401106984558885077120985404261701410602800621563416250348888209395157863614223717669059435201055883121834793586014281139757517931221944742353475115053322911010824397160499194488350769477275213409886169460028697390197663093017786078424373533693420626361874437704427732757707243884490618224159724434096717033521077314180276967886597359459653554770747480154548223873687610355143125144776326419554095768569853834924142798335988597069038489507917050974366136137027940728353593806359860538900430887587483705826075789654923671241801957708738263799047526428385946318170993485435915627814354635089296408830794149295549026640825124611289956816767898863809028377316552462985196648285563587333181993849341362721602924230986377760307825783066771586186052917112443283062905651414874208427397895107626315832711914276199414074692114106270132712374750741755314531467623856146573684072899150822332482280585567849109766797359932043842034769956411215607846134612420350753665595291234115960274447675731676538453290790578042719398848359821594784517960615791386366486677490295997019911020379631219258357398200920431126473589809612949876887783543353686963177744880246202856282578761911376646311842315299762935406163478731675576285204470127163761815795955052028358457930146531982673584078360032134583166493283153804817363095708484541054412320942980292802849192092521836652951695949491621861327676927163427934391949108458274431142222188830218356834121200772619824049639400256924614442756653861223079476759783714850530130556530579633739445816724447014812447080457914434045426418223507176354981577093311169011867622980362413701382593394973125664502404415076050577598757598040751249564198034233419074721274307627571993000721112038842818257153205560267618075969793844755860788930871596875221411411502439423288295977794753034856461796388075528652130240162795123280416722324617170035947411689449862314885330228260526051681373682334558036284089653879887948628933227416978818104483453391961802193104887070050874401771230375731299470443934643662786067122663536464710595611490976669798168491607114362227593969782832364817365564919246390258192488260098454803360947739934516687833436656417368123296589041294204968355767520061403315215430889647779409673597088135701369519909890907774741896905068473709155627047238243802964725177514939007478019155523317034941023197654657493049459912019054356920324261494394713401962437276216161969764004553091603728064879985557953284298820655602555435894430425336058434217757964288113111408385621512145862989393013509856868450935094503324296963398785483352986694973741078367143191655416099181078855287219930473065159944160782281136012602156541170953366729398765173912779058900653744917192336693683039002533897398971126784568759179184273224671814644736516289239659037235449995135644933066243315021070541760547930801812451218745157678519905828021341848323902311196820788394233744241504085001427528825294326271168610904043509452868811015367510786042237572400674056160736827155833764969561628487895338654547810030684153348518613491851730187057643501355416432263827339503667579496333395623030836721965593519813289045196549591411712691830719360700842838119127179684036482433264277180158360140511689472633260314798473162264677153357702544899801671523833010227221691731684850174739812055667574673564386669792846360643314286703256448071958489404365634309079036355726504480430348708001257981176210740137060281705111270322936053102981667282100421519870333938638118448663092539962272532696362513120784373584941939126902879811125776663520528086657953016584114271254841825709814120628891464839187726854690797656723906509702885715598028560495860741314787489091696439155758759285812222984176348097413548959955166385322934352759706161428957868033513621347733380730256055142711954405501159385422455725922650345999035457340758804526109972521988555427767668121123932734119752713173952717456410593764689832302241566632678686409394438137792003772434465637539992469529050827689547426134600141705295871355911153542299585908434501385986671982132865553216474530181085680130685642338979890638069320740926152693511861542231571401134461252384679385590852353805929494241155071044778963423281044908457259179460942483337732361973020104430220899863169394820658528219038100475300977229402651121376486410378959759284990138339954432112633943663842018719598291920970388497223316809032229185925049376945600911195220338857468545015416713129272759778147262725199096402916692135038224243393890443253783474222384535423820300246790116036394490933033918252719159699402775750091625161430432168785476794501424029867387429879149085685690917140963057559797939437165323564781509419984466940333440833412048337469273464246458766235088908051498047959123418077433418234412086420328891205511634202699181675812832152454570980400269025220414513433360851964058630137452114948008502840633278278670141738548586542221180979033264412185529876850252871529940811364099099138384237635617652197166517150408265036308899820209406543007804333548288659978502874590567209166505339294680871726374988254175948539416325698707521942808808058190212613623249257288720412244695742703732529094271562047603665138304421447146838540557323619673362516607003078769098744845840023898423088061797574211354718246262228724758419826769650058469060473976798033146669759068492722600901916979822464184916227861118146372442415216498610363532421329491560147451333668007337803624940403868458187036247834970522844943623290480465926253784799535759821422664603093961961371251539177400843870587067100347618416077967997928830029835673392825507602504113252735122252101157050617893935254872340779354334095726934090577461096651260547263426860177312354864646537922497660844138371279629384892636465873690851436913023351953960483426277368103324837060409301660010069864173039439572928100280569190044113464406426058146090746610822658915982362793650680356574951111373933184602520602368726929255305490334463115818413669446262093048279090156519318812023474392238086355118821905361897639023442912369500252607183745221430945693143178939565718979722016652764864750463563991567237735296839167934365118419175479249283954052163005874670026921460424056806666906559199411187676094576953571014994002212991506296358322857090941983337229839134553245305855521870746385338317764780728546898138740868651676333914006009900510953524657684599782481230631510241237637638574071547266421208257564772932194493540011405108567119705428476515599468770174394476039903743390480990678953064185495822492000768532862248739288873566537052260215822777219635180804124499559162285627702052898864107207134407482826372759509711868941971005687337466586226208465956958768417390667433606426937784815892114991479145980385680875316950069261575318569765934031233461070674590014096453500369337717264607470849968706487184813679956731480124958085511517475120653060905232528875800216391480354955280320109913675039304621483276619573763106652007174382702580717821231329165583350897329456829944158083522526239029162196357029805809205636936765615193217881503674317164298153974306194219183237935973783664356584136338895323149471755230286945959530682961635061612374939244950575248710205574566893626983625407546307043350038581088592793079329103983326729503444650730140284743839613802133965921817713671146102883994653468405618214600003801164665535601474944509688159966706184165880930669142885674204068171194750862157186013651947759190002624289461291527110448398615240238466139447759650179218083418519265398034355351857989681991014709262789179551905370848056936000703234470948833105647860209909333576867358787746962359390615964169825828818551589139268475369645178446969212009493058054002606747429440236631333778688676358192573439620775673752731972870151767281291044319388782621231904150906810710987980221868001821432941442214162485185425111242450652094742212585258558968077484179104960517919627630026665156408888254316996366800357081890399670706938230751070572445835431258725422227114077575576198880194643566644078103196300558650652564418796617323843002878302524540680797491296675313538672446152538199864309596812682707825653497754153100854068914179083388852429775017233765266409440734131525996586346580260891705661445983494800269268172663675702205946847828728029863102631071306652254893141089722696906909521935417402549879757023541487940355263589753826714085682320259073168050371138207224543459959846188405912353388582530812194953880820163382957135485482165050795818032976109245370430942741732979765892510340026909080544425820910802424496518851614641634359508158541018707940704813798449467647794161347338601864035240479832811475786807954404662011121086812389377872579790206019114139056326754983498134084323752603913014119734788527711753094399055642119346259875016332538963877571512967823200091627116370888893528102908288554308693244224550606601224565579932548084055449235623827287640836106603775407410886968871370091361994503692578306247502067999343092416264957442474090785986495546451162233132231789021400930324906246936300361585396405279903912208733473270221014455423270681770562002771155430356981403285522142581920742523105239022781986718848819860224526826556134394989588863460989636309995073679670252075088298520458999248161955096635089986229966164663198005681483392751663986279185141566270348194735643953548148662783266301865907868737256898504825812017284711683916773884370642537243664085757245540150342375270482921983899102857211197297505396761926754581722586635596901383535291933215522554999914906575257437179532530357771034454471077634346999966853267546383373522325056661856391475946988278615758263386782801761736122384343712505657151650630253856538314560864282167320162686153646466119665088414839822428695519719466856341959914624298450085071253970407775695766282898071820273712541639813004956814241819696302289883079458813989523260391410199115247272125587676831892935108045862922931835759498484505181327625307182242129199616207032987513556502808406540631135964971169907922001872171493933197697689594976668849601223960765328181439529115398357116179711377401834687669714233357704721513026695887916116047514240995863278113945841936316030181099671502432507894840347683969595174059382145680795918286088809935279124410938067347629933006104638128603789150774958956503297696730680778319982372667087689304302294128350699715353346463810790988940659915720512069376818174904052735516890532292958453235615667585341087266433348779933063760906610187977429150858529715425685150076394889716122947230521403404825188527654595953783599308509838629180052331918267648745709958223949259676424317447819872854544151789909967248488434563863506524688963804749324067101080127734652362425549120904965401846790867559190606156187465188180464716517661191968549019747111488087040780509706790644567726709746213139800920216131531004964026369306754861722810450015205782054742155131508838988364399600410404577983439620220482594833890545916070231386448238277021957655712409376283341297838196791431261834310994666909934719434056813929648881154812047043965940280660313313825837697872410311666161845875667414437700948395355313540421110840351952736945702444406470997860819440529056758514370534790580644607606925270559297280257653891300499342854081317239166099256651012006692629468184128333641385896879764815706272405381026722518713210087696866164748034284528193062086555111568462394372135368420041344063961810008861048342861909027288812743401897923315970036414218582535637343099623707555032604625867212410997502912636227790071378438278112812325942548884764060261125789389290362432157422013775678151454560680794399980777956414236227479726132471531463264639415860626699695693888640020226520538200297857153326018328838049891604424661723908367828013512686132747340440088613648924779973724654756548398856220386777852866500958427218380675896707776047654887915961851820086455481487302508937310186085103825179739058229067459447111562749234191168505068587164945706190492288303870395763238684138836173225044939194999415216866319335417085822586774614001436122570356752861022311373487290235130871513573400408721511112945393166279638016143702060550739187686777035102662354456502617447522458520889802565599529265659681697953220849133541627295192536894991182855230687666095695007748233310151979529729034004424731384352021971090214982927692911103838062535670043449436677580625209448346210764822119732130835751440684033108900857270757996070048246256950405606951169614453155772596877432447863583219319726396003812680312781597027617403637956210581785208940007194553838866978140937637898091994196979382871935773783229730515037903772374495617498650085472922204917575546396068807380072592595238826476901120711158571890136185402143275163632196190376377527521556373488779251610605367316315558184235014698621277889617582539859996123436264345262841217865217336584123285948789415037627317435746329990385461945820217039943974709921635588979545149059403795583968474213288670973842041025051774515421925732587961667203097275138563884935037063448320980157381778437454755177754937247149753719413279211525023704391529587078106535673638732692894838581269276640548506819934575596802899760595937291925654463306522362750612902437325295510137016124171735299520651619729322832285926177762496224820287606950154777878958583996804586651103379856109476824344076947818341741155655223475994318147163437655432940799649018779410321437989364619472354712471052635709008019624956220024052434892434453776769648443206692137102858847218615913490585131482589465407198275828846510709764245966686867224957453400720985074379303816245932361942283846121596033102563118068553590576924388838937271209790901045079511232949297148498998197214040310615439995266041147857585330017441050491816707252513006996995566956803987948901678175810151886666898697812851880617917477593975370497174693588596326986059568669256656209068395074608134222107106503253514717058366743181631938693837751307747343154205051906140956202807503659382089366218763889415882221119470403340134442506893172433396093555365713121292911224491950001544310097878630237215041601106588485240068605999751877024972799213137587515494759498015399530019573013120148194874339263253062655513319712682526934442704436569006114807203067290178875916554846333296944267930170355274497362028842465464102136698705813952060529209507910524425682513116030598245295627405849604480098842483157206986383973506735044245381186760863415754244151711023534600682599522943774710613522989130355109714854691576874131688264867534563739894430093235517255374107043211499357170713058928336266267453987884721514550451370098883047846709485007745607136347427909669759514256940709101070685123333890054964376959918641791968678708293648090030442525139693041943318545156859442526061997442485869682655899252796388794267391092530504431269142639442559910671772255413929331455111411330484424014246395682656945648006923957444175294460411162307478925544263047214646726276512334742394077980383642689839096501312055122492213990315467757144497912881791668056883729644893272858390238599089452705846939006011851631005549233888920156700986036393890564884291510126593922832087783525629805902443737525318015316601063329949004983844558477683381144979044312093061216438824254564340362472379715265405727192062966581446847088354669552249186518659153116086526504475053246898419084564186877383444077037532885887500894888222221876334600771159393455900222201096012287689243479479092655332730426702779545243147936780573215574124144310016555018487688340112681957830532563856420476078665952245737962909776893030307919965548842612998644554618952287055825024191941482893215720345194030458053524510552545662215576704513369828529830703605784349303967765467968000726226733727005475646677102859919664170011216133114901420782213401179268318920153280921199856539433831423774449826966974657434129122857839512216549258693392399236907020907044562856435102356867370722540551310921542679715734656901469499983132028699518398215718084846465834278220774329379172998321085335385983012296264256070096554942275557419125111059098152216549524676337305346371176295662380471099357281894739674256913077687360182896633499098269368758002532653222716391865044281268173807477019676877672784879147850682929055802466431124455561626333228014327188532278068935963146416839724344747392640257620009571297108410532803047669727959800548981575499877622034481670739617786594752669136259539509829558719053310256834925947204285127276196986022740325594543276887491865962400863350035057557460150606611511317433684734673851322705239985258855722794990939192898629342756885388425934258408893724029507970180230572087695556611702901718387806602441039544047418255612900774260363098845354544265705255976845471433894443562296379854195038979901557623802225657367847874416523642918971228335907591139446883063100676456497234380588300911145152135951117870769600905520078437971035988090659921940772014402256276558170943232761009203134730869177839007070362317841123897962619017222361672943034239098578832985868263114475406239868626514008038976751145348712385733376671855084595385357678038512650713218641056933276401546609253737651956645832438847081763550158812052727749948912565092264752640214339461048299066277738369859761671244159611677282901790766374801621936525174137298867136446386747135684170005430241852525487538095846613191993850338684559386387173721585856903978812836775591130332791310256172242430332754947088601958661817806898177209873733818032165952736339883264741667772550831938583302673688624153059397234834908286593377407853792148919902734325315067927148244194735720908424838823379574109590959605079666268199246511622571476950691330884905288676043123561041141936207656838356609692845366500560373143838911340232648519323147763954388945804280850017425550338108436883376727660374111243530597752127722043111749695597295228414990445284002377004056454229398802231176623025618445165818120396470757385600938245282873077107725458870178119364465927568907128238223264576500772523512257549727411460837188032984384561995182390446810801389892680400223959900274138696513339261452357646819437741440940464822192410710496757969141560010358165105758402368158283139703299461020512025207662195117087888913685857764890632054968059590916996818269735328504951019228232301174047272398749661779376783318208732499782119570997804213458048927862130792359503895065611749296768655113665566574452646722164771713096208455932642515939239907054119937410848958342200472714355027203014184751310375627251569350252973485782080238107179886680318923354590069141240968430744077085139070365700883865609905385806707256102009083996185407675389303321491884050593196265735154525662697902994564595898814793238708655775509463098416235242936922036360208628488592007365551680231891015866569764858494193251186375755426822806949375556610279057380787685410128759453585826449409447045013280998271605272019322013625861597822301474302739577682649533400587806622491748526662394443058594508694214287240510650029664908968578469297607821955776995005321377397881356849357524935496163280150203271307371780759736039052579823627275734573690170999280321188254147524743164689749455808958744888610590762773991788260700952053214022351495236791394693748572432072827685424858600520655787290703113564358297058613099243947666803781856163210848827971338059519255755682148193104942433025349647248158700955938760087763990528017950563671083825674541806998641934704543987851019090437758846830760663446350013222755806762829116362243713475215632244591408196531021538760257031683149487953128139362715715333768146464236643358327145851438477963106000331316733429607550134506020525841543086848121943860230287576688328573316971299146044556894925193713025202385072655928110324393942131097477383208169552236273231331733899553882205256114245145392089658346385346673789232122336845941077500780457802196773232804812317140920684427098275352348645557570134833163559931004888108831229540969366376149173397368021453249125134672688158562643246204048152119645185523955692603831006428877986070817097928549295979021879306054723828252508796113267034102048649594473350903849327889179080249871589501170067087435384542981084231609786000131955644489753358350047885036361203319735674775381543497444592388079258209339505588987468570916241359720516974956895535781023373920375312440805445283614821492248425480129986356401811226160627962720394029251456458679471185423259971882747472734825810300348759030665139611524781166041921811490940341643730154238941304182322112793408802205320222613294322938200456417719257256857208369088879609373685121605474201830962913972506821488205024287905841068265772901624840596403367318768967614503255097941253069357520840675047267442252478835599753118988201174071154850667082828526388003154803270996679542849962508535714093632980267118641447272951886195948090070334763468866325924236995611518277609063117320139130229563680601887232564990582167743146166731799214909427788905195552792762612336404214463280383728895421231242692335659261049378933845481278980131497446130191104868852463038063982141753646326862114867291536056430176265745416401509611738313201837700729957570943426103313703474446105304225446174467238885991259298637967384162846674811730195558833473273300888024585465400107243049242416529775233703754713127570230310153876516157878627674311496196362719936893780337291652206563085913322207927313545698933699976683738959688809266715587734322824124674155317542415044914517852960234961544318526009776238248901149219985221070059176647033025716619080506088651254059050465979933573791920039418659266388338059917807628850680544173207333755780752848394576794619837063505693278728411178691930357812833062319733186999512606387097319736607526146433056070437284863607921921236030854641424904046088451775331321341876448093227459461562054942099288821497253231817700291071056654525304346686877605351459136643278504980218703433169748141957013112508450322274559430334309440450785188097600029557355008419762270569491118696949393374405157100817220229782340648358832163105696098017348559566127126578073771131279722783108879277605651496509153313889735398802743651589545298676209749748801226747244473234827139442627503018805130129289539523106135704976344434078684387528107451703926209364009921826047051949961733361821717157479731393211882841430267884488405633683231709997219205831993010580842345178437284514215801035614662042338590486220448416425948362062006620268719083921027044607477079609437743112388566815265480936791292751639814972587166680275813759015204343037968191429674125783217035092101670693173204124706246746249469790913912096405669046063517692629827912713373940910238563316483392157051305110265671372738291916655318764533199522159221541246523439688617727183373946614385007213902898732486277175417052786091347758279799883209764306987274609637221230055889462162195860624033173963092505198203872698925133141616042752015620397525585093545626881993196884727086484427952190667894817406415766339523104102710777508653136994194965636494974095650782105247971900766709804548189375705929571076089161491420215080412609836900944294134837128778734488807705586347940847199032072590986324600042766667498139687058458406938350973559699671738714687394408563984267353305371451396316453196727372868414270153209933727998191212055325124600237825989300963214761356102248718562842456257820379874193144285661123283513587880725726458682028352495278070467993431201474435100002417825547738004557435112209816287058961815546326567619513371133492402167873403464738270547758655514971463177604414042390531476627990940976861592848627226808511466152032170581242879969521712030338445479241553557163848038351611995862868307801925328027843966054567437438677816907679358008750696482656483686516223195473633862597311549764659511441463579628254308323042692539618238876760528563492745804369199495508396647857521620460464764364027068763819982428071009859268457176732131994554328863908289295523311271063683519760149814497935491096318933096788365245535147478999577742587398149041476931605234007791696504417536154342026673185407753732003720715437952916177020924728219541422182925891779518234013334174859300676120801691115943792746184185405515896730212418349424737036336800804020065104326041790548622897350269186001730990142287814532372020626384654815658759782562595799035668181484031668124683245980485381700515533995850207534808960394206611699538568180258964865500819333536578311878371955748748578467377746974544973431427981632792360289923341019139585390818210656293528645330505952856177281005011751617417115161784182254033464881989869923069854632919178931272542060698905698927463820328701441045566399649633297839795030260564619937482284810803242068585946217633448855683111209618853440254494384358505255348822155223880777763432297059906754004132821968893053309609383461491938222578240664090055495725475247736106292169993251631048997829779293303805195176959097487336743549298578125301626323906003828882937952343785199579553008786775251864808058153846785776309535062722958240652726093833278167144550622612657810364538083700673089186627133678200898464550057080302877135673829121366512146861972835550227348541681824883729978245214125217907127951533688996965213347662562402498686806423026060403901375426569801345949209889837268705928317190895255798072292365158683787934174532739251942315604763209371235563956471140004928307899114018724061759017249285534791280165407386881670269472435727513765038420976257137486768844421642914222122240760147858273530397937374707170244955100687592650993876222894268000309525896221275890817513242270547034056930039246632807777809361924571213795233053627299014442186556674291699314331694275658779263502602327162234874265383417477411878535533160376033804847566003350195124168648746832727743917236858509209980622824512238877782457997795914115746298957940361882664540636592542386609643893412625747771684397873845836122429232621041013480462915627563068252597138347526130155443274231437059119169364590270113242001274783513340051934525405936483971236584559540748086799215625979166563569806969916793795636537922975730238444827916174888126480059688153933966849122678088364891074935551712153317702897253865398413920765746290844398725346946916646011773657573977706530043660041775104032024276084520143831402543494631154796794459522754648496313100108650908545188023912095780811986609808499825659003781375045765112450742630317664146526083435197445382604040162714080214865695383823140151195108711918198597226335462527483272462976480568613018717562036351552931275574841882601334004955803682478176216062619503175596741562149576439599085346038461136062157587625172363022761683685463808338211537721679241600018535629428996614615911138720379612994057437010771802248568954592308643450176319594195918134349137875744308289395803541957977254089613505883502295707094244178337358003449759953941558643518345629642688298033778609717949350464236847691102027645678814106516936430749448604462360043165998548892369097565425996716508860266716685792627385043672155119811498222136816547688673292372558564687819344809982371512387548829163384553829753936805155631346152008418329749579424140255000339490598231780999394046051307535177990760116115892573857221380281979719374288862576052102241046798543272025189208255898953073512715440568759223629972987687146297425106812103709312880758121639085713911524107317778552222236554300209028528706019826878869138504297562426998511784512284402332177582313251637666697426336393251814111708219987620464096359829412282529689564464889239005028586840421273991098440593277801271606995889458048762079948256630732538026371396144025284134859578372993379462387490877978090552297385853847416254287008842630315971084786259419652399394751384148639265197183176124389138810470646499521395148864446566840987370798846306411329238808743158666936826805118455290462279579059649938441157004809442439538327378216453542449915762117008310069493140905201489339219877816407563320020637223059372607925093246728590334794386517868924656772295301324555327216154341358775041501306038973737827897500948847457835635374875294276448462098886671422464815247336789756452316648840147425660831990100266727395804527677240361571679512526675163672928994651956975284878887351349379688025115846157723339465487703322414271896657352226257968976307970964055077371345664864767264506808928977964776485479181602986581559901430585877564200187260210594791695711815622331117701787305264022603619297696006473139740837662719797044663628290232603495929816331394718365333778794721647112597523854171789787011414081940012702514186057344147293173774700553916594018690796530407082118802405409182666778886851608805794574056924438029016527714445090759325701893030373067405932149878020272115025933572169809930750031710530276195611281248813712399016998013797787088535626727624339340732640267627297761558618534863961481647556760213619334455134309430864580927508767826480015538389526710704260962601598054792069983387806424612424097756582889624770803956733448426889874367207381549463569608148798374458968883852118924969093150124449737848822717651812133226395477931556465845100682507729545146730266915526031281469771228967474018501578632439037113166512661868663485439220785980979570957823396478214476058596965042256537861807960609741802294882091825853074489732943364773421769514302826088058304000736605527310728131675286200940905103162868651705002470399835195954557503212973973184225469041973165024212115870385049568438536542294736020433832590843769758411299466474993998425952416668832369949852468589704786318010026563612107411071494251200344562945456282003359728267497031731090656547026505477907701475039819057136722971840827700619316563503899024486724886122987407420072498624452639408618942349858577299790119193354570007768060425141225412875132982136843415204156665951154697363766657857150652265131059937169688995505446290741499726485228436724551334250059451274319364935115473717157322690235544223060818927091036437777662706814493155176569596913934407120595689811319100421280057913931942358425467351960913970650790212159260885035520109279089962273125649493731249810678984189008895405692723423506057918338165968399926388161922962776050862768197617233969129948432102303852862400324158505331768862161268809289202577989414565267404434353208680502654187180170170462129855154702568351547350406178832060803417820552831936900372926264003161149918440620992036220936453915059228270304916124396982639901957612812819710840513920030354646210224523185688336920129730697189547225119860315884507121374523736824724097336315843975220834919195432329705164642812513391071827380703453599722314311505707655503952207979109903329381906226371874746788072700482475117566046793815685314978926191263293920001583438497579178542401125086145159545863610481595837254142603843994994214481413716576282915037128433541068376199114741595225097858757107875105480308160063574484225459739335783332943479688122718308636689686946862405453925287212412655611064738245140228688983194479416971517109139825662930889722503093289067823048012962990112501640064526357170338863112801099730476642939099013014653286319393917865766943210066429981310692020217074391498210024073784443657729093940616873990566814436490364091663980802874238268235205587243273397891436446677648710993266302308311794356000259125350108418722891152631905929491149416851861470960542335933607636858168264723534040135746415969098740008118920533098176127476545079121000123717943181272724172874596957119088833012979204831324964062030289744178726315073688122439503126718579623150706818661408654812830648316578887143144001275309257801814885192949333003801007706885612305120062305344967572300514030871675518644971628089200651840636541509749711528017344082876819895032558690509685935763323447284833714204986492452503600337739373768710269489227002184914105644182514382450397844544243639437864654881524894541416200203399179711937846315691461943348192544793234534244746078163571852193688938490203292794139072247509082660075123097972374260861691521914274407317198404240505411028242555674642289837556204533874565432222712653310474253415370225384454583426909391177982755439426775241764948093946773520245097165721429793090843797933161947388419203460348815029656909524397342971120866369474662093834643660146576031920360964045917133951868379214066291464675273229657878275516937227554719259816806074241121917686881972737107642560597117604224470807614422379663771083071388875429214825684994980794033061004296874081733523890226335250885241402947939633572632084478161992183141990045565606792312900151306144610988446764511309722154330110182473458368609350132716833298606745065621334630590181442830516571152967200272547499643242287857642015871965522322772316686995981892949748232481132162627818417436015147583997168886264958009522669914165412527355909172163786021285911406843815030205065197380716304738021133220781766026518651858084326218873817873810712794714910119720284112721250306197290758530402219719984184014224708076475378600839926215641564666508438074248237963835880516518967261278890320734846844252195880742029774401963454729781174983252366573866456425562242713934555513127357132473803473355678275307702020774938032498229673164502727298801472505618903063708991699610638357495453075870775022067237139533899266863096658685566553178526498250984082226470466523822269017339529879802956274753566110085554901736685118455647811781855539633512570342659479073784720564494726956635209580466763516818123176821678093858018265648153909976089817768550071577214883593452675475405743958605382693175550773768342742413090343342206613439219416249984041143777872777745786986054264861499027869747297471264075415196005408875818610123293645791428897119002330546160287048237650719068939082587934785265854361560433020931833917821414720141659600042100621216780630006775402591480249557276113056205713303830052518517546524128773930455946595824982283512623960383508668514106672409406942141234188240904827598229501217242236069486115147448607270703162837449148938876884662884418214911260321544026033539333426915287980426282705604675658770149827810161195866416857973617527798514279041949505894728002611927591657259152717047106904288506879432093276771137527202463384482145750714161638348525417875127830077711936946167949222849560391034927542665494205755377442498399505503231780009492104106877780977345823470829642372086684873744893628634987104603132821947956008426248746821432495689987918410210818237560022987328350184658718585995632318989104084377483632477282417981104675523733075862318608001388230399245373249824134366681366991532087110318506406584201039822778862914229207274490997107244179902849160943360247091561279815741989139251503545250242529556070271451465037703034908343864706313466804044380297867002468511754977108220848200583196069238818195947925547038901888210388193041364281711371725868146793141927431656083548068780839885614810598664331920876513579719965915411794653503593492240271155969893184306766854705392617420446430664529232685284909304260110443167299290383447001836822681204294533582747819144072687201271063219096378309388190036277129873818606272058513049827998683741923060205611124964717455904280711375584369124312533802048119314364341728148189358771962536415596214606119514100939564042343904637826974681947262660857914475861767300535621138778981559090290571206808829711884376913193915566845864990476020903347656261341738197401319316988876844903851104917207359944143877130604100339578247112550571841110270999052368028546461184234962756324170505354651367524241692589231849042319439264027468728522057194104349997516126574268662843363478130568125485080989373729108541985301915993416323708090172136661103301699021494095652913814283533525900271156958549278974616000968748473781450329930415898170160685771125985240035930769327666703361119667228509670986214798611685689476003647467767960600383001597441355695943385811242492659413581014774019437515716583534541475719857862700852649760514599175590804279405483979242867228122733139597589018215572066804505388489697131457830143442604991458341251277942762236198633466419525201390094450375504046985585638269468394959126486175253924975848624703184784010162474037955523100270207909592295256237545912707647799905330927057202497832828191764557489732137373285773972453148442788064106835630711003901509880150075180904982674635569061044282299291044321970823302419582543503033871446391919114098417755265361482765518942512212146281861760286190884602586392943619895908315271013999721170930733037639604424968660332719924770953273193861520503419989866829945102148568621694889270248552856156335340471096846243900253704631889565546350284166683458588151017949094966214044674852198092963323664503656457699990410412933442652316914637610847212569189999709199813074229492006741176795056673622317094859302941820721432729432014778926515147735993689610199532439402861114509331942924176117729406322038535309835409141735226701458191256263477959768280766905062289536851928971536076944934499992081708035798144022824288784412354517332708668268893199539520550741349163305786587980842437266655205850751639764884111536336626322723637897838109899099963014470395184128914934028215766621053381931697970257355935683106779653670448177561094767912987748974864168532530711591613041655291049697480066097805281079631821317911565570203276775422191511276157533897201644119150343211940726518717528692804629685891039813458778469110358616930831564724758175295334057801546174150243858232179944065255357440555386885891376811209492292398952339789993562828647091746257453708351181751265883563154237228859606332247649877564165180659150350816771680749377781274082230003895785126059443797508587119533599977638912926753353832992717713620636991690885954190611287630904501607981270596730998955804620846199501344403280636018129436359459072935720510274907358612465901847266095699340936159377537629308158146712290996971465997736870810660334689354207857880048126884702786175167981778867632025209344094633913527503325525191091311334014978753331636420415891832120105336461834683223981709489525717049940110643003241418839239755091283406717955913576025244826092057187562394930549644296802699344277442413277118430624419255998726171218593503195607330718933761246999155097859289328540139261028536713261106673098821603560116121871407572066641304906354050532258405832427506053425902360398485896627562880059925493776958335576112035363449409483805549100741131999442647829608848806242301409278643206098092965140935810058299947964916802757297046215943602442718403703175984914961118678977550919962740971819037140843358154281243078701364400010797815610129096773215861807484756798361805308425568698505931124656115874462500367829565267075870431726434448123154238583008772106479665509181635906853384866513618474294231763443729141313008852957727293713427851103486247858648239146875600462357936705095495922861874975186397810946615765530494293556291268515316004961919187735272889085967259036624278634959503220289523217656724262648713325281260615311828504378142922481083777428511852450634021713338734606613081711955036718158795767894277161380637522164982043928795899892998967421108832235405528865115537745423799842728289016899670575915229988656273970160784052935925923449231312665612340483342321129768275393384890529010202421849258567153899507453773992180316203444895001079695130799052957682066640226323326503660592372477895902620791152638179485418618565836474999974253646140889121756310911670311863884463979936940142253450550362452213129276845114358325537200714663843270898324107611731966730341086793381487172172101468783966110833680250967121812848116154165785735383788994184984983023242136004667175019961229990232358591251044190067388214026698229665356957635745358181276632500501874625504769091026333488390887262256228230214304527639905161731262119803542816860921844682035324292518895248421770744506483631701601221859822960232855560505186533042447104634138897705436295902876987857864747025986044336869621161327625207647144343361394374931692500023570201269937315243344827287819414331399739459174475656059583738121537269509489442064747914402396497282792111533369951506834799966495456740631300430712474877559401668601962493097320243759270246408393851033870637604228377333756005475970146953868240038617429135978841661728547281450637009737722717380311275978022576437030302648907006779761780373159494129926363897006295657204236520511893116116157554835107854748036327931154339146518023446469778962918088158855701096049765294630799026553429817147783205746488498945946239480520590979862021957007666601738111193989674477306037604978339140463802149403151013026925222462050275257280929048423882834099269657761988291113263202401751133247871590273760874133524772575508351178199888374707438904300062722188638545399968848471258958892348028715796887423798971995119465715833435588704155689444091289836929247502194661408055766023761982277499539570647590578724509088614944987316220166303262048850846163416507955761136891333961336560270435594775962207528394769186943208662650106365998190236976741230038968464413390374097887353113014892573377836077380077901230556311744192253571789085835598778843502429964634415406353341348355157540912787442565113455794945809062783526720912589120562419640617151214056172748097212889739098711653893510742341816923294383022311636143665149131857653124239921368948846487975594463625351612097949186708009566297363016247478275237144774572860866358158556121664449524678527563059769041262463585473466318913087822250450648356828923409578747009915094904685304079940549070353900411253460995213193396403892586462734564769606790428559099622519620940792229016924219564491165644634812220119568872686257011409389659361526459770792223674140007882782738007806200296765509744767238188321264793248560160112858499848679261983540717288681819172407973325729454124790690604663235092295938625516295481992036828775018130045325659267671478567363711599127910605985485670763152516000298813044054636291596418397766331629161668807632457623998941333698476696551768105759001884880467777100237059719087800793800405519326474662721547887822990130020964809853285521053121858088846688892650138858556064157896579407154378855730082818099196645692464606239095457734231869152305879150814339495341862266395811644801595127656965195340602655969296048956057509154070532882440972005717509694054049821537498277604098641348991031611429151372026681218216075379405663887809300339406033429402217618536435218843162447662624301442670966050243895886040005643709490568598031387273090142016997608464394192578401091600166422820501678490440558872255293387212905299372324792567256916409540947876246141882696980895679414522421689992565785858556106007340299518570340254316176302081650491001480468767931802284193482263644629699471021864283139811327916489041262518114503903736571306317445321255986431444993832989844676130497131532534705391628551371456323719985294557113021855774526404614262435860985669310631206134165820345007150482866903131663912469009760034004172285332515533220308251958155844077434758594364759751395216433989120403040717665225800022671594378794192765856691547808134978347463820725368016141101937694005962662594938382717134355655025272539653620591166337494300251520255610494988656879486952299983791336758352758486111146519382647457590973642555939983437709443169450623285357737864863902279737671312714037061674589254806923691962790402190682854601136043494675631507071114849992531874439785919791376232180909348037085461227281693257568572639987801843682427584876389509749407538376306572945576613231326577057833018946619126524398178365907377938855989859670656974523497006517393237780680240617680288766269138050756112248987129984385221433005697448281413261979118463801279496118662538539015978510755661015520787357666821797464431229434297571954279968376321498767004452098558795261847370775453987614365695056167698672602862258125619526333154316664561375525901238614437744780336522376645140244230022261258839426023179367593724436335870890338825012102916554988827633481735051179824587338921966187957246705000106206602919746612820445796205765992572222952458130964536012560304753943327993912938875005738900236059847740610546578448291330502587666411735371635899918066938719567864950876038287437214991878292473041506995464277638686515215578091745783755150284724476321647276256492711346827473224372079387218242911449816068691582564556863757700770228955951187132644816744727241886308784615169697878271429202237010066406561467269267448783907742383374197172907992238212400730244670020215577011916626208922799652988169893465434277615166253538572348195954247145241534687399916352538580789683993005520266019893404588937960862355598007656659359823921139661083608532667144834693521824234813314167015631474217900538733472533602610472359817884499586352109839684332715913128276947741167654539138366481477139868830021213835932420687013634809571483106004281593410670814945643645765934658409165305341168839469121336401333934070602885514170437281276739304913184920915470822894395109791787573517554183597193346231333871756653660776660734414306954423007726363438807537312100339290672617346419066117615902166688708366285513775265395781041242942680766613999638725845074217981372059915375384525220549336705945338178701117075631181666444691272222351710781192784515244841023194349247664117958844414059127340496160756754980530446248351657636583096296242198895225727106524951079550003929444143967414270402886092196008207468661283558393076621868335253031422101516591348744450441889967959614726947834250948965779274789994142380983343738736722621533890255028852365985946062304901470882978616622599038537278527631539928095184587905561225630967458435760522623357905433742078387497515531554359099008391852512698748499577391103479371804335503679429437910241734516570566373906765948854611366993362242055434953580250410212751150718144574570474769973210634556680404744555110959049343019616736063719472903585041260540209065944074206374746972293803930448897873466322364879002657162058347725287006513124877995298138777048687364983421110124426275205336011888398786852103283077588582148076645845877309974107054101311952790422268819580506677258191792101446054192002438846085354940032567363269576334733002074187617932108825832446764177064998960091210566745279860196137832174196765923917874293890446163998290796173619278282808219934330899718828672067797397659100418804023090042836154189833158716310704255011189863984204443130097854408174849532005991251843095451584248582283841512827948756646763963280851426484594741145964494533777925440832435841868854500341763214559229973279587162940260481423921715076842748635141909140010811597223992047768443316528274913297779752280061912323080011657064310622282640584742991663999226913435579238125317209468835807168284890480520066735215427941491362599332115693388060969609124269547973862005826815670819627995207270270790582582195927730526729775335010620167315816342932351593390231134152319954177122731193411313216603520998982089298469894501812713183666314949654610986684885721183240863606859797837161917256199126963232126170982117921958850325270733776129693346868111267243351537908939347587436579519685060023171108963172294292870567578565262541138555633734309913639162011010604333985428764400928498757225069591275200166471466994012414486357300625299301141476918115752405166220750054057551337279814099113702594722804193084919987953476550542299531045312278422396814098976902080569508914333032091965360086996780720063811662412310068842102715215937311918611330915595379194797192284307238098314579314040490492031392254970948089055712271169551128509848221744469750847312805635321633906501901989378916374110977457614533548564639544748924351988100280039064446949272271141388261868333894416258689942479098503158351579354019413652454028029119600876451011773414534153802394406348325597119303016735522047080876641559659834135412300982132768580652032354882257810902473613069649649179233468469115793071765567210208089122663522080362412761840699227938960452976903590224868476127378768920395941011910802962843294050956903547768954715527502650776164843758628486797225520643681956129884527393283794205561805002624891679347426652181885245939022636041194235936190883166419237298632097585195798121851785936561731005038670669758785961310918130930684276551504608819287275412847997417307833306745339515991329606916753119441487866996357394336495962558818785110879283833171648937134249874990768648355522747748878436849656007440645766217058310383862640527070101866763761350396246884334947215266181127626199278805449134422843676043648513092537692294063097320779817526751425796106133554436137949853368728500547927240131324454755489117194362402291909392643267029706020919423724740317991059310296029720899745391309037297525079097882132190610630718053051209548027371196576149535281906358072542418892560717320379099075061254523312990592393504583967594167245000613265380174881645606443363061652045256180226208108250564837315157203363427580355653706277735035484590861955132830774125743044548242458711215207910138106109510036586589311467302443979170736626018038263820811185422510827865907297984299999930119447648574985851583756950745583957590364688523624263663425470591822313810341673109010534428331958764125377664925345428487209939462661991511430623183243211239859010758190439317264514185130819812917498089933230608282642969805247995370739574133512158468295407518510881133661983928938263538466364787481706170166273007001536516968539464818910786636937134131426539202356489359377445401083507461873218934452511887646917423257018889509740889012628688691543389767714556336360456546040489504598981704202790934291535656404501818720045254212157605489767715360120469801240738145338216322406641679323711540183903537491420580011538013325500940257622269540963143427319284117352299119999195769333768275606718369863924369026774298865240829957707624265294399629856261046646619882260151373658950834587242602790509444773492734299620215497046638388149703600572954814082152997533664703305481247341285022673198421144260807170267597621678393000763648240548116497126046289400264844339073069542246486364031600944432852218889615276526778653879858155921466430262988993634636409534808263948269351382086521491254922584732769472900633581626428818968577921603954496496326887725041040372788487927995141525733908759155689651386762456600274711881021136665016613400982529499519889767533499730784067295163966446390840722653099689224502199634596688667939421067099061437010920630523333577802239964174271290638199344229580934525186525756024106375826209242288146703705592553340157103807886333594443531977128662068537764004437354293107617008819931215373537652788671102631527101299945990325135937216855158141548669230378093540347144731949254148080974184071093129864077745097323065773546864640873483358491433505457267482493474289774594640375236480319683060308363050621361610567067359148749688192524975468465284556894845634517009715468459333830626080559838559863635981740126858135998329461081938930059084587981126329571120430678566109862207737407354217704411627123392009905866527082498036790860643118855144858616400354897523667319718065876646006523223178156421803061292822868455416002723165912256421819084578057405123399310482621052383434312942433398731465870063436498931993011537465567266003821400739401798810388534705894220521201571428506758703959934867967383565701846662858757520148507216578251073068155291981560903811989431760604402599280873599827563572420800203395242803106829636452928718124554012178523198945854502260049763680715323578664726753521840899599583534638329952466964780052553776461695084575507812125430651892784396180204011814410478111668305802268206705934172907046335697928575980194179503415968764576483380324680910562086822480601555619183106061271883111591268210598994518026756694713482684064429015102517299347137487146022551677599580737680082364010057698974460200198744913791868555882681609096321248783184578400973840950974574388614530961311037000271197148579646925900551284538688034335924097848283699654514235118347380778447530883320704158407305054548700760496479607317225539824240276659011591278374012633380009889048358170724415257001415422260419402238371067754100136844215327217314088487975753849760315700139794408597623741249099172092214069100027461232524433488496886419504673831678426494950732444125342215857331933306661193384308263405216044459280293033848318846837701642064589474814545102599441116714997113884312507847455188391320627742511094453483505494908720133788762520524232704602712555886523222234425545536731149222148950151858656686842854376448568578474132899790881562296636084257313922825392741377496436782510699872054211919201742288977321238351829068144752180217642507385937273765116380492898066298207413873736003895828792583883590861904417114398848606813542311785681412403627037496168703377496285328027878701519844101337414271887285988276877389106590889925198684299094411245154069809500491260979855926325185992473358698290767786880785507986582860679473268763305451691119479243751113485383269392285011923963547716165621658145666922507424910091109054692700342085258109852387697808028108784325903968358690038545765554048177663459999329030228045727037093730297314024500383833771876237567318582884509208075804581944838362471169635240759349667301436282758779169673929595079059101838901974360457121515240509911690249272110801632946712977029374201974488796995509533893982147907071576796195667641016371127415060018825532143808078193000578596788391788380688851480349361896990349573840198816472480302220434555281625682355059863284635796903999096739690383520541078731495106864330901146724349850470778780986437341212202382739312132370872195707396665817533033009292018637165778917815799050991823102052849338687326543296247737750551714696924771109719190085236701788847408922833737260041965595864650280853681455076675723547575585076243528931199921827859514842050019409344415850385451056279685719684290532017714447625463562524104874133726321226363940597244744643270805664057809291424790037431103407329158343598620226231066369220162644290883886251757392217794019982802635278356573182673717714765432629766827154319074049089904093193198486474717169947511700971998710058471109171687404913263921751708317707121845177344859967688599888884551466237348086784658485377906577247638581931910495515907961838984043035046083020899540960979471347364213303085982378508480602274989315273325315409141505450259270051457064243751611586821218092012171309841732411981608312572154625656880568407475928774474948916871600496980522731105751060028101741321638723064140494256413304035694337904206264508691323778300553383097652545431412455685197477771290223769174930094297242712308742153199594597210580987538631904096039935266018830836087914157697572754317812463955470061649667528815360139039253323369138793522640142563263449858146112743111492736167219804607854147050885613686013467881575806068720831702587065556697868919958554598747608885745504265419116752594844751256726788873382238648270243595317854615588536858594532386091116211954469108323335753057196243627040248332275065233653538414652428325144208845136224611961076144823113797072384722907318087610544103231434220513572417041264137571741873967642010886081708264587666533859252065856466667427638904020269649717663921374639814280122806269427365679822138019711017480578052958786760484728475424459480908163188174365723405080883428569186031660280584162380925961758634197506289102143561616877117848572348483533376415804787868251438874970056857491889240727682869007845155776704143267556506007657696708632751571757063884250365847234757908918555062956771167480668997413452651135758460701327150321125723951602479023365171464556400724877101430985462173559635059358371706711406283055688519110304794602234467369443146987204159552700202214173802943118940713378621868724479879535721865675215349944123058114761108393099032530045932971750544427142157088546301243867280953691785940492350426835404798850886854218759377979086582972989421463904613947586330736434029870435732447440388861815463823836111724491713760985579590121757345509804445840872537107726383698870408641955988906469709470733736298991024042563526046650042093158013716966583090080805529330997012734812609880766765021778784620295556030194881535894452787270174011558502962663039114219869027129641207942124149256839206226078040273027946716325581522560610142497941582166587881808381220928758321414371340111122086463063503941389642497442077981325439845108819673783657324722793529864752976096798515677699668336436555762630454863338701383088565215772877117184995820426690950201334929129554386119490952564706048769303101252978053429184879135075156820664992629415078264851301480939440657495437780136570512535215304104194099406328507221325139231672856517831166742192887256565250409032641973924238262311364714248146265874200495313607890019924819671643803068492321641742386742106864116294835241528329716681729824305540613577364979364673999242325773542724146270268698516913073630455464261099016105070077635760528822029107600351748330725223290007967436320504095956881848058358026579304466779165030665240970079814985942044920982607789967547276052077843309136519874365568564333335862634494385477388730563587611221788230298512397787149049384783010856217937379430910904741012295684034385594031456872768234102645304594690755849232803822500054608112564295376582373585011867169415033429871759268493491537212830765388215738320537814136824025466488848590886267250980234825767019077245469856178487016372654198186965823400670345252441702869671626686462951537259053291381049755184655870057813679244246642710718491763205084668753553211107981381043452244634996852556448350273739897102759579246139084671414659433249519052109680016398931381157132148817100663252898330793657429238244059284861440265239223239342367672868313331584669025885780387039803454238324431154534184882531374368201199513890684966782090292322654636276015615285567864610008498684835844551770240784339119439660709864041798126150100329382602643028629036350794317746389511524292693222741956564392312260706876638863520455864069349644836707207522039961099683160363389455710390006177360146847819074726711592019826129070096196778687234683999689117082453009916687229599707091117647736382311552214647908983065906145990619382523135446563536315582967181673346754514918866604033026951867134608417411534219472969667534595784201025702367228694692903967619144380073520253063087823318156209606004767807681282145222956696086612880069394828328790625677642582900153134102635521688164588657801214233972251065558506108396940859518687974707726308916544246508840241406827064296818858963071069750964254494301316633370980945286039634643942155167923296517008859520022023847849200685013752114909845115370858955357769950438370571842656772532532091523533566671723373812593174499395486525926427314831622739770804964850444270902338622894931996962220717758607395374059332807752843379605014738214382484653596746481863732310341292383507354338135760901470333635751357679701438619021241082242934787912515482601440228019946824686697190566662543539356168837999590617326099843056712592875630126492680254789943335368551276176939546650902675729355242236546520920474443258640818310448314839581288593310034771108869296971727208585166565676187578472456566737622209517973041455543122994454196392717402030372168776224300131485139871526828212348952507000288515793329287394555367326424387230633816782345976712484190126260055786362624797880255803090932250805202626015375772788429417188556306220804776685345989326465957847222169596513692838685603812495794813504564416645284527948592828675398269896070072848527580501630501132493906931912845671766837605013265200754856842012166684999595882580829106396025310141832020073206633934214476087619722293721549328625763708728344007220595262276782588575422225859727552699043893172100241515539685064938806692726394124958162871285086366234942830839755772070708498979099211870627899430319278666838181318407034059286465444902706064702778462055004392341888526718907745307206186787917902472468182699893243187469420468044494517982548960507583484734193836393272080505260738221974346677033342256521238730834038558374046991220943812019275670354209194397858059018147411411560521207886388786940002919607773215820913535678408918463939581699426941598104061845488240722553379845466853502442553556305273962984477908900326794859642299345515240031379244375387046894698982041420270656248627872461284540998845737521791386542035525213984914869723295397916838645951223721875594984863281545809423422127415012950231862307147459698123528508281226815540334510156821127706053825728051223120568144728160420512775913986183877296388484897619026373654455028997791607387145421547350576175135330291736359842481539300976804536515136506249639329122158511273006405155838768979720017057452398515803903377099185615524649465219173569368938657997008705723323419272360873045866106068593247212702377068715849808193815348696467398865221935775431499970463244152401811402741966871927176247396729498434402627735634959902107567359818827350704506286689445331785095079386700903676759013025133837274032468615182978243814377216035485488566690469048346127556340181228380983467153349661239369804303085376444641452264491387072589644789204276329664799731846564746740275107829823933148156767050151706443333921191706019080518990528816036721347669142418977158431229905985801880653513894700003118083057599491157324131901714993167285073542936040720735133005406492487494681330924939492982117435380413389052979543106919766684020774288605187380162593861400184950883344266624250781333100074693096855310277253445248330315644825806284450479034669487992466216903463184721319976617486574905310132954167651622577678179273577900415583301301197117717733040447268480199422021586894746576838231784001085313884336378535675791572363298427930489992635828867767076668990126886651411375318512160655094054874151610778633150638164196878983849130139987868345585470192664428598728501436198796499915381585206776636299502725686551300374746243073515341308065113035305748953739985266951637835074680783373519798395682830734939304677069193546971424723734713719354682216856964542041711898830056979023684889909556250629016991493164593715069422027764336474353410247530338422238058687914629580041606490244637958961078108877070059884362891514838972052968212330445531823978950276950240916286149549478320885409840930224169048266351263953655579672399596128063588057012362462614839555257538505241834080557443717683746404677159596010238560194936535671993591414450288256835865148096518230207105143873241716607957724797646914452880252041481284708245763391312535844140631241767909080476210584378109349536733128511830567324090318480487258700996893863200534745131848177196969820178245206237488781879649139728903803395219430390792656476119779724122230856442995698994659255095970201878187447465277904187472186419179429480726719011068227376083890963696037598945624916950511618663620358664486481185337075995014298523062529352615679773915254568054669582800373862723345666265057598499598000208024656657672587539385058060166157461762369862128459255260233211920091334501692467608753616867563883946569000610873054266873647294042223695630855742764407930626174902260312399354368110432673592977561901014397434614495703234035609932796180336634677168837517516729767534091373118019384452760760000805906581559460727593369694391869950938117239879272758085962109493228948970484318816163648165617592896386724628320095876763082752783339594234528762514420055182248702057498553905844747190090233650214216743198230071043399308724318111020972584254623769902309452853037909238292932287916643204031500391364779339096021725637220288681034258864960956825690723326931907105019705095119271344254647451140663380735724981559554487620093147609089646380772162562784342938202146705751919275990689136354213074499069024859918451470103373455543089531817508241363890254558209286187979162404496304803172325963966399514452677901683395508872341073424815977066497696015006687122180095240443634206973370063939549319448757050790498080276137702880601987111689583215812564577140014739859181303881974295441213739992564886069017087022643415384051009710963183524134072571042691478717077128640278953229959520882755604150665783132419153906856549631438562707974139169885540959989094342981954000791806616351804314786128922960807744305864555820326843041703014939879493506775918316170823810152551355930016943326689484779349292295259640105898471580291836199453842283944590593821903313925451307568024398273605763535510269671053223414682688432418056957677158516260972848803007900005066880703347073710194994927726487415481644059235176472924277587947892099454476835730131855537081324657115898337522233026555295091947393101858869247311261614486697206316431166038903751816264432320017086877151616193828721414501922163947237579462508068603127479273567850121138771351235563314166985563800088505211830332384875696540253369198466922929582654799915066052473458597332800177697271618466191342762482728596316721074251765577900416343206581809873547179978143761942741862548510299674875467608752794476153422645528776123910951308315874390853906895193623645337513242254371598096109973570298253212401046068043927239028909412523454787775870116091816289835067746603655091392561429883956126439031147373812089606256338827505438626145684924464470487943034751478674962550119702724895402718897067957172660317529211421350989575076832802120698994436007808008912817743312366834117548579534372200894343009384556813929111552042010201152495884183110763444691472890135647278008371442913736813958299885910276877864237127778613047979623128780281490422832278464374485407852610946364561203313873176065826090412845023871981872715884640048487564237279529951554067177622428413641289977960162181802497650799619077839653267956363151563363909947540478915408512574779704193127027811326063217743426127300467530638357964098531197776823228057271545635058365910026074125376923088478552860126212249185269499382684538758816819670496651948774731621896379748779961469042004898068080803021335995806865821920726242947200878876419451008065904340133556088327963961426056246559525392523447900605552056774241211802773886395497165939823114484503712211280201246315860424348853392684900047845157062683610164789713348733363190523559704210268758652439562219599541623924738877926324543958809790517719891475757785972470393041209620570245901205561815050749106663061097453109313265468003175871957603280598647638739913290853056963457266897324607992875023292294004079827063984599541259435806990065280426560265141960265462296147835879852553567242331384947243098398476433888064115492632012155735893007566891296398323429083396277767465579190840130186443095711217436899712966133442363823252815554473334561738248821186981469310502850661574553880437330465189802324770207635438116147403468002079532255272649502653601658909603067730291653830332966451314690095284107351366993257274135812013331050900333524924024156760595636054436193123822356102452313385136016923180863456928760348966433401833225499277773356012505018678868190682024585857956138541202380651875169762870908278111058474724157502854131213275944306650111685876829094955736893523901347023774469724588602897319971039697532999874001563275568688240061788325872093752091788933221543131082498753515000627120827164813619693025344644042469884815961116109962396889397941534003242819056749453510581267383037892773182188952600262634721104109471942965231946383461105464390162823746078571357271110437719964617936409873971628361298140661034508654617499456986264087661716153767129542480384666442214387896184971953554648850804136828379810731314084624895170454382740242719767678539148070922248227398084153767591052682872650415326366585884383430772555137379413881338388758658530302695428665400050841041322643935050813777764656082199492005431890323856900927382459994221768159217673012514239252440359793760247245104152110367639040133075823841814393982860032666931844368146045349845246905063354387443100712920337824258654615749307083460208396950094723190458894031269201304523321535053552494186907006396865220837483172560420763980714793838943103791168358662066820602887291405137032828643205107858549945226627349586464991672746927736510461438003166238569516833689689937086261806847794657609650838579616180483606294551387554342625086926227817114014702971095380512730257169288809423160877546441035972348793746531386224209628953387598216838950201572261269282476795341427391711325153134951649694153730701040212045341119705818989852879129274718537654989959415980215478409569219800639088034174015875836659253648186715080035453001571540146799912254602023504667817896618148879266068510841056752725866371077591898100828131692543938056359694331549624376134294589361095118320990836839778965271598213756028244101270485849610535706388683020304119771540129846281038701343667510875856825746050210228573719818312164605486985721672996240970345826035667519883790682118396522089963777897476441644304473453543304712933938317536750946648590465655084186848579170194890639902424226220767927530814840995617937304865788401432688141825028059917839314829855063791086830539620477402676152974217346802374808556640695484052691667214072223661958719222355624239080261163743410990508300881519789231812822367139040708587712858927091918810429036414477042656280485961798427118527916766085433178675172461541589084865446394301911713824710295895027225489092822443730219794310695092123014249907350253187501279046878093978401764816440321770215841185886215579068869026265392393010192470621360270861691771358792336715718760243746668971078201962462181956575953754279815998158306997861633699721388562180858210752323153019248048418882608885460162255989508640869088323091437934292305220204650513512852410672578553982486921093647102411274033041035639679329790311480451884959860355121943950626263582575588653359979817958808846192859847910893009241336088847992418636323957927330411012717782940523417100174098994254548942436183748352101973747068357761687926924931302196763625218927693156469913726959759058937036185387144553934991705368224951236695002054143925625585850862384072890389737465789342513057686049992570022772543013826983497505865807138233629900985727669208779525645612996442022144209797411669958465180032484841075484887446863718455835253491673803244879358498818246475236810224975320578896023148622027388984996786770905866738405487326368604121848281997184069629347928071411598300530947123123204460392437428592336287449439258589904382783099304679565764191645867671067910307167398654836924837185011108805953606987590069986794619223764382784687591675105596285555840736353214006394304454809438068448878718100556294598540969192498565880038657887438192481394799214461637176676938367911748550027228561410710013404863613360239017858477282024780856703354858294153264543173456199626533538774842104630192502218383518572741909547540082267784765987054945799856530623657781162645654718331701541026938376520955745403489286084600555487585385267846734678420178171905037000296619163336324297963709492845385157462404896313044500513309637430547029401969266644175713975874195559311817623920508479312538574856865888242966144725061917980082785755169480452183686095915207594422857551062067440092194389302393124749481967363614418700543395102978230031893061813292330323451747897825971209147709801307673380869661119851131178064638393598830609449204373456473438273948977346492446685164922781211417244138890031450580043942833923001096355739932714366437388362772277669486503755153480063762545122501105634744826379983571930899438136059381203605532328527089720315555652134315193497280164711530685367893271113488857110955581746092346555228469994126038558914125578711466740405287361760218625185943910418808842805331074143528552341303072387285926777336738688078965654581171536156802034148570794791094967035733197631338243404147151179412693992545513824515438369683766704236833280067423455335394859726468440966435885383968034617158495337247819523730257520462334239262545177720108562005578599049500329096810972168168148353210325730823750680442140994621720876616563723190356762995511542500136657609235401635769907683600967200198196134231861960619986325696697972748160474121406978828185558740250143624133926155950195554512053911378536374210676145371343829610229093067110545756647353805100351016056252113329471847012264715566117590560960561923083884174263131589507588723907357170207988809937125915410312108750597373076687852490757676185941237936946150555282917509819439300275923078723656108055360187211871766897649255661360962868627837111354347017280400905297740197176268560603106087427866672737108547599520070466907415534900806755806143467330513295558304978800802809359175038344225684473486172058787667856996020006263125299943875300502981904445992948786797779152395881803792726614828963787059356549350884757703254626845206148711966075132665127728084734222319096610687748532678392832622847620269394698240369402039500968811543817181596023200909820629462036379202540393718991238232540128915214923632190043564384911373943560209461390432811188098925695895521615965761319782035546801441616362605429605788758472814586627716515093035274851866658972379362621636632622605037428149305686286007073279910970993751142446692813704045175095219735581964423252540754975112966827602057623133616245215464260718989110021774572830992333172981547993513159997898310098227818100366438246120649783275057949357297954637037787781900540262233423244186510915962655868843253642288938427849419170954884654738651562663331766681259296317361994883311774154192991793576962547110669426319528970008413952522363945556487780459628762689248262670203813201917781780144598552597157517909730240933931277538817307460047355180138103739714418931498864544756985338269529983021220220772202576866643309786004844111798669880912177441863639377722668713336207475076051950673201016539596430754676322641369096542105025821712940905686186824182562795520814598521678413892013494917187884135930311889374100773343798044733802484717912284727619843894968672738094261317888293469517292883052977350691697898941288106394945852728902551561745608167049524802175312562107015374563952275757377612488386695798242620390941640568428730284700102069577345018114902181142725095947643722350752704445774726157452524590335831113078889209527440567362399108278111511766129713928823545021191255007075132808853992503836513155010917885600435318600535129325897763019949384639542748274936942128357567078380214451276460062299441023155497783728239165830970030647779807453049720182429914738216079389950714628020263075755889671235490855829620315499090207152776966404853492304047160512532362850288203195994912605868904628914456646822138706280814120471624091146954470145689935055451250680924580064256732695243798117458210803391217028072738515853416407811705380129086002083740527840397196429530847411760018383800902304435320955702213338370927082385766370141040083854653738791438156112138928160084791494557234253855492079306330907550125991909297456943199863811268599615045757219556469992098475898508579169739096162287685255717464286287515917546589879382807335368953820446547496806063821253412126400025950825032660926145598139547433481523673186532071564819583104667553175325069019638513048768821923057582661982505749467507594815247173450986369965874887749849368094017246398671471573205872571320291018023810311650555900434622632317999487644099649166746443700109804271685640073109975655708809334532959428594910488188464031383213822279135216328710607359317736105252068699824962001375059863349419571865909858821545483335433197024788758815778824683110973287552936255372641470375086995235969489453006978243421304651065504947375116152570647082176036070358551888058062282140238264351455502936797158885092754891333531616736146605311598113486854146075649184892119789786356562784758559942249252841670762270170344549747534859152208571215478300525760972640339832393668327976633599548362242267346698253375232967154203496761739296502458923711447824299893898628640540444701244161910943160669639921822918336437290726749196213422974893423585768855834668692109718086075111005774961990551647560084248633715628091371867353607130777854261248910780001130705157762372960366969805690148424903392335110450421314475446455661560886112026798834243202958966117011617692119000713140428746899979978012809376064435637436991117825136786347678819099845463200350962637957325151382644621338673746483130634011027402774544538393496704069235903340517218067914111099264175956918049360512825194921102698259704593320318545556746595415932294836251666666427215658171076345567289265089735962980754992005143156463323200025485329459976436742302155285483614667062309089708236572980458477961467622790597922901789514751846645130022002347221191662323379203991280161709582147192163514836440712421030760365565510593443691972766366454518743069584807335218104968420152238480565365845526192975091708209426121980989359562805324522345312439387461147904111775160275800171893074734634949010735813271501555395975378150190759741347371663015191242453144775246791271201628285527308754264274351112169183462601781072162606028848122795373093460346985380241207176333640555248383552526877320179069154290431429875062734490995232070966022766798298558691124259775972425063853290354938319084693185199101013494001653198468787122593613416285523125037351463710566936030040340734924821051580996256972890642295641242465183539880163130795347730856580301869059244112798938931967593291756259644921850664587654153114769017147046708608594072617557026520054444785338817515596277808342826633259034522231052135680151661230798540950761131709413807171630697478766125748134916278809549963087877082309435650418546165091227139246767416580424554750806929159288391055792076266371190946353848062083776686025210863470783160225594024571258982129489209913618892437104857301587143675632135314454524585069539108904923053555138145000393528192516836757018312160305282366020500601919985076029189042848067494694776368526405159563342215156481407343150863163146190897921203249772733129369926907003095704304028991365506289310541697868892631734577449696203049694670447073155745409997554945255131357060928218490600560552952163384178720146812909039869370147889024440719545305186265084880273371568908107939406095994480787210101139544336841915484860989327732987562770370055374826410699638163466116001745344059817891497160832410424374645203890950205125079354972149553986777264449699325683766913808050114487446930154564388764448647622305782486785632397620098903681332966440842502976158724523996779065619055267083363163823243460654403839419567166859190523621882161354287608753109424638476955631398865441647272537656503957607433325991677923744926183853868375973932040404812510158319550740944369199175461130521900665104229144701046645238114033155223362471527521749668619116277233060010853093449951320521313503238574420628755434287150324343166568066230494967077003081134890112736755760913237657591208925803532609156958822888642702734867531357892455744794554114704191237272808403036247691731414239937689311634431694482673317335522501040906395951927810882671989327555253477745003798463355415298763923869528176303832953149992116390846222200116621230389253423657237741014678198352452724012440093790084108220947851515769619586141149048839731117580624264821860043712325086947907312241738929881675259709543884729460543531425822712425913160933174605080644831780382206953225807539260575828214819742581814813359139375750169992747203076125677964502202359951662243056263868790254720036309947768037601881133847461645739961750170538296107424542008038959585749536200669665913252215834812247354437986753273486938167878048832092702722451531049175260656763566505334244115335509415362331307194316026356899537769567317765510139165830871485526118605861497657367040833096241855580207116166844140720587271932211783760832165364455418107966790894576266741731991436677889678661582637289654310566507993727246676219929816072120298968251616620618836629671109839943244977671905066292661527629661690562785341424987762551985758180316847934929899517008892723784199259289202517693401155327787363353118734130086177157175422678939662629081310652652496868152575516074471192249727756956450970675586797935006122987690160403948039433840755470992163508538384818199793766039309250370353309073647900769620972876334621656092181397680013763137761619389731497896399126451636024936855382027237924660209342983771731856576954020660441096095006375432386970500795799876651192655811401594464941518978884381456214704038607443462127371562889207687241140771562069005646366317285693725824305716056302560193281100524956824757664365217918029872369658917459986647573425498661825478007860551938911725646755317168351571754831001032448342562371905332357330615666824150263604470959238836145711672415259655418388617930096037140450384049613687226042500988156817259658309229294770322879784411314438892734891175181786627913343970408322354264781311781335093632625834409492763939822783824307100305638469531360605051803961467224654595676368514860898566084614151229658457521285757390857247144972192045331469763292043071935229762198399170009713185161782829684030539647991548413510148206616748924287987980101549871363188957713501168667495524233461887674759058989748037312322757448275898330248939650937059840429335896386835183993137583118209339880804951887147114662420345696816629012109964486409755185396858215881109360314022011675687527857815493525566558551778951147362814214882039697310187248255412312121280230521094263372143359791240531568962313712300223700592324771299507650608756053132852830075250229507804715005548500882681519083270084774972296115763552994031454947417784630748650320221963957979767453441307682498305251035731300960536671239316615127317311605126890890226268744608530500001529440951568784266883227333456315782131441932206251451749025507244957350459698567806630129646893908000235260417846826657969665108861370926104025563548326841266872585802884302434004806630318159443136186288737181046747434534458057801211514787297004491947094014822091056336692622521823727672291081338472212023460447805503490463026994733991438949176874581377324536620987109012370792104497695162297853754700775017664753881531158771726552321476808124441745128310899389170613799239960157000252245423807731837028259440289707550753678855473806848864635228906148647114314697257975574893269015308047621763284769164479391701333703160798583607913535188468316480057994627381191185223214690328856683454946127898973552031156034594222774566230205203798274639901224199502386193678825651627858030298923662927339400831904281181026274964479117789415273029860930277800400698330351724710060322921445001089876175334300867204100858496334068660164355798323975414814554809353954445298268956011564965089801694909641344951464845011881588232961104435564550446462301002924342607953149473990616046321453523701268254347887204662099746431517683357287053104889763144151395752834766983929185466362648722530263376624739241157401098475658329699769653583893625966483075309864990604001918922135830753806072363576380151108060183507774129012564634413458804034718576879316080382022639369844050915962770733590898122020288993611501629003087203841424158143788918560389783086796624099524132875792477573519695593070318225467178069989312416540245994881845602015266235913137216646497883366416985334218715385889607194836136974871686514863539920900436163537393538341019135249611900931888488236953706738681791742094648117812006645625963420365675385877371138703716923869337778654452777903815321847228786928200330776570792490286355241312261947883504138903829399008050607312342397619316795115542236039749350630518197955071756585443550194303536075780246457321173897528066387942429105449207169458545409132965788306745830038878692800478349295633274271325138824990540290698753605208754457539845455925998724864014794102033571505898002238446208211553402850005116676681002132912969745006280045631594975070073017637782292620296699215062455250449550707803395098860558331683841830622841852647679067239180918722709596744133443167677668970650135217683867870451772953020214252694429161081850377335966335368664824030236771583350666837979382209665435505354480580907838755260776490637293171882492945226876362957765541039190579135596421086734852281121927457108002840615145077626361033751553821800222717590147384070282695899013879410121517868883019984733472819690907261734552259254410517516744776138971993167479896677189000379913999752343052447608383171642190578561870499455640767233522183242326924229621514177321664841762075477964405204791064816429674980977417282271362438347599941527498719500244590137487901275769844491103971794492567575732791599128000485441785642876767970296675126662445630535054438412239963600085716360272097418988402620008739042530738927345311312976357559090171402048919745183674504783053507864994346319609588282669581334309108764097829958406159918477397604609329258950351973588116960704313261921495490799506564491565125403042038034471124458976850712432983138123013113293256789452630555501637423192447008684007825345908904687361985797552904090047835070704777486194972115532001375656282561126258186036823275369317351266631688912144125000491019051801629406273364815742727266669035407905085760363898581832986549964008909563253764258975765116620222695560950545890137776060142548841741878824469293488231580934157416891888652273615862865971807359888759740052693120908330803027844242890151812054347953761357392862979781999144965949667838067127325742435712914743587281772066631893031622619311319693066367323241641031373237728227307337844306630386109175432512857164741822348014277384736796800451524346369662236246815007824374799700985384686423188963634882699659517420165640868706790136752918099900923918214327981239161664547328116285047760199973090239383427503616947710967940012963649996108675531270732541885044369986197951983515403754360916870387725627284749122016020898571562022796204028580834816943775791927175293552040925992537911939803715664812368992015259243891720851389170385731554039240057525981606664334957182535460187632204549279372841674524266750259288238087095886965642940092239783582387497974671158312089221498405095180862919967468300124716098291706991575609890726512354475975901741293991017491206600087120301381821788973386635326587666431230887093494599984174240533312743049185590278703569740994882063845282253500193300714149144547330098858126398327915017933452195187526516553443295021295062314601222951689648339343803574547585891601631927097440233393158965084827000741355840985457358444702027907609133572808601064124129415219559422042901201264885319486644545658041397533617125051461758980116599891066666134039971662801377126382363509266183666160451686369290799708014977312180985654408718236953052690037719042161271398162357554322270436168315800272465992478025213145349657758105608338947692280167243049576647913058657636730723490104599162974724856128484662803741841375001922084723759878029676941690819170824589263494063169042435198256790810503693959851935089534729808733038635877245040681372767328725777840421991385089459061822227897824891560082292139009017061283667984223296231918736184512443858340386731931323049778689900382553329322910948683488753777250597931982057882834083210618381601344486502870242677267160365784594031141261565789703511200790541917175424948268602001168839889412818764715377368527592335453427658296020848321253538105884780392172078387683701250864750672866232878847221810777664399633080326030928201320288288002599202357007854138664634652278694691337194907107143901289683549262890476083599837391153135529496042682958088462332015414645481165463067401946619207659828959328675007616117155970910283340139271541721682757155841260487977863691491246325937987951608229498352293822437583554261111797517450710253019651632484130273755451109012778787941195952496289331253868276127993013600946289944435224836259184439663780307988490837488611932438442983066363954824672349623569116404318281724130280429603813474183415183575827371600525537897124456998470632094603252968496487043971279730202479119922364724708183837029113755064474535840510722429991855662463573176701905908899697837646745590668876356841088600215383155059870028930178187778663910090423910479454982270266426668686052315261700060627295446494592209386710086207681626942769842603441277279842577096795296931056548498516369748087276469020977097462907760180475523887570004216205766523722463104617583924452012681083580682862434108173072486560880487775558499124108000824005964692046507022240854515174124437916703759239011761979603672664845166297068532898993603625154995590833036368267564027683693217157960289913902879674209023534560750652501683196323121470202822598476634331767439687839773361404826704819238340964799570795956297304557739338500416075577972534408821833643438678516574937174049663649240126619893616186906741737664751195709755970777974543745751296147696046627234715480723549647079592135555884078789449140711566428027390595329082924096519428929092550120393463414455442791763411103483627805562171559205268338510299243416908265217593311414276302075644603839769539772650967564787955692163159886557701003594020091601622439001296474405812578208608537899433768371613210165608509145521318128473367589070086176717688955797947567849073030517453005228503674727517461872424778835722986165409805594038522862605185915083977302744372835269168533824659949448578199984175116358999320618265555298127350088103711098038872730985068026671313567754373041629635077340183426716783674548806075414767857960650990280541191021042317852445498667294467747381884138371205067206598966329119457360991606127697069245556598002404052887322257166874671032617892023856626793211189226325402428353231829376865109145898017241579840939187463130987984533703453454491922238148357748676415397998911057215804483157709049682383171830576753114023325084096063914797837626967677035807652729381309235955615072134239122506828732689505141269899834855361779799640494854482559580341183113433433935780725808635050318240757983879545081037936811396656064966938355404808735450571463862064605459958738953318323436265344794651161941460325643291042845497968969589242551706170815633293975885506596533323479875680642785954971573692940562526142468621656823786951336609616279391876343283271942125237931837259455193106369035300170975097599676362485590420333505723928387529807542527254684237640833227781675515364082330606781895109093090988817128730042086672368540813977008810988552450434625569830510987375358801015034518416536524662800995308100984289548011892718353166211830018516629460419978533248428891372151141243905739610468932782118958080926860135046033373739666005218156727393489992086961753907926081430652725985611523430885400586895114300744414155877705194049053719797330178838878360767317740540448732456485383769236012682171063319843449938288709518213838924367723841663945485588283576770531119050629927717050282537929519827690365389178175419295465448587759172913506173270498064801472964380697666910704537704976000146434998792544010887631624626592317309199514424502963094592911764868060608760069424885856707382691466119399784625688650191209912980740758288379588931069481263353670243377972811337498301700933859687616956135649886037665487275867803330810392925239829276927990376299252097233620769302182980713027216758116922360141127202202953126908971171547309076129290799813506916132801794529174159563403373105500184703169223371895915928504071234895484946834716545993271827246508057855675056306031096964308759478853542895370040239490847223098715657900577399223128198968528343848267431328172062169598127313173870574035271685595130138557224614866481045810337558151337815535671021891237833748619122464777239984503124621933714461352537385140940254295686848868419523773861687974841064184543952899788003498231160882098943845247598669102526661847057023130439708684923762351395262260319237441599620268322267110633958864073232208424303340145688741264311186648785204632430584734693452684593919783131359927881158765785230560748364977842869820875154028366237564679084484400345097415367083345870321451228385938561143923879600686696016003030668574200524736917700083410977051818998593494375861867119436742130934547686179681293805032566859780269130824358845371589932459385758588915285387546934565682485137729911914289775421190888476305288166860635671068336021869367499912355311359309965954613936756269825424355510164889976103804468174999585282227685278964675215916244945968695605581836440929736665843041120154702607814964465731637230050712682724427113732827956514278609666859436571974954007362149504429878468138076328205613285720988611442153665875323153986950477371742535818550085589034278578012037937639991024604294004996393535486201752138832960901465119631417294755754746560362714828896051229220535538986887573688577786115171866321542226705486307225312458320325239725299174763135666902005456656079038761366444032620334233373484913816352819983193285510193623290952062188430728443909083476041656308256597924968251901746321782461154206433210430134193637847111588983458181695824068245140580617712074525258123274402702674738875040547708779865895853869574533382906184075705652966628189501958800107929360076121033296281345915717204717728617999628155102132925515482006274965199594774090378877803134533361338153368682186987689445049928479301472046081559092598766346641521456971187890391076903838506808702076397505396079298562756649084292324649229886399899269609814031967462234064942923671680763554461138983072401131451917075819323209731303401521794947688438523288969948904314370600524381830147489129918832512822800290670093683319836955205934722984328745057615217277956472070910920389594673805320659619218992571866609896361991558760645245994691937883917953994944053400002119137606952467518673204217368396169580542368626971309288406322332189265589983307084019291608828655319904198448636749946384029993326388642585712674219438411838248938070419126431405519699333789205571794586394522174273208236634076266110593494557390283905851575540832938896991696577202736928336617373395194255929911645374032710996715890441843538378626966460051312217394337636155236255572939864111380196540289901841905832761095318394618887484288167244823104630833156178439561106108379094975210746617337171080374609604337799942823081679710462340566032136136798618901881898939579960114940145159354951090118011682264282290751094292154370097093309575403771091848323124559911970093768151601249323847720731711675725387382833100551995171413058369702010365265559377363024510350690574453724134952174450255000373818585634271510109343769821000094723200482435907489993047539562758900363114385403155143966801638359522579632450680302523578490775223294102135701288165393093228317065501246336104665056096091662693725672025211507729247957574567352187958725670509878924195607287156934335061804578692689543940566687916982122058440089786625152606789757235403325683537014180182950336508634780390973980289080509728036862428545058203798663387296597294617867631369993949414850099812399730607244647354227196150552377729829318837070542049582672626768782780906465078286066224474175731500301822471144601253898361720646300709328232470015858035249675564005995910133729965284186353313771305374987186059394335223057389076454250151938349679583714454732259157241784133114258666787672964551307565444437414217606814821496085827231933970236734074206642234625774435571911133849290101369601118159510576235559430707935315660041548388843008292627821314327473285825393082121122638380055932605277982249829356443235653437950949284047115462783706332132297001992604106099724249202536252594179968296120686132907368210326707344601893176076579239739216673528034690904938039515019895226790406240035220137999055328593044582986783630519979479267822225167913972636819472927832035185514812606858466920349867537937608530804470572014735635241997411241292605480152076350226217642876795456493911176220352045405331865642343296448172207408790219238802655978417473593448973971970919667682173646904455427105919370409079292006020373936448868275797423765474129443984753970927844458673638421763763207851603600414266163334650862391766050674761209834699191722340222565851290021916615239104998890492155227993970013644221855067890514814235515410092473537753895660912590600577094798066830970368092975006155891235567224377335340249557828583211161295659518384855838279327337665242343742713063385172674511827984391255333376054557296222395308536034731401976699587295536672344038397282127453788945637872453515819928546609567130703952718442564730387059016284925475420516211760437982745835498522405865305199567483179504028460413010281920723010389597909017168837838458704808817735322804943888936721211258493183771289228457025628748115408964259935237615705495825537157835672311420643532418240333340406452205572235506671471080696279144206461216454614238277282382151803514923057455194389262572079971029941601522408727056722863782883044691218916811469783595484143000692309491908154031316580904682035571881657648056495664988094050926458393790906516744998263958765934532350723648147229046512260651189629971772814453150295843095282921586429244052929008907159123754080638317953696330628792568995853180393173991986660941547757901428522704543435212388003157660091870829768820601817850466206343699871458697500880454873066744287033191627004833898824312190143415528907155571897617939794657322422908858805506475330117641400832320731313763741642022982123389431317034438621324112721414223900393784451560720112722890437322118705414819878549829613378573048529013096874570885451938105612729300568565946436380892909883325403696165746379823836266250590656318710134685733948695287596206452731911013883648684997655042219661826872454836122868073177895034546013471722723089415169324165689914825387543982320114404468026271204131339328821672213012231320157405997647194865020808118195216278270675569970110399234869243894746632899446552150095724698393804273687862871199871937534270702699758655559879733525188241526875361004292082042615586704597952937489414661758994585323655049564186312949129529930632427328678113359359234452881501467174391075979216750183801685463822527098902821510456387021922233136246478760267724600475368826541175712897656373985677943374785542152753652991194296733021083272017810115229856958393341323813830279460305318700216671981013608265271153911625837982018290169458066067790593965228757387993313021632684817087107198472416250618414417191406991877982976383467621759205148502157374267693420830432835586873051500925221743595780784180989889933031738075300158099725911509186966857743596281146567118543983570134494780474819620640549780108092631325273315854218517897313537949966855052519014206925801821962375586902002077263427189578390469464323489937392750685401551898592366279799171838983684258592069246309559616068059937111023982311448325976974716502992866106336231840500794340981621656557443726914462437411946319824909421857946544810282151209619563334508512617428712045228473640718431377337772616425789805916876807783054160100700345941441692751247675086771403671947403551743745307590712012407139824976700436640598590246181457814583798213233178466884159657163716772317094187833146658153848030944322027095160860464754954610887020324923442752208749063886626721970563149876231232097034282963130560480854936391360239602149979885413060859590163133233712904340427366297379025850873330929684931759555578139892889700266033489392164687058515007613542200075254127428639632884048692058720047446121083574650659399351743739570305967198373588115597412732788246121474622696994469167287004806075808057263848385758462723208273460580878184770442835725513158160210142730637903583173172774919571048023100533596560422951083138282255849253508872376528486559980547490158452054888569255278224395314468967220777072259388663859177171516446982049886849178408698378373917021188588157311071138318295679820833168095556783500597684525849567411177348796557363607162401660769190171253026543404706600499909673787573330218985113741987622969318450976003472890753501398307080758690101055855126196390883502155926449193183907737276187784948333480593431445698777329341737904539621352350201945524324326156198179840607556962945744718685718085546022495939969877469784814241975245105642129375483869560452201142437588839548010367782166782929212152002166191502651059109312572277180778286935324360085105515943110497264188490321189284053008456193343637055566180365921618774871763380500376623999993903609982703136000065010351484003457916305030587696286730669204333385609532370554601603690167995117054668433345848463558223753819591192523209101498634827334194796655110555251448664781921013659148686849420908820159102414570386226176809312158482603382449645968675475987806287303145217443394313468205097413754711411648869977824964236685294427712149133943013512129593330368035836683133022674461293875248381563063957882111446599391490834693617340873955853185201392028427398812671783911626547095932023117219708651535089338824382262224393319306443644080838549110873451499927135212015689423427872249722911500470504297932644930740823527559788477001145332490101563849017427680274697384973904525223695136634314738319949864467947216700231800802601503963414057448282956720909698214914579241134273172377558953846816933810414425752761181204280588280424391220408373346688771401882458603086000278255329234709255669489979575224094454639549267938836875712672754123978189901406754861537090742099222979810424082363483565488579426967884756164258796593901053288264573353317242990637618563786699486851328300992826667921014678211764914808611616211134830988877484315452581500503762670546911976490822295653404474486083717771712737541478352435608612091725975195948563550761146048832957880003488106740316262385530194574725156479311487165613519580185374653020437554377953900426467349848156614889996411274799746374757567935785497038150728813888302626365207889077051478698604638805460039833682445679054774670727585639394543641488486869195901141154111300308296987754485926562650021463694355409582037254370881156814204749712104313572947794979693918283295498545951435247563831216634498536912720007385158221370855492993791945906054602973536810283814813973086936888444908062618429403898128738194734239043252448900949461711951479120610599453683127701908342182300903646133712882999140892815801477340385096016021999287246671946670907252730900006717675363571301198018818563038884193846559608175419097357966651942628238937654455676992378113802911737683878073090532667312530289325625791893401561540758743696746125166531662430494837149097484361866373092127590740627486244707697242121755222928198155848872809906210357442482326879449877434226774906702098459164388488356524105971686281999034608585817431327134325941740502154390969940421278383985928013718085575743054486397757374123138024625968887670747669890827760020582089959862600332593597228901300422443800691492289950001677051933387037654256225575322199724731050315968698781362292313491667636434653488784910861840214367652753131688895069924084304886787888063883845234294660583527482003294433175851283293858930841119665965099820519533638025069199529247884517493216865466755286217970059149945201567414874499417732819204999338367886092085084707607769064876176191623639013549302639967056043146650791006619535881737516402436429143302919898055700263020223539424218187024904400997437427020770173118067619534762298371113176227483842706468502934363658708517208350254761484411957167630861492464017897946541086663581023620348542695417751573185265744071489140326316824558110823626249819292607211002820146738702742079020220936663934567260036888310355537698701209808475769256043628133707069177068569330020101384294443859027781993478580482324798108607388251010506034058948407593352370715439905821794551955549817296480193378629104039153811193289801491620840354293282665923440648984026130427462726207431599486071187511930719652771823481300787581716576583041020117490315821530046162252032584679701620958203536367193383012526734488437130281631269276577302716104755434767868332084053828676618037850937894480956076542048900772056041661074475125183653475555746774920473925847212367096911290489893186048089699663819536276758881244250238389571792290715699897218052268298146095233861630359358993206528035807586783179072256228735645720320697037341136853176793599461941315522520308066933742351585238925119069296301717138092771402942044988139474597033306899136932507644310190501143709241062208352607731417599611164822240310667180040930920607796009329961375770503366314984878181208199820547113192495099749465148309193750186887383371064141728795586036181492633327129707162693514697211956137315925841141842738738751973498991304411156007835990449068441102829740227612605938727782898172583931422801358764449101148742243365063646782292101069301333179143978996822610927978506794745223448791403337448781195995163108066164250323174045975348751821182059785835374718600501003293237933894292998515089349358259658845509029037350851649726477366695648954823571730778592490396455687752351270987894484414249862572818849531195563395249070764163653674441755611787529309184163303418847408640660345823362418154627317940826046192793341027957797432676000899452728739747269292172108016867000859406333744234770504673995538716156665207135383089536735657292816430602179147205700233950177531110465783619329889295898101437072396378988043214936898225856113027974654429691897742756763155423494121404151502825685855313293331128996317404972162220210571384317548127708226133763081206115873490781143537857722872268594576597536635815092226305127687142921759681831484750999038730283974509049283295384081929333713805497821801547179868348689813414545746787216068904910969858415282070964007262087549347519708067067466593781416493211039363445530797126273439417294217294438616821710753694579083245426822015583660274223212604144253656809635418002104469701473517392545431874302767821210487301631021235357157366549061310614845228983088377470294517851905585742189770783829382884109712298463956275552653977517152098074926957447315888327924552143843241006745211919619094656458995445487956076168859950228790593339773173357790737673957914591809536896016275786399796256952385125451607566810266328274524764513458353279641551697358769855299827899185083334701764069910413295771166714505514728316744418971099448089753242030102062346162559208152586666233054811844038361817882471057604140006829790873827787815966466975322776424946716922877753383647896877963339447793715593338376272940282259033499488137758194141344556719739902755201322175879268251192554052304074763655339090521052977135716320553905360129017883978331567157825615906864742743600159708215895265847397308941172977522964200724609292758959303024005548575014694651774007234177051119095497349577688526031953626750205411183541890575892815896167839779402256430508011537773583558827010970457739243435958221808564086066024358150969089768308968411057864669819166618673164225774817374014728008908448728897577543973673351405476823182515711233498433551962656636982155401649128677382698867005609363903272524274150543352257820757497029373108566095548493574683132546929501262055865142746841581725079026275272508782974342299487385209632550317007563311531918640201458010785145171949289889972367305944073221156606187651973531719979680389749469340195069508190231187291873080813150626799987831376795734448117750639754303166209042452818077058098537515028749034869995857827362807897090542625273621209350244122311211856009029055950886586150943123900214870454468501380744440851906324801807147262111796444596726525354817003249992461661226588686780919744834834379063999457223659805042469991965774200162811361907258993700645574742563680947942942394112094439162545450282317696231093794217630372889775784142450088542942233555242844139744477814212266707849745181790362360205258801169751708023029700358076196388945484399885736252697816122260057230715729433900794862926309595671927496665460052408344570529651852550701835046596302237339711570327331629311283909360805230799829703979581485189719945219906351458804562946833516677658138344952109704929446741751106279482407350343408877949666672218098003628404224944330130251026567456756843178348969753005107224925927560178818693332691262451264418846024352253097441584535083741493665360126311463403461706406567208540947261397839159499143599722418249001196012287892013310417330325015019209292390988299253550244748621220047754740687117687474142062372619814020445313997756892604903351659135052730460342862222825324710100409239569052065207130641091354523470506864445609677935046706325051123837139720181343163458003034678583841798389361618888972588236743297359009323843055246078164191392203372497805076488367613160033609945160708223967898044966787668614793431765146940995943454858901926302544154235377842323693603784586294252168681557266987700262251289675867740164845385332618503024554908429598568800786581363337997769601852995190562404462207531184359177137727993262794635027946826987213202849654046969874078875671628346762114438805970160115869189389216714605472193739576705881603948610874206344829265423367124253045185057492302032707540095350629951154236876237903746029224225758885476713480267675102313756536449580455436152218335669022962018194921275963928275900463455559754191579221264311130050305806412989990620063512104583072381431080658776187769221886357418158795914809429092665858620357757560727371688706265734796221478600648930009333969519461087861128037834339162267332072175232652499096580237397953277545219336427412449890164603713075770467967382049620251969808557001948772006574105523487971290729552332064654813365345765501696766231416467639708840924845858507641874125787995712943492004829834723808281008935709243272426362361625087659104011428100865287198571412879510416395297856084134694528805475106165864147207148759592683865620210769115944414384238642911038043012311462328341455762685061396500979851806932701443073052291346249219049240357288653050395785936261291738146967258778190331768262730966704776060807262396926267131794305701205835951062131257163292373689998180754911445112093490520509822039794442779355615461751157380487873704902606259950828222521501666043416120948034485496030233583524537938190676241889517831031690749159737202085703620638490135285027651579112781057817159641622452384399153407913461423211291193054601721415341979557396768963607001902766973955040096400728578515328194544767138793456594792988586326615273484001118561931503260313532933377936396774898807086496212468331625580575673407743555614909641240993407590795650034240581788832563897098964713748352392602655895764010895290157291858211124622372501976672291232447589535357642005924099779550486825801642771673452923805310266964484387855197320241887514796922205887846910579004192911639976816070733333769830177797793697784103276417727031491518907261026030883924725293383053055512436248533428514545672462649600417879793633288973785748245742073969082624366231636863167832188814961695400831462438132640044722893278815947396515655058975684778545277577141128928891339166639565959480857410567054959503151059257439739576047845659640800738952341458382462816517695200788032885743574823938332654368182190421171449924301657654626892418911494523491430593298860425489544055699521237755463922053875204943797845448574920355946898662285993587938466029129913207058559130286412288883662887651414265028983090389375053031605431050478795938718138756320369150904999740943726047944220769327831594666037909734948974057756831182201812608650953047068060345056708682090558497739447776427530825591431742501802446718803054832523413920620781659814564181182847278542004506825243430970055271067332037286695446574590905951003644788116444645617885869440390678952654375223203229524907195550003956083521856277489625810499142349968237648345585124640533772307461924803314018819610435168630159541385825759877936372715313517569600293641797415435021683064839292805207328647898780209248553032727190069836295734156627300901348742499257169554163979086387107100528765500175101457270852090179659490935778591186851959534157085459995066736177095140325519882695698539965312625049895186921127350300345152460038361517180581068922699499288867850928446171122566534323561463614098404878938894829026277729448116564971973054713582430934827009561517015413032726821574257347602545606657713496086242254601638772190795083158568896984957831225772815218196999473830589298361588819234084272728546725689278980963417645865961293738845336724287731913929300165118685747491459396857787812928806050145028562640892189430172752990649736036561280133616696649166624907956328569104273956188038378303354887140575792927307884594521762007347424700608821564771751023377142861648713964001591637153127101782584291884673030659886540391317097343673454348323555523662702809984481441153554418298770777200930395603417601295946891348359905236925217003563602671183311686305023848424807583198467711594594965258666736029697797435126254845064846477507628630928679544217588057505438713164040832906935840323294674294176759161328109037617655275997648284620308433424121777454000259707440367428047880187069753113464792264053179349831578095187070316904413154667368449701755882226285721336433236906833512478119688456414236942321885249650094468827793879807634037019712908065144205186141106515700102652570878122425999096791940471747988093445006094281945306063724695460296548469779589675844803058930089343031537417275224484408618590266926005417390928424475286187963231513504177964793401451214468746539075311167756876278162763486489850943406430982689409909914588302793554312592192558176850981136297925044474816474585212606272421737589372006567477010552309701729961648086465623568575504804631123241355741900135474957774424231611899000847036263922573659137028207399832052027430348196721513152825402450269878006527612752379060156220420911344547130856022908528133474584703595646705936919164887019138153508209393612864395380275749938760777094294992416331351680018637961211253072859500421235913212571971799900276913961963805189175594840707896044100705717491179353205894717193583008717230141226003119369312088320018320313401948802763666774484470638413174812067987202741428197530500815543467106138150249263448686693060346518545941555560017517473682153392287732621114967908220167180767173524303193774780733399172289406859489669663056147291118421200186591996552055124768097541514485484153919359183109997398373858052393102723222241686150315821074855521843697563783496246933302745464909609725336622541733913974699935492649644290460503016956415020785606630045679399946093927857007826730291687283124478293498759780043069335868946238058138845557700738244751022186764574561230238178491419433151494149899251362543281050180521221119407069408512061773260792210416495844958885545892861277485210426176143383269165243834840000276111446370730977984960654737963663502961434544825790417461838662574248061993256611851081479157813613953878826215728709972465633642338563401267593933930735443924278671250322723813088741756210169601219970858178551104663529006424922050485117785329620390803356951458349134028292085413650259795169488866142070315113799693063393221296504120895900220341545902522969443272954413325800719513539010519805987079686906104176899499238794811646867526763617635179541054302399849250564823034904287208821010985377297914187627759019372201616884977795781231576348389468732353810625548268699241775786212768538584554298306419384702876345692491110215393483604814219931009057431226563804034920884823038626551350256154962601770604200454812016634839917987614024349002637378283782515521200162574433253474513245865763862018877662309238744829440101525401443466460210360928489161596542636305006191185903088716161967393301628724233984038036990663714362148207157588399704187201941257635366633135828647774202679922405249555628450555041703612667745227619014964362641262952550098792948746309112124633345420730082463621645908258487747569812637347548985057359485524956261304862572743524190725340966387183280528514401039374891864199836813678678663145245104991279291014831693727888126522729892781753879878827704271773212513656129465669612655851721512578191205162300161185128537795674591970342865001169424386467025918397984276721182735419132843996613630198229697482377954867055857497492256506171278679324851791821547802392089997042326472246470744874706363771435727332557355916188955953371741767717926156646722282028451999986061954605070396280253237097995486624003347584665996160211664642725377029775691988605947757518604579254019450187353656548134760988182861827613859009365274134290536252015365589378858940492106528099506322436240441036171784982902498452909742993626792433104345986598091819971067785065957021027832983111586268923899212373790070391718893165584653163934766597697076887506549490171482032865602625711123949056112625405565610460982763917363617780716319730141940088698342317112068510737513436873404257884642130966018222906673489689518734437432115310013405871105064730149380634504604689175860306051449887755789618823644225119807024587197087975620824142553517491179102387909754836880134509001592878585718268444583633240499312937178115490337153467890762496251365864743697520842061780969489911646066929404863823449447860444908904750093313132596099235608592149421147479300744029287983649645560215641435666574986246622697617686302679110713773371608003183534978308291685399014303255560985275162332366416834795852887034661510553491434956778725251102866654025266253714815296373849011367601321618868041563645357600843921665013594679008713068137919734661614457286978993614942176422952540600121144388196544184111195067123149110232934004786282596802601506896063808998281580827970942462639076961563557990942257005314102980692485214798622101025020509168268888173391042990537013981493808220224426100142601642050803323651393813994747977867071368953655079991479784324061764043866123441489681502225682440227564008923491574526042707022912869807185487420066176956289760864198315517912780524124878216065314179529831784638437488970029631420577630537838531202956086529885978657860755594646307253806985338527120894919799913480083054335449832663877874559075171475462805388360278557691808809888754290621328243451418186910331699049457247577806007047674294693725017808106551202208427428874592671907768080842834601513288476855699144860561097790874346487709917545140461232083657817029674832299227872480534589757091662079481636526958530516623709347649004402621285565832783010696649199191583631762163987734239401207570801773955554631326510478955949023218213861152356937918799045598378739401089798792800493356490280375037785132861143545687269516948314315195604736014889389560156112107378502806453118559908584900784124308082154033638665634086614175440849993392117729998746992478503301268942567258556627727803315797617648630587247310521090450931738466562389304815082799577510321263707561254965677654486914671719196947553292843686078942136461166233222280078093488033642984524518528017184790781257275463931338972241658472938307997841764206277706036229534112687573600991879196529630269680629794681877583837632546183436884781601746679957533668420077754611829420352480082696951458875744758987589860114261893028171893889828055831464075100123131477164543282017534235786606417294818952238363083202664980022584838415029183359000100198151405647712014084167198405977769322197408475456300540168448072354781404871829971346307115668458484259914481563384247216859438276527545939576504627897345439460764235110626434233715836851844390802710726177770967780428189636410094895337417379939546162302798108622003207675103425141127345173973587226142727783068564445261431099411777310430041966660812363913401054123503789631980133387968421516946725123807968003789815744553426935594410099286606163316148567236364457775312990459545874084000532368049866778170759815976165673976357718702819469593162373467860316589366750854129246088946126862107223104615163045266253820426446242241147332214122045228915674456386702669850368766476861753679511297764628736112524531601990702645686427396882465422091950300866470394439929105981588296515545294245701337918931557662837449072755541487229889170453082021246510393973575347697861572464498214982375052790786167081582424316784160947069055943312277615304746596498984748214869605633074174656441798030184274983647656039608327080305285801873092904218497013763026923095219269920353396028401796676116949215645611403886465092123841953550514321056316223564074270387008565464406751469063054351116440225011220209455026670174940561149403387312931239481936311671856653283362525327438455671910738799005726737463556553918388276598107913911685566252572189685019606350410585223226957115511394537750794576274625661094692145554662579345583773360863218958971215852481225342678504859762748344758466580937983283490654401263518122457700220130191783154847151648592298566354326457053304837031456145875694738048470678823733314976910392386959503965865488484742843913224758045711155964187738937221707295638953030444782713518393241674946141439738414428297857918089763263957878540562400097472489900596590083624027552782372968581906270584852900170340882854556846064629939367084552531918494969055101275005498855359450758915766766298500594524250111519003953734677781718377660455610619683282811531320469885033986423660877658904821929266430534378524353035415045480096937452618040583341169172266671366971938087227855562109115358322749808195751844274261596918078477096437919292707006400489950845897551225765568875601615892195251293506521821380554775714539852518475304686983914647233617066476300952697704787372578079297723810814564687981839772675003490761408602500098763587101804207584184162981505205971707286898246938007343920900716420715727979902225563092612123732705596854444231851648585830693735421936291704249157719001946038046319759245053089970014224784250355517617217748041503801641105855308016074590405268174132917201088896221980011456700922033878356652955956051025385678649277004162303907298909467187477638222323745875703327352055371610974395475251655950066201612407922405008348014418121419005977004633888887501771308484891271656278677005827848899908470818364644652172346117413897941284792022839550421270610663006417778448629854849301854162664049505482882128754110745086440278036264116052892498520964730642283875396534005666763089467034763453795218526205915757270830008486515469782289122944213176441321838526492750769737323697693911954765588029424350553564316350994357429910083290833132822933995580829045180658415532170504679320039337519183802007521960454086256268510194547749052124003146947525145691309545590300236273540539459222819441541127594256269981002738545574785062814256526865933331669981899370801989643744669382724642592728822649385855556860524582410088038018099206983091878502159513668601103584121936541300273493561831773227864478755889668551624981284128882341228758981965115723171698326123872683179786177402993815888463627031835605798314845039199847599583976350737456627789370714230473720989807006420282438193880107840473825112504204184964921207838879431506359840283259262544315927331300784166834344488571900453600635899321547503301409053423713564965964693500787200924761810047745661714703097215561687406309171938768722003858743704333424534947979320329242387587218565639036207653139723358791927899310201436769353510269538601823577793954955315651625170803722290469872559013591757044347007045123275771538649505609943529470082801120572598125239312825736577813419498870026804513359632783082279844754945211780112654149829882033077988974132300836310671824311867119212136970532641972766044560887783497807771843307397647896009188668065458141254398405241064985082795615419268213729256327189870658075565603874540335775991469203257879659727347500330709328225203419491987052557700675980561468123081088578788757222752524239113310787118055899488473306643524060729307293845966293168891709378020319654253910664122285672682682736585721427569898662527951612889711227392520721322887054802833457436473611758787845558227537932458888977606556387470260351588443934760221681553559123367397026975555110961529684243025522138299558336823798760920997759825685787292473499982909996579980223878434425555955755064752560823083879000729585948669293075256582035632042415619856433435742685335860444527701115991956174480335174661615416091552809026141279891435036587906251871485558683565179177545158058584493528134932351416145528802442771723222584223165285893904529782737575204920249748183881361745314279612847098030895652959296155456597198474085341280741988624738734404018432707439620708910504191191820025263361299713462467107615651814760336251695820092704001663995651525772350084905449241938003890952761722433220838636960440122380220463526051920714032210464523435680902274125812037055051198421133236676033442258180120661446461101865917406643700739860944242119726819495975756002125401045623058647329343112353245349643224753636612085125683227761091082372168633203436956496014265798185078602362901766004113866471240069547089372479591556375644188323987522047791535684126891501075037756051525160249034481401670850623727926798193312420822794959956984279166166327238984264014357753954892648472144119941388689778970725462116930282495592267509925255472196028165949217397337355529508277692313037953187426613270800677308055918292392311966742204669605165439462547504121894782874906747632161763392204862091788103166948098565612103406211120486380940717924653520210774870574274143389394425811103153830895426050132233202148581143752508495195321752877479685874943917360253771283549853703903169717258078765823582453680502857904791184133218114888240763404062791077893907532967437054024748010924107374613870561648971808802108467134665853724257476232731620876376212085499873311060634886105109516655674861962245328805636003855815389343157071187887393424638718304242249854744329462378676899433378805827699595955349174124640065704056501198263195817406775985997929961830173803750569793958995222358153750621943345429600092362089167783619243618991099958484622497896109456280105768507834260931883652821201510184670681685547079910877488277653067662642842330965639725303823932949917782643833322511325953319105313607305809351614158719334101710856529035722140106897068040320763303033610873544747776982628880988671991066754136474067057438840824055243604587139534836541743825379264422776360763925833898403125257219573959323833082470259328278128523372584536183205273654219166972038419344624297019098821277718993239587637690288839614084476898644545099220635618613213485638645304300409793255042844284677729770281001765347844063023984562119989652713744568111425141710940997249912903266783751985185050705600216360091232130856659539716985347321403686588033478623475668748162849692945429045276888348146172531813468125711439004620245484086191250411452433605969818841659246134966709254278166570593048291559531788300902177492271825629536524569533381051333339862074176235453945943888779769250424815376476499050164335371799843087869864377320575551124270194348017271712815705836845084460172833280319953463025927320546876866410273325612377175108580966228379181061254572053516929047189940360333405813400274900257062085916193025276762622272861016852650611802783501148874502383792112334790000244169445205253108960184577937939645790969652973754347175283881347660152755612620857332056837585714279370162276699777510534657031134465311216455135613151060190445861879195747321250987211746483485192167057576911253101763585568685044212138791810918373365257730547694323000283497141045266317450262538315710255621639100416336282763310790904595654646956370402407641291687644668429248254588638493359604916437703970059828796541829237095079232069669961919123395019789895210940613443679175846184243682592833897232030346975756775477350920275625489695447378480091836242721103374920511687673007825892386545381912529729912822551675665038806385726560964559610232177072437572820689962136591420587148367272300314434645249588437313795948226001065103650981616368164134187077819481047843648969606262595846876283451331178519215404295841433157948792150770317467690543724884423278582623027242640870099993376803590597602650705483592707235672113501048807343751263882229348731221948914412820649365707642614852706854377774661079941642657964760177578553825370822223546584377364683050842371694687382081487870540633872728722440823544556934719886797483787668758196444355860125726771662623979454836042156838850213590078046725784604005596507715836075559587012018455267741119260897504341989946152086365131913562995681639968325816332671536056255990392491263437837626646356230559327505277762350648099065270139316477522390294885649920349344563417476070502420167001931623102711634086449921856650848386161414497162962028663585968738107350978622577940953283367989460165290015522113940466719745009365237558022394156902696367793839065401272086119746378988521643532541326052295361573632656815224016764633212644624854999326615104066089463399744659981950098434132055389104931635970551642811097146914312479495920724193618599661730635738630603984957318599096607076242480133294363248586448887648193809023278958286956360182752178705222296148113359555777816772443977838527797910774920716875553615568048077213806455216405099132805307189387840089739957048557815076869566123138236356750541766754428746486355883871499613303225837686601476304479200343270134117376522773384034016605296231791227903211040355469086753469328919242349454232861990997947142175682569925253427637357775055357276885495981088046440830059330531881158018267543665153940370261794043824729747487855145784830116710443819527606382323207937833083678040432345829924081255481007272160367735061743570687946551083825227953601317906424496735071256780965391844077760486615335302661331225039602544153548356296048959848232201209967014726315634111815379568450924318427011027454765887887159017650966621652343968549466637290049410234097934055800528398716131069810964355180783581641252285032061836408036066905778360348495852107178619434064347319513476067856699377826081453000038922835227545965852460331458068052336024282761459633161527794829633922583552821070096829492474926968982752507133900414397148825230282030263297582118983622006097234256221638485899907242342702149726487015387395250833895422254617800666265936119930740164746288079996061768046015199460936273878223358419052024514489391642694338351081399170823014832807244174806008374339413061371696187357514743990461109556434377284681558181613656955970958681429950471492655771159222949836651528964228158758853582468174701681387436093748428103664959476438982276737482985374580129963208962819323342003604311034360255000831845959359427676084359783049215886165325685651698141545028092251114918130214737389977886456865123018928373651810012756656406483987145858222116621724203369699491827254688826560280492549327603849069310678353799920046766429006311477014735545837011697989411437130622319932528250072743788386762750935429099053436814635360612700549792305322298459876658456335788022933955099527746640141717848862569044097296187714978148832954036844234879587104741524095997908918307190837296243416402895718312785749557422076221823544878172157734500343732154410343286529284921675926752250622888816191482808936410101768812777923642805268615877175426806853510747490765594153055309962625207399460556918132601870020002444625355404462993544367539011223593488597254889914313561087290533875992282411420861682335722099249196780764814968051481020150831506538813392138930897434593730405682232447301755112637036550957443850871439824212836341639503135511855342482245462687837801868682461545976320773185543412360099509299022815350927361248928132029883708375134070739710274655581167951946754909216564391067828211690885512595491020385834886965833146324222521949722503621029048217841435896150609158164318439347478841002449574976256774673527923888273165970322757433960767401827329076899821158435565005376518005285937705733661149244155054135731504775125996378711876453428748393773261970814952073421871490675532161083180227717538930391763557249167298844911062606308580181375500671827503180946050187027752899843928641222057549564608066655471793321462349416646526677337705662455539075383381905406657673206514306886153241825487599631199081208159416124812256771591178039860002449769871592104663611163323840178431056530526760248564245746616551268794924653490766046726236522703669257056934049237772559324421668053062710129469973084753576419986166177618254134904665203721443814431964354028822176919502387618733584328142431850589663241246442796541648215657145317156940905142277162562675492581139667531499373398378004303846302748462429383151520275873571999445097692309033949706011598694197151589918418925778771203638939389459748389055156809305993800435541711831637170397189150311463931565284623945344825101999737277489142955566588612453600641564243979392916861979898325425903609410096600114987168432816640914426237314946342819636757815642120432646598593557679360304248876284538567419321077663273346850176903772014041298776213474439257429310870214529815764703893018796866274665043340656303953592221058375973601749120292867281677921453464150674830275926648801392896152488603994941534508545436829202652159861406629784206946371459048588161283627470327045298895918598427010064056255227697593652389751282876974098983855261806574443273474854692840495882445001230660206190114046874369050600265300095875279739672899680477280087963791148332677733070269610008978340258892020013163972186501029222588842958207106785975094359090620127060407020681935339804143728209670937069788826177660914555740025410391835279077986575884694473970626936563180097732002335523691360909649438629691342753408549256966372702523687847023399103790784056333367850378294500442691642228521389437454274930908670305169133742511987808565981851049393077155803035179077210921847351779242152110478284813954527940509661917675179630770220394802466074632999205857336667618842774513988441039175055341093376894673102654292725065736660678222733946301856933281068314673152939042305308508806647770632275815805683025551557588429937058990284235566803394303446711090580205272199272491961571624488861793021139478580009075834761070341345876689605770654393287234732788926623928537746910422315915531971649996715015113138409791157450932191705740218425519025581846740013569169536417011032446823448437448476268311336774048797133931289646670177335032651448146756340403656072680366111451925938181229762306591021255240152010323604490631338563202669274017602789153666626357149666873638437220597035234286137098747362486060290413811553904421468004632067883643271478225709848723447270441124718741565280084708391954493544605780847314023376410011416633526993203951541314352603664305825806198389352469664246150458116620174352213303280243227595837435243312910814795351773356556624880908395150866122916717384216772880265762670433202830105112344318491580664012799041246547432833383992962889283374707033726826186991933000959531361652085118887633529151412802964981669700669410993272738655614969819070338956847747126142016995442341171320873432915846757389313844125286402752532875476731196582424581238343003002858227276864555294788555545177650617223584425026556595438461555929258645216895983429278860555639807638398115422448280001890041104454219920194836865821169174770661556698453907838848773637976279569043743361518988806220061814693945193800841883082229591442246422927387935403264350282313355959664983091452953515917126702068650352575424691531996750249473763565230996082285292555599209714477558712820031454512198555531743135032167690995283263447006253706261414510320946346756188301460057598036518705945455510966458240940666727548819324554899173447580571453597630626886597057048589242848324195368066939060801457183442539833156277141068461663051692291234562797460940412397069860862305222277205792334355365222126882285097765226011416265282979754230630119176949310078274963328435421576309748022113936188133993940319599487781757634522972811283775273910587688346160221855710483329680206146481315745323391666327328386549726405815597143768709992411494388225621364114288942581198052190160202201385960233464545880133970874281476618596155836147260588500913021723867164225359296756528599038980279118502934385451340921318619619560898851774390529658767344918227857988143872485885450577560993323770514249249691147417027125399239059913351967436106833308515654157212866350263072418267460950381249419459519954742660554984484946878256208631380382166175021309282752417432813327623655335772039819093234052480083196942664593549568125617047961265994162811244871653202172762271390401378931995798288536689716463464452578896911602150397306774297429992944496904733555212158959664662501745099952200533091855579096768256029526256320431794647756422966366383185145799235006294050931299393062440452631524602838907901535827701545261695021352242914308662666695269930352220143353885409912299496336517486219206962024509916371462370563986638801850435124607353491823711866356217212907438605087852782487764398954142264111531960693091403656048684178383617541708197512839560330905175849960968282122137482065394284694829461156645436339147590145694201405215054889679377359743136157408387564642078690168339739725448776110365032614054880716635453974487357802491763168368419587281962099011647083097369599826805773291439204378340873717768864507974916130990584792494284722013762050033163325911230522299054015897733921551576592475433391349732390457490035544313767747961773775930994553571839477105955464681084017403468981223187066858570493747439966612054737810842267336881318169968665444804926270515956513834933837909429518451119587594351275421834103324885825541326762925741654684485298976952918198696799921168827954573340462638004039297652369445955428446718836567656864111512398267518969604520523019469245405129054910028055418033757029357417390961812813041351082149789320319714651397898481976658665916110026959720550320842017097597587764246370741386072605697567416517155015423324017541564716910494741521570695706714112029533502183913962367765907134943711908366370722738704044652474599462130828566605295561960043029562185327467608201607196406630653780350879556204484688955865090866865623950252048078171190144866855031891230473534634999597967554695644809918267840078824358163169199378362164000820916541689973550810198129702704960590155827614453552140319677855276693146190364452272755611631219080119728345360612179479014832076830544562456078606764170465453233778967749532982981807034298123107468301199950260293136651371996785657782039523652574360194737839433113465067315552676250471782455308161971732348172495219430685455691367782056549427598758796937968218677156402071684319751299490971475093549824160873907423650341712734924974510066025151444266599853519905281861208213614741217850989285821758997070242913807790387370072477610983502638565451285737490815645969614962266066796006191420087401678143505233191355123221161432126234895642152125288108640238690821515087332405932739854637417502394803507796795732498764321326628674482065605534489985416654853773202519983178060271388827302268250251347156351395296985234750881350713179675757295901858724915490895398952540946111689880477224522127157199537952547501806142300519157602793937284317622710866957302848429184138256594296213447268116792903818151658726961012489214765774815400107947375651211018498716027418971609733521855285053428958631866718537099810952816755211027816279477905356325111659833270144905493272402082918151395265090640405055777262234824832986726702099439797964659407981719760429285477876819242862402364609494955544339805361924845332470573493469421676209358297849628610619998513145764913591504141720607422507213933146383535745430577444996636297489233185487680022102242904451686560723115815717239904479787798801989778954006362308744305814704272831429800777693916510761477675767537939860517084111839590090858375252478442022127668398611600348625738117767543864423139019723607327364007830333451087933260300204395029116678527273494297098726401171573867246309581910013598431447307935996289508056827126723195288300243372032663323193432318332583610184321047904901424375247960213611944954680308875373191988600053933264623144187886560912280602264230217171503782823892491943548198578053689145926155496331884022037639143949639790650513830410102658530475559351485303978354588553719351442779353358747603995218671998640031077127157279534253363359113835753645509831089135698137233307830330999568003273528269379013314608326177527619856313263979198140677683702940908007091134671818852479915260881568730701353668215886268305813850260592394061849299278406640877655432881212658532565183894203952074346907280630982866483771815101002044939880144081923619943939703627411759974661099039759700906385042382351706309925756151831759141359432297420380746247848562837604113258645125536659488451193741542394130735205837428317039116943702650909260327689077934326506427145444154287303090907765914325886194143223904484242389755844094716067573619130242856220765226108607215033258393249357154599642029702430972448148069402499066157909759152134833769496595872294958902915884586063844323356094540086985198184823404789322695802276679414770534545482956046851093907087256116240497224683782178804156543905611256055150199125471189041369354600973353880077805900419317100420371820777742333509938433709015377422990174149197300483365257179331632629014515742063082228284837726497519913900598087704894968790177253438426027069060212555038319826492707966774153909355966023891775147448961685476639853900184685018556219078907539771190751316003748574244231299017908327180651406826973525263194352826755634509087838547591928105247197277901678468488643353287590804980296423911346601349268484395070116937492593523041551327159070664886221180048649560482038260247171908922601642651487697667759746766221691658265884647715806113320510912605249091516106215046389346042208599111861404444048204312729484466616981358175244006152433882804020262928138184045009666912771908558226185035240249651199762188915191664882804734050170396770868580109407673359349524548807604771614671355164376520916071304660162846979754763097126959397187085478879565028629062910682526085446044470642444919728586673248131515224523381421317553867061835005015424225147495076154961054267178883531551003911050601496994660300715799176790184104046302069033616734933570649929239730220521536700504319850657848371729647218974819601128111947382636485780114697381855567086378198656864835010506000222704833758700062737950795604545391788705694797842670552862868119095018606173238956051351561215870931539495633546821683492458487721131200227850123926672258714816401058643337407758318312819437360489963034182279317432811959669923651917604137858528560487393099058323130680447148884147654624979506875718133401031769686663580523694164783456738530030244501742273831558063143642105796135892845200804348768443500964415301921342343055393313573319042708105792738046174763023229487036571941169474051320713640866156181913181303977950567985960179023140391375293469947358111286825428087087341351550655786209078757070612091891693132714983646056659466525706796912878724102223615189568466222636466352092480965328244798813003896018712884602131270095570596284394097788813926431130567616261914040404279224523699081610335733485037557340552502558228213969580115428764490661031020543368503167768188342462286712938008142041134126433944852612808991125271574392080870250846098374080204400151062806786845537594721371449553685120109107609405198819916591068133685368488909280390727096731866312964813197122302334346995669036411886039683943175892934677287135788306479138532875485693772663828063623353002887769287085281300382102032918980438594610856803329693619243706025681679409585913864564571933151859163793057775841849913760929006785516525081778030776693371594898791549701765485222572145598115496688053217604569764398452634072539943973598063066922194680231884859654571473011480119389112595202861725542736363074910144602472417145492411948435135954437321583145251999240899463028185520773234569126470831429718756366354611560982132417663224534819963701562890683493827834176301312070590616332046500526680338236967923537657464795083736019125333415741406887594778965706304317147597747681745385343715535312014734948319800660443109364858086267806941234932225735672734595728941653428560927468692113983466314856669181092125738414823752806596396844752909164751558460071652425387522034798217146107439476551181923060291457680493980667865012633972125908672212643599693391131006802567592901410843342949576128212868710243653609906054516651484630843734937375888794891668997284928125617518122789450623416474764549167743345012676937625617071610892481390111812778873217410453302171928152455714539636297984324480266441091729270741923949537287678846735315532982324572394178133668432501734752107449486659076514936030669339719969610598878736992979429809605441816685385131248260063332190763753816520396280918266581798374433155267266755403735275934771360132030986102934208986905513282267065813276856810456096478040172335084990592490507996965505178139588133050318552978093837785305698246728488543308700798972192817887256295179783084380982296139620380968572277199407884809074682774413137407404461138236542789914499840790565614935588123898127947719260603531171194915695482523426181029510863645210058349199841996881201241065619873231541250452877140827847612035790106516386211653577717701394498340346721346229978605693528979356884388421318127324539740276901693388991890977558533593981614829406347149551726129231466581508710091987353201541623629011669609584061058743449880195085156338559786146984176459383413099574364516137846097281562703049151305477367963918933041268292065097577214997956182122907990041982287298916986101314120134077913179375083365014361234693211785486140340901237689101444997628363790230269813722427870935315324612518837234769630834884745768134270108046137472527323118674634840949151444587834382047278205496559056623548656887730669116790124923970761374379132838824003205606443503735047328633481044145424762409902042996472286425446668144920961763223730969755037566858870791943115329817500561056539205432420258815492799868048424388652641979903793997754686768393503158582477345006836478358668411305044878290205265847699859756834410558792190867412178703459795388532703812249972428168399318809627327332617567344861442423619767419075425015130534588306624393306112535984426059256021687826226888631173317590187491955122305206936102262328448701249134703657809843626252655139868004833219473157881102350437390191200828284333474693866365382901949041094490642402882397413936360948657989080821877512690259483616428011342670110604651295702506624934539988248678073098422231347945991182257041722138937145814377114506961461562173215642993279361796760683360483260038443489278117329687034949542611989224466120881519872770940108274118791785091207878894586326089667101135742213015423343971359741774500380948302256503550078645282545332725948998476595432982591756451152072707946414139019667156130205903280428903204401297047598718922451302459625631763047089734868732327729108336221232319985612472040464310783133155275639942786233527194477945927572764466969203894786007327477190296057535970807192543575628072028667229347510314585443943682193052464394327122170679034931679003170578106290215861459631381257129806069951467074181058004974214962227243535035681972125856440527527893185111105737145862394923017660210707834637282702097133117365640987397291407139652996073026773424715686783496503913484384978723075011262475140495333969848748205274644376218459085343478042220879613498201318718498191060639148806657990556310619755043964143930653768173987394738473519225134068818977312561434001013651171635566559683012809685254105987731031858860270713027455509660487157913684619634977659638689135613004335932840130130850269778660009817074400060637634801299380981404249222678089827504686401930475495224699080636584309152915338360577850304981599331347723976710111886289782658221586820920308409211192382938835876409905774768471519731533839141311215989751477054219000426016385301716831615887760598203550863377280044222770409186615421385793742458849576150157720230217092215325934542691604368425763321625967779204316791760282100998352865235467621717416888905242993934541350131886013668836861796714392786327155974916793884068405111142612157437081233737303377522392056451864099576978914570015324918275288606684561448835520315578560780337850358067456426479660511070080259299896014825695610524046741261694829876224277602858447797333745673183374369875217864527513464604489886843483511901790279197434761658155814233313496954266084016037539865209232234010129726021814232939334716252147502923823955913393812969719450237657258609496864572091030559707440010122828284821258240513697187090348041813888407463958737824588410565171998370049664112969120146691988003073631048811609825882875004628704781550628918305434079136876699948566728866053611902763888547094833420415397336667457728887231932744262168905632379962846200280183306179419991585180903629161521119845127318084612568586707148201654246400932436414263927543972471098876104861033710376248263355516132645758757494453656460091109165172483988459975577294444354578871735038482572263403490221225754741155970412460211510602044003425523702809600067207940100419985861060790106612250425893776801500727863323458908197947468007448347295124631209714705251791179706918683968873208439229263001273794088903414645805675285428840741432278100101490283116526220510567372732596114589207443246145183975323313719389927978648036164804110503391255118679072543681905123610610274922925080123393843024933129107091525195946031446999881320389565769709287700497242439147831597777124880047064699914540446336845973609247736952787720992319836072113693270407557241717082309620488874234755257244837599792133240595602766674535155436856614434232694633123595039924689268674686981018834991271341754048559115011818304724281566785688299907790933895506802632117527944225856353046994640739222373243809584743555988369907359882757275523992659573965506839585815005279265329565679334097761950510788650249866216541906382950130603295068174297301830531060959448490588933812240950881461210810110991544828567884963181050167141200002719528552445691706698199503012066984265673776972729213814235208191550780677808184383737982510156057807684805220263036820513379316248583921220915878237364105193572894646781083408844302617655870322498290833570916155248174573706766776527169739430937847521964004420078116269649125742740030550408893438181265480777506576135659985094353803482937824455881880448162187920594242792693880136183199899392574851767481554746584301591974593847474735422798290891826730864860802097475384763540079202923982106677548602805474372259375220091171587881466497417253148390303569103485413825300879580180551425219547015662848774036978142312321942919006688032158732405589677136946073146795391511954104840105456041718353569332259694297471109281282283719200635513842207175373384416808463055654515118830844279856654613634017931326905875488858104304825849069613648644165505741460720543880496609766852982755489420888766214148330315590021315695204137167896834274216679078575881653642481881907905385778904151613098975145217586280203103482058572110985348433138903104990895305470245776641080520554083970636570200094354339343654270394309576962007281279526509266788076678429585984603270554620856605840979381375264877535265549636936643618969076361137590935654588587128979757962002109255956455545610694588864772966162870304588837206697712141715984527603696964278210903286465364792617429268473402712167030242619419267999948441513460891026697201447184045969648937599639584369334501373048362320900851969420230187267255133454288465353389909749192838554101781538378493774971694700494974778535987897957854391090713949054748739270927356330623784103510835827459758199309935676352273114232355911638976751456765622031744951082901666984851514678927758485100360662300983613915719689054093432295630025117374569471039998914708031362045264631835652404363721712502869420257039475252356627481118588265451203521094773186629355600883422440728803227533873406998571642339693469468638545618137218686652070878220534638887344428245184899859655520640240331150101490678845104892237337843281815205845581883124583403862938312766308176031608704876531324882195753799554401233227421996636537501155154685344011110030614962822871779221798202815193116287869354380218544462200343348072917541793593704348957298190572506123959321350873739745014408470022748306087895060387164304487836802232695215037843900848479719511295579612989209996709682783021415027797394074621671811199928245906604315910124467777259189763364886216148795110891253409714038319968515661772350481087462328103991222600324087167751892333184135163232000874855085604220627125843860771050783638502197171384577525659033474056131313134277076221236266392950606136240778902161232233121768966946276632546867442160926984918309963882817868718656951023231980682542822614107472023337847525732579036054464194246188908126219694043329078893455115954627181883871722832525388915317741812328159809834815143816103687366626109201371726041030577145490457576685498594189933760195635126785454307126277263120086624147222324763879434265897986278417577386802839506721564188505122067734579204301218463252496342752299439842445083670794936566023015592802653393113054000265274333101416518423500450049583470289912729179600867027459687356650967970108115883516555239888579699371094165499660399470539844790039282469020839636701427287899087207408538540042768051795605149909087933291519465835634983728661251664819591804606604815251618296430692525299906556459586929513539800890117278688533064146105405727731784364755315389784066807205060161118498342102306068101570941078498480924704711268785723964196592058123087794913848203409028648955584672047259136468182299057385403479880357918491497990552532227376214880726250896992074874000527646518858962237755263627638326369356910676969208148580914785085768299840434584743225626706839586782176529920853484103811054309876223350069074491857970891054955468835119757328085444981861514782101199728993888270949062311531443418222899568914270485151108351301325343395949321437496541736673906203897723436595534120034476767641382601853468948156046049242199298866280340364566088395162543410640793905840519217529804665203583095717861472712344717446905233290446573115368985500125696252813357835615500143234076970423563099584637984668661923583611163786227526956991942562100748216065476991909978703203213335557867897658626991599340739592156117308945976834555161018325214437147680832516575824857748105492939980362384055280505971942016196977045814538855618890667098101824461823387292868552302103240417624686950721969744103049970970695198632162507790975317745175344600292540272438250437453101513284195076894659316150668123854415899751419434012389097208521239042479917077538400144449931606979575334253576418144882256666082777578488709858876089954805427746392100845664265435743901392672764346474331453942099724953405646002418069426519774351390616725485246988380824568053364893618863891568488214179339176079857946811533449754592808892051228434539680219859474179548195726271905709028595519298157260220736209544407977756949032207598901977983890903007961386444291102376188192238181129917876882860734688269329137544842636577777146976072349697657560823205542537694018289786413585390959876272186003480987922134415673516307401218887425975091966988652556651102397644138307610462762814521564021691020629023420183187128119268371988451367104334500101169191355083654252675880846064355156142082943362213742574553394339123747029708775701607625674552737282995750582828689938363650318264623605316814066235509838601453086437700024652407730722523357469017122066582285423765149088292591564751724770634401133361745653855100511135761835293470297000812071532439370287357336646059927704751927174392235478482004436966868531566531774194355919928771110154764616796523337697420262165751770855034488373523972346769593287733513579693750530885739203121079888976750800131390781773459490127892912583462364384356890209937060588941837944512456254243040638319631416326765584493625657274118335225219369208250815318301350590128020331592387102656823278017289828237518438394067361818400772234380793323534635083165064508496387120906856537290870467659150524630617305716252026633454210365144969347704815320615495700721006177577687256183505184366865978926646039048884105107996173341354060058391920768996278301910329790592723710485706098994719664641478087379057068983811200402088342136501746655143769572737811364768455970991879703706718733759048621842386836187024937666193243145052649515346874512666757820255352347480317468256078180268431395554301149018227572119610488635479139332399698406302286803479017582586044172338495923965982681288061224019752368291690780886110811664256041221834022260964258067062921689848402931637980679077160004945185170441566234931320578073003890192747100181956765116023157022415666769088045619513995933303163087071883756588463010770512286760742155473524321980062044199297913478149491948463185489086730989365617596949060007714910080359734273103177046065235326011958506514712786816691588378153815396173835797829727599716876186916440058514932285955147993630108226976245704860465525759215171063256111518964304395416330014736824256609822871748655533066747601263347344563487511962118698362260426092602747589323450060951034543754361624068186947659754568474829362241976764587784554641837473168014352990175671308687919303895722878669655752188798885570407517582366177544579843168612386398461932155597179675749220399587993044740571540393452225378351314935891436886416455400086159054872708784976764865520102003842462766514106472631512834999156142226598349828148650005758469450139869126992207360357592726815719431738185994619800597609411752780138713298860109320877952667578428941621862572089028175946496394761651845590681377153868029423241542060662346648512866034791240341445318319523858822713769305674700635092958894557718228031965227051854634345390801082619745287044391557477232432300745919986046349258908738302067535704435148803792913122239018506434394147892497078372424585089452254228787699751668089345233443431360796126252495186989651437549231595725039633300962382569394448317833504461020644341853938391555765957349415421923738990625901409692419332538245451034241389814112827251592210778106282894896712620601502894850719242265038590141281926141767960358229546027363488559838591381015991045852098475066189088384772120255454399047002600466416700056376938744647836113843159159086823601462773474687432315844708935553463692992819544670018293733198216454441327353304052783972293026758272028640066872378081390371094939217012847514959196314704565585522203500019974569466714126618946238330064446995263888070771670586630217705376886438339645845093182740088509195141794579502667584743917884824497090669700622769300246343920340429801495715276249271022736790990065777767146998825981391360784757575686321444067983377927205458099746946499691215386136086992150919986261105193428770084891678500434685443944954191889517703737781373817010108586962113439200946970581667523576244574807988119086848447789520936990527804568267997079525587879378000653433369012118758867701166015488350261148839381917588836789117215472341110580325219519203779690452243757555996074036679532631508241532907612168303497696173259732345115242631410356487704652547635282492533386556621277551994488947109803755904620645809388709131619956354122066849968550416390374512501092039299436210694803543035196159756072436551269095007916107032357566364855147774058241481092234515448184886662618979948151565836427970017411602503786108569656945333589868697572902320594180147531086825717832670462001634311166363186739296162685598963743133790679568528210832191998813367957032438466925753748137382315604001073368081976320749749438176907913926104206637177709150851472649038146253417844323204359109114847251710526659968137590746498478306605852246856612017721559022968392423675930831635426233950385450711825358512341626320016343360052716645990686411805458511840353979991840209860397656442030913048186759507122290088143917990055691142532715037382826486644192664032799566125062324224632232090853669557610446047964187748441301457180485401075646406673315328751452552288362648469841021945701664321201331113635555490800530209139655114043341555583431742656141622142022606980750566163502349508712817472068975819749446814981649878380169778856032039089949476663819977793093750495069912473977615798107935799690591330663376182431543318070402852229130700382401740515818335007186558662014059550187230791874943501230025133699611283789421190456098433952877269782442017676479448673612828177907497445588344088868542073364777953069420018805983933239297332683926842649775639533815850045879353706260058834141852917228662252974665459697974266108260961935184880140233860804585953761709348881991750342453955880575956694568460727683632223754267999360742574983987016142887901436729429214934301132511480550942363358589974218462053004034166627186823242086753611161746613316518698097044657970326137650932806097356051739559571569575967706745877564467870868847377256715301904259356147043942867848291854664584081294052034448163768753505694402517882068537145017878179240434255667756721956062445140426975514995627050292523737908943099903524917892115109488143063954282744519082186761295774254275241921491397150704846332774112955456087459103686941355787942832645999983012620292579232294547523704280879572527214138117595563006322195946394278050424823167791890417356870274431944141468415252403618973941347259179018368658426555852818321122553662717716310700014500127465816754731229801544038868976815090489602668290165017417596211873575887440476097959100255511675025664063141967887016981939457901064003008102752010390635707041339644024500122671156972710670232687315046823718531247038885793432606632966736211691789492525951701088848868547452049533222131092487978937104241256673216738992303414157956720831536259119808426755859899385119425693811365057232407571399072747003222926516405328734602181821036064518292182656586733121592816311715747357184528854765345771974730145024160750643731617106684135443879654638018788822237954054706097919780959421062754386855439164638701074141522011961812578544146203821424093954272786836815226458320897114813158990068530322138826836160098370330553759593634537122152178628120888788923249792437893419043591415205706183658456600565520574545157402756272897952640968629654225027781089876641950997626951412838057838764125969939388974735919550926505558837146021811363883285763961930138564170576833647535810159230139179410680389257913639175268735513332200027940394897266789869423346517600275183963489395699710114872438686866433377273362987029773762448053538560086950280677159870868613695632175745952450642123796838782993640224774566406327638309503448060836791804402356259037635477821883794358160797481639128527705437148735272361822010486593246521865905590370791341690296970532407863566503218659258183029128464578836581726609281556016032317696157867343874380511222114558510956066389956642774898646344420790949988609291734624205240088091854549327285125109679583374417521524328130818654836531518020589393018669063548461013995081334982050595899222962245985558140389754133427091467600554277965421090115405333322689927740039106212465345127754987654290602278569721531796342169367411914962800238686985104638701959859439593378534763512993253896463528204352155152390518982868065158850603801397569409158587040083062599709612126523755214707428530172145561756325240027433398434402742476603145911363289564850001248325921392699804359790519454575500090553669352884407479422064373483209635208783581886576713284598333533252311166755682949938488465486357758263806691589588614111760174668102349509286027060396353140141910502711864323983321722554552924199338670271897110934917048464751276110885573021704365809123221279118763498151813250923233265410178460150443264239107396578857047025286522623377082775545801478924414304641610916859965084111171309453543597401054766700098140417308340163196502428742086675619474417339276254843623951561047414343205694345412219152911768660186395733586629174955050726087624973863959041757061637064952088996667092374954185843256149575150154513090648320033948530206110955756261781918142139107211364824276531315239929362065541597942506377516888983870012332345379515807200385625807356978664026832748310200247580995287325217125228007528724081800738785943489362235137632966714658106517361602929661948766390370045831647106811021261734138532414504848368002429003369402149911288813136088253697056912227300631498350757641802796097398186025278952978566370721572643704959894393162915220517174706183155418256470178762261951703808067213887504976644388730176604674188331628497989114027589754415960843910872968101996869583596240062997588989923235948280955616876441765229584416915259351245495783373568207701649449604726850983166923960143325522066494768604673349289056404447139274762514515072824545112496584980693845083223948985236995601812876097621572723699694029505563100708359451564824691474696156114907114163174457238356022261158798720344296713214534870557239187942514775138341637216375045560512431000906127336573509883591011422609894106963638122959242096847133750076727890104160757619078379278240782534659181390250127391532387662147613990011567820062587043484397994829957085604810532236145816852757937023027611146608448018147990554976241126299923896985620270622522755948650040492404018631007312406689188507979499956625609960401819679144635155442938085129951493089092327710886675092550635441427502968564862914501601891156814733524104441794388461279021736752778601172073806427717744887223429952876897730138732199441722471374996004576995870901137780451426910848474727394559693318219927488359860919745054863542864718386569923232956365407377501041155798343335229312034994298336688832500974716939209535127054172063104338369509715375606941564097649045843341854131341245010726609825450824103684039888268177820801367759105816512701935885743779294897908057230467552519713024482039410953897764197736951260912214797189773103309869660838155308139934472685565386291620154362489024879171477605378447991547801238901169015814517643632099038045170391919087023864736741914385647818990801573690329343974100415193182817748940944798594147314643797483687251146022894751963495688072743543496934434799414878642194563356727957924958236395329055499065413943209374902924465058420736118502759176743527766894459546742316376547278741406569367904750199081998011347939737762351508491763279702466234434284501005029293408631988124958555313806069093390906766183856670863089050274257788491186622797612570432483120754298914449245097148870442968090427975090380595170952363225023155378313202945501919735821952688265926993877139501104132813938094432288175980472739672377528396193327028452564123304128780728823274038433564480122344648291660292024328741157862855695455870597366189660271270052358666318577569267019340904913155589479247108117861785809755701781882007412938106809032526340831047505320334782339687743730814097017309812754741164760412917359387702567329299179208249872143754417063608481129186904323426866882930599045811030885782411000614434419929655389416962370292308676551522828302576874818080472311320288369423694361474572017159668521252493951444207584013204554112359767808234457252272893436729749308369969569515958647369378302012770038168222867393782096643441997938797090964129819527171551556938942873386496756113984671517437010573277522651476716651360017249659214416111900912608619662230215024167671562098962510798616278967272578655879772012422672469719106672127438388666912273483167164442091199386723355843071373400167008233937814077634271437266845676159983566849741350659677200297164193950341313426157128465413454391633290055990469590184484865263508453618522353165417301689817461933466517389953754354189869915276609830591618602203324350652541922777911235769640805239113504558711160525998303540950509334742752646694354438890056203685178772926329468649872848945817965174901893400535315539747631619090189374835165478641964361627750271637377855759762822498840730478934526644079650139373986642478811400492668157136512852075568906482568960680185117946098552852030760911038733599068577014944134650074110695703787749767553299004916598056214547127299695560895277100740051361274903814484470979044994756578164438519475696588835822442054687860169276674469175189333749588219029181109929948573263515493825252527525916496088677150079031303891087857472283326323641985339239031847182829720069473819094999651432972564261189479421150965406533028850706523776128681882476187222457348999408601025536085093095747363239961993728161481389748673393598683583259574995698783562714146797920818855855817241251449576950802688142916347554820845490948926897035444218106648310571119008374540676554326598576814104691269666632308932644372915647720750649689696047532052616549385152066557819911291705674393987882018024736379266400773897483987969806665369195361923067642729060395265537812048537953249948172501924685156475349004359578801801633549599722739819732703007352124292463839842106564943608097233721850143631867982862106216542118003928051465474972363142783395691753146408712212947080241840585252961711771240579908507144582711170145337977373308860484301056269503991229373072404376264170072398531091922507834555263409605089659564128504287848358939180287391092118524898022179062650865779569097568583256217070091229003402315340359320737825309042907470377793637673058725169186310584022558957530602044506615885029838900147293926635680119883676412370178761312103940695524111296478888721431649141914350358691826725832663115106718351578505992543845944916745766534963681015029286297145318930854682720343810155856854994368563501896492998728099571235160424382160872503418912193849046742041710375741598942848966843967507107453292135736423282853692057697903783018713609402782561114776149203237322299551493402699243535064693130116033902882252257056907023335519723579493883869143552919594004442123909681848353987279766194766916222538036251713062772094978489347239187305960905187127735241018657140786945675026612959091945234749908779451413723982978570617600963774537706450037122784580027613321034730035999603843484149386049015521053221799393964798575460448031471765643818133854338716851784678073095477278666429649671630510403599627921714657114661335959453931360801462854952692447705123026450929272928589306299386393707863443140729578962036280539234287180485162886466383636243718891829602837445408141219938365210704198749271031285340270199407861243771236878169553550006117954823599881655335598583648673917977144319660963244265551624862505025799269985579891186881794969169383618267114600309855513580128957665604802778549328630945927282321471187660291647789336420225158790630900329862650676550028427064363238214456993913711798579395241467920361948642119718505664054960542648836368355114972891050771799293093690151276895623405755883834414223610790266238764844050640858073337816377829224982121530359717872415350286001537748768860155878442303081174690682831636714803833884542838356311861333812089587686045155907157874673421350784749288555824583701554624817912354451816194400530724337194558550108983301961894718696694434743444810942892841415659984779416668018531514297251828256010024970414527803021134173896293611529674343495363333052493153831786447989392212521571903213097619430913770198191507989107997959890241588571310115702051139810575018465592220287601077220148132382792572035208360389077518271972132467030750715981159111906838446418127561695449852955396616857908999857814694875171451223118203679697192659990146183093328897140411030037402422571707880278054520721764356320651657988990117049172181570963488367956065992229798806785754207152509329924464742895669701987374394665567410351873546737577300564009668974597673702777285959969546156531749331605275433389092333266417023075831722389277625637184663740547454615529874943583760980165873484480620867408620966224565262346182350530409560403270153953452772461963571567749894298468961860834514795638168409920570291324788664266441533201731535000401404711723912485262059433347774010706480433558805137904279098505325443510099796675709153965474611988232099702426484333346026812070498135619505507904041326890955243526384063614119493408597596847161419471924937389645247387219373532526249315222748624808690727708251006808563859729307160992304732859903300282402882439333646159563783184004583388843832479294356456045787286919620415357563624506861516760928252265482039534552575244398087366438275808012937794553846127138745151979929477604484013210046129812174387071324815078263590526429643028825455124714659906990716962897862084015825083133126152392284598081858708306476409847039195640634965778758827513652542107455193586422781550955055659186165657725617335933081265639791850200575433665563485044037487793325226180206361817078539603555065484425137368770207056890921561126992542094325639409361427534079731456503188435156076268213038446427037268518826430870350255857486778891592163809673753736532834525877760472777652826845019250438784292833262012536493652128171152446640158106159617822853553330484344119708390485103913136221335139385031404423275629051733707587823061527310333987123958667265670732589141575880617222141985839421765152429082813081070429738634327162339352653467143165909311849973387949953679455852577859873679042072487629287123075978394163589366009326979588885244191486641650079343896286605192063700650469586146293762495798549468648514432101990843967909703795295347465376226201133816029494556574737729834818935280625149593305837049386718619740172388130292260004829280857477925660344857437656483097684535855515876580102908373212677088502246667249742105880447571442182721869089137409522606367354933927357757870643484187825877866350558189296003239508672920094426795131292862528314450275563260407653966957301253319144183009784032323644399443626006803490172856625459233700893506710642013936672877943311242542139659700035808473673867392668075476071608710106980432110611449030336578697691851339063031585909243821009008297112917483611530429583006259726983358931193935631693473066037182517099983732620608163678069001472157626916224654830943218535281534140201727880098534961870113663834192849467907367700411635368933325641320758301675780223183022701192028533602289349544494567841379485350729694063645530343346436771244788896636734896432858640980117571633977422070996029641223781200940189969357529779015155868987190844390019197280461757478853313628129440432511108171418724031120296059740089481636390845236496331729627300143314589723518338646672665313666268208932659504059824817331528347839476829277294611245056679580210409668272988190431597772828189712679129933839837250534499051829070740786569949918635527107060378942576076353369189427738042354988140956400784265183501997389479584473234447635832498642095768899194619579515365456053484439924813095488351173728565392962755147279626136594254134021749177225303926943709520638969677867098436098209009475649900699507304057238811121983529371849277898994294312005495619083256602370974457306800274260939784281395784459555961513004349727031001452770672340137742815694610044387004754666758088719105981494162894622432801294805457204696946430507073027920175299414491598968262618959106840847567467878674467651093719599383328026495068110745015046989905044356067396694377853514711058812965682351100777182366494019677452725451948310379985633950194965919455970836248256717304258183430524330196730274163656206221418647165366744031281138154938025911599905896632042005409118676254603347936679753291511678002211380429658890202607405731286369294336761882501542240221602405141033642015906459367961393458381378807036313556223698777236621066348260399998422558478325662124097619336467656506830267604368270243624391657837884363569353461123808234518834451361780266636534005102691909773772939537049625704756069610422069470256290759505501290123823687576004102286941364621714411179791066457218328151019516883366870834885075034080515703120188279451820437777329919704787449681931160401754501709977208318641407367257269311195909311505717675959051751272681702802272723815585009895896538108239210337085619241577210448017113419549494251316616206041408705106913682837112688763473913636928047459414939383339419904097559174401120885782401608611800386671511587083748028609426759905950035288297970404839399093970737971557001965863951857189856532976770924205132612434112649223871069947241452776053934954703195193614822193131099694848531562334173807651130889486460211047306609690073851550069161393459940874353544786720440691866239053614931796094086594623371987260458870613984383342923968566041025833981793529130828353075651715673023041950534433991900222826487398179915752396936824081966282745215203795133533563355620476586949562183267172900055485834304889726942181184610843738940018213845212436354687841857550700756653353004781190295092532023689059819041730861705563829283099008366879921092240522555186534076211575834317100298161782645018395123401508407787393011022171923235901557868625208248433040635399198633312701837584350226588841950068205196944668676361255072025109332699677452985276599633296403751185454132058794008502867491069182950527106187579533097467864309458213988356224240146845567781587553431478507271646789732736499053451470868461813261556811935627237948376831981231702180682071074684925483557839975978285322807856415878633951216437723142788560956302002459173905884590969007753636730883510531572809510925136962418283865371720429271469889780577003991946359073830360432583424546451940203657235581472753866932299252615530121935011612416350527140826203661233319382661747276644021538507314884403918974314840143091027313340347394681103360722114695418300014532757311889870297635832880376482391196549264019835693966146807562695339387735821669913066713179798702706774689757257010249869427546512892435204728078748625605873908439715218001919291129492960785729442116285969799448605586494644435286669638376070572856720643323745612511267846832397123008802549835542735430526291571366000591252619368709124523820528009518528623319322070730285909881409973384314455740772894936272548579975250388581419393819002841237285294393357233791555339920533570345758803918153320071287314724513185697806055159768419325697851339221802220199716227610229630275313979554289327698742063276067473472831430005151522099629556789049604281905847501256586737654099310467731902664839873696818175816846733682842520511829552190472068151264690173269023788206761783308017700293202054008595723172969133827052409372387916527691624081152564588217547807055105327028078494449270895890774240164049979584115228693682185787661389832022010634905027442265716708555911767180240261666995403500709788240374232534003777238189507932368011815596991201304245033162949037508212774272545302984003532183123585601080421188453975673654672915604348305302750090264969735056480827061021579932258924713034711428756736356770573995439343126856344367651089889158061671424349785092994800906511748681144784251408867648728686432360380847154952876337558357880841597925800381342446691525407907784321321680315909068505059659913280634395473301745914781926638709098859692679437605342127047549574335688408960644944837132902068327817928121166663018080835742717021638264460055373552082615963126131303654368903807408364843368635951702851839112093117359814196041045533740772202691737064931376463748990250622318812787049791624658839469520284639151688350291136905430980554170891559609793999155584000170742639376026977694207577566915399844195428916240691236349248719348828957086855595046339801728395053684462549498805590680344917143945462516149170834829027290843455501401396938258409303873147936694468784769756103210126313469968884420626236265641001612115781983984616649391631738103329733421968405755790513075919344606531605575309544919904159786233755924346807235113145235475569350898167387255737520759361006136144040122680554980341144523130885860034929298861060787049910697523602362854523093009901567094328036954973623361481298778403572438779240789674892065650041563100538554926589519931383214400771734947531292655463903681518079546384807013487396496794923449445879588137277381824320145856602221041270669777613858988491678365233964330999432985020706246230111736925276721547737431983776523322021176934811290170672380989791505599080834569846609172066105359740250824999664458385219852071518572261874688457712188731449947746931351967804398993060726459600637217159504876777274466858403718593197036608759990835236742727029220030818356702011919788786247917853124877593968041811427127962795849379765999439684844112711124069102315972041223509057585484482194510104437457026964266722719803895206812270175222199325779550597289129069418025300150236548647149293468168320270295030089530655500230658919769526397370846706074022060641047776125672863650146562194302081284583581619491762227881710165365873179923465048562671688013131557981077289094432995117342870406592562438242456222350545705104376072277389276765364367097503730767734246703009643844271991443324383470614427941101188331968239050226656787066746386679212171844540439755391795413231917097232970992809444809032522813018628106789201078500045153346656785721438492302469260125953163433564813967031615766130859532892220503937965762180063167823864614688256114606225068124605194044373716963545415052299835511977845728283827007856728782455078732662281373661404869558141281056980864581209594146631312226141030064930561420349336124093225273771685537981276579774079945894625489452298726958865354327138323738845326773539144788294636559079015634691287139804777983245730384034196597571575907629260610363560175572740552229218174452251661617035389141039377400184546423411953081171887166807105398256200617593662454910762099503639904997672627627410031361839515874173691511144507446674598776951234605256640532996313256431007501402077018986703912117079360053461989285226670434394668476639849298365926267190893347965314863618569914081313010146102443209177694053557381932392463160640803789095313437857241332742912159883003969405193991940561233152049246085874348796571170056493538208335089871115005737311062309604278200420068461333141104219909679968090039741362271488290249875817503081915273779472675213092375277471869117165555528563698671398867532317326439734234271859775899697738610673621062991427936812315202203300074968838502852665994988089975539885380881210422231771408906153847710681907696038457286147221575496704690159569640742977204668493285429301485798749346771093082527708169824998846177831006087440359779116527212437325509781477872683131592660599751782507119872271592066387642685521197032051504154978796360513526385527831124551823051208523779266861530641402783405341933265647585302379088926833657040264466885839742556444523704959208007781247082269862002550530514730649125281430028212925470552493259205218394158745052271370838220369641194942457976959537000282248942283443828634539942998826010207421066700454189916117813785499679851809087566432684954505995104067236365175839113411127955186764438246269324979453846988365379835648911390847265055439827036821780184710948702292759325984985345052334442448666983965036920030434982627848043356455206647877721975801888549852497162394388104334706953557301504626154067447924715499916069074190658194038486845530255124200898181573159508537562234739893526427741720720901720517211924905219568580474582543052394277280000028762382825979611726061822804487034739238509451144042131926319489232908433758638820822745335770388411854083964035172547208096621686640537984442316673315448423870425372596309860268814345936969227464497245554402846511760383190528394005814211440066269844545530401577680704573171520698542146726684760961540608493328856123819409354930829483320744303551944828728816173483547114793272250208836093058608517732647506588821978703669813060074385153587514215495229584060511727495302999189797781911716441901885171650191351330761424341337423200113096237228416731636570083473463558277733037529723930706950663718781990217950939557247937804981440349581458124974309546561036937358545649034177043984197242801168427942671744509311505029670038220104874928352020061358543585672902855250436094064720555770673693569959957537801627421040962600564847593510872431376021567853006068217842920059588797528189340250518894974159463343953195306287607118944435330961810352150096272000165445053913399141076790229511712595679030527187975176072610045468293566974294339965829551021574850744443925122030074050266228572849941148096099131289510941242418803753418664589056631182346269003198178090380222664957373834141531545869450367360524877647518758917414403187905714211821779177979177148991009838377396291109823827508084925091827044752761870102587471808721083562605386619113047887938521778964643293036675400228703615719613517529006762221435677150563723971447337949932823251640646879123651864437807821719522930973345783148401604642537212092370558560629099720962606921841764417271398961365748784498820531031310944023123310329953033500387437796830189373141220966031795391312978559045463773782548572232006658006336915916774389089964022213067389927017985072834247549664715531104080620898570377296732626638285744450657517779415608852793640237073385143698713418982207471553321818670410140548739027994344445093342987477258734969377220247464468643693409025835073343894254177690733581495663576487902409782374427028829701190788683547833200880517498222851301389689539688775555804167762423614743465147248052351328216792668998790562579633516481261214227568996535090404818380792107255100653739710568667302998845665585314007895637597872927815095925714484884689510377545726619991076830945808034394605273625078200895551982599371127806860182049913752404679840985311803071923516288368388448768440139248539629241163152873807392313206450469556676162553190092517889923078306877351842106001553879769165725257798195781355679049100378350582862103686035830082854419998625996916833650354995692831918345032337961913686954280490671796731670313893417360889144483928723608422352482631899027094968714280578778501221510700145331251857779278044235671941832721841278970619321590038451965795698903446531381286896140661644805110265189818779120809509496162758594854969853296818284836367954908803542015343506327239042221825314134946165706152907982257876008630241835646797657233452198123360518686374220614587919339699633221269070289183816579454423906089191530290557422892257492983739283626154792856270170163115224459106507908595832867093944152442271935790487328251691102344337643044528927481421484740718593580119955693944344206062935960807120181018683325579339061756903813611487746410301341172737508932536397070426284992071542446750110742417369939232217295841084618666377594999680741028576685960444683212169560570322514694154274097493639369982596169297767091324249662760327096558325933289029028606704631789270271403553091237553760532451753332028679439117083274376178853083216161255826334953322462847864683798956521458465340388948215661042730454611089034681649480064244052372104232167940212485620254600942134977032804316972996543692228574432245274132175102376633249322204693952156034937508503321292846394171808042687716684007492511686534786409738644303946097720149351412931723717534293987465248192268773707353022021740645695412438847877579404206082258474989437956256808222915380124408486390056217984017133551386035335633790499553269933313050265711760013457691595722763751404458304193693587459784960020381603790710170723040921284936177745436086898756276241895358890308747009076781093421687727923406209591960167659437518146868717634828074621209381179034243022185700279490761593595042084830693627118120806276801533130002960555534244944661331440943521867343065103107962679276395480521616514781301648694907227109956145096348470748873009348808659394651311001119183941261080802043949821529840517012885650515623138978699410436948823707108043323009020660244689301827287723278764396942947740592016276906173474461853267622097708493098742745117724727326243558954649713517117177593255563411848058959821510703940140273921639355136350322911803903202177114364035748929678350163705195432395331649986114257849242842585623298823214338434342707782813527882445723265547945980961121388325693579375362934392490450131182666369278044747192977748778728626428110694661532525098358566672421172957813031466213056964402374185908687281902593182209490703237945656401470335248373695384460935790661081976784330878938868268081787854643950420310107221919382061288868638468622758655077588595921944174710679151314659811331673672020387316793995773637300245221782954087053404230635833844804701473203255396881206422450132868220595990546341126410338150298959398411057305354237134225812845132231721057087247645761559656236094487370267941216863620681766232796009216711412360665703676167548410342218853540587752770887524436799081039162068534286194832158764801494444447159919515855800696668115854127847997465483760392219329927760387046497487537297188382715346080268247334706775955156037822339322437655307009826777146738711367237631881993574014437309018161487707663064741525792414210240949376593256638292274376546766894699290704598796637705700952435368355183053517173187927802962412814031277791867320604749983726590328031727997775245590492123958618903806399709134191347756798423367117521487849304338415775274597104222136605228183599716710727440711603668336595093840920350067268571378991516215855271574757372545536537494013905593440045918841563634705445230642096507313641382658252969988810493381058583978178021344241306780963369092112097574175415415400287589224197433257175161117204469491835887904878378554673872994590089034464617126938057634513932756343814841656347136450555557369415739994376975110350251479694498263065912973894357275398712890891908244275589677840347673217897332463827484042112530469937454575573849370850310770153383037712365846602359489054551448819746345789831961191106574080112880022082266831507633433431605140246780370185147580813364762851027114823529098759744839827257527989079420636157664084111374205165230901292093894293296736008062148987143167123949926573130973452354448485986763500699246913184529184408298187423132117038107389296188524160743450083209965880505808186806047723971621525864647249555899914057130366809900374159162679979037003972813692019252027648364632732072081024141161342113604703615237134888203008213664154123609722854853637508995369236695194444854176869455486126631139915755111851690086189462334745561658750103426668484861111491790468247518290154834778991943702450553209664895785329746227397565037766480587369434604523592810913566785710198687635004422735355692988854031536003217940341129886215000644362121346201146325451384111964473287780013939008800410552721920532005781307058457948378896141416150173188479988054551041258308370398985188929947165112469013609361967612253717170331819954077119545872134549227874199800280391770266505502750307145680674606630689565814587754222638192284280214890688784724913607827934665842682839186187823931566456159303094550096936888321137957339484903601718432078245150297248251176258439718216318075962032277123296695477037217297992479672070748997553692401994991256941646904237371375056327365612575853508223983804400821662159085146993790092677964892822056700757150569622181095644769800816625540241070644232428417454378895621853441327195341259069751801637368017846404263272046656027499430819565431530891601373506531090991543860082768423829905751620756294522419160145795015577708813256419374255113053100077516840911210041643358643738460270602907979003950303423987013517660071710000378562128277061458281974485539573868641059640596028780135843454240717208566882498426636489944277485632562258401746853957678488089785052036336884645629894189381196646091267991254043437953948857797139852015143249618647998042246061312947234512225059063720061184085980165945888442707015329843006155555923265539512443167219657785866476365546390685977723343561463313977667303647058880923241245199181540792110578785567535243669494867077985191738074673931818613740873560855723350962126055642372710212571692996229438140012913302048814934555795358007932703969342513298087297491796593295136929655603485627520404187775291701332755693115769956913054693995859169428682219474202749702071832132643844489786205192890883211989139631326395825405153590064664533166041946412702809466486219858473627278203405395079637385415972677818020896875827312336681263816360713575857549681082309280542705322152280771171203371518303496387438014770419098938864761575312535799016154194418664443995813046870058257813518711936757690884020278917879728651058438501840226200830927379494304423008738919593418399102113012633250858760455635497009963673491120992078664831392760319790966930435595862951458878945644863246649948858664704772246829614372849933626965289923516352335189843631762776487563481936349586493494005131688152441382377824643556109772078043355089760854578657875945467036067054278145369139970094466033596408192081633586268937311324175933818802809041436771349245176785250537129619397587175048572495418035586874595215172337077162354905801257147484903836637006314129212441119003969887464271203631679942921008560943262929759526323051078428907472154179742179208870238700576546314468052483730522788619931406349027805453582522367326278390300151673851537891770727584828099964797660483124290296803130608135082670700875450586566988264813023039351170515342367618661191018924995246654606800916866578578741268401345242872859641452811267290526206830943667125371324314936844123982633759903831923637872964684025463703424150892288024833510238555845821956794687433996719719331340796486932588064780998618648469979257243431137118594388146232423968938534273799560518298909836372144745012986226648108871052828823293295338520312733940078231749658025674020362513609926123459325071674299174444976296723011008469345858561227077029029310580783065972011676141359958969923776718172261791213461792318388472777699206371452637533503996600817119101884502959158217410761654756601542846564923729749332613125533532045595969500274408313524849404934597385381880300509833820879191048626614986662679453977731961088632718071604679816551432849377074289531356407047027878272480722285865658422949851291022764918984006212676152927198298667122868025893725355247121823843251475227829444058123105643372657679458542803095916066266078548319010459064919144358845439993052495403539067610308294975259477345121846457749439336468816731288440968030369884381429425432395654485299150566559866863582458322055134396601239508298704183381808861638021928605674586288609929395810034456255370071524305543939109380731920904500801920155816789948556966027491263230345801657955831422885484094932969028391509972403666564540064410571993332233194484367179274215878853878924792636373168945952219590984393477684523371467575785667858417718713472881276652481400342082992334673083222023661549072354740371888440821183493272866015759602135529546050114734734744562690650979916643128814818418166017228168750606713204319870720095849774752593701493398265460618898857493784149883600253763018847362300586239057914067220790116029630144205390967197896119963177386466465888725302348463209445344449974441278665198583724134152230005163439811711068956190338074898775249985796597976853477616690697198824234539188217856062528295161323953414631433849693152590792516183092912545692302364331170171484052166885089392985802191253292786507814686470294200215920636622817921994950259761202202056755808599691001137317214760049601551144502415106436734228679268049429677312853620992691923432745030432706749705853373273812251852714209537981286540853740209612955343914480475281413725320765151472937736022974296719179636321456829306501111089137046481759676699015668208577247614308828747648098582846076282624876960769907594941907483999627598741326536280385226390244292147633905484722260692590640680738237608135245991460452954742397347398201367810785906269440845095063787536294797291834247542888043515426862971746472414683438725519535068471644022895385545002653022772547087900699458828216359642742388660686382368790097839064427106163449938261910849791901200783166435935358012242479914905836730144607302357500130317855417028599103727403155587852770357217684098118416386775438701338320765684726522145125114178762436291180956739261899419716702643297477127877767548224503961869610859693708551556181386706806498742684186631947934887500734684615102018397571719330356242364499644629640068584956753031057568407106637855631507356977613039479449692677968066354341247251788355066274573929744018314055086340078307020488731245402819660484877904805682175711869470887043336319359866880193878836374474432653016730505862459924985865334053525453790950813335423802422854383161057261875147331705339447679834967981627810813352862978310879076774096626377925716747626958455474248264540771872843779273098610202889370269620853141481298650059189111339944065702578696331114893873339607136603504326841406057442326244671447421272128955336387143691421091915891802935104301905633587583119410843132708851947015096374122106249442336223316678004609385981545145625554107177385158994965257408082871203075447412639994830388728854292717681135446556575602867561373509673289726774591041001031186459549003108876467681844100656067103164502711305431199783093227185790759347082427892875978210007454909539713309949466868662590480949681469459653323590342103794008001108911872757737267352788755575562010613087348907814981539879008704047475303200892974125515384390610510394205226872004587522007432378648117848770316020878543927391877421307226963273126841395317707982318160966414098481139054412545587722481697803705842690429372690823788009933065739985931915419939825110432056232081071082172958402786263716701979030030935426070761595924268197395517311127020760423351367875225601739182925115722047931631758211466829612361135687223830842834090567936040488604777206114679736386794223229736798588193721150391289868403892721180171808959770058232615387053660484203944479452414093411563264234976303883517229687337943026064123421967078461108161543645869820770352556256535178328241690354681990100703119448567110171877088564940899451591435661087891273671760614079853677921695191288877725289147554621019588081567769601467943389772993820934146433759045321375463277388249396695074102329065809775774703115678652710104184980807537067846088849203065669189204579667569865647432393502746741476965172690064407993190287622398647931968310033262779024101959782974864181101658007006377441043609943371696136362526728497847496973097143494553802333419127949545509531076494800581078001898051171092967580069803726997323403053600142264740473908761940889366046113543075699339654122159339250649520954035302423489051718203516928286122264626457671916822885491344948315454234984313362372085589829922224573763457075647792339480254385014019070846991501034247244245848351054212771647593664715078999837617168132521250784778330909759654577475416171368721893042812543463641801771937593482712232530593087484067592491752594406104601791125276034828218059986412528048980089709063491883145410779435771408937055820958770247468465879860500567121875616272111219859243432998991911987417514609783483295035813162432260010821645549878700364329746117771341186132333169993751481828688252479511144297069419212194776335813177443216171229330247295346031684933941967781786930312750213131974605578112949150938290099136306041611636838985643498867140791160819289001022153036739100171385476029621800265421106820776170375312751110320094214412725800380815538177162458415183104074110145087711775692091197276451471857188697950130001197297697677863897189463658693070650180021972125251896669286059881958811381708355646503493908364212825224957581382307073297720567065555556387824770037190050194149430110446717207960793014772135239424405171620510404502652183092386627656113172782934767900902218369060566571120780419556502532409053265407274563439661800451685773703713912559141374344662991215200809847206462104564966038892780596580916654242330885028514532792412955037064739557116068228963068584149271978405291562810649687158440337726433122603102488792512972050897357401885844288359752163190234002171496451903320238316661089297995218626080341620091318032642356727818854169705265373084589550489693478669382066923571284062187396392024578686479352966151357234501573963282288814108457188602142044647464013884323817828266043650475957095440761930105522410868476115954301726605311144147257173231082041876614949883079408317356830725320034347748261738343456281378611638698530066552555527864800843446530658800555632073611322105028001511079141606895760237293315339101638517858677987886827456937008611159250690156394200969226059606850133043188624694876981781141769118291304101387554787492296075982020912152787081072394252467387479827598911885861370642301536164268752330837401841126911225936031486707317081936152459237870158308103969259449801065995488653095334964550827156140497704073959809080209112819966600634014190224956599694124754585923543115983552800298559145251196703346488050104880784291037374206230462627081472657234956906018301661415527914880798197728945216965765823655562573629019033048103465273380167175827985574580314389583707200986443351169928068754165316323949210748123693566453493578417873564356353048724645060163940813815291640786759302620129214194958679885063976129839128994270040212602840896075775539657906759493521828298892797826888819383503538215164635669977575119984908073975388417111571941111536267175583323143093072482145236999039329761936925464358652600487996522908649431268538097229845077554663457537678668700000931854000284877320782941505059158988809248654261330613355182632478366871898507789111799859219234530360237577075895606291583924806692155075903651317222754001829816113294708622019989966818041725750618850137646678832978403377329154582894358368328133940565404665937019069589281809414713989320345432287211346077064798727882772257126194502535983709609496028247663075800609532899679685625224857272576845183629322593890140135372808340275363554357233532252333618486290313379567290965537910601577202463735103773646125033548013221796314877182272365543745851262290867920019260618549289074390913813855886493343543764232579019880972675425416909237071686623720050325042079105654523228717475814560151560415871354068577344615241950857564917733678630851167927424940523135167045036658523965666619184685944830967869194707179487614305473008740014905947438094522672481107385777212243968434716795428821358457437163969900041018817815915744640015002304753107602274986221155311532759561430447727339773002273964941397115241319941808035993464601279007507850943251445681248817852898421809602072231713570460865729754736949894491925164258786671474701261868984338423717758358944729666281217660055739805674165710873847197544528207327152943177991326495364711945478851854017951164296318236936998528849528383698462497967362984110948045182212131566465981780334365298770541456020344570951460996235878860889536839613799462657583593425166789668592610527338457213087206203834923925642569248285211352125861710298705827977672578604422814370871391220087613892229750543738841700024348615986373706212982750251940153783748461072202867449435466926477876020519004114373552497211999613501563559571588341523728033806419185072155778148279604831191901943144193099893798006334978561020054867505114120660931894807413811514768585448292232247385599203879917821399939284535409971774315145438617161329396716297654600856935613463757904061366954740940429422873431451295200155548449963893376674518311914475598470167224190773969980946686110870037451714140420707986938342049724579185561033618858842133318487287298569689672675353817240707091085857685300841003361220105207395389158816172951360087030188857765294742719575671150829599986631666509282672697290276581932855715535528906799695349956908898362947787089477952359859313966939577343946654608089722846661645392686076564503024875045352556400200309198506385841663712175726847183876705964869682118864630491039768074819946192103191123749199199687011078894738825055203739987938375178218366996398155098337956022042305555639530537640277157911084710467404618090051840620957265706619997231496244456484676533963648693144654833200565243891850396617700189882382566883471357007868326126130223070256385669931270676957418774385979584858182945527951195833129282211954850239778779190416266549170581674345814049096578696598227306560403799425981322696765020199609923363885117353019489291806157643547752719674943542924981778796396939905419232013000938580103559804971635245691876319946138723607701738411226690365832331867909163778316417679115486652810923569282304519484496386107200865943789954698662358278944653222640865032304081442910699695023031667826173359735857497833846952497570255463011563124164037985530510453547742416774597293246521027138201975383656880352597644735097032863679106959244294023742448621759686474886442068667697168804640591149927257757233862395171841624811235194253114769705241103925679268944469469034687485040471092486987082386668053400407665707082850938415304272300435244090366162364211946376741012022182840362422477300363450259526358340645407750487744187833357572880618233901670379051812821530103835610421687618589825931100403631481943698979077023603105282005344776616173655430589727898135839208135228414792039672039142205900710566165646398618551071635796504861277342519997849049125155545305117834343613087769022519091315698536702418599688137618614771551826459739649060828100926409349434022103568428712124285239693614917338862527638195225487511319518181941112457183238013539861250233033900557223958226602970454063956871792390395483721380563049543087300191500383058247270231464635565785574134863730856408716828794492134395887705621938903593274963133351395847041339691570203839294619969366061221585460515430956391401782193277004243525988029475537597263173673205353533409411029479777521319278998475607794714291361594729245162454564054343644367153969437936414472187544504574538052140148508239299263915084080734325897652365379351732500884008535997494222165264354997384360910333795633141108594851374148508645093160922921326798501326588121958803374636711888560202084185829299573926741965016144728676397804458135929557060324518734506175016056346788940113713205029096323904025322009841060054120739707847071089635771630463354747317964644430572488066437914273485789815581072731346907168464611199489302736493460401416954030149845118940463852223253809788883464125121523834508720309419211864286142648554014446644168781033036097589607028715494084956961278655591040682710260910422261177908510802908331787797638764144035010277485021483116616148802048882285737812836181345414772945383500874925608124282766116863580036433581252780273674795123838985201110786257601165529718275137298176767250737104718702735245021221607894900497220869976580772255435601472955641426424590416767655757186454072191769638920097681127178647840655836818749912139503882109617843580072629830745156822306238236327894444204284056107815125122292993556223179421356993052066539429695349681935919563704624055672745393380788670921404113010707784854435176385296616423502710426672857213986670100853792536990582758422966969442333321881949037062359897804660109803747560334710522679193791423767519117345271025027750356425226088230546920476855201826284783549119903034131425346584717622394305071196531956898764654591363950335273559078585893521590371715813492042815516683169845971854315837394174371360355792263108240900263697845962075407075020624277348846947910980140171789293748655792564823848771162858581523153241027482064734994663932433590773530998758658028212214259129664814211612584955444925722727116200027613533626124958135707651771656620990720305829096532452769127469812366686797806051953921663455656276181996957911890051620360877145838517318060725051115268376837073320197717433639272963466431597757039165474252840420156019015039202105182550635442495218390141960980520239933663980781457267624537173548991015289813851191123378854545986203651301508395594325137632675100962085013300155837397925372692864663738290081941000774952418692080309596951184558129672563580212197261363652667974022129537342220823628145229298265622184802832482488224319334371320622827716442456518458332911984444828835054771383389376628441329371030210733514719295587105919226213667462967424285804094195988140790534896888268495349348964495158873137867161980960757064320794084671460051710039009792609956349100611393600065660438153160235427136091082933561719338068752226597796188076936920072756127599163211586539476461980885185570905923329827274155402446932268654556264682304348946020217835938974520210124667823827078558068862362204613147492050999916079777645314957678155657514467855997805440124693589061564479353804957994169570229097240107006138217039453955369829661629492948077421786392068125715946804225025672196212192931625854227733064386446126251967269839527397984771183399868841196545890352313805241935729212047900718505006936279388664148728754332318539510217966771621527521102238904181377398565116360947823846209262590829474368389687443225166069069872405553306264711119454170372226476618719604920423316890098191232179216764374682174092959196736364789754149057292805013581485593625970969389495915576749525069066634505413844967573599972878860882462593708957484067264506698835541712476241969240362760565934892652043158239267113114416696752245031969679579429890383383615932429268413814605623561912065837506904138723685075531452082448718699183470172343109564775507863015358580602000436254642526735420322499649835854968471743516961212795966705710179701868081873031118374349647699808181300172327533684435831502088764465325292257839619034998817572545122908320319132578466127956220640577770554112112206354981242685420284723014075946404609018204289108777600201406270245840160066859359848176007040074045998092363387795803472013603993286649020940582884820164496027794788477495141269013494871003576871240582984916896540863752303290997971351627707016792887911459903401878125677419743212455842796944322265766701875590481064571591388588503031565488673755463283067702411567827546674590870623216070950196703009153911137775302834403710232426269995448176557068123867955746554988180803105485934582360950929567716565616050123665899342661274814757841245851501573936492457386067945615833676486142287894660221376236686809558201079811627505241249458220019317033358581408302585982344820643621061365013029848185119515906628190399326021748322777696852105008432079847021259436702720981612352528392439017792969344721638635583096900590749592287472134383140041301731806742446249334149074452856561857925987879708150852149862873998385268327090749874140365083916889240554815361761547470389759065836445104185607011794903294950362685240519911038456392227928534249336700625886427900160605962802787772320824354143764491928763750277504138935395219838084911098178239889078736032282021325921460026875812558357356718488177544648315543109600783777863898457793540708230577440684464152881120788849307411801265808247579607334917679890214207016132921578268270436035836915964845621753747996033232955951022792427042129345816144543640787083331437186357202675113601233658280443562538196303338498173112731760294377854298976108651798044279789023993896726056661106362314620624202852926511208459436578535542029886168448211610666612607632125124728783384213600847421831906286161470976135781299717821777705703004899043223657886042893959771638568752759033618474531944326433215390570352454856210053518333951548791881640657999680573526881435003347330574796430511039444010027583583282421667846999761231316586117055309292125902159364993407960698846313856263955032806887249655118854395716820484982365391024359216236708253251038941360819914704490628097970242336891543937031553433426011235480016772006511665688708514649479020601120063481367065473369980317295073469615968747556481850601402278990635977410501474832169327106962767928762789853491815160844272018150592969943188591509834387865877398802231637993958313287079154481817967388253997955475927025858291379398649640881058999755927935365076875064408948857780393035668706310692812493139083567915765183765743819973869427935964116373798028278441553342047038321379941730870183218499343497645317385832808905018916529451842816798655646712383811978753062937012643118315168296416093982719886415053810875355193591459647211098668182120977893215320093888318022527794889611705535421341800312799342954486915875415789880341871509805162905573028376839002496434968817214110938547395774749999735256677419819519445114675254767453531168648573804256984428818734756692317320548497747126123702740725080163030743398914124922100710270461665136035799403629330468486945831584057542404207360669806817737460651090538663175189833232498429224312541797669550119758960493771933314784865149808004264789666759615681945616632060198311366174703923150876102068650777429451594289359510551613223103726777414999332777548176588922024922940976545707241678917091817681876085859135330945855111500418222137679072688382723079084241503451208865490365931958040855171580796515131686544713539255713225962606308748904374922817231780410572501488675336133627597387076591803355575556171062656272479536133067358495321739700995199392554257887018049696028533285970191787356266926565667906211334712652914864620871278781953957650880946275160991334045841367068495436031413450830578513196645986302556126320634185777049140772977923821747065618072048572921518491930491155844661095313480423630899698720025309563559380853514618784009089837116904615943131278361377990128861223924103366707778118517277011425903741062422219359171997097399141120675594470871490964177786147656622478652937030366192166762431060912730149502952634937362358296909385651730498266160621486765699488264371264556543776418082594888696848603199171922690564141479318886492125787801187770662112859875225771399017683067279840121046062058738851702963040151791723042771261939615974062374070170573488024562700419656349612553876817105716060080053309814145337553032009215679251047390181318444956514546290655835461443563350625437618946460634703933391656397452937994729705160933058209562346261609693740071095391623724357635855131150576489794704205472632907086308337701972292078997590410583829821783363953355019920124662052420840608958478854099425774595944340056487368204570314342508863918698365031722140839844147159023211434707537021227806863475964537119428391448308553592413915907176295354715061636095828280569019404555528732121268309557778602539456211805173853008772784792595631101485524117766862757199480250086675107067834490760637476326402450463402770490554186064844750414627866486637324810582854540395180065961290446476766894690650841478953804785209576265247871735024303912264643290512646347982064329351823424075988707388027213848756183224009018534662419684980969636066118673815145862357418616318512175784871358199945419034768704367918954794596334022090211980756180584428838089940912262218656800383277193308939380715292945062492262709314288574156376519369549235454960685704756693706515220680644006449562640716116046919658307844368707730644153317555986020305293566702721187974363341404733081347467713423791430951945423775115996636634245978897693307599750439094932663865907279068750057189634151490964029390917027912412572752184329420867839990114716210970628423202084648270457866745991611187896411097655683399194960825362111387651144683851026834138886942059852819333546403036567829828461006796833765112147924192491765883669522945521470807581138362350566385443511436699613198551302636714802373273445669280776684968360919059600347925107684638078684663741468957263468638258936715788926116818564529726364169674981362714897955819501330032794477430642437636627599480643502362995804731916576150586821269328436696253036771743763957709806837366207023534486208001881972677896348404980638272042902636530871573740694277769303285661161755952480705513969283265126523338559061694556616257599393067251024025754414970500344681149737410882996999637199970782492216319326049861568606799832927261874257732174856780421355158414670242005102020747860539066881619674787379046204761779543597934115066486758843053199649614592742024580356802164090682722703855155496719449880969542548783950888229998081241305174870356703523120702119995662599000160690751514065785823312616059530635848086562789362724090967624006481855954227713412904590945733291346543220701589129295237906077039999497796908884779887810930775113861629679711439922604552366700966283844715201376766550154978703560427394643469418462415874037530242937188989054556487585424302031514293287465588699998906076482648105086195333510577387519176447380456245151929793672958863235088291729225257446392708696726415869223998698341283367165171912619349557508072029524397315108301619245712779822897426169490994982556776953013592557452116952258558502284717871959200640290774594860806484315702684882375175407199915293097566627226296924367284954660811576455078479524902663566348726546023174648099239196797366902596139176153733544118946786463491558624133577792610994088420179155145019771659544169977618847933754712032730040457346844044820557079678531043267488531634031283306281558236331399664933378623098501443085668268351646881301996140678528584449452535533462759532882035686174181904964434409885374691981678898858717808722709668408940112168033671302999519366149559841387446788810024506374464617556207617059864192948953616789190825369417800109551014526111845241647832913721004016837209545785586176535869476552110963310387435036086248702943906542989694009419536838565145965152519831850231845712221036200657560055626914457793976373028357778144924149572239288031941445335530078524928421718194466884614012045984018011518540057610766445100389217977753564172791857704500390725086712946185363528262399899385027232072104570165155107362988757567611068560233296087158173091033163920859189586568714787576634319550914343051549744548904137087877807084945357805642202830101944820006421367545837177844398508627631898682303743146129836446662581177539913748382118488243256334399141904517393259111495224339699007107168347620064742143486203205810142679129604956138149559975050170542775481684346810030889433029290497474626346122611782888670746709110830958676162079873153656105980834884612565215921264629611472121968718722167331726563801009211629939715911790087713863281694399844492510292167358024990766436506996228574987606495705789269774464969731483609618833003809304716881777360745060606845661537037627203767297701287631747245275831634013790840747574179683733158711963366553881477102410249662245386240121530410410112798268142176045675293135435716098375946382046486621276084235006185607328854551130105437274635683693317204789543624067372781769426211033181521005870711781320091891866814480774567861292300361559872330964252470219972140654327490803764616893413625221792182850434245524707842008174876954876268429615139249342081723260412853662026863134687665050906568527361432603609349150723309739229933403534681641449108539188672987389081079221564967514081868448785504240138587617285193718126257374176229845169962513379237961005169200409127150907415177143942751501709891468222555023477408767721564301266866891137661943117713145205832252800986314441453167972633822889016689121034995174613609373734382637427881757424772486916999558075638117882392150310559822809831729957987232850520675622986925685651659449679065491745909407315926734261962345520108789621351241122196280331977722009961731184781755994674393139905072393571537961374129243379840334285252804202937801385399409037851745829471411192246407391854143801013229123022087562751172500908324497020556627808613796684053859550296532399166932446984923729423139931394942804062040938800822170095875723422570942377936867749180494386091921272885279132014979754853310079657443987851754510578821643469841779261741699785736497365819685428102837556657086543358031340791553481499312730076689311701217557124816892189529790657034083255120753312484126943159893261947736041239571619703145262869635870306524023628278594199463032553563593454609232501813522044617416045661646508969692168048773244484191264218646502570827917542195887301683755488057876810424548646654334919011919410781233132883262705008177702284036818577554090442525195625936719855600970793472752479555067695249627840669859958529525492435092953939712021418832713316329972060182046855707507149231065954444754958947886265704653987424963468170671853287705855173904148827785991452874648091507379244239844040011529860502883466639946811129958587905344067866583541910531570259819551180864125153456192318179826300596646156256641639022644453078399505872592984124503753538092162716104137708357747425434831874211178412999397710930228693333125718258243417801868307103264904579463735110812202323278275945718355139715544746701282821436033037811632156554836324875471579375264083255283610383551589266297681776057540176225642221778456678597666036514162401048671322437738181709748915351678225264986639401492127536563203120769889259566083399131207954454996712665988969205744350502678590016044313130430611030724584449342894533674473956949146832471421601543032130015986936862164818846046844797469945371402735616012661088043207449478324187092876095166231132403066378049250164323200676001788109824880039862499116631982650114239896398930190734648396835679763672081608998701815844973338377801000540608097741119398716789709890939646920811926901894751417622563688660593944421814633192257342175580377064230226859685514171664423746848454950430204546181964088510362979530507642206938582308900145517174888530782461390104951504461025817089323906890055745194779274027788058372808579070694799080073575064838601147871843270190948962074187359753533587650418693350979984803980582364165759574993678170237269459467507626635010118265115372649600109690283830618899077484358636494403629725358669810347613404938500069643933083693368797140718051940660513960413212091567518843163696757571326388582716467856023003739322938458024889041295245435316100055272406527157595744224612321290814238234538948776438163413990708419697602828763406331898908454748774979542904966903776219821511027250339046693051213482541446717496216475510405588697518052404191339673598399576629497221167437903209561570687142067361364162598016915436777116931512562002933975370322994813755938281060715468763451587155644992922434600464374121894025987465510361647331291448221406860949771227893978716105508501171071082926469500841149758094010479787942873675301802643954279693065627222778748836719261359657766535340685671301256343544445711299990434452144191543574330365544370191225283845763769467792223176284223414848037568655964693514937263628672595181618673744149653362758311331913512969404449949179612703923797017396459294130118099296105554454987831375039901931024406120944086004158016032276402287002091794679302257344862098026532874909214664269782863628029962856142926004090563238540237773891418218885553582112851739329886065643570272322759080788194873890794402594244569933036616228854686511455029332709379347861584168837130866709565892480408112158469764282264070826108483387385008457358625601143960292833438631143334659405686896283440581057854370114142262972146659560761611260012709338395558681079226366031262946855893997019776170825959429183595086354026746919132856521652194642886133782006182851271149501413259553054267980713014885914665142231281368735253295946108756999544773781038332482854964277283951526976431193676934352619684547053145061856440852437245467901848759190950944790188421344619277704481379743397975744418382979868263312431915330747654352159736898236507752283750197389033005052517598214610359084943896683402166744411405953987324964472674378867454764821454777932967655299024636937577039661586500079279193079711820398611810161750388481305693652007651205163781133907739434426118309939508632139069419755708354638952015388441350283257515189703780074351482734758804249768827294472842192508991128192117433445157512249140970290938527014577225211935822499485776493062859772986173089457458038422526795153391682498352171465258200805402875201814147074584867041333826476381920405220911516644522329981432822029443434413399762028806706370674587953864800146830669862076904457271776721105798967928029907754696613008671819709171964684373059393573039872936020950937667812490797143532766194666907151244308699044401815723928793528310908077911753583320933698172380085278558135162193483712987569711253782196792258148928243978100756149633501396330217373999286978233846355908274880257262921320359861023731807692471026734086582398553747804340092474351543596360449678497940711672550558737840550462041831366485454381150082486944510230933726811698000693907047180983682514008016120001915218786268801860640231554846476935225615526746882841317179973000870105486937632972714156243999527826451624406792858845754601716285629765488200382826903616335177127251771459732596900779776187961585986556755980885909320324163568779809485445503185927344770513222660465590616450009151249669933163354791280978486875424837165671943588284462244195174207273599550546813352008256739642571280087220062107886802316658452811471443344239992259118953607883564910099392670142329131799933624299365899528339234302551929224391382825915230632108385376191272329989001073811594440297624122574280149001031526862174414356673632692502906309239244610970619548128767591770234817778908775510542882315408645449802820559268095287167630347481001378066410003919366771050382866243584197333859835348905262388157094824031804451395952209526376077689512558880065462734478048150081720160262793381369023525183356044781818261942135433761100378232208153397031681905248481205034511118589881747441313198334752328579363957533372173272012207616858978759578911504971688358715376143392991613637028468246039613250952520709514822737652086948791206962574886655752631822336844144526925394982167445019567182933146372875423535808728470287785380096073371578961252903335347479185653660234747440728791356199923071145284679816701036097155946363334666967502504019329012239494781678070648279252354021961624628806684206056189051613302235120835279179417617411655561527212067900435703391561889712544032285886451741317319028118664356164272843606500500254558325492377148292677996780004700831948097405470884642013852236629718987960835655149181081154296059801385849150264026364377850163942746110702150224622147237957450041018772079725378455314262267853489093695709647618643215136436293147767665354604645999289759584905933717360065144103003782709806397678315300350396886359731092926877846189962504020119890226965762291742124057820923040205103373393187140692049050363547577401741535310879096276608721340263896205184600783155229136442705884560226762279706054971280501638551536542402795948421676950510126498868612789121888761136996664281841518196640397052532741895262349628305014655692053871732395342051797906007656772631915703677266092152016269813586238557921629849579574182026433184942990263771060474459179092685985453136186050074727322000159161584891585796760513276472791705452092417736554153990410921595373770540327549737763590889416889970689327541781567423476542154553929469173599609970193203955732162175873778084346291500346716082245704101533045040069227216782263546092036716998381779257711087950698552900389269582102422307861838030574201259023305622031385775584203776092299806655758701482740696971258679973359157383769490240737855960086591709461919082905122149486129363425006528136001228481778627009691705775080992289687608865423220642617510458097422020194240539885683325314306454638754111348885901916274694826034617984631695837876988174704055057129041882023843367709871957527444402106098194001355653088932446765049641654720008056168277854233087087424641365368142875543492349599333033755674411436343209105804409527608487991268796039807830131573815622160752995466578725580696688332703022772452774216168177212160004253274328285775979358331471762375524356270632011634745564535491988834061917038556031580246839707861528505624214103902947012995432946952323223782648277883652377698703662212695629620333328583637593963415559624379847962689150817749136997184118740604805423541951193709739158784513210858086334552236554456382764219678071228253853206267298774728215883610949671406623834054510463360721252835546908981112122960248013557503341734018824690818831003026139167152277124202547716269734925837740801956160955271589056886113702073954250738817499651437196698196180225452636537758355829698090649241225085767649222289853090163878766833547641338935097646291151321116488003678236945469980337011706571045393518642492350568479963523547622440636769783500643779049925249596598333695003465245501697275439636764953187650988359508237744755510567852949992451178047525638909144578195926210579357233785534545836979892516079754524305251972575528250738214062487005429961243710899156268846364058396521177431600807618080087684682546533909345149252387617701584934580194867013164828003909815608987476086180332652231877812801575079542456337673350405865286783586697395790178846581512368121903987592119808649510217511687114201145626882670830916082890924331465961571726405712780716420310319169049090068712539584307800835395941286809210540069981167102525687179218954427177874806751327141307411916460573055146516169135153750929861397921726783837058326312370657582332978662047510255434711869763625988247754805245027381099217567843886735336548422491740626548529674682627861243257898340656507561603899999917898135404350666853367133790408909284018448903435464971812394340692394107750638022197056869558056975640487017124685582420967214283963727249112574065490994137861491836498481590275371493389207606515253416842590428961152030064635351108170450731612779539690676523680338417111862772889738695678933958749085736755861342407616369284785866046608575944674109155980747767947642681876884335596194706005826994655545420425870018527129510758039655590986436861847290677533689955868048810423675289463237822765412167301556579497678899506259899878702264683400584156007953729534336049671378315234930357660742475889731377171297266089579040673940251010197976294083065845975553538041385312289193770945714697592709582597336590020160970738049497573888730987993965807482121072913600991412829419935900063015896230388623475123858428323732891275312646033259111719354737205597463054936960504125379442600488649697921005396561005042491998833211237052278037731767469248934275759766145505884641249472812484419296237457866124419760305658673412211464406445775852217716689141599236645903898918465199189821422521883010292834482280049026005672561760904187781969583108496741308887638067178388535615856523451261680079415635221635787663183131013477723266085303034222841367143540908491977381307131695054574871999977563242029247437964844836875776208798435141460988040719936356915324454061579685413286494589522700448193270208408529995643783956312301362575827698048956383329964838723026159384076163701842516425869366965421445507674444224160588904692027241570762757027495661581021912417143318770394701774406819832235245005996240465541755068646670824370484974333948354483607759795086023085314780347102598847668161130976697823335408357904218227078341945851084824298534317932657927377996048254626180451058986906470876413703822821343146940129041457302292854289352888551385079479257557178546894029802701207371884629287995479828251240386372956160893198791096543648550523933046966352177892063756332488151949059486911271983913928994894178835188680962028854300086554874091095263717005134246717969438699837018462538257601956916672758127803873341376075768024237554188738065955559233014933615142818355488164775129100674216647239910703026232331105864657822956608414515820908969476536030659980817854203667503533589356019341863034174540108124090713176074221413689496645942139524557262434635651079291171321271434998826721663906751794847295838208066429592966338064403217822518739147041438536157743138341442678046682320970094761953246306885514169194112526608620886331492990418909350276669538871705688342019458749902402294220105809585723827383269223986372185686700447188869603155309115952343747359418789992140543654023757642423943438178989656465344377081863499947190151559874308092641567198706787981831908377126242792678317237367470158309882313868565418818546606121890336592517109458603196692072315365583209305170426928208793013632110763729916234712263969217263014704778524546022064900005859300729383693392078528562210733974884357484577890976560090415426904385359466199772020922677563334057536003253724986324003744814872980821963575301828703767805338706172431452615256687899957472204636062149920294249537418716132796154592275202520980831160986582877764640513292413342578230974714294405946105798269609659501164231026800028580348279695211429765185561275684574464954064323045930261860643450912143540701392945507563968398552544577368093078003045664542121863892759031954364991104044925913245661709642774352616236477985168248011017063911162871127196318528233732595971339887919786062522124095374892383087762830063239604289369109617213416462175846779487661013510833134055915780166687731966885556642527689309997589373344250105995655712641088433782516748079341247335769303098390578144937684750109739420745816185178647554962304929319412032950925705976414060959486206329933129163160944627019936225028827164747474239819019338949067092730575219537030610655765089327931507172040682590454543384599366721636729079748913905717937106822385605624339439203046924312418419284033582624006101744646847663427164766127924272914587155470159651978415971574265210483378050005514255864524180675743748537018187872570430868300202280776536918728166013623194259845903411045273530706410418574557148573034227114836611201179972011147836654032403073686415146305055771265829785850428735959886971954015748452243642741773194385078037529879580345701772194652858021575600698723926244964899645514395922991242446315450435895422611921085294235613040943507259599274662266320455169864545156403674032776174198264117645761403659010917225098299227561280313850283092172442946516196637332788822018517901428818455258683768156677644184632170912860244192359707330572097058573226308976333302729240356725675720063606838166194133445831773132359865869910225377820509974507752140284868673923242069872045080751427584410275973835010964137507601894310185150021699762782450287182788126265252588341505471933042997299158093481047083577633967534458689336563675757775275928801959050039608033475785577200745612242989167911446863151820086726114128858596446304476426971027980885269647234816095208232154906099806027687858601253652672338850528573316980686305435056655581458410676564807284186643774181797646005739050541870201744143484329514541095190652485914861779944273194194335122281065821146024268338167010878540492155865225617552318330643273805775162087881758822893511130079325996724755318225241103560669359874500531058030543831522220799146006252825032341627434775063759912098517572892355861976031494300882695527954154081323178725154054165757689450099084394552345057771795436739328472701476036856980742730836490538614726940013765251095717096178961675247315249217696905580696148793054590916281761300518566535189524680710805457682587211097241888633228060455508270631929216330032285924037704230353524504346326672092852426954321675345836885438563863281420167983005619734253111007701494455565624238299162889101470905386465225003623066068520349961745830354790340332730195759012673399157156709272675579957354989938414613976420031991944969528361085636271135285071707264717642406908412222167060584248109030524122089629245886575906243204818451603772234511442901761312292445621289330722879819335037135414133316838606803457660927547830892343660049558521149911675297837878035327934060286713665940869667721894887073903436626675693177826266882601991076810548664323139739572648445484641694531757069840575684861904697173243971973126727674113246840612076897931696774844240942460505645878274423598356423079328769257708206156434739672156222312624430362056506109029860316855573285658482485083468189182021416460588695593531404532885687708304468038869691565701959650866813638838473758395938054134888803654391080635233664200599530904038191875852816911485543684692627664438934068678481398923000214943969356199333306977836062385236595338106383028894831272724216720057193998832279299838197537337128677448777003998729959099173512409298815466662405076393066319260112299650050816249390660890119047891413416629098975340764831212688785909986753587314705662927224841910544573194791764858998069929945302133700343575510100321347201464598084614406670733928350025830282890803538101019575669585942831496926220793412656006764211012725234819925747859871294891583818946259677432776222294594779373763479248466112059634643664316393067713277371183254288973479133984695198628699380936919202091981096557697246379115433562787717228500046935418924951176725864519905684152239729282114901960879195306064743231323686625790781023353815809016397340442263394946962524044067042536545277389496435900813897887525246225112917155471444849936910260751767065128772064171099962346039336191196335630278007127743215798430978422687317153752162640000588597980357791569136505112078988528406301493027740593233952888090364055066141770099487230475308472573192562332404125511501363064605017429338834415008061017514813581992176139792056326655830862590104696027608566671005164355569580824077740252402684867785985387712977631369151135363019349293019179336448038110047253197766712319956359260232459955304971151245212337707855240601008563189399441504914529012826741002892358616734526413987598584158698010295203743606200540934157651720149082282981111868482892690025486700661207169714759063272114206908987172151011643982934767755792979536841944446881012732600774274722886684460484899787946307289098243817057595344795633425228827328300668870544731193609914034228204732963246276896533134437360589724243803419769075321363897096294485492643693859270885240689910603520593498586662953838359005389883602177059432994386540853057149867788542337672044480705389878239611895660567942926519030380378402326269364198208936290734494114639336342608567586179713825040115393294782504627173967668399683864296016268249769856482249920639599565637350001421337389372539674601267872408793154501815012181076582557440816866361430351449967356110857738597619889657659533108977392076849740985195260634690826571357185528781260207476771386411592166505320053393643316702414787140346601687913576831918571212464133476840367728285555330953598231837019325610286996221564447775286020441135867978075788245882691474139149527658583075281644725300218600678213436602246955108737954240301424328819682758436168821553898493652461502547906250210938035534757645948618086417087398717368935439458595237267545670873252567220897250543197987782419611672537652167674560759879629766226581635151088941603348811910046723723514400153605826921510497295053647188168886395369643870105456682130152981205836853964399933147457631324748189742999354060475171087943932945056515249126825857302619719421425087256156651275646579692276714157572974944369977232714044129010637103354378933237293025457150998808198637553007205832641163455773597960612690433759530113347355214148730822831524459899296700169722749915605722623507624818121817840100027432568017136314774858071884321018822142860386072607019542147137271862356121526273271164722277857412368328341846803436636008794300429786451280375688259135926539252097149109429522669351805268166822187105050252134186262288202652327702776879113935397111516634141340890885894141155768416203197528079962244488194535251462291018698750822189887367161719539288975504307103993189673416368907732034193444852195260957051068774911446650879094917124135167153212905755290699951299681426064468613235954297742595904390432151510358403243703717744428539410158679690419468712480070249647842037912330141119943343959997421445921270044086463139903285759316117483250606000519354623322600269381126565253649164674731485070383555717675535039532683630066446115293200197506298475579008880027793192881294114427762422182885674103682700857334879332670104815457949732915201505782883838288014397031398791047651063392001574959952912679804863774481937189660668874850107352706048039258890532922374497658911696942699097763531147248850648351036743215644708233711227013705724673314111447813443476012991239418487812893562742691362135161686871996785534903967931733364780519017475212436928316734620668511972527172944892154720581938378331272039132711636131393564342999598873851624658817903438532154208796877417863877421050612695604549542035212317376811035655912695917843214693679320739666325470585669587311401244481025246328701659822427131523732443888990797122571893392582821512771199977669102009051761451847765663300201113505262509297350754992051150605617795179765197664723440086438538068334322957779870514228347395027981614995581185232262374300921050535172156797353817348226856811627742125669986323451897040722481789062304766659331797850587498272218675907523382814747663872192915836957685321787047458976097508758123050053779983167219987386760489427942261635058048202909253137557154148979957590956334051686504042897032238474967042180900789011944820663077075215166199898680018712522105903056825896614167974906289875470182962790366582967517004850981656976785719420105766023209402790775700682634675452826438973291620794461565667424765228243810642174804934835356053881399765340712119048782507588460713937661266867193872730502129369739832560743150397649355858223943608776657731289229440532034915829432443185041436404713219207233579288903942796762581116251196744383688299462968517988941602888510535391385413188740409794753123119006157926408108778318746792614352109133018971716253855106154853109676896605794608221505130106252530800521807089579255049276811874456160671252364402377262208312178470532674189305177867669485551724490961813139212028483687273648372241234126403564090466335745207668544831592745709093698584992941755602073019572094909808287079084412325598370016354859551497318085967585591700508568814989524716282486597704841831254891427689813588837644572034680730007288539257702955191232809112781938886493735704520502951878780070710493450546934891623252604393891950751571458566624687861787447100104002152798519030505687221663441284669367575196475220912377121195469338289713822232965444067397325177993980665806645367792887547237998460155502639093286168582830058559834553203931852222602678435924575894004055902300116926303483339858162840455041524877740132263137907910528728264168006131043667961118501868533817139100146592083199376233518917315979091713693837840580487027306197423205902144472757272453514200319830000509716891427031282802656081517386501306363472214558142010539599869364733238087883211312196377021943248058087581227497902830588130795954272363263821197594450368582387920347213235692995108564159062948580019133734362570329693454995928306670335005009571538293709448588662279779453693266350734622305719779776399615999830289204987905304039516611508743533260998904523415054580405706064239379993473912666234368629221657272707222740137840105498468278244614714346159949348436399060927501436783945480694198370162501155669082753844550178918796099993173351354409977270374511707966305435174350720755773436365986791214345038335222219622572419769203955218614756618368440546175070309787889553448417037346933795552358577392978577825487129947835082398423549893861606119384970168864048576313707218034864350298237944442957870135272977375746767908568928026204095156600511856103259148757416025714480244636812749376604930482765602671017245149568320608760994043180607540243428405856417523901448388491394662909695347848867873537150901724966672019503185211524137951642552689198655596241451492435280387570342520704159109846457205897323186741022381526699449289310021083968219034199528543605625783324564714643623744934674461534375249246677888980973383408849851456897970760408432142088508587181411817683308785655559939600803415120843508715885630187174894705833881405660272953510914126589423918756904796542759194682763076133517333151115223800469518174094573487092929988183267675721325996202139201639199688714204893024882244550556602848902578037322089723261997892158217927914581514813931733613570650521385379853240768269491832938618214060195566223714164250580831632695904570652256329867487967850161615425444703783224065135059614732003381227630904892835854150821097880324642970670280920351564226065686194723361133984720714565816985761232176067080486496643327856419662640527843657045598754986782203617021960512646388835756012483952673967417280052476542949175031870869676870543743907612501139854172078927326254184886409667685731047938608377637149395464411167576948229620796237766939556555239836073671302226294424049968763839580691385208287458913792781153358909812262071362589147768535202292670145530939986677635768336526240174386909147961921829426488335712569044478200302193661044612858138694727816345913959597287074444868592799396439569105569027773829977982977627178744793329977508238040442466967229024692411733610680865735567989620570664734706053417512260887263913867532281264746301996723201795392225630533814999031660536841796412421560555756731533519430208150385960472734881353118817092408108011875492994812790759171206917690040917751460215036650229373143307434955647527735991362455364603652853978655675385296768884765161073198699792330962006279851221413641474547085227033087766919663758669141561448711010253796266417456083743842933503453947418437677701416173466295119130606932687237614360654839978895511163643882218207459682659000142975839391512099418082180567923001544792000863678872234017092899790780623497919103701978245138814224267713540452132961371395716781095169897753290198548828510456559206448573194393010637138491542963877792320270045014849456660630855770011929255453730643950757367920411694974444486929804086344295244896753146566037460384808555742751139830681241752398795851390069793702076707691040491000575489847438731028223801813447584421377018068133026586687920867097608598961682800150096396316360202412669660278329604973862133212343924064617722471394270980167333515152266671565561295913030932766895729136759307744734505846388155712762547265131692028189403086184227125056199547943554197071393588705914738448362286859863245811042851361958900342309629886851083253827171782210704803901319629350630956492997680230809002200588046086865226153613054174543014980948992999404176132205027709093472890469091534306008040612593015632289693668753342026376222637403012455117013162421565335217417311846420275797793137368458853344670934595121344491399680447041466584184519462757084014425210615537799033018330695147864510012562021372993484055041005214402338686830982059359851551397133389749326259699235068617409586069779198398177620111738667905711351494717978544262537878915795317683772144219462252164258583009491410438198939315357617028980763820329046941272046881978571705334539462549601106369553008493816367321824761693932861001797780293711080273080031294468932436392905270644980259886955272165922613649324792800466534205739036378601742485725222783427424056950558712779436588301785481995154546281510690665303926808898249811267512110993975614967397140398160537496834684972945712410958415348545865649884917443880907869008821608464788544356361996585490262779995306729353158350906828929924579067766110356676579724702501647508105561804425676029216184321346647415079785423701563220885083226548303822747855701069980727485758874378980710925483501316450379460309100980647674422195580227334841268377844869426612753680320883816023728612161948870882908828624436941919610958804881879205365565670752075243011127104443305473397387347692225812982981330225299347626399079432852060485625444594228973178795639074660082591176021947954959682615261853394895137371072354377632178107487548354104407088663397945588920323074143677355874329906061547387938329580822475490840297922125041909754440287016399962351055176922883709024090333346202840298686179549885586665956259756847645192436378939880034492840962458363032170181847153231878808790253072155636511233936784839199495238090269763610608462313755366193048234957663552591309305458583399277782426368504286350683355152032319309213962554487895134814459530392243916873491894579448067140870093051326176149011416985297883274713399027522152011408740855512627368859943283303013866269150069837899720848979334366134652424369084287388018571018114846473506378791910964564601940308982543344507530617088059867559995948282120499046244219020562969921357602502498661597983539481433624886505359732861823091475902525327823656242964251482869590466231522502882348820569976640619509664041808088472488421335777231646100632205013093475405909719186461509706105912399070325219119676168951863318103921236952925063325583111699431960543152454485838130130343933509570381268257906416093051081573154106592331367988323962264258911328800398180869901394856575494192641699781533946987647605833225271761638618951978812888641564821509463616751923941230903010168005901637506580370500741067304874987409182850995691300745888499918555018760237838251552055499457627688455967525059666723845048287501115209760478260477957712169744226410290176614706522914798542085687302103956134357700618054401416438679131482112402856283487636093086412093560205921665849610192340437757178043534080437669670130951127872779885603681139246968315168373736545587428458116615136593358553583472611783111338177424520923403666043689700551649786123729738215832749681513816041569204322837151560737218468088152294446876166347423318050127971180396358718512385097854153430934983998693048504833042519006521337515473506984267423236437377814270021678760458998569555574068327969276228822405172644596470639579161907281347208503152301219256918710052857279536796458214707697181150348899825077705808862709927352614553936174818472563621629947053192681030706965392658088284142249125530869263239116354364946002694709260655384160493065015348472213891253384129470280175084199206152189939707611029473550197263539665681967040224452132272268644412809378786937788520569121237561798526928667014048718384399842860015272438706559070052192121607365975830126915851320821161084464610911138860002408103273241071000514500086786312582548484948069894141445311405738333017687227963520142819386798319082609648995978019322759717295456979267201331480910902505552691947334431057361112765303368628868943998106996753417748920756370297562492933984792260822231996558551902113294968298977515532979273710838807384628901587997747283395110866486767383836111710082818930453777686176634189439895956852222204816185601107213796090712744670607274780717569547097760389666507363487180178544799338316532343682581030321485639436902240797738458671837304558169489688751128269844862171661451115234062086347542603224602620127837914680551112315930863687292049668932400807190061893639271253685882020096915174875434503109317046002961364845329345765482816837831327189564532853924019726533250601611615884203376602260584191755438288700726892558152030501523271851912612865012109705441732508403258387527826482552937843737815599879121832193645104825395890330526793678949785384903422299665953243905043877911665206999260229026775431975332726473030018973570761175844957972453021500019471648620971798347258492066535219816493325599637179930243324113871302092451498947907881391060511519759248688549014709423110057098708919282952374460758651490069331433755195872101861962516570901005310384879418928283111527831447423212541005431143671225973850037644119912337092481923806302735612709478653816891257945908329245387166631373487567373903215985074420975069810190456202968529480211032410158623622420398110599931841499865267592796705823007401993060735226000124184799811661048116513023877688700427221971693158456704999030000001417783033260441928904589552464432817057365449871147397212334465845753853858684460528619090537501167227701455104264013512113351067684125833251411867730827187014479205678292524369610007054269862549101605145976458588696451455126598698677250294860498684658755379302674395603090421666482200577327149381624019505178130605090557066555509983961944634479433572855064313150567214744345878839301941703321191992702238771065202804674396841189691074709285142904768453633170058605865977818807149199639693726820719916445668296132425916287191957355704942653532001670171420111071325882746218079229148756215383386957854288118105241074377504319079833282948267333675711272161409591246178805591527974707901546008018811125572311845943687964085743150944198204384106050821904195883215281331532804825905119977887634067700468147402719783120690883747632662506901570840052868569393452960478326602666246871444312995776995432531580494233080892990227577104643510278670989754191936464734569444140023564714854951382050131346073035844466850774574263615788536940066100314474671638353904583894571540143253794793470816883795132342212230963270960543687784828895441463584720351373276292243660694891174562357421485833370715061172695193755633056922399355565556488668343682758312603516892999568767269312684124186355754842482172186469246488128854552926734195618643896137351335160892787948022956386256280768694492063858067912287339737238504296430821329501527635086063119269778464064509395579311935693259804044166931511341946156169736906104973554776296674560080401820360607299385430086977743133226397770691407825384696223501604665601833654663345924812546518373216357802987587771535636522831405007803702648955851153241495804164289530566568200317774238555790091404520277242016136125509046440186933434646577953167682288080004034643623518809756914653228585978838288697706078007817857908026145956751891575882830309311888363272136992652786611652966609165130291611607686414366724136057112226637492787412190156258041385492313921294160871622260270643080974228614985921483784902430391927504750174619688945693136286927237578161229677194140409428296453713280263693581971186464102265807518484596048349301929913375441206263140500013446846009278522003532133160401894644113231673553908429951169406302472384782402966318022878334224447575169743759206647974727107140800633761952969098562766899902384540752057306208250239501032080131570468827097174123303400534625671276904693348118698857651389278017020843368774059373081466925158457077897499916260276974873274915562976864468716140162504495477804266769112523409408307514490839783707387083444893359566597358896792726184394925119552943076778744373891459150023625624310014429734430927680673874886422366795964117847198301494078801248830124316335568481197456950110165013709050539494814754644899992457545074706673938808827732621682065883484088884969887307326858850213294652860378761137825597772596612407752703013779455102490551628144988133092079225512185734076730168259893946961760423434282330566011546399882258339765632952053226219104921987637794143387595329434525219822221030721198900795837060310761008111019916245521530295166377371096132794161949070573718111215983070089253920741655224828085285480501054639260018518309721712672429948243045634993210896625125054541040991721356444647570896214788477137978785001927039044447784797944552658048521627626182169751020359264033366405065901162961383140823105956894649814828941101928133889276975297981756768704668467216806051146456578231785848024259703558252761861977642439535547085786316496158773934831130879059745671180449140198839754027079190821929021532392644861894054328333331642389736768886451203825426609942220319731209981378511098769114710647323781292376427070193397052194813413549905686986942256876878809590264713907527122398799835661257897230745469118886579140597353297685186088882207403971736691151474221312377492388139672530516892798386733632278535330963339951071157409760322743804365982772164510095680780422447345032275626292802452438875982027665424008399854064313057171372042659528620650085852130214844918606447367892734404516175424193899788202497043843291058055628250167925689720114982674067121166384538451142550378703401962395458838617815553150743636724263882324644534105923809565481119712041354278469057883653733624275720169209206858688285711237121854552616448680499216181567132942950061550452446221738330407414626265735500006842587609819630661924996739193936486531152383310761750882514545505194360134021496639402328917361215290675907512984261486416763771020866234698524607643867779992903618029868433370453878115983892170320173719069549730529126711500239518344151230407803851131413179009585900407322101172236510024531280834008185928274436497169086060170399783724299629807597456612206722728281748247251356050700150274040533889746702595098412307127696779312093318590045518130899915088178600631293921865691394373711923703737775894590311534701775498366111565683588096700979058391395823369036211600471592605666179857835336548316795610109683063263343746321873181872063456437401261751615115307354359032014180278002512585434409982976321735860297544149185457411760315352156250654424852252602926821095574361231024391221884200613680780288330145046321290753279248355844623669097175806411142577572548037992546552945604229452149798426288753991725897551335185473619087377663966657154767828370079322152425735913509170104228709742065579704848065113314034618582410184897500676477275209290778147565223022300187538386933744195956960135087544259952984282296009318187691546748870540371258144839486306234689689282882422846891086403066650679046018902656323639679035598887321535406187897866780100642796092307915262148238150959041052677043282881773098379512753306346980547137868931623122368177503216415717177232822803911806554436263965673901423038133159189437087960949946572096074286924193735482935246686688343966780645177329141702397408007827778192828054321869417754306948045267226026211913407317164290474211676916750771682292641991278803148269508633792115136525212444716512484338845174231119706605892576267143563926824036074149439327647869450662756293027761473863287357472188816965861164663980938803168368532301537559893192047092447672989978062477450180746184758969070192343757719556927056040044995150268897281645106893132057759842066822096106485245091329750634495523860767169760815434544835393482436590228874156647454915248039270334742663353012602115840381688939351808319792559025361092618941028633292442429874490221524728350507386168806109510779022639775878877301639745589079730814878877490792438965612821420647021767754286013211784988250053247321978016639809008884791181379413980811003308529069587588049973431708060915389157086744818912997416864197234793002827398957689307004205657727634132676599971082469937170332130169874405750948422204862743033822389773088588272840521267671111479547413171193933966304129343911343813534306971728090921725417493076714949948993418928083883016777367253412282888252487150282462619565002419403871018066532208199232262092486153501774484738440963190919672840651406028433318886156334366571952757600655615632913784427630628796288224601198936881326901887268280507991712737058543943480668416671020414068623495392049337959483735636670560167382136166162909257632229094782277912163647546064275612843630568250329274811456743351112704034344681973048929732171750123292963760915374551567551654553728516957427698504745815926235725757756072737273686060089410662103969524256961373584636182879259361370340955032816519407570406490466944966151398275495481848899081532301264976447188466144650848786338095200747238545345777387906335717041242990689210600601410106550697843949382480523441930241899594443849284904545598374554813942709657091014334172249371448774073705183792039296379814573635310511588787751859534107366853849854230616666194020671635413196421301678053327599540961124666864686857938132139208897136989169161133350252639050169555603832766818674378889732823977645354514719580517963614766332147085440474713617199045282348835774510488446099406798601624762295877268288204834937903231387420162425646277096657427010412608789979178372478565389215570127914369435103440578764436903018656440953810296720315695129455453689847039869677275972992041019573108402734698185918724379181238264920737050123119775007003580396958586304048885375056276067633312807956657994051654009251412973115606266500836523819028904929068820271027582722308239259484365714712570714076467344348466881883076839048159177974797544171574192487185995612581241284508074734614191049339962738305587007961438651420294566372856867780363024662767594206141514113203125396013605585293081430384352227024378831123505469087686702886927208124098591475512018704554571221702802504245108930804970549606998102738320093224855925822354563000402399338567963141896468985645067120258482764942090693368596290741502319745556070411755168112766657458904499818230854397189592572066998356549618695878420854681502609750878083963903142810870607519142282325783356722767254188944553297309454116749569150049909074397151689390497500525276268660688743097891978362540415532634199384714561317642998383719527774573720110628593704694402570979497831925790411532658728352855190399518074591183827035001575144287344758234676499556975547818697984620152177400049820809048784455622024303257253230683587283605977291381430974309218387958337352267356059896669106031198597962004683136212818219735865189634275815535258935185453996822754962265860997780864933420538842600842109792697123116067855788278048367073890991763971511266467034184237178788037252433835599775977659364877883263829418515289668869994677507550530022359894083843178935037995589624069194811978823639421431745844983313688990858436694892631624288416286822176587018601498697073777361077412332070783045124530511161378118392517025211637889690890578512977532227987568275594426501154152249499203582973845246109829674626136276176099131461432990657387910051053911257986341966055276537951034295769980299125846250113507643747117237292630259415811522357820955706564690437821961321153410758250221949096698903374566124241714534790712087567902587696226374657177549755306510835555395779950666672500547852616872393132240427203337954044083399948615532562142892666613612179606474667197250184190076713442612886252132316930773940609272616737848657617030768449193792221050143062484525678338305199435561126583426773386041779438859278723016070051605729738325918194497868513792285636902683666029946629541671740148201063651596863175048215853902987229852218535479074858061772490096024834712891487185533698696945635403281074819508691662375142532012089874269036310801536742493059987894823147441290739251001726474207317858284141562689286057334670042895403198684681910128422427622886185474643696906200158948370835565278363402568247349416093385706179539522346540678414011665143253800719378850585521794342780530388753395824602927033815619435011971776524315704997784586027656148241576108826571544556001534040877195947120073330366975486674149621965461458192910000314319754014225057626338194962546699822017050778747908689242355204207084949311692290756379526454652064927857713935384570986525560725697821131786930050796110381412670468204350011611969601830522163372384323087428655824818960589850473427152508533181067794631113456886618662137777498974988507066410778818315268658698312984649075380871880724646928360645275347203149303730096148541644834852473606102666935760030061872209837740216838385954688497875430773016358062058711736949764407292565171089620748018921610083872757662958498203029728803910986052249595845123526923783125700376856426208443131683929282130106163756068609823204489631593506853146927721084506869548407195732661229410104187833692534568489175999961874467915127932551665787978803238138140110071605676565884110880625640969402355150605468832709220143796810507287497787956524814647627107718549569920539203447040076440317391758231556406168527276148223414514767112347226964739881668003887704444321374264509688425145333538796573515850845712447358731126612569069317212102718516281469323497557142018537164800840142293129368077266148521577470049887932939024088375352945559887212202379184194807239401791561703640571701880681202451002274489632425253718701882608484258848870684752904881461573903975266303264223798452680377937456625986191512323747429266824000134127771891762672863525057784278952424653445633221245259591950593138851904760891760779861756702119430755215217730858321705136715034645747882174286027157692173066422934209609454631095446918035219837793363054356520455506575055936215789980492598569751189478084735781736616298448467753340094301552026861829590678566553157411216619721873495020218680936263131761693710137306992948630857039551748091027401904725796191735332299126342083230290845053336980144870612696720369286045309320251062522969386577379158688968311208290645877298164351374844370602601577255823872057988925689177178733711905684257434347127088695333135680759187487297484136550120241147875496337052877064864295928432815571234552498028841535658040444674682106215053412648766234287347921149956031564117552250289360208290362168698804929565216062784071883881841073682229913285873778131511890147080875997815712408949454079221548189614523124575302332149651548322587015185634668105104563207191618022532775575330548024313868012034480939902165812545036888213150918136952277723291949823555065977421938331624323511163496542504985480950135682069574356873414343209419955613771162036760353891145608163019774144569438916223027726631891442627264422707231196291722804538585012138024031376518700617272150019554062146380782699378437662773981631296455807714433815034975236061757966646859043635355448167177869331331387757419387533202496194954441606149754023742662825488895132194947765952032735006323998480484042764360907811067258348489576427479100153721964733494746772184293022906010660500246058171170416112410195620749034970642173132776182073291550714908037899781044569495744679874745070089872925395073007575974086934157585132847513542858854727093199691146212219267848090905599527740829969758940851085574732029931850130240056546445850426730116978081146178692990199909183779009403656028618909321877735407641082140417469125929258452698377250159380143736026465788775192368181634841084888758899207124744507838292655054948426817663366254539318285194882324798512856057358151446774341672541865302069703193502060959753593411549443934327988363706858928169379226749789529985366334200380232461705451851544138492564799329006509868007235125133735425460710918555468723967218523435381198338680017783623304780408503833041732332075688402256971366313254156479115423608757391932747102610986078475234137561501656918032973374531949890383217139847894524180541670650765250931902734534668452353008104922689624719598169309034363957222917301744538751143265396622568560811636976376721533606262348561359871437980034142678461391233691751611308651142265926309803922798404835203432413844121761575631468692259445862573547303691680410820050536997907229985287919852775667652080087578567867493591724463908759895723466810834848475177498800286763429888553731522181503882462802577880443230775926905845005485152266471966221430989417270545118475450167779288076497765436593283356661321195820402723612124808912724557730281860611727974301095808471839013244225715823799389231694304610057820781807683553318645204890062811493218752779556107179749907077684399520289242856433572163545773871661673350542638263760000682088288195026692082167542764590492015574033225479842288689764781171326845799916338241368774280536705679026320059225719176467004227977882636177487018617832216200519179215582994315730212707534468720994214464501655715818408981477155993136229626709305925135049013789144590278832275219856107601803690469385601272928651560318987964324277326194793586053917034832350121203766189187702741902186905381418709054939435382599713187351484985071999830456103096305991573636586888609293380784876793467164360368138623892421544584488246337405504503688628445603881263734504513768074295060974921178548907649645665174454918594840879001913157997347069258430664320089271196562423911319051460742613156507307148875449486879253708553918599147630449963004534545384020975620917025247070354881777080199817450468513762239743620965105225677891467017414607868382314006355337352457217899485489905841744965288772949102403905002317577380381013888879343970927742632025037717837939098508643542497244995022484903082138123311959572068201403963632415320941282191956494755701726183024488742831342317509417386318808131188543171298188038618482184320327706079147544165638536807463808067541716320007019372616492629131242148621790800785176127876285688150928197846965753758717398777376326818657614867954746336016696979120110958812838373780208187666605345938036363817054536919742993827287646518667087102824164526719853825948132451375994907699421714009378487324193146966825431864260710015852865923124950892117618989351850861438266716484735880701923496594210206138114813315165119568592388963560820322356602607335031095348230817454901394359478879633171490887883094946976298643401965507511666067643349762666308804855828528155984909793377725485517528609636663806200800134852832726324213119301631597895452682478280175496414190504918833211060742367699165793093151846184960459727921515543970100438354621612784883322886942834145363953412380278218865849101688606988113252564939819669027721578550307217259190527085696952662788267753451233579178522981397321832956755626889936888655608434200591411565298017358099096765934893545368081279386093048538040798853972105069662633389768630675250833344833559298252083166158365971022035788941360180380114121008044485180765491854497426372835902617374045571559739574333516356711331883220975162566212121023524453296707056121178132608545659790001385300952017460105140838349586367807942285699992417598556469407227621665198013077431046199136885744911387906480082329199429620233179132426986732628749284566023222670600577504324444595308171765929209388243329731635737343221214593561529425498537231513724120054198737830219671542357826579366748950378643147152670010578364613077273443782028605588146643628951081316821394562748526811061490845152636361593249465902015696223786675631642966163007468987718933278344699854913125242112965355704380407874830754449372463039919560606611517931979605375798329494337123281310326775608245738798737949089453138866615273192236846025625121666737565439117680881330021699438638999263451058492757520176610044299454139919856524654737169524300512615038675194580411939218833006539849940472475007221099477455864665341258650759310145355416743023266316223772953981821145834994385854776333062494550246241869484855521371815496344466728809642946720099488162574280609815140544627894134298412093711205883763349106343769018184259183033108950889853444514049377164152746743099506429998486322736048495182537289223240805587027061854910800798802637104892256507916578900247409039499106532461973631508007886227581198709634200429834540768086570627585702556016459662728366900378785116205058639995753133023505086224327547228523558474157334895022512926834384199890108484182557593312386567840440056429751204629847615360685332651222572719037470738489273844837058967258675439990228791891510009189651363919816937486063299074527793127279616422850495942947801316689178365724557590299870029421852249323523041939272370100560988500406702642625275929481217749341612199219084739077194312874225482058369238317479816616039829855461398470664011861283565403447419954806464452688446601027177951270813778884349092649913194578927567488888176064688418259914692418714500039948334391218191412785728582061954793946369914677779187862707360644009164592061707102011433322081570517117214424297539491171204481459045023332296428967353225398772444334462047192794636338973821383014832322847446548659370153470243967237464424916726627148988154056153881826129994201020615115552690087492047420799942215211232154117397089017208703256074954734417176827393890413645138466678732376901971326961571155285992037179093478101538326202445674378278485667481904645692339246304789903181027158011033869416021569189773163372502198662661791699885546704694486224462848366849511932892908082765983950468264670480363028680666571254820280164788349188441868000747088613279159192301514239661782723046117682440652825173478995384444631640666723052429654541928526868100476762029142767830812109275043298155845554832153569605009295569173743639435915674195640557572688331293007802586828144628821188855265136908888567462429704212304506625434845753885064890258025181559371205465628796373392701594338894793451719285784394399093119991084612562870528719225682468357061123651825960192884050100794929093518152718813174712049174650122832105273845825438994186745282027056913601792075737242716362113517420596980268455121389274683613611641764794714856423669338896559559313610369761454995416658223188382210105433225541897338950768895595365079591091081327603455978719829877865154835679093311019376505375188181612695678631321304280738148232234873109721948352202628317730946833343906126880620906037740626661692752671888655917483814693584879735072962415228744335332497609166917845465119868621108362091141756884020551801141049269276010065173720460420505652374796562403466655299492795223616366585262982886908154175934585041674445169371408992469739965141507829608383621377950790328994434126539444331258681958785415094048177145291710114961980194647428311285543525155468210072810136510444403655645324140127308535691781330877395121575838109915403901333318186785575906020148244178137097215542367996789129082659943275340185011823745295027121503574246776773606780196350894981184002876972703779161467567944980531344053899154871687255636465037562363605909575133388723140537469764311732175715228685847522678684754871028402471179871386861478031321424589045570978606755462354202192893646062853405544479151110667930085649405233485057937536102795321148837165623814640454799113353940164748967212234858918875422972039315989033891820979923073207804452185460804038116670942791990070755108366863967330809153460735613060214459158621226075013812642672785229661223885579112093308961133613313410523091894764865030127650483945532360132885629567940761452815182406328110981719112527596596331801501488468116777137460028284601511817556950798691720749584413189471741009282512919779051594801536894168704158093050812796315804360141306179786766930869150429635702346335323341203770428154928779437228575480037207523168298105448972956212407282138382303124686007730159360413533641601781878909488030351680937281237270267117772891939904655519875339096904189862054241793373952588592693197257136303282701265255748583386673956519020705883683175261913580701745235782264116168205167924376104891322688470377539953431391959474491381832869784631886240129834742043274142891510999074569459698708863527280115575503970787115273316857067746258033954596602833585352190821531535050007411130732357826001648704286762500234476727208218824509126614362086040268514200170059355276190712948768864398631502520664867214837740557218860408991112869315173132801499154517257676672240694345612101948105256029053918465571672869179225199288333753456403085558352442017193452411889356125276314090017443649397299954929463339700378607517458361340442713917682952284571580649899497299279484037545626788242055949623947155855897869134049601966720786071525568454809644816838133573534291863838928612386069729469956198103576594118711510212778459479113000484535934799242986219621289568151464433516354305164548600189228664935882138969145708083733879728779556413802233753177211924782386141188692260543916517746649371505044277144390897129237073392865032593686126773074257059922459574303058323762642795721765247523618587598655871922795229719775875615493823632619072379277541526862198077024144754216046418829841369653693767737540946436827199206647542750564085121777466759321704741931112894940773312797683955903428501986783781918352802743365743103933086633022462056417679269121890722149841032278836272051712634923114321964792623178448474435422460959837502216200041067315956392582298302580446408486332694460582684335941944435998180579738700510594989965060985940559920970916849279724856354829110099993614814953750703968383727688739395935452769104097684217074272816683895794570973630156913978962017772185635431610821223858644408549972497425978536151606317145405691647851068920985091779801134250543907282395595595112091226503217566488034784838410210560371642964427823375733711804389724971255377956305883263269343623037724180112427366163764788285422999328779789177471004234422047974648099061253682243325902997609957872197218787354902725656451185415061106924376789043039823029474253124588843056499535730149891463538362285872537265367582569457870849595372348495922369229548555712560132466734438125779691164494644040372332094275706485837751675945870756750945637021112662387793757925100951278079830986746264969890520149104157587293892209623756800004275782908186838810730722958385605010191505436023680172185880603574731025806665083113721935167868144310493826131553607618864141383916475471097458369676039688413602439168951175695143191388902806556589518885341406752740566691310063765902943698743145027947483949096916264018623823779857333563377378269147378722386745350894816070098624501570915787616918538139666733066777176479401299322037252048678631124979016274096221727446196211145800239486470828687284568047121676998210178227721262626239691956792031012092104636342041420906592185423074284186634736647553186424821535199119920632377422670063476016301750801305733066011156419781418549184458395851145400246365854002853535397804669718547579304504538041028914447692292027719575551014956800300554304310591728363436189065764944733853142879255850257956693923545991122410127136992549384519234870974283270600844920647790239763066248964106979588188446952266147783461568934972569575147697266249695275816791381836915336910708870527103687836399294106670874642773738115812983525953497915443891471792597500047593698963003433931171050591385468500747003024955590746456118933294432243073086382531593266619386236136628172467129178949418627211120715563972701407505239054684018172833952993249983360056164822497555044898888158605739048895086915134874901712987766976122713789683253548205155053299114878897634946088496685154711014444732221056924913703450055539030277973897157688621563066129278922522695440103722714186698023203654901010970107518262930998632096004616372466589726051836999442446692106351213300013265822364568955826842651994094209609538984216216720849324640261736347487439308441718943600333211583875341250667872237942915828610618315620026165412273811122111151132991881519720766913283322527805520663934126900853131815166580663316729557315486099644024029766750618838165199591831076764793188237935725206736898518784716116382752554338782708026587434705287229126051531632494004831803476697006219787074333725843376303248814305737161816085992824941256837545386776237053555238041444732286273046548344483052247634695925409154666781984143677590132426451757015943564061501795228600010459703429268738847493736141029152102048127968352965944650294953704131039337640490258479516644029475190303250059214540020778524505339870968890163747762331522292272204771079748034928574006037223328371835990028193242206064415284507217619652452086496495208572065191822228838351900206511194161472054414841145358444047174264302967465769713079114398206198071544819994380531153409386593299864923612056667199094759570415053955471785419400105166932512873772242461129865675806686613143320538942529251975193747275583446172914324856272558844140050683413523336765984784652293875201645057757365320927814289344156766335889602552130954143838701035350538523967018847436604844671232154645679811604623815700527460083254266790171379900250535687075984560006961688388238839757962733308774172743800811663123781982406914647834288820796392372454222062503676991405050442635024083646513424793963464664539300387707027488906130376050565618405302693799180330939252176252101485836528523009758787030330473412766101232942833205555291307294575202677802260789986028844417176463444084041685588573327708588370103651160994293454147233047531478263103391266635015687792919955584921698787212597272821249496270291640041857007399573556915158892887629922161597527962423524561339548833296020611020578486150615408108002999045431325734577663084188156847949353956090682363964005897871012415389860807145105619681578338629128449432183176542061238009163119446493468006790230507507355175655833912622060971780734985859459326144176361541559189927892714836879961669490379694191094724512634763916759387705895486140722859165826522490988013167547571841145472905049581369160877935269614345000148171993667104736452454216000494719430251321551588311170261263291790610467751275762749231261636942608365635047433212119587633741988676720865516304160119951679001125301956106975137953868100912130137528526269503945749487332463796801919787729746919131307505975567578514398668250075703544640056535867099931054316413623752495244634041046101577356436644841367885048917381031593708615059407692643572164596819672054511066272718191563128777123296900021948308636281445950099688360237138041456510968419139689384672642669205261684568342805518774742794420174117906053876663596944433895048196345272779743985475782415319216915109337047650783903366201763611147970288892097583835960162093490730094133821256722171843970769188291811672838513338079247978829237333873427881251324881083547473327146859817481707938168507473159682486253779587218034526635339265905428074463188414570717245035358360716155371169407055797572655164518207765270233944036953329808712664954373255417072293679633122715124631366128823816303856041149820584163299993472814909649949604119616383157153144184069135576468216783930716696791480925991492498768077223474254177734115550943028743794006843036908765652421928612840452559654724272622803090907293215299201792947677780137846320613931088609677190363107282024597014070443069673389400938562356934762535510847928950769528082112243213919100328875242685952981306823429564187031581639015633652066946619317974022283495074954320632347882220159201811746269148486702189695474728938637779997144112793138836574804104780343713583445532414875942383549243892166924908075357813617428927049729475956837397488700871741948004749224142235687863723246324343022457176177445928838637724348086813996111325414125065408116498145635883302011083100298933654979371446432776440743983554653769352083172986719620027525773223686877033627193216045078044910599046598787500846003568443569427701002959550961187618273846046862260694585434625991432414692606667594275034700954303408526654061177673762259858470388824494131455864899756665915726107087535429573537127722170938795464660494325169455710241861671981184806954897693384563217508861860177148573011870779204928607333474037845296277969307048757753833627375809707587493439452945947561986628562114095330015026055597689658186551537099199000403159987814735146595142789847422753514601889957790762126695328104792213602505237501686686363121914390443089265150282504515340917689582278108706623195790347033815160232855322711674455290359924872027462511054695572324348835130598294103110352001324968090590604100607066903888496749248006785716891796537714979463987705826701692631918827458460403979510865653329666588116204806068693438906035912454499965848796546010992611767647705463331783542023974381108899694136360147412791238176076317927569954892357706914038376659223082437406496818509577364970772969505264210292115202535388140686737785618280395329958689050945763860283894973185217430992209742258285834452898980578969124158392622795635194245209514660742580516354351990327352377969022158034727764302262430491992337775227099828522967728437686417171813911638888054383768346227812183240241883752525798764678605901145273530293036481515455749835809800821125444511848330679732069921464392134060893487072146440642910458088528958244125822964505053324065038842570956315585745010998583265765258055245743624919289600484722248667596777336877683353122378129667223244944891123900492559238898684830397633112969724956722268074009694550088376632689163397968097832892605637519409800993902249871041699952185053179276068111905144718223551462583569906056421717140417625772346404594503188882906512020744784307953475648332862805256271437830156393436579672039882174216442904989980863394838023100777522260226599284615619708545193118914492679955850394362504470165933269067872146511729000789094541172639982740800186834418777865446521267930350757861135039507864385466244345545525423341222233956727897435653251895184551616086547504930759872124436450031494396275303761499601597242766699403087599194609527018874204091593525934396314920000319661259028817942627351720169588419436865855238342164425520087781261674330286129423152903753637810471567123098863171235810879886608095452711139712360251918063102863961313796008201741715370353809816732643981057292613589623974495596871260881422297272934726159890031522232503413163989646819182970120974493210548784961922075863391439097912602274657137064359784234889165979425796319482285189475956677271681621062139681271638588403016138410480014669174187707263708514115795848934554072560491607874143711210942031749110638238779774926745411477380174203568021895738657153074436136965777101833553424514048858091118657765229114348230888998947513133915941829803186302318438446310664206416709198446945832297409590021769949898989725646404738856009449524686617995317855546280285831879581185191154548757954538930310981941469032090238363849298116170426315258039940109958116338653641783809768576445390585664783632628933815603448130122859447978745594032865538838317904042867960201349880341243181474653370991490430673664456509857241689308187592856776237027749613980227698152997977878656936825777028079062139969586466747267061371928717572620255682701229812422112136299174596953425596249287553814368144855614894015597811206017364826801512907662506297650513918508981416431936415770511082381784285076530227595512470193075066048500817934159078379339970699209381082825020098387029753490748867030159446294564672954666404549629742212708907610845647985782468454440466681292779911958061191738744296419380806403756932271214560539363158086862999810563232370317016664145137624061135147619302277542856108350970291053332510852501509948482070923755590281740348531865193635691101151444711546291740849731802045273637692231617964504843139405515210946450723242713615259456414221782946606273500098458968985139493002765904829023021185038216974639650795155063623672854060612170330593282780937810741655221618532030128568579458454421440716577432411619463723258444905841945193026814098133290919564279529079957328158072882880844100037182163025808326825934070310263644408561993716447419472159306333147812972676906751693997157115241179244158896404999206905438469231777648493232060894889362004151738047594232097486214021505522548912688011064977698927260435406910940152806655624087330988836864988747150330788203248611749598506589645461386149600509368346266135727646895325632541442466340220061999640300689091756056213221566112546879562218303337932354159272871458409359786506521644025351285420906236085874377446766105063617042790540901603496814441340863065091335556812571530615838686138003957617689076316203272938049172020633701823272601504428911330075635971960727588301553733266971999008825882330071110705722744389402075758165432864165579911633454202883096749445054142866816253993572404964432314503934613732104857436647816936863519281104757930150818528762759905674945452881692326498962461422055795469325327007744545770474452778362292252939303628470716010809259255638663671742751006586591134237482940119174300016397410351839798214033951527287002543514359749486993579237270048001063998840187563249618169472304556675887748758036182504929288525987770501815506605265360391749368796545144920257567761078800998877417919813425876154370210891791667021072749923752491992518257701768468143513608377561165826548987013142986801503458812212697731388839817299272862275809275805147485257555710588093223431986579673077879238112828809462905704637057397177623051953318874150787915500390416065105082432057820491068250928678688583825697563847869820956105648379545336705727747320757463269311021611172322973609479239159215374331659695174953501099653363428633643823472551898352702683641897515899665396453638295624029015713559356733752801124705015721296648727544483893181869545499066760439775693122468825881370643028668964398585722161823481258232705340330919734457284132056084949694887708724196158157726246422798206341952299497640728540090771734997362775069524817430395565872511095985298939933835720717629280452870765701134248207254450362103237976640178359070444820599996613327542000743188328530837563495036097010255904210243482477657241090032092079026122447256841208970771153853972684638311323277908814476328104527648844919207743733359933876669893966226814136550557932875729068939583980593908188208795016922498466897373539914338483686824829437524034966222785962325547582492310369059964187197647292912843872565422638936255317631452977911087142839374650129090996114875852989582073433007948319286137193901838373820150011798350670761863036901391227108857219148682147610446204109168013738202137206940305797094240451312326747813327755955417591427097150612709087539432076432617397493848965945387198688950081885192547579101993261480938531846477382834335400786977871756223335718737739443878158825969042095534044135286687813466096720280826199518642519491971922822726286722293505712574370890218202332104472855878031512839674194906348283482618316015334414353752360020828682657109727215434830968214999134033737232711914636554551724135864393353077039126854067485412677558190159959301707543871433542586498228817291455484600970014377998619018734558123433773231403817051665354615853452315366929206143900252021015027581620630326374488510851616351056730536277420955837339483171499432558577150675941484845859913551798492968788591453636024298109893921778955877069122411840898199800725950392643728230940256027437024162627062088636258447667412310164792263898987735783287294492177180441813733985093063859724353192319289338677184603269387048839384578360689390038157122219682378892197977074587876554387366237593556309132710095187944355910330983257531083059563587026826358768793328854791505480991133769971967211092750501343512487950987952477087551853789572088113421751826223331297338384679428032250240849208196910988228926472814243016727338101548523055745475946579292650609313107964245208404023858276180690723638462339351863402277376534084245005929340023490100230995044745549111423650165367316389903434282028265863515781798589695659744064293353899547192231403930324075894510741027896479291669618002059393757324135613017350546945573802647192089076472930760019736348295660324539301862369552702095582641935107298573798346970012561383633129839227217141292669142523438103221512218237554229762884997750962509428805619255769424555252361327178470136302756840258656695100079411027304272931389330866958777588060798876500535523094131959277307169594796078207498427935040020162526587641058388209258966823794301076787339984200772256385861153029505224990407900453631509005346299829805899972850041939816763587272811283678494410462504241220846412995484479619935010119859946498948941317441291844484531738054755704347925725008485137934548699891113784095416888875908625369890071357336608250085351906666678960921122139106326753729845609940413501289403242344605688733951906445412329334266263680794031717354209685257249067209328001474680866132673907152596488725802617320651506044412668043615592529127754454434049400269444089105070035113155426559849816376030481794619153417898105526074618760461407089694947327817209627060541297884134311225882169109245423047236566442427351902308016872392964153498891089476890419971411851705074086888460951882287967939930278941339402160571033555026002693565781446479672806701064164610156856002475093948648254334552702063036489924597522128582450530073010463208671034594728718558375111163088214916529242582247303961221154366841936636748247805945841445021022100083526443430614674502492063034013368707089424832765151597575769554388049409749996982296861967837504753475308427852056339415778570472285636972064179129461841020566609620031271254934060331027779274697053792769899944990481273298909044278720321722207732025762202481499146092718523191657146741705937149959821897677626665069457780441352113017928807277055491575802624660796600584252444504818681938996748825024629374511255157482616503608886997590121206718243275483430346968660194425591164452682464022718240516966580443311743753924293197047582303674256488177942088075871279727696468259092519236555999600846462098830927306342092245655002214316358050714672110151265428663234468187341900534577295741239882757103489142648973423111257395400410417334408585934945481545360300585631578698997040129045318999426936301449517952278809973676313826641500601124580984523587791608585516261489837648807164628080678866559959382865234604057775556011842300924868989062432673384772180737722505129728587342398253271524686336082233809169858871869643983828942469237883486079364065588477117601040089072135852337811659744889569093271760116042982799580336975211967263674294679987873853351090143872278160665215047495610609153995812569344889951636215914751185648436168749143708600360671767160768027560456702179106760358985962509159552742225627427164751693651857140930268209530127736070305276200893440321756998273715349521673408582452502820518721203242744658841202516861229437031891988290612028310202322649221518511333410829388657644306228597489855383752824602486960606288565852463126363506002279311610703852618282322575167108470873498936407472995258558342318630084813800658161326637388778054645846343587536782721631097474824155849053361726673850600464560178549233687390869123861291554240934929364252173709964414830947118211151384464027377919749964982646634401781436578850768131385127252506733234654537879011345439462591023014584594047370137082640618998210739639027969206353417856872505610214672978372600955609115460371367944405186371365883352912569958096337057705450055017318257277640846141602990334484946503476774103889831660898985189837922011424267528929215100858215111950454955640411893649337532661024417833941505417271625497341317062454749290641313810430082556784021224089031433336731627856730055831675509936885681648004769297872339362713453744893427451840318925488290399089515828289540299055720822774939680179678170947314383900027554615030389692081738913021427192439202765670652046216231193720326453352083822522047631929920400451173212466969637114584572051878214151820403085529592236052197965597120074939821384457116348339288989035526975402561669741189898359366190537376013526847682788482530759988590748637500868249956133096237224534879271076888246091744193750470543485207075719248759170691125884180462404022771386536423157754211100780251085247223959164482534174303223417758468332736454030365217402334160986242927743133878266506018321701797513373009839243155567090786334377194371272690996662674302191995957112074351076570205937371956532429373330892386596725080466969753609559039979216214420745470215640051140838920398182818604325736809301655734430779737709505034237742055111438981514947165884431899384956114991275050510953283224564083995910654143620171558642629950125634244963798986089602965837554847596327776251291547103924072041718366946386096551991580607961227217858324797065719159393759225006891384951915009286692351072900117097490323019730974664224468131835706957352098384967076744724267948396260341276381928349326346775351814195308112401900335982253848009850508798022588377305156766289165866775111975922292359992170752737377811142762024655048654101766727399090483159813798658369008668488589627773271966426440352490890202807324613036831188056443045877000524715463937828915009030436599787846016976349614529757063125714166918495369872672726962585947575932882562048802304706851381099867635216711548394042652494777574400113435215706860462135514026754720451546709658909754276800983385347086683794924983940629863989392252832203454544116161367184158757187638342107946316782700418624622273730526663717260244335208021359026536117642183461285563567064431897335595676174257218291424513025757373290588309577207797492277427427105239852928469059951068930036324102031081341639462725235075978050025872864459109856774067610988742960052810044164808407114551323203053585318167143787450254980309567175268549563991530325656659874478437082056927396094821609525931650192405891905325593338101500055246076023859303786865418280274520217876136842303595944914712165541890032757833467433285051724004948571386085249924083976646346977165350483402680306680364047427377120329901830080481306789740979508314876138101335646708861063654872933081354435201028929594034438732172494684903397353182086740613477069658841201764105708080741348261301377492492065557123572393463701756124990840791352779183841147297170146439330897033402109015676485681884866989132808151902234322809846820543526847251556523151674204326427522115050064111692437019241714850205752191571033558854261564013708535818456532906772335293657722336154660303762627662706858405564536010774297667395418392637332019094728846134253870411106610541252552567793295762164762133444651864956030993684426296442258708804333282308407252888510093448912562926815170567477063745632059304649180810877805599621937223774121903052065340336399176367793586843470029625536340514147594224160157873785223161074418718327823045695199428418734192459724170874629389935924572896936747871007599214511307181782836574375265736860446688738637950308384358796097210058283916032178269402706578440136293585371889488233836168629494868447128532948354159385209442961124046917927777278416614251797375413955543320037927960371443017108885151154740209712248756617290572825126625629454169620190524832919394883844819555079152569289145401704675367490180041126155544323878321784883526453163743709877864305991624074601980144563827633628895283828931260857971489786604331665231459061043578779435733807048712115807427354228563072224780262380563798369868683112713231780157197961534833156596682786675156307763092110431234043285614083988706621206501976193512618884670032933606412856415842784298735742075567859149549329770945553086255916888718459064455089124333075965032364885938993602173066419127193093890483332971952434027936463498990527349253860520714835146574292118432974616144094748804673258868137727134233805909431307280349253106692517809420430702084134840754607447938107544975717328650146927744921300655344171459647785778790344345630790435098606631178004376413445423225007269341228287940367348774497226138314269117690441772004650457233096979258453096477054179042846721929911649213924221791987747511357719313133275461557388313686107785210151087713397367044142598820154573850148933346586382566294459429373602028742767150633129672380151590680727389236296731953950402254604626507998193990762079491956212993415339212162775645696311590457263061633477290061987843895229907356960372697282520547145726597215096190525292377663541646348916342020200983453057978386746062694683405663581362690954615614643721646630406290924090959169573160999525132164217518013393347807352004843427599480121288862348035388147223904389120671995905734204957192929823823356891682097643388495640426952697990727702364193996526409863956319906228703015539396812349999620678417699300703200256311102735912400215651600850403595954226939800436891575995659363371598866525472269865264095951614511798400026461529152538364125625439039923702992033533111407597316276936131692238079233575494494433376422603470288489182495042753385049394644848808899170929167073014809195561985958316573178066767532023575100112273545539470386811169695164488040253329375590031165933886333819852979991764853454829417619502712690963688768653429609039088044005833328532385520675457210715431875178889918399793385084906230599932875119193268159611229145099730160278732779458097931965097276363981478983415092329141294672774599399068968691893497920335760617623807410871603272644171305413925155912164677067282685576879416235926960942312198473306835916082305679984002110570113373076467540201756494942374100663322796815594557214410991348160126707402932017984201675116036535943661747804633639915635167537996271968895643914877945762879526368982976875933935661301193082439255387876766562238865140080364120794234467979939017161850367213874654790652780816178286498252616691504656271974434384914499562073419957778403290584478780868115570435484576233842150773068453949895638839480492940577894971777734831834243571575700031250530160833637485903737951738191912896299102961381944121106862129754567571819052000947105449437253072747644552788902739983233015915062577433846377967648802071664034785152507180312738585024125411270597201795569587806411751869220030653819903923971456645650952120128108778390815908098876672973117714023054734121359046465363689108621724756582206074834893760016245403343048440208286532651338524820944886607226199548553362701727561818316666016199460500241648618877485409278683725051328370977022306787904313891620002345693421811057161748565846183880854370397807774026748629570377730967417849183968153822949440261639562022421591321181345422188306805549168497652387767361085161299294572918080914783246715955143202172433018559932316611230754119395056906059250631531615566113164884013392501704239884012527366063885822647892574780586333871326536832248408380910210564535494581023467745539309270945368155519889256193932158684720479047813790741491959812572978595608138333185347947228529638981690125764167503355372553204348741980796956489629808254350651978968355227683556917834955868452714590492057520019256304464781395560374048524302609475865880066163343766340129033550437931171701486116011270520415448012091672882464888606009204964178549931927308340460910429256177674491055827323252760395628240773110194381978895797843422569502942226480524198478325590582029081330137105797066132123575024459383426149611320010028430140721397019620451670997997610659826300026980825268000194703435614480200403686786257041612075582493991189872878546976950169843905771556817559733338846968573752536022163678226768969211126869470553185380690065764868670883355785601036820933939066395815416486204781799476156562420162150356982314121733455165136251765054816389766520118571547661912538756416311644416515029675532268268386836930415032302142843226353586762959393156385690755788092979905525670558348013625573226327535547415686681774723780688374657887324526358915267088760659484276882892863301849110439480294104655709618393861380925929759850844790631014129332676360708504708186789349386927529391567860812070608144098896864787300600721180038343564798011616834417306508693195773165777574374441462349156534558112780624727587843948290213942944381815992211691038118688555191058671948864322572247193055999285242132246667933812631736753215302488804047379749754466619699039719367006619987750071485214620372248212779633862765610060949733514193895291901535916155001381486100925683861615133903569020201676021975704400971049023487104058347972015955055958811203854743465860393381875629086582200275272374219808748726263800878476916700434567044032764559875845254100036078047666833316641450181856318493577436287380155181737642319108770429032023135633431632306126954444374134974369294300332917581055718014987752714189979115355377930141579452086217808225076641196543396380138823150088151011582991918910698770731791866526004693629108825751690129702216888668218440193964135409331432593360161045199366619991915944885269852815456776584823876165205510141384188690419019975864356289784669736704605284365653093866623578906813233186257990339025782586846786234689647234727006044248119493304136925652400800070286748971968174550234599660652399905645777766900848385480187579368603830530338521777562876149959700545714926796328737865159301088840933786582816302044253556275867750996698336857315236093500753924244418753865096901590059748274304816602815924058102473451568136401992483702965634638098103784061551409122660848205070738459506131558316781747350645479254825018352278877158564698957341187266205592421604285974008299526655110568193324278545388740303543408015456789047329366422041816928598037694449826810381775762906633889256316657550152275286251871570285864459414185492179854121632345491226315912085675087923127356319786738503538569708525272347858561681515779363210082674549557050256118446243027322163699086961813058319472945196185510378149038492081665764883142212025358386810240611040022688950185452119000195422027802484863875000544700784261661367118361905709691827547169670017596823226508016911952491403412311461421638844204140012881331658782775700921879255666949652624433522685518259336015649071265573247870506361363426079958038897648525274539320440734546144179215628828039414033361556904430617130560708980458562854493242458492932111270825715562111237154004563319762114984668437771266955965711336119887379947529311936917098978473270193412986583288193940719252709107986278286897019068196886206935397761196858949239518926860603284748338388599674818938051790239956701603376752338666044682555677381327678202322063534804970191373666409744026517300707028333573090046320768413860591735272870954992402179676628940601052249208022261489622795090833126020333717752946827046774129139235358881860089388907237727678404880959585003409713737980600676775461995053435684995210527006839748617924774578455416716186367386437182662377536700865681572721652799174475827299474133489617572718068950965668195619072796962686567036115296164522058758433644352532595233332964099031893870847696902852298361565009956049693947567851338312697592512423428204801308905528544726813619488961977312124889819978731770617040927995762610406874898496638759175200167066552853173061633108165704750205286807939796113854522713354516676279102025640452105623958060749194268569930707418755730878063197771162558432227489883543246067411824423913192425576869686142756864002440284731120538586856800376685279578525593360362167625515415720528864105675817610739736740609287463645758850097169643656337415899716347005911232387784524631312060701457360780633750123506889179292170614480130821608994522894059267393187684921134949950444659612032689290055510972065084593977667165040771674440090083849111572624644766659495573873351476942736509504332625044695073581284335246090306427639821971214958293222119546477562006049382927757828920374732972597820247023543169618756013950459478043224062635153542072269298615781354768351467735785033737164758211212233808681425128290531838331518086284897825395362506335956724739970916650265813585837060038798837834521362897639741304478039664651955272007214426640014892325564357968764116924656024451199908128284553526281457457082777422023659262580118461239330335232976787053842916467780964907706999988552778340269575421923988682611675720759183248750910873727929945903509297225981439930884578661378604801006331246230022853154453023423942188589820464243382178096955414077383355724158842695733198417584206717225053732758915115705975054134101705623248723294062256934769705577952970483912606713688905831927307811331443507994705398150156270848895414614466550367203996845846537314047669802797829279553019180222930079408816582826695422529078637153307911347026366875568170444473125911887840422788768769747129159821698332873052852450321929713266643143368962672798130219172691584335970478335887433845993807768227519040175088948299234579640726792287828078994177398237234117120933400917135302383711177581010236067730031274331268801742124497516081595213934300134938965887600749182702214399646741691126704266055501261997090938311776471248912323000690174638955413421159825859613166785906434586482638425228749302843000782411593506757687493499353462674827098651941801794093515669112319257707999997637329539970129814573587351389094693438306044979807562176566307217158533197723658680369917757525653288820073815530861446523753175901376341637697020925010794389086805842756733421885028939207295003120554320154498687097942701561429241142966735019071230095780946331013210680728864991078304124332398944373683048098534440827760386226456221636543359474504480827683904662215512057504399684778665756515072866306140469501194049786071042625320642266027570191194802181925923308402442265349448140616154415209596591423237229423105674595392511595772610951210997697595889868068065876927300254211901499836097788017142744487186360729896645711290135735306320156625535763316554016627505655373281178108747159579202640948777660726940288798711738365457509161680843899239058285042301853305466577077790882556709398273532302664305024799984832209621186563125343346393901071981978785522183286313495341857635651605202364577199554793456037743802754287365768069811979576780036320995702832088157463716019347687724052790114714491282966896563648299344263044242135175569788918930365861490774120398098084283689081142780980885206735284021278793433187766241383307030807468995135342123846372913009622780879574618806373725896789493493183804345601125885516247740569813762940685809849842813958167788092451383114595701220506305869649783677910132316406307435329696643237827310376674228077356582360540683487889310111440965810057493110458571325143221742594702822933967393225095421484671709773918489313701919683880587110114655267520392774223535729393524856178302994384083638438488367620235855906920999499918229566667356747262096396134135739300848441746929267270179789371758881289819754668832010002658687966380082285056133639530447984382856601467630985094070792939928355707719102884410366110151693932425760299939487504394374314742341819874615441015453098309760649688572996051344879944777592924464764231022958118656018725949628448004683886199279669707516528530822457221779443203175952691693520427986406302602741481488586189151438781059898486256456555703618885341897755444532965396927056300189776949388753192370190531807645316500829296877079574077707128170281357881825535833320799589356054004749362888505698294326880887347423468356261212945681359678291431720341994394620496070013288293792133346314468772034135297289609986849154365348229831157197914148530533553041208608538104433286952654686907229070940352884309896158918419417554197551396292454612971317953880744858680079507463714916969414082715538312407874030554194221691204705624408057127387260791167812170391722138926049197183580712878374751512020862672173587171416978720549057858143448963655035329351807702986330024473080689615102895881369041630903922573910427321402760576492765026160328469025757875138752399668897491454691371854010913057122708084146970680353455348722471771707000151400935607421764308351737279533098109400703510881425335726695617771777247159375049261261877958382533377220224479141389520921406933045205033147566451644901860425284915364054810782621028874612457470902539923861527069377474604748095438381540978775150619417425492985088552988382659924958268141628880310878440541202286872324133673271514212375821901178272823084642647336430873295854345790609463938310918111215999948664016941116477086649768021830796114005626275625434289798018216549491334146480442524501792370394314166207842181323193772642738249390116293500643560844942319187234055424455810182229496848675634537071629018393749857759840523336564682204937342052094239638919619094226852844732806439897806539165555889495911785121423782055740145112445443061294815372034344164481019059586375849183553629963785020771304418583379050082489307494958242774832790282914345470693294829866844447283497436746776016845073288705119417350665089964373463809595568989144115637430779313313815800534663447335278325378698844374029430470611462632166857079659228842139842065088464082449150049958579222151607639616409291267385893718386971341759786504949914710526093040339979666764517347236021518812535869795104222993530582579675338063130328605045006233145277321767746501716715570530760243183767318006539905941205632915485478838520062309923916960004274269423518050039420447477328100697805908144608347661115779096820735351517255153805606147242812093844042632426632494311932773877227661448815945895847232465662871124466971032096999737733867707714920460919954192748756380658316367054585525061768534301646000049421257757976601123686717220901901781136325058720149812861654198051449309210006737969710390480759015403385396093497081542286128430813690614852669926773011195193293022637225668360677584818081390492101518098839827096334720862760766436209624416578187567827935606159268222808408327911067757127049617684994757571591215807101834750914058251549197635132712564594359761359964773599371039661474308136843918482492918227155372872096644552438569619840159625808168834448507026069439139897080211880155062553291034864663234938688163498427648336861368845439251467458226198281782267999670659418279195032226809683856864851447283951641853313357783849160985879688682509689624727070535988596735273209500917530691783616597963722674280068592940595327480962831075931125902824682774365781130531318569852522744452810668996912843794406533478712974046331542423008821300802664834870667538527915177838917474856671326485014396153231028877375668457251722238318896112728312967006683679138824678603153709875507812973401544512605616228130947530143349549966338786853499405070445235767452314942250872433160566609184782866773800123485144610595388959109492750837851079559773019492671300240438596244122438837835028464561740539812031282135950313325747824665070551326296275016305982085455361282742835180265235997616494454024452692209286741557666199471954138582054240909571954661798028205826429772912735940635988443708231905479132706505637996282217310308051434155143604914943455829464036367277556041106918870802601849891642875222369135759970735377267290396799516934894260172874717937305929109783043820164115173552942482354623982368862865701336889342170052001800686565511448984377452499372705526358957064450589706146173800538535524826542014438654344963138130929167878666163572486379568826110588181200940048201914313383777124168410181937641819629396384889874452935279036032937679327147745160896441185957168320541051926540878899534581785767297496176721780152560105049068130382015625342834913368086095189341023006592970552163902386896512539877273558369354039311820635441624153983405125254688346442560780686039590292769833837679179675414033636813681636325927159102406881364949105848080416022347078830362040001640836885693046986042498058499961573635493521911824843396948250877441830459946258542009315652841131589924442875322479535240331544643411154787396495823598329932721699829721678747818474868072404884533414390559231372629267790719889813198712171307577506079464384050975507470245468583583604229401298584582445111715143305720008792695482328972683288084004729109201080831185081320124980202784896742430000194633553044998088334981681161275394756994300949541490070309566149381432284897845693771139386047383234678306384660094070788362361148098437675593372487434433352636550133094454074590351642030631072493683199328003320356199569501673233967932367041876281911665038915906370548344261487481425831883512014472727187678071638881365898815778518298392515975052031283083111453916560317100863779746502930217968736509933319452923145057384136369960405873128328909949479620629205414412391754201275674775791762115907445767199770034876323084885722348935999915392932191165860177521325835796528171372862749023720824591747608583884530494904858730559740510841688843845040029645666471234702159651789619843973056765667792536927896325547836997391251875126071837668546329493583536953997517515527687824414551218375465723994894506020838333699732221845166995855863572805104022414664887546923770885319955020807987292013334847026154017799995216195355634901630788343176808341271668737115302728096167804757998706101596622678734365004570804610103174208487421761742679676875889370253141287807092485799130305082290482705854571978668020646305089693550243326178661667811824873653232574394515304307053135879983808980842469039456890868318045631764614167703941415508252658558154838603778315600065533907370093584821875053600967788289341666409629229071288609145257405492445867831493653693887467126850186291823261665994524487227273634323831510763970690343027005963601441761554048881607948899077970816154586225875510642120846913820216770940136769372096877292307347219876685272153720425605033905772657738893207870558932395303906118758122205656106147879206431766798717184109053685161269224992426870772623509952989056853761666174423992849009862228327520542505573380293102572278958167292386575473768471158487387934448617002938695981466858332602665921488348213857411227510185800818073241645312431839082826186306069247306625366972237206911564382846170788723810345775531441423879477735222076886814750561262207589870796148452871481242162692439724105890696254231187523598117111887843841175199560529823393163101216093710064053261481023999386397516717163117186120560347435537988051767091796223443153844239140943126811182047369232195130122645606758795430300473273673995376037424825695099517414445008843250423414930367739724938808602902200159511531387786381370142417914638153664864361907514579288052445024099663495643482688417014833981632036735399249145269021464408849140992109640743315037810440493120420829397960082870357234218163025565609102168191261048512432145509990056364742711805107066697018810115408450792918410418658651758476055784564148007542845286115493203386021635694053553583501081100661969724115694716134730191044203354970507973424432018077433529704340828997622891813448574446429589231937741033230316182313720874344985694086551934204551853012982228194052254998495082326415891337388767321329167942822257690976845411370245298029573389785225126474805366712605437644001750040706011026555283173327063813939528650516068476119304797340665736907989459525981949995104412209205051267450887666747589654365438413119875801130270741793933733488252832226988456442884971599851411020201257492827100125376091163107290510997081665759356325994129387614128092852451368935959667480926978602625816844009250651480434225878707686748510396265349182185277233761953621312980991598687749317643215640754506207716034056739439719692682131842482666122179006999113220916579738753920719950041554920104117617103460697480359184029928084045399204343063159376990806335941098549374232904432139128284737782358185143314714045375248403163078681921674574266596363505492077135697762803914445041588641706839579794565716194321042167396683062278140227183328126030586462110005784578917973688972501764301496002046632463962200189757251355142729760681136679550166263924695520843038698792671560440623158365056724567957580677064349319424456073002268690098317077814191605772605764217215203091162641102401429102896200730397672683315083851176460222926257451907832858671506472579596170119459388702602420234750273264682987700271376616409348193934417948432706627288308613086622375342860322920072687469372957247514591272076754995101923029238015528637757549593507915540559120170256861077674686543169978931974190220335352537307091145141937565764680576761957272850706748890721326865331081468990291644497942291788340600309449778816463473820340893567485473640986262180349060820461924272526087484547181108931234948858858937535347692161760917918539338181191731042721471297226884380419428065431988183693830507370170134007956521738521284436663470151344324033496526192497189052147617942500025931145461237440846390755564794151691241069009789494837144106541383215525299460179558915978107002278098020627830042534712171362577215562929492637440707930062257523953270553042808008517072752345985011736977028234321944926721231394621217631136854436674846203444570586640101543530392073239995042356901907071036832370896200603913736171850739421095078787095909539780879151806008555511111150096196773628291128135568617302082764065737254610462906012894152610989052367090985414450190676565139178476401448273888716245317500016472525619595901336226653799517477665008739689173549260473307036988667485672761145635756949843863482550226933276250362905108141867314163983378078000389036297209638466487715385237629398818176786011267471242595379569582478962106242277724115933629593527198783588123418538793445234973592359731374812046540946488801885139157235543749516451654593071439255702338431912961634617192662552332841729895410575697048954000548376761189778805601623445122240562432449162552297695018200671671469285458242500126922288650231978665827910896457590445349500051281949005931789621800389171861116042812567394872647389599347386688320918347711938864233918867987610477981599398139719966059762078819019911769391833105520591656685487621607701513468562277967020654748316268631210961730228038199686937276113422593788186886131822790388999377815703233424409577664224608232561724483108206128343719890804403770775268950712951947598483775768969822551844929204040765327050067274325881084635244121795469680735270793390526361753799946907654517171783421685228513968648595887802247942423870681824134404559079038416397229180897053068209716002144224798861908154793619849013295775554606306296920928932306865036242550729813018843842883800907848930259718008615081730524130520874286390756082877110961662390753822093176334726499962523072278085021881650362954493067397427801235715831261530031838305291457770371710977134500923680342921500626024371014675138838663423078512050580968958839548214931416227682856692687245107878366899885465106398575084307535343485855119106228237068287545570547935211505406970341552934199137115034944846392412241673924501114451029453510034727400915994779747752455668900925795981952639457096369113275995428048018971884957715078751238854652996631396666444800317105811777250047223237868348134602994835313884346877458011652559404455707728410023322295671952915710467240162990562932097530396500320238266609434767093350512008125202387970684044396874056357773948677491760573132985805817468383973770102798756040390171835563068240942274819695563466091624614307598907974753015060088152753881251289356835491135645676995548936677544081563622439886524095720667938850903759919354440992422046545245005177089932103757763492443344892611461169473421198844601682182793083124702584175832621733675567987388168773727741542689918242522468043077830599544318444418980136285097114279348060508684041430941773102826078959323469438642356496635319431720528995226005503437674409540075480122460410546572681209679026067910856079209997246556262533888992875920915445302232945869180029794318824484215562605168443273264730120543136870871627388461732598432038109642048364049121921207823358857783284896223122823657828963090196454221222314976719929641015149242064348198443759456810673868226744175633227455485345231798876371581820193545725637542619048983714655024049251414063390393567931946250660586802794657345061851444086615145385191277108361992200213221551968877600972949132322022495278262446247011437201904239764926979087105487765032250025833375867101067428002328895873678495531074953860163060853471155836831133877204850424195337468026979196564990783777720666298654606832216466890609374592713304043976952900206516025352065249204356741999189873240549578534032553311849650840269225967466173295693755361867780438034386816896546040409801209184894654963725679414499597419434383828317028697534871583038629564029823390100414503185776264958463992998719604843649472848930902955924772360956705642645315338829062539663818484367674933147528322882234533162225821281543587898638050262906683299291958431844443804256884813549175847269476693641671645520660417672533658423579702195286912815863475161238202856592573165164056751507417230429365583289869358947434441451488740375349561426883577876920742739562014448976149513684863860338730143007969989945429707497354088013995325651187724569511660665744850529726609515396833487061963220180270845080300955679885660571702018868492739648097622394967658924091273776789350496953967247770656441630403696786031499751151013199536847663484393626665735500009704388075615142259728243965809260726762251009906545288549781190435354969801469499097215331045530351304535598717328694642962983139786207046740458493878511709553164083424782806453691865671713377565161999032512062426740338100414546494621485104440209588054657216017985403010909281610236800902198020803945812969045555119480314018232141122940929748906631236893354373670947043456037288965314018572341077791645731079601962422352844333625578919886254033628989654757974783983677610348521333643517394890864116040758898079404481444900904651151280913946788003192113919741752838399256174118048743086054587396055990326553306559170760111177285747097955284001733356450892853110556527279500774830124480506675387748587273059165371090377306090191787379258144736820563721631979336473220101131093147817839539668591613429590567187023019619250706629591106422707758640080491301794341165970410525642520920233850632824669864327906674815354043347472450092332263519314307951780567636581206847860976417380102807827346502865176782928842083190021547851714296074854629871633509741475897267641322715304086327058624901729368216006499234733646609868232998143985680655939426535938213858682373458610958721475733254833339642086421145441865526796542265017357612968552363706825704288540829832993998649038852322246765238701233599433247312207008746547921754640067673842885607522507484075102795206025690623211941331157231873034946267637086951181123853796444146596326424090956827595641041532589330433445020901429173335045436456659264793562627030453199112318619724584932757826485621051143630587239089961498491644243258622379528041500864244108222321373063026246335914626674970728592158255443584643009511885748665545443099424034340596934995941325598896111954475038134164019172964666676214825022834858199333156761229015714588981792583461136891769943355892783232819492046938941715427478817487377208489971982233310875055768867783465205902466499630014049855859505233195713887858323933369154788446141664613162935810902172229319209736598074912440094466739100785538293401492189223017921184276182447609886458162639280399854560355209222411261596346279819071098498532205511564242251673593192217449723305089767965066421795400113261413757165615728963418348760582709634610005550762869203741181278639389159976301985723432646440196422732515137688315341702737477130631147820252167989780278506328190294500614756104475621151899222645007392441698533102479780176924780122424146059720104199922839378029584747256929772657055794356069253801863703401284416079846573825726809491174864747974379707845531615161461070184244030190733149277456285605511061140674342445066469674964366090909297710923043027395645683922558640511882284149722084803903734627566492898069247416582244248420832503544345564980930859046191933485806486275843777191552787999536044503746836973575508784154181370320866093562563393973522573765040448386597341171313264422326387055221576834947359112577303667315660841078728721994272202411861970721983935742395838802723803020514975340310300211151366393492152501168112360810714651101769161295357525724358016294166916210649086020295462450748892833968987126083918478126512561143450671883290154029804083005693492411479036787962720914923033401476391205225908300603397111548459058223969491327811817523565089659433647216154482215571904240668060655811595492831794148943963039044736144494937386928649310014701979019082783461882648727553905134330890456167249525114926870835953074080579104557267368094864087589337760176019666500065449559275828232353766317855754179178371797370141022514008911529454712123016988337359535122761285256131808791231169210499372638119198389968041454190171215682902273742341635112360124809257342064294317898440722524932125072951398998485227806017540287824034680682324795630895511645915956995240495690481751919694750967738920641188738772978870909313633111105609293260600328451306064780103245832387668264327501585408839409051373778480272634696968963375090456437401129503630149251528281072216968906549179405930901019352821476861786492938004240963905011280841360176651933346804873234155795947820089544051071676705195965951470713336340884151890899756421638983690512515801351388414306998331088019643352881787142029928581832176933859652157202730178931858630569459551278191289467480211488972476714841147732737017826073793938815732374352529129264979663216075905487169188431044314349188669824287502161354960397947638471011087396597376164876250389277744107429922020361822615295420815244968605874547646482035950815119501002825333141532270261610374454126401743954087461782314778774260264436212910867373750909110613460466829317709550165436819428815261325899240559355903512678423114825896476819427705598273787104045219043475495367534676474462441648764391222983513499962395378745222952831599983341131887089976101865169494601687285806592810842624770980824454526545429321187011745091988128389489697759533436007011863518010510849592132151751516906423783008061854493028607585649040946353170911852866958486655227414247615440786128622789762779245848922361655038616541296196713254253050482160576861633760440523449011810640531361965269248314630710228325808607478434852843398724064727719290624779228610259560687174558688182294018941104811457583614982517580692909852589921889902771343724525994912911522094932967379847331654808064271159807766471406761213420657507518862258755903080689584726992121149222855106299405918467732364366607813560290674364841860490495346559825411988320868413027375465714988650758964690444983422270261530542919091847248835361150597143837199090847189133494639256653465774358219337024779754910790852288676828484141539781172740863379980694112088378563997527091290196018818005291156662476452211777580797561633082118040465746768442125261916753436652079038562737927270932780474744441191903214753261311030356516797996347821493379043589838377367738169182126445483129495202287404253507781621484143473459436282977175437187343467851090282748614811707182162045095110321422140368519291265622295314188010359934555330697279697813572907527244060990757148837146446724210891207762146826820593047280503200052719945407136770673369171173856271717979942408217207243159170130941619564531599560015716902131836926449097112665964448012485622208490503885496498251223507748402996581390498650906416058931435162296007752905751565411436942971442037257326578302602629823168921730223959427734283196216018970952904154605354980303439456222835786481846621118313101104764816117676705245152367193029057609977044901228753006514744247285399079184111447666806710891676840131940578229055367427362485900469484530734980138938510802580975808040790395247421237807477258403906712263356857256167400270456023478621745367273837495055290200547691166884876652668825233586102088745887797022493128651835455365584016503733002254277682932888848994368220423416779815196461575703048778313553949875089751950558570526393122928054855393397824079328342861697580082118895591628554820968794672484346305451091518857100763812043759278718108972678922957817993038660440752894798535717364892100728865868169316949655016619933084855787504272093741982290530128799551308770168041357606725270515184343706962343886956584340574325422528097125329393634171938885266638879394383548693206166199570974258896273441177915658545563206144294053792736164847475263064795840348159923301451318136391484651968298224879304936326509529717704022275051334734482001417239825139627754368112893539140448884844276410330287257090169958330736128170488503624298187126510673221854347212480990816306684251128342912778470187374748812721098781855274209908765710130135401932584002860381417514062587101556727875014904110148044140978615658345674640769297542121492856464930846872483713115905483358661083510751701187662699662126561532216865407506699383239155696642170065771884764376839553100969572343412847463796753623648256541400643263395085844404606619955118436882268311500947313397212971276602694608924896041587020042942667385530476661539982737606984762196517816145040279683188239903694492219429942012484075007144037350311386909122375674462043493901431432365498540660820571310959036628883305565414242369510918589606798685423317284607439881177105610204148185622345701968713660953216518566563254160303677423340317697016718088738805500901944227986347908953765306210225940234031767114765815575206500670833019466119728370807800414356798772604764546412487805149086609026535369563715896014693686683616657212120262174761564079729832386162237845272965578179975020583549938420766178847370464526460183143707162930952434419656597749013648795549533923745321008036314972508074956778113434092776576135606512928450834737409544644798959119075984931796605172152474296809863795310778913406014820414496484592530083312538807710172440306832346221939976494627870339269430264248801691815600439046879006403748074436994208021078177591512714226492859872837707982591240020004850934243498044625662112016474299789240496524627931027420524155652882623918197938739791347875151719220450830350025140273758803622777981224849531125422361219123563390136997227919378432452054724067291953855961967230162576220993011009860597395616559465758605915159915773794235170391070473161736348973271601810899019172479451705102873850297575579511498952172521829181674905194689971935575743055682659176189074210007259532186975315892130545922087705435220840423043525714958682749649083737682727213754906972765163694236499864933863990410469160905936358431454732912257723808685012909739715067518666086524382300909983846041214019129951528300203416798499970266158250690207866246889405201505793761860835275468701282584845445628207687117418334831524700427126807351465965022366765341622131511386239555208780611463029789159369959498384582848952621622737093702043867716553640033155284393970920628916688261106177650482114918405358177882930976377382297619824478123815082770961918676600493353219582514450430294998854159577645540226347867815001035221411596520620353454178599702445980551334601101927776774906952950927121919579752946561347862725419353184622528281571787247492698141985923710179779853895989636659160878152812657570191346341242591742413345212782533573703748188344029519593513188171922729553570250950346074982103301779671710578219118920052136847678810642225254513347988809534312514366721871547138719682466446277890317003800590841043993796821702048418788751579466769329032333522063849499930838381541969492604345193543309131103257213453581499420262160587332953789603299528706699886159114926877157053667804915189546558384932037715121890188807715093765709648448697205017594347697929177172296058054077222176121116149959988219905460882205550887113329192482266679481330284374264449032709115598831855802090940502816323848335285373165946101333020756772504203592684632603860662364840914716886824859991701467110747588721628056249701246260158236807017873331219285044105454372288492649815914011352828066891545261000940499220481613092193492114200518697291419652976290776101678093567125216082880095964088067643083687834119251246574835770138483255004995216468536149424008703767462429347121861769772519083879750689078473279926615627809989112031026431229026864670324357767168091422065198764100497959618713329522122087349821997487714245094770014053875792802964624486477411789388950864051553911540536982903224385821392694698821927370076205444482755662251907648673947314817854874276641000772303105041765047029392708320272562314929866191823062524957015298770244440229389653368861154034466227310122511497643589330867354081722678124924113515732333118768081167205023076466327510624763121702747327107243774578952659832938612294811708150549873810280798444521423059538821565331099106235060059376829085047652521073243773723449810146308477187943060920933057384807635832029870263273127761974091591085127665256483522363060014147968013406003102973191852624929914550079039173897392135072063873897206470396552166582180492959442839511211729332104778844747045172564683018758023768035141536357824450344805183350686160227148743547947600955551157144709598745201016310837869842284725372570410656759725157878402459178028889940911886843499826690536957617782057157608268319717051255994086709181647844107891728838998347624248412387738035100758421938705639554420551926101112490705717804080343007879463638095314572481233546580135099299169912380677254784531182003501353901723590911444456070999058013584725106184338066525327106274523771864065483361432967237679045579633826219120317660762395791157878525147474277017665222046801442150664159836345597382809314108826345368643236418189654151966659892342176755928101989282167787673568483237590274487500253900940656974172065119283259973046029710326864604709367336386721995360356432036364411815276678259384092670046677998584489517180716716102289188975306492338792088022221126266910659455764153973720023315924097801183153837871141052738035995874809670878461359338756534689991984853198145808854966036008494399820405797939213441100378926405690780744082656364112945170478547006648963191229829136541370231885125299612452236005006852948293216371007154307995038490467258266351664901908738863195082656198381667024501855499709993319671853845583947139526377178869766745163858298794763830048060774923494399117386794096217914059986484501672840677950772960341132958789293544256591237978979498300309253037748237066631065663301695418838315253044973855088483486597678079196876214658418011806543439211925502447750694358179604180476586844589623453106594897040344189091189214896404798436897037316478939897705487058758705878375400304333531196530118836638166845968543098457700067438200551767686091047367537008151269202541756668553966946507364082769967483594469881798727490335775069464753486643479027888817706714334024785753558475258240197706091434158006179208588065804271427538604523031110318447428989442513902392833469571548190279489593676924930816041692691775676090955387246791853929948762213465699343779501150183470052120343981665467820350810269831794430893853994835254190901546882227783569529317939065408154480494421478101690527655849494654119789357615969295828203271561267401985921218696093411521861566552152969808490593465210482004283030211926847621533106627171636002552487701644306930126447185667314741556467093574441537938327150681549612500518294819135106913888241557603720654438603952953739861706166777415900460916252309786894242342044460756656489745284045209716755544378977835852909671928162911969028179015021888224608790852827049981994649314055205483211280467994682878270647604445276132308702163411325155098894964266021336356442364949240787476014160372416041204654183792296216157980164169793004226670592606921522304002398800560854926345435188243903645150418582550435851656329356939799024179312703222525075067576078100141341748993283921230691474733355029139268781989090625885988067190968302443614243602296230033189935016382789511171182166615381016766287547910767876902071576258174194131401452432417190840345578893313944464142436975437354662864836406177405993969217560229188918921691653694100680053100111670225012874066510033067085508410600928598366617683814293652952964203114976402922530556275618824687595635539189263314799667781943270878838612156744704368303221377442113804072840530713262358669721156509200422029596925764602585064707061627727215335842045993530566006970324360259325228519884426946466810338692968138015466524370090610068121000604325464681340177043713078494182154840811703410991810711192764004463927854895267561175964986460290859289726606559450727771873091325727264106668414678639986487820587924825614627139371879686107524771649174185040329091705921945736683721007707935353070283003710480223495498975402508947434202403933303369731242988558474784970203405554567331986910644043958402345159259887974830842275757427424492927716337304663273272787693093669298492334312848350213894504709340603024736457466370285586442964068705950134752857632709614270107271707475496683660516399644576403750883516626261322260461245714032700468074854217281102641630932687704596079587857383740878625563176039614574886877869202079005555766150170185975170167683353435169902321271808013442417258014077431620994508311296039573755128617564531782132510390228693930359417825132321477794841989737165633153072076888593393694430184396344642725631960122686446517356414657442161077649589117469013402386670756450624572731931185146308849123689078747596077628167125827785505557048794427293488294000367018415363696424867611902100022278969882263954883844090402910091835481268768966378681927958887935198981654186702518122140516292953553408517078164723860483471687652619900516522566819598753469651276360922468296381604854173484257393545335032000395720626041125854950461201615504939881903745508310084800041145926655336988765616629246066591722622211502250156465716366538911614500583022431479591216506200643470214989367348240885245574430579283537746889022866459243772471831757975510892090925781915502463095048110102017044834460247534666225593667367409805089852835376380349552399462790558032265319090485418964502476232541390843930266335378909555354277695863991139090959107616053690508362897225043322375615865100748902578849396298345232698588345875665180191776552148548868308544273306477082287789212570865433072334956804812876356505981341635928126879976892008483056186058502015168870178469085560098007147923305899150264223717556489316587870684416438964837230461171442496711670878228450162984670158378779107018658944547180203679763426217099501050418004915974066335719385200410970567209020806760754740580536377112463665317000491739248600928242050541301523718386380508068020069511080668853554646705721448847967847844468314063330074310331332294098043634854752358796045243828834827567840619792505580534108144567337703421298245574297481555544700484248025078700139289416072031611511844128128397883504332739260711766803070505236888110266732749752525260241599134542808363599670505102824091002815784734250485795835767474885037796354014972513990319189296956174667433004759966689226539788026268412817281191045423823813071505780361563316986753693438735532089483326117835586177718792881526662800720924066750062756149306145853164047993761747767758665004330998699020174993920167730579567897378691095012982754541874728857136797940896080488506885603745795997082047475309280398772217514614290330451332368434451667115988650262810461756482469917002578822177005883566159180436802120723616901716651057992494925355753336534891869344592157017922933437157185962725952954982790865906890595058338775915717811441899594191328688409841962444511455270578831808685008967650209238006595360632325612613300164007364381886085506252594182986724814020703679124058131667277484731285713745230163049574365925033106565863307754752790585214891928771382881819190027281225815624038998081524058942390473782294356638759597741916823726503840699858958253725350869854745754014732135612735062448049730236015615132361006068663859197073798040262761003308290397691696761881510977298939229881710672673569072083976184035579719602382559626274100587809697330713672428004817698349034980842992705002906473048628147784745857272811088807541974725890362064592788438421541343627299779704904831730770114785426443935428237095049001730060138448841638703212653500201407833614026300667560590606400472990337590233799902557144582242655259485974810272342456913608373080727077152327030944355968860478982358997023846437188999122883374503556447694785975837043149574160013011938548951258641974270913135748686786891120361045388018103604097442532021382527053745553648603702484714294666977163652781706237472097068173656719674497538695333560629850251312281132628900235944887476030399779905346168885280920957509649888997435988607086894545472758028586665432682100883619099922644225213719627893129723435572542731791205020797730702575792108852190760799213103782420244995815457867604473284304208307787913645282475219275357276614475154773999516360513192279686051080241770283626628165480849543084958138914105712598202091170777259610125781705260312924549904236691773791760276534684895754561231925859880879837441641966950258489459631545622698448844476009778937602597725064972200943182520983816909288756767279418608778021536322456582062744773369947812924641807448650574018893323995329805163883517714999598269953096827439484307065607121032322939971439421702528675298839665361033013395422856037994984670994449343340431469691145852704520282312996017976922652768123682197483223736470606855579947618228897529707860106026619371687595942759123714815705439555490977440101774706951042640834448086174809002624767522508202085021677796543714001084222843695410124054430835957104661344554675771021795611166961932625699349434426527632408393196380062899071978922525601029536448693922026385043694248493811731264414390329575940344282996344987202870764115672552142488743406386442537579648332669317926083992219123900765413493595915717966236038583659310795175947528100277381699061773419920884620439598786906396910493550990226881738790490792078563500389115511247040028128297036354694234787762001024575117910373551853933359797199417072820211442825920025343864483109846936556180300222830503921896373349496912527860631659549355779956498385900012358660705576112984015856962297544763345389116035418945396538420716779452691854312456593566825268530852579385135975491721004444129256688264009233506052916869238115468374873924307537515085933376328751016773216602996793321335472234118869574817747649022841348321896959326574486866246218523917200350111069719240839230757376223255251090222843797380768228421269844172803801528931282353405538445409680750329134015755217384402643340435054192639900684390603150688331417454022269156596324625545361308154749752031922250933923717442933331480838719431957553725259453628208927838328875330942669800849766962832324838613915495328281100398250663950250704951870173347595029709857606870134391373444305657326166945475733885000975321238349305401249544758645256459032238440365815507435672393708174463339658966704590772960159190658902317866604735746453319126839164276611260248493755006292162206099273230581415281678941039345104003357948815020738036014220993294668983610555320036688205484265067462096498224668874264053466701842894547740563076314070179169392473278186560505555837647162589933779140931219569899795635884548561101069657934125349194232013190293811264464468692884412433384596692647038986621869983747477213641995781730930844771603539921030636797283221561392095099825589982339660513627213347899364008501442837305875038687224244669466204259148153590001019036578382777915936112559454996640432232819579339116497115831153178282293779382233871547568734868908949325073717432771586336838328903531970035567935533820376922781469591479914689396280982903856763542214265775219474111841351384459818231204180690763951550970240306658035490863231528347648766157878786949555528002170574263516202266673597156866172653567527984088066157914917588592844590735343066556901018917509112850373636942154037729013186724120730439512534924531064176122521471442606961162403955732042663591121502229159336988518506595831632694699671474242121407194032893038806924200691503262036828922695484998588259653508487648681609766755719179750069917961225991318271840542909728317956998942801978893248701643752111992208474125667860752764211875317157894156156070572506023869098796651023851899334157988350709041867078938354264565431155055692291759179035951818225336089320787859412808659755067807108171273961752161474340840496479389838567671327774234685035853439389008575244905425674915334649558386932666866128766789795039641751715060913680000326549930547803032235796706218505649785657823254586376411947012252360426377055641210277366060574745229015809488984395704144450910731851404111340139083524411229856486709938672956883299466148148768403860980610913495679813964801433505513462560320304368301051293050859778799927946175936455429445835059299409442004428096056904645232470132188499834064644602278726996772808490408303433123881365679436627841507489967370864716304728702528330789585871036911832330305754116661434737504451921072080776136996035182133558068537307719087236770893200233558853625289513026046532116261496906593314527950097065350084657251093163646761012871810327566203291416385661707425853708935557301663812033452116394643178418633042394258630090262650975606298705204361721306291623654725946544149009558493433858002008947597401481445106547586452726261792485939816014808682600269502534742699516794504155453615618208670655744149281009543969365033274067307346855892877097998963450012961680603800648198252616485810172173821750126120161885821179265108980482980186930016289340524174962952988223464612837068112585754928073911083653695604743112993697722291272806950773098845638648973531036486337591277699442494389850936402770858758127620614804187039482063201471576113041197112404480622268374917304852573777346865216393082312181363346288386901352304389761423124302737817536615966035465895801977468070925158202016658025049276960086910132033075798543435379008445105955844953340193270503775922537336310883706112948965703171467298087254996194099500164777778624200745021385127007311672626988274421780646236712080229458241563633077508460526817374827358568216626213356478952870298334124405991239288126754311207265692451438820158808972942736228776298344080149257413108677861879454669642808635668110578588407966035075113865803337071434059939615633665494992237888805828743762658692980550283245779177911120019137150971064907078970070851337582356992365631434429671174881069852648672170601256047035518161694381057505439635451934278732858072668900041969841969418877087500085615424029130558052699935648854196851761346805668914467741037086808894144447657502305721001802254015721445134865159895462039135825384247494591945492726196472984485560746773378238014560973774023853509685437606504998942106770497239927693935689231798609821236701105402278974229445032760918961811301541382658378738308020212122947387239551902154496350507876196154280697688815561516319427200804226202569307456623727015577510756385929166940869021181713727800664113349273957494806763161435877817183474799191332365592552782534514291805838259640388745352159754836197791702769267231234545305836473174510382675119039624916983241429684766982896370566121637143625184692223690230586642974415397402845128225868661720209108422197292825115637710271163527800871805778976648482551450420078852549888059141621048948975900661882760634889169605410010580760575165000598596163991713471440660314172240571988210558512668504462548605993780220218675623464268765562438557222387252253014810166895593420079532625679145051257807555584591440794201848342200290257172279042234139700006747097176353141353779149154181419999132579402216825184709790447815964801732854475680317928978928479563671762345722987749702762479648973064940799346823476625007505467562496893861072750905582265159987677948613761204237123855227499825918359849974975636816871239272281744675064741959096630040260057969378045170948627585401421559575102747289951735854349406360994259180502242153715220235568688011339683263774437938673475785117468125875671171488817937397623005272762560805467388381623788382641166068814560084935615479733391864477996261038841281889597832742660175255593636023031578434868010122413631910890640870295374536615867478514562249505183158952329189930095313356792165370236821938660518664573301041358687892945361346239638579950587993553275020493530765272788889331512515856759079203251300349744024352007399518106239745396231853609934899335183718538015894972897615192007685080801216675431820294327038401737125268459109850780316628755278347170639014170963464990391314001527989348363690532187641839979437074965028200492687917450938837299713542220274013006196601842339456324551686685739118365934871229593514808746312962071279398846409466575368385525318685867886939369582661214748130745080493977100108182750527459804410415266157436793545527934031604602629585967877865066628618141311955041077971744803238367993725997875977792078444615211950666750339728189569370362091683084426582833674474397781225875382281015534670974640073171820883121167806654385472921754222717057661187995162083420802969673804569533440958968039682077841987003152945661278180556362031876631365780673618344702800973535334877234267580628559881398450227577125391894105748622441327968900842905902360518518635421074448607887085740509091889780659412102151373968657379669545732436160060479398199542490457151610561076814553749839020619676110809001823005277124113161767421060144900212875251962098732066588084321781848546577045108154879984839566347857362243943715965261713953543333528637248800709452311967901934789849454170061864622680100919362053923042629610217305867444934417005306194859418408299825064811355180630542717991936392541808777829940817317933567307781242761843893070157376726639987541354614978103939482770755332682583211035134141387769985059446178304916479696345724527399831764159101010719743243452593821135875437356658405852406697979599117475436084440524719615518859240786566689959889402482570661336543957385405118985175751651776544002720127307732080107392790077448001030816430853988187152477382968908552535823294657548071237439211384439293612440272151660879425530195793988439405079859014973328574704703065887374452893154867691623480766402870909256340136303389130612788134190238815961730966127536888961130688111136630527006150702544764730380224645770195030147119603626494379930607975893508688746762772331700577179962669496866492805666286779155009007335622742549570138460846222959400719524736635559711391214573912256320115953156945681606200322354578933463010205177651858574014937073811873909561980227977159691488907564862282708849106723501738689462200175543476975985728857057267401494631250060787878234887634964378240706758588523644099286194388937261080780379172901154446915781641204269864501816719028766971974338420040458651633031046497153222814633570071446598676222485843037443757467993529771177286975439573565606465604115032893477528391331480263895173647403204116780200014096279539935225976207957667810694518741919879057519842147171799765245025573946986792048257262781252693709433306001841907282443793269522431815944689677211792518067833346735882677474104719138433917270096482630313381431558819823560564484445107156510799401505690619287058593664532551149550013667042925423600060407278247768626429103340002050601535303326700089317760396471226703873002133816912485997442721050977207315387225363637277356846292595743408325896520038901766642555376394208486876385286294561646603318330055164379276670109277494101653391885908114795395532730171955623742367865732532931041652103617148515210362441896728658376510293504041510799240286846393750277429192155584535425182227414950351710892297651279116862305365975933140574954202958409926677235313598296061885442538958815554089171774978061156770308139959973666628607005408374377201663829280183073429026744108061691034074416293426655611382927398590294263410181442474328240757244668952335397556350786094378399913434644745282971682925263705684113850225123332862826315832473240262336945278704815334401653120203813522722553695484936158192732261330795082980610855970450998686075187797121327887619492024644146439255016744203724015502361689641344794605757574037650554305274832778425287255296704496980676904231688423222168374714461978340137795353056125281487953740071268142141027381616384936512117839950822877561843083760407554966574258915053297607037845846453707823539233855197894053281920588656066995589926577080336663006000893104239159180180821876470386445087510730144475962197150469051104080113841829927165921831877268981753614916494250295445344637709473433614245484654191496138739752867360281481879258163414982449822522887336544080172699278121502571614526378165654962470794643751469118234710426983546762261732982670389509970575498124018706886636661159588661842593477907675502664652374099752367640373123498341932185513697680354142292525059887258282654761725543443403016407935914195086170463368045313294905389134106604146572401670494087487139095682128195737279492020485177955590704963224861471758532187644065604134769108790972842122240573267414432132063358415479302648179305931350779255320757930901054605010828197763956748405178542810236865189762275762801650209870073029521352298454635287723208364385749409831870002470251955103148703373088991690474852517455187666098252520796202484846174808921942821753453998887491517158111975772306474269424223896110736267210678148861391227005457599768926377736801260081791537416544281122532624058441848759127755696168817631012824886979032146417348743452340427561485033031108828642557864192249406930863805658810194041868092386422197406856990978299963537918496535184484727783690866209358499757826982606503638656940109288361029616675709165435626455336859296600350682907439586317610634963714644075646497205018009712332069826469904455266806333302119864126512288704152436765768559973575121073302425594840565853744701589556303438919611405829167726391831875987692073671966419055730602454846812467561320897704446149106598174298719027148627574014373050109214614860528307057889448614785766140197524394593238426554449763334208173658044847291445431460270073690494310328291147974249938955556948933382988491261587478968646148342762406394978686012022836494206349878357734164077980946359601249677696433934460663985492129164517836693245104797053912034688891761278206165861551871494506962920882103773265625675812140135220795672449273520226321614701287903830817489020996691559717960086385882175549602907323387941399588674022024641150163704611185777766853829660379958825572231504931869223678817198049700939768159939919455548733872290432837449020440689423917036008188403312847320817783684588292996392958190960012599992329519764433345208314655346912769902672137766337280193994424995853831523883481298006577551270982097515616522278876072368868486344964353473945437580472257079320604016318146753451780791032206182109492467335825949973269884988042667601525089989567281267602559765305713607559798119165604061286178603404511177392148787583296892326257406558029468519435216136521264031468786852050371067779374998669353157860836354119698551923296878318475119368861895743817265701022861583942714931225525476308182709006664933830789433012804074381138154663677704400256603234228933146634821536481218462967351640229395246261500766932900814420628847959670232564148906771081071094463653440734271835133108872962122750603184386687188983515122984713872945794836606563853650359547879298211386204820977885825733700219773004405290682284482199192417291147921779485582950651818458998907390436623920782674230917459374909174904281870361401491870617682761519079994970057533333850596498699436345944115905239948742786886142919810515322621971089652906772185551036014953372387638059579563410008342254071201964131388403963018997741859308764057988262392839786005235681031140353662116814919996870411002850484031355657152241521012355069845087276645164859767024603637386982955324348763744706262323488673224932429792673601895355366869780370656678775490587337241690955584681062065610314814641335599774442547469574741010280815561065675629281185864661552898477938152024466996426516509950105698745505026641872036792230923884077170798000395685390578692477759915142140417847859926920429454281330998274447295222167000331477274629197089763788488527035731143623238822779218288688064064730019299529904259280109964994316424347263897809049798745007461091742691998008814296242249091248863033507373062552345492605409738665061345335821678363060189984524269053271153601089101868925728629679954769871290828400860003447320759839671854540035210276626945637089441346648560926262571429031546896997611642511502237277316566518728630041453177519417932106133615469055628231129865488623803106968153290332459395901006043904847109572337138672420912159899241146708917322044005098595752342446838354877248558253936638661262042118629302084765834067399367365461657519639136157859215221758591328475904705610856753628050194747223181307518828499749359855700226084112492077769133819815304224561446638811471985650541687963072452893189470665913182424875135788439887380309757992074911152449287550042358750503206578584604900340668229430651340028295685441930727414870734835760557919308652376539147495499266949197567855291539812230566524289056098002273016171979622571395210125790012317742848142878945505158035233880865316752078162402563965010943608539358765198544137018115048261654563731009269712075289062028823358671790438962066669647070766848891628081870474624867611103230160466691366485842048356406205802778662721525760606282029541549522279513310099272607671827737698115873139090739359216243937172709855474900951514181517923852097014106330476409254532707663853869887264506863310485730136667140348159431081319598407782390132128673708176130039941494510524362056075884022532764500874996192533986907638725406995982632770987439620016571524486135487177156992180754763440825630040265010388203575953609015136829791767214634482730529922395236623592429421485145826883986547833558324994650135664014229808138078518338143920242679911306125259959041722857956807257960408455510732526658940331679388614162613015423025873462231530019086926725653469444973265732446625122841585380572319354761760266700948132631196042401165384702898914538083946870166971355427229846728434053283449841906213409376625025019305344315856125189760347517584008263637794976476060436942810631368950029132521854476826637663156967843506301153511773625445965497855165606347110524615695390994584497002141652449070825641356300722984662396406274404642813258679760366893259624113071524294898432901652849781947162280668831131479371850005143056773414811922006909986747778211553096046049471773105512890076484233727975405853582662109593712820246383372199333453724079393698928647179041946792807407017749734958935030861420810772726415399590921719076009099722287415041573824423591615667766877275437372485512635323366502294287170748280155082202308261475108138174961705819545777728926121605939628772323559378064469096833082115760430308796803393496241175508954852463826979978857727274889937807900980317090240268751290475695411144564976048266249259492972455436747344326157345462535266992846372280496186903022197730516957766688090334041155899910763267549168792476640485137924125214938642523543818209905266507247632172265107796149291126841489369434250037582913270808806099580576806195772994794418518818486127863679449560209200072136109888666110728905039226545980987791139562056344836676805120557204177751154991733700022844054496652518884185458312821266702356409325690911247744405065401423454439625386607839309447666547224053859714616918830088818720265590960346547915524801176874632952396732581232479822188148904492380701663403977278938617705138965744871858253796406828177412388784070975383567067797840036852940626368782144317258708264860158696806832455818979657496053827338427058084615344078113216373985999578511541646671764065150543942696760644155879184656298826739920303850448946685207658787733328026430364942170202875775281704240491422733046568541479535937133179562846999172253434764109556780214387427798163558242631315254743300711361138997406895319001211089346274771604914522508598603607828441864513847633052413037106079148440634475595942550825725611128615137613540537259427020413492199050045566614378792471833833616532018716744200843466389149820579980043189728131609079556861106479818057517164189379350351379844958288519447621961250324509053731176299204596187068221121220937265271769738887461219035775976807536429031354653304438681612052587885705314516275624594911268159863143132548117890703418340109166046858765165115819401750952479413012716920630302952972552909700401371957687155519021672423810656970774697040159058513436990080775573351488388096992334327506491761389329685594992079373754026913944460118871719748394011107422163740886894347134265820697506726368587467222678578226560139744658585887136532673253875497648112997077716133715298692781722406762626828371500619405715662768982112870672785921765603956579249953202910587499855772752538565420043718889640844029289319890228039299334618791447807912861435388639134635412502306933287694500440097391740255584169468134082736545331374942488822223218842909922696280219952813595153945954274357586907065544825586644053594778202011255363910221479002842908724125834214090232730992918063919734621229435672280797190361367411362637922371771415748675842538620868826568835483228041600053622780148448672968857666517991807439199657751496358300769853762216740576221259637927784410382302049965403850437756153363606732358786892578874981213438047904419502441011158730616865244045726602021315729145544357565453159168973679052059777048530392884709646440268185032999295458650535282401359530170722633201261197423272857425512385109107780263272950226461776715208136422837845096074467957123471044022135206055217301093297667698116172200246838554891979337129588928585465706138618272194255931723886812317548681270644954551596150030890246206485863915924513623231891608549617457525356415059475954031495428489983433701084818017782746819870000948360232580707893867517189469306282652896179132411664031391701217632343232838982608321789268566551989237349014069085128560740672729724841093035335639659248700386777688836156622630669837260705459342290338211174590961937365447188543290054701492121707311463673678599431347527402398568597576683061950583575854386315578157756008473672625975029339835294753632973778779547755740284525587608422584426020401661703308742776008428347741684517391468396626001001960833277350867885069314557928419860506783020166394925943629818360995042315059745593640240316008327059257813364716370302314027020927609009783548881533867981079355918152061967054888566137974679753350382011869362218036776499427157536889059481919647331087922228144642790150120914356404497772280325917025681866568305775778109359662175275625707836876963504970031060980216717380711380609627128683634290530677920526832700022638216526123131399944567946439128307495660196334764220822867867672790437101316713411970865584491239787123208529544119661005061310025112630834752275167562261659858718485112518465930375989551803068805995471481861825938994325589899205359793639435165586855616006067271097513214137474531470451114968333169762588063872219200495662790682670098493793045089038071225015731920537820456302642039182101999682981083989778010412657850214570188147175282424657187126524157066067323945169903050186805761656835104264559628591848064527024767856073482640877619723305509060699447417857743033958037234291851221846455361061504721003307505624091265598801854357025340605053305310171288341466156690895966877426720813021202376354846131372537415267193481828228587577308204541243168890424716863580711518276023634207864311922242109812536577229830641920112408974106501749684202699781813221624936437716893164377295808853766753740585750436693862080042675186478576599522679718370115343347076760938053076364107505176641256442877624167800264774791318485148939539875825853649921863462121129190581544181398485975584928002567019574618705751419508359561843773329351738882754608953439439650456855294483545085503894279434118055010944719121244550910072910807858466046272120233566816606042598736415661733618544642747520430088053075523706716558064847495961951906916088163289741353987276775501453778332050531974093721550805564187386995831628441507396605384087165790285688402999067295584552795870835822695514234452227546838041026084355017439940698350479200193969583666774159532048905603309104712246667908461992503095023222190551837518615579501079330653102749699572586397163531406109659710076984080737430870338187866957180821592970229878513262205253837690107547991570068082020142784598384940192247145867453275167462194323686433089668233833903562601534946727511278337742480311406572078414660706416115664229164242893164391615173604012353847094545779946686643137995795412648082296121357209905571475856110461742479510285357083614401903804580360883759097117661009219157833433521249329738904660742189779843722356609544303899043587393311920211790119947790876121680148693031602779963739298897336444184294868186417094391156377958430474331431538882464882320787347684976284202008840540705968327608419043786985042529646002889798584363145088355577990375655001999067261701586279049747229307956559289805755095320565101287296487987220048204276865342179528271721203655009137700791004581184597058195967540802355399136285508071322113692155313608760181573786572038353829568658474684311667702660057297510785880717285787111521037690293052416019387927502759092317613521752586746116762198666239931064200495897383094128171701723760863518112128519474646640993768339485079622437001667229505011276793368584139010461781371920057219102391672579997372705286932857197209935036713920236763686213446055582021156600480265247038443390173801443897133355702401193317905346214815727060679168749008952287013200039841285121256506351348473868776234725798539076840095073787164142415501095782016786766479420415306974362572249062350008629585955934223425330189046154841965160990682441049696238926518162675952445606619149855952430619115145330062632076413667759434583360224083345185130365596850898552353268707518744616082860639181245136626841056493250553160331992507667270108139202733484418129061342423860523810870010720495664854545341375543414926968970649327055481225394145705113814664269566084682967286266891604988564784743839882032548330714329060997591815476866279729945776374195466181426793291425756371526132436754292528037857386562995704904408628684946116519663832608587790610173568039039452850760604543137442802255908987754128690783771152634647544060085596611386747765657506929626155288971058438443890951188314049519498304586376074296274623645046907878538595104411141368672360821275400691846381996357841084185612361036851977299916073320039064290536219644925462092632883054297186424557759647696866430559390991200984509543271910786656762917700041374371165890213618322397937605897428151455272110074451869153993731160388880539236144623872932794685559595736598620399294880601886146980853296171537766241787729164497091271480100424284363061073749221777275037572601809390120585552480592569968699771318754017125076888284717838203399618388209617491712099635951900042551455852724657513863079542405597220903225993795644377340378312939608314620036262844376970572250818831464351168377594573163391770329429755978871812012469406692487460803995914843194300478387970175435217288947531477392509447803478416797560067314685718922474939509657472138154814063053527777038159899353690436824831102635017564620493123268464215823175913532609369490751908445039227307129486241367743772814328824612740307645312444317454534623653690634333783157849261302316673129841953463693117031519899358098459611454635011543638147752106649105841337625820701037785566457738929526931895382327667547663008181826803219032240719399710439268075773041844920182761724756182288671886669686051521340142251080987634218159803057872597518919495399381361755914520302221293641908623302308935356559604475307350253071726054936265979427417104664323869356679680747743789529897098844834343861121366818404204325706767916139309268064295273876189253769891520623870940695182139291597424057634314537321666353661109655974932920198280796890637692534519076525119930543145668980641621162824743917843095355278154655200597053582443129544409444852752969791761054613011073832853779666302081233804632478777998135783890512495621288185639917422360087229898106770529259144667633357102743090419557063504672743313778658748632553934671542909230698856070608353825634155578499055912105859653343470622397386700926162992012203567878315384789243464560195456126773821191046641516620412783697502658781297943455185405789861794421217505364582876582597883167180133753251686891722761929940906430934064917013781216274576319619902789063570332163043220423833363893679292854365158788634692977042363353232118538262497870741722609059050495691239272394321629973316161043995279336336172267059776839542021937788398203709328223888855462397824290312467079842155427061754697393862623211026757693622324890118866575356137498644307318042630419375821987952573075433922600605700785095656314846003186489999051625641942135031234918654186194912900190847674403420729304884167497726728120056143593407949608309990644405446845388860851206255363974198659926730691676472748761653344088892801666848292080124796531335477303947302326520802184088373199762164263801808554117615531732431874196457338045356985544194603044790091067876333008435247141171774620943906835871580173835829215078572709530928298887715798841575238149345283693225013955229612941323544905626686673969278010987344169979019355421901967394468233516432848969955523205345136297730886369631499582632633804506550911146312288638064334353318357026932677361323740459017192807115190454690240802858251363679435105531716536775528535954905115428610316327945543356301420571949067394992106021981617817461803580153844834772009469959813384579782845118891914835250250050062538822508781593795180112043321997408128703776879586941273711477266133777956375099840821333308880289768512932673098979510689284291659371267986675193332060707752763850454678202704236249676230463262745174756807284298635288925153113510835361770250202465697074325817677403068322851545000440470746705502031449155874018719041493773954498020589502162949017816627014851349348609389119010992138889126383660549883471823526387724750235806203286969222602702839800777868030419402143591553764055623518180363638493053499841569083825818728491755207390081790082850156050571896836459491609037956825327115608270399512585413134728271854557232031653382162171317608398657186764356003857384633501811239378959697571967456547987819996192987714820154728841282839201708695397846430106334172855821396975743736578867091746758357912951562177211900803538591215470460894711752131737969012704182017034678002441279830669134159363534279760377658685809674938191710645419981032658837425786440947470850913241128932305461281058647169254738870455223709694602682657971150071916611147691408891174647421523079898613412013507065073593021617033433258651557204738301202997182396703054667452292489436794216512536425637032799097356505818929951278084194287594597125664657629661460353322849106750534060538790523585640739297286484409606338775569437638941557794830753400390469233439650880476120554155565901941525285712557114806377163155071532585254543182202256914526943009008401799745271331346718508415170011069269378631560178615032807261988358199678430318310656023381796680074257960721191572527637299249879557225293532608145968825167850022904262984822101679029142708812299094313511110685938815326183102350736810778978049820062714474637036144278086621324900172304135797287225255321870942474246325895973061616424913589047621374568288083662372491491282160945907496563264105142409798731759611340036887800959005412456584355107687496509701046833678561903608971662570131848272798316190127969104128473858982635358311372837383495527229883361628595666008485546849652084722031606500829428256366414172002056819822236794279467464732967238796344313929628406094978843474550076692257103895323372640624438164927604777204914164889764045205889985611975285627047191026931198509179659471086268504675350310155939570991385241295415469344517149358348121732437019574813099544203937128048549751217820837723328263294894711689727868198947652956319837896987541868061936019412645114653477699540594930078204622335856711502079457418380170316781972405986781403599406764511552400240410813791117594879242234366879120827749738582852162919629675999942413119890602363831886273003083844590722028571249378740449707730067648554350432972909443897267992187218300438602000989620867855816444330602165048276577875810451038800571489812294627880445126833797470389193925823818927552027322896260858975730011692120547349759207068415225363249372103335430145529738016071603311747255780539231152886108850269020248299192337783115469512900323320860868195712777794040704025944149962474007994678467313070341891929798506170302300665460198483451141580813620284778747917330908852952339294203330217978092149359766575543748532029947658532107935912022058174375359695054941340377899021052575820692705596873816882445959993282008547095523956036067680025192230840857973564345166764783437160461930891341366658186664251664441629259457910380325645690480038876741242747798501048764911172297545733569476623297571896699339624093047648913130000671265652848334854863828523726485976813184506522621978633662466667061550933157565315734198761993750023319426926012574032137252651667163027207661548091813199181528344385628332884781277031578142450223663225217685957688195307743487294810950627649428710935784605118470634115527084381977300911055580571049993445390252055202169830102859308001322276123715080348815162434986201541362218352645551980699566043057808872260845754507806817086771940169097112546253773450242138700202586589030862333190468954478653589117505629558020480632783692543230534422022107167292687671313018365456538983558177871342889303506456595212480557936591443557161358330561821682810133162088125991934406479581270763893507296282620227374180716159639794019937770546001304366491160812475180930544827949322708282109407062920270098619627006467857938177043613640728143460744135183599912872581191041497954019968393960531076722961132058231254653381579901780375756923323438484091599916319268343018759602255601930608797067542956045024020322920335163385894544331879729973843592838918884187201601060127568105852550499235060882329456843829573234958549125114339603863229668569306820206309984589011853983304158111241967586626274030379846152630788258853239480165544597869554234018211495830377302340601408085526939654280406624087310883124055415747821752993925492313804553335814334948919533742732447521051541618396350352528403619315673565951548350110640634056132415305041971392854758205190515654341265014689098590387104506576856147197962180453627522066962900334317568790605527347820369036380295953479648347998147939108354034047388446185360551072928592458056558064908661131581527234816499039448691719674064069695601768818547455225054267656884405036527458570202727458545964889696212009030287000363565231282451732971819175022687284414857845197110636743324929107922263061560058429603137477657919349115829990686157967274565310497115428839034344158468189634510220134519706763348743742544784571295961940058040728982233367080644786840622151375845109308822708781908313917377378700988226530187440576057644705056291817245830449202828435803486460840910651064417217346471172873150029405138703856453627285536158726573206560379358535421760263543201526591283308073626165715594257619283189038657856019445390483863785673703573828205714714353713299015309519982670696818595431476775973427541688812378179385946638325577343727369808205737686645298214168331826342052689756485163981104682429420700503868951352921806751263080912121860080609748211728795656205574096012909317657741793534256616089098605401177796127279382590805786175702330710448545940732322842622838716353083035217985020824220693041620652653289595053856387219041868744525313201453690399317730258888936616203563083308476700289680358627368206969664268805929387248338877957636170134945712449502967779067605217195683357972455819140006970273651528933565929939082017687677512858516553206309227235370751325103262245674622298943438187575795666257552244917464180914547244555870434611291315992004253957050940912105831717372308881431857956967083562871949651349643974909398777670120902793151962296259336208730747448760134150989852796211355547013875320421956923989995053350670224378478924599083563770553231738863007775473567214317545068209211500638221576783239485222824930078486216495071192831515722883002198444495172295945799604450863132089993830814472385366707322833858260249211289356360321086265241542208619363911441984771098290540558547996999292194074870149525112110034401220933991809691455104593202603454794865524308432069918800291499583479700662635813025457582465697778650460698431460883971064577450976600785820170645715079983589390614113856727953835569086149092248617697992907743445272827317241922519384515699847309094219437037915612342246037549097066366990734259267048488207837635197685570217719208832114030314994925486605457653170071273924659367586139310875089363628007506768615267110228314001922480865832804234650278124516807342966210838549480952549424653101384744428314589704096646297354925863952051269163238152771073245400393556429051089349280196321437776093009426931788224908363108769453581294599240256547990417542891896011535399508191086414254406786339409432294508347928566486651595724940120847335892679763988082851304424888855774705162779161217838622645250739566198033589263524749847607346099135485916959958368176813473368777006692659119863439692423022070494226059987678774586615414080782961933979603766162219803332764960595327588148115910306181403567323454707617703553287336598827201580960450677139581677292079976031414538358054342876022902119286104607644940689511988613514851490705770796420320074589551073103137193021794576773473813173207451131933922801321327932941043025881206981814205924346554787301432428485923475444045641104182682302077555594244203335754673629733890366542435182398631873064078540324011524410989942778955871160504701854703219905469739279795714941041466456840281618881011902199525432207785045227758097903774863735832223907964569185564809119158443653631742143869656317972394920132418464431468360025053526598721168342007428311038738001265621225105762816142696944271871006612448386987401351011423619396927999533860427136633997578583893049268481220630868501609167618288443004494248507127463336366459434590028925608295733438887637773979087438272406698570673622688872243312746188139868140383098327881111369170064009272254954149662504226843609616589562860683600540177061361364037253728079826550427137690524706052977636739052061867512315035706461115517439961150458696179143411128104200799398753672729783302648080785055272670779147438392568974010525862640667213373414752475261120784981030638232460343683005275742837538600104458092959742017147580756004171949435149360689668058422038729308765752274536804191238701255270098260879329431940772531973700798244599099335883462838473905123427975871738851830344376488958443547868467450992899567416610871744662829094080841084971813075610161745995434893152295880906804906815784887895362369890224880196123506580493958653150546821650736727939199158300057973863638350354095187325938791733951428341309436769008302981369841802110509011329628079594813098458513462965994804009635687368664939103630901380378962313658579136632473108922566985869178916152205302266173285732649164886177340637583549408223883614625899059932262479148194603453981046827766416765897625461397045816876074089127898318636653410524894452304814581405896891235391761696299892169339953998501108049365629166994741973417009949424385923496181149181582060822789326418199672186259810810750104910261305400058658389051884857669219743295703621788301494067133289536007270720171865784660682436045713478184753607832832799085190885363686793055713464745895372770768669847423213341213136383869788295015479095275084366034198290919565637165700415986851478053860934409254827890146952239701125405136729450351290870855805498542893714499858926778718763940581806597972147315858865464920544560206980149674620153654423657888358434050127835466189703647043685314327911438578308045678876688772348632977144216706034040563343524432991139408516794049059069580479052918556756256919282414659112783822383808302834846612564776788376229283517210234594902139242852586022830051587691615315206746652737217368681640651609014295859497146274327963048311770033355042660561454490380525762077357579700069683967487205639646657333076428129086786091106784191404200808834110804033949831472100796342510521820827391204426131385956740179410112518124785943219946349990270114845945285321066404662935667866216597970414455619855377269140628944314295441176525801764341775925101437377350839042303167043908840659435524880638541436776584622899094462345529671431832022832913485765375567171118000635149410986105145903122149253958991164314465243873375255709586592282096829909705562909305739758514858354933763472351773444314892742050824454346066409543522739469497333251555542308555721395619173636861991170943562899699285709115918810203272857395332388707607222811008910826295094180342913093192458559072195455982358157008725115426595211601415704514994788836709627384602507452544749288444245617395004945022016525812646967945612383028896103226016633427307656178708575916192834320384465918374563008314146895083751440105871796109903586782910682271032397171816617543956770614496702445628092720185124569844905701908062448517080746766297283303181521376589792528150006083892176003801460765775718946015156797805892764465556238981912576267208863656514633020039642245463037770126124833257900678375780801562963395902532226512820195892734453132286648716636193526795158450821790531501985286824515444610061821665477587355535099617300722801563695781392915618753006132061097652705520068280905931560134504435446902022908804668531326470301599065483990125776409503055543916270933747206079315265084558571672671505896295003658797895421080308477450676274930299822879204659537275780382647154196147512947416384004815705672488490183136727647519364957404528360289608045422025965617292445260705372732801514110623312925812530485589901467721162504391913128825314716127626760374508488517944177613186355364626556855240986516700049009300771699849788595281285973451328961706559538511166701637187957663689572213893022746302553203788315254379168775632644346031675129654928633858879118431491317550696190262316555864269105074724061012083785542751943775153430343631481696599040740365322168086265397476797125618236177212927068894933778720114516005453895878604176824979172209470321414372991819594815219117350914854183090196755400286509397417677526072463216517698018317145279312991910709058426815386127126832899302867472327609103642611040785467900319883095816798462524298518467085735215390512332647775977709912930565692390351606302842746340509492910888335373376135540114064525210236182474939869180983660914880030232842382184968218148921716449838054382011069102741254477998428501204612229065258323784437628342314605261134095532636832715583754351302765763312780827227309632485734705426329237280144444875569471720813241721076179141265165473802180451046529109251012984491291968766292801937082751903601164092414951568566521296230799415504144006093977345492226583568193691360501297812650398760953055625635147371390680570870544703402657768693648761891531529841758052406338982196630847294993138082352380767328388747288226288651088814416002805834019028039032419721768163921634824424306329113455089135148608070722227439822880018137913477374353006567301164761197586168706479720971717022366600488927516094674166543335821645945802698953909573433801010204838429761202623908245693311583068415163733101525321563217364459700736816180946029158344533510471647587741410524757630074403640195406836698744692422455899782029858467597151668550734772655252830016360750638948489887566882911918829722337060918975214391483403084089745890824761247658285333606551406349142594380353171150906143493102897847180127457406942903586854125894941015409876163104855730019893003635464941552019795854044924414956673709914487716373400104323034478949487364831881789457403020213024450085154215617503798849283644814095960767682118473732902900054955778485806734836727368590896494172645303227668576976122972580811249536499752216448445966335332587080444749378718007153142793990916013983764500317694615795298054714122819815944411848662346079611995070671543116757020957483268227748971782771951999236682078340597540050241959054329260985146326772095673156020091212263242747599576385904647738250990117563442437634757679568846954575055577994790820372950117184432590841731424932606031259795868358682920838817396364535985469368753489071453191012658949783388859692179907552712847964851770984456967226997644838493965793499290228438396518526417406929241773212461573559005839645249607345334908426326425408488250312112191292843256551494318246559244133749441224990108246705843224172967269973962096114878285936180132877557836422792584786589021126232037030746146870002278907826819462317783073670143038068654822567704530049569196210880997506744119119578703747395179622212633403750448586241864227483600109393662276374623349889061456843107455744035120320245460491673092397568137480184393285988529970413604966270857160141511339784867447508806094888372562632102313849264611448540479739687938247145533371387007732215830870710436209379998735812031646460024952239396136495502712928291972669934264695378913691651794595800587918617453161303849397768936296286063637394899868273610258229554325885760165391779229541355995562385648471633045662375720294197164899726716415645604904943835146059164857936767590005443106383455997817465704346682641536495489284079816774015288613994207050489049443524411845686162851108288537079480918153825298640434571085812175269137491330020204716615487931274762778330171693622231762994392282307825345554068700781268079995890316954772712205743725813249795048895520425437452017523154786257656891479419173823535220780257279356839150119900605288793131770338681379204696925629427502970410633927434863667049190633657710136894100213923171122842310957529131925216248261663060087563251419315542050351812873337888821064710133089783292957532485619523309605583303498978632227920806964936139604686941459763546093235965036803649537966795108757639997937798000453190430687920815906671491970580526786153783146201786396405751339359366657782363147535371435861347298232282937829486084622714975519558759615636404780512471327300802210050545400405914019307141026531574258215734388689713055366764120231503692073014000641598029384433427238866712681627611001279610653830266749628826973241677343678087932884137284610718018906751055998527119804201657768348617396141759045585866776974241469495282548965982091582641071244941058719486219003850272135081610146172772449130056668783948094716259957289646159842852479470988131133007407404495534157243832560697985566618005984092688542406550011790770586314809729220027153230810940487546460027284759013764008804797621824827491479770141687238481020957610443780049713430475526175957642692998878676651803624128071683147869421281257569907698356509475329840044887508305513840147596236494674040496834147052682277393914624250448019742880899111178617453056921849216030979145922661710865259865215366482885756146787374443629265657163657753210403546818690605302412041199166590089564116858971294781913515998983158049586732700108515393743593421114635503172508105500527591204793877801311117460435341360683029564615420244400669924659822763993859566030568288251629431856287223367396341885735627746187346293986602766292371073769823526434223676757524908559518039822801254727844225392151450295175312968830363617324726155001343682837534717305694788328669370491259214892117695073837852751507473130628557422074306247733998993099494829085179393935059512955805030333709263635527053184013237545186965094117018717225301670640881967571153053020900581035901042625323392228575526860156874966988005682091409989205886997924616049213207901484903450228638894469901581194200870458290902177929231212011422716955472276517680427149051700937752740504834504490731225817616758134940602105809009876241409761696203704889551157220618221128820543752420769967997902227293614431685252755826107485573236940016042880234962290031128849563456904840111949326289047447574433639542885746178618161014111999107834590172842625256733531389359310436044178087607712671173488114842129651239095352822486100414101267035108568255498777753478064949201143127162528688026197619073418809351704256585706823120473851692245701313686785928660602454087167508869562313591922161965335244805902093935300124199333390602089371449781173729691742516131562276503350721927295318923160735538566075046312764230508774828743252637152286066122449392645270150135043461449590133384322258924439347316000718434563529520748183665408458274856870474391191168113670208321953314435668084286394837770474048483130932858345188710566501050359174382302369528455539133201368814170657884116289555805837662848453788211799469467990661822901084795134770266797230692548171363076157481256715266972773879669870583947895465786542498498380093125884044635867175315809484121664086552693211583817237644986317205159892953285729664573903404876817753830523535659163929265377835793853655857336081150730242167149275680976059847816738098698714354142771223533256945666563105072146150669469748455462172202035218782514780550184615802335659964384182891159341371616019765335389770293014947913638105731434415393172516076994615509457096954459776853396805119813408577793877267818915810707739519770745850235968020852116685893822792689308650899086115285918005167320718769252540960980105592741199421031260369152957706524199502308563545540108232030751358943010751665251123457404084348974161018844848399565093646595893847348001984652093759863856771966364704400301499962089080015577262912574009794276021801972102728253036555937586472319111917714729726332718909470353707158859915572851914191334021484028449133762103986308457428972900282269958366310841139028763301102501688591990694897549056743853086626447222992659725057824924499016587387384258179152947646598068513414283189230651760587483976715633310121092716697814604059614479998622821029903173679441780938402866035117402182104934336607816762973039251629576983137047650351071522403061511339433509435926359498135982492078403608538468066883044524531734062259212065637914579390764307255665646072732729845199396757220820607907709227162806540835419524315325896986629904215689055415427659390037343890271148242185425384806501701396300636747748328851906794078020512541250542976319732818701575015591208152180308407507369673795716019635773252053167643425598004243117878402350665485577562607856564177863065756469370035532750835362283016705145038530717008989627954362329390127006432529926255119397266173088554844989048462352412209556211913251409045293887048860535577240583643454056968444985484600258460848841797594162459432741495240226563134637707664325907613637448583913370801955517244575371856176785695485593655291577302100467002493561458924042286923392909613304907919973561866423067877906815369240233316726652517877729247183681140181612481404841851324276853202799649491774407122734834457695357115963952694684782895197822022575221614078076017663273620220984488129288987086792800407155385366753420091705908014523459925836890058006508185765853530767320346243371581835449208458024073535160731360964042955679218184899048045739888508050753769329804116673649483496250879495368442870024665659732655818053290001180404299909651231335507084363432757330167558051431855839747987483064082537068958927921088265564996882442342294798914218772421788684269153636206704051976441721384667996642035861296996416499459026049345958972676980061324372965175463641465502085364346158426220800962790980823376863453106352419300769786809935854020625442783897636410645930225139354249463497970672599566076865852452670075810787920887997920516100339271908731838438085656896196862400284135351630281025138762778305147005084921100173348359748141191937647689635256898544029786868528416151424198068213883778676384542017312982152232563261324273192306378833869503316166387628810864624625210459571834849768332019438340023398740650762265411693013259649034179999004202161966242864760108383786436804839867161972780145499358892708771747762001949233796757106947443383691494182740633236512946906574460566973122376327253510146990763428347025360641454145006349217757588369760181614649000428339349761114315287136400821604521699682938699781970537878546634392167072843427055140073071156638813413452894700631203377017535484435935645244557084113238046413476358136424504738582268752677997423390204472064217506994889793415579283655824968064343478818026852424870356318059059071971135085566959396957399818770950708102819813972016030995604442108955210149890841246530525939515897093542848474407185512893742685579269967085286824067329730975192664637684182931332510651134097145803037110122150832004160960357580257452366170931494693292502140899144257015036002414611456315190670685906307717061555232395657280380803086025764121360461251398272913669341355046785478286695983786324690249139143486451830639433580464448591541642655068663092409732904841177404678174573724575092860762965397547346234483958474008225346532937840982593772381658954315155520402839197713448836423018403114047554747019928524523395659156484911253873269618395652012064867046846875536944613553413352968116691257740429267720001507738239335749139859915985239407164274162094354800527562751884001026206062562065553991229130573948105870697023403706751877922805311921353719681562430998931410730031258865194975862291880635511196410486741792115667341596054151213054263712716523366801222718019723638121322314650015705294964576507157190113740218577394100115029143793162070918097373086887580191385395026976807757848964292735900798018961153198221184571071729462039300958157298920992273417730608941620867448072197084427155681076631616067550757002280821745422846482891381997955084006591521808304385153465667901791487836898739583455065207597116206439252510202344847596269139346374926154332192225373030810186711273854421539721030912897719596129520649077081235913565932105188232999945838636684074068841423595400577928676012970707570396412875615161916241169033561816697575875623762093979220365600602976013504900242892867073640448206913131987999155802755053133925189506635076375869719443272159638511412110256439168843119101740503330045437347556235387152178190257312135350470019948840899229388773175738027409611985663970251063486226170677691447323477961435115588587974458798274042384217262193322887623830600544804456013938265698273046961152676077073226021484603064160243616666181320240641830479395206834953541476953213902530676614936015792891613591509452424111340059837001731765774703930841776202935448069262595274271078556404232724165816778514790661415399422611520560842248334184376773341959635387738947144309653278291762234932147175800258605436871925866040519706610646028640651803934942103172702231312663254696581144773074804821522065994557031260071875801241733655765859126597239083732691776579670352782373469420440098528491886086456102695496653373638792228415755327284610200824862036094676016531579333043003362922251384678724405594419084341786878973365989068889992612298046375135325559508197719227262993990353345660398035084285619930519378224842068574812013405816679046895648294821509506499206453892636007387645225156522779398421611274007439815322290174018013451500629415049221542298113695387783852869308160949285244572084161880668753822897660237660179596588965491104548486794014272970349432047058393190350626847837168819723799617946643908052387604205082820981719836089308987433427563128227528536233058643363456017733415202132894866178958856743126528540482041305646043735236371306460854646746913639953314772794609699009262376416996961097898736209571433354452513101366246509384664342421014856518656921039981819192749335771342679429227579423182129450987738017893874019205635085989760997478012183579047386955504835124440829650838030731617986020343442453526199074734724432828845434983008662226294252372779601177872263745630590786661953010422395504849803172710178394790229238492587209850118244592697044525313708396598717675791287755455367743591553671776391310387778858726168994046281055325766054751348586195619030453375925736421869443931392060650096998797069866134556218488813939782579126012770310258941653805775623646471219814059673699744161304999649390901561174741601196848881334343582653080564817149195649765649530084052713307963819261462610246919618273927981003382482289960547155274695227236130997074763654628875641434450882442917381890824434097972265136283932821220559481074095165478436927794209961386960785909389417713481761207976718073666487609412291242405424594663391655476279196729917794071520409988980319406350000615407551167846011003090564065797979110767179222510997876085884018732347511481575593903435062411729525019859704397109165275732684515815140498431057890117602256962743537546776165643896878044975836182340595728568830861812168101755882625219697515778526241468471472977332170943215641115461144458761655904069596081534719993223368462767188891717577629688911814814131929425164743349181261775390829571135581253570884365985966371982915738903224195377462250869718669861811847682135665121451043009730304176163767793529006114843213370538307359665145929090853925065806568589465509837955228795601368807051599701463986357665391858907084354689904193360183725800445500219788423602174748357519862689123395049027890518118389923674569659421706928171500500216965256541199766354833454895891077104479810163515705493244991067501166999012211391650763865013629468321032266313602279560549902803799791477290630769070642103370725687692731920372822161578659690055993731310433815762303204776530097385247808733180978163978045446042568829849229543418408695721158928983360538534349288619977806087429350564161856529848030053009984940033740821459888338567305828484068669973735913531298920663744128018087801529455552373738650590508481872279503815244955895444995870762415129304560879696731851167578706702478327274778061572412065200813998455521599995861057735311513001152822029445599319003898588608418633862618121372350282408621505606687666352406876842456363594249357207427221140783638188607938690916156292731019807692318377009733043262594410574896561865687672965710933717625467339487684786524407713987274341549832973883894439491840308786465300242572309736415692593610271959678755682447490555251233163473459201035254276599995198741104960506544481865876715994641193432080727005170354126316344850625832319684634970477191770077483768110494339319396128259383364465913354852062262849346457390105556648214995851720269007259711621271848682978985466495673573333660794146069884525949585738492034383914590586126144906937864742192769187141741955522242736409992466611896664329785960020639462687583016124815443762381968275560400223962694066155494419309012059994286765764444702921283518500218266599644447128578879874027698215419429398185425060142348266892484988729271042804090504758154544960415588671951911800413732603469910302210663180731538416222345537221726110862914770377269596462411479974499776591926622417042608219961354128273223656773254784140049830583642746607573527274883874068736202663619645044998786790763941274752719794614967358706094732057711373444718377467650900866423911210631952109290608754019681025624357916258008587818289430587157122140239693392054144108129823106715275885802694145116131309360165914104200884191469027655280987598662984937390069692331140699430962857468245484256309803966291304607593315797504859261613875230316683641322615550475984072395416787391778173421175768782897980931029633909184801296174617904094317122542265666761849761409282832171464911958355592838577749845052605818953712147230577861960253606372200659550142194447317132012550297657486634595314935018034795126330963570270640512415632900923803566529918995014337597350164551954834464710984508906421400216330483965077599885971985716594833832965500029275771253854479479391667811364873369101024169270616330134539484215792169111492778393129274719033400524176728787564212619152386572259588902312075668499395243340110496423787274769950457975071985612898134161236757215776378769302211221478073751044094095200275149089145759276387953016321311556290281196249202030914061184518792154584470320580064559620322456502391173224993129655520022364542859713477523571755153192947168820570360606009507669454521215801969202599208988015918696607393113283891927926662590794006362469810890066747202123009227678486762514201685773013717014685255446816435594710432272015407064739705282887758534657345819406722380642791726268066292569447596232702730406578497787207704122785200301494708450829669041448859612586292415591281428438324998957901335081241615888708583366253554738669903105474440393862380218361934878089950138430618075663294279202003866513111137110207830857937523963854937007732871040134020654329775498267204886995734543078862852758795610152341243357357869769504441932149031468149421848506982795847048872613976400267646256224456132356900523612158125702185122686990965534378630601065869741483295476198820475642923388731253634483587327433703074131553178000448674709719155727768498646542155419981058910169296249385404737312985095281285215278339468587831832798976117910935606089326815093846105588536565595167256616566491653616126393332768048340057479560516069149854798752510089286634385061094460331743452684808120368770073842855108558628724317743833485277480739596886561950874320757644414017420313390453828065919599461672502593487072020582520057281165735655738357524784800232138476471905925987243580143318345350229087292651172116118115530885597476334028631429844902652146140030119666231970680876139415007034337618977005235247162717631727078625746292890702676100376572003639571393074989231911469934373398310352472315274084527549636797273872531388207712100502356464915173766116618808944087052282206885755689551782776018241890861719657862149330803644759832478977426164045313631332536807617826152334336073777143325367237051904006946588285901450248316477268713171243764002277822617901479282805644340253003317074151778740017097401498297289557789965143914632680496903577125390460533062547502686441936650083383814993802198008530555477216500112390764706596210088785153674559301832212213016773634731785392163977648160159032693445408581958383596301970727370994768920847992537693907816940648689145228276161043858800427151826266624208344941707883070586555389105599055584440678593488234909762282325579897550124913934073207289226250072525724498273562618734809619645321146467381243236704743484130614809074663303468206154897658731410432504598116084075651529209928699087454711221765064235301441840395265340717406339474213710620395399954374818448712433414288681052269672335863418458782401744536481860412773545328356708656430541903049466629919783576790184022587389076278555098370442441580344709286459694641537163193459437071601238673268782502183953498513442412029479401724529805840010127060593147961383873226886820829179993865763052324803156707300999616592351418355469050749834369293352764888602351384945533603422699544957711042872026282289049607986903337468751418035826631306641990020969369459378649303077955136120861478655552756489231677925028221771136607323475151411563075117711620024329514795612523763178706504234982383121159731016181584159850847797547734578809504557287749938728455212998803703875539557349048589809423502843719367828575295290556345881416666594014803194936939339201482551554568526098409622755686925633057485251213792867781478229775461958248080476056864140959183208700610958279937772943758628073595907859361979992104505980441152508485162652956985357423373337396230246697880926904060462999417430121246225418005651363616942999096890736884917125572780446527530833821931160168358447746802323820545486962801522391707844534470525455617822597698452059041799616412828071403220801420052845573811434030314944716535800934689860702419018088298469871815501360397660291854115385607509471133899619659879543408661698597182177271847691097146032999805842301424061550930180992561753740318016997397106707977089372449569231312121211373351879397352089246655772464419565528622044684342390601237296162761109993013125319693895076964930826128404293452984365681064669651290189810500161953598679044272140568236904692760430464382713251864439752162222179052406405610903691567171520319952069634698711697490906959746199424536526954301323386506465125963620613134154281058445059694951989440964217472821570015603344553610621917397230381563594056147109853830490153039126842326355811671224847763955543743874861973253146983022239330624476478791852601481958521576750465881792116731005576814688913847898019208545167050827662097324100814888982110932389131223366674479934810913524454368314698073361869442406674865792623668393164980576726961198103305052156299901879084485249954729951250359045447755614192531093682968659526945096665640466120981796165003619131169733115767054141377374316850256356873747989989541501686253959428054665563089905167410466976426008381282441059470215202901107003243371599070050643028768821340714661035181582479229074156424460049324325107685764731492117618882206499652233591315757859001183901070932553471411240854595732357196246268273280065484831860438070949207260034051796077251598137075319700838334384862222219857853145839660531516501583439388536931013936301755671995048010790229177832089065132629418736309610211840480562755353159487128974573668839441549106672380727991836874798130462748332014256223126624137945187580085778259064836625551891362751756005040937906285197067588602999811792477711942244083600440503196028524469876426889239708181081248340298181759929468695867373065644778259532364775919719319537490015480799540161874577247236503386390577925851225380005881552206857888249090571605884880884127984816307212426276752977060106332044098988677763043694908238778685568621552672014817543539942422238138569025911125608834910315873673846383567663022307244729408626541344237479866088447381057188791702569138145601197198479347920463628969797991305192685948927794533889627382821923314183196937266782728048031216928725442274385322543116065932046421787386328533732571748292261095998315156711307564642108878845754039376499401394192275742459025618754955882328628774485801810864687171032475449978209502517593898068446432770643783893284374830110129767920917701108969970350319115622216708166687641826342750940465017604349914909345814973238236977150648579050592178352332755722785371011898895005282058242762110936057619498853438467544744622573211701043093245384200301186422574006133410425417947824442688348705743292837263721846529098087782237919223983471479152024432981065468111570306493615518025365195995579412548778776794038156555167579284362548913767230526979945006404009097549530375710758276614713283574979600592712374142252188914264265936365146974090174427966622339409671337366182092565182835721649371479396255923221897312441075894433472986542915905407970908018427046379045254645272570258965063940078613293407191962936656092652666310494624938698694528835814314084032901408158493087612461982695722650862285846521852975640227952379236657193786969637427926219473046724301437383655631434625890944204136756123752963191554123856972163792940584886710164212559945634879711502606939668581099032758706126823049623924354762116833160614666705568764435097020697271010254601114105848806701830755300636038398907835332239592752979928655623776703378143192668743515185901331838509903847888696357889902357042889687247298829083911431955375281100769778469822664462260754748448524226404728619084529253025577448504755134819735563502773344875806869671842358106892787442828623796750000292571429185401523533918803778078208473580599473174613415641176009900416739289650680869019003170743794839500539908027473328660123773098207342196397892832421340692860619092735369942311992354338247904485065285069652497919408041342351540549886183352704917876448130238560540624307625241088409863750524765081766687638697586065662144749866631699342034348674433646350236598585800948619966727621599018854738423280468447856329993642108689897261514693094413200476315662417287579223899155596858175657752605231009326515641844619284786455820069492080674705790143925551212134560806898442594987875667647914061909359923383808158713984266887941681874069761208597846620978799662690957227270789589826510676159528454494627713093200924122109853813939541366198307236162788201052364200587552911250753162552016466963923408991248732616721728716650253544508791419675709196165257904162712474225092156477968480534267832590267373536751368435940797392170633023079355972243114716923122988478789424100976953920562393203446244271089021956490513566188221841008707289224420294970789309186473426640724212957107637817952201332772518714551083813256827537889103599340457370181411272691365615334777650447149458402482178462012253756376956484580658515777365228808391767950427428138272694499235594152764030436694913950342826632606697898369129895683211084052766225318438469983703883058489299762378090747325803059327132375012194065916038092965693891545963712578630683809845922718048835895118269023649308778050966598563713608697566692593005660703498751964193443320494883458331561918497775530802195292402444349988471309958999213916429820953659713556480332973308604358477135785472013702730745148935023986113607236229092130383665315909376193011597392133686952497125245307844434097136038934531020446145297019808151668737744628486376317824340572864259602953831060905651799300424371895313607157599504725366391118008906794529046995053662138885892763816483550762379709628152744379371549026734314632926611364100274953145397482154498100104963731515730745479866265623030635186270589389184350318171834326482974157369415060077572906807828580075933366023927280906799828867721686849731807598285944074136445339172464993184441780600649247388482121614194278900428054602403568199308211634315460741516256713218400485705882870221913161272649668925270426755116023770164886345770736968684817825033516588743052093559926313788881599235611931478050342460196032450047234760056865323723499813809709760262150186169104958941024136166500986703812279464844157639861325941346060329654083910213020359433952162631663293195399806485494617857154703519779437609055182465753717013321599375712435657898477719849171266252084234380994747746326612826374209158500930760320419543292846498606297076360315138113829551858030193868502715371830919439452002113242272217419902837767190823122887187778437858449735347923802279755115527088490383285752735295803716795061961339240934784209287178720924888867778543268691485461743324032473982596862507408046543379040199305795705808210557983391717890004937265929628979284480143133406945190549453884111634702988132217437466304641835696401161099946992586940708817236454970732381556816751849064016404160004251859144085885150067144352258614783400046387810289277296045487116732629853015513865066594930447032374832615218983200202289923905497984466553221515056208798844862778392266703120805510584139416163545750525104097821014283139125238834689875427781216342195307872191101407598996732280536316616902129011923310689519464328962933843939818637562518349516446568103754146120490774496270411737298013879125256211275604976135788155550980060400599650108669700530009008700125698729866602944663204049751270531935978750275991255755687336030489606152386349760770580758303953561802676003825498008691803068890317849973080258005955170307109372388458101265283880330686432605171620613698502848017055189774476859259338859713381168454535864987336077433117245491413372892340592470395502015977816526761059870899335798676652936020870967685343230875916702837911256844127411945125645268223799663083738858386544413208643713867929442176856661624006848652914173821901000331857669291692763479755583658387325832999145113053276335545108548396747328297639792192975221773372318939941643274082859728460444914615673308061878951937451815214745136099421826004861666264287978626857827975923953857620028854115649407465818785053998876984395461460617594798135392825420982826682382983167595940674031730809970992481846846792283725062533440752966409312582379649749393643074369393763854157754515282658578151559013027216702666893303470305491784115298173170898450408365738672526664757196361316526607713817488457620887756182709457033924602349646349892032983662913109554719784671187472701513687177193438527032535075701948389984212578953364570264293486598432977412615330888821078501991956274307004217960366049263421893035489242788279401806505874270664409698872626996346382060352979682577349066673132874727632540062031700845105653442284574832779677989952014638268278233475632305001617278993052425442363989166415768305844032689997901767475927156579132145910650948991707135050437826149277628640875213403579347454350468279667177837892437734671276089679755819346268624753932780665597121853551357008699235144062797163786013996095919148674634136261688041179930352551017559809017682766464336945483932673520284031605653874495170194772002426736912063646230647137103948145639863388085920517786476416233566083252292587274448717469228079318560566448951517798445237612580421097134195546610335987166719888342336676539422610624414614787612206203969674886106079453661339430635713653725273250735086137851180626159137903784605359694653338709954529020113473616746792592211747819509114927247236045996320193589960823200002839332850826979356877994197596794093404498184191033620919401830102127987472795435573806282665177088711517247716903957042409937070116649659874855210377079768608504151318460028199362628695890687443099750721138246767263119513740110356404748979178880434193649644182956904609332198165595017088449040585963697106233683989982361101775867548969074196181568031306811822491188713971815704723057626097289713588777385922417461862227319180161590345958798378052731513914919309583963444968769895416011665748861724297628590641019688294693574394335796637796877129996812708505027562692286116970963196312453398893726600266739959192975345357037506427803493852311575132881073860192084477501960240868124926043117756865953253718049407528404778300108999528960703996710432315521027620637543064541814635718252663279924955083625425419465418264142221560273823441760832369765117728119677828138198002020544664964153593266483551870506627122342463534841277785924910110839957975302932136079247820736839224452806092083028454595009083410341692599939968371434646562471204758984062346913429068888744810256197334327731355558873300944099581959106514516930944803483910753905227208554316731992280441817431121423440388997113869242809593716372197508819209952695529335677984187662512772613361083456235605356035007136129995613039760278376528297426409399110537860926192801594419348941519826750792253818141695013043411351962015590498911945809709931705867538944254774941390001658500553899525973725702842962187990154089923438538488882755445774292264606185992198780490920512948469730064145270655744410146703741808556282809550196292625885902691855971385766974981027451133091788655040042177323527550120523351661715791286531990041838390176776142839352199430753805114085308157223010217940383444498064545974971071801414917403361070236669671653939731235745851988208027742558805409147283191523330885307719105058379005775123976541936375764696372835279255186520242103163228005178240220362260352546428712627481649472565321118998317732435360543646705547307667724944078193111681784454767245865247424284755802742129756295844295068604224253039433268879986967430067552736803934024971940780817105242284186076340422470276746777343094805842368719511561173063091162392104301474020717514472720482552475966048617875863126563045031681477622550289610406507248216780747966273359666374898205122735190305740706368864990368277656840850742747382923436448874454620834355944791388490244771419521657785850671129854713787476889030541343802558558916129008958538007988801179275533593195383321018960529246377627613415112816348191013255905154527432890875002386178987882032211172450523693482983678036635049646489431476016647079612243408669128325719322284669173613330788226433051284486942878435370012290187884920844420278415994935762216381345161350689383667956294350489556760087835026117842124361553542345755993915871388324681962669263789247959895293777400275403816144819932831216144927098964980643004012427585494713229651402716689973550520731749456623480207807414926843841987395974082403833372702387231677156883629516716893503605372376579374142147536855794185775517828720794674062113995855059187181715538881143821574227833420223313504891176298605770996977999702209707124648245533781343761882068956508322952772291856665598793111873434795310300914924391918582221781085830482600352996221135518363108348895375357950803343306925615926388723014603046282513455328534330171156080045765513761489782347904386194968035184667776216111769497621893372457679820386027744862545690725948386765418623382593985472807896525874155305584193875287154124219089969599659762492935470690585913907185774415083482630836949768086900200415317275790365414201622731903399059824584803131529969511568108082595679632217276196867626796658697631159698979320593088848415462074080981911437571989413965224753373457657311894600966915501370606798280399398371956813020793828025772858832874189426696718427199848935446444587496526152440112343030687809888473126566840065918155013710432763040249502971904615451617971229057818210791234634654203241831508668993811094802561852573369483939218678167601889555971157197383350116521901327827720939633959907935664798953952806668134804702357243303259132922591789176832078448299443865411703519414664689318390663409959156242144498605748336031500372885287316128957171325384556399497106562110284692380491883654214967238699579983839085856671279185986078861051820569335798212983661720851725240657710437490204157459687099126551289239696162385402207878189845692030688201106727390625318933209100981055103764782620425169440381324905073344791932331731854102298166138876093302184530462402023515656384944035619986983726918537485413063505062139537052355917893049002465399895717792897958682756301693575917231336693081373182593260530957677811895750394114370660814240054135954442603531652818919583613647806414738047027864044017835613802999068445815326622100624885685898171350200845215903736573488028501662761218082612429711938974588930983266803612118745788400608593684449829986838828612956480923430445699256339183006363811055311099404678260427248003289610722900312312899559308662926567487463660668117881948750848859559314699438950884985134990452085358463588026186648316615061990413394052532638461014828525226904896872800243614558408273642614614420153390509344113059382781121772441887312429583814196333102520849592447318839170121236166926102637095318088134401347679008565797718526085860865261319479720276758111830590982616065179911731070681536492807481794909203466480763456163102342216256970062425038774143834142998845607759861665670377894182865427364928694951289035117175555016355489238464114176371844539599496013739246012523040774047859491947494795968932707939190020666694052458624234502594810736831548637144192207493791574785329998056078901726515529355222011329806706878747575128790388105004009532175536773345470752745848379060831914045046757567221039484364252703428160034879297084495031969498225887183689277044531262416815932657741693743487191769438672618911167978772620457703077940997674031691761389708732566520615001930205433384214118018836612465773337394675710486679396931746422398087692768225890072357892987078957653885087625945770382533887052973647205965946239329684683806974055646407717314431218560274563851864712699973216719136896700946879561799270606070810277997769936323841105968564735509607954843558135395988540320692221239102397313194997306564190969381673548223684646829237046964964169046560636044202538097180248513208663381105292100205254107543658397970879406083084860439795230124402158980656177423749834645454209348632009325233864047536624521880239502976238729336427462178680440008848631798127288530856775632966740837379058585133121631610691384131733739748259884725198767866535359509218298602091939382353975218042588394730350549274701960389856282511120090513854914892685024847359407064085181651572490451240268437133249446164817139489773148331687334969188488604365754126918317749636714515449879842039289281539303886153901575271047759870867138055395486769611128888209386286907811242571994611607291307408138793579939056018029779857746338997893432541014601607332768129514325652763789282100651911518291445265757663838791623225276985757767516546311227126486908855285627212557832959551188823095240931275029899697223143501051226054001834545623754231363116038726330972339768862836339207500515063073137720619215736384628154908177837261740786424877230831988337573829275486280601844802786047165279059124233507696693185457474790055378371109728477425895402737839047368352978071891627497182593803941408843772177030979024047484300344306282566509649295718389121473529393318506492687552920635140345212936960041254586621644627739352282306588166893469352339113370884083067478090738823809163254920793789070216914162863399521599537768180091201545703533658767839513850333087613046420541732426638405379657211183597477645317049312717610289081167776245050155050573999043980178061671006913230291020650012459910875474679464770704839260148579778119364077495353281959684502592861318426544239442597584673845754514487609722385844639635856044262094091738529060741088743866688451547252987778515011697949867250622128764437994127964386023047379156784428199548984843185062499036336161310244099278674272214465399658787631483122480333537204292785757790156827281365403677429737084397187291796508465403752997826808704438106486975975545073373077504859160663150443130978428658727676627773190103691471601571340072268168902037234224164202430627939701729127822387774671902346567399987711858480196821093699276495235545620216054547964946041062807238717003322413710047808239311314677594205642556436897283735518386570644094221073916127638586971103370579060929847694576974911203874375457702770899169100942851975872832587355709293604973157186105320573316296472168812179846705060020221114242671455826288305883289586466445708077846554045735563906183596934564065940601851267429323416429565632878492204078604099386638310960377404324078729046189110463899794285257836972517972972184401001829824433215607517575936117232941546319629853256521148354086910305216647905898568609603360221388507689867714657751914555494996641135595153114028821192307699297649461833539203183117490720074855994860811223728034297501160454844889460333035118784669005146250844960701173697082696910791242152014265895642609290747277558108575208578116361248219469006349416769485590328566206149462449832632848746366429218484359691147304613916041729305038370981234203632738892845349165082391373250540291594279190593493343804983146531443257465524627543653586144036707601143365987626251766973764834158937521097287001540428023330545953954616245244465926599443562117576535980378846696320848002903469866553515197175259936653840778291725148611197977097423834835238345673167237317841829108386180474926171893948384572802433369295138011473419609961365696272225032267383437034969524129583572319941144133920450517107830127148816470816707550428718124092998047000880359556166091574116631486033695019041604142133545480442964272787455284846554074879349021205189171254794506447315023452105600886369168704191603728356164544295271783885381658116986398232741920962623953145086387584577707830457792706408723395476858798625000098368593414714962767137444867680692244794409475821752449619351057207240262723838558102095394764524367683326644978150502560227639136681407084034082035682355509429390761016689214759984189245628263731487918969649810212122766450663652726958430473981516834248299373834492256090112530262753090992445530331768914706320296750354623406097744575178336275467788853012667580616400284185489875067148125666834742313357736489965312719500126383710105261868489389800397230315594741537100173617653613996132449720500196477464679335261700272256550085799623907912677961271054335844013792801410675182872440583112733318206500224529454536144506793039870291342657650363053914725760728036600153720481358672638563001842627453544528517528414234363529653554337478220195684568522796022434462237971773655234100408828082059343086253642354588161307865717406293763731763956592145407786702207250977394527993686972032901217025024024085402283687544297442130975670894249610931854334850108585510608718425070003283320153385424962739642010685807790938451876887737437527759808316352226103459149033648868692633862999420560619009651438136617241431950559520586290258700178550213248269632040387970815649416334407174274421042755007400890197766406157931394268008843995107030823771944179657531408550877011310982625730641288110985326394894379210215857989680591329071147372242612961690974198186599038569622522441524929815612226692784381494517517731376005131024094374285694450181380085748008430959219448393524550638516909291778744544480433701937418408116786577515278949094951406821471352921137914781020527458401757934212319211244202945078397583162735033069812231386940291306498326762592498780172607309716769392273472593861971436976766422001321474849629175830209833796992918215134151694009786186949173034595564499615435063006507330403605220484677017473164910120833782656276553301536239414595045878438256488923274814086933559936752749478438960856045688410577186611829695694778673662292786833586101297761584246981300749550352144820337151971519948717455436354180707574622998898711159531133447161500765959035523983981068368045154987417254425621902551890549333717635940214076500482894312328440119327661770844049120100648211073854402109816167322756098435773760657685430403876915071274305814372712007572734434685668254212079216028745980027525766857790619451165931121237600393052763996925377332874356454666314446438900378846078900887340542925328962731566987039623275423750382812973728345694495308315850575516845571219113570818137155730167703731467026768653708138111091185761970700078643263917374963092518702398867140778691272776271739530691193234979792660541111615108854491035961697971553406634982204436805685054736121248935670448980952935216303008293739571695913735935264793745906669758025383882422694305238470980859643143471984341724399272537975159605612466612247146444732989138535107043514162569775275934853540497886104847139260225058449983198882743100909996943523479007661605083719922716474523064175330893894428915510924180042485525325364293848425483905035932289208310043274936778161818881519252338284452717494913602611062078922916067790778270671492016924433417007274659911201170822310545255436835063152479087615713420430006727961303895817013480862016770359025341763394081551503889428461522963402727334398655151519283305466517955946935943572522193166316317795552368722415791046551725670186351252401470721115254922808974818404492127194341334908582363546958404645871023085133911529804649988470227792352199375175878136962443330369786064736995284060396605385012142532788211837465646111775607325775685002237325609824836085947758529084555600201079549681733581773880539373835176512781625905863751297252468633772979584691009387547287546731630702748468700945486563438667657902249442958760098839804372775780047331695524050544683498650928721654708099955422433650199017354752388815832583377157846709207609067662320565363329251211759758540330931825997769338862164685690726949821132900514454845587259362826713437426345208864789711642323185864762411592455558302250942231105473148444875449709168017324318910220541391984622602316873166643616199527612404486570764267471065898269788846224600783802145864729803936971652088981293078596627010896159096270129416518073086981389798018495680733544387889880259574694795393266270409997918190497988162024683626882241720660535817923719408107882809582431634709638530387566808220761843607532156397741274568425343337869781608338645533513201888009812506014998757859006659845194225414655001987640806264314453398666305189124146738704886525847353384327911265344908683340341294962376903152777272856945660375557730210919031609581081050732234411338956032560446167961216717566211513369451246458595744450546528493083747960391541852626857469458314825779836406741676461138366570627187966233419618705442865918544810540250242410388296235012036539594424214072506799736744980260199136335930474489099212083647544579845362375602788823722342702141715691527999556859652574781402792872551438139223639655180655343077678944120419913490417507565691586471010507431356270413771651626240690222815545060537203456871644399543078188272641165771159678913970077367989040307564832732660259955800227373645370871653021652971618807657494607769693817401848111439369366679053536259385151261603111674175693501633941105329719438700698082881450897291230326838512544937223627260285681539168238304598899985335831954883039024419988522580387074171283549415384409645240656783849275988792581020421767544634552966685253998124317010134464512968782918223462840403424520750417147430854386502612124960991108332138207611058710581831551883751229739821042132621692733389729312844950314852498087396285176642635310937767518206895019617588857488428716477588082445371123358115654041907571057816815203594095369943845748789139132627310722360803204896856342695190870033220516322494830236418584781433812003909791615589943150481844654380679309406692047218299428524703117885744815421107623285344510166324064830321755468982478611044292406842420042346916052656078906147992301798667322816510087800616628412550209609286548720857738890245275649281923976895557244667771791092091791466938344747347487562272119582019391101851603681020878402634529175137602352246846409223797971617845533656408693455358928664890204081556412669951738556120906882742496944474658193040937845838215814952374768621186477775618178973793150853291681853698386051235049404212303631658124813333918242300769256788147325657728788523711038557080286368525110844864219181321694446357354827358165019554760537383325441544605233005343092654388506767259309510576828444591929156531583021103726877786821799037349049311238841615687190814148239813192545834252879016345580315080014535764561610555249464259789826999841704020730937436235808030631952427627528913883512813838007095055416164972753483351466128633104390563685057247362375378900134619999434890274286199832028168611736172692795926008199404384336176904532110369609742138343151933460393855253559144594774521174218608523572383175071242606423029299760447332641980796512172916587537557089913077336920490684463125119408724013691921026671054607443801077323560948718081601239851619710449505982209199531158868965675131529134284562461261812731024744859106256149280523882747926602215058454712435343217168382497276567511629731825960021801142413565378451287924879685447850867974620474715388288652485330525268832702694382807926706954150560427216263361820513734240626510008390690495906785950652415595397998091325369283511018687059352728843539417549714158495526917093962256864343908291055027781031981100304551899151130752499815778707584197328618349959042884549327666079329610880781821652726095936651575230621948253945296109772458858590984317354170157841495481366463632525487794119036350879967716590192598805900585690028884127412486672630666234699649625755719468346583936670250209714908539786126788144648435000498583960985921307430986433601745996130769830398568702368452189645663290197374083629113357828470593437076942845667967694173212355803933978561831281491389007415777211847868303636756967973955199170240483520403922671161032676997855388418391868826173615768461676446888405295047346928355953260701080175440547231909248127094890071414917119654157323643779442580340314317368038487655221205287071780543056053646755956951837767161872513183672212535912950862177512549775343657721729391427603413677431704514976746297721614946019898564229624764695092339611249997679861602221822523605458971279756515188856884575036239874238849944469166073675261535209300036073724469781547016751323680885728600010566255383535376112397018709535170039354172563634204951576372142245557838366189145490531395407093484291617988599564849656935424084513852688885284689347189816409710302051656426233955038744903362389480791676068205491794979668890604191877872210486420923637265124858197762965588577811662602595405284456463170263899150521373075284477897539945912313475671833674997768013145075054683858039883469409187985240937524122546110607086897157359307373170872542086124559299193471277990089187939976115403010776787210323844754033559323519802560152512674087604498496747033286220464294806324365507129765578323459339176917700980197801937020965989494929014956835039737784185785927915079848328219694894429180616042292718852751168576502266609204029442585209422960432608890239587797724714342892317486667580456632097445237592278548249972671752347500050152093852107455240331104437983018241726861299334743904709219213427301284871637935587640381881010386388924814226306632136953930378296967858929217154514309156849073081598462528462468340751339568147252672683642973107891327024702796586688966570610385655004370074205974557590222547090903843473466827180897873954106581728616945108096404802590412159698396870051431403291453851663387889205367095131687786721230449548085070466389859501494236485350238818023745608176319896331380904867989453608169089465892947578504101172433664847178260956956891632878197146727718036121798995524897869195140262321889429675861425570391336985222560668640212916816588836326881632853290606539295542179043074196792402169150148820364108297806335814804502983762693559134505678063945269020000148777652802260375149416987875109019544196180897267798440076477419598177070171905946507199996762310286420798862673598836288082387465779207543690294034172859346786847276692803471541042412276498744700429425702567605396995135904667568003299770008955429750835943763792343906378063810471853306529453898321422015408445889697613340430347666513499518130564193369700306018001744654363472560181271127695690165765916547512564060913708227771014468500148020477749580624429368420580718039216428714169904177434995535822935560819317854503066410842582323078858021086939130155282838406476094176866824801541223374970582544688435204898739561698642827033942726311495912714569036822945940151237804616912321459889129848392800130101359523022051031079680323306026178970364099983442218849737912883544389344859522230600847516811795876084900039433934579699772382340069122356190130649403439148038034650069638936540110869782612888145771365850464984450120303594089865249550032589591730830366088855798123219483539930269339726948257542912975227701352182950170541740302131767882359930757961301532055566533875521811119255620136767531050274882163960211631302098236821125327497384366072123726418118938142819868959357818548393579788910078207762840389867928143588338684484250886040436011790367590346220542740388054027914114218071428776160812500094968955257815836258821904626843673408902369275605152100096699041181888489800780285645055468513053213083670625093870887104618455742393707255727349266144454091669292080329927577161920154224226398350418640778165312593366849012854022905830438363371467892271709110058864508130994703177256223680299825843111599383789742110290244758908387725105989579019857657872253970178391819622984703357131914194853012679867863479368833478101745065817941939377546726388038904208921030879169239245196604796527801839875529114135316709506577218193491977381989526387793939402880255883440938377787171778593310703265883948085151618699511847333289111769517111871995201671175215884407957490081400762945123574744610598132584473330417429047002581421377746923785729623680246014044885075010596563346106432331601521449727039001784696437528473389832845230130256063258623886952848863022846083015348205644836879764604570010012484456855853354481512629029221421798380478172210727834893081943637282108551058716590254785476216687507486427507410789708255921461711466929592557275891760079689872962220502970094227632406818038863986315563836879938611133399511757455137257455470105250798719498701077751909878271621553887154012986846313261587814011126831383162516155934322872609990398576614657366664721191517845589482275904299503926218656981325941899495289684682739202013123720897634706558685942018557706621648627622293805533782915107278297837653683329434705324005450098420358639442830529572599037478205707807190549040825971688451125940418868631190024311700555351185234587209852236142165559815256242456856612968502164479277443668737004749538356924837412036149712743613387813919872199826998039658200006646163071462899598207963965790851582993918258527705129068260862415639110516802046012583138333650471161763768196943450353890359633951188191855236496006521702955487216361514487946243503135891658843395026871720574882033643322453727225079059616182901309461526548595686309136598197255209825290249717250677095696312108348411145067745093683107828563901399578429852024713036194190965691419289552422841971956894593869760143374292167303630037774407528519703298196783840043082876401789609332240285091636529204659074904379792058253768483893186796929580078973666525183584102715955549579937063209046849359277811357880858834827192382906213871760226212527612602325119543794403683423926262009069232426937858039052782114239632078396237608637988355351423778320217611091710202899428105037934803850146033712429718793891217351725380930755726178470290180050628219852729972644054171230153742351854630240283207058886893631350739998903552362459208226598304371977135540799540578131447229695051200340099674632890135219202953528119784286770544732070344089749045335299040856482752242403477046205289034972509427830624746574709183956192029049855065408700291134552601476966968054745772418678804466964836667808263376462736318938478858302461154685123386581658527122708909539828326538753999643595699875625721598215238433444351165552541971371086544846053320493542346955864422348488770013086019397556466918753466823342641938568821368791196785419301857753171868641408596136503294136451966051537159671279997130428325570736357049408573577334937675353500554385210999389126217332588075206463443711181723185463477427670163511810223797036643481316184392969456039191791308667417129110458392450500206375383315724934371236062245897944294380594506464070866464732300405425217944616925102324337979226904306205492759042138525173333989669326661823383815463550216985280038951905359197181892191866742113533297848372614584039517741245518236134562780278106485071595931000423886494858465457483641679664870932403282315489102686182438614379100285753466690317880971999774341180826714821766696490365136210276611134910509764134431377387421544376997243893559011095046031961026624132194886174178048867230761289636230198101604567838929172711772033020632864758740847316530516091969883922633832635732183921474245400756260904968655771709707890766992223939650836166995205483448937735277549446841763752436403801875474523572912271409449331714913029237721340258994837691389751623235960412006545579888068242038020613776585607440851257095630254650195050903048705603095934567226796289022860612558621784275545651556625026060452727597011101170497517917760167700255016027384619037122680845480696358119309872235975672089578665816783387952469713016141443597551369656533199795692655819453990535993246378331379729027214774028953851047326410191504835721160753901639690553770724319574613328579800149551569230697369614476048899137830571571956770010618575557653293907326934475095461833154402778252559051371627852855327106537661217610386404434380156831403272376913512244700239638539826434914088001542746279726383818056413540679441011086320016118508995140981948746566803151290271835049371932177181726955837320262113380143970304940651951839721110593839068235992152345291461845140395901160592649844078206543859918467749664877458379561121361354445196591893310862254822972403251340006873319140059277890191169528898187223956234653834440659229281238872552330706596044193094358669775947939173627777675925853908571739619519716409064844262027063754283594925036990848115474730667697713029710493834286922805613718540252354587395207772305559973845980791497576296676601982282821211095070026601884931778384746172192470737297257487307006652898512696159618338866000705572329076393209925566315462531542392777013949302323479655560847230312548481646094381457264068588110907917707204503954248384634476734580871519403717262127628568479151164847766727039092205360176228109340546614748909314651993018417592862505543460103441784251556828465980518653540059086363002813498736571768388550991112458845501623061279634213121327650397514418552891939168525078128442414172893474727377782424353800878721592550970616982865411254526956324929189819208670327755268022973893883561485596013936441245103396813949124811139328301486276889333846321230963826689514653644850868244196090262303483135996914626880700184674533464619075419381251532847208689471315263940286310830126064039921313519997172137992957569031823654833826168254254707371742901034885845245825491183150004747909931835541261035028689391860924207927518394094940807202328678213661260570140794027290091339617041567799675836075053923624896331503175781255849797791681962161382501033577527100533163682751980425563474200608852472283468500723424146027650208519074558681434190029232118478418625221291990677415935129160130831537314586604298455626609806780711095005656443450065403959900443534051534051360645210989962650343072845863111953227434111449651892346747500599564982706553179275292710536095500260989790523600944189778503197188224811498512447137063025857551803505052312829520924308492759714537938016447902907395592854741100412648944604192533265622371828000650712129808096277267002685347948626947723443544692764853935440275805780900989535684652766439885609712109475225350374428715138566237348691247880793939481299622024813538722164030234170036455957776698810931041977503067973363783681504980055851114742013989187885228169080983852625111389815739988731912930019408663392122294973684482280307083117110796159807453530051421147044962287931922296640724006141937984346827699808184736652411031833167788992697944073135837126956665890334919193210991250511570814524119771407867891570587262191381430648036397577378180724318378072413180393184946221263686429258029441411074464936785816497708700047764322086529564585836161050719249260178566305500532424786186639558879191922932850405015432687825843443841466837181144048859096608169635985917727795477955798693514915243704877733990178594338111765368536606725794951128143792346939146197989436941773992062986486771439794516938655376172378735749266430363581021565090996775820150134686494285683894490163360254744960400120273040238325463140093909548699524301203047390563866281630176995166096581799056663319831927405728069866617969507882015609819564189448436569281687501652288701062409154730695953349326589838591769620036155012388299538731547597765482216139459856892846022576137906188708193086209818254618324961115219960542037524697183874474570544319020450711779691353484159187945174493702942174610191786653322776636880399491126832757459137605405393620651717586843091249586335477174540076592479291241945402828211025987641282369515981030901939591930046165270495254552341041273017055046257380696924232907532305590516211411150074983567858827038771312487691860545009940320306423163415336511223516102744073747548988447279877201052638879325959350032293206002008214052868640847820932472406597861407026998608092477316305221321689217418205786692066536560650928693385273772017069137197550319193941540969638153032771895379909844007597541354943763800183716899584599866357917021782146073874785919829955375460395862740558639519441554219318567784634038553320756536159924588503155646334216821897016460428935206768434503010025560258522298001078501482750907845969685751233938317586264770605099942473153425033982549209816143336095712655399918767698354608468343896958009441637213992491589942938053023604163106173340184609874264639569785550380839064805023305474854519676023573654660839340975187490158577120739882401278126712706626201953300230783397815526744961448519170740958993291907835205487867783042183816682274105358616248640858652209687758114798344497663738880955908646143855537467643245600536726992670766370668084029098481559523251121980893107136532599502998593070873620362787515993959318678105012987856627285735170911019724306960554530266257242142422507639210724898521721821340555415794137619371059012542256534914454104742325369622975266169147148610576488614218197421765319670712075796021389597863847048624116592214100953898342268908532943985298301038428662195442881744729902059380058039558767207472962388887593489766461492039328445959305667516090672204042801810231027590348786476880056629470627756814112780998391538051985050852296685336699139455065921713007342481432031745555479332091507891517034176415459720602792037141094330742477922813889191769891319355725747210763118365522878742602681564333723500548052468694988238537523124425101675950594236539202097749708828250207154802266168568598281185579661244997094800059359000884645394391772653896975622218860904845286399992523837022114986828315304039284053121916229687069920817403013890597821336881067500061721015583747912632647002042362068195904403389241400541864268918691125585858765900208438391771096711413748053486020596942039629341582929831602273431937383187314873079508851041099302422941196488528821859004497163921474868675887525668956952077888764937794600375870802054632756450055997921755244199302627228105997036077853408296606781391565649849676998595600413799078125951210074216862833897608900345655853158749528343625043600739917250280176089999736089416513822470098419569295662957887920415613519580800971676224747578415080778029993829349764772924199203948372992347275571964773129744449607177970535843483339980640064132291994160110425546074176462310611995529311088560320375678636565426394989222287079036744806956836910782940254116381805419264133553876053636707822726217030343905357461109238351438262774285921896048454861787343018295578984707919005506457258845567935439364510915052729717112697946271360765130356557880603315921998802565619302551711711508782502530445525750202303883993542111172054749309991971702437902969489024848249800430039041982374696889713264969241730795575819686769596454153647815723771451462000955043359213596203429676294767576271244405732662917900730928756346815688848852394136699037929261514466089382991232646492957519144265303144467099999955537657626835116099757097312778268994206145527845293221577838844708361484013082384576105320349920438764973703452833796511177330225311486123888634657724019755287092751481127789755618512981297130081327608225513086078925662428046672361926109110182000245602982068319376239999267527999864010029947854664206756612193503834873153454937475485256045217622115362580856635850214205351742131605550428355568263982231692992068689435657238202896494220113713489327210851172214151536460457628464795814832054613127426520297153103376029169229595803872422677918902515852903009694874067665589449792075087985789156948535510155073601294370040654444944312245893267879858946813745190587842210314927196076478903948290317727022503975004937439969088878284573550543290849367085513172393715691036648194545686270415395210627496403032285113672375317779801685890653740674200728914717083080770536556888953519051186478215289217221102048395794945291090522398064238817181470575979371580600917041122067126583375995043305572532149350657788003436171597398749748760878737058610382343332933325299620772346684714011313933510981987152979846601872724801648661191260091886348373230803272742452452189999593544705552499917950756898084434574031532290656317114866166129188109535123226528416395302976650354949511688849260802734640184312941145951124130081587330760648843497224308648000795741906217525864557069045594149729374877984620037177361818564735094174985160239809014824903302326070197003475841740487895644167939570317641995708401184835227591684416490541148129208805101654057224898047339646884873967189142254839774227481342687613130516791844827985311661494021822305939023690993453936051058783362267705491573327654413099559292727238459023593712509393436434771593539039533795344600970734329146411617335218057666267601780080905608274911391041076061620024779104399027203252930597182570965236168911899192540933412293852029757651920367981154748009221543208467725913231113529836227015086862772793478773896258843533888903917137246122951508148357484550259419356380384375741967218065834669128352366583642091903373305687616415917324980619450149418205676625929757519896853054679665281746245636656239213401386229572993184749906032535792061027173742714424471115631845219214939911302359987820994270264598085917898706567132307233021164318928251951823876649816657559418350406035124496836640916640615825083056510781847091869883587998347836542075454166631581079542854079807423277859756391486614217458857002555756776752285320572862132586774585581141971222389239833296063147229459335840688255668459170381171513559630464901285291566511587328078375418380436386067174287979186853223774062322841737552212853757191020694472572537181493282345279777226214668101673578387861422825713856496796688326790097046674441752085956449471388796316453245770171071857290468980629476026325689309468582261746678668893092284941156554327234101605743034576990792617670134248727695366943586690338013743578195132561777354338685559860797939033828967873175413600686142015806260914902750190041873783856773653910867654682751018430631955201329650330264317844263578769302422420801942807487373937972557676909212213459294039208804393139685807640627676843250298877728729329317407655027507302214744285579075496443333540365102737463866773005263486518852915277890438118826973509675746571653276680244352420992863551242131208424608252694686096716649876853231303376860187915024363890393790107142182880912491104799981012725762455630678339588039278250501647887385082965099037032545724591523423663747034341952043449724731473441037181173677174748707313055239421156960124068049550802782173771671624833377122015443326888148608861477253721380292563489258209420491286950714109752431250256400651345120902393198128549553943312247870450805746447063245301981525908245392819692106105505646637902018682801844807829794003484015899946883660699804026716726918834214573591438155353088724831568887630920801895368999291938214424208351766645835312563706032979151673493814855085749275751055072168235493174889691946616111747117043368280715286764797989011157484949571359923697301143769673621709711280634722085784417419112574276187813888781988877286416663278173868358161550024590712359458599098639956796392031875165730966277890720464803474856847402554909507820184843285816662534312405476227511783321986089646621600344989007570901869303008576485355702461069349633331432848170864027431043690926637971954947060419405771490129317232876228574039128933720733152694421936754347153316275806442355051116692645339599200380017353521132747716062363558303929272761982852021184737051610478694530145637745096263791643021145126912012841055672416537778179340222974787379592964986084374770681976777104594795130306338011643607466303820402820912664947821866688120252801179644183318878135161658323991628863357154824519206513481664371757233997678942409439806176162181914308589734270466383740392616118199523011469715175686064196681564793909816035271778622584802611066560138033136909529074910526799095933261095527131367893694392433789733051807182552872940230990243958675818934616748397762330920721165353192420172996080221774444999048285042760012047398553968838546171985920472524345295416041271248430360228826048778903578691890345280913666511169180653296804093314105696653108220938993186837478489723118241231732875259221985368038192433007457730593175473568752748326802758909792311561515641691084312041224412026258520863959724654156810311281543794014078749086230994380467382390253090140675757326140241240346599798486253305746510240693479297304852147272741682883922834516652368865656563925445198542485176687192487358722342181360997434559506072521708426890031382387387804556887720381102575817190761687587968360700288472651966926345176317978417431005392203129338984685053185547048140999148255171286242164789672950732909607220031921945295334264414814105509346057067601671127575432790029714794479808386396390258057332737232110843727516076219441698282890063610550223372235358346348308234736412402489016380743698575206309875130634453989999535397000332164158579193577556460794321391708941088636519240179183700188555199219566467970419045699891955456628591628423825516064078339177736733691889735480332500837928591176254685475313397751356078509170350013711198854980064929700760959112483359849450222223268604892332912613755009600717174700332163220316141719645659349690848593221625288060442159385947895717686793593231563585803015538069997909892582842704899469960330299498942656467974349247065166447416521022618372048091100258041559777412838896508872256918650392314221884934127647352496580419435817620580965367718246545001476946880061483667924821461013364539333432152140114663661076263312659651809056681629481340832694575970341251368393854376542343793392592342542649133637110088375120269792352900948088058619949088136294008209954033847840951381853773946328627118671247653600911392599331010416671774375229290914977807888666016358657868413972908168945023424254717979445127256955330902829188981753532703365060775680957150738020928137249109398297902401741802219224220728700767369042102210071102832544086323441347382200139779285656834858727967270258904900616222614426766579030403705948071568358352043749850187379647053920473611102307184141367319219005860477105537758393013483899978843313803078296262880393188324724586675046691128221944588155241228355353725443575203910228881306697713178091021324920470255732654059743643792104673591852411815913303884397751617327989228619645637181119695566154548761505368165967766399204153496481225325915402357420451208830812110576347915818256276769082211055550393630344296379623944678568956962904227130690150078513023315595324485604459033869564785212271859608997254469914641089907680660879829781368910136415265424582849025609012815881723747851473960093454562980647164640710941292728526835375630653716044999978204101135761251400979106431911696546658556757743694165372069816861007133249275891030295493120945407583936558422627618227555576657177719625049945439098118485012301234841415853554284329018497128862310077117359640764938170981329130870594228650374103310749237538501832015978245158878790282859827976303872213581129447806344615858009687949395293166705765265108900708231300526523340810310766231242043958229231802898410622445812765431705815888592627486062324932403033127355301111142291493982254100358128366659251027298621667242715387035522600966622001701423978079132743806774063905702306338161879831259691499547372194850185498762357111128797516130604567032473090636164259844851885460377161798372710476228373499818988130836153504647810193823675772875528482972493789532654660336715075563544499087272379617052730771118336226071107247792713901113105980086111670756050017727820272361275845435478415168803514054911655208309686644872614811321513859153073608939198112783209050647272313206848512087616168190805648755789199232746212555542456834419558907868761682014530661189498386546912736509568979848963603432177086011498282208496531094173932189369623859238535168634888373251478792877271913650826472906188877011844251729868020461488012869897763230675762721634318032038885953259356757164593965051389891586011474056943943332732103163861340267117754338809471345703449515962402950871433299002399636424020493662259810787497269518660357009441431620541089479532343724910811760307894108428901047336909576440404305776343004108891427305131203889342911248757428280023062944506773561221881530472260663468752628291229183724250698178207966831744298731061885354886856060970921074961572533101740204019204795356921370949939567197362835693620838153665082223192943344750346026595379906263398109255469920971262707649863481960824756648198685035984776203621796995127172964980561310541424070250023444939056184998736242563175910068440817226885660781085998151437191221535761263874808508035805873636224208497898575542368360840019016856371442026263854789187157671093701528428929030809052757940294434208822287744255417576680682846117753963195927606507048837289903131023476044430015902091311090853804066715496490508785370301052250528344406097496812259397754947829330623762744217946343571549311269765231159705724054217167210868667340728718398256244197342681935145617812728125638548804889805274610440388966849745592302733126095223510597719460605922636415130205333444390237307089227334290780132907310921631195568077230451651420052521145009646232738933935212448800503822391053376461426465500342022169751996406636213398245423920556201388921274812828586881650432938545674141396816166554165383417025517047077329446226921398471051881891416342049086340759529014181131701369672500805771015531295206362865067625721148479421102688720916733808273259651987777910750587694134930458045309846670801540483827312851007120897352588906630936317155802351739260003306434024472374437471319066129134338441199398414845017262479170312071893799908891293958788904185469814954440071436223755765287007631569118948989349289025522777818024324913999186635023985406181187027390744079923609806946368307360386725737987487447862864412052340618135078500080730745662825269295478953434884150298708950546419652520294598315465960236900236166424706223182040154770277003577856062004939270574182955019401318722860889190960543362926193087560532822653716240623842629529568933388427660543842231660133766178926411358676655658214327026902081525836373298623633901219227242437601917634855890651318922755731691365359500352204269181718498519768455252751936616601734040756021815432891440360841639613933778518842001393302835747327892742358611806169551774775548980235492154852152533821140181855585494496716570236814181298712779134296494615692380149377330733577715007825408300857766699972069526398779945184408619556294402383727072479765275792547692651537784495575053317160725668296857359235980776144054720716717377584938314735923292837309597823018399556078659780665129769694909307632598379334880099685686456572021432525474497723935278264923745847137325323969085277099792385442191959231992701111847159012580165773695319291779884211961466423022592242083923201653339375601291063477354462148246570421414254331157609113389761719068374314546634896908712263530329965950294485209905142255614313476317409040372091986776361151392391942875847611307689697687229743995900958302228817869759949391586199342404307058958525872278355204759901600084810717148769375969774753510653783671972790975092184750588951596282529343788454809716023256550545223111148563239566948486724206954958616598054911901564376744641952904188545358741392920075680049833624686702178969941594060796475796979784549993422965867648264052812189971097277992565179154969190611267806846990251470847179384045920492211427121063406759817655651996250044430921132268958900583309013272191436907518624642952364855234247758811738802159228113168446032380924275508744299037824840040805095566312525254892553341846361119934883747036161568584022320101390592353286005931722286383939381960126075272003266348574220671685860407942770696131647027855091770919066111380881834900821497825917005475010516895463206193071365381190016188022494558033128682526232234603752543606118770634096188420781334887502259384128525934828449352583823249935302666747513057336943821421848835549159255316096616909544759793370736384167744896739013247783027896492844757220189230171114350307821767352316761569360849093891544520216516989932615067093022610572312704087404251546440061020680459257806488095739590824230167849058116346253692225029169749869040688326062086126454792114599407914851474681536789097028358316679664209075841223025295930799585148922743190981413766309760855113389693548825516258639303484585144236460100560053782474627542853572537418237274520142098697937340864053056193175831858431841272597070764072434069660475270621540126258388808332377944543136645554720312193886829767385471040042216699632698634273605000035638262011449261836709640035566815884145526816311718576250300245884837168738209212116686344472488883041787369495438493929206055324810938592008455871251273081350456597523754585455479004967551279210295471778720099160700476072243961408287357824104780433065100587355402906263528220522252788245313508706897669901065823008028724334424528949116711014581994157719258196456766111506388318090432342779947769409984455797613403174152505266769657192364201227068513769386668439309232212354186114537198067998341098589676835637749874988509130849274960430291808943688220852993127260483683524223264770943882321190010911269955893544383862674908825374854564736812884199095721178712294993988465345301942583677036737700401766397397698233595317002122620819520408958555780633331874420408592953808229728077531222826754217072289666799615545856719813719692299636456996947821120612642710176962592350061060076742047404582035927914330268199329060610603939450089823682430976953301479289796871942021131139676253347930806820119533953116391785565854292762175198003859814516683926673079030859395277830901706265832790696575427179190554104182001523051154781075176720281457547049791280252384871935295062466216237393844190054567764928482875725927025276343578351116189087395437278751529072440123021287051166674228062993383243640169178276095507830860049750331937845445269023079404498129352391162475821882503664253650524246373905567522638490447443842136133268161687596960050713800418436081460085186685513069533907636904141364779126767574002003829529769094437218378420951504557837451139293645959784371617643599101204083396670207979715951500454755475077916181477662021258470021004639385643691204341860856094113246216606687290981261535857499478040450268096830261076535158385533631815609939809323176473111921287733758841697084212329970040945333829933124199843318132287238335696485574307606274360183212183099841071927203369302456059439688958196967732476966810170334930774839639774774116781806994614240677965103908950847596744183294021543081462337163560342119090923714592125141880793454353130858266022243701461099006800706234082693791574035636494573065070952652362271927920769038647888281019629658113685216067832755953946470430691172710683052497275496153125286670522263121028261381945885863066970948505160667671802712248976805826669513931422134770597724263586621843405304905547611683961289687954224878735461306147924605861994343355365417039835409547402808719015673852670002610851501889756592531332836254004995859933423621469407934339449354933846763482510203708296897791649702496238945523252439984075272410223462971954092065194669097613290697728308955216431567162605660059367238081649947149410349821662096346757832770436425242613938242474160816133053638101683326902785339713411761216241685278762921560319162257443473870266133301423878740775577321937408058869989157331817172130752194869555727074614753973671233219858395068015953782984251970618114244067981113332572918544536739143384046978015010348054963039007697302262650904970977454100391936891178549557719639175413851187256280455668168217566666895779549191271143364045426709773263218959105721629709944593988243799471045961058630215623988368805115195037853514191087180648370802408193163494006210153270565022078470820011982774513144522126011537413809694393502981101550693626405611113652484635273730020104292037849774304739844777183589908667383328528364827937972720093026390778273032152064559327920343611415193592206884897932675562731510145354064827747185313196025158818618294058047131247359130022109426473738454673694374887935225232640451567654528466260519461913650242832042840836889007634271453594575337251468873686648591835674377216693284239255427532449299098982582555140836975875688352040794402967470874165216468433894275559724769839829980190606582821130077771254611037055376716742681647355718703598886877456716090044151277039050766133935158481959430410007628171988065331067203029155615896691854270348924796819114216517212265898719965286384077928140052472197593212911651024663769640047928211099138592927808023742542337595950971569903780678451386541383757086572084306364692491442676408117480576437786838765824516881390438264161316456130276326331019557389366330036525033482851691427995677363207178650402212113587015900200282751859474596013578885782347945898263423653465748803078120794684142224671790739981574750313689831427879115671255796025315049559626990702717675005524206362845405388941898684516068775288215094772556764670391526808668372134124803449303069195137376813379443645297424656383903263172985051468280780795819715799798602674746825778133728841440881376901553491751866020847062942707653812328708236074333759094641686819206610967464912943607925274103956814667345110509286954604712818538469968022873363337422790293480454932218970737160228370899660044478305238960831968050789404579885961304056854357005292066564520240731234013145665599272384496429270537377199818876627982663292577878445813416149454199507615904560755349747753247539041747181023225338850921428535050365068845227742264200062861225544472373779733322645979098265685454832619392539069206075060146064320862228642172256570527445022753548673110330744270960382633618344041645501370186847736461336218015995983071227490972883707934896932735850921343495830225539564567894035122434642667800986009894135067412364466074613014699457539623786648140454919081280300287600972749969196807837754813525650647377602384976704927375898712193829201944380622041300850200704873205996420867677014733454520678810265958370496915664619527037124323027452588618594967124738510696939470889648056704349395012165148247973461813358452553563570057207746921747073738638204475382278730935095917170546236944392572211358490177142856265688324599002845622592148640666726924592500770805514420257475056785711990221980349298459774058333952656886929984157436185580565669640427589352175736018302512883767935010221795545928269507679153687073474278516166546214409285402928728643491088902477508519572832419997056989757329093349692148182598438062587886526314613301826298361894497039282160966857505155014709299309914221413536836989740903729857748304511811540067257207267363347647165820981299172051243903629561232086287904273377955362674967437280577298253579943776575876444733656869616220921419661068705397374529702338354102538463358182062468169585850671223593950158011613749229713668199324712577675783200078344076848442246304668998176746871432239410526703277276395319844385164443996940235741208587843285859036745304787766429710494500837425341104975033848038055212693556814214366413942056562563405595992734650676213867619276671397726822769090651331190687807185380147708634303550731894314792289678789378004602979173670660428664968000354642807558039134067191654788443961653880876619973520365464325770302910851469909949932667609720429103059804040407558058357995111258012057333995854648772424463007248631362028292465920085257871787183322068329439385368007668994100238702800266083805497666204684031302846452527974220356927097567231633045138756208200199170592557706267941975800726655990193609681687089478237602008750243164696324544473359162593590377835119625732836837650716484465373574181933849250046841997793560748031677198477096285326732769257222956552569546782467230966385957850397973310940458621616474911651455548699361453580067605146682893528044022350463765652753196984534217434485537600738446561715635801969577596979463685593749239627235661602035162982981997964074548425103670583175854004534184686976679459872386669749689296503866470778397134930718740530952403692856142490474941474200971745195271804437939403020416476122962371785080700325850328888824958862339875431495921384086313920916861047068695247609997691396580375360864706904610833648341230882845244681083949189891680006003106716618582613004191247971352549926948304526505066560167333324971908238559212217585363663666969234729992286830139250000886127007508432426578144400431952201000238465380946155693582692657481391265454121843126934197002997529051377139354862046148535348241984574254707232153134567195056470556981110783908760053246961314293661148755106129611710378827186358536610487637470483387645588181057660235126224638047316414918667912328137103330241519524816871965091552449966301621647150532962755751844633441341732485642580136319410032323308459915955796214664535212262885782612756393723065761581246545187990410039033241305190950306598170514586257056702922774068627623947502341795536026206259320877247347587650914909254386053481947890444916394625188253485378940367649684211673936776596091042850417240087363188982311406678366497479512594549061295154955759121909565495484799651861484055228553945820348994497877654564879729488950612573770887332216164323101693081269148354440074471972462644845946848059061559800561079069526097964716456192278236473643201982801676389992008367107435477046872583087064103040776522239323074604104637055605832937233806665488432018682648604778389062440811032950417360455250064644687557090118200310419570997325696115993381719426055521827657596201789797669567988983388455572692443913040087371949605434487856756915796193563519630851136535394619537572165644665283842025204407174170398790111365567730572009971125027433516552399637134534880480356444745280121162415774050996393007922497834950735444134356186151481078870110580180890459111587718218685910243325728226548606597022863808480124492277793858858577026483435131141875305656763569511909622714295697122906934857825568988699989454146008275083617440846079561848637623411307060881830739618392870641821265928620101572701554748948100210852895529934881970867279208910503904297690986927997525188032301710769405551718657150797938017390732330641637144021011128554881900238009438636363445740793454161555316989252234127210351769832880174504843660866432900507212099834622703368314111590437127003888917737821942054083177330812419456707136652767777995785169579758025640622869924136794023882741105265201621372416256887653512300171953460930867851275687963449877409632423099020620570061036800318236834960813168724505364724817480614710216538667163068046356530541914502879319819791773914237495652164323704079376317119015535493956433892165104168825505223388651289705951203079258205373775438273312468346212736164995320337119081540748502301003678278898081981887362262100885429272889682438234550783286432489464441321533457303175610560804118775272700154969904571223586609363428208919011036273536935263777451657777083517251361300636137171807221977020042033704290735571798545153970308581325347239540429507112585953174228531811777564531100459840893798433880823305538581082776985860413406093459719472460467349772279169807031379903770831293943738480103875765913215093648458770753238166176377702919649757395739441698758748440233997649228514363919221684015947068793445735638301275221415773880443217948752229781928143020107362383845138962084266022426301091188844416061348757916855869110948348184505283602492821031847005269914681466133542835333542026681918138273624205924420017379435027018239794156348517911990314328105167316224993290961730847678012283593782651611524166201506231452680519569622376867094087773547766818322549795483562291015870975880655742369993169560493052080114027633936412854349408570231396595286593906996113948289646635932266634339993763237736775453754650808581983229213467322419642780869659601825483532201316455696579054195954484642364627908730921257827935489555210074858897898252628942750254351157526144777651148499936301182396806487200355253963448696722487544548122519561438290598124350021166315319685486985331285104016892757584281367941059700236956556815292553785761192527622552200294462735088233162101002570704376614652834682275922189778609622807514538517056861940976317767725788150805635682212935553454408705430206135226670537860390924681305751894472877101983717545948806730354022287408547142984687381454066479360317163091961087872437179681128145747137556920834591128582325451505147943693626818887553559460998163929670651504695204108219134301462458347274091310497526937963273760794103506520721291119883226750247869469306239614933451370366152989823908104754499328228636655443835224067670086363587832710624739853946118391457837732204547554479884743703333714183853917130228736047511420883904405574032969356442539367334130657152348528071179664997316087137019718854246280360587372190556629446151145249639965882752792752765022574002002226952889496279189314696350597393910733848097445632485982452695111021612112263849065852633237198744162493449057055369849923431866764220401918720358134618206662384611206098351894846426132948917455056014468412930380630216381671144806228675347175525552008062334436322155384230097168524322080800248613135863283202277058677141657234109512481254503318872348882983573350169706079264330435765783655165228750699477707973446712270712046179279231463644130018886163472889102130369457015399384879379943909710278883974375409065186065323026697278052397477560504773709425780982381280938522148668355745887992160313987315138264529248370762561610300882912256961988190354200970489768201918440036825351808966767473612479124993595697288099558980515767087089850080064883989404301421055878834986665866439329044950245543558498938153231048947702437707811175016535614455770734059651293752902965720286441311433433170491862000417304690671980974223635183883853039554322135298853739171476508365899264351529291347976011651177438988612430696443259127771628941969287221105719491087540718382026093823235841532964863820259989293440852507404138581527512743814593242022479334291205865563224592125980797553515105606969046894453838882047526915151714363304599137785259163625451190415172581807532229938297223363803085344785360349018666986417684411869140663867258338731899001145139318604620489593823880289715264753933018423414420486009397172850308215462067345023727166603846387737806159956368485299457927998046256199416468705482752578958890199754081322845461122611761121370443970145784927552516408014406030288803081363266157453979782074560108952531025857827964461183247659007847700900923473301392264185583076160224444612486190051952211010926042721909996928581277539209810595799573386908756684615331830343720566841852751908714840759438242219154644288501328722302303933470962082093307103808450508390824933594012016049799540980418018865872641337182080039039194669121976000929684631979245998083004008692648694283761554498504410688583631240893241267215777626742386121935455902333907773176790709201528007245344995437872143574911731375394869792266035206767359138124578115932751132610796591791223352253760863350306358981903742106008439195698372167947916196057847953427538586148061621264025721057522905478713060972663247628985314522983898745739734332179053002149017448164668083118576942512102265397407924966152625788068129823431739675402729650229812533708906539628932859836754810849183370231467280791403873486762469503269595746380329604358826105830632730457700968991143424360736613072588073723209362575835319702264598808138375656688592100267782660351245601043296936031303796536373567043779544697584974617480508021224483055961466162445796795402398581068257791149480953182988915295231092521486992968288399960436654256494520798662151238084141245178878609756045340505616390263048622320440387637061859027133877008750564198022363779990482550674145980423110815239727720199398238088276287336714747997683473039488443033633829752034907577108382318050785401512776422309958209383223178110392147419772269321707774019007708692172466960407569980389755198729917775906638119129712623620744422477421080482428756190941902490585027191861071898057658750026073092286909875692358234617810974951209089418403003847978611241515897300907869228925337380709683799843618308010171254780088897714854318112440407985716768339427757574952078017789210590132287165722947013308482208676023584904528944099419995331353766394159236129975924891195405738910991907843349658755419317854082358767814215653575793837613265917330519313368626644710185278664352935404284814243062874152917816653943006101919982630175431766858417061307366290884270191074667081371341906559928541793599724436318879321590064477384814920468644995839459924980179992730700090540354031276207562465690490992630065392205622355720157431465755536917120425535850709196801226299261588452184172619477145752527882007077275267612852350366051010226887695444418047775884976370602726976615292009015367133376573355277811985326405714253337411840037824514383591614992974716868701078132891463301075046266613408366604744116768334993716266475055614594324925618762054491160386084167545683186780490849294686257079260677228999117382952307183800315233847521561758475845716689698509575403657903337290948036395201007239965842337812410404766774688628425946879264741624084155557303507802914932137513410883544740738592285271340483369845080463287811967420228968191413349270927250783448827693957363733119284464046927521621071310903522060693067284414067825012747471980273984477444427024101532742912317056294843014745799104820756684736683328164058826800342090006229713811619974567981006467065171701624194145494022714135525323633401010106699114897975773340200546076812630682737390186308952763398291665066154896523704305527025725610033358536232045588149501972936068341337788606819176936381596233865542800207772067403076197569594951345763046344743251201549511498085104315246051917241682312420122144364273564581202877031724247801601582924047784867710863953772971995675325431911231067658575430260755244651110951095603364325205773280132986017855030538471540981047669451174287397461621267247774990293903328574423171149617939020600696390769798637295751555529235393072057018800784403413062452498710155497262989430174563605812459665550096026653587507445131489292400304695931620312663191968421853647332590005102717595355086093812618841494491411026145964411243825080846900663859806189553084834849032000159020884527305773623216718149494418370736130618253994208960472213084881741036642547287557851337179716001131909782861781503256792026749950382075222152922579666545792721367443832950117239733973586095330582477149894040192365074348868317668636661830847527539997048474534911034581213270032737404257943143580096628105555097957711343195756235425601878029844165870423116538332172750406697493939498493455892314166778174485145348952143311724972999678834930181023738903240615656291206276109848046442385546229511693329051651734302532081727994790182943748553915120209644833314857837190667903906202722995348127875360546195809448273841168908701227253597244762778270563937931354678233830050586369617237022336162277749498779295367885105482435524655182920333404307554576133482675864662136987804629351750288763590082693904782989872227382121808728928182063168141394215810464742805322008084904329822994880452987106236007735563825536069960951768829263730600173251604185091570647859986948477914359266375744004442352802399184140097401127973891237561696840003600450063412200335781532349862204670539761155583576141431002873642820644781853228567131659205648498877297270862414172026536818501373960532284915236661185509958015678692707583464725099807475095497762312830975792296665125808869828043667691330647809876092953443235717703678713222159754374401833175572714392577096459345732346869753533668889474192791096004922934425829116546145057014575103750754489603869332875934907969167306618525347264449061708475483845693698649274310673076603846648786149259338164522693415822597320838874791224071150331805087711605574425829513079815216414580809966881508474255377382143653031848002716080793465649989771434505371034689986091456475875272371169780639953520050060282527398417425850926893337902069481799948810256643478277841140658235567759565634759797295111509317255569643735783390201243676024964886782737122569478721100441109764915899739461415634704096903418758796624878806704565192757625874183756954685582999393183817419597849151324196352347096950037196068446849089743761163488824333579033328362002379556891424727673785028594617039142618890169845664151631005415995268487437654159954199131058174631964802244949428133278930945114470097508515461396595598558347072824164391824695599601016075698350431982274721861910370566287441700960837700982740376584972848763550878889945282163751725725999948491254303841531320751410628971327226133037203791756088265829148114382634701923055622708969797785412726094886310199207803645082963136009201724057455912124908839585255286727095812847281838711818471028927183597476209053175199729725204357913667210491485205278006469927655517797631521232213599445160995948711406896904689902034051719172752567341473265670080769457433403692913673670202574849644764699353250239671980029966436876622424419964574366403056107887130751006549657908073232462525064389871874950883560555164483548508744149070562180390831052782933136693438045225191195796254698469908212051306377938921392642515166774694001705979221684358646621383658499933459861065256300577228564268250042023757231270292421652270935597243218300773172188032627317160691347199573688758475315667509410381261940115144650882721993648071089413972503679421644986124589417428412331197050570373478233251468126587466439870304158474579957454422452245557881242227496024327246323881246919314525131745535159413330094331743861575533539715179915856810093497919262114704863316794984169374027637867367893528335580699219219622714640102149650874217244325812025731988673293386147208461123021272470709540803154891214430318076942722220690072970920755709142443220698737191895032861362490903276780638401717058375255295048373302780325413378335388522420987901756632527063029407617501326550167313220977716340906676260461204982773570564563405703844254119443227320479686473887656178892892171157750688032138151990683508141290429247841452007821560997936542059506218644186046357390666613558905438473245982613293043646591878176778890487190302319089395562817926351708937947734736615602948087003231228238522877980025641162912711127156765366973159465889691541891752165606919371369702790985637064240016408657271170691028995078928490955944985595529895893524892516319984337127681492133516613469764125379007454197927983906164768791295042001407370183125433511156467323075083478915615649049486341514999363219613057832146905826687040682279660671903020971010174119604374380666944747456073404783957807961823648227969047374690170644838777060004060460364463643522474982789379970830107884658273738814899112307038661089030398052603603758048324383268838487951078210950412798602974469243828372913165051195720353484956106676430374864833362719183653782598687713934748683270475841182835796317047898173462223591948501647665820964657560493661009339006650301290258356477645160476962497903722147759321808171697872468317153652711733514368135016022472225538900363546704246909351335884446477316168747972414491157194965933090924217193839324514492162565894895912449252190143339104921332032722532362625264114982678247928590163866311330099251765744136222651542351818079656556492342514984131086365523890448773077361099744185591105325531177105008014741101071599530256052295900030373335431942194416063153289018226794243748380429059848342342386238965327409043011641711767490827144926442550443430989913444484174215641585741609408485865070009676780328338539039613322684259428133879033060879215952759751723117673966329032918838394126813851234706343713266183198209742535093616197851369868013300605258043634829495316212413356315351787125186338115546798251556381365171282416660097017897438523728851757036575720027817338219816858812308350288954852585363987570232336357089870055561545683111844851958208561992552955115422316622417342910636538029145346359081854126806901326689622848757401378701578869531630759402829137958274084311623565990807760094182867205375148324119367573098821486058829383933205878073630807466903823546584904457530085937271623925148576210801275249493439041395936935111362276522594718266216853023763653957248830802030532932790343849391009449090512016674999867986402212127010016358873623672189300347265065849167984501470972476102774359563006069008975171287993392313509864061748825743311718496640648102879371592526554571380790875359572747744849767496642167570755601763498789608965006273127220285878073966723399013141837644765142339466102021436628891378945793965341771177769771711272047354296276900437613281986860621244042475759325831588700058963561594030811818105365641844954148449982159591103711512766053175150797580320757307348567447137927819691695308226087602273748725664331613536487427992550336744439112062521056638779083288598546578136423146662833899189760214184037079539327851288030904117259925314386085886694040481341863028403885906424584804459149535627107819692312912235939545123278874258787651971066646987110445056466820210789427940663620044944734079057906188196819023599214470209371666403994296735024213786882220801491873498488780743778146025738986362341296091147840854328822431029676378429337561495674457444590586322219428592871303249365941192635851092192192548091503106858891323286795686853679150432347192039527575213681557305280181336892626387925320378679509682237395798276005537606470807260136968605390492985547975140363352731628437768600474766957101899829164243351958117949223579463904120713568191261285464111073809057534509069364367481334815672091861201080747674546678088302376005776884286795425824796168821033209740310972383444936931186173437152074704179821615542467464827766357148966446456981142823613702554373940931459182974702377319239033134150870478814683621149360874491145670656637814324270864395671796002307926491379351756977068011990575687187817156860817560258995015265141161062768438867105444289421685397194236044513547247453887562027886472973393568290455738544059039929143140148769282719446902550123549541339194479608869778758190425664888578537284772920328547981297975001550084428860003054829005978914327954373660946105899002283188977025992239344461363726282719416734534747811145013934834250982209291617021358866070241364196431935921210561766277219611695301276421153364155480572806810317436348931807574433300904762129309910728543078227687644070563662364817608639926976157181456627674725046411935793163956386091625421933461825031312846829438308043003566979773402626952985123298744169869933185443688354729874806977360306261237854562411972884895181951138156329673237929523425638554344248542854714113329351420912830926759886977244558698043033774130572097748254293408107121310817982725879826752486364381459429875834277425413661064699161304730695092735088776511073064874482817176246647695394685637939809018240879973415411967157676667479503696186027366494316305666985777752208028937001023168623673503103596742270472165095226476536033891264723838160323550073968768436638605165399040457715564314773679155863634598333849074299388628476125437090228598293400294496721818233119897019921986276402952865620799532493067336757777227552612980333598663409610845352427464588766297169434460785128603106680504705245853375723788845922157311826129173778925084575163308115942882632943423094668696826097882950051922697655895731580598179990768702912826647563892662490815217652029069958322392935811186295048713838428783380487414519884950126844468851356641327005169565549374196090797693555575982364168959993894073588298346789517431952878162410795365108904101112869493475788978482974342029540011971538289691656673137094021666246199315551721434571574926330307332658161741040356689152486616992452752380477350120976441131555461118115273284158366683510864230325310415681902868271375158105129486501285457458147322269709972607740472202542768007076292121490621959791335243592918656833109698084662805399503201587055889193564220812917380827139578234630639660807148463723221315048016662325351385716405831388304775205294884792543067915885011619301034543545695870121858829806859470493474178339511605022613108473084628129636726731003626284387554216094489513536701502166385537488845850898165750468354010644496234098959388191540535524210303865494306985426814256092359232371937436299115139471458431386280721752256774045559540575792812967328954788274499796459438446555381048170162372157385224849312795359007765418131347373090877972395536691432127511279376216082846896189496578864215775403465955862523924128993881884659218494884008774020131476961817978414321485864441246307597288435464788323338427683067518083369641971298957634617168420179909990334116151312490978275445613840084055300005341034954574616808871767346712306912567805060004858933539227899043112902973113773807358115657673745419064413929074380430874758859049680016637594579091385007082596909180000814310797376805995601004023368841849351046842615876436847494754982666675943856188672634837438455329258872133777848311722139878355409411197326752822983943610011251031871200685960626646214661914635125551303931583357819332429342000028457951828489525366553999251221728191934365935766398078567462379496135945865770358858063858518132445503761845754889616015130360303873981790480988640259682403108798456812680857159301474212133208087332432584438425908474017435771692313785827545592657680712436263424129553988920953136356251672210833388840802099207108459579688723722396232009664821546438853615892619111347471284148256659042366366246454967216897165177485050696868211802633083201242289213105826671072210688329061119204793074193183643098246610405360988344614232003223083495851918998321707744108522181344559799429312824259498686909295100839644924636444960821341140647669608112428234395413590694341837357454676677843491700599088433976040013386461474917040169379175963683321328640112996855571468224300564043864670303388159361301004579730814483816144948346934883483418222533285591290418064994697088159178456734692346758593870062967937646196867712753309232197941666428673871265496491235590731875635824529162636862257963708643431980410916064485260926576539840551055978544511367876594363618876272137752904714489517593038605956310469331023340643805321191005856464213935632143657849636917917777445656977007753839193243744716363888369487620193100006887916434831388946478383993616982898438075488355702255552383598347223886340872988867144507151713024278187533569146159429304001745447736439649630850279712582577656001290933195871695078890662986284153754301988046595697060604448099990026618533625287892019619712235725468504415243677086176740732107731200463707763863197288294039334493623580488548192356423801730661302588414138416724522534743943161123067377971823514470163130767967255406495371756229846271491247115092523863639718128017835437012049616128034927541417350963576884698633609141333003212777806340788250368707822923606040128799694036683621398499207444387803277106871060961296227127462000580333579131008144996679130321087477667991758228994863204503358563942382199677406792340015735759683065540034985789511807551003393596098654612474003473532410492727759203762873827002521433832586739345915298709081363499382884088926728436672530620997974864269352704144779261454137107130117033297979704631791894896345458697212322556718707195060743030761158993798669182279620732234632387108185168527791387578285396956671414471679887539658979998855652038906679813045742460680445618076983903842753620977240228800245917975480240926940258030881833307214526410281517541260701075624644387760820638540166060472203569901830888739447056779667785470459957975558561339055013695882912672747621007302406286874661233535646017477109347532294534952600904570534633972490226421096502628044460616670563172868134206998042091492272543699535717114858882013948136662787646905961109200408634533693695078299079213385306326412950101399638020796925091453222473286715170688317864701478195214888011034285705298109758972495531946645164427701510299534179010945791937696762256739139803231650194856805848628166787104915208520691155134646066695170257252086345142929742451951798688259226879482037104562273374516579214753870659870692875112729559027263475941494502198510363397468100136779315959139986614793310130483372690684926876267841618689941955780278035757069003568448832645299436066069368270378415242330102613530570457602086710830388779857824520676944626238289958598653649560906642897137544599414943320081604114428296796433215971201883224737619619970205975381894581390592823179338343956198346094517319726218442404657102573537239932289028635585713370426490987019409531330358936107510455001439076888170106164220727289655302773217568571983750267677659670144977223245697898857535008577817624355397653066574919050711017700164384429230290406693460696341114807790093808725133137747883660859773689724420829554472413397992315569058384377007704491852489536567426811574834004924960076543066022234090676870936918952785549739609161101290738841940767709178043860856525453441645267590437410037101585842471922102686446077360335415217069963953432963581318239822407894743683265933048075851940777974217696049642352948083690996145834024919261775318437803334665649179521112604194747198404157232598557999284626458236053813912761114128218399318261454315651240049534423965492684074374207862901830853019272500394637087290540561081697105958057520810886836876674093605893300544094393205231871319506643592292766298016249407388142581680959113116301791863387493637859293481317937478783161956440114006192247045252213400670119114808866652966176195517269651721269640305596878808193207379704221993615945779524619233355349369887121742111748877373667835374794124410962600288284992066950099277752268953226241625458216689508345751968172620431027751996322303157017086777127565682948725535012899850894090566025578193816608954095349684685086520384029531753010206039203820694860386318139469468006148834993964278295155855930876004216473650934233722653986770367617362211674758464936855127005277904229978215279082947972334817911966141990446509383577304095369677083970572632266269458063045280282835982442756593292489520967111337160517572815668817099177305606213219894934544273352508603438172260367217032009165667398292158026844859519659099660054104205872212210964559552692273062418628374416577723872315776827292474820045040997515993009533781252873244613560413345092314754061790484902614287484049224438370061570485308342045365094487021461018105209400737294517528095182445337072491218897085716090704480141437853246411756727890490588431329738320870656037218175200677882084650050562321636381463651362290099421482199952670105911921873588623324010036407609584744910517960630223368027147747978290381222590087565640518944932391883949234045432878501485692377958306112387079414625079449136028905169331446429412022105629583485974074922083112570285652787784416671514761823127410902726310656876362344941149153691322535455857456374928230322957919021511834709831837719236819193372076596582039416836148744015560185586755269182269324820286027751812719202828129747882099411476161802011382651146568711938341100533663764867190799662654897074157179280310394296422362078637940516931769056733973895305331814134628473265007373773767878566403616542966455143290390879600667336673258392163152719472579144528035353321017366718086029777516732917449609007073430211391533223313215845193914671468670854924378284450435813648409348562533100755864442775890648182649848610379786055648419118191319294872396392262557920670338399667359291247718304823159732695346648032321920739911479229572573361724293901228596349629217638253514146065485986706602535325474164904313168935397370507543795903624831934626462628317425112964717018897628673762435571332358313117076958358071767455370835601002992368871237311953267040042731864803388071372597386041295684741787618894934541794762841859988726171023940660719636822797946017810575160805303076300663366883918682473098788233471290796448502218750360604657788603824049124898501329684867140995796987414867339040546816274622624390326266874094627011141915129862549758038098554072878551354458295599504373433584255736384116270260186584133485429347199698214919820848041049161879027124990020687260617039643453414050157248850943603146445216644088390951216551383333470824537361720200521049592899086626695334836149971625622834415103619207930112214570601896556916767956093473074981930198265009756244754016656398965103861454444786314718308173661362221659242469215922169574525049237426483318898980434021343518589984963494783086971088529979690194193592252249309670806593683453014387021752827472049751100807897866229136372814931207050242433984649062284927932613609973009571988773217532613586094846959911750184606345988647629900780963294991417083720590953629811179166060351715543173274082309275790464434570358387067769124489636436303978329433233019368292871548209981743785865888791935440529314083968556035459186672491341295484161500045993342217656697057645331836490609786387874408510036426726330153155731555329355330306434355303178166211729663010177061724268057438217930577995979899026618055936897185359837730384398231526203216137925071514974531066501548908513411279024334713877220823670076686234068767296732788091308938807543312353720803565769991768861820170031819097639342980028392527153796117964548696105215377350843459280641413297659266014421594983421037695691666309526304746810070901801699865852706959163562057568949534370413306299672495640341341610189141567400966740809549317475937137868660667151084465597767929780008062642122371210331673290296937964201978071804465842114089005638064951066160098745858453738930220902928605946288869322006536268342454253060366041183315734192574157786008443608931794532043703738938778138878926382794932352936598057172152919715196647791929152474659927429178320412600534647926143197972887493439017332557228466025258173510702942397104540658624001740857765603252555200969954967550329852752323259796573496661655224254869254500620296285733197286960425647124232616181290651721952406416770463805270634246747385604237915642554425435753152273375342289639485615811843533385291203208144238737844485024537488868359279817560645209908290656576950654136185854640704164055601107971679441715754980510714498246934726318961882300127498128423283768576593480688446685479575774268978247283116618722510721693164122035021708282320212074251787403304650351572209526134202106403755547779956819303230004201667596315469478826160422225010789854400193739019895466371239147316007983027085236248267045027904702619815715521950721423731945865414683766952328920731854653015773138614251103348529739387938610463674276929779799365089650398213830114676209228720972803815959184324130837321873904113442872333765470766525277170736574384338739260524436995591616732197490651644532064824423832438583703671677556496322789637832667275760289711294508675960002740402392556416590631901357719165831575436609721945351571679515356309684470374203669759280996393833535142386549753131167689382891687258042919806447949652029027563907257965892090074739023588454161393067262493167577208834663992415063259110378139599856090071772625351723252073837945791567041875072212605199602439228469493912904801953377011611025728927590838461184106783238836847498548468712171352376360405685171893768450385099279340299238031405038053477476544356800653530399674504379090840200943569530964176168484024770533512544135987795951721219490157685020179676857632234432790612484676930654493798304000304829421467404781298444810836593265823402418125969891066552419935457718880946458458525378068686033991504403309128948042361385028764808008608622685974092751550655334385633792896631694516554868477299016872771991571201918103020915504406531511302656302044594580709759830452585275081790825495040030631274184368471117825248259260608430172424562649043308567223934623096371133566093662339246428180480080154400830491374106140317511904945353068112656021141692054089434437268854350712243580685945991632451821265152373848685210967691135855098136047188828164831432363376809555719375547645720842342660325675621995580288352939616792983441585910376065418788088289918537130011985538396861019918027204670579937486278974533721810382513614183004491674341642235486537483744604166590894356535767816032220409432714487818367699219174384663166022413638955439154817963617091042189415570656429477298371426108873427218508361326846876159593217379458243627376853300771348459349339919048561130832898023854940431127737280025169091841621847702710516724390570518871082274215603434259223584464133857902080270754144537968526412441410680644733231185938485492113417699413363610522594230477112151324753815411386670621304061679587204325873213497769722971109948247414462168670143712815691214739859786832493861890563502898751874485964141123245426020833423568607859330202831647551485297716318848515479429481860535705829135480161369809728640518340969564409558894241133823967430202651549231855395289386338036005687682443169703598374124030599430883300911312432958293455082431659705934540608827253874604840892091979385291734205227119461682184628443488599179397690007427846324262050627498129627113913629428320616166572535608962987265273788384830159205778812851429185737589835927586965415613965277175502006283021039419485116259215155059612745725876535722753390708202466301435558664244831692950950153029478855606106393686886353507216268383318639883417356279645803682464532101243297048627234210535233816932698814333167273358110528703405687253853012488452070562575202852050074522266376406958208663176450382197798405743784578471075765849354552401864833143407684133471106715663382643163836867401286455704933461274111480518789057155996114015087169078960418050996013455777122656375910465793654203713039043339089526399643643398925589264018316660627297729175884181533475339891379779160706753556297774569432744995131827378508126071799613718040776615837056723991853908718429214661199728987670465454979709372508524480593963681379204159082424293378452876686580664435589835751859085390432378126443149593700955282648910249773735291461051196075792549663020663846909627286049103257814343518702568162397995302368296870162460897421362944371367096435058732646699876917614540889878961373519528426844970822983896515436865599932670490392356144715903125360600218718566766799946876083304631947061119417866146319700737967930577138729644450929156304554039678211168975349821642165984472759370300526476705124024068253421954655324099245075759460629194854301658843202091163018396202185760829930004895960518155837437745353141751921737412767126696183696748466550538833410009631332382487412391421241674106047912888472117305621965001687073195315793860063397204025945924955759681323950392092730355532153556085512852497784186452913041103019882098040276987046421862276375728306601446478152061826693641427823509141045076473636067274491319742903367971375150130481719124487066527621393722310620273682367971772999908029733467158795073901534778245695554127308999126222726490423250022049328981514686182176653230824513801937126202325834945486994764163358086083270586095590805728848375113310260468101600365793708294131317703294940817341458142616847596853455379335874290561869177946003541894198852337341624653826540480131540272675657352067238347716997793479559161858154864679569234056841130887444794929629684232508953592469136426259364326028229894484378413895123879061967941291107184737500132317255416878558405762955427034366626765311439371183584016661725634814747134173433451708695138456949862728302124677248231758377460148735349899529792078513482039794715580937613699772694890334850759252769151778953104079030430007259903212949330033265348603960752164484186921890850019642056963542020582205131245875662200595155749286633892694373351648154129962360639171436824296825057557258386163923875107086201659634653214299109643666790145244397896018699632267066206738601059095740278572046041219777430752306113398187786774513102886165397366696960906018536899544390721363314432395974477907939408545163165423331278058202487779702000762461722669604538276817026671035552698510062829266548220367459872792830651565246694631244384264729584469165158045441054093742003246754672534870180743547639598133162817626983115738466458777980499014416261772607858086399718829458886572520399446295714856576715765069029955079851459805039713370975841027287871105803667303868523667126180991171959617039950343233183632398376025424506713099895507553862555211979767703288429771036200025312988615925880943098317108994611125963763262981889930366869014725661553983418633594894448279796457156132486252606930373069708654914447759011492561231639418086879340543561576604594908493139953659152634064368799661793755425140593679795752776985593095624353307576707194450823728466027215917035370734074337128323761091097347154812207418263050283471821461286055762195179194387500832558868543172556199213526219848817631960351011713364910813351598449168863868887283173839741486136587331503622015603429552530168860922195493707700215390991269533246484074286323696928440713688266505297519112067622708438920640214222332320859223153883850007204315888933696690277899944475847190528308467601559859297471127548748612708680750844471474618180377263930669954707202458425061441750577196877400519045357886452055180240587909176057633321457128546593555498502569543120314186619785370737906561781649206890859517371515133907223725137463514440256060279110419983859938435759924956517556642878662154495586493909934974209257988471231109173075631873788401249776458709612330554219576315732640425153446832615634632274952242111419174098182726804853272361848492284715824934416583424629545124690555502725945156635641062657321911205068609058860259414662858966614796227514409612863017194144651734655171714242171668312673270399540852957100060364184707259360948040330109765621956403861840132367729212276163431644137434820014737808187268391203257827984072316856276337334625174690270000692289969023963639231594182216985467206077019051317252044759542845204344440544716227103665825557562138434196839695170604811084576752091447570122943526989452452994568362314525045394540269162660003784845741215975888687180810611772322359874139703116659703138508578636426053096016064912999017538064555267441008692556108297348959402647666877620378736637080647333136061502889854287639791135011880458075810709190963026744831647288890919535221992194835775139470505355838312117992473118553915335038712264591229707215209303669457655939935437445772432006151821225118258987246044663002952848797462846605748117167340261440020161531433652568561273819609625536138793338366608245681480261860883816529769937300363989041674652718333755304669051833369623860206368221935564448528041541024113419479485216869613928488122767549800101278001535292025502323892467640507352887477941020875217471053849167591720483376515911504878874845811048472317138636082924573154003648615594058798082832830033292277667752843791617211148827439606837051648932459966136496882642027482062799355987326669423758043092243511262084714234613974801888221108566914370462777812853503385012615987144895014056736692146432782331412880227357613882576796827785690972785752696520572365914443540436045336786229374739791523164448279529954561959371027129543062485158748574147279801524132858664939198562926903287914940140889598301426685631847522158460082163582069859577725427997434148594850329128901314239221121102780127040277519600589419249869426089476092127265240199672380220566333818354400335277555893839791319109699190179222320014254075487273544477184286589197822847546728407938730197573569977160974744848239502941096722928826035858419095326427309338095840083762877750334939179358486222563648459612838217894740872314022174103471282133880458932671214366336008694464583435593346747123461618202928791021061762553064621438978714278190819417546013187544230110622577686907765667483855637938822648910192989803970717973488030954237178101932635918175542274879019521797111972645110783449294326509347851519783150505201179098803589985304320372790338449110922620434375875029357647702774801134530676997593725990825984687372431778897000148962775732977788586547596351924291805382230642405956591545872864788771299697829646792748322808268393903016410190187007168158012702849101144294887329399012122878953170293379555542041369664800201535527469559816041681274831502188455346329662042182130025439764896703473739057839822292401123515238791121755025785104325490363526430464117813677685352052330061099750972615108723745138037851625287025798189366121295275889269206173777911825835018710541515289377081793432877523310379446574434390542821340372399069709849046602597270305655586742923566694630258779366256922108133625835937877038744972786265733966014833867329307752218578323499309912328035423413161149133184995367418133612372382499992373680269006561332711819547568672794301561790577004815276321500418638938741668226395339945204470848296776029345722738103313756598989831736670390213876499661388343021021383196582595564494010000676804758783322205109462082912409352387410728311277956803735112980286847738884729738193774778900050003197882500636550353873333424386137079463226604850934960849955450312517696888246952874988247950145932811473047978734840925086947360747137659619100501348832584484488178903088051956482810826809111844176268943659102747119082778445557214668476982255259500380441405286939806019365018059103050595994532313755530104126974852977527597457541230432593973826550575299945291443207830021706967956791539770022279930887411233135879554822061824704376248001330249776206188473931199098292059613626972512641600723195904889181544198509927876989495393016795038500011709370010300105424443660730998387175040475821227890139398637335128697496776273074174077451310205356050776682303426840336425932075802964332142297212469570169477699445850812901546962126205771258120005776850159701198904708829886419391572823292628305896347192676924938736032395192394844409007691111113724770469162096218029967470505804695080497649795017387025074495551126103281204774128050088601903605021736308050728988034325918651945920000316589964456373043615845892697866861242529290887366612489620746666399052936548122255911377185925138705401235918462410394538759743068171117608483155465418057740187163193489023860805398106346550747390409985434288847983517971763736512650473252646540525642412555879577537850374027264089530809387522620736417945795270117521103854233655880332434532582694483275279973743813148646365284380317973941827574379705010106379144794558753270328625982444581376114525764865261317644292254522095151717228982762835194952001977712556905422650047022329679413401113909389828009542061102294067261404828722733906237667157978601480641626389720943182276298109844017648458740122504778776825542572561845847102263083811396855194722640468918329695880372504906218436524067664939083841593265951146378516082440424707038260690908959279363755689117449625908561798276150671637860989959926309510440882298252810371514437744352275694173407759299076585367232104245210181222252775495481932641199273343221779144918959868753816885641565460193966548337526949777677435050516158286573980085779606819129406010477255236797087953326535073338455149722030969611138026470058115850134290332879843396634752559067842962835906707436762957265903351080697699837234009521036176165277929408395772201929416936296279436746729468542903117297817366714888661249610166426793580780621858964467716937513698384715057823252740094841899906329992121043160738764692520571276961364657571867058014348512067674877433298493770680551106625078744384232205501427312950554798126699454906810464308117029415493100559759244216959984297096991171928769423948112772601070160315675768092920806465184283965452779973917542729186219263425873517640421762754895885616057151382937722358321966377642631756427252412968873720336300615843592279574376077421418603987364498357972542671062766018386505053597113791879411242197920487906528144968570719664240364313766126435486789517739110674519499114542482508392506102022220756160998151764878235809552435576618113293345767215511678800917190219188518969783444726062106201014041831606839960589545403740842667187260366444642087323230998524890102687130818668583425466105133664886498025852083844922338912302992555927310564400185490756778993577524191224373898967174767053518119639508844433184146718720994849440467455069166018181258430724822849783548445104206671936918477251371094413287378575787117882059206141035064256736940442323982206991508159262827782446250875789270286102892804695612039093550942531484440136191976971651540976172818431264042114382461865312483043866539886123068953333973889446814188630089497649380958919312276590910973088157607221646749117772357685940992085293424356709870505245233142287308953873525722723438954151352882854363485492622638448767897161875235768392374680293340847933606655645236202646832830386171733660716330389591398700249091996726803470668501400864078276626236003487107941214173892977130557361987810953192652946747509710934194943522859709201992748275611174309319675145427257388419203436426787307030100082268253619200999570554627088326800975060782856327353733494738344344934357692088009397743881224061311503140581782986275409011912530186753850872363512673013036618018262945587705460122676264952466346423085497723027459047327847434290026134020282115475529604043224334222170173794689172184733569576596883888506409709261853116926755052069979717058485333025114887585914961435076903839177421996658733169888677512036325541517827687103826418047608685936843213757664084401475371791045095572948775048435270112707167192303386713045166561264625305105776308267353643102872032906207119989187463612069287880569574135933183643012522790994026105860926726661894791863156562353063504413993544349452955468892001584932126284172967700632100254783041548403588104332470208522537348806421033666259349356814921925894476899486249489185225709603457438781749658580943097065573530748392978616907624751732054209534364006263885403578394448122877660129499803341779938016183726233320405382612554107376244097788800626125114072522606639473909752335366407985330062499034412063514748212869645353529304799501599547269264302796305110798364120752884227042108552659810567629790918996422543318699840611530024347224035592743544454525368951297802187005798176747465798438688001456288955165931667076093230129402349065997913119705247388372745615565903691047361618705964317215896186541459567375670837573170151782569269452962404182188958500080731694779194981165130066192220726521357569822909987726037158005502253742214325272075645719360063596322968874778151973101036533321207521744066564308109183799050011501452701130514797279222617875181901458855174201433413017167264854369503597423379315936132581228981879919544461478903688477862024743271675514171739595680215240372549058460713576401180580974226067378047017295394785818714337499195097534011501848533182530381018624068130298141544019868375750060375477581885350511319217100857853055586202794195949086742951786331503215223930738213915905366152454109745999433006084001320481776179370969351631605305370880123098810980222617184965828184048597212061219563880209320896563525589567086065030134246885565459882725270824989533957515473869515570459962061772998707102844559219006408743169260463808309194145378375368491403584779060866382049305154462939657220165042762332216967212283511039340476060231129950323669710530895569976666513286444266604031037134287843870735887687742839346541461150015012055902960978211726574550971439021801461313540540238042772386871992324557904446062274733754066143166429772683643789277862517763429650189272613185953204582531112457611525889175465788171972620653647692813588830277898914936507898604972855025055891629975144297920893207431004175813721498421216161052662843294300699305380207682690417086522168626103514759892276708631591017202012452666656058441829212699975590794800303215011334467034971673318119208044481385735257879366089654811552330140222057635556986830685789545482272834500635955108572736111833318912205536809167819120035934752959470380570131301920419187529456536072039162345273943996840421394477560383994201624324868167352716734339319875150455682562011894536636455514131342890944053550644393716991124938379824541325016614326699859757691812072552972663019283833263423792103698078394823898596941578189241145477200275435446792796760639288732102957585316098368500595630688063011413248082527139313159958415079519820635787287661513913969214000006425034551658653627208063834778345128966816336141239397286925972046988085199719797326907923256898540808393308158801441374972042417378516692946906150303762226272271446766693016863038551912346520981964354279296362612490103565891584760180602644854509229367774949899471175646974630018522073616749917641973010587763155292920894817580846847952440289139789316688728402605608963600045955153609989853789281114319077041037905058610971293316235472808983613787807765268791342030387773314593915089232475208130249424358146634575073529958513145754820668544927568553044290710694043438348275126518756604398022179573728091416515748281720337838661511431238841881737437563404117162453532179405333674917099731204892911550860977862461070949028912535747493223863215973919800840503914516226098430346360170975566061313762365224425967419175180226314900086373944394309167993709960708316051287574346345680512984669405325711877334334463272770637101236912510888412736702200080465714184560229252176727986916859704605894263882623980078523542777178456062460619130298753088792188160330324677364989367890602768736696950987920207886277495327212130022707208017853780526630374973206958677097290429899633947985481020652952923186194909448685802018293967047639386689364686032677888346365530371666682478721932190976353453848729616876163023233320404950361125713926980970025172571124680444548081520824149362419527386398911425689847087864673388392822941646903088447200287585334194088721623224844861176271406307930264691541637334861469715507748502730475489784294078728353820617097045309634206944502201788381171806908040815219240126087345086794686440484146910157267314629459622013840181866928181879227820145655915933303823748172272167523193678985829097710532828595568630357215467890848291290412570670318543064508264006093396505156309569144991165254316214610303080518467672299260846028020465603673420862244696356834397204936389135155913732545849012355079698546360044351765816080370759289979632536749949659485584402987437383924743932635893895760235484970214321073818536227179919730321448203014596966869481603048608883645120695771655475143511461722568191878581452193251788445064505729154582235754568631786128322802166850591341334724380039463627215340522029667095168780684318123032347583398216664362947021042513399892256588334089886860255696512714462764842822631419366389172099281052568363915007178247895764025335424089650042047586975694803642010465306152737832589788901753134124434301853087198356009197766101013661263054206341499354782771047129576212215209304574610948978960341628764937424505073091758218027838535363615917204143458615852540558133223940831523509940690401775877876757223089386983390700540854049783207063906839761424304316524867427122700108088920539000085308526727808114673090613977090290461262287385536127725093957891186260770716084486410879116626736207912979688430876520534947090235530969882403155042558763354296309995767709328652949059653793210470261813488222953860289315728540166542153622716877415450288406480804022998960131479590397493478406753904348570004319109709902719224001135100544396309800169188743280047353273406149100460170866454939475477356151578869716413286743567039990545903924299346817022596979051477507600257127904731971498674761779935785940098527165977696194046052312336277969492556945329612154502848697043152650981001426603785179867051755000361918686428500942574440582381187484620994300806798330845539928200474807774262511315403222252439633870565390148503432845474115458677957723495970974648185722050391083919565536226709853470158749481952216245737195399633355106467589845677830472756909666981117714170396163804074712954442614320090151659215176699951930131659912931663564800236985885128344287107507704210552376777102661636913699755124898799812429462714689359572049115782944739977680614121875978865606929874769711938993248589505703447374961835050174137546806150271313984795756695782110317547965272949094751066914754001730009195519627097941582204737184545074825502405631401279610906712464662101242902910023534663249684082990713100577977355757549888185241026227474157666780651353236193880351931693778224695987503093428335882926772232330922263901024510363858262857954239897402818201552281886265512104493560450120842762140375820911254876596089274871379337764291159624439719599187942176589738854647818282114815243108339322270768888420684621207590880071267668302985303165003661482474917179891651411471330504888102095616308027729189729284525431090472610181176319551002132150514547649441260308395416563331373047789262862132296223907239013687612520154159332957110729412657514643018287461867213889760644237822253710382503943205452443452558176758014741396247388689714411781709047229082463316109328423456449465962952620934295187282491157079674442868823937017771345599218956485475068007137103506020255303311288883863250651315266764284030087426149518110336424107970031286693801882875740853141079212377954380695638134582488678829444397333488708958982138531789172929071144246519034263797318234831724194474361755913224593094495075196934282533267666617379333734598093357444521116835821427410433335042321471938472506090067907739531063501592990020691476321109101273763077623300693771017272535191254813279116143146086980354746160469064121987130925771777080652257072187731676218921310086068511272436991384525258376178459419294984012774133230334283051577599649244706183950415997915169284139100691514000619280157995687264508489594079955924808588347718969986243525030871458940450101970983187294126668472818233841830000229386597400763661403431683121756540363147594552106852471213596332667485322588315879730257661976324954165195190937487571627169186105909296434168529127637979295730748960947610422177502840210905070663652369535129801243426077412630242394822790159743492916369210110463416700610588657583917749934417384021964379948694102589849123936292073242375701331445876381953380527428636117493877397117620118860538488974569790219921097353047867573507468597043815718620518604213723933501109480457492519265706629828666921242300671056412212120570083956293567109751544466256957628959632582789559213528372931720770799669847669245714221682670099344764378436471903510879465527063954982235504006103908230378656219809620012104462659546596006573618516664446263688147195014204629973366096018686397851958506392994501645980732721554363669083951858066193142589893757323049690104046791155214161408783903325187166861333298015808978157343378230213235253273687758109642711930817658353611111229725587604608013314830961399879071358763471829340320243726290516057883072942361461837315563742838640589043139612218786285925880533384376719127624093362468440990580155954187428763727822918380859193231025492172722763422985750332077103781830232877061770367146846230055170643430772107880908023018535728790267701134240385347663168721915267832379419486984735451415902567549508482448794940356347209058432925540584969005662582685367431873474300326699814244414662787457212869100829111413791772214780349443072821920107555885179066384713312683629131646400631667946574496216623059234038134517010875532573839664089142496788125956884528448553199512556679067936276407017624942071290769556434127953615673892707722254698400707091588641888681573120313945849719882711643124162914546168138647414434599306720213856764197038927868159406425425176820195251965077802006167908807755271656623258837730756569501875274623716972222118543246947334611228142043415403605531903078884934252059607648836138218868113037215534594916998515064998159517306303714052578327951528391480290837377591244747697841321351776659944732915773048569921394189070492768636500597479519066644316579612102857949935579655035109341157501319837317564448422966404259888134831426187647156804040933762376406456454088745611896997635772244112452701485662104917091691345692085809721047827529452409702925833152180501823003653247765720056651568193669541320161441190025544621655937860325766580812986471241537195731213082961755000434337283718823082672925442208086606062889301703441456544448042947649867025290207588534306792475145739195797640679908385643102047963048963773220099812351802678487042790791046722772732630318343327916964621765848232130511155168732154221063588667683476673166407056250232824245333539385440293877857837318842759794709461714140661577938199410031075767567319792941322474926419680888583192468915081211140462729852913632218623145578004442269262252017916001134916446936506936886893759819269021358555382101459968043672750452247349611865024352997829004441501718380759745083442692582331707395118065010620730935515289636750915821767044627937127901983125341837502976625597478647679712312654571343837678454354281013195046767415435216370757379449391640596843492197616291137665001731678143172461875536018073791418882378156123843201954998019615780548825844355709087451061321815609945756136170984351601007296361244391045008283957990763482397054794637763334530851973411698776216301510100774170374807863601267172885433942127902173995555045352401014352807297149406170530464357009592713553407924757437672018783696093140103189348922003953370640371397342003741099130444355732979058580474433595370098564651162250306688749158664072097936696600313572262860717568149498404466070189509402172599743679363390034354682434914104623851426558356941307388673012524597505642477059066723521048572755122520652177284328894192050568454610625725057395426491670517596831748149114568588473560571447334159955263164744002529763778634579578440292628672060483903135669875793044916211535215264564291568340459068577064336667532481790037497459019311494972063487094085738235480735692020297041866285213094713424890696363201099896889081036042743938950370459479753500466305511509246209576470538259160722860887133751657042790056228159784893030279321071178236467486980736708728283995885734516207245837823155985151428797115078332115265839797336960535780380688896537087256104997620957052641507322011364102113234592274820863257833659733700729202566954667628465376238009507630395235536409474333354609359703228295782966254068648331968639513909824795486386900770489663886259409741321525278841318029321142102740524057693478526856380687411647137145884341236620166457739881422062683226291101209703654946137346849840170212282569073602513187147155147737781032760146126505294257689721430144899628519548593586433532501531084163574482239707147153093183744244265263282766109347686420637678410354568341565647594610431886469207400573383575933908859266749545316396313941654707876497036218754293948275531432544177223465876305700145778013237332511113519650411919682538809458694660712993992402531387797907115225288418929959804993364200578785232560747580756659507767218539465544147595943447771473897638856768294398734232627087236238108227404537198614275359943134566555179054615472352952695656395027576262761784344429373617802824721743011321201630916810364649222732423188331872642101363563248131110862084449016574503642131442784300395574174792969152481559549830805019054089476761914348772333277466524924339927752034217072787088146411451593858962211911720018307349897748673609074157237842608672508037303793685316216462335042829996577319959119342194712056932703495000446735652442551508436037823655922304885955471689900009361426133350697359560377868783407990118483659083829888627590885065195912838389985772017655017067007690202580178488122007814172646538769456228969168374577505692228418274742015918775784545230524670891285159763099490616040549287168372872264087322335083788522512212464957753248106091713088695297698401921888284844368719199660653045030925172557567090444479562613420222543568165590826364347996388373580074842258814115007723000279796143268133602996261930369880396054722675047857402739910994436962544991383973710591912115987008480964628700737280381201430651587530327842277929678154680842081328235994107354793333041647096832660948264943837663438215676395376204668742224824824891543531743367651997688310045238297844227888346288339986781958174565881315833917813223689938346185789527286921790345985130300965663229910826447737433580402588114959018653859792604372620894711135038755013807098630508058306621884860261587719135759778393365974541047017758372560298140327687091706721919453205865024753759481443373500022101912051425105487802240188760551651181392467406553448910294455273909668060845316963453440061619548481489247733044222853440881389042700433169845456155925131886095128220556145688956216066502802758872850931025277760380423088974052175914161475500894040100400638580828689072583851928004065522518861198311953962660324925424946877867071352379900278019807260008015510510123197619293375948436740585047246920639023361602982194241534215181683981090564291006449497813285343291735139659355258443117358662847551318763238005905764550270295296762778993561277932345107070393128153813516575610163829840900680934291371147501564222424985968044541306352653808851087151538236145099191466909021701599421963555373538736920108200015104187383227676971326716366521457962757133244416329398666037386746031341405995570798702018507820052032883264919729101052056439263770341916395711440748747782466022183690143474732205735328536976796995742049732322032024408180926654263722506010244163353782094468192068664411015455389305236213935103501256057135416425232730515156573839238258567985580356831889580835580683000549731454518647245052236852227518490896403283950136649868999845832104005402444216383291227350338426599886314963702813017878807234002742017200696276013992077119171530433509337324022539558690977285093743151969833093137778348085396946581101931405160875851338928935443724216659794479661350874522842943021725563134860813576918894006230457540207308710493163002893886877764332836530218926100054751712158675126920463237741976309887886806819831683533816056433714940811053412566089501974357791049777784465497686682948653596473794377709997487880298731325743033629340992746456655439450342375220698014532324465943051989966323872939402452796063801301577018974119763282894249627231051003126267429488188313478524470598827719156783143140445298904370718429410625207564122155427210392818604529674324722235350633534504163786999085265354244065460741524948272225935077180014566592124633744559903066146232078119868157340265642339697607977682017248381100415277255277336066098784641733227038224317949163475479955094632348019963642191931120394443517951226913551272688443241979577262600637129389444442139758942126138432616026043858420459134609173510368514825465544882196435806853343970288852302661552114935149099826812262783344782191859351452194299105019409650443335503936231861162065496169006428320284987486009668797383327034169404116655769804220031196288915137002086526630169576333979224404661631519908456840538515956556615814899113842143725021461103494530980720350095246964473303523449500887338325431072144861803442916045174349070336731203232449376735118038733224794989040605623380832493504292591719590732435879073378381575441292787303773905419747475487627886680157838677790972718801087262972543053296079489029552550284339249107448626731998558650991906377353885921135730314247624912570775386216711800041511441029415010113935257615606989635060812244002991768356212716763415840112610140537860625801532184689076858859365857273392591528679703870961808876797943290204889307943647433941128622805639491702978986553758872256249890504151644742113623036035691346952327095758505109136846279610577763871289718122229791042367860162038937696277181099652768430535133289604280684737519401205864613921036323129907241426145349189801740113554174462494634754717420955744601043859390840514163889263427537053225596801804749686422717526945981866356725017411234812901383069313796502521322588689824375156337083088292421662727426997438518596586350387241475380963769278930727097634170432554263705542980032566608427292504225849320898550488113738468180369436123902156656388651558810755761431806244427600958586605726629689668933171799645269460608858200689491467025254092818752844388864990618733049283435248981821433925977435894470542629371572918479477411767683146221632978099421082733477188942024976291425653514543925981709140482110112392963178401044827563605324758774999115179549876767619190513041511902053215047343142821753982618694010915464014651041998209729172823959093379980681836498370708198395432634902409304370820140081000968629530341488382159416285379281766469915078308430835593662475573806266419018026248489215640975281437031776188958798594419868995189908973907725611794957829027882247810897183977064114249538560035571412046326164739611757989375621031059082276210430701284839318181546781079904941311760905114110948490432876935102889451657708715133744781885692775574470733642289558204844166465133625097414479469498199995658909986983274030847692359227913554367552178913895337816614940458282078165851224051076818131604538847785812763352246467520909751961138143727052752442870643856301878552587670049215068754743729044252930818640245483258826052630831514022560843917082058125292099554677029289814350013924446940357734751191020283736206495346694088165214471702071654620853618144857560701250323983921324658267459540134632473859076872724465689616618136392769302450018476729861333142539384367389016519987598216982489625047049385575902008606392787242044853157083554596536821729252420627362569836444643041050083944268023947197873305838829373602958755168093364414960049477551242066776357907484630448107824082506861703929568005727957497281989159718534830317655218341850110530197587007186988346135616326972241544473415976967657256501341834054022449931790728785497939766884738439078118296981103849691508521964363510431363163282058895612414123590116064236271870555686638526465936321282771057266082938416957969664076240878939220654845036843278152091351442883326602268586449060930421719394264460060685135272402474289158244441817583032967958578656419320723753824035958066763973192549280835118426254465992843509030359211337256929283543685035557428823741301308650395375970734846542478807502123784391473917320397595455932758420867740367721381050085072049489164941838638647252337901536766072763676286739053190280762304370215276060074164733464014360664697257879100546800910986319659395565673404457165182969795287188632015882551352148062997003804749929050303668829880040089204922550654739330661363768043303272908753432207439921609469381684110735226804476377648672835410087924875182874358826934186508789679954154146416935054799286223308262778176745132007300896220655705461545480195537827549675717446036003762022265363306565759275155931527102643682963231883159072274193120881827973538844501699354192293595600583218477683142099868574976749496152374601145024025192877589692546328579046305760124155957702691642180287702372321021145948736539478141730801890254429793027244187964917222454476481020792787704069953838158439053510144557134099862665020162935881997749069093509027479901611312403243156131150028372764355541866057909637791751281671969029024657105539088663613145396436180144905404628501880980509880454166466589156325049454886221646195846107978890946084346763229139119215479153959731031615238671924119492406187749192087336317063545625687522971304528787363512710215911942278847568271819111105724238434838693653222196095898471152673239137539553232080952459101300020905188433002717963957725776440357686044234576180533359725245705722480717401568013253307662908532187858560866243657195028107328771856640212138146710838590995543844966688162673379453708236929485036019478619102717083417086679982210532639726453528633473311575284641875257774341822936345403002763077542502302009382165181936647076831619614940493766942189568669040628943784384534791005837252236647261436769779212699254221622851788665034529133996932177971434401389387421746655012546031695521958364987371829355122055159093495998652483431312888146825677817038410864519335598604003660746594024267701411064921564337454150497767740656234024612012233460157235197763797765731059587638785907943919184915865101583582889777815560396493429353222578991541746161947943683252748505466336895852472201539513693161647307754564821241883299360246568855967476431222158633782145278856037692703964591261333588850005544150958901675742041707278191554714424022877528613990681149869846223612299274714584829457885170120516273025597658198368724658972679644781705097061018825125842486729720695358582721468083329202366261226545536719909162726697866469508425011529172601880430846177121145290284908862318481020309506601651271624842815940872827655037107354493703080206999170286950412626657398603423863652153211886157703579911973290870411763609260528757463037308562288472577862353894522108530065091045177240370363515716646946651316285950620582825514647202122120889554681437456952290253144397653530401607124599022581132992387215512442252681131763149009241317294360171301262862509174224420142660970842620147147103698503517514383981174438423462251976962807201967315274251980973303131070730639201969592708524414870397802166649667817801743751510251598283867710374052408055775088206999885953523557678452115760214998307376946092096378395096588673198952432077432426762482699472004717175849096944121690537348012577261684455689815360727094521059968241460980238528479489445217084487185851624511715121374078427143456802154104636774297397407982169618681603620158795454744348383279754927900967505599409475309011935550332871380874158385532822130597752122727990247382210335924952690360705011609030442005357772643061536145132682122059801043634896368953818909460612231617652348571873659552383468044261507565345117220800730744645163061154334060378250217380932031699286651131748812632625928124972535532131647720148123412959109884178006260121966804548072755209489714143643265336507429179336990238151607492171522467470824148377048529513860424191665270612668687603557105269713582506300677079914201733685118712649816565637992654142083137822382389829378978153780811771592772107011590792329081852974373627639643468607221981755373589345577782355482400298411262439973734577112322283036093352832047068201555801353199609715236653738029631255938688582421747583843268953853140297898023301055826993954060532689741991809448769055435136032057768718520223618923188286904244062640276100267922993306508744367021325753467411595832832128447544117630306874344160209820749917152572659992849603615741777015673549611238579328290791280451463636133480434997223363110685140205063055375788068860732307153975554271877968517450089187124122114917522040907803197202799917484230467701378760487360433886320411850369398596424601486135329767378136764218486486395984176838060735351686427795870717532187941349732704915756521320766493248113909630413177083198815717863646484942747115731132320715091454995433408512082934168524076067619356985911859326746640168928430313134432646145980574550141639599613624891994063028521712146285140397255709565292421843378675942115421899579709154975824269671654049851477471661609219969924308269328549472561585520577758131176683128564961256908457274581310104289248196969657875695676855210002960871124411314825804851716410847343111832089300570699759708482808050018867055791386776899923307805885882316481810829923267485135268294633262990467514339027294668295304414970693798589112609024505935155771894653380447102298941415481327553279290586880121611565284278652843497742822928926286528346268982629488369353512303488245832373993254102213769972768990889139134380093680721325246062787447845530380758755107397493846162861172209902910692192812238181080877630849853144747422493273160052465175021294046738651654447007433555124176980453325661617519569042914691581852810610541257771297273190120036520570560630138325418059740329080232032902616726653607484167025749941041545722673519204822303281648050573840971909081637193396251767770279095405912734969010970502899342448268577009366490017084634298678840146128733131012206295720199541199032818744415984251133805853231481467183943060955485481328114165335967520255431227469318945161579673765994478277688889451003112718511115133171388048740307110731071733481172882007311308418852348271811290110924547309906045320699674546130685535608500125220013744966817330250389886455138831079573896544933983175679364923662469045870600628943712657519216631503952458649270033522022499799530876388333067251252213313150092908780072030221402368675802633849099586713332840437690832901701271629224856768474537514399752286127949444182917121268521952678267637575579332176497716510652324217089843074769858616890013279636529101612288826793862253891182601001096794948040647700454968846435698988395033597837103757804837418435938629774436215995129686177861041975965876632708802732124039812743874318558380118853002015099960591895505069639843881427563263885932571587433953955034086012822407256257171901491955197311353048428464642315009523379321676121476189730321158606955981646352503201066697153015491324408966059245672420610239007151481308537939602386880754453798337765010724411349588761447869129561465667198706478074276865393309288771844365847117596528753825858655063406947154957151635389576512033925929838720401734285625287685685192042461378816602392974697983984837582421617900187243449561419849137184145125873177141327485402816544900144727610427228336031277441390606716850236689857324186349277737607600353122600843528813795513404607112594317884095965357344317014247651793053498201745823427028167099117456900602256663991519509173260468849874642982888212677407941463838641729049667237285882059938087710803211951631029028616716917371251815209182664958141372737484439524599604381116898657796871804802993244021558618612599712045422352961840540975541330714509486048156369794203570682759558299452180755997760879173781615935179009036485609707182134492640972087576552032948032803314695751067872436539474612398791976759104102790114487583825227812786871097957659662636878749342108376640304149287471601640810503181469288128081125152090340378522922877492544778634876328417645214485623427501394588900780010732250364582860316251439333706511738285844579845945543434298210010710851545969605194311883102770909624586199897389798640360328688838674122443324159966136542179865138140706551923727304669503500088515598495162709225977109192289450915972131032466838299365240500814976990383318957027125824573712763598416490878001570988267892678486191627130344292133029301906726326735463772254951846718974825549473507192222289260176860910671478617747080209658025121769493322540227044221913272766232915504872938502070025174338752573636053745049152881225177188553795376350472499080560634886782382144181438366652974946136754189822693664444086127320203238957158368114709132461417639214334022786495659706959404591185455860982173272267264256547991632192698916184203119512209480394852798287257579641073492364899732361598360630377409709729782476163550092626556832543034454721251981525065778762888607116296009583558959414189277624968460642281016733643775817873819616834632580248343948180699022751266781216823000825361181300883952210803551713919991735380912795873745386533029713943969627379117829609180999647320994776273380247956145159243226868284382151675720595563003161707756505164638941972792766587597789445287223559612692312482784180094185408392733244799320254542174526166853239401674711447571765625184389494146310270940361584415842962192736417800031773288463596799849756254711211418542224582620504853191875381182415080754289162819265971103091312937409698298937068332136249047875377044780432492343002351540807984151321061119103239014293383877194564434142527559225140182575232156975130105878161203840756622863247356854827523914097396140937941646328612422242420051477305255018042477647969755861443923006829225277345699902284848836084155648211820652515344448220850176249770213018988505013368109213403699549318786299019393053273628109301588869968961706489469459982438435322849649002925494493200188723686553182579491725891521283791047917111508167329871204737995246758940421692858859812393253228537531451894328167504495092779285116339298067848723820091893852355227345991497766672870624827097583429394851174981132009762011115678633287582145062505760154153136839382363786445406101946785055009437127757705895197020823256076762965026328434413179847719375728158274856289638542430341142813883860531491814261602426912510546006713957754916720722799272421904268124044808718885169350625328278183120576264412776034252510585507458760707408510535924393087460692947715322081893170061838307356063038541752224977136256159587223165294009126299355619483708088612026394438409013980459157151563475923894588308192723321290032667342311912520376657905251014242617344658221316598164500644860666365682844189009317011337194358602488032486450296501384169895644024028446530851167867091489491317513634649341984282192832464063937456414475570933641559678426742973678950015662670190918952332214606156160106493155161514199460303660650210317720722379387433726362340018809453242663684745105413247266595612606152372346090767191096135689448756795865729215066197589013214989617789364372492673497137133989644406952020133591878932847707526162760000158641174049609348111152954971836684005280966821654432668864349482501275505788523681269282442642180819963028045401642804976248679082795396849895127833551322181196312398851360485343949643189941467230470967910464456607172729210893490580329342936340225508230770890140617286648046192852004053684198585929666337629433049362315526182690690995298626608219583044751687700801581808351441590548458483810118842806913364786736641531056845617192936985466508753710769095414382647080700548332557906706716679015457601997527655742223011898768709232132110202038279587957999477980937902217622958015138974589088671281501996045614968216438646067277610139399482807265403867170376006635685763218693306297342375726303585719139555420548593876265317559304203026076822217407446324887351958488066771262648876652646486033934809446486667307381339626805894753238296995408580904265540542256065222747725956710329619208568209322869493948078327472357979663053214751344445901726225617450228645458723444366418243031400900865490510365902274332132133709143950301947211438091775467843211817715786640602361528404692259446165692705535767445934136508112526217843572049091933036413785003568583171503698612445996052735502255147821164247720397895384631244481383793364759337446976627792695502420679691808357299367188618861443168441712080011007623678917903621174214739501517252009836191976968733546961704412605428980463279735822670436955092271168570568358323588413830868032958737093913440828341581060781788641976542697516091200849699182967802865823041327190438878364327761877838191032490880116413320562567606691364923080674227689727468638850916634596749582922197202636967484205222576333446835914324704380671956908329351495065451040032395822729696905305763282315033207745601101736696966086549192909219073140384407244042796910623880066513687609851182432488023085671732395661442507350484357890591660809711620534677560446757199546606112356996881271447804331150679263214214720821495676389018874199165390558678194818771664078791115448803847173675222556579296057542583416246341531175163919442289500258664257854670248515339573234149046933545389824354501481261081464090997435250466688337777819191902722394691536237823349985688602124435324337765000233692040050360877824122345338059201290727465832544098912737779521934184597360220658626066590630507880174836425972890276102237430428865045977296128580467560508039419688885043246372163003637545470045193350679909584017813707116923779887725418987511005929632373274767808380164706814895977239435501138584826959937326940526233771316969032602431996079695662405990299783672013260087712568839744573324812071031643364459531097893075122882205440652388024233712877440084586035627400422587821742134325111939881297136283463971972716344490335806713994426389115861251566193818332108285230370153429248174027906294904214338373324313292826340697453620779415703205693927536634939552463143863347982862212233856418211771747502269196457845888550959936418465759836187585124135291775806721577864484165947935964479379851137807145234592073117634788754849169740800386839941665066678838514554763841381673268465442297953060837418275424193697433221526127121842923279910259079560800596817823473542789899912044318892704158614806248334392139477973891334033832132368864961790002644222155354280175659073291103562164070617695144308502470714927586217190139258065323134172637681883976605014288007405293907328692224080050236306997990616363301037989838420775511790069487486084328328089138328266673032485880500230015411863116811803050159520849333172039240010696028708870664209103317617908022581078876999613131154762815522480421018862662898692592360699942678351819745190191538688765603393957043227951566410628105708268590621239214493958636339255808246513227692115856959025324290532665895449335652134591170226044456448352569425266914025792545238432746949373823299722544893433822895532133884512430409996823411891528809548218794642488058365888503143652200199683779234002910918609780878762950393386885731980549307429520357225321401850881896575541833868253613716924692472686190032287584746500104643304456052504924588290168208817269117000887558369498986343034261978579895142471266676904184791497818761516243777685210067875067251878016698721145378647510890597764031988483750935360225937279969328419891852760675532172709605695337494558780712172899494257524910195542903449522682011318791771280019984680129562089302110685739191547899653181832960022080060262441462914829260991398321374297993154519596326697751636082810714655033130507163295617672827519058283768443974184789091919577505073955721994308856732121988878293249126255297089163201422681266968788435068292771677710346070535656556139730252792102480473828061356654507714597215954759250522463613352053660303187657034802619189472725975358178771429860507624842466238327547281048684454838623030781319783075935367000790714117794701920611676313837022374868021132372912621767983581722983569035628710316431448793688591243698211240609492665174526107742417889387772578145989676998925708310133898071727180446358011689333324563652885861430604563198393057983777442497532412518308906741246590340350752780175557937984820461049154241973905644960175824033824845773273815959131846141625724088280233589356161775205087524888036299043643528195131794840789701535484540803487795188310700216674354503087628269596296078288044850147675390017511236319805384434283613106857719850585333659395784553524699181724718254141555862689411734679310964783145886336821275525428304595202136008316553591796164542918517425834028245994007411459862396006644183656399993978350976963859561581458363134966667125295789219939609634115809179287304055061940637654516476776505144132802015411539932227013136364264612571142270171197611551367643928686580950679635929153616659844684416520037785036474813631438191463583077259290836955758459866128265324503216535509220420219813778209529482897874147334492363042655428884093488230164700203579566211188734871142853350899174448497225158861648953047541631803833857344551909468302090658870534200954241167467760399067942323418786452339642368959128077410512561405105172061398294427593595264683808170128026065313679398524382392801852652097102367187646081919254545971761814234355395124103072697945058615151248194006704568926351140322450741046456613918402697123913672013133046568222278602940012378086660438199098371061087147869848963375949803573352387189574254368908185486308616201919818107532814562783475820864731081768367324861430135872649209209608952830819833311332409517529590182720139403132666062902488568531972083730230002403895711025411023853586224100940930683101375386989080391259298542600709054419410911275062012150973519413304157442494661059680013738901296446986400424325122501440144990743489701873130770970022089096301427237060434486206106273701127845589375004973986037697543286539569087641734279350714068005998590544718856984708857583147153031015897077506790045204960023710814047294072317478847528217877324529321570990586529796800516854772020929827200303685077379611421412671284050958889754115416220724516226511330938564631766590705962870743871844265883076491967343556481396390976250406953034858170337312423097991152772642704976133589391767747189159830515688559462345442025549108351644582630577866079727956964261552862044699808173906988468668829898440723323195425677261673183558323728640988716516739910893884476969052153569653592410720403870217391318153681656965093231151449272516563473268435643147599986708757454238279603046844544704472105721908366086058539194994128322642210957944901431434378506604462012520684994552954894184921622514553538574890785306593698183365869906676999595074414591010306962513396576133356465946644224240026311874317532589063295349750370315542842552333546090049181388049562728862595575211707252551884857957581790707903629993313654607067499807829453932841387501560702009022615145714058034498997397004340287293376695726502490441341797241477839324044255263791957269163260573535404720311940911059184290408641597956206356916742371823639346231986379407003251529402958336437103870948513239635214559004566589714638181981547142394489563077724427735265739967399882155000389710045086314668158598623271208880419336945843103691909899586897978116979817173057707179732447631211340174071396757047521511814021878316173796045967443406785374284684113535959661168583715929142529160674580865586219945075446263307012482490652723717785345400000452997850310702031288529661519435033814297104519270013161776304654286202507292377968098075048548782211275624909953372627031143225129268675510988740943842686996741548781167195570058416884211836924936620641251845113238377716835660999734192261384653951656387456046400908284899095207574268381695216612739545021535683418376708171316901526465106698684897561900641451359777009678555966940547608994178065422396881886949959254567189124600266692202952166705469328424429642140132034313383183001982457833255176572099708156079581705201811406491340014430350015026452370366127942637991252275043589165970456241143755394965046009283885437444205838539546090098422924801214417942458506054110483676833294447324041623133380540780103111600014632780316735204357290308641919249289485507723518787355074363259404719712757559340549458385736929533136360165215406262647086952994557498108335146354385939443739201006500027745973320607009912315094539561573783418853185617924346231219022016339963448621681268601314797189328002223637189503633426987932377127211718278656029457640353561732686482191957382655935023674893537610627625798191908286888085200422927681499179266311305259247106466055374030417859462845009621032569974239920526074640833607851889342765137920632808106429999236908918539695810886123418274595056826896510296933526563014797625843141592191636446094153032931780756689769495290494931764949049765673849297963198255903024360220288493099241241247542534522638380301079909123251747480500876111837168417363877044814615869850027912814469986117955121550584732771742299048570330785368614865864707543530890692878972498465334681415983958372083570367766383652542426937618067928157577802557605689963702996831372791892851770138920239185186329131804441341971933933364864396934272339316186672136335022814541129201811304453610129786072308091544972915131575796695234905418123599539182865558185547199539169531766230298538310329699221907497519651570997046100620864877586491490090856061679697243742800076763475069810205969822294870625545012587269598479206394655668737322549355426496626404253103674235421586684037407674726401831522897354777862667673809681448225377361202409799176601924377174150353256256194412449762464096598844621892159022890987347666793231994145433177318858526529559287305433305249569035956781249555615928780129393244174016542035809907760834320366958295415018942161748973427765908560063437895009329509809376016779050917213711281032073038703661627089758128861190820794775160969974930160773995550728183356308371996814085354029138813213475848211478122353700613544558996549553382275046363878909417574202545134853724715377233305813245812798781166051413086343609352725135019035702281120296615306843319337536339995644896164676242674210593373518123758939225885106637891818410807190087809016282764506839788231346906954148967641353426367382687254383204166841036820075944255147922478463251000154691180857682609771892796212542949646587976310531904023930436023881000606966889259577734369767475957204209307889521757165801975472654384343834216902015934127048364664030702585679895445429854018392105804224110155294617616881032388819302453303109428400829249196432244256613699310382252567578024932814005396861870311359816312598420215274501248983014615737457560848541529778951272313799863420789786805892805771217764480047706747071439053894093162337104148883999428109183495782684022833398001299125716006502162145933734113481351376667662297637356985613444894549970118504425980918498726270410775534775304096808071705731535322548119918118239065086143110726917616492296125143255649177186806318062397487925848624299207202927588839890741708790056256337278908510353034658859807065721329047223417431561707737948526076447308655828739368991594840498953452382942506014590874068473102929052331065371343333538394072864801611634769239778269432627617146433350394382987373414398771513124946535049219196005965068550140989310207461096888144623078079452986039244869431907173317355172319681650169509558435111135403773603654089093690215307773623919178950832903434770822858927247396146664987719876264590165807485509925009800163695330525434454002158227737826804203880671416044494850185413563043081296823666757899370427665610450224057637694794340523460255562850507664832852871719399088294581030332319493253324330150220180568941942846200545551390659697401885297509053336101225310501878013432364067949098847850697293808785241939853615385715946878757887462100497906725972190760515753130004689198435248016114106072814517888253250739702628918242047059688205502914611622059563075508950714481299695372542680927978427188727033842838779493732815502705557524628929653366160637433247993457203701087595127049266297875033047983337461124839048636187830228416503674036033597531146414429329056945875435119031421342739288108769085166216000684273250470924554741715786523167388657365028103130245182959470297922579524605757820596234800322577072330730042002387304802313270348360891830486037076453315462638478638053047667823117261395131955318514889504039355397048829479367886550961230178338461226333978540167993292727656160381042576811800805389541112057447145052362304125992298372025901655795690752902832603563377047399697296139429491193661643336814230340407586678776368913131669096544894047961785892636237319507158157899012267908458454943727009865966107888042419181472539060511006774609031622101321366206574774626441912944843566136987609093588221483532570229727134120863570672225456401438850585019812114691004996306136131283066118292903255975816507518014554209965485339849956495315879453275228162349257417240083750825682422248859954134011696320669228572989724636232735341855727170416334462600214048949085264146369925211222811521980528682878163871077557122975427483116447216624222992026613942732312313088259083883040815095667404306362874697167759991521874611102923555199853419319297581377060026823941656071489115226242342391151797332020856850715810102507797719046545869005436969346083033699302878772785798517509834748956308764314800533122081592328243682341950308767448582623560355085375420558354377867731418604895527737352976927504553595020735386653413015875471131088965293777057734597706279582933866926752122191990821090638472468107303930341158746090362637024524800770721312169140274340219878507818507640080502723658164568600822471543567492923238696993532614466125239624764007399278509576064110195679721877525530549921233228633198482675824668082316863852425471328263582321472531474365729203565553190763503306604140004276542484951952517516068615775338108591354273742798630362350440012329458333444183379419458859954698899120692644775564085327761686378235455664586825170263131810401599380372147385904273831909713798047046387215995058003077304361072281333646873767306470594242409663929274291893304786229853856812265860167834124523082496716319280916905250543423174906124386583009626019314687269553350892987870803853851926966726598115852593822719918398768421176838536677989291464785977164180780180063672142931058203970204046609540209904611813874178390184452341268962234942686756798125456681475516271481642199950720911369290580479359611542911619605058797420092571831863619214228692380155195902054043177878116488487900973507346787927277469969903856648649001934666746684096220899939563448726667904357955849933069268781448093320432465813871400686448080395106686909652154795416483816836561796540310801635016040738619313834997390499451291792233305510528530237761966878865092520174354140955640499151039624324881437349343474396493146258619998879122348571914083685802949952169495036878012332698875604448470226908550732749473148849047434001121310524031967539110700089321864122058798128771754457192822140917334936053889032494695535867766959931889101851855484792452838780979285599549259442148197205358762817709195511073995245818483380913353313857433152500126132208136060281468285138748360121072215728558332723798469152908236247917286145912310166072906871592397427956638675684060557700461536166002770822069293974887959586998570974333116641084523505505863137215796823472063629178925518038675851101331816934578815479192322566156961180769717437825007359092714997621477076301074540542302648050611817186728436684073021300125669652530963979399434247652353206775337357331381487402128367610726833901365275135247649896150486205869530077617087797132839464903671040336507859701372741247993737194643763089274898917686557616327704512934062597415019373677194332265510384437560712041592465555197062458280046514893626755788638242897464928278926939536340127184201524742427928072362330914842430679180899967598635147809644542487093830746024277487310979461567626415747876322836889715655691397217951605056539452728810730940810721997939551679233969589368417149256104490261757337907488675363756469602831364265511100270683151418546297557175453334123292275539398914643936861241964888387006810037165530747307595184268740892835689769010851235968156568395091702162207858572234213462765230180458874864606777169119775452025128584943825252258133168017073967201419798595888656868549716321189413086077467646540392442096030619654077669756285915942146291499885801379651333744042969473609240897489621035112634295038651156931054151046680766186829391596673359663974837697739173133610736769958942221167399563230096911694332781880328302590105710970036287992763619187789200214494820869325496648619781880356915747776296583598140251683888750427945935503376315119066806122308911761895667124272023208402498137912454112358380949949916552824695546677816383277756517278682281763757554768480475798596578143765499733142862832944342070060929745028966164481854529393926426846272078557163108477601218614901056499912201904540490519719934298875955865282031768698296442794779701127178175978285182619584510946022335775908064037029677710858075396705719012430421826766943908771300471824022967553254831576214127683828082596118430183835956322057872864139615743733877443952907552424780538099029704832868023974952228166542140893954104905060731316733366662865771706246932659139207096902667988214122639169273880592780313442895774093767610542690065637205709466222382167818742215178294058648924779294423036016033124326356266004652642751361667369977242560406488647655572342864072376569257402218524122896721284617417393557644746180602439214672784562252739711159701473286548914915474916640524731666360975920776370811504548481852965830128201236589030714558391134201607254337645960757020340909214027821071613110048739982586341221424427815832460120888141341648328542123479553912660841130719697065234650192008014376149390697846573954855012822410710103180893523338071018623976282788845521490448008525106773087919978446958599019192355264904768922883242236211678683585104699689774617236058596367226223761117129258549239941230447411673005556426885447555426629138822539647837533329305657838361057277064205580087257929751748608768127010032947178511166743092781540080238954402482664437679142167873845177644978745623522908832029807171494334643749232780857494738035603685919240334467650825559864754189886533652179525203213645007949836764047667810273158082136355037946402595982177217773441370599599792709926768789893031162620531338353695498043661497926464040073395583837900817123357890985430060960485061934631698483408728498347890681080715847857142716221583320460431262643726875601496774080345124155296577071689786987374894898243436524397222091743304792206400164851051605769799201283802249264127694476270110387915941343728857958492998806967374506949444655329430298989088019560391822141035789766251178759206275304991906940107755709197688125987604254913774473408307421895578844319136641803574099995020256378449476597284388989231719690260043586573736640052417955993161590654746011541350550454626955430887702294646276685571214610485517458611995286493788549557141889922617281484142807373517156275851522705666527542282497666115304103424251160054605820208636484850816017365240523179285596471061903496265948607598654033154092875922718772160253740392551871300685824783857569584453159294656384151619353582122550264654953329881022092947129587608233232691049112361732934419955844699592710211997937713884729888854243812221754137163404652015360298871596046177107323915648344731760885357153428379017134347462684725400385883393197735021114742723997982059268455742430011577426885359849590411701366685727186535992144434186845930902581382075750646465489580384051932288160786217109565550676319052024025369559573917850655940677367001353417204636307665517228659027819618542242708004314401038343911134692924924697446427061593494584352367978285483783645337164194348433066443544665691214851963574769496609022059655836818667585694261277175003428010857258875138602078630636760177247224612660644354893063048391013820867893394947740184243253462762420887616362888933972135899208061529571577079136640938639981484680381740966632461630764532921222981779637508405974718340049815985003712643544639070778322818320972077924356987078392481044664926548102586892664623653308407837963487936255298314933329406716204026150242228256562318585647072128993253397370212889455928466406440763912684466050768763801047949482187291278782223783652577798761796997517732511085974650912944781941730886134996745215239774722767670617230830707399691990403727661503157723217402761605400303367766149952046109609902205247740452158298450393904585881806372172305915059908407872531922902440387518581247363688592861848322878583031978506112132814517268167729638413515247795447881521789922709646935486518472184108387190068896065074567192234781853003993656724111678406016440418958905434960575557340480339559373678675850191197557952035424343939360177708642349194849054925793242239126987943766538326130987982227886990412321136218221311439158109392947648867247322234423148538672637467962759433227028542238670487020264390671329820730011510040735025950102521240268552448208084649532415320834366556920150259577459601623683433767574316726853339978124037189188462964791129859122747802801634339126228623373978071329320786487657056638429295053649131960190876502588342787911446670119123637238532758233747161554402496093453461316254884074393379792955766333361359355077082848518030116280469946153338304878141393507467140980905794427038169539025831993971011847739365955621629523287444796746177539282635869615398808796934608579826439768959148754932433598705713229924302186500740206280648063666086630072453402729896631362709412578559194158502547936829911560125087725376718367515710543419478642049258501174086247353427496432816514250768740633512824312125836374431189118617743203572142490921385378223622441608121022762157083024714083735113173048951040302746442944688454685856050174041082318710728092186873056947138844655007055683050574067274990289255568570913565426330041885693928128229757045496282240588704628287613663847076938669709210089275934466236546852943923919829843378796416046306212300685354070833885026402312298399782406505540437102551357687384121623141696559512132607208338536092785372579548672135363184932876554266061825213497854068738265778552309369765871770470767019325848020730670695010319808256398873329531408417038500426156951683943410993796035026371658395199410049447758796774669936042741725775329594877420494908308649182202597280508959489061869979626308765569656829149448432512506071331147932383367372405857259761855308594804085247878641034749127100259486489240644822856898109969351900864114358297791386295047641283397570439072663125418413489878996884705993011324387239395875698601846109675372537090992258391192836024782163270130122016836541835101224269376105037296184645536597605810117736560887186970442908742455869319693290779173730802962591519873510387465998872230136409781185352133735817775611332385899324047736737133034269990352606113747640988286967620582085564726446068634474528206535866289808407964120218357698239647830492166669680934872069998353863127167341598536651809042729350789686331671144743988203102452501399234577652163897345621865677218093910845786795610595534330548014122778537035051075901273310776869607757776743486551945674491968424257475161628504236244499878445167751446370096368974776295560126372695656133387148241107132669148358946631697914396291486564808470480179802967390155274515318779525585224835279344833035682726462316278594105668719435155503066594540826784675982288446517490679368985681704147081468859291607741954552055429237182041636492210036663677008841891430232908547040576121435427648650631273328242971125027876587227858304381349644060014824962638468919023790318400968548244653559249155623101324820161688009858150963527178616777826395217106293058322549071096889420328772614294266366960547198388428602219284325850305256813126861481185459424688755743100103079463092886614363126917476191509222758929719655587462868785605859850806470263055489135084134346655585212879491864763038579309392067784452942938456396928278336655525968603614020572827876838944258297801408164724491051326416673191803844576592882818893574638027343862104009372445151929471235358136147199439133617985757153489817203587231786903629676437562021376986396288843562797136431815176467811999488320566172575877547440490619783709580868699119439502381342049830480512052009675935698482654535913981744615123095546404874602955694307180162828005301014929366195033588127681935929263833187398210002805298139451468232505560670018214742924853423678334335902488373659409107665686010960518561356552894520583142431698921141689478664598178283627352983362132260606572494797811153991647074472301226119290593099574718279725452920760678149031186026909081082585487641610877837682044978376465819774579206152288241285810715003427208063813659541666266302906051440052947527638481247538334378683752498493764346229516647482419298125640867273099099991392520196184605051172693463575071665594524985734575854125554780700659433983154940204929473033565767686669906805236027704374049662873562126418292540848685176805908761774023589677229564676532368764239636647912911528233954566543314080226842764885039607471001347536665483202992771535488083810911933582032834029801323512393712094799737812957188704533593119844889664723551940698169241414196763054003688815042395084067215551649268483212746021948713950368800026422571394949061372367842351832517802692445303626288416087581350126363126225895007953619901806961209274930378631970616650501184110354222984456475996101161181832003332213987758055879979015175523026356928743662941612370445973723759783506222111993681267317771410191278521135074259254677354262272430126272725709136343958936590430609507512780374873523744599873034820135156824610281200737159465554825822859210355163950333290016956007466443574518039727561755635467227299417186504408743172641663203027757603048169557092770613052048682842442487830487811367322075408247347550916562983972782648638331023278006853802151707205789705843741247127273597057175589075193053405203918148309532386395602298577117502133457455544752870904546788160086662205358924972498546912215373857348733764017848791950114612814285082451005144064201711490956594284147377073932096186069300378379616228295534369344656670865617583653409048011523422617222901483470714720238485194112673979176295566864412120152846462611691348355874181901574187203583429223415694581724180123722221854017433944179875447709097153794728931468922928708272232961603362894384395841604024821559872277754810916982665521248956304293201171978157534892271023933401268455814956164726123971665367126449623957026513970352798811109408858662057918059331704655192689589318318060818463172814910003456112491185064022923273661185833884284138086572736825674375210159935030661944660004382998726015350866304679519770054497587666417130031356278469381720721525338410966279724853887025739707105518075633060355653397250849750006264453396861664319685223804354436375487108154790417728194707328405685309530993608473955941490580065839734845356214672253301116643798348070587006660640031479450285222589819431548915353736408644932608336312262405694947301244789333164862878153992821250162240803156091554543267165479577939539561397120085972454200122504608103785178149833568488750467531217670591903196895661844508871926819642661736416796836916071051820913032769686841641649015329237357617551267522342662881675152246525671013753873915572037473271802598820956747118003231958537023492624696506627569139791620698037401851847527370451489680049167988607687456700698373792291824894096414496875596583407769917176685196530785521361326165266777332464168771375618664560001111169268940466229619051306563262905584048348550470882645662794681538852550166148883820468515512842377460277191242225662923124452208445244744090628387363862007968454376939358043163907178235999201360177581751934115699696070120048135010272592259853284937450633878881417416004644711029030912525604851105456428097717838342342215659918254832234264663327515574051178626451833292952476255127107520774196007991758774923378545619222327965826751779780269969231231030539863537173382668705158595354469444397304149300781551507771422827936769926873102473480850711095827855072594963219759404659159242628734562333735134452664876895840427596861189687320378145326739690313304016881553729893119451985622772725216836059023296520186373655231447456044779812825436484260535314706364699675261486282439806794694869772900017879917896877510459800397844366722798600752190993859717309382001327340207689894272356302678008544883388297647297296269642131549271777639602022315422282293083124006919568876761512816657890481805017450349861251701415527697293941908193676298586414044255214280885239948195139234653604969246693191494831664244538929093734901612492076949373191655039156568920202494537753787070723783564195864425168487747640040173782332409346833442519674357787356105626563813368496203224157311940885302719556560498051781251397065673296705921169252203706638091017793286445055299491144084761795972014059304928617278767527127579325438009317084807560286988590038039379003168054702985401767462441742887965684006162000288478259002686065637152151056069097727353232320635889039575892887896314361777420629091941709767708085177050182223465829053929783697782740799533285994267274939999171133816024191802730201066237423042507934088566072831822239634681329974764508700911126861126966116508323647119115689275086638092439419397028081119323236144930329960061085450706271952646398315610454445799980745729148717764499208727831179911350371188261081009307773117716978707380275081001881006781707489916870137234330596910500603166916833587511680140482457505227179081844194486013924503122057863029716988737877186856496406151973981968775999122303722577136261259910186415177179315548329901366734181505889254621651828542273323289317592622455841442901559733838574658000123443402106178186359333634511736121636009016256424674899960963169042010163692570452202980447433794592075316826453126319680231123273592879840337368636488084277452190261538886722491366356702000143739527511962158703812063352760771290644330184243989314682264340003043740712629746155752891308872144838971920827296578424190794892219892942632573150336728025786967980640266724479431376653583963178286628143103627340447503085618346750527480435197426619846951274886757747744552924943730243004443966571395395992009527273540836143768836132959110103488448408889311463635289543065512472713671571403875327945774311156569272122098650638406726747592692760811001588116885821868274804690886896208267336954214908691893628391695642672435471769381224550345089823011373045442328324696972332557299081643151730585467332309351820540677086538393937336979506893888946087360143549037842322151977332970831413751050754982808218396974827666532644677981296422869501708892527876791643239390186055964728443036307887108225051784463149604068416576487564970728866329653667019892175106215844995220136317162275010617352023555925999212672491384668430943409778089567906636904574801734612694069040045516868818488930284239650892583719015184963610512239258541566171382505258193449245221886523745405282373349619557805761837706297086560114258131657758756658116250482390512501602536825577073667324893235402675774470405065526395259651252864281417906071000828627937249315932233891401216212768213592402442601031504825218340469834066665780996455362109002762493253266949670296256731404575690781311700747372117416052155116360113728251734182810035231944862139048681015671284767602360040785526316718738977080594974880957734011871442119802185655850899531634458900991173825273699425752720972219404268753691354114854155139672511807780679663348687853795926217907659557400820649224125096727136121842317567202412346152119695848781137504366399587905394861775612163990690693145964068322082567522497222981890098449192383723221933286820283938023189212321991716137468602738439140667566844158382842194559660435254521326522194010336156934064630469614416710150532742176458953269349754378473537727351440958925019801568296885806223363058668205265510762906596382658440764362513641955390545501297140820577811048289326918999028201413035376099491262670208089289378376197270403929716532458983820582718287667214279811582614230550600189432198215195824124167573187119672689587715261271875037218335108380222856339753444474835899622709769876276505498710992326409097136976581855840203218100519190890274207652427715220708571612243365050861560636848484725027949232774863773761703210500971821005810586395534576961095837044978756624347845798132339738552127720491617420798035237748424892850713148996062206591757410970600535001230399434999631132201405583868733394072417151938209864129636116590542623009918048715757406711586540271012992017059986040315864978894332127124813355599234284575633151492880270635617806522460007552420488509914171766057748022343385526578227641978672420739977694839178209182364275390072548665198868566310335617760771615849353762581847642319381727137661490006077030598818091556791073255692501427196178830275442401218719543591023414797405573533029313627427883596679918926491309599688667916697410050961149496756330157693744766941734931182482861295383553768538014069660920339057830823334737499066753109378250592849658434277308647148925582718617793753356481553833204337273356042757576562510966522985016587197060327952428382447639057171486533053926112409352728113848974592687371714565197406562759989474627128932918225871976020151033525603025399655894348072836528017900167229102637086339319996282546515940575952871297921341240942608344134521901734953552265034178375058898585780668891721131348882369684332446695049367178542481040760742824837080637192921928046376906728072191630090501457816219414934556422780075670359742928030045664788543698937772778651359200617086666265260180995468922436053900879313346797284194816010021653432665060189655104246265457929791364303939394224990315896829689187745834073224489793167044285825508713910892807623145592081027771881081449127376107904205329347968376416529328016442278293855868204536884926346946246447042654644985901271949313254311955626212458630268939565480961271585700254752175099715227732139619977054414226373706002158708828653928986161443012188067173166804450563976917417825015606883046145459256002852958381587324185369785130011311590568234333115007624560083958303787640924808149963219558681762551930864571139367538285940372306603359619992340927925543022384510201145753169223536474377310222117859219076231287930507743504405430069571592901100528846902041279385426168711946481991618549601037029397585722524250337222703003061725109125462714478232192411798277445803975334422024635450520175178268122907592042473737990005522879675367799458616253820860425495098393988186339864855587785663424311991012692046094379436754061697228838783320762591876388165133418421343931479863630170066358428633896062007728618741043494790513386408468049234746672922336528029358819670923102159965290876134067367290977044301524223260617020318494310063869285890965913345785472463434717834955968817556605339094964459784804265427653755133982622217808776754004553960596208466228031010253323978849845045876989442319077827601826747363359319631560495184649278472703881230647041071065229780202074905961275947217606459963459691146624543170568822991851469106162560943485482303731261726215295440135646784068212259726022522757980140885676163320904961432932682896374522447682058711576274299051262974793571202157540189906152043140868862503995050116380332184127833026769348966205174501753769273423064779129588575351848063518983780647133549574809930552727672103681091807471110203064102167949985590913705201437160716110047264936764810136825668394973633798321539968289088462786484617573421147872054083033769633164677319117500357343081027407984676060904893079530846138955616616008301446531949562687871869517509670906934233976057308513043183291919022968425591400330503441763223584398417235908974421933578796578235860541271000412115383282758789423594157277920797483820504310258827425974331341621363468370439454277528230451615605990296222417538093238261621467567773133788688488886207702761730626228893612944748850506972587742393395211857329462065380392408057275757028287684960257492803273156176368200131942838281006024546079621843991730593694296460903580016762027723372205629008993458929612060804781243574515836041394267014178088097176588224770105058187578714447730422974046062321229227557449594987555555584142661342300331180925512077226566974300205531100660695043812939530163892607206418146537470955533653232492314481396603577496959792163341130791123772129286104321745146859314300332969005139610645266486872362137541521724111660874260417738634632852282144946057714375628385273378523549496048287603821461913773328848353252083334773078767600538561375230329071347214314064675106170249207811111570591843353473953771310317197640875333603373106248676457495261120094426001019334969740234676641553445754202564406149644601653136885900044391044865361451928431988130470782002302644528429526123611354343401153564714477384275342135373235772016626925123368132303040801380029257623026430142465321608628870889761132384964864201055927087253295633484260589636181456140076476362096485690191771602723398744393456305465793122972912453816051251083183663849516211713797988726581702124510360664989145764748824847280287125508343516543806931912923676766988408747378349937045079025958327558531472940330590834301800320156791258308308513502093622742818879878602009628792729203313763470492539920255631899538690604062805495114480799227284057517465495175477988216152024173329270362584136143304253162370595598373664675087129141052679898064274198084066449423389999829248106785371619713671617035511662405630921061951453121841425615254410629750174024625533418644950703517506416110558819865200178038385586990861244793849795763924785786362180818491062975362322002427724094817988304822752231148692471753676606681669084178147243418334682846198228238877437511356114970176387980843267524158533456599095075903567850466719208840043113630530628562547736676092024799460554303093777553780802607744807275306288937936658608283094294386706202033284959208528156083113681366162649881933585661988718946277540825734581043663693008719963011392355771580096564466718036213556469361132797793765972755548772000694478998319078568044264128983493769994487583833594845449157501672119753277847947923517259778874169560387579867554980403217379338266453692925882422113942400888457208545614032498911565989022398566568639665294593377355431412524283671950052447798366008357497732557910422577734677557891216202104134837427144577779362252973929280692365181240095787990072890889590799167627413678419328203100486434054713120034673236303835157338559000211646436906449084884443989738298024429016327787849845094328754379761778637368458998484705068782113367959144094861280096784355621498586749596360535919126815431104133652148291606633985889787678971786877442681096050354148611801175275912613646563111943597299334497008849849024281458762752112796506710991546701319560207422214416664968621632234921686055923987343092474208742912693427564709417406938984279884463055715537557011683827395011121368755069060945647492394791922681461716318998740179283638426484545561139316063231162131727956837765650172274840014294407851640991484497609792233132075817629581972479264984427550279721362862067785343789626633091216801572772792385273380514091850152826726855638310483264366942368995003080505561902152247318775087851038848180462995315225843896641186983326255378967845787475286910645020088579461426902191851252690235415804380933718853645802107380935211259964844693300364605835915488294420863751207142382699879793215564874110103708979111957293254840734031480597692060924809586028308888037940341120129842713394081220896302574646584472346675496525064661415731505342478644798336857578251147490816968897866620476355052767800696629400530228910352794353280076111006393825987094202679874567914822585607288562857842150663567286302543020657805463388579596111782287482231287934643254343674109735301838953782875286105216705425699653432604546702287929235765893936460420725794596513390012367529387750756700750431825379271396396780215955494721629324763080340637709556268600967661811480938103094394322133029150057218370359637011542319701560968876149479916021708458994458908196406637507518076014447884626186739959466980266377110194285305977717359826912523289057201710897338478405880155067229259025799285899096924946522446066480996564734734651528905350535999307142505435198420591753928147211447567576750321862438361255010897080465498465495083400416323144863189032566677529926531728877410623736377628731678676378536576967066610322631706944684382820127547859845693578011959975177202701877731766255883460901667451475752590640474633145389652531885414656554134530405228082811378946704076866744512104816633674148427449832582207461335926678360239507893507339002638448090264919958699772661908895499315240799763430063295170445622879974228135995204675819102725947577642239323821890515435789171645284713208969841001342981331786211778773831225583476309214530557625102547834292815399243522301155506320116186268387446428311360794727280148003692318555204241934367293551890154397164680728301193557949427927162647139835132085812858458623129465482193135947995186559600675288009074467243022599176370324079171943716539763281093488981369601376452905496183565059950817651105806435492924214687476107300898090710973549146363917960453233772749009600716481347990620025617867576337281641830468681386604646662768941087722927294286673170530565647297266322646404404922081799751230022218074034128264856195820275805760660755151908895902820516848275364714775158078354301288201328021401018905305868499348786588172886460082154743426235129015591189479496923148123132192262470913452293059218395022204406121787418191757023495329773926372617796503584597421860747641676309682570707821732373339464803928537960953535143278365972971245130589515303114335815466951703942566952118487778518314911159950521907377747184213769622259524517571463293092534603884280937110704989759783408007677690030661330716993869545280561278149712840339809752336092239441331495617915684151790505385939591485755828879742373093117258900114808358344318544444004571222599886027917913944357195922405933982939844418386057148919362432172011996013337117261931247339496769966235506566890343838489052455248731575965318869232498433474373525335156674021745416052032220812121236714775926243583331740417960033280556768617395518009215170096738336604159668177237072000704581015861729543765513422584374453724746712998459535351184521776151604645374086718985213193894660906467137237479118682529962400669643615070974153543575406471755827859949698354166133985681299836429761225531889440366050334930214233586139102015765334976614726086661621070696913556206611558796153049046239788649688535377116989268303365849094415755952950506589720220189082030407771203558602612718970247182322987548221145841760331508428920688708208139313090231153107609021480161281254922860540648214505677946905427189818016959031570393199496123069092345351632001422746766503228095374080997920027770097953725039276073227361265844966697648211437236478439659836881775263170835051254960169394945647323806480686486178670719870996159134359824886960630336833190828561814056188728330224387463862650267439609024922761776403964980394226017146774714133392760198076852700524710352963373490313315275084772622146395136894685763647130138988411665868793967612307856490219588151901557093969368203283958419468060007368857181480999416324250727522261996741530205020644193196917758507270708808767842155344014763771110160054450011815074650105873415838353704142105975211073796198353702508082565476717077118921732019257556902952742750735897486902609438173300659124543452002349995747293017614252835505947297949608968759736052343045752987682716183468342201372970904858014399422095946411007717967748339528267170153633725543068297372655369115531406266355682964578525508738772713295288648327905780237024670979516575421020968865907719843348836378582054032106059231010794357328358055978556083696037011674513114683330162057934162595981242145118331614935249209365409423396882251236425553480826947317056652226730274515842762320374487103621487797755232947290925048083862058903560449241719652783666706570984549666932837013589275971105932731282503662288192340742320913005605563036055694518568079834865576418665130493047911405349306696911045253725479894566545358887949461564726551629162520788702045633753574719788512779116973890523887026940427476652140883530989669230076054640924694009448786149111400844418623736845485559424160511109765802018026425576400318356776903982481491401491954503409388278044017458899886750384559033011381617026263904506188304993224844809580731683087096485049295516835204153991438233302852667557477389030265979762088084531544720524923083287400932684826145716818710018172868592841892293936042550666632602917115534093950699428685398718009627553641619467212070111741113762278931538585646241794466597826665362750902929336999091242457291743961218526500475429896918400181310947169148731013445660032080303177319627590288374982558217247419959359417401931680949540024459492519061164873201173227963909627470018488695836905119236112354732284281258061436380040421061889048554964494547117986641799584212765646984034921341800873120848862529561192176559041805660885460314006170975121317724559682043545402516620820958863767112840639126067694171745844079958156679362925989683539086788648903338960257440075051013142605330768847730023223515622777504672154126391181400580061195238959106080054617719054618193253399936885591062865534797956784014881870822604200188565159158758439574313805726998243503945455095999112743957859629967574234249225375125680993720113752166708092453522556745823587727263252197830614821631740982700082231339595263964345719056495215325301325364954327628760530818814577070349543222116665261441437980886998586948234455645256039713222016572960979341288709892989035499239669342937229701282245943804209367461545761870848703628893185246338273990435664034066348207127084851109249583115751733586748819183671856124630216553859974187124915527296135773121927842757298835687569896063137296840639911761308923717395406854929245750096456170919046668705543968728913256171145378302408639933599446680357135928170873446575565197003248256008718548376932423998438353086256645605277686794996432474439821966924782623162759951583012961542645269752991474084269239507156769737994736425748153145729632193492505073378880303568123446825209007528369166162782909106815397223792562696737479242008299107109455525435194079808571468382371077533745508454271346223758021703885446691055583044098076632527521723197978456196060384205967538149623056917528639208679725880008056704317153907627272481386208043618635541215229747605613319166462807039507034517229263829775180029846802241382765186090909405272642894457015035176084127798315749062775399547189003824219325623064318485379048387584487532112553572588268172168457365783418059197542780454204308375494406250402044757557582872385629123338117627418714166381251413525105717991500650586748444934759772293598818145029611021522429558608527499445335184610000204750972221016788928592985293691681381315857248836176753953083797494137237505471853022067946731391055629761291707997583527804816081946076487732487677934597960514144228889147885628787313709643941270004459237779980866457033307732787502843426608781929458526293001588656799862060242693821509179524740791008076942754162609177025176904188805635097291209995203887254425259844478659918526914054909844040494986683817358373027718589354693573044693601282249043566913916271634812210378633045497285678583570525630140676279804091470775769393942420192363469920258106655070118242010907416545426890219684912192407611130833953354424758725915467314784810285531847548209784928575661095248015763971118066942404009831263058018459142382695688875145938084260725148209725791516875638650417322901562834992493227591811733523881502382121691937993546384844377982766190382200459837497909773975181497542077463987065752217155991194006051509889718716370846918453676287293049640748499176659574638319580251948558776386804067050716426473335410232797159807832336857903814541498550143953295626046597266487747445271545790742150991375175676092359820235421171538594437769791059563017884702671582831886603109262403602692328285594177607799897245527810216187079921519945185815877439433922178298371636584558172450815152927822807116383146549548283550250489015484158284615721828730043321717600455504391607203965374074105607355279400681283653045813388844513638674748882615815886434031573115376176668129745585584154725042597792966244121213075477704861009997519322753874370227467213536570308262368168601897661994786921022518441216113684774281801130775898935965339638420590962690592018135424846413945696841596323244580507482951554871734255631297710283502293177317665369130252296139559469744304622289542784308819563697378686607704745010953851985965528907264046202275098610589540499970557652912060074611592438454862416356251623794698579621712127497857199330555213523997458766555823302823850997618784839885046000255416789267548810575823175538541862745137953589558315013796977310761999092822175950073239614060375648459574949539710341454491152538034222905883274728223299761751878928230028767701161472438372328676695916851721208124249984848606199402531189175066792726376657159527923917878415200315804105595855262706733689433029299960398310740957598588556898815967274919823364284149109756316355381109116892952091572918525087830879684216227524196987638004132602778517222587608610430149685882610466747457368198892256730354080790231251386231095799603422771685276965711245733988084908103748153733926969635966167506990154349577110314329906935043808733630043430100626604041024577953634975049040404508077458345643764043535439635532679874449532656812748985263320883921992942247928732221185464036225339636799328533768033521279911816122864426600869980986897867796716868289303374987831629936836948632658660374929722276502645711816921668469929882621957343990302519143994026005820445600678312328237522318068804798995454938168391597772373883306234745927809029578276600240076050772136715918801680813538417552057962334142774313066804214687566769514701217706946984322163928155009921532282460764841583885784325140661143165466914868714038642084019130040044230689343124904043977658704851450325936534412394714805175377737789355808408923599678113637100737104340546461061603456383155729729208316231036824748432356554478663646377723356993288096682008134994029485750541036017692942900130602791937943190739552381925854653505967954399938009132527365793642612874581031703683195810698066362425838082805271468194543405097403845502721726081513703341004920566909694716212230422368773143296734438858847163678301467827714931399962267554967158350608502270086553843138717780213463582230547319235596221907002832490167105771157729293531242539633978522270882095925516033249424846527902594913514541164823495767341635400963838855018615029364168651759127962708339086783178116217090638801627799806675126999329005496360960418667834433846317321964894734987334494176007880760350636324733249084328881636682526781555587676493881423407779281312047612413985806856448707293953547944447314062563275995458344622500260801988366165418296263807432237430608469997721724372738716258098848604741625509129737420728109568521015085715420968214646443704063752019620010022555635186578659893754742477740101620334617068535710275109576054301219733062076307166247222923371835542632038160381472936795555077344857496832245959412952356604529694193917849901982836523764923540104923966061018949012883052946784704282441573336986373318666290145715312849279384384641108708473411952529437419448413229558192433270418170913473740177227921209015597554030917532992005459166387388612308665145667421682087451976517623513409268162109467557452156419115326518980736685065852784908373363352241083390107489213034325016747620597953602898048627888346591630901500644017399269328490336834518215256569693058791086896566313929558877701427576913196048027983451281966190485319664764309315408356930510224247200194372217403740840326939604560760690198768081757660250226658100841945090216703398361267814328147868093443283354005876049648854631345990231243605014049804296158938487005196475180098001810488156207532052606971299098348893570204479756102157466064869495340183318783490445786460494252184378195666250029418394169123302862564351329527797310424590418191000101105236273565166561577313527626958699496893503171692689888011241523273232994196758615337033158928542207552980694712918135906157916840283303392984301477007968087728870655936963482965364781669224164726760151785488817738250014151027176745318310686678566102195944913983466056812318415819535031386012094090824346579898269707988854128225154109030587127962742498546810026046963102661968623828539526079720847385613106524323685188718859222718503491533404288245652482181786634204337572811177709336197730529524449473255080306831619208131342777575348762117432939961649180522210464844299694429531703071143664256121053553916946509810769419902503062280972195914960390854676928579112410241483153351548696084003370910412710895147146342650425101683612757980823705952246774782162072849754077386009050888376106734111861295875164906291952033841266287422915431046370721777399280750948551602816605892570082272203818105848794470687443602054503008001874969700257383521692271651807503625339063777480439341605737728354579803765784305133272221528496267354541766273135063371864785996475445177015876667386262211306293005241490768507497471705064612636310726054677815343146986573756273393935875035686595326545268142470437537924935557606663030233847742321794818491651053518402793690040723971469150026592595789604673054083410774647899435953361347895182618014104658509189736451594454421031498383234146158963955825800189089104485291851057013755368745483502888983989484064864330205932305019338688354698779438608718099861781540345406282845694521362931595330060074208564757309146770702964421902535056562080059120964215644507933007446016389445527945714518651304529098258735638049589357101811534203076586397081946797028883910196437104790092519464392683724334847769526009686042855874656201378051505653527085154771246913149506517577207513001888196742263859529318254114604407753868362139699712086119598031307213075048745143417856013613825545668967588460684253040894640270618932041536900783291653936102345071011076694607641878375033081190725934894412009403466268909611463204183762936516993708337096962348769096393971097035803637902180898911472152370518261129862520423340883804660045844583341818706706899530220438880019291556484541505652669555714433594043923024233508028643025018956094436216759106013719727672247207452734703203921527678754487621535127471528416369542085198708216902371458651807661393569172723579284072929088671640663534040756806823677032699028418341286213604970418612580560003295600584053359875442266782485153509718570489873215440425962340411043982336061948792265427199211613369398986685125938665250315217157874992288616839349160834673209878254002599141530152249192329499567167272021415185671247942229163049349360851692180646531810397675676152222878051742589380156238876251045413498930804979867318768363909647487394939294869115152305853280625004604315864443994752399930862200491341839913728967246920327676424358777682226911366636635347022375080168398439895449662807942665493104073571988527779889069313559856264015946626037546363709008477444466871319828972990004539650003892601037187608001704057329545714648333942668512092985433829715054957859662736357731899582292564584541762228058209846241249400962263411743791352893942968559960047038375004791639696395105055440555981120659823829144405858678688114353035715963285622156368970003831518617518329070185615418044226278732655559652389908981655253267846974018823782250278964261240601575073007001775716214085000088389815705172923038191865288836458254227926463005711255685565994924634835504955434907369132208688537479069470439869763189627789698479812461107063159540484080674997672917429865223820618104822765737771071032489407087116216271184802932023616496414530590311293178101663333977485234659995027730955372400991915699317277082177376685927564140798359875234540968924618768642141071781732439941535195337590451515929332825169752878304259525005962619107127776092680297105502401633253119273477229710402421365134871123876665761195516118857099887965097327051754979598654278222556725542755106302940844624505828947800107061659870421539324108144280663726161014762208022325138387670742076914123292104383242412810873655613356858797446581463350385373941600900681212226680923575592261590236004019042594356568661287523144240325256676802751140010537516844800928840247238689387370170821549507763560040148655151248587114162610993625663293606115959096561106897832288920675732971380618191959593610238573595883284527536330230521078011969929839759999770832228062159258127993067672827101206874946978947148331718371956652206276220101967619567525632503131368770779535550155018888884576956109219574970055738457675315686391433376213760537084365648759026890241510016388790891474292685186514113329335719067879461727606327101909053601494573237594975417975591751043338699108460366867352200578732052076021402890122064150549015064191524413799821815883733937498620365065484807488028163314617937451825079486347404388920184964733523790176187939105301311260432356296798498853495585916003037235929037445310756955031683953705278470875402047924541652043286489256185236951864159114766558174540509662780082671787815559811779428248641904140094177392707898400964226121122290987714163298597220559941757756084075808157674202555245724175820208249698856856568764459303396289449165819319385576584575399275684904697747872840926316160567304751365488507544486399923586249328382605220529956848140827066871796189669817517625781573783169353037966689642796198341718342280762110732383129007754671540369280884683098640878922356902190710197117091787736707330756549650694204769041490756216173789667615675220370537235504869488026453038026410840395862818489300789760493980764343043306880211188993594474768116261450497481327688947911643537994883860268078940272862470371296550568166475910372112687818072972683277744978424917727550408983083452794161880410097251675811675266666918095892657055832584865931749525754557023446141398333372283582215412190531272089387246614933023621366337934422605885737954340760853179192932743531431588012014494103930133920039619588411365272373477452955879678924469183848037206791698150135098800817716986561732379787785595452663522815417963006271020443060422773643609505901840092653502186519895009133993036520997068040058631421411768670732169741217716739915325899372285020562592272302064268318439046451157367622627772149646222512122998780601532846974869146617142248505157463489372651224083707351291206350555786929963126860797365138606749556568271334517149957590955627369565794250003061106035105568853525243026323960810662130010250609069742995702656285980052471701435879587295973989914173401321711340566372660030166795751527896150565595251459434272444182305254605779711715587620350326036566801907190130493065596540742094732765140522746961012794076055600093654640118004346063644038562385602118898786135896909934152869703280621693104530050057377695386691720900793741135940912395423793498739843407102859153737422538028417060498768314575310307446007143983321047303815452720873218468417599090891320653427463406084885391767585539663249263731118018586949662525449953278610520260011154142441078945482191524626559677778878450262939595407817976969220060771336533859471205032072319509481284924424753702116356641336046162979158520637439153829597743940679347765094594812424185469595565381893824155779700536912739702717588603614065163453025656620944273203228533152392277059742275920568592162572838797650907946618962078421953455500450320744955054571164818183567181155714760652057281270380418502185238035092797702211088607532109676556364403889147350509958799974722033531119241965736872071230510190360561955497620492406446462944740712331954267256141835030878793048803334011696096238888951588734210132839050919184754177940711868029438129660865930148000361216589449591782077507853598233720979880601557633383033832818492212149968962910556562580628745766504304037705719509280457615687888432215045108985877881407946129138858540606544892861113602473733709053994182171948093187348075934703174246354267189993599024116804125455903518821434025295647846861464950599452791868392391658482916035400744245211575125789020498029674274064360135192376301148794806284869698686218761894546244653887232954978302125789818947514128212718694248498086048349720334483647561171575313026909242404522218586888998596842102640724044656531785387407302131752166083819876425064192675867939474201853413005042595116478657746895571623011403452470101258404626555009569321011459515697499177936057785148661830133548661211360623484831205730057799858732803335123561735463838698197785154210309373564626228004907187235402418104744699206531516312625143512667940163580558186119202669486649776116300644573449035800248577188238806287220425367852775632791069043317401440943309166904072336628541671537416311354704118953664799106162151244430142668314946612924527559201666015751666402555248334081055113589338412298477216510656717273793127133043362170260377516269749366423931838326437409172372507566218803740320363928513100022787267618980897677393535874988827478493036530452989530808425565938750773555486444806551141268444091845610843904710879154339927183462296237397271712765751287300973820402035398657125768968594877724454211018358326096495282108475653787833200025572904177146234018715026544877786192497671048376077333964607008298611438731039896014798765890638489553127758360671704917427779846380973324925183110688592641499303853436503215841110308658990478121504909690554742084824347910960331032554877738052030880777233383397804246409069711062207357436491037218310671350563576262573430693264288942540724141602205093791685406559894373195515467151762000538972870832785209967832220801411925937247041615146726463538313231012994760953244709385301333283300161371217585620356924069066824594227153815406791208576397328523562384513067123192802784874291556254442084734856193921730948516477786144202310606670139093372326578156158963487507885475347491023437916066037281172801421588195856974584901575733874508762229031104529159909108610220721711016957249516056578676834379756822969991850243038379663454612369545187235676736673009759367815368064875955099835879924549331710944922769093805411024445190127510426115889970731098315908496831283778446525165128065144523371000154462761911358782200676419586014776601062764868764575113145515340165255389457663974236313478115294354329848803787315302642405121776211027868081781969780772727685704577060791239836482483008561863330779918574061989936210611778171439941572589500851204778663443025201989284820020012943162588617247487816258434942587942425442939145785373009829519860421788088134322184396747280438732638140577012969018310515501290562896949572470986337782464055368371886243001162082927936805240926103355921151031905282110306519611356823843321903608236640317940156792480658910374243636407423136712332719474790656948232186428267909784469335608839580708217546966980831311284793810474773891903222041956775485066767025546929160119878839903353253014432665959797342481671600062024913979189026120634400561511885825658585476280246100331572780136022765643665411172089886983841286968374885455588242310150030125843560147599949101608702809242631321342433775518556191993930371097956520433177550824879651423696194355554773036614673303688503719920908402993415178867395382602533392890211594596902608413297726128456363651453710224961376118989354401802916927653564981616666284948377664138840623712097598861815777874522661290153351147546750211830811157376327589261022492586463064953801061306232974082062290505440442739516999507790170536110424792165367279917197318080307980499524965940855382087898197700396517895961752973705153583799081042834321271017718772019238297651589753771896215296543954427432841928741254897211977095450155054351458371626896580874691875217006014597324333411414143855197605838042243006152469164424995673733087746287192578730142303173144123694268336205130678822643983532225343238905770230721166525784641118996995997733606501907198366901635351008477319657939899605263652787534147334135431617970208055880900146755314622442298338915704795574800831366035362116517916159749709854674099466670876043671119270907304903002626441439496922555563600530833941198831544329118421947738598451407682253216755970483634135163325013771891524085273191575660982561660139373124529440194539884526369795025773518408938024487803106749124738148705062189839995427214198367652573496727061631028921303237312066913277132708274485614162237722992332066111710339630575833738744899071243329261799089659242458509090349237478719544103489626863059837652566921231971876542842541595594076139699937855211449193731897783748248582546185654408082812410040460184283284958444900553587353820909381190266818967164578943225251252684849034232325352467977183522869772293176388964302907758814813087942193417555945004400092926636613798666650065390640522227596405333833443569373442004705376681001610720337614948930090995678761596210409441411415378897729291044165935420401400971639356763410849387302787650027124257551983985047659454344898502547639962757725946434994985712436398818890156925372444144682181797721240653910652535085887739161958748333780977367774886211254165218512766894724930411317117985239114522420849149000334097879557764255264597097474433688829142694562086496867912616903976657314648094047462622829372655238848779058731727380724508041968738857321660606498090122219333911170054997506000967732035110802021670459742889538957667896976423260222017067224254850108275753566321087549258793300031706733894688276811094324563156367375225873231822604878628874561100896542027513656651922096677013679947750611424003082819392815727432881906414022347429103106741902075878903005465471531229982383268413138922483090015512461867096204734502751446974663859202918839826022689499656255141118411519710378719835897003079267554862934058756637311923471317822683118620598119689329715358972809196219764040875856970912188811303333902999287553658635520041650733669721261558036484252691058633965619273871602017489004686568752890399871120270898156216197192556460484535201363981212505266460712718523741926695199963284336121044558712527584639441398066070613594629031777709447021283400359260239543077351163889428892158432777610354809787125976206398185318448060853554682710338003106650534549361298481231050978401547945729840863503509219447872663359454725363632238403798199965804194041522890436257359702433979113387618708703840267266850256481209358058249635866242222547007292293209783401881255498727713630231683739370013858076868925470141916515829561316414915384995849940897663262818029893261920158058683359252591008466807145168534762391804351090836490985139831426413930546384735919785831069529035507518128694404643977748191240933756027812697150807364653890929789564973246837920796191649954904887029608347276686466923260525767361437602141614323579565042482708052995825418273320876957545144104618032297958131795444625289708596033799375844543979606660963932495625234912716977700138787987415229979932878912076699629253207843263992247494816425225724683925063266291608505579558566340616520088077335206357276516182623236294108290113431154403288494970860604878618029924602328471513054563920582223521194761464811249133291532237742659976647263715503079405028691392883764108370747422949291455652214658929211504610545894613992537535785517300633979680440672582173090675315667584664129776676884045711078343995459393553664743775519828489144945365108345244521527360043612332129215544345683227986595512919527127430377310156145134015620483620215378933194159234587867960300150343292451977333099709703274680759663655599940618745417872965249314980247028391624633636521885253234475758922210560231826233786591439226688895928031933660833848260500685241894039873984749394423750637243108103266305327801408115920278733736600973280115547332155137428068805762716902353794041385254533053618080028140541914974860641359249240692596464951562467061869836744755886217214898719310183343748146639928898148934247336582339777293985268883665690225865727823492513550662358870923079135176432929325165210773034901045539838334280718807360422639994453147053923596557589108293669859838553121543014608019572203496251635729251638233225491838310618007267084321322317230811073422325934118123158338635329517883176937715026688887860748555197885483818844619502180184143156820218987664601235085773234358943967750773907197815012591101599676834933903572907899056575429311453119098195151415323210250335291316888564462579172930030941246957295805619248980952255990071325790612046498293080804645406996958243907024670904849166309506969984663818593778017179203957337320480151681495195700975235673422206205389126149700191195653972690351219406969628596251602369495768212629983898140088663893667730297543882310413643764004061028697873575152115095146632523205034472887321241638469222244438021424512191974813137481631881343202657761167905800291040336141618803855423183424330212911084912707993490418171879899695174877342551494008900632024026036348264040725121224488938095663052438779590889241426806043032689542578289680704344788813441102972439397752215412165415449504297228678877291390264067069072865327336166333517745000682235317829636629477750364589670066962479828643185502641352918141293970062359715361837383444339399776033630215883735733492339581655935887145534134706077962324787788197051875906329659835802308878896555761120704428626260401950105534928030268655895088371115930921882760619436300685316834830637570521417757595402078441236342150612759059943129681575147251609844765485836105540836490363704221657525329083941330569544538016442865658315405927810792559677269095399652939208955735390112826586055835150053365799435647872923778782095263424109727192514153668472095163303533142535273891466977622427269278009617492878034752107731493676316962561211496617528402020111722725623408243557253848959288614991360523744972439259262795007957867837192190417628187868826034160546070709253557687868536293719700281649578152919051219652350162860363607199236961851077705326844625078279552227810020620469823646842221652260225625758263218625749794673918594835881153038613831996864634327798049129534845119515524243877628566264814641434545503507687293397124176789798813088511039187546925706126200958417478166627774481456852617201689425834593392525211451625792199239368756505668372140227403826381070986340968572266039263495048486953715742250519701505166289356351491643232204853031667203319140456662711856941240208175983866377468464435014193471904678708677187456656492233002621915845031504548548550799908925658315490701541737678484273644578606956422230387175344211726534365425244334556644053725400944776754181941135744070518113521651432699492452696139715657156456014026995359226716486225223311996497771892852157952316592202848901222346425023972956793856092749757178177606951669815435761681180695969865893700070841428623772919142265671771134060433186506868179642180297436288709764842725115338369741073319873169335392345577761346426901089117081902914734571155102780560153794725982198270327803784794226468711255997684856519143002831230776846982567678038278625879417036201829405580558395088454128405446157232533461717922937615872554109702994516969570440034833897110017573291726458378413316377919735441414087977225841912488366517234758621350210465264670651031582097357680631864605750415729191510945925175385225845980933215293017594993924202436395741464803502418028170961665662124353343021053385977458096854590765458963186219917098878782301717800578822153843660059304075271348560029598228466088384597747949618829941395780896320758921094119348757739502495574278521560116945921023259261680419931607227585751366393433509690419034407805404647954455727693274770423752613598079487626453689719660997865417002260442527417944721353038700737610691349866514018850635898472608774958661877818804978666395041243997871692544654743436087058098104705781094187109153609588348591304474816724464429343064711780976284833022848431898590801417055400865391990134231088951331487712412994701572453968163108105115604280927473120301300882198727053400726370950514799366057274600971428305082947737590879737322252435688385025414877744677795362520404779790287680030976126393833052714300696369335252795183404865754367174690492004234741487260723516018982013710550977727969152390459542775077583916741099899006078988872176918510786666056091685100285617116013155161449392122335871290758352412394525465624119885555298689579353323283216241492719429340091239493093394586630969906470866557679911162678413611656915326492898045477815956463420621005493049290254586315767112702820833892898742138937811913232138535878278540455273303944775628315062739877521708435746415583274569737494464630581837714210442219170432393318629331227518459814383203204766138305095565551320261821638807368018356743848924767269417515601182545831034010209759801638567642258790698328756691220287897963144121322493473922018279075809976972770508495753313512058487522099037833380222713683140219734527057060111562900531534698495625447211254496995106995553273535636491530227552081580566614269416732973380697998783211790690261301771348446838849500193130934128806614542365002444354359965600543808876417980220787646425666904792415422302221252531430335199844410374645134360609372272510870320923594525541403457780289277381112841627997787519998088108274862977604282523821500114132489663961868986719891753742187798835475938652968408341590006784221674684572969241039165393718014779413999174744879926092313443048512862950865278960380318336170490426684459601071642865209059393039936786281480084944805104988019410714672777453444700267749521008016166996897646192218344732999420862113408546528853752216761781648385032522185470809062705754824278380739501162361336216274342225996515289365991268475684171155295029063289303896488294940271585369065760155882941028883545676629489622457227902304174142670627889361083795027483031183133615389632750762645515728192249462022256934625263499230347908004485274414901942123243498941834041176991882633112457329293043444658661550366408767147980144590915501868621195508393530622772044070652731496694216453408640714695365553532203005927925711657964461424391898709241047726593213476594162484544249160454417218500231442921466637248036074900520857734060048646993203597520618792488149503283351968061174984978080773283194476672306715504561155431479491615226508435167860779241410695858465687698480728724211386107093790328813753895017445509456480492079478327649182377070514233611700612793265071217612277790690114999830347144291778231579550918096546908200735513867173880808459726440535768807174372314311349288574280553314543712588852388324548465976967223497506616036351038574146109299487438733875202272178913694150843461407515696076081517031626918317332875078184825977972319117622934316860573687476125324063226283407019896045950413138720165137766845970849377493379718199492355440539618278635829408079548348239489864132265638404104299749417060844810927302788281305044523471080268648130421891678159252754216002613037905599994738233330683443876682620844495501100740997557464909087100111029500034905399901964674048214110295185042544622362253634333781920561758247540661215663701865238356288776988181752317659700503170095053963057382038138864215653820944645798073236374435533468696529645198296345125206923661049258561573523286060200229083937742604137326298193003780587874906199361098099815947294357743346009425268737269648137064829816641848819120827202350430855277114512383278551921690628660269449248451561406274112808705640392196345792399065833420412506309417204657300546385892153861387180681359525646476646490646788471882660494939727549511797471047402035398156971272508228165169783972565594681865786614538910939493644077416522458352258788478536707236012916008975915955587954944010599074103158915149887137589485191185603755376100847411094076936505151943604555015465733155585602994728788747887835116371037071622217947465007181102147905842535909175047507733563004154254323434843714877452189945151842654711913639234719942310292674011951659831873621293565174360510540970669092039186110558674632416320070496420490008400237319284768983606581138467025233093461748798405059470669528830746758830095056344044522181614408269501338182879852620986805452985932256784605942563796925175148283377160451729434804239143973443036847448518587767052646224051269249881627286799958869892221291823734392976337078065732738804221905300970321084649323539028168893490947195223792805432021344531225315193381527202524927785239378978594943752886041963625845112041104646126203065365344207538389818914389208401985508069998047604153075137295088156257242589834547157476830306885541971344318525058774337893769397895633154206308930721493364667862482824862859291967945207524340458615567111826082289284282682559848778866953657880032128339501174198324897868028524898083736804128015088000478491478861784569508506829584766137341990820484533804408913713116737194877576303080117141050003440087997403370084156949048867827606544378369548241649773568295843941475844637942419505303673622683334314103832781534830308576410180881255328816429642246781907574897374927400732460284248992515026029783089750269877924256165978876613913789717952552918307194374793089260475125647838480044113364853563277958912290251413196251475811698349036989323976057679488817064241895939485688889461935795798464103941756461073902077140617544473183662197125470453221217366535358258780484505431618176251725397269393211103458982016485587869233107206014190318412937160091865097704919503710513752564331669131943716678548991947855477478441392996158967638122704659328115030988752620932482298950375574497436527649890689470735934475134525033649571093598467860708975209156213422980468159938213750933926903513206165715069071002389010219478029653871284295263063482364867213036793507380317974697481437164718708174332750639526230821258138179805112985597277837870828669884088072268239880610395489021471684813741971136316804309299763512456063055201039927230128850891058184036384220080912370237664164922765872839223387572933914484769353515632901328805916133134121286408097850361702513700494453370144182179520101821380761513341723606992399648475314222952487315072801681633122348257548538157213791046235483671003135720149350900640412696420033680067812751695976728786698288488800410655231255894440684800658540215740295387862141773139166084894908556911096570781127932947290516907791476512614037546134220188937459162141441240590503759998111633206785111985026149596887033248486752371016751681377638324448581155951767298758728003970914869329214820486660765086219034839159533617644222831178282609944677063558625188099377228602215927652513295342876934818121722543547785682952317398364634008500087270115092759608454875146307057722173183815060406291293611179840972057795498282951928992286871916764755448154107922644407810110844891067610630841448700796573957015936506287591842719190553634792857572938246132717418406187552927905203481628473355631410189378450131252878269883582510093248603438697274741956467156538837313665147325505184582708990005141863454267927164299592995600043382036117410432922555642230340870041998858802714744737013665219061298151811435117580993148861603085752659288773757160218456823999149089968438314676936046761396878295007391047222173921029454620298216358766768453237032302128859195319472081683113546857154364990769127552954693832921257351547512712704344272203511606039425805008623064909576604782148747996458857348054906526662871183563638540134062491652648421650265479546064728148911917996048248609682207527595797619214625825278835086707428269459260184382815710552283415277688183124243501707045348879411549712547302667451440483978940476879513020675599201819537602127533499497878825550614052893385170042417231366913794081902352980160096951726202817563500282314607852913341454868763038021624042250574152584707641628934729838611495090222856651097816390648120597193800505709873896413179585772790264070098414499847292079506242912617335606940047007683459695360020269784078080929045445825759898567266340780703018003214591948004865043093172438300362968140550450647244969973166255214780163262604507162762277566171573770314865305927938815203773789230716861620102818955891533485114782754709314948147463963990278456377520291609326801374377516093133320898192136420087819494997874925924870126281536490215502346355544793624221811419649150546391777457821795472550745828634499205752264319808725736593114282973612875890400062550024892687326994899322155057274837543110277569396348038310853298231882971570630236167546312617807035784702471445449855162939270684489376286074946157598491671811879140583194254558847702988179865045305666504303331857330872426633694811642874456204664653101205228550739130959807647522827611052001828599858664573087640038297042808374327622538245131805163053499481404708827510253060062687267645540169543764417161496775466523991311899598983000963912696603483312926100394111056961092337703972652888597772884393808775267638972897992909205238298888704926975465716191760552494475926466564741658081722905601105819618848499655217823396396991817032155703331250966136426133282200918115412144091908058198486376708043884808249654238213992198518130949880606953245253777399477714789277468501853483632358457858688357616938236125315914827096278965303006083403982979930647906426082155848344290677103293494424322880400265232875685804177502505620907515536562267686478373005655905441120929829488896238167923902457899321758855891213302638868741451201332473960445873607126400784295198925609126250540974061696779783943109928674675700473461111775003929754236977361663609677938291623777029334145437738071516033841807822391759982997916151884606514705417842743094279778840432971415900256664512019057775410890964827419257124828762455405019678542992546520703708287939440087795668914900256185936113971635919633006228853005811306818512850905205767825293468648937144802706148919741822632743454522606302741534740451053072840296866283209215976985663600690269426354028919996461437433723824201545394701556497245209139626643798778994803959674064798745468366206367678561277213468343810302799857923417152356142262508377178360578961604118032125379216932714485856805010300169543871865981210093489845382577315311697923644594599640974507091183194462140926188426525734381399637314781751847299554136619642700886666395409289489771954634838149317425463205801205367067208062988341896643868489707840876826495141782717160891897908315804775387039994100011048063741630831709466162614877512019950556246543312344267950265546195998729891417154755469940292878598610046641139792999863190734286565394457205078576861346171437272171173138082191841585287495649442440071664337237253073806941041409924737558902811387127759737598170325372888215626765657107499105575703042851247341473658586649588324311784631553316602919291370850800933461017227640034033976451014618522409528242699706056843129400110135269735221616768843692402415232528570815649546979928175978893575984691773413381220430982507433823420302843180790107709097691285104786671304054121005373127766263282257313325533878523687406818648333969552098069163452685705036197714388864597697121484199386915569846930535758142077151001462802427781723107948936260408258782997116512894131639485008196284639666336955354084188786242928186429304503387317641889113017900208299083186763752856964945156099621234934065762180938057521907366474004553873312822925975333315074579439542013543581631233893310344265972548565247940367808460182184393791755602718132098154916404838488727503268575804194637151830287314110002248027678200374140771077615032596419608079808909409902224581239402302958813536134304253014047224638678189183519083420160987395356171064510874409144351249779781131437866974455763646662876389674446975418883595419733068620144389848853458874543336856006115319329371380407515092598343453893347329248082511671286492301411837771746619472220371226539274335542214584563020639124600297026525418648799451184292109541184864147317963461117408061145148060543464512669548285705074833918802415189880947827809506201235148202855663335059658945541537166446316221795919012477808847209951580735539869103653183920178301670208605501496555448437974142989261948405763054919951075762758360656947739778225714228816748206628217185536617086850927545877180566336912896550916441102104284972611154450530792988382764847593431105547334868439905797816076817950325357963491852575170651901533124441707625686091983357459589366717812217310971051805852012721798754682152192676276634336425812453113323507451099560194434884269957845981021903713257134928315572489337600163607245710856143148051473016612463276450919423247626643026566057198881245156103440136633343241153028950047393817684527135308873657790005791007419186953352121929778813858213129574592501338935148989308013106144706876049899645741520071165663543265676597157576658868382669617346732863774882507114587233057087576178795305527828096338495910354006564376047552004682291707397242053968092494862755852014673545918180142455349313056630952458531704221849585123972575539245893960053348465526641208848191933878008521090286300070650829386406333752444480293233420899658425257441069223603422069662335595182355826504331585826077953847395547960787692760218300616625158969244864932751808324924277092556908678577068030139647097479442710333958896735220399825793345758810588676039343637170438144226262515806833278476600047367616954690372485780114814647272124011954020649644694374444637058209160992087453332997663158776208493882894177887076072650499668553803053542193285004383811600818605217669972738896961200216527883561751594532885174965395586803617251783522888530056301371611408859854872218640953220483835202628633379855824747440466148880706500220918768307673100521219299656527429010770532021258153954496720801111375817422593739908775059946561410749071900544597072160806582909461585578546123938598502498525598231626393753939671833602401998183514806262344775059539729956656269943282483386066027981812549001218157167195745273107836782059271649432155853468000089409464736441254280953604692822141997148606914956588556249984385048849049617901399469846734505912008038196871558029019065414801302048773781257924153456695514092911992954781598921877380860292144610847636441778228057745410355798623597961171734636776647988437956651902370027117822067407844500309067342516241969331562789133508601372841997708432229651956948384591122780584919063143306268089665186461392468158373836767342736982993291033279056792853679343285743927515702353906725512380822099291351340440273485881628352028056701491925666568909574372290060642588298411052754995039789083738787071091014839340615819160428450059744130273283364028989185407275467366068259131172156134452538457058547388488686061324375265004759112844610417466839410425676275036957425396366902191716455307677123888982773624221154026964045123867270702530452481921480834681240991154958506262744689189587083607690757930219196592389194367032732426853889524142854558824056139986437230172096318047214693926211951964977953903558232875483070625486786223653728332373986909689933943305434690059078749173971692243358410589771049468383661809109672939566390279994973493197291986091975006484333177073042272774072144399263760846952582755796094053807697864086338202097090490798361692564117021866855437566243932923367063327699142972784676066661322736868194555630078619794536646277325860073721476459026175204792506486222179264378725328975735354342254159221093680280198996664680095582761818599930658255286592023804190831528301524956053168882926356046805549948572971164442379100466220370269243276484560582358614993330270422386021929173411954399764764040624447747407070641594630641077937634432656513053135307842534548936478255990025970524826757083968173714562795952169821899072337925862801231681013477752109011433840569110970773975137261640889826673443867170575181304513652382399221550759021211044926295541653226769359042443894774733494121369133784435950769368737629930003941529354735971925314613588840400117168721095996061614905146396074560809709595768724163894258554289743919436149599858745981814124581627042430244228875288032709616395612513437725314750565397727891145293132573410990336860906911814431356509139828263500033295784927182531321642012464506604568840877952939094977460969064996016377546340156551169921581425443890635701827112241173514769572742947597296189605368796416997547281396672049871590843598492304052311239588213005638975169361816420133384389128498788173841926381096108310017128637284519532407208098342802169845735690804082791726447389410480663930002564241555362510827425507646048477939705657453417664804544873865964327529395536985833393439048101933879285752169528480169335426835765635247298132871111566141481269392657014145148193304489550771765637183067400540783865707119558166223387708305583665735313344600455485726938452611533731723792559377197578800846345500227619322950584777389169326025202278024167042574833482561640005881950083230804905708370926125365834362688501869867755776232036837417840143949799476698109551712703073231610568933707341422332521401419804058104712769033989935038176321587964518070804411971582473778500016188225829359876952999361072594544271578186144027105953533976682811843928447798501806574450425191012114725968196155297846716086012584660407882313687265465467348800197658279369320008072879801474401475951409337179867126803940076157572654835588944359184367173184866704151911300969018294660459724221888413420854688767940480965398028237836269673844143427038695300037997001077159628600660065773043588064699229197107097422191750993482861446727868342904873488193495902858672343934702892237854375475737018968036627425652596581130302755202460849905199136348858205961556864654078123054752877981097685714047609628535735206492006053622266311374693964263401726982532676858817760634731689983140777732552809162832330920332648747403446627115404157363199488160360804797349263206151433051746871430428064322469131198735687236346655474345220482870635730992406870025565200977509464938429218661059465145280304823706133523786406424082610226646546653526929949903553881403337832363288166524393522667608687244690024302622058565864442620464025630851139162385400497616020121215840653068993302084904898722519326106717817176138863386000878670967018085457350433493287444173781679367521259501393821954808592334012312184095275093546737467993667181943483950616107691730670579052504089582674737795189569610971405251451284173907745568755806062538323097689554525695824419085047682578108571348104452235056041869435611369729073705131517193876968632996828306612112075099146565289647779076446982269583926751040321999177854875468837381344246186017736097459463971669955070544880049290495982318273166623265611267452767679309072459479361534955099178155578501833382598803155526779087482279255366554161806783855391314221973327612156407278123546078797776877787574369564479379234662452323067897432761225810717988663423979719012575505548634733297233183562343743449601168959710972587689216964749732878691814822270255617917443842596494388567343706227493997609474893530257285342699499195388869096075500025065595191201596746738083767145408684798363762516068991028002782746961737355213752326175298312689242716133683574584647737587142226567474921072220620853333289496561044768129263727339925395107906633263232239700274678479174849588498621621201566745508794887796659378622701076722722189952802373234817774995115376952221284654268451800516653790727687301943845871396517198690626323767968583330087746167270018480136808400612842278487074362673587766349371022527816680420347034604302260145940403557363092059361319249775042814794029225397288314313751827961761103650016817033225060736425205125830887162457898851485805477491443652935589979850086892166803558738534277052746969293723474791087046831186733660389228437152769830575477669556267498022433074685317985599508181440178577744388688219074685540464458340290779005132757133584921308157455383446705422127327273397966450589783146002625597421654230228415113157112964798830424007017580528922929317823615322849533986528828161105421385901324882544478136212529324915901946234267954514632617438646770932682037818090083567391597069740091147635284477891527497792707156445931556967968068337109006624641412695128305165987461357827310624019921079498822883462117129898517642909902113596092773525540164490799210208106802893392011922133839497168784204310248188401840170930052632161723524269454183420895570210708906944175051123091474404750922545735353568959200459762555760068405419741270233795935527414865697450489317417063348192849541351663296242629800365989976751579664280616700195290966414474193539661822207661966290332078895818480587504455203333265279104045264877990103747043525695666179945934968739655637033475441540590668731334291483979075314907896008903145233035260199216883265507207820259326125624976228985961576541118346533364966977457966870569639332755997492197750991090919806939836813834823031832823754139035921245282925534482432237242716714654285321166320606421101075259574809001171323885054958146238490175663892904568435666432978993923420084519494143730987410624801472516740319559278105236424443585079728321742214969391994495977526116481745603718890745041446256468093732453283529412882282449876447412780634692699031233600052581210632568526224918997583901055815693319864163896037838899807270540563275379080759668120171609242701554097131418978935902806494941121633853843235533305156108081399351587977028886601442052937096211235389391390633803416892419076017061226422903724065591294048549645236433708855504037205153656502475363389382435302623485867990383503116543086413168433210180407559681944081278662391262970126977514910918284792921062021267919429592223574203544636050316705710783469418124273111705893522580682510100956881222815404022095581528735509854232945550333248678117564108655671700318158545187852895227418564360937228137035082445285593391264302023618805503368663141787367426249307236517927507899744806209334082602978664439811238993883460147073683531232097645802252412951333918023304103463081984583370983809489689160010410859433753171362645017473944269547903312625323846485184297873002140212503765265275793005442768019992586930228365617638456143895678257707987176162318078030993434500993452351140360166912624129378165317756418151110257707920513684809144739155306636303690947307175645015226196704235931232111642068504857428843749860369807967654252710853697384083246028916038536052293167956138621240669100446076584568833434741477436735281817676802198639939228141537591243327893764474275443884378283640693405729991007519161340977849699500470984655058644284265723731782879613704746575642314182837686327654798278295291701550294440192059097628103100140453780597861402809414469876848816166716196855340406825739105902217478570731157829189891759011014447179322207994130817039174051356836395184937025850161382691004813079634197078172053913432326551853351340586142310200218582940085488260847831469404767012737896421726075534758055812491414191892709056423373565531697280478750476653522602756468145862008426986098650368334924007686004377294878161287594883295316419382670525553235464600044354906251343865444395198548775767597775371870407853513181970942056609140143266108375067840926036794087889799360865391662111559254443726339766554127472118807138604476540978234156738352884392306860789534915407082671386355843176099393931727553397348043316469380315020729615400636860432682130546466431558017296877059342494715464386505785453712196485101628916301490376829370528302777633719817215367173811139168007758769054581172422288359190867715576214366166373869750556237549001654089889417579185323646215250775803317697872521868348868366276943242921022650002600488533137562181587572392246761436236674449885322513500012152596721050021142621923263511812711806165832632500311579299465130466249033699901417511469720338335114020476361625739274896512267522369299675960753129864943787576819540383121981562173201830703751496814608147949839133802298773272984785904993158179794474481846548436002038603197629922516849411165318858733120164483381673233566307680519109722616359876345106574748209013992924391297771753028918081015837431564011438615128229487832070655502233313283589332360064696298323065323333545019458937830094090453010953502578079685100259302063659476841086898077160205949409374753698154450307699106087472473037063427345943412160044448355645759748933400070906980796759408300147635328624753168623692424649382771717739937296377826342893778778911915079690172244687980768654639242204872826228586834110277252996997615695634478294463466597783322203299504154179918674092266406542599690995459257607622828550839602682862679463766537573848043226873713478636337580860880586730094679053806552980662498841446400633814003381810612574685634344271430315300987536604213542393490026169619493081055344288727174540423311651802340243143776380277089783346395067205632959938806540741521364764837409343204542206212820151161053661254778256286380665181285770269063940684452021385028263402775286170858626964713329390936467063490351201537129709835796018367913234772543213828561725249850209499960254994350685021656703691150992838149972750005894526962843667023486062204884297221018413909860192972673937688749364997450284723960788048225775365370251408792025125863270816448594412905041655021595927591399953667449077808347563310060378649031713503628666363162142457867887109831930452891909171102633681352047386675082074683158244578902363127626347807166562754970889904659554237053615752587631971550727176981634162805128481395581981912309463259259720795928217409894168528823810013250416991154273823684172071816256857361786385387044946465288323461423472388408615265743576895194131038720404247341964000254259607308924645381575769800397576111697239358649766264087586223580692309209363573195922339919386941735743698279343023549519030301990704217899843540446801482697509428450066904693433191129651662743163159829997271912981821502436212807501985645794547223232073262312128410990391925271911017838948810197848701145694358470573920296710322935848370582397687102544800492960694446418331480569295825588572630203237708094584209990318730934339311130713009864885741279384822835285228347535810105338662418848306808674749778403508550923786198485906864896628311489379879513810149876234772948204212005911113151890859861504065366067300022064918822467813317947411335239356781613040432039521442711230459654483754529382914487141110777204153747725506974955166442048577386412115299557743630440643378039539067215116110172021374677834647883789002311578972612627994584540863071853862682886411141865428505327111067706353069374989586400491992745268898536405247699862877721357435854865198965644564832784807306375020460485640528942373227678281514075924381981794114652075907203783193977329255921589621094475482682085615949361426468529046279331348880712164453533810492734024930671484365302764733903531796789525224769397492011308579778203957288677426854827469293460954149836855546133333340150025090138716616128027850504878065520588155170522911248097622767614350555983010074176594647991038718527389553096878760429544680356985103111779961209173827392050449797628022534514532584558784722566301813485986711487613945428632966511021903636789277584330427493920541795418949521037177069315303681030256953428221722978316840747628410651180184222215217276470918786339222370143882913307779175213867824471167780529779827987046624020781405031618859668636786581122737446273168035964879148203943127473039970844952150798756146204940958718752099818908502781462794781770141443047721814866134614704422801063104450494334106956621792143959024339867202681474800150725828485956791798053712103234920476315665214169234329127384226543863234607067011168028976692466105620681814479999320993583412047719484819486622607523629816402134960222853580298583369885630272181531097269173555258539298470036725963232064332679078304076742160607718888594702720596804251999845887074415377289936044420121596492280472029094063112115225072977599848543515842670016368851214602210963385928759911561616831565274003633477373577174097188616987406423619875766023852741095960669377807306275601343074550778344391047605113258997534440613540175600949741145044747604473342041359284029540168924732864098701409252199558992176429778340223579652375995054513305722491961118273626570429056667321961288641958051529463791691844720367802099720409836825588529556319227537802484507214505888091999961767092622986385846206559854490164324853889586207190154206809296053666429411236971160331350646450406899037510576654134116039275367125448302962526793695526801377458668262420280019954663163445327198760281901255633824795442308369281590426586262224383888091349271811922379542557819424708305042456917061626561263212392191922340689694803021999694259892437659865675736015723871635789490261346681791188929384762541683333371802095782336900536357738931162417110552251881195987944073383707825525108937379964319040909983255964313874265427677734760348152902582780299990170769419561256123365069274790226123497383152532579096996002070060234718634509838970894263989949485881977877212866905363013112028026373867017024385159693846695266483372926379051885867450341829281176913973200274891583891421061581885812457316273847068554574927203833389213908378340742524772936085231651467034114895932016932081350895259148865426262931866493444147122835076983787761339392811496920946433665577060452518154166858109904087708538017567233747075683033005420820772966026483443277826397184952772685517276474981498269754017938817037572052075000468796899376282832543586696501354990375638419548838989613091857095205894108551448875793335262554690621857566213243871582448500704882645694223825450509949686195895095123684158840447658587339292832439074909301582553126227815328758180531337758534543879980280739080914986365495036736393789183737308816105201724551461137778413411525445932170215546862809323118071777363710438257857612265631602087762905603416069216732919753189968440113744755734659548527460158597856586771020361695100753955092932811948489798890412704181897521094323820523379147197745226754534852716137519799591920076794587436608178970715617363503991170977062322748604782253317042977444878884637967892935862364552252038643466176517845161562306401633038963845302939911398645105990814061307202793266495111311155475042252125466749774923985891646396324298889042975022828775167822427529665480841987407703183368817914097898562869156612140642284243129504609354540931330388598347832147689749116778089922184539189860191391429230014093889862040742874087650939268715342283577233266493010263279411806535509760093705334390511909713396109194743327027714293281531877126026602782740889479575662941492642863214064594297537793071809458333079162128701322090419453824869396886582492671413643333957722517781770442976472767502480216220313234427384478205605814932293138733534402721509680008692785190668064812796371514734183090735004971431790125842909967663721579604441897915855937895569472158707054996064757228978764766417837189185959451522643207714102066926342890952945086852499852067026553057944295560547472602208785597960658068386573126312581987544809154572017642995474876339926373801853015465872629425750261439635949478183600096328373868445557996525612365829063864709219251296291885256103069650044054917296634790678676308252304926906181040591072089438527677728094868180109019627269054026654704828775783058203214456075659302150309846411924411869658705127181284023526664803717288665701782971232626558842924269895409018637654881901997351783887898903607786101785226221303523517361529291534080027944212882415851468247901167394305107896897533229389120125515548921631637597688696694434017128844083854224240784898476103132833265484559796396086389889871108547875781474946764043005703804120634955002281890322581981274245320419437133824340457522402101821719108363619630226691165163362486887049588936347514182243403524329558566569314598448920633787242400805296989507615349302030157141487838509104516117313140357813967099351015746097560111797089607882718087657074851410214603487415628918154696664193034271115409217577682828810621076593186854807399861489271542560847354148032742733868530549882861875950835141273079620786505288941601162867379588188050632695651362218695734022194201744696325091659202520302849865505459882969343144642575134566481797468099887815618382385904155643491852357195348101810383695580084884343778026223958120665356882405770087270054264462323971566915684756855551843164370086969428960570625765020748237046003281479610695063920375955048494738552490766160293132533365998348571689677042615496900317698654076395789515358581596181285247668084149214062437792657051980657675998206911229106990029923796919016859966176198197638515954740757529794536946823928259168334857682417979438094955396987150249692198002775442246804526332016847589760715227383056706824839620603946820687402706617789232304381969279743610778221157445332557340532950530861586096719169814000406067261480732202440309341423650778185094427823557321673038872634821977224574908195770453682774534925920166512753862866003716151972302779320350134396082816431251782808929894935529146551393402164949341489528700127192190121027034317233025215953269350189971180668999078521298218483354200568280660544023403959714932430334024957486284854846194731326155054367030135209437041094448323021229814863253882345215540317903306498718858020493762568153377348392592220097772358829593115003891850085357389709748150097219557581629801718159823320523235363881578040157017786710474985660100707557675913013461028007891657829667188682084973168335322295641591739714541381155828254810739987512601193559619973064430705113523784244106421777600549255822267920251941148322746123028362696612547867510822087778038605323118630893305504788133908563753510676947006981998136798283778903497737548709240619604435370615675555732261211835903414212235563036995769272607508205567399581933871955692994772180610722964985834843848065803155395013771794840760502367319963138762777419047442089420887263785497854452028232921194541261756330283653006455926106587162119650692008662725009966897774677276414569792306516193289597746314148997942255538659896563836604123744385682610047761056072885737851020712607168792760045989489818820334968004570589775388174583120317699518105265090562744608555646259144376642678252491618021464928081717201375825916768971992496870438099961851612231295034029575804109126850239768183026630737266754600702333857609988692612044090245383116275331187752864904616907269012066404134588460183574836196149204406203183733569295640131196946919223599582005494540946997899257135264717508090823238708906231292810136155144983376339901605380137500803602900378573600656685492657654887219905561252506573755718491075560485222050684172832739898275862016939668715254261697703024923579165700894700657753230390109637098691512347208229991591481627862814271801885312832187153075129964787759208254090535180216485221303778755776607375842525404716167086311265517651036458728092820514797158690136408500340487002517966011360426834896276359668579095212730008261490290267118631413943186713309789629775534265039538841089717918859346647468450006919608612517066461463878641664333382546349554252785423457456140739409214873175445446817962912925999406405324634500575390652079724457816098429502462984894067285843316084246717817744712356567650311228424384858982309835551857537607406049399529257965668412177451551284086299163472681593384537951468488544258280932862588867107009783168547350211562754151717084745698072076290015395851913859709315502230338187397567378493926502071424807331592350064347543955987808821473797702675762490060331482954920068542582428431385679204801434587657443570943979152563897186553879146124609906625133171509831848253515188579854963100226195385163825382519925186510366447529682754423009556349827831669548992412635992218815790738021266015846618223500000731508774374903450611784589912336483799507794443277963065097009278387293611399839828600707402412922294339900461486908151613732848125396776058787432561575713602290268305457370468619658556696761731915963714744828782059381770321999136804208225422682239159702617242144143840843918811278626010089932284010202400559601715460122033784851480246769329366637987094436814114543566016196329318466882597643894624783161648560547256481818349557835467385211734397773588449588770981040221396547215226843966790889828937601564299091467991321423194101656401433250669316583631982611102039664305279421517814349285294872827430202384308493256731177679382928780623101570692267275313110441493254684176134761131660641501256036599026951105288218535412668557028459133346578167969645244223002941563982601801056121867112024880705062339094096235835758983691961294717814772599066595229655477135517317138574892940862021034042622706500101487671421847712706860440743844192403416670720971730714567488901681575654056438203969273409027229924272213012312059238714548523263000715931778318829248850537122928698930905814101188843045948483281195685184078430036650262425800152143118164051872682840396105042299734598909506142036312276157504143182303781729500826140963452727927342016022264014522605383373664412502528705564883151305993511834558220204696802268386911728706382118047610337935211159791947134437319524900573738211642227542440731557380841948172509664614045473896951347342312642844893996553910923479531713320233979120866214794959863302886397662698646657188594198353471869941009270547774898354527112133461202269710059303033318217159257818178046160165716130548784267454910344802435743509994648924570799468956855179363264551218985009108633696847181718224660316924873674814855267560025849607853187847224701064711417176964907479116279662515567641123161237551244041705659189204655553616544151167148996953913139329555852205697776160313097191155385236288244051712672709215700633803584188626709358096610831104254283591678283065944926041398761898627557118271720983649612771416509857717964784293988234426568668666524678104206607100803334859084612500036483069695535300473261133416824597140135023782784588802787335830967293662230170838717003099418404945359524780145792953935306352185893580418661220411450937772894506809894819897806039862119062000110638802726885377175640793365743744543492383227120730411468012556583675655974492567858005777554666027297796469389315880229624307859675236818085197011687782592303809694815684509471550072272241555923861264265912331089378683810679023060912974271551396734307887230028041624207984067488603887052421290939965192925934377015412602136333715433602214081698440052250876434437517943993336499461593011528207372929707094127556608167899536724043908306624030159275128603182957391037445335130283067939524818412065719594910765124500931225536183226191817397233361947342635280112452650963649209738767986911852447281889575929020065908251682931622797631661697974137623170101699037885334979705793521418988205573419443194650856184781929651714130927351223509478148050592899535403552610556480943227068320384847834178604646309927076329583975479803653411547954929432357423207389426088995599544072347903803735322170390685698408585655808757974582418458627348070557233579197277428810488862912375295985284912125326995516634007645069227394741568428149635081244162732581741498373651081202856325492676368300298750493926802824222895579464096825625925992774846977739419377571123100748898653804635039674255991158719008518870289824070243690497440083913935323791030516069061452603541763274401930576422902592699831856787503716214272185961389729423669173569766684831199214371688325598820372806034126993674350019715013542643116055596479054159838471414271291560434183848021600435997604515720593059592506477502499930751956422469388347930814114144972417238066462280045712599859986215648329495832931078127288202971171724454429447755554907475986375804340608609150828494614636450480745685426736857663382068812871651217170680985980577450111485908263811651460679332848119201097032495829057588037696147212922088800400374264865251023837034934336522290167241248749981912361036507901114068523767953183382985228896576095192080429525598776450549321275669985125928725302237495672391399733565920235147952181206510781617891994137186496076094671765527469052936389583493966834675782914211017327262952364325154271944147092069044672921252135052051472490858929496356430014265441144452487480767786397168535649018229836739907262258751509165933441447159091258906530424254391101630889137190663756775132697393093521288084523573748404741132247358894925153144389745910254559863043729373538036836666773321717843541344999181093934012980365927853323337554579572219446845509014623069939702997168515239664048650045979163062534814046825652903250445799176982469269704816293376129401992203570887842155228950514969288885708346051990921101287698378918731468914334254290368120687297999781802041426448181812944765034630800828633119045305152078701157262788005322271639848730709746541020644038026266366353177000146972263579253577955690999121087985408422620938295474642291265174987068257280305414373646821392439878751185478587487124474527527422214780701612254822600182499586220240422677246693030826935552886803884115414839052660670337698420356195841589141853450702816292512640850136573801384518069707721415168601992269882753452427859245039959601136019671789165899315159087501903353876976952569653255711061289498378447877879644823694132534900482196945616463776870456963688906028698834411541994780608095521003436416091953651061690892754308283649777450520135403677719185056267341773780148404103032372021730301394156008617877881148416429348935795490731450823171967299043859195085336780004071357728618981890294804365838885322057850981707389630234936086892651562908025522878033705677578813059798392795878447709060479385094655352439259458447494932670485172807648934154633036820786146477209054731662724015431522720249283786000363834267023978146944837296037946333618990973738171850634362638946010103428781707240370463865566196845826500412087508139159931336639656077826113882261890153158428473425170010819379357925703024388215490489705923829201427869091704096297102408338015594739474120621365438426748887509513022908429020251894498595415675444760936534301542745606638724670145693596551804921576263470169099110560922335539810769736818221868957625006234403763042430003979807066645147337134641165540487644459785902778222522972006308108335760705274064196435645357983042195601658844740351498884838228123548677429175532386972023480503707061806355168411497210809338804203977544940799969304232940383675483348567257429463936536653121381539195145223697565882620535868496698588845704497601306914555811770817438795777131149824958552209504053482387572814520681462369589557212313749589761516214889226627196604754876473752012200878753005901393085387263229438167339313044948075515911779536358714775541852847968559894699270580385147142616392282870439007642011357318415012885569652030289585880828030198693357584478957908588651892767416104286099399785542736635903650174616368231481633847476731418610162653741771688554256990280468652922282518745454309669601454729514102136146656294453922932255597078242140898375390841495734562334715487172690457706073732239680089989858883624292826693528976242289180468185903083831661822975074664954418266235110196880913734595408764618432436698994306105971979798159883576324539541190258761679050636011811377057326692297712395410497950019856811196093139506880633029520207183145501134229292072089186546246793447923221127854951699058404389871332642110870427075594870705097632101273595664009204718917180067185027487857115150110818495514590275005799709990641184531583765363033025869032901726696123515167834104110420605747281064726786403913425959629520938419519379552280980413789604540519985852925166712857285209198580919136764923543927801000959375387830266265935689158594656051239214152567718325640879335913761076631642655821428254318478257592956945063733605658135987235074020507934903225720802954062233175653652324247442607829024820246528573240125461888430159165012270588047833264913071256021868593576505060963555694488353012570005467043692610266693629836382793242524146103284930430608950192546623192206691807719844581910356798949899490850069791779676245804430586970205107750343350269112914151101427287342379259750672135760379834717068399612847415499189496142229456082065573850226578175800638123702566470284327591156625059190224027568970415608881160246889482203715223934515508881447943875283666217633982140152141096851171027783581129885125845925337128232149491578530227048033870996646850495477979024728908729646359159309409498973853844383574842763601879130845008792261317123077172438509728300162575061079102846083610103673249943155902805193846296900158776252709751425613836456863560995379406231517933008253545474714711001396558925876804591424382926620880187916749575995714010503703166644242750080163650373020821905651126470659355124975553663944159292576458853762988915192998171480594916329567354598881298438282035733615844814966635092746111248531200889254034056352456168019483414047442812169377452023693275637336773558173915549565965145011188187678008920285333226082533132601563415966272073194449287564919844312864286035366173281314393260200966250914703388901218018200849612598411014963237536248896791725374901179757920592726295030918267664865889832168899564383303310039673394157727909747576793160409954820127026263309715573789399613208718052965264041191223499568873896726619565137695732037002675603739864891638879808939740091915900354019829375081431183066539348613738847391048270331162020931534383389760827553672693018357696552698766588233269224677300221080272822457488936417239283252019985220454923498342425149211199870624978035445567349447403081216063713093953047963526648128898121660940710966364401530667091937049218449721579490076283736121728562888585270314606891097945763520764092105810160598439457875198376274505833604184614109337588848507681829821248729114120213775162478815224580363952116074389087596077264018648562589634245057664612302772174296065841456152348708052093403949112420419990572300276494428656914620673287704707374921922914931170101717945065155268237588188243279214532476500123870512865064799149165118399622327304885608236402970604535483173873356278730248642455686125700103439281801974234276557066139388178550057585800008440930145879533980849874683756533257197000800265265396464075246098198046391430367271082751836957210402176211819685044574591788765690918840906867622089843427568385896449539582533424470159381043204264831754241832177635776863177427177490477390491754982759705850158274882607019121578534468948354734507245868115671470312004231490926286688965283354198775711029859987378669331945823356513389818278520367662205694750413714791011678914778561555383477167520971326948929917809605547030735192026229827309008159665993003719958150739695541973080537025003496309903444495708059583410248171733105546585640292474553375374579164987094602394625066798645238659620611473780078396773212215072845063002113261869907916145160964362887947286510575808778850115608231189276742845633828582820871690260283866360285746372680370999778733382384631602605978037594633960491186038106052765000446524398682662854851680007411169601585548069498959761528502142585112932840753305792172689861141425437861868694370195695745481639339061722605735748281489384846096163986549263674276319653846485618840613697381093741352992858529109738940109347400510542587157004401620878489044465261039736821791437978571805982175900674267288250042398212511849054753733703841027549825400302948651197265215690642210451552237390969313638216579750027777135227625362301474301007826331171715370528828477024924741896159293783135688802766284648015220060358075927460646620893960566995701689848950209875445864847514966284803901324497066182640783285421557752784277050032523489958419212395453582679666205872471000995671272403049971702795625928330846862125840269245053967668624277560749555394345424467067355627154455437021571758939295583859630074471443685765520039252048963130221654425350986843345120270393395722691052457479196620265961922016633686702644189055621613222230838345988406218798648991497046282407971584592220457238384718166328578429740465117955528200537490018523108323180286508298401347969445142638042438395733291470734148289650962305150770672110766773367561923890516742746077343057999887496865159836919109482090767665452011542132900668560643263825737990259701354739222304992859906119908204147144933325612459187201411170748504069743766416664608489279043732144704502586052256144900993206642494628727247964250681279068756689294295039724732716669648549629108008584623358336298475961539204142343268861780708461700237038273870926987809966849081317988141913369576934297834074313029564715230970986740219429946090842502624942518916439459255807557743419571894896606614374013718004421403119649947019948520435288676231031323214117340839106763149730942890509390711874500620937342639678868030714082847413197982892035610587748349725817789901973976376610654782565658035243762152267335313697941388227165634087748383407629288875940203399538981482661711789910540501965761373243809431400474959944152606838113300671171552120650833949371910221288895368304401513247373550186974914517009915697013553862408730910319524641284359507376298551924485116298541654853541334749156338273933384794930286433330513513659376293485060804447896869576390991931825552505632395664665629328494781610726388135488517976673920069708729010898047264473404653146593876291079912156506549920548593938473785763116209952363113127340516016129758898302355283316831824587352487476824694350566763153460618189264203145890493985491272465189982994195673215664905279912617958214734448985468810146171333714575740399971923185307341545957385025624099019888004768816420431214129263515509590899301616832995831575013599145647730727343544128501298154610774605159490360794157239016502378202054491630125069148294732272466629068091690604088028145968974143015947590333836815145109987904109796166913566596271264953686407018119529368612940056226484680010329894694224735382410887969327518196214784570050871947324078258816142556321141457114359963249264837255411267239040491208923067399059198098494204954858733021594888634039641759822387278843932234594502285567975687747750846660461819306779187788786930636022295354042776089594263758263614096638192769583603221720094006675327257329480437787416931931563645352852131569238105869703123004876135593830016787526074115122333085110783534886359651772839160241083290676205330428038912453112637855777758830331895984349368133710913885681741446548986857126168448938426972088264463898185379109477175905504897822264593930679929592768105867940975610150526125241794336804629734692094517968778174337904324847687720458381086984992041922374176174432868081002038013654070703220520866393849959072175718053372386880477509680384490333601238049588662587965268440757302277950136005683183047573442256664520398937050061976768060010488001940744948017561453674119523424510509221338673778621503942906239254156043625189164663325603438672499308067743943651710079106144622083741703057105358063200336281849636293726387673804452208472952463602430971860160956008883235376455114513779334278265692969733573511081517391051392682812658888653863185548926938375393117402425673092666290402837851908200248568440318643498788976147576021906914573524509755752360993233065273275861045826962904483838206121988708679824308869900155676152149094394019039682739259970059432293135505301355831188504552774177202347684406433149707307275287160564312075743232650406253927866512258730986261344295008375760930088699831299593887757510832595194499126453785447976425670963663056470208722674894258863733178412781781900574810727365857931407635063072731160655296456075917291060941836536346266473169773695812079523578749427922421836583875287750558230047231464099457146134308541660781384761543918321854034212753365625456913990738528721136634851567312663085793772534769870746242102532077674122469579100818129679672953246468783397804386752057912892852408313834969504304355816222098077377517902299424504043921275966134873763516215786791629524692110873342903767242004388932880442480062919218792580239046018770535319707706058361388042822414676492110076604220338895360427559310547221424783434050767905470356192447110851254917043784108414195518220718171596732323696193117102990943554736491920986654733282796124185738497526238762028144084273281825544697247047870017035126253645001061523435652164717462424985331931284046276860903126048199586773948731312116541798359029664400698142667104812813156137949488355378962309710149022054490890888046437353701141593556531547442451955669198809292550301266910312795411899278695225571909791848366070959793921667513755489742460359269474975613468368870457796758435010918231662375763999105516550033243351901915201859997457724058128936476286092462699863122540022986659304936569449831147621536983626034574140933087611584060594331075947174055400332278806747802476469797467723591845494745953482759231050489024815829998704117052965486714095669894434278515022388796963122023955624077360863930484870781842564605222940003120231837147347586667774703497799049831443734618247473288896176101958103779926890038443638231550589047306144080064655990876812502150207723082453878053585423901211308997539749340450069466996608475576717771271991881891143892066019531040324747621105086255438071428185709209719856017316262483713605624257205652119720178464307134334310953457803613744568793755688893522599559980238332852718824614950301227123107709712434455914874336850377113862771013191911538153356295763243834475770228053871075078974139349819793749144323065137391608527546727128471268501469337704284852541987955785994810964328508480145148942291153117249122760934050917905963507256864419601003610455106189516790647646825693318750642121933613606013310509103596692027045033645883259544833804698571395654654293787132550328168783459162122865647047731938995045490857646885746133305051053170285726879726774344284760373634335109522274058312692220479921454679698762365474509011590423012225216168812124868600872806344935492905050593990851379088953378841273372661662809191017898645661848761172726554611593248066879120748055166567624075478442388356669552263810146859277497112912021554710368715883017194342281399214643690255459740222160794194322696338447862699684884160443523522647203299546225794801284713985893611827192990354083792730676572364733639548600298162601857007020858900820389009884835472591157485675309629622010779127935407734853648361361613353731355481320216286601778373489666104111759451423870767307892885981265715630059849762311119465865228617614237643167175739490540488828381448780293754824195590840549915010649288419887035084676505377612126396554473740245921875109038999029391734677206405184046130456283987918531305872032479430247373161137012723730914303444998453912919795315699399193343865350731443262477570858727328197714238933392911524369699022840842453957162674562956399739197899032671432298639615349251229335405162873865429010345385504877580156311009437362236888146097253825178135655127901880829049943713706056072423013602309625189957118861381664031000481457221185698480724846850259086674637547886121408919006776910530587839199150837145363788455338624031728204780880904078180445273837922342879520668991508250710316911041454785185006648565310987555667084445776293091497170984267302407383804529064250070282153178341459803467063009039344113023831894301146787971187147037130744193043372006035386458713559499134468864500372477691393835362684068272956197384353423308135102747856986170465598090736169207834014743814679054696204226859263300324643875215585371498874017451296477304329607636954297164342620906589803054236204287858549429704115707438504532640211560482696019184483288519302193370878524732529785020024060187600515528413747161645987450380976684371400909542739731048708506041155094751298833620989057084962456132098631986065350540089314773737308644326341400909155420442585045777130946396876921543221097639393395334212701837970391997996575512282493748488102745110453160242221626153688081541561185956480885949205921629171204743831017717931489778792996296645432659273905708053180609977418319110468026622285827679121943475314880062513779075573189680990400096213045480989081539547983015009900575116830108010433271518239731303965869251816640572443327878801353784709586434772474869434380253135242771473282004038913832027424859108334689420711904079081275974589826176845798936446084977791135911590028925941017081044271003700926432479237809867278184222531621878396376105214259775473265960825604146277475812150532362246284042465303493272781681154638021357804911367928427229818910674088487160856155732640086102274660215841860368238272265728985861313287100080295629828719583131250467008938896290653068304507594019262622133585584766367707465058602704698365250680743615525802581194711942343623734099610032291541472275266021058269710419439977851837583256861147647868496150569743824292489894268400158606770158958800065250152032077664964026918505450012178428699800046200909908768153610392907168062307067779980532107566692665225780548044751025552293961505090395876323934001481129893930690916142326520334598950853003903998801143266647505675587815735551398476329189313632358033985033057002781556300297957069175883363201737579653413690409334850100425026013948489928006636815926330704695468593485690978820000987887468084456494611807628025107802673811784366195423862556912636672283831925841523100089751262020211213906539123566478672832606673724094462095429080847853486735640488999784912018752181194745000899973726590902199672308328504969060099558062134437306250364878051732619428222156089948490642976773804492518482049190645543286276981372673630102544204860027538801912843311570698650419320041075558630534411026980492597072093798667831849466394429289629783552178305776724487159377905522488575141276245534510500888358787136193006336838915623706342863996599734633295956501608886512975549737228184199890358761001006361659444200779697127249465387628694402873583946848921937556524665772710179319737136090153045987563092809316015251832792689222035403060105706945973040530121861504758900440038596441135373229252560419514913207701942119121527057471334969154700434028815549078344916638003911895651830323492467460708355895953914557028349997763467772343196450224330065282215914865090295410146371573842605163165863363546963528258335316491168198870434330265196769318474147688967186928522589294916691618904992348602311478126246256758249565732613501822523227873428217029388023333075865948006406024490148874674213891703489768576460496858972078229197705796065985455803476542654125860067914653931511397918485183463159708230284147516953422715223441378769754894187283141444092446618600210176360892028452488773088398699840818813781683842744504542140917185838679733986323403467871402922438221501565739367186389560148540810718223486124642517114827859565545330017512290684326059559936688035791778171818506300831018937165774960186836258499064374942105872095788086019144329467443544754770838955347817966044797483630850278191882984502613886262581189499738073105623736933958162638259109727927929566691558404936711775847747132973728420631615996865380380422831311661648998458859767521738107615104518965505462835971872493467971265304846869992529918783588764920021733279500442961515963627754893607272124197010674848084009499932349299025753099607601508030359459244864110848728781540983604344616553041461347444187474671701674321668428498254482784985693064706121158033243092023358870878545866539446390477367298513944666186315841031029506959732239381099198586144699170924152925653052518995772264717274093078077494790896339547733778400720349613458742131962740211037420477867774069721423049949062616523170054652360388540168563783263182679795464712679487596070258930752615644063648271758163853670895594976520230038809582598836144786878345687816787454723677732361784609821236722895492031284161784522424768338379736352556540325705953799933939929008980859305417780430265269121283441476016961517251713447373627500232373255956727906365071587702258924917055481753826647706865049731848742839331458661159092467851508753947809498097275550483791643123556142541831954171898744523978645604091123890204852328705964957932227659310550801348293200900709366285599434298225811859737377246531851267762184073798987649286137519299910792842293219051375306919047074353567130362201318695818014393583460514355807728278598715288953722980609375613394011078777893662857302643858487905216262257609657681070220920774484448607427200192094529841958716436297997017121655100250720418941375556884935956239580194428268798027261476354541962697488268900221146201754960074534001192499195656885090493547502409192011087430075560522801834292267269001726127943879988007234883621596925102357185159416234761750765151475475258677753348551415660733343692481159035306706055566867476583722648677968483330776947857745193957561916014710038084864469808430470415743796232458919132905668296947337984560006877378747282412940315374148986481927603943912797502105199659136383904178753841006115589615843662921528663000784130142311935989349283934268991557230022562486302251797511087114215456293595275748633806574643171640051940464706709744534851879174222650767160987609494646834361341080482864626566861890515421876899882374664175637624105288633569476290149854676357594547931524480675718567384646332094302577194509761450308072719639911954349097970145892684561811136049395575852488709205645767723081452227311056225369866258226097534759216701565075879724502927216309509632935053831308587325118107853621530782248999960256255586718953809632734194577097129476892449327046060817688607692830307148019097073484123793976595940828621860839739056999168057948981589007578887580460309653496897491503664200757406447500906156452410474091843330420928278006297468996699401146458202662534773000452477991720752357775673446991908439300812371969500818106438093912200703552160354295165328329218144607203531197634040760950220041109431949351670546424432777732363468723099767821563657841865614016806255599618672546292798592728716330954367129843268880588235585827427488387050198746379519965006875829524215691709364488922066737235438974438499298922663315831100753605862636317769263008513985476487282933674012938786760181148676945644353161935029623008852156774838215650906568924298201761535156066465086993101305141722854177256280194105030830305354725219162903104377388028516013159588058041392714174451523328078996517355130941740842185725410556556000386174184455742926150760682088943975633189844645395844094359879148167591681432884671256448715127652320447544490938500067364117533760055395402051419124359745515235563937811197978192262851332377173640768306102514734208230955514564808821630539875395336097275266688292936800517096795149080636329071440011594383219441743339220121519598289419382249515591242171860194920523642137924425354551456836600312641131536639205965400561126851392269451458556382496040954578197015821890526100667923732389155146483251022793720783426952046469587296793136945563395426648325239676608429070842308964998642472227986620262977356212858410121898532500297125428970437654900799659275428774455154804752714384713984007214774468669031276142780279305046697706585708619473815069312253736224100304633099505961262984661370327459808495725727232439261316376894232700699660911692503865093352812459979854848293628135593713738485312912962555037957869518697871919723385021921770668168839682758259054591149676419833014152662506163486514771178918093937358457012329074872300558293406888976790011141953580209553770613831684470558897370939657064336431758953790578655870432887114890708052210246049050582707889514103290316518859795181577395352015530722392135108543971712046983564017599439082486914038074062076886662300569324332254776486163528189804148022268716419077704348822759206620939328475452054825893182767047994556935905184579798678603758229877478788662778956089402129096213961105978097468909886839116907667551761466040691382927536618172915392222512117566046806395530850056083178593872780640551899090711183176413413165694811819597335931770846429603144886027647194708335602574266159901551639774947546707397138140850025325786973726354267963962287305824923505298708896713694607188767137003925949520216140191102428885447947586109208907066427845780317150014296143337325660639193109833252458317921322896744920983103363841230317588762998555653895706498249112156017137078084134792085130164867872302945779204437743433527145118867929099764644549759380846332403110978866631337287036523726241011359790835936581139524541047713953892176416165505991063702761110697315075547938894497837268214064860418699279629609990223010673563267236331112425822511577513925194652732650073943112662673990037063797894845096925717312401483638609422938455451090433032988459960636669286058107828015542335332308402490303601294362558037404345516100519368033358522123145007777251312177602397293914632383920223633084760791078022232635488834118606067785412127832664799303239493103180178743572264933645536303018877484863590582625517069438781947519325592134884884817371679339586399519671469421637325109211960117515251315493192059672968495198510659684983188005630821697548269432991038014656939119791932678755416217500627948335811853379170776050228822877927292578332725312128999600240607572128840722558624479747709269084050715705837110617935809099188621128131569903231122340914591323425452657145667265090243862906901736774975073184284678301226254379539883482246754456275038844394324648034681725745076348147552144693864404925157391824731995961083182062175498235209829521570377718742203650273409444622566468092969657245453043770662657716661796865799616897970360462549730924247789262052476869310235001302321576437933084085161412985401864494841358329481107623512409202538921557650310197170947041062981274406736701500898341215538284427765234731675948699607160565895977657312057047667605470360306173857777202635048168592330937567550997629808360340685264491987699374937112670055359377259702526058584285581271378218460802957120537713766282903663744055452681477325430832214802403279940880926150764418480587746967542813009380587235202394903382571154108138958352085912950131290462904637222167876976464545960553504789848420610432276478055361918970745373784506212744264365831573365023724572655783509440973127726279890776605175443369799763823425091228071243697201193256924601030950791318239173981138711532785484889634270069862722561999153012749573347603519584284152638680432955568506387525434176046706183805357418485217392245153696240303432679830459818951768100557763403153102222213676185744407752696341958146605617294483224126156353537256594382010908911155124066494098340961765204378903680567786679793675813220317053696842055126991999968009779151327463404862450635734764772146565185749163593944331168151772116688440205725595957856689073529656629444582539893929518421942960130160107654066973558793447681203543396893569949074925960765000414286658964481783342011641441525728460319824692293208595583278613242462660523061756268178640425609012907974818122280728715598369489551020574873634933679825096104133809297475968219816456811628032829403737609684470447091154835970991062189009205309167261843574462701547428097815431101095724644107821289650795266581138033391913509593681387846650712464466307557923459106098492932007794243403467659818552443391098913613554765644292966300554950916369850654011090656711633511742072148041270167764595554599364259497151226273015410067664356385844661544139764078672041639285813735667648619558406202775400392015686522581157094262547854909105905341914984280993000892272273050207759536860511904018530641680715808725495647236459833464543507614366721451628865517343015377739063022288096725054151225631586560801926348875638383974578999918703923781343220266922639878090237181000946840206210207286451732768762382505736635259572049563305595251380626520057649259991226398138172977206552409986668089928075730095644282088578202256654104665909720469978396671585600433464719778943552044301611344000759214670165880386256490073636927303252822659741341030748236578879101536936117945839188492918761479581198825631668573528700284800144575015207856187060987785864495898192146664818219779992075981148927808827389549862708042027240044548689590989978169871097367993642948446608807331348183636278766537510199184725782679929086176181382976776588577272289905262661595389555346472846579712986646069921814076663413302728481422712801904721283425456055227223374186678793287359057819485096261293154400283753585235623308395207671830081936572498264545249848876115691357874552796787392274821260772619642138077161871150229100626378567680709465676162080311964323141125930033787498480057520524564725572216018795857295710499581849702620099730372432512900242313735089174916078052784828053090435366113933254356210665495124773261289347751455853178727749734195898431861767608953407482757220986104139625716009512109904434571151881403402271497267541187768030972311992050682582043771177920915764197441621725345530374695428446456092056128107960831745459078546547430778570585218415526133025282425414235043159886704358005572691983448629439989117042476841769133969549302740255971603286731243069089860968620309062851496016229737392174425524136654186392352647658807032939544324728076829078821891247292873352043375939740022115012549977126254016208661564967633248079164843704845594962831812636689861225102958435583835544547739510842044739464928594640587672648835403630429726977804532259310708975738910856520647905564686733642622664701242026136849832167412157393519700045605176719701669652308667920030514030082151225629958715532931370141195170675054001838246524509045230565899326530775000790720995602129047385681583455076148612499526626314004533431826788069843166884665298220696167570444683227408778306023069815231913361543062831126281635074949983736078757273251728494240897174299754678465980979382879294643516537565609644743748530150731858640176030461173181703072692385284259607597274839747344429833401650479575724381384446883211193181018397406780441362522166004203158409035405763719999164768447314383922084755551631742255476105507069485327131308144390835969640507295755312145113271721560161652846712632883140101976605564916617449950097619221209152208024960488904433874367865379618425079709085392986853937813003185569333920453432049414370785076581596730316467859125662547125138983207468263415711584335222283025659088537912239097971391778628036597309344056923058476527190851688504475018446005685371439159722396311423285925529940290237443706295359659830089028535430333451434150137905196706147478530051161302353104345211008600640317569661356752222878226675367396747822613092870904840307324202886427943407116707465617691489195624119001668305519606317041441594531768765502139809201415827716924157675393997838889515342297573645354784844003255667973831222731440763450671534413241696407165479484952530775622018580062860903990943813005823420807086115937206823976193480967052278980007919576787899124110066212764616852527628716849219770155902621085978468705170182001914246970002414183918396856339904762862528422301999596195735714761421579001848483650430204110681991500759001439565660822542739038226551267170114073148833238541035498986483385949311083225167093506554880015019650327587229206842177990068425206997792277314993442125219608110203372829607464556875785555222635919025843936515694869563934226808950297506950557889456871358095752142680006355232478847365435527930870324527672582390541829548535298019080246028194027377170994142884574476546561647375935426847341636536104986546409230864275940092071617641340474243958073747595374608443814845920828238923562068683768232664378352119144523573992383511346645886073819691050718782083539934589727286732637152823641566154536157492037502714074804057302340521741386754538086068275331263022257306635447843638546327865815078141635378310856177874243452963622375449927009210150888631497297764791762536072285154170778956898770508595185856985330209466892805342104836774912205107815934143292421402697037126229024379072761816347583935263952685352020334574213233712897338450431363895541709335387626319281324371846956130771169062560971322327358613449415545832693218102665616905018884259474324059220034093058925007869628673076118770827407407829655315359347819567679366809771265539736935127382079181386934679100961964671057264384572701908030613942221801814027905314976077375872398195305725198020886895522715767736314537631859067332702108991147573832695764630988137656714523205707064645290665709016750717171383899404306886548197155651607989773493578195290558466400103834699740249094557675298665694651813226966874445471615480114030877972356371724351483404843035425445371255679863572867111453972098353284640661464780423582038145667633380901836084859443520938475172270248942518339390462506045661502167905376225277333482050810666442508585531326894469272698130682917447890200656875816518850406890631363038327783615460516139454175815281045209169971171188887891092789024473749946536606522064627506068000269176361285325647628492523580130571114026990206295390912556432297980616950980363456410297373330937269951038246589526061015010300910242758882392260538442209381538435699530499521071223336211905696833307122332149218780984637665022071617811597817709129014443095438031295470444201625814551859304682914270386493242614235251170066016545329331617955329384265635069951827796224099429911767482229302509628048188925432672579459047216222159096945117451860276012188729211328795572660182562520606204865949921941586628589816964933334939069179763912703662683741449878980447865825584755573706869661720030440567684168667253460199704021788091448700677012563670141448108838805371991996705872489011124974601098467963396914235248187076143596245660366421529008840561600210286005287541626671836434517403800427214152776732648132960856482681796839383876243785876589657568852087166054633056408844498435406994039673624432179592607453573958619405258946254133216742360793799896322940861342659930674655531894671634033937448301384295333885908173114865778352133690123607534747757142923493863579003411447863573328899453119714734888304215145027562257929228151375436338163926315917822494586989779332476038893962674137735405492330400399739825962207791991661738622972903829882678353727131074072543684651464662219331950424646645353586057523769053822322372669350487105809461546030065171899343641914161851087032661903721531059340713132137749302944648621152407805904976440955947993545308048598203331120013297963995608349285686398110683350899292586462872591812818454774533034753663844917115752980700985123504047052587723981449606129944701770597030858681740831591663368458224953109844641214142352171219300747149173563414389445959528868522966620661068438166657853154810359413690735379373138236726615489852975887527740787568575640272175974692263378208407112421649837825462327599666978004967046429625661016714708894117327917911445983480947789537082871918763794839030248004093659695344193190931134315119533811118871930839726731177607820923480622474126827581446060177951363488334004872082035036104295683393234816196023986144264114902759838606016353003802482748029649199607854362965417649072491378555635302114255557460555466063037938804074398275879965381542999469756707247874707304248858806631808888213080909631658524479855885972677791502461621680750233046611209213482276373776078882222926311011539380501466062782051290019561210519897897849143692012001430276381948493676667019982140532133077899243831445014644746605403679746779695808178731323531258460173008539205025485147477935217238643968572377187394093730924436676182428056649060023176066898775916690397649133215135559652435121143284901717852612736560818234103835822970226396543747328559708484243051572604858260110600473498696271048298799845768788010448412967953073157430322865732169441293227314136508242487914963013689314879580532868786812601185657615833457833449479659125558539059479569182915348161009747972386676985024705076925524866914150615048613956922670621798736180636764799437894165409669271997338973210479800396694564439144693603773796404195737994500993712063036419018766731064402491182787523260965072710608790130511330884775816498151143458312762969316431200457145143347912389894035144247122067512899403186578161636905039072276964099661763138685456572231557106893000683238382821376387441053752604907804551130262736948940301671468934174187332092801916934391911736834677437237021717526740816948856669739638245348893949289660948627944248055710513951025207676897844153354660586478071611904417161107114395389633864130148723952230817825005053650850554062884199206771341394553863743605862331444901081055288998042230342596665858763557369347000794268470813482707743410744670676800990554071298457825288369911932246967939826264523300889575455192101784846538756501484349055002086563808162249747452697250748881106642006255441846689173757994068691023953925387023454567707175704792632482375672048437025305372763104633726270053352238636912027572800147913604427137924689441391706053167457284867341627473171765899065436048008311192719800819204056689638599140553146292996220371359054061495869483893657448513705442956462295132906986401966269790189280365891977856652948331351115874138933912824369761255478755781191073611492316342637804880796453393467339486184793349775748185380436839841017165486030757598566756824910940015911351412550561826412364538401214192692075401249590413926591685779796662237900200620269806178238398959604917872434390312009086909498502702951652578731874784901372318631328552125789810973936710404717647785324898286155616826119986236845982034454997835638006045493339650725294373152662843231644009427719309434549450964973045530269983549354487258757614912085513947867559762872743536857620249590749289640386249320893262706004214414780340997410710979190909785514297250623787965684263063111832174960897321691739344839346154204152981544277469782856097354497486621056158549875756393179013902510202032056314519595960858594852239748210330442667960961488260315248417582826034390015859750325604144473356593650869367501481504392985744552691439685229880325194788220105877096179100736692148758702942496268293758706035347077029734682990384570933071128427747947134326831221339459085748557610044803100320794162037803958551621987995816532253223257524981675624263040614938952887479839901795836982291553210204721952981556110147283559224297712612837895365772149291558170898946405542292995240114285135052451360377468705139323496063658610657034317171851565960813938567390581984788677677252001734506249627183530750835867769559114621258164646324150983760072016532018003063395844413274361561740800363075377697639893447935834570078129219984421583805896298671398334386076143316452730130388163205674809333189533203593133795160275975797088498449863703188479142062406296226953651307797066071321402009228886538071234130639148695338991317525570369196878884643982434834127939643173627500796764819528851679114160168202729741565022112076547716652618769019328208292225779414185490013847985445802964470534963080767032961456460657980425816890915019369998478741040179326492092257423359597765346269552643121886217166469955584038658105067238852754813864709886151972179747188934295268981088061311713824184349655946003478883820138116143136421171513152198586273949183409495801995344844112175404681140285329724066802149425113154467659729499114410377972506216510130583334900098780296930585354242756672250162914490087324472678041837112333869629662700788064514916211571686452084621708535313417890466190281337079705629871079184918788303641462692532447652001892249569447699107052601913657556992664891118185742619191392384710020283699329856941586313883565566062168826864956857487745234286415862303671377324695128482403874970876235557220131430194782118907061291895840124207570743151042421474692805463924613818957858868890643486844747219387458560851837505330338412920565733648639759721643839899809008669950384237216426500146872353732605560183242165573804285059719984202459122133855687028901074211145915876606583299199329004061017044981441383707307121643627151534564971865736693177451576657247010415120650899693038243041035757065869063808012192705249068052274899619453806011456036410408957169754683914942381112269395655697208776590118378533100170733641426439314081037767043347690725090479419023256010005931798710387433619128356933198092499717069241253089418031327645274186281995467549997629716717225957713000446316838702629630772461417084225215718624007790615591725960238827138413742053512729846388946996116481035567303634057361223724617093145453094240828271469220044996799791289880667466150057680280004102092334502141928157097043980076727532159045625736343318377666364350260588007425469915056748478506388546344264559022597595508958203267087662657905959830306589360219737060394242015813938378348348291565435608212526355637262762356483680695850960620890214982891611668030371993840106345155403356212645138764621209883918806076371728769694612126559554439315535076341035872907246766314127006445645855011973419223546302210085268596719732101130146371520682204504136702257784436171874732729134082274714977134957604779746288212572237588369778190905315008055750670850264811419795296860342202692064768596917639436585532535750610931845213310759373425021482014400432853805150027214497313479747876711175102722989898349686850851554424906097049260809050335903618930925947576756127065256759350873016723495867796979559857623365032034502510500258108232377209234829633757809804563267595532718188884713238987239342471284035182065202843418960453092146344439500030063542976735304303942951939179754791681064402214766738460756394244933236730221621309891552722869314977684024266246930671181726929767880774772968134798492766045780917626486111060255822377435302634903898713306026004594689342098055139998601702795207081358488929872960265021334658608667488102710024343437546475263655739449330114574957193524746496597167840796150211699285860128446561767257687957894021496647870634496384442720016041560279375998088197469690217159136291160614815693082921345599263086901646072089668275033421880917820788684510368222885936450605185126731268608917451282486038074851850092097127165590051009286350096454398313360141024242554862469332490071052175488033935416768078113793418227833164027463414828750602718559284211669487279068969526894735613686372009227199213286894619611490441899837363912022968938000849447528230944175113791424001633999706833188587938159727557899757859883692389628479926931265714897812965963234091359197283186437541196410484804687691550557198614902153346636758356925960924120040832800635536936297876792746417388198718571505195528777389890864752872932972801267326671276625969475120411266234926633579134943660308636177136228829411110008185166741470894958088909064694996579646098451817377846083350119105388672154273816424038000347696862849861491852447231025685791717455963009110588688190427364936004282777731189874620847515665653145233816048407366207878261029292793181742856888999585321842898826917099870938498045818108999129223219655679489046299172786330288591636071940242535829892245168221262007555033408714273552930440834731759369213787952002162754259161455086318909533220383499434414680470798689454482747747054702998805698970477465052896465715897196156471399689268857943706699286552898538744325887153927609043418229541976457710953869008000908237223980506087091687532222584535908295287508263940790320671537157459433902192702863391557083986724279694243033255347478971913896665750997246708725204758756676992608216922019741970678578203439740778213515963357160066911888392700972981682600207771319658174567109576874062208860059092128753189697729773765161535230901897538235816233526095264374368546476590127057421172774285617332396106387113559062014141502071551090452983435004494886218792371591113253398683277018126013447826709715015788302216288479145367667383673785356922625967778581482482378334804139382195396820154003115152751098928246085730013306787340511238183786836239502712205182824891175379457447551279636114671092186070163890981577533508416331454507175588098669693075915512958923797572153052777991745122171107303671941927235248263629714951755442683825460149918949075245551495961602362871315921441937759437817712573749448369891450560212951800505273754291991940516345770593095739390864133034791121614593202237951334686627559671456787985994751812811693171006837179754903379214638614999199626938869955181074939825778247730672495346058036951949882504904921327274837853766159388746966411899011149694403209864046182272839586882097673088599901840421763296664840139419592040299518425557686773269039886609964521327460846284564460581593378184904045328522214976794046732438518495840901175159323121798993538840287899722900911640388705761793033937998910838251846339253702894316357656960508498519480206155229731937623161172463800194096171864190507474308443877501981384994767248409617457317132980630665350350102124101158841263202573331197329247371015739687982317714580100820158105859035897003887040291676948430452166610468813011623954446416928135002809684988521370734352034761375694057275125606424341908556921174364232616896407091287326635863323843896286967111056025843769085825161443438835901963000770414966471478146436037834988529895938983142801528655926886277820146386696886718895020809170942714781516229647390632712731623009830752840606934544962288867470402037258790407792460248255365139770289720924197447066108232430292536489588921700282392608216202895300819320496784060097841794093348023749248838281194227057381341627845421801832572512335444737444309828703447092781692785769335907146906831219174610796612071871081696618087558628261811499602714868304660808470711758598918925155501685498566570781921107762685652539323686405859165227353449494540314952783664822315076347920285244674375163543615030366265911464969301907706130996047633662956057387475149923108462126121876333853475555215618854141095789506668240303721572920096842047921284139712600125146918996172052332756145732889344704784294437580632274639886897352568785365866337542404164430601907171877280607383785990002470937477000092072448531558742838632716611492012326381190050763250995489931286053878304678648532394876165526360610680714514774722121860976788057538100829446602251780821862070591949862330150090872075297624712956655374532879981741986407001360427813093351544589503374036036093407468480553484839309210179456162034518947931607886492810752350898874129132531727678156035611919178880457846369830876014318545293894784121562538914205732826330161908712827713227236760860691887632435594096003466915858543107240104885316863505772521509517978339504258103421886389319379106891519706327066959002237711575794891888977276238834644621422562701364902825904291730235486930091862554554814405979089462527745955008690407043363855915639468048776902064071528647642603909180727799260448607104721083808092066080925978823080572870492876260790008037649653602910118765874273416078303292069882691225470792302236342583154553294010087574397603893426294011961411394545823315886306417816680784751122419868599200988387615236013539730426153159968670398885627832260961587719114999531578971177444839080115132006597445198580208741208906671912927443541668710153500005495402485155157629360053687170379559752688566767571344575343280474339577538107903396188957395339804809453851601200323575516648091749534888560516653557461571751665809050645291495851028305192033813337530255718325134884970410952072009498510526854316675657614605061629030849725555187243464097025327475855397979651980648926702556919216398661477177875903701336175162088860566261199355618371708958476919558964196034853977936724668552101002664400706664792155513000587861589323796326737631411200960345760617196129175196131641805367417262902780922598862937486003768794701653534977231510373935417936066510773903140607152032395102424136968532813502318778189070541053219090615192408758333597758000273621959146928224573054264125521047221067313191535250280328579211222994526348099026641797575254325304168738812964138602448793944161767748840210894554104139530498093295721109490039917626363226239178310211618568155203301283195938515745909108026785184772982513286211880673943267635908014519852363184422241574885064270784807099531925434207717202518358528550251243137946717243768852527457728310161670373301804479338435538152444672262967370135377780949317826398014488014362471791870974112926182935544857650596182285359091711477546137216529364028354297690213231584634565148627413938189968950300026482663649612730430142153656860992093828539184604269642244472671721307405069246670872494877476739510379025842788399915716006405076596270225692896821066087052256098924068834655556151701933141178081557631038931744604723843906720043601084459269157608878264870466793427427402873717528332436763624074522823691133275347082950107276078565477508594700359932487882916725812412951168095365346145122000264965361144135221894738393880878411382170284660720479566544412427547704060291567165737075182461596108721025630407201935412807797974896363453612052415761474481957130432715935421051881513579195610904115049934986160107125471968589989391233319826080816134890801194643333486352688814228534537739813175985251392521106186809787221012771856586297026069279486662119447014730262966139479252312042024891120469287563411233850933607852718349549325724069495495751313868885181687996724207739701882398163964223601344472193425552291219954605788213848609204483570036082502854288688546240866529617666810747659131967150373389401679688547563769284846709272191263869942102020729691109211112587285207589539240256589563522213773370631054254033565368434004919909469850737978091151805991263917415439415238160870373836748504400928171490352793303128766049689388254591077387966769703622224885506099933955162788777286181497359620396522698612953037316217220576832974253560377697130318672424387119298917180862910327291947529564064059151983376358505656776987379139183082980385206769659895930711905262539383627928875657537984446306797936895532235961807281564558417118910280312039546024357276418290715078971085500334046352602065113570389778281941562676609149965005988045257950580860059586934967583689537765375999226966598685325591568187066885266676678422941891166817973624879970054622980035048236253271077837688715408118209119013514859519449506827174488904807871114990043254817142370354302142382257676364831769563987002333781738431043989745086286614350965098981283886435981292336402447200514819119144195195052720933770213814524345927024353796585498093209603401723672708330798448608196631139019070291083824819526847994050788977092747661461326805491399105706068018922354775332019608045438948728025206969498660753483487458509745375669221048168345150895906920959301300830976515539291908700605088340333690622076091478308813535547268705733893978261920318098926188422145842422101903892097973835774258196109843903504474895343900181157261013965194895624102801682508817242219983485418083746925608486323670581421819663604135096620714990439651804945626301705880012160639574733334031166812048214911058306065326470464893349749368007854810959502707357988453999846184350488455564423363486433525771417064116819149156701934455610341174038810665858004222324498400131811080353691800113111418255556770300787867705178829826207832431044162182942981281292768919820782651650782752091426586524100740907766349051206618657640350469061405860712573524548397479611101871184730392340840137514187143680104452466952332505205374741167014767329501096291334607910272842912495310084973806307583933155164956399839239295800448531824489074163290219904723681369506666489806096563040046483504396553748129164784340802953659511831568783755632415319682937056535836348925935506380946287708835438377657188803696187551104967628745735939587668459455690334931183689932857453145117628174199529618276050114051399083376356391405016124136180537821941641016844086743602937602249470862370003431627423837512382656614042055745992028539032134089771806028620304711975662586830202094216229919142151764658076341887682159897888044672323733077170177329366303116348119117874519206322957785265741688400565128039326231325974508494375813312879985870210169014164193975794586518832138197319309756143316094489076187425494132056391588408751998486320843877593434819602876316070077913679522449169404801476701763061512365638964217951242200089176997517227260551844669911212031246956418787791438910755797822317885592118666031361928050428347164017109678312515092224738919131720358065402297993518151982234252714691454949646874567246899299319450043084014494783037184560865444233237799182549542172920539884618663989203407135175665274405922349071232274884623200728945582361193125186562286654719929398623179358068087649143892466144376369637115955389226740360221836525864620017299642009969224938846771437802439353268227518769037924549308976686290689113960769091455320257226444598131035986099618671597148918082041918864226580045498209325034036061138337173188594130663555158445308465435386550761493319250668603291939593475589306537108428320238665212734941007311767822050198115845025905141471836055313016718788376705860121521462527869886549523953471730555087908797076160232289425785895879784638917999614742233821238370403623645740706150306506248113257907019766209884631853864624256903083702611549111933590467798359070766214515091201799765700442511716885352594158943532391916305999925830013527486656791176756872496693812396508703284029284378453258351327573077494488031124794213830538858780301121504457089091790114902693925180136657281171451438225259864279310912358834118918816744553536120411049357946032608379823625488538080136489094002078052931657406966943674574688484564238873127965006590274141786208045606773174209146845155271773603996811259135708168398619137451683113421586234758750973072272579376422596446889203622771761760308250310089510042351067204819039986833429533581616378917663641779360850698035940761198012139096634764965484788892279314134233965113968677715700593938935083706854648950895883848431970206070355204788904443869713773499376262481421780471256739995789978179899129293019225646856932453501128063393071426875698890214831696070227920510125360917983360364959490595168859062915546220944288947359051812417253989806535849101470301144769126286086021970360513970112251035512773090550317576982069040615668757098146734991913213266680537515991220075491320194712825432465730117470557066552960482654279889538771212699074959506269965868801637250994168851749027796371459697994208408486846992845400886321602594003401643105695468815672003404220721979812130318001116783769098775169891501617353526559298011666107694041203358203049012833964564581417674918422658738759574644952553440263648430158587644614971484634907235266256876414204174963586646682790045195963621054949354112923590645368611708244334883864232634364030735569492420418340637115885144616026571151473905500157680247528125027476909276903016447211602200366045914733788613171773673137741040798806893587504488287942114914838120481916777440965967699788612115532266194794361231515417330896697893358902209661130647880093697098792031495381069160196629328535755285015789405721655921297527783335546215753621776686265863263468332619796181774981699617264568046935999762387532641022837600934909986313139343515157462116086680273395148340407155602703892494206835296590153447933872862131571194637696078041185956477553966094757151467026911919783805611334811529484323039687287852269567380710938146986547492002730656590878656819585246049629151907115600856721583700572319733151433943526509291958192102946022467402346378771069898125681822459864789996884894800719389375608055579432078016984894060400042483577756361703763807486261139102974811072544390847115175556944133228944176712763295093385932797065702328571626996948879885636991395576420753881641958209465056266791887118629973961639848001939722027830819622279057724365777516130612720311168589335134753539829713940791950835961114364885081417551200222928826798648255889382975018937451850770616025475068839955748298792333038762755992198791814406771932054224359025474794751335805533894080206532042406262765872627663213806965812305154245725571536828317586234250714326418721682503191025359838226672255561266868305009924897150732470801915837538754423812193839489555826501049142132670097255633381012472089796422673376697749066678497856447418670304706874366184713375685361096735515067620338038016005771982589896063903572371098661392555546089656522050413977605230150818967163862594012951219267894330989851789093379737474883691018430093200094561554196088324486591690718347604200967077887301427847830777044043322354674386290348969181707558709493447926826342254002142372329327151999916742899379527789882068347041382282613412217621892376093286135291768347016940948361997038994173317089262014251508480000553203846232094047548642183679479756125185365188997323075314896823095974998779709365085564203359701379704364657834222997221599430522195128055402615169165058653921607638655088661286324450308458190483863433056206016561560578101336365344280581403664553382317424047848492112801742609063962663266284830969903501897606185946378972399505586897701964833468313060374450339025878925403509782523829213216235220396564640539201610421313330726797655215393038229054233318949766882795191863907802626574438783302502144873005334229485385112589940460533537236288377064180412702913194973830200864045312867626856614647113710371257667860786654616562890739530211671564904446776450265480024068751699606567580155352390204946691828027908804032896939722369641484772873039320388672983380844643196972938903410674286758039331253639267014698174470615912668723712971207548175732007241982347403087032094450486880165638290479581607586878645730557072031518454014790409011419415033795311965816704010699892645167060175239227322784956679287806108698125781695810388847593466337412138245559295471679093163908181615536105907933477477907881603022427510915581830014691774880102914439092059396473388676360415712948239535538680059735794733983077644269373461705572361864674098944163766060596193880478538271623709715424546298290199386082309367415604437290154267627475458300544398693104312127544212496667980972654285901850619757919188129075377089073414222790932344315009618635842145725272542037529973758090210774306609396036324804058212206923035476233133642430463202864211303010888771609213989881299307379412522024796465103339884333301410127418283024561334200606563165082715465574412362229150562899760638156020531585320612405412224273097053392399924189280984519826491536209493264487436498999359188783648167853487689303149989856011102568391115912496924714604935196565458460472325514497407297350617499559030236374104578811876169998459760797894189769968516182199491443441699211460955505732295240884011015437017977484784860626254513947648769242848194943860177806186287849060306496161306112180002974319658004849241244663317292132415860202758723692939200292010723599207767316414030020318598477661958241151555696668320012150751262822401307231082532866180646668270633509757991350512201468270979477688846142147969647737182688298263576660667906374326198448615560772674337380400266459796682139629146671834513732393361698540433802558260551028250484724489051209857134016590686996406341247616349174384681990667719790652535976273404983048722087235539990970060043368160688405043595681990696747322295418415754351494816299784807095925889047443070794577939647806304431623619344339412393703661938160881000462839775528410380222326208680953841486617389282625458431665003028770252024654667010099997676505463417744469323959057639884245222311478496583225987311596086088285512311699390483820373930171786721812983141905761872392512242611847762385226869063085087396967566287560893981307929591726012018964678182693148587173832265204937356995540836492894594182417381547390862929161201085540558153775903004597939758770904528458804164585782503093767183116309206049416957519467145871752958412544679503105611076193557144827324398517158495838718564880982556507226093387891840884068624173375811733240857429279079945052512780099312827798179669578127338912636500947079691298389184156288410802516489906334741447992149292848681554619531455727555743609772706825912728973280214626810095922553293035075957448283154606307739034127854803533713738810353658715292834230087322841385452931922616949350148701392852978600529533806295419993516852570936422141428725894485866078842272179341873373869412582843163462588080380126364150438941106353679957987839852670076827488261126269098308427711966649805656095421137957717865547806502123864389579440038002412564199532464751372567940076744313963664517123111367036833654324793248695429503550672241389201254587899084518039795249216703112453317160730594149911689695040695417627136654762119965267738100640854795380567366835451913322375568523275646623820789315575005458829242079790995533678823182344299420688149904888464079617967123231301987523602079842580725660570238486444115437666257618600993214702021170284762354807101206503647515162502130477397963912001724870325429509341225933381094998337734153557569315549108422123249872486697920858912924100743005198825212308489288112905709024341727937511914982558345152341012292535796129459266776680639584816517505819773950764477731119299908430804955304359234736004858563214408441458986359376280497189471568723015886524105514102835070181061821016876939455230319422314562566810022530636851147191640308588861676203847479435984541367224874580074245188650277373416757134271024577222415926308117118211274102779816974679078819839189384622095573656394925047035754187402502236525955726128669307947328243896702260921695210837330880887221327096459470283853500640107905739144715417025426242524173834133913903369665989245000232129112210460190606033505046934756318790601303927960326256252834502384218565354861141513192876935198206313896029796348962747929467756861536911192407404915393920992472710716809070374371824794169853796875012618655120333537271135097427334779955727079946097818392608957462778751116320245811905368749282188715793218802282816030700208380021382444382752872474434567697472812256506216493493335512738407846736594018276821299614778033033841261396247530361344635599345034291809229909220961204665451664031864839393884824175793549088783166541746081937746087387549959099418788775731050248477824009410126545475275328019665434908087011938447007303798492146883082346973267971341867647912411758201079612589166977043933451012837280020677770859723438144356694704084003542995826005616978576542320396190429640761627564791441934456236377807224510137754723965747025870878294665313313940606634377436512828932655705038216628341244335253574561859298429299731230074339470397353236282084209389050790687088039281868715777151837937148020097772192235407580211722961773357519623890493938794020294433559441251925454109791603548052750517347757616181298469313519707322515203955660665776103231580748796784551285320867237370839469277467583596335094683218309119053493219095692985328041485577581963563112374133091726872341294792238264403546376636316180287544354686410754832800015080741075872167916289629121283582020272946741291294354836093397667138617551535365325450790769696220461709108826153338394045003717797416726959850056823744403450163044126122139532428384414903300843673789853802029592872173411946839180928856144193006618190452206219843595176624078211389157787657613745429157913673554155906117136601605224043666080427828649238452920053399733925988796424029598741913826200519016450136876207766241607977363675426915952832373523251949885067999652403294681083746554231838150132734625845425881417059643254545505188700450273102246715934863080634548755376666788795473732699422414614968159241875884832093584252376707100769493950867411770609072990520464928935837671383492113989574021429341474243137897190593943580354241588181010334551336913924965248457365938947435635973692960237445000345771989032461173935427527356670331087883457017243643837691185883871714201980435994884289928952034860765931727192079097997132896199618641257128133202406860461075363313743168274165333051571689294712482880501978729834807632370472134648242943520357959296102558930254246775909836763740716867464308977778832584752187154827679839690046918268757994028972394019846040155060870085136070887368045625067425434284092164183483460185409145737866727281967294470619258667478447302494057039450925489679093652101145165327688211972750707660160250503663675451319300077996816690125805585415592313868354523448009021171630516730062617588637631298882001807298216787299730455758237733137365150142562831149599457251575081299075598140806459851719898901080482033656890575481911869405408172378036271714136968117891994014335387914489961808009014362676359430907129036283960458650519940549716125974060303630963980222299528743965181428570004695037331913237536244919099523720812312592043121262190601189017248610713036130905151105022873967375287962923023229826221668651363814623626130827008336416334746074863186714976597238946910023317678755538262637756232936180126242120128001738021135908210517398976097499780602419026778378146310012976068218980039202730465071223283148967859809909991609806082391496727999528254794531452808703140751523446966260103439418722594577592590289559344307336086413649507464008722888174964490445533287796994216286203068228835454969555052976157222391507934455147421878839150429633150761745381911791150422930731333361379397887138100112350612229364961083585534227215008832671295145341485034688582332079163611610195499300896848435232588888344390286145614449702526434674280608421713787512668164937873321250835995428350533190997357080538002711446301544968606265767075167677735521696348956751900243528318195390454775679305802814021362924801740821266708311178474658600782736801075227759025646536446319128167040802888426270398136238164754497889985065170053849698235455589988768332589166606162377840814041784922546563618653110997769445830084513848537233745831986975728656618598477770880294136396777610650804766873004741864115681886120792505510270978936516755912299879819864686976855021841217163341772743202284288137436987401731470102353554182755187383040503563790095212004535945618674025920883054730616995373844068048731966821570782563747307132195979373255633517466851807429629574842089295728519365665247346905052628315642789491078180085798335729489930133780861114534409610744676091050719279027297109528301378771771959139148976636403429019746389988463322875669750917804792248185186872309283901039020449251117587468362651473867702244404076919419625496599085136920589831904922265572765786086600757859045081015524439791506101671939068287722600500165009999697789552418676654654748536460947734274922250503390848478121025421922908837046810584615788271477229168877602308223936912001439809424734297832404300302057608219265758047529881473171380701293304919365508114128445799477044118517527015383053149463567622440688382571307053275750549571246070769089839488677052668469383350948114528752750293117829731108793948844137483243176131416214271346268979422812070774047704053767656703106156626202312262232777486620467179601008756778630300916097302514125225849405506999772710245266194498476025107523682043923519141565230053408466228417418779228080783233446255230326860031511861210407072501496666536923825401643833100811416399805588966998800365643543067313940532608784288719432742294099650733257059660215787370741330491524994233382838397025157758924209991074313126883072597371017933362864779849093713831101151790767396911941313271182935566638845891332874112620032543386191134447153418378869196373570632190423087134226789908479611605348600158292337893587781713939286213439202644963765151207308864092998328699310829224876788517471453747040086800098408363123398915633606507520003374234984035233664807653085040128365437000346233819454487845424578127653540184333984156189069279063029204743851977711704305243245221235724944633722927946769044182972041792726605272132009992055575194018105165977299350859484303235605630724085475237053593945425614106306478433156935955367460103379596660957544858444836508836156416524293180022473458981584492690637241562448062838182873120626687580433270160604184588680030992623797023952386647345728729025926219706767155480039838286126695040923727362389879731515673591462122638931790396512903550494618223722189794986240375279992334215121833520765939594629592985295253231763431694979200806880091108103930050025129232440486272161177768759556689469323934175871474874073068263964980394719595215788446835391398957319171832028887188759041231884272675192964174886283396195716017307871561627954297048406358088107072530035818822538373700335870383053887696408793137102068210110763485100656180832107444051934791878752507587762367239178095698894670810809794564230810855143315394084806488046013739955320239038832913410576093846744551809371667505011895740990900641156090553836890545652005474979280814759894832071749763195985865886220057706266052993477966265773253739463194426523446020737096012083293603208107408659419427436127765889269587582786226857596441090744769289184615596333842732988410918550989774986347118811864139072273580137584806040497435508085650709203010168706911250097552617131672491571528684158484955741526840375474050400454705460105277391921367846829858939785067520892155114439879375677375573306613681334459163462561848882139662283463063088910729415660638963729371715884486505717526822816416832814253473439792439117580289457256371068119583410970804876462082053120549000162313551921554632525729500250741348085894962270238309074844799857192196371799075602301494644744387356608929505086111957546355821298691261199087444488813399124471729088238681440223741135486185363230313309512301042652268178540039202921552946529023796184672595889655729405288104871635056290554264805738180373057278672614042284344364029103429035207527321974107275536275575021951691820736758638522561906011304396062021599042670211212054162521426837304097276439093071772979007891653404832851287445445186142450267275621252870765085800586085518793594929094128119555587630771374396323588487273830932738258291146002279092194260393384632249439664357438709179400792145236405878659172898295581905556960266662311451223438841376544432500922335777281802248139840094695554773848457371099001502205882265257646194286317768504472680391810366278996556849215822498592626039657357250562513736216311016085585102990640887086121719170868067522503240551224734606675597222931099352605910085143726420041089726538722573109521599103734404213932671711066605437172660990586819985452410227501311611245707258763874264487468915628045944158950193860394393636553885260624160438439325199481841035631709623921338036730221730401048113288024180007565995327908439751691248439794428915059620935901811481070111258356137914549442408773989785803064552071837942352411860478637048502832423664922137563317664088360156354877620361041694437978999146535362186906450115762410635824297657108762891597184626512075298519720563143342965887779132288962964673606170607714880788071690292848221105978266802279283290145120220032179723396464935487054338896680212043903160392490535082168760271102123938534402438377100787956618372950411139369736797258190263699162941147568905127747789551566389647598702076814336237408808821000851292798833071862503609793768206601163024428803546724351710234507116839667021437356640596650804342936749931571850767493528583136702695404272212248862459181314045943246191106710812990485589882659461069033348365605652438737178899140361203877218786201019779917088327705289182991781092964522940825504894836426325177346465320015603319540062561564143477195340393487844701638442825732069366495544517010020326172079278143308333334460257030438301877886795324331217923280007097573319915183400247564694702857673247883222578773150652466184370710822797200636445634235213374187192542815175356547760465229518202602770367484321347086896037916626010882017200477111034640674156587341184559059204046511757937476076604548968636908079850109410850914366668100192446269503636301240704752390939052626713441474894867247921314841507083381424827757374542829088983417708549656788479238873609465831038661564609776645434356639017851795894911074381364077457279223795758569013675083004197829765012660290953721426067816463558046473120727947961723582383269992417690156972503366828493359474268279601238866197785714848467642835970935473874127571383451782392345104627357371429962380490001375579033536875939153371645290592116333498930117292040390745620165668061702874196998412819937473248444118579780046016175172800822026966429311649991046085258791229754581354040944998548319947011240499356657108033492486313493749205340157868768500883462818489447991471315051131254901617493482450998331743925888797187870500626919320578384364347664711956380084967344807583326367228853103316526110811688620261871928440929125659758670928231829598363338114293149511713408692627940819765890614114531960723354297395865099782277814861663403006350392212898501341703080774793149890080318854611307322937437373750155074952511718173108753834735376585280988407924874275052081943211585970458896678443793532678271348797955783087118205274600837959688747952483581573787721886089340325450412711057495580998352212602497988311532787983968048904418392782622438045863338293498634906923571805567164759119359471263615173034166863261154976989196748956087122884183982763047839552667553211339627429709189203821620336169278168841660534293232744254056200226501512533702656492687532017622259036310058011648733949584881427900887360546531876435091201635201622416472585482113875665786687965869275620343864312595381051169259899644041898039457964231761099898224230235478498798984500150215351602501518705575185986356915803142716584529831025157268498363436620747479939222106910139432847685463859942576564666127685207285576586078749287589725728945620790122701203467704985767988374969381618832944853352137435671916174209014327008473995992794737454231658078735083988019573785558501125574927494477198229394777759489814431357890008619563229680497779773473814410998659889862480448692221632244163158011745367786950492689737771497618897377636699123816062161298331919093070049468710025328809737944895773470998700376406177095684841625056575700377067535728858767023729480773613453362217519434879724898655991262037084482994682959247171481956298566597383969784033848638018190461593818670780800546877249328887743568645969634742154499764422779561017948950006006986729910049151988227447503585009713877317103636688514958605215167491861307232555890642125287988446509500943537717262972066602265530719690656210468691362013150974906872846175186507700927148490771368209907305091701886873111399865970139428127437026586966438991999755609303199841708985208518465185173581170842135356693324611757419813400517438691258464410577382067047087038421242884363018152676986511624870029256842217608956755056444338473293082304487385842507622033472847393928446414463503028169486566411074515199634543476776183485981038050281210446730675947364326226100534530726675375875065088146387494832837802215190530347357963107476721712231066403341208836140343560463350279222538677618400824387259509967745581076240156268433417157010130641581627672621663650831058257723536876949904459547588345588235460887781615155150527371792778178685122535910626303207163722910360688390252720259553158041416135392646185493327867352645727436034804253973777144875334698261904484915543941473548722968057716529508811309402871004357171542251527351864276069161969309486964326009341888213403199751038043506839479404730384681830014891931739137791551284855517897418796577437410628956698240733410764175561566349989786241250827994849200302177817656971950702858737798984751937540663528585136081232880392123814132426857529803258063610581032021369846965328851130794472113018835000400623676737537123245090175982416171282744913538505165704240925500593500406596120957223427018954789561314204046767866059803050574848342574383098002637116456087543652836675090415410052160991388543575823020988651758548941441386133217458383946655652991468396388296024361862236981257746176174000819916359658120384144585863379636485773489910955167499792501749251085677911346075543298576433663649335418249175623871385897530926456192808756552947218423675664662874047056632338980257523300037710547311284944369261912059532630159829694774854549278151241590140774982105244474541811088004813814430631800719164765071159590792784735040715894850460736261144597057493817583877229237783227064220742645583579639945997257684967392569690348556170347753694581182313812259333433343892646517982040266411292395743843334893164948191149368059493375573872366294803031693795996361714704746810970365266507746677509455027658511202808134602734013812646159471039141042492855619166129401102333626626468730247431764674917220056922166291306755022894161028309667093878233755675742083605467121172132645938604915878374674723042457966529548352121094336532376975702493271832439952595594539271487317423449468441710129891646347683820186148632948859873464770899822142532436239091423116549779159331865015613423021771531955509695700996717142791345150322629253087865583266169919261662543402396032181639563795934788139044978877543343329859723181718674042759455015621524821703939233450196217966026914293835522718724069410031228012374250771933128066389365039634654324642440151840457909278704834932987191245258174084851980627388974085711833784591961226141531220180367659337331544867424483323786354519337395398397545166074952786420917825009176174685715792289221648786900517315045025278704638637185640993619989485868137968952422331832717508300761874945909184336601582527838654924850631993535981588964582704455059416615323260962842048607288512827406497969928042628096000837209048796905166265496882890068790915572820817627978521016880821649327328979615953654351676027716990568081105566839546105397621045956096529052768295091437312815942022229523426301460436104748713436389919482237407442360552208695614909263031120633710035759081149693790503011533881634088448293441964341540269059668191795016414896204553802640235245504992745390509493821088449167425851103064489488980513123551860191068569339762249049980740532087596513305193220815909432873597682944293807267017723442403284266364809926672543003949547165216288164613071823554793853035083753290441703287631172906797828525304328956595826594538061456508519655617490051579150655384771929847130850568163736383314750432767543124088725542215892582054927673190841466998107174257679812002773813448353563715901831170453119207672954269555823583559929693591045200565890357330415217425993401712186475969630916564314981481569833216518890289522285548682281462168130601627393406784727840121605611026181537222446483851853418013574313526245637362420262270097803936896230705370275161509269548957246101889049684432722648924116537203847845030078744307083313900612389726685333092119492993369089612025712528057199560177440660668434521174916339918204060196505026706179260570522738609349755009122195907077688234412867544769305247997341707740471645638981558418232890463691901260434131996329826654491232260612426858715819615185447316717318990822545228366761090292338162135813070449588269319930848997503202069064074720064051904594381607646611097042739744125833928745237665372212899602059844538193072298556142128733032582735936154443937881370999604701869032670784927471464987654551582925859946733171073233957669402672829096013469900352405300800683443627120303166023241734073297975466394230602435268745404163841030323785083298747793539340636875554368274314657137764806996785243560104953475413021303343978876743456971456778577390301788194932498528552500637194956882809314375871911734786699860329158984172112802159110489217383925426905761435103614731819695853686717253393109498882917147516369376385857204003670400378901819168057157358058869689580960739418664874364560625050804770542310417023181259345384833979156507790022142462806270833663948530545836145172015670520180126482262773911259621543507138180570481107603010018737687992192138959758364685098855024226556011574917299160130039445942637966216940741276285518737903548420676028618986289910254382459229253642346965625168458685971870809026928932634064002804140919214913776603648789946409888000456939363955189302176761041487236863902089798029759988148727480705725766167033752746894789972719823243310245354985560234517101776364740861338490685259954831947437133070942481372589657063256084223135586781934095912981370078800270094331457402713904723655360946574888072717493222046636486358723144510496110618790152544064246384919719609386960552897917296977891597780877359070970342823393548018429455955454339645064040832951842983418239964011048282830194318878303513577934719666814517267372303246804403303668252814031792135910085951124308978033234919219301002519419800505680875301608081496861909836321885747789990900383838895261667385073539145365896322147064450624796292018922182822097853251493978172960287645564129229893714311811443284061606325996777317310891669310952892378103281008084274773740165756155580203511079091825753634280760191926264173500018094341761840949747091455922335517223763862179846696106288099739214133889162815063780978164948352508300284764216993512546969204367920816585868390394295515589385388408226481064241405958018947167896318791094630904031205645331101059445581556652725974252795100922232785606136218334476942543530778173348694711169753825697995882234825595239678974320946182246651767426150305295884676626794547431862898230469146975496175799819485573886700685090463779056612914828071592222914628617873330710294651577034341561140568822388016001035257116623610495125076168707437932862200285584429608779448769179564423780198068926054937430147974366005166286423659973344024984227751705128931051581472269113623349586951626502596434659918158151743902807829012630410017074006888248630018917049171086476533069994000340994007453380243195655586861289216330992156944969271190722862032215444086593485781187142695787752295673156941928097215928034611987855231895707797343923148783644813535807016464464326143786538054919179565001111768606659264439743810832810986991204452039644910025091476898689641125334765976733269397363278026971419711191776258666119116470933871195272838243433020332942645468655458826730592462875490206592936121810998678954662065097944919683944826360649373389539906818455763887182458249948529015612930339018374114058377907676880806019544590001009956792694519783733858086711519130284777103212948903380078142034952558602160130225324102928267591393535614295909507190673707391811615162968771007546234726957303436420700007042692990174990378381499822935731537534924926234182840476546267548647180079418765407896653446305093658232221833215861693509608367886171868833342019703051505383232699389915193636891299988122657120596239227772517427768866074478449292130199794752329470058401250622247770592017417701595404310945750221103777243149547565724311746659858395901912182298606850272639150525208817893498778353015088511618761729396308773544667262919100785881399411455410917896528094667388807668749363609564638662771298184224187921355757662609377700021780892565296451180183271499135823743597376984628954504418801084371546935771166710053413007074209215629932533285898000963772377334011006065281996453290066631059281695907108310511923504856395594177453141849726256421903979775079420330317502318818434108681431799962639401152325940203869981931091871458924698544489046496345782490307078295898728313733816792344287731672966738133071979319953157947098204791709193354876748759289833380468471700259108573184055646075784457420837611733890213548774856523548537774357865010589850494993722162613819010498021046386580007814872171258351070990495078715528592070015345052136559598372854404466026869359841910597724784970514089918073881878785419386455318363765043041796843055676297047266325618678751448199578943147152589377588801301162036967707528776169381111930372634821567148678926747914429476836347070870958335892017528052422065397201050461378488470764975574585774176591564949203169399311548391819696527493018457192756695240521948541896854656718864584974527194621671923545118589047276472950933441947282593446452697319783992891778189046484364827852411845820068901964535510385611089206152563559343035778425251354090077000875160334276927661956177472694209996268948921480267637535970292452786321328326093719346131773806051594174876098730920171249986598226162438363106301807038214492210025371854183208179010386409617183915314263791571704766837913527553545556826605068276076915802540531291440075806272971066740488395243601793112464629744181547057611005052634638325311564373631581697956253075249386505328667569684353394364204019970326370465292766934208465961811517422119093660330867889124125449795728096455074714352361999089731612896386104764613710105824924450298420032809375538745547463344196235888834204792628470246347583806752909126757655680961446533748793001567642360561934024813494232690661869767143335038541396612071117318544372227831644021353211179144754802661181390241041685107556123190919652864154535410942017904615243434438840476509324136799370073700867081716455991896426252406000794602594784925172827873340828162721045986001943483221646647380940742006150716154969636495714542998478792175609136897833171572550389852479124546957506450123161834375359067305978232171398787742785738509767753100273336592045490720729989353967077357869445419990484953003613147829120290731936884945341413186386619267480969279025376224499854002168850106051890428035175294608106040844064525233461265390113865372724331286557093265529289473490019147312733006525159630458324808995276868734813099190784714398972018768357970032375879128314241510542852316246390797923555583938491092927602870456884455888046335119706165915501942014476161216571165241653193220199193080285424751744422552325656112132287738788522976768794853639370995680991768597663751588364154071455972251613393396287610637694514435985235919687599909896684347590173905801752480708418330182000951313393949404423366797222731496660283534404991802055216017097668693798220159765757792910534362863137783122286625844934947291195011704965418654671538452127154359281133041462948411668245702799494424542061137536429425671475048879452105740341767674464419751883486132893835822176594904614921854094343335887324284616267451398725232881483928927080373583164325890620481556701875633956459686733443614813715993499754528914577559831015606892545612581605106799373893718228715015372482732698945966701376371139133461265877851781365784346351967128414511638141584272564715530028378270028831240880385217066860893438825277621284457874463939076604536173495130532101205044430487054816050446309971026838286783230406382808243461933622305560948626276489891315278096664248171111670669871215012594493375232287412959180922446918717983420254009598445931899744350347652823858660589779852807889481333538153211908459002667698682562120121935214959202885645519042202026557648533500804562324745712130608677533773897064643772917201131251376461703073955438270439016537441556630526199410942751019578060086289878093990345592365892181987368717556302753159938088367432024543531794322156345073624620279480293355343426571703551348241875980257857195640604196986734081105935363231688265216238663038335672095367427794901255973693832810965657019683944929464283031722673513992806886421293067537090143781468767331510846169024068560751363299495717226284619655112284227936688916319256118275705896836724591775598903811810195296022789537737876732335875314121041659304175837843541289893660024446733665061702522922384383492557299168534695115235951447708386620512499280439649715119380255433997674580005405656564433603004430814556163086045750218255673726770025076993793170605800541902794015355505969857720118971642150133900576924808063179518222258571754942142351932506180234805917596220092258398652729215611809094297116332269554110718305023074576500394653339445421675484795940404453951108397757135582670903331305364122205941739334134381017254336199816604109393556941457840264169585634261383446947111169772876721810251825414826329068326640381019215384391189407407593976486952595529408089571231071840001385289453686581509803374429689496626638917296777894136123203449510264509277720597758997738150952118588678959550670076377658901672148780986479738546226510736622427175764262766992344400082302736051881424126787275301604463866907747537579879780744257218435193491844775297892783436739351763476747846512937070146956337565197625291340332568890656519407430092519076631953156695614498613355268886898421124503833334656257755285647751670543806756550721459721398338503271733694277598910524749834484999347944674304467107600339813638903726963557950882331572584931004085842280937094025827037648004553165456009048156802244394570230261824591235629548944546629764193986409549438462411718600608837911247063809428781585323741543152227490743803546139423160309079173679359325693135471073015942898730733488122743621970628770266666947256830112402430300171852451704924022560215620297105074234714249883339630979330538881079996233500309807729675694635204999107603136914855942607348710247661679119419493897796070108441064738690051422368870050055553933278090745526091962215600170354795463781775520604157347470310487330601596830908521127403970681977200957584530041540258651092324734717862267695235904289780900552918235667422120042881052556576338674048394137029691187293909597044215591096527903204172410102648766632249753626294464338571792018541503049153051729697859685265942694458497291032347273805725779438598027923427084015434029235782178087937596429267313799966236318380719320596317615896471699256990074895559757565081792859378996369288902140872667238573130147443151798431812757845640688289712592753557806671268156049403009264821257042119342793422812639073867083377587535213586447352019023494692815834848206246097141307551849599939417746184000027280622192664690870555575482513936946651830852297157881657784008599291386509978940625578771642063091844534010874622286940157615699947545771048092191227924634082784901288810403653395343436112050604311430549630971111035170153747254662239981641287828026433693456033120105430593416027681870749990474502365066737412760408810365255858825483096891697903882192659650567895730338646854546430616764144919570516250261188204333003018853133746965215573530795636815831604116413002101111998704019962660573452057132901983900406562141134072478055307795762393491646912375021500727003394713759236319224953051652779281270329778093309590910598652415546852613048539244764381751189370573279943707238318651949746843076345351077149603594916254462793885773318868503352241288091980555161967270513638844708998001986300296246151091666769081357088754358598758343060653645263091380888734592076291111344654193754995110192283508772918115395431444458790964467480777058295956829992222998882827878322264705754437169001151719555656145656691691748389978694497370290962165358165909518823572784965711547224678904045050073359233999695780087009126967018320742409097567326981029998779937493874701394863258393779654711118524906993090051974883517141775443660434807580745890613404686457232690921669014088704993956446449700304505645717756798714111830160486496235360386954654687494183103609991054524083302559408398937602494631646053165977477932149205464816007654531070824453702074958102753835647084007195695373287835756792688710212837756090145199009106334284569319539185165156042217874491469015099275085390429500561175010489403802439654971050743058930917175658699982702870091135200161211281896808863383460130907603047470167407404508716000800288616321892332613036772541894102962685642649635353450001761126003394889938288705834324304316275449923738196448910961044636875782295111092520246808210947631028138421047939834080469948359070198834233378131920159213886695943044431428424660093772352702145232184177331374531842154016592871082425111676778125205579405033556369657649946602273055355608616217540029355522384228684286971983718407744703016190765037128973338053047142858375552568192218528065457983834925900629921834002124146843709103525123528224867937319068314535014250950074005176811922537091652274783354010863032105719334003326550347252386315737151923152303859641966500962132914456549856968196500316772535240450842388533234792898415647159669907181109127496822078238101583917280840840108945597505062831947014599449910469036603777392871835915282044091781591067472368670568032977903251818732247333309262956221693373742237859306835284525732950437523486590283980625126812906897896164021887025046500612552031914256637093353667875788789340860172946134285049103370483378657146601013653515462218796379580379620901627477174221258293310597061072706101457080365268564494593048683989324063864740242705322695769544595633200312221314940796528655094027608354835789210668595905548941861154901241462565601225200696774843038964163488911840633814269247206307305772096474896804975516316413184953171133792925563517790542137243988487783663661415057892008963575909954016286613390851882509833823816638865371070795313256839500890390879058790711232032692227589035961872793067304319731559165341944608282027121139976455990208613737631838708137976862081793821621444528380214661650498938683193817965352915045902020305372467913923223009050200706232362995011866046324469403150567414242688785615951979011106666078065753979139003825126435693535784763784089405762748403398838149265462817519942102598345214178632424030818193310382918537968048545172481219626699839512173293963572207296600388220760037036468234817666756142686619600549785537164121015768025514811489769866285780724905515618606874656873808925267903585645584079090612827119632064583146930814776158645405354366316401283674941857297819073159350126472329341008244113924489295051936539525362225986588359842952366078388677385357550914811028680047341571644121045996347270529043853058310742205031217713347073395895675930891885680082775436541306151480171358524963880276159615856946722467179036470664339209537069022758066388593382991300061369679481710698608028805724438414239956387031901950629134554181664753448245842043880324641925093498894163473200159705190623727027753952470240277108153869505552003992826827112788170369449188082447797664869830341356063762596248271957441645311237832262209742576206994462983844262729434518585512256603926581799438507900281481394812682295127576759547737336366553968113068664704885265703085127742419633088598872767068279813025841809006120750710042487488695375531632830468085233985747196220928729744645754527430960116487398189193194758979022522458181970336175222386837286713034604014966398315262889671000312586491076880361900326003687021572124841450832986970551857372484129440533164432191075440273256913867941023730786662574168109910042670819308575281314311610726626973507994793073993934404641499561331210963570715786988331235085105346544802023989765108297586917276562379776274722809561311382111390808177851152189384234580664594462086830503058964984374510680093916816325463211861802020505037312978503541671713973283080951420178177216501524943372016932044969537185408075416209099999427018442249842530578695845429154235692823995908255054722406846209623668987033154702441184336630253120251932711006919631134656425925455517125223386104511013719099912880790954557952755856376547588813590998906874089984698692685524667398969589649927639817313682303784505569436290716981359807211392427219771354457918156028492286276551514097281798205634713499862953869410156292533775232355960461217179182413273159688392430250256056494530832410595627741499445801505008135046205193323120340890243503225357025381950668518415889610766863816576392106402297514548155300247856459238241872661585438138553164934056033647975558470523627075183268483551027225229839613858468460563150491542135020740318985318038662618899703879124232610288474144341563558678047469168007463446717374941523769139187727922175061484172094237463134575716926319569001168967379562379183115376198338700217396267382375492516649612477982425661577328903502256716306530884677619627712215676134605847988530914451679653376895250877981173381783932966714697199493446363227274836543214867827645274140203079697227492549231630191756457613025259886363365396862529291496527316437189949248175329030551327158744793553728296537089913439890301515635497469484451898693422790559320260267052511369739420988610938873111337681170627820617417233866215248628826663501137750975591372095831095619154188553477394585393230873903436541081616397234432830405600501792592020606077330916567262109836124809414793891606598769122305573640651254250214444248634052482891513515367040458087453610848406677427680863686338067035848549192585465962733679730900028509665318566882111428060946257129806688270714391835846821047314037744549866552100910528695062139374057677615951663467364186949631752148496271712952056767086228461023040079897013929924937721797278987704078559570377051892015557627737916080359154197547393523015263548603692067637977931234816921514365429624448276546217409798699985603712111805013459038755752408406797814446385521802620805488618803440971724151760833525881155376111821826072700212214816384916276894272121333859799432416470973933473003579845276777835314610619493466478095312898512737009528028273302941525976698656825444445978068294138911948109016143591687149830106840770577190495686994718330319710300552616869264342286402999097211323198560574412659663088471140140654524196620223732679325266792974035572244567253308633435575026747593527145591631764251940958338470278526421949672692345461025684711176697359088363082839127319237259940476061323162807748344592302306404894473506153808756780710389114768809615196627258226358045879969192679573084869382158674577067912066548507249318368440918956770210950564273063586125389067069842140224385591607121224260476158493598657109064936014858970264554195366978176368529018671079629080450820772373539212981771116305222679856678854103913771880209996569459008930141411729605327085514011263641228262503660937617837896242577688764691341864517237414235492952726407346725331205715982014957023252159980443205178532558962171397172351085298088694029393667702885242410901018702762147290599952157585952755276336872821720123145444080620739963905551416845796113865623786645479548203973020945711661997297974578109333628598141564033806668567402419557792656022312219804606972678821562123969100000691495910542308487015036561208238193353364703574372145027344824447508263498431861906267523552213327435598737077897247248931853343592960882739327811957734659811137684368498569256302688475071341131611545959421262843585165308499252002462319540442495713698702359013650559858253089452523743569239025169890395780417792088590782751248579759209014344766439656255719207071290565748777106565833169288450811286644097019094030521545491003717001021013684345999675393691338720026289718483157333315655497868184075645580295272317450035635543467678546715400677498072859739374991486286177395696609273544961557689955338662376137427950525590390703490605651705413144226378542538436827621604165659700302448308373474503603629040044624967384260099765335165357091204344707939136386003882471055746496855112257266683872180114121549597877333400125562863438304334451511087483766695563741465810414477097884539104474890829264833208380085169245591373305940959629430187159876475141133819113048282712148448801531821327904155754034819129329164233751490521514289547603365399063848489119927635743956855098130735277483972286073488646969545588046589084282426914612951698146478727764297408911521638977319196764700409309196180087480313784338814588443855282325913866966761429801881879096803697119679541788562474545146574970238051420354645800431652424288546256061268385255192950619079771398647706971634254599154984294293940114409783048456203369215789340590008859986606570880354590899282694089380711789738912171716900262930385048267385683892976525513050038717773710330461716281500545664134764261454216203257656513839288323524145704361883399583026432695017175974895555077774875258950178235590729647482279469456328832148797430543777487818158348344607618264647114062599694921287748402088099654380081922258678457417171523010077327988605572104671747988805404318208763032775228861391047694463757392088726536154781902847114856962303522528231733784323281868673993197725434894970196706869429489337510210567069766008193774552080519309883939314468859128331501646788236731258286633636750621144904116301209488445572548846560530059895311530259468240092429758594697562496036077056228763575526127445098031685730884533730432006143911895477343237311364731308580963209344308262552859176098393382982627997331474909201262033185084858518974060709631262303290790867232079672221898433906638095615422867053586718296097547516453804606230851789316326599296299106752383571979891401322511316508223687811142227128181285368109036883935351694685030490361069749021585906242704881134626917533476087105403835702544638723161211295271805179934842884652102169974573221187657492053564779414988480823700373066675551249758779547884480952272011570362185240605725016962646946826162171928441849297043525208540727747653381119580474934132257018813171517406704012839524392025508037425553816650578869719145379973580680674142152910613438775894452111164063728461263617306245640682225081540927197830353792046691253075655677651945237663457055091403433335906873823010045182099336334635177246379379313374815549077834236445298347931955320958240089626114955690895831940464918480835228580364366514682698508957190707191896887571821879011380637347629633132089710597886360949123421870919791723029720351420867515564768913700274211871976399413783359280261959001915314320340508533095541180005572933390321831353572448544226630107742450694774727240316344807822514628101958350924522293617326903495195068142413970687658006451495063620423372222151903656327430911516803719996486808540893889642691961202498182634583112258149500647400206783220476552806233699922690286478108149662212517892480541189540366799815113582446773680630703483963046664274437751829886204541828936164410830131871345619034363292130205054325030948347333442666968675966548068854647264644517012909838973003804710891859373212958703606341213832884818345314138121561087692322283883687907458824891754285923681157044134809955600568200250983728049841048843137248314939550289545511084420196823120028913025318510415538642484024697299356605817314489100851502576959906747541902149601677546658062147747589286443045383833659618166035626757899223717959458059116585888440002473165519125631201180782643577168563282440433350463511960932322613993080673629029245577557567769890265415800664630907446041597379054748726131206704310683671524119095765334204153190051993551035208233208894270448599669377390561689548945734466106666336821240978478343852067093291928065272250812558266596855663707393696933277186021691822283453230187197642115705575524294341313935209888123178319710040346787516396401866489929815128575801543377691119851503924126118441387172008344999816396851330674460933301847168959254655965670416730234683235041310091638627417815636602156269479901370897999786065021830803434939005085457662580191630892868430166544960739838802908468815914833947464859842853050338093647464059221423560442231956670984965567158787313852997276325869657793873245092494800476747379430056133310855152553681934177146831995638057508239144321116757420220977107917921704952485751558517318445514183060508333162963271738044255502319632313715585960518601875177856018559229986854151606824269733917985831391546113545006968263339242129455325162755756490571353103622189884700383600675459034753556063840658397738012672930933960061140537762286556516999395109138395488643720095227236224546828298559420747255119900271613466105268713269833904064737650282528372208842441422531813845618968595686228134431475447790864184528474964258904752166960998462385155427077831692144148409961147240195307567385132658535570278110476518427771510383254555516249062105784444776610377236283276862604013067777125968589891151098083975663014780873609332180817780662438018314075734497221505834931057586519743432303374651706320738637397474761268970595430050262823514144396816543049902493769408572460451755220551835425207299957771270755334794224312618635019175078906557343702892471436468175972018187345416117945603613779348537876518835135523917020382454012605218994215135356896295844458347984031421305162339871781668393787374900867299376184971746330475636564617680860253166774659686833968970641436860003483558447045449040676023621278939134129007032800530287132786756283990639899514542514023956973524091106948820970936642444771008645147566331940284881887079250089861992641829238203352563332605207302246193538530635981381247852369285228298091951659392092775780188205291836895059800392671466700416489946154739732683360762692082200869464720644301119219983188738988894197266446600410537303394233982259087356846746684254007296416906245177181019044132797267198221705245198340685310989288432389613349014383145642628977278117383147869076220500457295607708340245620552085675460749735969113799734512709089778748914578133435123993697986985120660705210538105125276605456158010235715659612856149228587877022155597443480209921584923576411225388531844596954043716008803432427036567220618853748601004761231918696213836600791339408942273850084596264362758240062263363982665427833534673670197399007056394491867335065691197527883715943212202698304391717151271636331075525667306761274465876871386121522242785621571569113852193133931305834462840974061551740651193529093174766932589728776323476720312832993102808220251813851683337696608417011356125717972877120892641514813187240146353614996093262923209763368514360345784714054013645944634312581770233697541366082748158408920089596831818127688729484166611401791720246062952370477710472549130050420824953891622168194422243445681440324370374310530657050233487131655291415852140891405923542423670552061118581614417408763841514634997617140862320399260308624916661832959323894813074243767647085136546465359431504732986846214557110342262574778284414255538291315654586362996553272168564500676841866075452080259653647814830339012193297573522385379510831965558320056123716637415029891924367694675126868993189331930157149289119528312825276683157921508551446519449953240270372164322038776657968874044370672070822825502126237788886699214028697368606904813475020684275922835501865179439659066101587570518978997556890992199359157401289053176086174931091167613737213284431443270734049831018098811098792068965715885160951138800793454460330350641783030016287113876204656554589241282801833037542670491934400194982596394507717323159614238030809587037383565483552211548348593868704287302258888337953276300846152546321886073724585489918815255854567478728773934268027627947398342462426412599406162471499103122753526792724541717374048967859713964003683523916902363341118777539568665849661616587832751545433874884089883951782425478753867202150469434085651271610229156750351839613713503225150864876644646786896068001091833056361105994638428535412680201566029278844989945348710669436261656821457843352532234550109430950458165976617440753863381032120441081625487855130034671723825330020167805239299489325989268500559207878639239351603160234701720882648642207571085049279377448168571272810582996914461052642000727935474910527587248693159318438816888231237351126206282953525672662034625453694095470526969717798823055597177151536066730609001404488680981997916318860027576250220935003859402539708210838624049191019210401666409675322101961480652270124046316969662327486588595517601595782587893541113526664207706603524087090743823012749261033476829588221447166482648368903183261927022500491764950013013454700871189129196518284271267418589546313615809955111313159863694075246826785931578306398267872702418403250411436235136029658559459992813719714900728894645595380356835497128622380998718489016497760374452313136204668895799422841218633632817979871334600255600567457665172700317221299428087950072967123121795587780525767532867704925165824040119259194790551258763227428752381990169052455135295675251988832624340717861581318028968669546752342265069478494920718059627434683898552150668523830848279235342744479236649486628626629265884724305085670817903820042151699648413375848137796454741733467639288413033947331022623479124112912046047745528577885186056900030000126403654061038943662661207612966657925412653264967314349014473216443149431604152814885487286927188662811570434455118978123372693066140549168131308762849344878169886316389708757599389467552355613740525517065642271149473346943906547553122676156054662013755454547782727862482645443462895249519789050649534952369628267871958558400476644929542579990495989819178434741400517138433359208374206605799107609397673207337188440521964038955495071433715570538620026947216321197249362703821457470922652186918856069604127569779759508471276404594498365300625441910767071864894971091522526126178032367272069028875810093408869612501373890827991199760628772241286921973218564689600727095289743782884517001514124292713649878728518266816027325771202471037506606388481135520864690305495239935411653226199372534080386795547511698952440430286585961181314443809271651602356448276618341811200366591033976925957127420347065594724715120714295983539587189506366195169836068355209178836728189115831603332483346272389241336211388016564126406847109419117051808324505112601532924000901437210157443122446559494795794387393562426303231862094980246509172890252579520593951978701149613832160999413980590248262469647727529562072217333776339141090853794884146860027668067007650323545641520211422324484084628998729667453956197378916548005493674549419281980322543646632693114712498946926088326766186910160153613941810362241289679290676396142378559453566317103310444299949066449350127908631570622985631132620730634452713653612792736786342169519470414209684711668144786016334855615096400693315436208851030058590553917352527787463002612586945715074706695283982924947053695012192091736122141185052601837332177849422897683040117986615187555181662502012014021382259499266485430758175010594087694958311401375182671964452857514133192727510455478190305600555135135393798953737687550878859027897740890285060271727430639784969563141408958696386235754980284590619112088670027105037201258979908604353594599356348967531844970229686209495263431657642562686557855112880926080427915049976766668655712251611330092963049402241859439275888705977723043478944920759662196975725881253167052130118896695762429341045319635702577778589921106806732179962143347640163506278864277099042172386185158758977250434339402415591149452884991772941199476199457684283115712949329481084375265490517683606496621583336338964480368840950280319421921710442659112584947482410633958007088962853678437225422098180306154631213777589098454136976213882837082875268148814430795813385482229223921907341075432733885090462830473184515321349451573419612486563075945531850600020904255267210002685982714048767883606009276863173267169572250125847554047092308669534994345747459913846610182342458405997162504729583281724512035708291453405865282746895288071233000306882846666316162751233521651487001101219456770125035207101597252532444396472625463154462924140462594979037172924604405810477000388924424872597475843684595507023021787362349212370889511445525410600708627515031784579622448824039960580691190962688617283449369598206937779864774036558230509979358157356767794943735073966164594285436094282759437484673031344434875756845143517156646618304263774273234777617842077192234243196498707366618365762552661775859421320249539717231326106951376235706811711139421239451148071393369635074816014467173389679763360595963134044777985032714325630720143040430803496942704747156684912501343995678676142774773075910745671544158562487321461533408894986777725741258923708783359664205946272146011559647673056397229203594063719069198585209875090180350911312499729472418171396320000882957507176202803584570826421111471754378437771449343428653044637050688636341327089490614786607874276208944549146562500691335157718754321841638347778549905443721688844404840558163330167226273434931496376425347902122790165237278811932389266242041054654537977071250296973474490214489022885004393695349200763712118772175955749433701231201270021346933928719960376086858640766693684177575975610538084231039627330582867588835621201816893293690289815838397680948253325540098365429105025848236676982009345910270544134417757850255174702137154660776839683275117234843043551865424641572227598687003395914285487080592458785235285415936368687330203098922803657671071680059388602634817656605038185513034558226519124571120174695911531350884117285373005189146399696689740018554812161217033745653128067646662521171806751566302335212495631925009285240400403304036569023925153195002917888302729831090606108342926118107066242196823033225268594065916250810871286288596365723741318042154596772269865738630379364518889140684378241662145697497936437847809163105908600869139883931436424896039688328185935538939188627004558845484689527905688646059068884039932123560838918335443967354498993276244659331023732658820042045569644862589422110306741984602101357040526883555930438864843290932290851408952375238325857596708424962733122994538725702101666533761823141751138678410160603714253601503551949212783035084756055971783600443648995924321860777917585380254979736342719389611086752142501724717060191052293114500660101094111828687959075686995560941176204425811280557479441196119297025208486977281637336005541609010258638343895993379121017638089552244314914332760685211556898032304711450778487172248469678156132635110984873056601797360226327866183399179414747257151551965459980376224390530351769326490388719323823425633015491909319054725804016510772879304312625739500526722743510057231447006670476686065028046851369306371722970126022646736439481953400151294331188689151599876661018953761583091989840481438747705618695992167775455187765003914186822868466957028952277518969194992148806892321022100397016280708184761026069239435918178148304286329645765685208116264571180878409562718024170590964651171378192769707325294007440141346223394514568355808999411184191404077819091111510099004996457969406716815677117697573580232413023167549088993486905008465388270280167752549024078221275448104286144920844807384344845547220698071567519098054331630807712572543775885159076584998925664235200853173062872575336935049121082430730116877325441797231945938233054625059482069468954187948862073632999095230396498424712786430133476207434946353849128357236429657731026484075332958764650212774406275937958303208569243600463762628622041209277380766943053566857156207566336986507211713194276088336427853838223355494552957648900167052559365083704707916598068110413604481031337117264853194950356618891994303975318392173925086249639364994329051283892449517838295455038610499567676796468303420451383055351157850369123859943082298593179973361077019674691049811312544937799283533462924555116969334219059042431936171594459767559652003914593051866981015893017217496536741581640355559063933589629809829932740263959039430333007166134977012091559299465830264443852897611952992815032707288315153159636555389229141273217525109774417891451270808354592015479262118767751457225488601341815757766764996661374896562291881027345449759364999634525317422894536002634187000469699234162287505329794654766087395167250889196983587658912224814336293277017751841184185134442062514585556249313593715132496620805403825346469879843968869350499275112954920463973585756726828746738494917665393270437859241546869108128285623321037095562024418009433940877689813613120919324095115578442633529979564231036945991743146454036917796235923621889827256233953588351193277114483760039613992660580094646359489711660156766538476801451713786486684899392278377878893964054190029894311663955143289623963080133889833085711063682575151255649357215509030347202171356857441829218539097974360503205244562949054323754574815698712431701587221800922826187602095473244382597502752623968310567576362753135754697807525232323126767781763352700070922678135396677032062051271803281590813000054894929721392813236655654286181298132640067510794964561778595012888070465868782025420345487639696085987650301832073800794775853261154124970532048607746592626364104659602104230772485732116654479712094938734894157395970118689051124105745559704148866416882386528562687667561923148272071399669208498614504432886309204281640592715776259975286168169735677386486162065989451240923096883182546564849045342309749369350829964181862557748620819057769962535643367961600107739820321494605434870039288332233519617739504673273325621504480139713429176146585351079392970613223632361397670128711652532263492052490117747062727169155489509417967369460952815385536719675598292572802900475438924932855960701823865058631356512080478748613967805227653431988484304566785225115284749151976505586164008773255128870210455637718679484294709210046125001517043851462063938279815996491918275505599902322498086546589251811766806637153687643969434376932148790626315703971248719688114473968437982294209297916255465658694225935939304409767236061910270280324393633654452278799409216189665462680317100253424893497526756836249642832969768087123038289838226419241970529435921513831220890428965905878906226320368349421624178158651477660876554129930691996870953176751078322333334072809012792109141128877278360203504370094920628868446465349765215868161663916054142038776515853064971619213214891035329085198860211571959617799641761765325908211009578047025468349992173866335070462450263142860729397977633658641127106222673338223672177956204087937866717876629063443325913653110914989896386046901510682350781008399244040074547413305545479872500674561851080853048269319701606832705057830031935981264820776925570271947976497882594294864781087224109312828511824429462905375773907307010030395855478220555506622794937996514516630511207927376260942662562552204207917754857792937021721026645590206044997181471334829836663681527608124441273391891151352294484462446701449658007753595983517596727218599260673158548280993200260856295890454891806597223477250413017957599775466988894899653996204750504678627521983778664257629965856119001751051316518715981562061569368638621114385406416283815613479107086596249424326031121174540253767927343084897623688142565440346510158961865986294451973117114351050994285886586964369881344506371306416975885063549310058814971511027102979447810964050969754549176038506796355602710071114086108936835968365348751533165151574178440207983027092988620721319815678206799695090995211597868982781347545099489037788587625726582519740996514614528316016464740830037403271745205706051698882251850135077644880408113081156509986180061545807190973157094385807268713288540431431909981943616511836296743724263120863843394009765946732233974683843586316098190131941837981508591675976935905342638037527339374691019588607403630936360850176209496858385874538104582757494557204410734693290472909827717784834422254106443028771662828858558670574076392202532260849195160478307908859755451154902490922389404151487134945588375895461518539594115605665467961848315412694754627453163197019184281210716986280701433404562729055953392904250113152983247373930961862871061954165161768524259601849324687733067533267251450678513242160675227293887301827417219818512095983550294002316794771503770401285812019400566301322859628740379466940243856514725575649633125638729353384687856645110302962854890430766968260168735192756602570608078855160050352285044579812867533311422822147208767928782665477397864019054131571365841086171764797414825834655906081607862417659213970687715887600494961282903640483379272005455798905344833235640901274239048451344233061037966920746918150877332866721132450038033558205361720700384053827581666968685284266061226979490626265464854801810258276110717306073573791415185674844415423284403240934266052791445955468752158432386782305248677813273652737377946275412485543568718186659440864475272280586971002192861225716819130531153794080057657544159623887718532980495331621254069482216293635913715426137645144427871814778653986132543347428228671693617351231739663791747659834870203733556356173778205611118688203539055533208868100766276039460414898145835678505867743615948078782975115129343489576707245963673260580371056551003734685568084312231075773816359922946561124668756574898960414278937025703237675826639081186133889426811410464335085488643374091261690448641575352914566346773077141491119327909537865868663815222005993596405663741789266046945741886413622971992643151557142684939195717256954235955568517550577220728617506308595604114166236573204478808303242868959995620348501671972896912496072016912443878615422594187304852185061419376184811094960972734935817608881509845469267226654925921490340188695348166423236670648949671029521607048063042274742993352804094957745995757973385741179302505439846845860774808410840120493739019377895496640786838098368421596440799244819909577360878834952032588091468159052436373951556487344140437270084119670386807003884981503135589180954476175116709384029774865115080430204938459681280205124723345190027287714739890544811704146101028482409157457949853956307655484033414345394372304292433272815578848149110194925677575667724492141046052618856312406544039448286030736655333889482940492593683261500658727196491761905423906957513734082615539768917218658107369626179803011494528527600422954157320660443741817687542314048822074116596048749133670102089149604331248980269875525403851933675755194678099250016711376221455351239367301416248404738810686592139635621825952385759966937772257114711089891474222399963466371568676690976703500427033731121982101826687265531306358112802841347768708867887810074744517835325095796639182403269576501733080078445535138730316017512913063511065613109771100378948845983255476364644193260312550569419997897257813043124046239379340134856799057394346621183145357190097443507172958470393571351851305883185152831418018502260353383858276898628646820485724886318411383327848437032474868196823273418112800416748136966247547119872431078362147061702414566001048852019989164947591847370672476820436114150449266270774774344438503490146024769680533956917973152658888281381803846566056046873202146762379609081826136953923253401916658299229994116194319594694398289085554729313085232097360315991832241680771776692162389242572982651234381752568827601300338166682186958837671902531583519073837902940283305757165720827288749302466721093461168146263921868550048145859965619494076156280177819766936552230072563575750111664501348710796090468466990460155355911851914666835106138382227061078745188227936594696204069057834200834259481726942069322853063013916651179526599222905735753961770571208679365740045894627424567822130047114356213003395383735371172832876757832479530229574053146805360495122787464852822439504102292900189235334548700499150986764843166322677498459486085255259059346263886189971139777942122269314749035876656221924261044368633112803244492816198740242320149201727907482389899559889556151089594270242816002278036187112567957656605666454549037242974749518377971915917469755165144414550641601502601000325106278039573286725753810300846118016030104281733417083331821096762085139748536358527489226739348085505585441487305388390504308334677532362069693037974759246242395618612432753350301233230921812383115316515534205329472181365124663483640158310055137257434439928640678582748751983786770826221219235637328965558397340598716742735798464463757038132063703206268228000155856643313642992685448301870315240714770752566749432166515452497079481616211728754369762388976174575578843977348795616348432445403148928777142269426246051486065930432836040132689431606977372416207131723594454442950113979779727799314397837540771970766821023551942006812770017917041218145984886114206234171918991925361039423217937605778308018523343312268908051507037869796271564378573488213260878130917807939003337953769066766001468118651974411318103829645103898410169478604069784478751755371875137378643996634770723942765191391241998738720560470412232639005425666895043143895503221017763313243069415202896755825166119079517879079980938487140898576645208976356710631185049562184028221226037363524852059662935706664090979930636582466526574932167585010632132148554980800269072548388602328265995090385222924818384167763700663758135376362480028225123751404553476374722595941652581723446558884829069379432895388060585764066925688470633747172276201178563468533788536154542831396770696248955036874268162303229328088082754166144646088127845529486039494880914993706787593831006272859862290035716159710018864761877296155426737231027510820790602990119502163445596249590523026931064953918120269217526919914556629079080818948077381815791874369728612676158118490356683455140798984693689792895968734122534107340391540857347512214122937253318587961815672373241222415828535936968752728653497005364239735384696678401937905846972933971992499470105690119292166656000032602584216091110084318283452183741953801897666116145052971667784329055457463719775673545001701394508453888041476996899401288004793058974730488926924403539641377908545691744030081103256063203163916565092344648663197990130076797599244804958201248797446512375776727174246990839269237154371596670194230599053058185919838612817728313346237287349912787326292114460561992013133884809777718501706212901435272585909155298045662916095951925648679502176463863744300423810754352919810198861209611655828004471854567003561082507985602887115897388585715343386584442198322808175079768102592545250703879973908536610389027758682269222093895657328228952490023297980986985940145193215812681044292608342091025353332529477991602190155518275925622588236611261446289980975617221658000382150295708488141958491688052839690535674478953133609648607797781569404206597443467298970725527821981392593701096613650364652829853039630924209233232283019336928600685180042236301645159716093632282305924231320692647696320564490492232503439648362476353271726093453036819495740523614630038003177943691712422146469478088750684174763209410028957144861492099147728275666044961648846707353530614958837625102760554347060787300910663225440026493499709282941451423531978193835627825203315080116692093724775360414744559256846837857472165701814284548482074912322555510010754658244446986666988086198526052319456316792861448510811920585381271109147178967923418185389132511964578293349099222154960788340625885357486634720145475076055990001311277492880255692439002824024012338990057255741705464916179235442071340861664069849527971494978463116477096626348938509032875276776345733545466089157719652560507516656744716428376196290082336013156613812628319188545639532226881052554031988822850932075936798935500169006322800177325921268252081949530045595727746408127795659834711484805224358624984545462072255403903085631613017531095979967371571357585218218676375601557520899885590402585889175694416673766758408443325087734281470447931751676708121490630610255741183612221438106548046449162248853842624343444601667634075596705815992986416079949642951901922340521705658691233792063354916179165184626871671807278494789188586511886436216183162298486555332233314125195851577259858745466887970259077310621463993596592612715591381730038479190753867692781210890952408683871674345510464953817280447308335489789128132866681630215564581507303439224627021735240945820077560856958923262958877988237117863370845189799105481909788824398534832952595050590121066606837847716182756385782053151342313985123754794376027636232797410242892779794581625532563831342229841087763836035076649681424214350030030373908730786474340216900684448968530038855361520976865210988950034872470799771872591233156321915018281618729913797915827345206877233946973078687331514391378122858582567834099487778753557907652809165627621175358927599292719922890313237772740974282309370978242681201131227771083037918542870094178692299176008299328534426523080562687190430851253823279935579870492898177035273504457752155407415191419377856469710840502239224149791439828312600385690895065557909646818069391367949942115936588861540288879358191080858779155276212604460359853275460016163123945578901163571959413084529494721045376677081360628243372917136902517468500364573578568169938355996419849051851423113148538754216170291228889617866770124237433611919488698113467433057346717123029296563079314892523593358712659629649085459898715921560626827768858375956767509911708251983296110430292785052088486382265968361272961131354085062320071330565434463845821354511660916320683642724999872099266449917837885190955397758082568960709162843742648864067313966931067526568655282267300011722907690745557084194183820478741327701145732912737724214557855233994766064750107874668503991821076447338732828107516873735468544526501161635615642533248174641833388236008414818379643273336641711116904462552195659352090907727305602339382091476223909585103631666604764176184358973380727663200035297649355757035158047014577988235053641681384434503646910207965854263465835285358600167340459043420325667199895324709660503737241148084517357672191661184180973957821283938184602525432326421231597234740611801377184037697306332622068619685874158730421149347979365123785865906289863130318413898530945466699998096820785925644103917099931781731317479958238761276555751684596022834582016336093727793111041949238448491085316776442944830624280953729426044044585466440736886611756542861315836377210524735221032132161801944848113930641729426128352832959444495872757476331524335101430165598935934890951633870542541157268360520584129457283541754299115414462979875657957053044239518812242112957649940825819549388794785472021974662544137236876877670265306330942387728507498299040363156697836407131998705562574112078689183707884022820948302815616602139768718013346334926825271380046276738263492096265881459458023708314347030958480108501262305115879246383395634774727193719776126862486054662223716024597022647561484624088540761915035403473671049875327930019119397727763074111024289307385227577536035765627525104365368474910954153654488089292398772014587994034709224022081949931221887250838306884032198003282821604769999469695695752968148722294200918630976848293714420299110828992426345508334806595840802113167115495256046877732407051108241969657917523038979844483577554650258066874931565841850748642771068465493019098800032602765941664800023726211114064778208778653534991057657487485386974177336192620792027920184670344914018440828523464325366295275844373779286725213765940258119492234334582908062390722531437733919685511260891850943166246841036597922534470562860350047928877871665742576465499227814029514423126142770243242429884525432480774865557442496689338332408584920570151300937363371274441463129111924304702683501380909481120162662262860862433355314126007662153779694869418518192557282065672064712645838309150571738385793631995922435189861587962534004315006901632035939126016606409016357719045713742858535496646277125939271892528972306815536626865296980332688093921158040050986387932083678341147047410001595467970266198410771380147462851918396381240275841849601049668597828594534320878042207147162318310867050620334905293355163817741607299241174940634702823807985340865932884024722497725966288629325158859750130362436255924946483326566393007175770228888242900603821554701849727569721999781935724490357923966695751811614323455951708409264007520644773418291657578321258907280707119752154150222698727808326371146424505504260976936177558138942664940259390405954808735411323608606101786733701833252647146596718705253609294376595473034312250036734241910905775519900788839255536848135312804344576600070455544721061887608864083376245976437509702720504698123080878164159525400243994965900315279919434563505656782983507671690979297006714447529063744731623408312318657135851381945315313766610342349541110695726227112206368111820211497333293533393709856815029842821575383937138976477997800372291198088074502575984229424378758859168850466626154788107724575851685397222649135434900319617552496455135468184888000717189506286596546701225424620104074414521483155574314294650155361597587495690577639863884302635495148679507547741566538450691071819470739155485787008706043792502286374387778535468546840362270718607076098780173617053461930898045941510868568097805990564960034124953902736963539637506064683235151350605478292389852079218897922440922212711259032194237759089412454116704396311370212875617771888000725666618513782919784374674346480490426598730923463377850124175013799189754495798990082876179659464417510803155443191731775770642917838994700566034842136119504917196736642167496293567940385348111778173860712214565658639986987366440903649519188538358076420292680516698580845046827456602701226136169863717694356087800074986375000504081319503416021902560040299037624979169585199378222796073458427090267566764804274997509966757835080480534998648820612862688373990129784949991056830537942247573442853942110119271477851795469781225400754417935284613854587175166805735807172488117362691296315119230037849599611892027131611090224490485696235642586184106291461302226681286455279375559280359919523299667379162889488021518997787273537278231088038209769474145969043293619641432122217526416573921481145239538229097356261061882280491652939499516540088576997204720898351460280648021854642969569086072717572720750294605770979758804887290969700129537877071603542209694068733760706820266859544789298891560062099267395989754313489395430670907260496470126672772749069340976623933745760453086072712775967973400702110635383548690066312665262669512369937609942082557034344475287400951483406909653116463146161308650302220532170352188970232204441199080708111581714432249556790061343660348753048992947981700920957436292733640654055646501240623698439154372047964964895536562013771736650329366548859398690803204631037024891003895269976925935837492061136333207999712056712258346380506385404081763839813200427419039951939751330755888283096468028630292704240402155412403513001441451927166117391345459255690109183209714154807305641390176155653269289266904198947166035738407029108854083799932001286950848176965698326305379627240283009196904882600190867167867084277171644395323138420330237469908944340694916237881841583331622834562849102373635856108726407759448461298128816441950813940474111569718922913688081643784134697655085365943303461092404474608273672730766188984227257536303417787201402880867201523601171124888571402280595928548246414135113726418201249310367991162863577638880438327528785920177841604950835016140439193271650242292724311636344057534270268692589265483294233096056563113333599113860252371042253024838845578804352973087508663117529723049630598239997238991171132962573898393338956251408168736569256014889652231893925521236632688636304446107461107961246254383010662912277984048832719229812237026061139112195271323880953250089913959765378998319433308957533185225740774898265998683118104836017211043613203832200074034071992669741015771814239907657587744427172280206526497182321415801390535291271594388589589345614949339700741998187969911977970309734210880382653732041916166765523701523349019651217447663241777454478304618873629674889828792916738793714769196838470963857658185680758713392277914544225387650008727031901708715046742597749009915456428450893384033952777170678981259780102932214268536169971555999315944644715376102398983934324308050985718193888593156297274130483932308060204427023472809627356423367513414333933315586409112700296442493623864202256932226296614210803691201025172303220384199544289535255992714439148572790569567497654840830337221701332387551046730715274372733943099099280782118483716218241171176321836499258010124909130493565413107353886505749554082577441404556637118118351801628208119077858166245454337929237253947547927947927153336276476231615347310208573391882008456921985964622133414701638243011083478687035997404277959258100654698220236736410745052587748855494037519742091759648827977740968058684333542269646039059645112766196260046273292881159147063314400029723454722841502878065238926969585932449554457635270264097857621561468051796546151559813148701565620629601381296225338063434844570503147212970111253918284374382301080922972327925238061548985006916213788883597404807308564152643681911408829327162327128816488432446290503798769843715236650177833317559547602091873663733730769706865660848573499895055297531189393610177410374955611140615185001214236004403348353597722170180132617467839721819884866101035128364337842753038237092502984275540748103068543766167163657097200556496703958849486663531336318054405447773127653453306658676676117455753656815257521082539690363891425393924609417169310721172623559152868488367395278517915837224471942676696150487216778643291515135114317326327879888105094089257127188990583970827329282467950873074569441530301279086031898909309562953741573443078161948315446491429090539094138558919326047900417554602093025814712334058722644912550605379300664666378175684481179074063040683810657666332015587811007235028536487553618133327781525973903753991970759878557357958003710592018351506373386394603766081748185480485200271452873168783182785373177184835587476563785158491530949577179014107750554886471412973348041333083075679375168513169824948815004524467094262285365093351784974264595589539911634664536078194529914376140857906245922510777071605270894013765804657551511850180490283139554752689408420219115088255102451211502953946442158025434717862515148119136167706174870454595382341608660962990173491287823586861651948466179293553241167184182173045684984518914390682349991337098255501905275270328768414325480649792386619636913352229015801144468159841570420464630131286732055688900406989998591421693750303113193097355626329192320645787391044444298835138178550568126212750483672671508082977139180266501506466111413456557503065432842747187709087582883563168377992486090832303626277203648343267603945464708589430534066625477433135507976573735182253430289603074458803989311235139842059346965342598319822412649763800343943845174547999504277472503558538590211137217308321090898418597860955742184507235551274525657654406082317925441137147292571120494688723494417631004357633448168797262739364681970827129961984396563909379024434439545839412256455669274337212546605402970100152384835134161327917415768338948848308876380102116633369311547815713114903252265713992050438505373597068261296032125929263590238150471036405996638582694390312362543675605298633715514044203571046871284927205913533014643391746451998935236493232851769945434813763081184830181069903380971886382856484940323158948117299805447518705598286689275924577538590020789995633947432487388191048247496595138492148943025127816824580567580417087847246331099900046027813754425303164031872895093586897791970445413618364743678542049095769151800170413485589299274926644439197252140098790760072922094521465540008736239329071998190607929044886244262386127726534197711460638447170660752242808984491356496609882574692477928153640968506761495940532689844987831218295808596702294974783630632194389899847867868885561510189123334112811011334782577700517347407922493475965091023468555565535319621089373721222091884498469903717500392884857192981987330383007291499956281006348431384314287665145721586071854644990656258232280837533538488305051811728008817195021491614252764541412350646003785727736234313235744523990218308622665000312856035578752999166128397180961899439450702468955821841558103863190590446946560319631179490126053913375787477335743968889523281365502649479266587555232718811289760645473457353561130347400413457836165832511157411648934055293170510284547771414923970068964899828532348593356821208271690634106508228059363886736354997654743248686158350335286418652750986294464431813407298927823538796734673122020134290876361164785473126187562897923502566580656303341228051048316835143972217422042812020080840828425935749392479019619037159298918485687479719154360156347051164885523050431339671139565894554996372406711816422818204180287093623502303621423885290972020532056681530712222490194051692533860097896128651308329333286842192324044994447605950165113599804472947169537652527026969209958601338536043821261363800305053587090466233638695603803265627911675457524633558419922350024922108048929985210357604351444297288696294792074579251298396325669445620530915475347558291832152254504548627172321141212454816883769579804522600705577207576088061564777338418239562528731379636725554788673188457802534200960256300667901084727188037139525702809939340891948434103756289110217950318215716669166341783192825734129355899146827893078527434374496966172107174427085886457632952884013030575567526248529125617888616338709841368098305527643655422672297335210834295688377094102664339479342714506577699411269592891966732403036765284355055104465187283014516476826623566148054084302907978444459626735860399152645013525740568046144370068274490166122236475663367477712855756250741656137639972437198501105175048713278792954368751058180262818057598591286966081320006505147998167545140334178042694428411341747893445659760328357816659287846344960355173209609897090773894483792810309739411707561182638583454152887795615795578500924506168100625780602016245454696152059921857656131421163897670345882591324096803160474714052809451018687543835950973520844619939269854954303278429759665433506186347316930177320288216650951404157932398264573052259623899683706434401914547946157340409942376954209425979238494606565939613056209578141472878867004639790713844578061300370671907122270289665800641734476584046190873479613839373496578730632846242918689301102581104699951498716677516399853731245027482719414525508103647277223757938843677762424833148155226622502218670389213510790799287685517989728363811719754588734716336951412711172235328044553177388387012512621067709834927860357587538910222585728982724103629418542031688352425580313052244257827136349540632440294674581675740684750045852420069429212190026335711145172821984537722718714874609018401691475957556137322270957310235177186645210580276443896818382884295575292115375576687107914545745989778739197475379237000869034901746329150252014417259853624183384154502754887298493254551138473281291357703433288167205434987810816013753241443105116443137741234168414459972449611586370259834334218952193258373960233961292040884197165893962135132631128141866493214866702446225782221830484752242678396455607469101149787776650216321527448329769105596994316491705697503948377438288563412449397324613831090601943755428061624601845490574297760880668029706582640783736327890744459486829697896607993707332426397364100407378040357778811143948736641343643930050786224187913481287829805856664487673182112903811690293503487967793052661839113256391563023073402731635436049419274669390635624379304411096328391152306400161094458942340630621411696812728866095933349547239132487018682560961953953128192430318927611871367258662979914714476156547510674859193791968228150961498774917316208096984078226192326792200412661324692350835502701366651629612563553199741082169791687562072852633879265998516098440067317394213881953975479717864666969353407520530955106309653842808715355814054776817874588029324286161827824599067569165572872654417378575326094054429743230617286224759907004173031001030807510583781850675416093123523158192822355404837082068686852878106255775462503871798655358696067620095452679553696539595146279472042961871974110029357573269731633827474648688598498240552890848308909744737828404143041715037297825439209539975347766888799423397964314887616172045718465888447587172168873839361725797317482318247172027373185871167891493041172399690937708420365176352112034395577167647510545881176126017924247628233851091971780667417124052142440641526249255471301456872976744462431737613773276786377565746420819207707277535271249075696430975347638726144974847665366835071560243636352169928493658119954895189922726345314598654731805077227187480575397728322726437223580145269823592867290032061163057197368469597200111701739811933109533256671058625591683999040809764843065701238303781215842460324853402998538058610090352749142784159867908760420559012012803513575212544613913183240816476402822410897248239401960726783593675649866137057981890210699865175467077745789207069626781259497838223087408217531954827142227748353756725590869188297768015087037617389602080913280854324724857961140672257442110461028103275067265839102153059802368359899448756838969036794223245086164870379461925804786176840837807524541332939203135031258092689867599266303476168781230587347121161995466915607465059895901718790965128281160273471708117757759167236450342957498513933381716992333531744190844796871016118577831506711599632866596506485758156375041123759678360430886887136297748998752768772248790802574352490318938535800940459607754732699543500906787454665418208326678561211906710311506075789336675514931533056901603045155449918253150978816022172929376224362570853197684767327334950830121270599641190252306306215602204939979584548692285117560708831963519322407395620481400694961051764629844700920856952897869826170878647721846182673830724997572112444562682038275912658747324322336391502163584214157308811720381941057113380796499766634090616005443346902346121744341581570243639985477218079601799983566686056139866031762988868878640266872219211704116039628294536765548999842327814349303666516885352325111113993324665167502616218330319972172228679879282697465415095182462624028516452912594912605338223572217555288076657113152579811532675364440893578900327679629334475629106229892319114671967863720072782474568731974781313493886178865367266372158915011616940641574300338461614959938438597811495033367775838885767964471677724363681035532474814105190821762735075076092228924644201576127252486355920605933823731184401083842837390782520714519562118536616307614595589244717481976265957960906432962388893454313103399737942199075543188679777301462647665320543414934400796789092243391016235111276720709135886849692206019746312703166087450973805212003327703106592933449097200927541134337503046960222141917634803907680280184102499418836194470542751920703914020602866707227045693472132884586503343677376378177646806578516815500459190630952016702698519194694081911026651780926644231710316841218749355516375674286576623199707332414852413263644162643181162503484755242790096727132552778319941466799765854442094946565636366685557524227663042756622363538822173160745892336157747069121784920710330031945769338776186856154913054072029987089295860868029680143861077291379395384597325252239668011819903392253496256831821652030933325392147957072868614705566565648590009594032615485852716260894531484054968065024240277524227159954734046926876011756952170387916426414744914953232816028993583835971523350493457480912855119007648454747689543253012623124534565673851601879493664741581381533111697328464911847134443515457691781594139936920389882828074573899964478811830120554499095632445683552404493169726659895588387226128579400794397288359658332032876618935753765291005991794690311789765607605370635708052293984036477229590493800429975336454947085264694466949245186878698812782835365781546862774391267477179304310570087430052105898089043590456017286556066340169937907085892007859746644860210713196585108346206231995008593907726024851815568139042944520175190386374036106094664132841656176643036286992315261050465408046262166502854700583389045396407881217245440110891640950859874390003219945180857529048736408081397956715364758427698896748218976634347255652848796123267490033989948588239321360975587540779136344678039997891556038680574650918958654023343818443814878782923009807528017709001185736229402129558848050693169318241278750237337050467561800842966542636502669422748460403516648359923584903494933026468751949859940746354289273688278333424236838071822140858395016899790861520415149697379376463589969342277425461102536808974965394929909512649966691709321537574158941309638023319150816889563237499930797272114203873837545750331803605313232719672046377905411772393372073873111367967868942940708761574721934934331784643939214522935685870866180130451775006864778659921839207559956657185404544400547500104268594166367827124709645865461365341775669723646733271843541751168296797488310392551088215609928615747226034450105537463690349715212077710245864619532495221917453395979759659535856572085769587447759025371923331501279315426380129107952087857309299103487374941442014452781557065969344601996927883665930650211806708511345239541310263416084467123121074459704119093592921696432393460108326568290080249001132325749028376808420490462785212375513018507016223951587867130004534220691136817860121581580913206818338418371067352012300704364811498215506269677736049406260376049560201183806547646634387276623666095072563099591572709364292474779775578307177817581205949855830203709247870878594953969756753873038316327474213681906867443036811752441910113064854510318790499269433843344296162707308397478390746120848461920483387917846324210351287862705819376685042037775738433539159471918029640774952755386840402522281791128605009021549363152528380165911696364481072073618240748493145200064899516018055086521206512916462886663453398032453121188178979409510765227091529386418637479338919759413850681754825925697336832672782803819167085199277726904732825049594644596836260524468328119782775708552397600155452217654714871085575007890041261537965086264640857098500414356678212759262186181740594286937523211396575703029794850830428329968752147937441911009934230942389796810552720531492571167865444306868521323784601686815400122168805250308199325684786689524164846182419039006378458977285046548124099572634794209239568014347277465805683978491556566602760775188537730190168259447350268731597510169584238967562046650973453889612235816141438695411483852970839434150442813606779670769030468859527111826112822316808503576863786359561279218390102920235221254326361810589238237368195121327080701040867528093966356602274995226232703904308852051488797459815686975102804455071160402767685681920163983759775731071935063903199489062867046723671319740548073363281818359455885375418364989007010015733588663774520570669571778039217716411517074911829516770674398848271718542798603424954255695964598204908584802690483516855442383104991970951720413172681920872542563267796055199671428535535173454818579441455583265159328826033565296209622326457933265084266175180811050894486084661889063164348447426161232236408935832617223021739408292211314902574268150602268340532489712934989963438745711439511174694491486162119915728648506863394141975737103419039624260150508034285820047572481999974844044852198192933483746104166631208151658686229836784484964634032361211475526288882902178053641606025891183400536760451790042913924634230097763811124881014773184664580524858746834955798112526848476638409710202791093049036668665856833266253524538568732581875826607816698711279267779618838352910130362498850552077453048247121351497365608199073394820477148672520218803266106018935464830173937322332840589892752442678424560757206792542109751890838348084979732485027057878218797168384815231492422320202398841145488974591151723998072062217726660589339191309597167933062335770149211847600311173697192547784650514374332300107806392650495467465209790106875369945340056026465632094876902486368819479734603918848093038475550070399195807433824838712373951298017817326044871332593452504403489154108437354116708180073040408827198327676989632314368247470308900467265604872779129131465590682563006253021486201614818389361849790099969913334834675939550056666816728938672592439181049025785795259350446332721292540654659358056515845217951754468516522118965037075895999829209999775488006989993949642585844041310985990913474957613068191589285014815475502851657134073976806431551695679871982729951073468562150901474702974205405327483769841422039855787042065471690559039027334426136713499820746789466761173565974113787128113071618506473561122007166111029103158799754398196443464538898634817166982601524025576862204183704982970015609975974528466438060560163100441116122954218345918405432776640676430761098387239206937421261426069157942649787587814399553049012069399382641529945808021095764729487273541608850861201205696991848512919317514349678551747361228299622698234268898253249262504845987144502728481065611022297484315368068876317847338513304222115131829468879837849735675316377988508333982152015307279660942495652269798422017100298476761024878614438947082372420889105769375662044931189194752793295211052722579084966834551435606865224347076997250682132764615174072365165516519494553846660314822996440272127078094525303761332717734065112397329812598236746826890998528501358978916803938815990820367453807921932546008591358310284663014068642423731363614429085147874944918066769315133427455550933610289577935523848989265040728647851059107069752808197853554632401952573541404071672012121069793335963095865887179888826019853976306214095014561891118580524401637876484830615785392785110365061569806971414194533788352528525925438519208469366499200951524246421361313864532522017256193420294804804773269347126814863590433270996233695929529512246347946363722971148275386146317032777652610250507897860281805381431550350417154569422650527054154651202943753906570394492967256719015067570842376932362997681528367560654778881935879567004455905730334563245239323745464857807135354887455324913735824279942840005396346797357343110668521499170755643860720824412435777865355514358158814182832258653112111481319972208517282712422410816032345949841943128172854514752083488239685966049679282539936730188272885793909013776646949218893108593684248936145705365442757680250171727016053129587772464105415888457668847535290434440213113964273598902360264070829498403898416442274437398810483922432319738011572033919514209851529125465606083347964041310848922807453118451114820139525862184587323009272307887787762337678933225513111071547268273341222998819058697535674802478392852220956988624707924648904294802131901010788774810255264078244967051951434141604802554971347485465442841172564059383172629313092855558833211626565445222611149551888010177555801935405842461422331876498076721140024229396148161142178634628601700311111722384241722227349946767107992425894040863977098856638182531360300344872747900417450667406843409792335032683279372763926488889433272764536062171859163451083508855412702094267316534098876653691364218976547775867416655706712228258461148359611693012333391811625353077773236873581608708493740940463232538210550125414543542994159924708936039555208013191070948436727738638517523990495199507209687316870451509406713085808960890094828709341341581187121623767641509904973692934412261724338250166549189110469530969240827483067169642630656142801487372749624065164721489360292184058455379728499369094892089574278905916243957332303774000452223918277400327725082178729215808321175670492517570136951435401197872542465496684301642751962243741490474866918773816216177835962587280370961641020092670319745422950737139089439491452465134374300570993038240670106935918020283176340574557990389904663719201091733025179330523359319109979143851785701008106054074876217713081817889549580609948110168867163949315644567359319578048633057553778581694617312643801714890824347668078869433810236001787813372851983971381469410993097286391775029312978992744581937995951913655142941639129287579982966343866983101697449057975602835390679219364530992464534717390958352154462136072974608513491844092574868912413702832583843552428257993023761039191733334590816341884176047306133303950853639390232148010393743972120662971000885627597362954426932589093752612506253517914874704820297557766175809474969384043246428471278791074277374634346325030003079312316960983121258234169840793486668292870591038871237057757911058993303870474143957751611375449776479702644691656351709904185944145978009673237423709663811860871013915653574292427128967039416275242368674312911882769175419139672671076642494223831511835340424016397039627697846168528358999242740038919482613847948095092370460258118019119500368865378098425423623785435526858378073765445760921358212591555061898551352802567399252645129669457036571581117391660592924798396025374887361542567920512146572215356443544082688141766216963753289062447468298734669235389965859936446176161470999037720252398447411920222831337525441178105356749262524073810987122480652060010570571741610152627597066148778932919113271302590042222429084857062048862792116046296449130971273042972631341751007178983581808150293624342139254837167928881745854187693445669091348476143789623543653033478668814725610987193031384063267488941915445752400206021789712628988250606651505873992597932835372742796680669625921559528622278663778816530797280420142236082285232468835764648638778165416103005989356830589385525987002386412401020087302389301991362314569317353198568455660271290919937071332656041772991190207617751377596364130902269080837206961628911941187421126373587366617985134196894905490639771891201630640855682599983959482682803585038762791482811759628740325294267512536804362560773714130654152506044233916022520693557197323650123535893381016207446771268915278683392007380712212759300657351871096463979057254317586548715994368506132469752584189279838299595832348883626654470451823566567324788336861191374819809301925883004949147835534271440332603720696103178860957329779138222323747683051004414099183636172834669848692184851079420292794969940712814472775029158932593574322998181083563193088297868579360014462998869397931855860596782731922376483313231414487342269327973141983239084845833940068227341384779935321584974466635214010956346347284108061421706368151325153425538850746168019153413102927387373833622479776193611528606216606155347347915493404863121081853982790449523869464113663585232538785619953312141230834534568678242219277848175863970393784557206488395364650237548852806284180830853177008287068331451559283424139840906284552050208379126891177643155223359338724663190921368997221249014836661622278267480091909808269659142829717663694558892370883078471224776234479922045426913762169488205967275630383140045565849520544449968209783054454395130000758189255614186008306055164622899791708238179927804066924397783694018695129225403001043765231286550734166779386556021443819605323305944507207122049903260463704167840671217158738260349096618220400739427801346223645513615238582780080562445931974281490961102544321913709547075939777582225407795663190457883692062763097398809225643589165351117695364941261425562822454327215985446562874308942703082513156525069503395119353758311004284096708306913748951148094589796137244706696447800971853657649539908971796879410138366962558335959066086373653811580988690723886132071071201801771126700079860251434750084943795160312454281209122222017529077791499744832783442582507202156086132215958472359892299272713616352198057069399381785425737168170274933232693026055508407558136503106964335319973631870191204789574711154995432552533513046066772210671601292431856079160684517994515684393987642603090791636265176644332706142398378100376630186628437533219270112540443474292807991331630878360872640690444565204155717057950373196589249005656095232076008132094268135245516675936992312298952843202879190285699433885296742761224963839443793529919735331427120451841907279814639584488471114093837400142094497932249234453619188440889513802580357383779097047948361363631750264625948594853686183864017193683065765591642334487201413405225378436623003880493219412868600959196167137080853999269967596366548924537327570105739610934988421846028399653149713554705071912479716421217258334615819863309921679210304689956200261166792778369801090645294201197567875768188911914670525753547649035887474885750549274166989172134567965045830563597840754918719640032291776081378150388422445426053872706009870925877020857186246583603190791377569194414904437584957344981519976022608580846439780048454008749906977172262403919382164252837511387028042215483745544607390219576551267530833674801109819332662474905132301322170604000204608567228260479797044673502512623796208838056479289926564402261194485014283426677492726822566655471691635932661440929836268162660870763689712478708975575430272838021621301761362713964784234096870980695931130698375284746462756222824995932847548738928819782846565961138748938953776588054016008338308751966340311466650355405512066985525601610887584305300053887602445581090947612654341000660370914532580153236136177293205683494093394183634448057669230108600399619241794109526955135473633999747475101561583052938266944834901080006235609057243483707460601351189092158862552573446524032365948956137219273388321048123761118319866192173709260986073597971204065727897880822681500741073829431080426380878511971319792754348383773382350214841228187164722255300543658958260986599561494494186631013281996334168537838109414564809522693567968837616419219196036226216846294312183750418663250099145149383479354886389043291807743515714437495404301914624993020924073733086655676934266299726525903931504260231747142909826386752261751009397052840432599255142737077383086422833564652621113786596351456364877972947520237289160175233113242623549673517539484392705938441628082834823301393199302487562103219608097896508476097238251749627121026173262565765514572432929735119163275796432723274118598724454699778425632623754264302894814003177503886411307916375020170952679450281494248873382231100967294181593833119967495420277738317570581901681097896038419919522081756514677343239286126124024112690467275677438162217122438497686215691994799484575833445823267889684292574509420662931182670868463322189217534937911979437368182563794270407291961495856855131624317043344581330704620000853708103890287815502734487939773352593707000153298218845168902559939975783318897282133735938773001635125663272193464931841979155760622895234706057433571379230444212288188921565189332993555560232094374075783890088739987475293656439686672239650347653246582127088291662808592451388658478879148335475736078579570991530517733705169259257327949583671437545383609689411641314999812230324887880108627941825380594785788259181287799695990262210594100127410026695849502699380771598020299582756000688335199329379973953639737737004600711265361084606622446923843669597737220421589249003017792506681305771768700896150314112537991491706494615437858228876142313903237598295564393637864845343777832787512229564021440097756131845213358672961655268053343798326902453409349537743667840567560637549250858458373797142730880668597616891094429049848735472807088784606419888555927342545257473721392803244107842472487911191251639556114351957377425191539891273178237710545657111882645950721994052359612227554701895174072587698746958146863060125605019072532545948196446637216154691861743440108905597655574477453312398785104346020101020130904673549298126217599179483291229478405570032114812801306146363753869072036999248416237863936255560519979485429202948467542915388606063585582743930769050277430625064770023264078994062316407452810780888886595069848358160438770269514259256489542613851143710032922908950000137548743972604382226543940304175114358992148969123138466851367542468924291596285219347259565412706702837597285412046815431413241704433983708633226306187602771806514886943915103066709187281105686141363102358689230821426478311050061785123657228981752402499095937626351139329596333404729669461397325498178008455713220905442095738452224505395227510204570136437990325478813803696123936117689869910582061702541872925111390469680065426217270167880741210448681800623743143816396690855624718382040957548023427526575451616493870297677546612418398210773202495927197207485839732997861414992543443270122051920717648931294089661986469971464550994514400666676803908157266265254312269373629081979249622520251495024705557566871837778307147927819699649492068357969676497690356498839729991425867528150875828957908909845406554150759695486511847666042768221375373910329838242656312521869701835736307305941609011377474343661426005979712802498308970257615731181395761482918018573688396110555692756823228061961685230516344051989891557167612391807831453279149998578049851982783102220774643381563383919788593725632653926254956094366712802869141814397191091568959316562444786417099393398070838072553067585364401544857591016884783382729012981929462107350076766420671579347380446524521529473117002883900304373780431210370124736206907464038579669949068606489459908771620253024434282313810880855091958623427866773215707884642321915090320077770431507836679395132540683952240507230539558802797981860834891532374650546021493169484977308702648867742855276313312203759823037794031062811638322933831353045797582253660098121355820413120840006316789491625992495854623342691888359063357718475364822677414202160245705181528882149333234656065143017985621087662820214812087412785719811902473135333161641984050002751587292792575378090745802466655570451961638836073472097023267386741260096246082845797313171854446478600603590382451877694703283153579691475943122637620822947712340445393116126187249266453708476432564728157479161493560813418380519111970089373358535257677141354845435676158916370400386195620897844743772062960899177024305540946366037932709456581815004225923278769221770234768573700507941357951558545636666352408488258424512772684144223236538601728958851164656014873941573603270072919933315884249903954460912733516700990569528829498592988141380940539771443356937157162880149045343713676288927570928902475026056442595643150137708986655172171057750614579441528124704346343103794279153224967097586843477315584279830964434652990717368811645711403967884887314092899432854413421928638660658000146952876829542864343099147904218549920515691597489417066472212015344611631882780458956973348847084964996732670770441847470345276800276506202097757007290589298850525736180700124694081840129347861286159787995411135812087801468473705062015865486894426363668521634427183672674733981493142921216674621582619420489049963636856822288853885781623078907575945239556651680244559736408475485448054335923679316938647499364735109220082222298123763880447459019279885134178690406883992298052926692210579817528485810152857931789011958547929615938592401031012898160819307838918300006878528573692852166967588805024819460848918948860022980267755294283657163715518089945494778770070763079566434374065889082692552869956185330545829450689625748483596297336975173263373300458296591459010460052587131839917134839632642636914406377094248636870284693459439980113940669408479985655962478250737995060184364521562489207970095377007623396325255435317066272035405675810002944225925111169354709350153805936390214750482721740960241820201356700234951135023340643263619881878108435469240490549746332806206081190983366694366244249346011944158426416968107104746630942757376005954370219410530180289008677360246742747618732463593747407439326744573107110891814773724156749124314996070013070939922153781420521305607700966471187596252702168402906697319935348650202324915661113721206126633082106971350334516301279424568551290176872579649660138522666791330312192449517728931949429162237410697374132202061357597859645735666288653773636572882207042039535398599251540901380611874630929230757984453568380780213188997959968287632484560616489955345498631966887470318214314863159601044762405093408391526181210929260115611356587013962816107379371857949517355718061221949958157180574485405174053172177921601596169875786403216693275138133937748472772963577470353886853481035367301917441677081716422117316921924253289244887174863342468228950952176135847222971088111643224813591606262145049344686765034872597029322923304622730695706703992641359365178549219457960778590338611502543919994977282269403406002032877153486298847447249584406470011622916129145747105164974731399615777432737066409037250717962001362594799168037358990792272585987771619944237760340006575960147149979153602235785546833272308367446419048325847190580642176753092529002329669230251656932919340397365823487144624451156009065650570412378822721456022612660616839554092092127116707676400910262678902368896438184070030638343037102556143581169252011246718027301129799020237752566277843746456281482592154714767164138640571219677711194577253278409015651342513074712645437879706964026986526211652953884831153612487839197088600270933336146901420416550581354613800520832964213506937565123567829527344034078710083522610242369365138568821091291008660973137764975269676495992356547844023351343047536581254926711280972976785546548845197078663337526451689604994478650771347036651628140286232247995627984781366670339680685513174150785081051447302720522310745668173600363127744500467508763249752328047727343327100222549211438404555168240150695810903306409981135476287078670807148779638340040317371492724507640507220296951876158805963667638724718691635681731628030918495103054455838103196109680770712169380691272409811345880437938733019604403465420110996983964171309006590057471925884168151285779520546266453526783171788354939520776028797538948992977606712021612495390270987129352130179690976512170415649660174014349602527799346596324616972931067992924080007293738746105128142586882718107920056467523830991314910983555761584904921381483787669804989460639279584608185370261807095962675093326271318775784180034509984667882329776497350817363070934084996550398931368733685518619712237072322292894528805468251323727008757208724795893715517699674117995718345564822991929899635456200129956423917682959230703193989106425053145221491202030106181268771050637244937684441951416574350473697768957394522621084661853688197240643028970717521725694068082992537154832700698222426993691666953910921782219354006331636811339430096366180956703625542069961537452727830466962970772591634163273639030767505729356228578927843589727371275892849129496799618516150396445327391500439502361232528518297322760359836787551908116392840149670862739949037906137536194048843079572855113794689155672977169359429126251182985326322077580014201348316020161242376956259292082335085206121826575233151347970542707529418062059614858958927684930762469776008159207685430945180658483604462455422962721291093669000350134224393624669453533081493152980315478087680045157633168987435271317609779236981344444627536866567883018064806656454645985130638767424848123709476871822910063107965238623857713864047182746430477166533108771776729294487220772380705296220336031286826394900149709296366762158628398309277930342842128465134968996155783040775484123645720175566439245083347331572052721157869949658531334690746221379756027505681243903248257779231395938786376835294496343931330587409264639588115141091054680297726586453848051842750452894795586273772554289084220820177075286395379537299425376088923157062679494136305426396795472998874369581856974345871298586005842328555428848758312221447994665304004544306839057311849225593231400450658169613410205526522732217037670407045418826584969822916087360225737201395653505420145899829604565863169543026873312017129003653967251020620006149381309195176309650533940081834614453392356709357132240466612584947794131271181528709098835563159289303988764699005044491881277181119925583049717432808628662552639638713237136043365145051100767649119742691284496794155267552138383465451567972051218996811609875111703657689829040134906272662831676089498534470122203414757370900528327470421955692989649062646422006690132560593851115440907645931234858591365354978395365147577193418174391233919896071863079215664888929711035821423550971316779686629505109146878026057816297054740366790394344058236257373652524307386639343286110677658843066607293249701177126058116922664381132638894573630157952573274390365753872328579077486326753964870563623897909405683880266511601467213636150686532288661045472237803874193321502115273538453314900476582784190696390090090162561336368734829233794714905099004740057916906728691676413067185755315679057962317496104813230452012840864700846934990276329972454012955679303198228659726321820903962078758480824885022437678911268119728880095111158588458913266107014406964352253806484982048513768147596167464627239140682893344515216271011711150009080935343875803941934706552297644203435341341691891898246738073859408474567590649794742402008810637019942311289636816417901110395657894770813014028101051583029802429723127135671573009112630430099991836343991294064387455122766571121806306374065038069037568060694114914533924495313255432400014695100114891213289092442644775960174677359963909192820033037317891802669798398747199798731153814881381758230155156847353557707322046636676047913429061601381046058538675067784646008748375938306766119836668148285787659586952945403453328048205971839503990575520488093489509525801755322983055394349825590045383070764988506056149831834295954118435719484216710631325174625853579515160976254644815445648755520826715928863284979914184151520858721329206298280046998711857297751911431755903216061900981422290401112592278393993725247801874574287520454488753889902415725623108298252070826385576644907262441749476535085472763646097981198750583013242153076199055750068389240186204461192898678185556695514054186734631354752892763316503898225213002790039530621019812866449125498430699164131076539807393452404936465670984224645973314835225972364310851444574668923642427347012258884953276631563089865164142027516714120310173201797693546770065199136163198572071886518728095813485389316817398530186797282543850155274189920001654394480314569848835432017278037005310231354312748757087000373084925657249882988081539941947036868370266783654681864251888510031141147421515121812227857009142298032460790287279691019699473427365548531410741421340228346459195197911003560262409336923933018802273169231805105914167113068723522286878023364065052376448702032368396584025712301295478994992471582794925771133141575378955491530727476051967428382509627192873475017924815306728756168725450583162223398097700184428411436231580382586205423286178276303587186057139143369035034017184451174433838079671760593217424310006871442428558989990583640936093511433627902912314424859683458631738898925839128108854532678412092665921577555561767746099968846981003950672629611471288024272041471716457258214002687853296504676372788504443087928686857376724324843532297445906815837365956042042156580636842948135754842429098029727462096471800785879453400289252855111314344723755852625960987662731436103572354253590890143313439358695141857906943464931227608909623552871541653205139289615422233479242817524345065831250056167099485504034674920034468976228834034615445188729505058922114992772982984287089483276688648026018246745349476227792676724354197910229125482908465466115786149796175463024192131670611322087261269519322502701896339970948576004867926108006302750715733111127945148988128486252822525970957901643313590434209705039349366244326129134371129253873115098649435138430971608616243353596698022586387293023849294492108974965627902978992921198237267099467450525398331585491711574683553899740234344618433122333225818768850544354279716074994891887701057069444779482420431898092146465015687594335759540480898238644780574718640697376583361264551751196602154914400317012338818521533186679314124581941012501798777055907688392493140601454152802783179556778070608095705517178077009372305144046339775696306840699496732331007426155792615623745118180465466415525283676401853376722376779324401326979577831792958212945343165162463833610272063116540998058119217799187823880925038803569063083975174511646846239857824703500684292881608462326703860751473824293769103311066688992683511329068061868772422562184888820711809699636376063690242289786063119868095929676382109937317854460955545525775410315386556827859813887807670634650964584948574096850248695847464527544735620639853141343428778137955644267665359595799013778095653613478518832622780496434430546776998612168571117196420149012311072041597589271534007910598503242222309983761402532697395659983848679553097502966296355890557018958142963279643865148181752416620927163691751453232753493985219871462830568875517668334677444091800860039799767683121924441116420934813452436123256369176685405247104389288667834249015725963031336714733283113275346175720795979543779699515017716984183723378962637187742410169470838358272310688559225684597273040333464951371860008361663697661233414301978656557872844333804894019462452382080087894617219017248011653482754775657353366105368328326621801534999856852824219616670241954134296830771601950381161815527082027132395117463619206953418560085007601243207792416298633922461258148610879671904491222649080481858774629582638308794685166438058157025866646726235891012990913679177320691951597172050021047089955449506023430341913127121676845105596555493163568740116208615493868876946749050081201594860312161926079054604341112694917593947060871326807627013123164129589443145202224930593776754442242278111177345273935566264366114280600276084319029407070260917440208057602774335684678294724693177089726807106058256424347423059748338539171107684306225571840811596141325191426124468495497873957287803858204071844580080711762597481954864761557479012442887408174807884177209180695326195291169437964349370502101435362983071972568405307314387169475216864765844610630608590482156678311876231691703440778501075387702353752189504488005047044804481426213543224892767372029530256641315346216847528802929839999775006331567982206986009474150212987635601034209211201028226900426242093293989072243989412522421430594184544881154434383412757223756074301701286818616205989475101511007742246409626458402215555957843334724357830928215034996484167353671493017141555635264019384600848175054734233101964883343087626457376565073507887877356834339598991284842326566315502562164970428885458895147045341546673351173655166584800428111738600055826705543175478579846690400307347067826012347567431861548844832328767892506050800365861551649467990756324875882630362807902839371480919819856071088566214218938834019386802195235432942737097632504933622427815734120545887199855685214404575956591893836094826792250348292389766861084709470185864239649878659780358842498362879847580119529730494186215806747969354855648839848814625935503613015240265389870602603157129797714443150075284625645008214254009468651640501639028169667758764680735915524974153990030395941848480620568843245526977798647898117812043392580069286829490223969119848427973775387886109234218567272572936171344701274013999692092338602870418567558431328957570451893779919527616473775761559065627337033094253454923211831493598940719966587259712344536906027267644798915444101583611080203854487065584193676351685607459753788981116835457547786046664880654286649305294904099355472658358910232228998992318290876829704889445590170123444867120208943136417075922878184888738785485050661541559640428234820299943006567664357078757675893399858946426536134505502044578853398086539146695408989134773227813353615502966528895703558567099707378161225717858509700361633841011589171272682826531790114708339685250582750743361147922539124096359427830891461710561447271338119095143029188381057242094895391012105057862949264969442002981741588305785819564841364478407497564846267136904068419308472515509848607158078662577667772295613858468973804393777650325024040014679943308068943724611949774373871656930107296405522144318631158399374103416209072392425151745431987871382005412967952011212970428639920834049074356506744996394334472895712507664589416645563625276578922768233479246444925489208467521274240004068974113294771511794595266001095265171637401847060692199461676556169391733682513383838597230642131275593870599141849408383966492858129965022890289654703414533731782832743475671402439614859596500450932355557874159999335008647517325047298839640187690295953923270091101992128675848905266319088107393739557697970387841385336958472850724984915570461029676866055544071997923924832306737757926109945404860503717575511354203773853831446718907151769771529953991832381526541368505419885224432747900654175896871840307981698018778416212043658867282114756843478202949242618512504241574049141148409533595847496801531734836805493893249241398083194075284462026289930012829846439946648923860846561743817587631979934812956356845206042113061268194423301562809035211635148214969368449970413123605363861650963174362233016577224362506708302290795256321060056161700518198915008108971211541059858582998420096028891014922162981309576285595841669159343904264450352987230187753151671011090097771537300829180488431953997597873048680768128560151386834801807588632785660828727913999131073182249473822846795032681331088101469385626811562411083713046749964736967421245940339802923038932142149780587368569048938974425902615800277491015185663645785697125102763042337705944542445606898054455955451288093729745638203998199415654214375402234469999776746576032720520437862188238836965976816137984014039501191866399029641146098626336538581573360960553904733359330848414213650604795598299301330293912652363624831083741024888639419382088430518152572441520435540503693160073143388940589667568271515795674517575566475789451563469132766692556458340761265412671055701614044439895014520717442521150895001041783465723884382500055806746955892250584267167497021472679858651280556661727575750246071935533818999366370863842444805700166600928801212312834308322954713787004238488702341244841239496286884527197083514043290112449139854167354006938949844338769026737053906175691615381555346051169474952612018040266350366367849898136450082180615136946192292229436141046972662702180595511895568841348346396435014781729002446629659127129692056638704666618103433933061045097016112883340328577348195014029368012833057667071947867514618759804374030615976439966752202367818579992806395789267958063953537896525238425316702292385467253534767670685260855755759729482845538146207482060605311043874704497421679385464029507185878654038734691533739765588194645044384004209898140981455777170504847479688225718877659937311798672337757761635961838061985106778346226985394054026918153000422403846810044693827060370516666163594683015465988328387904199424022039059958180501156434375112615938326796758813728004060362088404674356458014626631228563245518639731669746961810271686284114663387033392699922040190395540372581593179233883543309799716936170226862161331116021101521879335244844314729016640702709216910535444296371339811389636913645964214874247719010827966909177066058037276261247260143502492768368508207184600872522604281614094375050395112769218265224638878520536913205032768808872428204128744141498790752852688782363656992755532805901546197532219182359801187492740421025533096099510141819763626702839213761543683161218568524720032913536284553967873706856627746878770453410260822211478535479282716979582632740128745066967055568602446203190298970274366065988851208279767785299150429841968394341747217329529505676198731246344505706057673355582854230290384477062234494289834179127807621786188604200864595611086302698453009729500743391470410468793327668618083789611938799520902064962510037804672252719546811215584585076863641260476647365022431574197599438644458705022867183763090527602751938415904258348296583761146562510780153726031314193235713676807523220154641559164151546275432511809344483852032722188880087671297765928436143686310711987768341802998341175532520082194265775606220826344693858058627702762213399688402713919515993796845030870224576232168963868366604629623484430027427264290644207768309576169430064810287446529887349517162682814848853519461709734797216270005941646363677972050210001160973169833412390356713901168571253806525182606020116482421625148708700451178481397720731459460109956872503324923484804023124856470664794514830848463890602234115814276318347939237234342528572293923087380274207858806242999743334055811706926675303467954864409244883354092176855057679415061345978462767164488664204654420871790692781812198648298247983749414088275825578735870451754053049978469784969230404536239898914455174116043053609611510021719770585598392877957195696102888994238860830900035187912899903376249305235721942086099884906004258097923465988419368587782095977067360111370130515996834652564256058184098862147787439817497622986491263752077589454925103464820016284032027449855978566228791320174576321776624415891676442207944936407430001636654909235814273089519314001072387046441503948670420082561309239998089821387612844556130354702138812064774602444797279804075946418163368396687430740314071173444622067688762786586491066242304160952372562645794065969798664816475632362596081489889561924131344169138388950890916768989563955076114007621091764704489498749095050451499943427027593258850231661990661929944616022106713320658779163194091474120683543819362071792989808326841877886926146085670587550314977475951229721089765098764750155850421256067507635272324575661616102433356065063391736082193930289030087581874566777360711857793054757990038984429297760351435175698701918148382779211104094591789513538707753351051324335112500948911681614316853826908711749161996470749770910092737006278777348343593124984944471998412314191695782085103121800430209829511951649592454960029340674367698157597494280701551283403537961057386061258156869787139399707694909745911087307794798710830388674765072892562366765240997365800207619456899901983549190398124754858913264222887691320999442719827261736732830374237699799551017959210872888232786093624538013975942143096137511374400046533188737127714205601921020637428231997896074609451657261824894673485000932676377729421116941142275748814145519796425287210541739449001559115895066760962087762090467962640384066778293411947969157425918758062574743422898867093905233597048636328074093591254948089039108813662720102203587036779137443617364109849496313961681588000032747389258822714161752078530180421100805039898586288236125388321368916932937799372271849959975531685036936731490468821750917708532805284758126694177758098565140432870116704759004220845209454585684789525830799231067733106752238004851771417830644420220015860605357467279984097850683930637253813362440200917453381191842330224814548038794483398963571360413818912385243978998036184082501962136565381770122288934564075852805016088258485865804165765265807479176969717808859229772360315033448883101496134068495449851956791880988376174560291986945752150463162949607977549110648688481282639628559863006674148161129001143937737579118302434164304283891987950906139756559156051154539668880067755021752207282723119872254366088311950714876814131360795843743014731541142787017987679069634143272908985623957479570242811803152773231367442496055554705618975473170463839349198084781333940577464644854538543867927403813720804011300553104073934292790035729467279600233377640267570117387648619077459972341339294856731636838330219256950787274885976183563300340635878195466507683436848292054237745353979095271723824611465065580548847428320863727461441687804268141655835357227458740278280295067111407925078593012591350694588580628071398565703655518141032472930182733823508669143816023924656147155611587278809018730925345944850265759331499708544328067601863785657037259793369328108126227823337775091411253386854239353952517964305343776053729987918670316128238663647650346990958211598686434562847466204743681871624372141369534806893642915428206184595489434077893476763134893437602448551822125009099894155297344675992857394154958655047258497042193708602101125442077685828588823103119256719275384427387017563115415500707456328472311616171720436308784664374252279440919655003047073470886686228653718662067863481514632054054171572946623736631320593838821102012180264773861515443894115672217149056884483191190505844502974070300870490992365731959830347691599452290152781609853136208722841943993023233898927945330136469188348926621520095632864763824933023720571136083952505805369863564290319964817293854493588049756691072158564180107269592857001313235435226876017917618221724293652686881796529218278721225381892677388124208405493546079908827452988236688110333587614081343082978853505808205312054888759354119366807367963807482072894388693540402312462941713380572648406472615402124739182281326763698223367103616259526180727870219889378370841756099869585418652683246249730209418702631873119188611647248091165487047562733160572559016957445198121662383358226453668875006570244835885391070635201906339204867760266027823322976848540115248989649392252675375122224023867731451300812355280727695161735981996577041479925516293258992336655861257914948814382420485884425520816355800085197475735057643944849345632951320535127040270144235430948199213515106498839145663058340851099391908641112347676272657990864982721729066353866074449219956176652474633823214687200838199919879263632925553847035831271328970734489699899565231953589532314215469235660092306817086551059756713400630463124066425779168418820208831759308592167610075333644927544111396860154407169326497738380150937091195865897593912352984733520532037762770168516470272337816767111595766639912547502990910976336830958278867319027156395943794711666599379310913565437633923731584896524299748951388376441770167018503012110776478049567578935732658231815376482063729012071500156489202590414462435958159684754652907613859337870795409251051958475478226025597657155847166622087990662460040662152707132949861413280203363124819981188503770523384956234321926506960470949790585012891546282539318172222062816279824834890249552599275481013485625844239437861755104937998207609202664602629342432235575148420404118000713479213373528835336585037836992476262217396025380525143673995029527493463354823122583840224238344574750028172955490284009527501068549567045688328366957928522910777947952819688248634291875463530377722773682815478239948054998496413048485475342580179284176666993088609732765847394090503320722676661339449830023706450259415315454892212360080038641788902570635583158745893725377643647750108821473187014568689967219443396926990337817305732809691590538169834244149728114592246341639412789189175237920913041053870085667508632222553049422876227710442388381945340090678057848536053617063784338959451326135716872134211380372394606459749328778509385419589276328482103879617845796728464115239734833400427911027206480614142762724103756610414033337864047839934944078909910263447739403871432814085558478591534665230285001355572957900797785210334021402359547047787125748709316923264213734119388276438450380933939211011295980468983143841295525940851686189788922112288206688958680447737580651452645788088014484869486322831521828815791338744564241494740691770908332388518488674635396098483546244180660381097116185972290981765270643182706221807060322658363762990119890955901381128939096198855270626610766701058814815068884294472859404115022351006096138448713756260673298537356740642081517320740461561804598113218130370278944532603670688028055131185192033811772049931409765446360184008854828199111085532711106818094590417673248115298743491847681344664677496581532282852236631749115810557926856410838462961273268131662737251417400947103708180656068043977678659401164259251030975773581051198809898509284375231292152730944575447555417496529237360503879126033937692658959738435585754672665476542775603041473806986274746175539200407745635246440070160029120997608424102333236548887527812075351210972537619631580810338162617415984007512557959103203400177470083981654223039676811192111000781179774205008718738306448243579241416420488339009791957134070738539671960501388840063686876074017516292789842927671005208398558675306850142522416168354630958165694456624267064774819413542022895687501551327803487040233996217175356270861635710307958885538785407386091722456474888770060827140530007946085401747394952274089739863223215922062342430345140045230463396278372297773344782226770023117216063774329208847308058799643140411727170855264893043476840847528928054961100875679339457492774894721489306414773316538929113535471676894386079686015585120478647009208241756478628888314175587801594422867952980810564973262093158208226833713855898629215340714855080258107228457481775500809150660358330389587739682550532672655051863679270444732757517260955099544678034579334568492716326408506902499861016746551885043979718888582839572950534278235442621428148946091727451188288232228279388849897223395625614390851010234989668251639607161171400956492542357476931901591551015967457151393986595921889965491234663879989626617961687767055660949778357975191726802442994234174537769658513894589006576152311040263434668209702844127931045686721648689950165774261577829340823844282256800097034406968879905228302882761549548916148742298745797708495140515404645082878821767910918472058534015940404321297055638934252388891815809334671541265745257511077353260490610229195160556014910818895568793410277198289338285976458843569484642654502246402776157223396975878042196687578385255907685183688679757725792044946388141492891330862388968485576365461680757558692229775071470142954907383751867674064154439342332535686745669431404567702792034579903475758146903354969393071340230426332681107155232916701827769763596163585894281964650810100916172807088261753976273562474882300251635844759040728708170751683498680357680215286935540016027507408403784753068578246183763355362616724574535666333638436815312748668975182960887818711021646358429179586022631443804991153722739594248550310143228786915907507716952110231460342844671937857725319863849042970477468983308124598186699380823245891315243485011308674025787794206086309200138518689025137816568193330873151660155532032807436684930875740432810551499154682800845437264434452004297629914411295003293311165384579463994542877169727148719043581140255276307263455349582000999348746145788469604017423390102198497948847682268827715040998792388508012384622562427373756512147180553342447457435584535448977816133001475868554024723627453394422903729907794470658774847003605156894753696714356465351297413517778879856937672515666512736908139851303991333364511578801374715719181770976000507037293188136174722576135264564778413222143213143701915565209754051555561841601984717347156664848305989349206925781856281713324430106707678950775013190583040696085639679511986686133244208833044370628425813776697019787866864915125504656004905158063978886310272666391313112922675813733936936736173260708570421702820697650150953095943507616070213885376446374875172216544476416721535564205459727141998146948626679150876777554107599411797094958049673818562195283822689862978941040949438651193203121986940043486793557828444332904439946101507743211916844289751447633062745575610910519959455473862152652116646259762513124852581103050100663452520858069478283955479178673377627659198407541286053476540238317098289261728750836658798326647008948398969580266902098513085540773874859246616443751245084118303745438616245475096513747296972603137119327879395093918028113916068093228791577912973961603967700848333906571692699700461453194008597431822205183200118842831948666499621887549649955944073020518116738859977025188198619898114019337353776750683684459421593722713726913730373610360127072569925928237225568332734682817433058093059020715008120563383837978376089729953404006387183010440337853081464338512481106306711265862119937727022787115113189996889978698615186225272845577190741196629361448486237179548612607972554317778626086140693240584072252145793787540807784016792143842269561707453463106236495897551318334152370189800119687453282069047303144885440005154449805216800262570712981314177777496296086087709619422999273238731037143291693845851061965033950701718710550424769419871873755196175239753116409106243482478421485555616249678608100605999301992742430205310510436805632678587010885745514880027186476233909057952555422960512317592562175695089613174564821938908923663934810946240853677660261381572313984028910895526206078644585159000116601902496088137415858453748914878607027248598349858220589659837461712310615608217263732316046428457664804933431348733720142511838295441229638537153709253590529583104418894537386531241973035021806167897705504367344978139231026806895992175076296672869301507581304483700245350617966187900533616111898320166015788898897576729723475543109995157760134295340203230283558768867920145186854993694515385456345967579118752776667723962124925069801648888619977964212196126182937498326132890648140450334102424419168069839755576766712741932434172552224747704374448113197012535948808720239994202705117703271916012678199260590850012369654777645653497530425196641996353446141868849718256966325945309963321273071032972707855681821587821037146784625682570506749404573212960743830903197354688447366776907740822236688744853456008049980597244256258578013503602659783478252650297491184398497675237767103860036688485574960429174037043679182145668299980239410921786278421876935395669473653027295583587811782873333175747790355329634699295958378540977478064665609461041061969242036371260501795717498394557905316800554286502794113179661728526029495378081624733435202032661548569992962855458476958135348722260080456116821713345495772210769846408464703807617230012742931637602199857942849107817179803817367068440750919365209981293091104559108437512999698764289156054558231920744213584769225228360374869823024334284586992119273311322382513167256988773637840735055940402552226896090818245496426045110263619472256605901221366422103144327910432002617550906738543124386356142843214318591929539028400559235943483917052131294185216224906262987439410434794120047571626533638529756569996255569394714950248301377464143864414248416795904625747971504540367791514933110162251444060491981463627618249088174709966087356106571229779593214353249354106030997557697586219553407829725808796885775193414548710701830851813696119250585922228435980779342386138736547058687098727395802634754637853437638622707749769767100070576095585026036252912314526218558597065312107034095654487663113596030097914236387974547968600468956490212247999443433606623962524694825822819461320321167632604567226484382237304779900395001953240755951914580218991217274496523956668252344101256063877200803969287249401992434616242738027731950392403500002624801963726898679991972277240069082481235112036993616188007156694133230432498644056620215129701301681937383089599653948974231404244734163100276184871767540247122777482109870859081245168959482665204593030364501866091765939118884401534927644457969682017653423525550102663260482417551717389367150135297013901456876303302522330820855151859131531255381360944529705575391118182020488719973771902015920288297408397267543759594357472635787581063427122443599829441521125187112428097347986570427656312151998573243038410016606526995154545371626061567821229761514719467749721801153906685811837315163948688434946046192924407044339368061372537611866872581085602528769052997241650072228574074515082305632091579353182982797673565573745737004655623091007082659030077029891933845118399452724116973646615324324138293423646772331987138540689584378333966655715648278254778558063288963208828012892850383476469628310584989604852737007115844003905482504535669046930709320138320182493343579575219846526807980189381019680090435771266776813075618684319113052321525020338150474138601590904859646896062033156595452090201184039881226207003809701473093309324366703333764216317098267073586075499298293144915599056703200022689224309906966791639417740026217213984174588295048069611504307062643798045670533873398998299700503382675647544756596524154149309248592626907715120780955467864221017092409771333126711943112602910633883404199815011927213567939941535588750319054848404710453138165235396013179578257086780401613042913796919284234246933260240699758539439973967114034031624486618539734915674699383322265136402069007116062035528521143163116112319625899591079870656526273415472455316060039598337524116697469239152666120873041920414167944699593311572656801877510036800186000745193830237241984070630356114984530663638953103389179267197684048222516274557138968925804377330149160330154325297524439887509499016709991252232200962523144917980929237946177493517462105653442886939241370856079605855992929682380711537106978870853163789968059813584298951356056369698366742149528283238209485728846446567507131516201007983095003460459440426547118482753738433654610273824883779762418097756630127560981545348208289861029200114582770672885073002592738081634328679209822861976569850175426168477139983558570530660431153934470254560927119232142608137795132661537425417531415572570353032166238551272916227300338777725479449663928217118088494496988685846526505741755822988498271876663491867979473482877717136676625651892804736551766493985935641528078659141993492460488103339028715192124146172834783940762790488322647476397243717647101363884590660003487092429551381897837051372896472610871285052842334964483428672260238503531810603321202297225149516854186965351199477495664851835512870469590829618690029971510887844899707251238741917019596206774046205910678044271985997329204621776577718284119348707573119926448540201046513004757659948460937787336079827790118346685608710692160529941072072754862417677919339266344699246964582445713136078708347141700527614413211139444548639555095219466370038037244253399615561773783427490031150191053915164182724051177180278079111072023366416717486819562831576319193568162367247432320925697403358313097151127678443364328096704892642992970239693966112894895156517744507848060870089172619959390367761914828173140530706891493003428713933639528778841505882754843363644156899681899012194026288096281907297651261551146738319055906267575391586008242904254900609906500005491243569887741039977922729931685152483567698822847273636579218521954866347079806939638935721464130513361051599927081913592111663951886270833705366443685909449971590154692659363124793763512643929361586192836070445369585286685427253244795859142169432142157879249617488470087410387178131894880070908583870437456632053263932821750669739082426880390914738967680800564940574694197999904276611220749460462272275101519580260358539382162444843158319061582229384505210112119612618183975055303253145561488367455784048183182647089079738171268914801607217719837576398289795555951384320277395879778507359222839408313870092737189594056770281473621717496658380631102072622911511359812610697024770151863594587775840901949421039739147533729902752869649773163372369632374686616946165790182673557792950374934584332363058457555365732666035048093278692766544880208934690395897443929870945348775426695837835659669078036047727958273321405216653929190633952586983128440682440645464863488442429714932708796812772181556442783308315674452259195286332233148189261007714326183190760488453847679208853287806100774478057883567316102754823477327913183852141364930561395509205285007735412239319660991416973638336819224563109893375695393421762340571581737224093292115955384059773150872437801022539510423777226874996667226683135782029361508392850514700760468391258048079296460766912010337069546752830943361522193599194662277894090582087747938801291604825226982181490135516647570370312865633314262795173449115308694214263049853951302302462096775154637435479212733919857113021520392270485478960932100494224846248446856694940684295767770816176803070380768884303445222604251536186141049241928539831627977213764787106002965390588920260984130049483034631972379701833494779142491529063935038336503936207320806879713064985190619898331356005102786072172313338538356806912269968811590709847540155521611099557124993081636250842605869610909776488099897248811896524983624750026141597333637164379280726663668382170776788800547960373679547764374933789423728163489688006204575748696640682396369950805028074966188045756265324108254459806636849176963161954225960534095760857563005852580470555408706088321246678829838535060265249369572875712050180216703796878591867761823478183202330754592599129106349476111054549088322947865955985055853545478563619718760484858021036665553562696755235355691303591476752284704596982283974042251502499112847400209747799886763784131369667066864178243485257043764455321323513919579556488620096152824417756085757914176159486616927579616962638328774209111594550212335373041572362025623746618123287721439695694493577408633408287318400609641894077941992408499693726800155298412638146326533875729996606402588327865188683105435527932336536802530498576615844730413018398559488201038300624812442948972858959100985276239844113440143759346406969306252032493054274058901504812353418004345145269160030949801464184332736993213379795608162838692340859050770288546548663884526639941201814715619185837957552865328367577242867198922523013877899041147258922707718136164252867235503933963232651935989012265256350232557426801771943969976214353018111441146517725214394123212739260742199083911915223218340789873848270998274454070178055586386026154121253141084017522161327314068596900777256193010003818090089218358121369743570921537858822871855644030362902060901491577883856543027401065963144700865834612941700270156234625036648867775886478921702971655232909056678448756680181449565461641918231759419286001886886043332462161262026149952848490572018068478853530466350142604516383589402118676063289976731849007421050754744670929917772644695706944897682436421020860699433462186402440866019308341325467064736472570332911521941564509195417035290805025887420602907077205519120567666366674183026243619827567092138410186369372788213418666619818328575477436852032387636223524564243876891294145997375216895060269337584796712255581793449468511416728140905521711497578463418300143135171861766561485082106450764356271208265511476017496577240170465218333843684889390211451074920853843416687780910777558404267699703121449820302899867212092690573556451778343907773292331525031621334653133861290224360099242719974736967675765171058124885075855007472735476087914419141565200777892045821081255515185206184531199870770116322611547564204230959547081054200318913697333437475755105845727107934846129884805623320447561480082791014590003150171546267766376440057071441038309728111349506738159434804559945792175711971516196446383360617772673386873649073627583574239568987527818818325882356824903393936491624917610079787387116781582057244196275966470301099231523650547865279327721379291796620036525544654619423785023634749052237205900429905604242940035167345559882676532583429458416573335601914982055382509561100583671934726541692478162003896891423953296977089221645585249879025381794731433576064046862856343879420702271640162936318647552937065035067311688869309728680719605323705688426366304318027417291900405276794718820563485036920138598524655286300077516158114334609584535461271721670783110015076506441657332070815514990611870129633887217939109505277553213232408789595881011756674678946747467757224479882151560364769173741443707411705256276955780873028255098159160878327852909388303510760521551574796782286692777835360125579487208533331498094419970203560537584338353756239916501416244162782299270167902632514811702379497022976711237403486719592458098856497031302972369123605529552288439852796751501205017837331697472361884213781176144912006337677200892692492128917944953126822471083687636485430639710723477041303839692711899526638115952498327827210157849977127968612528607187491980478119772556942725761851419998302438964175891548282885802741917500264343293671570985642969224984902092734021767071607490911545485057653053657525789655127954606167700959979086753503965572898702125095700081120395075921390957489684404169449198768985340382570889244361800482495320148334985298631891487171935166722752778668968389237638637463445099690437785317197958287440302707449154867558537648001689016423250563723316475109430433993632539956522616527699522299787575008805882837437598535558238264407313845407071646624273698119326591882110284437915898662990085215129785606415096101985131289102479005058475221376467395302063683382868105639163837441299202019130714779153104674391943866140328846430868752173035706656451428612842736008455044914647213180878076874781367175258766985380081068446058572940498213367034415393918632768671165747850403354088087934971672373341903145479985587864707028755421700586986697141263000790961883593740285767139452143673978776604786967589262772415871574130245644724650438977511112786493648817533298127393834279541865974263873569917572683996110247082052658829230559180136130993684811678542777899919938154479046324501066459106720099202828886809264328055590864246466833047330375901598002183140223254250837514052439489820204331273389129461154697618049075794142632803559665321118455018350942456566032385388812817209430054904797983006657092109001793311133362644664973500233903746327234477432921736167625157427670153035848465676620839210677233828376195202594370045249411003809372770492502814375221482186823995788346689722049969287478467408993998406912551973368251124504639547426487045167826461498065522038314338685768845332628521638864750509456399107239586676215967329038320408467243296014102320831912733276062313137369746727380995362752508810559738073113976248668970247700419708849257626702194969031083337265558813430527987616219356898705975482978775294222200192762842245986264304817005216750027198012087263918440708386910461969474064269769252375789782801689856046770351487530974359954632226693021852682382224760026696774293921477131929750289532580279622435514401203393074592222481225826252693191554114034612231928014736104598456256294351498236160014972565379796280612263962053113024378327663507633122276606713234884294630424413934752384977760349729434929005407145980290940258323956629721489975470466202437336222406431783444409060992659529561807663164167551578224463963604063848816943997149827128804511141157213641289752387887213079162298887721288498707355310525213155281867772070896647979672298803014618458607155928736117166193469779840507271915386225470805603908062555570627937235618303748588815193228378840259918965650752390246477685266267666282916432949727295365859343377726615578096080393742710219594540595308037628679032998103035940407938608920908556410240540400835231548845916920463858939811645415030764992313444259428442997345866144966830167360327789946748492322694471196583777887967836436233655204602135312520883190523920750957881921049458846306911521831186037373728677320223102367517117266591745867663854104929776532178107137838020866925815435034572562603375769593315616166247488353642255996420307718250705450196405316572618659062344701993060377949379122120291598552783337479677097558173797175798602083829148472890900009587922962241195193327544864845436868808996725885539633119286993247214976647457853060731894805174691686420325273110876017162806419052602750049970474423619588443170586368951415088672524005012679069995110434690275190436935794625248602803457626082731710071936429710939497081843551344000804139909254851504548969565473754237051390771457566896396525313634517644655279298364242049870518499740348818909551667360084203282472203295878433870271327740873852429391270528579367360525673494153108947075950044777891516852407493917860609025610432350080302022703882782979310452822451210892110963081426755182086068059194119293047011030689634385695846359982719977774285181879681084862383007329297244477385911759634854450217217894711693489917818299292687189483042047906346964248080443467873436086716359954834810194988921681795497649047835069945472953432128991213967827331303056457507834965106536645800231612167359169679005629540187711442899229646578588852303028918304133698482565830799493698675788636743406846459550623760115872032286748614005685692332268385597664190267462880598321275481581318043130486555792492688987324949688003362187943974528595365127163819678883313302424338598801995694618083571978815893628209874042279252503350920292535311356295144363020912361617759002318243662229098148932120116761669393937658067464943048960920570667632719226358920952703453122484364801498145572206772884712787417356676188267572111198951334130064176053480466593771673851078888935296811546003154727085838272594201637927834352868414474143998023648759492125908055951184222831158536582243309767683495777446849375126101185241849211465184896124116599813977795456655134135716384410171185823065518217132325280646883431608949980212909550610262142730236839790557628814033345352986772279419845934338388182532546002014186244676522125025905971097894224118417375490981078633072372926115644369431382277569168926007445070465638118831651210778124531509125755072605648013004290342575667027126568586535023697539540131458113552304566664366314767754575355505057838222912508542347831329167821385871694303561834189803032114980462267997103983111692068609582365938359330794964410496675871625236615217833149347410291861285973916683555895419339610240657669720823706749276326836009343402442950471427723223166780321891593028391826847114167091225553712253102890346187758690242793187449352490030370080697427341651910913341365424842408606486584291619972908727273708630851850114897931868010337374562062891073261874061830663819607360745497260585776830231786539828737473735395214834537451069723873728467588593978508836295202685784826377068378206381298837934374798227457118268952748567522498030896572282610806382678663631193219652564623142266321718442161027023164623598654047820943371404773887951878774412659397899267067448200689019022767913383028425284663460308497226811056319343167159471668403748280653870986225858609294436722270060083663862658711493804459195377241560201028180308216098082845351746229573456372911894447383832869299009756624154439318387578764548514030977525247813215026515358184533452533566891700974605644526449363509988553813051992066158688275871437535652030718413562441176347675361976241124551320898524894842472449639175590783764229142121961366084516591240437996177606013098995266128180893427410834129993332271261384388778089340974169865132950655088811724055558441469750488199319651811889285037784006486006343126181940950022506610956276072079467859141851596982308985786200476000512520039093645179072778153940676347896724959542292614526713467567965588753629364951567325713531555663363864598553761906962428589916057334795976507779005464146550868457652344701989280657913971939998606839526839798629796621116210146622505983507855977091141800082463325377309471249219757976832373348634112212873347024622569483979117784122843036245084729857375410544761798783481461203622402350144158822154708459277538958572065036478202972697321073413285153907424924187405902709531549087174261449275017312047879451002863834666318816469527127937686707266111201637742962945579830248377016289955227879143358013114879058580527177823294180638800918188248789198588284698903260481458696957364655212971234860560907121868549602493056868742959969885234582482658711562932452048964115933261712902117695221485345196223198886602649383036285738307144590813813103104847635721545933118977487552404212897006400442275865774710348725779504057867305320790691470467184737389816937567587854773203522433831481795147893591198959849044364324085051091597720997268027165434732199988124961495756597112521693468757720837916969676980463790436226728073765343106583075285561653042906742301456227965443145505457435014447877765648300321311711054151956788632931899075255346467553995641680635662845095373116400776674509380630051301799299023922589663923971201875783188182744480531026677270356222454731164949346366970161340098351332933328835052396081633173724824861540861919113868404812701998707102468810850771879732995913759623799896810142160076493431705492576127102187263518247858361480088960511083135556633105912090005283289633385140106709565572753463326682871907491463326268730962919383854612321407237405286270510023708496641858845807126348296884689146261592948883209085776795376966290727513989422516031768210802857598092788070894694554346330793646397033580918287924765884741566540109852884799218176090941499687428915000379591081387269037014869693519021488390104470375063759462797607570490383859174100528312912419452459173384927681367458606599914275282587900014162061576184647445015935149425230151281685372401847951038527397553859057927420181163129053764521608910623280202624724274083239490918065355243969351980036278069811508819915883287334577272045098085469197704511919486546323849322998629296265055963582402627467217259029718250388580371619053144485852444752460853716674594318516485888865845928031586176767369383939079423615837654557411746699528093136299850886346147453936308422474563523763154068970965999879109639777432165841677709706544734651728392204645591829713517251911075254766062452259457461483446948594713601816202810507169381724320271312046306943645192674090702454599279386501335751546871253247881588978734176458101718538638256490224782256099243308460317623793574005897958925396428697401987661239097482842346027127028413685123402298025617993156552005147094910033864152567339048245818810277168046250135062401837075651886563165091950347508270129424194223302751753506349264329777706857492910211862797624970737227068653022359913718842138042023829463348272574716819017326070922325411971581604335363745357051684339500868551193564233685724939592619112127510868058441346532808247462711457358301849526724531857557687707713063645140870161135749259905906010925587957981341695355639247563060248240375981650628838812620412639008763863957918201390203458763369395074216758173996404281578279319827719547798752744729356939084184762712938212704951394344477585169361821559411704576357348684528071056484938473641100025633398084520922723049303700411450872023042865360031687679644873999318557069965964244019663761604711181999388331082296494106676562452115212835284674952452754722397817521615738303989916948028074604270534853703622378483089107247618813913580230677420648104576961340597458677392496641473622091293747200813036438791360443613094785035089656228908297648180905745094505901145794091533411817155111156923069845408286033898414688851491705414089415667134846451340729063898754552623312345488026648994486823894862862699261088522903428799517517128872303645945496881169245282885869018186117632914677099635163478629748426374711157690840465257708093073330598718977339226510508895041875055531657973686847437235473591075158322962814549295778634960588504040518661118254037753168135107208010469753527403872236000118132660140815140477295818804535482903256912576607439501809858769033612185296118203238903990371313221995754330260532836060100855756938851523678283400748651284208045730017910827640768964323819131155854370119460039244634127612913805343747084562188214617094381402274407856385828472880568854845045201892208078604055865156337748265866000270316049215551732086939323960043993112838206168886511497797732948188421083545671889979225062233527644797075495919681748889185329237412453849108793083407542046446984931913211975424691716767946058878046471778994224874371108883577742748119429427088574672361664198527999483208255929994122894402673883117739830688000922820328745347536691721116821353427354375933963978399736339520141558246638521683084405107990421116662799557452646148452290464961579269484064181660176485980177548898845442590765784481957987449003191496861751921496744774644144882997478476853695533755745249973719166189214555985099076602982737468482394821575376049650178152359708172688315672424797813763137251376475995172975410108405024293557492771591770315655888136745837480833083329709267419236418080499006530504172819454834501337168665844646230183618883445534614495781547593229833090194810488532399595522559022733039884884223696011095637687452338083284549706157765519221686370572478968841898964217691063689934549983911410332505977218644321967237674105263445584638370918442726359258687429916699954345076132768857078504092882467799860994262847581065936067167246492637992264989753188554101598566745645648102763159310330156688524072778110752526636728602945298367315054417875395512674945034991476358655043627244907047991820270925840467460485173979424808305078735426459391791411860000335105460730632092852853942052017974155543824677982594809451163114011339509245865058479318220691077694098536910271647116329144584054431348013403250805757025316758635983660930576589166243183459509688754668416176008024284094584519751955106484272994504298206024792398447598305777815821483775334248436950149501071387089477747374254563097087921163977262699294027508581699203437447609562078760028072096960977436621220384817261796582639064113026634505995735018997030031863158375140355037510403023428459267776982658302826914253826167224197560928201569018654824591439634162750046814620105101784364247417203595783944255753723251434497403081261933157680411203581277372971896854337939069217100654392048765739382562131927536162980384533696083851165354663865632894237152591941385751802662268325515732558214432650859067427683851171397429506765234332261930755818460254904912855440213883736965341634359202107944983635556180787299468049365534493743679640114417115012642591304676504651348178020577092444581322782255411834933012565347434193587280785858370879378932934152674673536345117689166847587194347117775008678651748652501750028083513526374421375030895626364666545266795211591053886774172297861464777645425774453715772758087135693233271352609911701065621419253943539485316630027797361685485338732139280833170929257784825126354207014996667113026122649560606721768771525274933673433268735039791932645715866702305203715727470562505745582748408003169761755910997973897981137063593143973532897189093746538321163768956640234867366115751860923574805002384412625566351913156701016004333456976829187448416241125367937046848216305849825476042767675164119807445490283927261738474006468366357845427607182565395869174080598758380181941550258352142532803174252266362438294459653925041733322918853166084439611466856155866814615812184204651731283229977853149110982802320616464212680700489712289094351437624992567305895937005918479449593036031947473195133118700227830541881228753458048534425381975725095682121744696730324531764001160780022516663323095241413665241064857319311429004298691386049829141759853192507333496916321699938121265445284115604861348126909446615462799398900144682321329578170901878745069684233661135415166920265102773204193429427052494242256388298242952438035284860539389036612185405798769564234499797771676005234637617864244428545946986878295191568526052899276535266557757789539032756482916892632140486191349972600350566052474513533285193185391013814282076306700043252918275891426293745065546405746324217971751685496167300174777830024984223484981401237005961976131502528138798344549011966906123799135483521529056129244452698188185543199575175811568520400719873865063921306524366088653390334776890413074469071437687839191345303062109286040589515095855690821932537698266665664144623606994741077837099401481245354233291556597218859249377095988538370286286086829656469508633341206217505216291035338626342209152017638020476580867522347160303903919423119049431802082763715640072169711955156548758531843141705830190803306144970513148034088225134705073127608420547270096896032829822651652827400903534486140525760891081834782890464573721129994532823767539676304258026837314078664356719384183547400702638211773868860657804004213577769200032674825025021875149667969873687813207250305419546863660067417357549383684626800205894624781184249646095719244863374595986829330938189367249956055231598970085361874116375515629225517642387558052295865420189495452424412769496826126878551828287365337324586364296993691610325060634453894713600481394737569312263433614920757831039085258009144491059011980555492778636719081591687907524269326369938102139287707054858576731722636916973118067486987935808905108906354160003014581932045088828536432770663331184615217875631584424041829471416921295657266123360118159519917465849697910815638640382803361272154434071756408389203914263877142673595544246344384834774284663688749496465768751680107193236302473522409292972552649337944629695742603416207194465099523120947020092694289613034745824175507972864260523623718017328821285098615807913775297823090920651936170939805448884933506781215051044573714172770539643239903227838276503567757010342896959391280879386293160147440212731558761597860166744902701393240318708048204195232819029087272396257584652807743892252056918748355018063345558550165703163433856216660365227057608671543968700264540869218358986421979289771815427246066360693522373329673799606126654964365842214705755459024719576584819135317225627808325726294787047962202307802084782132038000193238926965744118645846646330577793699641040582258918837702379233073124722176922756227610525610982935709054334273455032271594255813513972450483797878013986770390658402206665766208529455134760982273352668034364732706957283197647672117844167906975214776439076449454612879522546979660247162666052489255965351705433500275112806034126872351483310892558216426807839127738008412798521595291693827577440698096577972325515784677237045666692009173338156738561849160431367381988155691685331813586764743365845277687650027980156572128850067084853935115812958992665191000230990033927223002688235661719569720589376646579977825385017757251553676939957660224703227458856998511148950054417709213737865958129096022374738805631566848363146049772752875888579274591638901688403273463396793010637748208229341535111762580217811468251150773418507940944918084559872954205907451649151006787612399880060830883999607298526470979650598687634804776115322681614432039616222377982101493798257644257373334157788862971912697200173589185797718064735820976722454653498741165657402739531532581310897950201207184935898365298254009809663891799251822369059738647828660098045381369553502285416244256973604034990605622812432986951969805453411441350801333025504376727196108626046739687262903811041191759315142032408434606729542060264624507235775236458155237930581105896824098368323290416225576836163681828845635422483897324725635959478551463611819211033287740339987691448365062438939343473820738019440653368010721868319947713386703299329869390631261564093950108929176855910304373800801163930943936173665760917609176353275083522252821514209578472368439721829970489793723003118947348856361222460684872730143066459307804545065560429131780632822315450477599698361180982464056385312112687372668536252197806881384230695117062582209111244757763115258722925094084071588003284425083778634448281037535806301168970966452203639667901566955622941390566801036806147391701508380094212705727031672612163872114509090329044914573405742476694285102872270364268714979708172894504813802561934102868565373643697134132107651958892984918076734401184771274026204322848416656822573210953709830684833735838687704294138479155489611352776869383152288744667184865323101451137933587519586965555101288315918849362509794355617786948720827313329427002338121981250073624674130584028501573788017177900499685619354577773949643782515880628446588926139782825202382544763376045003743174981570645203627881130482767572366919416390331264451125205014567129280227796134457783203024723193171385863600886250347474810250798645071189168729166437356980062059861780553130033850406454964401805971975060241137123400301070753267498502609600386097145754432434204472390121604728894058737427435264952461985771588585704708369822015218704211029196295700075995834767924927723855415917688942108098164742632961747024703353919259831808004788099203853414253321612295237381119788118136497862451937208635984968797403581643817329908390836301761455822295535698601351717655661896399357544123089419518648817194444919584593808253506328487088265362225141047728137712320661782666262279083058105236376448896527483325160053581822283642762933006514723817552878770985751393659040004197579945407057883512427132811194513356022649992970792240612768728877869726986939603879976654667967750107405895591413631128254655538984759888286503773698881405292176464470017207649686320458318853740234089470322817477130277736372968853272454009412052338413996601901620147056478289737389763687612647432782842090436870441885839787759869745222138378750139492917309739378252384965963607586760237900600841700534381573690199204175276515215613631067663511791442575165779875962494549675739213325102390438069661437923574004436135928659978815018886231364031685490280973292862072981565187478512027251397782807146056028795941918507020779596117245698767891574748658390427843091660845771262479630849150618439611804358737793482137711979592415482501318777556644292939407568847765016036243797285868405017729997513531593249250771854602906057775901058667742604304284224202487342150350231209541064859091822455401138239867540418049785352316989178378401458127956441485726416085968811039310106835985246953736197584850860646423817005196330661949654225946069388192603848277165161078525084186737175201662824984796319628834474543555636001040584736043204434004593809297671171762515028795896512098242269582025289041837157164113230672993139118653581236320850780280767776901510887694527442652248917797718368833330377880673118643289584961767259885642536701631839690656045456016462920280740168615648914376627436466699489424928460370806996517346855405878539816333352120142042994327686667103635075753813297084626681843356634282078098236171289605887440547161947833861885564319671926407868785856547355129569028923808638832094386441151861258115196942794360974541143921070327828280255531645160650005787156349765930757340581417198047635479417677318110066753037841882848104607721166236460452877138541381801195265086567039411114066234165743021069434870223565917799020584712956031094111525005608208157743344040647398576284853485176494541248079649046880382443099785395931553060762956189613320448857793286674383930898040868549334210215371669868518319340470302929032429520057584199721671227579133664299841915709970564363788479427501637073072328734106730436454503825170887128851512188942359623945835065872991270570961192826143338898299527974905401718274818095070590919054355105490306258873464256159256140547370424075679190117502637910422895049247425134551057967699832974905685101380039023181468019487494251645180300071942312483243048620847630210127333046485428490509770024237098320324031258884978412090087784743797666628365826897039288228647969911442929741542952113474634574585489242826066453072634575558068625633163865530844378551365445328623609088244356120227114232292189243445701456264763995885127820942760176678025124714495739801803274757079464095488700995708282477482377078169741128997180892559562673043302468087646997097455819243002246824520436682114817326292283186143212564195406026325063583375144687937670564621742842186058624389098503046389765933797076312629808725610497729187219250836029380287859653045134757520780948693604352460841404753956264529392803630089437604645703039398648265261915964538770916941506049475379239334099589912879879742120305094545996848193758490775674501681931694250204977255865553800971940698159844220231102946875575195595925507868862965802220040577263043809341697129309712583067472030553110971255359439251656729280731193839773234919478368095657969648677038648962136476305440139296586161868623252391904254871296213639319700361943448214202361216446371584071003302982444436958911813486484052481501244741636591817777770641614271426114986248335335579120924634660808420436340210687945059340693050964935297500975204297783695717162532673269857881379185239358942546811520818416020999334507881031138505920579036234254890576562143049956022848134901492580063151429910371611824975159390432294462219458501062430636165411365292858855273706562477657777514244670144875154063897742402050112445402683012718886998282841651170998093108042917820842117362444759711314967557525956444499972364930474533804509148142940332553903388865060253740745915031766867500367400128476334715148018971579760860542610472586133469739146731614611873617564500870082817010098302970870397065611008057312824560269678730742174069089449514409246823331973040745323969669939971774237944018221785487837374795368421421249261271110906393306164830471819778436324752301538533684505264118114130635305048015871737920473634763457792810785426152305340059155209651568910594949333339315087133553265805356076312509116233119224752916141134728452207203300494254357201443500966241747188048897567167988675716034905425060613147833597852471043319311184996967763049801096388687024147550507526897943810318718707513366621124818475540081761250049487153845409834675368537787496794613404272483910668325005704757210688344844423354203284759165645224724479165384262744103272096286890249249241295525117338264103310576491119800593500341350818370040785045824448546795985123520060918826361970979188544068819277233468863149992539409867551481648366715756286862948107445489294664529335137779796612771002580841567966205125028442707822792413749843036748336932762373994819204655764013729851356229107989637391011236872622722473528567477454521032015603597866153209737827480900346159366562099012051223034735165462583632048568502089839877446331564731466485010614694534965935285652485075935492757106387903707613099644536154169412225174269441599020335796554343409836575823508328023617588657325833320473344086430332831762443225125890288746706808331903524557622119576960705992875758562201059607853185783372814615208054329482552684331646137816991303952857418331818700516953778425272136215833765164394392488203285638837872003711496400942901312355301194554991108987810903769521351969224778351662611781886699445205496658056041498312172825403740685633886547224805966602869132141360498211947535912462806580906671163293662050410489868746347582296464371347534031268225303248688945479884488579999166503521356509152945894128081974054153239530932404469940745822235086291102610530930163812031834706998118982029098545923500016446332239524974479896754691799020457812822343257256400000892075598346134456107905208284376112244539445335377295001843589027104977110839426002599260758752705094110408801118426264109252090242529649007102990818764486394517312548454042813798721576093160980246547113911479926674728162590369379831202843802555254208121319036958606141314381093968019167714332932455222437233261988456003488244858442933776635082528807784073269949940155577014263530915984756474486499470093006002064267777572427737834846894462490028537351655365775593138566335196449026349191647018664449529051377637271393080834939347516834723752028583116290519463482396413589847643138696185036775939698611445188585969738791733457004157985283511913218011088674925136109822391461976024878061410092057700301198859467904845643876396079899829824828745126010872082404460764964694714780412315241134533998918239762496197711905955646080874528614690254626870304601590375554594042903009636919556778184299125792866618144873214679733115946313519766385708180555690415402515417815810366460812354382843555701790344444464259746817391957023908045892570393262945109835379276364973960832907410007444193640746024051547507467615563570165583623013585205746867479402473875867882455202485089129408646837018326888830998577869391008765969431613958897499377094076371381020195772382124804894574561069565394244465167563363197504822342444033321885089533358642556162185348406630232540906533493942061506979252638070793087310167778085279494233944194877968533986670373602854843757748074419826529663361917153516073535852339567274699968490267038197668039544821119569329799827488635480703951620713047280687003946291014264897608639160130123156086548241493778392249320459503267219661074411841798618953354835697912165994829964356215618688178910268752601725010193252119710349142327209055386313544009431932033474664183058870341238976641809559635556455246460640327010362256733748972669712677267034288737748737123802358924768988287549696341274230126096053603230803886356884635155182210175931566430934986545505696978899291632964532486910968999686742957878208394926913784741250946423009706910550106227369271242277476123238083637041349059029614694155494392959473459358315847605373894570336309799804619041515941399963001376034240861431518434284605867130962813489431054455705543711245746381619865884554931085692849766750261454807830144783115156506235934980994524772013997335541393232180404665579394568853721802343649677421082260373833797307371584821505103495940826241066566050226899100439490233526964869638256040362269499491344860402524976688141959475893042538610202206607599713478686236587054234398051925395077936563485398745214650358118413669822664294238223582856700909728418313232561463370882898856389229119057507919059055157502331511175453504185295009888540716872810655900497054062453360758023806550908695760784694966042336600149402910426595422036564269545431434568447125188093314105712675542922103976199755254658715165837568157544090659144007160921581249596720692816675917199152864910590109972416240868680432087342780904451241627763410477895452174952802131422492994642487477748121782223979503406698476990521567994007447557452271447727050890233854270271629037754913501800806977499544730997749136046881403438602995558094326860157331330858979414236001361206113305984847045420567072686122484524129327383580949906020930568031879039442915403264887408875496913219348799709859409001274351500423587794977542070259100477139272158008596706023364255759159328701131728023983231575313960938006726380205149891861576529403771492261442677608789509598694498121496608452481577640108210419588241813228674248691047665065503716849561728118276479962693805158098408807520818206521968958387788272308121043881330615275561678179895448212263415495879962627359053001980039416441134011320843699127739421770012400004257199363571504985187858643356149360493087516811520619966791828855678791999810226682522610699230063803119213487520813717973598321409146855084962564434010396129448843471528687280151219035967513597909209604922006461656519977233134322279930210925423485660324043225341533756509521612797056891949045207293538477609559868569071341953358842066084093268766570956714054736314420291392005189638043697700666327154675351216099244455313717586705463688640324832464081168719361764386022681237260250417925499665672748915956589940765242163792856210475099919184803902979159626300140566353276001766877461179282253740621363980365854101169690643410444660895559992710623667536988303789063426681314244117084881288371132957338131989926186000905257905385924118020654534735831886090610375701109025591654867673104875285107102271351352569512524257492738393791188518711769517568871513506460904705005572714794237922059027763463553919029615479594672656748963335447488937048943238679592229321569520626912674783305132122567054482032409303737565751381851455388539963864964867407200118244364804051204227661807184645127808809107200524894467729026962418731302364149342824786493044666229169635359324161900796546569021186748804115888841567373839171839570407705299319609310937711629777783886881407026898908903740462064536696455480763765611879152741879883882028518275804716509140487692573329631035484088466873430627677111256902654756986863343446380143022920876774489883642502911442363978481239854022474540236376139778668306507111736661952294154551135358800403755828388645425792308335749552125980662968321509223079870228303520476629282500363605508717570117243481600440358432296882138817079234542788700517945788197628430517108919303793060592726321130597424278008739091271998339825928503296416299810251668943073540521977106479781297628466595209789841337908980571380703305243598634267117655691228344216171453150471562941388728500818387403374703778946535469184215151381734212632464834272638374731014602950084097995151811126107780609253767721839694175907733639674139012561572042976064174658446950862127038608244085308886868111603735259768437332341557733002502463885800745208654296747011101487800984717168599310352058959841036494295417444764539959394630295079407611219492287848897344008335948086875100838355245791572689899544274146566841669913060299865056743613675414310593483872777987823092772437685539775494552693242921049442863583614934614771818032382797624919791201665760489403381660084091448020360490302268030130797095552639467732654940279099500972693332221497292051014749681140417945883162097310894121054144685170908806537617409566540644628005481180650337392469628016829844299229522599995355488329231946975866937251250659303787644569962428030704056838246181527742092131471430830249905471762937507189494996616192262636521028005949995163087025285141933111622955821739884337034827837831025994723185245734921560273292810014333662926152641444054469539214991711509528826837539781547607738339896971998193495811607576462159215921359784081731961867892828366850226270311400533599988275171510624778596370581478106203782632982487454854969855851123512826142227701280997461395871971563481308939378843854034988069707600433752111616630933049375561126290659890262476789193397190572604519451661651718932308734345697412820752351748735899521107701083945050794902628333632651264021589677585839529919918265802160532078819598000010643170569745697890148936471336928742456177615756541316557107206707467971483012542382712299876956769088070987978531501173064917466513973536379741044412032432576902712074599481028289556892092701347764100265109161129678166954577429233077413171367095669610102106944740572001081803227257127026799858843583728133985138459903600655878366663061774849452406842908798369086001544818059113421752361527221595868477874814936509324080080080502759899250656043393521709078683710292306926383534954742534613584323273306913199425459983098431145316203237890689080443206961685356853320456851674664694780946247432019101137018424893852546715203198532038657699761118033076817927357578269300394242314395933000230486767946149981267695822364139184981043670950938398805440117191759966450519745554767675136583871276219449896381342354844612546056904331698661644886842240040577278091437654748790004899595117070983627462094214334406195214903274538257710146324161434795104707703849304256887673161039757983264293740740161989610817700720499441575788918828652194543171683361192544588218220848820862570045023648755090516188400084557550667093291393187377713903596302425275743274411423807753263948617786664981318681729194606801226477913959741278146126582518751797010466325473675925591250539787871921462772860252787589811058394682130862117794520705439872974401189215294862715032251333992570180912924895392524723268269913236095283079922120227902219539031319328172788040218629891685150898115445479646071030707766909873915817630686877220973806962636793347757192542225857319380884000202610283939033888207956716928768548252517198344831620427743949039734632939392066165572258086993852860827172351732926884506300106590718231421408538421256625520385648575438318404333722827948830714912155945118918419004004906082565773286234872248430024724721409469965325548151805521196820178089563223615155800000008490012487999432004492889038684856824149700351447636748880081709419938250358497051822705578146736572310342818666093861783646492748863648200993184775694920390304778094796875732565346443170643027975557247399983862600939018463955546224459189897034745705994366719274307718820468781079656127933225781530589526608452216196506896523563330939541393117637665304137220921829422096517515068310180093360903122439863711381169720402026062189700932652711517246416778042532386319945289464210429011192060269289403143746297053746203686725511707069884657422868046538797060553166578090205489435401056811344765838835523108668792997660006164456324927880188649934061885104283213333813451177322859804456123797787079010225324077612310676549734963217709492158583605395668204087351161981057986314361675910506682826040670265901813599090208908385313090794798007714405917505607241834582828227693227025884162934488557921329810735363156669270992742304313457055709125778734233693992471445023330209056162941924718336197916130440418837304639400511542773958021987609040702332758212669543549879132570329769458946365395804045129754925753092307393054578284710105969359208451968172338470481509079539198674763500170047032296932550330923943117630892646418672231117593710452296616159497351260409427855517846180446430252508389226051320397915296239063165021776577660926202470236852531565633854567272054089321683277960149082592303331369021921650717663091056082945329709808714640356180067087664558486434680110724014111318794743549922315217188652122974909177035857075679193547268640912035283303932634701539147852836485305429975705833278624361480439267788937726847599592697864950724159301107771352586006224989386432777065473433014298208275479916592964256035710673536806890092494975746530355655201002970198612604526220654493629126336587711750899553700899768913933489465012418590180007231393169377741875545218304084637574906762821530896482602012825718484358508545119869746116282869136956083942186930488021524161291186469326427035100011910975759283731101448136185345752037938156450169412494489170527254543419152506322923945987851802593229642161700256211503454376866472624202153865724073939460144452576103361631517426238513788979878757333528511436568208807535624368428524411605632004111846970986048359513330469882504472820433832612515699686929676406501887622114083342458229330591429062961485107737761096615319999612082769573525350165635699909177227781741617164423331551544827603065814259837332138035339144654143112815860276925607853092105180222934516293064307118986009037465202974747840178609356871178645929254827446916591791847265848044063212069229917141231334425253236647471030930844662694603737519546608921781526004491519871205481583139670486254465631548694570743302095214535037855084134905300905196722968587164182822205297152224765585921358273004094296527823742948987274253717327103863049204647287654140526012174116253729033137879649331464250012668425360371414754956398031191655234188325292818206370075872705704093798566554128525812633630952376977890448032725738776314887866454712565365095738909364531017020239423486571251808348157007101721857782694913963863719279889656420428528266307628317188515059700161968520660299395844259323086128882791129265517866273613221013506157131884975320748072405138205351096276928955550830397420836481495837384049983458271245846584742141935419942000261681447743517880141662471869022551399282585926126228871197655421218572826920527092895914820758299869058521970790239357726640084761855072459233499258103515462371872937635841791401258547194674486989842220446499665764636935574925774455151983486837121659464295203334496591371843643218114994928554308608342160044615150350382054015147907247773269348252314732111627926508863882004041947245776544026103809890973115262097364673168074974694245742417818324267426387533848061174178402749520752690891617266333255534159716888173573959059572871119543878740909523237927942362534606689233793499081529515306924004834782456275594058822039712082251965452927736502890226010633091475096672996009590100022972923339403822128442591272021982696184026899608710715756710069081818596164152031783054918086022532231838068229555728733445901783193067211762126276479497069911324644401084020567342038525892043836462671354350251729103493561127703684340901372409462210618982102228888724442035822266215747273892301234833483218168872265508907929927169301095404807466400144584847179742579782207892952234207606351557266253183538997605461694065545978319117951276904268168295763086880940397434279670699939971652684651123125549960047238247151617075246404518881890494585445337888451616507310202581227307889580512633831933783187135391411802444214371171946762187750036198023949873752223534977427762429679717030914811722125524831699436207432495690085892003350012152555912566783317929917154260730801958545216616659278963888663824120910960850974252407239343149847480996720425653367096206850904768236560790391651191694571245554556227045503247473451370315683548123183626810982940653103478982416422450539714626908196197227334168504513982211174274994817384656090973625983658956143759058109258889456865397709901939607775683828046114769293271277815546635484569118565454853086634837832278033440681381776254790110135952323241981346817367939840906486126175937415642790396700581512673368410670669664257905959342528616299955460599526505053951368195678717545175289496269195710996769626592387505945405984266355170774882124460792371935530052904734818386122304732925424918665883124206117085766545012781260049926471483213356086364820123354696608738184120167274946304752508659933540967881409479986595431009217321043285632352594667861861065589237527609877294097150757872750278785051980675387623675374638506121366600009083929035153011703223337697030855484423460169418927269924869933800588826915462735467160153580431866967124108803049088352704135151550413843691991785688553089216159370958936751152297603123504949303121439880282202699753442189442887202585715381112607366022936225990794676931547139311137334800865796574422732353149844316842173748557159312368218347659866228953780678884067579453887226427461229309558474157966864781150530824445811630500362378604953135275145370596958304152527519447617372419626935933947376551486206712013764076316344794400064894726204280146195818228702751965968040596009051027380516662046453227783529884062977320670997279149291716870957641509483053621899823039684858577296408889984815557430998209516363952004328941443247577769348794190900968361359635247381542289023790722035329534830041951364807164996755145419122461740361620496059649404526448403691173389258332785985217163179059093995758826595454201638098789964699013509328333350608145051089092170521756203774373646619535465469538350175425942249341397633753091235323056874191156178246517864089131851870493670600447156235793638041738892971719124097693144078136963044538826140610041253944519478674273672431406891870547815712842496235888319760201845637387644882481402840209837644952819974758671294944883439105729185938317430276544662314037377979294408806590604605989630782207186361635171226641274527614871321050234469379518765683194985241070009603967651092912396514836886066707903756026774189120673135925562133972552656204002147844329962768501689522513668875436561222131931950457319497328110342019747843131958817443232368411761679363784007442316101620271742492776714580826496127876093312604209305966710575227959597609247452500331057590385468045291202149662706702227734732269062898836601867049547250248248298706024514040166802715903406855728674497508180482500357440743526937358831361779966754281102508496723558075177888285365637305748312888693345901141752410183025417070358833548207520771736037900566471482959250150383359638918375791607564031227966037688838343455175247215782521649561528443874156171577394708172790170343928493563959535136605573239202669309480676190298358496492495019164316148742320015700859514853900948058003013899465356986496015165741625610332427104409740046358614965174045306824169612374303708062978944508953398945151059828666972091770245926966238776647783912566044177635578888838118746143864557046229935089017332827092261668890474220489122093208538550103543280947741962444544258230951780597425616543655977488008359339498259048331419984784382097415418013949015769813261307263559503975402695766435301417950393872731255314672174582540154666063644054002893281296119979339079617406821410416762052939196000765190786099465310768713282989190088004195216511546699180743563778273889609808518164208145680102291946734019084169088538536712950736776478101180139727962167744984832712716262748488564470063099140720212403925964000935064751056080689629396549994457721380265206447788293874390400472632243707341192269231547687156840452543284145166682988866904525347063209310324186795309879899854243006434066958505063600253775776313491702723223146920764005192317171586571332584862515307673311370402355124092149341110574954052249449265513425355591905584747802071394993261141378617646051637971318045375168024426016139495764830056751492759627799330937586973478832740263147295754953877327406626944617037349521271867084536120123765820630073942456527111370268325206461076964881221322208716851892012103784913703686562917030204058698068761613764585038803807838567003198143325039436928421637582739762054332292506717923434344774332437150005424055972199379062334882409737468673591156948531192932723854195407970375328084790734239782098198800610467668892287879196731904709139973179743676481028190355331160711762579026607732615736138967602448667834142293817696585268326784081992536198214730603825950140794317343386122968363508568825961717870859764219938438427180971055971285904568585405485850526384019154983638069699718868988165261353542542159587844457575020565346579723643574482874962773531799931994849211812204570607514709329886690817923908208989889316649322965927980702902558069896237101358126730122217837047175765989587723347587118348124893536008260281456267633375783184408798505044193114146146829448792463697759876408450140710528298082474298980682915912080874910274105045231491716514017684844347938497519570067618305139952351698377987886040396638239651992958012919603300581056914064352428327817396802906699515640912683369462581625268041030199823818312795875278134973003739168298747577291862971295309818824820072536307443103273746450071425123427667706773476118385872455529479158981510832655721636124027344038130717107243939508383988542682326358221626254136428559009041915515522686177473423538759660012507099060432632709879948419378778337242525009955985739378368149444412433028425708768729665074347851148634812800525822333323997762906781649005963231415181494350090463346388386424289557116233025573296555152941505975213479430227229367933589337109825410288715698944177131907364493587984132353341186715430840501000168999893585461036105306085687130080464285351882596944166803973221349150586063614229928015514102886321793904957868949307567436295559040121153480156335858370771607674927300627570437444123619103439323714430856672118131608477329119635119400491701399910000536415994035941671610902931550833069492412558894160440134161557204836199801373499599023405063905418494528270635428782006079914283065798647123780066241618360220850400051027898001618444224714490043388653820766359689131422221716379331900075574348087025309797055518077347972491665622775907918620623431552794024214916745804434050229654184674315233027172356748426960508661415987141465730524839173370301328292326514563827543710773420976904566949879352100742031059241183654797832852637887959039665024810364554138079533654436678997505562649695513441782673086195628285596668763282265685156632722384940110659037450036096779169980478545691911448457620131229974483588015030537034655117108974468466642042363542320783079507396866357583441254243106039022670406160861032085860604520853902497964124475472309632549893292267186215346897812791886820571818208586431422640376132701903205482431599148159014848199066968300273673318281658310374558359514020650837552390930411076393281384987034687887257504932360613646509950558894096613636567633331999066837963615003936404663792200154597639371817979300452424714091200125577973314585452662502157946756988039714813496798334788147582399858425160394394382428713582748967926691763122725370573234384551652502201877856205284366050489533790950005679391211709192003005633902386056805831033122742165131956696437404043511479406004413836990956769089947262383764284659238907432040432224660753244994246788656446780100658850396783379857910197022923880622167304732915226981595281067590136512972658155591380273825616000404852733370546005972614223313149123851310279964486844031057132998924359457614884029374183662794620786697223954997863525647003840952711498232651223702664966356431379678325523838737648518545396694892458637928599298486060674165128012861269571916207514995742431403648633409761289144592308432738751604011431118461461434869541796403232228073827951232673619237489690861854410871257664592211567578292542858878101316055631929529427090533450543989993643140343338923648015715641129165447949005180115608237369291642266222040400329641927933350581600762226231480828765974625250997258841094457062402560616203780959098118504880184748684989968673987311806557343363170631237562505286089343375943378901595372747933803407347741390572611509955175378876254628192394714049227356157000729671832459025247707867899087015991109253457048320682376923614059058992436184630921143522229058044469283478967368815103311417252476132706376030150562159856606172247034681408692138357536380102357500793275077317324349397788067147725071213189456487955028733764483250207570138863056428659401929511525816730428273697051708434917492479935660494619964751240773138170279174953558128086360145937021692599324907055022828273646072552031110643322645104296638921161102182773712583592402958428359450787492578112894250681580605659679850054735220051934378065369352970571663144572263307658604672492865343297463728490541748320493191997552908287356976592893461186689529399437604653705882500649782011944736204121240131814857775077695857502057939247410456648552196610401750483818690734095006394951392365467660917714253108284043213608041609626626887992556856828981942038610521463582007568997651230615750524613640856935417834361199630215736218404983337938239207662948402159553165818156678421683841873780000500147669912543039342020732990259146684199632039708374670380140245268574283408006196565320597335220201888935129262385260893953282874670983436501752557744069318058094544721692752760778319717212779456526285963033870672218094676958903247176501129178473856510873953246195900456838438064612587822851887239176156358044048402374893981517067270302331256341715324700280587799022112648683789009412108775707550284843537245477166422219658184231708328711314817176733033275954434785995533703165751279732612247264584169170652458115927459992044935369699931394142747757989767537101956290914035089875273067554682577274284102212367087206275919636976236435180894141179262952738585021313845619608292418124787351598853598779488070664887697813934355187916768144801285145970697307951735458665921302924935493772850687179046822951721283904834353021652991133921664623253151203406368156058435576368078364223356744540344739017702412900216887416132234530874479085504655993512759053115134088915279174569040293614009926262273821861184814519559016971901215999079855403636888699620676123345377629668749259251967731776455911005792976796253735360182278087204121597192738004563937988729259363032316435423825102092812119910940477450799232834290656094833639581370044595660565344322334492822044593938594224710951333299713103318377125412754100959438199932793716241874130905484007825532835188161429051335070678454383492478146488178271733787417350701738695760246999029630988506138267375886927404180753655401483004231743907955477421490279488161656673949460955712199810559177502060743965666367052983631801293164964593833732103220072174719888054541165023442175131938592488958163750959808585548199989976884966579249316370879563774256279812120633349830126478892662877438320903940694380621460734356793759104709901131735681748943662520328446110930932081335286131846899966823930097623092575486674762249333650754574272519512733239858919265965459488462507699084441845389835310171591074702105030035074113774737637352596334652875306569892264127193454880058637233016605929054534418909735531853532926655577439584648668817591049328789845805473002348995959398854936104283593887936180214541088834284596057672604760147755191560995454170925209267311221282366593367301128146712047490106734004037202604547486384067983361235202029328047874769358407523774693098378843351535804992441871233059496215020813465328222039777656849752568736371996818130930258846503791736046050854699322122362465874566046745499040505559440537768564897661144178732397435519708951567363960094301986982023275442306286454962241090171925332672862369787954434549889729649975888297361203144898759424348439583409095221647171007717373950935045084739807944811536770822187876643449939491304368462808086883366319419351710572655065843027318593867163931164801683860794144629534627214082785340591418499505574813791779690864901164797952430843395560429328987824471860617925842835986968959786839498797925463653039037910568724021023329948711005930037399727670864083855905271577339205311467362458706289053543068363105708944532843282293438485256975270707210085516599818814011288947232530921303853233970546332362786878245981200198922092332332871698593008018839339188128504878341203472309874238199854460808833357847130798623326461531439693053922191031894547196613533581189063611952001504482114813532683380180683778392546650844975185936679898804833370223936278973953458087839413887111307409166268275528735037160132582127063130200946256197464561736660698987442564135331568459454058335746133287911491349854077458570002235704618748670494887240885638323276640356548257291639074571212682329780341519279578425487662968974070708841229685474898187340083799205966120057577227382227216840069977723417881982968732613769493513470577661606779791108197654502366444345759475916453221913306164302774971061460503181683004632685316893092665261157968581356500660115138055006946687635219406686214476293705272585188443966841185598094703395330048302269654862111770009429283246170705794947213642052084790025971264356054263337858335030887515636992286493374915490356404982131944172847638001624187716074501484415811581348209128856269388844452774684550081121938859118381730183262019094579433962519864653894995504597359994866909701177099695292172192450848201742730365408357937955924877977882112488777868814852442618351371600553834963848257832682512227709033012988088191219871829919617565096521670027256204174597411421013252824893784888165800838032839370106113233404085316490398306867943714040117769855880123627720780171873656765745272646817863846629712588700146812046796470846402413490046429291480936326708753374521963091684362692100011312215120235261918975740220197897052460246294340629385821224401182510001237453632282813153355804143567319374831590636746664044144563726633279529889165242302918847641380772563126965102866370025986671353773218722632048392471460754863594487536843070427040760209789057164604302713679042933310429115874309624640058260779119133466201467875466622436369815717473872934728457918257001945212419367122686909124534750714741793507865336402415804913380459546524944885099067624708189689444825202722239711433775614644597529817758444808251329631948054248020700614531395844122880283933992613194221173498894639615584956809260101952607406996950709444686325531224219955305005781473695919173971265745056895625425129030221793422516100711939477682238054458715046049912084293776803871416669833487956764637146793536183320525418248500184532521825536131342717195952547272971316717738787564656005994957534876618768921618074601303569798892418299531378732548073452423768019621278215903411256080449956882319676972794648179832186887545197047117338051992721435740597023337145340034557427283827655564476031267638923041803612980134630833316116612298495632673415237231581391901154254929899948565503638414509859324463715249626565242480842619229352319643885817356125803737892785717279868360918836482397908347790351299027716574052754461058994553535854816952776871055737379505271163681764396150736964833718813504839698353269308620353877963826201625016445403214203328127118092328406482834141120638873071341235395107539046308686246434130064222387331188901490724384957083352322716252714406912099645661760766314150494096967643497187581562116192050383492315061735038542113462200561636518721218246674746471291972399903229697570560735833113764962371515405633349913676792028481628634781132669362569534323187656728913585441664253765075705546624486724201626968150697555382220654543821868982794701382901850224675069595226214327884679982610797216598905932663418746751211224794943186622206637431343325596242081002313572294723810299254359079198768954018167056162120648502781071216903296274169559078054392765408240146971692394331839180735735560131242119876901386243024721860631950397109279741033403282867438025837116793406725040461326029555092489276689027534104719402770571709265834991304026592781029012856601809384431537762736384966859336297075930714229759736456396911002979601235554537516295931294390062043806273101449320136714846725326643376488395558667070657416594013827023419729487086303478117467649618161448201373992525111247555096635296764577132978842753642690565623746779791068868442177473381553295234953322386870004542622333243015580045689502373846437317680854628737276894450508147288937624493542185428414377472891145881271017537727452261427272969447636091311431240337738762747187639164956762351527395422699749793542182456806597086531674250518403239639241416963929876306345496611716939688476434462718355334525513561416761214454032381554447280786517503561673334479396279977603279476920494342130399755913637405599366988688391258314540747672861172569721001328314081100169782303375721470017003049371923906926747202301505804956935546011507348519246897244128979926698811709632862750902536801517265716348094448769350261093551162892393819143162192936568844944493412642060701749587892028186935454603678110304521397513993651850925782758145160885898103591569948372643137622706227940468336173137760175428350950323545191396444340944740590062258770281323538471204153212633189682251442322147805520200638640171408648205193285869541407579720170654049038630729037351219462571904230980655495209039955267014953610381930906331019966838384073652885452687947535979133067240889853748871596789174688281083317092844157357254374883335310654767920111314259861562064874220488316234143903242143557720228655594761268413814229765504724999479389786456470037168167936901923951210346751174837301903212296653835047224901203553522227244283782555101230421537627942643229628326663579319255751913571917404428559640284818407836464178693920329823986692973093355692810152579960808682062540045017334280944516692690133368693238320482596446991269219240779209576284515093681173802130746181092849861367694205855350823512719088549855525597158547531587891815624828459363557292249952011767184624378401595106140543772927130929217913159105354735674661468199475259909915821835868639004101695516552406382313013090485029129651984420302944720239488736292679910803795929088832936502822878720130161644307042501702078192544599052245386540053549226016199279645236100164223593867992621130369578247680895300326793954500532590687407692061290260011283964010197266361605857568924593044509604226003821476812132736652956445343339534237041308784993826816877688290454211644859219841007249311779175350935715154015939010347517420938001193229892997424731784038073173201915477393668419794538957605136273550287590491235711723813061092994415657582990631224686577857770525498367040288072581162750698492366969951180011433913229120097946481818735884781888544187281066594665228062781467508131701702736863124867621003248755278607984221961336435989007051886354882421560284581414777020118005174346573979335314925367535286670456179100859210981253407483537655245775286289479012964770663254082383910629003073484409669390686011226033926379010008545911425867322773525751927581950249065421242122345840104172282468208864281442769306168113307833636589662872476969310589423927686563929041011682969368072403356555142612765612118327792431676694561365301078678182033894700826805551728811871737522602790373777891253565496583385696883072298533938623806369429087090359692384541006254577993998738413473775999899973292557670006892633713154140028068969944560785576473124474347111331585663481564300376822372965582903583551412130973844869306903604219238160507446498617370244362243031742920635656489958992687258743776102082630768902964734990356963733220733657187687577273573463859843628809568215971815866789416375183392896250610852062182999302255219930412921378509215645966463475856591360242945941542010190115517971430481798785729392975917394589610521039765210887493570120632658187548580121029324349145057850471161380111298315591188781877549198130988778892184360114313040116094635365347116075845997290809288598189094428076254493134446855287540412765194157530154735726361699510448277826694611424881420124087962972091411994059681681078780309385840282041966318608394842876325027153167176860601383351310247617733522959044804383714076754892114553325331262053494798724313610326209565005552064956164020211229501412659556932629257359913234168913660513308478052599582135107737959957476285034987373089256886975695695735007581574125795759788714680445012091695971668730032650586897531814710804244616851384274142226873505770748553159724874310985432310956541460773227600851591625165130420799329314852819888925326632181027988365263986188483434108183140567887339127547602661132766486487773000152450122385843049048038335400340178007457876092499540488375728648619379845592807686150261918436638403933275677718568364404421207906146203177770369800894913980552540023380406822344808891178876807985475929680815209002593426879809531163853960791870783841678217926786647396901205444176830078778184369069180230494538782621066440354059608345108126826894077899184459000328555406784788167135177218581385213291239168831210058115987037487286572851680924211898030370818897996966274406974575273249889121615677407814237321998939089122903491850466985752166276130963662891425251871215421060959849970918961299029044381964126780625846999010863597660074772891476726477641630400737105492531988831529838992006453526044887413008093697924011819343288107426110097173527594454926842884665420625690595016855604165840135437352967253010310383041098254923043631753769610137290073597039577220111311671202556535948766250850560067088229311194222986103249896943681158627040325759346929387077429125122475427378712040973233014598505947090738177566967241004249076193499356620677316520966998811613989805729943614338778860448342583248045993440493412906364747062948057399777530643040557896372933481107722455513310877676639455700509603673471790550547728064585242188242864045865336844767184387868715769408032972213182104635312106111663247817228493865469212983030888199031901096180572203839901121204224201863767499432775244857595758326220167685778753576833418589464777709100568482031911241794576422879259844219484429327499315931554889835941471798841857635111254467286022645056387753678988203846893525720809460966646746678313269273582540217087938634964535412084509252573826798161303407511043104715211561394019064889527546018385280194411061256817243567717529241521192531072740135374107375498606813362443641416178837055907179647945636811074954934336276518543618882108547269981199707311247981188963098624660886551391058023015696816428497865356821071315394551595967983035043072510505474418815410771659545626065992321377130370367809630503317174815918261365867380659661014256609980680023020612203323383083049229557902959709451478976558013906620083781680292625194369017369005941904120520221325026792876759066136794197573755932451149229812111474825660867915511659199944432189806513518628321189419353970147600804963275143570060363248941721932436366523919384874549777474709330860250391844628168936823811622507544173026575617829167166247603125530483000082136388137397444752164599197208942185978994326592819933070334664402884344552148140156426283869991947381495147227025343214785862861171675992968313289238383829978163471913372496437887965838824459611807079063156928365179239480754363495435122701815559115293494319123949041273522708277188584894333210341615613547314612020370331107259678826902837571160123288420414146146284240037215230069236382799403158668814010208418887804913065964301331905231004520794970429298236704354843807293295841303977925156522096212753069887128541153153686842366249690008937790663837643768288366302300370458876652333364837767513766283997667441610603547141473744711988852866680311800782199543503171271107997441335147006842223802172392815272096739568820357462698766588358833127119351689164972065709284280886906205879036237743143678456272380550322152487993876684370557816700767950199202409210161624795082585032343992338046975911757708025586293571258089246350564452961908790952100798305075631645111511590368608341262028744068011239185580950535767898574894205305966918997175592213641670050749985397129912886234701340286814797864911976978872475326808564915780156708285184200008845861933526959259868978634832021315874548767853171859315207628818331622248886222300784153879434607576789908737719910028731957450603299363786298473068294622737505638353803204044647057248123732009006034251943873994567187020187399695922874107113928509684424724336023256535102408101637338876076566148862834157096765731605308606734412671173402944485071080782424782248504889513674080144183046417584021038246352524243979864807712648296226752231080012369847841968046953446450340185080179392243219873071804491848466528237085261269676308290920360765997941124399062114962786128938253743968796225952751442222298697852480149787103764923600365225637801081234769558109353245617719442261894949853707066980002335217879496722957792550190691699138356796486729187958655716641738411973628727121139526069404369524031238788455787120526830788356849387303036205331801066209269022355224328430488681931153860285755258502475931529329677548988532091608225122680566455569261501227820477544315288401879759790477441808728042317244974251854686387976326243287005905305256055409225061724363640915324235167393846134668958831561176977547393797828610273097014384657825344345290380948346357029960185369870998501363711422790753694493836641662621611613150982263345268639547342628892405657891418169216640485641080333975160676540156844449464531476917920857508710591828364831572144977824076170129391458494282396371394199674813641867525140540557091599766689526729080100428931956964402257257497527926451070043906822406959309226105672566173763086817374614857551264421641393952256467800620604124688796501906889654860964002141286270740038482407173326194198680832017403700366218779501774784304994676131998715536253552833185889528034495211235080462646067166966955392003578979719413701813099530561307308743410345044526711062444554515667658225353695116759670272468474291977911538289201377900002002852553164488340318220764099672172084492208796162343991935536235905175409182761347040364371783212871270575050508048340456512903606489661782749412702904936016003685969525646139153824205746019790009043165513121967536331828671834467074250509920351141189642385063746597559001644637811273791927341205620346413595197769739273826331538293917184030057746208516831374201565481410136433059161924462322413599356452720635853039146283071355019169980959478693052907002321403608229476652452934491189300477380033840705133373518222365410144051079490311462561415176787828698967186589297212401894422062701924048599041833506474159579974513094823298102428674176273711550529208531004033265366307094170551620031136270796817189112423277597991589893187987937330700660752075523714615729130924517809782201329890863800061027327716508683568137614337409135108305047132135818769515662179392999546272412250157814914668777930438847509386517753238238614474456892541897401937757994107101168479696387947556335228679381017194658814346073811046181889212726650993132728127078167774865504037758597507013824609117354169895958127279765126013492579838972056767112143179028236769447311232021050498761648412840605293817356063688614023624937784214198340374750704626156340856272239345036400560620104965598506773280582876560953906032788126510058903407030470620407252593342941792086117320723588235946880647245758634137133752708214618514576322636825057722389837527110576675092157621876976514978529283677424625188967656315657972066324297754215373266456983427542082772831967794171072953201037433744017280020485592680318435467458974050249405559581617834833685578123240608909938395652638668412243407650174674950152598152426154651868466771142792168095081125330130916037166864184363026757216606825350303625483597414354234059776359905874803570859113031218904337981193200721565058001707525993773178294170885226609679594678193794979606174182109980204766797461279020994312649487392840138845636136673172102829443034019765175894170547445322705754696789790170287747292208612308998560415942247876847781298342929992168400534755735477999122721137471461288512305796501019412665148086801114773328762470201687042326632072088700942147614127549152104408740294948620924334783961928619408259892777594823380240554757213646096683629538868620230848802581389789886272276439713505355672757260318277123189970946703691331725303232659777320418221303294608815825462561390136556730515766284355288401864584448840606560867676879588530458066880522898996420835781039516947661089872745373517614484464471939155302801192524707028387258506902919219858356175006270822594422866625156126562529620234711670419764754656818666172329843366938708967119569903045492134710565033355683002900108189387007488960571426335000946738910077784458342265709058881143299479789532179297788827374864430690522711811946087205908018597056276090929996079916840052397680936449169285474476277638926294489253485816372447905046213438856857790319725008049208647575150984877313781896621334107917570366800652094578893715949319052481425118382635322285209573652816848442171114837641184130449550188262659472827121659883171177050728615705500975660319461404516838108285902517329534918270093607937049549821528429030162911828436862027562667793372503073781678722931667281284057971621168293221339770909063929167785586540845986814934242695694239699428642796543424155782340779263304461381628971121444585250021795153586189213075426319193211678023099628711887443315653922547161776573158392538357454224491360155488914398833341849935077782554221530031499199862832552945095206430473088220383368259247602215247300606881850435003926070622536882116307190874724128724528613057555963703958358090135345476619224870280598140974337818081338605069921554911491934414564537451079229029039778314046359940181487755196886807207239291898561221633090477580537795029452974694160078400244687112114640949088624637630574193914703724308409721117361531254621790414001788457999837189274676657424140213656420863835080387024395927293769559915225323933314892784395110443363706211131915744187096400740366157030603574400820544051494956003746048374244035070508723194588520461189192743242647074851636647724776869496887665518971320727386311163963075147986100909686834648666870909377977969296616537620573494717611006076430413057698712543632633228386906871854115321578128673731480585465910507095772139329359514432594502402675502265093415557760228993319458154723631933227282307777424444146452146203892506288251234403732708865100095886201959317380877751869859325007985343586523164292200517989077024914429728650136385748243803705202087205023329102329169622253306290132174452479188183631652839126339657984918666755005798268770481162455580842080484046761305306180642146771079127020058298434524599406713524377071131666754906814497722842945185960207341890736117027013824387393549504795473107629248339462833066923439794440874105065189559133773728416602171041397463862194727061988693375148814188736380466530857761097475801638868420226262366274634773317294583982193561831814579001933094654005167860222752940278566678301489206621265569056515869393333370326996077310079431397281958987064825699895812136986156075939785063876343080999133266645955255607883332246652728319166374370110033428611003873773191425010474972473874825479528600595588381498169089005206726534481734254992525510865124636494045032596838040271729946941742631081672661808069496905740732118261652896287159353703491832866088040917039014615945292064817699645706968054175878897458288359413629937454484863736123288218213610689498841303486772025605965302356379577503462239739418098043088698883332233016603002414953820830617818984700910129019397736285762492813202765890609960948214005905374581423428688492311453878423250753022952995242768193133018331728489525777756472717157546734574682412968825982542456513629617365958989794679721653993177092246519512380342409965391132450632266254920933205958281170363187524867778164245616581968419371074229991453392230474995082570814428504941075678522208474755114837883018972927894268238042246965464591372086268115291639496624941779953093065961198923724185090779447568263324412515383057031626575586454371384426044029326650295273271766282083608990322054427630887638472271660273392349217949065914257991953076727837743960538336888168675388792772004528706708170825181917808532677291332389700435975016001526662940096582285302006919792284197416819991932767150310747991839247897540314718636987951031086809762135706541555575885366450387993093192973954358069755254533388389464389195072390289855196064045123858378927391772405647495463344300906439330463403066938553631563462435366415488640890658443750946427048117962775859249946422343418558420274040904800639024885227681684604123286894333785728413020998428937056729811663864053377101263289425401375466577372832642393857193979771199696426337460068258684912812869633140241392247342112867466390634975633947938015518970815827918612936341273011886484669235033205156236910989069343118242842655754389324315287425994863033734808776284238196115375705593027038171561625749874170604772518089884274592270965514796041394599914843706933987267335850469832440910760667965505978322818215889227902249554736702491123662619738194643984537011225644407660389578241647409152708572582876447179469022872581529948852029475239848733706215324408041321849979958593226443057627684216943094289968150855772523587419851658334492645794255429221270456897353197403969955452129220693449502401751901235357490555189970371916537907918440490892970138295508711197655111275802796615189758739849475403258720498659133889472905566987898073240217527518554543242176126596067489682443865457671188148780008476097486206957721687176685691170433333745351435922271923609253462398484216442047513781861621173597197134507146020643207349401796415212364774811337381225837829319075733276283419267199236845949659648073515925163304396106079809025234518024772269198120584645006232041058055968099595225631851036023301458021226180709191592518847067382524317378876688720857896824815891162210612594623661985972339062387209702683709277325536030296407425137235496563468805664678382401360803497884059863384868112070938759051852992912650392924623741280156147830922778742469104672088612185372369513119353061296454329874396755339003827039430498802060249585217054367727611886587452575623207382936705181463163024650839217250548677273622346381522727108671003983550250900376988017974801363957104271074355835400711472051513492597982285457903922558994570274258022330157082983388314518351314002499234919580073758247267251725447196257707391482772767313063962695055759011566471306078476439297987465945883972795220343744267126556588285567974944621643022409952667044870557601942890785691307317042058355426694356272863633569585163632945154698357448971347384377949631052250711744670458532172211443519636006406326639625747057164282701869679150837011159482754373417313492626761054202890492906837028669508723086619742824780266417602263513028453342120197646938387093868552711849024652554856586925268460488442455104138760672589454898157373222850849035531948847515468815181428178687800804738114821694328728784029917362643231902320123434278754332742650416424917386164057203916948640928373492096430500931408876584531888100552084814619658982696874647787724439490299010695383526858363766285966192122103064539632914280570693200984871208213819291479161140379244054154721885182115380339264795486318720967877274806512192113007050001379131469714376608281459928847412449446368453024731804627661437628222074464454105696475994273319000863228444704343690847991079601897969532635932749708570572669297186473163209235610968711335390252116378249105998897723858455187791259130113333923877538524760529939612114859328036086208912306200293639400079330793195096862613181026675202477566884421376926762375511126472734479585296836891422850436240517471524437420898744769783985741045444156530736404968185605649240268934273587589173649015836628346500262457441028610416651834882154907979255696127281033578833487065746419072778379573278309818680327210558538022214048334506828078320963746996989182400462530070140843915215620305179486205558234937995767603508402787093341041895024763627652335935169591080865023510666381798111300124524644608252485271528542970507479550645370420424014407700282489194127318018398945607260701125438458542540145361409178232457186839517173265711714004219705195952813805394843868289743074616863060766815725393391290827893844311646288200731994324353807128188587194276619016812534050803273888408631679162352930319988598065806078465749284438992467044492301001314190391517026984105037596141713724206903639224287806750722992628406692994566680774520476108573867495950203295027429456391413809025498224496206867926328572369059171329370615362065954853164302209780877326551453335821112117582747994013629014324136455907204995109330259912085338833180775218150585049982009657315789638080625049113544947753916740708442186143773984159331733793145586503171978602254634134450268623053708477063679683514168173955747260924568633262496066315332417339969716984708765766886162413826099270881079743196661958138792265610312022140545861388720938696449919902905268526610624430783471291743946773477551580768396417572421567942753611516524182450201587047291000886631376055220011885726578486072925240351245084900746770627210239803931272990575139052375973789843283272834019281835257044716658741201683774597991672156365762536745867690581529219224882951061288496894629383785343410232360357988670119324112727235952110151208468909947418207983209510542094327684249873666307819298847922707004458953900951077120607520927538136208414247405103520028404806449695207317981260743518303593255512978011863627175950103364695188873206887078207795031429164012935634083917128531312457709194497493644956292272200562680536801066170299397862308952343657604609045568896899539437971397468667188517122337111045308101384502270090769532095359230311600156478089932927408249209534401006206127098493871125267827540187567169045237811636697088867613336858666251833528676322680393086642497462493311809455927669988041579052962441159294145658436724189599726331170052959106893279908658065290748129626398442192493731610186665500724970880834985682153321063207702671524306608136194155802994446147905700544394799339676880651759914989094570630388085867466309046507797847496921223749793535277844567430579466871473070404721626652687954351624696215104067600125722881367324302682173140808953633966838182076272716481550545286109328605352950062234571363889597834203932819641310092621321000337110502626600743073823521994643823994298763928698304124542665860388431637888213560467949820581166927941635957980818866715127952776431822308501201721851061926878351578430125962443527824534667030750001796989566291372466123600443918724383441949273032461994911554115764184773148751854028914648261782371710140093689664943407966513177568470256622360170585773512998680004030054449878528216823291865160247741198212587052015216227513191544335198205932464558997431923585090558807759427606371955361733015472250400302608958609656376855049479725177320560900336526866036359725271236675225422975335000701174842058411987586581660879565299474696560519083847887302918606980265831459528448517791472134422177352406943232729253401378771947350703896402158393564652381783681406489794457355766180352997684473963614778991440713568414184867517686500273496305604563899174790348243437393399195595722681316597443988610255717219127088863629053623905476791436974834161175723476478136104892869687240713945933326847291904283935342100814438837259363508198983944467721531142218900171732091302889747402067925898834758458565015598497230785615165606166702645393314222246892062859460709377636562170708547363396141563642329864748152302142686832237578768346835792754967152714197019794786048149668225487126261616018125694575583477367865109903242817384903194429891596893802078873997448869299321525849957433777008613692452532970404245056569509001806147836051368587092679376955479263919325719699386928099786497409897001945293654238893063882289419560750176036021213626543079764327027368305945041728008732822506867231901781123935880340499866326300193360138374204541644544341249408939359308599540335016787975647528062871245893256181840231899991341082254700663843548977588986771468242480190421311004513201799552218264448493469142993696168593852698515110212123608121277743531624935480124017133810227513740358611360820390078450709033479202157950735430333518946365565286303603419636952692823442798576900318799490161161920136067757631418593484135754125937340020716479057676316858805060752706978979717340828090187472043766441647283058807583815331701375232793419099282490479686585341672299558215404385631061896023001517305250167819149131402848721686526043661136734582436308239429751420528373736307620012587127888941581848934040164123188395371210446571450589191703243954897003140192612768118366773736176587062997011655992356316851362838976475248958592207139601102374609302173786991981223127675832730003352268388105697998198092566201650211269841559119047573026194593039161551963360866176451952784758685156492260981388918145908494302747078122526804944711250712506939332765551819683785085230248573634894865761204742689862833076855213732500501713262667475417548169696507927498262202908015334101853498553725047283826552674313022886175660243613902049822809099065954528547731694332543795052089160514039660230906457398794271428117195023696439674768312187569255725848097845602765046653428546564131546836120664899860388884512505131270888181237523695611806418965350050603398367923055716786181797458754020416863154986935180008612590529745411224385670517867041080257091173323942531124611025376909503256171504079912722501314632884914429555085263539075727701663505544964803948695475033756255668097655733029671199210745953955462297937347489114723428083704025931842561157243753046949281600909954340630788412683458129087404814490407833242881844927143089669547250541078828599058176369399155893395007577610224044580295611512032658271951542101390219990836673857322338468157077868079974419964283890833919131390395768608115062970505651840554864667718541275840931759900686438889497969488215320080141503163214472370646533871691295269788270516643743181121592931955436860379899223372123081477129908289382076129468864080948356788519056664750974359113163097400337462605098898729238782577443609509329359860944973330498208300082684584767949372561330496468937493106700822475498149543301734293582405125844025454017609910470434919049330193886820661344235056745017612734732215446850177245642613157758605916712246754155648558256815216761649617736634380756738622969673974712704729099139852606036421456539282867266798619651409674071005907812721664322412104014412667646082665055656830969830560102402646493697244925196962991163092317241414986390439095622783433104878520899656560180223092595995677719230504063992673278952526017624194012660036887364355870701835114611926945089023426505260518336978713523662400467066621639897847767832666166039588177319983153414447124378193978563902827075550033423123566333341867551036296836333490848678812000060396115705036547408214274099509898947389254208164257750621434218379421082496403344850514860793034285400521111828001269514434129057679885197313904425295713853769155275351876828686657482151137499003216872821032359220906479948217194476717274911882149957100724997111990023486961716232350011519877733590455467534367820390122922065800238268450784408834441603663178753207004202886926702999792214149173313375153623898153616034228368377621859554812969497827709867711507306966692309989035387278049016554445550733249779939225252546077138161644854499755549295336499603093655691347658558351275076169409555923092052955720379962903864304381934360296461653143177540904862236240778237926721598834829630390866761482108605934517600003222120861646577192239535214997941001914192479012990629599438093981379497348935346918126432045536100054084771605786359312076279265712632644893477781407481896217341349934425306758123667755429338625464032301261660940771281108923750218511783551107874968371951618509243760295776493644393309664278596335364609822914508980734859906141118888705914106178740781850269180668042051350842014663285877653460208021293165424500251558382749816272546529699881160864254761558221495949414345876703998333247406770148353742904927508993316420141448075985968103289767843778717513462352635305945573996334844283303367655372797372895719874427142223820503680368053758710548132608202630480036467437422878142185801773043978398654504927817262790174241360090889210430094015593753866985157504895162016762536629427754262654495645603991722275945333926202472867644846075523394023181136194821257396931035206639927606448471304485678946749566690034289771111248234773392609375432281661729825519840139764374412889795344476554472444553005601755919230098647641300242918728763562922516106835043998530880065655959234969867133442549896861243671578343374374979958646839921939387367714752160208602117867413833031073082814976548378034402953900210176560195019730553190198038910324648529151373301907415907175561303071010553454013197454848962923156068394529173879526163621149549016363319178293351891478975749751782834961883555467360796791521467876768337803626382895077650349297703971319810310838679763847526893893187145527833541402273477364775436949977738589984508394088215502952707706505665176616567829984590923512702939267050791544222861296555756998874947133034270569696166457547786858893252791062167246186796497403325448131028950428624789817642197828277354535410457183937512508342318636186080199761637793324257317835243778305422024271132856733880270416382554746403758597482209246526796794657573945032860129093279933473992904541537732134759851098950699097248740557056466736456103502367823223761198747654963948221261884104357248764999786890729630067682843975315962126111604569903693198787762926648232074630211292791955327740429490636440849974544311018755443801959256278972858127498671328645244693787023573082736726027016424306645910706859996451084044221469375903553416514085020871978949031894934733781604116830696820781407016670169769180993528583991047537618021713436586546565717960507840844530839678301362240600425683695893852896791968968252810291461301287434019621404260616129325061848219300260889391088581478012025744928550984643451831511187709333431837503700178461411219789260965386209577283753106493503114922222871080006039288569806074606874755355400612459357337067245988937293210479668942447573281456491367409846992791260784217126198168010114436237760883111992231352165659973542170563568225962254483940793982908395219728765915853034436773235971806913066545119714878400107710660705663650865515636290380914514082590101228301804577026047900922356761614429612678300541127082169718610653491163475904776856435064364557827965881083067769628549881487379295187771172290950072966470265047061162767217841730684175564026933247369857333477354552948283805963998251443533230717577725493967738199175918705302165832818321368111907446360704464592311563921384944913886598594080450334652858003468659629633780791884406636037387645689473832593781258790132891371626805252901036670764076289016181974348699840121536948834056258897765093877674262267487687665739789867009636001821385505142157429402892653747052159460752031095293464828811964566196678761592235601999878997439437494375648497783478386942979429158637292803538385349476389118835345714341955524998296492059966819842465209446216890670598075446198471983313029075823759299626809294380053358393749401049431874743279209423375111611175523456243907681602433228293345345651270068696970354898813232677230288432786356415464922898771514739309528971434918051110977630547483155581867683954959915916635967463701443753362682278299906067068610769092011153141510951136206802315859919966318596139802839712394109140195915841569376775353337249135198513733403558890101955607774239936575691947306547426687369735411277427187515424405182707230588900254544541636355242762955794250435909664885358400748776932081273352039798291640151666680104748037165236536845538361663431632268527137522146941673516544932305782933090215968809056424217181009927900905918020366264766387760381751836437477622751756632682930789776628460529428860378469144613894928613916373226888824254244128413998187156199147321914352036269902602911368377430910039355077186046587703478945384980043310414312094417750077464047729063691820591043715529657278793687130548322867156685755779096405009129860418566480779556269864746739753337960567822346259622837674375927296512325642697671032290800691126952484135182967541402132086415568141318734358130717901559108486535543445814659028333165564964220867432473620723483673460878951975125351386171918276062753606594945467502425137591892311641544104555344724036749942390527773472014375971432630674434898301672723119914709715381127259876234711378518361876727697392955876816686660428637377197100420203600984589158211245033013016744050979970823305073481276496766010874958046883595344870672707464319669151720576580012390644147585044975193582258646928444004115570001490938808760880646303449552071634725490677764174326907615166556980389692222444613517473475814041981273586965713074776093757297812881143831913870680179179590168533272209832461335303031660007266073446523008073539550375155791275575341287941597341463924005005014796272961273133904502538191696442299662410193203870149858054195015318965679475988678108088079142422249471938182196131692279944288672580560384846032266938130708141085547712060837448709028614108517111793174651475030413672375153526956385278359722992546195736827726196322156413633381455590079946346597527090969340672272098959798247971484507456924176345252552284307387015174834557188147820023036686876304144391229744470902081582225321376800463477013776544798562965943634786495749575228667935719568331565043136474745915978225322701346224737722299986217869072124126681401297707201002130023354832292733312351366266086477080351810729298639979779392372653579170212065170993431669941565684213621335387701498438224064656459600544419484002520889598955758941850301051942816383268420917620926020617768059110545157658864042619898582437283823627487145363375737177725628875009372356519596394652220640370949481067195193626149263756402649717568531292573623264225552787782038203485886933637433645198992333538289422478135498740859693201602649193388892242584482105941222945495187041654451935656512530269245868039679418099688753434249706503918019031708890879722301471825286422275671257355413539219517605097637129045284587918061018863438768016881347109804670827104004679562297665221250115429166687392584157898296126158460627198477721197178398226933233076417585507835728223905001102177690918431822107500710705283053016553088798220812780761843551737332434475542652399589776510602349508265672236187787527254213467326045887625568836864739829347836545696071819831800739258381550312833894740833263971841769754750164169625232710869504982545904898366325443643562808347738874948336410279216756095859639182225948102449428473676256146201525029712939232361207363578180561862523400321091454142581024378259959137521693448616773314536643966761586871614183614540926165186614329758538311011602587725812061426570792821478928075385278122638139956668557363853449788154173477830179221887255707002185225497425758220067405420127756298461108007010701478169274014080274298704524681871986446058722831355392897131050507839543483762339155780639376762874750642309101160113284734596612574704429395583959459421627275809530257066362779757893171850177860723754433238866203727719047552778606460843767415322828919927282995274159434330369114184706430520821089394147952615169491559715725837356752768309696942630268065155859553482865250419905189303370343980838239706715043087931994778938761295888213021087094591466394573762583935223930708664935755243540475437169808149070208021400768104285007220438445157286616441840124011229073083721099490619346369321310582193114339449064255039631843210028532740434293667097803898751107016397116056954940636948683251522675755999079536409543043803108028543668869044617735277075916628193471121052951695366873895262277399743106385393524583974558141025060670406335648260368968503064019121494455630210791284613149023950811384882222876351350991003608548364387632889595104827759669096774467326904148539242598017014667463580182194155433892951024440563014909873010209715120995544827021603458955750008399414464533456434445923484400667938821844852320662613302904196508287556407801578932694142801311332302657934782301331202107294658650603438804930192927661224460880566496014591785322450895568278750350603942964313774370967979378699908630356418638541696815849364268745699325705215000895891408584399862166214855980626334831481446534479981795548525852191605230255341934869281819035980899699028423377097899682685258244640973267966391760130244145864542483867901468243987956525588383339606680702597332009633825481019208858626622892625488112881698052062030615946149637369359080844013933119688669239156026051730238964760822731757955869144649332798824293619758776269120398099620363637841981863546502612739731185879095517747879697443136758081537601209508362575784237065637439766536167302818538012595110582592002074105315789251000904916860600511743773385601697853946415231327003716190226670059256903518916198214163714289033257761965250174359176497478656737903273251610240867060383077325684499978708153469198895742749462069785821044007534609290013200029604533206460262138845698678891102376426174344446795159691873317188334303285634718766097339419596115223557924914279546308408722429832540310786595795232427922383720001647608803694726636067458188782283884070944197537905312570368420642295014235158784791203541159313254958809977336745162466359834668557722678265903237974038344965581003305954972494487323447511218054368681242132139796987158165529220984975329745477108822250458950844961809938229046935606147226845760461170206787985121978751669716214057493572578239409413806790262877373806109417086890551493349336609109827068051315836058281483315340566009914950663604303920835950089960948993538670671766391600683223830449167554690209547341845088679264844552511429548215379026973568294510132427427236775982406993153835904295326894815081895732849836510761469755300780228546835627429383128060883197544819354686369552823129077245101669614331543423018547133695925820894479052865435563534248855576347370084859886375061426191034934251962545264276834817717055401340877463595780308082007557863948788773156393685819702497046694378348557699534705260925477357522151594667870554380641761914803060372815329431412649024543363320660595774078340407516388677042190760489039707587969697037312601828149640111794096879348862896137214816421165185836746351499512224572117084961510452336707132289808219899490302698128622767444047016626860342735135175811698200600886152448837386594916724727400092479007572688366068672498742116273631449319838006292782347827332603136158138375641979903104156186009815860167603295150570554497427968128922550486250861258875322125956747247756469176202507986344576914264700981610230706943811143660471982982978053509425726070773206740024605444324662924435584618258411854225552457146922558833005824493546192668267035748796503220479067864160218897187658953566086568879451617522720720951321764043238872901357259755176613373365611945553071335060994440481737351919828941083698883488686013483068374414754054803691186060490977261123333731916944863070902929957456563659628730569944951934304654718825976280730140511084865477485375530404834044236730648532642020690862877509635736397829799206708236087386372202428199759060314023355807916893289998435743303630776780204517719733016661309508404745571008477937830149329354980236624477205489121374534214971116783062554638146770265927351951146313513437565152373534410497315401676260261423038796177015071534801017904848134602075017148790366798287041162853970803126158851240973610073837050509597140819165926590250621452761510390693639038970727642400505013816795906282928446914596408462944160237096526969726699958723644831517750486890124802294336211740677082367833782747680051050143123824329926624843617525402033525325834296496661638890973940316250830849791423817578951015824995545840203463822119046668785867439691327983706450558586916715128622244936258685831390007148836715376485082116990550944445005448799707069377181929644068673368071977300310953183508650820325682129249910477934981217866696585420651762190379557982920487977271968167059060002961677111839272255403922402231270654739603830503342855494441705603528305185406050300065448407106961691112726943378154481216771907506411741165756980138756163741595230191910625527966561559283765836676021058510591421893237327264478842460127876673089495836289040444733931400901811649084855429010788975005115318207407331244575378796265995348164004277508466390927887712588185171870933356544955993736903828334056721427370991496870306991418813517459264321964052793612644619950612055480197645670545399278505774958562613986307035659638009703247060415485146766221613249695040700019201956309830835098129332214575440866466720905992102336155506800911224178070280808068194464091520996875914501102584817602867973155401003645034864702694925911007079809438018630828563377055519131053472848901400932750657723725853678836246259691207070989276506260732609694648533459273237071107973992182269052283650738118709577083673207577136734308363216569768521086895242916033461442300366039034783387373328203254284717392764682592157095503085760547799738927031709898267522210866037692064694510071628861333788450010750721049198076467464720840586903810931263209669195168697935589435966022177746619394183157369173596279003263576702119870861300447088460449229863560743685509068342461739992912783941604196434075867483579622010028256150145405724446723281205386292676621687814864369066556484775865878845610681253075765875768998996545135591940231523839564892915197944798702804540279830867969479956818386112874271680164306340431308899822345061202941733558049237719074632642759565812290211948589155000133277918401918982826655374157963029097806116441914784776910443498328085180228664993200641868010409259623485448090361491021903373244418660394840149820010070564101383009565916404970370626143895039733411004169550293919334808064411329087346427522654756407172889313403306932246564230696775892737941299095820002295338453267782562368364382575567328699783968742320047255595335882376512298811227237579567698910891948253623554310083386646557088989265602951061447037351598384729927755158111857593317745208753603925624690651201846918172737823448240021305941163931193864046346583144908255699558023657441936926138214372403610336062406907656357145904036395591873297478160236168681951819165565100817945198370297370553476918612959170816932651372859497881098194195353903228847112754416511782933935097939605619179333196231116849926648157523141815970485463544706385408237530076544208028448449909709134778936357097002355791677958643419513725961167899474891900385138841807039522684391080280879261088319628083234088980625035624418407541752774756029421328762644789754822073276992469744970915951623834558413214844853346205070859888364209149440791696009684948210948624356923390225320199916965042576070946851873109895663736419304509120166197865111990703693846833297013248684236659348877200368127274747350191338659933540236539308971387491635618249010661432761172383213797991042086751098022837315493295133178617855793742640944510442960398392224314971112779748340598924675627519530521775530995479513512780025414731986166061923922400345241234947542956745607431955145627542990685914368001295002159465107748218448547391397607265293605683954662382799303568234180670589640263765138591066888310173814720292775528533122981880896306308006897583367345828815442271744799382757229816069566453192972500973171942452386400617662309943583559583121780903724518473750667914229095017196493039712005556728403893069316902203958006832349313717369333845896286315151138824313726691715513955504949438197162502451114822469527553513325493508913557927292842800268551862301864193816285653926060374022914601242178971975734639127430898116793771461964129413865876885490582140292441246193309426887392362005772331863996549245922506677955347081197074619077675072262174507647141543148768606468869661935913048775946733106334472158546460987821492604054812603906793725948780510735219316235866613827504112704644788065828278524597149974669308259222689131756870120709448933965924942555926400677957187554175241988009582584630522948765900653124662483754461788281351623680909781281362055477066754613980326224692840725090078025801621183501249381227798785688195749764605250248627495696845541141396996437876881133968824053864322589265992862947603570288292909279204711743912892496978610233076401111263922782374854007023419001440326263512883028966772019423877093811870343157539214532265559569259424984984674534288880681676034047758652901708841600751332739654575507559608438664890107263052593783961913517669829216634715534588263294458595831974807765368752115798458738491112279884381301794133118219987229744162405851306490773220203407885151506930150385330024746922908665845019057710981627126102197302125187667377715669117869115151652537504737253956902970545375060326184278516019472293550911574686060038820795844244669582207978926749898087351432232391986674223880739859597364524087129953106184512421254129777487273107198230735115725161512787440008647779511124562827327257958318238399447586969111284669336878246518496646847071837350934593712735069250156823248316939222540760200936384899917298283381946804928872026320830117952812337250592534818082676658623359258557241424879906505199508491169096163037903959989323494560791261445787244009912689276581985274381352541361703901707913520580839924987717424045325723768664776496662245112204185832799852545383419921065961899493735565675379493485878891464608379592310482892361870127965239330380202332361128308067531287751667811995788256404918078989559337286924310131864222931410367944820078118552427867249989212140766700427849373136882673227630924583763752368262973077338061561802747660445739997833832682296808793967882608773184445565183312480086826918511041891177189599935242084920051669005519687794558461473213713653733048846605169799194467720451877601297624944148303897331830892682133600969279708697319192493088372676188237181109598205713955262022646187697955690195498423966364401691632149645255431922724325242553991160651732849071754860152666114293491748262162512737044690284477435207766250766726220271929521096208834440122602793838806202513854075209706026829543372533632729621986687577444168647978440099661389951928889972353751249815406152392309626864748891854461627808753144535522088449586373154534121065035061790720441793357483448256351652737090204471039928965951713605655576935288365504270311857318459806711089405538590733481371448395694008598470754724600804248628770283642170077423635872457046841126413572591379008867290373494444870794905607790013725606589291508402024308948771977178330323512917731716752616680366465919137001572342616643442275928042275032767361078426861418123528824456644812560482673052039329433622850897124937742644793719698101008400011942152197966324849855343767594660705021596628242819736767560781749499892535146620508179918781510028052818550489868142569617559605399052394038690037107567941588272070728709894076659449362399078558721556035510947668957925056424192143126416990302272685770295678029384130520779393054038335770625479814579018001306378338833532629351227053848413999954140721174501966137180776244045828192159277826183885290057246351147710440831603693174811297368077591903033154102937319170155803400475025573825522019620018934467218932295384057614651749049320660445673724507891108822411182131069480049076432667022575581786503440067902764153407648113736527790856658521051381938669324207986910536623389352090634826180835314817676968367653378818848070133836649382416604646705007540569892332133942153077168568312437048711634917870401696587718509545460355502816244458621666945694674045566585570647773426239102424515960185477892721774593270771718316065451336687339973489507019901249038061734577926959481633925302752107077492832636990349940161964066095143692067694722346787851477501819412971338164219201283375769599567096431400942460505415049637700059634081858039892313644360552804066014406365744519037671130463803997033688272030050286885934656537566678558165430580868919448756070862341972186313709606270110342423275239988038816952229325013198284539226156680266270797834528644741181432624144818764189290294577406503659680583467361549697600128417545862665244067877960516513999446823707624176029868866620705650000495377456454484979270747388388007362382792492801022593392243682480992468025097413783466365259303033023948489504215305626999547376013910873705652896917029159910785794135388421786503545686806566672945324375915497473567745170329918857594093801675198769650830818507725442680116105159683189683501828204712925105725489030140862369306380156823401118937655836300224032110836814814825779373087014401500224879013768544839129976552206287685500068504710466510632768477972578677600135930620080213782630616703313499569625024574367095912269427011113319728470303142359141153915779046987027734237815950275501851297416659686611743035064114347252916310263662833053472662293260479526736321193873228383504691421661771219891227870831857223744420342076077163053627327776056940031977368246649879660686032237380092058766793161086336502287172494099354686769915225224766019086019002057427949848496031015435960096044979177327571776895671608622121690298280403464859203196113811617668907714072749996167127881698222880408881226410177959557175177560311252695172466144985774027782430328989138291920093039723737654824851479317890611863748276491515826525572535118067384809718724446118730477691248973275418541866755767706116929396440409431202900116984600272000298645693652905880946316738640576010561417007676327265809874873871766852332007810405591246630581453115734508782661101514754611755123584956993226087792199262254028451960377911008052669670477193345382976194943922712678842138626539585027202664110095051319279360592973371764121045724464817191057809433145696083461055374660962204980430536050384676471953956531647941924330067854805809654213116582668286807329441974528147524281680912228431754062897489485004444183549799725014850541521043668204489040448535267244167250853079898821285062791168847092115159937090324061770945213899481720427297293313589872180711679205829086228139864097681056629972781652485480670441264747346235997772530023942408942883494989099506470444402583401585810464079590317376815740294197361736636058194156842308425621923119095708768452103590533052242978400689913381698188227679202875726357038073724155799197157901531144640087964515089527327428976698020786683118042678994562284103058180885699355149235952499875134950731036298730354023835947743217565176208951062909869986246772316524894238980810133446198179972181814462486683465579137729631200042225129402355177997373661512478444932891666746566312560330763567165970531993624682912079625139893116075388313568107847549082525781161490287049680040808998736306521461613881158886715126550726336337744908995012006970081216357279201418002980497756140917150898372641010216593075907385092108049135918908287314310183454399284437361530971721714211750588894276529316741741100765569988197669211686726893683461250903313045472625035524625045503723371098402525551935543438965426478937802614815906814256463814808063965748468747170112352607067460331725849838592595931361627411660241019982504959497915126675417379951964290817348743160215385713597268856545272051432482292816754836686569560378602961219967599432286914930013162625230245172154449747065837444753952217356447464414175878149672423187635505845242310540524099801293626060719193316616174816931541303717192487512910227692254449585476507488121984002060323111610805331671008576089906601573034623593255625333435254627103048513235315646931773240441820007430885904582761713815768740422581637145260018281258138884413074697782372762677493461915410055075559887532395332069120620109137639217987199210788570439724420053809290637218664191704042526582860540957914840594405877855906944766834053676945245862626324318526772619317763005952608261078107723620068336618755988731817594331384040073126829343739316280698978027978512822947678207948207670456439285178576995629044965523993578181936686507354791068789588190084296219568043819088877887424265702878867451247213764766122685152964694668078674848645649642741326037568291286299629715911772627942680374776581555339532815365387672231398620148875899025249959329506396469183938860722217184663414546056406813479274099104554985255970687844464932765538672794302305963935755807741075637966759157905447049146002367566766937390438768418275545820725427284321013113211359297228540027217640399649548922301552435053288119408113938129357853239113389376539722761205457594992586882110207214399766639692763351848260277574575887966556406039686429407174185480116895527818359300178249695273941779035298251402151654714204148130426717072889360468619135942767553675717846911472444290735581865249837313321682999447087122938854978498905393307333866074794643492595947167912511896319823304943912494189607040903668254153247432035059640505445435834285373568982994887257469847793306231826528701777879213613004634673937667883867512611983017457186997480573441950192582090005342927221229998661721828960031088087137670376074382091673069791122845398335673851297230493189296605907260768732353576493879333476912345887224483516744127774122256539967936785440097682362857767587760016181769156446689491917586902706669586792795386029177656971966045232498789512478629787085254650815078631485345603477430481365576772043136971916387839421383425529711029705731856154658564007408448941010756815701258114650686287940251334173532048104378276297651389984104334675699878050367375113180733000741849744539396250060815060415523166858013544050563979722841948279955571018791140048688421284896970643166433228157811970856868534640732644765025203292903532908044612614864615066393394352928157127338515919672863979728440281814277291131159045804333799419560785686044125495977866085498487229848911720558332058064139081401164574126483868863370698955182020188120864150693003060951464582442988748825772434834229492643394394876201240847907210628593857388382321638495526511590226303224852554673279114364974544930411230348860153349124854081734564632159153506026183526606023127724421949024173470693597508161787126011761448713150806065834292210510168340101576445179968490178250578573789112452983330198062834799537051392028102997838517454920359114155557947430531508405321118279860349162455890388698848288127811711895425920475024920586314757298771946466219414037917807874368624212095747981654936388051221588804976373115147987614859963863988656638995485406776110802588533683345519858208601508418951499022346901875209689762658920605503984327183078813799987185505758486588638449406669086856620487736352160178510915704396629021403214765928071167058360504083654482240496290845847034086340102400362363817165257686059783209771805379663076906063094003694128423529922239553385608502709904420030108681475247909390610987604374171824035977577463548671727765336532560548367616245013598628452139880333515617091279829556327657186692591446230526659078134348787833143049026074460678733084948385717244005542063379623291397004826088573978220604018152702602087287166054058912883996828035050011228345422687457075210666593812083457753387766716750598505166548727449995090160213292515376555848510119005933467477573687766048014640591389294521832100039324828094395993476020547853885797754992398272126634874956605417381339839190482841682294735224808952522676663639114527469874415888473690720051888907099735985481171647575714956163282112764655895233993725052393508120665638314754395811920390469378207938374515883010879605648003080959281326789294345541272694271677519426324761669969212123620659371934430013003357734262258268464452399143287871913452864119204608235097723740505920482856098318797331593029950597337830921359083604084132192562681758722387763974544330446335020212794547167669930725209106362503595506177941881922490641923998294471775423206771623304422654435031830604579473229279335961936800614850893357744845297184462818759830030692181006241557328031429573459850877492282413728787409875745842288907949798030120064727797635321854140524776077600393863745234180040311592904304352450369848097775086796607653959463586092823717660428472225544050703088592511705556546719364252411261169615069230111942643479904862250117339156319387742738840263822419916699774545419526414640980476589564894412277070151216712251975748798038153920501470909721242780764130099842720327572186188270045029596297851510052615445790531515276100080860527955529469546516272259530951480021235346648373533001681300063895869200417851332096593993301384256476259920359093008786050541154340311615076005380285314734343228138459589142300484299110454895575573518344935456366525755301751032122551429809944841821863117343353678526516475921832794491073439770627982560715612892322271416036059925337061680463842949878028947770314093704180773035272987091829042559743897815320012769501635841748178409685612610733852011398624543972965336884793061351159429111877933852851628177906859025620882313441221724612886181360351406807196817210121795241696881733159445859238597819569216020255090086846198556190626194059352101215685809129553444318990648608442615268176192050922414765269059876962837410142628942819104981733672294853608569103351483775142484225255288827197333263500843363706244359503451301768723935966743009792216220890492308099272896163475323486119150090016036563972786870792695184904869371955441992622210642752099370306464550106743930380629531877432731606789826529077748857767612194687883312188792010990848262226473161189839123645074449936581657269538456231242464600315496919647667860437780157759247013564335061973418567735396114273920296151095188252138893789826409213560269390428434809946483997008205969071810873874411660346390659231050491040525423752828771036812214156855151566824321566753997891742250554686553437418277884709166270379770443081264698258631063557721434628256705066429866990364068570148745471441850776530130272033949942901148456026234720727670638735665092209514524393752082602716110867621220572714144554745186981317475331108731178750448995617506598604651505839393264912957592815534560423075676617034797884170728631478903567426585972862542683910511431986146542892099967821108284416878755618937984578447481599373572687389304416638700385217732999869701357659186764505390198100848222074475620103388790191035086692666290116138810327135950039114464655318716167423646325025183409671997254763445845287901117566292310824599402166253940969937532548048308784843547373891240259221958617872822852565409924280459389505136110784005613362580948947108887226805789487194466359209683422646560827751014291867623470063382797397268202296439253333824114783323681574404007685601830434313065237314536650468312172428747636360663527314909404384659673832893479925720712732703559636565007569965187451455198114559960971911008056618465191928803315075832696588523170733204487584096053900171803140080054511417447805089363114833010497487009116169958342595424886742547684454759901485852601386632571446102233258174883008216569173365368605465309641678600070203644661233214092040276825807079465298823159689846111592497396122615753626806468143502037393093121153986785128149586936878998098473876676353590040573673556804458934163728278544240284258121404536997536469232680449547694781569048714654104192437291426273225864730944535698467772951987174994664268678862857663573563008542859444308452267470805423998708669575056421509483068992871314942836627265803209388727208510721065612732151166864186631860645795774452643565880399220980020068152083167952563149347245125238713000178956471424286677607599271041121081113981374832856632035917919807603251503577919713208326686910385379553939294346845263053852237745080637350060956810465936213753118482845738494671392654277213902689808800579510491457107567467639751661768509882958697239490974341953783774880279284783145554404386526926275056505869008002022294764514585932790986656391007806609168933494844576514927566991735589147162610438260892721082235715771799984830903202558463597663123007300557362664389889382410704844005663429360472224695164404526653340141401653342309715552015766217848690549315548345294835327873291239412803169648990678508465154834984609723763020870987021019885564961020465177716215249370725728005348966739184798431578006144239366695614567895309948956137399843608928669876241468675361615911858435073339146261887912137328610629867173349451222305168460247810069090601917708315664231124958269158927098854806250085162148107559263190117103495045026986808360155603241044464694022678219079931869127871790996810177401804967491928188189326079945391775214301715642032986892474578501046296854423450877065265576184555478683263866577149479143649305199741582681675630966799061080660071503805080349376549796805316663598564869997702789536369407781338981773342587505606537813030505951594515109886942957972134744712010631809715878902713090845633579468685910020396752487735646632943450812620035050263321110555696787670303981279774668430030350733674548245757046048480343255175314812934937834128131507645750655525287431620744134898641080456443289584286873280493703498049544624998743344355479957483663270576721531888144033806492782772033611664645972563910394230331981902434142174806787070602855320841818416082354038712536683617913003412560995763119887099818703276797149991703356996569553308538171298232948351223005725296972016633758196966752269123166140527970037726639851927623026884603952789514214191341730206148680469191642516407761325269998781922440288259088737249233297371782227066701605395256009039221616160079317977712474269772452659034831021501046173649628735464262221842875104007463516395396799137417203851177264375249665767282478090055235292530610254729485594773010215790997002972813771503489006289115250249408034724392244425139019383069280804523576355944403729720129455193627109788704786910721705062822898148298427405190380403350729177634852591990260556064192526866352650343596386253007383990965267421963526505354400164645458283575943213078161705573931351777004059247108941664962751372256267412323057162670963224218889873038635498290556851379034458186553186706988602293416024535899622302134680130296372380273047713949841888168185342563849842971043823376567119658869413322125703916935671226085301617019931969386365564964679444337009385016863492899362213010145625636608986818795555067921060026246505121882607140132598394780740624239431504343859351984384740992731032562163059867748584555067545359393151324355431798497723012964240759045251340062013926929313619391786070517668933715607131477909592421402674718013138335241862789155787647726344058849959145742621919910545373775384145683537977995386330222912342577777865019812726600915944616101126015632642514800606183903780428526372963645697664902394581085304900169411566119211288728606747160744196835294844847324043003089944904649538798155280004872409928203544886393236212380351263485828250639828471712137623201039499178255488809192019484905427847779754539994075316549224716818143696991521571060403390398300963893662313366336097553024189132950943488658848038974441670167667127825818684324456978420337224423304296825846595453269019383084748763013458805726546612685838913437678196033222220006386812454431638713650389202306649056859661702613774053648347091351291965071964148563632482217901444657781444231251960463307615495071018168939514919751101026499168135576793273278548382470207356287388593009792753670234915253690581439427417135030330826234210447028623542901833069060755923280148683989065940882374025554395873329248146359646821518049922395746149217730898903168508726531060003400889294087199541604732546243108192412724737966075168096089616936660665342174845743384673165811651898263175769800164748350263274741427079418839450388989326574571805672006702091075440903482416072956263714528485577817521958575803142820863249358328620263780003496378330042676302507721936177275170450687741126029867961101520291644856901042583150395616133161802120514191135184614238263779263483778498274391541828518385945536103692658774831895115103266342086003904942672510851519365862422277389478627563271037509131448837099416210564303590892401472073906028213384255386731943284950133436546949690805467713227197360215366037037760315571792148128069533645809958770117446347703491182825706218688719627089762114585953048369596146390052911400141946473649466861948672140293115208390679091299594696342209681930667897979891619697939188880998240685951142832949693924354761340275049006164783782712408957106184482676210177380734947265052588866513793321043540187500765484423252080574718206178181839098828186953843332855422659639516682694210952888436580260200277287651964781711564860820711825257734043667282928664999556669042937404951865140450819162146790605004492053015538790038904685653231800041259953558053475279599605643796080426141444674716406481629864158784864761654096081455922499749290634806778224796363147420383658748619288736022232332688266594305129026453594152395519040524215162828274958973190832235718380877147322305576413527803403222462327036107379933747318768562015441650563428047731529372741822086293948999323504433577739289937744988086963081719614120620060975114707656275181820239899326451743598988415746804281991493884772050546379605242992586900457457395659582122294721982139104507845387900425576392262916669568086937455565965685494904693529581815832158490091484201016800827974972057627173611381108129401519843919660259342099015505693711078913735843268858907071123698116889044544282118951675497539114021997178278389259185914744635004987817702000822662675477212580739504622208364742330397319224129662024290975840757542145430871441838273288563018453203299215572392421583859662585257604027231727139017022918273073002702129859842349500346035879058248398521785598337540531138255768160165629591632764323719043631499506263512991020720645154983256324552794597597609295287977871130410013125823710895748321429415620295157762803357418882003069385450510436939157095717853814309148220195944967210981383622801077851611798624721171099082671981279963492398465494138580759625485984148111271191982082858093896681147852200691157315259361446915573598346054250258078157679238261088937089310882005197331226369717455812437051746025539546710238718752427637538806772814045441823989020391022350622374772438316347290695252646746906247931845203690897856062812414730852981749155771452766281919754944198752605365909786204117732678269449231117226756320633866520803087702307803829013510436185913558446847830678399342765264253800863676625929288121069534732545883233582027720811966159897659726258119876141244153540417826313667691213706873780634871758935466341549158084236733179712013754949740610404667075608456243014867998238681620596617913195328415400278095328010426440522130576763389617406993754616164646801600607606959624734084279985682949796925728615432588780726743725186270507883985403251256650567212693790180649288732999192659240126350011802060349798192145794645732816488239870781831454675459113022401926076047655766016167175548230240307130370256652297922836522409024499110159504018465954315816901303873898299764649388172043261092731477102980434564597071162441258831644068534543050286941188251664034255224464002299893473995767233542906858096379489970639781381093457113065759315073163347039196502674291638597033388706253112157280897078666133941093024450821959765627651723107281322178140150291900995780899060954492545650741532745644908706722632357166224831018374521455259265148074596348760143333594396543703989807923267882869384315538644953875770598653320530085793528423744059075976042999948572395324170178649988116227721917500938266463685845483776625152124932205824820549955403598776553977341320140594808496624201204982441670939764318323271278202988288891315015054715605730337048335802587265887583299328908263434066458802313456687708967069872129733316948073268373633861281209632773929884943093438964045177395397761161505941866255322920921152825223968206137280560872155729465639358746372661470491006610486385626049678680343445791011642026243436076796080232560871465934905841668303610510696384301736368878858537623951796210335413873326233823102073496367764082476411626317674610854135038610295310684588804373451861647637869437094444105169917883617663732890343901798970502985640903466700563017734505928397266174784411693289833382647130466059074813157978915556925055024324156830339883568304287973069622901181803304095870022172316146520821865158096924830443266013335105483173206219640524511279058650250658940382246904009277151037019521500595923704576899740666389283402744115547401321585958644103775582564277551874884067511284522113673271018711639746963993708134564179305562562978199607941325530965567240632113962077694760263367678378316465078681691141269917477030177433869522510504902595481914944658712232420647926136457733168808060231822792257247056507092282685194692215384362985562745830950455943337119488928221158513475921812911276335150215693313363304200501674922035081741893891558996102223872361278946233428244688260447716191035650268187460872541372418475721594723956385733031935265993867734751698954192214429162059465999651584029909704966651687471077801351161224812468095430043652790860716134792113391356878083872843425091499245134945945501679155291837421751711047823505108106548926375336674422429839467601781857106210719522407063923216017656369572354700262418504339405496368374274217424943857573318870155110871087466580532810069941440076615879202436292023483302910141974412364886990587492288011629327894684294791683161121179909551636819920394480615516424070899702546094959307951595717785722184050727157065678343580556509381315341076124304512492189730172406166843774127446795122369944322950669368186972606381745586180151537850691009685789396274534374412709222903761718164746855765144979364931085452588844184381130296481848581719345541277725661742880977024336077832742835304159368201134519309826481548992785163247024332423316981087859568538079064058076887969149352495928760224063581394969762832314794846275175871715452174939384379550548902064520507229206106671424181119192972260019477957677944317561941198997050218162248660009608112256643066762517826106233075639734474106412602256899896086280530979952235260657617632830440534967194583288509465472669603409115507602954284153703918323184716195126801958049605966795595088750596359871370624452712159479838935496956831463964517912065541618312054082226335044499461255852204865458659137878859528943552084884911473249641903272941959895064140947230390774427969749901135878937739862920013859061849832255296448130204963136140327757342244077804167312703648689146685633857981361878352220283287588126422957253327840938579806208810496012014044062569849399263268917325382296865059007536437342745153255840326416668894799358101330905278679826038471239264728063459689426925938979854210091877194148527641048037535920858909655571493791961746305454833539133291710719323196248433166810908784089601003198381549405854592652489994669182277155603759664819109534364071233565795172221356409109556669559364683553613600176453795422962470747359019636908328844347356564981478917948106052924909343203940527231015618775422330500515279794327400145075355787017350221639022139907334332676343785671599840735119598872482537502306740034759639261648139493862179542837904517929791746925809013320770182733426081728621809057275435857136675446126573999391607024303152637774814712530619317566222732026391808981340515578537877121899737315354540285549466090728037276126653862054454982055131128687037710432961129682916655492754187113811579195604246541592116220053412546433059265807054054009504923793830840493392886938882578463346390245753145647092658871145631627385459876549860568061733444080369624655281952753567148663520385212914314448687779193186902678058334646547844201363974822787509233147608177134432950025039075316252515648362585346221588143361874867219570144387288004603824961285780355009123992530669277457440765564213446970424127132057797961086432111223792503401417249022522514974845434979911739230596216407767679874686518827656599062815244997335177465665985621963891953636860181835340730615417461401230585471287838071679024846019173231454710723869692269795192733272678785038400265237297021788368877335926711987010143407193212613817838627553278885056328802603758587461341895845325760257195226209050653280635581715581034626058562351206895397310332667515037822725221740086967160086878473407174885150903813560059048176336971342149690564785392792025522255415830236880255730428843411240826948120706632689282832205513052283489860946543505575701069141407658134471942894340210819277530319333493318041848729805092726824096699912381108804034468150589933185287770203785628746152845570404516100599216718970530605599393522534098035098261338496203386146858783494458161061828386453718145048021002171072445512424738493773009157741654477147111101300848028813038343062023385557263233925848113844674660552373678084636223755214656077447976305490712033028946463607898274800237904011576209538262444445772296049729996867336556343486773859212529103109639383006455302896774932132435031689865854934815600272503194193309584580656602988864136142737761288702526573264536550290548272852018907803542686489426100369940580332364525551489990740178079474080241175165273933889783747690077941228431611718775892300423639487768609542946000831741787908073746274713292604956792368773354321051866883653667823574163727323394386152701597397215251084062346651965784239496874078791924026994788583995955272961883519360576898373351153964244183280281314859623269489419518494889382342794847412250616094560173155029347625450183632488857397528332266265144173050635806876462199487622822827288294034640256710356748843588174430267087073290427184039733031765603385701628658781391612650275301814267114854016262753355493049255268098116719480497670819090239908927276289681884036670784597941568922705869592601132006862444158136214956938128431240957576141020059102966523779831185343558003934201232540104030968935592800961854623286468571222775662233595197219283592229147102437693142528741186599400822123557481271546341342026111673078801497464876541385970173643094873031876730528518397273664251906891192675416602264409710206763781208344503628876642204834183561394253384863189431575338121066083473170675529458414347411155191778380878268910072605420947026016637664518479692459759788433873122215836961902176659377319036252368549522858166303429744921899128229720574274431482531689368894831381636908698820719891359177641650974439660798405258854879345436181482239390095130065838476354624795672061059276303865835614384555385483930708187157926428649584810360933614349003598161965257674700212636682163182558846478804774698918634842012062583232912851453459104551183858413603182311691121096160352695093178690221411729819168204506898783318950985386710693099884847181072488998760291103423808098136765912991912776063561865827711997675645559516739051555803712514724513968410995514041444600138418824931215641824853154864349433608375058431834238531713367302317196230365369714244705329402982536125957215270338043530822635350353908700138986020465518716831384447987783504501241272873856163893321806113766264754427893041791288868044784222943108510121364129265488835035818406447543035645877859032489939373521710967502521148822603312980727867038622581457360019109654601640021723575938060974099017486096018302176213347278777797135750165982728004428912742143808086837529993293127122278882867118077937025245631870121259694442346577894242821366465155987428511266266983337892310662409698717959881229887270803770421136158318449102009766828529185662355512535131983810960929931279611236955714990174857368746788015574929804553496681963606371029449176801008257837147040331066397684792688054650272216097884906342201259392510694369376441782720386565479641604331305056451627479151910609354174487199868988141349091654316254292391864522400749007600065942472513503333834628452284444868492587832879903776879535456650042728955780767706590210146574795705293834847170945976583906847365420444770299265527373427474746453542227434570475656114218941459801559543140237929586445306920473772353024755196740268319716458074601892779112654706042812711487220121086242045407331131859636615099751871396163980192639843306529791288978156593557693616143751929903292707162735271256800636617567727493478816791740574395784999746121989961278184661971307551306279654896544514499785203143064718171845619588803127482744831575696213054880128558731881455000972012055986171560823359380246401298675097320389972739930110670189587480368751744484450640754182575743744431874338309619477779036609392561304938670430364447852858528649255861357249223389051296073854896032385129502027400479160442521043191122259463404594175111418319260292348991075350811285313925597778926243386025775691118748836081676423791444790672846082728216547337633269127223391939341433866471267115833226282604066408014654979753195378426599702667412945053989357661303337503120397760145632903977380291123946924163918292982928903699514924095419663770269578985193282522154473125795609613977863192851059730866191289746334151136016794529165847477343109073039540663796329717549745766004754408735778728828549487544234005558272238372994806495368978766048284860703760793075095456764789384508333319855773230215851402606060554227803619029720039186417184153466903743213840551870978658142613167588600073765725281123469285177373825797076259039159635525757895779066869296658417169895369425237213663338851944378094583012290368303170883087016918884486437683848624030192241813958067606749346735114294402983208384247161028739666053000006291415955523636081511643265693631412282220193439363530473375346664339242104210203259937759424183450958360646777287178048264534782325564734573693893634857001582340423453323307907930351419020535365524032261486591579188141170979383518652781318126029039528082084081792758798186204546286936377564628420793644910131362791962186258641988272731968415945114688610149500309531060031710629615718513937015943936621570321793553017062449095284394757472389531614974857387275423537776409159898349610655592109524780986594223545582326384973369437180934472186967465685197329030981605634196628229551927625545288451503048195963722487551367466381931767346700812252991884398121051352149891183668176016306253147253781472891428257088291822674408208118806478323937042386898930800376448085962561261574642847674870091580282220096158253481416698201385145335542032544271113196630583495543030710191842483305515100882417579087980154603772243007477777737416515885244490022601531416390420089144533857678487943489378806221951333856154681578377751332473893395171447879740306691402719935481361954937897720385190692141002309595836037668678942537064942619114537477218902149915316590512023201074697745371889894377260369577626087115581281463943175466197990794344854336838190733267663890255085323832365763586276173928295435254244403970541235985187166908371335671164415026239052377475741113444876395147937252068464405469221087169182453830335437573511333891854445341910277203603050419682786343600032339508130365612151391979963074891251832209812712664829307960905063037070043666331026707260888502976959021496287066598723879985927139275646636185902260871376362738115802099474277709505739810298269694816032092083189306039879932407159528095768058240476606651102911444511694978663248275209174637206365878443230759699278091044071749920918788095416314898998116647375008284818735923887895813187512824789450050972939050139180296092242253854087591305716972266746409185392582706825511797195113754849883340376504136976068647066507599514119252600374551424931576653657964988906652914908220569619750138560059137035976691341456630694235530330582847494209862463941271908198833435594662815584731388128615315056263764694929060202602761416023610098021561571433059622407409897149871362627000700702115672647984162025130464423348073612192870303433318324610085326247103704009310709654435830549507326505854477407913372773747455886546524848759692468991566700405565993430973816881687998964499694744772942788560942897952196161423456090045437432984140686731601088194409135294185371126845885302939582967973884411133982871957005065300928038474054084482183992534797567121153632405193016384388425331142414326118571859274128586892846017550289441705802797461739517767953679073119553326542676779674085108025198174684486037346551686255936721845849309197129959693329384953402925845834853055531266728464574555403892912092741102079173507552612784266513106364053933897404249333112503733247120294543623838077356002938301687442122723899092381550532647283666822076432879843455934023592035082822372225492914524223274344960382026452034628232833354703358550228695723453685156533538041769171008378168501978833321887917509349960863992630813334434785540479359705848338132787508389275382319474857259665208846771733001170880916480329820452855304689465718518410735743824989175062259463702200234691745488223505488860252831495276729113984830152530207348498044967262433691709595451275279522568784534151985038935619282826125258370727294429286779947314466486531385796895143655372722178818220954485830298936253822164561862730073178264264639065122254008717297603236704428354799409144649268543982756143737651019445178076033230373463806020452211951214590484852752061600072169169251851133174181838385778212508482019903893321463724917789249469941667673376855475607072107052218034465778610501768193806872786434252276923311042528673495241451801318833591792884099591383629511805741833763481461575794900402688943906018029074003388551654422857639571286834180864530959519158309862281890399876896377876718896347014702050758436122979351580851498633057174271345701475503993443300566577112959352694007187065543875981316500322001618295479141334378697434751134132728309618732202229495287670106346032697756310950611715015020305745487448973102195015574064806496339478785905093536367720733292486654691002541866855689091061013475987938214995061082296406774636022425998422699184784285860652555417082685289948913817359040839889120257683582012975046663010618375098482273446871583277871839496862069487769950699486479332598449001628215703972088520348496963082090419806087125806990805148921411328811625513783705355443838857319250936757017849073824455180501885758796562258892256498699220178168842451080143806157540294539925923341830612319824319833799486645913883136976313728428301594213049208339736560872691643547393612499032630811743928167133326690407249006997477583795663176387672858518958245976451130456790426994656194405750568203480651183446782490609263260452334544382777454776735860349502216773950830667402620820014818109616223768433648469634713579960042236416244835935271060953040458168865205965428851412668632353795592587348382446458098157315354921040597630057142073987308732913824794318774340814017215975391969376660955645384096039372184579016257086634718221388746837217033753793226911819540259681956246648447930898215683257913768038292860651623336500939486058308044733833430836643622615219221171804294136414154990058794129520728844859974041106182779589840859252976085975109000118043388024119399339080098461026920364052969645253837616755939165470884276281667998106058601829956726469626195608587230848968602199890473613331774989347331744834920112883639081477752416107841803505008111006483717685600787526834071218052405412251606223696727238574179007320537593941652393352798701831148117343972678752158550655898223290038897770900861240095876395877529270923326492296449791699618349514278468525476941287069193410296751235611424644655192918842686135724932589295626760212252099624661135734924499969919759992297699449474686277692963261369984821195077830127220341621371303432297138762208316527739361846208229215407946836321707878777862321379019816017704614935812386939042575735795692007772143392559997899506916382569476293463308471621888782139678087050894209013076444667124490983340423748054493006196936395670850767776719513298492163914500825203545804843618962944318390301559148214797830148936193084829890664340155444512242665672207054348752033585530548899329151604955969974771375933618952900092622851179584604598407223232258851487993849964508646603875913388636739345817967446642521115340038005397007402433855403576802886946264046863307044570320112044880866356876607825694109053142101732993440794260129894916343588908246143076696192521734122974590088197271546449141746181170252320136639166318546123730330690880875531004449152847411259200016500178528733387435785977617349071377397990979761957589183545180141988729414757783809651654526558267970817270022101477883066967763989488235856513863527182701230895257296496586731723531804118098061044461013256008947869861070034497944540781010941870633737955041881215143688203841873366779679816545532106049020138973855477058052470985562789443677014286553979857371485391366839302710312167426758058318652089077311625233209552988246612363590421590956425911427602149700544947243086601865244833132748189288510402305090832977745193470363182998148578260411581153107632539274354657803279716099310557724087440628534167268414059899234751813022236523885716235060751637853788843701246840725386832640226365242318122135489319514669633713862973885999116306561679824307852845814225602543719650174492642341947156362472210790155573547857468143351331525057573398038377485867596045049327912475273144013831516699589078770894726373410492791354464731878382415218516430944763143294195192046120267215163218274813746002854984337618590657241683685936155450177279431917628280997349148405275104777923546804513448732762105516973707475651127785503745401546736727259227892547402717695627740671941585984387004871011539177185048637269434363883093338860481420448665282389613878989736062147360519855193896916559736063827858982899399196220241933592122968412721822788717495676245211999525251028785861432181705454097777768683335955424934739345737112502686935774823380938472015041311012930721459856792780722924518465473792519807267298865985652422185131666625103904727876801458132379275114928552862316795395491414183310460408123884564947244858747922806325820380688274685271079825474443265869792062612830709043233876952641439124508355233232104552345700190609722615321286993766579100031669582896023155420926261203524058790823886955083069374037341197022684068943547301958510165787506184120526017925935240051261661606499992110244071316963795588221718937774455711698539878138552918770236165246203486072389907381065232059037204778728808220168535671536242944783548446682176534091546411036586546788874127274407039536747433772263457299479895795447251811189808113025561347439677587267424007111713049159368618071449087505302323878636941198578802130111127437272741879944743422783035808477951433068026301257732772638563629224910861853760633686094155018265853130348372465929412366477621503164768504763410339436588370355143335258266197731913661102912171925361750451748592925502404120688551979490282569830574799609294040944060241963927253659590610694479319591349427443096759022637345260319287571178348270880062917071072176385817316644538278701451874792615522811865967716076040563330027402769706301572729014058194990148953045866467188899677101324096918246934133802733904877575695660752732366188836364381662915688550607242385003080480921938940058484363071268419912342287224812081061397390095501688506982832289953286977038955553828963121137527528492077156317754531356287195263772645232801273050449846219923313056201205147959441641092425758309233511436812124910884533623413689880538477860478150045792455245145755816943012838951073386731537046730488853382293128811135049617053225943434843845673083243416947516283724854624938379538802154100078680543602730301234064313683940181288789490602156243257821901695512597433426483464212018464533358787944115902908678431302476966130119216619619627320883402921122529016212164651036867615660039038763375501829329423917899264409384910650129381192579076480540264334308453331025414878800521566874073730660472279167347258821348992887859279409878079153000579500122407423484969793312300144944292189446160364177471017951516903364531726715364586878750108907960750931475905584143652261977390214367799419039373047023600052956020294838420964291569323872170925589095723628614491130841050968171862353686800551764345418416406613192224352538001401556908351753586474120339629236322973836814965321725403208325029346790475065883053344439964297410754165245651111592580061559931273974001899093721438808492421024079585817692537605535067525792828465949218724797923549546676112219380829828586384649744694724443600924663891249030120462736268666226145106548491831402945166504538199199327826839247209185948800402509912087006823906708139111026658305777599464073941969010927087214804866733593832353636837265917038221793997598237830460698941068665977788710994615457995120363838289261956644192269861136135925788007607176496856648031133462008367760310108914383580699480343615843316913328316218333356807555347739502251196582184602303814121418386640307492477615932698385476424123839451280802611866500340248559818358885872835530528474014606291623390481948679981703918133864824027434035227621396928709216600830131582921378637433848847692393188019768406013013194450430048061932930809118400670565120785437503362202278678391601078749074626663714522504827459885437256589812586103884631679310540931169538450378626130739634775183340158548783525458983828159546848234972226198041522017130413006417385868759840614377505263444492640845249884484169224530301535454029797108514066933441939003119977601878985980977366727619465106066207591259728362804599115449985955945971279200710910643653785654894323588281604904529215287494191348755981102722771279004247820448835942757593319125317537765152607461273871931069185191499545504914252997369363992730858224281843189165440031585045354589195516301522022125909873099168732180337543310797763963862182956186080390991872739147424233405846986899991750868542929588516076869231623594008644362770715467763629715692206274872932802391080198099707024510836112596840299236778898044969657516531429007493972234503221324598806009194949743342334935792881232360009973775878602145839293274972901078759288063579366686175198943522761269135101941565536100228492845763863174002382239099241044714599283244401949032427070685834043146379175980398470563191014119056364803460152829988263898726652823815622716207836072511750299120963079895598911751079575645599007703936835382581389079332622970545659483821709065932465015052235061755376735919676294294933774917866150273468625764562300620177846431224363230412218440643409474415434504539244648151492830721657931458784900195881151304807744656676506411037144494469845657716454254618097823631712296005556276447918456370464598704985451311030232835853791694246621647445536481704126591284059034140572976164016943232043504630954300124255961511005713785898391251034960908082758571132424640624687344507770056961743117939583162070799746108429873148516452098020609326001689705524330604388574552080362126930740870099881734005164627815983483718712576534443980855801192537591395983134382328355512894551163547974045783729049807965483537409968377662868839595764134722900159022969563129420335182722201135727361414076443535082216615107244145201582754219624791230343719288263380058220683420366130135519716030639409794733437850543015273420192210623104907533514850179894523797067173120535723662108132518831945885897580956218812828781272916401607203730031502386458996127111872447140085667609758872150942635748290033737775406507621808172856962141949288660831513807970140304844785417668704324753123220313070674922826279134047656440930761439234769406153641134771689310118126455455980911504554057888477132305355053580236413215211062438531901539748701870770482559884384042267873583749688856695216163530919652641147766532924161526924213372997137341923403070741251625333699339326625275995554848770351119689659985258071169097036189285724146469346248904743037538934310749957175235149712768989537561483829260489667044091865996876565261487837380661718228005172955785050000284372811647590410183465813230022709282185763286132253936385019240432881511801655946285977141453951613228304673249171111326355182634352603234945768447454953447973351945013587069762482712129929882206447389378650862045344010794603567863304820145833477339591831829065827846622961437504302703550978409907654351481350391245612682808454974409033076698110713461885792829538410514360221428104496247792671356887833692202576982206567958832527565552159677199467420608444115992818438268259576397416374986605084452237953656960478186864239022959620030947173273841828648566552906707528848348270323267622450694197017618682958267621930551441157012077778463640367875625985925701129329351201283536754563642263733976823498066942711443069635524384440695461149896066498253357351468444604862772813972122127410442593062296644138935900895425554467050434685933586080121600325121984197566807972900340548810610383372412149528755890067804992229618775232631112928801163767138003814521416315239971188845278281131376830130228480628745024666268047749911363776485202229580208246124598860430280171657562220222635332301045457906272143072003246259612988682261889377578491105213294018504429039213554944114489899198794729526542526770063471103308367360373338969400234230974684511483801278979042413139904053966673547178726511935324955395686836242151890770325223603598620866550692754356399807931151986638156100370674806575911774594155196176573674518408000955624393054024575259187193786644707844216344004614621323368794815180227921477597936931113015282737931141291255476490343618111180825959206635199545972664308123946405728390032288815318569089465570373021954390684560205501480483556505484430276481031123845261746155591055928364317789011813031046432653494359210565893776294691682722051983583252373499759909954657627868619842689023331239676388705900964585255080007106891249976798471916422302083942606908285779028878564000574119493069412629362619340150339928264129867701675626206886966432055142016893730835238579610007446489895565898582623627115085180616408308292287601991285684704122653603223574572491493400984657005981297906266764487894770748578737676452447565224237509721431194090019777483538711353194209654340246854138183317874103561007651203297100603684518121999149904556086997026257283128216670144738807416923642562508819400227203166749104048280989960388778439145187315899736289748590200202361635373482191162532484252842158634187590905677604128843753195841164435473843368113898204524667355812905055544614600765108804954387502663625038434251327669526796046417152900659034746419703035259451406329490830954813529287160078159150731495564995921806063336535004717261628937146527031100749514866152963561598283703763800999028441498493530083714825120188477451187058605888040830850083113876354949920827406480631698146829406013994657660033440606942642863126170601506363061901126466772666405103854827028785079738256075751317078794522133264020031463417971896281960732824826117207370469321872980343235384233229840114742051572518231061036955277938313613253952486546042990768584757784541183810417044271600714805272700309443004279797010212720453916376544838529965168957762621769637869943314693890806250578583933966637113137572159569238253761813769647195456554391085344864949349954334872118760159818289320052363385773480539246014045090315372093057119353929788565176915612396145984212523434314136861988464899324966080829773103314144838999746386016462672313791464112207557981165444702088991314194839116623355195044945926329697214559929880690865979598588653346492918128651764906594942846030791029288493115356144862512365709631946764271048841126813512979701817216069833858732016844234178300417312133365715086861654969109305506132695040443717798932629493892970110773667672434602144970513721805602084814359667509657833570627186338862321621259699805393079958103985341724699669969855894124949170738758444932787472138372399860575317996157752199702417381403434421274616993432623836751429103989659121417633439698333372293807590715268886491152919233993312265266246620326174789077559944463182258568219940374332869204408854759253822203650875247169683587570996162456221218358083654388394181947814141096129840394539683172572788225213107645787757472392921394600036986583194930765799747560067180168596983652591810345780198083325211787771718377512422338470248659884254471865569904740015567043015698961612215493160700073125336615638149199229288685553905083617477120860154045459435302590524096121389098101863751784604979521945252259158511904315891678826926580324122145485910484743513611009615196788706250584156646917325037710499168136760835227659758712550495511018824152403049342288019377912910165214065825481637609961029248134639740756133064353974152427429331053385386235514849757444530850240620273934906662527985408836849881042081136771375179598657000181499131788331645075348526205434255804462327726428830026133083500777915257409841304433081098089098379830224378519989368091618083489684965842557218794541395516598122958553397522981069450351525534160614012596043222721014482973457336021791857922736127607057974737462165314196426838657875972016283590753642035197429293073036670967859380060327635982346711176702088635107796443831807420054552277654348941464478316937235953461846808099825614246103914821608625901337632123801822500023938458558010659962373193368840887201473143090985238190686749156966604501942274224348049600304056965806319930140126883192387301024040209015805781896380101253276060771301931805735668906075123071409149793171864877408412265979138263939508331708956720932665394876015883295960285328514445333236857499013832695759972822324424010438912980439988079549480767644241447292866283507621055155425515670722122998768474517027461744067572436840412363583879500091643429074282570494262475322738219217012687375743906300407593110348688916493317470376223991057804150166068282392118609132825229604960759436292494315025430178354972150068541297071825741805973506297306032115344631404489804635942176442666521066667740308740575797733031954513048551968470940912400403844031621708821933950382858517739323483230618131647473676946882025986343529904209960633058729760990045913266111583197210866247420560475283454960371900106906158269178031312990397818070655830438164642868975051970763343981758731409023612322688766079549006305116316361060786280077928327838021842604608685667937644179071450949524872946400691800585603390937443570344496761215046871627865860782778991210536619146765497658085145916038246650966332820954786994500386800569022815840393696326745928916478694424243316495888047677811619486430744014831969846405849493684506825405123143774673576124276590848819657753144744218475678549121310218201742890603090106621023574627988048072562987940551061693132217169631150120159901834502127233506467584320733877981111101418296075617762408999137852956222979131826480226279595048206012347731817213918602376495396053473820439503479552102041381288707263830788568755248205663667612796757520852925511067288147069438380624893517874587732337559727282749016285647299112748064871526655514929443573460379958063008430189063887521569069740405629014002172017004330646180785358455618967930265853642720420393325467621489329801144697852668392692672955605104363369222702077752198351096347244381101859607978235095364573262405177949344587187846514636571120344829965080009664976746802685749987239636423504397140884369416050034738473568268746257894128609069679851695586952635151596761040201244495537325806143664437406062227687333481764063178581727963063740391883196596955453669766897957085187431014173959919641145303808350202352732059195896543473143797203653229405406570828935597238340010347692397300939136872328980961789604400230279402668868922374053981773255005352706972244631953509939167519400843175717235811571614092260646147522501020518428161643466118000615927991791716774368045777344683177745501568098465008745154947017334137666017817222220539094603417285562241296372414218478438121236724652550370495266317606959089084462859184175998830642745128484489887940591223942664148827954219853851003137880172513543930105287209285746694960623884742238762171314560206821113992806082185518006074485179346393204640511334495621404595668791179462207397838908330130327447507681946389288230386464424720855712946943969842601617231794025201061111962837021578609004022065659274383365088238938896809238491913048085309359872874212040408685716013654030396592960117541206135776073341769735429322142179891293647343432034623061793808312570339220217417410461681602370070511661474160201378194455219838556707877505567884972242746756468557617762986375655175865276858909346889629538951129955648388530600638362406991265562024738908182911754562406091725398953823986265602160859722175077805288083035028590574681047751338768604498429988829815054866524777901264453552055615812493962246989084038755346063943122541246659472184014183522539095452357856885593703963488671709019193452828976685448383856395874023950460429057936484537327850874185706682200250249360131176409949049191754088757089922977322355439811862376149194193150316622185118581240147530208237365046346618226502049180310644786411885231438436204473030978737480955731374537476856256166660712068036782044988228327671723052385547167807799126789766493878378904298954030303869748828157178449737370172310636774101022733702999601158320834139878947455165223572632750620488859314527095454141394548887126945879655282086520408208218720666066087707466091054340331708030661015756483413716726093018642348321148822788268103333061998522367653931740874753330109289282780565674842761368372657519591937279541730934008739409779960807577455172259783419504752487462789218242330794896128333326650093432301206612235804410483164973548945830565696734646328560202193018611118650572344653610102928220348572534512926489404742662065961785159783752046668191813802227547210288480648661146149241230173614219459785457772340733260740871492769701458419799177515367111669161090370475866870458833570812464523905736193229103151054412905551428562135895576156950337826177918008827365834396055142023959978380071978842670773574521145041018100857460461094032747232973287197477446804834045934976968783861357076011484483922432858708437473835828801316587388190055533942138999155407273377313994694889755383668261390689366431693778775995991801759647485616747691811553354168599006186934751783093122196694986778615064629944775865379709188423826109453430292193029195220926947073376931560634556021087974447682279404697467811715489266152265012996843445801501270454924403666226074809986846652893284981253709975525360862034475862665948965771672806329025257497180057676802059526670226273282678661469245878719464710733878618838787512313614154688009641661377643163609754127333760844890464095843715316987081606169752712329341389615231848435423303010575291931363891151194326659266711848959954611292466235944143382390870544308857016847935918573588642905890218130300841553608157413620459952776670499007214480789830997566249826970648567783356009030137195228067418200611888918472919772703188819974531731925114747702592505274061469593026665686981840062619929266737912183486234807752185166540002444114507666514420252975979384416336360480098992071978035744713405419978477180376388685488680415056147092551556237340932726842740539264050113328205142234365371402400885140236809412436311394088611954597816908460137108293884229285871347803047817400888362765632109117745875167118811908387452568155255615017924394308244326628665289471389704283150139946518250672072164605163625128723492640543251269511957297356166164432110383658038542665788933363055770464196260553499851524385720754884632792585083214731164698433520079787839740802903786241505282334512056935374926037007439633249328936828168125684665065789884590985444041672862276201702733735083258291562286219003898999794217389013270670379698961552849973065824715538231312276436506040471695760054235911614938744250048467593957797581588975194035188277302259878453528336497477054860372103929505539179423956261718018319449572450641297333903324627356074751187135554903203027758551908860370333566879136591964598342499564950554146335959163544062934601038277461412094688508508174660599387016876231965427813189985859087440638846446874442410435604362256549203457759150416499204170658179213586205669103626631563787298947679084588944125551009636797131223434824447670089166417012050507084301974393102357777384236767573838587413183296952706489301216075160365246195769633559357557321276457973937915898296843123425270157036317257729595932646573438147215518094148997275285702160902934229847522353334884239822348318192331770565724505517849189784444900307622501896846220509704694608355906022747478013600547594780010486784463647978836280275590401736134600354678205245555518271458388522367418031355821336144801053181809412481685933717882617857555514429372438508841608896283081061014535274610512557308009598605560931429259723847439958032230342342961238728975876131008698227852421760064741876719331564104584689873223777015431863907491574685222559426228547904383787245146118162919520700651044868050575071201304701302742729903794568307838583690809928593638377891978715952322828936658111950859262271395449217107049076765796074339751844696727755375578574683067741008406244948480576731804098853095328724538195016976729978379467992940610161317761452397477249258794959624540546140856088640973207954102915802335218484259232335511283203571622481364077291390632154874676114021929849544462435753017468254506592179903758751697648319433214132611257440503190670220776897478416360504323559091561973665369670495082172521286273167436744993408639625311978311151641713716190137415836181406046191411426727214258852924077844937108115373620697974151168256309509167752961249376727292340163475816563499619446236241706218207180361407505771205565236395077967785630984547269822554795156421015487204028760747300690545689309839005434549767730989174342021210533766250020993456944906860925308419694992666505268235452245448858642069268227940711641889476216337543682589438437648548642230924557608401574398897165451375063952496286922446225231039335832178858049656055087021540403796753507687848391221120360467638043634314671201412107103889108584207858584473640290479319892510315619832830069998453470030118937333384276542737040536623470541923565311674103867101999751785631391445051690210772098006166405439817997167686716553699766111162046001513073950488321240740029923370350060519165410539457454348798223467414262680638103122748762022517439869312302232414094487973429241847985999343268466449985241485422410091520527644468052743640914546262910666908749524873454362728410116294488363528027986897509686105950401289652665432993261489770599260771325480497755858949017384985839245507611201670756364231064722735327909900181955984061529679766166745684667675636676271837239142594112194621788484601619108979494860809517466866364094603121358973268563611659494552691492364754696564777921628299059585317111693936824105306535298882266703107752966389082806385888731013866697794344053120481037600031954149315294461419723017963371628187980918149472469552458601414240235800688371832539817591497706448335179550128701519394903342081372313218751031176393165613377398792144817110006345594873912741944587373579574576428769191091362032810920070122936989081082427206256661579509776585260250429447199082404022043615954072541091077291758229914936369209597618623609172912027383085331341017083818980403351061257314069727191888557724809971675212384768020771536983289830592061531891369665246810566155047683196719562727850406298794216436583818410473918981272252787637051707509848813766873658697012733846016571611670800793844681058648675374134619413250190168919241870959167019696878704036481288213592088174911457871254297131110767864347562381479155983535391768486279025924316824672429553069760779231393992865186013547968041639599136329924304238958000171419329282238419103181863728519812330940129223772258809817692423032158620710382684118286602787575487768253135684635675593121303844250562694091110045650220575960452203976756876853483271477993247344631487456789508173874011673640446893344921601297774021599366547499447696690334581984149242318497530833691792536464386312673409928134481635736706275936797375038775760055071361165051244608810511078160871706867498469263689263702448212098214462077313293199611046380655578376284443499403616904020175775965077046256997137690128505905577860636455541263017981044620758506226296138410716618828300732299918607293714571995778182638745000069560667993140159626579965198205243386953602022479133699605149172520262689478027498008211324197743645518584975210916435202198232813552083178080027164545747423578259611804117190664513188623769679572377467660460914646640664000296789453250405702338047128424905241068760828827933414076556720300792346707350090371366713973810430616813780897461334402494985088284679187911705936776248953951323453840724621110414214028351175018520907893794238987483012696244368317385233620623966305708764863959707595761994585899633217491049439999735428369965384671924983308233068085727946526394757830536760091964882299139847260167650157041549393234707861660907252662255327549244868604261731995775162605312374347924333132693712927841967713360823747938440320288365520848733457670542055365605747984347880780503931833111152258946861083299569668053533153031796796854488421078001384038256683705112705152066570152025343773252178243468850436811249587916280558639102699158073417397147315294996030995590430920967799371256126085581285964004241843877158508246034173930165302661422934584537996954195854502807870910301739215408089829339795878077672124548466468568203176469901798037778589619829506638844253584320351313648488120701754790171688881353075811566783449734194066761270899982544394245807738142719511880055803744263117631296789318980389676282751006940837753640496572263094149108938286226077557810790849571582992764821075403758136233837721302599087097521005916995427804518185270009689993448137909363255533390942462684063077423332100078912299881514581591937738245247796294291961081647113534273305076993394488002280053809917941166215404669560967950210667322585594819877415089502591868310441612706145298840117822475050943236406155125528911253841421079820203553182842015026460717394606433078285867773935681229381929316782497923666899970482045096278001430696122829484600760363591189476565346146024162727848906404662057962573831403559906401896961507734753106964140640161127202850129408531842342960121317568712630275830038720936217864215763263220938678733081920640518891327231336939715669121699555950279174068549041503004973734442903018743658865511357953258563653051080462881300726545612580392597099863224320402857096365320692415205415469866512079092571316739352409308253133052716286467032817168597236394910173052573948869793217961488161851056209501958568343528564244739732908901920231937553739421437009979672641396675921208261761671064896955466015874752861621039249110671099349285859018058694777141813692864557939791373564823966080896021205105063876905077043057732200013395689462338159462833516419734447819999333323722541569461878224271681421649775374942539122944614601284762691371319620100786773546958570763312859058622625268176721710118959402899516873241093060884114852063679457222265184883801467540916532952952435431818265557358442014736550222027045321034913934293859039940702043449050712849876821359300033355161481650234727384535742039999192470050649195769793568488106901788656300292083812894444234260759236516855903422060907942275115949096220546036332607342002462930797655630996430086411924568363512624118151418943322107342301108348833194475909489246886515794730718667564332230566907285508228920294064344159249288234263172497922054415491233290787060109930849778357225477237788976454210063061839277110296410740665317954849863191169460745422509098895526538485619483439458794623637968389447444009575344354357537561878598853498163128222511674187172429552757438066587084473621018418595985501945393972446788327342678691327866926281868893866458303963756597912824677380740724438043699650818242621028825270917601624352171148178067127257058272988515447599993656949783953630053535989237613445249344245686131704759911606868948039981584465593571492215823199846122802385143252586098935720806499620329914639803514690497079915991607459486414539946777119617467435348812374298274742824929786129124347486318289493169223141089165486753128994701473900219342322563033186131509973895399842431815534395620839024246914102886097578139516277706573686340773202844839261872602244298030465138870922026732625208538524744620244821043879937784879286453950847894130948796143308344371851201920302302254787290401446105012637205178122428992952930748053670837320341365580178502572783393699082874760862574227918991836127668990887956972831995729963892967579482347592461440581393118388092748241152035266589879900897675693470146480023546072840474966587846905520312091323190207471719453052365378612049287309505728442086835550693551220239779560245284964347977932251405612633156099937211246620101358324284296941885004644617262430184685489890384066008229580751764287774717149757978806283180422162427854828678361752098773413140173207432593605564543413076949736803357294480970026264034017817047979012355199321582748041325882039949126035893418729493723453742625610684244708656351943534138869722197154527575558270500906106589672210603461859118892884165440008883484570152308504290587582699915741310604196075484326451065707293527641626118882267241572503198713921509252937659466211940586330374347664202921698511660164452297564226842212423069577040847541683453427039453072715864435372700701959996613308839842952358072566997848822707663367894869994083410497035899191439099672530608950456166299096786714674665209386861962350028181386074324023142951701035335063717594676444549534204997684505881818999516414164222964996872291900771972569968427581963854266731696179600253731973663407610468152272565414965174750663765190434189192920724266587731631148968585908159833628302365360894589660511017578897906166333212837833185840341012464155595414740669736236650197189060521614970705266340340889735376664968060507061709387195045486549863555212345398209400279556829158525966079360323500343666520162030397437877838782456341095039522958185091334332001644788687419990231502401873696374388143942466192278646813365631610372399698750694217265227516244367573088388938538842387151310274544119815163749689004277991123525774427477088860634084301708757088346894372849121852052886055979989751940333332405792906273465210071436705184293419016359061869205179658733941727731577153346461439720474396697936603430694731650321916736055006251125638162339597393850047476461759853660196714936339468966588828794980596719030648393309770622910144000484473884477381641644944697679772992837848884910590248417006287222405617913385270512532341137942377289660832752092891996066604554399778685193920599239852391204942458411936712547278179240138396686707798010793522751204420577026036226855229566634578117230341943468795189942351147926900911049766602649885165275686022941710360159867128443905086703623678304858691735253450846437148247497006342954781284614304250724696173584140353393542769761592335446004801416245485133358824087968470910213844216970071539038978119247195680298733246855743419991928489534586782070667096274393571970348926504595898775789268748782427209274923902861988455876562758061570921616033931841768167346123510942216514997184660480487104362921284834301055985055579629246027363718776408960871096680455926475336399962263490961115055609587439874520233372610297962077032667945468383804990178966075870168613092044227141727996892422845122904845380014026103673140383306956681944068501789979616014400233183011571996208318832959447684108237870116076538518851242920810934181628116353650676834796301936065040595876582320728187580284690702186605001071466763106213997577539639605905251597905435790455001259298151742254289726796889467254513443406417830776787217900081863997493264257290484160122543739943621151245012991382487731512970573811696717426833548813443972484412972785212042531823116506784823099630026766486826452406887225598071420507495915240680976088032533481170232871283810956727634169169201845869416275329206654636212968880647981035035416691649476898618059720665595946982211166128238309564567749204875918272245687745969980949939270309214900035305093365974566011436654629327684970934337376601510469299365985105889136352285588906613291647112645623968017015905838491469034021065538954090744183280671076308918384584879604446637792442864813705022028422861902997326967168898445101695248602707440250378914986781553127799906973613187036489145161486210987972293883949306437571431778831968220372386149443735628205195349268238308769365080205482340103979279794527318905097999588712859615392261998693686483014995944993274826750772421069523758816886094607982165150270810824964467162938627868948835906384473257729298305251352479615312121321664092106015772109113365659867637696691635705907258140286880889248670093821352901014860146650126467900868352909442805923783791092532892904754348461531973738721130913458246502576000480091917861653197888282369149315342539190912400013137197740724544304873560215164959508453867908923721560466404249319122539866289849328903072981992578816463301883691870747468036267772233788552061312218619308296045971834516774099153778531775687762650683608639823663372305371964430438198005759664393730359641186681286763947130437999641088384993429640344428162988951001792343852503517638508229761657460385935896210406057656630365563928929271884302724062166171971854332382456647692816456818073279674889080234888924083845903427602736336247015259500117217948721787230555434182498380119177814239363934608920888197513545204718665666810991110755412940188785099741934125971081623311904222190572315817925033389697685009303313397339742424234532808361726396594866257107795429439779867614188993431715107844921864708578773318713379918168671226506022064190990281088701839712114774294418591383329819856130027752027425655702530462708047222218890152469383379793705649069059048265534387269293868831624062511090229375470578962668007076921430136572961776393460131687349681310713701248195528195281451052658627783821579785262746239778261059686695075178342082139066278584535402778410120365994514336711781778557681092177150769107472657557887706601134313155519759508125803594266019505848127202643564557440911577521289242043849791858442412551702253328066255907318845025455726092029999067435046858277197442076261649499712111902846794411887251233597491926849373460808985923058052696092347291253113550076946743609888936576438423762777814891590557109287700931098196926166097219479763825927730939952842551671758212897672502269295718297473772832812254124281476671384350028182632146590310708368947440500091037999975103156512317796313224106302725100540644036204957536082464618531220433031970095015557470817808454423988906787827222264216430228194696196429761724301341079066779364262829695922276441019412577211432795273041311947599183865929454043010793458581575948921281196877161626601085295613159433097158289035420358436899425568781674389492244605176025056553818843803393418283899474952358297888234909800314578100059117147653478995236020566846787447668341552044558141472416945730771725788124134194746925149067647789136144071305147029826599641874668009392567654795396945983946293952998984488692669145045960230230605516280941297358072022722126296236122452998546302822404502515531969534374703559796735648724560684589414738213181766916631187830393414290162689175296285807192951478499097423615731513762797657172747319021604935949953032577862407576664751281862933962025330844610690440738053620073183274511991108249037263487967129084695258586690961364619692821112553044471681489388982474606276016540635522987695370161294971981078343099926225365923371918427229420332087764954017674195568441763711709493429788972856679007979340827579317868102112019117850689605670545614982499333635371309470297078770954204934298427099979035746146663967098652635586555750588405382445457540892612729024608482610109456255491965414420589970880327334026254845901284635159912636576263406408052820030269061749724827913845011657218972806454638317994002163464345759534135978445460878638564084018730011063522700214550732728439119245237413537056607477696828005574094746599923034982039546358905317450993525100048135506043666266453435751690995043833368769477388339635622348452843733676958046211023555428206041436625010749807915974838497816722983616018388909863437460963657295216131265570281670007782162637493206745364658917268957086609869301239823613157623930317248376044933204690835837019066739126077198698737066970942682597841629324238034871178168571147585432676795107120544739740861056950349174155669199849876079670993069692137157802220393235628847314316355429604209900435618198455132240710273735952527466566806064664321944272281529897138129802663600347242830314235960875343518507455892848144867468700640421283588403709319747837574548051837534283484411509670898953181890080982197039671592423773766960847239076458101722147030620459134938202350537968056233348110179423559996080571751923234433121613414386240374693401655887662534144154164314020289309004454359321565894921654295151895276606049736110157174806600197460833399185387743336395814695391550967347881288093762100063507293016436998981472822159288582075166926902727896686443441516222764627857821246252428733987994791948294605072245570730913170582434984073673606530557154502566565371103499027047405046110372256619992604850930492401031820097927784128803622235246997986634415338494933620115895927028046425952532177172994200387219883298024761533441666039675141973003975845414517327797282419807647740823112982066934997112212740491363022624937221223456406075232008882825767552116325592919828819341436333045879174077442174632403764303932603469152540316923219039331597384754118476790850101458524498086869662306157501363097979913138760764287071769438177781050280249952796688315742289321228676177293981052724182265606694662573576462909042564326849788898213574080873937764190184500010392238866708732224874177161354162835465586646526917188123831181958453144289801721809791505028002888108125607975025254553363955089519153212056475332414277247199468642780753437473199033777827235136335115636774448182874947007212458899666938025219012009043528066293123501133049116776739588002678253055901850292403730689749185704425949486348877383541610077102542777727129582212061231833264295566785846718752791893155210698483412244367602002146904759113277357556985539762929385016516292780448743128493998842611303930827945426779445496938529520483606164876743397565242999109869577950740491231659975228272941482263930869770859692541183902823455346818416703839533109392747915154975359729715002047466595269933443809008649203713588097472228938432905946256763566799946904180133428046438707466902802031406615975311064011417302492859507590723672827363614112168110914938419520401609161169996421779424816274674952494684806308125055016190328587862479242281445106518240319084689186526234302751541237000371909999153349327133539195219515868289470268826969452092196179353744325526492386420536748016922505626124480063840335286211648084161234094276156357565869717365380095935998332330486548851728917840619894442761055738588590888528661960951598489869582940656864585842641657923915087473990432874964452486391589441042564241913142345811153833355954322602089809776011921913501712707493359331076569630578836520586589004706244859987548600850121717354927791810004037053601680368197984776831673181826818917957577568132773965010207935539531189133662000981881844985772444197131466651437685590278408878521666608883079412311172664382381859368461761971881550595973547113787192115522226149705927641909474687846766179498428646815404759204205996331899214978013337897279740444994379181252820866520517751035195080239201989671841194086997896754668317365713691952648917798547549621221675058687355151921517943173826453276614497640000417795339721284477649223488320994752983370571991403014324320704795526744511693672427400513817653299423990747774755242838255107417967757761344326475936208393165908995788271494246015590724969915501284471403886605503275766855408368034845112929983158834647940987121348712385056772295676121431107971912790488602076233112471102101504569078483593293813029299708114953451377223166035837271703680943695164358886009062267357479865848322266167307253117260076690718555474478634144781971389273292807537147228992846145460625747921886945297257350827402628444026316571592237523491040772826855187776099568269838730369690574405125633142311514206142042816454926434682081586043421451408493670698325816977510022184724742542801137023117524308287600160225473444822128363315227380422954141292410292929260447249527927405849609041816632043126928907707705166752130368359943463893301617786181749930076831603439607292062007706503145215697110765530681145136311862356669868040775740755537304556555582643021522266275435454088712265342496001049436793954806401141269507801930666182703148980768073868546722822741427779381277561636950622118219386342930885845473617136989937415215091541362079785894474746306842458393250041903259558141192417925887311244279630920513335782568745472022547645967895253850093055126371968079751055032507849235167725919250487039806288774173813320254834348971541694932021552886552262258570373856145608408937484393733231205407279049007045986125372850001520607871859021098859975251616421032990726966651862172282621300973075635480436560042022267070917804608166909762298273971291647231601921972466421545398760162842935545969733490244338067549420130396476871417598149375542402051796201098058944735239496384291086527597358035041619973097559936104040120136596670129495484025108679851200370781523014276784710107990015242581572393880695056927890358175188276471320412289931782310981131616533004661186566335637981880378610105451313400450235438812653796856232529853572579749134435028415695453658778480623103480502926365307452534244456909534005753278963403136631117461584857002164986240566136019406818544227407053120042302841039649033634915754813100132703121911584305310467894988146943592694262729821560777938804260546014234840064826665315154670749838362245119038298333756154384672736597632649844944680977177321260293734947137158899318484357419111172101382554160530546311611899981636025290722546015767770159235564699826803248952520001521565022825383976625358430525630171318805306543476315991230206789630531919905088046896573372494189633783442257988553098122385894744243235045095000451823063915376998768728533389940878111627426878611583301242738634509530046625532911225838912243437805982260460528047114442820059087163820716397238645111498566796614107627801748885525662612835946911133351384482309078836605031962021550723241803891175850838004942838086027424488055389054252303704045103898753444631966294925167883682221581188277843200011441456665472931998601429573164728049985232681614693219708733789872751473982741947176272465705227247847829078936816229674972945349591179356121215486011611096646088582871991852245594753842702844268980280836456573313414542663789266973576923290901690430821380625462911892241413335497507648120733810713955065740308468017097643145561254928083274785551862918060563691522980177952374256101102708939147256352249275931314187405679847202274779825111142406947469977510750207470085646616301047055479880568605919356222317517761273880135429890950593771124167961180756747290560684676084442927014230193705708833523457174688312433266181410420435627843384298976844178933044556923835938926111110407228011663658645456684148048066349932121328487636902436225083935167325624749279117683319038268376293843271393015940431661023408134046832504025178245549512996261426537668441168547361980700443403492221967075746326397587999246824443130564279962676578769334460568277926670264886175516112088917920722819062671837114318981626088887081678361361538745437577138168426623482576946375912800023086517530268312605740210128004062153207559679065730421093031099987553351266549556936214669446054169952554628520780463637681946751804081272662046581550944388332062071919405701314052579685521829722916589719447987173464704509022358933429194207863734090833989861032355838080072330240874690958540506873914046400064243930865168842552604711663633796158104855172651376273844401554246970999609669968678247890941585378010541236867555687718472203341712260170392275396458636168130505387515571464971385963414209940288148051684432981988333945848466326834467172255247354299231874306916792444133023375837284019166913686302778469599035623859769516978608119842052282772784447210846864537369501644280672106844293153643770355369405567303133504231641918656414786322546514310752369912772071809854866742336011044748424029716049448618489106899930306171844913098905396007214932423581269724229169023055128314952885061828894622563962914120078566861500736389869837819806520356551804876525629825285245363482428765542156529419335536922548784882087365717716366992988888425673344390524943872374001451535011634753563192466963359377322629575644847761059667954313604242853170881353572360098953333294999693904326219124342111629768784618519454899983026517440252035095146657638951436819060098515233207183976145305094739872644610280489981193507142811676064189589104955866619897904782030861506349247447821115237079877772837047487058093487970986429049766557191620971296838433019808753337966443400323496058754719565057539482247760035151691706132241213692111279997316626917551277346576546702323462534809515982400231680943262613917249357747124682535405691523296096649103347120651285172071586283829014221601631121452754469204412340490057219670317398653360787402651498739235470833105075631959015804165377396666477010612993462072692443155707889817390676078253566429376482231379854455101173546236070727799950957773535460025713381328161262798467572367560993706272296103864684085393069421167651973526704212936531897500241299415544988290425559928767841248520669817362060906075654398810967056726745788285678640491501619554466082830762965086903019114417422107506865495185195568058110306082848303728912340905844926225929806232581731822310131857264951762211110884295397543865519151397216107401791250600758078554936968658693436862742529691500356586125850615585519088510012719955262297352249159166443201804139359391296415995924458328968964570012500720162698253515076362954831035408671283455173008744376038106589708473085943330552820554360222499858783356707654203025686375796431361592107446164841596511570001607634656667570672572271899661375988914653452621900745660131585242075948359981857198565706226150005890123298658990158969410965715979645810975270594730753411217546982802899090510621690006807949536567515510086961554038220846557978809406417305809005435224406863855738991223168175524931446218908392938353971880042694117212279416106689675893681224163028970460206985906583081744703874755135410585913057686111663798454738717879696745924966287763995612878214864805106441400507606874780724108275181202558910701029625381464578610060925112606577945925994703730604439785138307345549591873590834003269487337418784955437951186174634853112977132150954285998602368798016834478749340608482089685169853310903641875166679611155853780348785895797440228664332193948255462976200730771293705216035119401962177858876975067535322883095799662454239791746244662209390008447166052050774289869626093084578090489632081113353086523293046937960360160773800097184817948155855927427641700446551376738700453841140041085121457419498348966907753097047935446854105890629716644693811737849042903559561994259378839898060535395972821048444155658912505961160724407029208577044021416433687582378976407314147233171270059164048201768568659680448253594244434988339819559579558427226223937531646059423801699444566184503748317990936996431532862273112661808534959872215643216545192935115044467637007026064700702005634965991367569435725022276264474242357355942179330852772393611991174788122217487182506226486135893159661834053492371450483559876274209226273957641663226739164289267641470698481077691183153791407673697983525231658550530917636129062857394510017701832867163008573632693772077194387433702802643819275267754497575690218665289690783398337422417573094676529473137485727196077815166524346728373109653023113138462520495264647694120050347955920854951281752695741466136445513922456008390164592655738105912815071227877170625476309431159706034902946956558898842860199104089209401896703918744118282378868115935398675657937361801155202101561692371387512428605463007292742971347818513029480523178532323559780041390400221023854824284476437832564853136241695133976439914314245240524514087792015994893951036147649123716961011445247725313277200784362928059391219108670918495764150184257654987760629412772402796341479528711643742460890829250744453841899442043931749110506340299537545730864622858451114061662381949869109585120331115805308467320852861052639255167030056208008443417448534315605837473519229596032420094771986421247097694174710773563550951367557743418742768303356156155063126766405097784094041931714218212469186885308327942644693083116597786230901709804846333187459490665944985062305582544658760149144519135574373234470525992933672916969467694292950068548562732811011493961522849643761574754652868067092416302744847018806782775209087059544465858932050478933544591728864854647651719658452301997680995579417283948590956954704586478197879115837555812086562794768659405922651113707999940464674591966337993840891316331376735676721855278820573266285717110513121996105316638291414378226586619031172347007479776237199635619978552610104525817479035118719964369033035085119617600536095724359086152070260854120751105083356563787378824764897475748818616548127469283343306348845372832540813717311930532259109226097760825176109853246299855970194838956860992919416871274849347646298067788837292773743865191765250805144835636326132811890351907412929884839282343118602764098962415079253231860026454088261270057387837493746201377678617952630825689932644322095983608246283613310428844815901162093853442793790915667002119290120091359673024950321354946917772906095983725427536941707767412200912621875697139943246354344918469246274799814847517055495533939001943687380067997998256587611744876347141818125151543889175666999541903141196118273995186660427699043456386393200056454892825534893235510313554301796048415093970718424073047628832012909113761922302913163412040975784047869896921234991203163226464750278985525215114355457273796720469576212987934192029982845448205594603499580585459029867010616252949453511731512997907808172961780206647340015229992553264980195107462282918287627059987186242558711701242823690174850228200932942736291594390590812980686281261252769773366737749535598809002354559988830867783922763215875743104687127708446941526621440649368735362890032568677362489225685546731167726938518327447133960202073542256523725320294125034652442676626782023058538254782973694928631557865289035487928825997342960307966486074955640246145712129633578486620205901970128598396418097467337633312656360026453010326244868053400400534412125833966091870981506280321372455153720338949665742835198337599971268249672482272840329624783994010527125577139829150469714148517674851387164873759394423142384881622758209915246184969277400877238193262696066785186150934994377662608539661474661168412290287512001995637310378649726883989532849519901903571310302887655569916608430272404768153026899184491813262220340469704926260060610722805766528064465534885738240886855965291759678862994903032858742775542419860616513708597657116187825998879106073127121680498101754821344396836348589452356941737595638356302446801491235865006320905055564276331437925061885021694474752224192960664471784571186513541549659123484125205709518895264638326817675090586194186964873431277407447656497638010890797649304924520429751115115196900966073178307591561152670222306291203573720900448509334313906577024485106054556402927408247324920089070329596960991198627939808340403369382510926382481469000922791064017231202897782952440232789740380483662733949233117815586630902362138737446244044787520734108899159714493261074897488952091651352674777704798153156684799188782194242382584153059638685091002879533684498031393115890027486464245882652868672591432752274212849857653439101346550770421272934202376900284622569637606660467953849832084121477527872996942913617183026826342844402137516981335756932841159735939936045532075053360704550058637034035060425299799795678251217933525675913206541332225070416330098845266087528215948610963553085707267866365355109888110629667741645092321191431872756049948933726388835103948339898452068420121950939428152208141776702256127213591360255358924481076570733588884743925751957049178543671211968113368900324041431411443941129132520210722270839474973461456580313951179364153912198601895943647458707713479031896953326827993199195880744822316378289566457417988450551717523224184805277926053422948797634174630080853609105471108141939065682197353563084342077990347507405747106929597492654279512381920877778965202544903577203723709398255226145614264009248076149739116877575375798370907154547596946085667007291863864622829674125550951759524181491065049976120392173689597979709463332408225334381408679588171774697394149826780337913315363033199070851962117624976212777137015303163382556987182747218678966781316372432536255548868764475608812223985474704920489896709225817177197425190230307957242201949685999603750992294706334196833415571806779027773709722641123574083688733628924344341472792814520061361366885029029251747300625521351500761928378315086697516746960187407847478082272230106856993625581938133005837428507753692094462384886069451158332950920643267302228502415407716038788144383742092345338511197742166912643355306648259658348609602084966087924148733786745053084258830633569016418596297459983986965826247159250203789158534782933773459498923180850437664999695038391696001084200443757221558632361297484943224389811181686460919991049547175220493074221144901051972853644413853800780456816063542546546454121113761776260127094148428242977074128973426261090711271833821081001899535498525008239399304391412667832678548668536103778089495942992638454879213604375235256058208816882684561176117383775370426687105190175729137644826708331583877466992921299010346773362000744731755206711956181796651176160251163518592968189369059596348419956627173389368444847641174727275318049550372317336847858021205481885941760413486593620555317177669118467153753320296817863763794692725063681012843090660855423767710968893221217754296498573133244262190649025919323363285388319999117519857231448705420593195289174800851783431452236736395571186394530578565629771694277329319289520646309077114836174820522927437740987964670590589477855554664470988578364510533633349680346707966812289961552525932167126264541968130467390320184218474189153781153818747351434412808392493536024167866952848927325483737985644570117415210434370146628486389052547649513153509866794873832436572556238830990151708986734629079466530796905901014247615610579030267411147797223347729617129989011312289305243759560641714061521713082119436609394186151996268541227021763548324271625468050115888191686124994542266843447003107006005188663489263011151669004796462175256846683386140116902277742356517830041128540781989771654003238292210426401278247314459679206833275856717661158502191991741529361893806574098665470742448614262468610758632929634834291228950590487225009421511330238291197735219459597143861222289197793419530533497083718231646118005852767597209581718064386539649553510078293765427395329635192811220035739166110604408095837079123738154782921641335254051348107462036958676829891893667024609009208358168486789243334316788924095125700970845037228901845109226341338578077368837630582597910520597713205481416756841326521758409869348160203516198966706562372684370033938988922989460743590839566711851111543169360189761552398744047023232856862131666774761808631061486084516241406186450891277373544044911205952025767910477885112396902094648193908980281493897410708766161352272004400062433195590559154913210759474588920097526324341484635145031578176175981120376783490971409198706552499344170958007823273494784882991238345425195653757529445568890193086292431117463796571903961681667605942172524417240917095323128620295763447680268902546201869974098781046215266654876793162705218887275994383173179566838548857471565451123292496112437923863068489567431785913283949967698550009079161846307186865240922565817466538117171668588957754966814771300183615176786844942079324385250488397173382611643722048514125909730513440745451174041807767041275420638428468089437821136906225393142538795168930055667090754223089474143461235850360892471257889283444627579209333328452902982907123097912075761899140427026030059343564345104120671700193910832240582044232598642274292914227479968356908101189929894910390915631723056117570221322701645894974110156434835151467467812791188972029759303198876651208632318236962226353585320281055828115690648564633820688561155514130579941094183998219755357292820182734558284360411425103305572465681487268163569350549408605014228323327285840938294964643761911692009485868591008219064889280304079907361189093152447511509038391340628263880108741723052260892841732038365790069284657481421274705993979308670325859061872393288363524140481491655916139936089177703769822788209069800434897231524139015850407745528825186569857745790155436842142232965280855378350085419144926482029018446802294643748163934711124705974073704597657214756790644846475255462021576131406330030948822811308140587443284038281639457186469296530133915983810738153057518519753512063323496363465717923237179429512349569548910359350707673589995487786695437947981699315080198880038023743367986277453402293476938708961666369323512345712414228669966478497965176559447374954893380111579131510966441994302590779088037988361739728770676583661162673039380961058066280946228861779516519463773199602009518756619080217224903805861732572573701735761589460112791806939953526222144763878579426007927186133435267458587721608179567579532073143186834183674677065729869923526344144156455314282173453013168678931905720232739399757996700983030687110438316554696031598817572110842356100468464848565594355135484989691527165798820628855322508088419311097152465322579715385413882637746030688383059047411230653713256991528990681508035435569720544448036263228862913331678786044972449587907408314637870692605626612685768219239637145994793858371368437550241990049708786181091484594960365679089114612129302720375854296127577868155254304846011900560674830958938070768326287328667863599669400701690695542802394209234506986223427360411257351022752697712362435722745482316991920570224087576052078242990238649219227218009949100871670526350250718604092229931153689685524883328030486053864624990372498936074568432005541930556795641691480719012062352463971231754830634691087630044139714414136674871852209614669741082881515085726906989960188291168458749509070595793192949644069138625316842677260435613268300993569189298190286723587380413654915625716185346155540374962871873272687997563352980189485838005445954374321580696827275715341970200340812992435504847658646445625195772367874625524425599055308452695759298930106022253655315342305672786249245729084126339676516613375688747481784627305176679586577938641044794078671966030259279865963890768722523216867633254655571570991652870727055884609705192351115248385394820245059717778026120107717264972720433524560099664988783890364636854056899223435546146516691099031068219407133418199850214597979727605070104441377296780022094669347896734553261416589428448332263209702987073878554641745966244851073280533198421669289945331347349186037030181141758681526688267511117695818859010519863818659074180241259082695730395533035411389409835859862823918164942210812972267570154790860972750276915634014421716391219501566648579412702658052894078971208322375706505942638349183942779116581979503268163030003923933037463689685612786529787474939636264156240722333488578292900028912202348481809681012820237184514918833280293289376845922416166429577847441155257135039104290904149537816657555961825531217690326123046086074511891805154198275606576904605420529280425252753557080117208765677402809249526878605794242443121794159740384192886190059411780375570031941920322124181322061293233872248557821822628855346767673964016483490825900988758290919134097604392236413993977394923429295693222393552016420296998978096821543623745966457728044343059798111619344025784255062308711514270956158602913184523120214137929196583500096315297904634936085685406831114629747916037341609041174308551151580706432594012571036621282014104237102396775481167185113403445790165887739997157603544958964864035758766901000269619474491278630189912944460558542045721974662574747127502978260458023547737688646848909112150435394936045708601580287499321916077433395706954807030545846232815516691185686382931862215668792144658671106918086761379143583225663739726504346317678414040266155188001611116808875760675485665485776773769816230709395089305688359793432928062263708956488609719437231576577637177842413368416681283360651191802947986104845120462437128033315837121820025632086081521461692941602799510897511191259985065308636014108316666228557302863898218566303566257443330210055945763131789592012877504105885837244236377856291611129612751295736530016314719117159215906136819778558933062155516737240831519063269482667451126359810765156047002334386383072753694505079617225069900830011000575269452912321522018600253137639349797465620837721836577098953642151094661871736744796492321895358499973987726162002932937148484451328860993241844539393999544170515383405961230203846779328745724042843060508766564461719623809145885920058640184780859554759503446334295428784294044465518204846212260387658285173152052249027871429471661223859866781500723380777189166719129366197853020454349192613619881270751121607491243603741216385819068827865812850808494400405515252135964015592597703276549275782177877007016001574151969073070628313965532875311237441353959385891562145251418576676105800612031312515697565373596223327360243258276324819397702706792645931726933870667678146542982954514706415499093105077523124726605163796470276371150327545458844680350834081778319902075805409038523829075229177868319005263531455771554228990426351797654978571743882930993828927771538439842992882913449575545472106555719784822910722115555811319232500484866508626844294160769755226051157216815738056268777783137397476701726067444340090750994985193140168689569901988112020384069662432126976681128308643252903636500527016795659225994115038457414953732197758492736556945927705173410763108319558914320531065284382835301616126898285468751062850189161094026916894020366482098380970040282290639720986878504612001738199374315811645242723867379870036252222472746544555863223950930512255201428918978968650187349987518273539445979695981224351199710758512460163809543114037561277294068554349248773464791571739321713938199677577920969161026518095241947230237741804507185411041626271039069378178919990311456245204596483606712994841494624107447828302931352880303004321045762664770346246487081692934244096625309228215823955364099324398604314732962178206525286154662267557359452474132388371339347025047010000032856710639312744727043565761537662270258878632496564125226281440965012393954519326399271611467971775007929293239670032857715679684626548251956015194503390224504843186933582997290464912765800619646031902232268414598905268188481165814304585838897886621363512365335445218795015138733396345210162783658976259916886821171046016965588031878431548180616991643000193879915767797570526434518414580593350003356571760803395738677038525795927072153770886825454092794103361603554437603126459810013737376693949965573371780064417622163139387481968570861250459846458438719740839361622940137422940087461375851560092415319893121033743955013272213212504115542869790471592735971508823686685071247162071400794141501055526584472426084061710725405951667245262031321325250235377225993190402202547213436491282841712274639053180066191145423879563614616620816498750936370086264201339879413826120493733536986733829264374245693320687731673895496383403251763737694039351689886368857592693611769088204149452717826972999785328945869184431555794370675391306852656866793828005409275587853739721926781799155469170735493055048562199892265888895307510290136939665048747720874678767938697786909139013150919662427275241968873095511288132290937534688123008467299550999376390131906660408910244841568874554094038269873425079960645107053524691813141487770855830634144815355128865458797729854749157747372196865587368243935677579287681874275452686019056687258427815162853008740446021010731531103239131832464622488379435982864742412206596167746289855726993002170977452945556183122789772775717969835415034743976993185461554637853422067482800396926628099217904960749738138407159005226869271816794228318660755457986777746720978291886836520447693131959212004895364505809451200578638064008286641160989588947435505439801504653277650730503404446194721499680723659689804341090304660900205297537274717107479202962906351144954600484525022019163593796364724487746214015959260248209178160302921276372484225170385058722635119650792988335698209718494978832240133012995788207223856886609566955076063534719203397059053923951137405992188234926795438840757854171193158774258559467579970600694207964054325939934472294089114541454648938281014915680955724331537680425387819996383051178429808235075262671492953257753440451457615785025572943241471764205439945134490796908547286924140570364341820332196149976742997335833905115445583049969734514279985927816850689905801847373448410589487590456528491759646572721296203656128636347937325783563042855546789301784505867795326633325382240768649818103049382627571148899624557978765488586183653806138544007235881774925773026482535988784411707845744294596158895482287031274597590439201536768416164908067292582345862088396527147942591117785802640874778161350156543706903787395759967669613917645482877767748877639384145417591176498503294224360832984044570017841200205453749620655740055644144719987889782927774532166271546409985514734206610060972728369018355350509376118895218535344409848597224892674064186918379957114275792004231708005025241509532441156495634566811748556906761732480789447216658232265782805260895321064624877247833791574453643245611891662793798305990094819763962397237512020536540269443773925026194068389590333531337921750399863514109967313780373191183647140475976628700384803370590264511156722086106528187651148014540626197184627404080180430492231866589270317044925707940704259401154186209327392607380124680264595700608591803422806525897098461902248479833327596659473433972699814370442907513824957680151519196506982982945734494010674083738751197564813285566951073903965336471713631729172260960029024880162187909955249915419113839584264575439694495808936102903011786973216868776660215283626872955808189788625160280723003668654985612707060692470193031839948374371931689359326077144113533889411675775728931870843758984528471533427127807771449245943982445498804454289151160849222851741738129222800816542064987396569609647595677397432563184054569561206369197127619894163341438431140096211363048372890453814538662049331706294452192455348501073021347198947335386827154735530339554450179152881517664196150382094854168810742707630243018992881295698205414776663474649173735214618472476433490181766607385334162980198613408499458771654771257603209225227654178716183698097320840726344945706115254696318511949693901653521095577372117589901222948372393930824551971765236678454090826633424310951511763206098113132056325777645569530684433576812303542031220120304773626764563699040599569873535079758660236424117731136146308243687674503195593068135395890003579431394422632052876201686040564612134931251830590197831162670017854332604618029411136455808836130322844055843309375058151282720076854586520098409666034227673346724829431587805185425798345422191194718009504135776027819070973798241853156237952744335492548409017439754485525359880671260767733645323986660123783234987898504991434577414387853587062832273120376383517676181796078298154482137253716471068365584306386193123352434011380780695299592940549220278162714675489502404395279113995883798456892363352199721850707077044420600269744788774880803060909061931152851055471192572189592168650137641545286047864501355791898839582398950084920043993774889417906973890109805857750082918209494460747016696361275822508045793425889127841367492678207633565426690669672681209787937482224148096228959888951424347294052220923967056046571012428979628985371890591186764730131999180759111857147769923156943406860531621167848934675261348968180233686328862761686457888461341518039381766955668968807363731905587981963330105637939499795858654742139691957553009268955742535407732314090753919192004646991836025526651687627400038146240674856391570277858245560192423903696735428246925318243866219260140929240421128631145156477113120001232174526643820883752139897396904029298092715018096337445037403510489066266012308561334749765885764744933277591314611259027017302964464134518967486467837062595694739002600960006521516042910512590959617641819573595303972452872560586604498221356310068271715857816253747617198824525190407136751960439562266057710914511689995803795140743240269593563279075072236231919991832572511282349057395196820125103653880687896980366517961500006982419785034082071811827051796275394725919242815216724342808457513786116941144166827594322706192380045722810142313838330370144921761330831355649051428876696109460095322695725423196528212490483207403116254824909963773789538172642324902000167108101269966852156608383131467481967856361057895890533957414569937275429362951271767352671838903700019063242995902335306521580086255045047915516275668184833861982846805311999781083278030414478666332397051209256130311413038313625856765973676395821564838745986765789269934953160785390756415030928004862199435411877642405995859964651686068474867810352476145437214804908203117782032136002276414135541692517823198614308087192281411047441362317071361676271320066357577804293594923955440471784435629195851914903312016148267947528260121926443917196569106476000941319097510115714512710995458722433304015638529083469690907310418402582108891352039799428186393095847671109311647004905085117910372046313352159065527869046574396159333973657976282255578076168820193579714002785271935298515987923145168516137168855345906200607107603739328463882890778616240142651608604572179055226945353874410326918880793171675936837463649972164524451950378176009867580776893622623476323753253439583241644809077805301749505612819315163132509554919748182401295856073506606680425312082629736210593162360865043773205271314088623900486311778034045402221911248195981789863943667244965000197696610546434529959706556819092045404991540045209910537243064049517749241499915232438749025269978055977729345943714030572450532841439066053049851530575085161996315678027822748463218721816650182794368457046771526152280807267335677787378767675110004888556251546021248407580442284499658149240453855506517192658024678463994659321778267692901821891148380166530343800818731643586461786433198613790655051651144059381206802731335864884849485225777631832426259701108647744303441878549319947098029179903332552362346440122984897854391848982428834596702702704165756888986562264547114004935757247145163680435287400949871122637520655213054907373853959410809975319137485435332026833757044805074294449859241348887461586317416786775957106969158641008059623522265491541781308770963573334289336592029342458793261444325457700523201449178907639912856269789614017873234582848196495689592343418252894893995934854918726939061934899418731148480244152134384066381687376173924640715226359815866157945798948942629843064125932828333141323148093349318237534560221327236366082734342181743662519565087736280638726747972910760952753532112524925059985173791371697726262125095755255415159939282440368090949616775948676818932841538304012036092478884118112954393207846714443157948433044928737264943775544848099821456124550980588102497045777428123626097943156753502951587359409802746831942113734605974557853252819369308755607313322917420474480463778174520467122990262016447252115532284589616341329309265731386828888912090090970399033837990863452962779008523289434764971275108183288062796895929544275337884838677525191200995844080746421310452555409427947372437366387231424630652261340779601987382896321273713639452124125364337907532279610268143454435321406691432623107841156390572318205769131595108881274129760288741298147127054779817459271175304364100450751439275270617119282820867652837013418857467144418845879216129944495369029423260406339071363554324859925951691870781228214916700468752221998474295041085359403477868439089740923249443050661594133630964161024652130218687640394052873179507794662498297660196040299967069803260034998896861036632397165314456047833696349349963839974356733830697566228301556834344419219124914423428370696209417544620701010569637297836577399835598642504577027996954007962867383581460261681666946130976045103072751782305493230229114594252394957348388223160011755457600323335721211404446997512767080772579926662124801060577049536827579765466987502455949085309108035267866981115953416652735230832973388477512208305541900535800429368421872745255514229178594392276334670168339476040938577364142936437133891864414646984028365544159758163088284346376189241369640553890528055906513660679037381607999599239302579256570875295160647982224534240144678827725007858906085987543234648832069459969140935266142320597302429713653478716282723030337804442360607833105355185439437991040721081593555299129298789274264107286948097554787367761257505221437202843739279133766259676478613321603784718358193021045056803525661006429146589213179169065159939830327996297593470203191800916135463660967216829256612223664389383508380932126811857769273136026861108085289121641254426306910328195334426975182655030548802969015251860103710120851184232686268017082846329945706164004735106478789989846309173543301765075719499944812571273662452947582462490776031882083686428018198824114211432014212706502288076886919065712746286708752342749310963051204335997317440869652604954998803951916159117760978777672739915038715089189832934865913827492872095320375784357322510519216280923972704173498275385992223557816376815659190882722437059184560711363043102344626187679298302198818677596842590801041347819424507706152383719600843688580467373471832781292616424768378810073083604598835924259346092521058017660208845374689111279897680919938384611692072800450186034054202225528443096504713560210602535797471450402797273911616907215122984960128543370386028531387186648649983090036422671919999541032894782846592759902864962974163345763411764069639685601921393530449409830346825711833629909671387703872510042237987223605505974723465925127472908689620940979604062489080277508352246669331112971164432166702173491100657192935344018070015648540861755836077226504888273777961037174946616408918476956975157958801783692747104359587708356766954246933435906997686892466291256077370499913392870090104351545155360779891786650231538018049709372664745011155684015327616679461993787602287196522455979743383846656040749874166902665063309504242068211369188978202209686698711581788097226545842186656333606809373313791844569425631855765072658995712707987700738711820368837857650879228852068961945310516419820054324257383898538498888010924872045521276218468405398861625437718318384440148874432610309901024058782203982741560423516759457263394185603725061986081962085341746059290399068883823062626324368299982741010285739744933946585849422806695728729867852902738974905670167450484884917389729770419042454404869731909846982523023049496406522648373778411070786023212953703840891667285988043953275831297961059119384263370108825813627068220231093004644262736408218433690275313455017276281150310130264614423163935148314310711752901344809259808572935812442455946839283647139819427520766419659374658726668891780598861585591904261364937439513996149206750420945112180585979288051606734949678458941285686575863871071458612279306105566974398230154085292065474727314473450122814291413401970340516552403841650589846816705037503706249918629081919286905751661479627462409309908374723344492212520624824613191499886922938047399460349902486696576183288222809384512638049077800689527945461524855519337295767905519313065115939881753647355264670906625118721459289971791280079342106828689061388238548448674462827662292912552920174422532656701336557790509821855768886128196504880189322340217680865540492856942247067096451849883922792346205904827956053251856441721478976823247615419405447355059592062848515152309578953263979562909723700660645495329356713884043148261276141315774159698383143762859976943994755994100834994307580398739788814023950632257503087836215400232992588245677536343962705963515435770571374606142833203305583672928707327851905185452443963197733101274418223093523607723174309947747328766671493755040310020638126428072115225925397189990146297274233926821713682862408096089842004772753352564684435582424275394393442224125818566285794156939275520961803987240831415696575824508924052243853196621123680740319529590517542803185875278271654178983821433596846321065975570729191229022468016723857478652489460994168034449390790036724184523192553338095861928963957490112800546849853048395185760790986926410126113210981951575828391916032482368099465013322711730942680545800868114051791488734069032069789984161810327744093021316320544454431161879424390662560528570925532771244950530064423214493939335153630329910330150813270605364872761541195194516083042817063972308684195620007645773698582400494279553168681004765113271499820398804997020685996533277674424591133835761052727700995821253201235915876954483114027881683367570700295586450037331940483870624956167976890299385393969589286140910575397003426825901916890984566376913588594978913817342353012163999316391492951523358082155384475923338457968261592358067798941997741013240882581745374611391593782980501776053345658746742710641146019549533072827836678708430378195519018154702544505462904126088668308917680672154780228116912875240576284116197495647395441143967108977665039716926371816537487984642545710763631012909127109263407048457063726493042921456619910521836859625472914126194539898779590914394051073794187325175215672663403896760869170255167072893647785093164753014651533752044299031046736077189219742910650429590330326465525397848027843359179807479420434886072271910831022209057108737820673972220671315251684127675911378729020274607893417960228264248314327753767476297504840291083330137968450885480648814794420310719441400557470388512993529746606524513460509148754240443321502321818828839930675650755228583664713611989130092621507891849816286188638017726491802141386824392773887453220032574798044065313825056603363033152658035913770651188787699149292591046070008044860974597078030701869056375584486902639991349032177092314231045761952912172832610401567294266013793146499890470748042314498346228508328009223946975132396112060023404405165478879738784651401794708528024427713702359483878972851692491602339904490038144921527580394325066852627286986057279860511921571449179738651468197895393924292106755097613805063500013408086840263100140978166086071533615245387508232596256653796248118812068264387099584061396787648936962566915349407241424192477251264518586145562542187965949689295843568539973078990321308340063319680079952756094064251103477894492353945970488511215054630550182683481807392204818196463841464606957828195368318255983433151236667285164804152225946547625162458302032996226183272847949565184687948249275804812383044861835494349523193834329133411495776954050642576425327292177092985151040897640036658781378939562009763662063853940502096739407597162550586526064139820514449085154056427184090375534455564299510103703041528009252994000202833948485184493614875087012342158491962246371753767110422285146365693656610407405832896436485643025028044312306764554877230315459303274122570740361610500601227458593822416233076816368108037936265238370427164225303302680099348120623309898691393312673206119318116797241654309717524835687480014848026301856327198149373213152882092511616643448621060525858971388500540199803922012974289387171313235428081402421306623402458615924290169010181303717226337221371523927038483288006677890287196159346700235361486894810029956918645208879806383830290740378409853158558451318221449449210962727569833897374892468431024585887556286144256541941127889342569646609977982093957020965734719000187633758805847876482726443565575024874958929149992597475454867536189962227866964816399107178322940218101026230531700036831359676620019559234897868249088035814737839390356301234234703036826487045211350239170912250273684106969861663213011451006651773274150006554569600415162162512201214479311091863593932641911038478874201927439403818279746372588443141894931123194766600043604891839408739748209399220028467782362713911047512068242706584133813293271800278094165448047095355551719799617898669107035963385237587063989296005245419573159285839553061880747530415277938804140961959500913365984004953588326899606214473263115399967879159690671004014388251444852249710265623469851226135355315289943517634560823071942628476218117763404916574551604965139723421552877619572056408038551064011171993615507835612128544701923774049709737934997775753543206868181808855021871925919884667206076488966930394767051934024426197987330435142624012515879590835249483520730543833298476921665116778168223060459502681835065006737484478222294717297890023646665975969605650711511604228520171531817613519902945269678694356188494108362930711641389796446925174548860196334174784770661482031750826900857402343820728112258732581786324146870264788798891347441985509329427993071791609568841840800627926935682879281214520581881571512983962066013334075102615384612158115306775051956228353959701607802729131401718911567039956622229561497263252062498109128615696509239269086569357655251890780164076200292153039315897449370001828394078133573786893619624062647736333998180101801796563992550928425143611321408075897338666620734644852530338434122196022539262499124988630014030418915247536840900369359033138065257576374983466399770419289526654439479369128372817365433788084738318974277151489416632955123148957596697506250628782721947637471137056032774185477289950908409464465918992036426942000981059283754244057454954792473534043638070335820472620346171099429093014218444058940656384914741882802241574422497068161176908060937657832104756048312504003033718506920723185428702074780715705753317768959282947459392828815421394651951308030620528215770235675058998768433112005318387038888708411745541489014373020290185791835059381338502260341774436436249910688129365339333259654152911678317089969379813150750220549939763882356335511213709685731781798343835698032735228834594887485631858553667370769096314029815434873850290364549189970922311881903311876256920275643826183876263526700746394257438378047837067575046257085374406371942078804955534532072543182499886324702211189621942071926738186434108650847680070161603772820457977102685760016643546485215331387715502003646289323466376742499388782616023901881690884313635409129198590174113297510860557776073651107645049927460180520753127278080969841815991617045366408241889740714446005541595586120856387057039261894231582793750979524086286187269059799004523641116283613189393284037841717441356042518418019831536093252995693335724561698319204169528307286149016617710539002948713128731808773703319144518827335476910707516283406004360224751782191023383365578965012081937601235332027663484220797722363593645372606364481001758755069691502498905048650728202227341733123638100387904138705030048222317369445087828288846756382654705928730772873358991780820937199558792265253523313035721106922204304744038209739579638139890336012035341902967652903695590037222168806394276150015205489184102203942164235222559049487184613122605069022388360538389774274587200763486250604855544155665591771981985801895175190872257395097767338632597850344429716230189558205768112904875845028026918444576658473885744121642769159316349149665415350561808674174562216806220460739750630869001547196854085790563767158611368980834526879647788599648774911370556940498896228540387692295702118042911386165809635277909234578739075137091567181127997493319195448101702658822859092670461957766075141402368071031090122340001287536769933867885439623981788295688528662468874553190273358691446311946986953791582276714040205709541191261086343668988831187926567725733746941012814254270072185713220304041148635443482492155763945375556659256032001310657132836822913077346976549600035226748972829038644122218787216723169806842601009386761297348749324537412917730905005871902045314456564062762238462473817337617806574003648865190164039858535663104713274135005727114385575552835096019997341071581973509316333944761046593745337109990188144393512508186064869819884993258890122141183370386948499261560003269405896703907015332893215835728162230104983769077023825958786653632112638333452952029923155740256788460175071874030696896307501625993951354675284429397051062805619766778841094062450726325494739391163831430683643451498096201895896216073431219561338265857526488098723887186757026534116333424736851710947878515089143240576223145444769805079771544308891012070413400357041593389961438949695561899254155732712622414098925880804035274444823695567906917003788547847624449917341306043774496385140048721250611148145305217466272063294013859408325787496594018411737830921667784608321178612588770372147319153705005779325446491835565572946067157077763575825984495184623832309684182573424811333431519839713479121883381122716746118654828516067179204201172937941522312670390868510873959382235884451688363651534927202886124639545926509027594818208695284533137547717791370458789559798843879227983118179152305020730412170493753439439601489397998217663386129710640910466430501822432115649896683649548491361177068008793011673240157090476552275681901780019307512343198554881543170277846291727938536422390701200559369473810958095685115212256284760497290680182747795525255746806623537924562629692924908441612127896118989608319234777801548772003782500896543634110156744435017161227661394817302729349366511344194775534269274619062171271079737511305535280185491227140284809356522292942909243221587814612033175221865604872716570124680122130847682955211162513634009725263530151111245003104355526116041273613298311542519900647535997611101121975267775584286025122672751606720983696680730322224652739350913332545581405997184657954604241205492013890047178435358905805035279399769152291768441964001692883918877987412790966733196794189329743338273151158917999006060091401804615181851827112182415226879357040180025155280625696627125197891775742620770048754253444307178780402491073183763379155157994115629674348615146438470269898602164155230712153425095071245798850138519372979081335587072457337444669150842094123586428268896897345516435787469299032684472416607524139071776025217781442296199695314473915137118092383166554369244780066890010031317272694887055833003659459526584399215886274936823997944910180452203572649339874997504168004713562096026352173485521667634519219360796649446514415713484430146019337463806653893973308489271694737639911584771649399413529298461968824161494072565861571511983958897409065980669380802164673312622089807200038163360331874571069579092935231905018380760851889501514442361925135008749509450895984793256025966294225869067505796129880199811579378853725235500474313943621094161515352213388967658010774070165158677878191570978473183695443073470200430153101748490600550356739013665205459930807801760514359317957514720500745226724679647884801998503720490595980943143284441841153751816983487622167042411797524560284057133511248060502039011971582589493192504386829986766476634631872581082091410228574939789015615016651765899795027586664922149972490706967585022998018325239388797674189252428822839619255171310195747612531309923659421246969466320777397172955106710766795101812097601204449283982777421387473342499225460104081500978839827162267501938121684322763777899759252330646030510424191960521381426245450247576835648696041062204320929630436238155717985683191545150080009589416611565620987648248241107580461911035164857024253928166103001474304338539986962377817036981426589019474527385672475009147878973938830223803378555806905536938781500367889808663386431320378266736562367373400614280061463359191461076524393714808013424930128018947983127896567483850695513981731597598995890710318303227448023107412152186308943198844889386751006292817374838409139944703521067431243731850108931934640472637362249278087817074073901397497870353391075249401641213391533699391345083512415317624049866953529601408057245040628022392593626215069847785709290400258230868169974809762472599276119967980880874496858268795005873259238874645954032127243804298653490444589989644733105098356533458020084982988499036435765249906027149198969114978664553416063331007486934019586181266378241378113271972980803798523149881494382052341434031414916200659901352730160820370800553458729349518332717054633629138740888872761517987098649271351633321476704672286688209326618313588186473852035736330712763856689659256090109351596060130234388245425692262935042003556410261943650360803745959170187131249605987122435712005349578488518006082461630591938644946278040867358872730553527840689531779554403057992218907035122263532969996663036415074364474462369145509385028134733751737462698273502783754086252574027835874912206675750902743696282572326560177895473375005668633884059038258507071576497496627342029766680247393944843544622771889226262080436602089907868532481904689869723311653921399005719101233669624888345389202213817930024513923859069231758590551963429938210462719773252707969066234794498415382406584621396288350268842482150056441693375649089030014378147801551510780408693544544020437520931188222973355732529217706063305678561782194301697465235727456269709104158191503316840949742772672656496580562138419268860001819987940087629312302258590523094413988078107941016880145715155684094121213811109101098496944917167800968052076639979021281358500251328501318514851298784948089257683880012038276565400937204418272177654640980371258544535463149955709754478171409638677026757773617911513504330200460506082508928691585212746374061610401239802098888339152293682348239772572431020347426636171221069791479927745043982578389392831107634629987168473794293824803962688939295203422116322018423804442950376260926566517999824059234797510188029706391765815670981003516579702191779816011755655072719970525627261913690136716877949159105638979116036845773223824370188478526673017210892299035007547900698886547034328419329790123712140839288886584912279050275881374699118095245491086795175527086040699233997590157358612345863097860714291948618491679873902164109677320075936830309735926759119392602453130871041039166746744368602414660785730846399768644218179648947650149606086534915077277830279816097771457222077292686123122640096155312949791300314926147135759266531481216316389676766530219360617552809105557301509359263383242573868272224029492876762127963596802408327867381773548323346530410493003765288824899410006606670549098768519854375859653826146893840709209271438628733563957117601145713946762166796644957419775789805122771264137720039087243849733065087748042991829448198938392878506672221562582083187471804700632233270073396602349632492246070780115298840381728483474245917117207153480743470653917074869519278225637995864055842370375075916617720597187506948060382876312001325551696372805298030200675947637106274881283478593298947266760653127357894304017734930071180110794517861844538106726418458725116807908433758492447536660832660881799373643965618365907468314706380515160754283446677238887417299167876974267558378890496491698634355256211481552895535840486327462569921329315667111580378357281737209402783876488319317639629659641513950199278022796150259966768010939049015358501059050371161544922696892809179676596168119409446854789997968354831952116640214329675781259993872416317722523539134161203715554557961394194226060443946589691151715241384998972215205137775442598747541576318825049188539916940337268411341661368428783308742411856062182077051753708442588980384815039596565238875199089438766675096408433626430465373438980871107466983237748989126348811501893990733846425644901658860695290569406302183233325969159879707666324630774144869344635696502619884798250025882114384205887609196975674650860318193749018357692915853532945180528180605786762917523335122241490146599994898830942841881667769236318275450624942171206440672593449081283837468876182143743907932546223965087258687328387014814090758290341251746474947888421328766805467435824812579836574665080682077213648224315043330283494949836445380286165768080063752463374692911282544758630156625779565564671476697644306057717171913799408409858613696903626473604740219048157832037906537086154049907390649962509409168259039750698621911580567442210946188829218476990224028844194588949079812461162211216078721488481739878450323922174846365006775612136563419459028911660435031205920472335149085398661753757198063503498242028482785634303662725723923311463318755743528500057373456123057732285709040480973183236052222124164496011384678759322046678348373987102163945056246244806448524850427728956154065048387509717601977979622289229695170494450247160305155326775098741809603288919311148078958105461953647528382720996087639437187693169250287725527430804658105222824687456277387284932708578919305033320707430142537640147068945414635950727714135542823981969439920238689227241130298075581165058826829297691021618044758494328698982614409940865687346237791033666454133315460559507108153671929231304274571457868824469757095443389600369453277963811256316691576673062751541878848563141053366380340847608348161406756609724264152714822426576524960225587345477182732409164858791423680805097083533737499696132343378947322935258569655022822106237124441563574850099344091740415583758725653944507213614098821091932125996133843634768035356853550642131742336138546608759176783199371353200427876626692922290973054346934657917057479957517446636353654270386652660456637843001448056637027285566198910201526112318572134777416099177953464225678282537059358178871753219190001081927854564863905434615610361881886891033106696666161647022024480540331611493965919053741393833081465977863579456472255715480504848610076538281734405906250926766837895713003137739851700793130841998019100969646176631674831646850758262922190652862370113108104074935330050965863994642814809444595973952885078725869391933139833380180910555603550643928152414452999326221812798293884170860651348445781144567553380319254007096558843977998470738178895199984030943307486458499009242410173174569720245791929931752050660982311393336024394573703691129628712368866713411014601816845490281814082105621375641341770398075401243543734581929087572380289776564545719231010373826710235268315257567254628491150820453015456533686267348143494071476174949034093224977560938209471038291964253497937246342532478790213251085410092381493864546639077600117841235465913890142385333255555428960795146986467033903496772482277857175311614801836608209571102034765513457086324261996124413258682488683644586582476163575476169039312103847938541654484340478373166868120716505202237761559732688999539316200788295942146127485751882395355702065527309064405667346825525942519618061609195627343606393506270592571206441754428378010027514606427492322105846447763019090595062086736848002185270072573236466821672045684139467693090631384653213650001472319029679681168848725836871065055884535986442952135961538771929287619414715574711546872062581645612942013465435998260852319522419342236616732440361843134354606445861360735720265575191530673085623476122122042920564799640545552905622382050376086740477956610768295494428040305973793726429804324805400189345075315426943724219058145016904652007947363135904793941696464668871457210756659765710519886420008057360472527571564175954283583269961778838961704482710202423478219799563025688196221428875664991727789955113846562129234477935632024013863792677436208903113904878965035462387427676329971425299429962870204435324833737560960708092149130660689063123139464746534016317373540304228039636097165491923947883157643217612698226649486655169499850746604773433682057321218333473789740291843815225075076428844151462113734393216208631952053048229957510336357290879643074740239134351499524449565234507593743579617691729879739811245635409433913539774297446861662171583383506605580318730412021998075629253280608605071695948838715981440509118525641554802773208473482065740572306754943893535712334033524081655531017506300539173909744233041826010714076443918212215017133229879941439643179313337455822143082311741117116580190809571625925636733327324502952741786087148922347669177971984199894518368170180570946760844183302065631620202003961291750306341969480065510781924040740155335100640906266909435491365308250742484946631431033909582957799637672184611815868588240503539257307110701574455204822039363609147339904759251876464915513918265849177709807775918567161230503490786856248609417780364911194689428542065709357430641298650827323016901047868678088439450759784890302030777829067618180507820159083788526502494508566562776591300200931122019741097361654338181328624271426786772409424028442200434826133555511972477438319225926230026052637528476224677984758458958513040666088280629070815034049567152677005547731694480614819423709719291419181279639095856845496276538022401242990836538361299134183897662975537114740732284533001369291093569518768747568479885699840928725296979589921538574756548621147055222860251825407616566867155718081804058667128434641870798057431098533638491570982317055226691395801830482798561516864472521796573069098574308961199586435951393508422694776513258808224670053568815215720448157179773051369659749278679900580818563322836799227989305622794028758935451202540450393234308176250162306805111637961997304161142364298930797437525141045679846381409607127424427945165506619746197562881737858426585753834854546793717982521857726661371715875790246750687567145072619063345269582637372441152196528523215807250536867032834749154908026630188336157557153014871826425819925980809800843863463705661014409026743844090364368587361724669961022649194256094904438971071890324638839916249668669484847341948974118877361833089240434681575177905178614305082616808936679755881255357232020120744038294548098423918118036649690956020553611362016310747730360047095405147972366257755056748384943574797187415663102261346864392008406485397958666885436318706434670499985778360852097059110309570927723022507531438958124290345969245475960752766508685070560366029988195479009630290240827420747422136022860508664909634612111099553040798033359751838948357902628817048782963996288601533150826610337672809004679380513697037309551550215328433437853113214745101047556092371039125095632188039893398792732240503987148663999015763572847753422496086213896945410960491408709371850912975118676803505420574724209206913684063617125770130618828512169168283770136998622187602749768040221754052790846529249511308073958763046887361223039083045087600278260463955285774015609903666537598045245901697281763607418410080281914021675957050965020024067389192329443015879337958503726302743419038109225709763220240423909251577100534312247830052130810926639440388512385294234692415734837486652793319971299620019634370582588840310472258346651264323018825760812987537373757520599990754974299600284538412429707236978258126442480817361962212635430258156849350555627707218495642642680386498667621153314654457830400676623305679763557293481909937065930709696743489890232543313546048211297579411641768408921964632735544147766949734407770653071493286088150853336955001850911411231960163603390809693710460650685215693246093984730400087666142604534143617657131913797317027070846573589555289124079148876758843361607096331969887478048104418530583203726132442653148787456076802208156252968834218993249678120403809759380202349603308719660845550471445900853909370254243138345572213859612210385627888436689691220705149403614298853317335590630075607372947145220705076991833615527136961617885429396765407348361450627756019797446630325510553664012967473012783374165522006538264622521771659280038498071181240274380541412028857564561198871180572077337099445234946584777614678674485040654589525404970932046364042568276354979855677646591578794786096222324818307385614192963308743162242392529349773641463229609637963831948747076847766974022147569937916812263863367582407218597016059094063619390979695082337894420018908403627414353412883504527518109580370930888218797763503667762979576165899536024939594604928232183048330631522294881742007139265596175452159417816641105631654901482371564147741531781117523169808522895190152332818106411139242450193251946348488932803972299936622548811359568745449205888894183841182850328584592667976887182589743623034291750758793951787591221818724620786733630569821604177990593157011257064798578511112741095424127195187715495567960851878006090627914576201604814430930596916638756488255413503627042500093737431069469258756686570783201648800408754457210376374402542901715065249806446624892491134481108082866590672856348331144230463296970887442090514809284243232481044673049436796581313534510767203104938896122615639866669042021691328062404185933496407675119114562077444073189014736427941165954575171608339400995958310255172706134851623833607331884093776446866025015469796417615573559141095592156261072476139098375643549926767399325032566640974772616324464149859444003068913179039062538977237006603845982075279169791815999206565648270099519403745306996277124735650962141106957207026315059853531665600728100113153523548944614741572129896585177063608573313047728483069866644646956618565357292602262095241231701563316933916170756086726104880557299489527926171906422191967762506783870644724864036788563372054181009353452585419378139832873649781550590198095874466937979879343160863829821288495501688650756915557423112941979696952733649010907343900348687654080042494828819124878756967982597345203943195238214119303655655844247916481731155133039610921487833364871524564502867552721800435638032376978752014606963876787769616508627894036561812197238639786195553507346450690848467229522866273130943231238463727429549562797615623308392830138716034984701270932556460676132919198970294006654988291696322368832830473277156457147729210170255239696817906130059242545498325234792496775484162839658104191656143075864855987632107156674194637990060138084209236704029538200535736964012588631079382665804463657926580104331304827186588272269021761543658359696395818716888319690884768809705303535536747798449318151834138223617643691689879886829807588384429522684159900205224830604809025200738510749154272231201149961307120372520297794709082569796308342569505423643396886382436275544597670993247592016841193693163588528813547831048056386189153319194508985949206247610420451518981410669061239364241855756040808750037674800991861593925404346578123064929440978770146986165381170125828332940971207809502976802069984809510354153405560729510943120751237539156867101878169543267379701523596694730489526245016039310793226589735138466235377397078117320350798075104174990330895239692822070979125686376398231621635735610387770362013382436101405613783248131010398082403264260956252526759841348024234473854217652927350220216175167609242606147180905330190696396853095524210121590152718050732644071732390358039407787366794640160970262542913830891331795093421366534103518546215460254567319247253410327681378028043662391488933624222011256356023928603492114271675077810252051147949041238295908966072693543691531811592042408798154762250883609281648151085616736413566040403267096570251709560971391340773112507643774387257590758982019690187187331214564058333107936567722097551810155057087950690772886155888518271704961949576255707321836417265980373569748430946677728398372744101247131737488473831644476123367298233034601576658193426753257612805477569113720848952621229067601004870381131901785144196378328216909045531606900579820954025693475704412024495365083023316550289589188136160154351017991616391022267370607125712253659416499063287846625637696223017119863851834111000168138436389775258787508016190952926056868706718480852146037739498483254277244005439480395105375991249711392735955770068260861720526803443019767214557115591783372227567227745149753564431731520940394598238979500287933677883002833695089343456825291166956183629359904432057388390388125180150426543715872399100092198736684253618377048715086072492115626939424963043602299814603895629364810811437172805890126121985327871774262762221839456832278023130178265499410630167059820983999774907653449662295516850370931980287022388052947645206591014851878078122981536650840014988365959641265116618009566401031137980377109463494926177962620337465853304826134469013666953734668963136977793659760401498657667953721624038539315740007004794970203512852665837664911918792852152650201962237774158463318424441579700984184469511811011774752110647944336224104275196090726452471607185464457184796320731575456945828424882500860645086874022388260995922660009712777539379814247990193099444005372544166473019774955660654107757548674222878848706819361274617621941989095256942847486703463765978596711563554524959323362791487964537817831378665219228557748215081132462267181313559077607972045390600121892955864149159047106702975978300201764442210606521126094030971640506494887774669260580183415603538549635365184833666356644952965051016840582443255475393048359745599013534669548219998411884198157607715512544885324441754689836589412283386219217453427078700751073733987487159738772563714699303824524083501627355793484450703250359270233640369329693442585577951263498855207067695006658098628680575176316640191007119232554477692171947949967725278447810066362259860915981412518442841064439301261991255321796795017057366779504962457539317247138910269004632607611882821349463263465094643958945077008672749871757053716291031377413451584830827123851069145507827747084429005433794144682082897423515148494131193482983864187464962697076145299978776761239551365466639213938428705040886580785854189635824260662540183633328425064774876408253078722949445511751837223304042599080400460759328575352436179803249302847814383084478899190916721321800105997012752448647058835019520202010277182331080002930834643710482685714918067041550195458484973522871012669423739919861659709998316542790535075477694739799379529184749899012688470116113501565793146778560874079458433398467910748677847696216500268977339500743599467313230714675627154975595150518407859587990089712749655250100964681282643115533236029814806420050288739913905336798948333292136131159345455606222020485328661884833566938776056130033872088598879215617979066297626813811835340270073169894312158508863540849981585551361240735695920592059796496931489074242527562101010541998551941783570554018752998400026913409119379254110187593514550803284125555061864055964650231663109429248447027002407093011979784689592275533063822825818409103423295439264614968649592528178643801112301884905928197503137608821844935798980868326156074286554457327017555024723268030210832105781432949960345888787264546247084408771687024516571664665205385531340457143075888876478585607261257645713938322130902140837175144424103724208419393664763137489035432455454001617491539194109932169757665747256244723869855289826112207267271368572363145946514080128402737986772121100350514320041319036357120379493000238667042868314671284584134346801956226425993977854640942302109540144206045714007656999547737951312654906182112177837090867585914856008108845071151228228603939812810368045340009008708081297711439065276576580005161904960409078575116758588231126122163420122599255066032881537387533613209299601934372287760741164511516972787891165727666200645057632009450957043029709066447549286251651563270415965396914805332590363005233364280655102523840119344355091254162368840067526140695769625354717474018275024426644759083960958140346821540472254401829854811097004796272985690325899610678373679844184058667584427461234667099918959120527588648729605091219341279297903744255708553451910780225685568544115916485441596718354068274890069421038825129792305990200035312385107762814048369088914542965229920166425729475437342011897114745354520364493401068507975592953077384274490086231750387951609538787122297691926923695929542745988280964969746541764930704625975535136421569839578916118886515174081343649577913668000928661977282023425550922842435297250463503921352699091871786092042772767015153254477299715944013538628637566350968168857305694544351432842282776189404346584388687839434563575445678353519506102030059416942474201720346411281356688220627917417218327990867535625627353235769005658197139543860984745453901072199221986948593744996669575151673067507201853114205167294598384878170320453194208747430253686995158824702751632759635965092949205518253595442286609136601017541224046210571876731772147873178304971760245884768788847771150790899127007140676107900923145125575685734551535356171553782527957777525614744440561633138654755442673419927148076332400913341273980575780750212977847704686705974696784252259579547141136728433404211259081873906199382655993753003488251181050686493444800978587414445014003011578882211590716773632850188849904333592033004042066322409593459420505253569743860604597376421846003636969735047724496317949734613728000437486053147374543251914824606254488899336600099013051976997890266140894138031075857771661508514637476458104278856210705057822910891606556205750630105174841368488298100330161675184583571072287328208986614166375879712268331221474257764440083579694295227653261203454605237122206897778035758929972546943137701225223886227325023680805590000868819911202985597238936774750401626591444425087513380301748154777959039575190805965051285734741675542248499924450527902094140233512075331992055562393405297872323733747882738880968192109594111599749579089079604054900363389950991970608707829060463895133771949007504977365894325842403063115417024511142115994514299740261385896299929190814342670627641741477282276686259862975102971554101883061827165465665384098577923021644033924585271444682792566906975542319179568300578169116743513346693715386119465287793001528296087162624564969683424972981232760612087338752961735707979175965564038398380317119408804813551964447010736669868162345722450829884171230675371636933867240356086084901770325771991201436715643451782912559666063588653564023215207375053001914704859792308927079269542601339045656038747376396209808736666073330349982371918667788516227157862149813023051928984200646549728022178437091829991177058783748037993770534143383288382483817172755853711021407234658030895256332738030630274316356360274819080129739772532880398657625615928337687626224446948658819749156659535049826660019104994129039690603696527680153079219035125183766083603310647125737222117207614926357664127146414436290253332704226320751410103338316845332994539408182531007618714356088444830022261816252299101240178256519456198731136972184226873855491656607519934860709761984298755118653200764851995472789371890907389475234230207721150768951339398040322309752967429772700902266736515816368113807124871521754971561684301277441108853691135561320826030385198882636715396706455857918805107487248115213595609060617470966303834167334102601219285752856140421460224779816222985314415748049480567393474169693029348420552092349073498739069900987565251333695603005995438524867444927109814616957491730949275354525386221811694627609085097242017605920584657519018549719062217836703819075755022938056939431755864736992563261541783347360624884340021765473665701871604448249102869215752139499794504007756376215128499488444816200702310293021930937009958226431317822236963658921672036016740736177432814346734853207076437823620405738101214599320346677451409689901906784550839260538199110498875111911987561094819107073809752746790228054652863945168709138846134387232947584291428134986194062719462638135594854415313499430744895213403977011348185597630601134343327502068713892347207302441877076791125359453778548017032472551792284220272788396352259727046203497648746478071431797825928643251449160843295684844994354112510990607919841854270009306823582338795119095287071931667542159144768609692328973600468513104244060948486381522267335308750444263178098538152160494617375007555429328475780143845689588311891977220881615948019685832285915342951484218114965470057373318510340335081618651734418179603290668240021780675412251136854607287670678983696811164822103126791698580615861450894470383544410456452727916044254327743129290549121579873628825319544278484957328846678076567784614103301555779781420255664829142112560983757285328026131800811789420516463216794443988798632518505027516506246507666040663541038791453987645385102543369659881700051673812935484028427261971912806965991270722298152139890663698792309533069408378993303863833604175138095810532032402687788237500938339872514628081353494621690680587889663465774469830915078636219425763129324765544421399425769221212948831501342474805733680839694790488053555538054439823374607274391900850318321392507979528486816632544582224608572362310553797784786068655194419066433756565236143572005332416208215607877403709281575698769637513057289259770180799254253238736574477999458624289918707152288143181453080415372266453734087328483677900284567630651243865428593314401429200035615464489990531126241667879087483263190398077888513183684366111227332071840141882929693327635502633630936925911558108920193547340310463568260460126579266162370443263709819101649892582748933059487917913937173336609846151947742129223402523371526611332441426923570129107057413457636515339008684580566839887653210690718010948736498271073405142603561294391814411576991272275770232037150617550921037160671372276886117786622879348005842263463261834594421609162336163785361236801465764831866074564676191319407022537311125969995843711744465676947476249754573865829570525227048744690545222581070177969717670714330674592467614505965191594429825910178502921536334228477960165759504883708220075129519167705367906935260524388471333610507062507157470531386800823536281019789488292461588672902309507154191852866715005280244209800134774782368143874258571406429209398115636811935985691873894948640867930610007603069603208728882840447093269318006691654743643099691952185802059500541008380945004457119369107914937697864290296526650138270753248901338549465328952743626836693601348829698596962425249500772803785096788207750812074326815634944789334366063869925582783192882700449092672684193816885207157372616533717785608783527121986281205377609097211589313218003830705740049706937938350805809997814242820632902913490333094415307135975588793835342163572022887445839444157602087258673048985555886704686908912441678186065656813287728698228415866924063924366137120873981677359569007803109423117210275742835276375226639258522370575877052761466342423613652495969941306389727889996370889803081552187510396356771808430919917046128127053165179205298016624781915497828944126206971401562050353638440737940958443942980133979377774844944676344743592121466638186156683327393595635608491686502658453074685630642515407957580500825009166210414796598542064594806418866835522000140008654232461677551478440438849200835211401932861820724824693857613613946698998744061828297852766690884496295075367308259433682985420538908127782445948798984585563128800495061263878119150187392455173274321927989358488012871629704056268150666728347165853955505789319045100483827718992261688788838220703140479086000920108245046092840204653369640257241512236499394290400854246174219152079472947969416155828498082319870720790198251657630855081793954920492164409866790202693766692436493948338723830523325900650657966417215940374794531939941172198573222347959714222721425982208692489014990707855232011849806232510045449854145583819635832348071611887610783288174191812318066243584038922735026858320649324415017225536139321070886723290975161702643042864078838229888267916105739137051065059245705525117713243298799553583924430254178587454836455559434542202659920977279993484198047741155867603804572385613460162208724179777492813792931887284897820974100971916617297390038844940744073628653664653641477793665321756990032787684819767012125434073302292883800075093147476401056350770646131797830593692881362474414728178359166335692623078350182107129561004510324843973323961681532344121364459864917222717053249320315863147016617739199269626927805697809122558623898491147999165769852554208292651499612814610857352430165438584816720046105256050642496480075805069098820478866652082852305981822337266259808495225762175974915000054354134378776848968622210469400599231125282954338731710439550066552565781625173747322243340457516433825049422077830245213200311589334787078698939934299429286756248154776397634959424120096283682294670006678187327470133102127798976383023717953599574377311425058799555032711460286731464256093639877811812736936689290676905169492808341429339197654604665552338854588738466207635927847214450666826791395373795515894675402563541939348516648823169011039359794060199713660073226767201050044541958625546543007597456497093755033492634795930114792666970724931712806550502045932176898435794770841269490215174744487477797123847458272145250619527544535055057502091084749672512121817376151132460599064211004240020459526718008642500870499504233335448864675947195708465138433527467566691638251224054095377582226663363711559072087847168211670901190680464532386073350160497329203972826200787297718860739259917201877519359210084440703739395231275602868706542458747848126476788095167877747228399673608364991629289831672153949715464015744123496533521103011952919651762611261731183308023113469727948424167399670971847177584837383469626978369665102490949796708462288411217817837918676911644310757201834875181598796072004329204787545352128152718343214007054547420277753881023622113486025586917542658506356994439921968960071366975924076309425890882839706818278935788148881851930352453459106343442309044349508628478081895538763328610514341968339233492674426519843249285091951166824426978786091888171168934534984430782047699648089187467909183407220654683572309288593985731395700137345457738324013290778670326715842908984335958230709420969027340141575936021504279284935481187737149324900976103229558570631673838245077881560758378379760361569976946957163183666994779939300002372010218743438524015357779723655583626735313447672774780467719791687358911447286193357355471711927726671810792998067214290124352565502345181182533998327260873166302044518711134683426650025427107400499789728639151856511720945751015224902758108274941789756746769965301825880433756110935638111202501967161224161971592965365881290147004656445249255761701595920248881192041258353413529207743204464054907275280501762388339153640926029093497723750341473503435878129207976476651259850051698477557890627467216069665067248137010625196038971923371851024246858775678614532940377787141693957564968689804757406735918115700937737257388187118103278483768685748948155293501929275426179286093593905581882280107905078577366037833928331225881712054538595762585196811688396665591466530609422556613232035227512477396072416066316685241498070967073354165981232667415390771642454732296732498635609797209137754862430255006966160978514763509234595003059564625949424113037629740106079960053589490341375383709461510985325199745815654364973851060908293620751881036821642242246830733269860312799129161861009312928377006175932615765407928817762145377573317579114967150266715942570083597860793862170371876158005763436454848441722163452234189369573634897913379333482460648383269664860559072842936347181916948245590415892977911913552875546311828352035328501860838156437185673269675104619997104202424560708003843753554288494122426820245896573277778133218724331944982710510639145833555912543915370113160525955394308831255516062952599606134654806128346630123836648831792797960002985241030437494093566340318860782421788630215208659640489803699248986733779849609537620159358378053575815071668850091280422866916794019736947936416440423870939862440518851309578762089817255892662910902826980899297035081613870768544229910847451103331076171111587067227509207242375399352530186611045806555171265016801485615191651380584259591969678263782587025787740030263851655108212270970047858550079540870435028580168785741314567107593436816317506810096509805303564878140564502553311162237624093975378819505800315538306104256302819143243530077732541977924626733446905796461686378736259827082441115003932646163958673395430150034136941903377027524229342585022970859592392782949004040612164145419384020345756456327453614436734854093977075109043052866481358157120896836445514163662305098865412674967440483223025260432407337306675505227073882035454059217353156195379442096970696469165861040295397949324783765908167730553023005149260240265422051226128079884561477339594554495185935264781745959425657853822066747270071902140384927037223442509279224557847323892025817735285121708034572145984920201205644771364190792816156006590637389646701220395993559672216620352360950946505077092373985960859572281510256457680083173711440170778488986149604615137712239946898935747016512711657189412129267024676435415962135934971194317085455139950227189007288353762621425201526907772576979478164374302110955666924940579497806822095151611254994631807466575024840364547715003725577231575579120818106269732867518124488654396237545881296544691833864132847452572756570221264290561238234555110907819750628015214438692565471298301980026536017655088953449712330506799326982400388350392740829560578586758824367537302724429573826517446949635029613293508273202252528656293971912950204431776822201118593066862603503356283219108560266023280225300699907672458109837477534493965658665761547158227135400140998883535821913463590216566626577110280365041450962874143662304735454917814959296023120644580216266952692291476305244469448106346579222205566275597471959523035704840854919150030553762701368819167765598000505688870990888588937276365857205106035867776367519119815096060104300902060600372854493901451775808939733346287767068110223724315050940573003430387072625404265608665361071761185649112685076180887110313051747685868165726537058095494109568891728126683306425435579229986839064069681204805566300968959230656923506765895023029024058254333906726967274108938459609558516404876962171381167080272333959467212929393973079495356144421649837287098079749503684995134293068047842010792342399597283582805004605037119103460162107793741866819424365320774038170742707071027413309827606418812990058984447295275598803888837418450451501754482380303863563799388637349246979033235543519032867642982599864408879804904051787042546910810253095716663586472804740328923308959429133694354668063664417898286435569396192772983874690812370212538989021209979681711663699771469164315543393871492065729835010026501836428162116687876260570468383720795104640911994927458179407174447696755223445445348682073392627207829223092265401259566981169193178000828596841474055133003670051366744818300646914462578818244866987613621467151316799110873589608985535276681983710552563682530867437868909735787648665562649959992917229418957323958065487800360257337765263316120846170385509283860453855091435290970002773515540806928448811094267091205120976448651991737806517594099825021485665649827079343988622339955572132070665235770476259481383241430633744555349427631967610444219359777408186626268909725069535801475499165945251235205550800799450972570957352410871627276585954868613005190258426613562685936552046210958027629075813467082678205336347458341107904126000706615772984331595776628015423222526227607605396127720145597823586107988382772495968880056164241655267734791792104522871827081994415668981107485285031903777092154862238106507526722505690945727320266566965415444347013809037959247498407942166376497234769927728665362250918192060882622205273146925833124665732816625722470030970419805122567852933460239688340821241729521772713989583248911666662675388123872864190774023555191740897224631088356931920849953717901214104554527037180891524517488001060143307686372412204725870320558363788543530332283800230220397277000578802182551383905353744222201392210978308664707342551252515340041887862878308539271029665685265090091148017828262828980222760804767582047608093142778345946062296781264704761040546789777856645988036397144022934967234968130711451551214100988683986449574324464484258533819264619461518121708585439158179577435683455233744542732834910849566334585306526928855965713803973870351385452064348663711016614103276498741305434319558509719062199444716707018056230068482280563643560645752688285682906287032940626074984063706069283962476963345974534422757582999604201863613587877790156556134219561730134314348336997126773553182383868397742341727143339496880048418685483561216032889044073780268740710914933101894535831250304010492138307138600558111708242119325719283392855648934948447610245295610369012597080791036268094292917866208186620924090508383489391964380753610595971082933136302714028736476790378763215907624296353482547871629730482198151025952752241992212121288384861867199397303876149959656642233922639675879321429608994720968327508206326206969224877845360464518822810553260407988062350006212346306824953061144212249939757383935592983400383485616222475954239207959125944266337815367834713396515035207317939577911112456633799082834663198989121886635510641392802627732155617300288718379198993174621722891611282666917835448951149572580621792139925565617667594518501804634285706698707989130468948319720809441749946442476813546971629546807893464286123234720025855553764134002243352553405429053001882317524488311888665715199005694266049783533882041948005279440080983211473563947199219342268838491027815800280745488083702535305091900478657202534052295056407461206503859936559066765111143504428237082043630648941599089187360740618987721229865410930428960429900432696401888940593835273233978417294100895591635606635089428851658568683348270430212282173681693099086672654835642291722205591382511730929119941239000068019160179526906770397374016417714400643776737315119659824291658710591572355600988592667778965373330818030257983991700324384355163131638940751178737940199571863634450041226122900445771778077924491899312639342945319587889398010029183829708814424803871906919151408162089353796144700161311709112434777741630883947940199099005139848956805100135125037000871919498401694623739036154600455378679896547230124741428544451044643425374562524513994334800573727342696723182718369907222260398328464660216117610147956822490195793644176352484304469674616296371555981652484980337957541647524155872778163355584546677899853948155021877487602200478999731584813581929963872072745722046431641186728428587446757114468061117167521806499264537553929535972211506614746608051624951315690392525387435401412044913200036545677700968218266332400089900147560947764221054965622143769841429854521806858848524350666980662293677655341206173297992083347704321593889377936484008512052609770181128932469893009357130661764963118315011469564701575365963786050174899525375876969968588360456041629759533328581457197336380088862613111049886465729051581503809872583202055672479320993902893266192307176497912221486572550787222406106639228324126504030610704646999654486553588963121920230640932052152617897157891792505777675543011740234570957444129940667403996516721742994681795915854878657896877142277028440066519745291835477087177154505402351485290862155958388985477654730798179591455452478417573580633927054745231423684690502404855512859393879804409409477593195112158958358756187625768790190817474559419228347817411581648037440580704448963974013388591313063582878758234423384933348755934526249706710980776467936913013763060779806295884694901304994114544185472612488546467661873602047681742385546744247655678349493321622104277423199850437517963197923927439313975528051729052941797143717126370657374733011648635445126543073884810418252764998558761230898468851766035507862010257283028222503657123367533210073586586786980934906084012911215834639448639361428331301511121056472708993254132758892502439878378363617749546410351662466693405321832200090941662373469872142117653968747470360873602481201945830339221015846370654622035120923223492600243153288202868112685716482846211852690378118778183688536837855804097601780934171620844754514748954053880102592718136355080632903440439407201927020688328831563600730766056498948264490188035076357833770936399332918124425563374615230908891577370938498039806236751112600715790989130659359866305363132362649048587391317758445174126589027425875832045015736072308638687017977289511615073732066791522893860389006332855082679898066135326857896778301609180399956364934315611736867591248374223831595957083179489208096616990189683669664721798211644210401645161501543831871403928949491571286748813197194513931183613860006695524057313770081115389410329334175836004842517684066712483909760752198936668248311558224248233766357727156270589803053439116005336207811514442481439486584875683266462507289919373251792090564496412455433397202691604523181722546260175861367171821162247251328328427723510508343660032492477814773978029105938960261109100052962915060971214974716812560606142061049422623435643088820553491222585552224956505170598359893108179321762691758476930624468061695076448960000754051436667588094175619711806037761927870026614379324538150539386977667890340824346513596699714017759900724447035003492587077902957991622122887106837464444626249167768194178444698410844282348217744083597808079491843674115545534463145668702099764270895973925907019879403256460374068547504601789537915173196501872284584441284185166233352307803704218900762018239188210762221243876063875468182114112704756901714281338889014257284198873604717565515247831257616857472307915368024153391566108891527873993815681246271428197293605784627561867071932042175673187210098931390925627413340137992972227234351949711105186960539585357798435133835963918304206570161650895111478773060217935669141787224872153626851277420105849575529372910128208532152043153213484368563908612356171268812591657440425765239203757821507919792691666491371688943288598789804151458763108797009047938495118699088779571959308005805519339219144342316621060862038307656545952621438549943005499976758677850020106101594830903657572677337248082679054667275193059174171030623589953027594122763144481821391357233446539368635430834061705775350924411696639860169862162209852221940120000653195815583837048402544016614845939385351916831467000969398424299105852840535142683858709384855826470874730865381119095776852683372895220844418213699624975772798759920334097686372728532625924124777745468205700821666921018528867026276135628296764024595323153835338419206950262675435001370031327627963549721293786468102328124672495956590586201829813677614211655868681176659042867283382591930176726476344307275206683011469476319090745554464507666859946135993100292153061522302467233583073938167486434976650133682836409926769646644161722619568993937061494052888541012229430963978566284077552700077554730296216609782800350409228715613614651263562018046170737004638350601244014267170568331783704304986574086863060399680842373111466579461825118466574048385544882007488256447165981441458846220594655011225084817310504368781232084543713135131756712046951100966644897629889097937091570781154575294743325158634935716449980357956478561565863453721988328120021816025545248042911757591087366814776879018093362737010677614077078692203536868305875586966180296520989902969926370185331463375686913726386974440187677693681882798073293922944719035095910269114327615008819146570160823362082475256998872017248950800170208183698030609271402620206486978019608012934182751935451421994149937979302077712529660557152495642454153894389734720976772440471553399957690349587400695090720522821695211816310889691073987818093053179290471415048084577116337910734913953914507645931609517922316970174542838231966789644955841564547630020067278735267088209355672883533810784485534226306983859097158716965059515231587006155845449637665752558589358570987751364418626185860844846991069505274195423524449991585816352210225117791570306522164810331724145850764712275455610929191820690475060436600527892783091228218179655388837902293972538274326856996440678848450849836887546622472547353388409511851641486409729802658456713358577487826550696607631062724221164437652503013335219092562119270893031980747428248653217157439973284442909041987948337301447336890797790879865780312541304678584542656027404875812302153990670338832263787497585506995349510199513016934222477660536601384365811344582706501206992881080951865182183035036869187596912802623801772873980412619989887919667253574454057802509203087649651023269331280057207591823445194152166752720553017961714710013780698826813905398286160229581694220201702120300867010539463969902476646421984118562269308072148564616853380565961332556344315340365060953536801353176626758369926442543116376075581036197687358155693689933465832067988828425759359590425671761455638288547506580155656093881723597493050387762961017123615154473774272273611961138642122746636099028241711302199448998617553676114922618504079472010869391560399075655654262062209963575093043844094887692869777102520729613898840871846432110822542464358632589895817294456528672742261433998394419518633374617421913248903019252593899064184462685966549075656419468244637508156028503753337869319088371632081119826838718558523457514214571804619232231730707670575265932923762966233886832592370872507445879162422995409528867818893803880516647462831023218482530755758618251657876410130256029383298300114292199745657420708085878224570080426346141602334684909713751916500086221096164815072938593656057986302158132009708705154515743460271018028076243079520114073270171597993432771019190782546021020065428027481186768308332681560844828623242623830646522979986317179972110093692638219552694487251917906027808119739088816528521710129131726339834268841873160219730086003256478386154907352980308488749642965850528123824016275010266195390114219865149459964708100663184687634242514854625239108809568146724035437833163892940417622313491516196678522632497759511254742881225262188221262766863622869029529122018621283325967412530894049803772152177732860476354940537719609692081529794764835631156791865138839047698112078677094981508064798448618364146901037238316098415556275248876930542741386133324872028600896821740074216842278340440402302531333669556788647364160796218973444882278253496480627345741332642855045307042876805869978761071852461331984706845326734604067824351655894663849896976395015606248663486978003057706318106486578016634063973564637682397365486380538999781583897209884581913475441589838344954149073659103075403508205146895326610131768137119503065054250520248670832801303092943771719149316373282485561818766008600915609225719020455978245684242258827239291009360877356425494432552943053867935712967210159917426391506965096508412938268037989321568292051444800869419011117922571094763521987240058688602964378470534226770985855681182141177256753488357359843828689632521151554662646306065049325351043104343611106045317065059000487493301051409365606885079662122448836323033116888828513565507443899434975461620162416613843270127907498369859230612717602502411245973335477128058406369291386678634237719132824975200722946126528094820146846639512767350806033786230787933552337100569546389083307321040969228908368104131489786726759285708967585431699325976585985340657219391200607033398524634448822300081020834484811320732025049017931696106341541180722593452345863492459830991147448747115073250811464334645127190957261628120667930482672744969450069873042204443262574407435977873048102643602975453854051498816721828750586173483742759554448705164113674393306086158158031181643084953506975658191956739896034890249335906502602595125004802148630472093619052709908042337968250628258509295954720978143115361494771517383419024127999234442909508859613388539681436467638614758473985220680926423729608916081262488313012062534019615097396560973550852456636433352182059478995564441799900311036813487432180219121362879131006248534581902448802333202822159232577336779550659682226102701389566798030414217656883615264207914336816326901474278944214228059306280040373692171583234376758195065678954765227312897676105191959733115897162355887488516848646651833944422026212111253263561579561194490207279998930987573320562017153068161937144240689336255342780475702560181614636476493028263430438063696578724205831567975489260415254625898625040700572575996537006564775470060241606278667947859381021409216233043322345818497385101574998939576862723626779854015285973794232365689568963205779491878845886447173615751891084636390445014569674537475332932207858633739167335831571274694087576790476141713699630539671905024435851960481482396367011695455798283399044040666770746363517527082556905727841178724961108439352590208606912165887285839221786262597733278001009267769173649380972105649642772974360183860066445498993196436161076915075352367682773000688832524718705656450105983398127964917052125154629176265863721014990501995076513080543704171687545851754435252068095157040394565566533640104868072489345069411482148351754046209495104801776832176352729044417115679815647340930116609716227979428692953764429061885460948671416888694627197956561814602184989124663039307133032670342627445712900846879018067437959924768284758989687758373696356560749100922831032710669829624233896506357262302772302984429338416309574204872946988393945849187072540617862510970564519961247529964521266485847953021257385898598012728097804346588481725548260387545228352337253123093114099627854674461752143087654031914689995247347936159724124419006831875628982097650379839400128661152591523126634747032579387514667496004549131267351896733763250923575737672717894866136886366347477062083588121168680831752404286201352826690367599526847708495309733539156131827533458602493800043203050025511624464895616793245057603075125949990130531836573002678353100303972195310231218966103218056251148692798167205157757700539191583256554963147794785100999020721625874446226739246875619922986350494120919903583560456622600061562269812645440945263840063188896908490226358235999754593882350583401525523659699841606956377975887402506858397113990653015231163734719669289027747324010479134352571331934855968624006018096921564650874677338037569803369139371819341750666825843435522120963225264840804816545328420336515416096449938829726241736596301210658105782894363956174337838501202843095104063102469752456367993597185012143045055475678635412658610660467489039600293788722001062412249037882582804444486197996710205175900604577304038478261764322882688469673410313325019813691362521449427812772560766609673950000225890326982359789279860944308024645989374938117744178366804884427735809763315634959671922421747941001453238772575436655606245056576211184050307694096848077154500282051396644101974927719321348196637515866129373787000607719613796834967030036693306212080569996701126001489629604545542037615053759034682461133737245590554545214744779313042248037895926835058715613105738237323510050126426973899080263615090062470957045501650557281086880222443749607578905943654640286486675290225186311389093040738749245405713942807626145620902855587854744256123858807558033233361311797072497974706978000243412789846706133773406390439386072443748994855444305009305417780175171638906915568941999122058339503267329251484857493856124629375690138219548062192047801872936540309118729236051461384043766867869914140463745174743597474523851807735639282665790820790746597411834591091907384986154710452997917007100301404652611373495560645538288263653291273046015086835440495790781327547023796253955882475939036512020157291376123548902410667881345310748391656429617837022936808028882723421555453142472330432653699533205733257692135599762432769350142994591274355062783184734328278711356231886973342422039762465086317907369115493935111016372946301464348064141816782082050631277643383361017119555085102005280823482424710893074416120016872313072693741665112344241064556551635242788759011852737564842095538386308156844702836542548581590847590671989569067379773494213658982208008545997022779298497190673257655627109818013871421467407974148847035199166820544825491664740716368700076284687948166342364282113382378396880054081426402694824403536297387794538464232567488653845822478025647274498227571170644200942554252893889122671159707601123856987213106261179049242301087729735194103030893224487416579685822783734126084652895254560629402085971874565212665623127996206746901614687651294650081444024039548807189308914568605475271529481108223095113189800537699642927690733102871532633570785757266430902022288208116724575391482526629371716993551243382014892759313549512050822981247445601662612060972131060147290646498453727315394155705229299687511157670345782245906159776917802628406613627434112614562129976411682259210030393510687054871810683413690967895951929988154165655405684583732976250315918525019428216032087803822615171010579765465462027233046351424725291259430332639950741003216799326445930446664677539253671628483019125021070891644789579921128947329654696529143370161786431625557841182564657247197474530438355835965199279155645677575779342698440055289890334923016258988458844781798908935352043001059741535500135956961167626191654189009257925762888247185898035146684625964355604743714644855525828265586824273297753159564652031779376796599363658847099719280783417662097942528263457866905208197269941843138675042955764606706748329793371409124114988905725623389845048822328349853225181700993266957977039029331976745710867076957731543870300890291327309491106036205803212783524474514018629397787377041129032377060334150754999223941291113370628572715104631837716457074809866317872075201089216913021677901174038730242505036288240816632560132358611913576832281988360883859840871979238422726305554960610818803726550421787483591749902982329453922501011055649295377836172583564976245806646331999013947234953552323765050860091467997611268079614620804367976016787214020565536291288549105368470850994709863119899559623043194767407127094043076620250411162718341437694744507279534738655543594377118303860865052899356198800184580078615452943064829633027120177062172267305791437980344529466969606354564463356574853980459086691620317018032729819746508943545277943291588344575100710391477922279195697781714584146872319898858524087527130494099678822171350781222706271665026396231908851278547047518807923021497507451491347264954165577440591709714711406845694228596982382281977029524856957152633699525780726618915679535681985653388660249190183532763090058279152690740111502979551905857305625663660826871702908993985815552745745964160175014379514291006375555185030777356179703170631427448234183552211347968592081488166146518012691216917503198640828373314951181582758452415094469382922579420833786440531659842434999605430917256725783451503730835167480578121530429953533587323790892865538665536149032867269660732740518267836789511598983189394102416250664514311145091137682118186333820733994928049364602944277369031463210398889268309514385397585686516314673194344081254490500162989619287858672703908997356310066406880099667476555748795193202883034824913208485264277550065153455851124145420767122607942855510125613196536797089455698369431013080124018494784916361839202070026011950432793218200821875858852266320030003461387921880583911547656817956190017280050875404838737219782796584218213094746279350989376881635206278496617656938123977773377609022628946660425075791641752548346446607881314853341275037097630103729177617681177880068956516720749484890837818196404435558686227768965739978135412935457721011084339698537864799982818227109909619090483201476712150241814209158683718526293258153236511713374404598260518628076318116602843131343730688731761845914496562793315139368315406301799966849332199256917253407246410713933233240161833421207211225502901861922719061710445571545026926538625382968914454117631447630032799336327353789199072067193623060377908246279676595934980693878556848415517727843613286761342475643358083619999163331549320876303942406831075128315174282827408455622688995316193406868932712834530282857493268235364670657144032757820628572458434413722811019832032792276970944373131530603877496740743578737599201525237598457308533347643477327661990474788909170120461400208744802488549663144868076520394414482635768695702349665559138549307647299511885314488606625328797433673378012630061174361511212775022197381279376464833444604895353928345350142423318587380570863976378805680852802709280476370365421182202846748072037419626481246770799400249075206851460265636100477899919326590179172906053434232440469438965449012156402626070510495123274336955593713767181468997084647171094501986522112349203337922445741254866252479217689632482444576968096305364992834771652428144518887606521532475581236927422456662028863038782768652157638374052750376043806388184468089960747207663338548679807292981214504686043726433422115218973872530309250216694902844230433719886250530162990421909842345480740305884818092530587857629367616199220194799659444679566130982602981531048125518896783034914208952722102237261873173184071427821824025366358506346350892951381956449054290388959357046375685123219127069810422410923490913941539256052122686293540882779214756537668595533731271905073326400771578648054324789304757114875298812498149316039221633451957028366347751922300429782365566353208428623356403002613442889752800126351867944620307964633625638637246339837820224540024676803725177579307824593733093714361036041621819164532114768406435131802717168926689520047190747318857875741427265629981580896940220864505624556707439439232885007074379293598448265923676133666654859858133750569757409563305875697805347583227379685328272010113238409377544193286984917693179047942397382362927540394173297066279889886916186978886824960432669771351633159566564775660052236811807493287730687250091065742884001618253402756867424369713398279905762852081453166184450863207979124040295364131666733405379469873443154247940595727804008697642146877834585506071754657868123304810258049222494147802096534850202461972922043859177944628286978710162437833697589892926737234372095932828400088439606064271443914808288084801657045402968286128495188600120223429600380479681159338782034197982586637562015813748169434959733615554904433767580975422366967346951815662254245096936827186485898142372973613806638003349003566245804440452686107630200142660826756785815477719028861377065453118828448625174381984378755715119433187508963319319188285595067735306762547646483797369207255754298932922620817119402391597879278891306015177800732908553588621986705347113635127454217389239352103940164637021166848820312416478100230212028972017521445086716908196295608809298304328881707036733262655926587848827690451824901919163850992195918169430864376753500796129897971222473654416318169983362938087490383556671730803902035551143918292903035623883503341978074376246899489966976298430937571397633495662926833393358458557428959769350688436119449727343183778573262161930452602110099886456451014542703169129411785261305007030473680341743948875357674894538817609705470752215649248806367040763048924187306245984789619496970987335305742280280583168336384202149794097088481144342117565075267751874617724372890505733900159572428978632187652150313071746241621794852569477210660798651160906696456125327825175452202141500695328219115885468689632530938619008990511841487378778487973823291436668030770768146481036445058003557659361411011924331963396532708540185345263765243411923605121872877139652359084718387751032613195732508811660480282338803751593535864567023080703524713859673253213071447201696995857669076074054223757508941805603493711107365561286482162708741281063754009854665205800250661795175967234543319206223557267659215261335628513377631225528515653551627111319200540573684432378441255353508390369694756559628984198280802279822356975549436738540264303900210666600123174391008836037779889862219669256528572083949922741123362963960919747894262056849424792921220106560226042400197455434307019614543801053013776280124845658668312368097922227242993942461883539466126462747276218762720901281135307215867459345711853978882686440019676630675758963451470558338818460335791675822006417173900955921487935715279680535016155301530933261935643077740622518170587814337846138294498587056491406620421759582624170060877019498072422910830994694296677072163876341676678384282010604954332877790087678292395980722420893361660031730808910912838565151395339124241931957912547476596257232530299892918051978801735830047872826142261080752559113444572463214819826187124385611326613328282062532925727457260062271299744709241792460073955240780198696555432419328887177609736368329960910883015356682589599199247029312583257440252188109282783913891255145382808829543837224733172485238774010466389501102509121111352391585019699983492762753540980835872998796844438779394435913999729138876175587461621874546119065648866217553518893907970147382015535952637403931160696852254226805919009795470855478384691599696763237363961294154473632392151092286007068615332163414911603615357909548177797153543253972779782734185415129137910811774016881934971566676173541339893355294977864562320799526785795050927965510923869487820129205209810197430479598921313025431065984067732230541144326098367903982530706238849532042000418955874363678880442150960983187733704346176983496619431301700276253192204793617210623020483751754150623259573607712606267586387560294640844274874053505784661126154012175255740873045061137877781947330383215807116617395005154174616690257873147935906707173231344643607140779724848189358677814800130301092690087197630857555849246674987423206054111253059700590928113585333199843358297992319222332790088905067986369572041856631373220624133312957549427681965381063258041319795698076652997439797435997779841188696724480784573893654451611304932417246081260125379648407889234616111717934994725788407325115233770040841761468054296824016293485361631126041222353080279023803041694380586231558512544509178941192697038670901969145859216198829471035886630119484809361322169105147222008246708556305724670320438954517392674089951587062355525245112381549011707578574525764439753143857922780776721111264455232418518223856240727372358921045887487817965596323401960302994616986716077308786950128067756419416737405096238186683860657253978220216722616972310189974931125262475235650080305060774834629848084399726156163371012959913142999338895221074302296377149251513870094693841301384482978338094825665015247260903589886572083987886023747623452608095970694638742029714646317684405837715402231736044188309957448610560906867418451533347712618167475711319421085629296831357706464173484469762726261646649250613560082490908602230671808657808470873519397753426774192894170781278085369512926196071431154853995406552145521347311528490304466451638495730463307626295013965950262606206503943027927726381664921952606443951951533211164190955382451968972696211714499731986896025960216279633825224991158970994459008449068910730695334599076168411777725300666501113208015380240748220537054699210641331349892473578757379148483771741441967255299826505494563117409438236137301639543802967752461642048383812098538744460150798848855401329995767766865994659492616942742801160855418792896094148152617322398314861442165881412994975727736104258194008702323435896695782098881200638568111702848901293397102291400338573271724891971967118636826252463488307338502137620344683276996436458945611839285408643510230535823650026587085395863292175849622377514600556972061042607300541284181416684239785321068603477113143044175710361410015476479891191230523628219768923488399198392277995735958800219914415322393872802562959292497952821290741390998909204778350723327570040595437432214761788225557505593608559859075653780738547739454686311248465320441841092276252391018646926084496489849489053753261549600777459236678111538348530807551360415326873834635494115786348839164451827004961188852882952945853036267608993027049518097195014037097951124867068135836675102821757611985794756176489471709659423852632644360873768428828717091633226871277090152715380875958049280520412055522725288403895725212333362601159411880586824535894321372511145782136057972134100624585269297718726075821343094224067839196777080987972751138978394812293243255603911177764535008038099883524831853418190677027218142937828520002535515830266758178277231098584952678030293262366230624981635314010653447010408246249000515700891912089867918123587898278011510793169775355646124152381315151675765952849434797394436240162812097765262885204041667174488193495181078821368691628720162638620806254491639747384206321647395002845763816621148579079114365681538144956507899318616219812493830842998332417971602712019816559455684515710212101019630151630701483675492545840821102608979270601958807752390415529299954160349951710061403460682053326694316017026681524800754155636934093119534297680699374020158187154953217619012090371201698915751769828579254184906633854813169351424414561944046414143012309827834428403182980070925601122399007445418349418966006961298144807509212453272786629812513051398689890207792649823763302269433949060554005940244131968139831622818370444102843686711725785602426167725571089731814980804650233388214654207669727135361489250521878883687541423766290584866619727735584303552984821883988588142353608067114886321316457600468837558166878702899326149368895285979585804573216767759778457492335799756010060700863724439353622959142065506234932635930047840083915391409534747262468637465294653862711786960647828833175692994339877374944917404924493217685886558708710982278580017586542503066105762235759567591492099124944592647224060703674416002463170569629838142333408190505334920679729428304809224610088247038297566361495250271529616901411283914278437461485462647631092997551488991156693020424849418118331432933382330472191989897454481598050297204967163841880702897841308975522134312744084652493379694990633655152624234386182792921732555452265698276043075544702407073720328343116206492995503436407696224027686288388108111186936800428819763697581107021474751073997910277306268114234483760258938177396972953397211790167357538447605027440514289147237395842367137517308319651249740576630738733214488817471970784558473577989744785196117958196304213811419118662384826933117397325500783508985756662936949324089957712226310470223996059730064564625967696369322058215482867388297481918682453275494418322537370030224942824590562171106289119472994369589476771176277270639752456254096877166122838741044515802103300280712069934579315810534811069401237271518290288870428067815541545107816943312497723609004490430498332504450310695443886503145578982089564206837418198751037537640145367384411200239787233768099464041446658784598898967811089859262011997070010288749590555945556653238811507365925281316983503898724794529767392490646527742022233758364860894222318394014250394927207287377752793962995079091273359562171374598955628340027582195385077774887831274348466660030381118367416839362185760335395436649493359941853204940444748051094867120069401197995812415550673407732864770815812105299070119629586400616297428942949453105539917667720988814053772396195724109865219841628922102754764207458300973594862810974798038249166977858290663075462172300388474273488505880020627222326195294262663400751988191251226554654169542208237625567606526223275860362983738540732874723628465893771121353084138582057118267417800332227147661409869377636431803741628151401700898689664166456485873299201903294327497342179515936085108445869714750890385913854057347802175429391122181798494279704095318136500454992778648424614632795615291171995947768342903155132057211022828769716017777989952437340104497778065210382174605055946488636059690910614961949295710977842531209665594994633139267299103399048514942354451951328057999973340305692556896108054895095227232341438444927088034996271370138546716436787427781302814946745555213486011136227600745549186111263808828492512046273063244164477623444371803688011815524268695106031554630009100736401001316447605158800749963927280677238839492155469058328655403482325150164782353817378216366604689901159204078162578208734729481822950900958529161654796184643617268159551557210564813544096717069439651344670081279962138079851466367994152974025671166238269713365833786504251776458759824821049111531050855497406030546490305343606938191425131738395245851140793132504988079583512486458772939419139468503702600029976426003706164366439524018592005314516662945700667286985899678021692822465464260909610646246966687359321632256204366597984561254099669526684018844079868380745910653530042145547138230326977177987345859434969592333543804355891997006237382383291326034117852944400922046164096904677471792190473331964541858477053409287967381591970699655442643333980017341157230986182186619217125048613867970216372734509263038760659277771106602457895915153136682742083594637889711831730231455978300675480204039411551549516623528244172070156125502153367016390621143867749408822547386384224862903166303887144695400166392358953636302721428136749665975661268166632521262442315874672350268538614524416534494568212893706813096619021191187201731515688120113349217335264650755493498504525126173757956339347599178168181327440704714569175656463670339930300355337287989294483938599131827617098793726693817430102848852946335222239461189897232485712215939378711075513436274969119612564975408278773017843695528479794193223774798290976412776033760965585322906157293666535369989204122335466399528327491150656959358505357911491454340421175532484288725391288080473589853020801344144342186110333562697610243310910704072512176994085407548332036630392488013771128928697214120333750360203864726181534459132466564287163345619432682761676157199112743844768393651654688577742127158587039781723931963780411004480230474030474748992947400377119525963347016972362363151337470717572360893587122854394653595638199996019259395573155574019051064255268570893997656396386214140358440140924549466765780453456090585035737380545215312379925105492097187811284878929271321981943068518518273559807983200171757219918055454392287585284895544768592375306939621857324542609986649422824409371814356512351535172248578403903412896002891944535327816124044863539784375838188647246461204455937804089323875090407357446897880933227521777150717428044439399729986288351389592424003172572081817602308401932094884690223801635219895173277571216383916657613262605307747240694387762901334969813029395241654463005588555196056647529317688594145286911139041392387669836028612390331268981044715113830761124916843896318949623093533945211448793175289408792854639559603655239154914960127879427111875738002947448290359251415252937166605172621801472812913258077261139200565475755891956156387753934346948239860771592022738345631852235963565431413110709870107500897768399656373799564673987916596546450462979814333083433530897206693434796994783696142847866145124194189776571444459895875041818588291499915718508708182926518635437361504990057503621071733979490436730570641328770245652997180013203307433684218174807187122094951732975913798278400764485643059934544498820911147645459243559645409715305083505457820794920007492677961437132991042463966004478247989584463168357828653154670089358714285444046378761926122615395415756860441226577148556765600688034227857283752860107777461732040679706029094713606754383767126694660713160789568255530797903130875291422622677100876374566064908320906400966274424041920403080358410698987621258905114914708346402371637129259163478632407469180512758345654224310391785457090246170141527867750844282296495355346718888678358193111242594795971317271252471502814246692555145984202972273522427060653665068059710636756116254295884834975283617726839958390502581549755320395686246934784051513779001491580147693974609000770267187024055670688939113228068375730819534530292870012573756864483406480385810309308386942150255901894799400225394467274944047521811481348958531780716606509931187589543107076463507502202806731562216758840446036029690731752556697086061224241545113730030239910100043246654545626014943910555324701321356151568643745255255398713926734487662027526064211479344612759405032184741379782433859614372123435225497684405514470997795803185347858514892317546049186520199484701561725631956193037921463496298981715977658407128310786725049821600043472764689740488970862056494635421275379902092096641862857024211508218181851793295315561483850136393381113080559607487373080161063014342794860675127150883048748324542475110062540493035880662236179405421960040846789558656422080406722856159415423345691984749200228896513447828013238662884950627786561797738794592178298766374089954204491553594799750813395816124358343677547299952593821786544109520007381789551709835246211506426038998371584949940527697606696048450580525842066446592664299338649248938189785950190720366247965849389782455895219158192254635494126846634475427174365812602768350456104030693986125798136955514174326117400159873121122799353711086679849579451483834457031386119469000052872772181353545653771784911592589029283349567381874905958697209800651411521979063254838429492806582298978503146875775754182239191148737869175274005889177571602405666979835560449493655734975310852210597635892657056750163569609680156291910626725137435136590867272441783245389518675604560949934539276847915726629077860303510094640091985885667930999239602027510844641854909200260211591707592050449233886987264015103578622503481959958959078024846856194169195869611512641945911178977566881523983179714552403954547548852046962340454525105402526301716223243166494754611904679275495560105857934613627479079230874393472243179954061471234610675744947852713266803760503979993813500099372211322497499363970094611917388540230809478447837746168738419014843402349400520873600233124114019478074814534358086895930636612730028209397311539557223225986757034352289555045841583760530121485182233086219035986382473240323950369772648609728191745476881134190368611362012956217340569948446580008055246495918912722579070290622197410114272695958088809304012734449907231874142101655925905596630901758651056653473739201544619061322347060072362267757170822362033233137936237669446505674197756698234724643355457265075587651965538024859715769881814275644346591896441672599100921623600616497154548210940318359377713945470099656901293304126803351807204259951832038638634100905991663961630955233632865225576420232081439716481625882150660055380201982908126089610095296671240050535574520058887593005637200668343797932814657428840701305226533438464368724665052458811462339392766305788329263249337322620468140207428680456727533277028405771218712583234844095140786400635213883643099824716611478416428193976046238975191763703123937226673184778429836566819645478623954635089283307790352981935112599342063560299543327485761941389447400611508416904621848763864998253945116769822169721374427994101223692583648107432877941985028489356904840778446523285689399240750332808598919654277897749742112732136164769794578303694382551162590809037445959588538872520035148959439700888528094560003803762780447701033664511353813376517950913935125173949814704019862101336267433966250786445544086902181651744524642644397115443859968028603512034430250455253272140675208327152073329295347479308766360583421097793419102734276778873123007074664410625847734926113804388794433417501600984837614808442549235678948987994503720427417209541189810731559519140935903915342720860250284156362129644822599911040162152034514153878890607985929815868781964810677869469418079551464365764724445560509702689058452474459889631036307804451967580574048344591429515016333070314696077043567314343840402496025221631149990547208500061289051198258988231948675201116166817098639090025574795685073708709438632067922546747335334537222582135435171211117264574088257758041939210853344066621813372538028217981354498604104053727849050964920687085620392025889828628427615438229884271097118359491004755481510811234806852912413235482853814617637706047406738291624944899429741414699881511576154516608118556635258787283889227201157746694687627377277806832852967562944172472925595384990219100569608919939465861434801136913455072930369254015324162424350068602335351816365348497557714684015091047000151327688744138872506457726791132252393712470535571516744501091545300750695035637175521847756304369294749743923804778910944588261566477684468858829442762076823467287904350590377718142842151535822081284312768931515031422444317332664596782856099354536431873574268216569818982926651864367467490924353440926720170602166778163165727350981092026310107303729511071081989832609853090320225996869635136397334292334128282724122861011841145089713600986115586690459286249980179514185700526516712684910582127983634148551488508805112257354676617639742259185627041156489914628327265348405182651512769918411716012673499700133547708037317288275852798874884588821843059645047080490599434371512938619922259978531553254537490722520319572380655598469576760402709248484991921536795928922861575733095241995286062471787040618621022910739835143395795593178952020289563941992728517773986121808742595237761001028861453585610750535882311398474555088896441156332929394149357907571039555353445573850798076392172497523111563972993288332937962400383667493469585767775878532501511153211914228050851186481432029793466245763549932323749958758955629544637028142404291355606829762201305434051434496459442989958585776204757563707300796663009337161934551888906555349276968814814306280874891675576718202620013128558221646400584769114256159377487151082600921633450401970732178945172259340166750292092354194618240812716109129029845601877528668140826431431025702524821458070201948074580993380563739614047180840506350521321362097693765308361020131781823277672094864734519568723745355662870283940341632042153013702590675774695771078761178832905008684536562005532417485468620291462231154898936408192089661118520023537819232554735559101980424994076049184774552895976463191234909194321016888720750422683082274356168382821107176098223265674818303355928208634867782543988405097734794362604225756409089593422426042302649471113861532135422420191554738901961177823049211731492688782064385643753056928447813007841958243778478438539888284012475274870597859340972226684905228393040717154433552877179936696749111552458365953500374254608930226614792793375530598942876930128504895797232973316711368654883689918517308675172831171747605520977406278723931151849964006633970752089356591566032470054608704548601153326267216002554946249114274477847404086820399794342948321054242729544134427998273046695511555898224788935687088980071151096397053536055063485784190675243820682023562592272841183278285812685180860870954512588012886100006206921206205982872541881684050258869344476612390131809620403433676728827893725981434390891439223172382277295137985102380773436871773377825180149350775264860503085098494852660480064197558416518029510314452408653542198930325818295558199607764079010552260910655274322361457157547193646338808425146745307627842537611115248066210404522820330818539573538429662292413400460437139209971474660540610642778189916599962303308551554977233850910836015127042400763083010033520789337221197130015898305882742131688177916837107029555817371062139079837901055463850786017127335202966165315541319726352437251137482909599487655531588228263078292671188457470844134734319762650613378868357007624348505793232467218682137945749064626010225397441751570467458960001794106429565211951665877511037331503044880131801249188447058949102161176928884215025197175481230571402785879543666136379974899772585156394797394588960561252853036094068769630900086610349517924999337888440281670900312038490092398841985295509995062261907385570732705913764505929337876502071669938746928311976470804423555329562740964430245705617720376137971170392358579355064400892151384493731784433716052511646540268484209652847472425724168633343850469500478496212942155863591730673840968282735281425850785250913852316733176712318893334338487112415878484428220286694984116460836142978694278300047496736094020663514857322099772844562451636340349152022671934903735304933894783636017805690824435006073114138875214876858149902736095298681291033266722359867475332724381743335611901887305356297666768312379067568643185839632062828652200976095805883770575770756804362743047267768357656833785239759454098955509173589556729709217529210381012777921440699659661553087663220878760264655250498048629150732466209508933340580097617773906643635638254073397681581013668309142420526585249374297906925551935722422009177900250051384564257959576361253991352490663524688129745226384752285563421920236864201364032432782081955509209617454810179554850460004717907983306658456587105025507741850833810439648739462989629234897436541914130663292680775132070978299031706879090105447483501139567373122758884486849841203576661843505944211652861825466394602798917567245380444378865697714522175491998349537723836624369410489319319939629521346188961214886781889492136819139036932176245419651341247023201291204845026856564082213722089736549684857124072048419715346268663837545046197542015559830368528858889438317683930226994469831989789799262019707700734490993655100305801900138284583035370924183957349164531826236972504556882599134502135338025708412686205765217974640886868707705436499772098544828043585366353486358614924593327775659876696982579929956186256759431771738054535901687029491887164063352004129430332256093693562965943390157379392190056217606716164751533617879171701215904355642131424346797681079479299699262038352967351467973610310651044548709330785876168263202181880094342202290337573208102883598679600796455526195843467672833964884162988928505696603846184338183520184743146147887228053997671095138043620122921094185751800902604529771671423736513877939305302530176293196989605521240229225975851097177741064894569692846132625811564432296682051886511723943347049724082031280691370912381772607861787730672117009290054685466585126867884579093106448286196817613407209747578240608382963218026844215663842793974267908722640564958240945134034063685749511619677236445960285933252760077911457287843411724349403260444006738720561600661918648206674469826976382632811348781423416822230743452852074031742395796448052326181341776064096252885057736535541710048456669862895909648878467466194323434612409284350530331527174514867310600898862632018617477136074739036973595446203477669145041481060274383814749126002239692054992586391777219173311998350322646188960162172753355532266678563590150616727868033750771866550541534132572746273838644866125801467404011421675371461587626312272285212476115395501583059209434420007455750071397512356517050706902461407620283424895292316048295215871578677615771917463259585102124486704148652981199734850952492507481163791232813387164090802276937644790111002901662176786418496490917376652999851010420710174002068929703736911598358396005347803586177467901735043849670984518705376761533471425271083675748610953118400799670545555478160911896745642243949010984612300292498684516754424259700078206045197808015159083925601299758620505118717879788256407138102641306561431862260610203776511287093853959527240297899914730665995785127014036049795822620365351488387112521672771473903566622985062848732274888929110037122496189015101499401636920761089208350855129192240269673350697700288954773121519866793231071856803652450660364577351108524796843613290893764437253134498121260639580649102471029408096573711716432322886855257478585250705329878939660748573974450402964900894092663238498929765729667954807492160315937248587549240553235209718751071493240299164916618837246109804601451418579154495770515591371355226141174356068832897517894881244347877139405641792133053384487135076164598620698439455934956234896348430311594341805786263703038865488572036152137165460760848413694411261675211588825514147313333301563899727916970691983832963916357756824215903685802174584343695214176022805775755657355863946878669976907125598145001143490248087433188268844623503987215598114448427934587822819648743286478240808983478371148087631225989233098667304809831966774266390994433185261111765292268792795776091171175622244091911550654304362409140370459731273596748490957672013822345035792394392939321572743918414830920733002858132675099716933221066076537314686120899209456197249267974728668367372655411988756332642092480738111649297952395813610110775140763788501935223981019440742747583668026618927786552399703285657552058334607362657323023445310360403560545182719996248010897093469455548756629696551383430650059599580360303468577124661844967389221098470981140418345227851768908858364275041414741031920889377875285821910263385201758468836948653591098557574788223935154100715929166675226501239574796594473512113120813465023341185804409041279524153391637433144524703706107819839601413115194771201039404894740506437972152213735835272214097158932196603676296062704069671391724282815931536664690785256682263921716901964457181891490582978863427946060020254651754538652458052853415207551025737310255692405104006294995061753506694805117464075249769485072309337381903171912209397357827203377850374782183703847605629024994115610420101670934836949069301270198858035882944626073102001538171900264784357362377449624923086985562031965012909147821641969508665852369114170754319323298884133580810875425482597201836848789753792143374943873236296114527692465022729979854465800686638251866105559618926374995034413673455303378910094685867582475094008834637165864614476005144802965842921924621941751200313653066171873513273901539415211751250378966238527047023069745331433974730994292877095204148218189624447884305231799363966052462873928618309345172160218084619289545683018781653726230603030986151752495656652346191650254695794082725202452236307804590550799563083347159295039308737414493818243501877536508926683989020474540594264555674283883527701950791128367896480515655716258690524610871058923914624726775296151613138832751783921060270748600458237867806167059295981057582339086617926246089265886051526594338783047336701436200968023757939123495056856067888483915791708462678302427151676092117324275591479140187545228543274181162723299532173306754313590423192336642637374182017374655773160710652144797797165185175697257937335661570910861793738865781416231802646013452625521248062684151461430526682690430334435573865640551710148394740521532954854133237164568845735256596746712355134196538008841064311167710495100720140932849843060089550129538922037675881873947068318578311879675042640265366289237602654130688541677466541335421530327041796588183257715911552809766144688948780805990017243933271894440479017512793228772368826334377723477521957612279161701725350990871058655655924073858835211283535119372715977345944792689808589536055107903224198394699164271343536747776825528865426113814341779020971578612800237369480662685151505624724319330706884132813743350108281126622860802665739468215948810764950709972822251728208455203784061470655564492171912933771698902783168438180075697363643824086891511514286128421490117722109674146439985362909485687228597294198546181799465608848530694404014657536400085559043599967102588948972998847625791439579208565058349423743262321863688532146508592960090412058727624497590046485373496048923397923387116277640707675964690358664922364205032063686063267451540031007357346595532455306894691373639329015532508260141799865231631898503125093299132830696968081507953132684161733009936364260312990721948044203477790615489274435227581596793158585749017521605331188579285003262870606125391141355893365221297174806224418148673172237231776289647969289005281869217919696764474831647431157156567642751791256596968940414990220348079077639170778433880347090147731482217081658413026407993508739805010721385230926971372483115479707010092432884571967028070491476199953852209423404286352677451585197625669846266059779631409258438233323710004384407000269767250707125598031448337845667630030054793923287458126876993977109587190021536919988487412766566842594768936143991844783598196624970213787752504110082235856704079611045416015456018063929822973726071358773883492468852303722380416964154931858496585462273462848447746084037667080944160724280589235930047485874031567202607220977617813979082395781054564304615250981341217636410015601712633829630739691430106049700876873806395608121282659801792087260149664773788395801050387945119997120087876795690729287630872232952935181452223354194127795350963450009250439061355609024526192760468372727452074525927090475486524082421056524062695640847395068305490225580958974067469239359515544044219398517047144013927338855592361925828044674470886375746359612329530529396171499181990232926256215541034309859191402258068701628109312575895208779443696431263395807446331198920796327102992551303159294620391812944844909648640141130657008941354359615940287297518809457475524877079332404865966910761223402320680893474474861908432016264881509338166473372439380634295497340700845520176488128577431053446157053287867253152737914523440629994535511975516000268226484822062775879800542562239674296609069550195848279514475248342142673730991726898604382992527360001136517513771136179108766481389191758334694950388419442179892661228431833433058760847503822096361446504784338437673935206694056734767503332891516377279582690179783762379076974532474638497538041086365757996440793851632415654540863744470123965065124107830976342351663925606978770293503822073528702346376502806751384412982175397316025403221935738762380673360511235934975892518997157082920251570772578055436469407776525754322289349843844206366062661914806257275801228624552952871556861918445391731449840068389880191420651268887295068804013963491751674744918234577960796898814658194915023322167531593824134105032636813149808131641687182849976872706671374856230092330064972768211214259431481344553408517316353311138790979565409917099845861310122386796439692841455623083686075023179650248125643655060618333397342630458617659189773345199012919744163580492518011629414274414442373597182252016199003821497512465681618044262916873000433759912637023161049921407719956623875692483725237441037245034892076874710010439199036847602938507285400692530256176160312898272642923018218621650203449134237764990533007675630610099654802045412958905573367577184286048274951124404805661702933116526720257674166127695018424177349612214676326044432475688923337143911814991655381455328909140452850043452194609725172811800958470089155046756420993525452904491572932336511392918240598484426830720206361977042807230025566698546649952820154425458446047918141393572981487560248562597964268325570637410583294636863361651058123404522140393159012760240537770763633125554734357980638083439623922139201732534286293955303626665422745822187231060324477239175312726875126157660792434627082887109923970552345794687970760301722006731525815685894884440668697294777374870119147432519614636018108918906683902508560605060896051566013661349810196007829750509383581188936538131628923189351040571598302940781540778795639023871935499645585010562416823849755462044321457825734398255101183310565973318363701088548717077868171888707378662452980493472517530954738953808608977258486561911400884021315769328818723315314049069011913901269556138240123605848575071565725236388871228110638998790322168817822637181915579563412225173410642285829174944267486930717608636024507477342154066999954163272686348945234513543648911510847969744103546055617936153186433767654851277010914270289780184282561950898235872058321699472268252936656840512704138773940743838145144745820996492239951101309661997188973269750229301035100370667292662246538321483768357045195962127683846820899937534727520641180039255883336684635402356655236097389537120736401922037555066189020846616447601440135296034640169120745003210515291511449574702154721789790716322717505337469547063299802883835320248281593095332733575488950559688947752954387275474375122800907585519748768750013609280838371459584911499181961925498903368170651735709891557585494843209087652790208401611793943860964903871226841485260280906931116890770217942467713395884226221787323288576744939683692068631134402818232971729453476996861826949394637718459929752565352947524036440694113615915993848036424717499265068046598703569626077521059255516899220474708512540694715756142983521857640278538443575546034935426619214777537903266752935932179551732339008475430527312237197192810913999649246548780038481427526189355400250636382511482522764154767362668124962590691414266712659305553984272665979316869332942505168083656253540151099976949241734630436359410240935190142253935490248692321986448244839053519432020212126234086785787356424391779749740803193039842064252416029066419880509114742614938025079292383308606316471277606643450245547530322155308819954482233300891414122133717096964602514747914054382406082831899420390825161141165016212976479513777139369940918151679399642399039698780834565662030119990187213486657383903042351803238929556309717948585834376700554968920940000575969937775799617889730580153581737790646901519962119035486326181393080587885109589299855339931620718127638006036598068494568381797100933407435479012643096587361794531113925619171761843380860041207690154640108114566574333616032570851248038322596608268179439153402273992192338457925598863524839458189659977118909929825115771626812192595949367742732063165224292764490857759523737473253357574240727692152361393057562968645835293138385173226284740114270025163892471261553661443002124563684292018073734429656708713298025459525137122570686824411495575556710529506960384856544106632138803567327464524086442659441864063584697869964959597680429680889326298482851356876894437026359104284462059577943482922336471264275256972116813153164093931351158305479771025053391461500236892622346265903668925639575134387927014699677454577589810478071146512341660652395942461586179284413049992894529892860311150337325127855044637211612181789572531139199443210484643116601205077422347834602375457605753790004029130312553271642024689551685303178882845007433325624792085879057390790656969843687472502031210192451894342301623191896824141059898408494658964793953484208548653236227708259230421318175919795798796736419866732403605269184754837805280154443546829448287170006189114451106021337211443196356216262915364638133074975125895372968361461586454718374909260067124416510288205645692255210681106831096263297730708910311814275205203777723170940562593548838932712466554128143898291210390034435987404399700156829324258689589731268723561366458748343194011744293379690817005301474598780357052059588941116871272468680616591057786365312226107194743732826433732720774183589995920523289936445507653099729972878737101150650074173480052937070477102206353011828679034635466995308412157194076085752458103938326838176818073532297225245999121202964466427769172481774869202859502417415409403374290497834475004393336316146426008549729794772692809898111076775332214325929178965309990621153724046688992460682659087069812140714793692468155218631450795390997209735859372758844786476663217261322236550889266832495847214328242338497304684230849164427169716702342469699303805679051592133936641019427857724411583336111820439389091651476963057770678935575374993545986000003876567871484208018230226121548941885561714783443561772890468695912703182813406846601258023332673562312758105519237774381957976643528680039857222365043449623956958383327262378732458535257089056202637216355203998623026236276853886035956177210033564265719736517460260609021364791675483901851918590209585047656294096842905305179508812154874880866856907848458412115034808749611587084634652149566653584563054046105534625906555536242519086024159329190528305102126985160011920547829397439289132013484841233285951501602898781985102363732977401319796498989148477529637314143119450044155448968711127282801842681426030722383582698565867195817432519739065518470251429465670693560870730979493419928290933854528043250328483356702607487811565245103634725557806915981915536818038773213162202160251814354679304395738110445746799721606982617962320224013605161527286908006313246059218264280490488582319785730920722855206663255242832953944592732416389649842320582303122812237948565489093245777059012289155594635556947748590931284585340378917155245425161859791331836813124412887733100122162937523304804558445771059857439688145119329915920954516520653093861618375066846002018781017603378776778289956464625050945513026550228754846796552528643806024397259395236495919946107311980023717690644039701804268580587243486441262597032850440506608208115214582290732834429172119104054197087460768495348055902242039905757758553327122674556500943650354564059960357187877113499463718566301883802603719757014477478942236040942880640551140539525949006904696383026464499234962563374600584879166730209051506918682373680793649999257448358905064415824889462047991210011575271249183742875108546805362577097772301158068254670962939517815913328610397504829917823797670049684872665945469608995032671409498041667638006402758142392877605903065371067993368009689118964088742978663694210101730315064078368819755786577081939933602842822907889672888935542326723911831130420725168166740634453568658222041221345232004460803999462195536559642567799276535685312838745969078757234003569661163147463741686394648842744695683558539522129721865257910252620007711007520881791127874644243519349585829266638281802953129704757555080427277021867818649858446900951335380235410300517287726183541147735638281112796099814602260294082563846235896017995526971625245556779338017465204289719684870949332010341889054558053116490268085885989796723443344609021546103459057836461066939983058844289461156991085881880840175989694997630596647285746419711167119422745556385755671294277474742139199903358896515071988920384185815094611815131723934851342172630464554226207593656946075479489639182696449474448364598586801026039239655836969454730109988033618173857416880648359842374981410585026672817549940508493981995955669184717013604602207377875099066604640382181364911415134732543587027979774624518363703997227848064329466441253351402665697344378463021370613943484294093922258578133620216309176864392834406975835240766358463897260229306035777698691440845092044410276462666152140393555246917231516785841715355963288080916737937927250300162184439525717559485044728790898632878412066312321172718537740560728888412458191160055521708750675322936983600723669998311643868279625767600006839503253828266018981417636700758016613080618364427158003416464489913548071438364832240413711328468863051742179034561334131526060792581849041140836179461556077240279069135441113032374002502102944463214490139467829444033643958783611753135575987102215171590121996395686948294218991766028624673473660884469415155992135066217315086464595812509435264167719210603556857853699788658661902345291365448301794516880503471952196862558678433058677306650504909824815608410746050851236683912794945541233550747028095927748763145258377024239863590166788081990431431620321963132651046295145952224312851233480367307878650092526424335449117385289773693609828768635083208620342440406122196627101122035671142143237993999784971643963087806676685041395404671372821804099532893846959950133465993780460166665880344292349281950174694994167667766638729214141372320891165629290417066904698245699693682197225500758609651133302085894710569004088909440060374489037762799915901475209274661859831670979028390098202006000429420901864263835855757237918958810121166802106588455883207555574281225070832740117353515433637120543505051076950642520224440045968873436118647712501453329853137758382053892048176626214709299579833458561159369115269882491386421472995928480513403487428309688653350245449848445144582332179016804070120509742062606626591944371727649487994420516029319088227468946961759041085266713711618259410530113018699516861592412454095775158705278808442788838096108914502689833290220651937318836289502352434313195230843145753109277745165454379160290853300275238926503365495345618116338685480718122350655876813927438079961153732903942886714262540869977337708378085929845965379027222093385421914387942234191229563905901773076268498405319164325655335430248748428447740283294258313921284658013478328345679483222699352457109617723328679921094798161391361422044328255672997280821032043461685039376039539392816030365456014930032783673070060426438682012450767149313717521503305613674643210506309769119649025779453522395880043421941028634254346767361064437989569476114728850338854627734478098611501904427946125460534992312843142739286092041780163230064628099410760342250462803291473489399713770389903037550019430397173473209409620098262777661798796380370179789807691724224722155996942482934727766893489869794944459410956481585753972687597617850563627634248520024334359951294226373385741403055157054538811495001338015866753141116887652169481197813915516118347784894977340103084247302163781785214091538718019686204009496089425791732562688823921245640214653839589511265573379927684875020751720639886653819228291419501556458117362632335173161101915166911114894966258910927214244484431639083526825499511271456665339309820244481134956719325240358539201232317559902310926585097228708572129164065794045867135042593449526297790782531439307576990340614784034451430988270492829416003178045479816074822422144013801925173704246581623581578406099292729988293792626481967300940405302197525713401418751451999326906572273103048231870416019550482278299659307154170138448514767778513959139828305725473137239157084949942741637748758372824625512866932661293160283933518252091913504306985192958564429768610761069466984136469105576685165320265072650661620068951154970351373465436318975214355200077762966838483179769662964405456820131762466549620596224986616664977924928979541128701492608690395065135051498994037452679635126625831979467282953998421565845435259482568389931167971783001625557986602862726341013572417043106400226189088671314370161473411547215827100114002011461320516593432961554524627236577363687160504146425453424270909449426589707421369217312134584125737508594290187217549309135034974988228953700936696261722294404986404698389903043517655274797100414167721997422386070994964852445610358361371783367820832921135049210727260272926175791832770560093154599425535392844954369543879154912967189744937327331234326980974418580324542182734532365038493221558516552236243884161621473944501186147749092703684814144730094010864347403279509070616077629989723751857391651849526928533428401593401968370859565372571571456043796944706671333308651825162092635290815469551420566597610462183593368257472018875970869930709323370712907675399106932639957056284525693320956793628359681133406106317400870280276659278528414073956463954025239104868214186331867973031685550544177324727861558930074342093903485472216683638133817629730970256223318218137009648952428861509629912945084942415329405310785887828449312928075786041459535120799630991733761369260413048991975035659184622299042337890101086143068374888646688013345644506005640103169649048368794848760454200837609188387310524718117382179185285073981489452545863655599053389677381441627015826738715576441527478900186134921155373128477660636277098889407833833540313738794058797346692870379503214458546469122561638752642181438280612428810085581572848922303389765090806916159199668470043562166510252657120914505134595416359808062112656932806392831786012804622951687314114984593469954100442114773706416737403117824021906205874276468711932335098978695527618830439099360131260295607056985921440951808128684732318897633981905509111205639215404078015742354124268760114393939669151815219244112556031851275824338609541183602000051780050278182374357028918813958007211930687603512761578358359582436272275072649771717559205180536181269530235186497942525875568585331344515662783855211986136476574449634167002998243959913415628449814522022318514937139834812549761670378873899215996527200989042875004574502915827533250460348523408194267299651415241142447260496422411870605578463295635565784882288686574673208287907444091864352980017078836633908582104935980387715150313652622278813019005737507891760378065781416848998956031285343998257123423675790028409674400642514420199163178203731365224175088324599439841372613763418909688421132283559707591613098145559371486544894690321489382116761871899097152133714114839557966378689829300248948398259069958070002570975712503241226900737796414500282359372430674185425128149318867605388057004546920692452825102181673508322566573727229421983606949491236737075107341411212785378635591734882010806182192503079814074773888818496186832774678155790755268447781019677359871670526914772463687755903393257835348524785475860983389394800589894425504664954212804963980484489533848934661803222451529950385721507041864962486977530466331366767129553171885413703147909949870795823621323226456077236685996365761298424123779341985949871391923257788244276315642920243012422012999848311235804425036896670958081190934174176398376374465900838534684402909826595792904412006544427039245527828144972836864752725159144437021034644333853697925736040074727281009971207656536592536963174001672116096004461827969228659259810820762829689934803267815138200653524081510953692948052371296183953023960309140498321947485902873549253483804495507142356891194272810213925865324020269974280897246784955211484340040892926981333387302721971945451393283449658609296008994988020173214476138488172655223797098610135750748129381486563420230116168652439957574035769084489497894921778851315857825576379205907815432146785751618591570652082079522020720621361123623919952710528055237855897261364407523836785438268736719784827086117829891993260052019537626379423363570185118610581219616367425198523192478153408352807040180777283638217948870413407783122135056777929185653793432440889416566104628251777673255333786497757236051315499716470051815219677101152811275958904080735986335320557226637059621616273725589860946259956294160327141262187351337651112861572678497256413506946415511681478381986821015301282518430138827048265926994258154332303546519978401773039077921206824974929354617577220770363277248396681939438181394332360305264787818965749950006132789414250331194633026110456074153085643918787232578727431534442886050745790872419048724880253786966077975765546853469803765662936253341875730088173398094567817908200578811069671772881473623570478222127729689823254850971908453655722014536430814056632947237391643173819586502605123639297655761370580400187751467567409918301463294096628636377866035202067352615128271422701814648387010466423246715842386125731663265843716367092207812463542284813013796751157459197100603595152188778214072067130676429855974481997076503010360176189484015869087994801705456740479515718688192668797061065059129166081785098773322771903311908087997479980401165105393485879568721575041955027918847241608190122133102362786543036924116975792439905257288909576923063915071307575910824806302193121841196897056436785072636184054772781159587395961589861409818050942885566021787462201030825761584394709309971722030645631966208291759917807401835414685189812972848546965337747552998188897063235050321958227020676162837867957287678195837169183290725773181972798545001822625286362748621257673947448621746107567533277873372551544155894605442173174219145419429720378930146557431052926914829582319284828765644567126491279553179895574330357668502340161625627503117638404350352401248256950765155595656087627985639085523052552045417007511110598122663125069289625832240467142874098673736874381010844629726264821343894454013840431022945986861182764639451618402452629733078778371210046805650728653536533480048455887819588180378903901415419386456459244826068009961027017497654207864913645029689117178591437957090064030304251730083742805952905519036080031682376779163445937079027239185511498345350992964817238486174567661888792889401450340303018425429109750525135181895916904769683801043121345086623850219540216960468750292917638764134000430402328288134533757006212429324260553639542861951229261542150702817302505185701112904568386518656599996540937468584506573261822771970774213484689467585967342013328714385564125390331890407644178113271051476500024517465047094164868005632461746471718940294842096132029634308644421978261817671541571077868608473635991805244025728987669297579233045471789905234092645659930938420251841254114768740234361084809229900041206285251424449562806815866048668578150912172088999685843128932944190575773785956067240606195798925358952263879284847885398630349964139879767726778897880682366251023921950311956437419290102986750299655407374938059084373448353270532137617468946046736213920346808617674170977002085866506135634144486942299277952028692857917112072974889971247757951649356035042075299753365414477091777009225654857549368728725125647597999018588530010900305289181775125800317223984071882972097407692518707403468784200291087702428971435288464003911948846470780292855111394908704856225573170956303726991761384050415212707939323488624733818164596261081977836034864293360174999651692112012977001526232946668133202019642295733511881739824169618642475652698941493852883409109356444619146772066369430979761136457729419642940199634194057309752070869374538170117435126078746945767847919445064159044829594369747248435371957033170844555268746030038064130377957309858990415145907287604785530820538216187518868122310270321869037528804235931396053492211427980294201649563995809669313262262886071740172561059085459019457164400863784881083161763213407978494892171396231812829143992394669737837190138878060388486554203416411335441728877069829180823708116889712709727575750879696033445620174537514279442416094280050485731468777104031979853924690064800644610119605774146383759644916244936845329315954238903592875100222202099882158395078637097180889392520241535890113848366119799645760525746589081649892945561610771083612534709004207723711017080063778236365856153367811662034756002210215829672011304417071783873680917760703170537512088795614138694961427064197115213376334619678933389304767183123930584843657038240799287597167689851575269953438158929755837936841129842316575537560339709583675226136783081143523484096587645898759518236618112910397136651480384057049773814973246589917727542882222391111556559001577888797429257919762992266316897158748966050507490267827343549364219116847160998672924241626246507693758146348888512104624750436391995288375478626682154567108187396681589120706557999029258888390392437146577114773695360905474821481512910451034081537953018246837078867488208359518718183608894554350040173572605091740493321847315026111241028543591870798466551298553990804778030368194302538771997192074039045374457662545608511882587388881128015255728242142133434054893782488767137865599143117299689554885391159538035924854521493116383502870455127458514867041918829175893495092966932428816086833089025063966225697334410180327976061454297415151345734762984820921354424914488686645913553756758074295223442514508442887503589283600969651492352672199006221660342177835522561345989307966755206700153018597571117050404588709514480199547336138255622048768001319740198730372945425912142116607275981321324575418017129734813710948219686724799657927758592080401213267013380726901680198211642816818930636153711320620190325616678943763360530407916733133347280956082217441847762692558254992808443121655902804163761062810626329079537835293187893134800557075073643411113122623665761778820813453616910793431369452148381715281213402946855085496501121987466703794185059403761810305490128999151795458255986993336923609995431534480503677037633202635498229265823657096447932185398465589359212787188432328135471143302860411276133827025055761559817280611946777830052227262617856742368650918987009165120797921537063254312916135508767165763473716140114000336490174866367655989809740048435117297890329171583044838758773354083875576379418547856783524916589274379705185513216515420620937924883482383842440291592710901649222094852423951317694382646392104469473900686429056959128819201514383844688020279727484987684452598469517994162973381839827614201789058574272086087899003205496906864333054500329932539093603970150494386841052394549714541192412155195679201820383869630814543741660328741953653073202341245161806103771163494422314649575613780493992868027015672788484092664379081742050777870595191429137271616739860560852790885344648121079351168556513731757298149839248860482191143737230570739499634408587243532015564578837754124381875432239892373081400779064699521286454174520134341687405581918855080582587408711596963528788373855553000474706300511416411332481953125457443982687281578769056850275293570147099476660990767704415601798595834383098130858603117434640846807541457917738129736133616780984364075382895882244232204194979047391326775351272898351627506533447540946334695459622982334577637562728745656967397545251426864587723353907846605233766466839819780885072273568857259906116537303364153800776531768830318907680457304857995930761770365260333558895701027470462410704688008544708345994521891882808558315724228910789736090318709651381860786870355527661512499062663212824446049085691010204354694850503778105679943917776484814807838392410030077984498593127329291989340001822976813794970901594814652798908102587999727591881350078811462804126347533261145564031154266280709162227799016530210249331643511122356149239579475256268838439140818095349176393204404761491393674694748077956341901870068942240273210677283639696729820408110384428044134680960352389086348366055535351186170709883966541901362160315594810367752505020889421767028350820488790853617437474925336139141018690939931810844612421789021743512970280717291583542679785377721209968123368144814322460208245454828263985242196392064454376319595459013374185974167856542946857632741540230747047184739843124429530163051861413276231133251856956486852397620305185784992837323507032774643659544189645959444051870501123459320738331715703679943938271706674752876052580858835989175212714939894738845556475338693777290971441127326845214241036815634572677175249557874056513807792974063282585311206706229441137737287341874065290720871334966778802012159665360650036308713173722029148910976571115793481571104973081385860183750001170291790392095378310296102973900189766363356443509276901545791783294973259713130648693495156748953148235363595808832398264890458279774732957723871416943344317146350084589655304835190537989275301473170605187450844999646046640633393771303042132488761633187230793253480896381139485578785917893364971651252890030142311003706652163981368946793597054941980924129625662101795282155876772150735844321345699653079906996745713000357038750303994730953478642068319222988254424551594051029102865619192856058414475440661822164188528115266807478294730377227682306347068858871038804298131740611135144691361883869774788030750966978895702184115546683452917286304862464558864225278308252222116667240833717186905922124177651850677463560313751932710308059316871556620240796030050216764661667377416890837762764411408100583957196085470329659010233632792714413931474706015363781571426179486002229965008124694366178447831622262238178192663930330717700157397388669278096243426437146704298398771888794830274291715425293329307212450616873315511451829778999601521403077443476961959352339991848974726923191782961296465126353251760490889748839581184211441507467670158171313673642262117339439028913150400144697754911928863198098175436292205093551928805052465429048645134269718587818732789729776473372300779622316952976610319950130237359229524993743434394776074707267017270752822264450390654204148797941755649521656188080674388950672721686290578491272827626584254447087015849578988605091414761746748952328114895447425353361704133321656515145185139821395654249974347697924933015585825681684600549357140749892427053566430406950845795247533314981987508818432418606460805845616444909033339091011273516778764642146915016549460903922787587153229019442583190870256841776134113851232894844699650266414883155400287349008149787914910940424046641055849262844148290172275690736732060487334796071246764990564965455989967215267872723378959649458818383449348035855441074375889500176383050558746166331495287569945692972337201770040784909046539706237182262109546279455904339844029618763645847808655268300854835707190616899940133589746013531037585815186438006388975253989637117400558566019200484486662406882017013351138784025646154935205000741073115086185276604112800020572738108210647060447271896679417983659321202197819844343312249101317469452762435458286130541834387351193268754904667291394671461719543332011976820171761887641677193421965059113580076535517943059100509619731517702117610311562143564062028282088046638954121699279167735230570889860438527263756240882948484709540099416443301187391261409823220515479992891711291506813698245665250463108390477402209316575024092603862494416575473584965997927862772875989302044987581249732082921266299752485332713526218415815407002576285911072788580144423643928798836959098813789193475230856475866427126978943927253480121117763093077431685924339667413968261972143175923692494697103069322284782976898295599075697198550247761733478058490660761040168685222864967860321444743097379841876424824388393485143262968973973825325534961798231936898824245064599551168807479189456893787114480920904316311415867903934869723534156126477685919051180764527158076595157079083300497728324465349002695008570719638032150876328998375905811760351961231374576667349403785592588596786872305979812019015898478748010296390220698441341539293084768889683837412767345972779646425672230457634392617863143331296949314877445099956672197883141203287989078727498284178917732440071923973716816545907521066679280711887898629991668923074511771702852954988538600006691297043990763728022439115982526515232099439474200500316662585760931311041850683423292028546299242833642598480246458698799950363586269015142459481130340741222601583013048372601320515255877173276152182977117548120322254300174564517360905607651870314957630581461032231119164621083152244357414700212969823198828636164564811435971692644033633473792513968262408214275637480770258262931354863992589682572330462659048158684375958123804603048543910357668309837597362373153721376083609324611426165303685914065808072225986585050414834609300536346062146070823089669085681814684680949977616388482659718006970993415936065877772835075895539392478859444626701444213844264511902987582081989245934256279000729299323115933392938997549183061568009927440879775048864417166000216311681712889274647860743925893068828550965221657352391654438795242942868638218194648820847072045813047720683096413111500256504240710961386149245964862759584110852106082649787295477023935719041802428977129718650558878291150771940113262692978606184211897471025859509897675489841382707662245117102939322104240852959293763076176633119453058162063118520030980426583476146817015603919231392662960936284911422624346200239397731505530246683565602915738915404849656920621388225357691390703877580517146937061973996952553406182688988688726925255336609654934864138850434963531975179976227924853412462602203645883603065477720731585309109669134138559481553008056800117046359505739396144691621629330758308018605533151328090777728728929018625771391904206573201999313161619776056631495517891444920545206976933279088928322180569296318210910776811222766564293979657190254402575605145208835215509345453756471958544813770134643154709679474541613565587255319757527086821332095944898606969309161990108259822908871296754216132571359301606378220913892262970878846133686939241524604949408070164788706179268006132387581687177531755092025992180056523663255879556178548825439380089513032828503727820667080358058695157630847376830228818436768993246817288418300195052858748983418657564989616204920203620375899382292219478158891023192160679607690631431886239863545547934339324896878069289175432741934726695038565022260269135225136687113290657548400353541825577798993716590073051143962101290471315027317801307277520441376581641693498921336312490906587498536005545885080509009097647483268428524134377827839537437970696507734914599754643752361264734649058917882904732129323488715871104541568229963171149471795326671040346247691025877986142524768158542808702025186296312414219707427169915793882399988691344569634382849175891700998929609970192311911203525360191368982856864430356485039485120482643754152685257628973385977046574914694258178960356522215992367283637150267955380122128832598953208502156623388620080108872383935602635097355552285143881827412685884644580426689366866618568339958809292474589538059498189969514339679776309494892112598740031953574105020719207106943287793616745008065480796810419592426234416742092074324249194698599356438113959931018186851543115016197069873172356866748814612737144466148519986455990268690419142900070263366853120099747627952810908908377303523107547904890809271388213934635475794876880204701072774459502183338120813917308314549879890165295685240452197552153224366360545211690055379870901842326103352195805143766876325651332693723523206935696170548688085432798116522905706807047491614333598857363876858081499903088445089750936410443808583642282136111566237418113748882611152925300698026973960533598143090717825595658740198085886005515769942007506310565179779866485465173059647649828590566679052121640355889089672934132878430171310661108547960325252809308262988210523659721865693068317341052174981035024690284045532951092873798175877418308805241350084413913895761667172112909966882728337506474241200445944163486132718346330696316762261210520510238631635068814640833096089201685397620358543517748460531514568753461796757552299413178325689577478690540427552940214642882953539337169446674109470617972310054693622727964050888217572083043614576317290296305527964592346640035350608866446182566553645411833311377329097532526059618955521964955514752639761260114062775212672783317038535242959472956040945117639148956111789446247989102394160923612490399711672411603988248405610447799569079284947235644305629653828495219092407369083412605723215097925425537942425054141218700336733183739370994899907490034476005134657661237489916464971572200338207797637292441039006114272208401222816904754210754241402274446075002661081842222165755744811251195632865951327555005672422151831540408811263526837613560579509522194102633782160692277290680399681853203805834683579023615311300756889806770540230411096087251487192738385723167881132639656842376946456282005027538593440237299194349232856065510025150342509473509930612032042372863902903137924424103154880786280093012633707526015352868335565164279645846880806274320968422494922387093605018609221282256544775679552752094033732953968178710379271645604116024497440506043425524634704912955588793077649778813418604488174628240399074250005548787220942842571457229257131901170617386275740385325961623455939418561644668677897168604387177470110950602303362368120952790724780698512235787397531838399051584007959784637649818793458187350717151793558115635644093186435282684161753989976294205840206398813280450547974651800514053269321989768244861515142418241165767370046620374031993828641809516107508751063959264294098448800637554409826480944743163422522300368219453685404701022218234911650277057574024544844607140022863708972607769662035425935149798477928267621085986474277046770543703208709942809157999297381242128107336559564108264345389255488274342216784696649699644028647931047462204023535399777829663590836456042682869592765890403247928114302079594215125921903424776226986285974601867269812659002397068265413411804782486587471549047017770702690969244225577276925703804165451587191876134184640245366457648823971978577650255540439167414006371836070400554099875246444505529490118240145900686043259741636323450697949749492510479403186665640208362479918441780710128737467710706817899513647988031602655210163317983093318163190098599045049980534701016313108651826587101845650485569451291858553243412611924411374924706241270407116503959177234453980720724231416676188648739343542506708593954416651004807913624240880506315993558329502954999964717076150799378331030644644058918115708470153460270038115524590712072104686020802817569581101389653123576380035783295814596014606791936728515474938793365691187714277535986279697612231655788269417449343941340952000970388115786007153770212697871102465446713602762654315019488956014598559464394532294928447348095249378842654373554853126374330819451475472513259941476937787664157474920376529765854148393062628698412883681321050923085317460610789349792008045642746377106991717578930855116125479783968732240540931369520710633877458321201729983006669223077539697188885890733950080965330829770939748573148809003355959850496333757366377219523365590585998763654034871206721431275770015463757721831184964175689717783033739121056398442879514193324841350078548305231609804272271355882699348214782344952128356699772617808780419108416394386700951421922601577439048640722575975196701054423396206622333870300919082893225569683747053426449801572189579888624855289756466208846396989658486932682561149716119696011785772137116797474574414929457997152421582190032889974402893824316421574512897228387236856442424177686756848322326801003393388739218690177006866813845492898553472705328034858770930192946139937680470724873681685409760439976732535560638293334466038695173101796568301412676950159534031230654585212986652820642530432335891928879298078861634570337820423532280343208406848032804612138260375847554310306932814928162279895117837546915488338424253141921952688737213917665994801723512718887371256118041816935996274707698308729710626579608270186988600104963385377166033762094313208707770443510591240259903284150229151431737781324980320612461463333400475815414598731921481310289058850220328358676822401047796306451464543564873939637390453349941413027338124367630806926536274607866390948756109100272404228405647277611149605312813757318998412756926196097750883695381058407273808151545449179238002192605117289288719998582088708672119759357277256872374058146921517236235735210940020069653068442980794892563569560727058041413031708642624528992665834637578726689084380346155760574782168934293602796457971938993169457421251780888498459678169245850986020345162597259317807133498574840420951532345300679074122975055052774461289064862884530471275918411543525022943814543061295484074410291790676706167631679306095804113936934553614269251913565901214302062434773581115804930034397551459363596473700074601388331490812353556821177455628105181309566394046911413445769528897231246335380586863450179155830090416300708924185295026853929246443314100273572842765445006116963671099228241157625734207192759081912476566871809547690414835404317962118656719733607741087111396570530518444530598202532731643309571782375096997490191050764150400407598180290100467173353318169042112794127496602155445659228349930348820292862413368117238170461361856627763058789632458924729069717730554095647658812332516218731085994166822056416474638399931870909245093877318229536940863955184721060036180333973392240305070476204255818829522701378336639671876485969261391857890104981811174491768034950504887957071386359106351829619873061569429405518733568022917363364840184414552421560903357339920705000244389141424166632320000932614371500133885043259706418284849141156382788548938469789989304143924548479369433887764274700012288939231306393463680597068143191139834115594862056451639925735578562961886319337727785615272102613131710843218076169500774599771866906578548932443781141148041123633914134231328350385006511149177275682634465745731464654228559308949176007993896505605319206717510834718432691090241960772089193983627431505654883431961859585404844391383107976921958248249994761685732339422495692031997462548678853354226006577663806896804787044233713353874879815768930268317569470721016200684542297700643446310535641857168173409258506922166100227771093480870424711649875409903526111118698947086204422556106571621309438286245154252750585808649284807448181163147713028909007157501728638164170849788312689450764451999766190410700816436832373211402783986901754949578358905867394787559378774068910530567316969940609847400875559473739095042434342394184634688134738208395201086118983839426550510460907317472039557688043687676888199079515804152174695588529062886973335915721886790335820741249574775591206346830162783700200084530616224949001989404721068537823188820877860170670169032648833859344849085936273990467421413943458343140769834169457339175786003333571501649416798778656023901279668500106220129508079816755511585636984611682107428201940995415039996931737693559447580470303249953796767327066408370344808097650284699211657852561393913827100921963070014744350433865718618957069189398874467191032699992457847147415630888690229749719835294004229804662615347524627995521897691775906713549531199922346875434628985431675641881223197145310825245413386701267077962766357125607609469439158968484036518837767296954683685898226133049680198760372831718573809444599909994247486314030205757349155072049751587488732976502074988945171623508779789621547299016936917852628185918308535005015873044598405887056099456519458379077803191796725189215998701073856720001552167409107115186141839060684912097087869643775143407853681986413477655024785082703907646558023826792144811137201656313449154053213596956335778982087730550075288950618616566926427803657568579076235374578369826806580191779241841939917694494930182120305261985440615855881787786484275532053611390228847490227843319554490894797991096271071462252503181721031187296415572854651554074715539877302093591946361399423835541266561031639138411181030915616374281562355604900333085895630078872375932024149802403119178328589475066056902121560730657513160752273117638097160123515721434214774861810771041164433316564906153285918358289542334521495784868805912084588407205438600420667245978947730161542761645479789900239915333749627149184388616489785120931915363633781506800596503124749173787745424820969556629675803192098631113119344520407795971893536631901694075667782714745248855223153643057063837140297428936279129130185129552132915134212914797924123161870227165899357138465664173464131235829669170574100455830358103074009450933010683717458311401814459501266366852912496739548178734347256335465388469737152664543348529286008489801417847814317893015154129857560047533607774221555311195464212275188230970249229649364060515776320983670167232731695567189672266544411348118399538955856363319800901150944369815449949933713198735714030896709172561724757819337618003267895519026465535358396539842561421758997675889708448822235460913314093835441324719893272558797679027792843077254342311505903984806832252500424201203297725927879280008450062008262936849470678206894955180863136228928225400007364410842158523592256118352275642572638888220605204730635443070819412560721414979126134566018645621130527988963226192047616247347757845439572042612227613868189398147445415391169984099130588066388800219829066373041816631721404282263393030408675959765921119084143048595855505329985223367226323519686424120936835360717747645417503859037121184899320561628886469266769227350283377045207891015133909388250975320822368565347774350267120598717731849820669233822316875685429806153321541346833605210439024441220222229056389826143075656342335888364464251274447500197234080287246482158792380532341592586166485422328198152912667728325086539163717364077045247646015160316438430782120949726779296117258109182483063353365315756098288938266116042212829670039733548050268139557203521449696221220138373993354751786815289120179674335616947316043823751643816756572643950072084437190894007942635527039565783676084769484955382987708852983798925681699692497755731130760322313272475987811535133187320036296122050021302323704277973599527994024555406397396561031571214394106761094375802247300934742081880619028200052471395241376719871579067846256768909269590645616438901786193577766245099768151932188480702911823501327934489761027823503962051460456609883624648619150720701451621566558931136385184018157969706259888269701249555777692902469844977881066040008780973771971327281160031533247115903977243783763790313353201004740024143519002803918677077839102763935331742959020403727136817507139292809201987669516479638387304279137382348487058733474873807060930362476897431613202807631571027820558387334523812344401607011990249462897003658603703589807619688835211724875688590702302021216184337758349654193265692145630357122365221431508315756366750212023290836687358970509074093758545472911670466824981222779511131741514321967076637104612051359115499864901782927912402010772878904858066449309886585719484261708208934665572857887130823863352161765222332851000597690655475346028098765229672677411079373279049317868786991879727153781416628431299137656418090860724169723988052957653818994972287395582872118410713704472699324412671763000793559709771804719463522172382468526380777472671580707567009060568618286308030687869029737165895740619227387706191180943760548832933217302800329403633341572485392543577522574924394062038477347838886367100974304922229812532997138107058174607751428510041415783535239680638275869505417621678399502669882370159391723841458328166824277714138340153161407554873131799356745620088091727977960613603192460264208595743503843657792998916741647322924734133660115518238278293268058565321549344920743401127069604216812900908809910195221848662480570004869647709471688164053297451231043040203247132137399954570572386323351549847418261191012686394638817680943650601424155436394791739724696765922149170982012554670063968444715241471333303367947946084212990988009890091766748049152195644787367210434730199600807575477821615562743874124129851031322411955741476561663972921281084829552747603516344673528186279778743537598690541359132231448880455093824360685076546060331479872913037820144096747871956890957248008625583791823218368243402008564183686937511003174024408815520861625023761527972685864926869015557459686473800423734590601260769708401514747027661859506326194133863757925507622455366278762923035550227339148205950111428485525524624292742655682804684120668475624642343191239204188578836002493301582706052383657803047258163368623543800545967999263137037862009571171598351053210348261761440583061003967287691893856007324556537927168862980911698177174609479272933110988848017080139455923417277111315120551353419983200019717548070014079498745410909501521712283762458523403771855366570763282227850296384936226092453706202465041255453186569116139132535056201231208199675492944587827569973187380719475135472752310190365458389489035272223192225008833877658341081183388337793491202462562203665802849070964712576162119941226944757156486566066832190237579383284991182529305472408224534596098301577550082598151214853585736163221671858130312322135639078529570978122795375938662865317028016296874479326339531616628429691381913871275004886163896976054602990512225184777203926967628530844022462183656420096141156400995963122855525137356515848298312564611087779406689789406551605288134870505600520477756126216808952625594676560401880319837107585889204532556126731543408677802554590547864667732159246490972569487944954578942496437178000649018757882029737867799447436865905711636213502713632230927082913287793446229524425768040789821526297172138626631622902124158127633803827327258096844016076030963180957219197522271337198630504011296287607795456912854406829016930193995636052172462008807967151484836931472563038506620359197266638463941399669172973377483395670694503273505134256835529537283592284729299336855905467923897601353149042487212745712906625309901138435658603511272301223094050242468304098103490817663743751524327720586142441035597742523427773233740897982961752791934246643497144969545194466760894570113457752993750326794553296356235185533078633381368245406439934649767969668125331757769930924651407143321317133417979142230030456178759086282719377907087637187667388720594008287402312856033176878343695108271552862390465458356476257152608696785428584662316984602051805518440222839769914667352674429779446040926873710966209653432367037525869463855017417785210760097585639303417336580017362975073327462196352666957324113712589833067003054296242336909253968170201374536887167168052785099973891779024844759147261158300357641079314806246784014669007556136591250941486922698294800203152825705848393736671079657374432026740571223229319236497511226339666744204714069355216836062917444939799645549561634327378005126218810169325747411807691071159031972287419485486516622856749682935038443483834091615945338232250082325528223981563506165517090820655195773944919720178853964326986799949833332204472481904267319903022033312086385495000587103799218601166197176977508338321117580082208014151111489603436701617044604734779591447633744032832654908437412004917658023588734222926991869594929711870487439076950779170519097010336676986537792547833435320120105430775609811474638311111675990584422733261226013855840571190309193195346216866534140988249196113897617578787426624965347706868058344746348001523665790270169673833979236998583705548955501965948517376737971565444177458641159714839917415827480204936031720472474445641897309043629940813815679518078502856876172610192506669472176381530958735575999021513370929468805275019749848832741006147095655855151546199335576945099640562891459012904067863050448118479405499349256667748651785322104930380998646401491700488077690748892893032660731795779420061716434314758112044326683655800383350074666528382356200947498525833642467852830562631805278701971865976933711185020193438467564673806049535571926152212962371755168558690400066230555790915573878886236203434692914687574604554968379052115832068403752437756717555956768296892696125682975759713199340902415954816217684331841154691428917465835722065872050720957371091238473435876172550839170962240317259777525973656028390890276242690158647358391697319013239097349147877902804327160715384290391928289777558395323016191313538560058011277657536113437985197563035853404237908603975996535933849245069726162969259719389566299677660771233657512471942461218028019910373095431297777925911440112860886391477076384667178027296262909006178893353300313848926607798798835186206464267888113622343475020958549620874812276693463898672833200747505163272039077383513004234657939070935080097410346970928294628918583956166439207375134235014350353843386228207301236284619121256546071488915506217579182719038049457620756566266074024245120943639178492493568603473905055788705919976079595265250346615855185232448710282961370592552687006989103023626605860243765452976403389772732766361454321411241717462827019430753251919153709606757525608605111650009464294074584188028310662278671166060033195153970095008022309317474034242751528461621450582247079102374375335894123164324656909684332526550239027527010993512188308080293499541450882693271489139372578372542412689892898853206719708830371208668228677277546118476259915478035063195539267513394095085878988945741042255738230096681314243642046136710784491796523435570864195024449801829850054612762868088665814697756372469047111775121934886372337309316399876927802095356018811249626352689844705197513621121759432393389674512700783730172136105090140459196746979663349549664501051965170900945449084111084889547034198598253600396296098240797934080138388913380759251216538891349109185765559321368337962023688982629293943304507320202419437012215536446269982342634824311159026182301974270606524871955184288516967980613624031017028080340602943529512335369770482323567492265683229116520978593330451796851289771041857930881618138898701312643151143958664510419907460567827938537509270653732669174133225212573955797593230466765379080408931849098120834583270636619812472846995140497966297887588934962466738928519073205991757106064572947229500205136203908043743760712326509838991123124323649577956862458528411314677895062653880152587216529728434988223274198326797719701178299659772163751551754340478654587622923283649977769775179817028291529104388304210465218025674559907278608090416518050674258179780984715712533542776599700646872842986198290470639860748079104937624142561743708839877255430637735371858693064878849805043507861016451221668121899038099851598492869213783710170423634790657284630672617709423794514166847762031099581368478216763194500804371665545029460329862953710519653854300809908279923928507399576161759865884040821483706143587822297939598469349524504576350937380450356458073900473486505256351634610892153945815526006345169985114561853116394745396580358114377665143944362415577762123064851803028532837549759266260695203423757064332231920768042254422821849378944513599002699739550784216887986824069888275990033249912829138450521800245704182800875545753871489319642526338429903587366970391675736451213541176579369230318737949184350605311010547415579329492183318867707307281922397995177117556200342717381564706680763242063416791693972621622254214037844282676232826846786157094021460221764594868148566880938558774841453137231406783942579732097889017293247813453238691440003760028918916164133220583840463210472062950743977944502521119910988529878144590289460546287966354964006933401134811922958271077749997371602458092762428510581063768212544874274118568454633807102313520469270809619469882770125706482450050786422898541755357434216880685609906869686562748804453594754343355864689283834184348228233319212845810975054351318884583339911383381726997518348212778173188885200216127776530311760757041647148544838429892627183836226769160817756408027524718794615415223572241467210637427191723102270956320898114000003806825431053683120918485929466204578932553749214530303064060799465104995820339881742213696405420885502739947505155884917647517409807988171895496276456405006546519479308009780593048121881209985930258143336457189962066052343910290952127748928740607798689904715078571617928729956706675710501991322513715938027237987128946611790499325536421590245988405537716729911171574863451304985147545718559677933291882439613137037846163540416703699362856760075811984340405127492227304250414812810250495874724666651704301689760928728095173748215031200781474723005430895995198120374655968184604665242298774201233997392459190467166330665449694621604038464309854946418240429482365560260457643605893304357694481718451436732660142653133896099625636829540826163059369208159381049254950209295142688325823425175272757641687478569168757656218914303498031855152840558226208651848754633479185597843295878940568016082177055669913511639628345539824934874210662402647935477061521148767758945395531951242814101221204754004107730789563846255395335438832108818971094881797514311777093249092980825614246777175705711775401832916123073475227880500315975319102811635604496864971249407709272747945873310477285458338818211727232197896188117675563269050741331058767442169808920779415200134474233482041946982860680519149949517869716957571389509097805640722556496942190672977813118606424797943777416693959801648574482824407813160534978827916165583755029411206019318220752150557808890640564042742182415162766252382208003558866889998427646196612789104796266426614634746504617746018107213061710902017254296525173179682446012849621651865697830078514727529245024828846001439270610616192942431280102417012680596869551245743227725118438580639194001152848579535058584651322636213242216359315253247134218345962639546913735321196534350233113370845959339775155232509756576931467087644630085031460051926247482557539004706198595900100805396179276184351568088748028178473442461809643679346041467223017140090875915082706224433581016845455609896337236308365312882055860459511322006360821273710828581012966411112369778369185866935227755507733321919011119708253775820405690083956078498600924100046979945459791050260189865011763563866019044294593358775949675601203627495098461242592232175019275074707924913818213306091900387047335447503064675171183485530404935950006666119593650773512164677632293603895416889880042733387795830010257380715691917856062008776314297544335273138418801965134186489376542913482271545575800181042967566523344201141250565338973871726144796100041238401463562175850842495343814628823222195847295353271062055686295496001390363445542848900612149204032348362291414255025682567115850490077108788409895611616298892221127528448484771984842013901372688997756213186208990012855536028149455538882226924563200329142905671702298001193926316305913641882891384439099943135678660826881991763390836714664255996429949677274557564862465619573516415444908882832613037735790380775853710186849458223584004492789991833232425174377999512172635639175521225604719480491924365322889097374918604340728582848662382690108606578524618969409598637814976328757830675377272103950304596864849144347833647646301162627262752079245998044111079977027535548967640158468788421119299825798594447291647832317763867567462255776055188883171262693347957848674087340723415889770880348807674028643655917564181761044861674119127198554861054016790846335468861576049131599842626512130666407704998065335087636401697927342826427727711729697190354298572512897280513996725603839934729538382367007640360987867393832707499180234242374806878018065189721594818991201455882645405697189235265874828589161407938456407097846531136213376935072252638623789406154419760505382618676364750590912876840369763307720315472414701435559456465155794975234998291430851326070399503840981627598782586190748554322861484872428877840658054227642621963842868205847291677750710746131851523124138025645082679739877407804747975396662117104005777615168273064180909160011375023465269564136209655500269180512248476222512876101854874581408886667478621902386785715605152418733164017093104890468720235195444027733146544811320057534575309540193834860983517479324232756247722848203961944749766654877591238387249464853913344525715917746401605101906279220679491490834281669147913120376588614291063404456923142937444231975812998287784765288915030415186506459010418837695068708163135172204648677843198837864186189761724458850642142885688245364309646739057853829423791950359609940852650170197619539772870744521354500275068397588625125349507393671745716196374623665044395886298640265328624728317668660595252877288447807408952046112136608071873093449079686975752133256073779454671859507322782941346442169654485500214670078955604876072922695115048289070950168896212463874022371410858038529176565178927391858609771213164746859970130284358380295529516158497202128519495664961247301264490829911165542389463766085203740632315199708125219063414839647373908904172059122589928259702032097849315125913793183608341574145180634921316321080047412018228213721403907662071369742392998383943363328479821807957418727799807965793730634418969888928663771225396157653456303780085542358532919947392927017531005424784799278030770837647741772700625744061727348150943575999140365145801716470421835785430630225780544736400169206556134951452518220207501811046816852726027165641810448300142419340057929950258007307567279799639248787407002908847527075728096515623260610428430806019904447771970308609508515499479798794401100590327681135986285669624248573248163830328279357811843585719278852072092485242620931357392856452258688289830020447943984916721891293613019109935820878265638876349797222768755707764755832648144135098111276591114978679580897701169276474049859051626341806779813331717616128170214357040349932482805781134390781768297859818876163195214821209867778424934338961071861758432622097382990074354232799908961713046917579306394861707850285316380506334601262979328382238595111062906215664250532407618384125787522785044765203945340509497111846321759790763519155197855057596674871309132722186162610682658175668076070496333197315308547168795998044131250642792217804131471711261799801042353705401732883190489007419633059655845729017814574394308255353403056220139332935551198636327488552250517970030513974799137340759570285957404497866457130390959628979846660532572918894128864467403112216739144936433655886455251399466346145139160585702569541112046749785115695553925600590099197483608456703865848468037660070403998795138655989661444217185102509581184723699218137714508336598034020605206840073632060007224111913322638981548158616223189461318402454300660954250361718816490032768665829618993267890002179048289007674444218727905140983302247463883928267060088686931566303982284426834190804916944789300914601398960485095902790451121778967147457454466182905007431967869456225760251470829419748466803372309709826366506041908672593899595189717640094749001555303069598655160708395296462401771002083665690448205000977463391974191335084580518692369227937108685912349388298478372516769898343128641394821155948727990842418856209831832777053157234917302145219106080962692339983377703932180260302589835364200184933960022484202305517027287992632418307923602937835469676787077445958115844823842456819987403001488450977118288012842735639512858309237816885410231543436112413057947708550094431414608524187749535619981254793928700289000700951433343748249046671733428053789153904728742297130967465914612409083318375297348157552477245206111198439661806527536323983422643586935814128790537764034071948762981760920069436824935510083620065734771760557185598542642394493189641421343509817002774919723638581278014915570557871441875729329850506474780682383689683693390704697715487959781875523574621481615206621445531071919163878735130486041095412325793675214616986153471514779711801605121403581308735832864116981194178331795765888816035764983530279942036406818001125115268819494963024851894229215834230073291972985638668012728968789885695592005605692318281116623987982842195965490605730102345431756988348015869169254995808988100729090902539106889659846536896013677506996284509176366855498590885267218625905059125806158767166307138027433053832775669844635085193413164358428109372013100952514995261816517176049968137806716457279538873358737466253348074232390436462207064477412875673812873988756759201347430616641685212522819253641285767987130268069645275969594923228362149466357914203976248095461499876239302448204283062911354763370305220576403726768744938841737925439526542020936491234889891997664361569624503048631804076749456356685353402144593384949570069395786506853023844772419407874083756052676200341519720809378660628177415181831582223575929188493646405609820287384573656718119806607042642042731231042788950621955655134481213582459906886385338942223555450825047179567144138009055289093075723255277803021920483268105241094540957267475195280508827104029927202709565495975008134179199264124550205723587758813838214711624163834808372401640189107933879109585580151896570858361581098325634941394798752027348756610141398922710817222517011495181770195765182361721728366891426824379211088264207963848043570217728695763646847805790427487869114835443413882260459616924122689186766892962762486831605895426209516788889357140086445250182948664374420719643299863557650758760230062108925724746569865556346360284425653056961903849014508659210910386934767572369321749552316782957712173297364902597448939531281440273322245676180211550005483051293769717458933333929690789861092369413747991254242143123528549885021763092998275882381070942922063253616989964546447160993430748575549217477825971430247753357607385364849356674876634800087908121897545434734143009595739454152190666327300446977014503216392037543181602166157490622426257891603992272395846190355480238224151872258054203861865350217296301783170545738574977220363056552621350466495112765202795192451279906950163861696798180282604086144094567924496646511159633748794674006356144306413352242276594114952949115910566267786569336941882017317565333366950101569338185050627917454625274584449409928659070501275416074136148135462612725979723628836103632694949962208127448221471717826695775153306931905270894751611749750959577748726494089411888364385819069925586165913005407775394182057427856345657933655110705625749948943552020495010752418881836362496118925156675680118477762628369328589423151114848540915018858745294868806596594085530407639315024561411596128939576319655929096360987138966137782115868865535105944678016313615901457301051794173328690508063203777728337575580491969237984937555520181738375600165463387747210546863149308617673713108285434507843468252214880991576173407371572042323855905383976890566836031226688927097622738371772907966299427514765166198991189640268646032987923548668906825405386617152562288595052581619276516373319406646660496688786338938777929828472269107342215769791609168416277552845237841678851333933101668742179134960832082480702897388238786923134548851953480201637717682067190396939794394392519757755698242508960967394065299978776525150063424496670146880658166671951394060377858267038945713876971521911005293206232490132684117756079370510280510983868859307194649035777650093621989392827666367962444931980599116928589156602759253930545592043795875579817550903288956648222252812953361784225989533007411288098941688438042833825681190500340686569060183359157092592426721885489370397141036371943010147337733697059963875253248757449855184047223545127961794069266218462963842518421141167306685634548191312897694571161140907755159100514842496456688358276441459902960121510873858682190209046944114784288775338139535867019516584252757445664926292240868556590237624630198493683345813363858503184376076688613705975887402622599810501147229288035096640216748298900744408472632871997871335787262166120573802658850898518016916004671814795151762303261892670442588444353032175135020962466360603796565864739552069076547734220079760712432507051526789373193529123669665163350340365925660473669003552986728080240180874043916903791367157966481115034571524613343410777119249577288328697203189802163876931097917315618247953761043324221377905018851517558348966382496364397190154708123804236319132761272101347063825894478559081848498939784681058379947177366097113190912219619902409460408540377723194241135547485847087552120933274502388002248282834914168144407957837465445662733297140938938913709582593135121812821650114509055741407823333751086719852377379863745097209886227365002641942390884831477707345324886475213226940074756189383196895953028813804910349988924653259542704001506876312386057160691808538873763160792515421128736875864242484578871916870315431229511175967682631081317518296158166833211431399363993898413505936908660170739378816133143503875143495561802881319009014260913212765787378534893605399898168583131132615338170591472137731733578271930248647881362937138015939412927794810046973684980039465355462299628895152331233585601903622783990085288642583199206835944786277650193038133522494689412752476639690855172406022887670675318365559050305415994319246828596909520920164796076090123235862468432968934820520489965373139349567575515876606580744462615341910254702519052604159338501609769805657798522249231384263085780848473360506783252251491363927550617767402918205584318778345578448749690353369674290832608236927720336090424117094505507691066399336201767795585792560547678914371153803635726876512738148591685573428692446426272760215133627743719813880134181141108993849852028877460413003055567819279722025957864056603927536793345959727171284977326540910925305906443228867292404063578056044522040516626450591165129079902247040781108755669976410458099720614961449622365627659914161183180790213078464856848153022419106258601372359720337639671556135353647126862454913272921680130872782935580698612941066367801741953515887153843599897861217681469708665789056860038314321448338346860393308736751367081561023705452235675938426750056494161370900323749423480947546995335360925289045184642263706230014011096571096856233314850706258372041869061926286764537210904236027493777345141468650464053713928703420501334548504009812155216502389447267536322438167617164400981748151838932568285224720117354017467768949065774790896824916558346046636955264558427027541052912822630120769049135705857654384499548258375854791611875335552351677617112578970398558043249994486659030947133501475012771128903212645507086335779217467796990417321408922113897750609349688302219460155136227888119706653834952548492283131175917309221185881678599414430462354797268052324367940270628115578453652422376969759575841707632181617118125825697671724030718166444904550204375406980761973284326867435882201719338998513176712550428286600190864684031110478927002892266557941221781689147741964560109577261260441228528012264848616035474420112924495579141879388263182613739980951386280962286731461013077288581709482192723210945936883654788230671370590658829095235991408780531171710374000802950263560450423736993464371908323587840107426500183761683595121299584427979249510671130148651432260437572329010901047867891479765934180324180928153549991217430673448606069699228968070951006633770623087920747715738607485740980293701025836964572735686909910892985798914122553348608874866025572093982629599929935037190046381898481540785845692288045223637781318791416640021371649840397140211408483049625985708953364081496690720560323758303785633140001996763119799032732379640519302525549749214269724172785570179729892472360982014051884728947797061212467613482130461151052637241528765865577158197922779618238950184435239814011808634164788588822657073523074633447969949189429011739964240219006518930890776201405895690095875479777701675655009396776516496152931970298251130052785169797954567558547163008372687753540560294151444917678264885487935937680781413163230931366046515522956238179786323973912997375556219885035754267795945230896087805684382946272915362659976155019867657777751524371143322290988632179580239851026527458243285791670829080750707164891302838746538108923707570207820201389890280671632518955287638020292662056629680328643762663820743692000692324150718310954479486360992273899551486393620245309257044033415128902639750948809800989995403227820170356842826654089071696505828693208149486824863509478986910766606881066030357684192467559597331099355907700943264582856531307524641589824875818957042248178078852191059546868896083030980987360565770195630042281737044299231893830586736035756885016522275043095560488468261884878019693112965972877861657318164512250946122766869967261140489173092537159943197499186561203171242747352778467451848920638434640160211389840769787875848113234623053549192631275987152370799977314685656972828152067031730266403723667368681292632298288535703468008762910611872376745235698512691521932571345615736075518308087434874566334148705583535682680136992794311850052955764054351881053774840461732908072034163291050660357100910022355695215024519906271908046150337468907020283871666960473985323220466377677427874966940117054163756939640516622115013186711747107120649067893422119430011807115950835708795977702187288916563483380763829082061365277718559268651211942924646087705198807312836371776835437115616430609369562130973483350108565122365746080117743515015879639971274270091444499452687648755686172954048945012876269529097494536081347546672015462458456814815309249944814977241018616955022966421948594376473175381811410657648817940904592233847377104302320448177112172256899731577412460702622700128970212903199244924400817137577023450772524396725970309231153782380609283965587781001408499891008084101806341345880828854425345044324439122896520332348504874471967760471673876603861110974508002090859347722120307021736167793184357823909070567410396153922429376121975625444235905781959263603386469202404459348637361127219026196154601930005316834156589762947037671450659777664579872439024985947528112732254992575492400699470311420627566809140376298948114308419568350556292914103664970368061887924051627741432884221010159214625447959905205703048217080106551884355003047096545468425603998677025044284523392948274678346702336246708202168032565003211853088262685123931126273186996290266539365865177491716769744165933006178796938097078388446626568619732844679117087124241285566685475692988367086236023738266748624374074912462777378448808571810650297326036168062886328280851122966229895628302989742419291706881604600914561694697368260880404942589386653892834069205109923719299279227772437366515026290138936885662685263404988263894308570372982807586215428992400224597069031948858772023471735025805823155814987074170740650276337354658904219602846075589364920547879284485957497719876403912039325244410436797337327227296644498301360463436295351596738708784265617267231427413706670867838278134923786689165068816760069323251916140052104023915157366672291741387671323656837363580579805278962875920811201325796389158019547880770032167150603322404257196306944520764126403511662680862809325574918916797986628997946956676109456824045362921371398205453074305024951016804925127940661783022030658298125577830468906291778154996122196538608838241873245861691083477320062606476603567885279705977254700779625455152855470142796396512911531961389739104500933545850733069837574076510550639288603549016779720736950175075371773102621061601523438709074647339948250702120235853599413999333693453681600604330293831320673102190667045166233974428261129021135655423092041122453932676322201861613626585685554508132156995513764514857785884193097693708850822340463863648085637222126733543890532601530034333287215432679822230032031209005549372049301273483600155536003966746462200978854728086382462326291720919995008215508340269720924238966534082473813129779697469598239474935667896875568250445268250030337598223241071746861140548147261461464892753715907356718231753177029956292709759183393104956244486969638930974210627604680626453142498916940723338835203749878690696051156640183357061507096188123253687231944856975698757291542831651660552350009618287029109568172143351046348308432234010148014770041401347665711737080242111344117584601944983874511782713072396440407121419538220519639273294679308748193951613285994413149682546614775187859244644251593283885568665476347048498714269141365995265666336104793320262197574428151142404909702414126448029535163827805108504942545121841552505043700184448998943776752362708014731041317876632373263414799583362354913103651802833476529477217784831790748201171867333531903367189400618900470045361600759590400915045507152984619646703964606420995553313099077766429594625112398623836128728189196395623138205011115573602712772390014361387190143379328032814111618965007575827354490209928548286218567841115221123794937906162530234160957052230198002932862974604185791544989345940482133100615753760950118307588266496355500113386340054480432741971570476452956724553284898234815455663333161185222244022561860214177123499185377149658536622003738814606420909189321378520661929568411984836471585275154771077281112340880437211384844749757229420777685439348731029814462557358150720039891607741813135247664716771049446665831949124474733642051793347382221833456368312582528035185079690337533690437835587464776879440871688403184515014931874404335038827413547630849235439744987769885230979304897278152475264073308864791335504787477791702442831979806365367337914046296097318011546379789289560285362215531902005347138350612404119281664166623175674038924661347685919148516257858156212536480389928509758470380394481657155288494776214469388292527308538085891217207740504470377440850346428908846649909653378709360673038113646919135979711956269328230730174683718835269833738601949507846985839924190686641670972487663265855684240715246872986865459874761994598597676438929773018879926726754505853789835783322917629163865461812942917858757951378465477102378903424396521168101162264034042353206910653427205787744799497288544026527449242747832105164547019324441640816756853133182823912847140142749091182619967138078497273321353952751242681851512914814756350914862665074290312929211387193228481917759386875323836853948508338424957499572258068335908219063609998357097003882062416072255820479843136605510730674165254933744068440751531622787263789940665750850196262880110414294482087218773701481200000195022780108659711880072181975016730586286092084019556587506449839204974847985238691862772812863598130826169794708430910215624956294908240439573994533689986663234587349900508085376984597427302930480180215152723120098578522508268535176409260518923551088064495891032665773835337543091151056412765849101952114737068001765008849320019691434186711458495852503930289198433368819955515835300720389430352542652164910348956618339284504215129650603252282823292958001544208113098083624528077803120408427297775913198813360748940714873871206723167046884850736087028778386735929432069216994799132056873605791490377068514302525827251094359722955615506725918839545840264324526285765623748796253928475230736455120080987253117196906606291144226899540713774706841352239122828390459835108636772856529247928365157128073223958989290816744115454054592772961952910681773128710496305278036255458985948436146078941982554887484787064845766916621764313350178561286697624152153074062506157580982687028606799060847028009414131540157706749231725103645394953721779884608456781309350456355877748032002253781357489383763637131407010033332722433556907566657239463428597822114513581839856187268301506383079939116844555245490491713408217562910855649345297555913043290793949352032455413459812128793324982170025214259737541381532528501762459876610380679894956691263422919907780687896971797266080257312618314336325550135502859675840435218212330421238569353147752511926559641097043663854534891437974037855500169233988325315065750096012419418799701367574198735545847559623242830415338364007224225113593224707518363194158136646636903063327068424916166730990939608750604076742673873608393041975055758091908320259232985783883818494249796680066561684150326807780318966093523090868774240370622773783264926735664861942815938480875874885089089277803682881848068704350134962365943580607223908377407562895404189433801497381763382200914505857730863246103249960802836007890746139295139913650878010793725994659059732890259715662516335657397766743510143846982685582953303542658507137457553926798458271731466465675763323004995443931922598494882853196440329572274151052106206641869943464834552958106285957854874600880374562645525822292398675683173467320384623357360001730336432370940546948684699218528584999099833187938338146092336901154417325999774574391778787448552998295060506736477132502880050655870678120795477098066833357122788173375890446689115352153327870683773624053201350778784693041750466321524976242962924000601869046323704985249692661608381400805660564275217491080451880522435615448098769468669102674735027093979155917041093220151323107278712353873626754553492909807261097466144544704873961831084969304488728635202117373986687492503817416517006151363490601502399155763089580223091282336547117420644496402162460611122847848206711024943179177098425497930619872287876492968591277539413984429441906305586574426877882462302727777189134073823005064816580805113359124808161628015476446228891093977878432186964048422587153181764917398396707774000507392710632340431073529285629219810826409254147731676425049139023702854900363292669549562624934484122694956941318620970215545677788959589864793021802157194798153044645185564736649051139149545947259640571936169786595382199190510741430573828293291410947437905356264247037820462644338068089128358018390179994541895309824528462110244883870907697601384040990445963356296337171639932725652836527436602478272349824513141032825274634744343083258625520293791717063607124364142347923282821543339987958646828942416740104567936929597442164671909513893201452591235415825938367787071303518597119861272541244671418931833435663955322644360252903439935569331486393038695647466316362032927731269176702417587129986982775615597191609047904513257889317372218549098891233676795936383337556615627458739805444707706236994866550833924166936711728954303948887379458728614873998125062527879143804910412048955545335737695678698525445531237164843018816451980324594837305374406299088317193858496490006355730434855605418068026646755533801615727115105890967469081790331012758003294638167210988704479732125729543741376286336869440100958207215162246871611285160933683139702294551955072551247201055309767807913697464221078232755769571687256054430625040833067486246970411660623363749897200602769101763840385133172631903201709327856081740031080544429580484624823808766177907964819231695792462761456536809722858532124070651996714276189348782368307809657310058285755351705069573177897365641970410566240979251177376531903560231370460854824608311885606266431980557769365144990209690912251474227318908247939388213915466749823949250777217275530646660336144651293811085647387629422299382373724300339747921666961449796883858505497502951646653108263616625720419210947126517371857917825681256976811556370756373897789653867667545114701749910092046327815559831284079476894087369875667585739653333833139858138495921717444405503326706258802155134743436565061590293618379969933639641460420270332312963175720726784229490809718209609136583038238265555243713121465076841873706639924930522607282940192940809906148419633172645574163001217639962783620715975323983782212383004669794483709627690507217813786537252967166325179123048700124426925755359316442314586768696840957092613384350574382464590043298919531814466566802007971097927240189267703597807749397248800022148479792850169156722388837558476684772933041279431233338270149685135915888459325721328591463175045009566540298953980639803285503685792654163245523631974258892964081405175260121373063899252265137575873805641609785114391568191908208343741174393794246677330426303634387741802381391476496933248967470918629272360809125455996983978737060916654990847459421355198849014226503396874889453085041827485417058086257623225433005513701321564461126436111623181207469640661125667947718848015968942139863296916962833160477234825687749058697164103516740514947544311225738403465597691450144614981598357628353396999572795205156524054486814816707162380258337412351969410918663138148978410713801830871182817016751052848500707402054798014980887221016873890187387760734858559995562729295852515020536383417531288076649105911602259017596262904447580421528392969870596519937755057803508490563536422945756795749266826068114540392096219250800518997510352727994070489267428280470830230337110898773380694247867462266034323853465008746932341524500506901801676443742013534535875031688522628403628853496169139115954532964467942261975467667803094799073041701766031833502741078385444321983085018307224481544362016111312837793496545165802635522393770010774775274587660592141293463473518825751232171549074988123827466933085287962080144311444278867421937846476539181194801282689248262281784288122437337937060431174937456099429134403748696573670981855711239439890991650516032979636946179460257053504371172077556384292065398418193374720827022701892173702247476620285878203026727779256473326109954917021767510456625047744350111550202016053477794630476630850250171230188851051076469406496409826735465354626440376520655968565058026052554405305475629990922329603917780289355329167823766732719993772552148615519635346235698010660053792048459253011176351383141611818837142657481462727299280903995314653229492284226517770472552169183238813080261920692802883653326227589867095645135197245522895786126926844046522777025246332012591420983860864356303667571193979995203307727169083119530714258899914946117233782906783770236369899046853384810811803809622022659886469997789611072198782478615481202314205607856535191512749849311035353306710237649826455586134266682651741861776359106132265195232593848749231398920822838285720052136130603146557957315095344462876145559981112085740505269481107526759277366319053934528133751838783641110245950399415170075135136067980416903238609287356841155514943544869796802108870820025772661488141469998842808460564697236222586006518906513232012775041279779855958989968615860341928353468284829139261131514884374949420856457048629425070449348734172443789689824038055630225937208963728463295598807129177913796757968812194329746026702897890220598566748870102030804344283098863469767076720781831650881809947006575444236076793872123182070063190772276708458766240095907471023260236169339842217698456419114423607359548633140354051917642528592135020264018969758294526043030792234057513793898828343678608818550269828676012938084180690567849387006212255712205389034056909974253002757083246326416422136526557986599637662619855156094650153864793050428399334545380742988519773376061663712273488819884537576140589310070347361119051548535235443328906252897794304475606862860512462604414078456137069254852491951373023465005254671484246680723920723919609312123421916334419269523612848012416471842757302958091396884305153034980863979108857868483600917287311895453604422562447739803014754837131507028023658730544497737040332168903636216507191128857657971484318440097764776279468144708872076089064799507857933483268235202166458595334510987617885467902864569706437205548575002662645392992508684694195481965275390256193711317158506518311696230717129021020703651262206680610959560627783379914109255471455502006879032979673959194233211096684205832899634397794044413705548497844931588206699213474468638608877470879425174722102372576205371675202644369748669615221931380365433781964480878295373757822375208289523844910742263391955517691134515606117887495165489481231652283385022326196108094870786389344832477511511258315094175754909471011715413412469068592134217097568833463118310007329354599804085650563318279957431684571576674144555905547924549189223046269387634551215232392690269766118155400638732021326619535242008429701168673866183217047236479059136661252215889149498313408100656815220030220162566278725945688600777655058102342850947663036767886884247715026099086889921844460423730053373320535832171604740926024539371580467452996909441312408812192976258517851794180051381371770770648361698235949414996723948119014421870687498744083333540515660153837197746661063125567177993002218304153558553605419397033675814815184746469455282944205871740053302057417857179894882014789133747414559306669717710656811132050470849492866348265420230039119961511077180616378759017416016081941376587717936923765716142058060777399762039774705164582637625253724743278755429517630233121595862322880933839699949047568196351901713389519784300280337531503406775584386755848210025423989779427637291982875786842202107651838112534860632473448777948574379413793476767286055043031526073592640917542725529593388268163952304403651715276486273519341088536313678828885284182567033125848851840759720076393119106029839383861140691931600728384230761517145879170443710247885071539886286510236856021228570439142754167412889773460265273261875737073070461902666076999204467158884663964391916611445928020628675706687938570452474153766029390895116742183093797585232935448713204646534547454300249764313663069999764895567083839490157904942537303832738951989518395188270617453109795401796427997098400203042579779047973650165900935791191976207326704124889979418117751267767683368598517213671714921472483219320551640775670183251836779129282054209123325654449008993169739588668140061464429941735047422327327189145900534863492435473227588637225474473905157420061093047179774097468381276201463699673802735683895198208080261517668052563175769872070665233269275341528441432856669186843580794369637827940693108725346897740888774278092129781931297905073025489835139525104320669712743341453996430412684442675391841887672642387006193064653963212623049058019406942272719512712110819819047853070184697083164213561154461714854214595826928673409367584009875648726798658632750500679995847843587198143631994028848066785660026234245372409428896757994761694341223051469162747572387566061276874382362729723074644447230550597959040661116634901378705641026290840540089102236903211673537551300505074063247804705317275421208720563948422848297795746602684254837917676919507654834800773254078890882799130520800343590429932351818642111838408855312643940979912070799376064822182563179875465870609195186908977280761746717309084977430792900758639684469743549571106057620904091782138076345874500037143516964276732551339827783153905184369479125463904330930789692466402220042546741921249863059149375586154502234031935086514948648313833038623572486586937248055104798218674235812884708044646233402454418530055797587556112572093064782211878694531499276222017738941881895125458579680168028075121558463111052028257091510756502380741100690492444434308174308384924849795066355926614776625966167009950864579740941753037959592598511714461839601638107063511441627690962079091808869994198310246009195929791916196270048983962718694198620225505154005736270913455496920480503351623069663205941863103469862006367546422730804602301813754749748785441651277868951992720017422671822590811706013510692043864124041872735674399808949367839083973727305892377025411772643293806202512042399884858720025574059401423719749703768203920684512444259219993294263064496933974478467068015174832274536967327555370566291263103784604858646930905894397526990835532774101831840395519304286373784416332488796936702572143700467752514742134758432692334119450208581965172396573466383866818832219948237775904822438986725181786580062854533714823537920359370636122343006439576318792020629171123662813938714875334315563390797821319104267662009878567976818526236634757938918868328999313151999748478515728858577846361378947419848720701557515710272429780409864096668306874046475670662466844430987987601500582573913228126076223625523172505444372483034571499762435224008388364406021345998824955907823853244897919763258471324383581770378774932844754701390457181874714832309248983042469955079221128503069260595514147655565030168865580986864151541644243845931089229383987279882774175214993928371623885893266170391471010968866319030595167430245675382896236098997195955628434926967078744247750151443578414713043449305021989635306035149099954949382439640496763976066610205039698595057908437926174509194475133551832829085139627326988068127925396199538106281654114965799770205226553766083221201675664433837658882152793338387882894713975176760971885213311721479942798344521351557133882948065357447513881330489269057747613242156065287418955186078926787077599891596129151673589826823731176577733035515464390654800987837307398496997863766053343657513928534568396435400390465364735799689227927191369312918832186256786179929843518932972827224371530579709901009250986914011494733772821755385096539674380953631650455045698139284902757853738194797135388282768143805119236772983357566682887884075400205010987010125028836826513720264776136268075650840050870895958004529023897814192132198143238543193707604941151797819297495991657476186170365578889852809617144901291687940531541468096741050666009177249987405361074337284253124442506200519859112254804760401864991648460464051208351988196392300761358042812288725294612943108589385900013480661867365604258119204081438625217440244008507584800209507775532404044661793969272563656997629237643327907895791215363908645819183938397066623474844594592559744956785894170206476152780896749343136414800240943330181373644438051112329586526329761556365834489944353573974119025545744447171513035269237177528101662383902653539510855437777164285050904430292805343868640118419264313580383259198241306154253089215900293214179950710416041464467521469081252945642834135156619560631062756185218226703774401457491316304418899564976058143464329129237979156003638523921886845798438853150046233964671553571962339231313525552869075418528908222861726898764022619443779963494675980665994705834173614790665840084982332049236414636257936592729447157315794726225265623878434135639526501584653942224167480733445414593635156383411074079921236829531773079476077412573144626535006447313531551466552687622312806380087868160643367792344352461991921357924277365128438892497369479061284002618831314305162241299495727533763863930892389896348183848196991406680373082398719242855818566379112615889060441946587932981088742609711482307560094098145562101336387530853069331022171598427648022646341596170017151452298513137473168680375929738908775380580516353123238050185779286091747903588009243471330073758986654398321473025427945932123793097933530242218525180706759297880802048756521337930366903335895574360381263949527517377747868956908540557075809994090723487684126139167274112411129937468596972667147611684680080006120991322363713657867500302196583282168235516961131542743182656810269917508998694553058109211616660300149823221105384866755844477817786701902714512239162919998730231662676172528772781034385870322974358676219254119318307201045130347783002409654860143169410053923409643379375505004039855137141022424338193312955232546959886769343755974552002439961598104577425761402479097021461343053060972814933544940347638606182390482931611185753613073791649517249710100605472155199628942798715995121781183589777136341044716891171593020379124480267251154396669940478404809866252615012208905028082546911548956101917374871425258237967525720840366578208278028415093808242500671495762526956471666410549034253881653594205507392224343730091800207702318678567602243551192405634531268280071894291598460322492852227112410484844266729930629061975386358403644072430945478607159908186502518688914840289354451176516533409890963013583917247468578185900705372907533564750622502751676802897247567017971051691475971308139213017680914594583495506691520799968227528540559020449157705875215330648222733769322874064159531649479937651038532642003051495654675894315959987960460869128043645054691663558546938167189166890536847070812427832820424440240907193709659410294138248005024834571922690855342151256766273539648378150779790939052991742339543778797768828894632299634061673861362826207965141804198871328324295409740841436856798713002606638492126529906973311562972035348461215256734776826666091634392595307857455421058833231437904452827655588080319205418627838976570394926861324131464525685647091723604699495036080294666051015739017040895879118940872290640462680549265309660472463826396541823205389141663741807763450114633524866547657885783392004351843558909397832851227333429902681395646644352693583920153850022969998240200668007684538350264745877152481786266737065447614433292301131703318185492222154964519235836953307559429533311738150020344169983458748269041400549544912248996627690988180742094629999566037576700201685557973304711729519948518906105526111743235422636038683887027951025424525782204982451760317494599535488423929976275126232384447123366699955818320381470457475674686043991742349711451362500022575586594790021152376371045236043485261785918543168349240843852354649728740399852329137120525861737912597298651491068361916673528216077276350768743491454826918782313249023157780931284646358386650440548252885164716075408699053350497337860180799570769386768608520063809186566382330393348954304172479021213566451266203238516933062279497201495201321896758201918826245174370331574983673554626441511934810679442025755044419860449634598994578096831350436648066350895430276149997770110400517630094396180255079389722452451222987288016988824415750511339155337870385674362693559911596081112638516303115182154871802147236506121331410104873027799747231054492417704015266428051474811018566162872179041086661684902097970587054187868973646549461796106769196867357720205509028429773738146528400746490968222317172486602158488337369734737994760022127116503796463879645689891991897875924558120728357306927685723593295187067326501573229410932086646314432150276651792223136708666248071570824841172725374502608530104361322339432794404909829133291821529237088248150159908181553026624778055301649151683886467446850392206076515638943719885582997061895492826433933557519105614076324895440996483823934915574049631334916445144865995016070579589016253206872012013361157881741651593547047763190383745850756847325108610168635593528638160338363801169067157642657100763358143872179120249458888608024691447444918674416237625958819279399944844817558667687562264685962660897570011118742319358147192124258997182519562389871464235925715916164890021084848587220482818509039108513013652589678489247205134182023424383744879799749941144341803900240710044144864107544850652174236124448719565848796047410284510281417646444435875761344970981485949231634076684030166835388461985653186362126594789213446695607487010697307240142368420628616636020770679863044355340726906885420594333390479998860366153309073357691692128055875392200026960891014355778378531408028331413596179539031248167686949159951304639290139939397396939993188326726849208189500897698522066766992720171036407009645784042804341037552051608535621782247248263836541151896748974167632844150831310057661268078534813602832144259752273994465165412423594952138638940121291212139398338002548241578567172464435526921629751949202927701057848460770429052431746486526662304083110762589336440319108679145873956277719657656799381726357939130890734569529893095880881394902775724556427395572071783873170882772601515251198670016165921531173950085298004338235968396797745972835140509259523912287523933765821270148714626813581130969561719083995261055805350483200457106519262851747716830736917920112288841796049034439658672695611483292873771602971567134216274497095096651137520739819869449332856621466640984459830029513000393777016781145975742935163009773273722043111763835845237859687853303168256152883582037225004080528372118218010376813611210578792656154031385778740878498451140507052629918185792204171171397467509836361976327508180359099351254817178108002948703184170242515373047665060784498623177214793553058476951072457275134052997357546489989326147108052595548261557416025162637090956327077987150774723850005733209438975702510828494706321990852135920401920023399534746533400024707164762489126311240833844949512524222624442781630734713375636203412776882686233806309953899291073715948793706578913642129543260319005773713569941310924954420341791939390504691168292643431602867104968433801225974093612716834876487786936665198889511926833506329661615093945534933663774508779476937950188873567813117261555965415848119221134747863538860478810424970600354091011275147354371466042124976774247265026419027566473250575468307496080696537397102820255185283076840475411465962344485467077589144287156305483259185985268358540153782403085620950425751728659398098841223239469468748392854822461288891423499772159665598131435199356555176287532113072325387282634737527323122288610373596640430621583975611690787275192922441135201300042114552480289175497149665910804581000977060238707567549252927673104654609976867614483172538860479528048504834087323228041852454350912164779701176931621755097213026124096618598923118198735681047323365387488256951930797584105158655472658343304993477431716060626423118627025178719956020192904395041835470905781994711550266256081378328439040063272441134810409823648874981395219519918491955786850662268688240219906551497689037483279687134312281177569878418370191556992130369501201086599374456849154813346753466062380869955099714382666757815582991884907480772139596008644911503244856133468437553213122300784332023363510674926683708241679047242043395051890204319921686270189156296883359664240468062427675680434275158171403964390944009945421336307656780078670253523481861271276460093865502771277446748098363076550320119886960288933249004324098546986343005889458728665328605021318671542440436193454359335581194078203415604949270664134453120993675820839658798186188395791132794636258525446630243910655479698954201334575104258294504723246387228636068570453088050716313516820586024866165897545608314328337251419916925097172798102385809141935285847847583480493715757850472488732471873812975354140267919700863548760746061915440002550735548047174412676391786765164385067009958289561029414262875761456947018950658458828152852448053437600319280312464130319551849393830509951941977829339626610043208667702281924937485186398349836510764432246875523453346191913036824392118263114830564475245459969757225030165816420414429326063456794225394192649138107663145116293283634578602126741585598319911811003966884888832980671976234062819505898947415828464183360620677543522084993285971166183156242191629102181525733747347052134309029493943252256567283222325700641615297445560090873331274848513291402761711809879670024259699817042389626975839544314733669468991428839276503317478045223398143749993082326029348596261986315882106252675746264977522214929882294611020788200060244859651386636273812962263904648928514366043909665127206908867635472405559663379759039375300563220516438160061171258047617135800563052222948154907681185711048083307860961974882972439094476105022133043468414002756207035056928555007223356472639274628892418628122583209495113693268752370499144430785545419121977181664775135870772826457283539582109639890810505171529502905788938853525059852246834306195326713179824052866215897428691424453958327792341249565158951136532261688108401113325374284432834960960029484387346187866104721607089455230674462264753883789297329922060619734354947678671061178746201632448906169041503954345890827562424622247428828017837771921280249071521409522490454635392632821724805825993788200822586026019539442334159468284540583351910327216929421723406424739972250071441143956337251865575549666052278482137774079644127325440991516058336002783114282221216175421419375544336508895194265746005472462683655490302333148834914679279585506018364928273948293352576938231535730713903540876007683140125019224287755587948818786771339305743349643298918347117891123730429992507293702816337204297130248441105323759861753384521412699201038596033988166696583998220244474325878941662538858537199833189456292379095425337413404374228361626982350288242962200710353722171471120795322351379986978032313767964152629743436287096077357414465946903152232247185034491727867607710291908295944652563749288326189674552313932068244090301168986845976062332124815157816814314844056307805508297579243488796149495703970655623584371499684774469046144174576337095483718297500719828679017486078120995927518392926478794047088122985101784013094605166101225217605707620363016226581853045070103720538877357039866463990813483016075047076789173688934868391786437062187699620046949347407908204136701663414894697981234664830007771322024505300286412948078631463071664221276711553821199751685162878166845796797831302197399868947169905826851228208846914467332320897893184506699820425985536292774542961294564361466429639066082831279359129135235177387140603368660274148028185475324099178942524390528428384898759321545605010012020960766430097297363099547110287765591306455306446921571385902067716175585994044696648200720601679665567753644908419379997823054156622258853290601324720664560503291346172235469869238326217873037721154013241441957836777802679965853556314918771907092726490515415197620186240940860964133004290246835740684336621797255926278042765999740334145981123455117267013599449367570019189836166851739729968648855745634202661075531509054521657177266800787575009346720516958648271454612579857081331270272812868392591914046878012754666254052285425204236899853370802353749011914615311115407793934104327279798863275765372690370140913689275984158828293314258227415850894592517907337578051754004492944706865738744639381727545686699598917220047031531933018804378943504285130540370687452884204179429301288437302554171518055116053448855210379380481792685487890573765054172250123837351603887438903385253906591943430876358571181110190495508855856129359435448435473927140301600177027551881051010649821556351117676991501379182727919692665132040525404667668954894864755370745033486981680124402843940256645324660017481222264707296166857591955918006210837755753266347968123577500340980914859338179451518608607812761268065051832434118942795772857300139469237477547597862018853962891773385072642235780249290000292832928720615253990680979994947810569801947942353929006582899631949124603241740696458589925601104873162405081754662734285146285906550019460689490671590197251467792509600806310896392728310609872172595253271926608637127264958947089666638784423561603039226807114941829854527432507699406438592095745370937444636014799710434306347297581940628020230975065220831480491864862761080428526728116096779510082523801575171414563603750886295040768284859351570404597790545933969901060425824945869211200940016746504927192708233676992372126879111259711506330407787414512774525319813968508524531571935421541757167480325311124737829857909087763062606786807402793725318878404349120651223258745175913831532247118428894728989324055253441593339894126426747225031425688924368156346723894577359907751159945270547095053367010278246104067621290826520934393804179235814555470010583195089695143873528451489679146069545674721274368248343046005215083235749068721096740795950720226878755049821219072568729234816793722219426562616455276390392362809874133072866104761389617723641005792426532250181369379622863018489017635741258030655199382124533797873667485553736145797171993186576342719386315374339098206419817732659931022630959900720411503611749837476828442885393908577034664114877037301147224769179736525277961995318912163382510775401009501833551452493942517787193147564758023373438865477443649978515747331242460875457126695603536426407991888068430274367779681504153690229189379954205778765978210761813850149405092908979980989512654027312085917895268576442847815079233616801098918146299410938785341668701237569559540278964305220841116630276214196368111884531350089332270520140313844488134912131220348715121211675045201049436121966499894199043077934447269329109145321106772410820016973951341207881948394887996069750719460414202236557480548362296486975420280437728494943604666545228912246010969112474061101036425472913098398178612313830376734832612095811339441642928142262364093403475107376647974324959897331288219206818360773966274539816663238542073078058448774840033776892575715153797686603652083490192367849170908431962006732267776684110619038587673073902448525730687908014732749555172954732083842832952076929872181075106978070248372542585259603143963690295021945932523417451429646839031870935567824912206506547596228907361149907754505588791505311646235896676204074437989346845793463383759049826875966960678758514727441646683093259012090905130481814264293419584254177156728423813961708173502323803445316877518984704920984270853422345539076554245211483953212887688720950910455706903274762026734878001096097343759400645417391734575111061502905339985768530994708741956019120175577675780671715982701914147749814519641670568644874331730671656809292917973196449578244185414470467098832466489926009601908348923344206745633219180595232746342005829210768498794702703604577229880338724248139809411183190680407826023048019075508752825208227491379784294159117102523312048012452458410911006343488367850000551617002561496310116564474131620495896956602765073912689217052172703859301380117758962962896160454592080090701014355604828958573380092839307065692834443386548730554685877045774942444763475905160484159887752266307260382583564041957799559159495058630275100973577519950158915026649799439357136525721447271583305240080021770264018222636902060371427544374280539842893313654018824414475975965575772306773767129136491593488341819312910763021509420850488408124656006384463465080099313228599754322702635018627675335178028040544143534392151143711761658434491192378339982238629528082110857690917214355112978117668556185149782271636300634497638677099508854100059720021428150375282170237025717465346030421908580411312960093288117961765740479374295799956044536300862204798804435381634644763039987277099478857127827354204337943725173976395566956571593210255313559916297458976750980068978691630710241715503553908820502842850830458884253185827361738569635191340059158763700463840262525509132254729721642130880063623072391783259609141243246916100713891334239057257794849072074885372863268185464197160912070593119139562256841044629749769393399495938129334204635639712725555575847241017059783096775192098106743828754735251062623157899309709110014392756338579686459737607404345866380501694264612051177750804241687772394857522338559236963187223107291028001166601377518080519735001593960608656283107724796818570640899410775735765452726045022104006825308099177505803352741186734365425888382266642817382949768165292584219832720944778525488920729794126877341576112633103508475316790039704433613736385307949464951702834320247354904658685703743136832127297240278639721805847158546017543212780719022622629396469595742797974662610526868230298300568683326290539187171419492158593310804334819725494340303070642940063505713224581497303218943607033684312319091943624082534192841788915229643368473881977698539005746219846695253475770017298865433924362618409725919682591576110747629400730307400523562782978702554407540554399895071530598162189611315050419697309728290606067188901161382068425899802154453957535937928988235750141234748667204693563573577738064843730857329184062108496330974827689411268675222975523230623956833626311489160638839776619730914991551928478941096913961226532935119597872556676425646289537518090744949363092921314127640888510170422584084744149319118657558257217728361449779787660522854690471975962647668005536084220968951773713500861189045243301521237693745702070338988940123376693961057269535278146997191363070746432018538640713079975079745098835546596157578284974751264578644113084532532314940541917263364899647912032878171893387317819324912382342186482717637230225617200163483685849556581651124899544684872069362195779794342949464025841993908913534266985232776239314365259670832026370250924776814704909714244936754143309872595078066543222728882532235993762705039830617232657306641284654204820443994195420835258127315570724297830011005862773039904324639422707791495303207176694857228801244427671056625627920724539764366974576454960366072268930561155427833354074377570445528891803347652105356453808367210029051174961167509213570096677818744231476377283754890410143170414535976440260193530914527700660459865807555660377645131062093877156490576015012608855113111172853499497993923405245711857525893607064180360337310205873610356327202652014540662092034854478041811906765449870510328110863008937558612380701710186751472706764627511122783703211963844612150279258324605590458471098064487436527727662003885468871147725996518584890240969838849991641106240308608777080159115699840229006344933190450652358377356590265963236314356849477293084087282533123599817094524404394439969206483220147546565804549614881465975584659552100709602912770723743994609817692909886819149627815212011903960264423428414986462608121423718837269020752929340102777955877741783637964563144603392883391398196124451156834855387691618325662735631366440694168041063397910042682180651725410400078093252596577333050834588872240661369402063931848195861732108835516559666945168978461377597720749227591820844490707719361811998224388634556081032391951907752701876185851432505418333441375662814553155341227996212522368057047398146573154113113952670073539747943745632996297176500668372460313264905597125098413488541367543163260732632898461130810188943296726857434327969945374021011783918088372367960441513604990190634274142914871097008628756261998012620284054619350890774896044081307399156301624657105090316783837332889836341847829107379540697822317694934437472896059257554422510452081336706637190106464037674982182570395930510504943821501674845431639683477952073711297406411384843251222450213192012012185519055440945420809300039907819793425017881265583224394607590467003967880177359736343619833678942875272378833026569514862467062746795280944929398600157622084383886795071090860596847591091189290087035121241086448191250384266519643026789616116986187302923756222895517287480524909473281047783317677151840960554565986543263068729285052758785535856332793374740745135851975317327643698944049885353859372796574693341592936103944000943559291252856967858387827217527585044919792048517786122576708036103395461180618527915255806869442042786909170268225767903090329954261349741107478281142616682732271281912646098381720402341431033212227019700868942457967018654592137619846686920925624233224668053382939203658362908881301534191993784082546955713140517407205649769513744026455902733890438102210915988307496401495322412458709785776447263581777148785504095181281898702974062713712993072561961037670654330398890145183592731693155396123362021402383687567592348599690743882414330183119296927463041789114441493828926755013333789215231840949077558210606645389671259226130620058113901124910826606176536434286709853097844729816114451855919299149406842731706918166923111913541714861355903115712837661507491341700959294135928236794688470203972125040413457722093582396729417074764128611218373766718178354329257098420827634510822782260374751501246988032893391176359525367793184936771271756300512858352580721149402579334568888823662004772417112307149455383082935556524994274339169840171578362704341322390696690960286205917360277774486993172208849709381749987386751831803555441766935670276412424167814154162717792813531585759033537211675607425436554434358100538151672477207913192164995031116935293059505095865121877380990595403003802826063620926411563787282398276074462889994086884937874383526205192924076058334307256516480570619668962893112546461011326749033540760604225689011911675066507109718325042350781774079441077794671377993513393036428424939674171514619277856083414224680998891925175062844111603861607493622085466853266700414168880311945928716286471591299710519972773077507739608972156654422207406548503750942847194874224258846224464982324396650686445206956693661742058128184221794511447970040962457352431120250076835206399570790421790131820564989300723236323308862301752669540920142079266149740564862602703577460078590451682849053972116642832439858366207370744637442289986979210943749716799052004782644600010598619648303486143556201592750935361743725919749295394745807456528787765380206533763313311698129022835769601138606702548077534651533355249940318300231348544888409216798784725878996506340686857304076945124593449756257283803222543549329301986010635572294584827121621305186929681376074832657119341945357099423011638942633234735949433862730041739010806978649748817884334215631287122226434497761783951445361069630269442751370567114952122043561424056805071812754848687028093749995920466672334366355683463903040523343403782370867830782943955249799052869147876076434018701645118955348695891005796723354263974388216966290822145366157737412395841201474270694058596956531872295731930388061663700283994823647474761288737358698821319877446601927392037083763552757481530878556591267548772579437156867792324745308311926291408717295278731682383676064597505055631242030922358281755756568943651799816140515526679455950520809785845751789566022092903528365250257628019817160970731880738126201492812407790869502135520148777488206246017709321488378147877921820131348905382671744042747793975088896248277811728037826748318356774521509341533018760813230852429550772297238069072867863540671787394378090613479386286577820479224645768382041075571222750127202754122646285576972589651313826263626257111822650381411952602149819958978901510239747299408603283865636404079767960190200080377281118069555497682600956522278562997252523400066682016370053272068697693396322191440348844846290040822907108947916650868664851338189694841418889583403172282631652148468925713402128361957070417365512999205292298064618008581585537687984854481993963839479807357737990693522096516555101552138741536773350025797939209916711624519245554541371045050148988220143043771979200399172485420139138500400042235259386755531747526653825690149234642742735675756262389706231918674835483788322452497147809247612218157449859752070500224507361823168476583685072636106147235541195436550113965994424093076626881621101944839440098380249178002696778158797326181800813561281385765293300563706535989704433918391750518918558344508408693524462194170258333924235654070335020840575728668866287542605739638503846345020312141665108471400057404364730150065454856494040743075443444243712063387312972067615100737553798175346550000464968032492026258535915949326693583261294187227385400341002883467406456104629484176042972608002245834282011523878347470255506240802924838112851488957704841574092766772896785607890773054375137611747713125757671211128072042274813932468478225734503700775067051238191953350765825266510072073287657848888969830393976468654082784208487747494122640248740031212894136791368559625366519972448944424233814532652402133494909314795687590132010834732950155071352208101591448048331492970779227271968844774374279939676009247863731590524064457459648885471730979835131952951981113215244522639493850648669153536244900029565214473370956995097234958916731967820706909696142523541604601501209219301643638701308042273038136609310108555468400780265599343965410529800404644346736616900165457978899594628055944007624474383984247680457348587510102348775836127563148807764579384368443588945824067814795053341634499443691083676098100675346358876979753526439983504609469228440795289405167220270589889125986721441535366887417177490170028307369562451192852530296616020778790858969004341431849491107458495391640929431778849395638676100011183859045589501136367984993818991259624614053109016639080131710998914621712615874971387185584635044913056892971944224487643955432480878563561367416860395852804498293341947422361400962167938938044687843827380955713582362553410431108160584129623932165386006393549777694020585969609258588371338477817035802349972139483604305566932557848816492212680037108703393173775224346749605531664825155447767339121600678805236705883276728456252569011943844595884048533715668674454677021729377729928871599882404940438170712521791021322038877629902709396110640971402810860676983854469258460347631854691716660571218508428473728238805019845548820105123038402623979117767326509379225471039862151595508666530167062224292982548507991753478511483482181064728327844607065109480949354791910627017250601370009091752227405784718951987374495470820634506381446599096541045376209920057844544522717524182772779339485397778844552386347235814461429792265962333382252273030279329983637298602944402898993304010767492602278273597361940939593968110145650830294692664324835785826677105611479315763662081985027338067975897645054360630016764594661374038214977126344172604547416535205177680933944565426045226818010359889372133389192011069773215034083076902261466572286085681138768950277650436747222387153964873463796187180137630584305739178774660451628078439262797481321915162990299227024943909851690530207575526273033605607365985248752613305868086685476832807657654449663845344951723538739572349244155092882640684158786234371656262344808337960209235544563560456299223288436871759783274610621206129361811050786164350029470515282715666938146676599124375601375059568069719554201490833178784243495777021407279654102795875174107354688177739593769241927610124511491579181214309320281123202224771622324623449227293425118540299116989254512018395328548836872905401392071507335239847319407857527538523820793144771639472785219170998646057573831202279186972065943343163010829525681982629747572752076822400772846081942201645658301311166098628259971755646248784849565066819650542623702724304391517054767192787084296792988069778454372224232713892623240466823885024567473276281558042988069822668595906659103183880165936398213874731833454551144503512610718774811748759298489333361722124567923505846590806371458071251234894823186490936239871057335801641460109511562300124211706471311906109750561551948307366562377217832887174876488761190294845771270582111581595116127570147535186950910212558539188999912443550977260785133455300857849596981398055225716402402091889425025143510967731940850158970388983827416151749129863177406136055467515093505772210577916107569417633835601207286780527691298501885462556219857311617354415783278172880795537736751349101793978964818709530731532038775403071252473046347446097160313972583830173049667701438722892653622048086063741695782348102135370178280915791908823456369342923103256112837949308336079574360650581759056758918535089348655712012693251629996527702518713868400446866746348917502872026556074749538776241428017847410145933750009778784123904110164647875099703782982946832613671855138240679513373219479220491644020090634789888156595987717342628609449380292067790343944300771001976310167686399990819386831943944362256039071403596897052664997439276552988806980262289972929954588698006887272034957632279204841086023669086125948874385587250745095152664680807087231941038129547648220638000822163332396596259398595821130635197452833331624901034505800443388567952435503324134313165479524724636761471789281664765277436845548024007274992315234093247501817410237247682312540896923776330994921753381708690276339886304366538406272586079173851331301124402036352938946730341143911691140890086924461444607190193316505097061903963815133569127476462016937900211526424614281794283636519774888434905799186492928770634185154892842512503169905093209554516587622034952625163919518544280186098637021595606506660254052854106417078471297418321110683238513069007614344935147106766694983312369277588084684029140753376406043429301464568089568847132639348302784934133261818626015485821993653392866981608972194448305044703660062795314968141907275750389244077687120053169913314204285495680180470248869330747352642128005626215103788599012610311066103441486960059914275807823415417707506834911568163926257366157195478886069175671718515984093947421723866927291222360059962649273187388931580339099605661378126071422396519806847775480621897772856952800680825329099841452975219210379033445099235128674621450262423679844556279775653386135519817876379867729782287234845026294052533027873190692302497058757241902877866698745582252148145404122582335517849445247310882287031553293831872878793078107753875858680703772183899553897587742482665695602062223874302519147927253982262604613993442297302351255730094560061967606530301337932183321658586303404346176475442799727262514149550167332711057048388193159151521719707058936535629423783393147406641280801032858638770784473830010399852525029015182347858273083980159196208601706969558710201263703834757110859482801827270869441590485567097966198136021601681250721307479114606292627106348795449621766827580527339849572216373063723934159929756772746676818504127419227959719108411970128942775474016635982558329611442126042500592701076047956410588129622322675940944029538404935360331814458402923439222366355202403645949955923015066973956141161481064521931079942060686243387923208780891815423893800667432783723116344039510299680838045900902846220336118511906439795664579149028169989906459423338042865028657582364067383461544490217966874577829518869392309165253695071785035795036234221467865748401415405402897246112983369165382754982850154989587124393030703934165022662923310106581487427418794801497694365214287076014706993477007475635791727681306908043708318902882712869257239553128168963714623419219269082191177350016459594824046369270394911169701994150337136099392175631935475391989005402091253276950047210198801102703571171969451784242854016892851616685612189424438579947244097854989313830946630181303233379109879646671938863114169133366253698278877694590700312378984108109289732040589884334672368567986599093969739020461637161333856540406526517071058150860330975625534842736131194232603026235854136124489408045472061644807269848302766968270562309676152863464186073017714717405907202074292321268553583626428083815184190455347015564757397428018680914348254551661303468952426077123596667976043345481699857846430618155425265811440868819751754208416925972829979161681475327104474879286354899906332246562163303253017815920477697856373426083761722234361053464559307939822254879222872588256126573586831769455664484193851620285026231125120522878081313512253922276514171673324422647975828921455794298406440291233752971546763964975565845806669559955116209520493991148017290345674005961436678298193285774608129405194153713563749403413941836409749043070539607313868653454478999213731227802160509601038755807216973240647469594833239882375289641405455387872504740785306717915515920794934658496120945674283578135152119561320286171342836687143376940964546745399338050451012426417610332379019951142219565611823908012472752812969912825880282756435017241182841163358491354082668074272775168819270842047713217290910720446950019491957570119860471293344250727305837525330632651919562938524901948744069174001728637008236342355200709118335558759259746590948868230488111734276554195731211725368657693601222574550667877585421542703165058781932806289392285039112056139772658096317519419767089704839745948667231050296454344472839758910699968731819547851282314834624879632323384452917703850372744626443413905058064016484842993253242865274861865136152673861934784201332520732474828703580877350056779539228540306830497160442941753323235057892891189520170931716955982314654742060088342571714742917376763584252136179142314707679522098220783159501250218434185398001364301215381068232382696925254282748790147716260488825501494840282421849878228140265192282825832297536317833520055151366493276721920460221705633756089815187340798781339610341185383025360820521875544663740360327019131214714146698528313270709528973163118572702377148476681763208965505929949376399274114317178710674565972349103526307714083640067761992091464564692433990114086913764695067270041089584689694715792372198100116524697653826522277899411341811444477495932155251125840673301814599468259568973799430128296517722156490101048376895714581364692235259582826849801136871546137257870079984788419513006288375108762547564467025475428311312471504534414702877111788366465986524463052701649506752297939592051008414364434917475245147806379636870836262529623070118748650369832258731613171536914929594127930392641985087243325587378695430788731404813798889613028594151039873679877677040864812415472504002561370191235830973421621411734638695551070110266327087908518552845132173134395013655626835461790081883727360310395169764189642073077653817868135815583013364018121702935905704814889369714163159236867166325151715140353471005882268903666761485474550194254466355107657345392788187461216444873225278500614432508776446837177845716075785992042679695924317810092370594984581785311510967108532232577352829608372305532390890525037961747400175540336881688160794172294192721059282001188339249651785946302678108336693224980999307950522211213081263788008500333897587706804301438799569876272181172103355834736973504017954158249729722024919555659918232954250686667290562731487805967786589596921549579269510197446552644273567092129837300469957965951327910300550293965803325485288979491724116953595964770266663117385957877312015854094402145749582646432576197667523141741105695791120784600670678935754536200682220344756488582940665598702293832401250829406336721801584825385569185812789760862455147666481481237078671695886913696973699113220823199159527226899191280109927582687716213887237646586693283351926773115897635013428688044699622219220638953373208409043609296110333546987719995886967732816040178792580631604385067514137729912399972229533525656332331789593928359643381216270576269435552934545700649630794834788049690810511190042302587415676226623253039191003773922589666990152716612647395929899537208020385592415665155851510933631695458208621769433107280489140336650663216106383158086776928990968273110086777478742843823660733830877253944966213389231108853161876078043596440035770281347872024212200894994419984340190060360610392362404620145365908501069872106338560757655794640162501742999153617700036384467641808315015047039514236526004680376939373897531518165117280768014364673231120090931883262919265315091067920477504265466582650716716434553548568447582255247956664656839749770969228744434124895126090464480323051382408741161551619509494983396709662917700163426662384396124802981879795501070790843005634476336910669216447696039145492901418946341156576770021670673685359458517165509680734244758611548934317381232304922609520116331362904115289689792928106517097664096116405996330173695718461901567833771506431378908244745613696241624375894406718706620853970763094389346557827446400436902391417889393633308361011053083367992909477332878664115685022523487541849320077506331365889008870084308972170936463300367687000127217471829612319735553060103069318726495098022626852129630795580146476598359124380539485748351120340375092142538107947399475887185775565988989859210166044523804907708833712849353324548377930043047169435826420853600160392645877184321792251363787897710537399740532659670912605801468858707607922350673164002217917874354525743896554323292423804170529134622955847612380896000790917523195153627952282186146369660291348726801185244939173247795736512828902980723939055943622471016873356468381649310414123071064984743999595766090995938904685447525801116343521441746005964483290316477632235856929866472521483009083705164272963506370958217521512640991738799971609598836538098188139637351214241118847388940952741647941637923833310454322794788958588375694704708042805546092383917584097652028147323814190976329884326204124642945697242840074716935446883237048366640514534026822284557703884619210989194493888506124373056819239535036449688447870065977712869791571716219377310229016830586903768469976337951721540940709599021610519133258358642253847500125265641318127546561886223913496041322100933933045013650897350831981006337875977185455200616959027238751746955638088928210562837905421056324263615264105637047044102736196474022204638716241923512918720578368025470282139760688852555364705558486863841840118725266643758095844004151951928230688647831149264420091033824496963116063760198124900170340636245212786197454148669105109654206782529877530994702223169783378791468259114459418742733834198271164171876138770673844186930341735053810846374388229681116757796781761403898128189062315396167507115500816642218240902591543028234504226135636751290458167307815445584799500370435699767877205224654323811690565171401533411570451320284984389549649364480250794400447325237856312267992587402418823672823626207466396874366583810967626846629303038667481718576950265157700588207068545068190901784285959102305034791246081802483943686967882235929969350354006364264405176957672759453456145954255194760603934265689165867164629985115766672132747140321503013606271228080051528352069004732245522858620966798509844000931948406619195379355811256759798471189340682097987527389611249078695308045406039813792193276196804014156929015297394966056103560882473678285523410407512406061771417472955167540052663957075655587097179144730335593655295038405462790559059345124006204419815108746961331930506833219547485079611638878477775481502302355595924543266875181049355176857090720970148686319058294961416881905870478024957013397449535111596968920740287530082609706569919611915977324268610219899839789853406108693022634679406822603890398665638824995330927276185124741715854793383219657503516427860769085164332644507688410649521723592945118370008501945348809766569596800257234228552327064466633438016409958189541156869039108193800314005008317587080888837050973973816875490105862731080774923982368385213713926047749232952811723778650734447892299675268036424324093382602027404978910165907000696196003718777857614319348845452255233220856592533838437221612938560201622267574216922297759114173554401519788006713222541159289904033290185212021553743197874654365102368070779282220504755904229908726436604467151133000894448907353860679199346433778802067527592142935883607515381818502013770101879680310268959677138183647412043389414620581295872756101133594214985674630102671694574915975194233146941508542522694708397872626987322693608231698740220689024688330057808482183713032026851190264851354421671754209305566064135280628513801475622490673607817583219469725578544115025459771975647666833893137236267639829739142848811115023928946969781908797401309249446138494762328027131506312695530418431254831757530397628620517215440487414066116678173893472677433396025241126536678220910681638037911272766935682623109687557768822505662284706589121469082503718432365449403643625290422577907507986772921396598789595197516058719389475638247722978160541312824675256245679149698097752850156277132292117199098052631357133426661494570549450851998920470623319314000516271806079772529331037887171160493242067608260696506358696999384798309527745149378192532974603710117711217490551282585878332032005415645205848784100381506176064464056612738504618459105862689353914252528457331644952499163448827942666282726340614727646109368927393213065183794358523710189454259293704383630420147264108596563445958493976636353572499482187003889123222479449623915644481845555181511932677206729043824622207423512532694698654516333535425710187785923178372424667921054261887499063082602300838914063945146150823636092956818568846516162732375641520133579576856857747054801883085615916262356701057685125789816245397619836338573388409392951645808665038833643165886709183374244571633681993078229713128060800916208922301125508099047310278559732814361388145588279651775652704056009241394046920661972705795006483508658106451696892907394383996803127976034697771620392027137405859765628158189075975626104245254112676487033387836802137234638193542719875165878306184872841334813869435819505644010705139470214996541103105672551578210009123433923675906373569244412499540830973071843168994335280791853777443772553543325672830650634190122724057129680475831023341946344213971683481267371919726171414966457664950645195297043684006991770645708217237900763136614239095313233429960242280415911922020496935993837024384947224261851941804511746095484980803310818355115065142646708300013566364746200242826645741921481061365035716230475752970894289633972338800541922494452114809248356383568102694014585990091202158188187365267529631478674050856688818595405138523415514203017085941534496161966062895309870049967428036487514999715339749583766207565664426747067674217242809250609223157226378791694096330313877629694399538650579867063867196814729735800991475256949140044017796749662656280416096389682577409616542807435953179454522847938204841073751122797189609248081577980441608381600452359712357804941276278789379973239407080819127323081603931451662909423211806971157565256448972882479351192436389197442921209472739930506884867637703554837182058162695870138274572560463963048608545459440017202348349746467816083376700124520622998827411044857131112462211689730465020021719298863516175409727071355378455216697824454848486559726140302487015958327443946835336676669577512732527920420317086245755839343375415794978329600495255487538169706448051775082363563151282141623151781032572243749711851422905489158219193691978460699589546507199163084638859774375283171056395382211094075838949912875081136317770514700227883053684596755735649538652520838356476300001090584977479384431648874573339900375914980341737304678225292928835749106358477463515526724267776565841025769019071775526245170725837142653634601949119648178414931446927824711493929526850580599731124820331553161335718021310589061877670548466831553091664609122337111503799289348937044256219616129493864316554990792838052888901182787507051241987079485328906176024740027246815138065139692764433390708873392379294538502137308458614248132025698579485622182725254778122012384215709297906917422249054739859575312357186087162369848337996222164730432257301710690983308688491696304389514861801542334823289410279808104578532521859472347882301525085665054396787602792033183162102211929036842243608920359075515573843636459459018475839626529229670879824327615506968530953875439495787652250153397279309625591921826192908792896720770050951302946280578237409595874928270057328881812560278015866533828370293372055951262228232304488818653232303453922195784043701246600994929714287173046650042269306262247089533682332518581155737111399295611887210048555263492887508993928533568991645665756050432640483301328498701184216226056164325028264476066445272071790842977519658645852877514353858249184870391240309889354927208587312620637930715440036686087168261891465925079013210457769268643574336754738899651479376188383346102776996117647293050251132766856831579840702867433187152311164514437781803879274780084830117404529920022708609467570668391174913956973198308718471192376850054287488016041907985220990914138557868030113253019494186881096136034529288185617497708545542065879894352303822747204322341381941508766933681997883228309274192036330647983625728092436816489842749306335806465948087432668839851862823921108341182386426442360400926609511654707139468274681362313503458343228117347286298482504332378557851100419095553282767626174691420370979644415877276509916257367688082983439851387169133432578676427810452703507574344144159921158951884366934477681059967655200365196327402495613477899426706712092604698024400475665856966465449407340643856584123736229893071774507950726926973200921652583428898689900350191618658424831336949089872268341623691214704358685601035567487615704599032194801752482072155700960085038459979763059123171461252185094490507702791796202416293924967309085174757285195842868710375159809489531016852340604924466612579333261972386232158584846152517998609203200654063171950792428453021596838773797859610111315974478273229664478117537216072211987412371670259066776651018301363124901323254445618181696540916434496059706978009212902263615727148937726960164485774297326362865454224832442674974889946072687479480737792054784862898668499545518562151012342678151011394591423900528285941709712858912305194785396877834998475051891003422402496690923534710753389043002572768235274552217992231571588103225932797465012130543480905260842155840073339656737490498897511162595329663459915960753095354559783571354000810211918038938164485487758845462278800068326596033930510993677367538318721560747557113125743942048002212687885248400633221900875210341039216265954542285460888229162765212608869421608585430223204246469490461080920369281150233534757953610740555207643331432384787622581129482221773518583922639643590445747350973496246707802708865700249452830982606997668941048044803779991238437498413787327197026273526084755904524367307620351544477441474239050621253733743067005331862067556971075213320311915305477941064279351321270078110632291941312888750238117093870696083723996445853975473431638754956049911888195498716885658335895734860096286280010579156764302985883400234749025176614771212884713084826071355521014395285053166999257123068422859067120568309322913376458020268404885934864586973095158075856318995124277713097615653327268039534489650345721087201198806606109182852735884656363855767694360626838658945957207101221944335725716167222469432191762482372501345944474923357646063547430694024862329894702609057242353449476104119466019350717465542265738876714712505257326975790799322899203149207326171125976000289162434790727980464192410487809758304422194315002278158167722285338491621767604890342569556138866425309667091474058744810538009776537846274104307128384396127498011389430071427259523847824585202608094155210980482547512056006394995310444669845659881157779428177615583345060125010018087509539932653389404588031055463886867093677508622715486296304058425174941215985872355438443632311000433804186540054884364011705578521238913773619111473506708012273985761338257948211904838012661169984414629643647349469763825468618783678071882397096374784591840195080715604049744118032326997442008065627499526843166557719611196095471810045152825975549451336499665414185167360461838295407791113976852945302012561520568507885142518295107641919864818954053726178494888881248794715803415302872968494260353602174489904193646408701168909747860138821323902034362712732314938393223306919653477580425612049158688394874682864049158550610695974723367731440932699626891610813791744901734664200770243647355512260325235712354956838442260053039933371990019724180235031435499070925019279421238969665892202300890922411459865281306973139892837056894857622609776652879471657882018870278715367447162000972089905380915427884292485083138586597982809448272793579078182369140273230606362420342596293693088887679261273286590646176098683703072834950264854695468788622988017405932596937362375631144161450770688365548272269590401146063923672593890670091362782328893339727300567833806081731912071837653956570981282873286090848913797862326403379558559534555919139223091234988621759344941107663353424538774143447872304571674987799005661258816513989497233705866982369365049592774812492150620797057498902676337517970535984087602807785092052641451350062058699999526473199167248320279194266066502360368079261764160145805972942530661875647282362956112223994754108019076143248561614575731447789186110266279861919850646047210304435257973722940751959071725833688452677334091543166015337857077417091301658832007033386525369987243974448351401389836422135201238573968930774029055728089717101144455221128001360356450255570918806305631366331437451025659992875210624703105770685272201994871109443970431260970399862820374237533459068842387595086830647274024250782033889118093252438309854633930240758341369459107243916571507881602374563652290112991931030553757482916320256042838512323781306183721503690653681646814887001270298000214181989136280546777326924038539463310831553718366892918624309790848668142621608652547531859123928302812264538210835110083471713267449137207522512594911612818812143262730706263973019542922275557024274964047106700111183343599517095022196859792616859784293293702630895305381307160574486020004059673364750350181596608872447439266109772447539654187756105912407226232686576130692211576046766073071630736148253579024150072966218333956101602085554415861841114810244515403913079694737926355984455683244379611020653837476030488343438809088064736710773775093768003044210487056341815312140047478420784862096204003022481050709611062637659389517873498588006794978138637692927414807075689475054727749271993749354352126079716040576514806986262374403847704375085429630564381663805717303395237326072702268386578409731573785146299346282474610101783271606719696777086220634479858843506904777466800874001981296816802636579609669792825006651180456872045675527811629099030024937756050007662818194355051893291284832162570739397402038601888265919346363845510073680696788939235483018745758557035819736965828188594029640074954960763328908936824840656255111726776047232175868484479155425120946688400740575630810151796436015308103809295859170396905641827489630626901599146896470063272635468902438790967651571971867075283600819744147083477987159117590213366494000210840223581980719282832329556513861075397382054867210717659365242912784855459032061031588772068857138249530008147543423846980219277716833384950772668590061763020981816393979954591835351542847650046626607553863029946340223296096828796530359558005019703091227097675157376135336220741724543855763279115167990297838624449325433004902442651748489837485660188616694711284503560223623543503358473477515917794996881150795638264966711063615245216182396052563728473383628420509081702256802266795917415657167422093001429585367145783932065802553561563859920379263007667497651093867624720751274394520008825055832961494404249223887203349303308469923347660884430552533913906688632344516295604898683442948385407388246586874204981554333513580965735459958989930547818035079486009685666757665925679625723798426111447106630085567017162814930018618902993606106240492223972871184380617723693125642891733134486585794945629683840449968074238420077900189984442115157859964207347794453372279630638728556517285779711409061170838297993884823357005633327441286471865083996481826098344588643606757734683413901922201525126195744400921441179786600148669066574020541296922870195964175971477882566140808397288535264764559964333172849535297572485742490756464345876395942144889093179872503610203988775029662807011161358707530412574616383102095809454049922011678076342962755474391494784032386652243483168050165192125322897960909247715888170736115829141573638757282449494204334022194675499799656556215691718453102521117263174124919230853239845737477810825524855124516765018578166522579621450043965283187754447847963014260159761412458549834566021740485917743270699413207811263537336668137520780281158928860228877748969527470163179174171927341936627368125237137716805324676519277923635918886694587100267288680489183103426834024302562293246281193132144636147130026267615448201090298359326505975417454114231917679141995386898837498839557582722363170301698658583453299543777802616452340560522310222998430887618862855371442620394591891055492210929484269300720739371858313031292346714353435180516179606856330696884626658144408051148430421452462303052645226501743009799295758798664341833751634731686869243210898040444209573846570025480975068182496843616014700135794994831913742330092110271448274516427609330326736576037717689226850309493637665542686871442393893359213187590556660058092503314370399007477930996125060841571946375347847960198482871149796199238889717789133556649770696469556719775309366926537637559404589789602834868245914292615367632694333784997701318000343803333992332889420365579485184859250679023598872167509663148253307158741155150052332332359494813158103417273429723564602838777178696452001247753421686686425555728671076623676645699031151070514995111120455484333426013709207437104153410300103158979541268953470180140174716393265649398242655236924150744553291701217118158178533935497390872137321568011307982231198566963317030311358658213635588242808648921248134847595969609742833751960607752739935448178553756663048549038276169988638847128633576639482795459385119592554703312451627304903754237060696393566964026812678523216225858701852175344054157768399098403028835227776873718671547315939055835288855608234883753686584039538199449260398220193577465105137473260691815193893659256486604946376124074690104157753124884471994712127658668554767965690565079258257989509396940765156239145007006688865183457156192601613714604434432988349056821836232981558492556766373883864040901811372733712492195834809595028560218101693644569400738297261223005859353419650730912937208174187399036565612041399373391715434735075142781033778316463940027824043231554222438141502815688628050288808789299323848035784906563536367889790112394329024555755003910721653216913963806249258520195287931668947672442094023052179976403729982534036162211074606468471768182898708518939881178492902990780851145248001993817396947513852817930789300445782720330261544057454612757679549787925363207044487197702631287765072666957992953090931007942634841377429220981717517664560978487979155197204913505157983157568580978261463475571664233240671839373600262268074882999634903905669497862634326334315598081380869194556042244248323606401653107412397871558204594222278389569515619790436339502123260190422508456517780975350689065572452938100213710667951761739246190671442869930619600559376217117716252865318823046976264871839647410179220677558015379917021655553018220561400845211045155521055615383777765960332633982707558097856390039271248341732173205068443965896058118553985020676428035564395444079063919106322022980114245151958799392300045118424866522721018341925120764052845521612460596754195007674352714331823365095320686108215258422271327268238064965512472669163635906917299554426681048402229260450618740506210642648390086973158083201086396585693102588805571733907823258159019141546584574088257440830184507816098095131304139914576354586786995172116315151760375876267423688205874170203101536581910292319292679786623478312612269137807890706696677291896452106587965791058710938158400600297420946462600264895145004086923489282285725696154094054854917362201375876232226944322586359032248697429187829943570326842355721339897839765985871368618457874793824609305971392966397418951891566644578706643349891983819689687118991013514718681066484954290673185297172942415488381169676260401056930008807793281561303368276947608503277530060868380196195435477337107215526711901609316966687583714557164723678395555892613071940383850319198025518976025171889810336735927890986956639260592852065943792564812191307653188648693938878190947114983119229718817355535021310582691554178337746920431034683757186494846733434117022741313419421963834172727312200167719024597243298440846363760566388448731481740808776756354808050901184891889545721685945853660116035451823325619338249957907051890625903161094406041068611008999756533813152374810636321041150695342403573084353873768535949710406561922354861900627300537060717742586256872256605283372918651298645807734657292478346882749767383063229425919623587275915158180506068789416645537790063589241969488997869908465119952279651967006249812478500585361935166194643246616569034967027728630725839741117809428160847847301330537678936204036603870763670590669022173884890909281814454978588872545800388404243666409778435145714698601437958631740530026061473848131559663770511671871315807603973701511082790422272510950785476337265345958079586160083281946102062374846951569516781234829142680883365408976204124341497994381880778808211950001380130337359946073421152774135206807907530909614631857701061247459340733703150658360197597680483290129902524017625859536712994713866170023335063757076617658884796255804358452438565718042308758073825667352229366931188729884162399986531358740636568597946510325345031053818677875563125096717462445120581916436112823980121590575226465255257766922442247861589134662363280770769505062724607319442988236953176570997307821778740363665480424185821012385512290654672662106203625982779309641086393070235435801079353939567952039259089783832645102285908780336140144780580029358868641618342259503296211456953274738915521763097786436572440954447671761917148731286406899532365326042399052657189777086257805233138539710305144487341311548454447444244867807355565493540843547516514799953368698974861264993093684712946207716393862814415911554750471208594513999394142434533198578976944777427129800269399962744089686946126072775816287495710495686759662234360691940196474785739004681685985455619664972247412771754433276517652977667431963921750981035771489914593613668030121325698289808258739723663568597641789651811554759498476494807085607017693454239231921157923107906846906816333555870105772920214240600310734936316172730220263344526485736999034467094206569396067924041146253111037826715133124378447159856280535336157456989008428718371948744774287010878760884119058874938976892657624723257915320915727368702771842522956103599404447347734456867663347915373214302693908255143488812449956845715009308808915825403416888376230888174927406447687610700312805480230623227231426937500768065704374424612779262874642500956764597717438299884693365576347893075422605423173300554042790656964437977921981614947387967890498717647864575034942424140175620975479384974001208062020487738988300730970870641417855790570182472774766359806611798056481141206654899477959302873208487949373637498893623470106660768896125606551372277627266547656833663149075961728120956512530627036480011144922319191550209431991783803759274232961623992787745446523959586355056634076591795698897084217744481855108871623625442160991780043523300158388274583857886855615934829830418348448189489576063183690696389769987222126021658627194385088841411803489446679689243221450718311949256708086460244674274304662614453652306477082965978387730677434729543011669878783666495644652436430397252917012503448154814457023766956715055711927647481360383861252367352443255376976389003774966063133210788688836257968734362088351525594415148834991765500273671232931044193134106402302741729590215297090706327699508360781176188506116603797534060956300325277998559418012154803678986967757039631066857090119655042486032380578357921510562559266484505609693942024610105767836429847230183610469947238294051614681122818428689053587653674075761026926168741577199353742703414034522068473412794590190678299277254185343036204672220119556564055863313228592665663400087121918511069365812794887131703784554809370987727018064518095639977116802331156000059512561611790220476120141189222152648728812609369377471857901582163111075220928511320386919817812905003519639581414596965234922562797367608732032099081456860130403773051875650466936343362525586564434903851759838963624041193645506224080480887459791969646443284302965444813368265613128762810937166655942006654888352222032455181118069807749195252941388375199352739315357901948185386874169277540022379836174042045204744641058687349777688380413319572837297660643754452443988727446929631388912660896815108303928606348915188159987607718996001576640429171381004802212128964432891975649822548255126398950382336984872921805702229384396301072976190520815277577928754440559351249287832696328783550710304529576224257280661188608999089533221481159889258522711025741716120364343424461621200813120818073585960206165855185335420967542806101747668145696996768553548885702991695169633043358806084894811469409740824625868736660201215091761243121066015390684979463613374287349718860072888532044554076875389138727282998911523124501913060049831189226121020743429412513414996589481967267331622784094148088518052108037790318631612744167709241809604391352188006218896917340154447590167898827218930747006357217433175194831004880174196176940964128560685176112089200734718141405204996747026198832369523266405788262491447676299043303827698406884679305804448378553209694519010692562302937168759412796425412481639753684096195916130763043137238815747650551457251599687868885416923967046236294276321797707181932662329134447859550370895999113272013448624039206610994758834086699615618185078405137119707192734689555420343897883053195798993767255777441292995891726004806233370944730763028699125640485781694719610801557892543586596450865057515050343879474451844023962419619828293754778014849893291063283087480006242867390607183205246268741390804609555149604615458080252262180541378499259606587642352255281288261734367945814946337868676711088025409605281835849692139085834660037718398258621333747083618428321923657797545663033747087072674597008929580197890346486575264878013798768136702842902523072320257968211639262823683023173813891825279326482254490392956261090751246162903707552570550567500888972485126987770685599880069161755969168391394476528821880449370889721217971496197941080023734594155519411988508458261558924438580854043617689042607212589182091266674624050333412444343608573369049021450192528350691349810360449820215637070040172365362966056682874870534735683455942742342304702266795747084162276956158394648717529866773724393879208741647194935262240760244318330511484127665312157305545819475656426088295448697059386748878543451841796063933138156353642907139401814070100938080858224040600671862465379077463406623850260803546465272711467190462007207193217072662476011406501939289840607591390083327813234358691158865189956151882719860453864102725287412105152021560093351503439669297633654825937379967564252038776317639010521681328946286113796295550710949357228359262108081578165592982305761845923121686166053352273399069726321235724548140429020909355747479999309145917878871624707073491526870089245754900708488979887605157087783206050542900052825487242477376417555153208809233410764274825841246632803768971674906746423136004896395815235472752564661736700936290767238448442114085002126701668670280029425835570651284254932979912767004198780511028280840701582170257586043967535467848496811442510426494651894212182922831377649367392813592438351738733197347838762197907179811482704641474692027982337303109063917119542116265965907520371548220744487832375555077006578721009203426629540269152000065859339728936806257466809452357390384311640751985202853245696804365710967205463585117856429450698690494626541488536438206980676554478364955170767851216163089951114613111509812329156140325662779399096596010403815359227232403497533795302031995438145078679107333315390411810704671530989982953852393321508376774052862518520364182253125054030445636597759412321104240009247455832575806590079236650315750812586475073818894247630388673999141165978354505642744330099038248670185519390883081269875919925362202010877101239556031360328090956110622390660187514296567387663727298196717866604875063997645492766040476638697464451142406503956163542133327926473232062929144174345387630017903594334620891331930542159305016259574760762800178996127819435723594131986113881083538278333061691783282260542363829306611049171720611096214200752843622981015139586895320120046064876881444006859928109030557097013572812393132438937373257666074875769389733844914563488538453530769507241887992552132865670908530753979083954465994338143725365139923785415863826392512909604806582836152604449355272278107321451400358035959258779693163897774819040404805502281830873653448056726683670355178090046453297858932711723317386966540907724341727835241041011665834065236769990389249299880594156943393629745557080112138996789693954681580047994840402179950505224833593635909103818259391737084197879786474588721934812656369569425077219054062877107206070238459597877483848376168103677823090560591775137038061506372910194123225461648978969368091797033133477403554252668381446299461755246197005337679528022009533411975892719529950841103975071155912458307145434841576144594241622687814432947006029981005971206172447905520504171004782551141023698902750165284020164022814041938050194516655053842721553338502278609030945604882127882386865256408946621276248201623292051647608892715191085679160541400837696845122388512113049775604913235187741083598146269115433349620496679001796239797293850713671744960626026398031089578403403150006163693813930615282154760955906000565151980473572593706145977254045215442509004427421649659079434037597196875556081755512046796602197105506556507739705697588102344588638702976952178186068644009556813341774205402273346872539772676153304831044079125238563839171316589284425447566047004085288430090925676903772080067055830569496931770278429050804138463495402008246907171988565533038754831390154755496642855011455914882846971022480150420309429070050199234751241645619467457467154366157527068081846542636729567866635772472860209671027321338175531893034560041218632921815753989065780542485997078775954394157994243367821200979830745363514111429297036207265731043382895594816313514585156790485309427329754942343523314263453127210382876078455500789678393795995328568684155885197997629892370174632699931259923108452829486739741341754766267035162206300960632224667483929752592356417221943816906040204118321164226428516928689990643408951686795209944905858569349620509289572563081796202906859696357752363010196199840954410167266747839138437796359571447990721446045989617183015611433439407061413695614948986773189096101448821623353901921037257868809764701138600742303560047800168590041686546591060599881353485655574138096856450005230896434339605015493867221331624733680998501689471505206478142979451402563553599050578629832388100950941111455798168260483628160347830183919937911944325758880603435555123411395197653749370309315341268010338992930045020213184278895194264544183096207721514997258909121996612894326133573606990238933223739914693822243931753220592904548815863646643183970378753781126510503991691315738176162591455507242347943682943856421330614574708772486263245528344322077821260646126049784486701527658361943144036197626792725629761499053024905176204367496386582880462675888864766477505672309313037648874166580791717765625956697499407844957083442943550255100585897528058468240319238013069042992312954820242870889888727499403107284243682934132343695019872016808406232905078271321215779617311460117660297201367267716837152312539503972681723002839099772895158076565671636662396562661205849964530200857292186996755259450699178667679307846348025288529147059149149395437507831054687634665574092716822872441754725300318854028142394674254735633081086443245566861631899996074015736228470906779985518292035391171832532830588401908582553645618033510470176323219444308920028656171436858844329917627429367439196309378645900218629691752956124458959659206488939039735569894781162405837050847618405411381037266392089045413625320144137903133955334489217191389574442550312979556573042370259138123060100201097074012748481098640490813228648569229621267559581924759204582347892986701604725082815087951090821542390876447743831322551886784702118320400615949237047117192262790462943867363610011343917692670389801096156396164348496050807997346439987148538957083289242092727961741954944292363513581859717008236763567448732002577280351860471063999216395534938239777863104355948708059956612650809656158867885777477711841313284068327087496429653594818126109815975145863422401454517521579498783698179905815065949070709585279369261019043632371352990057152425352483554783138771541614668635402311565906366677475609800107048235433921491712930811470635322441167970085080873256136791479040873179015169897980041791816084288799923639650609903963488794636882082968189869071745314720131460743591947121307257548171892487841999369758806990399682208875933690988021891365814857689836726034683403766745712815501822054015568414553225084896320766971940242140507443735381049637386375753660455719460870615954131852245030571529354747351551595867870552976568412679368496254079507785217912488521983737101662976008266670621226128064944267737192036766328780849653108906679868277754451447971967244227774898279684221062276186596851954828237172559540336231076567579674277987695034896305925324138718677569433905253113210883361603872553171325855038916337204901233366613572292385386230332044425354001581363961562257779795644681729751491524308856330525638883680366724463114901922282584525705617731890471378457958353741215048033831681064676443961447282620344483075373813818341389424494908893990491036388337777549794046739531819720636106997372376019948081764212089101025680303673645495649903543160096623959067664424051446335176851490602055008603492599491880347131091042871722728177044923543712943891490826807075572268510625912396552387726755192049308201884941039285626097898069688177314849644715310733542622375496394995670819313835874337250842242207905155282540388039136486470947229371661028289962882216684170262374510114052542523915779860834574175407205362233241150592925416398738980002440523925540393105915921027398257359224066902686524918445759299375314561540020383276958789388393788277378266769069714647878785631291332046392525400150517095199284542150841352064501842952983813090451328247117341221192357403966673718953661520340334443637180519513924441089119505530719879837683301020985761002094787477078537259659648457405147152236153237948900520336619438103964310154776151204474680304031030935520575963270829240000610864130028943216157650850132155638618204644183317348274491151412167768655863464372394969197367971040658477992002567761669938262989417652726317151799282371117018168131412965883116502013216538167268002813011195960820443157594238842336838274299931604619242549969058773071055803749135309068582116465940184675816011760168295944952410856847487850400098085117115982142176068428119040389548602713879234307848996130274605549441075454330148372030864801546924744346392708477666442304346332123032375596742757628468997152449257570528858113045591041991315072562818699179368688088065547774301980079676804710991118409667660608607108190027209753261376557594454818007948069421769929883787956120458452108534468037161234301505315770539958666237215202018405341621579127718389683095651715977536467547512686453184958784235344861099248979556218813844574360440656270081326872397887782266023281969660104516067059877852510416404672815694145351732996743963301677916461131026716603902196810277648827410160334778056802717312121528840410632932829958921669397789498977876074104849080112864280737890004193030322481138858368853552511446513103610089085223798222389748033177170174123818631263544069621373026180950519858790595082712477703076636186095908445541579592284652410127093163056834048847608368528782964880164597062877259618503431345304692291876293760239526926862648911199397884539808079219815608602118422960910835703895657175136120129731853289135296276141315185198216631900033103172738672049219929384761837421733646370313097833503460859079685037937417734318951023137402085636578363821338751586426494301183228907186291103177413918436702331998783701311608188814601378169908734159826193483669084199285986998583576467485529235368286953539594701223518048597228756029155027044546531425461686193735121395786731427264740777518726489391039394271018470720965177288463898553082885517796644343904407567675957165036299703321074127842415413087308719757169984356687816364871252496938388258192653847388279934493890528874633163283792139032319710878663651698443709623248120544783939288745446502606431167210694813030344104085431660646512966025483647456498831305250111038746853272323387594042861740928513935368912823689550721134388323632884153023494289919594228497856579707021027221171919266497850333408789417498443755482977250513275234917302527509313898183318213653086477295957719268442688511624422849291373675277825633788506050044081306779914685629990232796498643293532968078495597698905218270922669395645148955244799494346055481974386403826425578501797104080906315139739363889167249028940658585408243427805028030458677234931365948935952107956220520995868008457595538776221281618466932215983988457912307484932844795164050468637281229488651606768327848390942075275126518205170936627089315112239732053802686823391878134851633228266498505661008724033064635073649925115139303621708552795422787124296276893210271687474365009621415878399570094490485947145262160409226166356384866922581075192995159640107734639218030504104026600562182302436908181886743560839650671769896657362529876759638484426218226327849765561710649346339621559995761312171753183580379709810047070933390418931034909371410687126889784918261670566018979283292300375971754452382162468460650298906393674587309698840285226106258125532995173979628475195443255955683489798449889051692802275092566267304660314496463058393802086831729537679368496411845251545428168897074381025901181550902278297416966079975034485790496960458386799900675799656737571070481818428847786498126737677974212325202299104602369813387674905607624731764010428634196447323252365174572941954292128159178817233412115314935302321905999614742522481558266261475193471245195475678038050769808162782789942341189655478812782363482571123971303484398516479581629019888118944430395857592602193660837106724789313182212169488380336567093220091578874459285647818710933197200738433431510893234586400625366453315433083261810671051703136746917197960755847808744721021317661973276129203158501906836367351901480772304017344838796854866273360101546935318656223473224116472054458273977792673813920798171936493336779688132213840662742259906840751360913595526276218562040517908545683454279354800197955706744421104074085358558398351029962282526835970005974638046945260631033481188644008892342150549866256835302467613626943231683085946771813851040511450365829229557008871834014603092678766139805068804394477882732614678119666273004032020378092349514766297472407751836133800866376554994378089256611153958005517911410198345811602250620956357359780261407571642615088747407378144610079296549567686185647589771183023646862195787834279663553409891298023298410647696080260992605661477726986970545131693323250765271888124219044012226695184681709479413400375336190500760428699911406719309823405884987979816341138517456221191184633453276639041089521859244167529426264646500469050478539182274355875508229050007617736433173937451778821575618388719245677556772586298899307931797829969753547428726393510640576417516091179290574232645091487164669325754416970850296305395680581013521174853967529919458486432717506434642023843320266562797245555464552255200925499524438718390879186324433372010698033055799613516617701963293279088157088956652391163600229110444202149072716338766400764607262432161341585313316417015736811760339468271337540470321995026487738394190432723597219694067449893599810259340073106016291925872427291599194469074465760502904118739011023548473689520288408860958405447407171636503383675351796563979223149658671960043302583606090422299179423870570078017953618414484902783298213595277296424628007488703090219107770247875923156115357230292463383171791071080618550171520003949705818115485929428424731381791700741074597855199475824951011954942727386929483827123485737462457138584266981823289939199786695211090487210236777514665968733729732196000978328322232938768722781282950296833371910859747777681865563539980847126734717473842097285810412283200900344987595388292957137694828883146071728118405433962781229660267517242337033924638246977186766303490051254444379629474915738424674060127016602456685528268166501929517510764932485384724648546887842779619425989663156436482767582254772801491573045401034933540946306268013311846666041247679022637910733829525050975260238942183321624172529373484337542419979316315950113335809449394979909653049778845053096100119729348389876486202160003532776985673226437842660346855358503183797021145654904521768291055226881649070392562617683752770547757365069605686795194827175622831917069963777191231397044786450451895864583951792714258243196638557945698613416759209185512327881064827634761863570895863030786006399505085990560790457179410873979608139248483578231313928219082383985741869018136239979602216170541531815308103890836290448190388571309531931308998158291494696556485422103047542312196829460875807116046230967322101995112100755744829588314030594529933275349596146650327354795182794871536140564828621981039564309618410501033422892119971442643936221861301668535585899509047586241061325443401089393159222765219942266997851743993387144109722755056073235128421710556717353603373375266524309964956331740615869723620559024465702508752395102116108130389855194740765888039747787701731669414681178228411593115212336636237320230226611828290720490514000559915533815773979414433759667638964418484077199218719452893604513379945343833882201509050615891868919672511293986438427962119938039330531730952095568480142003710271400446622224591465253500204180500371674671739119721281907604266784824025887178717709663770193399514196255617366870196052338180453210149172055844889673286506802180057467906934975657707061606183827771855822349024054760654395753893479090698899939977714154121521977648076417245891922740969445275906022242979441477528775143124785738405638918610659867417151746090130688125692435900702420498106204017015861242898625476774764661623604803192831199473623270384953806094602150612221448361741007353580374521589369162214849311920608031602004092552471012165968236227158222267645800507081606879391139843512256596342085952763871786071720060703328206251210969456004316336469669367803080507770949453494271852509744578708752680140464911471695857095245783250993747499243636955841309712709539353831919538032640655499801026015592080797118157466126900291608272292897123392474523057941434859982870096663819467604811636185210678853903538155776480041446514775026706763833090726360522718915562795147969192735220577665028150539154695604566369294954895550505890429833614960090567340655157093000939325483719657980702003422287467439360146144879485758603097721486503248720445212124844302800449240053078768882626594099723304013570069921180010718961515799134491712243508983962355263756725967169335855799522558212673868925183183608392140808553943248599013060972679895759564103641585386997660419991798788921737296687319030627236113191880441141623085544830682462196768894045542540161005912500253517770366632078251564635217650674697121121100626554499168215582892263805355622962965904513830598331734548391345579449208741726879662172008559708575380862467126221940868266318139760799452683309763015940127195877132548234326758648775265311361454391395075330727732096592081269654289426119824871275194123216708016402706975939957273670805168853566084378121527282070015020473640736723497864342558387930181193416342839361316400006654358937908053734152314100633956130019643149573967721220527444865635065696488840572662039313679623472018809393710291907826617112149440141164959532127502280920738357626564868765613571935168700386749553556714115033107652262265869180308581031721951207784206537949226977532944954702330585309412118050954903146718591622818325577126965766022057484158810928349080379026884268240651778689918882913615499781913288547414756987670691610620716811881340915776519712035832722933372722412445322148631718412249205814723458981360822902380281337633808361441010536734906422864982819803050801428305535150401794244940129404890314258114340457481053155970640714357513508039937864732274347506356539836096439361621328201739451462606916001043918964746542684261550121706361087888397449790417447707649622382114791610101480120380452892080183552732452750394424097955092809658286207602862688025399094917414595409249696507249979187596705103380630310118958000128539299705044091390852649293338679171210815143730271268198341683858181018774250230696467620506817676389030361549747626418849403621972011220182848687456953728960722719813586025919023071752615109341816943953114897744712761284036996172589167467847779865870286737164062537805249701527247722912128004482731662337218439071935368365163835148488422650397573998921003398879881584986729521315031665774931202682573187153353980144907991027785510658221701493257490180647591483458233812664385019523108871844015789866986966762041651453480710904905350343114310606104910473631989402761630175430734537678079916442316557997605497267165204270715768668280033646116884447157881148894467067025844649677357486616810644614924879738205661510579015960102458589706653485868687068051951106170839785963871488513758391415098983091964964630108659186946306342478363586529146032721977283038381987491975797938006384383776095737768453252473018024875017284768406517530419695418401162117139290101982772065935696362242411227132330180909116723734970393766046570759260111721318912221151477958374999150569604605674329795270755359038873448286848141994421358258278493033519672243601757263693211395591013861362055769444853445382780754739003742431047901813017805761247678360028428609592457189739405395057906969087667238440146041850311616063532853425938010829064659740710193714499964712046606182733717898307400912062219822248765378653720446050909965964082471551940711426311998084487920840087416789050887613530226552748378025645000578585838450736331721344693267145424665012878547773636303426814256099041833018189584647960581817379294500829276198413984420389868569422988009068071478088061923354294948758946207184341030551576136793681823256266488141635968821981497370686959032952282076821556465418759932258895445430575307056319459686132201892494574892448270681560332876393196857383516476577951359918168817407961829718332030818082522593152281499995387561548702984919935704459904114161818132215685208989765131884689090100264604794097452362732077050086977388424725352781817979408435983844862405504656180721049424786462479307763448084382434294692611612378499534249892598132987929185506450613219314183240203110383502679949709292416011814522640164157349818249572391814605232875374119831177557947175930387614800869286005096002636438454997016785782142553113323507119526409603482029864163870926313369782950821445644333187942858091377694845940252638284121686848825499730831718996000067053308395301300366474557192500714078649458043583836908538740232841492922776489212303388061644411749672912061394372444631605704148893211259439015489840490479178739148489257993888682227472622396848942277047523980556903462736767580170838942651318912166613786550188458152600331001330588063618108832885687024150718711190817315066352701211638684019610423096045924970301816886673829416196786929094592314471817141785359979912489259968501447662980187459181344203805481172511060778363284977873916172431391421825609934938806827607231273148391910830650677498983601452326501996557336297211540724315738951739953053641250792185275337111709062489553028790665448229241934424438916163910392332208467613267334317109403036226656252406652269739583847790309241843601797078149847116457467201301873864262501699294751813239043402554749049460735505432945712195182289281085255432360042539859695071331724287196611544543818311316100238402881313824090101182481816748397346411863320975179866982352983532847126286942311996173054162055759965298680597841287867395772864858039280321382633280965736056032707510910660123601257391717033473720899402083925707521569927325847073415816980185356578160110313610591056443919646180275755586764888692444454779878731414914329567294506804298830588882803150237805407987688962626127115316015663611409579713360961690141976961883973759176485967013292696034808517513291317255605286544364590503962566835358500258068071283715262594258503109620471016413927895627156887416057412910744626839980474527389224764428424274135807762909034594166644309958014749187282622983041641204310686757351322337295847958705935144205126223337611867728892990475995605967645657298856382214623510949023778925460069400683398976799544169410424837391280876727780664797475679795520463205538509120383668419123226057559287909858367431640300909523116507419266565341442048582085670543713823875134739189967662124799266704090536923304365212791708268536074114532182657016596296420658209664123500896385934363172185091576629763729723011008672504010124558404993489926822583458729656973938558007091944027827154765199944751977680938755974420670307069039807860306361319906815316583213284547795393628572569137365321560304960611111743438282211105562606686755012906031209237758662762424197983076018184346533290909814778871421294289370817385178807103558595513089805415650846496921017366367889612650078137335588983543146107635355973719282571673327870575188375461945636049748994960150474334085803674482634309650782254718680975430564004244371978471191808486722728759928562965458738854591457984813885434003796658358360505361759669269649806221942930132705822017254480364316635946377552820701100965669427728100396477835152509646952301063750969424753688880378132960021790665248501682157174329905983332319824920597456941810548739602400456266152630939139336752000254634965435316016594949029937963576190702164679379619493955612938614111875621916414153703630305389684072469711513651114454015810439919169035319745845001370276058523290233207403466508376214868858994551012748256493297241648729873148229752437400273307016635385677918035110493009079969893995467578175520271609080669354439206365873860174495966499964721122891299152412773085623472329474320485087819270347803888403507165108264050291079493007735551695769350217497778410052782398384925119632254791362448322287373242018149860019665755345090861269239735138597802600721277263296063474730317517022624773510842047322412371093939238700719158632175035735913492000772399479166988043057158334099360686795507239609207252498296354515126030599514749698243272955161957196746513619238053031038699562512472279935427966558038702823626861227539832668217468551900137502108288344524183762264229543004925996459955662071959128620652512470920281611731709720890015203118504477862360147202805456268204636019743774847521539074588093560502897760887510434376753775451887133301761288753107592222263590288321744436975881805542593512174514183070023611993923978330857446933005226611604236168165609428477032706035740138385303904321092111062757276679646965310938611273751264496579902075149806867283745361652483356063975752156895662029643952880212346224702293312597259521158521262640633528217696880760143383630576620244209286420476660878660096064420469368852127977484778507397893803419388643995753967986196849965056081189390298848920792075601154254775287952871194459817463034997742442699416527473147427443426663907432650107888627202811282280151567562531319619405340208076853006987627113772223279064430369165638071229797409955330165149811111262248784026361402255478007452443235300888896716310560257107395267661676977195447603313128365355165345490893771545615112637343103158654798737882371949050781438820587649104339243500718237868221921684050460411897842776562113769814070832417755189628116092721772244715696343764181072573396259583756057232469732064139217297342683497265113607660797777573293852752887800258420498014861310287297607560991260459034594704562235594097337995857856519287385034973781578464411279545415474023844447964088388433506098459305253253822867748809507843729411808912587933802286496182956980093715482048131340890154851044778450826655911464927924565877002461778336752208031754637364230380732286401208455117918951019329628355841400354276955777472325767747020417266063882483093347410746892131915058502721178415248356574690024877159886972088804084617027975205061464613147815611347103937270063527287665618010322509999771600918491008546514201094660010031349848309369133353856382367468863641339709807165389038310364699322735991871287290808820379800564579642497197002715116598650376701916107948798090109979515493522429182155179610291234758265672062497519175067424311908996549519293570954543282283074803661288178432180744314951118055261243498100851969961273684744086534160692360251235439804218911953830302149561142770086969037840025283378691887199094995721398610112768747908149029283708837184197602045213493384173126122283729858870038719979475008072453641120352773915636543609191970888171418384574714196184927925457788143859357679014675134834189411463199416586685544621061668168117299964273036214603628256340172151849131926840172349487401772418274643667629051073093658825407945113588734177336811517799321788544881175854977760129358500635391468312237389459645105757341837397798172843253985691187604113337937555925364081647265010048919672815105278928687263672852331534689324881382421371857238924739231532429632526865027202896870751380328795878587294012078698583082468387465218490478936912731463568418392197631865931087475046630980981778126582629979034909342917338898921542806402715611316589539593155341882852851420197367007941591679204641149195002634871458257767058457519008174228030640367376369838046520679271175913041415537348224978865015264880978268173059471623543119581339666605343198328407472111030069325787316114777396783753406028339753679711186425850508551053522294624787227494816701671604544880784145653061392533094112431385924381100557885582233195508477625463233284819684140727686799900619855057303304263560813295979710634099987084946901816526325093641822269755873649066104552879224334027106436342232267432584478011631985687151226178397185069764300639691893393407408405640474806637628224268621946626752039195491596847102063682136799625538285309486147825861844540848695925760744975911679152036088378351582986116347315507050817587875859112494632242641728642751137532906712948830358655321391148261995052034141050059415158417434598454073546451330414272182236181697219892641285934468143792139619073499392384426327538672876414882897365422056236437495904823998640728868404297910173698625488181532268240049235576227575539055499706606032667586500377376285747760970858924360371898287666751542659292985911940011107991032279686169865602058227042326881516034954399072383471712733890179568210387318091241524139035159379525901283114545412045460379124710511368197491844609008819893864030444626808624605165352956417563521825481551876182355263262697699809164495705130813392905607420870648697423881932924481271951999232649185755289719580397563372956886745231827503423979955378259215987500943295555027649029657829965629266662705761317023884850562662214755463431173315491743240260041098839644766410976491861066042448000281119438175157302471873110799656783891851484648511702506612304596370675100612531670532038988075553122409397699794524132913680754565650669932331378572254411252764096641475057984389717671266146086366330546919373310119237122758281381884873310987376323995600502895444581758642774205862926300505230218744281110224284913140839703660636115553215489547682256028548653487298523825187500299645900831020265627601500882038888285463398039555300471322889115617973837350910597420062596226972206661834154684110206320078190005055676483803960504093930478772477032720753548647930638477640525359678966465649025331301339478554336420204658787731705271161177429882281034155983070070615066111231817821576818036210592437049601727028898396413333258741255986758776444569628533509523899097061025966325534821559359410082664541542182967328565389675110443043132616749739492742154963728714370521070509234067411224908133169173919618448880644853101186388306721892401559099329063813470641300005558253289602340918941888362150254480768903319161872769561406156140624282946096211460351086731036065980035122631255293954814141915721289972213765829372964787377685938024599369994259431619476751850352519834781388831812115983336497829118787861345742526345299452779022171663640775198944697579732838736660451240636182837567881717421921405907570410253149631307658523125392857267835404961631525903597589270677840195887114908996826396602873211314624057210250988194212967962729920694180579727411121259312858762709169851059088236721352585143327169661865723591986561505897150621568249059565851723878144786463798634683000228186299385093312976983044470696200612737947623828973288419854378281136009823246973716772735290389468510052391606195239175738602775268879668241066106830058890757045525102559110829324794534249836844438527314349056792519181890423931033820429602387965853104516970396726335998917861954401843336132107614660596237394779261084525945193989595866073533468931727687430831181276133481939147585604568404417594238686962715480942016611966269503001861568797594397894905296261025646708467639715422700523297207482879251882887433221298614768577206982816308875399210593643898192649530615677611566715389499243394109852273408304646089149587663078329549792673975988515693320424866106007850995165038702368117993316958639644726398772957419737218679775843685819711111141800097763749188137016774915975851541073297197820220263191105103293774925794245763041184075265132629720673681403499364875856180966004798089451115436421541671255030012437248800532934452715580839100286227461104194006603098263235210233144705979348837728386617784345408801015830356260536873041674083648705652467224696797541529248237221399262769486494547184277200641395119366988428571058644584411402786143730431230794536853010665500236417393635589015126739370564733592181382473826130855291482848897851298777905348866455217170683799158694016778788391153756349624172666448090091549202280745431842314006929017063848678073606796981072198437557115435986981036826862144080254134291225380816049514602884915130466185294122120494455142496973196170341242196573671251477586059457452382616974914397501051802042311539182102496805828588657774550474465408424094181105404052452762026924094295428778571163608152281131485299154332246011989340630306320002396502972754334228257853574874813065936601800147848207548119578111565802330331611601312926898146353412849267724007761866445855374802731518230547012576951055284997563965450392817813562611112407279379116198186890321099744800461826392373880515573927368112361204429941332124501429988579102183132729110945442668065824210692450835863783554511687467531958947616104982740121427245055474284596871498743159324329540240880993077203157195234565872233315130673016517154271945300895697356962739508700576435521216596882558449102032613097036420366059675751835316475122381814758422631053719933746700133419268464482511172345190921034069750274170968347492191983207301522696950414947727782967581968239258426731727663783200029822399441426671957764520363209744885648686790916015216688278446695465562729661286140907789651239020457308414782185640359898297277354927694012326801258487749118172953596216070267160094306732834078846828152376185672178417165811189409702753452566778888180767385869712917858036073931547936178151038929166534592915425212726146364649940156560673148532033081464553055067032983600505061436265876429510244507490427040087031268012311149492985959848926605255179696443759871503095842307080666098427858772011218867575038348814878413587331080535017817164429426474705534440983941752871032662068582787740246041703436677835235673653001217255531270946906212365925794771582018262061122262265420852683497985344278092120700024111278616096088312113817495705673476667117120711803476839039942058086960503312781637037439946320853807826884520928468990112928627126894132837146461394376244692880891890173987622039918767537819679929021038294102343892766806922876814106942435109112157804750719010956255112713967914527441323583174449951936187631446641179155792938776164474407186261173850530948421206326361406740529057735496812649946811022345318927355134299176688972522328591785160859180957744879326601769050197610412616460754562194471918081502691282583625948796064916670470510446422388570743813774733120939269554341822371218173109618922937063781449684525084400959261720880982814700912366192885107666534999043322349425986663850763233192002371577239272288996014726733877471536422444909987919146100758477533655413949931120765260139218510620453457990921133093932408524029067569812057442872663865352679628334701082762398813918303858787533493814393466985829702168502041426138274975227283905920933131029134780779388411217521398940700221311615649746807687860809443639987545241915508815762623151080698179965289126315714510552019063225610726066294499203508886617471249177506987509949798549296735744375159208947494790749705492707288406380397456954734692908712639058925121044236306807253471280335485581310830432264591985169268133876319766639087103405493794158590702124563080507121444848401271085075342505441521101128616031874408079243347992431908831434852991121964356874902471435243017188579727374943924618074374815478903238260940644217382237471133716780723210916603602766374856071964427780760538702632932328032315821036972780076246317333244316946809330048118735288261521679381631565330124065608120405893865750855889376377851155387355220356762064911509503283701711200161892188883935403244813741414810255673010733073930249267486838043818069194489577959163914973352268522017669748841483348331921544124752270061391374521685908136730618538527730727448399031553919348181072732186662314887329318969922189072387722124827697822920840346094600595380705289725298962951397506198625869155783787462497827911865510894570237932408610561692802530873986294798608931044895229685060017581690334007130034267253252804623776382588357192568844670628477383957679629260051437437023867771100883168340136328550426403077700604203398582670378396841794568711421593098438787965988329652276785444679969345788115038295824948069420234389100896007459427056661133082937023344196801147257111495035509759123847393614573964681046760617065709098851275392757176565630567211049884210103015309646196786068404377188016909624857918726217234768696921053453234574566114996832196501895552289635000495963699271771512602605084865946028996339155987866693486745790044449942916575783630058552437486410837910969793392948361347021267920936391447734974924700046509895057080680627856309682362872988465140093585648559923888983378976867731471255918495287009104078052327361104467620311188009147067278579554165764526842129298608163504728953527297605107977146384414322079568989617185361017769232898186260312104650934615221321007113054189804101239059737350129871177207125290654891109258415267418936660353599598957557158291920350088092569621040113605123770956183284354519073232662290994154657953630484608440276959607775414758635229327645161862099418366317558491351822593692700328275308636790224149609934429823918059838767748412096657177268839806868710025947018926282299011646751039757638058357351847651692343616754203983920212973824440512437467918858455650772061451866295020145820462752455102143768963016171036769424893762592198883275355857597802822995051895643922249660879593929467835207907381475464894751086432498327095035324430110954716936292145975432416624525658737307680376763625772971399846883072558151450517226402045219978887924511824193744432551274080908646917591035585611804007049004602835101794818302935466689251277725963658374483876790684622926323445674476820120011265581791621972887265554357863492311644270177339107014399180592477548717189650561721398051588961793851973340528524390321633675767421502936255594616394389385538703561426019204609693388773295536504578295048563900444814313318882700215041254799335502248530915592077869745057054181685436423635246418502972198040922511311832171483638464063166650630508745310771467290424202878478096265645592347008145089861908333854259816582621887067061995941322073882985877242672602983580881389675155383375720309209205902676549519952516181049591753914647706335886011811776194837101055449946075498635800464224492308199929026085002285776383989278414569484863959944885342618365473785065435733750694576682061890069401025315296509804496115054257302960567501351930680624110954414913237548042989320107567451152816854879471117928972008292361675215891276042651307164890070046918757158299124145324623470009557617058262100790282823864522797484842385147351330972748390725876899554190689690795844716922607228777718162909155736743774842359222901812112386088030455494955579995433384535741310739153240209197642674597357566037916064265858676327332619233745563807592479900198406001688154226287123495817682632864674382128966647742296138463457401054110841539687150446707754964236648575925133666047326535780234282207370776595050979005937464440864956413203022120454091770339533308535840242419231567740237092204105998436177016233334293074064254702109796847258322722716601447280133708957284525910326723827694112609394640938763152022025706474007075919349440211324112757866467036491854910042676898578830738436754662046985522955973722654420886613311579857114960872749854046861875007926493185621222916890580789752314744478374222947098623885606364048997060491663490904702838908272502482513510145104056348879320267956239586091924905837540832623775528842653418757234941322403787891926349597840617301655579813954762256844386167324748371838239553065917170021177090105839683404115999131428737285680922878456190327121110958333668942335824065822790027382913461747388941501723650233236468754443921890210295581798669112081115833527718856134214818993437481612206883660046105594067621034897415365245448309797569741342862299576342295454205093112461898926325671217554467949377024308936317481525235988305195474302421743644040591217436464468090202598730859254896571218537646290679605226858152474918502979674851415088455665591457236132843882617026120647834670743335084898398215535949991368503950577153077545233127130849251995724051845908939548375681071092023570516839952704364075448480721696910244377555718769685940802750917863506042048332356431301134981219479580072327589555171951563701237627471867566256906038385856906530053319162095301798591518546688319082443148664501935972558578685982078736552540037081119840699094377699380723113247688637419332406023813678306942660005640252831194666890961050983212955251872319087286662990795359077768112444879129788533366896547070781758374520825924434321618868254301790471405773144637572814182800134371402474159751821047592107810183200404922503126086345641380551827628387922412835117782025748270003936295630102451574931216440643762432227264151910667817871321388108268330576224832688164373520907613476303081472403260357347698433658258078349652941654441374576282793191235391299074034762729127406330035497120960557359074508518427550737237167397061255022314692414557872310138618501118213308955697865291057424291689743332853618092361994261508818045018451950591915504741752903773255184485552970863140972439237468639004579048768378074554228316870124324054735260736634981128697899353745416827843990674391646085879452442354881173535505774086004570076721059462399384419286045289046055740305818756040248521038293752940665408926340497812434224035150982827150174412267019071962127923490103125344253276879014750037976263363883453521498981109436871764746065092333608012723842868923839684607893928595452677621501178498971656305148907970486929055210600249224919415295214491726192759416157629069292842461691938165857906916001040516056944533072801179820198811795372580945813155918575224650040868678169361034428724851878699366996205150850918711377260086949651374839249199542702797733930456807508044331958956381378110831584838594956221988285855820197443349815220604804458739162800733569226937741787724862353780895228120831903946559614505384073267492968702872341959651086050064301803255975035887974941498735809739876226507362282151444513909597088888976731917794583820168638032480624966322259257527412319699819855831037766209294942770023008857721887077173818878795507116376540122706733241037568569875613916528364847100786167621186219998657650963790134872321735754823046462425051805134859330314177973960281458566258974730465750696039231746498839877187722068289135038452015043196635916058248579986237425345147930922172715307235447273215887246428651937863754261403647847708115297982616238294298849988563658301312794997537683897950148131049268597102373539405206042347753878720114631191391235790967756093590570034184488243533045539195969417835687083508529299256468816293429405432278427500884177993926998273473675327385938132489924343297879144770626566192916590354145764716590720994823058876143920489498925152773282824034244951337942374545913317833586093249473801443921390341955570105368817409308807079618583562693077151473320060092104832615749299617244860687521744544781104105785845484298642243901509480604721464332775099627886695853041865023073585193250149569254097123828670688574277266523191978902450627656045883733877862475969641885015281490135192645821319861171245954465568444737412002414568486946824908065190211258454728072289956929857808524193623497598299165978764121463361971594933049656510919246576022379671697710816247604776703275515344883216591896744156089691084386671449966101885001681525938727338626784202213503415630831422530595035604388987005206451370905165636291170580520151274253510617987059443649911775638761301736187061794635217294339014419741935907230866078863283191243100503495825343562483888643772562368345379935366558173503549870228528690507454980718791928428870067251428142617743724944962418169477136129547956154823978923081517146039069464691103786115705791190499826119774380861949742663075538054976263173203748470183175913173281950468558665197330173997752959365585015451142160396079768863608698826164965754406304671612182887103890734437998656436850224389930885189106684681271301369216063129476702638045041058002767059176660268371561307570016944102443731796531672219955923088490015865220504483336787469057729646180224198943562628640750055441902956892332966154588230173665788072400506482294567154569465362265378908683530888178938005526087149427496490621476608440397355343326414844475635628240795993483407693290010796827872335137890436525805173943929516832270844997151034168409525780818664391233847628248122303044865525062309044392808413371876999193249820734366206840613476539422215269469390213661881808809780786997501294053698538999832550721331323016932368654861219975163616613779625352067912208784286923735707984862008523635022302773133475235649858935593849791076669951828727695469452211083801320708428703280110974684838118880714327889684950381333005615291996368810018699414114381976080701603918824141156006620850397750655936403384952133856498396073714164884645928200429434143575866652872096509187924451240944749006341936725131268480141642615404063589001364407504887281557564172575227238373988445823717146352690226601547123665402044106549822905541296131646382616945273350786956024357390714715432758463135816234767165595989476117864806946902185884937377118353503010888975485744097445231268849443723211529860490954605356250540199357198745801082407989306528149664234407688444273207491917251566786181481193266725751055968098312459010543933141063820134591800921620042386597455558699770745589672051771906185984411162536845656423542313146001676547047281205027965227329146967418605352597577853184763876813471781480419251444821433890619073478966741570864258869406419333112729259650224940698924623912591064345480420230715232874708977341228735695231042510283058391573578054580089982441738262971916695941627824838036849344010410082288950345207544822813583411267010511470267713018036104994495538423253016915923953993523583316469703209488531699513059934142248437104918296316153692206724194427590909316044387695582879291073987189829447094838861109507685522883312859044300844219227243356076053959008973763228545397620089636513232892116564495203495522418184895963859209838622730363801260015664971872805473117382260224080582737734520945411323956059822282069129963665675434000113563135098871617869597575680401635559667605404345866185844807082320408209675998018727160476862606265648980112871658284617562538033909671734311262483309943629891610717768314125394163183093860712519219408511615823751163178555367110015448530362278260468506636297375462212670714515463941705553923414862174918714536894136588520473495613022632909613730683839284749430943138548912343278228572538079853110777095262063018104563999734344937748065975029980035712823427914178195573560991506707056279982579941780296275987316245422219781226298880256024096204830013536222486595058961995378841118629597785379773703193827931947907401902238266303550745208521886096201075030147897960113433413953930308352577062494124790106213895168865055308102713587460392731566224319805424974435862551409561204974574610339534703512952706506558344050305482890801513817054355318905389223627198076743175305620507542690033202763613624017998819141562602158447391413270330030851981489255116065100546544087247682126556651749655418185391405086332313379027901832256451019790693984074133269370001278941423061469006633907348814548819630952611955344676369089569784932008003732481234106330930542882521760560957542298900035499265514122754723985473182414101608800041991633539169262692266850670277193684937691911688921447291865262790541299090978740012787433779046674625984455376494552878242559729878964712520694764149025605949842622323964940780429529977353872121653469185179359334132029428872663839368108808891497984860913804090114111416248198583060883861383132082954993532243794546291076772996867252508579527990156577994957031224019546046600056298107050680196579490447329901200798956422751058349822478423729712025100352206874760660574629502519043944777247699101675472074487418597955551441704729311838298317308814638761002986908160786865040778403408947558866279882353129599271529273132503722824882627352251017264463167535638738094658675192540965212620181803217334953392096104687107408278831954139954264604528200603032892039371119370238819158761156177064381143466577708431898616218212786989294345070855860603036832459721898434304623217979802232883394676669059567321599691480234382949027437059760986109797489537316794303343282659847611291335723724292000180411435940779382080476288004162187197769050683783244952202327625239285276147226914431970973384248293766693606594070826941362201629488733968777129442996383851189977377276830477793488288405030061572719977242061099498696153610352140364375086013149745077282109098598457260435883845087220557975292268178265693748595666318845343706536051639496570478619668591998208813491814677297826395173062784417576663836828581326220827370637656326976726753717006860484147990380541489152495600852613606473130092240933762687891916667042419290901616716466452553147676690724993836283440457141838180290355149865047520250630815969054900644005230730332372468402449165151387816255507684600016148060332503732192294039592244021750469356597762232722873071553314949838663353568883260549472827358953104930709854771241166620224094214979732134527327381535872027516808588963013120400370913953025375830100520224448733717163328726642618587707572322191014176254636247640766878469432917822752879543140640054311354393574151013712161204210641153896379083827043933777349887366941213109034479536023540828180514117453709001715765945239631522146940287587637643211382850183259546141568471606176089294953317113220701024618138687839059731120769853540674624752139126879240560061442631344703580305358945903159040938081625974276226024249481273529453005699262864245660330770038853327072524570541252458393962754934545321623497846538787764355821695799912347339194952502308629285701656870695526708096191948045671745865107606503631381234771576248969828998881156945762991249781286638669917558499027679488685121872594017464234754463276426988919040133875173496996567819183736087441395775070470328085851643770020648988960707641404081369500150556472377166722650464615917203765423400682604639155593689179301886955758831711422439302796834626758592062526444120816067058494505228398565305505870202076494050376076346292753021472244075531716133807746567347963461956616651295635769603528452271169084463812704352733419390886957988515021314887312161536042507248881385199101386354587844340811542458338246319958759185074207410358785003760492981251883412543852204823823617411558529754957117167978858812723336761889743050975935927694470826822845707348716478590198462254892265042851387646214782896309834065356459078619257262265726006654148014766299684935511837092693321249576163711977883520005613826378235475737925320079029504447473121401704456293160673435045995262461000538471340709094177943530187925761521105472946941363849815994488877897995138025412934475886841606327297445674239554005263220627358396456489338631368846332328929220705862861418018727224916972036470100075822875509904526585162811304089789184277837094109931016970260891260363812189403392376113500188192971681324520364056291912528961092298530743248253206405397219813055764787248771635925487312953251421220441226323851720351805371465592170441459736141933306032048763609100428521537348149063485669194083631341178016362329828569285439805656940833397219691423980530985415676612863965502343414833013507050552170084302035742885548874583579009092962422744111284665788479424318311455238425587443824106767330750458443341855742360878177687532537211042478086968720879994231579469305319508255193811457767849291117114594314083988398398900856834439045786798056633760960528431477313718802873667998308013970630327320537807686396055243300697195024863519971904764518347501466863838462784317038857588624025613931015022443649270470731415560098882530928002238078579759287763249743418129102314823210007209263584251927359680677383927222937661792093417524386180720674560048592813245932483834198845386184554632582302254434864745786486997550858998572656652890158412371520805748032947555441972919019694400176639780832618829526006622926029509537212356636033623958341035875630597078520729515984245904228928447994836588975346499268864713159571543229096592513143893634497447724002764334470904267913771663080380862142366175310307000440157761151393754641783253733545206958214942380285736633156704140914340203172052968790698957260560809258700517051121429448355299993978794503774189308970396580550878978986024666173767216317072201969943624665998839410949091521744230325648864524786020112453523595079869096034848803957985913671862076761904419498475000050331020263358145415533313511227063207840568756103386965940516366945189861176305996462220803233478280691257682020610730020530615027253378536608482786105282532348329298100217890908678640462988739356711329483215000095363716250659876936676750003236702596277684622481739424530338605233227790507718966749696050637861125907836837019310864251990725037579563488884480918841403405293832622112262302381263201267301497698300719801466503728460599366203173181969624411624032315592377276326775540811799199054097424887593721540344738887289449780290196864103924856477833101671921638487288875891111323652612232186611477031256513383116578217105632147043325232509144277657579721707839039101244339733606136615730429326198283390771943898985527535901203438731998295966291479045732086420521721197844386639149028840072327790292340436224541118900001247661716669072656817849438295064977471928326696816203945541756411753577306773395993198997113224367588685998597345245139441279330061854297917052645248805358810046762826226611884676613769562823792839834416358691320815635648487715887536647436390359370978884232127169599147192538983079384964858719204975084878757447393986036062521729153111981235844569686202322581571684252002198609577410027240137275628245777503795930367942585796865422241734706975307689003700298493067413465703822215364252510501331691828460897514050959761611494296924887162845911319053109441665844178971322805272931559891966285247006178232326933360367378122651594244844601466235541837252608620056628896948555595284453479118452860429515135029317416414686203726176539420618558894068029713282940464816548119432076375458892621764118701971682191300809207002189995335001160318746376175221830046962132301775510643649837517532720647604909319345200094285503256937918098616513521383689343824054128463642719893306192258404726141866703643478860132190905029534036958372463224870844277669120210186446381085523416616739283374067444421394839675199261574809071861688831954069616859807619360362200034867310042365216782736721512557097374979986559730187084273830091264146494034588198647452187781701841023412058402762547759674833226832349916779452520093791905978642980528963585462601197624326452983188126099941874783913970890007738188140569495047093123245077226470145347706557849720043364302092705149665140096188504714295122590750362996596576571014113697493663293772909452057131799028940784702204625407420618947943068870047759647572658665191138440749476465165750220606874031990436357591392336951210135518693282584269938236523116307506345174825680812351589494988636663044255745886583628222080526067063888314163674046008596675817351388603849048561694727035865166473461193041826687833398560138521216564113991796010102754153886878882031544938079800502717923125470918453368258346301871907806478568587170146329662165725850569321235830364684073402035075675160727409129287339607233950617637095596938139303031534337459630884485924455533433467456336446487768216378149376316929351316216820838801998015118579312423671265994321847511544087360067818550521649436719403174771313133457942648547035158458739041193548058789202751060328338238656922956479116702566549084786540282823853509542084575011227770976721003530954867012058975750900418053520885741371162652430525848190536794934009514396216800773685736860045516117274905924702355905898189251466244607544234046530601368181565107710496831877775291719736217021736442830124416615995525028671613745421912040062761415380103899588909655712338180694976005181288047804672041078412131600668136974490499712844886514892636243150139487923598856394317461571347227591829521721197894147427943018543459750164181094730593046498887026365119801013443593290535670039585828435681689160352913337756157281333217847794283726649719600729987521323177380300282486419262825382607682991696898011906705254245047949453823445664616714463035064211144485251497166666871721958405677976832362852331532127246863957439194037376170551514239646666923317361187758826235772711980978941987253470808796036307861642542842808520830573579037731769445405070611287789281980447593173222058314539282768774202013713979361845540167188249240262648405026859204829573769154906157814215835714078313534679036346521850807565047947841137145312968064216700856269074644710242202664479383635095716092125686822010682369829026824471171016464538157713587776895754301203438009180252172771040344468138399587182377295797605455325345518004893587770208530163869421086305851575214682814454506271067592297386160860274786119296994813634181031824458457800182189056788346357836104357951764529822381076822022233054768673363158732202255986279534683165506187131440887057889221955352434942124383721150814177486572534953398831321801700494028300233549066646066044385849764336104143168314046096158316909288838161476238619253184114173312921367158547681510810325450857017128917941278212850026898596484212330046946294730431680680887134407224633955905598071985782287715797532818965490174030011610127038080275423546515736185641863158060612956562678294258558493728662570073927123377994248380956394444925903201303708783504644437964785840766496677015344355291683409055266702958219931656047496675683887548590609933194322075092821247578094924969861105926682904110491638208105284211677127457163284108245086258815053792109700236679383270117653067378215096807274656396949007099026771477132330338104040410315003070903724856661986778632666060247301411076877525990165113770989112956786577122321190519264323052431218888354669637855926312509804798408682024870109203313100731393606637230662783714202279015022588764177208125450212601349733220861762346166804827376991702644057664441633681242527512536730814477806959116488755548316683449805704476074287779217990828375932509186402410567180792796439772732383997338988575283443813080266268690671045147122207813885948195309940141631277637779023759992835881443049283150983778071763332083915636648094361803026577732175738931126586126934629269339738574382153874641571347594452476318605293012195095532825133988276755380731617132158475826471234757657095200538200258844758683412600992122279896547623030991566860191517071195842754738649006301869020993469631101657750980567031549904764899250934103868666420967582510848494365621087932808028929043281915967315018530034117403233048976376742131770147435474903857229496051653505820551532290947439401460502414637274737418971501160724917195890999917372758672024812053714455548293554158996201280831731481191439747303548027715738716884471199349416952755680909137950095411772078023923022566290249720196288725517979219459323564824126701945157053767009220269588325867853475090064581132710351442072831536071921792799264927764401998473411962343327977017117082731712523853475762312550761633827568942274865320095770594092385071721894011375708508861186322922134842123630256210303252927259533991025093418847321597972863993276371670458522832451733576094752208013755751761817029732033252627195342905350721331271236782112176448806039707170097283941673439134502542414314182079686674138575773054081538652861843735263057514924440563477082194157067398378777989417447432483156829146645535552380533935941422401026505899574430442328749647095881127059255817282461452909682229348110742220992566933540780454152538201565368087218053618206103538753108936449186820800553713036818977814199610062729026183335438455546197469650919362431132788007727526908327792721900815497434070580482948691851661876137251283954296971538745170252097044879555193356795835133394622638876935688953106240840129240932077262993180421977989517353829802954689621847293252219027613820756471722289050984900192582022953527390101155690164641727781271031308069682064115259528407075402010148015336872858787862834502362926852072135183773413602367422805108043743136035863173973295432538480415812016791829918906597977820983814823615864570777719439703430146193015663993215769011776785166149082173982286924999887426530698857974442675146903177502273459149000866122294132713223834279201225526359020855160391363958123921591089495477510968800267208148525318960902816529098094216170462019108327444762904254620772157738353216413823967309350474708969168737353891608815475731438872001993782803127913344413670068002419849194641101376859850461529475391681550509747197212457883746233963861038893171179343238865436084553116298159867923055533163173731204932933424106229966726986955760520530659316533458868606570711465535150845772553314468639663048196452413119658503825894069711626468084378954638682380931186305206570352261891724214386780969488894905619052421518083416791639899258815001478219006105556463079655575986858278894624511450363572976441583681427660585731226153946426223567484666884801829356956140679757847474929737597560198512499757907277036845684054607429722362074976559662494166007553684157371798177519258671196793127802197722520463814634802596115664242707676371623183122664789193263888728965535099023418146968196524802984271404000723700082562307200585755180893212325174942825180434992993433097445575114977020982280076356566818632358900763038416126181376647825613474761815443849673535863467055260544414143827210693121999433398290063563653068242918332241435029397382132955424497145317321421686327793850275961790395385400845456857024639127252251370154925845682128431844794699691094666642274836399872585765769567876407194042720898485818517924737973654563942270031654802598840514424778272460127246126694633664242239466689845319425029804809370598741111167219532414087711508851729151385796849318834387890485929703193962664913009637309331806523106351973941634219236470256164444016692873893605493300345635883935857431630537506139000625756059678095722744458428221236743081770966483032027904523578172230582890849247251872162211068221630117122766884077170340469818135893790665609524982728433306540188203251346210647207821023842788398053174178308047015602694756508204842503225705802428543159195040495627443978450387696749565144042964363409806035455774395919830420876684683926004809982038129324795584594453331400339785663606305979615858111874573056442321027813344413753565605636134297526901355454820790045952696628323311286101052416048199296650495325738102510005109465027272534802449624608116214377003245960260693942642646357890987744984408183854766544316861137082091089004660543516345109273381630439647036406778408755718591034379575375547384079790106749789437823022995398371914090714050293532144070636578208188609618512561314962997122750726928376894882623348590623252941826021973067675612967586209761647503123529469740575399214498071753571419834525577287625984342767766699504653986122290647419795672650638789550629875703819805917446062863813822200248278281470495829198695732143030436170236037576644002988922612675789753618336751089409967789823244114690736136963158006806289100715716278237346670844760885830282008817552476746036452961643908241785161252926336553574339335783048605556871184447911918463643493059414409386647851744471885956224300428580726393857255020338131908872224599020602212433546011692528254437317600847720426792551368951028255638095818854547756221817271835023794014079027225352993815246908919247160333225650453320511015882069008185000062359432440440107766490423323641997259285063846530973819069364663504399504205466435304018252077346938792432569799805909871799716641801295395403382448253484857084299960337611614130222346353478111568686094974631985777215670343870360637838547354871222948067789515384938927483791940028731637194385767566484887238073510284811319690123533852606646663502361692700003092182412053106306137094665077337654166976635167222806290500781370369873095155465435161934857271389664523777304522270114287822165385942633491170662222630529202665539938701544057460104101675996388393616097246894665921851869420036889969884258927304652745024194245940827064351659301059743291881520500434806503054113213805952081265265319626171870822255787432538574267925070830471426160294342379641873715712223887733399153309846756929448924403329429475847394993845807157774856598616865261413156123537819578077435533083751754666091819779054521852960882661117513971773240529429876204556566267895745702489264548034889979552474208279131149803613871146382725509950954154066041385282185005311099611873268444247430211758081269446600066148149877442089474795410248469238425942301248262073689766931938054445645363035965528442301897699635663539285492529846482134566566228470628374865446068949843696069868746708324184975618900377797889675722219919715713480383108612241860345597179423359872471098621448083856120607472531915649355396612131189327481870552947754865688200390456214771337421061971614192218352556154709336918741251933241720681186302630098443521672858472579751834430233182131952942693366259649874748870357774015406151433902838082453813659436912030792002880215889714348522838526372140497811605634466221165238365561626313191196037992671031666035461361631211317751508857284232033018379508602536953052213944494911069275162565739658858478130831996837747914857678756216061381106526037022361624813575339332650267839812911585894226421033880533810355413518871937760190467660175026758090162774681054374852570925743522404652856546220076008720932909465592480510096607818775634541092929453917556515958575883691914522367028734090718278872373884733736634965194740035316446833817352946848029360571632421193446693018404617791656106750954262875919163523257874534005690242958182659855470069459717731231368954333589077705050064204417531503874248840985792268690812620761486229507668054107146519602048120495369272297345188588603745186899976260310668306626052913609308106646376733784491772771487995489836899250249835457589920638078501591620841379340732159429739659015990050888206574515270075908096102392954093159810217980108393668443799443788178382908069460691819745553521056093772509381976131261116044121513537125414217942754711756407092278152122428155111705340843747646482957217542978928342024279223148349502128087191787254401584840972527297039431314270397876569647622492589816993757848211801919091933635417863286202876881127429214106028976400773557595127758167756306553985078024818528532936380379853267999873943255376278648221615945974119744667607714573069407251926304544473604049175642832606143052331483172399571085015657728497007872459342360623120735853894355210495892819415117680103300129275519670796863497626318285185632707459896206371738508579005413749637748613303253594588609377788608040415442585133361424350037536639732771848675697950638796633935709669145935292307797584193672316329726483314210169913729033830641704941723071095080441100214533986007982594507738936243201380751856179588832882325705899681801992076956513695656159550446258621485847043546446433543085956278280742691503510615882156722122272724588899302469404860311781627924468834157638430820785896129625668767054376566110810559827977333090488853149294943550937226405781559293233142029227176459227791104536194604915224351224237910719161354280783780575545104824727144528704735926699953954071388518918119812252718014033399191040454730719159859485518273470551281556988263425668114471435177790548863532616639127328653264772533423662340029392288202547558050001301216056269878475285470702664608421782559980673664151770710369589795648263937924408456348692991277404999029992353786435360472883739897700863234688535074499958759578501188158139611383209986495855077842488695858806199868311983430343734659777619152684267208014736924570194406011309371335633129744405568990182489320846307031595661632833390438169627021086294208030097960939052699381866656721098408578948104585280601738047363939017670757453957940182843028041690932054762226420656521134615236796209562943923648350430933897702636995484457232140949297264952489619140591469104793966927047456132136460236616093026929789016133931080064490098242779874365998183910002096713682041190308734334406903938706646799369832582011261729631610003326385646905730562180078456320265403107555300276862189859473800152298379111433124887551261434167026124596098823682039551421526490461476738404896837170668836446357325816769323174335983195029073218013420854832663137166937130405021874874041567021091944758874589847418453256258086337482815594240249721810819453056477907250528179907260561841287351240485308832692197469242788161069755716137212041444978806213290237787280283443240378373424077401442806833068859633684368586340223431694827937191034155652579473960552366118606915680998713353315856140033747593537395477041691396359324376832912760532549667239508944253151498102093966109196113310361051565332624918110333230390795354958752400247698194461660116029205401496390425984658123409135334460862395334010537246628417772277036057158087737798436843082893580024423218952133941301936283397802670447157979712508856923412110570795572018750958122346154094026206543750638253622365833248097666734008159674720769302130665630582561155566331190702609715839863821327364836156945362006583905355897675814771032233775393307451719192749361304261882800349936380736167429496174116848688352451916491606761254118853921655056247438642926823979798490353874465667206285996767362717231437672942779623942343970140056546580865518049249112772566165790266152535935982017507672800524920124817390016010257662451100276075686546559214061971522745264304069337846441786743240081691867619774392627582736289681048103019096250797213908670420759867297740799061043481732099184571831431005166812194965984006626580109401803424759557373551986866404060759638125542547535167896942955419829496757484846880273594960274046968935414111546396177242796857573851994146831922899563754606683300152411736126005407162417119519552488656966658834267311494621267219652193622005784720844053534572142357798797961785224795520327589090355012108962121798866628865309196609804464072242313510573931325426683497196415682937856560207926003709169739236886861636880817863369576342881545420166110622442121071043930761661623087125157008111718501679596620002798427806840193839094114026235734279621722118963193400456081818597721929046772186355523923371074568440891736236370523736084590032030944745224527312364015093723263484368939153465358526108881237800198754172091002669714856794707439965803210607747582686896559789225093574644099726281100361752971987539545702758109639968351154056325886748152789150828207903895085959273344405821972473132650553364136940980288956938656392977812518713518897249215087004054925016801686550250916674754575532335135121798396214100360963208919889062094107868653620042768165623177157905910994066004624105298607267078092078409043579195299781686971060947436720363986527569904625191642961292670511463604900469468446319608050068454612777866873642166162890232735236761827466201544177194694293675596042820696107678432991757803750637155754090462941430866194811188826835074614141041912753083262977042322802862067747188000439002084099764764973066326506485311431087281653041771444820887602107921457248063277708532876420831750455022337549965869516628399528662247021944013720059852281496326780068221759355028020819208228906371204038669841860966601849607514851227708590105361734735338983537561318454544690883257933582239079857870991070061096216431595084635378839999081322213696419113023034479234192824957606420658077321176463668532812299948021734819413894745942783544965808012431093939933395711835507443091852473076513193189747825799757469390323082408333803518754957216952593049901653117759320420389695535515308773031165850226879231636409934665210592887448175406739310832398525118335435924768560055396901069809423812185910271436889612516608304739662060218018563826267739464496318576690468361222412341419109472260877914183767302424534690998013936052480578926989576492051515284069387486633782600506828654385339349093637068330452906195647104589547902960249043119384823805567890410963759924003553295153311535213556765918775751721480172186985687934154638134972028392442969245236759018753674732966672711498202360663092071251614325359704949199677281261867978688285661506439564209906793161560382817583802071913477906248323545866188053948037440191777066349234365963751731144851700000416020561296110753399895884721396007036011076035294216125433239068348401694465410203092994204887192098889829398036763267746515275336026778929217186606169867823490712716852029467420754337009946108371701543526480446485225207912349447344013362577009926506217280233324261936423591719897302053698163280051567727924410813067974929880027249403939270784340912998851314992807634073328050668712288784909828181355126820674404573315418519383486449070060272501221856898881452595255702580536325389761287550323330299037772073247684695156418239338719301422319457731653088468386259856512469514422114662453151461079493815775319212595051780207397652241085871505559043709786138753568800037750744989911382058124923384649564339132296210720926343539939872791154099963347746807607311680307479808941201167796956291307408268410780009423820807876476504129390678883561692647244648323022225746101624968265905147604919534602382448917806787387452582667274477725380273136943036020140777634697423611437129811356701195085890944381207409978730659736194085312927675457153717207412321371127011453423809553027586826702606471839425250034325355726813968607468684278894318455356310513486150657810541363080727802635531942863091344953741951127205154565724901740665577050247734987497540379155707170914150662288936145546882988842616971190590167949429116816826597410665890473032561378621112534477031708342310908812666781573295781267436349378745129378776757725125380676714763333545775068886774550742307546394780220628331761204829225569934592320827704798093733329293684077134466828921814457514712483639809188038661934728650922077283641438228841872175871780544895412295524428220705379666500804888305578542842933170001203879506210499977273717065723230490218839604851544021178288679138162322780761206338344422011769961080319768661973499149614333802595386980646146813780238764013317370439482795531294073686621756985113153648273087438311653704814473376973908959030198628569252811629644656547228323091759091254235983033733123625951894425625310566758697019586383558290611947280468271691488240115779533785204511965260115572773749695833699641727672808608312176389335000984145596266310997239461159798839760538286779742578405614163635310958489508839607773689332029163624248744082369249928541941229372457449490905706868385847631712574404117811388554830918646910869271461507864028266850428868813551232141871454557842046167866553846841795761682011754757979545819332062843860207027162062381857368602208649553579810605220848542296626007658718444738934295765252020261955770599224562556767716120899502075868456306114526062939428910773260247169477947100299965820713149386948355046558152065596823134094723371926345745851785241629812888016451525456925916979648789723271143474166064074192162089140935445124807797779801390439458502396641676749578691504657123007189531308448461098616459488273421920843317579763291472592147004111385985577591918425787119503500212084638355389452110259071772731091145578389005513016719801044103071192381657593590142340800631570252819016381033573650870406830764132829462489507539142957650326860871710327539068193515609644177653854910684390314249946688330779078536683896634685465209425106049960230429911902315268059376937348643453776377532424080335306147225743915161184157952457232480856859448685291027355437969391083945158158066381179588866520219608292118420137069230222203566768190351667859557540672106988296234345377891407628754237158919391473111041623511720737982846889443288157238809398239985776074488763020468989103460084154645963503971715175855996643634079074440031605335517427769322015793353740890474602623735057813225140580439193500992352406302808235039388167358471430871278705391567331118519375654857614073173231607330685495748194459019617834656655018042902546156541455298992692199420114569386396878947737142689173522781249389915793332817562321137244679656962397153597653914587537408449782503405827826407405165766450884451959766771595824016977667824562962396688352008751531053242646608851697479285614789419926324400738247764331312986207747061550554078639103473247131413752771506408502619595759083390239232974518915840470948231846145309510471518575770091615752955148413681712070968719941024933486896042578590072473488097375082002883428394011013951680021348272148615950469385953225619240390739734043373414858352260211790266749439688976408286159877055545821812602155028616370184939805438572089332827758938614217636428265780256216664337609654248932156441910969521018286958900460819665768700995990692514052593884068615401931285789748166016495796167559911773688591350333467142100767117977039811387614173305198394745154921482273109619075220995788308449379447243084216303023412385757900700481367770299073008594301337906025111558337605560382282291263499955990364538688400985879728776800078662742236414077444634098420498346232826524839665768249468205633802602736222731531030991051179507392201453960141341602259285146020510287671108694837610894688622085770586537061756485970790051667064003652219162163649425284683747117522909832199444824498748452719876661324958728694054749938788323234819595385163602829761971379918223405104504621689875541450350416040669027227862753777240694267504175447355946419663052445042442112079714741803638213723720443197981285117672045782580354756513297837323714280583312509314682621715463096569696883548166626030689256533954976792800694898650129000434619270655899520441941216826602823494654137269455411385262519332380747716098024767499283371759052555831099708162167057989855854420149140045880990179822997255020910144866377614309929051127405477611611609162003249886041452168864311131045222229156716608267675615951020570189833986949719496302161406081767793433013816842352004388468275723195958051943937035898609341310859829307641493441265993488681881524575772661152186631376848087366257812832852205378855588675700069630071645589635109321557237086159941925704548229824810797932048133582586832891443144082475617904967305772872220244876966626534113405961181127585896998101153577671608141620044755044745582582896161602039789129218499556042949127745209027297088526903419676103508369809053208865429410738275115053959121475814676875680669164904576182251971571150339693801947521065152911524525369189948471756416490799584342120513061092670977497779457722063866963937045852072969796756592989297112074854015646512531061710667309923408033731410022084360970616194710382204002786764069049200978838421046070910048562919360523476744206158038199806977713578923644977337755832675462645938243274451923325427405101462147617730294099125939303639184915744871738010271408897096689707050188395395919637808956166637483672343259694501912327934720323894991516573681313967570168408817532558490758719876472396686579432756125598844475844661641190942131264626505961115399495652925386142664441233939422085162053216642105815939741355835489094180853060596123015081644020171494735408839360750290850744946009400477671834045370297905031311365756740679506919368911374235411241295335598121123536255346338943595976778003889443571666138471723839007249608690711025999630361174830066519650040426396321469346839197783298029056421042297101989140693742903180742732147338134806986110212201038972660731530769369501032204892594349056850030261473356489655266221172757302399076056572020033699483191808301530074486189304592565136812133600912031565374592746800731777799202072404430769026788740271851667248588347631391533321058439718851548379423685387157688568879125417397687489379343234944515013827268858419810531601344014448261458823874980162175217194922181148228055650043464957996470734253918831973064080297487896433505217302686082864389437225053558686424169970002284753895278954804934458989894317259356847578980655993186161554187653377683613684860640053695394921892559996932071562353519561631865026592016138756079485729037717603127792369545196280180539963341654354050185235773343958648420776129351239727810383865710253326257931600823696810834475143103664966929688321627646023516329966271205138112159870430549360206653701536086974555198608546264439472488364070512905076752883319732889005379251345365735643874665671390331497645020754550020409523840711493249826785930923703675961895947179568177225087259068126665015697746013605102847032214249217438507152015905851083572883566603970027996003285105611391499781749423989124521036763138448842365515660523403732655211875152226880857193358225191466147414808840004373998238860672983948153871035381294447710093325849433946187933962830087335039440336523581062254935926111268559253932757279556757978918654917564510534098630930729310251187582880973479522304913123087727654631421938194556115805666849484885691559116603602656410242602883845771524101466642480778618823283662977530253905816517809815033725026691307020606251425420313367446093321818436607659525796588686428027119092689518910784195678154750960851413655147388108139873728604184400442336439959268637007031580058200346725063553875343958241689589041590147017469596171874363467558684973900518181422407270496165761817400391255733793222945773879907168671471725498620276828639833519332869615784885478806172499326197578669425954163970862209013692625763822632239782819290754646209734166308498738698340447351703894136329813230312842375173244317653129144782080563691331015883858959169066504019306094363431675410907158348945222290961558481579663300964017832380340988741572611851802928533038469587174446058462354214028355591226541234643258637057719888347158799540549151628654175624753850384400718443144843991301312003875011367144478063233808925575540323740447585067351510732812088495692781248389398070076168709771014127042284095354514292432132454806804450339170379201534616307081779164997279919252597906339466413483833128969785570160257110978105300511936122790797507415002486806183690672459141692924595716188221363297012973702403032405180222357974493308414621250003314521508276988930271897713619036038161699291497978727790615016764851325321083616973819877537533365568956079326807524645573656955656443514208727653540575931820328292908093763786470582144841948010703711114949476426849141809623280709643482459424331603951810865629655379854198129837061805738378055372031338951351621452511488065485584723154605010127343468195412216764421431458960057353800294783575220976334461885501685357953708976164306874442601032773350630762419116926255462203999909494392106526152951014226182649448041235646037776131916486135443910442417965051310916934946521766667610187054482463986358405309916022036504267938489525721466568445871754443800011400702395692353119717410771385343082377114426795075350707554758551933523689247910102942481498805067748470192392100882101865264095762523563012937636872632023221288937273374298638659975460067127638360549622520759504306724125593518122899447870629977435885915319364253683268394192333321703605935938631417508718620376788786069692766633433276314114123311152846415207169987775864375999384126077062904308360134857716374620629345077041362542071925330342322055237573376980484633825852654559754497124034464848882060423715320792470714045318929208403615861591210900017360905217088074823929667238718259022783208496313188717616674244017238071414133853903943674869051660255464669569860808899320853148962828213227345780128622857684959920312691157103216542077039446297216203040260779742116527180417725867500619167622781927933314336878251604170618854617486941547114741376776884226286712314338988778914803847059792865780126929911038850721443067779699416864239939621971140718683397242484964805386140270443660305207963805803591835842789015251378981550044425884106024049638685025105078214645153172481306335274042147077644353319045169343702132479570769537169672430465356323781477141222664969898416979248524452912387141080304278029603735545625651532435539552735697972418731696699825842156153049832378167674934865285620352488234232987971605985827144419213829499443149790439065914922451258297615498497989217529328840934824158447026889779390939041636890375537534167915530597826359291220505877818606416654514474529358043940402457084609926186826535869221613525417365701057340852806032319795565852205088192364216145690459824696600972219077822108080640553928802764492222170412128366675352948042655453260862884030015349296271959234802460135710102156041438947765567084443177996294164991249769334437145690625685792696100020349528309107150052280733404135763001406946519616425349767541022925834637193211361635332528913104896890198182669696829757187631353034478467376360000685044485256337027360160325394930039781289224628544811920548243885338615571863283806837607022680900182429179666358151744665197487215820386046496715291168835982833122681932311872925280012070029334692208364831254830749048888833575088077220510373028833032732023920875130573534276447486058582902941861725009341606382415759035779462297269768875058924032027727947411109674061426200495600513384465367226380597925673085026912302934259442067624892349146939199404641012884940450835753202389193468541545633481745861191982555593468292499117353710855636383301866310712375275333940431869468242867210378060301155783686123757758827723450279179486523194266127606333245755543491470589296767529351502898870906702697715856070238359651391194805880190808259015084144880685498033240311065051108117828502806594313526283102388678929393989833995967604894807312095826820626437726799732182549731576236404961455436540786235276163144962211146882433425049512820636155067076691379396919575193306831681407008405166450569584954783089544688116020203538807391178875880316714424361875854722592004363165457260456414724060330392842216525932655043333574324170403179219304500720549225912813683588514062867754669700584638897573225638383437966568028906934726362100381214651031183603483621758803571336898877600746513694226721762325250011026599686779798493239873820090583179274243976036655106450336791441417209885116676265945186309086924264055394079202656025093293114779503041151430325812628329888727187569828424487338604489372095769271289288312777799380159908870758738052485620345991266649315060160402219117970027457100242922368537809134816987588534935061734952760220168661765448775194615064887756585765119730728605502798920061406252602769858417006089124390196665517874316308883588294301183419884433061772258689409037002706453983931713216271520311681562996023263431778211125863760242072732422061666610181889333157710959142170002299625967579178769955837647265235404641040863139223610111726224240724402634257154083270746456064498480909497609811339716365904465675590344132231002489962153571441849437712066411858011710374154656338306868896638374588722966607324729737022462085653728877709740553623204199624571667040719623195709179774512495670577710846339194720839633058776313146351735496190371798624125791035115102802401093416048474811219249088196952897610797136449494141390347745646541421734070216472396433049892602844092926390013599502169007304083395082574167202550062337689893873370641347938185829502688530279625692270868547846956581947553543952999838077038606687265621665775575734666219674898173198483418992949533301955115580446612465021765263598980399378332163182127130192423567659078279214633975995879774495862443081932218119955767280906784470739949676740714267400535547229061191491498692112506650900048617925427484091788460274177307575883520545656736473689575329807084502123104378894175846018992370007693476279560327093059970284414210773093481439224617597672240564014933254734151601611607692502663220629810676220247767354558209891167505824795405576273993492446785355904172333244198683792042223029444549927278295982991310670328252691190073546126094936453367566406267332483106996261828066871493963071056290941503846707409673937457479418370799197114746145839211779638797525040941765103290957262927157119855908493937065113374584528797046493405798539541999839123197777529236643781854871274269948161361239480077008783043237684226869191461689947128557966426079724281128419107493783801986028776731945241049591704993114286718606571959359961756250109455676296789269205747765667640911052607462188389095404237420059683880107868503738130653751703940703617221053489514561512026672666342751082362398157834455190725751194497024790227357535371700344608992931764047417377208399120792935398333143318343038794075453737334531037858061684466543473310721717998015135170927507700418551123352098642050632731330370933081659286721457466413242423461124377922954021672309051537095208129127751030494979568682784108569681404531107955455168715003420824633872894053346107133283094935867053131823102220395698580815558876849665081693396378412996020577670511423830609572802426500386810363721072843735793034426948493007494495740439676449266769837323707293220424488265370507819924570512549330700981953275518623270347649196062122642774067646454324369276247920353634615382992139712036250787094354331830314511602480941665944981284550309837121046316121406980698988392062339444656219061879314874013580717103148183314208121374857530853070168175110794856389965349187598672354130447038695339026713660513916539074942128875313443363708029681080561373783601412210396881695077385441368287276808493576683549584206013363956912886328838915438188014471494299043580975569400240052175057009374530919121318791993437459296663951468418049764120874728778558372476732351716361516586327556115755847317221787986518023034692536373688396048692310579430072110051611068527176009716246645632775521681527208826316880171327168746310634389302986993809385411892275889084099473947439344155971173164297199696816644905528257126009836056946166666737063779039940005353600861731437082117909531684989563903845350082341274602467559426096261043981006385394414663801474922958934439629781733662184425783060838347581686686340464493389356797601923579181365669592176823412273684692738499673224305319108962196735363250776759463331312507661061548634774205256699793654276648442143937053330000503695974755853344324049689612407545522083582904647955118245423075275274043754550189982202420765484239403057322371278675978014262947761008118652366598853549783874668663198668456585729622439253527282117895049000834096118855149183595702472099152354794209085833464231136865512829455273447389099392102419815128929134830529968215263296570451858488796485389258381329019459735651165999112908896015521831323424734013157570876343210644553293511468223930170176266169945849365684148259746642712822916960040073551884266144342999943988271355417788871869785055500387929505708914519280794074441392271946360776635772605318870327303688223733409165110700280934067084181845283252314889254862357008226428868727950393354555114211584679166567503859298856537250430725118441305707780156865916625159024729499325531980793594014507012386210952891363566267860400307194304016407320909555787810621202426821444664415179242863402921585103107677223267358949585105779969016943625179997618572623003437780515019399530851356746599377302262137495258565732999127932780732544351052707311913642595623711144335040271665640207562981170800883778037674468282525647802458511459518344880134470534594410598114143507343032280411002110207008890989532452951317512601772102589427696391635121009711610765711458095031243560177869102991464597673205939547118927515325461763178914128535254353590193679566874123867392176836425682361444045671109657762165009194095420633282024362531081977576393092372588761803613441140196629768570341661889341995676550580338831882678407390240251194972204176880889433994340336551610524105003078788124477522497707494144643209208869549092473283063252532351735704757512202225544439471287378531150855254797773822330960999172199408182590124414023742965303689447010653460726073664057710114132521576407486311426797872170478548903210656195243819654503674799976865335745906221257892175324503258503146774723404726980111965498855540984138296749272124164406159375718148242577505293880349102922044777699719389094601612070649253243601141535596691077528429635382037649306363825611895332813950302640692542543768816913758953454700253439500795996412342352978473594741480139800535198542767383148084486299142992077211891891251002713049214093553729327005078782114830420924844748254720350003482086213839307819546452064999540029785166459599679731997971142212113348516992966956057788174622993330883269902152364638097479333738514697315178047574672830761855756547859604464476927729129338274395115671320326363618042859283764345093991678211694915984589827654537254656439162363312920499299852959106976491034135896861253816297747121702563012448330686308228478802655577007112038291290748427630861928930387069435621573119094235492782287553583209846481764352139954514013920218800678585276885393241983551328956431260669043422742068780940891257475404295797679745075652506531688289207519190651489380401639003495829764844975071471565004181438482302146939759328525866388917308195741665498400636797433505736427468726148284779023747719575376196022791215649395837378930669832015465874742913439848213608468931018212306738202236395125659359727049908691490183480606722152364866759699159638426134374468356492216259691645736423303483126634005011662022088586073278349736083258897898330483401705334954612909193962423264294707498806902366487141675971196700416648318839488167014125523853253982360675811882316570989345050100277826203160022228077815550363827927001035244122243046774736857040300347767989509987369244472628347037646360593977056539219322421941054739854861457453330297993626492861124295765190648395622974182232713529563787933196633798767873348574339395563664610822392118377805575234015564077312352179856012334078373405412234481782518188842724233154545140312722122330563890017278468336859502914979500798670915396643751987298596018770786259621542994034224176973990133143106765837277332804473571409165211519495724973345468378972024653369866405262760379986107707587940060026005284137233980969934607670794477956054916922510878577662344140112351042303876908447892820269408248052361279118228402119343290399679430025014459225179236005988046986667243615557006506901786892336558183666027624469584208921505563125109379037524646088617316697745928259764940307060338527449646184442067802523172440119349770102464120419517249045179677052974309428633005354302584467067529155231708702049162780367540488613334498876478126080193984551565155946864086656431948923173516185923327376448099216204327025423018950346296845431155858101941537727779034003068863037624983125960578274552826289978920141761100599715837667084821985354783385083483515273784631375380780447323997629049882950133411779396728164558521391465243934144575830280630017591821045214653104179246955798970622462127243194462652185144736231691433766322216558559465138457128460637667772849345652514868199844250841278944348507516198333758198331172721295442446537789691280688494460058004697102224841577812990631198695803808448220308600762026427999052139594696353043438980256523204798362982664177227284852892818091194121045072600255289634802560111338126883260697346238654898674920762274679272186149068886511893458713245606337210131505434708427212948980367400202898241720926151832919698171581486349798907617456664491968040565709213349205824838365487182575500487192909045880327834926756484003603395859289399396014907851319713711288679125773446269877273219532402119512912008220367593821976606525272590811931148862546803990385969848615464121938105828193991087230846510747529381027621581014718370437489134225068531416199323562514302464416918686434928170283202596309161287546040841851302786440946571421112527719546724390435196314706223509305757460293258174249079919609725632586855500502278692463001810533378392021283714094155649285082878972077052442369193487227722531657040318766822797825225550791679659143364652949420945454059469268774250412743678004034870373502125866275960516453241652092899259171438320989487386889204681152992538470741725975315642405943596464979523971668313959768857182789911068761440178772681520231660284886187661503193219015004462658336954742529302615650600870202783169976120141432030620345954275863350593834112323768045626642765772664390613669675906830378777254008610086520032355325807165086642695514062438060680124144865071694965793005526135911902339247944223983103216973856040893666143151103528370415950809167325645766174190765750384425185029390943772526170179369548062569111618623578414616492993158855720415492559815056442728189860691599281253196424529135763907298506321132558992169198036673994853244645477206324207386698096030336614430719336901828868182389407983895686752562657296589667198517933617662331847166167269586342683591005226162183105393072272866520393887439281427959763284408287179888996217780617053313920430998070374957256980115793608992685176681793822060534489099210625985580555038082885182678138307121622948605595776423372697167149347847810290264783124777640022509615200556457717936615068614884399292362432140047871801016230828539724117174217888252570937826656316913045270422990266676016034261960504689146053669264899555191234268544447398167072256817732095053546111730507472042105948534177429140066043764159929757323467685200007097768471439493253160466350049735328730339804384887394136116730961633625056311112533288400171001614268597557818286202307064311956254308330157724880749743627593779276734374871506127386479397998586896824996372706055912686901041402460685740427308592660566333728902526094992022334765389039744775201229435049546821932292623857505725434928443860191234591556840221755365403674435899981938522248190184431995808745678976575801014974930038878547276653184082153602972682062921711621654728096446397252088473725560467911533287445837107890661355649986471601522185808311615417196584875241741167243009119976161647255984631998323738190971247565643343559784120182758660378504128787449391127536527466900768546844272288492501516001236661149726064801760084023331945424287384663378502228414719438765157763570926855899718902626910179562596494897283702266167756572025464753147231305335212471279504999824573955773942819653228693479871130754652402669300958957152388403693210440177239530064055244119938138354234959017962575768803521574079516158715273724696338905904496528165968741142086589632704390957183486847711155445136445279073557409615797068681997875361784414658526176605068191557358778894257608630789617388930235414572439801146852336368222088781378857270484972754425901670622458505144940200109816171044521149614218949009762663334592847181189639709698106522869705391772489163985911140242307590787943263497277832910492543528823936629147596556169858779083803438166382183147058601102771422507184731125524923186995327575024622217706268433585898367962234591215128802914735662984286322426717997448511081367682280146577798321687866915808902986764028625022305243485254300629002392873883235815583848234158067835969229203799070176291362930292703204916814300972772583397563350559448030380429515247264259527495642412602744590548167016348928251313070114535875580772433930551474523356833209397627139646988301054335801148901090342149330449138375547101225008437242802880988313566431595690386063833016969984015574180474039661050533848741747595360322135752236725907662809451560513685133347714399778926396762670869722037940739343867785950753318346551264791768903043341418115987508699553067540346912557816629888016612054646518560022746054440073171230711133058592553599221267566118039888266752397029708217498770351804249420470330682629335958455321149331134840086972323497294431974258334109169250272023253796412104327713633214992739414128783450126530700625401305061530639442612923624514930414187262219724275545417280788483774725923675495806448656621395291432959259405636959626179056752580790724848312697623520942241314579313923809851356224750007618982371919596706123350703228486256567661973905385994233877330801135667564534682081382984687805869324840206795210094165028369016229017312825702764497365713909937799916347949967460072225802303995687177025755706255326677295121683850322284572275686146332550391851926201500747443021304270426457885261875032968079248016989007991681055303726875552268897557810185018255979532978030806224822750029517055885233726822981006069482826882060917502498250173266514640740207246408877937626459875451433118575835188725601446892003790014686731137558115545343611489980117005431372761126846582097969909339659986338599682508298010167354303981275946216634319282187283708469804289359619062982338082994240110466685393551923013009593920306992912991769914942482386521148635509609261694198658650315818582714336584260854700744872768223192865970024858007553281466556863607223836920668041650505058625850483110391852825680988397388227180833606496267153500745673949683635590354738333056185174848251911145344240011542079526420267553963885508784026944732574594394721018595405208944790984313851565895917598627048770774143774819450158318729799147544736575695354612421307438687858355389489703617822907258261813293854682604263989077913273344222494880464280287567629559086107553563271572753253118135919485965307047754820316836222614063338612387758929213554927293685093128386632141700618806826616740251415702133838572077864862377218021367382575782715757813941171258582016829205504709598752088171733505017818346460721749475934045419797835347551811305276691997513961736282486127796548184086114866306898128667854908365021620175072484861913084869270984302918336305143538996371821917964768826922023488218045783832510629689870259909726265122023508526110614947145755390636330470928287232930660082063573386071853949267463768968866975907377289414608831481901897736810825646267505786263359001506758990116025107406760008840223313216390556580214083106166018864458784126489442532650567165931112290613422156337127454525390076532283382579445970905606265370814354928791368243276363001850369969884252516022407334892717418747422412796357596194110172755449088783853245017147422466508299771988657376734963193883232197753393543748578179775870641207596341059051749586949899145406978234892122778732362685157702996460891225979913329514138038686770612700253930265259675981599509158003993569848319637439967534226357627854790103494487966207729580297665956236381291640898003448330079832766822474965066443786449155108890069212299740239397490735415590629606308243567875565750193503384621978039123072066252408950610130194783878182722320787134086564954872123450771931987478773739605603752405931080924367739643960237648668102879496942424531973029901914464416574566831942164019508240595435368097419585914938593984310409068699301941342350738116147368939525026041325831143997234270826236537786883676698256348763278040885151193272753955201559444977649259958321794297432142778216464434151630667861767107761003986199874755703577690459603928313192673470969561506378384027343665718235170546052898361916760917338285314554272690392091600201213553906492693840535496607490722867820349315571755310889415539093969238572473798071392122738322351061484777743245859642030087069961829477043553342018178943446612830827722370660774424828434519802011761301142144579362173551788412945935703061551312142708055174489308072158772536716828362923490636124225466822763214388011742138457611494335862480066822978180807532586751658476476530735617675809950476605174442710130489012765875342675672843439197956463925094519878487538657497230508194705193218677085328158192107261295140819962053712505636816676243261277003868016050812654771212745467781042872695264702077030556201113660943742196867684786823890747818644703673280029932997748374475288939711074103451017645704740069566756106079882550959550537426384877707409817030182890233236490182639001717067537299235781800094470755809380108600590404318858701321137420491824840258330968512917201527887842737931521433088333486301040202599594595701187916789814908810186223891014214730960725123990875455427697907428449843044336490134519525243552807238593433570820775855849772847450063227094401375366705287313947663758273206563939237438596522187200375066877908587953740615227951889479016786854642214308552112480581477328051230122420709786427477179170678299384830001524523621132303284982693869519593169587527144515191284185381547766181799386997286171129398558902683396014196566709436972871947585719019874606871576891562665115069113228177061835901370177799219567812733464058489769758790603692102746390507212757680022983059176116882480666975832920920779420334726369607760747929120462355552039505813942896957643929583503664907200231044094623192221074036837104909436110687062220366273474679614611248265059102824209904549493996765739320355208589231974666287335572559632777021541497424171023076043054597794493894545705602231178134520031450028445332009543903061059366075614775010337214841276334646935080897720503599937453786374363535254982987033535721426401435822261098603393734287022427214428828178512102101307245731031986559627805943915907917996047274010034432969344587134781671939513533704813429265885394248296470362819117089467283321998109967755125981540516264351434894387720487648251862258450603959743411357938064624421462841659385520579758740846786353505795102436525163486587653011146331228468020555593999247176680079592424176502543238216366945147132519943361774775564107716429936656297503705443892374258981726990507889651355647260446893055827400451508609125802059703603756620083996270392536164858307566589607039204499693224541562909902643251826867886723252469318147444799729793095912235263775837999843408583159768848020080814790211883287292521591027128958972179693808008439591318346544409642009138536660356058457431310019141300528863945940045881203638656927630907546751349472116602388940058532203347257469735791775225532202241727394792727244957973550611255384529726130998946270829417612236163590001817597723221185708199149998718184103262035339683407496453431688313992950601198403690223671861938355431718387075833949674462338388487665580498054904672718791183616311033408979835853988798728070846817914792158036801502471045821183153879403891585574067826310841068317101269779465577951748839369245210146781068988668434922838181759332481393699738403804021713904598909591100516030004435615901799909104431239399593240108120588117064099901765621475873807564533300815810670768858556580058632382801157565047029227433455601546192187440498487671136791744191763193695368094195944645060133085638172384984070819602570588024489492247340673100614851568862018676815194261967295987798173007454098723291749715449615654585250220693046729306793865518722178806626567446051647565710518606584877689536992178028497137348550104306161875761234328332299047753558677956051660681759283498564526865110911233183099603779523996471936330932000971014318136617826380245491335022176284821629325001169370665313762787413842867392841550105648777300363899004703510851529342026833030154195965349062606761438790272837401354358999737252321855292159949887230146970802724293397657253673698234622343314281687378969159872070014951951914094660005406307000142441197922903587814490036514820198799965137945490888979721618626731665711362252568257173862403926356933998799577978687072584800424146882928019654741635062393828132402540155547109399432643084603789426982582591168208274062899096522229888598008037768826463700119145586066257143485585376820766335859415028253745417994478922625280080442038761488368617391834812455355494480929050363328834267654094601223901168057397726252363795940686529751197532992866865650675822837285195830721284523345535036130792514004424855258887006206350524192110521039478628157667063517183613669240242675241990640506340359455515643170979547328114124259674631332925474079125744089185767443869030980049225635324520470541153243790196760091954654812844443342058863734775744180555347429177828351065003850500338578117358595861657053090429124323219630703509245452698810734110298991210104207697789021688210547040902623718454495015701587708232370309783335621837855822691104484834530977042563321552208012505658201389496254711157608218554036351771157565511124452163653486039632713567761182774856234494627049587360895823028629120761993106762202548040700439849061869807224409761310455496605282533237028545698207481498687296714246692455602710974897012161420140318286544518941510368052048368401808824768999140969489392654290358007185899374462551658347872817469844362144549459544389496616879761944826343350377328200202537041488945114135123841104140048902125189276409995975529882804336929494571294969590586326274898636200808488180053584818559737276237690944376627751204856296248840613446635069598730520455733001436371924371062159095466141044123409815754701713192471374466190066813903932206075279995073681348015847041382562662733644506357409477671582951108903930901012531891242055449948422205205090324336025723067415893793114945825028349944423553401638758121178957883672226063843490823843838371158362461358480349862123260480392114650028878009820114253512572218570647594548330600680137046874777160838623499354654966338736971040139749887913413359431043084775747045568690542474316915031836693168710245671020764539926368347370110640576113582862057082081169137939564625975545509260337901621898357070996470690416452061298079494186775286092461378319618066124796954051292062975355145827396313212102615052756946320457968673014141300484569529767804786191941292367744313481344868976116520960965424104974880443882859739504518500239212581465900106396863304079911300488473095391081397588648049392515803115616765673396423526486720901248924378626199751689870586275612473606023822716186066857200536288158145915688309704950961492857914595056907539154924744010088991065812032479133218827656668326928768462952916141531934408159294156905393310134032408187701549959414370080873360094904609811298027303057548405879936438039394768382592172065001862266754937424633119606160691817492260657107269829678222077042702644884014708280859348132053048534573841183157580672233386828778007225636608368368364757817912864994533583484768303706329408390926101142707325622842842286641900496997676970050713726191675369030456591927767798698903677519728171528997075100680186360474256612043870771704388194291834018713060990768426092091250262498135337279925396080466872295479228372070865953054926096387299885799718301760412096162797749706899966543990079259459191945917116183623652374019251959332267611954404623419863921495746693119488873404997014000954096660219464246043675372661856023369107041468377323146478376289170393292958215762393182730762807622052823667992786482184788007134887846059181465929602531559077305935717614455616795190655367332746666582719699532289195087000512388946306274736242852815366576241071593602767608388852782429339972110828823749447427149887139444847756343171091046634950735996521055819017436802002266243618436945466874355755578334392910219152828765640879866682677997326193127674612803989485444745543065669764503747941542029490180486031519762686539709141427078966316652408167531353995906459784619374158600939847322403798677185988872859335312082814405262604943676333668226620854315232816842400408574873175010904461858674262639751137379113632422074968123828591973644383958952216629163914301612142811413496523113108373771982287443769978728668356649717868416184200100183368686778778653193742462614623354727779231617327506579889774202052739168265862105419806227541482769671895056466128124851657888517236359990670889651922589675949690923789621646020971767139263434596980413096232458022961663742184670318658913334982764698921479929916650645761816604477040753165170801730539600980920048881352769303630956002012799642562085151100732651282396307225671520094697084298808594642233642956465122833893732800211554592183413860615074774201378846612824511698604464197915809523745242307310050382217168942493563297484640361310924422819246503870773894563814815912002122742816280958823960347045756365462959901518298202267035056886431136117285655086184098899088368522296733092835539521075362511469251659076036473424257406051746477412055269214439529767952723434072762063866404171005542791232911415173709763388462895059069681843086516580998907086648013721982970778472365160146575631491456854068052923718538092455310163790361148713930647755243188600040472677139854402416343672126027241013859012568920280323178292806793508784946319453077445710199905058880324613772385124227199464975516815286346166465081561072199380698764293597790404201739208734663370237442007611776382261446720344168121236581342415873646835284026729118341672004204776741904147676609721119914044183189295641752413315635601604087944916977682368600660685006490510388280487919982545343881862853176853605855103179896699593572163255651842771314206660269555335677665929572859146840757322398338323239721649562244277266376464297554369086483699405060697023727735429793338604547325998638845092235552800371688782170791669679271200664410701060768434314503537382820199340317704070440911931327758941706835032120877083365356082606344700077820792321154890297539189171684958860807326746891092201154558692588520259155330754408788497858403566510569565839914340875586914380515555877127880336087947144082245184354110656965564742041389713554097374066112783432812669807538649967741279220456383734984669602070532152606977209998046553781800895871748663098630553832122647051739870329969707945692534086079282044730964668522229926189729526920179781334097899032644946822658721593325750808789369251778939050522427968932940058639830617876035476559663266839165441768615988544160468729814193235296759899780045888381501339060909985401557147257977374524758742103103237282855969446557939272208927086084451418062651989332001074231159762055034499772358935908872504331615854968632252482571130837363406858549900453353692266317823994559376450985631384574480597125353393579354402042706117914858269436643574538439172515699602037887647777840435545141874243612608835607736485192762047076839337019961980520183898609664824847111137497438003710220021066836315929140404816262517916158293941123031541867390699089079731030977037281932632937625433752182129737687556085899112549805005162270227843143993579141313355525898849262419600163547003704028127625730510499873630849391728963045805902203191116270387937472759485243058077106100754032636281921923723003808433200823236901099912423841057919940252165265001247793631017691568028261418354269741714936514763389653658063808302942084470620404561146076901335718194664157278322759070594853699235249525087157420830487474874362315192241239649410512768127581617285430532797257559117696023376289803856554597841205415374292287575799795983246269758439499622678134341523888771990073096073750429223025146044844270315562399522888220464475620741377809525329664203327338983964221560637833643694041409586878840250182506922804327183827479164160036760796525137999201761622687925277388287082362964894797152835305602052484831855222626779121030036585701441143802667698502624230910818893840853957084981939166080167454427819398837921163627066154053367865030657263170011876300585784684237164771618063899447954828642188926676389329321287303939500528769853942232216017262716757008831036487643910272868148940396355924761056405060914410998475036425471559708082373111138544097883576214480736775193690606679826021681086176822741235435821351345153992693216413824467795435684885051348676390794632232776550683659783248626702924140564602929343992198339623056181831094949627946937564899237645601680194824651019875032212471138362161354949755725455209811598223369750100761938775230552123825220149545240486710194305555292644717043331760408953987303397498513740640832369535700622148435190661461792588060992538493452478361358138907580308659325799984147717480003968686673528117085495183602220819854151951267897332231263618996920099662101776884054869468966284491745868719211318520320169573465131671328002979196183300359888412278814263764038955221286207675884222005506935682802575023392222637318062040701832155291910408124239888597609487696068648105707153236515699544371673071668825205383012666623924079507927913157389736124081393466820384566705095517011220092141443159879566094170747927137413808431335748342674835796242864393136261716336541696341193190048558024558399541457059252094867427606086419851724880136396895762233883838100799575240283420002494270997669980348100463818926806801900618848732921430235525024353387267923347206932416531263827247916658041854352490243406122886442270636880460974142090700875145399693579420190557988806781844676673167012518600962228774549114318319278810192728236915802629935024309813199215790479240229452962242872940541290061554255625148687414852183861594585136408130695216346263383816695028804286562714823076781066928347000861928911038096986118384315442207110465592500795626830519334437642215900680771695806585824731069474893707201149973480435586082517458693498704190026612883653953452472462756335678435048277856424787664961254503708756763348081252346074579763138435835315272075716758760619305979950418440601114546204849026243990154197600922620179357455906043357675161632178289545425676091606951664546710484287558883883632841929635943028292058665161852457216315760767422025892798233993362494688349899858017102670936366172826815324965103856791373964740347789351787317042296443497873140392598027318199836440493599593111019288939460426914933055946643233832422499613297665588324897531441853424676434192118871679355595879579057177205575506260879671269510252706461256315473502062681968353544345226246993753211927238095198012292045293350189523143587976371490268450130506886981975448254780044117560617922370261323439380416688170231409780461836977580793290858825618234775568360249465844854350154902977217589093575180836704753488254516497416436763400531550479317537182380164382527237203913873671769026140191141669112865593164471716511530563581701918769391218933643744909192653355598692453341386310193259729179124132395250784964703345473303664504831097420289019950895746338171332082942065396166567339031415023356684886121078783002936984216189426652652374147142043818519066169350458308224896696048443208750863656170351454882589700377051799048516791017979660246854994450054044780926295931840281344542564828837986685426697015501636686411097445846911673078108045806785062004320599654734954558458824959859368005669339934767251342420545908891451007447174643565413071895556466090483003861644002270985364174534698196130987040752123543196872036170747025357648127082798767480898495017411302253833136245436402959916550443300635446125982042809823883874855275425808754979720380756082191820966644398880529828360554240006342112989369914677410084213248746809536881009128147238124431541981427126464891644870382448472277970010644754577399889820620388541600413723731896498742561136822815484849781930555892608427701010682605443276713871204342615183888451181450615056557615087549098544619522493880352921687649538213701376676606477391110205788009197536302565841114626575876150519614838395516333162105358240586229579801290929160615292532734947393024385666799797384190368756082524257347026959011029506664726592742014567709624144089493280776263788790481718595714907600098423528707142709995185723158708643276552459628696586578377731301919801759576301461207591991673186227353434785253885008660399698655537133839731249221089205612707902529205292858798221929768034078344909703126744102184777083651346887251329957843756681764027809303284138767065740235987849306146327819986789893549240126247689203698505927191644896080993067021484283200811287362377344299600033633187486711310980868918562663768853890336031219962504130782183914332587260303042567848558968639035856806607910834242569631611012414691620110128617537561930035736098357495239888750413355789531623366800532070995333271302100308514207190693920584620458489917353380441206324533032596119552462204663821988637546585250544892849225854084977008287714020429787386254673719391084092545332905359460635823320912698215745073204463085899448473245079146396156427092365782444175228630954731748442887825892839375014494239740869998358403813736761728336275498725115066033442358866586534664530907255910888680119187893823982578404608764114851511055802326569603594985983952893249093721107365537423382650348957662058978952500571677653519589977169281190118174588205908791389517343547592815936545154340417003158067373505169760465966565114021173652785337355028059286127595598920593168437201880105279518826017897535609725674940426354514434909701414819801176682299096978775400072135703032988071145736976371560146174359343596526001148336997678403733366723344754215058700462040183505096485706555923815634288453157003978968176087198842644725760872016411122677827475830626365605027492883740460720798112178125972119143781090953031435940956435018215553422741016793353921065403327163833128463257866829523544457631407248707272214842879791354696831347115908968674449567462095679485532416693176234155661513536869362953067740661560678114913439619524515712623633988827572527811369377128939369944134115731070543294760757666270842879669094767725722567908415066876710256336620035073019124033899572951218934744232971478166829075007190722699732530512616405719417101798212628461094032255498371993021898457163951471895230165130335541185682599774869184854234920172338421329474448005655121268683869490053472754132131923850340652457078274768531381972377420597805093599519954829989249823535491301112363005802319209898260020321514960418160533445647293507139724371828908954644932349491840528615348298112356442161827825420412915332824682771483588121279705478136388638629131085610840812081827210376701093900408442573319603137046254219640364145517142880365379880252554738086900217517153312927926632896040772794602536491058691442008416707890544034928655684704525486000551278249434070486146975310001074067526261738353370361143126860203826873056075655868418606280950613596425621128030491274623924802885339100241187403572681418073297365455273032832336853437725863510602485600345612057019905601920648303126546969174157054620029274250866507065352584968778422373025552679908252743757889122733943417851264052079236130982124827800778979439715202790392002005563441400459452336567309395478645462527354669378580293516514910097348302235586453518188692638824289691629659446316656895863269873574087556218660416377603871205090746919853609818053662948803706796444240632633220984404125016245564536948782847595969608463651328242673940317753321707087143890885236225305747951026288586105605827599958559787313942388791773544863093025627252267217631963418076731565717607504428079627374130606040004389365304107795264650596435232387515407964750268183438328223775004652006366777478086138906563679325516508268269379857745121851554196226035479847216279032626996562260403339539734321575615570422395538004795924341238283029085861714642606868645828172359499085715425777413650193580272328088910288424642867211980804097078561457357923625087635250143169501408708653586765807325918901633878601323280716187196551962712229897666865308075311753396761732395498389086968676020913588499606732472434454766894455294714247566977707847343826440376069710656126775542503566243735416847205476643595720435570059008427113296090058438438514433058581052936789708810867650467740190029075634041238341146783619800675852965532039853765172277909723621016837172708646747526021148930826285920160031510749929616822155328823166697868418394284251560394875228090744153193559394438532483234762096041496342935927011266948332859485836210752785267529656976069388349221303452021542503587321238267347909630605547572872144855232226150966084410916932222010558758620807401422908556856045302184714388867724921137692061652971373658437921331544905291753265479286816333191010307503153644170973650744642264971637616156909911935679830595178058627466734220868157917390196255272048891908749726492442940850265808252893359925619600756424551328059832174918865771300159599117372869133427311774197385699917938820136077994119460781029049055832223760326306253415336919584172558193198855008680093082878282121608579336347197913816342016158162152818655171292323152557339219012706606916398611127848140254167974445412042134007962301900772527085969960222213042916704113323009552745970523186425704717094393615377202536674419986995221089084633625977338252570689070716535843997881989452170595455929667885305765945591933721658018327996969741722687488074183387092531244270178797960806055051682236336984907833973060069428021709471651839322362427398331839495191248557147367241372108369700355353465585561144484997439051991592287515035226304494774731627309729597843574502373619015128943109197638509755958343140380073559195589049895256005268550654748409871556934226138125985045219330433648771029132705824434783098980009770727694627688485987545141820580250242820661824077267558307958860151540762196565567446862322572091770048577792907279093562004399564038540641502227544511161358743192392633629941679555867485560605487876839834173721024703027581013992389692520460814496100014949952092449208298473236099520553012189198211128915383606707672743075768615857008721197527345158408846713702659900361558150063383782678758164773179606633697111928690842364620168031242755575976381990242005712167934754730866664459290517414721149696300150670244160535426760807552939569292856905457101461966544060821881538925834109705420059834474941567302413225826660809681853387066092320096248332148994983521849620394912151154922960619596862088187814584727086191225910705046692815188769421254663372397419286037703930131863947643121354970451414606956762652579529976684575859504772872805784436078986430414930947990658464172246119633704854895390257965011620574013687791987266740598949247388983904403132855856950380217538436075817588693669407954447244539862442396805821672626388321592382761235707723421868365700665259322247463946105781025953014986568417409820208718022965039559352014955639191061554903090324817893118452713986222036635332711550294973687687317730705782502305534154683153352329588781875584825352443167921955029952800811055984557813572096520909577676937921763393368621819270941141833853274117024668392773423800669095723202300697636170045979961322760059897689985598109500354877865492147015700416456653867661618403347112893513468009272903513531145204827936116817741683607828663696120164577438798728393041085865619615668067999367769707848914354476694699009147976908042651380133840005650702712711175443792160233504226737734938245985894364988912446479485498848986063602858207074404397535632989294542531469468846350494873386984634780991919360363798224117796175943845363803828574872679291019175991880486754447228986267591960067463568428219462720753848090856397133697339148863438004193149908797059796641594728699569912119727261095518309191202735816499879795069187936327110363266669462769733180535759526727218116003174992175765443731820449194652144967232934765462312873285492651940610844883304234197891489474290803881865760186637279641107263461279895361090530672601908819828553951373518068925236384817494782161405325033679957486575902299837561080177943915071961676516598991065561994048503066797878599840380890281570913211550391632871818502064644283966876899906822450517635159010654980321189345331772074307071714450927887427821059441106510195107782065422592636251868353881532829200051625506216305253271388992166825895233225826246048250306551553508584224026686590904308591891767875249074268587645455095647282135782634796561056999894795846508405181603718328378259571145023965195107078326611979504500030863419633661971048104834705460272242506619058054372412078592746682548288823798346461018312757046292571678835387508859728365304413475221965403371658889655590022444474713575311278792890915972064352133008821708251088186850126344093511757499186637695627672654061320526566044142813957981623395085585774015700254064369704360085932598698616207268366768621294463203486467312133697730544523681357499990126051174457791934918909160687721894258554553215853429199043423998960675500521427349622652259916865227981533030350299699724677092340891700854682760216687387157735653472876828720336983660557013548107271589737514181080378457744319227283519849273702150992082735055274939685064629312781491735750714411990825286939978987261758390597528694889332825380402701944514528591648177869873021584415224985568100388575309675171262939733583172421329840114715050994120965567397567362721124601589685763256295178156435115334010975498949984274471668567533483388630565392298225785805037754182282915151153147412121246771531318810934654527133958951213052485059010944370834115659180799960819220390721998595564255541340315717693644945877695660809825017306995754935790104143119475317756016881402603986255050013965879786257278697223741235122630636721624965674478961132825821992341724260203138912012254078713367177451126732398020199229193188938399754251145917832263984906047066883566257705521055864618239974148160057222773754025478776557419560657456345088169698496540738358895018274748274488598925320675216122453374225345700293887698344156431814735521094057092770534685385803137885082828197309295355411546001875740660199525022616115533461424420251142696916147459673423214166225915680914717153534980170442242797834504809164623986135637720490469730853240090418224918434765248766783736100000391483293610087187669672541491230695034040055747293191730385987057147086251693988428180976599566058877863612173854349711791801075091211792749415241721355240783931157053927758598762603714832606423365746695731136941820652538504728135385811220343754008781881938537081095088864008608733215764195845714963234006599821133207582325799037797968096048331029686475727690073982416396769655785200292404990646173903271530620579738198203225025900526253365931671166570685049480023633045431076701703731260224051317234608784503006143833220632412030233475604494720391626916830121963603702670577235825060633395435702417409043108823102342878550014018985988604004687513078065727682800001730998751808066927490635748927452150480104930265926542244630192120606617209072314347027437727447205908409725500790209387882394771374000162962521387248414554586023256783587112825354215229333757112278430101591593988200113879419155355907717931510921076743032676111063291242240183399098324165965168317333734806539694834822602592077142307992284366949849283486659068715594542071625077006269149130727383096890657787144781185049229758134295684132705378405209327307887838017817085223507828867618013689265569152453835754346788902953745847032452975832131022394995990499994194415536807273826456904850295913057345115340610222747088178628362071585457157080127113096272446800902024086577922238781075202953430106736002312289359918441365672906842137065820762667377164467327809618473909882341616297504558608367467046919534549918678294821961413085304244670738671470066652043660110455140568178707357336544709624888296242373535443502455817882384929440736115167312872970127860980240400215946419043988162698243959386345721421585355151888446077378914271038965472611656372950622796092837019512912151102756645585189159077612939319515169135466864746563224636001735987836966749582000488153509795334119405915985095013795172348283498278040778942981347393407039251118385868730014176909369820063209529443868807283468861109755281622684381066673634981122570115658158344074152163735373390356190814532600162610091880121783079575115998845402424176627106451350709482772798912493198353189804476091645323665061327329514042879199221562307863307428769733965026311755233062087469842363377628442461254908095318963570912979562462309228610587744941649974555532714381237443915655090667990342693424732816742144461858722605688968688255388640980406740030547534731859350568846203381051150472870835643504693148103221267038135647121354053522855095997738936302380660233884928566768547808661600163860531542300393405799342008511824222717855039777869443689095084159773079911508748771776069191143783700641796507948027235859428603639177264336839972855223308381995261820702401984518087800041546508257353270052019790589404908545495414720777381507530544446778791443391617504553553741598591226236403435995687444609281177386748068332912917164295787733454080345135595467136295037451582201807042295539957360153126077952994035156301864924241501571004704540975400828447337903310720295503110538536241702443490281457227776895331051988578577694870074651555276889299771462220036027289586317723636327819252880381334340809538282703211283062860154173053615151617115864422864917698886891392866286016612432712882147578387226732007720588845152051836285443053016579458393064000030483766462805726840442910656186253477916554189273715166543651555193156099943922657177262175112517466517015089155939830681990068415604517651630338531699783753046687281510599540558254910246003084320554938879265904206724546552103826682714123236651438643858533813715624550979609812045729923961368709758901912494003205753322578805249571180239561473041378714844653725871284733069002086633704464308100227229941190740257442824741541786901317175100862828823633226604963590449980677443125949434620739495960160137206860004753735748414873375903648699060771760665396069725880263174703181123141700191154791648139496351843230189187117182221679526676190561585966149910934507711466512508744671540951358769105847899280399993735433746199424940187567114044531760437066097155123678256880819814168846174372182877914758435035839768247870123437829826422769941709866945538613144005597597780042972317193575083284552599450842842890598363205840819528368721760452012773771144685778198290647889694968497324480120239847482281614843723761876214430567177647776201890872118186564209070052117991132302643900715120068243712421722761320406171122136698382120402573786797273157556208514201674686756035712751507241887295891191735508483583067098016216581361018486880626966129262381246565299481972550746366037195124433160291059194271826812154761654384508925908779758701028474537424892624915842554938631712824722501997911015197628252203639619902829234055169435432638775516150332790681941477040164673705284024335217538611618783252724651302778173810527563182771651526886623374327236080755346865705235787980237664046470970166551967877602350616605535330632432410964804407303832393652849636375558894651962078644366935311234688982342447696347508591420238615218447636061227103992165389496265536778691189509392724030561986572167024336984680427701300561318833024863151987709275155751778170489348747994558199999900744244827562652403159061361435774409455629304886837918889489437738318776204126158732134999864413234913160937500350434290517386358680490077267129789136803835774657497081246220709414371170275243122687913550227694189752110064823179678968154140568839102222240358533609522537019714551301450733628486759562043127722256572735050887779760831298172322692477801846260183022762241281847789237364070704813843515372728385587963288520141891814809453377337816249214940152327431638070163719762034673689760493326719212073963664472488128136847481858132770759950240170990167491924042435087024948156321562383338321730392755916612890297954873969472315714286014401046938462647353483751213112533574916572780046523022972257897689029779813551711311545176820188594917423562574960111927366079149772921110840064025903837630270975760801244056786523043548765224952847600086058594120376047137580086301972044009067607327083106655424681451179648462835298110649514309422765626724920737643446657387213989455912829768348096971364537887587225413174717039498015109036350989088793062380380687434293464070817955098798682006703319068258914990931489211922535292079991531625254859205089542669433663091408629486767370905671548441158840943053276133078424453944263285024562876395931515765963212258077615914379673499455695886558018561560819611527695730470951242501296833919998381313271999110217066991169687887455820395137327046444866996777458894375005141583083063777326045384592946118774146443729872138746296157065646772182759170855016575521214354914411115308932840134565895381667471386645191625560456063404772474805043274505552294232834776600003053468445679254088881827438053614005222095760579774704103379981997523924343708608544365422206411169508266161252231189347784908589511720712657272031340307181087066654337439416122941536677986566503854325676520409861223966771894537323259932971926300990635530086128154882749391415895500958053067381064779580839449035413208959311373659155795657217326683214413995290818032456905746093294801575987541782633614931087619562576640903166314078080433755425942010357152375879652420528421427651961552110504164666397555980651407290031972815493209580857598257931291503435766894789490999140367742218327831198599518838736743873048841342848781791573315707246350363417187801573743436722887581578587790923608438476787550678231273050142470756899696875591310627373749957671778344423133848920606717389031231243580025644678203708160700577412372490830090297110798049306518611534738549850293550959231665578913799744557364403564899957104337330149184891770668486195679416311398228563627874121569034019840437553658963586180351815694131403867932481804686570136680371899734268491711696715688566051574292183862814303549905115383100156140758520055116046746668301608126968003830251834736716426041448780586577311368649408999801437726387011619396103722971561595765003708811027688110266389611971959542142037635293020368763867355137545989334654327227556110719936034861531899039403575935807873294912642552591834202683398861071858869374772326208691905358400581447626012222747690241515845733059858233776790567125662449233901974693266315729960791849279927016274053691168018856873285001095306672805221731391410159865275665122535145744856022536348246212063415932890594391665735203850613418988699973628567718236895243380849097559902528109463588082862564370037993972674945944220672468079775127634327678778197341556812498833579002668707366737890703646776370172929973044903030921695149157779416474767631119199416681810531698373811731683628856034456409698997566629863935477594488633610470827596267654019559999233526938571186010763008848422207532249135144550321736460452400790110763232439463796998045078923654015416471221081502913798302518130537036790761893625759226295459082241374852285068985889594209172656525891410207426790742491925879417972787790965298455142177109483912168403829049025598042576184265688272522432026795454024138993630619752048048120821431159982439820140786017328334038230445406606601612825523091381363387031447793358800342923661277556390559957139993837168890495186032063799361754685610830140906681933031703166005913880702745042750100115304119845708510386608415180020963101612739151604424153049809538219970047823837040691678351704557802110774614562374065547888064557064088329625071284552353713762221669139018739030704986880459161922861848477604072342642852269742927897947252230938191761080037384235505031557467264942393226668135997142933026037249271374898968681016159059059340498340266001525131479152203908462930261916193172243506389201361531935270256894509121089814696235203472482791539402261594829191905171986270114292292002108968170979285211641152554392213093484034428212201259981146411515394236022544827624296704998750748752487441792110766848701823793348058807462290359085705674402472161143582535430391381934543884708439010455915051648146326693617048612143303877870297842716281396611789657934069659674953047229829836134961035684137277262380362248833669127604715208050537099907128075940622303814531705516587958382782124565742544688868006838926363103815246752050042908459312868977522985731867650812215507512120721234203321620049632790479626774849677623166163471724721013851881635545352615027577254244847372103447547571703909477224041544027689906555540354723129204228304738364081269510229124333692426306616886120684545308939445868107220858173585475078796258682640299146009186500904523307351234188544581998460728547342854276149895611282312048974548096788228287240647801920046450344099535395109980698335841264349288959370842341233042702549577838567416682805292387925977122631527403760507226161154695078859423983415820609155950662367497625004265949146211617603996336635448507373437813761353777165683855675288457560655299823949902848812755331382610198723947197523477592170658571669238432522746727794124742730397895463315079344567254987567705883770769777065818816007297625357462028102240319948839659538093901582726214553550859679976209373995828977403549077864854850051433688809710016816823894933218827686181416798100485704486394523170878018283496599998060643657152599010759612833963319423304110311660281873868906807177505522669559088133942182093008158730453957976110154764234771188806220312112557480056661642307204570216035340591692526002083370231589678646657403103136062728677430090680423167033272197743206238069435561789930687292800055059446603287775958561467034505980463978649706547710999967565893536881193122678923894554283868354496830544396501460087573168788485844964375153887219669547898363844058085189346621758416014065309094897793541370551635458226084543299385674987739430125655203620626592350499272789095986520821642495188581010983666959365753322267769429578071366156659391018415765253070861434639014059351841390225364377056490466211102656840808682858430175967787008702607227301379978480126981046249794257277010826906051136724334805089038920178005814749534362125124768815470174245288345587643132540304422045746300339932760398031039771687034986651547485509548644134496302901152161973241244838523133033778937803372401786918256216044957748255649966938187005175711939359347574233575108010813962375463962540782150079069330464323707613457567557825476712862174151800778563154055886084832855677455214372276305919726527685380721387580345295684200382829355087453992859443918211165986904374899930234588877535817927442416638306004398861624553587317352227594160816053678730998598336717102308886156403243364265426260656256402111896144382022296311098748474956482149605040366961692292991818394746785502162521239093634908031340729492508069631585346667175843717976426493602808158889203592184000677195965607707425177425409859295722106276696597067347168887069803445282737393897433246407427544087976701078067082507004342823705011971530748803665326250778509678516083893405548535551125011772625388940290477379541083239220373410473867962908949000736747898361417690955185174636925693312737549154337300146217836299507788027142416545597495265890254602075511128544169274295528089984177071157718028977508629247582600412672732696056415232601829848418841032765885641863330058784940232530342750158849725197064564521012858035054955719856881810880054081634846269381827363942471221810843225692750285940751046751470752055714069362543854314800129406976681382919845244124744301512004218309178434133483919881457100282567771437014700359426255269195061883992129162372657684942045072384427412085318977328031786645775212340635106381495171123117910082994875127441993175365530573037579810346117854104860307185504117755775298248946878606939099312884689842636365228579050174905109410841283958296714235331724314347691343812210563197757969189945171558115204031971611448630066735183044453400119154170079125066741451851793881654122754100933296307118677283563165757195683086031734316551958372184976894479415209564029535324676876462783976887384610099352320262322064602609321858923722927759890229710692511435412557564875919501103027615192353179243709789631269546604188306189579419673629348358424738374490157805182173739945231064323297824005643425360360719490339615068003857805110251090329084343512885826059862220506038374350291876038292858590873350352300786275845991979276335435295999678525940615648204679061939777104798764415771203097573149322630320983422576607722897224059896043757700137062541233035591758003746239085536775700419294201398534846517190475950812602160546255373747725703161438045231009188634635921814033670781312757522370674534148846501178177130393263290907569265510380219566717180619842917370330162035928130014926157143739742173466591248124334117020201013880039567470496028700407669708713200701572711993453928087405620161234823986513191958770914484805418291839516326609603179370801723242140461558328507036241084978844616780261211456855262062678355922315497091426801931390320911175825608970972307844718094490163666911903080155246699680026230297292162122592457652869154789878117631158327844297943114112626052822360883508051763903639377206387393594426243543389250822588112001284052869422406710216442459694395387833249889663245437767013262144535401604848055720877744752137738330262910977412572426884126176141440666721204256335446522861080900634176361261640160364942564723877836536819854911166718234110178037018540347679424569155515358857781054306347330467001126551639062378896902676672083294899113663348219576854551101086500378857758859229918765289942948759935812687492802231336514846452408369378043814819927214758037906493451930478866080586270772941536863889189972611123482846535680799510200164856799498686614935428299834938045374287456749763687156414547434558471361672809004675748242836036423561785308075521425881194879080772026176025036170504275818307536646703944331440403230263996267756542075878384405035335470797333805682728626242077080011339894654510523124959129941206071425985494223091376343882513807644818637600359305576745897204951144942360078505287481198318146969787359650044289153217773465493299288998031381787475156488945226633986795515354983719828832377562262197379190704109014074660737810968834146824836151770388919006180188238869185110916494381859815402134872387037683526561921922640801937536620472265695017692006778038122175851299605571729411938810700393918164239765212761410831157888507800346865056847523075110534871067904202315915591931616345151660646014857757855419982576135429022135806917547378939263253656063263916819385427952790603851221518864737713854821019185853401146480665077443056357553150621285555302226206385510157058977276957520955826526079128373667285554821150575089304444162040696272275052097777666175159293364897114408492462236791000448986727761341255031576280317595741577000831419731324324392238912571662912615146270652298204765314623605447026093598246105537427910540276640729636665931654533203314638563515075998404873492925499029912139432711048350553904896025368264096254329569409405451375024908267407877400330674410703466722980599058882983599533559250537013195359956693998672412165946443032574397980255402177530423096977477455723894323676860872643750918713411335660340496668629377289745884359554858756755097500723174686053502080340172060580137528901674809178497074957267979215995656994330763378638269904547394167844539068104614942102789511380013425910229504140125222392816969234216960564363886770559293346724224865436072048539305519446313695055823855889870780248020488048841752197399136549382984910809928558881290137649770922429299497085140106199224676821212624632931562012382060754518086499126982893778859173724932890745814267121644449686934648142354849294003661708289593878801226459983253828048577320504173825656916278216157923188064740555950383220152986361255868748007959514149370785952789303718717404516672016240989453546667922459895947630364126281364420447399531475735341779306905193461653697200042617387602015984795746513252386645121284738120151807153067770670681982026667530662334003659869867662464587964893908268283315409553069566158974412831092247231213949005309352379966730072176132645891429966923955542320415615396155879600070621595779219349797181650577700769675741557156858442003537394594314617428463967244703744652360183365515349900692631415610015086361532131164756073500974701963499365949735401541837905067482712366867391214793138507298260330484788319926086329947340268095440480837904970730066999667341893247695971467213286616475635156732642835366160058627853779799224931038029833932385992430467797065891334502151792884040514350314349105137923814366263167380336494433835894876514865526444532918813508110780063843009214732293040994132134238848851922265689591772309766194997739144234146674294927314989833938583709236746735379943918461652495957760915460706394875127326055094816450481681866269674539015831453860014639971908326229087340473411365341466408926875868494692773285547874181468380770889051220374257717810256467197625997673391965308792968039269904798192485180463595208162375374780585751696099307843179419882984354311312983704051287995019851992410857830439016042436511304118020495248666533114533846517458658936394737268615895297093590939390719496460911989146465126302399032124168112755925649297932760484766672659596103543593295428858761031327280621386993371847804058684432970598917865648603810449394134856482747275632325136725287616332838117497895120093741765445915603620188335278923688069402441100856144544388998331273644904680476566739756942364326384561604363094629946626369609886067683865206049539912763484249265630110158475081319707733418285656081804579066077208514005963634578379094993866706913738044249550479740542633730385343438345622582149275816528196658707203435112085206988441594614442996677709230922516206802765248973024736179818856113728690481978693101429801039130550299666034776366023503866054892244406871902948322572345721520244358952660003582193030314561985419323134858171668434290690644499595527563783052645945890938391731930034921696417290331204228188248735306796636734232093724555323577130358562628438906237508308076879265982012784714394991527102835818602540596227864073762108864504338373830341890170129739478692228100566409295299554303734872174737523942765553305058149303459133518282061708251985006077110161751176437740466269722789938109360874331319967911876839103452516224055348339594245847624826421649363781924153723133441832102881552583534012147881769436024217873119036620460990323653310895946455150045778588869329160220866168997910876053798841417684927573288985259323440750662638453233504352327387537500887988000131750313066155715531789456368054577215192910226623671470219628074734264934704190415236294201900415269062452205090336804890701399486989005543854610293169705003692761884142265698644788754352947073532858332210114953439173712306602668508706439995435525576236655999948323167101900086342956444883499272544623574412794178045787701839800573035171587689361653982469408027651999790421043592949210464663752271632654885074995394284510022423238412166941830604458743712269975836771011976741383026365655552845256198912298660386046807503922730112523768252277440633420833588984417149183668694609513814227877430524900204508624361249314115528463676649140202238417548538593433832128822598513979653189848558334123039712926684534081328436940448361846328343745084025594852834230057394533516000606254379343359582474717189141955843182842374186797630840391735375891071800390535896970505520797340863925288795930326754547203758072464114082347261740201891585733750159341120713995290558445625390021566642575967670280060125803835641243984716307717536523437101150730399275862550383364317848358009646609848658048915923831246200077975328109337823546609793607116476616243388822801412367165292998945231047016384983691250853104598534127591435001324214558631468072095659827282967873030703089493369618806693113288524893557893380164958228920561704646996812925567292202864759175729979309531500864683890825266433759249582618746905524927230134238919554825899135107848173148405625858777176665364414846003589534132574497760785037249541376844660040609098464039631179787844905189114952773597929223999033942345414417698088200771745526104862713697438140002699003261952159044388155315680840001192287320200487217547375947685951638914041233614547796569453602875155702148705975457485783495728665358713415411826897331453073052665237025603241418000744902409888282194917604027705852426928410282458667877943164737354353023782583746324157548092481104180432813692636833297191021255704487096172523823089222579613998372440025246386460499819727528269254409397530310713504750522681304784591679787868870155649385956002328282543126830226816681981607565326918396983963219546827500811045584866124700713211066017357926040182309770401023172477868575618905564378092234326266894092659108128469271542346119101438903785985544689777548554251244967288906611514792174924258509525223541998942104939063217890044679045266204068515778425013038833589774364180314940184738458528661632456930457073701367890451133765100688867762530810963715678370871802391466284874754510651314598029992071619091864907405389528322681114941070308423993337179921485598973850114669424452527880671422928758965870370549909895461334395495225768318495046849952528636289818687987874708865873861021904339677343812495190406199631669070883086381895121833746323023381735903933428035089416028711715811289097907905743622377586309174662136933691730962136319832927616254027731789048523225330896495928724481418245793683699413832327601271725687477788169213948500312917386411829808830008011942093229271345291236828163937908338762307675759416176530634030583848620664316899660525430730578256434613824629230279920186849075340238884211484681814158108549251421742695908426896172033253898454781369675091895229539778072090169139498507390174305638479258120092513646145393079092065770657762046544190572965105781806966755215967075126810893904760801611056710707792374153373220998253054358827717699769946481154500585638599872277891547263187735328194252865921486444464394113760589298340260317427268745007304525923043280332794615137940895484659398543069467007906983437998226446945017503291197568782683468098333427150716035229988744595331293940669212625639962525871252807592724650346535965511506819065901514460783667807357233897654791100305021615007969000928260776502759104174965234526093843644148039289548655166831566633743331591779096646278392922156230947370312212554533032902063214388442494317721556616543509365643697846646507613492046418364185776569563870632285547781833151776960633758510856628047062310081047200286086001401930812566601066086022280430561728061895697485193834615396831624128339684618790975248857177102622921518666193339317555089799767014379782399636673537534326526920977276188968127348552164649041697408953219836542920688797766013964430507450268923086943766770682642173118116222111071569161067039104335318743723982601393230126827623386488492563389445715400645084908947078036149067975528258966860876517846669508198186056279225064010210371386164441560537423368137335356160828606396643288832511763785050043333696992436486524602838648458167146982119994831554651511553084882889999412694925982411298614214091570946834082205907847673298047942775291600476162159238447143453122765342962429567617434409604711965673535853170313887766870826206706580404978348912894347769895632641055519891618459790444376831477749890662027716930549792530200963762692362424701280915218904807715429363543905184890197604470449182684289634450594102266530132444066697063874586003243681357069116407410220864763460279073033680603277016670370798101901478998883179720720834107156033303447185569153712349642885481142710045155442377831476923912467290510630424359187250063366943151906228128774212359391541259384824290410218493624817734148325863139839805574946991488956167561705423234320185079203492739247124067567880426007896543849871256753201750963376943271473015717886558042997351521816573569173556928958775097954310334012313208725187462951256300707238264518296172801903608764227229978216869604825983597296640118383104464340016130545642593704688907105293913424618377859838447678386829126172528228513065448057216545555105282520438378837689128419375354220607224998420755146835146935168808900906645333776179606556758357731848794157172345352876144422868316456894510211736464203615795235375143817797850991824127119313391532055887750382343947517307806785738712325005671138094900704203275137265904055099574748443169718696011509407968136595947911923096696906458896689880514164899302485940853478104272794530260423429790941136367194033071060522569576937286008113500286885417068403364581243951645149510627849439639292429627853989415249756072352956280787597454713492079362112728818103933104638134296824761512560356530591113983164734214181258665373005108439035326615766748272483306737377635901730545029150988210919305374764794364565675429639932078999204294703322059803516839443944097773831964425685810398682384926706116964385551648901904952401014252536418116936514245517874096045214997681785290782610899190682727228954257803345009520769854391789983982253236735821017142860617918442569516915103152745785714309950826646392071938831223191243639864783845956596671526946766846920021779435423879873914826709010436413907106414271357737406284642031898415053080128145633248648500078190423363650543585133913962504671574908181735929143207144917415684695112835886287263102281756914245719600221232695963412916562722560576205805708236018665449708788024942361455011650086935243283031847599913115409159316127692585961435847603867991648660595055966653412801770436575427141487400264608373929473811754885966183596046389697071229863956158825906229268818881851126277351173170474951801355666286145362160074541160932716949932870109078527733785978155355227599451736211734971459760615689870415898047093959818922359224239463782210502626638313880275789745468457647775461410114330429154248954691777304567040706574589880405481631452322108855818568633066697987391635330689450680229629281596513666023705591789485088845896640682508602591324821918793326069948708378773111704617781562404719334007238694267668884437223518974661532789338272394541175944241931523374294218448236993138574627631762766684542860299129137928936063183969595041882374628479331529777771293143992918919652948785794869581564186435345813043039074141202670391760410086144881169565352504094530827689913638037584879555405713976034918078393961361580086549957993282812400667392122446668337280598733679192149453906666702599765884700078167407818042945032200973431598728893325069635317037295396069787868878471614482666104274263148311983429160494953094286202753468070369242618628768825065631214170039272759442668864883706473473573998409720594227066086192504954439174742390230123575904261201429181805848233725202738447968494286081339573170262471488401216898354812203009103276560146217819655397153089693648368627558645920227527138445049792839712910260428401991334220728407716029394041534645113586840014761710614156446816130240018920735067140628535515869725392610375292170556647552821915419397237000106482075609261727419888242935194051200649375333653990677084831040930727056583832801555054610433041046245079425507656824197516759078875850160759679254276055222362898210539198532514553612826114473052476267157061428146720858191615051253182160857237667814663247885593494178932098292856416181140276252119357820306234450487523700964775088149554622371003787926844790802236779946832483694550404767470958094178553010459219246702251129185011273441888319075686421422598323740806292740482646864135885523066918609695673799645675080885402259440751657900806935947351640492051203008389094361629532044244108641989819682429319867384946368096012836768139533444795030269387168068199382534363996361924405895010113375620310325751571398730531675794391822177733129061158177886548399227151280276405444544152425728052879476986133083903747122471757522379610234555037212849265603588679720625347552666061088993826541839310659798424209218894627500122271182384238615110619811093856877447740561301189058317025097115318135888690314651563065085501038638622937203157436290136467967506374555868616245210470055165761452324747980793823422637938023369327943573894728038866997057121649194032935630400609414348770655708663975569890598108232654288789978729416835117001653535966620477495891672733200223569185574287816978352553896265720798836478584007751829369222289581137532822924823552812698203355091947270251651360230651642748023099337185335260519788691026679191731221036543451195778029302754866208615765692747685516081775157417742138973376271710934182582082704861435365931908062426422356008426520474382438470642522041923805280840576955425282937818779430622237248530430491514522576687178890566940454307541689532726342887545946463893249806959016356963775900994777347325898084132490585202825035049550191927366225983483945227047485754263138541170673594780946641647300581928112998166811233424767122069407332718072861764040192625713393040588436633171720806804471125878641472472489455163452650719326062025372347433134510848614870439931701886218860833127828778825991135014718696243567817032949338324175027960960844287699047032428854763111506334052551759644586513883817453262335879787845567276005822466165012720921024877008374420683512917564780031851660204596008802734986438720567750702151165410031102500593204412775306673201316191222683871084699520581006817129935972831151357905683287470031596948204962112711635652445305689030142098396592148126651134541658958083464926639194743361713697547692268443267106531885334801568069737856891008219829084705920702979423793990802353383214198357932062291694999010196354681682964618960280513756060578811046855659329085808296501010001988255601708032438863037814215393793431377457451338515370469921131039361672006124715619550424400331994308652464529005438290161125480968520678913592012136322815247741865478116936898515428987861927513717496097428490363930875437986160623270639417021515431749810005688948979699604628024859761648640504718324065716959180806400699791649469586329889743809230583039163422183656317551967409690116489898603794024351459471314858800794332096775047587827773126396689709897458163500566632096512029848746754451409376712208221029677513895802754853995064148792008434678183855877653041178471540613815146845598792593926779030631548734077436353881883928464379017130097626155790323849258130307144267170020269288214048289207427445474929303692730827263164665963044714585134064691332950565578275095455057177400043570897863487311565512830592857674576228235632216680425705276594227561472773961667963455263051443734451893883018109442490053714018046239250135577354260514396825399964753618550058823047482380907403349045428876999601648304443049511400678638563599872389014052721846442063155491242039675220313829835609184659561715502881516149142038498857452942735613909703227295203931595250410768381732794590912161969764818993756957788001470209883269255991150171992921976825154035829348793350387554677423900385715046245499469206595169390285789755941300662672068213528767893910809283946488962199568971770060944059410742447840772699979168771780113834534803857826464045556062832613603184192258203479802816741835749521981486345073344900717583057760927578657420153895722839532905042928409058621891961811953627315398154061268257472876861156114944928528219219690429509927067738670619475649255941786206739211802479460525111966054522553196853513151384720052675916182825395448828970177591525495520721460664417252559415274606821804875767141027533622842615192591306121934781202716554469891005491200917091501101196838872746722176214092716729704453471433459891752147872086616566121302438245651567160947562723355092833358825544684856009203937379668242063995054594617547294181316843929852715282721587009634246823437637992519097507584961550952835636910615411001719853439927320481491332697773590799988782848906522733214404508379683890037202253971031515812974422714706961043975994629820698152705602413924712586710924262944506219426211469675530552321971323722692654348300158783993780407347801400304061113142224102098419765389212367115933375633748259053187639616533568024902439441892193618919100775783300243259983028650757818134752668547395408709246228323999580472300027432612104345829636478622450095669187136747456191961887819049501023504116100316464394938206967077195270461024693796998443893795899273669730002741687093566466547722192135890803919039441025703009612369395347888583111951452340676144325828754744898814277147586825179864789286786642317219538548153785418820734844189615274318474580102810531744583550468714551078219242822605546907838043017705596010499783150012536836320670954626962481902367189609811673406436333014127431287272984251208045118100987739405385612881653487483072965509503782451137883627367611937945300084307350807109939175089439314778172324145074056619709362290725214838041302243833070902031996221966094183169472630698759644022614414547183871430612112687478372795967698514313931236282502884523177981053729626922929867550005422308339599203120071087704950970607859720758081170842355428877875917348078382172534542479467712295604108945667237381809731783315805638297921850540820626025970855719691274404091173867814446865778042137065092502363243445540642334355242347285721083620283384028536029764613700286136256173751205363072581912228964116131478100029688938896161956868261277599474197364194209185279606423809008409838176882434524456057532574049178898280767322287445584653756519362243226088456570769487782029993454903556454379653434691167159023186319321624544201058233255263895982273918848267666598343630315171451469572202266707020406696589533267168265518230174908390281235594575291127885431186025274830283327515293776682928397534774617670394281984185850136913912299616101440515234980215865635803558125784897920198292114473700269614236788549999882767410157975902528808862293652377020391609739122803812660817231875993022915444828153881203430276529329108098639963021483038860782239157304712080739229054850905023539013338748044800053997255075549150436741075842495620454000058868426908964578238911205968576195471012025466236558483399102726474591564004300523485720773903569359174965653993523656539521172221328156048232258486211690973208738248626417813160464073232709604365044305713537017565872338288267176192458728563777066118007075570633695410110508016156831975117989678401924477190269593581523430779459547688837934330850269235564892677547318565378192189635849358657938886040080707455663619272163434370637491667373094854953144705782403681078841850624267564163359402294203260932630890669584804359889380103579573262739484110849119283854097908970924415727964840526854601135916015193017058098638507789333657893201413325018416012433019743447416439676537413049690515382760306235012970688231463728494582872493306917021411189497359962379900357341034934716117006816898312020936626843573042143304524678095912308479340610153824174468200274871518818980417061223333771132876919281866013215968170770636541111260509416377872667692666218844830934239731406837733790224351804954523225924776335284175285481821514876107022704864080861545438747647504601389024305472270286076291525158041106288931795190495627199781531148380581942372864449687170438111534025287814993572264898681783031028788773082565462005156010738193524675668018780025186001955059236849392185265297893278074859934736931813347163095112869850628845417040312437212776226600331599344776746193972455443179031252492482344725779659126564152695283506460381683834381259142193924370443628603397281940824941171051597792587490740280453102843522986995664914435302973553843084514753734268246030458351745580925857192144259831237891452038367083078410314395270430985045307883707619772093950847632102953619370674293844091601642086819181725686595352045597035186978679021505901984999777727146389493799639145339657958030917939313313097028210614107964454878862823034348370918821845590156535938348251914990088042880798064022270232136236522719428551385472770412481248381726959566897830703334864349340107059764807980979001308589883659315443772306032312920198726843288298252131949852744703605363770369884986808921390429582489692084534077175364012594883188707012635824668574993501132007139842936893313570959924235234298311478107557875475180385724882379439728313982863807460932404277720109402266890468406873154474420632597855958951284140649063561091743551921156458465402139831637005933614760903743733988827830759512985122123263116066815982498701887812883656468625223699659733929068013851417888555829538483925532250431272119731151090200454701198479910422076234442113519279001986462479735339361049840123870217089095590915429949444967699383956604837780622688305631695455469824924023977365531037526102639766588240558760856209851838390126560149444831425473123733031827507235481428903182298143953330027236625230375181969356050376766492536465290399057922321025106180287829460402779210263911663366527667052598674604211004634939682497700376969041554547628425703773798059016032780423433798660907945629811674880022564786580104037043979378193440357265683919904615846965816251767410057620697676123446092455869329647431812903866135577562277745229461610085522166840811237008973815013693157163841691377317196482291850441245133983402349522017632092435932487596893216479048295985657816437207711725096897747004837555080214424638775298421514467458005965553779691302615639928454579468081111013239257934699554080562975294149233314866711143873862190015656614041176028868135261017700872877136845728479908657589960518539567732059249756510270040464156730962087723350385888771727790052819655684900775265068901553383122926941532504525891968645517688371735173362261645225239590898742112112927476909956046189214230935708885599509647611083591484323714131388179850853355897781663040869926584246549354218210386665317232443431326116786239090350097155201255742767830476723804237693923188226165825889709366354257335916749675948454331219543158601482640347209546443062962266380205298361553052233083802715025664218674213297077060170329927828224465934847316492581261460648631626370821230699290920649609103517720982323851210234561879077292867667137395449242222997011257959219651173109233570273403229043607164657186915612826612618101031523126250386056136092001505408502719678574204626712941770452256277070304346376878133659453645140537102407312827337042771897643140652607180509481935861905385412589894397923088512255738087679083651817944302651680476377090784308150425931648912413962383601571412337436154582928324260313954986209472019531788190401703733959135607625694453769539757720821401023184169009940005938061738590641384666778948909229717617359963753047746444945102056202264152022392229401869674235191471079690908954190653210258342399578872478953904544092715495138122337492632795123695919407088265248638225618177591984516695180303418744905851798578518435487160850974616056129707220049491342664593613747951076563018963915117646435614844317062893971676068980440007372043379615672849540076746636650529932761373838996380154226714063614363030930160932786323563858137503910999218096713047335052355955851766827965596757795847345166626422152631854846895351020989509341123970782688580584773480208384907224788485193851028060792857196835906572621418004398754671405816386574365144265759839799635240916476089628431294419315843667085209011581119215064275766918305484358728887028320733202499964194581506460474569247781577283981128861897937803390635910481979485666494176790857299437551597427533658085450823354387782547532160485447211725421549665572294456186585063208291510189657733948137503802235730757869050360080254328101638493754902954942578030131330074481154352884317973964340522442136613895855296105942302606000405678712677508106315998643594746734285966080184184321444510280439139667472120857168484850918061818771676738032386008139098448302314372437759195008775955793691379424786901960999850889092483675350446827112546917818352543423592583216418893304143482550255955698461321425599162034232309098630743836715207215377780336020706013149567754216467455840884729065330297279292825307942688778303738801875651431375528476692995703239470373467021122631267925603040711184610890407075445615844986347580498961264507609346967714751030779856215370237505612941947672332956699936426321938107967061197752083873527832264781316841334252912413866668079927828336386220559359470302250822357010195197289920220694546247255937947635740625485999504412493896042501793275265904950503376376177681266390046964836407675471940525231835577031019380987607683156819453211328503830031409712673792998370369476188471387459624909206384030216260171618172918865263031731235949437149769049265863689801394506710895744886002439476440040119702195790011911696895019973180017626713910636648264631978487237152756204345440160109142866032954910447102378396984068038229353806456190765695817853362997279948280817022178369562430747143540525705710456349834277805809139334117874187790625715822362050519047213353820352628054034140185057991145393606176995897902446953198444146832327197265418884365184411932077450156271186351133477159503612954262047760606314788621933794496448753564370731712042794744809569709867926335161817241514647165558022717913629950939439060822121598131543668418727970962652609221747763592103084013538931859899632320266193012288466466870661916593794701788066102502823876773216969263019062000940294781094467029139784020104482021737802282030864687482659184776962408668513772642843497580384808166357200661370886904852499912627580902026479115937437580100521506407333379433724810951020910761905984077198560481190549213644499431545494374405990691964096633551389056156388669060318150222677706621209912476767564627088719268415417217050305448945315829591023780134797472174911342037149732528454582416740710100602829970191677796837565397340331814167213502629157210540809124816663452106846006395465970275169054713659541255577755967639863268653567007206952245093474318185376801920899605963493346383476916352637904098030162251691374185943936148887450051320750324489476567271427082157335345253055917254191305319591232870938995501966174633442782095140911123153004485316762826256427702851225497021625039935599431657105960188737538586423008447327614797751082133537450239359158254414408948824377633531933939449879083014794718283688659302890322243745400197111708337421954068532884896895471726980786605621075621962276391397885651936736454467179332949385144134301896737511780294280814004332498140948506310966745128986337990264990112070991806107144982225884970303124099305051422474276603426105468027878492634623907904576197640776861172907678084516462473595329245272164275409960983796021844491562547000419812391703231309231356991078596772921407254364936464116688778105072016729326615706259667749460289763943275993087205654983194371704971294874312147699651504240537104160190881377366539860877965668116057759905077754025489006796683327155900698048658788365207736794745856540891919915911138206466721614363131473594255244975789298274533156342391947490706458362095402526075622368757323792467831915317782233521231246900143446661885377408401655181258109488258563378797162671666937358929719181282361664515033702616024590410590069758993920329900469328593796410248067662280184819094299408007766699641584793732658470534011871915768800704904995832755410673725072622925920599853596163134699162906053003790076371191541090820689191458077408109253097242157526766743672775121409536858167431049099848095811717823645639800814053036980668289894337995742063037138289440316893871209778084681475801436020725616104873407353133102928592887436452453621820321100589043793973807790170796001075256069470067255877325690035137488231812882532870365541750445029610237568685286136154707685705092651630795833807977331579844097142791091875792899643202911011250428435952393303324143488489707922766929059067718381401645961219521674573633253941896511506502644702536986924130716236038139034432778764796529707337030521082977756696941413437764629232038320994821540667590751877554658475479277751505869240151687288824875162850297820477117261398336531552209031967862854234753889845657028325462073862360234892160854086510128271231964020509882702801929513919646720680078160251739272931493738050127997240234695036819254479897015656352349121221859282931981876700682386708532047440693799038132502610380035764063096044045536570187607554997880954554796178580761017565067324667584685039324348898854373497448434535366107599190668351351044184144448179403436052763501326027670937226993392567602978435343875928181813514864991509797088655799810450581807557119701905165215476351524463475517853386524388966121344917381070836487532675365955563603497119200967241334907942668657613835952692092105872668297115455493328529057455675914335622234977643323985186322071652050322644423671653793902123728744818307799594502127149535200363750283458018456304402937929581817952006536852680877537684077882208026847808996085331209238558940497327262599079603621192822928384651821630992807508721212220615348986846467519191263498273530358878564821213264816812421433907926973386414899859845348865039789169247889094419760570457233100367624123660115175492154679037863794528885211768249749371180000764597353960376338845094744223460737794796720693837496749329252804720878252654637742942613719722826281028687921311350605505087481847233932531930784428190261615915976192810045409951481145505597297060343044663910243026577491480541441337778918685856446140163948657350528391990771603123436715560306024898356413269788295714674123018294130209180464923373500552127451739101710374072124896847761268048911968547443074262358917256119475224681556891526336256813725522708416666381167539690026120827153420938504545391764817863741648317379979029710207968318712718034518981012771901763772512533766228695194389886808127303034289127867063805723952182849451702905249191118851193807133971209858037969248750673598785041311080860863338176773371455458291009865424390706929644655308301761524539512341492989404415693817360455238232805501665637250124304444968553581123346947781636028481955471031649767064225773961229090711362160356076869099655930429771432681738436412090287128076946021417517424989461482859403537822718960859497384965026325057494531982602562596452752820346690517637788705657305612787038499416612041356357711427946905559486232510860245242285921573853273739636266409537543263105902185308587874825027133708222774862944857181849261031129662310193488692178917120215014798705745580455157416508099929348204384947439011900953507419874431248928698855782617410433227317681735138400182986512727304937281687732499170663673223191550339372531175880423993034799616622542539868278612559740143743494395622937231908370634250508678346992984829685501728882275528279326289973558088454454044899362801114780213325693109233016261443537816020912532934236657473182791926178329159996079816981325399350373142108100803413711361149335227209889830542628082798442897727909101192606644447976653121693210549506739422827244015735725496836238129071383137619204159855671243872817777653450111650843505965038969092714460050857489376637501123007962051083044924846227715082266679818847957507050535836395552185107978100041493619911124881773752315619515787264536381255385372071430331262673571987871070301609095654119897795291349238695509345563672047925812104999367983812427466573734506901675169687681377055991046917618778756857147563827267879004541511249142899685889375684793556797466596488694355640245949771114922978694111923571597359673650416251461692657618203414597226718885672567832569082694657472631352174107616743706325559301057026731051337627327110999587087353491648765588589161006705877655256155011656216344610164011026916603683169568372909192266303208631926632965579201087818024120114313948917097641603868770575487852810919170919005078705606192564846524956903227504903194959017515614073355173157398948652201716749228778536242793574357160793928790696513646345299236885457863702397929928789253205363705457792080222888604578797539243021771063191565448939045397002171662148098315067110988187686715838538804335202991993674519069229234568322364535728452904647421417848356056849863956672779344576372912798349148415647622623264588106575282214305071618024185755655496050658000162191148239703183780332382885886245419674704187501808719272752930416460737018842747459801092232283789030288573507522525387868969180738000914705964122267562880477920665977060646903500609412397057975879674005070874484897616508643094552360480218697000710599442379543657861764458642112561730413570228665421727424602364858148386073692062620008970033746880836878894107120223411293705322950626417173639650006547950159043674953989648486418471756813213955161989912336696701131696866999359550892087457608484211798899758074333438671697519223932267731226965498820099541064666298590458843696676153963435841028503624371243485401073205022424455560809841018232580207728923025231160558500485533411076085757581159314889948128765849972651639809520780444090031185817621763528340743474071023355714087117574795742000253727609642209289607059194373635105195259847125170282645746367724546083785272719380621347632090555229408941427556959112046003272867287315607280112422585758526468189108376619540132469207127838072960686586584948915030751575394524515300932314676257359437306424060477867906396444670494965800798306222152590763936129253799144047565043642004971313748984932416019847376196691996235131058978785726582059976334588178909984608373691638200204368029559372646687837201093829189851289537559371909275744930273646295490958669903228945144570575744305396918664543594916029733213112970533112304885517948894539852854456719782157010878020902259630104401232546799937614356735285400778481921121662758883782637781589756063999468730323326032038537265551022665052250945645184568155937763880492734742169837335049035687885699334679946658427972152885005381830134616300593562530611002250638921019241485440729688113173322071550709156308328483798931019889608102219358021980637640675535583908722753835471864935383446109102162925800534089575193364165827136931530708199210981526617341123413533989546781109845499353335908195436631857604464184728322783505970493839718971451939239541682911050844633319056569973570602945399436399225908999789714413180446857141923917564676379500179290408245665109728853815115444120653837095943569424495988978621240257192523677681523311212436178908489958316660354998627593650050069497624242693505761955895811251170111370906572385271084794643096815590534815807461861953941752893336001212337003705213825152180108237723761789003955748009649072121390503813908313525974464171298795821748226986340737250763750119992905370411666600040473221775845093524698211746581172169421559517639306621632634769996460404183879670410867705451261965589690147410556755957724045644035850352561523359242275451361735693413310329409974190003496267272978383922983025993682755440101433322257143837959948914885542313557544483925135867553901437014075660819023005411772226850652841629695284836705651598200615094619031986698861608931087372691236521010470352275638480877467470006260032714546059930267157262504560574399694442543877830155920845158334902996587253509125585230106675785504828986288638989354391760195151807504893481823536474310628706698969589025652886530982228100614063183489554963638501106412476053785854650453451149840805205848428994582080993496936268135121725290869575650495634290637795839099449439025709883186174215624475999883266208263982430667955201350458023191440605651370854981673621641387763515311356349897737921861296383844642082409508538524927965126250567821660506579874527779048030161439537003724315682602924813014551815938113450746270357923491225122201496573123308150883431573205119734232456067274590977850565813108702971698339671677480197395559234084004200854588838500788626265259350622498381365058082266016884397248655556295257769797287298108227652764850774421593708154993780704619820844363942246037048087855417460400034811571285465800094649539524420522192826622898259948603007420541095781805279492374865389378322078862713975047032119458139199026250212330329572421511698790670853616263360286131514500016699881823916226136511628774050603337516240343741682567251245830784155665979896970081254626947976246392362923974332578645184054104761682624693161773580505813361039198536804280516944436542987578373385374795570542951445535827946677513473748019970519113397064563597809175032457208496482109976381096357794784829236295908234448224668867373404322471892903769762858204991330926745678754016232191195747746594423702365314631797684469690804556225609951390304338528091122868832865765555165755224968502687927831288406164893021559092619666088888114087740913638310803800006515907626484671168617244076337815700559485902583619942111653656543061912052479267483111360911132021540355397765813495349347011398169537661642055471330938626638935874391047759334534865258989819002612975233634582478496033131754097767199543568880517151551866539488988235049243219734074309032199576186317938336755474617423564468870977643117901164844552765074291504751807055765429006554600047531570775013702907533700166421749572454653075853480898065863025319296294291418351634537338741401280446087652174089226279889847136408552742313076961305506085070745240760012777251684585972596898084015281983641252818391927211277920344177668261163316525271574871157418444798294485501901542046785091817210468059998430575729746219294480421096116041597964802762210543670372095423788055786424660467595465470502254347183016418137107507655953870911344993923455129026169511259520991462774342411202126894755500982690745386562110652023938652123514059964405853276101029007384083798632724796293612983187073046048331634112033950249985032568514436014066542415603235663891789234986739313892830567124816456469181215292117167001242330467532668655286878920944700058054609003477664601296833934126486578221822065410237173730165983164539810722715028301359357742823877783836607645582601020846470505280264491034606875039026734798294375306170923684583982184015537053545248408510445202516003983647184683814412146333279162667421130513179687738716141540891366502275675363862965256914996488177061638313018531944259134227706316726774882922450307089758506728824783085021729114158673040129533261074051374780372215085332420109312286120679807829393438000359113860038713002200088985636942926345650919209248073299770690698666003432901587343005165392359564122361730482153008380121029681923936551283612000883878237350420010309041015209822086938190088601392131088929486368287262650775438289513884591988422172585857682187692078727123269198574683189573289954377489366171781316958327327237716380952811211576469892013838255242732247110153188005509784253851362014422039018396906510273947131387217756281367495772032688493038751981300679658921163051330769628541532912020824199322617937043687399215859125931420753434395569441655284357337877801288778820625665591267250099756912854377850153945525169025440898760936889403984686978071348604459054879455995959782037776927269796614718303929869356190429741553862582237687387713557006990004438994284880782035569755783330052979787751378274675428772402539643227456314431667376513876417622722177836661053450950937652959008273824644117147484594214999703090829957138628234767516251515928425639062773261593078013856882098688195383605519982037125398391890388165488318308793614373496474853532162099518452946831285388001012405177460650397572458902896536151812643728840733968309429239486655455517939191056931913833594587104464977569589903998817776696561467456972996739041265102752429341665948901742946377631840840350553741785878046505764579849901247202396354174198160491307455529727242106748849418972353480407914226373400126146953409421007761117355740388725784171537633775854238391656062712883090293494761814797202660884389943709628725820192252643773616545818536237307817761696887032655068213695367755639396830659872335717245969370273135684915608906724810734091362942955379799379510160238708799154877960985923830606379853779428473634239031031398689833270238171935877657038511175019169735486727096950322378239180599208724654285637874931444012910490351698324114671415794246620799842884385208243762063521857045568224835155854206489575373201163664813704692896918054462950866613109440736574474889570596208615197368949807127620903894934448933378621738643218415957823116593643400734098349721419793011005620552997843559672262539658324440621134798432361060139093876395319526918889084662914089685509510660285946088684379581409100936694582295589612254621945075209171288603136184763416017044748445130752722913503513255259003958094100084135856666648173043345776746543234159437229135487653225950843316975112868763311629759790450069160912437320687705672205849859865507610509145148632278328074121672949629591159819831474190817625841386130172193610930745920192845390229018753617837466537310432456897090210966682306062489217857309894637725245570293830524566411971969396384714801123858051402172761833112193054162805931157449384641130178630693569467742919543063520403474997613202391871354935496879512506853003472918979593278213255444723171533909082327670408612486791965391897186930067814225858044548806845325174853433810228316311927540175479258838738021933461737801580532991676079202980983178690626154941145080570916046826705732826452707889989721861273755735584064003625164964659023562721663638973670437163900408523415912532581589539919406487908582713707431209760633723348309411266865701998189588577131181823780014078583273264557203753407226154510478198139490615997176344621247120353479272746292142508907104474172833329695673650296767383062509199590520116652509364693010567159540275401520096746036596828701166164156389525263037797539721617729252429909088920952528280697177474772440342326920176438734678383025949943364669896257765799590276721953282432205830305475456700084520607591883437653281619103552368054227146102105857328913028401323063194511685926370805128899513795348204824122896596296765364943754734784672113787322925712622460795867441771800761668414011285275578516850339702375390495607588883637506357953590052006040128792102779757561746229027768302094925145443730502329956893990873574388095134343990120608861951189458515199486111124331342752619629578370751943181072301073130808139993789352417665082827100154271027545747282171977306831824434801397306991073852435814443029772193465933723128185798065491842087992504785535560698050288676528419700635525632685316701565578029840638648740593022317473017754768973750132486413973015251641002053111188526733972345593802772233179377951482378482098998710476944468179097231936485651632756373095745404815299198297211529489426238265726686912128907192119854223757592330640510993399502257797319039290485874271210687525499341414174225187902581163649304905273869874766920699633255896419772688547274049301855097785908750838931466038965980566449893500547592951719518605457197245251090619143115431234583172570076687538226820346753425423613279541893059388011367739736318901871614352674715652322189510339946510719375141421709880732316273892399798759020772114208901608581737805875625907500785778164616598567157385779871313533362491577514877452544010391142140167081026850461534395560285917769217652002984758943301658380054208639546907385343108740906327321706114988351017027314053371579661840706089507126060125352831241115636835437333138973938496054231667977929798174106187678839026023505696921733191714911185377030935194145112761006085934830402521455176516525550362558568234376445878201004043826226963169017762048460715950970669695625747863524015994401141343128699315541638217819542562218820074070008652872421746249166019059450767201882499442568143778755643020485014252221203890459646116947937442624913948820104684107532957728849781715973388371800132957433345438948652340044894968673293645979792402593099805138559517429394562654608488116316297048860529063640135200960393985063292733558829603052700752492175219061280025269994772452319313328175453910827620342569570362164509236625870331074666518467601133198937229993752372377622769527718972585411373742105788763730265909064751431361995452463291063192619671841300748746887217012910559821698907892182419430444790882610186686480100768206981684916685688728186411977626732664715001175147083501792993031575904303805045312681224321875294868881920366155762271831192781256652471124560026710657985169179437357221921432865914700745535702659581611309333942277674431255899530404344317447818733595156626256269829692728887809894199086734520428881747583033812268519482299077831684079962157263643835386629921859330099834780227884679796107612106183486956359633614580490902310186018113143194662647111720092094843746102130657579287386767247318047809286077745912571119709476244287105812279249295774773277581654132855948134113500764561148764635955063354800093471695629891266045914993369714124904622401051877751381369773419949472258836551049413946276908687565543089812017736591288799411996027054263625178947507664992108999059022997161272885183943185184427996345281966958274074142318220959291953376630639530813308260686186790417444108567375529841803068653451573410869964202498007648122169687853945582621304197004293607540978162103409881504326539392251930228919380270503604298641981158997960536343152093624620935117653009359534966587397644868524015395445023617380467905824340860832524744161814613777255150573190138818194933396005890992767597463953399051260725353048507682915547502610337318499094601544221980911473512086155990235649132345690668070405677094142288557592995405978678994425789330354093797421009744486780922156836638493246442713538611452451747122968405113676091616997190225091222655951594325638276186906646781326348729386128257368690767724734294151812249090501043775200973598797040961613909917716214210561709083228982799938790300876185788468200854613764456706959153085990560164293595129800268150663590302341133963170458162295195583439642879118454336005007504897448461925561481684194305493111186976400757983635579906953037009203820612270812836122592761708809340067978385662064399616705486848980745228914366271371684877787023637190951885706967172048055773779972909986119989124448997397158265048266798330675067998516996373736015419222451351137049226493447927503853894572719901780785759073048515289617198236365072571451076779340546558213504644893445163914194543652276370549730546525039931867333757772059657020207190867087827117196409178439248373434634490643063959315395207616847840748756156067721553090301175224757226938010588248845050548417660066158977712078936088220870900679087449788126924386906505933091993833519554619189906695732732207110618815214848110806332715687137672651492274211508423485672527648009010940585625217536203918203448025571612365090564067956961429945250468687781423426209575580898183394045474503796542646350955331421971513372537891281028878317296503297611088027864901274432100859706568606060017324566696276350639494584844815415749259807452306533522322595398155229575252377589236887233472732205225106809536323269085718893858312994562471979871832962086535096566385568687587396518842008266142067072274976463871253388416114238799944516278336544799123992462057575804042159085630031042372132616647686068262062858906309773587528618383840645906439089015456970064171505667832376884969013874226926947772842634999043723912350854542863363036089114659349622720770177654172718541929454951539511825432641555372990998573836610757853315805804231463586092822514112824123387848027269118942273663911018923622053257876399635874770578937286328430590595735710909875034890381143397026156935937933466077509537532290441923690821860082933635425710553167452172535293317740277308328461741140035465984701766634475276934980697453575544049462839122049403930428079500904729745765080853520215597566767051251962576664619819566248971740296579604025248631525379703834143023246034026279167624781438481979406989208057219980442080908355116917327639566312972028867627953734053142883358892007504609400177696661912631014755728673941451715324700466714829404847945376338077807918611913295474230249643800408563139568088674477224971681341818119301839411359901879446682419149601938705356189828788554878314735838172717234814914456568310837866011930120714118857562233128814692611432326550711076406179453607843010155255642424157946310074044122549863865931998881478483933734316108399171438104458553146134643756841164474341051844122859232960273718408380733997004702957489338008501943348457070929860146891303510985353771419664378613466526955451312372258978504773968736473657052122366918534846659207301222719268588400398753125244104179421652464138629863723749193384254435079967369620140786496549981544853404310673188206669417451366121773286607207106868956594255346880719020193950149898736255981459976573138198289121710192758996315258310565251556444004007725973210486966098614631166069523418060718365499395329267584828889420974574309346734195411822476749485421955516670829801460674156830929430041054744079614421122701883712329482497108454504708029751367778780960221713547806736226007717796164959473832544344468298953419132538695967763800093365808532442053875374410384304091865487718265139565322595959595727040769917189679137367635292521452830439125722527638705999715672730138219827599161736427387282371058901324830250850643867411578646016184063528922986270258237982172018759881721363723844624155342207396990820885569830625800706184402886779342136751928335467234779576337455207670998797737393158846655869180535099602630808958825462286339472586792382089534852074074453079146197380884637679586241214983948169067547393246118739174847549971645217219895596455474099849477308550605749912928695636369276364959489623704669875694563534729469089192310334488406379382327877446030613322362682051747307851824169794468880143583230092236207145507722856246023529549925069204956638304174130702742553954838345717896316240442261547427431294909721719567539659175607854683511356518554522919559515102275419152362273872920548473599337627620741067574193081923137739750746088804109417057297539775438009367114492622694669069322020479418482122098582216674701755715637457657117817605696445497647220088443071642209392059084084714514149402631308619228709639410607093081538138947883437888562751364777576606029739629298566594924706212879599647268178162538362534513123771145144442343476724934725079616552554604460461220705753385622611723656763728290254973000940684073473370679305074936827825638037357067561989901527608542147250634522946058126345838985063151748192852592220653825178487367320584300290470760270488546300862038462851929751266828778854457618155661209610318526115388997020341687527625323216589857243476561800113551855758098410752931569154704873434231332513630217559998037900773472629271779094617427548730029912821991976759895211983923866347943251106177590580223680443176949635677470008069191892305048522777230331419388289222697346396935393336278344694947860112366498297334789328352631516809187258218195188427996956716790650841695259841023749691525226311627227954029846361450596492885605888595189312221447631298206034817991192534765518315558221610997562668386665106128422844869213503385851246370071115587099594136120204817487288109796727175252579734699968288334839178656237812019501505073166028835433076285068982648065418627758732424964533689928638152283937646790866910184830203383164665783026189273990144236425641184901990150942062780193335184464749845195934228899147092539571708910455598280962555600323316595329109384188205572779646947782604612192117256718067620398210102515431580328631933076132547276545455202490370097140054868255700606942627102258303187619385814325758245730928419219614685536458728362915480016754348160847800623222792879212664858361154887997067311929069189295719100355154266286283064668640268457988651069275620028112361245167900172970870947137295416897470199648083291626902489985227754869875004551404777409843440942825804708572191129844891516823293822108350442212667338782346293898341848368440632398789984550469890144735045492717557980024253791210882528015223832237481958987035123964167769420216223905496381443853320149407262181720418483686993204915588993886096189543590038489967033763737982922565357243962729316750847819115865262954522401794430274591053212035029333329574860415911623773242894478666973996604777678929567325320333015745392560632435102915454353729866249002499712562188048744029427551144705522404922650125755843400208288000415805229368876865221080774482115908882803199915476086968541697218605425304109393585211924482140953593453575437795357714352348417540407825556973082317314081048632913340111589272784401933164975795673270992107053856242763635593618989514945003277093586022425343074029479135994909119344211584236012278709787502313201203638961631560193974555966735424067840661789584171504540287369918200902943501724536696757032551043766542021935642795277231066672620055111477356189801158937541447115513810240758489687890738507745051825664154661580460871128330288126153095493435724723196914174420757691425984727000056359990845676663910481458189174142037421274095211413509321627854230057781596459631669186721325872915461354763696113282486848649946334594326514020471824706653268788744161185020729358655740104993126109969023447408178631265753244046363286286397523530955625240370091869678639114237571676414003818238412296169862500325261069268412143981266537972647486510918690993886742891646325373638735666730335167947146695624492350345922927708177902198993364192084450124097183930328721088598614178729259737123427917779948637360075221891422891998184237035121271509239368504545737720740902990828749432808478583217661051136183521702808751505392922964124938154488889823568617759617622402946103174266169557305135925537093794118805734360913585184401222756907022809096153009416876753121044255189717345208177269688846968858956866393553609938005479036853370459441649563445774530780029353202802960478046971549684130418288590237253424473129520746281213344517118051569268317964599134329005871036264090927441736499196169069237778294842465941522240692878660473912700011511950377428198678628814467123559853573755018516449883195778249990831087783265832417730856030077273747466481286486973911975212180553445018036083298157584085936358752882667781040954690945479284032653776256858573924550708242450942603017080312123238128563280087546563611632620334954885367377825228162748721130490281226345855707576023521268599409215121130609053273977656592731395162181895452115220308122052744386932371715885834614037198760863447010818497196222420285941962285097523635374329828172001546364031149114360234933216467741223685342719087942255483030598648278519702353890656905096251205943214617150711632519055938659688068543841671675807471004987683590366476936075841767996492907116089892761088779374509969861277533467066817982757649150131004008097347981866558997519760742418088648116527868102538305966193520167632072615444294117578546987157118318103959555710159521342825133058902165307705406504955379036940266532475777248986994448152520381441976397117741945317597472274889422813591410161726470372672570554609514967504465793410143757174853847447128689566168928917832612799989844557597809523826304855547838739246559853894921437782756144112516620115965287480003481039793112119398008733682305926492887008970880197705200236078234433746558042666481584811541484913559939829215792910709720150473943723252301985419886555265332112300998718709288868429632581473344120062888689200860817402708454790308415235477776523444979993563174954245735775775336011585373580665175732090747091707213393355321985939580333788594631590452422394914990473178039302856132958598165740688460295592865258864462168650649738386555826722926428876356489471309155424367851838864821083589806718066589997010750966035332914097835321365863235304286061213214649239603307526816578088485360410350261060410979880786668291424267656870723174174448537982063742537697877501341066451014408618059685719922423788012600685355969284294341733434112247660662777274672601367396451530244372176337816845754170010268089882920194615264311308402462607581388431431271801375264395262145130271433297658906773049738473864017052483637962628310898058215929649494376622967379191800999802137350592761966201182891134127458434120528021020916221125038957754399790081000088198450772571743422425865867539475452108519496720615294460087393501076919405896019738781930612877263300798524083505973233703079431948149041883749156246591143835106618001507966809836360801527620738861221015639123775047109114676103034619074711529668652681020435807360919327605837398908084187306700258129781679372030029956943809123653622378444134407125929121711489196580227198816070907331999206061593769397761230475026800354734223280806048930828964606575990656678873481047346972157690517025040068261294270423371796813367533989088457772275130864172415984018723010125914611392202552391521139409632671290837061763686104546720613987893958541399962899769761445479620165500875291838030208570730173441094308934336005501503503905595345779808661774826812893178755734613259764787074205603492212766556399271401807993759073306490839594280947383249838924699889926781048361854033312587028426343551550684070151439490777345456663567826811841640453906508744535912101518148601348586210747849133523998832887197811276580033488272822829480784066566981223324153533994247813981260345076181788043738464016246497429164996884111863471455997945668687543713604443404559080249305849859711637148112558707646623871380679877341208684872907485110333549685039254713527303803215101177463978591360800112775818383676703468053695711153718406169277248610000933669812914395693343635923860132112888373041568604376161097115090830100757157853621594493773905071936199791192514382611943821134015336632658925242873980124193291475454648336106586043015997220664867420429459042477571453654216818116163464102429363730239048400893746182173508895861613592725257919438277346689118511568213948908694727665532742672259313966002612862299731611821838046287679429020875400347735462274337157225398290316509207366277631883876221119618319479571024747772410066017404576044505837605261599587799953847545002862393185273890419642137269604765634404522476332083436641427120089716353386566561481195900772552148338270830612937188187976540779536232485910905576849725083690633356652795748822073176601714191230617308297007430296344028328739544377142343906818193742999918292251564331407517992725612580773753113636908762930027766733683822992058327762241133584346156374296893220114280398350942947746113685465724339710958584147874310097726994342082938510423244779508778146591211329701089421167862370596515070048446183387885613189411897770960368289692650553517107343940812569998900798934927873947426858424415783934035732526443691831061892510718580473274209797447151659675341493221904457485800374880362641947628625617168769767698580183660196930815066129622965346214440389911593699748297210273473597492231994812166300593887136370928210537791810974150937707707944768894834459685154472248088037332810811521669079923562674492809756935730895640168305503507516856376247610817743929845460837303271497170431359164812254292095108841494313317352337201897252316550325336314169353151116196849994896698475593997001672430222775374341747093720970579722369851147646956112821325889126193867157472610699780088522350028143169879339635552707213617343299636849651201402113826670531235492284159407927551671210245078166751604549387622567294828063986937970066448187669390266506816413239409687103580577139311018655874055073119036455597182433328722615593221581439521919763244391542041060642591528614240495906488068227467576594519645953039614605610384598352417173035689079291526261446070678649724596791392637976451819803487503689178729499903580846629681526385443848057893301249147535585579281684876231113738502094826851959971532451908843595584171133535134937020051842573892046737423536878878899546768863993925212420629538469240948791211702110337612832422861673196699203665585793974545620360210192207493004377980420870479449957416616195942124603789032141452104217966258751568367521224205093922536734130012288469241221559357136677673023105791220989195038049030288720572250791453037504044613012625129332289884113444411412954359366429141991785292307456918239190734120485205633078169232038569459238629956852234544556605370181285445967477220579886928040520972566357223722034319422015326381972320463955218267566152040443171005226215597809274040998456759587737058782515106097717677823639591347670398778087626164301719943157473631546583778161766583497954742381051754284138352849943809046345712989427519745818437043633673790563367675470724364024880003584955856706034593034949711799877823394589182288298639909642287576038593025009681233864650526435631391548017427706164529747816158173187826387801540633439735284226177099726966621141474481026338039008421349319208644269204298473430452251617807451913879817461718139508340336749801326209851166978833092133841270473066377588713994367905159705978616253440354356642105096465871363242603866899615921953968329198049921988971665447366783293719320826864788865631165577744344857998738326515503948401885887572068426975481716677693860522677113408280151016359107804171399442529318160980069849551411254023782767026491661807843208303799580076175776326554214231555356113232956455697810635327021568016670874053558404851005025358282491734726559536484939595493156837426193745073691397779660764227768774867779123974226308329694589835152445938493884501959625563993053130488616848182869973248065191587875018316479694449822521156424125674089549982767661980512101987774481563138269236969091843996139801846526854754573173698404992107034889775370994376099462574195972684070656676332948989069924935973411862254146916499879800480431067069286330339303229856160255243675072137671217802591349432914043147189267111078699561806643386431644360584135025359188580467470691794356589280421742821814526475081028395880625750818610107485735790371678966403852300272211908372069787633043435872138837299619902806166717757177230491836993104290051181747627144876898840973447653897415533952120794334421299308397485837270235023058807416043228986445141698969047832644880797328219119709932384521576196938529470722966932594801291345970581212769604179528377889823891722584097785613717649162725060446675948381181300920987866655412575124621185282477847639836683863760548169486124681521343491660293437211394981742784099626781211390128128662609607858586638777474589470611723121674962966103862290113378904475660938758449869331527079460398015641449972197594000199791384327408473776177960968979195518867014511593927611150259314601767651755714571868349486793296426636939682203848841184506551749003951911187650529844942673926558281132258924860266746234089350124445616587767333265760031871739579434274223901851478217013934018330803184456335907652321669187781107804965752461504706057090696369178444588229839634091496367968308606340816543387963135020819133297501230619358217557009371736115489463632254482263555310416120008937133159310723872677896579978862335858226452450568294450658666419379870532943243669691285898098060809717243796859616460960928775846324729313094656880421484247271952330609502893126092769565948758243760879353630285532024313165253345048019973550998265797666663930103570160549816518937245809455051998610729969080167216635285808509702142881270632738793396196126139377376306289847410496202147747601150992506573557589799018885769521263681964287058817853935940809551404715600334784734743156271765787275914504932208816627370999347760781690145939144050083465331554209023958301494011755124624149444484192195677801600663940651284996928601652101707595096129038012510706477762523971754567392278705659773046349762842036900317271730776739692820650305752506318862521164697139760880860174556411731911235106065455288742894878072102868803362029247282667143042569541249777520806337117719346639683693425322583921757687125798059945288098380061178135887690460663719220121534697380863842505089462620174422419760964031561282564959287161502410502645075439416047653436716675779463056346511659871153325965110804986395210513257063578563010655184363589375466649213514262536076896437601776386443034258393668186255094534117913187411992319095417501127773207652529029105467639221413169241041956256141659606827095552868848235362405069869000758714185894097643214859617162559859721318121453760097002329667078784818306655190941061494411449559104241763025074534516295673388626599565089041469809647307279356129181391442994314377738107691960740126473680516320098527125757192166904260500173542139332400155153755115540035994681266264733086462442989722093232679761268460971293563355155881545316079377921642690965866412112279685677002999126651233162024160860820240248577422174214720449676467156947658150362363649071313621823435121966723771043480110109741304105330472156744125158502272408586467258710104376082508777915071357558106318221411508586700620981775095176149946012561996918723292818127815564306955891388695882348878045331074874494563034754109574803936995504396999579813749513359835325766225948657902668763115435616789973031559076281726936298613278748266642496854720966155533914857748932839935894360757163695911326257449485679345528832287099815481624029686920369602502945159537895659124221959553702306658543922713306210318210042854095864964701088667130651920853510314718678533787274196397666594022708760429407754283791142056718273306265645446007085077754317010865790955954127418317248374698708211369207941015322746430999401594170104484661476156435089138141285219870695080380568966274343028128200590197093472753922238512158671428343454769894050483478471006742229969283217621647176415400399881790671254018342404633639259797725218831114287445829751314733629449494745369094878905841148754846644158845049939931876109305139471346932145558819303750597633126162726367371183176890937722537528315142647129241732778293542232481391521350095037347632915916482802729702692856524509783658419469252083696407044317679771206691084042274166318735233654280581420969854072397056994887068999080377988866411515625495605479495509673696646763321905000958659986639620197466374056449119863399806595439383228577821454550498848146805204325943335917107415467176944323270799927978630000723169133898736033577199593987185908665219025656821209945347031680045458373169838615134557401732680253932006630659423401232753856002300010749697560643834198690572685102802881573843746109945958390914454271708761963834662476289072721974361983316146074527505145772966849542244774917161049651821941964487374739604851279072824358341666455044567910200013308308092745532084618604219584011909331575568235976620361618887345162775137608362681513851060817853731088797068206906560693239271254025243389108870076369044094570954483048991159836128633650090906279068781345338801523956269837276423923675798372094151685623285941640297688629964065782671646376253365091126781427264127841830323054108383929198711428338450607103043274979389600782287976012656925217723567071461134570364287475870588058305376963127538613478295056541805793450886957867102753277178354113283369971006728843058539373960242170251296699703719455546463122503211450582360455398254814648882374766890562498435607365483701833057599787254471564926579326702456992829242602459710874172609765605121986383668710987846543065128911351865258686759126308286154315658619278518603911352628827252336930996159175691768170102987654207795782229775714982708863293072221223691325503562459281512884646702811940698709379582516319113612153814142312207298417438164126987477707517511685719086155881129815656032517513305557257287584192709093707080603900716239213252346721712418569885550146608396415529066847869623233518777952323261694398935947573061041627376318789917155025151750111473408617603933917854359969344668995787635744007139617126199460636721305603130555530494244243300139115332473947730855051382820422745964785094761411634559727101596513131427622148535980771690730369260835535660792024013654850477033542286604526861838240841450227252879398929733377957644393420279189342387995677281595937392937691581492518474333973142554456915931093135393273134470811045089975867163736008980283317811200890161320689812284289733127867108243716997352939824207577796102482024777422395214570763300511989289099990053402922182575108691197003211984832027894374268968495967296389470933746012703896667078748704026388423805620273352818915740750325658306359068240309683710062068648840919762080498637416571306098181486911011262704686076871348541279449483929969779519745811781971140252019276849795329821319354924073629683253626434735969553419477312312121731397882543713607981881450996355228624328130696915590794403297290445025443120832867702437987679664816099106939795376726440655425259107147871748875890131721701508967892943013401084901566304212050043324767821183410221174562368447356701818392347443839254034723980786613068943326089424126700049194646050884236780795518484174641000428303065955184489062516842217152151778264987823172453067027315356035794078840497148199179332746563813966589861326143034424775391307290387596138356870701450929347664234468482249774456118182984823231988639545104657715828340673140569803255924911562596031164639992465621964798062691201675322152334772223283441717924910101610241858227489059517840690192085917270952866709712017007391507224586498658824957610823644045575805620944946726191991647410009328135695734292134715818077284649401125480564061447250798798890879899856816288437584733775012178281627964682248004293582766776542520771879741913510109708436065735975856730432314801051859303993594183430905389355146672012286354578740200213617817226672506242574955019078756551892543334973423863175013890907971871825731280415870422968811546341370435761093269364595234455735325703148652339033468572261154665014063175127501560934643378507683955539796354032889642263760525559047056002427247956315183624559565219276717932279922863914513416305827100573363746567037055582545833085201875341863771656411004285959255293338503759251957581558346272471473706671080771698368779289240641053712727812217529359889226118358588065245922585728321045488835987205914746286371047719460694600877189872757069353776489552567733936832692485880672883280371043791426956013850264245213523334326569250491870467559171415946705192665644565227218948205237003870751757295125182821036461972110876663020115513711600470774278818681115987483937180671514900763666136400300971046646238103201069354954974438156956516218188137394709706225029681935560481108734162525639481304036838939021538831312375022466423722059221234935930776930331219492149755105899254295942444403660136964224585516410982592070774530932904340411607836518055991341077072195931022750995762996553495974890214073652742821853980208461920020188043900650526868650595529416989949440816171343909431621234837509192737972061188435289578744169440582104519355892886400469508869812383313565187883194046438187208031030360806887980046681559453364641926644218449823122726262856302746361721009191461244109568594922987943078547018667595002858532473847368178444705473709109369890416508719672244033539437587781318879720641103855592424651775337483880832097141033722642830595050868851682036027081319367455026271422153296258003340586471038404731482526355427749182696611905258055375341893852519775810793729067940467935703361200996569276655020662473297876842844552501608213533080467538097860525364498963627576023356235149705665334390272016975560341820585690294405370494562317025096286551765114824923807349937857847427639604251444689094941526922281538832531785367840499089806081465005508426003457333100706805576493325952346822528648760153415724125093844585973620055078066726320425639600799165951181532088311163403980478529390968915482794759409600297754740536595884907923714994217807192539775200919458682096008605099019606268422976314549099910457995692227606820897945080886727036955202829859047056068657998794356966617780768933151348670853530572671764912312601634006544091119758714609998348537686422148722037387555428056972486083392976623382573753814698699717818498522699232817219507786357436553664349170236157790531308604470317116350388021508410071980064075795763332067263438073546471350536268058209894834548531514141679627958790111037429309370997497479182048673213616884445674890826814969928759329272585355037435860926234893543666859313538012177313808796953137665600906402047510522990381040502428906850090091524638676520220519013090063476644614537377860864811482026166029932678607798334489417767544633875750630174368340950714905677799343765988545737642242024425248641544889701334548862310453005275128567000553054628253418907885829830344434046140786710093931780599932751899278279372648227142257217081308016509007583587851384552857115332300614162334546669277752630608810001016169353984456951639248090949812285700522213294014106776269321067054996776105133545791107186855160788952931280011127854129314315202997391691933621573524111614279904299039988396743186771286459854169303408337018577110801061761554361523644963149890697217221446356253059981794205688300992850288763147889428224672362160239343866978499842984834422580521036930038536234967994130073020071360771032815238324206261897184597141574537168283040734485286997390817769725057923526293955591511939084105111527245664431626348159877228136240374607754915521190833402362041931480784095858575559237517896161130765270256440441642201136981568884663696424222060575028747892358639211285041264603463176977815933887413964264177604308594749861888480691217824835899005473490142016324244134694320333891486838787495356816425496473114254257918093544432348676744664073520239828877198698291402960157392892511425927809585181127202259672028606773460445797983551290586940024562440303470865018356183483637323633105598221497721582113725718323615673543854384294586071458259426051822834229672859471005467064851891247312092206918352686476694127718771607486274627250070626216330473437894414728682288135255878137411335091622148232499181835208857503540072661735863888872035495288910270921364755929292342917513937273561384772984345672009751619190594105154423943671965360238404897025760076511908903069526919843742659433082596269004085572974192458213305949426247869666846987464305547646122715834069132234363442315167942560916778545617860313812908107913655130754245686384935813222165630680045529959940074478617967705862597296969304151930288242328151697106312786018732723445457488041576093419652156680056535217782361294430341450308042390914253553573412859857984507271165940506101089814359506184623512958349222350218652504138279273449707990558000289659305591340044422727387850837246645444651643720153765198550884666450091669246184829965641787901680474631720954633019684416970950662831881105724265832359451762848197687021836700926323158687502666013681654002267431901288991208086873577418072971397201060527970577380078114582955960255961841970334732669419455785651641488196381372255960938166954148398007190302527902794094238356658198610898597800014543660105515203736846735642632451789872590714500193080506023285463161503147849566884715382373224838352631657732662076884736115152361577386488355577470672443132396883059948823550679236013246871706391631823307608492640585243781854407978879632391471444428898549264702055950439062764524723832407198697052653613875009578637759886413378555359200435018057366666672188103517203556781502368474569927241510395503295707274175276469240900617072968122159901843086544497732922700445478313380773903684264809630231453438439664253246756494259151556967504125379815088834004392486690245377052816816104495212531967403274747467656490999288664811154006797832624838206025110427485986574220088560125615773694877485617797280016976064361153475995886558156963736107225812495575170789612877982933412152782937563656180059666611103957706459339916618434795916157794189841347711328429239378713767862734605086476289264153515571904334971307113127070241934126141026897111049385071816581949052845428513306708722396108349107890520711145140595318515851585376763520693998771837969005875331595631631174903474691577740927753763988018499576052924978478712764867464946941566463391447829775389823333757602108768578883961020215148539451229900928828694132119319157944808823618247270255421712362363787581408624708494512512200544010688167844591719420978289477467340590187772970893918481445784012322649066484583692561548902723153614405425419956908712927458778589394069171578529873342940485083496714513565511484417243383287681324191866121085470699301691131804376740092629231822314818339404261875356980972709112052001407058614837176797161512014062278637774462184055215128118189809999281202261665605604684829870708190808287095584922181317570458711102746971374771720730009990070152702798773696943970027229847658878547788947138161537630881104439633103195481953876516866599053101909940472118044088241766610381408918504421976661780327362969459818089406759309393209804311128814547498345128694770343918981780330790559288673265612903619045716282372785051894982585521896961292688263212795328073426144886708250479676036533372207826129865080222371475045114133389174399718163957226059902554376001428194716754367508919655498748140928321144268691665313609464386050298813447778669255042497477582754499410343031029228381111896899780012978043106535044429241691850035938223370220903900279534268824617203812114368750738544013622195441558827804331704370484694966733521358535265452835959622182799295605400214037417786246472726749496326953282959320010978206101181538343182958927204777454525977321552881429669016003206317608661851481145647415339739324798803021615029768195638538809749743084558097121613407277266056608128409051664004837941949553118470205766141127893100288653427995224247721085627539644071358359801635855626472604602981785165944399001740142139810241297347579004131134399041107805833343822951063729247111260083633875505750936037385294281628317481468212382278993624851199865028396446111499614862294476962830690493016450256359831417801465210903916942587385746809377596162287243072818519576576548868893235138435482890695268704309971287922213175036671064516746465070997220541291344972381636032829374581010670151751201484646398770131886195812759667240459129145159241793085931399344963726413284083523277095185481662310813171204302647996897970587841185466146840933957556602043613107091479678344995557266819413257719425768354291189404154312631082418608142887747638898566003841349566531916720097636126233161619084918907170582131458913278326063749090549798139264980345034278149088769333694178315013849399585022335834915311886762166850969142564219211531650223224099038434548039294270508800754111381196257322968760832929229115717724100100225758965703888462203154588138087812611368878698445414873781903256418064119618301427297304283763928958858525068089651234655300418686565596791706023500313997165249651874768021188946816050638595930614676570870630860032726287883503306927788802848727944706478496041770132194549878014874113884647014007483748033489907130540695322773357952058596652024840487600714062556424079112723692397432135998687951242414053084114458636367723162470079804713977401635010280524384152122895164597724485407396628608646189315421986842653177119033060229915392301644553889374509108359905211715696514129723096326314254557788423462303872020590924055273355368596215137637431484825577819827073856623619762691819553547283343218430846690007652219546281329201843407650628144222947536671362434028169109180082683939518486886080960127511858183590772383353200407517062076934889809451409233856018376574641506622393902442447230099120306662182732456670783416887721491645106527854493384342746288356011604830071326666183789366141539689960097167298290030711150004730310242425946264741594095603383197188954354576868724311400924580948800538056473524432023567898815458060717884379547902443377687771063428156738104113667524383877546582350953933346651546430027366492312967081688754081210220400407006972703043182752071593992329499493535444900187499014455220277717479843176750245009561237229873584480361309592050265259419853653255308354261823026869024789801680235277546220350779932869396865426715466542152211454851411126200058273074445554286389332515550995720018228730677383566022223504220125651448484280586753879436843099380845245610959412512958089218213214428287042824126732063891006551988173836895097657351940893677831168920857188774106826721863599965680534406403209718120182000269860777046062254025548424873752914308581750593111240590027857690788619775453511285014028937393781471168857871545644188085615626419756051134884580980869591876831606701512443329571505124088467681528956548036953636055183735393034563376383730773332714493723876953182313411139622046141074727062140703835270713399137074045228180165733197544344550590645021621630761413749744694039564292875286011032040277299532408645970984924640272551222269208752806378607565744319234350443676102494653584995297734536240873974627996850270886457522236116998586643610407895876451860920314237132820513702938747274108554438236497631124502258404877399717014925626368091816500335900932213946793959538498204502511193763094800321489600633605668655525500913953705259591763760937539945615581312808419623434273992891235203925270423886372409237929403739037181156551140882105594471843835615184306832125720954875697470176226923066376312307715468953243965232416523963729202361964160695386787043498242375136284173043594157866035774547417348809254838193754258474689924879393482199210051085479826462663493658033811617009620715518080529959030552742277959559209190563141787390125685724120119546796204784340300365579750754514191270423563954377007145408838680936967332690916692021967137685149066133051176794314161175112543004795067643997682913346686277438823132231057880801952207759094177560791543587135956751922832056986140585910644592672359814428978266881879207336416019493309277938312178632300014864376121044536252150684477981257281111936400606757550493181250797659846295407944555139759005090531404342663740039556090571562582615106796583125918681453949366756702367636363929868346197840014874022635235385231700163286695776721675125656340010483147599292137043040890372270660080896428031766728679865056977010541032405002754235784525684570224030099315175521898043556251376869010031215203822277187494460088026839494613047425519270025079380961354356124500797538127637973347657799017033935106639920704570287538905524166649205863538263060816291105938891893126405598937735726450609920532380523040364780595319295695814907504093635783405366188726113125849684324576060737728154322417896625267259646764802549300014272242542226032541694440645112728403813682812307602128898740028991733514538032367984614853166429970132473536464446938477337387134087287030956838878245340457897585237425937089426273201065861084750476250191452381345922692762888984316950481963359867641737153998380375147175810198130009628631955240825179140521015454011952717061489667728287699002451085412813578804041711724721694059042967356117938636729763200718461614308929777638850067328236514566949784941609001637859761670391676038413656369893092078828339147402983832709890200305834722977159254889022924727338030480850685678589606896163279573136328567913101900181467497332016555146197530788898392250373530893592265272314842915311443849130425257643536215497863485032123252713207102891869136889843066077022809834709050392269562051896308470536683996858642588101694873690053782315368967246268270582881719533471893609597231260160610696133880014896507929987472124168197668891283033008189093084544779290663077786789768594551583244742220805601889053006624952574046340529478054779612815443941641216877751980568932854220108554012454481986078646415030009284449127294967145947021106142031708440907046397438924647843564779903910089923406319769543658242557285770183210153627896043085659812317971127343365603150295175522466367604008243124179376224652180901714169909898420572756803912063549889292877065421615693358276474565982683498043904285967696740586785956627980480628267237980130726355429739274962149531657426894039493972577417900351726380564298803960358905263997825850335629628738278460691346593554237730094801549640104246123443926074125917542666849839926383612772635054028949027328647061368372974787275374788968964607214936701755039627447743432748782775155395321385847137729563190297266515747069585656455299154085110490823571360702573464774865042065170003962205994679195517000323302381258915875598381243922563033811508191000808802931265141854031665042346198283337753733568760639009599879305222704129706527812053422289311851533646921780717852349676993231774922811116082493863946445521283013584161531111018767074474702559211152405627318254637640950254390153190752040587223400758860573006526326808463527985931303907692892842966182126204617461668776052317427731826843593373942541789858799784626399201995019632305527019567850106323670349754992086931563752458735374067763921397485604793329986785495887116894222461499540276408401336173844133866637609843029276581626883767304217973511071653994912514964279621263703329820849511769468469172942999972648319465615238932572537161391648836571045119296224247254066385011626431539711432552335650066092479147110375850410513403847100877975187122387061016557216584552410110371098643282626753010328489011152500986519392903187587057035436939717543062448310483553933439434739127714176189461429126785617689049933030353109975662079592761559719386358855279596357594680727289351484877168444364132134171387162181469770537488085085717417071281480064306032095907707600337078371810626208580360331790707584913321825235620969457590968573959702339370990437869137574371215045649323878978050400751652827884470532993801039797081999977116684425614560377096941299765787399451593170545248636092408805268186637847065549013966614786886185569901416375282506350681198955665405055625649670777013083842465107386786366353023155088250867832254080260658289062862596241228768395906257966258563051492911523597717652202586312542088528122922722658508423337041007698054373186296217620156112393454409435313970070122553608872990320245346126415161458981672433326499132331281170457618867883483927350881816878443055857691228822257915495444019035511061007615344401989547426732952906446974846998262757412827633682536323954679716172607681965676152821708331927696061673747590707583418476857594427851623890051230282285080814745390998247237206546482429683169736897494588930850817365584986673613454789634713151010677281223399875852412029870236476706736616088153380360588168035680399846154465014248629063703299583833564946199201759495919973125452814183924704448516674748915319106518624503845603971799937142497060145036505970407985600467796069249075530020632131237340830725647764506132008427381284692720629727807672589284524705353403523334236490810693619816266674952017519449507613771303078160407176021910305833090184760682882467041820366433137800583813525089040794163320462413413569369070382436920131371498101735655326213553794432971577060984619577229665464102878440097243249401525831962355124391952317085403359120332901747183162272855045008570922947074757404494390632879935764814262711789675503346376647576168382518091135642799293033732894980860369485534774706103100298007411287773393084851131625933186438598401018491596033947368150708545234044412317440625538229827953301763381395738251225552684755308831328570850803179358053463271507094945914586634112698326649279602083702758330263700002657478734079927636027832636876960443974552754759283350326549482075559961063463427038559120065064980182545382401521492208357432843540864218064498066650968470409221245704527215649972592284580501318799412448122003050343811869232168016346611343777898764739274678828939691861562506259253279750813285139605315915123974042731918063467734164400934520585091825186051615340201031429764136483959995353177247466632303278849384978703425970314938432748821821434640693395101429377454704735521302408382435599612304984867394996341890374457775287997884054072505516243005412876780947742873257868344494954520182228117388475018770381439773966200029132591992216535482397268520793445178308650974986521070043036160949509018402967805429458958548372028809508392133500891176519505805076640139580093398215439434362044959963306054355684490555975995959645641640549211116899729125860890950269060727023433934455888465656614410704349277797210661621063837379180712557296606336384795795927652432549754755948195907473328593473908146337020708900909167749209548427904825085749526874510679552629169342717399774837817179332258795255256893299729385246071547782452072971114023084295299387232531443233706887841918265245485634835848400406592936409224088552726470063514337933283320679928592004783271309021367458457429868605754634423375627302387058654373389041871863219779268657160408537058307857143655566132592159354693668769655970892325969652497751375200266238982356838845652639207452987763033177795931944316918111155783974139149847927041980764683563983455789861946244165573222762167268298182600083404919971617892570900258634734040176571728577603955880758161207565800252134575335554768012738128166275696690522253197644887898635874815231627578862912113717822749172581716763292617383296295889738780262678156262020857572606596415349994622314129718128740485705380999573745451982991967594399706456911375812097798550430768665144644197219446451748416834206783981375164225386705181352526394686928605739872916570031694636826254034930373033196367310198774757018546437674171581541018880091373962232160604568248253409482921398035429938609199818970208434621624610372668726087036408196544871010020774220991661784268455611049353358904726602645683964886771365238812428032531513277359616448950550963975499197087450563266253814970553414143155413885413195515901318526330411319323670110255451431380781564297176879412076442667319140372446932010424439196354087786972096631059486762743248265986001930587250589764648568788441054375795811921273978344744162589509085051355248203619328587871177332567842872697696181788646469472352577815272100482373561400021942293075295739786282435702560495277421956214521981466996417849704445458754997781401273812175040178699262965000098005263500170452441289579123984037187359610470665625902814519624278269238254465548470017542696018412245976484537946773259947969706544781222804624688354941438814751249759504594481956907257228830862727593692381452355794910914877746851796106506893321245012438238535952048375108459919798628386570762616743062429497831656624362560313053375903246542918648051856828285261446114902720902700771415084935198227397406236790554777089182347090484204379686838756432177957363697312983315265012805473209964802333685539161691547990487458617907147908038991422631891563727716318466026425442208943385758580119347697542673731758308585713987171474774822677505728384711690698067107556186725106514432573444004635745793153348909736469825055469415398188959430417981821797502961441901754547070895909469230022050544673121727511715770820799214357436751663675441279414148812841397912537805367883798496040923589690307747920502919242772856315807710283850607543906263175692995998009002463205007557913834508923173772006278812645733260674685783676465756505819052447677850113092636488978184851232813466244442272349563622185539252159782508141342271718957873309619651544958804512737130760115891135459377409491414121524768167936309506746575814444078196067003744182360856432174066419505864949735479388578215542036206635170014080573663841222516803223381191384177559189194145350945145042097267852527028635428379585180357022614140822931502524803020519585024980195385338977998305309696255662752918962243419483164355675542103934694346390792103361748751198464137693114584586066515730194913037916343824213800078361587020635118008211091685618098176906082312760388098883550248299458254001589155776775066727636039662972708028564047192739064385314276980108908286511951617228443034091690524052194430230053529900180947342248515681777910633527263728757399053386100548785913767396057126321971073515248266477245229291722957259457103366343054674104195795993831008833058587592736904519167001209699254267823534174908382594901909137627632762629571968093499959181835251123629866811324744396462651401536405811836155268552201482343319719727833828221424912147177520447136167477147467250835733886928044653932463846704886839088682080573248455978878809142011864998131410488228428239293281247894903712560949817227292983253928892715052421714169593497931902588190444542125309362103384064028945226535653733181125188696346433416114492084242457614142594214156556692083984091882959775822566526535287483429740122050743563323176390525185253870291237311301385511968789965032573159283846430828961677251424622395408861262558343049980538376675721368532467193652828952945556945697341863370666900108287020421971162229501629892320723742527401032040615362787689758981552098621976544302116835440495635952462882394647392597147978439950290165963739896902960660888336965197053582651123956359561598600882933741163376756404862323846859418178361908958719350312328842218182499864325052486341147465197451040958557193375706697835017421481131830135240463576580752665350628958947751565502384928921441126735509581773555044030012034048646823581882116260707799155176745936516629975653895146232174310554641976954353144290022629773536284227617687904889969097930228154012745986834307274532005144680937355157174550956556528592252574449458837469533811391210261517839053787515925883408593132449009379393489665335845053334465999067515014907442913080572924342402648733032288599590834423434614980096765045153753722409400234231207923712197762588185308326413492356922271400787086417506255473731588945969410723009346985497060447970641262406661432510417890804497856037618459728499068483514055142536703530830663126218821947850993578638142515551293960893655718480257153505582232637533697371008028609463236574616680269511895255249518992324483220751341547512427404251252502776033643775430401615993739451918583439504211617242007628977436749115151779863347965215001112763059570159500470121616550952182229393196419303364454066273103329872539861768646562261206279164453949177287443839344293946419233635941597913842204465359760427866518221295512321293007587009557083761944679948023404457603960539991859413873324152666420428885745607059830328065170348268212157871629165346084733301842222178711816145336511268850818542139347446555743159546102900065985585660008323412407362999905377923982356606654834942040638205039755161098820539307337791274584538455155023014458588336194564985348843161189439661482542996875055581194770664191119305636149635534381094197823308498895726015171351333492958320331289041308389530429030375273600101868667257364479912614566262653640849429974401576604023615646405349057817495773494772429023372946599163441711099426554538412626305407250640792006066625939479005798366501510201180035948405179313877035118008827148573121041322932779995650655435716856071709832311052498445791572862500941941853401443365717075117556839407004118052070553951629623911435662548392314750209720770530687453559690911764471442634718888626695258411390252574947754264600833541792341419898761582756838060557065446271619683570315571257374191771738933698937964505134711670917249417221291872908844842266893559607719678835058812128294537493037395149952600101745691543193543069408861857182077964528842282965230201367874649587994570332554845003300446163444566385884761708697266337224927173678901056411985254503723992445680406699192839065797418276031323010538832545931305523096423017099157571373662639334769191856506182506695774304186561049418121548932236333743800382574700826060702591333489039069218282532595567859554539681177114203656736816285714070714612956548934173814389872876175209823633275328669406690511134172326972905650042350870114968705085671608541251239411092462559057108422929981656114932335893424179011723963341610859551450982285811998414012303453274827865555305909551582874311681967706104960913651670289351281293524359808564446065732578029262050488106460051143088319263217337664362707400509663076026856219992548263252971932882650329894215322837003498849530020339553436356485259211094326363384383073312478507088551371853643158087726523057542154636086963365305717582111004842502241062896710303727151572609342632338529817868822064213693915642585559173314879580965224239270332793110588693888899357316687258729843948050960930791678950382436108067169947581832109589210791870635920831185320967554570368336304447397724531466344432803347856187282017185502374783247640983575965340025654464060466203069035597035674317939741483623129668310798462140850921083179542337334038648008742209716961643688153509557797579832136331942827061143539325863614840131798879309198712838627287826020410218340295400175199347553575656421405020760284683147429049333188575309174289045473215652063475760538842889630003232884033641331259474739722627503422942331118609308124865667297500484664881310236626015225698558642958956417986078270722301014669570927415118828542811083483828288152761166529534163748466863103207446479026174289348626685146886854715468915876481919082853443286658761012232953922116314839793653479164571867092201858400248068347356969495239599160527406023000350160676052513374469629329157391328903425896355416111027465876597896814667373824307217660647478619497539626452766958324090604850445372068400573119412452892634742177023312798395578540241220967452272692668881220475284997770458750433584363622449476828739276829854347377635375262096836359025223850066900788328436620358893964062409846865790154935609496413537938582517848989243197405518892794110194295178504735158562713541973274249548603258074876124386721571231368422606017619842155005408700513953061680344882183881529784959058666135077724006455186355047418545124287651647590140741089259271287727097019352230123269892174883206123961548333766211118059827612546711050822225257147245757170512558378449727687354441135728553149494418941638745466225107649438620696883992132674031965447603275918683445482918602849705110474591692854798288762992733083782262926290852891249712981414174780658296750840528274968049096738266712500362330205916219713862991867864848345026225068420839961997775310424392021629850217960706911022100901436697496021775446763816616128780144353753496827600245297920873157968735481380357226344244533794564970568771360132913628860457809156114323405206732339543191144190526323250837653285901079018583914531138070287884375548664777906878732242829256272385827206177342786139487365783977824089213303808246667381746277795033530481776938810966579825924431444556912720566887624931739442173781810182324329666889091903918371010425496512813434534652636195264002804521359185837595739252930676312008087750406831542822333974821908092516535203842946846501426940030764428079760705904590041085267699591564863266731305856708343097448495728003477931303856658177658098886573840429115938695265624247816270826078477357714739493832721737299780119703384420178900568384435282492393483806441913956810652057344408491239242581521896346928549380668856535132200781173675436450278598105645986949418239857558176805975281467426481644432886319030616373258802082764370666403057341222656610130176329536215714049352966480489319387619198423278125594999074654414466996118416118808497034112051211207671248742636261037309684761315688871932236838287034328155537108515568990595512436144385649467661606514773591261167032382347237104222968319012591980945990976097806885849976253564136896404277140566960304360282975019201015185887451833770633096445536412928802915826993407247471947167470549774248728633457786341310379426991749757364464974511944783567073030477170435455381258033715764665844387066910306908862804600393727650106858874218373930747137880892731007979417382124847719153330956685737713064647546920002024931759215843321785998875946765714948064299771067963435917785167516898270545943229779261470849893886483653762766472079104271033984510516964520474271237704480766217002298542673812061777844756166834052895875618413382181217238926875486969362919023547287439597353608337664408398031272776371315564197975470347725917359115953126544634650603741163491580169765853974081199922784889642409375153357836476742944168010031161254819225219121576940086865800251694658736855031675378439816242530100862593624996748985321335281232012575895278438895713074525224585658608742937693839746701333109881384481322385730753951078260134417740374477780453041713628925200805447680421571174782801379511212069485987147164171411865685580603416907421601225348019748727822322776286900933966094451339728033151581475552837448828120490472351871791157090187041544964136960206107185681101880728841300166882237708301356161376511624700274622838735842644913071348554349033350647314786648588619959015943049500835679543922909834083696013800876844215548301484084734244040242204720222052758612831786206802131848315519065922686588657331984162744974872068621026578480817557943007368332789633052868579366990895317566961237127213201689655442518802449026388149569538776745571614636435435721360366922817384857767789937373907463551863820821307658039419136975939941260836323682751700760731159093913393775717395247410356009063491849263884019308140086117003527204534797165620455562166784417429068391014064626808883147798181216959819912813833493733213836888439955902272936317703811888669563002685914473418473457923640248668156501338596262308651384793372908418731442731452074006696378875957846759130741435851620062308095449362555995857888625193435421022785861927007097199905195639495909801923991359486268795059319149624859262871810930080992675867609071356743449401334644217849343524720759059087355182859553306799282627827880961917564584617161118665287706826522556521599408127379363746156882365880791906393366818535657906048230798014402455349852380120054009212718498282387448485883621681480838526328804571823762725726617585160001481830004442732296740406120398647031637714103644563758343615952346175090886461986476367664950536175677134394821180514741556436160492496877745872597930725238795678556883487081865594870613485938446526230082538397817101564309283452765497284957291970671894075000589050539282705589836803915283272364860292624947282608187963333894524005743356266804423482739925046568137932356428296624972225285776840477899594578498520992287469197899770407374546210130488059424420336925540807470456354341681634936437359682949621519851085044466434825691869418376065323309149094514518475397494548845068594222684187808232764164938489259378172283959984192994689733678873610486455087104370192864614511866468208982992763134666981009402208818150135726864820738685857065201085828440458524295191070166189269990236337982245167584166926878966535408804562364824164635302562042735594044957138883328130872314089480404478259489191234501487458133764940401048842208160339491902349659522829871218860817417806505330892669963990460510990598478978614307330465559685057826190498105645397843636308634385780889529032583030010039330361726008662417994312872865174480737669765108647552636764498162204878299463589935037123600036002259284935233270935816341209820956891585827772751132474696402213036945559466187464699453008214925931567348715516151472537328746985746325508933113722317944334671845454779294695764016548917883861207148706925559431540363656981087752476490411971918368897477157497551441817501752820826633377085691203668351840505669113148639333296397515752557791226699790406938790430771612992844792564205346340868153858766924913421645906752885948628673024981191244110304446196166883654923646429155018684054368586076126547209255445720447530439404664097064544874314107726777772134759057546991932902774165821126257629816398817995999684287534603252783370716257801455367755018664085679693540793250323185001575144905369336788635825991154412007144648537139383421940806503027138374424832033539765589239861651205207182607740329786011196435582210131819781402686840495039563901836393386560910401934477658556787282159010809565577104731733172513297434349348545119701825087892944054622726680790698757793513294405450394449446664677070206475870959065883055785523651282753508463698922721264581754261035941067258522975005083161395166968243723194052498170641832810516522530465859698056983200323608347935473729201583585580888226892386759009215540121892286922247815761296767544730172109466382366181419848555685212151057228937807499409380166283070101595998390235468518218193561841475786592112162241947450009428678857348540288003092230302606752693735366767794509038704453344777894776219871700618948707521131163194824603076841313289924274736118048731092005662828080826224287263988424644493657606591229758196221212566866966615957487391339683308406653278241972881226218044843009211171885264418164113422522573592901703979231907610079173158051510017469578696442197945956020759441617292219619831032919207260653461272147859742674345024792540350680530859588716805129573472249792948439892052478384067840979705628272837562225401499979718960644661454648920908045351143664454160594145047371013992308006430243611564892584287967009657486689694454010895305791721098469750160508772458169815895328733081702747619483671619301557099132756065759769258487081313389691239073258966102562577273405405141727295369450850429731251576828240984252794069521459183648972233241212355473496420882741509216722626836690751126596840116121508518361440317249562468324731695814253652443282023083339588206688045320260789665018486389475003897696795891492772077931551206825663776245417093480977671484854157106960343331241981951465213772748670791980632552498531924242566347203314629109596786881839550294593760276978322319933876587391535510852415189288926457003451138147072979065823230594195149813978204704745685715994494142147188078085420061015605260180358347198722428956440173635944823050212518233298454674981043145407266740306723560655638839841175233720472436344000986135281126027081777052003956375861432594646821545765945484976671091676724545682123215020741124398466206923562078728400187260729574960399203418409051512182515373455942907507514893838611738245711413587879813477399263867919658056871763954384362668870232590082904671911579593584234307938311238657352108301547933650840246652570432746150232419908788911429503681052495141324902546213980878746146232047873460268426150072990141907775651802384093981785530160920868937485072897603695049872466870375087778153764400285949463626584518792512991769133816653204741932393827123540936577577329813252135635801520048050837466899891742803336883778313487785537836138905061628140561066739706765146859072589313646154894496877362641509532508101737590532753747101919217040355809998980170613287395777813823838484466155385723693187199925236419056778088499128937063968935981030634086193432138098184489165241537106460799779336450612825325382813556683115007998341922327870350618047341796765222078272487243929946124261955964025237436296192389635702852488407642981183648010597917964597210205137786788129912274323253664788176394463766136147337326496605788060330142342122978775517423560677701042371488967894665575548258321289648601620231133983225847978371362087379619638322733727872281091802990434343403619025733722956707928488010524507509906296669095522984138676334351127227349834140415782333914748838218520377658263141210777682049231462934958176861400124340396866627803506102767684269320443082123659774010231291825365014925439312649064772399250118678897230862133711727890038738416959534056318323564949067598548209857146619666010292945598913884599555400510139231200689607580050700567869954305224439862122016350919692891945123346611918393023386066040262080812827645552358339517932011128965561385178769518011012269457627594720101054478090373227020190324539982168235833474789393293418084508184469466566723404560957346913852689529264637633382953870458890694869374520948581993552369830374215955157799829731783666874431374971301838831182956577975386739415353891942344659422668162734236651797535071698963231319827941053430939680895198752086462926682873580174738848406241123687810065356469410701360285193196222637744451662256381478058535295600555411079855180816817853430259079567256898210314576906588378150053831550021871480105241885675037191615245549164202093239236640007268646733723176617230975947508284719248845810812671924134644818173937847504565117832205506015854305791057462067767381794395052632493295432858927245181275615130812705231906881542677454019660504005863991933903951454179148430965442334287051748799793212204743509717117239687795595437579613604768043161377917345822525595016531316870035671187305446265716666285211629735881351612478862526118261732417283911057601490922445899710843222611306053867938965699361775601622262526965437553645354574622150115152215161897700807113291070140853311229925599449848729793703015650460969544592148256929293701557723150611425371156103350508122815278477604941369246636522378286246730438566698779085374390384120710000387485718907609834755568474081214975468861486258575682069488732380801133541445153649297350916707558769026380120921451924758490226169082645188215669581905701896019761137480418417905399166572120822203704927850880096084023355186879791727613768985156316464075702590762427732239813864310644446001976953524552804991232096329815531484888221178939929893953232636357285427353496797250836925211592723129763840942516392957950339764492674022069954543648298030778679532190928542996737103422595743837710954254780011750195808793028629837530829802042655217172939439504745870216021968212547639981469082253846730651348732139885797390191062284031859024917633946306289082369765184682835032173029826824225248620438179756858373020337753820602591977372731938955840194717011815056239783349488997721751306010679960412108084195277323266332707965222096168598097410259756767669576510962103461427817980267295374355535600235849719456707726199176436843637919834982676010987796097093111385799165320159957523164565947643312620348502914629533422013917363979556119230790009535285357526485318842367796992253806837103401948896683580051496650441582338171735168372448848679561873862126579879103747284534864437972063382648066319888097262947852748077945989824499902309851430225416250513071765888490243041127579337571265273448072116098954085383370541971295958048104176932382535077178719783338366448619755783467884558135975808485203170223307071484528473895511286194047773825814461509454172578480372889682951993564856526795363855688495462917645773989724837030965693825243602646282111229608649144539596664030036472485078150775544832753530140203531997856478275857528462415990381957167314139021429975549453000708106449207140824897945812551849884878767985688704441122701431664320894511937038411471279475202771961120510255233840265344093612372484420986344440216262607336908040443690194414187601651617015494601956256106952768501809566999228091249680337381745129410028881847196215696985659175021644961854618468716721148146817081084742186197407143538697301682117075961552137881059270660436830399258022334026985240955756255271652841068347636194019147758008695614622713776433857615049476308640081818104164434418521806994967937981147010967125963583502041293372835347565852282764009327765822399278444461294803957250333405248359266519632421235916750943513443488106810006346505225266830611339521307008954021893798195909732079854983910429282699973994571197443487125851546922524705691772812393790083651477518439934357011038219596846502395305534329078448370945484100622537406428464069776700233252336613985361177936962811713948789875759713430154250811964466130233954404174504331277579146096263863533772510341543937050765394642528420885794788802666767224034114905807724133164987544399795809646915727838359940169854711307514447502920892955510841576451993022509818650679938571368991085452299388587571169295836800821403641427573819253996449816332035950082328747654487430755962643485110496670471089468257760371172111741007207654611466305724422872365163695894652296322007153660639017667777181421209812258915864007549165523107031178091772357795057371505417768281439119989045628476543432240444037727222041262977729030688280390417260081656699312808319153985551993027161258328767410051977871368067732399915306496021699519646670848969511542679932464107827874870007470468268404704351606980565989239078049405603935486908561884297468633917588070213344175946599619093955634906932329831978442174759651655789865539440747277672621817228796878669027807223847155911617354712958889484130155387160497225646698147940467285816867330156754907498945765679693063798522618719521320764776754210698962832304380683929635685865189489160342708997210775628504942789978957831572132790413786386930079876409805088322452699535094701798922289682263567593272790150418861863922968641279389140671697115550765220134027305674952327868768465781084138905222301697405712817585697466504804194595336938061382714319928305519899051774556235242976777874652886740869046143641548415972822651572044754347506428163291364274729524560966715466588119905687480833581335225060607573976041278930230856641638964430006727652268970229650188746105161597539644445177040307406060003274203994707421257837212501332687427856439240471858424230007853453688053019680255011807013327515748207746748614365714835936338233140835805219764591405258117631179871228440638506124903329190904466740880682016055155269186321725655123843132824374978703515960352628800584905465654606154943819270825687295327344011223253996052336220785046026146313735215573546551620071878847938126628606064552152429827047857926776642152464425103010080601334368223679368309106347264021539306897579208313037524096571703019007454084402419992051189409908422617712366049938217380059923818208869881865215024834345975384958267875477843353818452949889796088958439529778996414542497094250570670509367647899778016590709056042854514470175507610051543487132661773836721635407969248182484465768570677283351847914877692348308331146539486051351378941626255398101511620078266154732329715743633823046867935490681676974393648218615470588475941941092268516472765879143774021730717858770464157734268107644132433162770234691288410838267561101701760966733276970875717998434933478641661386805978227440682587133044442492229249037222414152627108761859418107680033108844746201875787310602407843812877687757380012233104126777696608091363216512214264015398902046370566111368333576786540281661862416268359670832753067771674298266660682721511054243298958262745677426930342263251519001622765241329316953062025730868208235958094490199063279050327664169904753346817071635506626042533586304346356068495389354333637569215021435173424769810575831499187393806711539236413687623321199056397859513403915087934230425167425049426659709303645919713834596413131414356761261082797927486847250628397170472363839687039420301676734348796288884541375685528283857713643409896892205113659813318113606077794959618765936679938291571385521964037886610660593041733571324114808320637729444798178267080150029365116428262124064699662932718945091333954643240447635647270186366375810827402647767598888554658957375941056384102879815565991547163118744340825029525094371729940878049271790613496551584969815957646261144665189821426689213526141077710751653642209165985146741964367689882785675933469823295458853270060270474534264974454181697768290569642221954458007229554480434924563213784962665045060510886594495319365976356294552079000125680529032030674181108103554656889456918076593005068671319145342582519535768000362858966006188991755565651516991264074430268431445701634541044201858499192984400120205059056903578661136279206322826313740082372089028950625932596899233547513623465353300949532637411434456225323509560114837255100102732922395932350470407216681282594562359475833425423448921256909505582509861706690380225503669809121666017586143615888649860361217241722412898999293037802531008670228095043980987140635294272218004500972815649389065185017081535151103455068627670526970428216201174243206743875164861064734964229251997764245156563069547853981744170753539974415333685608244273714979230338810539368230426798553822344695750802585097752217831878075373759210532396451374466405291213146656736187283945241143712664931426368626106373952905754665841867834776208611665021473651369399720874180638125439428898884050699233379893280682732255402271001641520664886899414408618369835093956799271598800139172988316089314815099848934472557582354943062891531688369445191009516079062199257264914357919623214085119659086057531717898737248520733361815666126658269275758203718189906305290959326624491386748800220611266712230319290057317801416747953908192222391617219430771446511620604590840432724204587320958184212522738802575151802884693768857181287818721101351767862299425338853215692790452502979696749547885117929216784428621484945122421512917240079768305784787685162284198618427189341160380279474620579076562996825771425475757465529401649898643154027333583240475176404646991937796476975525886055519496629639656081617544224324899814168384507015584290846053031155130838226726857705952002678627332702346594530786459861867792336760718687903137540985240927207922281162643938743154515062797698878779580903446822968322276268810062686049981856806512068353497273412011931544041057511520287221588867084717607994662645070685944809525375810809749183683743970540237351543234386141285408157487013794245578044523574212207632711267069234944099363571934010829236611324845041952046606354070936823999795702564980654674229799500892554667657394924509277742404466734972932263940802566388811227553165781128158641495725514016772294331735066833989652280720989253917340541205219411302366342511465989264116103292089658973013715904939379515252735445970344471197519909577216429941159887111531372457279879873770870222968771383905879655549094516349862653054039957928022995578529737655130744612980926962164648322685990100413431830609185497687681257329202965425260373839448895162080328328778357491940489599104568357164955756308431970132945777758931573909992410122163321171639081833599297288525200630017055978593731283625366551599230147564045395911787612102040461215908838238778058267375640811270485897663929343010564865335154144041962286017626301419918470951891143268835297969477507901061985742947992544881819624430309001540708613685067455042370767418901197058642109968066197102992946105734277784780028911754988559082931072122177977833683514428733635968600562290699142244241461394779409137915159918815501383235211096072476881434659114898127047505145587253962502099254421406996686861694368573398446121211311271048362060931633812162510519339161219686529323358440023453116363860697486895473253010907705996970230128433579879733925814980767539454381008758475273029275092106970865893362794482356391380847973808849442937655011376747618128224690567064806536545123761532468999528584740964607190710362583210711469945021216031760670813968145247720550812142596856539240368771899076060444023303134639942572333809408205954271266462252240932056215898692838032934269515723753647660039682715024198360774870262970051860281144572132627520251217592581460580864783098921279050539571088965570681400164998467897095289738257214996686715966586601342712341817154972943193623823719669360676091906237037963600488902009210983897477930918885996333576621390974419128692407370015347095005995843647767052606462592091839755921668659622401073356399621890784753360206138249201342488750316264300297976357619229381310850341829066543154138638466981026150196727978390030320867229251310371893561237771803785525219650482308816765440404105781402144019064779484676287360735715419749673114461839275615594940117418382583845153037254266472892357922083823335352099606674100031845563667014978670861877243820490550072082039247814363039339721676782595768026863424311244383189590288614559009034872889641608974643158661961622503999902011595314292708875001523907339500226607370293939751075259675394003160939179577037980960128926509583757237173777835127523583836409391690765358123289537475690034699558049679003441000493909599243880058129564592410170997334436724414343770215899687972917675623326290122662317851582030726419200302497788679191769140385855580464434169748095617814754135922727446266133006246970705508931108885194830340358975497678448284838024360080194919099240996916671085671876859346390617159098057070670270129815886376554866371424707603260344881110980697495280917660932039847229313228436829148111303572657375596732520403763710723708473931075802781953461340138763194113799593458616166971638644671660775707423478482434655661034888759607819594596076410187611174511013203695889709339782225492396094325869749844948497665021122606424783760078893393887076195497317240214254422046571536027739383953556663911247106831780928849091805692662718583638890591971014225509968283437686623452404043570050124195850704428457128893851184391808002482170823043102501158071523859908923127918748352372699751685510970697235412726531075195622061832431846515466943360342859957514425205672188141614033297011573617426680071514526873873785976024919017133010715462571618622377817196301190591609342834246936200345575775014286054177201796996949980345748005981054645043701161191574968895779471729754726271408024547135987042144114025927258936766642591055456374139561399013818015107391656513542371937169493007417506769425416335762269008008988252023838012507897338077107780986192311906992308098810410264876957721516182167884905883422595041026182033198538859659515843761475644692938588165398391733941200851362584591726147081567697413222783498994243059792260841898463243091950571003966750304902087479106620149249080722319153892193234085278346170243693330583579325754745745594936447964531798422219605905329552864233510059434143335654258377516448187649595465963597462965822358572145963664681439817514408643894115587321392705116337276988937650271070762597039444678028582392869822252680738600431945928387090934180913061857336000818771718427293847182117960939243653973066033246811658522890205927815035839777490210031627947008454707489932223310681815590411225763694327465357721004296043283806031699933589999705622842532264841887897367962402367336010758420651903560850308966314304015877797117143003295886147534611105889506247627828215725295544737392796669763399970886798494746871966044915700529577132115995657964042846167960647980440523101975636326678450384195754944669105222657055828722414220944519631915658358436139625454737843119699208808632160571183770611083055061022725394092931080274021307580637109902671020293828441439520102536351047285250228935462311685879931633092764541347797732145837956140909068661843310261599044041842640455456570418106634224022347996724763016975067513856545551231268948612621420225095202644451569159750069408292076194236172922993948011430594734846440222508109625788882214779871112406913641555635808288122520020313668228948483085632790612768073071181314070802121387639972757369029478524863250965931254296892006253397078033365281112512170501057905281666435370464170466552477161758168810295632696710857055267444518643844142961709128208804094548782522685219072189855715578369377934933404528595982102957943405507583729536202412994086245909934458183142296657591898340157917703489760290571058409974647410629579758489941359787616525099188842965093407623464813183246792582949790865231398281757769013327542785049439541302511790252203345614283324751635010311194783662455504896064348738171386057814295854671094451027533090992187111657627879155215001242663924398367673592941930629109198014901672279875340777247116376187975778407579147601398428939944697568675672993366095070875164431260605742606056778670304248554128271440182190443190764705170049443990286046864785046305913530211977325306468194227823250570939570571242598049216398166346462130718815784244735366712867701630398358924893061299524187188638138179722932088138961830875744906377543868650699971687283519317885332650948989706780295352846782780720352398171967028795490422670278410224073439991829994483000781231870136061959186138434618685349502551526688179688685154199935550334237394774246656847294947135061200659733096089885900591847428395733610661856233206053491050868689864133277988074422636518739354112152060144228016649203431530245911066064211777670415330098505483611875315126481359891363888228849222748439553285916463430471299697378195865844156512760989514738361317921426792731307292534841847292822449452404318865567428728446621236827771512605795685043443719628919824951690946493487905249582108217437383239812489257933602741003264346508605722220065322748758353911445980501050681054137339099694903539555900166075090184227940798238134709150303057574652006573854039892523156406002134629968269750967181952837631636865286826265552381923457318241578496806055543527959509366933171990863831019546249055652243098273983703586995369619626730084130105085604303152340809775196762201772686765299880523168811227639547396452715923568375164245680387181801254115728219702123265696890937448119519012613760582639773907171887547859127596849399781061397740795761906984932900841628991297512960277239095143147779636082556779113225616308303278546316049742884162010272284047732028282630340107024241694734206317043550968172404393059627644168578765742919262698684522661557970112043921137629978287400317957884924765592988146803579601693839657874297198889003244858822671831676809987123408944716621982175989700309943168897828251560854361579119176917441157578100787404958009016054651385180698710957492524356442769951017998887520651539984393129917569240895253094412778789723545658757295840862419572575925960065894000604769288250814810720231712638745075574127987992151369416349764349963802664379261464187937818569733416975081678601302378675233415020435767170602409054767282801606766057767717572070559910545396273117366853202176313660665871741169106490280114315382020788003061821674319860225937878895192321356899200750042137931598167946121910354200462889974201902850798793940804256298992297457728512253423123273771113085866178995227648106605295467962055074898952545085835018780827072602603271682211321667691643594641582387055898171695167623508977454140808122840092129587330206542381082019438514621606147036994824579631254673103956341925537115806825308467905464822948302585832190182953739972024407175364713377263176092784794713089600563819520115028960327843371857950979060070739194367205006872959952683808626768072252614955306600256997107391652736962703907700232626577252830011290865011094458079894177766622599100589140875867890161955005326152683240370747912202087031973854101009781116872575381446048174203812973679315157586378180899426777896995182857839724140910961813274380087595465745338789293659276432540452950053021544308394626918869776467973582018345950779943997406596671004552916962127850445855426034971182587642071540501190226127563614314730939449905592305105145318963480658805697710047464131797128352650504180198090677753967088551633877482319728051028091908671831244240207617118136163535751825809814366406411623295233334091497095932430482736879167826058380247001191511237409255782921807224327346101541927818577912833173754061789587738579247009456606743710738818765070864361743950961694236616102870115219958395173397646233004781357775102075795402072507083382643906716941154916890360915662421494622558616147625418999389418073526381497729875124251401688912957738557691921534037164911804753402365947931289018804411557248621793074693451201630984808364217192402784652215684767769509146748099041928255559972791497970188304792469195064265481294216653608277363566399231108971037810430514856626912993855229896382521546557038717149056856355730845085780296512247501388869683678661464998623995849109541305207647495881089076962528355635041164988203467744952577724741933099249809455264667704149745770082901998618663643306930169742504266715850699686571204298320023771020678055272109607850585345698310415283293478685264462186563859187119472709822935853179758710798363384109089082453343470617328177750141676721938684248564606747035574250621406864261975563520454236947150500511789645461130018372368158755956755901015961117886529065414207380114935363241995339329527245221443833956504278476605436601336108387262845040495932589018011064998633067153991038219233342219615413005372630154213372101784935286896700814163109749973360749456282397861205093615329399195686324798089492053106547480903940055757229006671738540252684281806587571805754086803131798627038533773010279066544478062112810466055688219231726731736516792332583379355088179497654749486188285517287395634436526836683335716007971738395485218253097370325945239168701087866444495188038057709289013351885366567422479040795720467325305740573444421252849090209307988344534330714178255747241593274353184661313200766989188524011303124811147569128956393033491176766622934273837497606429130727477814240179081794122964284143969674852564556059150529502676646607583456144519670704653504149509096060703360188817343716544581452199490451203035390403342493245954250919676658278069597534468140503429698427149784056083120836909319200241063043602010026671738157651366976358207563442241877411681836033356042181861488966433100162356527662154619154678532216806574079224520739634448740768510154497995465598990391558279608461792471785099106467350178100660322812106389652873709418600815061799870998601192399978261355482489701378706417677833186066640549001211874590142337734941398951079331450715871972172051944182459814307213101829672301270648488928031575576253362022057843224461675675028660053212416243645416471797122332597717458276165914004122094936095726506006041917281330299813174481650253613239135682242443745132120435461906216434841726720616785471075519540204431059640653208385274779922609393691864213778879128326689748723161146948172710441906491712624834377455086909851231955928991201943559117239601746459553204365926997411997701928470437010500477382433682267992910293027322604268218541489539236717130390222461949326870941330873550286521973888769265654750839602114439052969077659507143068224069344959372325916044554492765910850840712574101190420675894421932846154142359649172475512258536217579987473014065560958900014258221963541773530946628778237650357979182789117499724773283879092416107046202707682641066178755114340359353181339477827073857158807131051670872157183488888121940063572806017754071552537374574738032339696588379121756810907013679713811339861147659446666551121673571834698260347755715960655226549656207371312186874847740532624372093920125853541110699496538659325132307168409095111504521658739601072083452806387597684181012435991400425124012353942800801846634333741042714137217993797825842376372356995431895877059142848319111519300312274887904486006505427957582863987871394162916911537272529797402983155767464740392543953707266861102717378666170880225365008616579513542483055405545086275615334332528764889681440450618404394613161443701527540278230526901240147744297693535605350266780262144368675872782592922120239482566193486956505414914009415302547724435329217286627824249750628588019187199597648698675839560695710707877856558286911866185886800784829093534835168958503004187392714702067491849882170292848156701669262961176785976412868064677970224298110996806181329576250340697794946856687890827086950711506999432239816197980987172447158471795316321680139465866283547870459145011356273632527407413149778351855976654182409745678864133822424757872556291736472003576321017477498415943994854501111305968114249557493723781172051639523793585813819805466849567629927758773187902379357479682655913145578247228067135176940620529808319753907510971742542783148752628127252784525467670014564271116758138306631994280964453303852000432290440462269326773819118151517056767362418173952955867319187858813792820320974137939302060390361630996436747663551307803857362468414570247413663574915085798974121257836855007006533694531651153757045210865539072761531339314641296255529970904013112187999907410827439634131374050634283865698749280418906037538184026411329346423425124061346756064658593372359044174732665229598068190557933042366572183832643181820775359875302020441990836802860395828935027809613532567186962110501983203419711022332981246224895863467620614437949554130600722606437732787697606154984949985246985424928807964588426450491013608764575239745616885844318317601985342728978905201431265165171031589652834162909766283736049688196954691513102054725807115271279058317805580471858272383913370021684001917622164657644972573739663195594672480739165783616698191023280268979691956567917195255401791594384283618775860719786437373645920965522767288007517197489005243924496234988147333444575675566091720227318430710569416829509663357032040810696356120479686085010150891187536539033728583061878709696367149954396307563079288482948602571794188693223430979686008808807307692927315687010124088630857066492799997568493537789094620539388002490033542020998528161545640914515804157638357441358911064576969159592345859911233408063801109354448406801700125528210909935508964453345277246306379144833809358508357802261216665041042416176710308342927583794768026317459230039218535384390670795081127313754675036534073194037818776144695166396798722820024363860603215606732161595778304578130461666401415707379894821727434150463614571760457149397977626742235273676221180322451065530799328963670094699414817733402961232766649489597970508349848436418476109341912988228975946805698852542171953805079079204715641811995755102615480137818693255992447389180273965449388273539918031917061314377812395169175878409976214311490718943578677885766409679993545056034344613007580751190838053460442664389904339348580922757224135067666247530073595931261392742039444485142514506454660705101426146998369721158267482241052889733676946918265337801530200163837043097642871865392712238415953356438163721931418632571326229389325934413677472725487294560573621739629128500842606201421505086626005056560461131162315773820979836893143982854429006838119088575840110082111285577817914916764685662208978845625342176043286873894444465676951000645000393036823434000749488595236012720623144155210468209508499692617291893182288800557987452951144732590450517972963063586806851619594935095969961906407294740137843473249181012746537142132626520432084364561016784466454538468496932023234619857725604558264599120474751194501714909211905855829196599789908956469641617368390337227453358704512055568279337280290047807927513420796073795120116780807099811206072172332547913102947941568226084589487792358084209281912851468139492497168350910271754426766413111139055086391666363929299740056560344169785897285988962829499816193068899617425672767101744558287408783668900065941599074479858428060481296299347912909934130843505987645543732030036689806137968618073337548950531276452691968967354555965196297883866743128208067578695142555400415647409901735165903232856109780181962323561412210019190528633998846377022753375846870333172899840323394095896813464321457073845508251255971160569073832518978917715458479938874022034194217145705684735205132445821373718371787252316751933886798929284603675200571776265777528235145224325582800013807312469909113387182264181287800683135210071474105782748066080084068651170346982347504153078181302736185224826775850756382703559651114516881056977364610843355731296945382086708566106710355360223642337695852198307054104889215092008054200684554425438959536948463042901077192046285019048405699507356485677952075156727848903345082624664740838973907570925417754609664717855280987922450976983937176653667906634327173887721721152574488433725329103518949912203023055119025298716065267224412136425476373096817027373971656132046002217814592407511873223483068765031741486149755667744681116411822117083506769413055681481954857116317675935070175085958426952693945190884118127765887914165765837853208912822151501898115162445969340015879499482541761334125997660418772342237352844246183108605478969097004687945922324434654570786222153348102115489743373718936467218164381324804607739977555944620893966591108707301720126997399310903356825108801434221477497463091795007444309493551987753079111410702727910355609112989959998268357030062346695625743909027598009550697779348335769454482070659221605609257908377162506984748604285670221341560610806906401244907422423582417768441333173072552750384295728181762636482816506056979703717256000978973967015124986822882231928959014224409110248136346125644775305453246217334250466378280517344569161619178219365804574376269501948094190660050455557562874124792198336243591937687883306422009529782180479870742481723969389839868231991325794018887421251166771880162488775778837987179238704450611012910723472559817991116131279182334695235156122343507942236716071162081033979643466693858899713618980215935043149409595328569833585521978101677424734378955759463193764311762100750918566156545812488021380235634903897599839025203882461898688649808494800882857453802054068931120974744749844425633183713734496660215025225828121207597671420142787178625176247170199393279804287313708156374492276252448619268709843455842216269675909705251537327081788681942971201205982787497823736840093252813347162998452876834499561332244209055261518137893932278748028392110806070707534144521536632724700789864583505912798778436112009508888585270218934757357460431800938957023327998270813924787707758305692559982637032258897963776222628114200018163934956216297442716302889142082436843894182926455396432009164363632485447867681268359219701535226168159912471143506841134960090394031735280450569603560368390952824927658766611268332593886992365503277266718674526567725445392648722858636779482975364936192089290600412385625228886699399143765038457916842280769147613861464759510851582071790665968623896895405667791135863566230154901228879962503002454024312759942305466059042638324344996190466256003110703785206605080599527533489928611181777399774232081682550910737445921523589782439322638049720127410795596543970864803195296427561714755536490078694466193357760378141489250478210359111852589576537090799120339070637746360850498808372675540320864638712328985683715284163412713215658777500552312152058213616153239309406973282541887839990805437922597903433275251772338725742335051843754486844983500761641931205798750854541615808886371773251836573098626932195380851665083851803700918430138563327125123713681101081233652445955739141206728462818856234508754716483145265466475694768136438681505774637287301912284594269261434387509782530463200263438453356891409394382530681666132142069854676667821254792619311788055823482234071977838532363528665125112651250389139030853399905130982295233213724136644526888807272074520583353952443443684442739919897274861257795361653821170345848871580744031015930767757111720772721801868759846866769989994827873491285540759721278017915628917542564479740677179287783846236700487879708729883227792559107483651110268312784792794183715584266525954909820916329601307420761638051399938990271002519266387384669677561203029044092727892046263911690672000321927258468831979435940942184081480825585828779562757963485932259100532712146418081749346604124487845997224760780732316516058341612031554138290218455137098694780294409320621753330163216247280794102126864813575356852877578953354528490089673867661288236595191626179917991710147419246279573571124327685270378700375953434436013863548097601050171466333676556969328360033454989310320801932853278691240865854096364982186588695818450627383758570479907659548742285847795826820445261222311048842962240416729133374025996156609503357521161867886492981353641673271948223808237254705966822893410775654129689647610719175619097861569091241631251131658669692828202248890978788736399421467181710055041964127911840365677866913834737702725574139960884486543491275565026595556818662578959238533151549879875309924316208902548991705250073445296945014772925664760832143846343186150988540133655864022874436625451255720839141276064902928438271087594722447410421765184067087213325808570518636754943186557647557201779384234398573367092220861466002303126904674561642290578189674568141469607278432384592401161145814615374773497288868583840598184658415200224480428601414496944989031099792058900642530807391959104609435576981888354454242713749581566089845188887245178933469288445145905937585740556186442599060229700242117362341869329622893754188781526565490793357489457924133981720005115310035226236938819586982948949381329712894080436523596441690092612947475981779960147133849827449486812715763106537391928386630358727578852461296193238947587695766651529783343945508391124047007236055200242984097885976138111403546950420789241738117104189465543681749212272373012261230767962987699724115360887287362090948019283907756326617190828582489249736234060615901905144461312506093281812846670869994360851114493304464780400675957923314336748197539991562883866923015834672153455297719128092831697931531600430612574435116083846027941954952524982418448309871900850956223198163928144856217937116401256626524492573663998123447596242002809659842035167412864474834945440877039105643559834188465932899205160299579022648480839902825931944587987048311755667779381946122358650110337566945339501319066006507404965928350549039206594230229029941247061435382927107752633302123524570316972082398030199149031507450849988194542639500743928691080150678253225173768595859223170695195525715303275325579219403917461134292264451217677534246118988815108186055047584084583252333733329677110834520477926444672675534179612433939275028604742914868920029459885098054837832860002639380684434584199616435701158650052362382095175787376346440153207632844629254480745492696286240851535580933269535389030312230009428018832209520169474839116947460448757434727784108216226854729056389682918967345707122248252566088950112160803359369757935788382513415568736019690820139463919059891467285156036313522293326005687637471335843993946028940052798476817474604428698017493698634908152671139508479000871664945775283711301104549827870272783803844246487029745242447459407889157981177897566503763486586022122789909820958100765607700070480358017902455384138925925400575772921878534992322045082245404037175596076268162385311181570476963076753465084423461265874347176683384919869490396306856731192823229590634957190341139369039244490709429553954474124092048574854364616950860174252185375265929461820299477210954356534980221778048316391402182474360938766568326038389036201307454216993032093507135763691533779878723283654280203928639399060047971628215263396251400204299345724854794402993467730729450570527215498622557620865809697466181857691736483519029928015704655492156986562588046268804698035768295324664087025708744948596026087532125845239705228738914801795037185334841558225798698347339477878873820077799561786069404820718162733070399139125998374041539833211639033814546434965862421772365000164792008716450893851006347712001657732041864781881056359580050023203560990980093698455896705332518602042957992616153629082595698061764809042722988936822378072363619469052979128781450150861409104316091470992807162820070866191640421617191042557988523451750946321170798226171434784179049414130711213343644890100622041756572263443101420945559176086477308310230115730923185139371860360815940778035424725600095075444924861378161590073068740531463013643722314714776235914636521254956057229952054637451691171874292544938078815284730705933128310299586601572435656010596433460916378535528867124181290279120291977051395083162204540209114431024317009961239034722083855959545484425204837693935140272703673862972082535749388419552036479445823004309287438953877047861794626524287075278995590220681433284543769936708141199687236775335547232708081160281013278986209890927951920021429553315513776328490017663597845929099887026813139541014700615782264709384315070675197212278242724747466052668697159837628813828419627285076682815686402440256681681400983251280543597597457336392671132046673182056442007488304112395842582499776385312788053607972445696350480485481949833146942637180423165354251971334389926880664034835613359930216800382355711058101140803547916027319527735764113883525051742192008830977756010941778903435260941900233469207921933113021470057414004491668188131124647820360440628392012502094544511990050494322134765202809158228595487658683780275276388419720413813445166567583009828523457436765442370076990555536610637720649861554605475541618299719645237569534923293424356012563775167513390979718874930459159901390563089266428168640523270468631741011810963303311984716856939353189258909062804818730274560846588674033287185205335486720144065370059967823847108922706480534110086376233322628420124108248200765777804575926187851248527482685088309338925385125312537047208639143933944024635204398088193206946516714807310830758237604616348288265627731051793632117691454560374795642640917755253756906376181908346104706638162474630327551901028837326485666620260028203720313651953735166603398893945800653416528101947249116715080342402897818082244487353092500681808513395355507668914135844059072801677276979832249955768115185767334592288619838772260753139657526003511200257269839863091564546478660749459998878798706182884690225544486271421918485146977303449526642735114355118591865923437240031759035956777059485718073481514453080424791864601576023813354958880709809630505975317067106896037536386913898111823890886232329787714026311942084726660357473037994947031937583971362875365375544419038309739168129661509009807904749967521016025235865124053653674704041129475388986039362683347678791019543455044927716500302759729889900844981836790864359583303104634411120743029480178663972228705198116918571610720255703493381714966730848909209739112774410189589471413722130874880511025471614076487411036057809456735718012679301643230210296067655125809012157943473944957007976531799667303528325021823685853291350284037029501074402582678647936172811007216426907226137002411311577278963936368057223140899731552972591774818999972490152353449822376401879122764796275317628544057032088800514942879732776199354156355402711451771776713300507212225889683930805561794110907942193997407934351596350640932656512291345385458850304836937045460263934212984645200699828746361927292704042775136327295244591839498703861411311129085324675069531208531609991662629096952390530074404307544510479581153849326796483050615092458218638174084646384518667163611589693202589125900444666321958671433725110126459019100495338085260207447593596167553853163161759575303552621290406364018872629092420293515338267069028217907923451957763425849345630194560621516275769839489523239679608612177379554247471975204054254139889217550494245244456672694642162294875432970586749973314176607453008269819515407689232595751931866960025140480598143048246927613298783173656516444898957344520883560549318528512357826646754520453023157870898545061735423188299695862325766816887127255673940799137809971642475835240076869576366038970720003786386171245390649931557275979171407237931961595757851294920436886888450889736028210089339040086687517979487594887482445511702714897176679113153662401408865917121265343530548127067994801115944348796973382588025963036853570876381133789045647050874168654705774616444324509378053314995304717606365083002416937237099653372194502544371226756801835325769547550313399165935978759482207065122228276612877477870727736261328306035769357389216662737900258105149598369418651876905234154457766091182419220698801823852278635955166577287756972701918156616249470488938549473401333451199681554701643873784291390250368717614453750543405753657481651619620641560363571037382198354620002250910336531051585926979414441471773707032544313991917372460536372308701572029466492052767522298030621033195790365146115391468119792021944538685824035704134832140004044296688425293368815873842472453246528159746133399021425188430073030707042916177074245845762852129189891275486081618263606708984020004971746141476585453482778109378412230079309153599905409327716418398533420562356015681644987387004255373113077853866018925825502875168933126045682846364295799470857312701370333608056607294275133355606023300745693854189940039647191377540752889918897930643683231639755312931595084003539965273733914183455390962749271035905463466790102045898725647826587110319899841764720734977020775350466419110693713543490493660575857069882823726047660281766335564425817788364214547692686006370205307239276691583915509937564802054271061414450773983519407620375907033807507532052109879173078906963559792702544297353375484427784726666553954532941528542908662746462375721121484275229940926749899979277032460639986349786564526853945233293006690081169024853062517990564938983120408395305905845130023294232501613935442156189348015670111429154079728176214837208722046068458486199405875495198248261074599549058077952904811244330882428746326459047079070684566498378511180782275526741918395148486778857781273097823351818849611494539224278676515389923238128553100560585102618474053619377850396606554088034462044360806511957501633165290378590411610082193993366100176211741123841308239605591709178482585042013923064902418685299546270040000643350337614780596185642849254464001048333443099866381436748595431997673749323648481690110029012752400342623202776124499011933073254224844130068341700262123646715960955599587010362591332123989473775907839494124094528133906065497465527792380910015185535148312610178819288591570737561735825316215757076772605443039421303672498016537263085293681728783109254179264501019470189339238344674470446039965767720450154656392269552713305929839896141880885179053617065782527399840263490737852691102346296426610851181444181527627339940453409953143844350457584219394092256945839698289901933248427401340457946959789736140842733538003268212813983714515899610256981451788292722763786467420465299477729744804258432088923936616636729472976076663073400254189276870444811643663505147180075319708797672457418404415405194445703817164268199631694831506602330981725393793031118231008324289948110709581145132950615304225476151250524065100226470245688621197325471021659038078928394989637041366634519610478679725058106714070272008411932713991080749112343098544827946207260211273363591220200249163161414839357705637271311350925080973398193788462393819628283730981676797039860054638122270489571521363389868545612403070917088064281471869649729028623828834307710907888032048365888262157619631199791759309546095462224470918118349352555058743032040969653314190566846961392739600386199435628713187092198242917091071144875111967789565251104091220992883975860483849558471399724069318262100205973659576550520603102651001760332855887181940524107084339149223375826864853464570907578392584210403053567259366247112404247671967062891836996514244651615356136889408040034379341227071663112608016978021411767817605531856389348455821599424743263733614139393884098682452768756926066837560156458738398117690728220468756877306283893906927217675109344616557599796907631116547850374099885307332256003809816421934364555948201107249226923764090939969555300106837246954691433464138098191784767063132171291200371245192981714538065819338868585630521976009859364316992631508619545505378122953533072283531782285743998226274270395654618430954359895517928063717737844725432484323881782012319416902503061229387305980421446082397778767837275728316032471134398020380123472080880097633339830458070095080943000989246742336445036874859776009681374603495772978192845578995877582467801489992874859419741629198223984401255965796968645151535908667753061749334910930768118179444823353204258159173099496148927986887116725997480831008181293920166228943772734054311454251216117610648893654311059499412213902931462879620176286514436573885100524057841488222937758554063711227654845122864778168825129623804079056121948714369637487819314882147815152738614340536417784739704707254060935232702583334695799262224933224348683998554672230582630508980149634132727408547391333994582722930728779587823536385523243195078468319297693467077546116363010196962318663165213576876528069376035950299314577831461738531689964235022832428981185150671866654145482265340844354101387598675554883872304945945201792242500412065000475450090139501403294419280238902589273898427709572829588657503099259613116740778737653001376126891276384116534705833247233539411155345372878392327657645442763833431880334547013337701800599744889350563727024328504950896529793749259513899093369409361276756797815883351843316659318183793130006174643022032899652277756397743984403774523807761599563808576921550248943431262730003714059356145665262428172663369843131213683209055267724853828213186817130160098038971602148353146959882339756753480098760622737317477497466806476971588629443154735365977961374081048098107699124960499275819108586953658968506604667422307253254092245273077903726775757430623794477703233829283779464090748085073646496041336158183601577870543306964214048901755907480016261706287666054322702189444468089835435988438768784282148122263566956040484928970520370684730301444516260958399067896781476536027700584758862153978011634234051645226919679638630795499447789444333622419744884382917193355400619552433095192780598238110632078910649622631872681097701597574274892868291336298268871131922028508772149973816179172546921925166798002875213094320321742687616748827510269058730552382528599685011821736667259400294014164239481232430086080457700623743259726185834499679937017559341226162135727640683237358951729264464953962714258957286092232673962106859108560491327821352244895935156390792453812220390242565643216012578543292298634156523852973859138286269501121899269098654443686538768436269604068869871077234838431702413999040878873457359971499908007781515102164841547240594072076402168204779445064278457980387013912011654766290859388930277083788190005479558421817767360621347428832846657560235136433739347185869381633809174392480181480160264184256299646449033371327687802176706676460414459363739887433346767159919876921008230484783691843875875132845879031800693784448955691274938388263486478825248297403865473422055254699648804173859215198121172277584216611451493946908201899850311836483659804955924044054748186695693630486017123705368680749362557154994945826436763694765272999516261337435417981254315092930050842547473965366897275441699258030721333850752840254038055561185916798473617901141468904270633778845413742038008501327762289240847775209727571884799205313439934590334538883474384618746733633787212949930391375444598491966137484236447132437980982905849614933965072481480482009598650138895522734626109457928907455167211356003242199080846335290280989608473772067987243527099920898398139141030191044984106893955983330322136923631461030370163614793871014860131429522478615271233175680704002641979637286488139827300166825171113157623775617612401071551375198130812950685239493496314084383202946346559153655638828481453871957387471158364714140472949985561241565279202615106123312079020091195627134288514032919766823750159670810831948125200612807715188125603036203232813746539019524957421554663469666932845020538338126698023587930842731726089476160394663319424099519979840077216607821759865900995502516882220724066275399712458830364993493081234439519024793993615223779143475426898490580871076328487231224644654000943483691409674927675020822203676737570968478851934235349154913718359564689091564934329801046367356513432712917866134792969055445663033555777176780267046671713948417813390028784532287589897309909007535778312697910933434391207424258392759431105341961548019248379869608776981025409155929294433095812833583414505860834786747733677127937566560559693810847270722210687509390814047588188935305629409533128444293412034196602598772130764063709463745988393051206431754722058184342559790364722458468033665048703886200071823930341207690741955188802889072962402447090799056083838255698012169831969472413426855174915203067832278649589537320566756564337008397836049729770961565577021285627090563784738546475928125992357906158919608417519501634427264403618729632228270780663055761620031498897560377121711707920390846411835166244752918106300519209318774123833407535369282130417055222101497704943100356971058515918118823310518396888312650507562150608325627796472758797937541609896905663550842146081387820361862383543646900212521073156235121078868744713683278039538215884427446835135255870844976240064405608138775596907392544973327245168683517281624638921649497796662399249875164398400013106970282660245676936326399911646590573004353193515152419156188810472107971343491037119397893155871789032459592869908719393372509916843615770268728546645944045164878833740711645217499894866495921631753972799050796386833160074987524841395521763812053102564388150646386862275713318104746637214320920942686602251518237870726982294484582348498848683474519985907744230632563533536382275259985167945290928136826848245563730199282174234256899371128910221164000004631728154906659245942005403262866584259568230294881460328064683597265890637270754917499447417421909291304892363547456151641076645309980095314355340195384512925789342279717602833444354368203499126023314903585360427746802779122185261970232470551908689790375207300923102320481153668585214666950914174241352549932053818751527863734211040845399477232511894117427274854316778920125702937681296604152612746788397122406687398425629000897323918507353645172070339112673630106164127186090426102368607622705703049551645824997318769961412587071107849152494770980144144877481246164512509620497040065189461545360581325913379206966187027835041218128676143807718271202339718562294768694897059627035223649057890600225838041512076079349957162254360389490136307151338986104009945189363087225078049233508109321769040779016755164485501549212158710391962099053371886096047906420339073907573348445691482348164714851606962501335861492389541752592236235483223481076910626483846444691699418782124072468760193135961702229930201733727504134338773040362995332169537000997757469353348002195887294231938301547649900626203359410421305917453014213990406964923266119752787798525753468033457457673717863458665602440704388644629657702602464872603312162028615441096208554653450713353187200065675052366497435238790134385368031516921766247562052170259691327426727148019175666659136551570904791808356190099974934757285985424933578756543423369149480109207634674155354361648850692334159058990614897179436445137839654288256267718039740800089965339131854780533427805265066865846500347354211154151944798920757200118952169255777455035013598622332919104824841118052948152931105739525579700561425624957872501411513878284740716313478804098752615854804746059949768639730099266358449433863088049837025529418219626036040634221265803611251249113850549425962730937340021489974867361180828997511326621430898398687202657853896418095541677089626021779974261825632471601595506186549962761148656876939991836273936147938392488794444718716618147813308058012039387942639045190718475953562270391210980011319018389763330020101635117758771580129845073457987702122943391178256722745146540278711115753976628055575142872472322310758248582747250287094475174095181463548440880457650124538826320184883091715063310706071982452053707951707615176157942284248821174483614282781356602591703449184120672848455089741928742156291011044412732207813335842355720867392800200767058322568425966666722536300522108219578166518943042621524758069881143401478346574423210705997313304143165048619812657984260985235271741887167013012134633426013753465426712997730130543514706064866257778931080517572419725207046914788975490905257486553307446284810962368938304042273054962829619004723738574013661923406832419419596757389342689124262177569132101962871293308806690665109103288772224910000316961173976035655234103916603235205703865681649948082990866211125497341061322837500489112589091095455392707402101764744750677804637247648858605593497519355578623166444822654711496424851970303192743702135296215813504269380257640061349630363509370709068421493022440460131801198207678599630076769974454704861868522247783655112583732756734149343762955406037309410794991028430307462212305459124749983154417145026543331326232214518292376744917396151848803057957448834815791369635596050906697855695298338344013036505879414959397357599793930896835877695887070911125648823035505343651110067059321737433301434585920207934386652164859340482654151195112063934375796709004071438814912043572895194896523048588130245267515589307775476142652493209338872393900060803027939350298759834168942695732684927134923527719208636445411913884597242907951455993382302533148786410305614682943952235336008476642569209128926380408438407182965937807345026741172505291143865445365537895595176672588318262404643389052348092166883739966177737886218110377309031260875969933507319363172951763587007172071104843337334521482344367947598520196581945898713697865587973952301597832759355660615566227132887618266786235431952159893920953354262587339399607300574689573372623342862989770822291259325428731276679837410503910045829517347536012924872714602589267060355469141995405289131282547399123118008375390779365984882134503740957508402942321039718823929207755390541752503917795655892340943594444269688600210531270670719538119662447901064954303271698612464499290921974501671082404855699619500185683938122480293594829810124349629787796874947412986477056287628835754205861870666363801537872690857025313710079361373976940640798712827602511547274537280317767071429393279536853731792670818237134810928691097708258402255578023696465461840306517357937194115917792705688251827751797607680130692585119418187325923658063058353674844400422207956046207481675171581481737707197680724256397207697367482578407105983354513687830934834355299856159098864042921843710375193139888852482150381203563311998293187460681047546047335819433100492623969507770439395849231075035022566845820984366255975950036217056140910570590042175906616523115290795159798188391317112618461903599432369811038228132576646179787123532015511698782841467174071608746039949723173725496466943437580620138424076120024705453279367687529485171449197043112211122423123757093578524781746410337723217722795476830456194575125595779301357441351467312847373583091470982529950007829185322447908427609742413202425310477746862985535771981876576930843370845996785721053325060394667992420156748291439048747640809418235655440020528577489642975001747461374027309189154486046854258461148625730469419059728506575611730133583694785627382780608711910891925394479476270250893673883624158694002231155429397132702048522699242893155033283402900617622625152916977658144168455220892574013921380018007796830319953719975264452289115444096608011823513814036213957283293103785786550459434040155440122665824707270583547304122477898043146413683732378943388756349998601818944375562746703233102567298349983102896819561497429235234374395621281173225766401088474928492032955394203220213083347936779367950691473756569515339695461702125916458701468910719419716171962568075292105912615866098462488539905890395121110579800070906131654530424415438519239287556933017662108839125762644636131462837411238043685330794190120782691866205230720110733186177773746544260514996085844243072631204599029192444448686876827772911320487742525269279673135290980279950713215623891818370268756395265005579681172906337057891809968555412666365291463936952869403743642769269351592865856585787695368624231149570002196217845954610352276522882706325462480349116655085042809281945478104641764261826576296149560622988479689833420294272948725927496861025822352034976988968704464861015915531616205231783099103837664816948225613629999530618144562947388160077294298612380984811877470855992374710794927562594756996051763312720972242490387818977368640777327550549336575168577135890241181198694279519679033813374065554844568357552660549038404124328427610799240241990007086622287024704945101975812066446463530816784475451798613378433000390430876881102281140034307184248777611710573802773240807761920801850440487872831050179754817523524246039336848690796953268413106511600318032382402060157030804750204708768017320254409177731219552386475378387890542066246111325406599216894812109409095521775137598999403890839425265179167971557295592557248714821124627071160894486079922703366163156022715789595346577681944941908612864507495999704999523476004492973346123787791547016081271269556071090340206485716910821592766751215536354312157215607216624990494018403480777829537181549120681408121714987864650409138388697401953832413149553887746074498259387532237476701853166662774471264874361770647273030145345857951710204417124897144935722247552772796941011117631000056853020891499659269491468546730951236320314521774285405939757320517064875055602808329328589560528492942229831624126567956202301586626558624040238622975674353197048611013200318488246216041574755984853142755866094897874998113145345034546601808583050201161946556677905730232280881885890535587639972122799064717176906991933758638378120301701692827680982900055626889740999320636922536700357611067550317641122463813941397932053644273101665506843352756838056333044227238356450829568785974847621751806136789046837203417264056676258235807573873130526866864225983292136895468922476005065284760744483250030384307923669195101331363088735902749432584280688986461566253462974035421591913415394659724276761472268306577658621212098815570068623577649037002293982506087415028623120211110948042577163645431783928857010087902645820265029066848630921292390346635418045895794823705974549638469364420666769107680813283913998552517875032692358264469916605228432115943557341540640968216547673122609546641090306276392899326439886049267632974911684815751650272898108421234768210878863580957524066300094715996584847319292458127818774636892322025560445467752528865479044906141346957451706446042962752077855028257098706455364891367062286110541797720913011406261894863196171016068915446881656277018842156778831501631944177395283099551136660734642182272499287423879551729666342000579741481120129833116816047112185201101751963855605164930107790981586683658663893452437567220772258496824463413456698622357400049839223197066339848229421018596718890677233791634665858514651247071238503344374904735471488810731457373164473590765212701870081642516137125806229390112150606614238777033591153972428843079146429531667112642486229900091346263040741470036408172264555660021171110745697689569624894003210934801847581048609398408924690587284810863561045045457130081104097581194348762363486623404030531157741119340972442551467405990366782354376936072513906648521713150619019587810983493673015435609598963035014091566668380391144590172690497081019292336460482620120072451331701928414691541686467360067370499584033740297768995532553129985934773167897817210254649282178179303191418068473079547812102759740001119696892205948924325759745864874550983540988515410138807343480246588928371653177813825022206690446128266107793263427442068085263984380797825378963895744764917294394631178183001749402053072749962603188011758105609385556854186160633262719020496147603906085218179889366408968811444198750842531601160777911553666910887691805502851705903949811045165404534680321504158897845734295903839586179230652743029060099111586276273438083131415517863627862049121323857315789077065327310086414140869652438768917954024132607567617773959551754597068589926152317523256666960712946549881021297203960407581842448795065464462920716590778405052551813805548255094912984516249914272068994474739931296046769899738590572496107067339532002848868096030715014076838720319178806345510308735842216258646802777783553196856799508787826752362873215547301061252568407366126413328961004368866791116556964761234230011626707089921851738131750231053908414216843316858406941402066205690860659841481600058260279538814725488471872975016720849396361895091181709692899039514205877808526865394973113474956499047920913664945545353874288574311499377398793760565192201890561738643900109716279949799078703320633724436771885700305155898976428457403337049331622191240264969960496348347885035006734399462318820403528374794217090516820888063002950345645415439185380501686177249307008416519711317364711145329603089773997593838127812468548992982595637544464218627758392134886805977286767226886505118738963516072765017088191950359010282598536855276962187040945773422067198516124849077499567495285881235846482459548399758540493669956702352522993672887889476872847247033377018268108054909539549184937752059411629079821328851511092468207589524615944928825449580154940203208162326693696149696619872683649611378287279057449061151994768251162560363305664783353451143675264861902643024186427743674128805563218957821904007438944221061735513008790085595273711114177567243966806279205387089273811461509331874816865384487229058778335590176147035560974738057625535536086808304776953798896365516072047066406899782955921196312192722295980850859153595934441901276800524649743875303072472143141535109863258689081530512250346397062704516565879140513117459903423468067634636326098316486359697243239729772408093212176871656226153768636421300203413049031580151194334813854212790095268119605712197357621814689174998681258083377960257429079630359611997356344694689127281646099346983454956303791069257576636578792642237964397807392585400192577933280936404221832439902083322292566707041783553780547958988375288587490098380518717052372815227183549014779687852822639409189751794532920043553407632692312317758677196978446259308200633821984667267812508569267337409796549517265737614780411208499547164195645720670862629705830694733399294713009403463902307369759588064958742676316627009191622559003105536519268828590169402073167388555724013567322420374260808814033000045295128767795541638556481267235814530965922866291368924587376337438572709400182960998798026650712158113120451883304310948736940942872243379221363948988937160444473406300104591899873515105946248572903854926427389637179304035144323663359938339801098115381745208790044650916960283385577177388877896850688365582067811413341245418616964206803811316040134513745702646246088479792865948306557130906617131764413066188702646690237055104863912441635493529958277731980903897509598367541401591799384463116001254670470986812847222581774923317716786946627311045270803048775314303477787660555263632906455463632252769511481630847623547007297358511240155971494616006960186437486334732740339868193359216850109209589352165341065435231340841934174527274718047434927195651366334897457742576008157474127043203593294065515862667419537622365410103330633218468017694992645617518539087729480626197548508298768690722005968862822697792794977385393648921851680122150663978977413312561537269149107917711527291846560734714722308583517806630551717745131659295045152780474107452996515513569587894571450791903891691892658826244181057228935074326778896567322889037501953076055516082277973257282680439497852912068787942620524735825600392388496047230731835470047912959979396838463042378683550822257434688773682607190521875417663186238559012495178883496126023368787689431088627894431314763928562460562656797359158837677663139784422385399408805165178056868594394095939526395601469612277621284854533391928762595850231781845873271511033610646067355482463137686242822383017495941791889085289307939214567323966843248574476412921418200395820584143141403264790801441824357173271915531851261162752280183490299321104108084760015251717570716286849003399204197213232947314192572053262516904017152610466840729295345612444147824002216139763972902815695821132090688798497710896678168700086187691794749732840456887537791969052377898535960721008206206772506983233194721456572369591397296380547681063714649438314001376772001871846333416312666767260488273729359419297089184451201023424534453202024029356661077835885831273159538392993788575606913756687388271853628890785785952347072866687227798107349222975432852438556176645622737216254884986075375419609958291227211789754574724572836686624214385531657362131491423587988083724836330535621474947182735122787944838402786179301288758954593295320825474361840452139526857623109495068265765673260829869406812393263647910794309576294755086175239813019608850205927726316219082437628601137927409480106564305395718241353198932514841778253520740961747479029573152600450070921021270580221356343378441422509200989367213419038779529692089760831323364427969612257265410928692042031666849570123459815257158339861031393778795606514702046405660739708421280515020855427225643009479437206679099397387518658048013687770460761461854574159768450166034811047589898875279272002058364268947347417360873991023704290890040914129866002572861630866796192594024244377972266313377657759862452843388565584501696506831486590576456351764473201312331624471703887066872651618429209337517613498198250756937347144368418518023337905536651294619618091750737113367820480831201820840644600025378713385020988047311549939550755539053271688085990150597530524734067401694758422943725297139117929546226772741667521833772469087389954886624551558214753500460437343725028788746079329578296629290295046437648321104747229718834594344680954493307856934123875360928940722065646441126699154330956860664219344937881949046930456123436705962516699692030883237647487384985681973562941176471770310348677350719064775628796472753486721585124051707835635588412370786320605250448481398277826255421260396247423149947917429143131570263610641938009959332401735523867210438121131158685529270528589141362314364770567152704030999588002552895417438208265012590586126224046059294328102384181873343059211848647319441658139061354594005198706192567041369557781032544899242904519146243163096190219128138830159640462616752303077459775830851210330914344336554061559504798498306859688249043889454224373671066419274995201718121456513076245708370017992408763474502310523908047135392335724802268207866163475095439533827672240337149863667449212587343644129828960993713635088888720494660101178097418864447432855542354197887441872673366872183594908733352126859145111369614688577260114108171641025395203824858121295900824596008707695547834369031240810187882302756689629917485091959908477246493592532924740769784871547101058286566075793632492487048357804928377472296786502538853625855261450515294069320374587227122371527412654325533134294156972367956334866764839843708518491809212368587752368273853287741134187511300627497329978583042263185219129401248135498270653754925712803872263304949788395094235580718406007553443038760475053161652012916206395746999297261033708288091435793593956552007167429172354223911412472017298295608490352386264590911943181565489660188325754942555242373915379225970042639675181362417469135662460715810987077744626174141362255984263672129934606240549991501801517256390013185041688212907559943125728916774958001109405541839766593207891958060530808290291633933925141947181242950109674602594009260193741403956066164494160674950806509988050711274439288141767601037605862325731536365483494539877787570957287398894842653866349856287723971188306110130890775440425113440045144145570731008593853423433352022792448864158702842042765326408897174784685443590389346464188406949960903441383931547232984312192082877374891481640478178888331868468534672554103554121904597228506745902152342518945598045396388290433820583562007715630870342199182555274906914801818422119286661222834548755830001889568902106982853530223951090096946422594096428794171725765611301117661725341461407479939735492565499512257324694967217947474875580851489618476954549126638952906282368150877763904941800237311610108554814456682483539478941673728195596796594646310231495302785203180277642048553216660055908564427989112300178470628432698238393419445505727016632305973505538745685906893410135636443428960430385481741188411457197230689822808968201173334940754315714209545489723026545175732199749552439930174933469264266745162945326003932147871065178664990168063699477835010655227160135084534928189849731229821092930584916412041865286371843056740752269854333569371940490846770006637018297978670132705084148591553962571605360708309376658509308551600589515506043274841971458027169570667272301001885540952270986438994928013081106010489976245904142023306689761300769402829617775210860313808563719939841925229778967728760647930321042448370787971002276910945639550192511660902246527188553042119604968512006262808795421252692713624140378327804867722001688583836829535262348755590748891692599039152484122795997363780241139228697494867224509213862928322121495103996743236723648217164346042619957048978932812545494152313958989138504030030787203458898237062701586322390577579280419199884124897583931387421379795502001353971772898005618581905261042800292009558586744132055925809664604458725892406446899115315421659199793504389169524562111306001781375748983293252769817431563959944471800950578005478717697687136343566470204832961501926958543351555365161338390796998362758023993827589951535963746072603126182448710670563081381038577752247512351840039035429193618149166564786851614787239578816727298446405926159675710787136414174905637039531676977318169001473628549859808169684196553785305274908062143302041828822327784074423334835754079955748752052302867953791505022589504889441975331327997863874791487161551045419110533229788229018843435539282688875467144877394784211963501293206607808342732914258854348433063645250501046897376842093693180841407574614496495213324284218761997919776988492078569766803488754621727836843498890190863260997791787567863924182250019660352273474091160881756447482284343976932431220899321196178524913964599292631934687218579338108617127608947750582566793939913855638896494338343128422573928818461056363954926442693522462743488186291973782696911334095971255867414967601894294712476535190297975573302790450613702871095760825190503935975665572833069369499825546738518335465524383918976503457350636670150681372287004800055507826886570653112287386111824826142878648919989872584542373883933098298983779698577530124430307873236920661816651282697995252840675764885273751044554526361110637550407115478883111852547736493960356637899626433978040036709041021778708839622435551784623892274694515079149900479157550421745398851694394431741394945670465055803342524010960454159267113205232032506110511467956022478226037632303122971785520964761730904187585676968184564693187243216882830124393249326921666218431237053427463812596622278628908854610219283599342100501129186161049964357449281381114645756181043047797429757812010027821076955339584957272264549735285954870573460230601815050164482077580408675812019532184306074499629781860722062325666543808183279279064465890729082914710888473824395675449588198061732601888675569207135155972201202902811194191197525885979683807307560032803439926468744262540001924784492603381520814463249230464004965591401503807278505712558620901787975284889215779339063536931881364650245569487928784298844084526464070641162636334856182552813241178039108612131512625043830347627427538885119375016244357543432792567982996889343643570082665678310537239657128748231395390764562851888216586509163413699539517941024914711044651113017500803493385727232567281422207262963828800135084468645172990895313183647174630882391604667848711942247910714277698543901056134730144839876060364577581377547222358319225639077253563451458859691234233469929353862098214714972769108810366470988868328181164028288135475074917920290206790377838215359948209739572771700282632305210557444003005179126572350230357176116169017655644076669774241547781920293913019271312713621590207555845056299629245631070271971856711350844574156153210551960296754575937165673634214050172231364204073131912308845085686373332081211418772619859389297668453421141548242251324004742208577487840643911049005395001666562091181284604695417183204358827280544641015696913956446350388374868975074900416505452938911937760963766527094341111514302252425844035512431322082800970258890686740441467320296588259267944774868989381834656663234240964923431273494488471045936126658967007212630089374980320656247089955982754178888921715316555519534942066189322021328785720027940980812553959845987150286090778605438501186054128891354876672476375593541573882288554682877376294149577932092013032981811634796411636845857055469953983227055028726231614420854328403422890674810154020887984208397379601233306539030300704821950277719954099385898815034775144927803318449562391760109675992830254111290402808831406782677431612173710520294101659058088958876608506799665621223711751492161390125201953291126258538309238684005005728829137063168358267151684513207598863037746189346280903751174942824466476466487883593178489204265208251810056224256429502533292693858086985291824476682362707991586170862961029893187975702538751565746874293141390256540600694391619146525460839787511070089422748310161806804492104685626352070047420500362006825015351742730417034875895972349794784862686289716798270301235255090179172709056633468321431113580131265700328710785238999824385637615544651338372397254177499193830548690953069254656067615558552321234461286599185310360307689012951581600053582655782330072087814392399850134972324405108237673181960266291942906190617804176898373872437669465576940110927346005443615882166002544928772509299782511654143096952341681899178971185283726759259448496752108843988262395368171358013424498625401729422415416454148133475240562081309592718202230643164241463608854813730108500919851940140076385290652510155536197517629382415221842760624892888170206394960700193394455139017298993861890860509110325066478156866685365359943278752325189645704558978053143642536927731603635538241864681940510221353905194165958759800588570616130720637417704556081735795045931374726162566737209636216383700830065052554707150538671316947870782609685661001915227941162708140658581182911243219589643619639843419353562619758281062779847151643254854811571473060199614016541220318737330306629695009982330874856375533940143380112403558932152037963695695158446904936483302981095320516454062755844489120819792484046864093831773560775237002391574004699777147244542103156143620579703915453873949261967647786101616988524725271811474878519934265165867262537855025444896607150906946847089759891342506905533979367436531445885726732395381166749440307557678601223149167249759968908901726206666410676259747911112527354187571876487327157097664666925980346859586535802485674359538475931057162339475583148843746841285118263605191867815089656385770229691933000356484494366830564406535785188910281029427381971394849525037718029708868886092311656025400221552660232155335105383259211881683086936192457209666298625488132521302039057867126278050326623495473909094129991866900782043074214343333867564511393784391176332561673189513223658433545360172452090601751706325085744341197566783928075146595526651846618656750283705936760953456766218076820608136605926662533065811960190225854547039951173985563041624227520088497366991032919781321287795308680910542975341448680860724615227237977120692816917017322163107687975820202909328695487491433549053203643063003802586562073699610926844852925530414415603007812214077188538594605282349638195162575146404354801856559999192080319300291667319209499165498086255786825219001458483155842406479880448107480099646051620873622109292597173379391231348133677051470434043570494719404028088295034758047075000559215927418756230212203690469744363629361235465352288790962975101943959458703744599027536240356474327456028275117616284722193885106486073343594646922510470926300387462135669473730524403441962773325050469031429054536751814132247481188734389692128787371529513988076982628354552670837426951874084986361739010220346708154163551805559941477289453584315932646927172709603582576186305268628727782058085776528637379630069203525013432389749965918107259968366697687109401683076465369084087828076345480132336775985874187693776245544405591748366426125312050732340481941274739994719458856402440212588285055387054522482427634079114236795242791719936226642029294582817113763273126151049999068737437094366898107879704470526356004384247492280175771541975472894960944225263986168115227456227842909407113839901408212483110892073255911984538229280764795900699392412173170653032363231647914939632557098172418632352014893691211001638159593842826009391761217703606627340762541825686030793898366190603874640475584651390910575530689384355861178194128419990267216676584645921774527527819859622232155971618230556627552540689331718573773656532430220438345576236356655365950727767505782025996814789708360543187030542229853377027874780510482840694599356548605779950821412792991783656966105746303630787118258186019199645106382490340652901247866664453293986932535518787030097299002460375055009842118406478789428389281392916137236535129466313333435694870202844389407649992615112164700356735820452622635745655812060093388818116374893266760439806479632933016792138596570451501249948726020846311616334942244605290776092468531488228911556915394608315225454801769597291914321537571026245804967371176273268472597902882970734731563942806633512048948946334075763339835912586087846625330065295842085268295969010313917167193979688571242935905913461960105021523454710310877953204338044548321020016608496161062533440134138467566845307639963484670276174220174479254483393027746871037137159106366528578363438824271468800908403665621788007960345205806425893105236379733153429069782794072979473718741285141537440708225895355534901976970131518822040306498946703651409057305632066511757384414450325957542756664920939045785489801299095242409773881504053458746142216324651301615219361676604550318571985109451821255232630857796507129165121844950486861213192770244240220847518030919148620364118173123673360080846565577259341059526649904651478913698351363813506695362814830943227178497707257401523037694681727063081962288069644998225979518290746137390581900868733626166855251990712761709970791658649273025797245327911071942126926067132837112721360822742735326073847242738378791666971198343849399442143031556678899366066411403749681868784816339818864305224623149896867740199327932113069266465742623532852847208858764733875773140598305265768977826681699459130481332830132943720284656906703607815351657457167796364093512526853319271997226045197903281922761897804772274328945045730949562493203639369439346546177684688803002851533282792177878282804804574847471372888586814977468559860762286592518199355761143001923084087092905919864478426493700252736582195552549490792622359648443584173045081349470196935066007091529562264148720005816774285848082466601024915088438031299775960434257966832378865429230714451774784457974388037828685387353361436465717490490894945591978642198346966995055233790783400851628285299584827358196801309414725277043057380569407351595199960053650904746899222482478069876390589745506553215361538205382394912662926658735270209966658658607018128382728961729725777077407761154527037024284434768097973467600564520012017104550108081678166348358976942942128848534203489656393956601198467470638778521790091290449900953216216086920876335945497344927307608706615253128571307815424119032912755465040937631707003745238319017056431259548597833691643675644393813407743478845519956821430315575470121982954063834437225298326562991474061576996047118143539971900950489885835427879640655232945791221463913487582950940639363699158269106976104560288710925685767201417774550454005458473035355416585449496444587530929861979720153490949593073605432741099435808814590389421298034760557265825587532559604176898584971023056416713205220507854245177243916811778651283885351883700257183189565208070845328833519475940462961821787986190909094791469144999565501494432436857364907970084684664686665132632034179911423938889428072104272622921976096083823205365130074105077676862051249228639540700357880734270031323581047276871900929771264145128099777196027855872190223554208078785350578376527968023560410926539385306681655297575215392956355192805364053774210032103814401156077795951686384335070983416869984688350166706868920252016769085405160704675461032150114094645040944104918134309291071264124083372840518458408728729098496236970478426238744254492363029819583849285353062942872801648073365014233567315768364324973513380901378362160125553077366529957558066539452579792993692961451449391240934162864594685596730654292471554159819444762833569116822898775750393786517152448280226444830981557584200265320302596279298575270365791165214653717616954865993397490748113624545678800803647357891875175747467542595738665368952110232088854484359845826714044922511615108984148611596280436088219578922425303729037738693445976979017506513030010769799294264727442981934580832105373092472149128066164099701787903004665803243220811265547151053673659098992563801630628375447488513172401063238854250672227667349044675941324902431341553994248864236035125947576357875293927291556851531892280747477270679662953563256364214522981455437792668118235601446413127593466532092288810682811679912849044046880200943193033887034826887858428886436660427817607105806962202763850929695102393396653545275378517075914201985938405241454515465058806844143532972662774556717627264660758885219806260497922741778316038413148133626546315315038190121244835740033932030783841347650149535884698228842760673996799265947990615009137791313343261014338531731385749679129608741104735808983835903220921364992406729594247396833713104741596684927244971182749409718423165598001355423529761401091112630456799079269895917931098749719825985180559692583962885296253454765067551451344467970868696422840620903414814877999786266561214149567087911151518989798935498115391231409169026197603290393714273086724823824416493236774180036286327267068223725725402995933271036451428397872253258367975442869771333355010422991526323083155496224050395489152560406416276526429894822386011652024127853523417295568463071733274362514923485018141461013337485692551893445788895271802329738340634237747661660159106664774192577401545053260073169392853574806439173228529693720958520569331337634948023193224887205579755111575493888496083764825058277579126352836852743069559896754593219121051235688868001949774814657879900735363652693118088803419284870515917479602958714624544231065441156785874689745748090267884685231732722084894638603399011829622928505929472347622134603098233196820745809046824245360654538985342956191494580358627332477280535921013129029417037999063782706079649129446057328100611490609057030178506093774216978952206646938928719845009353513016574276315843079694113382930233238201118663547479719945877960659629439290933956517844685817111117959506227943359934376887901393493931141879441383649103255604268372440679092812524764828161657790138805183878072449584087627070227591542619808318849544781951902815296232436595272205665339170390547712131651308020353948959648008347692527301800396579133811419707570866813308430961325084076662554533136304119833852913401890635772912824088285073154933639243103902132055357809640774208996829970236294401636083102740960817789295990865536167879699597562405455211614810621719329322205136160720747323184782263127678758437920738249570535073059267212200968968626854261035748310432816875947793476720588301495177827618260227371203739291932016789481091870638978597566440322223854127804254719137632705365699676482726543672213474150145099972209816350519324728406305463269632349165667486568429319534192445746883003215087618107605475518809498029277054722079661380782621223514824062324457217380073490243694308081411004156957390497359227166128880091044714497939933590824205007845217849263664271563693768627293595679250186947310350865668030156671197994881682399386890101627264338141502481671223638198507080447006592877584876703739887548376176086849445832943234647575671739988766703242109934285689743079371630715607264497834364365987113164635701532938677240775541468035058286391847613459449750235941827134095334235037145762386240930130830708465566231535883987564657780924818168811693333341065138528695474202575070143528062549142041725122882147094530635173883718248706468814003912588807860646572615274878531846749636781088145225849163432579198070739060523158169374856332714841544540033182543846153036985346218078900319888673152728601970977364701411343871076087352127001648272239483215519204682041516849784944753061139240796980752969634743974359843552097296925937882262351929433626014330200715839796751561560728190031746283118072321613274088698568713610308426343428531933053582269461953190984973229036610227934795632807747948378176897035106533201011896056543794191314460854879025955282316169239351074849269482117069370360785807430856354865010610753346823770575938705310310861819925581920274525005526560584178155646053147556364009363896167006288799624241197937598422123554009780489605236569771124362384666362212315065088313723151177125886814015915660919064283895278927453260138071367705247102183983931564632806301618049771811248936876200216148212576676682674663427653437024206308813534788312307600167513851729061457053651740745954754663038565136449192942389440703313993835815616723039070752141552174960207835259735247197389045457774458459171633121249189773991148139438413019580083851391962372450975790529199861658455527945050893282222419175411746807007366187039302399199662493616594204178295622453387255186354806431515345834110132864706870922903945482770651669227456916857925461515522245284455153974485559390013861676984766959145439558054994931290864817369700742428925719149111492469800422259169592516494654810413528590332088182737535381706784383292442548846637883071957778567790926835679858434769452637543826583978413484653614189001178380270782839013953195664059716387154092690305038839116628474279346649642823088536766597419557791046211324159245641339538888807047214662216386999176937410415429299573249199425828623848804466876294812853024727813350729068607605359130602910507363279034669468616586844106434281958611788061266385773935966592164150951536426587944256036828395165895547070568935144061476936841564532105937893437091846930880646401000973794408309416490650804427804800064168196382815578585096019290848901739415922120951550984561300236359462670053286948167676422535402655849272911424163381263871778661392553472501095410138921502739974037492988231799467156045493004110101363572298911085944260050974271344597582967087840585616422073564417666024393351091811174225774038050019124457585977835025626368594765162546670844036616902255493894506464317949325964047622537362135059891628236890110945399673805027786938462444172634763220718099265603334443393071986030273190912864855598919509378640678728510139843029814477146322315725769772307634447147929797036294564622968326741366560085589148497081035959984317974480318300622204016314908339766002899264475629294077832168789863292713508076166360004353056386924444974165998481872349340196117157551047727247748250278671543436779200996793769673560343893254594766518524483557249481882819367005724110434257656828342855311581799161658581195334479814517637470353519448561652229763736342900538845359472656404265116238595062266654426216781663786823577412607933496969010477938743231736579603752607892840421144030352049876000193096028095532976144224148016361275411949095021916521648354025675364018791436180492603405879698329309546395282291510416719306244115878286537347964595868444659743769263850120928379545421601211099018687874133016399996359238429307399258236363388702917960029530746279988350126194461313772009715574185859625182531423549042908797214009176884301605192764125042494378586521183277916039197041504480104094736710014300779209929171934099323252623141917886510356234098395507484325474815602235266060079703310843178621677686791927093264923838402087639823830292811699214393508186142793402396805149731409523172814939412311605371810027719842695357296221967069070558946328216836405143795760494378084142333578832558091456144728023779144899269325175090937790694907523075279236804029646126395487433303297607412859940071048914399672033518038478928238470703946340873547592990958349277194029553506111105094738263362622865435993715972698766811907689901173513269064228887426959316156835651573410975271278407785184869391802634455712895252409272103243431837738678967916969568399774062911141761571653649699109609494707419862566584724079527957067643224451897472348026339657672867127082865989112479137985362594800903029071278644430842840420535074577613001595825246387528203511420473782986816221786228870915598460798445591031030161693765449815161333221698365690687080638812186645635327637768623783005005814088701820483050362072582815805340273745238344563956048180428073844727072349628413527939683904584035825904419991633984088564842378500463875885794747108137404916562465075107725247257203559704953335692883779370803432999003689744470530489637206736457004804257091822108616130535182098567585834398272879445991290754270017457820869446156780123148659094153720114508372748263483511920297587694176988307749796853167247491712225295831611711443984743101628273297941625004096362783252374146625205299244977444267106396376604573272162544695356961736929418932104924582610961398149991333000997461331686399523833171242363593440935768355790673684692070420075816601338725777027094480122303902012065613114889673149785868717863895409562580319105694340720740836318439363820518387892197675985969982246404977543162431195927197460695919695968709580434320970464534672644878876595926757957073242051912101348461206175151578819032068975030489064834504571067324018410077145788906058048773975993402108381586470402572370695653234611857256209513583777506157068888094152899774851552057309871305955500006642985362350623153409379330640208246266407097638213197512024891871217962786128992720014326605317616113619701872208943574345292130025800897692503059415370947322165925582180443484472634450444879299129911261920462090673809982973165779830654613068066618276145490733145181303265092394146283809734479222581018832766958100341935523902849862181220960758282997355173026494056619530330107277234052418494616640261335918266195992499955121219125051928932922373167921942178675152437929472704422279653985570086805755642170298126462083400316248421490508134957548626815909925731385442139305321524756809927356062615080634819785321496522086150113935081352168460690754806060104894947130406737152869043418383537208165265149706236511358854392909595441696554327329216555345950594750144563264631281256596513839729113323267720937724239980461571542568146008234496524690677143327304975661895825411855829527166671155247598788020133305931326586227073087545529610014236256876149772674255897660979230780040088707917062188761103839380886395071814291655353144091247636319920084516235763388222238657389192085967981257540295842599699790671134405028486825535611538091252221019554753155861357031069439353603579803651443105026813298187356099993703524523373565930790684911855101374592762091924506102953776778219089062009267863271883514395042349894239918805479832251082989935622046391604821925029600244819749342252101043410694372586689274107440570450425845268141105795922184140882386766655302477433739357496407814550167307310154892374568357969162100297746734051020798517129989638907355871503865982239556822467007344931348565855536283499616861715511089703057601205073759176440819289961120539538355143871320239846539523037622509380826765201918670975090242750563509665395528283999489045162885952990760711602301543497314809109998628428487351748617487375768374374733118573189430000422003797990238413999077943178788307647684254354253928473346930307257161358755266568881141517320970212508955713880116776322351833047744997510429843418413105067691833382020971663965112480311497660147753833216949769341866453435758541379036841790369991707081467022779193838625954071849234942825421135534472734055043377575410339628149078368704186613183279154068872413797477069193562958473918289392800452412428111689924453296178169061108872275901009864987061811287349483783132108188417582778289696458861140269453913065477802461566328136859545998928284890896828875696837226834760039400613939288187521175159761942386096520163822987760802676716397565655351529768291813543662359903240931509781277140397430073725040303287597021897829199522401508359767220316588381040743271436531399320040312744657695479990624702433095049476502231828843163213847122768398472542891908807634728620357227506675568357397405451975175529955198629018301204442936478003929036996262241995275647952619123239178234220067977780664063880650533521851601708486893604964267166940873200271455644903492775212152160456889365338150090943750643822123542764197289271366022566012269111569162162537482231256419789713819269972656170773563872565841787685515693729679033399344528344673818913747426719852316266100742707218869792058474048528177118596351912382903096207128119959792213898226345999097429549271058121489418659272410620114624311770207168681946164699232151719382101044326833801358482501174688748478897726475461469083103412129602189041725711336379959693949535072301983757948586432146635367244424898455112953622683612020483148476383162073867469357186614222641130151206102980634676366107949789925030984135066779742664904729070192297531770379512672526667632754518888876375051898733580445661227159555182946799016772445812453034161938022589849914250079538233596053261910003046753336836805106145157999449159557639889400887726257938486425433281124958022637449246238589006472832489246338421213396648292526317037455335321117172464975241956476770438218916552961078764152919975237884976680718588252505916294844788183514453726176333024227255384663363519842315285094917426333522932046284141067808124747040760835336393431130056493750612912753230922997594369211486375593697979906808046996281212691499494941220481648237956587142194893963279401275566807612974752883620640657886554156659553648842758450862845015767389757223635306073780464032035447545827590824835642766544110796585046929293407844697316865088693531552827176472667312225927231487715412380020017928199410475094829190123280635372523240808997030430955644479592696951378615659996095071885584729792478622092646127866944447840816112140249502956447525704906098915093699158918138510680758729613973675770234242693293390639074370594034614894715843248956390031708615714929358834909393030229837374758782061912897768811966395070373496441280670269619642966737911705580693292271093745646671575605839780442426867290187785775530263294027898001507585220775618663891009077451866715800101684030569103730337579201443312250413303351186288088954651251554982246381725461160106608072286456394403114068765671314703254969278184243863129698590525291989181198675670743470702883948478164457805318350727386269369925634907886364839234470190287340215956383863701857896135631040596357785663362926820491890836937151180616466924404744571310207568615199427889316735601077445034029845910447726634823236602739606039981129911639396035773778203124749279499902528082472901783958588843038425323462615538783708948648901002435982666227582646257194376693134138252794843967610515020118552586916274414632952863293200302176999577527186520537570101762553505499352979703664274815860815631794698269222784312844249630457500369325361893491445006222651392020178039293922291398002205763891111327453086947565301293410212116011478282089803407579097254745599941796439207032441633234941206839861530666500779275450036530211401128069595615313215404683039102613076191773332403783121748707973279795331066150688017889106869556165090347704829093852762637988661816030127022965832491433758447167628635180308976599125115582890642665520565021677556398709840333056951964960590984617979401207605824650561373140842037882165297266464222221035584855320044447284993827865998637878956218549117217781904933540851012087260405358747042181772890738619439852529481132985599130456912745885510999519930179355913575397793008557406411907259389034638625238577502214073892412506688705852384834068946929800977071241378767849072209569461716268590904560453682965859200643030173899589990617105613828737698495157395472241206442643850522347187852087369937868743054951337270745292137936316355153427371177688823876406491770493739935208278883156111996748942202330648073243936534482939880315411963473340417786408295987207551425467848669847632055204741298656582114376293230418620749261686418933243578375520142799343783213596268713665632057494343400219930651618416080965306615961672849952451666052719803936845905891227405513978983535800329459516216988104635842028997658522172089275193430552504714917488416985168674446401457213055654251956403744493742960616274027190760897321196145088170103897394873576052733889634801784095452790153884998503635139550533755691356332213034467295840671131867774682971877411723990042421103520861495526255992426306070461338780862686265256294707086372486438645659753733080108422010426595111137033696294120658164656802110645841413787687355375129199083790022588404589470578533022086536040454675387336672493911936042743826276268935252292682317768920872165481036334424938311597753761617288000709306023821076373279363812877230450010773100580638027052173505186656131267150385887576734451930400382783890727338980504092720978781148536726984391946639017538377533791226074750569254467073859101930408439182689845128511130402840284093266070565799055067246957326929266240035620549257188709425448054769412947941602711602599789752966272132167540737307972828818655574379658807128303784979418890158330491340643242132951908191149676908943018646615806796411528940985344008127418397756341832937188180873161759098236181189764392496181423570271359844287203619690769136705291282611224179194801002352869079751304952414630650404413754078649941758567760599368029544532114378228191824055382382402959727332532293376900831966816824762138393919345492528627406380774791604815803558129908611740257910269322739809336691878148310435709588578916226474816164099300661401978216505905909794189241459323511444441762233812532066711880552228681954021987553325456982651012881795721501917111537897483112652563990207326054310292998171064216159529567398018011389017317652017521487485683648881212728415185305748771452081951717450758345597575155294720196292546351167911538369861294579125523947397967725961195442045128341722106105331572184629799130759823215996938752699581961283465840346912850466135035868624241940798883063439028253053681580516677149059615507528592108322324628247427334590890510118176143221877168195064421609841346157871168362219283939587434010507244948620077739205040757158938844708551974828964933881583163772405510235793030340478311247911345532167609057382695392163805491236908797814040148510591950793082788261040970529155800719371164098878523614796626444495902569600382943833267771172293864955654183411412884213393372236645470009283821493346852791445672208716059805311073393804207826784687425421741697123258401616583555523629933130906135433854526164177103241612434091625101063978465181794468429616537828630557534720172742262291835240094497460045711540877620696603897710220630112492388743297901508877752836607261058697835915747842949972275303813635258917744586867874615502036671001004711102636988692253835105066512484691201993657615620074269312043906044829013990453301471030147040720627812509875410985836435506131763120862989925948067009267955975801130442567946265918224830002396887117893203279199254092366247512735847294801025758888712817043373199394971027492759164044167193546965425462839793145858205289046711375829806778748928402996351795150594745757191223473804339028270083217891178767918755435131994795461840718044807721576099014073660243665756640408024632109814356832395967909282613734480384738969418781710367506416666257736124326841038921025860090041027332468938416936854520382608458258763046141432976653328623579661482966762895958939255766339873700816932875981804181446376008242646842134022778992341615943800488389021860331516625900608098209787272461614192742752538571084385541287830157450449841479640980440873912095617516991155776860100520171167592435552925389499021633993630861782839434601125384024602507353080901475649905310876122403792594383963867683450705253504124686616473985773636525451880871845406339454956740748094414223931284942149605914522963526122941771377238788288142925587536651281124964363531528777147490568864672997170228619049820775378628409986510954975938670937066862011671167191943048530823013186550842921888287748493279237442014904421116836800291260771704306980664645487816589693100867255338313804243839280358805854143049862666239211277802427127916784081449151825058321273022974202694562731450740583203500563848908292519365563387860859442409869148191444219855884086293730583217678313188930234205113932233610907339032218484510677676812098678484997694127794287183964046443374554651654215191148304297336561454076134567213772868111321997261968807939582675129244497339571049192046760250308612106399786193346089114739559784149366806593459542949405741460775069014384770524588944655708825759104718245330923551122438867597818074844242904076492612104767288973415413416836002841550581967678542928020896886798194376982704041808101604900835211753332252198430663008243642617411757716685501139316578345280520822256810032283885959426810975487262894886317969495420011732962094345889109808349943136408126921120881757979112928419029923308463030807829532898557593128729579059491136034972044965660283415011186272810186590706577658479557062864666521941102792486704299082772991793215352814373909431747973340195365277852009233557332723221531308688156141107707808833634996541261405570800641437237609149024925543956418594045118337352402834949341332413206451118835018772401522055119654189828645143458237665589449440368905800150477999107104233060976458021284078871362965041742499702209011244645906852725438971961182034936382218590315480154406798781235538295222913386308140770900256005083375297709323885065399884056219329921168822800480743694677870382759799886291255620079983963010311309118051378453667800381681247014911426148340030486969813505393384240394201195941698014144402012403912549909879259893476920980605692061518648235384285871510568120684341417669264706721443405041953276472956583487670587355569519396898353755468886972786374853950509533380124608098828609432618362256747836072055058817128124525669231565997285751211728848334394071240887786836248966746230901173795612272713773502547514779763136622838143874553579267503371628822183664467374548056368003738228001964205166238711092179175732417480276242991160492360689047388915720295051051696656561874231805329651027789183534129665451284393258879563686492314151140741559552532531798156448122179594865832868984737996539917172367650402984714185652697708776249888544326037370380669850864425040280090124510878864786385708282858711154089873602054849094314053305556053498821907596641429110562557299693273446595373420289858470809447789323966921297544228639746191989534282142167582810252902258124954400974779996514991851942595216762490005706356636460282441967598121892387780871025511241660829457052625211882266300695654266925106429301916161951146559758281033438332477833539778678510702784962917919077439422058735726569711836397784237003307348561786010059218233695421341663009120290615475684330201343812016248706882474392685379781824404326802388891466088151179345971350379435610630235558359609883981229158885065893382223405636175897573101940270578029287915624332780710934517546670386234084651324898842156534917299668806928773103572252820162263767296504515578464775204639667538406972538923461270977877268996343350679189668558655754617166489027939332302710097342277457379522360977033233895023867789011914527170782047012431855441100504351021014038646828614222257751320061465969437128549255296757844759634017692643264579370225163527479464573047785329310451019035110465357982545801823031005539762169346318386256583267769280330246209220428419594932170491561337796344738889440148612172597873522591749242206685138994836436796541257511443933234349675294490382069307793746599420347016615302909166484929096957035781247873197831473850018718476352806067223082237793444978031841320436037848068119180108677159895257543681319536163863141896869206255519142733695916390670982749264103330729587839796072428095828662077245841435018680606651522254189494175987469219015323316774825246200398754520052222628819972070265128793893534225711040276011884200542830283464083263030734238554413578152115152798801128636585339112063913492822967987119396824852386698816160294488746870674945115353191171285524936643984917570884566663322156448757460274377371064013530560704502707195503687359696828951272840270292990482817851339528158794166694054360223069319137540056450218654449763449885812332197799123513390872020834733416449857265930308204613467375341236982627324447734953526392597116997955188440986358260325268653177466312432545597429145935609988103910259972561659988759014063936071039260849968170336448088324645954380603999191061598615255779967317749752363528176844635024927623495779719596791080420359828235870894504884069855042171427055039875694071723056557072272383514442191192622495808322171586998992770714319921588508209373278153524693268192679188576166955303045762614916914685156280738059170080806084370801776976374419157454302428728489315448093612603435277232731159141478355350128145227321003414437229963874526862830432914795810222184255219909830165242448680117015968016374127569472155530793913214917141753140870292148385554145380050763032305738458782125198556029587626208097885392170351047773027373891272340521247712618257846732247340863666746159170071476878462735939267097778179214492642372370265902134270559307129336604595520146825164171646866032597695252333833095878826418272959484294419760242541122715554693912398219403655460795416857292039655891152296997014258679175855596432295717441030756136341052304973898450207307738306055512504454497172422233161495032113972638652031935510779196633402730293070721230283468885045314093449220356330130754591784154720715354518954844224283093604001250892501936507638753177002733378118340755828925693052615642915679517714836354552946024688482582542574787224686600974995429677456463315848389536789561649627822040412975176002494293558538521543638708041443647410940566850723326328873112481856244396727441765873135458926432553350557559125437005978884936533016444985065219691826259766864267776901370835047293698983356754980248181913289953456215891396591869496356614890359918843377523418737578481979689401341244927340580579739355300568854634478712366132495879431238213680631164158550486372670169617140050252965651933356935254900639990047110197214393123536680705621545349109590818103842343682515492652393426180260157923623561210470120256433199590994940220280608934109161008283986269534114188838577786041415625928090232807974533239172962331608558098164122571453695050647281493227611863257526787273673602456597006721493584211987721525305878337977037236059506503882531403309504738629291235917178500473519811821750616512272070722797603059396090978272341764407368493216557351068322837310766269989871337465167374681164590901982194981308027769349598039332904732837120336134020984696026742189528653235399035609250546596540249799637780090691981719982463048152043314052707407547929861895332098646366985704106577863468028636584366240567411518682887714029915492693177519623366656875485024098992235978146474940554282181617629462342486332820477983062239254662433157435304314695850784343777816741062116900714852739258287007047776243340359163599969819848336288407209687995008269060390189313067173678918846193363862356471761023472935502965258627709287972304881001131974714764010122805763759849588335959058420725879938232220198899332570226791565851281839570541725416070616968790356266816933702465338298937871906617139461247547608431340502188926983612166629964053608917759523166089818148662833511710667493567483555037092824837480804821376781394925059874660454831397102806678724069938823978788565435102119946093360378356639577371705258871354873486467738832329060430341168184133311214730613172785519825667153312934042098656050190975935493657922994521666356849214505070053649155960672306582521371156658073033079556840617037013220476861513827125615948721165643309230876643059523470472839801959296696475307590695988040359577417896510451091080351454504061904409848541954702993890726328958527037259083003447851125595488964276749437796926724493929275201511965428392561032754145357536523407341712637009806225479660508428765312325426108508359660378564846136889007616364272067906985201229970087967973866149467693276289813624478850319073074693907220276708263203347093286726356929660527912766653582411842737611871845393234069125094485038164817608105089293413431581648952773680914551926704831211636395446533227493007129391813205912608553839828733160478241607837920008966690075457208818488557852742208477954759596932753575432901260284957994424490649182985729176093839689349979009748509138702213293638073138344413942942323414926714565792107328984696192888049960485732225022035989601200575193583681752877018399350342056802759055901246619226299447482117501972686912520232425883973963819757516537090880120396788270074755201397475348617870750800489370576714953054872179994009572614407461326802043248093997317676733932005685571274620687744126772606951617827930008156452897174575341355099754797622093136095930923780599860637224033511845983803577756871025419329505512041311234249975455554688818730152599663045631087844054066563649066550499122618671232920641831689565423995615711142353636902394539862746340621496698432052000529835432482615554803239878422219982450113065796669896794473932017834811901886493559246909750050832038316726269388855706871600607608021562964765085453605705106294139130553389887243467701879898855012029765171263758186598617938733508849642814631976538191810960116213648781901939166860329695709419087056147647033693830909056271143314222524024652584305975955431557688097729441693993604667926520147359619243075675609721816664348548383716724009632605621045683847422545351847368527851197259619137348172957856958072666676779318914994044265461547297993894181893666604318929363289634022277323310431964894974596362332313002156611694396306583411062168707599363509312202114156992900558823831985261239797192775356596209321737434321488251597641876121297759556685172586098303300658035107559000332958156704377623432066507736722302008794131143299141331112852072624842768982930313087150773103318303108417568501343973965272629769764396189294524212974871131063298080999473993307687666340964390452532100851661458286948707483977550686963606986261526864732481149865548755174082155493271671780477071749191027742571671553104063883054008407705578855215741386793473937726142981604959945250658192701122969724412790210585719366703711187230908777184610264131653498260160685669448167771089121416316310176442956756345403371037295070866353733919204543034768398707592745110387631634216350666046865625953695991718182086389032831936713853991832373833339824454158546205246874299520640116774478035288277123517815218327978173966563747513997184323695828194744135486943158288070137154269259586575654160926847669528108922601181888446178573850825785349960204999527135550997959294392107871252892123931415411118941723099699730849794046978677770633068088906934079077764145601306218313331052174394213857844149150844054083618952030043790638172383965003909784257808242481059277070134250998423627226377597997875216041764803269087528417487752690081462868789049888397476321712388955314527968066446306592831080408957459637106319818573733029301693478611157570135796025303605641602523580967920160781222054171258547397993746245866898669230328073481974316218478186684400420741921842066748412764190632677657250726854550891634235280500277211311643268980672694438524953314152017563891265760265480674697283785524967358267314525967504536975411270605907124073859786764312225273694851580594937132883648188890162501534037132707029888147761129678715204583800402960369247769942235137794110144536637849326537937599831434527016317571022088970433835280651565101751787315334484003752824559529308226046252068242288953600227319754538480361185034971074840912391465166244866742194052326667215998202351308942012753078865079058655516382894446242497777657943227901586122294286470971146185156862950869078234047825160781211719730191493596499465593123268603680516079940253439669203052307319227151365943484183916312271851505901037772712426168047067435823198107070042638493425559717000248510823119647946298672341281314264245829634337455539666921016209817599535413241947623065875549556971894547213835930301465456226768595154308139441558566232449108204548345643037367845251812961793972008237882822259608656018435897142932607072194617427542058629001453506896539828329291922955564004759646010422926111642572925268415189761587572595817652660851267530610619852874547430506434964696398986427527161164052380297920718998447555160684166047074354110997069580983256398387085316273966558978164889059440752267453791146495163375992232474976159722753596781981309695151234998908456500688591704039509574892004880872029958005356066817200619462277577846937628274920684756719209232763133862476775565451384480955854680487947662052245418046436127555505591817643390186162028021073915189899415058438936426056657963031119350927559117779685646906829108866857881429299894078704947766993814739530114883082032798637583600767134770432996250090586010421742633429557255684319210294327696946322217797429818631577587436717782987553059071330211524075088424852000636172308322948409616191937891589547466330852331788214882367640234171122736307719825721510712389579756612818152991055518185087787274827279790208848506068053973115878897111896353952142482391815706357225658224579850267093564576150810512263373917941230681966511642037930920209578087847395897416543548549366710288167581383514768735699175323284008469182136363251302195851364972935980746991457001315895216929153880842881895309487453561933597809547534166128259492380402471048073753842302961933677720607169619538138837697655369031014379381703150861826809009730513253433708754741302798842981255562164428435303228123619238376990704702624382517075844919645473313535297624350511545421622606656043913514285179333629109485476464112398182374026778285558575824335665082815974329847387609941450745217823079187158187830113973875793800609415206732019738856376714744436547161943891135946239038738872809395743739454830445474011370344163933022648160129981161594430093477561063421928873646642210539450992893854545694349852678384238784103662468770411720315396038789142172073246441075311892573437844312791939162142131376995811050303874890468111108438411154194672753997654587878818957596828811915416480467400237960236864059533075780891043437606381915855321510562221429539487205522406386442285135979733288780897059157630561408714184825434333255944068792736437135160381538833084089409704274579745216234749299782481834934368210418922022649420721599966910585676341025912372175058512630093938892376041704860170385342225319780006202341583495619086608426338197264178703827875846700924430125007241278883795323121639288002262220171224533854961169295408311748402466994000704539610564706559731562283683390165348199689434381385575362329029551880989676852426173264438871189587479259762699040172409265883083679229060063837007373403344195550552935894524555570757473412463801594380447239670659387764286441257293277934419100958502750777629219824079693426625180988710326680843878583400827052189798213833562819042355834789016535647149061740434329045925773067891402320465141370029827124695840692410237090627430785699332965956093381645427832813045143033129119475340313068185846748064440196626712574191441771013171233996276919049831098592052047335652992831906125271246922464661182006310442720804156296745784852561536970740336548555642255432984176282686359909795200701597445504466338946081489264878921000427759605922254746629048010447943612475760078457721687422986370425941684602327649938497037716534189809813729630925952787573975321871397588688967377976896940629974643243025118244668310141775841129731510076971511773019374608255338453230234357975749768281303481461400525297735668672934317887127166187236615558670078545233256158859353593604352573837712925540948613221733408817371380174493722389019824314714659146521503338581905216466540386111680066829530261952083970751965583876147479904684523456814538108556163612037422352365549081248482462649683565043712839948393995915694878801710101156968662446633907439081234663105773376680668978093164030259971295791998713413213075735811359461095757627297700558363268205765408215611943350178724100067280555111587756166565222071390708070727552964091890238332726396003019645478299261074176626312514770532903960437205758435136684839039578314500557872334076353471401269007359146988311569843486917901403757568082752823960828599224797356950583227366110919010624279334995182420691200626091108863717004849314631710816596446689931692312584403612700659935432935746714234778921862530131187086668890799457085031822309758314522963940388207434178295278682940898513455171608578652678570051658134288618492636210971708648264273877888698881736610240404100836906629012546483993936359340778773389568058348950649940228586308949181621839927952825177651126265885345586641118150484728888462842504780899084492380025290790819836956738554631570154103054515351668869412664009184246380842453832486948667754712254453235042332275201639531972614039577164636015821369662598089912392842603197876434418938029369266993625672049369188358287059904520150383684329898379898205098151211814087163074319758814034728242410445983722036129100328507507715486097296823690712272862005426141012755914602946033592066131880376394180884101653374187651910506937450448410057821920259483552994371071778764542389799286195568501791137757598448948012486474323242466939948057921429469997381540260638602307847702585679202773143879516138503679166843471329667109436449040884507879415589102617399400376222285888335257665371007571060755863712414440733507769555021439360125612748291504104886414145593992126643921807293078635134789899184980638427487111775662842050361079425721989201122429950191801601644624534409280355481676290101094261133697182304216615593841007923825554922290205384625509964572483386011497469725111455863174273751508450124745868609580728319390287230727228530339256906698270765636377605353462657636676621079104494409648721326214283414951086035245988958199125377338796850236476495892968508123610721521907381474608280092046092753138349512407377734418349351208243259543470555402687700051889541257465473872308156580686934887293955987056012268181902944774142352417163278448575877580103498092081175725573709778793828466333158918828867195880615361833969223364259808849348202803556892429714605345776123019991819233460928418917602948751750816805585649215184415604317198320539550361802165590949890679112062402451029448874612944874868179461146602360005737561708493549880432675588327820414732641834849670734724726266418521605514258815006311025831023853591945441235179428949763455607673944757751660119541585961085784960025501135583202621972023273369779840179038798417739724122683420879599783730427211397818450854159869013724302420628413455331330785053801686337540385946784920073767529271925445212346116526372959461395530591153884920421999875109716703831311344720234325250434166843505146801384096311886304017581357996345153696431230130100730146272888183221138741795405467096873892472650648483237436403407109219409530273652054691782176899312733554913237045445312196623039408140784655208205414795833451594633059598938058405593740564161966250440770838089867302151047945658354671514678971637240508258107780106615716012955709993421323861901251373813800294222300386047376329416046849700850380659637272321684611254202498228531280213914015594998005821584199504960682151271436861097623895933560405010280725999257341890525069327080855968273622293528716989827070102384035696642985801224182775731099833736785593533023657153736708649620405515011880037749205532617432311512845736696771172752153126176772343030212587160733486752896581774978371125690208577239941940466365341382749462087300328681069699148098264261636692987610301676791647245489058445502914482579033159818116256751735179667553654828984327170272401725634792737847634414681762973732083903960235826040982552805867107217509823932784676185673613452906626250564942591561164744348417116058521764126353043397890208834900416060664215691650731211616497290971519702934282191586132809583751062865262461656597810447047817300456549993741709295712469722250656033793899254024909171100318177398831436805175419087986694189193172955519749717604483496067328631345270475047724221231985236830598772036558986133619193055365652648785362156262410548433389715708673745211716748285266321843678651140355645622992368928045520973966858812694094127883753038485408777404393811369841492412937150788677532025409697300613264695343641033992570109985243935663012720192606494084683204706606065583112961911782834611065618372520449235432109201123003705358337778919516247031012946255813222993212520623566796283360011047563502803749782132652848668311085603728111768755577015692950217917178882640927805310717342443022748353253671674410976718897243369140308556679279627584500099749375323622302933430621589076694199891491950317863910293116029149416775386239341881442439794892217808350299236798873057451030364333636706029370515994520960828662913406947986925452085184539443144709471232575971746627020150305916826139698349935063012875925480903913934018919668299520136956806790907038129564917077994674775410665162718675826685966738206961424663776449323661899855451035694532128203068329726018311275497419040806158880580046073699913085923389042677397318544073791869634839631573812143377384110123751839002765740843912553409498710655574221106683059877077197850083600313552846608635261724266902509972142645308107790657190510593498749768794279659236897638238775036035795110755783529941608989390431747415310233709763983261953269785757147157934671472165338463475369900439496083049884656057372089226816388319246088019129109682675079071715727537447393626291398420710079449180643087808707642499739040674189029633695424521029836184973225391155124377172506602481352755684616302470691937401850124434210429243074786524808002108278547049664926847374979642544082552075457756286157275639095318991440847333764451146997070184735802505525722152785787740451431885096319941039270112809596202791677845918204357069284255812168573246273398826961562000455905992662780045330667793544117073145374888075797502067982828477304206152859533865609764899274195340046446462622643565323080499501053476509051305203711721178855696500891242775912110548916036552120126278218302352258273513126149478503319232070900876945727316561045746758486438319307415232492679762692704530002881311252675538704076762657604969640347639660688572195824220661669844295229144342732413924101585863348528096738082884982570439401140015902378617182709046768601416011970056083282761882720220889350877545905236197748804795928379992691413751856339639806839063616894427917641415652521081058930156498403742541596149221200051731475413676704071079053330190027650357084491925588843724948086939973668846022165867439686310707339153331297303350896964076623564384023653963678006749095634960816581693690745286065473049935823106322464164637211711757161971570596073640102726505109734847012365840816289760907044778570358326324552101960840445553125893349765330286104379991919485486773596281142947232016434044465908305022487710135487421211202075015477757621692438402669904579048803275799205344801457719001604890325809899794353474567864711950273259058343799793432533646826664353744130748137855893542732799613110376499653049264753358238837001298151779718147904352011866842227859147493777956973985456574018867827815297364853337292118220823914781732180844880854757127354436478796597910003722400155108072777636742825609393708594624556931138883523775835588338383953008163685624686663409706696505610381122224161153242309259996808801605135020184236060252195587631065713090078077844474225705270580983718405200074407416267537937504089943734044730193535792495015518076979873805433648775028374320629883381626264626982041538910587227711695815773529216014561631043114945941790473247501364560494168726482202358908977220154398018363576939208542791837452436466245057323805681536222735300995594853937280993085446899312041495498556542299362586659299756385148963739532152338813975425018725021981264913709371820704450933041034651388415419609110151264823443385627937416552272373921877530325087420531917934689976674087908555756230085587486676489568307358721028148776010548988031183793212435449858432524135741044284880842461086911081174164643018653627898604335122122211653278378938765367138417682250912924118185121621942954277971358808353904743309260934280491066485670649859825255181677538134911938044268190153417685537675165389920997242716307548295316641712704656761385064487827542090482009362985200600705305098997589423711751356556060072831415866313537922791220926882956606902312695289670817491046711369359383198650917147671529641144090609627789197827091522810335806025512763875222003497771047972742287090098499709325393542056980103754789645725066055280688712234668557398171722263968500300514622315209704807812085224152470845277637442800155480153963676369545386046333089463086620326970016005230908949443158037154638591588741418254149982378282196529898859604492723981326461803024018483858906610882577461478835912346226769612662219946519420565136660693731342508443875576182442751686651429130985690864680466652732647219723242884955481176972561383718784524209417032616582557514113716301778841479327213717582751803894314587766591262630431281294225212441262294074301848090288040313826812609647370946357945583995821092763644434004867148853466844974329354422567302221397656046028016251192960182896408215859693827746183831087183386319009059481241158737651987886449221729651384634040307355293949872753948853409374171216300951661658179022338408542322881157557164715488487207576567482437223746472378104591893712086436673940177129993783444937404141691281283928656052644155347822246630664433732044350074535003947736659628617061084141848261362478530238597827222996065471809050588059782227691928481566373603133954417846958247711127356475405477389456772718646103762433399604190068381886818573883192683321355403049340375056378593022587855948281372060011249748825908495707115723073471227153046419839402027707968896572174479349720567671794321016606157525628569838114664237499181911266004215266129330838229676400376677656366512164185247009997739405851351423013964872830699027927328316812227527362147190047396896059190015724286491906610669286796252873974659591577252890537961859599944225582116246906543636978565433326027757747837036642519344011722003334096698279441766677067484723574440193670320282926989878598121991057404830887608883096884937847361068389950144123151494128148079981280470896111542862106725957106237203064399362262505394645916877812472965446403376470301210051250921823047119636168186911119979239511963349792976765340422234137306211935646195650101786903616823221179180924905534934776821721161635149879541015287648810039986855141614739093985228095154778711644225299773130523007190409443543032872501253387985382198714067512391103478756717910982471159694287564704084339286806723546324875064228042164954475797931670663091285510868936627444040274363792855357263830025888182990657420803055251071140667389231310498959434531940336351714108075958963103209938962033730138619861235304420878601779912822815887883575501954276358071555569316660030727793256336629484451607481547271023705353428774991760787626686137837816732661963878486229852454205379008531709177716628368806592742344436691097843666959950167413720252954262403136159342725287300199754109891569844613337322084439368817229787266067535656938938430669208192508890363783388308554908926572668268233715385911423068391141805977560414453103626023455398692791252030766115955766691413918863604390588284970010439346115194825545653986958173239519582440416553891842659243675583871885115836983165468616670265045738305279273650410480263690288109018345629241898416004336045248571593294841264577489441574618134652639025483026050324614757417415065058429056187115015326161073291040137689125655916310057131375172723611819373895868620816898831440586562918889261957343980894086060542520882687634343977262269033411834965479676979574482035013837711624434598552995797277979592374097010979192844648246135085880133691250511828234293063980961080358443607760923920620514623087640503485328384955154724630540188020651284360126490957501945355314736688481008089941656982652685694460698503146247612718137945599257511931943972628963808528401535328959280439067827392926593583537440642512494528092253821909129504824312541583017239974984836439718563134803369974819082799309764698701770067931331693681614267176217941652122872943783653714704658989994258878151891569667107788889343378285638570306864420440617525037335167904675928924346186820784396162859127672911093661312642182987298183215585957845801527649931384600628209925920039091264138386071591438450753600596093819765937180879587004473568285287340594277913544386824254917918411206803121538296369654253263372212567486974922349267208678152084992517919457598188912803693294743866943272400754257516002899297732515903360524168884414141140912538136774347264062433198083774123453210708424938236657365943553053361864941761153401380854395235468713780469583214077245566598353695014898056741625468031590713843291311758594511464766100893716561317025399623127459378953237780123546987792606064490105237683654442865022906309678488126471653162385414426174133920061795206135420275011172837240768216898173289462875257038772397377838878640449245778124265296965997438648780999605935271123545854445522291439021675511475090753397606417467395224383171390467287665414350395613124987882588659817704379261096357128907816528734024420544555053317109183368531589090817505339569898832907964983290978660863566601602740875859901841768248874646206335515643944766090603744897497018075707037518889603019714475697572117248991599279836413273886876051219400174200474685153153138221146859324041073698563547097032451269553123262896067032371823415743570229737074177921304844332447597869664418733908271169739869597238946613710564694342762790507090048470506163603636593438732285560534813129207521746966749088978538374962628761067121731012622658484329364971743806822109859866394411308228005980159033904011010255216045475660005682673163423131328905974903927573887411756944675149164356574741077417093718556204293746475948018928241001578798936882646539228787425558197720569172486135066195460329761078852216877946819951120569774840488717961820364952968372308387703051796262896542746458774452292115601695330089177622645503332147230097987319664416769703271490436380196168542700489943445991171702143453092279154443027511349191480160082094293010459052048054164619723157871982653290937856269142429241933300916133534887812414075638626858061743381702449587292090448337240592255351513902001281807420946841561988978780971698494122337255615822768695672421519342064041593986692157428387805244945964680499686558780588987062680088223124186123797917640769024524914026051073336270135841861515107731807951133934939994030681406407740933824680275174399304637213725465281220954847153773717984536892138098476838433316134526923979358196404822454312006280267958524146803173788175329507270976105942626154848321399496158925408001309499636429755399824127492453114104565427344206583052961159360348787282481910052548158302966921073099944572356072116144978109727880389879688443642729025165413472304981175198578535549998618971059426922011347633430515540839667017752960096637883776046411666929319532073402687988819938658389974029338021516466510082578122475439459749291921119461810499764485440658520167589124714571292192763236685642415742116054164049204892431304763047138007588308279439937805831171463449334307888991734068508269265620960047879825511037686104284470829636636279289210488742279101976743599457300827532023000930489306855147606466995222153187321877690796730176355898089392521947906433960584925180891681524015105699635319841686446207922586256000010364794373187419875157441618233687845942374493407603164183636899823294078733023701847307031499726416198977680126513487281424493381148158039633818122679266800237235702472205281271438263784935686248684561263084884746331086087804546361971522506588140764880527482084762170935486258853941203656787671803876486720422649286230536050074354267204887344372179360016378633749493398949681994158089125119977609338392703080537214412663488567087780468225559049463498468209200492938044265156618205510310692278351619055486811742085499609854728169391586495430679981027683144530174814247441074390690463239727526097555538023254291393067313552047275372513336635759889657642259362341525049441325809988310697558640378462946335303789429494116489384096631012996232520581600760389426365712388124260481522046714021964682888049111096921924129797883957211346627030260965980298441700503119594621534032686097070254216977781869105714843555684090742176915726377878732312819740065832970231818979514904682399809374248812144481461636355440626419031273008592804311005536896106643678547086980972945112273309310702208497844303673131545701822408874041556056641272618497843434713487205093934241315677337398760399132783264112940090516769006819646392805246320483166528117511885841444949136871851249451361296343992374154854652792035323471306298241003661005229187380600693611959089719787029472833694312430125906853536088268149596948087524140869556820609782725068367087328686660058631346724431191803026699904958864495176159216760881847365369856566247049865471438000502258252247204144196123112535360867571984192625311387319511962142516111818620931058363972788052133568170148373682457556033671191485026806119358021383285253768805688202875585404392051631230411977949453542210156978886566209322703604769295632109563980186291226184719671697289132712375264688627443640805782721966453483578340499413311201038884277257700720066775839049739895358135896298157929496272511013818500861109575832077478509135037387658592950080902329411372137268581471049466053904524665042892098926484500463880219349266106224583772722182234718113614486867388997049928389947356821108647688686637067391103800124638270565521712424116975244169164695235756709086750880428154802377537659865732172910257778730496048930989935526129308213402186422465897465030421010951958448070924308677873489129553125295455961724912551568053644996315683603827239811110160538105976859538263012242861286123717095415073802003232931569202213200923341596044982758235913872572472103047810476702792461805198057260266856918339967965936523333784364882321812423079218012718987525588580204346611406313051420148709090977733554498757259875520482044386100326862088524847813204269423433475844787537058259257843663444495431908464509857542216978270341405826415408543594215663704369201487119102353975431225508839344692883595063307111842366636922609820888627136594346632679157709846462771884254243286511417794177552295073554417385415268092501780162163252164943306416386811416763273084282684768980346349346854090167470657554271384856881519349357422092880457974262591315171792070327532923016021888003228218583169803573054089768850997130159453840681850427983547071063564276788778407664195888229542975884602436226467439462428885506475649673855432151798199556881638976259546360643597603340615259887643851612656407807463406893269541727433144754717247133455551446492366957693624094655016451671917408164611158624451472120286958326911742088564160642151957820352293525617564840185746655883516244096890266534419156107435879073611374636158075177161536070129587492459316629019613305964082706052089673274686082129928976184522191014225961020754448145961980924198623723598990880243744508986925748103651310378384759477168701932825988503287701418822980602769872351692607109163345614656790101979941659137362819934416763864190988584584536080633061931435704610114725314030746052468825521515601852247527201924737474677825114718336420892678192818616045107538184316970285570625044592109427237236451291143550620535080002536912031832798779353265913752943319361378164603961374600204695477960409562285746355403974880777545668268443840880863211210062614632813111567309249762457430565258972427622660936443190679301073658307366754426321804185956905665862649529785477028571086860242556907181953904219791015402717053920726067214194795004986011066934304031935335153021871132294144680149059672964707531860702572068695028756885653404205075238646378428307056499967867863622749500027172499405902563667842004592561350695375603535812720471690117424880469584672298366650201491303913081289623149455685017199825687164863099617696803213366401701265104912671400144798387545977728616411249477146830634993045764672457616751564877081398201753518658342216862272943721355752741539240088676489177862101974445377638311583489340181386448794511315375888358774823917266795521354189813003634066790736847743882876111323183523348369054635474105724204804825744701869252888601646993599394031241144587051585365509909025075070518348625050790338484405773688545755607904756794921466930224569633068123701605793710680275045256838379409604792132275209917854288595175481938720956347738559809411569842327484697739053202295434699929587509839683182641229624057108842371749483577370058863357565262156055766130414475678765896505798972546843069914263860521288702910974869219701552292386815101612624183792723004108308293453421556402497620010084240486353532413585969368542570436828477062903457402980082816068956997981032059246027235858208241857970717147456799786631061200886984164815577745808470242743179613309976857511305529875847045332173870172749998940354062649497739610235065765624061601952622888998991135141758295897513918087363404424376960286477878521047211998235399701912884004642666473106484815666196049306029793893400897340742570371995936900829542099734180404644422676876692629122759776398284950791134082157516621753447179533878294058749706256418937524226821238334279101296662607209330061022009053861552851633595015859425108454060621331219188307662519351400904284464835491285004254712061414115003509758077909875839202895837508567830095335733784300045357083799620204055562290855508825167013728450103353463628182973314015896236008776427789224737293414075649817187262259648549380070106645183106038192181909121620244333333889889033877999964050401029611227142557863885362856938760478326822438603728569757456764644336232155551751918107234777260410711953343862430335406456830867206045831569116859404546951069842610102498841695237318262891911145072321291469867659566778898224309356181891392058532211085590826733020147297387954704846620344855222764615114912215493303971237687302643396277349425367819209683044432796949237614895979395665503352043781738712273718673254791412727146028609922038237215059290064011789095267029204886651564765453033136521040265124788799328804706287398989232692988525053565221671243198156317771700787875822503200946847958903695521837115415522434638268068008140183326980282186051716418325054495494240204209522239037270317633393773911300117684677862190948200028323270275097792129448402164664008960631075400239875313764028931001529981035591580045891837571846217714267839285769292692816917129023698654014807155640500237099032761450671886517307307908988125026606223444828924001217090407283648064079583482906656261983934122770247078654639985149957134464816948132566357336748891755975336695080346965176864834325141536686369926479517699446832958615541952907668977083652385752815131283567569355046229955532918046017228871849934775470509488788098545701184645580911405242903449779320416975408712386644600035974099161482474282139408509086461315446855159233589067434009218903659567699661336641748449891294644915787505289134570375741468727701749750474277133881376215400106157252457832534430489653021058203158655278976353924696977694775530941135206090429236877884558744733674009702035341218140041155807511429120888089789367515352645042972356124101704264066969776532178352412517222847210952420768339075639562470537359322130426276809888933465141178636235337165594360716252494472622416765671489036061607670804096671728687015929677194731947983709413318482676308810782430480761520556000473257997850219461055156765711210221595744963251236048538155627151378583055503575918654490908795803611686067064120537404392086184264636261004565555772102975825221386288160422348797865098440308487529477031144606803262604120071093526597716108183864412299955118997892652660178189915223609911859850213642142213542677394262300711691057207738894723758373402423322034103545916328277213836757415064422694177034572424277623229208719996340496338479497975541713873032186291271821429172829962452889580506345184913148007550068059979364011043864780726052019255808854014723012239840359884168875428570070821699362889096026549976796305528411508851135781975706781195294510447492921854577431642789253669462387725139114852871349559548600434631085384627743640982996492431710165231989303651390257618454991599731655680307862482338106205202373488303658426523450151587221405437833761735161709373718185685377704378703820733962824921517684066103007351939102042290200750038686368149967135846422454751603330708498907226571975130743303769996198031562567431332269887669912997981568560383299037698169170102449888856656771577266677899018771546047220764833728813073819216918884591067230726327867756111928995942958012191452969778434486950957311848012806389687019357169302638759787382383344203214918813957024239112704951574226856812982413339836565268485599961204937820729326872276752403447999145013680062675207306960143141392203576019918950261554579355111044188305604814536659474060635546326062451923965267441331916971024761843047871448241047622819195451360106473820956248555348452285368482932855820398650475571651563883408986948155956242811625190194085701650447678653993159621042192082551204252074509801894640513261324519737360904070875497672827518357421269705469513593266457019866617207479999187539352106069081467801413035146056309495130684046447117048949048395500431161468473576719115659856100011735511388884239718918671962397281533401534846376089626789282290845463560820850918112143720065033214675493837038829178222266628376500686836445848427342385090000633687899826537734365850942599781734662954153846117814760578489204514406587861788348939120685892450207701128588269765231008016390565355295235061374005438665316234281883749467578026573751561992870426225343732837485468548090855909160217586884417957126494858634612862525189969539634301261704751637974158479327836561076470001981348409828969273086488198835894469995923477211929025585833993445615849661918290379744156144917530348928462806013358370991783191510013407163385003351078384967094831114498953262100744178080468270483324475529771838571500012812332744880759412796646319453257404415500841999217621508377924147295500704611357339836621522868372249353071442468314624353821194217552906482611283002159841511141117835428648809992821518302425155955860133382438741743826416698676714858073940413115569010192759985453938319716804709494601208588877062323642306102233648040306628169286338610266297375550411763326820473636227347949040355555478547916321147144613606285160611044131267983413246119231988393060461146763277780743695502756829538419588043814146964525742932379792438559236902547125757860467828047943684478389091069770322665855231816374953483084828046664311351808208091555470708199025485113676129850052824018653712776790287359290074276368074037134118698985259873307449838203179183510851920993123415163894195793232087823617141708894707227479621346625483220298702093496829868086098617794191093798980548622062909097959375324914007346497145091607693911593314283355920184629152267152838478073839840209921946709785084718217123980171954104995856987925556460209990711425611441334814833589798981183540604027176222876383269374581675589914341547170207130347867044082664012047772599255408955439295735428846869876909880916149674467456374816367091727283683512159972725109265658985543104668270117968321184797081875216672434522287390216879153614885227820624230429309774134284979617004822119410711915779256302775993426013903558679373422800103294248693446166792210037438549633721027286384058174394717601693162577238986557472062567741460790298472151120180635176739983711117659557107540302652657621854569252571703920018299661915240623335989277232600375526872061468511855969679089085929731386502134365474786457030269919319803865384823795494584754748831830709316920935733206384103830588619892429332446554444144552452381962579161881697443961118552690469315647500933520296216984431635411129251705045559393230743815418352537067731504079595267994891714998431643084515413002856263854188035595188092322240930070677196863767162825453666540053964682744578581454946849870186064823433984045024659273351034294831129603153437243929455357496063397987474629070444443981595674851567796583657171160573236494743541924696222516782149060049340081233961139233164845538874849748676352086662830699019048101798904786185253399747013891531163319054336447700166881269133684375958999126686754122719310722027322867042261266707079134115147808995725673538040786233133319526945785950629602597325658983816404552428251716607314852698606497035446842261352634683452453396213845062502166713608061898305946048887254957955729412087114012399383116543872607827550928773090145449966632523155811364582984705457220957314465912598675395690840714733928426634130788541603397428272740431018274992445704662375639137011646619666210172710977413644430439174940851140404515354793427454705291418945348836936526039495381790290543827119204826093388037207506417850250378921671310611876229935905408388651503820324043784116092228932919891584514964695335761053100493715668213065800201050168600775507964958651705282113127047505228907424921993966959816202302430292899069207939889306871088567435971397702801532988001721332702816465672466138405176161813133989301736534960867353973835928560444117267391102403503282868592685601507739456986862953293970908854684549659564435519892342691718896162987076342648345368925194108279072720038680722524845547621639921060934216535277557938548179640643917015934655607741629073840914105611939663907710127273394269301710574865109887727804483037095680041331500619295560514412768681113853726492965280187640275418705056075433731994335392235580954308941297737033551917356177771578968221854862942574193251686747376652548925033547919201431419383989724235460016006824226850873390287460903607361294263166785103869721441873530871989184696853502831925049365907712464818668814548073693723223272778112825208667634600807819273516884381851666726443821645430078920221010802310159212907511736257334174973636944630418005267638355966211883752178480986913457696443218346737117320802884372816458970007247385895912878303669821486104109849320874559803188421288832407732165784777790606190435958879944365237977856124805680023370066474411685360036044754752869212826956065546390219299289986173573489116353531178035139224498509305779917412058107193693398312203054386443784054373553475126860961883688849213236187055248046828435204173682817134928850374519999319726277870516708140329857539956068144437070112302083768996125628169715881480176710389307440560416304337077396492657082469191527783317733105067962057436935247601281669315149000679432734094412617837405554746038503283815282888622430921944735261528796654423442297422567039783004208810928573463015212529732965859732504069636921495344546523905933030616109437950497324508082938756025375067393567147914196230787230471523759208316803873479228208369071544535048670864220438618601436705778299813219912405824094207037411937608569105601333487172627455698261047377044028641067204746748280288126204209549132618925236749669248376707993021434855365134648024601296833367279391894376433194097610089810601427586484181329086610935018914047149627551518921442589310612048873924916258245657319586638313222717786196416866599932735884541458170279501880173621508608375783600884090452733800911749917075676978698487737287068488344172670934565956330777677430146371468630601165163365828022658098301091436722484546224445331062830492120663371452430945224208181032879961701741636782679690359986433795860083673881541073234112619252823842840547450491615073251765991141149142740896347380406745028080174246511550561074296466313439102625024526429981013771426193579619168508653528514293485174696730847586779467907192720376558237048217393296796995625497534169854351473177803734544555659193167945058153425162936496919935184872600835734570258983340145921600376322888147296668095537841506906762951110638482499695712804059394073183490373121158156569945542873902782704986056166459219001311592190389682255968781984761621171007021215950141947732087580075692010306043202002588844759985508139765779528794143573985843050708987306011454133736724599885860155800250254944102975080081465492303635134400142510593605026105327771676928832028646186644146074100712610206857133563642597702332842089657456186335416227656964311844504759226092460499109639428035692413698838541114636980118080656969258832893841362673253440811066264851896730646249528286641791315399074323033861503425776380326741622449595168096681418846990563861749906670113997447272357364636889225707256756138828077071878992386621486963339758799329643307844249652214460466339026225776064022806766734595692296226084158769986287007455754031253941717468018440359746061631569686039436880878857732763220075656328637786894868954361491903660544794008938424815591411803831793018028500037072328539680671030507543554830414694757300633904140931631699321381767439191093188332017216382182111088421254263491715233678592040202696713550216841205902929592114106733922641502019484870958204737997149939027123514239843778581035139567219637308214889133229599874666906206064919103077036967968691487317868439999074285347900942357867245323875680474047909733220150173678187609157886562314317138501723190753587919670239230899673776882929323496370752209232158571092305267572848580390868587860670659813856888224201610639587369762701221148545601728908568599604845207980098694484922740324250247587114662235478798570858157283886931872254088530417716570479810400632580715057750880865077132005726752654975434876154455850427203990294418806923921594221404417299649373859732782469697877772036119256729199211655679530040428076863462127732380523737639321230922000915780615146042908170428871326034720983063556951613541773707337652146808297929501749671260307058538925139710836879448163481499560490658123529805172381921136709524759570638721093166445735466822435685011588487178483745744880322102867589388125224515347810816085940276672601399770967905034873698172266133636502563225549483730379081127454498904479198931542260876479563402451527937980285028859822735876806303157251913579965881764442402907472867119277172015357827274398932476205244741322148194002844750234421223451870007172684358636548700557854370205613201519905096257035878117826523304677711183485515454063713639254929569222193283622165204080780309934714666133740583003588413014631332394913248325719235743801134426368983403160930891290808672535679715078214571471560437442628439576262291762833952741433714041553547241959656382283304823910783492928832946891190172290546212743642522365537168267461170429860932591708531479301968086232170689682430130381251593934549509302945671471796782939151499165016730821150537240703842831332095522954651583469086450031767443413174511106148334927022830393934204693622329460675479188225556335932599972741786385505775011144477210544480958523400316261121601940130012285409908828543300226478650668677218162195808904617021771280645626273232122121363723394112649263888037187572876495520112161023373976946268199646941571527945260206582448202655128180302384827950732653276883546466877712757244909331078974321096077276803051881208394082026668398928385390337749465048435693193291667777401330482849388197190599689923148110213013244327432562985953342693802094412892256008902197358487043367011440397206110063799009298773226432206638192318126959102425769023904936508419783827828901755471976105509339368065986470884642144120685389123881482643925776035210964453663727580492393013971290384842749609204739204627590136823700764249240872715341078308413348931288354895395897346637900548827723531270437428685540627115354693603311397479005639495608007550521866597601856968783185032999180975148240164439552749006253998844979546706423279464461965663540884814450814467055619001887480851928578667934870961379697247610659135344042048584176553370574138874387243896260413323113392381596059176604973317887924410129781927820508989142937112298362985817078769308852635433514988374946427955994310100482702604286842703652299046674846451803534892750304823100859559780268244354052987577364632945158275136680946543123076014282756930636027227905448400416636194808028160229773451282393867200455726792938355887247636938128306212774123615951980908342318475208471277422046230006910646232615701144652601924260175893139471683322004052341223491240516407278616225781983691375302676083926595513763025737228124760661149940754123725744504457205798801183325202612478436671820136486349372374861838276607156977344155143551793677156441977748914285353448881385415251776127749764383474741035451174164839140532947680783295714588004415849779310579498662369610856739503408654810672353483273552250043140766095660982929028133474750505493157792166116294543848587722714348456979976392462581868634472698790208135399620482336382738083611696230578338442736903507385252564614775335355214367435539004632584315501373476972263394045672335757525355951801819924956454909366182916980023719189185098285504642226434661043993262491786694484521383019727455913954381774194997628455619586598324313055218693014158704652126000050538809918253450375527141474531822760257512828282786202138589716656132904714463073120019329567303029849740984438546516611181591577465037191632127846949037243246201169963186699737028747828886797444493282911613323805522558668708923396514970782463433169099338129696853680989583441912729588770638266811435604621027527936309501088815113227586244832955560668283076209801526155501335279496112968961245736953622762599505945552664027687941811126580398501287983045466259694646235597200309536304985162954735355742594320798323324949163276625723078284273835668560649648056917675736344297272880246592481701494197706714001657875774193231552874411239344581176030692477659063182374229317125748144155630449211325487252207090948022408077708401539806399534268603522091565785982057488627646656935692162081088800620711262638710428606149757256363794539156738577541840040204318564855018515044405321564747232425268787046705495967003655081856020119843806068066103710505390200283734768750327110358519012201485257628607122017846562672093158676504237614659075608579782115389626313408679777403537160093433326208546481908650193846424872331044603973060158403717647099913775086043342118374290340621195510699677181165630271532084710245417357950079077975565099891690763613758964663615505834710365784850340656234427493874386727731243072992522989820778403582938752137144654982755012525155231168475027382272478470723726410112713572140755617154446659835886747135704124871562226544747635160173319116429140703212964119012032398556089568274448958196051758561063909849700808296134654023672295931282020855174874322341421290167691193862260504196369423081042062001735931658751108011566859045443607021364622988731537270687772578996564508092260756767452023977036079572950724629077696603067445177713101672697674849642044701082630684747391344112816429385007028807638344805903421075650945483010324565476548321562314396142705599807689978569541383905655344603370214869166113203616943840033899767061143353010787434402840318761406766436609986522428436680266303792179476679377402594638378199904491133695017177693258600113227119851058703356128531728387864300347504481222652810613690919907354720625298010639298115230955670002325217186974190987752515700559472741960054900608860668257088195796236363423858024167240479935970407701790153971581900924647093753820579499933623314170349281010757166795505359115357284089691261767294986261352401254421466015389253963446573914932458177959291365869445232714512204243161548150130625957911621214162495202886116700178581053081307247996094712395702272313554784387727672734167074129207699619568651352913415711843865909444538146244963807078963160215781265349176624414614453248113621752596553619673961519620060495278126783879310588568628402801468652440614081090700140620576370827528712559510069686516883200782606777146209612876775810946967302837178819585944339975951134072287825753794865524236829567568019474959729020955545283796161388091558667808916549089498549728115927594823703991453290501739979754246450464079257555327306078956112498878929159472031912786494590573785433275047830102243169900528801425396655195594838403563886405779619419198016623488521316904153904109205696496481370225300955196067468941531669729987298739620020853016412466035668583450803175426787405275048016973429481877830937083962833073654309480527916164905220017217703795082101762292009904089197846608622483708366998096565997849332268603257025866161653035421693190318813741359672839976881707721456886011119180756081057312415816588656040813677515388436379774321347270461643027540745908781534535213360790742809316040169040338474413071505847776980533212630266863086719871523314588438495536405655845516929511375691895020386925203979496347544506893887946200625552301250990996280178021342272361151464047698176911726048627582305359284506820799645275810356972436379396050665093760264649832484967249912473757554538328254439940922059839444710975463252338071623608521920729897551809657332988140376317137816683109837954359670297213789563080497286046737380655851925650511164744497210226026509753503758966894957598917918831345601414944308324041741538856748941794603659471433887384094553860426987051186596154352587381481370378796241480959217056616793433599123043945039768860226947543154850246366657348895796528138918044544662658251182083494386011888343501954218281933329493272691319488354312952467732908136602507583984255879699771822193448573819091781326346426991382912410933225750966671398310222414833238734400760469250752608767167445958707734749696043587923332534975390987728395624239523234081868553953799403085933533761195919504465304537292152823593282912413150414563693157932311022553905675277924468074141416656192558812984894244254010400676087887918222180869525416626107333173381632732165014771896324178674135834771146507587592143497409577779944479980728561177408499949017336982331699045721838440441112188486798932066564807315088062286437823364758209888979238579213375802881014234612175025218080387645048559063512138919812382132448534385085614252607245025663372171935605108437144131666219113557967233684040933740334548247167159200946813258357409027945648067516343957315497399317334008848256833154196202424693336660213236809351264240320605477865661981827275270436121581876226763877381488120731983977416899732464512811943379843742252830685892511805973774128994021680361852721653979699262066676116500989134255141899029443313266003005167950345720627450637671250114892050365569520819984497218242440749653936759278966389951475277477007453030334839931795320790249518428717091146690146925281369797858467231731497308299045128504879943782517107196745119808243981924669822031518508934455406105262987633389544238546476876301772675904933836569746490020465656239286908717414167541861181028932492735167779090347561037062086326134320030698653424555845941472297331262690233585585005734467904381263608188602821009392013610437373139342987785366349192088133754619205168580195630802583304310733637773327641587952173869846671421855693603094406037949153202821334888360073997323502917572992411473167642988801746006444455696480011311411038250260665145478209371547296901733639891313208990385900666537556455147952427919066340521750186996698432816631958770653889519834613895217609356377432091017476476315919288177231226403614449063438201701445418732023994456304518151658428275246333384494443094268477688274268875558212074838427583069239571669659960445365827392051795629616836018561843737326246202802390288973532398183333353312616809885732665631581336850103675586296078016090300289104277618835939608922612230493485421872950776541023457683162667660006891207986926764370434953197835640113136299425910105979305187541583489759729763522851487155219984316604402790113231353691884156465638279709741771399842662530491756217249217034226336206969605672188811889688466042549494262992653810991451221844143981908747429687745099673878546832840664839354175621055085515069684236884988797568294838721160621737340438641917684380606600066584520059739484474234128771335033675090180468811107969535037822372791202926594812606381097758340455021059785666015781193142186724911122833802778813714589064516808733498947471804834968872141009696384218528821152901070883564595144441375295710728719801947771504211229258888494511464314140272329862816798147692965372934286943250371394560893114143661997245304561094779734133987163832244093680010063468361013939320123872441168221346349519212335380552018400007438538858125273500345447224387716590063574470324733098326072733228095344396239450222383017847743672906020363467516210950790187928162123445653910912838719155176273781435406802296216883337251009322923949284742671922981640506321905627770981891728154305232623733351247174564792909071849753398243357648047747508227679092703262724912710823931183858594254646710848916548529316630832849300624349284969019493698934179270684397269998976961350504172731859116604137022363598678699810849695194453917186169808598349949006201163134786286829405617808492899308851120140124649131186709353669730267293855997366189902817125448160483860761090706546278063489096895781805310994609045828190460545451997208456641986062261873459243555146123552740900142374651926593821874514238456371245702631320776229419720784693347270561507305377104854853427514597720860530161886816747101732604274248245963271645774335761410943503711960298255294735011474179835786350609264867401718361942290594727817952174876245803531265070942568219094624151416261024851325019815339102854870339274946598261890767599315905798245243556033764959018787345037947625135942008258954303759847747007837090587699044360600735458503502251976399815070152937314804753280576446584202762435054687925533086066034051861523031359850155169811248280364132715577821920936796178910294907704025626315655568945378202211231257850597797019120305911016172438666473806633747748397257113998321656803014198642737966342030280464511680850566544094223673807441331715236146084133639199321168541825688827713370814028917244045707763481835401812992868853669409103941784545185313227199207195815395348285978267209569662227619689004388300611394214907843123611041584042507434908179626916122067357677667469683065595965587901943866966119684418686326505291165278671630173890158802335082424609556091451898648271920563871696398268431697842867321519118232263136818011889202872687417278120009518474585275725633651034060024582286878206953970088706099774739632375372718327905747046765635839388440740882762724599678870369546029266619602234868481841268125089916501724502832778250134627240685796109310684542200797859549033901356266893897285107577271666293283772787418122835689789925811615204900874064090687516956462573885265776074496355707266086160980508863549232335107272628010004398785115255133741377816039322737680344487634046494145162357276930992062956086281309394262376223271020567870683279424464785957832789866003279908245892172941150727650024819806164249091329358261305000622922028584427244117307131496439562182505440170617725233560311375755680462886098498484780732608524401362733180908900445997334842902927208484699298766440198796483104524301069178097895724517674596454052472679182192741873880000547347495935444771254148541496066078688137430244673223495299443551811366015443013449218578112744135353890126202414513976181636558341702883841187116906592060235402193220356789579907794101171171051535210078376324755109961677563477320791123633773043015301968557367406595531031362734185706528100389077048509045218770651062555168633797843393208923292708574333060262453358035303584669032938020050917030321135220692269136514362110091661415992874754576243417095901240152099517228020861347943303577334146286300066973756586590603754594070212487828483550302479201703744744972453514716898940350247845751467529430657235709481696672630322157850280938027384163429550923840388896301611816446577870433449349285601232436921398768134733958399739369411393472187113049620718190866611556019098178579142820839429317851476105135756340134867140185186977452346649968832740301789174425082356373950839938211080913253247749779529802089972895901080500819076176249942229057928574650587738494544938292588679241474704806715288312953751466563598149372047384130955049637316687987760020806431694391906863312900923025646769972634979712705613089580275085461681761487647255071717994627328566531180386592465258611234799157949769598484236341357456696434914955444312496597291424304630481090043229861524844594881057411083398040844047780534831094625386727330112728775025778071443942155430625805438519598638887525592519055661629128959874588469790317819971596058854731527937029558607477380481507778090784704250667158603585557474253364626719900509859896478709116436660148654397510609290067809996669742246363000490196163289033048550725195939660808876571573813470864819108915853005530576980195981890620066130031659877893561444697386716052919355641298045749732043506128184863625127634216586686198704548780866370517258772031076123977290651933185101554731066960885188298502440044940068459602336881849154479698218824538387109708446267187407372085409627821343909240825295917791426550473387967490031378978835228283534171527916648725567620656351457919704195923935354845900994885320790972350054446091335810948207188972230468370467305510625166763211066799165486985048155099828798045304993269213765019957743914274928672300830671549355942497597055197419681160267810311738352723966833414073222546614537570558514167814101906077752052103256591004301139575627982204246809981664629775267750967866807446408503754502727072335378547409924440694760345901836876567722800029873410941002679238944820626598809239162273501319922554241087269783126461156712742814607631522402847109430002564860709875028116831789320943161230830742616919373024916889675993847768220736189717378592564176758200840201740926609413006612254692020592973491818724012649004039412512685061830717114181308222113460576397381813383235956777793946666884554188085441862796208302920259330494206727076706355983632256929771959963137411530724927109211501621782363611083037964002051184792220585887778761595947553560224373000685571869460105825925392374817383034040228375260616698158475414398661551181071888766130175113109367804300606247379722494924279549497149940410813186570313372770370484976589859753970502063796847362518277736273912242963116201362775389340414494264470200738891071277628497345759394183386772316455793422554239675944227929424938622397889393329488871375887382077512380995073020087240921807046209279889167231151705326880592019226908891574738507998011261004522689779485187358351174100327339306081048455562574627505045945839145459980496587101477915473594724666741833606589727540549458855886667220685116408945339120418095496201128749503615050904926285200548487010653294315858907402128331694408410397930201156525814657491722404176072104135668133076626081269703076786666014838529339468949264272081041844046997405575055047770092078838080401447494901013809900204556959093847527682143237558280834820789625775098582015694175173048035354243366498957795459571191619806823560580560289857020519906518964120309044962268195235438113447628155848063269589493643106214660237716488521148097103531199777023241912821175473481221948206129851227334547461932740917076363536620494350007048674117171043199751910853820015075466744491352167816314692752814339901584139020843713043064908040549921069730524835457269866775617015630120425162344538980267971781549675179810899475447544471925179090968592730311942048238520575497154542285907362310034466527995960990567508844005405229178088760355675315151983829804742115064626026701601041434944583649401368075944014495399284557215106583191421399911147853658963461102396277825305945013329726486289219547775788970353593978694896086361098281911379960175524623965516899458295200133406760466660314592049095340338554135261366499071987399420463952954456273583479200812046326238685258603953788699620511758471862774802418204876151916360594900714561425899754907746212840222219984309857646439470567863150924724911201212978241152859101236779570560997094707826829305869297504240745712702554000073490229149713589128203926503294741639410615475037821262142320095764957656765575780528949302360254160876195209339662384580049677243610620263170864188918379395532420426125784664225900746766912174823778408101032828131338325516171237034555139164776664352837771824497710876451952874615020896090123885418304610458613630997321355924023595713112763745435497763001319822577450090109990816298583831821595237184648660400233500967591996419870270151856407012547929145933190669511849866636704655905053858745924636075599997900951123468366353737746043427206786609185461820130078280810614863998109300608269383884491522963398145761457642675741115464486205138837231330851663951326579883883498838313121249882293714707436412016743491076558013412605706885895453022051223076141544342437748527296433292879902331811634030853996473910651415413145511675316987436249030003434809399176578966615985514541766210063753211170261304068131116993213488575346934122678838866204047643803634314972418160539158648373825201386914179369448215764707719986869035049483970215919307372200345306066490084117370066031877511710203374943375824286946799552476359265074756994329213108161431742257688325020617932896468691549428690386837789044400674262619859419353747804134578497826610887629780857264581413506439203684894394746574012673585658436682113531477478848136315740659227998974805414183140581421810012172218054369140054406765706259309727364852519760452146619340808891651454506994347193120222169848146020811736440711824502773644271552787508491806979852755881528369983756623162772103004895368900860454050074058414058185945081441546523990276977539432204855537663592400506391455009250371533970751704651290141176171205637788168693014682204139081203749852180221302276555599254460549239897411960987841479392724667741051905632493677531778470978971800089093810903966899031841172295926417126408697429049646473925994794169619345745052077665844988143515634565361916512266569466574388638811222482892555284440251800752540044465196033663566563100326719821760372535892086693785236872552294347645745126085906190396048598930859702603652871985472782576702870328472412379931200477887616602698790804446564499143882069982167280223654968750624288680440931989267743317979166189795366430936083177027386005017438343973574310598491340964872570641660448928538907891314409291700260200227368735005939968102680810909391110577341553220713628871317121337121050347904423149079567896438842354002325698974451156224891042005068942054678691098583746467592829496675596178258697195322338134545758328150133110622804646826087604082783823740821369236204219238290280822601881067554676453689953837262957279913917324685378293083280086180689361651563626448878389507754786291927372429464936678111796328172088032176633953334220579393650470147988626418180117607546075214025496480447451622128222110284150513325424785235159879178106518813455542846496388987080242704899610848719173986842700818848286482113186879535962585645607772998375866894092764228492119110541041132949619951905114094010694527625648197608697521925158920994910221694389583472571547545057358970192805732090121860890552544894921203492575264305750272489211087905411742284782429945704278917846828049892050131807154515578816363169521413244597970891912959856119199147689909213931638865150948752241115676638319433247241105019931277954448516734814687723588658431675306667188752326995569624558407135095827163821441889323349529029738976369534394763779493164228994241381499824739074074711870399357336036113535345006419271293801448087193356213898312949911008882096996467053073781838303153656058257733936889877084827885651886219363469409190357269673867903998090743959334657588837919022018383448049156006094697721464095577028109070123775528233480074763152380220630291620327999540506305040315479906662723569286910949201226618131139702071065010856219874872051776047430577012970583394264075861168913476874217465200023467796437557776620087298950649344613136283007129137527471226955995900166621723633759150547994995462970279758207471252974561089978539787357665059465819250314077438420352023452216723428947761003139851525516130231496768078602410892978214230026964565565406976610751615060227140995658137622063196649602677930117895149245382930472381114292499957597572406085657855185801893765462482713879369948676776777965261586059621497023322773268923134188708756619097112325751722339154997712994191077717755939012358057380139701088177796593217672133793949457630833566112618220465139818659759540983796380996433817478541694567688919590339370104645756551500105508688984785197669603132402071680238063108629706645607891921197181222041870764078148690343397173326549904970692817600950149939933388603893724244724625352266107971130846605510780055665533157993365460549597796555165319204589963274887333123294906790121903055087592570124019276105161581970507006995103145873000115135137789423692267326057593415422223068036838340777484903922136582537445889234729172311741124414409130760792091485617650682739938297255108734226888721275656389252990965509676576873219643818121148640431439815279091241444150032268913960408117272616277537173407977571553737623510493685798878733781514144883217501377048709191396715335412823696610960283915582878147978739402133475073819239337014504142506093915916664477181707926860923304990502564238901635694119673175666730673846618788749626594451843724162046513117576264683097014355595426338546252969012849266385703644681368925425658462828974779237202840943227679717356474171298051868706373000480990628606570036428637906511325690756989947593884087019756916726236763762803649783291788614670495782349979527133623534389218601667345197039804718441120056698850668157756840164898748410146715586884752346253832743419836969163441550612067802705367837538626125445246838198732893423867083384600768833946437214931171407037802999733915244074796356051447095168892405853380250428318131875433818551706922460951994235139048513584321236465354165878837212680751768951283874370930510460296434332359970501486454815379273097603026894723202524117738771718252212213052223433882567363039503454763055442436269028043748148895917651736981931893929712665469558328156480324528303124656412797033810762229225428451530769949152092150435499294032557391086068372516234725281705860916442035835601908993179791236867273575207503535545115534561499244316419531007235697178310175059151022116643605849524567910487483677212156621868323377968994705660276682094606947556478937256295314716747863550261248815886223614698144029447256002867551322807126118248116269490911418930667586799867051690390353620312704114361907307079420636264309306633264291578961767748890453987934992878740771378541279472224016829122819861602179838633500576032508154028503047693370459946418976006953327361658337929824633571303428910175794464990649478374296031864529982692841064113760627996431273559688592343381386291682828046787105994058376721797759741117396131442628434462300609813306751017569225541742436856336865153957829202094530998499721567599456028728240235775071163705749090035240545090326159729730238689977019411548674098705561697104997592470220779468809883567485783187769403284439453690902179597291113624184083479447021710440942578653134624053263389140173110858694919890072044319216072535475659549120423815887453439538017408787055979183052413177465211131218045479587098053032193138971386930316637586216773846723830850697156412680714352354980797355783999836623642744861911456299126053452533133021646645062423674288844030404675052521574729429161686639996569771043999164912887381642420067933319816789749905967652989115239968093452322056339462347385676102172015925072862605747581778914219692842247461450662686204227499964301392267943779542998635160477019327419231831823872387897865113662437588998190449502203936188026404040127096628507094110896736145597729510359797831328198737334706023235373135057317983474400789139273845959190072015170701485915986494259865892843101708370486401271657441174419857532626230319471554119002571052243825291776253235482956097311843587828462630341707725074913054401605271423298368526085400972805328198813037654084810605311691584116419047205927457881477766237146551131124293335658288305507567972264478225926203542031711349661131494819498541330524431049568163571285266351963744715654778044765295867371120314023819309171892966160133193094075917286882681533508421704563235842789742974222757076515486818811972388456286492176158465819522603809613229750721706835203604892362212754485180651041295232829395956936438506531249886177344180337504011973222653703309328678318261100090249099079297011399861912690425291566956802108049291678429193037873264326451929771645864836867500109886665453272444473569730287220545906374520614443172242771848802190641422375643632563394574218380223184616353751191840210964096467396822356988994283970384993499781683150982601315690232434309070134023173743205844802802195259563499615826910267864299686456873343368484202388262681587120608845110400582243967421313266675144146169830603549178506427731097754227055151411641108827333487459245809674756201129008680170618169520112406023274576403819897324588183819517153454976972383942632100236614068179428159550366605167665457613130087557987899534113364986041764231408855450321032445555699098788645375452320776070000043703921726127114342290252146766985608019135396468642372257881457204654443014621659216367813222044173885749898977676751292523254676984724542231613436490366322147433213970193462292658956677870031703504492943192268370843392470648048335981675106608871486241052811223505775556125056334500462512026756756622758482034434195263248086311066876119975223436902202807725722968795315131053552350200111297198801432503792978776393068651666510177821318611601109768285379640021369304603208745936739630766565359378633073491658289438803884085551366305459162397197715771899683452213712506864973798578254802122911530618874232251102485847900140588593577567228367630883090249169559914491329301817684470859348569618973327281498527692535739180120334890281435570538966961105062834676834299291907242628852276715979176356035768785348092396631254950704245595391041481037765070398301873876169932858480409569684051323224331322018862357199902482066915613033304701628131542169137131600804550247631027215929934572432572656575091778090497622202157744433041071834332887309067736430899918113442069683498634667302004901375444895666021051694776869350612259989813414094247441142966288893051156786051674420389758171166137071029174689578179892431487543871020015326875375912800709725402797051186916762898018722460685065045245335513730308398206027744474301755184561653690067170471618390203228620642952880537580367706909025571374387429436933026445956948209173723526049925922705372201583454239119041924981183805125959831425582494816795031950319720605519852924645911138747568214038302874707553612050801882072272278828763386640175090502316515800682700322267592077626271089558098870102478026922353630340406181438817890783702741778589019130787525763740229618273095201647467432560786502180258514283678301894848531544385769605640161925123496244161205795902874553883616954104029273407564335405762360896635088558518713410424149490925454885658504663763133784788951573306065495063120860192724864603636574573484775211006628513159247330437198365394082237673101176677361936646166678438060652612689808875096031297402281395489888599600484436632098275366263557069783818173798653553617197483546834580079209598665187125958299335311412987133236112129264929455216462359509461377026475554568757201812894850857582177160399706381002451898970060456831592987238359570032331811633054260414300492661170613082990481416438880224843675315284744486070887338813312472464820173730785152857718401206564320804555196962590428618100635143799690230665480018941236340922771541762515816255390132777714883059699227591644854152434859160075132272260880390751552848104401373040461628661473027510171464894876467245525704498244691780301581730315378174066414814056445540547259857610260263375419144926129452237721646077692127407424133512794819809653761032117043961143603973476054586672418083379505618197190801269294742207687651476052253324114260163724827993407562037136224589331885235359139208762794157511434170716059566273626393715021324136268965384080166929662020003096965061521747797018410675127147143618523877060543804626252804483939398607665577665842929750753484892801533148752809582953478464425842238296243728121790556423368688515821721781157135522958287209330039624991212549593794369795791294620138571761382564812646655526929705547586605461051669462768208625873087738840684831212225382164031764695538012574030744486947538915289844070702015769755308277569536256473955619826364023782318536776939522916974760891173876242812189670321151465065799844910047767865216522796367606891858780479550131679604735603018527893316272995284233500968844339059101422712856012229073179635588469472498429844665771554594985288748261262300907441605583207535162491320044436566574391108555832426628765344251062564659319555722379164249614017161860572062280492499330210603236005035248916569449990493521177292217773487275046807143109529007202418085283472554819666497031838053591659158939796901343296060796596293306962835716907098774529520033872217738646668616424206072267048298483652770415163712731801845400404430540248867746963809166717388081090663087487200309185949828607092740368317396079704642747738998909349087410707319031755978124899391251196043765006312933312857849888127355688277297708853308416339394569225219228945278945852120404930852465182652607765289987390725747034894835281425709424243216083694143928741608521438219157198044612530698985518197535441400329254118961688360229388183928288102513149861801088751789282375199568702183782902847057453494878469957361188459504880840650909700313234254405948487153297165846474822117357857756140585568175061558226690541064442626952144432430198815101908939953490366792381385912098569151650279589891962552814082779038355578507617700781486574110918479013071297298458987396612412008755446369718194785038504751110747219648848632448033265466439450773883857358418863238574884454592579625084150035341793633003769649685331766346085153858534306320383343642934681514180725245867536088862371237904833665183052341656871702664207391002676323243953247008318826099829140572459931996155531267881906879638678831650447384828061618945214914052425347026191724532764799678544437750238100410395017160611856476088867857109963013959731656663965203043792962026928241609503033742337328955713906758973880172600562059285226141333870116475348740229238620121135820298920069099028506276568928803048546147214467004528933784831630561958356783673772737397966835308082696958626318736990149833430551353325349123828485530634541698605209681499508569552345770255375841023204877698439698196649026613464063612245427044517560852365843625762673456500370031758054573871927890369115928399285681225706114039818286792533229742998536403407372202260323516441490178536107309353381853369517447672924719189658362321367228240152079767806973664116268765690632938283441870810310685500025491604661135481139650034984513311556690492896438465367324328433075273319790921784963040320473326342792406380704504136087464468223341863778142116928529172632641926877632869853232826025111933654196483916743747620084150578029767873354116121966597358275398184299622882709137474080205769794383107600247012971703665868833716482397951444325848933151009984195338897639491849570592157935448758622814878259516989434726936725931947046286560015109781900234667214373632285215764955718935580652599888789711619380359967332003743201319044527172150976924940690159933321044035435536546006301137180370477277927153121764729404331073631680820101249496720089501445088323123655110026376240405461263631099571247987990064964143101051702505566009102071700313998613824299769605456567596415102952976720300735942889508666198641585163510772992265017208994994841034535291019019383314548303612182702813921383412444378698487433705134642091328616119207333736345005113777933978124352035359731572349218291017387232359762088111661614872106316805834125229275582223986983292477218202185063369358579197322448879654147588361150552210105972974340456888800034319601010024489243764864855520652215444250850424806189410134137128484991661823145674216070574494437974875850708665168601888582302259308796824787664225078895348968714881578834665818019040965221653180495618000125207298365574622227507152899019946256889925461802186998501801406121447028235104325897072168188753087930893833791828933900156079333918947896956813986434907576145143602791991636303302572542004908907593880220069279018365747528219342619541068412760510360116455968414765477146512723583605720815253513512933885446303290937061737242489635381036926658266209484399021886891245634365719039977441947178352852645466029438527013659483747837378205100434712613129201878665092922013778887849369670870343688718527684502671194520534539423234323531692909558597403864629745337803218409932223858288815211161701421483850890917680033478685562298816132301623661219242567966671060793695209712472387749054158366091542528338664735237831229990734148175297486248825735058005871077160710065028237253945584264123602031956695055597938424106866295519314206027854087022271114226450381620679739747155134391063151578479794086956326142018468592741501523005077432237808097480345300819660603593373765310691748525518761097440544219839191314722151280716667938811222744734091951438789069603768464995044101290441787683753972557714089605993765959018590728803498998254376815204283643170989787008490356115106133376444383194954868094737255214950057906341438252915725591406171425151639270894064258677985939857609691060990805769262443768048921297233544343704922870817775615537897245026565595529728924913891072456479397222667454374657383622865800083190897563845392961595864567937572518170294985987923578318596706821937085046914823236402959862530316176978959455924694976692045491404762822310155606025615566219090076447061544296364361737979940590513349005942221128404317951042365794503817537810331361984357357959961552308027581889122489912345575048311730867952087515528049657856309893187054587821226209918644314422086180859530250375519209865202489037026373531126807880962839107131475160350451362921079459607952906758755736394437084877277923012686568867624703977971760559883266757335903325533399428519331909245316111788263327213922123133610665334996201213751319194854564377081841529096250884985665973772952738892713974444518763106464720869139663713907399440567730712455503880300108841022696186706198093461024292822146682367305246001030034133556553420762854814333849381674431098978910323115103436384975633809654848678897655899480942079123487152189273904561531781201346945017950037873570754569946604125065665030574428219787423975134247346165295232252442492123764877379266400991709052760486129241651741420150551722532611330561765964151349804604032694622067852870478705751371949929113536967825934491145514123691764631313522740023615629108896273760010137922128861827606514322323252679779869048560012059128437549528300260099947829665787025847098932127993816545754495202372963937000199710640525671217018144367634087569482425609046616985898380095431657868144878659167801907194881072641220534309287039976203390602081524878209859008576029814931324090989126312401650419229821860897763712345101311003027127772645673007701659428526324002486667455684107076529669040095785578286640779044181904758889632718228076929529677701169268425689280596850215337184895505158807307200451374555019888893027098192115801177667460578129542897350429447857178079045272118989874981938906495488785845601468149853821075282224837068195447415816142835765337515220219657717513215156563400952788971087508568595389648386624762578704237822743977273881431621583177401753307094832851847422071364604620329365200016754328841322372129050397705312091582381157246577166393284935774370305915821214311901318129398851042463602949103381901978898985810024191087357654297280572913928907492192104981697496328741881288817354351922825531877821500080389397328303869521280646925754407821918296645881408086255094045373743824266171479483946872655530912231190548484510428122465147575217955795227120442689636812184109798015269176707604233096155197650315202453438377953058230507727433740960394289412395407721442634950038689575587826812380935100413560401243893372866836022110442598211426948790503807311466998268380949706124844502609184843968646840529674770298610941693335007868974860050618654250862382072092587760541985288892884515504385518723287640140753383007745364981408758120975673349637783511346779812329517335388939041096595973401660898869154765490728699120521086773114252665362424667148683308712142083334395166057614950723801538397692786835265059490875731087546320412005105388016875494008511159287388615892974285375271389776842387163318185226930634927243784224462850382131314583496759954082418994579471575984032112404913135385831849751358112146750275502458425851634627590385922948597455874194043674675736871977961953029817812161410322449031068646604891367883677821709032070078388328450171981655739700379657323211926767522537139009114382237869574047253633198789337702040787502302111367590549118899063714748261979206143828827662899530078066373322379145392311948106336894183740692742059229339088380522759821079525113914035544971120510018906914761531918277576461864955844759385689179759312213530434051498618808023738057284964782628538510813539317123144988098311625044387190773848917415850485048026904670870326390899128514982913884256110851539785900832929833784516170637559490806736067706812865358661405718337906566023604472329626142857706936089574939535862080467480550947269477018184729943187188437621389967532037995616452737107090587288796041747936699903001582676607764940280987535911597424008923216591335309337403027361702473598808357344828945598294496917152156580765802962000375342921526351791472313740766897288302224202136741653698026276902923676128420818864511826771089803611465435999076650827959132811938262882232326719395081831799907885828412522637515279002547227321495714632523015846059128468014364292908656544933863232109247103496835735499449568730712045040632617587240411083028745433427694502377032033925870029009680044055034675332280136235212312017473986929665687062894768135176528892531995188096407336096104899830065069160083482925265092620947056288432413356232433631762043871890094541895587685110271746418941647940530577274800312263281138832268319695858857394330071494790690178260033701911908398480150518918143194119701047160889314954540774897630213557863702923731707996186871768160321988660063485875280383508934671549919031820644297799151015378440352806331913369873365062556568622823157839440795231484183699613497211313608918829218965154881079834146800901495894897568846054547945896211835162107524049418576492294229787903639238995601630918190539033425797890897444460705696378857657999980546904741287436758588113369411114885874099308102148575338640521837520753320191566697947787008364601777763785031766932093439070101408292036786996239665192154494339028733298730173291780303089880343243005349301164077578714779803306814073897841053522282882961983966572561181780378441849786207503292581174795469358829068869467746459394759259100653235453779881021864482601908710360159304237308769180663211250344249234457754670335373609268662833711362213379107774062805524048858249355859205253949750282670339296805426528474508610241050544224968775704422410577265583188704289571856096522698403712472207615032076464889070315997423427859151293887486334254262506848040923898785236782703844311726739172340313977831027165575932628094331313511220337539359724013443350415148290667082569707769479275620592322595065993431585261993649198706692420090467899171427338909914431459653068747021756608865455441169348239443523381874513848491618923937487070279857603225469302670283243415614458062853795282846718313631357492544031396278090180971629803536776321431754393519069667808330411901866961219558688805194619863082876501847277151145039444654848524596247768330185327618432797576771189700264630607890711965085438119672140542092092860617717427375619465799355122403806069217036980036599986494624421913382303132445864935467791141844373958166724250019740054781077874184061869785011708364534609209546936482373251538400456774275652914684686119446975482329332321803769986667291973473985317837859884182708863319285304156852075973994812151249600060786729317828132579558625637618835599752192027545900622543852971099669965282068459411302948229843857349674636169474484002597329199170191491272368123409957100514770872082452793168429282920495802507228876296571166415360724787495891322554210714195890559295044456601066604610045237823521131398356239497205873295267688367489897879533856417345376436656022379122507569835451689621128433958653310736947307859933529953970274314822762570630556959322285629415358154885546762419767821329568396545294925258762309260766192765803728692212812149343008287332846149215526552931941988927794529553661700099821032164164613470252498473847350520748205172060830657169322729890344703045230031826369060079710851765358642014110687833957462710977538287295541058050457698602312381471670958215530134300807922107891060311410165555573779587043806632217429817780033850285269740265072053698267752313926622958082657175089010982576791709324733447443928308281016390367681192057043624048657808028261599642978152527645078107298412984860891621765783257460568004350034966249573551436052808564755678564563298928661052766432195435353271349044942654127175145197540855092726658709792288551882490537980483907141997691975985429286086740429196813977746516347378400955181711716936807431418523223360270928123824580971965929139543313463293791845295962798967525938273399071375354394366375069651479166480051300885051418939237934129270960835833294964480617569568381464741119387506550544402636938248401516613296239949214326305916335374180251859936937191475718611714646683720148328472526114438775317690467548482450296538106705612916767828865479592110711650922810681529514915308296327355826626820833304444988795142492314680360149275645965388317591640520061067872308424892979829510342248479686660756142361262947406673758335829406237483675960310661602939079800651585168800986428906225631769292686897674605476742060560818505651767790862006228915301776085124719054721303677194628600749536372610108833129310952388471023440845400075100833468955676339690817960379686819934788111154297706528291759256209480821470854395116110466131884513324428066627838537477795721547714750554697668468568023352028522988103336018385353766759016769582188230222901203776967823519793413034830927694375816685473554690204802580285573199911430710820931638628287635188902093599114961831832891567699180201526056768888923573838667416854735188819922705946456707898058760462886414503341193370645374321629738608625465509877644319482435521711384078537399359451671641864323268664826524203745753207965570829708237358108198056278994063464650017218895856487116220617160564734275522217908252550344089525262631993610154777436218216489145000517585731665933869622329156754417045146447016324264227558667491175946864054969812873248691075459789223259276939524411013852444448266920972145441558848631145660367935550314044345384275374127814176852198932061428930579826518401761988772035969431715225481821695196697520217224761669241911360256431602317293901327013511137045947266079306607237214028650884797626444275982089725016884168321052822821221887876807092467637984215830510144437721194207468140177148085148341169114780623575207429777328937140495566817932037841873945438073833271770390580126415725182346486286009507366444837427997481640863217319417366979461192050249691019006347602324778417800654689274340545581098830241032175521822436986139967158729052633498553198599730716278627697356443369301919869651374929137285444659910360119994407144692553026879875675546494962813568149407013033511048906769582631079267469632802960251330616268714714829148983622772981846659900448638559051911687194881406870189575963592693715917960187923323529883144893702052597215256152514903018144618168148499352596543647534996080603482464721866012525997015633264525287053149369097752456161326415168541865596830461637136846245618026374819615230523585291956335475068332196776534334476718488991954604825413045905385479444862331527042407565110291466432861413990647780678306231971415131631716909041041247722392944580761240489416964293533422456007333528740399857343977021988890640663348955597664233337883531763003794422875425405861964996038682380040282204469509602453893974184954628480283108165474344287803871216578626720434785436511623368719512832581488842737953294099648588698196223918552092466408831393091555094857219506361916824999175683827924603540181346316739759312644014801119230832796954392275221635606831088475377109854202134403946084869468219140361944768950184778626960714744774397267288660366808163264255382840362783961599819223305183047039633067410253880897823383287576888017785527525184669629084951024644212072984892885114894273282004514355936444062701296987341635333397050462269806707108888291123012365875616091587485263201911575716102317130017466552049321343261469753266958824147749683154329118890352663431268891052612861662411620710910716144447870349064551632540402614161521838092389508975726666122812476547196915941645572959914657073593810653950899466505718951348413295017571727953033358880581116879321119943138056366791633727524391762740177653522849726075183784974936389521309669814434250341974742993677674622443285298012312657174092158015282601995329760416640366185887387493555908034959140195716195552631722292185155827417439635562493409719032935099838838041433721331969495276241130170653200277441848431995953330746044926022512143097955894264449246153035432652111751701010149288108250527896964972206876131069177604730052227572079194879946141040242992777994348274294739888894794679759601372580415347788394373961353650087157698293936301364559603377223006886360198482447386475614790442922255017563234009273947802802445333176524161471992344067657631405010176466147433433014480605467154166074859260099851190025250121497078374299933122791875151666778072154968355777188413165826108169747948961680738413432473891078184431963108950015340756732882867730044316373961609353520628218574162237132748767715549411654636282840402639603602007137368975428175447230038661215751983469516674195458906937224544644890326788612532416845106152920090175915888732997922537170851000246616222474066911552846804492282058919115939643070825495810985433174389918767919588073847499443297507434493040347297019647320125630512774685755566639067025763770104887361657508603037546845272895678213062596697324444121600452047165310478604623588324932353113229502411439475172853579377572529218730285780991244048866076823397743906704130984196784110387792363772563548951328452715806359497529871910789862548354725930641574021080903130489313372416170034108395536860007624268674283115138825959048089914702727914230513606896169847044340881338935384705000858982204359831559291943350752263617927665592145749914104785681599446935544209963773862423392259055384638322650751979593614651342659759432857927573986585172177180643256787257702251815459738784463606511381483605339475208743382960869516869765184583315995286117957112467430772655244138855943362831539901111184686631260574836166072487886319840557563129874872660177585163444019587418531511556375059737175914743336986532733038904910028793860502896130887132226821512084315696824018127495642332682976433068614098741304620957064344430800351688043581259094032938131335922322480101020169589493791578793135873126089453320873186438835679163046231846628673697022709408232589945633496068761489969093661892612014594593327531732177569271138103050893433289032202599034789705877460118796007964127549608364563900001262835396356138900553241145428854827109673807108373809354491318500796460045762154580739881458890035284665853321867647379722246832323417307154264389912191933479879707387361471982726118434399282235286948247044605865111117174126823909253801168323963991471351566694429101971107747350989286959519644289695484778773427460172525661590882789062967780632129476939382493446496326632058376148483071798659084005405193931422622266642506887380643506217174208790344070399091062644185425693485237981112346065276993148940858822497450086651947973185057497136755991726353944334075610757337191195236259913664085721334967639558585824234834083406026796255492064004794461211678886462473468689035711124642512626887033971840823763650606698414901071549850110184295590764804601695292950724996543759994384672688552712151861842668164150001346079070151475105935687785763780831223588341870512055977757358191746310204012907078428532446999291845038819640475412408619851316959063053970391007647081707176988746619976646067096065427960709260403538335534546492729002010368958686922256892576944964488867197290863766222503234914685098438322959211891274428590121491608011597622257526996106611753757106961760735488156840027316713223293786612281982364770715058318493351242668786498142787549482039349036116032000863303118731320787614197818361436655223626752995073915767140066779619114088345891325809345410847827973765581031593263780601713138253914771903143831230766145199195525691482632849006953872039238739274703238998390860901068920942606292150841638296790078222064032796584846715999915843134528244769698051143795740950778307325686445951005152428749637592793290982497680325380496706705298997732615130859418586848670556454839369058884474272580320979558450789649902335664370253632269869561452173592665714993388021320626335682787430856827790884282565013777751472988813359388277376415804020974797856908097192563299055392782953871491317764761047315005813532846402289668944008170078482283664398462094830078095384157938889128434203444175877125973302073395557896366083937750388148817603982325433028347814666192696980951489551380924353698721705701053324870065029548084018723479882337434388325066173271356552175514764789520116741629401661120972737106586176302461019728551697499440632961903279338687982363812732411376230565822060721701512406690388453983252318375677065204002190731116602255352484483939325221580336870969512557225085992195719496206971870169707131902347017977474375017718131890454662942782723574532471292623761345712519361588063721635093757668587387114235901887415529581868376304006614683892457181089381150880104043535352435664836612733388315085022964870772981148110479891056169456793065615183722655321780005332530567264340407461445949612879712988884640531145688216328911992191820265862242774328681118679507196539964499356484225414403426581867547987449467569545221448138248730868206587688475564973979487224709932839371632438057591119727567536230854373921165762248736363098263277011837130233251580135194657017209330183211371200210904508170406163543190742932350381285767521659824254714334604737660723703580084024821237955334659866778741535798303062771237834800212157449795041113499929792391922417365025427647459659441866105768716233341752266914558483415942024279885172158679887330637609535849198172167572611520351805310969176788639778537714221110578418115023016225068234497254647241420234988050312732477959714044955680519579722905105525732587081190869714810638697572225539468452210126738479600348387811501110617006205804275495949055732881925331877416482730211374607760083564327582126262502592267349788732773816937722323874533899890023308564680784058526673765297322980263940182995772797346129753397762207451019918540478983728996043600150277033615012602665169838897092046731369523290970343997614924230751351286931306131099367421200015468255497166647600715510323375716318188794467666802768459596161317695472492889487849776900753541617599630699782002008654487276734193571148041981514141580766425771018166895874850553502190721432991675733983724046449752114971379163370418058405883065997818997349434344831871358306818449614268659614769939553917204568045374768163339617119576663774881242342592451988977501398444889200536858867980562909964244713346075120627185924102959476956807597491435869144014197035265122175461567869422004043145028465056975205986033371436464027010446007533741160644205161642432934563248759593225779252620929540571696492841675674694862695448947601095910657055895036507692862038199649439837523564470903803927738683657555864067148582419873898088033001688971388639265879165869459173249738386437967444366050933226029066213684674447637088783878433863253799365714986223417582930654646511160486600340185291690912852381467237196753174216519239778378116821094405469127289216161585540048851968498464464915309281790554666526016859003681921885835498216906861328867581941487951895258376538921883874937830924881291740119834121539444731667306642192704018127723410216277443890800420963950485992817664955208596091144196847949757545272926537050047715638139945090851540261635355007725779580339013890977108900323167759748336417984171345769842379787126560811307620061290624543223297025527639882391092349083642738495596252630461708220493899937572878896901588257550096399105004082403433190350574517175471153045108337204557591201751175872674552350587880269500440538159927775252122859654117155479177102446016165602356365026485436760131675194338877540655550354286553268824423721180790570934468325947727737040966222064897372931239704666419742195023045381340259320848830876301883015053940882910556654737012566947961932748537694227103940267684146185404857254124963154611700943944327259285744277830864928757448672779972963132505807443430053543587545802732695551714836730441396883643493577261848124266492179510125968973091022654756457578054439371708161251324398557047798560705193154553360654909314731004996996507986907176728290040936771754903538167996296223557544719912950504054836519270697898875417673821092197377295149203937423414432606347983357336588656362049788195035893780038480925562659488461888080657931840379203101708607983042666068169262945224677879950578687816186724921437196938545212522795745036105127095799307666496576455477429099278553614360525632339434710738929469913049789716892159384536416100578648807566345208806416825012665020413755144228370031691276505869988499035456837366831024470866953176520071204904543185827758600336961027738561616431350619303854505637617282539503621982529362952604458295192499190314976203904763443384839445131756334286533209409801699704653899501006340950906322364026358008873745167635393182174093671664079213410434441376351987395443409291271558243992144624231482376280023110635993865676716290869822481940402891082572527311799516191776040590519946922538640087315567279755687802758041718874927944302735198172073948159505659875300260090352998175462972702270106049256074434547337208988733350718070797620086800662732320288504183443176863349682759328972725137485591526610574671494892715382814636013552389980820572159563263969591238972283309413365017822082362260116072820064735094775455192587448138485850603713312025826115378655865948426299588249664366269442926481269895235872038053166781955727959248653185159126581549222059097631912894269652637271374938622881685404672926874340218933991486859635263392906188873887674857085777598793864530438108042911808076117415509311599289595065858787138376338508903181022098836012267247430422634985036713548845332582645270251436206920443601349712500026657303652277378187418093062302145472657243827095571554250870853421825241673945638791756233337665104475590111875321823846192122836819186767574709065584211429175029765985279212069971253943905302168714656187816646760028952077091849630540005775690582186005155366926139845385697528539941013226375303705878349992353594154947438344958606384247086102749026097351122048072981577007495400220865762152075253263154445248191263960059486566101028571249027205016622297072779293044431179571697000349411025321513442321150686456705110826220460487929896696134261285390316556473628118990162796790943830476084778620178468421702367909552830814075459622392403300423056315812002831809265793865314173952523676107013031507958904750133898649573469511669149013349659967652955286830043490208711567385556914927540461632531649012423552480938662115906748599731476113022250761030255482585829465287300906082795055385509746624539490289163635865534148731026487408007457525325736144596154337951083944619050647420523759363632851420612002411739196705812767570717509246122459503374628708027060130281623286780013820366934459054879164222346621948241686437819729733246425316559257504199633820103967377755788295807088824106148644078100307900808825408017659967923746435954377974437354501794975950934324301085683484110477085999274651447004232774429510652022503122892366648667634905371236035041388917062692882848946597676772888836032800832733777452775494213857836169912120455036516119095976678357708866587101421792751992125979934245991837669549475503680729113936194347038316928554138172576603957013997206207917649168477597778746672383317106963303677095692301544278244449543106146764939854350716229550989562561656966964580937268172307402998806588133936812273660777002772134583955931330949953672343645935539613341128401483619494455593030854608098230649777816197296415365370348104751615649296145677169814123840050297706834699663560415819853368951506909881440197294975083720791665322930389481570612677323636503185608779434294526980897422878686719408016411574486151920798401615257683792689235505687665053623381650688603388558649823043315971568069223103309846514779845896411117986093308616833283933561050141195400715557077809519892829419026729372733113460010797261453312360942740453456202456985233068770566444860194982733257803577381660456393862865835704075747509551409692312321270880618432076666290163406160568038380668976919957955690863958511916255839766333336524210344454094281608806118545883813603465682457305200842229172923021670674223518429645757148130662816733860885880893358425719508757062169624968951313089292527355134737176586363354628921860488789679882592282223200440930761542499067771411564672812571410208677917751387395110108699160083439807131583241155502698967240123700809235742030657406844988875334905397891789399068871247593538723029073120065377457102652121272383142514994001928793553146815878408984486867614243317475818765995953287886767343295930022391223357932641144348763767659067416788810744133072929919283140175643323839660909343314633857986080920952958663944798770326631025399616556794388318111835442938372158757835929370236768872642680723689294242151495350091915796087735601887122528004216766747022500827175919181409676921160736344968235455495191343290504460340593909875215744110487998681999750339968428788660607281694057421623555183270401288044570151418586571542428190834586668661657229249772825000583180991979930902439321754973206631322887052521370856381278367605799690156169600949745696918338364622611001877365025894695337476209458953798666798865973196544045428246435956591582749837812563870228714851088568854004257335408310045612447905669654492562425182404876614759113744810813622064218130561753686435694221605352516291369501602933677287625159970076594469120611127120711064216601762166788518906457886720820031759772767204371572062966768465640743471447963167958993706952763421739217716529092486867968451913301617713616271078949586434023646918377600330294293222180780236398781777170003438591226903478357952881476068297460608030390643911039792602285918682399500750456452560246303282920680778794684279261577756639163641068826055990444575482441001021777511635561876276183995132961350402451930678463180783926593503795854492813340708870020380901492309467793004868759195085284005501875729244787398890581217113916716347978222604239458246961271117601715519933513346275428870715590956384174389933946392183796483783660029630516415786980822382857252795383786002041885433097290836766065794788457632309505148734606886161084890674992443037345915010867705457281635466953448357152048507016947741873198801197997847047453721313454868308550690453099966270801720861190107992804520903983321064598837135670589165263718659390378575649533706659425804425345970859504397789743084107513972647177983396723362610436678258683084178620680804697900917361722919925361495765833142132316138615304426324687995766235696499328111505385668983419762058052807557691767856002607856663189025867773221398512862705981501146169007401256313198665740440589133987129535504654786631943917216289015917402247397285487921144565606654201289880615852671298861574530525430539971832396947458587872492919188615322638352888251272690449362099150255776751000396555777129418395244116148654169541362236393037566047663903565750170709550345272707283522210514367478810496466174721214076968136198636176229836752507729986133748225798443743602752626906611347677991260834553259367552997320019810741854823815876525766942712136027706595386032164619421179679480012283995797877143460610857980919379913690418080805940731919104344876975169477867727839785070900971413446774234517289670702324030527462595906061764973682676617790475369952739172837184359477441589235340266405820947461624327850334963349146961990974392372306398405476628724638866879396079607855286046378815827118223604568570873695160524394583699675656239971636316561297649024471226851758912893394118376092880737424885086853722843337100796992584038881088656393881913742489485314340510161775552162375626524186133666630794948731769137563769106616580316577184551190695822961481430950167070837519589748568741654857447580011422666820041690276411669792690220645071823842156895594070377346885074098257713088312459664786000612831707426802982651265950279507050134136317081308029239399158539884196687902216136198974883022606051746318134168392304724753538445856724405901908947145778134980038428201402831654363810700271376135075214221838967116959130488045382851274764115669927901312680600272082564093996341178220255702000544445998806996381353119058741163484319304182008825648874693647874147259348501001851129575989344301631647974884225503332479873851158422658011202595726385771424467251564384408087933759712126383727609464607571933395833526479249692738014127336703959785358981662660766061018967279798058940143841093124203136533208562505183109908101981605136973550558003905519033625534963479538982143033760178166187470975875438959640807815253219612263314236700003757556958887335267538343768036042827010577754033803286151568339897199691549300443102937042393468204911760997076167330845820105602719337434330765245961013021357466240910353416098353564890015249543954020336627374168120805524312500712862004444967706927129748765986290914450826051293329735850722916786318011591598328074405233840163306714702954584772191701941815262700620470002263835697132668711042921393549969858777677277818004908231560876200323644689567733215139998283944062503509967802199314213769075687345297488137177036538777603962322743476669148419437434658439968776624202924976039445939428226621102819670722561528883999721521284518739903889108530803735003022174348841763905689785989789337154869392166111075487281821537228293236661083847503907244357153580980017904335064093172615579650773645696098323561848778892164821139293342575638644068261451194481422995855926998847484778146641440075782936544922031906717262553376023099660663278531534692275592150765135556467329887499141337151039153265953997744021244992139773525429355136171737162451259357104621814737339804296120705400250044887960761936988013013804183956280621260666971252906145990529439297749977743646292013847323926211332687793801946482190237451398509377395127380277303018312257993395620267386089404597005618546097078305644013201101683418413154165458318234735787616023606672653174385499115072506297403157002895064894235357358523559272528017812429968344744546945653960513908076337346027534836043628093912221569226576639922123476487792752117364864560078852069625529022919615563786849525596690290887409910025029472483943254058208628442929402711875290378977805707683502817998424839247951249806815797721119644421451141408370687495387216462198717344200216304594269866787988098346016036573880334105101343594768064407053249469818208622505045982748253051438870078364071063170338759396650872451146118958823766055979411348757848595926680548989000686581292495542513881027614355664062137065956761798174257126831853536374169513759889055382241476778105873104723710641249983647217131878179257517063597813029095583808197524444775909172205462505234109812616327807986179731495870625183607049222219081381371485284524324566907147891525959022343718194422602897175428859548927743108183290465026206398792876994989047214373706581713159057687998150585565986834354457634893718160644695727485254275220846063308855963104623050324905314811151502934757038135855098949894997882967866997747003492231226005581128129604063454371253778032264071496300151817266647834763472032459447355078563235262359324231182610351684220922433167124688978071679061761619991748083244119061058413385847900320166607392685202558742633730047739279163466070298090018382597611448248915898001798754175721385937399092268886731141442350830216868483616162607373599054766813427839330047786398831980376315273607705380430867479045431305955084865834248947495054039875386606873254369532574803985001271054580311258058889477191057474485732046689498793599508190448692593937804415755905804039347410234039127487241849358725757618798101177882658309208159185966403126741737473521082401204315360875695927623358214250252738415511530118692495441377497813250272818523301780754416010736905593441437109515798488957466295247107279508010654665314560539089126112078177855799417114418266596478056513175384216046035513003967083094939928522104336968688501665783590330233987770333150229581727483008600951992127510144785426832802658361844117610217465698618956577311115877232894434784723475834361773874552686437350583386833066176451201045499163098637176259190552847488952056831265390701947406357817432872687053919805236366874856825501027127575231067058661242739525556958574691998305594901384217889994922319944357908812545108298942938183456614169930388170128211804108118843032898706052410223897525476941295016892130425980333877070567533578871304480772313125423575693967109430099363617208679310545441515748930274861989584144281861589557722739588840087820895795860315957055021418064624037949120884105615711566884642810605613606878118946626627361734859926541453632314430785878343128544811529321027199952981592581459510269150253435654659895973598355596160391834038084870697002925720023606248680339857499255719408267041924827916760979127951317156253204194142408862472913633620173882440564689469888679020904260827229011567281934732275280094771674903034774612810287122418864438505547611062372705434679590104977311515625841783128230707666036505745504723126593136235796642723322455377591552656680205451252019784594865787391387684160612724366799118681093162119324335986332601625470450887371478551472424791784551150273237806095068225880537354204466380841809045788965481954557133111310196154802339643512137650050546827773468567425714698712540713904625525079771954285073017818263762903951902194824456842703919101174125035199128028766793980304616047651447080892202546505013125686160594946017767262533178798907409604218820147565607675314908322107470880850942359501186905946576704593652564764361624584869334466492647996346838077654741973006758080244393329462235060139650448030461654561150478577002644728189424652097704742732368775423408671948753652874764992619124662918400475661984728685947430308343109976043824358136964393059098359400851032457629228920920100132732050337350868694832843834420436413839806876110912838099668665820573378745125034483325608834137987681044341682116343943536320674820483198775270231765073534773949706226144698374518466951111473337018509306812888832712882961310360011763419519096548668386100566074900201161395617636377090380285632915944379665511602514548980820445452061049953577608729697103611549345648284653146869029724500337558173751406531726579680681120827703112769705622710667958408386778882931377983139059790938937907105904433725402895861822033491924899222992177796479277558142493736217272723705448510637755997620615773756345260942310633373698329081312553544033847269854052263767695064800724731516091923276131761327142352374527005119570870938877475033063700204006996201782181868063617641679917538020035686378984570590701601235942211509384922233179865432197427886939406235987017819215416825292134746535435210678491824306706030935970232561476672567004320903687391019810533185226786411578411548135624043363033244233153900795009089578806088528445360375691575171213684136756285973399232206326929523440532069703208579020241542274842757447225689658559004745628913480768693394033159006369845071881920462233569017467589474162699531751129410221052351632224084846830815713228736273493600750772213744077569156222666033618895282546012954289054363331899616662322783102882547210241610935522978001528968843933464631230357384577850437279844669714608982992920177586943073136379034527345326275146193049272744400115555083386128993983076882175163792093291098648919359137139338265013908509095562512854529372596660993929875594061647515907775415352857026813406909457229066551343240420650219870213790564611268193514749646046500662084800719178177817716823189914330667742199521042261037492845400715188110090622671476835457279868068505164362154808818229513223099791668079939312885906505050398561755353051292467662672844877550367241701811954972431591142016791354262132858704599378466681888805053610979644576772199243390108712516644888529841307251157243172525570562202718172135255941278720689130438687546050066415939119845122198705604793287029054117537022525924040554940762144280129622315246122374328810231648635895355899759569343647102927882715618753095484127981876592563582613932883032375736340166180148507186070195957602561156346215035302340834016851031713939352822757784659795822127081136905141447889573059213302512199659434286300013950215345292452366020802680390307788827848758514026756674671367181634303273823637126127260777481068689258154983267384704646588166282768859118767696791278025843016425101083507151761303615597482607671795250982564363732390833277772955072057903282713574505526816885555096007391077909752905129575000750186806399024286379088965168125870830689029508442292671871614681924262088047590081424543855868146665866244801706527286686089758976391213559756414494069068582691394561716452623075909824408137287087926650350011365672619190790353675873568168349272746172909985139848835403820473071091967246234881256926568822807536079832996470267953385592757126904087527592246214163378648965656575147606562469141942750821186875977822112401693073073943136774916907774780760748595717945143471037817825416133273956434374743167497755299851307065775713959589086986265764324865302621613141944283384927458585488378302643939460932736456237174875806459923579469002601375054151220355520751237325739567760437839870505887542150799104337020365829917629802197400450068485683767544618453768434653705238509050128591727987300875720236166668685028822424687976271271071567347371829326826172743458599963380508347224279895028242357205395718347751632042365593257293530902664697266491090411537710982658015639138798168428367375245181497786991220215689704877591548491382479883346654879484478838365481041206924895731184942180103848156014579099187709473495949878258374417604147385226970179265538503101900684628014646236808852141893461242294053645572156512969980686860463862534472000946765480318294349883554277219874514526225720187528369875535670475390787052920961911864301073504932042010398321386259059642890065694082962714575636884062618905330033130762411342086439226563776509059329914547859012570607846136778828807359720061319835503846344145852666086886388320107278744736757103199460963802528237094069137803541799031146830919229786206334094148909319824824771355651860503132866723509073915090383821846358153264158248484687698938801555952940973394485890496325541713185390774663370002220588928039800176399864970110278674396488100036148265840242590729325260221244715583637038931253725913136022110412628564936343982666750202536645414325346864976618375721661576456356552363616372431877302007997373588229706548737291409251127799805811202773792316774731305637419926096825185575042204750317312438324365659313506331960031719457067271493864890512574292856581586890558121689269287208716688758455672056962941068361300401815104708141058053209115530644680559024134653852948969655424737331249700429242843653473128884077942316049656896034450736293714514949599510018830892638176504135107165151065242961288347434621720925723653752514753182455531566324572861923802636587553197618466559149877117041523373632769782138698860316741879089138256105801832706985828458512553787442937056211401551109676218492535763640098960040415945877896973625762718481668432899490961887798721701785215998107263199515222029018691937340656644994764542099402065980877253193472347349260767604393687011708209138752078881955038105167422829911919626773174724380343754033067652910007158079355524523756524795598781200295858700964154281407496318846145624061914693862504507865575696128249921679344625881277649961653469425997011481240798464792223816512812165934696938291401794560393707544552576467988351240608857383143481912582508933877683760563937941608846190915322498844086422923547267497656562189056141687527654678207101779258570466327821324032353539237308384793983081654093112933146190473819264184694097273382468564877218830378880193203903603614429276410778426635998032527423996102000884930341572637996682514767526638549355375318666093351270477706200636598381516084513597214366441010302064453893026856775340116711246014119289048167552861546838072981692559372621650725380924530276713030603374356342541163865362786748600404494907336343398402367648783584700607690251031523877093333106241959994046109204176922405719451628329580776438118621502006165729124775146049290425043744748681116024762997801376214675377650753794681861396799059326987004371396650881707333614637497943473004069502388208434504561032767582984251962144881263455164181250968564194321575067585806118314063778059991047799555436338304715142089269689742093832280995355697275933915690644721573692700552142964288768666582659198190155808337764866945131359677804846310388732204543735860283500120235375016188017717736756642118970146123902946352971464140935524085835785809225422109697465115988859247768465860163619321218695079169380679886723355740107849054767877026069176263095539264724689781271566886893439904185164741885187066863946455412083884543303491972620300098673813634822721914038551500036785464440176565432400202160084918012057957116157686620138291638750084950925797221614001035845803139630504414917985595941278350964665487748019717889197647217114350931350277891821831342199766543140480537435402257200655953755336696870902501777725488887168648295309166974498522398979519125447035193776942758106327656709029164524727888695072357999046585820994203678778378993593203303779586653876238499661727626536587849247506918226191369711346563666093281044455419372289797117359029287153067280972462938137094093680928086724063222917606277298532354329931161941425172913815692720568043279177395884927001032111051894706420691748342351122813379555945742524830295067502490140295049790632463025064903545966991412374379170304628057261995612387875949807116815626646543487301225186930917592889505607539385201592428043608308047515190746858307294082027729695633640462504770688825711827060101130467357765657300511213769963944129178097920574664868205199586824171984388642392920981867507075609701042076460256407250719629015520644457986444994038195224450276472058159388603627387835668420475705053730042717822006829459004784296375776041353738400821942678353820661734563379337597881904564897541835005291943212310986863895564983733381594605812034294232223952494814664135147031508047465109396755134642556986855916255850941815784249600293392827892823703869102606081890647726238248412554393436467456302290932658971333023490623158092641837226709304424962218965769590866047628584414609307195336059666793192874629873891618339453618898237856020028219784888228081631483053339968172590096672372636097392722905239597886588657513648302085463470553457046645651829176067091981894120939920253814241983643879804637841860868599637651486832121150511564946492128470231629459858846748930886387491255064410079033751579989372102979121425838892945070699901004510509237260428117967968478051375272233388675317653201700568178611554925283915603454777976339030829576276264781521221970317227627187914520063460640191036616032244391244714872578019495690043000816668952802394847491234979323738641412415021525145326966003801043110614655347047994349793289119061107767035292772672495723472576245424559017342094856131058132001209619356010450775208458725974597756590971681215404006902599272499853673366006483046796128467087685532275695705983109797861157047044033273960181442936977687487707458069636280805311842238340269071469483793415557884296625931609032701502217536646275279992986714561486535059957961200867348910958120317570378777055246566818842274517737068876028668215522742985671068135093212730992760108952203487793949726145314814229945312565652775256281497582374790358915978298648856004733754656364836551336437330389609027772927081889079009798336848168186506664940999211147892071776226300750309199317302304604485805711147109674085226021222354908266984021815626987647469372984845934323640344711211595051063136863570921113271031392949789467485448251051917868990249131576223711011238744316702500591967586999534594564064961563639614385623112964849459801564874472072123428234552437066753792744621458591329356037984639064386455330661732300438113411476793393330167793137860614088076103063857473235597417144557068929710575491771551308344132250691875712198441460499270090074322257299077036390363467045763560083342611936100499368294368175238173640664725828340034587266502134637152440415692778512049663450775959273822193875431492414301517843898646836585044383870883742314700087210340195170050242657711816117259292509175396174430403395488709855909839354580369783393850245996814367654592937210997960231765829376944611127658444263802490162588288716030908038319823231216782363976152455784651894704453767764177386738765527360427380787407937736195450217439581026313880445338550952573691554029879253761815279157644390522239052528335331289903934722905568423485392646072018644406324676155248687302565103401138703157899596459955230566685767698667321359789085327111535768442437326467045682690149108139050098109480704150910652331035787439946297526518007675372953185724621150188117213254226222768793419282994698205476268993220767134000306222652870366610088825291131978937039698151001403384077881636917394623371915269689796717429303235437642874712665819418121783156064267718674764866207511918680449624858540667856819224046255500468313401302468391738713527859865967476288962021438519763701527434127622192036878977464081990853074274187742600569156740530622544350824464126022294555824517644829392336057284317773190650730678244600970100768706623260742640739801645419039091975777978992507778019628245860636113191456358785987182148807744725356623350393339742674994644473935627372140942957192481874614760839668005712219223038477975617634372930105812929410169306430002027693959972320909704040943738887469630533831575184468038339991044232089654608958091287974608567768966454200552270055695271116929902926184932799608034362637505520139384152240441422575145219877785401658768344442733206123329720528896907940923008469039852137897090085735679272811948422504529708578930346813853643423156171094534427601531080216494358013442444188508589531797840837732210653306369998341207567227417596521142423704851170027084208964433054979747677201185480011361366965561563672445799413614944714258345195889614486890346442864876682279687282162078976655417382557146026953967433109280967197203059719121918479729086926900130761001803299758478947848905161222588403442618271674866755374396218283955645359658615491185989831800142334902938281714284156210129655287337509401827934677213504045375375450544788934948878277072341511393593928253355179000015505589121003759869585597820458558982162602304557729007339560595718612080251143446349341655989412059023549421937357220650292442936198488536876072483952738844735294990884434530856512812930852599565055576869838287836629582331401127005908681207654425395850123766766943930990902731807018524810851317317818691225906275072885471191556595304953924101060507936399424265275384140973366776984446909447271132322979941901154000044735057632899360292182370382487301728356016992703341472693490878641732384976706874542281169108885189723940107766487631283101955753828005130259237758454406587234651753641304843575463384479504645367594479195152136831419600684976249019237876777174734868408084249832586559859771126047561747374106082868806553713648649824305828197027111812958563737592438403882253787958403504722014761415742257854987514910469421488368997443971275767809009513920065394296131781951148953723144672425275459324234007499902388060003599022722622169090359620067966757345639224830678638529236481841734005268965677902717934799434605766817340965948092429117773923950359351195663477102404920363577238890546406899999853631992695532768642176423229847212603272709625505457831784963218015947495767099654049711020582391595921360256335358265994831154970603851193206933869033277611492884216946950545882362574965568908504896253836328830336567988287383901738302040989005613917971460391102335195597800794082332981619852680023408426924603578539230552045563144817706569532468844957842941051804738406709971541854492662663120463360018052746294179379117163377115432745203072282926625404191625434884342131897434120072056625411826981843975865766188763462592058454667849482556315440868575529278978096413980925563737726510394491131304402292148817766846607134852990341060051360347075279115135625117537132634260517178227627162469282648730031558580626188238058205676172613015457428578655049206630237344764274777418946148679193485083061918468823912650359975883518752884368147161921268693038440668423921837426382612078278098086771843442375558816295858480541521666581612278396581275251059687029237149966105869407171221598964307607029909551409058217788183697527302885239855788940866796213934317051314130677434927830749014459183652473360325413777089261645731745860428972965628721253738312677322658526206195576925108029502852970079990210178887376422727022169762873176035322093801058620317041183952313018162083676387922821544000158435302430923849291339693338575989405527807473874442719412037067278593805000616981025063645213803729954054486401762303547285674768123394914592601534579890388057276314213779730175713063768955062507392880299511462973453255925261013872019239742499289929591738018529457281629630829253978175879102989424637140962282063942981586248088299247212079200663706041034209186385318575391417161524327340780772137586112916593055161391616506644531740219779430997540068377425314193325041045555717041345517735940339557718057636352589610864258063047971210147872034699791564075985029261684946227029499963861066650118861282590771846233527538731409189768328334546023591832302131144322533609872201974847382203247305726403469859778307741305846415755606827596641139676087430079617331999413532800355069902197583031543127211351883720148459772932292239318104904647279386527462572540121098516411017652007497636160635540716589842590837001089357805056620017680846410071303456483021695418912220454252065575113472910151842035672471283200407932685470968563991688386153560085743299174439162935119722190480778863435143358567871421946425780589853960452924160566276371329589434072593147026898800228542337008004356525011948118401691522456393919833840232908447072430442798939003796266318665155300012902217364356055489271376130398908923990751802090281093727636279707097278923181319097328887733265703667121519203619644128260264800175958279028772559385129618742305990874552629895065190912850316642238588289250647493252194642902606369398163979218908707790375854236110403797655783930616793234868845815482508535266217622943976226856642377583100797895099523297966961065304415431139025057083942982422791246029363993247460567485950882751000671333951334807344180018229124848485613539470324123480279477677647327168191112282526998631373459553110858780627296546605327616751148441821453920906867016846155026444762550961305442549087907765393029417827706879256382487636294765407093097650387096457501289931307830452365881160665098453704674769828563011339096330124379824586472440375490112266708988192277660957461684537132121736597097923567932301905847644916484834223811045683027011333406778644317623489772206095451035643828888314156013595478823265350931295467547242785028293415174450153383322583526547616120765918435921626179448834132888671403314956659696997954822258815009680835313128971001566205442812103168844632877435729846039097843901494233049701219796715234937117990600232746071326241839084434365812089116838577383493542742793036040541335791700666166260146458441855896341747918201846956713807486582855376567491223975207440609463527211930202881514869640902336786892011995312342318234454325944038347836703625055012457092227604011748775183861400179139769991734473339337357128781799347260321643993467550229280539102514071520364884728764896611996690949595430515771430649911405183836130018127968407004259919080927664657566681079051898316697954774032910233476220157106591686118563936979509511862440233503275243749605311832477071986605783104134887229777966352787316307260717083922848619957851920068102834819493768146093049676845786268491637865883947584585830218070893063697171283781196901623547726730128515067942763311247815294056017166348034345541159987184075969857238093185603534544467817605919841395958095320616075833283007550965260781493472087877353218842554591631547317440951318719156541361265046482855112245309207048765551204474987438781603605709601891714870605016496342359278365899300655219026840615807242946781892495460665175933879571961797511407791479138269584584038760996659833852262243757067002702074369954356363959842421484320815966202210459518025913692652920315107028932154735677085359951802897184302679169787644590589836548369564506828501019046238744301132903337280080873079048786827875049133569487905121575045122350903240635437175915856769086130704842869422746331389184616886997201827544252592440316231258204516398746524627698673143837208750152492403835866338841506097480914443724841411072026094415529550573433206091764170338458240619971124779776525067157191774545321249565866120379580653534394998668863791838434159792014562604736322022330940663261376218792498034881864581761397977682470337725063600078562451084448300581377880479654145157889406262037131812928097385013178476770186225695986954244701018486996718344598388017803895525051765830665372117447405316313398737212136178526572079981040638896363240923804721399702572321393629236447317849876466552942377024335620983038202090614261224484919261311077962877879218995239104534060621866815208325476876746786580380069796697153327823421808896238416037005079814168664674692195057641680671200197297366034523314642127366732552693944398703105912820522511405395939635446067497990787337487335091184727051947135039519333214765459129298806846160169849249646981369714899074923079073643600486506810019034541240609069672504315630467855076748536354584934001083209168883572174637450317220908717762242424830529482949766628210332983189261687239975885633709678689595952350129345699486487657894923874541674180001657327725344989451685941468942226412957206704787282165218242050842441364595255381874249266595115030399427160836299951804697438201211252101074296718148077106662100874101158621023765423817541203027810858750636381722703488311666575077886743003863016590678525895893795051513043968947501493826079307647279010533872870768670137767129972864245492007389059120216910716655589127286601125064181180810234559828105932849659803793928879548665121278296022790449429473153239187826102067813797138973277847538634745388369712601798176221707085988729430859707277092553917692012712718833067079362242238808689649494884110592192564015417271265654090199329071661838146241973256368909530373450190522257915422262228811278006184702016822586729202229670689079726230767224581954755807983424407617060499537341758429811295029234603304752447784983106012110266906917569897957392223238739513487217445599617478479403257128784470609903950617164106046587949773382806084389633998152309576408558812619834955294806971111955974740968987750093038694956761782112756171799678142640420676133223812810196637306771873707740792366575847483476057219079597054821142667044708177891946383697663829769496042355980602530904686589130432929185708085837054447722039576145163221730481907795830600529855667082763862897352565607994475526728150521103398555531460118497603919164323828760070399059015899340495445470787107691594589809310016070504869526778766669948228240533072510233889372180527495352873744170419253915896667801900527469522932361758176117438644899066601620771335343648388703044565416565096041413177408624318947562707424226835254791788219943173825013798520298722952890260698599483116069945983774014940740438136185248978487155457729414715059986647582532958382542045974003563916905260574986928539966000169261999780964250898742753049126492289518201249978537177763414265488708607724678382594344666457241258651614120910657018284159347341472554400063103277174509092214471265310395631781075057871553663979318995420692175849615563025211724197042133573328343814099216011045782755282927549006055844282925517191000337207945619929564633141405723627988401368904066687470967452274341410576918627967663722837237766509229648589614973171977722739142043176041776973079390434131438342492500640130453352311771586900200611153203829141610307436892055816513135305874379609935130102968499344985164459378669940686704774820500006410894511744755987359520708805916220961608811032732835587490085805328507897939103202338782968057920041879730655102741632698856334071511949803763468354933394185181754612097210039503556062007243115196705405785058559630179058953566989587112930102605547580436002218193739226739787825116597523414663134476452589987776091180008667312532524277592503825591579369788305367927842234889483356264543745408746553824195050479803294172459428712400153773298310951986314733568353164428750740348278709793716149314352340993069701402866045032408762300862648041212775585727693137288981214134662838468742978017506570478629108209696203352897292063750896208321876252152708819956984229835308938296141718876188007590183376151267246959664973907364720448158630085271970865919123558252610988019645425769075083023605902797083354566696752046215174731718829910389813041307460669770423324335921736242698071597542408703268112068705406644477719451981800345188098650733294090987948174470734665362794534460559897929007722267089775291470266251773781542055588491753446327389733579670258734615233243359468189776702224784174501144476681881202162087122484144205610932893521280797194529218224014562725446459968601500885006462386819527181426763912522473436438305512071965919316678333314608740414994812110030005211828663271565547795297228647151581011174619682208395233024026004064117888894235402833082712778635047880809609452350459012700031782726948701570294658085697685998192756759415218469259513077732494564213515812078470630990945290743721886847487814031027177263878143301946134604246606903585652636627410804919275904860198126177888317101782854728902412505883271378137967231142061642566477811259287633601188201869521161644902060402403687762330629965923465147407647746662990766947960234396112119683133626762591874237443491309437327153874095111749751126090218101533504828411835309780304649595341987620327032413708077441729126890640556024232260365156880094620168173266276409383244275586910614261545336177009647350718523259943109255765923371974682210337195499831370725588455930591332352423049128229445627319010812771954651840360821378138008304834520887006541382969625284521698279027403859446383860443801972354545125162378464141120699210523145904003189123102711372645778504436803070401874498120557916365250314188353358307269671472416634465163872609896585178119524392245728271539564736430193391624007618363600851562201321639861479583882695729975691021857039641167890772590751703020121783085504130738030069334348897383002625402636090500685232234213926261965667562191526802500661861948025168016091457915801566576135953612440472684344069609912741335216377965781564777851262759877043704217575630103931801752470869402674545418069228747197736749397500049725344158943878613532616074450058268836058274402142716169769045995056485724077514535293013969441074652271242866335522486150687661272407154370306995506835905785023745221286865524609639076924659178319514260221228754902074535154085402898971392945870382751863274726770720029595249324693415561847391899695682462467694181625251420410891055297955601422753472150939719524900674458324234861510898101297724372308071181076912418497137023760122085369537712444101047713785660045305902012451877259211462660734279157776409255952401824314244513783237747231034449816465951722828906386996640377112099801619248424536986722333179774831574521073035434566804347105277037938971847427650674698710795262960628302229603855957770834602666648500496280724170770373708373022006015179627765088051481120326910742467466576183059071732858157630411175740256489591939773610224739062950491634438976254159299913977746857480740822137630317062698288978681779877096038876537461801703698632484736437325496623990800839988684451389118992746981080854074312607167131497101937094422737068905563760505592888400572030486927170260713201820801838608688410561851042944709313249677380766097727473613747393359366434883059063626225588398800736181121631145278814014169285382663364033717275846974802608540796537624169504687333617421833621038199692621979399183504155406297918706399507544069430316431087353762492715251039682874081398187653188459748796603596384409121904189741391280090388991642836507769432278845176827230042885701816482936217392142273793672531686337277071230355096475939086586220286085201199185292692188332162031947592571213951062884177100419261122733580975791073317352551800645251695694199534689972992510663044140242737212903017186310060898639334611678076557701996060225855113242639454658571110460811064665489070204187105542783574822955934073751694091712056016208090897184134891625074857094741046801404358511771423932961113403189370861796330633754430432776634270016443948019256421500822123437875431908944613572588749592751033369111664161264554735960372785850888280223457273179862985962164731579675477439503913203084977104925355615252985529035257753069115604832981676734847054933960738681700419873839365360818465867611218535887452524541032533245133114096246056141750276308099734916193921503058969719748734895649247387500907929227105997129945085526344028602828354921062346723013046775344108796333583104834589670250889009649545051225557751365726684416770907914452090617932798950852940548652204120984857104050676134081119394718963041743179542096497050456398474645569136800155740096258150659921708641691471987610748815093631691445721501153793788312399777871048810846248202044750492183513820250083945600895222941571227004983671490759688956870340495340473660051770202130026153145259730192680809937654123287073730305509934058116944174018679799209587064210121785321190459807684069217145800804583699470677539891276716245897695292786701553925704091951102422468706271900896914129950241371962093566074551461088311705343295590094849032542027948354088599355431191027130341380232326140658731035420177069524333364363706084541974306522107887865099579785249346386434885371952580377212092587010796535579261773903654439944365914318573393484235914323513834694254238952738622308781483881052607582646314126626993466571147536013738271556680796738976214001727415564849908305122161033338019284158555188407891093061163734126657826188246127261496656949709737637954521486826571266419998301342325541667011922233255159430308320059836849689251250002189285710039084397445069020130453705285598363285936204963528005095966712825693490820061673019889643814641099774923359700534681892241768375644387939344538859537103139880877998122508493629273015400310678575987080875357407013649721317410483736306064206260372019147447807542930441227054401818301223149794953927841394819595474702831922776655390052021994481178417748581114358949560365494147085115697397838309362188173239011862872695304014946989272724786886906642449403888496106096098147783163896562659700058867582995409928746393476194031862885323995785356985088899814698178610848389756015676640787018704699052584305095860648580473094634460694949330795279562654505557598659775456234770237106018054762324224191079808560857748949422305048176161500067647727131716534477486679584209149123801366854954614952504219753528601495789213029663880814815166613850243250268864601968356068404732283730163216169570760263531838144865540653863904924360390888835958451909049369072134578948697188121686937167757198830977272337057829354840127954706108053907017068932808916691633192590496984519796378657195478316571322641507400931713447796021988759826365144505502555098377625090022426114353893238810798804835180576203569103788722666357074578562264927665782720107722335237466887753933648814721260922436452956033285749706809218224172195951394990130973568294417162959377898407042133167861850129628512625778233900042067517260329323745220898140872993593360125473071730513421307114184396145701790386770013781541248629098495132646983726165199741982147172887119429109397737294202632319169020604953554767609889653284543714178674322417471767936434347915810029255808603477315190920788803785357410954750082158120872783185389612378842204866938602073549865264976203965554686193755790450388409891275205780657020305360275549857177017724579998418358800269120879473792481437313523218406646847310968828754170644580996690629359834301870740664656858222948541962421311482473454194539607167580495051786831203745339703305761039385471557901182945583743044149321255643457123888800810407984309710493344449698843502339576233262042952726114184776295792688151506726668917787183954176047603905513428607491481150486705602110269222273789854166640994185279800289748223470376443360496277557287640750908696430003342661666620278050544966948854436249076595824135834482237482553250646174425229066048059680771871055320959661562281272224188514365804512169226417528686316711283815600202184710373906651210073107733159005387055526427165615106931131718456045151513120296837891957410748654626657699940567042621789192581662450772801746314990408891949094281313763815168686951796658776899065966692310621301484101295986391379622412657872935156047400506477082147127969579013551333358274237505685633343632278165925598355476521927918457082988823995813006720353018674900271287936158046517913802502225327586070359401190879841924382670487280425050105301030117036627446597584754207370604796487552203051935774152000812739253746808845783998215575099613016746678378780192449188449258482993657406636366531463139977754549555421877521047838855269508732905010111339553573051386663199542209545693267237541449461116565460190199698177384460871597334466928930214012118854804064761281459437646549754286746058876360521045842099871926847046534879496671241114451344769960914238010001633542982628875096071112338026127167813130963130423433193036390845127612281140584128440947380739884128221383531848750648298641578873371756251652913359398320643677889156166014344475530980573743734355257948760460898979090402166401541611120455086960425983275430319022670197937031387191559313651491074903107849087399682923499291896290694626099989154727241391406874663104261567988822703098103889235886515403587938011295675265842162860522323386729533118847586005027093939099695522610844456732314044339620877888552373902781271740855167294487354756675122574698424185081168403570842572654424335469233481559789647661128491943399159004486551674475941523061703404695049017775425705039665574845332128373050984769538727116286114954451801545755312118059403432200353952146489181974701526748387409712571373526741164091193091772602111001776790398206901197813027517799383588674652991269005868165348299298484830136646871459174066481922348200942996073153471025009725200213569991414992648472974810387583813046415568139685650742306751663761116958673972538798108748793673964693146472243811075404446486659733631847813714736389321413281343581737050221995762035615853475213554960984309396102834172980108400656879560565812003399407047060419643425984804686905868172468423157216066973251093315570156376401856659840130725700498747909598711839831370694145420880100860041459730927041207876006809446574265207055178157827046636915559255270836591767048391170173449192878451222833056371080906674589921380069327198640717013832462803524334670252338502205253059837406887770961541883833490928171886504610232741181775475043430840992029528397126466974180185207653999184772976721238115771858791708453255869581517928147918909900193190138282156608036977944706997361857075654834720454580651896009730326411835416686360601781914786686816784558406653640618764733678420272719049356387570115340362409457715301401457541388407445274395205936294707429111622887370865708425844543400720674294083781129796081529266810175008390658804834132116348384137827845102278065431060986253463544492703943992109519680726082309382409394727571238301678343636239529219168078110491348569621388247281583322976724684650388347793587336882247289496578376115135934461297466214914574408990445066113185770833247943039315147206641362791362312195547050756901657296335724913775110960287788182477726655350553186493883482103776690881408000449633899007667472605216333595915331640088758077895936972793385734147739711429307581899602243097625538286597941636267694831760148432426138512225301787573372836982748863663794634671058744332715806479766427368257530816392852126977029322620546032253450611151755822118496927343319149195031434878670952938806653093271096676019677927697888477172438621589802745031635009348150888525819783744974952900057901357962458243666943884058562157329383008709351738987451145694081417491906395452732298525265851552063378756722294688706352160422296464646839852550450308112984210114727111424960550420185997178803292341333135377917661469366320159108717454471390044010391995740934154886792220831710000096368315296619489189808819483684818913968033773066545081307942479084256184787502751768214870513056639266477436247328362431144553984850848559774241382006448418200365257060004512869086314698322917542400612648732329679488171101950399132160525684729001940430120583165484205231500118288298801540529945617826075563923224768632725598089415378889771172604310567848419586772967197787439552064262831054622997798949635267042094561173727714397594907678095006820393277611432461552448177470707284201282005634143045607495640718268007440556659524221542702133096400460567913806219389084014518152863739358994522274790578808840267246770565350330842597303105471035650484093975774070787316370582900694594269307928682591885215571552783186094649524780599777749857043662399326330237114022631490807408417033060759032725808585408055886866764978694761835602099963399714105340018209342469360724838464438587371831373666136142554986575893277058553132060978747465951366803930680401725631626852454471176622182607411490935628743356697711900125619944249832712962819762651221142533709090253510643651700621545610392747556682622012046487220579705521017895857968629154245296949737293610246674312581649474070016236763466161263586787930887373293726987765307025244226455209318010393032167950707449613327916044889031109249400599339079345917131320178488818155541877833936679067449663301102652714011784497368676597833573921137200144844104004236785670526971981733063550886231462600654946062244935511573730212023687712443412111901775770467931900531803082680538487966671478171478523545039353696145139256068966147940801558047878243873889738829423660649636713883372755463289575355139592652422504661212267728465345604389988813300116488732856944501344898008050434650759277413412331885822975317147978160400072132397443458036638240487484664530434296051999671894909967789465373621835204148221305680078734887435469608593537339761818928822827004173577530493857237671655661373124602520581093461996110569574219339731057936834420163134181732973773735527890748427846514052856695943319524285846831895437092394094040495861747589086043407224901907856578660681312039536260036809922536525952439406798289240914140708922670723136957348712547738500521216075174129578357670145150742497419010485472557442796792559609825749438477322801709270640175161979612801954028175893755751400911661909793510709717182765583689612223976364033871624036765006600937178271950590621460786426591504184100323382603526902915936494072245543416921092225265124856494193069954533420262386114707690196783462432757331518857008116599327578437072162683498984355931804842247971406014383735138860214048008922247306118999228289234025996197169861053733199538807621286346521947142315796108334249191514249701533069272087791907248599171432346494355869464532299654863591453644536492369579391195053382620846192780252951136059109593996068510729927049509110423238586086816810108291604368776721115551047626690052430487169879291975938018338337810849618417755879781988332557655326176556898685359993555524508810942237695526917536641087498781020138172289045435787340289371120757737970779519340495728521997064219539378728537894520179768542508430544846545025514371523753312560334121680605325995736997770084521267624427531992821595295004347736541805997079249258283056941739240658813046391181916424207664811240723445518966639786598181860785590149700839276825526289489430964529123423251408685090854386731440624925470760165318909687145859765004322569087331628962858469878337903363406756480112853830265997695930447892493222360340859147743751285939765189120048812450129638456983575664195152874023897453488342261717884373362631085508935525166661639183334358619274868005014460240047228786374006704391220175614649744725173101446414770231033273461398938744215371484708865102489508394193218738476967385549184301299841909263820262426771750026085339578640232267685162587324369173032569931447416263035280606495047378214281981668308016681738763079137864478440121529548374674741397647467399646333731005661957026031384771900452606221684128230154614662614859898338295036705506460484234772039948575037807281915983388899586887229770521431301998020311002554576847731767700143637876077437144350243981478654769747045239192569900803751321094272554869781486698142137863115124027367090827630159494839542093673867461351154990021813778535447079705760468585761188658283385014197831875767359610505891905943752496195818650497318789967581425757130799292382553381823169083339987919846085851327233512362186921467175571136186556255397576434666584539557324454862122907788325152089920304401192192109600920881760152151847805384052189024716365932107197848258594153627755888466365043327048135394115036130247776754549961803299547558345006338434571873279598717106609626221551298178462058733563551646920835528631869977283886708781546384701344824065362316766693613950935061397694761525509920005869545092342097051492627037844172212993417901931616991944108106368242000804039506312569562330475906063221460405927206729724952082283425562833898818159748889132177787112357178956730493051310873090980945422413225987000558946742159734439044304450513639415582998768163281378467636820031794838676016130504272654246608786297628582192587389408837196538668310241651647362360509204984342052029645642946468784901132818044072055677839316507496712723367782189643056712480849914115154120373619506723995048535257112323378905619125852628219299895987003762598076420477228478917531259948336921101559129144002671291681491806922624983993832383357140538665926937125565509058213475235547195638355051336756570956502397173702198583566466997540440029340987272052579900696641157762211411526702453388874814030515704985037315594755398708481991061723528782770805404361574328158264227355450786373280993040669237499983880062923531770029580486901223340508168791073824677477087638111152623672550417669646128394495662711215382463610288944037212596517356575463824960218405750636235043644963122034261000278917251040261144517102453349625626144067329672078589744714421422950179254932122319745841264284603986774981142317682040332005466429483038978994667643811801273538708229858345435774636318597690191400280333784970006253213741231025529415872605955871658341035483775467611204369829058347098964906147930203439580224014178093693234439169579228920816177137025458556997544009066510889179331019117823344032734408211835011475990261323291966988192730668734523996168479305892288228177523440706834276314097876322009725265487452303629710428118858426828091218476408310889376179630510557607195774518229649626550000430705132856214997891867316262818273221212270153705272415232434631030956312682432565387764168069522918392382403945668385041452547951373819960177627732643836997888462920382799677966097664294263634624774750706964044006612395227408795794745221627777030724145487321683183390419210312363091068919396239693395509808987213048996419016059564105317991084597364506445554230842437008551069984676241817769089208435077576937826727807817899164455505826515738404097995345024057040078724696024041381249413281541899029910678728614876921348434010646238653155264507656733145000762993997362523662435620964421039031052442571241644233656503450569635477099334706209478923708232075987944423404356417518252269943275381689376117650230721415244597961224965168260035856360404474889780208150915564469852067564658984700424932503328132007369043524824270588558404548458411678799019400157351297568940391499034397260124156833666690661089863513834675882859824071502821898798485588501932243760400193030903104683695964090300032594150377018324128567293036066946407127907830336203376655732419166693861833557654094216917260908639934645680695550726919411080533153084578721995376664270020136946583059117559087927085708316689199706497897842055863938755324103632839727773183462459113441084995124683379468283210892665115116778403540326739107575025477789969689353563499500425303034244591119672489802000827663609695392032864288418631323809088440938084347199458339756680499827743188674028250835251050616344833513384600118821237785498416630421355711157001228491185226714146513627166047033124928249133419516989020019807982071173134947642039050951804329557210352630494729933292516459383611178943827882194430072817276379800122527243996530911477512361421876716496620937678285700768758775037174170393561497184025276436531351108954071722379634837668635992336964547191662319600905548942620742979323066705930896294659349707359168248603555492368056036522842915717416551048151199904879591995539825012825728697039468392626998036352796282615200270596097198877611250969967816607714275369054689925775147181202378466196854467777730283702381610066010922069877066711820907371340938378131612190845693386873370246573277622593382715568274415842959819414011551097420976849100957724142205354896045668965200618552131658259755933856279524176409035750741776189411622174263169520853114800833880334281920715053855429508107299488685815344470016261574606869077395262165838081512748217094406873735895753394667667474158962555884978682029646128653311074536919571720918931145577231770719269061250453886630652595421378394779524807728600208307018670794540873802883883968721450602889070600661621454210037717537270346496683959585313244340871169421629098115346880683106768132760537233581387099255156230983440315422029077540013009413186167288346341217529941282582140454444140294593438222302991196440280145891410966836250759524841547113933302678991009811500160572976442113090189483608184991306234824204082966106891613731110356593939082527381151037862634255759637062933278691722848493887392244585476080550772596241703952172242390679872570685636849850343291458101103608523891404132344495176830506378561114793245704575070593551733012177621154031326304506545040130414363506030008363412072877943435041521187764672715894525331043612336487229235803599716956661392095390623523563871048181039465690539527687243876030994696943337483901732794003755695561233620232943099568667348777886913983053801881294566745175923987681646967567333237124168184840643076131191688670842717367433277702603278632398490068191795638611819339629265008574261242742017845727821023020616362084847770649458092812302351765902249983716495764490508076095080422770590653808109510731545227906772104710582974801689004020880629172658533155827601934112978525931286259195926811048059600124509951063251291373370674626520258869250054330831228461870772230202098736516934481188073043420205046973914338455207950718101886800725743389384783250810396150286431788119990130149595664313652169917247453008128564451027424196059872067561712909579225946563467205861551735652758983598941117043883518402046534461751757952601023408833951820801304191333414637156834701066842219627594934678329669858258391327323646180192354603572336574318160698442485151636868233215877733172385178703912697222334734773014788457218764136723273000198649317008690546370620036943679397214210226105714770063932180592794246969033746252746724621979046255699065663910314169491455467619545595941541584872284745836132579273382072949746348896278723256178931591490284289391041558395641914382572122135990206141744809596995624588162541377058838854641187737608465995156833746225679435533992268278034599465806842291244160596411467638604597171104085812502725619893228552804930361220598659995402543717114013934080250581951553453223186124421447152495277002033716128482477231495533299410865550689055610267241048577687110723137535389282681935689861565912339067561334705228100315448559576911799362630259773176981013248555441695833037431766601665726076125171163015357319762551900219457232186598064417942549659415125545316010596527148069717379157253271433693691317528766799653804974763887172838784014664497705758983515139560039669723083389086465540825671979322843440278776723358862071281756069962294007615047895407941933874314111395611220171512599050098816851060849764713516180898167139441173339980755327280085973308630765789220559996097401693384978039269127891113916135003715226079475919548074001785220818722512264039293512498802881209836374396597864821038908502422526572192145129010448066606871728945040468395209003304408984405409336187188120592367244059487851213528509638128538005296798264919547663482399187968957115186695672909334231396296740749506496145531837604575680925845405189366422027791353033602211335870274332221771218777664547142099618100130375185005008941504492567941783742661365904017682059192211360492593401222166463985903708842020547389542363284682322400754238843977190660605618763220664079643643549714300544053073183655574299873622664232573630138859723885455066557523221072996111012821566961115395207165073169646521287829458779332165997394695317275990441569046781024112594928996193876416340165145688330337406726640949745284656647511824805757789749169677249108436796546029437823944608357210754925621025017471009665819849819863000361100995043975084575476321652308540290999152481897270184026090147442148929219802743141767278121129472972497441775852376679254905239316229444450144746382036566267484118436629250800915867533320480171089596815509782339325200798549547642607765292822464972048118965242514868391814161539120960222519467497694773767511821090674624332771186376451539708974772943308770130553136209287280448177606726032974988576126695579211108997209319655259863268321878069239845079474469815988313367690096032573621307725895357045573013969008793752828977407895792372184265052701163148935082946561275617033310739415466129207911841455908056676494694477137045104850181040921545522856059033277547901368983090107040505024196395330689681432859488886990203404676363535761665858022022892761792492791791426091141471021135648496500900682049222728859960958931042881426307147611994665358281610702240944183947570035426249845692491681875665526898331679581467374798169371801135282381330418761261970063602016725126074756798454980183589033804390780345532233231443919878612175562146580348262176260855507178402631282127835239955888154726348541696938911262695076883666158943196618227218209239419833272625738268593577052639777515381297430083294466023447700873915820837376862931145288626740002894558272717260117199056224802660064964317284201669625424112002252483738323143560525513856993978518630891335964909624367285976758178287133724031900596964239754197457815254039432953969104186015905651288268481742554532204785779889883810570409791463810215418008752208133044087837634854120037344368766026754606453512666101993743299032823455184650274230977793522485050756201331056079363470964820376882078393885805834406360610553313948579625207057518526771665384696710786665854871597182540409767046008474288643192491186748659228054413105160249744640203351140413828594185152405497045883220565049811437970293359705323043677903666757408177710155292902833279784166375044300150840789358014676624002390471260711639767547297897610571080789502009648779351321700147602538706269994240381205488951258047750971335614578466118162726757956881880256707624337972030163951838729974731217927502313326474769635354093645188807058372258256129511198776928265844850314532824326206785976954587329000803678727136837866885503313800959322312555988991532029266789642781226615810335099207432564002108722765354605279996491790233129658265629007354469527118654180953692846357410912862433405264365818854645546797131545353124331089350978367785605666602751217158821336229896429356833460574105741170416320785567667126306813882297647035541079091126943020321522977164371777336417966646917957798393508465797112882468823605184852814857644464835770269118037644045502432463572290910705137348385246410536611619912448510963575470825510525588620578097580371114885454752996886006364332692012137287663752861270732805706450972946583917040664523339013285700954234787240338090185327353332810678765365622054882030643570182346707344364010113874227772965014136653010710510999130512817333898016532197868377607957356728643990640027850085877370906729475840422886360814386344533874799852497581385246617544713934965997740504332648820963801370460137369147498512344691106972390696423100146139905543541611849352537274986172917971355545019117059177257974022881377819982989457903623036256026772929401354753915912606771131309837760897199004589487005108844744755957081283688717039111333794415902219998431083954852143839254107074855170098558128431449116736975052138831439840889034058808609596335997410756483786739651052889698444227571782462850512823519285420174056091820945435999284461843946716147094289873044936451120842568966734295980838569123001496739373308996929122481534711006601358813174772628373283897095872150905706175991861532225572474011011876569153674167282375158583619199139549379480941390525386635304908546394896619575725733544393336144089617060225237046025858174456777308470320709653069422866616588577297638521011109746155347692028968344120254681572781663382614348648664539365992914755312481651546660414283123819205508650383212038680248054519554175380392535080147223621330129951218133565172819489234866080043481931068282445397960758417048347427131567185146376414163170841970314617821773183098625887910988730357131909200893358420591663744257345648009833789702687020762217781708325620493968747386359629531011557084461623085472124864477950411395303550251494213941308508028771160341492138106618958398000937930436955581758486899455670695514398653597447209497251663992202951298742778925264616768982123926824716495495383921504653416826656952630481822947587674207592221647261877013632476178149582630933732747859160847274924142199749866356892373863289074486334480061695656506294915075741219005842837759258786901749369631794487543565128210165726834048180447226333524203082913077459621027202897110253746994181447554065309833204617044999846055760563483929899826483775248311798438809747488492057949476240367564595787809336590551492589998214263563296209710507541969446824900511828433293930560608836766285016999014744633796763452878736879748778534288899793816300173411994453529240414081345915910637627597218680066753300696633944602964435918830387744928771322113071242160355411633681981583428281118826460281386342245998709844919446876466117983034666442880331074564315601813755959995687986025423162499898140364557569658563631706528759366605934206584681754881980585372703103220355628273957140798401969379821467098218850319228148689574310697912032179655851567907578408842670697171552000609861398800586050215012813611993072900999740906650669978261969377067649784395256268533796116849826296397824132944473934590546120191763943676463438290406538790450015363122995920435817549001356464891335185357225671541332960119461254755177543742869248332853755558167036985593766395213393251450913878002509913771774647945404094811397365782320543734155844202874324986857080123184445604236091683524965800598802830300655710414511346769357708197500951155582120876060632013203235074547809020869809393716083545936763804028055635102677809766213222434445056525372069293548277384679981586663733676309895669228446923425722426872911552904577934287032726293804663828982251712426895782787396151806793788247514728473343366274716742492195937752531768429503143430144295851127378868442009098861320077758256977889190074882296939928220311357668822047311992993433405471507191103592611186917068422765478790949981565670087774593874162469513257966569985129910748575601039480171551021762550691076272567011280700664887369505433940728596351536152741043345581235046695991746027324920609754395936502537755054186789133263932491103579758461881096121241886304296213424556959483218163198316167266367694294535148593582051720315695079011777263595372488232098130041363206343658528256003373321591154625971102759841917770084040095827783604022675029752479593169633540919246352797062876013987802588263929779502079038104648923173794370785819054769465462818858231913052368336265479715287139982872181555315786002017967618621797400828456991397604438040957614934235980786276408766504080274797055954948240014418242867173418121564384709176599915516686559268027613862009700207646269094745841812449874316730047772953684834243314627344131077984804324334524082525433657404049410218130498687567938009883237864276500979820961694330201871675650395106062304452737822968072425264026023195599646544827067781070158886040914758049556252686448285308125980964820106567809102572861970701601800898901377533908571866302482856025628353181483890962861174803713710471427279536376600100944467363901192698743836723697159061023044501877275000317835518613707206490636956830747330738132384589296061161408236231942645856610698933311757592842354980829741040294364061914673477422507492511335775382832185135083001901303976139446099504266831744670355197995541764220622262071484929519251536320500470460519477183149125535684527652104257741752898029884045583087324047553023249432747773365213636524930395405714608842527459019690129228302160380827939586274738224481136337329039399277142889682283185689603639456831717549859390500292518788570825676889178093384091095436518393428072738572665839418712121193052870817642084056914460872341380905485905901293442329856322250607331798205828992023454413893720886571100397997369545028449917095380145806998665853128273724377679269811620132338773309076152981268381160616131170343443930987677816911153345639579390300736079104178283340629999403523022159989367135029481634066705452189108901546562716322296713184369314995360498598945141523090625086946609259161280075040000022382414694996208909432314749701496624650158897272064503202263576812183448297615584039284226811364846061253565218803109792003920638869605933792494466661665743300370842863435184478621055552387853178972499448709976787413566078292495220043350951944312107160189323556621186926182249085952025290277652990764033316949713078287107528339479578235820864464003164846346926596247776683707488223395077894022574974466180256947551405577142460139262641719394379322021008152397501273849822598977200960213101757780539674188240273507172061817728632978225879367412457755085944817783040197365998750585119895449483208579397397239574812650975550624740014848074368723928595245550998419547289662017167196126244500701820099638696439939053658379172832665436236764091786398088639935883288928601266840324914993623617324539546501061191665871763585276253891779425839494450068659442557096179689027071852447394230943323857615500010527322302197788274975378387039376749886641280079691469367564271793691166867495582806973367772711198556304071494247376843547626685509459237283578500755907813824825649617607127515315229687835560162601865067539224694168837312259811833083295368843289010850828139111076444252815109629454375489043112331734800517898838035202453802466294421763079273080260274067253170054013529805250631099464477681279698833480362353650361731133561769027016277330405146224367472832070524648190722113192587423177313128562104355361476631751152765322885667876325536441258506249732525247282033504103509194381088695199986218921893888932171681417261793245103312310603426443205380987848301032273645427107403696784037232243912906823433632404139148440612336746811316161777273369717589856024763088508819470323213373788973891889689482165430462686852995952401900794033790211087369248633698508237975884068019965313293218205772887451866816316040492778440421768134113711747373580342511471787083566871857949952525593390041037806979608233508304735348189609146623411507952467966534925270111359702817812716827706968630752731132624995536068944910225820737677032437069595691159618013943291822772855945405892440839916874500355177238193729551320629661419683199373120665805456830754067125619417049301577259332537252090187318112800108432871950247314538786354644861508870880318250517593098149234129503908791487247698823026752799706464048780439600564740102160312521363768801465174054205392102469655767776561092466575017753043076047876702853686827202386177468235630990597271266850293032245411138658057478369621239961617241515719845017103745188752897608352102353908988915538992242748926753095622442056856065938519585320501598703527419574943660188612831962176136906037653964792826397923783650679153810507838442670059746911322895642146096276539749527825460428366155397236572878440667900026213836389784616516172089524363996007134382308017378418575032852066924929606468971678670496213239240084664383373143829206873781068210996388324574568865696181699451246486036776617094745599396138845274888592718181614958864721631144466400862843168396962210171221022177298796319442827033702970277327897022955952001569044930802426916932927697955889297339195259522738916534723980917069126070494051658067335847531726464819578797510792973594215493578814532687797966974654474058820676568028678031711825542627737409890200354752915983361061589479896624843010453991503920534530499614629341487783219472523335724368727496479776728859819544880733801908226699380092258101560120187804248190156442825270770944287981649629297342140231209149583279375367139209150874339631336640273974649704370333567103473749966343672913556486180102956492342202960242981252726147445569045258333112177953862938832041119955992167736549927454220726901520643990608057683002755820365161254554613056305440902781721811684170819733467898653743431759930749528553829536892944837064794738404543541712132777430239612053561039909816323525643490108576506226593161161923527914409855951022698469993801153881725924591096195783928007708445185313990160184030264231847463411470480840162273894674628870665197593201391784382275515208638492739847688453377018090207130679259003674334759041359028005074089657419378866166795543360928000298812911075350233898303964948729156283533147228569151071922004558374002517588986969283932820398115772524258839910313276623704002881550007407102572268279724592942425350381857627424452318895340070419098179975059409309400878634963497803154129626214933186454633714166469391871462602103366687574800420527103707988159999271876816283918544997812257467046230574089672470010647597283413359277202297182272264610994447872742875977212714028526869813309150287096250165120169501386571591682667650337617452339123640550311502001143175147559864239376170264597527839055709472654213920666868906114018177757858335015290990591056274578905026048488253132642537206727603681236179574187896061736824028331558893573300970541747747215301347202005159346748295966668967092419361640054945310694206558870543525386662580072072799860181344835162350534487738159846887789199546780602176384821197171141521360942146664764495096892144683407885918416652722256021072791819773504384902906852538683497587847513270655241864495343052550599261272820646564449763270732646632066665271087228597702328014202037872307838892495026183438264010106289832119362899596886382039202251006283577634244075067034432370774062293392750157003031034704475135169504704715724167289590737289076435150705951633589519680580048188764214667177879705639690919161993799141493319196488727969175207863554921624270899041774144342617705832007886878062868796557032243747062009955848932859539544224216926960877002248358074628028032095103506258388398294115384309670440107487879760821336225036574552460310374655025099410976905560108464712742404761504755533691745229403090466381153572866030497119156216705822895888210897851623252635775229467142754389250872481704230177061428645809645410269710198517140329477515006351901505651906725644867274411427805272492312474849464692089660287058058512294840147225339953282385377574081071617361943872251330808482691062723633914517521673267222645431615827553987507831690308052840052098535446007550706203512855631347266913001768476716357937611107653733218392093874774706850062395106446068945881718169373750297657640116848397324102691818563825086055595196240311676782571545907292863629038830713637369671020466436755587809786752470200078666522099077885508317865504155548146405214194680484426652953823237438468664608450907896787775661497090605566284194957380803321107460592863298748896785466081075030725201931483503129475666741508004093809224348497912106195677009912233650364059676917931514491995752142150501769733365356680637169533989933961133637677416588526402555165210939126239189719605024446817663850098332256520747871948140044370282118449008887682793150788451858375401826910275304691151098706600952248611745239971501384895686072153475523500143992242213636882946565661457925413826313173958778864315232018426297613914797624207175133974386839065001381406863957337413809746789842317255610035742552596680355298554543997476237369546537688262650007436105297454596610038231122595456404001141465717652593778026869387642879489159077292960738424089512842201882627826253362174992602584457622839825989994117973483031847544607722566582911356844054862922809968367610036895619147292638691949670213301659943394450586997702199365613114890398236316570921232378753574170104667325835278450557754313418143630013725049227341086214777823386532239866158005453431999650510718421967705235906782856115828868541496113104714197073030790704759566364784447107086666588669308796748546716713937895757183808634044502698918406968885357913038786037008013257181703187646823935635359454469041066540671036125219903587344399602369439858993478226855910868185154355453882633371898559203229510573941198803081273982909162693697291560877674863575600594581068835515349893611108846910432417079268018913633671638133332979958717004398640753119255120794856543472879735116732493831383848665390133935716441628082820786012371007246870968963726898124106864864418633118902002401428976183487093150025050618541073712287089512219411269217525968709549539376452638016205500862506908739801235657519692704583154198808219244711755399870200876696265039536807577787101233612102898488284108506816981355516086730223527508370355080944648514731453707729502356669203066558817685383985895611204292754099235885280739806378088678914327089235933341656146828261732548848151272056223106464976920816687352700319598426523631266615108451106077287171424803097808442754010558161873920839835013814309119210838676046561404308693391888266768736359244736993144128933193354221785089775525420217480433729067477220578980571922674968073579915237701724844643891562795931471239663942715482218942034383226717746737109031713325192669764502253839456516459059862802974840686880850675599592040942358697577795673780740581958265386801027252305659504286883250163435064934523290497646007590464374759672747609120376779972918176514447436711573942960288430837517781629790303643394723021699299655926169299495417065227150482663968107120249309239918666058149153856173021543148791856240717158950326870455052838405246744608997403955844432722448715154995144661641317580332808915543555117062914408180655701695143745588419968526192049907886486445097961267322617259475585978501372587719539202027104679807679680149266360751056451019122441768225216426416630915543475938133497417956705448803311887140703683332646504562373705464582101197118097308585619721400228663126972624918498361929405700837490780645175383546483084752192167498955942274790994444582833386095212114932978015552731886603709132013944128855477625402703556624451076075621349089722339908970408883669722836158694467520141029471933423447135704648615807082048745824008486623511970615170129888536951027838747152099813182049940958234513384344910553121061731555113009344524415187436214955261447397583141693402190317372675247173747397675169237528226841628755658149749006184360748093858406299914292397602521056935455928511656961608032553293708606035744386921197953126253003024631509200925502950986969664073676571929141391601412037443320769029765658648391230462110274656817201845977782188351616905026449422635003561672594486579676843551850590715407518837845617358108285591768803561846849768321494728709349433866348710088351515634912437870066609709100164381718240127412267880148284376179958324850197947283534491897987621361636760435841778475495492466332806051349218540755955731435474468508655324988286328808863883566660881158558683251545116656017392160791602086853210916977374762675860969029590347815606861244169822311246149300007363616274319318259664511976739671275021003995591042911794511801116317611784816659638317508155669960338765539035507593029915437569281115666879856260919082635622981200729214189593615784099586491075063158488613495150967332026643831950580625260739135970318258436984959034738229242076063493804062699723660821750140971971511278594831178805194379663514099566884045641629541882805519430795182394188257857894267609492770733471513094393085004010273309707148869721392937010766276676407995872666151028833245616952780562542090147209061799897739158009523727637758956278094891458038925454133518331276916208885429735514018588588799019537579504820297803871108285594077760974031066688749345583399014646566483640878843729093919202965622844540298555686161794192383815159523847950503347622321702114478685441711970911715403075866956569755181774441411766978869460150230756702943842784173595295462723964871823031073872033653871757553020534400514614942153786217291891682988320088468256544522631582950385326352096010660831854155401612162169983671649524158864193198232661382794896352073805782118338476291233693040576728017965249880470365302382610796677011415124390293195995064977494637358110005128142759662343277354744278351162590257964156197883577989554635456418796759497128033851103683957119554642099604146971700534515807107130242991740890678690908128595415121484827713918739841042402341734768734162467142375434852244789665716216919970652097179187218473213789243800288495135637294638601408987991904166787378064943274660171716989522029337614493333139101971014207530614914873581926752841340477131033063698707571517384590657252356167252651393110082764106864939578569838517723379771674804943793901327938547021311619682679472303535833993862519082185598831677353039328196615689826946719347441826270515100620595353265160026096080322124611094121181111050049223307967745880672064710679393388754359691149535733754826068148228818945372734920225830846767188663863087564498450927213116878504956589486457926505280878101229390348727299052405210393101612050368615230183120327258512928504919720388654379185495991665560457203160046011843538991859330062265375737418292153266401817554622401800271857316703740815144247995207883178719933946706719447625669891967304778373454075518042389830103827422477073599239300821891504596069338403830629937391734215382475781923199784144969726544933366387542360706986243083831183119986337266800614882876224892604254178084561861336753975725199478467844764761225077251754245038317275799598417981626904452393573583439215083291118581276925362322909794109125011391314459232765633374912362560890395805115592302896139931317957328939241094912937643660104826185938301942303473215501386251365696934804845522310421013188702336137118131221813491065369139474809692284835551461465451800383353697704698819268648718028293877156729590301086171298464910682509029276690966256261092089767306819079347385654512649642588252315345312584149651663543559178428537180128920252325659903043327696327061424340498560774076571163154881693399680148576296618788613381659589673665827978327496123338109441275660965352126700465821742595128492944352013855059506290565125217369307633904165803613302215667783645021436619811629403984782227495753133782699147182243170839224204089079040040987677572661620953359155122977918321383351272333649346344776252332583329331139004087346505992363534143706646288082293858905837849434661174541535279000300283845076653478966387288758581124243929439551080991370604756954278512442826999565418647296617632640154208535276960700943940405061613046313209262165643692543248348703882088079231830335542181140388547307238571870849315995483662849174326914459788113188485831122258086828130468926293263678923819883172530451706796512615332985511811608042184734684872770045863924915120157440124983670185427676970391873523486380714780845621185999448056796862959570203803130379215035333261050515989361009530990315385107121731379286864664105741562070817983053051210641669388550660678119868645559427858971306404560491423474148445715215187516374238618370416915524556299405641973239806418883411383108914607777508556220074451680381075524534355879081057087569186584729704044834553747539115766049852202674911584429743425409047121813768170113536330085458835041650524775471660874090082331655724455843431128514202908172604801822767231204462236487068553472977192804742856665671735458934539540841502863408801028756967461120975245074870796117881103233092355327004661209597729151935064405672335010417165890912382439140907294474683903478628038548171488452720409392479261604007223051234805481691954567530551842875938692687461442197994506260570258309248236380476247210620188002170445258483575398536749040386599852714012907959268265890357638684958932810410347766686653000206257735398079210209638625619230763459725569853001780318377907446153137400451153812036526238258230542771995377859225274363564595425748238230681836196159509754826129719528645858719033335250237041663553186985856949814161497565074109100916499981434331461611709634696504118546841965126970534425293697557823205426037272007261855411462990652186992829930336696442151105960723371193309971928378925516422106009480576876041138460072092416461316135938110186298039145726007183766455316885062444742090238807754742176423292061875969212222108320172859020238573800435909770826441991298109443068185417340309620540988734234195499663225087530475319856700524555465313015841476266991791624598013095450174035335167404367067017524320937781407234808453663279403731527145320211527511044785378671586958223777416883497773203633388666512447033418202088109437666177778723191357596074933463379620837032686721699350376853813544188664350621875548537225557715733085788644111826910785716462707224934232542441948273091480436729001833784921730588668220004967098823911797767176479391872511505701039995429743325665385022130468545230933183197803502832129902220061554579277627793740168562460634879568067719358494943296851560841201420964434692344657095765412437150791244755790538247885555168324239738619195460706537734661548608992620001735593953292585104744649177581855912507040923235592147202589632341622753846382603699940148439584887568014859835038721409466208110554862462558194376573901359550740857556304777370147647694584828844550625528777737062073959272978300248394767879182108934539097959243610547867697883894575946487017647055804326719673115067183496354340686765366250810583451753480061805935140693106875155940343726150520973921419031685576781911641614140022380348739375493698712075210978372187193678505383568662626764239645406643662619833851700243710606986842955247543203717155480998935877968444158814008152593800559482704645255054609975913867866701489200257299704138374490407104946499729213993564472132289902842150277053189965304403116155752650671841874560154639276020401080413117122684605076140848953215360567177565350938546368162420116433621426419173557314580268275569141811154665266408534625588078269565376961376669361552936317933339100501636794423452383440745321438059496371025951398681824778032118118097411793338413545446730933343208279980630994172432538995477559098859767463059400958427703056128504265235754819901743375162622500423335184859461949836577079932827185738433619711552723258718202459105120155776542038647797127049353975293886956132581309210782520152412724046772895630338276494118682167114295163654458237825533214805387995100182090734025679274343565201210216106669660451511964047039729414987450513782487216021145971495218631647493883490952456279598664825467157353164102416257633368150624808622647879306306521329946414472818762498760518689340222154472313333244425406682481726743946624219577284230046018179856375791804747368891864705087187157028563693072746586980022109529347149601605682765000672328398477200136340589362169636026646288264949780119240321061535817690926681236135847182007027256104306324920942483097600078191156710363720921769016449238819865320534182778164056884395232627772735376058269042231609725864239789954192797706008909912697263201427316351198272955184850827127895131930710530744649749219081172458327976470956444742862985856677487194981865717640687782396467625581055013184713993357438557739472579253245738452584301596360863050435772263352280104338169988894443516493696211149445408649291322230125068826239061890414632778117972819696914926732374369681367932757709290205653346410023504141086588378546354410315602672887319153345540639323181067533626341339519746460258809811234698930549266965542856886162846192280886923730201132910745228181231933245100488035492521691779109546126567996246679951147809124608729588274190101296031555605958768221328144953011496609262079723391958884023826505554953108634205212338980358366073975866162889272930819529588622011249212781943189256126207391333880348756405192446832906958118158909946292895722959399970859461564101905376675039572718827942214009565571543441817355242802639516329662002353104185980546351484684903375800843461816221272173923961417133462376733763752185190608517982699026190267435926303091752134115466773730559120170829671361782523048462665886221848555705363502745099448467280021909925221969018554149746215195551182738602562753377150037377467679212279299588936715913097482380586146090066586175055203608350141711122874425843428323419334147349679135966122782927004392208538310107205681665827684311074922428192142959498421202550197047504375619743146179144174507728654590478991840083424673950153577392707570474121580107834532569899608435391817269242501740880386337754981802775353396698894420832967635670137261113447497208973371623416638259203809688308224370230319052281993234205321254487130730420142256894466854141383996837778999859514824890235769834976534833434213938436347230797523504381534143575656822397811333032745658448690794834354089865280975883056263839273214750213811228991656967174873826188261626907725291439662740756193277828870937716961847695782498918787267853418877577267298074611489065171907233125028202442390619919426626238103278372249391918856487175334809088618059453955754079553303796402867041760853916385681031813713607568892088103495505022961242787514137088116253612949730164717496127272220171888754719144750648626768284534775327754401619326790666854612099863543016898484684768540329739918173274674214869176414179051309144566956369867146209199088803042182341259499093294281871302765989702656059604555323198938817840146714430823854870827477336208355549307744057406045486347359330239785238825004771385684000030305982168634069872812064682464483864413587618853255713024131662839251434423087480436846030516665231061571223436573795058146655933969737600149368242719100020512115269507805139241258339906252590143124246831148482722381007357898578444070657168863047327486141240895037984246712687057871510590521887818042130428264479884631792503188744421550767070510911791647778292325591269075096633913627879530175979483123349929974869233438611198821509945088183986324622935773552652640334615159120526700041794349513709779497544080481966977310211158425449277533482519223960738567449092737620209821908001478031839501752011061635652504556936373881942821249988231881785999662377734721486873942316236636896002347915953892924908978776592820975177967720249479353582032295799789225394130909934260856466721968749795683355817353212455589645040198046788153666750062749725980101332257236414951307298248681719922651713040696228374234815711101942805259486302204824621965991514178109537642080609426810725609001667309174415691215121829939216361862323119322700820289378630934895190549126186373304120728127390377870399177797007744723667382266828142489052028100595079173375040031423143014496006863558209068717970507533150461657399198484226099817014707729176471115543390303720430596669831621177978535135893458151985272372670092735496187201287543397231307917261706998210527610242321842776862888644743197805657058756654845695825790937103941680356511240841011784650118757492694333894839142309053273197936682002244745272183207231466392840436054713197105541062765250068544976792676035556295932237616894058886859814207377400279714210841544432213476473464570763748333333403508617990469485352673475319312178661574140223171595705019840743255754023740302376206851052362486175083487903335705462257681694767545369273611367422179935444348671487106911748963670819977512187834492851705126899247651389756634068129588333608487167896708330201947928523083267427957363151117517619729274379594258488723593104533451411500861677658354992692129157507984997934214965148367670407466273495730047601986263992157886687225799770639161160347207549082930342581897068292357883661482213549631434598684335387481605036661691071084673792351493177220466439980168928457801594867639734074766503213881392129615854271724972474063231236638380382007378492684708131001137320492972632478697466326864272914122851978813376474567013262094184102962176984080958766886635522211803777342696885051403208744971089324331345905488392027822630333265673639067061105988233856189216834240561585215849477763586291102571266932685807191425294012103822403440919482219282512306145083500188775193436569042714516426145751754674117315210499563693299782081334499476042569660353762679044738560915669133253046928621099888781493503124462630241329887798479348657185648372432724391307413952357891090019900367912329940429362554466592949874719720526554907964565164684951181753233272565461241070928757968704784886898015182706224165982978839948595143991883875801634564296385762164243389070078601671230773354050050732478283515658639696292227847606022586715464375681839370126172811471257334410496679587886333051611099909452854044212358301029894332414388270365669315197911449144178565900402366386503991134794625613869579738459142550697920616351485628478847164204879829001669821404265158466523989593560206171521891950515541568418587361298140598017401428640417551827475378680051409510768343113547082123990164257939719814376069597811671558260680157079370234897290990147282086846607229781397187493344252337533965412265115362203344873740232353252637108603696739335828398742753058110037282271657824411901994320675452838345273073946937880309003778142876132354903937580019918283445856479046461162642256139730069641032485935512000991158423380962860735211560266544565944910069990671254165844852422485321902803286263667170020124036395714016990398683877388773862215572390702804000864556096107205496242840355078260095255752035213456542896152194130844589515367273330356217925376103964949377386138557321408949461144558329453116797411206011457186211133086191996740509713991645697488745845101791722572439229425786718044763036057700685560905364639207945536640717377206550736972008646174976470708263350411017329160474482844397233716069215234532547143512840718632040740183084739368313519525008812090821850800684140335751575879294567915021323152744328777700553756548818489582600529384834814542534776797480663778686067097088531238054015546991455790718548618021789661581999216356447507893104558250696460706293976966573197190993583462214169604933206655739021047321350484397463376329080022716224476372724831075820996462941648350876369627821036309283685127642230444755647364241898554454601602239497598711583719932356468706348880220259260386154688854574924664207441395476023170740040918985526204664047974752280854665124982640325293503111514494096135617670407103843225966617017237690586680288774621619499086157987072320005987899004193561457342944891286856668524736472990126338490449083006776348861586852745282908475466890558755718255354244147637929899230770261850482221934373735333699737898411158450695452284048729642962237550943622871246748482250189663409036268519556285847690229923899583845654397691055555922314676639713862855603006674029013398643790995410662095563133346992587186755877368679614769573285434288980923937205198889434153439283757081953597125485517784128210024115052956901878554721584542306117922620337739765884756778746164574988874524875148210749534985613346432838782009149973572589019787706254388633420758190251467915565449723525032816222310140965923894216254441162086799460026283706205864671024601342902903468179028690652876882185437464472318826631098564032200320539158811180636460983165347809474934092441953289319256908481806502357132746856878125563103735222166394354040196708812608204099094924166473530634411445801888723201629158560046411339477247501453803248900997071153933590867138073048653126292599462569824178924971422562126503537239496593284846715096381229944893550309268423126829812496175923134176400816196392490522203033837288892588776775228293738047888818074492441305914027898913849906862482146973185055548337515645514022871183494062093351353334221532375399152658254999552143762219016387458013960543507672688265668355163162954792244705346544816818559304996053810586275020696017990212897182614842808218797635370646024232131149484303181082619034405684546871829821084527612460328139270853150292582746525954511970157353289877460227799813566584491840293956702170690943814644422308252633843150739119132529072044514187474257033768463727919616059914787408678797598740673763328830857745337758845455565359799995625328604328759280039644070506367671002259286661987400795888549120686342245317020035072461808940106321632703118381810544028129013996262574127241758503235223870491843255328411330208416414169661332061463178742208364593607762915928697481753518726169628368654104494950062783689248309682134761928423034016201360510166227192960209511027819159966373845158698203133553674240539288696235216455226621205779996029971158645532779136766735778158092339088181923457787084579261833582133954189061393418697028387002812213964240070197352631090942956238501179636360690390105093350870587130277742949699800151271686079945071729134443355923060999945729841941168916639107772275570258563722456671071147429900735292275091493355956303806283774433331638092927768519200542792717141159697274646844664043076734839977364068699509556377529513723478472684889345929832559536976108952002563032679410742280792913487774469088662746445786202109954597271868082279288726117016296948563958075879151864874768948879263822325310045810441080659569004596548710957872474810018718319100798009600497672575221214148533500007942699793052321858843457599941375103127338483450482843652828329217726191346515114429632014630440488042724344039056831858912548633081050401912688178973339816344146351127894233990393644108129885502902960736615615207861013027679886197603254286844968469736200626812024622274961559402837355619966427195303253850431867511035648601371837024740151679974903263312055322484188246945959121641892835416027381511242923099246598435882562934124254101274819312213068505043858624036013653849451832437672460322021167125491683007626393983522164338775867287390238252941686921775673202587963982063234815802447439265002342606560159020743427910223901056995936943068465194519989873454389159150262938025195239990993858964433186391167845233859087628812422746006878959386379929505272483023713609350801321508989652794431349950445386112318586787979954962843186732913560747894961984431221129649946478403375090746814247752663197598053304156958287017221883911702639271283443307978243525400128980970230887409492930646189287318424827375523691927575372172742538423130222899037605457800945355323528698739422933431490138623282212799731926245836669108434661960978926640566190985095841326479563373952783223610972232246162464644550497494812842517906624326314614494840673534191448024173560870590776610887515004249718710686808077438743752949907699201510925220619066721338059254916328856774157414484213306642126553269089871829558603124566774714429827119248552274736602565329937315471290591306558972235750059444350828670975670228101576224914542533815674773534932095062018662157094404423015529092045880947011231319806339227411528298317019949311939562991575636164042696500270189437437433514518793004488082077959949942408644639695088644643807324461994876296749763944866405835090481994443002653427931794041866640912741264102473195975988524934542648085891067278219374639320989521343993040059410099865665320440638932042914232881855972999822574005805109647250333008424172905018732244523526385215449349616259417613945539444901672250830658912739459243625399874326668507136163967321789747123341798244980437547737468432850532435715641873280593779656026162089771845913559139152838977192196062504945281146414651206113112733679753536806853755792314514514177264134425402462969126505181506351505067376834505777844995884748198715410028633280304232527165498329561596686073350659012702036196650142390178676658158730296124592687380092245467238204692594291787108108667697082802770858388191918124582581960709369582651337556329380159114698222567750080131600702315056906311725076124423703798550014750384319605739239685962164705741039079776111829771025510660079107753339295717091693208988404706639065870397682425656482919237067369510434061159131957600691479236216370891184474641149620547757906457837278167350914816782047044563809839535595118134766527427451822285391350436528961181987699675514357650999795557602625153177766300654955692072519734104385217511275632422858770604316045136716206939999390391915591442366313177699508769199263606365457403075740263493174914675998217415500048772938153072197559187389060768450220341149827391328922339838672609575203898565336514205554145738233685846155630585741107069752314584028165592966595179598720001338913035799435732750411832794753115054607982709451681350358845671362318602771683516349928591330395674879812243446596107918985339975810115053574255440923404216378095237759615787716617161778913268539695206761019533954801557462033266329511938293810455566421051683316854425531828548418908743882391887330015642850735795628698121693818395280719186077165710193691829979033279131289775139475861204894898703069735929582325381492399689844138954089496705663497118390771304388877902336750904403400862447040392903652027920891243947460556568800399171289342994912418765725767680044626384552434230342587816540516146634239091559956299570467376986763239530371339004505931680790845370490885104349644116347539434552603136089279488890599149339030227709465559966517822038389781520426128399491893042462118850676038191719009085161748621311026430976432919402980275348630421208155945676174580833918294208330975127307284092550551308727640206801511626689528920418536909973700594289267566551202794558337326580604171933826358549155801358300842313661479033196441385140005250390964443732298991258276219905899031484631240935733322458919399917887669128648069995064666954644407553628525965515951500438428163479273552230277468712982721762585100440427158257298465748361759101824776043734590204252708811546285112131685928810965750633603814964081470706960236265358647488112681109690922569031885350363487558385700522641523882245475345847448135321488166075051569983945157708728990466866471792864659770238686464164618502621627959964157524050462032296371935171208657343523236855099887216479091266475993314800490182293526454703646595169324187339424005237805573733499182113394295967022307155916629323807677834941470813665480474620608309478880490639124471747474583717907476324077418094760910645287077784132790578569001904606799915201549644169585006315002071125805318255107709084601172883412411008391190767817706792898055363344353280039132673176741917571444049417358844554058325152197077189266405463579830005476045131462771447914584534936178927156686333713942183278038872460055677891058909022819064535681942255956332437826139307148248501058336496176775524267640461318346699831429642572273060295161146014432076395104690387144835875542944517036577553197513456933956728766699945310824617197345589977392446213212386884191263231875923022014894964084221552556370352085913909589377892533831338644709068549427976213806236569988548749809046166470650589240668492250651850254721361031132830080499538153718545970368199472533472510012763170017421400055066849925942445114310280940005529235990687228388173562052498656962358885376713897958399934898050964880687404220705036060449082460944579592856422490356315592453543309077841961297390265541338015802604296487303168469363388736918228835512796985714730970547011563836026036622912565212612813752294005908481039691699211645940386055175510065800119770748777910471260840721024809992946911714368768112465462288554850770278367248422649645921148429577902032373154003945418377838603353175784439401687959977800244852739643621553368784263991306376914119662828643988239966278819590876340635077450896889979363888889421365114490018513884397329533762025332764064226294382463620223729020639102593668928594712256905532670104998047135688272566124445128643612934545809495729393249124053006268727978948724375159355409520957300385020595568087630175026113968403965892416098385756623277652691314390481229581766542122466052686357310393621843508835195316647221482626884621419383774503915215016022001834601507285941606257874940263606142468619621042208571671121576162330054403535236088854126872106323580591624577098677380707459499240169718221445881569359705832473646605237977862710053841225225307800483428073892206991681941281351639545558442735027617845386068837567497122434111582717058251136926270080663757054169669805850018036373524767267034366108071650075327453703690665290670995474825077886431419345113347893592408899185538221173565032402746557132969803422536889220049528687161972401504195750596151437275393263421388346856298378370440056263658079136259305974948722511450708335632295320768936287357689825400789582591613437702597097805521793544042237085678537408064422203792229860143719651316496662526244679533479922839569389986984719348369111840237277884650319117688470838494153006752660692844457578610274567930990392406061542249840896497005964296529618884489984058029166390580034746487720313134658959016027591382782480953088788004498627075662303605869187690865911013118042386236134924880412747562165594759369570940436030352403144974985464083272184076381194223113321328686350708426933781718036410992980980715080500180236940387846845644376065078215398305532210510989440987127012867196909756912657692018846168300380629626832632048707049694494474800307047360174410673493476682466972341028182121055128209405473971807732803829029115446824626774719670878768047667913386180570227119566211868710432477582212304958271589644393709390976783122925610578948043277134517903816990776514085142111800614521754220202285281475570852201367384232799083477004253563860148145026256552831779794640682725447432666959444190197956918994723557951434663238161134687653102895481064245807867660070611558203244237417425288701495667006144707047635877728798427056485777022205303954216371203689780278767272092233486741730796605704051458892890796925178266625539790451999102013494553197352933665477177353235374430805405493867500281531771346775962045641472582874134499870844489989455702779766097315523648170251585767513371801643319390815369420942900543076175322720020787256371409463632886259660187867706222713127481793489216479286730215691320841194303010839544560191818390996053879366420636461754166806339559895670594241249605979711718668028630499008812400204868117464778414469789849809753783174390606300839347552296071229146875806287796531804031720088403945591193199576390235264865342040106507090954065443159718933297936508009486238217694182696587863359605429937728979870354898389916351985953965988299448406545461832328821009249134660398130291376808980543518906354188793498961751523086379894466100143547488434886864653397948927156588225233317899263913756725050657405172678157707231486581472370529355005547558257451362956140526337768805029897330481087437853061720689219978059491243334425853963592002185529721114182316538090885315892853183415845794022342812882039858883285931564547718894577815920294307854109060867259098582896405947717663633675338054649295443603611795084980339197221975855306836678427683930276705449876584934233393074266362653571482772769889319872780541795718945038485756681972076285465167066139239236763829485115989590359497252331781898314347958300494658997051461645369905788501560881070945031978625180587377482604561742109527630767542947758687857938747390512221590008875981316464136039342872358130913206682678346759352850812001337636734665137875705299143737412847896129839488205357750865206919432109305914290965733193392902267992397373054275147255689434667880594822575147157883943505788000985545998612592963848399113722728425541801389659493564646555173068174869199580320861489526049841856421161982299787947509440418946784338033714801785213758727468521792934820223650520781655981277143498841726894905436391205268579069307234654270171102090630268013955026843105249389588196587817265283807614962504872405608423598810101138015963563094895572682933995289099120498822770920130436688497429885734016043753738082070050613406053765338955770756176324073064334936939104430431579677663363334310268845737472266868353023867291217107173604076522802637244398666633789694984463368031665240749690299276379942010944109219546168479556866278012368306188412423739693954041523355100098487669786903457070120194524432671297319271737802559299866608350099627705155206538682855933350258586679127213656448537237711261231826832681684649988529641535661166437228697217931732540380695266949118161111317850185757465434637228473872930633394406987908268894093481873261271887286008772713894845022085508374433280286034882759837220475410964593102372786328368625418925998908044471483322352309275077332715122142334199698264560945670498482140577465743220024260996209910362815543553601234097153581669778209882340691793937597522375328615399118327853014387985889648515753788527672198892555313753514350960673012960355706296028525428907145573601149721485801227227532646519944445744012241875311866035272648752130522906957317885714314500890783342450490214174373106507939965010625424631012525573572758041721270222558061627188563969955024895464727164953909504433941072516489906496600649387669334718965010712449051754988739844832370704919489774779043588655890210592679256894183357495054245430650263347750461030855445607340330273737588440081490653113538208342679634269737876387024821332569700163803018722387334844689905130360786219491069340328512107531436396266043542094354851328930361293365323810903597665201796361954487419219010118278164659647441000663136170069573564917925899382653056700927139567546643410645742371031417353920447156702065117255263267614748621554579857281464236926292845031270009552608156216013327308130882914235262347610429748017361902580332449722860173120224709793005105299477901799532922924465261887244654254559579127134806733786174113765111235972928927718015979155554871038105670087608511670346535494105928986694735242034726181436273514673720754586354381927471015915475212445596318832724234926892354921431204772832127441340912573806250611498603010996598268508816813207006068895071240320096929248542708279817181426381282260868532860849214425578459583122746242039455065880289161141267881552871704376005107933747210381846129136855930347823656590375334858599718849677771640938243910752901221758560676929025816334537892785805725398693242886516851393264100463365175260981434102562813762880069942826395460215896062748028789324154595936792627127724606913917366652685230892300821148234573499627603471615309058594804086427425486765798711231561079933502939569382694520348048264357982768164393411108198025249087189690485631083563752922376025891549880826671479673147668406086539122627093651804068407075811933574135837697826288696435398274039889147066125691191613597845176659879526627030135937817313111667598194050432362340432676003263063811907009834382624121996981707058241391465478362275143604041518042221291915677284513467957960958623393600344658859655061399664426229305176661468382055452772096231670773861376310682030233696238345894134249722728303150081948624155195592245487288688429351180986376783421171343829807751592845083465954469915917767249895955676893160716900525255792149149113215102109873332157301914926147442521979036223821739400907131591964669845166216310670549427764303090947801632131659766537598145832339629153245585502340986964474927521720173891153833096603226297060695150059797540835260619373429913844248999930874260673816047416659220628998865279387562979065696256332693715736764423189237427902137603639661418494539865648413501906549215493068384568364889623768293294768803562335821428385636699870762534702208068581525583144453843066128453369528284554580272246030708203502371610047103894138529587296833219716081817959350334277885946465038542504686279808459622976357701106975337719137571111164566725918075239938125479202843104373691198227469715082190320190830014811319095618091588328361107755898204656021020378438421445845401788194247156594365990624074044625491748318869388392364646443487207952702092825002950084727888341746515527909528055307790212300353151589018039405973015198541750599187757904892778765432388685206805284806955108769445278218643668307502551159740570399577433667392025950919547408901575303922560715531414425374086646934599270004997164410593479793267776097958468036674459368501990263836822432132242037071223180540822947706897498520389975561808720467744675562818250715375638737603389315598684858502549556330315835226049719412776596818493356305936703885993237514265797147373679310259706867684884180508722287857857698248349691493993230570236565148150079600367541960073399122215803930076464717950296604523031501432447708201882575290947944943964740789043104395852321249597026686373997173274749382343729768800235974588147886891582831441206425619989140215974170201744235975934721959852290545521461112203293560548374718608355378313810989454582235998396705440659883015617341009326973749561224473728416719702142101604799476770193704658850042496095996728397206130994197647451778388930254092621797423306615740824688005527220200302554573869071999650768162778624174367186940485753925403469598390271759116756203770158843775777849057833127317100849123286210642632345987241544134083534423555712729725550048596780166432682484093890287159837280575996695697568136243735098591342478527183412687904249078957970960752001070822374797816555181722198116230991769061538401431451007422694705907513782947194008947231209409538502577070026811256803911546005235588759521969800689802449133360905818488033097490713110309687028730211781594749774471100270006574271150948436696396817710498372052125047670095765481899202657093601451083375228633196620290036607067527779089143616157894265074368688725705640234612846506879433978605470789328537481919700444589237646070374823251167523693762901159895118829890360175556356858512671442249199043604979948889221317608242578213057159289219825567042937530654266056331035768567123507898508768503648859399042255369079127236304660230068597183034595799641012587448532242120583665301550673018392490000903888110657575600194279711862262003978255822494928326948518301422277371537788496265224198458711313424731651190237104348664745914366718763924808904937528403330689661452686349050231515320331347652868166348761068837495789573117070051558650468737096236491352444956617201075105570239237557628028888350815005522967914700419269355456666748135052631128553790076843299539316692728826875758203921018050463254287984872651769412374256289659975816186934649474756899834129066995378522572966855459743893123554028710522282962778960365141607672783324770914487549290996070880776259608118075894132173540097895966871787452806309829772288569283853446884604016929698829313744064714498719685549492935449803832411743975718849427304296014127786292521300075238643005806269730469939227974284227890638979281435475815637336501074698173777895123885010503416873466543979906755251747873080447695812660937536140512052288976083197994274667859146544152396651779255661327638761119527706578374251451596831222811686238110093658515773155871221787996272326531395232039191373416715866838521451441457314914954669022344094895095820911631811861874181571430443571166879408266605842057681145802291762137261039000641382591255704412929530371015379038635800762494585987732560042153484133198017893771493346450833029692564797618553225187045476984419169246360126648052405872046753010154639323095917508096823134989969652548673987968585540238213998972359663512719409139583729110743279723920330206637274470013785441751762758591976689083640549860783458531969860451826302606611494552063943092892286788591410253443008836395014630004710443852821331308447888409756003787711822328071864388012151352068035176204870693368726370496292734378001365052037855687607641749502056378654456191830710270143803931651333866312147149149489560436497121128088449591261491283728614427692919799889928760067167104382135921234316801322024542131358092093010520765880803486038671303973639500158954919076218936495635944210824978502290715040810362017505336730510990438588137131954993689066522259346487831208542588179998389294821362298612721421484265335355205242249722014403574247222353848757511184358236112380232014526902977370940547788623685998207167042098350996654973219898502238680709792441684819780442713319302291520126654714508163707636118887053639744303109243474313044010477645590840083241358502393938725677014240076240609156763013414834293708198032377528539975810014160830025584225246953269440960434957077328571669356561518999049220081882652982347930208189557284175566272884258844682439223658782649025618697787064036548305768558389329767786257167187738028742002143111315377965960249175909971396040220815839327847695987870647565241967442920938943758503618216986272589442477111957735408689113984323954208673375885600057797898029113858154023454844121381348940785364608621428351359315091324672967203517192037906766843016293636747551494976239833084277557637551548752412349997342908162029569827298935873370208326325442355457843879694667586161049100590883064342517551402842352729420709655092208234169850285513091407446654373969996803276731079989442392765570741953805299746376064004866986106960584622665426091297143202000360677533766636832881351529408145242063505650498906694872091138046801815533836450152550388345547853686938172950227887180539684726130365730459993775964771932455141641757377581054338006643319974597662045685615958551341377329764095737694174178122074259687857870298218920982122264992903719877861246509686442398856118338973118121963575351464270059634265680310504348045146742551641302134716348273192719195099826751042489300541301599062594391525590261685489086290280074074036880257882964518166802181389366450826951080699308922670227428421586497717117227867705466743704190061362547151194055485125164427620873167352654183389549749134222140044571605664144741710188699513886759940739168093238479866072380943158941880297426856121219704958223970761899792278071373299094558548962523842598898891961108285735356246424970810692098827250931390761903932609280724992230630466273740225312694122231686366670917974352851652992351930440081785997940217463674213916615462621333875506771614178511437943391239084498951429058780860720556107215545751443411202448471361889206504008589800395207573451755551720214764966417115609951663424448538735354084446291103571927051272736987204697310861548834978804526342828988941099859284336577952427036533815973923079071611250482066894549231147047807535747284686730180077015663700969297991726375924558682244123465440799518562704674048174328083598346184110326203196453528812535371603061695153247166796063376409129565391431984354849483737289888964310527462330752697481980382255681755744771703364795923871791835614010380063491004191139216863221282968190426542659055225877761310449132540294768486223751924074332650117200220465312991947108872995090411063474821329121909625732918628028316544353029732313893070237638824814327897451856864476300812117091096883134472496739385960650658338289066083930337882342257899143713018687976607323089824157299255035202180969952900599544624060835191946735541122431155553189459183863027669181725844322868692520317568126903892433416250591765170832258377141141092592662288217741232728313518561151296944207770450926860778509560227753612557354301675423302222963226130921576845692935284655836614805201006005795600418505765225675384446822976199426111737543789860595728809885468352754456242764614016375758412900229747683482668739988257514662932427506496235127918279859315292231916865045960328985085414309241090925498441393048577259157078885381026774186015853308664824522776796934424148620464450903769880651846237024506818951835574910921583315749173153747961689016108236358695182797912377886083771828771245294933810658600646047723456607309111061608250462743415132514419295253671474219786123304310705008126985730521456067813761976630712791504694762708106667468405482430581446667159107449183259856040425749019938860704518403729622624077385890485632859854390590626803597051411723646785089005622372287204311089365344487197014001463917847653692181496543954567987524473735430775146176317940549310769770954364408719656169142820484931025866479669620064332389300880295993383884415081283271681232316610076341273906925507061577613811567187635725558859196050186381712420152822998545989835991486610900959732822834543059313455683006178497358654309699786615105279228188521020772727461446061600840105173103828765910292757701823909578592739508257595389442400813727954997100410321566167696634124938696353456867552247894415206213922533933986580491793348474903660098810253340364292764841333803648597172427507326653545315478751603872029834624753832675301256348991380891853044074138630880240948947404766317529910343370441972454110246452396852380061884180951473801038516892192131362621759431202447587100818455316546516256230252137946005941245817197796319134431320019525365544429070883383980109221397129000617200857202239099485445236434053534964008337283108324664319388759999638875415832072067302177988639071202522783891408086600690992921537796686448175614511798594574597781882269992522137194271212457330852599113205413121598665467838727359240684953972097831233898594199668148721410310656646019194396395831067589824833067121593676105414272340751762494333126637422045297844665721551914005704607805652974592888099713545348577606499645108254801591270365994526222827530223259796263560417159894848431476371579077876605890677048997408864712343889874114052303512196228259234236400344931207875964298565517748400880895135026159606579076813951933520709362458271035357886567869528830604633058650937657018201348508533591176971265253266427716871227316975739376674695051864534862172485538852712091190654796184507355612047996429675696708288458203043559544017367897896823830702725091865350351579913621346822408776240974613813547466010332059411517160903746663269320617892855821495601126383195490287119429126232811658543975396834926422040542495233988226471549633338336403368862723390193457566416152038755578544959187545829542941065851408388891433161697338026062195294068099810744100579866578595233987213472201520425584973168632742355264744545191364104997833597460514866144051032701613771660131961367732604223578365291530461635117155772529749100059655981133021606537904234757806692832422516882194231899861447051326827187215357333917406646072965425888381939208347362515907891138467516927265837193706964364477415063459322774999658334077827898777565592023107000651845814166258463877186791839080173098273096986329221858919462080495598365443879621537588719193760856057517031411876566113226959546396763583714063744008215362073790612615561488716702792496540454169686659563616837270018741609999226352673010688351100175389915309179224843342296275894298391967141337994655970936155092892031117349719201543075876896036063747034732360899200479061772198214080456552995792573334806342257776531300626877011082375565361718603469446817138817080952611156596823283412581442833463050141434452640220858293526449864320835982852652319652901004555776923377609183606842906884193383311368149935978267159162576716170720324312792961061664605010428569642919866631291628845009917140944693959903676739234498253021829404959131268391114561684582161228564767383519694829414984580394133343498875043996089206363373706386530797387219919640617623362194411909883847472091705099434773040658063221160493500798838598608789450470073109503915541862511419917965943347973197255924301793669939097277684221134896053608144651790620224675514210769433369326152516789203164769952515546947177131989349583883634962794613099689115820867336762231388570956713119939045860944336741972557768914881501169395567834580301928273579735758975102221802077340552699283020879251870058181403559701794489658166914192535374144375522124105088871535494892941489000141561618121068745303439938013414044724806457079800353412433667216105892120327970310596438238337209335132143136733258001025927269954486803954665067892199104085286153193816503086764185068149871011092208376180845982772957219096682169940725924099995897157071708968338013215170327542840180283141310571819792837589801718572007478476415891597146064817160817958714456967722153119985198786449419482721492278368568091538510893022909277797586045771623087009744753611239239241469504407676831113490904220702660008929495820115055845090403630851772494343188465776446270126416923247110569293860952785278043320324081332589534015210504398691895563927193523225308933099162117463499412270995984696670445162845553048498751817235900189092635111491280310386887544648335273268197466646187587702262730564103192364955218073755245535323122250595119193780414213127160733683569458520121560811727098832775844944409822300319669967735382467049619743126402955796405881170482469157572517247146802204605993372127861519743742271954999798109319059204197786658294463456327350417321761395017847740333013597600490296229432144573895584390015730740035010306199346460713951481423193529866253060482071311036712397954220955257784740871483769519900202032294210884628158229609085380582959249590021509278845837787260438428126505608973500279199276631072278512051988357323164743319815282625127488292923958358501054164833763665387954936680314484091443165923388174925185308140838428270172648673201729909258664456830236959031155710475241716387356569444710718621115317839888129471742235259687951942622059936580600729259151701355634094843175283372916931616540671611418002472106622324519523581791223291696580086727802209424029023779782812175212400151746558622858075465519507531456182524517457382649792962617201234964998735220517238598535311383000790260590436904862097069768729549519198930328822802175299345425971726361073410765915060429239513572675597635182471276778709809530518931738771106596893253104569996525618016566627619220785843941025717414107849179606817854362428650685022291971701499961187837813121172231608391430100223551322044513676696918429412410067266321950111062893653280923328488189453913232864450088752968252768622904588774662454813565942913076990869492962073402821159844951650449048559361805691782954900928397660000685323227433510427612024754974999120684156959548477296528182339408368142282884778982905848653502986496271136011409579976940084536380851426133815284383084070014997873588786475862146857403365646026390290663950507306320942261394562853600858304009425145824459107603699102433364748023294099164701842656934138948171048836618675187399370874843317599150964113691826476505856730823274328890174485158256796398228195964608607084639969193233169948597550357036313965490613231883512389076852596695344944105529232380729624695614376410380056607689506412069847080398611910765215301057326867294752659549086904221229164991580137326797831965159059251425085453532223839468253346256424588081918481898959101015877102690636625576868754925598494674701118111967014518073724429131563217709558020299096728950658703446000353672548812882697243104607726402863022206459264491874320560093922967439539275871246816318995753161610242292687097136992999524923461092655009396518030196181720679815147817098161485245962703819473360381151340633145634014088948448305257306369499812320515758947240954083388885333673393150164869558490581869147400665866494644339838769006850612543675992503791575049376518327736943471837952965265523663555024666187218487126324746211497605359597617178275313621488785491616325409691019470373701438789630660756223239333280510150944664434732924541099780608432677996032784160886430368408896045578899010554414122801259773966027002240511801195385586707891558996287388869449741472252408280988649809476184912995477523007039011073291564764890539029505317977601676996739463260453952478965549782505187669342570934262760083463234967136650695127418096812883432776998119827077399114833368515474582919737248148852823321867005714205311412869739915850446543117026403506802552478004205700882181835780220860377411679793070650242891113438930025435642855862408654854530620733080970822334731212312516549782454945153959622085452283887990084868406648743524194612303059429043349097258992781199308741287732147547092236176015914693626721805741511260519820375965189336839030574981020166123064453582811118707005079168862437854700552906031547007913134814117570117588638456861309663603829337663700245294914997123281823570330022908655697953488993283928520643868427737266150773455952014720622381973457237609868387243235969918835486125305732888559746342330234722629433698912381062731840905778820087053897477347425990458978888953242631514908220224024204567597228434826877652072903079185983187985726389856330947673326448485749800381937040795736900035542395708006148513999391123253232614422934540912523265283868759663837291497786821622285032026183094045778727690713256872194203054773024853302786243079564250414339082514826280053803064413717321454726112806277507047363634850798118716272885915865923285251157825224887155363713341254152960926251328710854943990551057268524059896578618574224536771513262110888469104331070031568847954102352457775803977025168024446058184368808735475215972608127946063117443605055510959255278970771504216936337890928232904910948103758061518121508761549034144255096854718977189058592779935431496741799228727908794279045773119789447055470957914094373775714932761976280566674354536759558461521505945869118256744636033187520922995508382101453430815746727893933838923118678216485372559774262836106823631077978077513618728771796998166832923124147474671949280315944238618450350710873552492220915698342015483412615668347283066209110084428719484058631533137496633660281329104093983886387707158446608480946305450217843534803676427851150574407530424601758338975928663150889113386544466156442624234367378638658705211929739899393545944364413756200545629070126687648321704145036056578831171867564178588648604380028207609930523617689656613069123868486286199015611152104283322318858422633018462960558096892062443570876653959027886985212930461942820270528270814646297682842804915839718170386022491303771287150511952989069426805331164457189345504146128805696035531341074861045878388662762576126985178629998370501885630977959360597348634902440758056066973200995874081817503664766945695130547344958955977113264155033463427626744375676719268187776547136694145971422293966440264827586182547309305464126510465007244665679335317588479994578286752799957614809970926836547139772930574564478403956657054712834854757454661522435795989174306364997671466491215818967692020331826074839680595405342748044900074098344666594080577485655262022970244791083256253013686494762622741592045974401294778273688235197654229391350611265878419287742823976189037086753112518353311342031223421663956669217417259637141422824017865263267768452146458223225291530207807445028072837426075717639398188582606924290553392121157485025767317569536261366887545562689911806319143861479848836963664694189081259871189868391385649777901797912127468857415774345004869395148762976413305869343447297448136489012619070052584677521285689740587755153091505154969532626075525593968246107012556944052318227242387910822544608550426467625637072111521873012465412659138618355564550212516055307011859294657432268229621195909518887744663363267653372463915857976100119295314912821170028784198885950252507527809489753275105003986172284575172569676896119469218359685537876247434875137766639772522090496166283340973115185615783840045489548266145973620630012898786205137061299294499046071053852667793817971791379827470191373376216281610955265383594598583869114315252889610030793911382856749167838009632776991461054632659778260400394192386658031841286202078638941343173301802279953567970513123970452785087485289122217290570411681551410027372149786367497953315120503750997679704465763163846167072570257116142218063953079010786865750425176690289482784140294967327321042973048591366331881835293637186966242755424840407828196439978322862829330814248414665799875486543960395297170920164713507363294649215559560750235110709731722839886801466491006512112578997823971287619454622357439256364587183771126504283871188468679892739688165993389713787776432832247009305379722095758297221411554453956953468259773743612174212673227166110527802885241018608237008937618569925142268671161688943743128373876884223449218265190259722308738874635100273671241201735475315293998151196080967596453800013778393587775668842346535918115378514824369552973708273858544778834920955064524197672152610514459545806753346028210795483774147581900407716546706299215331154889818253451298613616442200721781090157259455745310589064007494924454872076960851630740789020508768222903721118582042237100563173201347116531360401575743435879829264328667155226531969547458208754902209996679197434347102721538748104818828269952779674713314898303247637076305145175924352918261825223636346537607248720714746950348980166893637925598343215785533947842845168900626055835250416922184350411352638110967925268746932441288604323553742205256009228365388240382933266346527303845138231844486647720571704886086086109067481312684483713971386004245143373893472898890802045735172059671820791191497258730748382282765968697972351570487619087151429494569049745002937421070552150384518133442090240209001945254419656769304602789530328722873762799545993898451616674880078701676362517782409778547263029106167017610961908629468378628936211071038581766190172301345272846622600185624167983749326669646361654580674815245863863971949190118105331893166098983682030368606469747399070408858778802019492563863867563181632746323921738974516859898359281324716032738560370002907988557293366846967695788881294530420047679683761941767591208245685459584659767503858770577200083590945791311541284409604121427762495610112942747783474561952436130927200537827864073851529314210595220279562602009395104089272454443100814315255180464069943413596308555193897237237409144706158149957450017291587165561981262106473119781516462216006408658182991721030514719230985288998833561054962473510345268131247117636433995326872410649225764128728054089418253285827066798249493929786453639518141077223126985232717326995662277584659932963683400394429457957502044861957737051334413874598875778905708879045663648704009149601003002689584407127748595914546812635583202769081194695816110806690582596633856285814126655558377705895106471395053532428107116131676685164249585161738419354381337848850168508534392795776310519176069051303845385964717962038724253065354421214366074822050239991864469586575619492224703058427213229943811728722186898015936009794131481225342389546901345646291593953060119782126232872997529001257834337358745763206825012730692413815723026955238391025962956236888238537728997012153064200767302655993506199853278425012681214565508415903418251689944448554810168646702859301845273099381433444361035456277327481245488373519409558129952572744003598262042668554858652879095544211098519945371194590874996305359633896364429520622406472433150922906049970388071249338827888750079292965779786918982277962377308539011843522585945277987635578501077992799852228699830832742179446557808785335732112109597858000055550744800750118759232461962021608741296629151170442683318824102703308560262086556564277889564145439445251599232892629245437406834537037620146148482172016239259062830454401972601986649269922861168119917137851447199516277251